ZGlmZiAtLWdpdCBhLy5ienJpZ25vcmUgYi8uYnpyaWdub3JlCmluZGV4IDk1OWE3ZGYuLjg5NzA4NGQgMTAwNjQ0Ci0tLSBhLy5ienJpZ25vcmUKKysrIGIvLmJ6cmlnbm9yZQpAQCAtMzMsNyArMzMsNiBAQAogTW9kdWxlcy9jb25maWcuYwogTW9kdWxlcy9sZF9zb19haXgKIFBhcnNlci9wZ2VuCi1QYXJzZXIvcGdlbi5zdGFtcAogTGliL3Rlc3QvZGF0YS8qCiBMaWIvbGliMnRvMy9HcmFtbWFyKi5waWNrbGUKIExpYi9saWIydG8zL1BhdHRlcm5HcmFtbWFyKi5waWNrbGUKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IGMxYTgwNTUuLmE4OGIzNmUgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMTUsNiArMTUsNyBAQAogRG9jL3Rvb2xzL3B5Z21lbnRzLwogRG9jL3Rvb2xzL3NwaGlueC8KIExpYi9saWIydG8zLyoucGlja2xlCitMaWIvX3N5c2NvbmZpZ2RhdGEucHkKIExpYi9wbGF0LW1hYy9lcnJvcnMucnNyYy5kZi5yc3JjCiBNYWtlZmlsZQogTWFrZWZpbGUucHJlCkBAIC0zNyw3ICszOCw2IEBACiBQQ2J1aWxkL2FtZDY0LwogLnB1cmlmeQogUGFyc2VyL3BnZW4KLVBhcnNlci9wZ2VuLnN0YW1wCiBfX3B5Y2FjaGVfXwogYXV0b200dGUuY2FjaGUKIGJ1aWxkLwpkaWZmIC0tZ2l0IGEvLmhnZW9sIGIvLmhnZW9sCmluZGV4IGVkMTMxNzEuLjY0YmI3Y2YgMTAwNjQ0Ci0tLSBhLy5oZ2VvbAorKysgYi8uaGdlb2wKQEAgLTI4LDggKzI4LDExIEBACiAKIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzI2LnR4dCA9IEJJTgogTGliL3Rlc3QvY2prZW5jb2RpbmdzLyogPSBCSU4KLUxpYi90ZXN0L3NuZGhkcmRhdGEvc25kaGRyLiogPSBCSU4KIExpYi90ZXN0L2RlY2ltYWx0ZXN0ZGF0YS8qLmRlY1Rlc3QgPSBCSU4KK0xpYi90ZXN0L3NuZGhkcmRhdGEvc25kaGRyLiogPSBCSU4KK0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMjYudHh0ID0gQklOCisKK0xpYi92ZW52L3NjcmlwdHMvbnQvKiA9IEJJTgogCiAjIEFsbCBvdGhlciBmaWxlcyAod2hpY2ggcHJlc3VtYWJseSBhcmUgaHVtYW4tZWRpdGFibGUpIGFyZSAibmF0aXZlIi4KICMgVGhpcyBtdXN0IGJlIHRoZSBsYXN0IHJ1bGUhCmRpZmYgLS1naXQgYS8uaGdpZ25vcmUgYi8uaGdpZ25vcmUKaW5kZXggMjRkZjNiOS4uYTAxYTE3OCAxMDA2NDQKLS0tIGEvLmhnaWdub3JlCisrKyBiLy5oZ2lnbm9yZQpAQCAtNSw3ICs1LDggQEAKIE1ha2VmaWxlLnByZSQKIFRBR1MkCiBhdXRvbTR0ZS5jYWNoZSQKLWJ1aWxkLworXmJ1aWxkLworXkRvYy9idWlsZC8KIGJ1aWxkbm8kCiBjb25maWcuY2FjaGUKIGNvbmZpZy5sb2cKQEAgLTMxLDcgKzMyLDYgQEAKIE1vZHVsZXMvY29uZmlnLmMKIE1vZHVsZXMvbGRfc29fYWl4JAogUGFyc2VyL3BnZW4kCi1QYXJzZXIvcGdlbi5zdGFtcCQKIF5jb3JlCiBecHl0aG9uLWdkYi5weQogXnB5dGhvbi5leGUtZ2RiLnB5CkBAIC00Nyw2ICs0Nyw3IEBACiAqLnB5ZAogKi5jb3ZlcgogKn4KK0xpYi9fc3lzY29uZmlnZGF0YS5weQogTGliL2xpYjJ0bzMvKi5waWNrbGUKIExpYi90ZXN0L2RhdGEvKgogTWlzYy8qLndwdQpAQCAtNTQsNiArNTUsMTggQEAKIFBDL3B5dGhvbm50X3JjKi5oCiBQQy8qLm9iagogUEMvKi5leGUKK1BDLyovKi5leGUKK1BDLyovKi5leHAKK1BDLyovKi5saWIKK1BDLyovKi5ic2MKK1BDLyovKi5kbGwKK1BDLyovKi5wZGIKK1BDLyovKi51c2VyCitQQy8qLyoubmNiCitQQy8qLyouc3VvCitQQy8qL1dpbjMyLXRlbXAtKgorUEMvKi94NjQtdGVtcC0qCitQQy8qL2FtZDY0CiBQQ2J1aWxkLyouZXhlCiBQQ2J1aWxkLyouZGxsCiBQQ2J1aWxkLyoucGRiCkBAIC02Miw4ICs3NSwxNSBAQAogUENidWlsZC8qLm8KIFBDYnVpbGQvKi5uY2IKIFBDYnVpbGQvKi5ic2MKK1BDYnVpbGQvKi51c2VyCitQQ2J1aWxkLyouc3VvCitQQ2J1aWxkLyouKnNkZgogUENidWlsZC9XaW4zMi10ZW1wLSoKK1BDYnVpbGQveDY0LXRlbXAtKgorUENidWlsZC9hbWQ2NAorQnVpbGRMb2cuaHRtCiBfX3B5Y2FjaGVfXworTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYgogTW9kdWxlcy9fdGVzdGVtYmVkCiAuY292ZXJhZ2UKIGNvdmVyYWdlLwpkaWZmIC0tZ2l0IGEvLmhndGFncyBiLy5oZ3RhZ3MKaW5kZXggZjA2MWI5MC4uOGVlYzNhNyAxMDA2NDQKLS0tIGEvLmhndGFncworKysgYi8uaGd0YWdzCkBAIC05OSwzICs5OSw4IEBACiA3MDg1NDAzZGFmNDM5YWRiM2Y5ZTcwZWYxM2Y2YmVkYjFjNDQ3Mzc2IHYzLjIuM3JjMQogNDI4ZjA1Y2I3Mjc3ZTFkNDJiYjlkZDhkMWFmNmI2MjcwZWJjNjExMiB2My4yLjNyYzIKIDNkMDY4NmQ5MGY1NWE3OGY5NmQ5NDAzZGEyYzUyZGMyNDExNDE5ZDAgdjMuMi4zCitmMWE5YTY1MDU3MzE3MTRmMGUxNTc0NTNmZjg1MGUzYjcxNjE1YzQ1IHYzLjMuMGExCisyZjY5ZGI1MmQ2ZGUzMDZjZGFlZjBhMGNjMDBjYzgyM2ZiMzUwYjAxIHYzLjMuMGEyCiswYjUzYjcwYTQwYTAwMDEzNTA1ZWIzNWUzNjYwMDU3YjYyYmU3N2JlIHYzLjMuMGEzCis3YzUxMzg4YTNhYTdjZTc2YTg1NDFiYmJkZmMwNWQyZDI1OWExNjJjIHYzLjMuMGE0CitlMTVjNTU0Y2Q0M2ViMjNiYzBhNTI4YTRlODc0MWRhOWJiZWM5NjA3IHYzLjMuMGIxCmRpZmYgLS1naXQgYS8uaGd0b3VjaCBiLy5oZ3RvdWNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkOTM2ZmEKLS0tIC9kZXYvbnVsbAorKysgYi8uaGd0b3VjaApAQCAtMCwwICsxLDEyIEBACisjIC0qLSBNYWtlZmlsZSAtKi0KKyMgRGVmaW5lIGRlcGVuZGVuY2llcyBvZiBnZW5lcmF0ZWQgZmlsZXMgdGhhdCBhcmUgY2hlY2tlZCBpbnRvIGhnLgorIyBUaGUgc3ludGF4IG9mIHRoaXMgZmlsZSB1c2VzIG1ha2UgcnVsZSBkZXBlbmRlbmNpZXMsIHdpdGhvdXQgYWN0aW9ucworCitQeXRob24vaW1wb3J0bGliLmg6IExpYi9pbXBvcnRsaWIvX2Jvb3RzdHJhcC5weSBQeXRob24vZnJlZXplX2ltcG9ydGxpYi5weQorCitJbmNsdWRlL2FzdC5oOiBQYXJzZXIvUHl0aG9uLmFzZGwgUGFyc2VyL2FzZGwucHkgUGFyc2VyL2FzZGxfYy5weQorUHl0aG9uL1B5dGhvbi1hc3QuYzogSW5jbHVkZS9hc3QuaAorCitQeXRob24vb3Bjb2RlX3RhcmdldHMuaDogUHl0aG9uL21ha2VvcGNvZGV0YXJnZXRzLnB5IExpYi9vcGNvZGUucHkKKworT2JqZWN0cy90eXBlc2xvdHMuaW5jOiBJbmNsdWRlL3R5cGVzbG90cy5oIE9iamVjdHMvdHlwZXNsb3RzLnB5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvRG9jL0FDS1MudHh0IGIvRG9jL0FDS1MudHh0CmluZGV4IDcwMDYzYzAuLmI2NGM2NTAgMTAwNjQ0Ci0tLSBhL0RvYy9BQ0tTLnR4dAorKysgYi9Eb2MvQUNLUy50eHQKQEAgLTYyLDYgKzYyLDcgQEAKICAgICogU3RlZmFuIEZyYW5rZQogICAgKiBKaW0gRnVsdG9uCiAgICAqIFBldGVyIEZ1bmsKKyAgICogRXRoYW4gRnVybWFuCiAgICAqIExlbGUgR2FpZmF4CiAgICAqIE1hdHRoZXcgR2FsbGFnaGVyCiAgICAqIEdhYnJpZWwgR2VuZWxsaW5hCkBAIC0yMTAsNiArMjExLDcgQEAKICAgICogRGF2aWQgVHVybmVyCiAgICAqIFNhbmRybyBUb3NpCiAgICAqIFZpbGxlIFZhaW5pbworICAgKiBOYWRlZW0gVmF3ZGEKICAgICogTWFydGlqbiBWcmllcwogICAgKiBDaGFybGVzIEcuIFdhbGRtYW4KICAgICogR3JlZyBXYXJkCmRpZmYgLS1naXQgYS9Eb2MvYy1hcGkvYXJnLnJzdCBiL0RvYy9jLWFwaS9hcmcucnN0CmluZGV4IGQ0ZGRhN2MuLmIyOGFhNWYgMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS9hcmcucnN0CisrKyBiL0RvYy9jLWFwaS9hcmcucnN0CkBAIC0xNDYsNyArMTQ2LDcgQEAKICAgIExpa2UgYGB1I2BgLCBidXQgdGhlIFB5dGhvbiBvYmplY3QgbWF5IGFsc28gYmUgYGBOb25lYGAsIGluIHdoaWNoIGNhc2UgdGhlCiAgICA6Yzp0eXBlOmBQeV9VTklDT0RFYCBwb2ludGVyIGlzIHNldCB0byAqTlVMTCouCiAKLWBgVWBgICg6Y2xhc3M6YHN0cmApIFtQeVVuaWNvZGVPYmplY3QgXCpdCitgYFVgYCAoOmNsYXNzOmBzdHJgKSBbUHlPYmplY3QgXCpdCiAgICBSZXF1aXJlcyB0aGF0IHRoZSBQeXRob24gb2JqZWN0IGlzIGEgVW5pY29kZSBvYmplY3QsIHdpdGhvdXQgYXR0ZW1wdGluZwogICAgYW55IGNvbnZlcnNpb24uICBSYWlzZXMgOmV4YzpgVHlwZUVycm9yYCBpZiB0aGUgb2JqZWN0IGlzIG5vdCBhIFVuaWNvZGUKICAgIG9iamVjdC4gIFRoZSBDIHZhcmlhYmxlIG1heSBhbHNvIGJlIGRlY2xhcmVkIGFzIDpjOnR5cGU6YFB5T2JqZWN0XCpgLgpAQCAtMjYwLDkgKzI2MCwxMiBAQAogYGBuYGAgKDpjbGFzczpgaW50YCkgW1B5X3NzaXplX3RdCiAgICBDb252ZXJ0IGEgUHl0aG9uIGludGVnZXIgdG8gYSBDIDpjOnR5cGU6YFB5X3NzaXplX3RgLgogCi1gYGNgYCAoOmNsYXNzOmBieXRlc2Agb2YgbGVuZ3RoIDEpIFtjaGFyXQotICAgQ29udmVydCBhIFB5dGhvbiBieXRlLCByZXByZXNlbnRlZCBhcyBhIDpjbGFzczpgYnl0ZXNgIG9iamVjdCBvZiBsZW5ndGggMSwKLSAgIHRvIGEgQyA6Yzp0eXBlOmBjaGFyYC4KK2BgY2BgICg6Y2xhc3M6YGJ5dGVzYCBvciA6Y2xhc3M6YGJ5dGVhcnJheWAgb2YgbGVuZ3RoIDEpIFtjaGFyXQorICAgQ29udmVydCBhIFB5dGhvbiBieXRlLCByZXByZXNlbnRlZCBhcyBhIDpjbGFzczpgYnl0ZXNgIG9yCisgICA6Y2xhc3M6YGJ5dGVhcnJheWAgb2JqZWN0IG9mIGxlbmd0aCAxLCB0byBhIEMgOmM6dHlwZTpgY2hhcmAuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBbGxvdyA6Y2xhc3M6YGJ5dGVhcnJheWAgb2JqZWN0cy4KIAogYGBDYGAgKDpjbGFzczpgc3RyYCBvZiBsZW5ndGggMSkgW2ludF0KICAgIENvbnZlcnQgYSBQeXRob24gY2hhcmFjdGVyLCByZXByZXNlbnRlZCBhcyBhIDpjbGFzczpgc3RyYCBvYmplY3Qgb2YKQEAgLTMxNSw2ICszMTgsMTUgQEAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4xCiAgICAgICBgYFB5X0NMRUFOVVBfU1VQUE9SVEVEYGAgd2FzIGFkZGVkLgogCitgYHBgYCAoOmNsYXNzOmBib29sYCkgW2ludF0KKyAgIFRlc3RzIHRoZSB2YWx1ZSBwYXNzZWQgaW4gZm9yIHRydXRoIChhIGJvb2xlYW4gKipwKipccmVkaWNhdGUpIGFuZCBjb252ZXJ0cworICAgdGhlIHJlc3VsdCB0byBpdHMgZXF1aXZhbGVudCBDIHRydWUvZmFsc2UgaW50ZWdlciB2YWx1ZS4KKyAgIFNldHMgdGhlIGludCB0byAxIGlmIHRoZSBleHByZXNzaW9uIHdhcyB0cnVlIGFuZCAwIGlmIGl0IHdhcyBmYWxzZS4KKyAgIFRoaXMgYWNjZXB0cyBhbnkgdmFsaWQgUHl0aG9uIHZhbHVlLiAgU2VlIDpyZWY6YHRydXRoYCBmb3IgbW9yZQorICAgaW5mb3JtYXRpb24gYWJvdXQgaG93IFB5dGhvbiB0ZXN0cyB2YWx1ZXMgZm9yIHRydXRoLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogYGAoaXRlbXMpYGAgKDpjbGFzczpgdHVwbGVgKSBbKm1hdGNoaW5nLWl0ZW1zKl0KICAgIFRoZSBvYmplY3QgbXVzdCBiZSBhIFB5dGhvbiBzZXF1ZW5jZSB3aG9zZSBsZW5ndGggaXMgdGhlIG51bWJlciBvZiBmb3JtYXQgdW5pdHMKICAgIGluICppdGVtcyouICBUaGUgQyBhcmd1bWVudHMgbXVzdCBjb3JyZXNwb25kIHRvIHRoZSBpbmRpdmlkdWFsIGZvcm1hdCB1bml0cyBpbgpAQCAtMzM2LDYgKzM0OCwxNSBAQAogICAgOmM6ZnVuYzpgUHlBcmdfUGFyc2VUdXBsZWAgZG9lcyBub3QgdG91Y2ggdGhlIGNvbnRlbnRzIG9mIHRoZSBjb3JyZXNwb25kaW5nIEMKICAgIHZhcmlhYmxlKHMpLgogCitgYCRgYAorICAgOmM6ZnVuYzpgUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzYCBvbmx5OgorICAgSW5kaWNhdGVzIHRoYXQgdGhlIHJlbWFpbmluZyBhcmd1bWVudHMgaW4gdGhlIFB5dGhvbiBhcmd1bWVudCBsaXN0IGFyZQorICAga2V5d29yZC1vbmx5LiAgQ3VycmVudGx5LCBhbGwga2V5d29yZC1vbmx5IGFyZ3VtZW50cyBtdXN0IGFsc28gYmUgb3B0aW9uYWwKKyAgIGFyZ3VtZW50cywgc28gYGB8YGAgbXVzdCBhbHdheXMgYmUgc3BlY2lmaWVkIGJlZm9yZSBgYCRgYCBpbiB0aGUgZm9ybWF0CisgICBzdHJpbmcuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiBgYDpgYAogICAgVGhlIGxpc3Qgb2YgZm9ybWF0IHVuaXRzIGVuZHMgaGVyZTsgdGhlIHN0cmluZyBhZnRlciB0aGUgY29sb24gaXMgdXNlZCBhcyB0aGUKICAgIGZ1bmN0aW9uIG5hbWUgaW4gZXJyb3IgbWVzc2FnZXMgKHRoZSAiYXNzb2NpYXRlZCB2YWx1ZSIgb2YgdGhlIGV4Y2VwdGlvbiB0aGF0CmRpZmYgLS1naXQgYS9Eb2MvYy1hcGkvYnVmZmVyLnJzdCBiL0RvYy9jLWFwaS9idWZmZXIucnN0CmluZGV4IGQ5OGVjZTMuLmQ2MzY5MzUgMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS9idWZmZXIucnN0CisrKyBiL0RvYy9jLWFwaS9idWZmZXIucnN0CkBAIC03LDYgKzcsNyBAQAogCiAuLiBzZWN0aW9uYXV0aG9yOjogR3JlZyBTdGVpbiA8Z3N0ZWluQGx5cmEub3JnPgogLi4gc2VjdGlvbmF1dGhvcjo6IEJlbmphbWluIFBldGVyc29uCisuLiBzZWN0aW9uYXV0aG9yOjogU3RlZmFuIEtyYWgKIAogCiAuLiBpbmRleDo6CkBAIC0yMCw3ICsyMSw3IEBACiAKIFdoaWxlIGVhY2ggb2YgdGhlc2UgdHlwZXMgaGF2ZSB0aGVpciBvd24gc2VtYW50aWNzLCB0aGV5IHNoYXJlIHRoZSBjb21tb24KIGNoYXJhY3RlcmlzdGljIG9mIGJlaW5nIGJhY2tlZCBieSBhIHBvc3NpYmx5IGxhcmdlIG1lbW9yeSBidWZmZXIuICBJdCBpcwotdGhlbiBkZXNpcmVhYmxlLCBpbiBzb21lIHNpdHVhdGlvbnMsIHRvIGFjY2VzcyB0aGF0IGJ1ZmZlciBkaXJlY3RseSBhbmQKK3RoZW4gZGVzaXJhYmxlLCBpbiBzb21lIHNpdHVhdGlvbnMsIHRvIGFjY2VzcyB0aGF0IGJ1ZmZlciBkaXJlY3RseSBhbmQKIHdpdGhvdXQgaW50ZXJtZWRpYXRlIGNvcHlpbmcuCiAKIFB5dGhvbiBwcm92aWRlcyBzdWNoIGEgZmFjaWxpdHkgYXQgdGhlIEMgbGV2ZWwgaW4gdGhlIGZvcm0gb2YgdGhlICpidWZmZXIKQEAgLTYwLDggKzYxLDEwIEBACiByZXNvdXJjZSBsZWFrcy4KIAogCi1UaGUgYnVmZmVyIHN0cnVjdHVyZQotPT09PT09PT09PT09PT09PT09PT0KKy4uIF9idWZmZXItc3RydWN0dXJlOgorCitCdWZmZXIgc3RydWN0dXJlCis9PT09PT09PT09PT09PT09CiAKIEJ1ZmZlciBzdHJ1Y3R1cmVzIChvciBzaW1wbHkgImJ1ZmZlcnMiKSBhcmUgdXNlZnVsIGFzIGEgd2F5IHRvIGV4cG9zZSB0aGUKIGJpbmFyeSBkYXRhIGZyb20gYW5vdGhlciBvYmplY3QgdG8gdGhlIFB5dGhvbiBwcm9ncmFtbWVyLiAgVGhleSBjYW4gYWxzbyBiZQpAQCAtNzgsOTYgKzgxLDMzOSBAQAogYXJvdW5kIGEgYnVmZmVyIGlzIG5lZWRlZCwgYSA6cmVmOmBtZW1vcnl2aWV3IDxtZW1vcnl2aWV3LW9iamVjdHM+YCBvYmplY3QKIGNhbiBiZSBjcmVhdGVkLgogCitGb3Igc2hvcnQgaW5zdHJ1Y3Rpb25zIGhvdyB0byB3cml0ZSBhbiBleHBvcnRpbmcgb2JqZWN0LCBzZWUKKzpyZWY6YEJ1ZmZlciBPYmplY3QgU3RydWN0dXJlcyA8YnVmZmVyLXN0cnVjdHM+YC4gRm9yIG9idGFpbmluZworYSBidWZmZXIsIHNlZSA6YzpmdW5jOmBQeU9iamVjdF9HZXRCdWZmZXJgLgogCiAuLiBjOnR5cGU6OiBQeV9idWZmZXIKIAotICAgLi4gYzptZW1iZXI6OiB2b2lkICpidWYKKyAgIC4uIGM6bWVtYmVyOjogdm9pZCBcKm9iagogCi0gICAgICBBIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9mIHRoZSBtZW1vcnkgZm9yIHRoZSBvYmplY3QuCisgICAgICBBIG5ldyByZWZlcmVuY2UgdG8gdGhlIGV4cG9ydGluZyBvYmplY3QuIFRoZSByZWZlcmVuY2UgaXMgb3duZWQgYnkKKyAgICAgIHRoZSBjb25zdW1lciBhbmQgYXV0b21hdGljYWxseSBkZWNyZW1lbnRlZCBhbmQgc2V0IHRvICpOVUxMKiBieQorICAgICAgOmM6ZnVuYzpgUHlCdWZmZXJfUmVsZWFzZWAuIFRoZSBmaWVsZCBpcyB0aGUgZXF1aXZhbGVudCBvZiB0aGUgcmV0dXJuCisgICAgICB2YWx1ZSBvZiBhbnkgc3RhbmRhcmQgQy1BUEkgZnVuY3Rpb24uCisKKyAgICAgIEFzIGEgc3BlY2lhbCBjYXNlLCBmb3IgKnRlbXBvcmFyeSogYnVmZmVycyB0aGF0IGFyZSB3cmFwcGVkIGJ5CisgICAgICA6YzpmdW5jOmBQeU1lbW9yeVZpZXdfRnJvbUJ1ZmZlcmAgb3IgOmM6ZnVuYzpgUHlCdWZmZXJfRmlsbEluZm9gCisgICAgICB0aGlzIGZpZWxkIGlzICpOVUxMKi4gSW4gZ2VuZXJhbCwgZXhwb3J0aW5nIG9iamVjdHMgTVVTVCBOT1QKKyAgICAgIHVzZSB0aGlzIHNjaGVtZS4KKworICAgLi4gYzptZW1iZXI6OiB2b2lkIFwqYnVmCisKKyAgICAgIEEgcG9pbnRlciB0byB0aGUgc3RhcnQgb2YgdGhlIGxvZ2ljYWwgc3RydWN0dXJlIGRlc2NyaWJlZCBieSB0aGUgYnVmZmVyCisgICAgICBmaWVsZHMuIFRoaXMgY2FuIGJlIGFueSBsb2NhdGlvbiB3aXRoaW4gdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwgbWVtb3J5CisgICAgICBibG9jayBvZiB0aGUgZXhwb3J0ZXIuIEZvciBleGFtcGxlLCB3aXRoIG5lZ2F0aXZlIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zdHJpZGVzYAorICAgICAgdGhlIHZhbHVlIG1heSBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBtZW1vcnkgYmxvY2suCisKKyAgICAgIEZvciBjb250aWd1b3VzIGFycmF5cywgdGhlIHZhbHVlIHBvaW50cyB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBtZW1vcnkKKyAgICAgIGJsb2NrLgogCiAgICAuLiBjOm1lbWJlcjo6IFB5X3NzaXplX3QgbGVuCi0gICAgICA6bm9pbmRleDoKIAotICAgICAgVGhlIHRvdGFsIGxlbmd0aCBvZiB0aGUgbWVtb3J5IGluIGJ5dGVzLgorICAgICAgYGBwcm9kdWN0KHNoYXBlKSAqIGl0ZW1zaXplYGAuIEZvciBjb250aWd1b3VzIGFycmF5cywgdGhpcyBpcyB0aGUgbGVuZ3RoCisgICAgICBvZiB0aGUgdW5kZXJseWluZyBtZW1vcnkgYmxvY2suIEZvciBub24tY29udGlndW91cyBhcnJheXMsIGl0IGlzIHRoZSBsZW5ndGgKKyAgICAgIHRoYXQgdGhlIGxvZ2ljYWwgc3RydWN0dXJlIHdvdWxkIGhhdmUgaWYgaXQgd2VyZSBjb3BpZWQgdG8gYSBjb250aWd1b3VzCisgICAgICByZXByZXNlbnRhdGlvbi4KKworICAgICAgQWNjZXNzaW5nIGBgKChjaGFyICopYnVmKVswXSB1cCB0byAoKGNoYXIgKilidWYpW2xlbi0xXWBgIGlzIG9ubHkgdmFsaWQKKyAgICAgIGlmIHRoZSBidWZmZXIgaGFzIGJlZW4gb2J0YWluZWQgYnkgYSByZXF1ZXN0IHRoYXQgZ3VhcmFudGVlcyBjb250aWd1aXR5LiBJbgorICAgICAgbW9zdCBjYXNlcyBzdWNoIGEgcmVxdWVzdCB3aWxsIGJlIDpjOm1hY3JvOmBQeUJVRl9TSU1QTEVgIG9yIDpjOm1hY3JvOmBQeUJVRl9XUklUQUJMRWAuCiAKICAgIC4uIGM6bWVtYmVyOjogaW50IHJlYWRvbmx5CiAKLSAgICAgIEFuIGluZGljYXRvciBvZiB3aGV0aGVyIHRoZSBidWZmZXIgaXMgcmVhZCBvbmx5LgotCi0gICAuLiBjOm1lbWJlcjo6IGNvbnN0IGNoYXIgKmZvcm1hdAotICAgICAgOm5vaW5kZXg6Ci0KLSAgICAgIEEgKk5VTEwqIHRlcm1pbmF0ZWQgc3RyaW5nIGluIDptb2Q6YHN0cnVjdGAgbW9kdWxlIHN0eWxlIHN5bnRheCBnaXZpbmcKLSAgICAgIHRoZSBjb250ZW50cyBvZiB0aGUgZWxlbWVudHMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIGJ1ZmZlci4gIElmIHRoaXMgaXMKLSAgICAgICpOVUxMKiwgYGAiQiJgYCAodW5zaWduZWQgYnl0ZXMpIGlzIGFzc3VtZWQuCi0KLSAgIC4uIGM6bWVtYmVyOjogaW50IG5kaW0KLQotICAgICAgVGhlIG51bWJlciBvZiBkaW1lbnNpb25zIHRoZSBtZW1vcnkgcmVwcmVzZW50cyBhcyBhIG11bHRpLWRpbWVuc2lvbmFsCi0gICAgICBhcnJheS4gIElmIGl0IGlzIDAsIDpjOmRhdGE6YHN0cmlkZXNgIGFuZCA6YzpkYXRhOmBzdWJvZmZzZXRzYCBtdXN0IGJlCi0gICAgICAqTlVMTCouCi0KLSAgIC4uIGM6bWVtYmVyOjogUHlfc3NpemVfdCAqc2hhcGUKLQotICAgICAgQW4gYXJyYXkgb2YgOmM6dHlwZTpgUHlfc3NpemVfdGBccyB0aGUgbGVuZ3RoIG9mIDpjOmRhdGE6YG5kaW1gIGdpdmluZyB0aGUKLSAgICAgIHNoYXBlIG9mIHRoZSBtZW1vcnkgYXMgYSBtdWx0aS1kaW1lbnNpb25hbCBhcnJheS4gIE5vdGUgdGhhdAotICAgICAgYGAoKCpzaGFwZSlbMF0gKiAuLi4gKiAoKnNoYXBlKVtuZGltcy0xXSkqaXRlbXNpemVgYCBzaG91bGQgYmUgZXF1YWwgdG8KLSAgICAgIDpjOmRhdGE6YGxlbmAuCi0KLSAgIC4uIGM6bWVtYmVyOjogUHlfc3NpemVfdCAqc3RyaWRlcwotCi0gICAgICBBbiBhcnJheSBvZiA6Yzp0eXBlOmBQeV9zc2l6ZV90YFxzIHRoZSBsZW5ndGggb2YgOmM6ZGF0YTpgbmRpbWAgZ2l2aW5nIHRoZQotICAgICAgbnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgdG8gZ2V0IHRvIGEgbmV3IGVsZW1lbnQgaW4gZWFjaCBkaW1lbnNpb24uCi0KLSAgIC4uIGM6bWVtYmVyOjogUHlfc3NpemVfdCAqc3Vib2Zmc2V0cwotCi0gICAgICBBbiBhcnJheSBvZiA6Yzp0eXBlOmBQeV9zc2l6ZV90YFxzIHRoZSBsZW5ndGggb2YgOmM6ZGF0YTpgbmRpbWAuICBJZiB0aGVzZQotICAgICAgc3Vib2Zmc2V0IG51bWJlcnMgYXJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwLCB0aGVuIHRoZSB2YWx1ZSBzdG9yZWQKLSAgICAgIGFsb25nIHRoZSBpbmRpY2F0ZWQgZGltZW5zaW9uIGlzIGEgcG9pbnRlciBhbmQgdGhlIHN1Ym9mZnNldCB2YWx1ZQotICAgICAgZGljdGF0ZXMgaG93IG1hbnkgYnl0ZXMgdG8gYWRkIHRvIHRoZSBwb2ludGVyIGFmdGVyIGRlLXJlZmVyZW5jaW5nLiBBCi0gICAgICBzdWJvZmZzZXQgdmFsdWUgdGhhdCBpdCBuZWdhdGl2ZSBpbmRpY2F0ZXMgdGhhdCBubyBkZS1yZWZlcmVuY2luZyBzaG91bGQKLSAgICAgIG9jY3VyIChzdHJpZGluZyBpbiBhIGNvbnRpZ3VvdXMgbWVtb3J5IGJsb2NrKS4KLQotICAgICAgSGVyZSBpcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGVsZW1lbnQgaW4gYW4gTi1EIGFycmF5Ci0gICAgICBwb2ludGVkIHRvIGJ5IGFuIE4tZGltZW5zaW9uYWwgaW5kZXggd2hlbiB0aGVyZSBhcmUgYm90aCBub24tTlVMTCBzdHJpZGVzCi0gICAgICBhbmQgc3Vib2Zmc2V0czo6Ci0KLSAgICAgICAgICB2b2lkICpnZXRfaXRlbV9wb2ludGVyKGludCBuZGltLCB2b2lkICpidWYsIFB5X3NzaXplX3QgKnN0cmlkZXMsCi0gICAgICAgICAgICAgIFB5X3NzaXplX3QgKnN1Ym9mZnNldHMsIFB5X3NzaXplX3QgKmluZGljZXMpIHsKLSAgICAgICAgICAgICAgY2hhciAqcG9pbnRlciA9IChjaGFyKilidWY7Ci0gICAgICAgICAgICAgIGludCBpOwotICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmRpbTsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICBwb2ludGVyICs9IHN0cmlkZXNbaV0gKiBpbmRpY2VzW2ldOwotICAgICAgICAgICAgICAgICAgaWYgKHN1Ym9mZnNldHNbaV0gPj0wICkgewotICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgPSAqKChjaGFyKiopcG9pbnRlcikgKyBzdWJvZmZzZXRzW2ldOwotICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgIHJldHVybiAodm9pZCopcG9pbnRlcjsKLSAgICAgICAgICAgfQotCisgICAgICBBbiBpbmRpY2F0b3Igb2Ygd2hldGhlciB0aGUgYnVmZmVyIGlzIHJlYWQtb25seS4gVGhpcyBmaWVsZCBpcyBjb250cm9sbGVkCisgICAgICBieSB0aGUgOmM6bWFjcm86YFB5QlVGX1dSSVRBQkxFYCBmbGFnLgogCiAgICAuLiBjOm1lbWJlcjo6IFB5X3NzaXplX3QgaXRlbXNpemUKIAotICAgICAgVGhpcyBpcyBhIHN0b3JhZ2UgZm9yIHRoZSBpdGVtc2l6ZSAoaW4gYnl0ZXMpIG9mIGVhY2ggZWxlbWVudCBvZiB0aGUKLSAgICAgIHNoYXJlZCBtZW1vcnkuIEl0IGlzIHRlY2huaWNhbGx5IHVuLW5lY2Vzc2FyeSBhcyBpdCBjYW4gYmUgb2J0YWluZWQKLSAgICAgIHVzaW5nIDpjOmZ1bmM6YFB5QnVmZmVyX1NpemVGcm9tRm9ybWF0YCwgaG93ZXZlciBhbiBleHBvcnRlciBtYXkga25vdwotICAgICAgdGhpcyBpbmZvcm1hdGlvbiB3aXRob3V0IHBhcnNpbmcgdGhlIGZvcm1hdCBzdHJpbmcgYW5kIGl0IGlzIG5lY2Vzc2FyeQotICAgICAgdG8ga25vdyB0aGUgaXRlbXNpemUgZm9yIHByb3BlciBpbnRlcnByZXRhdGlvbiBvZiBzdHJpZGluZy4gVGhlcmVmb3JlLAotICAgICAgc3RvcmluZyBpdCBpcyBtb3JlIGNvbnZlbmllbnQgYW5kIGZhc3Rlci4KKyAgICAgIEl0ZW0gc2l6ZSBpbiBieXRlcyBvZiBhIHNpbmdsZSBlbGVtZW50LiBTYW1lIGFzIHRoZSB2YWx1ZSBvZiA6ZnVuYzpgc3RydWN0LmNhbGNzaXplYAorICAgICAgY2FsbGVkIG9uIG5vbi1OVUxMIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5mb3JtYXRgIHZhbHVlcy4KIAotICAgLi4gYzptZW1iZXI6OiB2b2lkICppbnRlcm5hbAorICAgICAgSW1wb3J0YW50IGV4Y2VwdGlvbjogSWYgYSBjb25zdW1lciByZXF1ZXN0cyBhIGJ1ZmZlciB3aXRob3V0IHRoZQorICAgICAgOmM6bWFjcm86YFB5QlVGX0ZPUk1BVGAgZmxhZywgOmM6bWVtYmVyOmB+UHlfQnVmZmVyLmZvcm1hdGAgd2lsbAorICAgICAgYmUgc2V0IHRvICAqTlVMTCosICBidXQgOmM6bWVtYmVyOmB+UHlfYnVmZmVyLml0ZW1zaXplYCBzdGlsbCBoYXMKKyAgICAgIHRoZSB2YWx1ZSBmb3IgdGhlIG9yaWdpbmFsIGZvcm1hdC4KKworICAgICAgSWYgOmM6bWVtYmVyOmB+UHlfQnVmZmVyLnNoYXBlYCBpcyBwcmVzZW50LCB0aGUgZXF1YWxpdHkKKyAgICAgIGBgcHJvZHVjdChzaGFwZSkgKiBpdGVtc2l6ZSA9PSBsZW5gYCBzdGlsbCBob2xkcyBhbmQgdGhlIGNvbnN1bWVyCisgICAgICBjYW4gdXNlIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5pdGVtc2l6ZWAgdG8gbmF2aWdhdGUgdGhlIGJ1ZmZlci4KKworICAgICAgSWYgOmM6bWVtYmVyOmB+UHlfQnVmZmVyLnNoYXBlYCBpcyAqTlVMTCogYXMgYSByZXN1bHQgb2YgYSA6YzptYWNybzpgUHlCVUZfU0lNUExFYAorICAgICAgb3IgYSA6YzptYWNybzpgUHlCVUZfV1JJVEFCTEVgIHJlcXVlc3QsIHRoZSBjb25zdW1lciBtdXN0IGRpc3JlZ2FyZAorICAgICAgOmM6bWVtYmVyOmB+UHlfYnVmZmVyLml0ZW1zaXplYCBhbmQgYXNzdW1lIGBgaXRlbXNpemUgPT0gMWBgLgorCisgICAuLiBjOm1lbWJlcjo6IGNvbnN0IGNoYXIgXCpmb3JtYXQKKworICAgICAgQSAqTlVMKiB0ZXJtaW5hdGVkIHN0cmluZyBpbiA6bW9kOmBzdHJ1Y3RgIG1vZHVsZSBzdHlsZSBzeW50YXggZGVzY3JpYmluZworICAgICAgdGhlIGNvbnRlbnRzIG9mIGEgc2luZ2xlIGl0ZW0uIElmIHRoaXMgaXMgKk5VTEwqLCBgYCJCImBgICh1bnNpZ25lZCBieXRlcykKKyAgICAgIGlzIGFzc3VtZWQuCisKKyAgICAgIFRoaXMgZmllbGQgaXMgY29udHJvbGxlZCBieSB0aGUgOmM6bWFjcm86YFB5QlVGX0ZPUk1BVGAgZmxhZy4KKworICAgLi4gYzptZW1iZXI6OiBpbnQgbmRpbQorCisgICAgICBUaGUgbnVtYmVyIG9mIGRpbWVuc2lvbnMgdGhlIG1lbW9yeSByZXByZXNlbnRzIGFzIGFuIG4tZGltZW5zaW9uYWwgYXJyYXkuCisgICAgICBJZiBpdCBpcyAwLCA6YzptZW1iZXI6YH5QeV9CdWZmZXIuYnVmYCBwb2ludHMgdG8gYSBzaW5nbGUgaXRlbSByZXByZXNlbnRpbmcKKyAgICAgIGEgc2NhbGFyLiBJbiB0aGlzIGNhc2UsIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zaGFwZWAsIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zdHJpZGVzYAorICAgICAgYW5kIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zdWJvZmZzZXRzYCBNVVNUIGJlICpOVUxMKi4KKworICAgICAgVGhlIG1hY3JvIDpjOm1hY3JvOmBQeUJVRl9NQVhfTkRJTWAgbGltaXRzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBkaW1lbnNpb25zCisgICAgICB0byA2NC4gRXhwb3J0ZXJzIE1VU1QgcmVzcGVjdCB0aGlzIGxpbWl0LCBjb25zdW1lcnMgb2YgbXVsdGktZGltZW5zaW9uYWwKKyAgICAgIGJ1ZmZlcnMgU0hPVUxEIGJlIGFibGUgdG8gaGFuZGxlIHVwIHRvIDpjOm1hY3JvOmBQeUJVRl9NQVhfTkRJTWAgZGltZW5zaW9ucy4KKworICAgLi4gYzptZW1iZXI6OiBQeV9zc2l6ZV90IFwqc2hhcGUKKworICAgICAgQW4gYXJyYXkgb2YgOmM6dHlwZTpgUHlfc3NpemVfdGAgb2YgbGVuZ3RoIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5uZGltYAorICAgICAgaW5kaWNhdGluZyB0aGUgc2hhcGUgb2YgdGhlIG1lbW9yeSBhcyBhbiBuLWRpbWVuc2lvbmFsIGFycmF5LiBOb3RlIHRoYXQKKyAgICAgIGBgc2hhcGVbMF0gKiAuLi4gKiBzaGFwZVtuZGltLTFdICogaXRlbXNpemVgYCBNVVNUIGJlIGVxdWFsIHRvCisgICAgICA6YzptZW1iZXI6YH5QeV9idWZmZXIubGVuYC4KKworICAgICAgU2hhcGUgdmFsdWVzIGFyZSByZXN0cmljdGVkIHRvIGBgc2hhcGVbbl0gPj0gMGBgLiBUaGUgY2FzZQorICAgICAgYGBzaGFwZVtuXSA9PSAwYGAgcmVxdWlyZXMgc3BlY2lhbCBhdHRlbnRpb24uIFNlZSBgY29tcGxleCBhcnJheXNgXworICAgICAgZm9yIGZ1cnRoZXIgaW5mb3JtYXRpb24uCisKKyAgICAgIFRoZSBzaGFwZSBhcnJheSBpcyByZWFkLW9ubHkgZm9yIHRoZSBjb25zdW1lci4KKworICAgLi4gYzptZW1iZXI6OiBQeV9zc2l6ZV90IFwqc3RyaWRlcworCisgICAgICBBbiBhcnJheSBvZiA6Yzp0eXBlOmBQeV9zc2l6ZV90YCBvZiBsZW5ndGggOmM6bWVtYmVyOmB+UHlfYnVmZmVyLm5kaW1gCisgICAgICBnaXZpbmcgdGhlIG51bWJlciBvZiBieXRlcyB0byBza2lwIHRvIGdldCB0byBhIG5ldyBlbGVtZW50IGluIGVhY2gKKyAgICAgIGRpbWVuc2lvbi4KKworICAgICAgU3RyaWRlIHZhbHVlcyBjYW4gYmUgYW55IGludGVnZXIuIEZvciByZWd1bGFyIGFycmF5cywgc3RyaWRlcyBhcmUKKyAgICAgIHVzdWFsbHkgcG9zaXRpdmUsIGJ1dCBhIGNvbnN1bWVyIE1VU1QgYmUgYWJsZSB0byBoYW5kbGUgdGhlIGNhc2UKKyAgICAgIGBgc3RyaWRlc1tuXSA8PSAwYGAuIFNlZSBgY29tcGxleCBhcnJheXNgXyBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi4KKworICAgICAgVGhlIHN0cmlkZXMgYXJyYXkgaXMgcmVhZC1vbmx5IGZvciB0aGUgY29uc3VtZXIuCisKKyAgIC4uIGM6bWVtYmVyOjogUHlfc3NpemVfdCBcKnN1Ym9mZnNldHMKKworICAgICAgQW4gYXJyYXkgb2YgOmM6dHlwZTpgUHlfc3NpemVfdGAgb2YgbGVuZ3RoIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5uZGltYC4KKyAgICAgIElmIGBgc3Vib2Zmc2V0c1tuXSA+PSAwYGAsIHRoZSB2YWx1ZXMgc3RvcmVkIGFsb25nIHRoZSBudGggZGltZW5zaW9uIGFyZQorICAgICAgcG9pbnRlcnMgYW5kIHRoZSBzdWJvZmZzZXQgdmFsdWUgZGljdGF0ZXMgaG93IG1hbnkgYnl0ZXMgdG8gYWRkIHRvIGVhY2gKKyAgICAgIHBvaW50ZXIgYWZ0ZXIgZGUtcmVmZXJlbmNpbmcuIEEgc3Vib2Zmc2V0IHZhbHVlIHRoYXQgaXMgbmVnYXRpdmUKKyAgICAgIGluZGljYXRlcyB0aGF0IG5vIGRlLXJlZmVyZW5jaW5nIHNob3VsZCBvY2N1ciAoc3RyaWRpbmcgaW4gYSBjb250aWd1b3VzCisgICAgICBtZW1vcnkgYmxvY2spLgorCisgICAgICBUaGlzIHR5cGUgb2YgYXJyYXkgcmVwcmVzZW50YXRpb24gaXMgdXNlZCBieSB0aGUgUHl0aG9uIEltYWdpbmcgTGlicmFyeQorICAgICAgKFBJTCkuIFNlZSBgY29tcGxleCBhcnJheXNgXyBmb3IgZnVydGhlciBpbmZvcm1hdGlvbiBob3cgdG8gYWNjZXNzIGVsZW1lbnRzCisgICAgICBvZiBzdWNoIGFuIGFycmF5LgorCisgICAgICBUaGUgc3Vib2Zmc2V0cyBhcnJheSBpcyByZWFkLW9ubHkgZm9yIHRoZSBjb25zdW1lci4KKworICAgLi4gYzptZW1iZXI6OiB2b2lkIFwqaW50ZXJuYWwKIAogICAgICAgVGhpcyBpcyBmb3IgdXNlIGludGVybmFsbHkgYnkgdGhlIGV4cG9ydGluZyBvYmplY3QuIEZvciBleGFtcGxlLCB0aGlzCiAgICAgICBtaWdodCBiZSByZS1jYXN0IGFzIGFuIGludGVnZXIgYnkgdGhlIGV4cG9ydGVyIGFuZCB1c2VkIHRvIHN0b3JlIGZsYWdzCiAgICAgICBhYm91dCB3aGV0aGVyIG9yIG5vdCB0aGUgc2hhcGUsIHN0cmlkZXMsIGFuZCBzdWJvZmZzZXRzIGFycmF5cyBtdXN0IGJlCi0gICAgICBmcmVlZCB3aGVuIHRoZSBidWZmZXIgaXMgcmVsZWFzZWQuIFRoZSBjb25zdW1lciBzaG91bGQgbmV2ZXIgYWx0ZXIgdGhpcworICAgICAgZnJlZWQgd2hlbiB0aGUgYnVmZmVyIGlzIHJlbGVhc2VkLiBUaGUgY29uc3VtZXIgTVVTVCBOT1QgYWx0ZXIgdGhpcwogICAgICAgdmFsdWUuCiAKKy4uIF9idWZmZXItcmVxdWVzdC10eXBlczoKKworQnVmZmVyIHJlcXVlc3QgdHlwZXMKKz09PT09PT09PT09PT09PT09PT09CisKK0J1ZmZlcnMgYXJlIHVzdWFsbHkgb2J0YWluZWQgYnkgc2VuZGluZyBhIGJ1ZmZlciByZXF1ZXN0IHRvIGFuIGV4cG9ydGluZworb2JqZWN0IHZpYSA6YzpmdW5jOmBQeU9iamVjdF9HZXRCdWZmZXJgLiBTaW5jZSB0aGUgY29tcGxleGl0eSBvZiB0aGUgbG9naWNhbAorc3RydWN0dXJlIG9mIHRoZSBtZW1vcnkgY2FuIHZhcnkgZHJhc3RpY2FsbHksIHRoZSBjb25zdW1lciB1c2VzIHRoZSAqZmxhZ3MqCithcmd1bWVudCB0byBzcGVjaWZ5IHRoZSBleGFjdCBidWZmZXIgdHlwZSBpdCBjYW4gaGFuZGxlLgorCitBbGwgOmM6ZGF0YTpgUHlfYnVmZmVyYCBmaWVsZHMgYXJlIHVuYW1iaWd1b3VzbHkgZGVmaW5lZCBieSB0aGUgcmVxdWVzdAordHlwZS4KKworcmVxdWVzdC1pbmRlcGVuZGVudCBmaWVsZHMKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CitUaGUgZm9sbG93aW5nIGZpZWxkcyBhcmUgbm90IGluZmx1ZW5jZWQgYnkgKmZsYWdzKiBhbmQgbXVzdCBhbHdheXMgYmUgZmlsbGVkIGluCit3aXRoIHRoZSBjb3JyZWN0IHZhbHVlczogOmM6bWVtYmVyOmB+UHlfYnVmZmVyLm9iamAsIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5idWZgLAorOmM6bWVtYmVyOmB+UHlfYnVmZmVyLmxlbmAsIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5pdGVtc2l6ZWAsIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5uZGltYC4KKworCityZWFkb25seSwgZm9ybWF0Cit+fn5+fn5+fn5+fn5+fn5+CisKKyAgIC4uIGM6bWFjcm86OiBQeUJVRl9XUklUQUJMRQorCisgICAgICBDb250cm9scyB0aGUgOmM6bWVtYmVyOmB+UHlfYnVmZmVyLnJlYWRvbmx5YCBmaWVsZC4gSWYgc2V0LCB0aGUgZXhwb3J0ZXIKKyAgICAgIE1VU1QgcHJvdmlkZSBhIHdyaXRhYmxlIGJ1ZmZlciBvciBlbHNlIHJlcG9ydCBmYWlsdXJlLiBPdGhlcndpc2UsIHRoZQorICAgICAgZXhwb3J0ZXIgTUFZIHByb3ZpZGUgZWl0aGVyIGEgcmVhZC1vbmx5IG9yIHdyaXRhYmxlIGJ1ZmZlciwgYnV0IHRoZSBjaG9pY2UKKyAgICAgIE1VU1QgYmUgY29uc2lzdGVudCBmb3IgYWxsIGNvbnN1bWVycy4KKworICAgLi4gYzptYWNybzo6IFB5QlVGX0ZPUk1BVAorCisgICAgICBDb250cm9scyB0aGUgOmM6bWVtYmVyOmB+UHlfYnVmZmVyLmZvcm1hdGAgZmllbGQuIElmIHNldCwgdGhpcyBmaWVsZCBNVVNUCisgICAgICBiZSBmaWxsZWQgaW4gY29ycmVjdGx5LiBPdGhlcndpc2UsIHRoaXMgZmllbGQgTVVTVCBiZSAqTlVMTCouCisKKworOmM6bWFjcm86YFB5QlVGX1dSSVRBQkxFYCBjYW4gYmUgXHwnZCB0byBhbnkgb2YgdGhlIGZsYWdzIGluIHRoZSBuZXh0IHNlY3Rpb24uCitTaW5jZSA6YzptYWNybzpgUHlCVUZfU0lNUExFYCBpcyBkZWZpbmVkIGFzIDAsIDpjOm1hY3JvOmBQeUJVRl9XUklUQUJMRWAKK2NhbiBiZSB1c2VkIGFzIGEgc3RhbmQtYWxvbmUgZmxhZyB0byByZXF1ZXN0IGEgc2ltcGxlIHdyaXRhYmxlIGJ1ZmZlci4KKworOmM6bWFjcm86YFB5QlVGX0ZPUk1BVGAgY2FuIGJlIFx8J2QgdG8gYW55IG9mIHRoZSBmbGFncyBleGNlcHQgOmM6bWFjcm86YFB5QlVGX1NJTVBMRWAuCitUaGUgbGF0dGVyIGFscmVhZHkgaW1wbGllcyBmb3JtYXQgYGBCYGAgKHVuc2lnbmVkIGJ5dGVzKS4KKworCitzaGFwZSwgc3RyaWRlcywgc3Vib2Zmc2V0cworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworVGhlIGZsYWdzIHRoYXQgY29udHJvbCB0aGUgbG9naWNhbCBzdHJ1Y3R1cmUgb2YgdGhlIG1lbW9yeSBhcmUgbGlzdGVkCitpbiBkZWNyZWFzaW5nIG9yZGVyIG9mIGNvbXBsZXhpdHkuIE5vdGUgdGhhdCBlYWNoIGZsYWcgY29udGFpbnMgYWxsIGJpdHMKK29mIHRoZSBmbGFncyBiZWxvdyBpdC4KKworCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKworfCAgUmVxdWVzdCAgICAgICAgICAgICAgICAgICAgfCBzaGFwZSB8IHN0cmlkZXMgfCBzdWJvZmZzZXRzIHwKKys9PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09Kz09PT09PT09PSs9PT09PT09PT09PT0rCit8IC4uIGM6bWFjcm86OiBQeUJVRl9JTkRJUkVDVCB8ICB5ZXMgIHwgICB5ZXMgICB8IGlmIG5lZWRlZCAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKK3wgLi4gYzptYWNybzo6IFB5QlVGX1NUUklERVMgIHwgIHllcyAgfCAgIHllcyAgIHwgICAgTlVMTCAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKworfCAuLiBjOm1hY3JvOjogUHlCVUZfTkQgICAgICAgfCAgeWVzICB8ICAgTlVMTCAgfCAgICBOVUxMICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rCit8IC4uIGM6bWFjcm86OiBQeUJVRl9TSU1QTEUgICB8ICBOVUxMIHwgICBOVUxMICB8ICAgIE5VTEwgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKKworCitjb250aWd1aXR5IHJlcXVlc3RzCit+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0Mgb3IgRm9ydHJhbiBjb250aWd1aXR5IGNhbiBiZSBleHBsaWNpdGx5IHJlcXVlc3RlZCwgd2l0aCBhbmQgd2l0aG91dCBzdHJpZGUKK2luZm9ybWF0aW9uLiBXaXRob3V0IHN0cmlkZSBpbmZvcm1hdGlvbiwgdGhlIGJ1ZmZlciBtdXN0IGJlIEMtY29udGlndW91cy4KKworKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLSsKK3wgIFJlcXVlc3QgICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2hhcGUgfCBzdHJpZGVzIHwgc3Vib2Zmc2V0cyB8IGNvbnRpZyB8CisrPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PSs9PT09PT09PT0rPT09PT09PT09PT09Kz09PT09PT09KworfCAuLiBjOm1hY3JvOjogUHlCVUZfQ19DT05USUdVT1VTICAgfCAgeWVzICB8ICAgeWVzICAgfCAgICBOVUxMICAgIHwgICBDICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0rCit8IC4uIGM6bWFjcm86OiBQeUJVRl9GX0NPTlRJR1VPVVMgICB8ICB5ZXMgIHwgICB5ZXMgICB8ICAgIE5VTEwgICAgfCAgIEYgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLSsKK3wgLi4gYzptYWNybzo6IFB5QlVGX0FOWV9DT05USUdVT1VTIHwgIHllcyAgfCAgIHllcyAgIHwgICAgTlVMTCAgICB8IEMgb3IgRiB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tKworfCAuLiBjOm1hY3JvOjogUHlCVUZfTkQgICAgICAgICAgICAgfCAgeWVzICB8ICAgTlVMTCAgfCAgICBOVUxMICAgIHwgICBDICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0rCisKKworY29tcG91bmQgcmVxdWVzdHMKK35+fn5+fn5+fn5+fn5+fn5+CisKK0FsbCBwb3NzaWJsZSByZXF1ZXN0cyBhcmUgZnVsbHkgZGVmaW5lZCBieSBzb21lIGNvbWJpbmF0aW9uIG9mIHRoZSBmbGFncyBpbgordGhlIHByZXZpb3VzIHNlY3Rpb24uIEZvciBjb252ZW5pZW5jZSwgdGhlIGJ1ZmZlciBwcm90b2NvbCBwcm92aWRlcyBmcmVxdWVudGx5Cit1c2VkIGNvbWJpbmF0aW9ucyBhcyBzaW5nbGUgZmxhZ3MuCisKK0luIHRoZSBmb2xsb3dpbmcgdGFibGUgKlUqIHN0YW5kcyBmb3IgdW5kZWZpbmVkIGNvbnRpZ3VpdHkuIFRoZSBjb25zdW1lciB3b3VsZAoraGF2ZSB0byBjYWxsIDpjOmZ1bmM6YFB5QnVmZmVyX0lzQ29udGlndW91c2AgdG8gZGV0ZXJtaW5lIGNvbnRpZ3VpdHkuCisKKworCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSsKK3wgIFJlcXVlc3QgICAgICAgICAgICAgICAgICAgICAgfCBzaGFwZSB8IHN0cmlkZXMgfCBzdWJvZmZzZXRzIHwgY29udGlnIHwgcmVhZG9ubHkgfCBmb3JtYXQgfAorKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PSs9PT09PT09PT0rPT09PT09PT09PT09Kz09PT09PT09Kz09PT09PT09PT0rPT09PT09PT0rCit8IC4uIGM6bWFjcm86OiBQeUJVRl9GVUxMICAgICAgIHwgIHllcyAgfCAgIHllcyAgIHwgaWYgbmVlZGVkICB8ICAgVSAgICB8ICAgICAwICAgIHwgIHllcyAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKworfCAuLiBjOm1hY3JvOjogUHlCVUZfRlVMTF9STyAgICB8ICB5ZXMgIHwgICB5ZXMgICB8IGlmIG5lZWRlZCAgfCAgIFUgICAgfCAgMSBvciAwICB8ICB5ZXMgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSsKK3wgLi4gYzptYWNybzo6IFB5QlVGX1JFQ09SRFMgICAgfCAgeWVzICB8ICAgeWVzICAgfCAgICBOVUxMICAgIHwgICBVICAgIHwgICAgIDAgICAgfCAgeWVzICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rCit8IC4uIGM6bWFjcm86OiBQeUJVRl9SRUNPUkRTX1JPIHwgIHllcyAgfCAgIHllcyAgIHwgICAgTlVMTCAgICB8ICAgVSAgICB8ICAxIG9yIDAgIHwgIHllcyAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKworfCAuLiBjOm1hY3JvOjogUHlCVUZfU1RSSURFRCAgICB8ICB5ZXMgIHwgICB5ZXMgICB8ICAgIE5VTEwgICAgfCAgIFUgICAgfCAgICAgMCAgICB8ICBOVUxMICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSsKK3wgLi4gYzptYWNybzo6IFB5QlVGX1NUUklERURfUk8gfCAgeWVzICB8ICAgeWVzICAgfCAgICBOVUxMICAgIHwgICBVICAgIHwgIDEgb3IgMCAgfCAgTlVMTCAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0rCit8IC4uIGM6bWFjcm86OiBQeUJVRl9DT05USUcgICAgIHwgIHllcyAgfCAgIE5VTEwgIHwgICAgTlVMTCAgICB8ICAgQyAgICB8ICAgICAwICAgIHwgIE5VTEwgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tKworfCAuLiBjOm1hY3JvOjogUHlCVUZfQ09OVElHX1JPICB8ICB5ZXMgIHwgICBOVUxMICB8ICAgIE5VTEwgICAgfCAgIEMgICAgfCAgMSBvciAwICB8ICBOVUxMICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLSsKKworCitDb21wbGV4IGFycmF5cworPT09PT09PT09PT09PT0KKworTnVtUHktc3R5bGU6IHNoYXBlIGFuZCBzdHJpZGVzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworVGhlIGxvZ2ljYWwgc3RydWN0dXJlIG9mIE51bVB5LXN0eWxlIGFycmF5cyBpcyBkZWZpbmVkIGJ5IDpjOm1lbWJlcjpgflB5X2J1ZmZlci5pdGVtc2l6ZWAsCis6YzptZW1iZXI6YH5QeV9idWZmZXIubmRpbWAsIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zaGFwZWAgYW5kIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zdHJpZGVzYC4KKworSWYgYGBuZGltID09IDBgYCwgdGhlIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IDpjOm1lbWJlcjpgflB5X2J1ZmZlci5idWZgIGlzCitpbnRlcnByZXRlZCBhcyBhIHNjYWxhciBvZiBzaXplIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5pdGVtc2l6ZWAuIEluIHRoYXQgY2FzZSwKK2JvdGggOmM6bWVtYmVyOmB+UHlfYnVmZmVyLnNoYXBlYCBhbmQgOmM6bWVtYmVyOmB+UHlfYnVmZmVyLnN0cmlkZXNgIGFyZSAqTlVMTCouCisKK0lmIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zdHJpZGVzYCBpcyAqTlVMTCosIHRoZSBhcnJheSBpcyBpbnRlcnByZXRlZCBhcworYSBzdGFuZGFyZCBuLWRpbWVuc2lvbmFsIEMtYXJyYXkuIE90aGVyd2lzZSwgdGhlIGNvbnN1bWVyIG11c3QgYWNjZXNzIGFuCituLWRpbWVuc2lvbmFsIGFycmF5IGFzIGZvbGxvd3M6CisKKyAgIGBgcHRyID0gKGNoYXIgKilidWYgKyBpbmRpY2VzWzBdICogc3RyaWRlc1swXSArIC4uLiArIGluZGljZXNbbi0xXSAqIHN0cmlkZXNbbi0xXWBgCisgICBgYGl0ZW0gPSAqKCh0eXBlb2YoaXRlbSkgKilwdHIpO2BgCisKKworQXMgbm90ZWQgYWJvdmUsIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5idWZgIGNhbiBwb2ludCB0byBhbnkgbG9jYXRpb24gd2l0aGluCit0aGUgYWN0dWFsIG1lbW9yeSBibG9jay4gQW4gZXhwb3J0ZXIgY2FuIGNoZWNrIHRoZSB2YWxpZGl0eSBvZiBhIGJ1ZmZlciB3aXRoCit0aGlzIGZ1bmN0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogcHl0aG9uCisKKyAgIGRlZiB2ZXJpZnlfc3RydWN0dXJlKG1lbWxlbiwgaXRlbXNpemUsIG5kaW0sIHNoYXBlLCBzdHJpZGVzLCBvZmZzZXQpOgorICAgICAgICIiIlZlcmlmeSB0aGF0IHRoZSBwYXJhbWV0ZXJzIHJlcHJlc2VudCBhIHZhbGlkIGFycmF5IHdpdGhpbgorICAgICAgICAgIHRoZSBib3VuZHMgb2YgdGhlIGFsbG9jYXRlZCBtZW1vcnk6CisgICAgICAgICAgICAgIGNoYXIgKm1lbTogc3RhcnQgb2YgdGhlIHBoeXNpY2FsIG1lbW9yeSBibG9jaworICAgICAgICAgICAgICBtZW1sZW46IGxlbmd0aCBvZiB0aGUgcGh5c2ljYWwgbWVtb3J5IGJsb2NrCisgICAgICAgICAgICAgIG9mZnNldDogKGNoYXIgKilidWYgLSBtZW0KKyAgICAgICAiIiIKKyAgICAgICBpZiBvZmZzZXQgJSBpdGVtc2l6ZToKKyAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgaWYgb2Zmc2V0IDwgMCBvciBvZmZzZXQraXRlbXNpemUgPiBtZW1sZW46CisgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgIGlmIGFueSh2ICUgaXRlbXNpemUgZm9yIHYgaW4gc3RyaWRlcyk6CisgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgaWYgbmRpbSA8PSAwOgorICAgICAgICAgICByZXR1cm4gbmRpbSA9PSAwIGFuZCBub3Qgc2hhcGUgYW5kIG5vdCBzdHJpZGVzCisgICAgICAgaWYgMCBpbiBzaGFwZToKKyAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgIGltaW4gPSBzdW0oc3RyaWRlc1tqXSooc2hhcGVbal0tMSkgZm9yIGogaW4gcmFuZ2UobmRpbSkKKyAgICAgICAgICAgICAgICAgIGlmIHN0cmlkZXNbal0gPD0gMCkKKyAgICAgICBpbWF4ID0gc3VtKHN0cmlkZXNbal0qKHNoYXBlW2pdLTEpIGZvciBqIGluIHJhbmdlKG5kaW0pCisgICAgICAgICAgICAgICAgICBpZiBzdHJpZGVzW2pdID4gMCkKKworICAgICAgIHJldHVybiAwIDw9IG9mZnNldCtpbWluIGFuZCBvZmZzZXQraW1heCtpdGVtc2l6ZSA8PSBtZW1sZW4KKworCitQSUwtc3R5bGU6IHNoYXBlLCBzdHJpZGVzIGFuZCBzdWJvZmZzZXRzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK0luIGFkZGl0aW9uIHRvIHRoZSByZWd1bGFyIGl0ZW1zLCBQSUwtc3R5bGUgYXJyYXlzIGNhbiBjb250YWluIHBvaW50ZXJzCit0aGF0IG11c3QgYmUgZm9sbG93ZWQgaW4gb3JkZXIgdG8gZ2V0IHRvIHRoZSBuZXh0IGVsZW1lbnQgaW4gYSBkaW1lbnNpb24uCitGb3IgZXhhbXBsZSwgdGhlIHJlZ3VsYXIgdGhyZWUtZGltZW5zaW9uYWwgQy1hcnJheSBgYGNoYXIgdlsyXVsyXVszXWBgIGNhbgorYWxzbyBiZSB2aWV3ZWQgYXMgYW4gYXJyYXkgb2YgMiBwb2ludGVycyB0byAyIHR3by1kaW1lbnNpb25hbCBhcnJheXM6CitgYGNoYXIgKCp2WzJdKVsyXVszXWBgLiBJbiBzdWJvZmZzZXRzIHJlcHJlc2VudGF0aW9uLCB0aG9zZSB0d28gcG9pbnRlcnMKK2NhbiBiZSBlbWJlZGRlZCBhdCB0aGUgc3RhcnQgb2YgOmM6bWVtYmVyOmB+UHlfYnVmZmVyLmJ1ZmAsIHBvaW50aW5nCit0byB0d28gYGBjaGFyIHhbMl1bM11gYCBhcnJheXMgdGhhdCBjYW4gYmUgbG9jYXRlZCBhbnl3aGVyZSBpbiBtZW1vcnkuCisKKworSGVyZSBpcyBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGVsZW1lbnQgaW4gYW4gTi1EIGFycmF5Citwb2ludGVkIHRvIGJ5IGFuIE4tZGltZW5zaW9uYWwgaW5kZXggd2hlbiB0aGVyZSBhcmUgYm90aCBub24tTlVMTCBzdHJpZGVzCithbmQgc3Vib2Zmc2V0czo6CisKKyAgIHZvaWQgKmdldF9pdGVtX3BvaW50ZXIoaW50IG5kaW0sIHZvaWQgKmJ1ZiwgUHlfc3NpemVfdCAqc3RyaWRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqc3Vib2Zmc2V0cywgUHlfc3NpemVfdCAqaW5kaWNlcykgeworICAgICAgIGNoYXIgKnBvaW50ZXIgPSAoY2hhciopYnVmOworICAgICAgIGludCBpOworICAgICAgIGZvciAoaSA9IDA7IGkgPCBuZGltOyBpKyspIHsKKyAgICAgICAgICAgcG9pbnRlciArPSBzdHJpZGVzW2ldICogaW5kaWNlc1tpXTsKKyAgICAgICAgICAgaWYgKHN1Ym9mZnNldHNbaV0gPj0wICkgeworICAgICAgICAgICAgICAgcG9pbnRlciA9ICooKGNoYXIqKilwb2ludGVyKSArIHN1Ym9mZnNldHNbaV07CisgICAgICAgICAgIH0KKyAgICAgICB9CisgICAgICAgcmV0dXJuICh2b2lkKilwb2ludGVyOworICAgfQorCiAKIEJ1ZmZlci1yZWxhdGVkIGZ1bmN0aW9ucwogPT09PT09PT09PT09PT09PT09PT09PT09CiAKLQogLi4gYzpmdW5jdGlvbjo6IGludCBQeU9iamVjdF9DaGVja0J1ZmZlcihQeU9iamVjdCAqb2JqKQogCiAgICBSZXR1cm4gMSBpZiAqb2JqKiBzdXBwb3J0cyB0aGUgYnVmZmVyIGludGVyZmFjZSBvdGhlcndpc2UgMC4gIFdoZW4gMSBpcwpAQCAtMTc1LDE1MiArNDIxLDcxIEBACiAgICBzdWNjZWVkLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBpbnQgUHlPYmplY3RfR2V0QnVmZmVyKFB5T2JqZWN0ICpvYmosIFB5X2J1ZmZlciAqdmlldywgaW50IGZsYWdzKQorLi4gYzpmdW5jdGlvbjo6IGludCBQeU9iamVjdF9HZXRCdWZmZXIoUHlPYmplY3QgKmV4cG9ydGVyLCBQeV9idWZmZXIgKnZpZXcsIGludCBmbGFncykKIAotICAgICAgRXhwb3J0IGEgdmlldyBvdmVyIHNvbWUgaW50ZXJuYWwgZGF0YSBmcm9tIHRoZSB0YXJnZXQgb2JqZWN0ICpvYmoqLgotICAgICAgKm9iaiogbXVzdCBub3QgYmUgTlVMTCwgYW5kICp2aWV3KiBtdXN0IHBvaW50IHRvIGFuIGV4aXN0aW5nCi0gICAgICA6Yzp0eXBlOmBQeV9idWZmZXJgIHN0cnVjdHVyZSBhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlciAobW9zdCB1c2VzIG9mCi0gICAgICB0aGlzIGZ1bmN0aW9uIHdpbGwgc2ltcGx5IGRlY2xhcmUgYSBsb2NhbCB2YXJpYWJsZSBvZiB0eXBlCi0gICAgICA6Yzp0eXBlOmBQeV9idWZmZXJgKS4gIFRoZSAqZmxhZ3MqIGFyZ3VtZW50IGlzIGEgYml0IGZpZWxkIGluZGljYXRpbmcKLSAgICAgIHdoYXQga2luZCBvZiBidWZmZXIgaXMgcmVxdWVzdGVkLiAgVGhlIGJ1ZmZlciBpbnRlcmZhY2UgYWxsb3dzCi0gICAgICBmb3IgY29tcGxpY2F0ZWQgbWVtb3J5IGxheW91dCBwb3NzaWJpbGl0aWVzOyBob3dldmVyLCBzb21lIGNhbGxlcnMKLSAgICAgIHdvbid0IHdhbnQgdG8gaGFuZGxlIGFsbCB0aGUgY29tcGxleGl0eSBhbmQgaW5zdGVhZCByZXF1ZXN0IGEgc2ltcGxlCi0gICAgICB2aWV3IG9mIHRoZSB0YXJnZXQgb2JqZWN0ICh1c2luZyA6YzptYWNybzpgUHlCVUZfU0lNUExFYCBmb3IgYSByZWFkLW9ubHkKLSAgICAgIHZpZXcgYW5kIDpjOm1hY3JvOmBQeUJVRl9XUklUQUJMRWAgZm9yIGEgcmVhZC13cml0ZSB2aWV3KS4KKyAgIFNlbmQgYSByZXF1ZXN0IHRvICpleHBvcnRlciogdG8gZmlsbCBpbiAqdmlldyogYXMgc3BlY2lmaWVkIGJ5ICAqZmxhZ3MqLgorICAgSWYgdGhlIGV4cG9ydGVyIGNhbm5vdCBwcm92aWRlIGEgYnVmZmVyIG9mIHRoZSBleGFjdCB0eXBlLCBpdCBNVVNUIHJhaXNlCisgICA6YzpkYXRhOmBQeUV4Y19CdWZmZXJFcnJvcmAsIHNldCA6YzptZW1iZXI6YHZpZXctPm9iamAgdG8gKk5VTEwqIGFuZAorICAgcmV0dXJuIC0xLgogCi0gICAgICBTb21lIGV4cG9ydGVycyBtYXkgbm90IGJlIGFibGUgdG8gc2hhcmUgbWVtb3J5IGluIGV2ZXJ5IHBvc3NpYmxlIHdheSBhbmQKLSAgICAgIG1heSBuZWVkIHRvIHJhaXNlIGVycm9ycyB0byBzaWduYWwgdG8gc29tZSBjb25zdW1lcnMgdGhhdCBzb21ldGhpbmcgaXMKLSAgICAgIGp1c3Qgbm90IHBvc3NpYmxlLiBUaGVzZSBlcnJvcnMgc2hvdWxkIGJlIGEgOmV4YzpgQnVmZmVyRXJyb3JgIHVubGVzcwotICAgICAgdGhlcmUgaXMgYW5vdGhlciBlcnJvciB0aGF0IGlzIGFjdHVhbGx5IGNhdXNpbmcgdGhlIHByb2JsZW0uIFRoZQotICAgICAgZXhwb3J0ZXIgY2FuIHVzZSBmbGFncyBpbmZvcm1hdGlvbiB0byBzaW1wbGlmeSBob3cgbXVjaCBvZiB0aGUKLSAgICAgIDpjOmRhdGE6YFB5X2J1ZmZlcmAgc3RydWN0dXJlIGlzIGZpbGxlZCBpbiB3aXRoIG5vbi1kZWZhdWx0IHZhbHVlcyBhbmQvb3IKLSAgICAgIHJhaXNlIGFuIGVycm9yIGlmIHRoZSBvYmplY3QgY2FuJ3Qgc3VwcG9ydCBhIHNpbXBsZXIgdmlldyBvZiBpdHMgbWVtb3J5LgorICAgT24gc3VjY2VzcywgZmlsbCBpbiAqdmlldyosIHNldCA6YzptZW1iZXI6YHZpZXctPm9iamAgdG8gYSBuZXcgcmVmZXJlbmNlCisgICB0byAqZXhwb3J0ZXIqIGFuZCByZXR1cm4gMC4gSW4gdGhlIGNhc2Ugb2YgY2hhaW5lZCBidWZmZXIgcHJvdmlkZXJzCisgICB0aGF0IHJlZGlyZWN0IHJlcXVlc3RzIHRvIGEgc2luZ2xlIG9iamVjdCwgOmM6bWVtYmVyOmB2aWV3LT5vYmpgIE1BWQorICAgcmVmZXIgdG8gdGhpcyBvYmplY3QgaW5zdGVhZCBvZiAqZXhwb3J0ZXIqIChTZWUgOnJlZjpgQnVmZmVyIE9iamVjdCBTdHJ1Y3R1cmVzIDxidWZmZXItc3RydWN0cz5gKS4KIAotICAgICAgT24gc3VjY2VzcywgMCBpcyByZXR1cm5lZCBhbmQgdGhlICp2aWV3KiBzdHJ1Y3R1cmUgaXMgZmlsbGVkIHdpdGggdXNlZnVsCi0gICAgICB2YWx1ZXMuICBPbiBlcnJvciwgLTEgaXMgcmV0dXJuZWQgYW5kIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQ7IHRoZSAqdmlldyoKLSAgICAgIGlzIGxlZnQgaW4gYW4gdW5kZWZpbmVkIHN0YXRlLgotCi0gICAgICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgcG9zc2libGUgdmFsdWVzIHRvIHRoZSAqZmxhZ3MqIGFyZ3VtZW50cy4KLQotICAgICAgLi4gYzptYWNybzo6IFB5QlVGX1NJTVBMRQotCi0gICAgICAgICBUaGlzIGlzIHRoZSBkZWZhdWx0IGZsYWcuICBUaGUgcmV0dXJuZWQgYnVmZmVyIGV4cG9zZXMgYSByZWFkLW9ubHkKLSAgICAgICAgIG1lbW9yeSBhcmVhLiAgVGhlIGZvcm1hdCBvZiBkYXRhIGlzIGFzc3VtZWQgdG8gYmUgcmF3IHVuc2lnbmVkIGJ5dGVzLAotICAgICAgICAgd2l0aG91dCBhbnkgcGFydGljdWxhciBzdHJ1Y3R1cmUuICBUaGlzIGlzIGEgInN0YW5kLWFsb25lIiBmbGFnCi0gICAgICAgICBjb25zdGFudC4gIEl0IG5ldmVyIG5lZWRzIHRvIGJlICd8J2QgdG8gdGhlIG90aGVycy4gIFRoZSBleHBvcnRlciB3aWxsCi0gICAgICAgICByYWlzZSBhbiBlcnJvciBpZiBpdCBjYW5ub3QgcHJvdmlkZSBzdWNoIGEgY29udGlndW91cyBidWZmZXIgb2YgYnl0ZXMuCi0KLSAgICAgIC4uIGM6bWFjcm86OiBQeUJVRl9XUklUQUJMRQotCi0gICAgICAgICBMaWtlIDpjOm1hY3JvOmBQeUJVRl9TSU1QTEVgLCBidXQgdGhlIHJldHVybmVkIGJ1ZmZlciBpcyB3cml0YWJsZS4gIElmCi0gICAgICAgICB0aGUgZXhwb3J0ZXIgZG9lc24ndCBzdXBwb3J0IHdyaXRhYmxlIGJ1ZmZlcnMsIGFuIGVycm9yIGlzIHJhaXNlZC4KLQotICAgICAgLi4gYzptYWNybzo6IFB5QlVGX1NUUklERVMKLQotICAgICAgICAgVGhpcyBpbXBsaWVzIDpjOm1hY3JvOmBQeUJVRl9ORGAuICBUaGUgcmV0dXJuZWQgYnVmZmVyIG11c3QgcHJvdmlkZQotICAgICAgICAgc3RyaWRlcyBpbmZvcm1hdGlvbiAoaS5lLiB0aGUgc3RyaWRlcyBjYW5ub3QgYmUgTlVMTCkuICBUaGlzIHdvdWxkIGJlCi0gICAgICAgICB1c2VkIHdoZW4gdGhlIGNvbnN1bWVyIGNhbiBoYW5kbGUgc3RyaWRlZCwgZGlzY29udGlndW91cyBhcnJheXMuCi0gICAgICAgICBIYW5kbGluZyBzdHJpZGVzIGF1dG9tYXRpY2FsbHkgYXNzdW1lcyB5b3UgY2FuIGhhbmRsZSBzaGFwZS4gIFRoZQotICAgICAgICAgZXhwb3J0ZXIgY2FuIHJhaXNlIGFuIGVycm9yIGlmIGEgc3RyaWRlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGF0YSBpcwotICAgICAgICAgbm90IHBvc3NpYmxlIChpLmUuIHdpdGhvdXQgdGhlIHN1Ym9mZnNldHMpLgotCi0gICAgICAuLiBjOm1hY3JvOjogUHlCVUZfTkQKLQotICAgICAgICAgVGhlIHJldHVybmVkIGJ1ZmZlciBtdXN0IHByb3ZpZGUgc2hhcGUgaW5mb3JtYXRpb24uICBUaGUgbWVtb3J5IHdpbGwgYmUKLSAgICAgICAgIGFzc3VtZWQgQy1zdHlsZSBjb250aWd1b3VzIChsYXN0IGRpbWVuc2lvbiB2YXJpZXMgdGhlIGZhc3Rlc3QpLiAgVGhlCi0gICAgICAgICBleHBvcnRlciBtYXkgcmFpc2UgYW4gZXJyb3IgaWYgaXQgY2Fubm90IHByb3ZpZGUgdGhpcyBraW5kIG9mCi0gICAgICAgICBjb250aWd1b3VzIGJ1ZmZlci4gIElmIHRoaXMgaXMgbm90IGdpdmVuIHRoZW4gc2hhcGUgd2lsbCBiZSAqTlVMTCouCi0KLSAgICAgIC4uIGM6bWFjcm86OiBQeUJVRl9DX0NPTlRJR1VPVVMKLSAgICAgICAgICAgICAgICAgIFB5QlVGX0ZfQ09OVElHVU9VUwotICAgICAgICAgICAgICAgICAgUHlCVUZfQU5ZX0NPTlRJR1VPVVMKLQotICAgICAgICAgVGhlc2UgZmxhZ3MgaW5kaWNhdGUgdGhhdCB0aGUgY29udGlndWl0eSByZXR1cm5lZCBidWZmZXIgbXVzdCBiZQotICAgICAgICAgcmVzcGVjdGl2ZWx5LCBDLWNvbnRpZ3VvdXMgKGxhc3QgZGltZW5zaW9uIHZhcmllcyB0aGUgZmFzdGVzdCksIEZvcnRyYW4KLSAgICAgICAgIGNvbnRpZ3VvdXMgKGZpcnN0IGRpbWVuc2lvbiB2YXJpZXMgdGhlIGZhc3Rlc3QpIG9yIGVpdGhlciBvbmUuICBBbGwgb2YKLSAgICAgICAgIHRoZXNlIGZsYWdzIGltcGx5IDpjOm1hY3JvOmBQeUJVRl9TVFJJREVTYCBhbmQgZ3VhcmFudGVlIHRoYXQgdGhlCi0gICAgICAgICBzdHJpZGVzIGJ1ZmZlciBpbmZvIHN0cnVjdHVyZSB3aWxsIGJlIGZpbGxlZCBpbiBjb3JyZWN0bHkuCi0KLSAgICAgIC4uIGM6bWFjcm86OiBQeUJVRl9JTkRJUkVDVAotCi0gICAgICAgICBUaGlzIGZsYWcgaW5kaWNhdGVzIHRoZSByZXR1cm5lZCBidWZmZXIgbXVzdCBoYXZlIHN1Ym9mZnNldHMKLSAgICAgICAgIGluZm9ybWF0aW9uICh3aGljaCBjYW4gYmUgTlVMTCBpZiBubyBzdWJvZmZzZXRzIGFyZSBuZWVkZWQpLiAgVGhpcyBjYW4KLSAgICAgICAgIGJlIHVzZWQgd2hlbiB0aGUgY29uc3VtZXIgY2FuIGhhbmRsZSBpbmRpcmVjdCBhcnJheSByZWZlcmVuY2luZyBpbXBsaWVkCi0gICAgICAgICBieSB0aGVzZSBzdWJvZmZzZXRzLiBUaGlzIGltcGxpZXMgOmM6bWFjcm86YFB5QlVGX1NUUklERVNgLgotCi0gICAgICAuLiBjOm1hY3JvOjogUHlCVUZfRk9STUFUCi0KLSAgICAgICAgIFRoZSByZXR1cm5lZCBidWZmZXIgbXVzdCBoYXZlIHRydWUgZm9ybWF0IGluZm9ybWF0aW9uIGlmIHRoaXMgZmxhZyBpcwotICAgICAgICAgcHJvdmlkZWQuICBUaGlzIHdvdWxkIGJlIHVzZWQgd2hlbiB0aGUgY29uc3VtZXIgaXMgZ29pbmcgdG8gYmUgY2hlY2tpbmcKLSAgICAgICAgIGZvciB3aGF0ICdraW5kJyBvZiBkYXRhIGlzIGFjdHVhbGx5IHN0b3JlZC4gIEFuIGV4cG9ydGVyIHNob3VsZCBhbHdheXMKLSAgICAgICAgIGJlIGFibGUgdG8gcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uIGlmIHJlcXVlc3RlZC4gIElmIGZvcm1hdCBpcyBub3QKLSAgICAgICAgIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHRoZW4gdGhlIGZvcm1hdCBtdXN0IGJlIHJldHVybmVkIGFzICpOVUxMKiAod2hpY2gKLSAgICAgICAgIG1lYW5zIGBgJ0InYGAsIG9yIHVuc2lnbmVkIGJ5dGVzKS4KLQotICAgICAgLi4gYzptYWNybzo6IFB5QlVGX1NUUklERUQKLQotICAgICAgICAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIGBgKFB5QlVGX1NUUklERVMgfCBQeUJVRl9XUklUQUJMRSlgYC4KLQotICAgICAgLi4gYzptYWNybzo6IFB5QlVGX1NUUklERURfUk8KLQotICAgICAgICAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIGBgKFB5QlVGX1NUUklERVMpYGAuCi0KLSAgICAgIC4uIGM6bWFjcm86OiBQeUJVRl9SRUNPUkRTCi0KLSAgICAgICAgIFRoaXMgaXMgZXF1aXZhbGVudCB0byBgYChQeUJVRl9TVFJJREVTIHwgUHlCVUZfRk9STUFUIHwKLSAgICAgICAgIFB5QlVGX1dSSVRBQkxFKWBgLgotCi0gICAgICAuLiBjOm1hY3JvOjogUHlCVUZfUkVDT1JEU19STwotCi0gICAgICAgICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gYGAoUHlCVUZfU1RSSURFUyB8IFB5QlVGX0ZPUk1BVClgYC4KLQotICAgICAgLi4gYzptYWNybzo6IFB5QlVGX0ZVTEwKLQotICAgICAgICAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIGBgKFB5QlVGX0lORElSRUNUIHwgUHlCVUZfRk9STUFUIHwKLSAgICAgICAgIFB5QlVGX1dSSVRBQkxFKWBgLgotCi0gICAgICAuLiBjOm1hY3JvOjogUHlCVUZfRlVMTF9STwotCi0gICAgICAgICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gYGAoUHlCVUZfSU5ESVJFQ1QgfCBQeUJVRl9GT1JNQVQpYGAuCi0KLSAgICAgIC4uIGM6bWFjcm86OiBQeUJVRl9DT05USUcKLQotICAgICAgICAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIGBgKFB5QlVGX05EIHwgUHlCVUZfV1JJVEFCTEUpYGAuCi0KLSAgICAgIC4uIGM6bWFjcm86OiBQeUJVRl9DT05USUdfUk8KLQotICAgICAgICAgVGhpcyBpcyBlcXVpdmFsZW50IHRvIGBgKFB5QlVGX05EKWBgLgorICAgU3VjY2Vzc2Z1bCBjYWxscyB0byA6YzpmdW5jOmBQeU9iamVjdF9HZXRCdWZmZXJgIG11c3QgYmUgcGFpcmVkIHdpdGggY2FsbHMKKyAgIHRvIDpjOmZ1bmM6YFB5QnVmZmVyX1JlbGVhc2VgLCBzaW1pbGFyIHRvIDpjOmZ1bmM6YG1hbGxvY2AgYW5kIDpjOmZ1bmM6YGZyZWVgLgorICAgVGh1cywgYWZ0ZXIgdGhlIGNvbnN1bWVyIGlzIGRvbmUgd2l0aCB0aGUgYnVmZmVyLCA6YzpmdW5jOmBQeUJ1ZmZlcl9SZWxlYXNlYAorICAgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlLgogCiAKIC4uIGM6ZnVuY3Rpb246OiB2b2lkIFB5QnVmZmVyX1JlbGVhc2UoUHlfYnVmZmVyICp2aWV3KQogCi0gICBSZWxlYXNlIHRoZSBidWZmZXIgKnZpZXcqLiAgVGhpcyBzaG91bGQgYmUgY2FsbGVkIHdoZW4gdGhlIGJ1ZmZlciBpcyBubwotICAgbG9uZ2VyIGJlaW5nIHVzZWQgYXMgaXQgbWF5IGZyZWUgbWVtb3J5IGZyb20gaXQuCisgICBSZWxlYXNlIHRoZSBidWZmZXIgKnZpZXcqIGFuZCBkZWNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBmb3IKKyAgIDpjOm1lbWJlcjpgdmlldy0+b2JqYC4gVGhpcyBmdW5jdGlvbiBNVVNUIGJlIGNhbGxlZCB3aGVuIHRoZSBidWZmZXIKKyAgIGlzIG5vIGxvbmdlciBiZWluZyB1c2VkLCBvdGhlcndpc2UgcmVmZXJlbmNlIGxlYWtzIG1heSBvY2N1ci4KKworICAgSXQgaXMgYW4gZXJyb3IgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIG9uIGEgYnVmZmVyIHRoYXQgd2FzIG5vdCBvYnRhaW5lZCB2aWEKKyAgIDpjOmZ1bmM6YFB5T2JqZWN0X0dldEJ1ZmZlcmAuCiAKIAogLi4gYzpmdW5jdGlvbjo6IFB5X3NzaXplX3QgUHlCdWZmZXJfU2l6ZUZyb21Gb3JtYXQoY29uc3QgY2hhciAqKQogCi0gICBSZXR1cm4gdGhlIGltcGxpZWQgOmM6ZGF0YTpgflB5X2J1ZmZlci5pdGVtc2l6ZWAgZnJvbSB0aGUgc3RydWN0LXN0eXBlCi0gICA6YzpkYXRhOmB+UHlfYnVmZmVyLmZvcm1hdGAuCisgICBSZXR1cm4gdGhlIGltcGxpZWQgOmM6ZGF0YTpgflB5X2J1ZmZlci5pdGVtc2l6ZWAgZnJvbSA6YzpkYXRhOmB+UHlfYnVmZmVyLmZvcm1hdGAuCisgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCiAKIAotLi4gYzpmdW5jdGlvbjo6IGludCBQeUJ1ZmZlcl9Jc0NvbnRpZ3VvdXMoUHlfYnVmZmVyICp2aWV3LCBjaGFyIGZvcnRyYW4pCisuLiBjOmZ1bmN0aW9uOjogaW50IFB5QnVmZmVyX0lzQ29udGlndW91cyhQeV9idWZmZXIgKnZpZXcsIGNoYXIgb3JkZXIpCiAKLSAgIFJldHVybiAxIGlmIHRoZSBtZW1vcnkgZGVmaW5lZCBieSB0aGUgKnZpZXcqIGlzIEMtc3R5bGUgKCpmb3J0cmFuKiBpcwotICAgYGAnQydgYCkgb3IgRm9ydHJhbi1zdHlsZSAoKmZvcnRyYW4qIGlzIGBgJ0YnYGApIGNvbnRpZ3VvdXMgb3IgZWl0aGVyIG9uZQotICAgKCpmb3J0cmFuKiBpcyBgYCdBJ2BgKS4gIFJldHVybiAwIG90aGVyd2lzZS4KKyAgIFJldHVybiAxIGlmIHRoZSBtZW1vcnkgZGVmaW5lZCBieSB0aGUgKnZpZXcqIGlzIEMtc3R5bGUgKCpvcmRlciogaXMKKyAgIGBgJ0MnYGApIG9yIEZvcnRyYW4tc3R5bGUgKCpvcmRlciogaXMgYGAnRidgYCkgY29udGlndW91cyBvciBlaXRoZXIgb25lCisgICAoKm9yZGVyKiBpcyBgYCdBJ2BgKS4gIFJldHVybiAwIG90aGVyd2lzZS4KIAogCi0uLiBjOmZ1bmN0aW9uOjogdm9pZCBQeUJ1ZmZlcl9GaWxsQ29udGlndW91c1N0cmlkZXMoaW50IG5kaW0sIFB5X3NzaXplX3QgKnNoYXBlLCBQeV9zc2l6ZV90ICpzdHJpZGVzLCBQeV9zc2l6ZV90IGl0ZW1zaXplLCBjaGFyIGZvcnRyYW4pCisuLiBjOmZ1bmN0aW9uOjogdm9pZCBQeUJ1ZmZlcl9GaWxsQ29udGlndW91c1N0cmlkZXMoaW50IG5kaW0sIFB5X3NzaXplX3QgKnNoYXBlLCBQeV9zc2l6ZV90ICpzdHJpZGVzLCBQeV9zc2l6ZV90IGl0ZW1zaXplLCBjaGFyIG9yZGVyKQogCiAgICBGaWxsIHRoZSAqc3RyaWRlcyogYXJyYXkgd2l0aCBieXRlLXN0cmlkZXMgb2YgYSBjb250aWd1b3VzIChDLXN0eWxlIGlmCi0gICAqZm9ydHJhbiogaXMgYGAnQydgYCBvciBGb3J0cmFuLXN0eWxlIGlmICpmb3J0cmFuKiBpcyBgYCdGJ2BgKSBhcnJheSBvZiB0aGUKKyAgICpvcmRlciogaXMgYGAnQydgYCBvciBGb3J0cmFuLXN0eWxlIGlmICpvcmRlciogaXMgYGAnRidgYCkgYXJyYXkgb2YgdGhlCiAgICBnaXZlbiBzaGFwZSB3aXRoIHRoZSBnaXZlbiBudW1iZXIgb2YgYnl0ZXMgcGVyIGVsZW1lbnQuCiAKIAotLi4gYzpmdW5jdGlvbjo6IGludCBQeUJ1ZmZlcl9GaWxsSW5mbyhQeV9idWZmZXIgKnZpZXcsIFB5T2JqZWN0ICpvYmosIHZvaWQgKmJ1ZiwgUHlfc3NpemVfdCBsZW4sIGludCByZWFkb25seSwgaW50IGluZm9mbGFncykKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlCdWZmZXJfRmlsbEluZm8oUHlfYnVmZmVyICp2aWV3LCBQeU9iamVjdCAqZXhwb3J0ZXIsIHZvaWQgKmJ1ZiwgUHlfc3NpemVfdCBsZW4sIGludCByZWFkb25seSwgaW50IGZsYWdzKQogCi0gICBGaWxsIGluIGEgYnVmZmVyLWluZm8gc3RydWN0dXJlLCAqdmlldyosIGNvcnJlY3RseSBmb3IgYW4gZXhwb3J0ZXIgdGhhdCBjYW4KLSAgIG9ubHkgc2hhcmUgYSBjb250aWd1b3VzIGNodW5rIG9mIG1lbW9yeSBvZiAidW5zaWduZWQgYnl0ZXMiIG9mIHRoZSBnaXZlbgotICAgbGVuZ3RoLiAgUmV0dXJuIDAgb24gc3VjY2VzcyBhbmQgLTEgKHdpdGggcmFpc2luZyBhbiBlcnJvcikgb24gZXJyb3IuCisgICBIYW5kbGUgYnVmZmVyIHJlcXVlc3RzIGZvciBhbiBleHBvcnRlciB0aGF0IHdhbnRzIHRvIGV4cG9zZSAqYnVmKiBvZiBzaXplICpsZW4qCisgICB3aXRoIHdyaXRhYmlsaXR5IHNldCBhY2NvcmRpbmcgdG8gKnJlYWRvbmx5Ki4gKmJ1ZiogaXMgaW50ZXJwcmV0ZWQgYXMgYSBzZXF1ZW5jZQorICAgb2YgdW5zaWduZWQgYnl0ZXMuCisKKyAgIFRoZSAqZmxhZ3MqIGFyZ3VtZW50IGluZGljYXRlcyB0aGUgcmVxdWVzdCB0eXBlLiBUaGlzIGZ1bmN0aW9uIGFsd2F5cyBmaWxscyBpbgorICAgKnZpZXcqIGFzIHNwZWNpZmllZCBieSBmbGFncywgdW5sZXNzICpidWYqIGhhcyBiZWVuIGRlc2lnbmF0ZWQgYXMgcmVhZC1vbmx5CisgICBhbmQgOmM6bWFjcm86YFB5QlVGX1dSSVRBQkxFYCBpcyBzZXQgaW4gKmZsYWdzKi4KKworICAgT24gc3VjY2Vzcywgc2V0IDpjOm1lbWJlcjpgdmlldy0+b2JqYCB0byBhIG5ldyByZWZlcmVuY2UgdG8gKmV4cG9ydGVyKiBhbmQKKyAgIHJldHVybiAwLiBPdGhlcndpc2UsIHJhaXNlIDpjOmRhdGE6YFB5RXhjX0J1ZmZlckVycm9yYCwgc2V0CisgICA6YzptZW1iZXI6YHZpZXctPm9iamAgdG8gKk5VTEwqIGFuZCByZXR1cm4gLTE7CisKKyAgIElmIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBhcyBwYXJ0IG9mIGEgOnJlZjpgZ2V0YnVmZmVycHJvYyA8YnVmZmVyLXN0cnVjdHM+YCwKKyAgICpleHBvcnRlciogTVVTVCBiZSBzZXQgdG8gdGhlIGV4cG9ydGluZyBvYmplY3QuIE90aGVyd2lzZSwgKmV4cG9ydGVyKiBNVVNUCisgICBiZSBOVUxMLgorCisKIApkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL2NvZGUucnN0IGIvRG9jL2MtYXBpL2NvZGUucnN0CmluZGV4IDY5MzJiYjEuLjU3ZTgwNzIgMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS9jb2RlLnJzdAorKysgYi9Eb2MvYy1hcGkvY29kZS5yc3QKQEAgLTMxLDExICszMSwxMSBAQAogCiAgICBSZXR1cm4gdHJ1ZSBpZiAqY28qIGlzIGEgOmNsYXNzOmBjb2RlYCBvYmplY3QKIAotLi4gYzpmdW5jdGlvbjo6IGludCBQeUNvZGVfR2V0TnVtRnJlZShQeU9iamVjdCAqY28pCisuLiBjOmZ1bmN0aW9uOjogaW50IFB5Q29kZV9HZXROdW1GcmVlKFB5Q29kZU9iamVjdCAqY28pCiAKICAgIFJldHVybiB0aGUgbnVtYmVyIG9mIGZyZWUgdmFyaWFibGVzIGluICpjbyouCiAKLS4uIGM6ZnVuY3Rpb246OiBQeUNvZGVPYmplY3QgKlB5Q29kZV9OZXcoaW50IGFyZ2NvdW50LCBpbnQga3dvbmx5YXJnY291bnQsIGludCBubG9jYWxzLCBpbnQgc3RhY2tzaXplLCBpbnQgZmxhZ3MsIFB5T2JqZWN0ICpjb2RlLCBQeU9iamVjdCAqY29uc3RzLCBQeU9iamVjdCAqbmFtZXMsIFB5T2JqZWN0ICp2YXJuYW1lcywgUHlPYmplY3QgKmZyZWV2YXJzLCBQeU9iamVjdCAqY2VsbHZhcnMsIFB5T2JqZWN0ICpmaWxlbmFtZSwgUHlPYmplY3QgKm5hbWUsIGludCBmaXJzdGxpbmVubywgUHlPYmplY3QgKmxub3RhYikKKy4uIGM6ZnVuY3Rpb246OiBQeUNvZGVPYmplY3QqIFB5Q29kZV9OZXcoaW50IGFyZ2NvdW50LCBpbnQga3dvbmx5YXJnY291bnQsIGludCBubG9jYWxzLCBpbnQgc3RhY2tzaXplLCBpbnQgZmxhZ3MsIFB5T2JqZWN0ICpjb2RlLCBQeU9iamVjdCAqY29uc3RzLCBQeU9iamVjdCAqbmFtZXMsIFB5T2JqZWN0ICp2YXJuYW1lcywgUHlPYmplY3QgKmZyZWV2YXJzLCBQeU9iamVjdCAqY2VsbHZhcnMsIFB5T2JqZWN0ICpmaWxlbmFtZSwgUHlPYmplY3QgKm5hbWUsIGludCBmaXJzdGxpbmVubywgUHlPYmplY3QgKmxub3RhYikKIAogICAgUmV0dXJuIGEgbmV3IGNvZGUgb2JqZWN0LiAgSWYgeW91IG5lZWQgYSBkdW1teSBjb2RlIG9iamVjdCB0bwogICAgY3JlYXRlIGEgZnJhbWUsIHVzZSA6YzpmdW5jOmBQeUNvZGVfTmV3RW1wdHlgIGluc3RlYWQuICBDYWxsaW5nCkBAIC00Myw3ICs0Myw3IEBACiAgICB2ZXJzaW9uIHNpbmNlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBieXRlY29kZSBjaGFuZ2VzIG9mdGVuLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBpbnQgUHlDb2RlX05ld0VtcHR5KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpmdW5jbmFtZSwgaW50IGZpcnN0bGluZW5vKQorLi4gYzpmdW5jdGlvbjo6IFB5Q29kZU9iamVjdCogUHlDb2RlX05ld0VtcHR5KGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBjb25zdCBjaGFyICpmdW5jbmFtZSwgaW50IGZpcnN0bGluZW5vKQogCiAgICBSZXR1cm4gYSBuZXcgZW1wdHkgY29kZSBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGZpbGVuYW1lLAogICAgZnVuY3Rpb24gbmFtZSwgYW5kIGZpcnN0IGxpbmUgbnVtYmVyLiAgSXQgaXMgaWxsZWdhbCB0bwpkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL2NvbnZlcnNpb24ucnN0IGIvRG9jL2MtYXBpL2NvbnZlcnNpb24ucnN0CmluZGV4IGRmYzBhM2EuLjk1NzhmOTggMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS9jb252ZXJzaW9uLnJzdAorKysgYi9Eb2MvYy1hcGkvY29udmVyc2lvbi5yc3QKQEAgLTExOSwxMyArMTE5LDEzIEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKIAogCi0uLiBjOmZ1bmN0aW9uOjogY2hhciogUHlPU19zdHJpY21wKGNoYXIgKnMxLCBjaGFyICpzMikKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlPU19zdHJpY21wKGNoYXIgKnMxLCBjaGFyICpzMikKIAogICAgQ2FzZSBpbnNlbnNpdGl2ZSBjb21wYXJpc29uIG9mIHN0cmluZ3MuIFRoZSBmdW5jdGlvbiB3b3JrcyBhbG1vc3QKICAgIGlkZW50aWNhbGx5IHRvIDpjOmZ1bmM6YHN0cmNtcGAgZXhjZXB0IHRoYXQgaXQgaWdub3JlcyB0aGUgY2FzZS4KIAogCi0uLiBjOmZ1bmN0aW9uOjogY2hhciogUHlPU19zdHJuaWNtcChjaGFyICpzMSwgY2hhciAqczIsIFB5X3NzaXplX3QgIHNpemUpCisuLiBjOmZ1bmN0aW9uOjogaW50IFB5T1Nfc3RybmljbXAoY2hhciAqczEsIGNoYXIgKnMyLCBQeV9zc2l6ZV90ICBzaXplKQogCiAgICBDYXNlIGluc2Vuc2l0aXZlIGNvbXBhcmlzb24gb2Ygc3RyaW5ncy4gVGhlIGZ1bmN0aW9uIHdvcmtzIGFsbW9zdAogICAgaWRlbnRpY2FsbHkgdG8gOmM6ZnVuYzpgc3RybmNtcGAgZXhjZXB0IHRoYXQgaXQgaWdub3JlcyB0aGUgY2FzZS4KZGlmZiAtLWdpdCBhL0RvYy9jLWFwaS9kYXRldGltZS5yc3QgYi9Eb2MvYy1hcGkvZGF0ZXRpbWUucnN0CmluZGV4IGZjZDEzOTUuLjM5NTQyYmQgMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS9kYXRldGltZS5yc3QKKysrIGIvRG9jL2MtYXBpL2RhdGV0aW1lLnJzdApAQCAtMTcwLDYgKzE3MCwzMSBAQAogICAgUmV0dXJuIHRoZSBtaWNyb3NlY29uZCwgYXMgYW4gaW50IGZyb20gMCB0aHJvdWdoIDk5OTk5OS4KIAogCitNYWNyb3MgdG8gZXh0cmFjdCBmaWVsZHMgZnJvbSB0aW1lIGRlbHRhIG9iamVjdHMuICBUaGUgYXJndW1lbnQgbXVzdCBiZSBhbgoraW5zdGFuY2Ugb2YgOmM6ZGF0YTpgUHlEYXRlVGltZV9EZWx0YWAsIGluY2x1ZGluZyBzdWJjbGFzc2VzLiBUaGUgYXJndW1lbnQgbXVzdAorbm90IGJlICpOVUxMKiwgYW5kIHRoZSB0eXBlIGlzIG5vdCBjaGVja2VkOgorCisuLiBjOmZ1bmN0aW9uOjogaW50IFB5RGF0ZVRpbWVfREVMVEFfR0VUX0RBWVMoUHlEYXRlVGltZV9EZWx0YSAqbykKKworICAgUmV0dXJuIHRoZSBudW1iZXIgb2YgZGF5cywgYXMgYW4gaW50IGZyb20gLTk5OTk5OTk5OSB0byA5OTk5OTk5OTkuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlEYXRlVGltZV9ERUxUQV9HRVRfU0VDT05EUyhQeURhdGVUaW1lX0RlbHRhICpvKQorCisgICBSZXR1cm4gdGhlIG51bWJlciBvZiBzZWNvbmRzLCBhcyBhbiBpbnQgZnJvbSAwIHRocm91Z2ggODYzOTkuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlEYXRlVGltZV9ERUxUQV9HRVRfTUlDUk9TRUNPTkQoUHlEYXRlVGltZV9EZWx0YSAqbykKKworICAgUmV0dXJuIHRoZSBudW1iZXIgb2YgbWljcm9zZWNvbmRzLCBhcyBhbiBpbnQgZnJvbSAwIHRocm91Z2ggOTk5OTk5LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiBNYWNyb3MgZm9yIHRoZSBjb252ZW5pZW5jZSBvZiBtb2R1bGVzIGltcGxlbWVudGluZyB0aGUgREIgQVBJOgogCiAuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5RGF0ZVRpbWVfRnJvbVRpbWVzdGFtcChQeU9iamVjdCAqYXJncykKZGlmZiAtLWdpdCBhL0RvYy9jLWFwaS9kaWN0LnJzdCBiL0RvYy9jLWFwaS9kaWN0LnJzdAppbmRleCA2ZGY4NGUwLi42YmFjYzMyIDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvZGljdC5yc3QKKysrIGIvRG9jL2MtYXBpL2RpY3QucnN0CkBAIC0zNiwxMSArMzYsMTEgQEAKICAgIFJldHVybiBhIG5ldyBlbXB0eSBkaWN0aW9uYXJ5LCBvciAqTlVMTCogb24gZmFpbHVyZS4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5RGljdFByb3h5X05ldyhQeU9iamVjdCAqZGljdCkKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlEaWN0UHJveHlfTmV3KFB5T2JqZWN0ICptYXBwaW5nKQogCi0gICBSZXR1cm4gYSBwcm94eSBvYmplY3QgZm9yIGEgbWFwcGluZyB3aGljaCBlbmZvcmNlcyByZWFkLW9ubHkgYmVoYXZpb3IuCi0gICBUaGlzIGlzIG5vcm1hbGx5IHVzZWQgdG8gY3JlYXRlIGEgcHJveHkgdG8gcHJldmVudCBtb2RpZmljYXRpb24gb2YgdGhlCi0gICBkaWN0aW9uYXJ5IGZvciBub24tZHluYW1pYyBjbGFzcyB0eXBlcy4KKyAgIFJldHVybiBhIDpjbGFzczpgdHlwZXMuTWFwcGluZ1Byb3h5VHlwZWAgb2JqZWN0IGZvciBhIG1hcHBpbmcgd2hpY2gKKyAgIGVuZm9yY2VzIHJlYWQtb25seSBiZWhhdmlvci4gIFRoaXMgaXMgbm9ybWFsbHkgdXNlZCB0byBjcmVhdGUgYSB2aWV3IHRvCisgICBwcmV2ZW50IG1vZGlmaWNhdGlvbiBvZiB0aGUgZGljdGlvbmFyeSBmb3Igbm9uLWR5bmFtaWMgY2xhc3MgdHlwZXMuCiAKIAogLi4gYzpmdW5jdGlvbjo6IHZvaWQgUHlEaWN0X0NsZWFyKFB5T2JqZWN0ICpwKQpAQCAtMjA5LDMgKzIwOSwxMCBAQAogICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlcTI6CiAgICAgICAgICAgICAgIGlmIG92ZXJyaWRlIG9yIGtleSBub3QgaW4gYToKICAgICAgICAgICAgICAgICAgIGFba2V5XSA9IHZhbHVlCisKKworLi4gYzpmdW5jdGlvbjo6IGludCBQeURpY3RfQ2xlYXJGcmVlTGlzdCgpCisKKyAgIENsZWFyIHRoZSBmcmVlIGxpc3QuIFJldHVybiB0aGUgdG90YWwgbnVtYmVyIG9mIGZyZWVkIGl0ZW1zLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKZGlmZiAtLWdpdCBhL0RvYy9jLWFwaS9leGNlcHRpb25zLnJzdCBiL0RvYy9jLWFwaS9leGNlcHRpb25zLnJzdAppbmRleCA2ZjEzYzgwLi45YTY2YjdmIDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvZXhjZXB0aW9ucy5yc3QKKysrIGIvRG9jL2MtYXBpL2V4Y2VwdGlvbnMucnN0CkBAIC0xMjksNiArMTI5LDQxIEBACiAgICAgICBleGNlcHRpb24gc3RhdGUuCiAKIAorLi4gYzpmdW5jdGlvbjo6IHZvaWQgUHlFcnJfR2V0RXhjSW5mbyhQeU9iamVjdCAqKnB0eXBlLCBQeU9iamVjdCAqKnB2YWx1ZSwgUHlPYmplY3QgKipwdHJhY2ViYWNrKQorCisgICBSZXRyaWV2ZSB0aGUgZXhjZXB0aW9uIGluZm8sIGFzIGtub3duIGZyb20gYGBzeXMuZXhjX2luZm8oKWBgLiAgVGhpcyByZWZlcnMKKyAgIHRvIGFuIGV4Y2VwdGlvbiB0aGF0IHdhcyBhbHJlYWR5IGNhdWdodCwgbm90IHRvIGFuIGV4Y2VwdGlvbiB0aGF0IHdhcworICAgZnJlc2hseSByYWlzZWQuICBSZXR1cm5zIG5ldyByZWZlcmVuY2VzIGZvciB0aGUgdGhyZWUgb2JqZWN0cywgYW55IG9mIHdoaWNoCisgICBtYXkgYmUgKk5VTEwqLiAgRG9lcyBub3QgbW9kaWZ5IHRoZSBleGNlcHRpb24gaW5mbyBzdGF0ZS4KKworICAgLi4gbm90ZTo6CisKKyAgICAgIFRoaXMgZnVuY3Rpb24gaXMgbm90IG5vcm1hbGx5IHVzZWQgYnkgY29kZSB0aGF0IHdhbnRzIHRvIGhhbmRsZSBleGNlcHRpb25zLgorICAgICAgUmF0aGVyLCBpdCBjYW4gYmUgdXNlZCB3aGVuIGNvZGUgbmVlZHMgdG8gc2F2ZSBhbmQgcmVzdG9yZSB0aGUgZXhjZXB0aW9uCisgICAgICBzdGF0ZSB0ZW1wb3JhcmlseS4gIFVzZSA6YzpmdW5jOmBQeUVycl9TZXRFeGNJbmZvYCB0byByZXN0b3JlIG9yIGNsZWFyIHRoZQorICAgICAgZXhjZXB0aW9uIHN0YXRlLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogdm9pZCBQeUVycl9TZXRFeGNJbmZvKFB5T2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqdmFsdWUsIFB5T2JqZWN0ICp0cmFjZWJhY2spCisKKyAgIFNldCB0aGUgZXhjZXB0aW9uIGluZm8sIGFzIGtub3duIGZyb20gYGBzeXMuZXhjX2luZm8oKWBgLiAgVGhpcyByZWZlcnMKKyAgIHRvIGFuIGV4Y2VwdGlvbiB0aGF0IHdhcyBhbHJlYWR5IGNhdWdodCwgbm90IHRvIGFuIGV4Y2VwdGlvbiB0aGF0IHdhcworICAgZnJlc2hseSByYWlzZWQuICBUaGlzIGZ1bmN0aW9uIHN0ZWFscyB0aGUgcmVmZXJlbmNlcyBvZiB0aGUgYXJndW1lbnRzLgorICAgVG8gY2xlYXIgdGhlIGV4Y2VwdGlvbiBzdGF0ZSwgcGFzcyAqTlVMTCogZm9yIGFsbCB0aHJlZSBhcmd1bWVudHMuCisgICBGb3IgZ2VuZXJhbCBydWxlcyBhYm91dCB0aGUgdGhyZWUgYXJndW1lbnRzLCBzZWUgOmM6ZnVuYzpgUHlFcnJfUmVzdG9yZWAuCisKKyAgIC4uIG5vdGU6OgorCisgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBub3JtYWxseSB1c2VkIGJ5IGNvZGUgdGhhdCB3YW50cyB0byBoYW5kbGUgZXhjZXB0aW9ucy4KKyAgICAgIFJhdGhlciwgaXQgY2FuIGJlIHVzZWQgd2hlbiBjb2RlIG5lZWRzIHRvIHNhdmUgYW5kIHJlc3RvcmUgdGhlIGV4Y2VwdGlvbgorICAgICAgc3RhdGUgdGVtcG9yYXJpbHkuICBVc2UgOmM6ZnVuYzpgUHlFcnJfR2V0RXhjSW5mb2AgdG8gcmVhZCB0aGUgZXhjZXB0aW9uCisgICAgICBzdGF0ZS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gYzpmdW5jdGlvbjo6IHZvaWQgUHlFcnJfU2V0U3RyaW5nKFB5T2JqZWN0ICp0eXBlLCBjb25zdCBjaGFyICptZXNzYWdlKQogCiAgICBUaGlzIGlzIHRoZSBtb3N0IGNvbW1vbiB3YXkgdG8gc2V0IHRoZSBlcnJvciBpbmRpY2F0b3IuICBUaGUgZmlyc3QgYXJndW1lbnQKQEAgLTIzMCw2ICsyNjUsMTYgQEAKICAgIHBhcmFtZXRlciBzcGVjaWZ5aW5nIHRoZSBleGNlcHRpb24gdHlwZSB0byBiZSByYWlzZWQuIEF2YWlsYWJpbGl0eTogV2luZG93cy4KIAogCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5RXJyX1NldEltcG9ydEVycm9yKFB5T2JqZWN0ICptc2csIFB5T2JqZWN0ICpuYW1lLCBQeU9iamVjdCAqcGF0aCkKKworICAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRvIHJhaXNlIDpleGM6YEltcG9ydEVycm9yYC4gKm1zZyogd2lsbCBiZQorICAgc2V0IGFzIHRoZSBleGNlcHRpb24ncyBtZXNzYWdlIHN0cmluZy4gKm5hbWUqIGFuZCAqcGF0aCosIGJvdGggb2Ygd2hpY2ggY2FuCisgICBiZSBgYE5VTExgYCwgd2lsbCBiZSBzZXQgYXMgdGhlIDpleGM6YEltcG9ydEVycm9yYCdzIHJlc3BlY3RpdmUgYGBuYW1lYGAKKyAgIGFuZCBgYHBhdGhgYCBhdHRyaWJ1dGVzLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAuLiBjOmZ1bmN0aW9uOjogdm9pZCBQeUVycl9TeW50YXhMb2NhdGlvbkV4KGNoYXIgKmZpbGVuYW1lLCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCkKIAogICAgU2V0IGZpbGUsIGxpbmUsIGFuZCBvZmZzZXQgaW5mb3JtYXRpb24gZm9yIHRoZSBjdXJyZW50IGV4Y2VwdGlvbi4gIElmIHRoZQpAQCAtMjM4LDcgKzI4Myw3IEBACiAgICBpcyBhIDpleGM6YFN5bnRheEVycm9yYC4gKmZpbGVuYW1lKiBpcyBkZWNvZGVkIGZyb20gdGhlIGZpbGVzeXN0ZW0gZW5jb2RpbmcKICAgICg6ZnVuYzpgc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZ2ApLgogCi0uLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCiAKIC4uIGM6ZnVuY3Rpb246OiB2b2lkIFB5RXJyX1N5bnRheExvY2F0aW9uKGNoYXIgKmZpbGVuYW1lLCBpbnQgbGluZW5vKQpAQCAtMzExLDYgKzM1Niw3IEBACiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCisKIC4uIGM6ZnVuY3Rpb246OiBpbnQgUHlFcnJfQ2hlY2tTaWduYWxzKCkKIAogICAgLi4gaW5kZXg6OgpAQCAtNDIxLDE3ICs0NjcsMTggQEAKIAogLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeUV4Y2VwdGlvbl9HZXRDYXVzZShQeU9iamVjdCAqZXgpCiAKLSAgIFJldHVybiB0aGUgY2F1c2UgKGFub3RoZXIgZXhjZXB0aW9uIGluc3RhbmNlIHNldCBieSBgYHJhaXNlIC4uLiBmcm9tIC4uLmBgKQotICAgYXNzb2NpYXRlZCB3aXRoIHRoZSBleGNlcHRpb24gYXMgYSBuZXcgcmVmZXJlbmNlLCBhcyBhY2Nlc3NpYmxlIGZyb20gUHl0aG9uCi0gICB0aHJvdWdoIDphdHRyOmBfX2NhdXNlX19gLiAgSWYgdGhlcmUgaXMgbm8gY2F1c2UgYXNzb2NpYXRlZCwgdGhpcyByZXR1cm5zCi0gICAqTlVMTCouCisgICBSZXR1cm4gdGhlIGNhdXNlIChlaXRoZXIgYW4gZXhjZXB0aW9uIGluc3RhbmNlLCBvciA6Y29uc3Q6YE5vbmVgLAorICAgc2V0IGJ5IGBgcmFpc2UgLi4uIGZyb20gLi4uYGApIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXhjZXB0aW9uIGFzIGEgbmV3CisgICByZWZlcmVuY2UsIGFzIGFjY2Vzc2libGUgZnJvbSBQeXRob24gdGhyb3VnaCA6YXR0cjpgX19jYXVzZV9fYC4KIAogCiAuLiBjOmZ1bmN0aW9uOjogdm9pZCBQeUV4Y2VwdGlvbl9TZXRDYXVzZShQeU9iamVjdCAqZXgsIFB5T2JqZWN0ICpjdHgpCiAKICAgIFNldCB0aGUgY2F1c2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBleGNlcHRpb24gdG8gKmN0eCouICBVc2UgKk5VTEwqIHRvIGNsZWFyCi0gICBpdC4gIFRoZXJlIGlzIG5vIHR5cGUgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgKmN0eCogaXMgYW4gZXhjZXB0aW9uIGluc3RhbmNlLgotICAgVGhpcyBzdGVhbHMgYSByZWZlcmVuY2UgdG8gKmN0eCouCisgICBpdC4gIFRoZXJlIGlzIG5vIHR5cGUgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgKmN0eCogaXMgZWl0aGVyIGFuIGV4Y2VwdGlvbgorICAgaW5zdGFuY2Ugb3IgOmNvbnN0OmBOb25lYC4gIFRoaXMgc3RlYWxzIGEgcmVmZXJlbmNlIHRvICpjdHgqLgorCisgICA6YXR0cjpgX19zdXBwcmVzc19jb250ZXh0X19gIGlzIGltcGxpY2l0bHkgc2V0IHRvIGBgVHJ1ZWBgIGJ5IHRoaXMgZnVuY3Rpb24uCiAKIAogLi4gX3VuaWNvZGVleGNlcHRpb25zOgpAQCAtNTI1LDcgKzU3Miw3IEBACiAKICAgIE1hcmtzIGEgcG9pbnQgd2hlcmUgYSByZWN1cnNpdmUgQy1sZXZlbCBjYWxsIGlzIGFib3V0IHRvIGJlIHBlcmZvcm1lZC4KIAotICAgSWYgOmNvbnN0OmBVU0VfU1RBQ0tDSEVDS2AgaXMgZGVmaW5lZCwgdGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIHRoZSBPUworICAgSWYgOmNvbnN0OmBVU0VfU1RBQ0tDSEVDS2AgaXMgZGVmaW5lZCwgdGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIE9TCiAgICBzdGFjayBvdmVyZmxvd2VkIHVzaW5nIDpjOmZ1bmM6YFB5T1NfQ2hlY2tTdGFja2AuICBJbiB0aGlzIGlzIHRoZSBjYXNlLCBpdAogICAgc2V0cyBhIDpleGM6YE1lbW9yeUVycm9yYCBhbmQgcmV0dXJucyBhIG5vbnplcm8gdmFsdWUuCiAKQEAgLTU4Miw2NSArNjI5LDExNiBAQAogOmM6dHlwZTpgUHlPYmplY3RcKmA7IHRoZXkgYXJlIGFsbCBjbGFzcyBvYmplY3RzLiAgRm9yIGNvbXBsZXRlbmVzcywgaGVyZSBhcmUgYWxsCiB0aGUgdmFyaWFibGVzOgogCi0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IEMgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgUHl0aG9uIE5hbWUgICAgICAgICAgICAgICAgfCBOb3RlcyAgICB8Ci0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT0rCi18IDpjOmRhdGE6YFB5RXhjX0Jhc2VFeGNlcHRpb25gICAgICAgIHwgOmV4YzpgQmFzZUV4Y2VwdGlvbmAgICAgICAgfCBcKDEpICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0V4Y2VwdGlvbmAgICAgICAgICAgIHwgOmV4YzpgRXhjZXB0aW9uYCAgICAgICAgICAgfCBcKDEpICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0FyaXRobWV0aWNFcnJvcmAgICAgIHwgOmV4YzpgQXJpdGhtZXRpY0Vycm9yYCAgICAgfCBcKDEpICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0xvb2t1cEVycm9yYCAgICAgICAgIHwgOmV4YzpgTG9va3VwRXJyb3JgICAgICAgICAgfCBcKDEpICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0Fzc2VydGlvbkVycm9yYCAgICAgIHwgOmV4YzpgQXNzZXJ0aW9uRXJyb3JgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0F0dHJpYnV0ZUVycm9yYCAgICAgIHwgOmV4YzpgQXR0cmlidXRlRXJyb3JgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0VPRkVycm9yYCAgICAgICAgICAgIHwgOmV4YzpgRU9GRXJyb3JgICAgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0Vudmlyb25tZW50RXJyb3JgICAgIHwgOmV4YzpgRW52aXJvbm1lbnRFcnJvcmAgICAgfCBcKDEpICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0Zsb2F0aW5nUG9pbnRFcnJvcmAgIHwgOmV4YzpgRmxvYXRpbmdQb2ludEVycm9yYCAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0lPRXJyb3JgICAgICAgICAgICAgIHwgOmV4YzpgSU9FcnJvcmAgICAgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0ltcG9ydEVycm9yYCAgICAgICAgIHwgOmV4YzpgSW1wb3J0RXJyb3JgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0luZGV4RXJyb3JgICAgICAgICAgIHwgOmV4YzpgSW5kZXhFcnJvcmAgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0tleUVycm9yYCAgICAgICAgICAgIHwgOmV4YzpgS2V5RXJyb3JgICAgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX0tleWJvYXJkSW50ZXJydXB0YCAgIHwgOmV4YzpgS2V5Ym9hcmRJbnRlcnJ1cHRgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX01lbW9yeUVycm9yYCAgICAgICAgIHwgOmV4YzpgTWVtb3J5RXJyb3JgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX05hbWVFcnJvcmAgICAgICAgICAgIHwgOmV4YzpgTmFtZUVycm9yYCAgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3JgIHwgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX09TRXJyb3JgICAgICAgICAgICAgIHwgOmV4YzpgT1NFcnJvcmAgICAgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX092ZXJmbG93RXJyb3JgICAgICAgIHwgOmV4YzpgT3ZlcmZsb3dFcnJvcmAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX1JlZmVyZW5jZUVycm9yYCAgICAgIHwgOmV4YzpgUmVmZXJlbmNlRXJyb3JgICAgICAgfCBcKDIpICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX1J1bnRpbWVFcnJvcmAgICAgICAgIHwgOmV4YzpgUnVudGltZUVycm9yYCAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX1N5bnRheEVycm9yYCAgICAgICAgIHwgOmV4YzpgU3ludGF4RXJyb3JgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX1N5c3RlbUVycm9yYCAgICAgICAgIHwgOmV4YzpgU3lzdGVtRXJyb3JgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX1N5c3RlbUV4aXRgICAgICAgICAgIHwgOmV4YzpgU3lzdGVtRXhpdGAgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX1R5cGVFcnJvcmAgICAgICAgICAgIHwgOmV4YzpgVHlwZUVycm9yYCAgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX1ZhbHVlRXJyb3JgICAgICAgICAgIHwgOmV4YzpgVmFsdWVFcnJvcmAgICAgICAgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX1dpbmRvd3NFcnJvcmAgICAgICAgIHwgOmV4YzpgV2luZG93c0Vycm9yYCAgICAgICAgfCBcKDMpICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCi18IDpjOmRhdGE6YFB5RXhjX1plcm9EaXZpc2lvbkVycm9yYCAgIHwgOmV4YzpgWmVyb0RpdmlzaW9uRXJyb3JgICAgfCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IEMgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFB5dGhvbiBOYW1lICAgICAgICAgICAgICAgICAgICAgfCBOb3RlcyAgICB8CisrPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT0rCit8IDpjOmRhdGE6YFB5RXhjX0Jhc2VFeGNlcHRpb25gICAgICAgICAgICB8IDpleGM6YEJhc2VFeGNlcHRpb25gICAgICAgICAgICAgfCBcKDEpICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0V4Y2VwdGlvbmAgICAgICAgICAgICAgICB8IDpleGM6YEV4Y2VwdGlvbmAgICAgICAgICAgICAgICAgfCBcKDEpICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0FyaXRobWV0aWNFcnJvcmAgICAgICAgICB8IDpleGM6YEFyaXRobWV0aWNFcnJvcmAgICAgICAgICAgfCBcKDEpICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0xvb2t1cEVycm9yYCAgICAgICAgICAgICB8IDpleGM6YExvb2t1cEVycm9yYCAgICAgICAgICAgICAgfCBcKDEpICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0Fzc2VydGlvbkVycm9yYCAgICAgICAgICB8IDpleGM6YEFzc2VydGlvbkVycm9yYCAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0F0dHJpYnV0ZUVycm9yYCAgICAgICAgICB8IDpleGM6YEF0dHJpYnV0ZUVycm9yYCAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0Jsb2NraW5nSU9FcnJvcmAgICAgICAgICB8IDpleGM6YEJsb2NraW5nSU9FcnJvcmAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0Jyb2tlblBpcGVFcnJvcmAgICAgICAgICB8IDpleGM6YEJyb2tlblBpcGVFcnJvcmAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0NoaWxkUHJvY2Vzc0Vycm9yYCAgICAgICB8IDpleGM6YENoaWxkUHJvY2Vzc0Vycm9yYCAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0Nvbm5lY3Rpb25FcnJvcmAgICAgICAgICB8IDpleGM6YENvbm5lY3Rpb25FcnJvcmAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0Nvbm5lY3Rpb25BYm9ydGVkRXJyb3JgICB8IDpleGM6YENvbm5lY3Rpb25BYm9ydGVkRXJyb3JgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0Nvbm5lY3Rpb25SZWZ1c2VkRXJyb3JgICB8IDpleGM6YENvbm5lY3Rpb25SZWZ1c2VkRXJyb3JgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0Nvbm5lY3Rpb25SZXNldEVycm9yYCAgICB8IDpleGM6YENvbm5lY3Rpb25SZXNldEVycm9yYCAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0ZpbGVFeGlzdHNFcnJvcmAgICAgICAgICB8IDpleGM6YEZpbGVFeGlzdHNFcnJvcmAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0ZpbGVOb3RGb3VuZEVycm9yYCAgICAgICB8IDpleGM6YEZpbGVOb3RGb3VuZEVycm9yYCAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0VPRkVycm9yYCAgICAgICAgICAgICAgICB8IDpleGM6YEVPRkVycm9yYCAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0Zsb2F0aW5nUG9pbnRFcnJvcmAgICAgICB8IDpleGM6YEZsb2F0aW5nUG9pbnRFcnJvcmAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0ltcG9ydEVycm9yYCAgICAgICAgICAgICB8IDpleGM6YEltcG9ydEVycm9yYCAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0luZGV4RXJyb3JgICAgICAgICAgICAgICB8IDpleGM6YEluZGV4RXJyb3JgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0ludGVycnVwdGVkRXJyb3JgICAgICAgICB8IDpleGM6YEludGVycnVwdGVkRXJyb3JgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0lzQURpcmVjdG9yeUVycm9yYCAgICAgICB8IDpleGM6YElzQURpcmVjdG9yeUVycm9yYCAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0tleUVycm9yYCAgICAgICAgICAgICAgICB8IDpleGM6YEtleUVycm9yYCAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX0tleWJvYXJkSW50ZXJydXB0YCAgICAgICB8IDpleGM6YEtleWJvYXJkSW50ZXJydXB0YCAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX01lbW9yeUVycm9yYCAgICAgICAgICAgICB8IDpleGM6YE1lbW9yeUVycm9yYCAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX05hbWVFcnJvcmAgICAgICAgICAgICAgICB8IDpleGM6YE5hbWVFcnJvcmAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX05vdEFEaXJlY3RvcnlFcnJvcmAgICAgICB8IDpleGM6YE5vdEFEaXJlY3RvcnlFcnJvcmAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3JgICAgICB8IDpleGM6YE5vdEltcGxlbWVudGVkRXJyb3JgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX09TRXJyb3JgICAgICAgICAgICAgICAgICB8IDpleGM6YE9TRXJyb3JgICAgICAgICAgICAgICAgICAgfCBcKDEpICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX092ZXJmbG93RXJyb3JgICAgICAgICAgICB8IDpleGM6YE92ZXJmbG93RXJyb3JgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1Blcm1pc3Npb25FcnJvcmAgICAgICAgICB8IDpleGM6YFBlcm1pc3Npb25FcnJvcmAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1Byb2Nlc3NMb29rdXBFcnJvcmAgICAgICB8IDpleGM6YFByb2Nlc3NMb29rdXBFcnJvcmAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1JlZmVyZW5jZUVycm9yYCAgICAgICAgICB8IDpleGM6YFJlZmVyZW5jZUVycm9yYCAgICAgICAgICAgfCBcKDIpICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1J1bnRpbWVFcnJvcmAgICAgICAgICAgICB8IDpleGM6YFJ1bnRpbWVFcnJvcmAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1N5bnRheEVycm9yYCAgICAgICAgICAgICB8IDpleGM6YFN5bnRheEVycm9yYCAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1N5c3RlbUVycm9yYCAgICAgICAgICAgICB8IDpleGM6YFN5c3RlbUVycm9yYCAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1RpbWVvdXRFcnJvcmAgICAgICAgICAgICB8IDpleGM6YFRpbWVvdXRFcnJvcmAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1N5c3RlbUV4aXRgICAgICAgICAgICAgICB8IDpleGM6YFN5c3RlbUV4aXRgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1R5cGVFcnJvcmAgICAgICAgICAgICAgICB8IDpleGM6YFR5cGVFcnJvcmAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1ZhbHVlRXJyb3JgICAgICAgICAgICAgICB8IDpleGM6YFZhbHVlRXJyb3JgICAgICAgICAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1plcm9EaXZpc2lvbkVycm9yYCAgICAgICB8IDpleGM6YFplcm9EaXZpc2lvbkVycm9yYCAgICAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgOmM6ZGF0YTpgUHlFeGNfQmxvY2tpbmdJT0Vycm9yYCwgOmM6ZGF0YTpgUHlFeGNfQnJva2VuUGlwZUVycm9yYCwKKyAgIDpjOmRhdGE6YFB5RXhjX0NoaWxkUHJvY2Vzc0Vycm9yYCwgOmM6ZGF0YTpgUHlFeGNfQ29ubmVjdGlvbkVycm9yYCwKKyAgIDpjOmRhdGE6YFB5RXhjX0Nvbm5lY3Rpb25BYm9ydGVkRXJyb3JgLCA6YzpkYXRhOmBQeUV4Y19Db25uZWN0aW9uUmVmdXNlZEVycm9yYCwKKyAgIDpjOmRhdGE6YFB5RXhjX0Nvbm5lY3Rpb25SZXNldEVycm9yYCwgOmM6ZGF0YTpgUHlFeGNfRmlsZUV4aXN0c0Vycm9yYCwKKyAgIDpjOmRhdGE6YFB5RXhjX0ZpbGVOb3RGb3VuZEVycm9yYCwgOmM6ZGF0YTpgUHlFeGNfSW50ZXJydXB0ZWRFcnJvcmAsCisgICA6YzpkYXRhOmBQeUV4Y19Jc0FEaXJlY3RvcnlFcnJvcmAsIDpjOmRhdGE6YFB5RXhjX05vdEFEaXJlY3RvcnlFcnJvcmAsCisgICA6YzpkYXRhOmBQeUV4Y19QZXJtaXNzaW9uRXJyb3JgLCA6YzpkYXRhOmBQeUV4Y19Qcm9jZXNzTG9va3VwRXJyb3JgCisgICBhbmQgOmM6ZGF0YTpgUHlFeGNfVGltZW91dEVycm9yYCB3ZXJlIGludHJvZHVjZWQgZm9sbG93aW5nIDpwZXA6YDMxNTFgLgorCisKK1RoZXNlIGFyZSBjb21wYXRpYmlsaXR5IGFsaWFzZXMgdG8gOmM6ZGF0YTpgUHlFeGNfT1NFcnJvcmA6CisKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IEMgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTm90ZXMgICAgfAorKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PSsKK3wgOmM6ZGF0YTpgUHlFeGNfRW52aXJvbm1lbnRFcnJvcmAgICAgfCAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKworfCA6YzpkYXRhOmBQeUV4Y19JT0Vycm9yYCAgICAgICAgICAgICB8ICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rCit8IDpjOmRhdGE6YFB5RXhjX1dpbmRvd3NFcnJvcmAgICAgICAgIHwgXCgzKSAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSsKKworLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgIFRoZXNlIGFsaWFzZXMgdXNlZCB0byBiZSBzZXBhcmF0ZSBleGNlcHRpb24gdHlwZXMuCisKIAogLi4gaW5kZXg6OgogICAgc2luZ2xlOiBQeUV4Y19CYXNlRXhjZXB0aW9uCkBAIC02NDksMjggKzc0Nyw0MiBAQAogICAgc2luZ2xlOiBQeUV4Y19Mb29rdXBFcnJvcgogICAgc2luZ2xlOiBQeUV4Y19Bc3NlcnRpb25FcnJvcgogICAgc2luZ2xlOiBQeUV4Y19BdHRyaWJ1dGVFcnJvcgorICAgc2luZ2xlOiBQeUV4Y19CbG9ja2luZ0lPRXJyb3IKKyAgIHNpbmdsZTogUHlFeGNfQnJva2VuUGlwZUVycm9yCisgICBzaW5nbGU6IFB5RXhjX0Nvbm5lY3Rpb25FcnJvcgorICAgc2luZ2xlOiBQeUV4Y19Db25uZWN0aW9uQWJvcnRlZEVycm9yCisgICBzaW5nbGU6IFB5RXhjX0Nvbm5lY3Rpb25SZWZ1c2VkRXJyb3IKKyAgIHNpbmdsZTogUHlFeGNfQ29ubmVjdGlvblJlc2V0RXJyb3IKICAgIHNpbmdsZTogUHlFeGNfRU9GRXJyb3IKLSAgIHNpbmdsZTogUHlFeGNfRW52aXJvbm1lbnRFcnJvcgorICAgc2luZ2xlOiBQeUV4Y19GaWxlRXhpc3RzRXJyb3IKKyAgIHNpbmdsZTogUHlFeGNfRmlsZU5vdEZvdW5kRXJyb3IKICAgIHNpbmdsZTogUHlFeGNfRmxvYXRpbmdQb2ludEVycm9yCi0gICBzaW5nbGU6IFB5RXhjX0lPRXJyb3IKICAgIHNpbmdsZTogUHlFeGNfSW1wb3J0RXJyb3IKICAgIHNpbmdsZTogUHlFeGNfSW5kZXhFcnJvcgorICAgc2luZ2xlOiBQeUV4Y19JbnRlcnJ1cHRlZEVycm9yCisgICBzaW5nbGU6IFB5RXhjX0lzQURpcmVjdG9yeUVycm9yCiAgICBzaW5nbGU6IFB5RXhjX0tleUVycm9yCiAgICBzaW5nbGU6IFB5RXhjX0tleWJvYXJkSW50ZXJydXB0CiAgICBzaW5nbGU6IFB5RXhjX01lbW9yeUVycm9yCiAgICBzaW5nbGU6IFB5RXhjX05hbWVFcnJvcgorICAgc2luZ2xlOiBQeUV4Y19Ob3RBRGlyZWN0b3J5RXJyb3IKICAgIHNpbmdsZTogUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvcgogICAgc2luZ2xlOiBQeUV4Y19PU0Vycm9yCiAgICBzaW5nbGU6IFB5RXhjX092ZXJmbG93RXJyb3IKKyAgIHNpbmdsZTogUHlFeGNfUGVybWlzc2lvbkVycm9yCisgICBzaW5nbGU6IFB5RXhjX1Byb2Nlc3NMb29rdXBFcnJvcgogICAgc2luZ2xlOiBQeUV4Y19SZWZlcmVuY2VFcnJvcgogICAgc2luZ2xlOiBQeUV4Y19SdW50aW1lRXJyb3IKICAgIHNpbmdsZTogUHlFeGNfU3ludGF4RXJyb3IKICAgIHNpbmdsZTogUHlFeGNfU3lzdGVtRXJyb3IKICAgIHNpbmdsZTogUHlFeGNfU3lzdGVtRXhpdAorICAgc2luZ2xlOiBQeUV4Y19UaW1lb3V0RXJyb3IKICAgIHNpbmdsZTogUHlFeGNfVHlwZUVycm9yCiAgICBzaW5nbGU6IFB5RXhjX1ZhbHVlRXJyb3IKLSAgIHNpbmdsZTogUHlFeGNfV2luZG93c0Vycm9yCiAgICBzaW5nbGU6IFB5RXhjX1plcm9EaXZpc2lvbkVycm9yCisgICBzaW5nbGU6IFB5RXhjX0Vudmlyb25tZW50RXJyb3IKKyAgIHNpbmdsZTogUHlFeGNfSU9FcnJvcgorICAgc2luZ2xlOiBQeUV4Y19XaW5kb3dzRXJyb3IKIAogTm90ZXM6CiAKZGlmZiAtLWdpdCBhL0RvYy9jLWFwaS9mdW5jdGlvbi5yc3QgYi9Eb2MvYy1hcGkvZnVuY3Rpb24ucnN0CmluZGV4IDMxODA1ZmQuLmFkOTgzMjIgMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS9mdW5jdGlvbi5yc3QKKysrIGIvRG9jL2MtYXBpL2Z1bmN0aW9uLnJzdApAQCAtMzgsNiArMzgsMTYgQEAKICAgIG9iamVjdCwgdGhlIGFyZ3VtZW50IGRlZmF1bHRzIGFuZCBjbG9zdXJlIGFyZSBzZXQgdG8gKk5VTEwqLgogCiAKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlGdW5jdGlvbl9OZXdXaXRoUXVhbE5hbWUoUHlPYmplY3QgKmNvZGUsIFB5T2JqZWN0ICpnbG9iYWxzLCBQeU9iamVjdCAqcXVhbG5hbWUpCisKKyAgIEFzIDpjOmZ1bmM6YFB5RnVuY3Rpb25fTmV3YCwgYnV0IGFsc28gYWxsb3dzIHRvIHNldCB0aGUgZnVuY3Rpb24gb2JqZWN0J3MKKyAgIGBgX19xdWFsbmFtZV9fYGAgYXR0cmlidXRlLiAgKnF1YWxuYW1lKiBzaG91bGQgYmUgYSB1bmljb2RlIG9iamVjdCBvciBOVUxMOworICAgaWYgTlVMTCwgdGhlIGBgX19xdWFsbmFtZV9fYGAgYXR0cmlidXRlIGlzIHNldCB0byB0aGUgc2FtZSB2YWx1ZSBhcyBpdHMKKyAgIGBgX19uYW1lX19gYCBhdHRyaWJ1dGUuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlGdW5jdGlvbl9HZXRDb2RlKFB5T2JqZWN0ICpvcCkKIAogICAgUmV0dXJuIHRoZSBjb2RlIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGZ1bmN0aW9uIG9iamVjdCAqb3AqLgpkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL2ltcG9ydC5yc3QgYi9Eb2MvYy1hcGkvaW1wb3J0LnJzdAppbmRleCBjZjQ4MzYzLi42ZGUzZmIwIDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvaW1wb3J0LnJzdAorKysgYi9Eb2MvYy1hcGkvaW1wb3J0LnJzdApAQCAtMzAsMTMgKzMwLDEzIEBACiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlJbXBvcnRfSW1wb3J0TW9kdWxlTm9CbG9jayhjb25zdCBjaGFyICpuYW1lKQogCi0gICBUaGlzIHZlcnNpb24gb2YgOmM6ZnVuYzpgUHlJbXBvcnRfSW1wb3J0TW9kdWxlYCBkb2VzIG5vdCBibG9jay4gSXQncyBpbnRlbmRlZAotICAgdG8gYmUgdXNlZCBpbiBDIGZ1bmN0aW9ucyB0aGF0IGltcG9ydCBvdGhlciBtb2R1bGVzIHRvIGV4ZWN1dGUgYSBmdW5jdGlvbi4KLSAgIFRoZSBpbXBvcnQgbWF5IGJsb2NrIGlmIGFub3RoZXIgdGhyZWFkIGhvbGRzIHRoZSBpbXBvcnQgbG9jay4gVGhlIGZ1bmN0aW9uCi0gICA6YzpmdW5jOmBQeUltcG9ydF9JbXBvcnRNb2R1bGVOb0Jsb2NrYCBuZXZlciBibG9ja3MuIEl0IGZpcnN0IHRyaWVzIHRvIGZldGNoCi0gICB0aGUgbW9kdWxlIGZyb20gc3lzLm1vZHVsZXMgYW5kIGZhbGxzIGJhY2sgdG8gOmM6ZnVuYzpgUHlJbXBvcnRfSW1wb3J0TW9kdWxlYAotICAgdW5sZXNzIHRoZSBsb2NrIGlzIGhlbGQsIGluIHdoaWNoIGNhc2UgdGhlIGZ1bmN0aW9uIHdpbGwgcmFpc2UgYW4KLSAgIDpleGM6YEltcG9ydEVycm9yYC4KKyAgIFRoaXMgZnVuY3Rpb24gaXMgYSBkZXByZWNhdGVkIGFsaWFzIG9mIDpjOmZ1bmM6YFB5SW1wb3J0X0ltcG9ydE1vZHVsZWAuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gZmFpbCBpbW1lZGlhdGVseSB3aGVuIHRoZSBpbXBvcnQgbG9jayB3YXMgaGVsZAorICAgICAgYnkgYW5vdGhlciB0aHJlYWQuICBJbiBQeXRob24gMy4zIHRob3VnaCwgdGhlIGxvY2tpbmcgc2NoZW1lIHN3aXRjaGVkCisgICAgICB0byBwZXItbW9kdWxlIGxvY2tzIGZvciBtb3N0IHB1cnBvc2VzLCBzbyB0aGlzIGZ1bmN0aW9uJ3Mgc3BlY2lhbAorICAgICAgYmVoYXZpb3VyIGlzbid0IG5lZWRlZCBhbnltb3JlLgogCiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlJbXBvcnRfSW1wb3J0TW9kdWxlRXgoY2hhciAqbmFtZSwgUHlPYmplY3QgKmdsb2JhbHMsIFB5T2JqZWN0ICpsb2NhbHMsIFB5T2JqZWN0ICpmcm9tbGlzdCkKQEAgLTU3LDcgKzU3LDcgQEAKICAgIDpjOmZ1bmM6YFB5SW1wb3J0X0ltcG9ydE1vZHVsZWAuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeUltcG9ydF9JbXBvcnRNb2R1bGVMZXZlbChjaGFyICpuYW1lLCBQeU9iamVjdCAqZ2xvYmFscywgUHlPYmplY3QgKmxvY2FscywgUHlPYmplY3QgKmZyb21saXN0LCBpbnQgbGV2ZWwpCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5SW1wb3J0X0ltcG9ydE1vZHVsZUxldmVsT2JqZWN0KFB5T2JqZWN0ICpuYW1lLCBQeU9iamVjdCAqZ2xvYmFscywgUHlPYmplY3QgKmxvY2FscywgUHlPYmplY3QgKmZyb21saXN0LCBpbnQgbGV2ZWwpCiAKICAgIEltcG9ydCBhIG1vZHVsZS4gIFRoaXMgaXMgYmVzdCBkZXNjcmliZWQgYnkgcmVmZXJyaW5nIHRvIHRoZSBidWlsdC1pbiBQeXRob24KICAgIGZ1bmN0aW9uIDpmdW5jOmBfX2ltcG9ydF9fYCwgYXMgdGhlIHN0YW5kYXJkIDpmdW5jOmBfX2ltcG9ydF9fYCBmdW5jdGlvbiBjYWxscwpAQCAtNjgsNiArNjgsMTMgQEAKICAgIHRoZSByZXR1cm4gdmFsdWUgd2hlbiBhIHN1Ym1vZHVsZSBvZiBhIHBhY2thZ2Ugd2FzIHJlcXVlc3RlZCBpcyBub3JtYWxseSB0aGUKICAgIHRvcC1sZXZlbCBwYWNrYWdlLCB1bmxlc3MgYSBub24tZW1wdHkgKmZyb21saXN0KiB3YXMgZ2l2ZW4uCiAKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWwoY2hhciAqbmFtZSwgUHlPYmplY3QgKmdsb2JhbHMsIFB5T2JqZWN0ICpsb2NhbHMsIFB5T2JqZWN0ICpmcm9tbGlzdCwgaW50IGxldmVsKQorCisgICBTaW1pbGFyIHRvIDpjOmZ1bmM6YFB5SW1wb3J0X0ltcG9ydE1vZHVsZUxldmVsT2JqZWN0YCwgYnV0IHRoZSBuYW1lIGlzIGFuCisgICBVVEYtOCBlbmNvZGVkIHN0cmluZyBpbnN0ZWFkIG9mIGEgVW5pY29kZSBvYmplY3QuCiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlJbXBvcnRfSW1wb3J0KFB5T2JqZWN0ICpuYW1lKQogCkBAIC04Niw3ICs5Myw3IEBACiAgICBhbiBleGNlcHRpb24gc2V0IG9uIGZhaWx1cmUgKHRoZSBtb2R1bGUgc3RpbGwgZXhpc3RzIGluIHRoaXMgY2FzZSkuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeUltcG9ydF9BZGRNb2R1bGUoY29uc3QgY2hhciAqbmFtZSkKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlJbXBvcnRfQWRkTW9kdWxlT2JqZWN0KFB5T2JqZWN0ICpuYW1lKQogCiAgICBSZXR1cm4gdGhlIG1vZHVsZSBvYmplY3QgY29ycmVzcG9uZGluZyB0byBhIG1vZHVsZSBuYW1lLiAgVGhlICpuYW1lKiBhcmd1bWVudAogICAgbWF5IGJlIG9mIHRoZSBmb3JtIGBgcGFja2FnZS5tb2R1bGVgYC4gRmlyc3QgY2hlY2sgdGhlIG1vZHVsZXMgZGljdGlvbmFyeSBpZgpAQCAtMTAwLDYgKzEwNywxNCBAQAogICAgICAgb3Igb25lIG9mIGl0cyB2YXJpYW50cyB0byBpbXBvcnQgYSBtb2R1bGUuICBQYWNrYWdlIHN0cnVjdHVyZXMgaW1wbGllZCBieSBhCiAgICAgICBkb3R0ZWQgbmFtZSBmb3IgKm5hbWUqIGFyZSBub3QgY3JlYXRlZCBpZiBub3QgYWxyZWFkeSBwcmVzZW50LgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5SW1wb3J0X0FkZE1vZHVsZShjb25zdCBjaGFyICpuYW1lKQorCisgICBTaW1pbGFyIHRvIDpjOmZ1bmM6YFB5SW1wb3J0X0FkZE1vZHVsZU9iamVjdGAsIGJ1dCB0aGUgbmFtZSBpcyBhIFVURi04CisgICBlbmNvZGVkIHN0cmluZyBpbnN0ZWFkIG9mIGEgVW5pY29kZSBvYmplY3QuCisKIAogLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZShjaGFyICpuYW1lLCBQeU9iamVjdCAqY28pCiAKQEAgLTEzNiwxNCArMTUxLDIzIEBACiAgICBTZWUgYWxzbyA6YzpmdW5jOmBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZVdpdGhQYXRobmFtZXNgLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVXaXRoUGF0aG5hbWVzKGNoYXIgKm5hbWUsIFB5T2JqZWN0ICpjbywgY2hhciAqcGF0aG5hbWUsIGNoYXIgKmNwYXRobmFtZSkKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVPYmplY3QoUHlPYmplY3QgKm5hbWUsIFB5T2JqZWN0ICpjbywgUHlPYmplY3QgKnBhdGhuYW1lLCBQeU9iamVjdCAqY3BhdGhuYW1lKQogCiAgICBMaWtlIDpjOmZ1bmM6YFB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlRXhgLCBidXQgdGhlIDphdHRyOmBfX2NhY2hlZF9fYAogICAgYXR0cmlidXRlIG9mIHRoZSBtb2R1bGUgb2JqZWN0IGlzIHNldCB0byAqY3BhdGhuYW1lKiBpZiBpdCBpcwogICAgbm9uLWBgTlVMTGBgLiAgT2YgdGhlIHRocmVlIGZ1bmN0aW9ucywgdGhpcyBpcyB0aGUgcHJlZmVycmVkIG9uZSB0byB1c2UuCiAKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVXaXRoUGF0aG5hbWVzKGNoYXIgKm5hbWUsIFB5T2JqZWN0ICpjbywgY2hhciAqcGF0aG5hbWUsIGNoYXIgKmNwYXRobmFtZSkKKworICAgTGlrZSA6YzpmdW5jOmBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZU9iamVjdGAsIGJ1dCAqbmFtZSosICpwYXRobmFtZSogYW5kCisgICAqY3BhdGhuYW1lKiBhcmUgVVRGLTggZW5jb2RlZCBzdHJpbmdzLgorCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAorCiAuLiBjOmZ1bmN0aW9uOjogbG9uZyBQeUltcG9ydF9HZXRNYWdpY051bWJlcigpCiAKICAgIFJldHVybiB0aGUgbWFnaWMgbnVtYmVyIGZvciBQeXRob24gYnl0ZWNvZGUgZmlsZXMgKGEuay5hLiA6ZmlsZTpgLnB5Y2AgYW5kCkBAIC0yMDAsNyArMjI0LDcgQEAKICAgIEZvciBpbnRlcm5hbCB1c2Ugb25seS4KIAogCi0uLiBjOmZ1bmN0aW9uOjogaW50IFB5SW1wb3J0X0ltcG9ydEZyb3plbk1vZHVsZShjaGFyICpuYW1lKQorLi4gYzpmdW5jdGlvbjo6IGludCBQeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGVPYmplY3QoUHlPYmplY3QgKm5hbWUpCiAKICAgIExvYWQgYSBmcm96ZW4gbW9kdWxlIG5hbWVkICpuYW1lKi4gIFJldHVybiBgYDFgYCBmb3Igc3VjY2VzcywgYGAwYGAgaWYgdGhlCiAgICBtb2R1bGUgaXMgbm90IGZvdW5kLCBhbmQgYGAtMWBgIHdpdGggYW4gZXhjZXB0aW9uIHNldCBpZiB0aGUgaW5pdGlhbGl6YXRpb24KQEAgLTIwOCw2ICsyMzIsMTQgQEAKICAgIDpjOmZ1bmM6YFB5SW1wb3J0X0ltcG9ydE1vZHVsZWAuICAoTm90ZSB0aGUgbWlzbm9tZXIgLS0tIHRoaXMgZnVuY3Rpb24gd291bGQKICAgIHJlbG9hZCB0aGUgbW9kdWxlIGlmIGl0IHdhcyBhbHJlYWR5IGltcG9ydGVkLikKIAorICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gYzpmdW5jdGlvbjo6IGludCBQeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGUoY2hhciAqbmFtZSkKKworICAgU2ltaWxhciB0byA6YzpmdW5jOmBQeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGVPYmplY3RgLCBidXQgdGhlIG5hbWUgaXMgYQorICAgVVRGLTggZW5jb2RlZCBzdHJpbmcgaW5zdGVhZCBvZiBhIFVuaWNvZGUgb2JqZWN0LgorCiAKIC4uIGM6dHlwZTo6IHN0cnVjdCBfZnJvemVuCiAKQEAgLTI0NywxMyArMjc5LDEzIEBACiAKICAgIFN0cnVjdHVyZSBkZXNjcmliaW5nIGEgc2luZ2xlIGVudHJ5IGluIHRoZSBsaXN0IG9mIGJ1aWx0LWluIG1vZHVsZXMuICBFYWNoIG9mCiAgICB0aGVzZSBzdHJ1Y3R1cmVzIGdpdmVzIHRoZSBuYW1lIGFuZCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBmb3IgYSBtb2R1bGUgYnVpbHQKLSAgIGludG8gdGhlIGludGVycHJldGVyLiAgUHJvZ3JhbXMgd2hpY2ggZW1iZWQgUHl0aG9uIG1heSB1c2UgYW4gYXJyYXkgb2YgdGhlc2UKLSAgIHN0cnVjdHVyZXMgaW4gY29uanVuY3Rpb24gd2l0aCA6YzpmdW5jOmBQeUltcG9ydF9FeHRlbmRJbml0dGFiYCB0byBwcm92aWRlCi0gICBhZGRpdGlvbmFsIGJ1aWx0LWluIG1vZHVsZXMuICBUaGUgc3RydWN0dXJlIGlzIGRlZmluZWQgaW4KLSAgIDpmaWxlOmBJbmNsdWRlL2ltcG9ydC5oYCBhczo6CisgICBpbnRvIHRoZSBpbnRlcnByZXRlci4gIFRoZSBuYW1lIGlzIGFuIEFTQ0lJIGVuY29kZWQgc3RyaW5nLiAgUHJvZ3JhbXMgd2hpY2gKKyAgIGVtYmVkIFB5dGhvbiBtYXkgdXNlIGFuIGFycmF5IG9mIHRoZXNlIHN0cnVjdHVyZXMgaW4gY29uanVuY3Rpb24gd2l0aAorICAgOmM6ZnVuYzpgUHlJbXBvcnRfRXh0ZW5kSW5pdHRhYmAgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIGJ1aWx0LWluIG1vZHVsZXMuCisgICBUaGUgc3RydWN0dXJlIGlzIGRlZmluZWQgaW4gOmZpbGU6YEluY2x1ZGUvaW1wb3J0LmhgIGFzOjoKIAogICAgICAgc3RydWN0IF9pbml0dGFiIHsKLSAgICAgICAgICBjaGFyICpuYW1lOworICAgICAgICAgIGNoYXIgKm5hbWU7ICAgICAgICAgICAgICAgICAvKiBBU0NJSSBlbmNvZGVkIHN0cmluZyAqLwogICAgICAgICAgIFB5T2JqZWN0KiAoKmluaXRmdW5jKSh2b2lkKTsKICAgICAgIH07CiAKZGlmZiAtLWdpdCBhL0RvYy9jLWFwaS9pbmRleC5yc3QgYi9Eb2MvYy1hcGkvaW5kZXgucnN0CmluZGV4IDEyYTFlYzcuLmEwY2I2ZTUgMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS9pbmRleC5yc3QKKysrIGIvRG9jL2MtYXBpL2luZGV4LnJzdApAQCAtMjUsMyArMjUsNCBAQAogICAgaW5pdC5yc3QKICAgIG1lbW9yeS5yc3QKICAgIG9iamltcGwucnN0CisgICBzdGFibGUucnN0CmRpZmYgLS1naXQgYS9Eb2MvYy1hcGkvaW5pdC5yc3QgYi9Eb2MvYy1hcGkvaW5pdC5yc3QKaW5kZXggNzUwN2UzYi4uOTVmZjRlZSAxMDA2NDQKLS0tIGEvRG9jL2MtYXBpL2luaXQucnN0CisrKyBiL0RvYy9jLWFwaS9pbml0LnJzdApAQCAtNjQ2LDcgKzY0Niw3IEBACiAgICA6YzpmdW5jOmBQeUdJTFN0YXRlX1JlbGVhc2VgIG9uIHRoZSBzYW1lIHRocmVhZC4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlUaHJlYWRTdGF0ZSBQeUdJTFN0YXRlX0dldFRoaXNUaHJlYWRTdGF0ZSgpCisuLiBjOmZ1bmN0aW9uOjogUHlUaHJlYWRTdGF0ZSogUHlHSUxTdGF0ZV9HZXRUaGlzVGhyZWFkU3RhdGUoKQogCiAgICBHZXQgdGhlIGN1cnJlbnQgdGhyZWFkIHN0YXRlIGZvciB0aGlzIHRocmVhZC4gIE1heSByZXR1cm4gYGBOVUxMYGAgaWYgbm8KICAgIEdJTFN0YXRlIEFQSSBoYXMgYmVlbiB1c2VkIG9uIHRoZSBjdXJyZW50IHRocmVhZC4gIE5vdGUgdGhhdCB0aGUgbWFpbiB0aHJlYWQKZGlmZiAtLWdpdCBhL0RvYy9jLWFwaS9saXN0LnJzdCBiL0RvYy9jLWFwaS9saXN0LnJzdAppbmRleCBmZWI5MDE1Li41YjI2M2E3IDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvbGlzdC5yc3QKKysrIGIvRG9jL2MtYXBpL2xpc3QucnN0CkBAIC0xNDIsMyArMTQyLDEwIEBACiAKICAgIFJldHVybiBhIG5ldyB0dXBsZSBvYmplY3QgY29udGFpbmluZyB0aGUgY29udGVudHMgb2YgKmxpc3QqOyBlcXVpdmFsZW50IHRvCiAgICBgYHR1cGxlKGxpc3QpYGAuCisKKworLi4gYzpmdW5jdGlvbjo6IGludCBQeUxpc3RfQ2xlYXJGcmVlTGlzdCgpCisKKyAgIENsZWFyIHRoZSBmcmVlIGxpc3QuIFJldHVybiB0aGUgdG90YWwgbnVtYmVyIG9mIGZyZWVkIGl0ZW1zLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKZGlmZiAtLWdpdCBhL0RvYy9jLWFwaS9sb25nLnJzdCBiL0RvYy9jLWFwaS9sb25nLnJzdAppbmRleCBlMmY1OGFkLi4zNjVhYmQ3IDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvbG9uZy5yc3QKKysrIGIvRG9jL2MtYXBpL2xvbmcucnN0CkBAIC0xMDAsNiArMTAwLDIwIEBACiAgICBzdHJpbmcgaXMgZmlyc3QgZW5jb2RlZCB0byBhIGJ5dGUgc3RyaW5nIHVzaW5nIDpjOmZ1bmM6YFB5VW5pY29kZV9FbmNvZGVEZWNpbWFsYAogICAgYW5kIHRoZW4gY29udmVydGVkIHVzaW5nIDpjOmZ1bmM6YFB5TG9uZ19Gcm9tU3RyaW5nYC4KIAorICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDQuMAorICAgICAgUGFydCBvZiB0aGUgb2xkLXN0eWxlIDpjOnR5cGU6YFB5X1VOSUNPREVgIEFQSTsgcGxlYXNlIG1pZ3JhdGUgdG8gdXNpbmcKKyAgICAgIDpjOmZ1bmM6YFB5TG9uZ19Gcm9tVW5pY29kZU9iamVjdGAuCisKKworLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeUxvbmdfRnJvbVVuaWNvZGVPYmplY3QoUHlPYmplY3QgKnUsIGludCBiYXNlKQorCisgICBDb252ZXJ0IGEgc2VxdWVuY2Ugb2YgVW5pY29kZSBkaWdpdHMgaW4gdGhlIHN0cmluZyAqdSogdG8gYSBQeXRob24gaW50ZWdlcgorICAgdmFsdWUuICBUaGUgVW5pY29kZSBzdHJpbmcgaXMgZmlyc3QgZW5jb2RlZCB0byBhIGJ5dGUgc3RyaW5nIHVzaW5nCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfRW5jb2RlRGVjaW1hbGAgYW5kIHRoZW4gY29udmVydGVkIHVzaW5nCisgICA6YzpmdW5jOmBQeUxvbmdfRnJvbVN0cmluZ2AuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlMb25nX0Zyb21Wb2lkUHRyKHZvaWQgKnApCiAKZGlmZiAtLWdpdCBhL0RvYy9jLWFwaS9tZW1vcnl2aWV3LnJzdCBiL0RvYy9jLWFwaS9tZW1vcnl2aWV3LnJzdAppbmRleCA2YjQ5Y2RmLi41ZTUwOTc3IDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvbWVtb3J5dmlldy5yc3QKKysrIGIvRG9jL2MtYXBpL21lbW9yeXZpZXcucnN0CkBAIC0xNywxNiArMTcsMjEgQEAKIAogICAgQ3JlYXRlIGEgbWVtb3J5dmlldyBvYmplY3QgZnJvbSBhbiBvYmplY3QgdGhhdCBwcm92aWRlcyB0aGUgYnVmZmVyIGludGVyZmFjZS4KICAgIElmICpvYmoqIHN1cHBvcnRzIHdyaXRhYmxlIGJ1ZmZlciBleHBvcnRzLCB0aGUgbWVtb3J5dmlldyBvYmplY3Qgd2lsbCBiZQotICAgcmVhZGFibGUgYW5kIHdyaXRhYmxlLCBvdGhlcndpc2UgaXQgd2lsbCBiZSByZWFkLW9ubHkuCisgICByZWFkL3dyaXRlLCBvdGhlcndpc2UgaXQgbWF5IGJlIGVpdGhlciByZWFkLW9ubHkgb3IgcmVhZC93cml0ZSBhdCB0aGUKKyAgIGRpc2NyZXRpb24gb2YgdGhlIGV4cG9ydGVyLgogCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QgKlB5TWVtb3J5Vmlld19Gcm9tTWVtb3J5KGNoYXIgKm1lbSwgUHlfc3NpemVfdCBzaXplLCBpbnQgZmxhZ3MpCisKKyAgIENyZWF0ZSBhIG1lbW9yeXZpZXcgb2JqZWN0IHVzaW5nICptZW0qIGFzIHRoZSB1bmRlcmx5aW5nIGJ1ZmZlci4KKyAgICpmbGFncyogY2FuIGJlIG9uZSBvZiA6YzptYWNybzpgUHlCVUZfUkVBRGAgb3IgOmM6bWFjcm86YFB5QlVGX1dSSVRFYC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCAqUHlNZW1vcnlWaWV3X0Zyb21CdWZmZXIoUHlfYnVmZmVyICp2aWV3KQogCiAgICBDcmVhdGUgYSBtZW1vcnl2aWV3IG9iamVjdCB3cmFwcGluZyB0aGUgZ2l2ZW4gYnVmZmVyIHN0cnVjdHVyZSAqdmlldyouCi0gICBUaGUgbWVtb3J5dmlldyBvYmplY3QgdGhlbiBvd25zIHRoZSBidWZmZXIgcmVwcmVzZW50ZWQgYnkgKnZpZXcqLCB3aGljaAotICAgbWVhbnMgeW91IHNob3VsZG4ndCB0cnkgdG8gY2FsbCA6YzpmdW5jOmBQeUJ1ZmZlcl9SZWxlYXNlYCB5b3Vyc2VsZjogaXQKLSAgIHdpbGwgYmUgZG9uZSBvbiBkZWFsbG9jYXRpb24gb2YgdGhlIG1lbW9yeXZpZXcgb2JqZWN0LgotCisgICBGb3Igc2ltcGxlIGJ5dGUgYnVmZmVycywgOmM6ZnVuYzpgUHlNZW1vcnlWaWV3X0Zyb21NZW1vcnlgIGlzIHRoZSBwcmVmZXJyZWQKKyAgIGZ1bmN0aW9uLgogCiAuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QgKlB5TWVtb3J5Vmlld19HZXRDb250aWd1b3VzKFB5T2JqZWN0ICpvYmosIGludCBidWZmZXJ0eXBlLCBjaGFyIG9yZGVyKQogCkBAIC00MywxMCArNDgsMTYgQEAKICAgIGN1cnJlbnRseSBhbGxvd2VkIHRvIGNyZWF0ZSBzdWJjbGFzc2VzIG9mIDpjbGFzczpgbWVtb3J5dmlld2AuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5X2J1ZmZlciAqUHlNZW1vcnlWaWV3X0dFVF9CVUZGRVIoUHlPYmplY3QgKm9iaikKKy4uIGM6ZnVuY3Rpb246OiBQeV9idWZmZXIgKlB5TWVtb3J5Vmlld19HRVRfQlVGRkVSKFB5T2JqZWN0ICptdmlldykKIAotICAgUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgYnVmZmVyIHN0cnVjdHVyZSB3cmFwcGVkIGJ5IHRoZSBnaXZlbgotICAgbWVtb3J5dmlldyBvYmplY3QuICBUaGUgb2JqZWN0ICoqbXVzdCoqIGJlIGEgbWVtb3J5dmlldyBpbnN0YW5jZTsKLSAgIHRoaXMgbWFjcm8gZG9lc24ndCBjaGVjayBpdHMgdHlwZSwgeW91IG11c3QgZG8gaXQgeW91cnNlbGYgb3IgeW91Ci0gICB3aWxsIHJpc2sgY3Jhc2hlcy4KKyAgIFJldHVybiBhIHBvaW50ZXIgdG8gdGhlIG1lbW9yeXZpZXcncyBwcml2YXRlIGNvcHkgb2YgdGhlIGV4cG9ydGVyJ3MgYnVmZmVyLgorICAgKm12aWV3KiAqKm11c3QqKiBiZSBhIG1lbW9yeXZpZXcgaW5zdGFuY2U7IHRoaXMgbWFjcm8gZG9lc24ndCBjaGVjayBpdHMgdHlwZSwKKyAgIHlvdSBtdXN0IGRvIGl0IHlvdXJzZWxmIG9yIHlvdSB3aWxsIHJpc2sgY3Jhc2hlcy4KKworLi4gYzpmdW5jdGlvbjo6IFB5X2J1ZmZlciAqUHlNZW1vcnlWaWV3X0dFVF9CQVNFKFB5T2JqZWN0ICptdmlldykKKworICAgUmV0dXJuIGVpdGhlciBhIHBvaW50ZXIgdG8gdGhlIGV4cG9ydGluZyBvYmplY3QgdGhhdCB0aGUgbWVtb3J5dmlldyBpcyBiYXNlZAorICAgb24gb3IgKk5VTEwqIGlmIHRoZSBtZW1vcnl2aWV3IGhhcyBiZWVuIGNyZWF0ZWQgYnkgb25lIG9mIHRoZSBmdW5jdGlvbnMKKyAgIDpjOmZ1bmM6YFB5TWVtb3J5Vmlld19Gcm9tTWVtb3J5YCBvciA6YzpmdW5jOmBQeU1lbW9yeVZpZXdfRnJvbUJ1ZmZlcmAuCisgICAqbXZpZXcqICoqbXVzdCoqIGJlIGEgbWVtb3J5dmlldyBpbnN0YW5jZS4KIApkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL21vZHVsZS5yc3QgYi9Eb2MvYy1hcGkvbW9kdWxlLnJzdAppbmRleCBmZmQ2OGUzLi4zYmU3ZmUzIDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvbW9kdWxlLnJzdAorKysgYi9Eb2MvYy1hcGkvbW9kdWxlLnJzdApAQCAtMjksNyArMjksNyBAQAogICAgOmM6ZGF0YTpgUHlNb2R1bGVfVHlwZWAuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeU1vZHVsZV9OZXcoY29uc3QgY2hhciAqbmFtZSkKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlNb2R1bGVfTmV3T2JqZWN0KFB5T2JqZWN0ICpuYW1lKQogCiAgICAuLiBpbmRleDo6CiAgICAgICBzaW5nbGU6IF9fbmFtZV9fIChtb2R1bGUgYXR0cmlidXRlKQpAQCAtNDAsNiArNDAsMTQgQEAKICAgIE9ubHkgdGhlIG1vZHVsZSdzIDphdHRyOmBfX2RvY19fYCBhbmQgOmF0dHI6YF9fbmFtZV9fYCBhdHRyaWJ1dGVzIGFyZSBmaWxsZWQgaW47CiAgICB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBwcm92aWRpbmcgYSA6YXR0cjpgX19maWxlX19gIGF0dHJpYnV0ZS4KIAorICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeU1vZHVsZV9OZXcoY29uc3QgY2hhciAqbmFtZSkKKworICAgU2ltaWxhciB0byA6YzpmdW5jOmBQeUltcG9ydF9OZXdPYmplY3RgLCBidXQgdGhlIG5hbWUgaXMgYW4gVVRGLTggZW5jb2RlZAorICAgc3RyaW5nIGluc3RlYWQgb2YgYSBVbmljb2RlIG9iamVjdC4KKwogCiAuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5TW9kdWxlX0dldERpY3QoUHlPYmplY3QgKm1vZHVsZSkKIApAQCAtNTIsNyArNjAsNyBAQAogICAgbWFuaXB1bGF0ZSBhIG1vZHVsZSdzIDphdHRyOmBfX2RpY3RfX2AuCiAKIAotLi4gYzpmdW5jdGlvbjo6IGNoYXIqIFB5TW9kdWxlX0dldE5hbWUoUHlPYmplY3QgKm1vZHVsZSkKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlNb2R1bGVfR2V0TmFtZU9iamVjdChQeU9iamVjdCAqbW9kdWxlKQogCiAgICAuLiBpbmRleDo6CiAgICAgICBzaW5nbGU6IF9fbmFtZV9fIChtb2R1bGUgYXR0cmlidXRlKQpAQCAtNjEsMTUgKzY5LDEzIEBACiAgICBSZXR1cm4gKm1vZHVsZSoncyA6YXR0cjpgX19uYW1lX19gIHZhbHVlLiAgSWYgdGhlIG1vZHVsZSBkb2VzIG5vdCBwcm92aWRlIG9uZSwKICAgIG9yIGlmIGl0IGlzIG5vdCBhIHN0cmluZywgOmV4YzpgU3lzdGVtRXJyb3JgIGlzIHJhaXNlZCBhbmQgKk5VTEwqIGlzIHJldHVybmVkLgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAotLi4gYzpmdW5jdGlvbjo6IGNoYXIqIFB5TW9kdWxlX0dldEZpbGVuYW1lKFB5T2JqZWN0ICptb2R1bGUpCiAKLSAgIFNpbWlsYXIgdG8gOmM6ZnVuYzpgUHlNb2R1bGVfR2V0RmlsZW5hbWVPYmplY3RgIGJ1dCByZXR1cm4gdGhlIGZpbGVuYW1lCi0gICBlbmNvZGVkIHRvICd1dGYtOCcuCisuLiBjOmZ1bmN0aW9uOjogY2hhciogUHlNb2R1bGVfR2V0TmFtZShQeU9iamVjdCAqbW9kdWxlKQogCi0gICAuLiBkZXByZWNhdGVkOjogMy4yCi0gICAgICA6YzpmdW5jOmBQeU1vZHVsZV9HZXRGaWxlbmFtZWAgcmFpc2VzIDpjOnR5cGU6YFVuaWNvZGVFbmNvZGVFcnJvcmAgb24KLSAgICAgIHVuZW5jb2RhYmxlIGZpbGVuYW1lcywgdXNlIDpjOmZ1bmM6YFB5TW9kdWxlX0dldEZpbGVuYW1lT2JqZWN0YCBpbnN0ZWFkLgorICAgU2ltaWxhciB0byA6YzpmdW5jOmBQeU1vZHVsZV9HZXROYW1lT2JqZWN0YCBidXQgcmV0dXJuIHRoZSBuYW1lIGVuY29kZWQgdG8KKyAgIGBgJ3V0Zi04J2BgLgogCiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlNb2R1bGVfR2V0RmlsZW5hbWVPYmplY3QoUHlPYmplY3QgKm1vZHVsZSkKQEAgLTgxLDExICs4NywyMSBAQAogICAgUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBmaWxlIGZyb20gd2hpY2ggKm1vZHVsZSogd2FzIGxvYWRlZCB1c2luZyAqbW9kdWxlKidzCiAgICA6YXR0cjpgX19maWxlX19gIGF0dHJpYnV0ZS4gIElmIHRoaXMgaXMgbm90IGRlZmluZWQsIG9yIGlmIGl0IGlzIG5vdCBhCiAgICB1bmljb2RlIHN0cmluZywgcmFpc2UgOmV4YzpgU3lzdGVtRXJyb3JgIGFuZCByZXR1cm4gKk5VTEwqOyBvdGhlcndpc2UgcmV0dXJuCi0gICBhIHJlZmVyZW5jZSB0byBhIDpjOnR5cGU6YFB5VW5pY29kZU9iamVjdGAuCisgICBhIHJlZmVyZW5jZSB0byBhIFVuaWNvZGUgb2JqZWN0LgogCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogCisuLiBjOmZ1bmN0aW9uOjogY2hhciogUHlNb2R1bGVfR2V0RmlsZW5hbWUoUHlPYmplY3QgKm1vZHVsZSkKKworICAgU2ltaWxhciB0byA6YzpmdW5jOmBQeU1vZHVsZV9HZXRGaWxlbmFtZU9iamVjdGAgYnV0IHJldHVybiB0aGUgZmlsZW5hbWUKKyAgIGVuY29kZWQgdG8gJ3V0Zi04Jy4KKworICAgLi4gZGVwcmVjYXRlZDo6IDMuMgorICAgICAgOmM6ZnVuYzpgUHlNb2R1bGVfR2V0RmlsZW5hbWVgIHJhaXNlcyA6Yzp0eXBlOmBVbmljb2RlRW5jb2RlRXJyb3JgIG9uCisgICAgICB1bmVuY29kYWJsZSBmaWxlbmFtZXMsIHVzZSA6YzpmdW5jOmBQeU1vZHVsZV9HZXRGaWxlbmFtZU9iamVjdGAgaW5zdGVhZC4KKworCiAuLiBjOmZ1bmN0aW9uOjogdm9pZCogUHlNb2R1bGVfR2V0U3RhdGUoUHlPYmplY3QgKm1vZHVsZSkKIAogICAgUmV0dXJuIHRoZSAic3RhdGUiIG9mIHRoZSBtb2R1bGUsIHRoYXQgaXMsIGEgcG9pbnRlciB0byB0aGUgYmxvY2sgb2YgbWVtb3J5CkBAIC05Nyw4ICsxMTMsMjggQEAKIAogICAgUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgOmM6dHlwZTpgUHlNb2R1bGVEZWZgIHN0cnVjdCBmcm9tIHdoaWNoIHRoZSBtb2R1bGUgd2FzCiAgICBjcmVhdGVkLCBvciAqTlVMTCogaWYgdGhlIG1vZHVsZSB3YXNuJ3QgY3JlYXRlZCB3aXRoCi0gICA6YzpmdW5jOmBQeU1vZHVsZV9DcmVhdGVgLgorICAgOmM6ZnVuYzpgUHlNb2R1bGVfQ3JlYXRlYC5pCiAKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlTdGF0ZV9GaW5kTW9kdWxlKFB5TW9kdWxlRGVmICpkZWYpCisKKyAgIFJldHVybnMgdGhlIG1vZHVsZSBvYmplY3QgdGhhdCB3YXMgY3JlYXRlZCBmcm9tICpkZWYqIGZvciB0aGUgY3VycmVudCBpbnRlcnByZXRlci4KKyAgIFRoaXMgbWV0aG9kIHJlcXVpcmVzIHRoYXQgdGhlIG1vZHVsZSBvYmplY3QgaGFzIGJlZW4gYXR0YWNoZWQgdG8gdGhlIGludGVycHJldGVyIHN0YXRlIHdpdGgKKyAgIDpjOmZ1bmM6YFB5U3RhdGVfQWRkTW9kdWxlYCBiZWZvcmVoYW5kLiBJbiBjYXNlIHRoZSBjb3JyZXNwb25kaW5nIG1vZHVsZSBvYmplY3QgaXMgbm90CisgICBmb3VuZCBvciBoYXMgbm90IGJlZW4gYXR0YWNoZWQgdG8gdGhlIGludGVycHJldGVyIHN0YXRlIHlldCwgaXQgcmV0dXJucyBOVUxMLgorCisuLiBjOmZ1bmN0aW9uOjogaW50IFB5U3RhdGVfQWRkTW9kdWxlKFB5TW9kdWxlRGVmICpkZWYsIFB5T2JqZWN0ICptb2R1bGUpCisKKyAgIEF0dGFjaGVzIHRoZSBtb2R1bGUgb2JqZWN0IHBhc3NlZCB0byB0aGUgZnVuY3Rpb24gdG8gdGhlIGludGVycHJldGVyIHN0YXRlLiBUaGlzIGFsbG93cworICAgdGhlIG1vZHVsZSBvYmplY3QgdG8gYmUgYWNjZXNzaWJsZSB2aWEKKyAgIDpjOmZ1bmM6YFB5U3RhdGVfRmluZE1vZHVsZWAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisuLiBjOmZ1bmN0aW9uOjogaW50IFB5U3RhdGVfUmVtb3ZlTW9kdWxlKFB5TW9kdWxlRGVmICpkZWYsIFB5T2JqZWN0ICptb2R1bGUpCisKKyAgIFJlbW92ZXMgdGhlIG1vZHVsZSBvYmplY3QgY3JlYXRlZCBmcm9tICpkZWYqIGZyb20gdGhlIGludGVycHJldGVyIHN0YXRlLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAogSW5pdGlhbGl6aW5nIEMgbW9kdWxlcwogXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgpkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL29iamVjdC5yc3QgYi9Eb2MvYy1hcGkvb2JqZWN0LnJzdAppbmRleCBkMGQ0NWFkLi5kODk1NTQ3IDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvb2JqZWN0LnJzdAorKysgYi9Eb2MvYy1hcGkvb2JqZWN0LnJzdApAQCAtNiw2ICs2LDE5IEBACiA9PT09PT09PT09PT09PT0KIAogCisuLiBjOnZhcjo6IFB5T2JqZWN0KiBQeV9Ob3RJbXBsZW1lbnRlZAorCisgICBUaGUgYGBOb3RJbXBsZW1lbnRlZGBgIHNpbmdsZXRvbiwgdXNlZCB0byBzaWduYWwgdGhhdCBhbiBvcGVyYXRpb24gaXMKKyAgIG5vdCBpbXBsZW1lbnRlZCBmb3IgdGhlIGdpdmVuIHR5cGUgY29tYmluYXRpb24uCisKKworLi4gYzptYWNybzo6IFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRAorCisgICBQcm9wZXJseSBoYW5kbGUgcmV0dXJuaW5nIDpjOmRhdGE6YFB5X05vdEltcGxlbWVudGVkYCBmcm9tIHdpdGhpbiBhIEMKKyAgIGZ1bmN0aW9uICh0aGF0IGlzLCBpbmNyZW1lbnQgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiBOb3RJbXBsZW1lbnRlZCBhbmQKKyAgIHJldHVybiBpdCkuCisKKwogLi4gYzpmdW5jdGlvbjo6IGludCBQeU9iamVjdF9QcmludChQeU9iamVjdCAqbywgRklMRSAqZnAsIGludCBmbGFncykKIAogICAgUHJpbnQgYW4gb2JqZWN0ICpvKiwgb24gZmlsZSAqZnAqLiAgUmV0dXJucyBgYC0xYGAgb24gZXJyb3IuICBUaGUgZmxhZ3MgYXJndW1lbnQKQEAgLTg4LDYgKzEwMSwyMiBAQAogICAgVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiB0aGUgUHl0aG9uIHN0YXRlbWVudCBgYGRlbCBvLmF0dHJfbmFtZWBgLgogCiAKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlUeXBlX0dlbmVyaWNHZXREaWN0KFB5T2JqZWN0ICpvLCB2b2lkICpjb250ZXh0KQorCisgICBBIGdlbmVyaWMgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBnZXR0ZXIgb2YgYSBgYF9fZGljdF9fYGAgZGVzY3JpcHRvci4gSXQKKyAgIGNyZWF0ZXMgdGhlIGRpY3Rpb25hcnkgaWYgbmVjZXNzYXJ5LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogaW50IFB5VHlwZV9HZW5lcmljU2V0RGljdChQeU9iamVjdCAqbywgdm9pZCAqY29udGV4dCkKKworICAgQSBnZW5lcmljIGltcGxlbWVudGF0aW9uIGZvciB0aGUgc2V0dGVyIG9mIGEgYGBfX2RpY3RfX2BgIGRlc2NyaXB0b3IuIFRoaXMKKyAgIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGFsbG93IHRoZSBkaWN0aW9uYXJ5IHRvIGJlIGRlbGV0ZWQuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlPYmplY3RfUmljaENvbXBhcmUoUHlPYmplY3QgKm8xLCBQeU9iamVjdCAqbzIsIGludCBvcGlkKQogCiAgICBDb21wYXJlIHRoZSB2YWx1ZXMgb2YgKm8xKiBhbmQgKm8yKiB1c2luZyB0aGUgb3BlcmF0aW9uIHNwZWNpZmllZCBieSAqb3BpZCosCmRpZmYgLS1naXQgYS9Eb2MvYy1hcGkvc2V0LnJzdCBiL0RvYy9jLWFwaS9zZXQucnN0CmluZGV4IDY2YjQ3YzQuLjVmMGVmOTAgMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS9zZXQucnN0CisrKyBiL0RvYy9jLWFwaS9zZXQucnN0CkBAIC0xNTcsMyArMTU3LDEwIEBACiAuLiBjOmZ1bmN0aW9uOjogaW50IFB5U2V0X0NsZWFyKFB5T2JqZWN0ICpzZXQpCiAKICAgIEVtcHR5IGFuIGV4aXN0aW5nIHNldCBvZiBhbGwgZWxlbWVudHMuCisKKworLi4gYzpmdW5jdGlvbjo6IGludCBQeVNldF9DbGVhckZyZWVMaXN0KCkKKworICAgQ2xlYXIgdGhlIGZyZWUgbGlzdC4gUmV0dXJuIHRoZSB0b3RhbCBudW1iZXIgb2YgZnJlZWQgaXRlbXMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwpkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL3N0YWJsZS5yc3QgYi9Eb2MvYy1hcGkvc3RhYmxlLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNjg4YzFjCi0tLSAvZGV2L251bGwKKysrIGIvRG9jL2MtYXBpL3N0YWJsZS5yc3QKQEAgLTAsMCArMSwzOSBAQAorLi4gaGlnaGxpZ2h0bGFuZzo6IGMKKworLi4gX3N0YWJsZToKKworKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorU3RhYmxlIEFwcGxpY3Rpb24gQmluYXJ5IEludGVyZmFjZQorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorCitUcmFkaXRpb25hbGx5LCB0aGUgQyBBUEkgb2YgUHl0aG9uIHdpbGwgY2hhbmdlIHdpdGggZXZlcnkgcmVsZWFzZS4KK01vc3QgY2hhbmdlcyB3aWxsIGJlIHNvdXJjZS1jb21wYXRpYmxlLCB0eXBpY2FsbHkgYnkgb25seSBhZGRpbmcgQVBJLAorcmF0aGVyIHRoYW4gY2hhbmdpbmcgZXhpc3RpbmcgQVBJIG9yIHJlbW92aW5nIEFQSSAoYWx0aG91Z2ggc29tZQoraW50ZXJmYWNlcyBkbyBnZXQgcmVtb3ZlZCBhZnRlciBiZWluZyBkZXByZWNhdGVkIGZpcnN0KS4KKworVW5mb3J0dW5hdGVseSwgdGhlIEFQSSBjb21wYXRpYmlsaXR5IGRvZXMgbm90IGV4dGVuZCB0byBiaW5hcnkKK2NvbXBhdGliaWxpdHkgKHRoZSBBQkkpLiBUaGUgcmVhc29uIGlzIHByaW1hcmlseSB0aGUgZXZvbHV0aW9uIG9mCitzdHJ1Y3QgZGVmaW5pdGlvbnMsIHdoZXJlIGFkZGl0aW9uIG9mIGEgbmV3IGZpZWxkLCBvciBjaGFuZ2luZwordGhlIHR5cGUgb2YgYSBmaWVsZCwgbWlnaHQgbm90IGJyZWFrIHRoZSBBUEksIGJ1dCBjYW4gYnJlYWsgdGhlIEFCSS4KK0FzIGEgY29uc2VxdWVuY2UsIGV4dGVuc2lvbiBtb2R1bGVzIG5lZWQgdG8gYmUgcmVjb21waWxlZCBmb3IKK2V2ZXJ5IFB5dGhvbiByZWxlYXNlIChhbHRob3VnaCBhbiBleGNlcHRpb24gaXMgcG9zc2libGUgb24gVW5peAord2hlbiBub25lIG9mIHRoZSBhZmZlY3RlZCBpbnRlcmZhY2VzIGFyZSB1c2VkKS4gSW4gYWRkaXRpb24sIG9uCitXaW5kb3dzLCBleHRlbnNpb24gbW9kdWxlcyBsaW5rIHdpdGggYSBzcGVjaWZpYyBweXRob25YWS5kbGwgYW5kCituZWVkIHRvIGJlIHJlY29tcGlsZWQgdG8gbGluayB3aXRoIGEgbmV3ZXIgb25lLgorCitTaW5jZSBQeXRob24gMy4yLCBhIHN1YnNldCBvZiB0aGUgQVBJIGhhcyBiZWVuIGRlY2xhcmVkIHRvIGd1YXJhbnRlZQorYSBzdGFibGUgQUJJLiBFeHRlbnNpb24gbW9kdWxlcyB3aXNoaW5nIHRvIHVzZSB0aGlzIEFQSSBuZWVkIHRvIGRlZmluZQorUHlfTElNSVRFRF9BUEkuIEEgbnVtYmVyIG9mIGludGVycHJldGVyIGRldGFpbHMgdGhlbiBiZWNvbWUgaGlkZGVuCitmcm9tIHRoZSBleHRlbnNpb24gbW9kdWxlOyBpbiByZXR1cm4sIGEgbW9kdWxlIGlzIGJ1aWx0IHRoYXQgd29ya3MKK29uIGFueSAzLnggdmVyc2lvbiAoeD49Mikgd2l0aG91dCByZWNvbXBpbGF0aW9uLiBJbiBzb21lIGNhc2VzLCB0aGUKK3N0YWJsZSBBQkkgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgd2l0aCBuZXcgZnVuY3Rpb25zLiBFeHRlbnNpb25zIG1vZHVsZXMKK3dpc2hpbmcgdG8gdXNlIHRoZXNlIG5ldyBBUElzIG5lZWQgdG8gc2V0IFB5X0xJTUlURURfQVBJIHRvIHRoZQorUFlfVkVSU0lPTl9IRVggdmFsdWUgb2YgdGhlIG1pbmltdW0gUHl0aG9uIHZlcnNpb24gdGhleSB3YW50IHRvCitzdXBwb3J0IChlLmcuIDB4MDMwMzAwMDAgZm9yIFB5dGhvbiAzLjMpLiBTdWNoIG1vZHVsZXMgd2lsbCB3b3JrCitvbiBhbGwgc3Vic2VxdWVudCBQeXRob24gcmVsZWFzZXMsIGJ1dCBmYWlsIHRvIGxvYWQgKGJlY2F1c2Ugb2YKK21pc3Npbmcgc3ltYm9scykgb24gdGhlIG9sZGVyIHJlbGVhc2VzLgorCitBcyBvZiBQeXRob24gMy4yLCB0aGUgc2V0IG9mIGZ1bmN0aW9ucyBhdmFpbGFibGUgdG8gdGhlIGxpbWl0ZWQgQVBJCitpcyBkb2N1bWVudGVkIGluIFBFUCAzODQuCisKKy4uIFhYWCBjb3B5IGV4YWN0IGxpc3QgaGVyZT8gSW50byBlYWNoIGZ1bmN0aW9ucyBkZWZpbml0aW9uPwpkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL3R5cGUucnN0IGIvRG9jL2MtYXBpL3R5cGUucnN0CmluZGV4IGIzMzg2ZWEuLjQ0YzczMWEgMTAwNjQ0Ci0tLSBhL0RvYy9jLWFwaS90eXBlLnJzdAorKysgYi9Eb2MvYy1hcGkvdHlwZS5yc3QKQEAgLTUxLDEzICs1MSwxMyBAQAogICAgbW9kaWZpY2F0aW9uIG9mIHRoZSBhdHRyaWJ1dGVzIG9yIGJhc2UgY2xhc3NlcyBvZiB0aGUgdHlwZS4KIAogCi0uLiBjOmZ1bmN0aW9uOjogaW50IFB5VHlwZV9IYXNGZWF0dXJlKFB5T2JqZWN0ICpvLCBpbnQgZmVhdHVyZSkKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlUeXBlX0hhc0ZlYXR1cmUoUHlUeXBlT2JqZWN0ICpvLCBpbnQgZmVhdHVyZSkKIAogICAgUmV0dXJuIHRydWUgaWYgdGhlIHR5cGUgb2JqZWN0ICpvKiBzZXRzIHRoZSBmZWF0dXJlICpmZWF0dXJlKi4gIFR5cGUgZmVhdHVyZXMKICAgIGFyZSBkZW5vdGVkIGJ5IHNpbmdsZSBiaXQgZmxhZ3MuCiAKIAotLi4gYzpmdW5jdGlvbjo6IGludCBQeVR5cGVfSVNfR0MoUHlPYmplY3QgKm8pCisuLiBjOmZ1bmN0aW9uOjogaW50IFB5VHlwZV9JU19HQyhQeVR5cGVPYmplY3QgKm8pCiAKICAgIFJldHVybiB0cnVlIGlmIHRoZSB0eXBlIG9iamVjdCBpbmNsdWRlcyBzdXBwb3J0IGZvciB0aGUgY3ljbGUgZGV0ZWN0b3I7IHRoaXMKICAgIHRlc3RzIHRoZSB0eXBlIGZsYWcgOmNvbnN0OmBQeV9UUEZMQUdTX0hBVkVfR0NgLgpAQCAtNzAsMTMgKzcwLDE0IEBACiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlUeXBlX0dlbmVyaWNBbGxvYyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5X3NzaXplX3Qgbml0ZW1zKQogCi0gICBYWFg6IERvY3VtZW50LgotCisgICBHZW5lcmljIGhhbmRsZXIgZm9yIHRoZSA6YXR0cjpgdHBfYWxsb2NgIHNsb3Qgb2YgYSB0eXBlIG9iamVjdC4gIFVzZQorICAgUHl0aG9uJ3MgZGVmYXVsdCBtZW1vcnkgYWxsb2NhdGlvbiBtZWNoYW5pc20gdG8gYWxsb2NhdGUgYSBuZXcgaW5zdGFuY2UgYW5kCisgICBpbml0aWFsaXplIGFsbCBpdHMgY29udGVudHMgdG8gKk5VTEwqLgogCiAuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VHlwZV9HZW5lcmljTmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogCi0gICBYWFg6IERvY3VtZW50LgotCisgICBHZW5lcmljIGhhbmRsZXIgZm9yIHRoZSA6YXR0cjpgdHBfbmV3YCBzbG90IG9mIGEgdHlwZSBvYmplY3QuICBDcmVhdGUgYQorICAgbmV3IGluc3RhbmNlIHVzaW5nIHRoZSB0eXBlJ3MgOmF0dHI6YHRwX2FsbG9jYCBzbG90LgogCiAuLiBjOmZ1bmN0aW9uOjogaW50IFB5VHlwZV9SZWFkeShQeVR5cGVPYmplY3QgKnR5cGUpCiAKQEAgLTg0LDMgKzg1LDE1IEBACiAgICB0aGVpciBpbml0aWFsaXphdGlvbi4gIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIGFkZGluZyBpbmhlcml0ZWQgc2xvdHMKICAgIGZyb20gYSB0eXBlJ3MgYmFzZSBjbGFzcy4gIFJldHVybiBgYDBgYCBvbiBzdWNjZXNzLCBvciByZXR1cm4gYGAtMWBgIGFuZCBzZXRzIGFuCiAgICBleGNlcHRpb24gb24gZXJyb3IuCisKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlUeXBlX0Zyb21TcGVjKFB5VHlwZV9TcGVjICpzcGVjKQorCisgICBDcmVhdGVzIGFuZCByZXR1cm5zIGEgaGVhcCB0eXBlIG9iamVjdCBmcm9tIHRoZSAqc3BlYyogcGFzc2VkIHRvIHRoZSBmdW5jdGlvbi4KKworLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVR5cGVfRnJvbVNwZWNXaXRoQmFzZXMoUHlUeXBlX1NwZWMgKnNwZWMsIFB5T2JqZWN0ICpiYXNlcykKKworICAgQ3JlYXRlcyBhbmQgcmV0dXJucyBhIGhlYXAgdHlwZSBvYmplY3QgZnJvbSB0aGUgKnNwZWMqLiBJbiBhZGRpdGlvbiB0byB0aGF0LAorICAgdGhlIGNyZWF0ZWQgaGVhcCB0eXBlIGNvbnRhaW5zIGFsbCB0eXBlcyBjb250YWluZWQgYnkgdGhlICpiYXNlcyogdHVwbGUgYXMgYmFzZQorICAgdHlwZXMuIFRoaXMgYWxsb3dzIHRoZSBjYWxsZXIgdG8gcmVmZXJlbmNlIG90aGVyIGhlYXAgdHlwZXMgYXMgYmFzZSB0eXBlcy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCmRpZmYgLS1naXQgYS9Eb2MvYy1hcGkvdHlwZW9iai5yc3QgYi9Eb2MvYy1hcGkvdHlwZW9iai5yc3QKaW5kZXggNjhjYTlhZC4uZWExYTBhZCAxMDA2NDQKLS0tIGEvRG9jL2MtYXBpL3R5cGVvYmoucnN0CisrKyBiL0RvYy9jLWFwaS90eXBlb2JqLnJzdApAQCAtMTE5OCw0NiArMTE5OCw4OCBAQAogCiAuLiBzZWN0aW9uYXV0aG9yOjogR3JlZyBKLiBTdGVpbiA8Z3JlZ0BseXJhLm9yZz4KIC4uIHNlY3Rpb25hdXRob3I6OiBCZW5qYW1pbiBQZXRlcnNvbgotCi0KLVRoZSA6cmVmOmBidWZmZXIgaW50ZXJmYWNlIDxidWZmZXJvYmplY3RzPmAgZXhwb3J0cyBhIG1vZGVsIHdoZXJlIGFuIG9iamVjdCBjYW4gZXhwb3NlIGl0cyBpbnRlcm5hbAotZGF0YS4KLQotSWYgYW4gb2JqZWN0IGRvZXMgbm90IGV4cG9ydCB0aGUgYnVmZmVyIGludGVyZmFjZSwgdGhlbiBpdHMgOmF0dHI6YHRwX2FzX2J1ZmZlcmAKLW1lbWJlciBpbiB0aGUgOmM6dHlwZTpgUHlUeXBlT2JqZWN0YCBzdHJ1Y3R1cmUgc2hvdWxkIGJlICpOVUxMKi4gIE90aGVyd2lzZSwgdGhlCi06YXR0cjpgdHBfYXNfYnVmZmVyYCB3aWxsIHBvaW50IHRvIGEgOmM6dHlwZTpgUHlCdWZmZXJQcm9jc2Agc3RydWN0dXJlLgotCisuLiBzZWN0aW9uYXV0aG9yOjogU3RlZmFuIEtyYWgKIAogLi4gYzp0eXBlOjogUHlCdWZmZXJQcm9jcwogCi0gICBTdHJ1Y3R1cmUgdXNlZCB0byBob2xkIHRoZSBmdW5jdGlvbiBwb2ludGVycyB3aGljaCBkZWZpbmUgYW4gaW1wbGVtZW50YXRpb24gb2YKLSAgIHRoZSBidWZmZXIgcHJvdG9jb2wuCisgICBUaGlzIHN0cnVjdHVyZSBob2xkcyBwb2ludGVycyB0byB0aGUgZnVuY3Rpb25zIHJlcXVpcmVkIGJ5IHRoZQorICAgOnJlZjpgQnVmZmVyIHByb3RvY29sIDxidWZmZXJvYmplY3RzPmAuIFRoZSBwcm90b2NvbCBkZWZpbmVzIGhvdworICAgYW4gZXhwb3J0ZXIgb2JqZWN0IGNhbiBleHBvc2UgaXRzIGludGVybmFsIGRhdGEgdG8gY29uc3VtZXIgb2JqZWN0cy4KIAotICAgLi4gYzptZW1iZXI6OiBnZXRidWZmZXJwcm9jIGJmX2dldGJ1ZmZlcgorLi4gYzptZW1iZXI6OiBnZXRidWZmZXJwcm9jIFB5QnVmZmVyUHJvY3MuYmZfZ2V0YnVmZmVyCiAKLSAgICAgIFRoaXMgc2hvdWxkIGZpbGwgYSA6Yzp0eXBlOmBQeV9idWZmZXJgIHdpdGggdGhlIG5lY2Vzc2FyeSBkYXRhIGZvcgotICAgICAgZXhwb3J0aW5nIHRoZSB0eXBlLiAgVGhlIHNpZ25hdHVyZSBvZiA6ZGF0YTpgZ2V0YnVmZmVycHJvY2AgaXMgYGBpbnQKLSAgICAgIChQeU9iamVjdCAqb2JqLCBQeV9idWZmZXIgKnZpZXcsIGludCBmbGFncylgYC4gICpvYmoqIGlzIHRoZSBvYmplY3QgdG8KLSAgICAgIGV4cG9ydCwgKnZpZXcqIGlzIHRoZSA6Yzp0eXBlOmBQeV9idWZmZXJgIHN0cnVjdCB0byBmaWxsLCBhbmQgKmZsYWdzKiBnaXZlcwotICAgICAgdGhlIGNvbmRpdGlvbnMgdGhlIGNhbGxlciB3YW50cyB0aGUgbWVtb3J5IHVuZGVyLiAgKFNlZQotICAgICAgOmM6ZnVuYzpgUHlPYmplY3RfR2V0QnVmZmVyYCBmb3IgYWxsIGZsYWdzLikgIDpjOm1lbWJlcjpgYmZfZ2V0YnVmZmVyYCBpcwotICAgICAgcmVzcG9uc2libGUgZm9yIGZpbGxpbmcgKnZpZXcqIHdpdGggdGhlIGFwcHJvcHJpYXRlIGluZm9ybWF0aW9uLgotICAgICAgKDpjOmZ1bmM6YFB5QnVmZmVyX0ZpbGxWaWV3YCBjYW4gYmUgdXNlZCBpbiBzaW1wbGUgY2FzZXMuKSAgU2VlCi0gICAgICA6Yzp0eXBlOmBQeV9idWZmZXJgXHMgZG9jcyBmb3Igd2hhdCBuZWVkcyB0byBiZSBmaWxsZWQgaW4uCisgICBUaGUgc2lnbmF0dXJlIG9mIHRoaXMgZnVuY3Rpb24gaXM6OgorCisgICAgICAgaW50IChQeU9iamVjdCAqZXhwb3J0ZXIsIFB5X2J1ZmZlciAqdmlldywgaW50IGZsYWdzKTsKKworICAgSGFuZGxlIGEgcmVxdWVzdCB0byAqZXhwb3J0ZXIqIHRvIGZpbGwgaW4gKnZpZXcqIGFzIHNwZWNpZmllZCBieSAqZmxhZ3MqLgorICAgRXhjZXB0IGZvciBwb2ludCAoMyksIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgZnVuY3Rpb24gTVVTVCB0YWtlIHRoZXNlCisgICBzdGVwczoKKworICAgKDEpIENoZWNrIGlmIHRoZSByZXF1ZXN0IGNhbiBiZSBtZXQuIElmIG5vdCwgcmFpc2UgOmM6ZGF0YTpgUHlFeGNfQnVmZmVyRXJyb3JgLAorICAgICAgIHNldCA6YzpkYXRhOmB2aWV3LT5vYmpgIHRvICpOVUxMKiBhbmQgcmV0dXJuIC0xLgorCisgICAoMikgRmlsbCBpbiB0aGUgcmVxdWVzdGVkIGZpZWxkcy4KKworICAgKDMpIEluY3JlbWVudCBhbiBpbnRlcm5hbCBjb3VudGVyIGZvciB0aGUgbnVtYmVyIG9mIGV4cG9ydHMuCisKKyAgICg0KSBTZXQgOmM6ZGF0YTpgdmlldy0+b2JqYCB0byAqZXhwb3J0ZXIqIGFuZCBpbmNyZW1lbnQgOmM6ZGF0YTpgdmlldy0+b2JqYC4KKworICAgKDUpIFJldHVybiAwLgorCisgICBJZiAqZXhwb3J0ZXIqIGlzIHBhcnQgb2YgYSBjaGFpbiBvciB0cmVlIG9mIGJ1ZmZlciBwcm92aWRlcnMsIHR3byBtYWluCisgICBzY2hlbWVzIGNhbiBiZSB1c2VkOgorCisgICAqIFJlLWV4cG9ydDogRWFjaCBtZW1iZXIgb2YgdGhlIHRyZWUgYWN0cyBhcyB0aGUgZXhwb3J0aW5nIG9iamVjdCBhbmQKKyAgICAgc2V0cyA6YzpkYXRhOmB2aWV3LT5vYmpgIHRvIGEgbmV3IHJlZmVyZW5jZSB0byBpdHNlbGYuCisKKyAgICogUmVkaXJlY3Q6IFRoZSBidWZmZXIgcmVxdWVzdCBpcyByZWRpcmVjdGVkIHRvIHRoZSByb290IG9iamVjdCBvZiB0aGUKKyAgICAgdHJlZS4gSGVyZSwgOmM6ZGF0YTpgdmlldy0+b2JqYCB3aWxsIGJlIGEgbmV3IHJlZmVyZW5jZSB0byB0aGUgcm9vdAorICAgICBvYmplY3QuCisKKyAgIFRoZSBpbmRpdmlkdWFsIGZpZWxkcyBvZiAqdmlldyogYXJlIGRlc2NyaWJlZCBpbiBzZWN0aW9uCisgICA6cmVmOmBCdWZmZXIgc3RydWN0dXJlIDxidWZmZXItc3RydWN0dXJlPmAsIHRoZSBydWxlcyBob3cgYW4gZXhwb3J0ZXIKKyAgIG11c3QgcmVhY3QgdG8gc3BlY2lmaWMgcmVxdWVzdHMgYXJlIGluIHNlY3Rpb24KKyAgIDpyZWY6YEJ1ZmZlciByZXF1ZXN0IHR5cGVzIDxidWZmZXItcmVxdWVzdC10eXBlcz5gLgorCisgICBBbGwgbWVtb3J5IHBvaW50ZWQgdG8gaW4gdGhlIDpjOnR5cGU6YFB5X2J1ZmZlcmAgc3RydWN0dXJlIGJlbG9uZ3MgdG8KKyAgIHRoZSBleHBvcnRlciBhbmQgbXVzdCByZW1haW4gdmFsaWQgdW50aWwgdGhlcmUgYXJlIG5vIGNvbnN1bWVycyBsZWZ0LgorICAgOmM6bWVtYmVyOmB+UHlfYnVmZmVyLmZvcm1hdGAsIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zaGFwZWAsCisgICA6YzptZW1iZXI6YH5QeV9idWZmZXIuc3RyaWRlc2AsIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zdWJvZmZzZXRzYAorICAgYW5kIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5pbnRlcm5hbGAKKyAgIGFyZSByZWFkLW9ubHkgZm9yIHRoZSBjb25zdW1lci4KKworICAgOmM6ZnVuYzpgUHlCdWZmZXJfRmlsbEluZm9gIHByb3ZpZGVzIGFuIGVhc3kgd2F5IG9mIGV4cG9zaW5nIGEgc2ltcGxlCisgICBieXRlcyBidWZmZXIgd2hpbGUgZGVhbGluZyBjb3JyZWN0bHkgd2l0aCBhbGwgcmVxdWVzdCB0eXBlcy4KKworICAgOmM6ZnVuYzpgUHlPYmplY3RfR2V0QnVmZmVyYCBpcyB0aGUgaW50ZXJmYWNlIGZvciB0aGUgY29uc3VtZXIgdGhhdAorICAgd3JhcHMgdGhpcyBmdW5jdGlvbi4KKworLi4gYzptZW1iZXI6OiByZWxlYXNlYnVmZmVycHJvYyBQeUJ1ZmZlclByb2NzLmJmX3JlbGVhc2VidWZmZXIKKworICAgVGhlIHNpZ25hdHVyZSBvZiB0aGlzIGZ1bmN0aW9uIGlzOjoKKworICAgICAgIHZvaWQgKFB5T2JqZWN0ICpleHBvcnRlciwgUHlfYnVmZmVyICp2aWV3KTsKKworICAgSGFuZGxlIGEgcmVxdWVzdCB0byByZWxlYXNlIHRoZSByZXNvdXJjZXMgb2YgdGhlIGJ1ZmZlci4gSWYgbm8gcmVzb3VyY2VzCisgICBuZWVkIHRvIGJlIHJlbGVhc2VkLCA6YzptZW1iZXI6YFB5QnVmZmVyUHJvY3MuYmZfcmVsZWFzZWJ1ZmZlcmAgbWF5IGJlCisgICAqTlVMTCouIE90aGVyd2lzZSwgYSBzdGFuZGFyZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZ1bmN0aW9uIHdpbGwgdGFrZQorICAgdGhlc2Ugb3B0aW9uYWwgc3RlcHM6CisKKyAgICgxKSBEZWNyZW1lbnQgYW4gaW50ZXJuYWwgY291bnRlciBmb3IgdGhlIG51bWJlciBvZiBleHBvcnRzLgorCisgICAoMikgSWYgdGhlIGNvdW50ZXIgaXMgMCwgZnJlZSBhbGwgbWVtb3J5IGFzc29jaWF0ZWQgd2l0aCAqdmlldyouCisKKyAgIFRoZSBleHBvcnRlciBNVVNUIHVzZSB0aGUgOmM6bWVtYmVyOmB+UHlfYnVmZmVyLmludGVybmFsYCBmaWVsZCB0byBrZWVwCisgICB0cmFjayBvZiBidWZmZXItc3BlY2lmaWMgcmVzb3VyY2VzLiBUaGlzIGZpZWxkIGlzIGd1YXJhbnRlZWQgdG8gcmVtYWluCisgICBjb25zdGFudCwgd2hpbGUgYSBjb25zdW1lciBNQVkgcGFzcyBhIGNvcHkgb2YgdGhlIG9yaWdpbmFsIGJ1ZmZlciBhcyB0aGUKKyAgICp2aWV3KiBhcmd1bWVudC4KIAogCi0gICAuLiBjOm1lbWJlcjo6IHJlbGVhc2VidWZmZXJwcm9jIGJmX3JlbGVhc2VidWZmZXIKKyAgIFRoaXMgZnVuY3Rpb24gTVVTVCBOT1QgZGVjcmVtZW50IDpjOmRhdGE6YHZpZXctPm9iamAsIHNpbmNlIHRoYXQgaXMKKyAgIGRvbmUgYXV0b21hdGljYWxseSBpbiA6YzpmdW5jOmBQeUJ1ZmZlcl9SZWxlYXNlYCAodGhpcyBzY2hlbWUgaXMKKyAgIHVzZWZ1bCBmb3IgYnJlYWtpbmcgcmVmZXJlbmNlIGN5Y2xlcykuCiAKLSAgICAgIFRoaXMgc2hvdWxkIHJlbGVhc2UgdGhlIHJlc291cmNlcyBvZiB0aGUgYnVmZmVyLiAgVGhlIHNpZ25hdHVyZSBvZgotICAgICAgOmM6ZGF0YTpgcmVsZWFzZWJ1ZmZlcnByb2NgIGlzIGBgdm9pZCAoUHlPYmplY3QgKm9iaiwgUHlfYnVmZmVyICp2aWV3KWBgLgotICAgICAgSWYgdGhlIDpjOmRhdGE6YGJmX3JlbGVhc2VidWZmZXJgIGZ1bmN0aW9uIGlzIG5vdCBwcm92aWRlZCAoaS5lLiBpdCBpcwotICAgICAgKk5VTEwqKSwgdGhlbiBpdCBkb2VzIG5vdCBldmVyIG5lZWQgdG8gYmUgY2FsbGVkLgogCi0gICAgICBUaGUgZXhwb3J0ZXIgb2YgdGhlIGJ1ZmZlciBpbnRlcmZhY2UgbXVzdCBtYWtlIHN1cmUgdGhhdCBhbnkgbWVtb3J5Ci0gICAgICBwb2ludGVkIHRvIGluIHRoZSA6Yzp0eXBlOmBQeV9idWZmZXJgIHN0cnVjdHVyZSByZW1haW5zIHZhbGlkIHVudGlsCi0gICAgICByZWxlYXNlYnVmZmVyIGlzIGNhbGxlZC4gIEV4cG9ydGVycyB3aWxsIG5lZWQgdG8gZGVmaW5lIGEKLSAgICAgIDpjOmRhdGE6YGJmX3JlbGVhc2VidWZmZXJgIGZ1bmN0aW9uIGlmIHRoZXkgY2FuIHJlLWFsbG9jYXRlIHRoZWlyIG1lbW9yeSwKLSAgICAgIHN0cmlkZXMsIHNoYXBlLCBzdWJvZmZzZXRzLCBvciBmb3JtYXQgdmFyaWFibGVzIHdoaWNoIHRoZXkgbWlnaHQgc2hhcmUKLSAgICAgIHRocm91Z2ggdGhlIHN0cnVjdCBidWZmZXJpbmZvLgotCi0gICAgICBTZWUgOmM6ZnVuYzpgUHlCdWZmZXJfUmVsZWFzZWAuCisgICA6YzpmdW5jOmBQeUJ1ZmZlcl9SZWxlYXNlYCBpcyB0aGUgaW50ZXJmYWNlIGZvciB0aGUgY29uc3VtZXIgdGhhdAorICAgd3JhcHMgdGhpcyBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL0RvYy9jLWFwaS91bmljb2RlLnJzdCBiL0RvYy9jLWFwaS91bmljb2RlLnJzdAppbmRleCAzNTAwNjU0Li5mYjdiYTY3IDEwMDY0NAotLS0gYS9Eb2MvYy1hcGkvdW5pY29kZS5yc3QKKysrIGIvRG9jL2MtYXBpL3VuaWNvZGUucnN0CkBAIC02LDM4ICs2LDcyIEBACiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAuLiBzZWN0aW9uYXV0aG9yOjogTWFyYy1BbmRyZSBMZW1idXJnIDxtYWxAbGVtYnVyZy5jb20+CisuLiBzZWN0aW9uYXV0aG9yOjogR2VvcmcgQnJhbmRsIDxnZW9yZ0BweXRob24ub3JnPgogCiBVbmljb2RlIE9iamVjdHMKIF5eXl5eXl5eXl5eXl5eXgogCitTaW5jZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgOnBlcDpgMzkzYCBpbiBQeXRob24gMy4zLCBVbmljb2RlIG9iamVjdHMgaW50ZXJuYWxseQordXNlIGEgdmFyaWV0eSBvZiByZXByZXNlbnRhdGlvbnMsIGluIG9yZGVyIHRvIGFsbG93IGhhbmRsaW5nIHRoZSBjb21wbGV0ZSByYW5nZQorb2YgVW5pY29kZSBjaGFyYWN0ZXJzIHdoaWxlIHN0YXlpbmcgbWVtb3J5IGVmZmljaWVudC4gIFRoZXJlIGFyZSBzcGVjaWFsIGNhc2VzCitmb3Igc3RyaW5ncyB3aGVyZSBhbGwgY29kZSBwb2ludHMgYXJlIGJlbG93IDEyOCwgMjU2LCBvciA2NTUzNjsgb3RoZXJ3aXNlLCBjb2RlCitwb2ludHMgbXVzdCBiZSBiZWxvdyAxMTE0MTEyICh3aGljaCBpcyB0aGUgZnVsbCBVbmljb2RlIHJhbmdlKS4KKworOmM6dHlwZTpgUHlfVU5JQ09ERSpgIGFuZCBVVEYtOCByZXByZXNlbnRhdGlvbnMgYXJlIGNyZWF0ZWQgb24gZGVtYW5kIGFuZCBjYWNoZWQKK2luIHRoZSBVbmljb2RlIG9iamVjdC4gIFRoZSA6Yzp0eXBlOmBQeV9VTklDT0RFKmAgcmVwcmVzZW50YXRpb24gaXMgZGVwcmVjYXRlZAorYW5kIGluZWZmaWNpZW50OyBpdCBzaG91bGQgYmUgYXZvaWRlZCBpbiBwZXJmb3JtYW5jZS0gb3IgbWVtb3J5LXNlbnNpdGl2ZQorc2l0dWF0aW9ucy4KKworRHVlIHRvIHRoZSB0cmFuc2l0aW9uIGJldHdlZW4gdGhlIG9sZCBBUElzIGFuZCB0aGUgbmV3IEFQSXMsIHVuaWNvZGUgb2JqZWN0cworY2FuIGludGVybmFsbHkgYmUgaW4gdHdvIHN0YXRlcyBkZXBlbmRpbmcgb24gaG93IHRoZXkgd2VyZSBjcmVhdGVkOgorCisqICJjYW5vbmljYWwiIHVuaWNvZGUgb2JqZWN0cyBhcmUgYWxsIG9iamVjdHMgY3JlYXRlZCBieSBhIG5vbi1kZXByZWNhdGVkCisgIHVuaWNvZGUgQVBJLiAgVGhleSB1c2UgdGhlIG1vc3QgZWZmaWNpZW50IHJlcHJlc2VudGF0aW9uIGFsbG93ZWQgYnkgdGhlCisgIGltcGxlbWVudGF0aW9uLgorCisqICJsZWdhY3kiIHVuaWNvZGUgb2JqZWN0cyBoYXZlIGJlZW4gY3JlYXRlZCB0aHJvdWdoIG9uZSBvZiB0aGUgZGVwcmVjYXRlZAorICBBUElzICh0eXBpY2FsbHkgOmM6ZnVuYzpgUHlVbmljb2RlX0Zyb21Vbmljb2RlYCkgYW5kIG9ubHkgYmVhciB0aGUKKyAgOmM6dHlwZTpgUHlfVU5JQ09ERSpgIHJlcHJlc2VudGF0aW9uOyB5b3Ugd2lsbCBoYXZlIHRvIGNhbGwKKyAgOmM6ZnVuYzpgUHlVbmljb2RlX1JFQURZYCBvbiB0aGVtIGJlZm9yZSBjYWxsaW5nIGFueSBvdGhlciBBUEkuCisKKwogVW5pY29kZSBUeXBlCiAiIiIiIiIiIiIiIiIKIAogVGhlc2UgYXJlIHRoZSBiYXNpYyBVbmljb2RlIG9iamVjdCB0eXBlcyB1c2VkIGZvciB0aGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBpbgogUHl0aG9uOgogCisuLiBjOnR5cGU6OiBQeV9VQ1M0CisgICAgICAgICAgICBQeV9VQ1MyCisgICAgICAgICAgICBQeV9VQ1MxCisKKyAgIFRoZXNlIHR5cGVzIGFyZSB0eXBlZGVmcyBmb3IgdW5zaWduZWQgaW50ZWdlciB0eXBlcyB3aWRlIGVub3VnaCB0byBjb250YWluCisgICBjaGFyYWN0ZXJzIG9mIDMyIGJpdHMsIDE2IGJpdHMgYW5kIDggYml0cywgcmVzcGVjdGl2ZWx5LiAgV2hlbiBkZWFsaW5nIHdpdGgKKyAgIHNpbmdsZSBVbmljb2RlIGNoYXJhY3RlcnMsIHVzZSA6Yzp0eXBlOmBQeV9VQ1M0YC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogLi4gYzp0eXBlOjogUHlfVU5JQ09ERQogCi0gICBUaGlzIHR5cGUgcmVwcmVzZW50cyB0aGUgc3RvcmFnZSB0eXBlIHdoaWNoIGlzIHVzZWQgYnkgUHl0aG9uIGludGVybmFsbHkgYXMKLSAgIGJhc2lzIGZvciBob2xkaW5nIFVuaWNvZGUgb3JkaW5hbHMuICBQeXRob24ncyBkZWZhdWx0IGJ1aWxkcyB1c2UgYSAxNi1iaXQgdHlwZQotICAgZm9yIDpjOnR5cGU6YFB5X1VOSUNPREVgIGFuZCBzdG9yZSBVbmljb2RlIHZhbHVlcyBpbnRlcm5hbGx5IGFzIFVDUzIuIEl0IGlzIGFsc28KLSAgIHBvc3NpYmxlIHRvIGJ1aWxkIGEgVUNTNCB2ZXJzaW9uIG9mIFB5dGhvbiAobW9zdCByZWNlbnQgTGludXggZGlzdHJpYnV0aW9ucyBjb21lCi0gICB3aXRoIFVDUzQgYnVpbGRzIG9mIFB5dGhvbikuIFRoZXNlIGJ1aWxkcyB0aGVuIHVzZSBhIDMyLWJpdCB0eXBlIGZvcgotICAgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYW5kIHN0b3JlIFVuaWNvZGUgZGF0YSBpbnRlcm5hbGx5IGFzIFVDUzQuIE9uIHBsYXRmb3JtcwotICAgd2hlcmUgOmM6dHlwZTpgd2NoYXJfdGAgaXMgYXZhaWxhYmxlIGFuZCBjb21wYXRpYmxlIHdpdGggdGhlIGNob3NlbiBQeXRob24KLSAgIFVuaWNvZGUgYnVpbGQgdmFyaWFudCwgOmM6dHlwZTpgUHlfVU5JQ09ERWAgaXMgYSB0eXBlZGVmIGFsaWFzIGZvcgotICAgOmM6dHlwZTpgd2NoYXJfdGAgdG8gZW5oYW5jZSBuYXRpdmUgcGxhdGZvcm0gY29tcGF0aWJpbGl0eS4gT24gYWxsIG90aGVyCi0gICBwbGF0Zm9ybXMsIDpjOnR5cGU6YFB5X1VOSUNPREVgIGlzIGEgdHlwZWRlZiBhbGlhcyBmb3IgZWl0aGVyIDpjOnR5cGU6YHVuc2lnbmVkCi0gICBzaG9ydGAgKFVDUzIpIG9yIDpjOnR5cGU6YHVuc2lnbmVkIGxvbmdgIChVQ1M0KS4KKyAgIFRoaXMgaXMgYSB0eXBlZGVmIG9mIDpjOnR5cGU6YHdjaGFyX3RgLCB3aGljaCBpcyBhIDE2LWJpdCB0eXBlIG9yIDMyLWJpdCB0eXBlCisgICBkZXBlbmRpbmcgb24gdGhlIHBsYXRmb3JtLgogCi1Ob3RlIHRoYXQgVUNTMiBhbmQgVUNTNCBQeXRob24gYnVpbGRzIGFyZSBub3QgYmluYXJ5IGNvbXBhdGlibGUuIFBsZWFzZSBrZWVwCi10aGlzIGluIG1pbmQgd2hlbiB3cml0aW5nIGV4dGVuc2lvbnMgb3IgaW50ZXJmYWNlcy4KKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBJbiBwcmV2aW91cyB2ZXJzaW9ucywgdGhpcyB3YXMgYSAxNi1iaXQgdHlwZSBvciBhIDMyLWJpdCB0eXBlIGRlcGVuZGluZyBvbgorICAgICAgd2hldGhlciB5b3Ugc2VsZWN0ZWQgYSAibmFycm93IiBvciAid2lkZSIgVW5pY29kZSB2ZXJzaW9uIG9mIFB5dGhvbiBhdAorICAgICAgYnVpbGQgdGltZS4KIAogCi0uLiBjOnR5cGU6OiBQeVVuaWNvZGVPYmplY3QKKy4uIGM6dHlwZTo6IFB5QVNDSUlPYmplY3QKKyAgICAgICAgICAgIFB5Q29tcGFjdFVuaWNvZGVPYmplY3QKKyAgICAgICAgICAgIFB5VW5pY29kZU9iamVjdAogCi0gICBUaGlzIHN1YnR5cGUgb2YgOmM6dHlwZTpgUHlPYmplY3RgIHJlcHJlc2VudHMgYSBQeXRob24gVW5pY29kZSBvYmplY3QuCisgICBUaGVzZSBzdWJ0eXBlcyBvZiA6Yzp0eXBlOmBQeU9iamVjdGAgcmVwcmVzZW50IGEgUHl0aG9uIFVuaWNvZGUgb2JqZWN0LiAgSW4KKyAgIGFsbW9zdCBhbGwgY2FzZXMsIHRoZXkgc2hvdWxkbid0IGJlIHVzZWQgZGlyZWN0bHksIHNpbmNlIGFsbCBBUEkgZnVuY3Rpb25zCisgICB0aGF0IGRlYWwgd2l0aCBVbmljb2RlIG9iamVjdHMgdGFrZSBhbmQgcmV0dXJuIDpjOnR5cGU6YFB5T2JqZWN0YCBwb2ludGVycy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKIAogLi4gYzp2YXI6OiBQeVR5cGVPYmplY3QgUHlVbmljb2RlX1R5cGUKQEAgLTQ1LDEwICs3OSwxMCBAQAogICAgVGhpcyBpbnN0YW5jZSBvZiA6Yzp0eXBlOmBQeVR5cGVPYmplY3RgIHJlcHJlc2VudHMgdGhlIFB5dGhvbiBVbmljb2RlIHR5cGUuICBJdAogICAgaXMgZXhwb3NlZCB0byBQeXRob24gY29kZSBhcyBgYHN0cmBgLgogCisKIFRoZSBmb2xsb3dpbmcgQVBJcyBhcmUgcmVhbGx5IEMgbWFjcm9zIGFuZCBjYW4gYmUgdXNlZCB0byBkbyBmYXN0IGNoZWNrcyBhbmQgdG8KIGFjY2VzcyBpbnRlcm5hbCByZWFkLW9ubHkgZGF0YSBvZiBVbmljb2RlIG9iamVjdHM6CiAKLQogLi4gYzpmdW5jdGlvbjo6IGludCBQeVVuaWNvZGVfQ2hlY2soUHlPYmplY3QgKm8pCiAKICAgIFJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgKm8qIGlzIGEgVW5pY29kZSBvYmplY3Qgb3IgYW4gaW5zdGFuY2Ugb2YgYSBVbmljb2RlCkBAIC02MSwyOCArOTUsMTA2IEBACiAgICBzdWJ0eXBlLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBQeV9zc2l6ZV90IFB5VW5pY29kZV9HRVRfU0laRShQeU9iamVjdCAqbykKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlVbmljb2RlX1JFQURZKFB5T2JqZWN0ICpvKQogCi0gICBSZXR1cm4gdGhlIHNpemUgb2YgdGhlIG9iamVjdC4gICpvKiBoYXMgdG8gYmUgYSA6Yzp0eXBlOmBQeVVuaWNvZGVPYmplY3RgIChub3QKLSAgIGNoZWNrZWQpLgorICAgRW5zdXJlIHRoZSBzdHJpbmcgb2JqZWN0ICpvKiBpcyBpbiB0aGUgImNhbm9uaWNhbCIgcmVwcmVzZW50YXRpb24uICBUaGlzIGlzCisgICByZXF1aXJlZCBiZWZvcmUgdXNpbmcgYW55IG9mIHRoZSBhY2Nlc3MgbWFjcm9zIGRlc2NyaWJlZCBiZWxvdy4KKworICAgLi4gWFhYIGV4cGFuZCBvbiB3aGVuIGl0IGlzIG5vdCByZXF1aXJlZAorCisgICBSZXR1cm5zIDAgb24gc3VjY2VzcyBhbmQgLTEgd2l0aCBhbiBleGNlcHRpb24gc2V0IG9uIGZhaWx1cmUsIHdoaWNoIGluCisgICBwYXJ0aWN1bGFyIGhhcHBlbnMgaWYgbWVtb3J5IGFsbG9jYXRpb24gZmFpbHMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiAKLS4uIGM6ZnVuY3Rpb246OiBQeV9zc2l6ZV90IFB5VW5pY29kZV9HRVRfREFUQV9TSVpFKFB5T2JqZWN0ICpvKQorLi4gYzpmdW5jdGlvbjo6IFB5X3NzaXplX3QgUHlVbmljb2RlX0dFVF9MRU5HVEgoUHlPYmplY3QgKm8pCiAKLSAgIFJldHVybiB0aGUgc2l6ZSBvZiB0aGUgb2JqZWN0J3MgaW50ZXJuYWwgYnVmZmVyIGluIGJ5dGVzLiAgKm8qIGhhcyB0byBiZSBhCi0gICA6Yzp0eXBlOmBQeVVuaWNvZGVPYmplY3RgIChub3QgY2hlY2tlZCkuCisgICBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgVW5pY29kZSBzdHJpbmcsIGluIGNvZGUgcG9pbnRzLiAgKm8qIGhhcyB0byBiZSBhCisgICBVbmljb2RlIG9iamVjdCBpbiB0aGUgImNhbm9uaWNhbCIgcmVwcmVzZW50YXRpb24gKG5vdCBjaGVja2VkKS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5X1VOSUNPREUqIFB5VW5pY29kZV9BU19VTklDT0RFKFB5T2JqZWN0ICpvKQorLi4gYzpmdW5jdGlvbjo6IFB5X1VDUzEqIFB5VW5pY29kZV8xQllURV9EQVRBKFB5T2JqZWN0ICpvKQorICAgICAgICAgICAgICAgIFB5X1VDUzIqIFB5VW5pY29kZV8yQllURV9EQVRBKFB5T2JqZWN0ICpvKQorICAgICAgICAgICAgICAgIFB5X1VDUzQqIFB5VW5pY29kZV80QllURV9EQVRBKFB5T2JqZWN0ICpvKQogCi0gICBSZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBpbnRlcm5hbCA6Yzp0eXBlOmBQeV9VTklDT0RFYCBidWZmZXIgb2YgdGhlIG9iamVjdC4gICpvKgotICAgaGFzIHRvIGJlIGEgOmM6dHlwZTpgUHlVbmljb2RlT2JqZWN0YCAobm90IGNoZWNrZWQpLgorICAgUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgY2Fub25pY2FsIHJlcHJlc2VudGF0aW9uIGNhc3QgdG8gVUNTMSwgVUNTMiBvciBVQ1M0CisgICBpbnRlZ2VyIHR5cGVzIGZvciBkaXJlY3QgY2hhcmFjdGVyIGFjY2Vzcy4gIE5vIGNoZWNrcyBhcmUgcGVyZm9ybWVkIGlmIHRoZQorICAgY2Fub25pY2FsIHJlcHJlc2VudGF0aW9uIGhhcyB0aGUgY29ycmVjdCBjaGFyYWN0ZXIgc2l6ZTsgdXNlCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfS0lORGAgdG8gc2VsZWN0IHRoZSByaWdodCBtYWNyby4gIE1ha2Ugc3VyZQorICAgOmM6ZnVuYzpgUHlVbmljb2RlX1JFQURZYCBoYXMgYmVlbiBjYWxsZWQgYmVmb3JlIGFjY2Vzc2luZyB0aGlzLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAogCi0uLiBjOmZ1bmN0aW9uOjogY29uc3QgY2hhciogUHlVbmljb2RlX0FTX0RBVEEoUHlPYmplY3QgKm8pCisuLiBjOm1hY3JvOjogUHlVbmljb2RlX1dDSEFSX0tJTkQKKyAgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfS0lORAorICAgICAgICAgICAgIFB5VW5pY29kZV8yQllURV9LSU5ECisgICAgICAgICAgICAgUHlVbmljb2RlXzRCWVRFX0tJTkQKIAotICAgUmV0dXJuIGEgcG9pbnRlciB0byB0aGUgaW50ZXJuYWwgYnVmZmVyIG9mIHRoZSBvYmplY3QuICpvKiBoYXMgdG8gYmUgYQotICAgOmM6dHlwZTpgUHlVbmljb2RlT2JqZWN0YCAobm90IGNoZWNrZWQpLgorICAgUmV0dXJuIHZhbHVlcyBvZiB0aGUgOmM6ZnVuYzpgUHlVbmljb2RlX0tJTkRgIG1hY3JvLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogaW50IFB5VW5pY29kZV9LSU5EKFB5T2JqZWN0ICpvKQorCisgICBSZXR1cm4gb25lIG9mIHRoZSBQeVVuaWNvZGUga2luZCBjb25zdGFudHMgKHNlZSBhYm92ZSkgdGhhdCBpbmRpY2F0ZSBob3cgbWFueQorICAgYnl0ZXMgcGVyIGNoYXJhY3RlciB0aGlzIFVuaWNvZGUgb2JqZWN0IHVzZXMgdG8gc3RvcmUgaXRzIGRhdGEuICAqbyogaGFzIHRvCisgICBiZSBhIFVuaWNvZGUgb2JqZWN0IGluIHRoZSAiY2Fub25pY2FsIiByZXByZXNlbnRhdGlvbiAobm90IGNoZWNrZWQpLgorCisgICAuLiBYWFggZG9jdW1lbnQgIjAiIHJldHVybiB2YWx1ZT8KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gYzpmdW5jdGlvbjo6IHZvaWQqIFB5VW5pY29kZV9EQVRBKFB5T2JqZWN0ICpvKQorCisgICBSZXR1cm4gYSB2b2lkIHBvaW50ZXIgdG8gdGhlIHJhdyB1bmljb2RlIGJ1ZmZlci4gICpvKiBoYXMgdG8gYmUgYSBVbmljb2RlCisgICBvYmplY3QgaW4gdGhlICJjYW5vbmljYWwiIHJlcHJlc2VudGF0aW9uIChub3QgY2hlY2tlZCkuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiB2b2lkIFB5VW5pY29kZV9XUklURShpbnQga2luZCwgdm9pZCAqZGF0YSwgUHlfc3NpemVfdCBpbmRleCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1VDUzQgdmFsdWUpCisKKyAgIFdyaXRlIGludG8gYSBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24gKmRhdGEqIChhcyBvYnRhaW5lZCB3aXRoCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfREFUQWApLiAgVGhpcyBtYWNybyBkb2VzIG5vdCBkbyBhbnkgc2FuaXR5IGNoZWNrcyBhbmQgaXMKKyAgIGludGVuZGVkIGZvciB1c2FnZSBpbiBsb29wcy4gIFRoZSBjYWxsZXIgc2hvdWxkIGNhY2hlIHRoZSAqa2luZCogdmFsdWUgYW5kCisgICAqZGF0YSogcG9pbnRlciBhcyBvYnRhaW5lZCBmcm9tIG90aGVyIG1hY3JvIGNhbGxzLiAgKmluZGV4KiBpcyB0aGUgaW5kZXggaW4KKyAgIHRoZSBzdHJpbmcgKHN0YXJ0cyBhdCAwKSBhbmQgKnZhbHVlKiBpcyB0aGUgbmV3IGNvZGUgcG9pbnQgdmFsdWUgd2hpY2ggc2hvdWxkCisgICBiZSB3cml0dGVuIHRvIHRoYXQgbG9jYXRpb24uCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBQeV9VQ1M0IFB5VW5pY29kZV9SRUFEKGludCBraW5kLCB2b2lkICpkYXRhLCBQeV9zc2l6ZV90IGluZGV4KQorCisgICBSZWFkIGEgY29kZSBwb2ludCBmcm9tIGEgY2Fub25pY2FsIHJlcHJlc2VudGF0aW9uICpkYXRhKiAoYXMgb2J0YWluZWQgd2l0aAorICAgOmM6ZnVuYzpgUHlVbmljb2RlX0RBVEFgKS4gIE5vIGNoZWNrcyBvciByZWFkeSBjYWxscyBhcmUgcGVyZm9ybWVkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogUHlfVUNTNCBQeVVuaWNvZGVfUkVBRF9DSEFSKFB5T2JqZWN0ICpvLCBQeV9zc2l6ZV90IGluZGV4KQorCisgICBSZWFkIGEgY2hhcmFjdGVyIGZyb20gYSBVbmljb2RlIG9iamVjdCAqbyosIHdoaWNoIG11c3QgYmUgaW4gdGhlICJjYW5vbmljYWwiCisgICByZXByZXNlbnRhdGlvbi4gIFRoaXMgaXMgbGVzcyBlZmZpY2llbnQgdGhhbiA6YzpmdW5jOmBQeVVuaWNvZGVfUkVBRGAgaWYgeW91CisgICBkbyBtdWx0aXBsZSBjb25zZWN1dGl2ZSByZWFkcy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gYzpmdW5jdGlvbjo6IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShQeU9iamVjdCAqbykKKworICAgUmV0dXJuIHRoZSBtYXhpbXVtIGNvZGUgcG9pbnQgdGhhdCBpcyBzdWl0YWJsZSBmb3IgY3JlYXRpbmcgYW5vdGhlciBzdHJpbmcKKyAgIGJhc2VkIG9uICpvKiwgd2hpY2ggbXVzdCBiZSBpbiB0aGUgImNhbm9uaWNhbCIgcmVwcmVzZW50YXRpb24uICBUaGlzIGlzCisgICBhbHdheXMgYW4gYXBwcm94aW1hdGlvbiBidXQgbW9yZSBlZmZpY2llbnQgdGhhbiBpdGVyYXRpbmcgb3ZlciB0aGUgc3RyaW5nLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAogCiAuLiBjOmZ1bmN0aW9uOjogaW50IFB5VW5pY29kZV9DbGVhckZyZWVMaXN0KCkKQEAgLTkwLDYgKzIwMiw0NiBAQAogICAgQ2xlYXIgdGhlIGZyZWUgbGlzdC4gUmV0dXJuIHRoZSB0b3RhbCBudW1iZXIgb2YgZnJlZWQgaXRlbXMuCiAKIAorLi4gYzpmdW5jdGlvbjo6IFB5X3NzaXplX3QgUHlVbmljb2RlX0dFVF9TSVpFKFB5T2JqZWN0ICpvKQorCisgICBSZXR1cm4gdGhlIHNpemUgb2YgdGhlIGRlcHJlY2F0ZWQgOmM6dHlwZTpgUHlfVU5JQ09ERWAgcmVwcmVzZW50YXRpb24sIGluCisgICBjb2RlIHVuaXRzICh0aGlzIGluY2x1ZGVzIHN1cnJvZ2F0ZSBwYWlycyBhcyAyIHVuaXRzKS4gICpvKiBoYXMgdG8gYmUgYQorICAgVW5pY29kZSBvYmplY3QgKG5vdCBjaGVja2VkKS4KKworICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDQuMAorICAgICAgUGFydCBvZiB0aGUgb2xkLXN0eWxlIFVuaWNvZGUgQVBJLCBwbGVhc2UgbWlncmF0ZSB0byB1c2luZworICAgICAgOmM6ZnVuYzpgUHlVbmljb2RlX0dFVF9MRU5HVEhgLgorCisKKy4uIGM6ZnVuY3Rpb246OiBQeV9zc2l6ZV90IFB5VW5pY29kZV9HRVRfREFUQV9TSVpFKFB5T2JqZWN0ICpvKQorCisgICBSZXR1cm4gdGhlIHNpemUgb2YgdGhlIGRlcHJlY2F0ZWQgOmM6dHlwZTpgUHlfVU5JQ09ERWAgcmVwcmVzZW50YXRpb24gaW4KKyAgIGJ5dGVzLiAgKm8qIGhhcyB0byBiZSBhIFVuaWNvZGUgb2JqZWN0IChub3QgY2hlY2tlZCkuCisKKyAgIC4uIGRlcHJlY2F0ZWQtcmVtb3ZlZDo6IDMuMyA0LjAKKyAgICAgIFBhcnQgb2YgdGhlIG9sZC1zdHlsZSBVbmljb2RlIEFQSSwgcGxlYXNlIG1pZ3JhdGUgdG8gdXNpbmcKKyAgICAgIDpjOmZ1bmM6YFB5VW5pY29kZV9HRVRfTEVOR1RIYC4KKworCisuLiBjOmZ1bmN0aW9uOjogUHlfVU5JQ09ERSogUHlVbmljb2RlX0FTX1VOSUNPREUoUHlPYmplY3QgKm8pCisgICAgICAgICAgICAgICAgY29uc3QgY2hhciogUHlVbmljb2RlX0FTX0RBVEEoUHlPYmplY3QgKm8pCisKKyAgIFJldHVybiBhIHBvaW50ZXIgdG8gYSA6Yzp0eXBlOmBQeV9VTklDT0RFYCByZXByZXNlbnRhdGlvbiBvZiB0aGUgb2JqZWN0LiAgVGhlCisgICBgYEFTX0RBVEFgYCBmb3JtIGNhc3RzIHRoZSBwb2ludGVyIHRvIDpjOnR5cGU6YGNvbnN0IGNoYXIgKmAuICAqbyogaGFzIHRvIGJlCisgICBhIFVuaWNvZGUgb2JqZWN0IChub3QgY2hlY2tlZCkuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGlzIG1hY3JvIGlzIG5vdyBpbmVmZmljaWVudCAtLSBiZWNhdXNlIGluIG1hbnkgY2FzZXMgdGhlCisgICAgICA6Yzp0eXBlOmBQeV9VTklDT0RFYCByZXByZXNlbnRhdGlvbiBkb2VzIG5vdCBleGlzdCBhbmQgbmVlZHMgdG8gYmUgY3JlYXRlZAorICAgICAgLS0gYW5kIGNhbiBmYWlsIChyZXR1cm4gKk5VTEwqIHdpdGggYW4gZXhjZXB0aW9uIHNldCkuICBUcnkgdG8gcG9ydCB0aGUKKyAgICAgIGNvZGUgdG8gdXNlIHRoZSBuZXcgOmM6ZnVuYzpgUHlVbmljb2RlX25CWVRFX0RBVEFgIG1hY3JvcyBvciB1c2UKKyAgICAgIDpjOmZ1bmM6YFB5VW5pY29kZV9XUklURWAgb3IgOmM6ZnVuYzpgUHlVbmljb2RlX1JFQURgLgorCisgICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgNC4wCisgICAgICBQYXJ0IG9mIHRoZSBvbGQtc3R5bGUgVW5pY29kZSBBUEksIHBsZWFzZSBtaWdyYXRlIHRvIHVzaW5nIHRoZQorICAgICAgOmM6ZnVuYzpgUHlVbmljb2RlX25CWVRFX0RBVEFgIGZhbWlseSBvZiBtYWNyb3MuCisKKwogVW5pY29kZSBDaGFyYWN0ZXIgUHJvcGVydGllcwogIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgogCkBAIC0xNjYsMTYgKzMxOCwyNSBAQAogCiAgICBSZXR1cm4gdGhlIGNoYXJhY3RlciAqY2gqIGNvbnZlcnRlZCB0byBsb3dlciBjYXNlLgogCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisgICAgICBUaGlzIGZ1bmN0aW9uIHVzZXMgc2ltcGxlIGNhc2UgbWFwcGluZ3MuCisKIAogLi4gYzpmdW5jdGlvbjo6IFB5X1VOSUNPREUgUHlfVU5JQ09ERV9UT1VQUEVSKFB5X1VOSUNPREUgY2gpCiAKICAgIFJldHVybiB0aGUgY2hhcmFjdGVyICpjaCogY29udmVydGVkIHRvIHVwcGVyIGNhc2UuCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKyAgICAgIFRoaXMgZnVuY3Rpb24gdXNlcyBzaW1wbGUgY2FzZSBtYXBwaW5ncy4KKwogCiAuLiBjOmZ1bmN0aW9uOjogUHlfVU5JQ09ERSBQeV9VTklDT0RFX1RPVElUTEUoUHlfVU5JQ09ERSBjaCkKIAogICAgUmV0dXJuIHRoZSBjaGFyYWN0ZXIgKmNoKiBjb252ZXJ0ZWQgdG8gdGl0bGUgY2FzZS4KIAorICAgLi4gZGVwcmVjYXRlZDo6IDMuMworICAgICAgVGhpcyBmdW5jdGlvbiB1c2VzIHNpbXBsZSBjYXNlIG1hcHBpbmdzLgorCiAKIC4uIGM6ZnVuY3Rpb246OiBpbnQgUHlfVU5JQ09ERV9UT0RFQ0lNQUwoUHlfVU5JQ09ERSBjaCkKIApAQCAtMTk1LDMxICszNTYsNjYgQEAKICAgIHBvc3NpYmxlLiAgVGhpcyBtYWNybyBkb2VzIG5vdCByYWlzZSBleGNlcHRpb25zLgogCiAKLVBsYWluIFB5X1VOSUNPREUKLSIiIiIiIiIiIiIiIiIiIiIKK1RoZXNlIEFQSXMgY2FuIGJlIHVzZWQgdG8gd29yayB3aXRoIHN1cnJvZ2F0ZXM6CisKKy4uIGM6bWFjcm86OiBQeV9VTklDT0RFX0lTX1NVUlJPR0FURShjaCkKKworICAgQ2hlY2sgaWYgKmNoKiBpcyBhIHN1cnJvZ2F0ZSAoYGAweEQ4MDAgPD0gY2ggPD0gMHhERkZGYGApLgorCisuLiBjOm1hY3JvOjogUHlfVU5JQ09ERV9JU19ISUdIX1NVUlJPR0FURShjaCkKKworICAgQ2hlY2sgaWYgKmNoKiBpcyBhbiBoaWdoIHN1cnJvZ2F0ZSAoYGAweEQ4MDAgPD0gY2ggPD0gMHhEQkZGYGApLgorCisuLiBjOm1hY3JvOjogUHlfVU5JQ09ERV9JU19MT1dfU1VSUk9HQVRFKGNoKQorCisgICBDaGVjayBpZiAqY2gqIGlzIGEgbG93IHN1cnJvZ2F0ZSAoYGAweERDMDAgPD0gY2ggPD0gMHhERkZGYGApLgorCisuLiBjOm1hY3JvOjogUHlfVU5JQ09ERV9KT0lOX1NVUlJPR0FURVMoaGlnaCwgbG93KQorCisgICBKb2luIHR3byBzdXJyb2dhdGUgY2hhcmFjdGVycyBhbmQgcmV0dXJuIGEgc2luZ2xlIFB5X1VDUzQgdmFsdWUuCisgICAqaGlnaCogYW5kICpsb3cqIGFyZSByZXNwZWN0aXZlbHkgdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHN1cnJvZ2F0ZXMgaW4gYQorICAgc3Vycm9nYXRlIHBhaXIuCisKKworQ3JlYXRpbmcgYW5kIGFjY2Vzc2luZyBVbmljb2RlIHN0cmluZ3MKKyIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiCiAKIFRvIGNyZWF0ZSBVbmljb2RlIG9iamVjdHMgYW5kIGFjY2VzcyB0aGVpciBiYXNpYyBzZXF1ZW5jZSBwcm9wZXJ0aWVzLCB1c2UgdGhlc2UKIEFQSXM6CiAKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX05ldyhQeV9zc2l6ZV90IHNpemUsIFB5X1VDUzQgbWF4Y2hhcikKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoY29uc3QgUHlfVU5JQ09ERSAqdSwgUHlfc3NpemVfdCBzaXplKQorICAgQ3JlYXRlIGEgbmV3IFVuaWNvZGUgb2JqZWN0LiAgKm1heGNoYXIqIHNob3VsZCBiZSB0aGUgdHJ1ZSBtYXhpbXVtIGNvZGUgcG9pbnQKKyAgIHRvIGJlIHBsYWNlZCBpbiB0aGUgc3RyaW5nLiAgQXMgYW4gYXBwcm94aW1hdGlvbiwgaXQgY2FuIGJlIHJvdW5kZWQgdXAgdG8gdGhlCisgICBuZWFyZXN0IHZhbHVlIGluIHRoZSBzZXF1ZW5jZSAxMjcsIDI1NSwgNjU1MzUsIDExMTQxMTEuCiAKLSAgIENyZWF0ZSBhIFVuaWNvZGUgb2JqZWN0IGZyb20gdGhlIFB5X1VOSUNPREUgYnVmZmVyICp1KiBvZiB0aGUgZ2l2ZW4gc2l6ZS4gKnUqCi0gICBtYXkgYmUgKk5VTEwqIHdoaWNoIGNhdXNlcyB0aGUgY29udGVudHMgdG8gYmUgdW5kZWZpbmVkLiBJdCBpcyB0aGUgdXNlcidzCi0gICByZXNwb25zaWJpbGl0eSB0byBmaWxsIGluIHRoZSBuZWVkZWQgZGF0YS4gIFRoZSBidWZmZXIgaXMgY29waWVkIGludG8gdGhlIG5ldwotICAgb2JqZWN0LiBJZiB0aGUgYnVmZmVyIGlzIG5vdCAqTlVMTCosIHRoZSByZXR1cm4gdmFsdWUgbWlnaHQgYmUgYSBzaGFyZWQgb2JqZWN0LgotICAgVGhlcmVmb3JlLCBtb2RpZmljYXRpb24gb2YgdGhlIHJlc3VsdGluZyBVbmljb2RlIG9iamVjdCBpcyBvbmx5IGFsbG93ZWQgd2hlbiAqdSoKLSAgIGlzICpOVUxMKi4KKyAgIFRoaXMgaXMgdGhlIHJlY29tbWVuZGVkIHdheSB0byBhbGxvY2F0ZSBhIG5ldyBVbmljb2RlIG9iamVjdC4gIE9iamVjdHMKKyAgIGNyZWF0ZWQgdXNpbmcgdGhpcyBmdW5jdGlvbiBhcmUgbm90IHJlc2l6YWJsZS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKGludCBraW5kLCBjb25zdCB2b2lkICpidWZmZXIsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUpCisKKyAgIENyZWF0ZSBhIG5ldyBVbmljb2RlIG9iamVjdCB3aXRoIHRoZSBnaXZlbiAqa2luZCogKHBvc3NpYmxlIHZhbHVlcyBhcmUKKyAgIDpjOm1hY3JvOmBQeVVuaWNvZGVfMUJZVEVfS0lORGAgZXRjLiwgYXMgcmV0dXJuZWQgYnkKKyAgIDpjOmZ1bmM6YFB5VW5pY29kZV9LSU5EYCkuICBUaGUgKmJ1ZmZlciogbXVzdCBwb2ludCB0byBhbiBhcnJheSBvZiAqc2l6ZSoKKyAgIHVuaXRzIG9mIDEsIDIgb3IgNCBieXRlcyBwZXIgY2hhcmFjdGVyLCBhcyBnaXZlbiBieSB0aGUga2luZC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKIAogLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUoY29uc3QgY2hhciAqdSwgUHlfc3NpemVfdCBzaXplKQogCi0gICBDcmVhdGUgYSBVbmljb2RlIG9iamVjdCBmcm9tIHRoZSBjaGFyIGJ1ZmZlciAqdSouICBUaGUgYnl0ZXMgd2lsbCBiZSBpbnRlcnByZXRlZAotICAgYXMgYmVpbmcgVVRGLTggZW5jb2RlZC4gICp1KiBtYXkgYWxzbyBiZSAqTlVMTCogd2hpY2gKLSAgIGNhdXNlcyB0aGUgY29udGVudHMgdG8gYmUgdW5kZWZpbmVkLiBJdCBpcyB0aGUgdXNlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGZpbGwgaW4KLSAgIHRoZSBuZWVkZWQgZGF0YS4gIFRoZSBidWZmZXIgaXMgY29waWVkIGludG8gdGhlIG5ldyBvYmplY3QuIElmIHRoZSBidWZmZXIgaXMgbm90Ci0gICAqTlVMTCosIHRoZSByZXR1cm4gdmFsdWUgbWlnaHQgYmUgYSBzaGFyZWQgb2JqZWN0LiBUaGVyZWZvcmUsIG1vZGlmaWNhdGlvbiBvZgotICAgdGhlIHJlc3VsdGluZyBVbmljb2RlIG9iamVjdCBpcyBvbmx5IGFsbG93ZWQgd2hlbiAqdSogaXMgKk5VTEwqLgorICAgQ3JlYXRlIGEgVW5pY29kZSBvYmplY3QgZnJvbSB0aGUgY2hhciBidWZmZXIgKnUqLiAgVGhlIGJ5dGVzIHdpbGwgYmUKKyAgIGludGVycHJldGVkIGFzIGJlaW5nIFVURi04IGVuY29kZWQuICBUaGUgYnVmZmVyIGlzIGNvcGllZCBpbnRvIHRoZSBuZXcKKyAgIG9iamVjdC4gSWYgdGhlIGJ1ZmZlciBpcyBub3QgKk5VTEwqLCB0aGUgcmV0dXJuIHZhbHVlIG1pZ2h0IGJlIGEgc2hhcmVkCisgICBvYmplY3QsIGkuZS4gbW9kaWZpY2F0aW9uIG9mIHRoZSBkYXRhIGlzIG5vdCBhbGxvd2VkLgorCisgICBJZiAqdSogaXMgKk5VTEwqLCB0aGlzIGZ1bmN0aW9uIGJlaGF2ZXMgbGlrZSA6YzpmdW5jOmBQeVVuaWNvZGVfRnJvbVVuaWNvZGVgCisgICB3aXRoIHRoZSBidWZmZXIgc2V0IHRvICpOVUxMKi4gIFRoaXMgdXNhZ2UgaXMgZGVwcmVjYXRlZCBpbiBmYXZvciBvZgorICAgOmM6ZnVuYzpgUHlVbmljb2RlX05ld2AuCiAKIAogLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0ICpQeVVuaWNvZGVfRnJvbVN0cmluZyhjb25zdCBjaGFyICp1KQpAQCAtMjYwLDE4ICs0NTYsMjcgQEAKICAgIHwgOmF0dHI6YCVsZGAgICAgICAgfCBsb25nICAgICAgICAgICAgICAgIHwgRXhhY3RseSBlcXVpdmFsZW50IHRvICAgICAgICAgIHwKICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYGBwcmludGYoIiVsZCIpYGAuICAgICAgICAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgOmF0dHI6YCVsaWAgICAgICAgfCBsb25nICAgICAgICAgICAgICAgIHwgRXhhY3RseSBlcXVpdmFsZW50IHRvICAgICAgICAgIHwKKyAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYGBwcmludGYoIiVsaSIpYGAuICAgICAgICAgICAgIHwKKyAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgIHwgOmF0dHI6YCVsdWAgICAgICAgfCB1bnNpZ25lZCBsb25nICAgICAgIHwgRXhhY3RseSBlcXVpdmFsZW50IHRvICAgICAgICAgIHwKICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYGBwcmludGYoIiVsdSIpYGAuICAgICAgICAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgIHwgOmF0dHI6YCVsbGRgICAgICAgfCBsb25nIGxvbmcgICAgICAgICAgIHwgRXhhY3RseSBlcXVpdmFsZW50IHRvICAgICAgICAgIHwKICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYGBwcmludGYoIiVsbGQiKWBgLiAgICAgICAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgOmF0dHI6YCVsbGlgICAgICAgfCBsb25nIGxvbmcgICAgICAgICAgIHwgRXhhY3RseSBlcXVpdmFsZW50IHRvICAgICAgICAgIHwKKyAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYGBwcmludGYoIiVsbGkiKWBgLiAgICAgICAgICAgIHwKKyAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgIHwgOmF0dHI6YCVsbHVgICAgICAgfCB1bnNpZ25lZCBsb25nIGxvbmcgIHwgRXhhY3RseSBlcXVpdmFsZW50IHRvICAgICAgICAgIHwKICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYGBwcmludGYoIiVsbHUiKWBgLiAgICAgICAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgIHwgOmF0dHI6YCV6ZGAgICAgICAgfCBQeV9zc2l6ZV90ICAgICAgICAgIHwgRXhhY3RseSBlcXVpdmFsZW50IHRvICAgICAgICAgIHwKICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYGBwcmludGYoIiV6ZCIpYGAuICAgICAgICAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgOmF0dHI6YCV6aWAgICAgICAgfCBQeV9zc2l6ZV90ICAgICAgICAgIHwgRXhhY3RseSBlcXVpdmFsZW50IHRvICAgICAgICAgIHwKKyAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYGBwcmludGYoIiV6aSIpYGAuICAgICAgICAgICAgIHwKKyAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgIHwgOmF0dHI6YCV6dWAgICAgICAgfCBzaXplX3QgICAgICAgICAgICAgIHwgRXhhY3RseSBlcXVpdmFsZW50IHRvICAgICAgICAgIHwKICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwgYGBwcmludGYoIiV6dSIpYGAuICAgICAgICAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTMyMiw0NyArNTI3LDE4IEBACiAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgogICAgICAgU3VwcG9ydCBmb3IgYGAiJWxsZCJgYCBhbmQgYGAiJWxsdSJgYCBhZGRlZC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFN1cHBvcnQgZm9yIGBgIiVsaSJgYCwgYGAiJWxsaSJgYCBhbmQgYGAiJXppImBgIGFkZGVkLgorCiAKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0Zyb21Gb3JtYXRWKGNvbnN0IGNoYXIgKmZvcm1hdCwgdmFfbGlzdCB2YXJncykKIAogICAgSWRlbnRpY2FsIHRvIDpjOmZ1bmM6YFB5VW5pY29kZV9Gcm9tRm9ybWF0YCBleGNlcHQgdGhhdCBpdCB0YWtlcyBleGFjdGx5IHR3bwogICAgYXJndW1lbnRzLgogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9UcmFuc2Zvcm1EZWNpbWFsVG9BU0NJSShQeV9VTklDT0RFICpzLCBQeV9zc2l6ZV90IHNpemUpCiAKLSAgIENyZWF0ZSBhIFVuaWNvZGUgb2JqZWN0IGJ5IHJlcGxhY2luZyBhbGwgZGVjaW1hbCBkaWdpdHMgaW4KLSAgIDpjOnR5cGU6YFB5X1VOSUNPREVgIGJ1ZmZlciBvZiB0aGUgZ2l2ZW4gKnNpemUqIGJ5IEFTQ0lJIGRpZ2l0cyAwLS05Ci0gICBhY2NvcmRpbmcgdG8gdGhlaXIgZGVjaW1hbCB2YWx1ZS4gIFJldHVybiAqTlVMTCogaWYgYW4gZXhjZXB0aW9uCi0gICBvY2N1cnMuCi0KLQotLi4gYzpmdW5jdGlvbjo6IFB5X1VOSUNPREUqIFB5VW5pY29kZV9Bc1VuaWNvZGUoUHlPYmplY3QgKnVuaWNvZGUpCi0KLSAgIFJldHVybiBhIHJlYWQtb25seSBwb2ludGVyIHRvIHRoZSBVbmljb2RlIG9iamVjdCdzIGludGVybmFsCi0gICA6Yzp0eXBlOmBQeV9VTklDT0RFYCBidWZmZXIsICpOVUxMKiBpZiAqdW5pY29kZSogaXMgbm90IGEgVW5pY29kZSBvYmplY3QuCi0gICBOb3RlIHRoYXQgdGhlIHJlc3VsdGluZyA6Yzp0eXBlOmBQeV9VTklDT0RFKmAgc3RyaW5nIG1heSBjb250YWluIGVtYmVkZGVkCi0gICBudWxsIGNoYXJhY3RlcnMsIHdoaWNoIHdvdWxkIGNhdXNlIHRoZSBzdHJpbmcgdG8gYmUgdHJ1bmNhdGVkIHdoZW4gdXNlZCBpbgotICAgbW9zdCBDIGZ1bmN0aW9ucy4KLQotCi0uLiBjOmZ1bmN0aW9uOjogUHlfVU5JQ09ERSogUHlVbmljb2RlX0FzVW5pY29kZUNvcHkoUHlPYmplY3QgKnVuaWNvZGUpCi0KLSAgIENyZWF0ZSBhIGNvcHkgb2YgYSBVbmljb2RlIHN0cmluZyBlbmRpbmcgd2l0aCBhIG51bCBjaGFyYWN0ZXIuIFJldHVybiAqTlVMTCoKLSAgIGFuZCByYWlzZSBhIDpleGM6YE1lbW9yeUVycm9yYCBleGNlcHRpb24gb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZSwKLSAgIG90aGVyd2lzZSByZXR1cm4gYSBuZXcgYWxsb2NhdGVkIGJ1ZmZlciAodXNlIDpjOmZ1bmM6YFB5TWVtX0ZyZWVgIHRvIGZyZWUKLSAgIHRoZSBidWZmZXIpLiBOb3RlIHRoYXQgdGhlIHJlc3VsdGluZyA6Yzp0eXBlOmBQeV9VTklDT0RFKmAgc3RyaW5nIG1heSBjb250YWluCi0gICBlbWJlZGRlZCBudWxsIGNoYXJhY3RlcnMsIHdoaWNoIHdvdWxkIGNhdXNlIHRoZSBzdHJpbmcgdG8gYmUgdHJ1bmNhdGVkIHdoZW4KLSAgIHVzZWQgaW4gbW9zdCBDIGZ1bmN0aW9ucy4KLQotICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCi0KLQotLi4gYzpmdW5jdGlvbjo6IFB5X3NzaXplX3QgUHlVbmljb2RlX0dldFNpemUoUHlPYmplY3QgKnVuaWNvZGUpCi0KLSAgIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBVbmljb2RlIG9iamVjdC4KLQotCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9Gcm9tRW5jb2RlZE9iamVjdChQeU9iamVjdCAqb2JqLCBjb25zdCBjaGFyICplbmNvZGluZywgY29uc3QgY2hhciAqZXJyb3JzKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRnJvbUVuY29kZWRPYmplY3QoUHlPYmplY3QgKm9iaiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBjb25zdCBjaGFyICplcnJvcnMpCiAKICAgIENvZXJjZSBhbiBlbmNvZGVkIG9iamVjdCAqb2JqKiB0byBhbiBVbmljb2RlIG9iamVjdCBhbmQgcmV0dXJuIGEgcmVmZXJlbmNlIHdpdGgKICAgIGluY3JlbWVudGVkIHJlZmNvdW50LgpAQCAtMzc5LDE1ICs1NTUsMjI3IEBACiAgICBkZWNyZWYnaW5nIHRoZSByZXR1cm5lZCBvYmplY3RzLgogCiAKKy4uIGM6ZnVuY3Rpb246OiBQeV9zc2l6ZV90IFB5VW5pY29kZV9HZXRMZW5ndGgoUHlPYmplY3QgKnVuaWNvZGUpCisKKyAgIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBVbmljb2RlIG9iamVjdCwgaW4gY29kZSBwb2ludHMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlVbmljb2RlX0NvcHlDaGFyYWN0ZXJzKFB5T2JqZWN0ICp0bywgUHlfc3NpemVfdCB0b19zdGFydCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnRvLCBQeV9zc2l6ZV90IGZyb21fc3RhcnQsIFB5X3NzaXplX3QgaG93X21hbnkpCisKKyAgIENvcHkgY2hhcmFjdGVycyBmcm9tIG9uZSBVbmljb2RlIG9iamVjdCBpbnRvIGFub3RoZXIuICBUaGlzIGZ1bmN0aW9uIHBlcmZvcm1zCisgICBjaGFyYWN0ZXIgY29udmVyc2lvbiB3aGVuIG5lY2Vzc2FyeSBhbmQgZmFsbHMgYmFjayB0byA6YzpmdW5jOmBtZW1jcHlgIGlmCisgICBwb3NzaWJsZS4gIFJldHVybnMgYGAtMWBgIGFuZCBzZXRzIGFuIGV4Y2VwdGlvbiBvbiBlcnJvciwgb3RoZXJ3aXNlIHJldHVybnMKKyAgIGBgMGBgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogUHlfc3NpemVfdCBQeVVuaWNvZGVfRmlsbChQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCBzdGFydCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW5ndGgsIFB5X1VDUzQgZmlsbF9jaGFyKQorCisgICBGaWxsIGEgc3RyaW5nIHdpdGggYSBjaGFyYWN0ZXI6IHdyaXRlICpmaWxsX2NoYXIqIGludG8KKyAgIGBgdW5pY29kZVtzdGFydDpzdGFydCtsZW5ndGhdYGAuCisKKyAgIEZhaWwgaWYgKmZpbGxfY2hhciogaXMgYmlnZ2VyIHRoYW4gdGhlIHN0cmluZyBtYXhpbXVtIGNoYXJhY3Rlciwgb3IgaWYgdGhlCisgICBzdHJpbmcgaGFzIG1vcmUgdGhhbiAxIHJlZmVyZW5jZS4KKworICAgUmV0dXJuIHRoZSBudW1iZXIgb2Ygd3JpdHRlbiBjaGFyYWN0ZXIsIG9yIHJldHVybiBgYC0xYGAgYW5kIHJhaXNlIGFuCisgICBleGNlcHRpb24gb24gZXJyb3IuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlVbmljb2RlX1dyaXRlQ2hhcihQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCBpbmRleCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1VDUzQgY2hhcmFjdGVyKQorCisgICBXcml0ZSBhIGNoYXJhY3RlciB0byBhIHN0cmluZy4gIFRoZSBzdHJpbmcgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZCB0aHJvdWdoCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfTmV3YC4gIFNpbmNlIFVuaWNvZGUgc3RyaW5ncyBhcmUgc3VwcG9zZWQgdG8gYmUgaW1tdXRhYmxlLAorICAgdGhlIHN0cmluZyBtdXN0IG5vdCBiZSBzaGFyZWQsIG9yIGhhdmUgYmVlbiBoYXNoZWQgeWV0LgorCisgICBUaGlzIGZ1bmN0aW9uIGNoZWNrcyB0aGF0ICp1bmljb2RlKiBpcyBhIFVuaWNvZGUgb2JqZWN0LCB0aGF0IHRoZSBpbmRleCBpcworICAgbm90IG91dCBvZiBib3VuZHMsIGFuZCB0aGF0IHRoZSBvYmplY3QgY2FuIGJlIG1vZGlmaWVkIHNhZmVseSAoaS5lLiB0aGF0IGl0CisgICBpdHMgcmVmZXJlbmNlIGNvdW50IGlzIG9uZSksIGluIGNvbnRyYXN0IHRvIHRoZSBtYWNybyB2ZXJzaW9uCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfV1JJVEVfQ0hBUmAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBQeV9VQ1M0IFB5VW5pY29kZV9SZWFkQ2hhcihQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCBpbmRleCkKKworICAgUmVhZCBhIGNoYXJhY3RlciBmcm9tIGEgc3RyaW5nLiAgVGhpcyBmdW5jdGlvbiBjaGVja3MgdGhhdCAqdW5pY29kZSogaXMgYQorICAgVW5pY29kZSBvYmplY3QgYW5kIHRoZSBpbmRleCBpcyBub3Qgb3V0IG9mIGJvdW5kcywgaW4gY29udHJhc3QgdG8gdGhlIG1hY3JvCisgICB2ZXJzaW9uIDpjOmZ1bmM6YFB5VW5pY29kZV9SRUFEX0NIQVJgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9TdWJzdHJpbmcoUHlPYmplY3QgKnN0ciwgUHlfc3NpemVfdCBzdGFydCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgZW5kKQorCisgICBSZXR1cm4gYSBzdWJzdHJpbmcgb2YgKnN0ciosIGZyb20gY2hhcmFjdGVyIGluZGV4ICpzdGFydCogKGluY2x1ZGVkKSB0bworICAgY2hhcmFjdGVyIGluZGV4ICplbmQqIChleGNsdWRlZCkuICBOZWdhdGl2ZSBpbmRpY2VzIGFyZSBub3Qgc3VwcG9ydGVkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogUHlfVUNTNCogUHlVbmljb2RlX0FzVUNTNChQeU9iamVjdCAqdSwgUHlfVUNTNCAqYnVmZmVyLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGJ1ZmxlbiwgaW50IGNvcHlfbnVsbCkKKworICAgQ29weSB0aGUgc3RyaW5nICp1KiBpbnRvIGEgVUNTNCBidWZmZXIsIGluY2x1ZGluZyBhIG51bGwgY2hhcmFjdGVyLCBpZgorICAgKmNvcHlfbnVsbCogaXMgc2V0LiAgUmV0dXJucyAqTlVMTCogYW5kIHNldHMgYW4gZXhjZXB0aW9uIG9uIGVycm9yIChpbgorICAgcGFydGljdWxhciwgYSA6ZXhjOmBWYWx1ZUVycm9yYCBpZiAqYnVmbGVuKiBpcyBzbWFsbGVyIHRoYW4gdGhlIGxlbmd0aCBvZgorICAgKnUqKS4gICpidWZmZXIqIGlzIHJldHVybmVkIG9uIHN1Y2Nlc3MuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBQeV9VQ1M0KiBQeVVuaWNvZGVfQXNVQ1M0Q29weShQeU9iamVjdCAqdSkKKworICAgQ29weSB0aGUgc3RyaW5nICp1KiBpbnRvIGEgbmV3IFVDUzQgYnVmZmVyIHRoYXQgaXMgYWxsb2NhdGVkIHVzaW5nCisgICA6YzpmdW5jOmBQeU1lbV9NYWxsb2NgLiAgSWYgdGhpcyBmYWlscywgKk5VTEwqIGlzIHJldHVybmVkIHdpdGggYQorICAgOmV4YzpgTWVtb3J5RXJyb3JgIHNldC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworRGVwcmVjYXRlZCBQeV9VTklDT0RFIEFQSXMKKyIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiCisKKy4uIGRlcHJlY2F0ZWQtcmVtb3ZlZDo6IDMuMyA0LjAKKworVGhlc2UgQVBJIGZ1bmN0aW9ucyBhcmUgZGVwcmVjYXRlZCB3aXRoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiA6cGVwOmAzOTNgLgorRXh0ZW5zaW9uIG1vZHVsZXMgY2FuIGNvbnRpbnVlIHVzaW5nIHRoZW0sIGFzIHRoZXkgd2lsbCBub3QgYmUgcmVtb3ZlZCBpbiBQeXRob24KKzMueCwgYnV0IG5lZWQgdG8gYmUgYXdhcmUgdGhhdCB0aGVpciB1c2UgY2FuIG5vdyBjYXVzZSBwZXJmb3JtYW5jZSBhbmQgbWVtb3J5IGhpdHMuCisKKworLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoY29uc3QgUHlfVU5JQ09ERSAqdSwgUHlfc3NpemVfdCBzaXplKQorCisgICBDcmVhdGUgYSBVbmljb2RlIG9iamVjdCBmcm9tIHRoZSBQeV9VTklDT0RFIGJ1ZmZlciAqdSogb2YgdGhlIGdpdmVuIHNpemUuICp1KgorICAgbWF5IGJlICpOVUxMKiB3aGljaCBjYXVzZXMgdGhlIGNvbnRlbnRzIHRvIGJlIHVuZGVmaW5lZC4gSXQgaXMgdGhlIHVzZXIncworICAgcmVzcG9uc2liaWxpdHkgdG8gZmlsbCBpbiB0aGUgbmVlZGVkIGRhdGEuICBUaGUgYnVmZmVyIGlzIGNvcGllZCBpbnRvIHRoZSBuZXcKKyAgIG9iamVjdC4KKworICAgSWYgdGhlIGJ1ZmZlciBpcyBub3QgKk5VTEwqLCB0aGUgcmV0dXJuIHZhbHVlIG1pZ2h0IGJlIGEgc2hhcmVkIG9iamVjdC4KKyAgIFRoZXJlZm9yZSwgbW9kaWZpY2F0aW9uIG9mIHRoZSByZXN1bHRpbmcgVW5pY29kZSBvYmplY3QgaXMgb25seSBhbGxvd2VkIHdoZW4KKyAgICp1KiBpcyAqTlVMTCouCisKKyAgIElmIHRoZSBidWZmZXIgaXMgKk5VTEwqLCA6YzpmdW5jOmBQeVVuaWNvZGVfUkVBRFlgIG11c3QgYmUgY2FsbGVkIG9uY2UgdGhlCisgICBzdHJpbmcgY29udGVudCBoYXMgYmVlbiBmaWxsZWQgYmVmb3JlIHVzaW5nIGFueSBvZiB0aGUgYWNjZXNzIG1hY3JvcyBzdWNoIGFzCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfS0lORGAuCisKKyAgIFBsZWFzZSBtaWdyYXRlIHRvIHVzaW5nIDpjOmZ1bmM6YFB5VW5pY29kZV9Gcm9tS2luZEFuZERhdGFgIG9yCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfTmV3YC4KKworCisuLiBjOmZ1bmN0aW9uOjogUHlfVU5JQ09ERSogUHlVbmljb2RlX0FzVW5pY29kZShQeU9iamVjdCAqdW5pY29kZSkKKworICAgUmV0dXJuIGEgcmVhZC1vbmx5IHBvaW50ZXIgdG8gdGhlIFVuaWNvZGUgb2JqZWN0J3MgaW50ZXJuYWwKKyAgIDpjOnR5cGU6YFB5X1VOSUNPREVgIGJ1ZmZlciwgb3IgKk5VTEwqIG9uIGVycm9yLiBUaGlzIHdpbGwgY3JlYXRlIHRoZQorICAgOmM6dHlwZTpgUHlfVU5JQ09ERSpgIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBvYmplY3QgaWYgaXQgaXMgbm90IHlldAorICAgYXZhaWxhYmxlLiBOb3RlIHRoYXQgdGhlIHJlc3VsdGluZyA6Yzp0eXBlOmBQeV9VTklDT0RFYCBzdHJpbmcgbWF5IGNvbnRhaW4KKyAgIGVtYmVkZGVkIG51bGwgY2hhcmFjdGVycywgd2hpY2ggd291bGQgY2F1c2UgdGhlIHN0cmluZyB0byBiZSB0cnVuY2F0ZWQgd2hlbgorICAgdXNlZCBpbiBtb3N0IEMgZnVuY3Rpb25zLgorCisgICBQbGVhc2UgbWlncmF0ZSB0byB1c2luZyA6YzpmdW5jOmBQeVVuaWNvZGVfQXNVQ1M0YCwKKyAgIDpjOmZ1bmM6YFB5VW5pY29kZV9TdWJzdHJpbmdgLCA6YzpmdW5jOmBQeVVuaWNvZGVfUmVhZENoYXJgIG9yIHNpbWlsYXIgbmV3CisgICBBUElzLgorCisKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX1RyYW5zZm9ybURlY2ltYWxUb0FTQ0lJKFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSkKKworICAgQ3JlYXRlIGEgVW5pY29kZSBvYmplY3QgYnkgcmVwbGFjaW5nIGFsbCBkZWNpbWFsIGRpZ2l0cyBpbgorICAgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYnVmZmVyIG9mIHRoZSBnaXZlbiAqc2l6ZSogYnkgQVNDSUkgZGlnaXRzIDAtLTkKKyAgIGFjY29yZGluZyB0byB0aGVpciBkZWNpbWFsIHZhbHVlLiAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gb2NjdXJzLgorCisKKy4uIGM6ZnVuY3Rpb246OiBQeV9VTklDT0RFKiBQeVVuaWNvZGVfQXNVbmljb2RlQW5kU2l6ZShQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCAqc2l6ZSkKKworICAgTGlrZSA6YzpmdW5jOmBQeVVuaWNvZGVfQXNVbmljb2RlYCwgYnV0IGFsc28gc2F2ZXMgdGhlIDpjOmZ1bmM6YFB5X1VOSUNPREVgCisgICBhcnJheSBsZW5ndGggaW4gKnNpemUqLiBOb3RlIHRoYXQgdGhlIHJlc3VsdGluZyA6Yzp0eXBlOmBQeV9VTklDT0RFKmAgc3RyaW5nCisgICBtYXkgY29udGFpbiBlbWJlZGRlZCBudWxsIGNoYXJhY3RlcnMsIHdoaWNoIHdvdWxkIGNhdXNlIHRoZSBzdHJpbmcgdG8gYmUKKyAgIHRydW5jYXRlZCB3aGVuIHVzZWQgaW4gbW9zdCBDIGZ1bmN0aW9ucy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gYzpmdW5jdGlvbjo6IFB5X1VOSUNPREUqIFB5VW5pY29kZV9Bc1VuaWNvZGVDb3B5KFB5T2JqZWN0ICp1bmljb2RlKQorCisgICBDcmVhdGUgYSBjb3B5IG9mIGEgVW5pY29kZSBzdHJpbmcgZW5kaW5nIHdpdGggYSBudWwgY2hhcmFjdGVyLiBSZXR1cm4gKk5VTEwqCisgICBhbmQgcmFpc2UgYSA6ZXhjOmBNZW1vcnlFcnJvcmAgZXhjZXB0aW9uIG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUsCisgICBvdGhlcndpc2UgcmV0dXJuIGEgbmV3IGFsbG9jYXRlZCBidWZmZXIgKHVzZSA6YzpmdW5jOmBQeU1lbV9GcmVlYCB0byBmcmVlCisgICB0aGUgYnVmZmVyKS4gTm90ZSB0aGF0IHRoZSByZXN1bHRpbmcgOmM6dHlwZTpgUHlfVU5JQ09ERSpgIHN0cmluZyBtYXkKKyAgIGNvbnRhaW4gZW1iZWRkZWQgbnVsbCBjaGFyYWN0ZXJzLCB3aGljaCB3b3VsZCBjYXVzZSB0aGUgc3RyaW5nIHRvIGJlCisgICB0cnVuY2F0ZWQgd2hlbiB1c2VkIGluIG1vc3QgQyBmdW5jdGlvbnMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgorCisgICBQbGVhc2UgbWlncmF0ZSB0byB1c2luZyA6YzpmdW5jOmBQeVVuaWNvZGVfQXNVQ1M0Q29weWAgb3Igc2ltaWxhciBuZXcgQVBJcy4KKworCisuLiBjOmZ1bmN0aW9uOjogUHlfc3NpemVfdCBQeVVuaWNvZGVfR2V0U2l6ZShQeU9iamVjdCAqdW5pY29kZSkKKworICAgUmV0dXJuIHRoZSBzaXplIG9mIHRoZSBkZXByZWNhdGVkIDpjOnR5cGU6YFB5X1VOSUNPREVgIHJlcHJlc2VudGF0aW9uLCBpbgorICAgY29kZSB1bml0cyAodGhpcyBpbmNsdWRlcyBzdXJyb2dhdGUgcGFpcnMgYXMgMiB1bml0cykuCisKKyAgIFBsZWFzZSBtaWdyYXRlIHRvIHVzaW5nIDpjOmZ1bmM6YFB5VW5pY29kZV9HZXRMZW5ndGhgLgorCisKIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0Zyb21PYmplY3QoUHlPYmplY3QgKm9iaikKIAogICAgU2hvcnRjdXQgZm9yIGBgUHlVbmljb2RlX0Zyb21FbmNvZGVkT2JqZWN0KG9iaiwgTlVMTCwgInN0cmljdCIpYGAgd2hpY2ggaXMgdXNlZAogICAgdGhyb3VnaG91dCB0aGUgaW50ZXJwcmV0ZXIgd2hlbmV2ZXIgY29lcmNpb24gdG8gVW5pY29kZSBpcyBuZWVkZWQuCiAKLUlmIHRoZSBwbGF0Zm9ybSBzdXBwb3J0cyA6Yzp0eXBlOmB3Y2hhcl90YCBhbmQgcHJvdmlkZXMgYSBoZWFkZXIgZmlsZSB3Y2hhci5oLAotUHl0aG9uIGNhbiBpbnRlcmZhY2UgZGlyZWN0bHkgdG8gdGhpcyB0eXBlIHVzaW5nIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zLgotU3VwcG9ydCBpcyBvcHRpbWl6ZWQgaWYgUHl0aG9uJ3Mgb3duIDpjOnR5cGU6YFB5X1VOSUNPREVgIHR5cGUgaXMgaWRlbnRpY2FsIHRvCi10aGUgc3lzdGVtJ3MgOmM6dHlwZTpgd2NoYXJfdGAuCisKK0xvY2FsZSBFbmNvZGluZworIiIiIiIiIiIiIiIiIiIiCisKK1RoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZyBjYW4gYmUgdXNlZCB0byBkZWNvZGUgdGV4dCBmcm9tIHRoZSBvcGVyYXRpbmcKK3N5c3RlbS4KKworLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlQW5kU2l6ZShjb25zdCBjaGFyICpzdHIsIFB5X3NzaXplX3QgbGVuLCBpbnQgc3Vycm9nYXRlZXNjYXBlKQorCisgICBEZWNvZGUgYSBzdHJpbmcgZnJvbSB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcuIFRoZSBkZWNvZGVyIGlzIHN0cmljdCBpZgorICAgKnN1cnJvZ2F0ZWVzY2FwZSogaXMgZXF1YWwgdG8gemVybywgb3RoZXJ3aXNlIGl0IHVzZXMgdGhlCisgICBgYCdzdXJyb2dhdGVlc2NhcGUnYGAgZXJyb3IgaGFuZGxlciAoOnBlcDpgMzgzYCkgdG8gZXNjYXBlIHVuZGVjb2RhYmxlCisgICBieXRlcy4gSWYgYSBieXRlIHNlcXVlbmNlIGNhbiBiZSBkZWNvZGVkIGFzIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBhbmQKKyAgICpzdXJyb2dhdGVlc2NhcGUqIGlzIG5vdCBlcXVhbCB0byB6ZXJvLCB0aGUgYnl0ZSBzZXF1ZW5jZSBpcyBlc2NhcGVkIHVzaW5nCisgICB0aGUgYGAnc3Vycm9nYXRlZXNjYXBlJ2BgIGVycm9yIGhhbmRsZXIgaW5zdGVhZCBvZiBiZWluZyBkZWNvZGVkLiAgKnN0cioKKyAgIG11c3QgZW5kIHdpdGggYSBudWxsIGNoYXJhY3RlciBidXQgY2Fubm90IGNvbnRhaW4gZW1iZWRkZWQgbnVsbCBjaGFyYWN0ZXJzLgorCisgICAuLiBzZWVhbHNvOjoKKworICAgICAgVXNlIDpjOmZ1bmM6YFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHRBbmRTaXplYCB0byBkZWNvZGUgYSBzdHJpbmcgZnJvbQorICAgICAgOmM6ZGF0YTpgUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZ2AgKHRoZSBsb2NhbGUgZW5jb2RpbmcgcmVhZCBhdAorICAgICAgUHl0aG9uIHN0YXJ0dXApLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9EZWNvZGVMb2NhbGUoY29uc3QgY2hhciAqc3RyLCBpbnQgc3Vycm9nYXRlZXNjYXBlKQorCisgICBTaW1pbGFyIHRvIDpjOmZ1bmM6YFB5VW5pY29kZV9EZWNvZGVMb2NhbGVBbmRTaXplYCwgYnV0IGNvbXB1dGUgdGhlIHN0cmluZworICAgbGVuZ3RoIHVzaW5nIDpjOmZ1bmM6YHN0cmxlbmAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0VuY29kZUxvY2FsZShQeU9iamVjdCAqdW5pY29kZSwgaW50IHN1cnJvZ2F0ZWVzY2FwZSkKKworICAgRW5jb2RlIGEgVW5pY29kZSBvYmplY3QgdG8gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nLiBUaGUgZW5jb2RlciBpcworICAgc3RyaWN0IGlmICpzdXJyb2dhdGVlc2NhcGUqIGlzIGVxdWFsIHRvIHplcm8sIG90aGVyd2lzZSBpdCB1c2VzIHRoZQorICAgYGAnc3Vycm9nYXRlZXNjYXBlJ2BgIGVycm9yIGhhbmRsZXIgKDpwZXA6YDM4M2ApLiBSZXR1cm4gYSA6Y2xhc3M6YGJ5dGVzYAorICAgb2JqZWN0LiAqc3RyKiBjYW5ub3QgY29udGFpbiBlbWJlZGRlZCBudWxsIGNoYXJhY3RlcnMuCisKKyAgIC4uIHNlZWFsc286OgorCisgICAgICBVc2UgOmM6ZnVuYzpgUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdGAgdG8gZW5jb2RlIGEgc3RyaW5nIHRvCisgICAgICA6YzpkYXRhOmBQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nYCAodGhlIGxvY2FsZSBlbmNvZGluZyByZWFkIGF0CisgICAgICBQeXRob24gc3RhcnR1cCkuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiAKIEZpbGUgU3lzdGVtIEVuY29kaW5nCkBAIC00MzAsNiArODE4LDEzIEBACiAgICBJZiA6YzpkYXRhOmBQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nYCBpcyBub3Qgc2V0LCBmYWxsIGJhY2sgdG8gdGhlCiAgICBsb2NhbGUgZW5jb2RpbmcuCiAKKyAgIC4uIHNlZWFsc286OgorCisgICAgICA6YzpkYXRhOmBQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nYCBpcyBpbml0aWFsaXplZCBhdCBzdGFydHVwIGZyb20gdGhlCisgICAgICBsb2NhbGUgZW5jb2RpbmcgYW5kIGNhbm5vdCBiZSBtb2RpZmllZCBsYXRlci4gSWYgeW91IG5lZWQgdG8gZGVjb2RlIGEKKyAgICAgIHN0cmluZyBmcm9tIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZywgdXNlCisgICAgICA6YzpmdW5jOmBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlQW5kU2l6ZWAuCisKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCiAgICAgICBVc2UgYGAnc3RyaWN0J2BgIGVycm9yIGhhbmRsZXIgb24gV2luZG93cy4KIApAQCAtNDU4LDYgKzg1MywxMyBAQAogICAgSWYgOmM6ZGF0YTpgUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZ2AgaXMgbm90IHNldCwgZmFsbCBiYWNrIHRvIHRoZQogICAgbG9jYWxlIGVuY29kaW5nLgogCisgICAuLiBzZWVhbHNvOjoKKworICAgICAgOmM6ZGF0YTpgUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZ2AgaXMgaW5pdGlhbGl6ZWQgYXQgc3RhcnR1cCBmcm9tIHRoZQorICAgICAgbG9jYWxlIGVuY29kaW5nIGFuZCBjYW5ub3QgYmUgbW9kaWZpZWQgbGF0ZXIuIElmIHlvdSBuZWVkIHRvIGVuY29kZSBhCisgICAgICBzdHJpbmcgdG8gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nLCB1c2UKKyAgICAgIDpjOmZ1bmM6YFB5VW5pY29kZV9FbmNvZGVMb2NhbGVgLgorCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogCkBAIC00NzksOSArODgxLDkgQEAKICAgIENvcHkgdGhlIFVuaWNvZGUgb2JqZWN0IGNvbnRlbnRzIGludG8gdGhlIDpjOnR5cGU6YHdjaGFyX3RgIGJ1ZmZlciAqdyouICBBdCBtb3N0CiAgICAqc2l6ZSogOmM6dHlwZTpgd2NoYXJfdGAgY2hhcmFjdGVycyBhcmUgY29waWVkIChleGNsdWRpbmcgYSBwb3NzaWJseSB0cmFpbGluZwogICAgMC10ZXJtaW5hdGlvbiBjaGFyYWN0ZXIpLiAgUmV0dXJuIHRoZSBudW1iZXIgb2YgOmM6dHlwZTpgd2NoYXJfdGAgY2hhcmFjdGVycwotICAgY29waWVkIG9yIC0xIGluIGNhc2Ugb2YgYW4gZXJyb3IuICBOb3RlIHRoYXQgdGhlIHJlc3VsdGluZyA6Yzp0eXBlOmB3Y2hhcl90YAorICAgY29waWVkIG9yIC0xIGluIGNhc2Ugb2YgYW4gZXJyb3IuICBOb3RlIHRoYXQgdGhlIHJlc3VsdGluZyA6Yzp0eXBlOmB3Y2hhcl90KmAKICAgIHN0cmluZyBtYXkgb3IgbWF5IG5vdCBiZSAwLXRlcm1pbmF0ZWQuICBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkgb2YgdGhlIGNhbGxlcgotICAgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIDpjOnR5cGU6YHdjaGFyX3RgIHN0cmluZyBpcyAwLXRlcm1pbmF0ZWQgaW4gY2FzZSB0aGlzIGlzCisgICB0byBtYWtlIHN1cmUgdGhhdCB0aGUgOmM6dHlwZTpgd2NoYXJfdCpgIHN0cmluZyBpcyAwLXRlcm1pbmF0ZWQgaW4gY2FzZSB0aGlzIGlzCiAgICByZXF1aXJlZCBieSB0aGUgYXBwbGljYXRpb24uIEFsc28sIG5vdGUgdGhhdCB0aGUgOmM6dHlwZTpgd2NoYXJfdCpgIHN0cmluZwogICAgbWlnaHQgY29udGFpbiBudWxsIGNoYXJhY3RlcnMsIHdoaWNoIHdvdWxkIGNhdXNlIHRoZSBzdHJpbmcgdG8gYmUgdHJ1bmNhdGVkCiAgICB3aGVuIHVzZWQgd2l0aCBtb3N0IEMgZnVuY3Rpb25zLgpAQCAtNDk3LDEyICs4OTksMzIgQEAKICAgIFJldHVybnMgYSBidWZmZXIgYWxsb2NhdGVkIGJ5IDpjOmZ1bmM6YFB5TWVtX0FsbG9jYCAodXNlCiAgICA6YzpmdW5jOmBQeU1lbV9GcmVlYCB0byBmcmVlIGl0KSBvbiBzdWNjZXNzLiBPbiBlcnJvciwgcmV0dXJucyAqTlVMTCosCiAgICAqXCpzaXplKiBpcyB1bmRlZmluZWQgYW5kIHJhaXNlcyBhIDpleGM6YE1lbW9yeUVycm9yYC4gTm90ZSB0aGF0IHRoZQotICAgcmVzdWx0aW5nIDpjOnR5cGU6YHdjaGFyX3QqYCBzdHJpbmcgbWlnaHQgY29udGFpbiBudWxsIGNoYXJhY3RlcnMsIHdoaWNoCisgICByZXN1bHRpbmcgOmM6dHlwZTpgd2NoYXJfdGAgc3RyaW5nIG1pZ2h0IGNvbnRhaW4gbnVsbCBjaGFyYWN0ZXJzLCB3aGljaAogICAgd291bGQgY2F1c2UgdGhlIHN0cmluZyB0byBiZSB0cnVuY2F0ZWQgd2hlbiB1c2VkIHdpdGggbW9zdCBDIGZ1bmN0aW9ucy4KIAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKIAorVUNTNCBTdXBwb3J0CisiIiIiIiIiIiIiIiIKKworLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIFhYWCBhcmUgdGhlc2UgbWVhbnQgdG8gYmUgcHVibGljPworCisuLiBjOmZ1bmN0aW9uOjogc2l6ZV90IFB5X1VDUzRfc3RybGVuKGNvbnN0IFB5X1VDUzQgKnUpCisgICAgICAgICAgICAgICAgUHlfVUNTNCogUHlfVUNTNF9zdHJjcHkoUHlfVUNTNCAqczEsIGNvbnN0IFB5X1VDUzQgKnMyKQorICAgICAgICAgICAgICAgIFB5X1VDUzQqIFB5X1VDUzRfc3RybmNweShQeV9VQ1M0ICpzMSwgY29uc3QgUHlfVUNTNCAqczIsIHNpemVfdCBuKQorICAgICAgICAgICAgICAgIFB5X1VDUzQqIFB5X1VDUzRfc3RyY2F0KFB5X1VDUzQgKnMxLCBjb25zdCBQeV9VQ1M0ICpzMikKKyAgICAgICAgICAgICAgICBpbnQgUHlfVUNTNF9zdHJjbXAoY29uc3QgUHlfVUNTNCAqczEsIGNvbnN0IFB5X1VDUzQgKnMyKQorICAgICAgICAgICAgICAgIGludCBQeV9VQ1M0X3N0cm5jbXAoY29uc3QgUHlfVUNTNCAqczEsIGNvbnN0IFB5X1VDUzQgKnMyLCBzaXplX3QgbikKKyAgICAgICAgICAgICAgICBQeV9VQ1M0KiBQeV9VQ1M0X3N0cmNocihjb25zdCBQeV9VQ1M0ICpzLCBQeV9VQ1M0IGMpCisgICAgICAgICAgICAgICAgUHlfVUNTNCogUHlfVUNTNF9zdHJyY2hyKGNvbnN0IFB5X1VDUzQgKnMsIFB5X1VDUzQgYykKKworICAgVGhlc2UgdXRpbGl0eSBmdW5jdGlvbnMgd29yayBvbiBzdHJpbmdzIG9mIDpjOnR5cGU6YFB5X1VDUzRgIGNoYXJhY3RlcnMgYW5kCisgICBvdGhlcndpc2UgYmVoYXZlIGxpa2UgdGhlIEMgc3RhbmRhcmQgbGlicmFyeSBmdW5jdGlvbnMgd2l0aCB0aGUgc2FtZSBuYW1lLgorCisKIC4uIF9idWlsdGluY29kZWNzOgogCiBCdWlsdC1pbiBDb2RlY3MKQEAgLTUzNyw3ICs5NTksOCBAQAogVGhlc2UgYXJlIHRoZSBnZW5lcmljIGNvZGVjIEFQSXM6CiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZW5jb2RpbmcsIGNvbnN0IGNoYXIgKmVycm9ycykKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0RlY29kZShjb25zdCBjaGFyICpzLCBQeV9zc2l6ZV90IHNpemUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBjb25zdCBjaGFyICplcnJvcnMpCiAKICAgIENyZWF0ZSBhIFVuaWNvZGUgb2JqZWN0IGJ5IGRlY29kaW5nICpzaXplKiBieXRlcyBvZiB0aGUgZW5jb2RlZCBzdHJpbmcgKnMqLgogICAgKmVuY29kaW5nKiBhbmQgKmVycm9ycyogaGF2ZSB0aGUgc2FtZSBtZWFuaW5nIGFzIHRoZSBwYXJhbWV0ZXJzIG9mIHRoZSBzYW1lIG5hbWUKQEAgLTU0Niw3ICs5NjksMTggQEAKICAgIHRoZSBjb2RlYy4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGUoY29uc3QgUHlfVU5JQ09ERSAqcywgUHlfc3NpemVfdCBzaXplLCBjb25zdCBjaGFyICplbmNvZGluZywgY29uc3QgY2hhciAqZXJyb3JzKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfQXNFbmNvZGVkU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywgY29uc3QgY2hhciAqZXJyb3JzKQorCisgICBFbmNvZGUgYSBVbmljb2RlIG9iamVjdCBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgUHl0aG9uIGJ5dGVzIG9iamVjdC4KKyAgICplbmNvZGluZyogYW5kICplcnJvcnMqIGhhdmUgdGhlIHNhbWUgbWVhbmluZyBhcyB0aGUgcGFyYW1ldGVycyBvZiB0aGUgc2FtZQorICAgbmFtZSBpbiB0aGUgVW5pY29kZSA6bWV0aDpgZW5jb2RlYCBtZXRob2QuIFRoZSBjb2RlYyB0byBiZSB1c2VkIGlzIGxvb2tlZCB1cAorICAgdXNpbmcgdGhlIFB5dGhvbiBjb2RlYyByZWdpc3RyeS4gUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieQorICAgdGhlIGNvZGVjLgorCisKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0VuY29kZShjb25zdCBQeV9VTklDT0RFICpzLCBQeV9zc2l6ZV90IHNpemUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBjb25zdCBjaGFyICplcnJvcnMpCiAKICAgIEVuY29kZSB0aGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYnVmZmVyICpzKiBvZiB0aGUgZ2l2ZW4gKnNpemUqIGFuZCByZXR1cm4gYSBQeXRob24KICAgIGJ5dGVzIG9iamVjdC4gICplbmNvZGluZyogYW5kICplcnJvcnMqIGhhdmUgdGhlIHNhbWUgbWVhbmluZyBhcyB0aGUKQEAgLTU1NCwxNCArOTg4LDkgQEAKICAgIHRvIGJlIHVzZWQgaXMgbG9va2VkIHVwIHVzaW5nIHRoZSBQeXRob24gY29kZWMgcmVnaXN0cnkuICBSZXR1cm4gKk5VTEwqIGlmIGFuCiAgICBleGNlcHRpb24gd2FzIHJhaXNlZCBieSB0aGUgY29kZWMuCiAKLQotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfQXNFbmNvZGVkU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlLCBjb25zdCBjaGFyICplbmNvZGluZywgY29uc3QgY2hhciAqZXJyb3JzKQotCi0gICBFbmNvZGUgYSBVbmljb2RlIG9iamVjdCBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgUHl0aG9uIGJ5dGVzIG9iamVjdC4KLSAgICplbmNvZGluZyogYW5kICplcnJvcnMqIGhhdmUgdGhlIHNhbWUgbWVhbmluZyBhcyB0aGUgcGFyYW1ldGVycyBvZiB0aGUgc2FtZQotICAgbmFtZSBpbiB0aGUgVW5pY29kZSA6bWV0aDpgZW5jb2RlYCBtZXRob2QuIFRoZSBjb2RlYyB0byBiZSB1c2VkIGlzIGxvb2tlZCB1cAotICAgdXNpbmcgdGhlIFB5dGhvbiBjb2RlYyByZWdpc3RyeS4gUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieQotICAgdGhlIGNvZGVjLgorICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDQuMAorICAgICAgUGFydCBvZiB0aGUgb2xkLXN0eWxlIDpjOnR5cGU6YFB5X1VOSUNPREVgIEFQSTsgcGxlYXNlIG1pZ3JhdGUgdG8gdXNpbmcKKyAgICAgIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc0VuY29kZWRTdHJpbmdgLgogCiAKIFVURi04IENvZGVjcwpAQCAtNTc2LDcgKzEwMDUsOCBAQAogICAgKnMqLiBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9EZWNvZGVVVEY4U3RhdGVmdWwoY29uc3QgY2hhciAqcywgUHlfc3NpemVfdCBzaXplLCBjb25zdCBjaGFyICplcnJvcnMsIFB5X3NzaXplX3QgKmNvbnN1bWVkKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlVVRGOFN0YXRlZnVsKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLCBQeV9zc2l6ZV90ICpjb25zdW1lZCkKIAogICAgSWYgKmNvbnN1bWVkKiBpcyAqTlVMTCosIGJlaGF2ZSBsaWtlIDpjOmZ1bmM6YFB5VW5pY29kZV9EZWNvZGVVVEY4YC4gSWYKICAgICpjb25zdW1lZCogaXMgbm90ICpOVUxMKiwgdHJhaWxpbmcgaW5jb21wbGV0ZSBVVEYtOCBieXRlIHNlcXVlbmNlcyB3aWxsIG5vdCBiZQpAQCAtNTg0LDEzICsxMDE0LDYgQEAKICAgIHRoYXQgaGF2ZSBiZWVuIGRlY29kZWQgd2lsbCBiZSBzdG9yZWQgaW4gKmNvbnN1bWVkKi4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGVVVEY4KGNvbnN0IFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZXJyb3JzKQotCi0gICBFbmNvZGUgdGhlIDpjOnR5cGU6YFB5X1VOSUNPREVgIGJ1ZmZlciAqcyogb2YgdGhlIGdpdmVuICpzaXplKiB1c2luZyBVVEYtOCBhbmQKLSAgIHJldHVybiBhIFB5dGhvbiBieXRlcyBvYmplY3QuICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5Ci0gICB0aGUgY29kZWMuCi0KLQogLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfQXNVVEY4U3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlKQogCiAgICBFbmNvZGUgYSBVbmljb2RlIG9iamVjdCB1c2luZyBVVEYtOCBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgUHl0aG9uIGJ5dGVzCkBAIC01OTgsMTMgKzEwMjEsNDggQEAKICAgIHJhaXNlZCBieSB0aGUgY29kZWMuCiAKIAorLi4gYzpmdW5jdGlvbjo6IGNoYXIqIFB5VW5pY29kZV9Bc1VURjhBbmRTaXplKFB5T2JqZWN0ICp1bmljb2RlLCBQeV9zc2l6ZV90ICpzaXplKQorCisgICBSZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBkZWZhdWx0IGVuY29kaW5nIChVVEYtOCkgb2YgdGhlIFVuaWNvZGUgb2JqZWN0LCBhbmQKKyAgIHN0b3JlIHRoZSBzaXplIG9mIHRoZSBlbmNvZGVkIHJlcHJlc2VudGF0aW9uIChpbiBieXRlcykgaW4gKnNpemUqLiAgKnNpemUqCisgICBjYW4gYmUgKk5VTEwqLCBpbiB0aGlzIGNhc2Ugbm8gc2l6ZSB3aWxsIGJlIHN0b3JlZC4KKworICAgSW4gdGhlIGNhc2Ugb2YgYW4gZXJyb3IsICpOVUxMKiBpcyByZXR1cm5lZCB3aXRoIGFuIGV4Y2VwdGlvbiBzZXQgYW5kIG5vCisgICAqc2l6ZSogaXMgc3RvcmVkLgorCisgICBUaGlzIGNhY2hlcyB0aGUgVVRGLTggcmVwcmVzZW50YXRpb24gb2YgdGhlIHN0cmluZyBpbiB0aGUgVW5pY29kZSBvYmplY3QsIGFuZAorICAgc3Vic2VxdWVudCBjYWxscyB3aWxsIHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIHNhbWUgYnVmZmVyLiAgVGhlIGNhbGxlciBpcyBub3QKKyAgIHJlc3BvbnNpYmxlIGZvciBkZWFsbG9jYXRpbmcgdGhlIGJ1ZmZlci4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gYzpmdW5jdGlvbjo6IGNoYXIqIFB5VW5pY29kZV9Bc1VURjgoUHlPYmplY3QgKnVuaWNvZGUpCisKKyAgIEFzIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc1VURjhBbmRTaXplYCwgYnV0IGRvZXMgbm90IHN0b3JlIHRoZSBzaXplLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGVVVEY4KGNvbnN0IFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZXJyb3JzKQorCisgICBFbmNvZGUgdGhlIDpjOnR5cGU6YFB5X1VOSUNPREVgIGJ1ZmZlciAqcyogb2YgdGhlIGdpdmVuICpzaXplKiB1c2luZyBVVEYtOCBhbmQKKyAgIHJldHVybiBhIFB5dGhvbiBieXRlcyBvYmplY3QuICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5CisgICB0aGUgY29kZWMuCisKKyAgIC4uIGRlcHJlY2F0ZWQtcmVtb3ZlZDo6IDMuMyA0LjAKKyAgICAgIFBhcnQgb2YgdGhlIG9sZC1zdHlsZSA6Yzp0eXBlOmBQeV9VTklDT0RFYCBBUEk7IHBsZWFzZSBtaWdyYXRlIHRvIHVzaW5nCisgICAgICA6YzpmdW5jOmBQeVVuaWNvZGVfQXNVVEY4U3RyaW5nYCBvciA6YzpmdW5jOmBQeVVuaWNvZGVfQXNVVEY4QW5kU2l6ZWAuCisKKwogVVRGLTMyIENvZGVjcwogIiIiIiIiIiIiIiIiIgogCiBUaGVzZSBhcmUgdGhlIFVURi0zMiBjb2RlYyBBUElzOgogCiAKLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0RlY29kZVVURjMyKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZXJyb3JzLCBpbnQgKmJ5dGVvcmRlcikKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0RlY29kZVVURjMyKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLCBpbnQgKmJ5dGVvcmRlcikKIAogICAgRGVjb2RlICpzaXplKiBieXRlcyBmcm9tIGEgVVRGLTMyIGVuY29kZWQgYnVmZmVyIHN0cmluZyBhbmQgcmV0dXJuIHRoZQogICAgY29ycmVzcG9uZGluZyBVbmljb2RlIG9iamVjdC4gICplcnJvcnMqIChpZiBub24tKk5VTEwqKSBkZWZpbmVzIHRoZSBlcnJvcgpAQCAtNjMyLDcgKzEwOTAsOCBAQAogICAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieSB0aGUgY29kZWMuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlVVRGMzJTdGF0ZWZ1bChjb25zdCBjaGFyICpzLCBQeV9zc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmVycm9ycywgaW50ICpieXRlb3JkZXIsIFB5X3NzaXplX3QgKmNvbnN1bWVkKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlVVRGMzJTdGF0ZWZ1bChjb25zdCBjaGFyICpzLCBQeV9zc2l6ZV90IHNpemUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycywgaW50ICpieXRlb3JkZXIsIFB5X3NzaXplX3QgKmNvbnN1bWVkKQogCiAgICBJZiAqY29uc3VtZWQqIGlzICpOVUxMKiwgYmVoYXZlIGxpa2UgOmM6ZnVuYzpgUHlVbmljb2RlX0RlY29kZVVURjMyYC4gSWYKICAgICpjb25zdW1lZCogaXMgbm90ICpOVUxMKiwgOmM6ZnVuYzpgUHlVbmljb2RlX0RlY29kZVVURjMyU3RhdGVmdWxgIHdpbGwgbm90IHRyZWF0CkBAIC02NDEsNyArMTEwMCwxNSBAQAogICAgdGhhdCBoYXZlIGJlZW4gZGVjb2RlZCB3aWxsIGJlIHN0b3JlZCBpbiAqY29uc3VtZWQqLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0VuY29kZVVURjMyKGNvbnN0IFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZXJyb3JzLCBpbnQgYnl0ZW9yZGVyKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfQXNVVEYzMlN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKKworICAgUmV0dXJuIGEgUHl0aG9uIGJ5dGUgc3RyaW5nIHVzaW5nIHRoZSBVVEYtMzIgZW5jb2RpbmcgaW4gbmF0aXZlIGJ5dGUKKyAgIG9yZGVyLiBUaGUgc3RyaW5nIGFsd2F5cyBzdGFydHMgd2l0aCBhIEJPTSBtYXJrLiAgRXJyb3IgaGFuZGxpbmcgaXMgInN0cmljdCIuCisgICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KKworCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGVVVEYzMihjb25zdCBQeV9VTklDT0RFICpzLCBQeV9zc2l6ZV90IHNpemUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycywgaW50IGJ5dGVvcmRlcikKIAogICAgUmV0dXJuIGEgUHl0aG9uIGJ5dGVzIG9iamVjdCBob2xkaW5nIHRoZSBVVEYtMzIgZW5jb2RlZCB2YWx1ZSBvZiB0aGUgVW5pY29kZQogICAgZGF0YSBpbiAqcyouICBPdXRwdXQgaXMgd3JpdHRlbiBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBieXRlIG9yZGVyOjoKQEAgLTY1OCwxMiArMTEyNSw5IEBACiAKICAgIFJldHVybiAqTlVMTCogaWYgYW4gZXhjZXB0aW9uIHdhcyByYWlzZWQgYnkgdGhlIGNvZGVjLgogCi0KLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0FzVVRGMzJTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCi0KLSAgIFJldHVybiBhIFB5dGhvbiBieXRlIHN0cmluZyB1c2luZyB0aGUgVVRGLTMyIGVuY29kaW5nIGluIG5hdGl2ZSBieXRlCi0gICBvcmRlci4gVGhlIHN0cmluZyBhbHdheXMgc3RhcnRzIHdpdGggYSBCT00gbWFyay4gIEVycm9yIGhhbmRsaW5nIGlzICJzdHJpY3QiLgotICAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieSB0aGUgY29kZWMuCisgICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgNC4wCisgICAgICBQYXJ0IG9mIHRoZSBvbGQtc3R5bGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgQVBJOyBwbGVhc2UgbWlncmF0ZSB0byB1c2luZworICAgICAgOmM6ZnVuYzpgUHlVbmljb2RlX0FzVVRGMzJTdHJpbmdgLgogCiAKIFVURi0xNiBDb2RlY3MKQEAgLTY3Miw3ICsxMTM2LDggQEAKIFRoZXNlIGFyZSB0aGUgVVRGLTE2IGNvZGVjIEFQSXM6CiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlVVRGMTYoY29uc3QgY2hhciAqcywgUHlfc3NpemVfdCBzaXplLCBjb25zdCBjaGFyICplcnJvcnMsIGludCAqYnl0ZW9yZGVyKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlVVRGMTYoY29uc3QgY2hhciAqcywgUHlfc3NpemVfdCBzaXplLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMsIGludCAqYnl0ZW9yZGVyKQogCiAgICBEZWNvZGUgKnNpemUqIGJ5dGVzIGZyb20gYSBVVEYtMTYgZW5jb2RlZCBidWZmZXIgc3RyaW5nIGFuZCByZXR1cm4gdGhlCiAgICBjb3JyZXNwb25kaW5nIFVuaWNvZGUgb2JqZWN0LiAgKmVycm9ycyogKGlmIG5vbi0qTlVMTCopIGRlZmluZXMgdGhlIGVycm9yCkBAIC02OTksNyArMTE2NCw4IEBACiAgICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9EZWNvZGVVVEYxNlN0YXRlZnVsKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZXJyb3JzLCBpbnQgKmJ5dGVvcmRlciwgUHlfc3NpemVfdCAqY29uc3VtZWQpCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9EZWNvZGVVVEYxNlN0YXRlZnVsKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLCBpbnQgKmJ5dGVvcmRlciwgUHlfc3NpemVfdCAqY29uc3VtZWQpCiAKICAgIElmICpjb25zdW1lZCogaXMgKk5VTEwqLCBiZWhhdmUgbGlrZSA6YzpmdW5jOmBQeVVuaWNvZGVfRGVjb2RlVVRGMTZgLiBJZgogICAgKmNvbnN1bWVkKiBpcyBub3QgKk5VTEwqLCA6YzpmdW5jOmBQeVVuaWNvZGVfRGVjb2RlVVRGMTZTdGF0ZWZ1bGAgd2lsbCBub3QgdHJlYXQKQEAgLTcwOCw3ICsxMTc0LDE1IEBACiAgICBudW1iZXIgb2YgYnl0ZXMgdGhhdCBoYXZlIGJlZW4gZGVjb2RlZCB3aWxsIGJlIHN0b3JlZCBpbiAqY29uc3VtZWQqLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0VuY29kZVVURjE2KGNvbnN0IFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZXJyb3JzLCBpbnQgYnl0ZW9yZGVyKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfQXNVVEYxNlN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKKworICAgUmV0dXJuIGEgUHl0aG9uIGJ5dGUgc3RyaW5nIHVzaW5nIHRoZSBVVEYtMTYgZW5jb2RpbmcgaW4gbmF0aXZlIGJ5dGUKKyAgIG9yZGVyLiBUaGUgc3RyaW5nIGFsd2F5cyBzdGFydHMgd2l0aCBhIEJPTSBtYXJrLiAgRXJyb3IgaGFuZGxpbmcgaXMgInN0cmljdCIuCisgICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KKworCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGVVVEYxNihjb25zdCBQeV9VTklDT0RFICpzLCBQeV9zc2l6ZV90IHNpemUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycywgaW50IGJ5dGVvcmRlcikKIAogICAgUmV0dXJuIGEgUHl0aG9uIGJ5dGVzIG9iamVjdCBob2xkaW5nIHRoZSBVVEYtMTYgZW5jb2RlZCB2YWx1ZSBvZiB0aGUgVW5pY29kZQogICAgZGF0YSBpbiAqcyouICBPdXRwdXQgaXMgd3JpdHRlbiBhY2NvcmRpbmcgdG8gdGhlIGZvbGxvd2luZyBieXRlIG9yZGVyOjoKQEAgLTcyNiwxMiArMTIwMCw5IEBACiAKICAgIFJldHVybiAqTlVMTCogaWYgYW4gZXhjZXB0aW9uIHdhcyByYWlzZWQgYnkgdGhlIGNvZGVjLgogCi0KLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0FzVVRGMTZTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCi0KLSAgIFJldHVybiBhIFB5dGhvbiBieXRlIHN0cmluZyB1c2luZyB0aGUgVVRGLTE2IGVuY29kaW5nIGluIG5hdGl2ZSBieXRlCi0gICBvcmRlci4gVGhlIHN0cmluZyBhbHdheXMgc3RhcnRzIHdpdGggYSBCT00gbWFyay4gIEVycm9yIGhhbmRsaW5nIGlzICJzdHJpY3QiLgotICAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieSB0aGUgY29kZWMuCisgICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgNC4wCisgICAgICBQYXJ0IG9mIHRoZSBvbGQtc3R5bGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgQVBJOyBwbGVhc2UgbWlncmF0ZSB0byB1c2luZworICAgICAgOmM6ZnVuYzpgUHlVbmljb2RlX0FzVVRGMTZTdHJpbmdgLgogCiAKIFVURi03IENvZGVjcwpAQCAtNzQ2LDcgKzEyMTcsOCBAQAogICAgKnMqLiAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieSB0aGUgY29kZWMuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlVVRGN1N0YXRlZnVsKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZXJyb3JzLCBQeV9zc2l6ZV90ICpjb25zdW1lZCkKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0RlY29kZVVURjdTdGF0ZWZ1bChjb25zdCBjaGFyICpzLCBQeV9zc2l6ZV90IHNpemUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycywgUHlfc3NpemVfdCAqY29uc3VtZWQpCiAKICAgIElmICpjb25zdW1lZCogaXMgKk5VTEwqLCBiZWhhdmUgbGlrZSA6YzpmdW5jOmBQeVVuaWNvZGVfRGVjb2RlVVRGN2AuICBJZgogICAgKmNvbnN1bWVkKiBpcyBub3QgKk5VTEwqLCB0cmFpbGluZyBpbmNvbXBsZXRlIFVURi03IGJhc2UtNjQgc2VjdGlvbnMgd2lsbCBub3QKQEAgLTc1NCw3ICsxMjI2LDggQEAKICAgIGJ5dGVzIHRoYXQgaGF2ZSBiZWVuIGRlY29kZWQgd2lsbCBiZSBzdG9yZWQgaW4gKmNvbnN1bWVkKi4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGVVVEY3KGNvbnN0IFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgaW50IGJhc2U2NFNldE8sIGludCBiYXNlNjRXaGl0ZVNwYWNlLCBjb25zdCBjaGFyICplcnJvcnMpCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGVVVEY3KGNvbnN0IFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2U2NFNldE8sIGludCBiYXNlNjRXaGl0ZVNwYWNlLCBjb25zdCBjaGFyICplcnJvcnMpCiAKICAgIEVuY29kZSB0aGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYnVmZmVyIG9mIHRoZSBnaXZlbiBzaXplIHVzaW5nIFVURi03IGFuZAogICAgcmV0dXJuIGEgUHl0aG9uIGJ5dGVzIG9iamVjdC4gIFJldHVybiAqTlVMTCogaWYgYW4gZXhjZXB0aW9uIHdhcyByYWlzZWQgYnkKQEAgLTc2NSw2ICsxMjM4LDExIEBACiAgICBub256ZXJvLCB3aGl0ZXNwYWNlIHdpbGwgYmUgZW5jb2RlZCBpbiBiYXNlLTY0LiAgQm90aCBhcmUgc2V0IHRvIHplcm8gZm9yIHRoZQogICAgUHl0aG9uICJ1dGYtNyIgY29kZWMuCiAKKyAgIC4uIGRlcHJlY2F0ZWQtcmVtb3ZlZDo6IDMuMyA0LjAKKyAgICAgIFBhcnQgb2YgdGhlIG9sZC1zdHlsZSA6Yzp0eXBlOmBQeV9VTklDT0RFYCBBUEkuCisKKyAgIC4uIFhYWCByZXBsYWNlIHdpdGggd2hhdD8KKwogCiBVbmljb2RlLUVzY2FwZSBDb2RlY3MKICIiIiIiIiIiIiIiIiIiIiIiIiIiIgpAQCAtNzcyLDE5ICsxMjUwLDEzIEBACiBUaGVzZSBhcmUgdGhlICJVbmljb2RlIEVzY2FwZSIgY29kZWMgQVBJczoKIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9EZWNvZGVVbmljb2RlRXNjYXBlKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZXJyb3JzKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlVW5pY29kZUVzY2FwZShjb25zdCBjaGFyICpzLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmVycm9ycykKIAogICAgQ3JlYXRlIGEgVW5pY29kZSBvYmplY3QgYnkgZGVjb2RpbmcgKnNpemUqIGJ5dGVzIG9mIHRoZSBVbmljb2RlLUVzY2FwZSBlbmNvZGVkCiAgICBzdHJpbmcgKnMqLiAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieSB0aGUgY29kZWMuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRW5jb2RlVW5pY29kZUVzY2FwZShjb25zdCBQeV9VTklDT0RFICpzLCBQeV9zc2l6ZV90IHNpemUpCi0KLSAgIEVuY29kZSB0aGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYnVmZmVyIG9mIHRoZSBnaXZlbiAqc2l6ZSogdXNpbmcgVW5pY29kZS1Fc2NhcGUgYW5kCi0gICByZXR1cm4gYSBQeXRob24gc3RyaW5nIG9iamVjdC4gIFJldHVybiAqTlVMTCogaWYgYW4gZXhjZXB0aW9uIHdhcyByYWlzZWQgYnkgdGhlCi0gICBjb2RlYy4KLQotCiAuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9Bc1VuaWNvZGVFc2NhcGVTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCiAKICAgIEVuY29kZSBhIFVuaWNvZGUgb2JqZWN0IHVzaW5nIFVuaWNvZGUtRXNjYXBlIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBQeXRob24KQEAgLTc5MiwyNSArMTI2NCwzMCBAQAogICAgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KIAogCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGVVbmljb2RlRXNjYXBlKGNvbnN0IFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSkKKworICAgRW5jb2RlIHRoZSA6Yzp0eXBlOmBQeV9VTklDT0RFYCBidWZmZXIgb2YgdGhlIGdpdmVuICpzaXplKiB1c2luZyBVbmljb2RlLUVzY2FwZSBhbmQKKyAgIHJldHVybiBhIFB5dGhvbiBzdHJpbmcgb2JqZWN0LiAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieSB0aGUKKyAgIGNvZGVjLgorCisgICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgNC4wCisgICAgICBQYXJ0IG9mIHRoZSBvbGQtc3R5bGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgQVBJOyBwbGVhc2UgbWlncmF0ZSB0byB1c2luZworICAgICAgOmM6ZnVuYzpgUHlVbmljb2RlX0FzVW5pY29kZUVzY2FwZVN0cmluZ2AuCisKKwogUmF3LVVuaWNvZGUtRXNjYXBlIENvZGVjcwogIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIgogCiBUaGVzZSBhcmUgdGhlICJSYXcgVW5pY29kZSBFc2NhcGUiIGNvZGVjIEFQSXM6CiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlUmF3VW5pY29kZUVzY2FwZShjb25zdCBjaGFyICpzLCBQeV9zc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmVycm9ycykKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0RlY29kZVJhd1VuaWNvZGVFc2NhcGUoY29uc3QgY2hhciAqcywgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLCBjb25zdCBjaGFyICplcnJvcnMpCiAKICAgIENyZWF0ZSBhIFVuaWNvZGUgb2JqZWN0IGJ5IGRlY29kaW5nICpzaXplKiBieXRlcyBvZiB0aGUgUmF3LVVuaWNvZGUtRXNjYXBlCiAgICBlbmNvZGVkIHN0cmluZyAqcyouICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGVSYXdVbmljb2RlRXNjYXBlKGNvbnN0IFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgY29uc3QgY2hhciAqZXJyb3JzKQotCi0gICBFbmNvZGUgdGhlIDpjOnR5cGU6YFB5X1VOSUNPREVgIGJ1ZmZlciBvZiB0aGUgZ2l2ZW4gKnNpemUqIHVzaW5nIFJhdy1Vbmljb2RlLUVzY2FwZQotICAgYW5kIHJldHVybiBhIFB5dGhvbiBzdHJpbmcgb2JqZWN0LiAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieQotICAgdGhlIGNvZGVjLgotCi0KIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKIAogICAgRW5jb2RlIGEgVW5pY29kZSBvYmplY3QgdXNpbmcgUmF3LVVuaWNvZGUtRXNjYXBlIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcwpAQCAtODE4LDYgKzEyOTUsMTggQEAKICAgIHdhcyByYWlzZWQgYnkgdGhlIGNvZGVjLgogCiAKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0VuY29kZVJhd1VuaWNvZGVFc2NhcGUoY29uc3QgUHlfVU5JQ09ERSAqcywgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLCBjb25zdCBjaGFyICplcnJvcnMpCisKKyAgIEVuY29kZSB0aGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYnVmZmVyIG9mIHRoZSBnaXZlbiAqc2l6ZSogdXNpbmcgUmF3LVVuaWNvZGUtRXNjYXBlCisgICBhbmQgcmV0dXJuIGEgUHl0aG9uIHN0cmluZyBvYmplY3QuICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5CisgICB0aGUgY29kZWMuCisKKyAgIC4uIGRlcHJlY2F0ZWQtcmVtb3ZlZDo6IDMuMyA0LjAKKyAgICAgIFBhcnQgb2YgdGhlIG9sZC1zdHlsZSA6Yzp0eXBlOmBQeV9VTklDT0RFYCBBUEk7IHBsZWFzZSBtaWdyYXRlIHRvIHVzaW5nCisgICAgICA6YzpmdW5jOmBQeVVuaWNvZGVfQXNSYXdVbmljb2RlRXNjYXBlU3RyaW5nYC4KKworCiBMYXRpbi0xIENvZGVjcwogIiIiIiIiIiIiIiIiIiIKIApAQCAtODMxLDE4ICsxMzIwLDIyIEBACiAgICAqcyouICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KIAogCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9Bc0xhdGluMVN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKKworICAgRW5jb2RlIGEgVW5pY29kZSBvYmplY3QgdXNpbmcgTGF0aW4tMSBhbmQgcmV0dXJuIHRoZSByZXN1bHQgYXMgUHl0aG9uIGJ5dGVzCisgICBvYmplY3QuICBFcnJvciBoYW5kbGluZyBpcyAic3RyaWN0Ii4gIFJldHVybiAqTlVMTCogaWYgYW4gZXhjZXB0aW9uIHdhcworICAgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KKworCiAuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9FbmNvZGVMYXRpbjEoY29uc3QgUHlfVU5JQ09ERSAqcywgUHlfc3NpemVfdCBzaXplLCBjb25zdCBjaGFyICplcnJvcnMpCiAKICAgIEVuY29kZSB0aGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYnVmZmVyIG9mIHRoZSBnaXZlbiAqc2l6ZSogdXNpbmcgTGF0aW4tMSBhbmQKICAgIHJldHVybiBhIFB5dGhvbiBieXRlcyBvYmplY3QuICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5CiAgICB0aGUgY29kZWMuCiAKLQotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfQXNMYXRpbjFTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCi0KLSAgIEVuY29kZSBhIFVuaWNvZGUgb2JqZWN0IHVzaW5nIExhdGluLTEgYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIFB5dGhvbiBieXRlcwotICAgb2JqZWN0LiAgRXJyb3IgaGFuZGxpbmcgaXMgInN0cmljdCIuICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMKLSAgIHJhaXNlZCBieSB0aGUgY29kZWMuCisgICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgNC4wCisgICAgICBQYXJ0IG9mIHRoZSBvbGQtc3R5bGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgQVBJOyBwbGVhc2UgbWlncmF0ZSB0byB1c2luZworICAgICAgOmM6ZnVuYzpgUHlVbmljb2RlX0FzTGF0aW4xU3RyaW5nYC4KIAogCiBBU0NJSSBDb2RlY3MKQEAgLTg1OCwxOCArMTM1MSwyMiBAQAogICAgKnMqLiAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieSB0aGUgY29kZWMuCiAKIAorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfQXNBU0NJSVN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKKworICAgRW5jb2RlIGEgVW5pY29kZSBvYmplY3QgdXNpbmcgQVNDSUkgYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIFB5dGhvbiBieXRlcworICAgb2JqZWN0LiAgRXJyb3IgaGFuZGxpbmcgaXMgInN0cmljdCIuICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMKKyAgIHJhaXNlZCBieSB0aGUgY29kZWMuCisKKwogLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRW5jb2RlQVNDSUkoY29uc3QgUHlfVU5JQ09ERSAqcywgUHlfc3NpemVfdCBzaXplLCBjb25zdCBjaGFyICplcnJvcnMpCiAKICAgIEVuY29kZSB0aGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYnVmZmVyIG9mIHRoZSBnaXZlbiAqc2l6ZSogdXNpbmcgQVNDSUkgYW5kCiAgICByZXR1cm4gYSBQeXRob24gYnl0ZXMgb2JqZWN0LiAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieQogICAgdGhlIGNvZGVjLgogCi0KLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0FzQVNDSUlTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCi0KLSAgIEVuY29kZSBhIFVuaWNvZGUgb2JqZWN0IHVzaW5nIEFTQ0lJIGFuZCByZXR1cm4gdGhlIHJlc3VsdCBhcyBQeXRob24gYnl0ZXMKLSAgIG9iamVjdC4gIEVycm9yIGhhbmRsaW5nIGlzICJzdHJpY3QiLiAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzCi0gICByYWlzZWQgYnkgdGhlIGNvZGVjLgorICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDQuMAorICAgICAgUGFydCBvZiB0aGUgb2xkLXN0eWxlIDpjOnR5cGU6YFB5X1VOSUNPREVgIEFQSTsgcGxlYXNlIG1pZ3JhdGUgdG8gdXNpbmcKKyAgICAgIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nYC4KIAogCiBDaGFyYWN0ZXIgTWFwIENvZGVjcwpAQCAtODk4LDcgKzEzOTUsOCBAQAogCiBUaGVzZSBhcmUgdGhlIG1hcHBpbmcgY29kZWMgQVBJczoKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRGVjb2RlQ2hhcm1hcChjb25zdCBjaGFyICpzLCBQeV9zc2l6ZV90IHNpemUsIFB5T2JqZWN0ICptYXBwaW5nLCBjb25zdCBjaGFyICplcnJvcnMpCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9EZWNvZGVDaGFybWFwKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm1hcHBpbmcsIGNvbnN0IGNoYXIgKmVycm9ycykKIAogICAgQ3JlYXRlIGEgVW5pY29kZSBvYmplY3QgYnkgZGVjb2RpbmcgKnNpemUqIGJ5dGVzIG9mIHRoZSBlbmNvZGVkIHN0cmluZyAqcyogdXNpbmcKICAgIHRoZSBnaXZlbiAqbWFwcGluZyogb2JqZWN0LiAgUmV0dXJuICpOVUxMKiBpZiBhbiBleGNlcHRpb24gd2FzIHJhaXNlZCBieSB0aGUKQEAgLTkwOCwxMyArMTQwNiw2IEBACiAgICB0cmVhdGVkIGFzICJ1bmRlZmluZWQgbWFwcGluZyIuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRW5jb2RlQ2hhcm1hcChjb25zdCBQeV9VTklDT0RFICpzLCBQeV9zc2l6ZV90IHNpemUsIFB5T2JqZWN0ICptYXBwaW5nLCBjb25zdCBjaGFyICplcnJvcnMpCi0KLSAgIEVuY29kZSB0aGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYnVmZmVyIG9mIHRoZSBnaXZlbiAqc2l6ZSogdXNpbmcgdGhlIGdpdmVuCi0gICAqbWFwcGluZyogb2JqZWN0IGFuZCByZXR1cm4gYSBQeXRob24gc3RyaW5nIG9iamVjdC4gUmV0dXJuICpOVUxMKiBpZiBhbgotICAgZXhjZXB0aW9uIHdhcyByYWlzZWQgYnkgdGhlIGNvZGVjLgotCi0KIC4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0FzQ2hhcm1hcFN0cmluZyhQeU9iamVjdCAqdW5pY29kZSwgUHlPYmplY3QgKm1hcHBpbmcpCiAKICAgIEVuY29kZSBhIFVuaWNvZGUgb2JqZWN0IHVzaW5nIHRoZSBnaXZlbiAqbWFwcGluZyogb2JqZWN0IGFuZCByZXR1cm4gdGhlIHJlc3VsdApAQCAtOTI0LDcgKzE0MTUsOCBAQAogVGhlIGZvbGxvd2luZyBjb2RlYyBBUEkgaXMgc3BlY2lhbCBpbiB0aGF0IG1hcHMgVW5pY29kZSB0byBVbmljb2RlLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX1RyYW5zbGF0ZUNoYXJtYXAoY29uc3QgUHlfVU5JQ09ERSAqcywgUHlfc3NpemVfdCBzaXplLCBQeU9iamVjdCAqdGFibGUsIGNvbnN0IGNoYXIgKmVycm9ycykKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX1RyYW5zbGF0ZUNoYXJtYXAoY29uc3QgUHlfVU5JQ09ERSAqcywgUHlfc3NpemVfdCBzaXplLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdGFibGUsIGNvbnN0IGNoYXIgKmVycm9ycykKIAogICAgVHJhbnNsYXRlIGEgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYnVmZmVyIG9mIHRoZSBnaXZlbiAqc2l6ZSogYnkgYXBwbHlpbmcgYQogICAgY2hhcmFjdGVyIG1hcHBpbmcgKnRhYmxlKiB0byBpdCBhbmQgcmV0dXJuIHRoZSByZXN1bHRpbmcgVW5pY29kZSBvYmplY3QuICBSZXR1cm4KQEAgLTkzNyw2ICsxNDI5LDIyIEBACiAgICBhbmQgc2VxdWVuY2VzIHdvcmsgd2VsbC4gIFVubWFwcGVkIGNoYXJhY3RlciBvcmRpbmFscyAob25lcyB3aGljaCBjYXVzZSBhCiAgICA6ZXhjOmBMb29rdXBFcnJvcmApIGFyZSBsZWZ0IHVudG91Y2hlZCBhbmQgYXJlIGNvcGllZCBhcy1pcy4KIAorICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDQuMAorICAgICAgUGFydCBvZiB0aGUgb2xkLXN0eWxlIDpjOnR5cGU6YFB5X1VOSUNPREVgIEFQSS4KKworICAgLi4gWFhYIHJlcGxhY2Ugd2l0aCB3aGF0PworCisKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0VuY29kZUNoYXJtYXAoY29uc3QgUHlfVU5JQ09ERSAqcywgUHlfc3NpemVfdCBzaXplLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWFwcGluZywgY29uc3QgY2hhciAqZXJyb3JzKQorCisgICBFbmNvZGUgdGhlIDpjOnR5cGU6YFB5X1VOSUNPREVgIGJ1ZmZlciBvZiB0aGUgZ2l2ZW4gKnNpemUqIHVzaW5nIHRoZSBnaXZlbgorICAgKm1hcHBpbmcqIG9iamVjdCBhbmQgcmV0dXJuIGEgUHl0aG9uIHN0cmluZyBvYmplY3QuIFJldHVybiAqTlVMTCogaWYgYW4KKyAgIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KKworICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDQuMAorICAgICAgUGFydCBvZiB0aGUgb2xkLXN0eWxlIDpjOnR5cGU6YFB5X1VOSUNPREVgIEFQSTsgcGxlYXNlIG1pZ3JhdGUgdG8gdXNpbmcKKyAgICAgIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc0NoYXJtYXBTdHJpbmdgLgogCiAKIE1CQ1MgY29kZWNzIGZvciBXaW5kb3dzCkBAIC05NTMsNyArMTQ2MSw4IEBACiAgICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5IHRoZSBjb2RlYy4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9EZWNvZGVNQkNTU3RhdGVmdWwoY29uc3QgY2hhciAqcywgaW50IHNpemUsIGNvbnN0IGNoYXIgKmVycm9ycywgaW50ICpjb25zdW1lZCkKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX0RlY29kZU1CQ1NTdGF0ZWZ1bChjb25zdCBjaGFyICpzLCBpbnQgc2l6ZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLCBpbnQgKmNvbnN1bWVkKQogCiAgICBJZiAqY29uc3VtZWQqIGlzICpOVUxMKiwgYmVoYXZlIGxpa2UgOmM6ZnVuYzpgUHlVbmljb2RlX0RlY29kZU1CQ1NgLiBJZgogICAgKmNvbnN1bWVkKiBpcyBub3QgKk5VTEwqLCA6YzpmdW5jOmBQeVVuaWNvZGVfRGVjb2RlTUJDU1N0YXRlZnVsYCB3aWxsIG5vdCBkZWNvZGUKQEAgLTk2MSwxOCArMTQ3MCwzMSBAQAogICAgaW4gKmNvbnN1bWVkKi4KIAogCisuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9Bc01CQ1NTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCisKKyAgIEVuY29kZSBhIFVuaWNvZGUgb2JqZWN0IHVzaW5nIE1CQ1MgYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIFB5dGhvbiBieXRlcworICAgb2JqZWN0LiAgRXJyb3IgaGFuZGxpbmcgaXMgInN0cmljdCIuICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMKKyAgIHJhaXNlZCBieSB0aGUgY29kZWMuCisKKworLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRW5jb2RlQ29kZVBhZ2UoaW50IGNvZGVfcGFnZSwgUHlPYmplY3QgKnVuaWNvZGUsIGNvbnN0IGNoYXIgKmVycm9ycykKKworICAgRW5jb2RlIHRoZSBVbmljb2RlIG9iamVjdCB1c2luZyB0aGUgc3BlY2lmaWVkIGNvZGUgcGFnZSBhbmQgcmV0dXJuIGEgUHl0aG9uCisgICBieXRlcyBvYmplY3QuICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkIGJ5IHRoZSBjb2RlYy4gVXNlCisgICA6YzpkYXRhOmBDUF9BQ1BgIGNvZGUgcGFnZSB0byBnZXQgdGhlIE1CQ1MgZW5jb2Rlci4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfRW5jb2RlTUJDUyhjb25zdCBQeV9VTklDT0RFICpzLCBQeV9zc2l6ZV90IHNpemUsIGNvbnN0IGNoYXIgKmVycm9ycykKIAogICAgRW5jb2RlIHRoZSA6Yzp0eXBlOmBQeV9VTklDT0RFYCBidWZmZXIgb2YgdGhlIGdpdmVuICpzaXplKiB1c2luZyBNQkNTIGFuZCByZXR1cm4KICAgIGEgUHl0aG9uIGJ5dGVzIG9iamVjdC4gIFJldHVybiAqTlVMTCogaWYgYW4gZXhjZXB0aW9uIHdhcyByYWlzZWQgYnkgdGhlCiAgICBjb2RlYy4KIAotCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9Bc01CQ1NTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCi0KLSAgIEVuY29kZSBhIFVuaWNvZGUgb2JqZWN0IHVzaW5nIE1CQ1MgYW5kIHJldHVybiB0aGUgcmVzdWx0IGFzIFB5dGhvbiBieXRlcwotICAgb2JqZWN0LiAgRXJyb3IgaGFuZGxpbmcgaXMgInN0cmljdCIuICBSZXR1cm4gKk5VTEwqIGlmIGFuIGV4Y2VwdGlvbiB3YXMKLSAgIHJhaXNlZCBieSB0aGUgY29kZWMuCisgICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgNC4wCisgICAgICBQYXJ0IG9mIHRoZSBvbGQtc3R5bGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgQVBJOyBwbGVhc2UgbWlncmF0ZSB0byB1c2luZworICAgICAgOmM6ZnVuYzpgUHlVbmljb2RlX0FzTUJDU1N0cmluZ2Agb3IgOmM6ZnVuYzpgUHlVbmljb2RlX0VuY29kZUNvZGVQYWdlYC4KIAogCiBNZXRob2RzICYgU2xvdHMKQEAgLTEwMTEsNyArMTUzMyw4IEBACiAgICBjaGFyYWN0ZXJzIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBzdHJpbmdzLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX1RyYW5zbGF0ZShQeU9iamVjdCAqc3RyLCBQeU9iamVjdCAqdGFibGUsIGNvbnN0IGNoYXIgKmVycm9ycykKKy4uIGM6ZnVuY3Rpb246OiBQeU9iamVjdCogUHlVbmljb2RlX1RyYW5zbGF0ZShQeU9iamVjdCAqc3RyLCBQeU9iamVjdCAqdGFibGUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIAogICAgVHJhbnNsYXRlIGEgc3RyaW5nIGJ5IGFwcGx5aW5nIGEgY2hhcmFjdGVyIG1hcHBpbmcgdGFibGUgdG8gaXQgYW5kIHJldHVybiB0aGUKICAgIHJlc3VsdGluZyBVbmljb2RlIG9iamVjdC4KQEAgLTEwMzMsMTQgKzE1NTYsMTYgQEAKICAgIFVuaWNvZGUgc3RyaW5nLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBpbnQgUHlVbmljb2RlX1RhaWxtYXRjaChQeU9iamVjdCAqc3RyLCBQeU9iamVjdCAqc3Vic3RyLCBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCwgaW50IGRpcmVjdGlvbikKKy4uIGM6ZnVuY3Rpb246OiBpbnQgUHlVbmljb2RlX1RhaWxtYXRjaChQeU9iamVjdCAqc3RyLCBQeU9iamVjdCAqc3Vic3RyLCBcCisgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCwgaW50IGRpcmVjdGlvbikKIAogICAgUmV0dXJuIDEgaWYgKnN1YnN0ciogbWF0Y2hlcyBgYHN0cltzdGFydDplbmRdYGAgYXQgdGhlIGdpdmVuIHRhaWwgZW5kCiAgICAoKmRpcmVjdGlvbiogPT0gLTEgbWVhbnMgdG8gZG8gYSBwcmVmaXggbWF0Y2gsICpkaXJlY3Rpb24qID09IDEgYSBzdWZmaXggbWF0Y2gpLAogICAgMCBvdGhlcndpc2UuIFJldHVybiBgYC0xYGAgaWYgYW4gZXJyb3Igb2NjdXJyZWQuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5X3NzaXplX3QgUHlVbmljb2RlX0ZpbmQoUHlPYmplY3QgKnN0ciwgUHlPYmplY3QgKnN1YnN0ciwgUHlfc3NpemVfdCBzdGFydCwgUHlfc3NpemVfdCBlbmQsIGludCBkaXJlY3Rpb24pCisuLiBjOmZ1bmN0aW9uOjogUHlfc3NpemVfdCBQeVVuaWNvZGVfRmluZChQeU9iamVjdCAqc3RyLCBQeU9iamVjdCAqc3Vic3RyLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydCwgUHlfc3NpemVfdCBlbmQsIGludCBkaXJlY3Rpb24pCiAKICAgIFJldHVybiB0aGUgZmlyc3QgcG9zaXRpb24gb2YgKnN1YnN0ciogaW4gYGBzdHJbc3RhcnQ6ZW5kXWBgIHVzaW5nIHRoZSBnaXZlbgogICAgKmRpcmVjdGlvbiogKCpkaXJlY3Rpb24qID09IDEgbWVhbnMgdG8gZG8gYSBmb3J3YXJkIHNlYXJjaCwgKmRpcmVjdGlvbiogPT0gLTEgYQpAQCAtMTA0OSwxMyArMTU3NCwyNyBAQAogICAgb2NjdXJyZWQgYW5kIGFuIGV4Y2VwdGlvbiBoYXMgYmVlbiBzZXQuCiAKIAotLi4gYzpmdW5jdGlvbjo6IFB5X3NzaXplX3QgUHlVbmljb2RlX0NvdW50KFB5T2JqZWN0ICpzdHIsIFB5T2JqZWN0ICpzdWJzdHIsIFB5X3NzaXplX3Qgc3RhcnQsIFB5X3NzaXplX3QgZW5kKQorLi4gYzpmdW5jdGlvbjo6IFB5X3NzaXplX3QgUHlVbmljb2RlX0ZpbmRDaGFyKFB5T2JqZWN0ICpzdHIsIFB5X1VDUzQgY2gsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCwgaW50IGRpcmVjdGlvbikKKworICAgUmV0dXJuIHRoZSBmaXJzdCBwb3NpdGlvbiBvZiB0aGUgY2hhcmFjdGVyICpjaCogaW4gYGBzdHJbc3RhcnQ6ZW5kXWBgIHVzaW5nCisgICB0aGUgZ2l2ZW4gKmRpcmVjdGlvbiogKCpkaXJlY3Rpb24qID09IDEgbWVhbnMgdG8gZG8gYSBmb3J3YXJkIHNlYXJjaCwKKyAgICpkaXJlY3Rpb24qID09IC0xIGEgYmFja3dhcmQgc2VhcmNoKS4gIFRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIGluZGV4IG9mIHRoZQorICAgZmlyc3QgbWF0Y2g7IGEgdmFsdWUgb2YgYGAtMWBgIGluZGljYXRlcyB0aGF0IG5vIG1hdGNoIHdhcyBmb3VuZCwgYW5kIGBgLTJgYAorICAgaW5kaWNhdGVzIHRoYXQgYW4gZXJyb3Igb2NjdXJyZWQgYW5kIGFuIGV4Y2VwdGlvbiBoYXMgYmVlbiBzZXQuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGM6ZnVuY3Rpb246OiBQeV9zc2l6ZV90IFB5VW5pY29kZV9Db3VudChQeU9iamVjdCAqc3RyLCBQeU9iamVjdCAqc3Vic3RyLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydCwgUHlfc3NpemVfdCBlbmQpCiAKICAgIFJldHVybiB0aGUgbnVtYmVyIG9mIG5vbi1vdmVybGFwcGluZyBvY2N1cnJlbmNlcyBvZiAqc3Vic3RyKiBpbgogICAgYGBzdHJbc3RhcnQ6ZW5kXWBgLiAgUmV0dXJuIGBgLTFgYCBpZiBhbiBlcnJvciBvY2N1cnJlZC4KIAogCi0uLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9SZXBsYWNlKFB5T2JqZWN0ICpzdHIsIFB5T2JqZWN0ICpzdWJzdHIsIFB5T2JqZWN0ICpyZXBsc3RyLCBQeV9zc2l6ZV90IG1heGNvdW50KQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfUmVwbGFjZShQeU9iamVjdCAqc3RyLCBQeU9iamVjdCAqc3Vic3RyLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqcmVwbHN0ciwgUHlfc3NpemVfdCBtYXhjb3VudCkKIAogICAgUmVwbGFjZSBhdCBtb3N0ICptYXhjb3VudCogb2NjdXJyZW5jZXMgb2YgKnN1YnN0ciogaW4gKnN0ciogd2l0aCAqcmVwbHN0ciogYW5kCiAgICByZXR1cm4gdGhlIHJlc3VsdGluZyBVbmljb2RlIG9iamVjdC4gKm1heGNvdW50KiA9PSAtMSBtZWFucyByZXBsYWNlIGFsbApAQCAtMTA3Niw3ICsxNjE1LDcgQEAKICAgIElTTy04ODU5LTEgaWYgaXQgY29udGFpbnMgbm9uLUFTQ0lJIGNoYXJhY3RlcnMiLgogCiAKLS4uIGM6ZnVuY3Rpb246OiBpbnQgUHlVbmljb2RlX1JpY2hDb21wYXJlKFB5T2JqZWN0ICpsZWZ0LCAgUHlPYmplY3QgKnJpZ2h0LCAgaW50IG9wKQorLi4gYzpmdW5jdGlvbjo6IFB5T2JqZWN0KiBQeVVuaWNvZGVfUmljaENvbXBhcmUoUHlPYmplY3QgKmxlZnQsICBQeU9iamVjdCAqcmlnaHQsICBpbnQgb3ApCiAKICAgIFJpY2ggY29tcGFyZSB0d28gdW5pY29kZSBzdHJpbmdzIGFuZCByZXR1cm4gb25lIG9mIHRoZSBmb2xsb3dpbmc6CiAKQEAgLTExMDMsOCArMTY0Miw4IEBACiAgICBDaGVjayB3aGV0aGVyICplbGVtZW50KiBpcyBjb250YWluZWQgaW4gKmNvbnRhaW5lciogYW5kIHJldHVybiB0cnVlIG9yIGZhbHNlCiAgICBhY2NvcmRpbmdseS4KIAotICAgKmVsZW1lbnQqIGhhcyB0byBjb2VyY2UgdG8gYSBvbmUgZWxlbWVudCBVbmljb2RlIHN0cmluZy4gYGAtMWBgIGlzIHJldHVybmVkIGlmCi0gICB0aGVyZSB3YXMgYW4gZXJyb3IuCisgICAqZWxlbWVudCogaGFzIHRvIGNvZXJjZSB0byBhIG9uZSBlbGVtZW50IFVuaWNvZGUgc3RyaW5nLiBgYC0xYGAgaXMgcmV0dXJuZWQKKyAgIGlmIHRoZXJlIHdhcyBhbiBlcnJvci4KIAogCiAuLiBjOmZ1bmN0aW9uOjogdm9pZCBQeVVuaWNvZGVfSW50ZXJuSW5QbGFjZShQeU9iamVjdCAqKnN0cmluZykKQEAgLTExMjMsNyArMTY2Miw2IEBACiAuLiBjOmZ1bmN0aW9uOjogUHlPYmplY3QqIFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKGNvbnN0IGNoYXIgKnYpCiAKICAgIEEgY29tYmluYXRpb24gb2YgOmM6ZnVuYzpgUHlVbmljb2RlX0Zyb21TdHJpbmdgIGFuZAotICAgOmM6ZnVuYzpgUHlVbmljb2RlX0ludGVybkluUGxhY2VgLCByZXR1cm5pbmcgZWl0aGVyIGEgbmV3IHVuaWNvZGUgc3RyaW5nIG9iamVjdAotICAgdGhhdCBoYXMgYmVlbiBpbnRlcm5lZCwgb3IgYSBuZXcgKCJvd25lZCIpIHJlZmVyZW5jZSB0byBhbiBlYXJsaWVyIGludGVybmVkCi0gICBzdHJpbmcgb2JqZWN0IHdpdGggdGhlIHNhbWUgdmFsdWUuCi0KKyAgIDpjOmZ1bmM6YFB5VW5pY29kZV9JbnRlcm5JblBsYWNlYCwgcmV0dXJuaW5nIGVpdGhlciBhIG5ldyB1bmljb2RlIHN0cmluZworICAgb2JqZWN0IHRoYXQgaGFzIGJlZW4gaW50ZXJuZWQsIG9yIGEgbmV3ICgib3duZWQiKSByZWZlcmVuY2UgdG8gYW4gZWFybGllcgorICAgaW50ZXJuZWQgc3RyaW5nIG9iamVjdCB3aXRoIHRoZSBzYW1lIHZhbHVlLgpkaWZmIC0tZ2l0IGEvRG9jL2MtYXBpL3ZlcnloaWdoLnJzdCBiL0RvYy9jLWFwaS92ZXJ5aGlnaC5yc3QKaW5kZXggNDFjZGQ2Yi4uNDk5ZWIzZSAxMDA2NDQKLS0tIGEvRG9jL2MtYXBpL3ZlcnloaWdoLnJzdAorKysgYi9Eb2MvYy1hcGkvdmVyeWhpZ2gucnN0CkBAIC05NSwxMiArOTUsNiBAQAogICAgbGVhdmluZyAqY2xvc2VpdCogc2V0IHRvIGBgMGBgIGFuZCAqZmxhZ3MqIHNldCB0byAqTlVMTCouCiAKIAotLi4gYzpmdW5jdGlvbjo6IGludCBQeVJ1bl9TaW1wbGVGaWxlRmxhZ3MoRklMRSAqZnAsIGNvbnN0IGNoYXIgKmZpbGVuYW1lLCBQeUNvbXBpbGVyRmxhZ3MgKmZsYWdzKQotCi0gICBUaGlzIGlzIGEgc2ltcGxpZmllZCBpbnRlcmZhY2UgdG8gOmM6ZnVuYzpgUHlSdW5fU2ltcGxlRmlsZUV4RmxhZ3NgIGJlbG93LAotICAgbGVhdmluZyAqY2xvc2VpdCogc2V0IHRvIGBgMGBgLgotCi0KIC4uIGM6ZnVuY3Rpb246OiBpbnQgUHlSdW5fU2ltcGxlRmlsZUV4KEZJTEUgKmZwLCBjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGNsb3NlaXQpCiAKICAgIFRoaXMgaXMgYSBzaW1wbGlmaWVkIGludGVyZmFjZSB0byA6YzpmdW5jOmBQeVJ1bl9TaW1wbGVGaWxlRXhGbGFnc2AgYmVsb3csCmRpZmYgLS1naXQgYS9Eb2MvY29uZi5weSBiL0RvYy9jb25mLnB5CmluZGV4IDU1NWYyODEuLjZiMDg1ZTAgMTAwNjQ0Ci0tLSBhL0RvYy9jb25mLnB5CisrKyBiL0RvYy9jb25mLnB5CkBAIC05MSw3ICs5MSw3IEBACiB9CiAKICMgT3V0cHV0IGFuIE9wZW5TZWFyY2ggZGVzY3JpcHRpb24gZmlsZS4KLWh0bWxfdXNlX29wZW5zZWFyY2ggPSAnaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zLjInCitodG1sX3VzZV9vcGVuc2VhcmNoID0gJ2h0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvJyArIHZlcnNpb24KIAogIyBBZGRpdGlvbmFsIHN0YXRpYyBmaWxlcy4KIGh0bWxfc3RhdGljX3BhdGggPSBbJ3Rvb2xzL3NwaGlueGV4dC9zdGF0aWMnXQpkaWZmIC0tZ2l0IGEvRG9jL2RhdGEvcmVmY291bnRzLmRhdCBiL0RvYy9kYXRhL3JlZmNvdW50cy5kYXQKaW5kZXggYzdkN2JkMS4uYTEwMDRhZCAxMDA2NDQKLS0tIGEvRG9jL2RhdGEvcmVmY291bnRzLmRhdAorKysgYi9Eb2MvZGF0YS9yZWZjb3VudHMuZGF0CkBAIC00NjUsNiArNDY1LDExIEBACiBQeUZ1bmN0aW9uX05ldzpQeU9iamVjdCo6Y29kZTorMToKIFB5RnVuY3Rpb25fTmV3OlB5T2JqZWN0KjpnbG9iYWxzOisxOgogCitQeUZ1bmN0aW9uX05ld1dpdGhRdWFsTmFtZTpQeU9iamVjdCo6OisxOgorUHlGdW5jdGlvbl9OZXdXaXRoUXVhbE5hbWU6UHlPYmplY3QqOmNvZGU6KzE6CitQeUZ1bmN0aW9uX05ld1dpdGhRdWFsTmFtZTpQeU9iamVjdCo6Z2xvYmFsczorMToKK1B5RnVuY3Rpb25fTmV3V2l0aFF1YWxOYW1lOlB5T2JqZWN0KjpxdWFsbmFtZTorMToKKwogUHlGdW5jdGlvbl9TZXRDbG9zdXJlOmludDo6OgogUHlGdW5jdGlvbl9TZXRDbG9zdXJlOlB5T2JqZWN0KjpvcDowOgogUHlGdW5jdGlvbl9TZXRDbG9zdXJlOlB5T2JqZWN0KjpjbG9zdXJlOisxOgpkaWZmIC0tZ2l0IGEvRG9jL2Rpc3R1dGlscy9hcGlyZWYucnN0IGIvRG9jL2Rpc3R1dGlscy9hcGlyZWYucnN0CmluZGV4IGUxNWRjNzYuLjcxNzAyZTUgMTAwNjQ0Ci0tLSBhL0RvYy9kaXN0dXRpbHMvYXBpcmVmLnJzdAorKysgYi9Eb2MvZGlzdHV0aWxzL2FwaXJlZi5yc3QKQEAgLTE2MCw3ICsxNjAsNyBAQAogLi4gY2xhc3M6OiBFeHRlbnNpb24KIAogICAgVGhlIEV4dGVuc2lvbiBjbGFzcyBkZXNjcmliZXMgYSBzaW5nbGUgQyBvciBDKytleHRlbnNpb24gbW9kdWxlIGluIGEgc2V0dXAKLSAgIHNjcmlwdC4gSXQgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGtleXdvcmQgYXJndW1lbnRzIGluIGl0cyBjb25zdHJ1Y3RvcgorICAgc2NyaXB0LiBJdCBhY2NlcHRzIHRoZSBmb2xsb3dpbmcga2V5d29yZCBhcmd1bWVudHMgaW4gaXRzIGNvbnN0cnVjdG9yOgogCiAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgIHwgYXJndW1lbnQgbmFtZSAgICAgICAgICB8IHZhbHVlICAgICAgICAgICAgICAgICAgICAgICAgICB8IHR5cGUgICAgICAgICAgICAgICAgICAgICAgfApAQCAtMTE1NywxMiArMTE1NywxMSBAQAogCiAuLiBmdW5jdGlvbjo6IGdyb2tfZW52aXJvbm1lbnRfZXJyb3IoZXhjWywgcHJlZml4PSdlcnJvcjogJ10pCiAKLSAgIEdlbmVyYXRlIGEgdXNlZnVsIGVycm9yIG1lc3NhZ2UgZnJvbSBhbiA6ZXhjOmBFbnZpcm9ubWVudEVycm9yYCAgKDpleGM6YElPRXJyb3JgCi0gICBvciA6ZXhjOmBPU0Vycm9yYCkgZXhjZXB0aW9uIG9iamVjdC4gICBIYW5kbGVzIFB5dGhvbiAxLjUuMSBhbmQgbGF0ZXIgc3R5bGVzLAotICAgYW5kIGRvZXMgd2hhdCBpdCBjYW4gdG8gZGVhbCB3aXRoICBleGNlcHRpb24gb2JqZWN0cyB0aGF0IGRvbid0IGhhdmUgYSBmaWxlbmFtZQotICAgKHdoaWNoIGhhcHBlbnMgd2hlbiB0aGUgZXJyb3IgIGlzIGR1ZSB0byBhIHR3by1maWxlIG9wZXJhdGlvbiwgc3VjaCBhcwotICAgOmZ1bmM6YHJlbmFtZWAgb3IgIDpmdW5jOmBsaW5rYCkuICBSZXR1cm5zIHRoZSBlcnJvciBtZXNzYWdlIGFzIGEgc3RyaW5nCi0gICBwcmVmaXhlZCAgd2l0aCAqcHJlZml4Ki4KKyAgIEdlbmVyYXRlIGEgdXNlZnVsIGVycm9yIG1lc3NhZ2UgZnJvbSBhbiA6ZXhjOmBPU0Vycm9yYCBleGNlcHRpb24gb2JqZWN0LgorICAgSGFuZGxlcyBQeXRob24gMS41LjEgYW5kIGxhdGVyIHN0eWxlcywgYW5kIGRvZXMgd2hhdCBpdCBjYW4gdG8gZGVhbCB3aXRoCisgICBleGNlcHRpb24gb2JqZWN0cyB0aGF0IGRvbid0IGhhdmUgYSBmaWxlbmFtZSAod2hpY2ggaGFwcGVucyB3aGVuIHRoZSBlcnJvcgorICAgaXMgZHVlIHRvIGEgdHdvLWZpbGUgb3BlcmF0aW9uLCBzdWNoIGFzIDpmdW5jOmByZW5hbWVgIG9yIDpmdW5jOmBsaW5rYCkuCisgICBSZXR1cm5zIHRoZSBlcnJvciBtZXNzYWdlIGFzIGEgc3RyaW5nIHByZWZpeGVkIHdpdGggKnByZWZpeCouCiAKIAogLi4gZnVuY3Rpb246OiBzcGxpdF9xdW90ZWQocykKZGlmZiAtLWdpdCBhL0RvYy9leHRlbmRpbmcvZXh0ZW5kaW5nLnJzdCBiL0RvYy9leHRlbmRpbmcvZXh0ZW5kaW5nLnJzdAppbmRleCBjNGNlZDFhLi4zMjYxNTgwIDEwMDY0NAotLS0gYS9Eb2MvZXh0ZW5kaW5nL2V4dGVuZGluZy5yc3QKKysrIGIvRG9jL2V4dGVuZGluZy9leHRlbmRpbmcucnN0CkBAIC0zMjEsNyArMzIxLDcgQEAKIAogVGhlIDpjb25zdDpgTUVUSF9LRVlXT1JEU2AgYml0IG1heSBiZSBzZXQgaW4gdGhlIHRoaXJkIGZpZWxkIGlmIGtleXdvcmQKIGFyZ3VtZW50cyBzaG91bGQgYmUgcGFzc2VkIHRvIHRoZSBmdW5jdGlvbi4gIEluIHRoaXMgY2FzZSwgdGhlIEMgZnVuY3Rpb24gc2hvdWxkCi1hY2NlcHQgYSB0aGlyZCBgYFB5T2JqZWN0IFwqYGAgcGFyYW1ldGVyIHdoaWNoIHdpbGwgYmUgYSBkaWN0aW9uYXJ5IG9mIGtleXdvcmRzLgorYWNjZXB0IGEgdGhpcmQgYGBQeU9iamVjdCAqYGAgcGFyYW1ldGVyIHdoaWNoIHdpbGwgYmUgYSBkaWN0aW9uYXJ5IG9mIGtleXdvcmRzLgogVXNlIDpjOmZ1bmM6YFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3Jkc2AgdG8gcGFyc2UgdGhlIGFyZ3VtZW50cyB0byBzdWNoIGEKIGZ1bmN0aW9uLgogCkBAIC0zODQsOSArMzg0LDYgQEAKICAgICAgICAgICBpbXBvcnRzIGl0LiAqLwogICAgICAgIFB5SW1wb3J0X0ltcG9ydE1vZHVsZSgic3BhbSIpOwogCi1BbiBleGFtcGxlIG1heSBiZSBmb3VuZCBpbiB0aGUgZmlsZSA6ZmlsZTpgRGVtby9lbWJlZC9kZW1vLmNgIGluIHRoZSBQeXRob24KLXNvdXJjZSBkaXN0cmlidXRpb24uCi0KIC4uIG5vdGU6OgogCiAgICBSZW1vdmluZyBlbnRyaWVzIGZyb20gYGBzeXMubW9kdWxlc2BgIG9yIGltcG9ydGluZyBjb21waWxlZCBtb2R1bGVzIGludG8KZGlmZiAtLWdpdCBhL0RvYy9leHRlbmRpbmcvbmV3dHlwZXMucnN0IGIvRG9jL2V4dGVuZGluZy9uZXd0eXBlcy5yc3QKaW5kZXggOGYxODI1My4uYjkwZDM1YyAxMDA2NDQKLS0tIGEvRG9jL2V4dGVuZGluZy9uZXd0eXBlcy5yc3QKKysrIGIvRG9jL2V4dGVuZGluZy9uZXd0eXBlcy5yc3QKQEAgLTI2LDExICsyNiwxMiBAQAogPT09PT09PT09PQogCiBUaGUgUHl0aG9uIHJ1bnRpbWUgc2VlcyBhbGwgUHl0aG9uIG9iamVjdHMgYXMgdmFyaWFibGVzIG9mIHR5cGUKLTpjOnR5cGU6YFB5T2JqZWN0XCpgLiAgQSA6Yzp0eXBlOmBQeU9iamVjdGAgaXMgbm90IGEgdmVyeSBtYWduaWZpY2VudCBvYmplY3QgLSBpdAotanVzdCBjb250YWlucyB0aGUgcmVmY291bnQgYW5kIGEgcG9pbnRlciB0byB0aGUgb2JqZWN0J3MgInR5cGUgb2JqZWN0Ii4gIFRoaXMgaXMKLXdoZXJlIHRoZSBhY3Rpb24gaXM7IHRoZSB0eXBlIG9iamVjdCBkZXRlcm1pbmVzIHdoaWNoIChDKSBmdW5jdGlvbnMgZ2V0IGNhbGxlZAotd2hlbiwgZm9yIGluc3RhbmNlLCBhbiBhdHRyaWJ1dGUgZ2V0cyBsb29rZWQgdXAgb24gYW4gb2JqZWN0IG9yIGl0IGlzIG11bHRpcGxpZWQKLWJ5IGFub3RoZXIgb2JqZWN0LiAgVGhlc2UgQyBmdW5jdGlvbnMgYXJlIGNhbGxlZCAidHlwZSBtZXRob2RzIi4KKzpjOnR5cGU6YFB5T2JqZWN0XCpgLCB3aGljaCBzZXJ2ZXMgYXMgYSAiYmFzZSB0eXBlIiBmb3IgYWxsIFB5dGhvbiBvYmplY3RzLgorOmM6dHlwZTpgUHlPYmplY3RgIGl0c2VsZiBvbmx5IGNvbnRhaW5zIHRoZSByZWZjb3VudCBhbmQgYSBwb2ludGVyIHRvIHRoZQorb2JqZWN0J3MgInR5cGUgb2JqZWN0Ii4gIFRoaXMgaXMgd2hlcmUgdGhlIGFjdGlvbiBpczsgdGhlIHR5cGUgb2JqZWN0IGRldGVybWluZXMKK3doaWNoIChDKSBmdW5jdGlvbnMgZ2V0IGNhbGxlZCB3aGVuLCBmb3IgaW5zdGFuY2UsIGFuIGF0dHJpYnV0ZSBnZXRzIGxvb2tlZAordXAgb24gYW4gb2JqZWN0IG9yIGl0IGlzIG11bHRpcGxpZWQgYnkgYW5vdGhlciBvYmplY3QuICBUaGVzZSBDIGZ1bmN0aW9ucworYXJlIGNhbGxlZCAidHlwZSBtZXRob2RzIi4KIAogU28sIGlmIHlvdSB3YW50IHRvIGRlZmluZSBhIG5ldyBvYmplY3QgdHlwZSwgeW91IG5lZWQgdG8gY3JlYXRlIGEgbmV3IHR5cGUKIG9iamVjdC4KQEAgLTUwLDE1ICs1MSwxNSBAQAogICAgICAgIFB5T2JqZWN0X0hFQUQKICAgIH0gbm9kZHlfTm9kZHlPYmplY3Q7CiAKLVRoaXMgaXMgd2hhdCBhIE5vZGR5IG9iamVjdCB3aWxsIGNvbnRhaW4tLS1pbiB0aGlzIGNhc2UsIG5vdGhpbmcgbW9yZSB0aGFuIGV2ZXJ5Ci1QeXRob24gb2JqZWN0IGNvbnRhaW5zLCBuYW1lbHkgYSByZWZjb3VudCBhbmQgYSBwb2ludGVyIHRvIGEgdHlwZSBvYmplY3QuICBUaGVzZQotYXJlIHRoZSBmaWVsZHMgdGhlIGBgUHlPYmplY3RfSEVBRGBgIG1hY3JvIGJyaW5ncyBpbi4gIFRoZSByZWFzb24gZm9yIHRoZSBtYWNybwotaXMgdG8gc3RhbmRhcmRpemUgdGhlIGxheW91dCBhbmQgdG8gZW5hYmxlIHNwZWNpYWwgZGVidWdnaW5nIGZpZWxkcyBpbiBkZWJ1ZwotYnVpbGRzLiAgTm90ZSB0aGF0IHRoZXJlIGlzIG5vIHNlbWljb2xvbiBhZnRlciB0aGUgYGBQeU9iamVjdF9IRUFEYGAgbWFjcm87IG9uZQotaXMgaW5jbHVkZWQgaW4gdGhlIG1hY3JvIGRlZmluaXRpb24uICBCZSB3YXJ5IG9mIGFkZGluZyBvbmUgYnkgYWNjaWRlbnQ7IGl0J3MKLWVhc3kgdG8gZG8gZnJvbSBoYWJpdCwgYW5kIHlvdXIgY29tcGlsZXIgbWlnaHQgbm90IGNvbXBsYWluLCBidXQgc29tZW9uZSBlbHNlJ3MKLXByb2JhYmx5IHdpbGwhICAoT24gV2luZG93cywgTVNWQyBpcyBrbm93biB0byBjYWxsIHRoaXMgYW4gZXJyb3IgYW5kIHJlZnVzZSB0bwotY29tcGlsZSB0aGUgY29kZS4pCitUaGlzIGlzIHdoYXQgYSBOb2RkeSBvYmplY3Qgd2lsbCBjb250YWluLS0taW4gdGhpcyBjYXNlLCBub3RoaW5nIG1vcmUgdGhhbiB3aGF0CitldmVyeSBQeXRob24gb2JqZWN0IGNvbnRhaW5zLS0tYSByZWZjb3VudCBhbmQgYSBwb2ludGVyIHRvIGEgdHlwZSBvYmplY3QuCitUaGVzZSBhcmUgdGhlIGZpZWxkcyB0aGUgYGBQeU9iamVjdF9IRUFEYGAgbWFjcm8gYnJpbmdzIGluLiAgVGhlIHJlYXNvbiBmb3IgdGhlCittYWNybyBpcyB0byBzdGFuZGFyZGl6ZSB0aGUgbGF5b3V0IGFuZCB0byBlbmFibGUgc3BlY2lhbCBkZWJ1Z2dpbmcgZmllbGRzIGluCitkZWJ1ZyBidWlsZHMuICBOb3RlIHRoYXQgdGhlcmUgaXMgbm8gc2VtaWNvbG9uIGFmdGVyIHRoZSBgYFB5T2JqZWN0X0hFQURgYAorbWFjcm87IG9uZSBpcyBpbmNsdWRlZCBpbiB0aGUgbWFjcm8gZGVmaW5pdGlvbi4gIEJlIHdhcnkgb2YgYWRkaW5nIG9uZSBieQorYWNjaWRlbnQ7IGl0J3MgZWFzeSB0byBkbyBmcm9tIGhhYml0LCBhbmQgeW91ciBjb21waWxlciBtaWdodCBub3QgY29tcGxhaW4sCitidXQgc29tZW9uZSBlbHNlJ3MgcHJvYmFibHkgd2lsbCEgIChPbiBXaW5kb3dzLCBNU1ZDIGlzIGtub3duIHRvIGNhbGwgdGhpcyBhbgorZXJyb3IgYW5kIHJlZnVzZSB0byBjb21waWxlIHRoZSBjb2RlLikKIAogRm9yIGNvbnRyYXN0LCBsZXQncyB0YWtlIGEgbG9vayBhdCB0aGUgY29ycmVzcG9uZGluZyBkZWZpbml0aW9uIGZvciBzdGFuZGFyZAogUHl0aG9uIGZsb2F0czo6CkBAIC0yMjQsNyArMjI1LDcgQEAKIEFkZGluZyBkYXRhIGFuZCBtZXRob2RzIHRvIHRoZSBCYXNpYyBleGFtcGxlCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1MZXQncyBleHBlbmQgdGhlIGJhc2ljIGV4YW1wbGUgdG8gYWRkIHNvbWUgZGF0YSBhbmQgbWV0aG9kcy4gIExldCdzIGFsc28gbWFrZQorTGV0J3MgZXh0ZW5kIHRoZSBiYXNpYyBleGFtcGxlIHRvIGFkZCBzb21lIGRhdGEgYW5kIG1ldGhvZHMuICBMZXQncyBhbHNvIG1ha2UKIHRoZSB0eXBlIHVzYWJsZSBhcyBhIGJhc2UgY2xhc3MuIFdlJ2xsIGNyZWF0ZSBhIG5ldyBtb2R1bGUsIDptb2Q6YG5vZGR5MmAgdGhhdAogYWRkcyB0aGVzZSBjYXBhYmlsaXRpZXM6CiAKQEAgLTI4OCwxOCArMjg5LDE2IEBACiAgICAgICAgc2VsZiA9IChOb2RkeSAqKXR5cGUtPnRwX2FsbG9jKHR5cGUsIDApOwogICAgICAgIGlmIChzZWxmICE9IE5VTEwpIHsKICAgICAgICAgICAgc2VsZi0+Zmlyc3QgPSBQeVN0cmluZ19Gcm9tU3RyaW5nKCIiKTsKLSAgICAgICAgICAgaWYgKHNlbGYtPmZpcnN0ID09IE5VTEwpCi0gICAgICAgICAgICAgeworICAgICAgICAgICBpZiAoc2VsZi0+Zmlyc3QgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgUHlfREVDUkVGKHNlbGYpOwogICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgfQorICAgICAgICAgICB9CiAKICAgICAgICAgICAgc2VsZi0+bGFzdCA9IFB5U3RyaW5nX0Zyb21TdHJpbmcoIiIpOwotICAgICAgICAgICBpZiAoc2VsZi0+bGFzdCA9PSBOVUxMKQotICAgICAgICAgICAgIHsKKyAgICAgICAgICAgaWYgKHNlbGYtPmxhc3QgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgUHlfREVDUkVGKHNlbGYpOwogICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgfQorICAgICAgICAgICB9CiAKICAgICAgICAgICAgc2VsZi0+bnVtYmVyID0gMDsKICAgICAgICB9CkBAIC0zMjcsOCArMzI2LDggQEAKIGNyZWF0ZWQuIE5ldyBtZXRob2RzIGFsd2F5cyBhY2NlcHQgcG9zaXRpb25hbCBhbmQga2V5d29yZCBhcmd1bWVudHMsIGJ1dCB0aGV5CiBvZnRlbiBpZ25vcmUgdGhlIGFyZ3VtZW50cywgbGVhdmluZyB0aGUgYXJndW1lbnQgaGFuZGxpbmcgdG8gaW5pdGlhbGl6ZXIKIG1ldGhvZHMuIE5vdGUgdGhhdCBpZiB0aGUgdHlwZSBzdXBwb3J0cyBzdWJjbGFzc2luZywgdGhlIHR5cGUgcGFzc2VkIG1heSBub3QgYmUKLXRoZSB0eXBlIGJlaW5nIGRlZmluZWQuICBUaGUgbmV3IG1ldGhvZCBjYWxscyB0aGUgdHBfYWxsb2Mgc2xvdCB0byBhbGxvY2F0ZQotbWVtb3J5LiBXZSBkb24ndCBmaWxsIHRoZSA6YXR0cjpgdHBfYWxsb2NgIHNsb3Qgb3Vyc2VsdmVzLiBSYXRoZXIKK3RoZSB0eXBlIGJlaW5nIGRlZmluZWQuICBUaGUgbmV3IG1ldGhvZCBjYWxscyB0aGUgOmF0dHI6YHRwX2FsbG9jYCBzbG90IHRvCithbGxvY2F0ZSBtZW1vcnkuIFdlIGRvbid0IGZpbGwgdGhlIDphdHRyOmB0cF9hbGxvY2Agc2xvdCBvdXJzZWx2ZXMuIFJhdGhlcgogOmM6ZnVuYzpgUHlUeXBlX1JlYWR5YCBmaWxscyBpdCBmb3IgdXMgYnkgaW5oZXJpdGluZyBpdCBmcm9tIG91ciBiYXNlIGNsYXNzLAogd2hpY2ggaXMgOmNsYXNzOmBvYmplY3RgIGJ5IGRlZmF1bHQuICBNb3N0IHR5cGVzIHVzZSB0aGUgZGVmYXVsdCBhbGxvY2F0aW9uLgogCkBAIC00NDUsMTUgKzQ0NCw2IEBACiAgICBzdGF0aWMgUHlPYmplY3QgKgogICAgTm9kZHlfbmFtZShOb2RkeSogc2VsZikKICAgIHsKLSAgICAgICBzdGF0aWMgUHlPYmplY3QgKmZvcm1hdCA9IE5VTEw7Ci0gICAgICAgUHlPYmplY3QgKmFyZ3MsICpyZXN1bHQ7Ci0KLSAgICAgICBpZiAoZm9ybWF0ID09IE5VTEwpIHsKLSAgICAgICAgICAgZm9ybWF0ID0gUHlTdHJpbmdfRnJvbVN0cmluZygiJXMgJXMiKTsKLSAgICAgICAgICAgaWYgKGZvcm1hdCA9PSBOVUxMKQotICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgfQotCiAgICAgICAgaWYgKHNlbGYtPmZpcnN0ID09IE5VTEwpIHsKICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0F0dHJpYnV0ZUVycm9yLCAiZmlyc3QiKTsKICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC00NjQsMjAgKzQ1NCwxMyBAQAogICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICB9CiAKLSAgICAgICBhcmdzID0gUHlfQnVpbGRWYWx1ZSgiT08iLCBzZWxmLT5maXJzdCwgc2VsZi0+bGFzdCk7Ci0gICAgICAgaWYgKGFyZ3MgPT0gTlVMTCkKLSAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICAgICByZXN1bHQgPSBQeVN0cmluZ19Gb3JtYXQoZm9ybWF0LCBhcmdzKTsKLSAgICAgICBQeV9ERUNSRUYoYXJncyk7Ci0KLSAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJVMgJVMiLCBzZWxmLT5maXJzdCwgc2VsZi0+bGFzdCk7CiAgICB9CiAKIFRoZSBtZXRob2QgaXMgaW1wbGVtZW50ZWQgYXMgYSBDIGZ1bmN0aW9uIHRoYXQgdGFrZXMgYSA6Y2xhc3M6YE5vZGR5YCAob3IKIDpjbGFzczpgTm9kZHlgIHN1YmNsYXNzKSBpbnN0YW5jZSBhcyB0aGUgZmlyc3QgYXJndW1lbnQuICBNZXRob2RzIGFsd2F5cyB0YWtlIGFuCiBpbnN0YW5jZSBhcyB0aGUgZmlyc3QgYXJndW1lbnQuIE1ldGhvZHMgb2Z0ZW4gdGFrZSBwb3NpdGlvbmFsIGFuZCBrZXl3b3JkCi1hcmd1bWVudHMgYXMgd2VsbCwgYnV0IGluIHRoaXMgY2FzZWQgd2UgZG9uJ3QgdGFrZSBhbnkgYW5kIGRvbid0IG5lZWQgdG8gYWNjZXB0Cithcmd1bWVudHMgYXMgd2VsbCwgYnV0IGluIHRoaXMgY2FzZSB3ZSBkb24ndCB0YWtlIGFueSBhbmQgZG9uJ3QgbmVlZCB0byBhY2NlcHQKIGEgcG9zaXRpb25hbCBhcmd1bWVudCB0dXBsZSBvciBrZXl3b3JkIGFyZ3VtZW50IGRpY3Rpb25hcnkuIFRoaXMgbWV0aG9kIGlzCiBlcXVpdmFsZW50IHRvIHRoZSBQeXRob24gbWV0aG9kOjoKIApAQCAtMTEyNCw5ICsxMTA3LDYgQEAKIGF0IHRoZSBlbmQ7IGl0IGlzIGEgc2VudGluZWwgdGhhdCBtYXJrcyB0aGUgZW5kIG9mIHRoZSBhcnJheS4gIFRoZQogOmF0dHI6YG1sX25hbWVgIGZpZWxkIG9mIHRoZSBzZW50aW5lbCBtdXN0IGJlICpOVUxMKi4KIAotWFhYIE5lZWQgdG8gcmVmZXIgdG8gc29tZSB1bmlmaWVkIGRpc2N1c3Npb24gb2YgdGhlIHN0cnVjdHVyZSBmaWVsZHMsIHNoYXJlZAotd2l0aCB0aGUgbmV4dCBzZWN0aW9uLgotCiBUaGUgc2Vjb25kIHRhYmxlIGlzIHVzZWQgdG8gZGVmaW5lIGF0dHJpYnV0ZXMgd2hpY2ggbWFwIGRpcmVjdGx5IHRvIGRhdGEgc3RvcmVkCiBpbiB0aGUgaW5zdGFuY2UuICBBIHZhcmlldHkgb2YgcHJpbWl0aXZlIEMgdHlwZXMgYXJlIHN1cHBvcnRlZCwgYW5kIGFjY2VzcyBtYXkKIGJlIHJlYWQtb25seSBvciByZWFkLXdyaXRlLiAgVGhlIHN0cnVjdHVyZXMgaW4gdGhlIHRhYmxlIGFyZSBkZWZpbmVkIGFzOjoKQEAgLTExNDYsOCArMTEyNiw2IEBACiBjb252ZXJ0IFB5dGhvbiB2YWx1ZXMgdG8gYW5kIGZyb20gQyB2YWx1ZXMuICBUaGUgOmF0dHI6YGZsYWdzYCBmaWVsZCBpcyB1c2VkIHRvCiBzdG9yZSBmbGFncyB3aGljaCBjb250cm9sIGhvdyB0aGUgYXR0cmlidXRlIGNhbiBiZSBhY2Nlc3NlZC4KIAotWFhYIE5lZWQgdG8gbW92ZSBzb21lIG9mIHRoaXMgdG8gYSBzaGFyZWQgc2VjdGlvbiEKLQogVGhlIGZvbGxvd2luZyBmbGFnIGNvbnN0YW50cyBhcmUgZGVmaW5lZCBpbiA6ZmlsZTpgc3RydWN0bWVtYmVyLmhgOyB0aGV5IG1heSBiZQogY29tYmluZWQgdXNpbmcgYml0d2lzZS1PUi4KIApAQCAtMTM3Miw3ICsxMzUwLDcgQEAKICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgfQogCi1YWFggc29tZSBmaWVsZHMgbmVlZCB0byBiZSBhZGRlZCBoZXJlLi4uIDo6Cis6OgogCiAgICAvKiBJdGVyYXRvcnMgKi8KICAgIGdldGl0ZXJmdW5jIHRwX2l0ZXI7CmRpZmYgLS1naXQgYS9Eb2MvZmFxL2Rlc2lnbi5yc3QgYi9Eb2MvZmFxL2Rlc2lnbi5yc3QKaW5kZXggN2M1MTE2ZC4uNmI4YThmZCAxMDA2NDQKLS0tIGEvRG9jL2ZhcS9kZXNpZ24ucnN0CisrKyBiL0RvYy9mYXEvZGVzaWduLnJzdApAQCAtNTE1LDE0ICs1MTUsMTYgQEAKIAogRGljdGlvbmFyaWVzIHdvcmsgYnkgY29tcHV0aW5nIGEgaGFzaCBjb2RlIGZvciBlYWNoIGtleSBzdG9yZWQgaW4gdGhlIGRpY3Rpb25hcnkKIHVzaW5nIHRoZSA6ZnVuYzpgaGFzaGAgYnVpbHQtaW4gZnVuY3Rpb24uICBUaGUgaGFzaCBjb2RlIHZhcmllcyB3aWRlbHkgZGVwZW5kaW5nCi1vbiB0aGUga2V5OyBmb3IgZXhhbXBsZSwgIlB5dGhvbiIgaGFzaGVzIHRvIC01MzkyOTQyOTYgd2hpbGUgInB5dGhvbiIsIGEgc3RyaW5nCi10aGF0IGRpZmZlcnMgYnkgYSBzaW5nbGUgYml0LCBoYXNoZXMgdG8gMTE0MjMzMTk3Ni4gIFRoZSBoYXNoIGNvZGUgaXMgdGhlbiB1c2VkCi10byBjYWxjdWxhdGUgYSBsb2NhdGlvbiBpbiBhbiBpbnRlcm5hbCBhcnJheSB3aGVyZSB0aGUgdmFsdWUgd2lsbCBiZSBzdG9yZWQuCi1Bc3N1bWluZyB0aGF0IHlvdSdyZSBzdG9yaW5nIGtleXMgdGhhdCBhbGwgaGF2ZSBkaWZmZXJlbnQgaGFzaCB2YWx1ZXMsIHRoaXMKLW1lYW5zIHRoYXQgZGljdGlvbmFyaWVzIHRha2UgY29uc3RhbnQgdGltZSAtLSBPKDEpLCBpbiBjb21wdXRlciBzY2llbmNlIG5vdGF0aW9uCi0tLSB0byByZXRyaWV2ZSBhIGtleS4gIEl0IGFsc28gbWVhbnMgdGhhdCBubyBzb3J0ZWQgb3JkZXIgb2YgdGhlIGtleXMgaXMKLW1haW50YWluZWQsIGFuZCB0cmF2ZXJzaW5nIHRoZSBhcnJheSBhcyB0aGUgYGAua2V5cygpYGAgYW5kIGBgLml0ZW1zKClgYCBkbyB3aWxsCi1vdXRwdXQgdGhlIGRpY3Rpb25hcnkncyBjb250ZW50IGluIHNvbWUgYXJiaXRyYXJ5IGp1bWJsZWQgb3JkZXIuCitvbiB0aGUga2V5IGFuZCBhIHBlci1wcm9jZXNzIHNlZWQ7IGZvciBleGFtcGxlLCAiUHl0aG9uIiBjb3VsZCBoYXNoIHRvCistNTM5Mjk0Mjk2IHdoaWxlICJweXRob24iLCBhIHN0cmluZyB0aGF0IGRpZmZlcnMgYnkgYSBzaW5nbGUgYml0LCBjb3VsZCBoYXNoCit0byAxMTQyMzMxOTc2LiAgVGhlIGhhc2ggY29kZSBpcyB0aGVuIHVzZWQgdG8gY2FsY3VsYXRlIGEgbG9jYXRpb24gaW4gYW4KK2ludGVybmFsIGFycmF5IHdoZXJlIHRoZSB2YWx1ZSB3aWxsIGJlIHN0b3JlZC4gIEFzc3VtaW5nIHRoYXQgeW91J3JlIHN0b3JpbmcKK2tleXMgdGhhdCBhbGwgaGF2ZSBkaWZmZXJlbnQgaGFzaCB2YWx1ZXMsIHRoaXMgbWVhbnMgdGhhdCBkaWN0aW9uYXJpZXMgdGFrZQorY29uc3RhbnQgdGltZSAtLSBPKDEpLCBpbiBjb21wdXRlciBzY2llbmNlIG5vdGF0aW9uIC0tIHRvIHJldHJpZXZlIGEga2V5LiAgSXQKK2Fsc28gbWVhbnMgdGhhdCBubyBzb3J0ZWQgb3JkZXIgb2YgdGhlIGtleXMgaXMgbWFpbnRhaW5lZCwgYW5kIHRyYXZlcnNpbmcgdGhlCithcnJheSBhcyB0aGUgYGAua2V5cygpYGAgYW5kIGBgLml0ZW1zKClgYCBkbyB3aWxsIG91dHB1dCB0aGUgZGljdGlvbmFyeSdzCitjb250ZW50IGluIHNvbWUgYXJiaXRyYXJ5IGp1bWJsZWQgb3JkZXIgdGhhdCBjYW4gY2hhbmdlIHdpdGggZXZlcnkgaW52b2NhdGlvbiBvZgorYSBwcm9ncmFtLgogCiAKIFdoeSBtdXN0IGRpY3Rpb25hcnkga2V5cyBiZSBpbW11dGFibGU/CkBAIC02MzQsNyArNjM2LDcgQEAKIFB5dGhvbiAyLjYgYWRkcyBhbiA6bW9kOmBhYmNgIG1vZHVsZSB0aGF0IGxldHMgeW91IGRlZmluZSBBYnN0cmFjdCBCYXNlIENsYXNzZXMKIChBQkNzKS4gIFlvdSBjYW4gdGhlbiB1c2UgOmZ1bmM6YGlzaW5zdGFuY2VgIGFuZCA6ZnVuYzpgaXNzdWJjbGFzc2AgdG8gY2hlY2sKIHdoZXRoZXIgYW4gaW5zdGFuY2Ugb3IgYSBjbGFzcyBpbXBsZW1lbnRzIGEgcGFydGljdWxhciBBQkMuICBUaGUKLTptb2Q6YGNvbGxlY3Rpb25zYCBtb2R1bGUgZGVmaW5lcyBhIHNldCBvZiB1c2VmdWwgQUJDcyBzdWNoIGFzCis6bW9kOmBjb2xsZWN0aW9ucy5hYmNgIG1vZHVsZSBkZWZpbmVzIGEgc2V0IG9mIHVzZWZ1bCBBQkNzIHN1Y2ggYXMKIDpjbGFzczpgSXRlcmFibGVgLCA6Y2xhc3M6YENvbnRhaW5lcmAsIGFuZCA6Y2xhc3M6YE11dGFibGVNYXBwaW5nYC4KIAogRm9yIFB5dGhvbiwgbWFueSBvZiB0aGUgYWR2YW50YWdlcyBvZiBpbnRlcmZhY2Ugc3BlY2lmaWNhdGlvbnMgY2FuIGJlIG9idGFpbmVkCmRpZmYgLS1naXQgYS9Eb2MvZmFxL2V4dGVuZGluZy5yc3QgYi9Eb2MvZmFxL2V4dGVuZGluZy5yc3QKaW5kZXggN2M2ODRhMC4uZmEyNDVjNyAxMDA2NDQKLS0tIGEvRG9jL2ZhcS9leHRlbmRpbmcucnN0CisrKyBiL0RvYy9mYXEvZXh0ZW5kaW5nLnJzdApAQCAtNDQ1LDM0ICs0NDUsMyBAQAogVGhlIEJvb3N0IFB5dGhvbiBMaWJyYXJ5IChCUEwsIGh0dHA6Ly93d3cuYm9vc3Qub3JnL2xpYnMvcHl0aG9uL2RvYy9pbmRleC5odG1sKQogcHJvdmlkZXMgYSB3YXkgb2YgZG9pbmcgdGhpcyBmcm9tIEMrKyAoaS5lLiB5b3UgY2FuIGluaGVyaXQgZnJvbSBhbiBleHRlbnNpb24KIGNsYXNzIHdyaXR0ZW4gaW4gQysrIHVzaW5nIHRoZSBCUEwpLgotCi0KLVdoZW4gaW1wb3J0aW5nIG1vZHVsZSBYLCB3aHkgZG8gSSBnZXQgInVuZGVmaW5lZCBzeW1ib2w6IFB5VW5pY29kZVVDUzIqIj8KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotWW91IGFyZSB1c2luZyBhIHZlcnNpb24gb2YgUHl0aG9uIHRoYXQgdXNlcyBhIDQtYnl0ZSByZXByZXNlbnRhdGlvbiBmb3IgVW5pY29kZQotY2hhcmFjdGVycywgYnV0IHNvbWUgQyBleHRlbnNpb24gbW9kdWxlIHlvdSBhcmUgaW1wb3J0aW5nIHdhcyBjb21waWxlZCB1c2luZyBhCi1QeXRob24gdGhhdCB1c2VzIGEgMi1ieXRlIHJlcHJlc2VudGF0aW9uIGZvciBVbmljb2RlIGNoYXJhY3RlcnMgKHRoZSBkZWZhdWx0KS4KLQotSWYgaW5zdGVhZCB0aGUgbmFtZSBvZiB0aGUgdW5kZWZpbmVkIHN5bWJvbCBzdGFydHMgd2l0aCBgYFB5VW5pY29kZVVDUzRgYCwgdGhlCi1wcm9ibGVtIGlzIHRoZSByZXZlcnNlOiBQeXRob24gd2FzIGJ1aWx0IHVzaW5nIDItYnl0ZSBVbmljb2RlIGNoYXJhY3RlcnMsIGFuZAotdGhlIGV4dGVuc2lvbiBtb2R1bGUgd2FzIGNvbXBpbGVkIHVzaW5nIGEgUHl0aG9uIHdpdGggNC1ieXRlIFVuaWNvZGUgY2hhcmFjdGVycy4KLQotVGhpcyBjYW4gZWFzaWx5IG9jY3VyIHdoZW4gdXNpbmcgcHJlLWJ1aWx0IGV4dGVuc2lvbiBwYWNrYWdlcy4gIFJlZEhhdCBMaW51eAotNy54LCBpbiBwYXJ0aWN1bGFyLCBwcm92aWRlZCBhICJweXRob24yIiBiaW5hcnkgdGhhdCBpcyBjb21waWxlZCB3aXRoIDQtYnl0ZQotVW5pY29kZS4gIFRoaXMgb25seSBjYXVzZXMgdGhlIGxpbmsgZmFpbHVyZSBpZiB0aGUgZXh0ZW5zaW9uIHVzZXMgYW55IG9mIHRoZQotYGBQeVVuaWNvZGVfKigpYGAgZnVuY3Rpb25zLiAgSXQgaXMgYWxzbyBhIHByb2JsZW0gaWYgYW4gZXh0ZW5zaW9uIHVzZXMgYW55IG9mCi10aGUgVW5pY29kZS1yZWxhdGVkIGZvcm1hdCBzcGVjaWZpZXJzIGZvciA6YzpmdW5jOmBQeV9CdWlsZFZhbHVlYCAob3Igc2ltaWxhcikgb3IKLXBhcmFtZXRlciBzcGVjaWZpY2F0aW9ucyBmb3IgOmM6ZnVuYzpgUHlBcmdfUGFyc2VUdXBsZWAuCi0KLVlvdSBjYW4gY2hlY2sgdGhlIHNpemUgb2YgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIGEgUHl0aG9uIGludGVycHJldGVyIGlzIHVzaW5nIGJ5Ci1jaGVja2luZyB0aGUgdmFsdWUgb2Ygc3lzLm1heHVuaWNvZGU6Ci0KLSAgID4+PiBpbXBvcnQgc3lzCi0gICA+Pj4gaWYgc3lzLm1heHVuaWNvZGUgPiA2NTUzNToKLSAgIC4uLiAgICAgcHJpbnQoJ1VDUzQgYnVpbGQnKQotICAgLi4uIGVsc2U6Ci0gICAuLi4gICAgIHByaW50KCdVQ1MyIGJ1aWxkJykKLQotVGhlIG9ubHkgd2F5IHRvIHNvbHZlIHRoaXMgcHJvYmxlbSBpcyB0byB1c2UgZXh0ZW5zaW9uIG1vZHVsZXMgY29tcGlsZWQgd2l0aCBhCi1QeXRob24gYmluYXJ5IGJ1aWx0IHVzaW5nIHRoZSBzYW1lIHNpemUgZm9yIFVuaWNvZGUgY2hhcmFjdGVycy4KZGlmZiAtLWdpdCBhL0RvYy9mYXEvbGlicmFyeS5yc3QgYi9Eb2MvZmFxL2xpYnJhcnkucnN0CmluZGV4IDczODVjNTkuLmNhYjJkN2IgMTAwNjQ0Ci0tLSBhL0RvYy9mYXEvbGlicmFyeS5yc3QKKysrIGIvRG9jL2ZhcS9saWJyYXJ5LnJzdApAQCAtMzUxLDcgKzM1MSw3IEBACiAgICBXb3JrZXIgPFRocmVhZCh3b3JrZXIgMSwgc3RhcnRlZCAxMzAyODM4MzI3OTc0NTYpPiBydW5uaW5nIHdpdGggYXJndW1lbnQgNQogICAgLi4uCiAKLUNvbnN1bHQgdGhlIG1vZHVsZSdzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsczsgdGhlIDpjbGFzczpgfnF1ZXVlLlF1ZXVlYGAKK0NvbnN1bHQgdGhlIG1vZHVsZSdzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgZGV0YWlsczsgdGhlIDpjbGFzczpgfnF1ZXVlLlF1ZXVlYAogY2xhc3MgcHJvdmlkZXMgYSBmZWF0dXJlZnVsIGludGVyZmFjZS4KIAogCmRpZmYgLS1naXQgYS9Eb2MvZ2xvc3NhcnkucnN0IGIvRG9jL2dsb3NzYXJ5LnJzdAppbmRleCBiZjEyMzRkLi5jYjY0N2EzIDEwMDY0NAotLS0gYS9Eb2MvZ2xvc3NhcnkucnN0CisrKyBiL0RvYy9nbG9zc2FyeS5yc3QKQEAgLTM0LDcgKzM0LDcgQEAKICAgICAgIHN1YmNsYXNzZXMsIHdoaWNoIGFyZSBjbGFzc2VzIHRoYXQgZG9uJ3QgaW5oZXJpdCBmcm9tIGEgY2xhc3MgYnV0IGFyZQogICAgICAgc3RpbGwgcmVjb2duaXplZCBieSA6ZnVuYzpgaXNpbnN0YW5jZWAgYW5kIDpmdW5jOmBpc3N1YmNsYXNzYDsgc2VlIHRoZQogICAgICAgOm1vZDpgYWJjYCBtb2R1bGUgZG9jdW1lbnRhdGlvbi4gIFB5dGhvbiBjb21lcyB3aXRoIG1hbnkgYnVpbHQtaW4gQUJDcyBmb3IKLSAgICAgIGRhdGEgc3RydWN0dXJlcyAoaW4gdGhlIDptb2Q6YGNvbGxlY3Rpb25zYCBtb2R1bGUpLCBudW1iZXJzIChpbiB0aGUKKyAgICAgIGRhdGEgc3RydWN0dXJlcyAoaW4gdGhlIDptb2Q6YGNvbGxlY3Rpb25zLmFiY2AgbW9kdWxlKSwgbnVtYmVycyAoaW4gdGhlCiAgICAgICA6bW9kOmBudW1iZXJzYCBtb2R1bGUpLCBzdHJlYW1zIChpbiB0aGUgOm1vZDpgaW9gIG1vZHVsZSksIGltcG9ydCBmaW5kZXJzCiAgICAgICBhbmQgbG9hZGVycyAoaW4gdGhlIDptb2Q6YGltcG9ydGxpYi5hYmNgIG1vZHVsZSkuICBZb3UgY2FuIGNyZWF0ZSB5b3VyIG93bgogICAgICAgQUJDcyB3aXRoIHRoZSA6bW9kOmBhYmNgIG1vZHVsZS4KQEAgLTQzNCw4ICs0MzQsOCBAQAogCiAgICBtYXBwaW5nCiAgICAgICBBIGNvbnRhaW5lciBvYmplY3QgdGhhdCBzdXBwb3J0cyBhcmJpdHJhcnkga2V5IGxvb2t1cHMgYW5kIGltcGxlbWVudHMgdGhlCi0gICAgICBtZXRob2RzIHNwZWNpZmllZCBpbiB0aGUgOmNsYXNzOmB+Y29sbGVjdGlvbnMuTWFwcGluZ2Agb3IKLSAgICAgIDpjbGFzczpgfmNvbGxlY3Rpb25zLk11dGFibGVNYXBwaW5nYAorICAgICAgbWV0aG9kcyBzcGVjaWZpZWQgaW4gdGhlIDpjbGFzczpgfmNvbGxlY3Rpb25zLmFiYy5NYXBwaW5nYCBvcgorICAgICAgOmNsYXNzOmB+Y29sbGVjdGlvbnMuYWJjLk11dGFibGVNYXBwaW5nYAogICAgICAgOnJlZjpgYWJzdHJhY3QgYmFzZSBjbGFzc2VzIDxjb2xsZWN0aW9ucy1hYnN0cmFjdC1iYXNlLWNsYXNzZXM+YC4gIEV4YW1wbGVzCiAgICAgICBpbmNsdWRlIDpjbGFzczpgZGljdGAsIDpjbGFzczpgY29sbGVjdGlvbnMuZGVmYXVsdGRpY3RgLAogICAgICAgOmNsYXNzOmBjb2xsZWN0aW9ucy5PcmRlcmVkRGljdGAgYW5kIDpjbGFzczpgY29sbGVjdGlvbnMuQ291bnRlcmAuCkBAIC01MjMsNiArNTIzLDIwIEBACiAgICAgICBkZWZpbml0aW9uKSwgb3IgcGFzcyBzZXZlcmFsIGFyZ3VtZW50cyBhcyBhIGxpc3QgdG8gYSBmdW5jdGlvbi4gIFNlZQogICAgICAgOnRlcm06YGFyZ3VtZW50YC4KIAorICAgcHJvdmlzaW9uYWwgcGFja2FnZQorICAgICAgQSBwcm92aXNpb25hbCBwYWNrYWdlIGlzIG9uZSB3aGljaCBoYXMgYmVlbiBkZWxpYmVyYXRlbHkgZXhjbHVkZWQgZnJvbSB0aGUKKyAgICAgIHN0YW5kYXJkIGxpYnJhcnkncyBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBndWFyYW50ZWVzLiAgV2hpbGUgbWFqb3IKKyAgICAgIGNoYW5nZXMgdG8gc3VjaCBwYWNrYWdlcyBhcmUgbm90IGV4cGVjdGVkLCBhcyBsb25nIGFzIHRoZXkgYXJlIG1hcmtlZAorICAgICAgcHJvdmlzaW9uYWwsIGJhY2t3YXJkcyBpbmNvbXBhdGlibGUgY2hhbmdlcyAodXAgdG8gYW5kIGluY2x1ZGluZyByZW1vdmFsCisgICAgICBvZiB0aGUgcGFja2FnZSkgbWF5IG9jY3VyIGlmIGRlZW1lZCBuZWNlc3NhcnkgYnkgY29yZSBkZXZlbG9wZXJzLiAgU3VjaAorICAgICAgY2hhbmdlcyB3aWxsIG5vdCBiZSBtYWRlIGdyYXR1aXRvdXNseSAtLSB0aGV5IHdpbGwgb2NjdXIgb25seSBpZiBzZXJpb3VzCisgICAgICBmbGF3cyBhcmUgdW5jb3ZlcmVkIHRoYXQgd2VyZSBtaXNzZWQgcHJpb3IgdG8gdGhlIGluY2x1c2lvbiBvZiB0aGUKKyAgICAgIHBhY2thZ2UuCisKKyAgICAgIFRoaXMgcHJvY2VzcyBhbGxvd3MgdGhlIHN0YW5kYXJkIGxpYnJhcnkgdG8gY29udGludWUgdG8gZXZvbHZlIG92ZXIgdGltZSwKKyAgICAgIHdpdGhvdXQgbG9ja2luZyBpbiBwcm9ibGVtYXRpYyBkZXNpZ24gZXJyb3JzIGZvciBleHRlbmRlZCBwZXJpb2RzIG9mIHRpbWUuCisgICAgICBTZWUgOnBlcDpgNDExYCBmb3IgbW9yZSBkZXRhaWxzLgorCiAgICBQeXRob24gMzAwMAogICAgICAgTmlja25hbWUgZm9yIHRoZSBQeXRob24gMy54IHJlbGVhc2UgbGluZSAoY29pbmVkIGxvbmcgYWdvIHdoZW4gdGhlIHJlbGVhc2UKICAgICAgIG9mIHZlcnNpb24gMyB3YXMgc29tZXRoaW5nIGluIHRoZSBkaXN0YW50IGZ1dHVyZS4pICBUaGlzIGlzIGFsc28KQEAgLTU0NCw2ICs1NTgsMjQgQEAKICAgICAgICAgIGZvciBwaWVjZSBpbiBmb29kOgogICAgICAgICAgICAgIHByaW50KHBpZWNlKQogCisgICBxdWFsaWZpZWQgbmFtZQorICAgICAgQSBkb3R0ZWQgbmFtZSBzaG93aW5nIHRoZSAicGF0aCIgZnJvbSBhIG1vZHVsZSdzIGdsb2JhbCBzY29wZSB0byBhCisgICAgICBjbGFzcywgZnVuY3Rpb24gb3IgbWV0aG9kIGRlZmluZWQgaW4gdGhhdCBtb2R1bGUsIGFzIGRlZmluZWQgaW4KKyAgICAgIDpwZXA6YDMxNTVgLiAgRm9yIHRvcC1sZXZlbCBmdW5jdGlvbnMgYW5kIGNsYXNzZXMsIHRoZSBxdWFsaWZpZWQgbmFtZQorICAgICAgaXMgdGhlIHNhbWUgYXMgdGhlIG9iamVjdCdzIG5hbWU6OgorCisgICAgICAgICA+Pj4gY2xhc3MgQzoKKyAgICAgICAgIC4uLiAgICAgY2xhc3MgRDoKKyAgICAgICAgIC4uLiAgICAgICAgIGRlZiBtZXRoKHNlbGYpOgorICAgICAgICAgLi4uICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIC4uLgorICAgICAgICAgPj4+IEMuX19xdWFsbmFtZV9fCisgICAgICAgICAnQycKKyAgICAgICAgID4+PiBDLkQuX19xdWFsbmFtZV9fCisgICAgICAgICAnQy5EJworICAgICAgICAgPj4+IEMuRC5tZXRoLl9fcXVhbG5hbWVfXworICAgICAgICAgJ0MuRC5tZXRoJworCiAgICByZWZlcmVuY2UgY291bnQKICAgICAgIFRoZSBudW1iZXIgb2YgcmVmZXJlbmNlcyB0byBhbiBvYmplY3QuICBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQgb2YgYW4KICAgICAgIG9iamVjdCBkcm9wcyB0byB6ZXJvLCBpdCBpcyBkZWFsbG9jYXRlZC4gIFJlZmVyZW5jZSBjb3VudGluZyBpcwpAQCAtNTg2LDYgKzYxOCwxNCBAQAogICAgICAgYW4gOnRlcm06YGV4cHJlc3Npb25gIG9yIGEgb25lIG9mIHNldmVyYWwgY29uc3RydWN0cyB3aXRoIGEga2V5d29yZCwgc3VjaAogICAgICAgYXMgOmtleXdvcmQ6YGlmYCwgOmtleXdvcmQ6YHdoaWxlYCBvciA6a2V5d29yZDpgZm9yYC4KIAorICAgc3RydWN0IHNlcXVlbmNlCisgICAgICBBIHR1cGxlIHdpdGggbmFtZWQgZWxlbWVudHMuIFN0cnVjdCBzZXF1ZW5jZXMgZXhwb3NlIGFuIGludGVyZmFjZSBzaW1pbGFyCisgICAgICB0byA6dGVybTpgbmFtZWQgdHVwbGVgIGluIHRoYXQgZWxlbWVudHMgY2FuIGVpdGhlciBiZSBhY2Nlc3NlZCBlaXRoZXIgYnkKKyAgICAgIGluZGV4IG9yIGFzIGFuIGF0dHJpYnV0ZS4gSG93ZXZlciwgdGhleSBkbyBub3QgaGF2ZSBhbnkgb2YgdGhlIG5hbWVkIHR1cGxlCisgICAgICBtZXRob2RzIGxpa2UgOm1ldGg6YH5jb2xsZWN0aW9ucy5zb21lbmFtZWR0dXBsZS5fbWFrZWAgb3IKKyAgICAgIDptZXRoOmB+Y29sbGVjdGlvbnMuc29tZW5hbWVkdHVwbGUuX2FzZGljdGAuIEV4YW1wbGVzIG9mIHN0cnVjdCBzZXF1ZW5jZXMKKyAgICAgIGluY2x1ZGUgOmRhdGE6YHN5cy5mbG9hdF9pbmZvYCBhbmQgdGhlIHJldHVybiB2YWx1ZSBvZiA6ZnVuYzpgb3Muc3RhdGAuCisKICAgIHRyaXBsZS1xdW90ZWQgc3RyaW5nCiAgICAgICBBIHN0cmluZyB3aGljaCBpcyBib3VuZCBieSB0aHJlZSBpbnN0YW5jZXMgb2YgZWl0aGVyIGEgcXVvdGF0aW9uIG1hcmsKICAgICAgICgiKSBvciBhbiBhcG9zdHJvcGhlICgnKS4gIFdoaWxlIHRoZXkgZG9uJ3QgcHJvdmlkZSBhbnkgZnVuY3Rpb25hbGl0eQpkaWZmIC0tZ2l0IGEvRG9jL2hvd3RvL2Rlc2NyaXB0b3IucnN0IGIvRG9jL2hvd3RvL2Rlc2NyaXB0b3IucnN0CmluZGV4IDE2MTZmNjcuLjBiNTEzZjkgMTAwNjQ0Ci0tLSBhL0RvYy9ob3d0by9kZXNjcmlwdG9yLnJzdAorKysgYi9Eb2MvaG93dG8vZGVzY3JpcHRvci5yc3QKQEAgLTM2LDkgKzM2LDcgQEAKIGxvb2tlZC11cCB2YWx1ZSBpcyBhbiBvYmplY3QgZGVmaW5pbmcgb25lIG9mIHRoZSBkZXNjcmlwdG9yIG1ldGhvZHMsIHRoZW4gUHl0aG9uCiBtYXkgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYmVoYXZpb3IgYW5kIGludm9rZSB0aGUgZGVzY3JpcHRvciBtZXRob2QgaW5zdGVhZC4KIFdoZXJlIHRoaXMgb2NjdXJzIGluIHRoZSBwcmVjZWRlbmNlIGNoYWluIGRlcGVuZHMgb24gd2hpY2ggZGVzY3JpcHRvciBtZXRob2RzCi13ZXJlIGRlZmluZWQuICBOb3RlIHRoYXQgZGVzY3JpcHRvcnMgYXJlIG9ubHkgaW52b2tlZCBmb3IgbmV3IHN0eWxlIG9iamVjdHMgb3IKLWNsYXNzZXMgKGEgY2xhc3MgaXMgbmV3IHN0eWxlIGlmIGl0IGluaGVyaXRzIGZyb20gOmNsYXNzOmBvYmplY3RgIG9yCi06Y2xhc3M6YHR5cGVgKS4KK3dlcmUgZGVmaW5lZC4KIAogRGVzY3JpcHRvcnMgYXJlIGEgcG93ZXJmdWwsIGdlbmVyYWwgcHVycG9zZSBwcm90b2NvbC4gIFRoZXkgYXJlIHRoZSBtZWNoYW5pc20KIGJlaGluZCBwcm9wZXJ0aWVzLCBtZXRob2RzLCBzdGF0aWMgbWV0aG9kcywgY2xhc3MgbWV0aG9kcywgYW5kIDpmdW5jOmBzdXBlcigpYC4KQEAgLTg5LDggKzg3LDYgQEAKIGlzIGludm9rZWQgYWNjb3JkaW5nIHRvIHRoZSBwcmVjZWRlbmNlIHJ1bGVzIGxpc3RlZCBiZWxvdy4KIAogVGhlIGRldGFpbHMgb2YgaW52b2NhdGlvbiBkZXBlbmQgb24gd2hldGhlciBgYG9iamBgIGlzIGFuIG9iamVjdCBvciBhIGNsYXNzLgotRWl0aGVyIHdheSwgZGVzY3JpcHRvcnMgb25seSB3b3JrIGZvciBuZXcgc3R5bGUgb2JqZWN0cyBhbmQgY2xhc3Nlcy4gIEEgY2xhc3MgaXMKLW5ldyBzdHlsZSBpZiBpdCBpcyBhIHN1YmNsYXNzIG9mIDpjbGFzczpgb2JqZWN0YC4KIAogRm9yIG9iamVjdHMsIHRoZSBtYWNoaW5lcnkgaXMgaW4gOm1ldGg6YG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fYCB3aGljaAogdHJhbnNmb3JtcyBgYGIueGBgIGludG8gYGB0eXBlKGIpLl9fZGljdF9fWyd4J10uX19nZXRfXyhiLCB0eXBlKGIpKWBgLiAgVGhlCkBAIC0xMTUsNyArMTExLDYgQEAKIAogKiBkZXNjcmlwdG9ycyBhcmUgaW52b2tlZCBieSB0aGUgOm1ldGg6YF9fZ2V0YXR0cmlidXRlX19gIG1ldGhvZAogKiBvdmVycmlkaW5nIDptZXRoOmBfX2dldGF0dHJpYnV0ZV9fYCBwcmV2ZW50cyBhdXRvbWF0aWMgZGVzY3JpcHRvciBjYWxscwotKiA6bWV0aDpgX19nZXRhdHRyaWJ1dGVfX2AgaXMgb25seSBhdmFpbGFibGUgd2l0aCBuZXcgc3R5bGUgY2xhc3NlcyBhbmQgb2JqZWN0cwogKiA6bWV0aDpgb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX19gIGFuZCA6bWV0aDpgdHlwZS5fX2dldGF0dHJpYnV0ZV9fYCBtYWtlCiAgIGRpZmZlcmVudCBjYWxscyB0byA6bWV0aDpgX19nZXRfX2AuCiAqIGRhdGEgZGVzY3JpcHRvcnMgYWx3YXlzIG92ZXJyaWRlIGluc3RhbmNlIGRpY3Rpb25hcmllcy4KQEAgLTEyOCwxMCArMTIzLDcgQEAKIGBgbWBgIGlzIHJldHVybmVkIHVuY2hhbmdlZC4gIElmIG5vdCBpbiB0aGUgZGljdGlvbmFyeSwgYGBtYGAgcmV2ZXJ0cyB0byBhCiBzZWFyY2ggdXNpbmcgOm1ldGg6YG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fYC4KIAotTm90ZSwgaW4gUHl0aG9uIDIuMiwgYGBzdXBlcihCLCBvYmopLm0oKWBgIHdvdWxkIG9ubHkgaW52b2tlIDptZXRoOmBfX2dldF9fYCBpZgotYGBtYGAgd2FzIGEgZGF0YSBkZXNjcmlwdG9yLiAgSW4gUHl0aG9uIDIuMywgbm9uLWRhdGEgZGVzY3JpcHRvcnMgYWxzbyBnZXQKLWludm9rZWQgdW5sZXNzIGFuIG9sZC1zdHlsZSBjbGFzcyBpcyBpbnZvbHZlZC4gIFRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFyZQotaW4gOmM6ZnVuYzpgc3VwZXJfZ2V0YXR0cm8oKWAgaW4KK1RoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFyZSBpbiA6YzpmdW5jOmBzdXBlcl9nZXRhdHRybygpYCBpbgogYE9iamVjdHMvdHlwZW9iamVjdC5jIDxodHRwOi8vc3ZuLnB5dGhvbi5vcmcvdmlldy9weXRob24vdHJ1bmsvT2JqZWN0cy90eXBlb2JqZWN0LmM/dmlldz1tYXJrdXA+YF8KIGFuZCBhIHB1cmUgUHl0aG9uIGVxdWl2YWxlbnQgY2FuIGJlIGZvdW5kIGluIGBHdWlkbydzIFR1dG9yaWFsYF8uCiAKZGlmZiAtLWdpdCBhL0RvYy9ob3d0by9pbmRleC5yc3QgYi9Eb2MvaG93dG8vaW5kZXgucnN0CmluZGV4IGExMWQzZGEuLmY0NGU4YzAgMTAwNjQ0Ci0tLSBhL0RvYy9ob3d0by9pbmRleC5yc3QKKysrIGIvRG9jL2hvd3RvL2luZGV4LnJzdApAQCAtMjgsNCArMjgsNSBAQAogICAgdXJsbGliMi5yc3QKICAgIHdlYnNlcnZlcnMucnN0CiAgICBhcmdwYXJzZS5yc3QKKyAgIGlwYWRkcmVzcy5yc3QKIApkaWZmIC0tZ2l0IGEvRG9jL2hvd3RvL2lwYWRkcmVzcy5yc3QgYi9Eb2MvaG93dG8vaXBhZGRyZXNzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NjgwZDY1Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jL2hvd3RvL2lwYWRkcmVzcy5yc3QKQEAgLTAsMCArMSwzMzYgQEAKKy4uIF9pcGFkZHJlc3MtaG93dG86CisKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorQW4gSW50cm9kdWN0aW9uIHRvIHRoZSBpcGFkZHJlc3MgbW9kdWxlCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworOmF1dGhvcjogUGV0ZXIgTW9vZHkKKzphdXRob3I6IE5pY2sgQ29naGxhbgorCisuLiB0b3BpYzo6IE92ZXJ2aWV3CisKKyAgIFRoaXMgZG9jdW1lbnQgYWltcyB0byBwcm92aWRlIGEgZ2VudGxlIGludHJvZHVjdGlvbiB0byB0aGUKKyAgIDptb2Q6YGlwYWRkcmVzc2AgbW9kdWxlLiBJdCBpcyBhaW1lZCBwcmltYXJpbHkgYXQgdXNlcnMgdGhhdCBhcmVuJ3QKKyAgIGFscmVhZHkgZmFtaWxpYXIgd2l0aCBJUCBuZXR3b3JraW5nIHRlcm1pbm9sb2d5LCBidXQgbWF5IGFsc28gYmUgdXNlZnVsCisgICB0byBuZXR3b3JrIGVuZ2luZWVycyB3YW50aW5nIGFuIG92ZXJ2aWV3IG9mIGhvdyA6bW9kOmBpcGFkZHJlc3NgCisgICByZXByZXNlbnRzIElQIG5ldHdvcmsgYWRkcmVzc2luZyBjb25jZXB0cy4KKworCitDcmVhdGluZyBBZGRyZXNzL05ldHdvcmsvSW50ZXJmYWNlIG9iamVjdHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitTaW5jZSA6bW9kOmBpcGFkZHJlc3NgIGlzIGEgbW9kdWxlIGZvciBpbnNwZWN0aW5nIGFuZCBtYW5pcHVsYXRpbmcgSVAgYWRkcmVzcywKK3RoZSBmaXJzdCB0aGluZyB5b3UnbGwgd2FudCB0byBkbyBpcyBjcmVhdGUgc29tZSBvYmplY3RzLiAgWW91IGNhbiB1c2UKKzptb2Q6YGlwYWRkcmVzc2AgdG8gY3JlYXRlIG9iamVjdHMgZnJvbSBzdHJpbmdzIGFuZCBpbnRlZ2Vycy4KKworCitBIE5vdGUgb24gSVAgVmVyc2lvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGb3IgcmVhZGVycyB0aGF0IGFyZW4ndCBwYXJ0aWN1bGFybHkgZmFtaWxpYXIgd2l0aCBJUCBhZGRyZXNzaW5nLCBpdCdzCitpbXBvcnRhbnQgdG8ga25vdyB0aGF0IHRoZSBJbnRlcm5ldCBQcm90b2NvbCBpcyBjdXJyZW50bHkgaW4gdGhlIHByb2Nlc3MKK29mIG1vdmluZyBmcm9tIHZlcnNpb24gNCBvZiB0aGUgcHJvdG9jb2wgdG8gdmVyc2lvbiA2LiBUaGlzIHRyYW5zaXRpb24gaXMKK29jY3VycmluZyBsYXJnZWx5IGJlY2F1c2UgdmVyc2lvbiA0IG9mIHRoZSBwcm90b2NvbCBkb2Vzbid0IHByb3ZpZGUgZW5vdWdoCithZGRyZXNzZXMgdG8gaGFuZGxlIHRoZSBuZWVkcyBvZiB0aGUgd2hvbGUgd29ybGQsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlCitpbmNyZWFzaW5nIG51bWJlciBvZiBkZXZpY2VzIHdpdGggZGlyZWN0IGNvbm5lY3Rpb25zIHRvIHRoZSBpbnRlcm5ldC4KKworRXhwbGFpbmluZyB0aGUgZGV0YWlscyBvZiB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgdHdvIHZlcnNpb25zIG9mIHRoZQorcHJvdG9jb2wgaXMgYmV5b25kIHRoZSBzY29wZSBvZiB0aGlzIGludHJvZHVjdGlvbiwgYnV0IHJlYWRlcnMgbmVlZCB0byBhdAorbGVhc3QgYmUgYXdhcmUgdGhhdCB0aGVzZSB0d28gdmVyc2lvbnMgZXhpc3QsIGFuZCBpdCB3aWxsIHNvbWV0aW1lcyBiZQorbmVjZXNzYXJ5IHRvIGZvcmNlIHRoZSB1c2Ugb2Ygb25lIHZlcnNpb24gb3IgdGhlIG90aGVyLgorCisKK0lQIEhvc3QgQWRkcmVzc2VzCistLS0tLS0tLS0tLS0tLS0tLQorCitBZGRyZXNzZXMsIG9mdGVuIHJlZmVycmVkIHRvIGFzICJob3N0IGFkZHJlc3NlcyIgYXJlIHRoZSBtb3N0IGJhc2ljIHVuaXQKK3doZW4gd29ya2luZyB3aXRoIElQIGFkZHJlc3NpbmcuIFRoZSBzaW1wbGVzdCB3YXkgdG8gY3JlYXRlIGFkZHJlc3NlcyBpcwordG8gdXNlIHRoZSA6ZnVuYzpgaXBhZGRyZXNzLmlwX2FkZHJlc3NgIGZhY3RvcnkgZnVuY3Rpb24sIHdoaWNoIGF1dG9tYXRpY2FsbHkKK2RldGVybWluZXMgd2hldGhlciB0byBjcmVhdGUgYW4gSVB2NCBvciBJUHY2IGFkZHJlc3MgYmFzZWQgb24gdGhlIHBhc3NlZCBpbgordmFsdWU6OgorCisgICA+Pj4gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzE5Mi4wLjIuMScpCisgICBJUHY0QWRkcmVzcygnMTkyLjAuMi4xJykKKyAgID4+PiBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMjAwMTpEQjg6OjEnKQorICAgSVB2NkFkZHJlc3MoJzIwMDE6ZGI4OjoxJykKKworQWRkcmVzc2VzIGNhbiBhbHNvIGJlIGNyZWF0ZWQgZGlyZWN0bHkgZnJvbSBpbnRlZ2Vycy4gVmFsdWVzIHRoYXQgd2lsbAorZml0IHdpdGhpbiAzMiBiaXRzIGFyZSBhc3N1bWVkIHRvIGJlIElQdjQgYWRkcmVzc2VzOjoKKworICAgPj4+IGlwYWRkcmVzcy5pcF9hZGRyZXNzKDMyMjEyMjU5ODUpCisgICBJUHY0QWRkcmVzcygnMTkyLjAuMi4xJykKKyAgID4+PiBpcGFkZHJlc3MuaXBfYWRkcmVzcyg0MjU0MDc2NjQxMTI4MjU5Mjg1NjkwMzk4NDk1MTY1MzgyNjU2MSkKKyAgIElQdjZBZGRyZXNzKCcyMDAxOmRiODo6MScpCisKK1RvIGZvcmNlIHRoZSB1c2Ugb2YgSVB2NCBvciBJUHY2IGFkZHJlc3NlcywgdGhlIHJlbGV2YW50IGNsYXNzZXMgY2FuIGJlCitpbnZva2VkIGRpcmVjdGx5LiBUaGlzIGlzIHBhcnRpY3VsYXJseSB1c2VmdWwgdG8gZm9yY2UgY3JlYXRpb24gb2YgSVB2NgorYWRkcmVzc2VzIGZvciBzbWFsbCBpbnRlZ2Vyczo6CisKKyAgID4+PiBpcGFkZHJlc3MuaXBfYWRkcmVzcygxKQorICAgSVB2NEFkZHJlc3MoJzAuMC4wLjEnKQorICAgPj4+IGlwYWRkcmVzcy5JUHY0QWRkcmVzcygxKQorICAgSVB2NEFkZHJlc3MoJzAuMC4wLjEnKQorICAgPj4+IGlwYWRkcmVzcy5JUHY2QWRkcmVzcygxKQorICAgSVB2NkFkZHJlc3MoJzo6MScpCisKKworRGVmaW5pbmcgTmV0d29ya3MKKy0tLS0tLS0tLS0tLS0tLS0tCisKK0hvc3QgYWRkcmVzc2VzIGFyZSB1c3VhbGx5IGdyb3VwZWQgdG9nZXRoZXIgaW50byBJUCBuZXR3b3Jrcywgc28KKzptb2Q6YGlwYWRkcmVzc2AgcHJvdmlkZXMgYSB3YXkgdG8gY3JlYXRlLCBpbnNwZWN0IGFuZCBtYW5pcHVsYXRlIG5ldHdvcmsKK2RlZmluaXRpb25zLiBJUCBuZXR3b3JrIG9iamVjdHMgYXJlIGNvbnN0cnVjdGVkIGZyb20gc3RyaW5ncyB0aGF0IGRlZmluZSB0aGUKK3JhbmdlIG9mIGhvc3QgYWRkcmVzc2VzIHRoYXQgYXJlIHBhcnQgb2YgdGhhdCBuZXR3b3JrLiBUaGUgc2ltcGxlc3QgZm9ybQorZm9yIHRoYXQgaW5mb3JtYXRpb24gaXMgYSAibmV0d29yayBhZGRyZXNzL25ldHdvcmsgcHJlZml4IiBwYWlyLCB3aGVyZSB0aGUKK3ByZWZpeCBkZWZpbmVzIHRoZSBudW1iZXIgb2YgbGVhZGluZyBiaXRzIHRoYXQgYXJlIGNvbXBhcmVkIHRvIGRldGVybWluZQord2hldGhlciBvciBub3QgYW4gYWRkcmVzcyBpcyBwYXJ0IG9mIHRoZSBuZXR3b3JrIGFuZCB0aGUgbmV0d29yayBhZGRyZXNzCitkZWZpbmVzIHRoZSBleHBlY3RlZCB2YWx1ZSBvZiB0aG9zZSBiaXRzLgorCitBcyBmb3IgYWRkcmVzc2VzLCBhIGZhY3RvcnkgZnVuY3Rpb24gaXMgcHJvdmlkZWQgdGhhdCBkZXRlcm1pbmVzIHRoZSBjb3JyZWN0CitJUCB2ZXJzaW9uIGF1dG9tYXRpY2FsbHk6OgorCisgICA+Pj4gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzE5Mi4wLjIuMC8yNCcpCisgICBJUHY0TmV0d29yaygnMTkyLjAuMi4wLzI0JykKKyAgID4+PiBpcGFkZHJlc3MuaXBfbmV0d29yaygnMjAwMTpkYjg6OjAvOTYnKQorICAgSVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjovOTYnKQorCitOZXR3b3JrIG9iamVjdHMgY2Fubm90IGhhdmUgYW55IGhvc3QgYml0cyBzZXQuICBUaGUgcHJhY3RpY2FsIGVmZmVjdCBvZiB0aGlzCitpcyB0aGF0IGBgMTkyLjAuMi4xLzI0YGAgZG9lcyBub3QgZGVzY3JpYmUgYSBuZXR3b3JrLiAgU3VjaCBkZWZpbml0aW9ucyBhcmUKK3JlZmVycmVkIHRvIGFzIGludGVyZmFjZSBvYmplY3RzIHNpbmNlIHRoZSBpcC1vbi1hLW5ldHdvcmsgbm90YXRpb24gaXMKK2NvbW1vbmx5IHVzZWQgdG8gZGVzY3JpYmUgbmV0d29yayBpbnRlcmZhY2VzIG9mIGEgY29tcHV0ZXIgb24gYSBnaXZlbiBuZXR3b3JrCithbmQgYXJlIGRlc2NyaWJlZCBmdXJ0aGVyIGluIHRoZSBuZXh0IHNlY3Rpb24uCisKK0J5IGRlZmF1bHQsIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGEgbmV0d29yayBvYmplY3Qgd2l0aCBob3N0IGJpdHMgc2V0IHdpbGwKK3Jlc3VsdCBpbiA6ZXhjOmBWYWx1ZUVycm9yYCBiZWluZyByYWlzZWQuIFRvIHJlcXVlc3QgdGhhdCB0aGUKK2FkZGl0aW9uYWwgYml0cyBpbnN0ZWFkIGJlIGNvZXJjZWQgdG8gemVybywgdGhlIGZsYWcgYGBzdHJpY3Q9RmFsc2VgYCBjYW4KK2JlIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3I6OgorCisgICA+Pj4gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzE5Mi4wLjIuMS8yNCcpCisgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgIFZhbHVlRXJyb3I6IDE5Mi4wLjIuMS8yNCBoYXMgaG9zdCBiaXRzIHNldAorICAgPj4+IGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxOTIuMC4yLjEvMjQnLCBzdHJpY3Q9RmFsc2UpCisgICBJUHY0TmV0d29yaygnMTkyLjAuMi4wLzI0JykKKworV2hpbGUgdGhlIHN0cmluZyBmb3JtIG9mZmVycyBzaWduaWZpY2FudGx5IG1vcmUgZmxleGliaWxpdHksIG5ldHdvcmtzIGNhbgorYWxzbyBiZSBkZWZpbmVkIHdpdGggaW50ZWdlcnMsIGp1c3QgbGlrZSBob3N0IGFkZHJlc3Nlcy4gSW4gdGhpcyBjYXNlLCB0aGUKK25ldHdvcmsgaXMgY29uc2lkZXJlZCB0byBjb250YWluIG9ubHkgdGhlIHNpbmdsZSBhZGRyZXNzIGlkZW50aWZpZWQgYnkgdGhlCitpbnRlZ2VyLCBzbyB0aGUgbmV0d29yayBwcmVmaXggaW5jbHVkZXMgdGhlIGVudGlyZSBuZXR3b3JrIGFkZHJlc3M6OgorCisgICA+Pj4gaXBhZGRyZXNzLmlwX25ldHdvcmsoMzIyMTIyNTk4NCkKKyAgIElQdjROZXR3b3JrKCcxOTIuMC4yLjAvMzInKQorICAgPj4+IGlwYWRkcmVzcy5pcF9uZXR3b3JrKDQyNTQwNzY2NDExMjgyNTkyODU2OTAzOTg0OTUxNjUzODI2NTYwKQorICAgSVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjovMTI4JykKKworQXMgd2l0aCBhZGRyZXNzZXMsIGNyZWF0aW9uIG9mIGEgcGFydGljdWxhciBraW5kIG9mIG5ldHdvcmsgY2FuIGJlIGZvcmNlZAorYnkgY2FsbGluZyB0aGUgY2xhc3MgY29uc3RydWN0b3IgZGlyZWN0bHkgaW5zdGVhZCBvZiB1c2luZyB0aGUgZmFjdG9yeQorZnVuY3Rpb24uCisKKworSG9zdCBJbnRlcmZhY2VzCistLS0tLS0tLS0tLS0tLS0KKworQXMgbWVudGlvbmVkIGp1c3QgYWJvdmUsIGlmIHlvdSBuZWVkIHRvIGRlc2NyaWJlIGFuIGFkZHJlc3Mgb24gYSBwYXJ0aWN1bGFyCituZXR3b3JrLCBuZWl0aGVyIHRoZSBhZGRyZXNzIG5vciB0aGUgbmV0d29yayBjbGFzc2VzIGFyZSBzdWZmaWNpZW50LgorTm90YXRpb24gbGlrZSBgYDE5Mi4wLjIuMS8yNGBgIGlzIGNvbW1vbmx5IHVzZWQgYnkgbmV0d29yayBlbmdpbmVlcnMgYW5kIHRoZQorcGVvcGxlIHdobyB3cml0ZSB0b29scyBmb3IgZmlyZXdhbGxzIGFuZCByb3V0ZXJzIGFzIHNob3J0aGFuZCBmb3IgInRoZSBob3N0CitgYDE5Mi4wLjIuMWBgIG9uIHRoZSBuZXR3b3JrIGBgMTkyLjAuMi4wLzI0YGAiLCBBY2NvcmRpbmdseSwgOm1vZDpgaXBhZGRyZXNzYAorcHJvdmlkZXMgYSBzZXQgb2YgaHlicmlkIGNsYXNzZXMgdGhhdCBhc3NvY2lhdGUgYW4gYWRkcmVzcyB3aXRoIGEgcGFydGljdWxhcgorbmV0d29yay4gVGhlIGludGVyZmFjZSBmb3IgY3JlYXRpb24gaXMgaWRlbnRpY2FsIHRvIHRoYXQgZm9yIGRlZmluaW5nIG5ldHdvcmsKK29iamVjdHMsIGV4Y2VwdCB0aGF0IHRoZSBhZGRyZXNzIHBvcnRpb24gaXNuJ3QgY29uc3RyYWluZWQgdG8gYmVpbmcgYSBuZXR3b3JrCithZGRyZXNzLgorCisgICA+Pj4gaXBhZGRyZXNzLmlwX2ludGVyZmFjZSgnMTkyLjAuMi4xLzI0JykKKyAgIElQdjRJbnRlcmZhY2UoJzE5Mi4wLjIuMS8yNCcpCisgICA+Pj4gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzIwMDE6ZGI4OjoxLzk2JykKKyAgIElQdjZJbnRlcmZhY2UoJzIwMDE6ZGI4OjoxLzk2JykKKworSW50ZWdlciBpbnB1dHMgYXJlIGFjY2VwdGVkIChhcyB3aXRoIG5ldHdvcmtzKSwgYW5kIHVzZSBvZiBhIHBhcnRpY3VsYXIgSVAKK3ZlcnNpb24gY2FuIGJlIGZvcmNlZCBieSBjYWxsaW5nIHRoZSByZWxldmFudCBjb25zdHJ1Y3RvciBkaXJlY3RseS4KKworCitJbnNwZWN0aW5nIEFkZHJlc3MvTmV0d29yay9JbnRlcmZhY2UgT2JqZWN0cworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworWW91J3ZlIGdvbmUgdG8gdGhlIHRyb3VibGUgb2YgY3JlYXRpbmcgYW4gSVB2KDR8NikoQWRkcmVzc3xOZXR3b3JrfEludGVyZmFjZSkKK29iamVjdCwgc28geW91IHByb2JhYmx5IHdhbnQgdG8gZ2V0IGluZm9ybWF0aW9uIGFib3V0IGl0LiAgOm1vZDpgaXBhZGRyZXNzYAordHJpZXMgdG8gbWFrZSBkb2luZyB0aGlzIGVhc3kgYW5kIGludHVpdGl2ZS4KKworRXh0cmFjdGluZyB0aGUgSVAgdmVyc2lvbjo6CisKKyAgID4+PiBhZGRyNCA9IGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxOTIuMC4yLjEnKQorICAgPj4+IGFkZHI2ID0gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzIwMDE6ZGI4OjoxJykKKyAgID4+PiBhZGRyNi52ZXJzaW9uCisgICA2CisgICA+Pj4gYWRkcjQudmVyc2lvbgorICAgNAorCitPYnRhaW5pbmcgdGhlIG5ldHdvcmsgZnJvbSBhbiBpbnRlcmZhY2U6OgorCisgICA+Pj4gaG9zdDQgPSBpcGFkZHJlc3MuaXBfaW50ZXJmYWNlKCcxOTIuMC4yLjEvMjQnKQorICAgPj4+IGhvc3Q0Lm5ldHdvcmsKKyAgIElQdjROZXR3b3JrKCcxOTIuMC4yLjAvMjQnKQorICAgPj4+IGhvc3Q2ID0gaXBhZGRyZXNzLmlwX2ludGVyZmFjZSgnMjAwMTpkYjg6OjEvOTYnKQorICAgPj4+IGhvc3Q2Lm5ldHdvcmsKKyAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6Lzk2JykKKworRmluZGluZyBvdXQgaG93IG1hbnkgaW5kaXZpZHVhbCBhZGRyZXNzZXMgYXJlIGluIGEgbmV0d29yazo6CisKKyAgID4+PiBuZXQ0ID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzE5Mi4wLjIuMC8yNCcpCisgICA+Pj4gbmV0NC5udW1ob3N0cworICAgMjU2CisgICA+Pj4gbmV0NiA9IGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcyMDAxOmRiODo6MC85NicpCisgICA+Pj4gbmV0Ni5udW1ob3N0cworICAgNDI5NDk2NzI5NgorCitJdGVyYXRpbmcgdGhyb3VnaCB0aGUgJ3VzYWJsZScgYWRkcmVzc2VzIG9uIGEgbmV0d29yazo6CisKKyAgID4+PiBuZXQ0ID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzE5Mi4wLjIuMC8yNCcpCisgICA+Pj4gZm9yIHggaW4gbmV0NC5pdGVyaG9zdHMoKToKKyAgICAgICAgICBwcmludCh4KQorICAgMTkyLjAuMi4xCisgICAxOTIuMC4yLjIKKyAgIDE5Mi4wLjIuMworICAgMTkyLjAuMi40CisgICA8c25pcD4KKyAgIDE5Mi4wLjIuMjUyCisgICAxOTIuMC4yLjI1MworICAgMTkyLjAuMi4yNTQKKworCitPYnRhaW5pbmcgdGhlIG5ldG1hc2sgKGkuZS4gc2V0IGJpdHMgY29ycmVzcG9uZGluZyB0byB0aGUgbmV0d29yayBwcmVmaXgpIG9yCit0aGUgaG9zdG1hc2sgKGFueSBiaXRzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBuZXRtYXNrKToKKworICAgPj4+IG5ldDQgPSBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTkyLjAuMi4wLzI0JykKKyAgID4+PiBuZXQ0Lm5ldG1hc2sKKyAgIElQdjRBZGRyZXNzKCcyNTUuMjU1LjI1NS4wJykKKyAgID4+PiBuZXQ0Lmhvc3RtYXNrCisgICBJUHY0QWRkcmVzcygnMC4wLjAuMjU1JykKKyAgID4+PiBuZXQ2ID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzIwMDE6ZGI4OjowLzk2JykKKyAgID4+PiBuZXQ2Lm5ldG1hc2sKKyAgIElQdjZBZGRyZXNzKCdmZmZmOmZmZmY6ZmZmZjpmZmZmOmZmZmY6ZmZmZjo6JykKKyAgID4+PiBuZXQ2Lmhvc3RtYXNrCisgICBJUHY2QWRkcmVzcygnOjpmZmZmOmZmZmYnKQorCisKK0V4cGxvZGluZyBvciBjb21wcmVzc2luZyB0aGUgYWRkcmVzczo6CisKKyAgID4+PiBhZGRyNi5leHBsb2RlZAorICAgJzIwMDE6MGRiODowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMCcKKyAgID4+PiBhZGRyNi5jb21wcmVzc2VkCisgICAnMjAwMTpkYjg6OicKKyAgID4+PiBuZXQ2LmV4cGxvZGVkCisgICAnMjAwMTowZGI4OjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwLzk2JworICAgPj4+IG5ldDYuY29tcHJlc3NlZAorICAgJzIwMDE6ZGI4OjovOTYnCisKK1doaWxlIElQdjQgZG9lc24ndCBzdXBwb3J0IGV4cGxvc2lvbiBvciBjb21wcmVzc2lvbiwgdGhlIGFzc29jaWF0ZWQgb2JqZWN0cworc3RpbGwgcHJvdmlkZSB0aGUgcmVsZXZhbnQgcHJvcGVydGllcyBzbyB0aGF0IHZlcnNpb24gbmV1dHJhbCBjb2RlIGNhbgorZWFzaWx5IGVuc3VyZSB0aGUgbW9zdCBjb25jaXNlIG9yIG1vc3QgdmVyYm9zZSBmb3JtIGlzIHVzZWQgZm9yIElQdjYKK2FkZHJlc3NlcyB3aGlsZSBzdGlsbCBjb3JyZWN0bHkgaGFuZGxpbmcgSVB2NCBhZGRyZXNzZXMuCisKKworTmV0d29ya3MgYXMgbGlzdHMgb2YgQWRkcmVzc2VzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworSXQncyBzb21ldGltZXMgdXNlZnVsIHRvIHRyZWF0IG5ldHdvcmtzIGFzIGxpc3RzLiAgVGhpcyBtZWFucyBpdCBpcyBwb3NzaWJsZQordG8gaW5kZXggdGhlbSBsaWtlIHRoaXM6OgorCisgICA+Pj4gbmV0NFsxXQorICAgSVB2NEFkZHJlc3MoJzE5Mi4wLjIuMScpCisgICA+Pj4gbmV0NFstMV0KKyAgIElQdjRBZGRyZXNzKCcxOTIuMC4yLjI1NScpCisgICA+Pj4gbmV0NlsxXQorICAgSVB2NkFkZHJlc3MoJzIwMDE6OjEnKQorICAgPj4+IG5ldDZbLTFdCisgICBJUHY2QWRkcmVzcygnMjAwMTo6ZmZmZjpmZmZmJykKKworCitJdCBhbHNvIG1lYW5zIHRoYXQgbmV0d29yayBvYmplY3RzIGxlbmQgdGhlbXNlbHZlcyB0byB1c2luZyB0aGUgbGlzdAorbWVtYmVyc2hpcCB0ZXN0IHN5bnRheCBsaWtlIHRoaXM6OgorCisgICBpZiBhZGRyZXNzIGluIG5ldHdvcms6CisgICAgICAgIyBkbyBzb21ldGhpbmcKKworQ29udGFpbm1lbnQgdGVzdGluZyBpcyBkb25lIGVmZmljaWVudGx5IGJhc2VkIG9uIHRoZSBuZXR3b3JrIHByZWZpeDo6CisKKyAgID4+PiBhZGRyNCA9IGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxOTIuMC4yLjEnKQorICAgPj4+IGFkZHI0IGluIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxOTIuMC4yLjAvMjQnKQorICAgVHJ1ZQorICAgPj4+IGFkZHI0IGluIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxOTIuMC4zLjAvMjQnKQorICAgRmFsc2UKKworCitDb21wYXJpc29ucworPT09PT09PT09PT0KKworOm1vZDpgaXBhZGRyZXNzYCBwcm92aWRlcyBzb21lIHNpbXBsZSwgaG9wZWZ1bGx5IGludHVpdGl2ZSB3YXlzIHRvIGNvbXBhcmUKK29iamVjdHMsIHdoZXJlIGl0IG1ha2VzIHNlbnNlOjoKKworICAgPj4+IGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxOTIuMC4yLjEnKSA8IGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxOTIuMC4yLjInKQorICAgVHJ1ZQorCitBIDpleGM6YFR5cGVFcnJvcmAgZXhjZXB0aW9uIGlzIHJhaXNlZCBpZiB5b3UgdHJ5IHRvIGNvbXBhcmUgb2JqZWN0cyBvZgorZGlmZmVyZW50IHZlcnNpb25zIG9yIGRpZmZlcmVudCB0eXBlcy4KKworCitVc2luZyBJUCBBZGRyZXNzZXMgd2l0aCBvdGhlciBtb2R1bGVzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK090aGVyIG1vZHVsZXMgdGhhdCB1c2UgSVAgYWRkcmVzc2VzIChzdWNoIGFzIDptb2Q6YHNvY2tldGApIHVzdWFsbHkgd29uJ3QKK2FjY2VwdCBvYmplY3RzIGZyb20gdGhpcyBtb2R1bGUgZGlyZWN0bHkuIEluc3RlYWQsIHRoZXkgbXVzdCBiZSBjb2VyY2VkIHRvCithbiBpbnRlZ2VyIG9yIHN0cmluZyB0aGF0IHRoZSBvdGhlciBtb2R1bGUgd2lsbCBhY2NlcHQ6OgorCisgICA+Pj4gYWRkcjQgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMTkyLjAuMi4xJykKKyAgID4+PiBzdHIoYWRkcjQpCisgICAnMTkyLjAuMi4xJworICAgPj4+IGludChhZGRyNCkKKyAgIDMyMjEyMjU5ODUKKworCitHZXR0aW5nIG1vcmUgZGV0YWlsIHdoZW4gaW5zdGFuY2UgY3JlYXRpb24gZmFpbHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitXaGVuIGNyZWF0aW5nIGFkZHJlc3MvbmV0d29yay9pbnRlcmZhY2Ugb2JqZWN0cyB1c2luZyB0aGUgdmVyc2lvbi1hZ25vc3RpYworZmFjdG9yeSBmdW5jdGlvbnMsIGFueSBlcnJvcnMgd2lsbCBiZSByZXBvcnRlZCBhcyA6ZXhjOmBWYWx1ZUVycm9yYCB3aXRoCithIGdlbmVyaWMgZXJyb3IgbWVzc2FnZSB0aGF0IHNpbXBseSBzYXlzIHRoZSBwYXNzZWQgaW4gdmFsdWUgd2FzIG5vdAorcmVjb2duaXNlZCBhcyBhbiBvYmplY3Qgb2YgdGhhdCB0eXBlLiBUaGUgbGFjayBvZiBhIHNwZWNpZmljIGVycm9yIGlzCitiZWNhdXNlIGl0J3MgbmVjZXNzYXJ5IHRvIGtub3cgd2hldGhlciB0aGUgdmFsdWUgaXMgKnN1cHBvc2VkKiB0byBiZSBJUHY0CitvciBJUHY2IGluIG9yZGVyIHRvIHByb3ZpZGUgbW9yZSBkZXRhaWwgb24gd2h5IGl0IGhhcyBiZWVuIHJlamVjdGVkLgorCitUbyBzdXBwb3J0IHVzZSBjYXNlcyB3aGVyZSBpdCBpcyB1c2VmdWwgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhpcyBhZGRpdGlvbmFsCitkZXRhaWwsIHRoZSBpbmRpdmlkdWFsIGNsYXNzIGNvbnN0cnVjdG9ycyBhY3R1YWxseSByYWlzZSB0aGUKKzpleGM6YFZhbHVlRXJyb3JgIHN1YmNsYXNzZXMgOmV4YzpgaXBhZGRyZXNzLkFkZHJlc3NWYWx1ZUVycm9yYCBhbmQKKzpleGM6YGlwYWRkcmVzcy5OZXRtYXNrVmFsdWVFcnJvcmAgdG8gaW5kaWNhdGUgZXhhY3RseSB3aGljaCBwYXJ0IG9mCit0aGUgZGVmaW5pdGlvbiBmYWlsZWQgdG8gcGFyc2UgY29ycmVjdGx5LgorCitUaGUgZXJyb3IgbWVzc2FnZXMgYXJlIHNpZ25pZmljYW50bHkgbW9yZSBkZXRhaWxlZCB3aGVuIHVzaW5nIHRoZQorY2xhc3MgY29uc3RydWN0b3JzIGRpcmVjdGx5LiBGb3IgZXhhbXBsZTo6CisKKyAgID4+PiBpcGFkZHJlc3MuaXBfYWRkcmVzcygiMTkyLjE2OC4wLjI1NiIpCisgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgIC4uLgorICAgVmFsdWVFcnJvcjogJzE5Mi4xNjguMC4yNTYnIGRvZXMgbm90IGFwcGVhciB0byBiZSBhbiBJUHY0IG9yIElQdjYgYWRkcmVzcworICAgPj4+IGlwYWRkcmVzcy5JUHY0QWRkcmVzcygiMTkyLjE2OC4wLjI1NiIpCisgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgIC4uLgorICAgaXBhZGRyZXNzLkFkZHJlc3NWYWx1ZUVycm9yOiBPY3RldCAyNTYgKD4gMjU1KSBub3QgcGVybWl0dGVkIGluICcxOTIuMTY4LjAuMjU2JworCisgICA+Pj4gaXBhZGRyZXNzLmlwX25ldHdvcmsoIjE5Mi4xNjguMC4xLzY0IikKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgLi4uCisgICBWYWx1ZUVycm9yOiAnMTkyLjE2OC4wLjEvNjQnIGRvZXMgbm90IGFwcGVhciB0byBiZSBhbiBJUHY0IG9yIElQdjYgbmV0d29yaworICAgPj4+IGlwYWRkcmVzcy5JUHY0TmV0d29yaygiMTkyLjE2OC4wLjEvNjQiKQorICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAuLi4KKyAgIGlwYWRkcmVzcy5OZXRtYXNrVmFsdWVFcnJvcjogJzY0JyBpcyBub3QgYSB2YWxpZCBuZXRtYXNrCisKK0hvd2V2ZXIsIGJvdGggb2YgdGhlIG1vZHVsZSBzcGVjaWZpYyBleGNlcHRpb25zIGhhdmUgOmV4YzpgVmFsdWVFcnJvcmAgYXMgdGhlaXIKK3BhcmVudCBjbGFzcywgc28gaWYgeW91J3JlIG5vdCBjb25jZXJuZWQgd2l0aCB0aGUgcGFydGljdWxhciB0eXBlIG9mIGVycm9yLAoreW91IGNhbiBzdGlsbCB3cml0ZSBjb2RlIGxpa2UgdGhlIGZvbGxvd2luZzo6CisKKyAgIHRyeToKKyAgICAgICBuZXR3b3JrID0gaXBhZGRyZXNzLklQdjROZXR3b3JrKGFkZHJlc3MpCisgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICBwcmludCgnYWRkcmVzcy9uZXRtYXNrIGlzIGludmFsaWQgZm9yIElQdjQ6JywgYWRkcmVzcykKKwpkaWZmIC0tZ2l0IGEvRG9jL2hvd3RvL2xvZ2dpbmctY29va2Jvb2sucnN0IGIvRG9jL2hvd3RvL2xvZ2dpbmctY29va2Jvb2sucnN0CmluZGV4IDU5ODY0YTkuLmJiOWMxNjYgMTAwNjQ0Ci0tLSBhL0RvYy9ob3d0by9sb2dnaW5nLWNvb2tib29rLnJzdAorKysgYi9Eb2MvaG93dG8vbG9nZ2luZy1jb29rYm9vay5yc3QKQEAgLTEzMTYsNiArMTMxNiwzMyBAQAogc2VjdGlvbiA8aHR0cHM6Ly9kb2NzLmRqYW5nb3Byb2plY3QuY29tL2VuLzEuMy90b3BpY3MvbG9nZ2luZy8jY29uZmlndXJpbmctbG9nZ2luZz5gXwogb2YgdGhlIERqYW5nbyBkb2N1bWVudGF0aW9uLgogCisuLiBfY29va2Jvb2stcm90YXRvci1uYW1lcjoKKworVXNpbmcgYSByb3RhdG9yIGFuZCBuYW1lciB0byBjdXN0b21pc2UgbG9nIHJvdGF0aW9uIHByb2Nlc3NpbmcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0FuIGV4YW1wbGUgb2YgaG93IHlvdSBjYW4gZGVmaW5lIGEgbmFtZXIgYW5kIHJvdGF0b3IgaXMgZ2l2ZW4gaW4gdGhlIGZvbGxvd2luZworc25pcHBldCwgd2hpY2ggc2hvd3MgemxpYi1iYXNlZCBjb21wcmVzc2lvbiBvZiB0aGUgbG9nIGZpbGU6OgorCisgICAgZGVmIG5hbWVyKG5hbWUpOgorICAgICAgICByZXR1cm4gbmFtZSArICIuZ3oiCisKKyAgICBkZWYgcm90YXRvcihzb3VyY2UsIGRlc3QpOgorICAgICAgICB3aXRoIG9wZW4oc291cmNlLCAicmIiKSBhcyBzZjoKKyAgICAgICAgICAgIGRhdGEgPSBzZi5yZWFkKCkKKyAgICAgICAgICAgIGNvbXByZXNzZWQgPSB6bGliLmNvbXByZXNzKGRhdGEsIDkpCisgICAgICAgICAgICB3aXRoIG9wZW4oZGVzdCwgIndiIikgYXMgZGY6CisgICAgICAgICAgICAgICAgZGYud3JpdGUoY29tcHJlc3NlZCkKKyAgICAgICAgb3MucmVtb3ZlKHNvdXJjZSkKKworICAgIHJoID0gbG9nZ2luZy5oYW5kbGVycy5Sb3RhdGluZ0ZpbGVIYW5kbGVyKC4uLikKKyAgICByaC5yb3RhdG9yID0gcm90YXRvcgorICAgIHJoLm5hbWVyID0gbmFtZXIKKworVGhlc2UgYXJlIG5vdCAidHJ1ZSIgLmd6IGZpbGVzLCBhcyB0aGV5IGFyZSBiYXJlIGNvbXByZXNzZWQgZGF0YSwgd2l0aCBubworImNvbnRhaW5lciIgc3VjaCBhcyB5b3XigJlkIGZpbmQgaW4gYW4gYWN0dWFsIGd6aXAgZmlsZS4gVGhpcyBzbmlwcGV0IGlzIGp1c3QKK2ZvciBpbGx1c3RyYXRpb24gcHVycG9zZXMuCisKIEEgbW9yZSBlbGFib3JhdGUgbXVsdGlwcm9jZXNzaW5nIGV4YW1wbGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApAQCAtMTU3Miw3ICsxNTk5LDcgQEAKIAogICAgICAgJ0FTQ0lJIHNlY3Rpb25cdWZlZmZVbmljb2RlIHNlY3Rpb24nCiAKLSAgIFRoZSBVbmljb2RlIGNvZGUgcG9pbnQgYGAnXGZlZmZgYGAsIHdoZW4gZW5jb2RlZCB1c2luZyBVVEYtOCwgd2lsbCBiZQorICAgVGhlIFVuaWNvZGUgY29kZSBwb2ludCBgYCdcZmVmZidgYCwgd2hlbiBlbmNvZGVkIHVzaW5nIFVURi04LCB3aWxsIGJlCiAgICBlbmNvZGVkIGFzIGEgVVRGLTggQk9NIC0tIHRoZSBieXRlLXN0cmluZyBgYGInXHhlZlx4YmJceGJmJ2BgLgogCiAjLiBSZXBsYWNlIHRoZSBBU0NJSSBzZWN0aW9uIHdpdGggd2hhdGV2ZXIgcGxhY2Vob2xkZXJzIHlvdSBsaWtlLCBidXQgbWFrZSBzdXJlCmRpZmYgLS1naXQgYS9Eb2MvaG93dG8vc29ja2V0cy5yc3QgYi9Eb2MvaG93dG8vc29ja2V0cy5yc3QKaW5kZXggMjc5YmIzZS4uY2E2NTI4YiAxMDA2NDQKLS0tIGEvRG9jL2hvd3RvL3NvY2tldHMucnN0CisrKyBiL0RvYy9ob3d0by9zb2NrZXRzLnJzdApAQCAtMjUsOCArMjUsOCBAQAogd29ya2luZy4gSXQgZG9lc24ndCBjb3ZlciB0aGUgZmluZSBwb2ludHMgKGFuZCB0aGVyZSBhcmUgYSBsb3Qgb2YgdGhlbSksIGJ1dCBJCiBob3BlIGl0IHdpbGwgZ2l2ZSB5b3UgZW5vdWdoIGJhY2tncm91bmQgdG8gYmVnaW4gdXNpbmcgdGhlbSBkZWNlbnRseS4KIAotSSdtIG9ubHkgZ29pbmcgdG8gdGFsayBhYm91dCBJTkVUIHNvY2tldHMsIGJ1dCB0aGV5IGFjY291bnQgZm9yIGF0IGxlYXN0IDk5JSBvZgotdGhlIHNvY2tldHMgaW4gdXNlLiBBbmQgSSdsbCBvbmx5IHRhbGsgYWJvdXQgU1RSRUFNIHNvY2tldHMgLSB1bmxlc3MgeW91IHJlYWxseQorSSdtIG9ubHkgZ29pbmcgdG8gdGFsayBhYm91dCBJTkVUIChpLmUuIElQdjQpIHNvY2tldHMsIGJ1dCB0aGV5IGFjY291bnQgZm9yIGF0IGxlYXN0IDk5JSBvZgordGhlIHNvY2tldHMgaW4gdXNlLiBBbmQgSSdsbCBvbmx5IHRhbGsgYWJvdXQgU1RSRUFNIChpLmUuIFRDUCkgc29ja2V0cyAtIHVubGVzcyB5b3UgcmVhbGx5CiBrbm93IHdoYXQgeW91J3JlIGRvaW5nIChpbiB3aGljaCBjYXNlIHRoaXMgSE9XVE8gaXNuJ3QgZm9yIHlvdSEpLCB5b3UnbGwgZ2V0CiBiZXR0ZXIgYmVoYXZpb3IgYW5kIHBlcmZvcm1hbmNlIGZyb20gYSBTVFJFQU0gc29ja2V0IHRoYW4gYW55dGhpbmcgZWxzZS4gSSB3aWxsCiB0cnkgdG8gY2xlYXIgdXAgdGhlIG15c3Rlcnkgb2Ygd2hhdCBhIHNvY2tldCBpcywgYXMgd2VsbCBhcyBzb21lIGhpbnRzIG9uIGhvdyB0bwpAQCAtMjA4LDEwICsyMDgsMTAgQEAKICAgICAgICAgICAgICAgIHRvdGFsc2VudCA9IHRvdGFsc2VudCArIHNlbnQKIAogICAgICAgIGRlZiBteXJlY2VpdmUoc2VsZik6Ci0gICAgICAgICAgIG1zZyA9ICcnCisgICAgICAgICAgIG1zZyA9IGInJwogICAgICAgICAgICB3aGlsZSBsZW4obXNnKSA8IE1TR0xFTjoKICAgICAgICAgICAgICAgIGNodW5rID0gc2VsZi5zb2NrLnJlY3YoTVNHTEVOLWxlbihtc2cpKQotICAgICAgICAgICAgICAgaWYgY2h1bmsgPT0gJyc6CisgICAgICAgICAgICAgICBpZiBjaHVuayA9PSBiJyc6CiAgICAgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJzb2NrZXQgY29ubmVjdGlvbiBicm9rZW4iKQogICAgICAgICAgICAgICAgbXNnID0gbXNnICsgY2h1bmsKICAgICAgICAgICAgcmV0dXJuIG1zZwpAQCAtMzcxLDEyICszNzEsNiBAQAogcG90ZW50aWFsX3dyaXRlcnMgbGlzdC4gSWYgaXQgc2hvd3MgdXAgaW4gdGhlIHdyaXRhYmxlIGxpc3QsIHlvdSBoYXZlIGEgZGVjZW50CiBjaGFuY2UgdGhhdCBpdCBoYXMgY29ubmVjdGVkLgogCi1PbmUgdmVyeSBuYXN0eSBwcm9ibGVtIHdpdGggYGBzZWxlY3RgYDogaWYgc29tZXdoZXJlIGluIHRob3NlIGlucHV0IGxpc3RzIG9mCi1zb2NrZXRzIGlzIG9uZSB3aGljaCBoYXMgZGllZCBhIG5hc3R5IGRlYXRoLCB0aGUgYGBzZWxlY3RgYCB3aWxsIGZhaWwuIFlvdSB0aGVuCi1uZWVkIHRvIGxvb3AgdGhyb3VnaCBldmVyeSBzaW5nbGUgZGFtbiBzb2NrZXQgaW4gYWxsIHRob3NlIGxpc3RzIGFuZCBkbyBhCi1gYHNlbGVjdChbc29ja10sW10sW10sMClgYCB1bnRpbCB5b3UgZmluZCB0aGUgYmFkIG9uZS4gVGhhdCB0aW1lb3V0IG9mIDAgbWVhbnMKLWl0IHdvbid0IHRha2UgbG9uZywgYnV0IGl0J3MgdWdseS4KLQogQWN0dWFsbHksIGBgc2VsZWN0YGAgY2FuIGJlIGhhbmR5IGV2ZW4gd2l0aCBibG9ja2luZyBzb2NrZXRzLiBJdCdzIG9uZSB3YXkgb2YKIGRldGVybWluaW5nIHdoZXRoZXIgeW91IHdpbGwgYmxvY2sgLSB0aGUgc29ja2V0IHJldHVybnMgYXMgcmVhZGFibGUgd2hlbiB0aGVyZSdzCiBzb21ldGhpbmcgaW4gdGhlIGJ1ZmZlcnMuICBIb3dldmVyLCB0aGlzIHN0aWxsIGRvZXNuJ3QgaGVscCB3aXRoIHRoZSBwcm9ibGVtIG9mCkBAIC0zODYsMjYgKzM4MCw2IEBACiBmaWxlcy4gRG9uJ3QgdHJ5IHRoaXMgb24gV2luZG93cy4gT24gV2luZG93cywgYGBzZWxlY3RgYCB3b3JrcyB3aXRoIHNvY2tldHMKIG9ubHkuIEFsc28gbm90ZSB0aGF0IGluIEMsIG1hbnkgb2YgdGhlIG1vcmUgYWR2YW5jZWQgc29ja2V0IG9wdGlvbnMgYXJlIGRvbmUKIGRpZmZlcmVudGx5IG9uIFdpbmRvd3MuIEluIGZhY3QsIG9uIFdpbmRvd3MgSSB1c3VhbGx5IHVzZSB0aHJlYWRzICh3aGljaCB3b3JrCi12ZXJ5LCB2ZXJ5IHdlbGwpIHdpdGggbXkgc29ja2V0cy4gRmFjZSBpdCwgaWYgeW91IHdhbnQgYW55IGtpbmQgb2YgcGVyZm9ybWFuY2UsCi15b3VyIGNvZGUgd2lsbCBsb29rIHZlcnkgZGlmZmVyZW50IG9uIFdpbmRvd3MgdGhhbiBvbiBVbml4LgordmVyeSwgdmVyeSB3ZWxsKSB3aXRoIG15IHNvY2tldHMuCiAKIAotUGVyZm9ybWFuY2UKLS0tLS0tLS0tLS0tCi0KLVRoZXJlJ3Mgbm8gcXVlc3Rpb24gdGhhdCB0aGUgZmFzdGVzdCBzb2NrZXRzIGNvZGUgdXNlcyBub24tYmxvY2tpbmcgc29ja2V0cyBhbmQKLXNlbGVjdCB0byBtdWx0aXBsZXggdGhlbS4gWW91IGNhbiBwdXQgdG9nZXRoZXIgc29tZXRoaW5nIHRoYXQgd2lsbCBzYXR1cmF0ZSBhCi1MQU4gY29ubmVjdGlvbiB3aXRob3V0IHB1dHRpbmcgYW55IHN0cmFpbiBvbiB0aGUgQ1BVLgotCi1UaGUgdHJvdWJsZSBpcyB0aGF0IGFuIGFwcCB3cml0dGVuIHRoaXMgd2F5IGNhbid0IGRvIG11Y2ggb2YgYW55dGhpbmcgZWxzZSAtCi1pdCBuZWVkcyB0byBiZSByZWFkeSB0byBzaHVmZmxlIGJ5dGVzIGFyb3VuZCBhdCBhbGwgdGltZXMuIEFzc3VtaW5nIHRoYXQgeW91cgotYXBwIGlzIGFjdHVhbGx5IHN1cHBvc2VkIHRvIGRvIHNvbWV0aGluZyBtb3JlIHRoYW4gdGhhdCwgdGhyZWFkaW5nIGlzIHRoZQotb3B0aW1hbCBzb2x1dGlvbiwgKGFuZCB1c2luZyBub24tYmxvY2tpbmcgc29ja2V0cyB3aWxsIGJlIGZhc3RlciB0aGFuIHVzaW5nCi1ibG9ja2luZyBzb2NrZXRzKS4KLQotRmluYWxseSwgcmVtZW1iZXIgdGhhdCBldmVuIHRob3VnaCBibG9ja2luZyBzb2NrZXRzIGFyZSBzb21ld2hhdCBzbG93ZXIgdGhhbgotbm9uLWJsb2NraW5nLCBpbiBtYW55IGNhc2VzIHRoZXkgYXJlIHRoZSAicmlnaHQiIHNvbHV0aW9uLiBBZnRlciBhbGwsIGlmIHlvdXIKLWFwcCBpcyBkcml2ZW4gYnkgdGhlIGRhdGEgaXQgcmVjZWl2ZXMgb3ZlciBhIHNvY2tldCwgdGhlcmUncyBub3QgbXVjaCBzZW5zZSBpbgotY29tcGxpY2F0aW5nIHRoZSBsb2dpYyBqdXN0IHNvIHlvdXIgYXBwIGNhbiB3YWl0IG9uIGBgc2VsZWN0YGAgaW5zdGVhZCBvZgotYGByZWN2YGAuCi0KZGlmZiAtLWdpdCBhL0RvYy9ob3d0by91cmxsaWIyLnJzdCBiL0RvYy9ob3d0by91cmxsaWIyLnJzdAppbmRleCBmYWRlNGEzLi4yMGRjYTIwIDEwMDY0NAotLS0gYS9Eb2MvaG93dG8vdXJsbGliMi5yc3QKKysrIGIvRG9jL2hvd3RvL3VybGxpYjIucnN0CkBAIC01Niw2ICs1NiwxMyBAQAogICAgIHJlc3BvbnNlID0gdXJsbGliLnJlcXVlc3QudXJsb3BlbignaHR0cDovL3B5dGhvbi5vcmcvJykKICAgICBodG1sID0gcmVzcG9uc2UucmVhZCgpCiAKK0lmIHlvdSB3aXNoIHRvIHJldHJpZXZlIGEgcmVzb3VyY2UgdmlhIFVSTCBhbmQgc3RvcmUgaXQgaW4gYSB0ZW1wb3JhcnkgbG9jYXRpb24sCit5b3UgY2FuIGRvIHNvIHZpYSB0aGUgOmZ1bmM6YHVybHJldHJpZXZlYCBmdW5jdGlvbjo6CisKKyAgICBpbXBvcnQgdXJsbGliLnJlcXVlc3QKKyAgICBsb2NhbF9maWxlbmFtZSwgaGVhZGVycyA9IHVybGxpYi5yZXF1ZXN0LnVybHJldHJpZXZlKCdodHRwOi8vcHl0aG9uLm9yZy8nKQorICAgIGh0bWwgPSBvcGVuKGxvY2FsX2ZpbGVuYW1lKQorCiBNYW55IHVzZXMgb2YgdXJsbGliIHdpbGwgYmUgdGhhdCBzaW1wbGUgKG5vdGUgdGhhdCBpbnN0ZWFkIG9mIGFuICdodHRwOicgVVJMIHdlCiBjb3VsZCBoYXZlIHVzZWQgYW4gVVJMIHN0YXJ0aW5nIHdpdGggJ2Z0cDonLCAnZmlsZTonLCBldGMuKS4gIEhvd2V2ZXIsIGl0J3MgdGhlCiBwdXJwb3NlIG9mIHRoaXMgdHV0b3JpYWwgdG8gZXhwbGFpbiB0aGUgbW9yZSBjb21wbGljYXRlZCBjYXNlcywgY29uY2VudHJhdGluZyBvbgpkaWZmIC0tZ2l0IGEvRG9jL2luY2x1ZGVzL21wX2JlbmNobWFya3MucHkgYi9Eb2MvaW5jbHVkZXMvbXBfYmVuY2htYXJrcy5weQppbmRleCBhY2RmNjQyLi4zNzYzZWE5IDEwMDY0NAotLS0gYS9Eb2MvaW5jbHVkZXMvbXBfYmVuY2htYXJrcy5weQorKysgYi9Eb2MvaW5jbHVkZXMvbXBfYmVuY2htYXJrcy5weQpAQCAtNiwxNiArNiwxMiBAQAogIwogCiBpbXBvcnQgdGltZQotaW1wb3J0IHN5cwogaW1wb3J0IG11bHRpcHJvY2Vzc2luZwogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHF1ZXVlCiBpbXBvcnQgZ2MKIAotaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6Ci0gICAgX3RpbWVyID0gdGltZS5jbG9jawotZWxzZToKLSAgICBfdGltZXIgPSB0aW1lLnRpbWUKK190aW1lciA9IHRpbWUucGVyZl9jb3VudGVyCiAKIGRlbHRhID0gMQogCmRpZmYgLS1naXQgYS9Eb2MvaW5jbHVkZXMvbm9kZHkyLmMgYi9Eb2MvaW5jbHVkZXMvbm9kZHkyLmMKaW5kZXggOWI4ZWFmYi4uOTY0MTU1OCAxMDA2NDQKLS0tIGEvRG9jL2luY2x1ZGVzL25vZGR5Mi5jCisrKyBiL0RvYy9pbmNsdWRlcy9ub2RkeTIuYwpAQCAtMjQsMTggKzI0LDE2IEBACiAgICAgc2VsZiA9IChOb2RkeSAqKXR5cGUtPnRwX2FsbG9jKHR5cGUsIDApOwogICAgIGlmIChzZWxmICE9IE5VTEwpIHsKICAgICAgICAgc2VsZi0+Zmlyc3QgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiIik7Ci0gICAgICAgIGlmIChzZWxmLT5maXJzdCA9PSBOVUxMKQotICAgICAgICAgIHsKKyAgICAgICAgaWYgKHNlbGYtPmZpcnN0ID09IE5VTEwpIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihzZWxmKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgIH0KLSAgICAgICAgCisgICAgICAgIH0KKwogICAgICAgICBzZWxmLT5sYXN0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIiIpOwotICAgICAgICBpZiAoc2VsZi0+bGFzdCA9PSBOVUxMKQotICAgICAgICAgIHsKKyAgICAgICAgaWYgKHNlbGYtPmxhc3QgPT0gTlVMTCkgewogICAgICAgICAgICAgUHlfREVDUkVGKHNlbGYpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAgICAgc2VsZi0+bnVtYmVyID0gMDsKICAgICB9CkBAIC01MCwxMCArNDgsMTAgQEAKIAogICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsiZmlyc3QiLCAibGFzdCIsICJudW1iZXIiLCBOVUxMfTsKIAotICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE9PaSIsIGt3bGlzdCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaXJzdCwgJmxhc3QsIAorICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE9PaSIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpcnN0LCAmbGFzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNlbGYtPm51bWJlcikpCi0gICAgICAgIHJldHVybiAtMTsgCisgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChmaXJzdCkgewogICAgICAgICB0bXAgPSBzZWxmLT5maXJzdDsKQEAgLTg2LDE1ICs4NCw2IEBACiBzdGF0aWMgUHlPYmplY3QgKgogTm9kZHlfbmFtZShOb2RkeSogc2VsZikKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmZvcm1hdCA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKmFyZ3MsICpyZXN1bHQ7Ci0KLSAgICBpZiAoZm9ybWF0ID09IE5VTEwpIHsKLSAgICAgICAgZm9ybWF0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIiVzICVzIik7Ci0gICAgICAgIGlmIChmb3JtYXQgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQogICAgIGlmIChzZWxmLT5maXJzdCA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19BdHRyaWJ1dGVFcnJvciwgImZpcnN0Iik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTA1LDE0ICs5NCw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIGFyZ3MgPSBQeV9CdWlsZFZhbHVlKCJPTyIsIHNlbGYtPmZpcnN0LCBzZWxmLT5sYXN0KTsKLSAgICBpZiAoYXJncyA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Gb3JtYXQoZm9ybWF0LCBhcmdzKTsKLSAgICBQeV9ERUNSRUYoYXJncyk7Ci0gICAgCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVTICVTIiwgc2VsZi0+Zmlyc3QsIHNlbGYtPmxhc3QpOwogfQogCiBzdGF0aWMgUHlNZXRob2REZWYgTm9kZHlfbWV0aG9kc1tdID0gewpAQCAtMTQ1LDEyICsxMjcsMTIgQEAKICAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfAogICAgICAgICBQeV9UUEZMQUdTX0JBU0VUWVBFLCAgIC8qIHRwX2ZsYWdzICovCiAgICAgIk5vZGR5IG9iamVjdHMiLCAgICAgICAgICAgLyogdHBfZG9jICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KLSAgICAwLAkJICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwogICAgIE5vZGR5X21ldGhvZHMsICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KICAgICBOb2RkeV9tZW1iZXJzLCAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCkBAIC0xNzMsNyArMTU1LDcgQEAKIH07CiAKIFB5TU9ESU5JVF9GVU5DCi1QeUluaXRfbm9kZHkyKHZvaWQpIAorUHlJbml0X25vZGR5Mih2b2lkKQogewogICAgIFB5T2JqZWN0KiBtOwogCmRpZmYgLS1naXQgYS9Eb2MvaW5jbHVkZXMvbm9kZHkzLmMgYi9Eb2MvaW5jbHVkZXMvbm9kZHkzLmMKaW5kZXggODlmM2E3Ny4uOGE1YTc1MyAxMDA2NDQKLS0tIGEvRG9jL2luY2x1ZGVzL25vZGR5My5jCisrKyBiL0RvYy9pbmNsdWRlcy9ub2RkeTMuYwpAQCAtMjQsMTggKzI0LDE2IEBACiAgICAgc2VsZiA9IChOb2RkeSAqKXR5cGUtPnRwX2FsbG9jKHR5cGUsIDApOwogICAgIGlmIChzZWxmICE9IE5VTEwpIHsKICAgICAgICAgc2VsZi0+Zmlyc3QgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiIik7Ci0gICAgICAgIGlmIChzZWxmLT5maXJzdCA9PSBOVUxMKQotICAgICAgICAgIHsKKyAgICAgICAgaWYgKHNlbGYtPmZpcnN0ID09IE5VTEwpIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihzZWxmKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgIH0KLSAgICAgICAgCisgICAgICAgIH0KKwogICAgICAgICBzZWxmLT5sYXN0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIiIpOwotICAgICAgICBpZiAoc2VsZi0+bGFzdCA9PSBOVUxMKQotICAgICAgICAgIHsKKyAgICAgICAgaWYgKHNlbGYtPmxhc3QgPT0gTlVMTCkgewogICAgICAgICAgICAgUHlfREVDUkVGKHNlbGYpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgfQorICAgICAgICB9CiAKICAgICAgICAgc2VsZi0+bnVtYmVyID0gMDsKICAgICB9CkBAIC01MCwxMCArNDgsMTAgQEAKIAogICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsiZmlyc3QiLCAibGFzdCIsICJudW1iZXIiLCBOVUxMfTsKIAotICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifFNTaSIsIGt3bGlzdCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaXJzdCwgJmxhc3QsIAorICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifFNTaSIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpcnN0LCAmbGFzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNlbGYtPm51bWJlcikpCi0gICAgICAgIHJldHVybiAtMTsgCisgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChmaXJzdCkgewogICAgICAgICB0bXAgPSBzZWxmLT5maXJzdDsKQEAgLTg4LDIyICs4NiwyMiBAQAogc3RhdGljIGludAogTm9kZHlfc2V0Zmlyc3QoTm9kZHkgKnNlbGYsIFB5T2JqZWN0ICp2YWx1ZSwgdm9pZCAqY2xvc3VyZSkKIHsKLSAgaWYgKHZhbHVlID09IE5VTEwpIHsKLSAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiQ2Fubm90IGRlbGV0ZSB0aGUgZmlyc3QgYXR0cmlidXRlIik7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0gIAotICBpZiAoISBQeVVuaWNvZGVfQ2hlY2sodmFsdWUpKSB7Ci0gICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgCi0gICAgICAgICAgICAgICAgICAgICJUaGUgZmlyc3QgYXR0cmlidXRlIHZhbHVlIG11c3QgYmUgYSBzdHJpbmciKTsKLSAgICByZXR1cm4gLTE7Ci0gIH0KLSAgICAgIAotICBQeV9ERUNSRUYoc2VsZi0+Zmlyc3QpOwotICBQeV9JTkNSRUYodmFsdWUpOwotICBzZWxmLT5maXJzdCA9IHZhbHVlOyAgICAKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiQ2Fubm90IGRlbGV0ZSB0aGUgZmlyc3QgYXR0cmlidXRlIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAKLSAgcmV0dXJuIDA7CisgICAgaWYgKCEgUHlVbmljb2RlX0NoZWNrKHZhbHVlKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaXJzdCBhdHRyaWJ1dGUgdmFsdWUgbXVzdCBiZSBhIHN0cmluZyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgUHlfREVDUkVGKHNlbGYtPmZpcnN0KTsKKyAgICBQeV9JTkNSRUYodmFsdWUpOworICAgIHNlbGYtPmZpcnN0ID0gdmFsdWU7CisKKyAgICByZXR1cm4gMDsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTExNiwzMCArMTE0LDMwIEBACiBzdGF0aWMgaW50CiBOb2RkeV9zZXRsYXN0KE5vZGR5ICpzZWxmLCBQeU9iamVjdCAqdmFsdWUsIHZvaWQgKmNsb3N1cmUpCiB7Ci0gIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIkNhbm5vdCBkZWxldGUgdGhlIGxhc3QgYXR0cmlidXRlIik7Ci0gICAgcmV0dXJuIC0xOwotICB9Ci0gIAotICBpZiAoISBQeVVuaWNvZGVfQ2hlY2sodmFsdWUpKSB7Ci0gICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgCi0gICAgICAgICAgICAgICAgICAgICJUaGUgbGFzdCBhdHRyaWJ1dGUgdmFsdWUgbXVzdCBiZSBhIHN0cmluZyIpOwotICAgIHJldHVybiAtMTsKLSAgfQotICAgICAgCi0gIFB5X0RFQ1JFRihzZWxmLT5sYXN0KTsKLSAgUHlfSU5DUkVGKHZhbHVlKTsKLSAgc2VsZi0+bGFzdCA9IHZhbHVlOyAgICAKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiQ2Fubm90IGRlbGV0ZSB0aGUgbGFzdCBhdHRyaWJ1dGUiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KIAotICByZXR1cm4gMDsKKyAgICBpZiAoISBQeVVuaWNvZGVfQ2hlY2sodmFsdWUpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGxhc3QgYXR0cmlidXRlIHZhbHVlIG11c3QgYmUgYSBzdHJpbmciKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIFB5X0RFQ1JFRihzZWxmLT5sYXN0KTsKKyAgICBQeV9JTkNSRUYodmFsdWUpOworICAgIHNlbGYtPmxhc3QgPSB2YWx1ZTsKKworICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgUHlHZXRTZXREZWYgTm9kZHlfZ2V0c2V0ZXJzW10gPSB7Ci0gICAgeyJmaXJzdCIsIAorICAgIHsiZmlyc3QiLAogICAgICAoZ2V0dGVyKU5vZGR5X2dldGZpcnN0LCAoc2V0dGVyKU5vZGR5X3NldGZpcnN0LAogICAgICAiZmlyc3QgbmFtZSIsCiAgICAgIE5VTEx9LAotICAgIHsibGFzdCIsIAorICAgIHsibGFzdCIsCiAgICAgIChnZXR0ZXIpTm9kZHlfZ2V0bGFzdCwgKHNldHRlcilOb2RkeV9zZXRsYXN0LAogICAgICAibGFzdCBuYW1lIiwKICAgICAgTlVMTH0sCkBAIC0xNDksMjMgKzE0Nyw3IEBACiBzdGF0aWMgUHlPYmplY3QgKgogTm9kZHlfbmFtZShOb2RkeSogc2VsZikKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmZvcm1hdCA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKmFyZ3MsICpyZXN1bHQ7Ci0KLSAgICBpZiAoZm9ybWF0ID09IE5VTEwpIHsKLSAgICAgICAgZm9ybWF0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIiVzICVzIik7Ci0gICAgICAgIGlmIChmb3JtYXQgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGFyZ3MgPSBQeV9CdWlsZFZhbHVlKCJPTyIsIHNlbGYtPmZpcnN0LCBzZWxmLT5sYXN0KTsKLSAgICBpZiAoYXJncyA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Gb3JtYXQoZm9ybWF0LCBhcmdzKTsKLSAgICBQeV9ERUNSRUYoYXJncyk7Ci0gICAgCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVTICVTIiwgc2VsZi0+Zmlyc3QsIHNlbGYtPmxhc3QpOwogfQogCiBzdGF0aWMgUHlNZXRob2REZWYgTm9kZHlfbWV0aG9kc1tdID0gewpAQCAtMTk4LDEyICsxODAsMTIgQEAKICAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfAogICAgICAgICBQeV9UUEZMQUdTX0JBU0VUWVBFLCAgIC8qIHRwX2ZsYWdzICovCiAgICAgIk5vZGR5IG9iamVjdHMiLCAgICAgICAgICAgLyogdHBfZG9jICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCi0gICAgMCwJCSAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KLSAgICAwLAkJICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwogICAgIE5vZGR5X21ldGhvZHMsICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KICAgICBOb2RkeV9tZW1iZXJzLCAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgTm9kZHlfZ2V0c2V0ZXJzLCAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCkBAIC0yMjYsNyArMjA4LDcgQEAKIH07CiAKIFB5TU9ESU5JVF9GVU5DCi1QeUluaXRfbm9kZHkzKHZvaWQpIAorUHlJbml0X25vZGR5Myh2b2lkKQogewogICAgIFB5T2JqZWN0KiBtOwogCmRpZmYgLS1naXQgYS9Eb2MvaW5jbHVkZXMvbm9kZHk0LmMgYi9Eb2MvaW5jbHVkZXMvbm9kZHk0LmMKaW5kZXggNmE5NmZhYy4uZWI5NjIyYSAxMDA2NDQKLS0tIGEvRG9jL2luY2x1ZGVzL25vZGR5NC5jCisrKyBiL0RvYy9pbmNsdWRlcy9ub2RkeTQuYwpAQCAtMjcsNyArMjcsNyBAQAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IAorc3RhdGljIGludAogTm9kZHlfY2xlYXIoTm9kZHkgKnNlbGYpCiB7CiAgICAgUHlPYmplY3QgKnRtcDsKQEAgLTU4LDE4ICs1OCwxNiBAQAogICAgIHNlbGYgPSAoTm9kZHkgKil0eXBlLT50cF9hbGxvYyh0eXBlLCAwKTsKICAgICBpZiAoc2VsZiAhPSBOVUxMKSB7CiAgICAgICAgIHNlbGYtPmZpcnN0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIiIpOwotICAgICAgICBpZiAoc2VsZi0+Zmlyc3QgPT0gTlVMTCkKLSAgICAgICAgICB7CisgICAgICAgIGlmIChzZWxmLT5maXJzdCA9PSBOVUxMKSB7CiAgICAgICAgICAgICBQeV9ERUNSRUYoc2VsZik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICB9Ci0gICAgICAgIAorICAgICAgICB9CisKICAgICAgICAgc2VsZi0+bGFzdCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCIiKTsKLSAgICAgICAgaWYgKHNlbGYtPmxhc3QgPT0gTlVMTCkKLSAgICAgICAgICB7CisgICAgICAgIGlmIChzZWxmLT5sYXN0ID09IE5VTEwpIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihzZWxmKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgIH0KKyAgICAgICAgfQogCiAgICAgICAgIHNlbGYtPm51bWJlciA9IDA7CiAgICAgfQpAQCAtODQsMTAgKzgyLDEwIEBACiAKICAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImZpcnN0IiwgImxhc3QiLCAibnVtYmVyIiwgTlVMTH07CiAKLSAgICBpZiAoISBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgInxPT2kiLCBrd2xpc3QsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmlyc3QsICZsYXN0LCAKKyAgICBpZiAoISBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgInxPT2kiLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaXJzdCwgJmxhc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzZWxmLT5udW1iZXIpKQotICAgICAgICByZXR1cm4gLTE7IAorICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAoZmlyc3QpIHsKICAgICAgICAgdG1wID0gc2VsZi0+Zmlyc3Q7CkBAIC0xMjAsMTUgKzExOCw2IEBACiBzdGF0aWMgUHlPYmplY3QgKgogTm9kZHlfbmFtZShOb2RkeSogc2VsZikKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmZvcm1hdCA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKmFyZ3MsICpyZXN1bHQ7Ci0KLSAgICBpZiAoZm9ybWF0ID09IE5VTEwpIHsKLSAgICAgICAgZm9ybWF0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIiVzICVzIik7Ci0gICAgICAgIGlmIChmb3JtYXQgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQogICAgIGlmIChzZWxmLT5maXJzdCA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19BdHRyaWJ1dGVFcnJvciwgImZpcnN0Iik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTM5LDE0ICsxMjgsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBhcmdzID0gUHlfQnVpbGRWYWx1ZSgiT08iLCBzZWxmLT5maXJzdCwgc2VsZi0+bGFzdCk7Ci0gICAgaWYgKGFyZ3MgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICByZXN1bHQgPSBQeVVuaWNvZGVfRm9ybWF0KGZvcm1hdCwgYXJncyk7Ci0gICAgUHlfREVDUkVGKGFyZ3MpOwotICAgIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlUyAlUyIsIHNlbGYtPmZpcnN0LCBzZWxmLT5sYXN0KTsKIH0KIAogc3RhdGljIFB5TWV0aG9kRGVmIE5vZGR5X21ldGhvZHNbXSA9IHsKQEAgLTE4MiwxMCArMTY0LDEwIEBACiAgICAgIk5vZGR5IG9iamVjdHMiLCAgICAgICAgICAgLyogdHBfZG9jICovCiAgICAgKHRyYXZlcnNlcHJvYylOb2RkeV90cmF2ZXJzZSwgICAvKiB0cF90cmF2ZXJzZSAqLwogICAgIChpbnF1aXJ5KU5vZGR5X2NsZWFyLCAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KLSAgICAwLAkJICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KLSAgICAwLAkJICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICAwLAkJICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwotICAgIDAsCQkgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KICAgICBOb2RkeV9tZXRob2RzLCAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgTm9kZHlfbWVtYmVycywgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwpAQCAtMjA4LDcgKzE5MCw3IEBACiB9OwogCiBQeU1PRElOSVRfRlVOQwotUHlJbml0X25vZGR5NCh2b2lkKSAKK1B5SW5pdF9ub2RkeTQodm9pZCkKIHsKICAgICBQeU9iamVjdCogbTsKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvX3RocmVhZC5yc3QgYi9Eb2MvbGlicmFyeS9fdGhyZWFkLnJzdAppbmRleCAzNjllOWNkLi43NTFjM2U4IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9fdGhyZWFkLnJzdAorKysgYi9Eb2MvbGlicmFyeS9fdGhyZWFkLnJzdApAQCAtMzUsNiArMzUsOSBAQAogCiAgICBSYWlzZWQgb24gdGhyZWFkLXNwZWNpZmljIGVycm9ycy4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFRoaXMgaXMgbm93IGEgc3lub255bSBvZiB0aGUgYnVpbHQtaW4gOmV4YzpgUnVudGltZUVycm9yYC4KKwogCiAuLiBkYXRhOjogTG9ja1R5cGUKIApAQCAtOTEsNyArOTQsNyBAQAogICAgKnNpemUqIGFyZ3VtZW50IHNwZWNpZmllcyB0aGUgc3RhY2sgc2l6ZSB0byBiZSB1c2VkIGZvciBzdWJzZXF1ZW50bHkgY3JlYXRlZAogICAgdGhyZWFkcywgYW5kIG11c3QgYmUgMCAodXNlIHBsYXRmb3JtIG9yIGNvbmZpZ3VyZWQgZGVmYXVsdCkgb3IgYSBwb3NpdGl2ZQogICAgaW50ZWdlciB2YWx1ZSBvZiBhdCBsZWFzdCAzMiw3NjggKDMya0IpLiBJZiBjaGFuZ2luZyB0aGUgdGhyZWFkIHN0YWNrIHNpemUgaXMKLSAgIHVuc3VwcG9ydGVkLCBhIDpleGM6YFRocmVhZEVycm9yYCBpcyByYWlzZWQuICBJZiB0aGUgc3BlY2lmaWVkIHN0YWNrIHNpemUgaXMKKyAgIHVuc3VwcG9ydGVkLCBhIDpleGM6YFJ1bnRpbWVFcnJvcmAgaXMgcmFpc2VkLiAgSWYgdGhlIHNwZWNpZmllZCBzdGFjayBzaXplIGlzCiAgICBpbnZhbGlkLCBhIDpleGM6YFZhbHVlRXJyb3JgIGlzIHJhaXNlZCBhbmQgdGhlIHN0YWNrIHNpemUgaXMgdW5tb2RpZmllZC4gIDMya0IKICAgIGlzIGN1cnJlbnRseSB0aGUgbWluaW11bSBzdXBwb3J0ZWQgc3RhY2sgc2l6ZSB2YWx1ZSB0byBndWFyYW50ZWUgc3VmZmljaWVudAogICAgc3RhY2sgc3BhY2UgZm9yIHRoZSBpbnRlcnByZXRlciBpdHNlbGYuICBOb3RlIHRoYXQgc29tZSBwbGF0Zm9ybXMgbWF5IGhhdmUKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2FiYy5yc3QgYi9Eb2MvbGlicmFyeS9hYmMucnN0CmluZGV4IDEwNDhiMjQuLmRjYTY5OTMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2FiYy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvYWJjLnJzdApAQCAtMTgsNyArMTgsNyBAQAogCiBUaGUgOm1vZDpgY29sbGVjdGlvbnNgIG1vZHVsZSBoYXMgc29tZSBjb25jcmV0ZSBjbGFzc2VzIHRoYXQgZGVyaXZlIGZyb20KIEFCQ3M7IHRoZXNlIGNhbiwgb2YgY291cnNlLCBiZSBmdXJ0aGVyIGRlcml2ZWQuIEluIGFkZGl0aW9uIHRoZQotOm1vZDpgY29sbGVjdGlvbnNgIG1vZHVsZSBoYXMgc29tZSBBQkNzIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCB3aGV0aGVyCis6bW9kOmBjb2xsZWN0aW9ucy5hYmNgIHN1Ym1vZHVsZSBoYXMgc29tZSBBQkNzIHRoYXQgY2FuIGJlIHVzZWQgdG8gdGVzdCB3aGV0aGVyCiBhIGNsYXNzIG9yIGluc3RhbmNlIHByb3ZpZGVzIGEgcGFydGljdWxhciBpbnRlcmZhY2UsIGZvciBleGFtcGxlLCBpcyBpdAogaGFzaGFibGUgb3IgYSBtYXBwaW5nLgogCkBAIC01NSw2ICs1NSw5IEBACiAgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHR1cGxlLCBNeUFCQykKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoKCksIE15QUJDKQogCisgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgICAgUmV0dXJucyB0aGUgcmVnaXN0ZXJlZCBzdWJjbGFzcywgdG8gYWxsb3cgdXNhZ2UgYXMgYSBjbGFzcyBkZWNvcmF0b3IuCisKICAgIFlvdSBjYW4gYWxzbyBvdmVycmlkZSB0aGlzIG1ldGhvZCBpbiBhbiBhYnN0cmFjdCBiYXNlIGNsYXNzOgogCiAgICAuLiBtZXRob2Q6OiBfX3N1YmNsYXNzaG9va19fKHN1YmNsYXNzKQpAQCAtMTI0LDE5ICsxMjcsMTggQEAKICAgIGF2YWlsYWJsZSBhcyBhIG1ldGhvZCBvZiBgYEZvb2BgLCBzbyBpdCBpcyBwcm92aWRlZCBzZXBhcmF0ZWx5LgogCiAKLUl0IGFsc28gcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBkZWNvcmF0b3JzOgorVGhlIDptb2Q6YGFiY2AgbW9kdWxlIGFsc28gcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBkZWNvcmF0b3JzOgogCiAuLiBkZWNvcmF0b3I6OiBhYnN0cmFjdG1ldGhvZChmdW5jdGlvbikKIAogICAgQSBkZWNvcmF0b3IgaW5kaWNhdGluZyBhYnN0cmFjdCBtZXRob2RzLgogCi0gICBVc2luZyB0aGlzIGRlY29yYXRvciByZXF1aXJlcyB0aGF0IHRoZSBjbGFzcydzIG1ldGFjbGFzcyBpcyA6Y2xhc3M6YEFCQ01ldGFgIG9yCi0gICBpcyBkZXJpdmVkIGZyb20gaXQuCi0gICBBIGNsYXNzIHRoYXQgaGFzIGEgbWV0YWNsYXNzIGRlcml2ZWQgZnJvbSA6Y2xhc3M6YEFCQ01ldGFgCi0gICBjYW5ub3QgYmUgaW5zdGFudGlhdGVkIHVubGVzcyBhbGwgb2YgaXRzIGFic3RyYWN0IG1ldGhvZHMgYW5kCi0gICBwcm9wZXJ0aWVzIGFyZSBvdmVycmlkZGVuLgotICAgVGhlIGFic3RyYWN0IG1ldGhvZHMgY2FuIGJlIGNhbGxlZCB1c2luZyBhbnkgb2YgdGhlIG5vcm1hbCAnc3VwZXInIGNhbGwKLSAgIG1lY2hhbmlzbXMuCisgICBVc2luZyB0aGlzIGRlY29yYXRvciByZXF1aXJlcyB0aGF0IHRoZSBjbGFzcydzIG1ldGFjbGFzcyBpcyA6Y2xhc3M6YEFCQ01ldGFgCisgICBvciBpcyBkZXJpdmVkIGZyb20gaXQuICBBIGNsYXNzIHRoYXQgaGFzIGEgbWV0YWNsYXNzIGRlcml2ZWQgZnJvbQorICAgOmNsYXNzOmBBQkNNZXRhYCBjYW5ub3QgYmUgaW5zdGFudGlhdGVkIHVubGVzcyBhbGwgb2YgaXRzIGFic3RyYWN0IG1ldGhvZHMKKyAgIGFuZCBwcm9wZXJ0aWVzIGFyZSBvdmVycmlkZGVuLiAgVGhlIGFic3RyYWN0IG1ldGhvZHMgY2FuIGJlIGNhbGxlZCB1c2luZyBhbnkKKyAgIG9mIHRoZSBub3JtYWwgJ3N1cGVyJyBjYWxsIG1lY2hhbmlzbXMuICA6ZnVuYzpgYWJzdHJhY3RtZXRob2RgIG1heSBiZSB1c2VkCisgICB0byBkZWNsYXJlIGFic3RyYWN0IG1ldGhvZHMgZm9yIHByb3BlcnRpZXMgYW5kIGRlc2NyaXB0b3JzLgogCiAgICBEeW5hbWljYWxseSBhZGRpbmcgYWJzdHJhY3QgbWV0aG9kcyB0byBhIGNsYXNzLCBvciBhdHRlbXB0aW5nIHRvIG1vZGlmeSB0aGUKICAgIGFic3RyYWN0aW9uIHN0YXR1cyBvZiBhIG1ldGhvZCBvciBjbGFzcyBvbmNlIGl0IGlzIGNyZWF0ZWQsIGFyZSBub3QKQEAgLTE0NCwxMiArMTQ2LDUyIEBACiAgICByZWd1bGFyIGluaGVyaXRhbmNlOyAidmlydHVhbCBzdWJjbGFzc2VzIiByZWdpc3RlcmVkIHdpdGggdGhlIEFCQydzCiAgICA6bWV0aDpgcmVnaXN0ZXJgIG1ldGhvZCBhcmUgbm90IGFmZmVjdGVkLgogCi0gICBVc2FnZTo6CisgICBXaGVuIDpmdW5jOmBhYnN0cmFjdG1ldGhvZGAgaXMgYXBwbGllZCBpbiBjb21iaW5hdGlvbiB3aXRoIG90aGVyIG1ldGhvZAorICAgZGVzY3JpcHRvcnMsIGl0IHNob3VsZCBiZSBhcHBsaWVkIGFzIHRoZSBpbm5lcm1vc3QgZGVjb3JhdG9yLCBhcyBzaG93biBpbgorICAgdGhlIGZvbGxvd2luZyB1c2FnZSBleGFtcGxlczo6CiAKICAgICAgIGNsYXNzIEMobWV0YWNsYXNzPUFCQ01ldGEpOgogICAgICAgICAgIEBhYnN0cmFjdG1ldGhvZAogICAgICAgICAgIGRlZiBteV9hYnN0cmFjdF9tZXRob2Qoc2VsZiwgLi4uKToKICAgICAgICAgICAgICAgLi4uCisgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAgQGFic3RyYWN0bWV0aG9kCisgICAgICAgICAgZGVmIG15X2Fic3RyYWN0X2NsYXNzbWV0aG9kKGNscywgLi4uKToKKyAgICAgICAgICAgICAgLi4uCisgICAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICAgIEBhYnN0cmFjdG1ldGhvZAorICAgICAgICAgIGRlZiBteV9hYnN0cmFjdF9zdGF0aWNtZXRob2QoLi4uKToKKyAgICAgICAgICAgICAgLi4uCisKKyAgICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgICBAYWJzdHJhY3RtZXRob2QKKyAgICAgICAgICBkZWYgbXlfYWJzdHJhY3RfcHJvcGVydHkoc2VsZik6CisgICAgICAgICAgICAgIC4uLgorICAgICAgICAgIEBteV9hYnN0cmFjdF9wcm9wZXJ0eS5zZXR0ZXIKKyAgICAgICAgICBAYWJzdHJhY3RtZXRob2QKKyAgICAgICAgICBkZWYgbXlfYWJzdHJhY3RfcHJvcGVydHkoc2VsZiwgdmFsKToKKyAgICAgICAgICAgICAgLi4uCisKKyAgICAgICAgICBAYWJzdHJhY3RtZXRob2QKKyAgICAgICAgICBkZWYgX2dldF94KHNlbGYpOgorICAgICAgICAgICAgICAuLi4KKyAgICAgICAgICBAYWJzdHJhY3RtZXRob2QKKyAgICAgICAgICBkZWYgX3NldF94KHNlbGYsIHZhbCk6CisgICAgICAgICAgICAgIC4uLgorICAgICAgICAgIHggPSBwcm9wZXJ0eShfZ2V0X3gsIF9zZXRfeCkKKworICAgSW4gb3JkZXIgdG8gY29ycmVjdGx5IGludGVyb3BlcmF0ZSB3aXRoIHRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzIG1hY2hpbmVyeSwKKyAgIHRoZSBkZXNjcmlwdG9yIG11c3QgaWRlbnRpZnkgaXRzZWxmIGFzIGFic3RyYWN0IHVzaW5nCisgICA6YXR0cjpgX19pc2Fic3RyYWN0bWV0aG9kX19gLiBJbiBnZW5lcmFsLCB0aGlzIGF0dHJpYnV0ZSBzaG91bGQgYmUgYGBUcnVlYGAKKyAgIGlmIGFueSBvZiB0aGUgbWV0aG9kcyB1c2VkIHRvIGNvbXBvc2UgdGhlIGRlc2NyaXB0b3IgYXJlIGFic3RyYWN0LiBGb3IKKyAgIGV4YW1wbGUsIFB5dGhvbidzIGJ1aWx0LWluIHByb3BlcnR5IGRvZXMgdGhlIGVxdWl2YWxlbnQgb2Y6OgorCisgICAgICBjbGFzcyBEZXNjcmlwdG9yOgorICAgICAgICAgIC4uLgorICAgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICAgIGRlZiBfX2lzYWJzdHJhY3RtZXRob2RfXyhzZWxmKToKKyAgICAgICAgICAgICAgcmV0dXJuIGFueShnZXRhdHRyKGYsICdfX2lzYWJzdHJhY3RtZXRob2RfXycsIEZhbHNlKSBmb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICBmIGluIChzZWxmLl9mZ2V0LCBzZWxmLl9mc2V0LCBzZWxmLl9mZGVsKSkKIAogICAgLi4gbm90ZTo6CiAKQEAgLTE3NCw2ICsyMTYsOCBAQAogICAgICAgICAgICAgICAuLi4KIAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisgICAgICAgVXNlIDpjbGFzczpgY2xhc3NtZXRob2RgIHdpdGggOmZ1bmM6YGFic3RyYWN0bWV0aG9kYCBpbnN0ZWFkLgogCiAKIC4uIGRlY29yYXRvcjo6IGFic3RyYWN0c3RhdGljbWV0aG9kKGZ1bmN0aW9uKQpAQCAtMTg5LDE4ICsyMzMsMTkgQEAKICAgICAgICAgICAgICAgLi4uCiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgorICAgLi4gZGVwcmVjYXRlZDo6IDMuMworICAgICAgIFVzZSA6Y2xhc3M6YHN0YXRpY21ldGhvZGAgd2l0aCA6ZnVuYzpgYWJzdHJhY3RtZXRob2RgIGluc3RlYWQuCiAKIAotLi4gZnVuY3Rpb246OiBhYnN0cmFjdHByb3BlcnR5KGZnZXQ9Tm9uZSwgZnNldD1Ob25lLCBmZGVsPU5vbmUsIGRvYz1Ob25lKQorLi4gZGVjb3JhdG9yOjogYWJzdHJhY3Rwcm9wZXJ0eShmZ2V0PU5vbmUsIGZzZXQ9Tm9uZSwgZmRlbD1Ob25lLCBkb2M9Tm9uZSkKIAogICAgQSBzdWJjbGFzcyBvZiB0aGUgYnVpbHQtaW4gOmZ1bmM6YHByb3BlcnR5YCwgaW5kaWNhdGluZyBhbiBhYnN0cmFjdCBwcm9wZXJ0eS4KIAotICAgVXNpbmcgdGhpcyBmdW5jdGlvbiByZXF1aXJlcyB0aGF0IHRoZSBjbGFzcydzIG1ldGFjbGFzcyBpcyA6Y2xhc3M6YEFCQ01ldGFgIG9yCi0gICBpcyBkZXJpdmVkIGZyb20gaXQuCi0gICBBIGNsYXNzIHRoYXQgaGFzIGEgbWV0YWNsYXNzIGRlcml2ZWQgZnJvbSA6Y2xhc3M6YEFCQ01ldGFgIGNhbm5vdCBiZQotICAgaW5zdGFudGlhdGVkIHVubGVzcyBhbGwgb2YgaXRzIGFic3RyYWN0IG1ldGhvZHMgYW5kIHByb3BlcnRpZXMgYXJlIG92ZXJyaWRkZW4uCi0gICBUaGUgYWJzdHJhY3QgcHJvcGVydGllcyBjYW4gYmUgY2FsbGVkIHVzaW5nIGFueSBvZiB0aGUgbm9ybWFsCi0gICAnc3VwZXInIGNhbGwgbWVjaGFuaXNtcy4KKyAgIFVzaW5nIHRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgdGhhdCB0aGUgY2xhc3MncyBtZXRhY2xhc3MgaXMgOmNsYXNzOmBBQkNNZXRhYAorICAgb3IgaXMgZGVyaXZlZCBmcm9tIGl0LiBBIGNsYXNzIHRoYXQgaGFzIGEgbWV0YWNsYXNzIGRlcml2ZWQgZnJvbQorICAgOmNsYXNzOmBBQkNNZXRhYCBjYW5ub3QgYmUgaW5zdGFudGlhdGVkIHVubGVzcyBhbGwgb2YgaXRzIGFic3RyYWN0IG1ldGhvZHMKKyAgIGFuZCBwcm9wZXJ0aWVzIGFyZSBvdmVycmlkZGVuLiBUaGUgYWJzdHJhY3QgcHJvcGVydGllcyBjYW4gYmUgY2FsbGVkIHVzaW5nCisgICBhbnkgb2YgdGhlIG5vcm1hbCAnc3VwZXInIGNhbGwgbWVjaGFuaXNtcy4KIAogICAgVXNhZ2U6OgogCkBAIC0yMTcsNiArMjYyLDkgQEAKICAgICAgICAgICBkZWYgc2V0eChzZWxmLCB2YWx1ZSk6IC4uLgogICAgICAgICAgIHggPSBhYnN0cmFjdHByb3BlcnR5KGdldHgsIHNldHgpCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKyAgICAgICBVc2UgOmNsYXNzOmBwcm9wZXJ0eWAgd2l0aCA6ZnVuYzpgYWJzdHJhY3RtZXRob2RgIGluc3RlYWQKKwogCiAuLiBydWJyaWM6OiBGb290bm90ZXMKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvYXJjaGl2aW5nLnJzdCBiL0RvYy9saWJyYXJ5L2FyY2hpdmluZy5yc3QKaW5kZXggNzVkMTM3Yy4uYzkyODQ5NCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvYXJjaGl2aW5nLnJzdAorKysgYi9Eb2MvbGlicmFyeS9hcmNoaXZpbmcucnN0CkBAIC01LDggKzUsOSBAQAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAKIFRoZSBtb2R1bGVzIGRlc2NyaWJlZCBpbiB0aGlzIGNoYXB0ZXIgc3VwcG9ydCBkYXRhIGNvbXByZXNzaW9uIHdpdGggdGhlIHpsaWIsCi1nemlwLCBhbmQgYnppcDIgYWxnb3JpdGhtcywgYW5kICB0aGUgY3JlYXRpb24gb2YgWklQLSBhbmQgdGFyLWZvcm1hdCBhcmNoaXZlcy4KLVNlZSBhbHNvIDpyZWY6YGFyY2hpdmluZy1vcGVyYXRpb25zYCBwcm92aWRlZCBieSB0aGUgOm1vZDpgc2h1dGlsYCBtb2R1bGUuCitnemlwLCBiemlwMiBhbmQgbHptYSBhbGdvcml0aG1zLCBhbmQgdGhlIGNyZWF0aW9uIG9mIFpJUC0gYW5kIHRhci1mb3JtYXQKK2FyY2hpdmVzLiAgU2VlIGFsc28gOnJlZjpgYXJjaGl2aW5nLW9wZXJhdGlvbnNgIHByb3ZpZGVkIGJ5IHRoZSA6bW9kOmBzaHV0aWxgCittb2R1bGUuCiAKIAogLi4gdG9jdHJlZTo6CkBAIC0xNCw1ICsxNSw2IEBACiAgICB6bGliLnJzdAogICAgZ3ppcC5yc3QKICAgIGJ6Mi5yc3QKKyAgIGx6bWEucnN0CiAgICB6aXBmaWxlLnJzdAogICAgdGFyZmlsZS5yc3QKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2FyZ3BhcnNlLnJzdCBiL0RvYy9saWJyYXJ5L2FyZ3BhcnNlLnJzdAppbmRleCBkNjRmOGEyLi4yMWYwNmYzIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9hcmdwYXJzZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvYXJncGFyc2UucnN0CkBAIC0zNjgsMTYgKzM2OCwxNiBAQAogXl5eXl5eXl5eXl5eXl5eCiAKIDpjbGFzczpgQXJndW1lbnRQYXJzZXJgIG9iamVjdHMgYWxsb3cgdGhlIGhlbHAgZm9ybWF0dGluZyB0byBiZSBjdXN0b21pemVkIGJ5Ci1zcGVjaWZ5aW5nIGFuIGFsdGVybmF0ZSBmb3JtYXR0aW5nIGNsYXNzLiAgQ3VycmVudGx5LCB0aGVyZSBhcmUgdGhyZWUgc3VjaAorc3BlY2lmeWluZyBhbiBhbHRlcm5hdGUgZm9ybWF0dGluZyBjbGFzcy4gIEN1cnJlbnRseSwgdGhlcmUgYXJlIGZvdXIgc3VjaAogY2xhc3NlczoKIAogLi4gY2xhc3M6OiBSYXdEZXNjcmlwdGlvbkhlbHBGb3JtYXR0ZXIKICAgICAgICAgICAgUmF3VGV4dEhlbHBGb3JtYXR0ZXIKICAgICAgICAgICAgQXJndW1lbnREZWZhdWx0c0hlbHBGb3JtYXR0ZXIKKyAgICAgICAgICAgTWV0YXZhclR5cGVIZWxwRm9ybWF0dGVyCiAKLVRoZSBmaXJzdCB0d28gYWxsb3cgbW9yZSBjb250cm9sIG92ZXIgaG93IHRleHR1YWwgZGVzY3JpcHRpb25zIGFyZSBkaXNwbGF5ZWQsCi13aGlsZSB0aGUgbGFzdCBhdXRvbWF0aWNhbGx5IGFkZHMgaW5mb3JtYXRpb24gYWJvdXQgYXJndW1lbnQgZGVmYXVsdCB2YWx1ZXMuCi0KKzpjbGFzczpgUmF3RGVzY3JpcHRpb25IZWxwRm9ybWF0dGVyYCBhbmQgOmNsYXNzOmBSYXdUZXh0SGVscEZvcm1hdHRlcmAgZ2l2ZQorbW9yZSBjb250cm9sIG92ZXIgaG93IHRleHR1YWwgZGVzY3JpcHRpb25zIGFyZSBkaXNwbGF5ZWQuCiBCeSBkZWZhdWx0LCA6Y2xhc3M6YEFyZ3VtZW50UGFyc2VyYCBvYmplY3RzIGxpbmUtd3JhcCB0aGUgZGVzY3JpcHRpb25fIGFuZAogZXBpbG9nXyB0ZXh0cyBpbiBjb21tYW5kLWxpbmUgaGVscCBtZXNzYWdlczo6CiAKQEAgLTQzMCw4ICs0MzAsOCBAQAogOmNsYXNzOmBSYXdUZXh0SGVscEZvcm1hdHRlcmAgbWFpbnRhaW5zIHdoaXRlc3BhY2UgZm9yIGFsbCBzb3J0cyBvZiBoZWxwIHRleHQsCiBpbmNsdWRpbmcgYXJndW1lbnQgZGVzY3JpcHRpb25zLgogCi1UaGUgb3RoZXIgZm9ybWF0dGVyIGNsYXNzIGF2YWlsYWJsZSwgOmNsYXNzOmBBcmd1bWVudERlZmF1bHRzSGVscEZvcm1hdHRlcmAsCi13aWxsIGFkZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBlYWNoIG9mIHRoZSBhcmd1bWVudHM6OgorOmNsYXNzOmBBcmd1bWVudERlZmF1bHRzSGVscEZvcm1hdHRlcmAgYXV0b21hdGljYWxseSBhZGRzIGluZm9ybWF0aW9uIGFib3V0CitkZWZhdWx0IHZhbHVlcyB0byBlYWNoIG9mIHRoZSBhcmd1bWVudCBoZWxwIG1lc3NhZ2VzOjoKIAogICAgPj4+IHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKAogICAgLi4uICAgICBwcm9nPSdQUk9HJywKQEAgLTQ0OCw2ICs0NDgsMjUgQEAKICAgICAtaCwgLS1oZWxwICBzaG93IHRoaXMgaGVscCBtZXNzYWdlIGFuZCBleGl0CiAgICAgLS1mb28gRk9PICAgRk9PISAoZGVmYXVsdDogNDIpCiAKKzpjbGFzczpgTWV0YXZhclR5cGVIZWxwRm9ybWF0dGVyYCB1c2VzIHRoZSBuYW1lIG9mIHRoZSB0eXBlXyBhcmd1bWVudCBmb3IgZWFjaAorYXJndW1lbnQgYXMgdGhlIGRpc3BsYXkgbmFtZSBmb3IgaXRzIHZhbHVlcyAocmF0aGVyIHRoYW4gdXNpbmcgdGhlIGRlc3RfCithcyB0aGUgcmVndWxhciBmb3JtYXR0ZXIgZG9lcyk6OgorCisgICA+Pj4gcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoCisgICAuLi4gICAgIHByb2c9J1BST0cnLAorICAgLi4uICAgICBmb3JtYXR0ZXJfY2xhc3M9YXJncGFyc2UuTWV0YXZhclR5cGVIZWxwRm9ybWF0dGVyKQorICAgPj4+IHBhcnNlci5hZGRfYXJndW1lbnQoJy0tZm9vJywgdHlwZT1pbnQpCisgICA+Pj4gcGFyc2VyLmFkZF9hcmd1bWVudCgnYmFyJywgdHlwZT1mbG9hdCkKKyAgID4+PiBwYXJzZXIucHJpbnRfaGVscCgpCisgICB1c2FnZTogUFJPRyBbLWhdIFstLWZvbyBpbnRdIGZsb2F0CisKKyAgIHBvc2l0aW9uYWwgYXJndW1lbnRzOgorICAgICBmbG9hdAorCisgICBvcHRpb25hbCBhcmd1bWVudHM6CisgICAgIC1oLCAtLWhlbHAgIHNob3cgdGhpcyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKKyAgICAgLS1mb28gaW50CisKIAogY29uZmxpY3RfaGFuZGxlcgogXl5eXl5eXl5eXl5eXl5eXgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvYXJyYXkucnN0IGIvRG9jL2xpYnJhcnkvYXJyYXkucnN0CmluZGV4IGQ1NjNjY2UuLjNlMjc1YTIgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2FycmF5LnJzdAorKysgYi9Eb2MvbGlicmFyeS9hcnJheS5yc3QKQEAgLTE0LDM2ICsxNCw0NCBAQAogOmRmbjpgdHlwZSBjb2RlYCwgd2hpY2ggaXMgYSBzaW5nbGUgY2hhcmFjdGVyLiAgVGhlIGZvbGxvd2luZyB0eXBlIGNvZGVzIGFyZQogZGVmaW5lZDoKIAotKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgVHlwZSBjb2RlIHwgQyBUeXBlICAgICAgICAgfCBQeXRob24gVHlwZSAgICAgICB8IE1pbmltdW0gc2l6ZSBpbiBieXRlcyB8Ci0rPT09PT09PT09PT0rPT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09KwotfCBgYCdiJ2BgICAgfCBzaWduZWQgY2hhciAgICB8IGludCAgICAgICAgICAgICAgIHwgMSAgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgJ0InYGAgICB8IHVuc2lnbmVkIGNoYXIgIHwgaW50ICAgICAgICAgICAgICAgfCAxICAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGAndSdgYCAgIHwgUHlfVU5JQ09ERSAgICAgfCBVbmljb2RlIGNoYXJhY3RlciB8IDIgKHNlZSBub3RlKSAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYCdoJ2BgICAgfCBzaWduZWQgc2hvcnQgICB8IGludCAgICAgICAgICAgICAgIHwgMiAgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgJ0gnYGAgICB8IHVuc2lnbmVkIHNob3J0IHwgaW50ICAgICAgICAgICAgICAgfCAyICAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGAnaSdgYCAgIHwgc2lnbmVkIGludCAgICAgfCBpbnQgICAgICAgICAgICAgICB8IDIgICAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYCdJJ2BgICAgfCB1bnNpZ25lZCBpbnQgICB8IGludCAgICAgICAgICAgICAgIHwgMiAgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgJ2wnYGAgICB8IHNpZ25lZCBsb25nICAgIHwgaW50ICAgICAgICAgICAgICAgfCA0ICAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGAnTCdgYCAgIHwgdW5zaWduZWQgbG9uZyAgfCBpbnQgICAgICAgICAgICAgICB8IDQgICAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYCdmJ2BgICAgfCBmbG9hdCAgICAgICAgICB8IGZsb2F0ICAgICAgICAgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgJ2QnYGAgICB8IGRvdWJsZSAgICAgICAgIHwgZmxvYXQgICAgICAgICAgICAgfCA4ICAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKystLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCit8IFR5cGUgY29kZSB8IEMgVHlwZSAgICAgICAgICAgICB8IFB5dGhvbiBUeXBlICAgICAgIHwgTWluaW11bSBzaXplIGluIGJ5dGVzIHwgTm90ZXMgfAorKz09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PSsKK3wgYGAnYidgYCAgIHwgc2lnbmVkIGNoYXIgICAgICAgIHwgaW50ICAgICAgICAgICAgICAgfCAxICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CisrLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdCJ2BgICAgfCB1bnNpZ25lZCBjaGFyICAgICAgfCBpbnQgICAgICAgICAgICAgICB8IDEgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwKKystLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCit8IGBgJ3UnYGAgICB8IFB5X1VDUzQgICAgICAgICAgICB8IFVuaWNvZGUgY2hhcmFjdGVyIHwgNCAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKK3wgYGAnaCdgYCAgIHwgc2lnbmVkIHNob3J0ICAgICAgIHwgaW50ICAgICAgICAgICAgICAgfCAyICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CisrLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdIJ2BgICAgfCB1bnNpZ25lZCBzaG9ydCAgICAgfCBpbnQgICAgICAgICAgICAgICB8IDIgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwKKystLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCit8IGBgJ2knYGAgICB8IHNpZ25lZCBpbnQgICAgICAgICB8IGludCAgICAgICAgICAgICAgIHwgMiAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKK3wgYGAnSSdgYCAgIHwgdW5zaWduZWQgaW50ICAgICAgIHwgaW50ICAgICAgICAgICAgICAgfCAyICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CisrLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdsJ2BgICAgfCBzaWduZWQgbG9uZyAgICAgICAgfCBpbnQgICAgICAgICAgICAgICB8IDQgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwKKystLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCit8IGBgJ0wnYGAgICB8IHVuc2lnbmVkIGxvbmcgICAgICB8IGludCAgICAgICAgICAgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKK3wgYGAncSdgYCAgIHwgc2lnbmVkIGxvbmcgbG9uZyAgIHwgaW50ICAgICAgICAgICAgICAgfCA4ICAgICAgICAgICAgICAgICAgICAgfCBcKDEpICB8CisrLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdRJ2BgICAgfCB1bnNpZ25lZCBsb25nIGxvbmcgfCBpbnQgICAgICAgICAgICAgICB8IDggICAgICAgICAgICAgICAgICAgICB8IFwoMSkgIHwKKystLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCit8IGBgJ2YnYGAgICB8IGZsb2F0ICAgICAgICAgICAgICB8IGZsb2F0ICAgICAgICAgICAgIHwgNCAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKK3wgYGAnZCdgYCAgIHwgZG91YmxlICAgICAgICAgICAgIHwgZmxvYXQgICAgICAgICAgICAgfCA4ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CisrLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKwogCi0uLiBub3RlOjoKK05vdGVzOgogCi0gICBUaGUgYGAndSdgYCB0eXBlY29kZSBjb3JyZXNwb25kcyB0byBQeXRob24ncyB1bmljb2RlIGNoYXJhY3Rlci4gIE9uIG5hcnJvdwotICAgVW5pY29kZSBidWlsZHMgdGhpcyBpcyAyLWJ5dGVzLCBvbiB3aWRlIGJ1aWxkcyB0aGlzIGlzIDQtYnl0ZXMuCisoMSkKKyAgIFRoZSBgYCdxJ2BgIGFuZCBgYCdRJ2BgIHR5cGUgY29kZXMgYXJlIGF2YWlsYWJsZSBvbmx5IGlmCisgICB0aGUgcGxhdGZvcm0gQyBjb21waWxlciB1c2VkIHRvIGJ1aWxkIFB5dGhvbiBzdXBwb3J0cyBDIDpjOnR5cGU6YGxvbmcgbG9uZ2AsCisgICBvciwgb24gV2luZG93cywgOmM6dHlwZTpgX19pbnQ2NGAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiBUaGUgYWN0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHZhbHVlcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBtYWNoaW5lIGFyY2hpdGVjdHVyZQogKHN0cmljdGx5IHNwZWFraW5nLCBieSB0aGUgQyBpbXBsZW1lbnRhdGlvbikuICBUaGUgYWN0dWFsIHNpemUgY2FuIGJlIGFjY2Vzc2VkCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9hc3QucnN0IGIvRG9jL2xpYnJhcnkvYXN0LnJzdAppbmRleCBlMmMwYjZkLi4xNmRlM2NhIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9hc3QucnN0CisrKyBiL0RvYy9saWJyYXJ5L2FzdC5yc3QKQEAgLTk2LDkgKzk2LDYgQEAKIEFic3RyYWN0IEdyYW1tYXIKIC0tLS0tLS0tLS0tLS0tLS0KIAotVGhlIG1vZHVsZSBkZWZpbmVzIGEgc3RyaW5nIGNvbnN0YW50IGBgX192ZXJzaW9uX19gYCB3aGljaCBpcyB0aGUgZGVjaW1hbAotU3VidmVyc2lvbiByZXZpc2lvbiBudW1iZXIgb2YgdGhlIGZpbGUgc2hvd24gYmVsb3cuCi0KIFRoZSBhYnN0cmFjdCBncmFtbWFyIGlzIGN1cnJlbnRseSBkZWZpbmVkIGFzIGZvbGxvd3M6CiAKIC4uIGxpdGVyYWxpbmNsdWRlOjogLi4vLi4vUGFyc2VyL1B5dGhvbi5hc2RsCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9hc3luY2hhdC5yc3QgYi9Eb2MvbGlicmFyeS9hc3luY2hhdC5yc3QKaW5kZXggNzViM2NkYS4uNTVjNjFkNyAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvYXN5bmNoYXQucnN0CisrKyBiL0RvYy9saWJyYXJ5L2FzeW5jaGF0LnJzdApAQCAtMTk3LDYgKzE5Nyw5IEBACiBtYXJzaGFsbGVkLCBhZnRlciBzZXR0aW5nIHRoZSBjaGFubmVsIHRlcm1pbmF0b3IgdG8gYGBOb25lYGAgdG8gZW5zdXJlIHRoYXQKIGFueSBleHRyYW5lb3VzIGRhdGEgc2VudCBieSB0aGUgd2ViIGNsaWVudCBhcmUgaWdub3JlZC4gOjoKIAorCisgICBpbXBvcnQgYXN5bmNoYXQKKwogICAgY2xhc3MgaHR0cF9yZXF1ZXN0X2hhbmRsZXIoYXN5bmNoYXQuYXN5bmNfY2hhdCk6CiAKICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgc29jaywgYWRkciwgc2Vzc2lvbnMsIGxvZyk6CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9hc3luY29yZS5yc3QgYi9Eb2MvbGlicmFyeS9hc3luY29yZS5yc3QKaW5kZXggNjE5YjdiYi4uN2NhY2NhMSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvYXN5bmNvcmUucnN0CisrKyBiL0RvYy9saWJyYXJ5L2FzeW5jb3JlLnJzdApAQCAtMTg0LDEyICsxODQsMTUgQEAKICAgIE1vc3Qgb2YgdGhlc2UgYXJlIG5lYXJseSBpZGVudGljYWwgdG8gdGhlaXIgc29ja2V0IHBhcnRuZXJzLgogCiAKLSAgIC4uIG1ldGhvZDo6IGNyZWF0ZV9zb2NrZXQoZmFtaWx5LCB0eXBlKQorICAgLi4gbWV0aG9kOjogY3JlYXRlX3NvY2tldChmYW1pbHk9c29ja2V0LkFGX0lORVQsIHR5cGU9c29ja2V0LlNPQ0tfU1RSRUFNKQogCiAgICAgICBUaGlzIGlzIGlkZW50aWNhbCB0byB0aGUgY3JlYXRpb24gb2YgYSBub3JtYWwgc29ja2V0LCBhbmQgd2lsbCB1c2UgdGhlCiAgICAgICBzYW1lIG9wdGlvbnMgZm9yIGNyZWF0aW9uLiAgUmVmZXIgdG8gdGhlIDptb2Q6YHNvY2tldGAgZG9jdW1lbnRhdGlvbiBmb3IKICAgICAgIGluZm9ybWF0aW9uIG9uIGNyZWF0aW5nIHNvY2tldHMuCiAKKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAgICAqZmFtaWx5KiBhbmQgKnR5cGUqIGFyZ3VtZW50cyBjYW4gYmUgb21pdHRlZC4KKwogCiAgICAuLiBtZXRob2Q6OiBjb25uZWN0KGFkZHJlc3MpCiAKQEAgLTI3NCwxMyArMjc3LDEzIEBACiBIZXJlIGlzIGEgdmVyeSBiYXNpYyBIVFRQIGNsaWVudCB0aGF0IHVzZXMgdGhlIDpjbGFzczpgZGlzcGF0Y2hlcmAgY2xhc3MgdG8KIGltcGxlbWVudCBpdHMgc29ja2V0IGhhbmRsaW5nOjoKIAotICAgaW1wb3J0IGFzeW5jb3JlLCBzb2NrZXQKKyAgIGltcG9ydCBhc3luY29yZQogCiAgICBjbGFzcyBIVFRQQ2xpZW50KGFzeW5jb3JlLmRpc3BhdGNoZXIpOgogCiAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QsIHBhdGgpOgogICAgICAgICAgICBhc3luY29yZS5kaXNwYXRjaGVyLl9faW5pdF9fKHNlbGYpCi0gICAgICAgICAgIHNlbGYuY3JlYXRlX3NvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgICAgICAgICBzZWxmLmNyZWF0ZV9zb2NrZXQoKQogICAgICAgICAgICBzZWxmLmNvbm5lY3QoIChob3N0LCA4MCkgKQogICAgICAgICAgICBzZWxmLmJ1ZmZlciA9IGJ5dGVzKCdHRVQgJXMgSFRUUC8xLjBcclxuSG9zdDogJXNcclxuXHJcbicgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXRoLCBob3N0KSwgJ2FzY2lpJykKQEAgLTMxNCw3ICszMTcsNiBAQAogY29ubmVjdGlvbnMgYW5kIGRpc3BhdGNoZXMgdGhlIGluY29taW5nIGNvbm5lY3Rpb25zIHRvIGEgaGFuZGxlcjo6CiAKICAgICBpbXBvcnQgYXN5bmNvcmUKLSAgICBpbXBvcnQgc29ja2V0CiAKICAgICBjbGFzcyBFY2hvSGFuZGxlcihhc3luY29yZS5kaXNwYXRjaGVyX3dpdGhfc2VuZCk6CiAKQEAgLTMyNyw3ICszMjksNyBAQAogCiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0KToKICAgICAgICAgICAgIGFzeW5jb3JlLmRpc3BhdGNoZXIuX19pbml0X18oc2VsZikKLSAgICAgICAgICAgIHNlbGYuY3JlYXRlX3NvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgICAgICAgICAgc2VsZi5jcmVhdGVfc29ja2V0KCkKICAgICAgICAgICAgIHNlbGYuc2V0X3JldXNlX2FkZHIoKQogICAgICAgICAgICAgc2VsZi5iaW5kKChob3N0LCBwb3J0KSkKICAgICAgICAgICAgIHNlbGYubGlzdGVuKDUpCkBAIC0zMzgsNCArMzQwLDMgQEAKIAogICAgIHNlcnZlciA9IEVjaG9TZXJ2ZXIoJ2xvY2FsaG9zdCcsIDgwODApCiAgICAgYXN5bmNvcmUubG9vcCgpCi0KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2F0ZXhpdC5yc3QgYi9Eb2MvbGlicmFyeS9hdGV4aXQucnN0CmluZGV4IDdjNzZiYWIuLjNkNWMwMTQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2F0ZXhpdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvYXRleGl0LnJzdApAQCAtNjcsOCArNjcsOSBAQAogbWFraW5nIGFuIGV4cGxpY2l0IGNhbGwgaW50byB0aGlzIG1vZHVsZSBhdCB0ZXJtaW5hdGlvbi4gOjoKIAogICAgdHJ5OgotICAgICAgIF9jb3VudCA9IGludChvcGVuKCIvdG1wL2NvdW50ZXIiKS5yZWFkKCkpCi0gICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICB3aXRoIG9wZW4oIi90bXAvY291bnRlciIpIGFzIGluZmlsZToKKyAgICAgICAgICAgX2NvdW50ID0gaW50KGluZmlsZS5yZWFkKCkpCisgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6CiAgICAgICAgX2NvdW50ID0gMAogCiAgICBkZWYgaW5jcmNvdW50ZXIobik6CkBAIC03Niw3ICs3Nyw4IEBACiAgICAgICAgX2NvdW50ID0gX2NvdW50ICsgbgogCiAgICBkZWYgc2F2ZWNvdW50ZXIoKToKLSAgICAgICBvcGVuKCIvdG1wL2NvdW50ZXIiLCAidyIpLndyaXRlKCIlZCIgJSBfY291bnQpCisgICAgICAgd2l0aCBvcGVuKCIvdG1wL2NvdW50ZXIiLCAidyIpIGFzIG91dGZpbGU6CisgICAgICAgICAgIG91dGZpbGUud3JpdGUoIiVkIiAlIF9jb3VudCkKIAogICAgaW1wb3J0IGF0ZXhpdAogICAgYXRleGl0LnJlZ2lzdGVyKHNhdmVjb3VudGVyKQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvYmFzZTY0LnJzdCBiL0RvYy9saWJyYXJ5L2Jhc2U2NC5yc3QKaW5kZXggMDZmM2FiMS4uYWZiZWRjZSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvYmFzZTY0LnJzdAorKysgYi9Eb2MvbGlicmFyeS9iYXNlNjQucnN0CkBAIC0xOCw5ICsxOCwxNCBAQAogCiBUaGVyZSBhcmUgdHdvIGludGVyZmFjZXMgcHJvdmlkZWQgYnkgdGhpcyBtb2R1bGUuICBUaGUgbW9kZXJuIGludGVyZmFjZQogc3VwcG9ydHMgZW5jb2RpbmcgYW5kIGRlY29kaW5nIEFTQ0lJIGJ5dGUgc3RyaW5nIG9iamVjdHMgdXNpbmcgYWxsIHRocmVlCi1hbHBoYWJldHMuICBUaGUgbGVnYWN5IGludGVyZmFjZSBwcm92aWRlcyBmb3IgZW5jb2RpbmcgYW5kIGRlY29kaW5nIHRvIGFuZCBmcm9tCi1maWxlLWxpa2Ugb2JqZWN0cyBhcyB3ZWxsIGFzIGJ5dGUgc3RyaW5ncywgYnV0IG9ubHkgdXNpbmcgdGhlIEJhc2U2NCBzdGFuZGFyZAotYWxwaGFiZXQuCithbHBoYWJldHMuIEFkZGl0aW9uYWxseSwgdGhlIGRlY29kaW5nIGZ1bmN0aW9ucyBvZiB0aGUgbW9kZXJuIGludGVyZmFjZSBhbHNvCithY2NlcHQgVW5pY29kZSBzdHJpbmdzIGNvbnRhaW5pbmcgb25seSBBU0NJSSBjaGFyYWN0ZXJzLiBUaGUgbGVnYWN5IGludGVyZmFjZQorcHJvdmlkZXMgZm9yIGVuY29kaW5nIGFuZCBkZWNvZGluZyB0byBhbmQgZnJvbSBmaWxlLWxpa2Ugb2JqZWN0cyBhcyB3ZWxsIGFzCitieXRlIHN0cmluZ3MsIGJ1dCBvbmx5IHVzaW5nIHRoZSBCYXNlNjQgc3RhbmRhcmQgYWxwaGFiZXQuCisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBBU0NJSS1vbmx5IFVuaWNvZGUgc3RyaW5ncyBhcmUgbm93IGFjY2VwdGVkIGJ5IHRoZSBkZWNvZGluZyBmdW5jdGlvbnMgb2YKKyAgIHRoZSBtb2Rlcm4gaW50ZXJmYWNlLgogCiBUaGUgbW9kZXJuIGludGVyZmFjZSBwcm92aWRlczoKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvYmluYXNjaWkucnN0IGIvRG9jL2xpYnJhcnkvYmluYXNjaWkucnN0CmluZGV4IDJhYTM3MDIuLmJhZjQzMGQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2JpbmFzY2lpLnJzdAorKysgYi9Eb2MvbGlicmFyeS9iaW5hc2NpaS5yc3QKQEAgLTIwLDggKzIwLDEzIEBACiAKIC4uIG5vdGU6OgogCi0gICBFbmNvZGluZyBhbmQgZGVjb2RpbmcgZnVuY3Rpb25zIGRvIG5vdCBhY2NlcHQgVW5pY29kZSBzdHJpbmdzLiAgT25seSBieXRlc3RyaW5nCi0gICBhbmQgYnl0ZWFycmF5IG9iamVjdHMgY2FuIGJlIHByb2Nlc3NlZC4KKyAgIGBgYTJiXypgYCBmdW5jdGlvbnMgYWNjZXB0IFVuaWNvZGUgc3RyaW5ncyBjb250YWluaW5nIG9ubHkgQVNDSUkgY2hhcmFjdGVycy4KKyAgIE90aGVyIGZ1bmN0aW9ucyBvbmx5IGFjY2VwdCBieXRlcyBhbmQgYnl0ZXMtY29tcGF0aWJsZSBvYmplY3RzIChzdWNoIGFzCisgICBieXRlYXJyYXkgb2JqZWN0cyBhbmQgb3RoZXIgb2JqZWN0cyBpbXBsZW1lbnRpbmcgdGhlIGJ1ZmZlciBBUEkpLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQVNDSUktb25seSB1bmljb2RlIHN0cmluZ3MgYXJlIG5vdyBhY2NlcHRlZCBieSB0aGUgYGBhMmJfKmBgIGZ1bmN0aW9ucy4KKwogCiBUaGUgOm1vZDpgYmluYXNjaWlgIG1vZHVsZSBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9iejIucnN0IGIvRG9jL2xpYnJhcnkvYnoyLnJzdAppbmRleCBkMTNmNmUwLi5kMDZhMzlhIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9iejIucnN0CisrKyBiL0RvYy9saWJyYXJ5L2J6Mi5yc3QKQEAgLTEsMTk4ICsxLDIwMiBAQAotOm1vZDpgYnoyYCAtLS0gQ29tcHJlc3Npb24gY29tcGF0aWJsZSB3aXRoIDpwcm9ncmFtOmBiemlwMmAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis6bW9kOmBiejJgIC0tLSBTdXBwb3J0IGZvciA6cHJvZ3JhbTpgYnppcDJgIGNvbXByZXNzaW9uCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC4uIG1vZHVsZTo6IGJ6MgotICAgOnN5bm9wc2lzOiBJbnRlcmZhY2UgdG8gY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24gcm91dGluZXMKLSAgICAgICAgICAgICAgY29tcGF0aWJsZSB3aXRoIGJ6aXAyLgorICAgOnN5bm9wc2lzOiBJbnRlcmZhY2VzIGZvciBiemlwMiBjb21wcmVzc2lvbiBhbmQgZGVjb21wcmVzc2lvbi4KIC4uIG1vZHVsZWF1dGhvcjo6IEd1c3Rhdm8gTmllbWV5ZXIgPG5pZW1leWVyQGNvbmVjdGl2YS5jb20+CisuLiBtb2R1bGVhdXRob3I6OiBOYWRlZW0gVmF3ZGEgPG5hZGVlbS52YXdkYUBnbWFpbC5jb20+CiAuLiBzZWN0aW9uYXV0aG9yOjogR3VzdGF2byBOaWVtZXllciA8bmllbWV5ZXJAY29uZWN0aXZhLmNvbT4KKy4uIHNlY3Rpb25hdXRob3I6OiBOYWRlZW0gVmF3ZGEgPG5hZGVlbS52YXdkYUBnbWFpbC5jb20+CiAKIAotVGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBjb21wcmVoZW5zaXZlIGludGVyZmFjZSBmb3IgdGhlIGJ6MiBjb21wcmVzc2lvbiBsaWJyYXJ5LgotSXQgaW1wbGVtZW50cyBhIGNvbXBsZXRlIGZpbGUgaW50ZXJmYWNlLCBvbmUtc2hvdCAoZGUpY29tcHJlc3Npb24gZnVuY3Rpb25zLCBhbmQKLXR5cGVzIGZvciBzZXF1ZW50aWFsIChkZSljb21wcmVzc2lvbi4KK1RoaXMgbW9kdWxlIHByb3ZpZGVzIGEgY29tcHJlaGVuc2l2ZSBpbnRlcmZhY2UgZm9yIGNvbXByZXNzaW5nIGFuZAorZGVjb21wcmVzc2luZyBkYXRhIHVzaW5nIHRoZSBiemlwMiBjb21wcmVzc2lvbiBhbGdvcml0aG0uCiAKLUhlcmUgaXMgYSBzdW1tYXJ5IG9mIHRoZSBmZWF0dXJlcyBvZmZlcmVkIGJ5IHRoZSBiejIgbW9kdWxlOgorVGhlIDptb2Q6YGJ6MmAgbW9kdWxlIGNvbnRhaW5zOgogCi0qIDpjbGFzczpgQloyRmlsZWAgY2xhc3MgaW1wbGVtZW50cyBhIGNvbXBsZXRlIGZpbGUgaW50ZXJmYWNlLCBpbmNsdWRpbmcKLSAgOm1ldGg6YH5CWjJGaWxlLnJlYWRsaW5lYCwgOm1ldGg6YH5CWjJGaWxlLnJlYWRsaW5lc2AsCi0gIDptZXRoOmB+QloyRmlsZS53cml0ZWxpbmVzYCwgOm1ldGg6YH5CWjJGaWxlLnNlZWtgLCBldGM7CisqIFRoZSA6ZnVuYzpgLm9wZW5gIGZ1bmN0aW9uIGFuZCA6Y2xhc3M6YEJaMkZpbGVgIGNsYXNzIGZvciByZWFkaW5nIGFuZAorICB3cml0aW5nIGNvbXByZXNzZWQgZmlsZXMuCisqIFRoZSA6Y2xhc3M6YEJaMkNvbXByZXNzb3JgIGFuZCA6Y2xhc3M6YEJaMkRlY29tcHJlc3NvcmAgY2xhc3NlcyBmb3IKKyAgaW5jcmVtZW50YWwgKGRlKWNvbXByZXNzaW9uLgorKiBUaGUgOmZ1bmM6YGNvbXByZXNzYCBhbmQgOmZ1bmM6YGRlY29tcHJlc3NgIGZ1bmN0aW9ucyBmb3Igb25lLXNob3QKKyAgKGRlKWNvbXByZXNzaW9uLgogCi0qIDpjbGFzczpgQloyRmlsZWAgY2xhc3MgaW1wbGVtZW50cyBlbXVsYXRlZCA6bWV0aDpgfkJaMkZpbGUuc2Vla2Agc3VwcG9ydDsKLQotKiA6Y2xhc3M6YEJaMkZpbGVgIGNsYXNzIGltcGxlbWVudHMgdW5pdmVyc2FsIG5ld2xpbmUgc3VwcG9ydDsKLQotKiA6Y2xhc3M6YEJaMkZpbGVgIGNsYXNzIG9mZmVycyBhbiBvcHRpbWl6ZWQgbGluZSBpdGVyYXRpb24gdXNpbmcgYSByZWFkYWhlYWQKLSAgYWxnb3JpdGhtOwotCi0qIFNlcXVlbnRpYWwgKGRlKWNvbXByZXNzaW9uIHN1cHBvcnRlZCBieSA6Y2xhc3M6YEJaMkNvbXByZXNzb3JgIGFuZAotICA6Y2xhc3M6YEJaMkRlY29tcHJlc3NvcmAgY2xhc3NlczsKLQotKiBPbmUtc2hvdCAoZGUpY29tcHJlc3Npb24gc3VwcG9ydGVkIGJ5IDpmdW5jOmBjb21wcmVzc2AgYW5kIDpmdW5jOmBkZWNvbXByZXNzYAotICBmdW5jdGlvbnM7Ci0KLSogVGhyZWFkIHNhZmV0eSB1c2VzIGluZGl2aWR1YWwgbG9ja2luZyBtZWNoYW5pc20uCitBbGwgb2YgdGhlIGNsYXNzZXMgaW4gdGhpcyBtb2R1bGUgbWF5IHNhZmVseSBiZSBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCiAKIAogKERlKWNvbXByZXNzaW9uIG9mIGZpbGVzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotSGFuZGxpbmcgb2YgY29tcHJlc3NlZCBmaWxlcyBpcyBvZmZlcmVkIGJ5IHRoZSA6Y2xhc3M6YEJaMkZpbGVgIGNsYXNzLgorLi4gZnVuY3Rpb246OiBvcGVuKGZpbGVuYW1lLCBtb2RlPSdyJywgY29tcHJlc3NsZXZlbD05LCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSwgbmV3bGluZT1Ob25lKQorCisgICBPcGVuIGEgYnppcDItY29tcHJlc3NlZCBmaWxlIGluIGJpbmFyeSBvciB0ZXh0IG1vZGUsIHJldHVybmluZyBhIDp0ZXJtOmBmaWxlCisgICBvYmplY3RgLgorCisgICBBcyB3aXRoIHRoZSBjb25zdHJ1Y3RvciBmb3IgOmNsYXNzOmBCWjJGaWxlYCwgdGhlICpmaWxlbmFtZSogYXJndW1lbnQgY2FuIGJlCisgICBhbiBhY3R1YWwgZmlsZW5hbWUgKGEgOmNsYXNzOmBzdHJgIG9yIDpjbGFzczpgYnl0ZXNgIG9iamVjdCksIG9yIGFuIGV4aXN0aW5nCisgICBmaWxlIG9iamVjdCB0byByZWFkIGZyb20gb3Igd3JpdGUgdG8uCisKKyAgIFRoZSAqbW9kZSogYXJndW1lbnQgY2FuIGJlIGFueSBvZiBgYCdyJ2BgLCBgYCdyYidgYCwgYGAndydgYCwgYGAnd2InYGAsCisgICBgYCdhJ2BgLCBvciBgYCdhYidgYCBmb3IgYmluYXJ5IG1vZGUsIG9yIGBgJ3J0J2BgLCBgYCd3dCdgYCwgb3IgYGAnYXQnYGAgZm9yCisgICB0ZXh0IG1vZGUuIFRoZSBkZWZhdWx0IGlzIGBgJ3JiJ2BgLgorCisgICBUaGUgKmNvbXByZXNzbGV2ZWwqIGFyZ3VtZW50IGlzIGFuIGludGVnZXIgZnJvbSAxIHRvIDksIGFzIGZvciB0aGUKKyAgIDpjbGFzczpgQloyRmlsZWAgY29uc3RydWN0b3IuCisKKyAgIEZvciBiaW5hcnkgbW9kZSwgdGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIHRoZSA6Y2xhc3M6YEJaMkZpbGVgCisgICBjb25zdHJ1Y3RvcjogYGBCWjJGaWxlKGZpbGVuYW1lLCBtb2RlLCBjb21wcmVzc2xldmVsPWNvbXByZXNzbGV2ZWwpYGAuIEluCisgICB0aGlzIGNhc2UsIHRoZSAqZW5jb2RpbmcqLCAqZXJyb3JzKiBhbmQgKm5ld2xpbmUqIGFyZ3VtZW50cyBtdXN0IG5vdCBiZQorICAgcHJvdmlkZWQuCisKKyAgIEZvciB0ZXh0IG1vZGUsIGEgOmNsYXNzOmBCWjJGaWxlYCBvYmplY3QgaXMgY3JlYXRlZCwgYW5kIHdyYXBwZWQgaW4gYW4KKyAgIDpjbGFzczpgaW8uVGV4dElPV3JhcHBlcmAgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGVuY29kaW5nLCBlcnJvcgorICAgaGFuZGxpbmcgYmVoYXZpb3IsIGFuZCBsaW5lIGVuZGluZyhzKS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKIAotLi4gY2xhc3M6OiBCWjJGaWxlKGZpbGVuYW1lLCBtb2RlPSdyJywgYnVmZmVyaW5nPTAsIGNvbXByZXNzbGV2ZWw9OSkKKy4uIGNsYXNzOjogQloyRmlsZShmaWxlbmFtZSwgbW9kZT0ncicsIGJ1ZmZlcmluZz1Ob25lLCBjb21wcmVzc2xldmVsPTkpCiAKLSAgIE9wZW4gYSBiejIgZmlsZS4gTW9kZSBjYW4gYmUgZWl0aGVyIGBgJ3InYGAgb3IgYGAndydgYCwgZm9yIHJlYWRpbmcgKGRlZmF1bHQpCi0gICBvciB3cml0aW5nLiBXaGVuIG9wZW5lZCBmb3Igd3JpdGluZywgdGhlIGZpbGUgd2lsbCBiZSBjcmVhdGVkIGlmIGl0IGRvZXNuJ3QKLSAgIGV4aXN0LCBhbmQgdHJ1bmNhdGVkIG90aGVyd2lzZS4gSWYgKmJ1ZmZlcmluZyogaXMgZ2l2ZW4sIGBgMGBgIG1lYW5zCi0gICB1bmJ1ZmZlcmVkLCBhbmQgbGFyZ2VyIG51bWJlcnMgc3BlY2lmeSB0aGUgYnVmZmVyIHNpemU7IHRoZSBkZWZhdWx0IGlzCi0gICBgYDBgYC4gSWYgKmNvbXByZXNzbGV2ZWwqIGlzIGdpdmVuLCBpdCBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gYGAxYGAgYW5kCi0gICBgYDlgYDsgdGhlIGRlZmF1bHQgaXMgYGA5YGAuIEFkZCBhIGBgJ1UnYGAgdG8gbW9kZSB0byBvcGVuIHRoZSBmaWxlIGZvciBpbnB1dAotICAgd2l0aCB1bml2ZXJzYWwgbmV3bGluZSBzdXBwb3J0LiBBbnkgbGluZSBlbmRpbmcgaW4gdGhlIGlucHV0IGZpbGUgd2lsbCBiZQotICAgc2VlbiBhcyBhIGBgJ1xuJ2BgIGluIFB5dGhvbi4gIEFsc28sIGEgZmlsZSBzbyBvcGVuZWQgZ2FpbnMgdGhlIGF0dHJpYnV0ZQotICAgOmF0dHI6YG5ld2xpbmVzYDsgdGhlIHZhbHVlIGZvciB0aGlzIGF0dHJpYnV0ZSBpcyBvbmUgb2YgYGBOb25lYGAgKG5vIG5ld2xpbmUKLSAgIHJlYWQgeWV0KSwgYGAnXHInYGAsIGBgJ1xuJ2BgLCBgYCdcclxuJ2BgIG9yIGEgdHVwbGUgY29udGFpbmluZyBhbGwgdGhlCi0gICBuZXdsaW5lIHR5cGVzIHNlZW4uIFVuaXZlcnNhbCBuZXdsaW5lcyBhcmUgYXZhaWxhYmxlIG9ubHkgd2hlbgotICAgcmVhZGluZy4gSW5zdGFuY2VzIHN1cHBvcnQgaXRlcmF0aW9uIGluIHRoZSBzYW1lIHdheSBhcyBub3JtYWwgOmNsYXNzOmBmaWxlYAotICAgaW5zdGFuY2VzLgorICAgT3BlbiBhIGJ6aXAyLWNvbXByZXNzZWQgZmlsZSBpbiBiaW5hcnkgbW9kZS4KIAotICAgOmNsYXNzOmBCWjJGaWxlYCBzdXBwb3J0cyB0aGUgOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudC4KKyAgIElmICpmaWxlbmFtZSogaXMgYSA6Y2xhc3M6YHN0cmAgb3IgOmNsYXNzOmBieXRlc2Agb2JqZWN0LCBvcGVuIHRoZSBuYW1lZCBmaWxlCisgICBkaXJlY3RseS4gT3RoZXJ3aXNlLCAqZmlsZW5hbWUqIHNob3VsZCBiZSBhIDp0ZXJtOmBmaWxlIG9iamVjdGAsIHdoaWNoIHdpbGwKKyAgIGJlIHVzZWQgdG8gcmVhZCBvciB3cml0ZSB0aGUgY29tcHJlc3NlZCBkYXRhLgorCisgICBUaGUgKm1vZGUqIGFyZ3VtZW50IGNhbiBiZSBlaXRoZXIgYGAncidgYCBmb3IgcmVhZGluZyAoZGVmYXVsdCksIGBgJ3cnYGAgZm9yCisgICBvdmVyd3JpdGluZywgb3IgYGAnYSdgYCBmb3IgYXBwZW5kaW5nLiBUaGVzZSBjYW4gZXF1aXZhbGVudGx5IGJlIGdpdmVuIGFzCisgICBgYCdyYidgYCwgYGAnd2InYGAsIGFuZCBgYCdhYidgYCByZXNwZWN0aXZlbHkuCisKKyAgIElmICpmaWxlbmFtZSogaXMgYSBmaWxlIG9iamVjdCAocmF0aGVyIHRoYW4gYW4gYWN0dWFsIGZpbGUgbmFtZSksIGEgbW9kZSBvZgorICAgYGAndydgYCBkb2VzIG5vdCB0cnVuY2F0ZSB0aGUgZmlsZSwgYW5kIGlzIGluc3RlYWQgZXF1aXZhbGVudCB0byBgYCdhJ2BgLgorCisgICBUaGUgKmJ1ZmZlcmluZyogYXJndW1lbnQgaXMgaWdub3JlZC4gSXRzIHVzZSBpcyBkZXByZWNhdGVkLgorCisgICBJZiAqbW9kZSogaXMgYGAndydgYCBvciBgYCdhJ2BgLCAqY29tcHJlc3NsZXZlbCogY2FuIGJlIGEgbnVtYmVyIGJldHdlZW4KKyAgIGBgMWBgIGFuZCBgYDlgYCBzcGVjaWZ5aW5nIHRoZSBsZXZlbCBvZiBjb21wcmVzc2lvbjogYGAxYGAgcHJvZHVjZXMgdGhlCisgICBsZWFzdCBjb21wcmVzc2lvbiwgYW5kIGBgOWBgIChkZWZhdWx0KSBwcm9kdWNlcyB0aGUgbW9zdCBjb21wcmVzc2lvbi4KKworICAgSWYgKm1vZGUqIGlzIGBgJ3InYGAsIHRoZSBpbnB1dCBmaWxlIG1heSBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZiBtdWx0aXBsZQorICAgY29tcHJlc3NlZCBzdHJlYW1zLgorCisgICA6Y2xhc3M6YEJaMkZpbGVgIHByb3ZpZGVzIGFsbCBvZiB0aGUgbWVtYmVycyBzcGVjaWZpZWQgYnkgdGhlCisgICA6Y2xhc3M6YGlvLkJ1ZmZlcmVkSU9CYXNlYCwgZXhjZXB0IGZvciA6bWV0aDpgZGV0YWNoYCBhbmQgOm1ldGg6YHRydW5jYXRlYC4KKyAgIEl0ZXJhdGlvbiBhbmQgdGhlIDprZXl3b3JkOmB3aXRoYCBzdGF0ZW1lbnQgYXJlIHN1cHBvcnRlZC4KKworICAgOmNsYXNzOmBCWjJGaWxlYCBhbHNvIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgbWV0aG9kOgorCisgICAuLiBtZXRob2Q6OiBwZWVrKFtuXSkKKworICAgICAgUmV0dXJuIGJ1ZmZlcmVkIGRhdGEgd2l0aG91dCBhZHZhbmNpbmcgdGhlIGZpbGUgcG9zaXRpb24uIEF0IGxlYXN0IG9uZQorICAgICAgYnl0ZSBvZiBkYXRhIHdpbGwgYmUgcmV0dXJuZWQgKHVubGVzcyBhdCBFT0YpLiBUaGUgZXhhY3QgbnVtYmVyIG9mIGJ5dGVzCisgICAgICByZXR1cm5lZCBpcyB1bnNwZWNpZmllZC4KKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4xCiAgICAgICBTdXBwb3J0IGZvciB0aGUgOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudCB3YXMgYWRkZWQuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGUgOm1ldGg6YGZpbGVub2AsIDptZXRoOmByZWFkYWJsZWAsIDptZXRoOmBzZWVrYWJsZWAsIDptZXRoOmB3cml0YWJsZWAsCisgICAgICA6bWV0aDpgcmVhZDFgIGFuZCA6bWV0aDpgcmVhZGludG9gIG1ldGhvZHMgd2VyZSBhZGRlZC4KIAotICAgLi4gbm90ZTo6CisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgU3VwcG9ydCB3YXMgYWRkZWQgZm9yICpmaWxlbmFtZSogYmVpbmcgYSA6dGVybTpgZmlsZSBvYmplY3RgIGluc3RlYWQgb2YgYW4KKyAgICAgIGFjdHVhbCBmaWxlbmFtZS4KIAotICAgICAgVGhpcyBjbGFzcyBkb2VzIG5vdCBzdXBwb3J0IGlucHV0IGZpbGVzIGNvbnRhaW5pbmcgbXVsdGlwbGUgc3RyZWFtcyAoc3VjaAotICAgICAgYXMgdGhvc2UgcHJvZHVjZWQgYnkgdGhlIDpwcm9ncmFtOmBwYnppcDJgIHRvb2wpLiBXaGVuIHJlYWRpbmcgc3VjaCBhbgotICAgICAgaW5wdXQgZmlsZSwgb25seSB0aGUgZmlyc3Qgc3RyZWFtIHdpbGwgYmUgYWNjZXNzaWJsZS4gSWYgeW91IHJlcXVpcmUKLSAgICAgIHN1cHBvcnQgZm9yIG11bHRpLXN0cmVhbSBmaWxlcywgY29uc2lkZXIgdXNpbmcgdGhlIHRoaXJkLXBhcnR5Ci0gICAgICA6bW9kOmBiejJmaWxlYCBtb2R1bGUgKGF2YWlsYWJsZSBmcm9tCi0gICAgICBgUHlQSSA8aHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL2J6MmZpbGU+YF8pLiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhCi0gICAgICBiYWNrcG9ydCBvZiBQeXRob24gMy4zJ3MgOmNsYXNzOmBCWjJGaWxlYCBjbGFzcywgd2hpY2ggZG9lcyBzdXBwb3J0CisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhlIGBgJ2EnYGAgKGFwcGVuZCkgbW9kZSB3YXMgYWRkZWQsIGFsb25nIHdpdGggc3VwcG9ydCBmb3IgcmVhZGluZwogICAgICAgbXVsdGktc3RyZWFtIGZpbGVzLgogCiAKLSAgIC4uIG1ldGhvZDo6IGNsb3NlKCkKLQotICAgICAgQ2xvc2UgdGhlIGZpbGUuIFNldHMgZGF0YSBhdHRyaWJ1dGUgOmF0dHI6YGNsb3NlZGAgdG8gdHJ1ZS4gQSBjbG9zZWQgZmlsZQotICAgICAgY2Fubm90IGJlIHVzZWQgZm9yIGZ1cnRoZXIgSS9PIG9wZXJhdGlvbnMuIDptZXRoOmBjbG9zZWAgbWF5IGJlIGNhbGxlZAotICAgICAgbW9yZSB0aGFuIG9uY2Ugd2l0aG91dCBlcnJvci4KLQotCi0gICAuLiBtZXRob2Q6OiByZWFkKFtzaXplXSkKLQotICAgICAgUmVhZCBhdCBtb3N0ICpzaXplKiB1bmNvbXByZXNzZWQgYnl0ZXMsIHJldHVybmVkIGFzIGEgYnl0ZSBzdHJpbmcuIElmIHRoZQotICAgICAgKnNpemUqIGFyZ3VtZW50IGlzIG5lZ2F0aXZlIG9yIG9taXR0ZWQsIHJlYWQgdW50aWwgRU9GIGlzIHJlYWNoZWQuCi0KLQotICAgLi4gbWV0aG9kOjogcmVhZGxpbmUoW3NpemVdKQotCi0gICAgICBSZXR1cm4gdGhlIG5leHQgbGluZSBmcm9tIHRoZSBmaWxlLCBhcyBhIGJ5dGUgc3RyaW5nLCByZXRhaW5pbmcgbmV3bGluZS4KLSAgICAgIEEgbm9uLW5lZ2F0aXZlICpzaXplKiBhcmd1bWVudCBsaW1pdHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRvCi0gICAgICByZXR1cm4gKGFuIGluY29tcGxldGUgbGluZSBtYXkgYmUgcmV0dXJuZWQgdGhlbikuIFJldHVybiBhbiBlbXB0eSBieXRlCi0gICAgICBzdHJpbmcgYXQgRU9GLgotCi0KLSAgIC4uIG1ldGhvZDo6IHJlYWRsaW5lcyhbc2l6ZV0pCi0KLSAgICAgIFJldHVybiBhIGxpc3Qgb2YgbGluZXMgcmVhZC4gVGhlIG9wdGlvbmFsICpzaXplKiBhcmd1bWVudCwgaWYgZ2l2ZW4sIGlzIGFuCi0gICAgICBhcHByb3hpbWF0ZSBib3VuZCBvbiB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBsaW5lcyByZXR1cm5lZC4KLQotCi0gICAuLiBtZXRob2Q6OiBzZWVrKG9mZnNldFssIHdoZW5jZV0pCi0KLSAgICAgIE1vdmUgdG8gbmV3IGZpbGUgcG9zaXRpb24uIEFyZ3VtZW50ICpvZmZzZXQqIGlzIGEgYnl0ZSBjb3VudC4gT3B0aW9uYWwKLSAgICAgIGFyZ3VtZW50ICp3aGVuY2UqIGRlZmF1bHRzIHRvIGBgb3MuU0VFS19TRVRgYCBvciBgYDBgYCAob2Zmc2V0IGZyb20gc3RhcnQKLSAgICAgIG9mIGZpbGU7IG9mZnNldCBzaG91bGQgYmUgYGA+PSAwYGApOyBvdGhlciB2YWx1ZXMgYXJlIGBgb3MuU0VFS19DVVJgYCBvcgotICAgICAgYGAxYGAgKG1vdmUgcmVsYXRpdmUgdG8gY3VycmVudCBwb3NpdGlvbjsgb2Zmc2V0IGNhbiBiZSBwb3NpdGl2ZSBvcgotICAgICAgbmVnYXRpdmUpLCBhbmQgYGBvcy5TRUVLX0VORGBgIG9yIGBgMmBgIChtb3ZlIHJlbGF0aXZlIHRvIGVuZCBvZiBmaWxlOwotICAgICAgb2Zmc2V0IGlzIHVzdWFsbHkgbmVnYXRpdmUsIGFsdGhvdWdoIG1hbnkgcGxhdGZvcm1zIGFsbG93IHNlZWtpbmcgYmV5b25kCi0gICAgICB0aGUgZW5kIG9mIGEgZmlsZSkuCi0KLSAgICAgIE5vdGUgdGhhdCBzZWVraW5nIG9mIGJ6MiBmaWxlcyBpcyBlbXVsYXRlZCwgYW5kIGRlcGVuZGluZyBvbiB0aGUKLSAgICAgIHBhcmFtZXRlcnMgdGhlIG9wZXJhdGlvbiBtYXkgYmUgZXh0cmVtZWx5IHNsb3cuCi0KLQotICAgLi4gbWV0aG9kOjogdGVsbCgpCi0KLSAgICAgIFJldHVybiB0aGUgY3VycmVudCBmaWxlIHBvc2l0aW9uLCBhbiBpbnRlZ2VyLgotCi0KLSAgIC4uIG1ldGhvZDo6IHdyaXRlKGRhdGEpCi0KLSAgICAgIFdyaXRlIHRoZSBieXRlIHN0cmluZyAqZGF0YSogdG8gZmlsZS4gTm90ZSB0aGF0IGR1ZSB0byBidWZmZXJpbmcsCi0gICAgICA6bWV0aDpgY2xvc2VgIG1heSBiZSBuZWVkZWQgYmVmb3JlIHRoZSBmaWxlIG9uIGRpc2sgcmVmbGVjdHMgdGhlIGRhdGEKLSAgICAgIHdyaXR0ZW4uCi0KLQotICAgLi4gbWV0aG9kOjogd3JpdGVsaW5lcyhzZXF1ZW5jZV9vZl9ieXRlX3N0cmluZ3MpCi0KLSAgICAgIFdyaXRlIHRoZSBzZXF1ZW5jZSBvZiBieXRlIHN0cmluZ3MgdG8gdGhlIGZpbGUuIE5vdGUgdGhhdCBuZXdsaW5lcyBhcmUgbm90Ci0gICAgICBhZGRlZC4gVGhlIHNlcXVlbmNlIGNhbiBiZSBhbnkgaXRlcmFibGUgb2JqZWN0IHByb2R1Y2luZyBieXRlIHN0cmluZ3MuCi0gICAgICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gY2FsbGluZyB3cml0ZSgpIGZvciBlYWNoIGJ5dGUgc3RyaW5nLgotCi0KLVNlcXVlbnRpYWwgKGRlKWNvbXByZXNzaW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1TZXF1ZW50aWFsIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uIGlzIGRvbmUgdXNpbmcgdGhlIGNsYXNzZXMKLTpjbGFzczpgQloyQ29tcHJlc3NvcmAgYW5kIDpjbGFzczpgQloyRGVjb21wcmVzc29yYC4KLQorSW5jcmVtZW50YWwgKGRlKWNvbXByZXNzaW9uCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLi4gY2xhc3M6OiBCWjJDb21wcmVzc29yKGNvbXByZXNzbGV2ZWw9OSkKIAogICAgQ3JlYXRlIGEgbmV3IGNvbXByZXNzb3Igb2JqZWN0LiBUaGlzIG9iamVjdCBtYXkgYmUgdXNlZCB0byBjb21wcmVzcyBkYXRhCi0gICBzZXF1ZW50aWFsbHkuIElmIHlvdSB3YW50IHRvIGNvbXByZXNzIGRhdGEgaW4gb25lIHNob3QsIHVzZSB0aGUKLSAgIDpmdW5jOmBjb21wcmVzc2AgZnVuY3Rpb24gaW5zdGVhZC4gVGhlICpjb21wcmVzc2xldmVsKiBwYXJhbWV0ZXIsIGlmIGdpdmVuLAotICAgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIGBgMWBgIGFuZCBgYDlgYDsgdGhlIGRlZmF1bHQgaXMgYGA5YGAuCisgICBpbmNyZW1lbnRhbGx5LiBGb3Igb25lLXNob3QgY29tcHJlc3Npb24sIHVzZSB0aGUgOmZ1bmM6YGNvbXByZXNzYCBmdW5jdGlvbgorICAgaW5zdGVhZC4KKworICAgKmNvbXByZXNzbGV2ZWwqLCBpZiBnaXZlbiwgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIGBgMWBgIGFuZCBgYDlgYC4gVGhlCisgICBkZWZhdWx0IGlzIGBgOWBgLgogCiAgICAuLiBtZXRob2Q6OiBjb21wcmVzcyhkYXRhKQogCi0gICAgICBQcm92aWRlIG1vcmUgZGF0YSB0byB0aGUgY29tcHJlc3NvciBvYmplY3QuIEl0IHdpbGwgcmV0dXJuIGNodW5rcyBvZgotICAgICAgY29tcHJlc3NlZCBkYXRhIHdoZW5ldmVyIHBvc3NpYmxlLiBXaGVuIHlvdSd2ZSBmaW5pc2hlZCBwcm92aWRpbmcgZGF0YSB0bwotICAgICAgY29tcHJlc3MsIGNhbGwgdGhlIDptZXRoOmBmbHVzaGAgbWV0aG9kIHRvIGZpbmlzaCB0aGUgY29tcHJlc3Npb24gcHJvY2VzcywKLSAgICAgIGFuZCByZXR1cm4gd2hhdCBpcyBsZWZ0IGluIGludGVybmFsIGJ1ZmZlcnMuCisgICAgICBQcm92aWRlIGRhdGEgdG8gdGhlIGNvbXByZXNzb3Igb2JqZWN0LiBSZXR1cm5zIGEgY2h1bmsgb2YgY29tcHJlc3NlZCBkYXRhCisgICAgICBpZiBwb3NzaWJsZSwgb3IgYW4gZW1wdHkgYnl0ZSBzdHJpbmcgb3RoZXJ3aXNlLgorCisgICAgICBXaGVuIHlvdSBoYXZlIGZpbmlzaGVkIHByb3ZpZGluZyBkYXRhIHRvIHRoZSBjb21wcmVzc29yLCBjYWxsIHRoZQorICAgICAgOm1ldGg6YGZsdXNoYCBtZXRob2QgdG8gZmluaXNoIHRoZSBjb21wcmVzc2lvbiBwcm9jZXNzLgogCiAKICAgIC4uIG1ldGhvZDo6IGZsdXNoKCkKIAotICAgICAgRmluaXNoIHRoZSBjb21wcmVzc2lvbiBwcm9jZXNzIGFuZCByZXR1cm4gd2hhdCBpcyBsZWZ0IGluIGludGVybmFsCi0gICAgICBidWZmZXJzLiBZb3UgbXVzdCBub3QgdXNlIHRoZSBjb21wcmVzc29yIG9iamVjdCBhZnRlciBjYWxsaW5nIHRoaXMgbWV0aG9kLgorICAgICAgRmluaXNoIHRoZSBjb21wcmVzc2lvbiBwcm9jZXNzLiBSZXR1cm5zIHRoZSBjb21wcmVzc2VkIGRhdGEgbGVmdCBpbgorICAgICAgaW50ZXJuYWwgYnVmZmVycy4KKworICAgICAgVGhlIGNvbXByZXNzb3Igb2JqZWN0IG1heSBub3QgYmUgdXNlZCBhZnRlciB0aGlzIG1ldGhvZCBoYXMgYmVlbiBjYWxsZWQuCiAKIAogLi4gY2xhc3M6OiBCWjJEZWNvbXByZXNzb3IoKQogCiAgICBDcmVhdGUgYSBuZXcgZGVjb21wcmVzc29yIG9iamVjdC4gVGhpcyBvYmplY3QgbWF5IGJlIHVzZWQgdG8gZGVjb21wcmVzcyBkYXRhCi0gICBzZXF1ZW50aWFsbHkuIElmIHlvdSB3YW50IHRvIGRlY29tcHJlc3MgZGF0YSBpbiBvbmUgc2hvdCwgdXNlIHRoZQotICAgOmZ1bmM6YGRlY29tcHJlc3NgIGZ1bmN0aW9uIGluc3RlYWQuCisgICBpbmNyZW1lbnRhbGx5LiBGb3Igb25lLXNob3QgY29tcHJlc3Npb24sIHVzZSB0aGUgOmZ1bmM6YGRlY29tcHJlc3NgIGZ1bmN0aW9uCisgICBpbnN0ZWFkLgorCisgICAuLiBub3RlOjoKKyAgICAgIFRoaXMgY2xhc3MgZG9lcyBub3QgdHJhbnNwYXJlbnRseSBoYW5kbGUgaW5wdXRzIGNvbnRhaW5pbmcgbXVsdGlwbGUKKyAgICAgIGNvbXByZXNzZWQgc3RyZWFtcywgdW5saWtlIDpmdW5jOmBkZWNvbXByZXNzYCBhbmQgOmNsYXNzOmBCWjJGaWxlYC4gSWYKKyAgICAgIHlvdSBuZWVkIHRvIGRlY29tcHJlc3MgYSBtdWx0aS1zdHJlYW0gaW5wdXQgd2l0aCA6Y2xhc3M6YEJaMkRlY29tcHJlc3NvcmAsCisgICAgICB5b3UgbXVzdCB1c2UgYSBuZXcgZGVjb21wcmVzc29yIGZvciBlYWNoIHN0cmVhbS4KIAogICAgLi4gbWV0aG9kOjogZGVjb21wcmVzcyhkYXRhKQogCi0gICAgICBQcm92aWRlIG1vcmUgZGF0YSB0byB0aGUgZGVjb21wcmVzc29yIG9iamVjdC4gSXQgd2lsbCByZXR1cm4gY2h1bmtzIG9mCi0gICAgICBkZWNvbXByZXNzZWQgZGF0YSB3aGVuZXZlciBwb3NzaWJsZS4gSWYgeW91IHRyeSB0byBkZWNvbXByZXNzIGRhdGEgYWZ0ZXIKLSAgICAgIHRoZSBlbmQgb2Ygc3RyZWFtIGlzIGZvdW5kLCA6ZXhjOmBFT0ZFcnJvcmAgd2lsbCBiZSByYWlzZWQuIElmIGFueSBkYXRhCi0gICAgICB3YXMgZm91bmQgYWZ0ZXIgdGhlIGVuZCBvZiBzdHJlYW0sIGl0J2xsIGJlIGlnbm9yZWQgYW5kIHNhdmVkIGluCi0gICAgICA6YXR0cjpgdW51c2VkX2RhdGFgIGF0dHJpYnV0ZS4KKyAgICAgIFByb3ZpZGUgZGF0YSB0byB0aGUgZGVjb21wcmVzc29yIG9iamVjdC4gUmV0dXJucyBhIGNodW5rIG9mIGRlY29tcHJlc3NlZAorICAgICAgZGF0YSBpZiBwb3NzaWJsZSwgb3IgYW4gZW1wdHkgYnl0ZSBzdHJpbmcgb3RoZXJ3aXNlLgorCisgICAgICBBdHRlbXB0aW5nIHRvIGRlY29tcHJlc3MgZGF0YSBhZnRlciB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHN0cmVhbSBpcworICAgICAgcmVhY2hlZCByYWlzZXMgYW4gOmV4YzpgRU9GRXJyb3JgLiBJZiBhbnkgZGF0YSBpcyBmb3VuZCBhZnRlciB0aGUgZW5kIG9mCisgICAgICB0aGUgc3RyZWFtLCBpdCBpcyBpZ25vcmVkIGFuZCBzYXZlZCBpbiB0aGUgOmF0dHI6YHVudXNlZF9kYXRhYCBhdHRyaWJ1dGUuCisKKworICAgLi4gYXR0cmlidXRlOjogZW9mCisKKyAgICAgIFRydWUgaWYgdGhlIGVuZC1vZi1zdHJlYW0gbWFya2VyIGhhcyBiZWVuIHJlYWNoZWQuCisKKyAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKyAgIC4uIGF0dHJpYnV0ZTo6IHVudXNlZF9kYXRhCisKKyAgICAgIERhdGEgZm91bmQgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgY29tcHJlc3NlZCBzdHJlYW0uCisKKyAgICAgIElmIHRoaXMgYXR0cmlidXRlIGlzIGFjY2Vzc2VkIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBzdHJlYW0gaGFzIGJlZW4KKyAgICAgIHJlYWNoZWQsIGl0cyB2YWx1ZSB3aWxsIGJlIGBgYicnYGAuCiAKIAogT25lLXNob3QgKGRlKWNvbXByZXNzaW9uCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotT25lLXNob3QgY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24gaXMgcHJvdmlkZWQgdGhyb3VnaCB0aGUgOmZ1bmM6YGNvbXByZXNzYAotYW5kIDpmdW5jOmBkZWNvbXByZXNzYCBmdW5jdGlvbnMuCi0KLQogLi4gZnVuY3Rpb246OiBjb21wcmVzcyhkYXRhLCBjb21wcmVzc2xldmVsPTkpCiAKLSAgIENvbXByZXNzICpkYXRhKiBpbiBvbmUgc2hvdC4gSWYgeW91IHdhbnQgdG8gY29tcHJlc3MgZGF0YSBzZXF1ZW50aWFsbHksIHVzZQotICAgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBCWjJDb21wcmVzc29yYCBpbnN0ZWFkLiBUaGUgKmNvbXByZXNzbGV2ZWwqIHBhcmFtZXRlciwKLSAgIGlmIGdpdmVuLCBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gYGAxYGAgYW5kIGBgOWBgOyB0aGUgZGVmYXVsdCBpcyBgYDlgYC4KKyAgIENvbXByZXNzICpkYXRhKi4KKworICAgKmNvbXByZXNzbGV2ZWwqLCBpZiBnaXZlbiwgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIGBgMWBgIGFuZCBgYDlgYC4gVGhlCisgICBkZWZhdWx0IGlzIGBgOWBgLgorCisgICBGb3IgaW5jcmVtZW50YWwgY29tcHJlc3Npb24sIHVzZSBhIDpjbGFzczpgQloyQ29tcHJlc3NvcmAgaW5zdGVhZC4KIAogCiAuLiBmdW5jdGlvbjo6IGRlY29tcHJlc3MoZGF0YSkKIAotICAgRGVjb21wcmVzcyAqZGF0YSogaW4gb25lIHNob3QuIElmIHlvdSB3YW50IHRvIGRlY29tcHJlc3MgZGF0YSBzZXF1ZW50aWFsbHksCi0gICB1c2UgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBCWjJEZWNvbXByZXNzb3JgIGluc3RlYWQuCisgICBEZWNvbXByZXNzICpkYXRhKi4KKworICAgSWYgKmRhdGEqIGlzIHRoZSBjb25jYXRlbmF0aW9uIG9mIG11bHRpcGxlIGNvbXByZXNzZWQgc3RyZWFtcywgZGVjb21wcmVzcworICAgYWxsIG9mIHRoZSBzdHJlYW1zLgorCisgICBGb3IgaW5jcmVtZW50YWwgZGVjb21wcmVzc2lvbiwgdXNlIGEgOmNsYXNzOmBCWjJEZWNvbXByZXNzb3JgIGluc3RlYWQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBTdXBwb3J0IGZvciBtdWx0aS1zdHJlYW0gaW5wdXRzIHdhcyBhZGRlZC4KIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvY2h1bmsucnN0IGIvRG9jL2xpYnJhcnkvY2h1bmsucnN0CmluZGV4IGQzNTU4YTQuLmMxYmE0OTcgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2NodW5rLnJzdAorKysgYi9Eb2MvbGlicmFyeS9jaHVuay5yc3QKQEAgLTg0LDggKzg0LDkgQEAKICAgICAgIENsb3NlIGFuZCBza2lwIHRvIHRoZSBlbmQgb2YgdGhlIGNodW5rLiAgVGhpcyBkb2VzIG5vdCBjbG9zZSB0aGUKICAgICAgIHVuZGVybHlpbmcgZmlsZS4KIAotICAgVGhlIHJlbWFpbmluZyBtZXRob2RzIHdpbGwgcmFpc2UgOmV4YzpgSU9FcnJvcmAgaWYgY2FsbGVkIGFmdGVyIHRoZQotICAgOm1ldGg6YGNsb3NlYCBtZXRob2QgaGFzIGJlZW4gY2FsbGVkLgorICAgVGhlIHJlbWFpbmluZyBtZXRob2RzIHdpbGwgcmFpc2UgOmV4YzpgT1NFcnJvcmAgaWYgY2FsbGVkIGFmdGVyIHRoZQorICAgOm1ldGg6YGNsb3NlYCBtZXRob2QgaGFzIGJlZW4gY2FsbGVkLiAgQmVmb3JlIFB5dGhvbiAzLjMsIHRoZXkgdXNlZCB0bworICAgcmFpc2UgOmV4YzpgSU9FcnJvcmAsIG5vdyBhbiBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KIAogCiAgICAuLiBtZXRob2Q6OiBpc2F0dHkoKQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvY21kLnJzdCBiL0RvYy9saWJyYXJ5L2NtZC5yc3QKaW5kZXggZmQ3ZjQ1My4uMGM0M2JiOCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvY21kLnJzdAorKysgYi9Eb2MvbGlicmFyeS9jbWQucnN0CkBAIC0yODUsOCArMjg1LDggQEAKICAgICAgICAgZGVmIGRvX3BsYXliYWNrKHNlbGYsIGFyZyk6CiAgICAgICAgICAgICAnUGxheWJhY2sgY29tbWFuZHMgZnJvbSBhIGZpbGU6ICBQTEFZQkFDSyByb3NlLmNtZCcKICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQotICAgICAgICAgICAgY21kcyA9IG9wZW4oYXJnKS5yZWFkKCkuc3BsaXRsaW5lcygpCi0gICAgICAgICAgICBzZWxmLmNtZHF1ZXVlLmV4dGVuZChjbWRzKQorICAgICAgICAgICAgd2l0aCBvcGVuKGFyZykgYXMgZjoKKyAgICAgICAgICAgICAgICBzZWxmLmNtZHF1ZXVlLmV4dGVuZChmLnJlYWQoKS5zcGxpdGxpbmVzKCkpCiAgICAgICAgIGRlZiBwcmVjbWQoc2VsZiwgbGluZSk6CiAgICAgICAgICAgICBsaW5lID0gbGluZS5sb3dlcigpCiAgICAgICAgICAgICBpZiBzZWxmLmZpbGUgYW5kICdwbGF5YmFjaycgbm90IGluIGxpbmU6CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9jb2RlY3MucnN0IGIvRG9jL2xpYnJhcnkvY29kZWNzLnJzdAppbmRleCA3NzQ3Nzk0Li5hOWZhZTk1IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9jb2RlY3MucnN0CisrKyBiL0RvYy9saWJyYXJ5L2NvZGVjcy5yc3QKQEAgLTQ1OCw3ICs0NTgsOCBAQAogCiAgICAuLiBtZXRob2Q6OiByZXNldCgpCiAKLSAgICAgIFJlc2V0IHRoZSBlbmNvZGVyIHRvIHRoZSBpbml0aWFsIHN0YXRlLgorICAgICAgUmVzZXQgdGhlIGVuY29kZXIgdG8gdGhlIGluaXRpYWwgc3RhdGUuIFRoZSBvdXRwdXQgaXMgZGlzY2FyZGVkOiBjYWxsCisgICAgICBgYC5lbmNvZGUoJycsIGZpbmFsPVRydWUpYGAgdG8gcmVzZXQgdGhlIGVuY29kZXIgYW5kIHRvIGdldCB0aGUgb3V0cHV0LgogCiAKIC4uIG1ldGhvZDo6IEluY3JlbWVudGFsRW5jb2Rlci5nZXRzdGF0ZSgpCkBAIC03ODYsMTEgKzc4Nyw5IEBACiBFbmNvZGluZ3MgYW5kIFVuaWNvZGUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1TdHJpbmdzIGFyZSBzdG9yZWQgaW50ZXJuYWxseSBhcyBzZXF1ZW5jZXMgb2YgY29kZXBvaW50cyAodG8gYmUgcHJlY2lzZQotYXMgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYXJyYXlzKS4gRGVwZW5kaW5nIG9uIHRoZSB3YXkgUHl0aG9uIGlzIGNvbXBpbGVkIChlaXRoZXIKLXZpYSBgYC0td2l0aG91dC13aWRlLXVuaWNvZGVgYCBvciBgYC0td2l0aC13aWRlLXVuaWNvZGVgYCwgd2l0aCB0aGUKLWZvcm1lciBiZWluZyB0aGUgZGVmYXVsdCkgOmM6dHlwZTpgUHlfVU5JQ09ERWAgaXMgZWl0aGVyIGEgMTYtYml0IG9yIDMyLWJpdCBkYXRhCi10eXBlLiBPbmNlIGEgc3RyaW5nIG9iamVjdCBpcyB1c2VkIG91dHNpZGUgb2YgQ1BVIGFuZCBtZW1vcnksIENQVSBlbmRpYW5uZXNzCitTdHJpbmdzIGFyZSBzdG9yZWQgaW50ZXJuYWxseSBhcyBzZXF1ZW5jZXMgb2YgY29kZXBvaW50cyBpbiByYW5nZSBgYDAgLSAxMEZGRkZgYAorKHNlZSA6cGVwOmAzOTNgIGZvciBtb3JlIGRldGFpbHMgYWJvdXQgdGhlIGltcGxlbWVudGF0aW9uKS4KK09uY2UgYSBzdHJpbmcgb2JqZWN0IGlzIHVzZWQgb3V0c2lkZSBvZiBDUFUgYW5kIG1lbW9yeSwgQ1BVIGVuZGlhbm5lc3MKIGFuZCBob3cgdGhlc2UgYXJyYXlzIGFyZSBzdG9yZWQgYXMgYnl0ZXMgYmVjb21lIGFuIGlzc3VlLiAgVHJhbnNmb3JtaW5nIGEKIHN0cmluZyBvYmplY3QgaW50byBhIHNlcXVlbmNlIG9mIGJ5dGVzIGlzIGNhbGxlZCBlbmNvZGluZyBhbmQgcmVjcmVhdGluZyB0aGUKIHN0cmluZyBvYmplY3QgZnJvbSB0aGUgc2VxdWVuY2Ugb2YgYnl0ZXMgaXMga25vd24gYXMgZGVjb2RpbmcuICBUaGVyZSBhcmUgbWFueQpAQCAtOTAxLDYgKzkwMCwxNSBAQAogY2FzZSBvciB1c2UgYSBoeXBoZW4gaW5zdGVhZCBvZiBhbiB1bmRlcnNjb3JlIGFyZSBhbHNvIHZhbGlkIGFsaWFzZXM7IHRoZXJlZm9yZSwKIGUuZy4gYGAndXRmLTgnYGAgaXMgYSB2YWxpZCBhbGlhcyBmb3IgdGhlIGBgJ3V0Zl84J2BgIGNvZGVjLgogCisuLiBpbXBsLWRldGFpbDo6CisKKyAgIFNvbWUgY29tbW9uIGVuY29kaW5ncyBjYW4gYnlwYXNzIHRoZSBjb2RlY3MgbG9va3VwIG1hY2hpbmVyeSB0bworICAgaW1wcm92ZSBwZXJmb3JtYW5jZS4gIFRoZXNlIG9wdGltaXphdGlvbiBvcHBvcnR1bml0aWVzIGFyZSBvbmx5CisgICByZWNvZ25pemVkIGJ5IENQeXRob24gZm9yIGEgbGltaXRlZCBzZXQgb2YgYWxpYXNlczogdXRmLTgsIHV0ZjgsCisgICBsYXRpbi0xLCBsYXRpbjEsIGlzby04ODU5LTEsIG1iY3MgKFdpbmRvd3Mgb25seSksIGFzY2lpLCB1dGYtMTYsCisgICBhbmQgdXRmLTMyLiAgVXNpbmcgYWx0ZXJuYXRpdmUgc3BlbGxpbmdzIGZvciB0aGVzZSBlbmNvZGluZ3MgbWF5CisgICByZXN1bHQgaW4gc2xvd2VyIGV4ZWN1dGlvbi4KKwogTWFueSBvZiB0aGUgY2hhcmFjdGVyIHNldHMgc3VwcG9ydCB0aGUgc2FtZSBsYW5ndWFnZXMuIFRoZXkgdmFyeSBpbiBpbmRpdmlkdWFsCiBjaGFyYWN0ZXJzIChlLmcuIHdoZXRoZXIgdGhlIEVVUk8gU0lHTiBpcyBzdXBwb3J0ZWQgb3Igbm90KSwgYW5kIGluIHRoZQogYXNzaWdubWVudCBvZiBjaGFyYWN0ZXJzIHRvIGNvZGUgcG9zaXRpb25zLiBGb3IgdGhlIEV1cm9wZWFuIGxhbmd1YWdlcyBpbgpAQCAtMTAwMyw2ICsxMDExLDExIEBACiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiB8IGNwMTI1OCAgICAgICAgICB8IHdpbmRvd3MtMTI1OCAgICAgICAgICAgICAgICAgICB8IFZpZXRuYW1lc2UgICAgICAgICAgICAgICAgICAgICB8CiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGNwNjUwMDEgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFdpbmRvd3Mgb25seTogV2luZG93cyBVVEYtOCAgICB8Cit8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IChgYENQX1VURjhgYCkgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IC4uIHZlcnNpb25hZGRlZDo6IDMuMyAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiB8IGV1Y19qcCAgICAgICAgICB8IGV1Y2pwLCB1amlzLCB1LWppcyAgICAgICAgICAgICB8IEphcGFuZXNlICAgICAgICAgICAgICAgICAgICAgICB8CiArLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiB8IGV1Y19qaXNfMjAwNCAgICB8IGppc3gwMjEzLCBldWNqaXMyMDA0ICAgICAgICAgICB8IEphcGFuZXNlICAgICAgICAgICAgICAgICAgICAgICB8CkBAIC0xMTYwLDYgKzExNzMsOCBAQAogfCB1bmljb2RlX2ludGVybmFsICAgfCAgICAgICAgIHwgUmV0dXJuIHRoZSBpbnRlcm5hbCAgICAgICB8CiB8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCByZXByZXNlbnRhdGlvbiBvZiB0aGUgICAgIHwKIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8IG9wZXJhbmQgICAgICAgICAgICAgICAgICAgfAorfCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAuLiBkZXByZWNhdGVkOjogMy4zICAgICAgIHwKICstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCiBUaGUgZm9sbG93aW5nIGNvZGVjcyBwcm92aWRlIGJ5dGVzLXRvLWJ5dGVzIG1hcHBpbmdzLgpAQCAtMTI3MiwxMiArMTI4NywxMyBAQAogLi4gbW9kdWxlOjogZW5jb2RpbmdzLm1iY3MKICAgIDpzeW5vcHNpczogV2luZG93cyBBTlNJIGNvZGVwYWdlCiAKLUVuY29kZSBvcGVyYW5kIGFjY29yZGluZyB0byB0aGUgQU5TSSBjb2RlcGFnZSAoQ1BfQUNQKS4gVGhpcyBjb2RlYyBvbmx5Ci1zdXBwb3J0cyBgYCdzdHJpY3QnYGAgYW5kIGBgJ3JlcGxhY2UnYGAgZXJyb3IgaGFuZGxlcnMgdG8gZW5jb2RlLCBhbmQKLWBgJ3N0cmljdCdgYCBhbmQgYGAnaWdub3JlJ2BgIGVycm9yIGhhbmRsZXJzIHRvIGRlY29kZS4KK0VuY29kZSBvcGVyYW5kIGFjY29yZGluZyB0byB0aGUgQU5TSSBjb2RlcGFnZSAoQ1BfQUNQKS4KIAogQXZhaWxhYmlsaXR5OiBXaW5kb3dzIG9ubHkuCiAKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBTdXBwb3J0IGFueSBlcnJvciBoYW5kbGVyLgorCiAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgogICAgQmVmb3JlIDMuMiwgdGhlICplcnJvcnMqIGFyZ3VtZW50IHdhcyBpZ25vcmVkOyBgYCdyZXBsYWNlJ2BgIHdhcyBhbHdheXMgdXNlZAogICAgdG8gZW5jb2RlLCBhbmQgYGAnaWdub3JlJ2BgIHRvIGRlY29kZS4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2NvbGxlY3Rpb25zLmFiYy5yc3QgYi9Eb2MvbGlicmFyeS9jb2xsZWN0aW9ucy5hYmMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4NzM0ODkKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2MvbGlicmFyeS9jb2xsZWN0aW9ucy5hYmMucnN0CkBAIC0wLDAgKzEsMTgyIEBACis6bW9kOmBjb2xsZWN0aW9ucy5hYmNgIC0tLSBBYnN0cmFjdCBCYXNlIENsYXNzZXMgZm9yIENvbnRhaW5lcnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBtb2R1bGU6OiBjb2xsZWN0aW9ucy5hYmMKKyAgIDpzeW5vcHNpczogQWJzdHJhY3QgYmFzZSBjbGFzc2VzIGZvciBjb250YWluZXJzCisuLiBtb2R1bGVhdXRob3I6OiBSYXltb25kIEhldHRpbmdlciA8cHl0aG9uIGF0IHJjbi5jb20+CisuLiBzZWN0aW9uYXV0aG9yOjogUmF5bW9uZCBIZXR0aW5nZXIgPHB5dGhvbiBhdCByY24uY29tPgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgIEZvcm1lcmx5LCB0aGlzIG1vZHVsZSB3YXMgcGFydCBvZiB0aGUgOm1vZDpgY29sbGVjdGlvbnNgIG1vZHVsZS4KKworLi4gdGVzdHNldHVwOjogKgorCisgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCAqCisgICBpbXBvcnQgaXRlcnRvb2xzCisgICBfX25hbWVfXyA9ICc8ZG9jdGVzdD4nCisKKyoqU291cmNlIGNvZGU6KiogOnNvdXJjZTpgTGliL2NvbGxlY3Rpb25zL2FiYy5weWAKKworLS0tLS0tLS0tLS0tLS0KKworVGhpcyBtb2R1bGUgcHJvdmlkZXMgOnRlcm06YGFic3RyYWN0IGJhc2UgY2xhc3NlcyA8YWJzdHJhY3QgYmFzZSBjbGFzcz5gIHRoYXQKK2NhbiBiZSB1c2VkIHRvIHRlc3Qgd2hldGhlciBhIGNsYXNzIHByb3ZpZGVzIGEgcGFydGljdWxhciBpbnRlcmZhY2U7IGZvcgorZXhhbXBsZSwgd2hldGhlciBpdCBpcyBoYXNoYWJsZSBvciB3aGV0aGVyIGl0IGlzIGEgbWFwcGluZy4KKworCisuLiBfY29sbGVjdGlvbnMtYWJzdHJhY3QtYmFzZS1jbGFzc2VzOgorCitDb2xsZWN0aW9ucyBBYnN0cmFjdCBCYXNlIENsYXNzZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgY29sbGVjdGlvbnMgbW9kdWxlIG9mZmVycyB0aGUgZm9sbG93aW5nIDp0ZXJtOmBBQkNzIDxhYnN0cmFjdCBiYXNlIGNsYXNzPmA6CisKKz09PT09PT09PT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQUJDICAgICAgICAgICAgICAgICAgICAgICAgSW5oZXJpdHMgZnJvbSAgICAgICAgICBBYnN0cmFjdCBNZXRob2RzICAgICAgICBNaXhpbiBNZXRob2RzCis9PT09PT09PT09PT09PT09PT09PT09PT09ICA9PT09PT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzpjbGFzczpgQ29udGFpbmVyYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX2NvbnRhaW5zX19gYAorOmNsYXNzOmBIYXNoYWJsZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9faGFzaF9fYGAKKzpjbGFzczpgSXRlcmFibGVgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX2l0ZXJfX2BgCis6Y2xhc3M6YEl0ZXJhdG9yYCAgICAgICAgICA6Y2xhc3M6YEl0ZXJhYmxlYCAgICAgIGBgX19uZXh0X19gYCAgICAgICAgICAgIGBgX19pdGVyX19gYAorOmNsYXNzOmBTaXplZGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9fbGVuX19gYAorOmNsYXNzOmBDYWxsYWJsZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9fY2FsbF9fYGAKKworOmNsYXNzOmBTZXF1ZW5jZWAgICAgICAgICAgOmNsYXNzOmBTaXplZGAsICAgICAgICBgYF9fZ2V0aXRlbV9fYGAgICAgICAgICBgYF9fY29udGFpbnNfX2BgLCBgYF9faXRlcl9fYGAsIGBgX19yZXZlcnNlZF9fYGAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M6YEl0ZXJhYmxlYCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgaW5kZXhgYCwgYW5kIGBgY291bnRgYAorICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzOmBDb250YWluZXJgCisKKzpjbGFzczpgTXV0YWJsZVNlcXVlbmNlYCAgIDpjbGFzczpgU2VxdWVuY2VgICAgICAgYGBfX3NldGl0ZW1fX2BgLCAgICAgICAgSW5oZXJpdGVkIDpjbGFzczpgU2VxdWVuY2VgIG1ldGhvZHMgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19kZWxpdGVtX19gYCwgICAgICAgIGBgYXBwZW5kYGAsIGBgcmV2ZXJzZWBgLCBgYGV4dGVuZGBgLCBgYHBvcGBgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYGluc2VydGBgICAgICAgICAgICAgICBgYHJlbW92ZWBgLCBgYGNsZWFyYGAsIGFuZCBgYF9faWFkZF9fYGAKKworOmNsYXNzOmBTZXRgICAgICAgICAgICAgICAgOmNsYXNzOmBTaXplZGAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9fbGVfX2BgLCBgYF9fbHRfX2BgLCBgYF9fZXFfX2BgLCBgYF9fbmVfX2BgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzOmBJdGVyYWJsZWAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9fZ3RfX2BgLCBgYF9fZ2VfX2BgLCBgYF9fYW5kX19gYCwgYGBfX29yX19gYCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzczpgQ29udGFpbmVyYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX3N1Yl9fYGAsIGBgX194b3JfX2BgLCBhbmQgYGBpc2Rpc2pvaW50YGAKKworOmNsYXNzOmBNdXRhYmxlU2V0YCAgICAgICAgOmNsYXNzOmBTZXRgICAgICAgICAgICBgYGFkZGBgLCAgICAgICAgICAgICAgICBJbmhlcml0ZWQgOmNsYXNzOmBTZXRgIG1ldGhvZHMgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgZGlzY2FyZGBgICAgICAgICAgICAgIGBgY2xlYXJgYCwgYGBwb3BgYCwgYGByZW1vdmVgYCwgYGBfX2lvcl9fYGAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19pYW5kX19gYCwgYGBfX2l4b3JfX2BgLCBhbmQgYGBfX2lzdWJfX2BgCisKKzpjbGFzczpgTWFwcGluZ2AgICAgICAgICAgIDpjbGFzczpgU2l6ZWRgLCAgICAgICAgYGBfX2dldGl0ZW1fX2BgICAgICAgICAgYGBfX2NvbnRhaW5zX19gYCwgYGBrZXlzYGAsIGBgaXRlbXNgYCwgYGB2YWx1ZXNgYCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzczpgSXRlcmFibGVgLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBnZXRgYCwgYGBfX2VxX19gYCwgYW5kIGBgX19uZV9fYGAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzczpgQ29udGFpbmVyYAorCis6Y2xhc3M6YE11dGFibGVNYXBwaW5nYCAgICA6Y2xhc3M6YE1hcHBpbmdgICAgICAgIGBgX19zZXRpdGVtX19gYCwgICAgICAgIEluaGVyaXRlZCA6Y2xhc3M6YE1hcHBpbmdgIG1ldGhvZHMgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19kZWxpdGVtX19gYCAgICAgICAgIGBgcG9wYGAsIGBgcG9waXRlbWBgLCBgYGNsZWFyYGAsIGBgdXBkYXRlYGAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBgYHNldGRlZmF1bHRgYAorCisKKzpjbGFzczpgTWFwcGluZ1ZpZXdgICAgICAgIDpjbGFzczpgU2l6ZWRgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX2xlbl9fYGAKKzpjbGFzczpgSXRlbXNWaWV3YCAgICAgICAgIDpjbGFzczpgTWFwcGluZ1ZpZXdgLCAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX2NvbnRhaW5zX19gYCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzczpgU2V0YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX2l0ZXJfX2BgCis6Y2xhc3M6YEtleXNWaWV3YCAgICAgICAgICA6Y2xhc3M6YE1hcHBpbmdWaWV3YCwgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19jb250YWluc19fYGAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M6YFNldGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19pdGVyX19gYAorOmNsYXNzOmBWYWx1ZXNWaWV3YCAgICAgICAgOmNsYXNzOmBNYXBwaW5nVmlld2AgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9fY29udGFpbnNfX2BgLCBgYF9faXRlcl9fYGAKKz09PT09PT09PT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKKy4uIGNsYXNzOjogQ29udGFpbmVyCisgICAgICAgICAgIEhhc2hhYmxlCisgICAgICAgICAgIFNpemVkCisgICAgICAgICAgIENhbGxhYmxlCisKKyAgIEFCQ3MgZm9yIGNsYXNzZXMgdGhhdCBwcm92aWRlIHJlc3BlY3RpdmVseSB0aGUgbWV0aG9kcyA6bWV0aDpgX19jb250YWluc19fYCwKKyAgIDptZXRoOmBfX2hhc2hfX2AsIDptZXRoOmBfX2xlbl9fYCwgYW5kIDptZXRoOmBfX2NhbGxfX2AuCisKKy4uIGNsYXNzOjogSXRlcmFibGUKKworICAgQUJDIGZvciBjbGFzc2VzIHRoYXQgcHJvdmlkZSB0aGUgOm1ldGg6YF9faXRlcl9fYCBtZXRob2QuCisgICBTZWUgYWxzbyB0aGUgZGVmaW5pdGlvbiBvZiA6dGVybTpgaXRlcmFibGVgLgorCisuLiBjbGFzczo6IEl0ZXJhdG9yCisKKyAgIEFCQyBmb3IgY2xhc3NlcyB0aGF0IHByb3ZpZGUgdGhlIDptZXRoOmBfX2l0ZXJfX2AgYW5kIDptZXRoOmBuZXh0YCBtZXRob2RzLgorICAgU2VlIGFsc28gdGhlIGRlZmluaXRpb24gb2YgOnRlcm06YGl0ZXJhdG9yYC4KKworLi4gY2xhc3M6OiBTZXF1ZW5jZQorICAgICAgICAgICBNdXRhYmxlU2VxdWVuY2UKKworICAgQUJDcyBmb3IgcmVhZC1vbmx5IGFuZCBtdXRhYmxlIDp0ZXJtOmBzZXF1ZW5jZXMgPHNlcXVlbmNlPmAuCisKKy4uIGNsYXNzOjogU2V0CisgICAgICAgICAgIE11dGFibGVTZXQKKworICAgQUJDcyBmb3IgcmVhZC1vbmx5IGFuZCBtdXRhYmxlIHNldHMuCisKKy4uIGNsYXNzOjogTWFwcGluZworICAgICAgICAgICBNdXRhYmxlTWFwcGluZworCisgICBBQkNzIGZvciByZWFkLW9ubHkgYW5kIG11dGFibGUgOnRlcm06YG1hcHBpbmdzIDxtYXBwaW5nPmAuCisKKy4uIGNsYXNzOjogTWFwcGluZ1ZpZXcKKyAgICAgICAgICAgSXRlbXNWaWV3CisgICAgICAgICAgIEtleXNWaWV3CisgICAgICAgICAgIFZhbHVlc1ZpZXcKKworICAgQUJDcyBmb3IgbWFwcGluZywgaXRlbXMsIGtleXMsIGFuZCB2YWx1ZXMgOnRlcm06YHZpZXdzIDx2aWV3PmAuCisKKworVGhlc2UgQUJDcyBhbGxvdyB1cyB0byBhc2sgY2xhc3NlcyBvciBpbnN0YW5jZXMgaWYgdGhleSBwcm92aWRlCitwYXJ0aWN1bGFyIGZ1bmN0aW9uYWxpdHksIGZvciBleGFtcGxlOjoKKworICAgIHNpemUgPSBOb25lCisgICAgaWYgaXNpbnN0YW5jZShteXZhciwgY29sbGVjdGlvbnMuU2l6ZWQpOgorICAgICAgICBzaXplID0gbGVuKG15dmFyKQorCitTZXZlcmFsIG9mIHRoZSBBQkNzIGFyZSBhbHNvIHVzZWZ1bCBhcyBtaXhpbnMgdGhhdCBtYWtlIGl0IGVhc2llciB0byBkZXZlbG9wCitjbGFzc2VzIHN1cHBvcnRpbmcgY29udGFpbmVyIEFQSXMuICBGb3IgZXhhbXBsZSwgdG8gd3JpdGUgYSBjbGFzcyBzdXBwb3J0aW5nCit0aGUgZnVsbCA6Y2xhc3M6YFNldGAgQVBJLCBpdCBvbmx5IG5lY2Vzc2FyeSB0byBzdXBwbHkgdGhlIHRocmVlIHVuZGVybHlpbmcKK2Fic3RyYWN0IG1ldGhvZHM6IDptZXRoOmBfX2NvbnRhaW5zX19gLCA6bWV0aDpgX19pdGVyX19gLCBhbmQgOm1ldGg6YF9fbGVuX19gLgorVGhlIEFCQyBzdXBwbGllcyB0aGUgcmVtYWluaW5nIG1ldGhvZHMgc3VjaCBhcyA6bWV0aDpgX19hbmRfX2AgYW5kCis6bWV0aDpgaXNkaXNqb2ludGAgOjoKKworICAgIGNsYXNzIExpc3RCYXNlZFNldChjb2xsZWN0aW9ucy5TZXQpOgorICAgICAgICAgJycnIEFsdGVybmF0ZSBzZXQgaW1wbGVtZW50YXRpb24gZmF2b3Jpbmcgc3BhY2Ugb3ZlciBzcGVlZAorICAgICAgICAgICAgIGFuZCBub3QgcmVxdWlyaW5nIHRoZSBzZXQgZWxlbWVudHMgdG8gYmUgaGFzaGFibGUuICcnJworICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZXJhYmxlKToKKyAgICAgICAgICAgICBzZWxmLmVsZW1lbnRzID0gbHN0ID0gW10KKyAgICAgICAgICAgICBmb3IgdmFsdWUgaW4gaXRlcmFibGU6CisgICAgICAgICAgICAgICAgIGlmIHZhbHVlIG5vdCBpbiBsc3Q6CisgICAgICAgICAgICAgICAgICAgICBsc3QuYXBwZW5kKHZhbHVlKQorICAgICAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICAgICAgIHJldHVybiBpdGVyKHNlbGYuZWxlbWVudHMpCisgICAgICAgICBkZWYgX19jb250YWluc19fKHNlbGYsIHZhbHVlKToKKyAgICAgICAgICAgICByZXR1cm4gdmFsdWUgaW4gc2VsZi5lbGVtZW50cworICAgICAgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgICAgICAgcmV0dXJuIGxlbihzZWxmLmVsZW1lbnRzKQorCisgICAgczEgPSBMaXN0QmFzZWRTZXQoJ2FiY2RlZicpCisgICAgczIgPSBMaXN0QmFzZWRTZXQoJ2RlZmdoaScpCisgICAgb3ZlcmxhcCA9IHMxICYgczIgICAgICAgICAgICAjIFRoZSBfX2FuZF9fKCkgbWV0aG9kIGlzIHN1cHBvcnRlZCBhdXRvbWF0aWNhbGx5CisKK05vdGVzIG9uIHVzaW5nIDpjbGFzczpgU2V0YCBhbmQgOmNsYXNzOmBNdXRhYmxlU2V0YCBhcyBhIG1peGluOgorCisoMSkKKyAgIFNpbmNlIHNvbWUgc2V0IG9wZXJhdGlvbnMgY3JlYXRlIG5ldyBzZXRzLCB0aGUgZGVmYXVsdCBtaXhpbiBtZXRob2RzIG5lZWQKKyAgIGEgd2F5IHRvIGNyZWF0ZSBuZXcgaW5zdGFuY2VzIGZyb20gYW4gaXRlcmFibGUuIFRoZSBjbGFzcyBjb25zdHJ1Y3RvciBpcworICAgYXNzdW1lZCB0byBoYXZlIGEgc2lnbmF0dXJlIGluIHRoZSBmb3JtIGBgQ2xhc3NOYW1lKGl0ZXJhYmxlKWBgLgorICAgVGhhdCBhc3N1bXB0aW9uIGlzIGZhY3RvcmVkLW91dCB0byBhbiBpbnRlcm5hbCBjbGFzc21ldGhvZCBjYWxsZWQKKyAgIDptZXRoOmBfZnJvbV9pdGVyYWJsZWAgd2hpY2ggY2FsbHMgYGBjbHMoaXRlcmFibGUpYGAgdG8gcHJvZHVjZSBhIG5ldyBzZXQuCisgICBJZiB0aGUgOmNsYXNzOmBTZXRgIG1peGluIGlzIGJlaW5nIHVzZWQgaW4gYSBjbGFzcyB3aXRoIGEgZGlmZmVyZW50CisgICBjb25zdHJ1Y3RvciBzaWduYXR1cmUsIHlvdSB3aWxsIG5lZWQgdG8gb3ZlcnJpZGUgOm1ldGg6YF9mcm9tX2l0ZXJhYmxlYAorICAgd2l0aCBhIGNsYXNzbWV0aG9kIHRoYXQgY2FuIGNvbnN0cnVjdCBuZXcgaW5zdGFuY2VzIGZyb20KKyAgIGFuIGl0ZXJhYmxlIGFyZ3VtZW50LgorCisoMikKKyAgIFRvIG92ZXJyaWRlIHRoZSBjb21wYXJpc29ucyAocHJlc3VtYWJseSBmb3Igc3BlZWQsIGFzIHRoZQorICAgc2VtYW50aWNzIGFyZSBmaXhlZCksIHJlZGVmaW5lIDptZXRoOmBfX2xlX19gIGFuZAorICAgdGhlbiB0aGUgb3RoZXIgb3BlcmF0aW9ucyB3aWxsIGF1dG9tYXRpY2FsbHkgZm9sbG93IHN1aXQuCisKKygzKQorICAgVGhlIDpjbGFzczpgU2V0YCBtaXhpbiBwcm92aWRlcyBhIDptZXRoOmBfaGFzaGAgbWV0aG9kIHRvIGNvbXB1dGUgYSBoYXNoIHZhbHVlCisgICBmb3IgdGhlIHNldDsgaG93ZXZlciwgOm1ldGg6YF9faGFzaF9fYCBpcyBub3QgZGVmaW5lZCBiZWNhdXNlIG5vdCBhbGwgc2V0cworICAgYXJlIGhhc2hhYmxlIG9yIGltbXV0YWJsZS4gIFRvIGFkZCBzZXQgaGFzaGFiaWx0eSB1c2luZyBtaXhpbnMsCisgICBpbmhlcml0IGZyb20gYm90aCA6bWV0aDpgU2V0YCBhbmQgOm1ldGg6YEhhc2hhYmxlYCwgdGhlbiBkZWZpbmUKKyAgIGBgX19oYXNoX18gPSBTZXQuX2hhc2hgYC4KKworLi4gc2VlYWxzbzo6CisKKyAgICogYE9yZGVyZWRTZXQgcmVjaXBlIDxodHRwOi8vY29kZS5hY3RpdmVzdGF0ZS5jb20vcmVjaXBlcy81NzY2OTQvPmBfIGZvciBhbgorICAgICBleGFtcGxlIGJ1aWx0IG9uIDpjbGFzczpgTXV0YWJsZVNldGAuCisKKyAgICogRm9yIG1vcmUgYWJvdXQgQUJDcywgc2VlIHRoZSA6bW9kOmBhYmNgIG1vZHVsZSBhbmQgOnBlcDpgMzExOWAuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9jb2xsZWN0aW9ucy5yc3QgYi9Eb2MvbGlicmFyeS9jb2xsZWN0aW9ucy5yc3QKaW5kZXggZTkwYjI1ZS4uZDUzOGM1NSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvY29sbGVjdGlvbnMucnN0CisrKyBiL0RvYy9saWJyYXJ5L2NvbGxlY3Rpb25zLnJzdApAQCAtMiwxNyArMiwxNyBAQAogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC4uIG1vZHVsZTo6IGNvbGxlY3Rpb25zCi0gICA6c3lub3BzaXM6IENvbnRhaW5lciBkYXRhdHlwZXMKKyAgICA6c3lub3BzaXM6IENvbnRhaW5lciBkYXRhdHlwZXMKIC4uIG1vZHVsZWF1dGhvcjo6IFJheW1vbmQgSGV0dGluZ2VyIDxweXRob25AcmNuLmNvbT4KIC4uIHNlY3Rpb25hdXRob3I6OiBSYXltb25kIEhldHRpbmdlciA8cHl0aG9uQHJjbi5jb20+CiAKIC4uIHRlc3RzZXR1cDo6ICoKIAotICAgZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgKgotICAgaW1wb3J0IGl0ZXJ0b29scwotICAgX19uYW1lX18gPSAnPGRvY3Rlc3Q+JworICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0ICoKKyAgICBpbXBvcnQgaXRlcnRvb2xzCisgICAgX19uYW1lX18gPSAnPGRvY3Rlc3Q+JwogCi0qKlNvdXJjZSBjb2RlOioqIDpzb3VyY2U6YExpYi9jb2xsZWN0aW9ucy5weWAgYW5kIDpzb3VyY2U6YExpYi9fYWJjb2xsLnB5YAorKipTb3VyY2UgY29kZToqKiA6c291cmNlOmBMaWIvY29sbGVjdGlvbnMvX19pbml0X18ucHlgCiAKIC0tLS0tLS0tLS0tLS0tCiAKQEAgLTIzLDYgKzIzLDcgQEAKID09PT09PT09PT09PT09PT09PT09PSAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiA6ZnVuYzpgbmFtZWR0dXBsZWAgICAgICBmYWN0b3J5IGZ1bmN0aW9uIGZvciBjcmVhdGluZyB0dXBsZSBzdWJjbGFzc2VzIHdpdGggbmFtZWQgZmllbGRzCiA6Y2xhc3M6YGRlcXVlYCAgICAgICAgICBsaXN0LWxpa2UgY29udGFpbmVyIHdpdGggZmFzdCBhcHBlbmRzIGFuZCBwb3BzIG9uIGVpdGhlciBlbmQKKzpjbGFzczpgQ2hhaW5NYXBgICAgICAgIGRpY3QtbGlrZSBjbGFzcyBmb3IgY3JlYXRpbmcgYSBzaW5nbGUgdmlldyBvZiBtdWx0aXBsZSBtYXBwaW5ncwogOmNsYXNzOmBDb3VudGVyYCAgICAgICAgZGljdCBzdWJjbGFzcyBmb3IgY291bnRpbmcgaGFzaGFibGUgb2JqZWN0cwogOmNsYXNzOmBPcmRlcmVkRGljdGAgICAgZGljdCBzdWJjbGFzcyB0aGF0IHJlbWVtYmVycyB0aGUgb3JkZXIgZW50cmllcyB3ZXJlIGFkZGVkCiA6Y2xhc3M6YGRlZmF1bHRkaWN0YCAgICBkaWN0IHN1YmNsYXNzIHRoYXQgY2FsbHMgYSBmYWN0b3J5IGZ1bmN0aW9uIHRvIHN1cHBseSBtaXNzaW5nIHZhbHVlcwpAQCAtMzEsMTAgKzMyLDE2MCBAQAogOmNsYXNzOmBVc2VyU3RyaW5nYCAgICAgd3JhcHBlciBhcm91bmQgc3RyaW5nIG9iamVjdHMgZm9yIGVhc2llciBzdHJpbmcgc3ViY2xhc3NpbmcKID09PT09PT09PT09PT09PT09PT09PSAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLUluIGFkZGl0aW9uIHRvIHRoZSBjb25jcmV0ZSBjb250YWluZXIgY2xhc3NlcywgdGhlIGNvbGxlY3Rpb25zIG1vZHVsZSBwcm92aWRlcwotOnJlZjpgYWJzdHJhY3QgYmFzZSBjbGFzc2VzIDxjb2xsZWN0aW9ucy1hYnN0cmFjdC1iYXNlLWNsYXNzZXM+YCB0aGF0IGNhbiBiZQotdXNlZCB0byB0ZXN0IHdoZXRoZXIgYSBjbGFzcyBwcm92aWRlcyBhIHBhcnRpY3VsYXIgaW50ZXJmYWNlLCBmb3IgZXhhbXBsZSwKLXdoZXRoZXIgaXQgaXMgaGFzaGFibGUgb3IgYSBtYXBwaW5nLgorLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICBNb3ZlZCA6cmVmOmBjb2xsZWN0aW9ucy1hYnN0cmFjdC1iYXNlLWNsYXNzZXNgIHRvIHRoZSA6bW9kOmBjb2xsZWN0aW9ucy5hYmNgIG1vZHVsZS4KKyAgICBGb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHRoZXkgY29udGludWUgdG8gYmUgdmlzaWJsZSBpbiB0aGlzIG1vZHVsZQorICAgIGFzIHdlbGwuCisKKworOmNsYXNzOmBDaGFpbk1hcGAgb2JqZWN0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworQSA6Y2xhc3M6YENoYWluTWFwYCBjbGFzcyBpcyBwcm92aWRlZCBmb3IgcXVpY2tseSBsaW5raW5nIGEgbnVtYmVyIG9mIG1hcHBpbmdzCitzbyB0aGV5IGNhbiBiZSB0cmVhdGVkIGFzIGEgc2luZ2xlIHVuaXQuICBJdCBpcyBvZnRlbiBtdWNoIGZhc3RlciB0aGFuIGNyZWF0aW5nCithIG5ldyBkaWN0aW9uYXJ5IGFuZCBydW5uaW5nIG11bHRpcGxlIDptZXRoOmB+ZGljdC51cGRhdGVgIGNhbGxzLgorCitUaGUgY2xhc3MgY2FuIGJlIHVzZWQgdG8gc2ltdWxhdGUgbmVzdGVkIHNjb3BlcyBhbmQgaXMgdXNlZnVsIGluIHRlbXBsYXRpbmcuCisKKy4uIGNsYXNzOjogQ2hhaW5NYXAoKm1hcHMpCisKKyAgICBBIDpjbGFzczpgQ2hhaW5NYXBgIGdyb3VwcyBtdWx0aXBsZSBkaWN0cyBvciBvdGhlciBtYXBwaW5ncyB0b2dldGhlciB0bworICAgIGNyZWF0ZSBhIHNpbmdsZSwgdXBkYXRlYWJsZSB2aWV3LiAgSWYgbm8gKm1hcHMqIGFyZSBzcGVjaWZpZWQsIGEgc2luZ2xlIGVtcHR5CisgICAgZGljdGlvbmFyeSBpcyBwcm92aWRlZCBzbyB0aGF0IGEgbmV3IGNoYWluIGFsd2F5cyBoYXMgYXQgbGVhc3Qgb25lIG1hcHBpbmcuCisKKyAgICBUaGUgdW5kZXJseWluZyBtYXBwaW5ncyBhcmUgc3RvcmVkIGluIGEgbGlzdC4gIFRoYXQgbGlzdCBpcyBwdWJsaWMgYW5kIGNhbgorICAgIGFjY2Vzc2VkIG9yIHVwZGF0ZWQgdXNpbmcgdGhlICptYXBzKiBhdHRyaWJ1dGUuICBUaGVyZSBpcyBubyBvdGhlciBzdGF0ZS4KKworICAgIExvb2t1cHMgc2VhcmNoIHRoZSB1bmRlcmx5aW5nIG1hcHBpbmdzIHN1Y2Nlc3NpdmVseSB1bnRpbCBhIGtleSBpcyBmb3VuZC4gIEluCisgICAgY29udHJhc3QsIHdyaXRlcywgdXBkYXRlcywgYW5kIGRlbGV0aW9ucyBvbmx5IG9wZXJhdGUgb24gdGhlIGZpcnN0IG1hcHBpbmcuCisKKyAgICBBIDpjbGFzczpgQ2hhaW5NYXBgIGluY29ycG9yYXRlcyB0aGUgdW5kZXJseWluZyBtYXBwaW5ncyBieSByZWZlcmVuY2UuICBTbywgaWYKKyAgICBvbmUgb2YgdGhlIHVuZGVybHlpbmcgbWFwcGluZ3MgZ2V0cyB1cGRhdGVkLCB0aG9zZSBjaGFuZ2VzIHdpbGwgYmUgcmVmbGVjdGVkCisgICAgaW4gOmNsYXNzOmBDaGFpbk1hcGAuCisKKyAgICBBbGwgb2YgdGhlIHVzdWFsIGRpY3Rpb25hcnkgbWV0aG9kcyBhcmUgc3VwcG9ydGVkLiAgSW4gYWRkaXRpb24sIHRoZXJlIGlzIGEKKyAgICAqbWFwcyogYXR0cmlidXRlLCBhIG1ldGhvZCBmb3IgY3JlYXRpbmcgbmV3IHN1YmNvbnRleHRzLCBhbmQgYSBwcm9wZXJ0eSBmb3IKKyAgICBhY2Nlc3NpbmcgYWxsIGJ1dCB0aGUgZmlyc3QgbWFwcGluZzoKKworICAgIC4uIGF0dHJpYnV0ZTo6IG1hcHMKKworICAgICAgICBBIHVzZXIgdXBkYXRlYWJsZSBsaXN0IG9mIG1hcHBpbmdzLiAgVGhlIGxpc3QgaXMgb3JkZXJlZCBmcm9tCisgICAgICAgIGZpcnN0LXNlYXJjaGVkIHRvIGxhc3Qtc2VhcmNoZWQuICBJdCBpcyB0aGUgb25seSBzdG9yZWQgc3RhdGUgYW5kIGNhbgorICAgICAgICBiZSBtb2RpZmllZCB0byBjaGFuZ2Ugd2hpY2ggbWFwcGluZ3MgYXJlIHNlYXJjaGVkLiAgVGhlIGxpc3Qgc2hvdWxkCisgICAgICAgIGFsd2F5cyBjb250YWluIGF0IGxlYXN0IG9uZSBtYXBwaW5nLgorCisgICAgLi4gbWV0aG9kOjogbmV3X2NoaWxkKCkKKworICAgICAgICBSZXR1cm5zIGEgbmV3IDpjbGFzczpgQ2hhaW5NYXBgIGNvbnRhaW5pbmcgYSBuZXcgOmNsYXNzOmBkaWN0YCBmb2xsb3dlZCBieQorICAgICAgICBhbGwgb2YgdGhlIG1hcHMgaW4gdGhlIGN1cnJlbnQgaW5zdGFuY2UuICBBIGNhbGwgdG8gYGBkLm5ld19jaGlsZCgpYGAgaXMKKyAgICAgICAgZXF1aXZhbGVudCB0bzogYGBDaGFpbk1hcCh7fSwgKmQubWFwcylgYC4gIFRoaXMgbWV0aG9kIGlzIHVzZWQgZm9yCisgICAgICAgIGNyZWF0aW5nIHN1YmNvbnRleHRzIHRoYXQgY2FuIGJlIHVwZGF0ZWQgd2l0aG91dCBhbHRlcmluZyB2YWx1ZXMgaW4gYW55CisgICAgICAgIG9mIHRoZSBwYXJlbnQgbWFwcGluZ3MuCisKKyAgICAuLiBtZXRob2Q6OiBwYXJlbnRzKCkKKworICAgICAgICBSZXR1cm5zIGEgbmV3IDpjbGFzczpgQ2hhaW5NYXBgIGNvbnRhaW5pbmcgYWxsIG9mIHRoZSBtYXBzIGluIHRoZSBjdXJyZW50CisgICAgICAgIGluc3RhbmNlIGV4Y2VwdCB0aGUgZmlyc3Qgb25lLiAgVGhpcyBpcyB1c2VmdWwgZm9yIHNraXBwaW5nIHRoZSBmaXJzdCBtYXAKKyAgICAgICAgaW4gdGhlIHNlYXJjaC4gIFRoZSB1c2UtY2FzZXMgYXJlIHNpbWlsYXIgdG8gdGhvc2UgZm9yIHRoZQorICAgICAgICA6a2V5d29yZDpgbm9ubG9jYWxgIGtleXdvcmQgdXNlZCBpbiA6dGVybTpgbmVzdGVkIHNjb3BlcyA8bmVzdGVkIHNjb3BlPmAuCisgICAgICAgIFRoZSB1c2UtY2FzZXMgYWxzbyBwYXJhbGxlbCB0aG9zZSBmb3IgdGhlIGJ1aWx0aW4gOmZ1bmM6YHN1cGVyYCBmdW5jdGlvbi4KKyAgICAgICAgQSByZWZlcmVuY2UgdG8gIGBgZC5wYXJlbnRzYGAgaXMgZXF1aXZhbGVudCB0bzogYGBDaGFpbk1hcCgqZC5tYXBzWzE6XSlgYC4KKworCisuLiBzZWVhbHNvOjoKKworICAgICogVGhlIGBNdWx0aUNvbnRleHQgY2xhc3MKKyAgICAgIDxodHRwOi8vc3ZuLmVudGhvdWdodC5jb20vc3ZuL2VudGhvdWdodC9Db2RlVG9vbHMvdHJ1bmsvZW50aG91Z2h0L2NvbnRleHRzL211bHRpX2NvbnRleHQucHk+YF8KKyAgICAgIGluIHRoZSBFbnRob3VnaHQgYENvZGVUb29scyBwYWNrYWdlCisgICAgICA8aHR0cHM6Ly9naXRodWIuY29tL2VudGhvdWdodC9jb2RldG9vbHM+YF8gaGFzIG9wdGlvbnMgdG8gc3VwcG9ydAorICAgICAgd3JpdGluZyB0byBhbnkgbWFwcGluZyBpbiB0aGUgY2hhaW4uCisKKyAgICAqIERqYW5nbydzIGBDb250ZXh0IGNsYXNzCisgICAgICA8aHR0cDovL2NvZGUuZGphbmdvcHJvamVjdC5jb20vYnJvd3Nlci9kamFuZ28vdHJ1bmsvZGphbmdvL3RlbXBsYXRlL2NvbnRleHQucHk+YF8KKyAgICAgIGZvciB0ZW1wbGF0aW5nIGlzIGEgcmVhZC1vbmx5IGNoYWluIG9mIG1hcHBpbmdzLiAgSXQgYWxzbyBmZWF0dXJlcworICAgICAgcHVzaGluZyBhbmQgcG9wcGluZyBvZiBjb250ZXh0cyBzaW1pbGFyIHRvIHRoZQorICAgICAgOm1ldGg6YH5jb2xsZWN0aW9ucy5DaGFpbk1hcC5uZXdfY2hpbGRgIG1ldGhvZCBhbmQgdGhlCisgICAgICA6bWV0aDpgfmNvbGxlY3Rpb25zLkNoYWluTWFwLnBhcmVudHNgIHByb3BlcnR5LgorCisgICAgKiBUaGUgYE5lc3RlZCBDb250ZXh0cyByZWNpcGUKKyAgICAgIDxodHRwOi8vY29kZS5hY3RpdmVzdGF0ZS5jb20vcmVjaXBlcy81Nzc0MzQvPmBfIGhhcyBvcHRpb25zIHRvIGNvbnRyb2wKKyAgICAgIHdoZXRoZXIgd3JpdGVzIGFuZCBvdGhlciBtdXRhdGlvbnMgYXBwbHkgb25seSB0byB0aGUgZmlyc3QgbWFwcGluZyBvciB0bworICAgICAgYW55IG1hcHBpbmcgaW4gdGhlIGNoYWluLgorCisgICAgKiBBIGBncmVhdGx5IHNpbXBsaWZpZWQgcmVhZC1vbmx5IHZlcnNpb24gb2YgQ2hhaW5tYXAKKyAgICAgIDxodHRwOi8vY29kZS5hY3RpdmVzdGF0ZS5jb20vcmVjaXBlcy8zMDUyNjgvPmBfLgorCisKKzpjbGFzczpgQ2hhaW5NYXBgIEV4YW1wbGVzIGFuZCBSZWNpcGVzCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitUaGlzIHNlY3Rpb24gc2hvd3MgdmFyaW91cyBhcHByb2FjaGVzIHRvIHdvcmtpbmcgd2l0aCBjaGFpbmVkIG1hcHMuCisKKworRXhhbXBsZSBvZiBzaW11bGF0aW5nIFB5dGhvbidzIGludGVybmFsIGxvb2t1cCBjaGFpbjo6CisKKyAgICAgICAgaW1wb3J0IGJ1aWx0aW5zCisgICAgICAgIHB5bG9va3VwID0gQ2hhaW5NYXAobG9jYWxzKCksIGdsb2JhbHMoKSwgdmFycyhidWlsdGlucykpCisKK0V4YW1wbGUgb2YgbGV0dGluZyB1c2VyIHNwZWNpZmllZCB2YWx1ZXMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgZW52aXJvbm1lbnQKK3ZhcmlhYmxlcyB3aGljaCBpbiB0dXJuIHRha2UgcHJlY2VkZW5jZSBvdmVyIGRlZmF1bHQgdmFsdWVzOjoKKworICAgICAgICBpbXBvcnQgb3MsIGFyZ3BhcnNlCisgICAgICAgIGRlZmF1bHRzID0geydjb2xvcic6ICdyZWQnLCAndXNlcic6IGd1ZXN0fQorICAgICAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy11JywgJy0tdXNlcicpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1jJywgJy0tY29sb3InKQorICAgICAgICB1c2VyX3NwZWNpZmllZCA9IHZhcnMocGFyc2VyLnBhcnNlX2FyZ3MoKSkKKyAgICAgICAgY29tYmluZWQgPSBDaGFpbk1hcCh1c2VyX3NwZWNpZmllZCwgb3MuZW52aXJvbiwgZGVmYXVsdHMpCisKK0V4YW1wbGUgcGF0dGVybnMgZm9yIHVzaW5nIHRoZSA6Y2xhc3M6YENoYWluTWFwYCBjbGFzcyB0byBzaW11bGF0ZSBuZXN0ZWQKK2NvbnRleHRzOjoKKworICAgICAgICBjID0gQ2hhaW5NYXAoKSAgICAgICAgIyBDcmVhdGUgcm9vdCBjb250ZXh0CisgICAgICAgIGQgPSBjLm5ld19jaGlsZCgpICAgICAjIENyZWF0ZSBuZXN0ZWQgY2hpbGQgY29udGV4dAorICAgICAgICBlID0gYy5uZXdfY2hpbGQoKSAgICAgIyBDaGlsZCBvZiBjLCBpbmRlcGVuZGVudCBmcm9tIGQKKyAgICAgICAgZS5tYXBzWzBdICAgICAgICAgICAgICMgQ3VycmVudCBjb250ZXh0IGRpY3Rpb25hcnkgLS0gbGlrZSBQeXRob24ncyBsb2NhbHMoKQorICAgICAgICBlLm1hcHNbLTFdICAgICAgICAgICAgIyBSb290IGNvbnRleHQgLS0gbGlrZSBQeXRob24ncyBnbG9iYWxzKCkKKyAgICAgICAgZS5wYXJlbnRzICAgICAgICAgICAgICMgRW5jbG9zaW5nIGNvbnRleHQgY2hhaW4gLS0gbGlrZSBQeXRob24ncyBub25sb2NhbHMKKworICAgICAgICBkWyd4J10gICAgICAgICAgICAgICAgIyBHZXQgZmlyc3Qga2V5IGluIHRoZSBjaGFpbiBvZiBjb250ZXh0cworICAgICAgICBkWyd4J10gPSAxICAgICAgICAgICAgIyBTZXQgdmFsdWUgaW4gY3VycmVudCBjb250ZXh0CisgICAgICAgIGRlbFsneCddICAgICAgICAgICAgICAjIERlbGV0ZSBmcm9tIGN1cnJlbnQgY29udGV4dAorICAgICAgICBsaXN0KGQpICAgICAgICAgICAgICAgIyBBbGwgbmVzdGVkIHZhbHVlcworICAgICAgICBrIGluIGQgICAgICAgICAgICAgICAgIyBDaGVjayBhbGwgbmVzdGVkIHZhbHVlcworICAgICAgICBsZW4oZCkgICAgICAgICAgICAgICAgIyBOdW1iZXIgb2YgbmVzdGVkIHZhbHVlcworICAgICAgICBkLml0ZW1zKCkgICAgICAgICAgICAgIyBBbGwgbmVzdGVkIGl0ZW1zCisgICAgICAgIGRpY3QoZCkgICAgICAgICAgICAgICAjIEZsYXR0ZW4gaW50byBhIHJlZ3VsYXIgZGljdGlvbmFyeQorCitUaGUgOmNsYXNzOmBDaGFpbk1hcGAgY2xhc3Mgb25seSBtYWtlcyB1cGRhdGVzICh3cml0ZXMgYW5kIGRlbGV0aW9ucykgdG8gdGhlCitmaXJzdCBtYXBwaW5nIGluIHRoZSBjaGFpbiB3aGlsZSBsb29rdXBzIHdpbGwgc2VhcmNoIHRoZSBmdWxsIGNoYWluLiAgSG93ZXZlciwKK2lmIGRlZXAgd3JpdGVzIGFuZCBkZWxldGlvbnMgYXJlIGRlc2lyZWQsIGl0IGlzIGVhc3kgdG8gbWFrZSBhIHN1YmNsYXNzIHRoYXQKK3VwZGF0ZXMga2V5cyBmb3VuZCBkZWVwZXIgaW4gdGhlIGNoYWluOjoKKworICAgIGNsYXNzIERlZXBDaGFpbk1hcChDaGFpbk1hcCk6CisgICAgICAgICdWYXJpYW50IG9mIENoYWluTWFwIHRoYXQgYWxsb3dzIGRpcmVjdCB1cGRhdGVzIHRvIGlubmVyIHNjb3BlcycKKworICAgICAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6CisgICAgICAgICAgICBmb3IgbWFwcGluZyBpbiBzZWxmLm1hcHM6CisgICAgICAgICAgICAgICAgaWYga2V5IGluIG1hcHBpbmc6CisgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdba2V5XSA9IHZhbHVlCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgc2VsZi5tYXBzWzBdW2tleV0gPSB2YWx1ZQorCisgICAgICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICAgICAgZm9yIG1hcHBpbmcgaW4gc2VsZi5tYXBzOgorICAgICAgICAgICAgICAgIGlmIGtleSBpbiBtYXBwaW5nOgorICAgICAgICAgICAgICAgICAgICBkZWwgbWFwcGluZ1trZXldCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3Ioa2V5KQorCisgICAgPj4+IGQgPSBEZWVwQ2hhaW5NYXAoeyd6ZWJyYSc6ICdibGFjayd9LCB7J2VsZXBoYW50JyA6ICdibHVlJ30sIHsnbGlvbicgOiAneWVsbG93J30pCisgICAgPj4+IGRbJ2xpb24nXSA9ICdvcmFuZ2UnICAgICAgICAgIyB1cGRhdGUgYW4gZXhpc3Rpbmcga2V5IHR3byBsZXZlbHMgZG93bgorICAgID4+PiBkWydzbmFrZSddID0gJ3JlZCcgICAgICAgICAgICMgbmV3IGtleXMgZ2V0IGFkZGVkIHRvIHRoZSB0b3Btb3N0IGRpY3QKKyAgICA+Pj4gZGVsIGRbJ2VsZXBoYW50J10gICAgICAgICAgICAjIHJlbW92ZSBhbiBleGlzdGluZyBrZXkgb25lIGxldmVsIGRvd24KKyAgICBEZWVwQ2hhaW5NYXAoeyd6ZWJyYSc6ICdibGFjaycsICdzbmFrZSc6ICdyZWQnfSwge30sIHsnbGlvbic6ICdvcmFuZ2UnfSkKIAogCiA6Y2xhc3M6YENvdW50ZXJgIG9iamVjdHMKQEAgLTU5LDg1ICsyMTAsODUgQEAKIAogLi4gY2xhc3M6OiBDb3VudGVyKFtpdGVyYWJsZS1vci1tYXBwaW5nXSkKIAotICAgQSA6Y2xhc3M6YENvdW50ZXJgIGlzIGEgOmNsYXNzOmBkaWN0YCBzdWJjbGFzcyBmb3IgY291bnRpbmcgaGFzaGFibGUgb2JqZWN0cy4KLSAgIEl0IGlzIGFuIHVub3JkZXJlZCBjb2xsZWN0aW9uIHdoZXJlIGVsZW1lbnRzIGFyZSBzdG9yZWQgYXMgZGljdGlvbmFyeSBrZXlzCi0gICBhbmQgdGhlaXIgY291bnRzIGFyZSBzdG9yZWQgYXMgZGljdGlvbmFyeSB2YWx1ZXMuICBDb3VudHMgYXJlIGFsbG93ZWQgdG8gYmUKLSAgIGFueSBpbnRlZ2VyIHZhbHVlIGluY2x1ZGluZyB6ZXJvIG9yIG5lZ2F0aXZlIGNvdW50cy4gIFRoZSA6Y2xhc3M6YENvdW50ZXJgCi0gICBjbGFzcyBpcyBzaW1pbGFyIHRvIGJhZ3Mgb3IgbXVsdGlzZXRzIGluIG90aGVyIGxhbmd1YWdlcy4KKyAgICBBIDpjbGFzczpgQ291bnRlcmAgaXMgYSA6Y2xhc3M6YGRpY3RgIHN1YmNsYXNzIGZvciBjb3VudGluZyBoYXNoYWJsZSBvYmplY3RzLgorICAgIEl0IGlzIGFuIHVub3JkZXJlZCBjb2xsZWN0aW9uIHdoZXJlIGVsZW1lbnRzIGFyZSBzdG9yZWQgYXMgZGljdGlvbmFyeSBrZXlzCisgICAgYW5kIHRoZWlyIGNvdW50cyBhcmUgc3RvcmVkIGFzIGRpY3Rpb25hcnkgdmFsdWVzLiAgQ291bnRzIGFyZSBhbGxvd2VkIHRvIGJlCisgICAgYW55IGludGVnZXIgdmFsdWUgaW5jbHVkaW5nIHplcm8gb3IgbmVnYXRpdmUgY291bnRzLiAgVGhlIDpjbGFzczpgQ291bnRlcmAKKyAgICBjbGFzcyBpcyBzaW1pbGFyIHRvIGJhZ3Mgb3IgbXVsdGlzZXRzIGluIG90aGVyIGxhbmd1YWdlcy4KIAotICAgRWxlbWVudHMgYXJlIGNvdW50ZWQgZnJvbSBhbiAqaXRlcmFibGUqIG9yIGluaXRpYWxpemVkIGZyb20gYW5vdGhlcgotICAgKm1hcHBpbmcqIChvciBjb3VudGVyKToKKyAgICBFbGVtZW50cyBhcmUgY291bnRlZCBmcm9tIGFuICppdGVyYWJsZSogb3IgaW5pdGlhbGl6ZWQgZnJvbSBhbm90aGVyCisgICAgKm1hcHBpbmcqIChvciBjb3VudGVyKToKIAogICAgICAgICA+Pj4gYyA9IENvdW50ZXIoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYSBuZXcsIGVtcHR5IGNvdW50ZXIKICAgICAgICAgPj4+IGMgPSBDb3VudGVyKCdnYWxsYWhhZCcpICAgICAgICAgICAgICAgICAjIGEgbmV3IGNvdW50ZXIgZnJvbSBhbiBpdGVyYWJsZQogICAgICAgICA+Pj4gYyA9IENvdW50ZXIoeydyZWQnOiA0LCAnYmx1ZSc6IDJ9KSAgICAgICMgYSBuZXcgY291bnRlciBmcm9tIGEgbWFwcGluZwogICAgICAgICA+Pj4gYyA9IENvdW50ZXIoY2F0cz00LCBkb2dzPTgpICAgICAgICAgICAgICMgYSBuZXcgY291bnRlciBmcm9tIGtleXdvcmQgYXJncwogCi0gICBDb3VudGVyIG9iamVjdHMgaGF2ZSBhIGRpY3Rpb25hcnkgaW50ZXJmYWNlIGV4Y2VwdCB0aGF0IHRoZXkgcmV0dXJuIGEgemVybwotICAgY291bnQgZm9yIG1pc3NpbmcgaXRlbXMgaW5zdGVhZCBvZiByYWlzaW5nIGEgOmV4YzpgS2V5RXJyb3JgOgorICAgIENvdW50ZXIgb2JqZWN0cyBoYXZlIGEgZGljdGlvbmFyeSBpbnRlcmZhY2UgZXhjZXB0IHRoYXQgdGhleSByZXR1cm4gYSB6ZXJvCisgICAgY291bnQgZm9yIG1pc3NpbmcgaXRlbXMgaW5zdGVhZCBvZiByYWlzaW5nIGEgOmV4YzpgS2V5RXJyb3JgOgogCiAgICAgICAgID4+PiBjID0gQ291bnRlcihbJ2VnZ3MnLCAnaGFtJ10pCiAgICAgICAgID4+PiBjWydiYWNvbiddICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjb3VudCBvZiBhIG1pc3NpbmcgZWxlbWVudCBpcyB6ZXJvCiAgICAgICAgIDAKIAotICAgU2V0dGluZyBhIGNvdW50IHRvIHplcm8gZG9lcyBub3QgcmVtb3ZlIGFuIGVsZW1lbnQgZnJvbSBhIGNvdW50ZXIuCi0gICBVc2UgYGBkZWxgYCB0byByZW1vdmUgaXQgZW50aXJlbHk6CisgICAgU2V0dGluZyBhIGNvdW50IHRvIHplcm8gZG9lcyBub3QgcmVtb3ZlIGFuIGVsZW1lbnQgZnJvbSBhIGNvdW50ZXIuCisgICAgVXNlIGBgZGVsYGAgdG8gcmVtb3ZlIGl0IGVudGlyZWx5OgogCiAgICAgICAgID4+PiBjWydzYXVzYWdlJ10gPSAwICAgICAgICAgICAgICAgICAgICAgICAgIyBjb3VudGVyIGVudHJ5IHdpdGggYSB6ZXJvIGNvdW50CiAgICAgICAgID4+PiBkZWwgY1snc2F1c2FnZSddICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWwgYWN0dWFsbHkgcmVtb3ZlcyB0aGUgZW50cnkKIAotICAgLi4gdmVyc2lvbmFkZGVkOjogMy4xCisgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4xCiAKIAotICAgQ291bnRlciBvYmplY3RzIHN1cHBvcnQgdGhyZWUgbWV0aG9kcyBiZXlvbmQgdGhvc2UgYXZhaWxhYmxlIGZvciBhbGwKLSAgIGRpY3Rpb25hcmllczoKKyAgICBDb3VudGVyIG9iamVjdHMgc3VwcG9ydCB0aHJlZSBtZXRob2RzIGJleW9uZCB0aG9zZSBhdmFpbGFibGUgZm9yIGFsbAorICAgIGRpY3Rpb25hcmllczoKIAotICAgLi4gbWV0aG9kOjogZWxlbWVudHMoKQorICAgIC4uIG1ldGhvZDo6IGVsZW1lbnRzKCkKIAotICAgICAgUmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgZWxlbWVudHMgcmVwZWF0aW5nIGVhY2ggYXMgbWFueSB0aW1lcyBhcyBpdHMKLSAgICAgIGNvdW50LiAgRWxlbWVudHMgYXJlIHJldHVybmVkIGluIGFyYml0cmFyeSBvcmRlci4gIElmIGFuIGVsZW1lbnQncyBjb3VudAotICAgICAgaXMgbGVzcyB0aGFuIG9uZSwgOm1ldGg6YGVsZW1lbnRzYCB3aWxsIGlnbm9yZSBpdC4KKyAgICAgICAgUmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgZWxlbWVudHMgcmVwZWF0aW5nIGVhY2ggYXMgbWFueSB0aW1lcyBhcyBpdHMKKyAgICAgICAgY291bnQuICBFbGVtZW50cyBhcmUgcmV0dXJuZWQgaW4gYXJiaXRyYXJ5IG9yZGVyLiAgSWYgYW4gZWxlbWVudCdzIGNvdW50CisgICAgICAgIGlzIGxlc3MgdGhhbiBvbmUsIDptZXRoOmBlbGVtZW50c2Agd2lsbCBpZ25vcmUgaXQuCiAKICAgICAgICAgICAgID4+PiBjID0gQ291bnRlcihhPTQsIGI9MiwgYz0wLCBkPS0yKQogICAgICAgICAgICAgPj4+IGxpc3QoYy5lbGVtZW50cygpKQogICAgICAgICAgICAgWydhJywgJ2EnLCAnYScsICdhJywgJ2InLCAnYiddCiAKLSAgIC4uIG1ldGhvZDo6IG1vc3RfY29tbW9uKFtuXSkKKyAgICAuLiBtZXRob2Q6OiBtb3N0X2NvbW1vbihbbl0pCiAKLSAgICAgIFJldHVybiBhIGxpc3Qgb2YgdGhlICpuKiBtb3N0IGNvbW1vbiBlbGVtZW50cyBhbmQgdGhlaXIgY291bnRzIGZyb20gdGhlCi0gICAgICBtb3N0IGNvbW1vbiB0byB0aGUgbGVhc3QuICBJZiAqbiogaXMgbm90IHNwZWNpZmllZCwgOmZ1bmM6YG1vc3RfY29tbW9uYAotICAgICAgcmV0dXJucyAqYWxsKiBlbGVtZW50cyBpbiB0aGUgY291bnRlci4gIEVsZW1lbnRzIHdpdGggZXF1YWwgY291bnRzIGFyZQotICAgICAgb3JkZXJlZCBhcmJpdHJhcmlseToKKyAgICAgICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgKm4qIG1vc3QgY29tbW9uIGVsZW1lbnRzIGFuZCB0aGVpciBjb3VudHMgZnJvbSB0aGUKKyAgICAgICAgbW9zdCBjb21tb24gdG8gdGhlIGxlYXN0LiAgSWYgKm4qIGlzIG5vdCBzcGVjaWZpZWQsIDpmdW5jOmBtb3N0X2NvbW1vbmAKKyAgICAgICAgcmV0dXJucyAqYWxsKiBlbGVtZW50cyBpbiB0aGUgY291bnRlci4gIEVsZW1lbnRzIHdpdGggZXF1YWwgY291bnRzIGFyZQorICAgICAgICBvcmRlcmVkIGFyYml0cmFyaWx5OgogCiAgICAgICAgICAgICA+Pj4gQ291bnRlcignYWJyYWNhZGFicmEnKS5tb3N0X2NvbW1vbigzKQogICAgICAgICAgICAgWygnYScsIDUpLCAoJ3InLCAyKSwgKCdiJywgMildCiAKLSAgIC4uIG1ldGhvZDo6IHN1YnRyYWN0KFtpdGVyYWJsZS1vci1tYXBwaW5nXSkKKyAgICAuLiBtZXRob2Q6OiBzdWJ0cmFjdChbaXRlcmFibGUtb3ItbWFwcGluZ10pCiAKLSAgICAgIEVsZW1lbnRzIGFyZSBzdWJ0cmFjdGVkIGZyb20gYW4gKml0ZXJhYmxlKiBvciBmcm9tIGFub3RoZXIgKm1hcHBpbmcqCi0gICAgICAob3IgY291bnRlcikuICBMaWtlIDptZXRoOmBkaWN0LnVwZGF0ZWAgYnV0IHN1YnRyYWN0cyBjb3VudHMgaW5zdGVhZAotICAgICAgb2YgcmVwbGFjaW5nIHRoZW0uICBCb3RoIGlucHV0cyBhbmQgb3V0cHV0cyBtYXkgYmUgemVybyBvciBuZWdhdGl2ZS4KKyAgICAgICAgRWxlbWVudHMgYXJlIHN1YnRyYWN0ZWQgZnJvbSBhbiAqaXRlcmFibGUqIG9yIGZyb20gYW5vdGhlciAqbWFwcGluZyoKKyAgICAgICAgKG9yIGNvdW50ZXIpLiAgTGlrZSA6bWV0aDpgZGljdC51cGRhdGVgIGJ1dCBzdWJ0cmFjdHMgY291bnRzIGluc3RlYWQKKyAgICAgICAgb2YgcmVwbGFjaW5nIHRoZW0uICBCb3RoIGlucHV0cyBhbmQgb3V0cHV0cyBtYXkgYmUgemVybyBvciBuZWdhdGl2ZS4KIAogICAgICAgICAgICAgPj4+IGMgPSBDb3VudGVyKGE9NCwgYj0yLCBjPTAsIGQ9LTIpCiAgICAgICAgICAgICA+Pj4gZCA9IENvdW50ZXIoYT0xLCBiPTIsIGM9MywgZD00KQogICAgICAgICAgICAgPj4+IGMuc3VidHJhY3QoZCkKICAgICAgICAgICAgIENvdW50ZXIoeydhJzogMywgJ2InOiAwLCAnYyc6IC0zLCAnZCc6IC02fSkKIAotICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCisgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCi0gICBUaGUgdXN1YWwgZGljdGlvbmFyeSBtZXRob2RzIGFyZSBhdmFpbGFibGUgZm9yIDpjbGFzczpgQ291bnRlcmAgb2JqZWN0cwotICAgZXhjZXB0IGZvciB0d28gd2hpY2ggd29yayBkaWZmZXJlbnRseSBmb3IgY291bnRlcnMuCisgICAgVGhlIHVzdWFsIGRpY3Rpb25hcnkgbWV0aG9kcyBhcmUgYXZhaWxhYmxlIGZvciA6Y2xhc3M6YENvdW50ZXJgIG9iamVjdHMKKyAgICBleGNlcHQgZm9yIHR3byB3aGljaCB3b3JrIGRpZmZlcmVudGx5IGZvciBjb3VudGVycy4KIAotICAgLi4gbWV0aG9kOjogZnJvbWtleXMoaXRlcmFibGUpCisgICAgLi4gbWV0aG9kOjogZnJvbWtleXMoaXRlcmFibGUpCiAKLSAgICAgIFRoaXMgY2xhc3MgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3IgOmNsYXNzOmBDb3VudGVyYCBvYmplY3RzLgorICAgICAgICBUaGlzIGNsYXNzIG1ldGhvZCBpcyBub3QgaW1wbGVtZW50ZWQgZm9yIDpjbGFzczpgQ291bnRlcmAgb2JqZWN0cy4KIAotICAgLi4gbWV0aG9kOjogdXBkYXRlKFtpdGVyYWJsZS1vci1tYXBwaW5nXSkKKyAgICAuLiBtZXRob2Q6OiB1cGRhdGUoW2l0ZXJhYmxlLW9yLW1hcHBpbmddKQogCi0gICAgICBFbGVtZW50cyBhcmUgY291bnRlZCBmcm9tIGFuICppdGVyYWJsZSogb3IgYWRkZWQtaW4gZnJvbSBhbm90aGVyCi0gICAgICAqbWFwcGluZyogKG9yIGNvdW50ZXIpLiAgTGlrZSA6bWV0aDpgZGljdC51cGRhdGVgIGJ1dCBhZGRzIGNvdW50cwotICAgICAgaW5zdGVhZCBvZiByZXBsYWNpbmcgdGhlbS4gIEFsc28sIHRoZSAqaXRlcmFibGUqIGlzIGV4cGVjdGVkIHRvIGJlIGEKLSAgICAgIHNlcXVlbmNlIG9mIGVsZW1lbnRzLCBub3QgYSBzZXF1ZW5jZSBvZiBgYChrZXksIHZhbHVlKWBgIHBhaXJzLgorICAgICAgICBFbGVtZW50cyBhcmUgY291bnRlZCBmcm9tIGFuICppdGVyYWJsZSogb3IgYWRkZWQtaW4gZnJvbSBhbm90aGVyCisgICAgICAgICptYXBwaW5nKiAob3IgY291bnRlcikuICBMaWtlIDptZXRoOmBkaWN0LnVwZGF0ZWAgYnV0IGFkZHMgY291bnRzCisgICAgICAgIGluc3RlYWQgb2YgcmVwbGFjaW5nIHRoZW0uICBBbHNvLCB0aGUgKml0ZXJhYmxlKiBpcyBleHBlY3RlZCB0byBiZSBhCisgICAgICAgIHNlcXVlbmNlIG9mIGVsZW1lbnRzLCBub3QgYSBzZXF1ZW5jZSBvZiBgYChrZXksIHZhbHVlKWBgIHBhaXJzLgogCiBDb21tb24gcGF0dGVybnMgZm9yIHdvcmtpbmcgd2l0aCA6Y2xhc3M6YENvdW50ZXJgIG9iamVjdHM6OgogCkBAIC0xNDksNyArMzAwLDcgQEAKICAgICBjLml0ZW1zKCkgICAgICAgICAgICAgICAgICAgICAgICMgY29udmVydCB0byBhIGxpc3Qgb2YgKGVsZW0sIGNudCkgcGFpcnMKICAgICBDb3VudGVyKGRpY3QobGlzdF9vZl9wYWlycykpICAgICMgY29udmVydCBmcm9tIGEgbGlzdCBvZiAoZWxlbSwgY250KSBwYWlycwogICAgIGMubW9zdF9jb21tb24oKVs6LW46LTFdICAgICAgICAgIyBuIGxlYXN0IGNvbW1vbiBlbGVtZW50cwotICAgIGMgKz0gQ291bnRlcigpICAgICAgICAgICAgICAgICAgIyByZW1vdmUgemVybyBhbmQgbmVnYXRpdmUgY291bnRzCisgICAgK2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlbW92ZSB6ZXJvIGFuZCBuZWdhdGl2ZSBjb3VudHMKIAogU2V2ZXJhbCBtYXRoZW1hdGljYWwgb3BlcmF0aW9ucyBhcmUgcHJvdmlkZWQgZm9yIGNvbWJpbmluZyA6Y2xhc3M6YENvdW50ZXJgCiBvYmplY3RzIHRvIHByb2R1Y2UgbXVsdGlzZXRzIChjb3VudGVycyB0aGF0IGhhdmUgY291bnRzIGdyZWF0ZXIgdGhhbiB6ZXJvKS4KQEAgLTE2OSwzMiArMzIwLDQ0IEBACiAgICAgPj4+IGMgfCBkICAgICAgICAgICAgICAgICAgICAgICAjIHVuaW9uOiAgbWF4KGNbeF0sIGRbeF0pCiAgICAgQ291bnRlcih7J2EnOiAzLCAnYic6IDJ9KQogCitVbmFyeSBhZGRpdGlvbiBhbmQgc3Vic3RyYWN0aW9uIGFyZSBzaG9ydGN1dHMgZm9yIGFkZGluZyBhbiBlbXB0eSBjb3VudGVyCitvciBzdWJ0cmFjdGluZyBmcm9tIGFuIGVtcHR5IGNvdW50ZXIuCisKKyAgICA+Pj4gYyA9IENvdW50ZXIoYT0yLCBiPS00KQorICAgID4+PiArYworICAgIENvdW50ZXIoeydhJzogMn0pCisgICAgPj4+IC1jCisgICAgQ291bnRlcih7J2InOiA0fSkKKworLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgQWRkZWQgc3VwcG9ydCBmb3IgdW5hcnkgcGx1cywgdW5hcnkgbWludXMsIGFuZCBpbi1wbGFjZSBtdWx0aXNldCBvcGVyYXRpb25zLgorCiAuLiBub3RlOjoKIAotICAgQ291bnRlcnMgd2VyZSBwcmltYXJpbHkgZGVzaWduZWQgdG8gd29yayB3aXRoIHBvc2l0aXZlIGludGVnZXJzIHRvIHJlcHJlc2VudAotICAgcnVubmluZyBjb3VudHM7IGhvd2V2ZXIsIGNhcmUgd2FzIHRha2VuIHRvIG5vdCB1bm5lY2Vzc2FyaWx5IHByZWNsdWRlIHVzZQotICAgY2FzZXMgbmVlZGluZyBvdGhlciB0eXBlcyBvciBuZWdhdGl2ZSB2YWx1ZXMuICBUbyBoZWxwIHdpdGggdGhvc2UgdXNlIGNhc2VzLAotICAgdGhpcyBzZWN0aW9uIGRvY3VtZW50cyB0aGUgbWluaW11bSByYW5nZSBhbmQgdHlwZSByZXN0cmljdGlvbnMuCisgICAgQ291bnRlcnMgd2VyZSBwcmltYXJpbHkgZGVzaWduZWQgdG8gd29yayB3aXRoIHBvc2l0aXZlIGludGVnZXJzIHRvIHJlcHJlc2VudAorICAgIHJ1bm5pbmcgY291bnRzOyBob3dldmVyLCBjYXJlIHdhcyB0YWtlbiB0byBub3QgdW5uZWNlc3NhcmlseSBwcmVjbHVkZSB1c2UKKyAgICBjYXNlcyBuZWVkaW5nIG90aGVyIHR5cGVzIG9yIG5lZ2F0aXZlIHZhbHVlcy4gIFRvIGhlbHAgd2l0aCB0aG9zZSB1c2UgY2FzZXMsCisgICAgdGhpcyBzZWN0aW9uIGRvY3VtZW50cyB0aGUgbWluaW11bSByYW5nZSBhbmQgdHlwZSByZXN0cmljdGlvbnMuCiAKLSAgICogVGhlIDpjbGFzczpgQ291bnRlcmAgY2xhc3MgaXRzZWxmIGlzIGEgZGljdGlvbmFyeSBzdWJjbGFzcyB3aXRoIG5vCi0gICAgIHJlc3RyaWN0aW9ucyBvbiBpdHMga2V5cyBhbmQgdmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUgaW50ZW5kZWQgdG8gYmUgbnVtYmVycwotICAgICByZXByZXNlbnRpbmcgY291bnRzLCBidXQgeW91ICpjb3VsZCogc3RvcmUgYW55dGhpbmcgaW4gdGhlIHZhbHVlIGZpZWxkLgorICAgICogVGhlIDpjbGFzczpgQ291bnRlcmAgY2xhc3MgaXRzZWxmIGlzIGEgZGljdGlvbmFyeSBzdWJjbGFzcyB3aXRoIG5vCisgICAgICAgIHJlc3RyaWN0aW9ucyBvbiBpdHMga2V5cyBhbmQgdmFsdWVzLiAgVGhlIHZhbHVlcyBhcmUgaW50ZW5kZWQgdG8gYmUgbnVtYmVycworICAgICAgICByZXByZXNlbnRpbmcgY291bnRzLCBidXQgeW91ICpjb3VsZCogc3RvcmUgYW55dGhpbmcgaW4gdGhlIHZhbHVlIGZpZWxkLgogCi0gICAqIFRoZSA6bWV0aDpgbW9zdF9jb21tb25gIG1ldGhvZCByZXF1aXJlcyBvbmx5IHRoYXQgdGhlIHZhbHVlcyBiZSBvcmRlcmFibGUuCisgICAgKiBUaGUgOm1ldGg6YG1vc3RfY29tbW9uYCBtZXRob2QgcmVxdWlyZXMgb25seSB0aGF0IHRoZSB2YWx1ZXMgYmUgb3JkZXJhYmxlLgogCi0gICAqIEZvciBpbi1wbGFjZSBvcGVyYXRpb25zIHN1Y2ggYXMgYGBjW2tleV0gKz0gMWBgLCB0aGUgdmFsdWUgdHlwZSBuZWVkIG9ubHkKLSAgICAgc3VwcG9ydCBhZGRpdGlvbiBhbmQgc3VidHJhY3Rpb24uICBTbyBmcmFjdGlvbnMsIGZsb2F0cywgYW5kIGRlY2ltYWxzIHdvdWxkCi0gICAgIHdvcmsgYW5kIG5lZ2F0aXZlIHZhbHVlcyBhcmUgc3VwcG9ydGVkLiAgVGhlIHNhbWUgaXMgYWxzbyB0cnVlIGZvcgotICAgICA6bWV0aDpgdXBkYXRlYCBhbmQgOm1ldGg6YHN1YnRyYWN0YCB3aGljaCBhbGxvdyBuZWdhdGl2ZSBhbmQgemVybyB2YWx1ZXMKLSAgICAgZm9yIGJvdGggaW5wdXRzIGFuZCBvdXRwdXRzLgorICAgICogRm9yIGluLXBsYWNlIG9wZXJhdGlvbnMgc3VjaCBhcyBgYGNba2V5XSArPSAxYGAsIHRoZSB2YWx1ZSB0eXBlIG5lZWQgb25seQorICAgICAgICBzdXBwb3J0IGFkZGl0aW9uIGFuZCBzdWJ0cmFjdGlvbi4gIFNvIGZyYWN0aW9ucywgZmxvYXRzLCBhbmQgZGVjaW1hbHMgd291bGQKKyAgICAgICAgd29yayBhbmQgbmVnYXRpdmUgdmFsdWVzIGFyZSBzdXBwb3J0ZWQuICBUaGUgc2FtZSBpcyBhbHNvIHRydWUgZm9yCisgICAgICAgIDptZXRoOmB1cGRhdGVgIGFuZCA6bWV0aDpgc3VidHJhY3RgIHdoaWNoIGFsbG93IG5lZ2F0aXZlIGFuZCB6ZXJvIHZhbHVlcworICAgICAgICBmb3IgYm90aCBpbnB1dHMgYW5kIG91dHB1dHMuCiAKLSAgICogVGhlIG11bHRpc2V0IG1ldGhvZHMgYXJlIGRlc2lnbmVkIG9ubHkgZm9yIHVzZSBjYXNlcyB3aXRoIHBvc2l0aXZlIHZhbHVlcy4KLSAgICAgVGhlIGlucHV0cyBtYXkgYmUgbmVnYXRpdmUgb3IgemVybywgYnV0IG9ubHkgb3V0cHV0cyB3aXRoIHBvc2l0aXZlIHZhbHVlcwotICAgICBhcmUgY3JlYXRlZC4gIFRoZXJlIGFyZSBubyB0eXBlIHJlc3RyaWN0aW9ucywgYnV0IHRoZSB2YWx1ZSB0eXBlIG5lZWRzIHRvCi0gICAgIHN1cHBvcnQgYWRkaXRpb24sIHN1YnRyYWN0aW9uLCBhbmQgY29tcGFyaXNvbi4KKyAgICAqIFRoZSBtdWx0aXNldCBtZXRob2RzIGFyZSBkZXNpZ25lZCBvbmx5IGZvciB1c2UgY2FzZXMgd2l0aCBwb3NpdGl2ZSB2YWx1ZXMuCisgICAgICAgIFRoZSBpbnB1dHMgbWF5IGJlIG5lZ2F0aXZlIG9yIHplcm8sIGJ1dCBvbmx5IG91dHB1dHMgd2l0aCBwb3NpdGl2ZSB2YWx1ZXMKKyAgICAgICAgYXJlIGNyZWF0ZWQuICBUaGVyZSBhcmUgbm8gdHlwZSByZXN0cmljdGlvbnMsIGJ1dCB0aGUgdmFsdWUgdHlwZSBuZWVkcyB0bworICAgICAgICBzdXBwb3J0IGFkZGl0aW9uLCBzdWJ0cmFjdGlvbiwgYW5kIGNvbXBhcmlzb24uCiAKLSAgICogVGhlIDptZXRoOmBlbGVtZW50c2AgbWV0aG9kIHJlcXVpcmVzIGludGVnZXIgY291bnRzLiAgSXQgaWdub3JlcyB6ZXJvIGFuZAotICAgICBuZWdhdGl2ZSBjb3VudHMuCisgICAgKiBUaGUgOm1ldGg6YGVsZW1lbnRzYCBtZXRob2QgcmVxdWlyZXMgaW50ZWdlciBjb3VudHMuICBJdCBpZ25vcmVzIHplcm8gYW5kCisgICAgICAgIG5lZ2F0aXZlIGNvdW50cy4KIAogLi4gc2VlYWxzbzo6CiAKQEAgLTIxNyw3ICszODAsNyBAQAogICAgICogVG8gZW51bWVyYXRlIGFsbCBkaXN0aW5jdCBtdWx0aXNldHMgb2YgYSBnaXZlbiBzaXplIG92ZXIgYSBnaXZlbiBzZXQgb2YKICAgICAgIGVsZW1lbnRzLCBzZWUgOmZ1bmM6YGl0ZXJ0b29scy5jb21iaW5hdGlvbnNfd2l0aF9yZXBsYWNlbWVudGAuCiAKLSAgICAgICAgICBtYXAoQ291bnRlciwgY29tYmluYXRpb25zX3dpdGhfcmVwbGFjZW1lbnQoJ0FCQycsIDIpKSAtLT4gQUEgQUIgQUMgQkIgQkMgQ0MKKyAgICAgICAgICAgIG1hcChDb3VudGVyLCBjb21iaW5hdGlvbnNfd2l0aF9yZXBsYWNlbWVudCgnQUJDJywgMikpIC0tPiBBQSBBQiBBQyBCQiBCQyBDQwogCiAKIDpjbGFzczpgZGVxdWVgIG9iamVjdHMKQEAgLTIyNSwxMDUgKzM4OCwxMDUgQEAKIAogLi4gY2xhc3M6OiBkZXF1ZShbaXRlcmFibGUsIFttYXhsZW5dXSkKIAotICAgUmV0dXJucyBhIG5ldyBkZXF1ZSBvYmplY3QgaW5pdGlhbGl6ZWQgbGVmdC10by1yaWdodCAodXNpbmcgOm1ldGg6YGFwcGVuZGApIHdpdGgKLSAgIGRhdGEgZnJvbSAqaXRlcmFibGUqLiAgSWYgKml0ZXJhYmxlKiBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgbmV3IGRlcXVlIGlzIGVtcHR5LgorICAgIFJldHVybnMgYSBuZXcgZGVxdWUgb2JqZWN0IGluaXRpYWxpemVkIGxlZnQtdG8tcmlnaHQgKHVzaW5nIDptZXRoOmBhcHBlbmRgKSB3aXRoCisgICAgZGF0YSBmcm9tICppdGVyYWJsZSouICBJZiAqaXRlcmFibGUqIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBuZXcgZGVxdWUgaXMgZW1wdHkuCiAKLSAgIERlcXVlcyBhcmUgYSBnZW5lcmFsaXphdGlvbiBvZiBzdGFja3MgYW5kIHF1ZXVlcyAodGhlIG5hbWUgaXMgcHJvbm91bmNlZCAiZGVjayIKLSAgIGFuZCBpcyBzaG9ydCBmb3IgImRvdWJsZS1lbmRlZCBxdWV1ZSIpLiAgRGVxdWVzIHN1cHBvcnQgdGhyZWFkLXNhZmUsIG1lbW9yeQotICAgZWZmaWNpZW50IGFwcGVuZHMgYW5kIHBvcHMgZnJvbSBlaXRoZXIgc2lkZSBvZiB0aGUgZGVxdWUgd2l0aCBhcHByb3hpbWF0ZWx5IHRoZQotICAgc2FtZSBPKDEpIHBlcmZvcm1hbmNlIGluIGVpdGhlciBkaXJlY3Rpb24uCisgICAgRGVxdWVzIGFyZSBhIGdlbmVyYWxpemF0aW9uIG9mIHN0YWNrcyBhbmQgcXVldWVzICh0aGUgbmFtZSBpcyBwcm9ub3VuY2VkICJkZWNrIgorICAgIGFuZCBpcyBzaG9ydCBmb3IgImRvdWJsZS1lbmRlZCBxdWV1ZSIpLiAgRGVxdWVzIHN1cHBvcnQgdGhyZWFkLXNhZmUsIG1lbW9yeQorICAgIGVmZmljaWVudCBhcHBlbmRzIGFuZCBwb3BzIGZyb20gZWl0aGVyIHNpZGUgb2YgdGhlIGRlcXVlIHdpdGggYXBwcm94aW1hdGVseSB0aGUKKyAgICBzYW1lIE8oMSkgcGVyZm9ybWFuY2UgaW4gZWl0aGVyIGRpcmVjdGlvbi4KIAotICAgVGhvdWdoIDpjbGFzczpgbGlzdGAgb2JqZWN0cyBzdXBwb3J0IHNpbWlsYXIgb3BlcmF0aW9ucywgdGhleSBhcmUgb3B0aW1pemVkIGZvcgotICAgZmFzdCBmaXhlZC1sZW5ndGggb3BlcmF0aW9ucyBhbmQgaW5jdXIgTyhuKSBtZW1vcnkgbW92ZW1lbnQgY29zdHMgZm9yCi0gICBgYHBvcCgwKWBgIGFuZCBgYGluc2VydCgwLCB2KWBgIG9wZXJhdGlvbnMgd2hpY2ggY2hhbmdlIGJvdGggdGhlIHNpemUgYW5kCi0gICBwb3NpdGlvbiBvZiB0aGUgdW5kZXJseWluZyBkYXRhIHJlcHJlc2VudGF0aW9uLgorICAgIFRob3VnaCA6Y2xhc3M6YGxpc3RgIG9iamVjdHMgc3VwcG9ydCBzaW1pbGFyIG9wZXJhdGlvbnMsIHRoZXkgYXJlIG9wdGltaXplZCBmb3IKKyAgICBmYXN0IGZpeGVkLWxlbmd0aCBvcGVyYXRpb25zIGFuZCBpbmN1ciBPKG4pIG1lbW9yeSBtb3ZlbWVudCBjb3N0cyBmb3IKKyAgICBgYHBvcCgwKWBgIGFuZCBgYGluc2VydCgwLCB2KWBgIG9wZXJhdGlvbnMgd2hpY2ggY2hhbmdlIGJvdGggdGhlIHNpemUgYW5kCisgICAgcG9zaXRpb24gb2YgdGhlIHVuZGVybHlpbmcgZGF0YSByZXByZXNlbnRhdGlvbi4KIAogCi0gICBJZiAqbWF4bGVuKiBpcyBub3Qgc3BlY2lmaWVkIG9yIGlzICpOb25lKiwgZGVxdWVzIG1heSBncm93IHRvIGFuCi0gICBhcmJpdHJhcnkgbGVuZ3RoLiAgT3RoZXJ3aXNlLCB0aGUgZGVxdWUgaXMgYm91bmRlZCB0byB0aGUgc3BlY2lmaWVkIG1heGltdW0KLSAgIGxlbmd0aC4gIE9uY2UgYSBib3VuZGVkIGxlbmd0aCBkZXF1ZSBpcyBmdWxsLCB3aGVuIG5ldyBpdGVtcyBhcmUgYWRkZWQsIGEKLSAgIGNvcnJlc3BvbmRpbmcgbnVtYmVyIG9mIGl0ZW1zIGFyZSBkaXNjYXJkZWQgZnJvbSB0aGUgb3Bwb3NpdGUgZW5kLiAgQm91bmRlZAotICAgbGVuZ3RoIGRlcXVlcyBwcm92aWRlIGZ1bmN0aW9uYWxpdHkgc2ltaWxhciB0byB0aGUgYGB0YWlsYGAgZmlsdGVyIGluCi0gICBVbml4LiBUaGV5IGFyZSBhbHNvIHVzZWZ1bCBmb3IgdHJhY2tpbmcgdHJhbnNhY3Rpb25zIGFuZCBvdGhlciBwb29scyBvZiBkYXRhCi0gICB3aGVyZSBvbmx5IHRoZSBtb3N0IHJlY2VudCBhY3Rpdml0eSBpcyBvZiBpbnRlcmVzdC4KKyAgICBJZiAqbWF4bGVuKiBpcyBub3Qgc3BlY2lmaWVkIG9yIGlzICpOb25lKiwgZGVxdWVzIG1heSBncm93IHRvIGFuCisgICAgYXJiaXRyYXJ5IGxlbmd0aC4gIE90aGVyd2lzZSwgdGhlIGRlcXVlIGlzIGJvdW5kZWQgdG8gdGhlIHNwZWNpZmllZCBtYXhpbXVtCisgICAgbGVuZ3RoLiAgT25jZSBhIGJvdW5kZWQgbGVuZ3RoIGRlcXVlIGlzIGZ1bGwsIHdoZW4gbmV3IGl0ZW1zIGFyZSBhZGRlZCwgYQorICAgIGNvcnJlc3BvbmRpbmcgbnVtYmVyIG9mIGl0ZW1zIGFyZSBkaXNjYXJkZWQgZnJvbSB0aGUgb3Bwb3NpdGUgZW5kLiAgQm91bmRlZAorICAgIGxlbmd0aCBkZXF1ZXMgcHJvdmlkZSBmdW5jdGlvbmFsaXR5IHNpbWlsYXIgdG8gdGhlIGBgdGFpbGBgIGZpbHRlciBpbgorICAgIFVuaXguIFRoZXkgYXJlIGFsc28gdXNlZnVsIGZvciB0cmFja2luZyB0cmFuc2FjdGlvbnMgYW5kIG90aGVyIHBvb2xzIG9mIGRhdGEKKyAgICB3aGVyZSBvbmx5IHRoZSBtb3N0IHJlY2VudCBhY3Rpdml0eSBpcyBvZiBpbnRlcmVzdC4KIAogCi0gICBEZXF1ZSBvYmplY3RzIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBtZXRob2RzOgorICAgIERlcXVlIG9iamVjdHMgc3VwcG9ydCB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CiAKLSAgIC4uIG1ldGhvZDo6IGFwcGVuZCh4KQorICAgIC4uIG1ldGhvZDo6IGFwcGVuZCh4KQogCi0gICAgICBBZGQgKngqIHRvIHRoZSByaWdodCBzaWRlIG9mIHRoZSBkZXF1ZS4KKyAgICAgICAgQWRkICp4KiB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZGVxdWUuCiAKIAotICAgLi4gbWV0aG9kOjogYXBwZW5kbGVmdCh4KQorICAgIC4uIG1ldGhvZDo6IGFwcGVuZGxlZnQoeCkKIAotICAgICAgQWRkICp4KiB0byB0aGUgbGVmdCBzaWRlIG9mIHRoZSBkZXF1ZS4KKyAgICAgICAgQWRkICp4KiB0byB0aGUgbGVmdCBzaWRlIG9mIHRoZSBkZXF1ZS4KIAogCi0gICAuLiBtZXRob2Q6OiBjbGVhcigpCisgICAgLi4gbWV0aG9kOjogY2xlYXIoKQogCi0gICAgICBSZW1vdmUgYWxsIGVsZW1lbnRzIGZyb20gdGhlIGRlcXVlIGxlYXZpbmcgaXQgd2l0aCBsZW5ndGggMC4KKyAgICAgICAgUmVtb3ZlIGFsbCBlbGVtZW50cyBmcm9tIHRoZSBkZXF1ZSBsZWF2aW5nIGl0IHdpdGggbGVuZ3RoIDAuCiAKIAotICAgLi4gbWV0aG9kOjogY291bnQoeCkKKyAgICAuLiBtZXRob2Q6OiBjb3VudCh4KQogCi0gICAgICBDb3VudCB0aGUgbnVtYmVyIG9mIGRlcXVlIGVsZW1lbnRzIGVxdWFsIHRvICp4Ki4KKyAgICAgICAgQ291bnQgdGhlIG51bWJlciBvZiBkZXF1ZSBlbGVtZW50cyBlcXVhbCB0byAqeCouCiAKLSAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgorICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogCi0gICAuLiBtZXRob2Q6OiBleHRlbmQoaXRlcmFibGUpCisgICAgLi4gbWV0aG9kOjogZXh0ZW5kKGl0ZXJhYmxlKQogCi0gICAgICBFeHRlbmQgdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGRlcXVlIGJ5IGFwcGVuZGluZyBlbGVtZW50cyBmcm9tIHRoZSBpdGVyYWJsZQotICAgICAgYXJndW1lbnQuCisgICAgICAgIEV4dGVuZCB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgZGVxdWUgYnkgYXBwZW5kaW5nIGVsZW1lbnRzIGZyb20gdGhlIGl0ZXJhYmxlCisgICAgICAgIGFyZ3VtZW50LgogCiAKLSAgIC4uIG1ldGhvZDo6IGV4dGVuZGxlZnQoaXRlcmFibGUpCisgICAgLi4gbWV0aG9kOjogZXh0ZW5kbGVmdChpdGVyYWJsZSkKIAotICAgICAgRXh0ZW5kIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGRlcXVlIGJ5IGFwcGVuZGluZyBlbGVtZW50cyBmcm9tICppdGVyYWJsZSouCi0gICAgICBOb3RlLCB0aGUgc2VyaWVzIG9mIGxlZnQgYXBwZW5kcyByZXN1bHRzIGluIHJldmVyc2luZyB0aGUgb3JkZXIgb2YKLSAgICAgIGVsZW1lbnRzIGluIHRoZSBpdGVyYWJsZSBhcmd1bWVudC4KKyAgICAgICAgRXh0ZW5kIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGRlcXVlIGJ5IGFwcGVuZGluZyBlbGVtZW50cyBmcm9tICppdGVyYWJsZSouCisgICAgICAgIE5vdGUsIHRoZSBzZXJpZXMgb2YgbGVmdCBhcHBlbmRzIHJlc3VsdHMgaW4gcmV2ZXJzaW5nIHRoZSBvcmRlciBvZgorICAgICAgICBlbGVtZW50cyBpbiB0aGUgaXRlcmFibGUgYXJndW1lbnQuCiAKIAotICAgLi4gbWV0aG9kOjogcG9wKCkKKyAgICAuLiBtZXRob2Q6OiBwb3AoKQogCi0gICAgICBSZW1vdmUgYW5kIHJldHVybiBhbiBlbGVtZW50IGZyb20gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGRlcXVlLiBJZiBubwotICAgICAgZWxlbWVudHMgYXJlIHByZXNlbnQsIHJhaXNlcyBhbiA6ZXhjOmBJbmRleEVycm9yYC4KKyAgICAgICAgUmVtb3ZlIGFuZCByZXR1cm4gYW4gZWxlbWVudCBmcm9tIHRoZSByaWdodCBzaWRlIG9mIHRoZSBkZXF1ZS4gSWYgbm8KKyAgICAgICAgZWxlbWVudHMgYXJlIHByZXNlbnQsIHJhaXNlcyBhbiA6ZXhjOmBJbmRleEVycm9yYC4KIAogCi0gICAuLiBtZXRob2Q6OiBwb3BsZWZ0KCkKKyAgICAuLiBtZXRob2Q6OiBwb3BsZWZ0KCkKIAotICAgICAgUmVtb3ZlIGFuZCByZXR1cm4gYW4gZWxlbWVudCBmcm9tIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGRlcXVlLiBJZiBubwotICAgICAgZWxlbWVudHMgYXJlIHByZXNlbnQsIHJhaXNlcyBhbiA6ZXhjOmBJbmRleEVycm9yYC4KKyAgICAgICAgUmVtb3ZlIGFuZCByZXR1cm4gYW4gZWxlbWVudCBmcm9tIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIGRlcXVlLiBJZiBubworICAgICAgICBlbGVtZW50cyBhcmUgcHJlc2VudCwgcmFpc2VzIGFuIDpleGM6YEluZGV4RXJyb3JgLgogCiAKLSAgIC4uIG1ldGhvZDo6IHJlbW92ZSh2YWx1ZSkKKyAgICAuLiBtZXRob2Q6OiByZW1vdmUodmFsdWUpCiAKLSAgICAgIFJlbW92ZWQgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgKnZhbHVlKi4gIElmIG5vdCBmb3VuZCwgcmFpc2VzIGEKLSAgICAgIDpleGM6YFZhbHVlRXJyb3JgLgorICAgICAgICBSZW1vdmVkIHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mICp2YWx1ZSouICBJZiBub3QgZm91bmQsIHJhaXNlcyBhCisgICAgICAgIDpleGM6YFZhbHVlRXJyb3JgLgogCiAKLSAgIC4uIG1ldGhvZDo6IHJldmVyc2UoKQorICAgIC4uIG1ldGhvZDo6IHJldmVyc2UoKQogCi0gICAgICBSZXZlcnNlIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVxdWUgaW4tcGxhY2UgYW5kIHRoZW4gcmV0dXJuIGBgTm9uZWBgLgorICAgICAgICBSZXZlcnNlIHRoZSBlbGVtZW50cyBvZiB0aGUgZGVxdWUgaW4tcGxhY2UgYW5kIHRoZW4gcmV0dXJuIGBgTm9uZWBgLgogCi0gICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKKyAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKIAotICAgLi4gbWV0aG9kOjogcm90YXRlKG4pCisgICAgLi4gbWV0aG9kOjogcm90YXRlKG4pCiAKLSAgICAgIFJvdGF0ZSB0aGUgZGVxdWUgKm4qIHN0ZXBzIHRvIHRoZSByaWdodC4gIElmICpuKiBpcyBuZWdhdGl2ZSwgcm90YXRlIHRvCi0gICAgICB0aGUgbGVmdC4gIFJvdGF0aW5nIG9uZSBzdGVwIHRvIHRoZSByaWdodCBpcyBlcXVpdmFsZW50IHRvOgotICAgICAgYGBkLmFwcGVuZGxlZnQoZC5wb3AoKSlgYC4KKyAgICAgICAgUm90YXRlIHRoZSBkZXF1ZSAqbiogc3RlcHMgdG8gdGhlIHJpZ2h0LiAgSWYgKm4qIGlzIG5lZ2F0aXZlLCByb3RhdGUgdG8KKyAgICAgICAgdGhlIGxlZnQuICBSb3RhdGluZyBvbmUgc3RlcCB0byB0aGUgcmlnaHQgaXMgZXF1aXZhbGVudCB0bzoKKyAgICAgICAgYGBkLmFwcGVuZGxlZnQoZC5wb3AoKSlgYC4KIAogCi0gICBEZXF1ZSBvYmplY3RzIGFsc28gcHJvdmlkZSBvbmUgcmVhZC1vbmx5IGF0dHJpYnV0ZToKKyAgICBEZXF1ZSBvYmplY3RzIGFsc28gcHJvdmlkZSBvbmUgcmVhZC1vbmx5IGF0dHJpYnV0ZToKIAotICAgLi4gYXR0cmlidXRlOjogbWF4bGVuCisgICAgLi4gYXR0cmlidXRlOjogbWF4bGVuCiAKLSAgICAgIE1heGltdW0gc2l6ZSBvZiBhIGRlcXVlIG9yICpOb25lKiBpZiB1bmJvdW5kZWQuCisgICAgICAgIE1heGltdW0gc2l6ZSBvZiBhIGRlcXVlIG9yICpOb25lKiBpZiB1bmJvdW5kZWQuCiAKLSAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMQorICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKIAogCiBJbiBhZGRpdGlvbiB0byB0aGUgYWJvdmUsIGRlcXVlcyBzdXBwb3J0IGl0ZXJhdGlvbiwgcGlja2xpbmcsIGBgbGVuKGQpYGAsCkBAIC0zMzYsNTYgKzQ5OSw1NiBAQAogCiAuLiBkb2N0ZXN0OjoKIAotICAgPj4+IGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCi0gICA+Pj4gZCA9IGRlcXVlKCdnaGknKSAgICAgICAgICAgICAgICAgIyBtYWtlIGEgbmV3IGRlcXVlIHdpdGggdGhyZWUgaXRlbXMKLSAgID4+PiBmb3IgZWxlbSBpbiBkOiAgICAgICAgICAgICAgICAgICAjIGl0ZXJhdGUgb3ZlciB0aGUgZGVxdWUncyBlbGVtZW50cwotICAgLi4uICAgICBwcmludChlbGVtLnVwcGVyKCkpCi0gICBHCi0gICBICi0gICBJCisgICAgPj4+IGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCisgICAgPj4+IGQgPSBkZXF1ZSgnZ2hpJykgICAgICAgICAgICAgICAgICMgbWFrZSBhIG5ldyBkZXF1ZSB3aXRoIHRocmVlIGl0ZW1zCisgICAgPj4+IGZvciBlbGVtIGluIGQ6ICAgICAgICAgICAgICAgICAgICMgaXRlcmF0ZSBvdmVyIHRoZSBkZXF1ZSdzIGVsZW1lbnRzCisgICAgLi4uICAgICBwcmludChlbGVtLnVwcGVyKCkpCisgICAgRworICAgIEgKKyAgICBJCiAKLSAgID4+PiBkLmFwcGVuZCgnaicpICAgICAgICAgICAgICAgICAgICAjIGFkZCBhIG5ldyBlbnRyeSB0byB0aGUgcmlnaHQgc2lkZQotICAgPj4+IGQuYXBwZW5kbGVmdCgnZicpICAgICAgICAgICAgICAgICMgYWRkIGEgbmV3IGVudHJ5IHRvIHRoZSBsZWZ0IHNpZGUKLSAgID4+PiBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNob3cgdGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXF1ZQotICAgZGVxdWUoWydmJywgJ2cnLCAnaCcsICdpJywgJ2onXSkKKyAgICA+Pj4gZC5hcHBlbmQoJ2onKSAgICAgICAgICAgICAgICAgICAgIyBhZGQgYSBuZXcgZW50cnkgdG8gdGhlIHJpZ2h0IHNpZGUKKyAgICA+Pj4gZC5hcHBlbmRsZWZ0KCdmJykgICAgICAgICAgICAgICAgIyBhZGQgYSBuZXcgZW50cnkgdG8gdGhlIGxlZnQgc2lkZQorICAgID4+PiBkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNob3cgdGhlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXF1ZQorICAgIGRlcXVlKFsnZicsICdnJywgJ2gnLCAnaScsICdqJ10pCiAKLSAgID4+PiBkLnBvcCgpICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJldHVybiBhbmQgcmVtb3ZlIHRoZSByaWdodG1vc3QgaXRlbQotICAgJ2onCi0gICA+Pj4gZC5wb3BsZWZ0KCkgICAgICAgICAgICAgICAgICAgICAgIyByZXR1cm4gYW5kIHJlbW92ZSB0aGUgbGVmdG1vc3QgaXRlbQotICAgJ2YnCi0gICA+Pj4gbGlzdChkKSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBsaXN0IHRoZSBjb250ZW50cyBvZiB0aGUgZGVxdWUKLSAgIFsnZycsICdoJywgJ2knXQotICAgPj4+IGRbMF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGVlayBhdCBsZWZ0bW9zdCBpdGVtCi0gICAnZycKLSAgID4+PiBkWy0xXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHBlZWsgYXQgcmlnaHRtb3N0IGl0ZW0KLSAgICdpJworICAgID4+PiBkLnBvcCgpICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJldHVybiBhbmQgcmVtb3ZlIHRoZSByaWdodG1vc3QgaXRlbQorICAgICdqJworICAgID4+PiBkLnBvcGxlZnQoKSAgICAgICAgICAgICAgICAgICAgICAjIHJldHVybiBhbmQgcmVtb3ZlIHRoZSBsZWZ0bW9zdCBpdGVtCisgICAgJ2YnCisgICAgPj4+IGxpc3QoZCkgICAgICAgICAgICAgICAgICAgICAgICAgICMgbGlzdCB0aGUgY29udGVudHMgb2YgdGhlIGRlcXVlCisgICAgWydnJywgJ2gnLCAnaSddCisgICAgPj4+IGRbMF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGVlayBhdCBsZWZ0bW9zdCBpdGVtCisgICAgJ2cnCisgICAgPj4+IGRbLTFdICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGVlayBhdCByaWdodG1vc3QgaXRlbQorICAgICdpJwogCi0gICA+Pj4gbGlzdChyZXZlcnNlZChkKSkgICAgICAgICAgICAgICAgIyBsaXN0IHRoZSBjb250ZW50cyBvZiBhIGRlcXVlIGluIHJldmVyc2UKLSAgIFsnaScsICdoJywgJ2cnXQotICAgPj4+ICdoJyBpbiBkICAgICAgICAgICAgICAgICAgICAgICAgICMgc2VhcmNoIHRoZSBkZXF1ZQotICAgVHJ1ZQotICAgPj4+IGQuZXh0ZW5kKCdqa2wnKSAgICAgICAgICAgICAgICAgICMgYWRkIG11bHRpcGxlIGVsZW1lbnRzIGF0IG9uY2UKLSAgID4+PiBkCi0gICBkZXF1ZShbJ2cnLCAnaCcsICdpJywgJ2onLCAnaycsICdsJ10pCi0gICA+Pj4gZC5yb3RhdGUoMSkgICAgICAgICAgICAgICAgICAgICAgIyByaWdodCByb3RhdGlvbgotICAgPj4+IGQKLSAgIGRlcXVlKFsnbCcsICdnJywgJ2gnLCAnaScsICdqJywgJ2snXSkKLSAgID4+PiBkLnJvdGF0ZSgtMSkgICAgICAgICAgICAgICAgICAgICAjIGxlZnQgcm90YXRpb24KLSAgID4+PiBkCi0gICBkZXF1ZShbJ2cnLCAnaCcsICdpJywgJ2onLCAnaycsICdsJ10pCisgICAgPj4+IGxpc3QocmV2ZXJzZWQoZCkpICAgICAgICAgICAgICAgICMgbGlzdCB0aGUgY29udGVudHMgb2YgYSBkZXF1ZSBpbiByZXZlcnNlCisgICAgWydpJywgJ2gnLCAnZyddCisgICAgPj4+ICdoJyBpbiBkICAgICAgICAgICAgICAgICAgICAgICAgICMgc2VhcmNoIHRoZSBkZXF1ZQorICAgIFRydWUKKyAgICA+Pj4gZC5leHRlbmQoJ2prbCcpICAgICAgICAgICAgICAgICAgIyBhZGQgbXVsdGlwbGUgZWxlbWVudHMgYXQgb25jZQorICAgID4+PiBkCisgICAgZGVxdWUoWydnJywgJ2gnLCAnaScsICdqJywgJ2snLCAnbCddKQorICAgID4+PiBkLnJvdGF0ZSgxKSAgICAgICAgICAgICAgICAgICAgICAjIHJpZ2h0IHJvdGF0aW9uCisgICAgPj4+IGQKKyAgICBkZXF1ZShbJ2wnLCAnZycsICdoJywgJ2knLCAnaicsICdrJ10pCisgICAgPj4+IGQucm90YXRlKC0xKSAgICAgICAgICAgICAgICAgICAgICMgbGVmdCByb3RhdGlvbgorICAgID4+PiBkCisgICAgZGVxdWUoWydnJywgJ2gnLCAnaScsICdqJywgJ2snLCAnbCddKQogCi0gICA+Pj4gZGVxdWUocmV2ZXJzZWQoZCkpICAgICAgICAgICAgICAgIyBtYWtlIGEgbmV3IGRlcXVlIGluIHJldmVyc2Ugb3JkZXIKLSAgIGRlcXVlKFsnbCcsICdrJywgJ2onLCAnaScsICdoJywgJ2cnXSkKLSAgID4+PiBkLmNsZWFyKCkgICAgICAgICAgICAgICAgICAgICAgICAjIGVtcHR5IHRoZSBkZXF1ZQotICAgPj4+IGQucG9wKCkgICAgICAgICAgICAgICAgICAgICAgICAgICMgY2Fubm90IHBvcCBmcm9tIGFuIGVtcHR5IGRlcXVlCi0gICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Ci0gICAgIEZpbGUgIjxweXNoZWxsIzY+IiwgbGluZSAxLCBpbiAtdG9wbGV2ZWwtCi0gICAgICAgZC5wb3AoKQotICAgSW5kZXhFcnJvcjogcG9wIGZyb20gYW4gZW1wdHkgZGVxdWUKKyAgICA+Pj4gZGVxdWUocmV2ZXJzZWQoZCkpICAgICAgICAgICAgICAgIyBtYWtlIGEgbmV3IGRlcXVlIGluIHJldmVyc2Ugb3JkZXIKKyAgICBkZXF1ZShbJ2wnLCAnaycsICdqJywgJ2knLCAnaCcsICdnJ10pCisgICAgPj4+IGQuY2xlYXIoKSAgICAgICAgICAgICAgICAgICAgICAgICMgZW1wdHkgdGhlIGRlcXVlCisgICAgPj4+IGQucG9wKCkgICAgICAgICAgICAgICAgICAgICAgICAgICMgY2Fubm90IHBvcCBmcm9tIGFuIGVtcHR5IGRlcXVlCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICBGaWxlICI8cHlzaGVsbCM2PiIsIGxpbmUgMSwgaW4gLXRvcGxldmVsLQorICAgICAgICAgICAgZC5wb3AoKQorICAgIEluZGV4RXJyb3I6IHBvcCBmcm9tIGFuIGVtcHR5IGRlcXVlCiAKLSAgID4+PiBkLmV4dGVuZGxlZnQoJ2FiYycpICAgICAgICAgICAgICAjIGV4dGVuZGxlZnQoKSByZXZlcnNlcyB0aGUgaW5wdXQgb3JkZXIKLSAgID4+PiBkCi0gICBkZXF1ZShbJ2MnLCAnYicsICdhJ10pCisgICAgPj4+IGQuZXh0ZW5kbGVmdCgnYWJjJykgICAgICAgICAgICAgICMgZXh0ZW5kbGVmdCgpIHJldmVyc2VzIHRoZSBpbnB1dCBvcmRlcgorICAgID4+PiBkCisgICAgZGVxdWUoWydjJywgJ2InLCAnYSddKQogCiAKIDpjbGFzczpgZGVxdWVgIFJlY2lwZXMKQEAgLTM5Niw5ICs1NTksMTAgQEAKIEJvdW5kZWQgbGVuZ3RoIGRlcXVlcyBwcm92aWRlIGZ1bmN0aW9uYWxpdHkgc2ltaWxhciB0byB0aGUgYGB0YWlsYGAgZmlsdGVyCiBpbiBVbml4OjoKIAotICAgZGVmIHRhaWwoZmlsZW5hbWUsIG49MTApOgotICAgICAgICdSZXR1cm4gdGhlIGxhc3QgbiBsaW5lcyBvZiBhIGZpbGUnCi0gICAgICAgcmV0dXJuIGRlcXVlKG9wZW4oZmlsZW5hbWUpLCBuKQorICAgIGRlZiB0YWlsKGZpbGVuYW1lLCBuPTEwKToKKyAgICAgICAgJ1JldHVybiB0aGUgbGFzdCBuIGxpbmVzIG9mIGEgZmlsZScKKyAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgcmV0dXJuIGRlcXVlKGYsIG4pCiAKIEFub3RoZXIgYXBwcm9hY2ggdG8gdXNpbmcgZGVxdWVzIGlzIHRvIG1haW50YWluIGEgc2VxdWVuY2Ugb2YgcmVjZW50bHkKIGFkZGVkIGVsZW1lbnRzIGJ5IGFwcGVuZGluZyB0byB0aGUgcmlnaHQgYW5kIHBvcHBpbmcgdG8gdGhlIGxlZnQ6OgpAQCAtNDE5LDEwICs1ODMsMTAgQEAKIGRlbGV0aW9uLiAgRm9yIGV4YW1wbGUsIGEgcHVyZSBQeXRob24gaW1wbGVtZW50YXRpb24gb2YgYGBkZWwgZFtuXWBgIHJlbGllcyBvbgogdGhlIDptZXRoOmByb3RhdGVgIG1ldGhvZCB0byBwb3NpdGlvbiBlbGVtZW50cyB0byBiZSBwb3BwZWQ6OgogCi0gICBkZWYgZGVsZXRlX250aChkLCBuKToKLSAgICAgICBkLnJvdGF0ZSgtbikKLSAgICAgICBkLnBvcGxlZnQoKQotICAgICAgIGQucm90YXRlKG4pCisgICAgZGVmIGRlbGV0ZV9udGgoZCwgbik6CisgICAgICAgIGQucm90YXRlKC1uKQorICAgICAgICBkLnBvcGxlZnQoKQorICAgICAgICBkLnJvdGF0ZShuKQogCiBUbyBpbXBsZW1lbnQgOmNsYXNzOmBkZXF1ZWAgc2xpY2luZywgdXNlIGEgc2ltaWxhciBhcHByb2FjaCBhcHBseWluZwogOm1ldGg6YHJvdGF0ZWAgdG8gYnJpbmcgYSB0YXJnZXQgZWxlbWVudCB0byB0aGUgbGVmdCBzaWRlIG9mIHRoZSBkZXF1ZS4gUmVtb3ZlCkBAIC00MzgsNTAgKzYwMiw1MCBAQAogCiAuLiBjbGFzczo6IGRlZmF1bHRkaWN0KFtkZWZhdWx0X2ZhY3RvcnlbLCAuLi5dXSkKIAotICAgUmV0dXJucyBhIG5ldyBkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0LiAgOmNsYXNzOmBkZWZhdWx0ZGljdGAgaXMgYSBzdWJjbGFzcyBvZiB0aGUKLSAgIGJ1aWx0LWluIDpjbGFzczpgZGljdGAgY2xhc3MuICBJdCBvdmVycmlkZXMgb25lIG1ldGhvZCBhbmQgYWRkcyBvbmUgd3JpdGFibGUKLSAgIGluc3RhbmNlIHZhcmlhYmxlLiAgVGhlIHJlbWFpbmluZyBmdW5jdGlvbmFsaXR5IGlzIHRoZSBzYW1lIGFzIGZvciB0aGUKLSAgIDpjbGFzczpgZGljdGAgY2xhc3MgYW5kIGlzIG5vdCBkb2N1bWVudGVkIGhlcmUuCisgICAgUmV0dXJucyBhIG5ldyBkaWN0aW9uYXJ5LWxpa2Ugb2JqZWN0LiAgOmNsYXNzOmBkZWZhdWx0ZGljdGAgaXMgYSBzdWJjbGFzcyBvZiB0aGUKKyAgICBidWlsdC1pbiA6Y2xhc3M6YGRpY3RgIGNsYXNzLiAgSXQgb3ZlcnJpZGVzIG9uZSBtZXRob2QgYW5kIGFkZHMgb25lIHdyaXRhYmxlCisgICAgaW5zdGFuY2UgdmFyaWFibGUuICBUaGUgcmVtYWluaW5nIGZ1bmN0aW9uYWxpdHkgaXMgdGhlIHNhbWUgYXMgZm9yIHRoZQorICAgIDpjbGFzczpgZGljdGAgY2xhc3MgYW5kIGlzIG5vdCBkb2N1bWVudGVkIGhlcmUuCiAKLSAgIFRoZSBmaXJzdCBhcmd1bWVudCBwcm92aWRlcyB0aGUgaW5pdGlhbCB2YWx1ZSBmb3IgdGhlIDphdHRyOmBkZWZhdWx0X2ZhY3RvcnlgCi0gICBhdHRyaWJ1dGU7IGl0IGRlZmF1bHRzIHRvIGBgTm9uZWBgLiBBbGwgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgdHJlYXRlZCB0aGUgc2FtZQotICAgYXMgaWYgdGhleSB3ZXJlIHBhc3NlZCB0byB0aGUgOmNsYXNzOmBkaWN0YCBjb25zdHJ1Y3RvciwgaW5jbHVkaW5nIGtleXdvcmQKLSAgIGFyZ3VtZW50cy4KKyAgICBUaGUgZmlyc3QgYXJndW1lbnQgcHJvdmlkZXMgdGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSA6YXR0cjpgZGVmYXVsdF9mYWN0b3J5YAorICAgIGF0dHJpYnV0ZTsgaXQgZGVmYXVsdHMgdG8gYGBOb25lYGAuIEFsbCByZW1haW5pbmcgYXJndW1lbnRzIGFyZSB0cmVhdGVkIHRoZSBzYW1lCisgICAgYXMgaWYgdGhleSB3ZXJlIHBhc3NlZCB0byB0aGUgOmNsYXNzOmBkaWN0YCBjb25zdHJ1Y3RvciwgaW5jbHVkaW5nIGtleXdvcmQKKyAgICBhcmd1bWVudHMuCiAKIAotICAgOmNsYXNzOmBkZWZhdWx0ZGljdGAgb2JqZWN0cyBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgbWV0aG9kIGluIGFkZGl0aW9uIHRvIHRoZQotICAgc3RhbmRhcmQgOmNsYXNzOmBkaWN0YCBvcGVyYXRpb25zOgorICAgIDpjbGFzczpgZGVmYXVsdGRpY3RgIG9iamVjdHMgc3VwcG9ydCB0aGUgZm9sbG93aW5nIG1ldGhvZCBpbiBhZGRpdGlvbiB0byB0aGUKKyAgICBzdGFuZGFyZCA6Y2xhc3M6YGRpY3RgIG9wZXJhdGlvbnM6CiAKLSAgIC4uIG1ldGhvZDo6IF9fbWlzc2luZ19fKGtleSkKKyAgICAuLiBtZXRob2Q6OiBfX21pc3NpbmdfXyhrZXkpCiAKLSAgICAgIElmIHRoZSA6YXR0cjpgZGVmYXVsdF9mYWN0b3J5YCBhdHRyaWJ1dGUgaXMgYGBOb25lYGAsIHRoaXMgcmFpc2VzIGEKLSAgICAgIDpleGM6YEtleUVycm9yYCBleGNlcHRpb24gd2l0aCB0aGUgKmtleSogYXMgYXJndW1lbnQuCisgICAgICAgIElmIHRoZSA6YXR0cjpgZGVmYXVsdF9mYWN0b3J5YCBhdHRyaWJ1dGUgaXMgYGBOb25lYGAsIHRoaXMgcmFpc2VzIGEKKyAgICAgICAgOmV4YzpgS2V5RXJyb3JgIGV4Y2VwdGlvbiB3aXRoIHRoZSAqa2V5KiBhcyBhcmd1bWVudC4KIAotICAgICAgSWYgOmF0dHI6YGRlZmF1bHRfZmFjdG9yeWAgaXMgbm90IGBgTm9uZWBgLCBpdCBpcyBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMKLSAgICAgIHRvIHByb3ZpZGUgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgZ2l2ZW4gKmtleSosIHRoaXMgdmFsdWUgaXMgaW5zZXJ0ZWQgaW4KLSAgICAgIHRoZSBkaWN0aW9uYXJ5IGZvciB0aGUgKmtleSosIGFuZCByZXR1cm5lZC4KKyAgICAgICAgSWYgOmF0dHI6YGRlZmF1bHRfZmFjdG9yeWAgaXMgbm90IGBgTm9uZWBgLCBpdCBpcyBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMKKyAgICAgICAgdG8gcHJvdmlkZSBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBnaXZlbiAqa2V5KiwgdGhpcyB2YWx1ZSBpcyBpbnNlcnRlZCBpbgorICAgICAgICB0aGUgZGljdGlvbmFyeSBmb3IgdGhlICprZXkqLCBhbmQgcmV0dXJuZWQuCiAKLSAgICAgIElmIGNhbGxpbmcgOmF0dHI6YGRlZmF1bHRfZmFjdG9yeWAgcmFpc2VzIGFuIGV4Y2VwdGlvbiB0aGlzIGV4Y2VwdGlvbiBpcwotICAgICAgcHJvcGFnYXRlZCB1bmNoYW5nZWQuCisgICAgICAgIElmIGNhbGxpbmcgOmF0dHI6YGRlZmF1bHRfZmFjdG9yeWAgcmFpc2VzIGFuIGV4Y2VwdGlvbiB0aGlzIGV4Y2VwdGlvbiBpcworICAgICAgICBwcm9wYWdhdGVkIHVuY2hhbmdlZC4KIAotICAgICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5IHRoZSA6bWV0aDpgX19nZXRpdGVtX19gIG1ldGhvZCBvZiB0aGUKLSAgICAgIDpjbGFzczpgZGljdGAgY2xhc3Mgd2hlbiB0aGUgcmVxdWVzdGVkIGtleSBpcyBub3QgZm91bmQ7IHdoYXRldmVyIGl0Ci0gICAgICByZXR1cm5zIG9yIHJhaXNlcyBpcyB0aGVuIHJldHVybmVkIG9yIHJhaXNlZCBieSA6bWV0aDpgX19nZXRpdGVtX19gLgorICAgICAgICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhlIDptZXRoOmBfX2dldGl0ZW1fX2AgbWV0aG9kIG9mIHRoZQorICAgICAgICA6Y2xhc3M6YGRpY3RgIGNsYXNzIHdoZW4gdGhlIHJlcXVlc3RlZCBrZXkgaXMgbm90IGZvdW5kOyB3aGF0ZXZlciBpdAorICAgICAgICByZXR1cm5zIG9yIHJhaXNlcyBpcyB0aGVuIHJldHVybmVkIG9yIHJhaXNlZCBieSA6bWV0aDpgX19nZXRpdGVtX19gLgogCi0gICAgICBOb3RlIHRoYXQgOm1ldGg6YF9fbWlzc2luZ19fYCBpcyAqbm90KiBjYWxsZWQgZm9yIGFueSBvcGVyYXRpb25zIGJlc2lkZXMKLSAgICAgIDptZXRoOmBfX2dldGl0ZW1fX2AuIFRoaXMgbWVhbnMgdGhhdCA6bWV0aDpgZ2V0YCB3aWxsLCBsaWtlIG5vcm1hbAotICAgICAgZGljdGlvbmFyaWVzLCByZXR1cm4gYGBOb25lYGAgYXMgYSBkZWZhdWx0IHJhdGhlciB0aGFuIHVzaW5nCi0gICAgICA6YXR0cjpgZGVmYXVsdF9mYWN0b3J5YC4KKyAgICAgICAgTm90ZSB0aGF0IDptZXRoOmBfX21pc3NpbmdfX2AgaXMgKm5vdCogY2FsbGVkIGZvciBhbnkgb3BlcmF0aW9ucyBiZXNpZGVzCisgICAgICAgIDptZXRoOmBfX2dldGl0ZW1fX2AuIFRoaXMgbWVhbnMgdGhhdCA6bWV0aDpgZ2V0YCB3aWxsLCBsaWtlIG5vcm1hbAorICAgICAgICBkaWN0aW9uYXJpZXMsIHJldHVybiBgYE5vbmVgYCBhcyBhIGRlZmF1bHQgcmF0aGVyIHRoYW4gdXNpbmcKKyAgICAgICAgOmF0dHI6YGRlZmF1bHRfZmFjdG9yeWAuCiAKIAotICAgOmNsYXNzOmBkZWZhdWx0ZGljdGAgb2JqZWN0cyBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgaW5zdGFuY2UgdmFyaWFibGU6CisgICAgOmNsYXNzOmBkZWZhdWx0ZGljdGAgb2JqZWN0cyBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgaW5zdGFuY2UgdmFyaWFibGU6CiAKIAotICAgLi4gYXR0cmlidXRlOjogZGVmYXVsdF9mYWN0b3J5CisgICAgLi4gYXR0cmlidXRlOjogZGVmYXVsdF9mYWN0b3J5CiAKLSAgICAgIFRoaXMgYXR0cmlidXRlIGlzIHVzZWQgYnkgdGhlIDptZXRoOmBfX21pc3NpbmdfX2AgbWV0aG9kOyBpdCBpcwotICAgICAgaW5pdGlhbGl6ZWQgZnJvbSB0aGUgZmlyc3QgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9yLCBpZiBwcmVzZW50LCBvciB0bwotICAgICAgYGBOb25lYGAsIGlmIGFic2VudC4KKyAgICAgICAgVGhpcyBhdHRyaWJ1dGUgaXMgdXNlZCBieSB0aGUgOm1ldGg6YF9fbWlzc2luZ19fYCBtZXRob2Q7IGl0IGlzCisgICAgICAgIGluaXRpYWxpemVkIGZyb20gdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvciwgaWYgcHJlc2VudCwgb3IgdG8KKyAgICAgICAgYGBOb25lYGAsIGlmIGFic2VudC4KIAogCiA6Y2xhc3M6YGRlZmF1bHRkaWN0YCBFeGFtcGxlcwpAQCAtNDkwLDEzICs2NTQsMTMgQEAKIFVzaW5nIDpjbGFzczpgbGlzdGAgYXMgdGhlIDphdHRyOmBkZWZhdWx0X2ZhY3RvcnlgLCBpdCBpcyBlYXN5IHRvIGdyb3VwIGEKIHNlcXVlbmNlIG9mIGtleS12YWx1ZSBwYWlycyBpbnRvIGEgZGljdGlvbmFyeSBvZiBsaXN0czoKIAotICAgPj4+IHMgPSBbKCd5ZWxsb3cnLCAxKSwgKCdibHVlJywgMiksICgneWVsbG93JywgMyksICgnYmx1ZScsIDQpLCAoJ3JlZCcsIDEpXQotICAgPj4+IGQgPSBkZWZhdWx0ZGljdChsaXN0KQotICAgPj4+IGZvciBrLCB2IGluIHM6Ci0gICAuLi4gICAgIGRba10uYXBwZW5kKHYpCi0gICAuLi4KLSAgID4+PiBsaXN0KGQuaXRlbXMoKSkKLSAgIFsoJ2JsdWUnLCBbMiwgNF0pLCAoJ3JlZCcsIFsxXSksICgneWVsbG93JywgWzEsIDNdKV0KKyAgICA+Pj4gcyA9IFsoJ3llbGxvdycsIDEpLCAoJ2JsdWUnLCAyKSwgKCd5ZWxsb3cnLCAzKSwgKCdibHVlJywgNCksICgncmVkJywgMSldCisgICAgPj4+IGQgPSBkZWZhdWx0ZGljdChsaXN0KQorICAgID4+PiBmb3IgaywgdiBpbiBzOgorICAgIC4uLiAgICAgZFtrXS5hcHBlbmQodikKKyAgICAuLi4KKyAgICA+Pj4gbGlzdChkLml0ZW1zKCkpCisgICAgWygnYmx1ZScsIFsyLCA0XSksICgncmVkJywgWzFdKSwgKCd5ZWxsb3cnLCBbMSwgM10pXQogCiBXaGVuIGVhY2gga2V5IGlzIGVuY291bnRlcmVkIGZvciB0aGUgZmlyc3QgdGltZSwgaXQgaXMgbm90IGFscmVhZHkgaW4gdGhlCiBtYXBwaW5nOyBzbyBhbiBlbnRyeSBpcyBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgdXNpbmcgdGhlIDphdHRyOmBkZWZhdWx0X2ZhY3RvcnlgCkBAIC01MDYsMjQgKzY3MCwyNCBAQAogOm1ldGg6YGxpc3QuYXBwZW5kYCBvcGVyYXRpb24gYWRkcyBhbm90aGVyIHZhbHVlIHRvIHRoZSBsaXN0LiBUaGlzIHRlY2huaXF1ZSBpcwogc2ltcGxlciBhbmQgZmFzdGVyIHRoYW4gYW4gZXF1aXZhbGVudCB0ZWNobmlxdWUgdXNpbmcgOm1ldGg6YGRpY3Quc2V0ZGVmYXVsdGA6CiAKLSAgID4+PiBkID0ge30KLSAgID4+PiBmb3IgaywgdiBpbiBzOgotICAgLi4uICAgICBkLnNldGRlZmF1bHQoaywgW10pLmFwcGVuZCh2KQotICAgLi4uCi0gICA+Pj4gbGlzdChkLml0ZW1zKCkpCi0gICBbKCdibHVlJywgWzIsIDRdKSwgKCdyZWQnLCBbMV0pLCAoJ3llbGxvdycsIFsxLCAzXSldCisgICAgPj4+IGQgPSB7fQorICAgID4+PiBmb3IgaywgdiBpbiBzOgorICAgIC4uLiAgICAgZC5zZXRkZWZhdWx0KGssIFtdKS5hcHBlbmQodikKKyAgICAuLi4KKyAgICA+Pj4gbGlzdChkLml0ZW1zKCkpCisgICAgWygnYmx1ZScsIFsyLCA0XSksICgncmVkJywgWzFdKSwgKCd5ZWxsb3cnLCBbMSwgM10pXQogCiBTZXR0aW5nIHRoZSA6YXR0cjpgZGVmYXVsdF9mYWN0b3J5YCB0byA6Y2xhc3M6YGludGAgbWFrZXMgdGhlCiA6Y2xhc3M6YGRlZmF1bHRkaWN0YCB1c2VmdWwgZm9yIGNvdW50aW5nIChsaWtlIGEgYmFnIG9yIG11bHRpc2V0IGluIG90aGVyCiBsYW5ndWFnZXMpOgogCi0gICA+Pj4gcyA9ICdtaXNzaXNzaXBwaScKLSAgID4+PiBkID0gZGVmYXVsdGRpY3QoaW50KQotICAgPj4+IGZvciBrIGluIHM6Ci0gICAuLi4gICAgIGRba10gKz0gMQotICAgLi4uCi0gICA+Pj4gbGlzdChkLml0ZW1zKCkpCi0gICBbKCdpJywgNCksICgncCcsIDIpLCAoJ3MnLCA0KSwgKCdtJywgMSldCisgICAgPj4+IHMgPSAnbWlzc2lzc2lwcGknCisgICAgPj4+IGQgPSBkZWZhdWx0ZGljdChpbnQpCisgICAgPj4+IGZvciBrIGluIHM6CisgICAgLi4uICAgICBkW2tdICs9IDEKKyAgICAuLi4KKyAgICA+Pj4gbGlzdChkLml0ZW1zKCkpCisgICAgWygnaScsIDQpLCAoJ3AnLCAyKSwgKCdzJywgNCksICgnbScsIDEpXQogCiBXaGVuIGEgbGV0dGVyIGlzIGZpcnN0IGVuY291bnRlcmVkLCBpdCBpcyBtaXNzaW5nIGZyb20gdGhlIG1hcHBpbmcsIHNvIHRoZQogOmF0dHI6YGRlZmF1bHRfZmFjdG9yeWAgZnVuY3Rpb24gY2FsbHMgOmZ1bmM6YGludGAgdG8gc3VwcGx5IGEgZGVmYXVsdCBjb3VudCBvZgpAQCAtNTM0LDIzICs2OTgsMjMgQEAKIGlzIHRvIHVzZSBhIGxhbWJkYSBmdW5jdGlvbiB3aGljaCBjYW4gc3VwcGx5IGFueSBjb25zdGFudCB2YWx1ZSAobm90IGp1c3QKIHplcm8pOgogCi0gICA+Pj4gZGVmIGNvbnN0YW50X2ZhY3RvcnkodmFsdWUpOgotICAgLi4uICAgICByZXR1cm4gbGFtYmRhOiB2YWx1ZQotICAgPj4+IGQgPSBkZWZhdWx0ZGljdChjb25zdGFudF9mYWN0b3J5KCc8bWlzc2luZz4nKSkKLSAgID4+PiBkLnVwZGF0ZShuYW1lPSdKb2huJywgYWN0aW9uPSdyYW4nKQotICAgPj4+ICclKG5hbWUpcyAlKGFjdGlvbilzIHRvICUob2JqZWN0KXMnICUgZAotICAgJ0pvaG4gcmFuIHRvIDxtaXNzaW5nPicKKyAgICA+Pj4gZGVmIGNvbnN0YW50X2ZhY3RvcnkodmFsdWUpOgorICAgIC4uLiAgICAgcmV0dXJuIGxhbWJkYTogdmFsdWUKKyAgICA+Pj4gZCA9IGRlZmF1bHRkaWN0KGNvbnN0YW50X2ZhY3RvcnkoJzxtaXNzaW5nPicpKQorICAgID4+PiBkLnVwZGF0ZShuYW1lPSdKb2huJywgYWN0aW9uPSdyYW4nKQorICAgID4+PiAnJShuYW1lKXMgJShhY3Rpb24pcyB0byAlKG9iamVjdClzJyAlIGQKKyAgICAnSm9obiByYW4gdG8gPG1pc3Npbmc+JwogCiBTZXR0aW5nIHRoZSA6YXR0cjpgZGVmYXVsdF9mYWN0b3J5YCB0byA6Y2xhc3M6YHNldGAgbWFrZXMgdGhlCiA6Y2xhc3M6YGRlZmF1bHRkaWN0YCB1c2VmdWwgZm9yIGJ1aWxkaW5nIGEgZGljdGlvbmFyeSBvZiBzZXRzOgogCi0gICA+Pj4gcyA9IFsoJ3JlZCcsIDEpLCAoJ2JsdWUnLCAyKSwgKCdyZWQnLCAzKSwgKCdibHVlJywgNCksICgncmVkJywgMSksICgnYmx1ZScsIDQpXQotICAgPj4+IGQgPSBkZWZhdWx0ZGljdChzZXQpCi0gICA+Pj4gZm9yIGssIHYgaW4gczoKLSAgIC4uLiAgICAgZFtrXS5hZGQodikKLSAgIC4uLgotICAgPj4+IGxpc3QoZC5pdGVtcygpKQotICAgWygnYmx1ZScsIHNldChbMiwgNF0pKSwgKCdyZWQnLCBzZXQoWzEsIDNdKSldCisgICAgPj4+IHMgPSBbKCdyZWQnLCAxKSwgKCdibHVlJywgMiksICgncmVkJywgMyksICgnYmx1ZScsIDQpLCAoJ3JlZCcsIDEpLCAoJ2JsdWUnLCA0KV0KKyAgICA+Pj4gZCA9IGRlZmF1bHRkaWN0KHNldCkKKyAgICA+Pj4gZm9yIGssIHYgaW4gczoKKyAgICAuLi4gICAgIGRba10uYWRkKHYpCisgICAgLi4uCisgICAgPj4+IGxpc3QoZC5pdGVtcygpKQorICAgIFsoJ2JsdWUnLCB7MiwgNH0pLCAoJ3JlZCcsIHsxLCAzfSldCiAKIAogOmZ1bmM6YG5hbWVkdHVwbGVgIEZhY3RvcnkgRnVuY3Rpb24gZm9yIFR1cGxlcyB3aXRoIE5hbWVkIEZpZWxkcwpAQCAtNTYyLDE2OCArNzI2LDEzMSBAQAogCiAuLiBmdW5jdGlvbjo6IG5hbWVkdHVwbGUodHlwZW5hbWUsIGZpZWxkX25hbWVzLCB2ZXJib3NlPUZhbHNlLCByZW5hbWU9RmFsc2UpCiAKLSAgIFJldHVybnMgYSBuZXcgdHVwbGUgc3ViY2xhc3MgbmFtZWQgKnR5cGVuYW1lKi4gIFRoZSBuZXcgc3ViY2xhc3MgaXMgdXNlZCB0bwotICAgY3JlYXRlIHR1cGxlLWxpa2Ugb2JqZWN0cyB0aGF0IGhhdmUgZmllbGRzIGFjY2Vzc2libGUgYnkgYXR0cmlidXRlIGxvb2t1cCBhcwotICAgd2VsbCBhcyBiZWluZyBpbmRleGFibGUgYW5kIGl0ZXJhYmxlLiAgSW5zdGFuY2VzIG9mIHRoZSBzdWJjbGFzcyBhbHNvIGhhdmUgYQotICAgaGVscGZ1bCBkb2NzdHJpbmcgKHdpdGggdHlwZW5hbWUgYW5kIGZpZWxkX25hbWVzKSBhbmQgYSBoZWxwZnVsIDptZXRoOmBfX3JlcHJfX2AKLSAgIG1ldGhvZCB3aGljaCBsaXN0cyB0aGUgdHVwbGUgY29udGVudHMgaW4gYSBgYG5hbWU9dmFsdWVgYCBmb3JtYXQuCisgICAgUmV0dXJucyBhIG5ldyB0dXBsZSBzdWJjbGFzcyBuYW1lZCAqdHlwZW5hbWUqLiAgVGhlIG5ldyBzdWJjbGFzcyBpcyB1c2VkIHRvCisgICAgY3JlYXRlIHR1cGxlLWxpa2Ugb2JqZWN0cyB0aGF0IGhhdmUgZmllbGRzIGFjY2Vzc2libGUgYnkgYXR0cmlidXRlIGxvb2t1cCBhcworICAgIHdlbGwgYXMgYmVpbmcgaW5kZXhhYmxlIGFuZCBpdGVyYWJsZS4gIEluc3RhbmNlcyBvZiB0aGUgc3ViY2xhc3MgYWxzbyBoYXZlIGEKKyAgICBoZWxwZnVsIGRvY3N0cmluZyAod2l0aCB0eXBlbmFtZSBhbmQgZmllbGRfbmFtZXMpIGFuZCBhIGhlbHBmdWwgOm1ldGg6YF9fcmVwcl9fYAorICAgIG1ldGhvZCB3aGljaCBsaXN0cyB0aGUgdHVwbGUgY29udGVudHMgaW4gYSBgYG5hbWU9dmFsdWVgYCBmb3JtYXQuCiAKLSAgIFRoZSAqZmllbGRfbmFtZXMqIGFyZSBhIHNpbmdsZSBzdHJpbmcgd2l0aCBlYWNoIGZpZWxkbmFtZSBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZQotICAgYW5kL29yIGNvbW1hcywgZm9yIGV4YW1wbGUgYGAneCB5J2BgIG9yIGBgJ3gsIHknYGAuICBBbHRlcm5hdGl2ZWx5LCAqZmllbGRfbmFtZXMqCi0gICBjYW4gYmUgYSBzZXF1ZW5jZSBvZiBzdHJpbmdzIHN1Y2ggYXMgYGBbJ3gnLCAneSddYGAuCisgICAgVGhlICpmaWVsZF9uYW1lcyogYXJlIGEgc2luZ2xlIHN0cmluZyB3aXRoIGVhY2ggZmllbGRuYW1lIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlCisgICAgYW5kL29yIGNvbW1hcywgZm9yIGV4YW1wbGUgYGAneCB5J2BgIG9yIGBgJ3gsIHknYGAuICBBbHRlcm5hdGl2ZWx5LCAqZmllbGRfbmFtZXMqCisgICAgY2FuIGJlIGEgc2VxdWVuY2Ugb2Ygc3RyaW5ncyBzdWNoIGFzIGBgWyd4JywgJ3knXWBgLgogCi0gICBBbnkgdmFsaWQgUHl0aG9uIGlkZW50aWZpZXIgbWF5IGJlIHVzZWQgZm9yIGEgZmllbGRuYW1lIGV4Y2VwdCBmb3IgbmFtZXMKLSAgIHN0YXJ0aW5nIHdpdGggYW4gdW5kZXJzY29yZS4gIFZhbGlkIGlkZW50aWZpZXJzIGNvbnNpc3Qgb2YgbGV0dGVycywgZGlnaXRzLAotICAgYW5kIHVuZGVyc2NvcmVzIGJ1dCBkbyBub3Qgc3RhcnQgd2l0aCBhIGRpZ2l0IG9yIHVuZGVyc2NvcmUgYW5kIGNhbm5vdCBiZQotICAgYSA6bW9kOmBrZXl3b3JkYCBzdWNoIGFzICpjbGFzcyosICpmb3IqLCAqcmV0dXJuKiwgKmdsb2JhbCosICpwYXNzKiwKLSAgIG9yICpyYWlzZSouCisgICAgQW55IHZhbGlkIFB5dGhvbiBpZGVudGlmaWVyIG1heSBiZSB1c2VkIGZvciBhIGZpZWxkbmFtZSBleGNlcHQgZm9yIG5hbWVzCisgICAgc3RhcnRpbmcgd2l0aCBhbiB1bmRlcnNjb3JlLiAgVmFsaWQgaWRlbnRpZmllcnMgY29uc2lzdCBvZiBsZXR0ZXJzLCBkaWdpdHMsCisgICAgYW5kIHVuZGVyc2NvcmVzIGJ1dCBkbyBub3Qgc3RhcnQgd2l0aCBhIGRpZ2l0IG9yIHVuZGVyc2NvcmUgYW5kIGNhbm5vdCBiZQorICAgIGEgOm1vZDpga2V5d29yZGAgc3VjaCBhcyAqY2xhc3MqLCAqZm9yKiwgKnJldHVybiosICpnbG9iYWwqLCAqcGFzcyosCisgICAgb3IgKnJhaXNlKi4KIAotICAgSWYgKnJlbmFtZSogaXMgdHJ1ZSwgaW52YWxpZCBmaWVsZG5hbWVzIGFyZSBhdXRvbWF0aWNhbGx5IHJlcGxhY2VkCi0gICB3aXRoIHBvc2l0aW9uYWwgbmFtZXMuICBGb3IgZXhhbXBsZSwgYGBbJ2FiYycsICdkZWYnLCAnZ2hpJywgJ2FiYyddYGAgaXMKLSAgIGNvbnZlcnRlZCB0byBgYFsnYWJjJywgJ18xJywgJ2doaScsICdfMyddYGAsIGVsaW1pbmF0aW5nIHRoZSBrZXl3b3JkCi0gICBgYGRlZmBgIGFuZCB0aGUgZHVwbGljYXRlIGZpZWxkbmFtZSBgYGFiY2BgLgorICAgIElmICpyZW5hbWUqIGlzIHRydWUsIGludmFsaWQgZmllbGRuYW1lcyBhcmUgYXV0b21hdGljYWxseSByZXBsYWNlZAorICAgIHdpdGggcG9zaXRpb25hbCBuYW1lcy4gIEZvciBleGFtcGxlLCBgYFsnYWJjJywgJ2RlZicsICdnaGknLCAnYWJjJ11gYCBpcworICAgIGNvbnZlcnRlZCB0byBgYFsnYWJjJywgJ18xJywgJ2doaScsICdfMyddYGAsIGVsaW1pbmF0aW5nIHRoZSBrZXl3b3JkCisgICAgYGBkZWZgYCBhbmQgdGhlIGR1cGxpY2F0ZSBmaWVsZG5hbWUgYGBhYmNgYC4KIAotICAgSWYgKnZlcmJvc2UqIGlzIHRydWUsIHRoZSBjbGFzcyBkZWZpbml0aW9uIGlzIHByaW50ZWQganVzdCBiZWZvcmUgYmVpbmcgYnVpbHQuCisgICAgSWYgKnZlcmJvc2UqIGlzIHRydWUsIHRoZSBjbGFzcyBkZWZpbml0aW9uIGlzIHByaW50ZWQgYWZ0ZXIgaXQgaXMKKyAgICBidWlsdC4gIFRoaXMgb3B0aW9uIGlzIG91dGRhdGVkOyBpbnN0ZWFkLCBpdCBpcyBzaW1wbGVyIHRvIHByaW50IHRoZQorICAgIDphdHRyOmBfc291cmNlYCBhdHRyaWJ1dGUuCiAKLSAgIE5hbWVkIHR1cGxlIGluc3RhbmNlcyBkbyBub3QgaGF2ZSBwZXItaW5zdGFuY2UgZGljdGlvbmFyaWVzLCBzbyB0aGV5IGFyZQotICAgbGlnaHR3ZWlnaHQgYW5kIHJlcXVpcmUgbm8gbW9yZSBtZW1vcnkgdGhhbiByZWd1bGFyIHR1cGxlcy4KKyAgICBOYW1lZCB0dXBsZSBpbnN0YW5jZXMgZG8gbm90IGhhdmUgcGVyLWluc3RhbmNlIGRpY3Rpb25hcmllcywgc28gdGhleSBhcmUKKyAgICBsaWdodHdlaWdodCBhbmQgcmVxdWlyZSBubyBtb3JlIG1lbW9yeSB0aGFuIHJlZ3VsYXIgdHVwbGVzLgogCi0gICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMQotICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgKnJlbmFtZSouCisgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjEKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgKnJlbmFtZSouCiAKIAogLi4gZG9jdGVzdDo6Ci0gICA6b3B0aW9uczogK05PUk1BTElaRV9XSElURVNQQUNFCisgICAgOm9wdGlvbnM6ICtOT1JNQUxJWkVfV0hJVEVTUEFDRQogCi0gICA+Pj4gIyBCYXNpYyBleGFtcGxlCi0gICA+Pj4gUG9pbnQgPSBuYW1lZHR1cGxlKCdQb2ludCcsIFsneCcsICd5J10pCi0gICA+Pj4gcCA9IFBvaW50KHg9MTAsIHk9MTEpCi0KLSAgID4+PiAjIEV4YW1wbGUgdXNpbmcgdGhlIHZlcmJvc2Ugb3B0aW9uIHRvIHByaW50IHRoZSBjbGFzcyBkZWZpbml0aW9uCi0gICA+Pj4gUG9pbnQgPSBuYW1lZHR1cGxlKCdQb2ludCcsICd4IHknLCB2ZXJib3NlPVRydWUpCi0gICBjbGFzcyBQb2ludCh0dXBsZSk6Ci0gICAgICAgICAgICdQb2ludCh4LCB5KScKLSAgIDxCTEFOS0xJTkU+Ci0gICAgICAgICAgIF9fc2xvdHNfXyA9ICgpCi0gICA8QkxBTktMSU5FPgotICAgICAgICAgICBfZmllbGRzID0gKCd4JywgJ3knKQotICAgPEJMQU5LTElORT4KLSAgICAgICAgICAgZGVmIF9fbmV3X18oX2NscywgeCwgeSk6Ci0gICAgICAgICAgICAgICAnQ3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIFBvaW50KHgsIHkpJwotICAgICAgICAgICAgICAgcmV0dXJuIF90dXBsZS5fX25ld19fKF9jbHMsICh4LCB5KSkKLSAgIDxCTEFOS0xJTkU+Ci0gICAgICAgICAgIEBjbGFzc21ldGhvZAotICAgICAgICAgICBkZWYgX21ha2UoY2xzLCBpdGVyYWJsZSwgbmV3PXR1cGxlLl9fbmV3X18sIGxlbj1sZW4pOgotICAgICAgICAgICAgICAgJ01ha2UgYSBuZXcgUG9pbnQgb2JqZWN0IGZyb20gYSBzZXF1ZW5jZSBvciBpdGVyYWJsZScKLSAgICAgICAgICAgICAgIHJlc3VsdCA9IG5ldyhjbHMsIGl0ZXJhYmxlKQotICAgICAgICAgICAgICAgaWYgbGVuKHJlc3VsdCkgIT0gMjoKLSAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ0V4cGVjdGVkIDIgYXJndW1lbnRzLCBnb3QgJWQnICUgbGVuKHJlc3VsdCkpCi0gICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0gICA8QkxBTktMSU5FPgotICAgICAgICAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgICAgICAgICAnUmV0dXJuIGEgbmljZWx5IGZvcm1hdHRlZCByZXByZXNlbnRhdGlvbiBzdHJpbmcnCi0gICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18uX19uYW1lX18gKyAnKHg9JXIsIHk9JXIpJyAlIHNlbGYKLSAgIDxCTEFOS0xJTkU+Ci0gICAgICAgICAgIGRlZiBfYXNkaWN0KHNlbGYpOgotICAgICAgICAgICAgICAgJ1JldHVybiBhIG5ldyBPcmRlcmVkRGljdCB3aGljaCBtYXBzIGZpZWxkIG5hbWVzIHRvIHRoZWlyIHZhbHVlcycKLSAgICAgICAgICAgICAgIHJldHVybiBPcmRlcmVkRGljdCh6aXAoc2VsZi5fZmllbGRzLCBzZWxmKSkKLSAgIDxCTEFOS0xJTkU+Ci0gICAgICAgICAgIF9fZGljdF9fID0gcHJvcGVydHkoX2FzZGljdCkKLSAgIDxCTEFOS0xJTkU+Ci0gICAgICAgICAgIGRlZiBfcmVwbGFjZShfc2VsZiwgKiprd2RzKToKLSAgICAgICAgICAgICAgICdSZXR1cm4gYSBuZXcgUG9pbnQgb2JqZWN0IHJlcGxhY2luZyBzcGVjaWZpZWQgZmllbGRzIHdpdGggbmV3IHZhbHVlcycKLSAgICAgICAgICAgICAgIHJlc3VsdCA9IF9zZWxmLl9tYWtlKG1hcChrd2RzLnBvcCwgKCd4JywgJ3knKSwgX3NlbGYpKQotICAgICAgICAgICAgICAgaWYga3dkczoKLSAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdHb3QgdW5leHBlY3RlZCBmaWVsZCBuYW1lczogJXInICUgbGlzdChrd2RzLmtleXMoKSkpCi0gICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0gICA8QkxBTktMSU5FPgotICAgICAgICAgICBkZWYgX19nZXRuZXdhcmdzX18oc2VsZik6Ci0gICAgICAgICAgICAgICAnUmV0dXJuIHNlbGYgYXMgYSBwbGFpbiB0dXBsZS4gICBVc2VkIGJ5IGNvcHkgYW5kIHBpY2tsZS4nCi0gICAgICAgICAgICAgICByZXR1cm4gdHVwbGUoc2VsZikKLSAgIDxCTEFOS0xJTkU+Ci0gICAgICAgICAgIHggPSBfcHJvcGVydHkoX2l0ZW1nZXR0ZXIoMCksIGRvYz0nQWxpYXMgZm9yIGZpZWxkIG51bWJlciAwJykKLSAgICAgICAgICAgeSA9IF9wcm9wZXJ0eShfaXRlbWdldHRlcigxKSwgZG9jPSdBbGlhcyBmb3IgZmllbGQgbnVtYmVyIDEnKQotCi0gICA+Pj4gcCA9IFBvaW50KDExLCB5PTIyKSAgICAgIyBpbnN0YW50aWF0ZSB3aXRoIHBvc2l0aW9uYWwgb3Iga2V5d29yZCBhcmd1bWVudHMKLSAgID4+PiBwWzBdICsgcFsxXSAgICAgICAgICAgICAjIGluZGV4YWJsZSBsaWtlIHRoZSBwbGFpbiB0dXBsZSAoMTEsIDIyKQotICAgMzMKLSAgID4+PiB4LCB5ID0gcCAgICAgICAgICAgICAgICAjIHVucGFjayBsaWtlIGEgcmVndWxhciB0dXBsZQotICAgPj4+IHgsIHkKLSAgICgxMSwgMjIpCi0gICA+Pj4gcC54ICsgcC55ICAgICAgICAgICAgICAgIyBmaWVsZHMgYWxzbyBhY2Nlc3NpYmxlIGJ5IG5hbWUKLSAgIDMzCi0gICA+Pj4gcCAgICAgICAgICAgICAgICAgICAgICAgIyByZWFkYWJsZSBfX3JlcHJfXyB3aXRoIGEgbmFtZT12YWx1ZSBzdHlsZQotICAgUG9pbnQoeD0xMSwgeT0yMikKKyAgICA+Pj4gIyBCYXNpYyBleGFtcGxlCisgICAgPj4+IFBvaW50ID0gbmFtZWR0dXBsZSgnUG9pbnQnLCBbJ3gnLCAneSddKQorICAgID4+PiBwID0gUG9pbnQoMTEsIHk9MjIpICAgICAjIGluc3RhbnRpYXRlIHdpdGggcG9zaXRpb25hbCBvciBrZXl3b3JkIGFyZ3VtZW50cworICAgID4+PiBwWzBdICsgcFsxXSAgICAgICAgICAgICAjIGluZGV4YWJsZSBsaWtlIHRoZSBwbGFpbiB0dXBsZSAoMTEsIDIyKQorICAgIDMzCisgICAgPj4+IHgsIHkgPSBwICAgICAgICAgICAgICAgICMgdW5wYWNrIGxpa2UgYSByZWd1bGFyIHR1cGxlCisgICAgPj4+IHgsIHkKKyAgICAoMTEsIDIyKQorICAgID4+PiBwLnggKyBwLnkgICAgICAgICAgICAgICAjIGZpZWxkcyBhbHNvIGFjY2Vzc2libGUgYnkgbmFtZQorICAgIDMzCisgICAgPj4+IHAgICAgICAgICAgICAgICAgICAgICAgICMgcmVhZGFibGUgX19yZXByX18gd2l0aCBhIG5hbWU9dmFsdWUgc3R5bGUKKyAgICBQb2ludCh4PTExLCB5PTIyKQogCiBOYW1lZCB0dXBsZXMgYXJlIGVzcGVjaWFsbHkgdXNlZnVsIGZvciBhc3NpZ25pbmcgZmllbGQgbmFtZXMgdG8gcmVzdWx0IHR1cGxlcyByZXR1cm5lZAogYnkgdGhlIDptb2Q6YGNzdmAgb3IgOm1vZDpgc3FsaXRlM2AgbW9kdWxlczo6CiAKLSAgIEVtcGxveWVlUmVjb3JkID0gbmFtZWR0dXBsZSgnRW1wbG95ZWVSZWNvcmQnLCAnbmFtZSwgYWdlLCB0aXRsZSwgZGVwYXJ0bWVudCwgcGF5Z3JhZGUnKQorICAgIEVtcGxveWVlUmVjb3JkID0gbmFtZWR0dXBsZSgnRW1wbG95ZWVSZWNvcmQnLCAnbmFtZSwgYWdlLCB0aXRsZSwgZGVwYXJ0bWVudCwgcGF5Z3JhZGUnKQogCi0gICBpbXBvcnQgY3N2Ci0gICBmb3IgZW1wIGluIG1hcChFbXBsb3llZVJlY29yZC5fbWFrZSwgY3N2LnJlYWRlcihvcGVuKCJlbXBsb3llZXMuY3N2IiwgInJiIikpKToKLSAgICAgICBwcmludChlbXAubmFtZSwgZW1wLnRpdGxlKQorICAgIGltcG9ydCBjc3YKKyAgICBmb3IgZW1wIGluIG1hcChFbXBsb3llZVJlY29yZC5fbWFrZSwgY3N2LnJlYWRlcihvcGVuKCJlbXBsb3llZXMuY3N2IiwgInJiIikpKToKKyAgICAgICAgcHJpbnQoZW1wLm5hbWUsIGVtcC50aXRsZSkKIAotICAgaW1wb3J0IHNxbGl0ZTMKLSAgIGNvbm4gPSBzcWxpdGUzLmNvbm5lY3QoJy9jb21wYW55ZGF0YScpCi0gICBjdXJzb3IgPSBjb25uLmN1cnNvcigpCi0gICBjdXJzb3IuZXhlY3V0ZSgnU0VMRUNUIG5hbWUsIGFnZSwgdGl0bGUsIGRlcGFydG1lbnQsIHBheWdyYWRlIEZST00gZW1wbG95ZWVzJykKLSAgIGZvciBlbXAgaW4gbWFwKEVtcGxveWVlUmVjb3JkLl9tYWtlLCBjdXJzb3IuZmV0Y2hhbGwoKSk6Ci0gICAgICAgcHJpbnQoZW1wLm5hbWUsIGVtcC50aXRsZSkKKyAgICBpbXBvcnQgc3FsaXRlMworICAgIGNvbm4gPSBzcWxpdGUzLmNvbm5lY3QoJy9jb21wYW55ZGF0YScpCisgICAgY3Vyc29yID0gY29ubi5jdXJzb3IoKQorICAgIGN1cnNvci5leGVjdXRlKCdTRUxFQ1QgbmFtZSwgYWdlLCB0aXRsZSwgZGVwYXJ0bWVudCwgcGF5Z3JhZGUgRlJPTSBlbXBsb3llZXMnKQorICAgIGZvciBlbXAgaW4gbWFwKEVtcGxveWVlUmVjb3JkLl9tYWtlLCBjdXJzb3IuZmV0Y2hhbGwoKSk6CisgICAgICAgIHByaW50KGVtcC5uYW1lLCBlbXAudGl0bGUpCiAKIEluIGFkZGl0aW9uIHRvIHRoZSBtZXRob2RzIGluaGVyaXRlZCBmcm9tIHR1cGxlcywgbmFtZWQgdHVwbGVzIHN1cHBvcnQKLXRocmVlIGFkZGl0aW9uYWwgbWV0aG9kcyBhbmQgb25lIGF0dHJpYnV0ZS4gIFRvIHByZXZlbnQgY29uZmxpY3RzIHdpdGgKK3RocmVlIGFkZGl0aW9uYWwgbWV0aG9kcyBhbmQgdHdvIGF0dHJpYnV0ZXMuICBUbyBwcmV2ZW50IGNvbmZsaWN0cyB3aXRoCiBmaWVsZCBuYW1lcywgdGhlIG1ldGhvZCBhbmQgYXR0cmlidXRlIG5hbWVzIHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZS4KIAogLi4gY2xhc3NtZXRob2Q6OiBzb21lbmFtZWR0dXBsZS5fbWFrZShpdGVyYWJsZSkKIAotICAgQ2xhc3MgbWV0aG9kIHRoYXQgbWFrZXMgYSBuZXcgaW5zdGFuY2UgZnJvbSBhbiBleGlzdGluZyBzZXF1ZW5jZSBvciBpdGVyYWJsZS4KKyAgICBDbGFzcyBtZXRob2QgdGhhdCBtYWtlcyBhIG5ldyBpbnN0YW5jZSBmcm9tIGFuIGV4aXN0aW5nIHNlcXVlbmNlIG9yIGl0ZXJhYmxlLgogCi0uLiBkb2N0ZXN0OjoKKyAgICAuLiBkb2N0ZXN0OjoKIAotICAgICAgPj4+IHQgPSBbMTEsIDIyXQotICAgICAgPj4+IFBvaW50Ll9tYWtlKHQpCi0gICAgICBQb2ludCh4PTExLCB5PTIyKQorICAgICAgICA+Pj4gdCA9IFsxMSwgMjJdCisgICAgICAgID4+PiBQb2ludC5fbWFrZSh0KQorICAgICAgICBQb2ludCh4PTExLCB5PTIyKQogCiAuLiBtZXRob2Q6OiBzb21lbmFtZWR0dXBsZS5fYXNkaWN0KCkKIAotICAgUmV0dXJuIGEgbmV3IDpjbGFzczpgT3JkZXJlZERpY3RgIHdoaWNoIG1hcHMgZmllbGQgbmFtZXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZwotICAgdmFsdWVzOjoKKyAgICBSZXR1cm4gYSBuZXcgOmNsYXNzOmBPcmRlcmVkRGljdGAgd2hpY2ggbWFwcyBmaWVsZCBuYW1lcyB0byB0aGVpciBjb3JyZXNwb25kaW5nCisgICAgdmFsdWVzLiAgTm90ZSwgdGhpcyBtZXRob2QgaXMgbm8gbG9uZ2VyIG5lZWRlZCBub3cgdGhhdCB0aGUgc2FtZSBlZmZlY3QgY2FuCisgICAgYmUgYWNoaWV2ZWQgYnkgdXNpbmcgdGhlIGJ1aWx0LWluIDpmdW5jOmB2YXJzYCBmdW5jdGlvbjo6CiAKLSAgICAgID4+PiBwLl9hc2RpY3QoKQotICAgICAgT3JkZXJlZERpY3QoWygneCcsIDExKSwgKCd5JywgMjIpXSkKKyAgICAgICAgPj4+IHZhcnMocCkKKyAgICAgICAgT3JkZXJlZERpY3QoWygneCcsIDExKSwgKCd5JywgMjIpXSkKIAotICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjEKLSAgICAgIFJldHVybnMgYW4gOmNsYXNzOmBPcmRlcmVkRGljdGAgaW5zdGVhZCBvZiBhIHJlZ3VsYXIgOmNsYXNzOmBkaWN0YC4KKyAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMQorICAgICAgICBSZXR1cm5zIGFuIDpjbGFzczpgT3JkZXJlZERpY3RgIGluc3RlYWQgb2YgYSByZWd1bGFyIDpjbGFzczpgZGljdGAuCiAKIC4uIG1ldGhvZDo6IHNvbWVuYW1lZHR1cGxlLl9yZXBsYWNlKGt3YXJncykKIAotICAgUmV0dXJuIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBuYW1lZCB0dXBsZSByZXBsYWNpbmcgc3BlY2lmaWVkIGZpZWxkcyB3aXRoIG5ldwotICAgdmFsdWVzOgorICAgIFJldHVybiBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgbmFtZWQgdHVwbGUgcmVwbGFjaW5nIHNwZWNpZmllZCBmaWVsZHMgd2l0aCBuZXcKKyAgICB2YWx1ZXM6OgogCi06OgorICAgICAgICA+Pj4gcCA9IFBvaW50KHg9MTEsIHk9MjIpCisgICAgICAgID4+PiBwLl9yZXBsYWNlKHg9MzMpCisgICAgICAgIFBvaW50KHg9MzMsIHk9MjIpCiAKLSAgICAgID4+PiBwID0gUG9pbnQoeD0xMSwgeT0yMikKLSAgICAgID4+PiBwLl9yZXBsYWNlKHg9MzMpCi0gICAgICBQb2ludCh4PTMzLCB5PTIyKQorICAgICAgICA+Pj4gZm9yIHBhcnRudW0sIHJlY29yZCBpbiBpbnZlbnRvcnkuaXRlbXMoKToKKyAgICAgICAgLi4uICAgICBpbnZlbnRvcnlbcGFydG51bV0gPSByZWNvcmQuX3JlcGxhY2UocHJpY2U9bmV3cHJpY2VzW3BhcnRudW1dLCB0aW1lc3RhbXA9dGltZS5ub3coKSkKIAotICAgICAgPj4+IGZvciBwYXJ0bnVtLCByZWNvcmQgaW4gaW52ZW50b3J5Lml0ZW1zKCk6Ci0gICAgICAuLi4gICAgIGludmVudG9yeVtwYXJ0bnVtXSA9IHJlY29yZC5fcmVwbGFjZShwcmljZT1uZXdwcmljZXNbcGFydG51bV0sIHRpbWVzdGFtcD10aW1lLm5vdygpKQorLi4gYXR0cmlidXRlOjogc29tZW5hbWVkdHVwbGUuX3NvdXJjZQorCisgICAgQSBzdHJpbmcgd2l0aCB0aGUgcHVyZSBQeXRob24gc291cmNlIGNvZGUgdXNlZCB0byBjcmVhdGUgdGhlIG5hbWVkCisgICAgdHVwbGUgY2xhc3MuICBUaGUgc291cmNlIG1ha2VzIHRoZSBuYW1lZCB0dXBsZSBzZWxmLWRvY3VtZW50aW5nLgorICAgIEl0IGNhbiBiZSBwcmludGVkLCBleGVjdXRlZCB1c2luZyA6ZnVuYzpgZXhlY2AsIG9yIHNhdmVkIHRvIGEgZmlsZQorICAgIGFuZCBpbXBvcnRlZC4KKworICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiAuLiBhdHRyaWJ1dGU6OiBzb21lbmFtZWR0dXBsZS5fZmllbGRzCiAKLSAgIFR1cGxlIG9mIHN0cmluZ3MgbGlzdGluZyB0aGUgZmllbGQgbmFtZXMuICBVc2VmdWwgZm9yIGludHJvc3BlY3Rpb24KLSAgIGFuZCBmb3IgY3JlYXRpbmcgbmV3IG5hbWVkIHR1cGxlIHR5cGVzIGZyb20gZXhpc3RpbmcgbmFtZWQgdHVwbGVzLgorICAgIFR1cGxlIG9mIHN0cmluZ3MgbGlzdGluZyB0aGUgZmllbGQgbmFtZXMuICBVc2VmdWwgZm9yIGludHJvc3BlY3Rpb24KKyAgICBhbmQgZm9yIGNyZWF0aW5nIG5ldyBuYW1lZCB0dXBsZSB0eXBlcyBmcm9tIGV4aXN0aW5nIG5hbWVkIHR1cGxlcy4KIAotLi4gZG9jdGVzdDo6CisgICAgLi4gZG9jdGVzdDo6CiAKLSAgICAgID4+PiBwLl9maWVsZHMgICAgICAgICAgICAjIHZpZXcgdGhlIGZpZWxkIG5hbWVzCi0gICAgICAoJ3gnLCAneScpCisgICAgICAgID4+PiBwLl9maWVsZHMgICAgICAgICAgICAjIHZpZXcgdGhlIGZpZWxkIG5hbWVzCisgICAgICAgICgneCcsICd5JykKIAotICAgICAgPj4+IENvbG9yID0gbmFtZWR0dXBsZSgnQ29sb3InLCAncmVkIGdyZWVuIGJsdWUnKQotICAgICAgPj4+IFBpeGVsID0gbmFtZWR0dXBsZSgnUGl4ZWwnLCBQb2ludC5fZmllbGRzICsgQ29sb3IuX2ZpZWxkcykKLSAgICAgID4+PiBQaXhlbCgxMSwgMjIsIDEyOCwgMjU1LCAwKQotICAgICAgUGl4ZWwoeD0xMSwgeT0yMiwgcmVkPTEyOCwgZ3JlZW49MjU1LCBibHVlPTApCisgICAgICAgID4+PiBDb2xvciA9IG5hbWVkdHVwbGUoJ0NvbG9yJywgJ3JlZCBncmVlbiBibHVlJykKKyAgICAgICAgPj4+IFBpeGVsID0gbmFtZWR0dXBsZSgnUGl4ZWwnLCBQb2ludC5fZmllbGRzICsgQ29sb3IuX2ZpZWxkcykKKyAgICAgICAgPj4+IFBpeGVsKDExLCAyMiwgMTI4LCAyNTUsIDApCisgICAgICAgIFBpeGVsKHg9MTEsIHk9MjIsIHJlZD0xMjgsIGdyZWVuPTI1NSwgYmx1ZT0wKQogCiBUbyByZXRyaWV2ZSBhIGZpZWxkIHdob3NlIG5hbWUgaXMgc3RvcmVkIGluIGEgc3RyaW5nLCB1c2UgdGhlIDpmdW5jOmBnZXRhdHRyYAogZnVuY3Rpb246CkBAIC03MzQsMzEgKzg2MSwzMCBAQAogVG8gY29udmVydCBhIGRpY3Rpb25hcnkgdG8gYSBuYW1lZCB0dXBsZSwgdXNlIHRoZSBkb3VibGUtc3Rhci1vcGVyYXRvcgogKGFzIGRlc2NyaWJlZCBpbiA6cmVmOmB0dXQtdW5wYWNraW5nLWFyZ3VtZW50c2ApOgogCi0gICA+Pj4gZCA9IHsneCc6IDExLCAneSc6IDIyfQotICAgPj4+IFBvaW50KCoqZCkKLSAgIFBvaW50KHg9MTEsIHk9MjIpCisgICAgPj4+IGQgPSB7J3gnOiAxMSwgJ3knOiAyMn0KKyAgICA+Pj4gUG9pbnQoKipkKQorICAgIFBvaW50KHg9MTEsIHk9MjIpCiAKIFNpbmNlIGEgbmFtZWQgdHVwbGUgaXMgYSByZWd1bGFyIFB5dGhvbiBjbGFzcywgaXQgaXMgZWFzeSB0byBhZGQgb3IgY2hhbmdlCiBmdW5jdGlvbmFsaXR5IHdpdGggYSBzdWJjbGFzcy4gIEhlcmUgaXMgaG93IHRvIGFkZCBhIGNhbGN1bGF0ZWQgZmllbGQgYW5kCiBhIGZpeGVkLXdpZHRoIHByaW50IGZvcm1hdDoKIAogICAgID4+PiBjbGFzcyBQb2ludChuYW1lZHR1cGxlKCdQb2ludCcsICd4IHknKSk6Ci0gICAgICAgICAgICBfX3Nsb3RzX18gPSAoKQotICAgICAgICAgICAgQHByb3BlcnR5Ci0gICAgICAgICAgICBkZWYgaHlwb3Qoc2VsZik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChzZWxmLnggKiogMiArIHNlbGYueSAqKiAyKSAqKiAwLjUKLSAgICAgICAgICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAgICAgICAgICAgIHJldHVybiAnUG9pbnQ6IHg9JTYuM2YgIHk9JTYuM2YgIGh5cG90PSU2LjNmJyAlIChzZWxmLngsIHNlbGYueSwgc2VsZi5oeXBvdCkKKyAgICAgICAgX19zbG90c19fID0gKCkKKyAgICAgICAgQHByb3BlcnR5CisgICAgICAgIGRlZiBoeXBvdChzZWxmKToKKyAgICAgICAgICAgIHJldHVybiAoc2VsZi54ICoqIDIgKyBzZWxmLnkgKiogMikgKiogMC41CisgICAgICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuICdQb2ludDogeD0lNi4zZiAgeT0lNi4zZiAgaHlwb3Q9JTYuM2YnICUgKHNlbGYueCwgc2VsZi55LCBzZWxmLmh5cG90KQogCiAgICAgPj4+IGZvciBwIGluIFBvaW50KDMsIDQpLCBQb2ludCgxNCwgNS83KToKLSAgICAgICAgICAgIHByaW50KHApCisgICAgICAgIHByaW50KHApCiAgICAgUG9pbnQ6IHg9IDMuMDAwICB5PSA0LjAwMCAgaHlwb3Q9IDUuMDAwCiAgICAgUG9pbnQ6IHg9MTQuMDAwICB5PSAwLjcxNCAgaHlwb3Q9MTQuMDE4CiAKIFRoZSBzdWJjbGFzcyBzaG93biBhYm92ZSBzZXRzIGBgX19zbG90c19fYGAgdG8gYW4gZW1wdHkgdHVwbGUuICBUaGlzIGhlbHBzCiBrZWVwIG1lbW9yeSByZXF1aXJlbWVudHMgbG93IGJ5IHByZXZlbnRpbmcgdGhlIGNyZWF0aW9uIG9mIGluc3RhbmNlIGRpY3Rpb25hcmllcy4KIAotCiBTdWJjbGFzc2luZyBpcyBub3QgdXNlZnVsIGZvciBhZGRpbmcgbmV3LCBzdG9yZWQgZmllbGRzLiAgSW5zdGVhZCwgc2ltcGx5CiBjcmVhdGUgYSBuZXcgbmFtZWQgdHVwbGUgdHlwZSBmcm9tIHRoZSA6YXR0cjpgX2ZpZWxkc2AgYXR0cmlidXRlOgogCkBAIC03NzAsNiArODk2LDcgQEAKICAgICA+Pj4gQWNjb3VudCA9IG5hbWVkdHVwbGUoJ0FjY291bnQnLCAnb3duZXIgYmFsYW5jZSB0cmFuc2FjdGlvbl9jb3VudCcpCiAgICAgPj4+IGRlZmF1bHRfYWNjb3VudCA9IEFjY291bnQoJzxvd25lciBuYW1lPicsIDAuMCwgMCkKICAgICA+Pj4gam9obnNfYWNjb3VudCA9IGRlZmF1bHRfYWNjb3VudC5fcmVwbGFjZShvd25lcj0nSm9obicpCisgICAgPj4+IGphbmVzX2FjY291bnQgPSBkZWZhdWx0X2FjY291bnQuX3JlcGxhY2Uob3duZXI9J0phbmUnKQogCiBFbnVtZXJhdGVkIGNvbnN0YW50cyBjYW4gYmUgaW1wbGVtZW50ZWQgd2l0aCBuYW1lZCB0dXBsZXMsIGJ1dCBpdCBpcyBzaW1wbGVyCiBhbmQgbW9yZSBlZmZpY2llbnQgdG8gdXNlIGEgc2ltcGxlIGNsYXNzIGRlY2xhcmF0aW9uOgpAQCAtNzc4LDE5ICs5MDUsMTkgQEAKICAgICA+Pj4gU3RhdHVzLm9wZW4sIFN0YXR1cy5wZW5kaW5nLCBTdGF0dXMuY2xvc2VkCiAgICAgKDAsIDEsIDIpCiAgICAgPj4+IGNsYXNzIFN0YXR1czoKLSAgICAgICAgICAgIG9wZW4sIHBlbmRpbmcsIGNsb3NlZCA9IHJhbmdlKDMpCisgICAgICAgIG9wZW4sIHBlbmRpbmcsIGNsb3NlZCA9IHJhbmdlKDMpCiAKIC4uIHNlZWFsc286OgogCi0gICAqIGBOYW1lZCB0dXBsZSByZWNpcGUgPGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9yZWNpcGVzLzUwMDI2MS8+YF8KLSAgICAgYWRhcHRlZCBmb3IgUHl0aG9uIDIuNC4KKyAgICAqIGBOYW1lZCB0dXBsZSByZWNpcGUgPGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9yZWNpcGVzLzUwMDI2MS8+YF8KKyAgICAgIGFkYXB0ZWQgZm9yIFB5dGhvbiAyLjQuCiAKLSAgICogYFJlY2lwZSBmb3IgbmFtZWQgdHVwbGUgYWJzdHJhY3QgYmFzZSBjbGFzcyB3aXRoIGEgbWV0YWNsYXNzIG1peC1pbgotICAgICA8aHR0cDovL2NvZGUuYWN0aXZlc3RhdGUuY29tL3JlY2lwZXMvNTc3NjI5LW5hbWVkdHVwbGVhYmMtYWJzdHJhY3QtYmFzZS1jbGFzcy1taXgtaW4tZm9yLW5hbWVkLz5gXwotICAgICBieSBKYW4gS2FsaXN6ZXdza2kuICBCZXNpZGVzIHByb3ZpZGluZyBhbiA6dGVybTpgYWJzdHJhY3QgYmFzZSBjbGFzc2AgZm9yCi0gICAgIG5hbWVkIHR1cGxlcywgaXQgYWxzbyBzdXBwb3J0cyBhbiBhbHRlcm5hdGUgOnRlcm06YG1ldGFjbGFzc2AtYmFzZWQKLSAgICAgY29uc3RydWN0b3IgdGhhdCBpcyBjb252ZW5pZW50IGZvciB1c2UgY2FzZXMgd2hlcmUgbmFtZWQgdHVwbGVzIGFyZSBiZWluZwotICAgICBzdWJjbGFzc2VkLgorICAgICogYFJlY2lwZSBmb3IgbmFtZWQgdHVwbGUgYWJzdHJhY3QgYmFzZSBjbGFzcyB3aXRoIGEgbWV0YWNsYXNzIG1peC1pbgorICAgICAgPGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9yZWNpcGVzLzU3NzYyOS1uYW1lZHR1cGxlYWJjLWFic3RyYWN0LWJhc2UtY2xhc3MtbWl4LWluLWZvci1uYW1lZC8+YF8KKyAgICAgIGJ5IEphbiBLYWxpc3pld3NraS4gIEJlc2lkZXMgcHJvdmlkaW5nIGFuIDp0ZXJtOmBhYnN0cmFjdCBiYXNlIGNsYXNzYCBmb3IKKyAgICAgIG5hbWVkIHR1cGxlcywgaXQgYWxzbyBzdXBwb3J0cyBhbiBhbHRlcm5hdGUgOnRlcm06YG1ldGFjbGFzc2AtYmFzZWQKKyAgICAgIGNvbnN0cnVjdG9yIHRoYXQgaXMgY29udmVuaWVudCBmb3IgdXNlIGNhc2VzIHdoZXJlIG5hbWVkIHR1cGxlcyBhcmUgYmVpbmcKKyAgICAgIHN1YmNsYXNzZWQuCiAKIAogOmNsYXNzOmBPcmRlcmVkRGljdGAgb2JqZWN0cwpAQCAtODAyLDM2ICs5MjksMzYgQEAKIAogLi4gY2xhc3M6OiBPcmRlcmVkRGljdChbaXRlbXNdKQogCi0gICBSZXR1cm4gYW4gaW5zdGFuY2Ugb2YgYSBkaWN0IHN1YmNsYXNzLCBzdXBwb3J0aW5nIHRoZSB1c3VhbCA6Y2xhc3M6YGRpY3RgCi0gICBtZXRob2RzLiAgQW4gKk9yZGVyZWREaWN0KiBpcyBhIGRpY3QgdGhhdCByZW1lbWJlcnMgdGhlIG9yZGVyIHRoYXQga2V5cwotICAgd2VyZSBmaXJzdCBpbnNlcnRlZC4gSWYgYSBuZXcgZW50cnkgb3ZlcndyaXRlcyBhbiBleGlzdGluZyBlbnRyeSwgdGhlCi0gICBvcmlnaW5hbCBpbnNlcnRpb24gcG9zaXRpb24gaXMgbGVmdCB1bmNoYW5nZWQuICBEZWxldGluZyBhbiBlbnRyeSBhbmQKLSAgIHJlaW5zZXJ0aW5nIGl0IHdpbGwgbW92ZSBpdCB0byB0aGUgZW5kLgorICAgIFJldHVybiBhbiBpbnN0YW5jZSBvZiBhIGRpY3Qgc3ViY2xhc3MsIHN1cHBvcnRpbmcgdGhlIHVzdWFsIDpjbGFzczpgZGljdGAKKyAgICBtZXRob2RzLiAgQW4gKk9yZGVyZWREaWN0KiBpcyBhIGRpY3QgdGhhdCByZW1lbWJlcnMgdGhlIG9yZGVyIHRoYXQga2V5cworICAgIHdlcmUgZmlyc3QgaW5zZXJ0ZWQuIElmIGEgbmV3IGVudHJ5IG92ZXJ3cml0ZXMgYW4gZXhpc3RpbmcgZW50cnksIHRoZQorICAgIG9yaWdpbmFsIGluc2VydGlvbiBwb3NpdGlvbiBpcyBsZWZ0IHVuY2hhbmdlZC4gIERlbGV0aW5nIGFuIGVudHJ5IGFuZAorICAgIHJlaW5zZXJ0aW5nIGl0IHdpbGwgbW92ZSBpdCB0byB0aGUgZW5kLgogCi0gICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKKyAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKIAotICAgLi4gbWV0aG9kOjogcG9waXRlbShsYXN0PVRydWUpCisgICAgLi4gbWV0aG9kOjogcG9waXRlbShsYXN0PVRydWUpCiAKLSAgICAgIFRoZSA6bWV0aDpgcG9waXRlbWAgbWV0aG9kIGZvciBvcmRlcmVkIGRpY3Rpb25hcmllcyByZXR1cm5zIGFuZCByZW1vdmVzIGEKLSAgICAgIChrZXksIHZhbHVlKSBwYWlyLiAgVGhlIHBhaXJzIGFyZSByZXR1cm5lZCBpbiBMSUZPIG9yZGVyIGlmICpsYXN0KiBpcyB0cnVlCi0gICAgICBvciBGSUZPIG9yZGVyIGlmIGZhbHNlLgorICAgICAgICBUaGUgOm1ldGg6YHBvcGl0ZW1gIG1ldGhvZCBmb3Igb3JkZXJlZCBkaWN0aW9uYXJpZXMgcmV0dXJucyBhbmQgcmVtb3ZlcyBhCisgICAgICAgIChrZXksIHZhbHVlKSBwYWlyLiAgVGhlIHBhaXJzIGFyZSByZXR1cm5lZCBpbiBMSUZPIG9yZGVyIGlmICpsYXN0KiBpcyB0cnVlCisgICAgICAgIG9yIEZJRk8gb3JkZXIgaWYgZmFsc2UuCiAKLSAgIC4uIG1ldGhvZDo6IG1vdmVfdG9fZW5kKGtleSwgbGFzdD1UcnVlKQorICAgIC4uIG1ldGhvZDo6IG1vdmVfdG9fZW5kKGtleSwgbGFzdD1UcnVlKQogCi0gICAgICBNb3ZlIGFuIGV4aXN0aW5nICprZXkqIHRvIGVpdGhlciBlbmQgb2YgYW4gb3JkZXJlZCBkaWN0aW9uYXJ5LiAgVGhlIGl0ZW0KLSAgICAgIGlzIG1vdmVkIHRvIHRoZSByaWdodCBlbmQgaWYgKmxhc3QqIGlzIHRydWUgKHRoZSBkZWZhdWx0KSBvciB0byB0aGUKLSAgICAgIGJlZ2lubmluZyBpZiAqbGFzdCogaXMgZmFsc2UuICBSYWlzZXMgOmV4YzpgS2V5RXJyb3JgIGlmIHRoZSAqa2V5KiBkb2VzCi0gICAgICBub3QgZXhpc3Q6OgorICAgICAgICBNb3ZlIGFuIGV4aXN0aW5nICprZXkqIHRvIGVpdGhlciBlbmQgb2YgYW4gb3JkZXJlZCBkaWN0aW9uYXJ5LiAgVGhlIGl0ZW0KKyAgICAgICAgaXMgbW92ZWQgdG8gdGhlIHJpZ2h0IGVuZCBpZiAqbGFzdCogaXMgdHJ1ZSAodGhlIGRlZmF1bHQpIG9yIHRvIHRoZQorICAgICAgICBiZWdpbm5pbmcgaWYgKmxhc3QqIGlzIGZhbHNlLiAgUmFpc2VzIDpleGM6YEtleUVycm9yYCBpZiB0aGUgKmtleSogZG9lcworICAgICAgICBub3QgZXhpc3Q6OgogCi0gICAgICAgICAgPj4+IGQgPSBPcmRlcmVkRGljdC5mcm9ta2V5cygnYWJjZGUnKQotICAgICAgICAgID4+PiBkLm1vdmVfdG9fZW5kKCdiJykKLSAgICAgICAgICA+Pj4gJycuam9pbihkLmtleXMoKSkKLSAgICAgICAgICAnYWNkZWInCi0gICAgICAgICAgPj4+IGQubW92ZV90b19lbmQoJ2InLCBsYXN0PUZhbHNlKQotICAgICAgICAgID4+PiAnJy5qb2luKGQua2V5cygpKQotICAgICAgICAgICdiYWNkZScKKyAgICAgICAgICAgID4+PiBkID0gT3JkZXJlZERpY3QuZnJvbWtleXMoJ2FiY2RlJykKKyAgICAgICAgICAgID4+PiBkLm1vdmVfdG9fZW5kKCdiJykKKyAgICAgICAgICAgID4+PiAnJy5qb2luKGQua2V5cygpKQorICAgICAgICAgICAgJ2FjZGViJworICAgICAgICAgICAgPj4+IGQubW92ZV90b19lbmQoJ2InLCBsYXN0PUZhbHNlKQorICAgICAgICAgICAgPj4+ICcnLmpvaW4oZC5rZXlzKCkpCisgICAgICAgICAgICAnYmFjZGUnCiAKLSAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgorICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogSW4gYWRkaXRpb24gdG8gdGhlIHVzdWFsIG1hcHBpbmcgbWV0aG9kcywgb3JkZXJlZCBkaWN0aW9uYXJpZXMgYWxzbyBzdXBwb3J0CiByZXZlcnNlIGl0ZXJhdGlvbiB1c2luZyA6ZnVuYzpgcmV2ZXJzZWRgLgpAQCAtODQ5LDggKzk3Niw4IEBACiAKIC4uIHNlZWFsc286OgogCi0gICBgRXF1aXZhbGVudCBPcmRlcmVkRGljdCByZWNpcGUgPGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9yZWNpcGVzLzU3NjY5My8+YF8KLSAgIHRoYXQgcnVucyBvbiBQeXRob24gMi40IG9yIGxhdGVyLgorICAgIGBFcXVpdmFsZW50IE9yZGVyZWREaWN0IHJlY2lwZSA8aHR0cDovL2NvZGUuYWN0aXZlc3RhdGUuY29tL3JlY2lwZXMvNTc2NjkzLz5gXworICAgIHRoYXQgcnVucyBvbiBQeXRob24gMi40IG9yIGxhdGVyLgogCiA6Y2xhc3M6YE9yZGVyZWREaWN0YCBFeGFtcGxlcyBhbmQgUmVjaXBlcwogXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KQEAgLTg5Myw3ICsxMDIwLDcgQEAKIEFuIG9yZGVyZWQgZGljdGlvbmFyeSBjYW4gYmUgY29tYmluZWQgd2l0aCB0aGUgOmNsYXNzOmBDb3VudGVyYCBjbGFzcwogc28gdGhhdCB0aGUgY291bnRlciByZW1lbWJlcnMgdGhlIG9yZGVyIGVsZW1lbnRzIGFyZSBmaXJzdCBlbmNvdW50ZXJlZDo6CiAKLSAgIGNsYXNzIE9yZGVyZWRDb3VudGVyKENvdW50ZXIsIE9yZGVyZWREaWN0KToKKyAgICBjbGFzcyBPcmRlcmVkQ291bnRlcihDb3VudGVyLCBPcmRlcmVkRGljdCk6CiAgICAgICAgICdDb3VudGVyIHRoYXQgcmVtZW1iZXJzIHRoZSBvcmRlciBlbGVtZW50cyBhcmUgZmlyc3QgZW5jb3VudGVyZWQnCiAKICAgICAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgpAQCAtOTE0LDE5ICsxMDQxLDE5IEBACiAKIC4uIGNsYXNzOjogVXNlckRpY3QoW2luaXRpYWxkYXRhXSkKIAotICAgQ2xhc3MgdGhhdCBzaW11bGF0ZXMgYSBkaWN0aW9uYXJ5LiAgVGhlIGluc3RhbmNlJ3MgY29udGVudHMgYXJlIGtlcHQgaW4gYQotICAgcmVndWxhciBkaWN0aW9uYXJ5LCB3aGljaCBpcyBhY2Nlc3NpYmxlIHZpYSB0aGUgOmF0dHI6YGRhdGFgIGF0dHJpYnV0ZSBvZgotICAgOmNsYXNzOmBVc2VyRGljdGAgaW5zdGFuY2VzLiAgSWYgKmluaXRpYWxkYXRhKiBpcyBwcm92aWRlZCwgOmF0dHI6YGRhdGFgIGlzCi0gICBpbml0aWFsaXplZCB3aXRoIGl0cyBjb250ZW50czsgbm90ZSB0aGF0IGEgcmVmZXJlbmNlIHRvICppbml0aWFsZGF0YSogd2lsbCBub3QKLSAgIGJlIGtlcHQsIGFsbG93aW5nIGl0IGJlIHVzZWQgZm9yIG90aGVyIHB1cnBvc2VzLgorICAgIENsYXNzIHRoYXQgc2ltdWxhdGVzIGEgZGljdGlvbmFyeS4gIFRoZSBpbnN0YW5jZSdzIGNvbnRlbnRzIGFyZSBrZXB0IGluIGEKKyAgICByZWd1bGFyIGRpY3Rpb25hcnksIHdoaWNoIGlzIGFjY2Vzc2libGUgdmlhIHRoZSA6YXR0cjpgZGF0YWAgYXR0cmlidXRlIG9mCisgICAgOmNsYXNzOmBVc2VyRGljdGAgaW5zdGFuY2VzLiAgSWYgKmluaXRpYWxkYXRhKiBpcyBwcm92aWRlZCwgOmF0dHI6YGRhdGFgIGlzCisgICAgaW5pdGlhbGl6ZWQgd2l0aCBpdHMgY29udGVudHM7IG5vdGUgdGhhdCBhIHJlZmVyZW5jZSB0byAqaW5pdGlhbGRhdGEqIHdpbGwgbm90CisgICAgYmUga2VwdCwgYWxsb3dpbmcgaXQgYmUgdXNlZCBmb3Igb3RoZXIgcHVycG9zZXMuCiAKLSAgIEluIGFkZGl0aW9uIHRvIHN1cHBvcnRpbmcgdGhlIG1ldGhvZHMgYW5kIG9wZXJhdGlvbnMgb2YgbWFwcGluZ3MsCi0gICA6Y2xhc3M6YFVzZXJEaWN0YCBpbnN0YW5jZXMgcHJvdmlkZSB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZToKKyAgICBJbiBhZGRpdGlvbiB0byBzdXBwb3J0aW5nIHRoZSBtZXRob2RzIGFuZCBvcGVyYXRpb25zIG9mIG1hcHBpbmdzLAorICAgIDpjbGFzczpgVXNlckRpY3RgIGluc3RhbmNlcyBwcm92aWRlIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlOgogCi0gICAuLiBhdHRyaWJ1dGU6OiBkYXRhCisgICAgLi4gYXR0cmlidXRlOjogZGF0YQogCi0gICAgICBBIHJlYWwgZGljdGlvbmFyeSB1c2VkIHRvIHN0b3JlIHRoZSBjb250ZW50cyBvZiB0aGUgOmNsYXNzOmBVc2VyRGljdGAKLSAgICAgIGNsYXNzLgorICAgICAgICBBIHJlYWwgZGljdGlvbmFyeSB1c2VkIHRvIHN0b3JlIHRoZSBjb250ZW50cyBvZiB0aGUgOmNsYXNzOmBVc2VyRGljdGAKKyAgICAgICAgY2xhc3MuCiAKIAogCkBAIC05NDQsMTkgKzEwNzEsMTkgQEAKIAogLi4gY2xhc3M6OiBVc2VyTGlzdChbbGlzdF0pCiAKLSAgIENsYXNzIHRoYXQgc2ltdWxhdGVzIGEgbGlzdC4gIFRoZSBpbnN0YW5jZSdzIGNvbnRlbnRzIGFyZSBrZXB0IGluIGEgcmVndWxhcgotICAgbGlzdCwgd2hpY2ggaXMgYWNjZXNzaWJsZSB2aWEgdGhlIDphdHRyOmBkYXRhYCBhdHRyaWJ1dGUgb2YgOmNsYXNzOmBVc2VyTGlzdGAKLSAgIGluc3RhbmNlcy4gIFRoZSBpbnN0YW5jZSdzIGNvbnRlbnRzIGFyZSBpbml0aWFsbHkgc2V0IHRvIGEgY29weSBvZiAqbGlzdCosCi0gICBkZWZhdWx0aW5nIHRvIHRoZSBlbXB0eSBsaXN0IGBgW11gYC4gICpsaXN0KiBjYW4gYmUgYW55IGl0ZXJhYmxlLCBmb3IKLSAgIGV4YW1wbGUgYSByZWFsIFB5dGhvbiBsaXN0IG9yIGEgOmNsYXNzOmBVc2VyTGlzdGAgb2JqZWN0LgorICAgIENsYXNzIHRoYXQgc2ltdWxhdGVzIGEgbGlzdC4gIFRoZSBpbnN0YW5jZSdzIGNvbnRlbnRzIGFyZSBrZXB0IGluIGEgcmVndWxhcgorICAgIGxpc3QsIHdoaWNoIGlzIGFjY2Vzc2libGUgdmlhIHRoZSA6YXR0cjpgZGF0YWAgYXR0cmlidXRlIG9mIDpjbGFzczpgVXNlckxpc3RgCisgICAgaW5zdGFuY2VzLiAgVGhlIGluc3RhbmNlJ3MgY29udGVudHMgYXJlIGluaXRpYWxseSBzZXQgdG8gYSBjb3B5IG9mICpsaXN0KiwKKyAgICBkZWZhdWx0aW5nIHRvIHRoZSBlbXB0eSBsaXN0IGBgW11gYC4gICpsaXN0KiBjYW4gYmUgYW55IGl0ZXJhYmxlLCBmb3IKKyAgICBleGFtcGxlIGEgcmVhbCBQeXRob24gbGlzdCBvciBhIDpjbGFzczpgVXNlckxpc3RgIG9iamVjdC4KIAotICAgSW4gYWRkaXRpb24gdG8gc3VwcG9ydGluZyB0aGUgbWV0aG9kcyBhbmQgb3BlcmF0aW9ucyBvZiBtdXRhYmxlIHNlcXVlbmNlcywKLSAgIDpjbGFzczpgVXNlckxpc3RgIGluc3RhbmNlcyBwcm92aWRlIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlOgorICAgIEluIGFkZGl0aW9uIHRvIHN1cHBvcnRpbmcgdGhlIG1ldGhvZHMgYW5kIG9wZXJhdGlvbnMgb2YgbXV0YWJsZSBzZXF1ZW5jZXMsCisgICAgOmNsYXNzOmBVc2VyTGlzdGAgaW5zdGFuY2VzIHByb3ZpZGUgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGU6CiAKLSAgIC4uIGF0dHJpYnV0ZTo6IGRhdGEKKyAgICAuLiBhdHRyaWJ1dGU6OiBkYXRhCiAKLSAgICAgIEEgcmVhbCA6Y2xhc3M6YGxpc3RgIG9iamVjdCB1c2VkIHRvIHN0b3JlIHRoZSBjb250ZW50cyBvZiB0aGUKLSAgICAgIDpjbGFzczpgVXNlckxpc3RgIGNsYXNzLgorICAgICAgICBBIHJlYWwgOmNsYXNzOmBsaXN0YCBvYmplY3QgdXNlZCB0byBzdG9yZSB0aGUgY29udGVudHMgb2YgdGhlCisgICAgICAgIDpjbGFzczpgVXNlckxpc3RgIGNsYXNzLgogCiAqKlN1YmNsYXNzaW5nIHJlcXVpcmVtZW50czoqKiBTdWJjbGFzc2VzIG9mIDpjbGFzczpgVXNlckxpc3RgIGFyZSBleHBlY3QgdG8KIG9mZmVyIGEgY29uc3RydWN0b3Igd2hpY2ggY2FuIGJlIGNhbGxlZCB3aXRoIGVpdGhlciBubyBhcmd1bWVudHMgb3Igb25lCkBAIC05ODEsMTY4ICsxMTA4LDEwIEBACiAKIC4uIGNsYXNzOjogVXNlclN0cmluZyhbc2VxdWVuY2VdKQogCi0gICBDbGFzcyB0aGF0IHNpbXVsYXRlcyBhIHN0cmluZyBvciBhIFVuaWNvZGUgc3RyaW5nIG9iamVjdC4gIFRoZSBpbnN0YW5jZSdzCi0gICBjb250ZW50IGlzIGtlcHQgaW4gYSByZWd1bGFyIHN0cmluZyBvYmplY3QsIHdoaWNoIGlzIGFjY2Vzc2libGUgdmlhIHRoZQotICAgOmF0dHI6YGRhdGFgIGF0dHJpYnV0ZSBvZiA6Y2xhc3M6YFVzZXJTdHJpbmdgIGluc3RhbmNlcy4gIFRoZSBpbnN0YW5jZSdzCi0gICBjb250ZW50cyBhcmUgaW5pdGlhbGx5IHNldCB0byBhIGNvcHkgb2YgKnNlcXVlbmNlKi4gIFRoZSAqc2VxdWVuY2UqIGNhbgotICAgYmUgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmBieXRlc2AsIDpjbGFzczpgc3RyYCwgOmNsYXNzOmBVc2VyU3RyaW5nYCAob3IgYQotICAgc3ViY2xhc3MpIG9yIGFuIGFyYml0cmFyeSBzZXF1ZW5jZSB3aGljaCBjYW4gYmUgY29udmVydGVkIGludG8gYSBzdHJpbmcgdXNpbmcKLSAgIHRoZSBidWlsdC1pbiA6ZnVuYzpgc3RyYCBmdW5jdGlvbi4KLQotCi0uLiBfY29sbGVjdGlvbnMtYWJzdHJhY3QtYmFzZS1jbGFzc2VzOgotCi1BQkNzIC0gYWJzdHJhY3QgYmFzZSBjbGFzc2VzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoZSBjb2xsZWN0aW9ucyBtb2R1bGUgb2ZmZXJzIHRoZSBmb2xsb3dpbmcgOnRlcm06YEFCQ3MgPGFic3RyYWN0IGJhc2UgY2xhc3M+YDoKLQotPT09PT09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09ICA9PT09PT09PT09PT09PT09PT09PT09ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1BQkMgICAgICAgICAgICAgICAgICAgICAgICBJbmhlcml0cyBmcm9tICAgICAgICAgIEFic3RyYWN0IE1ldGhvZHMgICAgICAgIE1peGluIE1ldGhvZHMKLT09PT09PT09PT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotOmNsYXNzOmBDb250YWluZXJgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9fY29udGFpbnNfX2BgCi06Y2xhc3M6YEhhc2hhYmxlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19oYXNoX19gYAotOmNsYXNzOmBJdGVyYWJsZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9faXRlcl9fYGAKLTpjbGFzczpgSXRlcmF0b3JgICAgICAgICAgIDpjbGFzczpgSXRlcmFibGVgICAgICAgYGBfX25leHRfX2BgICAgICAgICAgICAgYGBfX2l0ZXJfX2BgCi06Y2xhc3M6YFNpemVkYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19sZW5fX2BgCi06Y2xhc3M6YENhbGxhYmxlYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19jYWxsX19gYAotCi06Y2xhc3M6YFNlcXVlbmNlYCAgICAgICAgICA6Y2xhc3M6YFNpemVkYCwgICAgICAgIGBgX19nZXRpdGVtX19gYCAgICAgICAgIGBgX19jb250YWluc19fYGAsIGBgX19pdGVyX19gYCwgYGBfX3JldmVyc2VkX19gYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzczpgSXRlcmFibGVgLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBpbmRleGBgLCBhbmQgYGBjb3VudGBgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M6YENvbnRhaW5lcmAKLQotOmNsYXNzOmBNdXRhYmxlU2VxdWVuY2VgICAgOmNsYXNzOmBTZXF1ZW5jZWAgICAgICBgYF9fc2V0aXRlbV9fYGAsICAgICAgICBJbmhlcml0ZWQgOmNsYXNzOmBTZXF1ZW5jZWAgbWV0aG9kcyBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX2RlbGl0ZW1fX2BgLCAgICAgICAgYGBhcHBlbmRgYCwgYGByZXZlcnNlYGAsIGBgZXh0ZW5kYGAsIGBgcG9wYGAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgaW5zZXJ0YGAgICAgICAgICAgICAgIGBgcmVtb3ZlYGAsIGFuZCBgYF9faWFkZF9fYGAKLQotOmNsYXNzOmBTZXRgICAgICAgICAgICAgICAgOmNsYXNzOmBTaXplZGAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9fbGVfX2BgLCBgYF9fbHRfX2BgLCBgYF9fZXFfX2BgLCBgYF9fbmVfX2BgLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzOmBJdGVyYWJsZWAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9fZ3RfX2BgLCBgYF9fZ2VfX2BgLCBgYF9fYW5kX19gYCwgYGBfX29yX19gYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzczpgQ29udGFpbmVyYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX3N1Yl9fYGAsIGBgX194b3JfX2BgLCBhbmQgYGBpc2Rpc2pvaW50YGAKLQotOmNsYXNzOmBNdXRhYmxlU2V0YCAgICAgICAgOmNsYXNzOmBTZXRgICAgICAgICAgICBgYGFkZGBgLCAgICAgICAgICAgICAgICBJbmhlcml0ZWQgOmNsYXNzOmBTZXRgIG1ldGhvZHMgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgZGlzY2FyZGBgICAgICAgICAgICAgIGBgY2xlYXJgYCwgYGBwb3BgYCwgYGByZW1vdmVgYCwgYGBfX2lvcl9fYGAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19pYW5kX19gYCwgYGBfX2l4b3JfX2BgLCBhbmQgYGBfX2lzdWJfX2BgCi0KLTpjbGFzczpgTWFwcGluZ2AgICAgICAgICAgIDpjbGFzczpgU2l6ZWRgLCAgICAgICAgYGBfX2dldGl0ZW1fX2BgICAgICAgICAgYGBfX2NvbnRhaW5zX19gYCwgYGBrZXlzYGAsIGBgaXRlbXNgYCwgYGB2YWx1ZXNgYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzczpgSXRlcmFibGVgLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBnZXRgYCwgYGBfX2VxX19gYCwgYW5kIGBgX19uZV9fYGAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzczpgQ29udGFpbmVyYAotCi06Y2xhc3M6YE11dGFibGVNYXBwaW5nYCAgICA6Y2xhc3M6YE1hcHBpbmdgICAgICAgIGBgX19zZXRpdGVtX19gYCwgICAgICAgIEluaGVyaXRlZCA6Y2xhc3M6YE1hcHBpbmdgIG1ldGhvZHMgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19kZWxpdGVtX19gYCAgICAgICAgIGBgcG9wYGAsIGBgcG9waXRlbWBgLCBgYGNsZWFyYGAsIGBgdXBkYXRlYGAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBgYHNldGRlZmF1bHRgYAotCi0KLTpjbGFzczpgTWFwcGluZ1ZpZXdgICAgICAgIDpjbGFzczpgU2l6ZWRgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX2xlbl9fYGAKLTpjbGFzczpgSXRlbXNWaWV3YCAgICAgICAgIDpjbGFzczpgTWFwcGluZ1ZpZXdgLCAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX2NvbnRhaW5zX19gYCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDpjbGFzczpgU2V0YCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBfX2l0ZXJfX2BgCi06Y2xhc3M6YEtleXNWaWV3YCAgICAgICAgICA6Y2xhc3M6YE1hcHBpbmdWaWV3YCwgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19jb250YWluc19fYGAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICA6Y2xhc3M6YFNldGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBgX19pdGVyX19gYAotOmNsYXNzOmBWYWx1ZXNWaWV3YCAgICAgICAgOmNsYXNzOmBNYXBwaW5nVmlld2AgICAgICAgICAgICAgICAgICAgICAgICAgICBgYF9fY29udGFpbnNfX2BgLCBgYF9faXRlcl9fYGAKLT09PT09PT09PT09PT09PT09PT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNsYXNzOjogQ29udGFpbmVyCi0gICAgICAgICAgIEhhc2hhYmxlCi0gICAgICAgICAgIFNpemVkCi0gICAgICAgICAgIENhbGxhYmxlCi0KLSAgIEFCQ3MgZm9yIGNsYXNzZXMgdGhhdCBwcm92aWRlIHJlc3BlY3RpdmVseSB0aGUgbWV0aG9kcyA6bWV0aDpgX19jb250YWluc19fYCwKLSAgIDptZXRoOmBfX2hhc2hfX2AsIDptZXRoOmBfX2xlbl9fYCwgYW5kIDptZXRoOmBfX2NhbGxfX2AuCi0KLS4uIGNsYXNzOjogSXRlcmFibGUKLQotICAgQUJDIGZvciBjbGFzc2VzIHRoYXQgcHJvdmlkZSB0aGUgOm1ldGg6YF9faXRlcl9fYCBtZXRob2QuCi0gICBTZWUgYWxzbyB0aGUgZGVmaW5pdGlvbiBvZiA6dGVybTpgaXRlcmFibGVgLgotCi0uLiBjbGFzczo6IEl0ZXJhdG9yCi0KLSAgIEFCQyBmb3IgY2xhc3NlcyB0aGF0IHByb3ZpZGUgdGhlIDptZXRoOmBfX2l0ZXJfX2AgYW5kIDptZXRoOmBuZXh0YCBtZXRob2RzLgotICAgU2VlIGFsc28gdGhlIGRlZmluaXRpb24gb2YgOnRlcm06YGl0ZXJhdG9yYC4KLQotLi4gY2xhc3M6OiBTZXF1ZW5jZQotICAgICAgICAgICBNdXRhYmxlU2VxdWVuY2UKLQotICAgQUJDcyBmb3IgcmVhZC1vbmx5IGFuZCBtdXRhYmxlIDp0ZXJtOmBzZXF1ZW5jZXMgPHNlcXVlbmNlPmAuCi0KLS4uIGNsYXNzOjogU2V0Ci0gICAgICAgICAgIE11dGFibGVTZXQKLQotICAgQUJDcyBmb3IgcmVhZC1vbmx5IGFuZCBtdXRhYmxlIHNldHMuCi0KLS4uIGNsYXNzOjogTWFwcGluZwotICAgICAgICAgICBNdXRhYmxlTWFwcGluZwotCi0gICBBQkNzIGZvciByZWFkLW9ubHkgYW5kIG11dGFibGUgOnRlcm06YG1hcHBpbmdzIDxtYXBwaW5nPmAuCi0KLS4uIGNsYXNzOjogTWFwcGluZ1ZpZXcKLSAgICAgICAgICAgSXRlbXNWaWV3Ci0gICAgICAgICAgIEtleXNWaWV3Ci0gICAgICAgICAgIFZhbHVlc1ZpZXcKLQotICAgQUJDcyBmb3IgbWFwcGluZywgaXRlbXMsIGtleXMsIGFuZCB2YWx1ZXMgOnRlcm06YHZpZXdzIDx2aWV3PmAuCi0KLQotVGhlc2UgQUJDcyBhbGxvdyB1cyB0byBhc2sgY2xhc3NlcyBvciBpbnN0YW5jZXMgaWYgdGhleSBwcm92aWRlCi1wYXJ0aWN1bGFyIGZ1bmN0aW9uYWxpdHksIGZvciBleGFtcGxlOjoKLQotICAgIHNpemUgPSBOb25lCi0gICAgaWYgaXNpbnN0YW5jZShteXZhciwgY29sbGVjdGlvbnMuU2l6ZWQpOgotICAgICAgICBzaXplID0gbGVuKG15dmFyKQotCi1TZXZlcmFsIG9mIHRoZSBBQkNzIGFyZSBhbHNvIHVzZWZ1bCBhcyBtaXhpbnMgdGhhdCBtYWtlIGl0IGVhc2llciB0byBkZXZlbG9wCi1jbGFzc2VzIHN1cHBvcnRpbmcgY29udGFpbmVyIEFQSXMuICBGb3IgZXhhbXBsZSwgdG8gd3JpdGUgYSBjbGFzcyBzdXBwb3J0aW5nCi10aGUgZnVsbCA6Y2xhc3M6YFNldGAgQVBJLCBpdCBvbmx5IG5lY2Vzc2FyeSB0byBzdXBwbHkgdGhlIHRocmVlIHVuZGVybHlpbmcKLWFic3RyYWN0IG1ldGhvZHM6IDptZXRoOmBfX2NvbnRhaW5zX19gLCA6bWV0aDpgX19pdGVyX19gLCBhbmQgOm1ldGg6YF9fbGVuX19gLgotVGhlIEFCQyBzdXBwbGllcyB0aGUgcmVtYWluaW5nIG1ldGhvZHMgc3VjaCBhcyA6bWV0aDpgX19hbmRfX2AgYW5kCi06bWV0aDpgaXNkaXNqb2ludGAgOjoKLQotICAgIGNsYXNzIExpc3RCYXNlZFNldChjb2xsZWN0aW9ucy5TZXQpOgotICAgICAgICAgJycnIEFsdGVybmF0ZSBzZXQgaW1wbGVtZW50YXRpb24gZmF2b3Jpbmcgc3BhY2Ugb3ZlciBzcGVlZAotICAgICAgICAgICAgIGFuZCBub3QgcmVxdWlyaW5nIHRoZSBzZXQgZWxlbWVudHMgdG8gYmUgaGFzaGFibGUuICcnJwotICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZXJhYmxlKToKLSAgICAgICAgICAgICBzZWxmLmVsZW1lbnRzID0gbHN0ID0gW10KLSAgICAgICAgICAgICBmb3IgdmFsdWUgaW4gaXRlcmFibGU6Ci0gICAgICAgICAgICAgICAgIGlmIHZhbHVlIG5vdCBpbiBsc3Q6Ci0gICAgICAgICAgICAgICAgICAgICBsc3QuYXBwZW5kKHZhbHVlKQotICAgICAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAgICAgICAgICAgIHJldHVybiBpdGVyKHNlbGYuZWxlbWVudHMpCi0gICAgICAgICBkZWYgX19jb250YWluc19fKHNlbGYsIHZhbHVlKToKLSAgICAgICAgICAgICByZXR1cm4gdmFsdWUgaW4gc2VsZi5lbGVtZW50cwotICAgICAgICAgZGVmIF9fbGVuX18oc2VsZik6Ci0gICAgICAgICAgICAgcmV0dXJuIGxlbihzZWxmLmVsZW1lbnRzKQotCi0gICAgczEgPSBMaXN0QmFzZWRTZXQoJ2FiY2RlZicpCi0gICAgczIgPSBMaXN0QmFzZWRTZXQoJ2RlZmdoaScpCi0gICAgb3ZlcmxhcCA9IHMxICYgczIgICAgICAgICAgICAjIFRoZSBfX2FuZF9fKCkgbWV0aG9kIGlzIHN1cHBvcnRlZCBhdXRvbWF0aWNhbGx5Ci0KLU5vdGVzIG9uIHVzaW5nIDpjbGFzczpgU2V0YCBhbmQgOmNsYXNzOmBNdXRhYmxlU2V0YCBhcyBhIG1peGluOgotCi0oMSkKLSAgIFNpbmNlIHNvbWUgc2V0IG9wZXJhdGlvbnMgY3JlYXRlIG5ldyBzZXRzLCB0aGUgZGVmYXVsdCBtaXhpbiBtZXRob2RzIG5lZWQKLSAgIGEgd2F5IHRvIGNyZWF0ZSBuZXcgaW5zdGFuY2VzIGZyb20gYW4gaXRlcmFibGUuIFRoZSBjbGFzcyBjb25zdHJ1Y3RvciBpcwotICAgYXNzdW1lZCB0byBoYXZlIGEgc2lnbmF0dXJlIGluIHRoZSBmb3JtIGBgQ2xhc3NOYW1lKGl0ZXJhYmxlKWBgLgotICAgVGhhdCBhc3N1bXB0aW9uIGlzIGZhY3RvcmVkLW91dCB0byBhbiBpbnRlcm5hbCBjbGFzc21ldGhvZCBjYWxsZWQKLSAgIDptZXRoOmBfZnJvbV9pdGVyYWJsZWAgd2hpY2ggY2FsbHMgYGBjbHMoaXRlcmFibGUpYGAgdG8gcHJvZHVjZSBhIG5ldyBzZXQuCi0gICBJZiB0aGUgOmNsYXNzOmBTZXRgIG1peGluIGlzIGJlaW5nIHVzZWQgaW4gYSBjbGFzcyB3aXRoIGEgZGlmZmVyZW50Ci0gICBjb25zdHJ1Y3RvciBzaWduYXR1cmUsIHlvdSB3aWxsIG5lZWQgdG8gb3ZlcnJpZGUgOm1ldGg6YF9mcm9tX2l0ZXJhYmxlYAotICAgd2l0aCBhIGNsYXNzbWV0aG9kIHRoYXQgY2FuIGNvbnN0cnVjdCBuZXcgaW5zdGFuY2VzIGZyb20KLSAgIGFuIGl0ZXJhYmxlIGFyZ3VtZW50LgotCi0oMikKLSAgIFRvIG92ZXJyaWRlIHRoZSBjb21wYXJpc29ucyAocHJlc3VtYWJseSBmb3Igc3BlZWQsIGFzIHRoZQotICAgc2VtYW50aWNzIGFyZSBmaXhlZCksIHJlZGVmaW5lIDptZXRoOmBfX2xlX19gIGFuZAotICAgdGhlbiB0aGUgb3RoZXIgb3BlcmF0aW9ucyB3aWxsIGF1dG9tYXRpY2FsbHkgZm9sbG93IHN1aXQuCi0KLSgzKQotICAgVGhlIDpjbGFzczpgU2V0YCBtaXhpbiBwcm92aWRlcyBhIDptZXRoOmBfaGFzaGAgbWV0aG9kIHRvIGNvbXB1dGUgYSBoYXNoIHZhbHVlCi0gICBmb3IgdGhlIHNldDsgaG93ZXZlciwgOm1ldGg6YF9faGFzaF9fYCBpcyBub3QgZGVmaW5lZCBiZWNhdXNlIG5vdCBhbGwgc2V0cwotICAgYXJlIGhhc2hhYmxlIG9yIGltbXV0YWJsZS4gIFRvIGFkZCBzZXQgaGFzaGFiaWx0eSB1c2luZyBtaXhpbnMsCi0gICBpbmhlcml0IGZyb20gYm90aCA6bWV0aDpgU2V0YCBhbmQgOm1ldGg6YEhhc2hhYmxlYCwgdGhlbiBkZWZpbmUKLSAgIGBgX19oYXNoX18gPSBTZXQuX2hhc2hgYC4KLQotLi4gc2VlYWxzbzo6Ci0KLSAgICogYE9yZGVyZWRTZXQgcmVjaXBlIDxodHRwOi8vY29kZS5hY3RpdmVzdGF0ZS5jb20vcmVjaXBlcy81NzY2OTQvPmBfIGZvciBhbgotICAgICBleGFtcGxlIGJ1aWx0IG9uIDpjbGFzczpgTXV0YWJsZVNldGAuCi0KLSAgICogRm9yIG1vcmUgYWJvdXQgQUJDcywgc2VlIHRoZSA6bW9kOmBhYmNgIG1vZHVsZSBhbmQgOnBlcDpgMzExOWAuCisgICAgQ2xhc3MgdGhhdCBzaW11bGF0ZXMgYSBzdHJpbmcgb3IgYSBVbmljb2RlIHN0cmluZyBvYmplY3QuICBUaGUgaW5zdGFuY2UncworICAgIGNvbnRlbnQgaXMga2VwdCBpbiBhIHJlZ3VsYXIgc3RyaW5nIG9iamVjdCwgd2hpY2ggaXMgYWNjZXNzaWJsZSB2aWEgdGhlCisgICAgOmF0dHI6YGRhdGFgIGF0dHJpYnV0ZSBvZiA6Y2xhc3M6YFVzZXJTdHJpbmdgIGluc3RhbmNlcy4gIFRoZSBpbnN0YW5jZSdzCisgICAgY29udGVudHMgYXJlIGluaXRpYWxseSBzZXQgdG8gYSBjb3B5IG9mICpzZXF1ZW5jZSouICBUaGUgKnNlcXVlbmNlKiBjYW4KKyAgICBiZSBhbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YGJ5dGVzYCwgOmNsYXNzOmBzdHJgLCA6Y2xhc3M6YFVzZXJTdHJpbmdgIChvciBhCisgICAgc3ViY2xhc3MpIG9yIGFuIGFyYml0cmFyeSBzZXF1ZW5jZSB3aGljaCBjYW4gYmUgY29udmVydGVkIGludG8gYSBzdHJpbmcgdXNpbmcKKyAgICB0aGUgYnVpbHQtaW4gOmZ1bmM6YHN0cmAgZnVuY3Rpb24uCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9jb25jdXJyZW50LmZ1dHVyZXMucnN0IGIvRG9jL2xpYnJhcnkvY29uY3VycmVudC5mdXR1cmVzLnJzdAppbmRleCAyOWZmYzBkLi5hODhmMTBjIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9jb25jdXJyZW50LmZ1dHVyZXMucnN0CisrKyBiL0RvYy9saWJyYXJ5L2NvbmN1cnJlbnQuZnV0dXJlcy5yc3QKQEAgLTE2OSw2ICsxNjksMTIgQEAKICAgIG9mIGF0IG1vc3QgKm1heF93b3JrZXJzKiBwcm9jZXNzZXMuICBJZiAqbWF4X3dvcmtlcnMqIGlzIGBgTm9uZWBgIG9yIG5vdAogICAgZ2l2ZW4sIGl0IHdpbGwgZGVmYXVsdCB0byB0aGUgbnVtYmVyIG9mIHByb2Nlc3NvcnMgb24gdGhlIG1hY2hpbmUuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBXaGVuIG9uZSBvZiB0aGUgd29ya2VyIHByb2Nlc3NlcyB0ZXJtaW5hdGVzIGFicnVwdGx5LCBhCisgICAgICA6ZXhjOmBCcm9rZW5Qcm9jZXNzUG9vbGAgZXJyb3IgaXMgbm93IHJhaXNlZC4gIFByZXZpb3VzbHksIGJlaGF2aW91cgorICAgICAgd2FzIHVuZGVmaW5lZCBidXQgb3BlcmF0aW9ucyBvbiB0aGUgZXhlY3V0b3Igb3IgaXRzIGZ1dHVyZXMgd291bGQgb2Z0ZW4KKyAgICAgIGZyZWV6ZSBvciBkZWFkbG9jay4KKwogCiAuLiBfcHJvY2Vzc3Bvb2xleGVjdXRvci1leGFtcGxlOgogCkBAIC0zNjksMyArMzc1LDE2IEBACiAgICA6cGVwOmAzMTQ4YCAtLSBmdXR1cmVzIC0gZXhlY3V0ZSBjb21wdXRhdGlvbnMgYXN5bmNocm9ub3VzbHkKICAgICAgIFRoZSBwcm9wb3NhbCB3aGljaCBkZXNjcmliZWQgdGhpcyBmZWF0dXJlIGZvciBpbmNsdXNpb24gaW4gdGhlIFB5dGhvbgogICAgICAgc3RhbmRhcmQgbGlicmFyeS4KKworCitFeGNlcHRpb24gY2xhc3NlcworLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gZXhjZXB0aW9uOjogQnJva2VuUHJvY2Vzc1Bvb2wKKworICAgRGVyaXZlZCBmcm9tIDpleGM6YFJ1bnRpbWVFcnJvcmAsIHRoaXMgZXhjZXB0aW9uIGNsYXNzIGlzIHJhaXNlZCB3aGVuCisgICBvbmUgb2YgdGhlIHdvcmtlcnMgb2YgYSA6Y2xhc3M6YFByb2Nlc3NQb29sRXhlY3V0b3JgIGhhcyB0ZXJtaW5hdGVkCisgICBpbiBhIG5vbi1jbGVhbiBmYXNoaW9uIChmb3IgZXhhbXBsZSwgaWYgaXQgd2FzIGtpbGxlZCBmcm9tIHRoZSBvdXRzaWRlKS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2NvbnRleHRsaWIucnN0IGIvRG9jL2xpYnJhcnkvY29udGV4dGxpYi5yc3QKaW5kZXggZThkYzE3Zi4uZWQ5ZWJiOCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvY29udGV4dGxpYi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvY29udGV4dGxpYi5yc3QKQEAgLTEyLDggKzEyLDExIEBACiBzdGF0ZW1lbnQuIEZvciBtb3JlIGluZm9ybWF0aW9uIHNlZSBhbHNvIDpyZWY6YHR5cGVjb250ZXh0bWFuYWdlcmAgYW5kCiA6cmVmOmBjb250ZXh0LW1hbmFnZXJzYC4KIAotRnVuY3Rpb25zIHByb3ZpZGVkOgogCitVdGlsaXRpZXMKKy0tLS0tLS0tLQorCitGdW5jdGlvbnMgYW5kIGNsYXNzZXMgcHJvdmlkZWQ6CiAKIC4uIGRlY29yYXRvcjo6IGNvbnRleHRtYW5hZ2VyCiAKQEAgLTE2OCw2ICsxNzEsMzQ4IEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogCisuLiBjbGFzczo6IEV4aXRTdGFjaygpCisKKyAgIEEgY29udGV4dCBtYW5hZ2VyIHRoYXQgaXMgZGVzaWduZWQgdG8gbWFrZSBpdCBlYXN5IHRvIHByb2dyYW1tYXRpY2FsbHkKKyAgIGNvbWJpbmUgb3RoZXIgY29udGV4dCBtYW5hZ2VycyBhbmQgY2xlYW51cCBmdW5jdGlvbnMsIGVzcGVjaWFsbHkgdGhvc2UKKyAgIHRoYXQgYXJlIG9wdGlvbmFsIG9yIG90aGVyd2lzZSBkcml2ZW4gYnkgaW5wdXQgZGF0YS4KKworICAgRm9yIGV4YW1wbGUsIGEgc2V0IG9mIGZpbGVzIG1heSBlYXNpbHkgYmUgaGFuZGxlZCBpbiBhIHNpbmdsZSB3aXRoCisgICBzdGF0ZW1lbnQgYXMgZm9sbG93czo6CisKKyAgICAgIHdpdGggRXhpdFN0YWNrKCkgYXMgc3RhY2s6CisgICAgICAgICAgZmlsZXMgPSBbc3RhY2suZW50ZXJfY29udGV4dChvcGVuKGZuYW1lKSkgZm9yIGZuYW1lIGluIGZpbGVuYW1lc10KKyAgICAgICAgICAjIEFsbCBvcGVuZWQgZmlsZXMgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGNsb3NlZCBhdCB0aGUgZW5kIG9mCisgICAgICAgICAgIyB0aGUgd2l0aCBzdGF0ZW1lbnQsIGV2ZW4gaWYgYXR0ZW1wdHMgdG8gb3BlbiBmaWxlcyBsYXRlcgorICAgICAgICAgICMgaW4gdGhlIGxpc3QgdGhyb3cgYW4gZXhjZXB0aW9uCisKKyAgIEVhY2ggaW5zdGFuY2UgbWFpbnRhaW5zIGEgc3RhY2sgb2YgcmVnaXN0ZXJlZCBjYWxsYmFja3MgdGhhdCBhcmUgY2FsbGVkIGluCisgICByZXZlcnNlIG9yZGVyIHdoZW4gdGhlIGluc3RhbmNlIGlzIGNsb3NlZCAoZWl0aGVyIGV4cGxpY2l0bHkgb3IgaW1wbGljaXRseQorICAgYXQgdGhlIGVuZCBvZiBhIDprZXl3b3JkOmB3aXRoYCBzdGF0ZW1lbnQpLiBOb3RlIHRoYXQgY2FsbGJhY2tzIGFyZSAqbm90KgorICAgaW52b2tlZCBpbXBsaWNpdGx5IHdoZW4gdGhlIGNvbnRleHQgc3RhY2sgaW5zdGFuY2UgaXMgZ2FyYmFnZSBjb2xsZWN0ZWQuCisKKyAgIFRoaXMgc3RhY2sgbW9kZWwgaXMgdXNlZCBzbyB0aGF0IGNvbnRleHQgbWFuYWdlcnMgdGhhdCBhY3F1aXJlIHRoZWlyCisgICByZXNvdXJjZXMgaW4gdGhlaXIgYGBfX2luaXRfX2BgIG1ldGhvZCAoc3VjaCBhcyBmaWxlIG9iamVjdHMpIGNhbiBiZQorICAgaGFuZGxlZCBjb3JyZWN0bHkuCisKKyAgIFNpbmNlIHJlZ2lzdGVyZWQgY2FsbGJhY2tzIGFyZSBpbnZva2VkIGluIHRoZSByZXZlcnNlIG9yZGVyIG9mCisgICByZWdpc3RyYXRpb24sIHRoaXMgZW5kcyB1cCBiZWhhdmluZyBhcyBpZiBtdWx0aXBsZSBuZXN0ZWQgOmtleXdvcmQ6YHdpdGhgCisgICBzdGF0ZW1lbnRzIGhhZCBiZWVuIHVzZWQgd2l0aCB0aGUgcmVnaXN0ZXJlZCBzZXQgb2YgY2FsbGJhY2tzLiBUaGlzIGV2ZW4KKyAgIGV4dGVuZHMgdG8gZXhjZXB0aW9uIGhhbmRsaW5nIC0gaWYgYW4gaW5uZXIgY2FsbGJhY2sgc3VwcHJlc3NlcyBvciByZXBsYWNlcworICAgYW4gZXhjZXB0aW9uLCB0aGVuIG91dGVyIGNhbGxiYWNrcyB3aWxsIGJlIHBhc3NlZCBhcmd1bWVudHMgYmFzZWQgb24gdGhhdAorICAgdXBkYXRlZCBzdGF0ZS4KKworICAgVGhpcyBpcyBhIHJlbGF0aXZlbHkgbG93IGxldmVsIEFQSSB0aGF0IHRha2VzIGNhcmUgb2YgdGhlIGRldGFpbHMgb2YKKyAgIGNvcnJlY3RseSB1bndpbmRpbmcgdGhlIHN0YWNrIG9mIGV4aXQgY2FsbGJhY2tzLiBJdCBwcm92aWRlcyBhIHN1aXRhYmxlCisgICBmb3VuZGF0aW9uIGZvciBoaWdoZXIgbGV2ZWwgY29udGV4dCBtYW5hZ2VycyB0aGF0IG1hbmlwdWxhdGUgdGhlIGV4aXQKKyAgIHN0YWNrIGluIGFwcGxpY2F0aW9uIHNwZWNpZmljIHdheXMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisgICAuLiBtZXRob2Q6OiBlbnRlcl9jb250ZXh0KGNtKQorCisgICAgICBFbnRlcnMgYSBuZXcgY29udGV4dCBtYW5hZ2VyIGFuZCBhZGRzIGl0cyA6bWV0aDpgX19leGl0X19gIG1ldGhvZCB0bworICAgICAgdGhlIGNhbGxiYWNrIHN0YWNrLiBUaGUgcmV0dXJuIHZhbHVlIGlzIHRoZSByZXN1bHQgb2YgdGhlIGNvbnRleHQKKyAgICAgIG1hbmFnZXIncyBvd24gOm1ldGg6YF9fZW50ZXJfX2AgbWV0aG9kLgorCisgICAgICBUaGVzZSBjb250ZXh0IG1hbmFnZXJzIG1heSBzdXBwcmVzcyBleGNlcHRpb25zIGp1c3QgYXMgdGhleSBub3JtYWxseQorICAgICAgd291bGQgaWYgdXNlZCBkaXJlY3RseSBhcyBwYXJ0IG9mIGEgOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudC4KKworICAgLi4gbWV0aG9kOjogcHVzaChleGl0KQorCisgICAgICBBZGRzIGEgY29udGV4dCBtYW5hZ2VyJ3MgOm1ldGg6YF9fZXhpdF9fYCBtZXRob2QgdG8gdGhlIGNhbGxiYWNrIHN0YWNrLgorCisgICAgICBBcyBgYF9fZW50ZXJfX2BgIGlzICpub3QqIGludm9rZWQsIHRoaXMgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGNvdmVyCisgICAgICBwYXJ0IG9mIGFuIDptZXRoOmBfX2VudGVyX19gIGltcGxlbWVudGF0aW9uIHdpdGggYSBjb250ZXh0IG1hbmFnZXIncyBvd24KKyAgICAgIDptZXRoOmBfX2V4aXRfX2AgbWV0aG9kLgorCisgICAgICBJZiBwYXNzZWQgYW4gb2JqZWN0IHRoYXQgaXMgbm90IGEgY29udGV4dCBtYW5hZ2VyLCB0aGlzIG1ldGhvZCBhc3N1bWVzCisgICAgICBpdCBpcyBhIGNhbGxiYWNrIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlIGFzIGEgY29udGV4dCBtYW5hZ2VyJ3MKKyAgICAgIDptZXRoOmBfX2V4aXRfX2AgbWV0aG9kIGFuZCBhZGRzIGl0IGRpcmVjdGx5IHRvIHRoZSBjYWxsYmFjayBzdGFjay4KKworICAgICAgQnkgcmV0dXJuaW5nIHRydWUgdmFsdWVzLCB0aGVzZSBjYWxsYmFja3MgY2FuIHN1cHByZXNzIGV4Y2VwdGlvbnMgdGhlCisgICAgICBzYW1lIHdheSBjb250ZXh0IG1hbmFnZXIgOm1ldGg6YF9fZXhpdF9fYCBtZXRob2RzIGNhbi4KKworICAgICAgVGhlIHBhc3NlZCBpbiBvYmplY3QgaXMgcmV0dXJuZWQgZnJvbSB0aGUgZnVuY3Rpb24sIGFsbG93aW5nIHRoaXMKKyAgICAgIG1ldGhvZCB0byBiZSB1c2VkIGFzIGEgZnVuY3Rpb24gZGVjb3JhdG9yLgorCisgICAuLiBtZXRob2Q6OiBjYWxsYmFjayhjYWxsYmFjaywgKmFyZ3MsICoqa3dkcykKKworICAgICAgQWNjZXB0cyBhbiBhcmJpdHJhcnkgY2FsbGJhY2sgZnVuY3Rpb24gYW5kIGFyZ3VtZW50cyBhbmQgYWRkcyBpdCB0bworICAgICAgdGhlIGNhbGxiYWNrIHN0YWNrLgorCisgICAgICBVbmxpa2UgdGhlIG90aGVyIG1ldGhvZHMsIGNhbGxiYWNrcyBhZGRlZCB0aGlzIHdheSBjYW5ub3Qgc3VwcHJlc3MKKyAgICAgIGV4Y2VwdGlvbnMgKGFzIHRoZXkgYXJlIG5ldmVyIHBhc3NlZCB0aGUgZXhjZXB0aW9uIGRldGFpbHMpLgorCisgICAgICBUaGUgcGFzc2VkIGluIGNhbGxiYWNrIGlzIHJldHVybmVkIGZyb20gdGhlIGZ1bmN0aW9uLCBhbGxvd2luZyB0aGlzCisgICAgICBtZXRob2QgdG8gYmUgdXNlZCBhcyBhIGZ1bmN0aW9uIGRlY29yYXRvci4KKworICAgLi4gbWV0aG9kOjogcG9wX2FsbCgpCisKKyAgICAgIFRyYW5zZmVycyB0aGUgY2FsbGJhY2sgc3RhY2sgdG8gYSBmcmVzaCA6Y2xhc3M6YEV4aXRTdGFja2AgaW5zdGFuY2UKKyAgICAgIGFuZCByZXR1cm5zIGl0LiBObyBjYWxsYmFja3MgYXJlIGludm9rZWQgYnkgdGhpcyBvcGVyYXRpb24gLSBpbnN0ZWFkLAorICAgICAgdGhleSB3aWxsIG5vdyBiZSBpbnZva2VkIHdoZW4gdGhlIG5ldyBzdGFjayBpcyBjbG9zZWQgKGVpdGhlcgorICAgICAgZXhwbGljaXRseSBvciBpbXBsaWNpdGx5IGF0IHRoZSBlbmQgb2YgYSA6a2V5d29yZDpgd2l0aGAgc3RhdGVtZW50KS4KKworICAgICAgRm9yIGV4YW1wbGUsIGEgZ3JvdXAgb2YgZmlsZXMgY2FuIGJlIG9wZW5lZCBhcyBhbiAiYWxsIG9yIG5vdGhpbmciCisgICAgICBvcGVyYXRpb24gYXMgZm9sbG93czo6CisKKyAgICAgICAgIHdpdGggRXhpdFN0YWNrKCkgYXMgc3RhY2s6CisgICAgICAgICAgICAgZmlsZXMgPSBbc3RhY2suZW50ZXJfY29udGV4dChvcGVuKGZuYW1lKSkgZm9yIGZuYW1lIGluIGZpbGVuYW1lc10KKyAgICAgICAgICAgICBjbG9zZV9maWxlcyA9IHN0YWNrLnBvcF9hbGwoKS5jbG9zZQorICAgICAgICAgICAgICMgSWYgb3BlbmluZyBhbnkgZmlsZSBmYWlscywgYWxsIHByZXZpb3VzbHkgb3BlbmVkIGZpbGVzIHdpbGwgYmUKKyAgICAgICAgICAgICAjIGNsb3NlZCBhdXRvbWF0aWNhbGx5LiBJZiBhbGwgZmlsZXMgYXJlIG9wZW5lZCBzdWNjZXNzZnVsbHksCisgICAgICAgICAgICAgIyB0aGV5IHdpbGwgcmVtYWluIG9wZW4gZXZlbiBhZnRlciB0aGUgd2l0aCBzdGF0ZW1lbnQgZW5kcy4KKyAgICAgICAgICAgICAjIGNsb3NlX2ZpbGVzKCkgY2FuIHRoZW4gYmUgaW52b2tlZCBleHBsaWNpdGx5IHRvIGNsb3NlIHRoZW0gYWxsCisKKyAgIC4uIG1ldGhvZDo6IGNsb3NlKCkKKworICAgICAgSW1tZWRpYXRlbHkgdW53aW5kcyB0aGUgY2FsbGJhY2sgc3RhY2ssIGludm9raW5nIGNhbGxiYWNrcyBpbiB0aGUKKyAgICAgIHJldmVyc2Ugb3JkZXIgb2YgcmVnaXN0cmF0aW9uLiBGb3IgYW55IGNvbnRleHQgbWFuYWdlcnMgYW5kIGV4aXQKKyAgICAgIGNhbGxiYWNrcyByZWdpc3RlcmVkLCB0aGUgYXJndW1lbnRzIHBhc3NlZCBpbiB3aWxsIGluZGljYXRlIHRoYXQgbm8KKyAgICAgIGV4Y2VwdGlvbiBvY2N1cnJlZC4KKworCitFeGFtcGxlcyBhbmQgUmVjaXBlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyBzb21lIGV4YW1wbGVzIGFuZCByZWNpcGVzIGZvciBtYWtpbmcgZWZmZWN0aXZlIHVzZSBvZgordGhlIHRvb2xzIHByb3ZpZGVkIGJ5IDptb2Q6YGNvbnRleHRsaWJgLgorCisKK1N1cHBvcnRpbmcgYSB2YXJpYWJsZSBudW1iZXIgb2YgY29udGV4dCBtYW5hZ2VycworXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK1RoZSBwcmltYXJ5IHVzZSBjYXNlIGZvciA6Y2xhc3M6YEV4aXRTdGFja2AgaXMgdGhlIG9uZSBnaXZlbiBpbiB0aGUgY2xhc3MKK2RvY3VtZW50YXRpb246IHN1cHBvcnRpbmcgYSB2YXJpYWJsZSBudW1iZXIgb2YgY29udGV4dCBtYW5hZ2VycyBhbmQgb3RoZXIKK2NsZWFudXAgb3BlcmF0aW9ucyBpbiBhIHNpbmdsZSA6a2V5d29yZDpgd2l0aGAgc3RhdGVtZW50LiBUaGUgdmFyaWFiaWxpdHkKK21heSBjb21lIGZyb20gdGhlIG51bWJlciBvZiBjb250ZXh0IG1hbmFnZXJzIG5lZWRlZCBiZWluZyBkcml2ZW4gYnkgdXNlcgoraW5wdXQgKHN1Y2ggYXMgb3BlbmluZyBhIHVzZXIgc3BlY2lmaWVkIGNvbGxlY3Rpb24gb2YgZmlsZXMpLCBvciBmcm9tCitzb21lIG9mIHRoZSBjb250ZXh0IG1hbmFnZXJzIGJlaW5nIG9wdGlvbmFsOjoKKworICAgIHdpdGggRXhpdFN0YWNrKCkgYXMgc3RhY2s6CisgICAgICAgIGZvciByZXNvdXJjZSBpbiByZXNvdXJjZXM6CisgICAgICAgICAgICBzdGFjay5lbnRlcl9jb250ZXh0KHJlc291cmNlKQorICAgICAgICBpZiBuZWVkX3NwZWNpYWwgcmVzb3VyY2U6CisgICAgICAgICAgICBzcGVjaWFsID0gYWNxdWlyZV9zcGVjaWFsX3Jlc291cmNlKCkKKyAgICAgICAgICAgIHN0YWNrLmNhbGxiYWNrKHJlbGVhc2Vfc3BlY2lhbF9yZXNvdXJjZSwgc3BlY2lhbCkKKyAgICAgICAgIyBQZXJmb3JtIG9wZXJhdGlvbnMgdGhhdCB1c2UgdGhlIGFjcXVpcmVkIHJlc291cmNlcworCitBcyBzaG93biwgOmNsYXNzOmBFeGl0U3RhY2tgIGFsc28gbWFrZXMgaXQgcXVpdGUgZWFzeSB0byB1c2UgOmtleXdvcmQ6YHdpdGhgCitzdGF0ZW1lbnRzIHRvIG1hbmFnZSBhcmJpdHJhcnkgcmVzb3VyY2VzIHRoYXQgZG9uJ3QgbmF0aXZlbHkgc3VwcG9ydCB0aGUKK2NvbnRleHQgbWFuYWdlbWVudCBwcm90b2NvbC4KKworCitTaW1wbGlmeWluZyBzdXBwb3J0IGZvciBzaW5nbGUgb3B0aW9uYWwgY29udGV4dCBtYW5hZ2VycworXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworSW4gdGhlIHNwZWNpZmljIGNhc2Ugb2YgYSBzaW5nbGUgb3B0aW9uYWwgY29udGV4dCBtYW5hZ2VyLCA6Y2xhc3M6YEV4aXRTdGFja2AKK2luc3RhbmNlcyBjYW4gYmUgdXNlZCBhcyBhICJkbyBub3RoaW5nIiBjb250ZXh0IG1hbmFnZXIsIGFsbG93aW5nIGEgY29udGV4dAorbWFuYWdlciB0byBlYXNpbHkgYmUgb21pdHRlZCB3aXRob3V0IGFmZmVjdGluZyB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUgb2YKK3RoZSBzb3VyY2UgY29kZTo6CisKKyAgIGRlZiBkZWJ1Z190cmFjZShkZXRhaWxzKToKKyAgICAgICBpZiBfX2RlYnVnX186CisgICAgICAgICAgIHJldHVybiBUcmFjZUNvbnRleHQoZGV0YWlscykKKyAgICAgICAjIERvbid0IGRvIGFueXRoaW5nIHNwZWNpYWwgd2l0aCB0aGUgY29udGV4dCBpbiByZWxlYXNlIG1vZGUKKyAgICAgICByZXR1cm4gRXhpdFN0YWNrKCkKKworICAgd2l0aCBkZWJ1Z190cmFjZSgpOgorICAgICAgICMgU3VpdGUgaXMgdHJhY2VkIGluIGRlYnVnIG1vZGUsIGJ1dCBydW5zIG5vcm1hbGx5IG90aGVyd2lzZQorCisKK0NhdGNoaW5nIGV4Y2VwdGlvbnMgZnJvbSBgYF9fZW50ZXJfX2BgIG1ldGhvZHMKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworSXQgaXMgb2NjYXNpb25hbGx5IGRlc2lyYWJsZSB0byBjYXRjaCBleGNlcHRpb25zIGZyb20gYW4gYGBfX2VudGVyX19gYAorbWV0aG9kIGltcGxlbWVudGF0aW9uLCAqd2l0aG91dCogaW5hZHZlcnRlbnRseSBjYXRjaGluZyBleGNlcHRpb25zIGZyb20KK3RoZSA6a2V5d29yZDpgd2l0aGAgc3RhdGVtZW50IGJvZHkgb3IgdGhlIGNvbnRleHQgbWFuYWdlcidzIGBgX19leGl0X19gYAorbWV0aG9kLiBCeSB1c2luZyA6Y2xhc3M6YEV4aXRTdGFja2AgdGhlIHN0ZXBzIGluIHRoZSBjb250ZXh0IG1hbmFnZW1lbnQKK3Byb3RvY29sIGNhbiBiZSBzZXBhcmF0ZWQgc2xpZ2h0bHkgaW4gb3JkZXIgdG8gYWxsb3cgdGhpczo6CisKKyAgIHN0YWNrID0gRXhpdFN0YWNrKCkKKyAgIHRyeToKKyAgICAgICB4ID0gc3RhY2suZW50ZXJfY29udGV4dChjbSkKKyAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIyBoYW5kbGUgX19lbnRlcl9fIGV4Y2VwdGlvbgorICAgZWxzZToKKyAgICAgICB3aXRoIHN0YWNrOgorICAgICAgICAgICAjIEhhbmRsZSBub3JtYWwgY2FzZQorCitBY3R1YWxseSBuZWVkaW5nIHRvIGRvIHRoaXMgaXMgbGlrZWx5IHRvIGluZGljYXRlIHRoYXQgdGhlIHVuZGVybHlpbmcgQVBJCitzaG91bGQgYmUgcHJvdmlkaW5nIGEgZGlyZWN0IHJlc291cmNlIG1hbmFnZW1lbnQgaW50ZXJmYWNlIGZvciB1c2Ugd2l0aAorOmtleXdvcmQ6YHRyeWAvOmtleXdvcmQ6YGV4Y2VwdGAvOmtleXdvcmQ6YGZpbmFsbHlgIHN0YXRlbWVudHMsIGJ1dCBub3QKK2FsbCBBUElzIGFyZSB3ZWxsIGRlc2lnbmVkIGluIHRoYXQgcmVnYXJkLiBXaGVuIGEgY29udGV4dCBtYW5hZ2VyIGlzIHRoZQorb25seSByZXNvdXJjZSBtYW5hZ2VtZW50IEFQSSBwcm92aWRlZCwgdGhlbiA6Y2xhc3M6YEV4aXRTdGFja2AgY2FuIG1ha2UgaXQKK2Vhc2llciB0byBoYW5kbGUgdmFyaW91cyBzaXR1YXRpb25zIHRoYXQgY2FuJ3QgYmUgaGFuZGxlZCBkaXJlY3RseSBpbiBhCis6a2V5d29yZDpgd2l0aGAgc3RhdGVtZW50LgorCisKK0NsZWFuaW5nIHVwIGluIGFuIGBgX19lbnRlcl9fYGAgaW1wbGVtZW50YXRpb24KK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworQXMgbm90ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgOm1ldGg6YEV4aXRTdGFjay5wdXNoYCwgdGhpcworbWV0aG9kIGNhbiBiZSB1c2VmdWwgaW4gY2xlYW5pbmcgdXAgYW4gYWxyZWFkeSBhbGxvY2F0ZWQgcmVzb3VyY2UgaWYgbGF0ZXIKK3N0ZXBzIGluIHRoZSA6bWV0aDpgX19lbnRlcl9fYCBpbXBsZW1lbnRhdGlvbiBmYWlsLgorCitIZXJlJ3MgYW4gZXhhbXBsZSBvZiBkb2luZyB0aGlzIGZvciBhIGNvbnRleHQgbWFuYWdlciB0aGF0IGFjY2VwdHMgcmVzb3VyY2UKK2FjcXVpc2l0aW9uIGFuZCByZWxlYXNlIGZ1bmN0aW9ucywgYWxvbmcgd2l0aCBhbiBvcHRpb25hbCB2YWxpZGF0aW9uIGZ1bmN0aW9uLAorYW5kIG1hcHMgdGhlbSB0byB0aGUgY29udGV4dCBtYW5hZ2VtZW50IHByb3RvY29sOjoKKworICAgZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlciwgRXhpdFN0YWNrCisKKyAgIGNsYXNzIFJlc291cmNlTWFuYWdlcihvYmplY3QpOgorCisgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFjcXVpcmVfcmVzb3VyY2UsIHJlbGVhc2VfcmVzb3VyY2UsIGNoZWNrX3Jlc291cmNlX29rPU5vbmUpOgorICAgICAgICAgICBzZWxmLmFjcXVpcmVfcmVzb3VyY2UgPSBhY3F1aXJlX3Jlc291cmNlCisgICAgICAgICAgIHNlbGYucmVsZWFzZV9yZXNvdXJjZSA9IHJlbGVhc2VfcmVzb3VyY2UKKyAgICAgICAgICAgaWYgY2hlY2tfcmVzb3VyY2Vfb2sgaXMgTm9uZToKKyAgICAgICAgICAgICAgIGRlZiBjaGVja19yZXNvdXJjZV9vayhyZXNvdXJjZSk6CisgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgc2VsZi5jaGVja19yZXNvdXJjZV9vayA9IGNoZWNrX3Jlc291cmNlX29rCisKKyAgICAgICBAY29udGV4dG1hbmFnZXIKKyAgICAgICBkZWYgX2NsZWFudXBfb25fZXJyb3Ioc2VsZik6CisgICAgICAgICAgIHdpdGggRXhpdFN0YWNrKCkgYXMgc3RhY2s6CisgICAgICAgICAgICAgICBzdGFjay5wdXNoKHNlbGYpCisgICAgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgICAgIyBUaGUgdmFsaWRhdGlvbiBjaGVjayBwYXNzZWQgYW5kIGRpZG4ndCByYWlzZSBhbiBleGNlcHRpb24KKyAgICAgICAgICAgICAgICMgQWNjb3JkaW5nbHksIHdlIHdhbnQgdG8ga2VlcCB0aGUgcmVzb3VyY2UsIGFuZCBwYXNzIGl0CisgICAgICAgICAgICAgICAjIGJhY2sgdG8gb3VyIGNhbGxlcgorICAgICAgICAgICAgICAgc3RhY2sucG9wX2FsbCgpCisKKyAgICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICAgICByZXNvdXJjZSA9IHNlbGYuYWNxdWlyZV9yZXNvdXJjZSgpCisgICAgICAgICAgIHdpdGggc2VsZi5fY2xlYW51cF9vbl9lcnJvcigpOgorICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuY2hlY2tfcmVzb3VyY2Vfb2socmVzb3VyY2UpOgorICAgICAgICAgICAgICAgICAgIG1zZyA9ICJGYWlsZWQgdmFsaWRhdGlvbiBmb3IgeyFyfSIKKyAgICAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IobXNnLmZvcm1hdChyZXNvdXJjZSkpCisgICAgICAgICAgIHJldHVybiByZXNvdXJjZQorCisgICAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICpleGNfZGV0YWlscyk6CisgICAgICAgICAgICMgV2UgZG9uJ3QgbmVlZCB0byBkdXBsaWNhdGUgYW55IG9mIG91ciByZXNvdXJjZSByZWxlYXNlIGxvZ2ljCisgICAgICAgICAgIHNlbGYucmVsZWFzZV9yZXNvdXJjZSgpCisKKworUmVwbGFjaW5nIGFueSB1c2Ugb2YgYGB0cnktZmluYWxseWBgIGFuZCBmbGFnIHZhcmlhYmxlcworXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitBIHBhdHRlcm4geW91IHdpbGwgc29tZXRpbWVzIHNlZSBpcyBhIGBgdHJ5LWZpbmFsbHlgYCBzdGF0ZW1lbnQgd2l0aCBhIGZsYWcKK3ZhcmlhYmxlIHRvIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IHRoZSBib2R5IG9mIHRoZSBgYGZpbmFsbHlgYCBjbGF1c2Ugc2hvdWxkCitiZSBleGVjdXRlZC4gSW4gaXRzIHNpbXBsZXN0IGZvcm0gKHRoYXQgY2FuJ3QgYWxyZWFkeSBiZSBoYW5kbGVkIGp1c3QgYnkKK3VzaW5nIGFuIGBgZXhjZXB0YGAgY2xhdXNlIGluc3RlYWQpLCBpdCBsb29rcyBzb21ldGhpbmcgbGlrZSB0aGlzOjoKKworICAgY2xlYW51cF9uZWVkZWQgPSBUcnVlCisgICB0cnk6CisgICAgICAgcmVzdWx0ID0gcGVyZm9ybV9vcGVyYXRpb24oKQorICAgICAgIGlmIHJlc3VsdDoKKyAgICAgICAgICAgY2xlYW51cF9uZWVkZWQgPSBGYWxzZQorICAgZmluYWxseToKKyAgICAgICBpZiBjbGVhbnVwX25lZWRlZDoKKyAgICAgICAgICAgY2xlYW51cF9yZXNvdXJjZXMoKQorCitBcyB3aXRoIGFueSBgYHRyeWBgIHN0YXRlbWVudCBiYXNlZCBjb2RlLCB0aGlzIGNhbiBjYXVzZSBwcm9ibGVtcyBmb3IKK2RldmVsb3BtZW50IGFuZCByZXZpZXcsIGJlY2F1c2UgdGhlIHNldHVwIGNvZGUgYW5kIHRoZSBjbGVhbnVwIGNvZGUgY2FuIGVuZAordXAgYmVpbmcgc2VwYXJhdGVkIGJ5IGFyYml0cmFyaWx5IGxvbmcgc2VjdGlvbnMgb2YgY29kZS4KKworOmNsYXNzOmBFeGl0U3RhY2tgIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGluc3RlYWQgcmVnaXN0ZXIgYSBjYWxsYmFjayBmb3IKK2V4ZWN1dGlvbiBhdCB0aGUgZW5kIG9mIGEgYGB3aXRoYGAgc3RhdGVtZW50LCBhbmQgdGhlbiBsYXRlciBkZWNpZGUgdG8gc2tpcAorZXhlY3V0aW5nIHRoYXQgY2FsbGJhY2s6OgorCisgICBmcm9tIGNvbnRleHRsaWIgaW1wb3J0IEV4aXRTdGFjaworCisgICB3aXRoIEV4aXRTdGFjaygpIGFzIHN0YWNrOgorICAgICAgIHN0YWNrLmNhbGxiYWNrKGNsZWFudXBfcmVzb3VyY2VzKQorICAgICAgIHJlc3VsdCA9IHBlcmZvcm1fb3BlcmF0aW9uKCkKKyAgICAgICBpZiByZXN1bHQ6CisgICAgICAgICAgIHN0YWNrLnBvcF9hbGwoKQorCitUaGlzIGFsbG93cyB0aGUgaW50ZW5kZWQgY2xlYW51cCB1cCBiZWhhdmlvdXIgdG8gYmUgbWFkZSBleHBsaWNpdCB1cCBmcm9udCwKK3JhdGhlciB0aGFuIHJlcXVpcmluZyBhIHNlcGFyYXRlIGZsYWcgdmFyaWFibGUuCisKK0lmIGEgcGFydGljdWxhciBhcHBsaWNhdGlvbiB1c2VzIHRoaXMgcGF0dGVybiBhIGxvdCwgaXQgY2FuIGJlIHNpbXBsaWZpZWQKK2V2ZW4gZnVydGhlciBieSBtZWFucyBvZiBhIHNtYWxsIGhlbHBlciBjbGFzczo6CisKKyAgIGZyb20gY29udGV4dGxpYiBpbXBvcnQgRXhpdFN0YWNrCisKKyAgIGNsYXNzIENhbGxiYWNrKEV4aXRTdGFjayk6CisgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNhbGxiYWNrLCAqYXJncywgKiprd2RzKToKKyAgICAgICAgICAgc3VwZXIoQ2FsbGJhY2ssIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgICAgc2VsZi5jYWxsYmFjayhjYWxsYmFjaywgKmFyZ3MsICoqa3dkcykKKworICAgICAgIGRlZiBjYW5jZWwoc2VsZik6CisgICAgICAgICAgIHNlbGYucG9wX2FsbCgpCisKKyAgIHdpdGggQ2FsbGJhY2soY2xlYW51cF9yZXNvdXJjZXMpIGFzIGNiOgorICAgICAgIHJlc3VsdCA9IHBlcmZvcm1fb3BlcmF0aW9uKCkKKyAgICAgICBpZiByZXN1bHQ6CisgICAgICAgICAgIGNiLmNhbmNlbCgpCisKK0lmIHRoZSByZXNvdXJjZSBjbGVhbnVwIGlzbid0IGFscmVhZHkgbmVhdGx5IGJ1bmRsZWQgaW50byBhIHN0YW5kYWxvbmUKK2Z1bmN0aW9uLCB0aGVuIGl0IGlzIHN0aWxsIHBvc3NpYmxlIHRvIHVzZSB0aGUgZGVjb3JhdG9yIGZvcm0gb2YKKzptZXRoOmBFeGl0U3RhY2suY2FsbGJhY2tgIHRvIGRlY2xhcmUgdGhlIHJlc291cmNlIGNsZWFudXAgaW4KK2FkdmFuY2U6OgorCisgICBmcm9tIGNvbnRleHRsaWIgaW1wb3J0IEV4aXRTdGFjaworCisgICB3aXRoIEV4aXRTdGFjaygpIGFzIHN0YWNrOgorICAgICAgIEBzdGFjay5jYWxsYmFjaworICAgICAgIGRlZiBjbGVhbnVwX3Jlc291cmNlcygpOgorICAgICAgICAgICAuLi4KKyAgICAgICByZXN1bHQgPSBwZXJmb3JtX29wZXJhdGlvbigpCisgICAgICAgaWYgcmVzdWx0OgorICAgICAgICAgICBzdGFjay5wb3BfYWxsKCkKKworRHVlIHRvIHRoZSB3YXkgdGhlIGRlY29yYXRvciBwcm90b2NvbCB3b3JrcywgYSBjYWxsYmFjayBmdW5jdGlvbgorZGVjbGFyZWQgdGhpcyB3YXkgY2Fubm90IHRha2UgYW55IHBhcmFtZXRlcnMuIEluc3RlYWQsIGFueSByZXNvdXJjZXMgdG8KK2JlIHJlbGVhc2VkIG11c3QgYmUgYWNjZXNzZWQgYXMgY2xvc3VyZSB2YXJpYWJsZXMKKworCitVc2luZyBhIGNvbnRleHQgbWFuYWdlciBhcyBhIGZ1bmN0aW9uIGRlY29yYXRvcgorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworOmNsYXNzOmBDb250ZXh0RGVjb3JhdG9yYCBtYWtlcyBpdCBwb3NzaWJsZSB0byB1c2UgYSBjb250ZXh0IG1hbmFnZXIgaW4KK2JvdGggYW4gb3JkaW5hcnkgYGB3aXRoYGAgc3RhdGVtZW50IGFuZCBhbHNvIGFzIGEgZnVuY3Rpb24gZGVjb3JhdG9yLgorCitGb3IgZXhhbXBsZSwgaXQgaXMgc29tZXRpbWVzIHVzZWZ1bCB0byB3cmFwIGZ1bmN0aW9ucyBvciBncm91cHMgb2Ygc3RhdGVtZW50cword2l0aCBhIGxvZ2dlciB0aGF0IGNhbiB0cmFjayB0aGUgdGltZSBvZiBlbnRyeSBhbmQgdGltZSBvZiBleGl0LiAgUmF0aGVyIHRoYW4KK3dyaXRpbmcgYm90aCBhIGZ1bmN0aW9uIGRlY29yYXRvciBhbmQgYSBjb250ZXh0IG1hbmFnZXIgZm9yIHRoZSB0YXNrLAoraW5oZXJpdGluZyBmcm9tIDpjbGFzczpgQ29udGV4dERlY29yYXRvcmAgcHJvdmlkZXMgYm90aCBjYXBhYmlsaXRpZXMgaW4gYQorc2luZ2xlIGRlZmluaXRpb246OgorCisgICAgZnJvbSBjb250ZXh0bGliIGltcG9ydCBDb250ZXh0RGVjb3JhdG9yCisgICAgaW1wb3J0IGxvZ2dpbmcKKworICAgIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2luZy5JTkZPKQorCisgICAgY2xhc3MgdHJhY2tfZW50cnlfYW5kX2V4aXQoQ29udGV4dERlY29yYXRvcik6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICAgICAgbG9nZ2luZy5pbmZvKCdFbnRlcmluZzoge30nLmZvcm1hdChuYW1lKSkKKworICAgICAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4YywgZXhjX3RiKToKKyAgICAgICAgICAgIGxvZ2dpbmcuaW5mbygnRXhpdGluZzoge30nLmZvcm1hdChuYW1lKSkKKworSW5zdGFuY2VzIG9mIHRoaXMgY2xhc3MgY2FuIGJlIHVzZWQgYXMgYm90aCBhIGNvbnRleHQgbWFuYWdlcjo6CisKKyAgICB3aXRoIHRyYWNrX2VudHJ5X2FuZF9leGl0KCd3aWRnZXQgbG9hZGVyJyk6CisgICAgICAgIHByaW50KCdTb21lIHRpbWUgY29uc3VtaW5nIGFjdGl2aXR5IGdvZXMgaGVyZScpCisgICAgICAgIGxvYWRfd2lkZ2V0KCkKKworQW5kIGFsc28gYXMgYSBmdW5jdGlvbiBkZWNvcmF0b3I6OgorCisgICAgQHRyYWNrX2VudHJ5X2FuZF9leGl0KCd3aWRnZXQgbG9hZGVyJykKKyAgICBkZWYgYWN0aXZpdHkoKToKKyAgICAgICAgcHJpbnQoJ1NvbWUgdGltZSBjb25zdW1pbmcgYWN0aXZpdHkgZ29lcyBoZXJlJykKKyAgICAgICAgbG9hZF93aWRnZXQoKQorCitOb3RlIHRoYXQgdGhlcmUgaXMgb25lIGFkZGl0aW9uYWwgbGltaXRhdGlvbiB3aGVuIHVzaW5nIGNvbnRleHQgbWFuYWdlcnMKK2FzIGZ1bmN0aW9uIGRlY29yYXRvcnM6IHRoZXJlJ3Mgbm8gd2F5IHRvIGFjY2VzcyB0aGUgcmV0dXJuIHZhbHVlIG9mCis6bWV0aDpgX19lbnRlcl9fYC4gSWYgdGhhdCB2YWx1ZSBpcyBuZWVkZWQsIHRoZW4gaXQgaXMgc3RpbGwgbmVjZXNzYXJ5IHRvIHVzZQorYW4gZXhwbGljaXQgYGB3aXRoYGAgc3RhdGVtZW50LgorCiAuLiBzZWVhbHNvOjoKIAogICAgOnBlcDpgMDM0M2AgLSBUaGUgIndpdGgiIHN0YXRlbWVudApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvY29weXJlZy5yc3QgYi9Eb2MvbGlicmFyeS9jb3B5cmVnLnJzdAppbmRleCBhMmQzMTZlLi40MTA2MWU1IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9jb3B5cmVnLnJzdAorKysgYi9Eb2MvbGlicmFyeS9jb3B5cmVnLnJzdApAQCAtMzIsNiArMzIsOCBAQAogICAgcmV0dXJuZWQgYnkgKmZ1bmN0aW9uKiBhdCBwaWNrbGluZyB0aW1lLiAgOmV4YzpgVHlwZUVycm9yYCB3aWxsIGJlIHJhaXNlZCBpZgogICAgKm9iamVjdCogaXMgYSBjbGFzcyBvciAqY29uc3RydWN0b3IqIGlzIG5vdCBjYWxsYWJsZS4KIAotICAgU2VlIHRoZSA6bW9kOmBwaWNrbGVgIG1vZHVsZSBmb3IgbW9yZSBkZXRhaWxzIG9uIHRoZSBpbnRlcmZhY2UgZXhwZWN0ZWQgb2YKLSAgICpmdW5jdGlvbiogYW5kICpjb25zdHJ1Y3RvciouCi0KKyAgIFNlZSB0aGUgOm1vZDpgcGlja2xlYCBtb2R1bGUgZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgaW50ZXJmYWNlCisgICBleHBlY3RlZCBvZiAqZnVuY3Rpb24qIGFuZCAqY29uc3RydWN0b3IqLiAgTm90ZSB0aGF0IHRoZQorICAgOmF0dHI6YH5waWNrbGUuUGlja2xlci5kaXNwYXRjaF90YWJsZWAgYXR0cmlidXRlIG9mIGEgcGlja2xlcgorICAgb2JqZWN0IG9yIHN1YmNsYXNzIG9mIDpjbGFzczpgcGlja2xlLlBpY2tsZXJgIGNhbiBhbHNvIGJlIHVzZWQgZm9yCisgICBkZWNsYXJpbmcgcmVkdWN0aW9uIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2NyeXB0LnJzdCBiL0RvYy9saWJyYXJ5L2NyeXB0LnJzdAppbmRleCAwYmU1NzFlLi4xYmEyZWQzIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9jcnlwdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvY3J5cHQucnN0CkBAIC0xNSw5ICsxNSw5IEBACiAKIFRoaXMgbW9kdWxlIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHRvIHRoZSA6bWFucGFnZTpgY3J5cHQoMylgIHJvdXRpbmUsIHdoaWNoIGlzCiBhIG9uZS13YXkgaGFzaCBmdW5jdGlvbiBiYXNlZCB1cG9uIGEgbW9kaWZpZWQgREVTIGFsZ29yaXRobTsgc2VlIHRoZSBVbml4IG1hbgotcGFnZSBmb3IgZnVydGhlciBkZXRhaWxzLiAgUG9zc2libGUgdXNlcyBpbmNsdWRlIGFsbG93aW5nIFB5dGhvbiBzY3JpcHRzIHRvCi1hY2NlcHQgdHlwZWQgcGFzc3dvcmRzIGZyb20gdGhlIHVzZXIsIG9yIGF0dGVtcHRpbmcgdG8gY3JhY2sgVW5peCBwYXNzd29yZHMgd2l0aAotYSBkaWN0aW9uYXJ5LgorcGFnZSBmb3IgZnVydGhlciBkZXRhaWxzLiAgUG9zc2libGUgdXNlcyBpbmNsdWRlIHN0b3JpbmcgaGFzaGVkIHBhc3N3b3Jkcworc28geW91IGNhbiBjaGVjayBwYXNzd29yZHMgd2l0aG91dCBzdG9yaW5nIHRoZSBhY3R1YWwgcGFzc3dvcmQsIG9yIGF0dGVtcHRpbmcKK3RvIGNyYWNrIFVuaXggcGFzc3dvcmRzIHdpdGggYSBkaWN0aW9uYXJ5LgogCiAuLiBpbmRleDo6IHNpbmdsZTogY3J5cHQoMykKIApAQCAtMjYsMTUgKzI2LDc0IEBACiBleHRlbnNpb25zIGF2YWlsYWJsZSBvbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiB3aWxsIGFsc28gIGJlIGF2YWlsYWJsZSBvbgogdGhpcyBtb2R1bGUuCiAKK0hhc2hpbmcgTWV0aG9kcworLS0tLS0tLS0tLS0tLS0tCiAKLS4uIGZ1bmN0aW9uOjogY3J5cHQod29yZCwgc2FsdCkKKy4uIHZlcnNpb25hZGRlZDo6IDMuMworCitUaGUgOm1vZDpgY3J5cHRgIG1vZHVsZSBkZWZpbmVzIHRoZSBsaXN0IG9mIGhhc2hpbmcgbWV0aG9kcyAobm90IGFsbCBtZXRob2RzCithcmUgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMpOgorCisuLiBkYXRhOjogTUVUSE9EX1NIQTUxMgorCisgICBBIE1vZHVsYXIgQ3J5cHQgRm9ybWF0IG1ldGhvZCB3aXRoIDE2IGNoYXJhY3RlciBzYWx0IGFuZCA4NiBjaGFyYWN0ZXIKKyAgIGhhc2guICBUaGlzIGlzIHRoZSBzdHJvbmdlc3QgbWV0aG9kLgorCisuLiBkYXRhOjogTUVUSE9EX1NIQTI1NgorCisgICBBbm90aGVyIE1vZHVsYXIgQ3J5cHQgRm9ybWF0IG1ldGhvZCB3aXRoIDE2IGNoYXJhY3RlciBzYWx0IGFuZCA0MworICAgY2hhcmFjdGVyIGhhc2guCisKKy4uIGRhdGE6OiBNRVRIT0RfTUQ1CisKKyAgIEFub3RoZXIgTW9kdWxhciBDcnlwdCBGb3JtYXQgbWV0aG9kIHdpdGggOCBjaGFyYWN0ZXIgc2FsdCBhbmQgMjIKKyAgIGNoYXJhY3RlciBoYXNoLgorCisuLiBkYXRhOjogTUVUSE9EX0NSWVBUCisKKyAgIFRoZSB0cmFkaXRpb25hbCBtZXRob2Qgd2l0aCBhIDIgY2hhcmFjdGVyIHNhbHQgYW5kIDEzIGNoYXJhY3RlcnMgb2YKKyAgIGhhc2guICBUaGlzIGlzIHRoZSB3ZWFrZXN0IG1ldGhvZC4KKworCitNb2R1bGUgQXR0cmlidXRlcworLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGF0dHJpYnV0ZTo6IG1ldGhvZHMKKworICAgQSBsaXN0IG9mIGF2YWlsYWJsZSBwYXNzd29yZCBoYXNoaW5nIGFsZ29yaXRobXMsIGFzCisgICBgYGNyeXB0Lk1FVEhPRF8qYGAgb2JqZWN0cy4gIFRoaXMgbGlzdCBpcyBzb3J0ZWQgZnJvbSBzdHJvbmdlc3QgdG8KKyAgIHdlYWtlc3QsIGFuZCBpcyBndWFyYW50ZWVkIHRvIGhhdmUgYXQgbGVhc3QgYGBjcnlwdC5NRVRIT0RfQ1JZUFRgYC4KKworCitNb2R1bGUgRnVuY3Rpb25zCistLS0tLS0tLS0tLS0tLS0tCisKK1RoZSA6bW9kOmBjcnlwdGAgbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM6CisKKy4uIGZ1bmN0aW9uOjogY3J5cHQod29yZCwgc2FsdD1Ob25lKQogCiAgICAqd29yZCogd2lsbCB1c3VhbGx5IGJlIGEgdXNlcidzIHBhc3N3b3JkIGFzIHR5cGVkIGF0IGEgcHJvbXB0IG9yICBpbiBhIGdyYXBoaWNhbAotICAgaW50ZXJmYWNlLiAgKnNhbHQqIGlzIHVzdWFsbHkgYSByYW5kb20gdHdvLWNoYXJhY3RlciBzdHJpbmcgd2hpY2ggd2lsbCBiZSB1c2VkCi0gICB0byBwZXJ0dXJiIHRoZSBERVMgYWxnb3JpdGhtIGluIG9uZSBvZiA0MDk2IHdheXMuICBUaGUgY2hhcmFjdGVycyBpbiAqc2FsdCogbXVzdAotICAgYmUgaW4gdGhlIHNldCBgYFsuL2EtekEtWjAtOV1gYC4gIFJldHVybnMgdGhlIGhhc2hlZCBwYXNzd29yZCBhcyBhIHN0cmluZywgd2hpY2gKLSAgIHdpbGwgYmUgY29tcG9zZWQgb2YgY2hhcmFjdGVycyBmcm9tIHRoZSBzYW1lIGFscGhhYmV0IGFzIHRoZSBzYWx0ICh0aGUgZmlyc3QgdHdvCi0gICBjaGFyYWN0ZXJzIHJlcHJlc2VudCB0aGUgc2FsdCBpdHNlbGYpLgorICAgaW50ZXJmYWNlLiAgVGhlIG9wdGlvbmFsICpzYWx0KiBpcyBlaXRoZXIgYSBzdHJpbmcgYXMgcmV0dXJuZWQgZnJvbQorICAgOmZ1bmM6YG1rc2FsdGAsIG9uZSBvZiB0aGUgYGBjcnlwdC5NRVRIT0RfKmBgIHZhbHVlcyAodGhvdWdoIG5vdCBhbGwKKyAgIG1heSBiZSBhdmFpbGFibGUgb24gYWxsIHBsYXRmb3JtcyksIG9yIGEgZnVsbCBlbmNyeXB0ZWQgcGFzc3dvcmQKKyAgIGluY2x1ZGluZyBzYWx0LCBhcyByZXR1cm5lZCBieSB0aGlzIGZ1bmN0aW9uLiAgSWYgKnNhbHQqIGlzIG5vdAorICAgcHJvdmlkZWQsIHRoZSBzdHJvbmdlc3QgbWV0aG9kIHdpbGwgYmUgdXNlZCAoYXMgcmV0dXJuZWQgYnkKKyAgIDpmdW5jOmBtZXRob2RzYC4KKworICAgQ2hlY2tpbmcgYSBwYXNzd29yZCBpcyB1c3VhbGx5IGRvbmUgYnkgcGFzc2luZyB0aGUgcGxhaW4tdGV4dCBwYXNzd29yZAorICAgYXMgKndvcmQqIGFuZCB0aGUgZnVsbCByZXN1bHRzIG9mIGEgcHJldmlvdXMgOmZ1bmM6YGNyeXB0YCBjYWxsLAorICAgd2hpY2ggc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSByZXN1bHRzIG9mIHRoaXMgY2FsbC4KKworICAgKnNhbHQqIChlaXRoZXIgYSByYW5kb20gMiBvciAxNiBjaGFyYWN0ZXIgc3RyaW5nLCBwb3NzaWJseSBwcmVmaXhlZCB3aXRoCisgICBgYCRkaWdpdCRgYCB0byBpbmRpY2F0ZSB0aGUgbWV0aG9kKSB3aGljaCB3aWxsIGJlIHVzZWQgdG8gcGVydHVyYiB0aGUKKyAgIGVuY3J5cHRpb24gYWxnb3JpdGhtLiAgVGhlIGNoYXJhY3RlcnMgaW4gKnNhbHQqIG11c3QgYmUgaW4gdGhlIHNldAorICAgYGBbLi9hLXpBLVowLTldYGAsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBNb2R1bGFyIENyeXB0IEZvcm1hdCB3aGljaAorICAgcHJlZml4ZXMgYSBgYCRkaWdpdCRgYC4KKworICAgUmV0dXJucyB0aGUgaGFzaGVkIHBhc3N3b3JkIGFzIGEgc3RyaW5nLCB3aGljaCB3aWxsIGJlIGNvbXBvc2VkIG9mCisgICBjaGFyYWN0ZXJzIGZyb20gdGhlIHNhbWUgYWxwaGFiZXQgYXMgdGhlIHNhbHQuCiAKICAgIC4uIGluZGV4Ojogc2luZ2xlOiBjcnlwdCgzKQogCkBAIC00MiwxOCArMTAxLDQ4IEBACiAgICBkaWZmZXJlbnQgc2l6ZXMgaW4gdGhlICpzYWx0KiwgaXQgaXMgcmVjb21tZW5kZWQgdG8gdXNlICB0aGUgZnVsbCBjcnlwdGVkCiAgICBwYXNzd29yZCBhcyBzYWx0IHdoZW4gY2hlY2tpbmcgZm9yIGEgcGFzc3dvcmQuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBY2NlcHQgYGBjcnlwdC5NRVRIT0RfKmBgIHZhbHVlcyBpbiBhZGRpdGlvbiB0byBzdHJpbmdzIGZvciAqc2FsdCouCisKKworLi4gZnVuY3Rpb246OiBta3NhbHQobWV0aG9kPU5vbmUpCisKKyAgIFJldHVybiBhIHJhbmRvbWx5IGdlbmVyYXRlZCBzYWx0IG9mIHRoZSBzcGVjaWZpZWQgbWV0aG9kLiAgSWYgbm8KKyAgICptZXRob2QqIGlzIGdpdmVuLCB0aGUgc3Ryb25nZXN0IG1ldGhvZCBhdmFpbGFibGUgYXMgcmV0dXJuZWQgYnkKKyAgIDpmdW5jOmBtZXRob2RzYCBpcyB1c2VkLgorCisgICBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgc3RyaW5nIGVpdGhlciBvZiAyIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGZvcgorICAgYGBjcnlwdC5NRVRIT0RfQ1JZUFRgYCwgb3IgMTkgY2hhcmFjdGVycyBzdGFydGluZyB3aXRoIGBgJGRpZ2l0JGBgIGFuZAorICAgMTYgcmFuZG9tIGNoYXJhY3RlcnMgZnJvbSB0aGUgc2V0IGBgWy4vYS16QS1aMC05XWBgLCBzdWl0YWJsZSBmb3IKKyAgIHBhc3NpbmcgYXMgdGhlICpzYWx0KiBhcmd1bWVudCB0byA6ZnVuYzpgY3J5cHRgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworRXhhbXBsZXMKKy0tLS0tLS0tCisKIEEgc2ltcGxlIGV4YW1wbGUgaWxsdXN0cmF0aW5nIHR5cGljYWwgdXNlOjoKIAotICAgaW1wb3J0IGNyeXB0LCBnZXRwYXNzLCBwd2QKKyAgIGltcG9ydCBwd2QKKyAgIGltcG9ydCBjcnlwdAorICAgaW1wb3J0IGdldHBhc3MKIAogICAgZGVmIGxvZ2luKCk6Ci0gICAgICAgdXNlcm5hbWUgPSBpbnB1dCgnUHl0aG9uIGxvZ2luOicpCisgICAgICAgdXNlcm5hbWUgPSBpbnB1dCgnUHl0aG9uIGxvZ2luOiAnKQogICAgICAgIGNyeXB0ZWRwYXNzd2QgPSBwd2QuZ2V0cHduYW0odXNlcm5hbWUpWzFdCiAgICAgICAgaWYgY3J5cHRlZHBhc3N3ZDoKICAgICAgICAgICAgaWYgY3J5cHRlZHBhc3N3ZCA9PSAneCcgb3IgY3J5cHRlZHBhc3N3ZCA9PSAnKic6Ci0gICAgICAgICAgICAgICByYWlzZSAiU29ycnksIGN1cnJlbnRseSBubyBzdXBwb3J0IGZvciBzaGFkb3cgcGFzc3dvcmRzIgorICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbm8gc3VwcG9ydCBmb3Igc2hhZG93IHBhc3N3b3JkcycpCiAgICAgICAgICAgIGNsZWFydGV4dCA9IGdldHBhc3MuZ2V0cGFzcygpCiAgICAgICAgICAgIHJldHVybiBjcnlwdC5jcnlwdChjbGVhcnRleHQsIGNyeXB0ZWRwYXNzd2QpID09IGNyeXB0ZWRwYXNzd2QKICAgICAgICBlbHNlOgotICAgICAgICAgICByZXR1cm4gMQorICAgICAgICAgICByZXR1cm4gVHJ1ZQogCitUbyBnZW5lcmF0ZSBhIGhhc2ggb2YgYSBwYXNzd29yZCB1c2luZyB0aGUgc3Ryb25nZXN0IGF2YWlsYWJsZSBtZXRob2QgYW5kCitjaGVjayBpdCBhZ2FpbnN0IHRoZSBvcmlnaW5hbDo6CisKKyAgIGltcG9ydCBjcnlwdAorCisgICBoYXNoZWQgPSBjcnlwdC5jcnlwdChwbGFpbnRleHQpCisgICBpZiBoYXNoZWQgIT0gY3J5cHQuY3J5cHQocGxhaW50ZXh0LCBoYXNoZWQpOgorICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaGFzaGVkIHZlcnNpb24gZG9lc24ndCB2YWxpZGF0ZSBhZ2FpbnN0IG9yaWdpbmFsIikKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2Nzdi5yc3QgYi9Eb2MvbGlicmFyeS9jc3YucnN0CmluZGV4IGVkYmU3MjYuLmVjMGRmY2MgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2Nzdi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvY3N2LnJzdApAQCAtMTEsMTUgKzExLDE1IEBACiAgICBwYWlyOiBkYXRhOyB0YWJ1bGFyCiAKIFRoZSBzby1jYWxsZWQgQ1NWIChDb21tYSBTZXBhcmF0ZWQgVmFsdWVzKSBmb3JtYXQgaXMgdGhlIG1vc3QgY29tbW9uIGltcG9ydCBhbmQKLWV4cG9ydCBmb3JtYXQgZm9yIHNwcmVhZHNoZWV0cyBhbmQgZGF0YWJhc2VzLiAgVGhlcmUgaXMgbm8gIkNTViBzdGFuZGFyZCIsIHNvCi10aGUgZm9ybWF0IGlzIG9wZXJhdGlvbmFsbHkgZGVmaW5lZCBieSB0aGUgbWFueSBhcHBsaWNhdGlvbnMgd2hpY2ggcmVhZCBhbmQKLXdyaXRlIGl0LiAgVGhlIGxhY2sgb2YgYSBzdGFuZGFyZCBtZWFucyB0aGF0IHN1YnRsZSBkaWZmZXJlbmNlcyBvZnRlbiBleGlzdCBpbgotdGhlIGRhdGEgcHJvZHVjZWQgYW5kIGNvbnN1bWVkIGJ5IGRpZmZlcmVudCBhcHBsaWNhdGlvbnMuICBUaGVzZSBkaWZmZXJlbmNlcyBjYW4KLW1ha2UgaXQgYW5ub3lpbmcgdG8gcHJvY2VzcyBDU1YgZmlsZXMgZnJvbSBtdWx0aXBsZSBzb3VyY2VzLiAgU3RpbGwsIHdoaWxlIHRoZQotZGVsaW1pdGVycyBhbmQgcXVvdGluZyBjaGFyYWN0ZXJzIHZhcnksIHRoZSBvdmVyYWxsIGZvcm1hdCBpcyBzaW1pbGFyIGVub3VnaAotdGhhdCBpdCBpcyBwb3NzaWJsZSB0byB3cml0ZSBhIHNpbmdsZSBtb2R1bGUgd2hpY2ggY2FuIGVmZmljaWVudGx5IG1hbmlwdWxhdGUKLXN1Y2ggZGF0YSwgaGlkaW5nIHRoZSBkZXRhaWxzIG9mIHJlYWRpbmcgYW5kIHdyaXRpbmcgdGhlIGRhdGEgZnJvbSB0aGUKLXByb2dyYW1tZXIuCitleHBvcnQgZm9ybWF0IGZvciBzcHJlYWRzaGVldHMgYW5kIGRhdGFiYXNlcy4gIENTViBmb3JtYXQgd2FzIHVzZWQgZm9yIG1hbnkKK3llYXJzIHByaW9yIHRvIGF0dGVtcHRzIHRvIGRlc2NyaWJlIHRoZSBmb3JtYXQgaW4gYSBzdGFuZGFyZGl6ZWQgd2F5IGluCis6cmZjOmA0MTgwYC4gIFRoZSBsYWNrIG9mIGEgd2VsbC1kZWZpbmVkIHN0YW5kYXJkIG1lYW5zIHRoYXQgc3VidGxlIGRpZmZlcmVuY2VzCitvZnRlbiBleGlzdCBpbiB0aGUgZGF0YSBwcm9kdWNlZCBhbmQgY29uc3VtZWQgYnkgZGlmZmVyZW50IGFwcGxpY2F0aW9ucy4gIFRoZXNlCitkaWZmZXJlbmNlcyBjYW4gbWFrZSBpdCBhbm5veWluZyB0byBwcm9jZXNzIENTViBmaWxlcyBmcm9tIG11bHRpcGxlIHNvdXJjZXMuCitTdGlsbCwgd2hpbGUgdGhlIGRlbGltaXRlcnMgYW5kIHF1b3RpbmcgY2hhcmFjdGVycyB2YXJ5LCB0aGUgb3ZlcmFsbCBmb3JtYXQgaXMKK3NpbWlsYXIgZW5vdWdoIHRoYXQgaXQgaXMgcG9zc2libGUgdG8gd3JpdGUgYSBzaW5nbGUgbW9kdWxlIHdoaWNoIGNhbgorZWZmaWNpZW50bHkgbWFuaXB1bGF0ZSBzdWNoIGRhdGEsIGhpZGluZyB0aGUgZGV0YWlscyBvZiByZWFkaW5nIGFuZCB3cml0aW5nIHRoZQorZGF0YSBmcm9tIHRoZSBwcm9ncmFtbWVyLgogCiBUaGUgOm1vZDpgY3N2YCBtb2R1bGUgaW1wbGVtZW50cyBjbGFzc2VzIHRvIHJlYWQgYW5kIHdyaXRlIHRhYnVsYXIgZGF0YSBpbiBDU1YKIGZvcm1hdC4gIEl0IGFsbG93cyBwcm9ncmFtbWVycyB0byBzYXksICJ3cml0ZSB0aGlzIGRhdGEgaW4gdGhlIGZvcm1hdCBwcmVmZXJyZWQKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2N0eXBlcy5yc3QgYi9Eb2MvbGlicmFyeS9jdHlwZXMucnN0CmluZGV4IGRmMzljMjguLjhhMmIxOTYgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2N0eXBlcy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvY3R5cGVzLnJzdApAQCAtMzksOSArMzksMTQgQEAKIGNvbnZlbnRpb24sIHdoaWxlICp3aW5kbGwqIGxpYnJhcmllcyBjYWxsIGZ1bmN0aW9ucyB1c2luZyB0aGUgYGBzdGRjYWxsYGAKIGNhbGxpbmcgY29udmVudGlvbi4gKm9sZWRsbCogYWxzbyB1c2VzIHRoZSBgYHN0ZGNhbGxgYCBjYWxsaW5nIGNvbnZlbnRpb24sIGFuZAogYXNzdW1lcyB0aGUgZnVuY3Rpb25zIHJldHVybiBhIFdpbmRvd3MgOmM6dHlwZTpgSFJFU1VMVGAgZXJyb3IgY29kZS4gVGhlIGVycm9yCi1jb2RlIGlzIHVzZWQgdG8gYXV0b21hdGljYWxseSByYWlzZSBhIDpjbGFzczpgV2luZG93c0Vycm9yYCBleGNlcHRpb24gd2hlbiB0aGUKK2NvZGUgaXMgdXNlZCB0byBhdXRvbWF0aWNhbGx5IHJhaXNlIGEgOmNsYXNzOmBPU0Vycm9yYCBleGNlcHRpb24gd2hlbiB0aGUKIGZ1bmN0aW9uIGNhbGwgZmFpbHMuCiAKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBXaW5kb3dzIGVycm9ycyB1c2VkIHRvIHJhaXNlIDpleGM6YFdpbmRvd3NFcnJvcmAsIHdoaWNoIGlzIG5vdyBhbiBhbGlhcworICAgb2YgOmV4YzpgT1NFcnJvcmAuCisKKwogSGVyZSBhcmUgc29tZSBleGFtcGxlcyBmb3IgV2luZG93cy4gTm90ZSB0aGF0IGBgbXN2Y3J0YGAgaXMgdGhlIE1TIHN0YW5kYXJkIEMKIGxpYnJhcnkgY29udGFpbmluZyBtb3N0IHN0YW5kYXJkIEMgZnVuY3Rpb25zLCBhbmQgdXNlcyB0aGUgY2RlY2wgY2FsbGluZwogY29udmVudGlvbjo6CkBAIC0xODksNyArMTk0LDcgQEAKICAgID4+PiB3aW5kbGwua2VybmVsMzIuR2V0TW9kdWxlSGFuZGxlQSgzMikgIyBkb2N0ZXN0OiArV0lORE9XUwogICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICBGaWxlICI8c3RkaW4+IiwgbGluZSAxLCBpbiA/Ci0gICBXaW5kb3dzRXJyb3I6IGV4Y2VwdGlvbjogYWNjZXNzIHZpb2xhdGlvbiByZWFkaW5nIDB4MDAwMDAwMjAKKyAgIE9TRXJyb3I6IGV4Y2VwdGlvbjogYWNjZXNzIHZpb2xhdGlvbiByZWFkaW5nIDB4MDAwMDAwMjAKICAgID4+PgogCiBUaGVyZSBhcmUsIGhvd2V2ZXIsIGVub3VnaCB3YXlzIHRvIGNyYXNoIFB5dGhvbiB3aXRoIDptb2Q6YGN0eXBlc2AsIHNvIHlvdQpAQCAtNDkxLDcgKzQ5Niw3IEBACiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDEsIGluID8KICAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMywgaW4gVmFsaWRIYW5kbGUKLSAgIFdpbmRvd3NFcnJvcjogW0Vycm5vIDEyNl0gVGhlIHNwZWNpZmllZCBtb2R1bGUgY291bGQgbm90IGJlIGZvdW5kLgorICAgT1NFcnJvcjogW0Vycm5vIDEyNl0gVGhlIHNwZWNpZmllZCBtb2R1bGUgY291bGQgbm90IGJlIGZvdW5kLgogICAgPj4+CiAKIGBgV2luRXJyb3JgYCBpcyBhIGZ1bmN0aW9uIHdoaWNoIHdpbGwgY2FsbCBXaW5kb3dzIGBgRm9ybWF0TWVzc2FnZSgpYGAgYXBpIHRvCkBAIC05MjEsMjEgKzkyNiwyMSBAQAogOm1vZDpgY3R5cGVzYCBhbGxvd3MgdG8gY3JlYXRlIEMgY2FsbGFibGUgZnVuY3Rpb24gcG9pbnRlcnMgZnJvbSBQeXRob24gY2FsbGFibGVzLgogVGhlc2UgYXJlIHNvbWV0aW1lcyBjYWxsZWQgKmNhbGxiYWNrIGZ1bmN0aW9ucyouCiAKLUZpcnN0LCB5b3UgbXVzdCBjcmVhdGUgYSBjbGFzcyBmb3IgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLCB0aGUgY2xhc3Mga25vd3MgdGhlCitGaXJzdCwgeW91IG11c3QgY3JlYXRlIGEgY2xhc3MgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4gVGhlIGNsYXNzIGtub3dzIHRoZQogY2FsbGluZyBjb252ZW50aW9uLCB0aGUgcmV0dXJuIHR5cGUsIGFuZCB0aGUgbnVtYmVyIGFuZCB0eXBlcyBvZiBhcmd1bWVudHMgdGhpcwogZnVuY3Rpb24gd2lsbCByZWNlaXZlLgogCi1UaGUgQ0ZVTkNUWVBFIGZhY3RvcnkgZnVuY3Rpb24gY3JlYXRlcyB0eXBlcyBmb3IgY2FsbGJhY2sgZnVuY3Rpb25zIHVzaW5nIHRoZQotbm9ybWFsIGNkZWNsIGNhbGxpbmcgY29udmVudGlvbiwgYW5kLCBvbiBXaW5kb3dzLCB0aGUgV0lORlVOQ1RZUEUgZmFjdG9yeQotZnVuY3Rpb24gY3JlYXRlcyB0eXBlcyBmb3IgY2FsbGJhY2sgZnVuY3Rpb25zIHVzaW5nIHRoZSBzdGRjYWxsIGNhbGxpbmcKLWNvbnZlbnRpb24uCitUaGUgOmZ1bmM6YENGVU5DVFlQRWAgZmFjdG9yeSBmdW5jdGlvbiBjcmVhdGVzIHR5cGVzIGZvciBjYWxsYmFjayBmdW5jdGlvbnMKK3VzaW5nIHRoZSBgYGNkZWNsYGAgY2FsbGluZyBjb252ZW50aW9uLiBPbiBXaW5kb3dzLCB0aGUgOmZ1bmM6YFdJTkZVTkNUWVBFYAorZmFjdG9yeSBmdW5jdGlvbiBjcmVhdGVzIHR5cGVzIGZvciBjYWxsYmFjayBmdW5jdGlvbnMgdXNpbmcgdGhlIGBgc3RkY2FsbGBgCitjYWxsaW5nIGNvbnZlbnRpb24uCiAKIEJvdGggb2YgdGhlc2UgZmFjdG9yeSBmdW5jdGlvbnMgYXJlIGNhbGxlZCB3aXRoIHRoZSByZXN1bHQgdHlwZSBhcyBmaXJzdAogYXJndW1lbnQsIGFuZCB0aGUgY2FsbGJhY2sgZnVuY3Rpb25zIGV4cGVjdGVkIGFyZ3VtZW50IHR5cGVzIGFzIHRoZSByZW1haW5pbmcKIGFyZ3VtZW50cy4KIAogSSB3aWxsIHByZXNlbnQgYW4gZXhhbXBsZSBoZXJlIHdoaWNoIHVzZXMgdGhlIHN0YW5kYXJkIEMgbGlicmFyeSdzCi06YzpmdW5jOmBxc29ydGAgZnVuY3Rpb24sIHRoaXMgaXMgdXNlZCB0byBzb3J0IGl0ZW1zIHdpdGggdGhlIGhlbHAgb2YgYSBjYWxsYmFjaworOmM6ZnVuYzpgcXNvcnRgIGZ1bmN0aW9uLCB0aGF0IGlzIHVzZWQgdG8gc29ydCBpdGVtcyB3aXRoIHRoZSBoZWxwIG9mIGEgY2FsbGJhY2sKIGZ1bmN0aW9uLiAgOmM6ZnVuYzpgcXNvcnRgIHdpbGwgYmUgdXNlZCB0byBzb3J0IGFuIGFycmF5IG9mIGludGVnZXJzOjoKIAogICAgPj4+IEludEFycmF5NSA9IGNfaW50ICogNQpAQCAtOTQ4LDcgKzk1Myw3IEBACiBpdGVtcyBpbiB0aGUgZGF0YSBhcnJheSwgdGhlIHNpemUgb2Ygb25lIGl0ZW0sIGFuZCBhIHBvaW50ZXIgdG8gdGhlIGNvbXBhcmlzb24KIGZ1bmN0aW9uLCB0aGUgY2FsbGJhY2suIFRoZSBjYWxsYmFjayB3aWxsIHRoZW4gYmUgY2FsbGVkIHdpdGggdHdvIHBvaW50ZXJzIHRvCiBpdGVtcywgYW5kIGl0IG11c3QgcmV0dXJuIGEgbmVnYXRpdmUgaW50ZWdlciBpZiB0aGUgZmlyc3QgaXRlbSBpcyBzbWFsbGVyIHRoYW4KLXRoZSBzZWNvbmQsIGEgemVybyBpZiB0aGV5IGFyZSBlcXVhbCwgYW5kIGEgcG9zaXRpdmUgaW50ZWdlciBlbHNlLgordGhlIHNlY29uZCwgYSB6ZXJvIGlmIHRoZXkgYXJlIGVxdWFsLCBhbmQgYSBwb3NpdGl2ZSBpbnRlZ2VyIG90aGVyd2lzZS4KIAogU28gb3VyIGNhbGxiYWNrIGZ1bmN0aW9uIHJlY2VpdmVzIHBvaW50ZXJzIHRvIGludGVnZXJzLCBhbmQgbXVzdCByZXR1cm4gYW4KIGludGVnZXIuIEZpcnN0IHdlIGNyZWF0ZSB0aGUgYGB0eXBlYGAgZm9yIHRoZSBjYWxsYmFjayBmdW5jdGlvbjo6CkBAIC05NTYsMzYgKzk2MSw4IEBACiAgICA+Pj4gQ01QRlVOQyA9IENGVU5DVFlQRShjX2ludCwgUE9JTlRFUihjX2ludCksIFBPSU5URVIoY19pbnQpKQogICAgPj4+CiAKLUZvciB0aGUgZmlyc3QgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLCB3ZSBzaW1wbHkgcHJpbnQgdGhlCi1hcmd1bWVudHMgd2UgZ2V0LCBhbmQgcmV0dXJuIDAgKGluY3JlbWVudGFsIGRldmVsb3BtZW50IDstKTo6Ci0KLSAgID4+PiBkZWYgcHlfY21wX2Z1bmMoYSwgYik6Ci0gICAuLi4gICAgIHByaW50KCJweV9jbXBfZnVuYyIsIGEsIGIpCi0gICAuLi4gICAgIHJldHVybiAwCi0gICAuLi4KLSAgID4+PgotCi1DcmVhdGUgdGhlIEMgY2FsbGFibGUgY2FsbGJhY2s6OgotCi0gICA+Pj4gY21wX2Z1bmMgPSBDTVBGVU5DKHB5X2NtcF9mdW5jKQotICAgPj4+Ci0KLUFuZCB3ZSdyZSByZWFkeSB0byBnbzo6Ci0KLSAgID4+PiBxc29ydChpYSwgbGVuKGlhKSwgc2l6ZW9mKGNfaW50KSwgY21wX2Z1bmMpICMgZG9jdGVzdDogK1dJTkRPV1MKLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgIHB5X2NtcF9mdW5jIDxjdHlwZXMuTFBfY19sb25nIG9iamVjdCBhdCAweDAwLi4uPiA8Y3R5cGVzLkxQX2NfbG9uZyBvYmplY3QgYXQgMHgwMC4uLj4KLSAgID4+PgotCi1XZSBrbm93IGhvdyB0byBhY2Nlc3MgdGhlIGNvbnRlbnRzIG9mIGEgcG9pbnRlciwgc28gbGV0cyByZWRlZmluZSBvdXIgY2FsbGJhY2s6OgorVG8gZ2V0IHN0YXJ0ZWQsIGhlcmUgaXMgYSBzaW1wbGUgY2FsbGJhY2sgdGhhdCBzaG93cyB0aGUgdmFsdWVzIGl0IGdldHMKK3Bhc3NlZDo6CiAKICAgID4+PiBkZWYgcHlfY21wX2Z1bmMoYSwgYik6CiAgICAuLi4gICAgIHByaW50KCJweV9jbXBfZnVuYyIsIGFbMF0sIGJbMF0pCkBAIC05OTQsMjMgKzk3MSw3IEBACiAgICA+Pj4gY21wX2Z1bmMgPSBDTVBGVU5DKHB5X2NtcF9mdW5jKQogICAgPj4+CiAKLUhlcmUgaXMgd2hhdCB3ZSBnZXQgb24gV2luZG93czo6Ci0KLSAgID4+PiBxc29ydChpYSwgbGVuKGlhKSwgc2l6ZW9mKGNfaW50KSwgY21wX2Z1bmMpICMgZG9jdGVzdDogK1dJTkRPV1MKLSAgIHB5X2NtcF9mdW5jIDcgMQotICAgcHlfY21wX2Z1bmMgMzMgMQotICAgcHlfY21wX2Z1bmMgOTkgMQotICAgcHlfY21wX2Z1bmMgNSAxCi0gICBweV9jbXBfZnVuYyA3IDUKLSAgIHB5X2NtcF9mdW5jIDMzIDUKLSAgIHB5X2NtcF9mdW5jIDk5IDUKLSAgIHB5X2NtcF9mdW5jIDcgOTkKLSAgIHB5X2NtcF9mdW5jIDMzIDk5Ci0gICBweV9jbXBfZnVuYyA3IDMzCi0gICA+Pj4KLQotSXQgaXMgZnVubnkgdG8gc2VlIHRoYXQgb24gbGludXggdGhlIHNvcnQgZnVuY3Rpb24gc2VlbXMgdG8gd29yayBtdWNoIG1vcmUKLWVmZmljaWVudGx5LCBpdCBpcyBkb2luZyBsZXNzIGNvbXBhcmlzb25zOjoKK1RoZSByZXN1bHQ6OgogCiAgICA+Pj4gcXNvcnQoaWEsIGxlbihpYSksIHNpemVvZihjX2ludCksIGNtcF9mdW5jKSAjIGRvY3Rlc3Q6ICtMSU5VWAogICAgcHlfY21wX2Z1bmMgNSAxCkBAIC0xMDIwLDMyICs5ODEsMTMgQEAKICAgIHB5X2NtcF9mdW5jIDEgNwogICAgPj4+CiAKLUFoLCB3ZSdyZSBuZWFybHkgZG9uZSEgVGhlIGxhc3Qgc3RlcCBpcyB0byBhY3R1YWxseSBjb21wYXJlIHRoZSB0d28gaXRlbXMgYW5kCi1yZXR1cm4gYSB1c2VmdWwgcmVzdWx0OjoKK05vdyB3ZSBjYW4gYWN0dWFsbHkgY29tcGFyZSB0aGUgdHdvIGl0ZW1zIGFuZCByZXR1cm4gYSB1c2VmdWwgcmVzdWx0OjoKIAogICAgPj4+IGRlZiBweV9jbXBfZnVuYyhhLCBiKToKICAgIC4uLiAgICAgcHJpbnQoInB5X2NtcF9mdW5jIiwgYVswXSwgYlswXSkKICAgIC4uLiAgICAgcmV0dXJuIGFbMF0gLSBiWzBdCiAgICAuLi4KICAgID4+PgotCi1GaW5hbCBydW4gb24gV2luZG93czo6Ci0KLSAgID4+PiBxc29ydChpYSwgbGVuKGlhKSwgc2l6ZW9mKGNfaW50KSwgQ01QRlVOQyhweV9jbXBfZnVuYykpICMgZG9jdGVzdDogK1dJTkRPV1MKLSAgIHB5X2NtcF9mdW5jIDMzIDcKLSAgIHB5X2NtcF9mdW5jIDk5IDMzCi0gICBweV9jbXBfZnVuYyA1IDk5Ci0gICBweV9jbXBfZnVuYyAxIDk5Ci0gICBweV9jbXBfZnVuYyAzMyA3Ci0gICBweV9jbXBfZnVuYyAxIDMzCi0gICBweV9jbXBfZnVuYyA1IDMzCi0gICBweV9jbXBfZnVuYyA1IDcKLSAgIHB5X2NtcF9mdW5jIDEgNwotICAgcHlfY21wX2Z1bmMgNSAxCi0gICA+Pj4KLQotYW5kIG9uIExpbnV4OjoKLQogICAgPj4+IHFzb3J0KGlhLCBsZW4oaWEpLCBzaXplb2YoY19pbnQpLCBDTVBGVU5DKHB5X2NtcF9mdW5jKSkgIyBkb2N0ZXN0OiArTElOVVgKICAgIHB5X2NtcF9mdW5jIDUgMQogICAgcHlfY21wX2Z1bmMgMzMgOTkKQEAgLTEwNTQsOSArOTk2LDYgQEAKICAgIHB5X2NtcF9mdW5jIDUgNwogICAgPj4+CiAKLUl0IGlzIHF1aXRlIGludGVyZXN0aW5nIHRvIHNlZSB0aGF0IHRoZSBXaW5kb3dzIDpmdW5jOmBxc29ydGAgZnVuY3Rpb24gbmVlZHMKLW1vcmUgY29tcGFyaXNvbnMgdGhhbiB0aGUgbGludXggdmVyc2lvbiEKLQogQXMgd2UgY2FuIGVhc2lseSBjaGVjaywgb3VyIGFycmF5IGlzIHNvcnRlZCBub3c6OgogCiAgICA+Pj4gZm9yIGkgaW4gaWE6IHByaW50KGksIGVuZD0iICIpCkBAIC0xMDY2LDkgKzEwMDUsOSBAQAogCiAqKkltcG9ydGFudCBub3RlIGZvciBjYWxsYmFjayBmdW5jdGlvbnM6KioKIAotTWFrZSBzdXJlIHlvdSBrZWVwIHJlZmVyZW5jZXMgdG8gQ0ZVTkNUWVBFIG9iamVjdHMgYXMgbG9uZyBhcyB0aGV5IGFyZSB1c2VkIGZyb20KLUMgY29kZS4gOm1vZDpgY3R5cGVzYCBkb2Vzbid0LCBhbmQgaWYgeW91IGRvbid0LCB0aGV5IG1heSBiZSBnYXJiYWdlIGNvbGxlY3RlZCwKLWNyYXNoaW5nIHlvdXIgcHJvZ3JhbSB3aGVuIGEgY2FsbGJhY2sgaXMgbWFkZS4KK01ha2Ugc3VyZSB5b3Uga2VlcCByZWZlcmVuY2VzIHRvIDpmdW5jOmBDRlVOQ1RZUEVgIG9iamVjdHMgYXMgbG9uZyBhcyB0aGV5IGFyZQordXNlZCBmcm9tIEMgY29kZS4gOm1vZDpgY3R5cGVzYCBkb2Vzbid0LCBhbmQgaWYgeW91IGRvbid0LCB0aGV5IG1heSBiZSBnYXJiYWdlCitjb2xsZWN0ZWQsIGNyYXNoaW5nIHlvdXIgcHJvZ3JhbSB3aGVuIGEgY2FsbGJhY2sgaXMgbWFkZS4KIAogCiAuLiBfY3R5cGVzLWFjY2Vzc2luZy12YWx1ZXMtZXhwb3J0ZWQtZnJvbS1kbGxzOgpAQCAtMTM0NSw3ICsxMjg0LDEwIEBACiAgICBhc3N1bWVkIHRvIHJldHVybiB0aGUgd2luZG93cyBzcGVjaWZpYyA6Y2xhc3M6YEhSRVNVTFRgIGNvZGUuICA6Y2xhc3M6YEhSRVNVTFRgCiAgICB2YWx1ZXMgY29udGFpbiBpbmZvcm1hdGlvbiBzcGVjaWZ5aW5nIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGNhbGwgZmFpbGVkIG9yCiAgICBzdWNjZWVkZWQsIHRvZ2V0aGVyIHdpdGggYWRkaXRpb25hbCBlcnJvciBjb2RlLiAgSWYgdGhlIHJldHVybiB2YWx1ZSBzaWduYWxzIGEKLSAgIGZhaWx1cmUsIGFuIDpjbGFzczpgV2luZG93c0Vycm9yYCBpcyBhdXRvbWF0aWNhbGx5IHJhaXNlZC4KKyAgIGZhaWx1cmUsIGFuIDpjbGFzczpgT1NFcnJvcmAgaXMgYXV0b21hdGljYWxseSByYWlzZWQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICA6ZXhjOmBXaW5kb3dzRXJyb3JgIHVzZWQgdG8gYmUgcmFpc2VkLgogCiAKIC4uIGNsYXNzOjogV2luRExMKG5hbWUsIG1vZGU9REVGQVVMVF9NT0RFLCBoYW5kbGU9Tm9uZSwgdXNlX2Vycm5vPUZhbHNlLCB1c2VfbGFzdF9lcnJvcj1GYWxzZSkKQEAgLTE5NjIsMTEgKzE5MDQsMTQgQEAKIC4uIGZ1bmN0aW9uOjogV2luRXJyb3IoY29kZT1Ob25lLCBkZXNjcj1Ob25lKQogCiAgICBXaW5kb3dzIG9ubHk6IHRoaXMgZnVuY3Rpb24gaXMgcHJvYmFibHkgdGhlIHdvcnN0LW5hbWVkIHRoaW5nIGluIGN0eXBlcy4gSXQKLSAgIGNyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgV2luZG93c0Vycm9yLiAgSWYgKmNvZGUqIGlzIG5vdCBzcGVjaWZpZWQsCisgICBjcmVhdGVzIGFuIGluc3RhbmNlIG9mIE9TRXJyb3IuICBJZiAqY29kZSogaXMgbm90IHNwZWNpZmllZCwKICAgIGBgR2V0TGFzdEVycm9yYGAgaXMgY2FsbGVkIHRvIGRldGVybWluZSB0aGUgZXJyb3IgY29kZS4gSWYgKmRlc2NyKiBpcyBub3QKICAgIHNwZWNpZmllZCwgOmZ1bmM6YEZvcm1hdEVycm9yYCBpcyBjYWxsZWQgdG8gZ2V0IGEgdGV4dHVhbCBkZXNjcmlwdGlvbiBvZiB0aGUKICAgIGVycm9yLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQW4gaW5zdGFuY2Ugb2YgOmV4YzpgV2luZG93c0Vycm9yYCB1c2VkIHRvIGJlIGNyZWF0ZWQuCisKIAogLi4gZnVuY3Rpb246OiB3c3RyaW5nX2F0KGFkZHJlc3MsIHNpemU9LTEpCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2N1cnNlcy5yc3QgYi9Eb2MvbGlicmFyeS9jdXJzZXMucnN0CmluZGV4IGYzMWI5YzUuLmZmM2E3OTMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2N1cnNlcy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvY3Vyc2VzLnJzdApAQCAtNTk4LDYgKzU5OCwxNyBAQAogICAgICAgT25seSBvbmUgKmNoKiBjYW4gYmUgcHVzaGVkIGJlZm9yZSA6bWV0aDpgZ2V0Y2hgIGlzIGNhbGxlZC4KIAogCisuLiBmdW5jdGlvbjo6IHVuZ2V0X3djaChjaCkKKworICAgUHVzaCAqY2gqIHNvIHRoZSBuZXh0IDptZXRoOmBnZXRfd2NoYCB3aWxsIHJldHVybiBpdC4KKworICAgLi4gbm90ZTo6CisKKyAgICAgIE9ubHkgb25lICpjaCogY2FuIGJlIHB1c2hlZCBiZWZvcmUgOm1ldGg6YGdldF93Y2hgIGlzIGNhbGxlZC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gZnVuY3Rpb246OiB1bmdldG1vdXNlKGlkLCB4LCB5LCB6LCBic3RhdGUpCiAKICAgIFB1c2ggYSA6Y29uc3Q6YEtFWV9NT1VTRWAgZXZlbnQgb250byB0aGUgaW5wdXQgcXVldWUsIGFzc29jaWF0aW5nIHRoZSBnaXZlbgpAQCAtNjQyLDcgKzY1Myw3IEBACiAtLS0tLS0tLS0tLS0tLQogCiBXaW5kb3cgb2JqZWN0cywgYXMgcmV0dXJuZWQgYnkgOmZ1bmM6YGluaXRzY3JgIGFuZCA6ZnVuYzpgbmV3d2luYCBhYm92ZSwgaGF2ZQotdGhlIGZvbGxvd2luZyBtZXRob2RzOgordGhlIGZvbGxvd2luZyBtZXRob2RzIGFuZCBhdHRyaWJ1dGVzOgogCiAKIC4uIG1ldGhvZDo6IHdpbmRvdy5hZGRjaChbeSwgeCxdIGNoWywgYXR0cl0pCkBAIC04MjMsNiArODM0LDE2IEBACiAgICBldmVudC4KIAogCisuLiBhdHRyaWJ1dGU6OiB3aW5kb3cuZW5jb2RpbmcKKworICAgRW5jb2RpbmcgdXNlZCB0byBlbmNvZGUgbWV0aG9kIGFyZ3VtZW50cyAoVW5pY29kZSBzdHJpbmdzIGFuZCBjaGFyYWN0ZXJzKS4KKyAgIFRoZSBlbmNvZGluZyBhdHRyaWJ1dGUgaXMgaW5oZXJpdGVkIGZyb20gYnkgcGFyZW50IHdpbmRvdyB3aGVuIGEgc3Vid2luZG93CisgICBpcyBjcmVhdGVkLCBmb3IgZXhhbXBsZSB3aXRoIDptZXRoOmB3aW5kb3cuc3Vid2luYC4gQnkgZGVmYXVsdCwgdGhlIGxvY2FsZQorICAgZW5jb2RpbmcgaXMgdXNlZCAoc2VlIDpmdW5jOmBsb2NhbGUuZ2V0cHJlZmVycmVkZW5jb2RpbmdgKS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gbWV0aG9kOjogd2luZG93LmVyYXNlKCkKIAogICAgQ2xlYXIgdGhlIHdpbmRvdy4KQEAgLTg0Niw2ICs4NjcsMTQgQEAKICAgIHVudGlsIGEga2V5IGlzIHByZXNzZWQuCiAKIAorLi4gbWV0aG9kOjogd2luZG93LmdldF93Y2goW3ksIHhdKQorCisgICBHZXQgYSB3aWRlIGNoYXJhY3Rlci4gTGlrZSA6bWV0aDpgZ2V0Y2hgLCBidXQgdGhlIGludGVnZXIgcmV0dXJuZWQgaXMgdGhlCisgICBVbmljb2RlIGNvZGUgcG9pbnQgZm9yIHRoZSBrZXkgcHJlc3NlZCwgc28gaXQgY2FuIGJlIHBhc3NlZCB0byA6ZnVuYzpgY2hyYC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gbWV0aG9kOjogd2luZG93LmdldGtleShbeSwgeF0pCiAKICAgIEdldCBhIGNoYXJhY3RlciwgcmV0dXJuaW5nIGEgc3RyaW5nIGluc3RlYWQgb2YgYW4gaW50ZWdlciwgYXMgOm1ldGg6YGdldGNoYApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvZGF0YXR5cGVzLnJzdCBiL0RvYy9saWJyYXJ5L2RhdGF0eXBlcy5yc3QKaW5kZXggNmI0YTcxYS4uOGUzM2MxZiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZGF0YXR5cGVzLnJzdAorKysgYi9Eb2MvbGlicmFyeS9kYXRhdHlwZXMucnN0CkBAIC0yMSw2ICsyMSw3IEBACiAgICBkYXRldGltZS5yc3QKICAgIGNhbGVuZGFyLnJzdAogICAgY29sbGVjdGlvbnMucnN0CisgICBjb2xsZWN0aW9ucy5hYmMucnN0CiAgICBoZWFwcS5yc3QKICAgIGJpc2VjdC5yc3QKICAgIGFycmF5LnJzdApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvZGF0ZXRpbWUucnN0IGIvRG9jL2xpYnJhcnkvZGF0ZXRpbWUucnN0CmluZGV4IDg4ZmEwMWMuLjdjMGFhYzMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2RhdGV0aW1lLnJzdAorKysgYi9Eb2MvbGlicmFyeS9kYXRldGltZS5yc3QKQEAgLTQwNCwxMiArNDA0LDE5IEBACiAuLiBjbGFzc21ldGhvZDo6IGRhdGUuZnJvbXRpbWVzdGFtcCh0aW1lc3RhbXApCiAKICAgIFJldHVybiB0aGUgbG9jYWwgZGF0ZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBQT1NJWCB0aW1lc3RhbXAsIHN1Y2ggYXMgaXMgcmV0dXJuZWQKLSAgIGJ5IDpmdW5jOmB0aW1lLnRpbWVgLiAgVGhpcyBtYXkgcmFpc2UgOmV4YzpgVmFsdWVFcnJvcmAsIGlmIHRoZSB0aW1lc3RhbXAgaXMgb3V0Ci0gICBvZiB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0gQyA6YzpmdW5jOmBsb2NhbHRpbWVgIGZ1bmN0aW9uLgorICAgYnkgOmZ1bmM6YHRpbWUudGltZWAuICBUaGlzIG1heSByYWlzZSA6ZXhjOmBPdmVyZmxvd0Vycm9yYCwgaWYgdGhlIHRpbWVzdGFtcCBpcyBvdXQKKyAgIG9mIHRoZSByYW5nZSBvZiB2YWx1ZXMgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSBDIDpjOmZ1bmM6YGxvY2FsdGltZWAgZnVuY3Rpb24sCisgICBhbmQgOmV4YzpgT1NFcnJvcmAgb24gOmM6ZnVuYzpgbG9jYWx0aW1lYCBmYWlsdXJlLgogICAgSXQncyBjb21tb24gZm9yIHRoaXMgdG8gYmUgcmVzdHJpY3RlZCB0byB5ZWFycyBmcm9tIDE5NzAgdGhyb3VnaCAyMDM4LiAgTm90ZQogICAgdGhhdCBvbiBub24tUE9TSVggc3lzdGVtcyB0aGF0IGluY2x1ZGUgbGVhcCBzZWNvbmRzIGluIHRoZWlyIG5vdGlvbiBvZiBhCiAgICB0aW1lc3RhbXAsIGxlYXAgc2Vjb25kcyBhcmUgaWdub3JlZCBieSA6bWV0aDpgZnJvbXRpbWVzdGFtcGAuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBSYWlzZSA6ZXhjOmBPdmVyZmxvd0Vycm9yYCBpbnN0ZWFkIG9mIDpleGM6YFZhbHVlRXJyb3JgIGlmIHRoZSB0aW1lc3RhbXAKKyAgICAgIGlzIG91dCBvZiB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHN1cHBvcnRlZCBieSB0aGUgcGxhdGZvcm0gQworICAgICAgOmM6ZnVuYzpgbG9jYWx0aW1lYCBmdW5jdGlvbi4gUmFpc2UgOmV4YzpgT1NFcnJvcmAgaW5zdGVhZCBvZgorICAgICAgOmV4YzpgVmFsdWVFcnJvcmAgb24gOmM6ZnVuYzpgbG9jYWx0aW1lYCBmYWlsdXJlLgorCiAKIC4uIGNsYXNzbWV0aG9kOjogZGF0ZS5mcm9tb3JkaW5hbChvcmRpbmFsKQogCkBAIC03MTMsMjMgKzcyMCw0NCBAQAogICAgZXF1aXZhbGVudCB0bwogICAgYGB0ei5mcm9tdXRjKGRhdGV0aW1lLnV0Y2Zyb210aW1lc3RhbXAodGltZXN0YW1wKS5yZXBsYWNlKHR6aW5mbz10eikpYGAuCiAKLSAgIDptZXRoOmBmcm9tdGltZXN0YW1wYCBtYXkgcmFpc2UgOmV4YzpgVmFsdWVFcnJvcmAsIGlmIHRoZSB0aW1lc3RhbXAgaXMgb3V0IG9mCisgICA6bWV0aDpgZnJvbXRpbWVzdGFtcGAgbWF5IHJhaXNlIDpleGM6YE92ZXJmbG93RXJyb3JgLCBpZiB0aGUgdGltZXN0YW1wIGlzIG91dCBvZgogICAgdGhlIHJhbmdlIG9mIHZhbHVlcyBzdXBwb3J0ZWQgYnkgdGhlIHBsYXRmb3JtIEMgOmM6ZnVuYzpgbG9jYWx0aW1lYCBvcgotICAgOmM6ZnVuYzpgZ210aW1lYCBmdW5jdGlvbnMuICBJdCdzIGNvbW1vbiBmb3IgdGhpcyB0byBiZSByZXN0cmljdGVkIHRvIHllYXJzIGluCisgICA6YzpmdW5jOmBnbXRpbWVgIGZ1bmN0aW9ucywgYW5kIDpleGM6YE9TRXJyb3JgIG9uIDpjOmZ1bmM6YGxvY2FsdGltZWAgb3IKKyAgIDpjOmZ1bmM6YGdtdGltZWAgZmFpbHVyZS4KKyAgIEl0J3MgY29tbW9uIGZvciB0aGlzIHRvIGJlIHJlc3RyaWN0ZWQgdG8geWVhcnMgaW4KICAgIDE5NzAgdGhyb3VnaCAyMDM4LiBOb3RlIHRoYXQgb24gbm9uLVBPU0lYIHN5c3RlbXMgdGhhdCBpbmNsdWRlIGxlYXAgc2Vjb25kcyBpbgogICAgdGhlaXIgbm90aW9uIG9mIGEgdGltZXN0YW1wLCBsZWFwIHNlY29uZHMgYXJlIGlnbm9yZWQgYnkgOm1ldGg6YGZyb210aW1lc3RhbXBgLAogICAgYW5kIHRoZW4gaXQncyBwb3NzaWJsZSB0byBoYXZlIHR3byB0aW1lc3RhbXBzIGRpZmZlcmluZyBieSBhIHNlY29uZCB0aGF0IHlpZWxkCiAgICBpZGVudGljYWwgOmNsYXNzOmAuZGF0ZXRpbWVgIG9iamVjdHMuIFNlZSBhbHNvIDptZXRoOmB1dGNmcm9tdGltZXN0YW1wYC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFJhaXNlIDpleGM6YE92ZXJmbG93RXJyb3JgIGluc3RlYWQgb2YgOmV4YzpgVmFsdWVFcnJvcmAgaWYgdGhlIHRpbWVzdGFtcAorICAgICAgaXMgb3V0IG9mIHRoZSByYW5nZSBvZiB2YWx1ZXMgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSBDCisgICAgICA6YzpmdW5jOmBsb2NhbHRpbWVgIG9yIDpjOmZ1bmM6YGdtdGltZWAgZnVuY3Rpb25zLiBSYWlzZSA6ZXhjOmBPU0Vycm9yYAorICAgICAgaW5zdGVhZCBvZiA6ZXhjOmBWYWx1ZUVycm9yYCBvbiA6YzpmdW5jOmBsb2NhbHRpbWVgIG9yIDpjOmZ1bmM6YGdtdGltZWAKKyAgICAgIGZhaWx1cmUuCisKIAogLi4gY2xhc3NtZXRob2Q6OiBkYXRldGltZS51dGNmcm9tdGltZXN0YW1wKHRpbWVzdGFtcCkKIAogICAgUmV0dXJuIHRoZSBVVEMgOmNsYXNzOmAuZGF0ZXRpbWVgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIFBPU0lYIHRpbWVzdGFtcCwgd2l0aAotICAgOmF0dHI6YHR6aW5mb2AgYGBOb25lYGAuIFRoaXMgbWF5IHJhaXNlIDpleGM6YFZhbHVlRXJyb3JgLCBpZiB0aGUgdGltZXN0YW1wIGlzCi0gICBvdXQgb2YgdGhlIHJhbmdlIG9mIHZhbHVlcyBzdXBwb3J0ZWQgYnkgdGhlIHBsYXRmb3JtIEMgOmM6ZnVuYzpgZ210aW1lYCBmdW5jdGlvbi4KKyAgIDphdHRyOmB0emluZm9gIGBgTm9uZWBgLiBUaGlzIG1heSByYWlzZSA6ZXhjOmBPdmVyZmxvd0Vycm9yYCwgaWYgdGhlIHRpbWVzdGFtcCBpcworICAgb3V0IG9mIHRoZSByYW5nZSBvZiB2YWx1ZXMgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSBDIDpjOmZ1bmM6YGdtdGltZWAgZnVuY3Rpb24sCisgICBhbmQgOmV4YzpgT1NFcnJvcmAgb24gOmM6ZnVuYzpgZ210aW1lYCBmYWlsdXJlLgogICAgSXQncyBjb21tb24gZm9yIHRoaXMgdG8gYmUgcmVzdHJpY3RlZCB0byB5ZWFycyBpbiAxOTcwIHRocm91Z2ggMjAzOC4gU2VlIGFsc28KICAgIDptZXRoOmBmcm9tdGltZXN0YW1wYC4KIAorICAgT24gdGhlIFBPU0lYIGNvbXBsaWFudCBwbGF0Zm9ybXMsIGBgdXRjZnJvbXRpbWVzdGFtcCh0aW1lc3RhbXApYGAKKyAgIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGZvbGxvd2luZyBleHByZXNzaW9uOjoKKworICAgICBkYXRldGltZSgxOTcwLCAxLCAxKSArIHRpbWVkZWx0YShzZWNvbmRzPXRpbWVzdGFtcCkKKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFJhaXNlIDpleGM6YE92ZXJmbG93RXJyb3JgIGluc3RlYWQgb2YgOmV4YzpgVmFsdWVFcnJvcmAgaWYgdGhlIHRpbWVzdGFtcAorICAgICAgaXMgb3V0IG9mIHRoZSByYW5nZSBvZiB2YWx1ZXMgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybSBDCisgICAgICA6YzpmdW5jOmBnbXRpbWVgIGZ1bmN0aW9uLiBSYWlzZSA6ZXhjOmBPU0Vycm9yYCBpbnN0ZWFkIG9mCisgICAgICA6ZXhjOmBWYWx1ZUVycm9yYCBvbiA6YzpmdW5jOmBnbXRpbWVgIGZhaWx1cmUuCisKIAogLi4gY2xhc3NtZXRob2Q6OiBkYXRldGltZS5mcm9tb3JkaW5hbChvcmRpbmFsKQogCkBAIC04NzMsMTMgKzkwMSwyMCBAQAogICAgKmRhdGV0aW1lMSogaXMgY29uc2lkZXJlZCBsZXNzIHRoYW4gKmRhdGV0aW1lMiogd2hlbiAqZGF0ZXRpbWUxKiBwcmVjZWRlcwogICAgKmRhdGV0aW1lMiogaW4gdGltZS4KIAotICAgSWYgb25lIGNvbXBhcmFuZCBpcyBuYWl2ZSBhbmQgdGhlIG90aGVyIGlzIGF3YXJlLCA6ZXhjOmBUeXBlRXJyb3JgIGlzIHJhaXNlZC4KKyAgIElmIG9uZSBjb21wYXJhbmQgaXMgbmFpdmUgYW5kIHRoZSBvdGhlciBpcyBhd2FyZSwgOmV4YzpgVHlwZUVycm9yYAorICAgaXMgcmFpc2VkIGlmIGFuIG9yZGVyIGNvbXBhcmlzb24gaXMgYXR0ZW1wdGVkLiAgRm9yIGVxdWFsaXR5CisgICBjb21wYXJpc29ucywgbmFpdmUgaW5zdGFuY2VzIGFyZSBuZXZlciBlcXVhbCB0byBhd2FyZSBpbnN0YW5jZXMuCisKICAgIElmIGJvdGggY29tcGFyYW5kcyBhcmUgYXdhcmUsIGFuZCBoYXZlIHRoZSBzYW1lIDphdHRyOmB0emluZm9gIGF0dHJpYnV0ZSwgdGhlCiAgICBjb21tb24gOmF0dHI6YHR6aW5mb2AgYXR0cmlidXRlIGlzIGlnbm9yZWQgYW5kIHRoZSBiYXNlIGRhdGV0aW1lcyBhcmUKICAgIGNvbXBhcmVkLiAgSWYgYm90aCBjb21wYXJhbmRzIGFyZSBhd2FyZSBhbmQgaGF2ZSBkaWZmZXJlbnQgOmF0dHI6YHR6aW5mb2AKICAgIGF0dHJpYnV0ZXMsIHRoZSBjb21wYXJhbmRzIGFyZSBmaXJzdCBhZGp1c3RlZCBieSBzdWJ0cmFjdGluZyB0aGVpciBVVEMKICAgIG9mZnNldHMgKG9idGFpbmVkIGZyb20gYGBzZWxmLnV0Y29mZnNldCgpYGApLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgRXF1YWxpdHkgY29tcGFyaXNvbnMgYmV0d2VlbiBuYWl2ZSBhbmQgYXdhcmUgOmNsYXNzOmBkYXRldGltZWAKKyAgICAgIGluc3RhbmNlcyBkb24ndCByYWlzZSA6ZXhjOmBUeXBlRXJyb3JgLgorCiAgICAuLiBub3RlOjoKIAogICAgICAgSW4gb3JkZXIgdG8gc3RvcCBjb21wYXJpc29uIGZyb20gZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IHNjaGVtZSBvZiBjb21wYXJpbmcKQEAgLTkyMiwxNyArOTU3LDIyIEBACiAgICBkYXRldGltZSB3aXRoIG5vIGNvbnZlcnNpb24gb2YgZGF0ZSBhbmQgdGltZSBkYXRhLgogCiAKLS4uIG1ldGhvZDo6IGRhdGV0aW1lLmFzdGltZXpvbmUodHopCisuLiBtZXRob2Q6OiBkYXRldGltZS5hc3RpbWV6b25lKHR6PU5vbmUpCiAKLSAgIFJldHVybiBhIDpjbGFzczpgLmRhdGV0aW1lYCBvYmplY3Qgd2l0aCBuZXcgOmF0dHI6YHR6aW5mb2AgYXR0cmlidXRlICp0eiosCisgICBSZXR1cm4gYSA6Y2xhc3M6YGRhdGV0aW1lYCBvYmplY3Qgd2l0aCBuZXcgOmF0dHI6YHR6aW5mb2AgYXR0cmlidXRlICp0eiosCiAgICBhZGp1c3RpbmcgdGhlIGRhdGUgYW5kIHRpbWUgZGF0YSBzbyB0aGUgcmVzdWx0IGlzIHRoZSBzYW1lIFVUQyB0aW1lIGFzCiAgICAqc2VsZiosIGJ1dCBpbiAqdHoqJ3MgbG9jYWwgdGltZS4KIAotICAgKnR6KiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIGEgOmNsYXNzOmB0emluZm9gIHN1YmNsYXNzLCBhbmQgaXRzCisgICBJZiBwcm92aWRlZCwgKnR6KiBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIGEgOmNsYXNzOmB0emluZm9gIHN1YmNsYXNzLCBhbmQgaXRzCiAgICA6bWV0aDpgdXRjb2Zmc2V0YCBhbmQgOm1ldGg6YGRzdGAgbWV0aG9kcyBtdXN0IG5vdCByZXR1cm4gYGBOb25lYGAuICAqc2VsZiogbXVzdAogICAgYmUgYXdhcmUgKGBgc2VsZi50emluZm9gYCBtdXN0IG5vdCBiZSBgYE5vbmVgYCwgYW5kIGBgc2VsZi51dGNvZmZzZXQoKWBgIG11c3QKICAgIG5vdCByZXR1cm4gYGBOb25lYGApLgogCisgICBJZiBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHMgKG9yIHdpdGggYGB0ej1Ob25lYGApIHRoZSBzeXN0ZW0gbG9jYWwKKyAgIHRpbWV6b25lIGlzIGFzc3VtZWQuICBUaGUgYGB0emluZm9gYCBhdHRyaWJ1dGUgb2YgdGhlIGNvbnZlcnRlZAorICAgZGF0ZXRpbWUgaW5zdGFuY2Ugd2lsbCBiZSBzZXQgdG8gYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmB0aW1lem9uZWAKKyAgIHdpdGggdGhlIHpvbmUgbmFtZSBhbmQgb2Zmc2V0IG9idGFpbmVkIGZyb20gdGhlIE9TLgorCiAgICBJZiBgYHNlbGYudHppbmZvYGAgaXMgKnR6KiwgYGBzZWxmLmFzdGltZXpvbmUodHopYGAgaXMgZXF1YWwgdG8gKnNlbGYqOiAgbm8KICAgIGFkanVzdG1lbnQgb2YgZGF0ZSBvciB0aW1lIGRhdGEgaXMgcGVyZm9ybWVkLiBFbHNlIHRoZSByZXN1bHQgaXMgbG9jYWwKICAgIHRpbWUgaW4gdGltZSB6b25lICp0eiosIHJlcHJlc2VudGluZyB0aGUgc2FtZSBVVEMgdGltZSBhcyAqc2VsZio6ICBhZnRlcgpAQCAtOTU5LDYgKzk5OSw5IEBACiAgICAgICAgICAgIyBDb252ZXJ0IGZyb20gVVRDIHRvIHR6J3MgbG9jYWwgdGltZS4KICAgICAgICAgICByZXR1cm4gdHouZnJvbXV0Yyh1dGMpCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAqdHoqIG5vdyBjYW4gYmUgb21pdHRlZC4KKwogCiAuLiBtZXRob2Q6OiBkYXRldGltZS51dGNvZmZzZXQoKQogCkBAIC0xMDE1LDYgKzEwNTgsMzkgQEAKICAgIFJldHVybiB0aGUgcHJvbGVwdGljIEdyZWdvcmlhbiBvcmRpbmFsIG9mIHRoZSBkYXRlLiAgVGhlIHNhbWUgYXMKICAgIGBgc2VsZi5kYXRlKCkudG9vcmRpbmFsKClgYC4KIAorLi4gbWV0aG9kOjogZGF0ZXRpbWUudGltZXN0YW1wKCkKKworICAgUmV0dXJuIFBPU0lYIHRpbWVzdGFtcCBjb3JyZXNwb25kaW5nIHRvIHRoZSA6Y2xhc3M6YGRhdGV0aW1lYAorICAgaW5zdGFuY2UuICBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgOmNsYXNzOmBmbG9hdGAgc2ltaWxhciB0byB0aGF0CisgICByZXR1cm5lZCBieSA6ZnVuYzpgdGltZS50aW1lYC4KKworICAgTmFpdmUgOmNsYXNzOmBkYXRldGltZWAgaW5zdGFuY2VzIGFyZSBhc3N1bWVkIHRvIHJlcHJlc2VudCBsb2NhbAorICAgdGltZSBhbmQgdGhpcyBtZXRob2QgcmVsaWVzIG9uIHRoZSBwbGF0Zm9ybSBDIDpjOmZ1bmM6YG1rdGltZWAKKyAgIGZ1bmN0aW9uIHRvIHBlcmZvcm0gdGhlIGNvbnZlcnNpb24uICBTaW5jZSA6Y2xhc3M6YGRhdGV0aW1lYAorICAgc3VwcG9ydHMgd2lkZXIgcmFuZ2Ugb2YgdmFsdWVzIHRoYW4gOmM6ZnVuYzpgbWt0aW1lYCBvbiBtYW55CisgICBwbGF0Zm9ybXMsIHRoaXMgbWV0aG9kIG1heSByYWlzZSA6ZXhjOmBPdmVyZmxvd0Vycm9yYCBmb3IgdGltZXMgZmFyCisgICBpbiB0aGUgcGFzdCBvciBmYXIgaW4gdGhlIGZ1dHVyZS4KKworICAgRm9yIGF3YXJlIDpjbGFzczpgZGF0ZXRpbWVgIGluc3RhbmNlcywgdGhlIHJldHVybiB2YWx1ZSBpcyBjb21wdXRlZAorICAgYXM6OgorCisgICAgICAoZHQgLSBkYXRldGltZSgxOTcwLCAxLCAxLCB0emluZm89dGltZXpvbmUudXRjKSkudG90YWxfc2Vjb25kcygpCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisgICAuLiBub3RlOjoKKworICAgICAgVGhlcmUgaXMgbm8gbWV0aG9kIHRvIG9idGFpbiB0aGUgUE9TSVggdGltZXN0YW1wIGRpcmVjdGx5IGZyb20gYQorICAgICAgbmFpdmUgOmNsYXNzOmBkYXRldGltZWAgaW5zdGFuY2UgcmVwcmVzZW50aW5nIFVUQyB0aW1lLiAgSWYgeW91cgorICAgICAgYXBwbGljYXRpb24gdXNlcyB0aGlzIGNvbnZlbnRpb24gYW5kIHlvdXIgc3lzdGVtIHRpbWV6b25lIGlzIG5vdAorICAgICAgc2V0IHRvIFVUQywgeW91IGNhbiBvYnRhaW4gdGhlIFBPU0lYIHRpbWVzdGFtcCBieSBzdXBwbHlpbmcKKyAgICAgIGBgdHppbmZvPXRpbWV6b25lLnV0Y2BgOjoKKworICAgICAgICAgdGltZXN0YW1wID0gZHQucmVwbGFjZSh0emluZm89dGltZXpvbmUudXRjKS50aW1lc3RhbXAoKQorCisgICAgICBvciBieSBjYWxjdWxhdGluZyB0aGUgdGltZXN0YW1wIGRpcmVjdGx5OjoKKworICAgICAgICAgdGltZXN0YW1wID0gKGR0IC0gZGF0ZXRpbWUoMTk3MCwgMSwgMSkpIC8gdGltZWRlbHRhKHNlY29uZHM9MSkKIAogLi4gbWV0aG9kOjogZGF0ZXRpbWUud2Vla2RheSgpCiAKQEAgLTEyNTQsNyArMTMzMCwxMCBAQAogCiAqIGNvbXBhcmlzb24gb2YgOmNsYXNzOmAudGltZWAgdG8gOmNsYXNzOmAudGltZWAsIHdoZXJlICphKiBpcyBjb25zaWRlcmVkIGxlc3MKICAgdGhhbiAqYiogd2hlbiAqYSogcHJlY2VkZXMgKmIqIGluIHRpbWUuICBJZiBvbmUgY29tcGFyYW5kIGlzIG5haXZlIGFuZCB0aGUgb3RoZXIKLSAgaXMgYXdhcmUsIDpleGM6YFR5cGVFcnJvcmAgaXMgcmFpc2VkLiAgSWYgYm90aCBjb21wYXJhbmRzIGFyZSBhd2FyZSwgYW5kIGhhdmUKKyAgaXMgYXdhcmUsIDpleGM6YFR5cGVFcnJvcmAgaXMgcmFpc2VkIGlmIGFuIG9yZGVyIGNvbXBhcmlzb24gaXMgYXR0ZW1wdGVkLiBGb3IgZXF1YWxpdHkKKyAgY29tcGFyaXNvbnMsIG5haXZlIGluc3RhbmNlcyBhcmUgbmV2ZXIgZXF1YWwgdG8gYXdhcmUgaW5zdGFuY2VzLgorCisgIElmIGJvdGggY29tcGFyYW5kcyBhcmUgYXdhcmUsIGFuZCBoYXZlCiAgIHRoZSBzYW1lIDphdHRyOmB0emluZm9gIGF0dHJpYnV0ZSwgdGhlIGNvbW1vbiA6YXR0cjpgdHppbmZvYCBhdHRyaWJ1dGUgaXMKICAgaWdub3JlZCBhbmQgdGhlIGJhc2UgdGltZXMgYXJlIGNvbXBhcmVkLiAgSWYgYm90aCBjb21wYXJhbmRzIGFyZSBhd2FyZSBhbmQKICAgaGF2ZSBkaWZmZXJlbnQgOmF0dHI6YHR6aW5mb2AgYXR0cmlidXRlcywgdGhlIGNvbXBhcmFuZHMgYXJlIGZpcnN0IGFkanVzdGVkIGJ5CkBAIC0xMjY0LDYgKzEzNDMsMTAgQEAKICAgZGlmZmVyZW50IHR5cGUsIDpleGM6YFR5cGVFcnJvcmAgaXMgcmFpc2VkIHVubGVzcyB0aGUgY29tcGFyaXNvbiBpcyBgYD09YGAgb3IKICAgYGAhPWBgLiAgVGhlIGxhdHRlciBjYXNlcyByZXR1cm4gOmNvbnN0OmBGYWxzZWAgb3IgOmNvbnN0OmBUcnVlYCwgcmVzcGVjdGl2ZWx5LgogCisgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgIEVxdWFsaXR5IGNvbXBhcmlzb25zIGJldHdlZW4gbmFpdmUgYW5kIGF3YXJlIDpjbGFzczpgdGltZWAgaW5zdGFuY2VzCisgICAgIGRvbid0IHJhaXNlIDpleGM6YFR5cGVFcnJvcmAuCisKICogaGFzaCwgdXNlIGFzIGRpY3Qga2V5CiAKICogZWZmaWNpZW50IHBpY2tsaW5nCkBAIC0xNTg3LDExICsxNjcwLDEyIEBACiA6Y2xhc3M6YHRpbWV6b25lYCBPYmplY3RzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1BIDpjbGFzczpgdGltZXpvbmVgIG9iamVjdCByZXByZXNlbnRzIGEgdGltZXpvbmUgdGhhdCBpcyBkZWZpbmVkIGJ5IGEKLWZpeGVkIG9mZnNldCBmcm9tIFVUQy4gIE5vdGUgdGhhdCBvYmplY3RzIG9mIHRoaXMgY2xhc3MgY2Fubm90IGJlIHVzZWQKLXRvIHJlcHJlc2VudCB0aW1lem9uZSBpbmZvcm1hdGlvbiBpbiB0aGUgbG9jYXRpb25zIHdoZXJlIGRpZmZlcmVudAotb2Zmc2V0cyBhcmUgdXNlZCBpbiBkaWZmZXJlbnQgZGF5cyBvZiB0aGUgeWVhciBvciB3aGVyZSBoaXN0b3JpY2FsCi1jaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIHRvIGNpdmlsIHRpbWUuCitUaGUgOmNsYXNzOmB0aW1lem9uZWAgY2xhc3MgaXMgYSBzdWJjbGFzcyBvZiA6Y2xhc3M6YHR6aW5mb2AsIGVhY2gKK2luc3RhbmNlIG9mIHdoaWNoIHJlcHJlc2VudHMgYSB0aW1lem9uZSBkZWZpbmVkIGJ5IGEgZml4ZWQgb2Zmc2V0IGZyb20KK1VUQy4gIE5vdGUgdGhhdCBvYmplY3RzIG9mIHRoaXMgY2xhc3MgY2Fubm90IGJlIHVzZWQgdG8gcmVwcmVzZW50Cit0aW1lem9uZSBpbmZvcm1hdGlvbiBpbiB0aGUgbG9jYXRpb25zIHdoZXJlIGRpZmZlcmVudCBvZmZzZXRzIGFyZSB1c2VkCitpbiBkaWZmZXJlbnQgZGF5cyBvZiB0aGUgeWVhciBvciB3aGVyZSBoaXN0b3JpY2FsIGNoYW5nZXMgaGF2ZSBiZWVuCittYWRlIHRvIGNpdmlsIHRpbWUuCiAKIAogLi4gY2xhc3M6OiB0aW1lem9uZShvZmZzZXRbLCBuYW1lXSkKQEAgLTE3NjAsOCArMTg0NCw3IEBACiB8ICAgICAgICAgICB8IGRlY2ltYWwgbnVtYmVyIFswMCw5OV0uICAgICAgICB8ICAgICAgIHwKICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKwogfCBgYCVZYGAgICAgfCBZZWFyIHdpdGggY2VudHVyeSBhcyBhIGRlY2ltYWwgfCBcKDUpICB8Ci18ICAgICAgICAgICB8IG51bWJlciBbMDAwMSw5OTk5XSAoc3RycHRpbWUpLCB8ICAgICAgIHwKLXwgICAgICAgICAgIHwgWzEwMDAsOTk5OV0gKHN0cmZ0aW1lKS4gICAgICAgIHwgICAgICAgfAorfCAgICAgICAgICAgfCBudW1iZXIgWzAwMDEsOTk5OV0uICAgICAgICAgICAgfCAgICAgICB8CiArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKIHwgYGAlemBgICAgIHwgVVRDIG9mZnNldCBpbiB0aGUgZm9ybSArSEhNTSAgIHwgXCg2KSAgfAogfCAgICAgICAgICAgfCBvciAtSEhNTSAoZW1wdHkgc3RyaW5nIGlmIHRoZSAgfCAgICAgICB8CkBAIC0xNzk1LDEwICsxODc4LDcgQEAKICAgIGNhbGN1bGF0aW9ucyB3aGVuIHRoZSBkYXkgb2YgdGhlIHdlZWsgYW5kIHRoZSB5ZWFyIGFyZSBzcGVjaWZpZWQuCiAKICg1KQotICAgRm9yIHRlY2huaWNhbCByZWFzb25zLCA6bWV0aDpgc3RyZnRpbWVgIG1ldGhvZCBkb2VzIG5vdCBzdXBwb3J0Ci0gICBkYXRlcyBiZWZvcmUgeWVhciAxMDAwOiBgYHQuc3RyZnRpbWUoZm9ybWF0KWBgIHdpbGwgcmFpc2UgYQotICAgOmV4YzpgVmFsdWVFcnJvcmAgd2hlbiBgYHQueWVhciA8IDEwMDBgYCBldmVuIGlmIGBgZm9ybWF0YGAgZG9lcwotICAgbm90IGNvbnRhaW4gYGAlWWBgIGRpcmVjdGl2ZS4gIFRoZSA6bWV0aDpgc3RycHRpbWVgIG1ldGhvZCBjYW4KKyAgIFRoZSA6bWV0aDpgc3RycHRpbWVgIG1ldGhvZCBjYW4KICAgIHBhcnNlIHllYXJzIGluIHRoZSBmdWxsIFsxLCA5OTk5XSByYW5nZSwgYnV0IHllYXJzIDwgMTAwMCBtdXN0IGJlCiAgICB6ZXJvLWZpbGxlZCB0byA0LWRpZ2l0IHdpZHRoLgogCkBAIC0xODA2LDYgKzE4ODYsMTAgQEAKICAgICAgIEluIHByZXZpb3VzIHZlcnNpb25zLCA6bWV0aDpgc3RyZnRpbWVgIG1ldGhvZCB3YXMgcmVzdHJpY3RlZCB0bwogICAgICAgeWVhcnMgPj0gMTkwMC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEluIHZlcnNpb24gMy4yLCA6bWV0aDpgc3RyZnRpbWVgIG1ldGhvZCB3YXMgcmVzdHJpY3RlZCB0bworICAgICAgeWVhcnMgPj0gMTAwMC4KKwogKDYpCiAgICBGb3IgZXhhbXBsZSwgaWYgOm1ldGg6YHV0Y29mZnNldGAgcmV0dXJucyBgYHRpbWVkZWx0YShob3Vycz0tMywgbWludXRlcz0tMzApYGAsCiAgICBgYCV6YGAgaXMgcmVwbGFjZWQgd2l0aCB0aGUgc3RyaW5nIGBgJy0wMzMwJ2BgLgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvZGVidWcucnN0IGIvRG9jL2xpYnJhcnkvZGVidWcucnN0CmluZGV4IGIyZWU0ZmEuLmM2OWZiMWMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2RlYnVnLnJzdAorKysgYi9Eb2MvbGlicmFyeS9kZWJ1Zy5yc3QKQEAgLTEwLDcgKzEwLDggQEAKIC4uIHRvY3RyZWU6OgogCiAgICBiZGIucnN0CisgICBmYXVsdGhhbmRsZXIucnN0CiAgICBwZGIucnN0CiAgICBwcm9maWxlLnJzdAogICAgdGltZWl0LnJzdAotICAgdHJhY2UucnN0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorICAgdHJhY2UucnN0CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9kZWNpbWFsLnJzdCBiL0RvYy9saWJyYXJ5L2RlY2ltYWwucnN0CmluZGV4IGVmOGI0M2YuLjNmYTAwNmIgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2RlY2ltYWwucnN0CisrKyBiL0RvYy9saWJyYXJ5L2RlY2ltYWwucnN0CkBAIC05LDYgKzksNyBAQAogLi4gbW9kdWxlYXV0aG9yOjogUmF5bW9uZCBIZXR0aW5nZXIgPHB5dGhvbiBhdCByY24uY29tPgogLi4gbW9kdWxlYXV0aG9yOjogQWFoeiA8YWFoeiBhdCBwb2JveC5jb20+CiAuLiBtb2R1bGVhdXRob3I6OiBUaW0gUGV0ZXJzIDx0aW0ub25lIGF0IGNvbWNhc3QubmV0PgorLi4gbW9kdWxlYXV0aG9yOjogU3RlZmFuIEtyYWggPHNrcmFoIGF0IGJ5dGVyZWVmLm9yZz4KIC4uIHNlY3Rpb25hdXRob3I6OiBSYXltb25kIEQuIEhldHRpbmdlciA8cHl0aG9uIGF0IHJjbi5jb20+CiAKIC4uIGltcG9ydCBtb2R1bGVzIGZvciB0ZXN0aW5nIGlubGluZSBkb2N0ZXN0cyB3aXRoIHRoZSBTcGhpbnggZG9jdGVzdCBidWlsZGVyCkBAIC0yMCw4ICsyMSw5IEBACiAgICAjIG1ha2Ugc3VyZSBlYWNoIGdyb3VwIGdldHMgYSBmcmVzaCBjb250ZXh0CiAgICBzZXRjb250ZXh0KENvbnRleHQoKSkKIAotVGhlIDptb2Q6YGRlY2ltYWxgIG1vZHVsZSBwcm92aWRlcyBzdXBwb3J0IGZvciBkZWNpbWFsIGZsb2F0aW5nIHBvaW50Ci1hcml0aG1ldGljLiAgSXQgb2ZmZXJzIHNldmVyYWwgYWR2YW50YWdlcyBvdmVyIHRoZSA6Y2xhc3M6YGZsb2F0YCBkYXRhdHlwZToKK1RoZSA6bW9kOmBkZWNpbWFsYCBtb2R1bGUgcHJvdmlkZXMgc3VwcG9ydCBmb3IgZmFzdCBjb3JyZWN0bHktcm91bmRlZAorZGVjaW1hbCBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljLiBJdCBvZmZlcnMgc2V2ZXJhbCBhZHZhbnRhZ2VzIG92ZXIgdGhlCis6Y2xhc3M6YGZsb2F0YCBkYXRhdHlwZToKIAogKiBEZWNpbWFsICJpcyBiYXNlZCBvbiBhIGZsb2F0aW5nLXBvaW50IG1vZGVsIHdoaWNoIHdhcyBkZXNpZ25lZCB3aXRoIHBlb3BsZQogICBpbiBtaW5kLCBhbmQgbmVjZXNzYXJpbHkgaGFzIGEgcGFyYW1vdW50IGd1aWRpbmcgcHJpbmNpcGxlIC0tIGNvbXB1dGVycyBtdXN0CkBAIC05Miw3ICs5NCw3IEBACiBjb25zaWRlcmVkIGFzIGluZm9ybWF0aW9uYWwsIG9yIHRyZWF0ZWQgYXMgZXhjZXB0aW9ucy4gVGhlIHNpZ25hbHMgaW4gdGhlCiBkZWNpbWFsIG1vZHVsZSBhcmU6IDpjb25zdDpgQ2xhbXBlZGAsIDpjb25zdDpgSW52YWxpZE9wZXJhdGlvbmAsCiA6Y29uc3Q6YERpdmlzaW9uQnlaZXJvYCwgOmNvbnN0OmBJbmV4YWN0YCwgOmNvbnN0OmBSb3VuZGVkYCwgOmNvbnN0OmBTdWJub3JtYWxgLAotOmNvbnN0OmBPdmVyZmxvd2AsIGFuZCA6Y29uc3Q6YFVuZGVyZmxvd2AuCis6Y29uc3Q6YE92ZXJmbG93YCwgOmNvbnN0OmBVbmRlcmZsb3dgIGFuZCA6Y29uc3Q6YEZsb2F0T3BlcmF0aW9uYC4KIAogRm9yIGVhY2ggc2lnbmFsIHRoZXJlIGlzIGEgZmxhZyBhbmQgYSB0cmFwIGVuYWJsZXIuICBXaGVuIGEgc2lnbmFsIGlzCiBlbmNvdW50ZXJlZCwgaXRzIGZsYWcgaXMgc2V0IHRvIG9uZSwgdGhlbiwgaWYgdGhlIHRyYXAgZW5hYmxlciBpcwpAQCAtMTIyLDcgKzEyNCw3IEBACiAKICAgID4+PiBmcm9tIGRlY2ltYWwgaW1wb3J0ICoKICAgID4+PiBnZXRjb250ZXh0KCkKLSAgIENvbnRleHQocHJlYz0yOCwgcm91bmRpbmc9Uk9VTkRfSEFMRl9FVkVOLCBFbWluPS05OTk5OTk5OTksIEVtYXg9OTk5OTk5OTk5LAorICAgQ29udGV4dChwcmVjPTI4LCByb3VuZGluZz1ST1VORF9IQUxGX0VWRU4sIEVtaW49LTk5OTk5OSwgRW1heD05OTk5OTksCiAgICAgICAgICAgIGNhcGl0YWxzPTEsIGNsYW1wPTAsIGZsYWdzPVtdLCB0cmFwcz1bT3ZlcmZsb3csIERpdmlzaW9uQnlaZXJvLAogICAgICAgICAgICBJbnZhbGlkT3BlcmF0aW9uXSkKIApAQCAtMTMyLDcgKzEzNCw3IEBACiBDb25zdHJ1Y3Rpb24gZnJvbSBhbiBpbnRlZ2VyIG9yIGEgZmxvYXQgcGVyZm9ybXMgYW4gZXhhY3QgY29udmVyc2lvbiBvZiB0aGUKIHZhbHVlIG9mIHRoYXQgaW50ZWdlciBvciBmbG9hdC4gIERlY2ltYWwgbnVtYmVycyBpbmNsdWRlIHNwZWNpYWwgdmFsdWVzIHN1Y2ggYXMKIDpjb25zdDpgTmFOYCB3aGljaCBzdGFuZHMgZm9yICJOb3QgYSBudW1iZXIiLCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUKLTpjb25zdDpgSW5maW5pdHlgLCBhbmQgOmNvbnN0OmAtMGAuCis6Y29uc3Q6YEluZmluaXR5YCwgYW5kIDpjb25zdDpgLTBgOjoKIAogICAgPj4+IGdldGNvbnRleHQoKS5wcmVjID0gMjgKICAgID4+PiBEZWNpbWFsKDEwKQpAQCAtMTUyLDYgKzE1NCwyNSBAQAogICAgPj4+IERlY2ltYWwoJy1JbmZpbml0eScpCiAgICBEZWNpbWFsKCctSW5maW5pdHknKQogCitJZiB0aGUgOmV4YzpgRmxvYXRPcGVyYXRpb25gIHNpZ25hbCBpcyB0cmFwcGVkLCBhY2NpZGVudGFsIG1peGluZyBvZgorZGVjaW1hbHMgYW5kIGZsb2F0cyBpbiBjb25zdHJ1Y3RvcnMgb3Igb3JkZXJpbmcgY29tcGFyaXNvbnMgcmFpc2VzCithbiBleGNlcHRpb246OgorCisgICA+Pj4gYyA9IGdldGNvbnRleHQoKQorICAgPj4+IGMudHJhcHNbRmxvYXRPcGVyYXRpb25dID0gVHJ1ZQorICAgPj4+IERlY2ltYWwoMy4xNCkKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDEsIGluIDxtb2R1bGU+CisgICBkZWNpbWFsLkZsb2F0T3BlcmF0aW9uOiBbPGNsYXNzICdkZWNpbWFsLkZsb2F0T3BlcmF0aW9uJz5dCisgICA+Pj4gRGVjaW1hbCgnMy41JykgPCAzLjcKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gPG1vZHVsZT4KKyAgIGRlY2ltYWwuRmxvYXRPcGVyYXRpb246IFs8Y2xhc3MgJ2RlY2ltYWwuRmxvYXRPcGVyYXRpb24nPl0KKyAgID4+PiBEZWNpbWFsKCczLjUnKSA9PSAzLjUKKyAgIFRydWUKKworLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIFRoZSBzaWduaWZpY2FuY2Ugb2YgYSBuZXcgRGVjaW1hbCBpcyBkZXRlcm1pbmVkIHNvbGVseSBieSB0aGUgbnVtYmVyIG9mIGRpZ2l0cwogaW5wdXQuICBDb250ZXh0IHByZWNpc2lvbiBhbmQgcm91bmRpbmcgb25seSBjb21lIGludG8gcGxheSBkdXJpbmcgYXJpdGhtZXRpYwogb3BlcmF0aW9ucy4KQEAgLTE2OSw2ICsxOTAsMTYgQEAKICAgID4+PiBEZWNpbWFsKCczLjE0MTU5MjY1MzUnKSArIERlY2ltYWwoJzIuNzE4MjgxODI4NScpCiAgICBEZWNpbWFsKCc1Ljg1OTg4JykKIAorSWYgdGhlIGludGVybmFsIGxpbWl0cyBvZiB0aGUgQyB2ZXJzaW9uIGFyZSBleGNlZWRlZCwgY29uc3RydWN0aW5nCithIGRlY2ltYWwgcmFpc2VzIDpjbGFzczpgSW52YWxpZE9wZXJhdGlvbmA6OgorCisgICA+Pj4gRGVjaW1hbCgiMWU5OTk5OTk5OTk5OTk5OTk5OTk5IikKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gPG1vZHVsZT4KKyAgIGRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbjogWzxjbGFzcyAnZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uJz5dCisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisKIERlY2ltYWxzIGludGVyYWN0IHdlbGwgd2l0aCBtdWNoIG9mIHRoZSByZXN0IG9mIFB5dGhvbi4gIEhlcmUgaXMgYSBzbWFsbCBkZWNpbWFsCiBmbG9hdGluZyBwb2ludCBmbHlpbmcgY2lyY3VzOgogCkBAIC0yNDQsNyArMjc1LDcgQEAKICAgIERlY2ltYWwoJzAuMTQyODU3MTQyODU3MTQyODU3MTQyODU3MTQyODU3MTQyODU3MTQyODU3MTQyODU3MTQyODU3MTQyODU3JykKIAogICAgPj4+IEV4dGVuZGVkQ29udGV4dAotICAgQ29udGV4dChwcmVjPTksIHJvdW5kaW5nPVJPVU5EX0hBTEZfRVZFTiwgRW1pbj0tOTk5OTk5OTk5LCBFbWF4PTk5OTk5OTk5OSwKKyAgIENvbnRleHQocHJlYz05LCByb3VuZGluZz1ST1VORF9IQUxGX0VWRU4sIEVtaW49LTk5OTk5OSwgRW1heD05OTk5OTksCiAgICAgICAgICAgIGNhcGl0YWxzPTEsIGNsYW1wPTAsIGZsYWdzPVtdLCB0cmFwcz1bXSkKICAgID4+PiBzZXRjb250ZXh0KEV4dGVuZGVkQ29udGV4dCkKICAgID4+PiBEZWNpbWFsKDEpIC8gRGVjaW1hbCg3KQpAQCAtMjY5LDcgKzMwMCw3IEBACiAgICA+Pj4gRGVjaW1hbCgzNTUpIC8gRGVjaW1hbCgxMTMpCiAgICBEZWNpbWFsKCczLjE0MTU5MjkyJykKICAgID4+PiBnZXRjb250ZXh0KCkKLSAgIENvbnRleHQocHJlYz05LCByb3VuZGluZz1ST1VORF9IQUxGX0VWRU4sIEVtaW49LTk5OTk5OTk5OSwgRW1heD05OTk5OTk5OTksCisgICBDb250ZXh0KHByZWM9OSwgcm91bmRpbmc9Uk9VTkRfSEFMRl9FVkVOLCBFbWluPS05OTk5OTksIEVtYXg9OTk5OTk5LAogICAgICAgICAgICBjYXBpdGFscz0xLCBjbGFtcD0wLCBmbGFncz1bSW5leGFjdCwgUm91bmRlZF0sIHRyYXBzPVtdKQogCiBUaGUgKmZsYWdzKiBlbnRyeSBzaG93cyB0aGF0IHRoZSByYXRpb25hbCBhcHByb3hpbWF0aW9uIHRvIDpjb25zdDpgUGlgIHdhcwpAQCAtMzU4LDYgKzM4OSwxMCBAQAogICAgICAgVGhlIGFyZ3VtZW50IHRvIHRoZSBjb25zdHJ1Y3RvciBpcyBub3cgcGVybWl0dGVkIHRvIGJlIGEgOmNsYXNzOmBmbG9hdGAKICAgICAgIGluc3RhbmNlLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgOmNsYXNzOmBmbG9hdGAgYXJndW1lbnRzIHJhaXNlIGFuIGV4Y2VwdGlvbiBpZiB0aGUgOmV4YzpgRmxvYXRPcGVyYXRpb25gCisgICAgICB0cmFwIGlzIHNldC4gQnkgZGVmYXVsdCB0aGUgdHJhcCBpcyBvZmYuCisKICAgIERlY2ltYWwgZmxvYXRpbmcgcG9pbnQgb2JqZWN0cyBzaGFyZSBtYW55IHByb3BlcnRpZXMgd2l0aCB0aGUgb3RoZXIgYnVpbHQtaW4KICAgIG51bWVyaWMgdHlwZXMgc3VjaCBhcyA6Y2xhc3M6YGZsb2F0YCBhbmQgOmNsYXNzOmBpbnRgLiAgQWxsIG9mIHRoZSB1c3VhbCBtYXRoCiAgICBvcGVyYXRpb25zIGFuZCBzcGVjaWFsIG1ldGhvZHMgYXBwbHkuICBMaWtld2lzZSwgZGVjaW1hbCBvYmplY3RzIGNhbiBiZQpAQCAtODgwLDM5ICs5MTUsMzMgQEAKICAgIEluIHNpbmdsZSB0aHJlYWRlZCBlbnZpcm9ubWVudHMsIGl0IGlzIHByZWZlcmFibGUgdG8gbm90IHVzZSB0aGlzIGNvbnRleHQgYXQKICAgIGFsbC4gIEluc3RlYWQsIHNpbXBseSBjcmVhdGUgY29udGV4dHMgZXhwbGljaXRseSBhcyBkZXNjcmliZWQgYmVsb3cuCiAKLSAgIFRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgcHJlY2lzaW9uPTI4LCByb3VuZGluZz1ST1VORF9IQUxGX0VWRU4sIGFuZCBlbmFibGVkIHRyYXBzCi0gICBmb3IgT3ZlcmZsb3csIEludmFsaWRPcGVyYXRpb24sIGFuZCBEaXZpc2lvbkJ5WmVyby4KKyAgIFRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgOmF0dHI6YHByZWNgXCA9XCA6Y29uc3Q6YDI4YCwKKyAgIDphdHRyOmByb3VuZGluZ2BcID1cIDpjb25zdDpgUk9VTkRfSEFMRl9FVkVOYCwKKyAgIGFuZCBlbmFibGVkIHRyYXBzIGZvciA6Y2xhc3M6YE92ZXJmbG93YCwgOmNsYXNzOmBJbnZhbGlkT3BlcmF0aW9uYCwgYW5kCisgICA6Y2xhc3M6YERpdmlzaW9uQnlaZXJvYC4KIAogSW4gYWRkaXRpb24gdG8gdGhlIHRocmVlIHN1cHBsaWVkIGNvbnRleHRzLCBuZXcgY29udGV4dHMgY2FuIGJlIGNyZWF0ZWQgd2l0aCB0aGUKIDpjbGFzczpgQ29udGV4dGAgY29uc3RydWN0b3IuCiAKIAotLi4gY2xhc3M6OiBDb250ZXh0KHByZWM9Tm9uZSwgcm91bmRpbmc9Tm9uZSwgdHJhcHM9Tm9uZSwgZmxhZ3M9Tm9uZSwgRW1pbj1Ob25lLCBFbWF4PU5vbmUsIGNhcGl0YWxzPU5vbmUsIGNsYW1wPU5vbmUpCisuLiBjbGFzczo6IENvbnRleHQocHJlYz1Ob25lLCByb3VuZGluZz1Ob25lLCBFbWluPU5vbmUsIEVtYXg9Tm9uZSwgY2FwaXRhbHM9Tm9uZSwgY2xhbXA9Tm9uZSwgZmxhZ3M9Tm9uZSwgdHJhcHM9Tm9uZSkKIAogICAgQ3JlYXRlcyBhIG5ldyBjb250ZXh0LiAgSWYgYSBmaWVsZCBpcyBub3Qgc3BlY2lmaWVkIG9yIGlzIDpjb25zdDpgTm9uZWAsIHRoZQogICAgZGVmYXVsdCB2YWx1ZXMgYXJlIGNvcGllZCBmcm9tIHRoZSA6Y29uc3Q6YERlZmF1bHRDb250ZXh0YC4gIElmIHRoZSAqZmxhZ3MqCiAgICBmaWVsZCBpcyBub3Qgc3BlY2lmaWVkIG9yIGlzIDpjb25zdDpgTm9uZWAsIGFsbCBmbGFncyBhcmUgY2xlYXJlZC4KIAotICAgVGhlICpwcmVjKiBmaWVsZCBpcyBhIHBvc2l0aXZlIGludGVnZXIgdGhhdCBzZXRzIHRoZSBwcmVjaXNpb24gZm9yIGFyaXRobWV0aWMKLSAgIG9wZXJhdGlvbnMgaW4gdGhlIGNvbnRleHQuCisgICAqcHJlYyogaXMgYW4gaW50ZWdlciBpbiB0aGUgcmFuZ2UgWzpjb25zdDpgMWAsIDpjb25zdDpgTUFYX1BSRUNgXSB0aGF0IHNldHMKKyAgIHRoZSBwcmVjaXNpb24gZm9yIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBpbiB0aGUgY29udGV4dC4KIAotICAgVGhlICpyb3VuZGluZyogb3B0aW9uIGlzIG9uZSBvZjoKLQotICAgKiA6Y29uc3Q6YFJPVU5EX0NFSUxJTkdgICh0b3dhcmRzIDpjb25zdDpgSW5maW5pdHlgKSwKLSAgICogOmNvbnN0OmBST1VORF9ET1dOYCAodG93YXJkcyB6ZXJvKSwKLSAgICogOmNvbnN0OmBST1VORF9GTE9PUmAgKHRvd2FyZHMgOmNvbnN0OmAtSW5maW5pdHlgKSwKLSAgICogOmNvbnN0OmBST1VORF9IQUxGX0RPV05gICh0byBuZWFyZXN0IHdpdGggdGllcyBnb2luZyB0b3dhcmRzIHplcm8pLAotICAgKiA6Y29uc3Q6YFJPVU5EX0hBTEZfRVZFTmAgKHRvIG5lYXJlc3Qgd2l0aCB0aWVzIGdvaW5nIHRvIG5lYXJlc3QgZXZlbiBpbnRlZ2VyKSwKLSAgICogOmNvbnN0OmBST1VORF9IQUxGX1VQYCAodG8gbmVhcmVzdCB3aXRoIHRpZXMgZ29pbmcgYXdheSBmcm9tIHplcm8pLCBvcgotICAgKiA6Y29uc3Q6YFJPVU5EX1VQYCAoYXdheSBmcm9tIHplcm8pLgotICAgKiA6Y29uc3Q6YFJPVU5EXzA1VVBgIChhd2F5IGZyb20gemVybyBpZiBsYXN0IGRpZ2l0IGFmdGVyIHJvdW5kaW5nIHRvd2FyZHMgemVybwotICAgICB3b3VsZCBoYXZlIGJlZW4gMCBvciA1OyBvdGhlcndpc2UgdG93YXJkcyB6ZXJvKQorICAgVGhlICpyb3VuZGluZyogb3B0aW9uIGlzIG9uZSBvZiB0aGUgY29uc3RhbnRzIGxpc3RlZCBpbiB0aGUgc2VjdGlvbgorICAgYFJvdW5kaW5nIE1vZGVzYF8uCiAKICAgIFRoZSAqdHJhcHMqIGFuZCAqZmxhZ3MqIGZpZWxkcyBsaXN0IGFueSBzaWduYWxzIHRvIGJlIHNldC4gR2VuZXJhbGx5LCBuZXcKICAgIGNvbnRleHRzIHNob3VsZCBvbmx5IHNldCB0cmFwcyBhbmQgbGVhdmUgdGhlIGZsYWdzIGNsZWFyLgogCiAgICBUaGUgKkVtaW4qIGFuZCAqRW1heCogZmllbGRzIGFyZSBpbnRlZ2VycyBzcGVjaWZ5aW5nIHRoZSBvdXRlciBsaW1pdHMgYWxsb3dhYmxlCi0gICBmb3IgZXhwb25lbnRzLgorICAgZm9yIGV4cG9uZW50cy4gKkVtaW4qIG11c3QgYmUgaW4gdGhlIHJhbmdlIFs6Y29uc3Q6YE1JTl9FTUlOYCwgOmNvbnN0OmAwYF0sCisgICAqRW1heCogaW4gdGhlIHJhbmdlIFs6Y29uc3Q6YDBgLCA6Y29uc3Q6YE1BWF9FTUFYYF0uCiAKICAgIFRoZSAqY2FwaXRhbHMqIGZpZWxkIGlzIGVpdGhlciA6Y29uc3Q6YDBgIG9yIDpjb25zdDpgMWAgKHRoZSBkZWZhdWx0KS4gSWYgc2V0IHRvCiAgICA6Y29uc3Q6YDFgLCBleHBvbmVudHMgYXJlIHByaW50ZWQgd2l0aCBhIGNhcGl0YWwgOmNvbnN0OmBFYDsgb3RoZXJ3aXNlLCBhCkBAIC05NTEsNiArOTgwLDEyIEBACiAKICAgICAgIFJlc2V0cyBhbGwgb2YgdGhlIGZsYWdzIHRvIDpjb25zdDpgMGAuCiAKKyAgIC4uIG1ldGhvZDo6IGNsZWFyX3RyYXBzKCkKKworICAgICAgUmVzZXRzIGFsbCBvZiB0aGUgdHJhcHMgdG8gOmNvbnN0OmAwYC4KKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKICAgIC4uIG1ldGhvZDo6IGNvcHkoKQogCiAgICAgICBSZXR1cm4gYSBkdXBsaWNhdGUgb2YgdGhlIGNvbnRleHQuCkBAIC0xMjUwLDggKzEyODUsMTMgQEAKICAgICAgIFdpdGggdHdvIGFyZ3VtZW50cywgY29tcHV0ZSBgYHgqKnlgYC4gIElmIGBgeGBgIGlzIG5lZ2F0aXZlIHRoZW4gYGB5YGAKICAgICAgIG11c3QgYmUgaW50ZWdyYWwuICBUaGUgcmVzdWx0IHdpbGwgYmUgaW5leGFjdCB1bmxlc3MgYGB5YGAgaXMgaW50ZWdyYWwgYW5kCiAgICAgICB0aGUgcmVzdWx0IGlzIGZpbml0ZSBhbmQgY2FuIGJlIGV4cHJlc3NlZCBleGFjdGx5IGluICdwcmVjaXNpb24nIGRpZ2l0cy4KLSAgICAgIFRoZSByZXN1bHQgc2hvdWxkIGFsd2F5cyBiZSBjb3JyZWN0bHkgcm91bmRlZCwgdXNpbmcgdGhlIHJvdW5kaW5nIG1vZGUgb2YKLSAgICAgIHRoZSBjdXJyZW50IHRocmVhZCdzIGNvbnRleHQuCisgICAgICBUaGUgcm91bmRpbmcgbW9kZSBvZiB0aGUgY29udGV4dCBpcyB1c2VkLiBSZXN1bHRzIGFyZSBhbHdheXMgY29ycmVjdGx5LXJvdW5kZWQKKyAgICAgIGluIHRoZSBQeXRob24gdmVyc2lvbi4KKworICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICAgIFRoZSBDIG1vZHVsZSBjb21wdXRlcyA6bWV0aDpgcG93ZXJgIGluIHRlcm1zIG9mIHRoZSBjb3JyZWN0bHktcm91bmRlZAorICAgICAgICAgOm1ldGg6YGV4cGAgYW5kIDptZXRoOmBsbmAgZnVuY3Rpb25zLiBUaGUgcmVzdWx0IGlzIHdlbGwtZGVmaW5lZCBidXQKKyAgICAgICAgIG9ubHkgImFsbW9zdCBhbHdheXMgY29ycmVjdGx5LXJvdW5kZWQiLgogCiAgICAgICBXaXRoIHRocmVlIGFyZ3VtZW50cywgY29tcHV0ZSBgYCh4Kip5KSAlIG1vZHVsb2BgLiAgRm9yIHRoZSB0aHJlZSBhcmd1bWVudAogICAgICAgZm9ybSwgdGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnMgb24gdGhlIGFyZ3VtZW50cyBob2xkOgpAQCAtMTMzOSw2ICsxMzc5LDY5IEBACiAKIC4uICUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQogCisuLiBfZGVjaW1hbC1yb3VuZGluZy1tb2RlczoKKworQ29uc3RhbnRzCistLS0tLS0tLS0KKworVGhlIGNvbnN0YW50cyBpbiB0aGlzIHNlY3Rpb24gYXJlIG9ubHkgcmVsZXZhbnQgZm9yIHRoZSBDIG1vZHVsZS4gVGhleQorYXJlIGFsc28gaW5jbHVkZWQgaW4gdGhlIHB1cmUgUHl0aG9uIHZlcnNpb24gZm9yIGNvbXBhdGliaWxpdHkuCisKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAzMi1iaXQgICAgICAgIHwgICAgICAgICAgICA2NC1iaXQgICAgICAgICAgICAgfAorKz09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKK3wgLi4gZGF0YTo6IE1BWF9QUkVDICB8IDpjb25zdDpgNDI1MDAwMDAwYCAgfCA6Y29uc3Q6YDk5OTk5OTk5OTk5OTk5OTk5OWAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCAuLiBkYXRhOjogTUFYX0VNQVggIHwgOmNvbnN0OmA0MjUwMDAwMDBgICB8IDpjb25zdDpgOTk5OTk5OTk5OTk5OTk5OTk5YCAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IC4uIGRhdGE6OiBNSU5fRU1JTiAgfCA6Y29uc3Q6YC00MjUwMDAwMDBgIHwgOmNvbnN0OmAtOTk5OTk5OTk5OTk5OTk5OTk5YCAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgLi4gZGF0YTo6IE1JTl9FVElOWSB8IDpjb25zdDpgLTg0OTk5OTk5OWAgfCA6Y29uc3Q6YC0xOTk5OTk5OTk5OTk5OTk5OTk3YCB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCisKKy4uIGRhdGE6OiBIQVZFX1RIUkVBRFMKKworICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgVHJ1ZS4gSWYgUHl0aG9uIGlzIGNvbXBpbGVkIHdpdGhvdXQgdGhyZWFkcywgdGhlCisgICBDIHZlcnNpb24gYXV0b21hdGljYWxseSBkaXNhYmxlcyB0aGUgZXhwZW5zaXZlIHRocmVhZCBsb2NhbCBjb250ZXh0CisgICBtYWNoaW5lcnkuIEluIHRoaXMgY2FzZSwgdGhlIHZhbHVlIGlzIEZhbHNlLgorCitSb3VuZGluZyBtb2RlcworLS0tLS0tLS0tLS0tLS0KKworLi4gZGF0YTo6IFJPVU5EX0NFSUxJTkcKKworICAgUm91bmQgdG93YXJkcyA6Y29uc3Q6YEluZmluaXR5YC4KKworLi4gZGF0YTo6IFJPVU5EX0RPV04KKworICAgUm91bmQgdG93YXJkcyB6ZXJvLgorCisuLiBkYXRhOjogUk9VTkRfRkxPT1IKKworICAgUm91bmQgdG93YXJkcyA6Y29uc3Q6YC1JbmZpbml0eWAuCisKKy4uIGRhdGE6OiBST1VORF9IQUxGX0RPV04KKworICAgUm91bmQgdG8gbmVhcmVzdCB3aXRoIHRpZXMgZ29pbmcgdG93YXJkcyB6ZXJvLgorCisuLiBkYXRhOjogUk9VTkRfSEFMRl9FVkVOCisKKyAgIFJvdW5kIHRvIG5lYXJlc3Qgd2l0aCB0aWVzIGdvaW5nIHRvIG5lYXJlc3QgZXZlbiBpbnRlZ2VyLgorCisuLiBkYXRhOjogUk9VTkRfSEFMRl9VUAorCisgICBSb3VuZCB0byBuZWFyZXN0IHdpdGggdGllcyBnb2luZyBhd2F5IGZyb20gemVyby4KKworLi4gZGF0YTo6IFJPVU5EX1VQCisKKyAgIFJvdW5kIGF3YXkgZnJvbSB6ZXJvLgorCisuLiBkYXRhOjogUk9VTkRfMDVVUAorCisgICBSb3VuZCBhd2F5IGZyb20gemVybyBpZiBsYXN0IGRpZ2l0IGFmdGVyIHJvdW5kaW5nIHRvd2FyZHMgemVybyB3b3VsZCBoYXZlCisgICBiZWVuIDAgb3IgNTsgb3RoZXJ3aXNlIHJvdW5kIHRvd2FyZHMgemVyby4KKwogCiAuLiBfZGVjaW1hbC1zaWduYWxzOgogCkBAIC0xNDAzLDcgKzE1MDYsNiBAQAogICAgICAgSW5maW5pdHkgLyBJbmZpbml0eQogICAgICAgeCAlIDAKICAgICAgIEluZmluaXR5ICUgeAotICAgICAgeC5fcmVzY2FsZSggbm9uLWludGVnZXIgKQogICAgICAgc3FydCgteCkgYW5kIHggPiAwCiAgICAgICAwICoqIDAKICAgICAgIHggKiogKG5vbi1pbnRlZ2VyKQpAQCAtMTQ0Niw2ICsxNTQ4LDIzIEBACiAgICBPY2N1cnMgd2hlbiBhIHN1Ym5vcm1hbCByZXN1bHQgaXMgcHVzaGVkIHRvIHplcm8gYnkgcm91bmRpbmcuIDpjbGFzczpgSW5leGFjdGAKICAgIGFuZCA6Y2xhc3M6YFN1Ym5vcm1hbGAgYXJlIGFsc28gc2lnbmFsZWQuCiAKKworLi4gY2xhc3M6OiBGbG9hdE9wZXJhdGlvbgorCisgICAgRW5hYmxlIHN0cmljdGVyIHNlbWFudGljcyBmb3IgbWl4aW5nIGZsb2F0cyBhbmQgRGVjaW1hbHMuCisKKyAgICBJZiB0aGUgc2lnbmFsIGlzIG5vdCB0cmFwcGVkIChkZWZhdWx0KSwgbWl4aW5nIGZsb2F0cyBhbmQgRGVjaW1hbHMgaXMKKyAgICBwZXJtaXR0ZWQgaW4gdGhlIDpjbGFzczpgfmRlY2ltYWwuRGVjaW1hbGAgY29uc3RydWN0b3IsCisgICAgOm1ldGg6YH5kZWNpbWFsLkNvbnRleHQuY3JlYXRlX2RlY2ltYWxgIGFuZCBhbGwgY29tcGFyaXNvbiBvcGVyYXRvcnMuCisgICAgQm90aCBjb252ZXJzaW9uIGFuZCBjb21wYXJpc29ucyBhcmUgZXhhY3QuIEFueSBvY2N1cnJlbmNlIG9mIGEgbWl4ZWQKKyAgICBvcGVyYXRpb24gaXMgc2lsZW50bHkgcmVjb3JkZWQgYnkgc2V0dGluZyA6ZXhjOmBGbG9hdE9wZXJhdGlvbmAgaW4gdGhlCisgICAgY29udGV4dCBmbGFncy4gRXhwbGljaXQgY29udmVyc2lvbnMgd2l0aCA6bWV0aDpgfmRlY2ltYWwuRGVjaW1hbC5mcm9tX2Zsb2F0YAorICAgIG9yIDptZXRoOmB+ZGVjaW1hbC5Db250ZXh0LmNyZWF0ZV9kZWNpbWFsX2Zyb21fZmxvYXRgIGRvIG5vdCBzZXQgdGhlIGZsYWcuCisKKyAgICBPdGhlcndpc2UgKHRoZSBzaWduYWwgaXMgdHJhcHBlZCksIG9ubHkgZXF1YWxpdHkgY29tcGFyaXNvbnMgYW5kIGV4cGxpY2l0CisgICAgY29udmVyc2lvbnMgYXJlIHNpbGVudC4gQWxsIG90aGVyIG1peGVkIG9wZXJhdGlvbnMgcmFpc2UgOmV4YzpgRmxvYXRPcGVyYXRpb25gLgorCisKIFRoZSBmb2xsb3dpbmcgdGFibGUgc3VtbWFyaXplcyB0aGUgaGllcmFyY2h5IG9mIHNpZ25hbHM6OgogCiAgICBleGNlcHRpb25zLkFyaXRobWV0aWNFcnJvcihleGNlcHRpb25zLkV4Y2VwdGlvbikKQEAgLTE0NTgsMTAgKzE1NzcsMTIgQEAKICAgICAgICAgICAgSW52YWxpZE9wZXJhdGlvbgogICAgICAgICAgICBSb3VuZGVkCiAgICAgICAgICAgIFN1Ym5vcm1hbAorICAgICAgICAgICBGbG9hdE9wZXJhdGlvbihEZWNpbWFsRXhjZXB0aW9uLCBleGNlcHRpb25zLlR5cGVFcnJvcikKIAogLi4gJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlCiAKIAorCiAuLiBfZGVjaW1hbC1ub3RlczoKIAogRmxvYXRpbmcgUG9pbnQgTm90ZXMKQEAgLTE1NzEsNyArMTY5Miw3IEBACiB0aGUgZm9sbG93aW5nIGNhbGN1bGF0aW9uIHJldHVybnMgYSB2YWx1ZSBlcXVhbCB0byB6ZXJvOgogCiAgICA+Pj4gMSAvIERlY2ltYWwoJ0luZmluaXR5JykKLSAgIERlY2ltYWwoJzBFLTEwMDAwMDAwMjYnKQorICAgRGVjaW1hbCgnMEUtMTAwMDAyNicpCiAKIC4uICUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQogCkBAIC0xNTgzLDcgKzE3MDQsNyBAQAogCiBUaGUgOmZ1bmM6YGdldGNvbnRleHRgIGZ1bmN0aW9uIGFjY2Vzc2VzIGEgZGlmZmVyZW50IDpjbGFzczpgQ29udGV4dGAgb2JqZWN0IGZvcgogZWFjaCB0aHJlYWQuICBIYXZpbmcgc2VwYXJhdGUgdGhyZWFkIGNvbnRleHRzIG1lYW5zIHRoYXQgdGhyZWFkcyBtYXkgbWFrZQotY2hhbmdlcyAoc3VjaCBhcyBgYGdldGNvbnRleHQucHJlYz0xMGBgKSB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggb3RoZXIgdGhyZWFkcy4KK2NoYW5nZXMgKHN1Y2ggYXMgYGBnZXRjb250ZXh0KCkucHJlYz0xMGBgKSB3aXRob3V0IGludGVyZmVyaW5nIHdpdGggb3RoZXIgdGhyZWFkcy4KIAogTGlrZXdpc2UsIHRoZSA6ZnVuYzpgc2V0Y29udGV4dGAgZnVuY3Rpb24gYXV0b21hdGljYWxseSBhc3NpZ25zIGl0cyB0YXJnZXQgdG8KIHRoZSBjdXJyZW50IHRocmVhZC4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2RlcGdyYXBoLW91dHB1dC5wbmcgYi9Eb2MvbGlicmFyeS9kZXBncmFwaC1vdXRwdXQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2MGJiMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2MvbGlicmFyeS9kZXBncmFwaC1vdXRwdXQucG5nCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2RldmVsb3BtZW50LnJzdCBiL0RvYy9saWJyYXJ5L2RldmVsb3BtZW50LnJzdAppbmRleCBjODIyZTA4Li4yMzY4NzY5IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9kZXZlbG9wbWVudC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZGV2ZWxvcG1lbnQucnN0CkBAIC0xOSw1ICsxOSw4IEBACiAgICBweWRvYy5yc3QKICAgIGRvY3Rlc3QucnN0CiAgICB1bml0dGVzdC5yc3QKKyAgIHVuaXR0ZXN0Lm1vY2sucnN0CisgICB1bml0dGVzdC5tb2NrLWV4YW1wbGVzLnJzdAogICAgMnRvMy5yc3QKICAgIHRlc3QucnN0CisgICB2ZW52LnJzdApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvZGlmZmxpYi5yc3QgYi9Eb2MvbGlicmFyeS9kaWZmbGliLnJzdAppbmRleCBiZGMzN2IzLi44MzZlMjQwIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9kaWZmbGliLnJzdAorKysgYi9Eb2MvbGlicmFyeS9kaWZmbGliLnJzdApAQCAtNzUyLDggKzc1Miw4IEBACiAgICAgICAgIyB3ZSdyZSBwYXNzaW5nIHRoZXNlIGFzIGFyZ3VtZW50cyB0byB0aGUgZGlmZiBmdW5jdGlvbgogICAgICAgIGZyb21kYXRlID0gdGltZS5jdGltZShvcy5zdGF0KGZyb21maWxlKS5zdF9tdGltZSkKICAgICAgICB0b2RhdGUgPSB0aW1lLmN0aW1lKG9zLnN0YXQodG9maWxlKS5zdF9tdGltZSkKLSAgICAgICBmcm9tbGluZXMgPSBvcGVuKGZyb21maWxlLCAnVScpLnJlYWRsaW5lcygpCi0gICAgICAgdG9saW5lcyA9IG9wZW4odG9maWxlLCAnVScpLnJlYWRsaW5lcygpCisgICAgICAgd2l0aCBvcGVuKGZyb21saW5lcykgYXMgZnJvbWYsIG9wZW4odG9maWxlKSBhcyB0b2Y6CisgICAgICAgICAgIGZyb21saW5lcywgdG9saW5lcyA9IGxpc3QoZnJvbWYpLCBsaXN0KHRvZikKIAogICAgICAgIGlmIG9wdGlvbnMudToKICAgICAgICAgICAgZGlmZiA9IGRpZmZsaWIudW5pZmllZF9kaWZmKGZyb21saW5lcywgdG9saW5lcywgZnJvbWZpbGUsIHRvZmlsZSwKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2Rpcy5yc3QgYi9Eb2MvbGlicmFyeS9kaXMucnN0CmluZGV4IDc5Y2M1ODMuLjZkMDhhMGMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2Rpcy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZGlzLnJzdApAQCAtMTcxLDExICsxNzEsNiBAQAogCiAqKkdlbmVyYWwgaW5zdHJ1Y3Rpb25zKioKIAotLi4gb3Bjb2RlOjogU1RPUF9DT0RFCi0KLSAgIEluZGljYXRlcyBlbmQtb2YtY29kZSB0byB0aGUgY29tcGlsZXIsIG5vdCB1c2VkIGJ5IHRoZSBpbnRlcnByZXRlci4KLQotCiAuLiBvcGNvZGU6OiBOT1AKIAogICAgRG8gbm90aGluZyBjb2RlLiAgVXNlZCBhcyBhIHBsYWNlaG9sZGVyIGJ5IHRoZSBieXRlY29kZSBvcHRpbWl6ZXIuCkBAIC00MzYsNiArNDMxLDEzIEBACiAgICBQb3BzIGBgVE9TYGAgYW5kIHlpZWxkcyBpdCBmcm9tIGEgOnRlcm06YGdlbmVyYXRvcmAuCiAKIAorLi4gb3Bjb2RlOjogWUlFTERfRlJPTQorCisgICBQb3BzIGBgVE9TYGAgYW5kIGRlbGVnYXRlcyB0byBpdCBhcyBhIHN1Yml0ZXJhdG9yIGZyb20gYSA6dGVybTpgZ2VuZXJhdG9yYC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gb3Bjb2RlOjogSU1QT1JUX1NUQVIKIAogICAgTG9hZHMgYWxsIHN5bWJvbHMgbm90IHN0YXJ0aW5nIHdpdGggYGAnXydgYCBkaXJlY3RseSBmcm9tIHRoZSBtb2R1bGUgVE9TIHRvIHRoZQpAQCAtNzUyLDkgKzc1NCwxMCBAQAogCiAuLiBvcGNvZGU6OiBNQUtFX0ZVTkNUSU9OIChhcmdjKQogCi0gICBQdXNoZXMgYSBuZXcgZnVuY3Rpb24gb2JqZWN0IG9uIHRoZSBzdGFjay4gIFRPUyBpcyB0aGUgY29kZSBhc3NvY2lhdGVkIHdpdGggdGhlCi0gICBmdW5jdGlvbi4gIFRoZSBmdW5jdGlvbiBvYmplY3QgaXMgZGVmaW5lZCB0byBoYXZlICphcmdjKiBkZWZhdWx0IHBhcmFtZXRlcnMsCi0gICB3aGljaCBhcmUgZm91bmQgYmVsb3cgVE9TLgorICAgUHVzaGVzIGEgbmV3IGZ1bmN0aW9uIG9iamVjdCBvbiB0aGUgc3RhY2suICBUT1MgaXMgdGhlCisgICA6dGVybTpgcXVhbGlmaWVkIG5hbWVgIG9mIHRoZSBmdW5jdGlvbjsgVE9TMSBpcyB0aGUgY29kZSBhc3NvY2lhdGVkIHdpdGgKKyAgIHRoZSBmdW5jdGlvbi4gIFRoZSBmdW5jdGlvbiBvYmplY3QgaXMgZGVmaW5lZCB0byBoYXZlICphcmdjKiBkZWZhdWx0IHBhcmFtZXRlcnMsCisgICB3aGljaCBhcmUgZm91bmQgYmVsb3cgVE9TMS4KIAogCiAuLiBvcGNvZGU6OiBNQUtFX0NMT1NVUkUgKGFyZ2MpCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9kaXN0dXRpbHMucnN0IGIvRG9jL2xpYnJhcnkvZGlzdHV0aWxzLnJzdAppbmRleCAyMzhiNzlkLi4xMWEyOTQ5IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9kaXN0dXRpbHMucnN0CisrKyBiL0RvYy9saWJyYXJ5L2Rpc3R1dGlscy5yc3QKQEAgLTEyLDE4ICsxMiwxNCBAQAogMTAwJS1wdXJlIFB5dGhvbiwgb3IgbWF5IGJlIGV4dGVuc2lvbiBtb2R1bGVzIHdyaXR0ZW4gaW4gQywgb3IgbWF5IGJlCiBjb2xsZWN0aW9ucyBvZiBQeXRob24gcGFja2FnZXMgd2hpY2ggaW5jbHVkZSBtb2R1bGVzIGNvZGVkIGluIGJvdGggUHl0aG9uIGFuZCBDLgogCi1UaGlzIHBhY2thZ2UgaXMgZGlzY3Vzc2VkIGluIHR3byBzZXBhcmF0ZSBjaGFwdGVyczoKIAorVXNlciBkb2N1bWVudGF0aW9uIGFuZCBBUEkgcmVmZXJlbmNlIGFyZSBwcm92aWRlZCBpbiBhbm90aGVyIGRvY3VtZW50OgogCiAuLiBzZWVhbHNvOjoKIAogICAgOnJlZjpgZGlzdHV0aWxzLWluZGV4YAogICAgICAgVGhlIG1hbnVhbCBmb3IgZGV2ZWxvcGVycyBhbmQgcGFja2FnZXJzIG9mIFB5dGhvbiBtb2R1bGVzLiAgVGhpcyBkZXNjcmliZXMKICAgICAgIGhvdyB0byBwcmVwYXJlIDptb2Q6YGRpc3R1dGlsc2BcIC1iYXNlZCBwYWNrYWdlcyBzbyB0aGF0IHRoZXkgbWF5IGJlCi0gICAgICBlYXNpbHkgaW5zdGFsbGVkIGludG8gYW4gZXhpc3RpbmcgUHl0aG9uIGluc3RhbGxhdGlvbi4KLQotICAgOnJlZjpgaW5zdGFsbC1pbmRleGAKLSAgICAgIEFuICJhZG1pbmlzdHJhdG9ycyIgbWFudWFsIHdoaWNoIGluY2x1ZGVzIGluZm9ybWF0aW9uIG9uIGluc3RhbGxpbmcKLSAgICAgIG1vZHVsZXMgaW50byBhbiBleGlzdGluZyBQeXRob24gaW5zdGFsbGF0aW9uLiAgWW91IGRvIG5vdCBuZWVkIHRvIGJlIGEKLSAgICAgIFB5dGhvbiBwcm9ncmFtbWVyIHRvIHJlYWQgdGhpcyBtYW51YWwuCi0KKyAgICAgIGVhc2lseSBpbnN0YWxsZWQgaW50byBhbiBleGlzdGluZyBQeXRob24gaW5zdGFsbGF0aW9uLiAgSWYgYWxzbyBjb250YWlucworICAgICAgaW5zdHJ1Y3Rpb25zIGZvciBlbmQtdXNlcnMgd2FudGluZyB0byBpbnN0YWxsIGEgZGlzdHV0aWxzLWJhc2VkIHBhY2thZ2UsCisgICAgICA6cmVmOmBpbnN0YWxsLWluZGV4YC4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2VtYWlsLmVycm9ycy5yc3QgYi9Eb2MvbGlicmFyeS9lbWFpbC5lcnJvcnMucnN0CmluZGV4IGQ4ZjMzMGYuLjlmMGE5ZTIgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2VtYWlsLmVycm9ycy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZW1haWwuZXJyb3JzLnJzdApAQCAtNzMsMTcgKzczLDM4IEBACiAqIDpjbGFzczpgU3RhcnRCb3VuZGFyeU5vdEZvdW5kRGVmZWN0YCAtLSBUaGUgc3RhcnQgYm91bmRhcnkgY2xhaW1lZCBpbiB0aGUKICAgOm1haWxoZWFkZXI6YENvbnRlbnQtVHlwZWAgaGVhZGVyIHdhcyBuZXZlciBmb3VuZC4KIAorKiA6Y2xhc3M6YENsb3NlQm91bmRhcnlOb3RGb3VuZERlZmVjdGAgLS0gQSBzdGFydCBib3VuZGFyeSB3YXMgZm91bmQsIGJ1dAorICBubyBjb3JyZXNwb25kaW5nIGNsb3NlIGJvdW5kYXJ5IHdhcyBldmVyIGZvdW5kLgorCisgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAqIDpjbGFzczpgRmlyc3RIZWFkZXJMaW5lSXNDb250aW51YXRpb25EZWZlY3RgIC0tIFRoZSBtZXNzYWdlIGhhZCBhIGNvbnRpbnVhdGlvbgogICBsaW5lIGFzIGl0cyBmaXJzdCBoZWFkZXIgbGluZS4KIAogKiA6Y2xhc3M6YE1pc3BsYWNlZEVudmVsb3BlSGVhZGVyRGVmZWN0YCAtIEEgIlVuaXggRnJvbSIgaGVhZGVyIHdhcyBmb3VuZCBpbiB0aGUKICAgbWlkZGxlIG9mIGEgaGVhZGVyIGJsb2NrLgogCisqIDpjbGFzczpgTWlzc2luZ0hlYWRlckJvZHlTZXBhcmF0b3JEZWZlY3RgIC0gQSBsaW5lIHdhcyBmb3VuZCB3aGlsZSBwYXJzaW5nCisgIGhlYWRlcnMgdGhhdCBoYWQgbm8gbGVhZGluZyB3aGl0ZSBzcGFjZSBidXQgY29udGFpbmVkIG5vICc6Jy4gIFBhcnNpbmcKKyAgY29udGludWVzIGFzc3VtaW5nIHRoYXQgdGhlIGxpbmUgcmVwcmVzZW50cyB0aGUgZmlyc3QgbGluZSBvZiB0aGUgYm9keS4KKworICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogKiA6Y2xhc3M6YE1hbGZvcm1lZEhlYWRlckRlZmVjdGAgLS0gQSBoZWFkZXIgd2FzIGZvdW5kIHRoYXQgd2FzIG1pc3NpbmcgYSBjb2xvbiwKICAgb3Igd2FzIG90aGVyd2lzZSBtYWxmb3JtZWQuCiAKKyAgLi4gZGVwcmVjYXRlZDo6IDMuMworICAgICBUaGlzIGRlZmVjdCBoYXMgbm90IGJlZW4gdXNlZCBmb3Igc2V2ZXJhbCBQeXRob24gdmVyc2lvbnMuCisKICogOmNsYXNzOmBNdWx0aXBhcnRJbnZhcmlhbnRWaW9sYXRpb25EZWZlY3RgIC0tIEEgbWVzc2FnZSBjbGFpbWVkIHRvIGJlIGEKICAgOm1pbWV0eXBlOmBtdWx0aXBhcnRgLCBidXQgbm8gc3VicGFydHMgd2VyZSBmb3VuZC4gIE5vdGUgdGhhdCB3aGVuIGEgbWVzc2FnZSBoYXMKICAgdGhpcyBkZWZlY3QsIGl0cyA6bWV0aDpgaXNfbXVsdGlwYXJ0YCBtZXRob2QgbWF5IHJldHVybiBmYWxzZSBldmVuIHRob3VnaCBpdHMKICAgY29udGVudCB0eXBlIGNsYWltcyB0byBiZSA6bWltZXR5cGU6YG11bHRpcGFydGAuCiAKKyogOmNsYXNzOmBJbnZhbGlkQmFzZTY0UGFkZGluZ0RlZmVjdGAgLS0gV2hlbiBkZWNvZGluZyBhIGJsb2NrIG9mIGJhc2U2NAorICBlbm9jZGVkIGJ5dGVzLCB0aGUgcGFkZGluZyB3YXMgbm90IGNvcnJlY3QuICBFbm91Z2ggcGFkZGluZyBpcyBhZGRlZCB0bworICBwZXJmb3JtIHRoZSBkZWNvZGUsIGJ1dCB0aGUgcmVzdWx0aW5nIGRlY29kZWQgYnl0ZXMgbWF5IGJlIGludmFsaWQuCisKKyogOmNsYXNzOmBJbnZhbGlkQmFzZTY0Q2hhcmFjdGVyc0RlZmVjdGAgLS0gV2hlbiBkZWNvZGluZyBhIGJsb2NrIG9mIGJhc2U2NAorICBlbm9jZGVkIGJ5dGVzLCBjaGFyYWN0ZXJzIG91dHNpZGUgdGhlIGJhc2U2NCBhbHBoZWJldCB3ZXJlIGVuY291bnRlcmVkLgorICBUaGUgY2hhcmFjdGVycyBhcmUgaWdub3JlZCwgYnV0IHRoZSByZXN1bHRpbmcgZGVjb2RlZCBieXRlcyBtYXkgYmUgaW52YWxpZC4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2VtYWlsLmdlbmVyYXRvci5yc3QgYi9Eb2MvbGlicmFyeS9lbWFpbC5nZW5lcmF0b3IucnN0CmluZGV4IDg4YzYyYTIuLmMxNzJhY2IgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2VtYWlsLmdlbmVyYXRvci5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZW1haWwuZ2VuZXJhdG9yLnJzdApAQCAtMzIsNyArMzIsNyBAQAogOm1vZDpgZW1haWwuZ2VuZXJhdG9yYCBtb2R1bGU6CiAKIAotLi4gY2xhc3M6OiBHZW5lcmF0b3Iob3V0ZnAsIG1hbmdsZV9mcm9tXz1UcnVlLCBtYXhoZWFkZXJsZW49NzgpCisuLiBjbGFzczo6IEdlbmVyYXRvcihvdXRmcCwgbWFuZ2xlX2Zyb21fPVRydWUsIG1heGhlYWRlcmxlbj03OCwgKiwgcG9saWN5PU5vbmUpCiAKICAgIFRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlIDpjbGFzczpgR2VuZXJhdG9yYCBjbGFzcyB0YWtlcyBhIDp0ZXJtOmBmaWxlLWxpa2Ugb2JqZWN0YAogICAgY2FsbGVkICpvdXRmcCogZm9yIGFuIGFyZ3VtZW50LiAgKm91dGZwKiBtdXN0IHN1cHBvcnQgdGhlIDptZXRoOmB3cml0ZWAgbWV0aG9kCkBAIC01MywxMCArNTMsMTcgQEAKICAgIDpjbGFzczpgfmVtYWlsLmhlYWRlci5IZWFkZXJgIGNsYXNzLiAgU2V0IHRvIHplcm8gdG8gZGlzYWJsZSBoZWFkZXIgd3JhcHBpbmcuCiAgICBUaGUgZGVmYXVsdCBpcyA3OCwgYXMgcmVjb21tZW5kZWQgKGJ1dCBub3QgcmVxdWlyZWQpIGJ5IDpyZmM6YDI4MjJgLgogCisgICBUaGUgKnBvbGljeSoga2V5d29yZCBzcGVjaWZpZXMgYSA6bW9kOmB+ZW1haWwucG9saWN5YCBvYmplY3QgdGhhdCBjb250cm9scyBhCisgICBudW1iZXIgb2YgYXNwZWN0cyBvZiB0aGUgZ2VuZXJhdG9yJ3Mgb3BlcmF0aW9uLiAgSWYgbm8gKnBvbGljeSogaXMgc3BlY2lmaWVkLAorICAgdGhlbiB0aGUgKnBvbGljeSogYXR0YWNoZWQgdG8gdGhlIG1lc3NhZ2Ugb2JqZWN0IHBhc3NlZCB0byA6YXR0cjpgZmxhdHRlbmAKKyAgIGlzIHVzZWQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zIEFkZGVkIHRoZSAqcG9saWN5KiBrZXl3b3JkLgorCiAgICBUaGUgb3RoZXIgcHVibGljIDpjbGFzczpgR2VuZXJhdG9yYCBtZXRob2RzIGFyZToKIAogCi0gICAuLiBtZXRob2Q6OiBmbGF0dGVuKG1zZywgdW5peGZyb209RmFsc2UsIGxpbmVzZXA9J1xcbicpCisgICAuLiBtZXRob2Q6OiBmbGF0dGVuKG1zZywgdW5peGZyb209RmFsc2UsIGxpbmVzZXA9Tm9uZSkKIAogICAgICAgUHJpbnQgdGhlIHRleHR1YWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1lc3NhZ2Ugb2JqZWN0IHN0cnVjdHVyZSByb290ZWQgYXQKICAgICAgICptc2cqIHRvIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpZWQgd2hlbiB0aGUgOmNsYXNzOmBHZW5lcmF0b3JgIGluc3RhbmNlCkBAIC03MiwxOSArNzksMjAgQEAKICAgICAgIE5vdGUgdGhhdCBmb3Igc3VicGFydHMsIG5vIGVudmVsb3BlIGhlYWRlciBpcyBldmVyIHByaW50ZWQuCiAKICAgICAgIE9wdGlvbmFsICpsaW5lc2VwKiBzcGVjaWZpZXMgdGhlIGxpbmUgc2VwYXJhdG9yIGNoYXJhY3RlciB1c2VkIHRvCi0gICAgICB0ZXJtaW5hdGUgbGluZXMgaW4gdGhlIG91dHB1dC4gIEl0IGRlZmF1bHRzIHRvIGBgXG5gYCBiZWNhdXNlIHRoYXQgaXMKLSAgICAgIHRoZSBtb3N0IHVzZWZ1bCB2YWx1ZSBmb3IgUHl0aG9uIGFwcGxpY2F0aW9uIGNvZGUgKG90aGVyIGxpYnJhcnkgcGFja2FnZXMKLSAgICAgIGV4cGVjdCBgYFxuYGAgc2VwYXJhdGVkIGxpbmVzKS4gIGBgbGluZXNlcD1cclxuYGAgY2FuIGJlIHVzZWQgdG8KLSAgICAgIGdlbmVyYXRlIG91dHB1dCB3aXRoIFJGQy1jb21wbGlhbnQgbGluZSBzZXBhcmF0b3JzLgorICAgICAgdGVybWluYXRlIGxpbmVzIGluIHRoZSBvdXRwdXQuICBJZiBzcGVjaWZpZWQgaXQgb3ZlcnJpZGVzIHRoZSB2YWx1ZQorICAgICAgc3BlY2lmaWVkIGJ5IHRoZSAqbXNnKlwncyBvciBgYEdlbmVyYXRvcmBgXCdzIGBgcG9saWN5YGAuCiAKLSAgICAgIE1lc3NhZ2VzIHBhcnNlZCB3aXRoIGEgQnl0ZXMgcGFyc2VyIHRoYXQgaGF2ZSBhCi0gICAgICA6bWFpbGhlYWRlcjpgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZ2Agb2YgOGJpdCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhCi0gICAgICB1c2UgYSA3Yml0IENvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcuICBOb24tQVNDSUkgYnl0ZXMgaW4gdGhlIGhlYWRlcnMKLSAgICAgIHdpbGwgYmUgOnJmYzpgMjA0N2AgZW5jb2RlZCB3aXRoIGEgY2hhcnNldCBvZiBgdW5rbm93bi04Yml0YC4KKyAgICAgIEJlY2F1c2Ugc3RyaW5ncyBjYW5ub3QgcmVwcmVzZW50IG5vbi1BU0NJSSBieXRlcywgaWYgdGhlIHBvbGljeSB0aGF0CisgICAgICBhcHBsaWVzIHdoZW4gYGBmbGF0dGVuYGAgaXMgcnVuIGhhcyA6YXR0cjpgfmVtYWlsLnBvbGljeS5Qb2xpY3kuY3RlX3R5cGVgCisgICAgICBzZXQgdG8gYGA4Yml0YGAsIGBgR2VuZXJhdG9yYGAgd2lsbCBvcGVyYXRlIGFzIGlmIGl0IHdlcmUgc2V0IHRvCisgICAgICBgYDdiaXRgYC4gIFRoaXMgbWVhbnMgdGhhdCBtZXNzYWdlcyBwYXJzZWQgd2l0aCBhIEJ5dGVzIHBhcnNlciB0aGF0IGhhdmUKKyAgICAgIGEgOm1haWxoZWFkZXI6YENvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmdgIG9mIGBgOGJpdGBgIHdpbGwgYmUgY29udmVydGVkCisgICAgICB0byBhIHVzZSBhIGBgN2JpdGBgIENvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcuICBOb24tQVNDSUkgYnl0ZXMgaW4gdGhlCisgICAgICBoZWFkZXJzIHdpbGwgYmUgOnJmYzpgMjA0N2AgZW5jb2RlZCB3aXRoIGEgY2hhcnNldCBvZiBgYHVua25vd24tOGJpdGBgLgogCiAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgotICAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgcmUtZW5jb2RpbmcgOGJpdCBtZXNzYWdlIGJvZGllcywgYW5kIHRoZSAqbGluZXNlcCoKLSAgICAgICAgIGFyZ3VtZW50LgorICAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgcmUtZW5jb2RpbmcgYGA4Yml0YGAgbWVzc2FnZSBib2RpZXMsIGFuZCB0aGUKKyAgICAgICAgICpsaW5lc2VwKiBhcmd1bWVudC4KIAogICAgLi4gbWV0aG9kOjogY2xvbmUoZnApCiAKQEAgLTEwMyw3ICsxMTEsOCBAQAogZm9ybWF0dGVkIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIG1lc3NhZ2Ugb2JqZWN0LiAgRm9yIG1vcmUgZGV0YWlsLCBzZWUKIDptb2Q6YGVtYWlsLm1lc3NhZ2VgLgogCi0uLiBjbGFzczo6IEJ5dGVzR2VuZXJhdG9yKG91dGZwLCBtYW5nbGVfZnJvbV89VHJ1ZSwgbWF4aGVhZGVybGVuPTc4KQorLi4gY2xhc3M6OiBCeXRlc0dlbmVyYXRvcihvdXRmcCwgbWFuZ2xlX2Zyb21fPVRydWUsIG1heGhlYWRlcmxlbj03OCwgKiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3k9cG9saWN5LmRlZmF1bHQpCiAKICAgIFRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlIDpjbGFzczpgQnl0ZXNHZW5lcmF0b3JgIGNsYXNzIHRha2VzIGEgYmluYXJ5CiAgICA6dGVybTpgZmlsZS1saWtlIG9iamVjdGAgY2FsbGVkICpvdXRmcCogZm9yIGFuIGFyZ3VtZW50LiAgKm91dGZwKiBtdXN0CkBAIC0xMjUsMTkgKzEzNCwzMSBAQAogICAgd3JhcHBpbmcuICBUaGUgZGVmYXVsdCBpcyA3OCwgYXMgcmVjb21tZW5kZWQgKGJ1dCBub3QgcmVxdWlyZWQpIGJ5CiAgICA6cmZjOmAyODIyYC4KIAorICAgVGhlICpwb2xpY3kqIGtleXdvcmQgc3BlY2lmaWVzIGEgOm1vZDpgfmVtYWlsLnBvbGljeWAgb2JqZWN0IHRoYXQgY29udHJvbHMgYQorICAgbnVtYmVyIG9mIGFzcGVjdHMgb2YgdGhlIGdlbmVyYXRvcidzIG9wZXJhdGlvbi4gIFRoZSBkZWZhdWx0IHBvbGljeQorICAgbWFpbnRhaW5zIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zIEFkZGVkIHRoZSAqcG9saWN5KiBrZXl3b3JkLgorCiAgICBUaGUgb3RoZXIgcHVibGljIDpjbGFzczpgQnl0ZXNHZW5lcmF0b3JgIG1ldGhvZHMgYXJlOgogCiAKLSAgIC4uIG1ldGhvZDo6IGZsYXR0ZW4obXNnLCB1bml4ZnJvbT1GYWxzZSwgbGluZXNlcD0nXG4nKQorICAgLi4gbWV0aG9kOjogZmxhdHRlbihtc2csIHVuaXhmcm9tPUZhbHNlLCBsaW5lc2VwPU5vbmUpCiAKICAgICAgIFByaW50IHRoZSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBtZXNzYWdlIG9iamVjdCBzdHJ1Y3R1cmUgcm9vdGVkCiAgICAgICBhdCAqbXNnKiB0byB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWVkIHdoZW4gdGhlIDpjbGFzczpgQnl0ZXNHZW5lcmF0b3JgCiAgICAgICBpbnN0YW5jZSB3YXMgY3JlYXRlZC4gIFN1YnBhcnRzIGFyZSB2aXNpdGVkIGRlcHRoLWZpcnN0IGFuZCB0aGUgcmVzdWx0aW5nCi0gICAgICB0ZXh0IHdpbGwgYmUgcHJvcGVybHkgTUlNRSBlbmNvZGVkLiAgSWYgdGhlIGlucHV0IHRoYXQgY3JlYXRlZCB0aGUgKm1zZyoKLSAgICAgIGNvbnRhaW5lZCBieXRlcyB3aXRoIHRoZSBoaWdoIGJpdCBzZXQgYW5kIHRob3NlIGJ5dGVzIGhhdmUgbm90IGJlZW4KLSAgICAgIG1vZGlmaWVkLCB0aGV5IHdpbGwgYmUgY29waWVkIGZhaXRoZnVsbHkgdG8gdGhlIG91dHB1dCwgZXZlbiBpZiBkb2luZyBzbwotICAgICAgaXMgbm90IHN0cmljdGx5IFJGQyBjb21wbGlhbnQuICAoVG8gcHJvZHVjZSBzdHJpY3RseSBSRkMgY29tcGxpYW50Ci0gICAgICBvdXRwdXQsIHVzZSB0aGUgOmNsYXNzOmBHZW5lcmF0b3JgIGNsYXNzLikKKyAgICAgIHRleHQgd2lsbCBiZSBwcm9wZXJseSBNSU1FIGVuY29kZWQuICBJZiB0aGUgOm1vZDpgfmVtYWlsLnBvbGljeWAgb3B0aW9uCisgICAgICA6YXR0cjpgfmVtYWlsLnBvbGljeS5Qb2xpY3kuY3RlX3R5cGVgIGlzIGBgOGJpdGBgICh0aGUgZGVmYXVsdCksCisgICAgICB0aGVuIGFueSBieXRlcyB3aXRoIHRoZSBoaWdoIGJpdCBzZXQgaW4gdGhlIG9yaWdpbmFsIHBhcnNlZCBtZXNzYWdlIHRoYXQKKyAgICAgIGhhdmUgbm90IGJlZW4gbW9kaWZpZWQgd2lsbCBiZSBjb3BpZWQgZmFpdGhmdWxseSB0byB0aGUgb3V0cHV0LiAgSWYKKyAgICAgIGBgY3RlX3R5cGVgYCBpcyBgYDdiaXRgYCwgdGhlIGJ5dGVzIHdpbGwgYmUgY29udmVydGVkIGFzIG5lZWRlZAorICAgICAgdXNpbmcgYW4gQVNDSUktY29tcGF0aWJsZSBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nLiAgSW4gcGFydGljdWxhciwKKyAgICAgIFJGQy1pbnZhbGlkIG5vbi1BU0NJSSBieXRlcyBpbiBoZWFkZXJzIHdpbGwgYmUgZW5jb2RlZCB1c2luZyB0aGUgTUlNRQorICAgICAgYGB1bmtub3duLThiaXRgYCBjaGFyYWN0ZXIgc2V0LCB0aHVzIHJlbmRlcmluZyB0aGVtIFJGQy1jb21wbGlhbnQuCisKKyAgICAgIC4uIFhYWDogVGhlcmUgc2hvdWxkIGJlIGEgY29tcGxlbWVudGFyeSBvcHRpb24gdGhhdCBqdXN0IGRvZXMgdGhlIFJGQworICAgICAgICAgY29tcGxpYW5jZSB0cmFuc2Zvcm1hdGlvbiBidXQgbGVhdmVzIENURSA4Yml0IHBhcnRzIGFsb25lLgogCiAgICAgICBNZXNzYWdlcyBwYXJzZWQgd2l0aCBhIEJ5dGVzIHBhcnNlciB0aGF0IGhhdmUgYQogICAgICAgOm1haWxoZWFkZXI6YENvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmdgIG9mIDhiaXQgd2lsbCBiZSByZWNvbnN0cnVjdGVkCkBAIC0xNTIsMTAgKzE3Myw4IEBACiAgICAgICBOb3RlIHRoYXQgZm9yIHN1YnBhcnRzLCBubyBlbnZlbG9wZSBoZWFkZXIgaXMgZXZlciBwcmludGVkLgogCiAgICAgICBPcHRpb25hbCAqbGluZXNlcCogc3BlY2lmaWVzIHRoZSBsaW5lIHNlcGFyYXRvciBjaGFyYWN0ZXIgdXNlZCB0bwotICAgICAgdGVybWluYXRlIGxpbmVzIGluIHRoZSBvdXRwdXQuICBJdCBkZWZhdWx0cyB0byBgYFxuYGAgYmVjYXVzZSB0aGF0IGlzCi0gICAgICB0aGUgbW9zdCB1c2VmdWwgdmFsdWUgZm9yIFB5dGhvbiBhcHBsaWNhdGlvbiBjb2RlIChvdGhlciBsaWJyYXJ5IHBhY2thZ2VzCi0gICAgICBleHBlY3QgYGBcbmBgIHNlcGFyYXRlZCBsaW5lcykuICBgYGxpbmVzZXA9XHJcbmBgIGNhbiBiZSB1c2VkIHRvCi0gICAgICBnZW5lcmF0ZSBvdXRwdXQgd2l0aCBSRkMtY29tcGxpYW50IGxpbmUgc2VwYXJhdG9ycy4KKyAgICAgIHRlcm1pbmF0ZSBsaW5lcyBpbiB0aGUgb3V0cHV0LiAgSWYgc3BlY2lmaWVkIGl0IG92ZXJyaWRlcyB0aGUgdmFsdWUKKyAgICAgIHNwZWNpZmllZCBieSB0aGUgYGBHZW5lcmF0b3JgYFwgJ3MgYGBwb2xpY3lgYC4KIAogICAgLi4gbWV0aG9kOjogY2xvbmUoZnApCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2VtYWlsLmhlYWRlcnJlZ2lzdHJ5LnJzdCBiL0RvYy9saWJyYXJ5L2VtYWlsLmhlYWRlcnJlZ2lzdHJ5LnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODg0MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jL2xpYnJhcnkvZW1haWwuaGVhZGVycmVnaXN0cnkucnN0CkBAIC0wLDAgKzEsNDUyIEBACis6bW9kOmBlbWFpbC5oZWFkZXJyZWdpc3RyeWA6IEN1c3RvbSBIZWFkZXIgT2JqZWN0cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gbW9kdWxlOjogZW1haWwuaGVhZGVycmVnaXN0cnkKKyAgIDpzeW5vcHNpczogQXV0b21hdGljIFBhcnNpbmcgb2YgaGVhZGVycyBiYXNlZCBvbiB0aGUgZmllbGQgbmFtZQorCisuLiBtb2R1bGVhdXRob3I6OiBSLiBEYXZpZCBNdXJyYXkgPHJkbXVycmF5QGJpdGRhbmNlLmNvbT4KKy4uIHNlY3Rpb25hdXRob3I6OiBSLiBEYXZpZCBNdXJyYXkgPHJkbXVycmF5QGJpdGRhbmNlLmNvbT4KKworCisuLiBub3RlOjoKKworICAgVGhlIGhlYWRlcnJlZ2lzdHJ5IG1vZHVsZSBoYXMgYmVlbiBpbmNsdWRlZCBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSBvbiBhCisgICA6dGVybTpgcHJvdmlzaW9uYWwgYmFzaXMgPHByb3Zpc2lvbmFsIHBhY2thZ2U+YC4gQmFja3dhcmRzIGluY29tcGF0aWJsZQorICAgY2hhbmdlcyAodXAgdG8gYW5kIGluY2x1ZGluZyByZW1vdmFsIG9mIHRoZSBtb2R1bGUpIG1heSBvY2N1ciBpZiBkZWVtZWQKKyAgIG5lY2Vzc2FyeSBieSB0aGUgY29yZSBkZXZlbG9wZXJzLgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgIGFzIGEgOnRlcm06YHByb3Zpc2lvbmFsIG1vZHVsZSA8cHJvdmlzaW9uYWwgcGFja2FnZT5gLgorCitIZWFkZXJzIGFyZSByZXByZXNlbnRlZCBieSBjdXN0b21pemVkIHN1YmNsYXNzZXMgb2YgOmNsYXNzOmBzdHJgLiAgVGhlCitwYXJ0aWN1bGFyIGNsYXNzIHVzZWQgdG8gcmVwcmVzZW50IGEgZ2l2ZW4gaGVhZGVyIGlzIGRldGVybWluZWQgYnkgdGhlCis6YXR0cjpgfmVtYWlsLnBvbGljeS5FbWFpbFBvbGljeS5oZWFkZXJfZmFjdG9yeWAgb2YgdGhlIDptb2Q6YH5lbWFpbC5wb2xpY3lgIGluCitlZmZlY3Qgd2hlbiB0aGUgaGVhZGVycyBhcmUgY3JlYXRlZC4gIFRoaXMgc2VjdGlvbiBkb2N1bWVudHMgdGhlIHBhcnRpY3VsYXIKK2BgaGVhZGVyX2ZhY3RvcnlgYCBpbXBsZW1lbnRlZCBieSB0aGUgZW1haWwgcGFja2FnZSBmb3IgaGFuZGxpbmcgOlJGQzpgNTMyMmAKK2NvbXBsaWFudCBlbWFpbCBtZXNzYWdlcywgd2hpY2ggbm90IG9ubHkgcHJvdmlkZXMgY3VzdG9taXplZCBoZWFkZXIgb2JqZWN0cyBmb3IKK3ZhcmlvdXMgaGVhZGVyIHR5cGVzLCBidXQgYWxzbyBwcm92aWRlcyBhbiBleHRlbnNpb24gbWVjaGFuaXNtIGZvciBhcHBsaWNhdGlvbnMKK3RvIGFkZCB0aGVpciBvd24gY3VzdG9tIGhlYWRlciB0eXBlcy4KKworV2hlbiB1c2luZyBhbnkgb2YgdGhlIHBvbGljeSBvYmplY3RzIGRlcml2ZWQgZnJvbQorOmRhdGE6YH5lbWFpbC5wb2xpY3kuRW1haWxQb2xpY3lgLCBhbGwgaGVhZGVycyBhcmUgcHJvZHVjZWQgYnkKKzpjbGFzczpgLkhlYWRlclJlZ2lzdHJ5YCBhbmQgaGF2ZSA6Y2xhc3M6YC5CYXNlSGVhZGVyYCBhcyB0aGVpciBsYXN0IGJhc2UKK2NsYXNzLiAgRWFjaCBoZWFkZXIgY2xhc3MgaGFzIGFuIGFkZGl0aW9uYWwgYmFzZSBjbGFzcyB0aGF0IGlzIGRldGVybWluZWQgYnkKK3RoZSB0eXBlIG9mIHRoZSBoZWFkZXIuICBGb3IgZXhhbXBsZSwgbWFueSBoZWFkZXJzIGhhdmUgdGhlIGNsYXNzCis6Y2xhc3M6YC5VbnN0cnVjdHVyZWRIZWFkZXJgIGFzIHRoZWlyIG90aGVyIGJhc2UgY2xhc3MuICBUaGUgc3BlY2lhbGl6ZWQgc2Vjb25kCitjbGFzcyBmb3IgYSBoZWFkZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUgbmFtZSBvZiB0aGUgaGVhZGVyLCB1c2luZyBhIGxvb2t1cAordGFibGUgc3RvcmVkIGluIHRoZSA6Y2xhc3M6YC5IZWFkZXJSZWdpc3RyeWAuICBBbGwgb2YgdGhpcyBpcyBtYW5hZ2VkCit0cmFuc3BhcmVudGx5IGZvciB0aGUgdHlwaWNhbCBhcHBsaWNhdGlvbiBwcm9ncmFtLCBidXQgaW50ZXJmYWNlcyBhcmUgcHJvdmlkZWQKK2ZvciBtb2RpZnlpbmcgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIHVzZSBieSBtb3JlIGNvbXBsZXggYXBwbGljYXRpb25zLgorCitUaGUgc2VjdGlvbnMgYmVsb3cgZmlyc3QgZG9jdW1lbnQgdGhlIGhlYWRlciBiYXNlIGNsYXNzZXMgYW5kIHRoZWlyIGF0dHJpYnV0ZXMsCitmb2xsb3dlZCBieSB0aGUgQVBJIGZvciBtb2RpZnlpbmcgdGhlIGJlaGF2aW9yIG9mIDpjbGFzczpgLkhlYWRlclJlZ2lzdHJ5YCwgYW5kCitmaW5hbGx5IHRoZSBzdXBwb3J0IGNsYXNzZXMgdXNlZCB0byByZXByZXNlbnQgdGhlIGRhdGEgcGFyc2VkIGZyb20gc3RydWN0dXJlZAoraGVhZGVycy4KKworCisuLiBjbGFzczo6IEJhc2VIZWFkZXIobmFtZSwgdmFsdWUpCisKKyAgICpuYW1lKiBhbmQgKnZhbHVlKiBhcmUgcGFzc2VkIHRvIGBgQmFzZUhlYWRlcmBgIGZyb20gdGhlCisgICA6YXR0cjpgfmVtYWlsLnBvbGljeS5FbWFpbFBvbGljeS5oZWFkZXJfZmFjdG9yeWAgY2FsbC4gIFRoZSBzdHJpbmcgdmFsdWUgb2YKKyAgIGFueSBoZWFkZXIgb2JqZWN0IGlzIHRoZSAqdmFsdWUqIGZ1bGx5IGRlY29kZWQgdG8gdW5pY29kZS4KKworICAgVGhpcyBiYXNlIGNsYXNzIGRlZmluZXMgdGhlIGZvbGxvd2luZyByZWFkLW9ubHkgcHJvcGVydGllczoKKworCisgICAuLiBhdHRyaWJ1dGU6OiBuYW1lCisKKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBoZWFkZXIgKHRoZSBwb3J0aW9uIG9mIHRoZSBmaWVsZCBiZWZvcmUgdGhlICc6JykuICBUaGlzCisgICAgICBpcyBleGFjdGx5IHRoZSB2YWx1ZSBwYXNzZWQgaW4gdGhlIDphdHRyOmB+RW1haWxQb2xpY3kuaGVhZGVyX2ZhY3RvcnlgCisgICAgICBjYWxsIGZvciAqbmFtZSo7IHRoYXQgaXMsIGNhc2UgaXMgcHJlc2VydmVkLgorCisKKyAgIC4uIGF0dHJpYnV0ZTo6IGRlZmVjdHMKKworICAgICAgQSB0dXBsZSBvZiA6ZXhjOmB+ZW1haWwuZXJyb3JzLkhlYWRlckRlZmVjdGAgaW5zdGFuY2VzIHJlcG9ydGluZyBhbnkKKyAgICAgIFJGQyBjb21wbGlhbmNlIHByb2JsZW1zIGZvdW5kIGR1cmluZyBwYXJzaW5nLiAgVGhlIGVtYWlsIHBhY2thZ2UgdHJpZXMgdG8KKyAgICAgIGJlIGNvbXBsZXRlIGFib3V0IGRldGVjdGluZyBjb21wbGlhbmNlIGlzc3Vlcy4gIFNlZSB0aGUgOm1vZDpgZXJyb3JzYAorICAgICAgbW9kdWxlIGZvciBhIGRpc2N1c3Npb24gb2YgdGhlIHR5cGVzIG9mIGRlZmVjdHMgdGhhdCBtYXkgYmUgcmVwb3J0ZWQuCisKKworICAgLi4gYXR0cmlidXRlOjogbWF4X2NvdW50CisKKyAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBoZWFkZXJzIG9mIHRoaXMgdHlwZSB0aGF0IGNhbiBoYXZlIHRoZSBzYW1lCisgICAgICBgYG5hbWVgYC4gIEEgdmFsdWUgb2YgYGBOb25lYGAgbWVhbnMgdW5saW1pdGVkLiAgVGhlIGBgQmFzZUhlYWRlcmBgIHZhbHVlCisgICAgICBmb3IgdGhpcyBhdHRyaWJ1dGUgaXMgYGBOb25lYGA7IGl0IGlzIGV4cGVjdGVkIHRoYXQgc3BlY2lhbGl6ZWQgaGVhZGVyCisgICAgICBjbGFzc2VzIHdpbGwgb3ZlcnJpZGUgdGhpcyB2YWx1ZSBhcyBuZWVkZWQuCisKKyAgIGBgQmFzZUhlYWRlcmBgIGFsc28gcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBtZXRob2QsIHdoaWNoIGlzIGNhbGxlZCBieSB0aGUKKyAgIGVtYWlsIGxpYnJhcnkgY29kZSBhbmQgc2hvdWxkIG5vdCBpbiBnZW5lcmFsIGJlIGNhbGxlZCBieSBhcHBsaWNhdGlvbgorICAgcHJvZ3JhbXM6CisKKyAgIC4uIG1ldGhvZDo6IGZvbGQoKiwgcG9saWN5KQorCisgICAgICBSZXR1cm4gYSBzdHJpbmcgY29udGFpbmluZyA6YXR0cjpgfmVtYWlsLnBvbGljeS5Qb2xpY3kubGluZXNlcGAKKyAgICAgIGNoYXJhY3RlcnMgYXMgcmVxdWlyZWQgdG8gY29ycmVjdGx5IGZvbGQgdGhlIGhlYWRlciBhY2NvcmRpbmcKKyAgICAgIHRvICpwb2xpY3kqLiAgQSA6YXR0cjpgfmVtYWlsLnBvbGljeS5Qb2xpY3kuY3RlX3R5cGVgIG9mCisgICAgICBgYDhiaXRgYCB3aWxsIGJlIHRyZWF0ZWQgYXMgaWYgaXQgd2VyZSBgYDdiaXRgYCwgc2luY2Ugc3RyaW5ncworICAgICAgbWF5IG5vdCBjb250YWluIGJpbmFyeSBkYXRhLgorCisKKyAgIGBgQmFzZUhlYWRlcmBgIGJ5IGl0c2VsZiBjYW5ub3QgYmUgdXNlZCB0byBjcmVhdGUgYSBoZWFkZXIgb2JqZWN0LiAgSXQKKyAgIGRlZmluZXMgYSBwcm90b2NvbCB0aGF0IGVhY2ggc3BlY2lhbGl6ZWQgaGVhZGVyIGNvb3BlcmF0ZXMgd2l0aCBpbiBvcmRlciB0bworICAgcHJvZHVjZSB0aGUgaGVhZGVyIG9iamVjdC4gIFNwZWNpZmljYWxseSwgYGBCYXNlSGVhZGVyYGAgcmVxdWlyZXMgdGhhdAorICAgdGhlIHNwZWNpYWxpemVkIGNsYXNzIHByb3ZpZGUgYSA6ZnVuYzpgY2xhc3NtZXRob2RgIG5hbWVkIGBgcGFyc2VgYC4gIFRoaXMKKyAgIG1ldGhvZCBpcyBjYWxsZWQgYXMgZm9sbG93czo6CisKKyAgICAgICBwYXJzZShzdHJpbmcsIGt3ZHMpCisKKyAgIGBga3dkc2BgIGlzIGEgZGljdGlvbmFyeSBjb250YWluaW5nIG9uZSBwcmUtaW5pdGlhbGl6ZWQga2V5LCBgYGRlZmVjdHNgYC4KKyAgIGBgZGVmZWN0c2BgIGlzIGFuIGVtcHR5IGxpc3QuICBUaGUgcGFyc2UgbWV0aG9kIHNob3VsZCBhcHBlbmQgYW55IGRldGVjdGVkCisgICBkZWZlY3RzIHRvIHRoaXMgbGlzdC4gIE9uIHJldHVybiwgdGhlIGBga3dkc2BgIGRpY3Rpb25hcnkgKm11c3QqIGNvbnRhaW4KKyAgIHZhbHVlcyBmb3IgYXQgbGVhc3QgdGhlIGtleXMgYGBkZWNvZGVkYGAgYW5kIGBgZGVmZWN0c2BgLiAgYGBkZWNvZGVkYGAKKyAgIHNob3VsZCBiZSB0aGUgc3RyaW5nIHZhbHVlIGZvciB0aGUgaGVhZGVyICh0aGF0IGlzLCB0aGUgaGVhZGVyIHZhbHVlIGZ1bGx5CisgICBkZWNvZGVkIHRvIHVuaWNvZGUpLiAgVGhlIHBhcnNlIG1ldGhvZCBzaG91bGQgYXNzdW1lIHRoYXQgKnN0cmluZyogbWF5CisgICBjb250YWluIHRyYW5zcG9ydCBlbmNvZGVkIHBhcnRzLCBidXQgc2hvdWxkIGNvcnJlY3RseSBoYW5kbGUgYWxsIHZhbGlkCisgICB1bmljb2RlIGNoYXJhY3RlcnMgYXMgd2VsbCBzbyB0aGF0IGl0IGNhbiBwYXJzZSB1bi1lbmNvZGVkIGhlYWRlciB2YWx1ZXMuCisKKyAgIGBgQmFzZUhlYWRlcmBgJ3MgYGBfX25ld19fYGAgdGhlbiBjcmVhdGVzIHRoZSBoZWFkZXIgaW5zdGFuY2UsIGFuZCBjYWxscyBpdHMKKyAgIGBgaW5pdGBgIG1ldGhvZC4gIFRoZSBzcGVjaWFsaXplZCBjbGFzcyBvbmx5IG5lZWRzIHRvIHByb3ZpZGUgYW4gYGBpbml0YGAKKyAgIG1ldGhvZCBpZiBpdCB3aXNoZXMgdG8gc2V0IGFkZGl0aW9uYWwgYXR0cmlidXRlcyBiZXlvbmQgdGhvc2UgcHJvdmlkZWQgYnkKKyAgIGBgQmFzZUhlYWRlcmBgIGl0c2VsZi4gIFN1Y2ggYW4gYGBpbml0YGAgbWV0aG9kIHNob3VsZCBsb29rIGxpa2UgdGhpczo6CisKKyAgICAgICBkZWYgaW5pdChzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgICAgIHNlbGYuX215YXR0ciA9IGt3LnBvcCgnbXlhdHRyJykKKyAgICAgICAgICAgc3VwZXIoKS5pbml0KCphcmdzLCAqKmt3KQorCisgICBUaGF0IGlzLCBhbnl0aGluZyBleHRyYSB0aGF0IHRoZSBzcGVjaWFsaXplZCBjbGFzcyBwdXRzIGluIHRvIHRoZSBgYGt3ZHNgYAorICAgZGljdGlvbmFyeSBzaG91bGQgYmUgcmVtb3ZlZCBhbmQgaGFuZGxlZCwgYW5kIHRoZSByZW1haW5pbmcgY29udGVudHMgb2YKKyAgIGBga3dgYCAoYW5kIGBgYXJnc2BgKSBwYXNzZWQgdG8gdGhlIGBgQmFzZUhlYWRlcmBgIGBgaW5pdGBgIG1ldGhvZC4KKworCisuLiBjbGFzczo6IFVuc3RydWN0dXJlZEhlYWRlcgorCisgICBBbiAidW5zdHJ1Y3R1cmVkIiBoZWFkZXIgaXMgdGhlIGRlZmF1bHQgdHlwZSBvZiBoZWFkZXIgaW4gOnJmYzpgNTMyMmAuCisgICBBbnkgaGVhZGVyIHRoYXQgZG9lcyBub3QgaGF2ZSBhIHNwZWNpZmllZCBzeW50YXggaXMgdHJlYXRlZCBhcworICAgdW5zdHJ1Y3R1cmVkLiAgVGhlIGNsYXNzaWMgZXhhbXBsZSBvZiBhbiB1bnN0cnVjdHVyZWQgaGVhZGVyIGlzIHRoZQorICAgOm1haWxoZWFkZXI6YFN1YmplY3RgIGhlYWRlci4KKworICAgSW4gOnJmYzpgNTMyMmAsIGFuIHVuc3RydWN0dXJlZCBoZWFkZXIgaXMgYSBydW4gb2YgYXJiaXRyYXJ5IHRleHQgaW4gdGhlCisgICBBU0NJSSBjaGFyYWN0ZXIgc2V0LiAgOnJmYzpgMjA0N2AsIGhvd2V2ZXIsIGhhcyBhbiA6cmZjOmA1MzIyYCBjb21wYXRpYmxlCisgICBtZWNoYW5pc20gZm9yIGVuY29kaW5nIG5vbi1BU0NJSSB0ZXh0IGFzIEFTQ0lJIGNoYXJhY3RlcnMgd2l0aGluIGEgaGVhZGVyCisgICB2YWx1ZS4gIFdoZW4gYSAqdmFsdWUqIGNvbnRhaW5pbmcgZW5jb2RlZCB3b3JkcyBpcyBwYXNzZWQgdG8gdGhlCisgICBjb25zdHJ1Y3RvciwgdGhlIGBgVW5zdHJ1Y3R1cmVkSGVhZGVyYGAgcGFyc2VyIGNvbnZlcnRzIHN1Y2ggZW5jb2RlZCB3b3JkcworICAgYmFjayBpbiB0byB0aGUgb3JpZ2luYWwgdW5pY29kZSwgZm9sbG93aW5nIHRoZSA6cmZjOmAyMDQ3YCBydWxlcyBmb3IKKyAgIHVuc3RydWN0dXJlZCB0ZXh0LiAgVGhlIHBhcnNlciB1c2VzIGhldXJpc3RpY3MgdG8gYXR0ZW1wdCB0byBkZWNvZGUgY2VydGFpbgorICAgbm9uLWNvbXBsaWFudCBlbmNvZGVkIHdvcmRzLiAgRGVmZWN0cyBhcmUgcmVnaXN0ZXJlZCBpbiBzdWNoIGNhc2VzLCBhcyB3ZWxsCisgICBhcyBkZWZlY3RzIGZvciBpc3N1ZXMgc3VjaCBhcyBpbnZhbGlkIGNoYXJhY3RlcnMgd2l0aGluIHRoZSBlbmNvZGVkIHdvcmRzIG9yCisgICB0aGUgbm9uLWVuY29kZWQgdGV4dC4KKworICAgVGhpcyBoZWFkZXIgdHlwZSBwcm92aWRlcyBubyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMuCisKKworLi4gY2xhc3M6OiBEYXRlSGVhZGVyCisKKyAgIDpyZmM6YDUzMjJgIHNwZWNpZmllcyBhIHZlcnkgc3BlY2lmaWMgZm9ybWF0IGZvciBkYXRlcyB3aXRoaW4gZW1haWwgaGVhZGVycy4KKyAgIFRoZSBgYERhdGVIZWFkZXJgYCBwYXJzZXIgcmVjb2duaXplcyB0aGF0IGRhdGUgZm9ybWF0LCBhcyB3ZWxsIGFzCisgICByZWNvZ25pemluZyBhIG51bWJlciBvZiB2YXJpYW50IGZvcm1zIHRoYXQgYXJlIHNvbWV0aW1lcyBmb3VuZCAiaW4gdGhlCisgICB3aWxkIi4KKworICAgVGhpcyBoZWFkZXIgdHlwZSBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgYXR0cmlidXRlczoKKworICAgLi4gYXR0cmlidXRlOjogZGF0ZXRpbWUKKworICAgICAgSWYgdGhlIGhlYWRlciB2YWx1ZSBjYW4gYmUgcmVjb2duaXplZCBhcyBhIHZhbGlkIGRhdGUgb2Ygb25lIGZvcm0gb3IKKyAgICAgIGFub3RoZXIsIHRoaXMgYXR0cmlidXRlIHdpbGwgY29udGFpbiBhIDpjbGFzczpgfmRhdGV0aW1lLmRhdGV0aW1lYAorICAgICAgaW5zdGFuY2UgcmVwcmVzZW50aW5nIHRoYXQgZGF0ZS4gIElmIHRoZSB0aW1lem9uZSBvZiB0aGUgaW5wdXQgZGF0ZSBpcworICAgICAgc3BlY2lmaWVkIGFzIGBgLTAwMDBgYCAoaW5kaWNhdGluZyBpdCBpcyBpbiBVVEMgYnV0IGNvbnRhaW5zIG5vCisgICAgICBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc291cmNlIHRpbWV6b25lKSwgdGhlbiA6YXR0cjpgLmRhdGV0aW1lYCB3aWxsIGJlIGEKKyAgICAgIG5haXZlIDpjbGFzczpgfmRhdGV0aW1lLmRhdGV0aW1lYC4gIElmIGEgc3BlY2lmaWMgdGltZXpvbmUgb2Zmc2V0IGlzCisgICAgICBmb3VuZCAoaW5jbHVkaW5nIGArMDAwMGApLCB0aGVuIDphdHRyOmAuZGF0ZXRpbWVgIHdpbGwgY29udGFpbiBhbiBhd2FyZQorICAgICAgYGBkYXRldGltZWBgIHRoYXQgdXNlcyA6Y2xhc3M6YGRhdGV0aW1lLnRpbWV6b25lYCB0byByZWNvcmQgdGhlIHRpbWV6b25lCisgICAgICBvZmZzZXQuCisKKyAgIFRoZSBgYGRlY29kZWRgYCB2YWx1ZSBvZiB0aGUgaGVhZGVyIGlzIGRldGVybWluZWQgYnkgZm9ybWF0dGluZyB0aGUKKyAgIGBgZGF0ZXRpbWVgYCBhY2NvcmRpbmcgdG8gdGhlIDpyZmM6YDUzMjJgIHJ1bGVzOyB0aGF0IGlzLCBpdCBpcyBzZXQgdG86OgorCisgICAgICAgZW1haWwudXRpbHMuZm9ybWF0X2RhdGV0aW1lKHNlbGYuZGF0ZXRpbWUpCisKKyAgIFdoZW4gY3JlYXRpbmcgYSBgYERhdGVIZWFkZXJgYCwgKnZhbHVlKiBtYXkgYmUKKyAgIDpjbGFzczpgfmRhdGV0aW1lLmRhdGV0aW1lYCBpbnN0YW5jZS4gIFRoaXMgbWVhbnMsIGZvciBleGFtcGxlLCB0aGF0CisgICB0aGUgZm9sbG93aW5nIGNvZGUgaXMgdmFsaWQgYW5kIGRvZXMgd2hhdCBvbmUgd291bGQgZXhwZWN0OjoKKworICAgICAgIG1zZ1snRGF0ZSddICA9IGRhdGV0aW1lKDIwMTEsIDcsIDE1LCAyMSkKKworICAgQmVjYXVzZSB0aGlzIGlzIGEgbmFpdmUgYGBkYXRldGltZWBgIGl0IHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSBVVEMKKyAgIHRpbWVzdGFtcCwgYW5kIHRoZSByZXN1bHRpbmcgdmFsdWUgd2lsbCBoYXZlIGEgdGltZXpvbmUgb2YgYGAtMDAwMGBgLiAgTXVjaAorICAgbW9yZSB1c2VmdWwgaXMgdG8gdXNlIHRoZSA6ZnVuYzpgfmVtYWlsLnV0aWxzLmxvY2FsdGltZWAgZnVuY3Rpb24gZnJvbSB0aGUKKyAgIDptb2Q6YH5lbWFpbC51dGlsc2AgbW9kdWxlOjoKKworICAgICAgIG1zZ1snRGF0ZSddID0gdXRpbHMubG9jYWx0aW1lKCkKKworICAgVGhpcyBleGFtcGxlIHNldHMgdGhlIGRhdGUgaGVhZGVyIHRvIHRoZSBjdXJyZW50IHRpbWUgYW5kIGRhdGUgdXNpbmcKKyAgIHRoZSBjdXJyZW50IHRpbWV6b25lIG9mZnNldC4KKworCisuLiBjbGFzczo6IEFkZHJlc3NIZWFkZXIKKworICAgQWRkcmVzcyBoZWFkZXJzIGFyZSBvbmUgb2YgdGhlIG1vc3QgY29tcGxleCBzdHJ1Y3R1cmVkIGhlYWRlciB0eXBlcy4KKyAgIFRoZSBgYEFkZHJlc3NIZWFkZXJgYCBjbGFzcyBwcm92aWRlcyBhIGdlbmVyaWMgaW50ZXJmYWNlIHRvIGFueSBhZGRyZXNzCisgICBoZWFkZXIuCisKKyAgIFRoaXMgaGVhZGVyIHR5cGUgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXM6CisKKworICAgLi4gYXR0cmlidXRlOjogZ3JvdXBzCisKKyAgICAgIEEgdHVwbGUgb2YgOmNsYXNzOmAuR3JvdXBgIG9iamVjdHMgZW5jb2RpbmcgdGhlCisgICAgICBhZGRyZXNzZXMgYW5kIGdyb3VwcyBmb3VuZCBpbiB0aGUgaGVhZGVyIHZhbHVlLiAgQWRkcmVzc2VzIHRoYXQgYXJlCisgICAgICBub3QgcGFydCBvZiBhIGdyb3VwIGFyZSByZXByZXNlbnRlZCBpbiB0aGlzIGxpc3QgYXMgc2luZ2xlLWFkZHJlc3MKKyAgICAgIGBgR3JvdXBzYGAgd2hvc2UgOmF0dHI6YH4uR3JvdXAuZGlzcGxheV9uYW1lYCBpcyBgYE5vbmVgYC4KKworCisgICAuLiBhdHRyaWJ1dGU6OiBhZGRyZXNzZXMKKworICAgICAgQSB0dXBsZSBvZiA6Y2xhc3M6YC5BZGRyZXNzYCBvYmplY3RzIGVuY29kaW5nIGFsbAorICAgICAgb2YgdGhlIGluZGl2aWR1YWwgYWRkcmVzc2VzIGZyb20gdGhlIGhlYWRlciB2YWx1ZS4gIElmIHRoZSBoZWFkZXIgdmFsdWUKKyAgICAgIGNvbnRhaW5zIGFueSBncm91cHMsIHRoZSBpbmRpdmlkdWFsIGFkZHJlc3NlcyBmcm9tIHRoZSBncm91cCBhcmUgaW5jbHVkZWQKKyAgICAgIGluIHRoZSBsaXN0IGF0IHRoZSBwb2ludCB3aGVyZSB0aGUgZ3JvdXAgb2NjdXJzIGluIHRoZSB2YWx1ZSAodGhhdCBpcywKKyAgICAgIHRoZSBsaXN0IG9mIGFkZHJlc3NlcyBpcyAiZmxhdHRlbmVkIiBpbnRvIGEgb25lIGRpbWVuc2lvbmFsIGxpc3QpLgorCisgICBUaGUgYGBkZWNvZGVkYGAgdmFsdWUgb2YgdGhlIGhlYWRlciB3aWxsIGhhdmUgYWxsIGVuY29kZWQgd29yZHMgZGVjb2RlZCB0bworICAgdW5pY29kZS4gIDpjbGFzczpgfmVuY29kaW5ncy5pZG5hYCBlbmNvZGVkIGRvbWFpbiBuYW1lcyBhcmUgYWxzbyBkZWNvZGVkIHRvIHVuaWNvZGUuICBUaGUKKyAgIGBgZGVjb2RlZGBgIHZhbHVlIGlzIHNldCBieSA6YXR0cjpgfnN0ci5qb2luYFwgaW5nIHRoZSA6Y2xhc3M6YHN0cmAgdmFsdWUgb2YKKyAgIHRoZSBlbGVtZW50cyBvZiB0aGUgYGBncm91cHNgYCBhdHRyaWJ1dGUgd2l0aCBgYCcsICdgYC4KKworICAgQSBsaXN0IG9mIDpjbGFzczpgLkFkZHJlc3NgIGFuZCA6Y2xhc3M6YC5Hcm91cGAgb2JqZWN0cyBpbiBhbnkgY29tYmluYXRpb24KKyAgIG1heSBiZSB1c2VkIHRvIHNldCB0aGUgdmFsdWUgb2YgYW4gYWRkcmVzcyBoZWFkZXIuICBgYEdyb3VwYGAgb2JqZWN0cyB3aG9zZQorICAgYGBkaXNwbGF5X25hbWVgYCBpcyBgYE5vbmVgYCB3aWxsIGJlIGludGVycHJldGVkIGFzIHNpbmdsZSBhZGRyZXNzZXMsIHdoaWNoCisgICBhbGxvd3MgYW4gYWRkcmVzcyBsaXN0IHRvIGJlIGNvcGllZCB3aXRoIGdyb3VwcyBpbnRhY3QgYnkgdXNpbmcgdGhlIGxpc3QKKyAgIG9idGFpbmVkIGBgZ3JvdXBzYGAgYXR0cmlidXRlIG9mIHRoZSBzb3VyY2UgaGVhZGVyLgorCisKKy4uIGNsYXNzOjogU2luZ2xlQWRkcmVzc0hlYWRlcgorCisgICBBIHN1YmNsYXNzIG9mIDpjbGFzczpgLkFkZHJlc3NIZWFkZXJgIHRoYXQgYWRkcyBvbmUKKyAgIGFkZGl0aW9uYWwgYXR0cmlidXRlOgorCisKKyAgIC4uIGF0dHJpYnV0ZTo6IGFkZHJlc3MKKworICAgICAgVGhlIHNpbmdsZSBhZGRyZXNzIGVuY29kZWQgYnkgdGhlIGhlYWRlciB2YWx1ZS4gIElmIHRoZSBoZWFkZXIgdmFsdWUKKyAgICAgIGFjdHVhbGx5IGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgYWRkcmVzcyAod2hpY2ggd291bGQgYmUgYSB2aW9sYXRpb24gb2YKKyAgICAgIHRoZSBSRkMgdW5kZXIgdGhlIGRlZmF1bHQgOm1vZDpgcG9saWN5YCksIGFjY2Vzc2luZyB0aGlzIGF0dHJpYnV0ZSB3aWxsCisgICAgICByZXN1bHQgaW4gYSA6ZXhjOmBWYWx1ZUVycm9yYC4KKworCitNYW55IG9mIHRoZSBhYm92ZSBjbGFzc2VzIGFsc28gaGF2ZSBhIGBgVW5pcXVlYGAgdmFyaWFudCAoZm9yIGV4YW1wbGUsCitgYFVuaXF1ZVVuc3RydWN0dXJlZEhlYWRlcmBgKS4gIFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCBpbiB0aGUgYGBVbmlxdWVgYAordmFyaWFudCwgOmF0dHI6YH4uQmFzZUhlYWRlci5tYXhfY291bnRgIGlzIHNldCB0byAxLgorCisKKy4uIGNsYXNzOjogTUlNRVZlcnNpb25IZWFkZXIKKworICAgVGhlcmUgaXMgcmVhbGx5IG9ubHkgb25lIHZhbGlkIHZhbHVlIGZvciB0aGUgOm1haWxoZWFkZXI6YE1JTUUtVmVyc2lvbmAKKyAgIGhlYWRlciwgYW5kIHRoYXQgaXMgYGAxLjBgYC4gIEZvciBmdXR1cmUgcHJvb2ZpbmcsIHRoaXMgaGVhZGVyIGNsYXNzCisgICBzdXBwb3J0cyBvdGhlciB2YWxpZCB2ZXJzaW9uIG51bWJlcnMuICBJZiBhIHZlcnNpb24gbnVtYmVyIGhhcyBhIHZhbGlkIHZhbHVlCisgICBwZXIgOnJmYzpgMjA0NWAsIHRoZW4gdGhlIGhlYWRlciBvYmplY3Qgd2lsbCBoYXZlIG5vbi1gYE5vbmVgYCB2YWx1ZXMgZm9yCisgICB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXM6CisKKyAgIC4uIGF0dHJpYnV0ZTo6IHZlcnNpb24KKworICAgICAgVGhlIHZlcnNpb24gbnVtYmVyIGFzIGEgc3RyaW5nLCB3aXRoIGFueSB3aGl0ZXNwYWNlIGFuZC9vciBjb21tZW50cworICAgICAgcmVtb3ZlZC4KKworICAgLi4gYXR0cmlidXRlOjogbWFqb3IKKworICAgICAgVGhlIG1ham9yIHZlcnNpb24gbnVtYmVyIGFzIGFuIGludGVnZXIKKworICAgLi4gYXR0cmlidXRlOjogbWlub3IKKworICAgICAgVGhlIG1pbm9yIHZlcnNpb24gbnVtYmVyIGFzIGFuIGludGVnZXIKKworCisuLiBjbGFzczo6IFBhcmFtZXRlcml6ZWRNSU1FSGVhZGVyCisKKyAgICBNT01FIGhlYWRlcnMgYWxsIHN0YXJ0IHdpdGggdGhlIHByZWZpeCAnQ29udGVudC0nLiAgRWFjaCBzcGVjaWZpYyBoZWFkZXIgaGFzCisgICAgYSBjZXJ0YWluIHZhbHVlLCBkZXNjcmliZWQgdW5kZXIgdGhlIGNsYXNzIGZvciB0aGF0IGhlYWRlci4gIFNvbWUgY2FuCisgICAgYWxzbyB0YWtlIGEgbGlzdCBvZiBzdXBwbGVtZW50YWwgcGFyYW1ldGVycywgd2hpY2ggaGF2ZSBhIGNvbW1vbiBmb3JtYXQuCisgICAgVGhpcyBjbGFzcyBzZXJ2ZXMgYXMgYSBiYXNlIGZvciBhbGwgdGhlIE1JTUUgaGVhZGVycyB0aGF0IHRha2UgcGFyYW1ldGVycy4KKworICAgIC4uIGF0dHJpYnV0ZTo6IHBhcmFtcworCisgICAgICAgQSBkaWN0aW9uYXJ5IG1hcHBpbmcgcGFyYW1ldGVyIG5hbWVzIHRvIHBhcmFtZXRlciB2YWx1ZXMuCisKKworLi4gY2xhc3M6OiBDb250ZW50VHlwZUhlYWRlcgorCisgICAgQSA6Y2xhc3M6YFBhcmFtZXRlcml6ZWRNSU1FSGhlYWRlcmAgY2xhc3MgdGhhdCBoYW5kbGVzIHRoZQorICAgIDptYWlsaGVhZGVyOmBDb250ZW50LVR5cGVgIGhlYWRlci4KKworICAgIC4uIGF0dHJpYnV0ZTo6IGNvbnRlbnRfdHlwZQorCisgICAgICAgVGhlIGNvbnRlbnQgdHlwZSBzdHJpbmcsIGluIHRoZSBmb3JtIGBgbWFpbnR5cGUvc3VidHlwZWBgLgorCisgICAgLi4gYXR0cmlidXRlOjogbWFpbnR5cGUKKworICAgIC4uIGF0dHJpYnV0ZTo6IHN1YnR5cGUKKworCisuLiBjbGFzczo6IENvbnRlbnREaXNwb3NpdGlvbkhlYWRlcgorCisgICAgQSA6Y2xhc3M6YFBhcmFtZXRlcml6ZWRNSU1FSGhlYWRlcmAgY2xhc3MgdGhhdCBoYW5kbGVzIHRoZQorICAgIDptYWlsaGVhZGVyOmBDb250ZW50LURpc3Bvc2l0aW9uYCBoZWFkZXIuCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBjb250ZW50LWRpc3Bvc2l0aW9uCisKKyAgICAgICBgYGlubGluZWBgIGFuZCBgYGF0dGFjaG1lbnRgYCBhcmUgdGhlIG9ubHkgdmFsaWQgdmFsdWVzIGluIGNvbW1vbiB1c2UuCisKKworLi4gY2xhc3M6OiBDb250ZW50VHJhbnNmZXJFbmNvZGluZworCisgICBIYW5kbGVzIHRoZSA6bWFpbGhlYWRlcjpgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZ2AgaGVhZGVyLgorCisgICAuLiBhdHRyaWJ1dGU6OiBjdGUKKworICAgICAgVmFsaWQgdmFsdWVzIGFyZSBgYDdiaXRgYCwgYGA4Yml0YGAsIGBgYmFzZTY0YGAsIGFuZAorICAgICAgYGBxdW90ZWQtcHJpbnRhYmxlYGAuICBTZWUgOnJmYzpgMjA0NWAgZm9yIG1vcmUgaW5mb3JtYXRpb24uCisKKworCisuLiBjbGFzczo6IEhlYWRlclJlZ2lzdHJ5KGJhc2VfY2xhc3M9QmFzZUhlYWRlciwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2NsYXNzPVVuc3RydWN0dXJlZEhlYWRlciwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfZGVmYXVsdF9tYXA9VHJ1ZSkKKworICAgIFRoaXMgaXMgdGhlIGZhY3RvcnkgdXNlZCBieSA6Y2xhc3M6YH5lbWFpbC5wb2xpY3kuRW1haWxQb2xpY3lgIGJ5IGRlZmF1bHQuCisgICAgYGBIZWFkZXJSZWdpc3RyeWBgIGJ1aWxkcyB0aGUgY2xhc3MgdXNlZCB0byBjcmVhdGUgYSBoZWFkZXIgaW5zdGFuY2UKKyAgICBkeW5hbWljYWxseSwgdXNpbmcgKmJhc2VfY2xhc3MqIGFuZCBhIHNwZWNpYWxpemVkIGNsYXNzIHJldHJpZXZlZCBmcm9tIGEKKyAgICByZWdpc3RyeSB0aGF0IGl0IGhvbGRzLiAgV2hlbiBhIGdpdmVuIGhlYWRlciBuYW1lIGRvZXMgbm90IGFwcGVhciBpbiB0aGUKKyAgICByZWdpc3RyeSwgdGhlIGNsYXNzIHNwZWNpZmllZCBieSAqZGVmYXVsdF9jbGFzcyogaXMgdXNlZCBhcyB0aGUgc3BlY2lhbGl6ZWQKKyAgICBjbGFzcy4gIFdoZW4gKnVzZV9kZWZhdWx0X21hcCogaXMgYGBUcnVlYGAgKHRoZSBkZWZhdWx0KSwgdGhlIHN0YW5kYXJkCisgICAgbWFwcGluZyBvZiBoZWFkZXIgbmFtZXMgdG8gY2xhc3NlcyBpcyBjb3BpZWQgaW4gdG8gdGhlIHJlZ2lzdHJ5IGR1cmluZworICAgIGluaXRpYWxpemF0aW9uLiAgKmJhc2VfY2xhc3MqIGlzIGFsd2F5cyB0aGUgbGFzdCBjbGFzcyBpbiB0aGUgZ2VuZXJhdGVkCisgICAgY2xhc3MncyBgYF9fYmFzZXNfX2BgIGxpc3QuCisKKyAgICBUaGUgZGVmYXVsdCBtYXBwaW5ncyBhcmU6CisKKyAgICAgIDpzdWJqZWN0OiAgICAgICAgIFVuaXF1ZVVuc3RydWN0dXJlZEhlYWRlcgorICAgICAgOmRhdGU6ICAgICAgICAgICAgVW5pcXVlRGF0ZUhlYWRlcgorICAgICAgOnJlc2VudC1kYXRlOiAgICAgRGF0ZUhlYWRlcgorICAgICAgOm9yaWctZGF0ZTogICAgICAgVW5pcXVlRGF0ZUhlYWRlcgorICAgICAgOnNlbmRlcjogICAgICAgICAgVW5pcXVlU2luZ2xlQWRkcmVzc0hlYWRlcgorICAgICAgOnJlc2VudC1zZW5kZXI6ICAgU2luZ2xlQWRkcmVzc0hlYWRlcgorICAgICAgOnRvOiAgICAgICAgICAgICAgVW5pcXVlQWRkcmVzc0hlYWRlcgorICAgICAgOnJlc2VudC10bzogICAgICAgQWRkcmVzc0hlYWRlcgorICAgICAgOmNjOiAgICAgICAgICAgICAgVW5pcXVlQWRkcmVzc0hlYWRlcgorICAgICAgOnJlc2VudC1jYzogICAgICAgQWRkcmVzc0hlYWRlcgorICAgICAgOmZyb206ICAgICAgICAgICAgVW5pcXVlQWRkcmVzc0hlYWRlcgorICAgICAgOnJlc2VudC1mcm9tOiAgICAgQWRkcmVzc0hlYWRlcgorICAgICAgOnJlcGx5LXRvOiAgICAgICAgVW5pcXVlQWRkcmVzc0hlYWRlcgorCisgICAgYGBIZWFkZXJSZWdpc3RyeWBgIGhhcyB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CisKKworICAgIC4uIG1ldGhvZDo6IG1hcF90b190eXBlKHNlbGYsIG5hbWUsIGNscykKKworICAgICAgICpuYW1lKiBpcyB0aGUgbmFtZSBvZiB0aGUgaGVhZGVyIHRvIGJlIG1hcHBlZC4gIEl0IHdpbGwgYmUgY29udmVydGVkIHRvCisgICAgICAgbG93ZXIgY2FzZSBpbiB0aGUgcmVnaXN0cnkuICAqY2xzKiBpcyB0aGUgc3BlY2lhbGl6ZWQgY2xhc3MgdG8gYmUgdXNlZCwKKyAgICAgICBhbG9uZyB3aXRoICpiYXNlX2NsYXNzKiwgdG8gY3JlYXRlIHRoZSBjbGFzcyB1c2VkIHRvIGluc3RhbnRpYXRlIGhlYWRlcnMKKyAgICAgICB0aGF0IG1hdGNoICpuYW1lKi4KKworCisgICAgLi4gbWV0aG9kOjogX19nZXRpdGVtX18obmFtZSkKKworICAgICAgIENvbnN0cnVjdCBhbmQgcmV0dXJuIGEgY2xhc3MgdG8gaGFuZGxlIGNyZWF0aW5nIGEgKm5hbWUqIGhlYWRlci4KKworCisgICAgLi4gbWV0aG9kOjogX19jYWxsX18obmFtZSwgdmFsdWUpCisKKyAgICAgICBSZXRyaWV2ZXMgdGhlIHNwZWNpYWxpemVkIGhlYWRlciBhc3NvY2lhdGVkIHdpdGggKm5hbWUqIGZyb20gdGhlCisgICAgICAgcmVnaXN0cnkgKHVzaW5nICpkZWZhdWx0X2NsYXNzKiBpZiAqbmFtZSogZG9lcyBub3QgYXBwZWFyIGluIHRoZQorICAgICAgIHJlZ2lzdHJ5KSBhbmQgY29tcG9zZXMgaXQgd2l0aCAqYmFzZV9jbGFzcyogdG8gcHJvZHVjZSBhIGNsYXNzLAorICAgICAgIGNhbGxzIHRoZSBjb25zdHJ1Y3RlZCBjbGFzcydzIGNvbnN0cnVjdG9yLCBwYXNzaW5nIGl0IHRoZSBzYW1lCisgICAgICAgYXJndW1lbnQgbGlzdCwgYW5kIGZpbmFsbHkgcmV0dXJucyB0aGUgY2xhc3MgaW5zdGFuY2UgY3JlYXRlZCB0aGVyZWJ5LgorCisKK1RoZSBmb2xsb3dpbmcgY2xhc3NlcyBhcmUgdGhlIGNsYXNzZXMgdXNlZCB0byByZXByZXNlbnQgZGF0YSBwYXJzZWQgZnJvbQorc3RydWN0dXJlZCBoZWFkZXJzIGFuZCBjYW4sIGluIGdlbmVyYWwsIGJlIHVzZWQgYnkgYW4gYXBwbGljYXRpb24gcHJvZ3JhbSB0bworY29uc3RydWN0IHN0cnVjdHVyZWQgdmFsdWVzIHRvIGFzc2lnbiB0byBzcGVjaWZpYyBoZWFkZXJzLgorCisKKy4uIGNsYXNzOjogQWRkcmVzcyhkaXNwbGF5X25hbWU9JycsIHVzZXJuYW1lPScnLCBkb21haW49JycsIGFkZHJfc3BlYz1Ob25lKQorCisgICBUaGUgY2xhc3MgdXNlZCB0byByZXByZXNlbnQgYW4gZW1haWwgYWRkcmVzcy4gIFRoZSBnZW5lcmFsIGZvcm0gb2YgYW4KKyAgIGFkZHJlc3MgaXM6OgorCisgICAgICBbZGlzcGxheV9uYW1lXSA8dXNlcm5hbWVAZG9tYWluPgorCisgICBvcjo6CisKKyAgICAgIHVzZXJuYW1lQGRvbWFpbgorCisgICB3aGVyZSBlYWNoIHBhcnQgbXVzdCBjb25mb3JtIHRvIHNwZWNpZmljIHN5bnRheCBydWxlcyBzcGVsbGVkIG91dCBpbgorICAgOnJmYzpgNTMyMmAuCisKKyAgIEFzIGEgY29udmVuaWVuY2UgKmFkZHJfc3BlYyogY2FuIGJlIHNwZWNpZmllZCBpbnN0ZWFkIG9mICp1c2VybmFtZSogYW5kCisgICAqZG9tYWluKiwgaW4gd2hpY2ggY2FzZSAqdXNlcm5hbWUqIGFuZCAqZG9tYWluKiB3aWxsIGJlIHBhcnNlZCBmcm9tIHRoZQorICAgKmFkZHJfc3BlYyouICBBbiAqYWRkcl9zcGVjKiBtdXN0IGJlIGEgcHJvcGVybHkgUkZDIHF1b3RlZCBzdHJpbmc7IGlmIGl0IGlzCisgICBub3QgYGBBZGRyZXNzYGAgd2lsbCByYWlzZSBhbiBlcnJvci4gIFVuaWNvZGUgY2hhcmFjdGVycyBhcmUgYWxsb3dlZCBhbmQKKyAgIHdpbGwgYmUgcHJvcGVydHkgZW5jb2RlZCB3aGVuIHNlcmlhbGl6ZWQuICBIb3dldmVyLCBwZXIgdGhlIFJGQ3MsIHVuaWNvZGUgaXMKKyAgICpub3QqIGFsbG93ZWQgaW4gdGhlIHVzZXJuYW1lIHBvcnRpb24gb2YgdGhlIGFkZHJlc3MuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IGRpc3BsYXlfbmFtZQorCisgICAgICBUaGUgZGlzcGxheSBuYW1lIHBvcnRpb24gb2YgdGhlIGFkZHJlc3MsIGlmIGFueSwgd2l0aCBhbGwgcXVvdGluZworICAgICAgcmVtb3ZlZC4gIElmIHRoZSBhZGRyZXNzIGRvZXMgbm90IGhhdmUgYSBkaXNwbGF5IG5hbWUsIHRoaXMgYXR0cmlidXRlCisgICAgICB3aWxsIGJlIGFuIGVtcHR5IHN0cmluZy4KKworICAgLi4gYXR0cmlidXRlOjogdXNlcm5hbWUKKworICAgICAgVGhlIGBgdXNlcm5hbWVgYCBwb3J0aW9uIG9mIHRoZSBhZGRyZXNzLCB3aXRoIGFsbCBxdW90aW5nIHJlbW92ZWQuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IGRvbWFpbgorCisgICAgICBUaGUgYGBkb21haW5gYCBwb3J0aW9uIG9mIHRoZSBhZGRyZXNzLgorCisgICAuLiBhdHRyaWJ1dGU6OiBhZGRyX3NwZWMKKworICAgICAgVGhlIGBgdXNlcm5hbWVAZG9tYWluYGAgcG9ydGlvbiBvZiB0aGUgYWRkcmVzcywgY29ycmVjdGx5IHF1b3RlZAorICAgICAgZm9yIHVzZSBhcyBhIGJhcmUgYWRkcmVzcyAodGhlIHNlY29uZCBmb3JtIHNob3duIGFib3ZlKS4gIFRoaXMKKyAgICAgIGF0dHJpYnV0ZSBpcyBub3QgbXV0YWJsZS4KKworICAgLi4gbWV0aG9kOjogX19zdHJfXygpCisKKyAgICAgIFRoZSBgYHN0cmBgIHZhbHVlIG9mIHRoZSBvYmplY3QgaXMgdGhlIGFkZHJlc3MgcXVvdGVkIGFjY29yZGluZyB0bworICAgICAgOnJmYzpgNTMyMmAgcnVsZXMsIGJ1dCB3aXRoIG5vIENvbnRlbnQgVHJhbnNmZXIgRW5jb2Rpbmcgb2YgYW55IG5vbi1BU0NJSQorICAgICAgY2hhcmFjdGVycy4KKworICAgVG8gc3VwcG9ydCBTTVRQICg6cmZjOmA1MzIxYCksIGBgQWRkcmVzc2BgIGhhbmRsZXMgb25lIHNwZWNpYWwgY2FzZTogaWYKKyAgIGBgdXNlcm5hbWVgYCBhbmQgYGBkb21haW5gYCBhcmUgYm90aCB0aGUgZW1wdHkgc3RyaW5nIChvciBgYE5vbmVgYCksIHRoZW4KKyAgIHRoZSBzdHJpbmcgdmFsdWUgb2YgdGhlIGBgQWRkcmVzc2BgIGlzIGBgPD5gYC4KKworCisuLiBjbGFzczo6IEdyb3VwKGRpc3BsYXlfbmFtZT1Ob25lLCBhZGRyZXNzZXM9Tm9uZSkKKworICAgVGhlIGNsYXNzIHVzZWQgdG8gcmVwcmVzZW50IGFuIGFkZHJlc3MgZ3JvdXAuICBUaGUgZ2VuZXJhbCBmb3JtIG9mIGFuCisgICBhZGRyZXNzIGdyb3VwIGlzOjoKKworICAgICBkaXNwbGF5X25hbWU6IFthZGRyZXNzLWxpc3RdOworCisgICBBcyBhIGNvbnZlbmllbmNlIGZvciBwcm9jZXNzaW5nIGxpc3RzIG9mIGFkZHJlc3NlcyB0aGF0IGNvbnNpc3Qgb2YgYSBtaXh0dXJlCisgICBvZiBncm91cHMgYW5kIHNpbmdsZSBhZGRyZXNzZXMsIGEgYGBHcm91cGBgIG1heSBhbHNvIGJlIHVzZWQgdG8gcmVwcmVzZW50CisgICBzaW5nbGUgYWRkcmVzc2VzIHRoYXQgYXJlIG5vdCBwYXJ0IG9mIGEgZ3JvdXAgYnkgc2V0dGluZyAqZGlzcGxheV9uYW1lKiB0bworICAgYGBOb25lYGAgYW5kIHByb3ZpZGluZyBhIGxpc3Qgb2YgdGhlIHNpbmdsZSBhZGRyZXNzIGFzICphZGRyZXNzZXMqLgorCisgICAuLiBhdHRyaWJ1dGU6OiBkaXNwbGF5X25hbWUKKworICAgICAgVGhlIGBgZGlzcGxheV9uYW1lYGAgb2YgdGhlIGdyb3VwLiAgSWYgaXQgaXMgYGBOb25lYGAgYW5kIHRoZXJlIGlzCisgICAgICBleGFjdGx5IG9uZSBgYEFkZHJlc3NgYCBpbiBgYGFkZHJlc3Nlc2BgLCB0aGVuIHRoZSBgYEdyb3VwYGAgcmVwcmVzZW50cyBhCisgICAgICBzaW5nbGUgYWRkcmVzcyB0aGF0IGlzIG5vdCBpbiBhIGdyb3VwLgorCisgICAuLiBhdHRyaWJ1dGU6OiBhZGRyZXNzZXMKKworICAgICAgQSBwb3NzaWJseSBlbXB0eSB0dXBsZSBvZiA6Y2xhc3M6YC5BZGRyZXNzYCBvYmplY3RzIHJlcHJlc2VudGluZyB0aGUKKyAgICAgIGFkZHJlc3NlcyBpbiB0aGUgZ3JvdXAuCisKKyAgIC4uIG1ldGhvZDo6IF9fc3RyX18oKQorCisgICAgICBUaGUgYGBzdHJgYCB2YWx1ZSBvZiBhIGBgR3JvdXBgYCBpcyBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIDpyZmM6YDUzMjJgLAorICAgICAgYnV0IHdpdGggbm8gQ29udGVudCBUcmFuc2ZlciBFbmNvZGluZyBvZiBhbnkgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuICBJZgorICAgICAgYGBkaXNwbGF5X25hbWVgYCBpcyBub25lIGFuZCB0aGVyZSBpcyBhIHNpbmdsZSBgYEFkZHJlc3NgYCBpbiB0aGUKKyAgICAgIGBgYWRkcmVzc2VzYGAgbGlzdCwgdGhlIGBgc3RyYGAgdmFsdWUgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgYGBzdHJgYCBvZgorICAgICAgdGhhdCBzaW5nbGUgYGBBZGRyZXNzYGAuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9lbWFpbC5tZXNzYWdlLnJzdCBiL0RvYy9saWJyYXJ5L2VtYWlsLm1lc3NhZ2UucnN0CmluZGV4IGY2ODVlNTQuLjU5YWI0N2QgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2VtYWlsLm1lc3NhZ2UucnN0CisrKyBiL0RvYy9saWJyYXJ5L2VtYWlsLm1lc3NhZ2UucnN0CkBAIC0xMTEsMTAgKzExMSwxNCBAQAogICAgICAgaGVhZGVyLiBXaGVuIGBgVHJ1ZWBgIGFuZCB0aGUgbWVzc2FnZSBpcyBub3QgYSBtdWx0aXBhcnQsIHRoZSBwYXlsb2FkIHdpbGwKICAgICAgIGJlIGRlY29kZWQgaWYgdGhpcyBoZWFkZXIncyB2YWx1ZSBpcyBgYHF1b3RlZC1wcmludGFibGVgYCBvciBgYGJhc2U2NGBgLgogICAgICAgSWYgc29tZSBvdGhlciBlbmNvZGluZyBpcyB1c2VkLCBvciA6bWFpbGhlYWRlcjpgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZ2AKLSAgICAgIGhlYWRlciBpcyBtaXNzaW5nLCBvciBpZiB0aGUgcGF5bG9hZCBoYXMgYm9ndXMgYmFzZTY0IGRhdGEsIHRoZSBwYXlsb2FkIGlzCisgICAgICBoZWFkZXIgaXMgbWlzc2luZywgdGhlIHBheWxvYWQgaXMKICAgICAgIHJldHVybmVkIGFzLWlzICh1bmRlY29kZWQpLiAgSW4gYWxsIGNhc2VzIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyBiaW5hcnkKICAgICAgIGRhdGEuICBJZiB0aGUgbWVzc2FnZSBpcyBhIG11bHRpcGFydCBhbmQgdGhlICpkZWNvZGUqIGZsYWcgaXMgYGBUcnVlYGAsCi0gICAgICB0aGVuIGBgTm9uZWBgIGlzIHJldHVybmVkLgorICAgICAgdGhlbiBgYE5vbmVgYCBpcyByZXR1cm5lZC4gIElmIHRoZSBwYXlsb2FkIGlzIGJhc2U2NCBhbmQgaXQgd2FzIG5vdAorICAgICAgcGVyZmVjdGx5IGZvcm1lZCAobWlzc2luZyBwYWRkaW5nLCBjaGFyYWN0ZXJzIG91dHNpZGUgdGhlIGJhc2U2NAorICAgICAgYWxwaGFiZXQpLCB0aGVuIGFuIGFwcHJvcHJpYXRlIGRlZmVjdCB3aWxsIGJlIGFkZGVkIHRvIHRoZSBtZXNzYWdlJ3MKKyAgICAgIGRlZmVjdCBwcm9wZXJ0eSAoOmNsYXNzOmB+ZW1haWwuZXJyb3JzLkludmFsaWRCYXNlNjRQYWRkaW5nRGVmZWN0YCBvcgorICAgICAgOmNsYXNzOmB+ZW1haWwuZXJyb3JzLkludmFsaWRCYXNlNjRDaGFyYWN0ZXJzRGVmZWN0YCwgcmVzcGVjdGl2ZWx5KS4KIAogICAgICAgV2hlbiAqZGVjb2RlKiBpcyBgYEZhbHNlYGAgKHRoZSBkZWZhdWx0KSB0aGUgYm9keSBpcyByZXR1cm5lZCBhcyBhIHN0cmluZwogICAgICAgd2l0aG91dCBkZWNvZGluZyB0aGUgOm1haWxoZWFkZXI6YENvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmdgLiAgSG93ZXZlciwKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2VtYWlsLm1pbWUucnN0IGIvRG9jL2xpYnJhcnkvZW1haWwubWltZS5yc3QKaW5kZXggYWUzNDBmNy4uZGI1NTg0YyAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZW1haWwubWltZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZW1haWwubWltZS5yc3QKQEAgLTE3NSw3ICsxNzUsNyBAQAogCiAuLiBjdXJyZW50bW9kdWxlOjogZW1haWwubWltZS50ZXh0CiAKLS4uIGNsYXNzOjogTUlNRVRleHQoX3RleHQsIF9zdWJ0eXBlPSdwbGFpbicsIF9jaGFyc2V0PSd1cy1hc2NpaScpCisuLiBjbGFzczo6IE1JTUVUZXh0KF90ZXh0LCBfc3VidHlwZT0ncGxhaW4nLCBfY2hhcnNldD1Ob25lKQogCiAgICBNb2R1bGU6IDptb2Q6YGVtYWlsLm1pbWUudGV4dGAKIApAQCAtMTg1LDUgKzE4NSw1IEBACiAgICBtaW5vciB0eXBlIGFuZCBkZWZhdWx0cyB0byA6bWltZXR5cGU6YHBsYWluYC4gICpfY2hhcnNldCogaXMgdGhlIGNoYXJhY3RlcgogICAgc2V0IG9mIHRoZSB0ZXh0IGFuZCBpcyBwYXNzZWQgYXMgYSBwYXJhbWV0ZXIgdG8gdGhlCiAgICA6Y2xhc3M6YH5lbWFpbC5taW1lLm5vbm11bHRpcGFydC5NSU1FTm9uTXVsdGlwYXJ0YCBjb25zdHJ1Y3RvcjsgaXQgZGVmYXVsdHMKLSAgIHRvIGBgdXMtYXNjaWlgYC4gIE5vIGd1ZXNzaW5nIG9yIGVuY29kaW5nIGlzIHBlcmZvcm1lZCBvbiB0aGUgdGV4dCBkYXRhLgotCisgICB0byBgYHVzLWFzY2lpYGAgaWYgdGhlIHN0cmluZyBjb250YWlucyBvbmx5IGBgYXNjaWlgYCBjb2RlcG9pbnRzLCBhbmQKKyAgIGBgdXRmLThgYCBvdGhlcndpc2UuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9lbWFpbC5wYXJzZXIucnN0IGIvRG9jL2xpYnJhcnkvZW1haWwucGFyc2VyLnJzdAppbmRleCA0OWE1OWMwLi41NGU1NTIxIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9lbWFpbC5wYXJzZXIucnN0CisrKyBiL0RvYy9saWJyYXJ5L2VtYWlsLnBhcnNlci5yc3QKQEAgLTU4LDEyICs1OCwxOCBAQAogSGVyZSBpcyB0aGUgQVBJIGZvciB0aGUgOmNsYXNzOmBGZWVkUGFyc2VyYDoKIAogCi0uLiBjbGFzczo6IEZlZWRQYXJzZXIoX2ZhY3Rvcnk9ZW1haWwubWVzc2FnZS5NZXNzYWdlKQorLi4gY2xhc3M6OiBGZWVkUGFyc2VyKF9mYWN0b3J5PWVtYWlsLm1lc3NhZ2UuTWVzc2FnZSwgKiwgcG9saWN5PXBvbGljeS5kZWZhdWx0KQogCiAgICBDcmVhdGUgYSA6Y2xhc3M6YEZlZWRQYXJzZXJgIGluc3RhbmNlLiAgT3B0aW9uYWwgKl9mYWN0b3J5KiBpcyBhIG5vLWFyZ3VtZW50CiAgICBjYWxsYWJsZSB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIGEgbmV3IG1lc3NhZ2Ugb2JqZWN0IGlzIG5lZWRlZC4gIEl0CiAgICBkZWZhdWx0cyB0byB0aGUgOmNsYXNzOmBlbWFpbC5tZXNzYWdlLk1lc3NhZ2VgIGNsYXNzLgogCisgICBUaGUgKnBvbGljeSoga2V5d29yZCBzcGVjaWZpZXMgYSA6bW9kOmB+ZW1haWwucG9saWN5YCBvYmplY3QgdGhhdCBjb250cm9scyBhCisgICBudW1iZXIgb2YgYXNwZWN0cyBvZiB0aGUgcGFyc2VyJ3Mgb3BlcmF0aW9uLiAgVGhlIGRlZmF1bHQgcG9saWN5IG1haW50YWlucworICAgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMgQWRkZWQgdGhlICpwb2xpY3kqIGtleXdvcmQuCisKICAgIC4uIG1ldGhvZDo6IGZlZWQoZGF0YSkKIAogICAgICAgRmVlZCB0aGUgOmNsYXNzOmBGZWVkUGFyc2VyYCBzb21lIG1vcmUgZGF0YS4gICpkYXRhKiBzaG91bGQgYmUgYSBzdHJpbmcKQEAgLTk0LDE1ICsxMDAsMTggQEAKIFRoZSA6Y2xhc3M6YFBhcnNlcmAgY2xhc3MsIGltcG9ydGVkIGZyb20gdGhlIDptb2Q6YGVtYWlsLnBhcnNlcmAgbW9kdWxlLAogcHJvdmlkZXMgYW4gQVBJIHRoYXQgY2FuIGJlIHVzZWQgdG8gcGFyc2UgYSBtZXNzYWdlIHdoZW4gdGhlIGNvbXBsZXRlIGNvbnRlbnRzCiBvZiB0aGUgbWVzc2FnZSBhcmUgYXZhaWxhYmxlIGluIGEgc3RyaW5nIG9yIGZpbGUuICBUaGUgOm1vZDpgZW1haWwucGFyc2VyYAotbW9kdWxlIGFsc28gcHJvdmlkZXMgYSBzZWNvbmQgY2xhc3MsIGNhbGxlZCA6Y2xhc3M6YEhlYWRlclBhcnNlcmAgd2hpY2ggY2FuIGJlCi11c2VkIGlmIHlvdSdyZSBvbmx5IGludGVyZXN0ZWQgaW4gdGhlIGhlYWRlcnMgb2YgdGhlIG1lc3NhZ2UuCi06Y2xhc3M6YEhlYWRlclBhcnNlcmAgY2FuIGJlIG11Y2ggZmFzdGVyIGluIHRoZXNlIHNpdHVhdGlvbnMsIHNpbmNlIGl0IGRvZXMgbm90Ci1hdHRlbXB0IHRvIHBhcnNlIHRoZSBtZXNzYWdlIGJvZHksIGluc3RlYWQgc2V0dGluZyB0aGUgcGF5bG9hZCB0byB0aGUgcmF3IGJvZHkKLWFzIGEgc3RyaW5nLiA6Y2xhc3M6YEhlYWRlclBhcnNlcmAgaGFzIHRoZSBzYW1lIEFQSSBhcyB0aGUgOmNsYXNzOmBQYXJzZXJgCi1jbGFzcy4KK21vZHVsZSBhbHNvIHByb3ZpZGVzIGhlYWRlci1vbmx5IHBhcnNlcnMsIGNhbGxlZCA6Y2xhc3M6YEhlYWRlclBhcnNlcmAgYW5kCis6Y2xhc3M6YEJ5dGVzSGVhZGVyUGFyc2VyYCwgd2hpY2ggY2FuIGJlIHVzZWQgaWYgeW91J3JlIG9ubHkgaW50ZXJlc3RlZCBpbiB0aGUKK2hlYWRlcnMgb2YgdGhlIG1lc3NhZ2UuICA6Y2xhc3M6YEhlYWRlclBhcnNlcmAgYW5kIDpjbGFzczpgQnl0ZXNIZWFkZXJQYXJzZXJgCitjYW4gYmUgbXVjaCBmYXN0ZXIgaW4gdGhlc2Ugc2l0dWF0aW9ucywgc2luY2UgdGhleSBkbyBub3QgYXR0ZW1wdCB0byBwYXJzZSB0aGUKK21lc3NhZ2UgYm9keSwgaW5zdGVhZCBzZXR0aW5nIHRoZSBwYXlsb2FkIHRvIHRoZSByYXcgYm9keSBhcyBhIHN0cmluZy4gIFRoZXkKK2hhdmUgdGhlIHNhbWUgQVBJIGFzIHRoZSA6Y2xhc3M6YFBhcnNlcmAgYW5kIDpjbGFzczpgQnl0ZXNQYXJzZXJgIGNsYXNzZXMuCisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgVGhlIEJ5dGVzSGVhZGVyUGFyc2VyIGNsYXNzLgogCiAKLS4uIGNsYXNzOjogUGFyc2VyKF9jbGFzcz1lbWFpbC5tZXNzYWdlLk1lc3NhZ2UsIHN0cmljdD1Ob25lKQorLi4gY2xhc3M6OiBQYXJzZXIoX2NsYXNzPWVtYWlsLm1lc3NhZ2UuTWVzc2FnZSwgKiwgcG9saWN5PXBvbGljeS5kZWZhdWx0KQogCiAgICBUaGUgY29uc3RydWN0b3IgZm9yIHRoZSA6Y2xhc3M6YFBhcnNlcmAgY2xhc3MgdGFrZXMgYW4gb3B0aW9uYWwgYXJndW1lbnQKICAgICpfY2xhc3MqLiAgVGhpcyBtdXN0IGJlIGEgY2FsbGFibGUgZmFjdG9yeSAoc3VjaCBhcyBhIGZ1bmN0aW9uIG9yIGEgY2xhc3MpLCBhbmQKQEAgLTExMCwxMyArMTE5LDEzIEBACiAgICA6Y2xhc3M6YH5lbWFpbC5tZXNzYWdlLk1lc3NhZ2VgIChzZWUgOm1vZDpgZW1haWwubWVzc2FnZWApLiAgVGhlIGZhY3Rvcnkgd2lsbAogICAgYmUgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzLgogCi0gICBUaGUgb3B0aW9uYWwgKnN0cmljdCogZmxhZyBpcyBpZ25vcmVkLgorICAgVGhlICpwb2xpY3kqIGtleXdvcmQgc3BlY2lmaWVzIGEgOm1vZDpgfmVtYWlsLnBvbGljeWAgb2JqZWN0IHRoYXQgY29udHJvbHMgYQorICAgbnVtYmVyIG9mIGFzcGVjdHMgb2YgdGhlIHBhcnNlcidzIG9wZXJhdGlvbi4gIFRoZSBkZWZhdWx0IHBvbGljeSBtYWludGFpbnMKKyAgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCiAKLSAgIC4uIGRlcHJlY2F0ZWQ6OiAyLjQKLSAgICAgIEJlY2F1c2UgdGhlIDpjbGFzczpgUGFyc2VyYCBjbGFzcyBpcyBhIGJhY2t3YXJkIGNvbXBhdGlibGUgQVBJIHdyYXBwZXIKLSAgICAgIGFyb3VuZCB0aGUgbmV3LWluLVB5dGhvbiAyLjQgOmNsYXNzOmBGZWVkUGFyc2VyYCwgKmFsbCogcGFyc2luZyBpcwotICAgICAgZWZmZWN0aXZlbHkgbm9uLXN0cmljdC4gIFlvdSBzaG91bGQgc2ltcGx5IHN0b3AgcGFzc2luZyBhICpzdHJpY3QqIGZsYWcgdG8KLSAgICAgIHRoZSA6Y2xhc3M6YFBhcnNlcmAgY29uc3RydWN0b3IuCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgUmVtb3ZlZCB0aGUgKnN0cmljdCogYXJndW1lbnQgdGhhdCB3YXMgZGVwcmVjYXRlZCBpbiAyLjQuICBBZGRlZCB0aGUKKyAgICAgICpwb2xpY3kqIGtleXdvcmQuCiAKICAgIFRoZSBvdGhlciBwdWJsaWMgOmNsYXNzOmBQYXJzZXJgIG1ldGhvZHMgYXJlOgogCkBAIC0xNDcsMTIgKzE1NiwxOCBAQAogICAgICAgT3B0aW9uYWwgKmhlYWRlcnNvbmx5KiBpcyBhcyB3aXRoIHRoZSA6bWV0aDpgcGFyc2VgIG1ldGhvZC4KIAogCi0uLiBjbGFzczo6IEJ5dGVzUGFyc2VyKF9jbGFzcz1lbWFpbC5tZXNzYWdlLk1lc3NhZ2UsIHN0cmljdD1Ob25lKQorLi4gY2xhc3M6OiBCeXRlc1BhcnNlcihfY2xhc3M9ZW1haWwubWVzc2FnZS5NZXNzYWdlLCAqLCBwb2xpY3k9cG9saWN5LmRlZmF1bHQpCiAKICAgIFRoaXMgY2xhc3MgaXMgZXhhY3RseSBwYXJhbGxlbCB0byA6Y2xhc3M6YFBhcnNlcmAsIGJ1dCBoYW5kbGVzIGJ5dGVzIGlucHV0LgogICAgVGhlICpfY2xhc3MqIGFuZCAqc3RyaWN0KiBhcmd1bWVudHMgYXJlIGludGVycHJldGVkIGluIHRoZSBzYW1lIHdheSBhcyBmb3IKLSAgIHRoZSA6Y2xhc3M6YFBhcnNlcmAgY29uc3RydWN0b3IuICAqc3RyaWN0KiBpcyBzdXBwb3J0ZWQgb25seSB0byBtYWtlIHBvcnRpbmcKLSAgIGNvZGUgZWFzaWVyOyBpdCBpcyBkZXByZWNhdGVkLgorICAgdGhlIDpjbGFzczpgUGFyc2VyYCBjb25zdHJ1Y3Rvci4KKworICAgVGhlICpwb2xpY3kqIGtleXdvcmQgc3BlY2lmaWVzIGEgOm1vZDpgfmVtYWlsLnBvbGljeWAgb2JqZWN0IHRoYXQKKyAgIGNvbnRyb2xzIGEgbnVtYmVyIG9mIGFzcGVjdHMgb2YgdGhlIHBhcnNlcidzIG9wZXJhdGlvbi4gIFRoZSBkZWZhdWx0CisgICBwb2xpY3kgbWFpbnRhaW5zIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBSZW1vdmVkIHRoZSAqc3RyaWN0KiBhcmd1bWVudC4gIEFkZGVkIHRoZSAqcG9saWN5KiBrZXl3b3JkLgogCiAgICAuLiBtZXRob2Q6OiBwYXJzZShmcCwgaGVhZGVyb25seT1GYWxzZSkKIApAQCAtMTkwLDM0ICsyMDUsNDggQEAKIAogLi4gY3VycmVudG1vZHVsZTo6IGVtYWlsCiAKLS4uIGZ1bmN0aW9uOjogbWVzc2FnZV9mcm9tX3N0cmluZyhzLCBfY2xhc3M9ZW1haWwubWVzc2FnZS5NZXNzYWdlLCBzdHJpY3Q9Tm9uZSkKKy4uIGZ1bmN0aW9uOjogbWVzc2FnZV9mcm9tX3N0cmluZyhzLCBfY2xhc3M9ZW1haWwubWVzc2FnZS5NZXNzYWdlLCAqLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5PXBvbGljeS5kZWZhdWx0KQogCiAgICBSZXR1cm4gYSBtZXNzYWdlIG9iamVjdCBzdHJ1Y3R1cmUgZnJvbSBhIHN0cmluZy4gIFRoaXMgaXMgZXhhY3RseSBlcXVpdmFsZW50IHRvCi0gICBgYFBhcnNlcigpLnBhcnNlc3RyKHMpYGAuICBPcHRpb25hbCAqX2NsYXNzKiBhbmQgKnN0cmljdCogYXJlIGludGVycHJldGVkIGFzCisgICBgYFBhcnNlcigpLnBhcnNlc3RyKHMpYGAuICAqX2NsYXNzKiBhbmQgKnBvbGljeSogYXJlIGludGVycHJldGVkIGFzCiAgICB3aXRoIHRoZSA6Y2xhc3M6YFBhcnNlcmAgY2xhc3MgY29uc3RydWN0b3IuCiAKLS4uIGZ1bmN0aW9uOjogbWVzc2FnZV9mcm9tX2J5dGVzKHMsIF9jbGFzcz1lbWFpbC5tZXNzYWdlLk1lc3NhZ2UsIHN0cmljdD1Ob25lKQorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFJlbW92ZWQgdGhlICpzdHJpY3QqIGFyZ3VtZW50LiAgQWRkZWQgdGhlICpwb2xpY3kqIGtleXdvcmQuCisKKy4uIGZ1bmN0aW9uOjogbWVzc2FnZV9mcm9tX2J5dGVzKHMsIF9jbGFzcz1lbWFpbC5tZXNzYWdlLk1lc3NhZ2UsICosIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeT1wb2xpY3kuZGVmYXVsdCkKIAogICAgUmV0dXJuIGEgbWVzc2FnZSBvYmplY3Qgc3RydWN0dXJlIGZyb20gYSBieXRlIHN0cmluZy4gIFRoaXMgaXMgZXhhY3RseQogICAgZXF1aXZhbGVudCB0byBgYEJ5dGVzUGFyc2VyKCkucGFyc2VieXRlcyhzKWBgLiAgT3B0aW9uYWwgKl9jbGFzcyogYW5kCiAgICAqc3RyaWN0KiBhcmUgaW50ZXJwcmV0ZWQgYXMgd2l0aCB0aGUgOmNsYXNzOmBQYXJzZXJgIGNsYXNzIGNvbnN0cnVjdG9yLgogCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBSZW1vdmVkIHRoZSAqc3RyaWN0KiBhcmd1bWVudC4gIEFkZGVkIHRoZSAqcG9saWN5KiBrZXl3b3JkLgogCi0uLiBmdW5jdGlvbjo6IG1lc3NhZ2VfZnJvbV9maWxlKGZwLCBfY2xhc3M9ZW1haWwubWVzc2FnZS5NZXNzYWdlLCBzdHJpY3Q9Tm9uZSkKKy4uIGZ1bmN0aW9uOjogbWVzc2FnZV9mcm9tX2ZpbGUoZnAsIF9jbGFzcz1lbWFpbC5tZXNzYWdlLk1lc3NhZ2UsICosIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5PXBvbGljeS5kZWZhdWx0KQogCiAgICBSZXR1cm4gYSBtZXNzYWdlIG9iamVjdCBzdHJ1Y3R1cmUgdHJlZSBmcm9tIGFuIG9wZW4gOnRlcm06YGZpbGUgb2JqZWN0YC4KLSAgIFRoaXMgaXMgZXhhY3RseSBlcXVpdmFsZW50IHRvIGBgUGFyc2VyKCkucGFyc2UoZnApYGAuICBPcHRpb25hbCAqX2NsYXNzKgotICAgYW5kICpzdHJpY3QqIGFyZSBpbnRlcnByZXRlZCBhcyB3aXRoIHRoZSA6Y2xhc3M6YFBhcnNlcmAgY2xhc3MgY29uc3RydWN0b3IuCisgICBUaGlzIGlzIGV4YWN0bHkgZXF1aXZhbGVudCB0byBgYFBhcnNlcigpLnBhcnNlKGZwKWBgLiAgKl9jbGFzcyoKKyAgIGFuZCAqcG9saWN5KiBhcmUgaW50ZXJwcmV0ZWQgYXMgd2l0aCB0aGUgOmNsYXNzOmBQYXJzZXJgIGNsYXNzIGNvbnN0cnVjdG9yLgogCi0uLiBmdW5jdGlvbjo6IG1lc3NhZ2VfZnJvbV9iaW5hcnlfZmlsZShmcCwgX2NsYXNzPWVtYWlsLm1lc3NhZ2UuTWVzc2FnZSwgc3RyaWN0PU5vbmUpCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6CisgICAgICBSZW1vdmVkIHRoZSAqc3RyaWN0KiBhcmd1bWVudC4gIEFkZGVkIHRoZSAqcG9saWN5KiBrZXl3b3JkLgorCisuLiBmdW5jdGlvbjo6IG1lc3NhZ2VfZnJvbV9iaW5hcnlfZmlsZShmcCwgX2NsYXNzPWVtYWlsLm1lc3NhZ2UuTWVzc2FnZSwgKiwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5PXBvbGljeS5kZWZhdWx0KQogCiAgICBSZXR1cm4gYSBtZXNzYWdlIG9iamVjdCBzdHJ1Y3R1cmUgdHJlZSBmcm9tIGFuIG9wZW4gYmluYXJ5IDp0ZXJtOmBmaWxlCiAgICBvYmplY3RgLiAgVGhpcyBpcyBleGFjdGx5IGVxdWl2YWxlbnQgdG8gYGBCeXRlc1BhcnNlcigpLnBhcnNlKGZwKWBgLgotICAgT3B0aW9uYWwgKl9jbGFzcyogYW5kICpzdHJpY3QqIGFyZSBpbnRlcnByZXRlZCBhcyB3aXRoIHRoZSA6Y2xhc3M6YFBhcnNlcmAKKyAgICpfY2xhc3MqIGFuZCAqcG9saWN5KiBhcmUgaW50ZXJwcmV0ZWQgYXMgd2l0aCB0aGUgOmNsYXNzOmBQYXJzZXJgCiAgICBjbGFzcyBjb25zdHJ1Y3Rvci4KIAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgUmVtb3ZlZCB0aGUgKnN0cmljdCogYXJndW1lbnQuICBBZGRlZCB0aGUgKnBvbGljeSoga2V5d29yZC4KIAogSGVyZSdzIGFuIGV4YW1wbGUgb2YgaG93IHlvdSBtaWdodCB1c2UgdGhpcyBhdCBhbiBpbnRlcmFjdGl2ZSBQeXRob24gcHJvbXB0OjoKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvZW1haWwucG9saWN5LnJzdCBiL0RvYy9saWJyYXJ5L2VtYWlsLnBvbGljeS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzFiMTNjMQotLS0gL2Rldi9udWxsCisrKyBiL0RvYy9saWJyYXJ5L2VtYWlsLnBvbGljeS5yc3QKQEAgLTAsMCArMSw0OTcgQEAKKzptb2Q6YGVtYWlsLnBvbGljeWA6IFBvbGljeSBPYmplY3RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBtb2R1bGU6OiBlbWFpbC5wb2xpY3kKKyAgIDpzeW5vcHNpczogQ29udHJvbGxpbmcgdGhlIHBhcnNpbmcgYW5kIGdlbmVyYXRpbmcgb2YgbWVzc2FnZXMKKworLi4gbW9kdWxlYXV0aG9yOjogUi4gRGF2aWQgTXVycmF5IDxyZG11cnJheUBiaXRkYW5jZS5jb20+CisuLiBzZWN0aW9uYXV0aG9yOjogUi4gRGF2aWQgTXVycmF5IDxyZG11cnJheUBiaXRkYW5jZS5jb20+CisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKK1RoZSA6bW9kOmBlbWFpbGAgcGFja2FnZSdzIHByaW1lIGZvY3VzIGlzIHRoZSBoYW5kbGluZyBvZiBlbWFpbCBtZXNzYWdlcyBhcworZGVzY3JpYmVkIGJ5IHRoZSB2YXJpb3VzIGVtYWlsIGFuZCBNSU1FIFJGQ3MuICBIb3dldmVyLCB0aGUgZ2VuZXJhbCBmb3JtYXQgb2YKK2VtYWlsIG1lc3NhZ2VzIChhIGJsb2NrIG9mIGhlYWRlciBmaWVsZHMgZWFjaCBjb25zaXN0aW5nIG9mIGEgbmFtZSBmb2xsb3dlZCBieQorYSBjb2xvbiBmb2xsb3dlZCBieSBhIHZhbHVlLCB0aGUgd2hvbGUgYmxvY2sgZm9sbG93ZWQgYnkgYSBibGFuayBsaW5lIGFuZCBhbgorYXJiaXRyYXJ5ICdib2R5JyksIGlzIGEgZm9ybWF0IHRoYXQgaGFzIGZvdW5kIHV0aWxpdHkgb3V0c2lkZSBvZiB0aGUgcmVhbG0gb2YKK2VtYWlsLiAgU29tZSBvZiB0aGVzZSB1c2VzIGNvbmZvcm0gZmFpcmx5IGNsb3NlbHkgdG8gdGhlIG1haW4gUkZDcywgc29tZSBkbworbm90LiAgQW5kIGV2ZW4gd2hlbiB3b3JraW5nIHdpdGggZW1haWwsIHRoZXJlIGFyZSB0aW1lcyB3aGVuIGl0IGlzIGRlc2lyYWJsZSB0bworYnJlYWsgc3RyaWN0IGNvbXBsaWFuY2Ugd2l0aCB0aGUgUkZDcy4KKworUG9saWN5IG9iamVjdHMgZ2l2ZSB0aGUgZW1haWwgcGFja2FnZSB0aGUgZmxleGliaWxpdHkgdG8gaGFuZGxlIGFsbCB0aGVzZQorZGlzcGFyYXRlIHVzZSBjYXNlcy4KKworQSA6Y2xhc3M6YFBvbGljeWAgb2JqZWN0IGVuY2Fwc3VsYXRlcyBhIHNldCBvZiBhdHRyaWJ1dGVzIGFuZCBtZXRob2RzIHRoYXQKK2NvbnRyb2wgdGhlIGJlaGF2aW9yIG9mIHZhcmlvdXMgY29tcG9uZW50cyBvZiB0aGUgZW1haWwgcGFja2FnZSBkdXJpbmcgdXNlLgorOmNsYXNzOmBQb2xpY3lgIGluc3RhbmNlcyBjYW4gYmUgcGFzc2VkIHRvIHZhcmlvdXMgY2xhc3NlcyBhbmQgbWV0aG9kcyBpbiB0aGUKK2VtYWlsIHBhY2thZ2UgdG8gYWx0ZXIgdGhlIGRlZmF1bHQgYmVoYXZpb3IuICBUaGUgc2V0dGFibGUgdmFsdWVzIGFuZCB0aGVpcgorZGVmYXVsdHMgYXJlIGRlc2NyaWJlZCBiZWxvdy4KKworVGhlcmUgaXMgYSBkZWZhdWx0IHBvbGljeSB1c2VkIGJ5IGFsbCBjbGFzc2VzIGluIHRoZSBlbWFpbCBwYWNrYWdlLiAgVGhpcworcG9saWN5IGlzIG5hbWVkIDpjbGFzczpgQ29tcGF0MzJgLCB3aXRoIGEgY29ycmVzcG9uZGluZyBwcmUtZGVmaW5lZCBpbnN0YW5jZQorbmFtZWQgOmNvbnN0OmBjb21wYXQzMmAuICBJdCBwcm92aWRlcyBmb3IgY29tcGxldGUgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAoaW4KK3NvbWUgY2FzZXMsIGluY2x1ZGluZyBidWcgY29tcGF0aWJpbGl0eSkgd2l0aCB0aGUgcHJlLVB5dGhvbjMuMyB2ZXJzaW9uIG9mIHRoZQorZW1haWwgcGFja2FnZS4KKworVGhlIGZpcnN0IHBhcnQgb2YgdGhpcyBkb2N1bWVudGF0aW9uIGNvdmVycyB0aGUgZmVhdHVyZXMgb2YgOmNsYXNzOmBQb2xpY3lgLCBhbgorOnRlcm06YGFic3RyYWN0IGJhc2UgY2xhc3NgICB0aGF0IGRlZmluZXMgdGhlIGZlYXR1cmVzIHRoYXQgYXJlIGNvbW1vbiB0byBhbGwKK3BvbGljeSBvYmplY3RzLCBpbmNsdWRpbmcgOmNvbnN0OmBjb21wYXQzMmAuICBUaGlzIGluY2x1ZGVzIGNlcnRhaW4gaG9vaworbWV0aG9kcyB0aGF0IGFyZSBjYWxsZWQgaW50ZXJuYWxseSBieSB0aGUgZW1haWwgcGFja2FnZSwgd2hpY2ggYSBjdXN0b20gcG9saWN5Citjb3VsZCBvdmVycmlkZSB0byBvYnRhaW4gZGlmZmVyZW50IGJlaGF2aW9yLgorCitXaGVuIGEgOmNsYXNzOmB+ZW1haWwubWVzc2FnZS5NZXNzYWdlYCBvYmplY3QgaXMgY3JlYXRlZCwgaXQgYWNxdWlyZXMgYSBwb2xpY3kuCitCeSBkZWZhdWx0IHRoaXMgd2lsbCBiZSA6Y29uc3Q6YGNvbXBhdDMyYCwgYnV0IGEgZGlmZmVyZW50IHBvbGljeSBjYW4gYmUKK3NwZWNpZmllZC4gIElmIHRoZSBgYE1lc3NhZ2VgYCBpcyBjcmVhdGVkIGJ5IGEgOm1vZDpgfmVtYWlsLnBhcnNlcmAsIGEgcG9saWN5CitwYXNzZWQgdG8gdGhlIHBhcnNlciB3aWxsIGJlIHRoZSBwb2xpY3kgdXNlZCBieSB0aGUgYGBNZXNzYWdlYGAgaXQgY3JlYXRlcy4gIElmCit0aGUgYGBNZXNzYWdlYGAgaXMgY3JlYXRlZCBieSB0aGUgcHJvZ3JhbSwgdGhlbiB0aGUgcG9saWN5IGNhbiBiZSBzcGVjaWZpZWQKK3doZW4gaXQgaXMgY3JlYXRlZC4gIFdoZW4gYSBgYE1lc3NhZ2VgYCBpcyBwYXNzZWQgdG8gYSA6bW9kOmB+ZW1haWwuZ2VuZXJhdG9yYCwKK3RoZSBnZW5lcmF0b3IgdXNlcyB0aGUgcG9saWN5IGZyb20gdGhlIGBgTWVzc2FnZWBgIGJ5IGRlZmF1bHQsIGJ1dCB5b3UgY2FuIGFsc28KK3Bhc3MgYSBzcGVjaWZpYyBwb2xpY3kgdG8gdGhlIGdlbmVyYXRvciB0aGF0IHdpbGwgb3ZlcnJpZGUgdGhlIG9uZSBzdG9yZWQgb24KK3RoZSBgYE1lc3NhZ2VgYCBvYmplY3QuCisKKzpjbGFzczpgUG9saWN5YCBpbnN0YW5jZXMgYXJlIGltbXV0YWJsZSwgYnV0IHRoZXkgY2FuIGJlIGNsb25lZCwgYWNjZXB0aW5nIHRoZQorc2FtZSBrZXl3b3JkIGFyZ3VtZW50cyBhcyB0aGUgY2xhc3MgY29uc3RydWN0b3IgYW5kIHJldHVybmluZyBhIG5ldworOmNsYXNzOmBQb2xpY3lgIGluc3RhbmNlIHRoYXQgaXMgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBidXQgd2l0aCB0aGUgc3BlY2lmaWVkCithdHRyaWJ1dGVzIHZhbHVlcyBjaGFuZ2VkLgorCitBcyBhbiBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvZGUgY291bGQgYmUgdXNlZCB0byByZWFkIGFuIGVtYWlsIG1lc3NhZ2UgZnJvbSBhCitmaWxlIG9uIGRpc2sgYW5kIHBhc3MgaXQgdG8gdGhlIHN5c3RlbSBgYHNlbmRtYWlsYGAgcHJvZ3JhbSBvbiBhIFVuaXggc3lzdGVtOjoKKworICAgPj4+IGZyb20gZW1haWwgaW1wb3J0IG1zZ19mcm9tX2JpbmFyeV9maWxlCisgICA+Pj4gZnJvbSBlbWFpbC5nZW5lcmF0b3IgaW1wb3J0IEJ5dGVzR2VuZXJhdG9yCisgICA+Pj4gZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBQb3BlbiwgUElQRQorICAgPj4+IHdpdGggb3BlbignbXltc2cudHh0JywgJ2InKSBhcyBmOgorICAgLi4uICAgICBtc2cgPSBtc2dfZnJvbV9iaW5hcnlfZmlsZShmKQorICAgPj4+IHAgPSBQb3BlbihbJ3NlbmRtYWlsJywgbXNnWydUbyddWzBdLmFkZHJlc3NdLCBzdGRpbj1QSVBFKQorICAgPj4+IGcgPSBCeXRlc0dlbmVyYXRvcihwLnN0ZGluLCBwb2xpY3k9bXNnLnBvbGljeS5jbG9uZShsaW5lc2VwPSdcclxuJykpCisgICA+Pj4gZy5mbGF0dGVuKG1zZykKKyAgID4+PiBwLnN0ZGluLmNsb3NlKCkKKyAgID4+PiByYyA9IHAud2FpdCgpCisKK0hlcmUgd2UgYXJlIHRlbGxpbmcgOmNsYXNzOmB+ZW1haWwuZ2VuZXJhdG9yLkJ5dGVzR2VuZXJhdG9yYCB0byB1c2UgdGhlIFJGQworY29ycmVjdCBsaW5lIHNlcGFyYXRvciBjaGFyYWN0ZXJzIHdoZW4gY3JlYXRpbmcgdGhlIGJpbmFyeSBzdHJpbmcgdG8gZmVlZCBpbnRvCitgYHNlbmRtYWlsJ3NgYCBgYHN0ZGluYGAsIHdoZXJlIHRoZSBkZWZhdWx0IHBvbGljeSB3b3VsZCB1c2UgYGBcbmBgIGxpbmUKK3NlcGFyYXRvcnMuCisKK1NvbWUgZW1haWwgcGFja2FnZSBtZXRob2RzIGFjY2VwdCBhICpwb2xpY3kqIGtleXdvcmQgYXJndW1lbnQsIGFsbG93aW5nIHRoZQorcG9saWN5IHRvIGJlIG92ZXJyaWRkZW4gZm9yIHRoYXQgbWV0aG9kLiAgRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgY29kZSB1c2VzCit0aGUgOm1ldGg6YH5lbWFpbC5tZXNzYWdlLk1lc3NhZ2UuYXNfc3RyaW5nYCBtZXRob2Qgb2YgdGhlICptc2cqIG9iamVjdCBmcm9tCit0aGUgcHJldmlvdXMgZXhhbXBsZSBhbmQgd3JpdGVzIHRoZSBtZXNzYWdlIHRvIGEgZmlsZSB1c2luZyB0aGUgbmF0aXZlIGxpbmUKK3NlcGFyYXRvcnMgZm9yIHRoZSBwbGF0Zm9ybSBvbiB3aGljaCBpdCBpcyBydW5uaW5nOjoKKworICAgPj4+IGltcG9ydCBvcworICAgPj4+IHdpdGggb3BlbignY29udmVydGVkLnR4dCcsICd3YicpIGFzIGY6CisgICAuLi4gICAgIGYud3JpdGUobXNnLmFzX3N0cmluZyhwb2xpY3k9bXNnLnBvbGljeS5jbG9uZShsaW5lc2VwPW9zLmxpbmVzZXApKQorCitQb2xpY3kgb2JqZWN0cyBjYW4gYWxzbyBiZSBjb21iaW5lZCB1c2luZyB0aGUgYWRkaXRpb24gb3BlcmF0b3IsIHByb2R1Y2luZyBhCitwb2xpY3kgb2JqZWN0IHdob3NlIHNldHRpbmdzIGFyZSBhIGNvbWJpbmF0aW9uIG9mIHRoZSBub24tZGVmYXVsdCB2YWx1ZXMgb2YgdGhlCitzdW1tZWQgb2JqZWN0czo6CisKKyAgID4+PiBjb21wYXRfU01UUCA9IGVtYWlsLnBvbGljeS5jbG9uZShsaW5lc2VwPSdcclxuJykKKyAgID4+PiBjb21wYXRfc3RyaWN0ID0gZW1haWwucG9saWN5LmNsb25lKHJhaXNlX29uX2RlZmVjdD1UcnVlKQorICAgPj4+IGNvbXBhdF9zdHJpY3RfU01UUCA9IGNvbXBhdF9TTVRQICsgY29tcGF0X3N0cmljdAorCitUaGlzIG9wZXJhdGlvbiBpcyBub3QgY29tbXV0YXRpdmU7IHRoYXQgaXMsIHRoZSBvcmRlciBpbiB3aGljaCB0aGUgb2JqZWN0cyBhcmUKK2FkZGVkIG1hdHRlcnMuICBUbyBpbGx1c3RyYXRlOjoKKworICAgPj4+IHBvbGljeTEwMCA9IGNvbXBhdDMyLmNsb25lKG1heF9saW5lX2xlbmd0aD0xMDApCisgICA+Pj4gcG9saWN5ODAgPSBjb21wYXQzMi5jbG9uZShtYXhfbGluZV9sZW5ndGg9ODApCisgICA+Pj4gYXBvbGljeSA9IHBvbGljeTEwMCArIFBvbGljeTgwCisgICA+Pj4gYXBvbGljeS5tYXhfbGluZV9sZW5ndGgKKyAgIDgwCisgICA+Pj4gYXBvbGljeSA9IHBvbGljeTgwICsgcG9saWN5MTAwCisgICA+Pj4gYXBvbGljeS5tYXhfbGluZV9sZW5ndGgKKyAgIDEwMAorCisKKy4uIGNsYXNzOjogUG9saWN5KCoqa3cpCisKKyAgIFRoaXMgaXMgdGhlIDp0ZXJtOmBhYnN0cmFjdCBiYXNlIGNsYXNzYCBmb3IgYWxsIHBvbGljeSBjbGFzc2VzLiAgSXQgcHJvdmlkZXMKKyAgIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIGZvciBhIGNvdXBsZSBvZiB0cml2aWFsIG1ldGhvZHMsIGFzIHdlbGwgYXMgdGhlCisgICBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaW1tdXRhYmlsaXR5IHByb3BlcnR5LCB0aGUgOm1ldGg6YGNsb25lYCBtZXRob2QsIGFuZAorICAgdGhlIGNvbnN0cnVjdG9yIHNlbWFudGljcy4KKworICAgVGhlIGNvbnN0cnVjdG9yIG9mIGEgcG9saWN5IGNsYXNzIGNhbiBiZSBwYXNzZWQgdmFyaW91cyBrZXl3b3JkIGFyZ3VtZW50cy4KKyAgIFRoZSBhcmd1bWVudHMgdGhhdCBtYXkgYmUgc3BlY2lmaWVkIGFyZSBhbnkgbm9uLW1ldGhvZCBwcm9wZXJ0aWVzIG9uIHRoaXMKKyAgIGNsYXNzLCBwbHVzIGFueSBhZGRpdGlvbmFsIG5vbi1tZXRob2QgcHJvcGVydGllcyBvbiB0aGUgY29uY3JldGUgY2xhc3MuICBBCisgICB2YWx1ZSBzcGVjaWZpZWQgaW4gdGhlIGNvbnN0cnVjdG9yIHdpbGwgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoZQorICAgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUuCisKKyAgIFRoaXMgY2xhc3MgZGVmaW5lcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMsIGFuZCB0aHVzIHZhbHVlcyBmb3IgdGhlCisgICBmb2xsb3dpbmcgbWF5IGJlIHBhc3NlZCBpbiB0aGUgY29uc3RydWN0b3Igb2YgYW55IHBvbGljeSBjbGFzczoKKworICAgLi4gYXR0cmlidXRlOjogbWF4X2xpbmVfbGVuZ3RoCisKKyAgICAgIFRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhbnkgbGluZSBpbiB0aGUgc2VyaWFsaXplZCBvdXRwdXQsIG5vdCBjb3VudGluZyB0aGUKKyAgICAgIGVuZCBvZiBsaW5lIGNoYXJhY3RlcihzKS4gIERlZmF1bHQgaXMgNzgsIHBlciA6cmZjOmA1MzIyYC4gIEEgdmFsdWUgb2YKKyAgICAgIGBgMGBgIG9yIDpjb25zdDpgTm9uZWAgaW5kaWNhdGVzIHRoYXQgbm8gbGluZSB3cmFwcGluZyBzaG91bGQgYmUKKyAgICAgIGRvbmUgYXQgYWxsLgorCisgICAuLiBhdHRyaWJ1dGU6OiBsaW5lc2VwCisKKyAgICAgIFRoZSBzdHJpbmcgdG8gYmUgdXNlZCB0byB0ZXJtaW5hdGUgbGluZXMgaW4gc2VyaWFsaXplZCBvdXRwdXQuICBUaGUKKyAgICAgIGRlZmF1bHQgaXMgYGBcbmBgIGJlY2F1c2UgdGhhdCdzIHRoZSBpbnRlcm5hbCBlbmQtb2YtbGluZSBkaXNjaXBsaW5lIHVzZWQKKyAgICAgIGJ5IFB5dGhvbiwgdGhvdWdoIGBgXHJcbmBgIGlzIHJlcXVpcmVkIGJ5IHRoZSBSRkNzLgorCisgICAuLiBhdHRyaWJ1dGU6OiBjdGVfdHlwZQorCisgICAgICBDb250cm9scyB0aGUgdHlwZSBvZiBDb250ZW50IFRyYW5zZmVyIEVuY29kaW5ncyB0aGF0IG1heSBiZSBvciBhcmUKKyAgICAgIHJlcXVpcmVkIHRvIGJlIHVzZWQuICBUaGUgcG9zc2libGUgdmFsdWVzIGFyZToKKworICAgICAgPT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAgYGA3Yml0YGAgIGFsbCBkYXRhIG11c3QgYmUgIjcgYml0IGNsZWFuIiAoQVNDSUktb25seSkuICBUaGlzIG1lYW5zIHRoYXQKKyAgICAgICAgICAgICAgICB3aGVyZSBuZWNlc3NhcnkgZGF0YSB3aWxsIGJlIGVuY29kZWQgdXNpbmcgZWl0aGVyCisgICAgICAgICAgICAgICAgcXVvdGVkLXByaW50YWJsZSBvciBiYXNlNjQgZW5jb2RpbmcuCisKKyAgICAgIGBgOGJpdGBgICBkYXRhIGlzIG5vdCBjb25zdHJhaW5lZCB0byBiZSA3IGJpdCBjbGVhbi4gIERhdGEgaW4gaGVhZGVycyBpcworICAgICAgICAgICAgICAgIHN0aWxsIHJlcXVpcmVkIHRvIGJlIEFTQ0lJLW9ubHkgYW5kIHNvIHdpbGwgYmUgZW5jb2RlZCAoc2VlCisgICAgICAgICAgICAgICAgJ2JpbmFyeV9mb2xkJyBiZWxvdyBmb3IgYW4gZXhjZXB0aW9uKSwgYnV0IGJvZHkgcGFydHMgbWF5IHVzZQorICAgICAgICAgICAgICAgIHRoZSBgYDhiaXRgYCBDVEUuCisgICAgICA9PT09PT09PSAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAgIEEgYGBjdGVfdHlwZWBgIHZhbHVlIG9mIGBgOGJpdGBgIG9ubHkgd29ya3Mgd2l0aCBgYEJ5dGVzR2VuZXJhdG9yYGAsIG5vdAorICAgICAgYGBHZW5lcmF0b3JgYCwgYmVjYXVzZSBzdHJpbmdzIGNhbm5vdCBjb250YWluIGJpbmFyeSBkYXRhLiAgSWYgYQorICAgICAgYGBHZW5lcmF0b3JgYCBpcyBvcGVyYXRpbmcgdW5kZXIgYSBwb2xpY3kgdGhhdCBzcGVjaWZpZXMKKyAgICAgIGBgY3RlX3R5cGU9OGJpdGBgLCBpdCB3aWxsIGFjdCBhcyBpZiBgYGN0ZV90eXBlYGAgaXMgYGA3Yml0YGAuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IHJhaXNlX29uX2RlZmVjdAorCisgICAgICBJZiA6Y29uc3Q6YFRydWVgLCBhbnkgZGVmZWN0cyBlbmNvdW50ZXJlZCB3aWxsIGJlIHJhaXNlZCBhcyBlcnJvcnMuICBJZgorICAgICAgOmNvbnN0OmBGYWxzZWAgKHRoZSBkZWZhdWx0KSwgZGVmZWN0cyB3aWxsIGJlIHBhc3NlZCB0byB0aGUKKyAgICAgIDptZXRoOmByZWdpc3Rlcl9kZWZlY3RgIG1ldGhvZC4KKworICAgVGhlIGZvbGxvd2luZyA6Y2xhc3M6YFBvbGljeWAgbWV0aG9kIGlzIGludGVuZGVkIHRvIGJlIGNhbGxlZCBieSBjb2RlIHVzaW5nCisgICB0aGUgZW1haWwgbGlicmFyeSB0byBjcmVhdGUgcG9saWN5IGluc3RhbmNlcyB3aXRoIGN1c3RvbSBzZXR0aW5nczoKKworICAgLi4gbWV0aG9kOjogY2xvbmUoKiprdykKKworICAgICAgUmV0dXJuIGEgbmV3IDpjbGFzczpgUG9saWN5YCBpbnN0YW5jZSB3aG9zZSBhdHRyaWJ1dGVzIGhhdmUgdGhlIHNhbWUKKyAgICAgIHZhbHVlcyBhcyB0aGUgY3VycmVudCBpbnN0YW5jZSwgZXhjZXB0IHdoZXJlIHRob3NlIGF0dHJpYnV0ZXMgYXJlCisgICAgICBnaXZlbiBuZXcgdmFsdWVzIGJ5IHRoZSBrZXl3b3JkIGFyZ3VtZW50cy4KKworICAgVGhlIHJlbWFpbmluZyA6Y2xhc3M6YFBvbGljeWAgbWV0aG9kcyBhcmUgY2FsbGVkIGJ5IHRoZSBlbWFpbCBwYWNrYWdlIGNvZGUsCisgICBhbmQgYXJlIG5vdCBpbnRlbmRlZCB0byBiZSBjYWxsZWQgYnkgYW4gYXBwbGljYXRpb24gdXNpbmcgdGhlIGVtYWlsIHBhY2thZ2UuCisgICBBIGN1c3RvbSBwb2xpY3kgbXVzdCBpbXBsZW1lbnQgYWxsIG9mIHRoZXNlIG1ldGhvZHMuCisKKyAgIC4uIG1ldGhvZDo6IGhhbmRsZV9kZWZlY3Qob2JqLCBkZWZlY3QpCisKKyAgICAgIEhhbmRsZSBhICpkZWZlY3QqIGZvdW5kIG9uICpvYmoqLiAgV2hlbiB0aGUgZW1haWwgcGFja2FnZSBjYWxscyB0aGlzCisgICAgICBtZXRob2QsICpkZWZlY3QqIHdpbGwgYWx3YXlzIGJlIGEgc3ViY2xhc3Mgb2YKKyAgICAgIDpjbGFzczpgfmVtYWlsLmVycm9ycy5EZWZlY3RgLgorCisgICAgICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBjaGVja3MgdGhlIDphdHRyOmByYWlzZV9vbl9kZWZlY3RgIGZsYWcuICBJZgorICAgICAgaXQgaXMgYGBUcnVlYGAsICpkZWZlY3QqIGlzIHJhaXNlZCBhcyBhbiBleGNlcHRpb24uICBJZiBpdCBpcyBgYEZhbHNlYGAKKyAgICAgICh0aGUgZGVmYXVsdCksICpvYmoqIGFuZCAqZGVmZWN0KiBhcmUgcGFzc2VkIHRvIDptZXRoOmByZWdpc3Rlcl9kZWZlY3RgLgorCisgICAuLiBtZXRob2Q6OiByZWdpc3Rlcl9kZWZlY3Qob2JqLCBkZWZlY3QpCisKKyAgICAgIFJlZ2lzdGVyIGEgKmRlZmVjdCogb24gKm9iaiouICBJbiB0aGUgZW1haWwgcGFja2FnZSwgKmRlZmVjdCogd2lsbCBhbHdheXMKKyAgICAgIGJlIGEgc3ViY2xhc3Mgb2YgOmNsYXNzOmB+ZW1haWwuZXJyb3JzLkRlZmVjdGAuCisKKyAgICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzIHRoZSBgYGFwcGVuZGBgIG1ldGhvZCBvZiB0aGUgYGBkZWZlY3RzYGAKKyAgICAgIGF0dHJpYnV0ZSBvZiAqb2JqKi4gIFdoZW4gdGhlIGVtYWlsIHBhY2thZ2UgY2FsbHMgOmF0dHI6YGhhbmRsZV9kZWZlY3RgLAorICAgICAgKm9iaiogd2lsbCBub3JtYWxseSBoYXZlIGEgYGBkZWZlY3RzYGAgYXR0cmlidXRlIHRoYXQgaGFzIGFuIGBgYXBwZW5kYGAKKyAgICAgIG1ldGhvZC4gIEN1c3RvbSBvYmplY3QgdHlwZXMgdXNlZCB3aXRoIHRoZSBlbWFpbCBwYWNrYWdlIChmb3IgZXhhbXBsZSwKKyAgICAgIGN1c3RvbSBgYE1lc3NhZ2VgYCBvYmplY3RzKSBzaG91bGQgYWxzbyBwcm92aWRlIHN1Y2ggYW4gYXR0cmlidXRlLAorICAgICAgb3RoZXJ3aXNlIGRlZmVjdHMgaW4gcGFyc2VkIG1lc3NhZ2VzIHdpbGwgcmFpc2UgdW5leHBlY3RlZCBlcnJvcnMuCisKKyAgIC4uIG1ldGhvZDo6IGhlYWRlcl9tYXhfY291bnQobmFtZSkKKworICAgICAgUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgbnVtYmVyIG9mIGhlYWRlcnMgbmFtZWQgKm5hbWUqLgorCisgICAgICBDYWxsZWQgd2hlbiBhIGhlYWRlciBpcyBhZGRlZCB0byBhIDpjbGFzczpgfmVtYWlsLm1lc3NhZ2UuTWVzc2FnZWAKKyAgICAgIG9iamVjdC4gIElmIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyBub3QgYGAwYGAgb3IgYGBOb25lYGAsIGFuZCB0aGVyZSBhcmUKKyAgICAgIGFscmVhZHkgYSBudW1iZXIgb2YgaGVhZGVycyB3aXRoIHRoZSBuYW1lICpuYW1lKiBlcXVhbCB0byB0aGUgdmFsdWUKKyAgICAgIHJldHVybmVkLCBhIDpleGM6YFZhbHVlRXJyb3JgIGlzIHJhaXNlZC4KKworICAgICAgQmVjYXVzZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBgYE1lc3NhZ2UuX19zZXRpdGVtX19gYCBpcyB0byBhcHBlbmQgdGhlCisgICAgICB2YWx1ZSB0byB0aGUgbGlzdCBvZiBoZWFkZXJzLCBpdCBpcyBlYXN5IHRvIGNyZWF0ZSBkdXBsaWNhdGUgaGVhZGVycworICAgICAgd2l0aG91dCByZWFsaXppbmcgaXQuICBUaGlzIG1ldGhvZCBhbGxvd3MgY2VydGFpbiBoZWFkZXJzIHRvIGJlIGxpbWl0ZWQKKyAgICAgIGluIHRoZSBudW1iZXIgb2YgaW5zdGFuY2VzIG9mIHRoYXQgaGVhZGVyIHRoYXQgbWF5IGJlIGFkZGVkIHRvIGEKKyAgICAgIGBgTWVzc2FnZWBgIHByb2dyYW1tYXRpY2FsbHkuICAoVGhlIGxpbWl0IGlzIG5vdCBvYnNlcnZlZCBieSB0aGUgcGFyc2VyLAorICAgICAgd2hpY2ggd2lsbCBmYWl0aGZ1bGx5IHByb2R1Y2UgYXMgbWFueSBoZWFkZXJzIGFzIGV4aXN0IGluIHRoZSBtZXNzYWdlCisgICAgICBiZWluZyBwYXJzZWQuKQorCisgICAgICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIGBgTm9uZWBgIGZvciBhbGwgaGVhZGVyIG5hbWVzLgorCisgICAuLiBtZXRob2Q6OiBoZWFkZXJfc291cmNlX3BhcnNlKHNvdXJjZWxpbmVzKQorCisgICAgICBUaGUgZW1haWwgcGFja2FnZSBjYWxscyB0aGlzIG1ldGhvZCB3aXRoIGEgbGlzdCBvZiBzdHJpbmdzLCBlYWNoIHN0cmluZworICAgICAgZW5kaW5nIHdpdGggdGhlIGxpbmUgc2VwYXJhdGlvbiBjaGFyYWN0ZXJzIGZvdW5kIGluIHRoZSBzb3VyY2UgYmVpbmcKKyAgICAgIHBhcnNlZC4gIFRoZSBmaXJzdCBsaW5lIGluY2x1ZGVzIHRoZSBmaWVsZCBoZWFkZXIgbmFtZSBhbmQgc2VwYXJhdG9yLgorICAgICAgQWxsIHdoaXRlc3BhY2UgaW4gdGhlIHNvdXJjZSBpcyBwcmVzZXJ2ZWQuICBUaGUgbWV0aG9kIHNob3VsZCByZXR1cm4gdGhlCisgICAgICBgYChuYW1lLCB2YWx1ZSlgYCB0dXBsZSB0aGF0IGlzIHRvIGJlIHN0b3JlZCBpbiB0aGUgYGBNZXNzYWdlYGAgdG8KKyAgICAgIHJlcHJlc2VudCB0aGUgcGFyc2VkIGhlYWRlci4KKworICAgICAgSWYgYW4gaW1wbGVtZW50YXRpb24gd2lzaGVzIHRvIHJldGFpbiBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGV4aXN0aW5nCisgICAgICBlbWFpbCBwYWNrYWdlIHBvbGljaWVzLCAqbmFtZSogc2hvdWxkIGJlIHRoZSBjYXNlIHByZXNlcnZlZCBuYW1lIChhbGwKKyAgICAgIGNoYXJhY3RlcnMgdXAgdG8gdGhlICdgYDpgYCcgc2VwYXJhdG9yKSwgd2hpbGUgKnZhbHVlKiBzaG91bGQgYmUgdGhlCisgICAgICB1bmZvbGRlZCB2YWx1ZSAoYWxsIGxpbmUgc2VwYXJhdG9yIGNoYXJhY3RlcnMgcmVtb3ZlZCwgYnV0IHdoaXRlc3BhY2UKKyAgICAgIGtlcHQgaW50YWN0KSwgc3RyaXBwZWQgb2YgbGVhZGluZyB3aGl0ZXNwYWNlLgorCisgICAgICAqc291cmNlbGluZXMqIG1heSBjb250YWluIHN1cnJvZ2F0ZWVzY2FwZWQgYmluYXJ5IGRhdGEuCisKKyAgICAgIFRoZXJlIGlzIG5vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKworICAgLi4gbWV0aG9kOjogaGVhZGVyX3N0b3JlX3BhcnNlKG5hbWUsIHZhbHVlKQorCisgICAgICBUaGUgZW1haWwgcGFja2FnZSBjYWxscyB0aGlzIG1ldGhvZCB3aXRoIHRoZSBuYW1lIGFuZCB2YWx1ZSBwcm92aWRlZCBieQorICAgICAgdGhlIGFwcGxpY2F0aW9uIHByb2dyYW0gd2hlbiB0aGUgYXBwbGljYXRpb24gcHJvZ3JhbSBpcyBtb2RpZnlpbmcgYQorICAgICAgYGBNZXNzYWdlYGAgcHJvZ3JhbW1hdGljYWxseSAoYXMgb3Bwb3NlZCB0byBhIGBgTWVzc2FnZWBgIGNyZWF0ZWQgYnkgYQorICAgICAgcGFyc2VyKS4gIFRoZSBtZXRob2Qgc2hvdWxkIHJldHVybiB0aGUgYGAobmFtZSwgdmFsdWUpYGAgdHVwbGUgdGhhdCBpcyB0bworICAgICAgYmUgc3RvcmVkIGluIHRoZSBgYE1lc3NhZ2VgYCB0byByZXByZXNlbnQgdGhlIGhlYWRlci4KKworICAgICAgSWYgYW4gaW1wbGVtZW50YXRpb24gd2lzaGVzIHRvIHJldGFpbiBjb21wYXRpYmlsaXR5IHdpdGggdGhlIGV4aXN0aW5nCisgICAgICBlbWFpbCBwYWNrYWdlIHBvbGljaWVzLCB0aGUgKm5hbWUqIGFuZCAqdmFsdWUqIHNob3VsZCBiZSBzdHJpbmdzIG9yCisgICAgICBzdHJpbmcgc3ViY2xhc3NlcyB0aGF0IGRvIG5vdCBjaGFuZ2UgdGhlIGNvbnRlbnQgb2YgdGhlIHBhc3NlZCBpbgorICAgICAgYXJndW1lbnRzLgorCisgICAgICBUaGVyZSBpcyBubyBkZWZhdWx0IGltcGxlbWVudGF0aW9uCisKKyAgIC4uIG1ldGhvZDo6IGhlYWRlcl9mZXRjaF9wYXJzZShuYW1lLCB2YWx1ZSkKKworICAgICAgVGhlIGVtYWlsIHBhY2thZ2UgY2FsbHMgdGhpcyBtZXRob2Qgd2l0aCB0aGUgKm5hbWUqIGFuZCAqdmFsdWUqIGN1cnJlbnRseQorICAgICAgc3RvcmVkIGluIHRoZSBgYE1lc3NhZ2VgYCB3aGVuIHRoYXQgaGVhZGVyIGlzIHJlcXVlc3RlZCBieSB0aGUKKyAgICAgIGFwcGxpY2F0aW9uIHByb2dyYW0sIGFuZCB3aGF0ZXZlciB0aGUgbWV0aG9kIHJldHVybnMgaXMgd2hhdCBpcyBwYXNzZWQKKyAgICAgIGJhY2sgdG8gdGhlIGFwcGxpY2F0aW9uIGFzIHRoZSB2YWx1ZSBvZiB0aGUgaGVhZGVyIGJlaW5nIHJldHJpZXZlZC4KKyAgICAgIE5vdGUgdGhhdCB0aGVyZSBtYXkgYmUgbW9yZSB0aGFuIG9uZSBoZWFkZXIgd2l0aCB0aGUgc2FtZSBuYW1lIHN0b3JlZCBpbgorICAgICAgdGhlIGBgTWVzc2FnZWBgOyB0aGUgbWV0aG9kIGlzIHBhc3NlZCB0aGUgc3BlY2lmaWMgbmFtZSBhbmQgdmFsdWUgb2YgdGhlCisgICAgICBoZWFkZXIgZGVzdGluZWQgdG8gYmUgcmV0dXJuZWQgdG8gdGhlIGFwcGxpY2F0aW9uLgorCisgICAgICAqdmFsdWUqIG1heSBjb250YWluIHN1cnJvZ2F0ZWVzY2FwZWQgYmluYXJ5IGRhdGEuICBUaGVyZSBzaG91bGQgYmUgbm8KKyAgICAgIHN1cnJvZ2F0ZWVzY2FwZWQgYmluYXJ5IGRhdGEgaW4gdGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZSBtZXRob2QuCisKKyAgICAgIFRoZXJlIGlzIG5vIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKworICAgLi4gbWV0aG9kOjogZm9sZChuYW1lLCB2YWx1ZSkKKworICAgICAgVGhlIGVtYWlsIHBhY2thZ2UgY2FsbHMgdGhpcyBtZXRob2Qgd2l0aCB0aGUgKm5hbWUqIGFuZCAqdmFsdWUqIGN1cnJlbnRseQorICAgICAgc3RvcmVkIGluIHRoZSBgYE1lc3NhZ2VgYCBmb3IgYSBnaXZlbiBoZWFkZXIuICBUaGUgbWV0aG9kIHNob3VsZCByZXR1cm4gYQorICAgICAgc3RyaW5nIHRoYXQgcmVwcmVzZW50cyB0aGF0IGhlYWRlciAiZm9sZGVkIiBjb3JyZWN0bHkgKGFjY29yZGluZyB0byB0aGUKKyAgICAgIHBvbGljeSBzZXR0aW5ncykgYnkgY29tcG9zaW5nIHRoZSAqbmFtZSogd2l0aCB0aGUgKnZhbHVlKiBhbmQgaW5zZXJ0aW5nCisgICAgICA6YXR0cjpgbGluZXNlcGAgY2hhcmFjdGVycyBhdCB0aGUgYXBwcm9wcmlhdGUgcGxhY2VzLiAgU2VlIDpyZmM6YDUzMjJgCisgICAgICBmb3IgYSBkaXNjdXNzaW9uIG9mIHRoZSBydWxlcyBmb3IgZm9sZGluZyBlbWFpbCBoZWFkZXJzLgorCisgICAgICAqdmFsdWUqIG1heSBjb250YWluIHN1cnJvZ2F0ZWVzY2FwZWQgYmluYXJ5IGRhdGEuICBUaGVyZSBzaG91bGQgYmUgbm8KKyAgICAgIHN1cnJvZ2F0ZWVzY2FwZWQgYmluYXJ5IGRhdGEgaW4gdGhlIHN0cmluZyByZXR1cm5lZCBieSB0aGUgbWV0aG9kLgorCisgICAuLiBtZXRob2Q6OiBmb2xkX2JpbmFyeShuYW1lLCB2YWx1ZSkKKworICAgICAgVGhlIHNhbWUgYXMgOm1ldGg6YGZvbGRgLCBleGNlcHQgdGhhdCB0aGUgcmV0dXJuZWQgdmFsdWUgc2hvdWxkIGJlIGEKKyAgICAgIGJ5dGVzIG9iamVjdCByYXRoZXIgdGhhbiBhIHN0cmluZy4KKworICAgICAgKnZhbHVlKiBtYXkgY29udGFpbiBzdXJyb2dhdGVlc2NhcGVkIGJpbmFyeSBkYXRhLiAgVGhlc2UgY291bGQgYmUKKyAgICAgIGNvbnZlcnRlZCBiYWNrIGludG8gYmluYXJ5IGRhdGEgaW4gdGhlIHJldHVybmVkIGJ5dGVzIG9iamVjdC4KKworCisuLiBjbGFzczo6IENvbXBhdDMyKCoqa3cpCisKKyAgIFRoaXMgY29uY3JldGUgOmNsYXNzOmBQb2xpY3lgIGlzIHRoZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHBvbGljeS4gIEl0CisgICByZXBsaWNhdGVzIHRoZSBiZWhhdmlvciBvZiB0aGUgZW1haWwgcGFja2FnZSBpbiBQeXRob24gMy4yLiAgVGhlCisgICA6bW9kOmBwb2xpY3lgIG1vZHVsZSBhbHNvIGRlZmluZXMgYW4gaW5zdGFuY2Ugb2YgdGhpcyBjbGFzcywKKyAgIDpjb25zdDpgY29tcGF0MzJgLCB0aGF0IGlzIHVzZWQgYXMgdGhlIGRlZmF1bHQgcG9saWN5LiAgVGh1cyB0aGUgZGVmYXVsdAorICAgYmVoYXZpb3Igb2YgdGhlIGVtYWlsIHBhY2thZ2UgaXMgdG8gbWFpbnRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIFB5dGhvbiAzLjIuCisKKyAgIFRoZSBjbGFzcyBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGNvbmNyZXRlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUKKyAgIGFic3RyYWN0IG1ldGhvZHMgb2YgOmNsYXNzOmBQb2xpY3lgOgorCisgICAuLiBtZXRob2Q6OiBoZWFkZXJfc291cmNlX3BhcnNlKHNvdXJjZWxpbmVzKQorCisgICAgICBUaGUgbmFtZSBpcyBwYXJzZWQgYXMgZXZlcnl0aGluZyB1cCB0byB0aGUgJ2BgOmBgJyBhbmQgcmV0dXJuZWQKKyAgICAgIHVubW9kaWZpZWQuICBUaGUgdmFsdWUgaXMgZGV0ZXJtaW5lZCBieSBzdHJpcHBpbmcgbGVhZGluZyB3aGl0ZXNwYWNlIG9mZgorICAgICAgdGhlIHJlbWFpbmRlciBvZiB0aGUgZmlyc3QgbGluZSwgam9pbmluZyBhbGwgc3Vic2VxdWVudCBsaW5lcyB0b2dldGhlciwKKyAgICAgIGFuZCBzdHJpcHBpbmcgYW55IHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiBvciBsaW5lZmVlZCBjaGFyYWN0ZXJzLgorCisgICAuLiBtZXRob2Q6OiBoZWFkZXJfc3RvcmVfcGFyc2UobmFtZSwgdmFsdWUpCisKKyAgICAgIFRoZSBuYW1lIGFuZCB2YWx1ZSBhcmUgcmV0dXJuZWQgdW5tb2RpZmllZC4KKworICAgLi4gbWV0aG9kOjogaGVhZGVyX2ZldGNoX3BhcnNlKG5hbWUsIHZhbHVlKQorCisgICAgICBJZiB0aGUgdmFsdWUgY29udGFpbnMgYmluYXJ5IGRhdGEsIGl0IGlzIGNvbnZlcnRlZCBpbnRvIGEKKyAgICAgIDpjbGFzczpgfmVtYWlsLmhlYWRlci5IZWFkZXJgIG9iamVjdCB1c2luZyB0aGUgYGB1bmtub3duLThiaXRgYCBjaGFyc2V0LgorICAgICAgT3RoZXJ3aXNlIGl0IGlzIHJldHVybmVkIHVubW9kaWZpZWQuCisKKyAgIC4uIG1ldGhvZDo6IGZvbGQobmFtZSwgdmFsdWUpCisKKyAgICAgIEhlYWRlcnMgYXJlIGZvbGRlZCB1c2luZyB0aGUgOmNsYXNzOmB+ZW1haWwuaGVhZGVyLkhlYWRlcmAgZm9sZGluZworICAgICAgYWxnb3JpdGhtLCB3aGljaCBwcmVzZXJ2ZXMgZXhpc3RpbmcgbGluZSBicmVha3MgaW4gdGhlIHZhbHVlLCBhbmQgd3JhcHMKKyAgICAgIGVhY2ggcmVzdWx0aW5nIGxpbmUgdG8gdGhlIGBgbWF4X2xpbmVfbGVuZ3RoYGAuICBOb24tQVNDSUkgYmluYXJ5IGRhdGEgYXJlCisgICAgICBDVEUgZW5jb2RlZCB1c2luZyB0aGUgYGB1bmtub3duLThiaXRgYCBjaGFyc2V0LgorCisgICAuLiBtZXRob2Q6OiBmb2xkX2JpbmFyeShuYW1lLCB2YWx1ZSkKKworICAgICAgSGVhZGVycyBhcmUgZm9sZGVkIHVzaW5nIHRoZSA6Y2xhc3M6YH5lbWFpbC5oZWFkZXIuSGVhZGVyYCBmb2xkaW5nCisgICAgICBhbGdvcml0aG0sIHdoaWNoIHByZXNlcnZlcyBleGlzdGluZyBsaW5lIGJyZWFrcyBpbiB0aGUgdmFsdWUsIGFuZCB3cmFwcworICAgICAgZWFjaCByZXN1bHRpbmcgbGluZSB0byB0aGUgYGBtYXhfbGluZV9sZW5ndGhgYC4gIElmIGBgY3RlX3R5cGVgYCBpcworICAgICAgYGA3Yml0YGAsIG5vbi1hc2NpaSBiaW5hcnkgZGF0YSBpcyBDVEUgZW5jb2RlZCB1c2luZyB0aGUgYGB1bmtub3duLThiaXRgYAorICAgICAgY2hhcnNldC4gIE90aGVyd2lzZSB0aGUgb3JpZ2luYWwgc291cmNlIGhlYWRlciBpcyB1c2VkLCB3aXRoIGl0cyBleGlzdGluZworICAgICAgbGluZSBicmVha3MgYW5kIGFuZCBhbnkgKFJGQyBpbnZhbGlkKSBiaW5hcnkgZGF0YSBpdCBtYXkgY29udGFpbi4KKworCisuLiBub3RlOjoKKworICAgVGhlIGRvY3VtZW50YXRpb24gYmVsb3cgZGVzY3JpYmVzIG5ldyBwb2xpY2llcyB0aGF0IGFyZSBpbmNsdWRlZCBpbiB0aGUKKyAgIHN0YW5kYXJkIGxpYnJhcnkgb24gYSA6dGVybTpgcHJvdmlzaW9uYWwgYmFzaXMgPHByb3Zpc2lvbmFsIHBhY2thZ2U+YC4KKyAgIEJhY2t3YXJkcyBpbmNvbXBhdGlibGUgY2hhbmdlcyAodXAgdG8gYW5kIGluY2x1ZGluZyByZW1vdmFsIG9mIHRoZSBmZWF0dXJlKQorICAgbWF5IG9jY3VyIGlmIGRlZW1lZCBuZWNlc3NhcnkgYnkgdGhlIGNvcmUgZGV2ZWxvcGVycy4KKworCisuLiBjbGFzczo6IEVtYWlsUG9saWN5KCoqa3cpCisKKyAgIFRoaXMgY29uY3JldGUgOmNsYXNzOmBQb2xpY3lgIHByb3ZpZGVzIGJlaGF2aW9yIHRoYXQgaXMgaW50ZW5kZWQgdG8gYmUgZnVsbHkKKyAgIGNvbXBsaWFudCB3aXRoIHRoZSBjdXJyZW50IGVtYWlsIFJGQ3MuICBUaGVzZSBpbmNsdWRlIChidXQgYXJlIG5vdCBsaW1pdGVkCisgICB0bykgOnJmYzpgNTMyMmAsIDpyZmM6YDIwNDdgLCBhbmQgdGhlIGN1cnJlbnQgTUlNRSBSRkNzLgorCisgICBUaGlzIHBvbGljeSBhZGRzIG5ldyBoZWFkZXIgcGFyc2luZyBhbmQgZm9sZGluZyBhbGdvcml0aG1zLiAgSW5zdGVhZCBvZgorICAgc2ltcGxlIHN0cmluZ3MsIGhlYWRlcnMgYXJlIGN1c3RvbSBvYmplY3RzIHdpdGggY3VzdG9tIGF0dHJpYnV0ZXMgZGVwZW5kaW5nCisgICBvbiB0aGUgdHlwZSBvZiB0aGUgZmllbGQuICBUaGUgcGFyc2luZyBhbmQgZm9sZGluZyBhbGdvcml0aG0gZnVsbHkgaW1wbGVtZW50CisgICA6cmZjOmAyMDQ3YCBhbmQgOnJmYzpgNTMyMmAuCisKKyAgIEluIGFkZGl0aW9uIHRvIHRoZSBzZXR0YWJsZSBhdHRyaWJ1dGVzIGxpc3RlZCBhYm92ZSB0aGF0IGFwcGx5IHRvIGFsbAorICAgcG9saWNpZXMsIHRoaXMgcG9saWN5IGFkZHMgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXM6CisKKyAgIC4uIGF0dHJpYnV0ZTo6IHJlZm9sZF9zb3VyY2UKKworICAgICAgSWYgdGhlIHZhbHVlIGZvciBhIGhlYWRlciBpbiB0aGUgYGBNZXNzYWdlYGAgb2JqZWN0IG9yaWdpbmF0ZWQgZnJvbSBhCisgICAgICA6bW9kOmB+ZW1haWwucGFyc2VyYCAoYXMgb3Bwb3NlZCB0byBiZWluZyBzZXQgYnkgYSBwcm9ncmFtKSwgdGhpcworICAgICAgYXR0cmlidXRlIGluZGljYXRlcyB3aGV0aGVyIG9yIG5vdCBhIGdlbmVyYXRvciBzaG91bGQgcmVmb2xkIHRoYXQgdmFsdWUKKyAgICAgIHdoZW4gdHJhbnNmb3JtaW5nIHRoZSBtZXNzYWdlIGJhY2sgaW50byBzdHJlYW0gZm9ybS4gIFRoZSBwb3NzaWJsZSB2YWx1ZXMKKyAgICAgIGFyZToKKworICAgICAgPT09PT09PT0gID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAgYGBub25lYGAgIGFsbCBzb3VyY2UgdmFsdWVzIHVzZSBvcmlnaW5hbCBmb2xkaW5nCisKKyAgICAgIGBgbG9uZ2BgICBzb3VyY2UgdmFsdWVzIHRoYXQgaGF2ZSBhbnkgbGluZSB0aGF0IGlzIGxvbmdlciB0aGFuCisgICAgICAgICAgICAgICAgYGBtYXhfbGluZV9sZW5ndGhgYCB3aWxsIGJlIHJlZm9sZGVkCisKKyAgICAgIGBgYWxsYGAgICBhbGwgdmFsdWVzIGFyZSByZWZvbGRlZC4KKyAgICAgID09PT09PT09ICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICAgICAgVGhlIGRlZmF1bHQgaXMgYGBsb25nYGAuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IGhlYWRlcl9mYWN0b3J5CisKKyAgICAgIEEgY2FsbGFibGUgdGhhdCB0YWtlcyB0d28gYXJndW1lbnRzLCBgYG5hbWVgYCBhbmQgYGB2YWx1ZWBgLCB3aGVyZQorICAgICAgYGBuYW1lYGAgaXMgYSBoZWFkZXIgZmllbGQgbmFtZSBhbmQgYGB2YWx1ZWBgIGlzIGFuIHVuZm9sZGVkIGhlYWRlciBmaWVsZAorICAgICAgdmFsdWUsIGFuZCByZXR1cm5zIGEgc3RyaW5nIHN1YmNsYXNzIHRoYXQgcmVwcmVzZW50cyB0aGF0IGhlYWRlci4gIEEKKyAgICAgIGRlZmF1bHQgYGBoZWFkZXJfZmFjdG9yeWBgIChzZWUgOm1vZDpgfmVtYWlsLmhlYWRlcnJlZ2lzdHJ5YCkgaXMgcHJvdmlkZWQKKyAgICAgIHRoYXQgdW5kZXJzdGFuZHMgc29tZSBvZiB0aGUgOlJGQzpgNTMyMmAgaGVhZGVyIGZpZWxkIHR5cGVzLiAgKEN1cnJlbnRseQorICAgICAgYWRkcmVzcyBmaWVsZHMgYW5kIGRhdGUgZmllbGRzIGhhdmUgc3BlY2lhbCB0cmVhdG1lbnQsIHdoaWxlIGFsbCBvdGhlcgorICAgICAgZmllbGRzIGFyZSB0cmVhdGVkIGFzIHVuc3RydWN0dXJlZC4gIFRoaXMgbGlzdCB3aWxsIGJlIGNvbXBsZXRlZCBiZWZvcmUKKyAgICAgIHRoZSBleHRlbnNpb24gaXMgbWFya2VkIHN0YWJsZS4pCisKKyAgIFRoZSBjbGFzcyBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGNvbmNyZXRlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgYWJzdHJhY3QKKyAgIG1ldGhvZHMgb2YgOmNsYXNzOmBQb2xpY3lgOgorCisgICAuLiBtZXRob2Q6OiBoZWFkZXJfbWF4X2NvdW50KG5hbWUpCisKKyAgICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZQorICAgICAgOmF0dHI6YH5lbWFpbC5oZWFkZXJyZWdpc3RyeS5CYXNlSGVhZGVyLm1heF9jb3VudGAgYXR0cmlidXRlIG9mIHRoZQorICAgICAgc3BlY2lhbGl6ZWQgY2xhc3MgdXNlZCB0byByZXByZXNlbnQgdGhlIGhlYWRlciB3aXRoIHRoZSBnaXZlbiBuYW1lLgorCisgICAuLiBtZXRob2Q6OiBoZWFkZXJfc291cmNlX3BhcnNlKHNvdXJjZWxpbmVzKQorCisgICAgICBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBtZXRob2QgaXMgdGhlIHNhbWUgYXMgdGhhdCBmb3IgdGhlCisgICAgICA6Y2xhc3M6YENvbXBhdDMyYCBwb2xpY3kuCisKKyAgIC4uIG1ldGhvZDo6IGhlYWRlcl9zdG9yZV9wYXJzZShuYW1lLCB2YWx1ZSkKKworICAgICAgVGhlIG5hbWUgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLiAgSWYgdGhlIGlucHV0IHZhbHVlIGhhcyBhIGBgbmFtZWBgCisgICAgICBhdHRyaWJ1dGUgYW5kIGl0IG1hdGNoZXMgKm5hbWUqIGlnbm9yaW5nIGNhc2UsIHRoZSB2YWx1ZSBpcyByZXR1cm5lZAorICAgICAgdW5jaGFuZ2VkLiAgT3RoZXJ3aXNlIHRoZSAqbmFtZSogYW5kICp2YWx1ZSogYXJlIHBhc3NlZCB0bworICAgICAgYGBoZWFkZXJfZmFjdG9yeWBgLCBhbmQgdGhlIHJlc3VsdGluZyBjdXN0b20gaGVhZGVyIG9iamVjdCBpcyByZXR1cm5lZCBhcworICAgICAgdGhlIHZhbHVlLiAgSW4gdGhpcyBjYXNlIGEgYGBWYWx1ZUVycm9yYGAgaXMgcmFpc2VkIGlmIHRoZSBpbnB1dCB2YWx1ZQorICAgICAgY29udGFpbnMgQ1Igb3IgTEYgY2hhcmFjdGVycy4KKworICAgLi4gbWV0aG9kOjogaGVhZGVyX2ZldGNoX3BhcnNlKG5hbWUsIHZhbHVlKQorCisgICAgICBJZiB0aGUgdmFsdWUgaGFzIGEgYGBuYW1lYGAgYXR0cmlidXRlLCBpdCBpcyByZXR1cm5lZCB0byB1bm1vZGlmaWVkLgorICAgICAgT3RoZXJ3aXNlIHRoZSAqbmFtZSosIGFuZCB0aGUgKnZhbHVlKiB3aXRoIGFueSBDUiBvciBMRiBjaGFyYWN0ZXJzCisgICAgICByZW1vdmVkLCBhcmUgcGFzc2VkIHRvIHRoZSBgYGhlYWRlcl9mYWN0b3J5YGAsIGFuZCB0aGUgcmVzdWx0aW5nIGN1c3RvbQorICAgICAgaGVhZGVyIG9iamVjdCBpcyByZXR1cm5lZC4gIEFueSBzdXJyb2dhdGVlc2NhcGVkIGJ5dGVzIGdldCB0dXJuZWQgaW50bworICAgICAgdGhlIHVuaWNvZGUgdW5rbm93bi1jaGFyYWN0ZXIgZ2x5cGguCisKKyAgIC4uIG1ldGhvZDo6IGZvbGQobmFtZSwgdmFsdWUpCisKKyAgICAgIEhlYWRlciBmb2xkaW5nIGlzIGNvbnRyb2xsZWQgYnkgdGhlIDphdHRyOmByZWZvbGRfc291cmNlYCBwb2xpY3kgc2V0dGluZy4KKyAgICAgIEEgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSBhICdzb3VyY2UgdmFsdWUnIGlmIGFuZCBvbmx5IGlmIGl0IGRvZXMgbm90CisgICAgICBoYXZlIGEgYGBuYW1lYGAgYXR0cmlidXRlIChoYXZpbmcgYSBgYG5hbWVgYCBhdHRyaWJ1dGUgbWVhbnMgaXQgaXMgYQorICAgICAgaGVhZGVyIG9iamVjdCBvZiBzb21lIHNvcnQpLiAgSWYgYSBzb3VyY2UgdmFsdWUgbmVlZHMgdG8gYmUgcmVmb2xkZWQKKyAgICAgIGFjY29yZGluZyB0byB0aGUgcG9saWN5LCBpdCBpcyBjb252ZXJ0ZWQgaW50byBhIGN1c3RvbSBoZWFkZXIgb2JqZWN0IGJ5CisgICAgICBwYXNzaW5nIHRoZSAqbmFtZSogYW5kIHRoZSAqdmFsdWUqIHdpdGggYW55IENSIGFuZCBMRiBjaGFyYWN0ZXJzIHJlbW92ZWQKKyAgICAgIHRvIHRoZSBgYGhlYWRlcl9mYWN0b3J5YGAuICBGb2xkaW5nIG9mIGEgY3VzdG9tIGhlYWRlciBvYmplY3QgaXMgZG9uZSBieQorICAgICAgY2FsbGluZyBpdHMgYGBmb2xkYGAgbWV0aG9kIHdpdGggdGhlIGN1cnJlbnQgcG9saWN5LgorCisgICAgICBTb3VyY2UgdmFsdWVzIGFyZSBzcGxpdCBpbnRvIGxpbmVzIHVzaW5nIDptZXRoOmB+c3RyLnNwbGl0bGluZXNgLiAgSWYKKyAgICAgIHRoZSB2YWx1ZSBpcyBub3QgdG8gYmUgcmVmb2xkZWQsIHRoZSBsaW5lcyBhcmUgcmVqb2luZWQgdXNpbmcgdGhlCisgICAgICBgYGxpbmVzZXBgYCBmcm9tIHRoZSBwb2xpY3kgYW5kIHJldHVybmVkLiAgVGhlIGV4Y2VwdGlvbiBpcyBsaW5lcworICAgICAgY29udGFpbmluZyBub24tYXNjaWkgYmluYXJ5IGRhdGEuICBJbiB0aGF0IGNhc2UgdGhlIHZhbHVlIGlzIHJlZm9sZGVkCisgICAgICByZWdhcmRsZXNzIG9mIHRoZSBgYHJlZm9sZF9zb3VyY2VgYCBzZXR0aW5nLCB3aGljaCBjYXVzZXMgdGhlIGJpbmFyeSBkYXRhCisgICAgICB0byBiZSBDVEUgZW5jb2RlZCB1c2luZyB0aGUgYGB1bmtub3duLThiaXRgYCBjaGFyc2V0LgorCisgICAuLiBtZXRob2Q6OiBmb2xkX2JpbmFyeShuYW1lLCB2YWx1ZSkKKworICAgICAgVGhlIHNhbWUgYXMgOm1ldGg6YGZvbGRgIGlmIDphdHRyOmBjdGVfdHlwZWAgaXMgYGA3Yml0YGAsIGV4Y2VwdCB0aGF0CisgICAgICB0aGUgcmV0dXJuZWQgdmFsdWUgaXMgYnl0ZXMuCisKKyAgICAgIElmIDphdHRyOmBjdGVfdHlwZWAgaXMgYGA4Yml0YGAsIG5vbi1BU0NJSSBiaW5hcnkgZGF0YSBpcyBjb252ZXJ0ZWQgYmFjaworICAgICAgaW50byBieXRlcy4gIEhlYWRlcnMgd2l0aCBiaW5hcnkgZGF0YSBhcmUgbm90IHJlZm9sZGVkLCByZWdhcmRsZXNzIG9mIHRoZQorICAgICAgYGByZWZvbGRfaGVhZGVyYGAgc2V0dGluZywgc2luY2UgdGhlcmUgaXMgbm8gd2F5IHRvIGtub3cgd2hldGhlciB0aGUKKyAgICAgIGJpbmFyeSBkYXRhIGNvbnNpc3RzIG9mIHNpbmdsZSBieXRlIGNoYXJhY3RlcnMgb3IgbXVsdGlieXRlIGNoYXJhY3RlcnMuCisKK1RoZSBmb2xsb3dpbmcgaW5zdGFuY2VzIG9mIDpjbGFzczpgRW1haWxQb2xpY3lgIHByb3ZpZGUgZGVmYXVsdHMgc3VpdGFibGUgZm9yCitzcGVjaWZpYyBhcHBsaWNhdGlvbiBkb21haW5zLiAgTm90ZSB0aGF0IGluIHRoZSBmdXR1cmUgdGhlIGJlaGF2aW9yIG9mIHRoZXNlCitpbnN0YW5jZXMgKGluIHBhcnRpY3VsYXIgdGhlIGBgSFRUUGBgIGluc3RhbmNlKSBtYXkgYmUgYWRqdXN0ZWQgdG8gY29uZm9ybSBldmVuCittb3JlIGNsb3NlbHkgdG8gdGhlIFJGQ3MgcmVsZXZhbnQgdG8gdGhlaXIgZG9tYWlucy4KKworLi4gZGF0YTo6IGRlZmF1bHQKKworICAgQW4gaW5zdGFuY2Ugb2YgYGBFbWFpbFBvbGljeWBgIHdpdGggYWxsIGRlZmF1bHRzIHVuY2hhbmdlZC4gIFRoaXMgcG9saWN5CisgICB1c2VzIHRoZSBzdGFuZGFyZCBQeXRob24gYGBcbmBgIGxpbmUgZW5kaW5ncyByYXRoZXIgdGhhbiB0aGUgUkZDLWNvcnJlY3QKKyAgIGBgXHJcbmBgLgorCisuLiBkYXRhOjogU01UUAorCisgICBTdWl0YWJsZSBmb3Igc2VyaWFsaXppbmcgbWVzc2FnZXMgaW4gY29uZm9ybWFuY2Ugd2l0aCB0aGUgZW1haWwgUkZDcy4KKyAgIExpa2UgYGBkZWZhdWx0YGAsIGJ1dCB3aXRoIGBgbGluZXNlcGBgIHNldCB0byBgYFxyXG5gYCwgd2hpY2ggaXMgUkZDCisgICBjb21wbGlhbnQuCisKKy4uIGRhdGE6OiBIVFRQCisKKyAgIFN1aXRhYmxlIGZvciBzZXJpYWxpemluZyBoZWFkZXJzIHdpdGggZm9yIHVzZSBpbiBIVFRQIHRyYWZmaWMuICBMaWtlCisgICBgYFNNVFBgYCBleGNlcHQgdGhhdCBgYG1heF9saW5lX2xlbmd0aGBgIGlzIHNldCB0byBgYE5vbmVgYCAodW5saW1pdGVkKS4KKworLi4gZGF0YTo6IHN0cmljdAorCisgICBDb252ZW5pZW5jZSBpbnN0YW5jZS4gIFRoZSBzYW1lIGFzIGBgZGVmYXVsdGBgIGV4Y2VwdCB0aGF0CisgICBgYHJhaXNlX29uX2RlZmVjdGBgIGlzIHNldCB0byBgYFRydWVgYC4gIFRoaXMgYWxsb3dzIGFueSBwb2xpY3kgdG8gYmUgbWFkZQorICAgc3RyaWN0IGJ5IHdyaXRpbmc6OgorCisgICAgICAgIHNvbWVwb2xpY3kgKyBwb2xpY3kuc3RyaWN0CisKK1dpdGggYWxsIG9mIHRoZXNlIDpjbGFzczpgRW1haWxQb2xpY2llcyA8LkVtYWlsUG9saWN5PmAsIHRoZSBlZmZlY3RpdmUgQVBJIG9mCit0aGUgZW1haWwgcGFja2FnZSBpcyBjaGFuZ2VkIGZyb20gdGhlIFB5dGhvbiAzLjIgQVBJIGluIHRoZSBmb2xsb3dpbmcgd2F5czoKKworICAgKiBTZXR0aW5nIGEgaGVhZGVyIG9uIGEgOmNsYXNzOmB+ZW1haWwubWVzc2FnZS5NZXNzYWdlYCByZXN1bHRzIGluIHRoYXQKKyAgICAgaGVhZGVyIGJlaW5nIHBhcnNlZCBhbmQgYSBjdXN0b20gaGVhZGVyIG9iamVjdCBjcmVhdGVkLgorCisgICAqIEZldGNoaW5nIGEgaGVhZGVyIHZhbHVlIGZyb20gYSA6Y2xhc3M6YH5lbWFpbC5tZXNzYWdlLk1lc3NhZ2VgIHJlc3VsdHMKKyAgICAgaW4gdGhhdCBoZWFkZXIgYmVpbmcgcGFyc2VkIGFuZCBhIGN1c3RvbSBoZWFkZXIgb2JqZWN0IGNyZWF0ZWQgYW5kCisgICAgIHJldHVybmVkLgorCisgICAqIEFueSBjdXN0b20gaGVhZGVyIG9iamVjdCwgb3IgYW55IGhlYWRlciB0aGF0IGlzIHJlZm9sZGVkIGR1ZSB0byB0aGUKKyAgICAgcG9saWN5IHNldHRpbmdzLCBpcyBmb2xkZWQgdXNpbmcgYW4gYWxnb3JpdGhtIHRoYXQgZnVsbHkgaW1wbGVtZW50cyB0aGUKKyAgICAgUkZDIGZvbGRpbmcgYWxnb3JpdGhtcywgaW5jbHVkaW5nIGtub3dpbmcgd2hlcmUgZW5jb2RlZCB3b3JkcyBhcmUgcmVxdWlyZWQKKyAgICAgYW5kIGFsbG93ZWQuCisKK0Zyb20gdGhlIGFwcGxpY2F0aW9uIHZpZXcsIHRoaXMgbWVhbnMgdGhhdCBhbnkgaGVhZGVyIG9idGFpbmVkIHRocm91Z2ggdGhlCis6Y2xhc3M6YH5lbWFpbC5tZXNzYWdlLk1lc3NhZ2VgIGlzIGEgY3VzdG9tIGhlYWRlciBvYmplY3Qgd2l0aCBjdXN0b20KK2F0dHJpYnV0ZXMsIHdob3NlIHN0cmluZyB2YWx1ZSBpcyB0aGUgZnVsbHkgZGVjb2RlZCB1bmljb2RlIHZhbHVlIG9mIHRoZQoraGVhZGVyLiAgTGlrZXdpc2UsIGEgaGVhZGVyIG1heSBiZSBhc3NpZ25lZCBhIG5ldyB2YWx1ZSwgb3IgYSBuZXcgaGVhZGVyCitjcmVhdGVkLCB1c2luZyBhIHVuaWNvZGUgc3RyaW5nLCBhbmQgdGhlIHBvbGljeSB3aWxsIHRha2UgY2FyZSBvZiBjb252ZXJ0aW5nCit0aGUgdW5pY29kZSBzdHJpbmcgaW50byB0aGUgY29ycmVjdCBSRkMgZW5jb2RlZCBmb3JtLgorCitUaGUgY3VzdG9tIGhlYWRlciBvYmplY3RzIGFuZCB0aGVpciBhdHRyaWJ1dGVzIGFyZSBkZXNjcmliZWQgaW4KKzptb2Q6YH5lbWFpbC5oZWFkZXJyZWdpc3RyeWAuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9lbWFpbC5yc3QgYi9Eb2MvbGlicmFyeS9lbWFpbC5yc3QKaW5kZXggNDUzMGI5NS4uZWY1MzU0ZiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZW1haWwucnN0CisrKyBiL0RvYy9saWJyYXJ5L2VtYWlsLnJzdApAQCAtNTEsNiArNTEsOCBAQAogICAgZW1haWwubWVzc2FnZS5yc3QKICAgIGVtYWlsLnBhcnNlci5yc3QKICAgIGVtYWlsLmdlbmVyYXRvci5yc3QKKyAgIGVtYWlsLnBvbGljeS5yc3QKKyAgIGVtYWlsLmhlYWRlcnJlZ2lzdHJ5LnJzdAogICAgZW1haWwubWltZS5yc3QKICAgIGVtYWlsLmhlYWRlci5yc3QKICAgIGVtYWlsLmNoYXJzZXQucnN0CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9lbWFpbC51dGlsLnJzdCBiL0RvYy9saWJyYXJ5L2VtYWlsLnV0aWwucnN0CmluZGV4IDExYmYzYjIuLmJhZDBiMjQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2VtYWlsLnV0aWwucnN0CisrKyBiL0RvYy9saWJyYXJ5L2VtYWlsLnV0aWwucnN0CkBAIC0yOSwxMyArMjksMjEgQEAKICAgIGZhaWxzLCBpbiB3aGljaCBjYXNlIGEgMi10dXBsZSBvZiBgYCgnJywgJycpYGAgaXMgcmV0dXJuZWQuCiAKIAotLi4gZnVuY3Rpb246OiBmb3JtYXRhZGRyKHBhaXIpCisuLiBmdW5jdGlvbjo6IGZvcm1hdGFkZHIocGFpciwgY2hhcnNldD0ndXRmLTgnKQogCiAgICBUaGUgaW52ZXJzZSBvZiA6bWV0aDpgcGFyc2VhZGRyYCwgdGhpcyB0YWtlcyBhIDItdHVwbGUgb2YgdGhlIGZvcm0gYGAocmVhbG5hbWUsCiAgICBlbWFpbF9hZGRyZXNzKWBgIGFuZCByZXR1cm5zIHRoZSBzdHJpbmcgdmFsdWUgc3VpdGFibGUgZm9yIGEgOm1haWxoZWFkZXI6YFRvYCBvcgogICAgOm1haWxoZWFkZXI6YENjYCBoZWFkZXIuICBJZiB0aGUgZmlyc3QgZWxlbWVudCBvZiAqcGFpciogaXMgZmFsc2UsIHRoZW4gdGhlCiAgICBzZWNvbmQgZWxlbWVudCBpcyByZXR1cm5lZCB1bm1vZGlmaWVkLgogCisgICBPcHRpb25hbCAqY2hhcnNldCogaXMgdGhlIGNoYXJhY3RlciBzZXQgdGhhdCB3aWxsIGJlIHVzZWQgaW4gdGhlIDpyZmM6YDIwNDdgCisgICBlbmNvZGluZyBvZiB0aGUgYGByZWFsbmFtZWBgIGlmIHRoZSBgYHJlYWxuYW1lYGAgY29udGFpbnMgbm9uLUFTQ0lJCisgICBjaGFyYWN0ZXJzLiAgQ2FuIGJlIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgc3RyYCBvciBhCisgICA6Y2xhc3M6YH5lbWFpbC5jaGFyc2V0LkNoYXJzZXRgLiAgRGVmYXVsdHMgdG8gYGB1dGYtOGBgLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgdGhlICpjaGFyc2V0KiBvcHRpb24uCisKIAogLi4gZnVuY3Rpb246OiBnZXRhZGRyZXNzZXMoZmllbGR2YWx1ZXMpCiAKQEAgLTc0LDYgKzgyLDIwIEBACiAgICBpbmRleGVzIDYsIDcsIGFuZCA4IG9mIHRoZSByZXN1bHQgdHVwbGUgYXJlIG5vdCB1c2FibGUuCiAKIAorLi4gZnVuY3Rpb246OiBwYXJzZWRhdGVfdG9fZGF0ZXRpbWUoZGF0ZSkKKworICAgVGhlIGludmVyc2Ugb2YgOmZ1bmM6YGZvcm1hdF9kYXRldGltZWAuICBQZXJmb3JtcyB0aGUgc2FtZSBmdW5jdGlvbiBhcworICAgOmZ1bmM6YHBhcnNlZGF0ZWAsIGJ1dCBvbiBzdWNjZXNzIHJldHVybnMgYSA6bW9kOmB+ZGF0ZXRpbWUuZGF0ZXRpbWVgLiAgSWYKKyAgIHRoZSBpbnB1dCBkYXRlIGhhcyBhIHRpbWV6b25lIG9mIGBgLTAwMDBgYCwgdGhlIGBgZGF0ZXRpbWVgYCB3aWxsIGJlIGEgbmFpdmUKKyAgIGBgZGF0ZXRpbWVgYCwgYW5kIGlmIHRoZSBkYXRlIGlzIGNvbmZvcm1pbmcgdG8gdGhlIFJGQ3MgaXQgd2lsbCByZXByZXNlbnQgYQorICAgdGltZSBpbiBVVEMgYnV0IHdpdGggbm8gaW5kaWNhdGlvbiBvZiB0aGUgYWN0dWFsIHNvdXJjZSB0aW1lem9uZSBvZiB0aGUKKyAgIG1lc3NhZ2UgdGhlIGRhdGUgY29tZXMgZnJvbS4gIElmIHRoZSBpbnB1dCBkYXRlIGhhcyBhbnkgb3RoZXIgdmFsaWQgdGltZXpvbmUKKyAgIG9mZnNldCwgdGhlIGBgZGF0ZXRpbWVgYCB3aWxsIGJlIGFuIGF3YXJlIGBgZGF0ZXRpbWVgYCB3aXRoIHRoZQorICAgY29ycmVzcG9uZGluZyBhIDpjbGFzczpgfmRhdGV0aW1lLnRpbWV6b25lYCA6Y2xhc3M6YH5kYXRldGltZS50emluZm9gLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAuLiBmdW5jdGlvbjo6IG1rdGltZV90eih0dXBsZSkKIAogICAgVHVybiBhIDEwLXR1cGxlIGFzIHJldHVybmVkIGJ5IDpmdW5jOmBwYXJzZWRhdGVfdHpgIGludG8gYSBVVEMgdGltZXN0YW1wLiAgSXQKQEAgLTEwNSw2ICsxMjcsMzYgQEAKICAgIGBgRmFsc2VgYC4gIFRoZSBkZWZhdWx0IGlzIGBgRmFsc2VgYC4KIAogCisuLiBmdW5jdGlvbjo6IGZvcm1hdF9kYXRldGltZShkdCwgdXNlZ210PUZhbHNlKQorCisgICBMaWtlIGBgZm9ybWF0ZGF0ZWBgLCBidXQgdGhlIGlucHV0IGlzIGEgOm1vZDpgZGF0ZXRpbWVgIGluc3RhbmNlLiAgSWYgaXQgaXMKKyAgIGEgbmFpdmUgZGF0ZXRpbWUsIGl0IGlzIGFzc3VtZWQgdG8gYmUgIlVUQyB3aXRoIG5vIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICAgc291cmNlIHRpbWV6b25lIiwgYW5kIHRoZSBjb252ZW50aW9uYWwgYGAtMDAwMGBgIGlzIHVzZWQgZm9yIHRoZSB0aW1lem9uZS4KKyAgIElmIGl0IGlzIGFuIGF3YXJlIGBgZGF0ZXRpbWVgYCwgdGhlbiB0aGUgbnVtZXJpYyB0aW1lem9uZSBvZmZzZXQgaXMgdXNlZC4KKyAgIElmIGl0IGlzIGFuIGF3YXJlIHRpbWV6b25lIHdpdGggb2Zmc2V0IHplcm8sIHRoZW4gKnVzZWdtdCogbWF5IGJlIHNldCB0bworICAgYGBUcnVlYGAsIGluIHdoaWNoIGNhc2UgdGhlIHN0cmluZyBgYEdNVGBgIGlzIHVzZWQgaW5zdGVhZCBvZiB0aGUgbnVtZXJpYworICAgdGltZXpvbmUgb2Zmc2V0LiAgVGhpcyBwcm92aWRlcyBhIHdheSB0byBnZW5lcmF0ZSBzdGFuZGFyZHMgY29uZm9ybWFudCBIVFRQCisgICBkYXRlIGhlYWRlcnMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogbG9jYWx0aW1lKGR0PU5vbmUpCisKKyAgICBSZXR1cm4gbG9jYWwgdGltZSBhcyBhbiBhd2FyZSBkYXRldGltZSBvYmplY3QuICBJZiBjYWxsZWQgd2l0aG91dAorICAgIGFyZ3VtZW50cywgcmV0dXJuIGN1cnJlbnQgdGltZS4gIE90aGVyd2lzZSAqZHQqIGFyZ3VtZW50IHNob3VsZCBiZSBhCisgICAgOmNsYXNzOmB+ZGF0ZXRpbWUuZGF0ZXRpbWVgIGluc3RhbmNlLCBhbmQgaXQgaXMgY29udmVydGVkIHRvIHRoZSBsb2NhbCB0aW1lCisgICAgem9uZSBhY2NvcmRpbmcgdG8gdGhlIHN5c3RlbSB0aW1lIHpvbmUgZGF0YWJhc2UuICBJZiAqZHQqIGlzIG5haXZlICh0aGF0CisgICAgaXMsIGBgZHQudHppbmZvYGAgaXMgYGBOb25lYGApLCBpdCBpcyBhc3N1bWVkIHRvIGJlIGluIGxvY2FsIHRpbWUuICBJbiB0aGlzCisgICAgY2FzZSwgYSBwb3NpdGl2ZSBvciB6ZXJvIHZhbHVlIGZvciAqaXNkc3QqIGNhdXNlcyBgYGxvY2FsdGltZWBgIHRvIHByZXN1bWUKKyAgICBpbml0aWFsbHkgdGhhdCBzdW1tZXIgdGltZSAoZm9yIGV4YW1wbGUsIERheWxpZ2h0IFNhdmluZyBUaW1lKSBpcyBvciBpcyBub3QKKyAgICAocmVzcGVjdGl2ZWx5KSBpbiBlZmZlY3QgZm9yIHRoZSBzcGVjaWZpZWQgdGltZS4gIEEgbmVnYXRpdmUgdmFsdWUgZm9yCisgICAgKmlzZHN0KiBjYXVzZXMgdGhlIGBgbG9jYWx0aW1lYGAgdG8gYXR0ZW1wdCB0byBkaXZpbmUgd2hldGhlciBzdW1tZXIgdGltZQorICAgIGlzIGluIGVmZmVjdCBmb3IgdGhlIHNwZWNpZmllZCB0aW1lLgorCisgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gZnVuY3Rpb246OiBtYWtlX21zZ2lkKGlkc3RyaW5nPU5vbmUsIGRvbWFpbj1Ob25lKQogCiAgICBSZXR1cm5zIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBhbiA6cmZjOmAyODIyYFwgLWNvbXBsaWFudApAQCAtMTE1LDcgKzE2Nyw4IEBACiAgICBtYXkgYmUgdXNlZnVsIGNlcnRhaW4gY2FzZXMsIHN1Y2ggYXMgYSBjb25zdHJ1Y3RpbmcgZGlzdHJpYnV0ZWQgc3lzdGVtIHRoYXQKICAgIHVzZXMgYSBjb25zaXN0ZW50IGRvbWFpbiBuYW1lIGFjcm9zcyBtdWx0aXBsZSBob3N0cy4KIAotICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIgZG9tYWluIGtleXdvcmQgYWRkZWQKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCisgICAgICBBZGRlZCB0aGUgKmRvbWFpbioga2V5d29yZC4KIAogCiAuLiBmdW5jdGlvbjo6IGRlY29kZV9yZmMyMjMxKHMpCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9leGNlcHRpb25zLnJzdCBiL0RvYy9saWJyYXJ5L2V4Y2VwdGlvbnMucnN0CmluZGV4IGNhM2FkM2UuLjZiYTU4ZDQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2V4Y2VwdGlvbnMucnN0CisrKyBiL0RvYy9saWJyYXJ5L2V4Y2VwdGlvbnMucnN0CkBAIC0zNCw2ICszNCwyNyBAQAogZGVmaW5pbmcgZXhjZXB0aW9ucyBpcyBhdmFpbGFibGUgaW4gdGhlIFB5dGhvbiBUdXRvcmlhbCB1bmRlcgogOnJlZjpgdHV0LXVzZXJleGNlcHRpb25zYC4KIAorV2hlbiByYWlzaW5nIChvciByZS1yYWlzaW5nKSBhbiBleGNlcHRpb24gaW4gYW4gOmtleXdvcmQ6YGV4Y2VwdGAgY2xhdXNlCis6YXR0cjpgX19jb250ZXh0X19gIGlzIGF1dG9tYXRpY2FsbHkgc2V0IHRvIHRoZSBsYXN0IGV4Y2VwdGlvbiBjYXVnaHQ7IGlmIHRoZQorbmV3IGV4Y2VwdGlvbiBpcyBub3QgaGFuZGxlZCB0aGUgdHJhY2ViYWNrIHRoYXQgaXMgZXZlbnR1YWxseSBkaXNwbGF5ZWQgd2lsbAoraW5jbHVkZSB0aGUgb3JpZ2luYXRpbmcgZXhjZXB0aW9uKHMpIGFuZCB0aGUgZmluYWwgZXhjZXB0aW9uLgorCitUaGlzIGltcGxpY2l0IGV4Y2VwdGlvbiBjaGFpbiBjYW4gYmUgbWFkZSBleHBsaWNpdCBieSB1c2luZyA6a2V5d29yZDpgZnJvbWAgd2l0aAorOmtleXdvcmQ6YHJhaXNlYC4gIFRoZSBzaW5nbGUgYXJndW1lbnQgdG8gOmtleXdvcmQ6YGZyb21gIG11c3QgYmUgYW4gZXhjZXB0aW9uCitvciBgYE5vbmVgYC4gSXQgd2lsbCBiZSBzZXQgYXMgOmF0dHI6YF9fY2F1c2VfX2Agb24gdGhlIHJhaXNlZCBleGNlcHRpb24uCitTZXR0aW5nIDphdHRyOmBfX2NhdXNlX19gIGltcGxpY2l0bHkgc2V0cyB0aGUgOmF0dHI6YF9fc3VwcHJlc3NfY29udGV4dF9fYCB0bworYGBUcnVlYGAuIElmIDphdHRyOmBfX2NhdXNlX19gIGlzIGFuIGV4Y2VwdGlvbiwgaXQgd2lsbCBiZSBkaXNwbGF5ZWQuIElmCis6YXR0cjpgX19jYXVzZV9fYCBpcyBwcmVzZW50IG9yIDphdHRyOmBfX3N1cHByZXNzX2NvbnRleHRfX2AgaGFzIGEgdHJ1ZSB2YWx1ZSwKKzphdHRyOmBfX2NvbnRleHRfX2Agd2lsbCBub3QgYmUgZGlzcGxheWVkLgorCitJbiBlaXRoZXIgY2FzZSwgdGhlIGRlZmF1bHQgZXhjZXB0aW9uIGhhbmRsaW5nIGNvZGUgd2lsbCBub3QgZGlzcGxheSBhbnkgb2YgdGhlCityZW1haW5pbmcgbGlua3MgaW4gdGhlIDphdHRyOmBfX2NvbnRleHRfX2AgY2hhaW4gaWYgOmF0dHI6YF9fY2F1c2VfX2AgaGFzIGJlZW4KK3NldC4KKworCitCYXNlIGNsYXNzZXMKKy0tLS0tLS0tLS0tLQorCiBUaGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMgYXJlIHVzZWQgbW9zdGx5IGFzIGJhc2UgY2xhc3NlcyBmb3Igb3RoZXIgZXhjZXB0aW9ucy4KIAogLi4gZXhjZXB0aW9uOjogQmFzZUV4Y2VwdGlvbgpAQCAtOTAsMjcgKzExMSw4IEBACiAgICBjYW4gYmUgcmFpc2VkIGRpcmVjdGx5IGJ5IDpmdW5jOmBjb2RlY3MubG9va3VwYC4KIAogCi0uLiBleGNlcHRpb246OiBFbnZpcm9ubWVudEVycm9yCi0KLSAgIFRoZSBiYXNlIGNsYXNzIGZvciBleGNlcHRpb25zIHRoYXQgY2FuIG9jY3VyIG91dHNpZGUgdGhlIFB5dGhvbiBzeXN0ZW06Ci0gICA6ZXhjOmBJT0Vycm9yYCwgOmV4YzpgT1NFcnJvcmAuICBXaGVuIGV4Y2VwdGlvbnMgb2YgdGhpcyB0eXBlIGFyZSBjcmVhdGVkIHdpdGggYQotICAgMi10dXBsZSwgdGhlIGZpcnN0IGl0ZW0gaXMgYXZhaWxhYmxlIG9uIHRoZSBpbnN0YW5jZSdzIDphdHRyOmBlcnJub2AgYXR0cmlidXRlCi0gICAoaXQgaXMgYXNzdW1lZCB0byBiZSBhbiBlcnJvciBudW1iZXIpLCBhbmQgdGhlIHNlY29uZCBpdGVtIGlzIGF2YWlsYWJsZSBvbiB0aGUKLSAgIDphdHRyOmBzdHJlcnJvcmAgYXR0cmlidXRlIChpdCBpcyB1c3VhbGx5IHRoZSBhc3NvY2lhdGVkIGVycm9yIG1lc3NhZ2UpLiAgVGhlCi0gICB0dXBsZSBpdHNlbGYgaXMgYWxzbyBhdmFpbGFibGUgb24gdGhlIDphdHRyOmBhcmdzYCBhdHRyaWJ1dGUuCi0KLSAgIFdoZW4gYW4gOmV4YzpgRW52aXJvbm1lbnRFcnJvcmAgZXhjZXB0aW9uIGlzIGluc3RhbnRpYXRlZCB3aXRoIGEgMy10dXBsZSwgdGhlCi0gICBmaXJzdCB0d28gaXRlbXMgYXJlIGF2YWlsYWJsZSBhcyBhYm92ZSwgd2hpbGUgdGhlIHRoaXJkIGl0ZW0gaXMgYXZhaWxhYmxlIG9uIHRoZQotICAgOmF0dHI6YGZpbGVuYW1lYCBhdHRyaWJ1dGUuICBIb3dldmVyLCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHRoZQotICAgOmF0dHI6YGFyZ3NgIGF0dHJpYnV0ZSBjb250YWlucyBvbmx5IGEgMi10dXBsZSBvZiB0aGUgZmlyc3QgdHdvIGNvbnN0cnVjdG9yCi0gICBhcmd1bWVudHMuCi0KLSAgIFRoZSA6YXR0cjpgZmlsZW5hbWVgIGF0dHJpYnV0ZSBpcyBgYE5vbmVgYCB3aGVuIHRoaXMgZXhjZXB0aW9uIGlzIGNyZWF0ZWQgd2l0aAotICAgb3RoZXIgdGhhbiAzIGFyZ3VtZW50cy4gIFRoZSA6YXR0cjpgZXJybm9gIGFuZCA6YXR0cjpgc3RyZXJyb3JgIGF0dHJpYnV0ZXMgYXJlCi0gICBhbHNvIGBgTm9uZWBgIHdoZW4gdGhlIGluc3RhbmNlIHdhcyBjcmVhdGVkIHdpdGggb3RoZXIgdGhhbiAyIG9yIDMgYXJndW1lbnRzLgotICAgSW4gdGhpcyBsYXN0IGNhc2UsIDphdHRyOmBhcmdzYCBjb250YWlucyB0aGUgdmVyYmF0aW0gY29uc3RydWN0b3IgYXJndW1lbnRzIGFzIGEKLSAgIHR1cGxlLgotCitDb25jcmV0ZSBleGNlcHRpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFRoZSBmb2xsb3dpbmcgZXhjZXB0aW9ucyBhcmUgdGhlIGV4Y2VwdGlvbnMgdGhhdCBhcmUgdXN1YWxseSByYWlzZWQuCiAKQEAgLTE1MSwyMSArMTUzLDE5IEBACiAgICBpdCBpcyB0ZWNobmljYWxseSBub3QgYW4gZXJyb3IuCiAKIAotLi4gZXhjZXB0aW9uOjogSU9FcnJvcgotCi0gICBSYWlzZWQgd2hlbiBhbiBJL08gb3BlcmF0aW9uIChzdWNoIGFzIHRoZSBidWlsdC1pbiA6ZnVuYzpgcHJpbnRgIG9yCi0gICA6ZnVuYzpgb3BlbmAgZnVuY3Rpb25zIG9yIGEgbWV0aG9kIG9mIGEgOnRlcm06YGZpbGUgb2JqZWN0YCkgZmFpbHMgZm9yIGFuCi0gICBJL08tcmVsYXRlZCByZWFzb24sIGUuZy4sICJmaWxlIG5vdCBmb3VuZCIgb3IgImRpc2sgZnVsbCIuCi0KLSAgIFRoaXMgY2xhc3MgaXMgZGVyaXZlZCBmcm9tIDpleGM6YEVudmlyb25tZW50RXJyb3JgLiAgU2VlIHRoZSBkaXNjdXNzaW9uIGFib3ZlCi0gICBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBleGNlcHRpb24gaW5zdGFuY2UgYXR0cmlidXRlcy4KLQotCiAuLiBleGNlcHRpb246OiBJbXBvcnRFcnJvcgogCiAgICBSYWlzZWQgd2hlbiBhbiA6a2V5d29yZDpgaW1wb3J0YCBzdGF0ZW1lbnQgZmFpbHMgdG8gZmluZCB0aGUgbW9kdWxlIGRlZmluaXRpb24KICAgIG9yIHdoZW4gYSBgYGZyb20gLi4uIGltcG9ydGBgIGZhaWxzIHRvIGZpbmQgYSBuYW1lIHRoYXQgaXMgdG8gYmUgaW1wb3J0ZWQuCiAKKyAgIFRoZSA6YXR0cjpgbmFtZWAgYW5kIDphdHRyOmBwYXRoYCBhdHRyaWJ1dGVzIGNhbiBiZSBzZXQgdXNpbmcga2V5d29yZC1vbmx5CisgICBhcmd1bWVudHMgdG8gdGhlIGNvbnN0cnVjdG9yLiBXaGVuIHNldCB0aGV5IHJlcHJlc2VudCB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlCisgICB0aGF0IHdhcyBhdHRlbXB0ZWQgdG8gYmUgaW1wb3J0ZWQgYW5kIHRoZSBwYXRoIHRvIGFueSBmaWxlIHdoaWNoIHRyaWdnZXJlZAorICAgdGhlIGV4Y2VwdGlvbiwgcmVzcGVjdGl2ZWx5LgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgdGhlIDphdHRyOmBuYW1lYCBhbmQgOmF0dHI6YHBhdGhgIGF0dHJpYnV0ZXMuCisKIAogLi4gZXhjZXB0aW9uOjogSW5kZXhFcnJvcgogCkBAIC0yMjEsMTcgKzIyMSwzMCBAQAogCiAgICAuLiBpbmRleDo6IG1vZHVsZTogZXJybm8KIAotICAgVGhpcyBleGNlcHRpb24gaXMgZGVyaXZlZCBmcm9tIDpleGM6YEVudmlyb25tZW50RXJyb3JgLiAgSXQgaXMgcmFpc2VkIHdoZW4gYQotICAgZnVuY3Rpb24gcmV0dXJucyBhIHN5c3RlbS1yZWxhdGVkIGVycm9yIChub3QgZm9yIGlsbGVnYWwgYXJndW1lbnQgdHlwZXMgb3IKLSAgIG90aGVyIGluY2lkZW50YWwgZXJyb3JzKS4gIFRoZSA6YXR0cjpgZXJybm9gIGF0dHJpYnV0ZSBpcyBhIG51bWVyaWMgZXJyb3IKLSAgIGNvZGUgZnJvbSA6YzpkYXRhOmBlcnJub2AsIGFuZCB0aGUgOmF0dHI6YHN0cmVycm9yYCBhdHRyaWJ1dGUgaXMgdGhlCi0gICBjb3JyZXNwb25kaW5nIHN0cmluZywgYXMgd291bGQgYmUgcHJpbnRlZCBieSB0aGUgQyBmdW5jdGlvbiA6YzpmdW5jOmBwZXJyb3JgLgotICAgU2VlIHRoZSBtb2R1bGUgOm1vZDpgZXJybm9gLCB3aGljaCBjb250YWlucyBuYW1lcyBmb3IgdGhlIGVycm9yIGNvZGVzIGRlZmluZWQKLSAgIGJ5IHRoZSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW0uCisgICBUaGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiBhIHN5c3RlbSBmdW5jdGlvbiByZXR1cm5zIGEgc3lzdGVtLXJlbGF0ZWQKKyAgIGVycm9yLCBpbmNsdWRpbmcgSS9PIGZhaWx1cmVzIHN1Y2ggYXMgImZpbGUgbm90IGZvdW5kIiBvciAiZGlzayBmdWxsIgorICAgKG5vdCBmb3IgaWxsZWdhbCBhcmd1bWVudCB0eXBlcyBvciBvdGhlciBpbmNpZGVudGFsIGVycm9ycykuICBPZnRlbiBhCisgICBzdWJjbGFzcyBvZiA6ZXhjOmBPU0Vycm9yYCB3aWxsIGFjdHVhbGx5IGJlIHJhaXNlZCBhcyBkZXNjcmliZWQgaW4KKyAgIGBPUyBleGNlcHRpb25zYF8gYmVsb3cuICBUaGUgOmF0dHI6YGVycm5vYCBhdHRyaWJ1dGUgaXMgYSBudW1lcmljIGVycm9yCisgICBjb2RlIGZyb20gdGhlIEMgdmFyaWFibGUgOmM6ZGF0YTpgZXJybm9gLgogCi0gICBGb3IgZXhjZXB0aW9ucyB0aGF0IGludm9sdmUgYSBmaWxlIHN5c3RlbSBwYXRoIChzdWNoIGFzIDpmdW5jOmBjaGRpcmAgb3IKLSAgIDpmdW5jOmB1bmxpbmtgKSwgdGhlIGV4Y2VwdGlvbiBpbnN0YW5jZSB3aWxsIGNvbnRhaW4gYSB0aGlyZCBhdHRyaWJ1dGUsCi0gICA6YXR0cjpgZmlsZW5hbWVgLCB3aGljaCBpcyB0aGUgZmlsZSBuYW1lIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uCisgICBVbmRlciBXaW5kb3dzLCB0aGUgOmF0dHI6YHdpbmVycm9yYCBhdHRyaWJ1dGUgZ2l2ZXMgeW91IHRoZSBuYXRpdmUKKyAgIFdpbmRvd3MgZXJyb3IgY29kZS4gIFRoZSA6YXR0cjpgZXJybm9gIGF0dHJpYnV0ZSBpcyB0aGVuIGFuIGFwcHJveGltYXRlCisgICB0cmFuc2xhdGlvbiwgaW4gUE9TSVggdGVybXMsIG9mIHRoYXQgbmF0aXZlIGVycm9yIGNvZGUuCisKKyAgIFVuZGVyIGFsbCBwbGF0Zm9ybXMsIHRoZSA6YXR0cjpgc3RyZXJyb3JgIGF0dHJpYnV0ZSBpcyB0aGUgY29ycmVzcG9uZGluZworICAgZXJyb3IgbWVzc2FnZSBhcyBwcm92aWRlZCBieSB0aGUgb3BlcmF0aW5nIHN5c3RlbSAoYXMgZm9ybWF0dGVkIGJ5IHRoZSBDCisgICBmdW5jdGlvbnMgOmM6ZnVuYzpgcGVycm9yYCB1bmRlciBQT1NJWCwgYW5kIDpjOmZ1bmM6YEZvcm1hdE1lc3NhZ2VgCisgICBXaW5kb3dzKS4KKworICAgRm9yIGV4Y2VwdGlvbnMgdGhhdCBpbnZvbHZlIGEgZmlsZSBzeXN0ZW0gcGF0aCAoc3VjaCBhcyA6ZnVuYzpgb3BlbmAgb3IKKyAgIDpmdW5jOmBvcy51bmxpbmtgKSwgdGhlIGV4Y2VwdGlvbiBpbnN0YW5jZSB3aWxsIGNvbnRhaW4gYW4gYWRkaXRpb25hbAorICAgYXR0cmlidXRlLCA6YXR0cjpgZmlsZW5hbWVgLCB3aGljaCBpcyB0aGUgZmlsZSBuYW1lIHBhc3NlZCB0byB0aGUgZnVuY3Rpb24uCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICA6ZXhjOmBFbnZpcm9ubWVudEVycm9yYCwgOmV4YzpgSU9FcnJvcmAsIDpleGM6YFdpbmRvd3NFcnJvcmAsCisgICAgICA6ZXhjOmBWTVNFcnJvcmAsIDpleGM6YHNvY2tldC5lcnJvcmAsIDpleGM6YHNlbGVjdC5lcnJvcmAgYW5kCisgICAgICA6ZXhjOmBtbWFwLmVycm9yYCBoYXZlIGJlZW4gbWVyZ2VkIGludG8gOmV4YzpgT1NFcnJvcmAuCiAKIAogLi4gZXhjZXB0aW9uOjogT3ZlcmZsb3dFcnJvcgpAQCAtMjYyLDggKzI3NSwyMCBAQAogLi4gZXhjZXB0aW9uOjogU3RvcEl0ZXJhdGlvbgogCiAgICBSYWlzZWQgYnkgYnVpbHQtaW4gZnVuY3Rpb24gOmZ1bmM6YG5leHRgIGFuZCBhbiA6dGVybTpgaXRlcmF0b3JgXCdzCi0gICA6bWV0aDpgX19uZXh0X19gIG1ldGhvZCB0byBzaWduYWwgdGhhdCB0aGVyZSBhcmUgbm8gZnVydGhlciB2YWx1ZXMuCisgICA6bWV0aDpgX19uZXh0X19gIG1ldGhvZCB0byBzaWduYWwgdGhhdCB0aGVyZSBhcmUgbm8gZnVydGhlciBpdGVtcyB0byBiZQorICAgcHJvZHVjZWQgYnkgdGhlIGl0ZXJhdG9yLgogCisgICBUaGUgZXhjZXB0aW9uIG9iamVjdCBoYXMgYSBzaW5nbGUgYXR0cmlidXRlIDphdHRyOmB2YWx1ZWAsIHdoaWNoIGlzCisgICBnaXZlbiBhcyBhbiBhcmd1bWVudCB3aGVuIGNvbnN0cnVjdGluZyB0aGUgZXhjZXB0aW9uLCBhbmQgZGVmYXVsdHMKKyAgIHRvIDpjb25zdDpgTm9uZWAuCisKKyAgIFdoZW4gYSBnZW5lcmF0b3IgZnVuY3Rpb24gcmV0dXJucywgYSBuZXcgOmV4YzpgU3RvcEl0ZXJhdGlvbmAgaW5zdGFuY2UgaXMKKyAgIHJhaXNlZCwgYW5kIHRoZSB2YWx1ZSByZXR1cm5lZCBieSB0aGUgZnVuY3Rpb24gaXMgdXNlZCBhcyB0aGUKKyAgIDphdHRyOmB2YWx1ZWAgcGFyYW1ldGVyIHRvIHRoZSBjb25zdHJ1Y3RvciBvZiB0aGUgZXhjZXB0aW9uLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgYGB2YWx1ZWBgIGF0dHJpYnV0ZSBhbmQgdGhlIGFiaWxpdHkgZm9yIGdlbmVyYXRvciBmdW5jdGlvbnMgdG8KKyAgICAgIHVzZSBpdCB0byByZXR1cm4gYSB2YWx1ZS4KIAogLi4gZXhjZXB0aW9uOjogU3ludGF4RXJyb3IKIApAQCAtMzcyLDIxICszOTcsNiBAQAogICAgbW9yZSBwcmVjaXNlIGV4Y2VwdGlvbiBzdWNoIGFzIDpleGM6YEluZGV4RXJyb3JgLgogCiAKLS4uIGV4Y2VwdGlvbjo6IFZNU0Vycm9yCi0KLSAgIE9ubHkgYXZhaWxhYmxlIG9uIFZNUy4gIFJhaXNlZCB3aGVuIGEgVk1TLXNwZWNpZmljIGVycm9yIG9jY3Vycy4KLQotCi0uLiBleGNlcHRpb246OiBXaW5kb3dzRXJyb3IKLQotICAgUmFpc2VkIHdoZW4gYSBXaW5kb3dzLXNwZWNpZmljIGVycm9yIG9jY3VycyBvciB3aGVuIHRoZSBlcnJvciBudW1iZXIgZG9lcyBub3QKLSAgIGNvcnJlc3BvbmQgdG8gYW4gOmM6ZGF0YTpgZXJybm9gIHZhbHVlLiAgVGhlIDphdHRyOmB3aW5lcnJvcmAgYW5kCi0gICA6YXR0cjpgc3RyZXJyb3JgIHZhbHVlcyBhcmUgY3JlYXRlZCBmcm9tIHRoZSByZXR1cm4gdmFsdWVzIG9mIHRoZQotICAgOmM6ZnVuYzpgR2V0TGFzdEVycm9yYCBhbmQgOmM6ZnVuYzpgRm9ybWF0TWVzc2FnZWAgZnVuY3Rpb25zIGZyb20gdGhlIFdpbmRvd3MKLSAgIFBsYXRmb3JtIEFQSS4gVGhlIDphdHRyOmBlcnJub2AgdmFsdWUgbWFwcyB0aGUgOmF0dHI6YHdpbmVycm9yYCB2YWx1ZSB0bwotICAgY29ycmVzcG9uZGluZyBgYGVycm5vLmhgYCB2YWx1ZXMuIFRoaXMgaXMgYSBzdWJjbGFzcyBvZiA6ZXhjOmBPU0Vycm9yYC4KLQotCiAuLiBleGNlcHRpb246OiBaZXJvRGl2aXNpb25FcnJvcgogCiAgICBSYWlzZWQgd2hlbiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIGEgZGl2aXNpb24gb3IgbW9kdWxvIG9wZXJhdGlvbiBpcyB6ZXJvLiAgVGhlCkBAIC0zOTQsNiArNDA0LDEzNSBAQAogICAgb3BlcmF0aW9uLgogCiAKK1RoZSBmb2xsb3dpbmcgZXhjZXB0aW9ucyBhcmUga2VwdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHByZXZpb3VzIHZlcnNpb25zOworc3RhcnRpbmcgZnJvbSBQeXRob24gMy4zLCB0aGV5IGFyZSBhbGlhc2VzIG9mIDpleGM6YE9TRXJyb3JgLgorCisuLiBleGNlcHRpb246OiBFbnZpcm9ubWVudEVycm9yCisKKy4uIGV4Y2VwdGlvbjo6IElPRXJyb3IKKworLi4gZXhjZXB0aW9uOjogVk1TRXJyb3IKKworICAgT25seSBhdmFpbGFibGUgb24gVk1TLgorCisuLiBleGNlcHRpb246OiBXaW5kb3dzRXJyb3IKKworICAgT25seSBhdmFpbGFibGUgb24gV2luZG93cy4KKworCitPUyBleGNlcHRpb25zCiteXl5eXl5eXl5eXl5eCisKK1RoZSBmb2xsb3dpbmcgZXhjZXB0aW9ucyBhcmUgc3ViY2xhc3NlcyBvZiA6ZXhjOmBPU0Vycm9yYCwgdGhleSBnZXQgcmFpc2VkCitkZXBlbmRpbmcgb24gdGhlIHN5c3RlbSBlcnJvciBjb2RlLgorCisuLiBleGNlcHRpb246OiBCbG9ja2luZ0lPRXJyb3IKKworICAgUmFpc2VkIHdoZW4gYW4gb3BlcmF0aW9uIHdvdWxkIGJsb2NrIG9uIGFuIG9iamVjdCAoZS5nLiBzb2NrZXQpIHNldAorICAgZm9yIG5vbi1ibG9ja2luZyBvcGVyYXRpb24uCisgICBDb3JyZXNwb25kcyB0byA6YzpkYXRhOmBlcnJub2AgYGBFQUdBSU5gYCwgYGBFQUxSRUFEWWBgLAorICAgYGBFV09VTERCTE9DS2BgIGFuZCBgYEVJTlBST0dSRVNTYGAuCisKKyAgIEluIGFkZGl0aW9uIHRvIHRob3NlIG9mIDpleGM6YE9TRXJyb3JgLCA6ZXhjOmBCbG9ja2luZ0lPRXJyb3JgIGNhbiBoYXZlCisgICBvbmUgbW9yZSBhdHRyaWJ1dGU6CisKKyAgIC4uIGF0dHJpYnV0ZTo6IGNoYXJhY3RlcnNfd3JpdHRlbgorCisgICAgICBBbiBpbnRlZ2VyIGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbQorICAgICAgYmVmb3JlIGl0IGJsb2NrZWQuICBUaGlzIGF0dHJpYnV0ZSBpcyBhdmFpbGFibGUgd2hlbiB1c2luZyB0aGUKKyAgICAgIGJ1ZmZlcmVkIEkvTyBjbGFzc2VzIGZyb20gdGhlIDptb2Q6YGlvYCBtb2R1bGUuCisKKy4uIGV4Y2VwdGlvbjo6IENoaWxkUHJvY2Vzc0Vycm9yCisKKyAgIFJhaXNlZCB3aGVuIGFuIG9wZXJhdGlvbiBvbiBhIGNoaWxkIHByb2Nlc3MgZmFpbGVkLgorICAgQ29ycmVzcG9uZHMgdG8gOmM6ZGF0YTpgZXJybm9gIGBgRUNISUxEYGAuCisKKy4uIGV4Y2VwdGlvbjo6IENvbm5lY3Rpb25FcnJvcgorCisgICBBIGJhc2UgY2xhc3MgZm9yIGNvbm5lY3Rpb24tcmVsYXRlZCBpc3N1ZXMuICBTdWJjbGFzc2VzIGFyZQorICAgOmV4YzpgQnJva2VuUGlwZUVycm9yYCwgOmV4YzpgQ29ubmVjdGlvbkFib3J0ZWRFcnJvcmAsCisgICA6ZXhjOmBDb25uZWN0aW9uUmVmdXNlZEVycm9yYCBhbmQgOmV4YzpgQ29ubmVjdGlvblJlc2V0RXJyb3JgLgorCisgICAuLiBleGNlcHRpb246OiBCcm9rZW5QaXBlRXJyb3IKKworICAgICAgQSBzdWJjbGFzcyBvZiA6ZXhjOmBDb25uZWN0aW9uRXJyb3JgLCByYWlzZWQgd2hlbiB0cnlpbmcgdG8gd3JpdGUgb24gYQorICAgICAgcGlwZSB3aGlsZSB0aGUgb3RoZXIgZW5kIGhhcyBiZWVuIGNsb3NlZCwgb3IgdHJ5aW5nIHRvIHdyaXRlIG9uIGEgc29ja2V0CisgICAgICB3aGljaCBoYXMgYmVlbiBzaHV0ZG93biBmb3Igd3JpdGluZy4KKyAgICAgIENvcnJlc3BvbmRzIHRvIDpjOmRhdGE6YGVycm5vYCBgYEVQSVBFYGAgYW5kIGBgRVNIVVRET1dOYGAuCisKKyAgIC4uIGV4Y2VwdGlvbjo6IENvbm5lY3Rpb25BYm9ydGVkRXJyb3IKKworICAgICAgQSBzdWJjbGFzcyBvZiA6ZXhjOmBDb25uZWN0aW9uRXJyb3JgLCByYWlzZWQgd2hlbiBhIGNvbm5lY3Rpb24gYXR0ZW1wdAorICAgICAgaXMgYWJvcnRlZCBieSB0aGUgcGVlci4KKyAgICAgIENvcnJlc3BvbmRzIHRvIDpjOmRhdGE6YGVycm5vYCBgYEVDT05OQUJPUlRFRGBgLgorCisgICAuLiBleGNlcHRpb246OiBDb25uZWN0aW9uUmVmdXNlZEVycm9yCisKKyAgICAgIEEgc3ViY2xhc3Mgb2YgOmV4YzpgQ29ubmVjdGlvbkVycm9yYCwgcmFpc2VkIHdoZW4gYSBjb25uZWN0aW9uIGF0dGVtcHQKKyAgICAgIGlzIHJlZnVzZWQgYnkgdGhlIHBlZXIuCisgICAgICBDb3JyZXNwb25kcyB0byA6YzpkYXRhOmBlcnJub2AgYGBFQ09OTlJFRlVTRURgYC4KKworICAgLi4gZXhjZXB0aW9uOjogQ29ubmVjdGlvblJlc2V0RXJyb3IKKworICAgICAgQSBzdWJjbGFzcyBvZiA6ZXhjOmBDb25uZWN0aW9uRXJyb3JgLCByYWlzZWQgd2hlbiBhIGNvbm5lY3Rpb24gaXMKKyAgICAgIHJlc2V0IGJ5IHRoZSBwZWVyLgorICAgICAgQ29ycmVzcG9uZHMgdG8gOmM6ZGF0YTpgZXJybm9gIGBgRUNPTk5SRVNFVGBgLgorCisuLiBleGNlcHRpb246OiBGaWxlRXhpc3RzRXJyb3IKKworICAgUmFpc2VkIHdoZW4gdHJ5aW5nIHRvIGNyZWF0ZSBhIGZpbGUgb3IgZGlyZWN0b3J5IHdoaWNoIGFscmVhZHkgZXhpc3RzLgorICAgQ29ycmVzcG9uZHMgdG8gOmM6ZGF0YTpgZXJybm9gIGBgRUVYSVNUYGAuCisKKy4uIGV4Y2VwdGlvbjo6IEZpbGVOb3RGb3VuZEVycm9yCisKKyAgIFJhaXNlZCB3aGVuIGEgZmlsZSBvciBkaXJlY3RvcnkgaXMgcmVxdWVzdGVkIGJ1dCBkb2Vzbid0IGV4aXN0LgorICAgQ29ycmVzcG9uZHMgdG8gOmM6ZGF0YTpgZXJybm9gIGBgRU5PRU5UYGAuCisKKy4uIGV4Y2VwdGlvbjo6IEludGVycnVwdGVkRXJyb3IKKworICAgUmFpc2VkIHdoZW4gYSBzeXN0ZW0gY2FsbCBpcyBpbnRlcnJ1cHRlZCBieSBhbiBpbmNvbWluZyBzaWduYWwuCisgICBDb3JyZXNwb25kcyB0byA6YzpkYXRhOmBlcnJub2AgYGBFRUlOVFJgYC4KKworLi4gZXhjZXB0aW9uOjogSXNBRGlyZWN0b3J5RXJyb3IKKworICAgUmFpc2VkIHdoZW4gYSBmaWxlIG9wZXJhdGlvbiAoc3VjaCBhcyA6ZnVuYzpgb3MucmVtb3ZlYCkgaXMgcmVxdWVzdGVkCisgICBvbiBhIGRpcmVjdG9yeS4KKyAgIENvcnJlc3BvbmRzIHRvIDpjOmRhdGE6YGVycm5vYCBgYEVJU0RJUmBgLgorCisuLiBleGNlcHRpb246OiBOb3RBRGlyZWN0b3J5RXJyb3IKKworICAgUmFpc2VkIHdoZW4gYSBkaXJlY3Rvcnkgb3BlcmF0aW9uIChzdWNoIGFzIDpmdW5jOmBvcy5saXN0ZGlyYCkgaXMgcmVxdWVzdGVkCisgICBvbiBzb21ldGhpbmcgd2hpY2ggaXMgbm90IGEgZGlyZWN0b3J5LgorICAgQ29ycmVzcG9uZHMgdG8gOmM6ZGF0YTpgZXJybm9gIGBgRU5PVERJUmBgLgorCisuLiBleGNlcHRpb246OiBQZXJtaXNzaW9uRXJyb3IKKworICAgUmFpc2VkIHdoZW4gdHJ5aW5nIHRvIHJ1biBhbiBvcGVyYXRpb24gd2l0aG91dCB0aGUgYWRlcXVhdGUgYWNjZXNzCisgICByaWdodHMgLSBmb3IgZXhhbXBsZSBmaWxlc3lzdGVtIHBlcm1pc3Npb25zLgorICAgQ29ycmVzcG9uZHMgdG8gOmM6ZGF0YTpgZXJybm9gIGBgRUFDQ0VTYGAgYW5kIGBgRVBFUk1gYC4KKworLi4gZXhjZXB0aW9uOjogUHJvY2Vzc0xvb2t1cEVycm9yCisKKyAgIFJhaXNlZCB3aGVuIGEgZ2l2ZW4gcHJvY2VzcyBkb2Vzbid0IGV4aXN0LgorICAgQ29ycmVzcG9uZHMgdG8gOmM6ZGF0YTpgZXJybm9gIGBgRVNSQ0hgYC4KKworLi4gZXhjZXB0aW9uOjogVGltZW91dEVycm9yCisKKyAgIFJhaXNlZCB3aGVuIGEgc3lzdGVtIGZ1bmN0aW9uIHRpbWVkIG91dCBhdCB0aGUgc3lzdGVtIGxldmVsLgorICAgQ29ycmVzcG9uZHMgdG8gOmM6ZGF0YTpgZXJybm9gIGBgRVRJTUVET1VUYGAuCisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgQWxsIHRoZSBhYm92ZSA6ZXhjOmBPU0Vycm9yYCBzdWJjbGFzc2VzIHdlcmUgYWRkZWQuCisKKworLi4gc2VlYWxzbzo6CisKKyAgIDpwZXA6YDMxNTFgIC0gUmV3b3JraW5nIHRoZSBPUyBhbmQgSU8gZXhjZXB0aW9uIGhpZXJhcmNoeQorCisKK1dhcm5pbmdzCistLS0tLS0tLQorCiBUaGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMgYXJlIHVzZWQgYXMgd2FybmluZyBjYXRlZ29yaWVzOyBzZWUgdGhlIDptb2Q6YHdhcm5pbmdzYAogbW9kdWxlIGZvciBtb3JlIGluZm9ybWF0aW9uLgogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9mYXVsdGhhbmRsZXIucnN0IGIvRG9jL2xpYnJhcnkvZmF1bHRoYW5kbGVyLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jOWI5NTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jL2xpYnJhcnkvZmF1bHRoYW5kbGVyLnJzdApAQCAtMCwwICsxLDEzNiBAQAorOm1vZDpgZmF1bHRoYW5kbGVyYCAtLS0gRHVtcCB0aGUgUHl0aG9uIHRyYWNlYmFjaworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBtb2R1bGU6OiBmYXVsdGhhbmRsZXIKKyAgIDpzeW5vcHNpczogRHVtcCB0aGUgUHl0aG9uIHRyYWNlYmFjay4KKworVGhpcyBtb2R1bGUgY29udGFpbnMgZnVuY3Rpb25zIHRvIGR1bXAgUHl0aG9uIHRyYWNlYmFja3MgZXhwbGljaXRseSwgb24gYSBmYXVsdCwKK2FmdGVyIGEgdGltZW91dCwgb3Igb24gYSB1c2VyIHNpZ25hbC4gQ2FsbCA6ZnVuYzpgZmF1bHRoYW5kbGVyLmVuYWJsZWAgdG8KK2luc3RhbGwgZmF1bHQgaGFuZGxlcnMgZm9yIHRoZSA6Y29uc3Q6YFNJR1NFR1ZgLCA6Y29uc3Q6YFNJR0ZQRWAsCis6Y29uc3Q6YFNJR0FCUlRgLCA6Y29uc3Q6YFNJR0JVU2AsIGFuZCA6Y29uc3Q6YFNJR0lMTGAgc2lnbmFscy4gWW91IGNhbiBhbHNvCitlbmFibGUgdGhlbSBhdCBzdGFydHVwIGJ5IHNldHRpbmcgdGhlIDplbnZ2YXI6YFBZVEhPTkZBVUxUSEFORExFUmAgZW52aXJvbm1lbnQKK3ZhcmlhYmxlIG9yIGJ5IHVzaW5nIDpvcHRpb246YC1YYCBgYGZhdWx0aGFuZGxlcmBgIGNvbW1hbmQgbGluZSBvcHRpb24uCisKK1RoZSBmYXVsdCBoYW5kbGVyIGlzIGNvbXBhdGlibGUgd2l0aCBzeXN0ZW0gZmF1bHQgaGFuZGxlcnMgbGlrZSBBcHBvcnQgb3IgdGhlCitXaW5kb3dzIGZhdWx0IGhhbmRsZXIuIFRoZSBtb2R1bGUgdXNlcyBhbiBhbHRlcm5hdGl2ZSBzdGFjayBmb3Igc2lnbmFsIGhhbmRsZXJzCitpZiB0aGUgOmM6ZnVuYzpgc2lnYWx0c3RhY2tgIGZ1bmN0aW9uIGlzIGF2YWlsYWJsZS4gVGhpcyBhbGxvd3MgaXQgdG8gZHVtcCB0aGUKK3RyYWNlYmFjayBldmVuIG9uIGEgc3RhY2sgb3ZlcmZsb3cuCisKK1RoZSBmYXVsdCBoYW5kbGVyIGlzIGNhbGxlZCBvbiBjYXRhc3Ryb3BoaWMgY2FzZXMgYW5kIHRoZXJlZm9yZSBjYW4gb25seSB1c2UKK3NpZ25hbC1zYWZlIGZ1bmN0aW9ucyAoZS5nLiBpdCBjYW5ub3QgYWxsb2NhdGUgbWVtb3J5IG9uIHRoZSBoZWFwKS4gQmVjYXVzZSBvZgordGhpcyBsaW1pdGF0aW9uIHRyYWNlYmFjayBkdW1waW5nIGlzIG1pbmltYWwgY29tcGFyZWQgdG8gbm9ybWFsIFB5dGhvbgordHJhY2ViYWNrczoKKworKiBPbmx5IEFTQ0lJIGlzIHN1cHBvcnRlZC4gVGhlIGBgYmFja3NsYXNocmVwbGFjZWBgIGVycm9yIGhhbmRsZXIgaXMgdXNlZCBvbgorICBlbmNvZGluZy4KKyogRWFjaCBzdHJpbmcgaXMgbGltaXRlZCB0byAxMDAgY2hhcmFjdGVycy4KKyogT25seSB0aGUgZmlsZW5hbWUsIHRoZSBmdW5jdGlvbiBuYW1lIGFuZCB0aGUgbGluZSBudW1iZXIgYXJlCisgIGRpc3BsYXllZC4gKG5vIHNvdXJjZSBjb2RlKQorKiBJdCBpcyBsaW1pdGVkIHRvIDEwMCBmcmFtZXMgYW5kIDEwMCB0aHJlYWRzLgorCitCeSBkZWZhdWx0LCB0aGUgUHl0aG9uIHRyYWNlYmFjayBpcyB3cml0dGVuIHRvIDpkYXRhOmBzeXMuc3RkZXJyYC4gVG8gc2VlCit0cmFjZWJhY2tzLCBhcHBsaWNhdGlvbnMgbXVzdCBiZSBydW4gaW4gdGhlIHRlcm1pbmFsLiBBIGxvZyBmaWxlIGNhbgorYWx0ZXJuYXRpdmVseSBiZSBwYXNzZWQgdG8gOmZ1bmM6YGZhdWx0aGFuZGxlci5lbmFibGVgLgorCitUaGUgbW9kdWxlIGlzIGltcGxlbWVudGVkIGluIEMsIHNvIHRyYWNlYmFja3MgY2FuIGJlIGR1bXBlZCBvbiBhIGNyYXNoIG9yIHdoZW4KK1B5dGhvbiBpcyBkZWFkbG9ja2VkLgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCitEdW1wIHRoZSB0cmFjZWJhY2sKKy0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBmdW5jdGlvbjo6IGR1bXBfdHJhY2ViYWNrKGZpbGU9c3lzLnN0ZGVyciwgYWxsX3RocmVhZHM9VHJ1ZSkKKworICAgRHVtcCB0aGUgdHJhY2ViYWNrcyBvZiBhbGwgdGhyZWFkcyBpbnRvICpmaWxlKi4gSWYgKmFsbF90aHJlYWRzKiBpcworICAgYGBGYWxzZWBgLCBkdW1wIG9ubHkgdGhlIGN1cnJlbnQgdGhyZWFkLgorCisKK0ZhdWx0IGhhbmRsZXIgc3RhdGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gZnVuY3Rpb246OiBlbmFibGUoZmlsZT1zeXMuc3RkZXJyLCBhbGxfdGhyZWFkcz1UcnVlKQorCisgICBFbmFibGUgdGhlIGZhdWx0IGhhbmRsZXI6IGluc3RhbGwgaGFuZGxlcnMgZm9yIHRoZSA6Y29uc3Q6YFNJR1NFR1ZgLAorICAgOmNvbnN0OmBTSUdGUEVgLCA6Y29uc3Q6YFNJR0FCUlRgLCA6Y29uc3Q6YFNJR0JVU2AgYW5kIDpjb25zdDpgU0lHSUxMYAorICAgc2lnbmFscyB0byBkdW1wIHRoZSBQeXRob24gdHJhY2ViYWNrLiBJZiAqYWxsX3RocmVhZHMqIGlzIGBgVHJ1ZWBgLAorICAgcHJvZHVjZSB0cmFjZWJhY2tzIGZvciBldmVyeSBydW5uaW5nIHRocmVhZC4gT3RoZXJ3aXNlLCBkdW1wIG9ubHkgdGhlIGN1cnJlbnQKKyAgIHRocmVhZC4KKworLi4gZnVuY3Rpb246OiBkaXNhYmxlKCkKKworICAgRGlzYWJsZSB0aGUgZmF1bHQgaGFuZGxlcjogdW5pbnN0YWxsIHRoZSBzaWduYWwgaGFuZGxlcnMgaW5zdGFsbGVkIGJ5CisgICA6ZnVuYzpgZW5hYmxlYC4KKworLi4gZnVuY3Rpb246OiBpc19lbmFibGVkKCkKKworICAgQ2hlY2sgaWYgdGhlIGZhdWx0IGhhbmRsZXIgaXMgZW5hYmxlZC4KKworCitEdW1wIHRoZSB0cmFjZWJhY2tzIGFmdGVyIGEgdGltZW91dAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gZnVuY3Rpb246OiBkdW1wX3RyYWNlYmFja3NfbGF0ZXIodGltZW91dCwgcmVwZWF0PUZhbHNlLCBmaWxlPXN5cy5zdGRlcnIsIGV4aXQ9RmFsc2UpCisKKyAgIER1bXAgdGhlIHRyYWNlYmFja3Mgb2YgYWxsIHRocmVhZHMsIGFmdGVyIGEgdGltZW91dCBvZiAqdGltZW91dCogc2Vjb25kcywgb3IKKyAgIGV2ZXJ5ICp0aW1lb3V0KiBzZWNvbmRzIGlmICpyZXBlYXQqIGlzIGBgVHJ1ZWBgLiAgSWYgKmV4aXQqIGlzIGBgVHJ1ZWBgLCBjYWxsCisgICA6YzpmdW5jOmBfZXhpdGAgd2l0aCBzdGF0dXM9MSBhZnRlciBkdW1waW5nIHRoZSB0cmFjZWJhY2tzLiAgKE5vdGUKKyAgIDpjOmZ1bmM6YF9leGl0YCBleGl0cyB0aGUgcHJvY2VzcyBpbW1lZGlhdGVseSwgd2hpY2ggbWVhbnMgaXQgZG9lc24ndCBkbyBhbnkKKyAgIGNsZWFudXAgbGlrZSBmbHVzaGluZyBmaWxlIGJ1ZmZlcnMuKSBJZiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkIHR3aWNlLCB0aGUgbmV3CisgICBjYWxsIHJlcGxhY2VzIHByZXZpb3VzIHBhcmFtZXRlcnMgYW5kIHJlc2V0cyB0aGUgdGltZW91dC4gVGhlIHRpbWVyIGhhcyBhCisgICBzdWItc2Vjb25kIHJlc29sdXRpb24uCisKKyAgIFRoaXMgZnVuY3Rpb24gaXMgaW1wbGVtZW50ZWQgdXNpbmcgYSB3YXRjaGRvZyB0aHJlYWQgYW5kIHRoZXJlZm9yZSBpcyBub3QKKyAgIGF2YWlsYWJsZSBpZiBQeXRob24gaXMgY29tcGlsZWQgd2l0aCB0aHJlYWRzIGRpc2FibGVkLgorCisuLiBmdW5jdGlvbjo6IGNhbmNlbF9kdW1wX3RyYWNlYmFja3NfbGF0ZXIoKQorCisgICBDYW5jZWwgdGhlIGxhc3QgY2FsbCB0byA6ZnVuYzpgZHVtcF90cmFjZWJhY2tzX2xhdGVyYC4KKworCitEdW1wIHRoZSB0cmFjZWJhY2sgb24gYSB1c2VyIHNpZ25hbAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gZnVuY3Rpb246OiByZWdpc3RlcihzaWdudW0sIGZpbGU9c3lzLnN0ZGVyciwgYWxsX3RocmVhZHM9VHJ1ZSwgY2hhaW49RmFsc2UpCisKKyAgIFJlZ2lzdGVyIGEgdXNlciBzaWduYWw6IGluc3RhbGwgYSBoYW5kbGVyIGZvciB0aGUgKnNpZ251bSogc2lnbmFsIHRvIGR1bXAKKyAgIHRoZSB0cmFjZWJhY2sgb2YgYWxsIHRocmVhZHMsIG9yIG9mIHRoZSBjdXJyZW50IHRocmVhZCBpZiAqYWxsX3RocmVhZHMqIGlzCisgICBgYEZhbHNlYGAsIGludG8gKmZpbGUqLiBDYWxsIHRoZSBwcmV2aW91cyBoYW5kbGVyIGlmIGNoYWluIGlzIGBgVHJ1ZWBgLgorCisgICBOb3QgYXZhaWxhYmxlIG9uIFdpbmRvd3MuCisKKy4uIGZ1bmN0aW9uOjogdW5yZWdpc3RlcihzaWdudW0pCisKKyAgIFVucmVnaXN0ZXIgYSB1c2VyIHNpZ25hbDogdW5pbnN0YWxsIHRoZSBoYW5kbGVyIG9mIHRoZSAqc2lnbnVtKiBzaWduYWwKKyAgIGluc3RhbGxlZCBieSA6ZnVuYzpgcmVnaXN0ZXJgLiBSZXR1cm4gYGBUcnVlYGAgaWYgdGhlIHNpZ25hbCB3YXMgcmVnaXN0ZXJlZCwKKyAgIGBgRmFsc2VgYCBvdGhlcndpc2UuCisKKyAgIE5vdCBhdmFpbGFibGUgb24gV2luZG93cy4KKworCitGaWxlIGRlc2NyaXB0b3IgaXNzdWUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCis6ZnVuYzpgZW5hYmxlYCwgOmZ1bmM6YGR1bXBfdHJhY2ViYWNrc19sYXRlcmAgYW5kIDpmdW5jOmByZWdpc3RlcmAga2VlcCB0aGUKK2ZpbGUgZGVzY3JpcHRvciBvZiB0aGVpciAqZmlsZSogYXJndW1lbnQuIElmIHRoZSBmaWxlIGlzIGNsb3NlZCBhbmQgaXRzIGZpbGUKK2Rlc2NyaXB0b3IgaXMgcmV1c2VkIGJ5IGEgbmV3IGZpbGUsIG9yIGlmIDpmdW5jOmBvcy5kdXAyYCBpcyB1c2VkIHRvIHJlcGxhY2UKK3RoZSBmaWxlIGRlc2NyaXB0b3IsIHRoZSB0cmFjZWJhY2sgd2lsbCBiZSB3cml0dGVuIGludG8gYSBkaWZmZXJlbnQgZmlsZS4gQ2FsbAordGhlc2UgZnVuY3Rpb25zIGFnYWluIGVhY2ggdGltZSB0aGF0IHRoZSBmaWxlIGlzIHJlcGxhY2VkLgorCisKK0V4YW1wbGUKKy0tLS0tLS0KKworRXhhbXBsZSBvZiBhIHNlZ21lbnRhdGlvbiBmYXVsdCBvbiBMaW51eDogOjoKKworICAgICQgcHl0aG9uIC1xIC1YIGZhdWx0aGFuZGxlcgorICAgID4+PiBpbXBvcnQgY3R5cGVzCisgICAgPj4+IGN0eXBlcy5zdHJpbmdfYXQoMCkKKyAgICBGYXRhbCBQeXRob24gZXJyb3I6IFNlZ21lbnRhdGlvbiBmYXVsdAorCisgICAgQ3VycmVudCB0aHJlYWQgMHgwMDAwN2ZiODk5ZjM5NzAwOgorICAgICAgRmlsZSAiL2hvbWUvcHl0aG9uL2NweXRob24vTGliL2N0eXBlcy9fX2luaXRfXy5weSIsIGxpbmUgNDg2IGluIHN0cmluZ19hdAorICAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSBpbiA8bW9kdWxlPgorICAgIFNlZ21lbnRhdGlvbiBmYXVsdAorCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9mY250bC5yc3QgYi9Eb2MvbGlicmFyeS9mY250bC5yc3QKaW5kZXggNjE5MjQwMC4uOWE5Y2RjMSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZmNudGwucnN0CisrKyBiL0RvYy9saWJyYXJ5L2ZjbnRsLnJzdApAQCAtMTksNiArMTksMTEgQEAKIGBgc3lzLnN0ZGluLmZpbGVubygpYGAsIG9yIGEgOmNsYXNzOmBpby5JT0Jhc2VgIG9iamVjdCwgc3VjaCBhcyBgYHN5cy5zdGRpbmBgCiBpdHNlbGYsIHdoaWNoIHByb3ZpZGVzIGEgOm1ldGg6YGZpbGVub2AgdGhhdCByZXR1cm5zIGEgZ2VudWluZSBmaWxlIGRlc2NyaXB0b3IuCiAKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBPcGVyYXRpb25zIGluIHRoaXMgbW9kdWxlIHVzZWQgdG8gcmFpc2UgYSA6ZXhjOmBJT0Vycm9yYCB3aGVyZSB0aGV5IG5vdworICAgcmFpc2UgYSA6ZXhjOmBPU0Vycm9yYC4KKworCiBUaGUgbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM6CiAKIApAQCAtNDAsNyArNDUsNyBAQAogICAgbGFyZ2VyIHRoYW4gMTAyNCBieXRlcywgdGhpcyBpcyBtb3N0IGxpa2VseSB0byByZXN1bHQgaW4gYSBzZWdtZW50YXRpb24KICAgIHZpb2xhdGlvbiBvciBhIG1vcmUgc3VidGxlIGRhdGEgY29ycnVwdGlvbi4KIAotICAgSWYgdGhlIDpjOmZ1bmM6YGZjbnRsYCBmYWlscywgYW4gOmV4YzpgSU9FcnJvcmAgaXMgcmFpc2VkLgorICAgSWYgdGhlIDpjOmZ1bmM6YGZjbnRsYCBmYWlscywgYW4gOmV4YzpgT1NFcnJvcmAgaXMgcmFpc2VkLgogCiAKIC4uIGZ1bmN0aW9uOjogaW9jdGwoZmQsIG9wWywgYXJnWywgbXV0YXRlX2ZsYWddXSkKQEAgLTEwNyw3ICsxMTIsNyBAQAogICAgV2hlbiAqb3BlcmF0aW9uKiBpcyA6Y29uc3Q6YExPQ0tfU0hgIG9yIDpjb25zdDpgTE9DS19FWGAsIGl0IGNhbiBhbHNvIGJlCiAgICBiaXR3aXNlIE9SZWQgd2l0aCA6Y29uc3Q6YExPQ0tfTkJgIHRvIGF2b2lkIGJsb2NraW5nIG9uIGxvY2sgYWNxdWlzaXRpb24uCiAgICBJZiA6Y29uc3Q6YExPQ0tfTkJgIGlzIHVzZWQgYW5kIHRoZSBsb2NrIGNhbm5vdCBiZSBhY3F1aXJlZCwgYW4KLSAgIDpleGM6YElPRXJyb3JgIHdpbGwgYmUgcmFpc2VkIGFuZCB0aGUgZXhjZXB0aW9uIHdpbGwgaGF2ZSBhbiAqZXJybm8qCisgICA6ZXhjOmBPU0Vycm9yYCB3aWxsIGJlIHJhaXNlZCBhbmQgdGhlIGV4Y2VwdGlvbiB3aWxsIGhhdmUgYW4gKmVycm5vKgogICAgYXR0cmlidXRlIHNldCB0byA6Y29uc3Q6YEVBQ0NFU2Agb3IgOmNvbnN0OmBFQUdBSU5gIChkZXBlbmRpbmcgb24gdGhlCiAgICBvcGVyYXRpbmcgc3lzdGVtOyBmb3IgcG9ydGFiaWxpdHksIGNoZWNrIGZvciBib3RoIHZhbHVlcykuICBPbiBhdCBsZWFzdCBzb21lCiAgICBzeXN0ZW1zLCA6Y29uc3Q6YExPQ0tfRVhgIGNhbiBvbmx5IGJlIHVzZWQgaWYgdGhlIGZpbGUgZGVzY3JpcHRvciByZWZlcnMgdG8gYQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvZmlsZWlucHV0LnJzdCBiL0RvYy9saWJyYXJ5L2ZpbGVpbnB1dC5yc3QKaW5kZXggYWM0NDMxMS4uZjhlYzQzNiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZmlsZWlucHV0LnJzdAorKysgYi9Eb2MvbGlicmFyeS9maWxlaW5wdXQucnN0CkBAIC0yOCw3ICsyOCwxMCBAQAogQWxsIGZpbGVzIGFyZSBvcGVuZWQgaW4gdGV4dCBtb2RlIGJ5IGRlZmF1bHQsIGJ1dCB5b3UgY2FuIG92ZXJyaWRlIHRoaXMgYnkKIHNwZWNpZnlpbmcgdGhlICptb2RlKiBwYXJhbWV0ZXIgaW4gdGhlIGNhbGwgdG8gOmZ1bmM6YC5pbnB1dGAgb3IKIDpjbGFzczpgRmlsZUlucHV0YC4gIElmIGFuIEkvTyBlcnJvciBvY2N1cnMgZHVyaW5nIG9wZW5pbmcgb3IgcmVhZGluZyBhIGZpbGUsCi06ZXhjOmBJT0Vycm9yYCBpcyByYWlzZWQuCis6ZXhjOmBPU0Vycm9yYCBpcyByYWlzZWQuCisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICA6ZXhjOmBJT0Vycm9yYCB1c2VkIHRvIGJlIHJhaXNlZDsgaXQgaXMgbm93IGFuIGFsaWFzIG9mIDpleGM6YE9TRXJyb3JgLgogCiBJZiBgYHN5cy5zdGRpbmBgIGlzIHVzZWQgbW9yZSB0aGFuIG9uY2UsIHRoZSBzZWNvbmQgYW5kIGZ1cnRoZXIgdXNlIHdpbGwgcmV0dXJuCiBubyBsaW5lcywgZXhjZXB0IHBlcmhhcHMgZm9yIGludGVyYWN0aXZlIHVzZSwgb3IgaWYgaXQgaGFzIGJlZW4gZXhwbGljaXRseSByZXNldApAQCAtMTY4LDEwICsxNzEsNiBAQAogaXQgaXMgZGVsZXRlZCB3aGVuIHRoZSBvdXRwdXQgZmlsZSBpcyBjbG9zZWQuICBJbi1wbGFjZSBmaWx0ZXJpbmcgaXMgZGlzYWJsZWQKIHdoZW4gc3RhbmRhcmQgaW5wdXQgaXMgcmVhZC4KIAotLi4gbm90ZTo6Ci0KLSAgIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXMgbm90IHdvcmsgZm9yIE1TLURPUyA4KzMgZmlsZXN5c3RlbXMuCi0KIAogVGhlIHR3byBmb2xsb3dpbmcgb3BlbmluZyBob29rcyBhcmUgcHJvdmlkZWQgYnkgdGhpcyBtb2R1bGU6CiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2Z0cGxpYi5yc3QgYi9Eb2MvbGlicmFyeS9mdHBsaWIucnN0CmluZGV4IDViYmVmNGYuLjNjYzI5NWEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2Z0cGxpYi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZnRwbGliLnJzdApAQCAtNDAsNyArNDAsNyBAQAogCiBUaGUgbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBpdGVtczoKIAotLi4gY2xhc3M6OiBGVFAoaG9zdD0nJywgdXNlcj0nJywgcGFzc3dkPScnLCBhY2N0PScnWywgdGltZW91dF0pCisuLiBjbGFzczo6IEZUUChob3N0PScnLCB1c2VyPScnLCBwYXNzd2Q9JycsIGFjY3Q9JycsIHRpbWVvdXQ9Tm9uZSwgc291cmNlX2FkZHJlc3M9Tm9uZSkKIAogICAgUmV0dXJuIGEgbmV3IGluc3RhbmNlIG9mIHRoZSA6Y2xhc3M6YEZUUGAgY2xhc3MuICBXaGVuICpob3N0KiBpcyBnaXZlbiwgdGhlCiAgICBtZXRob2QgY2FsbCBgYGNvbm5lY3QoaG9zdClgYCBpcyBtYWRlLiAgV2hlbiAqdXNlciogaXMgZ2l2ZW4sIGFkZGl0aW9uYWxseQpAQCAtNDgsNyArNDgsOCBAQAogICAgKmFjY3QqIGRlZmF1bHQgdG8gdGhlIGVtcHR5IHN0cmluZyB3aGVuIG5vdCBnaXZlbikuICBUaGUgb3B0aW9uYWwgKnRpbWVvdXQqCiAgICBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgdGltZW91dCBpbiBzZWNvbmRzIGZvciBibG9ja2luZyBvcGVyYXRpb25zIGxpa2UgdGhlCiAgICBjb25uZWN0aW9uIGF0dGVtcHQgKGlmIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBnbG9iYWwgZGVmYXVsdCB0aW1lb3V0IHNldHRpbmcKLSAgIHdpbGwgYmUgdXNlZCkuCisgICB3aWxsIGJlIHVzZWQpLiAqc291cmNlX2FkZHJlc3MqIGlzIGEgMi10dXBsZSBgYChob3N0LCBwb3J0KWBgIGZvciB0aGUgc29ja2V0CisgICB0byBiaW5kIHRvIGFzIGl0cyBzb3VyY2UgYWRkcmVzcyBiZWZvcmUgY29ubmVjdGluZy4KIAogICAgOmNsYXNzOmBGVFBgIGNsYXNzIHN1cHBvcnRzIHRoZSA6a2V5d29yZDpgd2l0aGAgc3RhdGVtZW50LiBIZXJlIGlzIGEgc2FtcGxlCiAgICBvbiBob3cgdXNpbmcgaXQ6CkBAIC02OCw4ICs2OSwxMSBAQAogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKICAgICAgIFN1cHBvcnQgZm9yIHRoZSA6a2V5d29yZDpgd2l0aGAgc3RhdGVtZW50IHdhcyBhZGRlZC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICpzb3VyY2VfYWRkcmVzcyogcGFyYW1ldGVyIHdhcyBhZGRlZC4KIAotLi4gY2xhc3M6OiBGVFBfVExTKGhvc3Q9JycsIHVzZXI9JycsIHBhc3N3ZD0nJywgYWNjdD0nJywgW2tleWZpbGVbLCBjZXJ0ZmlsZVssIGNvbnRleHRbLCB0aW1lb3V0XV1dXSkKKworLi4gY2xhc3M6OiBGVFBfVExTKGhvc3Q9JycsIHVzZXI9JycsIHBhc3N3ZD0nJywgYWNjdD0nJywga2V5ZmlsZT1Ob25lLCBjZXJ0ZmlsZT1Ob25lLCBjb250ZXh0PU5vbmUsIHRpbWVvdXQ9Tm9uZSwgc291cmNlX2FkZHJlc3M9Tm9uZSkKIAogICAgQSA6Y2xhc3M6YEZUUGAgc3ViY2xhc3Mgd2hpY2ggYWRkcyBUTFMgc3VwcG9ydCB0byBGVFAgYXMgZGVzY3JpYmVkIGluCiAgICA6cmZjOmA0MjE3YC4KQEAgLTgwLDEwICs4NCwxNSBAQAogICAgcHJpdmF0ZSBrZXkgYW5kIGNlcnRpZmljYXRlIGNoYWluIGZpbGUgbmFtZSBmb3IgdGhlIFNTTCBjb25uZWN0aW9uLgogICAgKmNvbnRleHQqIHBhcmFtZXRlciBpcyBhIDpjbGFzczpgc3NsLlNTTENvbnRleHRgIG9iamVjdCB3aGljaCBhbGxvd3MKICAgIGJ1bmRsaW5nIFNTTCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGNlcnRpZmljYXRlcyBhbmQgcHJpdmF0ZSBrZXlzIGludG8gYQotICAgc2luZ2xlIChwb3RlbnRpYWxseSBsb25nLWxpdmVkKSBzdHJ1Y3R1cmUuCisgICBzaW5nbGUgKHBvdGVudGlhbGx5IGxvbmctbGl2ZWQpIHN0cnVjdHVyZS4gKnNvdXJjZV9hZGRyZXNzKiBpcyBhIDItdHVwbGUKKyAgIGBgKGhvc3QsIHBvcnQpYGAgZm9yIHRoZSBzb2NrZXQgdG8gYmluZCB0byBhcyBpdHMgc291cmNlIGFkZHJlc3MgYmVmb3JlCisgICBjb25uZWN0aW5nLgogCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICpzb3VyY2VfYWRkcmVzcyogcGFyYW1ldGVyIHdhcyBhZGRlZC4KKwogICAgSGVyZSdzIGEgc2FtcGxlIHNlc3Npb24gdXNpbmcgdGhlIDpjbGFzczpgRlRQX1RMU2AgY2xhc3M6CiAKICAgID4+PiBmcm9tIGZ0cGxpYiBpbXBvcnQgRlRQX1RMUwpAQCAtMTM1LDggKzE0NCw3IEBACiAgICBUaGUgc2V0IG9mIGFsbCBleGNlcHRpb25zIChhcyBhIHR1cGxlKSB0aGF0IG1ldGhvZHMgb2YgOmNsYXNzOmBGVFBgCiAgICBpbnN0YW5jZXMgbWF5IHJhaXNlIGFzIGEgcmVzdWx0IG9mIHByb2JsZW1zIHdpdGggdGhlIEZUUCBjb25uZWN0aW9uIChhcwogICAgb3Bwb3NlZCB0byBwcm9ncmFtbWluZyBlcnJvcnMgbWFkZSBieSB0aGUgY2FsbGVyKS4gIFRoaXMgc2V0IGluY2x1ZGVzIHRoZQotICAgZm91ciBleGNlcHRpb25zIGxpc3RlZCBhYm92ZSBhcyB3ZWxsIGFzIDpleGM6YHNvY2tldC5lcnJvcmAgYW5kCi0gICA6ZXhjOmBJT0Vycm9yYC4KKyAgIGZvdXIgZXhjZXB0aW9ucyBsaXN0ZWQgYWJvdmUgYXMgd2VsbCBhcyA6ZXhjOmBPU0Vycm9yYC4KIAogCiAuLiBzZWVhbHNvOjoKQEAgLTE3NCw3ICsxODIsNyBAQAogICAgZGVidWdnaW5nIG91dHB1dCwgbG9nZ2luZyBlYWNoIGxpbmUgc2VudCBhbmQgcmVjZWl2ZWQgb24gdGhlIGNvbnRyb2wgY29ubmVjdGlvbi4KIAogCi0uLiBtZXRob2Q6OiBGVFAuY29ubmVjdChob3N0PScnLCBwb3J0PTBbLCB0aW1lb3V0XSkKKy4uIG1ldGhvZDo6IEZUUC5jb25uZWN0KGhvc3Q9JycsIHBvcnQ9MCwgdGltZW91dD1Ob25lLCBzb3VyY2VfYWRkcmVzcz1Ob25lKQogCiAgICBDb25uZWN0IHRvIHRoZSBnaXZlbiBob3N0IGFuZCBwb3J0LiAgVGhlIGRlZmF1bHQgcG9ydCBudW1iZXIgaXMgYGAyMWBgLCBhcwogICAgc3BlY2lmaWVkIGJ5IHRoZSBGVFAgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbi4gIEl0IGlzIHJhcmVseSBuZWVkZWQgdG8gc3BlY2lmeSBhCkBAIC0xODIsMTAgKzE5MCwxNCBAQAogICAgaW5zdGFuY2U7IGl0IHNob3VsZCBub3QgYmUgY2FsbGVkIGF0IGFsbCBpZiBhIGhvc3Qgd2FzIGdpdmVuIHdoZW4gdGhlIGluc3RhbmNlCiAgICB3YXMgY3JlYXRlZC4gIEFsbCBvdGhlciBtZXRob2RzIGNhbiBvbmx5IGJlIHVzZWQgYWZ0ZXIgYSBjb25uZWN0aW9uIGhhcyBiZWVuCiAgICBtYWRlLgotCiAgICBUaGUgb3B0aW9uYWwgKnRpbWVvdXQqIHBhcmFtZXRlciBzcGVjaWZpZXMgYSB0aW1lb3V0IGluIHNlY29uZHMgZm9yIHRoZQogICAgY29ubmVjdGlvbiBhdHRlbXB0LiBJZiBubyAqdGltZW91dCogaXMgcGFzc2VkLCB0aGUgZ2xvYmFsIGRlZmF1bHQgdGltZW91dAogICAgc2V0dGluZyB3aWxsIGJlIHVzZWQuCisgICAqc291cmNlX2FkZHJlc3MqIGlzIGEgMi10dXBsZSBgYChob3N0LCBwb3J0KWBgIGZvciB0aGUgc29ja2V0IHRvIGJpbmQgdG8gYXMKKyAgIGl0cyBzb3VyY2UgYWRkcmVzcyBiZWZvcmUgY29ubmVjdGluZy4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICpzb3VyY2VfYWRkcmVzcyogcGFyYW1ldGVyIHdhcyBhZGRlZC4KIAogCiAuLiBtZXRob2Q6OiBGVFAuZ2V0d2VsY29tZSgpCkBAIC0yNDEsMTMgKzI1MywxMiBAQAogCiAgICBSZXRyaWV2ZSBhIGZpbGUgb3IgZGlyZWN0b3J5IGxpc3RpbmcgaW4gQVNDSUkgdHJhbnNmZXIgbW9kZS4gICpjbWQqIHNob3VsZCBiZQogICAgYW4gYXBwcm9wcmlhdGUgYGBSRVRSYGAgY29tbWFuZCAoc2VlIDptZXRoOmByZXRyYmluYXJ5YCkgb3IgYSBjb21tYW5kIHN1Y2ggYXMKLSAgIGBgTElTVGBgLCBgYE5MU1RgYCBvciBgYE1MU0RgYCAodXN1YWxseSBqdXN0IHRoZSBzdHJpbmcgYGAnTElTVCdgYCkuCisgICBgYExJU1RgYCBvciBgYE5MU1RgYCAodXN1YWxseSBqdXN0IHRoZSBzdHJpbmcgYGAnTElTVCdgYCkuCiAgICBgYExJU1RgYCByZXRyaWV2ZXMgYSBsaXN0IG9mIGZpbGVzIGFuZCBpbmZvcm1hdGlvbiBhYm91dCB0aG9zZSBmaWxlcy4KLSAgIGBgTkxTVGBgIHJldHJpZXZlcyBhIGxpc3Qgb2YgZmlsZSBuYW1lcy4gIE9uIHNvbWUgc2VydmVycywgYGBNTFNEYGAgcmV0cmlldmVzCi0gICBhIG1hY2hpbmUgcmVhZGFibGUgbGlzdCBvZiBmaWxlcyBhbmQgaW5mb3JtYXRpb24gYWJvdXQgdGhvc2UgZmlsZXMuICBUaGUKLSAgICpjYWxsYmFjayogZnVuY3Rpb24gaXMgY2FsbGVkIGZvciBlYWNoIGxpbmUgd2l0aCBhIHN0cmluZyBhcmd1bWVudCBjb250YWluaW5nCi0gICB0aGUgbGluZSB3aXRoIHRoZSB0cmFpbGluZyBDUkxGIHN0cmlwcGVkLiAgVGhlIGRlZmF1bHQgKmNhbGxiYWNrKiBwcmludHMgdGhlCi0gICBsaW5lIHRvIGBgc3lzLnN0ZG91dGBgLgorICAgYGBOTFNUYGAgcmV0cmlldmVzIGEgbGlzdCBvZiBmaWxlIG5hbWVzLgorICAgVGhlICpjYWxsYmFjayogZnVuY3Rpb24gaXMgY2FsbGVkIGZvciBlYWNoIGxpbmUgd2l0aCBhIHN0cmluZyBhcmd1bWVudAorICAgY29udGFpbmluZyB0aGUgbGluZSB3aXRoIHRoZSB0cmFpbGluZyBDUkxGIHN0cmlwcGVkLiAgVGhlIGRlZmF1bHQgKmNhbGxiYWNrKgorICAgcHJpbnRzIHRoZSBsaW5lIHRvIGBgc3lzLnN0ZG91dGBgLgogCiAKIC4uIG1ldGhvZDo6IEZUUC5zZXRfcGFzdihib29sZWFuKQpAQCAtMzA3LDYgKzMxOCwyMCBAQAogICAgaW4gOm1ldGg6YHRyYW5zZmVyY21kYC4KIAogCisuLiBtZXRob2Q6OiBGVFAubWxzZChwYXRoPSIiLCBmYWN0cz1bXSkKKworICAgTGlzdCBhIGRpcmVjdG9yeSBpbiBhIHN0YW5kYXJkaXplZCBmb3JtYXQgYnkgdXNpbmcgTUxTRCBjb21tYW5kCisgICAoOnJmYzpgMzY1OWApLiAgSWYgKnBhdGgqIGlzIG9taXR0ZWQgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGlzIGFzc3VtZWQuCisgICAqZmFjdHMqIGlzIGEgbGlzdCBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgdHlwZSBvZiBpbmZvcm1hdGlvbiBkZXNpcmVkCisgICAoZS5nLiBgYFsidHlwZSIsICJzaXplIiwgInBlcm0iXWBgKS4gIFJldHVybiBhIGdlbmVyYXRvciBvYmplY3QgeWllbGRpbmcgYQorICAgdHVwbGUgb2YgdHdvIGVsZW1lbnRzIGZvciBldmVyeSBmaWxlIGZvdW5kIGluIHBhdGguICBGaXJzdCBlbGVtZW50IGlzIHRoZQorICAgZmlsZSBuYW1lLCB0aGUgc2Vjb25kIG9uZSBpcyBhIGRpY3Rpb25hcnkgY29udGFpbmluZyBmYWN0cyBhYm91dCB0aGUgZmlsZQorICAgbmFtZS4gIENvbnRlbnQgb2YgdGhpcyBkaWN0aW9uYXJ5IG1pZ2h0IGJlIGxpbWl0ZWQgYnkgdGhlICpmYWN0cyogYXJndW1lbnQKKyAgIGJ1dCBzZXJ2ZXIgaXMgbm90IGd1YXJhbnRlZWQgdG8gcmV0dXJuIGFsbCByZXF1ZXN0ZWQgZmFjdHMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIG1ldGhvZDo6IEZUUC5ubHN0KGFyZ3VtZW50WywgLi4uXSkKIAogICAgUmV0dXJuIGEgbGlzdCBvZiBmaWxlIG5hbWVzIGFzIHJldHVybmVkIGJ5IHRoZSBgYE5MU1RgYCBjb21tYW5kLiAgVGhlCkBAIC0zMTQsNiArMzM5LDggQEAKICAgIGRpcmVjdG9yeSkuICBNdWx0aXBsZSBhcmd1bWVudHMgY2FuIGJlIHVzZWQgdG8gcGFzcyBub24tc3RhbmRhcmQgb3B0aW9ucyB0bwogICAgdGhlIGBgTkxTVGBgIGNvbW1hbmQuCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMgdXNlIDptZXRoOmBtbHNkYCBpbnN0ZWFkLgorCiAKIC4uIG1ldGhvZDo6IEZUUC5kaXIoYXJndW1lbnRbLCAuLi5dKQogCkBAIC0zMjQsNiArMzUxLDggQEAKICAgIGFzIGEgKmNhbGxiYWNrKiBmdW5jdGlvbiBhcyBmb3IgOm1ldGg6YHJldHJsaW5lc2A7IHRoZSBkZWZhdWx0IHByaW50cyB0bwogICAgYGBzeXMuc3Rkb3V0YGAuICBUaGlzIG1ldGhvZCByZXR1cm5zIGBgTm9uZWBgLgogCisgICAuLiBkZXByZWNhdGVkOjogMy4zIHVzZSA6bWV0aDpgbWxzZGAgaW5zdGVhZC4KKwogCiAuLiBtZXRob2Q6OiBGVFAucmVuYW1lKGZyb21uYW1lLCB0b25hbWUpCiAKQEAgLTM5Niw2ICs0MjUsMTQgQEAKIAogICAgU2V0IHVwIHNlY3VyZSBjb250cm9sIGNvbm5lY3Rpb24gYnkgdXNpbmcgVExTIG9yIFNTTCwgZGVwZW5kaW5nIG9uIHdoYXQgc3BlY2lmaWVkIGluIDptZXRoOmBzc2xfdmVyc2lvbmAgYXR0cmlidXRlLgogCisuLiBtZXRob2Q6OiBGVFBfVExTLmNjYygpCisKKyAgIFJldmVydCBjb250cm9sIGNoYW5uZWwgYmFjayB0byBwbGFpbnRleHQuICBUaGlzIGNhbiBiZSB1c2VmdWwgdG8gdGFrZQorICAgYWR2YW50YWdlIG9mIGZpcmV3YWxscyB0aGF0IGtub3cgaG93IHRvIGhhbmRsZSBOQVQgd2l0aCBub24tc2VjdXJlIEZUUAorICAgd2l0aG91dCBvcGVuaW5nIGZpeGVkIHBvcnRzLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogLi4gbWV0aG9kOjogRlRQX1RMUy5wcm90X3AoKQogCiAgICBTZXQgdXAgc2VjdXJlIGRhdGEgY29ubmVjdGlvbi4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2Z1bmN0aW9ucy5yc3QgYi9Eb2MvbGlicmFyeS9mdW5jdGlvbnMucnN0CmluZGV4IGI2MjUyZTYuLjFjYmUzNGEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2Z1bmN0aW9ucy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZnVuY3Rpb25zLnJzdApAQCAtMTUyLDEwICsxNTIsNiBAQAogICAgMSwxMTQsMTExICgweDEwRkZGRiBpbiBiYXNlIDE2KS4gIDpleGM6YFZhbHVlRXJyb3JgIHdpbGwgYmUgcmFpc2VkIGlmICppKiBpcwogICAgb3V0c2lkZSB0aGF0IHJhbmdlLgogCi0gICBOb3RlIHRoYXQgb24gbmFycm93IFVuaWNvZGUgYnVpbGRzLCB0aGUgcmVzdWx0IGlzIGEgc3RyaW5nIG9mCi0gICBsZW5ndGggdHdvIGZvciAqaSogZ3JlYXRlciB0aGFuIDY1LDUzNSAoMHhGRkZGIGluIGhleGFkZWNpbWFsKS4KLQotCiAKIC4uIGZ1bmN0aW9uOjogY2xhc3NtZXRob2QoZnVuY3Rpb24pCiAKQEAgLTc5MCwxMCArNzg2LDEwIEBACiAgICA6bWV0aDpgX19pbmRleF9fYCBtZXRob2QgdGhhdCByZXR1cm5zIGFuIGludGVnZXIuCiAKIAotLi4gZnVuY3Rpb246OiBvcGVuKGZpbGUsIG1vZGU9J3InLCBidWZmZXJpbmc9LTEsIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lLCBuZXdsaW5lPU5vbmUsIGNsb3NlZmQ9VHJ1ZSkKKy4uIGZ1bmN0aW9uOjogb3BlbihmaWxlLCBtb2RlPSdyJywgYnVmZmVyaW5nPS0xLCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSwgbmV3bGluZT1Ob25lLCBjbG9zZWZkPVRydWUsIG9wZW5lcj1Ob25lKQogCiAgICBPcGVuICpmaWxlKiBhbmQgcmV0dXJuIGEgY29ycmVzcG9uZGluZyBzdHJlYW0uICBJZiB0aGUgZmlsZSBjYW5ub3QgYmUgb3BlbmVkLAotICAgYW4gOmV4YzpgSU9FcnJvcmAgaXMgcmFpc2VkLgorICAgYW4gOmV4YzpgT1NFcnJvcmAgaXMgcmFpc2VkLgogCiAgICAqZmlsZSogaXMgZWl0aGVyIGEgc3RyaW5nIG9yIGJ5dGVzIG9iamVjdCBnaXZpbmcgdGhlIHBhdGhuYW1lIChhYnNvbHV0ZSBvcgogICAgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkpIG9mIHRoZSBmaWxlIHRvIGJlIG9wZW5lZCBvcgpAQCAtODA0LDE3ICs4MDAsMjAgQEAKICAgICptb2RlKiBpcyBhbiBvcHRpb25hbCBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIG1vZGUgaW4gd2hpY2ggdGhlIGZpbGUgaXMKICAgIG9wZW5lZC4gIEl0IGRlZmF1bHRzIHRvIGBgJ3InYGAgd2hpY2ggbWVhbnMgb3BlbiBmb3IgcmVhZGluZyBpbiB0ZXh0IG1vZGUuCiAgICBPdGhlciBjb21tb24gdmFsdWVzIGFyZSBgYCd3J2BgIGZvciB3cml0aW5nICh0cnVuY2F0aW5nIHRoZSBmaWxlIGlmIGl0Ci0gICBhbHJlYWR5IGV4aXN0cyksIGFuZCBgYCdhJ2BgIGZvciBhcHBlbmRpbmcgKHdoaWNoIG9uICpzb21lKiBVbml4IHN5c3RlbXMsCi0gICBtZWFucyB0aGF0ICphbGwqIHdyaXRlcyBhcHBlbmQgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSByZWdhcmRsZXNzIG9mIHRoZQotICAgY3VycmVudCBzZWVrIHBvc2l0aW9uKS4gIEluIHRleHQgbW9kZSwgaWYgKmVuY29kaW5nKiBpcyBub3Qgc3BlY2lmaWVkIHRoZQotICAgZW5jb2RpbmcgdXNlZCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuIChGb3IgcmVhZGluZyBhbmQgd3JpdGluZyByYXcgYnl0ZXMgdXNlCi0gICBiaW5hcnkgbW9kZSBhbmQgbGVhdmUgKmVuY29kaW5nKiB1bnNwZWNpZmllZC4pICBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZToKKyAgIGFscmVhZHkgZXhpc3RzKSwgYGAneCdgYCBmb3IgZXhjbHVzaXZlIGNyZWF0aW9uIGFuZCBgYCdhJ2BgIGZvciBhcHBlbmRpbmcKKyAgICh3aGljaCBvbiAqc29tZSogVW5peCBzeXN0ZW1zLCBtZWFucyB0aGF0ICphbGwqIHdyaXRlcyBhcHBlbmQgdG8gdGhlIGVuZCBvZgorICAgdGhlIGZpbGUgcmVnYXJkbGVzcyBvZiB0aGUgY3VycmVudCBzZWVrIHBvc2l0aW9uKS4gIEluIHRleHQgbW9kZSwgaWYKKyAgICplbmNvZGluZyogaXMgbm90IHNwZWNpZmllZCB0aGUgZW5jb2RpbmcgdXNlZCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQ6CisgICBgYGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZyhGYWxzZSlgYCBpcyBjYWxsZWQgdG8gZ2V0IHRoZSBjdXJyZW50IGxvY2FsZQorICAgZW5jb2RpbmcuIChGb3IgcmVhZGluZyBhbmQgd3JpdGluZyByYXcgYnl0ZXMgdXNlIGJpbmFyeSBtb2RlIGFuZCBsZWF2ZQorICAgKmVuY29kaW5nKiB1bnNwZWNpZmllZC4pICBUaGUgYXZhaWxhYmxlIG1vZGVzIGFyZToKIAogICAgPT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgQ2hhcmFjdGVyIE1lYW5pbmcKICAgIC0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGBgJ3InYGAgICBvcGVuIGZvciByZWFkaW5nIChkZWZhdWx0KQogICAgYGAndydgYCAgIG9wZW4gZm9yIHdyaXRpbmcsIHRydW5jYXRpbmcgdGhlIGZpbGUgZmlyc3QKKyAgIGBgJ3gnYGAgICBvcGVuIGZvciBleGNsdXNpdmUgY3JlYXRpb24sIGZhaWxpbmcgaWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMKICAgIGBgJ2EnYGAgICBvcGVuIGZvciB3cml0aW5nLCBhcHBlbmRpbmcgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSBpZiBpdCBleGlzdHMKICAgIGBgJ2InYGAgICBiaW5hcnkgbW9kZQogICAgYGAndCdgYCAgIHRleHQgbW9kZSAoZGVmYXVsdCkKQEAgLTg5Nyw2ICs4OTYsMTYgQEAKICAgIGNsb3NlZC4gIElmIGEgZmlsZW5hbWUgaXMgZ2l2ZW4gKmNsb3NlZmQqIGhhcyBubyBlZmZlY3QgYW5kIG11c3QgYmUgYGBUcnVlYGAKICAgICh0aGUgZGVmYXVsdCkuCiAKKyAgIEEgY3VzdG9tIG9wZW5lciBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGEgY2FsbGFibGUgYXMgKm9wZW5lciouIFRoZSB1bmRlcmx5aW5nCisgICBmaWxlIGRlc2NyaXB0b3IgZm9yIHRoZSBmaWxlIG9iamVjdCBpcyB0aGVuIG9idGFpbmVkIGJ5IGNhbGxpbmcgKm9wZW5lciogd2l0aAorICAgKCpmaWxlKiwgKmZsYWdzKikuICpvcGVuZXIqIG11c3QgcmV0dXJuIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yIChwYXNzaW5nCisgICA6bW9kOmBvcy5vcGVuYCBhcyAqb3BlbmVyKiByZXN1bHRzIGluIGZ1bmN0aW9uYWxpdHkgc2ltaWxhciB0byBwYXNzaW5nCisgICBgYE5vbmVgYCkuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGUgKm9wZW5lciogcGFyYW1ldGVyIHdhcyBhZGRlZC4KKyAgICAgIFRoZSBgYCd4J2BgIG1vZGUgd2FzIGFkZGVkLgorCiAgICBUaGUgdHlwZSBvZiBmaWxlIG9iamVjdCByZXR1cm5lZCBieSB0aGUgOmZ1bmM6YG9wZW5gIGZ1bmN0aW9uIGRlcGVuZHMgb24gdGhlCiAgICBtb2RlLiAgV2hlbiA6ZnVuYzpgb3BlbmAgaXMgdXNlZCB0byBvcGVuIGEgZmlsZSBpbiBhIHRleHQgbW9kZSAoYGAndydgYCwKICAgIGBgJ3InYGAsIGBgJ3d0J2BgLCBgYCdydCdgYCwgZXRjLiksIGl0IHJldHVybnMgYSBzdWJjbGFzcyBvZgpAQCAtOTIyLDYgKzkzMSwxMSBAQAogICAgKHdoZXJlIDpmdW5jOmBvcGVuYCBpcyBkZWNsYXJlZCksIDptb2Q6YG9zYCwgOm1vZDpgb3MucGF0aGAsIDptb2Q6YHRlbXBmaWxlYCwKICAgIGFuZCA6bW9kOmBzaHV0aWxgLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgOmV4YzpgSU9FcnJvcmAgdXNlZCB0byBiZSByYWlzZWQsIGl0IGlzIG5vdyBhbiBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KKyAgICAgIDpleGM6YEZpbGVFeGlzdHNFcnJvcmAgaXMgbm93IHJhaXNlZCBpZiB0aGUgZmlsZSBvcGVuZWQgaW4gZXhjbHVzaXZlCisgICAgICBjcmVhdGlvbiBtb2RlIChgYCd4J2BgKSBhbHJlYWR5IGV4aXN0cy4KKwogCiAuLiBYWFggd29ya3MgZm9yIGJ5dGVzIHRvbywgYnV0IHNob3VsZCBpdD8KIC4uIGZ1bmN0aW9uOjogb3JkKGMpCkBAIC05MzEsOSArOTQ1LDYgQEAKICAgIHBvaW50IG9mIHRoYXQgY2hhcmFjdGVyLiAgRm9yIGV4YW1wbGUsIGBgb3JkKCdhJylgYCByZXR1cm5zIHRoZSBpbnRlZ2VyIGBgOTdgYAogICAgYW5kIGBgb3JkKCdcdTIwMjAnKWBgIHJldHVybnMgYGA4MjI0YGAuICBUaGlzIGlzIHRoZSBpbnZlcnNlIG9mIDpmdW5jOmBjaHJgLgogCi0gICBPbiB3aWRlIFVuaWNvZGUgYnVpbGRzLCBpZiB0aGUgYXJndW1lbnQgbGVuZ3RoIGlzIG5vdCBvbmUsIGEKLSAgIDpleGM6YFR5cGVFcnJvcmAgd2lsbCBiZSByYWlzZWQuICBPbiBuYXJyb3cgVW5pY29kZSBidWlsZHMsIHN0cmluZ3MKLSAgIG9mIGxlbmd0aCB0d28gYXJlIGFjY2VwdGVkIHdoZW4gdGhleSBmb3JtIGEgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlyLgogCiAuLiBmdW5jdGlvbjo6IHBvdyh4LCB5Wywgel0pCiAKQEAgLTk1MSw3ICs5NjIsNyBAQAogICAgbXVzdCBiZSBvZiBpbnRlZ2VyIHR5cGVzLCBhbmQgKnkqIG11c3QgYmUgbm9uLW5lZ2F0aXZlLgogCiAKLS4uIGZ1bmN0aW9uOjogcHJpbnQoW29iamVjdCwgLi4uXSwgKiwgc2VwPScgJywgZW5kPSdcXG4nLCBmaWxlPXN5cy5zdGRvdXQpCisuLiBmdW5jdGlvbjo6IHByaW50KFtvYmplY3QsIC4uLl0sICosIHNlcD0nICcsIGVuZD0nXFxuJywgZmlsZT1zeXMuc3Rkb3V0LCBmbHVzaD1GYWxzZSkKIAogICAgUHJpbnQgKm9iamVjdCpcKHMpIHRvIHRoZSBzdHJlYW0gKmZpbGUqLCBzZXBhcmF0ZWQgYnkgKnNlcCogYW5kIGZvbGxvd2VkIGJ5CiAgICAqZW5kKi4gICpzZXAqLCAqZW5kKiBhbmQgKmZpbGUqLCBpZiBwcmVzZW50LCBtdXN0IGJlIGdpdmVuIGFzIGtleXdvcmQKQEAgLTk2NCw5ICs5NzUsMTIgQEAKICAgICplbmQqLgogCiAgICBUaGUgKmZpbGUqIGFyZ3VtZW50IG11c3QgYmUgYW4gb2JqZWN0IHdpdGggYSBgYHdyaXRlKHN0cmluZylgYCBtZXRob2Q7IGlmIGl0Ci0gICBpcyBub3QgcHJlc2VudCBvciBgYE5vbmVgYCwgOmRhdGE6YHN5cy5zdGRvdXRgIHdpbGwgYmUgdXNlZC4gT3V0cHV0IGJ1ZmZlcmluZwotICAgaXMgZGV0ZXJtaW5lZCBieSAqZmlsZSouIFVzZSBgYGZpbGUuZmx1c2goKWBgIHRvIGVuc3VyZSwgZm9yIGluc3RhbmNlLAotICAgaW1tZWRpYXRlIGFwcGVhcmFuY2Ugb24gYSBzY3JlZW4uCisgICBpcyBub3QgcHJlc2VudCBvciBgYE5vbmVgYCwgOmRhdGE6YHN5cy5zdGRvdXRgIHdpbGwgYmUgdXNlZC4gIFdoZXRoZXIgb3V0cHV0CisgICBpcyBidWZmZXJlZCBpcyB1c3VhbGx5IGRldGVybWluZWQgYnkgKmZpbGUqLCBidXQgaWYgdGhlICAqZmx1c2gqIGtleXdvcmQKKyAgIGFyZ3VtZW50IGlzIHRydWUsIHRoZSBzdHJlYW0gaXMgZm9yY2libHkgZmx1c2hlZC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEFkZGVkIHRoZSAqZmx1c2gqIGtleXdvcmQgYXJndW1lbnQuCiAKIAogLi4gZnVuY3Rpb246OiBwcm9wZXJ0eShmZ2V0PU5vbmUsIGZzZXQ9Tm9uZSwgZmRlbD1Ob25lLCBkb2M9Tm9uZSkKQEAgLTEwNDksNyArMTA2Myw5IEBACiAgICAuLi5dYGAuICBJZiAqc3RlcCogaXMgcG9zaXRpdmUsIHRoZSBsYXN0IGVsZW1lbnQgaXMgdGhlIGxhcmdlc3QgYGBzdGFydCArIGkgKgogICAgc3RlcGBgIGxlc3MgdGhhbiAqc3RvcCo7IGlmICpzdGVwKiBpcyBuZWdhdGl2ZSwgdGhlIGxhc3QgZWxlbWVudCBpcyB0aGUKICAgIHNtYWxsZXN0IGBgc3RhcnQgKyBpICogc3RlcGBgIGdyZWF0ZXIgdGhhbiAqc3RvcCouICAqc3RlcCogbXVzdCBub3QgYmUgemVybwotICAgKG9yIGVsc2UgOmV4YzpgVmFsdWVFcnJvcmAgaXMgcmFpc2VkKS4gIEV4YW1wbGU6CisgICAob3IgZWxzZSA6ZXhjOmBWYWx1ZUVycm9yYCBpcyByYWlzZWQpLiAgUmFuZ2Ugb2JqZWN0cyBoYXZlIHJlYWQtb25seSBkYXRhCisgICBhdHRyaWJ1dGVzIDphdHRyOmBzdGFydGAsIDphdHRyOmBzdG9wYCBhbmQgOmF0dHI6YHN0ZXBgIHdoaWNoIHJldHVybiB0aGUKKyAgIGFyZ3VtZW50IHZhbHVlcyAob3IgdGhlaXIgZGVmYXVsdCkuICBFeGFtcGxlOgogCiAgICAgICA+Pj4gbGlzdChyYW5nZSgxMCkpCiAgICAgICBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOV0KQEAgLTEwODYsNiArMTEwMiwxMyBAQAogICAgICAgPj4+IHJbLTFdCiAgICAgICAxOAogCisgICBUZXN0aW5nIHJhbmdlIG9iamVjdHMgZm9yIGVxdWFsaXR5IHdpdGggYGA9PWBgIGFuZCBgYCE9YGAgY29tcGFyZXMKKyAgIHRoZW0gYXMgc2VxdWVuY2VzLiAgVGhhdCBpcywgdHdvIHJhbmdlIG9iamVjdHMgYXJlIGNvbnNpZGVyZWQgZXF1YWwgaWYKKyAgIHRoZXkgcmVwcmVzZW50IHRoZSBzYW1lIHNlcXVlbmNlIG9mIHZhbHVlcy4gIChOb3RlIHRoYXQgdHdvIHJhbmdlCisgICBvYmplY3RzIHRoYXQgY29tcGFyZSBlcXVhbCBtaWdodCBoYXZlIGRpZmZlcmVudCA6YXR0cjpgc3RhcnRgLAorICAgOmF0dHI6YHN0b3BgIGFuZCA6YXR0cjpgc3RlcGAgYXR0cmlidXRlcywgZm9yIGV4YW1wbGUgYGByYW5nZSgwKSA9PQorICAgcmFuZ2UoMiwgMSwgMylgYCBvciBgYHJhbmdlKDAsIDMsIDIpID09IHJhbmdlKDAsIDQsIDIpYGAuKQorCiAgICBSYW5nZXMgY29udGFpbmluZyBhYnNvbHV0ZSB2YWx1ZXMgbGFyZ2VyIHRoYW4gOmRhdGE6YHN5cy5tYXhzaXplYCBhcmUgcGVybWl0dGVkCiAgICBidXQgc29tZSBmZWF0dXJlcyAoc3VjaCBhcyA6ZnVuYzpgbGVuYCkgd2lsbCByYWlzZSA6ZXhjOmBPdmVyZmxvd0Vycm9yYC4KIApAQCAtMTA5NSw2ICsxMTE4LDE0IEBACiAgICAgICBUZXN0IGludGVnZXJzIGZvciBtZW1iZXJzaGlwIGluIGNvbnN0YW50IHRpbWUgaW5zdGVhZCBvZiBpdGVyYXRpbmcKICAgICAgIHRocm91Z2ggYWxsIGl0ZW1zLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgRGVmaW5lICc9PScgYW5kICchPScgdG8gY29tcGFyZSByYW5nZSBvYmplY3RzIGJhc2VkIG9uIHRoZQorICAgICAgc2VxdWVuY2Ugb2YgdmFsdWVzIHRoZXkgZGVmaW5lIChpbnN0ZWFkIG9mIGNvbXBhcmluZyBiYXNlZCBvbgorICAgICAgb2JqZWN0IGlkZW50aXR5KS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBUaGUgOmF0dHI6YHN0YXJ0YCwgOmF0dHI6YHN0b3BgIGFuZCA6YXR0cjpgc3RlcGAgYXR0cmlidXRlcy4KKwogCiAuLiBmdW5jdGlvbjo6IHJlcHIob2JqZWN0KQogCkBAIC0xMzAyLDEwICsxMzMzLDEyIEBACiAgICBBY2NvcmRpbmdseSwgOmZ1bmM6YHN1cGVyYCBpcyB1bmRlZmluZWQgZm9yIGltcGxpY2l0IGxvb2t1cHMgdXNpbmcgc3RhdGVtZW50cyBvcgogICAgb3BlcmF0b3JzIHN1Y2ggYXMgYGBzdXBlcigpW25hbWVdYGAuCiAKLSAgIEFsc28gbm90ZSB0aGF0IDpmdW5jOmBzdXBlcmAgaXMgbm90IGxpbWl0ZWQgdG8gdXNlIGluc2lkZSBtZXRob2RzLiAgVGhlIHR3bwotICAgYXJndW1lbnQgZm9ybSBzcGVjaWZpZXMgdGhlIGFyZ3VtZW50cyBleGFjdGx5IGFuZCBtYWtlcyB0aGUgYXBwcm9wcmlhdGUKLSAgIHJlZmVyZW5jZXMuICBUaGUgemVybyBhcmd1bWVudCBmb3JtIGF1dG9tYXRpY2FsbHkgc2VhcmNoZXMgdGhlIHN0YWNrIGZyYW1lCi0gICBmb3IgdGhlIGNsYXNzIChgYF9fY2xhc3NfX2BgKSBhbmQgdGhlIGZpcnN0IGFyZ3VtZW50LgorICAgQWxzbyBub3RlIHRoYXQsIGFzaWRlIGZyb20gdGhlIHplcm8gYXJndW1lbnQgZm9ybSwgOmZ1bmM6YHN1cGVyYCBpcyBub3QKKyAgIGxpbWl0ZWQgdG8gdXNlIGluc2lkZSBtZXRob2RzLiAgVGhlIHR3byBhcmd1bWVudCBmb3JtIHNwZWNpZmllcyB0aGUKKyAgIGFyZ3VtZW50cyBleGFjdGx5IGFuZCBtYWtlcyB0aGUgYXBwcm9wcmlhdGUgcmVmZXJlbmNlcy4gIFRoZSB6ZXJvCisgICBhcmd1bWVudCBmb3JtIG9ubHkgd29ya3MgaW5zaWRlIGEgY2xhc3MgZGVmaW5pdGlvbiwgYXMgdGhlIGNvbXBpbGVyIGZpbGxzCisgICBpbiB0aGUgbmVjZXNzYXJ5IGRldGFpbHMgdG8gY29ycmVjdGx5IHJldHJpZXZlIHRoZSBjbGFzcyBiZWluZyBkZWZpbmVkLAorICAgYXMgd2VsbCBhcyBhY2Nlc3NpbmcgdGhlIGN1cnJlbnQgaW5zdGFuY2UgZm9yIG9yZGluYXJ5IG1ldGhvZHMuCiAKICAgIEZvciBwcmFjdGljYWwgc3VnZ2VzdGlvbnMgb24gaG93IHRvIGRlc2lnbiBjb29wZXJhdGl2ZSBjbGFzc2VzIHVzaW5nCiAgICA6ZnVuYzpgc3VwZXJgLCBzZWUgYGd1aWRlIHRvIHVzaW5nIHN1cGVyKCkKQEAgLTE0MjUsOCArMTQ1OCw5IEBACiAgICByZXBsYWNlZCAoYnkgaW1wb3J0aW5nIHRoZSA6bW9kOmBidWlsdGluc2AgbW9kdWxlIGFuZCBhc3NpZ25pbmcgdG8KICAgIGBgYnVpbHRpbnMuX19pbXBvcnRfX2BgKSBpbiBvcmRlciB0byBjaGFuZ2Ugc2VtYW50aWNzIG9mIHRoZQogICAgOmtleXdvcmQ6YGltcG9ydGAgc3RhdGVtZW50LCBidXQgbm93YWRheXMgaXQgaXMgdXN1YWxseSBzaW1wbGVyIHRvIHVzZSBpbXBvcnQKLSAgIGhvb2tzIChzZWUgOnBlcDpgMzAyYCkuICBEaXJlY3QgdXNlIG9mIDpmdW5jOmBfX2ltcG9ydF9fYCBpcyByYXJlLCBleGNlcHQgaW4KLSAgIGNhc2VzIHdoZXJlIHlvdSB3YW50IHRvIGltcG9ydCBhIG1vZHVsZSB3aG9zZSBuYW1lIGlzIG9ubHkga25vd24gYXQgcnVudGltZS4KKyAgIGhvb2tzIChzZWUgOnBlcDpgMzAyYCkgdG8gYXR0YWluIHRoZSBzYW1lIGdvYWxzLiAgRGlyZWN0IHVzZSBvZgorICAgOmZ1bmM6YF9faW1wb3J0X19gIGlzIGVudGlyZWx5IGRpc2NvdXJhZ2VkIGluIGZhdm9yIG9mCisgICA6ZnVuYzpgaW1wb3J0bGliLmltcG9ydF9tb2R1bGVgLgogCiAgICBUaGUgZnVuY3Rpb24gaW1wb3J0cyB0aGUgbW9kdWxlICpuYW1lKiwgcG90ZW50aWFsbHkgdXNpbmcgdGhlIGdpdmVuICpnbG9iYWxzKgogICAgYW5kICpsb2NhbHMqIHRvIGRldGVybWluZSBob3cgdG8gaW50ZXJwcmV0IHRoZSBuYW1lIGluIGEgcGFja2FnZSBjb250ZXh0LgpAQCAtMTQzOCw3ICsxNDcyLDggQEAKICAgICpsZXZlbCogc3BlY2lmaWVzIHdoZXRoZXIgdG8gdXNlIGFic29sdXRlIG9yIHJlbGF0aXZlIGltcG9ydHMuIGBgMGBgICh0aGUKICAgIGRlZmF1bHQpIG1lYW5zIG9ubHkgcGVyZm9ybSBhYnNvbHV0ZSBpbXBvcnRzLiAgUG9zaXRpdmUgdmFsdWVzIGZvcgogICAgKmxldmVsKiBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIHBhcmVudCBkaXJlY3RvcmllcyB0byBzZWFyY2ggcmVsYXRpdmUgdG8gdGhlCi0gICBkaXJlY3Rvcnkgb2YgdGhlIG1vZHVsZSBjYWxsaW5nIDpmdW5jOmBfX2ltcG9ydF9fYC4KKyAgIGRpcmVjdG9yeSBvZiB0aGUgbW9kdWxlIGNhbGxpbmcgOmZ1bmM6YF9faW1wb3J0X19gIChzZWUgOnBlcDpgMzI4YCBmb3IgdGhlCisgICBkZXRhaWxzKS4KIAogICAgV2hlbiB0aGUgKm5hbWUqIHZhcmlhYmxlIGlzIG9mIHRoZSBmb3JtIGBgcGFja2FnZS5tb2R1bGVgYCwgbm9ybWFsbHksIHRoZQogICAgdG9wLWxldmVsIHBhY2thZ2UgKHRoZSBuYW1lIHVwIHRpbGwgdGhlIGZpcnN0IGRvdCkgaXMgcmV0dXJuZWQsICpub3QqIHRoZQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvZnVuY3Rvb2xzLnJzdCBiL0RvYy9saWJyYXJ5L2Z1bmN0b29scy5yc3QKaW5kZXggMDQ3NDNkMy4uZjVjNjYwOCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZnVuY3Rvb2xzLnJzdAorKysgYi9Eb2MvbGlicmFyeS9mdW5jdG9vbHMucnN0CkBAIC00MCw3ICs0MCw3IEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogCi0uLiBkZWNvcmF0b3I6OiBscnVfY2FjaGUobWF4c2l6ZT0xMDApCisuLiBkZWNvcmF0b3I6OiBscnVfY2FjaGUobWF4c2l6ZT0xMjgsIHR5cGVkPUZhbHNlKQogCiAgICBEZWNvcmF0b3IgdG8gd3JhcCBhIGZ1bmN0aW9uIHdpdGggYSBtZW1vaXppbmcgY2FsbGFibGUgdGhhdCBzYXZlcyB1cCB0byB0aGUKICAgICptYXhzaXplKiBtb3N0IHJlY2VudCBjYWxscy4gIEl0IGNhbiBzYXZlIHRpbWUgd2hlbiBhbiBleHBlbnNpdmUgb3IgSS9PIGJvdW5kCkBAIC00OSw4ICs0OSwxMyBAQAogICAgU2luY2UgYSBkaWN0aW9uYXJ5IGlzIHVzZWQgdG8gY2FjaGUgcmVzdWx0cywgdGhlIHBvc2l0aW9uYWwgYW5kIGtleXdvcmQKICAgIGFyZ3VtZW50cyB0byB0aGUgZnVuY3Rpb24gbXVzdCBiZSBoYXNoYWJsZS4KIAotICAgSWYgKm1heHNpemUqIGlzIHNldCB0byBOb25lLCB0aGUgTFJVIGZlYXR1cmUgaXMgZGlzYWJsZWQgYW5kIHRoZSBjYWNoZQotICAgY2FuIGdyb3cgd2l0aG91dCBib3VuZC4KKyAgIElmICptYXhzaXplKiBpcyBzZXQgdG8gTm9uZSwgdGhlIExSVSBmZWF0dXJlIGlzIGRpc2FibGVkIGFuZCB0aGUgY2FjaGUgY2FuCisgICBncm93IHdpdGhvdXQgYm91bmQuICBUaGUgTFJVIGZlYXR1cmUgcGVyZm9ybXMgYmVzdCB3aGVuICptYXhzaXplKiBpcyBhCisgICBwb3dlci1vZi10d28uCisKKyAgIElmICp0eXBlZCogaXMgc2V0IHRvIFRydWUsIGZ1bmN0aW9uIGFyZ3VtZW50cyBvZiBkaWZmZXJlbnQgdHlwZXMgd2lsbCBiZQorICAgY2FjaGVkIHNlcGFyYXRlbHkuICBGb3IgZXhhbXBsZSwgYGBmKDMpYGAgYW5kIGBgZigzLjApYGAgd2lsbCBiZSB0cmVhdGVkCisgICBhcyBkaXN0aW5jdCBjYWxscyB3aXRoIGRpc3RpbmN0IHJlc3VsdHMuCiAKICAgIFRvIGhlbHAgbWVhc3VyZSB0aGUgZWZmZWN0aXZlbmVzcyBvZiB0aGUgY2FjaGUgYW5kIHR1bmUgdGhlICptYXhzaXplKgogICAgcGFyYW1ldGVyLCB0aGUgd3JhcHBlZCBmdW5jdGlvbiBpcyBpbnN0cnVtZW50ZWQgd2l0aCBhIDpmdW5jOmBjYWNoZV9pbmZvYApAQCAtNjcsOCArNzIsOCBAQAogCiAgICBBbiBgTFJVIChsZWFzdCByZWNlbnRseSB1c2VkKSBjYWNoZQogICAgPGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQ2FjaGVfYWxnb3JpdGhtcyNMZWFzdF9SZWNlbnRseV9Vc2VkPmBfIHdvcmtzCi0gICBiZXN0IHdoZW4gbW9yZSByZWNlbnQgY2FsbHMgYXJlIHRoZSBiZXN0IHByZWRpY3RvcnMgb2YgdXBjb21pbmcgY2FsbHMgKGZvcgotICAgZXhhbXBsZSwgdGhlIG1vc3QgcG9wdWxhciBhcnRpY2xlcyBvbiBhIG5ld3Mgc2VydmVyIHRlbmQgdG8gY2hhbmdlIGRhaWx5KS4KKyAgIGJlc3Qgd2hlbiB0aGUgbW9zdCByZWNlbnQgY2FsbHMgYXJlIHRoZSBiZXN0IHByZWRpY3RvcnMgb2YgdXBjb21pbmcgY2FsbHMgKGZvcgorICAgZXhhbXBsZSwgdGhlIG1vc3QgcG9wdWxhciBhcnRpY2xlcyBvbiBhIG5ld3Mgc2VydmVyIHRlbmQgdG8gY2hhbmdlIGVhY2ggZGF5KS4KICAgIFRoZSBjYWNoZSdzIHNpemUgbGltaXQgYXNzdXJlcyB0aGF0IHRoZSBjYWNoZSBkb2VzIG5vdCBncm93IHdpdGhvdXQgYm91bmQgb24KICAgIGxvbmctcnVubmluZyBwcm9jZXNzZXMgc3VjaCBhcyB3ZWIgc2VydmVycy4KIApAQCAtMTExLDYgKzExNiw5IEBACiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgdGhlICp0eXBlZCogb3B0aW9uLgorCiAuLiBkZWNvcmF0b3I6OiB0b3RhbF9vcmRlcmluZwogCiAgICBHaXZlbiBhIGNsYXNzIGRlZmluaW5nIG9uZSBvciBtb3JlIHJpY2ggY29tcGFyaXNvbiBvcmRlcmluZyBtZXRob2RzLCB0aGlzCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9nYy5yc3QgYi9Eb2MvbGlicmFyeS9nYy5yc3QKaW5kZXggMDI4MWJiNy4uM2Q3NjQxMSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZ2MucnN0CisrKyBiL0RvYy9saWJyYXJ5L2djLnJzdApAQCAtMTUzLDggKzE1Myw4IEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKIAogCi1UaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHByb3ZpZGVkIGZvciByZWFkLW9ubHkgYWNjZXNzICh5b3UgY2FuIG11dGF0ZSBpdHMKLXZhbHVlIGJ1dCBzaG91bGQgbm90IHJlYmluZCBpdCk6CitUaGUgZm9sbG93aW5nIHZhcmlhYmxlcyBhcmUgcHJvdmlkZWQgZm9yIHJlYWQtb25seSBhY2Nlc3MgKHlvdSBjYW4gbXV0YXRlIHRoZQordmFsdWVzIGJ1dCBzaG91bGQgbm90IHJlYmluZCB0aGVtKToKIAogLi4gZGF0YTo6IGdhcmJhZ2UKIApAQCAtMTgzLDYgKzE4Myw0MSBAQAogICAgICAgOmNvbnN0OmBERUJVR19VTkNPTExFQ1RBQkxFYCBpcyBzZXQsIGluIGFkZGl0aW9uIGFsbCB1bmNvbGxlY3RhYmxlIG9iamVjdHMKICAgICAgIGFyZSBwcmludGVkLgogCisuLiBkYXRhOjogY2FsbGJhY2tzCisKKyAgIEEgbGlzdCBvZiBjYWxsYmFja3MgdGhhdCB3aWxsIGJlIGludm9rZWQgYnkgdGhlIGdhcmJhZ2UgY29sbGVjdG9yIGJlZm9yZSBhbmQKKyAgIGFmdGVyIGNvbGxlY3Rpb24uICBUaGUgY2FsbGJhY2tzIHdpbGwgYmUgY2FsbGVkIHdpdGggdHdvIGFyZ3VtZW50cywKKyAgICpwaGFzZSogYW5kICppbmZvKi4KKworICAgKnBoYXNlKiBjYW4gb25lIG9mIHR3byB2YWx1ZXM6CisKKyAgICAgICJzdGFydCI6IFRoZSBnYXJiYWdlIGNvbGxlY3Rpb24gaXMgYWJvdXQgdG8gc3RhcnQuCisKKyAgICAgICJzdG9wIjogVGhlIGdhcmJhZ2UgY29sbGVjdGlvbiBoYXMgZmluaXNoZWQuCisKKyAgICppbmZvKiBwcm92aWRlcyBtb3JlIGluZm9ybWF0aW9uIGZvciB0aGUgY2FsbGJhY2suICBUaGUgZm9sbG93aW5nCisgICBrZXlzIGFyZSBjdXJyZW50bHkgZGVmaW5lZDoKKworICAgICAgImdlbmVyYXRpb24iOiBUaGUgb2xkZXN0IGdlbmVyYXRpb24gYmVpbmcgY29sbGVjdGVkLgorCisgICAgICAiY29sbGVjdGVkIjogV2hlbiAqcGhhc2UqIGlzICJzdG9wIiwgdGhlIG51bWJlciBvZiBvYmplY3RzCisgICAgICBzdWNjZXNzZnVsbHkgY29sbGVjdGVkLgorCisgICAgICAidW5jb2xsZWN0YWJsZSI6IHdoZW4gKnBoYXNlKiBpcyAic3RvcCIsIHRoZSBudW1iZXIgb2Ygb2JqZWN0cworICAgICAgdGhhdCBjb3VsZCBub3QgYmUgY29sbGVjdGVkIGFuZCB3ZXJlIHB1dCBpbiA6ZGF0YTpgZ2FyYmFnZWAuCisKKyAgIEFwcGxpY2F0aW9ucyBjYW4gYWRkIHRoZWlyIG93biBjYWxsYmFja3MgdG8gdGhpcyBsaXN0LiAgVGhlIHByaW1hcnkKKyAgIHVzZSBjYXNlcyBhcmU6CisKKyAgICAgIEdhdGhlcmluZyBzdGF0aXN0aWNzIGFib3V0IGdhcmJhZ2UgY29sbGVjdGlvbiwgc3VjaCBhcyBob3cgb2Z0ZW4KKyAgICAgIHZhcmlvdXMgZ2VuZXJhdGlvbnMgYXJlIGNvbGxlY3RlZCwgYW5kIGhvdyBsb25nIHRoZSBjb2xsZWN0aW9uCisgICAgICB0YWtlcy4KKworICAgICAgQWxsb3dpbmcgYXBwbGljYXRpb25zIHRvIGlkZW50aWZ5IGFuZCBjbGVhciB0aGVpciBvd24gdW5jb2xsZWN0YWJsZQorICAgICAgdHlwZXMgd2hlbiB0aGV5IGFwcGVhciBpbiA6ZGF0YTpgZ2FyYmFnZWAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAKIFRoZSBmb2xsb3dpbmcgY29uc3RhbnRzIGFyZSBwcm92aWRlZCBmb3IgdXNlIHdpdGggOmZ1bmM6YHNldF9kZWJ1Z2A6CiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2dldHRleHQucnN0IGIvRG9jL2xpYnJhcnkvZ2V0dGV4dC5yc3QKaW5kZXggMGZhMDIyYy4uODI1MzExYiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvZ2V0dGV4dC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvZ2V0dGV4dC5yc3QKQEAgLTE4NSwxMCArMTg1LDEzIEBACiAgICB0cmFuc2xhdGlvbiBvYmplY3QgZnJvbSB0aGUgY2FjaGU7IHRoZSBhY3R1YWwgaW5zdGFuY2UgZGF0YSBpcyBzdGlsbCBzaGFyZWQgd2l0aAogICAgdGhlIGNhY2hlLgogCi0gICBJZiBubyA6ZmlsZTpgLm1vYCBmaWxlIGlzIGZvdW5kLCB0aGlzIGZ1bmN0aW9uIHJhaXNlcyA6ZXhjOmBJT0Vycm9yYCBpZgorICAgSWYgbm8gOmZpbGU6YC5tb2AgZmlsZSBpcyBmb3VuZCwgdGhpcyBmdW5jdGlvbiByYWlzZXMgOmV4YzpgT1NFcnJvcmAgaWYKICAgICpmYWxsYmFjayogaXMgZmFsc2UgKHdoaWNoIGlzIHRoZSBkZWZhdWx0KSwgYW5kIHJldHVybnMgYQogICAgOmNsYXNzOmBOdWxsVHJhbnNsYXRpb25zYCBpbnN0YW5jZSBpZiAqZmFsbGJhY2sqIGlzIHRydWUuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICA6ZXhjOmBJT0Vycm9yYCB1c2VkIHRvIGJlIHJhaXNlZCBpbnN0ZWFkIG9mIDpleGM6YE9TRXJyb3JgLgorCiAKIC4uIGZ1bmN0aW9uOjogaW5zdGFsbChkb21haW4sIGxvY2FsZWRpcj1Ob25lLCBjb2Rlc2V0PU5vbmUsIG5hbWVzPU5vbmUpCiAKQEAgLTM0Miw3ICszNDUsNyBAQAogCiBJZiB0aGUgOmZpbGU6YC5tb2AgZmlsZSdzIG1hZ2ljIG51bWJlciBpcyBpbnZhbGlkLCBvciBpZiBvdGhlciBwcm9ibGVtcyBvY2N1cgogd2hpbGUgcmVhZGluZyB0aGUgZmlsZSwgaW5zdGFudGlhdGluZyBhIDpjbGFzczpgR05VVHJhbnNsYXRpb25zYCBjbGFzcyBjYW4gcmFpc2UKLTpleGM6YElPRXJyb3JgLgorOmV4YzpgT1NFcnJvcmAuCiAKIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBhcmUgb3ZlcnJpZGRlbiBmcm9tIHRoZSBiYXNlIGNsYXNzIGltcGxlbWVudGF0aW9uOgogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9nemlwLnJzdCBiL0RvYy9saWJyYXJ5L2d6aXAucnN0CmluZGV4IDk0MjJlYTkuLjUwZDA0NjIgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2d6aXAucnN0CisrKyBiL0RvYy9saWJyYXJ5L2d6aXAucnN0CkBAIC0xMyw5ICsxMywxMSBAQAogCiBUaGUgZGF0YSBjb21wcmVzc2lvbiBpcyBwcm92aWRlZCBieSB0aGUgOm1vZDpgemxpYmAgbW9kdWxlLgogCi1UaGUgOm1vZDpgZ3ppcGAgbW9kdWxlIHByb3ZpZGVzIHRoZSA6Y2xhc3M6YEd6aXBGaWxlYCBjbGFzcy4gVGhlIDpjbGFzczpgR3ppcEZpbGVgCi1jbGFzcyByZWFkcyBhbmQgd3JpdGVzIDpwcm9ncmFtOmBnemlwYFwgLWZvcm1hdCBmaWxlcywgYXV0b21hdGljYWxseSBjb21wcmVzc2luZwotb3IgZGVjb21wcmVzc2luZyB0aGUgZGF0YSBzbyB0aGF0IGl0IGxvb2tzIGxpa2UgYW4gb3JkaW5hcnkgOnRlcm06YGZpbGUgb2JqZWN0YC4KK1RoZSA6bW9kOmBnemlwYCBtb2R1bGUgcHJvdmlkZXMgdGhlIDpjbGFzczpgR3ppcEZpbGVgIGNsYXNzLCBhcyB3ZWxsIGFzIHRoZQorOmZ1bmM6YC5vcGVuYCwgOmZ1bmM6YGNvbXByZXNzYCBhbmQgOmZ1bmM6YGRlY29tcHJlc3NgIGNvbnZlbmllbmNlIGZ1bmN0aW9ucy4KK1RoZSA6Y2xhc3M6YEd6aXBGaWxlYCBjbGFzcyByZWFkcyBhbmQgd3JpdGVzIDpwcm9ncmFtOmBnemlwYFwgLWZvcm1hdCBmaWxlcywKK2F1dG9tYXRpY2FsbHkgY29tcHJlc3Npbmcgb3IgZGVjb21wcmVzc2luZyB0aGUgZGF0YSBzbyB0aGF0IGl0IGxvb2tzIGxpa2UgYW4KK29yZGluYXJ5IDp0ZXJtOmBmaWxlIG9iamVjdGAuCiAKIE5vdGUgdGhhdCBhZGRpdGlvbmFsIGZpbGUgZm9ybWF0cyB3aGljaCBjYW4gYmUgZGVjb21wcmVzc2VkIGJ5IHRoZQogOnByb2dyYW06YGd6aXBgIGFuZCA6cHJvZ3JhbTpgZ3VuemlwYCBwcm9ncmFtcywgc3VjaCAgYXMgdGhvc2UgcHJvZHVjZWQgYnkKQEAgLTI0LDYgKzI2LDM0IEBACiBUaGUgbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBpdGVtczoKIAogCisuLiBmdW5jdGlvbjo6IG9wZW4oZmlsZW5hbWUsIG1vZGU9J3JiJywgY29tcHJlc3NsZXZlbD05LCBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSwgbmV3bGluZT1Ob25lKQorCisgICBPcGVuIGEgZ3ppcC1jb21wcmVzc2VkIGZpbGUgaW4gYmluYXJ5IG9yIHRleHQgbW9kZSwgcmV0dXJuaW5nIGEgOnRlcm06YGZpbGUKKyAgIG9iamVjdGAuCisKKyAgIFRoZSAqZmlsZW5hbWUqIGFyZ3VtZW50IGNhbiBiZSBhbiBhY3R1YWwgZmlsZW5hbWUgKGEgOmNsYXNzOmBzdHJgIG9yCisgICA6Y2xhc3M6YGJ5dGVzYCBvYmplY3QpLCBvciBhbiBleGlzdGluZyBmaWxlIG9iamVjdCB0byByZWFkIGZyb20gb3Igd3JpdGUgdG8uCisKKyAgIFRoZSAqbW9kZSogYXJndW1lbnQgY2FuIGJlIGFueSBvZiBgYCdyJ2BgLCBgYCdyYidgYCwgYGAnYSdgYCwgYGAnYWInYGAsCisgICBgYCd3J2BgLCBvciBgYCd3YidgYCBmb3IgYmluYXJ5IG1vZGUsIG9yIGBgJ3J0J2BgLCBgYCdhdCdgYCwgb3IgYGAnd3QnYGAgZm9yCisgICB0ZXh0IG1vZGUuIFRoZSBkZWZhdWx0IGlzIGBgJ3JiJ2BgLgorCisgICBUaGUgKmNvbXByZXNzbGV2ZWwqIGFyZ3VtZW50IGlzIGFuIGludGVnZXIgZnJvbSAxIHRvIDksIGFzIGZvciB0aGUKKyAgIDpjbGFzczpgR3ppcEZpbGVgIGNvbnN0cnVjdG9yLgorCisgICBGb3IgYmluYXJ5IG1vZGUsIHRoaXMgZnVuY3Rpb24gaXMgZXF1aXZhbGVudCB0byB0aGUgOmNsYXNzOmBHemlwRmlsZWAKKyAgIGNvbnN0cnVjdG9yOiBgYEd6aXBGaWxlKGZpbGVuYW1lLCBtb2RlLCBjb21wcmVzc2xldmVsKWBgLiBJbiB0aGlzIGNhc2UsIHRoZQorICAgKmVuY29kaW5nKiwgKmVycm9ycyogYW5kICpuZXdsaW5lKiBhcmd1bWVudHMgbXVzdCBub3QgYmUgcHJvdmlkZWQuCisKKyAgIEZvciB0ZXh0IG1vZGUsIGEgOmNsYXNzOmBHemlwRmlsZWAgb2JqZWN0IGlzIGNyZWF0ZWQsIGFuZCB3cmFwcGVkIGluIGFuCisgICA6Y2xhc3M6YGlvLlRleHRJT1dyYXBwZXJgIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBlbmNvZGluZywgZXJyb3IKKyAgIGhhbmRsaW5nIGJlaGF2aW9yLCBhbmQgbGluZSBlbmRpbmcocykuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCBzdXBwb3J0IGZvciAqZmlsZW5hbWUqIGJlaW5nIGEgZmlsZSBvYmplY3QsIHN1cHBvcnQgZm9yIHRleHQgbW9kZSwKKyAgICAgIGFuZCB0aGUgKmVuY29kaW5nKiwgKmVycm9ycyogYW5kICpuZXdsaW5lKiBhcmd1bWVudHMuCisKKwogLi4gY2xhc3M6OiBHemlwRmlsZShmaWxlbmFtZT1Ob25lLCBtb2RlPU5vbmUsIGNvbXByZXNzbGV2ZWw9OSwgZmlsZW9iaj1Ob25lLCBtdGltZT1Ob25lKQogCiAgICBDb25zdHJ1Y3RvciBmb3IgdGhlIDpjbGFzczpgR3ppcEZpbGVgIGNsYXNzLCB3aGljaCBzaW11bGF0ZXMgbW9zdCBvZiB0aGUKQEAgLTQ2LDkgKzc2LDkgQEAKICAgIG9yIGBgJ3diJ2BgLCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgZmlsZSB3aWxsIGJlIHJlYWQgb3Igd3JpdHRlbi4gIFRoZSBkZWZhdWx0CiAgICBpcyB0aGUgbW9kZSBvZiAqZmlsZW9iaiogaWYgZGlzY2VybmlibGU7IG90aGVyd2lzZSwgdGhlIGRlZmF1bHQgaXMgYGAncmInYGAuCiAKLSAgIE5vdGUgdGhhdCB0aGUgZmlsZSBpcyBhbHdheXMgb3BlbmVkIGluIGJpbmFyeSBtb2RlOyB0ZXh0IG1vZGUgaXMgbm90Ci0gICBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHRvIHJlYWQgYSBjb21wcmVzc2VkIGZpbGUgaW4gdGV4dCBtb2RlLCB3cmFwIHlvdXIKLSAgIDpjbGFzczpgR3ppcEZpbGVgIHdpdGggYW4gOmNsYXNzOmBpby5UZXh0SU9XcmFwcGVyYC4KKyAgIE5vdGUgdGhhdCB0aGUgZmlsZSBpcyBhbHdheXMgb3BlbmVkIGluIGJpbmFyeSBtb2RlLiBUbyBvcGVuIGEgY29tcHJlc3NlZCBmaWxlCisgICBpbiB0ZXh0IG1vZGUsIHVzZSA6ZnVuYzpgLm9wZW5gIChvciB3cmFwIHlvdXIgOmNsYXNzOmBHemlwRmlsZWAgd2l0aCBhbgorICAgOmNsYXNzOmBpby5UZXh0SU9XcmFwcGVyYCkuCiAKICAgIFRoZSAqY29tcHJlc3NsZXZlbCogYXJndW1lbnQgaXMgYW4gaW50ZWdlciBmcm9tIGBgMWBgIHRvIGBgOWBgIGNvbnRyb2xsaW5nIHRoZQogICAgbGV2ZWwgb2YgY29tcHJlc3Npb247IGBgMWBgIGlzIGZhc3Rlc3QgYW5kIHByb2R1Y2VzIHRoZSBsZWFzdCBjb21wcmVzc2lvbiwgYW5kCkBAIC03MSw3ICsxMDEsNyBAQAogCiAgICA6Y2xhc3M6YEd6aXBGaWxlYCBzdXBwb3J0cyB0aGUgOmNsYXNzOmBpby5CdWZmZXJlZElPQmFzZWAgaW50ZXJmYWNlLAogICAgaW5jbHVkaW5nIGl0ZXJhdGlvbiBhbmQgdGhlIDprZXl3b3JkOmB3aXRoYCBzdGF0ZW1lbnQuICBPbmx5IHRoZQotICAgOm1ldGg6YHJlYWQxYCBhbmQgOm1ldGg6YHRydW5jYXRlYCBtZXRob2RzIGFyZW4ndCBpbXBsZW1lbnRlZC4KKyAgIDptZXRoOmB0cnVuY2F0ZWAgbWV0aG9kIGlzbid0IGltcGxlbWVudGVkLgogCiAgICA6Y2xhc3M6YEd6aXBGaWxlYCBhbHNvIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgbWV0aG9kOgogCkBAIC05MywxMiArMTIzLDkgQEAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCiAgICAgICBTdXBwb3J0IGZvciB1bnNlZWthYmxlIGZpbGVzIHdhcyBhZGRlZC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFRoZSA6bWV0aDpgaW8uQnVmZmVyZWRJT0Jhc2UucmVhZDFgIG1ldGhvZCBpcyBub3cgaW1wbGVtZW50ZWQuCiAKLS4uIGZ1bmN0aW9uOjogb3BlbihmaWxlbmFtZSwgbW9kZT0ncmInLCBjb21wcmVzc2xldmVsPTkpCi0KLSAgIFRoaXMgaXMgYSBzaG9ydGhhbmQgZm9yIGBgR3ppcEZpbGUoZmlsZW5hbWUsYGAgYGBtb2RlLGBgIGBgY29tcHJlc3NsZXZlbClgYC4KLSAgIFRoZSAqZmlsZW5hbWUqIGFyZ3VtZW50IGlzIHJlcXVpcmVkOyAqbW9kZSogZGVmYXVsdHMgdG8gYGAncmInYGAgYW5kCi0gICAqY29tcHJlc3NsZXZlbCogZGVmYXVsdHMgdG8gYGA5YGAuCiAKIC4uIGZ1bmN0aW9uOjogY29tcHJlc3MoZGF0YSwgY29tcHJlc3NsZXZlbD05KQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9obWFjLnJzdCBiL0RvYy9saWJyYXJ5L2htYWMucnN0CmluZGV4IGVmZjI3MjQuLjA3MDZmZjQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2htYWMucnN0CisrKyBiL0RvYy9saWJyYXJ5L2htYWMucnN0CkBAIC0zOCw2ICszOCwxMyBAQAogICAgZ2l2ZW4gdG8gdGhlIGNvbnN0cnVjdG9yLiAgSXQgbWF5IGNvbnRhaW4gbm9uLUFTQ0lJIGJ5dGVzLCBpbmNsdWRpbmcgTlVMCiAgICBieXRlcy4KIAorICAgLi4gd2FybmluZzo6CisKKyAgICAgIFdoZW4gY29tcGFyaW5nIHRoZSBvdXRwdXQgb2YgOm1ldGg6YGRpZ2VzdGAgdG8gYW4gZXh0ZXJuYWxseS1zdXBwbGllZAorICAgICAgZGlnZXN0IGR1cmluZyBhIHZlcmlmaWNhdGlvbiByb3V0aW5lLCBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhlCisgICAgICA6ZnVuYzpgY29tcGFyZV9kaWdlc3RgIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGBgPT1gYCBvcGVyYXRvcgorICAgICAgdG8gcmVkdWNlIHRoZSB2dWxuZXJhYmlsaXR5IHRvIHRpbWluZyBhdHRhY2tzLgorCiAKIC4uIG1ldGhvZDo6IEhNQUMuaGV4ZGlnZXN0KCkKIApAQCAtNDUsNiArNTIsMTMgQEAKICAgIGxlbmd0aCBjb250YWluaW5nIG9ubHkgaGV4YWRlY2ltYWwgZGlnaXRzLiAgVGhpcyBtYXkgYmUgdXNlZCB0byBleGNoYW5nZSB0aGUKICAgIHZhbHVlIHNhZmVseSBpbiBlbWFpbCBvciBvdGhlciBub24tYmluYXJ5IGVudmlyb25tZW50cy4KIAorICAgLi4gd2FybmluZzo6CisKKyAgICAgIFdoZW4gY29tcGFyaW5nIHRoZSBvdXRwdXQgb2YgOm1ldGg6YGhleGRpZ2VzdGAgdG8gYW4gZXh0ZXJuYWxseS1zdXBwbGllZAorICAgICAgZGlnZXN0IGR1cmluZyBhIHZlcmlmaWNhdGlvbiByb3V0aW5lLCBpdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhlCisgICAgICA6ZnVuYzpgY29tcGFyZV9kaWdlc3RgIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGhlIGBgPT1gYCBvcGVyYXRvcgorICAgICAgdG8gcmVkdWNlIHRoZSB2dWxuZXJhYmlsaXR5IHRvIHRpbWluZyBhdHRhY2tzLgorCiAKIC4uIG1ldGhvZDo6IEhNQUMuY29weSgpCiAKQEAgLTUyLDYgKzY2LDI3IEBACiAgICBjb21wdXRlIHRoZSBkaWdlc3RzIG9mIHN0cmluZ3MgdGhhdCBzaGFyZSBhIGNvbW1vbiBpbml0aWFsIHN1YnN0cmluZy4KIAogCitUaGlzIG1vZHVsZSBhbHNvIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgaGVscGVyIGZ1bmN0aW9uOgorCisuLiBmdW5jdGlvbjo6IGNvbXBhcmVfZGlnZXN0KGEsIGIpCisKKyAgIFJldHVybiBgYGEgPT0gYmBgLiAgVGhpcyBmdW5jdGlvbiB1c2VzIGFuIGFwcHJvYWNoIGRlc2lnbmVkIHRvIHByZXZlbnQKKyAgIHRpbWluZyBhbmFseXNpcyBieSBhdm9pZGluZyBjb250ZW50LWJhc2VkIHNob3J0IGNpcmN1aXRpbmcgYmVoYXZpb3VyLAorICAgbWFraW5nIGl0IGFwcHJvcHJpYXRlIGZvciBjcnlwdG9ncmFwaHkuICAqYSogYW5kICpiKiBtdXN0IGJvdGggYmUgb2YgdGhlCisgICBzYW1lIHR5cGU6IGVpdGhlciA6Y2xhc3M6YHN0cmAgKEFTQ0lJIG9ubHksIGFzIGUuZy4gcmV0dXJuZWQgYnkKKyAgIDptZXRoOmBITUFDLmhleGRpZ2VzdGApLCBvciBhbnkgdHlwZSB0aGF0IHN1cHBvcnRzIHRoZSBidWZmZXIgcHJvdG9jb2wKKyAgIChlLmcuIDpjbGFzczpgYnl0ZXNgKS4KKworICAgLi4gbm90ZTo6CisKKyAgICAgIElmICphKiBhbmQgKmIqIGFyZSBvZiBkaWZmZXJlbnQgbGVuZ3Rocywgb3IgaWYgYW4gZXJyb3Igb2NjdXJzLAorICAgICAgYSB0aW1pbmcgYXR0YWNrIGNvdWxkIHRoZW9yZXRpY2FsbHkgcmV2ZWFsIGluZm9ybWF0aW9uIGFib3V0IHRoZQorICAgICAgdHlwZXMgYW5kIGxlbmd0aHMgb2YgKmEqIGFuZCAqYiotLWJ1dCBub3QgdGhlaXIgdmFsdWVzLgorCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIHNlZWFsc286OgogCiAgICBNb2R1bGUgOm1vZDpgaGFzaGxpYmAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2h0bWwuZW50aXRpZXMucnN0IGIvRG9jL2xpYnJhcnkvaHRtbC5lbnRpdGllcy5yc3QKaW5kZXggYjhiNGFhOC4uNjVjZTgxNyAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvaHRtbC5lbnRpdGllcy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvaHRtbC5lbnRpdGllcy5yc3QKQEAgLTksMTEgKzksMTkgQEAKIAogLS0tLS0tLS0tLS0tLS0KIAotVGhpcyBtb2R1bGUgZGVmaW5lcyB0aHJlZSBkaWN0aW9uYXJpZXMsIGBgbmFtZTJjb2RlcG9pbnRgYCwgYGBjb2RlcG9pbnQybmFtZWBgLAotYW5kIGBgZW50aXR5ZGVmc2BgLiBgYGVudGl0eWRlZnNgYCBpcyB1c2VkIHRvIHByb3ZpZGUgdGhlIDphdHRyOmBlbnRpdHlkZWZzYAotYXR0cmlidXRlIG9mIHRoZSA6Y2xhc3M6YGh0bWwucGFyc2VyLkhUTUxQYXJzZXJgIGNsYXNzLiAgVGhlIGRlZmluaXRpb24gcHJvdmlkZWQKLWhlcmUgY29udGFpbnMgYWxsIHRoZSBlbnRpdGllcyBkZWZpbmVkIGJ5IFhIVE1MIDEuMCB0aGF0IGNhbiBiZSBoYW5kbGVkIHVzaW5nCi1zaW1wbGUgdGV4dHVhbCBzdWJzdGl0dXRpb24gaW4gdGhlIExhdGluLTEgY2hhcmFjdGVyIHNldCAoSVNPLTg4NTktMSkuCitUaGlzIG1vZHVsZSBkZWZpbmVzIGZvdXIgZGljdGlvbmFyaWVzLCA6ZGF0YTpgaHRtbDVgLAorOmRhdGE6YG5hbWUyY29kZXBvaW50YCwgOmRhdGE6YGNvZGVwb2ludDJuYW1lYCwgYW5kIDpkYXRhOmBlbnRpdHlkZWZzYC4KKworCisuLiBkYXRhOjogaHRtbDUKKworICAgQSBkaWN0aW9uYXJ5IHRoYXQgbWFwcyBIVE1MNSBuYW1lZCBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBbI11fIHRvIHRoZQorICAgZXF1aXZhbGVudCBVbmljb2RlIGNoYXJhY3RlcihzKSwgZS5nLiBgYGh0bWw1WydndDsnXSA9PSAnPidgYC4KKyAgIE5vdGUgdGhhdCB0aGUgdHJhaWxpbmcgc2VtaWNvbG9uIGlzIGluY2x1ZGVkIGluIHRoZSBuYW1lIChlLmcuIGBgJ2d0OydgYCksCisgICBob3dldmVyIHNvbWUgb2YgdGhlIG5hbWVzIGFyZSBhY2NlcHRlZCBieSB0aGUgc3RhbmRhcmQgZXZlbiB3aXRob3V0IHRoZQorICAgc2VtaWNvbG9uOiBpbiB0aGlzIGNhc2UgdGhlIG5hbWUgaXMgcHJlc2VudCB3aXRoIGFuZCB3aXRob3V0IHRoZSBgYCc7J2BgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAogCiAuLiBkYXRhOjogZW50aXR5ZGVmcwpAQCAtMzAsMyArMzgsOCBAQAogLi4gZGF0YTo6IGNvZGVwb2ludDJuYW1lCiAKICAgIEEgZGljdGlvbmFyeSB0aGF0IG1hcHMgVW5pY29kZSBjb2RlcG9pbnRzIHRvIEhUTUwgZW50aXR5IG5hbWVzLgorCisKKy4uIHJ1YnJpYzo6IEZvb3Rub3RlcworCisuLiBbI10gU2VlIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L25hbWVkLWNoYXJhY3Rlci1yZWZlcmVuY2VzLmh0bWwKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2h0bWwucGFyc2VyLnJzdCBiL0RvYy9saWJyYXJ5L2h0bWwucGFyc2VyLnJzdAppbmRleCBmM2MzNmVjLi5lNDE1NGVmIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9odG1sLnBhcnNlci5yc3QKKysrIGIvRG9jL2xpYnJhcnkvaHRtbC5wYXJzZXIucnN0CkBAIC0xNiwxMyArMTYsMTQgQEAKIFRoaXMgbW9kdWxlIGRlZmluZXMgYSBjbGFzcyA6Y2xhc3M6YEhUTUxQYXJzZXJgIHdoaWNoIHNlcnZlcyBhcyB0aGUgYmFzaXMgZm9yCiBwYXJzaW5nIHRleHQgZmlsZXMgZm9ybWF0dGVkIGluIEhUTUwgKEh5cGVyVGV4dCBNYXJrLXVwIExhbmd1YWdlKSBhbmQgWEhUTUwuCiAKLS4uIGNsYXNzOjogSFRNTFBhcnNlcihzdHJpY3Q9VHJ1ZSkKKy4uIGNsYXNzOjogSFRNTFBhcnNlcihzdHJpY3Q9RmFsc2UpCiAKLSAgIENyZWF0ZSBhIHBhcnNlciBpbnN0YW5jZS4gIElmICpzdHJpY3QqIGlzIGBgVHJ1ZWBgICh0aGUgZGVmYXVsdCksIGludmFsaWQKLSAgIEhUTUwgcmVzdWx0cyBpbiA6ZXhjOmB+aHRtbC5wYXJzZXIuSFRNTFBhcnNlRXJyb3JgIGV4Y2VwdGlvbnMgWyNdXy4gIElmCi0gICAqc3RyaWN0KiBpcyBgYEZhbHNlYGAsIHRoZSBwYXJzZXIgdXNlcyBoZXVyaXN0aWNzIHRvIG1ha2UgYSBiZXN0IGd1ZXNzIGF0Ci0gICB0aGUgaW50ZW50aW9uIG9mIGFueSBpbnZhbGlkIEhUTUwgaXQgZW5jb3VudGVycywgc2ltaWxhciB0byB0aGUgd2F5IG1vc3QKLSAgIGJyb3dzZXJzIGRvLiAgVXNpbmcgYGBzdHJpY3Q9RmFsc2VgYCBpcyBhZHZpc2VkLgorICAgQ3JlYXRlIGEgcGFyc2VyIGluc3RhbmNlLiAgSWYgKnN0cmljdCogaXMgYGBGYWxzZWBgICh0aGUgZGVmYXVsdCksIHRoZSBwYXJzZXIKKyAgIHdpbGwgYWNjZXB0IGFuZCBwYXJzZSBpbnZhbGlkIG1hcmt1cC4gIElmICpzdHJpY3QqIGlzIGBgVHJ1ZWBgIHRoZSBwYXJzZXIKKyAgIHdpbGwgcmFpc2UgYW4gOmV4Yzpgfmh0bWwucGFyc2VyLkhUTUxQYXJzZUVycm9yYCBleGNlcHRpb24gaW5zdGVhZCBbI11fIHdoZW4KKyAgIGl0J3Mgbm90IGFibGUgdG8gcGFyc2UgdGhlIG1hcmt1cC4KKyAgIFRoZSB1c2Ugb2YgYGBzdHJpY3Q9VHJ1ZWBgIGlzIGRpc2NvdXJhZ2VkIGFuZCB0aGUgKnN0cmljdCogYXJndW1lbnQgaXMKKyAgIGRlcHJlY2F0ZWQuCiAKICAgIEFuIDpjbGFzczpgLkhUTUxQYXJzZXJgIGluc3RhbmNlIGlzIGZlZCBIVE1MIGRhdGEgYW5kIGNhbGxzIGhhbmRsZXIgbWV0aG9kcwogICAgd2hlbiBzdGFydCB0YWdzLCBlbmQgdGFncywgdGV4dCwgY29tbWVudHMsIGFuZCBvdGhlciBtYXJrdXAgZWxlbWVudHMgYXJlCkBAIC0zMiw3ICszMywxMiBAQAogICAgVGhpcyBwYXJzZXIgZG9lcyBub3QgY2hlY2sgdGhhdCBlbmQgdGFncyBtYXRjaCBzdGFydCB0YWdzIG9yIGNhbGwgdGhlIGVuZC10YWcKICAgIGhhbmRsZXIgZm9yIGVsZW1lbnRzIHdoaWNoIGFyZSBjbG9zZWQgaW1wbGljaXRseSBieSBjbG9zaW5nIGFuIG91dGVyIGVsZW1lbnQuCiAKLSAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yICpzdHJpY3QqIGtleXdvcmQgYWRkZWQKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCisgICAgICAqc3RyaWN0KiBrZXl3b3JkIGFkZGVkLgorCisgICAuLiBkZXByZWNhdGVkLXJlbW92ZWQ6OiAzLjMgMy41CisgICAgICBUaGUgKnN0cmljdCogYXJndW1lbnQgYW5kIHRoZSBzdHJpY3QgbW9kZSBoYXZlIGJlZW4gZGVwcmVjYXRlZC4KKyAgICAgIFRoZSBwYXJzZXIgaXMgbm93IGFibGUgdG8gYWNjZXB0IGFuZCBwYXJzZSBpbnZhbGlkIG1hcmt1cCB0b28uCiAKIEFuIGV4Y2VwdGlvbiBpcyBkZWZpbmVkIGFzIHdlbGw6CiAKQEAgLTQ2LDYgKzUyLDEwIEBACiAgICBkZXRlY3RlZCwgYW5kIDphdHRyOmBvZmZzZXRgIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBpbnRvIHRoZSBsaW5lIGF0CiAgICB3aGljaCB0aGUgY29uc3RydWN0IHN0YXJ0cy4KIAorICAgLi4gZGVwcmVjYXRlZC1yZW1vdmVkOjogMy4zIDMuNQorICAgICAgVGhpcyBleGNlcHRpb24gaGFzIGJlZW4gZGVwcmVjYXRlZCBiZWNhdXNlIGl0J3MgbmV2ZXIgcmFpc2VkIGJ5IHRoZSBwYXJzZXIKKyAgICAgICh3aGVuIHRoZSBkZWZhdWx0IG5vbi1zdHJpY3QgbW9kZSBpcyB1c2VkKS4KKwogCiBFeGFtcGxlIEhUTUwgUGFyc2VyIEFwcGxpY2F0aW9uCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9odHRwLmNsaWVudC5yc3QgYi9Eb2MvbGlicmFyeS9odHRwLmNsaWVudC5yc3QKaW5kZXggNTJmYmU1Ny4uZWZiNGM0MSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvaHR0cC5jbGllbnQucnN0CisrKyBiL0RvYy9saWJyYXJ5L2h0dHAuY2xpZW50LnJzdApAQCAtMzM5LDYgKzMzOSwxNSBAQAogfCA6Y29uc3Q6YFVQR1JBREVfUkVRVUlSRURgICAgICAgICAgICAgICAgIHwgYGA0MjZgYCB8IEhUVFAgVXBncmFkZSB0byBUTFMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgOnJmYzpgMjgxN2AsIFNlY3Rpb24gNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCA6Y29uc3Q6YFBSRUNPTkRJVElPTl9SRVFVSVJFRGAgICAgICAgICAgIHwgYGA0MjhgYCB8IEFkZGl0aW9uYWwgSFRUUCBTdGF0dXMgQ29kZXMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgOnJmYzpgNjU4NWAsIFNlY3Rpb24gMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCA6Y29uc3Q6YFRPT19NQU5ZX1JFUVVFU1RTYCAgICAgICAgICAgICAgIHwgYGA0MjlgYCB8IEFkZGl0aW9uYWwgSFRUUCBTdGF0dXMgQ29kZXMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgOnJmYzpgNjU4NWAsIFNlY3Rpb24gNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCA6Y29uc3Q6YFJFUVVFU1RfSEVBREVSX0ZJRUxEU19UT09fTEFSR0VgIHwgYGA0MzFgYCB8IEFkZGl0aW9uYWwgSFRUUCBTdGF0dXMgQ29kZXMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgOnJmYzpgNjU4NWAsIFNlY3Rpb24gNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogfCA6Y29uc3Q6YElOVEVSTkFMX1NFUlZFUl9FUlJPUmAgICAgICAgICAgIHwgYGA1MDBgYCB8IEhUVFAvMS4xLCBgUkZDIDI2MTYsIFNlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgMTAuNS4xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCA8aHR0cDovL3d3dy53My5vcmcvUHJvdG9jb2xzL3JmYzI2MTYvcmZjMjYxNi1zZWMxMC5odG1sI3NlYzEwLjUuMT5gXyAgfApAQCAtMzY5LDYgKzM3OCwxMiBAQAogfCA6Y29uc3Q6YE5PVF9FWFRFTkRFRGAgICAgICAgICAgICAgICAgICAgIHwgYGA1MTBgYCB8IEFuIEhUVFAgRXh0ZW5zaW9uIEZyYW1ld29yaywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgOnJmYzpgMjc3NGAsIFNlY3Rpb24gNyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCA6Y29uc3Q6YE5FVFdPUktfQVVUSEVOVElDQVRJT05fUkVRVUlSRURgIHwgYGA1MTFgYCB8IEFkZGl0aW9uYWwgSFRUUCBTdGF0dXMgQ29kZXMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgOnJmYzpgNjU4NWAsIFNlY3Rpb24gNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgQWRkZWQgY29kZXMgYGA0MjhgYCwgYGA0MjlgYCwgYGA0MzFgYCBhbmQgYGA1MTFgYCBmcm9tIDpyZmM6YDY1ODVgLgogCiAKIC4uIGRhdGE6OiByZXNwb25zZXMKQEAgLTUwMiw2ICs1MTcsMTIgQEAKIAogICAgUmVhZHMgYW5kIHJldHVybnMgdGhlIHJlc3BvbnNlIGJvZHksIG9yIHVwIHRvIHRoZSBuZXh0ICphbXQqIGJ5dGVzLgogCisuLiBtZXRob2Q6OiBIVFRQUmVzcG9uc2UucmVhZGludG8oYikKKworICAgUmVhZHMgdXAgdG8gdGhlIG5leHQgbGVuKGIpIGJ5dGVzIG9mIHRoZSByZXNwb25zZSBib2R5IGludG8gdGhlIGJ1ZmZlciAqYiouCisgICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCiAKIC4uIG1ldGhvZDo6IEhUVFBSZXNwb25zZS5nZXRoZWFkZXIobmFtZSwgZGVmYXVsdD1Ob25lKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9odHRwLmNvb2tpZWphci5yc3QgYi9Eb2MvbGlicmFyeS9odHRwLmNvb2tpZWphci5yc3QKaW5kZXggY2M4ZjI1MS4uNDBmMjRmMiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvaHR0cC5jb29raWVqYXIucnN0CisrKyBiL0RvYy9saWJyYXJ5L2h0dHAuY29va2llamFyLnJzdApAQCAtNDAsNyArNDAsMTEgQEAKIC4uIGV4Y2VwdGlvbjo6IExvYWRFcnJvcgogCiAgICBJbnN0YW5jZXMgb2YgOmNsYXNzOmBGaWxlQ29va2llSmFyYCByYWlzZSB0aGlzIGV4Y2VwdGlvbiBvbiBmYWlsdXJlIHRvIGxvYWQKLSAgIGNvb2tpZXMgZnJvbSBhIGZpbGUuICA6ZXhjOmBMb2FkRXJyb3JgIGlzIGEgc3ViY2xhc3Mgb2YgOmV4YzpgSU9FcnJvcmAuCisgICBjb29raWVzIGZyb20gYSBmaWxlLiAgOmV4YzpgTG9hZEVycm9yYCBpcyBhIHN1YmNsYXNzIG9mIDpleGM6YE9TRXJyb3JgLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgTG9hZEVycm9yIHdhcyBtYWRlIGEgc3ViY2xhc3Mgb2YgOmV4YzpgT1NFcnJvcmAgaW5zdGVhZCBvZgorICAgICAgOmV4YzpgSU9FcnJvcmAuCiAKIAogVGhlIGZvbGxvd2luZyBjbGFzc2VzIGFyZSBwcm92aWRlZDoKQEAgLTI1Nyw5ICsyNjEsMTIgQEAKICAgIEFyZ3VtZW50cyBhcmUgYXMgZm9yIDptZXRoOmBzYXZlYC4KIAogICAgVGhlIG5hbWVkIGZpbGUgbXVzdCBiZSBpbiB0aGUgZm9ybWF0IHVuZGVyc3Rvb2QgYnkgdGhlIGNsYXNzLCBvcgotICAgOmV4YzpgTG9hZEVycm9yYCB3aWxsIGJlIHJhaXNlZC4gIEFsc28sIDpleGM6YElPRXJyb3JgIG1heSBiZSByYWlzZWQsIGZvcgorICAgOmV4YzpgTG9hZEVycm9yYCB3aWxsIGJlIHJhaXNlZC4gIEFsc28sIDpleGM6YE9TRXJyb3JgIG1heSBiZSByYWlzZWQsIGZvcgogICAgZXhhbXBsZSBpZiB0aGUgZmlsZSBkb2VzIG5vdCBleGlzdC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIDpleGM6YElPRXJyb3JgIHVzZWQgdG8gYmUgcmFpc2VkLCBpdCBpcyBub3cgYW4gYWxpYXMgb2YgOmV4YzpgT1NFcnJvcmAuCisKIAogLi4gbWV0aG9kOjogRmlsZUNvb2tpZUphci5yZXZlcnQoZmlsZW5hbWU9Tm9uZSwgaWdub3JlX2Rpc2NhcmQ9RmFsc2UsIGlnbm9yZV9leHBpcmVzPUZhbHNlKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9odHRwLmNvb2tpZXMucnN0IGIvRG9jL2xpYnJhcnkvaHR0cC5jb29raWVzLnJzdAppbmRleCA1YWUzZmQ0Li42NDZmMmU4IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9odHRwLmNvb2tpZXMucnN0CisrKyBiL0RvYy9saWJyYXJ5L2h0dHAuY29va2llcy5yc3QKQEAgLTIyLDkgKzIyLDEyIEBACiBDb29raWUgaGFuZGxpbmcuICBBcyBhIHJlc3VsdCwgdGhlIHBhcnNpbmcgcnVsZXMgdXNlZCBhcmUgYSBiaXQgbGVzcyBzdHJpY3QuCiAKIFRoZSBjaGFyYWN0ZXIgc2V0LCA6ZGF0YTpgc3RyaW5nLmFzY2lpX2xldHRlcnNgLCA6ZGF0YTpgc3RyaW5nLmRpZ2l0c2AgYW5kCi1gYCEjJCUmJyorLS5eX2B8fmBgIGRlbm90ZSB0aGUgc2V0IG9mIHZhbGlkIGNoYXJhY3RlcnMgYWxsb3dlZCBieSB0aGlzIG1vZHVsZQorYGAhIyQlJicqKy0uXl9gfH46YGAgZGVub3RlIHRoZSBzZXQgb2YgdmFsaWQgY2hhcmFjdGVycyBhbGxvd2VkIGJ5IHRoaXMgbW9kdWxlCiBpbiBDb29raWUgbmFtZSAoYXMgOmF0dHI6YH5Nb3JzZWwua2V5YCkuCiAKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBBbGxvd2VkICc6JyBhcyBhIHZhbGlkIENvb2tpZSBuYW1lIGNoYXJhY3Rlci4KKwogCiAuLiBub3RlOjoKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvaHR0cC5zZXJ2ZXIucnN0IGIvRG9jL2xpYnJhcnkvaHR0cC5zZXJ2ZXIucnN0CmluZGV4IDMwMGUzMzIuLmNiYWQzZWQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2h0dHAuc2VydmVyLnJzdAorKysgYi9Eb2MvbGlicmFyeS9odHRwLnNlcnZlci5yc3QKQEAgLTE3OSwxOSArMTc5LDMwIEBACiAKICAgIC4uIG1ldGhvZDo6IHNlbmRfcmVzcG9uc2UoY29kZSwgbWVzc2FnZT1Ob25lKQogCi0gICAgICBTZW5kcyBhIHJlc3BvbnNlIGhlYWRlciBhbmQgbG9ncyB0aGUgYWNjZXB0ZWQgcmVxdWVzdC4gVGhlIEhUVFAgcmVzcG9uc2UKLSAgICAgIGxpbmUgaXMgc2VudCwgZm9sbG93ZWQgYnkgKlNlcnZlciogYW5kICpEYXRlKiBoZWFkZXJzLiBUaGUgdmFsdWVzIGZvcgotICAgICAgdGhlc2UgdHdvIGhlYWRlcnMgYXJlIHBpY2tlZCB1cCBmcm9tIHRoZSA6bWV0aDpgdmVyc2lvbl9zdHJpbmdgIGFuZAotICAgICAgOm1ldGg6YGRhdGVfdGltZV9zdHJpbmdgIG1ldGhvZHMsIHJlc3BlY3RpdmVseS4KKyAgICAgIEFkZHMgYSByZXNwb25zZSBoZWFkZXIgdG8gdGhlIGhlYWRlcnMgYnVmZmVyIGFuZCBsb2dzIHRoZSBhY2NlcHRlZAorICAgICAgcmVxdWVzdC4gVGhlIEhUVFAgcmVzcG9uc2UgbGluZSBpcyB3cml0dGVuIHRvIHRoZSBpbnRlcm5hbCBidWZmZXIsCisgICAgICBmb2xsb3dlZCBieSAqU2VydmVyKiBhbmQgKkRhdGUqIGhlYWRlcnMuIFRoZSB2YWx1ZXMgZm9yIHRoZXNlIHR3byBoZWFkZXJzCisgICAgICBhcmUgcGlja2VkIHVwIGZyb20gdGhlIDptZXRoOmB2ZXJzaW9uX3N0cmluZ2AgYW5kCisgICAgICA6bWV0aDpgZGF0ZV90aW1lX3N0cmluZ2AgbWV0aG9kcywgcmVzcGVjdGl2ZWx5LiBJZiB0aGUgc2VydmVyIGRvZXMgbm90CisgICAgICBpbnRlbmQgdG8gc2VuZCBhbnkgb3RoZXIgaGVhZGVycyB1c2luZyB0aGUgOm1ldGg6YHNlbmRfaGVhZGVyYCBtZXRob2QsCisgICAgICB0aGVuIDptZXRoOmBzZW5kX3Jlc3BvbnNlYCBzaG91bGQgYmUgZm9sbG93ZWQgYnkgYSA6bWV0aDpgZW5kX2hlYWRlcnNgCisgICAgICBjYWxsLgorCisgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgICAgSGVhZGVycyBhcmUgc3RvcmVkIHRvIGFuIGludGVybmFsIGJ1ZmZlciBhbmQgOm1ldGg6YGVuZF9oZWFkZXJzYAorICAgICAgICAgbmVlZHMgdG8gYmUgY2FsbGVkIGV4cGxpY2l0bHkuCisKIAogICAgLi4gbWV0aG9kOjogc2VuZF9oZWFkZXIoa2V5d29yZCwgdmFsdWUpCiAKLSAgICAgIFN0b3JlcyB0aGUgSFRUUCBoZWFkZXIgdG8gYW4gaW50ZXJuYWwgYnVmZmVyIHdoaWNoIHdpbGwgYmUgd3JpdHRlbiB0byB0aGUKLSAgICAgIG91dHB1dCBzdHJlYW0gd2hlbiA6bWV0aDpgZW5kX2hlYWRlcnNgIG1ldGhvZCBpcyBpbnZva2VkLgotICAgICAgKmtleXdvcmQqIHNob3VsZCBzcGVjaWZ5IHRoZSBoZWFkZXIga2V5d29yZCwgd2l0aCAqdmFsdWUqCi0gICAgICBzcGVjaWZ5aW5nIGl0cyB2YWx1ZS4KKyAgICAgIEFkZHMgdGhlIEhUVFAgaGVhZGVyIHRvIGFuIGludGVybmFsIGJ1ZmZlciB3aGljaCB3aWxsIGJlIHdyaXR0ZW4gdG8gdGhlCisgICAgICBvdXRwdXQgc3RyZWFtIHdoZW4gZWl0aGVyIDptZXRoOmBlbmRfaGVhZGVyc2Agb3IgOm1ldGg6YGZsdXNoX2hlYWRlcnNgIGlzCisgICAgICBpbnZva2VkLiAqa2V5d29yZCogc2hvdWxkIHNwZWNpZnkgdGhlIGhlYWRlciBrZXl3b3JkLCB3aXRoICp2YWx1ZSoKKyAgICAgIHNwZWNpZnlpbmcgaXRzIHZhbHVlLiBOb3RlIHRoYXQsIGFmdGVyIHRoZSBzZW5kX2hlYWRlciBjYWxscyBhcmUgZG9uZSwKKyAgICAgIDptZXRoOmBlbmRfaGVhZGVyc2AgTVVTVCBCRSBjYWxsZWQgaW4gb3JkZXIgdG8gY29tcGxldGUgdGhlIG9wZXJhdGlvbi4KIAotICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIgU3RvcmluZyB0aGUgaGVhZGVycyBpbiBhbiBpbnRlcm5hbCBidWZmZXIKKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCisgICAgICAgICBIZWFkZXJzIGFyZSBzdG9yZWQgaW4gYW4gaW50ZXJuYWwgYnVmZmVyLgogCiAKICAgIC4uIG1ldGhvZDo6IHNlbmRfcmVzcG9uc2Vfb25seShjb2RlLCBtZXNzYWdlPU5vbmUpCkBAIC0yMDUsMTAgKzIxNiwxOSBAQAogCiAgICAuLiBtZXRob2Q6OiBlbmRfaGVhZGVycygpCiAKLSAgICAgIFdyaXRlIHRoZSBidWZmZXJlZCBIVFRQIGhlYWRlcnMgdG8gdGhlIG91dHB1dCBzdHJlYW0gYW5kIHNlbmQgYSBibGFuawotICAgICAgbGluZSwgaW5kaWNhdGluZyB0aGUgZW5kIG9mIHRoZSBIVFRQIGhlYWRlcnMgaW4gdGhlIHJlc3BvbnNlLgorICAgICAgQWRkcyBhIGJsYW5rIGxpbmUKKyAgICAgIChpbmRpY2F0aW5nIHRoZSBlbmQgb2YgdGhlIEhUVFAgaGVhZGVycyBpbiB0aGUgcmVzcG9uc2UpCisgICAgICB0byB0aGUgaGVhZGVycyBidWZmZXIgYW5kIGNhbGxzIDptZXRoOmBmbHVzaF9oZWFkZXJzKClgLgogCi0gICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMiBXcml0aW5nIHRoZSBidWZmZXJlZCBoZWFkZXJzIHRvIHRoZSBvdXRwdXQgc3RyZWFtLgorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKKyAgICAgICAgIFRoZSBidWZmZXJlZCBoZWFkZXJzIGFyZSB3cml0dGVuIHRvIHRoZSBvdXRwdXQgc3RyZWFtLgorCisgICAuLiBtZXRob2Q6OiBmbHVzaF9oZWFkZXJzKCkKKworICAgICAgRmluYWxseSBzZW5kIHRoZSBoZWFkZXJzIHRvIHRoZSBvdXRwdXQgc3RyZWFtIGFuZCBmbHVzaCB0aGUgaW50ZXJuYWwKKyAgICAgIGhlYWRlcnMgYnVmZmVyLgorCisgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAogICAgLi4gbWV0aG9kOjogbG9nX3JlcXVlc3QoY29kZT0nLScsIHNpemU9Jy0nKQogCkBAIC0yNTAsOCArMjcwLDExIEBACiAKICAgIC4uIG1ldGhvZDo6IGFkZHJlc3Nfc3RyaW5nKCkKIAotICAgICAgUmV0dXJucyB0aGUgY2xpZW50IGFkZHJlc3MsIGZvcm1hdHRlZCBmb3IgbG9nZ2luZy4gQSBuYW1lIGxvb2t1cCBpcwotICAgICAgcGVyZm9ybWVkIG9uIHRoZSBjbGllbnQncyBJUCBhZGRyZXNzLgorICAgICAgUmV0dXJucyB0aGUgY2xpZW50IGFkZHJlc3MuCisKKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAgICBQcmV2aW91c2x5LCBhIG5hbWUgbG9va3VwIHdhcyBwZXJmb3JtZWQuIFRvIGF2b2lkIG5hbWUgcmVzb2x1dGlvbgorICAgICAgICAgZGVsYXlzLCBpdCBub3cgYWx3YXlzIHJldHVybnMgdGhlIElQIGFkZHJlc3MuCiAKIAogLi4gY2xhc3M6OiBTaW1wbGVIVFRQUmVxdWVzdEhhbmRsZXIocmVxdWVzdCwgY2xpZW50X2FkZHJlc3MsIHNlcnZlcikKQEAgLTI5OSw3ICszMjIsNyBAQAogICAgICAgcmVzcG9uc2UgaWYgdGhlIDpmdW5jOmBsaXN0ZGlyYCBmYWlscy4KIAogICAgICAgSWYgdGhlIHJlcXVlc3Qgd2FzIG1hcHBlZCB0byBhIGZpbGUsIGl0IGlzIG9wZW5lZCBhbmQgdGhlIGNvbnRlbnRzIGFyZQotICAgICAgcmV0dXJuZWQuICBBbnkgOmV4YzpgSU9FcnJvcmAgZXhjZXB0aW9uIGluIG9wZW5pbmcgdGhlIHJlcXVlc3RlZCBmaWxlIGlzCisgICAgICByZXR1cm5lZC4gIEFueSA6ZXhjOmBPU0Vycm9yYCBleGNlcHRpb24gaW4gb3BlbmluZyB0aGUgcmVxdWVzdGVkIGZpbGUgaXMKICAgICAgIG1hcHBlZCB0byBhIGBgNDA0YGAsIGBgJ0ZpbGUgbm90IGZvdW5kJ2BgIGVycm9yLiBPdGhlcndpc2UsIHRoZSBjb250ZW50CiAgICAgICB0eXBlIGlzIGd1ZXNzZWQgYnkgY2FsbGluZyB0aGUgOm1ldGg6YGd1ZXNzX3R5cGVgIG1ldGhvZCwgd2hpY2ggaW4gdHVybgogICAgICAgdXNlcyB0aGUgKmV4dGVuc2lvbnNfbWFwKiB2YXJpYWJsZS4KQEAgLTM3OCwzICs0MDEsOSBAQAogCiAgICBOb3RlIHRoYXQgQ0dJIHNjcmlwdHMgd2lsbCBiZSBydW4gd2l0aCBVSUQgb2YgdXNlciBub2JvZHksIGZvciBzZWN1cml0eQogICAgcmVhc29ucy4gIFByb2JsZW1zIHdpdGggdGhlIENHSSBzY3JpcHQgd2lsbCBiZSB0cmFuc2xhdGVkIHRvIGVycm9yIDQwMy4KKworOmNsYXNzOmBDR0lIVFRQUmVxdWVzdEhhbmRsZXJgIGNhbiBiZSBlbmFibGVkIGluIHRoZSBjb21tYW5kIGxpbmUgYnkgcGFzc2luZwordGhlIGBgLS1jZ2lgYCBvcHRpb24uOjoKKworICAgICAgICBweXRob24gLW0gaHR0cC5zZXJ2ZXIgLS1jZ2kgODAwMAorCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9pbWFwbGliLnJzdCBiL0RvYy9saWJyYXJ5L2ltYXBsaWIucnN0CmluZGV4IDNmNDVjOTUuLmZlZmIyODQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2ltYXBsaWIucnN0CisrKyBiL0RvYy9saWJyYXJ5L2ltYXBsaWIucnN0CkBAIC02NCwxNCArNjQsMjEgQEAKIFRoZXJlJ3MgYWxzbyBhIHN1YmNsYXNzIGZvciBzZWN1cmUgY29ubmVjdGlvbnM6CiAKIAotLi4gY2xhc3M6OiBJTUFQNF9TU0woaG9zdD0nJywgcG9ydD1JTUFQNF9TU0xfUE9SVCwga2V5ZmlsZT1Ob25lLCBjZXJ0ZmlsZT1Ob25lKQorLi4gY2xhc3M6OiBJTUFQNF9TU0woaG9zdD0nJywgcG9ydD1JTUFQNF9TU0xfUE9SVCwga2V5ZmlsZT1Ob25lLCBjZXJ0ZmlsZT1Ob25lLCBzc2xfY29udGV4dD1Ob25lKQogCiAgICBUaGlzIGlzIGEgc3ViY2xhc3MgZGVyaXZlZCBmcm9tIDpjbGFzczpgSU1BUDRgIHRoYXQgY29ubmVjdHMgb3ZlciBhbiBTU0wKICAgIGVuY3J5cHRlZCBzb2NrZXQgKHRvIHVzZSB0aGlzIGNsYXNzIHlvdSBuZWVkIGEgc29ja2V0IG1vZHVsZSB0aGF0IHdhcyBjb21waWxlZAogICAgd2l0aCBTU0wgc3VwcG9ydCkuICBJZiAqaG9zdCogaXMgbm90IHNwZWNpZmllZCwgYGAnJ2BgICh0aGUgbG9jYWwgaG9zdCkgaXMgdXNlZC4KICAgIElmICpwb3J0KiBpcyBvbWl0dGVkLCB0aGUgc3RhbmRhcmQgSU1BUDQtb3Zlci1TU0wgcG9ydCAoOTkzKSBpcyB1c2VkLiAgKmtleWZpbGUqCiAgICBhbmQgKmNlcnRmaWxlKiBhcmUgYWxzbyBvcHRpb25hbCAtIHRoZXkgY2FuIGNvbnRhaW4gYSBQRU0gZm9ybWF0dGVkIHByaXZhdGUga2V5Ci0gICBhbmQgY2VydGlmaWNhdGUgY2hhaW4gZmlsZSBmb3IgdGhlIFNTTCBjb25uZWN0aW9uLgorICAgYW5kIGNlcnRpZmljYXRlIGNoYWluIGZpbGUgZm9yIHRoZSBTU0wgY29ubmVjdGlvbi4gKnNzbF9jb250ZXh0KiBwYXJhbWV0ZXIgaXMgYQorICAgOmNsYXNzOmBzc2wuU1NMQ29udGV4dGAgb2JqZWN0IHdoaWNoIGFsbG93cyBidW5kbGluZyBTU0wgY29uZmlndXJhdGlvbgorICAgb3B0aW9ucywgY2VydGlmaWNhdGVzIGFuZCBwcml2YXRlIGtleXMgaW50byBhIHNpbmdsZSAocG90ZW50aWFsbHkgbG9uZy1saXZlZCkKKyAgIHN0cnVjdHVyZS4gTm90ZSB0aGF0IHRoZSAqa2V5ZmlsZSovKmNlcnRmaWxlKiBwYXJhbWV0ZXJzIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCAqc3NsX2NvbnRleHQqLAorICAgYSA6Y2xhc3M6YFZhbHVlRXJyb3JgIGlzIHRocm93biBpZiAqa2V5ZmlsZSovKmNlcnRmaWxlKiBpcyBwcm92aWRlZCBhbG9uZyB3aXRoICpzc2xfY29udGV4dCouCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAqc3NsX2NvbnRleHQqIHBhcmFtZXRlciBhZGRlZC4KIAogCiBUaGUgc2Vjb25kIHN1YmNsYXNzIGFsbG93cyBmb3IgY29ubmVjdGlvbnMgY3JlYXRlZCBieSBhIGNoaWxkIHByb2Nlc3M6CkBAIC0xMDYsMTMgKzExMywxNSBAQAogCiAuLiBmdW5jdGlvbjo6IFRpbWUySW50ZXJuYWxkYXRlKGRhdGVfdGltZSkKIAotICAgQ29udmVydCAqZGF0ZV90aW1lKiB0byBhbiBJTUFQNCBgYElOVEVSTkFMREFURWBgIHJlcHJlc2VudGF0aW9uLiAgVGhlCi0gICByZXR1cm4gdmFsdWUgaXMgYSBzdHJpbmcgaW4gdGhlIGZvcm06IGBgIkRELU1tbS1ZWVlZIEhIOk1NOlNTCi0gICArSEhNTSJgYCAoaW5jbHVkaW5nIGRvdWJsZS1xdW90ZXMpLiAgVGhlICpkYXRlX3RpbWUqIGFyZ3VtZW50IGNhbiBiZSBhCi0gICBudW1iZXIgKGludCBvciBmbG9hdCkgcmVwcmVzZW50aW5nIHNlY29uZHMgc2luY2UgZXBvY2ggKGFzIHJldHVybmVkCi0gICBieSA6ZnVuYzpgdGltZS50aW1lYCksIGEgOS10dXBsZSByZXByZXNlbnRpbmcgbG9jYWwgdGltZSAoYXMgcmV0dXJuZWQgYnkKLSAgIDpmdW5jOmB0aW1lLmxvY2FsdGltZWApLCBvciBhIGRvdWJsZS1xdW90ZWQgc3RyaW5nLiAgSW4gdGhlIGxhc3QgY2FzZSwgaXQKLSAgIGlzIGFzc3VtZWQgdG8gYWxyZWFkeSBiZSBpbiB0aGUgY29ycmVjdCBmb3JtYXQuCisgICBDb252ZXJ0ICpkYXRlX3RpbWUqIHRvIGFuIElNQVA0IGBgSU5URVJOQUxEQVRFYGAgcmVwcmVzZW50YXRpb24uCisgICBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgc3RyaW5nIGluIHRoZSBmb3JtOiBgYCJERC1NbW0tWVlZWSBISDpNTTpTUworICAgK0hITU0iYGAgKGluY2x1ZGluZyBkb3VibGUtcXVvdGVzKS4gIFRoZSAqZGF0ZV90aW1lKiBhcmd1bWVudCBjYW4KKyAgIGJlIGEgbnVtYmVyIChpbnQgb3IgZmxvYXQpIHJlcHJlc2VudGluZyBzZWNvbmRzIHNpbmNlIGVwb2NoIChhcworICAgcmV0dXJuZWQgYnkgOmZ1bmM6YHRpbWUudGltZWApLCBhIDktdHVwbGUgcmVwcmVzZW50aW5nIGxvY2FsIHRpbWUKKyAgIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgdGltZS5zdHJ1Y3RfdGltZWAgKGFzIHJldHVybmVkIGJ5CisgICA6ZnVuYzpgdGltZS5sb2NhbHRpbWVgKSwgYW4gYXdhcmUgaW5zdGFuY2Ugb2YKKyAgIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZXRpbWVgLCBvciBhIGRvdWJsZS1xdW90ZWQgc3RyaW5nLiAgSW4gdGhlIGxhc3QKKyAgIGNhc2UsIGl0IGlzIGFzc3VtZWQgdG8gYWxyZWFkeSBiZSBpbiB0aGUgY29ycmVjdCBmb3JtYXQuCiAKIE5vdGUgdGhhdCBJTUFQNCBtZXNzYWdlIG51bWJlcnMgY2hhbmdlIGFzIHRoZSBtYWlsYm94IGNoYW5nZXM7IGluIHBhcnRpY3VsYXIsCiBhZnRlciBhbiBgYEVYUFVOR0VgYCBjb21tYW5kIHBlcmZvcm1zIGRlbGV0aW9ucyB0aGUgcmVtYWluaW5nIG1lc3NhZ2VzIGFyZQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvaW1wLnJzdCBiL0RvYy9saWJyYXJ5L2ltcC5yc3QKaW5kZXggMTM0NWIyNS4uM2U3OTkzNiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvaW1wLnJzdAorKysgYi9Eb2MvbGlicmFyeS9pbXAucnN0CkBAIC0zMCw2ICszMCw5IEBACiAgICA6Y29uc3Q6YFBZX1NPVVJDRWAsIDpjb25zdDpgUFlfQ09NUElMRURgLCBvciA6Y29uc3Q6YENfRVhURU5TSU9OYCwgZGVzY3JpYmVkCiAgICBiZWxvdy4KIAorICAgLi4gZGVwcmVjYXRlZDo6IDMuMworICAgICAgVXNlIHRoZSBjb25zdGFudHMgZGVmaW5lZCBvbiA6bW9kOmBpbXBvcnRsaWIubWFjaGluZXJ5YCBpbnN0ZWFkLgorCiAKIC4uIGZ1bmN0aW9uOjogZmluZF9tb2R1bGUobmFtZVssIHBhdGhdKQogCkBAIC02OSw2ICs3Miw5IEBACiAgICB0aGVuIHVzZSA6ZnVuYzpgZmluZF9tb2R1bGVgIHdpdGggdGhlICpwYXRoKiBhcmd1bWVudCBzZXQgdG8gYGBQLl9fcGF0aF9fYGAuCiAgICBXaGVuICpQKiBpdHNlbGYgaGFzIGEgZG90dGVkIG5hbWUsIGFwcGx5IHRoaXMgcmVjaXBlIHJlY3Vyc2l2ZWx5LgogCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisgICAgICBVc2UgOmZ1bmM6YGltcG9ydGxpYi5maW5kX2xvYWRlcmAgaW5zdGVhZC4KKwogCiAuLiBmdW5jdGlvbjo6IGxvYWRfbW9kdWxlKG5hbWUsIGZpbGUsIHBhdGhuYW1lLCBkZXNjcmlwdGlvbikKIApAQCAtOTAsNiArOTYsMTAgQEAKICAgIGl0IHdhcyBub3QgYGBOb25lYGAsIGV2ZW4gd2hlbiBhbiBleGNlcHRpb24gaXMgcmFpc2VkLiAgVGhpcyBpcyBiZXN0IGRvbmUKICAgIHVzaW5nIGEgOmtleXdvcmQ6YHRyeWAgLi4uIDprZXl3b3JkOmBmaW5hbGx5YCBzdGF0ZW1lbnQuCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKyAgICAgIFVubmVlZGVkIGFzIGxvYWRlcnMgc2hvdWxkIGJlIHVzZWQgdG8gbG9hZCBtb2R1bGVzIGFuZAorICAgICAgOmZ1bmM6YGZpbmRfbW9kdWxlYCBpcyBkZXByZWNhdGVkLgorCiAKIC4uIGZ1bmN0aW9uOjogbmV3X21vZHVsZShuYW1lKQogCkBAIC05NywzNyArMTA3LDYgQEAKICAgIGluIGBgc3lzLm1vZHVsZXNgYC4KIAogCi0uLiBmdW5jdGlvbjo6IGxvY2tfaGVsZCgpCi0KLSAgIFJldHVybiBgYFRydWVgYCBpZiB0aGUgaW1wb3J0IGxvY2sgaXMgY3VycmVudGx5IGhlbGQsIGVsc2UgYGBGYWxzZWBgLiBPbgotICAgcGxhdGZvcm1zIHdpdGhvdXQgdGhyZWFkcywgYWx3YXlzIHJldHVybiBgYEZhbHNlYGAuCi0KLSAgIE9uIHBsYXRmb3JtcyB3aXRoIHRocmVhZHMsIGEgdGhyZWFkIGV4ZWN1dGluZyBhbiBpbXBvcnQgaG9sZHMgYW4gaW50ZXJuYWwgbG9jawotICAgdW50aWwgdGhlIGltcG9ydCBpcyBjb21wbGV0ZS4gVGhpcyBsb2NrIGJsb2NrcyBvdGhlciB0aHJlYWRzIGZyb20gZG9pbmcgYW4KLSAgIGltcG9ydCB1bnRpbCB0aGUgb3JpZ2luYWwgaW1wb3J0IGNvbXBsZXRlcywgd2hpY2ggaW4gdHVybiBwcmV2ZW50cyBvdGhlciB0aHJlYWRzCi0gICBmcm9tIHNlZWluZyBpbmNvbXBsZXRlIG1vZHVsZSBvYmplY3RzIGNvbnN0cnVjdGVkIGJ5IHRoZSBvcmlnaW5hbCB0aHJlYWQgd2hpbGUKLSAgIGluIHRoZSBwcm9jZXNzIG9mIGNvbXBsZXRpbmcgaXRzIGltcG9ydCAoYW5kIHRoZSBpbXBvcnRzLCBpZiBhbnksIHRyaWdnZXJlZCBieQotICAgdGhhdCkuCi0KLQotLi4gZnVuY3Rpb246OiBhY3F1aXJlX2xvY2soKQotCi0gICBBY3F1aXJlIHRoZSBpbnRlcnByZXRlcidzIGltcG9ydCBsb2NrIGZvciB0aGUgY3VycmVudCB0aHJlYWQuICBUaGlzIGxvY2sgc2hvdWxkCi0gICBiZSB1c2VkIGJ5IGltcG9ydCBob29rcyB0byBlbnN1cmUgdGhyZWFkLXNhZmV0eSB3aGVuIGltcG9ydGluZyBtb2R1bGVzLgotCi0gICBPbmNlIGEgdGhyZWFkIGhhcyBhY3F1aXJlZCB0aGUgaW1wb3J0IGxvY2ssIHRoZSBzYW1lIHRocmVhZCBtYXkgYWNxdWlyZSBpdAotICAgYWdhaW4gd2l0aG91dCBibG9ja2luZzsgdGhlIHRocmVhZCBtdXN0IHJlbGVhc2UgaXQgb25jZSBmb3IgZWFjaCB0aW1lIGl0IGhhcwotICAgYWNxdWlyZWQgaXQuCi0KLSAgIE9uIHBsYXRmb3JtcyB3aXRob3V0IHRocmVhZHMsIHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLgotCi0KLS4uIGZ1bmN0aW9uOjogcmVsZWFzZV9sb2NrKCkKLQotICAgUmVsZWFzZSB0aGUgaW50ZXJwcmV0ZXIncyBpbXBvcnQgbG9jay4gT24gcGxhdGZvcm1zIHdpdGhvdXQgdGhyZWFkcywgdGhpcwotICAgZnVuY3Rpb24gZG9lcyBub3RoaW5nLgotCi0KIC4uIGZ1bmN0aW9uOjogcmVsb2FkKG1vZHVsZSkKIAogICAgUmVsb2FkIGEgcHJldmlvdXNseSBpbXBvcnRlZCAqbW9kdWxlKi4gIFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgbW9kdWxlIG9iamVjdCwgc28KQEAgLTIyNSw2ICsyMDQsNDkgQEAKICAgIG1hZ2ljIG51bWJlciwgYXMgcmV0dXJuZWQgYnkgOmZ1bmM6YGdldF9tYWdpY2AuCiAKIAorVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgaGVscCBpbnRlcmFjdCB3aXRoIHRoZSBpbXBvcnQgc3lzdGVtJ3MgaW50ZXJuYWwKK2xvY2tpbmcgbWVjaGFuaXNtLiAgTG9ja2luZyBzZW1hbnRpY3Mgb2YgaW1wb3J0cyBhcmUgYW4gaW1wbGVtZW50YXRpb24KK2RldGFpbCB3aGljaCBtYXkgdmFyeSBmcm9tIHJlbGVhc2UgdG8gcmVsZWFzZS4gIEhvd2V2ZXIsIFB5dGhvbiBlbnN1cmVzCit0aGF0IGNpcmN1bGFyIGltcG9ydHMgd29yayB3aXRob3V0IGFueSBkZWFkbG9ja3MuCisKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBJbiBQeXRob24gMy4zLCB0aGUgbG9ja2luZyBzY2hlbWUgaGFzIGNoYW5nZWQgdG8gcGVyLW1vZHVsZSBsb2NrcyBmb3IKKyAgIHRoZSBtb3N0IHBhcnQuICBBIGdsb2JhbCBpbXBvcnQgbG9jayBpcyBrZXB0IGZvciBzb21lIGNyaXRpY2FsIHRhc2tzLAorICAgc3VjaCBhcyBpbml0aWFsaXppbmcgdGhlIHBlci1tb2R1bGUgbG9ja3MuCisKKworLi4gZnVuY3Rpb246OiBsb2NrX2hlbGQoKQorCisgICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhlIGdsb2JhbCBpbXBvcnQgbG9jayBpcyBjdXJyZW50bHkgaGVsZCwgZWxzZQorICAgYGBGYWxzZWBgLiBPbiBwbGF0Zm9ybXMgd2l0aG91dCB0aHJlYWRzLCBhbHdheXMgcmV0dXJuIGBgRmFsc2VgYC4KKworICAgT24gcGxhdGZvcm1zIHdpdGggdGhyZWFkcywgYSB0aHJlYWQgZXhlY3V0aW5nIGFuIGltcG9ydCBmaXJzdCBob2xkcyBhCisgICBnbG9iYWwgaW1wb3J0IGxvY2ssIHRoZW4gc2V0cyB1cCBhIHBlci1tb2R1bGUgbG9jayBmb3IgdGhlIHJlc3Qgb2YgdGhlCisgICBpbXBvcnQuICBUaGlzIGJsb2NrcyBvdGhlciB0aHJlYWRzIGZyb20gaW1wb3J0aW5nIHRoZSBzYW1lIG1vZHVsZSB1bnRpbAorICAgdGhlIG9yaWdpbmFsIGltcG9ydCBjb21wbGV0ZXMsIHByZXZlbnRpbmcgb3RoZXIgdGhyZWFkcyBmcm9tIHNlZWluZworICAgaW5jb21wbGV0ZSBtb2R1bGUgb2JqZWN0cyBjb25zdHJ1Y3RlZCBieSB0aGUgb3JpZ2luYWwgdGhyZWFkLiAgQW4KKyAgIGV4Y2VwdGlvbiBpcyBtYWRlIGZvciBjaXJjdWxhciBpbXBvcnRzLCB3aGljaCBieSBjb25zdHJ1Y3Rpb24gaGF2ZSB0bworICAgZXhwb3NlIGFuIGluY29tcGxldGUgbW9kdWxlIG9iamVjdCBhdCBzb21lIHBvaW50LgorCisuLiBmdW5jdGlvbjo6IGFjcXVpcmVfbG9jaygpCisKKyAgIEFjcXVpcmUgdGhlIGludGVycHJldGVyJ3MgZ2xvYmFsIGltcG9ydCBsb2NrIGZvciB0aGUgY3VycmVudCB0aHJlYWQuCisgICBUaGlzIGxvY2sgc2hvdWxkIGJlIHVzZWQgYnkgaW1wb3J0IGhvb2tzIHRvIGVuc3VyZSB0aHJlYWQtc2FmZXR5IHdoZW4KKyAgIGltcG9ydGluZyBtb2R1bGVzLgorCisgICBPbmNlIGEgdGhyZWFkIGhhcyBhY3F1aXJlZCB0aGUgaW1wb3J0IGxvY2ssIHRoZSBzYW1lIHRocmVhZCBtYXkgYWNxdWlyZSBpdAorICAgYWdhaW4gd2l0aG91dCBibG9ja2luZzsgdGhlIHRocmVhZCBtdXN0IHJlbGVhc2UgaXQgb25jZSBmb3IgZWFjaCB0aW1lIGl0IGhhcworICAgYWNxdWlyZWQgaXQuCisKKyAgIE9uIHBsYXRmb3JtcyB3aXRob3V0IHRocmVhZHMsIHRoaXMgZnVuY3Rpb24gZG9lcyBub3RoaW5nLgorCisKKy4uIGZ1bmN0aW9uOjogcmVsZWFzZV9sb2NrKCkKKworICAgUmVsZWFzZSB0aGUgaW50ZXJwcmV0ZXIncyBnbG9iYWwgaW1wb3J0IGxvY2suIE9uIHBsYXRmb3JtcyB3aXRob3V0CisgICB0aHJlYWRzLCB0aGlzIGZ1bmN0aW9uIGRvZXMgbm90aGluZy4KKworCiBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyB3aXRoIGludGVnZXIgdmFsdWVzLCBkZWZpbmVkIGluIHRoaXMgbW9kdWxlLCBhcmUgdXNlZAogdG8gaW5kaWNhdGUgdGhlIHNlYXJjaCByZXN1bHQgb2YgOmZ1bmM6YGZpbmRfbW9kdWxlYC4KIApAQCAtMjMzLDMxICsyNTUsNDMgQEAKIAogICAgVGhlIG1vZHVsZSB3YXMgZm91bmQgYXMgYSBzb3VyY2UgZmlsZS4KIAorICAgLi4gZGVwcmVjYXRlZDo6IDMuMworCiAKIC4uIGRhdGE6OiBQWV9DT01QSUxFRAogCiAgICBUaGUgbW9kdWxlIHdhcyBmb3VuZCBhcyBhIGNvbXBpbGVkIGNvZGUgb2JqZWN0IGZpbGUuCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKwogCiAuLiBkYXRhOjogQ19FWFRFTlNJT04KIAogICAgVGhlIG1vZHVsZSB3YXMgZm91bmQgYXMgZHluYW1pY2FsbHkgbG9hZGFibGUgc2hhcmVkIGxpYnJhcnkuCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKwogCiAuLiBkYXRhOjogUEtHX0RJUkVDVE9SWQogCiAgICBUaGUgbW9kdWxlIHdhcyBmb3VuZCBhcyBhIHBhY2thZ2UgZGlyZWN0b3J5LgogCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisKIAogLi4gZGF0YTo6IENfQlVJTFRJTgogCiAgICBUaGUgbW9kdWxlIHdhcyBmb3VuZCBhcyBhIGJ1aWx0LWluIG1vZHVsZS4KIAorICAgLi4gZGVwcmVjYXRlZDo6IDMuMworCiAKIC4uIGRhdGE6OiBQWV9GUk9aRU4KIAogICAgVGhlIG1vZHVsZSB3YXMgZm91bmQgYXMgYSBmcm96ZW4gbW9kdWxlLgogCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisKIAogLi4gY2xhc3M6OiBOdWxsSW1wb3J0ZXIocGF0aF9zdHJpbmcpCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2ltcG9ydGxpYi5yc3QgYi9Eb2MvbGlicmFyeS9pbXBvcnRsaWIucnN0CmluZGV4IGM5Zjc0MmEuLmNlYTJkYTAgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2ltcG9ydGxpYi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvaW1wb3J0bGliLnJzdApAQCAtODYsNiArODYsMzEgQEAKICAgICB0aGF0IHdhcyBpbXBvcnRlZCAoZS5nLiBgYHBrZy5tb2RgYCksIHdoaWxlIDpmdW5jOmBfX2ltcG9ydF9fYCByZXR1cm5zIHRoZQogICAgIHRvcC1sZXZlbCBwYWNrYWdlIG9yIG1vZHVsZSAoZS5nLiBgYHBrZ2BgKS4KIAorLi4gZnVuY3Rpb246OiBmaW5kX2xvYWRlcihuYW1lLCBwYXRoPU5vbmUpCisKKyAgIEZpbmQgdGhlIGxvYWRlciBmb3IgYSBtb2R1bGUsIG9wdGlvbmFsbHkgd2l0aGluIHRoZSBzcGVjaWZpZWQgKnBhdGgqLiBJZiB0aGUKKyAgIG1vZHVsZSBpcyBpbiA6YXR0cjpgc3lzLm1vZHVsZXNgLCB0aGVuIGBgc3lzLm1vZHVsZXNbbmFtZV0uX19sb2FkZXJfX2BgIGlzCisgICByZXR1cm5lZCAodW5sZXNzIHRoZSBsb2FkZXIgd291bGQgYmUgYGBOb25lYGAsIGluIHdoaWNoIGNhc2UKKyAgIDpleGM6YFZhbHVlRXJyb3JgIGlzIHJhaXNlZCkuIE90aGVyd2lzZSBhIHNlYXJjaCB1c2luZyA6YXR0cjpgc3lzLm1ldGFfcGF0aGAKKyAgIGlzIGRvbmUuIGBgTm9uZWBgIGlzIHJldHVybmVkIGlmIG5vIGxvYWRlciBpcyBmb3VuZC4KKworICAgQSBkb3R0ZWQgbmFtZSBkb2VzIG5vdCBoYXZlIGl0cyBwYXJlbnQncyBpbXBsaWNpdGx5IGltcG9ydGVkLiBJZiB0aGF0IGlzCisgICBkZXNpcmVkIChhbHRob3VnaCBub3QgbmVzc2FyaWx5IHJlcXVpcmVkIHRvIGZpbmQgdGhlIGxvYWRlciwgaXQgd2lsbCBtb3N0CisgICBsaWtlbHkgYmUgbmVlZGVkIGlmIHRoZSBsb2FkZXIgYWN0dWFsbHkgaXMgdXNlZCB0byBsb2FkIHRoZSBtb2R1bGUpLCB0aGVuCisgICB5b3Ugd2lsbCBoYXZlIHRvIGltcG9ydCB0aGUgcGFja2FnZXMgY29udGFpbmluZyB0aGUgbW9kdWxlIHByaW9yIHRvIGNhbGxpbmcKKyAgIHRoaXMgZnVuY3Rpb24uCisKKy4uIGZ1bmN0aW9uOjogaW52YWxpZGF0ZV9jYWNoZXMoKQorCisgICBJbnZhbGlkYXRlIHRoZSBpbnRlcm5hbCBjYWNoZXMgb2YgdGhlIGZpbmRlcnMgc3RvcmVkIGF0CisgICA6ZGF0YTpgc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGVgLiBJZiBhIGZpbmRlciBpbXBsZW1lbnRzCisgICA6bWV0aDpgYWJjLkZpbmRlci5pbnZhbGlkYXRlX2NhY2hlcygpYCB0aGVuIGl0IHdpbGwgYmUgY2FsbGVkIHRvIHBlcmZvcm0gdGhlCisgICBpbnZhbGlkYXRpb24uICBUaGlzIGZ1bmN0aW9uIG1heSBiZSBuZWVkZWQgaWYgc29tZSBtb2R1bGVzIGFyZSBpbnN0YWxsZWQKKyAgIHdoaWxlIHlvdXIgcHJvZ3JhbSBpcyBydW5uaW5nIGFuZCB5b3UgZXhwZWN0IHRoZSBwcm9ncmFtIHRvIG5vdGljZSB0aGUKKyAgIGNoYW5nZXMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAKIDptb2Q6YGltcG9ydGxpYi5hYmNgIC0tIEFic3RyYWN0IGJhc2UgY2xhc3NlcyByZWxhdGVkIHRvIGltcG9ydAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xMTEsNiArMTM2LDEyIEBACiAgICAgICAgIGJlIHRoZSB2YWx1ZSBvZiA6YXR0cjpgX19wYXRoX19gIGZyb20gdGhlIHBhcmVudCBwYWNrYWdlLiBJZiBhIGxvYWRlcgogICAgICAgICBjYW5ub3QgYmUgZm91bmQsIGBgTm9uZWBgIGlzIHJldHVybmVkLgogCisgICAuLiBtZXRob2Q6OiBpbnZhbGlkYXRlX2NhY2hlcygpCisKKyAgICAgICAgQW4gb3B0aW9uYWwgbWV0aG9kIHdoaWNoLCB3aGVuIGNhbGxlZCwgc2hvdWxkIGludmFsaWRhdGUgYW55IGludGVybmFsCisgICAgICAgIGNhY2hlIHVzZWQgYnkgdGhlIGZpbmRlci4gVXNlZCBieSA6ZnVuYzpgaW52YWxpZGF0ZV9jYWNoZXMoKWAgd2hlbgorICAgICAgICBpbnZhbGlkYXRpbmcgdGhlIGNhY2hlcyBvZiBhbGwgY2FjaGVkIGZpbmRlcnMuCisKIAogLi4gY2xhc3M6OiBMb2FkZXIKIApAQCAtMjIwLDYgKzI1MSwzOSBAQAogICAgICAgICBtb2R1bGUuCiAKIAorLi4gY2xhc3M6OiBGaWxlTG9hZGVyKGZ1bGxuYW1lLCBwYXRoKQorCisgICBBbiBhYnN0cmFjdCBiYXNlIGNsYXNzIHdoaWNoIGluaGVyaXRzIGZyb20gOmNsYXNzOmBSZXNvdXJjZUxvYWRlcmAgYW5kCisgICA6Y2xhc3M6YEV4ZWN1dGlvbkxvYWRlcmAsIHByb3ZpZGluZyBjb25jcmVhdGUgaW1wbGVtZW50YXRpb25zIG9mCisgICA6bWV0aDpgUmVzb3VyY2VMb2FkZXIuZ2V0X2RhdGFgIGFuZCA6bWV0aDpgRXhlY3V0aW9uTG9hZGVyLmdldF9maWxlbmFtZWAuCisKKyAgIFRoZSAqZnVsbG5hbWUqIGFyZ3VtZW50IGlzIGEgZnVsbHkgcmVzb2x2ZWQgbmFtZSBvZiB0aGUgbW9kdWxlIHRoZSBsb2FkZXIgaXMKKyAgIHRvIGhhbmRsZS4gVGhlICpwYXRoKiBhcmd1bWVudCBpcyB0aGUgcGF0aCB0byB0aGUgZmlsZSBmb3IgdGhlIG1vZHVsZS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKyAgIC4uIGF0dHJpYnV0ZTo6IG5hbWUKKworICAgICAgVGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0aGUgbG9hZGVyIGNhbiBoYW5kbGUuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IHBhdGgKKworICAgICAgUGF0aCB0byB0aGUgZmlsZSBvZiB0aGUgbW9kdWxlLgorCisgICAuLiBtZXRob2Q6OiBsb2FkX21vZHVsZShmdWxsbmFtZT1Ob25lKQorCisgICAgICBDYWxscworICAgICAgYGBzdXBlcigpLmxvYWRfbW9kdWxlKGZ1bGxuYW1lIGlmIGZ1bGxuYW1lIGlzIG5vdCBOb25lIGVsc2Ugc2VsZi5uYW1lKWBgLgorCisgICAuLiBtZXRob2Q6OiBnZXRfZmlsZW5hbWUoZnVsbG5hbWUpCisKKyAgICAgIFJldHVybnMgOmF0dHI6YHBhdGhgIHdoZW4gYGBmdWxsbmFtZWBgIGVxdWFscyA6YXR0cjpgbmFtZWAgb3IgYGBOb25lYGAuCisKKyAgIC4uIG1ldGhvZDo6IGdldF9kYXRhKHBhdGgpCisKKyAgICAgIFJldHVybnMgdGhlIG9wZW4sIGJpbmFyeSBmaWxlIGZvciAqcGF0aCouCisKKwogLi4gY2xhc3M6OiBTb3VyY2VMb2FkZXIKIAogICAgIEFuIGFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGltcGxlbWVudGluZyBzb3VyY2UgKGFuZCBvcHRpb25hbGx5IGJ5dGVjb2RlKQpAQCAtMjM5LDExICszMDMsMzAgQEAKICAgICBvcHRpbWl6YXRpb24gdG8gc3BlZWQgdXAgbG9hZGluZyBieSByZW1vdmluZyB0aGUgcGFyc2luZyBzdGVwIG9mIFB5dGhvbidzCiAgICAgY29tcGlsZXIsIGFuZCBzbyBubyBieXRlY29kZS1zcGVjaWZpYyBBUEkgaXMgZXhwb3NlZC4KIAorICAgIC4uIG1ldGhvZDo6IHBhdGhfc3RhdHMoc2VsZiwgcGF0aCkKKworICAgICAgICBPcHRpb25hbCBhYnN0cmFjdCBtZXRob2Qgd2hpY2ggcmV0dXJucyBhIDpjbGFzczpgZGljdGAgY29udGFpbmluZworICAgICAgICBtZXRhZGF0YSBhYm91dCB0aGUgc3BlY2lmZWQgcGF0aC4gIFN1cHBvcnRlZCBkaWN0aW9uYXJ5IGtleXMgYXJlOgorCisgICAgICAgIC0gYGAnbXRpbWUnYGAgKG1hbmRhdG9yeSk6IGFuIGludGVnZXIgb3IgZmxvYXRpbmctcG9pbnQgbnVtYmVyCisgICAgICAgICAgcmVwcmVzZW50aW5nIHRoZSBtb2RpZmljYXRpb24gdGltZSBvZiB0aGUgc291cmNlIGNvZGU7CisgICAgICAgIC0gYGAnc2l6ZSdgYCAob3B0aW9uYWwpOiB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgc291cmNlIGNvZGUuCisKKyAgICAgICAgQW55IG90aGVyIGtleXMgaW4gdGhlIGRpY3Rpb25hcnkgYXJlIGlnbm9yZWQsIHRvIGFsbG93IGZvciBmdXR1cmUKKyAgICAgICAgZXh0ZW5zaW9ucy4KKworICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogICAgIC4uIG1ldGhvZDo6IHBhdGhfbXRpbWUoc2VsZiwgcGF0aCkKIAogICAgICAgICBPcHRpb25hbCBhYnN0cmFjdCBtZXRob2Qgd2hpY2ggcmV0dXJucyB0aGUgbW9kaWZpY2F0aW9uIHRpbWUgZm9yIHRoZQogICAgICAgICBzcGVjaWZpZWQgcGF0aC4KIAorICAgICAgICAuLiBkZXByZWNhdGVkOjogMy4zCisgICAgICAgICAgIFRoaXMgbWV0aG9kIGlzIGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mIDptZXRoOmBwYXRoX3N0YXRzYC4gIFlvdSBkb24ndAorICAgICAgICAgICBoYXZlIHRvIGltcGxlbWVudCBpdCwgYnV0IGl0IGlzIHN0aWxsIGF2YWlsYWJsZSBmb3IgY29tcGF0aWJpbGl0eQorICAgICAgICAgICBwdXJwb3Nlcy4KKwogICAgIC4uIG1ldGhvZDo6IHNldF9kYXRhKHNlbGYsIHBhdGgsIGRhdGEpCiAKICAgICAgICAgT3B0aW9uYWwgYWJzdHJhY3QgbWV0aG9kIHdoaWNoIHdyaXRlcyB0aGUgc3BlY2lmaWVkIGJ5dGVzIHRvIGEgZmlsZQpAQCAtMjY4LDggKzM1MSwxMCBAQAogICAgIC4uIG1ldGhvZDo6IGlzX3BhY2thZ2Uoc2VsZiwgZnVsbG5hbWUpCiAKICAgICAgICAgQ29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgOm1ldGg6YEluc3BlY3RMb2FkZXIuaXNfcGFja2FnZWAuIEEgbW9kdWxlCi0gICAgICAgIGlzIGRldGVybWluZWQgdG8gYmUgYSBwYWNrYWdlIGlmIGl0cyBmaWxlIHBhdGggaXMgYSBmaWxlIG5hbWVkCi0gICAgICAgIGBgX19pbml0X19gYCB3aGVuIHRoZSBmaWxlIGV4dGVuc2lvbiBpcyByZW1vdmVkLgorICAgICAgICBpcyBkZXRlcm1pbmVkIHRvIGJlIGEgcGFja2FnZSBpZiBpdHMgZmlsZSBwYXRoIChhcyBwcm92aWRlZCBieQorICAgICAgICA6bWV0aDpgRXhlY3V0aW9uTG9hZGVyLmdldF9maWxlbmFtZWApIGlzIGEgZmlsZSBuYW1lZAorICAgICAgICBgYF9faW5pdF9fYGAgd2hlbiB0aGUgZmlsZSBleHRlbnNpb24gaXMgcmVtb3ZlZCAqKmFuZCoqIHRoZSBtb2R1bGUgbmFtZQorICAgICAgICBpdHNlbGYgZG9lcyBub3QgZW5kIGluIGBgX19pbml0X19gYC4KIAogCiAuLiBjbGFzczo6IFB5TG9hZGVyCkBAIC0zNzAsNiArNDU1LDEwIEBACiAgICAgICAgIDpjbGFzczpgUHlMb2FkZXJgLiBEbyBub3RlIHRoYXQgdGhpcyBzb2x1dGlvbiB3aWxsIG5vdCBzdXBwb3J0CiAgICAgICAgIHNvdXJjZWxlc3MvYnl0ZWNvZGUtb25seSBsb2FkaW5nOyBvbmx5IHNvdXJjZSAqYW5kKiBieXRlY29kZSBsb2FkaW5nLgogCisgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICBVcGRhdGVkIHRvIHBhcnNlIChidXQgbm90IHVzZSkgdGhlIG5ldyBzb3VyY2Ugc2l6ZSBmaWVsZCBpbiBieXRlY29kZQorICAgICAgIGZpbGVzIHdoZW4gcmVhZGluZyBhbmQgdG8gd3JpdGUgb3V0IHRoZSBmaWVsZCBwcm9wZXJseSB3aGVuIHdyaXRpbmcuCisKICAgICAuLiBtZXRob2Q6OiBzb3VyY2VfbXRpbWUoZnVsbG5hbWUpCiAKICAgICAgICAgQW4gYWJzdHJhY3QgbWV0aG9kIHdoaWNoIHJldHVybnMgdGhlIG1vZGlmaWNhdGlvbiB0aW1lIGZvciB0aGUgc291cmNlCkBAIC00MTMsNiArNTAyLDQzIEBACiBUaGlzIG1vZHVsZSBjb250YWlucyB0aGUgdmFyaW91cyBvYmplY3RzIHRoYXQgaGVscCA6a2V5d29yZDpgaW1wb3J0YAogZmluZCBhbmQgbG9hZCBtb2R1bGVzLgogCisuLiBhdHRyaWJ1dGU6OiBTT1VSQ0VfU1VGRklYRVMKKworICAgQSBsaXN0IG9mIHN0cmluZ3MgcmVwcmVzZW50aW5nIHRoZSByZWNvZ25pemVkIGZpbGUgc3VmZml4ZXMgZm9yIHNvdXJjZQorICAgbW9kdWxlcy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGF0dHJpYnV0ZTo6IERFQlVHX0JZVEVDT0RFX1NVRkZJWEVTCisKKyAgIEEgbGlzdCBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgZmlsZSBzdWZmaXhlcyBmb3Igbm9uLW9wdGltaXplZCBieXRlY29kZQorICAgbW9kdWxlcy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGF0dHJpYnV0ZTo6IE9QVElNSVpFRF9CWVRFQ09ERV9TVUZGSVhFUworCisgICBBIGxpc3Qgb2Ygc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIGZpbGUgc3VmZml4ZXMgZm9yIG9wdGltaXplZCBieXRlY29kZQorICAgbW9kdWxlcy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGF0dHJpYnV0ZTo6IEJZVEVDT0RFX1NVRkZJWEVTCisKKyAgIEEgbGlzdCBvZiBzdHJpbmdzIHJlcHJlc2VudGluZyB0aGUgcmVjb2duaXplZCBmaWxlIHN1ZmZpeGVzIGZvciBieXRlY29kZQorICAgbW9kdWxlcy4gU2V0IHRvIGVpdGhlciA6YXR0cjpgREVCVUdfQllURUNPREVfU1VGRklYRVNgIG9yCisgICA6YXR0cjpgT1BUSU1JWkVEX0JZVEVDT0RFX1NVRkZJWEVTYCBiYXNlZCBvbiB3aGV0aGVyIGBgX19kZWJ1Z19fYGAgaXMgdHJ1ZS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGF0dHJpYnV0ZTo6IEVYVEVOU0lPTl9TVUZGSVhFUworCisgICBBIGxpc3Qgb2Ygc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIHRoZSByZWNvZ25pemVkIGZpbGUgc3VmZml4ZXMgZm9yCisgICBleHRlbnNpb24gbW9kdWxlcy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gY2xhc3M6OiBCdWlsdGluSW1wb3J0ZXIKIAogICAgIEFuIDp0ZXJtOmBpbXBvcnRlcmAgZm9yIGJ1aWx0LWluIG1vZHVsZXMuIEFsbCBrbm93biBidWlsdC1pbiBtb2R1bGVzIGFyZQpAQCAtNDQxLDcgKzU2Nyw5IEBACiAKICAgICBUaGlzIGNsYXNzIGRvZXMgbm90IHBlcmZlY3RseSBtaXJyb3IgdGhlIHNlbWFudGljcyBvZiA6a2V5d29yZDpgaW1wb3J0YCBpbgogICAgIHRlcm1zIG9mIDpkYXRhOmBzeXMucGF0aGAuIE5vIGltcGxpY2l0IHBhdGggaG9va3MgYXJlIGFzc3VtZWQgZm9yCi0gICAgc2ltcGxpZmljYXRpb24gb2YgdGhlIGNsYXNzIGFuZCBpdHMgc2VtYW50aWNzLgorICAgIHNpbXBsaWZpY2F0aW9uIG9mIHRoZSBjbGFzcyBhbmQgaXRzIHNlbWFudGljcy4gVGhpcyBpbXBsaWVzIHRoYXQgd2hlbgorICAgIGBgTm9uZWBgIGlzIGZvdW5kIGluIDpkYXRhOmBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZWAgdGhhdCBpdCBpcyBzaW1wbHkKKyAgICBpZ25vcmVkIGluc3RlYWQgb2YgaW1wbHlpbmcgYSBkZWZhdWx0IGZpbmRlci4KIAogICAgIE9ubHkgY2xhc3MgbWV0aG9kcyBhcmUgZGVmaW5lZCBieSB0aGlzIGNsYXNzIHRvIGFsbGV2aWF0ZSB0aGUgbmVlZCBmb3IKICAgICBpbnN0YW50aWF0aW9uLgpAQCAtNDUxLDcgKzU3OSw3IEBACiAgICAgICAgIENsYXNzIG1ldGhvZCB0aGF0IGF0dGVtcHRzIHRvIGZpbmQgYSA6dGVybTpgbG9hZGVyYCBmb3IgdGhlIG1vZHVsZQogICAgICAgICBzcGVjaWZpZWQgYnkgKmZ1bGxuYW1lKiBvbiA6ZGF0YTpgc3lzLnBhdGhgIG9yLCBpZiBkZWZpbmVkLCBvbgogICAgICAgICAqcGF0aCouIEZvciBlYWNoIHBhdGggZW50cnkgdGhhdCBpcyBzZWFyY2hlZCwKLSAgICAgICAgOmRhdGE6YHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlYCBpcyBjaGVja2VkLiBJZiBhbiBub24tZmFsc2Ugb2JqZWN0IGlzCisgICAgICAgIDpkYXRhOmBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZWAgaXMgY2hlY2tlZC4gSWYgYSBub24tZmFsc2Ugb2JqZWN0IGlzCiAgICAgICAgIGZvdW5kIHRoZW4gaXQgaXMgdXNlZCBhcyB0aGUgOnRlcm06YGZpbmRlcmAgdG8gbG9vayBmb3IgdGhlIG1vZHVsZQogICAgICAgICBiZWluZyBzZWFyY2hlZCBmb3IuIElmIG5vIGVudHJ5IGlzIGZvdW5kIGluCiAgICAgICAgIDpkYXRhOmBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZWAsIHRoZW4gOmRhdGE6YHN5cy5wYXRoX2hvb2tzYCBpcwpAQCAtNDYwLDE1ICs1ODgsMTc3IEBACiAgICAgICAgIG1vZHVsZS4gSWYgbm8gZmluZGVyIGlzIGV2ZXIgZm91bmQgdGhlbiBgYE5vbmVgYCBpcyByZXR1cm5lZC4KIAogCisuLiBjbGFzczo6IEZpbGVGaW5kZXIocGF0aCwgXCpsb2FkZXJfZGV0YWlscykKKworICAgQSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiA6Y2xhc3M6YGltcG9ydGxpYi5hYmMuRmluZGVyYCB3aGljaCBjYWNoZXMKKyAgIHJlc3VsdHMgZnJvbSB0aGUgZmlsZSBzeXN0ZW0uCisKKyAgIFRoZSAqcGF0aCogYXJndW1lbnQgaXMgdGhlIGRpcmVjdG9yeSBmb3Igd2hpY2ggdGhlIGZpbmRlciBpcyBpbiBjaGFyZ2Ugb2YKKyAgIHNlYXJjaGluZy4KKworICAgVGhlICpsb2FkZXJfZGV0YWlscyogYXJndW1lbnQgaXMgYSB2YXJpYWJsZSBudW1iZXIgb2YgMy1pdGVtIHR1cGxlcyBlYWNoCisgICBjb250YWluaW5nIGEgbG9hZGVyLCBmaWxlIHN1ZmZpeGVzIHRoZSBsb2FkZXIgcmVjb2duaXplcywgYW5kIGEgYm9vbGVhbgorICAgcmVwcmVzZW50aW5nIHdoZXRoZXIgdGhlIGxvYWRlciBoYW5kbGVzIHBhY2thZ2VzLgorCisgICBUaGUgZmluZGVyIHdpbGwgY2FjaGUgdGhlIGRpcmVjdG9yeSBjb250ZW50cyBhcyBuZWNlc3NhcnksIG1ha2luZyBzdGF0IGNhbGxzCisgICBmb3IgZWFjaCBtb2R1bGUgc2VhcmNoIHRvIHZlcmlmeSB0aGUgY2FjaGUgaXMgbm90IG91dGRhdGVkLiBCZWNhdXNlIGNhY2hlCisgICBzdGFsZW5lc3MgcmVsaWVzIHVwb24gdGhlIGdyYW51bGFyaXR5IG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3Mgc3RhdGUKKyAgIGluZm9ybWF0aW9uIG9mIHRoZSBmaWxlIHN5c3RlbSwgdGhlcmUgaXMgYSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb24gb2YKKyAgIHNlYXJjaGluZyBmb3IgYSBtb2R1bGUsIGNyZWF0aW5nIGEgbmV3IGZpbGUsIGFuZCB0aGVuIHNlYXJjaGluZyBmb3IgdGhlCisgICBtb2R1bGUgdGhlIG5ldyBmaWxlIHJlcHJlc2VudHMuIElmIHRoZSBvcGVyYXRpb25zIGhhcHBlbiBmYXN0IGVub3VnaCB0byBmaXQKKyAgIHdpdGhpbiB0aGUgZ3JhbnVsYXJpdHkgb2Ygc3RhdCBjYWxscywgdGhlbiB0aGUgbW9kdWxlIHNlYXJjaCB3aWxsIGZhaWwuIFRvCisgICBwcmV2ZW50IHRoaXMgZnJvbSBoYXBwZW5pbmcsIHdoZW4geW91IGNyZWF0ZSBhIG1vZHVsZSBkeW5hbWljYWxseSwgbWFrZSBzdXJlCisgICB0byBjYWxsIDpmdW5jOmBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXNgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworICAgLi4gYXR0cmlidXRlOjogcGF0aAorCisgICAgICBUaGUgcGF0aCB0aGUgZmluZGVyIHdpbGwgc2VhcmNoIGluLgorCisgICAuLiBtZXRob2Q6OiBmaW5kX21vZHVsZShmdWxsbmFtZSkKKworICAgICAgQXR0ZW1wdCB0byBmaW5kIHRoZSBsb2FkZXIgdG8gaGFuZGxlICpmdWxsbmFtZSogd2l0aGluIDphdHRyOmBwYXRoYC4KKworICAgLi4gbWV0aG9kOjogaW52YWxpZGF0ZV9jYWNoZXMoKQorCisgICAgICBDbGVhciBvdXQgdGhlIGludGVybmFsIGNhY2hlLgorCisgICAuLiBjbGFzc21ldGhvZDo6IHBhdGhfaG9vayhcKmxvYWRlcl9kZXRhaWxzKQorCisgICAgICBBIGNsYXNzIG1ldGhvZCB3aGljaCByZXR1cm5zIGEgY2xvc3VyZSBmb3IgdXNlIG9uIDphdHRyOmBzeXMucGF0aF9ob29rc2AuCisgICAgICBBbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YEZpbGVGaW5kZXJgIGlzIHJldHVybmVkIGJ5IHRoZSBjbG9zdXJlIHVzaW5nIHRoZQorICAgICAgcGF0aCBhcmd1bWVudCBnaXZlbiB0byB0aGUgY2xvc3VyZSBkaXJlY3RseSBhbmQgKmxvYWRlcl9kZXRhaWxzKgorICAgICAgaW5kaXJlY3RseS4KKworICAgICAgSWYgdGhlIGFyZ3VtZW50IHRvIHRoZSBjbG9zdXJlIGlzIG5vdCBhbiBleGlzdGluZyBkaXJlY3RvcnksCisgICAgICA6ZXhjOmBJbXBvcnRFcnJvcmAgaXMgcmFpc2VkLgorCisKKy4uIGNsYXNzOjogU291cmNlRmlsZUxvYWRlcihmdWxsbmFtZSwgcGF0aCkKKworICAgQSBjb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiA6Y2xhc3M6YGltcG9ydGxpYi5hYmMuU291cmNlTG9hZGVyYCBieQorICAgc3ViY2xhc3NpbmcgOmNsYXNzOmBpbXBvcnRsaWIuYWJjLkZpbGVMb2FkZXJgIGFuZCBwcm92aWRpbmcgc29tZSBjb25jcmV0ZQorICAgaW1wbGVtZW50YXRpb25zIG9mIG90aGVyIG1ldGhvZHMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisgICAuLiBhdHRyaWJ1dGU6OiBuYW1lCisKKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhhdCB0aGlzIGxvYWRlciB3aWxsIGhhbmRsZS4KKworICAgLi4gYXR0cmlidXRlOjogcGF0aAorCisgICAgICBUaGUgcGF0aCB0byB0aGUgc291cmNlIGZpbGUuCisKKyAgIC4uIG1ldGhvZDo6IGlzX3BhY2thZ2UoZnVsbG5hbWUpCisKKyAgICAgIFJldHVybiB0cnVlIGlmIDphdHRyOmBwYXRoYCBhcHBlYXJzIHRvIGJlIGZvciBhIHBhY2thZ2UuCisKKyAgIC4uIG1ldGhvZDo6IHBhdGhfc3RhdHMocGF0aCkKKworICAgICAgQ29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgOm1ldGg6YGltcG9ydGxpYi5hYmMuU291cmNlTG9hZGVyLnBhdGhfc3RhdHNgLgorCisgICAuLiBtZXRob2Q6OiBzZXRfZGF0YShwYXRoLCBkYXRhKQorCisgICAgICBDb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiA6bWV0aDpgaW1wb3J0bGliLmFiYy5Tb3VyY2VMb2FkZXIuc2V0X2RhdGFgLgorCisKKy4uIGNsYXNzOjogU291cmNlbGVzc0ZpbGVMb2FkZXIoZnVsbG5hbWUsIHBhdGgpCisKKyAgIEEgY29uY3JldGUgaW1wbGVtZW50YXRpb24gb2YgOmNsYXNzOmBpbXBvcnRsaWIuYWJjLkZpbGVMb2FkZXJgIHdoaWNoIGNhbgorICAgaW1wb3J0IGJ5dGVjb2RlIGZpbGVzIChpLmUuIG5vIHNvdXJjZSBjb2RlIGZpbGVzIGV4aXN0KS4KKworICAgUGxlYXNlIG5vdGUgdGhhdCBkaXJlY3QgdXNlIG9mIGJ5dGVjb2RlIGZpbGVzIChhbmQgdGh1cyBub3Qgc291cmNlIGNvZGUKKyAgIGZpbGVzKSBpbmhpYml0cyB5b3VyIG1vZHVsZXMgZnJvbSBiZWluZyB1c2FibGUgYnkgYWxsIFB5dGhvbgorICAgaW1wbGVtZW50YXRpb25zIG9yIG5ldyB2ZXJzaW9ucyBvZiBQeXRob24gd2hpY2ggY2hhbmdlIHRoZSBieXRlY29kZQorICAgZm9ybWF0LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworICAgLi4gYXR0cmlidXRlOjogbmFtZQorCisgICAgICBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoZSBsb2FkZXIgd2lsbCBoYW5kbGUuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IHBhdGgKKworICAgICAgVGhlIHBhdGggdG8gdGhlIGJ5dGVjb2RlIGZpbGUuCisKKyAgIC4uIG1ldGhvZDo6IGlzX3BhY2thZ2UoZnVsbG5hbWUpCisKKyAgICAgIERldGVybWluZXMgaWYgdGhlIG1vZHVsZSBpcyBhIHBhY2thZ2UgYmFzZWQgb24gOmF0dHI6YHBhdGhgLgorCisgICAuLiBtZXRob2Q6OiBnZXRfY29kZShmdWxsbmFtZSkKKworICAgICAgUmV0dXJucyB0aGUgY29kZSBvYmplY3QgZm9yIDphdHRyOmBuYW1lYCBjcmVhdGVkIGZyb20gOmF0dHI6YHBhdGhgLgorCisgICAuLiBtZXRob2Q6OiBnZXRfc291cmNlKGZ1bGxuYW1lKQorCisgICAgICBSZXR1cm5zIGBgTm9uZWBgIGFzIGJ5dGVjb2RlIGZpbGVzIGhhdmUgbm8gc291cmNlIHdoZW4gdGhpcyBsb2FkZXIgaXMKKyAgICAgIHVzZWQuCisKKworLi4gY2xhc3M6OiBFeHRlbnNpb25GaWxlTG9hZGVyKGZ1bGxuYW1lLCBwYXRoKQorCisgICBBIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIDpjbGFzczpgaW1wb3J0bGliLmFiYy5JbnNwZWN0TG9hZGVyYCBmb3IKKyAgIGV4dGVuc2lvbiBtb2R1bGVzLgorCisgICBUaGUgKmZ1bGxuYW1lKiBhcmd1bWVudCBzcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0aGUgbG9hZGVyIGlzIHRvCisgICBzdXBwb3J0LiBUaGUgKnBhdGgqIGFyZ3VtZW50IGlzIHRoZSBwYXRoIHRvIHRoZSBleHRlbnNpb24gbW9kdWxlJ3MgZmlsZS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKyAgIC4uIGF0dHJpYnV0ZTo6IG5hbWUKKworICAgICAgTmFtZSBvZiB0aGUgbW9kdWxlIHRoZSBsb2FkZXIgc3VwcG9ydHMuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IHBhdGgKKworICAgICAgUGF0aCB0byB0aGUgZXh0ZW5zaW9uIG1vZHVsZS4KKworICAgLi4gbWV0aG9kOjogbG9hZF9tb2R1bGUoZnVsbG5hbWU9Tm9uZSkKKworICAgICAgTG9hZHMgdGhlIGV4dGVuc2lvbiBtb2R1bGUgaWYgYW5kIG9ubHkgaWYgKmZ1bGxuYW1lKiBpcyB0aGUgc2FtZSBhcworICAgICAgOmF0dHI6YG5hbWVgIG9yIGlzIGBgTm9uZWBgLgorCisgICAuLiBtZXRob2Q6OiBpc19wYWNrYWdlKGZ1bGxuYW1lKQorCisgICAgICBSZXR1cm5zIGBgRmFsc2VgYCBhcyBleHRlbnNpb24gbW9kdWxlcyBjYW4gbmV2ZXIgYmUgcGFja2FnZXMuCisKKyAgIC4uIG1ldGhvZDo6IGdldF9jb2RlKGZ1bGxuYW1lKQorCisgICAgICBSZXR1cm5zIGBgTm9uZWBgIGFzIGV4dGVuc2lvbiBtb2R1bGVzIGxhY2sgYSBjb2RlIG9iamVjdC4KKworICAgLi4gbWV0aG9kOjogZ2V0X3NvdXJjZShmdWxsbmFtZSkKKworICAgICAgUmV0dXJucyBgYE5vbmVgYCBhcyBleHRlbnNpb24gbW9kdWxlcyBkbyBub3QgaGF2ZSBzb3VyY2UgY29kZS4KKworCiA6bW9kOmBpbXBvcnRsaWIudXRpbGAgLS0gVXRpbGl0eSBjb2RlIGZvciBpbXBvcnRlcnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAuLiBtb2R1bGU6OiBpbXBvcnRsaWIudXRpbAotICAgIDpzeW5vcHNpczogSW1wb3J0ZXJzIGFuZCBwYXRoIGhvb2tzCisgICAgOnN5bm9wc2lzOiBVdGlsaXR5IGNvZGUgZm9yIGltcG9ydGVycwogCiBUaGlzIG1vZHVsZSBjb250YWlucyB0aGUgdmFyaW91cyBvYmplY3RzIHRoYXQgaGVscCBpbiB0aGUgY29uc3RydWN0aW9uIG9mCiBhbiA6dGVybTpgaW1wb3J0ZXJgLgogCisuLiBmdW5jdGlvbjo6IHJlc29sdmVfbmFtZShuYW1lLCBwYWNrYWdlKQorCisgICBSZXNvbHZlIGEgcmVsYXRpdmUgbW9kdWxlIG5hbWUgdG8gYW4gYWJzb2x1dGUgb25lLgorCisgICBJZiAgKipuYW1lKiogaGFzIG5vIGxlYWRpbmcgZG90cywgdGhlbiAqKm5hbWUqKiBpcyBzaW1wbHkgcmV0dXJuZWQuIFRoaXMKKyAgIGFsbG93cyBmb3IgdXNhZ2Ugc3VjaCBhcworICAgYGBpbXBvcnRsaWIudXRpbC5yZXNvbHZlX25hbWUoJ3N5cycsIF9fcGFja2FnZV9fKWBgIHdpdGhvdXQgZG9pbmcgYQorICAgY2hlY2sgdG8gc2VlIGlmIHRoZSAqKnBhY2thZ2UqKiBhcmd1bWVudCBpcyBuZWVkZWQuCisKKyAgIDpleGM6YFZhbHVlRXJyb3JgIGlzIHJhaXNlZCBpZiAqKm5hbWUqKiBpcyBhIHJlbGF0aXZlIG1vZHVsZSBuYW1lIGJ1dAorICAgcGFja2FnZSBpcyBhIGZhbHNlIHZhbHVlIChlLmcuIGBgTm9uZWBgIG9yIHRoZSBlbXB0eSBzdHJpbmcpLgorICAgOmV4YzpgVmFsdWVFcnJvcmAgaXMgYWxzbyByYWlzZWQgYSByZWxhdGl2ZSBuYW1lIHdvdWxkIGVzY2FwZSBpdHMgY29udGFpbmluZworICAgcGFja2FnZSAoZS5nLiByZXF1ZXN0aW5nIGBgLi5iYWNvbmBgIGZyb20gd2l0aGluIHRoZSBgYHNwYW1gYCBwYWNrYWdlKS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIC4uIGRlY29yYXRvcjo6IG1vZHVsZV9mb3JfbG9hZGVyCiAKICAgICBBIDp0ZXJtOmBkZWNvcmF0b3JgIGZvciBhIDp0ZXJtOmBsb2FkZXJgIG1ldGhvZCwKQEAgLTQ3NywyMiArNzY3LDMwIEBACiAgICAgc2lnbmF0dXJlIHRha2luZyB0d28gcG9zaXRpb25hbCBhcmd1bWVudHMKICAgICAoZS5nLiBgYGxvYWRfbW9kdWxlKHNlbGYsIG1vZHVsZSlgYCkgZm9yIHdoaWNoIHRoZSBzZWNvbmQgYXJndW1lbnQKICAgICB3aWxsIGJlIHRoZSBtb2R1bGUgKipvYmplY3QqKiB0byBiZSB1c2VkIGJ5IHRoZSBsb2FkZXIuCi0gICAgTm90ZSB0aGF0IHRoZSBkZWNvcmF0b3IKLSAgICB3aWxsIG5vdCB3b3JrIG9uIHN0YXRpYyBtZXRob2RzIGJlY2F1c2Ugb2YgdGhlIGFzc3VtcHRpb24gb2YgdHdvCi0gICAgYXJndW1lbnRzLgorICAgIE5vdGUgdGhhdCB0aGUgZGVjb3JhdG9yIHdpbGwgbm90IHdvcmsgb24gc3RhdGljIG1ldGhvZHMgYmVjYXVzZSBvZiB0aGUKKyAgICBhc3N1bXB0aW9uIG9mIHR3byBhcmd1bWVudHMuCiAKICAgICBUaGUgZGVjb3JhdGVkIG1ldGhvZCB3aWxsIHRha2UgaW4gdGhlICoqbmFtZSoqIG9mIHRoZSBtb2R1bGUgdG8gYmUgbG9hZGVkCiAgICAgYXMgZXhwZWN0ZWQgZm9yIGEgOnRlcm06YGxvYWRlcmAuIElmIHRoZSBtb2R1bGUgaXMgbm90IGZvdW5kIGluCiAgICAgOmRhdGE6YHN5cy5tb2R1bGVzYCB0aGVuIGEgbmV3IG9uZSBpcyBjb25zdHJ1Y3RlZCB3aXRoIGl0cwotICAgIDphdHRyOmBfX25hbWVfX2AgYXR0cmlidXRlIHNldC4gT3RoZXJ3aXNlIHRoZSBtb2R1bGUgZm91bmQgaW4KLSAgICA6ZGF0YTpgc3lzLm1vZHVsZXNgIHdpbGwgYmUgcGFzc2VkIGludG8gdGhlIG1ldGhvZC4gSWYgYW4KLSAgICBleGNlcHRpb24gaXMgcmFpc2VkIGJ5IHRoZSBkZWNvcmF0ZWQgbWV0aG9kIGFuZCBhIG1vZHVsZSB3YXMgYWRkZWQgdG8KKyAgICA6YXR0cjpgX19uYW1lX19gIGF0dHJpYnV0ZSBzZXQgdG8gKipuYW1lKiosIDphdHRyOmBfX2xvYWRlcl9fYCBzZXQgdG8KKyAgICAqKnNlbGYqKiwgYW5kIDphdHRyOmBfX3BhY2thZ2VfX2Agc2V0IGlmCisgICAgOm1ldGg6YGltcG9ydGxpYi5hYmMuSW5zcGVjdExvYWRlci5pc19wYWNrYWdlYCBpcyBkZWZpbmVkIGZvciAqKnNlbGYqKiBhbmQKKyAgICBkb2VzIG5vdCByYWlzZSA6ZXhjOmBJbXBvcnRFcnJvcmAgZm9yICoqbmFtZSoqLiBJZiBhIG5ldyBtb2R1bGUgaXMgbm90CisgICAgbmVlZGVkIHRoZW4gdGhlIG1vZHVsZSBmb3VuZCBpbiA6ZGF0YTpgc3lzLm1vZHVsZXNgIHdpbGwgYmUgcGFzc2VkIGludG8gdGhlCisgICAgbWV0aG9kLgorCisgICAgSWYgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZCBieSB0aGUgZGVjb3JhdGVkIG1ldGhvZCBhbmQgYSBtb2R1bGUgd2FzIGFkZGVkIHRvCiAgICAgOmRhdGE6YHN5cy5tb2R1bGVzYCBpdCB3aWxsIGJlIHJlbW92ZWQgdG8gcHJldmVudCBhIHBhcnRpYWxseSBpbml0aWFsaXplZAogICAgIG1vZHVsZSBmcm9tIGJlaW5nIGluIGxlZnQgaW4gOmRhdGE6YHN5cy5tb2R1bGVzYC4gSWYgdGhlIG1vZHVsZSB3YXMgYWxyZWFkeQogICAgIGluIDpkYXRhOmBzeXMubW9kdWxlc2AgdGhlbiBpdCBpcyBsZWZ0IGFsb25lLgogCiAgICAgVXNlIG9mIHRoaXMgZGVjb3JhdG9yIGhhbmRsZXMgYWxsIHRoZSBkZXRhaWxzIG9mIHdoaWNoIG1vZHVsZSBvYmplY3QgYQotICAgIGxvYWRlciBzaG91bGQgaW5pdGlhbGl6ZSBhcyBzcGVjaWZpZWQgYnkgOnBlcDpgMzAyYC4KKyAgICBsb2FkZXIgc2hvdWxkIGluaXRpYWxpemUgYXMgc3BlY2lmaWVkIGJ5IDpwZXA6YDMwMmAgYXMgYmVzdCBhcyBwb3NzaWJsZS4KKworICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAgOmF0dHI6YF9fbG9hZGVyX19gIGFuZCA6YXR0cjpgX19wYWNrYWdlX19gIGFyZSBhdXRvbWF0aWNhbGx5IHNldAorICAgICAgICh3aGVuIHBvc3NpYmxlKS4KIAogLi4gZGVjb3JhdG9yOjogc2V0X2xvYWRlcgogCkBAIC01MDAsNyArNzk4LDEzIEBACiAgICAgdG8gc2V0IHRoZSA6YXR0cjpgX19sb2FkZXJfX2AKICAgICBhdHRyaWJ1dGUgb24gbG9hZGVkIG1vZHVsZXMuIElmIHRoZSBhdHRyaWJ1dGUgaXMgYWxyZWFkeSBzZXQgdGhlIGRlY29yYXRvcgogICAgIGRvZXMgbm90aGluZy4gSXQgaXMgYXNzdW1lZCB0aGF0IHRoZSBmaXJzdCBwb3NpdGlvbmFsIGFyZ3VtZW50IHRvIHRoZQotICAgIHdyYXBwZWQgbWV0aG9kIGlzIHdoYXQgOmF0dHI6YF9fbG9hZGVyX19gIHNob3VsZCBiZSBzZXQgdG8uCisgICAgd3JhcHBlZCBtZXRob2QgKGkuZS4gYGBzZWxmYGApIGlzIHdoYXQgOmF0dHI6YF9fbG9hZGVyX19gIHNob3VsZCBiZSBzZXQgdG8uCisKKyAgIC4uIG5vdGU6OgorCisgICAgICBJdCBpcyByZWNvbW1lbmRlZCB0aGF0IDpmdW5jOmBtb2R1bGVfZm9yX2xvYWRlcmAgYmUgdXNlZCBvdmVyIHRoaXMKKyAgICAgIGRlY29yYXRvciBhcyBpdCBzdWJzdW1lcyB0aGlzIGZ1bmN0aW9uYWxpdHkuCisKIAogLi4gZGVjb3JhdG9yOjogc2V0X3BhY2thZ2UKIApAQCAtNTExLDggKzgxNSwxMiBAQAogICAgIHNldCBvbiBhbmQgbm90IHRoZSBtb2R1bGUgZm91bmQgaW4gOmRhdGE6YHN5cy5tb2R1bGVzYC4KIAogICAgIFJlbGlhbmNlIG9uIHRoaXMgZGVjb3JhdG9yIGlzIGRpc2NvdXJhZ2VkIHdoZW4gaXQgaXMgcG9zc2libGUgdG8gc2V0Ci0gICAgOmF0dHI6YF9fcGFja2FnZV9fYCBiZWZvcmUgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgY29kZSBpcyBwb3NzaWJsZS4gQnkKLSAgICBzZXR0aW5nIGl0IGJlZm9yZSB0aGUgY29kZSBmb3IgdGhlIG1vZHVsZSBpcyBleGVjdXRlZCBpdCBhbGxvd3MgdGhlCi0gICAgYXR0cmlidXRlIHRvIGJlIHVzZWQgYXQgdGhlIGdsb2JhbCBsZXZlbCBvZiB0aGUgbW9kdWxlIGR1cmluZworICAgIDphdHRyOmBfX3BhY2thZ2VfX2AgYmVmb3JlIGltcG9ydGluZy4gQnkKKyAgICBzZXR0aW5nIGl0IGJlZm9yZWhhbmQgdGhlIGNvZGUgZm9yIHRoZSBtb2R1bGUgaXMgZXhlY3V0ZWQgd2l0aCB0aGUKKyAgICBhdHRyaWJ1dGUgc2V0IGFuZCB0aHVzIGNhbiBiZSB1c2VkIGJ5IGdsb2JhbCBsZXZlbCBjb2RlIGR1cmluZwogICAgIGluaXRpYWxpemF0aW9uLgogCisgICAuLiBub3RlOjoKKworICAgICAgSXQgaXMgcmVjb21tZW5kZWQgdGhhdCA6ZnVuYzpgbW9kdWxlX2Zvcl9sb2FkZXJgIGJlIHVzZWQgb3ZlciB0aGlzCisgICAgICBkZWNvcmF0b3IgYXMgaXQgc3Vic3VtZXMgdGhpcyBmdW5jdGlvbmFsaXR5LgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvaW5zcGVjdC5yc3QgYi9Eb2MvbGlicmFyeS9pbnNwZWN0LnJzdAppbmRleCBkMTI3Y2U4Li42NTY4ZTk0IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9pbnNwZWN0LnJzdAorKysgYi9Eb2MvbGlicmFyeS9pbnNwZWN0LnJzdApAQCAtMTkwLDYgKzE5MCwxMCBAQAogICAgY29tcGFyZWQgdG8gdGhlIGNvbnN0YW50cyBkZWZpbmVkIGluIHRoZSA6bW9kOmBpbXBgIG1vZHVsZTsgc2VlIHRoZQogICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhhdCBtb2R1bGUgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gbW9kdWxlIHR5cGVzLgogCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisgICAgICBZb3UgbWF5IGNoZWNrIHRoZSBmaWxlIHBhdGgncyBzdWZmaXggYWdhaW5zdCB0aGUgc3VwcG9ydGVkIHN1ZmZpeGVzCisgICAgICBsaXN0ZWQgaW4gOm1vZDpgaW1wb3J0bGliLm1hY2hpbmVyeWAgdG8gaW5mZXIgdGhlIHNhbWUgaW5mb3JtYXRpb24uCisKIAogLi4gZnVuY3Rpb246OiBnZXRtb2R1bGVuYW1lKHBhdGgpCiAKQEAgLTM1NSwxNyArMzU5LDI1IEBACiAgICBhcmd1bWVudCBtYXkgYmUgYSBtb2R1bGUsIGNsYXNzLCBtZXRob2QsIGZ1bmN0aW9uLCB0cmFjZWJhY2ssIGZyYW1lLCBvciBjb2RlCiAgICBvYmplY3QuICBUaGUgc291cmNlIGNvZGUgaXMgcmV0dXJuZWQgYXMgYSBsaXN0IG9mIHRoZSBsaW5lcyBjb3JyZXNwb25kaW5nIHRvIHRoZQogICAgb2JqZWN0IGFuZCB0aGUgbGluZSBudW1iZXIgaW5kaWNhdGVzIHdoZXJlIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgZmlsZSB0aGUgZmlyc3QKLSAgIGxpbmUgb2YgY29kZSB3YXMgZm91bmQuICBBbiA6ZXhjOmBJT0Vycm9yYCBpcyByYWlzZWQgaWYgdGhlIHNvdXJjZSBjb2RlIGNhbm5vdAorICAgbGluZSBvZiBjb2RlIHdhcyBmb3VuZC4gIEFuIDpleGM6YE9TRXJyb3JgIGlzIHJhaXNlZCBpZiB0aGUgc291cmNlIGNvZGUgY2Fubm90CiAgICBiZSByZXRyaWV2ZWQuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICA6ZXhjOmBPU0Vycm9yYCBpcyByYWlzZWQgaW5zdGVhZCBvZiA6ZXhjOmBJT0Vycm9yYCwgbm93IGFuIGFsaWFzIG9mIHRoZQorICAgICAgZm9ybWVyLgorCiAKIC4uIGZ1bmN0aW9uOjogZ2V0c291cmNlKG9iamVjdCkKIAogICAgUmV0dXJuIHRoZSB0ZXh0IG9mIHRoZSBzb3VyY2UgY29kZSBmb3IgYW4gb2JqZWN0LiBUaGUgYXJndW1lbnQgbWF5IGJlIGEgbW9kdWxlLAogICAgY2xhc3MsIG1ldGhvZCwgZnVuY3Rpb24sIHRyYWNlYmFjaywgZnJhbWUsIG9yIGNvZGUgb2JqZWN0LiAgVGhlIHNvdXJjZSBjb2RlIGlzCi0gICByZXR1cm5lZCBhcyBhIHNpbmdsZSBzdHJpbmcuICBBbiA6ZXhjOmBJT0Vycm9yYCBpcyByYWlzZWQgaWYgdGhlIHNvdXJjZSBjb2RlCisgICByZXR1cm5lZCBhcyBhIHNpbmdsZSBzdHJpbmcuICBBbiA6ZXhjOmBPU0Vycm9yYCBpcyByYWlzZWQgaWYgdGhlIHNvdXJjZSBjb2RlCiAgICBjYW5ub3QgYmUgcmV0cmlldmVkLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgOmV4YzpgT1NFcnJvcmAgaXMgcmFpc2VkIGluc3RlYWQgb2YgOmV4YzpgSU9FcnJvcmAsIG5vdyBhbiBhbGlhcyBvZiB0aGUKKyAgICAgIGZvcm1lci4KKwogCiAuLiBmdW5jdGlvbjo6IGNsZWFuZG9jKGRvYykKIApAQCAtNDMyLDExICs0NDQsMTYgQEAKICAgIGxvY2FscyBkaWN0aW9uYXJ5IG9mIHRoZSBnaXZlbiBmcmFtZS4KIAogCi0uLiBmdW5jdGlvbjo6IGZvcm1hdGFyZ3NwZWMoYXJnc1ssIHZhcmFyZ3MsIHZhcmt3LCBkZWZhdWx0cywgZm9ybWF0YXJnLCBmb3JtYXR2YXJhcmdzLCBmb3JtYXR2YXJrdywgZm9ybWF0dmFsdWVdKQorLi4gZnVuY3Rpb246OiBmb3JtYXRhcmdzcGVjKGFyZ3NbLCB2YXJhcmdzLCB2YXJrdywgZGVmYXVsdHMsIGt3b25seWFyZ3MsIGt3b25seWRlZmF1bHRzLCBhbm5vdGF0aW9ucywgZm9ybWF0YXJnLCBmb3JtYXR2YXJhcmdzLCBmb3JtYXR2YXJrdywgZm9ybWF0dmFsdWUsIGZvcm1hdHJldHVybnMsIGZvcm1hdGFubm90YXRpb25zXSkKIAotICAgRm9ybWF0IGEgcHJldHR5IGFyZ3VtZW50IHNwZWMgZnJvbSB0aGUgZm91ciB2YWx1ZXMgcmV0dXJuZWQgYnkKLSAgIDpmdW5jOmBnZXRhcmdzcGVjYC4gIFRoZSBmb3JtYXRcKiBhcmd1bWVudHMgYXJlIHRoZSBjb3JyZXNwb25kaW5nIG9wdGlvbmFsCi0gICBmb3JtYXR0aW5nIGZ1bmN0aW9ucyB0aGF0IGFyZSBjYWxsZWQgdG8gdHVybiBuYW1lcyBhbmQgdmFsdWVzIGludG8gc3RyaW5ncy4KKyAgIEZvcm1hdCBhIHByZXR0eSBhcmd1bWVudCBzcGVjIGZyb20gdGhlIHZhbHVlcyByZXR1cm5lZCBieQorICAgOmZ1bmM6YGdldGFyZ3NwZWNgIG9yIDpmdW5jOmBnZXRmdWxsYXJnc3BlY2AuCisKKyAgIFRoZSBmaXJzdCBzZXZlbiBhcmd1bWVudHMgYXJlIChgYGFyZ3NgYCwgYGB2YXJhcmdzYGAsIGBgdmFya3dgYCwKKyAgIGBgZGVmYXVsdHNgYCwgYGBrd29ubHlhcmdzYGAsIGBga3dvbmx5ZGVmYXVsdHNgYCwgYGBhbm5vdGF0aW9uc2BgKS4gVGhlCisgICBvdGhlciBmaXZlIGFyZ3VtZW50cyBhcmUgdGhlIGNvcnJlc3BvbmRpbmcgb3B0aW9uYWwgZm9ybWF0dGluZyBmdW5jdGlvbnMKKyAgIHRoYXQgYXJlIGNhbGxlZCB0byB0dXJuIG5hbWVzIGFuZCB2YWx1ZXMgaW50byBzdHJpbmdzLiBUaGUgbGFzdCBhcmd1bWVudAorICAgaXMgYW4gb3B0aW9uYWwgZnVuY3Rpb24gdG8gZm9ybWF0IHRoZSBzZXF1ZW5jZSBvZiBhcmd1bWVudHMuCiAKIAogLi4gZnVuY3Rpb246OiBmb3JtYXRhcmd2YWx1ZXMoYXJnc1ssIHZhcmFyZ3MsIHZhcmt3LCBsb2NhbHMsIGZvcm1hdGFyZywgZm9ybWF0dmFyYXJncywgZm9ybWF0dmFya3csIGZvcm1hdHZhbHVlXSkKQEAgLTQ4MCw2ICs0OTcsMjIgQEAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCiAKKy4uIGZ1bmN0aW9uOjogZ2V0Y2xvc3VyZXZhcnMoZnVuYykKKworICAgR2V0IHRoZSBtYXBwaW5nIG9mIGV4dGVybmFsIG5hbWUgcmVmZXJlbmNlcyBpbiBhIFB5dGhvbiBmdW5jdGlvbiBvcgorICAgbWV0aG9kICpmdW5jKiB0byB0aGVpciBjdXJyZW50IHZhbHVlcy4gQQorICAgOnRlcm06YG5hbWVkIHR1cGxlYCBgYENsb3N1cmVWYXJzKG5vbmxvY2FscywgZ2xvYmFscywgYnVpbHRpbnMsIHVuYm91bmQpYGAKKyAgIGlzIHJldHVybmVkLiAqbm9ubG9jYWxzKiBtYXBzIHJlZmVyZW5jZWQgbmFtZXMgdG8gbGV4aWNhbCBjbG9zdXJlCisgICB2YXJpYWJsZXMsICpnbG9iYWxzKiB0byB0aGUgZnVuY3Rpb24ncyBtb2R1bGUgZ2xvYmFscyBhbmQgKmJ1aWx0aW5zKiB0bworICAgdGhlIGJ1aWx0aW5zIHZpc2libGUgZnJvbSB0aGUgZnVuY3Rpb24gYm9keS4gKnVuYm91bmQqIGlzIHRoZSBzZXQgb2YgbmFtZXMKKyAgIHJlZmVyZW5jZWQgaW4gdGhlIGZ1bmN0aW9uIHRoYXQgY291bGQgbm90IGJlIHJlc29sdmVkIGF0IGFsbCBnaXZlbiB0aGUKKyAgIGN1cnJlbnQgbW9kdWxlIGdsb2JhbHMgYW5kIGJ1aWx0aW5zLgorCisgICA6ZXhjOmBUeXBlRXJyb3JgIGlzIHJhaXNlZCBpZiAqZnVuYyogaXMgbm90IGEgUHl0aG9uIGZ1bmN0aW9uIG9yIG1ldGhvZC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gX2luc3BlY3Qtc3RhY2s6CiAKIFRoZSBpbnRlcnByZXRlciBzdGFjawpAQCAtNjQzLDMgKzY3NiwyNyBAQAogICAgICogR0VOX0NMT1NFRDogRXhlY3V0aW9uIGhhcyBjb21wbGV0ZWQuCiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgorCitUaGUgY3VycmVudCBpbnRlcm5hbCBzdGF0ZSBvZiB0aGUgZ2VuZXJhdG9yIGNhbiBhbHNvIGJlIHF1ZXJpZWQuIFRoaXMgaXMKK21vc3RseSB1c2VmdWwgZm9yIHRlc3RpbmcgcHVycG9zZXMsIHRvIGVuc3VyZSB0aGF0IGludGVybmFsIHN0YXRlIGlzIGJlaW5nCit1cGRhdGVkIGFzIGV4cGVjdGVkOgorCisuLiBmdW5jdGlvbjo6IGdldGdlbmVyYXRvcmxvY2FscyhnZW5lcmF0b3IpCisKKyAgIEdldCB0aGUgbWFwcGluZyBvZiBsaXZlIGxvY2FsIHZhcmlhYmxlcyBpbiAqZ2VuZXJhdG9yKiB0byB0aGVpciBjdXJyZW50CisgICB2YWx1ZXMuICBBIGRpY3Rpb25hcnkgaXMgcmV0dXJuZWQgdGhhdCBtYXBzIGZyb20gdmFyaWFibGUgbmFtZXMgdG8gdmFsdWVzLgorICAgVGhpcyBpcyB0aGUgZXF1aXZhbGVudCBvZiBjYWxsaW5nIDpmdW5jOmBsb2NhbHNgIGluIHRoZSBib2R5IG9mIHRoZQorICAgZ2VuZXJhdG9yLCBhbmQgYWxsIHRoZSBzYW1lIGNhdmVhdHMgYXBwbHkuCisKKyAgIElmICpnZW5lcmF0b3IqIGlzIGEgOnRlcm06YGdlbmVyYXRvcmAgd2l0aCBubyBjdXJyZW50bHkgYXNzb2NpYXRlZCBmcmFtZSwKKyAgIHRoZW4gYW4gZW1wdHkgZGljdGlvbmFyeSBpcyByZXR1cm5lZC4gIDpleGM6YFR5cGVFcnJvcmAgaXMgcmFpc2VkIGlmCisgICAqZ2VuZXJhdG9yKiBpcyBub3QgYSBQeXRob24gZ2VuZXJhdG9yIG9iamVjdC4KKworICAgLi4gaW1wbC1kZXRhaWw6OgorCisgICAgICBUaGlzIGZ1bmN0aW9uIHJlbGllcyBvbiB0aGUgZ2VuZXJhdG9yIGV4cG9zaW5nIGEgUHl0aG9uIHN0YWNrIGZyYW1lCisgICAgICBmb3IgaW50cm9zcGVjdGlvbiwgd2hpY2ggaXNuJ3QgZ3VhcmFudGVlZCB0byBiZSB0aGUgY2FzZSBpbiBhbGwKKyAgICAgIGltcGxlbWVudGF0aW9ucyBvZiBQeXRob24uIEluIHN1Y2ggY2FzZXMsIHRoaXMgZnVuY3Rpb24gd2lsbCBhbHdheXMKKyAgICAgIHJldHVybiBhbiBlbXB0eSBkaWN0aW9uYXJ5LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2ludGVybmV0LnJzdCBiL0RvYy9saWJyYXJ5L2ludGVybmV0LnJzdAppbmRleCA2ZmE3ODczLi5jZTkxZGRlIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9pbnRlcm5ldC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvaW50ZXJuZXQucnN0CkBAIC00MiwzICs0Miw0IEBACiAgICBodHRwLmNvb2tpZWphci5yc3QKICAgIHhtbHJwYy5jbGllbnQucnN0CiAgICB4bWxycGMuc2VydmVyLnJzdAorICAgaXBhZGRyZXNzLnJzdApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvaW8ucnN0IGIvRG9jL2xpYnJhcnkvaW8ucnN0CmluZGV4IGJlY2M0YTIuLmRkOThhNDYgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2lvLnJzdAorKysgYi9Eb2MvbGlicmFyeS9pby5yc3QKQEAgLTMzLDYgKzMzLDEwIEBACiB3aWxsIHJhaXNlIGEgYGBUeXBlRXJyb3JgYC4gIFNvIHdpbGwgZ2l2aW5nIGEgOmNsYXNzOmBieXRlc2Agb2JqZWN0IHRvIHRoZQogYGB3cml0ZSgpYGAgbWV0aG9kIG9mIGEgdGV4dCBzdHJlYW0uCiAKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBPcGVyYXRpb25zIGRlZmluZWQgaW4gdGhpcyBtb2R1bGUgdXNlZCB0byByYWlzZSA6ZXhjOmBJT0Vycm9yYCwgd2hpY2ggaXMKKyAgIG5vdyBhbiBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KKwogCiBUZXh0IEkvTwogXl5eXl5eXl4KQEAgLTEwOSwyMSArMTEzLDEzIEBACiAKIC4uIGV4Y2VwdGlvbjo6IEJsb2NraW5nSU9FcnJvcgogCi0gICBFcnJvciByYWlzZWQgd2hlbiBibG9ja2luZyB3b3VsZCBvY2N1ciBvbiBhIG5vbi1ibG9ja2luZyBzdHJlYW0uICBJdCBpbmhlcml0cwotICAgOmV4YzpgSU9FcnJvcmAuCi0KLSAgIEluIGFkZGl0aW9uIHRvIHRob3NlIG9mIDpleGM6YElPRXJyb3JgLCA6ZXhjOmBCbG9ja2luZ0lPRXJyb3JgIGhhcyBvbmUKLSAgIGF0dHJpYnV0ZToKLQotICAgLi4gYXR0cmlidXRlOjogY2hhcmFjdGVyc193cml0dGVuCi0KLSAgICAgIEFuIGludGVnZXIgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd3JpdHRlbiB0byB0aGUgc3RyZWFtCi0gICAgICBiZWZvcmUgaXQgYmxvY2tlZC4KKyAgIFRoaXMgaXMgYSBjb21wYXRpYmlsaXR5IGFsaWFzIGZvciB0aGUgYnVpbHRpbiA6ZXhjOmBCbG9ja2luZ0lPRXJyb3JgCisgICBleGNlcHRpb24uCiAKIAogLi4gZXhjZXB0aW9uOjogVW5zdXBwb3J0ZWRPcGVyYXRpb24KIAotICAgQW4gZXhjZXB0aW9uIGluaGVyaXRpbmcgOmV4YzpgSU9FcnJvcmAgYW5kIDpleGM6YFZhbHVlRXJyb3JgIHRoYXQgaXMgcmFpc2VkCisgICBBbiBleGNlcHRpb24gaW5oZXJpdGluZyA6ZXhjOmBPU0Vycm9yYCBhbmQgOmV4YzpgVmFsdWVFcnJvcmAgdGhhdCBpcyByYWlzZWQKICAgIHdoZW4gYW4gdW5zdXBwb3J0ZWQgb3BlcmF0aW9uIGlzIGNhbGxlZCBvbiBhIHN0cmVhbS4KIAogCkBAIC0yMDIsOCArMTk4LDggQEAKICAgIEV2ZW4gdGhvdWdoIDpjbGFzczpgSU9CYXNlYCBkb2VzIG5vdCBkZWNsYXJlIDptZXRoOmByZWFkYCwgOm1ldGg6YHJlYWRpbnRvYCwKICAgIG9yIDptZXRoOmB3cml0ZWAgYmVjYXVzZSB0aGVpciBzaWduYXR1cmVzIHdpbGwgdmFyeSwgaW1wbGVtZW50YXRpb25zIGFuZAogICAgY2xpZW50cyBzaG91bGQgY29uc2lkZXIgdGhvc2UgbWV0aG9kcyBwYXJ0IG9mIHRoZSBpbnRlcmZhY2UuICBBbHNvLAotICAgaW1wbGVtZW50YXRpb25zIG1heSByYWlzZSBhIDpleGM6YElPRXJyb3JgIHdoZW4gb3BlcmF0aW9ucyB0aGV5IGRvIG5vdAotICAgc3VwcG9ydCBhcmUgY2FsbGVkLgorICAgaW1wbGVtZW50YXRpb25zIG1heSByYWlzZSBhIDpleGM6YFZhbHVlRXJyb3JgIChvciA6ZXhjOmBVbnN1cHBvcnRlZE9wZXJhdGlvbmApCisgICB3aGVuIG9wZXJhdGlvbnMgdGhleSBkbyBub3Qgc3VwcG9ydCBhcmUgY2FsbGVkLgogCiAgICBUaGUgYmFzaWMgdHlwZSB1c2VkIGZvciBiaW5hcnkgZGF0YSByZWFkIGZyb20gb3Igd3JpdHRlbiB0byBhIGZpbGUgaXMKICAgIDpjbGFzczpgYnl0ZXNgLiAgOmNsYXNzOmBieXRlYXJyYXlgXHMgYXJlIGFjY2VwdGVkIHRvbywgYW5kIGluIHNvbWUgY2FzZXMKQEAgLTIxMSw3ICsyMDcsNyBAQAogICAgOmNsYXNzOmBzdHJgIGRhdGEuCiAKICAgIE5vdGUgdGhhdCBjYWxsaW5nIGFueSBtZXRob2QgKGV2ZW4gaW5xdWlyaWVzKSBvbiBhIGNsb3NlZCBzdHJlYW0gaXMKLSAgIHVuZGVmaW5lZC4gIEltcGxlbWVudGF0aW9ucyBtYXkgcmFpc2UgOmV4YzpgSU9FcnJvcmAgaW4gdGhpcyBjYXNlLgorICAgdW5kZWZpbmVkLiAgSW1wbGVtZW50YXRpb25zIG1heSByYWlzZSA6ZXhjOmBWYWx1ZUVycm9yYCBpbiB0aGlzIGNhc2UuCiAKICAgIElPQmFzZSAoYW5kIGl0cyBzdWJjbGFzc2VzKSBzdXBwb3J0IHRoZSBpdGVyYXRvciBwcm90b2NvbCwgbWVhbmluZyB0aGF0IGFuCiAgICA6Y2xhc3M6YElPQmFzZWAgb2JqZWN0IGNhbiBiZSBpdGVyYXRlZCBvdmVyIHlpZWxkaW5nIHRoZSBsaW5lcyBpbiBhIHN0cmVhbS4KQEAgLTI0NCw3ICsyNDAsNyBAQAogICAgLi4gbWV0aG9kOjogZmlsZW5vKCkKIAogICAgICAgUmV0dXJuIHRoZSB1bmRlcmx5aW5nIGZpbGUgZGVzY3JpcHRvciAoYW4gaW50ZWdlcikgb2YgdGhlIHN0cmVhbSBpZiBpdAotICAgICAgZXhpc3RzLiAgQW4gOmV4YzpgSU9FcnJvcmAgaXMgcmFpc2VkIGlmIHRoZSBJTyBvYmplY3QgZG9lcyBub3QgdXNlIGEgZmlsZQorICAgICAgZXhpc3RzLiAgQW4gOmV4YzpgT1NFcnJvcmAgaXMgcmFpc2VkIGlmIHRoZSBJTyBvYmplY3QgZG9lcyBub3QgdXNlIGEgZmlsZQogICAgICAgZGVzY3JpcHRvci4KIAogICAgLi4gbWV0aG9kOjogZmx1c2goKQpAQCAtMjYwLDcgKzI1Niw3IEBACiAgICAuLiBtZXRob2Q6OiByZWFkYWJsZSgpCiAKICAgICAgIFJldHVybiBgYFRydWVgYCBpZiB0aGUgc3RyZWFtIGNhbiBiZSByZWFkIGZyb20uICBJZiBGYWxzZSwgOm1ldGg6YHJlYWRgCi0gICAgICB3aWxsIHJhaXNlIDpleGM6YElPRXJyb3JgLgorICAgICAgd2lsbCByYWlzZSA6ZXhjOmBPU0Vycm9yYC4KIAogICAgLi4gbWV0aG9kOjogcmVhZGxpbmUobGltaXQ9LTEpCiAKQEAgLTI5NSwxMCArMjkxLDE1IEBACiAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKICAgICAgICAgIFRoZSBgYFNFRUtfKmBgIGNvbnN0YW50cy4KIAorICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICAgICBTb21lIG9wZXJhdGluZyBzeXN0ZW1zIGNvdWxkIHN1cHBvcnQgYWRkaXRpb25hbCB2YWx1ZXMsIGxpa2UKKyAgICAgICAgIDpkYXRhOmBvcy5TRUVLX0hPTEVgIG9yIDpkYXRhOmBvcy5TRUVLX0RBVEFgLiBUaGUgdmFsaWQgdmFsdWVzCisgICAgICAgICBmb3IgYSBmaWxlIGNvdWxkIGRlcGVuZCBvbiBpdCBiZWluZyBvcGVuIGluIHRleHQgb3IgYmluYXJ5IG1vZGUuCisKICAgIC4uIG1ldGhvZDo6IHNlZWthYmxlKCkKIAogICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSBzdHJlYW0gc3VwcG9ydHMgcmFuZG9tIGFjY2Vzcy4gIElmIGBgRmFsc2VgYCwKLSAgICAgIDptZXRoOmBzZWVrYCwgOm1ldGg6YHRlbGxgIGFuZCA6bWV0aDpgdHJ1bmNhdGVgIHdpbGwgcmFpc2UgOmV4YzpgSU9FcnJvcmAuCisgICAgICA6bWV0aDpgc2Vla2AsIDptZXRoOmB0ZWxsYCBhbmQgOm1ldGg6YHRydW5jYXRlYCB3aWxsIHJhaXNlIDpleGM6YE9TRXJyb3JgLgogCiAgICAuLiBtZXRob2Q6OiB0ZWxsKCkKIApAQCAtMzE2LDcgKzMxNyw3IEBACiAgICAuLiBtZXRob2Q6OiB3cml0YWJsZSgpCiAKICAgICAgIFJldHVybiBgYFRydWVgYCBpZiB0aGUgc3RyZWFtIHN1cHBvcnRzIHdyaXRpbmcuICBJZiBgYEZhbHNlYGAsCi0gICAgICA6bWV0aDpgd3JpdGVgIGFuZCA6bWV0aDpgdHJ1bmNhdGVgIHdpbGwgcmFpc2UgOmV4YzpgSU9FcnJvcmAuCisgICAgICA6bWV0aDpgd3JpdGVgIGFuZCA6bWV0aDpgdHJ1bmNhdGVgIHdpbGwgcmFpc2UgOmV4YzpgT1NFcnJvcmAuCiAKICAgIC4uIG1ldGhvZDo6IHdyaXRlbGluZXMobGluZXMpCiAKQEAgLTQ1MCw3ICs0NTEsNyBAQAogCiAgICAgICBXcml0ZSB0aGUgZ2l2ZW4gYnl0ZXMgb3IgYnl0ZWFycmF5IG9iamVjdCwgKmIqIGFuZCByZXR1cm4gdGhlIG51bWJlcgogICAgICAgb2YgYnl0ZXMgd3JpdHRlbiAobmV2ZXIgbGVzcyB0aGFuIGBgbGVuKGIpYGAsIHNpbmNlIGlmIHRoZSB3cml0ZSBmYWlscwotICAgICAgYW4gOmV4YzpgSU9FcnJvcmAgd2lsbCBiZSByYWlzZWQpLiAgRGVwZW5kaW5nIG9uIHRoZSBhY3R1YWwKKyAgICAgIGFuIDpleGM6YE9TRXJyb3JgIHdpbGwgYmUgcmFpc2VkKS4gIERlcGVuZGluZyBvbiB0aGUgYWN0dWFsCiAgICAgICBpbXBsZW1lbnRhdGlvbiwgdGhlc2UgYnl0ZXMgbWF5IGJlIHJlYWRpbHkgd3JpdHRlbiB0byB0aGUgdW5kZXJseWluZwogICAgICAgc3RyZWFtLCBvciBoZWxkIGluIGEgYnVmZmVyIGZvciBwZXJmb3JtYW5jZSBhbmQgbGF0ZW5jeSByZWFzb25zLgogCkBAIC00NjIsNyArNDYzLDcgQEAKIFJhdyBGaWxlIEkvTwogXl5eXl5eXl5eXl5eCiAKLS4uIGNsYXNzOjogRmlsZUlPKG5hbWUsIG1vZGU9J3InLCBjbG9zZWZkPVRydWUpCisuLiBjbGFzczo6IEZpbGVJTyhuYW1lLCBtb2RlPSdyJywgY2xvc2VmZD1UcnVlLCBvcGVuZXI9Tm9uZSkKIAogICAgOmNsYXNzOmBGaWxlSU9gIHJlcHJlc2VudHMgYW4gT1MtbGV2ZWwgZmlsZSBjb250YWluaW5nIGJ5dGVzIGRhdGEuCiAgICBJdCBpbXBsZW1lbnRzIHRoZSA6Y2xhc3M6YFJhd0lPQmFzZWAgaW50ZXJmYWNlIChhbmQgdGhlcmVmb3JlIHRoZQpAQCAtNDc1LDE0ICs0NzYsMjcgQEAKICAgICogYW4gaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIG51bWJlciBvZiBhbiBleGlzdGluZyBPUy1sZXZlbCBmaWxlIGRlc2NyaXB0b3IKICAgICAgdG8gd2hpY2ggdGhlIHJlc3VsdGluZyA6Y2xhc3M6YEZpbGVJT2Agb2JqZWN0IHdpbGwgZ2l2ZSBhY2Nlc3MuCiAKLSAgIFRoZSAqbW9kZSogY2FuIGJlIGBgJ3InYGAsIGBgJ3cnYGAgb3IgYGAnYSdgYCBmb3IgcmVhZGluZyAoZGVmYXVsdCksIHdyaXRpbmcsCi0gICBvciBhcHBlbmRpbmcuICBUaGUgZmlsZSB3aWxsIGJlIGNyZWF0ZWQgaWYgaXQgZG9lc24ndCBleGlzdCB3aGVuIG9wZW5lZCBmb3IKLSAgIHdyaXRpbmcgb3IgYXBwZW5kaW5nOyBpdCB3aWxsIGJlIHRydW5jYXRlZCB3aGVuIG9wZW5lZCBmb3Igd3JpdGluZy4gIEFkZCBhCisgICBUaGUgKm1vZGUqIGNhbiBiZSBgYCdyJ2BgLCBgYCd3J2BgLCBgYCd4J2BgIG9yIGBgJ2EnYGAgZm9yIHJlYWRpbmcKKyAgIChkZWZhdWx0KSwgd3JpdGluZywgZXhjbHVzaXZlIGNyZWF0aW9uIG9yIGFwcGVuZGluZy4gVGhlIGZpbGUgd2lsbCBiZQorICAgY3JlYXRlZCBpZiBpdCBkb2Vzbid0IGV4aXN0IHdoZW4gb3BlbmVkIGZvciB3cml0aW5nIG9yIGFwcGVuZGluZzsgaXQgd2lsbCBiZQorICAgdHJ1bmNhdGVkIHdoZW4gb3BlbmVkIGZvciB3cml0aW5nLiA6ZXhjOmBGaWxlRXhpc3RzRXJyb3JgIHdpbGwgYmUgcmFpc2VkIGlmCisgICBpdCBhbHJlYWR5IGV4aXN0cyB3aGVuIG9wZW5lZCBmb3IgY3JlYXRpbmcuIE9wZW5pbmcgYSBmaWxlIGZvciBjcmVhdGluZworICAgaW1wbGllcyB3cml0aW5nLCBzbyB0aGlzIG1vZGUgYmVoYXZlcyBpbiBhIHNpbWlsYXIgd2F5IHRvIGBgJ3cnYGAuIEFkZCBhCiAgICBgYCcrJ2BgIHRvIHRoZSBtb2RlIHRvIGFsbG93IHNpbXVsdGFuZW91cyByZWFkaW5nIGFuZCB3cml0aW5nLgogCiAgICBUaGUgOm1ldGg6YHJlYWRgICh3aGVuIGNhbGxlZCB3aXRoIGEgcG9zaXRpdmUgYXJndW1lbnQpLCA6bWV0aDpgcmVhZGludG9gCiAgICBhbmQgOm1ldGg6YHdyaXRlYCBtZXRob2RzIG9uIHRoaXMgY2xhc3Mgd2lsbCBvbmx5IG1ha2Ugb25lIHN5c3RlbSBjYWxsLgogCisgICBBIGN1c3RvbSBvcGVuZXIgY2FuIGJlIHVzZWQgYnkgcGFzc2luZyBhIGNhbGxhYmxlIGFzICpvcGVuZXIqLiBUaGUgdW5kZXJseWluZworICAgZmlsZSBkZXNjcmlwdG9yIGZvciB0aGUgZmlsZSBvYmplY3QgaXMgdGhlbiBvYnRhaW5lZCBieSBjYWxsaW5nICpvcGVuZXIqIHdpdGgKKyAgICgqbmFtZSosICpmbGFncyopLiAqb3BlbmVyKiBtdXN0IHJldHVybiBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciAocGFzc2luZworICAgOm1vZDpgb3Mub3BlbmAgYXMgKm9wZW5lciogcmVzdWx0cyBpbiBmdW5jdGlvbmFsaXR5IHNpbWlsYXIgdG8gcGFzc2luZworICAgYGBOb25lYGApLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhlICpvcGVuZXIqIHBhcmFtZXRlciB3YXMgYWRkZWQuCisgICAgICBUaGUgYGAneCdgYCBtb2RlIHdhcyBhZGRlZC4KKwogICAgSW4gYWRkaXRpb24gdG8gdGhlIGF0dHJpYnV0ZXMgYW5kIG1ldGhvZHMgZnJvbSA6Y2xhc3M6YElPQmFzZWAgYW5kCiAgICA6Y2xhc3M6YFJhd0lPQmFzZWAsIDpjbGFzczpgRmlsZUlPYCBwcm92aWRlcyB0aGUgZm9sbG93aW5nIGRhdGEKICAgIGF0dHJpYnV0ZXMgYW5kIG1ldGhvZHM6CkBAIC01OTAsOCArNjA0LDYgQEAKICAgICpyYXcqIHN0cmVhbS4gIElmIHRoZSAqYnVmZmVyX3NpemUqIGlzIG5vdCBnaXZlbiwgaXQgZGVmYXVsdHMgdG8KICAgIDpkYXRhOmBERUZBVUxUX0JVRkZFUl9TSVpFYC4KIAotICAgQSB0aGlyZCBhcmd1bWVudCwgKm1heF9idWZmZXJfc2l6ZSosIGlzIHN1cHBvcnRlZCwgYnV0IHVudXNlZCBhbmQgZGVwcmVjYXRlZC4KLQogICAgOmNsYXNzOmBCdWZmZXJlZFdyaXRlcmAgcHJvdmlkZXMgb3Igb3ZlcnJpZGVzIHRoZXNlIG1ldGhvZHMgaW4gYWRkaXRpb24gdG8KICAgIHRob3NlIGZyb20gOmNsYXNzOmBCdWZmZXJlZElPQmFzZWAgYW5kIDpjbGFzczpgSU9CYXNlYDoKIApAQCAtNjE3LDggKzYyOSw2IEBACiAgICBpbiB0aGUgZmlyc3QgYXJndW1lbnQuICBJZiB0aGUgKmJ1ZmZlcl9zaXplKiBpcyBvbWl0dGVkIGl0IGRlZmF1bHRzIHRvCiAgICA6ZGF0YTpgREVGQVVMVF9CVUZGRVJfU0laRWAuCiAKLSAgIEEgdGhpcmQgYXJndW1lbnQsICptYXhfYnVmZmVyX3NpemUqLCBpcyBzdXBwb3J0ZWQsIGJ1dCB1bnVzZWQgYW5kIGRlcHJlY2F0ZWQuCi0KICAgIDpjbGFzczpgQnVmZmVyZWRSYW5kb21gIGlzIGNhcGFibGUgb2YgYW55dGhpbmcgOmNsYXNzOmBCdWZmZXJlZFJlYWRlcmAgb3IKICAgIDpjbGFzczpgQnVmZmVyZWRXcml0ZXJgIGNhbiBkby4KIApAQCAtNjMzLDkgKzY0Myw2IEBACiAgICB3cml0ZWFibGUgcmVzcGVjdGl2ZWx5LiAgSWYgdGhlICpidWZmZXJfc2l6ZSogaXMgb21pdHRlZCBpdCBkZWZhdWx0cyB0bwogICAgOmRhdGE6YERFRkFVTFRfQlVGRkVSX1NJWkVgLgogCi0gICBBIGZvdXJ0aCBhcmd1bWVudCwgKm1heF9idWZmZXJfc2l6ZSosIGlzIHN1cHBvcnRlZCwgYnV0IHVudXNlZCBhbmQKLSAgIGRlcHJlY2F0ZWQuCi0KICAgIDpjbGFzczpgQnVmZmVyZWRSV1BhaXJgIGltcGxlbWVudHMgYWxsIG9mIDpjbGFzczpgQnVmZmVyZWRJT0Jhc2VgXCdzIG1ldGhvZHMKICAgIGV4Y2VwdCBmb3IgOm1ldGg6YH5CdWZmZXJlZElPQmFzZS5kZXRhY2hgLCB3aGljaCByYWlzZXMKICAgIDpleGM6YFVuc3VwcG9ydGVkT3BlcmF0aW9uYC4KQEAgLTczNiwxMyArNzQzLDE0IEBACiAgICAgICB3cml0dGVuLgogCiAKLS4uIGNsYXNzOjogVGV4dElPV3JhcHBlcihidWZmZXIsIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lLCBuZXdsaW5lPU5vbmUsIGxpbmVfYnVmZmVyaW5nPUZhbHNlKQorLi4gY2xhc3M6OiBUZXh0SU9XcmFwcGVyKGJ1ZmZlciwgZW5jb2Rpbmc9Tm9uZSwgZXJyb3JzPU5vbmUsIG5ld2xpbmU9Tm9uZSwgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfYnVmZmVyaW5nPUZhbHNlLCB3cml0ZV90aHJvdWdoPUZhbHNlKQogCiAgICBBIGJ1ZmZlcmVkIHRleHQgc3RyZWFtIG92ZXIgYSA6Y2xhc3M6YEJ1ZmZlcmVkSU9CYXNlYCBiaW5hcnkgc3RyZWFtLgogICAgSXQgaW5oZXJpdHMgOmNsYXNzOmBUZXh0SU9CYXNlYC4KIAogICAgKmVuY29kaW5nKiBnaXZlcyB0aGUgbmFtZSBvZiB0aGUgZW5jb2RpbmcgdGhhdCB0aGUgc3RyZWFtIHdpbGwgYmUgZGVjb2RlZCBvcgotICAgZW5jb2RlZCB3aXRoLiAgSXQgZGVmYXVsdHMgdG8gOmZ1bmM6YGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZ2AuCisgICBlbmNvZGVkIHdpdGguICBJdCBkZWZhdWx0cyB0byBgYGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZyhGYWxzZSlgYC4KIAogICAgKmVycm9ycyogaXMgYW4gb3B0aW9uYWwgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIGhvdyBlbmNvZGluZyBhbmQgZGVjb2RpbmcKICAgIGVycm9ycyBhcmUgdG8gYmUgaGFuZGxlZC4gIFBhc3MgYGAnc3RyaWN0J2BgIHRvIHJhaXNlIGEgOmV4YzpgVmFsdWVFcnJvcmAKQEAgLTc2Nyw2ICs3NzUsMTkgQEAKICAgIElmICpsaW5lX2J1ZmZlcmluZyogaXMgYGBUcnVlYGAsIDptZXRoOmBmbHVzaGAgaXMgaW1wbGllZCB3aGVuIGEgY2FsbCB0bwogICAgd3JpdGUgY29udGFpbnMgYSBuZXdsaW5lIGNoYXJhY3Rlci4KIAorICAgSWYgKndyaXRlX3Rocm91Z2gqIGlzIGBgVHJ1ZWBgLCBjYWxscyB0byA6bWV0aDpgd3JpdGVgIGFyZSBndWFyYW50ZWVkCisgICBub3QgdG8gYmUgYnVmZmVyZWQ6IGFueSBkYXRhIHdyaXR0ZW4gb24gdGhlIDpjbGFzczpgVGV4dElPV3JhcHBlcmAKKyAgIG9iamVjdCBpcyBpbW1lZGlhdGVseSBoYW5kbGVkIHRvIGl0cyB1bmRlcmx5aW5nIGJpbmFyeSAqYnVmZmVyKi4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFRoZSAqd3JpdGVfdGhyb3VnaCogYXJndW1lbnQgaGFzIGJlZW4gYWRkZWQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGUgZGVmYXVsdCAqZW5jb2RpbmcqIGlzIG5vdyBgYGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZyhGYWxzZSlgYAorICAgICAgaW5zdGVhZCBvZiBgYGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZygpYGAuIERvbid0IGNoYW5nZSB0ZW1wb3JhcnkgdGhlCisgICAgICBsb2NhbGUgZW5jb2RpbmcgdXNpbmcgOmZ1bmM6YGxvY2FsZS5zZXRsb2NhbGVgLCB1c2UgdGhlIGN1cnJlbnQgbG9jYWxlCisgICAgICBlbmNvZGluZyBpbnN0ZWFkIG9mIHRoZSB1c2VyIHByZWZlcnJlZCBlbmNvZGluZy4KKwogICAgOmNsYXNzOmBUZXh0SU9XcmFwcGVyYCBwcm92aWRlcyBvbmUgYXR0cmlidXRlIGluIGFkZGl0aW9uIHRvIHRob3NlIG9mCiAgICA6Y2xhc3M6YFRleHRJT0Jhc2VgIGFuZCBpdHMgcGFyZW50czoKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvaXBhZGRyZXNzLnJzdCBiL0RvYy9saWJyYXJ5L2lwYWRkcmVzcy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRjYmIyYwotLS0gL2Rldi9udWxsCisrKyBiL0RvYy9saWJyYXJ5L2lwYWRkcmVzcy5yc3QKQEAgLTAsMCArMSwyNTEgQEAKKzptb2Q6YGlwYWRkcmVzc2AgLS0tIElQdjQvSVB2NiBtYW5pcHVsYXRpb24gbGlicmFyeQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIG1vZHVsZTo6IGlwYWRkcmVzcworICAgOnN5bm9wc2lzOiBJUHY0L0lQdjYgbWFuaXB1bGF0aW9uIGxpYnJhcnkuCisuLiBtb2R1bGVhdXRob3I6OiBQZXRlciBNb29keQorCisqKlNvdXJjZSBjb2RlOioqIDpzb3VyY2U6YExpYi9pcGFkZHJlc3MucHlgCisKKy0tLS0tLS0tLS0tLS0tCisKK1RoZSA6bW9kOmBpcGFkZHJlc3NgIG1vZHVsZSBwcm92aWRlcyB0aGUgY2FwYWJpbGl0aWVzIHRvIGNyZWF0ZSwgbWFuaXB1bGF0ZSBhbmQKK29wZXJhdGUgb24gSVB2NCBhbmQgSVB2NiBhZGRyZXNzZXMgYW5kIG5ldHdvcmtzLgorCitUaGlzIGlzIHRoZSBmdWxsIG1vZHVsZSBBUEkgcmVmZXJlbmNlIC0gZm9yIGFuIG92ZXJ2aWV3IGFuZCBpbnRyb2R1Y3Rpb24sCitzZWUgOnJlZjpgaXBhZGRyZXNzLWhvd3RvYC4KKworVGhlIGZ1bmN0aW9ucyBhbmQgY2xhc3NlcyBpbiB0aGlzIG1vZHVsZSBtYWtlIGl0IHN0cmFpZ2h0Zm9yd2FyZCB0byBoYW5kbGUKK3ZhcmlvdXMgdGFza3MgcmVsYXRlZCB0byBJUCBhZGRyZXNzZXMsIGluY2x1ZGluZyBjaGVja2luZyB3aGV0aGVyIG9yIG5vdCB0d28KK2hvc3RzIGFyZSBvbiB0aGUgc2FtZSBzdWJuZXQsIGl0ZXJhdGluZyBvdmVyIGFsbCBob3N0cyBpbiBhIHBhcnRpY3VsYXIKK3N1Ym5ldCwgYXMgd2VsbCBhcyBjaGVja2luZyB3aGV0aGVyIG9yIG5vdCBhIHN0cmluZyByZXByZXNlbnRzIGEgdmFsaWQKK0lQIGFkZHJlc3Mgb3IgbmV0d29yayBkZWZpbml0aW9uLgorCisKK0RlZmluaW5nIElQIEFkZHJlc3NlcyBhbmQgSW50ZXJmYWNlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSA6bW9kOmBpcGFkZHJlc3NgIG1vZHVsZSBwcm92aWRlcyBmYWN0b3J5IGZ1bmN0aW9ucyB0byBkZWZpbmUgSVAgYWRkcmVzc2VzCithbmQgbmV0d29ya3M6CisKKy4uIGZ1bmN0aW9uOjogaXBfYWRkcmVzcyhhZGRyZXNzKQorCisgICBSZXR1cm4gYW4gOmNsYXNzOmBJUHY0QWRkcmVzc2Agb3IgOmNsYXNzOmBJUHY2QWRkcmVzc2Agb2JqZWN0IGRlcGVuZGluZyBvbgorICAgdGhlIElQIGFkZHJlc3MgcGFzc2VkIGFzIGFyZ3VtZW50LiAgKmFkZHJlc3MqIGlzIGEgc3RyaW5nIG9yIGludGVnZXIKKyAgIHJlcHJlc2VudGluZyB0aGUgSVAgYWRkcmVzcy4gIEVpdGhlciBJUHY0IG9yIElQdjYgYWRkcmVzc2VzIG1heSBiZSBzdXBwbGllZDsKKyAgIGludGVnZXJzIGxlc3MgdGhhbiAyKiozMiB3aWxsIGJlIGNvbnNpZGVyZWQgdG8gYmUgSVB2NCBieSBkZWZhdWx0LiAgQQorICAgOmV4YzpgVmFsdWVFcnJvcmAgaXMgcmFpc2VkIGlmIHRoZSAqYWRkcmVzcyogcGFzc2VkIGlzIG5laXRoZXIgYW4gSVB2NCBub3IKKyAgIElQdjYgYWRkcmVzcy4KKworICAgPj4+IGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxOTIuMTY4LjAuMScpCisgICBJUHY0QWRkcmVzcygnMTkyLjE2OC4wLjEnKQorICAgPj4+IGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcyMDAxOmRiODo6JykKKyAgIElQdjZBZGRyZXNzKCcyMDAxOmRiODo6JykKKworCisuLiBmdW5jdGlvbjo6IGlwX25ldHdvcmsoYWRkcmVzcywgc3RyaWN0PVRydWUpCisKKyAgIFJldHVybiBhbiA6Y2xhc3M6YElQdjROZXR3b3JrYCBvciA6Y2xhc3M6YElQdjZOZXR3b3JrYCBvYmplY3QgZGVwZW5kaW5nIG9uCisgICB0aGUgSVAgYWRkcmVzcyBwYXNzZWQgYXMgYXJndW1lbnQuICAqYWRkcmVzcyogaXMgYSBzdHJpbmcgb3IgaW50ZWdlcgorICAgcmVwcmVzZW50aW5nIHRoZSBJUCBuZXR3b3JrLiAgRWl0aGVyIElQdjQgb3IgSVB2NiBuZXR3b3JrcyBtYXkgYmUgc3VwcGxpZWQ7CisgICBpbnRlZ2VycyBsZXNzIHRoYW4gMioqMzIgd2lsbCBiZSBjb25zaWRlcmVkIHRvIGJlIElQdjQgYnkgZGVmYXVsdC4gICpzdHJpY3QqCisgICBpcyBwYXNzZWQgdG8gOmNsYXNzOmBJUHY0TmV0d29ya2Agb3IgOmNsYXNzOmBJUHY2TmV0d29ya2AgY29uc3RydWN0b3IuICBBCisgICA6ZXhjOmBWYWx1ZUVycm9yYCBpcyByYWlzZWQgaWYgdGhlIHN0cmluZyBwYXNzZWQgaXNuJ3QgZWl0aGVyIGFuIElQdjQgb3IgSVB2NgorICAgYWRkcmVzcywgb3IgaWYgdGhlIG5ldHdvcmsgaGFzIGhvc3QgYml0cyBzZXQuCisKKyAgID4+PiBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTkyLjE2OC4wLjAvMjgnKQorICAgSVB2NE5ldHdvcmsoJzE5Mi4xNjguMC4wLzI4JykKKworCisuLiBmdW5jdGlvbjo6IGlwX2ludGVyZmFjZShhZGRyZXNzKQorCisgICBSZXR1cm4gYW4gOmNsYXNzOmBJUHY0SW50ZXJmYWNlYCBvciA6Y2xhc3M6YElQdjZJbnRlcmZhY2VgIG9iamVjdCBkZXBlbmRpbmcKKyAgIG9uIHRoZSBJUCBhZGRyZXNzIHBhc3NlZCBhcyBhcmd1bWVudC4gICphZGRyZXNzKiBpcyBhIHN0cmluZyBvciBpbnRlZ2VyCisgICByZXByZXNlbnRpbmcgdGhlIElQIGFkZHJlc3MuICBFaXRoZXIgSVB2NCBvciBJUHY2IGFkZHJlc3NlcyBtYXkgYmUgc3VwcGxpZWQ7CisgICBpbnRlZ2VycyBsZXNzIHRoYW4gMioqMzIgd2lsbCBiZSBjb25zaWRlcmVkIHRvIGJlIElQdjQgYnkgZGVmYXVsdC4uICBBCisgICA6ZXhjOmBWYWx1ZUVycm9yYCBpcyByYWlzZWQgaWYgdGhlICphZGRyZXNzKiBwYXNzZWQgaXNuJ3QgZWl0aGVyIGFuIElQdjQgb3IKKyAgIElQdjYgYWRkcmVzcy4KKworCitSZXByZXNlbnRpbmcgSVAgQWRkcmVzc2VzIGFuZCBOZXR3b3JrcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIG1vZHVsZSBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgYW5kIGNsYXNzZXMgdG8gcmVwcmVzZW50IElQIGFkZHJlc3NlcworYW5kIG5ldHdvcmtzOgorCisuLiB0b2RvOiBsaXN0IHRoZSBwcm9wZXJ0aWVzIGFuZCBtZXRob2RzCisKKy4uIGNsYXNzOjogSVB2NEFkZHJlc3MoYWRkcmVzcykKKworICAgQ29uc3RydWN0IGFuIElQdjQgYWRkcmVzcy4gICphZGRyZXNzKiBpcyBhIHN0cmluZyBvciBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUKKyAgIElQIGFkZHJlc3MuICBBbiA6ZXhjOmBBZGRyZXNzVmFsdWVFcnJvcmAgaXMgcmFpc2VkIGlmICphZGRyZXNzKiBpcyBub3QgYQorICAgdmFsaWQgSVB2NCBhZGRyZXNzLgorCisgICA+Pj4gaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxOTIuMTY4LjAuMScpCisgICBJUHY0QWRkcmVzcygnMTkyLjE2OC4wLjEnKQorICAgPj4+IGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMTkyLjAuMi4xJykgPT0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKDMyMjEyMjU5ODUpCisgICBUcnVlCisKKworLi4gY2xhc3M6OiBJUHY0SW50ZXJmYWNlKGFkZHJlc3MpCisKKyAgIENvbnN0cnVjdCBhbiBJUHY0IGludGVyZmFjZS4gICphZGRyZXNzKiBpcyBhIHN0cmluZyBvciBpbnRlZ2VyIHJlcHJlc2VudGluZworICAgdGhlIElQIGludGVyZmFjZS4gIEFuIDpleGM6YEFkZHJlc3NWYWx1ZUVycm9yYCBpcyByYWlzZWQgaWYgKmFkZHJlc3MqIGlzIG5vdAorICAgYSB2YWxpZCBJUHY0IGFkZHJlc3MuCisKKyAgIFRoZSBuZXR3b3JrIGFkZHJlc3MgZm9yIHRoZSBpbnRlcmZhY2UgaXMgZGV0ZXJtaW5lZCBieSBjYWxsaW5nCisgICBgYElQdjROZXR3b3JrKGFkZHJlc3MsIHN0cmljdD1GYWxzZSlgYC4KKworICAgPj4+IGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlKCcxOTIuMTY4LjAuMC8yNCcpCisgICBJUHY0SW50ZXJmYWNlKCcxOTIuMTY4LjAuMC8yNCcpCisgICA+Pj4gaXBhZGRyZXNzLklQdjRJbnRlcmZhY2UoJzE5Mi4xNjguMC4wLzI0JykubmV0d29yaworICAgSVB2NE5ldHdvcmsoJzE5Mi4xNjguMC4wLzI0JykKKworCisuLiBjbGFzczo6IElQdjROZXR3b3JrKGFkZHJlc3MsIHN0cmljdD1UcnVlKQorCisgICBDb25zdHJ1Y3QgYW4gSVB2NCBuZXR3b3JrLiAgKmFkZHJlc3MqIGlzIGEgc3RyaW5nIG9yIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZQorICAgSVAgYWRkcmVzcyAoYW5kIG9wdGlvbmFsbHkgdGhlIG5ldHdvcmspLiAgQW4gOmV4YzpgQWRkcmVzc1ZhbHVlRXJyb3JgIGlzCisgICByYWlzZWQgaWYgKmFkZHJlc3MqIGlzIG5vdCBhIHZhbGlkIElQdjQgYWRkcmVzcy4gIEEgOmV4YzpgTmV0bWFza1ZhbHVlRXJyb3JgCisgICBpcyByYWlzZWQgaWYgdGhlIG5ldG1hc2sgaXMgbm90IHZhbGlkIGZvciBhbiBJUHY0IGFkZHJlc3MuCisKKyAgIElmICpzdHJpY3QqIGlzIGBgVHJ1ZWBgIGFuZCBob3N0IGJpdHMgYXJlIHNldCBpbiB0aGUgc3VwcGxpZWQgYWRkcmVzcywKKyAgIHRoZW4gOmV4YzpgVmFsdWVFcnJvcmAgaXMgcmFpc2VkLiBPdGhlcndpc2UsIHRoZSBob3N0IGJpdHMgYXJlIG1hc2tlZCBvdXQKKyAgIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgbmV0d29yayBhZGRyZXNzLgorCisgICA+Pj4gaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxOTIuMC4yLjAvMjcnKQorICAgSVB2NE5ldHdvcmsoJzE5Mi4wLjIuMC8yNycpCisgICA+Pj4gaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxOTIuMC4yLjAvMjcnKS5uZXRtYXNrCisgICBJUHY0QWRkcmVzcygnMjU1LjI1NS4yNTUuMjI0JykKKyAgID4+PiBpcGFkZHJlc3MuSVB2NE5ldHdvcmsoJzE5Mi4wLjIuNS8yNycsIHN0cmljdD1GYWxzZSkKKyAgIElQdjROZXR3b3JrKCcxOTIuMC4yLjAvMjcnKQorCisKKy4uIGNsYXNzOjogSVB2NkFkZHJlc3MoYWRkcmVzcykKKworICAgQ29uc3RydWN0IGFuIElQdjYgYWRkcmVzcy4gICphZGRyZXNzKiBpcyBhIHN0cmluZyBvciBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUKKyAgIElQIGFkZHJlc3MuICBBbiA6ZXhjOmBBZGRyZXNzVmFsdWVFcnJvcmAgaXMgcmFpc2VkIGlmICphZGRyZXNzKiBpcyBub3QgYQorICAgdmFsaWQgSVB2NiBhZGRyZXNzLgorCisgICA+Pj4gaXBhZGRyZXNzLklQdjZBZGRyZXNzKCcyMDAxOmRiODo6MTAwMCcpCisgICBJUHY2QWRkcmVzcygnMjAwMTpkYjg6OjEwMDAnKQorCisKKy4uIGNsYXNzOjogSVB2NkludGVyZmFjZShhZGRyZXNzKQorCisgICBDb25zdHJ1Y3QgYW4gSVB2NiBpbnRlcmZhY2UuICAqYWRkcmVzcyogaXMgYSBzdHJpbmcgb3IgaW50ZWdlciByZXByZXNlbnRpbmcKKyAgIHRoZSBJUCBpbnRlcmZhY2UuICBBbiA6ZXhjOmBBZGRyZXNzVmFsdWVFcnJvcmAgaXMgcmFpc2VkIGlmICphZGRyZXNzKiBpcyBub3QKKyAgIGEgdmFsaWQgSVB2NiBhZGRyZXNzLgorCisgICBUaGUgbmV0d29yayBhZGRyZXNzIGZvciB0aGUgaW50ZXJmYWNlIGlzIGRldGVybWluZWQgYnkgY2FsbGluZworICAgYGBJUHY2TmV0d29yayhhZGRyZXNzLCBzdHJpY3Q9RmFsc2UpYGAuCisKKyAgID4+PiBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgnMjAwMTpkYjg6OjEwMDAvOTYnKQorICAgSVB2NkludGVyZmFjZSgnMjAwMTpkYjg6OjEwMDAvOTYnKQorICAgPj4+IGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKCcyMDAxOmRiODo6MTAwMC85NicpLm5ldHdvcmsKKyAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6Lzk2JykKKworCisuLiBjbGFzczo6IElQdjZOZXR3b3JrKGFkZHJlc3MsIHN0cmljdD1UcnVlKQorCisgICBDb25zdHJ1Y3QgYW4gSVB2NiBuZXR3b3JrLiAgKmFkZHJlc3MqIGlzIGEgc3RyaW5nIG9yIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZQorICAgSVAgYWRkcmVzcyAoYW5kIG9wdGlvbmFsbHkgdGhlIG5ldHdvcmspLiAgQW4gOmV4YzpgQWRkcmVzc1ZhbHVlRXJyb3JgIGlzCisgICByYWlzZWQgaWYgKmFkZHJlc3MqIGlzIG5vdCBhIHZhbGlkIElQdjYgYWRkcmVzcy4gIEEgOmV4YzpgTmV0bWFza1ZhbHVlRXJyb3JgCisgICBpcyByYWlzZWQgaWYgdGhlIG5ldG1hc2sgaXMgbm90IHZhbGlkIGZvciBhbiBJUHY2IGFkZHJlc3MuCisKKyAgIElmICpzdHJpY3QqIGlzIGBgVHJ1ZWBgIGFuZCBob3N0IGJpdHMgYXJlIHNldCBpbiB0aGUgc3VwcGxpZWQgYWRkcmVzcywKKyAgIHRoZW4gOmV4YzpgVmFsdWVFcnJvcmAgaXMgcmFpc2VkLiBPdGhlcndpc2UsIHRoZSBob3N0IGJpdHMgYXJlIG1hc2tlZCBvdXQKKyAgIHRvIGRldGVybWluZSB0aGUgYXBwcm9wcmlhdGUgbmV0d29yayBhZGRyZXNzLgorCisgICA+Pj4gaXBhZGRyZXNzLklQdjZOZXR3b3JrKCcyMDAxOmRiODo6Lzk2JykKKyAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6Lzk2JykKKyAgID4+PiBpcGFkZHJlc3MuSVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjovOTYnKS5uZXRtYXNrCisgICBJUHY2QWRkcmVzcygnZmZmZjpmZmZmOmZmZmY6ZmZmZjpmZmZmOmZmZmY6OicpCisgICA+Pj4gaXBhZGRyZXNzLklQdjZOZXR3b3JrKCcyMDAxOmRiODo6MTAwMC85NicsIHN0cmljdD1GYWxzZSkKKyAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6Lzk2JykKKworCitPdGhlciBNb2R1bGUgTGV2ZWwgRnVuY3Rpb25zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBtb2R1bGUgYWxzbyBwcm92aWRlcyB0aGUgZm9sbG93aW5nIG1vZHVsZSBsZXZlbCBmdW5jdGlvbnM6CisKKy4uIGZ1bmN0aW9uOjogdjRfaW50X3RvX3BhY2tlZChhZGRyZXNzKQorCisgICBSZXByZXNlbnQgYW4gYWRkcmVzcyBhcyA0IHBhY2tlZCBieXRlcyBpbiBuZXR3b3JrIChiaWctZW5kaWFuKSBvcmRlci4KKyAgICphZGRyZXNzKiBpcyBhbiBpbnRlZ2VyIHJlcHJlc2VudGF0aW9uIG9mIGFuIElQdjQgSVAgYWRkcmVzcy4gIEEKKyAgIDpleGM6YFZhbHVlRXJyb3JgIGlzIHJhaXNlZCBpZiB0aGUgaW50ZWdlciBpcyBuZWdhdGl2ZSBvciB0b28gbGFyZ2UgdG8gYmUgYW4KKyAgIElQdjQgSVAgYWRkcmVzcy4KKworICAgPj4+IGlwYWRkcmVzcy5pcF9hZGRyZXNzKDMyMjEyMjU5ODUpCisgICBJUHY0QWRkcmVzcygnMTkyLjAuMi4xJykKKyAgID4+PiBpcGFkZHJlc3MudjRfaW50X3RvX3BhY2tlZCgzMjIxMjI1OTg1KQorICAgYidceGMwXHgwMFx4MDJceDAxJworCisKKy4uIGZ1bmN0aW9uOjogdjZfaW50X3RvX3BhY2tlZChhZGRyZXNzKQorCisgICBSZXByZXNlbnQgYW4gYWRkcmVzcyBhcyAxNiBwYWNrZWQgYnl0ZXMgaW4gbmV0d29yayAoYmlnLWVuZGlhbikgb3JkZXIuCisgICAqYWRkcmVzcyogaXMgYW4gaW50ZWdlciByZXByZXNlbnRhdGlvbiBvZiBhbiBJUHY2IElQIGFkZHJlc3MuICBBCisgICA6ZXhjOmBWYWx1ZUVycm9yYCBpcyByYWlzZWQgaWYgdGhlIGludGVnZXIgaXMgbmVnYXRpdmUgb3IgdG9vIGxhcmdlIHRvIGJlIGFuCisgICBJUHY2IElQIGFkZHJlc3MuCisKKworLi4gZnVuY3Rpb246OiBzdW1tYXJpemVfYWRkcmVzc19yYW5nZShmaXJzdCwgbGFzdCkKKworICAgUmV0dXJuIGFuIGl0ZXJhdG9yIG9mIHRoZSBzdW1tYXJpemVkIG5ldHdvcmsgcmFuZ2UgZ2l2ZW4gdGhlIGZpcnN0IGFuZCBsYXN0CisgICBJUCBhZGRyZXNzZXMuICAqZmlyc3QqIGlzIHRoZSBmaXJzdCA6Y2xhc3M6YElQdjRBZGRyZXNzYCBvcgorICAgOmNsYXNzOmBJUHY2QWRkcmVzc2AgaW4gdGhlIHJhbmdlIGFuZCAqbGFzdCogaXMgdGhlIGxhc3QgOmNsYXNzOmBJUHY0QWRkcmVzc2AKKyAgIG9yIDpjbGFzczpgSVB2NkFkZHJlc3NgIGluIHRoZSByYW5nZS4gIEEgOmV4YzpgVHlwZUVycm9yYCBpcyByYWlzZWQgaWYKKyAgICpmaXJzdCogb3IgKmxhc3QqIGFyZSBub3QgSVAgYWRkcmVzc2VzIG9yIGFyZSBub3Qgb2YgdGhlIHNhbWUgdmVyc2lvbi4gIEEKKyAgIDpleGM6YFZhbHVlRXJyb3JgIGlzIHJhaXNlZCBpZiAqbGFzdCogaXMgbm90IGdyZWF0ZXIgdGhhbiAqZmlyc3QqIG9yIGlmCisgICAqZmlyc3QqIGFkZHJlc3MgdmVyc2lvbiBpcyBub3QgNCBvciA2LgorCisgICA+Pj4gW2lwYWRkciBmb3IgaXBhZGRyIGluIGlwYWRkcmVzcy5zdW1tYXJpemVfYWRkcmVzc19yYW5nZSgKKyAgIC4uLiAgICBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzE5Mi4wLjIuMCcpLAorICAgLi4uICAgIGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMTkyLjAuMi4xMzAnKSldCisgICBbSVB2NE5ldHdvcmsoJzE5Mi4wLjIuMC8yNScpLCBJUHY0TmV0d29yaygnMTkyLjAuMi4xMjgvMzEnKSwgSVB2NE5ldHdvcmsoJzE5Mi4wLjIuMTMwLzMyJyldCisKKworLi4gZnVuY3Rpb246OiBjb2xsYXBzZV9hZGRyZXNzZXMoYWRkcmVzc2VzKQorCisgICBSZXR1cm4gYW4gaXRlcmF0b3Igb2YgdGhlIGNvbGxhcHNlZCA6Y2xhc3M6YElQdjROZXR3b3JrYCBvcgorICAgOmNsYXNzOmBJUHY2TmV0d29ya2Agb2JqZWN0cy4gICphZGRyZXNzZXMqIGlzIGFuIGl0ZXJhdG9yIG9mCisgICA6Y2xhc3M6YElQdjROZXR3b3JrYCBvciA6Y2xhc3M6YElQdjZOZXR3b3JrYCBvYmplY3RzLiAgQSA6ZXhjOmBUeXBlRXJyb3JgIGlzCisgICByYWlzZWQgaWYgKmFkZHJlc3NlcyogY29udGFpbnMgbWl4ZWQgdmVyc2lvbiBvYmplY3RzLgorCisgICA+Pj4gW2lwYWRkciBmb3IgaXBhZGRyIGluCisgICAuLi4gaXBhZGRyZXNzLmNvbGxhcHNlX2FkZHJlc3NlcyhbaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxOTIuMC4yLjAvMjUnKSwKKyAgIC4uLiBpcGFkZHJlc3MuSVB2NE5ldHdvcmsoJzE5Mi4wLjIuMTI4LzI1JyldKV0KKyAgIFtJUHY0TmV0d29yaygnMTkyLjAuMi4wLzI0JyldCisKKworLi4gZnVuY3Rpb246OiBnZXRfbWl4ZWRfdHlwZV9rZXkob2JqKQorCisgICBSZXR1cm4gYSBrZXkgc3VpdGFibGUgZm9yIHNvcnRpbmcgYmV0d2VlbiBuZXR3b3JrcyBhbmQgYWRkcmVzc2VzLiAgQWRkcmVzcworICAgYW5kIE5ldHdvcmsgb2JqZWN0cyBhcmUgbm90IHNvcnRhYmxlIGJ5IGRlZmF1bHQ7IHRoZXkncmUgZnVuZGFtZW50YWxseQorICAgZGlmZmVyZW50LCBzbyB0aGUgZXhwcmVzc2lvbjo6CisKKyAgICAgSVB2NEFkZHJlc3MoJzE5Mi4wLjIuMCcpIDw9IElQdjROZXR3b3JrKCcxOTIuMC4yLjAvMjQnKQorCisgICBkb2Vzbid0IG1ha2Ugc2Vuc2UuICBUaGVyZSBhcmUgc29tZSB0aW1lcyBob3dldmVyLCB3aGVyZSB5b3UgbWF5IHdpc2ggdG8KKyAgIGhhdmUgOm1vZDpgaXBhZGRyZXNzYCBzb3J0IHRoZXNlIGFueXdheS4gIElmIHlvdSBuZWVkIHRvIGRvIHRoaXMsIHlvdSBjYW4gdXNlCisgICB0aGlzIGZ1bmN0aW9uIGFzIHRoZSBgYGtleWBgIGFyZ3VtZW50IHRvIDpmdW5jOmBzb3J0ZWQoKWAuCisKKyAgICpvYmoqIGlzIGVpdGhlciBhIG5ldHdvcmsgb3IgYWRkcmVzcyBvYmplY3QuCisKKworQ3VzdG9tIEV4Y2VwdGlvbnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKK1RvIHN1cHBvcnQgbW9yZSBzcGVjaWZpYyBlcnJvciByZXBvcnRpbmcgZnJvbSBjbGFzcyBjb25zdHJ1Y3RvcnMsIHRoZQorbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBleGNlcHRpb25zOgorCisuLiBleGNlcHRpb246OiBBZGRyZXNzVmFsdWVFcnJvcihWYWx1ZUVycm9yKQorCisgICBBbnkgdmFsdWUgZXJyb3IgcmVsYXRlZCB0byB0aGUgYWRkcmVzcy4KKworCisuLiBleGNlcHRpb246OiBOZXRtYXNrVmFsdWVFcnJvcihWYWx1ZUVycm9yKQorCisgICBBbnkgdmFsdWUgZXJyb3IgcmVsYXRlZCB0byB0aGUgbmV0bWFzay4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2l0ZXJ0b29scy5yc3QgYi9Eb2MvbGlicmFyeS9pdGVydG9vbHMucnN0CmluZGV4IGQxZDExODguLmRhM2U2OTAgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L2l0ZXJ0b29scy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvaXRlcnRvb2xzLnJzdApAQCAtNDYsNyArNDYsNyBAQAogPT09PT09PT09PT09PT09PT09PT0gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogSXRlcmF0b3IgICAgICAgICAgICAgICAgQXJndW1lbnRzICAgICAgICAgICAgICAgICAgICAgICBSZXN1bHRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhhbXBsZQogPT09PT09PT09PT09PT09PT09PT0gICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotOmZ1bmM6YGFjY3VtdWxhdGVgICAgICAgcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMCwgcDArcDEsIHAwK3AxK3AyLCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBhY2N1bXVsYXRlKFsxLDIsMyw0LDVdKSAtLT4gMSAzIDYgMTAgMTVgYAorOmZ1bmM6YGFjY3VtdWxhdGVgICAgICAgcCBbLGZ1bmNdICAgICAgICAgICAgICAgICAgICAgICBwMCwgcDArcDEsIHAwK3AxK3AyLCAuLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYGBhY2N1bXVsYXRlKFsxLDIsMyw0LDVdKSAtLT4gMSAzIDYgMTAgMTVgYAogOmZ1bmM6YGNoYWluYCAgICAgICAgICAgcCwgcSwgLi4uICAgICAgICAgICAgICAgICAgICAgICBwMCwgcDEsIC4uLiBwbGFzdCwgcTAsIHExLCAuLi4gICAgICAgICAgICAgICAgICAgICAgYGBjaGFpbignQUJDJywgJ0RFRicpIC0tPiBBIEIgQyBEIEUgRmBgCiA6ZnVuYzpgY29tcHJlc3NgICAgICAgICBkYXRhLCBzZWxlY3RvcnMgICAgICAgICAgICAgICAgIChkWzBdIGlmIHNbMF0pLCAoZFsxXSBpZiBzWzFdKSwgLi4uICAgICAgICAgICAgICAgICBgYGNvbXByZXNzKCdBQkNERUYnLCBbMSwwLDEsMCwxLDFdKSAtLT4gQSBDIEUgRmBgCiA6ZnVuYzpgZHJvcHdoaWxlYCAgICAgICBwcmVkLCBzZXEgICAgICAgICAgICAgICAgICAgICAgIHNlcVtuXSwgc2VxW24rMV0sIHN0YXJ0aW5nIHdoZW4gcHJlZCBmYWlscyAgICAgICAgICBgYGRyb3B3aGlsZShsYW1iZGEgeDogeDw1LCBbMSw0LDYsNCwxXSkgLS0+IDYgNCAxYGAKQEAgLTg0LDIzICs4NCw2MSBAQAogc3RyZWFtcyBvZiBpbmZpbml0ZSBsZW5ndGgsIHNvIHRoZXkgc2hvdWxkIG9ubHkgYmUgYWNjZXNzZWQgYnkgZnVuY3Rpb25zIG9yCiBsb29wcyB0aGF0IHRydW5jYXRlIHRoZSBzdHJlYW0uCiAKLS4uIGZ1bmN0aW9uOjogYWNjdW11bGF0ZShpdGVyYWJsZSkKKy4uIGZ1bmN0aW9uOjogYWNjdW11bGF0ZShpdGVyYWJsZVssIGZ1bmNdKQogCiAgICAgTWFrZSBhbiBpdGVyYXRvciB0aGF0IHJldHVybnMgYWNjdW11bGF0ZWQgc3Vtcy4gRWxlbWVudHMgbWF5IGJlIGFueSBhZGRhYmxlCi0gICAgdHlwZSBpbmNsdWRpbmcgOmNsYXNzOmBEZWNpbWFsYCBvciA6Y2xhc3M6YEZyYWN0aW9uYC4gIEVxdWl2YWxlbnQgdG86OgorICAgIHR5cGUgaW5jbHVkaW5nIDpjbGFzczpgRGVjaW1hbGAgb3IgOmNsYXNzOmBGcmFjdGlvbmAuICBJZiB0aGUgb3B0aW9uYWwKKyAgICAqZnVuYyogYXJndW1lbnQgaXMgc3VwcGxpZWQsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uIG9mIHR3byBhcmd1bWVudHMKKyAgICBhbmQgaXQgd2lsbCBiZSB1c2VkIGluc3RlYWQgb2YgYWRkaXRpb24uCiAKLSAgICAgICAgZGVmIGFjY3VtdWxhdGUoaXRlcmFibGUpOgorICAgIEVxdWl2YWxlbnQgdG86OgorCisgICAgICAgIGRlZiBhY2N1bXVsYXRlKGl0ZXJhYmxlLCBmdW5jPW9wZXJhdG9yLmFkZCk6CiAgICAgICAgICAgICAnUmV0dXJuIHJ1bm5pbmcgdG90YWxzJwogICAgICAgICAgICAgIyBhY2N1bXVsYXRlKFsxLDIsMyw0LDVdKSAtLT4gMSAzIDYgMTAgMTUKKyAgICAgICAgICAgICMgYWNjdW11bGF0ZShbMSwyLDMsNCw1XSwgb3BlcmF0b3IubXVsKSAtLT4gMSAyIDYgMjQgMTIwCiAgICAgICAgICAgICBpdCA9IGl0ZXIoaXRlcmFibGUpCiAgICAgICAgICAgICB0b3RhbCA9IG5leHQoaXQpCiAgICAgICAgICAgICB5aWVsZCB0b3RhbAogICAgICAgICAgICAgZm9yIGVsZW1lbnQgaW4gaXQ6Ci0gICAgICAgICAgICAgICAgdG90YWwgPSB0b3RhbCArIGVsZW1lbnQKKyAgICAgICAgICAgICAgICB0b3RhbCA9IGZ1bmModG90YWwsIGVsZW1lbnQpCiAgICAgICAgICAgICAgICAgeWllbGQgdG90YWwKIAorICAgIFRoZXJlIGFyZSBhIG51bWJlciBvZiB1c2VzIGZvciB0aGUgKmZ1bmMqIGFyZ3VtZW50LiAgSXQgY2FuIGJlIHNldCB0bworICAgIDpmdW5jOmBtaW5gIGZvciBhIHJ1bm5pbmcgbWluaW11bSwgOmZ1bmM6YG1heGAgZm9yIGEgcnVubmluZyBtYXhpbXVtLCBvcgorICAgIDpmdW5jOmBvcGVyYXRvci5tdWxgIGZvciBhIHJ1bm5pbmcgcHJvZHVjdC4gIEFtb3J0aXphdGlvbiB0YWJsZXMgY2FuIGJlCisgICAgYnVpbHQgYnkgYWNjdW11bGF0aW5nIGludGVyZXN0IGFuZCBhcHBseWluZyBwYXltZW50cy4gIEZpcnN0LW9yZGVyCisgICAgYHJlY3VycmVuY2UgcmVsYXRpb25zIDxodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1JlY3VycmVuY2VfcmVsYXRpb24+YF8KKyAgICBjYW4gYmUgbW9kZWxlZCBieSBzdXBwbHlpbmcgdGhlIGluaXRpYWwgdmFsdWUgaW4gdGhlIGl0ZXJhYmxlIGFuZCB1c2luZyBvbmx5CisgICAgdGhlIGFjY3VtdWxhdGVkIHRvdGFsIGluICpmdW5jKiBhcmd1bWVudDo6CisKKyAgICAgID4+PiBkYXRhID0gWzMsIDQsIDYsIDIsIDEsIDksIDAsIDcsIDUsIDhdCisgICAgICA+Pj4gbGlzdChhY2N1bXVsYXRlKGRhdGEsIG9wZXJhdG9yLm11bCkpICAgICAjIHJ1bm5pbmcgcHJvZHVjdAorICAgICAgWzMsIDEyLCA3MiwgMTQ0LCAxNDQsIDEyOTYsIDAsIDAsIDAsIDBdCisgICAgICA+Pj4gbGlzdChhY2N1bXVsYXRlKGRhdGEsIG1heCkpICAgICAgICAgICAgICAjIHJ1bm5pbmcgbWF4aW11bQorICAgICAgWzMsIDQsIDYsIDYsIDYsIDksIDksIDksIDksIDldCisKKyAgICAgICMgQW1vcnRpemUgYSA1JSBsb2FuIG9mIDEwMDAgd2l0aCA0IGFubnVhbCBwYXltZW50cyBvZiA5MAorICAgICAgPj4+IGNhc2hmbG93cyA9IFsxMDAwLCAtOTAsIC05MCwgLTkwLCAtOTBdCisgICAgICA+Pj4gbGlzdChhY2N1bXVsYXRlKGNhc2hmbG93cywgbGFtYmRhIGJhbCwgcG10OiBiYWwqMS4wNSArIHBtdCkpCisgICAgICBbMTAwMCwgOTYwLjAsIDkxOC4wLCA4NzMuOTAwMDAwMDAwMDAwMSwgODI3LjU5NTAwMDAwMDAwMDFdCisKKyAgICAgICMgQ2hhb3RpYyByZWN1cnJlbmNlIHJlbGF0aW9uIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTG9naXN0aWNfbWFwCisgICAgICA+Pj4gbG9naXN0aWNfbWFwID0gbGFtYmRhIHgsIF86ICByICogeCAqICgxIC0geCkKKyAgICAgID4+PiByID0gMy44CisgICAgICA+Pj4geDAgPSAwLjQKKyAgICAgID4+PiBpbnB1dHMgPSByZXBlYXQoeDAsIDM2KSAgICAgIyBvbmx5IHRoZSBpbml0aWFsIHZhbHVlIGlzIHVzZWQKKyAgICAgID4+PiBbZm9ybWF0KHgsICcuMmYnKSBmb3IgeCBpbiBhY2N1bXVsYXRlKGlucHV0cywgbG9naXN0aWNfbWFwKV0KKyAgICAgIFsnMC40MCcsICcwLjkxJywgJzAuMzAnLCAnMC44MScsICcwLjYwJywgJzAuOTInLCAnMC4yOScsICcwLjc5JywgJzAuNjMnLAorICAgICAgICcwLjg4JyAsJzAuMzknLCAnMC45MCcsICcwLjMzJywgJzAuODQnLCAnMC41MicsICcwLjk1JywgJzAuMTgnLCAnMC41NycsCisgICAgICAgJzAuOTMnLCAnMC4yNScsICcwLjcxJywgJzAuNzknLCAnMC42MycsICcwLjg4JywgJzAuMzknLCAnMC45MScsICcwLjMyJywKKyAgICAgICAnMC44MycsICcwLjU0JywgJzAuOTUnLCAnMC4yMCcsICcwLjYwJywgJzAuOTEnLCAnMC4zMCcsICcwLjgwJywgJzAuNjAnXQorCiAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKKyAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgIEFkZGVkIHRoZSBvcHRpb25hbCAqZnVuYyogcGFyYW1ldGVyLgorCiAuLiBmdW5jdGlvbjo6IGNoYWluKCppdGVyYWJsZXMpCiAKICAgIE1ha2UgYW4gaXRlcmF0b3IgdGhhdCByZXR1cm5zIGVsZW1lbnRzIGZyb20gdGhlIGZpcnN0IGl0ZXJhYmxlIHVudGlsIGl0IGlzCkBAIC02NjcsNyArNzA1LDggQEAKICAgICAgICByZXR1cm4gemlwKGEsIGIpCiAKICAgIGRlZiBncm91cGVyKG4sIGl0ZXJhYmxlLCBmaWxsdmFsdWU9Tm9uZSk6Ci0gICAgICAgImdyb3VwZXIoMywgJ0FCQ0RFRkcnLCAneCcpIC0tPiBBQkMgREVGIEd4eCIKKyAgICAgICAiQ29sbGVjdCBkYXRhIGludG8gZml4ZWQtbGVuZ3RoIGNodW5rcyBvciBibG9ja3MiCisgICAgICAgIyBncm91cGVyKDMsICdBQkNERUZHJywgJ3gnKSAtLT4gQUJDIERFRiBHeHgiCiAgICAgICAgYXJncyA9IFtpdGVyKGl0ZXJhYmxlKV0gKiBuCiAgICAgICAgcmV0dXJuIHppcF9sb25nZXN0KCphcmdzLCBmaWxsdmFsdWU9ZmlsbHZhbHVlKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9sb2NhbGUucnN0IGIvRG9jL2xpYnJhcnkvbG9jYWxlLnJzdAppbmRleCA0NWFiYTBhLi5kNDZmMWNmIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9sb2NhbGUucnN0CisrKyBiL0RvYy9saWJyYXJ5L2xvY2FsZS5yc3QKQEAgLTQ3NSw4ICs0NzUsMTEgQEAKIGxvY2FsZSBzb21ld2hhdCBwYWluZnVsIHRvIHVzZSBjb3JyZWN0bHkuCiAKIEluaXRpYWxseSwgd2hlbiBhIHByb2dyYW0gaXMgc3RhcnRlZCwgdGhlIGxvY2FsZSBpcyB0aGUgYGBDYGAgbG9jYWxlLCBubyBtYXR0ZXIKLXdoYXQgdGhlIHVzZXIncyBwcmVmZXJyZWQgbG9jYWxlIGlzLiAgVGhlIHByb2dyYW0gbXVzdCBleHBsaWNpdGx5IHNheSB0aGF0IGl0Ci13YW50cyB0aGUgdXNlcidzIHByZWZlcnJlZCBsb2NhbGUgc2V0dGluZ3MgYnkgY2FsbGluZyBgYHNldGxvY2FsZShMQ19BTEwsICcnKWBgLgord2hhdCB0aGUgdXNlcidzIHByZWZlcnJlZCBsb2NhbGUgaXMuICBUaGVyZSBpcyBvbmUgZXhjZXB0aW9uOiB0aGUKKzpkYXRhOmBMQ19DVFlQRWAgY2F0ZWdvcnkgaXMgY2hhbmdlZCBhdCBzdGFydHVwIHRvIHNldCB0aGUgY3VycmVudCBsb2NhbGUKK2VuY29kaW5nIHRvIHRoZSB1c2VyJ3MgcHJlZmVycmVkIGxvY2FsZSBlbmNvZGluZy4gVGhlIHByb2dyYW0gbXVzdCBleHBsaWNpdGx5CitzYXkgdGhhdCBpdCB3YW50cyB0aGUgdXNlcidzIHByZWZlcnJlZCBsb2NhbGUgc2V0dGluZ3MgZm9yIG90aGVyIGNhdGVnb3JpZXMgYnkKK2NhbGxpbmcgYGBzZXRsb2NhbGUoTENfQUxMLCAnJylgYC4KIAogSXQgaXMgZ2VuZXJhbGx5IGEgYmFkIGlkZWEgdG8gY2FsbCA6ZnVuYzpgc2V0bG9jYWxlYCBpbiBzb21lIGxpYnJhcnkgcm91dGluZSwKIHNpbmNlIGFzIGEgc2lkZSBlZmZlY3QgaXQgYWZmZWN0cyB0aGUgZW50aXJlIHByb2dyYW0uICBTYXZpbmcgYW5kIHJlc3RvcmluZyBpdApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvbG9nZ2luZy5oYW5kbGVycy5yc3QgYi9Eb2MvbGlicmFyeS9sb2dnaW5nLmhhbmRsZXJzLnJzdAppbmRleCBlZjY1Y2ZhLi41MzdiOGM3IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9sb2dnaW5nLmhhbmRsZXJzLnJzdAorKysgYi9Eb2MvbGlicmFyeS9sb2dnaW5nLmhhbmRsZXJzLnJzdApAQCAtMTY0LDYgKzE2NCw4NyBAQAogICAgICAgY2hhbmdlZC4gIElmIGl0IGhhcywgdGhlIGV4aXN0aW5nIHN0cmVhbSBpcyBmbHVzaGVkIGFuZCBjbG9zZWQgYW5kIHRoZQogICAgICAgZmlsZSBvcGVuZWQgYWdhaW4sIGJlZm9yZSBvdXRwdXR0aW5nIHRoZSByZWNvcmQgdG8gdGhlIGZpbGUuCiAKKy4uIF9iYXNlLXJvdGF0aW5nLWhhbmRsZXI6CisKK0Jhc2VSb3RhdGluZ0hhbmRsZXIKK15eXl5eXl5eXl5eXl5eXl5eXl4KKworVGhlIDpjbGFzczpgQmFzZVJvdGF0aW5nSGFuZGxlcmAgY2xhc3MsIGxvY2F0ZWQgaW4gdGhlIDptb2Q6YGxvZ2dpbmcuaGFuZGxlcnNgCittb2R1bGUsIGlzIHRoZSBiYXNlIGNsYXNzIGZvciB0aGUgcm90YXRpbmcgZmlsZSBoYW5kbGVycywKKzpjbGFzczpgUm90YXRpbmdGaWxlSGFuZGxlcmAgYW5kIDpjbGFzczpgVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyYC4gWW91IHNob3VsZAorbm90IG5lZWQgdG8gaW5zdGFudGlhdGUgdGhpcyBjbGFzcywgYnV0IGl0IGhhcyBhdHRyaWJ1dGVzIGFuZCBtZXRob2RzIHlvdSBtYXkKK25lZWQgdG8gb3ZlcnJpZGUuCisKKy4uIGNsYXNzOjogQmFzZVJvdGF0aW5nSGFuZGxlcihmaWxlbmFtZSwgbW9kZSwgZW5jb2Rpbmc9Tm9uZSwgZGVsYXk9RmFsc2UpCisKKyAgIFRoZSBwYXJhbWV0ZXJzIGFyZSBhcyBmb3IgOmNsYXNzOmBGaWxlSGFuZGxlcmAuIFRoZSBhdHRyaWJ1dGVzIGFyZToKKworICAgLi4gYXR0cmlidXRlOjogbmFtZXIKKworICAgICAgSWYgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIGEgY2FsbGFibGUsIHRoZSA6bWV0aDpgcm90YXRpb25fZmlsZW5hbWVgCisgICAgICBtZXRob2QgZGVsZWdhdGVzIHRvIHRoaXMgY2FsbGFibGUuIFRoZSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgY2FsbGFibGUKKyAgICAgIGFyZSB0aG9zZSBwYXNzZWQgdG8gOm1ldGg6YHJvdGF0aW9uX2ZpbGVuYW1lYC4KKworICAgICAgLi4gbm90ZTo6IFRoZSBuYW1lciBmdW5jdGlvbiBpcyBjYWxsZWQgcXVpdGUgYSBmZXcgdGltZXMgZHVyaW5nIHJvbGxvdmVyLAorICAgICAgICAgc28gaXQgc2hvdWxkIGJlIGFzIHNpbXBsZSBhbmQgYXMgZmFzdCBhcyBwb3NzaWJsZS4gSXQgc2hvdWxkIGFsc28KKyAgICAgICAgIHJldHVybiB0aGUgc2FtZSBvdXRwdXQgZXZlcnkgdGltZSBmb3IgYSBnaXZlbiBpbnB1dCwgb3RoZXJ3aXNlIHRoZQorICAgICAgICAgcm9sbG92ZXIgYmVoYXZpb3VyIG1heSBub3Qgd29yayBhcyBleHBlY3RlZC4KKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworICAgLi4gYXR0cmlidXRlOjogQmFzZVJvdGF0aW5nSGFuZGxlci5yb3RhdG9yCisKKyAgICAgIElmIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byBhIGNhbGxhYmxlLCB0aGUgOm1ldGg6YHJvdGF0ZWAgbWV0aG9kCisgICAgICBkZWxlZ2F0ZXMgdG8gdGhpcyBjYWxsYWJsZS4gIFRoZSBwYXJhbWV0ZXJzIHBhc3NlZCB0byB0aGUgY2FsbGFibGUgYXJlCisgICAgICB0aG9zZSBwYXNzZWQgdG8gOm1ldGg6YHJvdGF0ZWAuCisKKyAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisgICAuLiBtZXRob2Q6OiBCYXNlUm90YXRpbmdIYW5kbGVyLnJvdGF0aW9uX2ZpbGVuYW1lKGRlZmF1bHRfbmFtZSkKKworICAgICAgTW9kaWZ5IHRoZSBmaWxlbmFtZSBvZiBhIGxvZyBmaWxlIHdoZW4gcm90YXRpbmcuCisKKyAgICAgIFRoaXMgaXMgcHJvdmlkZWQgc28gdGhhdCBhIGN1c3RvbSBmaWxlbmFtZSBjYW4gYmUgcHJvdmlkZWQuCisKKyAgICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzIHRoZSAnbmFtZXInIGF0dHJpYnV0ZSBvZiB0aGUgaGFuZGxlciwKKyAgICAgIGlmIGl0J3MgY2FsbGFibGUsIHBhc3NpbmcgdGhlIGRlZmF1bHQgbmFtZSB0byBpdC4gSWYgdGhlIGF0dHJpYnV0ZSBpc24ndAorICAgICAgY2FsbGFibGUgKHRoZSBkZWZhdWx0IGlzIGBgTm9uZWBgKSwgdGhlIG5hbWUgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLgorCisgICAgICA6cGFyYW0gZGVmYXVsdF9uYW1lOiBUaGUgZGVmYXVsdCBuYW1lIGZvciB0aGUgbG9nIGZpbGUuCisKKyAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKyAgIC4uIG1ldGhvZDo6IEJhc2VSb3RhdGluZ0hhbmRsZXIucm90YXRlKHNvdXJjZSwgZGVzdCkKKworICAgICAgV2hlbiByb3RhdGluZywgcm90YXRlIHRoZSBjdXJyZW50IGxvZy4KKworICAgICAgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgdGhlICdyb3RhdG9yJyBhdHRyaWJ1dGUgb2YgdGhlIGhhbmRsZXIsCisgICAgICBpZiBpdCdzIGNhbGxhYmxlLCBwYXNzaW5nIHRoZSBzb3VyY2UgYW5kIGRlc3QgYXJndW1lbnRzIHRvIGl0LiBJZiB0aGUKKyAgICAgIGF0dHJpYnV0ZSBpc24ndCBjYWxsYWJsZSAodGhlIGRlZmF1bHQgaXMgYGBOb25lYGApLCB0aGUgc291cmNlIGlzIHNpbXBseQorICAgICAgcmVuYW1lZCB0byB0aGUgZGVzdGluYXRpb24uCisKKyAgICAgIDpwYXJhbSBzb3VyY2U6IFRoZSBzb3VyY2UgZmlsZW5hbWUuIFRoaXMgaXMgbm9ybWFsbHkgdGhlIGJhc2UKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBlLmcuICd0ZXN0LmxvZycKKyAgICAgIDpwYXJhbSBkZXN0OiAgIFRoZSBkZXN0aW5hdGlvbiBmaWxlbmFtZS4gVGhpcyBpcyBub3JtYWxseQorICAgICAgICAgICAgICAgICAgICAgd2hhdCB0aGUgc291cmNlIGlzIHJvdGF0ZWQgdG8sIGUuZy4gJ3Rlc3QubG9nLjEnLgorCisgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworVGhlIHJlYXNvbiB0aGUgYXR0cmlidXRlcyBleGlzdCBpcyB0byBzYXZlIHlvdSBoYXZpbmcgdG8gc3ViY2xhc3MgLSB5b3UgY2FuIHVzZQordGhlIHNhbWUgY2FsbGFibGVzIGZvciBpbnN0YW5jZXMgb2YgOmNsYXNzOmBSb3RhdGluZ0ZpbGVIYW5kbGVyYCBhbmQKKzpjbGFzczpgVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyYC4gSWYgZWl0aGVyIHRoZSBuYW1lciBvciByb3RhdG9yIGNhbGxhYmxlCityYWlzZXMgYW4gZXhjZXB0aW9uLCB0aGlzIHdpbGwgYmUgaGFuZGxlZCBpbiB0aGUgc2FtZSB3YXkgYXMgYW55IG90aGVyCitleGNlcHRpb24gZHVyaW5nIGFuIDptZXRoOmBlbWl0YCBjYWxsLCBpLmUuIHZpYSB0aGUgOm1ldGg6YGhhbmRsZUVycm9yYCBtZXRob2QKK29mIHRoZSBoYW5kbGVyLgorCitJZiB5b3UgbmVlZCB0byBtYWtlIG1vcmUgc2lnbmlmaWNhbnQgY2hhbmdlcyB0byByb3RhdGlvbiBwcm9jZXNzaW5nLCB5b3UgY2FuCitvdmVycmlkZSB0aGUgbWV0aG9kcy4KKworRm9yIGFuIGV4YW1wbGUsIHNlZSA6cmVmOmBjb29rYm9vay1yb3RhdG9yLW5hbWVyYC4KKworCiAuLiBfcm90YXRpbmctZmlsZS1oYW5kbGVyOgogCiBSb3RhdGluZ0ZpbGVIYW5kbGVyCkBAIC00NTIsNiArNTMzLDE1IEBACiAgICAgICAgICBiZWhhdmlvdXIpIGJ1dCBjYW4gYmUgc2V0IHRvIGBgRmFsc2VgYCBvbiBhIGBgU3lzTG9nSGFuZGxlcmBgIGluc3RhbmNlCiAgICAgICAgICBpbiBvcmRlciBmb3IgdGhhdCBpbnN0YW5jZSB0byAqbm90KiBhcHBlbmQgdGhlIE5VTCB0ZXJtaW5hdG9yLgogCisgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgICAgKFNlZTogOmlzc3VlOmAxMjQxOWAuKSBJbiBlYXJsaWVyIHZlcnNpb25zLCB0aGVyZSB3YXMgbm8gZmFjaWxpdHkgZm9yCisgICAgICAgICBhbiAiaWRlbnQiIG9yICJ0YWciIHByZWZpeCB0byBpZGVudGlmeSB0aGUgc291cmNlIG9mIHRoZSBtZXNzYWdlLiBUaGlzCisgICAgICAgICBjYW4gbm93IGJlIHNwZWNpZmllZCB1c2luZyBhIGNsYXNzLWxldmVsIGF0dHJpYnV0ZSwgZGVmYXVsdGluZyB0bworICAgICAgICAgYGAiImBgIHRvIHByZXNlcnZlIGV4aXN0aW5nIGJlaGF2aW91ciwgYnV0IHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuIG9uCisgICAgICAgICBhIGBgU3lzTG9nSGFuZGxlcmBgIGluc3RhbmNlIGluIG9yZGVyIGZvciB0aGF0IGluc3RhbmNlIHRvIHByZXBlbmQKKyAgICAgICAgIHRoZSBpZGVudCB0byBldmVyeSBtZXNzYWdlIGhhbmRsZWQuIE5vdGUgdGhhdCB0aGUgcHJvdmlkZWQgaWRlbnQgbXVzdAorICAgICAgICAgYmUgdGV4dCwgbm90IGJ5dGVzLCBhbmQgaXMgcHJlcGVuZGVkIHRvIHRoZSBtZXNzYWdlIGV4YWN0bHkgYXMgaXMuCisKICAgIC4uIG1ldGhvZDo6IGVuY29kZVByaW9yaXR5KGZhY2lsaXR5LCBwcmlvcml0eSkKIAogICAgICAgRW5jb2RlcyB0aGUgZmFjaWxpdHkgYW5kIHByaW9yaXR5IGludG8gYW4gaW50ZWdlci4gWW91IGNhbiBwYXNzIGluIHN0cmluZ3MKQEAgLTYxNCw3ICs3MDQsNyBAQAogc3VwcG9ydHMgc2VuZGluZyBsb2dnaW5nIG1lc3NhZ2VzIHRvIGFuIGVtYWlsIGFkZHJlc3MgdmlhIFNNVFAuCiAKIAotLi4gY2xhc3M6OiBTTVRQSGFuZGxlcihtYWlsaG9zdCwgZnJvbWFkZHIsIHRvYWRkcnMsIHN1YmplY3QsIGNyZWRlbnRpYWxzPU5vbmUsIHNlY3VyZT1Ob25lKQorLi4gY2xhc3M6OiBTTVRQSGFuZGxlcihtYWlsaG9zdCwgZnJvbWFkZHIsIHRvYWRkcnMsIHN1YmplY3QsIGNyZWRlbnRpYWxzPU5vbmUsIHNlY3VyZT1Ob25lLCB0aW1lb3V0PTEuMCkKIAogICAgUmV0dXJucyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgOmNsYXNzOmBTTVRQSGFuZGxlcmAgY2xhc3MuIFRoZSBpbnN0YW5jZSBpcwogICAgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgZnJvbSBhbmQgdG8gYWRkcmVzc2VzIGFuZCBzdWJqZWN0IGxpbmUgb2YgdGhlIGVtYWlsLiBUaGUKQEAgLTYzMCw2ICs3MjAsMTIgQEAKICAgIGFuZCBjZXJ0aWZpY2F0ZSBmaWxlLiAoVGhpcyB0dXBsZSBpcyBwYXNzZWQgdG8gdGhlCiAgICA6bWV0aDpgc210cGxpYi5TTVRQLnN0YXJ0dGxzYCBtZXRob2QuKQogCisgICBBIHRpbWVvdXQgY2FuIGJlIHNwZWNpZmllZCBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIHRoZSBTTVRQIHNlcnZlciB1c2luZyB0aGUKKyAgICp0aW1lb3V0KiBhcmd1bWVudC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBUaGUgKnRpbWVvdXQqIGFyZ3VtZW50IHdhcyBhZGRlZC4KKwogICAgLi4gbWV0aG9kOjogZW1pdChyZWNvcmQpCiAKICAgICAgIEZvcm1hdHMgdGhlIHJlY29yZCBhbmQgc2VuZHMgaXQgdG8gdGhlIHNwZWNpZmllZCBhZGRyZXNzZWVzLgpAQCAtNjkwLDcgKzc4Niw3IEBACiAKICAgIC4uIG1ldGhvZDo6IGNsb3NlKCkKIAotICAgICAgQ2FsbHMgOm1ldGg6YGZsdXNoYCwgc2V0cyB0aGUgdGFyZ2V0IHRvIDpjb25zdDpgTm9uZWAgYW5kIGNsZWFycyB0aGUKKyAgICAgIENhbGxzIDptZXRoOmBmbHVzaGAsIHNldHMgdGhlIHRhcmdldCB0byBgYE5vbmVgYCBhbmQgY2xlYXJzIHRoZQogICAgICAgYnVmZmVyLgogCiAKQEAgLTg1OSw2ICs5NTUsMTUgQEAKICAgICAgIE5vdGUgdGhhdCBpZiB5b3UgZG9uJ3QgY2FsbCB0aGlzIGJlZm9yZSB5b3VyIGFwcGxpY2F0aW9uIGV4aXRzLCB0aGVyZQogICAgICAgbWF5IGJlIHNvbWUgcmVjb3JkcyBzdGlsbCBsZWZ0IG9uIHRoZSBxdWV1ZSwgd2hpY2ggd29uJ3QgYmUgcHJvY2Vzc2VkLgogCisgICAuLiBtZXRob2Q6OiBlbnF1ZXVlX3NlbnRpbmVsKCkKKworICAgICAgV3JpdGVzIGEgc2VudGluZWwgdG8gdGhlIHF1ZXVlIHRvIHRlbGwgdGhlIGxpc3RlbmVyIHRvIHF1aXQuIFRoaXMKKyAgICAgIGltcGxlbWVudGF0aW9uIHVzZXMgYGBwdXRfbm93YWl0KClgYC4gIFlvdSBtYXkgd2FudCB0byBvdmVycmlkZSB0aGlzCisgICAgICBtZXRob2QgaWYgeW91IHdhbnQgdG8gdXNlIHRpbWVvdXRzIG9yIHdvcmsgd2l0aCBjdXN0b20gcXVldWUKKyAgICAgIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogLi4gc2VlYWxzbzo6CiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L2xvZ2dpbmcucnN0IGIvRG9jL2xpYnJhcnkvbG9nZ2luZy5yc3QKaW5kZXggMTRlMDBmZS4uZmJiZDMwNSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvbG9nZ2luZy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvbG9nZ2luZy5yc3QKQEAgLTIxMyw2ICsyMTMsOSBAQAogICAgTG9ncyBhIG1lc3NhZ2Ugd2l0aCBsZXZlbCA6Y29uc3Q6YFdBUk5JTkdgIG9uIHRoaXMgbG9nZ2VyLiBUaGUgYXJndW1lbnRzIGFyZQogICAgaW50ZXJwcmV0ZWQgYXMgZm9yIDptZXRoOmBkZWJ1Z2AuCiAKKyAgIC4uIG5vdGU6OiBUaGVyZSBpcyBhbiBvYnNvbGV0ZSBtZXRob2QgYGB3YXJuYGAgd2hpY2ggaXMgZnVuY3Rpb25hbGx5CisgICAgICBpZGVudGljYWwgdG8gYGB3YXJuaW5nYGAuIEFzIGBgd2FybmBgIGlzIGRlcHJlY2F0ZWQsIHBsZWFzZSBkbyBub3QgdXNlCisgICAgICBpdCAtIHVzZSBgYHdhcm5pbmdgYCBpbnN0ZWFkLgogCiAuLiBtZXRob2Q6OiBMb2dnZXIuZXJyb3IobXNnLCAqYXJncywgKiprd2FyZ3MpCiAKQEAgLTQ5Miw2ICs0OTUsMTkgQEAKICAgICAgIHdhbnQgYWxsIGxvZ2dpbmcgdGltZXMgdG8gYmUgc2hvd24gaW4gR01ULCBzZXQgdGhlIGBgY29udmVydGVyYGAKICAgICAgIGF0dHJpYnV0ZSBpbiB0aGUgYGBGb3JtYXR0ZXJgYCBjbGFzcy4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICAgIFByZXZpb3VzbHksIHRoZSBkZWZhdWx0IElTTyA4NjAxIGZvcm1hdCB3YXMgaGFyZC1jb2RlZCBhcyBpbiB0aGlzCisgICAgICAgICBleGFtcGxlOiBgYDIwMTAtMDktMDYgMjI6Mzg6MTUsMjkyYGAgd2hlcmUgdGhlIHBhcnQgYmVmb3JlIHRoZSBjb21tYSBpcworICAgICAgICAgaGFuZGxlZCBieSBhIHN0cnB0aW1lIGZvcm1hdCBzdHJpbmcgKGBgJyVZLSVtLSVkICVIOiVNOiVTJ2BgKSwgYW5kIHRoZQorICAgICAgICAgcGFydCBhZnRlciB0aGUgY29tbWEgaXMgYSBtaWxsaXNlY29uZCB2YWx1ZS4gQmVjYXVzZSBzdHJwdGltZSBkb2VzIG5vdAorICAgICAgICAgaGF2ZSBhIGZvcm1hdCBwbGFjZWhvbGRlciBmb3IgbWlsbGlzZWNvbmRzLCB0aGUgbWlsbGlzZWNvbmQgdmFsdWUgaXMKKyAgICAgICAgIGFwcGVuZGVkIHVzaW5nIGFub3RoZXIgZm9ybWF0IHN0cmluZywgYGAnJXMsJTAzZCdgYCDigJMgYW5kIGJvdGggb2YgdGhlc2UKKyAgICAgICAgIGZvcm1hdCBzdHJpbmdzIGhhdmUgYmVlbiBoYXJkY29kZWQgaW50byB0aGlzIG1ldGhvZC4gV2l0aCB0aGUgY2hhbmdlLAorICAgICAgICAgdGhlc2Ugc3RyaW5ncyBhcmUgZGVmaW5lZCBhcyBjbGFzcy1sZXZlbCBhdHRyaWJ1dGVzIHdoaWNoIGNhbiBiZQorICAgICAgICAgb3ZlcnJpZGRlbiBhdCB0aGUgaW5zdGFuY2UgbGV2ZWwgd2hlbiBkZXNpcmVkLiBUaGUgbmFtZXMgb2YgdGhlCisgICAgICAgICBhdHRyaWJ1dGVzIGFyZSBgYGRlZmF1bHRfdGltZV9mb3JtYXRgYCAoZm9yIHRoZSBzdHJwdGltZSBmb3JtYXQgc3RyaW5nKQorICAgICAgICAgYW5kIGBgZGVmYXVsdF9tc2VjX2Zvcm1hdGBgIChmb3IgYXBwZW5kaW5nIHRoZSBtaWxsaXNlY29uZCB2YWx1ZSkuCisKICAgIC4uIG1ldGhvZDo6IGZvcm1hdEV4Y2VwdGlvbihleGNfaW5mbykKIAogICAgICAgRm9ybWF0cyB0aGUgc3BlY2lmaWVkIGV4Y2VwdGlvbiBpbmZvcm1hdGlvbiAoYSBzdGFuZGFyZCBleGNlcHRpb24gdHVwbGUgYXMKQEAgLTg5OCw4ICs5MTQsMTIgQEAKIAogLi4gZnVuY3Rpb246OiB3YXJuaW5nKG1zZywgKmFyZ3MsICoqa3dhcmdzKQogCi0gICBMb2dzIGEgbWVzc2FnZSB3aXRoIGxldmVsIDpjb25zdDpgV0FSTklOR2Agb24gdGhlIHJvb3QgbG9nZ2VyLiBUaGUgYXJndW1lbnRzIGFyZQotICAgaW50ZXJwcmV0ZWQgYXMgZm9yIDpmdW5jOmBkZWJ1Z2AuCisgICBMb2dzIGEgbWVzc2FnZSB3aXRoIGxldmVsIDpjb25zdDpgV0FSTklOR2Agb24gdGhlIHJvb3QgbG9nZ2VyLiBUaGUgYXJndW1lbnRzCisgICBhcmUgaW50ZXJwcmV0ZWQgYXMgZm9yIDpmdW5jOmBkZWJ1Z2AuCisKKyAgIC4uIG5vdGU6OiBUaGVyZSBpcyBhbiBvYnNvbGV0ZSBmdW5jdGlvbiBgYHdhcm5gYCB3aGljaCBpcyBmdW5jdGlvbmFsbHkKKyAgICAgIGlkZW50aWNhbCB0byBgYHdhcm5pbmdgYC4gQXMgYGB3YXJuYGAgaXMgZGVwcmVjYXRlZCwgcGxlYXNlIGRvIG5vdCB1c2UKKyAgICAgIGl0IC0gdXNlIGBgd2FybmluZ2BgIGluc3RlYWQuCiAKIAogLi4gZnVuY3Rpb246OiBlcnJvcihtc2csICphcmdzLCAqKmt3YXJncykKQEAgLTEwMjUsMTIgKzEwNDUsMjcgQEAKICAgIHwgYGBzdHJlYW1gYCAgIHwgVXNlIHRoZSBzcGVjaWZpZWQgc3RyZWFtIHRvIGluaXRpYWxpemUgdGhlICB8CiAgICB8ICAgICAgICAgICAgICB8IFN0cmVhbUhhbmRsZXIuIE5vdGUgdGhhdCB0aGlzIGFyZ3VtZW50IGlzICAgfAogICAgfCAgICAgICAgICAgICAgfCBpbmNvbXBhdGlibGUgd2l0aCAnZmlsZW5hbWUnIC0gaWYgYm90aCBhcmUgIHwKLSAgIHwgICAgICAgICAgICAgIHwgcHJlc2VudCwgJ3N0cmVhbScgaXMgaWdub3JlZC4gICAgICAgICAgICAgICB8CisgICB8ICAgICAgICAgICAgICB8IHByZXNlbnQsIGEgYGBWYWx1ZUVycm9yYGAgaXMgcmFpc2VkLiAgICAgICAgfAorICAgKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgYGBoYW5kbGVyc2BgIHwgSWYgc3BlY2lmaWVkLCB0aGlzIHNob3VsZCBiZSBhbiBpdGVyYWJsZSBvZiB8CisgICB8ICAgICAgICAgICAgICB8IGFscmVhZHkgY3JlYXRlZCBoYW5kbGVycyB0byBhZGQgdG8gdGhlIHJvb3QgfAorICAgfCAgICAgICAgICAgICAgfCBsb2dnZXIuIEFueSBoYW5kbGVycyB3aGljaCBkb24ndCBhbHJlYWR5ICAgIHwKKyAgIHwgICAgICAgICAgICAgIHwgaGF2ZSBhIGZvcm1hdHRlciBzZXQgd2lsbCBiZSBhc3NpZ25lZCB0aGUgICB8CisgICB8ICAgICAgICAgICAgICB8IGRlZmF1bHQgZm9ybWF0dGVyIGNyZWF0ZWQgaW4gdGhpcyBmdW5jdGlvbi4gfAorICAgfCAgICAgICAgICAgICAgfCBOb3RlIHRoYXQgdGhpcyBhcmd1bWVudCBpcyBpbmNvbXBhdGlibGUgICAgIHwKKyAgIHwgICAgICAgICAgICAgIHwgd2l0aCAnZmlsZW5hbWUnIG9yICdzdHJlYW0nIC0gaWYgYm90aCBhcmUgICB8CisgICB8ICAgICAgICAgICAgICB8IHByZXNlbnQsIGEgYGBWYWx1ZUVycm9yYGAgaXMgcmFpc2VkLiAgICAgICAgfAogICAgKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKICAgICAgIFRoZSBgYHN0eWxlYGAgYXJndW1lbnQgd2FzIGFkZGVkLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhlIGBgaGFuZGxlcnNgYCBhcmd1bWVudCB3YXMgYWRkZWQuIEFkZGl0aW9uYWwgY2hlY2tzIHdlcmUgYWRkZWQgdG8KKyAgICAgIGNhdGNoIHNpdHVhdGlvbnMgd2hlcmUgaW5jb21wYXRpYmxlIGFyZ3VtZW50cyBhcmUgc3BlY2lmaWVkIChlLmcuCisgICAgICBgYGhhbmRsZXJzYGAgdG9nZXRoZXIgd2l0aCBgYHN0cmVhbWBgIG9yIGBgZmlsZW5hbWVgYCwgb3IgYGBzdHJlYW1gYAorICAgICAgdG9nZXRoZXIgd2l0aCBgYGZpbGVuYW1lYGApLgorCiAKIC4uIGZ1bmN0aW9uOjogc2h1dGRvd24oKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9sem1hLnJzdCBiL0RvYy9saWJyYXJ5L2x6bWEucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwMmZhZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Eb2MvbGlicmFyeS9sem1hLnJzdApAQCAtMCwwICsxLDM4MiBAQAorOm1vZDpgbHptYWAgLS0tIENvbXByZXNzaW9uIHVzaW5nIHRoZSBMWk1BIGFsZ29yaXRobQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBtb2R1bGU6OiBsem1hCisgICA6c3lub3BzaXM6IEEgUHl0aG9uIHdyYXBwZXIgZm9yIHRoZSBsaWJsem1hIGNvbXByZXNzaW9uIGxpYnJhcnkuCisuLiBtb2R1bGVhdXRob3I6OiBOYWRlZW0gVmF3ZGEgPG5hZGVlbS52YXdkYUBnbWFpbC5jb20+CisuLiBzZWN0aW9uYXV0aG9yOjogTmFkZWVtIFZhd2RhIDxuYWRlZW0udmF3ZGFAZ21haWwuY29tPgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCitUaGlzIG1vZHVsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIGNvbXByZXNzaW5nIGFuZAorZGVjb21wcmVzc2luZyBkYXRhIHVzaW5nIHRoZSBMWk1BIGNvbXByZXNzaW9uIGFsZ29yaXRobS4gQWxzbyBpbmNsdWRlZCBpcyBhIGZpbGUKK2ludGVyZmFjZSBzdXBwb3J0aW5nIHRoZSBgYC54emBgIGFuZCBsZWdhY3kgYGAubHptYWBgIGZpbGUgZm9ybWF0cyB1c2VkIGJ5IHRoZQorOnByb2dyYW06YHh6YCB1dGlsaXR5LCBhcyB3ZWxsIGFzIHJhdyBjb21wcmVzc2VkIHN0cmVhbXMuCisKK1RoZSBpbnRlcmZhY2UgcHJvdmlkZWQgYnkgdGhpcyBtb2R1bGUgaXMgdmVyeSBzaW1pbGFyIHRvIHRoYXQgb2YgdGhlIDptb2Q6YGJ6MmAKK21vZHVsZS4gSG93ZXZlciwgbm90ZSB0aGF0IDpjbGFzczpgTFpNQUZpbGVgIGlzICpub3QqIHRocmVhZC1zYWZlLCB1bmxpa2UKKzpjbGFzczpgYnoyLkJaMkZpbGVgLCBzbyBpZiB5b3UgbmVlZCB0byB1c2UgYSBzaW5nbGUgOmNsYXNzOmBMWk1BRmlsZWAgaW5zdGFuY2UKK2Zyb20gbXVsdGlwbGUgdGhyZWFkcywgaXQgaXMgbmVjZXNzYXJ5IHRvIHByb3RlY3QgaXQgd2l0aCBhIGxvY2suCisKKworLi4gZXhjZXB0aW9uOjogTFpNQUVycm9yCisKKyAgIFRoaXMgZXhjZXB0aW9uIGlzIHJhaXNlZCB3aGVuIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgY29tcHJlc3Npb24gb3IKKyAgIGRlY29tcHJlc3Npb24sIG9yIHdoaWxlIGluaXRpYWxpemluZyB0aGUgY29tcHJlc3Nvci9kZWNvbXByZXNzb3Igc3RhdGUuCisKKworUmVhZGluZyBhbmQgd3JpdGluZyBjb21wcmVzc2VkIGZpbGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gZnVuY3Rpb246OiBvcGVuKGZpbGVuYW1lLCBtb2RlPSJyYiIsIFwqLCBmb3JtYXQ9Tm9uZSwgY2hlY2s9LTEsIHByZXNldD1Ob25lLCBmaWx0ZXJzPU5vbmUsIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lLCBuZXdsaW5lPU5vbmUpCisKKyAgIE9wZW4gYW4gTFpNQS1jb21wcmVzc2VkIGZpbGUgaW4gYmluYXJ5IG9yIHRleHQgbW9kZSwgcmV0dXJuaW5nIGEgOnRlcm06YGZpbGUKKyAgIG9iamVjdGAuCisKKyAgIFRoZSAqZmlsZW5hbWUqIGFyZ3VtZW50IGNhbiBiZSBlaXRoZXIgYW4gYWN0dWFsIGZpbGUgbmFtZSAoZ2l2ZW4gYXMgYQorICAgOmNsYXNzOmBzdHJgIG9yIDpjbGFzczpgYnl0ZXNgIG9iamVjdCksIGluIHdoaWNoIGNhc2UgdGhlIG5hbWVkIGZpbGUgaXMKKyAgIG9wZW5lZCwgb3IgaXQgY2FuIGJlIGFuIGV4aXN0aW5nIGZpbGUgb2JqZWN0IHRvIHJlYWQgZnJvbSBvciB3cml0ZSB0by4KKworICAgVGhlICptb2RlKiBhcmd1bWVudCBjYW4gYmUgYW55IG9mIGBgInIiYGAsIGBgInJiImBgLCBgYCJ3ImBgLCBgYCJ3YiJgYCwKKyAgIGBgImEiYGAgb3IgYGAiYWIiYGAgZm9yIGJpbmFyeSBtb2RlLCBvciBgYCJydCJgYCwgYGAid3QiYGAsIG9yIGBgImF0ImBgIGZvcgorICAgdGV4dCBtb2RlLiBUaGUgZGVmYXVsdCBpcyBgYCJyYiJgYC4KKworICAgV2hlbiBvcGVuaW5nIGEgZmlsZSBmb3IgcmVhZGluZywgdGhlICpmb3JtYXQqIGFuZCAqZmlsdGVycyogYXJndW1lbnRzIGhhdmUKKyAgIHRoZSBzYW1lIG1lYW5pbmdzIGFzIGZvciA6Y2xhc3M6YExaTUFEZWNvbXByZXNzb3JgLiBJbiB0aGlzIGNhc2UsIHRoZSAqY2hlY2sqCisgICBhbmQgKnByZXNldCogYXJndW1lbnRzIHNob3VsZCBub3QgYmUgdXNlZC4KKworICAgV2hlbiBvcGVuaW5nIGEgZmlsZSBmb3Igd3JpdGluZywgdGhlICpmb3JtYXQqLCAqY2hlY2sqLCAqcHJlc2V0KiBhbmQKKyAgICpmaWx0ZXJzKiBhcmd1bWVudHMgaGF2ZSB0aGUgc2FtZSBtZWFuaW5ncyBhcyBmb3IgOmNsYXNzOmBMWk1BQ29tcHJlc3NvcmAuCisKKyAgIEZvciBiaW5hcnkgbW9kZSwgdGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIHRoZSA6Y2xhc3M6YExaTUFGaWxlYAorICAgY29uc3RydWN0b3I6IGBgTFpNQUZpbGUoZmlsZW5hbWUsIG1vZGUsIC4uLilgYC4gSW4gdGhpcyBjYXNlLCB0aGUgKmVuY29kaW5nKiwKKyAgICplcnJvcnMqIGFuZCAqbmV3bGluZSogYXJndW1lbnRzIG11c3Qgbm90IGJlIHByb3ZpZGVkLgorCisgICBGb3IgdGV4dCBtb2RlLCBhIDpjbGFzczpgTFpNQUZpbGVgIG9iamVjdCBpcyBjcmVhdGVkLCBhbmQgd3JhcHBlZCBpbiBhbgorICAgOmNsYXNzOmBpby5UZXh0SU9XcmFwcGVyYCBpbnN0YW5jZSB3aXRoIHRoZSBzcGVjaWZpZWQgZW5jb2RpbmcsIGVycm9yCisgICBoYW5kbGluZyBiZWhhdmlvciwgYW5kIGxpbmUgZW5kaW5nKHMpLgorCisKKy4uIGNsYXNzOjogTFpNQUZpbGUoZmlsZW5hbWU9Tm9uZSwgbW9kZT0iciIsIFwqLCBmb3JtYXQ9Tm9uZSwgY2hlY2s9LTEsIHByZXNldD1Ob25lLCBmaWx0ZXJzPU5vbmUpCisKKyAgIE9wZW4gYW4gTFpNQS1jb21wcmVzc2VkIGZpbGUgaW4gYmluYXJ5IG1vZGUuCisKKyAgIEFuIDpjbGFzczpgTFpNQUZpbGVgIGNhbiB3cmFwIGFuIGFscmVhZHktb3BlbiA6dGVybTpgZmlsZSBvYmplY3RgLCBvciBvcGVyYXRlCisgICBkaXJlY3RseSBvbiBhIG5hbWVkIGZpbGUuIFRoZSAqZmlsZW5hbWUqIGFyZ3VtZW50IHNwZWNpZmllcyBlaXRoZXIgdGhlIGZpbGUKKyAgIG9iamVjdCB0byB3cmFwLCBvciB0aGUgbmFtZSBvZiB0aGUgZmlsZSB0byBvcGVuIChhcyBhIDpjbGFzczpgc3RyYCBvcgorICAgOmNsYXNzOmBieXRlc2Agb2JqZWN0KS4gV2hlbiB3cmFwcGluZyBhbiBleGlzdGluZyBmaWxlIG9iamVjdCwgdGhlIHdyYXBwZWQKKyAgIGZpbGUgd2lsbCBub3QgYmUgY2xvc2VkIHdoZW4gdGhlIDpjbGFzczpgTFpNQUZpbGVgIGlzIGNsb3NlZC4KKworICAgVGhlICptb2RlKiBhcmd1bWVudCBjYW4gYmUgZWl0aGVyIGBgInIiYGAgZm9yIHJlYWRpbmcgKGRlZmF1bHQpLCBgYCJ3ImBgIGZvcgorICAgb3ZlcndyaXRpbmcsIG9yIGBgImEiYGAgZm9yIGFwcGVuZGluZy4gVGhlc2UgY2FuIGVxdWl2YWxlbnRseSBiZSBnaXZlbiBhcworICAgYGAicmIiYGAsIGBgIndiImBgLCBhbmQgYGAiYWIiYGAgcmVzcGVjdGl2ZWx5LgorCisgICBJZiAqZmlsZW5hbWUqIGlzIGEgZmlsZSBvYmplY3QgKHJhdGhlciB0aGFuIGFuIGFjdHVhbCBmaWxlIG5hbWUpLCBhIG1vZGUgb2YKKyAgIGBgInciYGAgZG9lcyBub3QgdHJ1bmNhdGUgdGhlIGZpbGUsIGFuZCBpcyBpbnN0ZWFkIGVxdWl2YWxlbnQgdG8gYGAiYSJgYC4KKworICAgV2hlbiBvcGVuaW5nIGEgZmlsZSBmb3IgcmVhZGluZywgdGhlIGlucHV0IGZpbGUgbWF5IGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mCisgICBtdWx0aXBsZSBzZXBhcmF0ZSBjb21wcmVzc2VkIHN0cmVhbXMuIFRoZXNlIGFyZSB0cmFuc3BhcmVudGx5IGRlY29kZWQgYXMgYQorICAgc2luZ2xlIGxvZ2ljYWwgc3RyZWFtLgorCisgICBXaGVuIG9wZW5pbmcgYSBmaWxlIGZvciByZWFkaW5nLCB0aGUgKmZvcm1hdCogYW5kICpmaWx0ZXJzKiBhcmd1bWVudHMgaGF2ZQorICAgdGhlIHNhbWUgbWVhbmluZ3MgYXMgZm9yIDpjbGFzczpgTFpNQURlY29tcHJlc3NvcmAuIEluIHRoaXMgY2FzZSwgdGhlICpjaGVjayoKKyAgIGFuZCAqcHJlc2V0KiBhcmd1bWVudHMgc2hvdWxkIG5vdCBiZSB1c2VkLgorCisgICBXaGVuIG9wZW5pbmcgYSBmaWxlIGZvciB3cml0aW5nLCB0aGUgKmZvcm1hdCosICpjaGVjayosICpwcmVzZXQqIGFuZAorICAgKmZpbHRlcnMqIGFyZ3VtZW50cyBoYXZlIHRoZSBzYW1lIG1lYW5pbmdzIGFzIGZvciA6Y2xhc3M6YExaTUFDb21wcmVzc29yYC4KKworICAgOmNsYXNzOmBMWk1BRmlsZWAgc3VwcG9ydHMgYWxsIHRoZSBtZW1iZXJzIHNwZWNpZmllZCBieQorICAgOmNsYXNzOmBpby5CdWZmZXJlZElPQmFzZWAsIGV4Y2VwdCBmb3IgOm1ldGg6YGRldGFjaGAgYW5kIDptZXRoOmB0cnVuY2F0ZWAuCisgICBJdGVyYXRpb24gYW5kIHRoZSA6a2V5d29yZDpgd2l0aGAgc3RhdGVtZW50IGFyZSBzdXBwb3J0ZWQuCisKKyAgIFRoZSBmb2xsb3dpbmcgbWV0aG9kIGlzIGFsc28gcHJvdmlkZWQ6CisKKyAgIC4uIG1ldGhvZDo6IHBlZWsoc2l6ZT0tMSkKKworICAgICAgUmV0dXJuIGJ1ZmZlcmVkIGRhdGEgd2l0aG91dCBhZHZhbmNpbmcgdGhlIGZpbGUgcG9zaXRpb24uIEF0IGxlYXN0IG9uZQorICAgICAgYnl0ZSBvZiBkYXRhIHdpbGwgYmUgcmV0dXJuZWQsIHVubGVzcyBFT0YgaGFzIGJlZW4gcmVhY2hlZC4gVGhlIGV4YWN0CisgICAgICBudW1iZXIgb2YgYnl0ZXMgcmV0dXJuZWQgaXMgdW5zcGVjaWZpZWQgKHRoZSAqc2l6ZSogYXJndW1lbnQgaXMgaWdub3JlZCkuCisKKworQ29tcHJlc3NpbmcgYW5kIGRlY29tcHJlc3NpbmcgZGF0YSBpbiBtZW1vcnkKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIGNsYXNzOjogTFpNQUNvbXByZXNzb3IoZm9ybWF0PUZPUk1BVF9YWiwgY2hlY2s9LTEsIHByZXNldD1Ob25lLCBmaWx0ZXJzPU5vbmUpCisKKyAgIENyZWF0ZSBhIGNvbXByZXNzb3Igb2JqZWN0LCB3aGljaCBjYW4gYmUgdXNlZCB0byBjb21wcmVzcyBkYXRhIGluY3JlbWVudGFsbHkuCisKKyAgIEZvciBhIG1vcmUgY29udmVuaWVudCB3YXkgb2YgY29tcHJlc3NpbmcgYSBzaW5nbGUgY2h1bmsgb2YgZGF0YSwgc2VlCisgICA6ZnVuYzpgY29tcHJlc3NgLgorCisgICBUaGUgKmZvcm1hdCogYXJndW1lbnQgc3BlY2lmaWVzIHdoYXQgY29udGFpbmVyIGZvcm1hdCBzaG91bGQgYmUgdXNlZC4KKyAgIFBvc3NpYmxlIHZhbHVlcyBhcmU6CisKKyAgICogOmNvbnN0OmBGT1JNQVRfWFpgOiBUaGUgYGAueHpgYCBjb250YWluZXIgZm9ybWF0LgorICAgICAgVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3JtYXQuCisKKyAgICogOmNvbnN0OmBGT1JNQVRfQUxPTkVgOiBUaGUgbGVnYWN5IGBgLmx6bWFgYCBjb250YWluZXIgZm9ybWF0LgorICAgICAgVGhpcyBmb3JtYXQgaXMgbW9yZSBsaW1pdGVkIHRoYW4gYGAueHpgYCAtLSBpdCBkb2VzIG5vdCBzdXBwb3J0IGludGVncml0eQorICAgICAgY2hlY2tzIG9yIG11bHRpcGxlIGZpbHRlcnMuCisKKyAgICogOmNvbnN0OmBGT1JNQVRfUkFXYDogQSByYXcgZGF0YSBzdHJlYW0sIG5vdCB1c2luZyBhbnkgY29udGFpbmVyIGZvcm1hdC4KKyAgICAgIFRoaXMgZm9ybWF0IHNwZWNpZmllciBkb2VzIG5vdCBzdXBwb3J0IGludGVncml0eSBjaGVja3MsIGFuZCByZXF1aXJlcyB0aGF0CisgICAgICB5b3UgYWx3YXlzIHNwZWNpZnkgYSBjdXN0b20gZmlsdGVyIGNoYWluIChmb3IgYm90aCBjb21wcmVzc2lvbiBhbmQKKyAgICAgIGRlY29tcHJlc3Npb24pLiBBZGRpdGlvbmFsbHksIGRhdGEgY29tcHJlc3NlZCBpbiB0aGlzIG1hbm5lciBjYW5ub3QgYmUKKyAgICAgIGRlY29tcHJlc3NlZCB1c2luZyA6Y29uc3Q6YEZPUk1BVF9BVVRPYCAoc2VlIDpjbGFzczpgTFpNQURlY29tcHJlc3NvcmApLgorCisgICBUaGUgKmNoZWNrKiBhcmd1bWVudCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgaW50ZWdyaXR5IGNoZWNrIHRvIGluY2x1ZGUgaW4gdGhlCisgICBjb21wcmVzc2VkIGRhdGEuIFRoaXMgY2hlY2sgaXMgdXNlZCB3aGVuIGRlY29tcHJlc3NpbmcsIHRvIGVuc3VyZSB0aGF0IHRoZQorICAgZGF0YSBoYXMgbm90IGJlZW4gY29ycnVwdGVkLiBQb3NzaWJsZSB2YWx1ZXMgYXJlOgorCisgICAqIDpjb25zdDpgQ0hFQ0tfTk9ORWA6IE5vIGludGVncml0eSBjaGVjay4KKyAgICAgVGhpcyBpcyB0aGUgZGVmYXVsdCAoYW5kIHRoZSBvbmx5IGFjY2VwdGFibGUgdmFsdWUpIGZvcgorICAgICA6Y29uc3Q6YEZPUk1BVF9BTE9ORWAgYW5kIDpjb25zdDpgRk9STUFUX1JBV2AuCisKKyAgICogOmNvbnN0OmBDSEVDS19DUkMzMmA6IDMyLWJpdCBDeWNsaWMgUmVkdW5kYW5jeSBDaGVjay4KKworICAgKiA6Y29uc3Q6YENIRUNLX0NSQzY0YDogNjQtYml0IEN5Y2xpYyBSZWR1bmRhbmN5IENoZWNrLgorICAgICBUaGlzIGlzIHRoZSBkZWZhdWx0IGZvciA6Y29uc3Q6YEZPUk1BVF9YWmAuCisKKyAgICogOmNvbnN0OmBDSEVDS19TSEEyNTZgOiAyNTYtYml0IFNlY3VyZSBIYXNoIEFsZ29yaXRobS4KKworICAgSWYgdGhlIHNwZWNpZmllZCBjaGVjayBpcyBub3Qgc3VwcG9ydGVkLCBhbiA6Y2xhc3M6YExaTUFFcnJvcmAgaXMgcmFpc2VkLgorCisgICBUaGUgY29tcHJlc3Npb24gc2V0dGluZ3MgY2FuIGJlIHNwZWNpZmllZCBlaXRoZXIgYXMgYSBwcmVzZXQgY29tcHJlc3Npb24KKyAgIGxldmVsICh3aXRoIHRoZSAqcHJlc2V0KiBhcmd1bWVudCksIG9yIGluIGRldGFpbCBhcyBhIGN1c3RvbSBmaWx0ZXIgY2hhaW4KKyAgICh3aXRoIHRoZSAqZmlsdGVycyogYXJndW1lbnQpLgorCisgICBUaGUgKnByZXNldCogYXJndW1lbnQgKGlmIHByb3ZpZGVkKSBzaG91bGQgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIGBgMGBgIGFuZAorICAgYGA5YGAgKGluY2x1c2l2ZSksIG9wdGlvbmFsbHkgT1ItZWQgd2l0aCB0aGUgY29uc3RhbnQKKyAgIDpjb25zdDpgUFJFU0VUX0VYVFJFTUVgLiBJZiBuZWl0aGVyICpwcmVzZXQqIG5vciAqZmlsdGVycyogYXJlIGdpdmVuLCB0aGUKKyAgIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gdXNlIDpjb25zdDpgUFJFU0VUX0RFRkFVTFRgIChwcmVzZXQgbGV2ZWwgYGA2YGApLgorICAgSGlnaGVyIHByZXNldHMgcHJvZHVjZSBzbWFsbGVyIG91dHB1dCwgYnV0IG1ha2UgdGhlIGNvbXByZXNzaW9uIHByb2Nlc3MKKyAgIHNsb3dlci4KKworICAgLi4gbm90ZTo6CisKKyAgICAgIEluIGFkZGl0aW9uIHRvIGJlaW5nIG1vcmUgQ1BVLWludGVuc2l2ZSwgY29tcHJlc3Npb24gd2l0aCBoaWdoZXIgcHJlc2V0cworICAgICAgYWxzbyByZXF1aXJlcyBtdWNoIG1vcmUgbWVtb3J5IChhbmQgcHJvZHVjZXMgb3V0cHV0IHRoYXQgbmVlZHMgbW9yZSBtZW1vcnkKKyAgICAgIHRvIGRlY29tcHJlc3MpLiBXaXRoIHByZXNldCBgYDlgYCBmb3IgZXhhbXBsZSwgdGhlIG92ZXJoZWFkIGZvciBhbgorICAgICAgOmNsYXNzOmBMWk1BQ29tcHJlc3NvcmAgb2JqZWN0IGNhbiBiZSBhcyBoaWdoIGFzIDgwME1pQi4gRm9yIHRoaXMgcmVhc29uLAorICAgICAgaXQgaXMgZ2VuZXJhbGx5IGJlc3QgdG8gc3RpY2sgd2l0aCB0aGUgZGVmYXVsdCBwcmVzZXQuCisKKyAgIFRoZSAqZmlsdGVycyogYXJndW1lbnQgKGlmIHByb3ZpZGVkKSBzaG91bGQgYmUgYSBmaWx0ZXIgY2hhaW4gc3BlY2lmaWVyLgorICAgU2VlIDpyZWY6YGZpbHRlci1jaGFpbi1zcGVjc2AgZm9yIGRldGFpbHMuCisKKyAgIC4uIG1ldGhvZDo6IGNvbXByZXNzKGRhdGEpCisKKyAgICAgIENvbXByZXNzICpkYXRhKiAoYSA6Y2xhc3M6YGJ5dGVzYCBvYmplY3QpLCByZXR1cm5pbmcgYSA6Y2xhc3M6YGJ5dGVzYAorICAgICAgb2JqZWN0IGNvbnRhaW5pbmcgY29tcHJlc3NlZCBkYXRhIGZvciBhdCBsZWFzdCBwYXJ0IG9mIHRoZSBpbnB1dC4gU29tZSBvZgorICAgICAgKmRhdGEqIG1heSBiZSBidWZmZXJlZCBpbnRlcm5hbGx5LCBmb3IgdXNlIGluIGxhdGVyIGNhbGxzIHRvCisgICAgICA6bWV0aDpgY29tcHJlc3NgIGFuZCA6bWV0aDpgZmx1c2hgLiBUaGUgcmV0dXJuZWQgZGF0YSBzaG91bGQgYmUKKyAgICAgIGNvbmNhdGVuYXRlZCB3aXRoIHRoZSBvdXRwdXQgb2YgYW55IHByZXZpb3VzIGNhbGxzIHRvIDptZXRoOmBjb21wcmVzc2AuCisKKyAgIC4uIG1ldGhvZDo6IGZsdXNoKCkKKworICAgICAgRmluaXNoIHRoZSBjb21wcmVzc2lvbiBwcm9jZXNzLCByZXR1cm5pbmcgYSA6Y2xhc3M6YGJ5dGVzYCBvYmplY3QKKyAgICAgIGNvbnRhaW5pbmcgYW55IGRhdGEgc3RvcmVkIGluIHRoZSBjb21wcmVzc29yJ3MgaW50ZXJuYWwgYnVmZmVycy4KKworICAgICAgVGhlIGNvbXByZXNzb3IgY2Fubm90IGJlIHVzZWQgYWZ0ZXIgdGhpcyBtZXRob2QgaGFzIGJlZW4gY2FsbGVkLgorCisKKy4uIGNsYXNzOjogTFpNQURlY29tcHJlc3Nvcihmb3JtYXQ9Rk9STUFUX0FVVE8sIG1lbWxpbWl0PU5vbmUsIGZpbHRlcnM9Tm9uZSkKKworICAgQ3JlYXRlIGEgZGVjb21wcmVzc29yIG9iamVjdCwgd2hpY2ggY2FuIGJlIHVzZWQgdG8gZGVjb21wcmVzcyBkYXRhCisgICBpbmNyZW1lbnRhbGx5LgorCisgICBGb3IgYSBtb3JlIGNvbnZlbmllbnQgd2F5IG9mIGRlY29tcHJlc3NpbmcgYW4gZW50aXJlIGNvbXByZXNzZWQgc3RyZWFtIGF0CisgICBvbmNlLCBzZWUgOmZ1bmM6YGRlY29tcHJlc3NgLgorCisgICBUaGUgKmZvcm1hdCogYXJndW1lbnQgc3BlY2lmaWVzIHRoZSBjb250YWluZXIgZm9ybWF0IHRoYXQgc2hvdWxkIGJlIHVzZWQuIFRoZQorICAgZGVmYXVsdCBpcyA6Y29uc3Q6YEZPUk1BVF9BVVRPYCwgd2hpY2ggY2FuIGRlY29tcHJlc3MgYm90aCBgYC54emBgIGFuZAorICAgYGAubHptYWBgIGZpbGVzLiBPdGhlciBwb3NzaWJsZSB2YWx1ZXMgYXJlIDpjb25zdDpgRk9STUFUX1haYCwKKyAgIDpjb25zdDpgRk9STUFUX0FMT05FYCwgYW5kIDpjb25zdDpgRk9STUFUX1JBV2AuCisKKyAgIFRoZSAqbWVtbGltaXQqIGFyZ3VtZW50IHNwZWNpZmllcyBhIGxpbWl0IChpbiBieXRlcykgb24gdGhlIGFtb3VudCBvZiBtZW1vcnkKKyAgIHRoYXQgdGhlIGRlY29tcHJlc3NvciBjYW4gdXNlLiBXaGVuIHRoaXMgYXJndW1lbnQgaXMgdXNlZCwgZGVjb21wcmVzc2lvbiB3aWxsCisgICBmYWlsIHdpdGggYW4gOmNsYXNzOmBMWk1BRXJyb3JgIGlmIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBkZWNvbXByZXNzIHRoZSBpbnB1dAorICAgd2l0aGluIHRoZSBnaXZlbiBtZW1vcnkgbGltaXQuCisKKyAgIFRoZSAqZmlsdGVycyogYXJndW1lbnQgc3BlY2lmaWVzIHRoZSBmaWx0ZXIgY2hhaW4gdGhhdCB3YXMgdXNlZCB0byBjcmVhdGUKKyAgIHRoZSBzdHJlYW0gYmVpbmcgZGVjb21wcmVzc2VkLiBUaGlzIGFyZ3VtZW50IGlzIHJlcXVpcmVkIGlmICpmb3JtYXQqIGlzCisgICA6Y29uc3Q6YEZPUk1BVF9SQVdgLCBidXQgc2hvdWxkIG5vdCBiZSB1c2VkIGZvciBvdGhlciBmb3JtYXRzLgorICAgU2VlIDpyZWY6YGZpbHRlci1jaGFpbi1zcGVjc2AgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgZmlsdGVyIGNoYWlucy4KKworICAgLi4gbm90ZTo6CisgICAgICBUaGlzIGNsYXNzIGRvZXMgbm90IHRyYW5zcGFyZW50bHkgaGFuZGxlIGlucHV0cyBjb250YWluaW5nIG11bHRpcGxlCisgICAgICBjb21wcmVzc2VkIHN0cmVhbXMsIHVubGlrZSA6ZnVuYzpgZGVjb21wcmVzc2AgYW5kIDpjbGFzczpgTFpNQUZpbGVgLiBUbworICAgICAgZGVjb21wcmVzcyBhIG11bHRpLXN0cmVhbSBpbnB1dCB3aXRoIDpjbGFzczpgTFpNQURlY29tcHJlc3NvcmAsIHlvdSBtdXN0CisgICAgICBjcmVhdGUgYSBuZXcgZGVjb21wcmVzc29yIGZvciBlYWNoIHN0cmVhbS4KKworICAgLi4gbWV0aG9kOjogZGVjb21wcmVzcyhkYXRhKQorCisgICAgICBEZWNvbXByZXNzICpkYXRhKiAoYSA6Y2xhc3M6YGJ5dGVzYCBvYmplY3QpLCByZXR1cm5pbmcgYSA6Y2xhc3M6YGJ5dGVzYAorICAgICAgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGRlY29tcHJlc3NlZCBkYXRhIGZvciBhdCBsZWFzdCBwYXJ0IG9mIHRoZSBpbnB1dC4KKyAgICAgIFNvbWUgb2YgKmRhdGEqIG1heSBiZSBidWZmZXJlZCBpbnRlcm5hbGx5LCBmb3IgdXNlIGluIGxhdGVyIGNhbGxzIHRvCisgICAgICA6bWV0aDpgZGVjb21wcmVzc2AuIFRoZSByZXR1cm5lZCBkYXRhIHNob3VsZCBiZSBjb25jYXRlbmF0ZWQgd2l0aCB0aGUKKyAgICAgIG91dHB1dCBvZiBhbnkgcHJldmlvdXMgY2FsbHMgdG8gOm1ldGg6YGRlY29tcHJlc3NgLgorCisgICAuLiBhdHRyaWJ1dGU6OiBjaGVjaworCisgICAgICBUaGUgSUQgb2YgdGhlIGludGVncml0eSBjaGVjayB1c2VkIGJ5IHRoZSBpbnB1dCBzdHJlYW0uIFRoaXMgbWF5IGJlCisgICAgICA6Y29uc3Q6YENIRUNLX1VOS05PV05gIHVudGlsIGVub3VnaCBvZiB0aGUgaW5wdXQgaGFzIGJlZW4gZGVjb2RlZCB0bworICAgICAgZGV0ZXJtaW5lIHdoYXQgaW50ZWdyaXR5IGNoZWNrIGl0IHVzZXMuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IGVvZgorCisgICAgICBUcnVlIGlmIHRoZSBlbmQtb2Ytc3RyZWFtIG1hcmtlciBoYXMgYmVlbiByZWFjaGVkLgorCisgICAuLiBhdHRyaWJ1dGU6OiB1bnVzZWRfZGF0YQorCisgICAgICBEYXRhIGZvdW5kIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGNvbXByZXNzZWQgc3RyZWFtLgorCisgICAgICBCZWZvcmUgdGhlIGVuZCBvZiB0aGUgc3RyZWFtIGlzIHJlYWNoZWQsIHRoaXMgd2lsbCBiZSBgYGIiImBgLgorCisKKy4uIGZ1bmN0aW9uOjogY29tcHJlc3MoZGF0YSwgZm9ybWF0PUZPUk1BVF9YWiwgY2hlY2s9LTEsIHByZXNldD1Ob25lLCBmaWx0ZXJzPU5vbmUpCisKKyAgIENvbXByZXNzICpkYXRhKiAoYSA6Y2xhc3M6YGJ5dGVzYCBvYmplY3QpLCByZXR1cm5pbmcgdGhlIGNvbXByZXNzZWQgZGF0YSBhcyBhCisgICA6Y2xhc3M6YGJ5dGVzYCBvYmplY3QuCisKKyAgIFNlZSA6Y2xhc3M6YExaTUFDb21wcmVzc29yYCBhYm92ZSBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgKmZvcm1hdCosICpjaGVjayosCisgICAqcHJlc2V0KiBhbmQgKmZpbHRlcnMqIGFyZ3VtZW50cy4KKworCisuLiBmdW5jdGlvbjo6IGRlY29tcHJlc3MoZGF0YSwgZm9ybWF0PUZPUk1BVF9BVVRPLCBtZW1saW1pdD1Ob25lLCBmaWx0ZXJzPU5vbmUpCisKKyAgIERlY29tcHJlc3MgKmRhdGEqIChhIDpjbGFzczpgYnl0ZXNgIG9iamVjdCksIHJldHVybmluZyB0aGUgdW5jb21wcmVzc2VkIGRhdGEKKyAgIGFzIGEgOmNsYXNzOmBieXRlc2Agb2JqZWN0LgorCisgICBJZiAqZGF0YSogaXMgdGhlIGNvbmNhdGVuYXRpb24gb2YgbXVsdGlwbGUgZGlzdGluY3QgY29tcHJlc3NlZCBzdHJlYW1zLAorICAgZGVjb21wcmVzcyBhbGwgb2YgdGhlc2Ugc3RyZWFtcywgYW5kIHJldHVybiB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgcmVzdWx0cy4KKworICAgU2VlIDpjbGFzczpgTFpNQURlY29tcHJlc3NvcmAgYWJvdmUgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlICpmb3JtYXQqLAorICAgKm1lbWxpbWl0KiBhbmQgKmZpbHRlcnMqIGFyZ3VtZW50cy4KKworCitNaXNjZWxsYW5lb3VzCistLS0tLS0tLS0tLS0tCisKKy4uIGZ1bmN0aW9uOjogaXNfY2hlY2tfc3VwcG9ydGVkKGNoZWNrKQorCisgICBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGludGVncml0eSBjaGVjayBpcyBzdXBwb3J0ZWQgb24gdGhpcyBzeXN0ZW0uCisKKyAgIDpjb25zdDpgQ0hFQ0tfTk9ORWAgYW5kIDpjb25zdDpgQ0hFQ0tfQ1JDMzJgIGFyZSBhbHdheXMgc3VwcG9ydGVkLgorICAgOmNvbnN0OmBDSEVDS19DUkM2NGAgYW5kIDpjb25zdDpgQ0hFQ0tfU0hBMjU2YCBtYXkgYmUgdW5hdmFpbGFibGUgaWYgeW91IGFyZQorICAgdXNpbmcgYSB2ZXJzaW9uIG9mIDpwcm9ncmFtOmBsaWJsem1hYCB0aGF0IHdhcyBjb21waWxlZCB3aXRoIGEgbGltaXRlZAorICAgZmVhdHVyZSBzZXQuCisKKworLi4gX2ZpbHRlci1jaGFpbi1zcGVjczoKKworU3BlY2lmeWluZyBjdXN0b20gZmlsdGVyIGNoYWlucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBIGZpbHRlciBjaGFpbiBzcGVjaWZpZXIgaXMgYSBzZXF1ZW5jZSBvZiBkaWN0aW9uYXJpZXMsIHdoZXJlIGVhY2ggZGljdGlvbmFyeQorY29udGFpbnMgdGhlIElEIGFuZCBvcHRpb25zIGZvciBhIHNpbmdsZSBmaWx0ZXIuIEVhY2ggZGljdGlvbmFyeSBtdXN0IGNvbnRhaW4KK3RoZSBrZXkgYGAiaWQiYGAsIGFuZCBtYXkgY29udGFpbiBhZGRpdGlvbmFsIGtleXMgdG8gc3BlY2lmeSBmaWx0ZXItZGVwZW5kZW50CitvcHRpb25zLiBWYWxpZCBmaWx0ZXIgSURzIGFyZSBhcyBmb2xsb3dzOgorCisqIENvbXByZXNzaW9uIGZpbHRlcnM6CisgICAqIDpjb25zdDpgRklMVEVSX0xaTUExYCAoZm9yIHVzZSB3aXRoIDpjb25zdDpgRk9STUFUX0FMT05FYCkKKyAgICogOmNvbnN0OmBGSUxURVJfTFpNQTJgIChmb3IgdXNlIHdpdGggOmNvbnN0OmBGT1JNQVRfWFpgIGFuZCA6Y29uc3Q6YEZPUk1BVF9SQVdgKQorCisqIERlbHRhIGZpbHRlcjoKKyAgICogOmNvbnN0OmBGSUxURVJfREVMVEFgCisKKyogQnJhbmNoLUNhbGwtSnVtcCAoQkNKKSBmaWx0ZXJzOgorICAgKiA6Y29uc3Q6YEZJTFRFUl9YODZgCisgICAqIDpjb25zdDpgRklMVEVSX0lBNjRgCisgICAqIDpjb25zdDpgRklMVEVSX0FSTWAKKyAgICogOmNvbnN0OmBGSUxURVJfQVJNVEhVTUJgCisgICAqIDpjb25zdDpgRklMVEVSX1BPV0VSUENgCisgICAqIDpjb25zdDpgRklMVEVSX1NQQVJDYAorCitBIGZpbHRlciBjaGFpbiBjYW4gY29uc2lzdCBvZiB1cCB0byA0IGZpbHRlcnMsIGFuZCBjYW5ub3QgYmUgZW1wdHkuIFRoZSBsYXN0CitmaWx0ZXIgaW4gdGhlIGNoYWluIG11c3QgYmUgYSBjb21wcmVzc2lvbiBmaWx0ZXIsIGFuZCBhbnkgb3RoZXIgZmlsdGVycyBtdXN0IGJlCitkZWx0YSBvciBCQ0ogZmlsdGVycy4KKworQ29tcHJlc3Npb24gZmlsdGVycyBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgb3B0aW9ucyAoc3BlY2lmaWVkIGFzIGFkZGl0aW9uYWwKK2VudHJpZXMgaW4gdGhlIGRpY3Rpb25hcnkgcmVwcmVzZW50aW5nIHRoZSBmaWx0ZXIpOgorCisgICAqIGBgcHJlc2V0YGA6IEEgY29tcHJlc3Npb24gcHJlc2V0IHRvIHVzZSBhcyBhIHNvdXJjZSBvZiBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgb3B0aW9ucyB0aGF0IGFyZSBub3Qgc3BlY2lmaWVkIGV4cGxpY2l0bHkuCisgICAqIGBgZGljdF9zaXplYGA6IERpY3Rpb25hcnkgc2l6ZSBpbiBieXRlcy4gVGhpcyBzaG91bGQgYmUgYmV0d2VlbiA0S2lCIGFuZAorICAgICAxLjVHaUIgKGluY2x1c2l2ZSkuCisgICAqIGBgbGNgYDogTnVtYmVyIG9mIGxpdGVyYWwgY29udGV4dCBiaXRzLgorICAgKiBgYGxwYGA6IE51bWJlciBvZiBsaXRlcmFsIHBvc2l0aW9uIGJpdHMuIFRoZSBzdW0gYGBsYyArIGxwYGAgbXVzdCBiZSBhdAorICAgICBtb3N0IDQuCisgICAqIGBgcGJgYDogTnVtYmVyIG9mIHBvc2l0aW9uIGJpdHM7IG11c3QgYmUgYXQgbW9zdCA0LgorICAgKiBgYG1vZGVgYDogOmNvbnN0OmBNT0RFX0ZBU1RgIG9yIDpjb25zdDpgTU9ERV9OT1JNQUxgLgorICAgKiBgYG5pY2VfbGVuYGA6IFdoYXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSAibmljZSBsZW5ndGgiIGZvciBhIG1hdGNoLgorICAgICBUaGlzIHNob3VsZCBiZSAyNzMgb3IgbGVzcy4KKyAgICogYGBtZmBgOiBXaGF0IG1hdGNoIGZpbmRlciB0byB1c2UgLS0gOmNvbnN0OmBNRl9IQzNgLCA6Y29uc3Q6YE1GX0hDNGAsCisgICAgIDpjb25zdDpgTUZfQlQyYCwgOmNvbnN0OmBNRl9CVDNgLCBvciA6Y29uc3Q6YE1GX0JUNGAuCisgICAqIGBgZGVwdGhgYDogTWF4aW11bSBzZWFyY2ggZGVwdGggdXNlZCBieSBtYXRjaCBmaW5kZXIuIDAgKGRlZmF1bHQpIG1lYW5zIHRvCisgICAgIHNlbGVjdCBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIG90aGVyIGZpbHRlciBvcHRpb25zLgorCitUaGUgZGVsdGEgZmlsdGVyIHN0b3JlcyB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBieXRlcywgcHJvZHVjaW5nIG1vcmUgcmVwZXRpdGl2ZQoraW5wdXQgZm9yIHRoZSBjb21wcmVzc29yIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcy4gSXQgb25seSBzdXBwb3J0cyBhIHNpbmdsZQorVGhlIGRlbHRhIGZpbHRlciBzdXBwb3J0cyBvbmx5IG9uZSBvcHRpb24sIGBgZGlzdGBgLiBUaGlzIGluZGljYXRlcyB0aGUgZGlzdGFuY2UKK2JldHdlZW4gYnl0ZXMgdG8gYmUgc3VidHJhY3RlZC4gVGhlIGRlZmF1bHQgaXMgMSwgaS5lLiB0YWtlIHRoZSBkaWZmZXJlbmNlcworYmV0d2VlbiBhZGphY2VudCBieXRlcy4KKworVGhlIEJDSiBmaWx0ZXJzIGFyZSBpbnRlbmRlZCB0byBiZSBhcHBsaWVkIHRvIG1hY2hpbmUgY29kZS4gVGhleSBjb252ZXJ0CityZWxhdGl2ZSBicmFuY2hlcywgY2FsbHMgYW5kIGp1bXBzIGluIHRoZSBjb2RlIHRvIHVzZSBhYnNvbHV0ZSBhZGRyZXNzaW5nLCB3aXRoCit0aGUgYWltIG9mIGluY3JlYXNpbmcgdGhlIHJlZHVuZGFuY3kgdGhhdCBjYW4gYmUgZXhwbG9pdGVkIGJ5IHRoZSBjb21wcmVzc29yLgorVGhlc2UgZmlsdGVycyBzdXBwb3J0IG9uZSBvcHRpb24sIGBgc3RhcnRfb2Zmc2V0YGAuIFRoaXMgc3BlY2lmaWVzIHRoZSBhZGRyZXNzCit0aGF0IHNob3VsZCBiZSBtYXBwZWQgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgaW5wdXQgZGF0YS4gVGhlIGRlZmF1bHQgaXMgMC4KKworCitFeGFtcGxlcworLS0tLS0tLS0KKworUmVhZGluZyBpbiBhIGNvbXByZXNzZWQgZmlsZTo6CisKKyAgIGltcG9ydCBsem1hCisgICB3aXRoIGx6bWEuTFpNQUZpbGUoImZpbGUueHoiKSBhcyBmOgorICAgICAgZmlsZV9jb250ZW50ID0gZi5yZWFkKCkKKworQ3JlYXRpbmcgYSBjb21wcmVzc2VkIGZpbGU6OgorCisgICBpbXBvcnQgbHptYQorICAgZGF0YSA9IGIiSW5zZXJ0IERhdGEgSGVyZSIKKyAgIHdpdGggbHptYS5MWk1BRmlsZSgiZmlsZS54eiIsICJ3IikgYXMgZjoKKyAgICAgIGYud3JpdGUoZGF0YSkKKworQ29tcHJlc3NpbmcgZGF0YSBpbiBtZW1vcnk6OgorCisgICBpbXBvcnQgbHptYQorICAgZGF0YV9pbiA9IGIiSW5zZXJ0IERhdGEgSGVyZSIKKyAgIGRhdGFfb3V0ID0gbHptYS5jb21wcmVzcyhkYXRhX2luKQorCitJbmNyZW1lbnRhbCBjb21wcmVzc2lvbjo6CisKKyAgIGltcG9ydCBsem1hCisgICBsemMgPSBsem1hLkxaTUFDb21wcmVzc29yKCkKKyAgIG91dDEgPSBsemMuY29tcHJlc3MoYiJTb21lIGRhdGFcbiIpCisgICBvdXQyID0gbHpjLmNvbXByZXNzKGIiQW5vdGhlciBwaWVjZSBvZiBkYXRhXG4iKQorICAgb3V0MyA9IGx6Yy5jb21wcmVzcyhiIkV2ZW4gbW9yZSBkYXRhXG4iKQorICAgb3V0NCA9IGx6Yy5mbHVzaCgpCisgICAjIENvbmNhdGVuYXRlIGFsbCB0aGUgcGFydGlhbCByZXN1bHRzOgorICAgcmVzdWx0ID0gYiIiLmpvaW4oW291dDEsIG91dDIsIG91dDMsIG91dDRdKQorCitXcml0aW5nIGNvbXByZXNzZWQgZGF0YSB0byBhbiBhbHJlYWR5LW9wZW4gZmlsZTo6CisKKyAgIGltcG9ydCBsem1hCisgICB3aXRoIG9wZW4oImZpbGUueHoiLCAid2IiKSBhcyBmOgorICAgICAgIGYud3JpdGUoYiJUaGlzIGRhdGEgd2lsbCBub3QgYmUgY29tcHJlc3NlZFxuIikKKyAgICAgICB3aXRoIGx6bWEuTFpNQUZpbGUoZiwgInciKSBhcyBsemY6CisgICAgICAgICAgIGx6Zi53cml0ZShiIlRoaXMgKndpbGwqIGJlIGNvbXByZXNzZWRcbiIpCisgICAgICAgZi53cml0ZShiIk5vdCBjb21wcmVzc2VkXG4iKQorCitDcmVhdGluZyBhIGNvbXByZXNzZWQgZmlsZSB1c2luZyBhIGN1c3RvbSBmaWx0ZXIgY2hhaW46OgorCisgICBpbXBvcnQgbHptYQorICAgbXlfZmlsdGVycyA9IFsKKyAgICAgICB7ImlkIjogbHptYS5GSUxURVJfREVMVEEsICJkaXN0IjogNX0sCisgICAgICAgeyJpZCI6IGx6bWEuRklMVEVSX0xaTUEyLCAicHJlc2V0IjogNyB8IGx6bWEuUFJFU0VUX0VYVFJFTUV9LAorICAgXQorICAgd2l0aCBsem1hLkxaTUFGaWxlKCJmaWxlLnh6IiwgInciLCBmaWx0ZXJzPW15X2ZpbHRlcnMpIGFzIGY6CisgICAgICAgZi53cml0ZShiImJsYWggYmxhaCBibGFoIikKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L21hdGgucnN0IGIvRG9jL2xpYnJhcnkvbWF0aC5yc3QKaW5kZXggOThjNWIzMy4uNjJjMGYzNCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvbWF0aC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvbWF0aC5yc3QKQEAgLTE4NCw2ICsxODQsMTkgQEAKICAgIHJlc3VsdCBpcyBjYWxjdWxhdGVkIGluIGEgd2F5IHdoaWNoIGlzIGFjY3VyYXRlIGZvciAqeCogbmVhciB6ZXJvLgogCiAKKy4uIGZ1bmN0aW9uOjogbG9nMih4KQorCisgICBSZXR1cm4gdGhlIGJhc2UtMiBsb2dhcml0aG0gb2YgKngqLiBUaGlzIGlzIHVzdWFsbHkgbW9yZSBhY2N1cmF0ZSB0aGFuCisgICBgYGxvZyh4LCAyKWBgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworICAgLi4gc2VlYWxzbzo6CisKKyAgICAgIDptZXRoOmBpbnQuYml0X2xlbmd0aGAgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGJpdHMgbmVjZXNzYXJ5IHRvIHJlcHJlc2VudAorICAgICAgYW4gaW50ZWdlciBpbiBiaW5hcnksIGV4Y2x1ZGluZyB0aGUgc2lnbiBhbmQgbGVhZGluZyB6ZXJvcy4KKworCiAuLiBmdW5jdGlvbjo6IGxvZzEwKHgpCiAKICAgIFJldHVybiB0aGUgYmFzZS0xMCBsb2dhcml0aG0gb2YgKngqLiAgVGhpcyBpcyB1c3VhbGx5IG1vcmUgYWNjdXJhdGUKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L21tYXAucnN0IGIvRG9jL2xpYnJhcnkvbW1hcC5yc3QKaW5kZXggNWYwZjAwNC4uMWExOWE3ZSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvbW1hcC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvbW1hcC5yc3QKQEAgLTE5NiwxMiArMTk2LDE2IEBACiAgICAgICBtb3ZlIHdpbGwgcmFpc2UgYSA6ZXhjOmBUeXBlRXJyb3JgIGV4Y2VwdGlvbi4KIAogCi0gICAuLiBtZXRob2Q6OiByZWFkKG51bSkKKyAgIC4uIG1ldGhvZDo6IHJlYWQoW25dKQogCi0gICAgICBSZXR1cm4gYSA6Y2xhc3M6YGJ5dGVzYCBjb250YWluaW5nIHVwIHRvICpudW0qIGJ5dGVzIHN0YXJ0aW5nIGZyb20gdGhlCi0gICAgICBjdXJyZW50IGZpbGUgcG9zaXRpb247IHRoZSBmaWxlIHBvc2l0aW9uIGlzIHVwZGF0ZWQgdG8gcG9pbnQgYWZ0ZXIgdGhlCi0gICAgICBieXRlcyB0aGF0IHdlcmUgcmV0dXJuZWQuCisgICAgICBSZXR1cm4gYSA6Y2xhc3M6YGJ5dGVzYCBjb250YWluaW5nIHVwIHRvICpuKiBieXRlcyBzdGFydGluZyBmcm9tIHRoZQorICAgICAgY3VycmVudCBmaWxlIHBvc2l0aW9uLiBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCwgKk5vbmUqIG9yIG5lZ2F0aXZlLAorICAgICAgcmV0dXJuIGFsbCBieXRlcyBmcm9tIHRoZSBjdXJyZW50IGZpbGUgcG9zaXRpb24gdG8gdGhlIGVuZCBvZiB0aGUKKyAgICAgIG1hcHBpbmcuIFRoZSBmaWxlIHBvc2l0aW9uIGlzIHVwZGF0ZWQgdG8gcG9pbnQgYWZ0ZXIgdGhlIGJ5dGVzIHRoYXQgd2VyZQorICAgICAgcmV0dXJuZWQuCiAKKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAgICBBcmd1bWVudCBjYW4gYmUgb21pdHRlZCBvciAqTm9uZSouCiAKICAgIC4uIG1ldGhvZDo6IHJlYWRfYnl0ZSgpCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L21zdmNydC5yc3QgYi9Eb2MvbGlicmFyeS9tc3ZjcnQucnN0CmluZGV4IDg4OWEwYzUuLjlkMjM3MjAgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L21zdmNydC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvbXN2Y3J0LnJzdApAQCAtMjAsNiArMjAsMTEgQEAKIGZvciBpbnRlcm5hdGlvbmFsaXplZCBhcHBsaWNhdGlvbnMuIFRoZSB3aWRlIGNoYXIgQVBJIHNob3VsZCBiZSB1c2VkIHdoZXJlCiBldmVyIHBvc3NpYmxlCiAKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBPcGVyYXRpb25zIGluIHRoaXMgbW9kdWxlIG5vdyByYWlzZSA6ZXhjOmBPU0Vycm9yYCB3aGVyZSA6ZXhjOmBJT0Vycm9yYAorICAgd2FzIHJhaXNlZC4KKworCiAuLiBfbXN2Y3J0LWZpbGVzOgogCiBGaWxlIE9wZXJhdGlvbnMKQEAgLTI5LDcgKzM0LDcgQEAKIC4uIGZ1bmN0aW9uOjogbG9ja2luZyhmZCwgbW9kZSwgbmJ5dGVzKQogCiAgICBMb2NrIHBhcnQgb2YgYSBmaWxlIGJhc2VkIG9uIGZpbGUgZGVzY3JpcHRvciAqZmQqIGZyb20gdGhlIEMgcnVudGltZS4gIFJhaXNlcwotICAgOmV4YzpgSU9FcnJvcmAgb24gZmFpbHVyZS4gIFRoZSBsb2NrZWQgcmVnaW9uIG9mIHRoZSBmaWxlIGV4dGVuZHMgZnJvbSB0aGUKKyAgIDpleGM6YE9TRXJyb3JgIG9uIGZhaWx1cmUuICBUaGUgbG9ja2VkIHJlZ2lvbiBvZiB0aGUgZmlsZSBleHRlbmRzIGZyb20gdGhlCiAgICBjdXJyZW50IGZpbGUgcG9zaXRpb24gZm9yICpuYnl0ZXMqIGJ5dGVzLCBhbmQgbWF5IGNvbnRpbnVlIGJleW9uZCB0aGUgZW5kIG9mIHRoZQogICAgZmlsZS4gICptb2RlKiBtdXN0IGJlIG9uZSBvZiB0aGUgOmNvbnN0OmBMS19cKmAgY29uc3RhbnRzIGxpc3RlZCBiZWxvdy4gTXVsdGlwbGUKICAgIHJlZ2lvbnMgaW4gYSBmaWxlIG1heSBiZSBsb2NrZWQgYXQgdGhlIHNhbWUgdGltZSwgYnV0IG1heSBub3Qgb3ZlcmxhcC4gIEFkamFjZW50CkBAIC00MSwxMyArNDYsMTMgQEAKIAogICAgTG9ja3MgdGhlIHNwZWNpZmllZCBieXRlcy4gSWYgdGhlIGJ5dGVzIGNhbm5vdCBiZSBsb2NrZWQsIHRoZSBwcm9ncmFtCiAgICBpbW1lZGlhdGVseSB0cmllcyBhZ2FpbiBhZnRlciAxIHNlY29uZC4gIElmLCBhZnRlciAxMCBhdHRlbXB0cywgdGhlIGJ5dGVzIGNhbm5vdAotICAgYmUgbG9ja2VkLCA6ZXhjOmBJT0Vycm9yYCBpcyByYWlzZWQuCisgICBiZSBsb2NrZWQsIDpleGM6YE9TRXJyb3JgIGlzIHJhaXNlZC4KIAogCiAuLiBkYXRhOjogTEtfTkJMQ0sKICAgICAgICAgICBMS19OQlJMQ0sKIAotICAgTG9ja3MgdGhlIHNwZWNpZmllZCBieXRlcy4gSWYgdGhlIGJ5dGVzIGNhbm5vdCBiZSBsb2NrZWQsIDpleGM6YElPRXJyb3JgIGlzCisgICBMb2NrcyB0aGUgc3BlY2lmaWVkIGJ5dGVzLiBJZiB0aGUgYnl0ZXMgY2Fubm90IGJlIGxvY2tlZCwgOmV4YzpgT1NFcnJvcmAgaXMKICAgIHJhaXNlZC4KIAogCkBAIC03Myw3ICs3OCw3IEBACiAKIC4uIGZ1bmN0aW9uOjogZ2V0X29zZmhhbmRsZShmZCkKIAotICAgUmV0dXJuIHRoZSBmaWxlIGhhbmRsZSBmb3IgdGhlIGZpbGUgZGVzY3JpcHRvciAqZmQqLiAgUmFpc2VzIDpleGM6YElPRXJyb3JgIGlmCisgICBSZXR1cm4gdGhlIGZpbGUgaGFuZGxlIGZvciB0aGUgZmlsZSBkZXNjcmlwdG9yICpmZCouICBSYWlzZXMgOmV4YzpgT1NFcnJvcmAgaWYKICAgICpmZCogaXMgbm90IHJlY29nbml6ZWQuCiAKIApAQCAtMTQ0LDQgKzE0OSw0IEBACiAuLiBmdW5jdGlvbjo6IGhlYXBtaW4oKQogCiAgICBGb3JjZSB0aGUgOmM6ZnVuYzpgbWFsbG9jYCBoZWFwIHRvIGNsZWFuIGl0c2VsZiB1cCBhbmQgcmV0dXJuIHVudXNlZCBibG9ja3MgdG8KLSAgIHRoZSBvcGVyYXRpbmcgc3lzdGVtLiAgT24gZmFpbHVyZSwgdGhpcyByYWlzZXMgOmV4YzpgSU9FcnJvcmAuCisgICB0aGUgb3BlcmF0aW5nIHN5c3RlbS4gIE9uIGZhaWx1cmUsIHRoaXMgcmFpc2VzIDpleGM6YE9TRXJyb3JgLgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLnJzdCBiL0RvYy9saWJyYXJ5L211bHRpcHJvY2Vzc2luZy5yc3QKaW5kZXggZjUwM2Y0ZC4uZWRjMWJiOSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLnJzdAorKysgYi9Eb2MvbGlicmFyeS9tdWx0aXByb2Nlc3NpbmcucnN0CkBAIC0xMjEsOSArMTIxLDcgQEAKICAgICAgICAgICBwcmludChxLmdldCgpKSAgICAjIHByaW50cyAiWzQyLCBOb25lLCAnaGVsbG8nXSIKICAgICAgICAgICBwLmpvaW4oKQogCi0gICBRdWV1ZXMgYXJlIHRocmVhZCBhbmQgcHJvY2VzcyBzYWZlLCBidXQgbm90ZSB0aGF0IHRoZXkgbXVzdCBuZXZlcgotICAgYmUgaW5zdGFudGlhdGVkIGFzIGEgc2lkZSBlZmZlY3Qgb2YgaW1wb3J0aW5nIGEgbW9kdWxlOiB0aGlzIGNhbiBsZWFkCi0gICB0byBhIGRlYWRsb2NrISAgKHNlZSA6cmVmOmB0aHJlYWRlZC1pbXBvcnRzYCkKKyAgIFF1ZXVlcyBhcmUgdGhyZWFkIGFuZCBwcm9jZXNzIHNhZmUuCiAKICoqUGlwZXMqKgogCkBAIC0yMjksMTEgKzIyNywxMSBAQAogICAgaG9sZHMgUHl0aG9uIG9iamVjdHMgYW5kIGFsbG93cyBvdGhlciBwcm9jZXNzZXMgdG8gbWFuaXB1bGF0ZSB0aGVtIHVzaW5nCiAgICBwcm94aWVzLgogCi0gICBBIG1hbmFnZXIgcmV0dXJuZWQgYnkgOmZ1bmM6YE1hbmFnZXJgIHdpbGwgc3VwcG9ydCB0eXBlcyA6Y2xhc3M6YGxpc3RgLAotICAgOmNsYXNzOmBkaWN0YCwgOmNsYXNzOmBOYW1lc3BhY2VgLCA6Y2xhc3M6YExvY2tgLCA6Y2xhc3M6YFJMb2NrYCwKLSAgIDpjbGFzczpgU2VtYXBob3JlYCwgOmNsYXNzOmBCb3VuZGVkU2VtYXBob3JlYCwgOmNsYXNzOmBDb25kaXRpb25gLAotICAgOmNsYXNzOmBFdmVudGAsIDpjbGFzczpgUXVldWVgLCA6Y2xhc3M6YFZhbHVlYCBhbmQgOmNsYXNzOmBBcnJheWAuICBGb3IKLSAgIGV4YW1wbGUsIDo6CisgICBBIG1hbmFnZXIgcmV0dXJuZWQgYnkgOmZ1bmM6YE1hbmFnZXJgIHdpbGwgc3VwcG9ydCB0eXBlcworICAgOmNsYXNzOmBsaXN0YCwgOmNsYXNzOmBkaWN0YCwgOmNsYXNzOmBOYW1lc3BhY2VgLCA6Y2xhc3M6YExvY2tgLAorICAgOmNsYXNzOmBSTG9ja2AsIDpjbGFzczpgU2VtYXBob3JlYCwgOmNsYXNzOmBCb3VuZGVkU2VtYXBob3JlYCwKKyAgIDpjbGFzczpgQ29uZGl0aW9uYCwgOmNsYXNzOmBFdmVudGAsIDpjbGFzczpgQmFycmllcmAsCisgICA6Y2xhc3M6YFF1ZXVlYCwgOmNsYXNzOmBWYWx1ZWAgYW5kIDpjbGFzczpgQXJyYXlgLiAgRm9yIGV4YW1wbGUsIDo6CiAKICAgICAgIGZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBQcm9jZXNzLCBNYW5hZ2VyCiAKQEAgLTI0NCwxNyArMjQyLDE2IEBACiAgICAgICAgICAgbC5yZXZlcnNlKCkKIAogICAgICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICAgICAgICBtYW5hZ2VyID0gTWFuYWdlcigpCisgICAgICAgICAgd2l0aCBNYW5hZ2VyKCkgYXMgbWFuYWdlcjoKKyAgICAgICAgICAgICAgZCA9IG1hbmFnZXIuZGljdCgpCisgICAgICAgICAgICAgIGwgPSBtYW5hZ2VyLmxpc3QocmFuZ2UoMTApKQogCi0gICAgICAgICAgZCA9IG1hbmFnZXIuZGljdCgpCi0gICAgICAgICAgbCA9IG1hbmFnZXIubGlzdChyYW5nZSgxMCkpCisgICAgICAgICAgICAgIHAgPSBQcm9jZXNzKHRhcmdldD1mLCBhcmdzPShkLCBsKSkKKyAgICAgICAgICAgICAgcC5zdGFydCgpCisgICAgICAgICAgICAgIHAuam9pbigpCiAKLSAgICAgICAgICBwID0gUHJvY2Vzcyh0YXJnZXQ9ZiwgYXJncz0oZCwgbCkpCi0gICAgICAgICAgcC5zdGFydCgpCi0gICAgICAgICAgcC5qb2luKCkKLQotICAgICAgICAgIHByaW50KGQpCi0gICAgICAgICAgcHJpbnQobCkKKyAgICAgICAgICAgICAgcHJpbnQoZCkKKyAgICAgICAgICAgICAgcHJpbnQobCkKIAogICAgd2lsbCBwcmludCA6OgogCkBAIC0yODIsMTAgKzI3OSwxMCBAQAogICAgICAgIHJldHVybiB4KngKIAogICAgaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICAgICBwb29sID0gUG9vbChwcm9jZXNzZXM9NCkgICAgICAgICAgICAgICAjIHN0YXJ0IDQgd29ya2VyIHByb2Nlc3NlcwotICAgICAgIHJlc3VsdCA9IHBvb2wuYXBwbHlfYXN5bmMoZiwgWzEwXSkgICAgICMgZXZhbHVhdGUgImYoMTApIiBhc3luY2hyb25vdXNseQotICAgICAgIHByaW50KHJlc3VsdC5nZXQodGltZW91dD0xKSkgICAgICAgICAgICMgcHJpbnRzICIxMDAiIHVubGVzcyB5b3VyIGNvbXB1dGVyIGlzICp2ZXJ5KiBzbG93Ci0gICAgICAgcHJpbnQocG9vbC5tYXAoZiwgcmFuZ2UoMTApKSkgICAgICAgICAgIyBwcmludHMgIlswLCAxLCA0LC4uLiwgODFdIgorICAgICAgIHdpdGggUG9vbChwcm9jZXNzZXM9NCkgYXMgcG9vbCAgICAgICAgICMgc3RhcnQgNCB3b3JrZXIgcHJvY2Vzc2VzCisgICAgICAgICAgIHJlc3VsdCA9IHBvb2wuYXBwbHlfYXN5bmMoZiwgWzEwXSkgIyBldmFsdWF0ZSAiZigxMCkiIGFzeW5jaHJvbm91c2x5CisgICAgICAgICAgIHByaW50KHJlc3VsdC5nZXQodGltZW91dD0xKSkgICAgICAgIyBwcmludHMgIjEwMCIgdW5sZXNzIHlvdXIgY29tcHV0ZXIgaXMgKnZlcnkqIHNsb3cKKyAgICAgICAgICAgcHJpbnQocG9vbC5tYXAoZiwgcmFuZ2UoMTApKSkgICAgICAjIHByaW50cyAiWzAsIDEsIDQsLi4uLCA4MV0iCiAKIAogUmVmZXJlbmNlCkBAIC0yOTgsNyArMjk1LDcgQEAKIDpjbGFzczpgUHJvY2Vzc2AgYW5kIGV4Y2VwdGlvbnMKIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KIAotLi4gY2xhc3M6OiBQcm9jZXNzKFtncm91cFssIHRhcmdldFssIG5hbWVbLCBhcmdzWywga3dhcmdzXV1dXV0pCisuLiBjbGFzczo6IFByb2Nlc3MoW2dyb3VwWywgdGFyZ2V0WywgbmFtZVssIGFyZ3NbLCBrd2FyZ3NdXV1dXSwgKiwgZGFlbW9uPU5vbmUpCiAKICAgIFByb2Nlc3Mgb2JqZWN0cyByZXByZXNlbnQgYWN0aXZpdHkgdGhhdCBpcyBydW4gaW4gYSBzZXBhcmF0ZSBwcm9jZXNzLiBUaGUKICAgIDpjbGFzczpgUHJvY2Vzc2AgY2xhc3MgaGFzIGVxdWl2YWxlbnRzIG9mIGFsbCB0aGUgbWV0aG9kcyBvZgpAQCAtMzEzLDEzICszMTAsMTkgQEAKICAgIDpzdWI6YDFgLE5cIDpzdWI6YDJgLC4uLixOXCA6c3ViOmBrYCBpcyBhIHNlcXVlbmNlIG9mIGludGVnZXJzIHdob3NlIGxlbmd0aAogICAgaXMgZGV0ZXJtaW5lZCBieSB0aGUgKmdlbmVyYXRpb24qIG9mIHRoZSBwcm9jZXNzLiAgKmFyZ3MqIGlzIHRoZSBhcmd1bWVudAogICAgdHVwbGUgZm9yIHRoZSB0YXJnZXQgaW52b2NhdGlvbi4gICprd2FyZ3MqIGlzIGEgZGljdGlvbmFyeSBvZiBrZXl3b3JkCi0gICBhcmd1bWVudHMgZm9yIHRoZSB0YXJnZXQgaW52b2NhdGlvbi4gIEJ5IGRlZmF1bHQsIG5vIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvCi0gICAqdGFyZ2V0Ki4KKyAgIGFyZ3VtZW50cyBmb3IgdGhlIHRhcmdldCBpbnZvY2F0aW9uLiAgSWYgcHJvdmlkZWQsIHRoZSBrZXl3b3JkLW9ubHkgKmRhZW1vbiogYXJndW1lbnQKKyAgIHNldHMgdGhlIHByb2Nlc3MgOmF0dHI6YGRhZW1vbmAgZmxhZyB0byBgYFRydWVgYCBvciBgYEZhbHNlYGAuICBJZiBgYE5vbmVgYAorICAgKHRoZSBkZWZhdWx0KSwgdGhpcyBmbGFnIHdpbGwgYmUgaW5oZXJpdGVkIGZyb20gdGhlIGNyZWF0aW5nIHByb2Nlc3MuCisKKyAgIEJ5IGRlZmF1bHQsIG5vIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvICp0YXJnZXQqLgogCiAgICBJZiBhIHN1YmNsYXNzIG92ZXJyaWRlcyB0aGUgY29uc3RydWN0b3IsIGl0IG11c3QgbWFrZSBzdXJlIGl0IGludm9rZXMgdGhlCiAgICBiYXNlIGNsYXNzIGNvbnN0cnVjdG9yICg6bWV0aDpgUHJvY2Vzcy5fX2luaXRfX2ApIGJlZm9yZSBkb2luZyBhbnl0aGluZyBlbHNlCiAgICB0byB0aGUgcHJvY2Vzcy4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEFkZGVkIHRoZSAqZGFlbW9uKiBhcmd1bWVudC4KKwogICAgLi4gbWV0aG9kOjogcnVuKCkKIAogICAgICAgTWV0aG9kIHJlcHJlc2VudGluZyB0aGUgcHJvY2VzcydzIGFjdGl2aXR5LgpAQCAtMzM4LDEwICszNDEsOSBAQAogCiAgICAuLiBtZXRob2Q6OiBqb2luKFt0aW1lb3V0XSkKIAotICAgICAgQmxvY2sgdGhlIGNhbGxpbmcgdGhyZWFkIHVudGlsIHRoZSBwcm9jZXNzIHdob3NlIDptZXRoOmBqb2luYCBtZXRob2QgaXMKLSAgICAgIGNhbGxlZCB0ZXJtaW5hdGVzIG9yIHVudGlsIHRoZSBvcHRpb25hbCB0aW1lb3V0IG9jY3Vycy4KLQotICAgICAgSWYgKnRpbWVvdXQqIGlzIGBgTm9uZWBgIHRoZW4gdGhlcmUgaXMgbm8gdGltZW91dC4KKyAgICAgIElmIHRoZSBvcHRpb25hbCBhcmd1bWVudCAqdGltZW91dCogaXMgYGBOb25lYGAgKHRoZSBkZWZhdWx0KSwgdGhlIG1ldGhvZAorICAgICAgYmxvY2tzIHVudGlsIHRoZSBwcm9jZXNzIHdob3NlIDptZXRoOmBqb2luYCBtZXRob2QgaXMgY2FsbGVkIHRlcm1pbmF0ZXMuCisgICAgICBJZiAqdGltZW91dCogaXMgYSBwb3NpdGl2ZSBudW1iZXIsIGl0IGJsb2NrcyBhdCBtb3N0ICp0aW1lb3V0KiBzZWNvbmRzLgogCiAgICAgICBBIHByb2Nlc3MgY2FuIGJlIGpvaW5lZCBtYW55IHRpbWVzLgogCkBAIC00MDYsNiArNDA4LDIxIEBACiAKICAgICAgIFNlZSA6cmVmOmBtdWx0aXByb2Nlc3NpbmctYXV0aC1rZXlzYC4KIAorICAgLi4gYXR0cmlidXRlOjogc2VudGluZWwKKworICAgICAgQSBudW1lcmljIGhhbmRsZSBvZiBhIHN5c3RlbSBvYmplY3Qgd2hpY2ggd2lsbCBiZWNvbWUgInJlYWR5IiB3aGVuCisgICAgICB0aGUgcHJvY2VzcyBlbmRzLgorCisgICAgICBZb3UgY2FuIHVzZSB0aGlzIHZhbHVlIGlmIHlvdSB3YW50IHRvIHdhaXQgb24gc2V2ZXJhbCBldmVudHMgYXQKKyAgICAgIG9uY2UgdXNpbmcgOmZ1bmM6YG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uLndhaXRgLiAgT3RoZXJ3aXNlCisgICAgICBjYWxsaW5nIDptZXRoOmBqb2luKClgIGlzIHNpbXBsZXIuCisKKyAgICAgIE9uIFdpbmRvd3MsIHRoaXMgaXMgYW4gT1MgaGFuZGxlIHVzYWJsZSB3aXRoIHRoZSBgYFdhaXRGb3JTaW5nbGVPYmplY3RgYAorICAgICAgYW5kIGBgV2FpdEZvck11bHRpcGxlT2JqZWN0c2BgIGZhbWlseSBvZiBBUEkgY2FsbHMuICBPbiBVbml4LCB0aGlzIGlzCisgICAgICBhIGZpbGUgZGVzY3JpcHRvciB1c2FibGUgd2l0aCBwcmltaXRpdmVzIGZyb20gdGhlIDptb2Q6YHNlbGVjdGAgbW9kdWxlLgorCisgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogICAgLi4gbWV0aG9kOjogdGVybWluYXRlKCkKIAogICAgICAgVGVybWluYXRlIHRoZSBwcm9jZXNzLiAgT24gVW5peCB0aGlzIGlzIGRvbmUgdXNpbmcgdGhlIGBgU0lHVEVSTWBgIHNpZ25hbDsKQEAgLTQ2NSw3ICs0ODIsNyBAQAogRm9yIHBhc3NpbmcgbWVzc2FnZXMgb25lIGNhbiB1c2UgOmZ1bmM6YFBpcGVgIChmb3IgYSBjb25uZWN0aW9uIGJldHdlZW4gdHdvCiBwcm9jZXNzZXMpIG9yIGEgcXVldWUgKHdoaWNoIGFsbG93cyBtdWx0aXBsZSBwcm9kdWNlcnMgYW5kIGNvbnN1bWVycykuCiAKLVRoZSA6Y2xhc3M6YFF1ZXVlYCwgOmNsYXNzOmBtdWx0aXByb2Nlc3NpbmcucXVldWVzLlNpbXBsZVF1ZXVlYCBhbmQgOmNsYXNzOmBKb2luYWJsZVF1ZXVlYCB0eXBlcyBhcmUgbXVsdGktcHJvZHVjZXIsCitUaGUgOmNsYXNzOmBRdWV1ZWAsIDpjbGFzczpgU2ltcGxlUXVldWVgIGFuZCA6Y2xhc3M6YEpvaW5hYmxlUXVldWVgIHR5cGVzIGFyZSBtdWx0aS1wcm9kdWNlciwKIG11bHRpLWNvbnN1bWVyIEZJRk8gcXVldWVzIG1vZGVsbGVkIG9uIHRoZSA6Y2xhc3M6YHF1ZXVlLlF1ZXVlYCBjbGFzcyBpbiB0aGUKIHN0YW5kYXJkIGxpYnJhcnkuICBUaGV5IGRpZmZlciBpbiB0aGF0IDpjbGFzczpgUXVldWVgIGxhY2tzIHRoZQogOm1ldGg6YH5xdWV1ZS5RdWV1ZS50YXNrX2RvbmVgIGFuZCA6bWV0aDpgfnF1ZXVlLlF1ZXVlLmpvaW5gIG1ldGhvZHMgaW50cm9kdWNlZApAQCAtNjExLDcgKzYyOCw3IEBACiAgICAgICBleGl0cyAtLSBzZWUgOm1ldGg6YGpvaW5fdGhyZWFkYC4KIAogCi0uLiBjbGFzczo6IG11bHRpcHJvY2Vzc2luZy5xdWV1ZXMuU2ltcGxlUXVldWUoKQorLi4gY2xhc3M6OiBTaW1wbGVRdWV1ZSgpCiAKICAgIEl0IGlzIGEgc2ltcGxpZmllZCA6Y2xhc3M6YFF1ZXVlYCB0eXBlLCB2ZXJ5IGNsb3NlIHRvIGEgbG9ja2VkIDpjbGFzczpgUGlwZWAuCiAKQEAgLTc2Nyw2ICs3ODQsOSBAQAogICAgICAgKnRpbWVvdXQqIGlzIGEgbnVtYmVyIHRoZW4gdGhpcyBzcGVjaWZpZXMgdGhlIG1heGltdW0gdGltZSBpbiBzZWNvbmRzIHRvCiAgICAgICBibG9jay4gIElmICp0aW1lb3V0KiBpcyBgYE5vbmVgYCB0aGVuIGFuIGluZmluaXRlIHRpbWVvdXQgaXMgdXNlZC4KIAorICAgICAgTm90ZSB0aGF0IG11bHRpcGxlIGNvbm5lY3Rpb24gb2JqZWN0cyBtYXkgYmUgcG9sbGVkIGF0IG9uY2UgYnkKKyAgICAgIHVzaW5nIDpmdW5jOmBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbi53YWl0YC4KKwogICAgLi4gbWV0aG9kOjogc2VuZF9ieXRlcyhidWZmZXJbLCBvZmZzZXRbLCBzaXplXV0pCiAKICAgICAgIFNlbmQgYnl0ZSBkYXRhIGZyb20gYW4gb2JqZWN0IHN1cHBvcnRpbmcgdGhlIGJ1ZmZlciBpbnRlcmZhY2UgYXMgYQpAQCAtNzg1LDkgKzgwNSwxNCBAQAogICAgICAgdG8gcmVjZWl2ZSBhbmQgdGhlIG90aGVyIGVuZCBoYXMgY2xvc2VkLgogCiAgICAgICBJZiAqbWF4bGVuZ3RoKiBpcyBzcGVjaWZpZWQgYW5kIHRoZSBtZXNzYWdlIGlzIGxvbmdlciB0aGFuICptYXhsZW5ndGgqCi0gICAgICB0aGVuIDpleGM6YElPRXJyb3JgIGlzIHJhaXNlZCBhbmQgdGhlIGNvbm5lY3Rpb24gd2lsbCBubyBsb25nZXIgYmUKKyAgICAgIHRoZW4gOmV4YzpgT1NFcnJvcmAgaXMgcmFpc2VkIGFuZCB0aGUgY29ubmVjdGlvbiB3aWxsIG5vIGxvbmdlciBiZQogICAgICAgcmVhZGFibGUuCiAKKyAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gcmFpc2UgYSA6ZXhjOmBJT0Vycm9yYCwgd2hpY2ggaXMgbm93IGFuCisgICAgICAgICBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KKworCiAgICAuLiBtZXRob2Q6OiByZWN2X2J5dGVzX2ludG8oYnVmZmVyWywgb2Zmc2V0XSkKIAogICAgICAgUmVhZCBpbnRvICpidWZmZXIqIGEgY29tcGxldGUgbWVzc2FnZSBvZiBieXRlIGRhdGEgc2VudCBmcm9tIHRoZSBvdGhlciBlbmQKQEAgLTgwNSw2ICs4MzAsMTQgQEAKICAgICAgIHJhaXNlZCBhbmQgdGhlIGNvbXBsZXRlIG1lc3NhZ2UgaXMgYXZhaWxhYmxlIGFzIGBgZS5hcmdzWzBdYGAgd2hlcmUgYGBlYGAKICAgICAgIGlzIHRoZSBleGNlcHRpb24gaW5zdGFuY2UuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBDb25uZWN0aW9uIG9iamVjdHMgdGhlbXNlbHZlcyBjYW4gbm93IGJlIHRyYW5zZmVycmVkIGJldHdlZW4gcHJvY2Vzc2VzCisgICAgICB1c2luZyA6bWV0aDpgQ29ubmVjdGlvbi5zZW5kYCBhbmQgOm1ldGg6YENvbm5lY3Rpb24ucmVjdmAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgQ29ubmVjdGlvbiBvYmplY3RzIG5vdyBzdXBwb3J0IHRoZSBjb250ZXh0IG1hbmFnZXIgcHJvdG9jb2wgLS0gc2VlCisgICAgICA6cmVmOmB0eXBlY29udGV4dG1hbmFnZXJgLiAgOm1ldGg6YF9fZW50ZXJfX2AgcmV0dXJucyB0aGUKKyAgICAgIGNvbm5lY3Rpb24gb2JqZWN0LCBhbmQgOm1ldGg6YF9fZXhpdF9fYCBjYWxscyA6bWV0aDpgY2xvc2VgLgogCiBGb3IgZXhhbXBsZToKIApAQCAtODU2LDYgKzg4OSwxMiBAQAogTm90ZSB0aGF0IG9uZSBjYW4gYWxzbyBjcmVhdGUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXMgYnkgdXNpbmcgYSBtYW5hZ2VyCiBvYmplY3QgLS0gc2VlIDpyZWY6YG11bHRpcHJvY2Vzc2luZy1tYW5hZ2Vyc2AuCiAKKy4uIGNsYXNzOjogQmFycmllcihwYXJ0aWVzWywgYWN0aW9uWywgdGltZW91dF1dKQorCisgICBBIGJhcnJpZXIgb2JqZWN0OiBhIGNsb25lIG9mIDpjbGFzczpgdGhyZWFkaW5nLkJhcnJpZXJgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogLi4gY2xhc3M6OiBCb3VuZGVkU2VtYXBob3JlKFt2YWx1ZV0pCiAKICAgIEEgYm91bmRlZCBzZW1hcGhvcmUgb2JqZWN0OiBhIGNsb25lIG9mIDpjbGFzczpgdGhyZWFkaW5nLkJvdW5kZWRTZW1hcGhvcmVgLgpAQCAtODcwLDYgKzkwOSw5IEBACiAgICBJZiAqbG9jayogaXMgc3BlY2lmaWVkIHRoZW4gaXQgc2hvdWxkIGJlIGEgOmNsYXNzOmBMb2NrYCBvciA6Y2xhc3M6YFJMb2NrYAogICAgb2JqZWN0IGZyb20gOm1vZDpgbXVsdGlwcm9jZXNzaW5nYC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFRoZSA6bWV0aDpgd2FpdF9mb3JgIG1ldGhvZCB3YXMgYWRkZWQuCisKIC4uIGNsYXNzOjogRXZlbnQoKQogCiAgICBBIGNsb25lIG9mIDpjbGFzczpgdGhyZWFkaW5nLkV2ZW50YC4KQEAgLTg5NCw2ICs5MzYsMTIgQEAKIAogLi4gbm90ZTo6CiAKKyAgIFRoZSA6bWV0aDpgYWNxdWlyZWAgYW5kIDptZXRoOmB3YWl0YCBtZXRob2RzIG9mIGVhY2ggb2YgdGhlc2UgdHlwZXMKKyAgIHRyZWF0IG5lZ2F0aXZlIHRpbWVvdXRzIGFzIHplcm8gdGltZW91dHMuICBUaGlzIGRpZmZlcnMgZnJvbQorICAgOm1vZDpgdGhyZWFkaW5nYCB3aGVyZSwgc2luY2UgdmVyc2lvbiAzLjIsIHRoZSBlcXVpdmFsZW50CisgICA6bWV0aDpgYWNxdWlyZWAgbWV0aG9kcyB0cmVhdCBuZWdhdGl2ZSB0aW1lb3V0cyBhcyBpbmZpbml0ZQorICAgdGltZW91dHMuCisKICAgIE9uIE1hYyBPUyBYLCBgYHNlbV90aW1lZHdhaXRgYCBpcyB1bnN1cHBvcnRlZCwgc28gY2FsbGluZyBgYGFjcXVpcmUoKWBgIHdpdGgKICAgIGEgdGltZW91dCB3aWxsIGVtdWxhdGUgdGhhdCBmdW5jdGlvbidzIGJlaGF2aW9yIHVzaW5nIGEgc2xlZXBpbmcgbG9vcC4KIApAQCAtOTE1LDcgKzk2Myw3IEBACiBJdCBpcyBwb3NzaWJsZSB0byBjcmVhdGUgc2hhcmVkIG9iamVjdHMgdXNpbmcgc2hhcmVkIG1lbW9yeSB3aGljaCBjYW4gYmUKIGluaGVyaXRlZCBieSBjaGlsZCBwcm9jZXNzZXMuCiAKLS4uIGZ1bmN0aW9uOjogVmFsdWUodHlwZWNvZGVfb3JfdHlwZSwgKmFyZ3NbLCBsb2NrXSkKKy4uIGZ1bmN0aW9uOjogVmFsdWUodHlwZWNvZGVfb3JfdHlwZSwgKmFyZ3MsIGxvY2s9VHJ1ZSkKIAogICAgUmV0dXJuIGEgOm1vZDpgY3R5cGVzYCBvYmplY3QgYWxsb2NhdGVkIGZyb20gc2hhcmVkIG1lbW9yeS4gIEJ5IGRlZmF1bHQgdGhlCiAgICByZXR1cm4gdmFsdWUgaXMgYWN0dWFsbHkgYSBzeW5jaHJvbml6ZWQgd3JhcHBlciBmb3IgdGhlIG9iamVjdC4KQEAgLTEwMDcsNyArMTA1NSw3IEBACiAgICBhdHRyaWJ1dGVzIHdoaWNoIGFsbG93IG9uZSB0byB1c2UgaXQgdG8gc3RvcmUgYW5kIHJldHJpZXZlIHN0cmluZ3MgLS0gc2VlCiAgICBkb2N1bWVudGF0aW9uIGZvciA6bW9kOmBjdHlwZXNgLgogCi0uLiBmdW5jdGlvbjo6IEFycmF5KHR5cGVjb2RlX29yX3R5cGUsIHNpemVfb3JfaW5pdGlhbGl6ZXIsICphcmdzWywgbG9ja10pCisuLiBmdW5jdGlvbjo6IEFycmF5KHR5cGVjb2RlX29yX3R5cGUsIHNpemVfb3JfaW5pdGlhbGl6ZXIsICosIGxvY2s9VHJ1ZSkKIAogICAgVGhlIHNhbWUgYXMgOmZ1bmM6YFJhd0FycmF5YCBleGNlcHQgdGhhdCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mICpsb2NrKiBhCiAgICBwcm9jZXNzLXNhZmUgc3luY2hyb25pemF0aW9uIHdyYXBwZXIgbWF5IGJlIHJldHVybmVkIGluc3RlYWQgb2YgYSByYXcgY3R5cGVzCkBAIC0xMDIyLDcgKzEwNzAsNyBAQAogCiAgICBOb3RlIHRoYXQgKmxvY2sqIGlzIGEga2V5d29yZC1vbmx5IGFyZ3VtZW50LgogCi0uLiBmdW5jdGlvbjo6IFZhbHVlKHR5cGVjb2RlX29yX3R5cGUsICphcmdzWywgbG9ja10pCisuLiBmdW5jdGlvbjo6IFZhbHVlKHR5cGVjb2RlX29yX3R5cGUsICphcmdzLCBsb2NrPVRydWUpCiAKICAgIFRoZSBzYW1lIGFzIDpmdW5jOmBSYXdWYWx1ZWAgZXhjZXB0IHRoYXQgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiAqbG9jayogYQogICAgcHJvY2Vzcy1zYWZlIHN5bmNocm9uaXphdGlvbiB3cmFwcGVyIG1heSBiZSByZXR1cm5lZCBpbnN0ZWFkIG9mIGEgcmF3IGN0eXBlcwpAQCAtMTE5OCw5ICsxMjQ2LDEwIEBACiAgICAgICB0eXBlIG9mIHNoYXJlZCBvYmplY3QuICBUaGlzIG11c3QgYmUgYSBzdHJpbmcuCiAKICAgICAgICpjYWxsYWJsZSogaXMgYSBjYWxsYWJsZSB1c2VkIGZvciBjcmVhdGluZyBvYmplY3RzIGZvciB0aGlzIHR5cGUKLSAgICAgIGlkZW50aWZpZXIuICBJZiBhIG1hbmFnZXIgaW5zdGFuY2Ugd2lsbCBiZSBjcmVhdGVkIHVzaW5nIHRoZQotICAgICAgOm1ldGg6YGZyb21fYWRkcmVzc2AgY2xhc3NtZXRob2Qgb3IgaWYgdGhlICpjcmVhdGVfbWV0aG9kKiBhcmd1bWVudCBpcwotICAgICAgYGBGYWxzZWBgIHRoZW4gdGhpcyBjYW4gYmUgbGVmdCBhcyBgYE5vbmVgYC4KKyAgICAgIGlkZW50aWZpZXIuICBJZiBhIG1hbmFnZXIgaW5zdGFuY2Ugd2lsbCBiZSBjb25uZWN0ZWQgdG8gdGhlCisgICAgICBzZXJ2ZXIgdXNpbmcgdGhlIDptZXRoOmBjb25uZWN0YCBtZXRob2QsIG9yIGlmIHRoZQorICAgICAgKmNyZWF0ZV9tZXRob2QqIGFyZ3VtZW50IGlzIGBgRmFsc2VgYCB0aGVuIHRoaXMgY2FuIGJlIGxlZnQgYXMKKyAgICAgIGBgTm9uZWBgLgogCiAgICAgICAqcHJveHl0eXBlKiBpcyBhIHN1YmNsYXNzIG9mIDpjbGFzczpgQmFzZVByb3h5YCB3aGljaCBpcyB1c2VkIHRvIGNyZWF0ZQogICAgICAgcHJveGllcyBmb3Igc2hhcmVkIG9iamVjdHMgd2l0aCB0aGlzICp0eXBlaWQqLiAgSWYgYGBOb25lYGAgdGhlbiBhIHByb3h5CkBAIC0xMjMyLDYgKzEyODEsMTQgQEAKIAogICAgICAgVGhlIGFkZHJlc3MgdXNlZCBieSB0aGUgbWFuYWdlci4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIE1hbmFnZXIgb2JqZWN0cyBzdXBwb3J0IHRoZSBjb250ZXh0IG1hbmFnZXIgcHJvdG9jb2wgLS0gc2VlCisgICAgICA6cmVmOmB0eXBlY29udGV4dG1hbmFnZXJgLiAgOm1ldGg6YF9fZW50ZXJfX2Agc3RhcnRzIHRoZSBzZXJ2ZXIKKyAgICAgIHByb2Nlc3MgKGlmIGl0IGhhcyBub3QgYWxyZWFkeSBzdGFydGVkKSBhbmQgdGhlbiByZXR1cm5zIHRoZQorICAgICAgbWFuYWdlciBvYmplY3QuICA6bWV0aDpgX19leGl0X19gIGNhbGxzIDptZXRoOmBzaHV0ZG93bmAuCisKKyAgICAgIEluIHByZXZpb3VzIHZlcnNpb25zIDptZXRoOmBfX2VudGVyX19gIGRpZCBub3Qgc3RhcnQgdGhlCisgICAgICBtYW5hZ2VyJ3Mgc2VydmVyIHByb2Nlc3MgaWYgaXQgd2FzIG5vdCBhbHJlYWR5IHN0YXJ0ZWQuCiAKIC4uIGNsYXNzOjogU3luY01hbmFnZXIKIApAQCAtMTI0MSw2ICsxMjk4LDEzIEBACiAKICAgIEl0IGFsc28gc3VwcG9ydHMgY3JlYXRpb24gb2Ygc2hhcmVkIGxpc3RzIGFuZCBkaWN0aW9uYXJpZXMuCiAKKyAgIC4uIG1ldGhvZDo6IEJhcnJpZXIocGFydGllc1ssIGFjdGlvblssIHRpbWVvdXRdXSkKKworICAgICAgQ3JlYXRlIGEgc2hhcmVkIDpjbGFzczpgdGhyZWFkaW5nLkJhcnJpZXJgIG9iamVjdCBhbmQgcmV0dXJuIGEKKyAgICAgIHByb3h5IGZvciBpdC4KKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKICAgIC4uIG1ldGhvZDo6IEJvdW5kZWRTZW1hcGhvcmUoW3ZhbHVlXSkKIAogICAgICAgQ3JlYXRlIGEgc2hhcmVkIDpjbGFzczpgdGhyZWFkaW5nLkJvdW5kZWRTZW1hcGhvcmVgIG9iamVjdCBhbmQgcmV0dXJuIGEKQEAgLTEyNTQsNiArMTMxOCw5IEBACiAgICAgICBJZiAqbG9jayogaXMgc3VwcGxpZWQgdGhlbiBpdCBzaG91bGQgYmUgYSBwcm94eSBmb3IgYQogICAgICAgOmNsYXNzOmB0aHJlYWRpbmcuTG9ja2Agb3IgOmNsYXNzOmB0aHJlYWRpbmcuUkxvY2tgIG9iamVjdC4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICAgIFRoZSA6bWV0aDpgd2FpdF9mb3JgIG1ldGhvZCB3YXMgYWRkZWQuCisKICAgIC4uIG1ldGhvZDo6IEV2ZW50KCkKIAogICAgICAgQ3JlYXRlIGEgc2hhcmVkIDpjbGFzczpgdGhyZWFkaW5nLkV2ZW50YCBvYmplY3QgYW5kIHJldHVybiBhIHByb3h5IGZvciBpdC4KQEAgLTEzNTksMTEgKzE0MjYsMTAgQEAKICAgIE15TWFuYWdlci5yZWdpc3RlcignTWF0aHMnLCBNYXRoc0NsYXNzKQogCiAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICAgIG1hbmFnZXIgPSBNeU1hbmFnZXIoKQotICAgICAgIG1hbmFnZXIuc3RhcnQoKQotICAgICAgIG1hdGhzID0gbWFuYWdlci5NYXRocygpCi0gICAgICAgcHJpbnQobWF0aHMuYWRkKDQsIDMpKSAgICAgICAgICMgcHJpbnRzIDcKLSAgICAgICBwcmludChtYXRocy5tdWwoNywgOCkpICAgICAgICAgIyBwcmludHMgNTYKKyAgICAgICB3aXRoIE15TWFuYWdlcigpIGFzIG1hbmFnZXI6CisgICAgICAgICAgIG1hdGhzID0gbWFuYWdlci5NYXRocygpCisgICAgICAgICAgIHByaW50KG1hdGhzLmFkZCg0LCAzKSkgICAgICAgICAjIHByaW50cyA3CisgICAgICAgICAgIHByaW50KG1hdGhzLm11bCg3LCA4KSkgICAgICAgICAjIHByaW50cyA1NgogCiAKIFVzaW5nIGEgcmVtb3RlIG1hbmFnZXIKQEAgLTE2NTgsNiArMTcyNCwyNCBAQAogICAgICAgcmV0dXJuZWQgaXRlcmF0b3Igc2hvdWxkIGJlIGNvbnNpZGVyZWQgYXJiaXRyYXJ5LiAgKE9ubHkgd2hlbiB0aGVyZSBpcwogICAgICAgb25seSBvbmUgd29ya2VyIHByb2Nlc3MgaXMgdGhlIG9yZGVyIGd1YXJhbnRlZWQgdG8gYmUgImNvcnJlY3QiLikKIAorICAgLi4gbWV0aG9kOjogc3Rhcm1hcChmdW5jLCBpdGVyYWJsZVssIGNodW5rc2l6ZV0pCisKKyAgICAgIExpa2UgOm1ldGg6YG1hcGAgZXhjZXB0IHRoYXQgdGhlIGVsZW1lbnRzIG9mIHRoZSBgaXRlcmFibGVgIGFyZSBleHBlY3RlZAorICAgICAgdG8gYmUgaXRlcmFibGVzIHRoYXQgYXJlIHVucGFja2VkIGFzIGFyZ3VtZW50cy4KKworICAgICAgSGVuY2UgYW4gYGl0ZXJhYmxlYCBvZiBgWygxLDIpLCAoMywgNCldYCByZXN1bHRzIGluIGBbZnVuYygxLDIpLAorICAgICAgZnVuYygzLDQpXWAuCisKKyAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisgICAuLiBtZXRob2Q6OiBzdGFybWFwX2FzeW5jKGZ1bmMsIGl0ZXJhYmxlWywgY2h1bmtzaXplWywgY2FsbGJhY2tbLCBlcnJvcl9iYWNrXV1dKQorCisgICAgICBBIGNvbWJpbmF0aW9uIG9mIDptZXRoOmBzdGFybWFwYCBhbmQgOm1ldGg6YG1hcF9hc3luY2AgdGhhdCBpdGVyYXRlcyBvdmVyCisgICAgICBgaXRlcmFibGVgIG9mIGl0ZXJhYmxlcyBhbmQgY2FsbHMgYGZ1bmNgIHdpdGggdGhlIGl0ZXJhYmxlcyB1bnBhY2tlZC4KKyAgICAgIFJldHVybnMgYSByZXN1bHQgb2JqZWN0LgorCisgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogICAgLi4gbWV0aG9kOjogY2xvc2UoKQogCiAgICAgICBQcmV2ZW50cyBhbnkgbW9yZSB0YXNrcyBmcm9tIGJlaW5nIHN1Ym1pdHRlZCB0byB0aGUgcG9vbC4gIE9uY2UgYWxsIHRoZQpAQCAtMTY3NCw2ICsxNzU4LDExIEBACiAgICAgICBXYWl0IGZvciB0aGUgd29ya2VyIHByb2Nlc3NlcyB0byBleGl0LiAgT25lIG11c3QgY2FsbCA6bWV0aDpgY2xvc2VgIG9yCiAgICAgICA6bWV0aDpgdGVybWluYXRlYCBiZWZvcmUgdXNpbmcgOm1ldGg6YGpvaW5gLgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgIFBvb2wgb2JqZWN0cyBub3cgc3VwcG9ydCB0aGUgY29udGV4dCBtYW5hZ2VyIHByb3RvY29sIC0tIHNlZQorICAgICAgOnJlZjpgdHlwZWNvbnRleHRtYW5hZ2VyYC4gIDptZXRoOmBfX2VudGVyX19gIHJldHVybnMgdGhlIHBvb2wKKyAgICAgIG9iamVjdCwgYW5kIDptZXRoOmBfX2V4aXRfX2AgY2FsbHMgOm1ldGg6YHRlcm1pbmF0ZWAuCisKIAogLi4gY2xhc3M6OiBBc3luY1Jlc3VsdAogCkBAIC0xNzA4LDIxICsxNzk3LDIwIEBACiAgICAgICAgcmV0dXJuIHgqeAogCiAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICAgIHBvb2wgPSBQb29sKHByb2Nlc3Nlcz00KSAgICAgICAgICAgICAgIyBzdGFydCA0IHdvcmtlciBwcm9jZXNzZXMKKyAgICAgICB3aXRoIFBvb2wocHJvY2Vzc2VzPTQpIGFzIHBvb2w6ICAgICAgICAgIyBzdGFydCA0IHdvcmtlciBwcm9jZXNzZXMKKyAgICAgICAgICAgcmVzdWx0ID0gcG9vbC5hcHBseV9hc3luYyhmLCAoMTAsKSkgIyBldmFsdWF0ZSAiZigxMCkiIGFzeW5jaHJvbm91c2x5CisgICAgICAgICAgIHByaW50KHJlc3VsdC5nZXQodGltZW91dD0xKSkgICAgICAgICMgcHJpbnRzICIxMDAiIHVubGVzcyB5b3VyIGNvbXB1dGVyIGlzICp2ZXJ5KiBzbG93CiAKLSAgICAgICByZXN1bHQgPSBwb29sLmFwcGx5X2FzeW5jKGYsICgxMCwpKSAgICMgZXZhbHVhdGUgImYoMTApIiBhc3luY2hyb25vdXNseQotICAgICAgIHByaW50KHJlc3VsdC5nZXQodGltZW91dD0xKSkgICAgICAgICAgIyBwcmludHMgIjEwMCIgdW5sZXNzIHlvdXIgY29tcHV0ZXIgaXMgKnZlcnkqIHNsb3cKKyAgICAgICAgICAgcHJpbnQocG9vbC5tYXAoZiwgcmFuZ2UoMTApKSkgICAgICAgIyBwcmludHMgIlswLCAxLCA0LC4uLiwgODFdIgogCi0gICAgICAgcHJpbnQocG9vbC5tYXAoZiwgcmFuZ2UoMTApKSkgICAgICAgICAjIHByaW50cyAiWzAsIDEsIDQsLi4uLCA4MV0iCisgICAgICAgICAgIGl0ID0gcG9vbC5pbWFwKGYsIHJhbmdlKDEwKSkKKyAgICAgICAgICAgcHJpbnQobmV4dChpdCkpICAgICAgICAgICAgICAgICAgICAgIyBwcmludHMgIjAiCisgICAgICAgICAgIHByaW50KG5leHQoaXQpKSAgICAgICAgICAgICAgICAgICAgICMgcHJpbnRzICIxIgorICAgICAgICAgICBwcmludChpdC5uZXh0KHRpbWVvdXQ9MSkpICAgICAgICAgICAjIHByaW50cyAiNCIgdW5sZXNzIHlvdXIgY29tcHV0ZXIgaXMgKnZlcnkqIHNsb3cKIAotICAgICAgIGl0ID0gcG9vbC5pbWFwKGYsIHJhbmdlKDEwKSkKLSAgICAgICBwcmludChuZXh0KGl0KSkgICAgICAgICAgICAgICAgICAgICAgICMgcHJpbnRzICIwIgotICAgICAgIHByaW50KG5leHQoaXQpKSAgICAgICAgICAgICAgICAgICAgICAgIyBwcmludHMgIjEiCi0gICAgICAgcHJpbnQoaXQubmV4dCh0aW1lb3V0PTEpKSAgICAgICAgICAgICAjIHByaW50cyAiNCIgdW5sZXNzIHlvdXIgY29tcHV0ZXIgaXMgKnZlcnkqIHNsb3cKLQotICAgICAgIGltcG9ydCB0aW1lCi0gICAgICAgcmVzdWx0ID0gcG9vbC5hcHBseV9hc3luYyh0aW1lLnNsZWVwLCAoMTAsKSkKLSAgICAgICBwcmludChyZXN1bHQuZ2V0KHRpbWVvdXQ9MSkpICAgICAgICAgICMgcmFpc2VzIFRpbWVvdXRFcnJvcgorICAgICAgICAgICBpbXBvcnQgdGltZQorICAgICAgICAgICByZXN1bHQgPSBwb29sLmFwcGx5X2FzeW5jKHRpbWUuc2xlZXAsICgxMCwpKQorICAgICAgICAgICBwcmludChyZXN1bHQuZ2V0KHRpbWVvdXQ9MSkpICAgICAgICAjIHJhaXNlcyBUaW1lb3V0RXJyb3IKIAogCiAuLiBfbXVsdGlwcm9jZXNzaW5nLWxpc3RlbmVycy1jbGllbnRzOgpAQCAtMTczOCw4ICsxODI2LDkgQEAKIAogSG93ZXZlciwgdGhlIDptb2Q6YG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uYCBtb2R1bGUgYWxsb3dzIHNvbWUgZXh0cmEKIGZsZXhpYmlsaXR5LiAgSXQgYmFzaWNhbGx5IGdpdmVzIGEgaGlnaCBsZXZlbCBtZXNzYWdlIG9yaWVudGVkIEFQSSBmb3IgZGVhbGluZwotd2l0aCBzb2NrZXRzIG9yIFdpbmRvd3MgbmFtZWQgcGlwZXMsIGFuZCBhbHNvIGhhcyBzdXBwb3J0IGZvciAqZGlnZXN0Ci1hdXRoZW50aWNhdGlvbiogdXNpbmcgdGhlIDptb2Q6YGhtYWNgIG1vZHVsZS4KK3dpdGggc29ja2V0cyBvciBXaW5kb3dzIG5hbWVkIHBpcGVzLiAgSXQgYWxzbyBoYXMgc3VwcG9ydCBmb3IgKmRpZ2VzdAorYXV0aGVudGljYXRpb24qIHVzaW5nIHRoZSA6bW9kOmBobWFjYCBtb2R1bGUsIGFuZCBmb3IgcG9sbGluZworbXVsdGlwbGUgY29ubmVjdGlvbnMgYXQgdGhlIHNhbWUgdGltZS4KIAogCiAuLiBmdW5jdGlvbjo6IGRlbGl2ZXJfY2hhbGxlbmdlKGNvbm5lY3Rpb24sIGF1dGhrZXkpCkBAIC0xODM3LDYgKzE5MjYsNDQgQEAKICAgICAgIFRoZSBhZGRyZXNzIGZyb20gd2hpY2ggdGhlIGxhc3QgYWNjZXB0ZWQgY29ubmVjdGlvbiBjYW1lLiAgSWYgdGhpcyBpcwogICAgICAgdW5hdmFpbGFibGUgdGhlbiBpdCBpcyBgYE5vbmVgYC4KIAorICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBMaXN0ZW5lciBvYmplY3RzIG5vdyBzdXBwb3J0IHRoZSBjb250ZXh0IG1hbmFnZXIgcHJvdG9jb2wgLS0gc2VlCisgICAgICA6cmVmOmB0eXBlY29udGV4dG1hbmFnZXJgLiAgOm1ldGg6YF9fZW50ZXJfX2AgcmV0dXJucyB0aGUKKyAgICAgIGxpc3RlbmVyIG9iamVjdCwgYW5kIDptZXRoOmBfX2V4aXRfX2AgY2FsbHMgOm1ldGg6YGNsb3NlYC4KKworLi4gZnVuY3Rpb246OiB3YWl0KG9iamVjdF9saXN0LCB0aW1lb3V0PU5vbmUpCisKKyAgIFdhaXQgdGlsbCBhbiBvYmplY3QgaW4gKm9iamVjdF9saXN0KiBpcyByZWFkeS4gIFJldHVybnMgdGhlIGxpc3Qgb2YKKyAgIHRob3NlIG9iamVjdHMgaW4gKm9iamVjdF9saXN0KiB3aGljaCBhcmUgcmVhZHkuICBJZiAqdGltZW91dCogaXMgYQorICAgZmxvYXQgdGhlbiB0aGUgY2FsbCBibG9ja3MgZm9yIGF0IG1vc3QgdGhhdCBtYW55IHNlY29uZHMuICBJZgorICAgKnRpbWVvdXQqIGlzIGBgTm9uZWBgIHRoZW4gaXQgd2lsbCBibG9jayBmb3IgYW4gdW5saW1pdGVkIHBlcmlvZC4KKyAgIEEgbmVnYXRpdmUgdGltZW91dCBpcyBlcXVpdmFsZW50IHRvIGEgemVybyB0aW1lb3V0LgorCisgICBGb3IgYm90aCBVbml4IGFuZCBXaW5kb3dzLCBhbiBvYmplY3QgY2FuIGFwcGVhciBpbiAqb2JqZWN0X2xpc3QqIGlmCisgICBpdCBpcworCisgICAqIGEgcmVhZGFibGUgOmNsYXNzOmB+bXVsdGlwcm9jZXNzaW5nLkNvbm5lY3Rpb25gIG9iamVjdDsKKyAgICogYSBjb25uZWN0ZWQgYW5kIHJlYWRhYmxlIDpjbGFzczpgc29ja2V0LnNvY2tldGAgb2JqZWN0OyBvcgorICAgKiB0aGUgOmF0dHI6YH5tdWx0aXByb2Nlc3NpbmcuUHJvY2Vzcy5zZW50aW5lbGAgYXR0cmlidXRlIG9mIGEKKyAgICAgOmNsYXNzOmB+bXVsdGlwcm9jZXNzaW5nLlByb2Nlc3NgIG9iamVjdC4KKworICAgQSBjb25uZWN0aW9uIG9yIHNvY2tldCBvYmplY3QgaXMgcmVhZHkgd2hlbiB0aGVyZSBpcyBkYXRhIGF2YWlsYWJsZQorICAgdG8gYmUgcmVhZCBmcm9tIGl0LCBvciB0aGUgb3RoZXIgZW5kIGhhcyBiZWVuIGNsb3NlZC4KKworICAgKipVbml4Kio6IGBgd2FpdChvYmplY3RfbGlzdCwgdGltZW91dClgYCBhbG1vc3QgZXF1aXZhbGVudAorICAgYGBzZWxlY3Quc2VsZWN0KG9iamVjdF9saXN0LCBbXSwgW10sIHRpbWVvdXQpYGAuICBUaGUgZGlmZmVyZW5jZSBpcworICAgdGhhdCwgaWYgOmZ1bmM6YHNlbGVjdC5zZWxlY3RgIGlzIGludGVycnVwdGVkIGJ5IGEgc2lnbmFsLCBpdCBjYW4KKyAgIHJhaXNlIDpleGM6YE9TRXJyb3JgIHdpdGggYW4gZXJyb3IgbnVtYmVyIG9mIGBgRUlOVFJgYCwgd2hlcmVhcworICAgOmZ1bmM6YHdhaXRgIHdpbGwgbm90LgorCisgICAqKldpbmRvd3MqKjogQW4gaXRlbSBpbiAqb2JqZWN0X2xpc3QqIG11c3QgZWl0aGVyIGJlIGFuIGludGVnZXIKKyAgIGhhbmRsZSB3aGljaCBpcyB3YWl0YWJsZSAoYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIHVzZWQgYnkgdGhlCisgICBkb2N1bWVudGF0aW9uIG9mIHRoZSBXaW4zMiBmdW5jdGlvbiBgYFdhaXRGb3JNdWx0aXBsZU9iamVjdHMoKWBgKQorICAgb3IgaXQgY2FuIGJlIGFuIG9iamVjdCB3aXRoIGEgOm1ldGg6YGZpbGVub2AgbWV0aG9kIHdoaWNoIHJldHVybnMgYQorICAgc29ja2V0IGhhbmRsZSBvciBwaXBlIGhhbmRsZS4gIChOb3RlIHRoYXQgcGlwZSBoYW5kbGVzIGFuZCBzb2NrZXQKKyAgIGhhbmRsZXMgYXJlICoqbm90Kiogd2FpdGFibGUgaGFuZGxlcy4pCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiBUaGUgbW9kdWxlIGRlZmluZXMgdHdvIGV4Y2VwdGlvbnM6CiAKQEAgLTE4NTUsMTkgKzE5ODIsMTYgQEAKICAgIGZyb20gYXJyYXkgaW1wb3J0IGFycmF5CiAKICAgIGFkZHJlc3MgPSAoJ2xvY2FsaG9zdCcsIDYwMDApICAgICAjIGZhbWlseSBpcyBkZWR1Y2VkIHRvIGJlICdBRl9JTkVUJwotICAgbGlzdGVuZXIgPSBMaXN0ZW5lcihhZGRyZXNzLCBhdXRoa2V5PWInc2VjcmV0IHBhc3N3b3JkJykKIAotICAgY29ubiA9IGxpc3RlbmVyLmFjY2VwdCgpCi0gICBwcmludCgnY29ubmVjdGlvbiBhY2NlcHRlZCBmcm9tJywgbGlzdGVuZXIubGFzdF9hY2NlcHRlZCkKKyAgIHdpdGggTGlzdGVuZXIoYWRkcmVzcywgYXV0aGtleT1iJ3NlY3JldCBwYXNzd29yZCcpIGFzIGxpc3RlbmVyOgorICAgICAgIHdpdGggbGlzdGVuZXIuYWNjZXB0KCkgYXMgY29ubjoKKyAgICAgICAgICAgcHJpbnQoJ2Nvbm5lY3Rpb24gYWNjZXB0ZWQgZnJvbScsIGxpc3RlbmVyLmxhc3RfYWNjZXB0ZWQpCiAKLSAgIGNvbm4uc2VuZChbMi4yNSwgTm9uZSwgJ2p1bmsnLCBmbG9hdF0pCisgICAgICAgICAgIGNvbm4uc2VuZChbMi4yNSwgTm9uZSwgJ2p1bmsnLCBmbG9hdF0pCiAKLSAgIGNvbm4uc2VuZF9ieXRlcyhiJ2hlbGxvJykKKyAgICAgICAgICAgY29ubi5zZW5kX2J5dGVzKGInaGVsbG8nKQogCi0gICBjb25uLnNlbmRfYnl0ZXMoYXJyYXkoJ2knLCBbNDIsIDE3MjldKSkKLQotICAgY29ubi5jbG9zZSgpCi0gICBsaXN0ZW5lci5jbG9zZSgpCisgICAgICAgICAgIGNvbm4uc2VuZF9ieXRlcyhhcnJheSgnaScsIFs0MiwgMTcyOV0pKQogCiBUaGUgZm9sbG93aW5nIGNvZGUgY29ubmVjdHMgdG8gdGhlIHNlcnZlciBhbmQgcmVjZWl2ZXMgc29tZSBkYXRhIGZyb20gdGhlCiBzZXJ2ZXI6OgpAQCAtMTg3NiwxNyArMjAwMCw1MCBAQAogICAgZnJvbSBhcnJheSBpbXBvcnQgYXJyYXkKIAogICAgYWRkcmVzcyA9ICgnbG9jYWxob3N0JywgNjAwMCkKLSAgIGNvbm4gPSBDbGllbnQoYWRkcmVzcywgYXV0aGtleT1iJ3NlY3JldCBwYXNzd29yZCcpCiAKLSAgIHByaW50KGNvbm4ucmVjdigpKSAgICAgICAgICAgICAgICAgICMgPT4gWzIuMjUsIE5vbmUsICdqdW5rJywgZmxvYXRdCisgICB3aXRoIENsaWVudChhZGRyZXNzLCBhdXRoa2V5PWInc2VjcmV0IHBhc3N3b3JkJykgYXMgY29ubjoKKyAgICAgICBwcmludChjb25uLnJlY3YoKSkgICAgICAgICAgICAgICAgICAjID0+IFsyLjI1LCBOb25lLCAnanVuaycsIGZsb2F0XQogCi0gICBwcmludChjb25uLnJlY3ZfYnl0ZXMoKSkgICAgICAgICAgICAjID0+ICdoZWxsbycKKyAgICAgICBwcmludChjb25uLnJlY3ZfYnl0ZXMoKSkgICAgICAgICAgICAjID0+ICdoZWxsbycKIAotICAgYXJyID0gYXJyYXkoJ2knLCBbMCwgMCwgMCwgMCwgMF0pCi0gICBwcmludChjb25uLnJlY3ZfYnl0ZXNfaW50byhhcnIpKSAgICAjID0+IDgKLSAgIHByaW50KGFycikgICAgICAgICAgICAgICAgICAgICAgICAgICMgPT4gYXJyYXkoJ2knLCBbNDIsIDE3MjksIDAsIDAsIDBdKQorICAgICAgIGFyciA9IGFycmF5KCdpJywgWzAsIDAsIDAsIDAsIDBdKQorICAgICAgIHByaW50KGNvbm4ucmVjdl9ieXRlc19pbnRvKGFycikpICAgICMgPT4gOAorICAgICAgIHByaW50KGFycikgICAgICAgICAgICAgICAgICAgICAgICAgICMgPT4gYXJyYXkoJ2knLCBbNDIsIDE3MjksIDAsIDAsIDBdKQogCi0gICBjb25uLmNsb3NlKCkKK1RoZSBmb2xsb3dpbmcgY29kZSB1c2VzIDpmdW5jOmB+bXVsdGlwcm9jZXNzaW5nLmNvbm5lY3Rpb24ud2FpdGAgdG8KK3dhaXQgZm9yIG1lc3NhZ2VzIGZyb20gbXVsdGlwbGUgcHJvY2Vzc2VzIGF0IG9uY2U6OgorCisgICBpbXBvcnQgdGltZSwgcmFuZG9tCisgICBmcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUHJvY2VzcywgUGlwZSwgY3VycmVudF9wcm9jZXNzCisgICBmcm9tIG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uIGltcG9ydCB3YWl0CisKKyAgIGRlZiBmb28odyk6CisgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTApOgorICAgICAgICAgICB3LnNlbmQoKGksIGN1cnJlbnRfcHJvY2VzcygpLm5hbWUpKQorICAgICAgIHcuY2xvc2UoKQorCisgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgICAgIHJlYWRlcnMgPSBbXQorCisgICAgICAgZm9yIGkgaW4gcmFuZ2UoNCk6CisgICAgICAgICAgIHIsIHcgPSBQaXBlKGR1cGxleD1GYWxzZSkKKyAgICAgICAgICAgcmVhZGVycy5hcHBlbmQocikKKyAgICAgICAgICAgcCA9IFByb2Nlc3ModGFyZ2V0PWZvbywgYXJncz0odywpKQorICAgICAgICAgICBwLnN0YXJ0KCkKKyAgICAgICAgICAgIyBXZSBjbG9zZSB0aGUgd3JpdGFibGUgZW5kIG9mIHRoZSBwaXBlIG5vdyB0byBiZSBzdXJlIHRoYXQKKyAgICAgICAgICAgIyBwIGlzIHRoZSBvbmx5IHByb2Nlc3Mgd2hpY2ggb3ducyBhIGhhbmRsZSBmb3IgaXQuICBUaGlzCisgICAgICAgICAgICMgZW5zdXJlcyB0aGF0IHdoZW4gcCBjbG9zZXMgaXRzIGhhbmRsZSBmb3IgdGhlIHdyaXRhYmxlIGVuZCwKKyAgICAgICAgICAgIyB3YWl0KCkgd2lsbCBwcm9tcHRseSByZXBvcnQgdGhlIHJlYWRhYmxlIGVuZCBhcyBiZWluZyByZWFkeS4KKyAgICAgICAgICAgdy5jbG9zZSgpCisKKyAgICAgICB3aGlsZSByZWFkZXJzOgorICAgICAgICAgICBmb3IgciBpbiB3YWl0KHJlYWRlcnMpOgorICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgIG1zZyA9IHIucmVjdigpCisgICAgICAgICAgICAgICBleGNlcHQgRU9GRXJyb3I6CisgICAgICAgICAgICAgICAgICAgcmVhZGVycy5yZW1vdmUocikKKyAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgcHJpbnQobXNnKQogCiAKIC4uIF9tdWx0aXByb2Nlc3NpbmctYWRkcmVzcy1mb3JtYXRzOgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvbm50cGxpYi5yc3QgYi9Eb2MvbGlicmFyeS9ubnRwbGliLnJzdAppbmRleCBlZjUwN2UxLi42MmRhNzJjIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9ubnRwbGliLnJzdAorKysgYi9Eb2MvbGlicmFyeS9ubnRwbGliLnJzdApAQCAtNzAsMTAgKzcwLDIzIEBACiAgICBjb25uZWN0aW5nIHRvIGFuIE5OVFAgc2VydmVyIG9uIHRoZSBsb2NhbCBtYWNoaW5lIGFuZCBpbnRlbmQgdG8gY2FsbAogICAgcmVhZGVyLXNwZWNpZmljIGNvbW1hbmRzLCBzdWNoIGFzIGBgZ3JvdXBgYC4gIElmIHlvdSBnZXQgdW5leHBlY3RlZAogICAgOmV4YzpgTk5UUFBlcm1hbmVudEVycm9yYFwgcywgeW91IG1pZ2h0IG5lZWQgdG8gc2V0ICpyZWFkZXJtb2RlKi4KKyAgIDpjbGFzczpgTk5UUGAgY2xhc3Mgc3VwcG9ydHMgdGhlIDprZXl3b3JkOmB3aXRoYCBzdGF0ZW1lbnQgdG8KKyAgIHVuY29uZGl0aW9uYWxseSBjb25zdW1lIDpleGM6YHNvY2tldC5lcnJvcmAgZXhjZXB0aW9ucyBhbmQgdG8gY2xvc2UgdGhlIE5OVFAKKyAgIGNvbm5lY3Rpb24gd2hlbiBkb25lLiBIZXJlIGlzIGEgc2FtcGxlIG9uIGhvdyB1c2luZyBpdDoKKworICAgID4+PiBmcm9tIG5udHBsaWIgaW1wb3J0IE5OVFAKKyAgICA+Pj4gd2l0aCBOTlRQKCduZXdzLmdtYW5lLm9yZycpIGFzIG46CisgICAgLi4uICAgICBuLmdyb3VwKCdnbWFuZS5jb21wLnB5dGhvbi5jb21taXR0ZXJzJykKKyAgICAuLi4KKyAgICAoJzIxMSAxNzU1IDEgMTc1NSBnbWFuZS5jb21wLnB5dGhvbi5jb21taXR0ZXJzJywgMTc1NSwgMSwgMTc1NSwgJ2dtYW5lLmNvbXAucHl0aG9uLmNvbW1pdHRlcnMnKQorICAgID4+PgorCiAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCiAgICAgICAqdXNlbmV0cmMqIGlzIG5vdyBGYWxzZSBieSBkZWZhdWx0LgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgU3VwcG9ydCBmb3IgdGhlIDprZXl3b3JkOmB3aXRoYCBzdGF0ZW1lbnQgd2FzIGFkZGVkLgogCiAuLiBjbGFzczo6IE5OVFBfU1NMKGhvc3QsIHBvcnQ9NTYzLCB1c2VyPU5vbmUsIHBhc3N3b3JkPU5vbmUsIHNzbF9jb250ZXh0PU5vbmUsIHJlYWRlcm1vZGU9Tm9uZSwgdXNlbmV0cmM9RmFsc2UsIFt0aW1lb3V0XSkKIApAQCAtNTA0LDYgKzUxNyw5IEBACiAgICBhcnRpY2xlIHdpdGggbWVzc2FnZSBJRCAqaWQqLiAgTW9zdCBvZiB0aGUgdGltZSwgdGhpcyBleHRlbnNpb24gaXMgbm90CiAgICBlbmFibGVkIGJ5IE5OVFAgc2VydmVyIGFkbWluaXN0cmF0b3JzLgogCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisgICAgICBUaGUgWFBBVEggZXh0ZW5zaW9uIGlzIG5vdCBhY3RpdmVseSB1c2VkLgorCiAKIC4uIFhYWCBkZXByZWNhdGVkOgogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9udW1lcmljLnJzdCBiL0RvYy9saWJyYXJ5L251bWVyaWMucnN0CmluZGV4IGJhMjJjYjYuLjI3MzJhODQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L251bWVyaWMucnN0CisrKyBiL0RvYy9saWJyYXJ5L251bWVyaWMucnN0CkBAIC04LDkgKzgsOSBAQAogVGhlIG1vZHVsZXMgZGVzY3JpYmVkIGluIHRoaXMgY2hhcHRlciBwcm92aWRlIG51bWVyaWMgYW5kIG1hdGgtcmVsYXRlZCBmdW5jdGlvbnMKIGFuZCBkYXRhIHR5cGVzLiBUaGUgOm1vZDpgbnVtYmVyc2AgbW9kdWxlIGRlZmluZXMgYW4gYWJzdHJhY3QgaGllcmFyY2h5IG9mCiBudW1lcmljIHR5cGVzLiBUaGUgOm1vZDpgbWF0aGAgYW5kIDptb2Q6YGNtYXRoYCBtb2R1bGVzIGNvbnRhaW4gdmFyaW91cwotbWF0aGVtYXRpY2FsIGZ1bmN0aW9ucyBmb3IgZmxvYXRpbmctcG9pbnQgYW5kIGNvbXBsZXggbnVtYmVycy4gRm9yIHVzZXJzIG1vcmUKLWludGVyZXN0ZWQgaW4gZGVjaW1hbCBhY2N1cmFjeSB0aGFuIGluIHNwZWVkLCB0aGUgOm1vZDpgZGVjaW1hbGAgbW9kdWxlIHN1cHBvcnRzCi1leGFjdCByZXByZXNlbnRhdGlvbnMgb2YgZGVjaW1hbCBudW1iZXJzLgorbWF0aGVtYXRpY2FsIGZ1bmN0aW9ucyBmb3IgZmxvYXRpbmctcG9pbnQgYW5kIGNvbXBsZXggbnVtYmVycy4gVGhlIDptb2Q6YGRlY2ltYWxgCittb2R1bGUgc3VwcG9ydHMgZXhhY3QgcmVwcmVzZW50YXRpb25zIG9mIGRlY2ltYWwgbnVtYmVycywgdXNpbmcgYXJiaXRyYXJ5IHByZWNpc2lvbgorYXJpdGhtZXRpYy4KIAogVGhlIGZvbGxvd2luZyBtb2R1bGVzIGFyZSBkb2N1bWVudGVkIGluIHRoaXMgY2hhcHRlcjoKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvb3MucGF0aC5yc3QgYi9Eb2MvbGlicmFyeS9vcy5wYXRoLnJzdAppbmRleCAyMTRlMjdjLi4yMGE4NGI2IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9vcy5wYXRoLnJzdAorKysgYi9Eb2MvbGlicmFyeS9vcy5wYXRoLnJzdApAQCAtNzAsMTEgKzcwLDE2IEBACiAKIC4uIGZ1bmN0aW9uOjogZXhpc3RzKHBhdGgpCiAKLSAgIFJldHVybiBgYFRydWVgYCBpZiAqcGF0aCogcmVmZXJzIHRvIGFuIGV4aXN0aW5nIHBhdGguICBSZXR1cm5zIGBgRmFsc2VgYCBmb3IKLSAgIGJyb2tlbiBzeW1ib2xpYyBsaW5rcy4gT24gc29tZSBwbGF0Zm9ybXMsIHRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiBgYEZhbHNlYGAgaWYKLSAgIHBlcm1pc3Npb24gaXMgbm90IGdyYW50ZWQgdG8gZXhlY3V0ZSA6ZnVuYzpgb3Muc3RhdGAgb24gdGhlIHJlcXVlc3RlZCBmaWxlLCBldmVuCisgICBSZXR1cm4gYGBUcnVlYGAgaWYgKnBhdGgqIHJlZmVycyB0byBhbiBleGlzdGluZyBwYXRoIG9yIGFuIG9wZW4KKyAgIGZpbGUgZGVzY3JpcHRvci4gIFJldHVybnMgYGBGYWxzZWBgIGZvciBicm9rZW4gc3ltYm9saWMgbGlua3MuICBPbgorICAgc29tZSBwbGF0Zm9ybXMsIHRoaXMgZnVuY3Rpb24gbWF5IHJldHVybiBgYEZhbHNlYGAgaWYgcGVybWlzc2lvbiBpcworICAgbm90IGdyYW50ZWQgdG8gZXhlY3V0ZSA6ZnVuYzpgb3Muc3RhdGAgb24gdGhlIHJlcXVlc3RlZCBmaWxlLCBldmVuCiAgICBpZiB0aGUgKnBhdGgqIHBoeXNpY2FsbHkgZXhpc3RzLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgKnBhdGgqIGNhbiBub3cgYmUgYW4gaW50ZWdlcjogYGBUcnVlYGAgaXMgcmV0dXJuZWQgaWYgaXQgaXMgYW4KKyAgICAgICBvcGVuIGZpbGUgZGVzY3JpcHRvciwgYGBGYWxzZWBgIG90aGVyd2lzZS4KKwogCiAuLiBmdW5jdGlvbjo6IGxleGlzdHMocGF0aCkKIApAQCAtMjU0LDcgKzI1OSw4IEBACiAKICAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KIAotICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIgQWRkZWQgV2luZG93cyBzdXBwb3J0LgorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKKyAgICAgIEFkZGVkIFdpbmRvd3Mgc3VwcG9ydC4KIAogCiAuLiBmdW5jdGlvbjo6IHNhbWVzdGF0KHN0YXQxLCBzdGF0MikKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L29zLnJzdCBiL0RvYy9saWJyYXJ5L29zLnJzdAppbmRleCA1OTkxZTI5Li42ZDE4MzAwIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9vcy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvb3MucnN0CkBAIC05Niw2ICs5NiwxMyBAQAogcHJvY2VzcyBhbmQgdXNlci4KIAogCisuLiBmdW5jdGlvbjo6IGN0ZXJtaWQoKQorCisgICBSZXR1cm4gdGhlIGZpbGVuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNvbnRyb2xsaW5nIHRlcm1pbmFsIG9mIHRoZSBwcm9jZXNzLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKwogLi4gZGF0YTo6IGVudmlyb24KIAogICAgQSBtYXBwaW5nIG9iamVjdCByZXByZXNlbnRpbmcgdGhlIHN0cmluZyBlbnZpcm9ubWVudC4gRm9yIGV4YW1wbGUsCkBAIC0xNzcsNiArMTg0LDI4IEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogCisuLiBmdW5jdGlvbjo6IGdldGVudihrZXksIGRlZmF1bHQ9Tm9uZSkKKworICAgUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgKmtleSogaWYgaXQgZXhpc3RzLCBvcgorICAgKmRlZmF1bHQqIGlmIGl0IGRvZXNuJ3QuICprZXkqLCAqZGVmYXVsdCogYW5kIHRoZSByZXN1bHQgYXJlIHN0ci4KKworICAgT24gVW5peCwga2V5cyBhbmQgdmFsdWVzIGFyZSBkZWNvZGVkIHdpdGggOmZ1bmM6YHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmdgCisgICBhbmQgYGAnc3Vycm9nYXRlZXNjYXBlJ2BgIGVycm9yIGhhbmRsZXIuIFVzZSA6ZnVuYzpgb3MuZ2V0ZW52YmAgaWYgeW91CisgICB3b3VsZCBsaWtlIHRvIHVzZSBhIGRpZmZlcmVudCBlbmNvZGluZy4KKworICAgQXZhaWxhYmlsaXR5OiBtb3N0IGZsYXZvcnMgb2YgVW5peCwgV2luZG93cy4KKworCisuLiBmdW5jdGlvbjo6IGdldGVudmIoa2V5LCBkZWZhdWx0PU5vbmUpCisKKyAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlICprZXkqIGlmIGl0IGV4aXN0cywgb3IKKyAgICpkZWZhdWx0KiBpZiBpdCBkb2Vzbid0LiAqa2V5KiwgKmRlZmF1bHQqIGFuZCB0aGUgcmVzdWx0IGFyZSBieXRlcy4KKworICAgQXZhaWxhYmlsaXR5OiBtb3N0IGZsYXZvcnMgb2YgVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCisKKwogLi4gZnVuY3Rpb246OiBnZXRfZXhlY19wYXRoKGVudj1Ob25lKQogCiAgICBSZXR1cm5zIHRoZSBsaXN0IG9mIGRpcmVjdG9yaWVzIHRoYXQgd2lsbCBiZSBzZWFyY2hlZCBmb3IgYSBuYW1lZApAQCAtMTg4LDEzICsyMTcsNiBAQAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKIAotLi4gZnVuY3Rpb246OiBjdGVybWlkKCkKLQotICAgUmV0dXJuIHRoZSBmaWxlbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBjb250cm9sbGluZyB0ZXJtaW5hbCBvZiB0aGUgcHJvY2Vzcy4KLQotICAgQXZhaWxhYmlsaXR5OiBVbml4LgotCi0KIC4uIGZ1bmN0aW9uOjogZ2V0ZWdpZCgpCiAKICAgIFJldHVybiB0aGUgZWZmZWN0aXZlIGdyb3VwIGlkIG9mIHRoZSBjdXJyZW50IHByb2Nlc3MuICBUaGlzIGNvcnJlc3BvbmRzIHRvIHRoZQpAQCAtMjIxLDYgKzI0MywxNyBAQAogICAgQXZhaWxhYmlsaXR5OiBVbml4LgogCiAKKy4uIGZ1bmN0aW9uOjogZ2V0Z3JvdXBsaXN0KHVzZXIsIGdyb3VwKQorCisgICBSZXR1cm4gbGlzdCBvZiBncm91cCBpZHMgdGhhdCAqdXNlciogYmVsb25ncyB0by4gSWYgKmdyb3VwKiBpcyBub3QgaW4gdGhlCisgICBsaXN0LCBpdCBpcyBpbmNsdWRlZDsgdHlwaWNhbGx5LCAqZ3JvdXAqIGlzIHNwZWNpZmllZCBhcyB0aGUgZ3JvdXAgSUQKKyAgIGZpZWxkIGZyb20gdGhlIHBhc3N3b3JkIHJlY29yZCBmb3IgKnVzZXIqLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIGZ1bmN0aW9uOjogZ2V0Z3JvdXBzKCkKIAogICAgUmV0dXJuIGxpc3Qgb2Ygc3VwcGxlbWVudGFsIGdyb3VwIGlkcyBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgcHJvY2Vzcy4KQEAgLTI0MiwxNyArMjc1LDYgQEAKICAgICAgIG9idGFpbmVkIHdpdGggOmZ1bmM6YHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcmAuCiAKIAotLi4gZnVuY3Rpb246OiBpbml0Z3JvdXBzKHVzZXJuYW1lLCBnaWQpCi0KLSAgIENhbGwgdGhlIHN5c3RlbSBpbml0Z3JvdXBzKCkgdG8gaW5pdGlhbGl6ZSB0aGUgZ3JvdXAgYWNjZXNzIGxpc3Qgd2l0aCBhbGwgb2YKLSAgIHRoZSBncm91cHMgb2Ygd2hpY2ggdGhlIHNwZWNpZmllZCB1c2VybmFtZSBpcyBhIG1lbWJlciwgcGx1cyB0aGUgc3BlY2lmaWVkCi0gICBncm91cCBpZC4KLQotICAgQXZhaWxhYmlsaXR5OiBVbml4LgotCi0gICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKLQotCiAuLiBmdW5jdGlvbjo6IGdldGxvZ2luKCkKIAogICAgUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSB1c2VyIGxvZ2dlZCBpbiBvbiB0aGUgY29udHJvbGxpbmcgdGVybWluYWwgb2YgdGhlCkBAIC0yOTcsMTEgKzMxOSw0MCBAQAogICAgdGhlIGlkIHJldHVybmVkIGlzIHRoZSBvbmUgb2YgdGhlIGluaXQgcHJvY2VzcyAoMSksIG9uIFdpbmRvd3MgaXQgaXMgc3RpbGwKICAgIHRoZSBzYW1lIGlkLCB3aGljaCBtYXkgYmUgYWxyZWFkeSByZXVzZWQgYnkgYW5vdGhlciBwcm9jZXNzLgogCi0gICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MKKyAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KIAogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIFdpbmRvd3MuCiAKKworLi4gZnVuY3Rpb246OiBnZXRwcmlvcml0eSh3aGljaCwgd2hvKQorCisgICAuLiBpbmRleDo6IHNpbmdsZTogcHJvY2Vzczsgc2NoZWR1bGluZyBwcmlvcml0eQorCisgICBHZXQgcHJvZ3JhbSBzY2hlZHVsaW5nIHByaW9yaXR5LiAgVGhlIHZhbHVlICp3aGljaCogaXMgb25lIG9mCisgICA6Y29uc3Q6YFBSSU9fUFJPQ0VTU2AsIDpjb25zdDpgUFJJT19QR1JQYCwgb3IgOmNvbnN0OmBQUklPX1VTRVJgLCBhbmQgKndobyoKKyAgIGlzIGludGVycHJldGVkIHJlbGF0aXZlIHRvICp3aGljaCogKGEgcHJvY2VzcyBpZGVudGlmaWVyIGZvcgorICAgOmNvbnN0OmBQUklPX1BST0NFU1NgLCBwcm9jZXNzIGdyb3VwIGlkZW50aWZpZXIgZm9yIDpjb25zdDpgUFJJT19QR1JQYCwgYW5kIGEKKyAgIHVzZXIgSUQgZm9yIDpjb25zdDpgUFJJT19VU0VSYCkuICBBIHplcm8gdmFsdWUgZm9yICp3aG8qIGRlbm90ZXMKKyAgIChyZXNwZWN0aXZlbHkpIHRoZSBjYWxsaW5nIHByb2Nlc3MsIHRoZSBwcm9jZXNzIGdyb3VwIG9mIHRoZSBjYWxsaW5nIHByb2Nlc3MsCisgICBvciB0aGUgcmVhbCB1c2VyIElEIG9mIHRoZSBjYWxsaW5nIHByb2Nlc3MuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZGF0YTo6IFBSSU9fUFJPQ0VTUworICAgICAgICAgIFBSSU9fUEdSUAorICAgICAgICAgIFBSSU9fVVNFUgorCisgICBQYXJhbWV0ZXJzIGZvciB0aGUgOmZ1bmM6YGdldHByaW9yaXR5YCBhbmQgOmZ1bmM6YHNldHByaW9yaXR5YCBmdW5jdGlvbnMuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gZnVuY3Rpb246OiBnZXRyZXN1aWQoKQogCiAgICBSZXR1cm4gYSB0dXBsZSAocnVpZCwgZXVpZCwgc3VpZCkgZGVub3RpbmcgdGhlIGN1cnJlbnQgcHJvY2VzcydzCkBAIC0zMzEsMjQgKzM4MiwxMyBAQAogICAgQXZhaWxhYmlsaXR5OiBVbml4LgogCiAKLS4uIGZ1bmN0aW9uOjogZ2V0ZW52KGtleSwgZGVmYXVsdD1Ob25lKQorLi4gZnVuY3Rpb246OiBpbml0Z3JvdXBzKHVzZXJuYW1lLCBnaWQpCiAKLSAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlICprZXkqIGlmIGl0IGV4aXN0cywgb3IKLSAgICpkZWZhdWx0KiBpZiBpdCBkb2Vzbid0LiAqa2V5KiwgKmRlZmF1bHQqIGFuZCB0aGUgcmVzdWx0IGFyZSBzdHIuCisgICBDYWxsIHRoZSBzeXN0ZW0gaW5pdGdyb3VwcygpIHRvIGluaXRpYWxpemUgdGhlIGdyb3VwIGFjY2VzcyBsaXN0IHdpdGggYWxsIG9mCisgICB0aGUgZ3JvdXBzIG9mIHdoaWNoIHRoZSBzcGVjaWZpZWQgdXNlcm5hbWUgaXMgYSBtZW1iZXIsIHBsdXMgdGhlIHNwZWNpZmllZAorICAgZ3JvdXAgaWQuCiAKLSAgIE9uIFVuaXgsIGtleXMgYW5kIHZhbHVlcyBhcmUgZGVjb2RlZCB3aXRoIDpmdW5jOmBzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nYAotICAgYW5kIGBgJ3N1cnJvZ2F0ZWVzY2FwZSdgYCBlcnJvciBoYW5kbGVyLiBVc2UgOmZ1bmM6YG9zLmdldGVudmJgIGlmIHlvdQotICAgd291bGQgbGlrZSB0byB1c2UgYSBkaWZmZXJlbnQgZW5jb2RpbmcuCi0KLSAgIEF2YWlsYWJpbGl0eTogbW9zdCBmbGF2b3JzIG9mIFVuaXgsIFdpbmRvd3MuCi0KLQotLi4gZnVuY3Rpb246OiBnZXRlbnZiKGtleSwgZGVmYXVsdD1Ob25lKQotCi0gICBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSAqa2V5KiBpZiBpdCBleGlzdHMsIG9yCi0gICAqZGVmYXVsdCogaWYgaXQgZG9lc24ndC4gKmtleSosICpkZWZhdWx0KiBhbmQgdGhlIHJlc3VsdCBhcmUgYnl0ZXMuCi0KLSAgIEF2YWlsYWJpbGl0eTogbW9zdCBmbGF2b3JzIG9mIFVuaXguCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCkBAIC00MjUsNiArNDY1LDI1IEBACiAgICBBdmFpbGFiaWxpdHk6IFVuaXguCiAKIAorLi4gZnVuY3Rpb246OiBzZXRwcmlvcml0eSh3aGljaCwgd2hvLCBwcmlvcml0eSkKKworICAgLi4gaW5kZXg6OiBzaW5nbGU6IHByb2Nlc3M7IHNjaGVkdWxpbmcgcHJpb3JpdHkKKworICAgU2V0IHByb2dyYW0gc2NoZWR1bGluZyBwcmlvcml0eS4gVGhlIHZhbHVlICp3aGljaCogaXMgb25lIG9mCisgICA6Y29uc3Q6YFBSSU9fUFJPQ0VTU2AsIDpjb25zdDpgUFJJT19QR1JQYCwgb3IgOmNvbnN0OmBQUklPX1VTRVJgLCBhbmQgKndobyoKKyAgIGlzIGludGVycHJldGVkIHJlbGF0aXZlIHRvICp3aGljaCogKGEgcHJvY2VzcyBpZGVudGlmaWVyIGZvcgorICAgOmNvbnN0OmBQUklPX1BST0NFU1NgLCBwcm9jZXNzIGdyb3VwIGlkZW50aWZpZXIgZm9yIDpjb25zdDpgUFJJT19QR1JQYCwgYW5kIGEKKyAgIHVzZXIgSUQgZm9yIDpjb25zdDpgUFJJT19VU0VSYCkuIEEgemVybyB2YWx1ZSBmb3IgKndobyogZGVub3RlcworICAgKHJlc3BlY3RpdmVseSkgdGhlIGNhbGxpbmcgcHJvY2VzcywgdGhlIHByb2Nlc3MgZ3JvdXAgb2YgdGhlIGNhbGxpbmcgcHJvY2VzcywKKyAgIG9yIHRoZSByZWFsIHVzZXIgSUQgb2YgdGhlIGNhbGxpbmcgcHJvY2Vzcy4KKyAgICpwcmlvcml0eSogaXMgYSB2YWx1ZSBpbiB0aGUgcmFuZ2UgLTIwIHRvIDE5LiBUaGUgZGVmYXVsdCBwcmlvcml0eSBpcyAwOworICAgbG93ZXIgcHJpb3JpdGllcyBjYXVzZSBtb3JlIGZhdm9yYWJsZSBzY2hlZHVsaW5nLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXgKKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gZnVuY3Rpb246OiBzZXRyZWdpZChyZ2lkLCBlZ2lkKQogCiAgICBTZXQgdGhlIGN1cnJlbnQgcHJvY2VzcydzIHJlYWwgYW5kIGVmZmVjdGl2ZSBncm91cCBpZHMuCkBAIC01MTEsMTUgKzU3MCwzMSBAQAogICAgICAgc2luZ2xlOiBnZXRob3N0bmFtZSgpIChpbiBtb2R1bGUgc29ja2V0KQogICAgICAgc2luZ2xlOiBnZXRob3N0YnlhZGRyKCkgKGluIG1vZHVsZSBzb2NrZXQpCiAKLSAgIFJldHVybiBhIDUtdHVwbGUgY29udGFpbmluZyBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB0aGUgY3VycmVudCBvcGVyYXRpbmcKLSAgIHN5c3RlbS4gIFRoZSB0dXBsZSBjb250YWlucyA1IHN0cmluZ3M6IGBgKHN5c25hbWUsIG5vZGVuYW1lLCByZWxlYXNlLCB2ZXJzaW9uLAotICAgbWFjaGluZSlgYC4gIFNvbWUgc3lzdGVtcyB0cnVuY2F0ZSB0aGUgbm9kZW5hbWUgdG8gOCBjaGFyYWN0ZXJzIG9yIHRvIHRoZQorICAgUmV0dXJucyBpbmZvcm1hdGlvbiBpZGVudGlmeWluZyB0aGUgY3VycmVudCBvcGVyYXRpbmcgc3lzdGVtLgorICAgVGhlIHJldHVybiB2YWx1ZSBpcyBhbiBvYmplY3Qgd2l0aCBmaXZlIGF0dHJpYnV0ZXM6CisKKyAgICogOmF0dHI6YHN5c25hbWVgIC0gb3BlcmF0aW5nIHN5c3RlbSBuYW1lCisgICAqIDphdHRyOmBub2RlbmFtZWAgLSBuYW1lIG9mIG1hY2hpbmUgb24gbmV0d29yayAoaW1wbGVtZW50YXRpb24tZGVmaW5lZCkKKyAgICogOmF0dHI6YHJlbGVhc2VgIC0gb3BlcmF0aW5nIHN5c3RlbSByZWxlYXNlCisgICAqIDphdHRyOmB2ZXJzaW9uYCAtIG9wZXJhdGluZyBzeXN0ZW0gdmVyc2lvbgorICAgKiA6YXR0cjpgbWFjaGluZWAgLSBoYXJkd2FyZSBpZGVudGlmaWVyCisKKyAgIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgdGhpcyBvYmplY3QgaXMgYWxzbyBpdGVyYWJsZSwgYmVoYXZpbmcKKyAgIGxpa2UgYSBmaXZlLXR1cGxlIGNvbnRhaW5pbmcgOmF0dHI6YHN5c25hbWVgLCA6YXR0cjpgbm9kZW5hbWVgLAorICAgOmF0dHI6YHJlbGVhc2VgLCA6YXR0cjpgdmVyc2lvbmAsIGFuZCA6YXR0cjpgbWFjaGluZWAKKyAgIGluIHRoYXQgb3JkZXIuCisKKyAgIFNvbWUgc3lzdGVtcyB0cnVuY2F0ZSA6YXR0cjpgbm9kZW5hbWVgIHRvIDggY2hhcmFjdGVycyBvciB0byB0aGUKICAgIGxlYWRpbmcgY29tcG9uZW50OyBhIGJldHRlciB3YXkgdG8gZ2V0IHRoZSBob3N0bmFtZSBpcwogICAgOmZ1bmM6YHNvY2tldC5nZXRob3N0bmFtZWAgIG9yIGV2ZW4KICAgIGBgc29ja2V0LmdldGhvc3RieWFkZHIoc29ja2V0LmdldGhvc3RuYW1lKCkpYGAuCiAKICAgIEF2YWlsYWJpbGl0eTogcmVjZW50IGZsYXZvcnMgb2YgVW5peC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFJldHVybiB0eXBlIGNoYW5nZWQgZnJvbSBhIHR1cGxlIHRvIGEgdHVwbGUtbGlrZSBvYmplY3QKKyAgICAgIHdpdGggbmFtZWQgYXR0cmlidXRlcy4KKwogCiAuLiBmdW5jdGlvbjo6IHVuc2V0ZW52KGtleSkKIApAQCAtNTQyLDE1ICs2MTcsMTYgQEAKIEZpbGUgT2JqZWN0IENyZWF0aW9uCiAtLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1UaGVzZSBmdW5jdGlvbnMgY3JlYXRlIG5ldyA6dGVybTpgZmlsZSBvYmplY3RzIDxmaWxlIG9iamVjdD5gLiAoU2VlIGFsc28gOmZ1bmM6YG9wZW5gLikKK1RoaXMgZnVuY3Rpb24gY3JlYXRlcyBuZXcgOnRlcm06YGZpbGUgb2JqZWN0cyA8ZmlsZSBvYmplY3Q+YC4gIChTZWUgYWxzbworOmZ1bmM6YH5vcy5vcGVuYCBmb3Igb3BlbmluZyBmaWxlIGRlc2NyaXB0b3JzLikKIAogCiAuLiBmdW5jdGlvbjo6IGZkb3BlbihmZCwgKmFyZ3MsICoqa3dhcmdzKQogCi0gICBSZXR1cm4gYW4gb3BlbiBmaWxlIG9iamVjdCBjb25uZWN0ZWQgdG8gdGhlIGZpbGUgZGVzY3JpcHRvciAqZmQqLgotICAgVGhpcyBpcyBhbiBhbGlhcyBvZiA6ZnVuYzpgb3BlbmAgYW5kIGFjY2VwdHMgdGhlIHNhbWUgYXJndW1lbnRzLgotICAgVGhlIG9ubHkgZGlmZmVyZW5jZSBpcyB0aGF0IHRoZSBmaXJzdCBhcmd1bWVudCBvZiA6ZnVuYzpgZmRvcGVuYAotICAgbXVzdCBhbHdheXMgYmUgYW4gaW50ZWdlci4KKyAgIFJldHVybiBhbiBvcGVuIGZpbGUgb2JqZWN0IGNvbm5lY3RlZCB0byB0aGUgZmlsZSBkZXNjcmlwdG9yICpmZCouICBUaGlzIGlzIGFuCisgICBhbGlhcyBvZiB0aGUgOmZ1bmM6YG9wZW5gIGJ1aWx0LWluIGZ1bmN0aW9uIGFuZCBhY2NlcHRzIHRoZSBzYW1lIGFyZ3VtZW50cy4KKyAgIFRoZSBvbmx5IGRpZmZlcmVuY2UgaXMgdGhhdCB0aGUgZmlyc3QgYXJndW1lbnQgb2YgOmZ1bmM6YGZkb3BlbmAgbXVzdCBhbHdheXMKKyAgIGJlIGFuIGludGVnZXIuCiAKIAogLi4gX29zLWZkLW9wczoKQEAgLTU3Miw2ICs2NDgsNyBAQAogZGVzY3JpcHRvciBkaXJlY3RseSB3aWxsIGJ5cGFzcyB0aGUgZmlsZSBvYmplY3QgbWV0aG9kcywgaWdub3JpbmcgYXNwZWN0cyBzdWNoCiBhcyBpbnRlcm5hbCBidWZmZXJpbmcgb2YgZGF0YS4KIAorCiAuLiBmdW5jdGlvbjo6IGNsb3NlKGZkKQogCiAgICBDbG9zZSBmaWxlIGRlc2NyaXB0b3IgKmZkKi4KQEAgLTU4OSw3ICs2NjYsNyBAQAogLi4gZnVuY3Rpb246OiBjbG9zZXJhbmdlKGZkX2xvdywgZmRfaGlnaCkKIAogICAgQ2xvc2UgYWxsIGZpbGUgZGVzY3JpcHRvcnMgZnJvbSAqZmRfbG93KiAoaW5jbHVzaXZlKSB0byAqZmRfaGlnaCogKGV4Y2x1c2l2ZSksCi0gICBpZ25vcmluZyBlcnJvcnMuIEVxdWl2YWxlbnQgdG86OgorICAgaWdub3JpbmcgZXJyb3JzLiBFcXVpdmFsZW50IHRvIChidXQgbXVjaCBmYXN0ZXIgdGhhbik6OgogCiAgICAgICBmb3IgZmQgaW4gcmFuZ2UoZmRfbG93LCBmZF9oaWdoKToKICAgICAgICAgICB0cnk6CkBAIC02MjIsOCArNjk5LDkgQEAKIAogLi4gZnVuY3Rpb246OiBmY2htb2QoZmQsIG1vZGUpCiAKLSAgIENoYW5nZSB0aGUgbW9kZSBvZiB0aGUgZmlsZSBnaXZlbiBieSAqZmQqIHRvIHRoZSBudW1lcmljICptb2RlKi4gIFNlZSB0aGUgZG9jcwotICAgZm9yIDpmdW5jOmBjaG1vZGAgZm9yIHBvc3NpYmxlIHZhbHVlcyBvZiAqbW9kZSouCisgICBDaGFuZ2UgdGhlIG1vZGUgb2YgdGhlIGZpbGUgZ2l2ZW4gYnkgKmZkKiB0byB0aGUgbnVtZXJpYyAqbW9kZSouICBTZWUgdGhlCisgICBkb2NzIGZvciA6ZnVuYzpgY2htb2RgIGZvciBwb3NzaWJsZSB2YWx1ZXMgb2YgKm1vZGUqLiAgQXMgb2YgUHl0aG9uIDMuMywgdGhpcworICAgaXMgZXF1aXZhbGVudCB0byBgYG9zLmNobW9kKGZkLCBtb2RlKWBgLgogCiAgICBBdmFpbGFiaWxpdHk6IFVuaXguCiAKQEAgLTYzMSw3ICs3MDksOSBAQAogLi4gZnVuY3Rpb246OiBmY2hvd24oZmQsIHVpZCwgZ2lkKQogCiAgICBDaGFuZ2UgdGhlIG93bmVyIGFuZCBncm91cCBpZCBvZiB0aGUgZmlsZSBnaXZlbiBieSAqZmQqIHRvIHRoZSBudW1lcmljICp1aWQqCi0gICBhbmQgKmdpZCouICBUbyBsZWF2ZSBvbmUgb2YgdGhlIGlkcyB1bmNoYW5nZWQsIHNldCBpdCB0byAtMS4KKyAgIGFuZCAqZ2lkKi4gIFRvIGxlYXZlIG9uZSBvZiB0aGUgaWRzIHVuY2hhbmdlZCwgc2V0IGl0IHRvIC0xLiAgU2VlCisgICA6ZnVuYzpgY2hvd25gLiAgQXMgb2YgUHl0aG9uIDMuMywgdGhpcyBpcyBlcXVpdmFsZW50IHRvIGBgb3MuY2hvd24oZmQsIHVpZCwKKyAgIGdpZClgYC4KIAogICAgQXZhaWxhYmlsaXR5OiBVbml4LgogCkBAIC02NjIsMjAgKzc0MiwyNCBAQAogICAgaW5jbHVkZWQgaW4gYGBwYXRoY29uZl9uYW1lc2BgLCBhbiA6ZXhjOmBPU0Vycm9yYCBpcyByYWlzZWQgd2l0aAogICAgOmNvbnN0OmBlcnJuby5FSU5WQUxgIGZvciB0aGUgZXJyb3IgbnVtYmVyLgogCisgICBBcyBvZiBQeXRob24gMy4zLCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gYGBvcy5wYXRoY29uZihmZCwgbmFtZSlgYC4KKwogICAgQXZhaWxhYmlsaXR5OiBVbml4LgogCiAKIC4uIGZ1bmN0aW9uOjogZnN0YXQoZmQpCiAKLSAgIFJldHVybiBzdGF0dXMgZm9yIGZpbGUgZGVzY3JpcHRvciAqZmQqLCBsaWtlIDpmdW5jOmB+b3Muc3RhdGAuCisgICBSZXR1cm4gc3RhdHVzIGZvciBmaWxlIGRlc2NyaXB0b3IgKmZkKiwgbGlrZSA6ZnVuYzpgfm9zLnN0YXRgLiAgQXMgb2YgUHl0aG9uCisgICAzLjMsIHRoaXMgaXMgZXF1aXZhbGVudCB0byBgYG9zLnN0YXQoZmQpYGAuCiAKICAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KIAogCiAuLiBmdW5jdGlvbjo6IGZzdGF0dmZzKGZkKQogCi0gICBSZXR1cm4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZpbGVzeXN0ZW0gY29udGFpbmluZyB0aGUgZmlsZSBhc3NvY2lhdGVkIHdpdGggZmlsZQotICAgZGVzY3JpcHRvciAqZmQqLCBsaWtlIDpmdW5jOmBzdGF0dmZzYC4KKyAgIFJldHVybiBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmlsZXN5c3RlbSBjb250YWluaW5nIHRoZSBmaWxlIGFzc29jaWF0ZWQgd2l0aAorICAgZmlsZSBkZXNjcmlwdG9yICpmZCosIGxpa2UgOmZ1bmM6YHN0YXR2ZnNgLiAgQXMgb2YgUHl0aG9uIDMuMywgdGhpcyBpcworICAgZXF1aXZhbGVudCB0byBgYG9zLnN0YXR2ZnMoZmQpYGAuCiAKICAgIEF2YWlsYWJpbGl0eTogVW5peC4KIApAQCAtNjg5LDEzICs3NzMsMTQgQEAKICAgIGBgZi5mbHVzaCgpYGAsIGFuZCB0aGVuIGRvIGBgb3MuZnN5bmMoZi5maWxlbm8oKSlgYCwgdG8gZW5zdXJlIHRoYXQgYWxsIGludGVybmFsCiAgICBidWZmZXJzIGFzc29jaWF0ZWQgd2l0aCAqZiogYXJlIHdyaXR0ZW4gdG8gZGlzay4KIAotICAgQXZhaWxhYmlsaXR5OiBVbml4LCBhbmQgV2luZG93cy4KKyAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KIAogCiAuLiBmdW5jdGlvbjo6IGZ0cnVuY2F0ZShmZCwgbGVuZ3RoKQogCi0gICBUcnVuY2F0ZSB0aGUgZmlsZSBjb3JyZXNwb25kaW5nIHRvIGZpbGUgZGVzY3JpcHRvciAqZmQqLCBzbyB0aGF0IGl0IGlzIGF0IG1vc3QKLSAgICpsZW5ndGgqIGJ5dGVzIGluIHNpemUuCisgICBUcnVuY2F0ZSB0aGUgZmlsZSBjb3JyZXNwb25kaW5nIHRvIGZpbGUgZGVzY3JpcHRvciAqZmQqLCBzbyB0aGF0IGl0IGlzIGF0CisgICBtb3N0ICpsZW5ndGgqIGJ5dGVzIGluIHNpemUuICBBcyBvZiBQeXRob24gMy4zLCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgIGBgb3MudHJ1bmNhdGUoZmQsIGxlbmd0aClgYC4KIAogICAgQXZhaWxhYmlsaXR5OiBVbml4LgogCkBAIC03MDgsNiArNzkzLDMxIEBACiAgICBBdmFpbGFiaWxpdHk6IFVuaXguCiAKIAorLi4gZnVuY3Rpb246OiBsb2NrZihmZCwgY21kLCBsZW4pCisKKyAgIEFwcGx5LCB0ZXN0IG9yIHJlbW92ZSBhIFBPU0lYIGxvY2sgb24gYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuCisgICAqZmQqIGlzIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yLgorICAgKmNtZCogc3BlY2lmaWVzIHRoZSBjb21tYW5kIHRvIHVzZSAtIG9uZSBvZiA6ZGF0YTpgRl9MT0NLYCwgOmRhdGE6YEZfVExPQ0tgLAorICAgOmRhdGE6YEZfVUxPQ0tgIG9yIDpkYXRhOmBGX1RFU1RgLgorICAgKmxlbiogc3BlY2lmaWVzIHRoZSBzZWN0aW9uIG9mIHRoZSBmaWxlIHRvIGxvY2suCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZGF0YTo6IEZfTE9DSworICAgICAgICAgIEZfVExPQ0sKKyAgICAgICAgICBGX1VMT0NLCisgICAgICAgICAgRl9URVNUCisKKyAgIEZsYWdzIHRoYXQgc3BlY2lmeSB3aGF0IGFjdGlvbiA6ZnVuYzpgbG9ja2ZgIHdpbGwgdGFrZS4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAuLiBmdW5jdGlvbjo6IGxzZWVrKGZkLCBwb3MsIGhvdykKIAogICAgU2V0IHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIGZpbGUgZGVzY3JpcHRvciAqZmQqIHRvIHBvc2l0aW9uICpwb3MqLCBtb2RpZmllZApAQCAtNzI0LDIxICs4MzQsMjkgQEAKICAgICAgICAgICBTRUVLX0VORAogCiAgICBQYXJhbWV0ZXJzIHRvIHRoZSA6ZnVuYzpgbHNlZWtgIGZ1bmN0aW9uLiBUaGVpciB2YWx1ZXMgYXJlIDAsIDEsIGFuZCAyLAotICAgcmVzcGVjdGl2ZWx5LiBBdmFpbGFiaWxpdHk6IFdpbmRvd3MsIFVuaXguCisgICByZXNwZWN0aXZlbHkuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBTb21lIG9wZXJhdGluZyBzeXN0ZW1zIGNvdWxkIHN1cHBvcnQgYWRkaXRpb25hbCB2YWx1ZXMsIGxpa2UKKyAgICAgIDpkYXRhOmBvcy5TRUVLX0hPTEVgIG9yIDpkYXRhOmBvcy5TRUVLX0RBVEFgLgogCiAKLS4uIGZ1bmN0aW9uOjogb3BlbihmaWxlLCBmbGFnc1ssIG1vZGVdKQorLi4gZnVuY3Rpb246OiBvcGVuKGZpbGUsIGZsYWdzLCBtb2RlPTBvNzc3LCAqLCBkaXJfZmQ9Tm9uZSkKIAogICAgT3BlbiB0aGUgZmlsZSAqZmlsZSogYW5kIHNldCB2YXJpb3VzIGZsYWdzIGFjY29yZGluZyB0byAqZmxhZ3MqIGFuZCBwb3NzaWJseQotICAgaXRzIG1vZGUgYWNjb3JkaW5nIHRvICptb2RlKi4gIFRoZSBkZWZhdWx0ICptb2RlKiBpcyBgYDBvNzc3YGAgKG9jdGFsKSwgYW5kCi0gICB0aGUgY3VycmVudCB1bWFzayB2YWx1ZSBpcyBmaXJzdCBtYXNrZWQgb3V0LiAgUmV0dXJuIHRoZSBmaWxlIGRlc2NyaXB0b3IgZm9yCi0gICB0aGUgbmV3bHkgb3BlbmVkIGZpbGUuCisgICBpdHMgbW9kZSBhY2NvcmRpbmcgdG8gKm1vZGUqLiAgV2hlbiBjb21wdXRpbmcgKm1vZGUqLCB0aGUgY3VycmVudCB1bWFzayB2YWx1ZQorICAgaXMgZmlyc3QgbWFza2VkIG91dC4gIFJldHVybiB0aGUgZmlsZSBkZXNjcmlwdG9yIGZvciB0aGUgbmV3bHkgb3BlbmVkIGZpbGUuCiAKICAgIEZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSBmbGFnIGFuZCBtb2RlIHZhbHVlcywgc2VlIHRoZSBDIHJ1bi10aW1lIGRvY3VtZW50YXRpb247CiAgICBmbGFnIGNvbnN0YW50cyAobGlrZSA6Y29uc3Q6YE9fUkRPTkxZYCBhbmQgOmNvbnN0OmBPX1dST05MWWApIGFyZSBkZWZpbmVkIGluCiAgICB0aGlzIG1vZHVsZSB0b28gKHNlZSA6cmVmOmBvcGVuLWNvbnN0YW50c2ApLiAgSW4gcGFydGljdWxhciwgb24gV2luZG93cyBhZGRpbmcKICAgIDpjb25zdDpgT19CSU5BUllgIGlzIG5lZWRlZCB0byBvcGVuIGZpbGVzIGluIGJpbmFyeSBtb2RlLgogCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IDpyZWY6YHBhdGhzIHJlbGF0aXZlIHRvIGRpcmVjdG9yeSBkZXNjcmlwdG9ycworICAgPGRpcl9mZD5gLgorCiAgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCiAKICAgIC4uIG5vdGU6OgpAQCAtNzQ4LDYgKzg2Niw5IEBACiAgICAgICA6bWV0aDpgfmZpbGUucmVhZGAgYW5kIDptZXRoOmB+ZmlsZS53cml0ZWAgbWV0aG9kcyAoYW5kIG1hbnkgbW9yZSkuICBUbwogICAgICAgd3JhcCBhIGZpbGUgZGVzY3JpcHRvciBpbiBhIGZpbGUgb2JqZWN0LCB1c2UgOmZ1bmM6YGZkb3BlbmAuCiAKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgVGhlICpkaXJfZmQqIGFyZ3VtZW50LgorCiAKIC4uIGZ1bmN0aW9uOjogb3BlbnB0eSgpCiAKQEAgLTc2OCw2ICs4ODksNzkgQEAKICAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KIAogCisuLiBmdW5jdGlvbjo6IHBpcGUyKGZsYWdzKQorCisgICBDcmVhdGUgYSBwaXBlIHdpdGggKmZsYWdzKiBzZXQgYXRvbWljYWxseS4KKyAgICpmbGFncyogY2FuIGJlIGNvbnN0cnVjdGVkIGJ5IE9SaW5nIHRvZ2V0aGVyIG9uZSBvciBtb3JlIG9mIHRoZXNlIHZhbHVlczoKKyAgIDpkYXRhOmBPX05PTkJMT0NLYCwgOmRhdGE6YE9fQ0xPRVhFQ2AuCisgICBSZXR1cm4gYSBwYWlyIG9mIGZpbGUgZGVzY3JpcHRvcnMgYGAociwgdylgYCB1c2FibGUgZm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcsCisgICByZXNwZWN0aXZlbHkuCisKKyAgIEF2YWlsYWJpbGl0eTogc29tZSBmbGF2b3JzIG9mIFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogcG9zaXhfZmFsbG9jYXRlKGZkLCBvZmZzZXQsIGxlbikKKworICAgRW5zdXJlcyB0aGF0IGVub3VnaCBkaXNrIHNwYWNlIGlzIGFsbG9jYXRlZCBmb3IgdGhlIGZpbGUgc3BlY2lmaWVkIGJ5ICpmZCoKKyAgIHN0YXJ0aW5nIGZyb20gKm9mZnNldCogYW5kIGNvbnRpbnVpbmcgZm9yICpsZW4qIGJ5dGVzLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogcG9zaXhfZmFkdmlzZShmZCwgb2Zmc2V0LCBsZW4sIGFkdmljZSkKKworICAgQW5ub3VuY2VzIGFuIGludGVudGlvbiB0byBhY2Nlc3MgZGF0YSBpbiBhIHNwZWNpZmljIHBhdHRlcm4gdGh1cyBhbGxvd2luZworICAgdGhlIGtlcm5lbCB0byBtYWtlIG9wdGltaXphdGlvbnMuCisgICBUaGUgYWR2aWNlIGFwcGxpZXMgdG8gdGhlIHJlZ2lvbiBvZiB0aGUgZmlsZSBzcGVjaWZpZWQgYnkgKmZkKiBzdGFydGluZyBhdAorICAgKm9mZnNldCogYW5kIGNvbnRpbnVpbmcgZm9yICpsZW4qIGJ5dGVzLgorICAgKmFkdmljZSogaXMgb25lIG9mIDpkYXRhOmBQT1NJWF9GQURWX05PUk1BTGAsIDpkYXRhOmBQT1NJWF9GQURWX1NFUVVFTlRJQUxgLAorICAgOmRhdGE6YFBPU0lYX0ZBRFZfUkFORE9NYCwgOmRhdGE6YFBPU0lYX0ZBRFZfTk9SRVVTRWAsCisgICA6ZGF0YTpgUE9TSVhfRkFEVl9XSUxMTkVFRGAgb3IgOmRhdGE6YFBPU0lYX0ZBRFZfRE9OVE5FRURgLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGRhdGE6OiBQT1NJWF9GQURWX05PUk1BTAorICAgICAgICAgIFBPU0lYX0ZBRFZfU0VRVUVOVElBTAorICAgICAgICAgIFBPU0lYX0ZBRFZfUkFORE9NCisgICAgICAgICAgUE9TSVhfRkFEVl9OT1JFVVNFCisgICAgICAgICAgUE9TSVhfRkFEVl9XSUxMTkVFRAorICAgICAgICAgIFBPU0lYX0ZBRFZfRE9OVE5FRUQKKworICAgRmxhZ3MgdGhhdCBjYW4gYmUgdXNlZCBpbiAqYWR2aWNlKiBpbiA6ZnVuYzpgcG9zaXhfZmFkdmlzZWAgdGhhdCBzcGVjaWZ5CisgICB0aGUgYWNjZXNzIHBhdHRlcm4gdGhhdCBpcyBsaWtlbHkgdG8gYmUgdXNlZC4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBmdW5jdGlvbjo6IHByZWFkKGZkLCBidWZmZXJzaXplLCBvZmZzZXQpCisKKyAgIFJlYWQgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciwgKmZkKiwgYXQgYSBwb3NpdGlvbiBvZiAqb2Zmc2V0Ki4gSXQgd2lsbCByZWFkIHVwCisgICB0byAqYnVmZmVyc2l6ZSogbnVtYmVyIG9mIGJ5dGVzLiBUaGUgZmlsZSBvZmZzZXQgcmVtYWlucyB1bmNoYW5nZWQuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZnVuY3Rpb246OiBwd3JpdGUoZmQsIHN0cmluZywgb2Zmc2V0KQorCisgICBXcml0ZSAqc3RyaW5nKiB0byBhIGZpbGUgZGVzY3JpcHRvciwgKmZkKiwgZnJvbSAqb2Zmc2V0KiwgbGVhdmluZyB0aGUgZmlsZQorICAgb2Zmc2V0IHVuY2hhbmdlZC4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAuLiBmdW5jdGlvbjo6IHJlYWQoZmQsIG4pCiAKICAgIFJlYWQgYXQgbW9zdCAqbiogYnl0ZXMgZnJvbSBmaWxlIGRlc2NyaXB0b3IgKmZkKi4gUmV0dXJuIGEgYnl0ZXN0cmluZyBjb250YWluaW5nIHRoZQpAQCAtNzc5LDEwICs5NzMsNjIgQEAKICAgIC4uIG5vdGU6OgogCiAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIGludGVuZGVkIGZvciBsb3ctbGV2ZWwgSS9PIGFuZCBtdXN0IGJlIGFwcGxpZWQgdG8gYSBmaWxlCi0gICAgICBkZXNjcmlwdG9yIGFzIHJldHVybmVkIGJ5IDpmdW5jOmBvcy5vcGVuYCBvciA6ZnVuYzpgcGlwZWAuICBUbyByZWFkIGEgImZpbGUgb2JqZWN0IgotICAgICAgcmV0dXJuZWQgYnkgdGhlIGJ1aWx0LWluIGZ1bmN0aW9uIDpmdW5jOmBvcGVuYCBvciBieSA6ZnVuYzpgcG9wZW5gIG9yCi0gICAgICA6ZnVuYzpgZmRvcGVuYCwgb3IgOmRhdGE6YHN5cy5zdGRpbmAsIHVzZSBpdHMgOm1ldGg6YH5maWxlLnJlYWRgIG9yCi0gICAgICA6bWV0aDpgfmZpbGUucmVhZGxpbmVgIG1ldGhvZHMuCisgICAgICBkZXNjcmlwdG9yIGFzIHJldHVybmVkIGJ5IDpmdW5jOmBvcy5vcGVuYCBvciA6ZnVuYzpgcGlwZWAuICBUbyByZWFkIGEKKyAgICAgICJmaWxlIG9iamVjdCIgcmV0dXJuZWQgYnkgdGhlIGJ1aWx0LWluIGZ1bmN0aW9uIDpmdW5jOmBvcGVuYCBvciBieQorICAgICAgOmZ1bmM6YHBvcGVuYCBvciA6ZnVuYzpgZmRvcGVuYCwgb3IgOmRhdGE6YHN5cy5zdGRpbmAsIHVzZSBpdHMKKyAgICAgIDptZXRoOmB+ZmlsZS5yZWFkYCBvciA6bWV0aDpgfmZpbGUucmVhZGxpbmVgIG1ldGhvZHMuCisKKworLi4gZnVuY3Rpb246OiBzZW5kZmlsZShvdXQsIGluLCBvZmZzZXQsIG5ieXRlcykKKyAgICAgICAgICAgICAgc2VuZGZpbGUob3V0LCBpbiwgb2Zmc2V0LCBuYnl0ZXMsIGhlYWRlcnM9Tm9uZSwgdHJhaWxlcnM9Tm9uZSwgZmxhZ3M9MCkKKworICAgQ29weSAqbmJ5dGVzKiBieXRlcyBmcm9tIGZpbGUgZGVzY3JpcHRvciAqaW4qIHRvIGZpbGUgZGVzY3JpcHRvciAqb3V0KgorICAgc3RhcnRpbmcgYXQgKm9mZnNldCouCisgICBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyBzZW50LiBXaGVuIEVPRiBpcyByZWFjaGVkIHJldHVybiAwLgorCisgICBUaGUgZmlyc3QgZnVuY3Rpb24gbm90YXRpb24gaXMgc3VwcG9ydGVkIGJ5IGFsbCBwbGF0Zm9ybXMgdGhhdCBkZWZpbmUKKyAgIDpmdW5jOmBzZW5kZmlsZWAuCisKKyAgIE9uIExpbnV4LCBpZiAqb2Zmc2V0KiBpcyBnaXZlbiBhcyBgYE5vbmVgYCwgdGhlIGJ5dGVzIGFyZSByZWFkIGZyb20gdGhlCisgICBjdXJyZW50IHBvc2l0aW9uIG9mICppbiogYW5kIHRoZSBwb3NpdGlvbiBvZiAqaW4qIGlzIHVwZGF0ZWQuCisKKyAgIFRoZSBzZWNvbmQgY2FzZSBtYXkgYmUgdXNlZCBvbiBNYWMgT1MgWCBhbmQgRnJlZUJTRCB3aGVyZSAqaGVhZGVycyogYW5kCisgICAqdHJhaWxlcnMqIGFyZSBhcmJpdHJhcnkgc2VxdWVuY2VzIG9mIGJ1ZmZlcnMgdGhhdCBhcmUgd3JpdHRlbiBiZWZvcmUgYW5kCisgICBhZnRlciB0aGUgZGF0YSBmcm9tICppbiogaXMgd3JpdHRlbi4gSXQgcmV0dXJucyB0aGUgc2FtZSBhcyB0aGUgZmlyc3QgY2FzZS4KKworICAgT24gTWFjIE9TIFggYW5kIEZyZWVCU0QsIGEgdmFsdWUgb2YgMCBmb3IgKm5ieXRlcyogc3BlY2lmaWVzIHRvIHNlbmQgdW50aWwKKyAgIHRoZSBlbmQgb2YgKmluKiBpcyByZWFjaGVkLgorCisgICBPbiBTb2xhcmlzLCAqb3V0KiBtYXkgYmUgdGhlIGZpbGUgZGVzY3JpcHRvciBvZiBhIHJlZ3VsYXIgZmlsZSBvciB0aGUgZmlsZQorICAgZGVzY3JpcHRvciBvZiBhIHNvY2tldC4gT24gYWxsIG90aGVyIHBsYXRmb3JtcywgKm91dCogbXVzdCBiZSB0aGUgZmlsZQorICAgZGVzY3JpcHRvciBvZiBhbiBvcGVuIHNvY2tldC4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBkYXRhOjogU0ZfTk9ESVNLSU8KKyAgICAgICAgICBTRl9NTk9XQUlUCisgICAgICAgICAgU0ZfU1lOQworCisgICBQYXJhbWV0ZXJzIHRvIHRoZSA6ZnVuYzpgc2VuZGZpbGVgIGZ1bmN0aW9uLCBpZiB0aGUgaW1wbGVtZW50YXRpb24gc3VwcG9ydHMKKyAgIHRoZW0uCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZnVuY3Rpb246OiByZWFkdihmZCwgYnVmZmVycykKKworICAgUmVhZCBmcm9tIGEgZmlsZSBkZXNjcmlwdG9yIGludG8gYSBudW1iZXIgb2Ygd3JpdGFibGUgYnVmZmVycy4gKmJ1ZmZlcnMqIGlzCisgICBhbiBhcmJpdHJhcnkgc2VxdWVuY2Ugb2Ygd3JpdGFibGUgYnVmZmVycy4gUmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzCisgICByZWFkLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiAKIC4uIGZ1bmN0aW9uOjogdGNnZXRwZ3JwKGZkKQpAQCAtODI2LDYgKzEwNzIsMTcgQEAKICAgICAgIDptZXRoOmB+ZmlsZS53cml0ZWAgbWV0aG9kLgogCiAKKy4uIGZ1bmN0aW9uOjogd3JpdGV2KGZkLCBidWZmZXJzKQorCisgICBXcml0ZSB0aGUgY29udGVudHMgb2YgKmJ1ZmZlcnMqIHRvIGZpbGUgZGVzY3JpcHRvciAqZmQqLCB3aGVyZSAqYnVmZmVycyoKKyAgIGlzIGFuIGFyYml0cmFyeSBzZXF1ZW5jZSBvZiBidWZmZXJzLgorICAgUmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIHdyaXR0ZW4uCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gX29wZW4tY29uc3RhbnRzOgogCiBgYG9wZW4oKWBgIGZsYWcgY29uc3RhbnRzCkBAIC04NTcsOSArMTExNCwxMiBAQAogICAgICAgICAgIE9fTk9DVFRZCiAgICAgICAgICAgT19TSExPQ0sKICAgICAgICAgICBPX0VYTE9DSworICAgICAgICAgIE9fQ0xPRVhFQwogCiAgICBUaGVzZSBjb25zdGFudHMgYXJlIG9ubHkgYXZhaWxhYmxlIG9uIFVuaXguCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGQgOmRhdGE6YE9fQ0xPRVhFQ2AgY29uc3RhbnQuCiAKIC4uIGRhdGE6OiBPX0JJTkFSWQogICAgICAgICAgIE9fTk9JTkhFUklUCkBAIC04ODIsMTIgKzExNDIsMTA2IEBACiAgICB0aGUgQyBsaWJyYXJ5LgogCiAKKy4uIGRhdGE6OiBSVExEX0xBWlkKKyAgICAgICAgICBSVExEX05PVworICAgICAgICAgIFJUTERfR0xPQkFMCisgICAgICAgICAgUlRMRF9MT0NBTAorICAgICAgICAgIFJUTERfTk9ERUxFVEUKKyAgICAgICAgICBSVExEX05PTE9BRAorICAgICAgICAgIFJUTERfREVFUEJJTkQKKworICAgU2VlIHRoZSBVbml4IG1hbnVhbCBwYWdlIDptYW5wYWdlOmBkbG9wZW4oMylgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBfdGVybWluYWwtc2l6ZToKKworUXVlcnlpbmcgdGhlIHNpemUgb2YgYSB0ZXJtaW5hbAorfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworLi4gZnVuY3Rpb246OiBnZXRfdGVybWluYWxfc2l6ZShmZD1TVERPVVRfRklMRU5PKQorCisgICBSZXR1cm4gdGhlIHNpemUgb2YgdGhlIHRlcm1pbmFsIHdpbmRvdyBhcyBgYChjb2x1bW5zLCBsaW5lcylgYCwKKyAgIHR1cGxlIG9mIHR5cGUgOmNsYXNzOmB0ZXJtaW5hbF9zaXplYC4KKworICAgVGhlIG9wdGlvbmFsIGFyZ3VtZW50IGBgZmRgYCAoZGVmYXVsdCBgYFNURE9VVF9GSUxFTk9gYCwgb3Igc3RhbmRhcmQKKyAgIG91dHB1dCkgc3BlY2lmaWVzIHdoaWNoIGZpbGUgZGVzY3JpcHRvciBzaG91bGQgYmUgcXVlcmllZC4KKworICAgSWYgdGhlIGZpbGUgZGVzY3JpcHRvciBpcyBub3QgY29ubmVjdGVkIHRvIGEgdGVybWluYWwsIGFuIDpleGM6YE9TRXJyb3JgCisgICBpcyB0aHJvd24uCisKKyAgIDpmdW5jOmBzaHV0aWwuZ2V0X3Rlcm1pbmFsX3NpemVgIGlzIHRoZSBoaWdoLWxldmVsIGZ1bmN0aW9uIHdoaWNoCisgICBzaG91bGQgbm9ybWFsbHkgYmUgdXNlZCwgYGBvcy5nZXRfdGVybWluYWxfc2l6ZWBgIGlzIHRoZSBsb3ctbGV2ZWwKKyAgIGltcGxlbWVudGF0aW9uLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCisKKy4uIGNsYXNzOjogdGVybWluYWxfc2l6ZQorCisgICBBIHN1YmNsYXNzIG9mIHR1cGxlLCBob2xkaW5nIGBgKGNvbHVtbnMsIGxpbmVzKWBgIG9mIHRoZSB0ZXJtaW5hbCB3aW5kb3cgc2l6ZS4KKworICAgLi4gYXR0cmlidXRlOjogY29sdW1ucworCisgICAgICBXaWR0aCBvZiB0aGUgdGVybWluYWwgd2luZG93IGluIGNoYXJhY3RlcnMuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IGxpbmVzCisKKyAgICAgIEhlaWdodCBvZiB0aGUgdGVybWluYWwgd2luZG93IGluIGNoYXJhY3RlcnMuCisKKwogLi4gX29zLWZpbGUtZGlyOgogCiBGaWxlcyBhbmQgRGlyZWN0b3JpZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0uLiBmdW5jdGlvbjo6IGFjY2VzcyhwYXRoLCBtb2RlKQorT24gc29tZSBVbml4IHBsYXRmb3JtcywgbWFueSBvZiB0aGVzZSBmdW5jdGlvbnMgc3VwcG9ydCBvbmUgb3IgbW9yZSBvZiB0aGVzZQorZmVhdHVyZXM6CisKKy4uIF9wYXRoX2ZkOgorCisqICoqc3BlY2lmeWluZyBhIGZpbGUgZGVzY3JpcHRvcjoqKgorICBGb3Igc29tZSBmdW5jdGlvbnMsIHRoZSAqcGF0aCogYXJndW1lbnQgY2FuIGJlIG5vdCBvbmx5IGEgc3RyaW5nIGdpdmluZyBhIHBhdGgKKyAgbmFtZSwgYnV0IGFsc28gYSBmaWxlIGRlc2NyaXB0b3IuICBUaGUgZnVuY3Rpb24gd2lsbCB0aGVuIG9wZXJhdGUgb24gdGhlIGZpbGUKKyAgcmVmZXJyZWQgdG8gYnkgdGhlIGRlc2NyaXB0b3IuICAoRm9yIFBPU0lYIHN5c3RlbXMsIFB5dGhvbiB3aWxsIGNhbGwgdGhlCisgIGBgZi4uLmBgIHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uLikKKworICBZb3UgY2FuIGNoZWNrIHdoZXRoZXIgb3Igbm90ICpwYXRoKiBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgZmlsZSBkZXNjcmlwdG9yIG9uCisgIHlvdXIgcGxhdGZvcm0gdXNpbmcgOmRhdGE6YG9zLnN1cHBvcnRzX2ZkYC4gIElmIGl0IGlzIHVuYXZhaWxhYmxlLCB1c2luZyBpdAorICB3aWxsIHJhaXNlIGEgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAuCisKKyAgSWYgdGhlIGZ1bmN0aW9uIGFsc28gc3VwcG9ydHMgKmRpcl9mZCogb3IgKmZvbGxvd19zeW1saW5rcyogYXJndW1lbnRzLCBpdCBpcworICBhbiBlcnJvciB0byBzcGVjaWZ5IG9uZSBvZiB0aG9zZSB3aGVuIHN1cHBseWluZyAqcGF0aCogYXMgYSBmaWxlIGRlc2NyaXB0b3IuCisKKy4uIF9kaXJfZmQ6CisKKyogKipwYXRocyByZWxhdGl2ZSB0byBkaXJlY3RvcnkgZGVzY3JpcHRvcnM6KiogSWYgKmRpcl9mZCogaXMgbm90IGBgTm9uZWBgLCBpdAorICBzaG91bGQgYmUgYSBmaWxlIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIGEgZGlyZWN0b3J5LCBhbmQgdGhlIHBhdGggdG8gb3BlcmF0ZQorICBvbiBzaG91bGQgYmUgcmVsYXRpdmU7IHBhdGggd2lsbCB0aGVuIGJlIHJlbGF0aXZlIHRvIHRoYXQgZGlyZWN0b3J5LiAgSWYgdGhlCisgIHBhdGggaXMgYWJzb2x1dGUsICpkaXJfZmQqIGlzIGlnbm9yZWQuICAoRm9yIFBPU0lYIHN5c3RlbXMsIFB5dGhvbiB3aWxsIGNhbGwKKyAgdGhlIGBgLi4uYXRgYCBvciBgYGYuLi5hdGBgIHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uLikKKworICBZb3UgY2FuIGNoZWNrIHdoZXRoZXIgb3Igbm90ICpkaXJfZmQqIGlzIHN1cHBvcnRlZCBvbiB5b3VyIHBsYXRmb3JtIHVzaW5nCisgIDpkYXRhOmBvcy5zdXBwb3J0c19kaXJfZmRgLiAgSWYgaXQgaXMgdW5hdmFpbGFibGUsIHVzaW5nIGl0IHdpbGwgcmFpc2UgYQorICA6ZXhjOmBOb3RJbXBsZW1lbnRlZEVycm9yYC4KKworLi4gX2ZvbGxvd19zeW1saW5rczoKKworKiAqKm5vdCBmb2xsb3dpbmcgc3ltbGlua3M6KiogSWYgKmZvbGxvd19zeW1saW5rcyogaXMKKyAgYGBGYWxzZWBgLCBhbmQgdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUgcGF0aCB0byBvcGVyYXRlIG9uIGlzIGEgc3ltYm9saWMgbGluaywKKyAgdGhlIGZ1bmN0aW9uIHdpbGwgb3BlcmF0ZSBvbiB0aGUgc3ltYm9saWMgbGluayBpdHNlbGYgaW5zdGVhZCBvZiB0aGUgZmlsZSB0aGUKKyAgbGluayBwb2ludHMgdG8uICAoRm9yIFBPU0lYIHN5c3RlbXMsIFB5dGhvbiB3aWxsIGNhbGwgdGhlIGBgbC4uLmBgIHZlcnNpb24gb2YKKyAgdGhlIGZ1bmN0aW9uLikKKworICBZb3UgY2FuIGNoZWNrIHdoZXRoZXIgb3Igbm90ICpmb2xsb3dfc3ltbGlua3MqIGlzIHN1cHBvcnRlZCBvbiB5b3VyIHBsYXRmb3JtCisgIHVzaW5nIDpkYXRhOmBvcy5zdXBwb3J0c19mb2xsb3dfc3ltbGlua3NgLiAgSWYgaXQgaXMgdW5hdmFpbGFibGUsIHVzaW5nIGl0CisgIHdpbGwgcmFpc2UgYSA6ZXhjOmBOb3RJbXBsZW1lbnRlZEVycm9yYC4KKworCisKKy4uIGZ1bmN0aW9uOjogYWNjZXNzKHBhdGgsIG1vZGUsICosIGRpcl9mZD1Ob25lLCBlZmZlY3RpdmVfaWRzPUZhbHNlLCBmb2xsb3dfc3ltbGlua3M9VHJ1ZSkKIAogICAgVXNlIHRoZSByZWFsIHVpZC9naWQgdG8gdGVzdCBmb3IgYWNjZXNzIHRvICpwYXRoKi4gIE5vdGUgdGhhdCBtb3N0IG9wZXJhdGlvbnMKICAgIHdpbGwgdXNlIHRoZSBlZmZlY3RpdmUgdWlkL2dpZCwgdGhlcmVmb3JlIHRoaXMgcm91dGluZSBjYW4gYmUgdXNlZCBpbiBhCkBAIC04OTgsNiArMTI1MiwxNSBAQAogICAgOmNvbnN0OmBGYWxzZWAgaWYgbm90LiBTZWUgdGhlIFVuaXggbWFuIHBhZ2UgOm1hbnBhZ2U6YGFjY2VzcygyKWAgZm9yIG1vcmUKICAgIGluZm9ybWF0aW9uLgogCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IHNwZWNpZnlpbmcgOnJlZjpgcGF0aHMgcmVsYXRpdmUgdG8gZGlyZWN0b3J5CisgICBkZXNjcmlwdG9ycyA8ZGlyX2ZkPmAgYW5kIDpyZWY6YG5vdCBmb2xsb3dpbmcgc3ltbGlua3MgPGZvbGxvd19zeW1saW5rcz5gLgorCisgICBJZiAqZWZmZWN0aXZlX2lkcyogaXMgYGBUcnVlYGAsIDpmdW5jOmBhY2Nlc3NgIHdpbGwgcGVyZm9ybSBpdHMgYWNjZXNzCisgICBjaGVja3MgdXNpbmcgdGhlIGVmZmVjdGl2ZSB1aWQvZ2lkIGluc3RlYWQgb2YgdGhlIHJlYWwgdWlkL2dpZC4KKyAgICplZmZlY3RpdmVfaWRzKiBtYXkgbm90IGJlIHN1cHBvcnRlZCBvbiB5b3VyIHBsYXRmb3JtOyB5b3UgY2FuIGNoZWNrIHdoZXRoZXIKKyAgIG9yIG5vdCBpdCBpcyBhdmFpbGFibGUgdXNpbmcgOmRhdGE6YG9zLnN1cHBvcnRzX2VmZmVjdGl2ZV9pZHNgLiAgSWYgaXQgaXMKKyAgIHVuYXZhaWxhYmxlLCB1c2luZyBpdCB3aWxsIHJhaXNlIGEgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAuCisKICAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KIAogICAgLi4gbm90ZTo6CkBAIC05MTcsMTEgKzEyODAsOCBAQAogCiAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgZnAgPSBvcGVuKCJteWZpbGUiKQotICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKLSAgICAgICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVBQ0NFUzoKLSAgICAgICAgICAgICAgICAgcmV0dXJuICJzb21lIGRlZmF1bHQgZGF0YSIKLSAgICAgICAgICAgICAjIE5vdCBhIHBlcm1pc3Npb24gZXJyb3IuCi0gICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgIGV4Y2VwdCBQZXJtaXNzaW9uRXJyb3I6CisgICAgICAgICAgICAgcmV0dXJuICJzb21lIGRlZmF1bHQgZGF0YSIKICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgd2l0aCBmcDoKICAgICAgICAgICAgICAgICAgcmV0dXJuIGZwLnJlYWQoKQpAQCAtOTMyLDI5ICsxMjkyLDE4IEBACiAgICAgICBzdWNjZWVkLCBwYXJ0aWN1bGFybHkgZm9yIG9wZXJhdGlvbnMgb24gbmV0d29yayBmaWxlc3lzdGVtcyB3aGljaCBtYXkgaGF2ZQogICAgICAgcGVybWlzc2lvbnMgc2VtYW50aWNzIGJleW9uZCB0aGUgdXN1YWwgUE9TSVggcGVybWlzc2lvbi1iaXQgbW9kZWwuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCB0aGUgKmRpcl9mZCosICplZmZlY3RpdmVfaWRzKiwgYW5kICpmb2xsb3dfc3ltbGlua3MqIHBhcmFtZXRlcnMuCisKIAogLi4gZGF0YTo6IEZfT0sKKyAgICAgICAgICBSX09LCisgICAgICAgICAgV19PSworICAgICAgICAgIFhfT0sKIAotICAgVmFsdWUgdG8gcGFzcyBhcyB0aGUgKm1vZGUqIHBhcmFtZXRlciBvZiA6ZnVuYzpgYWNjZXNzYCB0byB0ZXN0IHRoZSBleGlzdGVuY2Ugb2YKLSAgICpwYXRoKi4KLQotCi0uLiBkYXRhOjogUl9PSwotCi0gICBWYWx1ZSB0byBpbmNsdWRlIGluIHRoZSAqbW9kZSogcGFyYW1ldGVyIG9mIDpmdW5jOmBhY2Nlc3NgIHRvIHRlc3QgdGhlCi0gICByZWFkYWJpbGl0eSBvZiAqcGF0aCouCi0KLQotLi4gZGF0YTo6IFdfT0sKLQotICAgVmFsdWUgdG8gaW5jbHVkZSBpbiB0aGUgKm1vZGUqIHBhcmFtZXRlciBvZiA6ZnVuYzpgYWNjZXNzYCB0byB0ZXN0IHRoZQotICAgd3JpdGFiaWxpdHkgb2YgKnBhdGgqLgotCi0KLS4uIGRhdGE6OiBYX09LCi0KLSAgIFZhbHVlIHRvIGluY2x1ZGUgaW4gdGhlICptb2RlKiBwYXJhbWV0ZXIgb2YgOmZ1bmM6YGFjY2Vzc2AgdG8gZGV0ZXJtaW5lIGlmCi0gICAqcGF0aCogY2FuIGJlIGV4ZWN1dGVkLgorICAgVmFsdWVzIHRvIHBhc3MgYXMgdGhlICptb2RlKiBwYXJhbWV0ZXIgb2YgOmZ1bmM6YGFjY2Vzc2AgdG8gdGVzdCB0aGUKKyAgIGV4aXN0ZW5jZSwgcmVhZGFiaWxpdHksIHdyaXRhYmlsaXR5IGFuZCBleGVjdXRhYmlsaXR5IG9mICpwYXRoKiwKKyAgIHJlc3BlY3RpdmVseS4KIAogCiAuLiBmdW5jdGlvbjo6IGNoZGlyKHBhdGgpCkBAIC05NjMsMzMgKzEzMTIsMTcgQEAKIAogICAgQ2hhbmdlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvICpwYXRoKi4KIAotICAgQXZhaWxhYmlsaXR5OiBVbml4LCBXaW5kb3dzLgotCi0KLS4uIGZ1bmN0aW9uOjogZmNoZGlyKGZkKQotCi0gICBDaGFuZ2UgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgdG8gdGhlIGRpcmVjdG9yeSByZXByZXNlbnRlZCBieSB0aGUgZmlsZQotICAgZGVzY3JpcHRvciAqZmQqLiAgVGhlIGRlc2NyaXB0b3IgbXVzdCByZWZlciB0byBhbiBvcGVuZWQgZGlyZWN0b3J5LCBub3QgYW4gb3BlbgotICAgZmlsZS4KLQotICAgQXZhaWxhYmlsaXR5OiBVbml4LgotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0Y3dkKCkKLQotICAgUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4KKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHN1cHBvcnQgOnJlZjpgc3BlY2lmeWluZyBhIGZpbGUgZGVzY3JpcHRvciA8cGF0aF9mZD5gLiAgVGhlCisgICBkZXNjcmlwdG9yIG11c3QgcmVmZXIgdG8gYW4gb3BlbmVkIGRpcmVjdG9yeSwgbm90IGFuIG9wZW4gZmlsZS4KIAogICAgQXZhaWxhYmlsaXR5OiBVbml4LCBXaW5kb3dzLgogCi0KLS4uIGZ1bmN0aW9uOjogZ2V0Y3dkYigpCi0KLSAgIFJldHVybiBhIGJ5dGVzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LgotCi0gICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgKnBhdGgqIGFzIGEgZmlsZSBkZXNjcmlwdG9yCisgICAgICBvbiBzb21lIHBsYXRmb3Jtcy4KIAogCi0uLiBmdW5jdGlvbjo6IGNoZmxhZ3MocGF0aCwgZmxhZ3MpCisuLiBmdW5jdGlvbjo6IGNoZmxhZ3MocGF0aCwgZmxhZ3MsICosIGZvbGxvd19zeW1saW5rcz1UcnVlKQogCiAgICBTZXQgdGhlIGZsYWdzIG9mICpwYXRoKiB0byB0aGUgbnVtZXJpYyAqZmxhZ3MqLiAqZmxhZ3MqIG1heSB0YWtlIGEgY29tYmluYXRpb24KICAgIChiaXR3aXNlIE9SKSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlcyAoYXMgZGVmaW5lZCBpbiB0aGUgOm1vZDpgc3RhdGAgbW9kdWxlKToKQEAgLTEwMDcsMTYgKzEzNDAsMTUgQEAKICAgICogOmRhdGE6YHN0YXQuU0ZfTk9VTkxJTktgCiAgICAqIDpkYXRhOmBzdGF0LlNGX1NOQVBTSE9UYAogCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IDpyZWY6YG5vdCBmb2xsb3dpbmcgc3ltbGlua3MgPGZvbGxvd19zeW1saW5rcz5gLgorCiAgICBBdmFpbGFiaWxpdHk6IFVuaXguCiAKLQotLi4gZnVuY3Rpb246OiBjaHJvb3QocGF0aCkKLQotICAgQ2hhbmdlIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBwcm9jZXNzIHRvICpwYXRoKi4gQXZhaWxhYmlsaXR5OgotICAgVW5peC4KKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgVGhlICpmb2xsb3dfc3ltbGlua3MqIGFyZ3VtZW50LgogCiAKLS4uIGZ1bmN0aW9uOjogY2htb2QocGF0aCwgbW9kZSkKKy4uIGZ1bmN0aW9uOjogY2htb2QocGF0aCwgbW9kZSwgKiwgZGlyX2ZkPU5vbmUsIGZvbGxvd19zeW1saW5rcz1UcnVlKQogCiAgICBDaGFuZ2UgdGhlIG1vZGUgb2YgKnBhdGgqIHRvIHRoZSBudW1lcmljICptb2RlKi4gKm1vZGUqIG1heSB0YWtlIG9uZSBvZiB0aGUKICAgIGZvbGxvd2luZyB2YWx1ZXMgKGFzIGRlZmluZWQgaW4gdGhlIDptb2Q6YHN0YXRgIG1vZHVsZSkgb3IgYml0d2lzZSBPUmVkCkBAIC0xMDQyLDI4ICsxMzc0LDc3IEBACiAgICAqIDpkYXRhOmBzdGF0LlNfSVdPVEhgCiAgICAqIDpkYXRhOmBzdGF0LlNfSVhPVEhgCiAKKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHN1cHBvcnQgOnJlZjpgc3BlY2lmeWluZyBhIGZpbGUgZGVzY3JpcHRvciA8cGF0aF9mZD5gLAorICAgOnJlZjpgcGF0aHMgcmVsYXRpdmUgdG8gZGlyZWN0b3J5IGRlc2NyaXB0b3JzIDxkaXJfZmQ+YCBhbmQgOnJlZjpgbm90CisgICBmb2xsb3dpbmcgc3ltbGlua3MgPGZvbGxvd19zeW1saW5rcz5gLgorCiAgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCiAKICAgIC4uIG5vdGU6OgogCi0gICAgICBBbHRob3VnaCBXaW5kb3dzIHN1cHBvcnRzIDpmdW5jOmBjaG1vZGAsIHlvdSBjYW4gb25seSAgc2V0IHRoZSBmaWxlJ3MgcmVhZC1vbmx5Ci0gICAgICBmbGFnIHdpdGggaXQgKHZpYSB0aGUgYGBzdGF0LlNfSVdSSVRFYGAgIGFuZCBgYHN0YXQuU19JUkVBRGBgCi0gICAgICBjb25zdGFudHMgb3IgYSBjb3JyZXNwb25kaW5nIGludGVnZXIgdmFsdWUpLiAgQWxsIG90aGVyIGJpdHMgYXJlCi0gICAgICBpZ25vcmVkLgorICAgICAgQWx0aG91Z2ggV2luZG93cyBzdXBwb3J0cyA6ZnVuYzpgY2htb2RgLCB5b3UgY2FuIG9ubHkgc2V0IHRoZSBmaWxlJ3MKKyAgICAgIHJlYWQtb25seSBmbGFnIHdpdGggaXQgKHZpYSB0aGUgYGBzdGF0LlNfSVdSSVRFYGAgYW5kIGBgc3RhdC5TX0lSRUFEYGAKKyAgICAgIGNvbnN0YW50cyBvciBhIGNvcnJlc3BvbmRpbmcgaW50ZWdlciB2YWx1ZSkuICBBbGwgb3RoZXIgYml0cyBhcmUgaWdub3JlZC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBBZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nICpwYXRoKiBhcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciwKKyAgICAgIGFuZCB0aGUgKmRpcl9mZCogYW5kICpmb2xsb3dfc3ltbGlua3MqIGFyZ3VtZW50cy4KIAogCi0uLiBmdW5jdGlvbjo6IGNob3duKHBhdGgsIHVpZCwgZ2lkKQorLi4gZnVuY3Rpb246OiBjaG93bihwYXRoLCB1aWQsIGdpZCwgKiwgZGlyX2ZkPU5vbmUsIGZvbGxvd19zeW1saW5rcz1UcnVlKQogCi0gICBDaGFuZ2UgdGhlIG93bmVyIGFuZCBncm91cCBpZCBvZiAqcGF0aCogdG8gdGhlIG51bWVyaWMgKnVpZCogYW5kICpnaWQqLiBUbyBsZWF2ZQotICAgb25lIG9mIHRoZSBpZHMgdW5jaGFuZ2VkLCBzZXQgaXQgdG8gLTEuCisgICBDaGFuZ2UgdGhlIG93bmVyIGFuZCBncm91cCBpZCBvZiAqcGF0aCogdG8gdGhlIG51bWVyaWMgKnVpZCogYW5kICpnaWQqLiAgVG8KKyAgIGxlYXZlIG9uZSBvZiB0aGUgaWRzIHVuY2hhbmdlZCwgc2V0IGl0IHRvIC0xLgorCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IDpyZWY6YHNwZWNpZnlpbmcgYSBmaWxlIGRlc2NyaXB0b3IgPHBhdGhfZmQ+YCwKKyAgIDpyZWY6YHBhdGhzIHJlbGF0aXZlIHRvIGRpcmVjdG9yeSBkZXNjcmlwdG9ycyA8ZGlyX2ZkPmAgYW5kIDpyZWY6YG5vdAorICAgZm9sbG93aW5nIHN5bWxpbmtzIDxmb2xsb3dfc3ltbGlua3M+YC4KKworICAgU2VlIDpmdW5jOmBzaHV0aWwuY2hvd25gIGZvciBhIGhpZ2hlci1sZXZlbCBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgbmFtZXMgaW4KKyAgIGFkZGl0aW9uIHRvIG51bWVyaWMgaWRzLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgQWRkZWQgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciBmb3IgKnBhdGgqLAorICAgICAgYW5kIHRoZSAqZGlyX2ZkKiBhbmQgKmZvbGxvd19zeW1saW5rcyogYXJndW1lbnRzLgorCisKKy4uIGZ1bmN0aW9uOjogY2hyb290KHBhdGgpCisKKyAgIENoYW5nZSB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGN1cnJlbnQgcHJvY2VzcyB0byAqcGF0aCouCiAKICAgIEF2YWlsYWJpbGl0eTogVW5peC4KIAogCisuLiBmdW5jdGlvbjo6IGZjaGRpcihmZCkKKworICAgQ2hhbmdlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHRoZSBkaXJlY3RvcnkgcmVwcmVzZW50ZWQgYnkgdGhlIGZpbGUKKyAgIGRlc2NyaXB0b3IgKmZkKi4gIFRoZSBkZXNjcmlwdG9yIG11c3QgcmVmZXIgdG8gYW4gb3BlbmVkIGRpcmVjdG9yeSwgbm90IGFuCisgICBvcGVuIGZpbGUuICBBcyBvZiBQeXRob24gMy4zLCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gYGBvcy5jaGRpcihmZClgYC4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisKKy4uIGZ1bmN0aW9uOjogZ2V0Y3dkKCkKKworICAgUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeS4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LCBXaW5kb3dzLgorCisKKy4uIGZ1bmN0aW9uOjogZ2V0Y3dkYigpCisKKyAgIFJldHVybiBhIGJ5dGVzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCisKKwogLi4gZnVuY3Rpb246OiBsY2hmbGFncyhwYXRoLCBmbGFncykKIAotICAgU2V0IHRoZSBmbGFncyBvZiAqcGF0aCogdG8gdGhlIG51bWVyaWMgKmZsYWdzKiwgbGlrZSA6ZnVuYzpgY2hmbGFnc2AsIGJ1dCBkbyBub3QKLSAgIGZvbGxvdyBzeW1ib2xpYyBsaW5rcy4KKyAgIFNldCB0aGUgZmxhZ3Mgb2YgKnBhdGgqIHRvIHRoZSBudW1lcmljICpmbGFncyosIGxpa2UgOmZ1bmM6YGNoZmxhZ3NgLCBidXQgZG8KKyAgIG5vdCBmb2xsb3cgc3ltYm9saWMgbGlua3MuICBBcyBvZiBQeXRob24gMy4zLCB0aGlzIGlzIGVxdWl2YWxlbnQgdG8KKyAgIGBgb3MuY2hmbGFncyhwYXRoLCBmbGFncywgZm9sbG93X3N5bWxpbmtzPUZhbHNlKWBgLgogCiAgICBBdmFpbGFiaWxpdHk6IFVuaXguCiAKQEAgLTEwNzEsMTEwICsxNDUyLDEwMSBAQAogLi4gZnVuY3Rpb246OiBsY2htb2QocGF0aCwgbW9kZSkKIAogICAgQ2hhbmdlIHRoZSBtb2RlIG9mICpwYXRoKiB0byB0aGUgbnVtZXJpYyAqbW9kZSouIElmIHBhdGggaXMgYSBzeW1saW5rLCB0aGlzCi0gICBhZmZlY3RzIHRoZSBzeW1saW5rIHJhdGhlciB0aGFuIHRoZSB0YXJnZXQuIFNlZSB0aGUgZG9jcyBmb3IgOmZ1bmM6YGNobW9kYAotICAgZm9yIHBvc3NpYmxlIHZhbHVlcyBvZiAqbW9kZSouCisgICBhZmZlY3RzIHRoZSBzeW1saW5rIHJhdGhlciB0aGFuIHRoZSB0YXJnZXQuICBTZWUgdGhlIGRvY3MgZm9yIDpmdW5jOmBjaG1vZGAKKyAgIGZvciBwb3NzaWJsZSB2YWx1ZXMgb2YgKm1vZGUqLiAgQXMgb2YgUHl0aG9uIDMuMywgdGhpcyBpcyBlcXVpdmFsZW50IHRvCisgICBgYG9zLmNobW9kKHBhdGgsIG1vZGUsIGZvbGxvd19zeW1saW5rcz1GYWxzZSlgYC4KIAogICAgQXZhaWxhYmlsaXR5OiBVbml4LgogCiAKIC4uIGZ1bmN0aW9uOjogbGNob3duKHBhdGgsIHVpZCwgZ2lkKQogCi0gICBDaGFuZ2UgdGhlIG93bmVyIGFuZCBncm91cCBpZCBvZiAqcGF0aCogdG8gdGhlIG51bWVyaWMgKnVpZCogYW5kICpnaWQqLiBUaGlzCi0gICBmdW5jdGlvbiB3aWxsIG5vdCBmb2xsb3cgc3ltYm9saWMgbGlua3MuCisgICBDaGFuZ2UgdGhlIG93bmVyIGFuZCBncm91cCBpZCBvZiAqcGF0aCogdG8gdGhlIG51bWVyaWMgKnVpZCogYW5kICpnaWQqLiAgVGhpcworICAgZnVuY3Rpb24gd2lsbCBub3QgZm9sbG93IHN5bWJvbGljIGxpbmtzLiAgQXMgb2YgUHl0aG9uIDMuMywgdGhpcyBpcyBlcXVpdmFsZW50CisgICB0byBgYG9zLmNob3duKHBhdGgsIHVpZCwgZ2lkLCBmb2xsb3dfc3ltbGlua3M9RmFsc2UpYGAuCiAKICAgIEF2YWlsYWJpbGl0eTogVW5peC4KIAogCi0uLiBmdW5jdGlvbjo6IGxpbmsoc291cmNlLCBsaW5rX25hbWUpCisuLiBmdW5jdGlvbjo6IGxpbmsoc3JjLCBkc3QsICosIHNyY19kaXJfZmQ9Tm9uZSwgZHN0X2Rpcl9mZD1Ob25lLCBmb2xsb3dfc3ltbGlua3M9VHJ1ZSkKIAotICAgQ3JlYXRlIGEgaGFyZCBsaW5rIHBvaW50aW5nIHRvICpzb3VyY2UqIG5hbWVkICpsaW5rX25hbWUqLgorICAgQ3JlYXRlIGEgaGFyZCBsaW5rIHBvaW50aW5nIHRvICpzcmMqIG5hbWVkICpkc3QqLgorCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IHNwZWNpZnlpbmcgKnNyY19kaXJfZmQqIGFuZC9vciAqZHN0X2Rpcl9mZCogdG8KKyAgIHN1cHBseSA6cmVmOmBwYXRocyByZWxhdGl2ZSB0byBkaXJlY3RvcnkgZGVzY3JpcHRvcnMgPGRpcl9mZD5gLCBhbmQgOnJlZjpgbm90CisgICBmb2xsb3dpbmcgc3ltbGlua3MgPGZvbGxvd19zeW1saW5rcz5gLgogCiAgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCiAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCiAgICAgICBBZGRlZCBXaW5kb3dzIHN1cHBvcnQuCiAKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgQWRkZWQgdGhlICpzcmNfZGlyX2ZkKiwgKmRzdF9kaXJfZmQqLCBhbmQgKmZvbGxvd19zeW1saW5rcyogYXJndW1lbnRzLgorCiAKIC4uIGZ1bmN0aW9uOjogbGlzdGRpcihwYXRoPScuJykKIAogICAgUmV0dXJuIGEgbGlzdCBjb250YWluaW5nIHRoZSBuYW1lcyBvZiB0aGUgZW50cmllcyBpbiB0aGUgZGlyZWN0b3J5IGdpdmVuIGJ5Ci0gICAqcGF0aCogKGRlZmF1bHQ6IGBgJy4nYGApLiAgVGhlIGxpc3QgaXMgaW4gYXJiaXRyYXJ5IG9yZGVyLiAgSXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgc3BlY2lhbAorICAgKnBhdGgqLiAgVGhlIGxpc3QgaXMgaW4gYXJiaXRyYXJ5IG9yZGVyLCBhbmQgZG9lcyBub3QgaW5jbHVkZSB0aGUgc3BlY2lhbAogICAgZW50cmllcyBgYCcuJ2BgIGFuZCBgYCcuLidgYCBldmVuIGlmIHRoZXkgYXJlIHByZXNlbnQgaW4gdGhlIGRpcmVjdG9yeS4KIAotICAgVGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHdpdGggYSBieXRlcyBvciBzdHJpbmcgYXJndW1lbnQsIGFuZCByZXR1cm5zCi0gICBmaWxlbmFtZXMgb2YgdGhlIHNhbWUgZGF0YXR5cGUuCisgICAqcGF0aCogbWF5IGJlIGVpdGhlciBvZiB0eXBlIGBgc3RyYGAgb3Igb2YgdHlwZSBgYGJ5dGVzYGAuICBJZiAqcGF0aCoKKyAgIGlzIG9mIHR5cGUgYGBieXRlc2BgLCB0aGUgZmlsZW5hbWVzIHJldHVybmVkIHdpbGwgYWxzbyBiZSBvZiB0eXBlIGBgYnl0ZXNgYDsKKyAgIGluIGFsbCBvdGhlciBjaXJjdW1zdGFuY2VzLCB0aGV5IHdpbGwgYmUgb2YgdHlwZSBgYHN0cmBgLgorCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBhbHNvIHN1cHBvcnQgOnJlZjpgc3BlY2lmeWluZyBhIGZpbGUgZGVzY3JpcHRvcgorICAgPHBhdGhfZmQ+YDsgdGhlIGZpbGUgZGVzY3JpcHRvciBtdXN0IHJlZmVyIHRvIGEgZGlyZWN0b3J5LgorCisgICAuLiBub3RlOjoKKyAgICAgIFRvIGVuY29kZSBgYHN0cmBgIGZpbGVuYW1lcyB0byBgYGJ5dGVzYGAsIHVzZSA6ZnVuYzpgfm9zLmZzZW5jb2RlYC4KIAogICAgQXZhaWxhYmlsaXR5OiBVbml4LCBXaW5kb3dzLgogCiAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgogICAgICAgVGhlICpwYXRoKiBwYXJhbWV0ZXIgYmVjYW1lIG9wdGlvbmFsLgogCi0uLiBmdW5jdGlvbjo6IGxzdGF0KHBhdGgpCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IgZm9yICpwYXRoKi4KKworCisuLiBmdW5jdGlvbjo6IGxzdGF0KHBhdGgsICosIGRpcl9mZD1Ob25lKQogCiAgICBQZXJmb3JtIHRoZSBlcXVpdmFsZW50IG9mIGFuIDpjOmZ1bmM6YGxzdGF0YCBzeXN0ZW0gY2FsbCBvbiB0aGUgZ2l2ZW4gcGF0aC4KICAgIFNpbWlsYXIgdG8gOmZ1bmM6YH5vcy5zdGF0YCwgYnV0IGRvZXMgbm90IGZvbGxvdyBzeW1ib2xpYyBsaW5rcy4gIE9uCiAgICBwbGF0Zm9ybXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBzeW1ib2xpYyBsaW5rcywgdGhpcyBpcyBhbiBhbGlhcyBmb3IKLSAgIDpmdW5jOmB+b3Muc3RhdGAuCisgICA6ZnVuYzpgfm9zLnN0YXRgLiAgQXMgb2YgUHl0aG9uIDMuMywgdGhpcyBpcyBlcXVpdmFsZW50IHRvIGBgb3Muc3RhdChwYXRoLAorICAgZGlyX2ZkPWRpcl9mZCwgZm9sbG93X3N5bWxpbmtzPUZhbHNlKWBgLgorCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBhbHNvIHN1cHBvcnQgOnJlZjpgcGF0aHMgcmVsYXRpdmUgdG8gZGlyZWN0b3J5IGRlc2NyaXB0b3JzCisgICA8ZGlyX2ZkPmAuCiAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCiAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBXaW5kb3dzIDYuMCAoVmlzdGEpIHN5bWJvbGljIGxpbmtzLgogCi0KLS4uIGZ1bmN0aW9uOjogbWtmaWZvKHBhdGhbLCBtb2RlXSkKLQotICAgQ3JlYXRlIGEgRklGTyAoYSBuYW1lZCBwaXBlKSBuYW1lZCAqcGF0aCogd2l0aCBudW1lcmljIG1vZGUgKm1vZGUqLiAgVGhlCi0gICBkZWZhdWx0ICptb2RlKiBpcyBgYDBvNjY2YGAgKG9jdGFsKS4gIFRoZSBjdXJyZW50IHVtYXNrIHZhbHVlIGlzIGZpcnN0IG1hc2tlZAotICAgb3V0IGZyb20gdGhlIG1vZGUuCi0KLSAgIEZJRk9zIGFyZSBwaXBlcyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBsaWtlIHJlZ3VsYXIgZmlsZXMuICBGSUZPcyBleGlzdCB1bnRpbCB0aGV5Ci0gICBhcmUgZGVsZXRlZCAoZm9yIGV4YW1wbGUgd2l0aCA6ZnVuYzpgb3MudW5saW5rYCkuIEdlbmVyYWxseSwgRklGT3MgYXJlIHVzZWQgYXMKLSAgIHJlbmRlenZvdXMgYmV0d2VlbiAiY2xpZW50IiBhbmQgInNlcnZlciIgdHlwZSBwcm9jZXNzZXM6IHRoZSBzZXJ2ZXIgb3BlbnMgdGhlCi0gICBGSUZPIGZvciByZWFkaW5nLCBhbmQgdGhlIGNsaWVudCBvcGVucyBpdCBmb3Igd3JpdGluZy4gIE5vdGUgdGhhdCA6ZnVuYzpgbWtmaWZvYAotICAgZG9lc24ndCBvcGVuIHRoZSBGSUZPIC0tLSBpdCBqdXN0IGNyZWF0ZXMgdGhlIHJlbmRlenZvdXMgcG9pbnQuCi0KLSAgIEF2YWlsYWJpbGl0eTogVW5peC4KKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCB0aGUgKmRpcl9mZCogcGFyYW1ldGVyLgogCiAKLS4uIGZ1bmN0aW9uOjogbWtub2QoZmlsZW5hbWVbLCBtb2RlPTBvNjAwWywgZGV2aWNlPTBdXSkKKy4uIGZ1bmN0aW9uOjogbWtkaXIocGF0aCwgbW9kZT0wbzc3NywgKiwgZGlyX2ZkPU5vbmUpCiAKLSAgIENyZWF0ZSBhIGZpbGVzeXN0ZW0gbm9kZSAoZmlsZSwgZGV2aWNlIHNwZWNpYWwgZmlsZSBvciBuYW1lZCBwaXBlKSBuYW1lZAotICAgKmZpbGVuYW1lKi4gKm1vZGUqIHNwZWNpZmllcyBib3RoIHRoZSBwZXJtaXNzaW9ucyB0byB1c2UgYW5kIHRoZSB0eXBlIG9mIG5vZGUKLSAgIHRvIGJlIGNyZWF0ZWQsIGJlaW5nIGNvbWJpbmVkIChiaXR3aXNlIE9SKSB3aXRoIG9uZSBvZiBgYHN0YXQuU19JRlJFR2BgLAotICAgYGBzdGF0LlNfSUZDSFJgYCwgYGBzdGF0LlNfSUZCTEtgYCwgYW5kIGBgc3RhdC5TX0lGSUZPYGAgKHRob3NlIGNvbnN0YW50cyBhcmUKLSAgIGF2YWlsYWJsZSBpbiA6bW9kOmBzdGF0YCkuICBGb3IgYGBzdGF0LlNfSUZDSFJgYCBhbmQgYGBzdGF0LlNfSUZCTEtgYCwKLSAgICpkZXZpY2UqIGRlZmluZXMgdGhlIG5ld2x5IGNyZWF0ZWQgZGV2aWNlIHNwZWNpYWwgZmlsZSAocHJvYmFibHkgdXNpbmcKLSAgIDpmdW5jOmBvcy5tYWtlZGV2YCksIG90aGVyd2lzZSBpdCBpcyBpZ25vcmVkLgorICAgQ3JlYXRlIGEgZGlyZWN0b3J5IG5hbWVkICpwYXRoKiB3aXRoIG51bWVyaWMgbW9kZSAqbW9kZSouCiAKKyAgIE9uIHNvbWUgc3lzdGVtcywgKm1vZGUqIGlzIGlnbm9yZWQuICBXaGVyZSBpdCBpcyB1c2VkLCB0aGUgY3VycmVudCB1bWFzaworICAgdmFsdWUgaXMgZmlyc3QgbWFza2VkIG91dC4gIElmIHRoZSBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHMsIDpleGM6YE9TRXJyb3JgCisgICBpcyByYWlzZWQuCiAKLS4uIGZ1bmN0aW9uOjogbWFqb3IoZGV2aWNlKQotCi0gICBFeHRyYWN0IHRoZSBkZXZpY2UgbWFqb3IgbnVtYmVyIGZyb20gYSByYXcgZGV2aWNlIG51bWJlciAodXN1YWxseSB0aGUKLSAgIDphdHRyOmBzdF9kZXZgIG9yIDphdHRyOmBzdF9yZGV2YCBmaWVsZCBmcm9tIDpjOnR5cGU6YHN0YXRgKS4KLQotCi0uLiBmdW5jdGlvbjo6IG1pbm9yKGRldmljZSkKLQotICAgRXh0cmFjdCB0aGUgZGV2aWNlIG1pbm9yIG51bWJlciBmcm9tIGEgcmF3IGRldmljZSBudW1iZXIgKHVzdWFsbHkgdGhlCi0gICA6YXR0cjpgc3RfZGV2YCBvciA6YXR0cjpgc3RfcmRldmAgZmllbGQgZnJvbSA6Yzp0eXBlOmBzdGF0YCkuCi0KLQotLi4gZnVuY3Rpb246OiBtYWtlZGV2KG1ham9yLCBtaW5vcikKLQotICAgQ29tcG9zZSBhIHJhdyBkZXZpY2UgbnVtYmVyIGZyb20gdGhlIG1ham9yIGFuZCBtaW5vciBkZXZpY2UgbnVtYmVycy4KLQotCi0uLiBmdW5jdGlvbjo6IG1rZGlyKHBhdGhbLCBtb2RlXSkKLQotICAgQ3JlYXRlIGEgZGlyZWN0b3J5IG5hbWVkICpwYXRoKiB3aXRoIG51bWVyaWMgbW9kZSAqbW9kZSouIFRoZSBkZWZhdWx0ICptb2RlKgotICAgaXMgYGAwbzc3N2BgIChvY3RhbCkuICBPbiBzb21lIHN5c3RlbXMsICptb2RlKiBpcyBpZ25vcmVkLiAgV2hlcmUgaXQgaXMgdXNlZCwKLSAgIHRoZSBjdXJyZW50IHVtYXNrIHZhbHVlIGlzIGZpcnN0IG1hc2tlZCBvdXQuICBJZiB0aGUgZGlyZWN0b3J5IGFscmVhZHkKLSAgIGV4aXN0cywgOmV4YzpgT1NFcnJvcmAgaXMgcmFpc2VkLgorICAgVGhpcyBmdW5jdGlvbiBjYW4gYWxzbyBzdXBwb3J0IDpyZWY6YHBhdGhzIHJlbGF0aXZlIHRvIGRpcmVjdG9yeSBkZXNjcmlwdG9ycworICAgPGRpcl9mZD5gLgogCiAgICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZGlyZWN0b3JpZXM7IHNlZSB0aGUKICAgIDptb2Q6YHRlbXBmaWxlYCBtb2R1bGUncyA6ZnVuYzpgdGVtcGZpbGUubWtkdGVtcGAgZnVuY3Rpb24uCiAKICAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KIAorICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBUaGUgKmRpcl9mZCogYXJndW1lbnQuCisKIAogLi4gZnVuY3Rpb246OiBtYWtlZGlycyhwYXRoLCBtb2RlPTBvNzc3LCBleGlzdF9vaz1GYWxzZSkKIApAQCAtMTIwMiw2ICsxNTc0LDYwIEBACiAgICAgICBUaGUgKmV4aXN0X29rKiBwYXJhbWV0ZXIuCiAKIAorLi4gZnVuY3Rpb246OiBta2ZpZm8ocGF0aCwgbW9kZT0wbzY2NiwgKiwgZGlyX2ZkPU5vbmUpCisKKyAgIENyZWF0ZSBhIEZJRk8gKGEgbmFtZWQgcGlwZSkgbmFtZWQgKnBhdGgqIHdpdGggbnVtZXJpYyBtb2RlICptb2RlKi4KKyAgIFRoZSBjdXJyZW50IHVtYXNrIHZhbHVlIGlzIGZpcnN0IG1hc2tlZCBvdXQgZnJvbSB0aGUgbW9kZS4KKworICAgVGhpcyBmdW5jdGlvbiBjYW4gYWxzbyBzdXBwb3J0IDpyZWY6YHBhdGhzIHJlbGF0aXZlIHRvIGRpcmVjdG9yeSBkZXNjcmlwdG9ycworICAgPGRpcl9mZD5gLgorCisgICBGSUZPcyBhcmUgcGlwZXMgdGhhdCBjYW4gYmUgYWNjZXNzZWQgbGlrZSByZWd1bGFyIGZpbGVzLiAgRklGT3MgZXhpc3QgdW50aWwgdGhleQorICAgYXJlIGRlbGV0ZWQgKGZvciBleGFtcGxlIHdpdGggOmZ1bmM6YG9zLnVubGlua2ApLiBHZW5lcmFsbHksIEZJRk9zIGFyZSB1c2VkIGFzCisgICByZW5kZXp2b3VzIGJldHdlZW4gImNsaWVudCIgYW5kICJzZXJ2ZXIiIHR5cGUgcHJvY2Vzc2VzOiB0aGUgc2VydmVyIG9wZW5zIHRoZQorICAgRklGTyBmb3IgcmVhZGluZywgYW5kIHRoZSBjbGllbnQgb3BlbnMgaXQgZm9yIHdyaXRpbmcuICBOb3RlIHRoYXQgOmZ1bmM6YG1rZmlmb2AKKyAgIGRvZXNuJ3Qgb3BlbiB0aGUgRklGTyAtLS0gaXQganVzdCBjcmVhdGVzIHRoZSByZW5kZXp2b3VzIHBvaW50LgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgVGhlICpkaXJfZmQqIGFyZ3VtZW50LgorCisKKy4uIGZ1bmN0aW9uOjogbWtub2QoZmlsZW5hbWUsIG1vZGU9MG82MDAsIGRldmljZT0wLCAqLCBkaXJfZmQ9Tm9uZSkKKworICAgQ3JlYXRlIGEgZmlsZXN5c3RlbSBub2RlIChmaWxlLCBkZXZpY2Ugc3BlY2lhbCBmaWxlIG9yIG5hbWVkIHBpcGUpIG5hbWVkCisgICAqZmlsZW5hbWUqLiAqbW9kZSogc3BlY2lmaWVzIGJvdGggdGhlIHBlcm1pc3Npb25zIHRvIHVzZSBhbmQgdGhlIHR5cGUgb2Ygbm9kZQorICAgdG8gYmUgY3JlYXRlZCwgYmVpbmcgY29tYmluZWQgKGJpdHdpc2UgT1IpIHdpdGggb25lIG9mIGBgc3RhdC5TX0lGUkVHYGAsCisgICBgYHN0YXQuU19JRkNIUmBgLCBgYHN0YXQuU19JRkJMS2BgLCBhbmQgYGBzdGF0LlNfSUZJRk9gYCAodGhvc2UgY29uc3RhbnRzIGFyZQorICAgYXZhaWxhYmxlIGluIDptb2Q6YHN0YXRgKS4gIEZvciBgYHN0YXQuU19JRkNIUmBgIGFuZCBgYHN0YXQuU19JRkJMS2BgLAorICAgKmRldmljZSogZGVmaW5lcyB0aGUgbmV3bHkgY3JlYXRlZCBkZXZpY2Ugc3BlY2lhbCBmaWxlIChwcm9iYWJseSB1c2luZworICAgOmZ1bmM6YG9zLm1ha2VkZXZgKSwgb3RoZXJ3aXNlIGl0IGlzIGlnbm9yZWQuCisKKyAgIFRoaXMgZnVuY3Rpb24gY2FuIGFsc28gc3VwcG9ydCA6cmVmOmBwYXRocyByZWxhdGl2ZSB0byBkaXJlY3RvcnkgZGVzY3JpcHRvcnMKKyAgIDxkaXJfZmQ+YC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBUaGUgKmRpcl9mZCogYXJndW1lbnQuCisKKworLi4gZnVuY3Rpb246OiBtYWpvcihkZXZpY2UpCisKKyAgIEV4dHJhY3QgdGhlIGRldmljZSBtYWpvciBudW1iZXIgZnJvbSBhIHJhdyBkZXZpY2UgbnVtYmVyICh1c3VhbGx5IHRoZQorICAgOmF0dHI6YHN0X2RldmAgb3IgOmF0dHI6YHN0X3JkZXZgIGZpZWxkIGZyb20gOmM6dHlwZTpgc3RhdGApLgorCisKKy4uIGZ1bmN0aW9uOjogbWlub3IoZGV2aWNlKQorCisgICBFeHRyYWN0IHRoZSBkZXZpY2UgbWlub3IgbnVtYmVyIGZyb20gYSByYXcgZGV2aWNlIG51bWJlciAodXN1YWxseSB0aGUKKyAgIDphdHRyOmBzdF9kZXZgIG9yIDphdHRyOmBzdF9yZGV2YCBmaWVsZCBmcm9tIDpjOnR5cGU6YHN0YXRgKS4KKworCisuLiBmdW5jdGlvbjo6IG1ha2VkZXYobWFqb3IsIG1pbm9yKQorCisgICBDb21wb3NlIGEgcmF3IGRldmljZSBudW1iZXIgZnJvbSB0aGUgbWFqb3IgYW5kIG1pbm9yIGRldmljZSBudW1iZXJzLgorCisKIC4uIGZ1bmN0aW9uOjogcGF0aGNvbmYocGF0aCwgbmFtZSkKIAogICAgUmV0dXJuIHN5c3RlbSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHJlbGV2YW50IHRvIGEgbmFtZWQgZmlsZS4gKm5hbWUqCkBAIC0xMjE3LDYgKzE2NDMsOSBAQAogICAgaW5jbHVkZWQgaW4gYGBwYXRoY29uZl9uYW1lc2BgLCBhbiA6ZXhjOmBPU0Vycm9yYCBpcyByYWlzZWQgd2l0aAogICAgOmNvbnN0OmBlcnJuby5FSU5WQUxgIGZvciB0aGUgZXJyb3IgbnVtYmVyLgogCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IDpyZWY6YHNwZWNpZnlpbmcgYSBmaWxlIGRlc2NyaXB0b3IKKyAgIDxwYXRoX2ZkPmAuCisKICAgIEF2YWlsYWJpbGl0eTogVW5peC4KIAogCkBAIC0xMjI0LDM4ICsxNjUzLDUzIEBACiAKICAgIERpY3Rpb25hcnkgbWFwcGluZyBuYW1lcyBhY2NlcHRlZCBieSA6ZnVuYzpgcGF0aGNvbmZgIGFuZCA6ZnVuYzpgZnBhdGhjb25mYCB0bwogICAgdGhlIGludGVnZXIgdmFsdWVzIGRlZmluZWQgZm9yIHRob3NlIG5hbWVzIGJ5IHRoZSBob3N0IG9wZXJhdGluZyBzeXN0ZW0uICBUaGlzCi0gICBjYW4gYmUgdXNlZCB0byBkZXRlcm1pbmUgdGhlIHNldCBvZiBuYW1lcyBrbm93biB0byB0aGUgc3lzdGVtLiBBdmFpbGFiaWxpdHk6Ci0gICBVbml4LgorICAgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBzZXQgb2YgbmFtZXMga25vd24gdG8gdGhlIHN5c3RlbS4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgogCiAKLS4uIGZ1bmN0aW9uOjogcmVhZGxpbmsocGF0aCkKKy4uIGZ1bmN0aW9uOjogcmVhZGxpbmsocGF0aCwgKiwgZGlyX2ZkPU5vbmUpCiAKICAgIFJldHVybiBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHBhdGggdG8gd2hpY2ggdGhlIHN5bWJvbGljIGxpbmsgcG9pbnRzLiAgVGhlCi0gICByZXN1bHQgbWF5IGJlIGVpdGhlciBhbiBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRobmFtZTsgaWYgaXQgaXMgcmVsYXRpdmUsIGl0IG1heQotICAgYmUgY29udmVydGVkIHRvIGFuIGFic29sdXRlIHBhdGhuYW1lIHVzaW5nIGBgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShwYXRoKSwKLSAgIHJlc3VsdClgYC4KKyAgIHJlc3VsdCBtYXkgYmUgZWl0aGVyIGFuIGFic29sdXRlIG9yIHJlbGF0aXZlIHBhdGhuYW1lOyBpZiBpdCBpcyByZWxhdGl2ZSwgaXQKKyAgIG1heSBiZSBjb252ZXJ0ZWQgdG8gYW4gYWJzb2x1dGUgcGF0aG5hbWUgdXNpbmcKKyAgIGBgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShwYXRoKSwgcmVzdWx0KWBgLgogCiAgICBJZiB0aGUgKnBhdGgqIGlzIGEgc3RyaW5nIG9iamVjdCwgdGhlIHJlc3VsdCB3aWxsIGFsc28gYmUgYSBzdHJpbmcgb2JqZWN0LAogICAgYW5kIHRoZSBjYWxsIG1heSByYWlzZSBhbiBVbmljb2RlRGVjb2RlRXJyb3IuIElmIHRoZSAqcGF0aCogaXMgYSBieXRlcwogICAgb2JqZWN0LCB0aGUgcmVzdWx0IHdpbGwgYmUgYSBieXRlcyBvYmplY3QuCiAKKyAgIFRoaXMgZnVuY3Rpb24gY2FuIGFsc28gc3VwcG9ydCA6cmVmOmBwYXRocyByZWxhdGl2ZSB0byBkaXJlY3RvcnkgZGVzY3JpcHRvcnMKKyAgIDxkaXJfZmQ+YC4KKwogICAgQXZhaWxhYmlsaXR5OiBVbml4LCBXaW5kb3dzCiAKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCiAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBXaW5kb3dzIDYuMCAoVmlzdGEpIHN5bWJvbGljIGxpbmtzLgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgIFRoZSAqZGlyX2ZkKiBhcmd1bWVudC4KIAotLi4gZnVuY3Rpb246OiByZW1vdmUocGF0aCkKKworLi4gZnVuY3Rpb246OiByZW1vdmUocGF0aCwgKiwgZGlyX2ZkPU5vbmUpCiAKICAgIFJlbW92ZSAoZGVsZXRlKSB0aGUgZmlsZSAqcGF0aCouICBJZiAqcGF0aCogaXMgYSBkaXJlY3RvcnksIDpleGM6YE9TRXJyb3JgIGlzCi0gICByYWlzZWQ7IHNlZSA6ZnVuYzpgcm1kaXJgIGJlbG93IHRvIHJlbW92ZSBhIGRpcmVjdG9yeS4gIFRoaXMgaXMgaWRlbnRpY2FsIHRvCi0gICB0aGUgOmZ1bmM6YHVubGlua2AgZnVuY3Rpb24gZG9jdW1lbnRlZCBiZWxvdy4gIE9uIFdpbmRvd3MsIGF0dGVtcHRpbmcgdG8KLSAgIHJlbW92ZSBhIGZpbGUgdGhhdCBpcyBpbiB1c2UgY2F1c2VzIGFuIGV4Y2VwdGlvbiB0byBiZSByYWlzZWQ7IG9uIFVuaXgsIHRoZQotICAgZGlyZWN0b3J5IGVudHJ5IGlzIHJlbW92ZWQgYnV0IHRoZSBzdG9yYWdlIGFsbG9jYXRlZCB0byB0aGUgZmlsZSBpcyBub3QgbWFkZQotICAgYXZhaWxhYmxlIHVudGlsIHRoZSBvcmlnaW5hbCBmaWxlIGlzIG5vIGxvbmdlciBpbiB1c2UuCisgICByYWlzZWQuICBVc2UgOmZ1bmM6YHJtZGlyYCB0byByZW1vdmUgZGlyZWN0b3JpZXMuCisKKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHN1cHBvcnQgOnJlZjpgcGF0aHMgcmVsYXRpdmUgdG8gZGlyZWN0b3J5IGRlc2NyaXB0b3JzCisgICA8ZGlyX2ZkPmAuCisKKyAgIE9uIFdpbmRvd3MsIGF0dGVtcHRpbmcgdG8gcmVtb3ZlIGEgZmlsZSB0aGF0IGlzIGluIHVzZSBjYXVzZXMgYW4gZXhjZXB0aW9uIHRvCisgICBiZSByYWlzZWQ7IG9uIFVuaXgsIHRoZSBkaXJlY3RvcnkgZW50cnkgaXMgcmVtb3ZlZCBidXQgdGhlIHN0b3JhZ2UgYWxsb2NhdGVkCisgICB0byB0aGUgZmlsZSBpcyBub3QgbWFkZSBhdmFpbGFibGUgdW50aWwgdGhlIG9yaWdpbmFsIGZpbGUgaXMgbm8gbG9uZ2VyIGluIHVzZS4KKworICAgVGhpcyBmdW5jdGlvbiBpcyBpZGVudGljYWwgdG8gOmZ1bmM6YHVubGlua2AuCiAKICAgIEF2YWlsYWJpbGl0eTogVW5peCwgV2luZG93cy4KIAorICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBUaGUgKmRpcl9mZCogYXJndW1lbnQuCisKIAogLi4gZnVuY3Rpb246OiByZW1vdmVkaXJzKHBhdGgpCiAKQEAgLTEyNzEsNyArMTcxNSw3IEBACiAgICBzdWNjZXNzZnVsbHkgcmVtb3ZlZC4KIAogCi0uLiBmdW5jdGlvbjo6IHJlbmFtZShzcmMsIGRzdCkKKy4uIGZ1bmN0aW9uOjogcmVuYW1lKHNyYywgZHN0LCAqLCBzcmNfZGlyX2ZkPU5vbmUsIGRzdF9kaXJfZmQ9Tm9uZSkKIAogICAgUmVuYW1lIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSAqc3JjKiB0byAqZHN0Ki4gIElmICpkc3QqIGlzIGEgZGlyZWN0b3J5LAogICAgOmV4YzpgT1NFcnJvcmAgd2lsbCBiZSByYWlzZWQuICBPbiBVbml4LCBpZiAqZHN0KiBleGlzdHMgYW5kIGlzIGEgZmlsZSwgaXQgd2lsbApAQCAtMTI3OSwxMSArMTcyMywxOCBAQAogICAgVW5peCBmbGF2b3JzIGlmICpzcmMqIGFuZCAqZHN0KiBhcmUgb24gZGlmZmVyZW50IGZpbGVzeXN0ZW1zLiAgSWYgc3VjY2Vzc2Z1bCwKICAgIHRoZSByZW5hbWluZyB3aWxsIGJlIGFuIGF0b21pYyBvcGVyYXRpb24gKHRoaXMgaXMgYSBQT1NJWCByZXF1aXJlbWVudCkuICBPbgogICAgV2luZG93cywgaWYgKmRzdCogYWxyZWFkeSBleGlzdHMsIDpleGM6YE9TRXJyb3JgIHdpbGwgYmUgcmFpc2VkIGV2ZW4gaWYgaXQgaXMgYQotICAgZmlsZTsgdGhlcmUgbWF5IGJlIG5vIHdheSB0byBpbXBsZW1lbnQgYW4gYXRvbWljIHJlbmFtZSB3aGVuICpkc3QqIG5hbWVzIGFuCi0gICBleGlzdGluZyBmaWxlLgorICAgZmlsZS4KKworICAgVGhpcyBmdW5jdGlvbiBjYW4gc3VwcG9ydCBzcGVjaWZ5aW5nICpzcmNfZGlyX2ZkKiBhbmQvb3IgKmRzdF9kaXJfZmQqIHRvCisgICBzdXBwbHkgOnJlZjpgcGF0aHMgcmVsYXRpdmUgdG8gZGlyZWN0b3J5IGRlc2NyaXB0b3JzIDxkaXJfZmQ+YC4KKworICAgSWYgeW91IHdhbnQgY3Jvc3MtcGxhdGZvcm0gb3ZlcndyaXRpbmcgb2YgdGhlIGRlc3RpbmF0aW9uLCB1c2UgOmZ1bmM6YHJlcGxhY2VgLgogCiAgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCiAKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgVGhlICpzcmNfZGlyX2ZkKiBhbmQgKmRzdF9kaXJfZmQqIGFyZ3VtZW50cy4KKwogCiAuLiBmdW5jdGlvbjo6IHJlbmFtZXMob2xkLCBuZXcpCiAKQEAgLTEyOTgsMjIgKzE3NDksNDYgQEAKICAgICAgIHBlcm1pc3Npb25zIG5lZWRlZCB0byByZW1vdmUgdGhlIGxlYWYgZGlyZWN0b3J5IG9yIGZpbGUuCiAKIAotLi4gZnVuY3Rpb246OiBybWRpcihwYXRoKQorLi4gZnVuY3Rpb246OiByZXBsYWNlKHNyYywgZHN0LCAqLCBzcmNfZGlyX2ZkPU5vbmUsIGRzdF9kaXJfZmQ9Tm9uZSkKKworICAgUmVuYW1lIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSAqc3JjKiB0byAqZHN0Ki4gIElmICpkc3QqIGlzIGEgZGlyZWN0b3J5LAorICAgOmV4YzpgT1NFcnJvcmAgd2lsbCBiZSByYWlzZWQuICBJZiAqZHN0KiBleGlzdHMgYW5kIGlzIGEgZmlsZSwgaXQgd2lsbAorICAgYmUgcmVwbGFjZWQgc2lsZW50bHkgaWYgdGhlIHVzZXIgaGFzIHBlcm1pc3Npb24uICBUaGUgb3BlcmF0aW9uIG1heSBmYWlsCisgICBpZiAqc3JjKiBhbmQgKmRzdCogYXJlIG9uIGRpZmZlcmVudCBmaWxlc3lzdGVtcy4gIElmIHN1Y2Nlc3NmdWwsCisgICB0aGUgcmVuYW1pbmcgd2lsbCBiZSBhbiBhdG9taWMgb3BlcmF0aW9uICh0aGlzIGlzIGEgUE9TSVggcmVxdWlyZW1lbnQpLgorCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IHNwZWNpZnlpbmcgKnNyY19kaXJfZmQqIGFuZC9vciAqZHN0X2Rpcl9mZCogdG8KKyAgIHN1cHBseSA6cmVmOmBwYXRocyByZWxhdGl2ZSB0byBkaXJlY3RvcnkgZGVzY3JpcHRvcnMgPGRpcl9mZD5gLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogcm1kaXIocGF0aCwgKiwgZGlyX2ZkPU5vbmUpCiAKICAgIFJlbW92ZSAoZGVsZXRlKSB0aGUgZGlyZWN0b3J5ICpwYXRoKi4gIE9ubHkgd29ya3Mgd2hlbiB0aGUgZGlyZWN0b3J5IGlzCiAgICBlbXB0eSwgb3RoZXJ3aXNlLCA6ZXhjOmBPU0Vycm9yYCBpcyByYWlzZWQuICBJbiBvcmRlciB0byByZW1vdmUgd2hvbGUKICAgIGRpcmVjdG9yeSB0cmVlcywgOmZ1bmM6YHNodXRpbC5ybXRyZWVgIGNhbiBiZSB1c2VkLgogCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IDpyZWY6YHBhdGhzIHJlbGF0aXZlIHRvIGRpcmVjdG9yeSBkZXNjcmlwdG9ycworICAgPGRpcl9mZD5gLgorCiAgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCiAKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgVGhlICpkaXJfZmQqIHBhcmFtZXRlci4KIAotLi4gZnVuY3Rpb246OiBzdGF0KHBhdGgpCisKKy4uIGZ1bmN0aW9uOjogc3RhdChwYXRoLCAqLCBkaXJfZmQ9Tm9uZSwgZm9sbG93X3N5bWxpbmtzPVRydWUpCiAKICAgIFBlcmZvcm0gdGhlIGVxdWl2YWxlbnQgb2YgYSA6YzpmdW5jOmBzdGF0YCBzeXN0ZW0gY2FsbCBvbiB0aGUgZ2l2ZW4gcGF0aC4KLSAgIChUaGlzIGZ1bmN0aW9uIGZvbGxvd3Mgc3ltbGlua3M7IHRvIHN0YXQgYSBzeW1saW5rIHVzZSA6ZnVuYzpgbHN0YXRgLikKKyAgICpwYXRoKiBtYXkgYmUgc3BlY2lmaWVkIGFzIGVpdGhlciBhIHN0cmluZyBvciBhcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci4KKyAgIChUaGlzIGZ1bmN0aW9uIG5vcm1hbGx5IGZvbGxvd3Mgc3ltbGlua3M7IHRvIHN0YXQgYSBzeW1saW5rIGFkZCB0aGUgYXJndW1lbnQKKyAgIGBgZm9sbG93X3N5bWxpbmtzPUZhbHNlYGAsIG9yIHVzZSA6ZnVuYzpgbHN0YXRgLikKIAotICAgVGhlIHJldHVybiB2YWx1ZSBpcyBhbiBvYmplY3Qgd2hvc2UgYXR0cmlidXRlcyBjb3JyZXNwb25kIHRvIHRoZSBtZW1iZXJzCi0gICBvZiB0aGUgOmM6dHlwZTpgc3RhdGAgc3RydWN0dXJlLCBuYW1lbHk6CisgICBUaGUgcmV0dXJuIHZhbHVlIGlzIGFuIG9iamVjdCB3aG9zZSBhdHRyaWJ1dGVzIGNvcnJlc3BvbmQgcm91Z2hseQorICAgdG8gdGhlIG1lbWJlcnMgb2YgdGhlIDpjOnR5cGU6YHN0YXRgIHN0cnVjdHVyZSwgbmFtZWx5OgogCiAgICAqIDphdHRyOmBzdF9tb2RlYCAtIHByb3RlY3Rpb24gYml0cywKICAgICogOmF0dHI6YHN0X2lub2AgLSBpbm9kZSBudW1iZXIsCkBAIC0xMzIyLDEwICsxNzk3LDE4IEBACiAgICAqIDphdHRyOmBzdF91aWRgIC0gdXNlciBpZCBvZiBvd25lciwKICAgICogOmF0dHI6YHN0X2dpZGAgLSBncm91cCBpZCBvZiBvd25lciwKICAgICogOmF0dHI6YHN0X3NpemVgIC0gc2l6ZSBvZiBmaWxlLCBpbiBieXRlcywKLSAgICogOmF0dHI6YHN0X2F0aW1lYCAtIHRpbWUgb2YgbW9zdCByZWNlbnQgYWNjZXNzLAotICAgKiA6YXR0cjpgc3RfbXRpbWVgIC0gdGltZSBvZiBtb3N0IHJlY2VudCBjb250ZW50IG1vZGlmaWNhdGlvbiwKLSAgICogOmF0dHI6YHN0X2N0aW1lYCAtIHBsYXRmb3JtIGRlcGVuZGVudDsgdGltZSBvZiBtb3N0IHJlY2VudCBtZXRhZGF0YSBjaGFuZ2Ugb24KLSAgICAgVW5peCwgb3IgdGhlIHRpbWUgb2YgY3JlYXRpb24gb24gV2luZG93cykKKyAgICogOmF0dHI6YHN0X2F0aW1lYCAtIHRpbWUgb2YgbW9zdCByZWNlbnQgYWNjZXNzIGV4cHJlc3NlZCBpbiBzZWNvbmRzLAorICAgKiA6YXR0cjpgc3RfbXRpbWVgIC0gdGltZSBvZiBtb3N0IHJlY2VudCBjb250ZW50IG1vZGlmaWNhdGlvbgorICAgICBleHByZXNzZWQgaW4gc2Vjb25kcywKKyAgICogOmF0dHI6YHN0X2N0aW1lYCAtIHBsYXRmb3JtIGRlcGVuZGVudDsgdGltZSBvZiBtb3N0IHJlY2VudCBtZXRhZGF0YQorICAgICBjaGFuZ2Ugb24gVW5peCwgb3IgdGhlIHRpbWUgb2YgY3JlYXRpb24gb24gV2luZG93cywgZXhwcmVzc2VkIGluIHNlY29uZHMKKyAgICogOmF0dHI6YHN0X2F0aW1lX25zYCAtIHRpbWUgb2YgbW9zdCByZWNlbnQgYWNjZXNzCisgICAgIGV4cHJlc3NlZCBpbiBuYW5vc2Vjb25kcyBhcyBhbiBpbnRlZ2VyLAorICAgKiA6YXR0cjpgc3RfbXRpbWVfbnNgIC0gdGltZSBvZiBtb3N0IHJlY2VudCBjb250ZW50IG1vZGlmaWNhdGlvbgorICAgICBleHByZXNzZWQgaW4gbmFub3NlY29uZHMgYXMgYW4gaW50ZWdlciwKKyAgICogOmF0dHI6YHN0X2N0aW1lX25zYCAtIHBsYXRmb3JtIGRlcGVuZGVudDsgdGltZSBvZiBtb3N0IHJlY2VudCBtZXRhZGF0YQorICAgICBjaGFuZ2Ugb24gVW5peCwgb3IgdGhlIHRpbWUgb2YgY3JlYXRpb24gb24gV2luZG93cywKKyAgICAgZXhwcmVzc2VkIGluIG5hbm9zZWNvbmRzIGFzIGFuIGludGVnZXIKIAogICAgT24gc29tZSBVbml4IHN5c3RlbXMgKHN1Y2ggYXMgTGludXgpLCB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgbWF5IGFsc28gYmUKICAgIGF2YWlsYWJsZToKQEAgLTEzNTUsMTMgKzE4MzgsMjYgQEAKICAgICAgIG9yIEZBVDMyIGZpbGUgc3lzdGVtcywgOmF0dHI6YHN0X210aW1lYCBoYXMgMi1zZWNvbmQgcmVzb2x1dGlvbiwgYW5kCiAgICAgICA6YXR0cjpgc3RfYXRpbWVgIGhhcyBvbmx5IDEtZGF5IHJlc29sdXRpb24uICBTZWUgeW91ciBvcGVyYXRpbmcgc3lzdGVtCiAgICAgICBkb2N1bWVudGF0aW9uIGZvciBkZXRhaWxzLgorICAgICAgU2ltaWxhcmx5LCBhbHRob3VnaCA6YXR0cjpgc3RfYXRpbWVfbnNgLCA6YXR0cjpgc3RfbXRpbWVfbnNgLAorICAgICAgYW5kIDphdHRyOmBzdF9jdGltZV9uc2AgYXJlIGFsd2F5cyBleHByZXNzZWQgaW4gbmFub3NlY29uZHMsIG1hbnkKKyAgICAgIHN5c3RlbXMgZG8gbm90IHByb3ZpZGUgbmFub3NlY29uZCBwcmVjaXNpb24uICBPbiBzeXN0ZW1zIHRoYXQgZG8KKyAgICAgIHByb3ZpZGUgbmFub3NlY29uZCBwcmVjaXNpb24sIHRoZSBmbG9hdGluZy1wb2ludCBvYmplY3QgdXNlZCB0bworICAgICAgc3RvcmUgOmF0dHI6YHN0X2F0aW1lYCwgOmF0dHI6YHN0X210aW1lYCwgYW5kIDphdHRyOmBzdF9jdGltZWAKKyAgICAgIGNhbm5vdCBwcmVzZXJ2ZSBhbGwgb2YgaXQsIGFuZCBhcyBzdWNoIHdpbGwgYmUgc2xpZ2h0bHkgaW5leGFjdC4KKyAgICAgIElmIHlvdSBuZWVkIHRoZSBleGFjdCB0aW1lc3RhbXBzIHlvdSBzaG91bGQgYWx3YXlzIHVzZQorICAgICAgOmF0dHI6YHN0X2F0aW1lX25zYCwgOmF0dHI6YHN0X210aW1lX25zYCwgYW5kIDphdHRyOmBzdF9jdGltZV9uc2AuCiAKLSAgIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgcmV0dXJuIHZhbHVlIG9mIDpmdW5jOmB+b3Muc3RhdGAgaXMgYWxzbyBhY2Nlc3NpYmxlCi0gICBhcyBhIHR1cGxlIG9mIGF0IGxlYXN0IDEwIGludGVnZXJzIGdpdmluZyB0aGUgbW9zdCBpbXBvcnRhbnQgKGFuZCBwb3J0YWJsZSkKLSAgIG1lbWJlcnMgb2YgdGhlIDpjOnR5cGU6YHN0YXRgIHN0cnVjdHVyZSwgaW4gdGhlIG9yZGVyIDphdHRyOmBzdF9tb2RlYCwKLSAgIDphdHRyOmBzdF9pbm9gLCA6YXR0cjpgc3RfZGV2YCwgOmF0dHI6YHN0X25saW5rYCwgOmF0dHI6YHN0X3VpZGAsCi0gICA6YXR0cjpgc3RfZ2lkYCwgOmF0dHI6YHN0X3NpemVgLCA6YXR0cjpgc3RfYXRpbWVgLCA6YXR0cjpgc3RfbXRpbWVgLAotICAgOmF0dHI6YHN0X2N0aW1lYC4gTW9yZSBpdGVtcyBtYXkgYmUgYWRkZWQgYXQgdGhlIGVuZCBieSBzb21lIGltcGxlbWVudGF0aW9ucy4KKyAgIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB0aGUgcmV0dXJuIHZhbHVlIG9mIDpmdW5jOmB+b3Muc3RhdGAgaXMgYWxzbworICAgYWNjZXNzaWJsZSBhcyBhIHR1cGxlIG9mIGF0IGxlYXN0IDEwIGludGVnZXJzIGdpdmluZyB0aGUgbW9zdCBpbXBvcnRhbnQgKGFuZAorICAgcG9ydGFibGUpIG1lbWJlcnMgb2YgdGhlIDpjOnR5cGU6YHN0YXRgIHN0cnVjdHVyZSwgaW4gdGhlIG9yZGVyCisgICA6YXR0cjpgc3RfbW9kZWAsIDphdHRyOmBzdF9pbm9gLCA6YXR0cjpgc3RfZGV2YCwgOmF0dHI6YHN0X25saW5rYCwKKyAgIDphdHRyOmBzdF91aWRgLCA6YXR0cjpgc3RfZ2lkYCwgOmF0dHI6YHN0X3NpemVgLCA6YXR0cjpgc3RfYXRpbWVgLAorICAgOmF0dHI6YHN0X210aW1lYCwgOmF0dHI6YHN0X2N0aW1lYC4gTW9yZSBpdGVtcyBtYXkgYmUgYWRkZWQgYXQgdGhlIGVuZCBieQorICAgc29tZSBpbXBsZW1lbnRhdGlvbnMuCisKKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHN1cHBvcnQgOnJlZjpgc3BlY2lmeWluZyBhIGZpbGUgZGVzY3JpcHRvcgorICAgPHBhdGhfZmQ+YCwgOnJlZjpgc3BlY2lmeWluZyBhIGZpbGUgZGVzY3JpcHRvciA8cGF0aF9mZD5gIGFuZCA6cmVmOmBub3QKKyAgIGZvbGxvd2luZyBzeW1saW5rcyA8Zm9sbG93X3N5bWxpbmtzPmAuCiAKICAgIC4uIGluZGV4OjogbW9kdWxlOiBzdGF0CiAKQEAgLTEzODIsNiArMTg3OCwxMiBAQAogCiAgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCiAKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgQWRkZWQgdGhlICpkaXJfZmQqIGFuZCAqZm9sbG93X3N5bWxpbmtzKiBhcmd1bWVudHMsCisgICAgICBzcGVjaWZ5aW5nIGEgZmlsZSBkZXNjcmlwdG9yIGluc3RlYWQgb2YgYSBwYXRoLAorICAgICAgYW5kIHRoZSA6YXR0cjpgc3RfYXRpbWVfbnNgLCA6YXR0cjpgc3RfbXRpbWVfbnNgLAorICAgICAgYW5kIDphdHRyOmBzdF9jdGltZV9uc2AgbWVtYmVycy4KKwogCiAuLiBmdW5jdGlvbjo6IHN0YXRfZmxvYXRfdGltZXMoW25ld3ZhbHVlXSkKIApAQCAtMTQwNyw2ICsxOTA5LDggQEAKICAgIGFyZSBwcm9jZXNzZWQsIHRoaXMgYXBwbGljYXRpb24gc2hvdWxkIHR1cm4gdGhlIGZlYXR1cmUgb2ZmIHVudGlsIHRoZSBsaWJyYXJ5CiAgICBoYXMgYmVlbiBjb3JyZWN0ZWQuCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKwogCiAuLiBmdW5jdGlvbjo6IHN0YXR2ZnMocGF0aCkKIApAQCAtMTQyMiwzNCArMTkyNiwxMTggQEAKICAgIHJlYWQtb25seSwgYW5kIGlmIDpjb25zdDpgU1RfTk9TVUlEYCBpcyBzZXQsIHRoZSBzZW1hbnRpY3Mgb2YKICAgIHNldHVpZC9zZXRnaWQgYml0cyBhcmUgZGlzYWJsZWQgb3Igbm90IHN1cHBvcnRlZC4KIAorICAgVGhpcyBmdW5jdGlvbiBjYW4gc3VwcG9ydCA6cmVmOmBzcGVjaWZ5aW5nIGEgZmlsZSBkZXNjcmlwdG9yIDxwYXRoX2ZkPmAuCisKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCiAgICAgICBUaGUgOmNvbnN0OmBTVF9SRE9OTFlgIGFuZCA6Y29uc3Q6YFNUX05PU1VJRGAgY29uc3RhbnRzIHdlcmUgYWRkZWQuCiAKICAgIEF2YWlsYWJpbGl0eTogVW5peC4KIAorICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBBZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yIGZvciAqcGF0aCouCiAKLS4uIGZ1bmN0aW9uOjogc3ltbGluayhzb3VyY2UsIGxpbmtfbmFtZSkKLSAgICAgICAgICAgICAgc3ltbGluayhzb3VyY2UsIGxpbmtfbmFtZSwgdGFyZ2V0X2lzX2RpcmVjdG9yeT1GYWxzZSkKKworLi4gZGF0YTo6IHN1cHBvcnRzX2Rpcl9mZAorCisgICBBIDpjbGFzczpgfmNvbGxlY3Rpb25zLlNldGAgb2JqZWN0IGluZGljYXRpbmcgd2hpY2ggZnVuY3Rpb25zIGluIHRoZQorICAgOm1vZDpgb3NgIG1vZHVsZSBwZXJtaXQgdXNlIG9mIHRoZWlyICpkaXJfZmQqIHBhcmFtZXRlci4gIERpZmZlcmVudCBwbGF0Zm9ybXMKKyAgIHByb3ZpZGUgZGlmZmVyZW50IGZ1bmN0aW9uYWxpdHksIGFuZCBhbiBvcHRpb24gdGhhdCBtaWdodCB3b3JrIG9uIG9uZSBtaWdodAorICAgYmUgdW5zdXBwb3J0ZWQgb24gYW5vdGhlci4gIEZvciBjb25zaXN0ZW5jeSdzIHNha2VzLCBmdW5jdGlvbnMgdGhhdCBzdXBwb3J0CisgICAqZGlyX2ZkKiBhbHdheXMgYWxsb3cgc3BlY2lmeWluZyB0aGUgcGFyYW1ldGVyLCBidXQgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24KKyAgIGlmIHRoZSBmdW5jdGlvbmFsaXR5IGlzIG5vdCBhY3R1YWxseSBhdmFpbGFibGUuCisKKyAgIFRvIGNoZWNrIHdoZXRoZXIgYSBwYXJ0aWN1bGFyIGZ1bmN0aW9uIHBlcm1pdHMgdXNlIG9mIGl0cyAqZGlyX2ZkKgorICAgcGFyYW1ldGVyLCB1c2UgdGhlIGBgaW5gYCBvcGVyYXRvciBvbiBgYHN1cHBvcnRzX2Rpcl9mZGBgLiAgQXMgYW4gZXhhbXBsZSwKKyAgIHRoaXMgZXhwcmVzc2lvbiBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlICpkaXJfZmQqIHBhcmFtZXRlciBvZiA6ZnVuYzpgb3Muc3RhdGAKKyAgIGlzIGxvY2FsbHkgYXZhaWxhYmxlOjoKKworICAgICAgIG9zLnN0YXQgaW4gb3Muc3VwcG9ydHNfZGlyX2ZkCisKKyAgIEN1cnJlbnRseSAqZGlyX2ZkKiBwYXJhbWV0ZXJzIG9ubHkgd29yayBvbiBVbml4IHBsYXRmb3Jtczsgbm9uZSBvZiB0aGVtIHdvcmsKKyAgIG9uIFdpbmRvd3MuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGRhdGE6OiBzdXBwb3J0c19lZmZlY3RpdmVfaWRzCisKKyAgIEEgOmNsYXNzOmB+Y29sbGVjdGlvbnMuU2V0YCBvYmplY3QgaW5kaWNhdGluZyB3aGljaCBmdW5jdGlvbnMgaW4gdGhlCisgICA6bW9kOmBvc2AgbW9kdWxlIHBlcm1pdCB1c2Ugb2YgdGhlICplZmZlY3RpdmVfaWRzKiBwYXJhbWV0ZXIgZm9yCisgICA6ZnVuYzpgb3MuYWNjZXNzYC4gIElmIHRoZSBsb2NhbCBwbGF0Zm9ybSBzdXBwb3J0cyBpdCwgdGhlIGNvbGxlY3Rpb24gd2lsbAorICAgY29udGFpbiA6ZnVuYzpgb3MuYWNjZXNzYCwgb3RoZXJ3aXNlIGl0IHdpbGwgYmUgZW1wdHkuCisKKyAgIFRvIGNoZWNrIHdoZXRoZXIgeW91IGNhbiB1c2UgdGhlICplZmZlY3RpdmVfaWRzKiBwYXJhbWV0ZXIgZm9yCisgICA6ZnVuYzpgb3MuYWNjZXNzYCwgdXNlIHRoZSBgYGluYGAgb3BlcmF0b3Igb24gYGBzdXBwb3J0c19kaXJfZmRgYCwgbGlrZSBzbzo6CisKKyAgICAgICBvcy5hY2Nlc3MgaW4gb3Muc3VwcG9ydHNfZWZmZWN0aXZlX2lkcworCisgICBDdXJyZW50bHkgKmVmZmVjdGl2ZV9pZHMqIG9ubHkgd29ya3Mgb24gVW5peCBwbGF0Zm9ybXM7IGl0IGRvZXMgbm90IHdvcmsgb24KKyAgIFdpbmRvd3MuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGRhdGE6OiBzdXBwb3J0c19mZAorCisgICBBIDpjbGFzczpgfmNvbGxlY3Rpb25zLlNldGAgb2JqZWN0IGluZGljYXRpbmcgd2hpY2ggZnVuY3Rpb25zIGluIHRoZQorICAgOm1vZDpgb3NgIG1vZHVsZSBwZXJtaXQgc3BlY2lmeWluZyB0aGVpciAqcGF0aCogcGFyYW1ldGVyIGFzIGFuIG9wZW4gZmlsZQorICAgZGVzY3JpcHRvci4gIERpZmZlcmVudCBwbGF0Zm9ybXMgcHJvdmlkZSBkaWZmZXJlbnQgZnVuY3Rpb25hbGl0eSwgYW5kIGFuCisgICBvcHRpb24gdGhhdCBtaWdodCB3b3JrIG9uIG9uZSBtaWdodCBiZSB1bnN1cHBvcnRlZCBvbiBhbm90aGVyLiAgRm9yCisgICBjb25zaXN0ZW5jeSdzIHNha2VzLCBmdW5jdGlvbnMgdGhhdCBzdXBwb3J0ICpmZCogYWx3YXlzIGFsbG93IHNwZWNpZnlpbmcKKyAgIHRoZSBwYXJhbWV0ZXIsIGJ1dCB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiB0aGUgZnVuY3Rpb25hbGl0eSBpcyBub3QKKyAgIGFjdHVhbGx5IGF2YWlsYWJsZS4KKworICAgVG8gY2hlY2sgd2hldGhlciBhIHBhcnRpY3VsYXIgZnVuY3Rpb24gcGVybWl0cyBzcGVjaWZ5aW5nIGFuIG9wZW4gZmlsZQorICAgZGVzY3JpcHRvciBmb3IgaXRzICpwYXRoKiBwYXJhbWV0ZXIsIHVzZSB0aGUgYGBpbmBgIG9wZXJhdG9yIG9uCisgICBgYHN1cHBvcnRzX2ZkYGAuIEFzIGFuIGV4YW1wbGUsIHRoaXMgZXhwcmVzc2lvbiBkZXRlcm1pbmVzIHdoZXRoZXIKKyAgIDpmdW5jOmBvcy5jaGRpcmAgYWNjZXB0cyBvcGVuIGZpbGUgZGVzY3JpcHRvcnMgd2hlbiBjYWxsZWQgb24geW91ciBsb2NhbAorICAgcGxhdGZvcm06OgorCisgICAgICAgb3MuY2hkaXIgaW4gb3Muc3VwcG9ydHNfZmQKKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZGF0YTo6IHN1cHBvcnRzX2ZvbGxvd19zeW1saW5rcworCisgICBBIDpjbGFzczpgfmNvbGxlY3Rpb25zLlNldGAgb2JqZWN0IGluZGljYXRpbmcgd2hpY2ggZnVuY3Rpb25zIGluIHRoZQorICAgOm1vZDpgb3NgIG1vZHVsZSBwZXJtaXQgdXNlIG9mIHRoZWlyICpmb2xsb3dfc3ltbGlua3MqIHBhcmFtZXRlci4gIERpZmZlcmVudAorICAgcGxhdGZvcm1zIHByb3ZpZGUgZGlmZmVyZW50IGZ1bmN0aW9uYWxpdHksIGFuZCBhbiBvcHRpb24gdGhhdCBtaWdodCB3b3JrIG9uCisgICBvbmUgbWlnaHQgYmUgdW5zdXBwb3J0ZWQgb24gYW5vdGhlci4gIEZvciBjb25zaXN0ZW5jeSdzIHNha2VzLCBmdW5jdGlvbnMgdGhhdAorICAgc3VwcG9ydCAqZm9sbG93X3N5bWxpbmtzKiBhbHdheXMgYWxsb3cgc3BlY2lmeWluZyB0aGUgcGFyYW1ldGVyLCBidXQgd2lsbAorICAgdGhyb3cgYW4gZXhjZXB0aW9uIGlmIHRoZSBmdW5jdGlvbmFsaXR5IGlzIG5vdCBhY3R1YWxseSBhdmFpbGFibGUuCisKKyAgIFRvIGNoZWNrIHdoZXRoZXIgYSBwYXJ0aWN1bGFyIGZ1bmN0aW9uIHBlcm1pdHMgdXNlIG9mIGl0cyAqZm9sbG93X3N5bWxpbmtzKgorICAgcGFyYW1ldGVyLCB1c2UgdGhlIGBgaW5gYCBvcGVyYXRvciBvbiBgYHN1cHBvcnRzX2ZvbGxvd19zeW1saW5rc2BgLiAgQXMgYW4KKyAgIGV4YW1wbGUsIHRoaXMgZXhwcmVzc2lvbiBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlICpmb2xsb3dfc3ltbGlua3MqIHBhcmFtZXRlcgorICAgb2YgOmZ1bmM6YG9zLnN0YXRgIGlzIGxvY2FsbHkgYXZhaWxhYmxlOjoKKworICAgICAgIG9zLnN0YXQgaW4gb3Muc3VwcG9ydHNfZm9sbG93X3N5bWxpbmtzCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogc3ltbGluayhzb3VyY2UsIGxpbmtfbmFtZSwgdGFyZ2V0X2lzX2RpcmVjdG9yeT1GYWxzZSwgKiwgZGlyX2ZkPU5vbmUpCiAKICAgIENyZWF0ZSBhIHN5bWJvbGljIGxpbmsgcG9pbnRpbmcgdG8gKnNvdXJjZSogbmFtZWQgKmxpbmtfbmFtZSouCiAKLSAgIE9uIFdpbmRvd3MsIHN5bWxpbmsgdmVyc2lvbiB0YWtlcyBhbiBhZGRpdGlvbmFsIG9wdGlvbmFsIHBhcmFtZXRlciwKLSAgICp0YXJnZXRfaXNfZGlyZWN0b3J5Kiwgd2hpY2ggZGVmYXVsdHMgdG8gYGBGYWxzZWBgLgotCi0gICBPbiBXaW5kb3dzLCBhIHN5bWxpbmsgcmVwcmVzZW50cyBhIGZpbGUgb3IgYSBkaXJlY3RvcnksIGFuZCBkb2VzIG5vdCBtb3JwaCB0bwotICAgdGhlIHRhcmdldCBkeW5hbWljYWxseS4gIElmICp0YXJnZXRfaXNfZGlyZWN0b3J5KiBpcyBzZXQgdG8gYGBUcnVlYGAsIHRoZQotICAgc3ltbGluayB3aWxsIGJlIGNyZWF0ZWQgYXMgYSBkaXJlY3Rvcnkgc3ltbGluaywgb3RoZXJ3aXNlIGFzIGEgZmlsZSBzeW1saW5rCi0gICAodGhlIGRlZmF1bHQpLgorICAgT24gV2luZG93cywgYSBzeW1saW5rIHJlcHJlc2VudHMgZWl0aGVyIGEgZmlsZSBvciBhIGRpcmVjdG9yeSwgYW5kIGRvZXMgbm90CisgICBtb3JwaCB0byB0aGUgdGFyZ2V0IGR5bmFtaWNhbGx5LiAgSWYgKnRhcmdldF9pc19kaXJlY3RvcnkqIGlzIHNldCB0byBgYFRydWVgYCwKKyAgIHRoZSBzeW1saW5rIHdpbGwgYmUgY3JlYXRlZCBhcyBhIGRpcmVjdG9yeSBzeW1saW5rLCBvdGhlcndpc2UgYXMgYSBmaWxlIHN5bWxpbmsKKyAgICh0aGUgZGVmYXVsdCkuICBPbiBub24tV2luZG93IHBsYXRmb3JtcywgKnRhcmdldF9pc19kaXJlY3RvcnkqIGlzIGlnbm9yZWQuCiAKICAgIFN5bWJvbGljIGxpbmsgc3VwcG9ydCB3YXMgaW50cm9kdWNlZCBpbiBXaW5kb3dzIDYuMCAoVmlzdGEpLiAgOmZ1bmM6YHN5bWxpbmtgCiAgICB3aWxsIHJhaXNlIGEgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAgb24gV2luZG93cyB2ZXJzaW9ucyBlYXJsaWVyIHRoYW4gNi4wLgogCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IDpyZWY6YHBhdGhzIHJlbGF0aXZlIHRvIGRpcmVjdG9yeSBkZXNjcmlwdG9ycworICAgPGRpcl9mZD5gLgorCiAgICAuLiBub3RlOjoKIAotICAgICAgVGhlICpTZUNyZWF0ZVN5bWJvbGljTGlua1ByaXZpbGVnZSogaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG8gc3VjY2Vzc2Z1bGx5Ci0gICAgICBjcmVhdGUgc3ltbGlua3MuIFRoaXMgcHJpdmlsZWdlIGlzIG5vdCB0eXBpY2FsbHkgZ3JhbnRlZCB0byByZWd1bGFyCi0gICAgICB1c2VycyBidXQgaXMgYXZhaWxhYmxlIHRvIGFjY291bnRzIHdoaWNoIGNhbiBlc2NhbGF0ZSBwcml2aWxlZ2VzIHRvIHRoZQotICAgICAgYWRtaW5pc3RyYXRvciBsZXZlbC4gRWl0aGVyIG9idGFpbmluZyB0aGUgcHJpdmlsZWdlIG9yIHJ1bm5pbmcgeW91cgorICAgICAgT24gV2luZG93cywgdGhlICpTZUNyZWF0ZVN5bWJvbGljTGlua1ByaXZpbGVnZSogaXMgcmVxdWlyZWQgaW4gb3JkZXIgdG8KKyAgICAgIHN1Y2Nlc3NmdWxseSBjcmVhdGUgc3ltbGlua3MuIFRoaXMgcHJpdmlsZWdlIGlzIG5vdCB0eXBpY2FsbHkgZ3JhbnRlZCB0bworICAgICAgcmVndWxhciB1c2VycyBidXQgaXMgYXZhaWxhYmxlIHRvIGFjY291bnRzIHdoaWNoIGNhbiBlc2NhbGF0ZSBwcml2aWxlZ2VzCisgICAgICB0byB0aGUgYWRtaW5pc3RyYXRvciBsZXZlbC4gRWl0aGVyIG9idGFpbmluZyB0aGUgcHJpdmlsZWdlIG9yIHJ1bm5pbmcgeW91cgogICAgICAgYXBwbGljYXRpb24gYXMgYW4gYWRtaW5pc3RyYXRvciBhcmUgd2F5cyB0byBzdWNjZXNzZnVsbHkgY3JlYXRlIHN5bWxpbmtzLgogCiAgICAgICA6ZXhjOmBPU0Vycm9yYCBpcyByYWlzZWQgd2hlbiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IGFuIHVucHJpdmlsZWdlZApAQCAtMTQ2MCwzMSArMjA0OCw4NSBAQAogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIFdpbmRvd3MgNi4wIChWaXN0YSkgc3ltYm9saWMgbGlua3MuCiAKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgQWRkZWQgdGhlICpkaXJfZmQqIGFyZ3VtZW50LCBhbmQgbm93IGFsbG93ICp0YXJnZXRfaXNfZGlyZWN0b3J5KgorICAgICAgb24gbm9uLVdpbmRvd3MgcGxhdGZvcm1zLgogCi0uLiBmdW5jdGlvbjo6IHVubGluayhwYXRoKQogCi0gICBSZW1vdmUgKGRlbGV0ZSkgdGhlIGZpbGUgKnBhdGgqLiAgVGhpcyBpcyB0aGUgc2FtZSBmdW5jdGlvbiBhcwotICAgOmZ1bmM6YHJlbW92ZWA7IHRoZSA6ZnVuYzpgdW5saW5rYCBuYW1lIGlzIGl0cyB0cmFkaXRpb25hbCBVbml4Ci0gICBuYW1lLgorLi4gZnVuY3Rpb246OiBzeW5jKCkKKworICAgRm9yY2Ugd3JpdGUgb2YgZXZlcnl0aGluZyB0byBkaXNrLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogdHJ1bmNhdGUocGF0aCwgbGVuZ3RoKQorCisgICBUcnVuY2F0ZSB0aGUgZmlsZSBjb3JyZXNwb25kaW5nIHRvICpwYXRoKiwgc28gdGhhdCBpdCBpcyBhdCBtb3N0CisgICAqbGVuZ3RoKiBieXRlcyBpbiBzaXplLgorCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IDpyZWY6YHNwZWNpZnlpbmcgYSBmaWxlIGRlc2NyaXB0b3IgPHBhdGhfZmQ+YC4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBmdW5jdGlvbjo6IHVubGluayhwYXRoLCAqLCBkaXJfZmQ9Tm9uZSkKKworICAgUmVtb3ZlIChkZWxldGUpIHRoZSBmaWxlICpwYXRoKi4gIFRoaXMgZnVuY3Rpb24gaXMgaWRlbnRpY2FsIHRvCisgICA6ZnVuYzpgcmVtb3ZlYDsgdGhlIGBgdW5saW5rYGAgbmFtZSBpcyBpdHMgdHJhZGl0aW9uYWwgVW5peAorICAgbmFtZS4gIFBsZWFzZSBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIDpmdW5jOmByZW1vdmVgIGZvcgorICAgZnVydGhlciBpbmZvcm1hdGlvbi4KIAogICAgQXZhaWxhYmlsaXR5OiBVbml4LCBXaW5kb3dzLgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgIFRoZSAqZGlyX2ZkKiBwYXJhbWV0ZXIuCiAKLS4uIGZ1bmN0aW9uOjogdXRpbWUocGF0aCwgdGltZXMpCiAKLSAgIFNldCB0aGUgYWNjZXNzIGFuZCBtb2RpZmllZCB0aW1lcyBvZiB0aGUgZmlsZSBzcGVjaWZpZWQgYnkgKnBhdGgqLiBJZiAqdGltZXMqCi0gICBpcyBgYE5vbmVgYCwgdGhlbiB0aGUgZmlsZSdzIGFjY2VzcyBhbmQgbW9kaWZpZWQgdGltZXMgYXJlIHNldCB0byB0aGUgY3VycmVudAotICAgdGltZS4gKFRoZSBlZmZlY3QgaXMgc2ltaWxhciB0byBydW5uaW5nIHRoZSBVbml4IHByb2dyYW0gOnByb2dyYW06YHRvdWNoYCBvbgotICAgdGhlIHBhdGguKSAgT3RoZXJ3aXNlLCAqdGltZXMqIG11c3QgYmUgYSAyLXR1cGxlIG9mIG51bWJlcnMsIG9mIHRoZSBmb3JtCi0gICBgYChhdGltZSwgbXRpbWUpYGAgd2hpY2ggaXMgdXNlZCB0byBzZXQgdGhlIGFjY2VzcyBhbmQgbW9kaWZpZWQgdGltZXMsCi0gICByZXNwZWN0aXZlbHkuIFdoZXRoZXIgYSBkaXJlY3RvcnkgY2FuIGJlIGdpdmVuIGZvciAqcGF0aCogZGVwZW5kcyBvbiB3aGV0aGVyCi0gICB0aGUgb3BlcmF0aW5nIHN5c3RlbSBpbXBsZW1lbnRzIGRpcmVjdG9yaWVzIGFzIGZpbGVzIChmb3IgZXhhbXBsZSwgV2luZG93cwotICAgZG9lcyBub3QpLiAgTm90ZSB0aGF0IHRoZSBleGFjdCB0aW1lcyB5b3Ugc2V0IGhlcmUgbWF5IG5vdCBiZSByZXR1cm5lZCBieSBhCi0gICBzdWJzZXF1ZW50IDpmdW5jOmB+b3Muc3RhdGAgY2FsbCwgZGVwZW5kaW5nIG9uIHRoZSByZXNvbHV0aW9uIHdpdGggd2hpY2ggeW91cgotICAgb3BlcmF0aW5nIHN5c3RlbSByZWNvcmRzIGFjY2VzcyBhbmQgbW9kaWZpY2F0aW9uIHRpbWVzOyBzZWUgOmZ1bmM6YH5vcy5zdGF0YC4KKy4uIGZ1bmN0aW9uOjogdXRpbWUocGF0aCwgdGltZXM9Tm9uZSwgKiwgbnM9Tm9uZSwgZGlyX2ZkPU5vbmUsIGZvbGxvd19zeW1saW5rcz1UcnVlKQorCisgICBTZXQgdGhlIGFjY2VzcyBhbmQgbW9kaWZpZWQgdGltZXMgb2YgdGhlIGZpbGUgc3BlY2lmaWVkIGJ5ICpwYXRoKi4KKworICAgOmZ1bmM6YHV0aW1lYCB0YWtlcyB0d28gb3B0aW9uYWwgcGFyYW1ldGVycywgKnRpbWVzKiBhbmQgKm5zKi4KKyAgIFRoZXNlIHNwZWNpZnkgdGhlIHRpbWVzIHNldCBvbiAqcGF0aCogYW5kIGFyZSB1c2VkIGFzIGZvbGxvd3M6CisKKyAgIC0gSWYgKm5zKiBpcyBub3QgYGBOb25lYGAsCisgICAgIGl0IG11c3QgYmUgYSAyLXR1cGxlIG9mIHRoZSBmb3JtIGBgKGF0aW1lX25zLCBtdGltZV9ucylgYAorICAgICB3aGVyZSBlYWNoIG1lbWJlciBpcyBhbiBpbnQgZXhwcmVzc2luZyBuYW5vc2Vjb25kcy4KKyAgIC0gSWYgKnRpbWVzKiBpcyBub3QgYGBOb25lYGAsCisgICAgIGl0IG11c3QgYmUgYSAyLXR1cGxlIG9mIHRoZSBmb3JtIGBgKGF0aW1lLCBtdGltZSlgYAorICAgICB3aGVyZSBlYWNoIG1lbWJlciBpcyBhbiBpbnQgb3IgZmxvYXQgZXhwcmVzc2luZyBzZWNvbmRzLgorICAgLSBJZiAqdGltZXMqIGFuZCAqbnMqIGFyZSBib3RoIGBgTm9uZWBgLAorICAgICB0aGlzIGlzIGVxdWl2YWxlbnQgdG8gc3BlY2lmeWluZyBgYG5zPShhdGltZV9ucywgbXRpbWVfbnMpYGAKKyAgICAgd2hlcmUgYm90aCB0aW1lcyBhcmUgdGhlIGN1cnJlbnQgdGltZS4KKyAgICAgKFRoZSBlZmZlY3QgaXMgc2ltaWxhciB0byBydW5uaW5nIHRoZSBVbml4IHByb2dyYW0KKyAgICAgOnByb2dyYW06YHRvdWNoYCBvbiAqcGF0aCouKQorCisgICBJdCBpcyBhbiBlcnJvciB0byBzcGVjaWZ5IHR1cGxlcyBmb3IgYm90aCAqdGltZXMqIGFuZCAqbnMqLgorCisgICBXaGV0aGVyIGEgZGlyZWN0b3J5IGNhbiBiZSBnaXZlbiBmb3IgKnBhdGgqCisgICBkZXBlbmRzIG9uIHdoZXRoZXIgdGhlIG9wZXJhdGluZyBzeXN0ZW0gaW1wbGVtZW50cyBkaXJlY3RvcmllcyBhcyBmaWxlcworICAgKGZvciBleGFtcGxlLCBXaW5kb3dzIGRvZXMgbm90KS4gIE5vdGUgdGhhdCB0aGUgZXhhY3QgdGltZXMgeW91IHNldCBoZXJlIG1heQorICAgbm90IGJlIHJldHVybmVkIGJ5IGEgc3Vic2VxdWVudCA6ZnVuYzpgfm9zLnN0YXRgIGNhbGwsIGRlcGVuZGluZyBvbiB0aGUKKyAgIHJlc29sdXRpb24gd2l0aCB3aGljaCB5b3VyIG9wZXJhdGluZyBzeXN0ZW0gcmVjb3JkcyBhY2Nlc3MgYW5kIG1vZGlmaWNhdGlvbgorICAgdGltZXM7IHNlZSA6ZnVuYzpgfm9zLnN0YXRgLiAgVGhlIGJlc3Qgd2F5IHRvIHByZXNlcnZlIGV4YWN0IHRpbWVzIGlzIHRvCisgICB1c2UgdGhlICpzdF9hdGltZV9ucyogYW5kICpzdF9tdGltZV9ucyogZmllbGRzIGZyb20gdGhlIDpmdW5jOmBvcy5zdGF0YAorICAgcmVzdWx0IG9iamVjdCB3aXRoIHRoZSAqbnMqIHBhcmFtZXRlciB0byBgdXRpbWVgLgorCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IDpyZWY6YHNwZWNpZnlpbmcgYSBmaWxlIGRlc2NyaXB0b3IgPHBhdGhfZmQ+YCwKKyAgIDpyZWY6YHBhdGhzIHJlbGF0aXZlIHRvIGRpcmVjdG9yeSBkZXNjcmlwdG9ycyA8ZGlyX2ZkPmAgYW5kIDpyZWY6YG5vdAorICAgZm9sbG93aW5nIHN5bWxpbmtzIDxmb2xsb3dfc3ltbGlua3M+YC4KIAogICAgQXZhaWxhYmlsaXR5OiBVbml4LCBXaW5kb3dzLgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IgZm9yICpwYXRoKiwKKyAgICAgIGFuZCB0aGUgKmRpcl9mZCosICpmb2xsb3dfc3ltbGlua3MqLCBhbmQgKm5zKiBwYXJhbWV0ZXJzLgorCiAKIC4uIGZ1bmN0aW9uOjogd2Fsayh0b3AsIHRvcGRvd249VHJ1ZSwgb25lcnJvcj1Ob25lLCBmb2xsb3dsaW5rcz1GYWxzZSkKIApAQCAtMTUzMSw5ICsyMTczLDkgQEAKIAogICAgLi4gbm90ZTo6CiAKLSAgICAgIEJlIGF3YXJlIHRoYXQgc2V0dGluZyAqZm9sbG93bGlua3MqIHRvIGBgVHJ1ZWBgIGNhbiBsZWFkIHRvIGluZmluaXRlIHJlY3Vyc2lvbiBpZiBhCi0gICAgICBsaW5rIHBvaW50cyB0byBhIHBhcmVudCBkaXJlY3Rvcnkgb2YgaXRzZWxmLiA6ZnVuYzpgd2Fsa2AgZG9lcyBub3Qga2VlcCB0cmFjayBvZgotICAgICAgdGhlIGRpcmVjdG9yaWVzIGl0IHZpc2l0ZWQgYWxyZWFkeS4KKyAgICAgIEJlIGF3YXJlIHRoYXQgc2V0dGluZyAqZm9sbG93bGlua3MqIHRvIGBgVHJ1ZWBgIGNhbiBsZWFkIHRvIGluZmluaXRlCisgICAgICByZWN1cnNpb24gaWYgYSBsaW5rIHBvaW50cyB0byBhIHBhcmVudCBkaXJlY3Rvcnkgb2YgaXRzZWxmLiA6ZnVuYzpgd2Fsa2AKKyAgICAgIGRvZXMgbm90IGtlZXAgdHJhY2sgb2YgdGhlIGRpcmVjdG9yaWVzIGl0IHZpc2l0ZWQgYWxyZWFkeS4KIAogICAgLi4gbm90ZTo6CiAKQEAgLTE1NjksNiArMjIxMSwxMzUgQEAKICAgICAgICAgICAgICAgb3Mucm1kaXIob3MucGF0aC5qb2luKHJvb3QsIG5hbWUpKQogCiAKKy4uIGZ1bmN0aW9uOjogZndhbGsodG9wPScuJywgdG9wZG93bj1UcnVlLCBvbmVycm9yPU5vbmUsIGZvbGxvd2xpbmtzPUZhbHNlLCAqLCBkaXJfZmQ9Tm9uZSkKKworICAgLi4gaW5kZXg6OgorICAgICAgc2luZ2xlOiBkaXJlY3Rvcnk7IHdhbGtpbmcKKyAgICAgIHNpbmdsZTogZGlyZWN0b3J5OyB0cmF2ZXJzYWwKKworICAgVGhpcyBiZWhhdmVzIGV4YWN0bHkgbGlrZSA6ZnVuYzpgd2Fsa2AsIGV4Y2VwdCB0aGF0IGl0IHlpZWxkcyBhIDQtdHVwbGUKKyAgIGBgKGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMsIGRpcmZkKWBgLCBhbmQgaXQgc3VwcG9ydHMgYGBkaXJfZmRgYC4KKworICAgKmRpcnBhdGgqLCAqZGlybmFtZXMqIGFuZCAqZmlsZW5hbWVzKiBhcmUgaWRlbnRpY2FsIHRvIDpmdW5jOmB3YWxrYCBvdXRwdXQsCisgICBhbmQgKmRpcmZkKiBpcyBhIGZpbGUgZGVzY3JpcHRvciByZWZlcnJpbmcgdG8gdGhlIGRpcmVjdG9yeSAqZGlycGF0aCouCisKKyAgIFRoaXMgZnVuY3Rpb24gYWx3YXlzIHN1cHBvcnRzIDpyZWY6YHBhdGhzIHJlbGF0aXZlIHRvIGRpcmVjdG9yeSBkZXNjcmlwdG9ycworICAgPGRpcl9mZD5gLgorCisgICAuLiBub3RlOjoKKworICAgICAgU2luY2UgOmZ1bmM6YGZ3YWxrYCB5aWVsZHMgZmlsZSBkZXNjcmlwdG9ycywgdGhvc2UgYXJlIG9ubHkgdmFsaWQgdW50aWwKKyAgICAgIHRoZSBuZXh0IGl0ZXJhdGlvbiBzdGVwLCBzbyB5b3Ugc2hvdWxkIGR1cGxpY2F0ZSB0aGVtIChlLmcuIHdpdGgKKyAgICAgIDpmdW5jOmBkdXBgKSBpZiB5b3Ugd2FudCB0byBrZWVwIHRoZW0gbG9uZ2VyLgorCisgICBUaGlzIGV4YW1wbGUgZGlzcGxheXMgdGhlIG51bWJlciBvZiBieXRlcyB0YWtlbiBieSBub24tZGlyZWN0b3J5IGZpbGVzIGluIGVhY2gKKyAgIGRpcmVjdG9yeSB1bmRlciB0aGUgc3RhcnRpbmcgZGlyZWN0b3J5LCBleGNlcHQgdGhhdCBpdCBkb2Vzbid0IGxvb2sgdW5kZXIgYW55CisgICBDVlMgc3ViZGlyZWN0b3J5OjoKKworICAgICAgaW1wb3J0IG9zCisgICAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMsIHJvb3RmZCBpbiBvcy5md2FsaygncHl0aG9uL0xpYi9lbWFpbCcpOgorICAgICAgICAgIHByaW50KHJvb3QsICJjb25zdW1lcyIsIGVuZD0iIikKKyAgICAgICAgICBwcmludChzdW0oW29zLnN0YXQobmFtZSwgZGlyX2ZkPXJvb3RmZCkuc3Rfc2l6ZSBmb3IgbmFtZSBpbiBmaWxlc10pLAorICAgICAgICAgICAgICAgIGVuZD0iIikKKyAgICAgICAgICBwcmludCgiYnl0ZXMgaW4iLCBsZW4oZmlsZXMpLCAibm9uLWRpcmVjdG9yeSBmaWxlcyIpCisgICAgICAgICAgaWYgJ0NWUycgaW4gZGlyczoKKyAgICAgICAgICAgICAgZGlycy5yZW1vdmUoJ0NWUycpICAjIGRvbid0IHZpc2l0IENWUyBkaXJlY3RvcmllcworCisgICBJbiB0aGUgbmV4dCBleGFtcGxlLCB3YWxraW5nIHRoZSB0cmVlIGJvdHRvbS11cCBpcyBlc3NlbnRpYWw6CisgICA6ZnVuYzpgdW5saW5rYXRgIGRvZXNuJ3QgYWxsb3cgZGVsZXRpbmcgYSBkaXJlY3RvcnkgYmVmb3JlIHRoZSBkaXJlY3RvcnkgaXMKKyAgIGVtcHR5OjoKKworICAgICAgIyBEZWxldGUgZXZlcnl0aGluZyByZWFjaGFibGUgZnJvbSB0aGUgZGlyZWN0b3J5IG5hbWVkIGluICJ0b3AiLAorICAgICAgIyBhc3N1bWluZyB0aGVyZSBhcmUgbm8gc3ltYm9saWMgbGlua3MuCisgICAgICAjIENBVVRJT046ICBUaGlzIGlzIGRhbmdlcm91cyEgIEZvciBleGFtcGxlLCBpZiB0b3AgPT0gJy8nLCBpdAorICAgICAgIyBjb3VsZCBkZWxldGUgYWxsIHlvdXIgZGlzayBmaWxlcy4KKyAgICAgIGltcG9ydCBvcworICAgICAgZm9yIHJvb3QsIGRpcnMsIGZpbGVzLCByb290ZmQgaW4gb3MuZndhbGsodG9wLCB0b3Bkb3duPUZhbHNlKToKKyAgICAgICAgICBmb3IgbmFtZSBpbiBmaWxlczoKKyAgICAgICAgICAgICAgb3MudW5saW5rYXQocm9vdGZkLCBuYW1lKQorICAgICAgICAgIGZvciBuYW1lIGluIGRpcnM6CisgICAgICAgICAgICAgIG9zLnVubGlua2F0KHJvb3RmZCwgbmFtZSwgb3MuQVRfUkVNT1ZFRElSKQorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKK0xpbnV4IGV4dGVuZGVkIGF0dHJpYnV0ZXMKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKK1RoZXNlIGZ1bmN0aW9ucyBhcmUgYWxsIGF2YWlsYWJsZSBvbiBMaW51eCBvbmx5LgorCisuLiBmdW5jdGlvbjo6IGdldHhhdHRyKHBhdGgsIGF0dHJpYnV0ZSwgKiwgZm9sbG93X3N5bWxpbmtzPVRydWUpCisKKyAgIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGV4dGVuZGVkIGZpbGVzeXN0ZW0gYXR0cmlidXRlICphdHRyaWJ1dGUqIGZvcgorICAgKnBhdGgqLiAqYXR0cmlidXRlKiBjYW4gYmUgYnl0ZXMgb3Igc3RyLiBJZiBpdCBpcyBzdHIsIGl0IGlzIGVuY29kZWQKKyAgIHdpdGggdGhlIGZpbGVzeXN0ZW0gZW5jb2RpbmcuCisKKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHN1cHBvcnQgOnJlZjpgc3BlY2lmeWluZyBhIGZpbGUgZGVzY3JpcHRvciA8cGF0aF9mZD5gIGFuZAorICAgOnJlZjpgbm90IGZvbGxvd2luZyBzeW1saW5rcyA8Zm9sbG93X3N5bWxpbmtzPmAuCisKKworLi4gZnVuY3Rpb246OiBsaXN0eGF0dHIocGF0aD1Ob25lLCAqLCBmb2xsb3dfc3ltbGlua3M9VHJ1ZSkKKworICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgZXh0ZW5kZWQgZmlsZXN5c3RlbSBhdHRyaWJ1dGVzIG9uICpwYXRoKi4gIFRoZQorICAgYXR0cmlidXRlcyBpbiB0aGUgbGlzdCBhcmUgcmVwcmVzZW50ZWQgYXMgc3RyaW5ncyBkZWNvZGVkIHdpdGggdGhlIGZpbGVzeXN0ZW0KKyAgIGVuY29kaW5nLiAgSWYgKnBhdGgqIGlzIGBgTm9uZWBgLCA6ZnVuYzpgbGlzdHhhdHRyYCB3aWxsIGV4YW1pbmUgdGhlIGN1cnJlbnQKKyAgIGRpcmVjdG9yeS4KKworICAgVGhpcyBmdW5jdGlvbiBjYW4gc3VwcG9ydCA6cmVmOmBzcGVjaWZ5aW5nIGEgZmlsZSBkZXNjcmlwdG9yIDxwYXRoX2ZkPmAgYW5kCisgICA6cmVmOmBub3QgZm9sbG93aW5nIHN5bWxpbmtzIDxmb2xsb3dfc3ltbGlua3M+YC4KKworCisuLiBmdW5jdGlvbjo6IHJlbW92ZXhhdHRyKHBhdGgsIGF0dHJpYnV0ZSwgKiwgZm9sbG93X3N5bWxpbmtzPVRydWUpCisKKyAgIFJlbW92ZXMgdGhlIGV4dGVuZGVkIGZpbGVzeXN0ZW0gYXR0cmlidXRlICphdHRyaWJ1dGUqIGZyb20gKnBhdGgqLgorICAgKmF0dHJpYnV0ZSogc2hvdWxkIGJlIGJ5dGVzIG9yIHN0ci4gSWYgaXQgaXMgYSBzdHJpbmcsIGl0IGlzIGVuY29kZWQKKyAgIHdpdGggdGhlIGZpbGVzeXN0ZW0gZW5jb2RpbmcuCisKKyAgIFRoaXMgZnVuY3Rpb24gY2FuIHN1cHBvcnQgOnJlZjpgc3BlY2lmeWluZyBhIGZpbGUgZGVzY3JpcHRvciA8cGF0aF9mZD5gIGFuZAorICAgOnJlZjpgbm90IGZvbGxvd2luZyBzeW1saW5rcyA8Zm9sbG93X3N5bWxpbmtzPmAuCisKKworLi4gZnVuY3Rpb246OiBzZXR4YXR0cihwYXRoLCBhdHRyaWJ1dGUsIHZhbHVlLCBmbGFncz0wLCAqLCBmb2xsb3dfc3ltbGlua3M9VHJ1ZSkKKworICAgU2V0IHRoZSBleHRlbmRlZCBmaWxlc3lzdGVtIGF0dHJpYnV0ZSAqYXR0cmlidXRlKiBvbiAqcGF0aCogdG8gKnZhbHVlKi4KKyAgICphdHRyaWJ1dGUqIG11c3QgYmUgYSBieXRlcyBvciBzdHIgd2l0aCBubyBlbWJlZGRlZCBOVUxzLiBJZiBpdCBpcyBhIHN0ciwKKyAgIGl0IGlzIGVuY29kZWQgd2l0aCB0aGUgZmlsZXN5c3RlbSBlbmNvZGluZy4gICpmbGFncyogbWF5IGJlCisgICA6ZGF0YTpgWEFUVFJfUkVQTEFDRWAgb3IgOmRhdGE6YFhBVFRSX0NSRUFURWAuIElmIDpkYXRhOmBYQVRUUl9SRVBMQUNFYCBpcworICAgZ2l2ZW4gYW5kIHRoZSBhdHRyaWJ1dGUgZG9lcyBub3QgZXhpc3QsIGBgRUVYSVNUU2BgIHdpbGwgYmUgcmFpc2VkLgorICAgSWYgOmRhdGE6YFhBVFRSX0NSRUFURWAgaXMgZ2l2ZW4gYW5kIHRoZSBhdHRyaWJ1dGUgYWxyZWFkeSBleGlzdHMsIHRoZQorICAgYXR0cmlidXRlIHdpbGwgbm90IGJlIGNyZWF0ZWQgYW5kIGBgRU5PREFUQWBgIHdpbGwgYmUgcmFpc2VkLgorCisgICBUaGlzIGZ1bmN0aW9uIGNhbiBzdXBwb3J0IDpyZWY6YHNwZWNpZnlpbmcgYSBmaWxlIGRlc2NyaXB0b3IgPHBhdGhfZmQ+YCBhbmQKKyAgIDpyZWY6YG5vdCBmb2xsb3dpbmcgc3ltbGlua3MgPGZvbGxvd19zeW1saW5rcz5gLgorCisgICAuLiBub3RlOjoKKworICAgICAgQSBidWcgaW4gTGludXgga2VybmVsIHZlcnNpb25zIGxlc3MgdGhhbiAyLjYuMzkgY2F1c2VkIHRoZSBmbGFncyBhcmd1bWVudAorICAgICAgdG8gYmUgaWdub3JlZCBvbiBzb21lIGZpbGVzeXN0ZW1zLgorCisKKy4uIGRhdGE6OiBYQVRUUl9TSVpFX01BWAorCisgICBUaGUgbWF4aW11bSBzaXplIHRoZSB2YWx1ZSBvZiBhbiBleHRlbmRlZCBhdHRyaWJ1dGUgY2FuIGJlLiBDdXJyZW50bHksIHRoaXMKKyAgIGlzIDY0IGtpbG9ieXRlcyBvbiBMaW51eC4KKworCisuLiBkYXRhOjogWEFUVFJfQ1JFQVRFCisKKyAgIFRoaXMgaXMgYSBwb3NzaWJsZSB2YWx1ZSBmb3IgdGhlIGZsYWdzIGFyZ3VtZW50IGluIDpmdW5jOmBzZXR4YXR0cmAuIEl0CisgICBpbmRpY2F0ZXMgdGhlIG9wZXJhdGlvbiBtdXN0IGNyZWF0ZSBhbiBhdHRyaWJ1dGUuCisKKworLi4gZGF0YTo6IFhBVFRSX1JFUExBQ0UKKworICAgVGhpcyBpcyBhIHBvc3NpYmxlIHZhbHVlIGZvciB0aGUgZmxhZ3MgYXJndW1lbnQgaW4gOmZ1bmM6YHNldHhhdHRyYC4gSXQKKyAgIGluZGljYXRlcyB0aGUgb3BlcmF0aW9uIG11c3QgcmVwbGFjZSBhbiBleGlzdGluZyBhdHRyaWJ1dGUuCisKKwogLi4gX29zLXByb2Nlc3M6CiAKIFByb2Nlc3MgTWFuYWdlbWVudApAQCAtMTY0Miw4ICsyNDEzLDE2IEBACiAgICA6ZnVuYzpgZXhlY2xwYCwgOmZ1bmM6YGV4ZWN2YCwgYW5kIDpmdW5jOmBleGVjdnBgIGFsbCBjYXVzZSB0aGUgbmV3IHByb2Nlc3MgdG8KICAgIGluaGVyaXQgdGhlIGVudmlyb25tZW50IG9mIHRoZSBjdXJyZW50IHByb2Nlc3MuCiAKKyAgIEZvciA6ZnVuYzpgZXhlY3ZlYCBvbiBzb21lIHBsYXRmb3JtcywgKnBhdGgqIG1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBhbiBvcGVuCisgICBmaWxlIGRlc2NyaXB0b3IuICBUaGlzIGZ1bmN0aW9uYWxpdHkgbWF5IG5vdCBiZSBzdXBwb3J0ZWQgb24geW91ciBwbGF0Zm9ybTsKKyAgIHlvdSBjYW4gY2hlY2sgd2hldGhlciBvciBub3QgaXQgaXMgYXZhaWxhYmxlIHVzaW5nIDpkYXRhOmBvcy5zdXBwb3J0c19mZGAuCisgICBJZiBpdCBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgd2lsbCByYWlzZSBhIDpleGM6YE5vdEltcGxlbWVudGVkRXJyb3JgLgorCiAgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCiAKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgQWRkZWQgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciBmb3IgKnBhdGgqCisgICAgICBmb3IgOmZ1bmM6YGV4ZWN2ZWAuCiAKIC4uIGZ1bmN0aW9uOjogX2V4aXQobikKIApAQCAtMTgzMyw2ICsyNjEyLDggQEAKICAgIHdpbGwgYmUgc2V0IHRvICpzaWcqLiBUaGUgV2luZG93cyB2ZXJzaW9uIG9mIDpmdW5jOmBraWxsYCBhZGRpdGlvbmFsbHkgdGFrZXMKICAgIHByb2Nlc3MgaGFuZGxlcyB0byBiZSBraWxsZWQuCiAKKyAgIFNlZSBhbHNvIDpmdW5jOmBzaWduYWwucHRocmVhZF9raWxsYC4KKwogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAgICAgICBXaW5kb3dzIHN1cHBvcnQuCiAKQEAgLTIwMjMsMTQgKzI4MDQsMzAgQEAKIAogLi4gZnVuY3Rpb246OiB0aW1lcygpCiAKLSAgIFJldHVybiBhIDUtdHVwbGUgb2YgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyBpbmRpY2F0aW5nIGFjY3VtdWxhdGVkIChwcm9jZXNzb3IKLSAgIG9yIG90aGVyKSB0aW1lcywgaW4gc2Vjb25kcy4gIFRoZSBpdGVtcyBhcmU6IHVzZXIgdGltZSwgc3lzdGVtIHRpbWUsCi0gICBjaGlsZHJlbidzIHVzZXIgdGltZSwgY2hpbGRyZW4ncyBzeXN0ZW0gdGltZSwgYW5kIGVsYXBzZWQgcmVhbCB0aW1lIHNpbmNlIGEKLSAgIGZpeGVkIHBvaW50IGluIHRoZSBwYXN0LCBpbiB0aGF0IG9yZGVyLiAgU2VlIHRoZSBVbml4IG1hbnVhbCBwYWdlCi0gICA6bWFucGFnZTpgdGltZXMoMilgIG9yIHRoZSBjb3JyZXNwb25kaW5nIFdpbmRvd3MgUGxhdGZvcm0gQVBJIGRvY3VtZW50YXRpb24uCi0gICBPbiBXaW5kb3dzLCBvbmx5IHRoZSBmaXJzdCB0d28gaXRlbXMgYXJlIGZpbGxlZCwgdGhlIG90aGVycyBhcmUgemVyby4KKyAgIFJldHVybnMgdGhlIGN1cnJlbnQgZ2xvYmFsIHByb2Nlc3MgdGltZXMuCisgICBUaGUgcmV0dXJuIHZhbHVlIGlzIGFuIG9iamVjdCB3aXRoIGZpdmUgYXR0cmlidXRlczoKIAotICAgQXZhaWxhYmlsaXR5OiBVbml4LCBXaW5kb3dzCisgICAqIDphdHRyOmB1c2VyYCAtIHVzZXIgdGltZQorICAgKiA6YXR0cjpgc3lzdGVtYCAtIHN5c3RlbSB0aW1lCisgICAqIDphdHRyOmBjaGlsZHJlbl91c2VyYCAtIHVzZXIgdGltZSBvZiBhbGwgY2hpbGQgcHJvY2Vzc2VzCisgICAqIDphdHRyOmBjaGlsZHJlbl9zeXN0ZW1gIC0gc3lzdGVtIHRpbWUgb2YgYWxsIGNoaWxkIHByb2Nlc3NlcworICAgKiA6YXR0cjpgZWxhcHNlZGAgLSBlbGFwc2VkIHJlYWwgdGltZSBzaW5jZSBhIGZpeGVkIHBvaW50IGluIHRoZSBwYXN0CisKKyAgIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgdGhpcyBvYmplY3QgYWxzbyBiZWhhdmVzIGxpa2UgYSBmaXZlLXR1cGxlCisgICBjb250YWluaW5nIDphdHRyOmB1c2VyYCwgOmF0dHI6YHN5c3RlbWAsIDphdHRyOmBjaGlsZHJlbl91c2VyYCwKKyAgIDphdHRyOmBjaGlsZHJlbl9zeXN0ZW1gLCBhbmQgOmF0dHI6YGVsYXBzZWRgIGluIHRoYXQgb3JkZXIuCisKKyAgIFNlZSB0aGUgVW5peCBtYW51YWwgcGFnZQorICAgOm1hbnBhZ2U6YHRpbWVzKDIpYCBvciB0aGUgY29ycmVzcG9uZGluZyBXaW5kb3dzIFBsYXRmb3JtIEFQSSBkb2N1bWVudGF0aW9uLgorICAgT24gV2luZG93cywgb25seSA6YXR0cjpgdXNlcmAgYW5kIDphdHRyOmBzeXN0ZW1gIGFyZSBrbm93bjsgdGhlIG90aGVyCisgICBhdHRyaWJ1dGVzIGFyZSB6ZXJvLgorICAgT24gT1MvMiwgb25seSA6YXR0cjpgZWxhcHNlZGAgaXMga25vd247IHRoZSBvdGhlciBhdHRyaWJ1dGVzIGFyZSB6ZXJvLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBSZXR1cm4gdHlwZSBjaGFuZ2VkIGZyb20gYSB0dXBsZSB0byBhIHR1cGxlLWxpa2Ugb2JqZWN0CisgICAgICB3aXRoIG5hbWVkIGF0dHJpYnV0ZXMuCiAKIAogLi4gZnVuY3Rpb246OiB3YWl0KCkKQEAgLTIwNDMsNiArMjg0MCw1OCBAQAogCiAgICBBdmFpbGFiaWxpdHk6IFVuaXguCiAKKy4uIGZ1bmN0aW9uOjogd2FpdGlkKGlkdHlwZSwgaWQsIG9wdGlvbnMpCisKKyAgIFdhaXQgZm9yIHRoZSBjb21wbGV0aW9uIG9mIG9uZSBvciBtb3JlIGNoaWxkIHByb2Nlc3Nlcy4KKyAgICppZHR5cGUqIGNhbiBiZSA6ZGF0YTpgUF9QSURgLCA6ZGF0YTpgUF9QR0lEYCBvciA6ZGF0YTpgUF9BTExgLgorICAgKmlkKiBzcGVjaWZpZXMgdGhlIHBpZCB0byB3YWl0IG9uLgorICAgKm9wdGlvbnMqIGlzIGNvbnN0cnVjdGVkIGZyb20gdGhlIE9SaW5nIG9mIG9uZSBvciBtb3JlIG9mIDpkYXRhOmBXRVhJVEVEYCwKKyAgIDpkYXRhOmBXU1RPUFBFRGAgb3IgOmRhdGE6YFdDT05USU5VRURgIGFuZCBhZGRpdGlvbmFsbHkgbWF5IGJlIE9SZWQgd2l0aAorICAgOmRhdGE6YFdOT0hBTkdgIG9yIDpkYXRhOmBXTk9XQUlUYC4gVGhlIHJldHVybiB2YWx1ZSBpcyBhbiBvYmplY3QKKyAgIHJlcHJlc2VudGluZyB0aGUgZGF0YSBjb250YWluZWQgaW4gdGhlIDpjOnR5cGU6YHNpZ2luZm9fdGAgc3RydWN0dXJlLCBuYW1lbHk6CisgICA6YXR0cjpgc2lfcGlkYCwgOmF0dHI6YHNpX3VpZGAsIDphdHRyOmBzaV9zaWdub2AsIDphdHRyOmBzaV9zdGF0dXNgLAorICAgOmF0dHI6YHNpX2NvZGVgIG9yIGBgTm9uZWBgIGlmIDpkYXRhOmBXTk9IQU5HYCBpcyBzcGVjaWZpZWQgYW5kIHRoZXJlIGFyZSBubworICAgY2hpbGRyZW4gaW4gYSB3YWl0YWJsZSBzdGF0ZS4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworLi4gZGF0YTo6IFBfUElECisgICAgICAgICAgUF9QR0lECisgICAgICAgICAgUF9BTEwKKworICAgVGhlc2UgYXJlIHRoZSBwb3NzaWJsZSB2YWx1ZXMgZm9yICppZHR5cGUqIGluIDpmdW5jOmB3YWl0aWRgLiBUaGV5IGFmZmVjdAorICAgaG93ICppZCogaXMgaW50ZXJwcmV0ZWQuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGRhdGE6OiBXRVhJVEVECisgICAgICAgICAgV1NUT1BQRUQKKyAgICAgICAgICBXTk9XQUlUCisKKyAgIEZsYWdzIHRoYXQgY2FuIGJlIHVzZWQgaW4gKm9wdGlvbnMqIGluIDpmdW5jOmB3YWl0aWRgIHRoYXQgc3BlY2lmeSB3aGF0CisgICBjaGlsZCBzaWduYWwgdG8gd2FpdCBmb3IuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZGF0YTo6IENMRF9FWElURUQKKyAgICAgICAgICBDTERfRFVNUEVECisgICAgICAgICAgQ0xEX1RSQVBQRUQKKyAgICAgICAgICBDTERfQ09OVElOVUVECisKKyAgIFRoZXNlIGFyZSB0aGUgcG9zc2libGUgdmFsdWVzIGZvciA6YXR0cjpgc2lfY29kZWAgaW4gdGhlIHJlc3VsdCByZXR1cm5lZCBieQorICAgOmZ1bmM6YHdhaXRpZGAuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIAogLi4gZnVuY3Rpb246OiB3YWl0cGlkKHBpZCwgb3B0aW9ucykKIApAQCAtMjEwNyw3ICsyOTU2LDcgQEAKICAgIFRoaXMgb3B0aW9uIGNhdXNlcyBjaGlsZCBwcm9jZXNzZXMgdG8gYmUgcmVwb3J0ZWQgaWYgdGhleSBoYXZlIGJlZW4gY29udGludWVkCiAgICBmcm9tIGEgam9iIGNvbnRyb2wgc3RvcCBzaW5jZSB0aGVpciBzdGF0dXMgd2FzIGxhc3QgcmVwb3J0ZWQuCiAKLSAgIEF2YWlsYWJpbGl0eTogU29tZSBVbml4IHN5c3RlbXMuCisgICBBdmFpbGFiaWxpdHk6IHNvbWUgVW5peCBzeXN0ZW1zLgogCiAKIC4uIGRhdGE6OiBXVU5UUkFDRUQKQEAgLTIxODQsNiArMzAzMywxNTUgQEAKICAgIEF2YWlsYWJpbGl0eTogVW5peC4KIAogCitJbnRlcmZhY2UgdG8gdGhlIHNjaGVkdWxlcgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlc2UgZnVuY3Rpb25zIGNvbnRyb2wgaG93IGEgcHJvY2VzcyBpcyBhbGxvY2F0ZWQgQ1BVIHRpbWUgYnkgdGhlIG9wZXJhdGluZworc3lzdGVtLiBUaGV5IGFyZSBvbmx5IGF2YWlsYWJsZSBvbiBzb21lIFVuaXggcGxhdGZvcm1zLiBGb3IgbW9yZSBkZXRhaWxlZAoraW5mb3JtYXRpb24sIGNvbnN1bHQgeW91ciBVbml4IG1hbnBhZ2VzLgorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworVGhlIGZvbGxvd2luZyBzY2hlZHVsaW5nIHBvbGljaWVzIGFyZSBleHBvc2VkIGlmIHRoZXkgYXJlIGEgc3VwcG9ydGVkIGJ5IHRoZQorb3BlcmF0aW5nIHN5c3RlbS4KKworLi4gZGF0YTo6IFNDSEVEX09USEVSCisKKyAgIFRoZSBkZWZhdWx0IHNjaGVkdWxpbmcgcG9saWN5LgorCisuLiBkYXRhOjogU0NIRURfQkFUQ0gKKworICAgU2NoZWR1bGluZyBwb2xpY3kgZm9yIENQVS1pbnRlbnNpdmUgcHJvY2Vzc2VzIHRoYXQgdHJpZXMgdG8gcHJlc2VydmUKKyAgIGludGVyYWN0aXZpdHkgb24gdGhlIHJlc3Qgb2YgdGhlIGNvbXB1dGVyLgorCisuLiBkYXRhOjogU0NIRURfSURMRQorCisgICBTY2hlZHVsaW5nIHBvbGljeSBmb3IgZXh0cmVtZWx5IGxvdyBwcmlvcml0eSBiYWNrZ3JvdW5kIHRhc2tzLgorCisuLiBkYXRhOjogU0NIRURfU1BPUkFESUMKKworICAgU2NoZWR1bGluZyBwb2xpY3kgZm9yIHNwb3JhZGljIHNlcnZlciBwcm9ncmFtcy4KKworLi4gZGF0YTo6IFNDSEVEX0ZJRk8KKworICAgQSBGaXJzdCBJbiBGaXJzdCBPdXQgc2NoZWR1bGluZyBwb2xpY3kuCisKKy4uIGRhdGE6OiBTQ0hFRF9SUgorCisgICBBIHJvdW5kLXJvYmluIHNjaGVkdWxpbmcgcG9saWN5LgorCisuLiBkYXRhOjogU0NIRURfUkVTRVRfT05fRk9SSworCisgICBUaGlzIGZsYWcgY2FuIE9SJ2VkIHdpdGggYW55IG90aGVyIHNjaGVkdWxpbmcgcG9saWN5LiBXaGVuIGEgcHJvY2VzcyB3aXRoCisgICB0aGlzIGZsYWcgc2V0IGZvcmtzLCBpdHMgY2hpbGQncyBzY2hlZHVsaW5nIHBvbGljeSBhbmQgcHJpb3JpdHkgYXJlIHJlc2V0IHRvCisgICB0aGUgZGVmYXVsdC4KKworCisuLiBjbGFzczo6IHNjaGVkX3BhcmFtKHNjaGVkX3ByaW9yaXR5KQorCisgICBUaGlzIGNsYXNzIHJlcHJlc2VudHMgdHVuYWJsZSBzY2hlZHVsaW5nIHBhcmFtZXRlcnMgdXNlZCBpbgorICAgOmZ1bmM6YHNjaGVkX3NldHBhcmFtYCwgOmZ1bmM6YHNjaGVkX3NldHNjaGVkdWxlcmAsIGFuZAorICAgOmZ1bmM6YHNjaGVkX2dldHBhcmFtYC4gSXQgaXMgaW1tdXRhYmxlLgorCisgICBBdCB0aGUgbW9tZW50LCB0aGVyZSBpcyBvbmx5IG9uZSBwb3NzaWJsZSBwYXJhbWV0ZXI6CisKKyAgIC4uIGF0dHJpYnV0ZTo6IHNjaGVkX3ByaW9yaXR5CisKKyAgICAgIFRoZSBzY2hlZHVsaW5nIHByaW9yaXR5IGZvciBhIHNjaGVkdWxpbmcgcG9saWN5LgorCisKKy4uIGZ1bmN0aW9uOjogc2NoZWRfZ2V0X3ByaW9yaXR5X21pbihwb2xpY3kpCisKKyAgIEdldCB0aGUgbWluaW11bSBwcmlvcml0eSB2YWx1ZSBmb3IgKnBvbGljeSouICpwb2xpY3kqIGlzIG9uZSBvZiB0aGUKKyAgIHNjaGVkdWxpbmcgcG9saWN5IGNvbnN0YW50cyBhYm92ZS4KKworCisuLiBmdW5jdGlvbjo6IHNjaGVkX2dldF9wcmlvcml0eV9tYXgocG9saWN5KQorCisgICBHZXQgdGhlIG1heGltdW0gcHJpb3JpdHkgdmFsdWUgZm9yICpwb2xpY3kqLiAqcG9saWN5KiBpcyBvbmUgb2YgdGhlCisgICBzY2hlZHVsaW5nIHBvbGljeSBjb25zdGFudHMgYWJvdmUuCisKKworLi4gZnVuY3Rpb246OiBzY2hlZF9zZXRzY2hlZHVsZXIocGlkLCBwb2xpY3ksIHBhcmFtKQorCisgICBTZXQgdGhlIHNjaGVkdWxpbmcgcG9saWN5IGZvciB0aGUgcHJvY2VzcyB3aXRoIFBJRCAqcGlkKi4gQSAqcGlkKiBvZiAwIG1lYW5zCisgICB0aGUgY2FsbGluZyBwcm9jZXNzLiAqcG9saWN5KiBpcyBvbmUgb2YgdGhlIHNjaGVkdWxpbmcgcG9saWN5IGNvbnN0YW50cworICAgYWJvdmUuICpwYXJhbSogaXMgYSA6Y2xhc3M6YHNjaGVkX3BhcmFtYCBpbnN0YW5jZS4KKworCisuLiBmdW5jdGlvbjo6IHNjaGVkX2dldHNjaGVkdWxlcihwaWQpCisKKyAgIFJldHVybiB0aGUgc2NoZWR1bGluZyBwb2xpY3kgZm9yIHRoZSBwcm9jZXNzIHdpdGggUElEICpwaWQqLiBBICpwaWQqIG9mIDAKKyAgIG1lYW5zIHRoZSBjYWxsaW5nIHByb2Nlc3MuIFRoZSByZXN1bHQgaXMgb25lIG9mIHRoZSBzY2hlZHVsaW5nIHBvbGljeQorICAgY29uc3RhbnRzIGFib3ZlLgorCisKKy4uIGZ1bmN0aW9uOjogc2NoZWRfc2V0cGFyYW0ocGlkLCBwYXJhbSkKKworICAgU2V0IGEgc2NoZWR1bGluZyBwYXJhbWV0ZXJzIGZvciB0aGUgcHJvY2VzcyB3aXRoIFBJRCAqcGlkKi4gQSAqcGlkKiBvZiAwIG1lYW5zCisgICB0aGUgY2FsbGluZyBwcm9jZXNzLiAqcGFyYW0qIGlzIGEgOmNsYXNzOmBzY2hlZF9wYXJhbWAgaW5zdGFuY2UuCisKKworLi4gZnVuY3Rpb246OiBzY2hlZF9nZXRwYXJhbShwaWQpCisKKyAgIFJldHVybiB0aGUgc2NoZWR1bGluZyBwYXJhbWV0ZXJzIGFzIGEgOmNsYXNzOmBzY2hlZF9wYXJhbWAgaW5zdGFuY2UgZm9yIHRoZQorICAgcHJvY2VzcyB3aXRoIFBJRCAqcGlkKi4gQSAqcGlkKiBvZiAwIG1lYW5zIHRoZSBjYWxsaW5nIHByb2Nlc3MuCisKKworLi4gZnVuY3Rpb246OiBzY2hlZF9ycl9nZXRfaW50ZXJ2YWwocGlkKQorCisgICBSZXR1cm4gdGhlIHJvdW5kLXJvYmluIHF1YW50dW0gaW4gc2Vjb25kcyBmb3IgdGhlIHByb2Nlc3Mgd2l0aCBQSUQgKnBpZCouIEEKKyAgICpwaWQqIG9mIDAgbWVhbnMgdGhlIGNhbGxpbmcgcHJvY2Vzcy4KKworCisuLiBmdW5jdGlvbjo6IHNjaGVkX3lpZWxkKCkKKworICAgVm9sdW50YXJpbHkgcmVsaW5xdWlzaCB0aGUgQ1BVLgorCisKKy4uIGNsYXNzOjogY3B1X3NldChuY3B1cykKKworICAgOmNsYXNzOmBjcHVfc2V0YCByZXByZXNlbnRzIGEgc2V0IG9mIENQVXMgb24gd2hpY2ggYSBwcm9jZXNzIGlzIGVsaWdpYmxlIHRvCisgICBydW4uICpuY3B1cyogaXMgdGhlIG51bWJlciBvZiBDUFVzIHRoZSBzZXQgc2hvdWxkIGRlc2NyaWJlLiBNZXRob2RzIG9uCisgICA6Y2xhc3M6YGNwdV9zZXRgIGFsbG93IENQVXMgdG8gYmUgYWRkIG9yIHJlbW92ZWQuCisKKyAgIDpjbGFzczpgY3B1X3NldGAgc3VwcG9ydHMgdGhlIEFORCwgT1IsIGFuZCBYT1IgYml0d2lzZSBvcGVyYXRpb25zLiBGb3IKKyAgIGV4YW1wbGUsIGdpdmVuIHR3byBjcHVfc2V0cywgYGBvbmVgYCBhbmQgYGB0d29gYCwgYGBvbmUgfCB0d29gYCByZXR1cm5zIGEKKyAgIDpjbGFzczpgY3B1X3NldGAgY29udGFpbmluZyB0aGUgY3B1cyBlbmFibGVkIGJvdGggaW4gYGBvbmVgYCBhbmQgYGB0d29gYC4KKworICAgLi4gbWV0aG9kOjogc2V0KGkpCisKKyAgICAgIEVuYWJsZSBDUFUgKmkqLgorCisgICAuLiBtZXRob2Q6OiBjbGVhcihpKQorCisgICAgICBSZW1vdmUgQ1BVICppKi4KKworICAgLi4gbWV0aG9kOjogaXNzZXQoaSkKKworICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIENQVSAqaSogaXMgZW5hYmxlZCBpbiB0aGUgc2V0LgorCisgICAuLiBtZXRob2Q6OiBjb3VudCgpCisKKyAgICAgIFJldHVybiB0aGUgbnVtYmVyIG9mIGVuYWJsZWQgQ1BVcyBpbiB0aGUgc2V0LgorCisgICAuLiBtZXRob2Q6OiB6ZXJvKCkKKworICAgICAgQ2xlYXIgdGhlIHNldCBjb21wbGV0ZWx5LgorCisKKy4uIGZ1bmN0aW9uOjogc2NoZWRfc2V0YWZmaW5pdHkocGlkLCBtYXNrKQorCisgICBSZXN0cmljdCB0aGUgcHJvY2VzcyB3aXRoIFBJRCAqcGlkKiB0byBhIHNldCBvZiBDUFVzLiAqbWFzayogaXMgYQorICAgOmNsYXNzOmBjcHVfc2V0YCBpbnN0YW5jZS4KKworCisuLiBmdW5jdGlvbjo6IHNjaGVkX2dldGFmZmluaXR5KHBpZCwgc2l6ZSkKKworICAgUmV0dXJuIHRoZSA6Y2xhc3M6YGNwdV9zZXRgIHRoZSBwcm9jZXNzIHdpdGggUElEICpwaWQqIGlzIHJlc3RyaWN0ZWQgdG8uIFRoZQorICAgcmVzdWx0IHdpbGwgY29udGFpbiAqc2l6ZSogQ1BVcy4KKworCiAuLiBfb3MtcGF0aDoKIAogTWlzY2VsbGFuZW91cyBTeXN0ZW0gSW5mb3JtYXRpb24KQEAgLTIyMDgsNyArMzIwNiw3IEBACiAgICBpbmNsdWRlZCBpbiBgYGNvbmZzdHJfbmFtZXNgYCwgYW4gOmV4YzpgT1NFcnJvcmAgaXMgcmFpc2VkIHdpdGgKICAgIDpjb25zdDpgZXJybm8uRUlOVkFMYCBmb3IgdGhlIGVycm9yIG51bWJlci4KIAotICAgQXZhaWxhYmlsaXR5OiBVbml4CisgICBBdmFpbGFiaWxpdHk6IFVuaXguCiAKIAogLi4gZGF0YTo6IGNvbmZzdHJfbmFtZXMKQEAgLTIzMzAsNiArMzMyOCw2IEBACiAKICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyByYW5kb20gYnl0ZXMgZnJvbSBhbiBPUy1zcGVjaWZpYyByYW5kb21uZXNzIHNvdXJjZS4gIFRoZQogICAgcmV0dXJuZWQgZGF0YSBzaG91bGQgYmUgdW5wcmVkaWN0YWJsZSBlbm91Z2ggZm9yIGNyeXB0b2dyYXBoaWMgYXBwbGljYXRpb25zLAotICAgdGhvdWdoIGl0cyBleGFjdCBxdWFsaXR5IGRlcGVuZHMgb24gdGhlIE9TIGltcGxlbWVudGF0aW9uLiAgT24gYSBVTklYLWxpa2UKKyAgIHRob3VnaCBpdHMgZXhhY3QgcXVhbGl0eSBkZXBlbmRzIG9uIHRoZSBPUyBpbXBsZW1lbnRhdGlvbi4gIE9uIGEgVW5peC1saWtlCiAgICBzeXN0ZW0gdGhpcyB3aWxsIHF1ZXJ5IC9kZXYvdXJhbmRvbSwgYW5kIG9uIFdpbmRvd3MgaXQgd2lsbCB1c2UgQ3J5cHRHZW5SYW5kb20uCiAgICBJZiBhIHJhbmRvbW5lc3Mgc291cmNlIGlzIG5vdCBmb3VuZCwgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAgd2lsbCBiZSByYWlzZWQuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9vc3NhdWRpb2Rldi5yc3QgYi9Eb2MvbGlicmFyeS9vc3NhdWRpb2Rldi5yc3QKaW5kZXggY2YzMDJjYy4uOWU1YmVjOSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvb3NzYXVkaW9kZXYucnN0CisrKyBiL0RvYy9saWJyYXJ5L29zc2F1ZGlvZGV2LnJzdApAQCAtMzgsNiArMzgsMTAgQEAKICAgIFRoaXMgcHJvYmFibHkgYWxsIHdhcnJhbnRzIGEgZm9vdG5vdGUgb3IgdHdvLCBidXQgSSBkb24ndCB1bmRlcnN0YW5kCiAgICB0aGluZ3Mgd2VsbCBlbm91Z2ggcmlnaHQgbm93IHRvIHdyaXRlIGl0ISAgIC0tR1BXCiAKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBPcGVyYXRpb25zIGluIHRoaXMgbW9kdWxlIG5vdyByYWlzZSA6ZXhjOmBPU0Vycm9yYCB3aGVyZSA6ZXhjOmBJT0Vycm9yYAorICAgd2FzIHJhaXNlZC4KKwogCiAuLiBzZWVhbHNvOjoKIApAQCAtNTYsNyArNjAsNyBAQAogICAgd2hhdCB3ZW50IHdyb25nLgogCiAgICAoSWYgOm1vZDpgb3NzYXVkaW9kZXZgIHJlY2VpdmVzIGFuIGVycm9yIGZyb20gYSBzeXN0ZW0gY2FsbCBzdWNoIGFzCi0gICA6YzpmdW5jOmBvcGVuYCwgOmM6ZnVuYzpgd3JpdGVgLCBvciA6YzpmdW5jOmBpb2N0bGAsIGl0IHJhaXNlcyA6ZXhjOmBJT0Vycm9yYC4KKyAgIDpjOmZ1bmM6YG9wZW5gLCA6YzpmdW5jOmB3cml0ZWAsIG9yIDpjOmZ1bmM6YGlvY3RsYCwgaXQgcmFpc2VzIDpleGM6YE9TRXJyb3JgLgogICAgRXJyb3JzIGRldGVjdGVkIGRpcmVjdGx5IGJ5IDptb2Q6YG9zc2F1ZGlvZGV2YCByZXN1bHQgaW4gOmV4YzpgT1NTQXVkaW9FcnJvcmAuKQogCiAgICAoRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCB0aGUgZXhjZXB0aW9uIGNsYXNzIGlzIGFsc28gYXZhaWxhYmxlIGFzCkBAIC0xNjgsNyArMTcyLDcgQEAKIGNvcnJlc3BvbmRlbmNlIGlzIG9idmlvdXM6IGZvciBleGFtcGxlLCA6bWV0aDpgc2V0Zm10YCBjb3JyZXNwb25kcyB0byB0aGUKIGBgU05EQ1RMX0RTUF9TRVRGTVRgYCBpb2N0bCwgYW5kIDptZXRoOmBzeW5jYCB0byBgYFNORENUTF9EU1BfU1lOQ2BgICh0aGlzIGNhbgogYmUgdXNlZnVsIHdoZW4gY29uc3VsdGluZyB0aGUgT1NTIGRvY3VtZW50YXRpb24pLiAgSWYgdGhlIHVuZGVybHlpbmcKLTpmdW5jOmBpb2N0bGAgZmFpbHMsIHRoZXkgYWxsIHJhaXNlIDpleGM6YElPRXJyb3JgLgorOmZ1bmM6YGlvY3RsYCBmYWlscywgdGhleSBhbGwgcmFpc2UgOmV4YzpgT1NFcnJvcmAuCiAKIAogLi4gbWV0aG9kOjogb3NzX2F1ZGlvX2RldmljZS5ub25ibG9jaygpCkBAIC0zNDQsNyArMzQ4LDcgQEAKIC4uIG1ldGhvZDo6IG9zc19taXhlcl9kZXZpY2UuY2xvc2UoKQogCiAgICBUaGlzIG1ldGhvZCBjbG9zZXMgdGhlIG9wZW4gbWl4ZXIgZGV2aWNlIGZpbGUuICBBbnkgZnVydGhlciBhdHRlbXB0cyB0byB1c2UgdGhlCi0gICBtaXhlciBhZnRlciB0aGlzIGZpbGUgaXMgY2xvc2VkIHdpbGwgcmFpc2UgYW4gOmV4YzpgSU9FcnJvcmAuCisgICBtaXhlciBhZnRlciB0aGlzIGZpbGUgaXMgY2xvc2VkIHdpbGwgcmFpc2UgYW4gOmV4YzpgT1NFcnJvcmAuCiAKIAogLi4gbWV0aG9kOjogb3NzX21peGVyX2RldmljZS5maWxlbm8oKQpAQCAtNDAzLDcgKzQwNyw3IEBACiAgICByZXR1cm5lZCwgYnV0IGJvdGggdm9sdW1lcyBhcmUgdGhlIHNhbWUuCiAKICAgIFJhaXNlcyA6ZXhjOmBPU1NBdWRpb0Vycm9yYCBpZiBhbiBpbnZhbGlkIGNvbnRyb2wgd2FzIGlzIHNwZWNpZmllZCwgb3IKLSAgIDpleGM6YElPRXJyb3JgIGlmIGFuIHVuc3VwcG9ydGVkIGNvbnRyb2wgaXMgc3BlY2lmaWVkLgorICAgOmV4YzpgT1NFcnJvcmAgaWYgYW4gdW5zdXBwb3J0ZWQgY29udHJvbCBpcyBzcGVjaWZpZWQuCiAKIAogLi4gbWV0aG9kOjogb3NzX21peGVyX2RldmljZS5zZXQoY29udHJvbCwgKGxlZnQsIHJpZ2h0KSkKQEAgLTQyNyw3ICs0MzEsNyBAQAogLi4gbWV0aG9kOjogb3NzX21peGVyX2RldmljZS5zZXRfcmVjc3JjKGJpdG1hc2spCiAKICAgIENhbGwgdGhpcyBmdW5jdGlvbiB0byBzcGVjaWZ5IGEgcmVjb3JkaW5nIHNvdXJjZS4gIFJldHVybnMgYSBiaXRtYXNrIGluZGljYXRpbmcKLSAgIHRoZSBuZXcgcmVjb3JkaW5nIHNvdXJjZSAob3Igc291cmNlcykgaWYgc3VjY2Vzc2Z1bDsgcmFpc2VzIDpleGM6YElPRXJyb3JgIGlmIGFuCisgICB0aGUgbmV3IHJlY29yZGluZyBzb3VyY2UgKG9yIHNvdXJjZXMpIGlmIHN1Y2Nlc3NmdWw7IHJhaXNlcyA6ZXhjOmBPU0Vycm9yYCBpZiBhbgogICAgaW52YWxpZCBzb3VyY2Ugd2FzIHNwZWNpZmllZC4gIFRvIHNldCB0aGUgY3VycmVudCByZWNvcmRpbmcgc291cmNlIHRvIHRoZQogICAgbWljcm9waG9uZSBpbnB1dDo6CiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3BkYi5yc3QgYi9Eb2MvbGlicmFyeS9wZGIucnN0CmluZGV4IDFlOWRlNjMuLmY0ZTM3YWMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3BkYi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvcGRiLnJzdApAQCAtMzgsNiArMzgsMTEgQEAKICAgID4gPHN0cmluZz4oMSk/KCkKICAgIChQZGIpCiAKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBUYWItY29tcGxldGlvbiB2aWEgdGhlIDptb2Q6YHJlYWRsaW5lYCBtb2R1bGUgaXMgYXZhaWxhYmxlIGZvciBjb21tYW5kcyBhbmQKKyAgIGNvbW1hbmQgYXJndW1lbnRzLCBlLmcuIHRoZSBjdXJyZW50IGdsb2JhbCBhbmQgbG9jYWwgbmFtZXMgYXJlIG9mZmVyZWQgYXMKKyAgIGFyZ3VtZW50cyBvZiB0aGUgYGBwcmludGBgIGNvbW1hbmQuCisKIDpmaWxlOmBwZGIucHlgIGNhbiBhbHNvIGJlIGludm9rZWQgYXMgYSBzY3JpcHQgdG8gZGVidWcgb3RoZXIgc2NyaXB0cy4gIEZvcgogZXhhbXBsZTo6CiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3BpY2tsZS5yc3QgYi9Eb2MvbGlicmFyeS9waWNrbGUucnN0CmluZGV4IGExZjlhZjIuLjI4N2EwOGIgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3BpY2tsZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvcGlja2xlLnJzdApAQCAtMjg3LDYgKzI4NywyOSBAQAogCiAgICAgICBTZWUgOnJlZjpgcGlja2xlLXBlcnNpc3RlbnRgIGZvciBkZXRhaWxzIGFuZCBleGFtcGxlcyBvZiB1c2VzLgogCisgICAuLiBhdHRyaWJ1dGU6OiBkaXNwYXRjaF90YWJsZQorCisgICAgICBBIHBpY2tsZXIgb2JqZWN0J3MgZGlzcGF0Y2ggdGFibGUgaXMgYSByZWdpc3RyeSBvZiAqcmVkdWN0aW9uCisgICAgICBmdW5jdGlvbnMqIG9mIHRoZSBraW5kIHdoaWNoIGNhbiBiZSBkZWNsYXJlZCB1c2luZworICAgICAgOmZ1bmM6YGNvcHlyZWcucGlja2xlYC4gIEl0IGlzIGEgbWFwcGluZyB3aG9zZSBrZXlzIGFyZSBjbGFzc2VzCisgICAgICBhbmQgd2hvc2UgdmFsdWVzIGFyZSByZWR1Y3Rpb24gZnVuY3Rpb25zLiAgQSByZWR1Y3Rpb24gZnVuY3Rpb24KKyAgICAgIHRha2VzIGEgc2luZ2xlIGFyZ3VtZW50IG9mIHRoZSBhc3NvY2lhdGVkIGNsYXNzIGFuZCBzaG91bGQKKyAgICAgIGNvbmZvcm0gdG8gdGhlIHNhbWUgaW50ZXJmYWNlIGFzIGEgOm1ldGg6YH5vYmplY3QuX19yZWR1Y2VfX2AKKyAgICAgIG1ldGhvZC4KKworICAgICAgQnkgZGVmYXVsdCwgYSBwaWNrbGVyIG9iamVjdCB3aWxsIG5vdCBoYXZlIGEKKyAgICAgIDphdHRyOmBkaXNwYXRjaF90YWJsZWAgYXR0cmlidXRlLCBhbmQgaXQgd2lsbCBpbnN0ZWFkIHVzZSB0aGUKKyAgICAgIGdsb2JhbCBkaXNwYXRjaCB0YWJsZSBtYW5hZ2VkIGJ5IHRoZSA6bW9kOmBjb3B5cmVnYCBtb2R1bGUuCisgICAgICBIb3dldmVyLCB0byBjdXN0b21pemUgdGhlIHBpY2tsaW5nIGZvciBhIHNwZWNpZmljIHBpY2tsZXIgb2JqZWN0CisgICAgICBvbmUgY2FuIHNldCB0aGUgOmF0dHI6YGRpc3BhdGNoX3RhYmxlYCBhdHRyaWJ1dGUgdG8gYSBkaWN0LWxpa2UKKyAgICAgIG9iamVjdC4gIEFsdGVybmF0aXZlbHksIGlmIGEgc3ViY2xhc3Mgb2YgOmNsYXNzOmBQaWNrbGVyYCBoYXMgYQorICAgICAgOmF0dHI6YGRpc3BhdGNoX3RhYmxlYCBhdHRyaWJ1dGUgdGhlbiB0aGlzIHdpbGwgYmUgdXNlZCBhcyB0aGUKKyAgICAgIGRlZmF1bHQgZGlzcGF0Y2ggdGFibGUgZm9yIGluc3RhbmNlcyBvZiB0aGF0IGNsYXNzLgorCisgICAgICBTZWUgOnJlZjpgcGlja2xlLWRpc3BhdGNoYCBmb3IgdXNhZ2UgZXhhbXBsZXMuCisKKyAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAgICAuLiBhdHRyaWJ1dGU6OiBmYXN0CiAKICAgICAgIERlcHJlY2F0ZWQuIEVuYWJsZSBmYXN0IG1vZGUgaWYgc2V0IHRvIGEgdHJ1ZSB2YWx1ZS4gIFRoZSBmYXN0IG1vZGUKQEAgLTU3Nyw2ICs2MDAsNDQgQEAKIAogLi4gbGl0ZXJhbGluY2x1ZGU6OiAuLi9pbmNsdWRlcy9kYnBpY2tsZS5weQogCisuLiBfcGlja2xlLWRpc3BhdGNoOgorCitEaXNwYXRjaCBUYWJsZXMKK15eXl5eXl5eXl5eXl5eXgorCitJZiBvbmUgd2FudHMgdG8gY3VzdG9taXplIHBpY2tsaW5nIG9mIHNvbWUgY2xhc3NlcyB3aXRob3V0IGRpc3R1cmJpbmcKK2FueSBvdGhlciBjb2RlIHdoaWNoIGRlcGVuZHMgb24gcGlja2xpbmcsIHRoZW4gb25lIGNhbiBjcmVhdGUgYQorcGlja2xlciB3aXRoIGEgcHJpdmF0ZSBkaXNwYXRjaCB0YWJsZS4KKworVGhlIGdsb2JhbCBkaXNwYXRjaCB0YWJsZSBtYW5hZ2VkIGJ5IHRoZSA6bW9kOmBjb3B5cmVnYCBtb2R1bGUgaXMKK2F2YWlsYWJsZSBhcyA6ZGF0YTpgY29weXJlZy5kaXNwYXRjaF90YWJsZWAuICBUaGVyZWZvcmUsIG9uZSBtYXkKK2Nob29zZSB0byB1c2UgYSBtb2RpZmllZCBjb3B5IG9mIDpkYXRhOmBjb3B5cmVnLmRpc3BhdGNoX3RhYmxlYCBhcyBhCitwcml2YXRlIGRpc3BhdGNoIHRhYmxlLgorCitGb3IgZXhhbXBsZSA6OgorCisgICBmID0gaW8uQnl0ZXNJTygpCisgICBwID0gcGlja2xlLlBpY2tsZXIoZikKKyAgIHAuZGlzcGF0Y2hfdGFibGUgPSBjb3B5cmVnLmRpc3BhdGNoX3RhYmxlLmNvcHkoKQorICAgcC5kaXNwYXRjaF90YWJsZVtTb21lQ2xhc3NdID0gcmVkdWNlX1NvbWVDbGFzcworCitjcmVhdGVzIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgcGlja2xlLlBpY2tsZXJgIHdpdGggYSBwcml2YXRlIGRpc3BhdGNoCit0YWJsZSB3aGljaCBoYW5kbGVzIHRoZSBgYFNvbWVDbGFzc2BgIGNsYXNzIHNwZWNpYWxseS4gIEFsdGVybmF0aXZlbHksCit0aGUgY29kZSA6OgorCisgICBjbGFzcyBNeVBpY2tsZXIocGlja2xlLlBpY2tsZXIpOgorICAgICAgIGRpc3BhdGNoX3RhYmxlID0gY29weXJlZy5kaXNwYXRjaF90YWJsZS5jb3B5KCkKKyAgICAgICBkaXNwYXRjaF90YWJsZVtTb21lQ2xhc3NdID0gcmVkdWNlX1NvbWVDbGFzcworICAgZiA9IGlvLkJ5dGVzSU8oKQorICAgcCA9IE15UGlja2xlcihmKQorCitkb2VzIHRoZSBzYW1lLCBidXQgYWxsIGluc3RhbmNlcyBvZiBgYE15UGlja2xlcmBgIHdpbGwgYnkgZGVmYXVsdAorc2hhcmUgdGhlIHNhbWUgZGlzcGF0Y2ggdGFibGUuICBUaGUgZXF1aXZhbGVudCBjb2RlIHVzaW5nIHRoZQorOm1vZDpgY29weXJlZ2AgbW9kdWxlIGlzIDo6CisKKyAgIGNvcHlyZWcucGlja2xlKFNvbWVDbGFzcywgcmVkdWNlX1NvbWVDbGFzcykKKyAgIGYgPSBpby5CeXRlc0lPKCkKKyAgIHAgPSBwaWNrbGUuUGlja2xlcihmKQogCiAuLiBfcGlja2xlLXN0YXRlOgogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9wa2d1dGlsLnJzdCBiL0RvYy9saWJyYXJ5L3BrZ3V0aWwucnN0CmluZGV4IDMxMThmZjIuLjBhZWU0ZTcgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3BrZ3V0aWwucnN0CisrKyBiL0RvYy9saWJyYXJ5L3BrZ3V0aWwucnN0CkBAIC0xMzgsNiArMTM4LDEwIEBACiAKICAgICpwcmVmaXgqIGlzIGEgc3RyaW5nIHRvIG91dHB1dCBvbiB0aGUgZnJvbnQgb2YgZXZlcnkgbW9kdWxlIG5hbWUgb24gb3V0cHV0LgogCisgICAuLiBub3RlOjoKKyAgICAgIE9ubHkgd29ya3MgZm9yIGltcG9ydGVycyB3aGljaCBkZWZpbmUgYSBgYGl0ZXJfbW9kdWxlcygpYGAgbWV0aG9kLCB3aGljaAorICAgICAgaXMgbm9uLXN0YW5kYXJkIGJ1dCBpbXBsZW1lbnRlZCBieSBjbGFzc2VzIGRlZmluZWQgaW4gdGhpcyBtb2R1bGUuCisKIAogLi4gZnVuY3Rpb246OiB3YWxrX3BhY2thZ2VzKHBhdGg9Tm9uZSwgcHJlZml4PScnLCBvbmVycm9yPU5vbmUpCiAKQEAgLTE2Niw2ICsxNzAsMTAgQEAKICAgICAgICMgbGlzdCBhbGwgc3VibW9kdWxlcyBvZiBjdHlwZXMKICAgICAgIHdhbGtfcGFja2FnZXMoY3R5cGVzLl9fcGF0aF9fLCBjdHlwZXMuX19uYW1lX18gKyAnLicpCiAKKyAgIC4uIG5vdGU6OgorICAgICAgT25seSB3b3JrcyBmb3IgaW1wb3J0ZXJzIHdoaWNoIGRlZmluZSBhIGBgaXRlcl9tb2R1bGVzKClgYCBtZXRob2QsIHdoaWNoCisgICAgICBpcyBub24tc3RhbmRhcmQgYnV0IGltcGxlbWVudGVkIGJ5IGNsYXNzZXMgZGVmaW5lZCBpbiB0aGlzIG1vZHVsZS4KKwogCiAuLiBmdW5jdGlvbjo6IGdldF9kYXRhKHBhY2thZ2UsIHJlc291cmNlKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9wbGF0Zm9ybS5yc3QgYi9Eb2MvbGlicmFyeS9wbGF0Zm9ybS5yc3QKaW5kZXggODVlY2E5YS4uYzI5ODExYyAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvcGxhdGZvcm0ucnN0CisrKyBiL0RvYy9saWJyYXJ5L3BsYXRmb3JtLnJzdApAQCAtMTU4LDE0ICsxNTgsMjAgQEAKIAogLi4gZnVuY3Rpb246OiB1bmFtZSgpCiAKLSAgIEZhaXJseSBwb3J0YWJsZSB1bmFtZSBpbnRlcmZhY2UuIFJldHVybnMgYSB0dXBsZSBvZiBzdHJpbmdzIGBgKHN5c3RlbSwgbm9kZSwKLSAgIHJlbGVhc2UsIHZlcnNpb24sIG1hY2hpbmUsIHByb2Nlc3NvcilgYCBpZGVudGlmeWluZyB0aGUgdW5kZXJseWluZyBwbGF0Zm9ybS4KKyAgIEZhaXJseSBwb3J0YWJsZSB1bmFtZSBpbnRlcmZhY2UuIFJldHVybnMgYSA6ZnVuYzpgfmNvbGxlY3Rpb25zLm5hbWVkdHVwbGVgCisgICBjb250YWluaW5nIHNpeCBhdHRyaWJ1dGVzOiA6YXR0cjpgc3lzdGVtYCwgOmF0dHI6YG5vZGVgLCA6YXR0cjpgcmVsZWFzZWAsCisgICA6YXR0cjpgdmVyc2lvbmAsIDphdHRyOmBtYWNoaW5lYCwgYW5kIDphdHRyOmBwcm9jZXNzb3JgLgogCi0gICBOb3RlIHRoYXQgdW5saWtlIHRoZSA6ZnVuYzpgb3MudW5hbWVgIGZ1bmN0aW9uIHRoaXMgYWxzbyByZXR1cm5zIHBvc3NpYmxlCi0gICBwcm9jZXNzb3IgaW5mb3JtYXRpb24gYXMgYWRkaXRpb25hbCB0dXBsZSBlbnRyeS4KKyAgIE5vdGUgdGhhdCB0aGlzIGFkZHMgYSBzaXh0aCBhdHRyaWJ1dGUgKDphdHRyOmBwcm9jZXNzb3JgKSBub3QgcHJlc2VudAorICAgaW4gdGhlIDpmdW5jOmBvcy51bmFtZWAgcmVzdWx0LiAgQWxzbywgdGhlIGF0dHJpYnV0ZSBuYW1lcyBhcmUgZGlmZmVyZW50CisgICBmb3IgdGhlIGZpcnN0IHR3byBhdHRyaWJ1dGVzOyA6ZnVuYzpgb3MudW5hbWVgIG5hbWVzIHRoZW0KKyAgIDphdHRyOmBzeXNuYW1lYCBhbmQgOmF0dHI6YG5vZGVuYW1lYC4KIAogICAgRW50cmllcyB3aGljaCBjYW5ub3QgYmUgZGV0ZXJtaW5lZCBhcmUgc2V0IHRvIGBgJydgYC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFJlc3VsdCBjaGFuZ2VkIGZyb20gYSB0dXBsZSB0byBhIG5hbWVkdHVwbGUuCisKIAogSmF2YSBQbGF0Zm9ybQogLS0tLS0tLS0tLS0tLQpAQCAtMjE0LDYgKzIyMCwxMCBAQAogICAgcHJlZmVycmluZyA6ZnVuYzpgd2luMzJwaXBlLnBvcGVuYC4gIE9uIFdpbmRvd3MgTlQsIDpmdW5jOmB3aW4zMnBpcGUucG9wZW5gCiAgICBzaG91bGQgd29yazsgb24gV2luZG93cyA5eCBpdCBoYW5ncyBkdWUgdG8gYnVncyBpbiB0aGUgTVMgQyBsaWJyYXJ5LgogCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG9ic29sZXRlLiAgVXNlIHRoZSA6bW9kOmBzdWJwcm9jZXNzYCBtb2R1bGUuICBDaGVjaworICAgICAgZXNwZWNpYWxseSB0aGUgOnJlZjpgc3VicHJvY2Vzcy1yZXBsYWNlbWVudHNgIHNlY3Rpb24uCisKIAogTWFjIE9TIFBsYXRmb3JtCiAtLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3JhbmRvbS5yc3QgYi9Eb2MvbGlicmFyeS9yYW5kb20ucnN0CmluZGV4IDVhYTEyNjIuLmEzOWI2MzYgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3JhbmRvbS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvcmFuZG9tLnJzdApAQCAtNDMsNiArNDMsMTIgQEAKIHVzZXMgdGhlIHN5c3RlbSBmdW5jdGlvbiA6ZnVuYzpgb3MudXJhbmRvbWAgdG8gZ2VuZXJhdGUgcmFuZG9tIG51bWJlcnMKIGZyb20gc291cmNlcyBwcm92aWRlZCBieSB0aGUgb3BlcmF0aW5nIHN5c3RlbS4KIAorLi4gd2FybmluZzo6CisKKyAgIFRoZSBnZW5lcmF0b3JzIG9mIHRoZSA6bW9kOmByYW5kb21gIG1vZHVsZSBzaG91bGQgbm90IGJlIHVzZWQgZm9yIHNlY3VyaXR5CisgICBwdXJwb3Nlcy4gVXNlIDpmdW5jOmBzc2wuUkFORF9ieXRlc2AgaWYgeW91IHJlcXVpcmUgYSBjcnlwdG9ncmFwaGljYWxseQorICAgc2VjdXJlIHBzZXVkb3JhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLgorCiAKIEJvb2trZWVwaW5nIGZ1bmN0aW9uczoKIApAQCAtMTQ0LDYgKzE1MCw5IEBACiAgICBhcmd1bWVudC4gIFRoaXMgaXMgZXNwZWNpYWxseSBmYXN0IGFuZCBzcGFjZSBlZmZpY2llbnQgZm9yIHNhbXBsaW5nIGZyb20gYSBsYXJnZQogICAgcG9wdWxhdGlvbjogIGBgc2FtcGxlKHJhbmdlKDEwMDAwMDAwKSwgNjApYGAuCiAKKyAgIElmIHRoZSBzYW1wbGUgc2l6ZSBpcyBsYXJnZXIgdGhhbiB0aGUgcG9wdWxhdGlvbiBzaXplLCBhIDpleGM6YGBWYWx1ZUVycm9yYGAKKyAgIGlzIHJhaXNlZC4KKwogVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgZ2VuZXJhdGUgc3BlY2lmaWMgcmVhbC12YWx1ZWQgZGlzdHJpYnV0aW9ucy4gRnVuY3Rpb24KIHBhcmFtZXRlcnMgYXJlIG5hbWVkIGFmdGVyIHRoZSBjb3JyZXNwb25kaW5nIHZhcmlhYmxlcyBpbiB0aGUgZGlzdHJpYnV0aW9uJ3MKIGVxdWF0aW9uLCBhcyB1c2VkIGluIGNvbW1vbiBtYXRoZW1hdGljYWwgcHJhY3RpY2U7IG1vc3Qgb2YgdGhlc2UgZXF1YXRpb25zIGNhbgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvcmUucnN0IGIvRG9jL2xpYnJhcnkvcmUucnN0CmluZGV4IDgzOTdhYWQuLjA3NjIzYzkgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3JlLnJzdAorKysgYi9Eb2MvbGlicmFyeS9yZS5yc3QKQEAgLTQxNCwxNyArNDE0LDI0IEBACiBhY2NlcHRlZCBieSB0aGUgcmVndWxhciBleHByZXNzaW9uIHBhcnNlcjo6CiAKICAgIFxhICAgICAgXGIgICAgICBcZiAgICAgIFxuCi0gICBcciAgICAgIFx0ICAgICAgXHYgICAgICBceAotICAgXFwKKyAgIFxyICAgICAgXHQgICAgICBcdSAgICAgIFxVCisgICBcdiAgICAgIFx4ICAgICAgXFwKIAogKE5vdGUgdGhhdCBgYFxiYGAgaXMgdXNlZCB0byByZXByZXNlbnQgd29yZCBib3VuZGFyaWVzLCBhbmQgbWVhbnMgImJhY2tzcGFjZSIKIG9ubHkgaW5zaWRlIGNoYXJhY3RlciBjbGFzc2VzLikKIAorYGAnXHUnYGAgYW5kIGBgJ1xVJ2BgIGVzY2FwZSBzZXF1ZW5jZXMgYXJlIG9ubHkgcmVjb2duaXplZCBpbiBVbmljb2RlCitwYXR0ZXJucy4gIEluIGJ5dGVzIHBhdHRlcm5zIHRoZXkgYXJlIG5vdCB0cmVhdGVkIHNwZWNpYWxseS4KKwogT2N0YWwgZXNjYXBlcyBhcmUgaW5jbHVkZWQgaW4gYSBsaW1pdGVkIGZvcm0uICBJZiB0aGUgZmlyc3QgZGlnaXQgaXMgYSAwLCBvciBpZgogdGhlcmUgYXJlIHRocmVlIG9jdGFsIGRpZ2l0cywgaXQgaXMgY29uc2lkZXJlZCBhbiBvY3RhbCBlc2NhcGUuIE90aGVyd2lzZSwgaXQgaXMKIGEgZ3JvdXAgcmVmZXJlbmNlLiAgQXMgZm9yIHN0cmluZyBsaXRlcmFscywgb2N0YWwgZXNjYXBlcyBhcmUgYWx3YXlzIGF0IG1vc3QKIHRocmVlIGRpZ2l0cyBpbiBsZW5ndGguCiAKKy4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICBUaGUgYGAnXHUnYGAgYW5kIGBgJ1xVJ2BgIGVzY2FwZSBzZXF1ZW5jZXMgaGF2ZSBiZWVuIGFkZGVkLgorCisKIAogLi4gX2NvbnRlbnRzLW9mLW1vZHVsZS1yZToKIApAQCAtNjg0LDkgKzY5MSwxMiBAQAogCiAuLiBmdW5jdGlvbjo6IGVzY2FwZShzdHJpbmcpCiAKLSAgIFJldHVybiAqc3RyaW5nKiB3aXRoIGFsbCBub24tYWxwaGFudW1lcmljcyBiYWNrc2xhc2hlZDsgdGhpcyBpcyB1c2VmdWwgaWYgeW91Ci0gICB3YW50IHRvIG1hdGNoIGFuIGFyYml0cmFyeSBsaXRlcmFsIHN0cmluZyB0aGF0IG1heSBoYXZlIHJlZ3VsYXIgZXhwcmVzc2lvbgotICAgbWV0YWNoYXJhY3RlcnMgaW4gaXQuCisgICBFc2NhcGUgYWxsIHRoZSBjaGFyYWN0ZXJzIGluIHBhdHRlcm4gZXhjZXB0IEFTQ0lJIGxldHRlcnMsIG51bWJlcnMgYW5kIGBgJ18nYGAuCisgICBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBtYXRjaCBhbiBhcmJpdHJhcnkgbGl0ZXJhbCBzdHJpbmcgdGhhdCBtYXkKKyAgIGhhdmUgcmVndWxhciBleHByZXNzaW9uIG1ldGFjaGFyYWN0ZXJzIGluIGl0LgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhlIGBgJ18nYGAgY2hhcmFjdGVyIGlzIG5vIGxvbmdlciBlc2NhcGVkLgogCiAKIC4uIGZ1bmN0aW9uOjogcHVyZ2UoKQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvcmVhZGxpbmUucnN0IGIvRG9jL2xpYnJhcnkvcmVhZGxpbmUucnN0CmluZGV4IGFiNTUxOTcuLjExMzQ2MTkgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3JlYWRsaW5lLnJzdAorKysgYi9Eb2MvbGlicmFyeS9yZWFkbGluZS5yc3QKQEAgLTE5OSw3ICsxOTksNyBAQAogICAgaGlzdGZpbGUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5leHBhbmR1c2VyKCJ+IiksICIucHloaXN0IikKICAgIHRyeToKICAgICAgICByZWFkbGluZS5yZWFkX2hpc3RvcnlfZmlsZShoaXN0ZmlsZSkKLSAgIGV4Y2VwdCBJT0Vycm9yOgorICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOgogICAgICAgIHBhc3MKICAgIGltcG9ydCBhdGV4aXQKICAgIGF0ZXhpdC5yZWdpc3RlcihyZWFkbGluZS53cml0ZV9oaXN0b3J5X2ZpbGUsIGhpc3RmaWxlKQpAQCAtMjI0LDcgKzIyNCw3IEBACiAgICAgICAgICAgIGlmIGhhc2F0dHIocmVhZGxpbmUsICJyZWFkX2hpc3RvcnlfZmlsZSIpOgogICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgIHJlYWRsaW5lLnJlYWRfaGlzdG9yeV9maWxlKGhpc3RmaWxlKQotICAgICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgICAgYXRleGl0LnJlZ2lzdGVyKHNlbGYuc2F2ZV9oaXN0b3J5LCBoaXN0ZmlsZSkKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvcmVzb3VyY2UucnN0IGIvRG9jL2xpYnJhcnkvcmVzb3VyY2UucnN0CmluZGV4IGMxNmIwMTMuLjAzYTdjYjUgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3Jlc291cmNlLnJzdAorKysgYi9Eb2MvbGlicmFyeS9yZXNvdXJjZS5yc3QKQEAgLTE0LDEzICsxNCwxNSBAQAogU3ltYm9saWMgY29uc3RhbnRzIGFyZSB1c2VkIHRvIHNwZWNpZnkgcGFydGljdWxhciBzeXN0ZW0gcmVzb3VyY2VzIGFuZCB0bwogcmVxdWVzdCB1c2FnZSBpbmZvcm1hdGlvbiBhYm91dCBlaXRoZXIgdGhlIGN1cnJlbnQgcHJvY2VzcyBvciBpdHMgY2hpbGRyZW4uCiAKLUEgc2luZ2xlIGV4Y2VwdGlvbiBpcyBkZWZpbmVkIGZvciBlcnJvcnM6CitBbiA6ZXhjOmBPU0Vycm9yYCBpcyByYWlzZWQgb24gc3lzY2FsbCBmYWlsdXJlLgogCiAKIC4uIGV4Y2VwdGlvbjo6IGVycm9yCiAKLSAgIFRoZSBmdW5jdGlvbnMgZGVzY3JpYmVkIGJlbG93IG1heSByYWlzZSB0aGlzIGVycm9yIGlmIHRoZSB1bmRlcmx5aW5nIHN5c3RlbSBjYWxsCi0gICBmYWlsdXJlcyB1bmV4cGVjdGVkbHkuCisgICBBIGRlcHJlY2F0ZWQgYWxpYXMgb2YgOmV4YzpgT1NFcnJvcmAuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBGb2xsb3dpbmcgOnBlcDpgMzE1MWAsIHRoaXMgY2xhc3Mgd2FzIG1hZGUgYW4gYWxpYXMgb2YgOmV4YzpgT1NFcnJvcmAuCiAKIAogUmVzb3VyY2UgTGltaXRzCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zY2hlZC5yc3QgYi9Eb2MvbGlicmFyeS9zY2hlZC5yc3QKaW5kZXggMDAwZGJhMC4uZDZjODZjNyAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc2NoZWQucnN0CisrKyBiL0RvYy9saWJyYXJ5L3NjaGVkLnJzdApAQCAtMTQsNyArMTQsNyBAQAogVGhlIDptb2Q6YHNjaGVkYCBtb2R1bGUgZGVmaW5lcyBhIGNsYXNzIHdoaWNoIGltcGxlbWVudHMgYSBnZW5lcmFsIHB1cnBvc2UgZXZlbnQKIHNjaGVkdWxlcjoKIAotLi4gY2xhc3M6OiBzY2hlZHVsZXIodGltZWZ1bmMsIGRlbGF5ZnVuYykKKy4uIGNsYXNzOjogc2NoZWR1bGVyKHRpbWVmdW5jPXRpbWUudGltZSwgZGVsYXlmdW5jPXRpbWUuc2xlZXApCiAKICAgIFRoZSA6Y2xhc3M6YHNjaGVkdWxlcmAgY2xhc3MgZGVmaW5lcyBhIGdlbmVyaWMgaW50ZXJmYWNlIHRvIHNjaGVkdWxpbmcgZXZlbnRzLgogICAgSXQgbmVlZHMgdHdvIGZ1bmN0aW9ucyB0byBhY3R1YWxseSBkZWFsIHdpdGggdGhlICJvdXRzaWRlIHdvcmxkIiAtLS0gKnRpbWVmdW5jKgpAQCAtMjUsNiArMjUsMTIgQEAKICAgIGV2ZW50IGlzIHJ1biB0byBhbGxvdyBvdGhlciB0aHJlYWRzIGFuIG9wcG9ydHVuaXR5IHRvIHJ1biBpbiBtdWx0aS10aHJlYWRlZAogICAgYXBwbGljYXRpb25zLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgKnRpbWVmdW5jKiBhbmQgKmRlbGF5ZnVuYyogcGFyYW1ldGVycyBhcmUgb3B0aW9uYWwuCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgOmNsYXNzOmBzY2hlZHVsZXJgIGNsYXNzIGNhbiBiZSBzYWZlbHkgdXNlZCBpbiBtdWx0aS10aHJlYWRlZAorICAgICAgZW52aXJvbm1lbnRzLgorCiBFeGFtcGxlOjoKIAogICAgPj4+IGltcG9ydCBzY2hlZCwgdGltZQpAQCAtNDQsMzMgKzUwLDYgQEAKICAgIEZyb20gcHJpbnRfdGltZSA5MzAzNDM3MDAuMjczCiAgICA5MzAzNDM3MDAuMjc2CiAKLUluIG11bHRpLXRocmVhZGVkIGVudmlyb25tZW50cywgdGhlIDpjbGFzczpgc2NoZWR1bGVyYCBjbGFzcyBoYXMgbGltaXRhdGlvbnMKLXdpdGggcmVzcGVjdCB0byB0aHJlYWQtc2FmZXR5LCBpbmFiaWxpdHkgdG8gaW5zZXJ0IGEgbmV3IHRhc2sgYmVmb3JlCi10aGUgb25lIGN1cnJlbnRseSBwZW5kaW5nIGluIGEgcnVubmluZyBzY2hlZHVsZXIsIGFuZCBob2xkaW5nIHVwIHRoZSBtYWluCi10aHJlYWQgdW50aWwgdGhlIGV2ZW50IHF1ZXVlIGlzIGVtcHR5LiAgSW5zdGVhZCwgdGhlIHByZWZlcnJlZCBhcHByb2FjaAotaXMgdG8gdXNlIHRoZSA6Y2xhc3M6YHRocmVhZGluZy5UaW1lcmAgY2xhc3MgaW5zdGVhZC4KLQotRXhhbXBsZTo6Ci0KLSAgICA+Pj4gaW1wb3J0IHRpbWUKLSAgICA+Pj4gZnJvbSB0aHJlYWRpbmcgaW1wb3J0IFRpbWVyCi0gICAgPj4+IGRlZiBwcmludF90aW1lKCk6Ci0gICAgLi4uICAgICBwcmludCgiRnJvbSBwcmludF90aW1lIiwgdGltZS50aW1lKCkpCi0gICAgLi4uCi0gICAgPj4+IGRlZiBwcmludF9zb21lX3RpbWVzKCk6Ci0gICAgLi4uICAgICBwcmludCh0aW1lLnRpbWUoKSkKLSAgICAuLi4gICAgIFRpbWVyKDUsIHByaW50X3RpbWUsICgpKS5zdGFydCgpCi0gICAgLi4uICAgICBUaW1lcigxMCwgcHJpbnRfdGltZSwgKCkpLnN0YXJ0KCkKLSAgICAuLi4gICAgIHRpbWUuc2xlZXAoMTEpICAjIHNsZWVwIHdoaWxlIHRpbWUtZGVsYXkgZXZlbnRzIGV4ZWN1dGUKLSAgICAuLi4gICAgIHByaW50KHRpbWUudGltZSgpKQotICAgIC4uLgotICAgID4+PiBwcmludF9zb21lX3RpbWVzKCkKLSAgICA5MzAzNDM2OTAuMjU3Ci0gICAgRnJvbSBwcmludF90aW1lIDkzMDM0MzY5NS4yNzQKLSAgICBGcm9tIHByaW50X3RpbWUgOTMwMzQzNzAwLjI3MwotICAgIDkzMDM0MzcwMS4zMDEKLQotCiAuLiBfc2NoZWR1bGVyLW9iamVjdHM6CiAKIFNjaGVkdWxlciBPYmplY3RzCkBAIC03OSwyNiArNTgsMzggQEAKIDpjbGFzczpgc2NoZWR1bGVyYCBpbnN0YW5jZXMgaGF2ZSB0aGUgZm9sbG93aW5nIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXM6CiAKIAotLi4gbWV0aG9kOjogc2NoZWR1bGVyLmVudGVyYWJzKHRpbWUsIHByaW9yaXR5LCBhY3Rpb24sIGFyZ3VtZW50KQorLi4gbWV0aG9kOjogc2NoZWR1bGVyLmVudGVyYWJzKHRpbWUsIHByaW9yaXR5LCBhY3Rpb24sIGFyZ3VtZW50PVtdLCBrd2FyZ3M9e30pCiAKICAgIFNjaGVkdWxlIGEgbmV3IGV2ZW50LiBUaGUgKnRpbWUqIGFyZ3VtZW50IHNob3VsZCBiZSBhIG51bWVyaWMgdHlwZSBjb21wYXRpYmxlCiAgICB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlICp0aW1lZnVuYyogZnVuY3Rpb24gcGFzc2VkICB0byB0aGUgY29uc3RydWN0b3IuCiAgICBFdmVudHMgc2NoZWR1bGVkIGZvciB0aGUgc2FtZSAqdGltZSogd2lsbCBiZSBleGVjdXRlZCBpbiB0aGUgb3JkZXIgb2YgdGhlaXIKICAgICpwcmlvcml0eSouCiAKLSAgIEV4ZWN1dGluZyB0aGUgZXZlbnQgbWVhbnMgZXhlY3V0aW5nIGBgYWN0aW9uKCphcmd1bWVudClgYC4gICphcmd1bWVudCogbXVzdCBiZSBhCi0gICBzZXF1ZW5jZSBob2xkaW5nIHRoZSBwYXJhbWV0ZXJzIGZvciAqYWN0aW9uKi4KKyAgIEV4ZWN1dGluZyB0aGUgZXZlbnQgbWVhbnMgZXhlY3V0aW5nIGBgYWN0aW9uKCphcmd1bWVudCwgKiprd2FyZ3MpYGAuCisgICAqYXJndW1lbnQqIG11c3QgYmUgYSBzZXF1ZW5jZSBob2xkaW5nIHRoZSBwYXJhbWV0ZXJzIGZvciAqYWN0aW9uKi4KKyAgICprd2FyZ3MqIG11c3QgYmUgYSBkaWN0aW9uYXJ5IGhvbGRpbmcgdGhlIGtleXdvcmQgcGFyYW1ldGVycyBmb3IgKmFjdGlvbiouCiAKICAgIFJldHVybiB2YWx1ZSBpcyBhbiBldmVudCB3aGljaCBtYXkgYmUgdXNlZCBmb3IgbGF0ZXIgY2FuY2VsbGF0aW9uIG9mIHRoZSBldmVudAogICAgKHNlZSA6bWV0aDpgY2FuY2VsYCkuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAqYXJndW1lbnQqIHBhcmFtZXRlciBpcyBvcHRpb25hbC4KIAotLi4gbWV0aG9kOjogc2NoZWR1bGVyLmVudGVyKGRlbGF5LCBwcmlvcml0eSwgYWN0aW9uLCBhcmd1bWVudCkKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgKmt3YXJncyogcGFyYW1ldGVyIHdhcyBhZGRlZC4KKworCisuLiBtZXRob2Q6OiBzY2hlZHVsZXIuZW50ZXIoZGVsYXksIHByaW9yaXR5LCBhY3Rpb24sIGFyZ3VtZW50PVtdLCBrd2FyZ3M9e30pCiAKICAgIFNjaGVkdWxlIGFuIGV2ZW50IGZvciAqZGVsYXkqIG1vcmUgdGltZSB1bml0cy4gT3RoZXIgdGhhbiB0aGUgcmVsYXRpdmUgdGltZSwgdGhlCiAgICBvdGhlciBhcmd1bWVudHMsIHRoZSBlZmZlY3QgYW5kIHRoZSByZXR1cm4gdmFsdWUgYXJlIHRoZSBzYW1lIGFzIHRob3NlIGZvcgogICAgOm1ldGg6YGVudGVyYWJzYC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICphcmd1bWVudCogcGFyYW1ldGVyIGlzIG9wdGlvbmFsLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgICprd2FyZ3MqIHBhcmFtZXRlciB3YXMgYWRkZWQuCiAKIC4uIG1ldGhvZDo6IHNjaGVkdWxlci5jYW5jZWwoZXZlbnQpCiAKQEAgLTExMSwxMiArMTAyLDE2IEBACiAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgZXZlbnQgcXVldWUgaXMgZW1wdHkuCiAKIAotLi4gbWV0aG9kOjogc2NoZWR1bGVyLnJ1bigpCisuLiBtZXRob2Q6OiBzY2hlZHVsZXIucnVuKGJsb2NraW5nPVRydWUpCiAKLSAgIFJ1biBhbGwgc2NoZWR1bGVkIGV2ZW50cy4gVGhpcyBmdW5jdGlvbiB3aWxsIHdhaXQgICh1c2luZyB0aGUgOmZ1bmM6YGRlbGF5ZnVuY2AKKyAgIFJ1biBhbGwgc2NoZWR1bGVkIGV2ZW50cy4gVGhpcyBtZXRob2Qgd2lsbCB3YWl0ICAodXNpbmcgdGhlIDpmdW5jOmBkZWxheWZ1bmNgCiAgICBmdW5jdGlvbiBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yKSBmb3IgdGhlIG5leHQgZXZlbnQsIHRoZW4gZXhlY3V0ZSBpdCBhbmQgc28KICAgIG9uIHVudGlsIHRoZXJlIGFyZSBubyBtb3JlIHNjaGVkdWxlZCBldmVudHMuCiAKKyAgIElmICpibG9ja2luZyogaXMgRmFsc2UgZXhlY3V0ZXMgdGhlIHNjaGVkdWxlZCBldmVudHMgZHVlIHRvIGV4cGlyZSBzb29uZXN0CisgICAoaWYgYW55KSBhbmQgdGhlbiByZXR1cm4gdGhlIGRlYWRsaW5lIG9mIHRoZSBuZXh0IHNjaGVkdWxlZCBjYWxsIGluIHRoZQorICAgc2NoZWR1bGVyIChpZiBhbnkpLgorCiAgICBFaXRoZXIgKmFjdGlvbiogb3IgKmRlbGF5ZnVuYyogY2FuIHJhaXNlIGFuIGV4Y2VwdGlvbi4gIEluIGVpdGhlciBjYXNlLCB0aGUKICAgIHNjaGVkdWxlciB3aWxsIG1haW50YWluIGEgY29uc2lzdGVudCBzdGF0ZSBhbmQgcHJvcGFnYXRlIHRoZSBleGNlcHRpb24uICBJZiBhbgogICAgZXhjZXB0aW9uIGlzIHJhaXNlZCBieSAqYWN0aW9uKiwgdGhlIGV2ZW50IHdpbGwgbm90IGJlIGF0dGVtcHRlZCBpbiBmdXR1cmUgY2FsbHMKQEAgLTEyNyw2ICsxMjIsOSBAQAogICAgdGhlIGNhbGxpbmcgY29kZSBpcyByZXNwb25zaWJsZSBmb3IgY2FuY2VsaW5nICBldmVudHMgd2hpY2ggYXJlIG5vIGxvbmdlcgogICAgcGVydGluZW50LgogCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgICpibG9ja2luZyogcGFyYW1ldGVyIHdhcyBhZGRlZC4KKwogLi4gYXR0cmlidXRlOjogc2NoZWR1bGVyLnF1ZXVlCiAKICAgIFJlYWQtb25seSBhdHRyaWJ1dGUgcmV0dXJuaW5nIGEgbGlzdCBvZiB1cGNvbWluZyBldmVudHMgaW4gdGhlIG9yZGVyIHRoZXkKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3NlbGVjdC5yc3QgYi9Eb2MvbGlicmFyeS9zZWxlY3QucnN0CmluZGV4IGE0NTBlYzIuLjRlNjBmNGEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3NlbGVjdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc2VsZWN0LnJzdApAQCAtNiw3ICs2LDggQEAKIAogCiBUaGlzIG1vZHVsZSBwcm92aWRlcyBhY2Nlc3MgdG8gdGhlIDpjOmZ1bmM6YHNlbGVjdGAgYW5kIDpjOmZ1bmM6YHBvbGxgIGZ1bmN0aW9ucwotYXZhaWxhYmxlIGluIG1vc3Qgb3BlcmF0aW5nIHN5c3RlbXMsIDpjOmZ1bmM6YGVwb2xsYCBhdmFpbGFibGUgb24gTGludXggMi41KyBhbmQKK2F2YWlsYWJsZSBpbiBtb3N0IG9wZXJhdGluZyBzeXN0ZW1zLCA6YzpmdW5jOmBkZXZwb2xsYCBhdmFpbGFibGUgb24KK1NvbGFyaXMgYW5kIGRlcml2YXRpdmVzLCA6YzpmdW5jOmBlcG9sbGAgYXZhaWxhYmxlIG9uIExpbnV4IDIuNSsgYW5kCiA6YzpmdW5jOmBrcXVldWVgIGF2YWlsYWJsZSBvbiBtb3N0IEJTRC4KIE5vdGUgdGhhdCBvbiBXaW5kb3dzLCBpdCBvbmx5IHdvcmtzIGZvciBzb2NrZXRzOyBvbiBvdGhlciBvcGVyYXRpbmcgc3lzdGVtcywKIGl0IGFsc28gd29ya3MgZm9yIG90aGVyIGZpbGUgdHlwZXMgKGluIHBhcnRpY3VsYXIsIG9uIFVuaXgsIGl0IHdvcmtzIG9uIHBpcGVzKS4KQEAgLTE4LDE3ICsxOSwzOCBAQAogCiAuLiBleGNlcHRpb246OiBlcnJvcgogCi0gICBUaGUgZXhjZXB0aW9uIHJhaXNlZCB3aGVuIGFuIGVycm9yIG9jY3Vycy4gIFRoZSBhY2NvbXBhbnlpbmcgdmFsdWUgaXMgYSBwYWlyCi0gICBjb250YWluaW5nIHRoZSBudW1lcmljIGVycm9yIGNvZGUgZnJvbSA6YzpkYXRhOmBlcnJub2AgYW5kIHRoZSBjb3JyZXNwb25kaW5nCi0gICBzdHJpbmcsIGFzIHdvdWxkIGJlIHByaW50ZWQgYnkgdGhlIEMgZnVuY3Rpb24gOmM6ZnVuYzpgcGVycm9yYC4KKyAgIEEgZGVwcmVjYXRlZCBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEZvbGxvd2luZyA6cGVwOmAzMTUxYCwgdGhpcyBjbGFzcyB3YXMgbWFkZSBhbiBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KIAogCi0uLiBmdW5jdGlvbjo6IGVwb2xsKHNpemVoaW50PS0xKQorLi4gZnVuY3Rpb246OiBkZXZwb2xsKCkKIAotICAgKE9ubHkgc3VwcG9ydGVkIG9uIExpbnV4IDIuNS40NCBhbmQgbmV3ZXIuKSAgUmV0dXJucyBhbiBlZGdlIHBvbGxpbmcgb2JqZWN0LAotICAgd2hpY2ggY2FuIGJlIHVzZWQgYXMgRWRnZSBvciBMZXZlbCBUcmlnZ2VyZWQgaW50ZXJmYWNlIGZvciBJL08gZXZlbnRzOyBzZWUKLSAgIHNlY3Rpb24gOnJlZjpgZXBvbGwtb2JqZWN0c2AgYmVsb3cgZm9yIHRoZSBtZXRob2RzIHN1cHBvcnRlZCBieSBlcG9sbGluZwotICAgb2JqZWN0cy4KKyAgIChPbmx5IHN1cHBvcnRlZCBvbiBTb2xhcmlzIGFuZCBkZXJpdmF0aXZlcy4pICBSZXR1cm5zIGEgYGAvZGV2L3BvbGxgYAorICAgcG9sbGluZyBvYmplY3Q7IHNlZSBzZWN0aW9uIDpyZWY6YGRldnBvbGwtb2JqZWN0c2AgYmVsb3cgZm9yIHRoZQorICAgbWV0aG9kcyBzdXBwb3J0ZWQgYnkgZGV2cG9sbCBvYmplY3RzLgorCisgICA6YzpmdW5jOmBkZXZwb2xsYCBvYmplY3RzIGFyZSBsaW5rZWQgdG8gdGhlIG51bWJlciBvZiBmaWxlCisgICBkZXNjcmlwdG9ycyBhbGxvd2VkIGF0IHRoZSB0aW1lIG9mIGluc3RhbnRpYXRpb24uIElmIHlvdXIgcHJvZ3JhbQorICAgcmVkdWNlcyB0aGlzIHZhbHVlLCA6YzpmdW5jOmBkZXZwb2xsYCB3aWxsIGZhaWwuIElmIHlvdXIgcHJvZ3JhbQorICAgaW5jcmVhc2VzIHRoaXMgdmFsdWUsIDpjOmZ1bmM6YGRldnBvbGxgIG1heSByZXR1cm4gYW4KKyAgIGluY29tcGxldGUgbGlzdCBvZiBhY3RpdmUgZmlsZSBkZXNjcmlwdG9ycy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGZ1bmN0aW9uOjogZXBvbGwoc2l6ZWhpbnQ9LTEsIGZsYWdzPTApCisKKyAgIChPbmx5IHN1cHBvcnRlZCBvbiBMaW51eCAyLjUuNDQgYW5kIG5ld2VyLikgUmV0dXJuIGFuIGVkZ2UgcG9sbGluZyBvYmplY3QsCisgICB3aGljaCBjYW4gYmUgdXNlZCBhcyBFZGdlIG9yIExldmVsIFRyaWdnZXJlZCBpbnRlcmZhY2UgZm9yIEkvTworICAgZXZlbnRzLiAqc2l6ZWhpbnQqIGlzIGRlcHJlY2F0ZWQgYW5kIGNvbXBsZXRlbHkgaWdub3JlZC4gKmZsYWdzKiBjYW4gYmUgc2V0CisgICB0byA6Y29uc3Q6YEVQT0xMX0NMT0VYRUNgLCB3aGljaCBjYXVzZXMgdGhlIGVwb2xsIGRlc2NyaXB0b3IgdG8gYmUgY2xvc2VkCisgICBhdXRvbWF0aWNhbGx5IHdoZW4gOmZ1bmM6YG9zLmV4ZWN2ZWAgaXMgY2FsbGVkLiBTZWUgc2VjdGlvbgorICAgOnJlZjpgZXBvbGwtb2JqZWN0c2AgYmVsb3cgZm9yIHRoZSBtZXRob2RzIHN1cHBvcnRlZCBieSBlcG9sbGluZyBvYmplY3RzLgorCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCB0aGUgKmZsYWdzKiBwYXJhbWV0ZXIuCiAKIAogLi4gZnVuY3Rpb246OiBwb2xsKCkKQEAgLTEwNiw2ICsxMjgsNzQgQEAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCiAKKy4uIF9kZXZwb2xsLW9iamVjdHM6CisKK2BgL2Rldi9wb2xsYGAgUG9sbGluZyBPYmplY3RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgIGh0dHA6Ly9kZXZlbG9wZXJzLnN1bi5jb20vc29sYXJpcy9hcnRpY2xlcy91c2luZ19kZXZwb2xsLmh0bWwKKyAgIGh0dHA6Ly9kZXZlbG9wZXJzLnN1bi5jb20vc29sYXJpcy9hcnRpY2xlcy9wb2xsaW5nX2VmZmljaWVudC5odG1sCisKK1NvbGFyaXMgYW5kIGRlcml2YXRpdmVzIGhhdmUgYGAvZGV2L3BvbGxgYC4gV2hpbGUgOmM6ZnVuYzpgc2VsZWN0YCBpcworTyhoaWdoZXN0IGZpbGUgZGVzY3JpcHRvcikgYW5kIDpjOmZ1bmM6YHBvbGxgIGlzIE8obnVtYmVyIG9mIGZpbGUKK2Rlc2NyaXB0b3JzKSwgYGAvZGV2L3BvbGxgYCBpcyBPKGFjdGl2ZSBmaWxlIGRlc2NyaXB0b3JzKS4KKworYGAvZGV2L3BvbGxgYCBiZWhhdmlvdXIgaXMgdmVyeSBjbG9zZSB0byB0aGUgc3RhbmRhcmQgOmM6ZnVuYzpgcG9sbGAKK29iamVjdC4KKworCisuLiBtZXRob2Q6OiBkZXZwb2xsLnJlZ2lzdGVyKGZkWywgZXZlbnRtYXNrXSkKKworICAgUmVnaXN0ZXIgYSBmaWxlIGRlc2NyaXB0b3Igd2l0aCB0aGUgcG9sbGluZyBvYmplY3QuICBGdXR1cmUgY2FsbHMgdG8gdGhlCisgICA6bWV0aDpgcG9sbGAgbWV0aG9kIHdpbGwgdGhlbiBjaGVjayB3aGV0aGVyIHRoZSBmaWxlIGRlc2NyaXB0b3IgaGFzIGFueSBwZW5kaW5nCisgICBJL08gZXZlbnRzLiAgKmZkKiBjYW4gYmUgZWl0aGVyIGFuIGludGVnZXIsIG9yIGFuIG9iamVjdCB3aXRoIGEgOm1ldGg6YGZpbGVub2AKKyAgIG1ldGhvZCB0aGF0IHJldHVybnMgYW4gaW50ZWdlci4gIEZpbGUgb2JqZWN0cyBpbXBsZW1lbnQgOm1ldGg6YGZpbGVub2AsIHNvIHRoZXkKKyAgIGNhbiBhbHNvIGJlIHVzZWQgYXMgdGhlIGFyZ3VtZW50LgorCisgICAqZXZlbnRtYXNrKiBpcyBhbiBvcHRpb25hbCBiaXRtYXNrIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgZXZlbnRzIHlvdSB3YW50IHRvCisgICBjaGVjayBmb3IuIFRoZSBjb25zdGFudHMgYXJlIHRoZSBzYW1lIHRoYXQgd2l0aCA6YzpmdW5jOmBwb2xsYAorICAgb2JqZWN0LiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBjb25zdGFudHMgOmNvbnN0OmBQT0xMSU5gLAorICAgOmNvbnN0OmBQT0xMUFJJYCwgYW5kIDpjb25zdDpgUE9MTE9VVGAuCisKKyAgIC4uIHdhcm5pbmc6OgorCisgICAgICBSZWdpc3RlcmluZyBhIGZpbGUgZGVzY3JpcHRvciB0aGF0J3MgYWxyZWFkeSByZWdpc3RlcmVkIGlzIG5vdCBhbgorICAgICAgZXJyb3IsIGJ1dCB0aGUgcmVzdWx0IGlzIHVuZGVmaW5lZC4gVGhlIGFwcHJvcGlhdGUgYWN0aW9uIGlzIHRvCisgICAgICB1bnJlZ2lzdGVyIG9yIG1vZGlmeSBpdCBmaXJzdC4gVGhpcyBpcyBhbiBpbXBvcnRhbnQgZGlmZmVyZW5jZQorICAgICAgY29tcGFyZWQgd2l0aCA6YzpmdW5jOmBwb2xsYC4KKworCisuLiBtZXRob2Q6OiBkZXZwb2xsLm1vZGlmeShmZFssIGV2ZW50bWFza10pCisKKyAgIFRoaXMgbWV0aG9kIGRvZXMgYW4gOm1ldGg6YHVucmVnaXN0ZXJgIGZvbGxvd2VkIGJ5IGEKKyAgIDptZXRoOmByZWdpc3RlcmAuIEl0IGlzIChhIGJpdCkgbW9yZSBlZmZpY2llbnQgdGhhdCBkb2luZyB0aGUgc2FtZQorICAgZXhwbGljaXRseS4KKworCisuLiBtZXRob2Q6OiBkZXZwb2xsLnVucmVnaXN0ZXIoZmQpCisKKyAgIFJlbW92ZSBhIGZpbGUgZGVzY3JpcHRvciBiZWluZyB0cmFja2VkIGJ5IGEgcG9sbGluZyBvYmplY3QuICBKdXN0IGxpa2UgdGhlCisgICA6bWV0aDpgcmVnaXN0ZXJgIG1ldGhvZCwgKmZkKiBjYW4gYmUgYW4gaW50ZWdlciBvciBhbiBvYmplY3Qgd2l0aCBhCisgICA6bWV0aDpgZmlsZW5vYCBtZXRob2QgdGhhdCByZXR1cm5zIGFuIGludGVnZXIuCisKKyAgIEF0dGVtcHRpbmcgdG8gcmVtb3ZlIGEgZmlsZSBkZXNjcmlwdG9yIHRoYXQgd2FzIG5ldmVyIHJlZ2lzdGVyZWQgaXMKKyAgIHNhZmVseSBpZ25vcmVkLgorCisKKy4uIG1ldGhvZDo6IGRldnBvbGwucG9sbChbdGltZW91dF0pCisKKyAgIFBvbGxzIHRoZSBzZXQgb2YgcmVnaXN0ZXJlZCBmaWxlIGRlc2NyaXB0b3JzLCBhbmQgcmV0dXJucyBhIHBvc3NpYmx5LWVtcHR5IGxpc3QKKyAgIGNvbnRhaW5pbmcgYGAoZmQsIGV2ZW50KWBgIDItdHVwbGVzIGZvciB0aGUgZGVzY3JpcHRvcnMgdGhhdCBoYXZlIGV2ZW50cyBvcgorICAgZXJyb3JzIHRvIHJlcG9ydC4gKmZkKiBpcyB0aGUgZmlsZSBkZXNjcmlwdG9yLCBhbmQgKmV2ZW50KiBpcyBhIGJpdG1hc2sgd2l0aAorICAgYml0cyBzZXQgZm9yIHRoZSByZXBvcnRlZCBldmVudHMgZm9yIHRoYXQgZGVzY3JpcHRvciAtLS0gOmNvbnN0OmBQT0xMSU5gIGZvcgorICAgd2FpdGluZyBpbnB1dCwgOmNvbnN0OmBQT0xMT1VUYCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBkZXNjcmlwdG9yIGNhbiBiZSB3cml0dGVuCisgICB0bywgYW5kIHNvIGZvcnRoLiBBbiBlbXB0eSBsaXN0IGluZGljYXRlcyB0aGF0IHRoZSBjYWxsIHRpbWVkIG91dCBhbmQgbm8gZmlsZQorICAgZGVzY3JpcHRvcnMgaGFkIGFueSBldmVudHMgdG8gcmVwb3J0LiBJZiAqdGltZW91dCogaXMgZ2l2ZW4sIGl0IHNwZWNpZmllcyB0aGUKKyAgIGxlbmd0aCBvZiB0aW1lIGluIG1pbGxpc2Vjb25kcyB3aGljaCB0aGUgc3lzdGVtIHdpbGwgd2FpdCBmb3IgZXZlbnRzIGJlZm9yZQorICAgcmV0dXJuaW5nLiBJZiAqdGltZW91dCogaXMgb21pdHRlZCwgLTEsIG9yIDpjb25zdDpgTm9uZWAsIHRoZSBjYWxsIHdpbGwKKyAgIGJsb2NrIHVudGlsIHRoZXJlIGlzIGFuIGV2ZW50IGZvciB0aGlzIHBvbGwgb2JqZWN0LgorCisKIC4uIF9lcG9sbC1vYmplY3RzOgogCiBFZGdlIGFuZCBMZXZlbCBUcmlnZ2VyIFBvbGxpbmcgKGVwb2xsKSBPYmplY3RzCkBAIC0xNjUsMTEgKzI1NSw2IEBACiAKICAgIFJlZ2lzdGVyIGEgZmQgZGVzY3JpcHRvciB3aXRoIHRoZSBlcG9sbCBvYmplY3QuCiAKLSAgIC4uIG5vdGU6OgotCi0gICAgIFJlZ2lzdGVyaW5nIGEgZmlsZSBkZXNjcmlwdG9yIHRoYXQncyBhbHJlYWR5IHJlZ2lzdGVyZWQgcmFpc2VzIGFuCi0gICAgIElPRXJyb3IgLS0gY29udHJhcnkgdG8gOnJlZjpgcG9sbC1vYmplY3RzYCdzIHJlZ2lzdGVyLgotCiAKIC4uIG1ldGhvZDo6IGVwb2xsLm1vZGlmeShmZCwgZXZlbnRtYXNrKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zaGxleC5yc3QgYi9Eb2MvbGlicmFyeS9zaGxleC5yc3QKaW5kZXggMDExM2ZiNy4uOTQxZTA5MCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc2hsZXgucnN0CisrKyBiL0RvYy9saWJyYXJ5L3NobGV4LnJzdApAQCAtMzQsNiArMzQsNDAgQEAKICAgICAgIHBhc3NpbmcgYGBOb25lYGAgZm9yICpzKiB3aWxsIHJlYWQgdGhlIHN0cmluZyB0byBzcGxpdCBmcm9tIHN0YW5kYXJkCiAgICAgICBpbnB1dC4KIAorCisuLiBmdW5jdGlvbjo6IHF1b3RlKHMpCisKKyAgIFJldHVybiBhIHNoZWxsLWVzY2FwZWQgdmVyc2lvbiBvZiB0aGUgc3RyaW5nICpzKi4gIFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhCisgICBzdHJpbmcgdGhhdCBjYW4gc2FmZWx5IGJlIHVzZWQgYXMgb25lIHRva2VuIGluIGEgc2hlbGwgY29tbWFuZCBsaW5lLCBmb3IKKyAgIGNhc2VzIHdoZXJlIHlvdSBjYW5ub3QgdXNlIGEgbGlzdC4KKworICAgVGhpcyBpZGlvbSB3b3VsZCBiZSB1bnNhZmU6OgorCisgICAgICA+Pj4gZmlsZW5hbWUgPSAnc29tZWZpbGU7IHJtIC1yZiB+JworICAgICAgPj4+IGNvbW1hbmQgPSAnbHMgLWwge30nLmZvcm1hdChmaWxlbmFtZSkKKyAgICAgID4+PiBwcmludChjb21tYW5kKSAgIyBleGVjdXRlZCBieSBhIHNoZWxsOiBib29tIQorICAgICAgbHMgLWwgc29tZWZpbGU7IHJtIC1yZiB+CisKKyAgIDpmdW5jOmBxdW90ZWAgbGV0cyB5b3UgcGx1ZyB0aGUgc2VjdXJpdHkgaG9sZTo6CisKKyAgICAgID4+PiBjb21tYW5kID0gJ2xzIC1sIHt9Jy5mb3JtYXQocXVvdGUoZmlsZW5hbWUpKQorICAgICAgPj4+IHByaW50KGNvbW1hbmQpCisgICAgICBscyAtbCAnc29tZWZpbGU7IHJtIC1yZiB+JworICAgICAgPj4+IHJlbW90ZV9jb21tYW5kID0gJ3NzaCBob21lIHt9Jy5mb3JtYXQocXVvdGUoY29tbWFuZCkpCisgICAgICA+Pj4gcHJpbnQocmVtb3RlX2NvbW1hbmQpCisgICAgICBzc2ggaG9tZSAnbHMgLWwgJyInIidzb21lZmlsZTsgcm0gLXJmIH4nIiciJycKKworICAgVGhlIHF1b3RpbmcgaXMgY29tcGF0aWJsZSB3aXRoIFVOSVggc2hlbGxzIGFuZCB3aXRoIDpmdW5jOmBzcGxpdGA6CisKKyAgICAgID4+PiByZW1vdGVfY29tbWFuZCA9IHNwbGl0KHJlbW90ZV9jb21tYW5kKQorICAgICAgPj4+IHJlbW90ZV9jb21tYW5kCisgICAgICBbJ3NzaCcsICdob21lJywgImxzIC1sICdzb21lZmlsZTsgcm0gLXJmIH4nIl0KKyAgICAgID4+PiBjb21tYW5kID0gc3BsaXQocmVtb3RlX2NvbW1hbmRbLTFdKQorICAgICAgPj4+IGNvbW1hbmQKKyAgICAgIFsnbHMnLCAnLWwnLCAnc29tZWZpbGU7IHJtIC1yZiB+J10KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIFRoZSA6bW9kOmBzaGxleGAgbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBjbGFzczoKIAogCkBAIC0yODIsNSArMzE2LDQgQEAKIAogKiBFT0YgaXMgc2lnbmFsZWQgd2l0aCBhIDpjb25zdDpgTm9uZWAgdmFsdWU7CiAKLSogUXVvdGVkIGVtcHR5IHN0cmluZ3MgKGBgJydgYCkgYXJlIGFsbG93ZWQ7Ci0KKyogUXVvdGVkIGVtcHR5IHN0cmluZ3MgKGBgJydgYCkgYXJlIGFsbG93ZWQuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zaHV0aWwucnN0IGIvRG9jL2xpYnJhcnkvc2h1dGlsLnJzdAppbmRleCAxOGY2NDg1Li5jMzk0N2JiIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9zaHV0aWwucnN0CisrKyBiL0RvYy9saWJyYXJ5L3NodXRpbC5yc3QKQEAgLTQ3LDQ1ICs0Nyw3OSBAQAogICAgYmUgY29waWVkLgogCiAKLS4uIGZ1bmN0aW9uOjogY29weWZpbGUoc3JjLCBkc3QpCisuLiBmdW5jdGlvbjo6IGNvcHlmaWxlKHNyYywgZHN0LCBzeW1saW5rcz1GYWxzZSkKIAogICAgQ29weSB0aGUgY29udGVudHMgKG5vIG1ldGFkYXRhKSBvZiB0aGUgZmlsZSBuYW1lZCAqc3JjKiB0byBhIGZpbGUgbmFtZWQKLSAgICpkc3QqLiAgKmRzdCogbXVzdCBiZSB0aGUgY29tcGxldGUgdGFyZ2V0IGZpbGUgbmFtZTsgbG9vayBhdAorICAgKmRzdCogYW5kIHJldHVybiAqZHN0Ki4gICpkc3QqIG11c3QgYmUgdGhlIGNvbXBsZXRlIHRhcmdldCBmaWxlIG5hbWU7IGxvb2sgYXQKICAgIDpmdW5jOmBzaHV0aWwuY29weWAgZm9yIGEgY29weSB0aGF0IGFjY2VwdHMgYSB0YXJnZXQgZGlyZWN0b3J5IHBhdGguICBJZgogICAgKnNyYyogYW5kICpkc3QqIGFyZSB0aGUgc2FtZSBmaWxlcywgOmV4YzpgRXJyb3JgIGlzIHJhaXNlZC4KLSAgIFRoZSBkZXN0aW5hdGlvbiBsb2NhdGlvbiBtdXN0IGJlIHdyaXRhYmxlOyBvdGhlcndpc2UsICBhbiA6ZXhjOmBJT0Vycm9yYCBleGNlcHRpb24KKworICAgVGhlIGRlc3RpbmF0aW9uIGxvY2F0aW9uIG11c3QgYmUgd3JpdGFibGU7IG90aGVyd2lzZSwgIGFuIDpleGM6YE9TRXJyb3JgIGV4Y2VwdGlvbgogICAgd2lsbCBiZSByYWlzZWQuIElmICpkc3QqIGFscmVhZHkgZXhpc3RzLCBpdCB3aWxsIGJlIHJlcGxhY2VkLiAgIFNwZWNpYWwgZmlsZXMKICAgIHN1Y2ggYXMgY2hhcmFjdGVyIG9yIGJsb2NrIGRldmljZXMgYW5kIHBpcGVzIGNhbm5vdCBiZSBjb3BpZWQgd2l0aCB0aGlzCiAgICBmdW5jdGlvbi4gICpzcmMqIGFuZCAqZHN0KiBhcmUgcGF0aCBuYW1lcyBnaXZlbiBhcyBzdHJpbmdzLgogCisgICBJZiAqc3ltbGlua3MqIGlzIHRydWUgYW5kICpzcmMqIGlzIGEgc3ltYm9saWMgbGluaywgYSBuZXcgc3ltYm9saWMgbGluayB3aWxsCisgICBiZSBjcmVhdGVkIGluc3RlYWQgb2YgY29weWluZyB0aGUgZmlsZSAqc3JjKiBwb2ludHMgdG8uCiAKLS4uIGZ1bmN0aW9uOjogY29weW1vZGUoc3JjLCBkc3QpCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgOmV4YzpgSU9FcnJvcmAgdXNlZCB0byBiZSByYWlzZWQgaW5zdGVhZCBvZiA6ZXhjOmBPU0Vycm9yYC4KKyAgICAgIEFkZGVkICpzeW1saW5rcyogYXJndW1lbnQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCByZXR1cm4gb2YgdGhlICpkc3QqLgorCisuLiBmdW5jdGlvbjo6IGNvcHltb2RlKHNyYywgZHN0LCBzeW1saW5rcz1GYWxzZSkKIAogICAgQ29weSB0aGUgcGVybWlzc2lvbiBiaXRzIGZyb20gKnNyYyogdG8gKmRzdCouICBUaGUgZmlsZSBjb250ZW50cywgb3duZXIsIGFuZAotICAgZ3JvdXAgYXJlIHVuYWZmZWN0ZWQuICAqc3JjKiBhbmQgKmRzdCogYXJlIHBhdGggbmFtZXMgZ2l2ZW4gYXMgc3RyaW5ncy4KKyAgIGdyb3VwIGFyZSB1bmFmZmVjdGVkLiAgKnNyYyogYW5kICpkc3QqIGFyZSBwYXRoIG5hbWVzIGdpdmVuIGFzIHN0cmluZ3MuICBJZgorICAgKnN5bWxpbmtzKiBpcyB0cnVlLCAqc3JjKiBhIHN5bWJvbGljIGxpbmsgYW5kIHRoZSBvcGVyYXRpbmcgc3lzdGVtIHN1cHBvcnRzCisgICBtb2RlcyBmb3Igc3ltYm9saWMgbGlua3MgKGZvciBleGFtcGxlIEJTRC1iYXNlZCBvbmVzKSwgdGhlIG1vZGUgb2YgdGhlIGxpbmsKKyAgIHdpbGwgYmUgY29waWVkLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgKnN5bWxpbmtzKiBhcmd1bWVudC4KIAotLi4gZnVuY3Rpb246OiBjb3B5c3RhdChzcmMsIGRzdCkKKy4uIGZ1bmN0aW9uOjogY29weXN0YXQoc3JjLCBkc3QsIHN5bWxpbmtzPUZhbHNlKQogCiAgICBDb3B5IHRoZSBwZXJtaXNzaW9uIGJpdHMsIGxhc3QgYWNjZXNzIHRpbWUsIGxhc3QgbW9kaWZpY2F0aW9uIHRpbWUsIGFuZCBmbGFncwogICAgZnJvbSAqc3JjKiB0byAqZHN0Ki4gIFRoZSBmaWxlIGNvbnRlbnRzLCBvd25lciwgYW5kIGdyb3VwIGFyZSB1bmFmZmVjdGVkLiAgKnNyYyoKLSAgIGFuZCAqZHN0KiBhcmUgcGF0aCBuYW1lcyBnaXZlbiBhcyBzdHJpbmdzLgorICAgYW5kICpkc3QqIGFyZSBwYXRoIG5hbWVzIGdpdmVuIGFzIHN0cmluZ3MuICBJZiAqc3JjKiBhbmQgKmRzdCogYXJlIGJvdGgKKyAgIHN5bWJvbGljIGxpbmtzIGFuZCAqc3ltbGlua3MqIHRydWUsIHRoZSBzdGF0cyBvZiB0aGUgbGluayB3aWxsIGJlIGNvcGllZCBhcworICAgZmFyIGFzIHRoZSBwbGF0Zm9ybSBhbGxvd3MuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCAqc3ltbGlua3MqIGFyZ3VtZW50LgogCi0uLiBmdW5jdGlvbjo6IGNvcHkoc3JjLCBkc3QpCisuLiBmdW5jdGlvbjo6IGNvcHkoc3JjLCBkc3QsIHN5bWxpbmtzPUZhbHNlKQogCi0gICBDb3B5IHRoZSBmaWxlICpzcmMqIHRvIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSAqZHN0Ki4gIElmICpkc3QqIGlzIGEgZGlyZWN0b3J5LCBhCisgICBDb3B5IHRoZSBmaWxlICpzcmMqIHRvIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSAqZHN0KiBhbmQgcmV0dXJuIHRoZSBmaWxlJ3MKKyAgIGRlc3RpbmF0aW9uLiAgSWYgKmRzdCogaXMgYSBkaXJlY3RvcnksIGEKICAgIGZpbGUgd2l0aCB0aGUgc2FtZSBiYXNlbmFtZSBhcyAqc3JjKiAgaXMgY3JlYXRlZCAob3Igb3ZlcndyaXR0ZW4pIGluIHRoZQogICAgZGlyZWN0b3J5IHNwZWNpZmllZC4gIFBlcm1pc3Npb24gYml0cyBhcmUgY29waWVkLiAgKnNyYyogYW5kICpkc3QqIGFyZSBwYXRoCi0gICBuYW1lcyBnaXZlbiBhcyBzdHJpbmdzLgorICAgbmFtZXMgZ2l2ZW4gYXMgc3RyaW5ncy4gIElmICpzeW1saW5rcyogaXMgdHJ1ZSwgc3ltYm9saWMgbGlua3Mgd29uJ3QgYmUKKyAgIGZvbGxvd2VkIGJ1dCByZWNyZWF0ZWQgaW5zdGVhZCAtLSB0aGlzIHJlc2VtYmxlcyBHTlUncyA6cHJvZ3JhbTpgY3AgLVBgLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgKnN5bWxpbmtzKiBhcmd1bWVudC4KIAotLi4gZnVuY3Rpb246OiBjb3B5MihzcmMsIGRzdCkKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCByZXR1cm4gb2YgdGhlICpkc3QqLgogCi0gICBTaW1pbGFyIHRvIDpmdW5jOmBzaHV0aWwuY29weWAsIGJ1dCBtZXRhZGF0YSBpcyBjb3BpZWQgYXMgd2VsbCAtLSBpbiBmYWN0LAotICAgdGhpcyBpcyBqdXN0IDpmdW5jOmBzaHV0aWwuY29weWAgZm9sbG93ZWQgYnkgOmZ1bmM6YGNvcHlzdGF0YC4gIFRoaXMgaXMKLSAgIHNpbWlsYXIgdG8gdGhlIFVuaXggY29tbWFuZCA6cHJvZ3JhbTpgY3AgLXBgLgorLi4gZnVuY3Rpb246OiBjb3B5MihzcmMsIGRzdCwgc3ltbGlua3M9RmFsc2UpCiAKKyAgIFNpbWlsYXIgdG8gOmZ1bmM6YHNodXRpbC5jb3B5YCwgaW5jbHVkaW5nIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGlzCisgICByZXR1cm5lZCwgYnV0IG1ldGFkYXRhIGlzIGNvcGllZCBhcyB3ZWxsLiBUaGlzIGlzCisgICBzaW1pbGFyIHRvIHRoZSBVbml4IGNvbW1hbmQgOnByb2dyYW06YGNwIC1wYC4gIElmICpzeW1saW5rcyogaXMgdHJ1ZSwKKyAgIHN5bWJvbGljIGxpbmtzIHdvbid0IGJlIGZvbGxvd2VkIGJ1dCByZWNyZWF0ZWQgaW5zdGVhZCAtLSB0aGlzIHJlc2VtYmxlcworICAgR05VJ3MgOnByb2dyYW06YGNwIC1QYC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEFkZGVkICpzeW1saW5rcyogYXJndW1lbnQsIHRyeSB0byBjb3B5IGV4dGVuZGVkIGZpbGUgc3lzdGVtIGF0dHJpYnV0ZXMKKyAgICAgIHRvbyAoY3VycmVudGx5IExpbnV4IG9ubHkpLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgcmV0dXJuIG9mIHRoZSAqZHN0Ki4KIAogLi4gZnVuY3Rpb246OiBpZ25vcmVfcGF0dGVybnMoXCpwYXR0ZXJucykKIApAQCAtOTYsMTYgKzEzMCwxNyBAQAogCiAuLiBmdW5jdGlvbjo6IGNvcHl0cmVlKHNyYywgZHN0LCBzeW1saW5rcz1GYWxzZSwgaWdub3JlPU5vbmUsIGNvcHlfZnVuY3Rpb249Y29weTIsIGlnbm9yZV9kYW5nbGluZ19zeW1saW5rcz1GYWxzZSkKIAotICAgUmVjdXJzaXZlbHkgY29weSBhbiBlbnRpcmUgZGlyZWN0b3J5IHRyZWUgcm9vdGVkIGF0ICpzcmMqLiAgVGhlIGRlc3RpbmF0aW9uCisgICBSZWN1cnNpdmVseSBjb3B5IGFuIGVudGlyZSBkaXJlY3RvcnkgdHJlZSByb290ZWQgYXQgKnNyYyosIHJldHVybmluZyB0aGUKKyAgIGRlc3RpbmF0aW9uIGRpcmVjdG9yeS4gIFRoZSBkZXN0aW5hdGlvbgogICAgZGlyZWN0b3J5LCBuYW1lZCBieSAqZHN0KiwgbXVzdCBub3QgYWxyZWFkeSBleGlzdDsgaXQgd2lsbCBiZSBjcmVhdGVkIGFzCiAgICB3ZWxsIGFzIG1pc3NpbmcgcGFyZW50IGRpcmVjdG9yaWVzLiAgUGVybWlzc2lvbnMgYW5kIHRpbWVzIG9mIGRpcmVjdG9yaWVzCiAgICBhcmUgY29waWVkIHdpdGggOmZ1bmM6YGNvcHlzdGF0YCwgaW5kaXZpZHVhbCBmaWxlcyBhcmUgY29waWVkIHVzaW5nCiAgICA6ZnVuYzpgc2h1dGlsLmNvcHkyYC4KIAogICAgSWYgKnN5bWxpbmtzKiBpcyB0cnVlLCBzeW1ib2xpYyBsaW5rcyBpbiB0aGUgc291cmNlIHRyZWUgYXJlIHJlcHJlc2VudGVkIGFzCi0gICBzeW1ib2xpYyBsaW5rcyBpbiB0aGUgbmV3IHRyZWUsIGJ1dCB0aGUgbWV0YWRhdGEgb2YgdGhlIG9yaWdpbmFsIGxpbmtzIGlzIE5PVAotICAgY29waWVkOyBpZiBmYWxzZSBvciBvbWl0dGVkLCB0aGUgY29udGVudHMgYW5kIG1ldGFkYXRhIG9mIHRoZSBsaW5rZWQgZmlsZXMKLSAgIGFyZSBjb3BpZWQgdG8gdGhlIG5ldyB0cmVlLgorICAgc3ltYm9saWMgbGlua3MgaW4gdGhlIG5ldyB0cmVlIGFuZCB0aGUgbWV0YWRhdGEgb2YgdGhlIG9yaWdpbmFsIGxpbmtzIHdpbGwKKyAgIGJlIGNvcGllZCBhcyBmYXIgYXMgdGhlIHBsYXRmb3JtIGFsbG93czsgaWYgZmFsc2Ugb3Igb21pdHRlZCwgdGhlIGNvbnRlbnRzCisgICBhbmQgbWV0YWRhdGEgb2YgdGhlIGxpbmtlZCBmaWxlcyBhcmUgY29waWVkIHRvIHRoZSBuZXcgdHJlZS4KIAogICAgV2hlbiAqc3ltbGlua3MqIGlzIGZhbHNlLCBpZiB0aGUgZmlsZSBwb2ludGVkIGJ5IHRoZSBzeW1saW5rIGRvZXNuJ3QKICAgIGV4aXN0LCBhIGV4Y2VwdGlvbiB3aWxsIGJlIGFkZGVkIGluIHRoZSBsaXN0IG9mIGVycm9ycyByYWlzZWQgaW4KQEAgLTEyOSw3ICsxNjQsNyBAQAogICAgSWYgKmNvcHlfZnVuY3Rpb24qIGlzIGdpdmVuLCBpdCBtdXN0IGJlIGEgY2FsbGFibGUgdGhhdCB3aWxsIGJlIHVzZWQgdG8gY29weQogICAgZWFjaCBmaWxlLiBJdCB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSBzb3VyY2UgcGF0aCBhbmQgdGhlIGRlc3RpbmF0aW9uIHBhdGgKICAgIGFzIGFyZ3VtZW50cy4gQnkgZGVmYXVsdCwgOmZ1bmM6YHNodXRpbC5jb3B5MmAgaXMgdXNlZCwgYnV0IGFueSBmdW5jdGlvbgotICAgdGhhdCBzdXBwb3J0cyB0aGUgc2FtZSBzaWduYXR1cmUgKGxpa2UgOmZ1bmM6YGNvcHlgKSBjYW4gYmUgdXNlZC4KKyAgIHRoYXQgc3VwcG9ydHMgdGhlIHNhbWUgc2lnbmF0dXJlIChsaWtlIDpmdW5jOmBzaHV0aWwuY29weWApIGNhbiBiZSB1c2VkLgogCiAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgogICAgICAgQWRkZWQgdGhlICpjb3B5X2Z1bmN0aW9uKiBhcmd1bWVudCB0byBiZSBhYmxlIHRvIHByb3ZpZGUgYSBjdXN0b20gY29weQpAQCAtMTM5LDYgKzE3NCwxMiBAQAogICAgICAgQWRkZWQgdGhlICppZ25vcmVfZGFuZ2xpbmdfc3ltbGlua3MqIGFyZ3VtZW50IHRvIHNpbGVudCBkYW5nbGluZyBzeW1saW5rcwogICAgICAgZXJyb3JzIHdoZW4gKnN5bWxpbmtzKiBpcyBmYWxzZS4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIENvcHkgbWV0YWRhdGEgd2hlbiAqc3ltbGlua3MqIGlzIGZhbHNlLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgcmV0dXJuIG9mIHRoZSAqZHN0Ki4KKwogCiAuLiBmdW5jdGlvbjo6IHJtdHJlZShwYXRoLCBpZ25vcmVfZXJyb3JzPUZhbHNlLCBvbmVycm9yPU5vbmUpCiAKQEAgLTE1MCwxOSArMTkxLDQyIEBACiAgICBoYW5kbGVkIGJ5IGNhbGxpbmcgYSBoYW5kbGVyIHNwZWNpZmllZCBieSAqb25lcnJvciogb3IsIGlmIHRoYXQgaXMgb21pdHRlZCwKICAgIHRoZXkgcmFpc2UgYW4gZXhjZXB0aW9uLgogCisgICAuLiBub3RlOjoKKworICAgICAgT24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydCB0aGUgbmVjZXNzYXJ5IGZkLWJhc2VkIGZ1bmN0aW9ucyBhIHN5bWxpbmsKKyAgICAgIGF0dGFjayByZXNpc3RhbnQgdmVyc2lvbiBvZiA6ZnVuYzpgcm10cmVlYCBpcyB1c2VkIGJ5IGRlZmF1bHQuICBPbiBvdGhlcgorICAgICAgcGxhdGZvcm1zLCB0aGUgOmZ1bmM6YHJtdHJlZWAgaW1wbGVtZW50YXRpb24gaXMgc3VzY2VwdGlibGUgdG8gYSBzeW1saW5rCisgICAgICBhdHRhY2s6IGdpdmVuIHByb3BlciB0aW1pbmcgYW5kIGNpcmN1bXN0YW5jZXMsIGF0dGFja2VycyBjYW4gbWFuaXB1bGF0ZQorICAgICAgc3ltbGlua3Mgb24gdGhlIGZpbGVzeXN0ZW0gdG8gZGVsZXRlIGZpbGVzIHRoZXkgd291bGRuJ3QgYmUgYWJsZSB0byBhY2Nlc3MKKyAgICAgIG90aGVyd2lzZS4gIEFwcGxpY2F0aW9ucyBjYW4gdXNlIHRoZSA6ZGF0YTpgcm10cmVlLmF2b2lkc19zeW1saW5rX2F0dGFja3NgCisgICAgICBmdW5jdGlvbiBhdHRyaWJ1dGUgdG8gZGV0ZXJtaW5lIHdoaWNoIGNhc2UgYXBwbGllcy4KKwogICAgSWYgKm9uZXJyb3IqIGlzIHByb3ZpZGVkLCBpdCBtdXN0IGJlIGEgY2FsbGFibGUgdGhhdCBhY2NlcHRzIHRocmVlCi0gICBwYXJhbWV0ZXJzOiAqZnVuY3Rpb24qLCAqcGF0aCosIGFuZCAqZXhjaW5mbyouIFRoZSBmaXJzdCBwYXJhbWV0ZXIsCi0gICAqZnVuY3Rpb24qLCBpcyB0aGUgZnVuY3Rpb24gd2hpY2ggcmFpc2VkIHRoZSBleGNlcHRpb247IGl0IHdpbGwgYmUKLSAgIDpmdW5jOmBvcy5wYXRoLmlzbGlua2AsIDpmdW5jOmBvcy5saXN0ZGlyYCwgOmZ1bmM6YG9zLnJlbW92ZWAgb3IKLSAgIDpmdW5jOmBvcy5ybWRpcmAuICBUaGUgc2Vjb25kIHBhcmFtZXRlciwgKnBhdGgqLCB3aWxsIGJlIHRoZSBwYXRoIG5hbWUgcGFzc2VkCi0gICB0byAqZnVuY3Rpb24qLiAgVGhlIHRoaXJkIHBhcmFtZXRlciwgKmV4Y2luZm8qLCB3aWxsIGJlIHRoZSBleGNlcHRpb24KLSAgIGluZm9ybWF0aW9uIHJldHVybiBieSA6ZnVuYzpgc3lzLmV4Y19pbmZvYC4gIEV4Y2VwdGlvbnMgcmFpc2VkIGJ5ICpvbmVycm9yKgotICAgd2lsbCBub3QgYmUgY2F1Z2h0LgorICAgcGFyYW1ldGVyczogKmZ1bmN0aW9uKiwgKnBhdGgqLCBhbmQgKmV4Y2luZm8qLgorCisgICBUaGUgZmlyc3QgcGFyYW1ldGVyLCAqZnVuY3Rpb24qLCBpcyB0aGUgZnVuY3Rpb24gd2hpY2ggcmFpc2VkIHRoZSBleGNlcHRpb247CisgICBpdCBkZXBlbmRzIG9uIHRoZSBwbGF0Zm9ybSBhbmQgaW1wbGVtZW50YXRpb24uICBUaGUgc2Vjb25kIHBhcmFtZXRlciwKKyAgICpwYXRoKiwgd2lsbCBiZSB0aGUgcGF0aCBuYW1lIHBhc3NlZCB0byAqZnVuY3Rpb24qLiAgVGhlIHRoaXJkIHBhcmFtZXRlciwKKyAgICpleGNpbmZvKiwgd2lsbCBiZSB0aGUgZXhjZXB0aW9uIGluZm9ybWF0aW9uIHJldHVybmVkIGJ5CisgICA6ZnVuYzpgc3lzLmV4Y19pbmZvYC4gIEV4Y2VwdGlvbnMgcmFpc2VkIGJ5ICpvbmVycm9yKiB3aWxsIG5vdCBiZSBjYXVnaHQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCBhIHN5bWxpbmsgYXR0YWNrIHJlc2lzdGFudCB2ZXJzaW9uIHRoYXQgaXMgdXNlZCBhdXRvbWF0aWNhbGx5CisgICAgICBpZiBwbGF0Zm9ybSBzdXBwb3J0cyBmZC1iYXNlZCBmdW5jdGlvbnMuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IHJtdHJlZS5hdm9pZHNfc3ltbGlua19hdHRhY2tzCisKKyAgICAgIEluZGljYXRlcyB3aGV0aGVyIHRoZSBjdXJyZW50IHBsYXRmb3JtIGFuZCBpbXBsZW1lbnRhdGlvbiBwcm92aWRlcyBhCisgICAgICBzeW1saW5rIGF0dGFjayByZXNpc3RhbnQgdmVyc2lvbiBvZiA6ZnVuYzpgcm10cmVlYC4gIEN1cnJlbnRseSB0aGlzIGlzCisgICAgICBvbmx5IHRydWUgZm9yIHBsYXRmb3JtcyBzdXBwb3J0aW5nIGZkLWJhc2VkIGRpcmVjdG9yeSBhY2Nlc3MgZnVuY3Rpb25zLgorCisgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAogCiAuLiBmdW5jdGlvbjo6IG1vdmUoc3JjLCBkc3QpCiAKLSAgIFJlY3Vyc2l2ZWx5IG1vdmUgYSBmaWxlIG9yIGRpcmVjdG9yeSAoKnNyYyopIHRvIGFub3RoZXIgbG9jYXRpb24gKCpkc3QqKS4KKyAgIFJlY3Vyc2l2ZWx5IG1vdmUgYSBmaWxlIG9yIGRpcmVjdG9yeSAoKnNyYyopIHRvIGFub3RoZXIgbG9jYXRpb24gKCpkc3QqKQorICAgYW5kIHJldHVybiB0aGUgZGVzdGluYXRpb24uCiAKICAgIElmIHRoZSBkZXN0aW5hdGlvbiBpcyBhIGRpcmVjdG9yeSBvciBhIHN5bWxpbmsgdG8gYSBkaXJlY3RvcnksIHRoZW4gKnNyYyogaXMKICAgIG1vdmVkIGluc2lkZSB0aGF0IGRpcmVjdG9yeS4KQEAgLTE3Myw3ICsyMzcsNjMgQEAKIAogICAgSWYgdGhlIGRlc3RpbmF0aW9uIGlzIG9uIHRoZSBjdXJyZW50IGZpbGVzeXN0ZW0sIHRoZW4gOmZ1bmM6YG9zLnJlbmFtZWAgaXMKICAgIHVzZWQuICBPdGhlcndpc2UsICpzcmMqIGlzIGNvcGllZCAodXNpbmcgOmZ1bmM6YHNodXRpbC5jb3B5MmApIHRvICpkc3QqIGFuZAotICAgdGhlbiByZW1vdmVkLgorICAgdGhlbiByZW1vdmVkLiBJbiBjYXNlIG9mIHN5bWxpbmtzLCBhIG5ldyBzeW1saW5rIHBvaW50aW5nIHRvIHRoZSB0YXJnZXQgb2YKKyAgICpzcmMqIHdpbGwgYmUgY3JlYXRlZCBpbiBvciBhcyAqZHN0KiBhbmQgKnNyYyogd2lsbCBiZSByZW1vdmVkLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgZXhwbGljaXQgc3ltbGluayBoYW5kbGluZyBmb3IgZm9yZWlnbiBmaWxlc3lzdGVtcywgdGh1cyBhZGFwdGluZworICAgICAgaXQgdG8gdGhlIGJlaGF2aW9yIG9mIEdOVSdzIDpwcm9ncmFtOmBtdmAuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCByZXR1cm4gb2YgdGhlICpkc3QqLgorCisuLiBmdW5jdGlvbjo6IGRpc2tfdXNhZ2UocGF0aCkKKworICAgUmV0dXJuIGRpc2sgdXNhZ2Ugc3RhdGlzdGljcyBhYm91dCB0aGUgZ2l2ZW4gcGF0aCBhcyBhIDp0ZXJtOmBuYW1lZCB0dXBsZWAKKyAgIHdpdGggdGhlIGF0dHJpYnV0ZXMgKnRvdGFsKiwgKnVzZWQqIGFuZCAqZnJlZSosIHdoaWNoIGFyZSB0aGUgYW1vdW50IG9mCisgICB0b3RhbCwgdXNlZCBhbmQgZnJlZSBzcGFjZSwgaW4gYnl0ZXMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisgICBBdmFpbGFiaWxpdHk6IFVuaXgsIFdpbmRvd3MuCisKKy4uIGZ1bmN0aW9uOjogY2hvd24ocGF0aCwgdXNlcj1Ob25lLCBncm91cD1Ob25lKQorCisgICBDaGFuZ2Ugb3duZXIgKnVzZXIqIGFuZC9vciAqZ3JvdXAqIG9mIHRoZSBnaXZlbiAqcGF0aCouCisKKyAgICp1c2VyKiBjYW4gYmUgYSBzeXN0ZW0gdXNlciBuYW1lIG9yIGEgdWlkOyB0aGUgc2FtZSBhcHBsaWVzIHRvICpncm91cCouIEF0CisgICBsZWFzdCBvbmUgYXJndW1lbnQgaXMgcmVxdWlyZWQuCisKKyAgIFNlZSBhbHNvIDpmdW5jOmBvcy5jaG93bmAsIHRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogd2hpY2goY21kLCBtb2RlPW9zLkZfT0sgfCBvcy5YX09LLCBwYXRoPU5vbmUpCisKKyAgIFJldHVybiB0aGUgcGF0aCB0byBhbiBleGVjdXRhYmxlIHdoaWNoIHdvdWxkIGJlIHJ1biBpZiB0aGUgZ2l2ZW4gKmNtZCogd2FzCisgICBjYWxsZWQuICBJZiBubyAqY21kKiB3b3VsZCBiZSBjYWxsZWQsIHJldHVybiBgYE5vbmVgYC4KKworICAgKm1vZGUqIGlzIGEgcGVybWlzc2lvbiBtYXNrIHBhc3NlZCBhIHRvIDpmdW5jOmBvcy5hY2Nlc3NgLCBieSBkZWZhdWx0CisgICBkZXRlcm1pbmluZyBpZiB0aGUgZmlsZSBleGlzdHMgYW5kIGV4ZWN1dGFibGUuCisKKyAgIFdoZW4gbm8gKnBhdGgqIGlzIHNwZWNpZmllZCwgdGhlIHJlc3VsdHMgb2YgOmZ1bmM6YG9zLmVudmlyb25gIGFyZSB1c2VkLAorICAgcmV0dXJuaW5nIGVpdGhlciB0aGUgIlBBVEgiIHZhbHVlIG9yIGEgZmFsbGJhY2sgb2YgOmF0dHI6YG9zLmRlZnBhdGhgLgorCisgICBPbiBXaW5kb3dzLCB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMgYWx3YXlzIHByZXBlbmRlZCB0byB0aGUgKnBhdGgqIHdoZXRoZXIKKyAgIG9yIG5vdCB5b3UgdXNlIHRoZSBkZWZhdWx0IG9yIHByb3ZpZGUgeW91ciBvd24sIHdoaWNoIGlzIHRoZSBiZWhhdmlvciB0aGUKKyAgIGNvbW1hbmQgc2hlbGwgdXNlcyB3aGVuIGZpbmRpbmcgZXhlY3V0YWJsZXMuICBBZGRpdGlvbmFseSwgd2hlbiBmaW5kaW5nIHRoZQorICAgKmNtZCogaW4gdGhlICpwYXRoKiwgdGhlIGBgUEFUSEVYVGBgIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIGNoZWNrZWQuICBGb3IKKyAgIGV4YW1wbGUsIGlmIHlvdSBjYWxsIGBgc2h1dGlsLndoaWNoKCJweXRob24iKWBgLCA6ZnVuYzpgd2hpY2hgIHdpbGwgc2VhcmNoCisgICBgYFBBVEhFWFRgYCB0byBrbm93IHRoYXQgaXQgc2hvdWxkIGxvb2sgZm9yIGBgcHl0aG9uLmV4ZWBgIHdpdGhpbiB0aGUgKnBhdGgqCisgICBkaXJlY3Rvcmllcy4gIEZvciBleGFtcGxlLCBvbiBXaW5kb3dzOjoKKworICAgICAgPj4+IHNodXRpbC53aGljaCgicHl0aG9uIikKKyAgICAgICdjOlxccHl0aG9uMzNcXHB5dGhvbi5leGUnCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiAKIC4uIGV4Y2VwdGlvbjo6IEVycm9yCkBAIC0xODYsNyArMzA2LDcgQEAKIC4uIF9zaHV0aWwtY29weXRyZWUtZXhhbXBsZToKIAogY29weXRyZWUgZXhhbXBsZQotOjo6Ojo6Ojo6Ojo6Ojo6Ogorfn5+fn5+fn5+fn5+fn5+fgogCiBUaGlzIGV4YW1wbGUgaXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSA6ZnVuYzpgY29weXRyZWVgIGZ1bmN0aW9uLCBkZXNjcmliZWQKIGFib3ZlLCB3aXRoIHRoZSBkb2NzdHJpbmcgb21pdHRlZC4gIEl0IGRlbW9uc3RyYXRlcyBtYW55IG9mIHRoZSBvdGhlciBmdW5jdGlvbnMKQEAgLTI1MCw2ICszNzAsOCBAQAogQXJjaGl2aW5nIG9wZXJhdGlvbnMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKKy4uIHZlcnNpb25hZGRlZDo6IDMuMgorCiBIaWdoLWxldmVsIHV0aWxpdGllcyB0byBjcmVhdGUgYW5kIHJlYWQgY29tcHJlc3NlZCBhbmQgYXJjaGl2ZWQgZmlsZXMgYXJlIGFsc28KIHByb3ZpZGVkLiAgVGhleSByZWx5IG9uIHRoZSA6bW9kOmB6aXBmaWxlYCBhbmQgOm1vZDpgdGFyZmlsZWAgbW9kdWxlcy4KIApAQCAtMjc3LDggKzM5OSw2IEBACiAgICAqbG9nZ2VyKiBtdXN0IGJlIGFuIG9iamVjdCBjb21wYXRpYmxlIHdpdGggOnBlcDpgMjgyYCwgdXN1YWxseSBhbiBpbnN0YW5jZSBvZgogICAgOmNsYXNzOmBsb2dnaW5nLkxvZ2dlcmAuCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgotCiAKIC4uIGZ1bmN0aW9uOjogZ2V0X2FyY2hpdmVfZm9ybWF0cygpCiAKQEAgLTI5NSw4ICs0MTUsNiBAQAogICAgWW91IGNhbiByZWdpc3RlciBuZXcgZm9ybWF0cyBvciBwcm92aWRlIHlvdXIgb3duIGFyY2hpdmVyIGZvciBhbnkgZXhpc3RpbmcKICAgIGZvcm1hdHMsIGJ5IHVzaW5nIDpmdW5jOmByZWdpc3Rlcl9hcmNoaXZlX2Zvcm1hdGAuCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgotCiAKIC4uIGZ1bmN0aW9uOjogcmVnaXN0ZXJfYXJjaGl2ZV9mb3JtYXQobmFtZSwgZnVuY3Rpb24sIFtleHRyYV9hcmdzLCBbZGVzY3JpcHRpb25dXSkKIApAQCAtMzA5LDE1ICs0MjcsMTEgQEAKICAgICpkZXNjcmlwdGlvbiogaXMgdXNlZCBieSA6ZnVuYzpgZ2V0X2FyY2hpdmVfZm9ybWF0c2Agd2hpY2ggcmV0dXJucyB0aGUKICAgIGxpc3Qgb2YgYXJjaGl2ZXJzLiBEZWZhdWx0cyB0byBhbiBlbXB0eSBsaXN0LgogCi0gICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKLQogCiAuLiBmdW5jdGlvbjo6IHVucmVnaXN0ZXJfYXJjaGl2ZV9mb3JtYXQobmFtZSkKIAogICAgUmVtb3ZlIHRoZSBhcmNoaXZlIGZvcm1hdCAqbmFtZSogZnJvbSB0aGUgbGlzdCBvZiBzdXBwb3J0ZWQgZm9ybWF0cy4KIAotICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCi0KIAogLi4gZnVuY3Rpb246OiB1bnBhY2tfYXJjaGl2ZShmaWxlbmFtZVssIGV4dHJhY3RfZGlyWywgZm9ybWF0XV0pCiAKQEAgLTMzMiw4ICs0NDYsNiBAQAogICAgYW5kIHNlZSBpZiBhbiB1bnBhY2tlciB3YXMgcmVnaXN0ZXJlZCBmb3IgdGhhdCBleHRlbnNpb24uIEluIGNhc2Ugbm9uZSBpcwogICAgZm91bmQsIGEgOmV4YzpgVmFsdWVFcnJvcmAgaXMgcmFpc2VkLgogCi0gICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKLQogCiAuLiBmdW5jdGlvbjo6IHJlZ2lzdGVyX3VucGFja19mb3JtYXQobmFtZSwgZXh0ZW5zaW9ucywgZnVuY3Rpb25bLCBleHRyYV9hcmdzWywgZGVzY3JpcHRpb25dXSkKIApAQCAtMzUxLDE1ICs0NjMsMTEgQEAKICAgICpkZXNjcmlwdGlvbiogY2FuIGJlIHByb3ZpZGVkIHRvIGRlc2NyaWJlIHRoZSBmb3JtYXQsIGFuZCB3aWxsIGJlIHJldHVybmVkCiAgICBieSB0aGUgOmZ1bmM6YGdldF91bnBhY2tfZm9ybWF0c2AgZnVuY3Rpb24uCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgotCiAKIC4uIGZ1bmN0aW9uOjogdW5yZWdpc3Rlcl91bnBhY2tfZm9ybWF0KG5hbWUpCiAKICAgIFVucmVnaXN0ZXIgYW4gdW5wYWNrIGZvcm1hdC4gKm5hbWUqIGlzIHRoZSBuYW1lIG9mIHRoZSBmb3JtYXQuCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgotCiAKIC4uIGZ1bmN0aW9uOjogZ2V0X3VucGFja19mb3JtYXRzKCkKIApAQCAtMzc3LDEzICs0ODUsMTEgQEAKICAgIFlvdSBjYW4gcmVnaXN0ZXIgbmV3IGZvcm1hdHMgb3IgcHJvdmlkZSB5b3VyIG93biB1bnBhY2tlciBmb3IgYW55IGV4aXN0aW5nCiAgICBmb3JtYXRzLCBieSB1c2luZyA6ZnVuYzpgcmVnaXN0ZXJfdW5wYWNrX2Zvcm1hdGAuCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgotCiAKIC4uIF9zaHV0aWwtYXJjaGl2aW5nLWV4YW1wbGU6CiAKIEFyY2hpdmluZyBleGFtcGxlCi06Ojo6Ojo6Ojo6Ojo6Ojo6Ogorfn5+fn5+fn5+fn5+fn5+fn4KIAogSW4gdGhpcyBleGFtcGxlLCB3ZSBjcmVhdGUgYSBnemlwJ2VkIHRhci1maWxlIGFyY2hpdmUgY29udGFpbmluZyBhbGwgZmlsZXMKIGZvdW5kIGluIHRoZSA6ZmlsZTpgLnNzaGAgZGlyZWN0b3J5IG9mIHRoZSB1c2VyOjoKQEAgLTQwNiwzICs1MTIsMzYgQEAKICAgICAtcnctLS0tLS0tIHRhcmVrL3N0YWZmICAgIDE2NzUgMjAwOC0wNi0wOSAxMzoyNjo1NCAuL2lkX3JzYQogICAgIC1ydy1yLS1yLS0gdGFyZWsvc3RhZmYgICAgIDM5NyAyMDA4LTA2LTA5IDEzOjI2OjU0IC4vaWRfcnNhLnB1YgogICAgIC1ydy1yLS1yLS0gdGFyZWsvc3RhZmYgICAzNzE5MiAyMDEwLTAyLTA2IDE4OjIzOjEwIC4va25vd25faG9zdHMKKworCitRdWVyeWluZyB0aGUgc2l6ZSBvZiB0aGUgb3V0cHV0IHRlcm1pbmFsCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMworCisuLiBmdW5jdGlvbjo6IGdldF90ZXJtaW5hbF9zaXplKGZhbGxiYWNrPShjb2x1bW5zLCBsaW5lcykpCisKKyAgIEdldCB0aGUgc2l6ZSBvZiB0aGUgdGVybWluYWwgd2luZG93LgorCisgICBGb3IgZWFjaCBvZiB0aGUgdHdvIGRpbWVuc2lvbnMsIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSwgYGBDT0xVTU5TYGAKKyAgIGFuZCBgYExJTkVTYGAgcmVzcGVjdGl2ZWx5LCBpcyBjaGVja2VkLiBJZiB0aGUgdmFyaWFibGUgaXMgZGVmaW5lZCBhbmQKKyAgIHRoZSB2YWx1ZSBpcyBhIHBvc2l0aXZlIGludGVnZXIsIGl0IGlzIHVzZWQuCisKKyAgIFdoZW4gYGBDT0xVTU5TYGAgb3IgYGBMSU5FU2BgIGlzIG5vdCBkZWZpbmVkLCB3aGljaCBpcyB0aGUgY29tbW9uIGNhc2UsCisgICB0aGUgdGVybWluYWwgY29ubmVjdGVkIHRvIDpkYXRhOmBzeXMuX19zdGRvdXRfX2AgaXMgcXVlcmllZAorICAgYnkgaW52b2tpbmcgOmZ1bmM6YG9zLmdldF90ZXJtaW5hbF9zaXplYC4KKworICAgSWYgdGhlIHRlcm1pbmFsIHNpemUgY2Fubm90IGJlIHN1Y2Nlc3NmdWxseSBxdWVyaWVkLCBlaXRoZXIgYmVjYXVzZQorICAgdGhlIHN5c3RlbSBkb2Vzbid0IHN1cHBvcnQgcXVlcnlpbmcsIG9yIGJlY2F1c2Ugd2UgYXJlIG5vdAorICAgY29ubmVjdGVkIHRvIGEgdGVybWluYWwsIHRoZSB2YWx1ZSBnaXZlbiBpbiBgYGZhbGxiYWNrYGAgcGFyYW1ldGVyCisgICBpcyB1c2VkLiBgYGZhbGxiYWNrYGAgZGVmYXVsdHMgdG8gYGAoODAsIDI0KWBgIHdoaWNoIGlzIHRoZSBkZWZhdWx0CisgICBzaXplIHVzZWQgYnkgbWFueSB0ZXJtaW5hbCBlbXVsYXRvcnMuCisKKyAgIFRoZSB2YWx1ZSByZXR1cm5lZCBpcyBhIG5hbWVkIHR1cGxlIG9mIHR5cGUgOmNsYXNzOmBvcy50ZXJtaW5hbF9zaXplYC4KKworICAgU2VlIGFsc286IFRoZSBTaW5nbGUgVU5JWCBTcGVjaWZpY2F0aW9uLCBWZXJzaW9uIDIsCisgICBgT3RoZXIgRW52aXJvbm1lbnQgVmFyaWFibGVzYF8uCisKKy4uIF9gT3RoZXIgRW52aXJvbm1lbnQgVmFyaWFibGVzYDoKKyAgIGh0dHA6Ly9wdWJzLm9wZW5ncm91cC5vcmcvb25saW5lcHVicy83OTA4Nzk5L3hiZC9lbnZ2YXIuaHRtbCN0YWdfMDAyXzAwMworCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zaWduYWwucnN0IGIvRG9jL2xpYnJhcnkvc2lnbmFsLnJzdAppbmRleCBkMWNhZTEzLi4yYTQ3MmZlIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9zaWduYWwucnN0CisrKyBiL0RvYy9saWJyYXJ5L3NpZ25hbC5yc3QKQEAgLTQ0LDYgKzQ0LDkgQEAKICAgc2lnbmFsIGhhbmRsZXJzIHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIGNhbGN1bGF0aW9uIGZpbmlzaGVzLgogCiAKKy4uIF9zaWduYWxzLWFuZC10aHJlYWRzOgorCisKIFNpZ25hbHMgYW5kIHRocmVhZHMKIF5eXl5eXl5eXl5eXl5eXl5eXl4KIApAQCAtMTMxLDYgKzEzNCwyOCBAQAogICAgaW4gdXNlciBhbmQga2VybmVsIHNwYWNlLiBTSUdQUk9GIGlzIGRlbGl2ZXJlZCB1cG9uIGV4cGlyYXRpb24uCiAKIAorLi4gZGF0YTo6IFNJR19CTE9DSworCisgICBBIHBvc3NpYmxlIHZhbHVlIGZvciB0aGUgKmhvdyogcGFyYW1ldGVyIHRvIDpmdW5jOmBwdGhyZWFkX3NpZ21hc2tgCisgICBpbmRpY2F0aW5nIHRoYXQgc2lnbmFscyBhcmUgdG8gYmUgYmxvY2tlZC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGRhdGE6OiBTSUdfVU5CTE9DSworCisgICBBIHBvc3NpYmxlIHZhbHVlIGZvciB0aGUgKmhvdyogcGFyYW1ldGVyIHRvIDpmdW5jOmBwdGhyZWFkX3NpZ21hc2tgCisgICBpbmRpY2F0aW5nIHRoYXQgc2lnbmFscyBhcmUgdG8gYmUgdW5ibG9ja2VkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworLi4gZGF0YTo6IFNJR19TRVRNQVNLCisKKyAgIEEgcG9zc2libGUgdmFsdWUgZm9yIHRoZSAqaG93KiBwYXJhbWV0ZXIgdG8gOmZ1bmM6YHB0aHJlYWRfc2lnbWFza2AKKyAgIGluZGljYXRpbmcgdGhhdCB0aGUgc2lnbmFsIG1hc2sgaXMgdG8gYmUgcmVwbGFjZWQuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIFRoZSA6bW9kOmBzaWduYWxgIG1vZHVsZSBkZWZpbmVzIG9uZSBleGNlcHRpb246CiAKIC4uIGV4Y2VwdGlvbjo6IEl0aW1lckVycm9yCkBAIC0xMzgsNyArMTYzLDExIEBACiAgICBSYWlzZWQgdG8gc2lnbmFsIGFuIGVycm9yIGZyb20gdGhlIHVuZGVybHlpbmcgOmZ1bmM6YHNldGl0aW1lcmAgb3IKICAgIDpmdW5jOmBnZXRpdGltZXJgIGltcGxlbWVudGF0aW9uLiBFeHBlY3QgdGhpcyBlcnJvciBpZiBhbiBpbnZhbGlkCiAgICBpbnRlcnZhbCB0aW1lciBvciBhIG5lZ2F0aXZlIHRpbWUgaXMgcGFzc2VkIHRvIDpmdW5jOmBzZXRpdGltZXJgLgotICAgVGhpcyBlcnJvciBpcyBhIHN1YnR5cGUgb2YgOmV4YzpgSU9FcnJvcmAuCisgICBUaGlzIGVycm9yIGlzIGEgc3VidHlwZSBvZiA6ZXhjOmBPU0Vycm9yYC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICAgICBUaGlzIGVycm9yIHVzZWQgdG8gYmUgYSBzdWJ0eXBlIG9mIDpleGM6YElPRXJyb3JgLCB3aGljaCBpcyBub3cgYW4KKyAgICAgIGFsaWFzIG9mIDpleGM6YE9TRXJyb3JgLgogCiAKIFRoZSA6bW9kOmBzaWduYWxgIG1vZHVsZSBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgpAQCAtMTcyLDYgKzIwMSw2NSBAQAogICAgd2lsbCB0aGVuIGJlIGNhbGxlZC4gIFJldHVybnMgbm90aGluZy4gIE5vdCBvbiBXaW5kb3dzLiAoU2VlIHRoZSBVbml4IG1hbiBwYWdlCiAgICA6bWFucGFnZTpgc2lnbmFsKDIpYC4pCiAKKyAgIFNlZSBhbHNvIDpmdW5jOmBzaWd3YWl0YCwgOmZ1bmM6YHNpZ3dhaXRpbmZvYCwgOmZ1bmM6YHNpZ3RpbWVkd2FpdGAgYW5kCisgICA6ZnVuYzpgc2lncGVuZGluZ2AuCisKKworLi4gZnVuY3Rpb246OiBwdGhyZWFkX2tpbGwodGhyZWFkX2lkLCBzaWdudW0pCisKKyAgIFNlbmQgdGhlIHNpZ25hbCAqc2lnbnVtKiB0byB0aGUgdGhyZWFkICp0aHJlYWRfaWQqLCBhbm90aGVyIHRocmVhZCBpbiB0aGUKKyAgIHNhbWUgcHJvY2VzcyBhcyB0aGUgY2FsbGVyLiAgVGhlIHRhcmdldCB0aHJlYWQgY2FuIGJlIGV4ZWN1dGluZyBhbnkgY29kZQorICAgKFB5dGhvbiBvciBub3QpLiAgSG93ZXZlciwgaWYgdGhlIHRhcmdldCB0aHJlYWQgaXMgZXhlY3V0aW5nIHRoZSBQeXRob24KKyAgIGludGVycHJldGVyLCB0aGUgUHl0aG9uIHNpZ25hbCBoYW5kbGVycyB3aWxsIGJlIDpyZWY6YGV4ZWN1dGVkIGJ5IHRoZSBtYWluCisgICB0aHJlYWQgPHNpZ25hbHMtYW5kLXRocmVhZHM+YC4gIFRoZXJlZm9yZSwgdGhlIG9ubHkgcG9pbnQgb2Ygc2VuZGluZyBhIHNpZ25hbCB0byBhIHBhcnRpY3VsYXIKKyAgIFB5dGhvbiB0aHJlYWQgd291bGQgYmUgdG8gZm9yY2UgYSBydW5uaW5nIHN5c3RlbSBjYWxsIHRvIGZhaWwgd2l0aAorICAgOmV4YzpgSW50ZXJydXB0ZWRFcnJvcmAuCisKKyAgIFVzZSA6ZnVuYzpgdGhyZWFkaW5nLmdldF9pZGVudCgpYCBvciB0aGUgOmF0dHI6YH50aHJlYWRpbmcuVGhyZWFkLmlkZW50YAorICAgYXR0cmlidXRlIG9mIDpjbGFzczpgdGhyZWFkaW5nLlRocmVhZGAgb2JqZWN0cyB0byBnZXQgYSBzdWl0YWJsZSB2YWx1ZQorICAgZm9yICp0aHJlYWRfaWQqLgorCisgICBJZiAqc2lnbnVtKiBpcyAwLCB0aGVuIG5vIHNpZ25hbCBpcyBzZW50LCBidXQgZXJyb3IgY2hlY2tpbmcgaXMgc3RpbGwKKyAgIHBlcmZvcm1lZDsgdGhpcyBjYW4gYmUgdXNlZCB0byBjaGVjayBpZiB0aGUgdGFyZ2V0IHRocmVhZCBpcyBzdGlsbCBydW5uaW5nLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXggKHNlZSB0aGUgbWFuIHBhZ2UgOm1hbnBhZ2U6YHB0aHJlYWRfa2lsbCgzKWAgZm9yIGZ1cnRoZXIKKyAgIGluZm9ybWF0aW9uKS4KKworICAgU2VlIGFsc28gOmZ1bmM6YG9zLmtpbGxgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBmdW5jdGlvbjo6IHB0aHJlYWRfc2lnbWFzayhob3csIG1hc2spCisKKyAgIEZldGNoIGFuZC9vciBjaGFuZ2UgdGhlIHNpZ25hbCBtYXNrIG9mIHRoZSBjYWxsaW5nIHRocmVhZC4gIFRoZSBzaWduYWwgbWFzaworICAgaXMgdGhlIHNldCBvZiBzaWduYWxzIHdob3NlIGRlbGl2ZXJ5IGlzIGN1cnJlbnRseSBibG9ja2VkIGZvciB0aGUgY2FsbGVyLgorICAgUmV0dXJuIHRoZSBvbGQgc2lnbmFsIG1hc2sgYXMgYSBzZXQgb2Ygc2lnbmFscy4KKworICAgVGhlIGJlaGF2aW9yIG9mIHRoZSBjYWxsIGlzIGRlcGVuZGVudCBvbiB0aGUgdmFsdWUgb2YgKmhvdyosIGFzIGZvbGxvd3MuCisKKyAgICogOmRhdGE6YFNJR19CTE9DS2A6IFRoZSBzZXQgb2YgYmxvY2tlZCBzaWduYWxzIGlzIHRoZSB1bmlvbiBvZiB0aGUgY3VycmVudAorICAgICBzZXQgYW5kIHRoZSAqbWFzayogYXJndW1lbnQuCisgICAqIDpkYXRhOmBTSUdfVU5CTE9DS2A6IFRoZSBzaWduYWxzIGluICptYXNrKiBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBjdXJyZW50CisgICAgIHNldCBvZiBibG9ja2VkIHNpZ25hbHMuICBJdCBpcyBwZXJtaXNzaWJsZSB0byBhdHRlbXB0IHRvIHVuYmxvY2sgYQorICAgICBzaWduYWwgd2hpY2ggaXMgbm90IGJsb2NrZWQuCisgICAqIDpkYXRhOmBTSUdfU0VUTUFTS2A6IFRoZSBzZXQgb2YgYmxvY2tlZCBzaWduYWxzIGlzIHNldCB0byB0aGUgKm1hc2sqCisgICAgIGFyZ3VtZW50LgorCisgICAqbWFzayogaXMgYSBzZXQgb2Ygc2lnbmFsIG51bWJlcnMgKGUuZy4gezpjb25zdDpgc2lnbmFsLlNJR0lOVGAsCisgICA6Y29uc3Q6YHNpZ25hbC5TSUdURVJNYH0pLiBVc2UgYGByYW5nZSgxLCBzaWduYWwuTlNJRylgYCBmb3IgYSBmdWxsIG1hc2sKKyAgIGluY2x1ZGluZyBhbGwgc2lnbmFscy4KKworICAgRm9yIGV4YW1wbGUsIGBgc2lnbmFsLnB0aHJlYWRfc2lnbWFzayhzaWduYWwuU0lHX0JMT0NLLCBbXSlgYCByZWFkcyB0aGUKKyAgIHNpZ25hbCBtYXNrIG9mIHRoZSBjYWxsaW5nIHRocmVhZC4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LiBTZWUgdGhlIG1hbiBwYWdlIDptYW5wYWdlOmBzaWdwcm9jbWFzaygzKWAgYW5kCisgICA6bWFucGFnZTpgcHRocmVhZF9zaWdtYXNrKDMpYCBmb3IgZnVydGhlciBpbmZvcm1hdGlvbi4KKworICAgU2VlIGFsc28gOmZ1bmM6YHBhdXNlYCwgOmZ1bmM6YHNpZ3BlbmRpbmdgIGFuZCA6ZnVuYzpgc2lnd2FpdGAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAKIC4uIGZ1bmN0aW9uOjogc2V0aXRpbWVyKHdoaWNoLCBzZWNvbmRzWywgaW50ZXJ2YWxdKQogCkBAIC0yMDEsMTMgKzI4OSwxNyBAQAogCiAuLiBmdW5jdGlvbjo6IHNldF93YWtldXBfZmQoZmQpCiAKLSAgIFNldCB0aGUgd2FrZXVwIGZkIHRvICpmZCouICBXaGVuIGEgc2lnbmFsIGlzIHJlY2VpdmVkLCBhIGBgJ1wwJ2BgIGJ5dGUgaXMKLSAgIHdyaXR0ZW4gdG8gdGhlIGZkLiAgVGhpcyBjYW4gYmUgdXNlZCBieSBhIGxpYnJhcnkgdG8gd2FrZXVwIGEgcG9sbCBvciBzZWxlY3QKLSAgIGNhbGwsIGFsbG93aW5nIHRoZSBzaWduYWwgdG8gYmUgZnVsbHkgcHJvY2Vzc2VkLgorICAgU2V0IHRoZSB3YWtldXAgZmlsZSBkZXNjcmlwdG9yIHRvICpmZCouICBXaGVuIGEgc2lnbmFsIGlzIHJlY2VpdmVkLCB0aGUKKyAgIHNpZ25hbCBudW1iZXIgaXMgd3JpdHRlbiBhcyBhIHNpbmdsZSBieXRlIGludG8gdGhlIGZkLiAgVGhpcyBjYW4gYmUgdXNlZCBieQorICAgYSBsaWJyYXJ5IHRvIHdha2V1cCBhIHBvbGwgb3Igc2VsZWN0IGNhbGwsIGFsbG93aW5nIHRoZSBzaWduYWwgdG8gYmUgZnVsbHkKKyAgIHByb2Nlc3NlZC4KIAogICAgVGhlIG9sZCB3YWtldXAgZmQgaXMgcmV0dXJuZWQuICAqZmQqIG11c3QgYmUgbm9uLWJsb2NraW5nLiAgSXQgaXMgdXAgdG8gdGhlCiAgICBsaWJyYXJ5IHRvIHJlbW92ZSBhbnkgYnl0ZXMgYmVmb3JlIGNhbGxpbmcgcG9sbCBvciBzZWxlY3QgYWdhaW4uCiAKKyAgIFVzZSBmb3IgZXhhbXBsZSBgYHN0cnVjdC51bnBhY2soJyV1QicgJSBsZW4oZGF0YSksIGRhdGEpYGAgdG8gZGVjb2RlIHRoZQorICAgc2lnbmFsIG51bWJlcnMgbGlzdC4KKwogICAgV2hlbiB0aHJlYWRzIGFyZSBlbmFibGVkLCB0aGlzIGZ1bmN0aW9uIGNhbiBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZDsKICAgIGF0dGVtcHRpbmcgdG8gY2FsbCBpdCBmcm9tIG90aGVyIHRocmVhZHMgd2lsbCBjYXVzZSBhIDpleGM6YFZhbHVlRXJyb3JgCiAgICBleGNlcHRpb24gdG8gYmUgcmFpc2VkLgpAQCAtMjQ3LDYgKzMzOSw3MyBAQAogICAgOmNvbnN0OmBTSUdURVJNYC4gQSA6ZXhjOmBWYWx1ZUVycm9yYCB3aWxsIGJlIHJhaXNlZCBpbiBhbnkgb3RoZXIgY2FzZS4KIAogCisuLiBmdW5jdGlvbjo6IHNpZ3BlbmRpbmcoKQorCisgICBFeGFtaW5lIHRoZSBzZXQgb2Ygc2lnbmFscyB0aGF0IGFyZSBwZW5kaW5nIGZvciBkZWxpdmVyeSB0byB0aGUgY2FsbGluZworICAgdGhyZWFkIChpLmUuLCB0aGUgc2lnbmFscyB3aGljaCBoYXZlIGJlZW4gcmFpc2VkIHdoaWxlIGJsb2NrZWQpLiAgUmV0dXJuIHRoZQorICAgc2V0IG9mIHRoZSBwZW5kaW5nIHNpZ25hbHMuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peCAoc2VlIHRoZSBtYW4gcGFnZSA6bWFucGFnZTpgc2lncGVuZGluZygyKWAgZm9yIGZ1cnRoZXIKKyAgIGluZm9ybWF0aW9uKS4KKworICAgU2VlIGFsc28gOmZ1bmM6YHBhdXNlYCwgOmZ1bmM6YHB0aHJlYWRfc2lnbWFza2AgYW5kIDpmdW5jOmBzaWd3YWl0YC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZnVuY3Rpb246OiBzaWd3YWl0KHNpZ3NldCkKKworICAgU3VzcGVuZCBleGVjdXRpb24gb2YgdGhlIGNhbGxpbmcgdGhyZWFkIHVudGlsIHRoZSBkZWxpdmVyeSBvZiBvbmUgb2YgdGhlCisgICBzaWduYWxzIHNwZWNpZmllZCBpbiB0aGUgc2lnbmFsIHNldCAqc2lnc2V0Ki4gIFRoZSBmdW5jdGlvbiBhY2NlcHRzIHRoZSBzaWduYWwKKyAgIChyZW1vdmVzIGl0IGZyb20gdGhlIHBlbmRpbmcgbGlzdCBvZiBzaWduYWxzKSwgYW5kIHJldHVybnMgdGhlIHNpZ25hbCBudW1iZXIuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peCAoc2VlIHRoZSBtYW4gcGFnZSA6bWFucGFnZTpgc2lnd2FpdCgzKWAgZm9yIGZ1cnRoZXIKKyAgIGluZm9ybWF0aW9uKS4KKworICAgU2VlIGFsc28gOmZ1bmM6YHBhdXNlYCwgOmZ1bmM6YHB0aHJlYWRfc2lnbWFza2AsIDpmdW5jOmBzaWdwZW5kaW5nYCwKKyAgIDpmdW5jOmBzaWd3YWl0aW5mb2AgYW5kIDpmdW5jOmBzaWd0aW1lZHdhaXRgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBmdW5jdGlvbjo6IHNpZ3dhaXRpbmZvKHNpZ3NldCkKKworICAgU3VzcGVuZCBleGVjdXRpb24gb2YgdGhlIGNhbGxpbmcgdGhyZWFkIHVudGlsIHRoZSBkZWxpdmVyeSBvZiBvbmUgb2YgdGhlCisgICBzaWduYWxzIHNwZWNpZmllZCBpbiB0aGUgc2lnbmFsIHNldCAqc2lnc2V0Ki4gIFRoZSBmdW5jdGlvbiBhY2NlcHRzIHRoZQorICAgc2lnbmFsIGFuZCByZW1vdmVzIGl0IGZyb20gdGhlIHBlbmRpbmcgbGlzdCBvZiBzaWduYWxzLiBJZiBvbmUgb2YgdGhlCisgICBzaWduYWxzIGluICpzaWdzZXQqIGlzIGFscmVhZHkgcGVuZGluZyBmb3IgdGhlIGNhbGxpbmcgdGhyZWFkLCB0aGUgZnVuY3Rpb24KKyAgIHdpbGwgcmV0dXJuIGltbWVkaWF0ZWx5IHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhhdCBzaWduYWwuIFRoZSBzaWduYWwKKyAgIGhhbmRsZXIgaXMgbm90IGNhbGxlZCBmb3IgdGhlIGRlbGl2ZXJlZCBzaWduYWwuIFRoZSBmdW5jdGlvbiByYWlzZXMgYW4KKyAgIDpleGM6YEludGVycnVwdGVkRXJyb3JgIGlmIGl0IGlzIGludGVycnVwdGVkIGJ5IGEgc2lnbmFsIHRoYXQgaXMgbm90IGluCisgICAqc2lnc2V0Ki4KKworICAgVGhlIHJldHVybiB2YWx1ZSBpcyBhbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBkYXRhIGNvbnRhaW5lZCBpbiB0aGUKKyAgIDpjOnR5cGU6YHNpZ2luZm9fdGAgc3RydWN0dXJlLCBuYW1lbHk6IDphdHRyOmBzaV9zaWdub2AsIDphdHRyOmBzaV9jb2RlYCwKKyAgIDphdHRyOmBzaV9lcnJub2AsIDphdHRyOmBzaV9waWRgLCA6YXR0cjpgc2lfdWlkYCwgOmF0dHI6YHNpX3N0YXR1c2AsCisgICA6YXR0cjpgc2lfYmFuZGAuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peCAoc2VlIHRoZSBtYW4gcGFnZSA6bWFucGFnZTpgc2lnd2FpdGluZm8oMilgIGZvciBmdXJ0aGVyCisgICBpbmZvcm1hdGlvbikuCisKKyAgIFNlZSBhbHNvIDpmdW5jOmBwYXVzZWAsIDpmdW5jOmBzaWd3YWl0YCBhbmQgOmZ1bmM6YHNpZ3RpbWVkd2FpdGAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogc2lndGltZWR3YWl0KHNpZ3NldCwgdGltZW91dCkKKworICAgTGlrZSA6ZnVuYzpgc2lnd2FpdGluZm9gLCBidXQgdGFrZXMgYW4gYWRkaXRpb25hbCAqdGltZW91dCogYXJndW1lbnQKKyAgIHNwZWNpZnlpbmcgYSB0aW1lb3V0LiBJZiAqdGltZW91dCogaXMgc3BlY2lmaWVkIGFzIDpjb25zdDpgMGAsIGEgcG9sbCBpcworICAgcGVyZm9ybWVkLiBSZXR1cm5zIDpjb25zdDpgTm9uZWAgaWYgYSB0aW1lb3V0IG9jY3Vycy4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4IChzZWUgdGhlIG1hbiBwYWdlIDptYW5wYWdlOmBzaWd0aW1lZHdhaXQoMilgIGZvciBmdXJ0aGVyCisgICBpbmZvcm1hdGlvbikuCisKKyAgIFNlZSBhbHNvIDpmdW5jOmBwYXVzZWAsIDpmdW5jOmBzaWd3YWl0YCBhbmQgOmZ1bmM6YHNpZ3dhaXRpbmZvYC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gX3NpZ25hbC1leGFtcGxlOgogCiBFeGFtcGxlCkBAIC0yNjMsNyArNDIyLDcgQEAKIAogICAgZGVmIGhhbmRsZXIoc2lnbnVtLCBmcmFtZSk6CiAgICAgICAgcHJpbnQoJ1NpZ25hbCBoYW5kbGVyIGNhbGxlZCB3aXRoIHNpZ25hbCcsIHNpZ251bSkKLSAgICAgICByYWlzZSBJT0Vycm9yKCJDb3VsZG4ndCBvcGVuIGRldmljZSEiKQorICAgICAgIHJhaXNlIE9TRXJyb3IoIkNvdWxkbid0IG9wZW4gZGV2aWNlISIpCiAKICAgICMgU2V0IHRoZSBzaWduYWwgaGFuZGxlciBhbmQgYSA1LXNlY29uZCBhbGFybQogICAgc2lnbmFsLnNpZ25hbChzaWduYWwuU0lHQUxSTSwgaGFuZGxlcikKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3NpdGUucnN0IGIvRG9jL2xpYnJhcnkvc2l0ZS5yc3QKaW5kZXggZGI5NmFkZC4uM2JmOGE5OSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc2l0ZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc2l0ZS5yc3QKQEAgLTE2LDcgKzE2LDE0IEBACiAuLiBpbmRleDo6IHRyaXBsZTogbW9kdWxlOyBzZWFyY2g7IHBhdGgKIAogSW1wb3J0aW5nIHRoaXMgbW9kdWxlIHdpbGwgYXBwZW5kIHNpdGUtc3BlY2lmaWMgcGF0aHMgdG8gdGhlIG1vZHVsZSBzZWFyY2ggcGF0aAotYW5kIGFkZCBhIGZldyBidWlsdGlucy4KK2FuZCBhZGQgYSBmZXcgYnVpbHRpbnMsIHVubGVzcyA6b3B0aW9uOmAtU2Agd2FzIHVzZWQuICBJbiB0aGF0IGNhc2UsIHRoaXMgbW9kdWxlCitjYW4gYmUgc2FmZWx5IGltcG9ydGVkIHdpdGggbm8gYXV0b21hdGljIG1vZGlmaWNhdGlvbnMgdG8gdGhlIG1vZHVsZSBzZWFyY2ggcGF0aAorb3IgYWRkaXRpb25zIHRvIHRoZSBidWlsdGlucy4gIFRvIGV4cGxpY2l0bHkgdHJpZ2dlciB0aGUgdXN1YWwgc2l0ZS1zcGVjaWZpYworYWRkaXRpb25zLCBjYWxsIHRoZSA6ZnVuYzpgc2l0ZS5tYWluYCBmdW5jdGlvbi4KKworLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgIEltcG9ydGluZyB0aGUgbW9kdWxlIHVzZWQgdG8gdHJpZ2dlciBwYXRocyBtYW5pcHVsYXRpb24gZXZlbiB3aGVuIHVzaW5nCisgICA6b3B0aW9uOmAtU2AuCiAKIC4uIGluZGV4OjoKICAgIHBhaXI6IHNpdGUtcHl0aG9uOyBkaXJlY3RvcnkKQEAgLTMxLDYgKzM4LDE1IEBACiBpZiBpdCByZWZlcnMgdG8gYW4gZXhpc3RpbmcgZGlyZWN0b3J5LCBhbmQgaWYgc28sIGFkZHMgaXQgdG8gYGBzeXMucGF0aGBgIGFuZAogYWxzbyBpbnNwZWN0cyB0aGUgbmV3bHkgYWRkZWQgcGF0aCBmb3IgY29uZmlndXJhdGlvbiBmaWxlcy4KIAorSWYgYSBmaWxlIG5hbWVkICJweXZlbnYuY2ZnIiBleGlzdHMgb25lIGRpcmVjdG9yeSBhYm92ZSBzeXMuZXhlY3V0YWJsZSwKK3N5cy5wcmVmaXggYW5kIHN5cy5leGVjX3ByZWZpeCBhcmUgc2V0IHRvIHRoYXQgZGlyZWN0b3J5IGFuZAoraXQgaXMgYWxzbyBjaGVja2VkIGZvciBzaXRlLXBhY2thZ2VzIGFuZCBzaXRlLXB5dGhvbiAoc3lzLmJhc2VfcHJlZml4IGFuZAorc3lzLmJhc2VfZXhlY19wcmVmaXggd2lsbCBhbHdheXMgYmUgdGhlICJyZWFsIiBwcmVmaXhlcyBvZiB0aGUgUHl0aG9uCitpbnN0YWxsYXRpb24pLiBJZiAicHl2ZW52LmNmZyIgKGEgYm9vdHN0cmFwIGNvbmZpZ3VyYXRpb24gZmlsZSkgY29udGFpbnMKK3RoZSBrZXkgImluY2x1ZGUtc3lzdGVtLXNpdGUtcGFja2FnZXMiIHNldCB0byBhbnl0aGluZyBvdGhlciB0aGFuICJmYWxzZSIKKyhjYXNlLWluc2Vuc2l0aXZlKSwgdGhlIHN5c3RlbS1sZXZlbCBwcmVmaXhlcyB3aWxsIHN0aWxsIGFsc28gYmUKK3NlYXJjaGVkIGZvciBzaXRlLXBhY2thZ2VzOyBvdGhlcndpc2UgdGhleSB3b24ndC4KKwogQSBwYXRoIGNvbmZpZ3VyYXRpb24gZmlsZSBpcyBhIGZpbGUgd2hvc2UgbmFtZSBoYXMgdGhlIGZvcm0gOmZpbGU6YHtuYW1lfS5wdGhgCiBhbmQgZXhpc3RzIGluIG9uZSBvZiB0aGUgZm91ciBkaXJlY3RvcmllcyBtZW50aW9uZWQgYWJvdmU7IGl0cyBjb250ZW50cyBhcmUKIGFkZGl0aW9uYWwgaXRlbXMgKG9uZSBwZXIgbGluZSkgdG8gYmUgYWRkZWQgdG8gYGBzeXMucGF0aGBgLiAgTm9uLWV4aXN0aW5nIGl0ZW1zCkBAIC0xMjksOCArMTQ1LDE5IEBACiAgICA6ZmlsZTpgfi9MaWJyYXJ5L1B5dGhvbi97WC5ZfWAgZm9yIE1hYyBmcmFtZXdvcmsgYnVpbGRzLCBhbmQKICAgIDpmaWxlOmB7JUFQUERBVEElfVxcUHl0aG9uYCBmb3IgV2luZG93cy4gIFRoaXMgdmFsdWUgaXMgdXNlZCBieSBEaXN0dXRpbHMgdG8KICAgIGNvbXB1dGUgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcmllcyBmb3Igc2NyaXB0cywgZGF0YSBmaWxlcywgUHl0aG9uIG1vZHVsZXMsCi0gICBldGMuIGZvciB0aGUgOnJlZjpgdXNlciBpbnN0YWxsYXRpb24gc2NoZW1lIDxpbnN0LWFsdC1pbnN0YWxsLXVzZXI+YC4gIFNlZQotICAgYWxzbyA6ZW52dmFyOmBQWVRIT05VU0VSQkFTRWAuCisgICBldGMuIGZvciB0aGUgOnJlZjpgdXNlciBpbnN0YWxsYXRpb24gc2NoZW1lIDxpbnN0LWFsdC1pbnN0YWxsLXVzZXI+YC4KKyAgIFNlZSBhbHNvIDplbnZ2YXI6YFBZVEhPTlVTRVJCQVNFYC4KKworCisuLiBmdW5jdGlvbjo6IG1haW4oKQorCisgICBBZGRzIGFsbCB0aGUgc3RhbmRhcmQgc2l0ZS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUgbW9kdWxlIHNlYXJjaAorICAgcGF0aC4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGlzIG1vZHVsZSBpcyBpbXBvcnRlZCwKKyAgIHVubGVzcyB0aGUgOnByb2dyYW06YHB5dGhvbmAgaW50ZXJwcmV0ZXIgd2FzIHN0YXJ0ZWQgd2l0aCB0aGUgOm9wdGlvbjpgLVNgCisgICBmbGFnLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGJlIGNhbGxlZCB1bmNvbmRpdGlvbm5hbGx5LgogCiAKIC4uIGZ1bmN0aW9uOjogYWRkc2l0ZWRpcihzaXRlZGlyLCBrbm93bl9wYXRocz1Ob25lKQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc210cGQucnN0IGIvRG9jL2xpYnJhcnkvc210cGQucnN0CmluZGV4IGMzOTFmNzEuLjgyZjQ3NjMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3NtdHBkLnJzdAorKysgYi9Eb2MvbGlicmFyeS9zbXRwZC5yc3QKQEAgLTIwLDE3ICsyMCwyNCBAQAogQWRkaXRpb25hbGx5IHRoZSBTTVRQQ2hhbm5lbCBtYXkgYmUgZXh0ZW5kZWQgdG8gaW1wbGVtZW50IHZlcnkgc3BlY2lmaWMKIGludGVyYWN0aW9uIGJlaGF2aW91ciB3aXRoIFNNVFAgY2xpZW50cy4KIAorVGhlIGNvZGUgc3VwcG9ydHMgOlJGQzpgNTMyMWAsIHBsdXMgdGhlIDpyZmM6YDE4NzBgIFNJWkUgZXh0ZW5zaW9uLgorCisKIFNNVFBTZXJ2ZXIgT2JqZWN0cwogLS0tLS0tLS0tLS0tLS0tLS0tCiAKIAotLi4gY2xhc3M6OiBTTVRQU2VydmVyKGxvY2FsYWRkciwgcmVtb3RlYWRkcikKKy4uIGNsYXNzOjogU01UUFNlcnZlcihsb2NhbGFkZHIsIHJlbW90ZWFkZHIsIGRhdGFfc2l6ZV9saW1pdD0zMzU1NDQzMikKIAogICAgQ3JlYXRlIGEgbmV3IDpjbGFzczpgU01UUFNlcnZlcmAgb2JqZWN0LCB3aGljaCBiaW5kcyB0byBsb2NhbCBhZGRyZXNzCiAgICAqbG9jYWxhZGRyKi4gIEl0IHdpbGwgdHJlYXQgKnJlbW90ZWFkZHIqIGFzIGFuIHVwc3RyZWFtIFNNVFAgcmVsYXllci4gIEl0CiAgICBpbmhlcml0cyBmcm9tIDpjbGFzczpgYXN5bmNvcmUuZGlzcGF0Y2hlcmAsIGFuZCBzbyB3aWxsIGluc2VydCBpdHNlbGYgaW50bwogICAgOm1vZDpgYXN5bmNvcmVgJ3MgZXZlbnQgbG9vcCBvbiBpbnN0YW50aWF0aW9uLgogCisgICAqZGF0YV9zaXplX2xpbWl0KiBzcGVjaWZpZXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2lsbCBiZQorICAgYWNjZXB0ZWQgaW4gYSBgYERBVEFgYCBjb21tYW5kLiAgQSB2YWx1ZSBvZiBgYE5vbmVgYCBvciBgYDBgYCBtZWFucyBubworICAgbGltaXQuCisKICAgIC4uIG1ldGhvZDo6IHByb2Nlc3NfbWVzc2FnZShwZWVyLCBtYWlsZnJvbSwgcmNwdHRvcywgZGF0YSkKIAogICAgICAgUmFpc2UgOmV4YzpgTm90SW1wbGVtZW50ZWRFcnJvcmAgZXhjZXB0aW9uLiBPdmVycmlkZSB0aGlzIGluIHN1YmNsYXNzZXMgdG8KQEAgLTE1NSwxMSArMTYyLDE1IEBACiAgICBDb21tYW5kICBBY3Rpb24gdGFrZW4KICAgID09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIEhFTE8gICAgIEFjY2VwdHMgdGhlIGdyZWV0aW5nIGZyb20gdGhlIGNsaWVudCBhbmQgc3RvcmVzIGl0IGluCi0gICAgICAgICAgICA6YXR0cjpgc2Vlbl9ncmVldGluZ2AuCisgICAgICAgICAgICA6YXR0cjpgc2Vlbl9ncmVldGluZ2AuICBTZXRzIHNlcnZlciB0byBiYXNlIGNvbW1hbmQgbW9kZS4KKyAgIEVITE8gICAgIEFjY2VwdHMgdGhlIGdyZWV0aW5nIGZyb20gdGhlIGNsaWVudCBhbmQgc3RvcmVzIGl0IGluCisgICAgICAgICAgICA6YXR0cjpgc2Vlbl9ncmVldGluZ2AuICBTZXRzIHNlcnZlciB0byBleHRlbmRlZCBjb21tYW5kIG1vZGUuCiAgICBOT09QICAgICBUYWtlcyBubyBhY3Rpb24uCiAgICBRVUlUICAgICBDbG9zZXMgdGhlIGNvbm5lY3Rpb24gY2xlYW5seS4KICAgIE1BSUwgICAgIEFjY2VwdHMgdGhlICJNQUlMIEZST006IiBzeW50YXggYW5kIHN0b3JlcyB0aGUgc3VwcGxpZWQgYWRkcmVzcyBhcwotICAgICAgICAgICAgOmF0dHI6YG1haWxmcm9tYC4KKyAgICAgICAgICAgIDphdHRyOmBtYWlsZnJvbWAuICBJbiBleHRlbmRlZCBjb21tYW5kIG1vZGUsIGFjY2VwdHMgdGhlCisgICAgICAgICAgICA6cmZjOmAxODcwYCBTSVpFIGF0dHJpYnV0ZSBhbmQgcmVzcG9uZHMgYXBwcm9wcmlhdGVseSBiYXNlZCBvbiB0aGUKKyAgICAgICAgICAgIHZhbHVlIG9mIGBgZGF0YV9zaXplX2xpbWl0YGAuCiAgICBSQ1BUICAgICBBY2NlcHRzIHRoZSAiUkNQVCBUTzoiIHN5bnRheCBhbmQgc3RvcmVzIHRoZSBzdXBwbGllZCBhZGRyZXNzZXMgaW4KICAgICAgICAgICAgIHRoZSA6YXR0cjpgcmNwdHRvc2AgbGlzdC4KICAgIFJTRVQgICAgIFJlc2V0cyB0aGUgOmF0dHI6YG1haWxmcm9tYCwgOmF0dHI6YHJjcHR0b3NgLCBhbmQKQEAgLTE2Nyw0ICsxNzgsNyBAQAogICAgREFUQSAgICAgU2V0cyB0aGUgaW50ZXJuYWwgc3RhdGUgdG8gOmF0dHI6YERBVEFgIGFuZCBzdG9yZXMgcmVtYWluaW5nIGxpbmVzCiAgICAgICAgICAgICBmcm9tIHRoZSBjbGllbnQgaW4gOmF0dHI6YHJlY2VpdmVkX2RhdGFgIHVudGlsIHRoZSB0ZXJtaW5hdG9yCiAgICAgICAgICAgICAiXHJcbi5cclxuIiBpcyByZWNlaXZlZC4KKyAgIEhFTFAgICAgIFJldHVybnMgbWluaW1hbCBpbmZvcm1hdGlvbiBvbiBjb21tYW5kIHN5bnRheAorICAgVlJGWSAgICAgUmV0dXJucyBjb2RlIDI1MiAodGhlIHNlcnZlciBkb2Vzbid0IGtub3cgaWYgdGhlIGFkZHJlc3MgaXMgdmFsaWQpCisgICBFWFBOICAgICBSZXBvcnRzIHRoYXQgdGhlIGNvbW1hbmQgaXMgbm90IGltcGxlbWVudGVkLgogICAgPT09PT09PT0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc210cGxpYi5yc3QgYi9Eb2MvbGlicmFyeS9zbXRwbGliLnJzdAppbmRleCAzMTAxYWI3Li43MTE5ODFmIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9zbXRwbGliLnJzdAorKysgYi9Eb2MvbGlicmFyeS9zbXRwbGliLnJzdApAQCAtMjAsNyArMjAsNyBAQAogUHJvdG9jb2wpIGFuZCA6cmZjOmAxODY5YCAoU01UUCBTZXJ2aWNlIEV4dGVuc2lvbnMpLgogCiAKLS4uIGNsYXNzOjogU01UUChob3N0PScnLCBwb3J0PTAsIGxvY2FsX2hvc3RuYW1lPU5vbmVbLCB0aW1lb3V0XSkKKy4uIGNsYXNzOjogU01UUChob3N0PScnLCBwb3J0PTAsIGxvY2FsX2hvc3RuYW1lPU5vbmVbLCB0aW1lb3V0XSwgc291cmNlX2FkZHJlc3M9Tm9uZSkKIAogICAgQSA6Y2xhc3M6YFNNVFBgIGluc3RhbmNlIGVuY2Fwc3VsYXRlcyBhbiBTTVRQIGNvbm5lY3Rpb24uICBJdCBoYXMgbWV0aG9kcwogICAgdGhhdCBzdXBwb3J0IGEgZnVsbCByZXBlcnRvaXJlIG9mIFNNVFAgYW5kIEVTTVRQIG9wZXJhdGlvbnMuIElmIHRoZSBvcHRpb25hbApAQCAtMjksMTMgKzI5LDM0IEBACiAgICByYWlzZWQgaWYgdGhlIHNwZWNpZmllZCBob3N0IGRvZXNuJ3QgcmVzcG9uZCBjb3JyZWN0bHkuIFRoZSBvcHRpb25hbAogICAgKnRpbWVvdXQqIHBhcmFtZXRlciBzcGVjaWZpZXMgYSB0aW1lb3V0IGluIHNlY29uZHMgZm9yIGJsb2NraW5nIG9wZXJhdGlvbnMKICAgIGxpa2UgdGhlIGNvbm5lY3Rpb24gYXR0ZW1wdCAoaWYgbm90IHNwZWNpZmllZCwgdGhlIGdsb2JhbCBkZWZhdWx0IHRpbWVvdXQKLSAgIHNldHRpbmcgd2lsbCBiZSB1c2VkKS4KKyAgIHNldHRpbmcgd2lsbCBiZSB1c2VkKS4gVGhlIG9wdGlvbmFsIHNvdXJjZV9hZGRyZXNzIHBhcmFtZXRlciBhbGxvd3MgdG8gYmluZCB0byBzb21lCisgICBzcGVjaWZpYyBzb3VyY2UgYWRkcmVzcyBpbiBhIG1hY2hpbmUgd2l0aCBtdWx0aXBsZSBuZXR3b3JrIGludGVyZmFjZXMsCisgICBhbmQvb3IgdG8gc29tZSBzcGVjaWZpYyBzb3VyY2UgVENQIHBvcnQuIEl0IHRha2VzIGEgMi10dXBsZSAoaG9zdCwgcG9ydCksCisgICBmb3IgdGhlIHNvY2tldCB0byBiaW5kIHRvIGFzIGl0cyBzb3VyY2UgYWRkcmVzcyBiZWZvcmUgY29ubmVjdGluZy4gSWYKKyAgIG9taXR0ZWQgKG9yIGlmIGhvc3Qgb3IgcG9ydCBhcmUgYGAnJ2BgIGFuZC9vciAwIHJlc3BlY3RpdmVseSkgdGhlIE9TIGRlZmF1bHQKKyAgIGJlaGF2aW9yIHdpbGwgYmUgdXNlZC4KIAogICAgRm9yIG5vcm1hbCB1c2UsIHlvdSBzaG91bGQgb25seSByZXF1aXJlIHRoZSBpbml0aWFsaXphdGlvbi9jb25uZWN0LAogICAgOm1ldGg6YHNlbmRtYWlsYCwgYW5kIDptZXRoOmBxdWl0YCBtZXRob2RzLiAgQW4gZXhhbXBsZSBpcyBpbmNsdWRlZCBiZWxvdy4KIAorICAgVGhlIDpjbGFzczpgU01UUGAgY2xhc3Mgc3VwcG9ydHMgdGhlIDprZXl3b3JkOmB3aXRoYCBzdGF0ZW1lbnQuICBXaGVuIHVzZWQKKyAgIGxpa2UgdGhpcywgdGhlIFNNVFAgYGBRVUlUYGAgY29tbWFuZCBpcyBpc3N1ZWQgYXV0b21hdGljYWxseSB3aGVuIHRoZQorICAgOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudCBleGl0cy4gIEUuZy46OgogCi0uLiBjbGFzczo6IFNNVFBfU1NMKGhvc3Q9JycsIHBvcnQ9MCwgbG9jYWxfaG9zdG5hbWU9Tm9uZSwga2V5ZmlsZT1Ob25lLCBjZXJ0ZmlsZT1Ob25lWywgdGltZW91dF0pCisgICAgPj4+IGZyb20gc210cGxpYiBpbXBvcnQgU01UUAorICAgID4+PiB3aXRoIFNNVFAoImRvbWFpbi5vcmciKSBhcyBzbXRwOgorICAgIC4uLiAgICAgc210cC5ub29wKCkKKyAgICAuLi4KKyAgICAoMjUwLCBiJ09rJykKKyAgICA+Pj4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFN1cHBvcnQgZm9yIHRoZSA6a2V5d29yZDpgd2l0aGAgc3RhdGVtZW50IHdhcyBhZGRlZC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIHNvdXJjZV9hZGRyZXNzIGFyZ3VtZW50IHdhcyBhZGRlZC4KKworLi4gY2xhc3M6OiBTTVRQX1NTTChob3N0PScnLCBwb3J0PTAsIGxvY2FsX2hvc3RuYW1lPU5vbmUsIGtleWZpbGU9Tm9uZSwgY2VydGZpbGU9Tm9uZVssIHRpbWVvdXRdLCBjb250ZXh0PU5vbmUsIHNvdXJjZV9hZGRyZXNzPU5vbmUpCiAKICAgIEEgOmNsYXNzOmBTTVRQX1NTTGAgaW5zdGFuY2UgYmVoYXZlcyBleGFjdGx5IHRoZSBzYW1lIGFzIGluc3RhbmNlcyBvZgogICAgOmNsYXNzOmBTTVRQYC4gOmNsYXNzOmBTTVRQX1NTTGAgc2hvdWxkIGJlIHVzZWQgZm9yIHNpdHVhdGlvbnMgd2hlcmUgU1NMIGlzCkBAIC00MywxOCArNjQsMzMgQEAKICAgIG5vdCBhcHByb3ByaWF0ZS4gSWYgKmhvc3QqIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBsb2NhbCBob3N0IGlzIHVzZWQuIElmCiAgICAqcG9ydCogaXMgemVybywgdGhlIHN0YW5kYXJkIFNNVFAtb3Zlci1TU0wgcG9ydCAoNDY1KSBpcyB1c2VkLiAqa2V5ZmlsZSoKICAgIGFuZCAqY2VydGZpbGUqIGFyZSBhbHNvIG9wdGlvbmFsLCBhbmQgY2FuIGNvbnRhaW4gYSBQRU0gZm9ybWF0dGVkIHByaXZhdGUga2V5Ci0gICBhbmQgY2VydGlmaWNhdGUgY2hhaW4gZmlsZSBmb3IgdGhlIFNTTCBjb25uZWN0aW9uLiBUaGUgb3B0aW9uYWwgKnRpbWVvdXQqCisgICBhbmQgY2VydGlmaWNhdGUgY2hhaW4gZmlsZSBmb3IgdGhlIFNTTCBjb25uZWN0aW9uLiAqY29udGV4dCogYWxzbyBvcHRpb25hbCwgY2FuIGNvbnRhaW4KKyAgIGEgU1NMQ29udGV4dCwgYW5kIGlzIGFuIGFsdGVybmF0aXZlIHRvIGtleWZpbGUgYW5kIGNlcnRmaWxlOyBJZiBpdCBpcyBzcGVjaWZpZWQgYm90aAorICAga2V5ZmlsZSBhbmQgY2VydGZpbGUgbXVzdCBiZSBOb25lLiAgVGhlIG9wdGlvbmFsICp0aW1lb3V0KgogICAgcGFyYW1ldGVyIHNwZWNpZmllcyBhIHRpbWVvdXQgaW4gc2Vjb25kcyBmb3IgYmxvY2tpbmcgb3BlcmF0aW9ucyBsaWtlIHRoZQogICAgY29ubmVjdGlvbiBhdHRlbXB0IChpZiBub3Qgc3BlY2lmaWVkLCB0aGUgZ2xvYmFsIGRlZmF1bHQgdGltZW91dCBzZXR0aW5nCi0gICB3aWxsIGJlIHVzZWQpLgorICAgd2lsbCBiZSB1c2VkKS4gVGhlIG9wdGlvbmFsIHNvdXJjZV9hZGRyZXNzIHBhcmFtZXRlciBhbGxvd3MgdG8gYmluZCB0byBzb21lCisgICBzcGVjaWZpYyBzb3VyY2UgYWRkcmVzcyBpbiBhIG1hY2hpbmUgd2l0aCBtdWx0aXBsZSBuZXR3b3JrIGludGVyZmFjZXMsCisgICBhbmQvb3IgdG8gc29tZSBzcGVjaWZpYyBzb3VyY2UgdGNwIHBvcnQuIEl0IHRha2VzIGEgMi10dXBsZSAoaG9zdCwgcG9ydCksCisgICBmb3IgdGhlIHNvY2tldCB0byBiaW5kIHRvIGFzIGl0cyBzb3VyY2UgYWRkcmVzcyBiZWZvcmUgY29ubmVjdGluZy4gSWYKKyAgIG9taXR0ZWQgKG9yIGlmIGhvc3Qgb3IgcG9ydCBhcmUgYGAnJ2BgIGFuZC9vciAwIHJlc3BlY3RpdmVseSkgdGhlIE9TIGRlZmF1bHQKKyAgIGJlaGF2aW9yIHdpbGwgYmUgdXNlZC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICpjb250ZXh0KiB3YXMgYWRkZWQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBzb3VyY2VfYWRkcmVzcyBhcmd1bWVudCB3YXMgYWRkZWQuCiAKIAotLi4gY2xhc3M6OiBMTVRQKGhvc3Q9JycsIHBvcnQ9TE1UUF9QT1JULCBsb2NhbF9ob3N0bmFtZT1Ob25lKQorLi4gY2xhc3M6OiBMTVRQKGhvc3Q9JycsIHBvcnQ9TE1UUF9QT1JULCBsb2NhbF9ob3N0bmFtZT1Ob25lLCBzb3VyY2VfYWRkcmVzcz1Ob25lKQogCiAgICBUaGUgTE1UUCBwcm90b2NvbCwgd2hpY2ggaXMgdmVyeSBzaW1pbGFyIHRvIEVTTVRQLCBpcyBoZWF2aWx5IGJhc2VkIG9uIHRoZQotICAgc3RhbmRhcmQgU01UUCBjbGllbnQuIEl0J3MgY29tbW9uIHRvIHVzZSBVbml4IHNvY2tldHMgZm9yIExNVFAsIHNvIG91ciA6bWV0aDpgY29ubmVjdGAKLSAgIG1ldGhvZCBtdXN0IHN1cHBvcnQgdGhhdCBhcyB3ZWxsIGFzIGEgcmVndWxhciBob3N0OnBvcnQgc2VydmVyLiBUbyBzcGVjaWZ5IGEKLSAgIFVuaXggc29ja2V0LCB5b3UgbXVzdCB1c2UgYW4gYWJzb2x1dGUgcGF0aCBmb3IgKmhvc3QqLCBzdGFydGluZyB3aXRoIGEgJy8nLgorICAgc3RhbmRhcmQgU01UUCBjbGllbnQuIEl0J3MgY29tbW9uIHRvIHVzZSBVbml4IHNvY2tldHMgZm9yIExNVFAsIHNvIG91cgorICAgOm1ldGg6YGNvbm5lY3RgIG1ldGhvZCBtdXN0IHN1cHBvcnQgdGhhdCBhcyB3ZWxsIGFzIGEgcmVndWxhciBob3N0OnBvcnQKKyAgIHNlcnZlci4gVGhlIG9wdGlvbmFsIGFyZ3VtZW50cyBsb2NhbF9ob3N0bmFtZSBhbmQgc291cmNlX2FkZHJlc3MgaGF2ZSB0aGUKKyAgIHNhbWUgbWVhbmluZyBhcyB0aGF0IG9mIFNNVFAgY2xpZW50LiBUbyBzcGVjaWZ5IGEgVW5peCBzb2NrZXQsIHlvdSBtdXN0IHVzZQorICAgYW4gYWJzb2x1dGUgcGF0aCBmb3IgKmhvc3QqLCBzdGFydGluZyB3aXRoIGEgJy8nLgogCiAgICBBdXRoZW50aWNhdGlvbiBpcyBzdXBwb3J0ZWQsIHVzaW5nIHRoZSByZWd1bGFyIFNNVFAgbWVjaGFuaXNtLiBXaGVuIHVzaW5nIGEgVW5peAogICAgc29ja2V0LCBMTVRQIGdlbmVyYWxseSBkb24ndCBzdXBwb3J0IG9yIHJlcXVpcmUgYW55IGF1dGhlbnRpY2F0aW9uLCBidXQgeW91cgpAQCAtMjQyLDcgKzI3OCw3IEBACiAgICAgICBObyBzdWl0YWJsZSBhdXRoZW50aWNhdGlvbiBtZXRob2Qgd2FzIGZvdW5kLgogCiAKLS4uIG1ldGhvZDo6IFNNVFAuc3RhcnR0bHMoa2V5ZmlsZT1Ob25lLCBjZXJ0ZmlsZT1Ob25lKQorLi4gbWV0aG9kOjogU01UUC5zdGFydHRscyhrZXlmaWxlPU5vbmUsIGNlcnRmaWxlPU5vbmUsIGNvbnRleHQ9Tm9uZSkKIAogICAgUHV0IHRoZSBTTVRQIGNvbm5lY3Rpb24gaW4gVExTIChUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkpIG1vZGUuICBBbGwgU01UUAogICAgY29tbWFuZHMgdGhhdCBmb2xsb3cgd2lsbCBiZSBlbmNyeXB0ZWQuICBZb3Ugc2hvdWxkIHRoZW4gY2FsbCA6bWV0aDpgZWhsb2AKQEAgLTI1MSw2ICsyODcsOSBAQAogICAgSWYgKmtleWZpbGUqIGFuZCAqY2VydGZpbGUqIGFyZSBwcm92aWRlZCwgdGhlc2UgYXJlIHBhc3NlZCB0byB0aGUgOm1vZDpgc29ja2V0YAogICAgbW9kdWxlJ3MgOmZ1bmM6YHNzbGAgZnVuY3Rpb24uCiAKKyAgIE9wdGlvbmFsICpjb250ZXh0KiBwYXJhbWV0ZXIgaXMgYSA6Y2xhc3M6YHNzbC5TU0xDb250ZXh0YCBvYmplY3Q7IFRoaXMgaXMgYW4gYWx0ZXJuYXRpdmUgdG8KKyAgIHVzaW5nIGEga2V5ZmlsZSBhbmQgYSBjZXJ0ZmlsZSBhbmQgaWYgc3BlY2lmaWVkIGJvdGggKmtleWZpbGUqIGFuZCAqY2VydGZpbGUqIHNob3VsZCBiZSBOb25lLgorCiAgICBJZiB0aGVyZSBoYXMgYmVlbiBubyBwcmV2aW91cyBgYEVITE9gYCBvciBgYEhFTE9gYCBjb21tYW5kIHRoaXMgc2Vzc2lvbiwKICAgIHRoaXMgbWV0aG9kIHRyaWVzIEVTTVRQIGBgRUhMT2BgIGZpcnN0LgogCkBAIC0yNjMsNiArMzAyLDkgQEAKICAgIDpleGM6YFJ1bnRpbWVFcnJvcmAKICAgICAgU1NML1RMUyBzdXBwb3J0IGlzIG5vdCBhdmFpbGFibGUgdG8geW91ciBQeXRob24gaW50ZXJwcmV0ZXIuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAqY29udGV4dCogd2FzIGFkZGVkLgorCiAKIC4uIG1ldGhvZDo6IFNNVFAuc2VuZG1haWwoZnJvbV9hZGRyLCB0b19hZGRycywgbXNnLCBtYWlsX29wdGlvbnM9W10sIHJjcHRfb3B0aW9ucz1bXSkKIApAQCAtMzIwLDcgKzM2Miw4IEBACiAgICBVbmxlc3Mgb3RoZXJ3aXNlIG5vdGVkLCB0aGUgY29ubmVjdGlvbiB3aWxsIGJlIG9wZW4gZXZlbiBhZnRlciBhbiBleGNlcHRpb24gaXMKICAgIHJhaXNlZC4KIAotICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIgKm1zZyogbWF5IGJlIGEgYnl0ZSBzdHJpbmcuCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgorICAgICAgKm1zZyogbWF5IGJlIGEgYnl0ZSBzdHJpbmcuCiAKIAogLi4gbWV0aG9kOjogU01UUC5zZW5kX21lc3NhZ2UobXNnLCBmcm9tX2FkZHI9Tm9uZSwgdG9fYWRkcnM9Tm9uZSwgXApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc29ja2V0LnJzdCBiL0RvYy9saWJyYXJ5L3NvY2tldC5yc3QKaW5kZXggMGFlZjE4My4uMDJhZjljYSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc29ja2V0LnJzdAorKysgYi9Eb2MvbGlicmFyeS9zb2NrZXQucnN0CkBAIC00MCw5ICs0MCwyMyBAQAogRGVwZW5kaW5nIG9uIHRoZSBzeXN0ZW0gYW5kIHRoZSBidWlsZCBvcHRpb25zLCB2YXJpb3VzIHNvY2tldCBmYW1pbGllcwogYXJlIHN1cHBvcnRlZCBieSB0aGlzIG1vZHVsZS4KIAotU29ja2V0IGFkZHJlc3NlcyBhcmUgcmVwcmVzZW50ZWQgYXMgZm9sbG93czoKK1RoZSBhZGRyZXNzIGZvcm1hdCByZXF1aXJlZCBieSBhIHBhcnRpY3VsYXIgc29ja2V0IG9iamVjdCBpcyBhdXRvbWF0aWNhbGx5CitzZWxlY3RlZCBiYXNlZCBvbiB0aGUgYWRkcmVzcyBmYW1pbHkgc3BlY2lmaWVkIHdoZW4gdGhlIHNvY2tldCBvYmplY3Qgd2FzCitjcmVhdGVkLiAgU29ja2V0IGFkZHJlc3NlcyBhcmUgcmVwcmVzZW50ZWQgYXMgZm9sbG93czoKIAotLSBBIHNpbmdsZSBzdHJpbmcgaXMgdXNlZCBmb3IgdGhlIDpjb25zdDpgQUZfVU5JWGAgYWRkcmVzcyBmYW1pbHkuCistIFRoZSBhZGRyZXNzIG9mIGFuIDpjb25zdDpgQUZfVU5JWGAgc29ja2V0IGJvdW5kIHRvIGEgZmlsZSBzeXN0ZW0gbm9kZQorICBpcyByZXByZXNlbnRlZCBhcyBhIHN0cmluZywgdXNpbmcgdGhlIGZpbGUgc3lzdGVtIGVuY29kaW5nIGFuZCB0aGUKKyAgYGAnc3Vycm9nYXRlZXNjYXBlJ2BgIGVycm9yIGhhbmRsZXIgKHNlZSA6cGVwOmAzODNgKS4gIEFuIGFkZHJlc3MgaW4KKyAgTGludXgncyBhYnN0cmFjdCBuYW1lc3BhY2UgaXMgcmV0dXJuZWQgYXMgYSA6Y2xhc3M6YGJ5dGVzYCBvYmplY3Qgd2l0aAorICBhbiBpbml0aWFsIG51bGwgYnl0ZTsgbm90ZSB0aGF0IHNvY2tldHMgaW4gdGhpcyBuYW1lc3BhY2UgY2FuCisgIGNvbW11bmljYXRlIHdpdGggbm9ybWFsIGZpbGUgc3lzdGVtIHNvY2tldHMsIHNvIHByb2dyYW1zIGludGVuZGVkIHRvCisgIHJ1biBvbiBMaW51eCBtYXkgbmVlZCB0byBkZWFsIHdpdGggYm90aCB0eXBlcyBvZiBhZGRyZXNzLiAgQSBzdHJpbmcgb3IKKyAgOmNsYXNzOmBieXRlc2Agb2JqZWN0IGNhbiBiZSB1c2VkIGZvciBlaXRoZXIgdHlwZSBvZiBhZGRyZXNzIHdoZW4KKyAgcGFzc2luZyBpdCBhcyBhbiBhcmd1bWVudC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFByZXZpb3VzbHksIDpjb25zdDpgQUZfVU5JWGAgc29ja2V0IHBhdGhzIHdlcmUgYXNzdW1lZCB0byB1c2UgVVRGLTgKKyAgICAgIGVuY29kaW5nLgogCiAtIEEgcGFpciBgYChob3N0LCBwb3J0KWBgIGlzIHVzZWQgZm9yIHRoZSA6Y29uc3Q6YEFGX0lORVRgIGFkZHJlc3MgZmFtaWx5LAogICB3aGVyZSAqaG9zdCogaXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGVpdGhlciBhIGhvc3RuYW1lIGluIEludGVybmV0IGRvbWFpbgpAQCAtODAsNiArOTQsMTkgQEAKICAgICBJZiAqYWRkcl90eXBlKiBpcyA6Y29uc3Q6YFRJUENfQUREUl9JRGAsIHRoZW4gKnYxKiBpcyB0aGUgbm9kZSwgKnYyKiBpcyB0aGUKICAgICByZWZlcmVuY2UsIGFuZCAqdjMqIHNob3VsZCBiZSBzZXQgdG8gMC4KIAorLSBBIHR1cGxlIGBgKGludGVyZmFjZSwgKWBgIGlzIHVzZWQgZm9yIHRoZSA6Y29uc3Q6YEFGX0NBTmAgYWRkcmVzcyBmYW1pbHksCisgIHdoZXJlICppbnRlcmZhY2UqIGlzIGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIG5ldHdvcmsgaW50ZXJmYWNlIG5hbWUgbGlrZQorICBgYCdjYW4wJ2BgLiBUaGUgbmV0d29yayBpbnRlcmZhY2UgbmFtZSBgYCcnYGAgY2FuIGJlIHVzZWQgdG8gcmVjZWl2ZSBwYWNrZXRzCisgIGZyb20gYWxsIG5ldHdvcmsgaW50ZXJmYWNlcyBvZiB0aGlzIGZhbWlseS4KKworLSBBIHN0cmluZyBvciBhIHR1cGxlIGBgKGlkLCB1bml0KWBgIGlzIHVzZWQgZm9yIHRoZSA6Y29uc3Q6YFNZU1BST1RPX0NPTlRST0xgCisgIHByb3RvY29sIG9mIHRoZSA6Y29uc3Q6YFBGX1NZU1RFTWAgZmFtaWx5LiBUaGUgc3RyaW5nIGlzIHRoZSBuYW1lIG9mIGEKKyAga2VybmVsIGNvbnRyb2wgdXNpbmcgYSBkeW5hbWljYWxseS1hc3NpZ25lZCBJRC4gVGhlIHR1cGxlIGNhbiBiZSB1c2VkIGlmIElECisgIGFuZCB1bml0IG51bWJlciBvZiB0aGUga2VybmVsIGNvbnRyb2wgYXJlIGtub3duIG9yIGlmIGEgcmVnaXN0ZXJlZCBJRCBpcworICB1c2VkLgorCisgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAtIENlcnRhaW4gb3RoZXIgYWRkcmVzcyBmYW1pbGllcyAoOmNvbnN0OmBBRl9CTFVFVE9PVEhgLCA6Y29uc3Q6YEFGX1BBQ0tFVGApCiAgIHN1cHBvcnQgc3BlY2lmaWMgcmVwcmVzZW50YXRpb25zLgogCkBAIC05OSw4ICsxMjYsOSBAQAogbnVtZXJpYyBhZGRyZXNzIGluICpob3N0KiBwb3J0aW9uLgogCiBBbGwgZXJyb3JzIHJhaXNlIGV4Y2VwdGlvbnMuICBUaGUgbm9ybWFsIGV4Y2VwdGlvbnMgZm9yIGludmFsaWQgYXJndW1lbnQgdHlwZXMKLWFuZCBvdXQtb2YtbWVtb3J5IGNvbmRpdGlvbnMgY2FuIGJlIHJhaXNlZDsgZXJyb3JzIHJlbGF0ZWQgdG8gc29ja2V0IG9yIGFkZHJlc3MKLXNlbWFudGljcyByYWlzZSA6ZXhjOmBzb2NrZXQuZXJyb3JgIG9yIG9uZSBvZiBpdHMgc3ViY2xhc3Nlcy4KK2FuZCBvdXQtb2YtbWVtb3J5IGNvbmRpdGlvbnMgY2FuIGJlIHJhaXNlZDsgc3RhcnRpbmcgZnJvbSBQeXRob24gMy4zLCBlcnJvcnMKK3JlbGF0ZWQgdG8gc29ja2V0IG9yIGFkZHJlc3Mgc2VtYW50aWNzIHJhaXNlIDpleGM6YE9TRXJyb3JgIG9yIG9uZSBvZiBpdHMKK3N1YmNsYXNzZXMgKHRoZXkgdXNlZCB0byByYWlzZSA6ZXhjOmBzb2NrZXQuZXJyb3JgKS4KIAogTm9uLWJsb2NraW5nIG1vZGUgaXMgc3VwcG9ydGVkIHRocm91Z2ggOm1ldGg6YH5zb2NrZXQuc2V0YmxvY2tpbmdgLiAgQQogZ2VuZXJhbGl6YXRpb24gb2YgdGhpcyBiYXNlZCBvbiB0aW1lb3V0cyBpcyBzdXBwb3J0ZWQgdGhyb3VnaApAQCAtMTE1LDIwICsxNDMsMTUgQEAKIAogLi4gZXhjZXB0aW9uOjogZXJyb3IKIAotICAgLi4gaW5kZXg6OiBtb2R1bGU6IGVycm5vCisgICBBIGRlcHJlY2F0ZWQgYWxpYXMgb2YgOmV4YzpgT1NFcnJvcmAuCiAKLSAgIEEgc3ViY2xhc3Mgb2YgOmV4YzpgSU9FcnJvcmAsIHRoaXMgZXhjZXB0aW9uIGlzIHJhaXNlZCBmb3Igc29ja2V0LXJlbGF0ZWQKLSAgIGVycm9ycy4gIEl0IGlzIHJlY29tbWVuZGVkIHRoYXQgeW91IGluc3BlY3QgaXRzIGBgZXJybm9gYCBhdHRyaWJ1dGUgdG8KLSAgIGRpc2NyaW1pbmF0ZSBiZXR3ZWVuIGRpZmZlcmVudCBraW5kcyBvZiBlcnJvcnMuCi0KLSAgIC4uIHNlZWFsc286OgotICAgICAgVGhlIDptb2Q6YGVycm5vYCBtb2R1bGUgY29udGFpbnMgc3ltYm9saWMgbmFtZXMgZm9yIHRoZSBlcnJvciBjb2RlcwotICAgICAgZGVmaW5lZCBieSB0aGUgdW5kZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtLgorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEZvbGxvd2luZyA6cGVwOmAzMTUxYCwgdGhpcyBjbGFzcyB3YXMgbWFkZSBhbiBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KIAogCiAuLiBleGNlcHRpb246OiBoZXJyb3IKIAotICAgQSBzdWJjbGFzcyBvZiA6ZXhjOmBzb2NrZXQuZXJyb3JgLCB0aGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgZm9yCisgICBBIHN1YmNsYXNzIG9mIDpleGM6YE9TRXJyb3JgLCB0aGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgZm9yCiAgICBhZGRyZXNzLXJlbGF0ZWQgZXJyb3JzLCBpLmUuIGZvciBmdW5jdGlvbnMgdGhhdCB1c2UgKmhfZXJybm8qIGluIHRoZSBQT1NJWAogICAgQyBBUEksIGluY2x1ZGluZyA6ZnVuYzpgZ2V0aG9zdGJ5bmFtZV9leGAgYW5kIDpmdW5jOmBnZXRob3N0YnlhZGRyYC4KICAgIFRoZSBhY2NvbXBhbnlpbmcgdmFsdWUgaXMgYSBwYWlyIGBgKGhfZXJybm8sIHN0cmluZylgYCByZXByZXNlbnRpbmcgYW4KQEAgLTEzNiwxMCArMTU5LDEyIEBACiAgICAqc3RyaW5nKiByZXByZXNlbnRzIHRoZSBkZXNjcmlwdGlvbiBvZiAqaF9lcnJubyosIGFzIHJldHVybmVkIGJ5IHRoZQogICAgOmM6ZnVuYzpgaHN0cmVycm9yYCBDIGZ1bmN0aW9uLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhpcyBjbGFzcyB3YXMgbWFkZSBhIHN1YmNsYXNzIG9mIDpleGM6YE9TRXJyb3JgLgogCiAuLiBleGNlcHRpb246OiBnYWllcnJvcgogCi0gICBBIHN1YmNsYXNzIG9mIDpleGM6YHNvY2tldC5lcnJvcmAsIHRoaXMgZXhjZXB0aW9uIGlzIHJhaXNlZCBmb3IKKyAgIEEgc3ViY2xhc3Mgb2YgOmV4YzpgT1NFcnJvcmAsIHRoaXMgZXhjZXB0aW9uIGlzIHJhaXNlZCBmb3IKICAgIGFkZHJlc3MtcmVsYXRlZCBlcnJvcnMgYnkgOmZ1bmM6YGdldGFkZHJpbmZvYCBhbmQgOmZ1bmM6YGdldG5hbWVpbmZvYC4KICAgIFRoZSBhY2NvbXBhbnlpbmcgdmFsdWUgaXMgYSBwYWlyIGBgKGVycm9yLCBzdHJpbmcpYGAgcmVwcmVzZW50aW5nIGFuIGVycm9yCiAgICByZXR1cm5lZCBieSBhIGxpYnJhcnkgY2FsbC4gICpzdHJpbmcqIHJlcHJlc2VudHMgdGhlIGRlc2NyaXB0aW9uIG9mCkBAIC0xNDcsMTUgKzE3MiwxOSBAQAogICAgbnVtZXJpYyAqZXJyb3IqIHZhbHVlIHdpbGwgbWF0Y2ggb25lIG9mIHRoZSA6Y29uc3Q6YEVBSV9cKmAgY29uc3RhbnRzCiAgICBkZWZpbmVkIGluIHRoaXMgbW9kdWxlLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhpcyBjbGFzcyB3YXMgbWFkZSBhIHN1YmNsYXNzIG9mIDpleGM6YE9TRXJyb3JgLgogCiAuLiBleGNlcHRpb246OiB0aW1lb3V0CiAKLSAgIEEgc3ViY2xhc3Mgb2YgOmV4Yzpgc29ja2V0LmVycm9yYCwgdGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIHdoZW4gYSB0aW1lb3V0CisgICBBIHN1YmNsYXNzIG9mIDpleGM6YE9TRXJyb3JgLCB0aGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiBhIHRpbWVvdXQKICAgIG9jY3VycyBvbiBhIHNvY2tldCB3aGljaCBoYXMgaGFkIHRpbWVvdXRzIGVuYWJsZWQgdmlhIGEgcHJpb3IgY2FsbCB0bwogICAgOm1ldGg6YH5zb2NrZXQuc2V0dGltZW91dGAgKG9yIGltcGxpY2l0bHkgdGhyb3VnaAogICAgOmZ1bmM6YH5zb2NrZXQuc2V0ZGVmYXVsdHRpbWVvdXRgKS4gIFRoZSBhY2NvbXBhbnlpbmcgdmFsdWUgaXMgYSBzdHJpbmcKICAgIHdob3NlIHZhbHVlIGlzIGN1cnJlbnRseSBhbHdheXMgInRpbWVkIG91dCIuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGlzIGNsYXNzIHdhcyBtYWRlIGEgc3ViY2xhc3Mgb2YgOmV4YzpgT1NFcnJvcmAuCiAKIC4uIGRhdGE6OiBBRl9VTklYCiAgICAgICAgICAgQUZfSU5FVApAQCAtMTk4LDYgKzIyNyw3IEBACiAgICAgICAgICAgU09NQVhDT05OCiAgICAgICAgICAgTVNHXyoKICAgICAgICAgICBTT0xfKgorICAgICAgICAgIFNDTV8qCiAgICAgICAgICAgSVBQUk9UT18qCiAgICAgICAgICAgSVBQT1JUXyoKICAgICAgICAgICBJTkFERFJfKgpAQCAtMjE1LDYgKzI0NSwzMiBAQAogICAgaW4gdGhlIFVuaXggaGVhZGVyIGZpbGVzIGFyZSBkZWZpbmVkOyBmb3IgYSBmZXcgc3ltYm9scywgZGVmYXVsdCB2YWx1ZXMgYXJlCiAgICBwcm92aWRlZC4KIAorLi4gZGF0YTo6IEFGX0NBTgorICAgICAgICAgIFBGX0NBTgorICAgICAgICAgIFNPTF9DQU5fKgorICAgICAgICAgIENBTl8qCisKKyAgIE1hbnkgY29uc3RhbnRzIG9mIHRoZXNlIGZvcm1zLCBkb2N1bWVudGVkIGluIHRoZSBMaW51eCBkb2N1bWVudGF0aW9uLCBhcmUKKyAgIGFsc28gZGVmaW5lZCBpbiB0aGUgc29ja2V0IG1vZHVsZS4KKworICAgQXZhaWxhYmlsaXR5OiBMaW51eCA+PSAyLjYuMjUuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGRhdGE6OiBBRl9SRFMKKyAgICAgICAgICBQRl9SRFMKKyAgICAgICAgICBTT0xfUkRTCisgICAgICAgICAgUkRTXyoKKworICAgTWFueSBjb25zdGFudHMgb2YgdGhlc2UgZm9ybXMsIGRvY3VtZW50ZWQgaW4gdGhlIExpbnV4IGRvY3VtZW50YXRpb24sIGFyZQorICAgYWxzbyBkZWZpbmVkIGluIHRoZSBzb2NrZXQgbW9kdWxlLgorCisgICBBdmFpbGFiaWxpdHk6IExpbnV4ID49IDIuNi4zMC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gZGF0YTo6IFNJT18qCiAgICAgICAgICAgUkNWQUxMXyoKIApAQCAtMzkzLDEwICs0NDksMTUgQEAKIAogICAgQ3JlYXRlIGEgbmV3IHNvY2tldCB1c2luZyB0aGUgZ2l2ZW4gYWRkcmVzcyBmYW1pbHksIHNvY2tldCB0eXBlIGFuZCBwcm90b2NvbAogICAgbnVtYmVyLiAgVGhlIGFkZHJlc3MgZmFtaWx5IHNob3VsZCBiZSA6Y29uc3Q6YEFGX0lORVRgICh0aGUgZGVmYXVsdCksCi0gICA6Y29uc3Q6YEFGX0lORVQ2YCBvciA6Y29uc3Q6YEFGX1VOSVhgLiAgVGhlIHNvY2tldCB0eXBlIHNob3VsZCBiZQotICAgOmNvbnN0OmBTT0NLX1NUUkVBTWAgKHRoZSBkZWZhdWx0KSwgOmNvbnN0OmBTT0NLX0RHUkFNYCBvciBwZXJoYXBzIG9uZSBvZiB0aGUKLSAgIG90aGVyIGBgU09DS19gYCBjb25zdGFudHMuICBUaGUgcHJvdG9jb2wgbnVtYmVyIGlzIHVzdWFsbHkgemVybyBhbmQgbWF5IGJlCi0gICBvbWl0dGVkIGluIHRoYXQgY2FzZS4KKyAgIDpjb25zdDpgQUZfSU5FVDZgLCA6Y29uc3Q6YEFGX1VOSVhgLCA6Y29uc3Q6YEFGX0NBTmAgb3IgOmNvbnN0OmBBRl9SRFNgLiBUaGUKKyAgIHNvY2tldCB0eXBlIHNob3VsZCBiZSA6Y29uc3Q6YFNPQ0tfU1RSRUFNYCAodGhlIGRlZmF1bHQpLAorICAgOmNvbnN0OmBTT0NLX0RHUkFNYCwgOmNvbnN0OmBTT0NLX1JBV2Agb3IgcGVyaGFwcyBvbmUgb2YgdGhlIG90aGVyIGBgU09DS19gYAorICAgY29uc3RhbnRzLiBUaGUgcHJvdG9jb2wgbnVtYmVyIGlzIHVzdWFsbHkgemVybyBhbmQgbWF5IGJlIG9taXR0ZWQgaW4gdGhhdAorICAgY2FzZSBvciA6Y29uc3Q6YENBTl9SQVdgIGluIGNhc2UgdGhlIGFkZHJlc3MgZmFtaWx5IGlzIDpjb25zdDpgQUZfQ0FOYC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFRoZSBBRl9DQU4gZmFtaWx5IHdhcyBhZGRlZC4KKyAgICAgIFRoZSBBRl9SRFMgZmFtaWx5IHdhcyBhZGRlZC4KIAogCiAuLiBmdW5jdGlvbjo6IHNvY2tldHBhaXIoW2ZhbWlseVssIHR5cGVbLCBwcm90b11dXSkKQEAgLTQ2NCw3ICs1MjUsNyBAQAogICAgVW5peCBtYW51YWwgcGFnZSA6bWFucGFnZTpgaW5ldCgzKWAgZm9yIGRldGFpbHMuCiAKICAgIElmIHRoZSBJUHY0IGFkZHJlc3Mgc3RyaW5nIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIGlzIGludmFsaWQsCi0gICA6ZXhjOmBzb2NrZXQuZXJyb3JgIHdpbGwgYmUgcmFpc2VkLiBOb3RlIHRoYXQgZXhhY3RseSB3aGF0IGlzIHZhbGlkIGRlcGVuZHMgb24KKyAgIDpleGM6YE9TRXJyb3JgIHdpbGwgYmUgcmFpc2VkLiBOb3RlIHRoYXQgZXhhY3RseSB3aGF0IGlzIHZhbGlkIGRlcGVuZHMgb24KICAgIHRoZSB1bmRlcmx5aW5nIEMgaW1wbGVtZW50YXRpb24gb2YgOmM6ZnVuYzpgaW5ldF9hdG9uYC4KIAogICAgOmZ1bmM6YGluZXRfYXRvbmAgZG9lcyBub3Qgc3VwcG9ydCBJUHY2LCBhbmQgOmZ1bmM6YGluZXRfcHRvbmAgc2hvdWxkIGJlIHVzZWQKQEAgLTQ4MSw3ICs1NDIsNyBAQAogICAgYXJndW1lbnQuCiAKICAgIElmIHRoZSBieXRlIHNlcXVlbmNlIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBleGFjdGx5IDQgYnl0ZXMgaW4KLSAgIGxlbmd0aCwgOmV4Yzpgc29ja2V0LmVycm9yYCB3aWxsIGJlIHJhaXNlZC4gOmZ1bmM6YGluZXRfbnRvYWAgZG9lcyBub3QKKyAgIGxlbmd0aCwgOmV4YzpgT1NFcnJvcmAgd2lsbCBiZSByYWlzZWQuIDpmdW5jOmBpbmV0X250b2FgIGRvZXMgbm90CiAgICBzdXBwb3J0IElQdjYsIGFuZCA6ZnVuYzpgaW5ldF9udG9wYCBzaG91bGQgYmUgdXNlZCBpbnN0ZWFkIGZvciBJUHY0L3Y2IGR1YWwKICAgIHN0YWNrIHN1cHBvcnQuCiAKQEAgLTQ5NSw3ICs1NTYsNyBAQAogCiAgICBTdXBwb3J0ZWQgdmFsdWVzIGZvciAqYWRkcmVzc19mYW1pbHkqIGFyZSBjdXJyZW50bHkgOmNvbnN0OmBBRl9JTkVUYCBhbmQKICAgIDpjb25zdDpgQUZfSU5FVDZgLiBJZiB0aGUgSVAgYWRkcmVzcyBzdHJpbmcgKmlwX3N0cmluZyogaXMgaW52YWxpZCwKLSAgIDpleGM6YHNvY2tldC5lcnJvcmAgd2lsbCBiZSByYWlzZWQuIE5vdGUgdGhhdCBleGFjdGx5IHdoYXQgaXMgdmFsaWQgZGVwZW5kcyBvbgorICAgOmV4YzpgT1NFcnJvcmAgd2lsbCBiZSByYWlzZWQuIE5vdGUgdGhhdCBleGFjdGx5IHdoYXQgaXMgdmFsaWQgZGVwZW5kcyBvbgogICAgYm90aCB0aGUgdmFsdWUgb2YgKmFkZHJlc3NfZmFtaWx5KiBhbmQgdGhlIHVuZGVybHlpbmcgaW1wbGVtZW50YXRpb24gb2YKICAgIDpjOmZ1bmM6YGluZXRfcHRvbmAuCiAKQEAgLTUxMywxMSArNTc0LDU0IEBACiAgICBTdXBwb3J0ZWQgdmFsdWVzIGZvciAqYWRkcmVzc19mYW1pbHkqIGFyZSBjdXJyZW50bHkgOmNvbnN0OmBBRl9JTkVUYCBhbmQKICAgIDpjb25zdDpgQUZfSU5FVDZgLiBJZiB0aGUgc3RyaW5nICpwYWNrZWRfaXAqIGlzIG5vdCB0aGUgY29ycmVjdCBsZW5ndGggZm9yIHRoZQogICAgc3BlY2lmaWVkIGFkZHJlc3MgZmFtaWx5LCA6ZXhjOmBWYWx1ZUVycm9yYCB3aWxsIGJlIHJhaXNlZC4gIEEKLSAgIDpleGM6YHNvY2tldC5lcnJvcmAgaXMgcmFpc2VkIGZvciBlcnJvcnMgZnJvbSB0aGUgY2FsbCB0byA6ZnVuYzpgaW5ldF9udG9wYC4KKyAgIDpleGM6YE9TRXJyb3JgIGlzIHJhaXNlZCBmb3IgZXJyb3JzIGZyb20gdGhlIGNhbGwgdG8gOmZ1bmM6YGluZXRfbnRvcGAuCiAKICAgIEF2YWlsYWJpbGl0eTogVW5peCAobWF5YmUgbm90IGFsbCBwbGF0Zm9ybXMpLgogCiAKKy4uCisgICBYWFg6IEFyZSBzZW5kbXNnKCksIHJlY3Ztc2coKSBhbmQgQ01TR18qKCkgYXZhaWxhYmxlIG9uIGFueQorICAgbm9uLVVuaXggcGxhdGZvcm1zPyAgVGhlIG9sZCAob2Jzb2xldGU/KSA0LjJCU0QgZm9ybSBvZiB0aGUKKyAgIGludGVyZmFjZSwgaW4gd2hpY2ggc3RydWN0IG1zZ2hkciBoYXMgbm8gbXNnX2NvbnRyb2wgb3IKKyAgIG1zZ19jb250cm9sbGVuIG1lbWJlcnMsIGlzIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLgorCisuLiBmdW5jdGlvbjo6IENNU0dfTEVOKGxlbmd0aCkKKworICAgUmV0dXJuIHRoZSB0b3RhbCBsZW5ndGgsIHdpdGhvdXQgdHJhaWxpbmcgcGFkZGluZywgb2YgYW4gYW5jaWxsYXJ5CisgICBkYXRhIGl0ZW0gd2l0aCBhc3NvY2lhdGVkIGRhdGEgb2YgdGhlIGdpdmVuICpsZW5ndGgqLiAgVGhpcyB2YWx1ZQorICAgY2FuIG9mdGVuIGJlIHVzZWQgYXMgdGhlIGJ1ZmZlciBzaXplIGZvciA6bWV0aDpgfnNvY2tldC5yZWN2bXNnYCB0bworICAgcmVjZWl2ZSBhIHNpbmdsZSBpdGVtIG9mIGFuY2lsbGFyeSBkYXRhLCBidXQgOnJmYzpgMzU0MmAgcmVxdWlyZXMKKyAgIHBvcnRhYmxlIGFwcGxpY2F0aW9ucyB0byB1c2UgOmZ1bmM6YENNU0dfU1BBQ0VgIGFuZCB0aHVzIGluY2x1ZGUKKyAgIHNwYWNlIGZvciBwYWRkaW5nLCBldmVuIHdoZW4gdGhlIGl0ZW0gd2lsbCBiZSB0aGUgbGFzdCBpbiB0aGUKKyAgIGJ1ZmZlci4gIFJhaXNlcyA6ZXhjOmBPdmVyZmxvd0Vycm9yYCBpZiAqbGVuZ3RoKiBpcyBvdXRzaWRlIHRoZQorICAgcGVybWlzc2libGUgcmFuZ2Ugb2YgdmFsdWVzLgorCisgICBBdmFpbGFiaWxpdHk6IG1vc3QgVW5peCBwbGF0Zm9ybXMsIHBvc3NpYmx5IG90aGVycy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZnVuY3Rpb246OiBDTVNHX1NQQUNFKGxlbmd0aCkKKworICAgUmV0dXJuIHRoZSBidWZmZXIgc2l6ZSBuZWVkZWQgZm9yIDptZXRoOmB+c29ja2V0LnJlY3Ztc2dgIHRvCisgICByZWNlaXZlIGFuIGFuY2lsbGFyeSBkYXRhIGl0ZW0gd2l0aCBhc3NvY2lhdGVkIGRhdGEgb2YgdGhlIGdpdmVuCisgICAqbGVuZ3RoKiwgYWxvbmcgd2l0aCBhbnkgdHJhaWxpbmcgcGFkZGluZy4gIFRoZSBidWZmZXIgc3BhY2UgbmVlZGVkCisgICB0byByZWNlaXZlIG11bHRpcGxlIGl0ZW1zIGlzIHRoZSBzdW0gb2YgdGhlIDpmdW5jOmBDTVNHX1NQQUNFYAorICAgdmFsdWVzIGZvciB0aGVpciBhc3NvY2lhdGVkIGRhdGEgbGVuZ3Rocy4gIFJhaXNlcworICAgOmV4YzpgT3ZlcmZsb3dFcnJvcmAgaWYgKmxlbmd0aCogaXMgb3V0c2lkZSB0aGUgcGVybWlzc2libGUgcmFuZ2UKKyAgIG9mIHZhbHVlcy4KKworICAgTm90ZSB0aGF0IHNvbWUgc3lzdGVtcyBtaWdodCBzdXBwb3J0IGFuY2lsbGFyeSBkYXRhIHdpdGhvdXQKKyAgIHByb3ZpZGluZyB0aGlzIGZ1bmN0aW9uLiAgQWxzbyBub3RlIHRoYXQgc2V0dGluZyB0aGUgYnVmZmVyIHNpemUKKyAgIHVzaW5nIHRoZSByZXN1bHRzIG9mIHRoaXMgZnVuY3Rpb24gbWF5IG5vdCBwcmVjaXNlbHkgbGltaXQgdGhlCisgICBhbW91bnQgb2YgYW5jaWxsYXJ5IGRhdGEgdGhhdCBjYW4gYmUgcmVjZWl2ZWQsIHNpbmNlIGFkZGl0aW9uYWwKKyAgIGRhdGEgbWF5IGJlIGFibGUgdG8gZml0IGludG8gdGhlIHBhZGRpbmcgYXJlYS4KKworICAgQXZhaWxhYmlsaXR5OiBtb3N0IFVuaXggcGxhdGZvcm1zLCBwb3NzaWJseSBvdGhlcnMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIGZ1bmN0aW9uOjogZ2V0ZGVmYXVsdHRpbWVvdXQoKQogCiAgICBSZXR1cm4gdGhlIGRlZmF1bHQgdGltZW91dCBpbiBzZWNvbmRzIChmbG9hdCkgZm9yIG5ldyBzb2NrZXQgb2JqZWN0cy4gQSB2YWx1ZQpAQCAtNTMzLDYgKzYzNyw1OSBAQAogICAgbWVhbmluZ3MuCiAKIAorLi4gZnVuY3Rpb246OiBzZXRob3N0bmFtZShuYW1lKQorCisgICBTZXQgdGhlIG1hY2hpbmUncyBob3N0bmFtZSB0byAqbmFtZSouICBUaGlzIHdpbGwgcmFpc2UgYQorICAgOmV4YzpgT1NFcnJvcmAgaWYgeW91IGRvbid0IGhhdmUgZW5vdWdoIHJpZ2h0cy4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBmdW5jdGlvbjo6IGlmX25hbWVpbmRleCgpCisKKyAgIFJldHVybiBhIGxpc3Qgb2YgbmV0d29yayBpbnRlcmZhY2UgaW5mb3JtYXRpb24KKyAgIChpbmRleCBpbnQsIG5hbWUgc3RyaW5nKSB0dXBsZXMuCisgICA6ZXhjOmBPU0Vycm9yYCBpZiB0aGUgc3lzdGVtIGNhbGwgZmFpbHMuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZnVuY3Rpb246OiBpZl9uYW1ldG9pbmRleChpZl9uYW1lKQorCisgICBSZXR1cm4gYSBuZXR3b3JrIGludGVyZmFjZSBpbmRleCBudW1iZXIgY29ycmVzcG9uZGluZyB0byBhbgorICAgaW50ZXJmYWNlIG5hbWUuCisgICA6ZXhjOmBPU0Vycm9yYCBpZiBubyBpbnRlcmZhY2Ugd2l0aCB0aGUgZ2l2ZW4gbmFtZSBleGlzdHMuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZnVuY3Rpb246OiBpZl9pbmRleHRvbmFtZShpZl9pbmRleCkKKworICAgUmV0dXJuIGEgbmV0d29yayBpbnRlcmZhY2UgbmFtZSBjb3JyZXNwb25kaW5nIHRvIGEKKyAgIGludGVyZmFjZSBpbmRleCBudW1iZXIuCisgICA6ZXhjOmBPU0Vycm9yYCBpZiBubyBpbnRlcmZhY2Ugd2l0aCB0aGUgZ2l2ZW4gaW5kZXggZXhpc3RzLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogZnJvbXNoYXJlKGRhdGEpCisKKyAgIEluc3RhbnRpYXRlIGEgc29ja2V0IGZyb20gZGF0YSBvYnRhaW5lZCBmcm9tIDptZXRoOmB+c29ja2V0LnNoYXJlYC4KKyAgIFRoZSBzb2NrZXQgaXMgYXNzdW1lZCB0byBiZSBpbiBibG9ja2luZyBtb2RlLgorCisgICBBdmFpbGFiaWxpdHk6IFdpbmRvd3MuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIGRhdGE6OiBTb2NrZXRUeXBlCiAKICAgIFRoaXMgaXMgYSBQeXRob24gdHlwZSBvYmplY3QgdGhhdCByZXByZXNlbnRzIHRoZSBzb2NrZXQgb2JqZWN0IHR5cGUuIEl0IGlzIHRoZQpAQCAtNzA2LDYgKzg2MywxMDkgQEAKICAgIHRvIHplcm8uIChUaGUgZm9ybWF0IG9mICphZGRyZXNzKiBkZXBlbmRzIG9uIHRoZSBhZGRyZXNzIGZhbWlseSAtLS0gc2VlIGFib3ZlLikKIAogCisuLiBtZXRob2Q6OiBzb2NrZXQucmVjdm1zZyhidWZzaXplWywgYW5jYnVmc2l6ZVssIGZsYWdzXV0pCisKKyAgIFJlY2VpdmUgbm9ybWFsIGRhdGEgKHVwIHRvICpidWZzaXplKiBieXRlcykgYW5kIGFuY2lsbGFyeSBkYXRhIGZyb20KKyAgIHRoZSBzb2NrZXQuICBUaGUgKmFuY2J1ZnNpemUqIGFyZ3VtZW50IHNldHMgdGhlIHNpemUgaW4gYnl0ZXMgb2YKKyAgIHRoZSBpbnRlcm5hbCBidWZmZXIgdXNlZCB0byByZWNlaXZlIHRoZSBhbmNpbGxhcnkgZGF0YTsgaXQgZGVmYXVsdHMKKyAgIHRvIDAsIG1lYW5pbmcgdGhhdCBubyBhbmNpbGxhcnkgZGF0YSB3aWxsIGJlIHJlY2VpdmVkLiAgQXBwcm9wcmlhdGUKKyAgIGJ1ZmZlciBzaXplcyBmb3IgYW5jaWxsYXJ5IGRhdGEgY2FuIGJlIGNhbGN1bGF0ZWQgdXNpbmcKKyAgIDpmdW5jOmBDTVNHX1NQQUNFYCBvciA6ZnVuYzpgQ01TR19MRU5gLCBhbmQgaXRlbXMgd2hpY2ggZG8gbm90IGZpdAorICAgaW50byB0aGUgYnVmZmVyIG1pZ2h0IGJlIHRydW5jYXRlZCBvciBkaXNjYXJkZWQuICBUaGUgKmZsYWdzKgorICAgYXJndW1lbnQgZGVmYXVsdHMgdG8gMCBhbmQgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMgZm9yCisgICA6bWV0aDpgcmVjdmAuCisKKyAgIFRoZSByZXR1cm4gdmFsdWUgaXMgYSA0LXR1cGxlOiBgYChkYXRhLCBhbmNkYXRhLCBtc2dfZmxhZ3MsCisgICBhZGRyZXNzKWBgLiAgVGhlICpkYXRhKiBpdGVtIGlzIGEgOmNsYXNzOmBieXRlc2Agb2JqZWN0IGhvbGRpbmcgdGhlCisgICBub24tYW5jaWxsYXJ5IGRhdGEgcmVjZWl2ZWQuICBUaGUgKmFuY2RhdGEqIGl0ZW0gaXMgYSBsaXN0IG9mIHplcm8KKyAgIG9yIG1vcmUgdHVwbGVzIGBgKGNtc2dfbGV2ZWwsIGNtc2dfdHlwZSwgY21zZ19kYXRhKWBgIHJlcHJlc2VudGluZworICAgdGhlIGFuY2lsbGFyeSBkYXRhIChjb250cm9sIG1lc3NhZ2VzKSByZWNlaXZlZDogKmNtc2dfbGV2ZWwqIGFuZAorICAgKmNtc2dfdHlwZSogYXJlIGludGVnZXJzIHNwZWNpZnlpbmcgdGhlIHByb3RvY29sIGxldmVsIGFuZAorICAgcHJvdG9jb2wtc3BlY2lmaWMgdHlwZSByZXNwZWN0aXZlbHksIGFuZCAqY21zZ19kYXRhKiBpcyBhCisgICA6Y2xhc3M6YGJ5dGVzYCBvYmplY3QgaG9sZGluZyB0aGUgYXNzb2NpYXRlZCBkYXRhLiAgVGhlICptc2dfZmxhZ3MqCisgICBpdGVtIGlzIHRoZSBiaXR3aXNlIE9SIG9mIHZhcmlvdXMgZmxhZ3MgaW5kaWNhdGluZyBjb25kaXRpb25zIG9uCisgICB0aGUgcmVjZWl2ZWQgbWVzc2FnZTsgc2VlIHlvdXIgc3lzdGVtIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisgICBJZiB0aGUgcmVjZWl2aW5nIHNvY2tldCBpcyB1bmNvbm5lY3RlZCwgKmFkZHJlc3MqIGlzIHRoZSBhZGRyZXNzIG9mCisgICB0aGUgc2VuZGluZyBzb2NrZXQsIGlmIGF2YWlsYWJsZTsgb3RoZXJ3aXNlLCBpdHMgdmFsdWUgaXMKKyAgIHVuc3BlY2lmaWVkLgorCisgICBPbiBzb21lIHN5c3RlbXMsIDptZXRoOmBzZW5kbXNnYCBhbmQgOm1ldGg6YHJlY3Ztc2dgIGNhbiBiZSB1c2VkIHRvCisgICBwYXNzIGZpbGUgZGVzY3JpcHRvcnMgYmV0d2VlbiBwcm9jZXNzZXMgb3ZlciBhbiA6Y29uc3Q6YEFGX1VOSVhgCisgICBzb2NrZXQuICBXaGVuIHRoaXMgZmFjaWxpdHkgaXMgdXNlZCAoaXQgaXMgb2Z0ZW4gcmVzdHJpY3RlZCB0bworICAgOmNvbnN0OmBTT0NLX1NUUkVBTWAgc29ja2V0cyksIDptZXRoOmByZWN2bXNnYCB3aWxsIHJldHVybiwgaW4gaXRzCisgICBhbmNpbGxhcnkgZGF0YSwgaXRlbXMgb2YgdGhlIGZvcm0gYGAoc29ja2V0LlNPTF9TT0NLRVQsCisgICBzb2NrZXQuU0NNX1JJR0hUUywgZmRzKWBgLCB3aGVyZSAqZmRzKiBpcyBhIDpjbGFzczpgYnl0ZXNgIG9iamVjdAorICAgcmVwcmVzZW50aW5nIHRoZSBuZXcgZmlsZSBkZXNjcmlwdG9ycyBhcyBhIGJpbmFyeSBhcnJheSBvZiB0aGUKKyAgIG5hdGl2ZSBDIDpjOnR5cGU6YGludGAgdHlwZS4gIElmIDptZXRoOmByZWN2bXNnYCByYWlzZXMgYW4KKyAgIGV4Y2VwdGlvbiBhZnRlciB0aGUgc3lzdGVtIGNhbGwgcmV0dXJucywgaXQgd2lsbCBmaXJzdCBhdHRlbXB0IHRvCisgICBjbG9zZSBhbnkgZmlsZSBkZXNjcmlwdG9ycyByZWNlaXZlZCB2aWEgdGhpcyBtZWNoYW5pc20uCisKKyAgIFNvbWUgc3lzdGVtcyBkbyBub3QgaW5kaWNhdGUgdGhlIHRydW5jYXRlZCBsZW5ndGggb2YgYW5jaWxsYXJ5IGRhdGEKKyAgIGl0ZW1zIHdoaWNoIGhhdmUgYmVlbiBvbmx5IHBhcnRpYWxseSByZWNlaXZlZC4gIElmIGFuIGl0ZW0gYXBwZWFycworICAgdG8gZXh0ZW5kIGJleW9uZCB0aGUgZW5kIG9mIHRoZSBidWZmZXIsIDptZXRoOmByZWN2bXNnYCB3aWxsIGlzc3VlCisgICBhIDpleGM6YFJ1bnRpbWVXYXJuaW5nYCwgYW5kIHdpbGwgcmV0dXJuIHRoZSBwYXJ0IG9mIGl0IHdoaWNoIGlzCisgICBpbnNpZGUgdGhlIGJ1ZmZlciBwcm92aWRlZCBpdCBoYXMgbm90IGJlZW4gdHJ1bmNhdGVkIGJlZm9yZSB0aGUKKyAgIHN0YXJ0IG9mIGl0cyBhc3NvY2lhdGVkIGRhdGEuCisKKyAgIE9uIHN5c3RlbXMgd2hpY2ggc3VwcG9ydCB0aGUgOmNvbnN0OmBTQ01fUklHSFRTYCBtZWNoYW5pc20sIHRoZQorICAgZm9sbG93aW5nIGZ1bmN0aW9uIHdpbGwgcmVjZWl2ZSB1cCB0byAqbWF4ZmRzKiBmaWxlIGRlc2NyaXB0b3JzLAorICAgcmV0dXJuaW5nIHRoZSBtZXNzYWdlIGRhdGEgYW5kIGEgbGlzdCBjb250YWluaW5nIHRoZSBkZXNjcmlwdG9ycworICAgKHdoaWxlIGlnbm9yaW5nIHVuZXhwZWN0ZWQgY29uZGl0aW9ucyBzdWNoIGFzIHVucmVsYXRlZCBjb250cm9sCisgICBtZXNzYWdlcyBiZWluZyByZWNlaXZlZCkuICBTZWUgYWxzbyA6bWV0aDpgc2VuZG1zZ2AuIDo6CisKKyAgICAgIGltcG9ydCBzb2NrZXQsIGFycmF5CisKKyAgICAgIGRlZiByZWN2X2Zkcyhzb2NrLCBtc2dsZW4sIG1heGZkcyk6CisgICAgICAgICAgZmRzID0gYXJyYXkuYXJyYXkoImkiKSAgICMgQXJyYXkgb2YgaW50cworICAgICAgICAgIG1zZywgYW5jZGF0YSwgZmxhZ3MsIGFkZHIgPSBzb2NrLnJlY3Ztc2cobXNnbGVuLCBzb2NrZXQuQ01TR19MRU4obWF4ZmRzICogZmRzLml0ZW1zaXplKSkKKyAgICAgICAgICBmb3IgY21zZ19sZXZlbCwgY21zZ190eXBlLCBjbXNnX2RhdGEgaW4gYW5jZGF0YToKKyAgICAgICAgICAgICAgaWYgKGNtc2dfbGV2ZWwgPT0gc29ja2V0LlNPTF9TT0NLRVQgYW5kIGNtc2dfdHlwZSA9PSBzb2NrZXQuU0NNX1JJR0hUUyk6CisgICAgICAgICAgICAgICAgICAjIEFwcGVuZCBkYXRhLCBpZ25vcmluZyBhbnkgdHJ1bmNhdGVkIGludGVnZXJzIGF0IHRoZSBlbmQuCisgICAgICAgICAgICAgICAgICBmZHMuZnJvbXN0cmluZyhjbXNnX2RhdGFbOmxlbihjbXNnX2RhdGEpIC0gKGxlbihjbXNnX2RhdGEpICUgZmRzLml0ZW1zaXplKV0pCisgICAgICAgICAgcmV0dXJuIG1zZywgbGlzdChmZHMpCisKKyAgIEF2YWlsYWJpbGl0eTogbW9zdCBVbml4IHBsYXRmb3JtcywgcG9zc2libHkgb3RoZXJzLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBtZXRob2Q6OiBzb2NrZXQucmVjdm1zZ19pbnRvKGJ1ZmZlcnNbLCBhbmNidWZzaXplWywgZmxhZ3NdXSkKKworICAgUmVjZWl2ZSBub3JtYWwgZGF0YSBhbmQgYW5jaWxsYXJ5IGRhdGEgZnJvbSB0aGUgc29ja2V0LCBiZWhhdmluZyBhcworICAgOm1ldGg6YHJlY3Ztc2dgIHdvdWxkLCBidXQgc2NhdHRlciB0aGUgbm9uLWFuY2lsbGFyeSBkYXRhIGludG8gYQorICAgc2VyaWVzIG9mIGJ1ZmZlcnMgaW5zdGVhZCBvZiByZXR1cm5pbmcgYSBuZXcgYnl0ZXMgb2JqZWN0LiAgVGhlCisgICAqYnVmZmVycyogYXJndW1lbnQgbXVzdCBiZSBhbiBpdGVyYWJsZSBvZiBvYmplY3RzIHRoYXQgZXhwb3J0CisgICB3cml0YWJsZSBidWZmZXJzIChlLmcuIDpjbGFzczpgYnl0ZWFycmF5YCBvYmplY3RzKTsgdGhlc2Ugd2lsbCBiZQorICAgZmlsbGVkIHdpdGggc3VjY2Vzc2l2ZSBjaHVua3Mgb2YgdGhlIG5vbi1hbmNpbGxhcnkgZGF0YSB1bnRpbCBpdAorICAgaGFzIGFsbCBiZWVuIHdyaXR0ZW4gb3IgdGhlcmUgYXJlIG5vIG1vcmUgYnVmZmVycy4gIFRoZSBvcGVyYXRpbmcKKyAgIHN5c3RlbSBtYXkgc2V0IGEgbGltaXQgKDpmdW5jOmB+b3Muc3lzY29uZmAgdmFsdWUgYGBTQ19JT1ZfTUFYYGApCisgICBvbiB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMgdGhhdCBjYW4gYmUgdXNlZC4gIFRoZSAqYW5jYnVmc2l6ZSogYW5kCisgICAqZmxhZ3MqIGFyZ3VtZW50cyBoYXZlIHRoZSBzYW1lIG1lYW5pbmcgYXMgZm9yIDptZXRoOmByZWN2bXNnYC4KKworICAgVGhlIHJldHVybiB2YWx1ZSBpcyBhIDQtdHVwbGU6IGBgKG5ieXRlcywgYW5jZGF0YSwgbXNnX2ZsYWdzLAorICAgYWRkcmVzcylgYCwgd2hlcmUgKm5ieXRlcyogaXMgdGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyBvZgorICAgbm9uLWFuY2lsbGFyeSBkYXRhIHdyaXR0ZW4gaW50byB0aGUgYnVmZmVycywgYW5kICphbmNkYXRhKiwKKyAgICptc2dfZmxhZ3MqIGFuZCAqYWRkcmVzcyogYXJlIHRoZSBzYW1lIGFzIGZvciA6bWV0aDpgcmVjdm1zZ2AuCisKKyAgIEV4YW1wbGU6OgorCisgICAgICA+Pj4gaW1wb3J0IHNvY2tldAorICAgICAgPj4+IHMxLCBzMiA9IHNvY2tldC5zb2NrZXRwYWlyKCkKKyAgICAgID4+PiBiMSA9IGJ5dGVhcnJheShiJy0tLS0nKQorICAgICAgPj4+IGIyID0gYnl0ZWFycmF5KGInMDEyMzQ1Njc4OScpCisgICAgICA+Pj4gYjMgPSBieXRlYXJyYXkoYictLS0tLS0tLS0tLS0tLScpCisgICAgICA+Pj4gczEuc2VuZChiJ01hcnkgaGFkIGEgbGl0dGxlIGxhbWInKQorICAgICAgMjIKKyAgICAgID4+PiBzMi5yZWN2bXNnX2ludG8oW2IxLCBtZW1vcnl2aWV3KGIyKVsyOjldLCBiM10pCisgICAgICAoMjIsIFtdLCAwLCBOb25lKQorICAgICAgPj4+IFtiMSwgYjIsIGIzXQorICAgICAgW2J5dGVhcnJheShiJ01hcnknKSwgYnl0ZWFycmF5KGInMDEgaGFkIGEgOScpLCBieXRlYXJyYXkoYidsaXR0bGUgbGFtYi0tLScpXQorCisgICBBdmFpbGFiaWxpdHk6IG1vc3QgVW5peCBwbGF0Zm9ybXMsIHBvc3NpYmx5IG90aGVycy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gbWV0aG9kOjogc29ja2V0LnJlY3Zmcm9tX2ludG8oYnVmZmVyWywgbmJ5dGVzWywgZmxhZ3NdXSkKIAogICAgUmVjZWl2ZSBkYXRhIGZyb20gdGhlIHNvY2tldCwgd3JpdGluZyBpdCBpbnRvICpidWZmZXIqIGluc3RlYWQgb2YgY3JlYXRpbmcgYQpAQCAtNzU0LDYgKzEwMTQsNDEgQEAKICAgIGFib3ZlLikKIAogCisuLiBtZXRob2Q6OiBzb2NrZXQuc2VuZG1zZyhidWZmZXJzWywgYW5jZGF0YVssIGZsYWdzWywgYWRkcmVzc11dXSkKKworICAgU2VuZCBub3JtYWwgYW5kIGFuY2lsbGFyeSBkYXRhIHRvIHRoZSBzb2NrZXQsIGdhdGhlcmluZyB0aGUKKyAgIG5vbi1hbmNpbGxhcnkgZGF0YSBmcm9tIGEgc2VyaWVzIG9mIGJ1ZmZlcnMgYW5kIGNvbmNhdGVuYXRpbmcgaXQKKyAgIGludG8gYSBzaW5nbGUgbWVzc2FnZS4gIFRoZSAqYnVmZmVycyogYXJndW1lbnQgc3BlY2lmaWVzIHRoZQorICAgbm9uLWFuY2lsbGFyeSBkYXRhIGFzIGFuIGl0ZXJhYmxlIG9mIGJ1ZmZlci1jb21wYXRpYmxlIG9iamVjdHMKKyAgIChlLmcuIDpjbGFzczpgYnl0ZXNgIG9iamVjdHMpOyB0aGUgb3BlcmF0aW5nIHN5c3RlbSBtYXkgc2V0IGEgbGltaXQKKyAgICg6ZnVuYzpgfm9zLnN5c2NvbmZgIHZhbHVlIGBgU0NfSU9WX01BWGBgKSBvbiB0aGUgbnVtYmVyIG9mIGJ1ZmZlcnMKKyAgIHRoYXQgY2FuIGJlIHVzZWQuICBUaGUgKmFuY2RhdGEqIGFyZ3VtZW50IHNwZWNpZmllcyB0aGUgYW5jaWxsYXJ5CisgICBkYXRhIChjb250cm9sIG1lc3NhZ2VzKSBhcyBhbiBpdGVyYWJsZSBvZiB6ZXJvIG9yIG1vcmUgdHVwbGVzCisgICBgYChjbXNnX2xldmVsLCBjbXNnX3R5cGUsIGNtc2dfZGF0YSlgYCwgd2hlcmUgKmNtc2dfbGV2ZWwqIGFuZAorICAgKmNtc2dfdHlwZSogYXJlIGludGVnZXJzIHNwZWNpZnlpbmcgdGhlIHByb3RvY29sIGxldmVsIGFuZAorICAgcHJvdG9jb2wtc3BlY2lmaWMgdHlwZSByZXNwZWN0aXZlbHksIGFuZCAqY21zZ19kYXRhKiBpcyBhCisgICBidWZmZXItY29tcGF0aWJsZSBvYmplY3QgaG9sZGluZyB0aGUgYXNzb2NpYXRlZCBkYXRhLiAgTm90ZSB0aGF0CisgICBzb21lIHN5c3RlbXMgKGluIHBhcnRpY3VsYXIsIHN5c3RlbXMgd2l0aG91dCA6ZnVuYzpgQ01TR19TUEFDRWApCisgICBtaWdodCBzdXBwb3J0IHNlbmRpbmcgb25seSBvbmUgY29udHJvbCBtZXNzYWdlIHBlciBjYWxsLiAgVGhlCisgICAqZmxhZ3MqIGFyZ3VtZW50IGRlZmF1bHRzIHRvIDAgYW5kIGhhcyB0aGUgc2FtZSBtZWFuaW5nIGFzIGZvcgorICAgOm1ldGg6YHNlbmRgLiAgSWYgKmFkZHJlc3MqIGlzIHN1cHBsaWVkIGFuZCBub3QgYGBOb25lYGAsIGl0IHNldHMgYQorICAgZGVzdGluYXRpb24gYWRkcmVzcyBmb3IgdGhlIG1lc3NhZ2UuICBUaGUgcmV0dXJuIHZhbHVlIGlzIHRoZQorICAgbnVtYmVyIG9mIGJ5dGVzIG9mIG5vbi1hbmNpbGxhcnkgZGF0YSBzZW50LgorCisgICBUaGUgZm9sbG93aW5nIGZ1bmN0aW9uIHNlbmRzIHRoZSBsaXN0IG9mIGZpbGUgZGVzY3JpcHRvcnMgKmZkcyoKKyAgIG92ZXIgYW4gOmNvbnN0OmBBRl9VTklYYCBzb2NrZXQsIG9uIHN5c3RlbXMgd2hpY2ggc3VwcG9ydCB0aGUKKyAgIDpjb25zdDpgU0NNX1JJR0hUU2AgbWVjaGFuaXNtLiAgU2VlIGFsc28gOm1ldGg6YHJlY3Ztc2dgLiA6OgorCisgICAgICBpbXBvcnQgc29ja2V0LCBhcnJheQorCisgICAgICBkZWYgc2VuZF9mZHMoc29jaywgbXNnLCBmZHMpOgorICAgICAgICAgIHJldHVybiBzb2NrLnNlbmRtc2coW21zZ10sIFsoc29ja2V0LlNPTF9TT0NLRVQsIHNvY2tldC5TQ01fUklHSFRTLCBhcnJheS5hcnJheSgiaSIsIGZkcykpXSkKKworICAgQXZhaWxhYmlsaXR5OiBtb3N0IFVuaXggcGxhdGZvcm1zLCBwb3NzaWJseSBvdGhlcnMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIG1ldGhvZDo6IHNvY2tldC5zZXRibG9ja2luZyhmbGFnKQogCiAgICBTZXQgYmxvY2tpbmcgb3Igbm9uLWJsb2NraW5nIG1vZGUgb2YgdGhlIHNvY2tldDogaWYgKmZsYWcqIGlzIGZhbHNlLCB0aGUKQEAgLTc5NSw5ICsxMDkwLDIyIEBACiAgICBTaHV0IGRvd24gb25lIG9yIGJvdGggaGFsdmVzIG9mIHRoZSBjb25uZWN0aW9uLiAgSWYgKmhvdyogaXMgOmNvbnN0OmBTSFVUX1JEYCwKICAgIGZ1cnRoZXIgcmVjZWl2ZXMgYXJlIGRpc2FsbG93ZWQuICBJZiAqaG93KiBpcyA6Y29uc3Q6YFNIVVRfV1JgLCBmdXJ0aGVyIHNlbmRzCiAgICBhcmUgZGlzYWxsb3dlZC4gIElmICpob3cqIGlzIDpjb25zdDpgU0hVVF9SRFdSYCwgZnVydGhlciBzZW5kcyBhbmQgcmVjZWl2ZXMgYXJlCi0gICBkaXNhbGxvd2VkLiAgRGVwZW5kaW5nIG9uIHRoZSBwbGF0Zm9ybSwgc2h1dHRpbmcgZG93biBvbmUgaGFsZiBvZiB0aGUgY29ubmVjdGlvbgotICAgY2FuIGFsc28gY2xvc2UgdGhlIG9wcG9zaXRlIGhhbGYgKGUuZy4gb24gTWFjIE9TIFgsIGBgc2h1dGRvd24oU0hVVF9XUilgYCBkb2VzCi0gICBub3QgYWxsb3cgZnVydGhlciByZWFkcyBvbiB0aGUgb3RoZXIgZW5kIG9mIHRoZSBjb25uZWN0aW9uKS4KKyAgIGRpc2FsbG93ZWQuCisKKworLi4gbWV0aG9kOjogc29ja2V0LnNoYXJlKHByb2Nlc3NfaWQpCisKKyAgICA6cGxhdGZvcm06IFdpbmRvd3MKKworICAgIER1cGxhY2V0IGEgc29ja2V0IGFuZCBwcmVwYXJlIGl0IGZvciBzaGFyaW5nIHdpdGggYSB0YXJnZXQgcHJvY2Vzcy4gIFRoZQorICAgIHRhcmdldCBwcm9jZXNzIG11c3QgYmUgcHJvdmlkZWQgd2l0aCAqcHJvY2Vzc19pZCouICBUaGUgcmVzdWx0aW5nIGJ5dGVzIG9iamVjdAorICAgIGNhbiB0aGVuIGJlIHBhc3NlZCB0byB0aGUgdGFyZ2V0IHByb2Nlc3MgdXNpbmcgc29tZSBmb3JtIG9mIGludGVycHJvY2VzcworICAgIGNvbW11bmljYXRpb24gYW5kIHRoZSBzb2NrZXQgY2FuIGJlIHJlY3JlYXRlZCB0aGVyZSB1c2luZyA6ZnVuYzpgZnJvbXNoYXJlYC4KKyAgICBPbmNlIHRoaXMgbWV0aG9kIGhhcyBiZWVuIGNhbGxlZCwgaXQgaXMgc2FmZSB0byBjbG9zZSB0aGUgc29ja2V0IHNpbmNlCisgICAgdGhlIG9wZXJhdGluZyBzeXN0ZW0gaGFzIGFscmVhZHkgZHVwbGljYXRlZCBpdCBmb3IgdGhlIHRhcmdldCBwcm9jZXNzLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogCiBOb3RlIHRoYXQgdGhlcmUgYXJlIG5vIG1ldGhvZHMgOm1ldGg6YHJlYWRgIG9yIDptZXRoOmB3cml0ZWA7IHVzZQogOm1ldGg6YH5zb2NrZXQucmVjdmAgYW5kIDptZXRoOmB+c29ja2V0LnNlbmRgIHdpdGhvdXQgKmZsYWdzKiBhcmd1bWVudCBpbnN0ZWFkLgpAQCAtOTQyLDEzICsxMjUwLDEzIEBACiAgICAgICAgYWYsIHNvY2t0eXBlLCBwcm90bywgY2Fub25uYW1lLCBzYSA9IHJlcwogICAgICAgIHRyeToKICAgICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoYWYsIHNvY2t0eXBlLCBwcm90bykKLSAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIG1zZzoKKyAgICAgICBleGNlcHQgT1NFcnJvciBhcyBtc2c6CiAgICAgICAgICAgIHMgPSBOb25lCiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgdHJ5OgogICAgICAgICAgICBzLmJpbmQoc2EpCiAgICAgICAgICAgIHMubGlzdGVuKDEpCi0gICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBtc2c6CisgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICAgICBzLmNsb3NlKCkKICAgICAgICAgICAgcyA9IE5vbmUKICAgICAgICAgICAgY29udGludWUKQEAgLTk3NywxMiArMTI4NSwxMiBAQAogICAgICAgIGFmLCBzb2NrdHlwZSwgcHJvdG8sIGNhbm9ubmFtZSwgc2EgPSByZXMKICAgICAgICB0cnk6CiAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KGFmLCBzb2NrdHlwZSwgcHJvdG8pCi0gICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBtc2c6CisgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgbXNnOgogICAgICAgICAgICBzID0gTm9uZQogICAgICAgICAgICBjb250aW51ZQogICAgICAgIHRyeToKICAgICAgICAgICAgcy5jb25uZWN0KHNhKQotICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgbXNnOgorICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIG1zZzoKICAgICAgICAgICAgcy5jbG9zZSgpCiAgICAgICAgICAgIHMgPSBOb25lCiAgICAgICAgICAgIGNvbnRpbnVlCkBAIC05OTYsNyArMTMwNCw3IEBACiAgICBwcmludCgnUmVjZWl2ZWQnLCByZXByKGRhdGEpKQogCiAKLVRoZSBsYXN0IGV4YW1wbGUgc2hvd3MgaG93IHRvIHdyaXRlIGEgdmVyeSBzaW1wbGUgbmV0d29yayBzbmlmZmVyIHdpdGggcmF3CitUaGUgbmV4dCBleGFtcGxlIHNob3dzIGhvdyB0byB3cml0ZSBhIHZlcnkgc2ltcGxlIG5ldHdvcmsgc25pZmZlciB3aXRoIHJhdwogc29ja2V0cyBvbiBXaW5kb3dzLiBUaGUgZXhhbXBsZSByZXF1aXJlcyBhZG1pbmlzdHJhdG9yIHByaXZpbGVnZXMgdG8gbW9kaWZ5CiB0aGUgaW50ZXJmYWNlOjoKIApAQCAtMTAyMSwxMSArMTMyOSw1MSBAQAogICAgIyBkaXNhYmxlZCBwcm9taXNjdW91cyBtb2RlCiAgICBzLmlvY3RsKHNvY2tldC5TSU9fUkNWQUxMLCBzb2NrZXQuUkNWQUxMX09GRikKIAorVGhlIGxhc3QgZXhhbXBsZSBzaG93cyBob3cgdG8gdXNlIHRoZSBzb2NrZXQgaW50ZXJmYWNlIHRvIGNvbW11bmljYXRlIHRvIGEgQ0FOCituZXR3b3JrLiBUaGlzIGV4YW1wbGUgbWlnaHQgcmVxdWlyZSBzcGVjaWFsIHByaXZpbGVkZ2U6OgorCisgICBpbXBvcnQgc29ja2V0CisgICBpbXBvcnQgc3RydWN0CisKKworICAgIyBDQU4gZnJhbWUgcGFja2luZy91bnBhY2tpbmcgKHNlZSAnc3RydWN0IGNhbl9mcmFtZScgaW4gPGxpbnV4L2Nhbi5oPikKKworICAgY2FuX2ZyYW1lX2ZtdCA9ICI9SUIzeDhzIgorICAgY2FuX2ZyYW1lX3NpemUgPSBzdHJ1Y3QuY2FsY3NpemUoY2FuX2ZyYW1lX2ZtdCkKKworICAgZGVmIGJ1aWxkX2Nhbl9mcmFtZShjYW5faWQsIGRhdGEpOgorICAgICAgIGNhbl9kbGMgPSBsZW4oZGF0YSkKKyAgICAgICBkYXRhID0gZGF0YS5sanVzdCg4LCBiJ1x4MDAnKQorICAgICAgIHJldHVybiBzdHJ1Y3QucGFjayhjYW5fZnJhbWVfZm10LCBjYW5faWQsIGNhbl9kbGMsIGRhdGEpCisKKyAgIGRlZiBkaXNzZWN0X2Nhbl9mcmFtZShmcmFtZSk6CisgICAgICAgY2FuX2lkLCBjYW5fZGxjLCBkYXRhID0gc3RydWN0LnVucGFjayhjYW5fZnJhbWVfZm10LCBmcmFtZSkKKyAgICAgICByZXR1cm4gKGNhbl9pZCwgY2FuX2RsYywgZGF0YVs6Y2FuX2RsY10pCisKKworICAgIyBjcmVhdGUgYSByYXcgc29ja2V0IGFuZCBiaW5kIGl0IHRvIHRoZSAndmNhbjAnIGludGVyZmFjZQorICAgcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0NBTiwgc29ja2V0LlNPQ0tfUkFXLCBzb2NrZXQuQ0FOX1JBVykKKyAgIHMuYmluZCgoJ3ZjYW4wJywpKQorCisgICB3aGlsZSBUcnVlOgorICAgICAgIGNmLCBhZGRyID0gcy5yZWN2ZnJvbShjYW5fZnJhbWVfc2l6ZSkKKworICAgICAgIHByaW50KCdSZWNlaXZlZDogY2FuX2lkPSV4LCBjYW5fZGxjPSV4LCBkYXRhPSVzJyAlIGRpc3NlY3RfY2FuX2ZyYW1lKGNmKSkKKworICAgICAgIHRyeToKKyAgICAgICAgICAgcy5zZW5kKGNmKQorICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICBwcmludCgnRXJyb3Igc2VuZGluZyBDQU4gZnJhbWUnKQorCisgICAgICAgdHJ5OgorICAgICAgICAgICBzLnNlbmQoYnVpbGRfY2FuX2ZyYW1lKDB4MDEsIGInXHgwMVx4MDJceDAzJykpCisgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgIHByaW50KCdFcnJvciBzZW5kaW5nIENBTiBmcmFtZScpCiAKIFJ1bm5pbmcgYW4gZXhhbXBsZSBzZXZlcmFsIHRpbWVzIHdpdGggdG9vIHNtYWxsIGRlbGF5IGJldHdlZW4gZXhlY3V0aW9ucywgY291bGQKIGxlYWQgdG8gdGhpcyBlcnJvcjo6CiAKLSAgIHNvY2tldC5lcnJvcjogW0Vycm5vIDk4XSBBZGRyZXNzIGFscmVhZHkgaW4gdXNlCisgICBPU0Vycm9yOiBbRXJybm8gOThdIEFkZHJlc3MgYWxyZWFkeSBpbiB1c2UKIAogVGhpcyBpcyBiZWNhdXNlIHRoZSBwcmV2aW91cyBleGVjdXRpb24gaGFzIGxlZnQgdGhlIHNvY2tldCBpbiBhIGBgVElNRV9XQUlUYGAKIHN0YXRlLCBhbmQgY2FuJ3QgYmUgaW1tZWRpYXRlbHkgcmV1c2VkLgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc29ja2V0c2VydmVyLnJzdCBiL0RvYy9saWJyYXJ5L3NvY2tldHNlcnZlci5yc3QKaW5kZXggNTI4N2YxNy4uN2RjMGNjNyAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc29ja2V0c2VydmVyLnJzdAorKysgYi9Eb2MvbGlicmFyeS9zb2NrZXRzZXJ2ZXIucnN0CkBAIC0xNTQsOSArMTU0LDIxIEBACiAuLiBtZXRob2Q6OiBCYXNlU2VydmVyLnNlcnZlX2ZvcmV2ZXIocG9sbF9pbnRlcnZhbD0wLjUpCiAKICAgIEhhbmRsZSByZXF1ZXN0cyB1bnRpbCBhbiBleHBsaWNpdCA6bWV0aDpgc2h1dGRvd25gIHJlcXVlc3QuCi0gICBQb2xsIGZvciBzaHV0ZG93biBldmVyeSAqcG9sbF9pbnRlcnZhbCogc2Vjb25kcy4gSWdub3JlcyA6YXR0cjpgc2VsZi50aW1lb3V0YC4KLSAgIElmIHlvdSBuZWVkIHRvIGRvIHBlcmlvZGljIHRhc2tzLCBkbyB0aGVtIGluIGFub3RoZXIgdGhyZWFkLgorICAgUG9sbCBmb3Igc2h1dGRvd24gZXZlcnkgKnBvbGxfaW50ZXJ2YWwqIHNlY29uZHMuIElnbm9yZXMgOmF0dHI6YHNlbGYudGltZW91dGAuICBJdCBhbHNvIGNhbGxzCisgICA6bWV0aDpgc2VydmljZV9hY3Rpb25zYCB3aGljaCBtYXkgYmUgdXNlZCBieSBhIHN1YmNsYXNzIG9yIE1peGluIHRvIHByb3ZpZGUKKyAgIHZhcmlvdXMgY2xlYW51cCBhY3Rpb25zLiAgRm9yIGUuZy4gRm9ya2luZ01peGluIGNsYXNzIHVzZXMKKyAgIDptZXRoOmBzZXJ2aWNlX2FjdGlvbnNgIHRvIGNsZWFudXAgdGhlIHpvbWJpZSBjaGlsZCBwcm9jZXNzZXMuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAgQWRkZWQgc2VydmljZV9hY3Rpb25zIGNhbGwgdG8gdGhlIHNlcnZlX2ZvcmV2ZXIgbWV0aG9kLgorCisKKy4uIG1ldGhvZDo6IEJhc2VTZXJ2ZXIuc2VydmljZV9hY3Rpb25zKCkKKworICAgVGhpcyBpcyBjYWxsZWQgYnkgdGhlIHNlcnZlX2ZvcmV2ZXIgbG9vcC4gVGhpcyBtZXRob2QgaXMgY2FuIGJlIG92ZXJyaWRkZW4KKyAgIGJ5IE1peGluJ3MgdG8gYWRkIGNsZWFudXAgb3Igc2VydmljZSBzcGVjaWZpYyBhY3Rpb25zLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAogLi4gbWV0aG9kOjogQmFzZVNlcnZlci5zaHV0ZG93bigpCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3NxbGl0ZTMucnN0IGIvRG9jL2xpYnJhcnkvc3FsaXRlMy5yc3QKaW5kZXggYmFiYmZhNS4uMjQxODg5MiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc3FsaXRlMy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc3FsaXRlMy5yc3QKQEAgLTM2OSw2ICszNjksMjIgQEAKICAgIG1ldGhvZCB3aXRoIDpjb25zdDpgTm9uZWAgZm9yICpoYW5kbGVyKi4KIAogCisuLiBtZXRob2Q6OiBDb25uZWN0aW9uLnNldF90cmFjZV9jYWxsYmFjayh0cmFjZV9jYWxsYmFjaykKKworICAgUmVnaXN0ZXJzICp0cmFjZV9jYWxsYmFjayogdG8gYmUgY2FsbGVkIGZvciBlYWNoIFNRTCBzdGF0ZW1lbnQgdGhhdCBpcworICAgYWN0dWFsbHkgZXhlY3V0ZWQgYnkgdGhlIFNRTGl0ZSBiYWNrZW5kLgorCisgICBUaGUgb25seSBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGlzIHRoZSBzdGF0ZW1lbnQgKGFzIHN0cmluZykgdGhhdAorICAgaXMgYmVpbmcgZXhlY3V0ZWQuIFRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIGNhbGxiYWNrIGlzIGlnbm9yZWQuIE5vdGUgdGhhdAorICAgdGhlIGJhY2tlbmQgZG9lcyBub3Qgb25seSBydW4gc3RhdGVtZW50cyBwYXNzZWQgdG8gdGhlIDptZXRoOmBDdXJzb3IuZXhlY3V0ZWAKKyAgIG1ldGhvZHMuICBPdGhlciBzb3VyY2VzIGluY2x1ZGUgdGhlIHRyYW5zYWN0aW9uIG1hbmFnZW1lbnQgb2YgdGhlIFB5dGhvbgorICAgbW9kdWxlIGFuZCB0aGUgZXhlY3V0aW9uIG9mIHRyaWdnZXJzIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQgZGF0YWJhc2UuCisKKyAgIFBhc3NpbmcgOmNvbnN0OmBOb25lYCBhcyAqdHJhY2VfY2FsbGJhY2sqIHdpbGwgZGlzYWJsZSB0aGUgdHJhY2UgY2FsbGJhY2suCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIG1ldGhvZDo6IENvbm5lY3Rpb24uZW5hYmxlX2xvYWRfZXh0ZW5zaW9uKGVuYWJsZWQpCiAKICAgIFRoaXMgcm91dGluZSBhbGxvd3MvZGlzYWxsb3dzIHRoZSBTUUxpdGUgZW5naW5lIHRvIGxvYWQgU1FMaXRlIGV4dGVuc2lvbnMKQEAgLTQyMCwxMCArNDM2LDYgQEAKICAgIDptb2Q6YHNxbGl0ZTNgIG1vZHVsZSB3aWxsIHJldHVybiBVbmljb2RlIG9iamVjdHMgZm9yIGBgVEVYVGBgLiBJZiB5b3Ugd2FudCB0bwogICAgcmV0dXJuIGJ5dGVzdHJpbmdzIGluc3RlYWQsIHlvdSBjYW4gc2V0IGl0IHRvIDpjbGFzczpgYnl0ZXNgLgogCi0gICBGb3IgZWZmaWNpZW5jeSByZWFzb25zLCB0aGVyZSdzIGFsc28gYSB3YXkgdG8gcmV0dXJuIDpjbGFzczpgc3RyYCBvYmplY3RzCi0gICBvbmx5IGZvciBub24tQVNDSUkgZGF0YSwgYW5kIDpjbGFzczpgYnl0ZXNgIG90aGVyd2lzZS4gVG8gYWN0aXZhdGUgaXQsIHNldAotICAgdGhpcyBhdHRyaWJ1dGUgdG8gOmNvbnN0OmBzcWxpdGUzLk9wdGltaXplZFVuaWNvZGVgLgotCiAgICBZb3UgY2FuIGFsc28gc2V0IGl0IHRvIGFueSBvdGhlciBjYWxsYWJsZSB0aGF0IGFjY2VwdHMgYSBzaW5nbGUgYnl0ZXN0cmluZwogICAgcGFyYW1ldGVyIGFuZCByZXR1cm5zIHRoZSByZXN1bHRpbmcgb2JqZWN0LgogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zc2wucnN0IGIvRG9jL2xpYnJhcnkvc3NsLnJzdAppbmRleCA4Y2QwN2Q3Li5lMDhjMmI5IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9zc2wucnN0CisrKyBiL0RvYy9saWJyYXJ5L3NzbC5yc3QKQEAgLTUzLDkgKzUzLDY5IEBACiAgICAoY3VycmVudGx5IHByb3ZpZGVkIGJ5IHRoZSBPcGVuU1NMIGxpYnJhcnkpLiAgVGhpcyBzaWduaWZpZXMgc29tZQogICAgcHJvYmxlbSBpbiB0aGUgaGlnaGVyLWxldmVsIGVuY3J5cHRpb24gYW5kIGF1dGhlbnRpY2F0aW9uIGxheWVyIHRoYXQncwogICAgc3VwZXJpbXBvc2VkIG9uIHRoZSB1bmRlcmx5aW5nIG5ldHdvcmsgY29ubmVjdGlvbi4gIFRoaXMgZXJyb3IKLSAgIGlzIGEgc3VidHlwZSBvZiA6ZXhjOmBzb2NrZXQuZXJyb3JgLCB3aGljaCBpbiB0dXJuIGlzIGEgc3VidHlwZSBvZgotICAgOmV4YzpgSU9FcnJvcmAuICBUaGUgZXJyb3IgY29kZSBhbmQgbWVzc2FnZSBvZiA6ZXhjOmBTU0xFcnJvcmAgaW5zdGFuY2VzCi0gICBhcmUgcHJvdmlkZWQgYnkgdGhlIE9wZW5TU0wgbGlicmFyeS4KKyAgIGlzIGEgc3VidHlwZSBvZiA6ZXhjOmBPU0Vycm9yYC4gIFRoZSBlcnJvciBjb2RlIGFuZCBtZXNzYWdlIG9mCisgICA6ZXhjOmBTU0xFcnJvcmAgaW5zdGFuY2VzIGFyZSBwcm92aWRlZCBieSB0aGUgT3BlblNTTCBsaWJyYXJ5LgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgOmV4YzpgU1NMRXJyb3JgIHVzZWQgdG8gYmUgYSBzdWJ0eXBlIG9mIDpleGM6YHNvY2tldC5lcnJvcmAuCisKKyAgIC4uIGF0dHJpYnV0ZTo6IGxpYnJhcnkKKworICAgICAgQSBzdHJpbmcgbW5lbW9uaWMgZGVzaWduYXRpbmcgdGhlIE9wZW5TU0wgc3VibW9kdWxlIGluIHdoaWNoIHRoZSBlcnJvcgorICAgICAgb2NjdXJyZWQsIHN1Y2ggYXMgYGBTU0xgYCwgYGBQRU1gYCBvciBgYFg1MDlgYC4gIFRoZSByYW5nZSBvZiBwb3NzaWJsZQorICAgICAgdmFsdWVzIGRlcGVuZHMgb24gdGhlIE9wZW5TU0wgdmVyc2lvbi4KKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKyAgIC4uIGF0dHJpYnV0ZTo6IHJlYXNvbgorCisgICAgICBBIHN0cmluZyBtbmVtb25pYyBkZXNpZ25hdGluZyB0aGUgcmVhc29uIHRoaXMgZXJyb3Igb2NjdXJyZWQsIGZvcgorICAgICAgZXhhbXBsZSBgYENFUlRJRklDQVRFX1ZFUklGWV9GQUlMRURgYC4gIFRoZSByYW5nZSBvZiBwb3NzaWJsZQorICAgICAgdmFsdWVzIGRlcGVuZHMgb24gdGhlIE9wZW5TU0wgdmVyc2lvbi4KKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGV4Y2VwdGlvbjo6IFNTTFplcm9SZXR1cm5FcnJvcgorCisgICBBIHN1YmNsYXNzIG9mIDpleGM6YFNTTEVycm9yYCByYWlzZWQgd2hlbiB0cnlpbmcgdG8gcmVhZCBvciB3cml0ZSBhbmQKKyAgIHRoZSBTU0wgY29ubmVjdGlvbiBoYXMgYmVlbiBjbG9zZWQgY2xlYW5seS4gIE5vdGUgdGhhdCB0aGlzIGRvZXNuJ3QKKyAgIG1lYW4gdGhhdCB0aGUgdW5kZXJseWluZyB0cmFuc3BvcnQgKHJlYWQgVENQKSBoYXMgYmVlbiBjbG9zZWQuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisuLiBleGNlcHRpb246OiBTU0xXYW50UmVhZEVycm9yCisKKyAgIEEgc3ViY2xhc3Mgb2YgOmV4YzpgU1NMRXJyb3JgIHJhaXNlZCBieSBhIDpyZWY6YG5vbi1ibG9ja2luZyBTU0wgc29ja2V0CisgICA8c3NsLW5vbmJsb2NraW5nPmAgd2hlbiB0cnlpbmcgdG8gcmVhZCBvciB3cml0ZSBkYXRhLCBidXQgbW9yZSBkYXRhIG5lZWRzCisgICB0byBiZSByZWNlaXZlZCBvbiB0aGUgdW5kZXJseWluZyBUQ1AgdHJhbnNwb3J0IGJlZm9yZSB0aGUgcmVxdWVzdCBjYW4gYmUKKyAgIGZ1bGZpbGxlZC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGV4Y2VwdGlvbjo6IFNTTFdhbnRXcml0ZUVycm9yCisKKyAgIEEgc3ViY2xhc3Mgb2YgOmV4YzpgU1NMRXJyb3JgIHJhaXNlZCBieSBhIDpyZWY6YG5vbi1ibG9ja2luZyBTU0wgc29ja2V0CisgICA8c3NsLW5vbmJsb2NraW5nPmAgd2hlbiB0cnlpbmcgdG8gcmVhZCBvciB3cml0ZSBkYXRhLCBidXQgbW9yZSBkYXRhIG5lZWRzCisgICB0byBiZSBzZW50IG9uIHRoZSB1bmRlcmx5aW5nIFRDUCB0cmFuc3BvcnQgYmVmb3JlIHRoZSByZXF1ZXN0IGNhbiBiZQorICAgZnVsZmlsbGVkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworLi4gZXhjZXB0aW9uOjogU1NMU3lzY2FsbEVycm9yCisKKyAgIEEgc3ViY2xhc3Mgb2YgOmV4YzpgU1NMRXJyb3JgIHJhaXNlZCB3aGVuIGEgc3lzdGVtIGVycm9yIHdhcyBlbmNvdW50ZXJlZAorICAgd2hpbGUgdHJ5aW5nIHRvIGZ1bGZpbGwgYW4gb3BlcmF0aW9uIG9uIGEgU1NMIHNvY2tldC4gIFVuZm9ydHVuYXRlbHksCisgICB0aGVyZSBpcyBubyBlYXN5IHdheSB0byBpbnNwZWN0IHRoZSBvcmlnaW5hbCBlcnJubyBudW1iZXIuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisuLiBleGNlcHRpb246OiBTU0xFT0ZFcnJvcgorCisgICBBIHN1YmNsYXNzIG9mIDpleGM6YFNTTEVycm9yYCByYWlzZWQgd2hlbiB0aGUgU1NMIGNvbm5lY3Rpb24gaGFzIGJlZW4KKyAgIHRlcm1pbmF0ZWQgYWJydXB0bHkuICBHZW5lcmFsbHksIHlvdSBzaG91bGRuJ3QgdHJ5IHRvIHJldXNlIHRoZSB1bmRlcmx5aW5nCisgICB0cmFuc3BvcnQgd2hlbiB0aGlzIGVycm9yIGlzIGVuY291bnRlcmVkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAogLi4gZXhjZXB0aW9uOjogQ2VydGlmaWNhdGVFcnJvcgogCkBAIC0xNjEsNiArMjIxLDM1IEBACiBSYW5kb20gZ2VuZXJhdGlvbgogXl5eXl5eXl5eXl5eXl5eXl4KIAorLi4gZnVuY3Rpb246OiBSQU5EX2J5dGVzKG51bSkKKworICAgUmV0dXJucyAqbnVtKiBjcnlwdG9ncmFwaGljYWxseSBzdHJvbmcgcHNldWRvLXJhbmRvbSBieXRlcy4gUmFpc2VzIGFuCisgICA6Y2xhc3M6YFNTTEVycm9yYCBpZiB0aGUgUFJORyBoYXMgbm90IGJlZW4gc2VlZGVkIHdpdGggZW5vdWdoIGRhdGEgb3IgaWYgdGhlCisgICBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBSQU5EIG1ldGhvZC4gOmZ1bmM6YFJBTkRfc3RhdHVzYAorICAgY2FuIGJlIHVzZWQgdG8gY2hlY2sgdGhlIHN0YXR1cyBvZiB0aGUgUFJORyBhbmQgOmZ1bmM6YFJBTkRfYWRkYCBjYW4gYmUgdXNlZAorICAgdG8gc2VlZCB0aGUgUFJORy4KKworICAgUmVhZCB0aGUgV2lraXBlZGlhIGFydGljbGUsIGBDcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgcHNldWRvcmFuZG9tIG51bWJlcgorICAgZ2VuZXJhdG9yIChDU1BSTkcpCisgICA8aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9DcnlwdG9ncmFwaGljYWxseV9zZWN1cmVfcHNldWRvcmFuZG9tX251bWJlcl9nZW5lcmF0b3I+YF8sCisgICB0byBnZXQgdGhlIHJlcXVpcmVtZW50cyBvZiBhIGNyeXB0b2dyYXBoaWNhbGx5IGdlbmVyYXRvci4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGZ1bmN0aW9uOjogUkFORF9wc2V1ZG9fYnl0ZXMobnVtKQorCisgICBSZXR1cm5zIChieXRlcywgaXNfY3J5cHRvZ3JhcGhpYyk6IGJ5dGVzIGFyZSAqbnVtKiBwc2V1ZG8tcmFuZG9tIGJ5dGVzLAorICAgaXNfY3J5cHRvZ3JhcGhpYyBpcyBUcnVlIGlmIHRoZSBieXRlcyBnZW5lcmF0ZWQgYXJlIGNyeXB0b2dyYXBoaWNhbGx5CisgICBzdHJvbmcuIFJhaXNlcyBhbiA6Y2xhc3M6YFNTTEVycm9yYCBpZiB0aGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlCisgICBjdXJyZW50IFJBTkQgbWV0aG9kLgorCisgICBHZW5lcmF0ZWQgcHNldWRvLXJhbmRvbSBieXRlIHNlcXVlbmNlcyB3aWxsIGJlIHVuaXF1ZSBpZiB0aGV5IGFyZSBvZgorICAgc3VmZmljaWVudCBsZW5ndGgsIGJ1dCBhcmUgbm90IG5lY2Vzc2FyaWx5IHVucHJlZGljdGFibGUuIFRoZXkgY2FuIGJlIHVzZWQKKyAgIGZvciBub24tY3J5cHRvZ3JhcGhpYyBwdXJwb3NlcyBhbmQgZm9yIGNlcnRhaW4gcHVycG9zZXMgaW4gY3J5cHRvZ3JhcGhpYworICAgcHJvdG9jb2xzLCBidXQgdXN1YWxseSBub3QgZm9yIGtleSBnZW5lcmF0aW9uIGV0Yy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIC4uIGZ1bmN0aW9uOjogUkFORF9zdGF0dXMoKQogCiAgICBSZXR1cm5zIFRydWUgaWYgdGhlIFNTTCBwc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3IgaGFzIGJlZW4gc2VlZGVkIHdpdGgKQEAgLTE3MCw3ICsyNTksNyBAQAogCiAuLiBmdW5jdGlvbjo6IFJBTkRfZWdkKHBhdGgpCiAKLSAgIElmIHlvdSBhcmUgcnVubmluZyBhbiBlbnRyb3B5LWdhdGhlcmluZyBkYWVtb24gKEVHRCkgc29tZXdoZXJlLCBhbmQgYGBwYXRoYGAKKyAgIElmIHlvdSBhcmUgcnVubmluZyBhbiBlbnRyb3B5LWdhdGhlcmluZyBkYWVtb24gKEVHRCkgc29tZXdoZXJlLCBhbmQgKnBhdGgqCiAgICBpcyB0aGUgcGF0aG5hbWUgb2YgYSBzb2NrZXQgY29ubmVjdGlvbiBvcGVuIHRvIGl0LCB0aGlzIHdpbGwgcmVhZCAyNTYgYnl0ZXMKICAgIG9mIHJhbmRvbW5lc3MgZnJvbSB0aGUgc29ja2V0LCBhbmQgYWRkIGl0IHRvIHRoZSBTU0wgcHNldWRvLXJhbmRvbSBudW1iZXIKICAgIGdlbmVyYXRvciB0byBpbmNyZWFzZSB0aGUgc2VjdXJpdHkgb2YgZ2VuZXJhdGVkIHNlY3JldCBrZXlzLiAgVGhpcyBpcwpAQCAtMTgxLDggKzI3MCw4IEBACiAKIC4uIGZ1bmN0aW9uOjogUkFORF9hZGQoYnl0ZXMsIGVudHJvcHkpCiAKLSAgIE1peGVzIHRoZSBnaXZlbiBgYGJ5dGVzYGAgaW50byB0aGUgU1NMIHBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvci4gIFRoZQotICAgcGFyYW1ldGVyIGBgZW50cm9weWBgIChhIGZsb2F0KSBpcyBhIGxvd2VyIGJvdW5kIG9uIHRoZSBlbnRyb3B5IGNvbnRhaW5lZCBpbgorICAgTWl4ZXMgdGhlIGdpdmVuICpieXRlcyogaW50byB0aGUgU1NMIHBzZXVkby1yYW5kb20gbnVtYmVyIGdlbmVyYXRvci4gIFRoZQorICAgcGFyYW1ldGVyICplbnRyb3B5KiAoYSBmbG9hdCkgaXMgYSBsb3dlciBib3VuZCBvbiB0aGUgZW50cm9weSBjb250YWluZWQgaW4KICAgIHN0cmluZyAoc28geW91IGNhbiBhbHdheXMgdXNlIDpjb25zdDpgMC4wYCkuICBTZWUgOnJmYzpgMTc1MGAgZm9yIG1vcmUKICAgIGluZm9ybWF0aW9uIG9uIHNvdXJjZXMgb2YgZW50cm9weS4KIApAQCAtMjM4LDYgKzMyNyw5IEBACiAgICB3aWxsIGF0dGVtcHQgdG8gdmFsaWRhdGUgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBhZ2FpbnN0IHRoYXQgc2V0IG9mIHJvb3QKICAgIGNlcnRpZmljYXRlcywgYW5kIHdpbGwgZmFpbCBpZiB0aGUgdmFsaWRhdGlvbiBhdHRlbXB0IGZhaWxzLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhpcyBmdW5jdGlvbiBpcyBub3cgSVB2Ni1jb21wYXRpYmxlLgorCiAuLiBmdW5jdGlvbjo6IERFUl9jZXJ0X3RvX1BFTV9jZXJ0KERFUl9jZXJ0X2J5dGVzKQogCiAgICBHaXZlbiBhIGNlcnRpZmljYXRlIGFzIGEgREVSLWVuY29kZWQgYmxvYiBvZiBieXRlcywgcmV0dXJucyBhIFBFTS1lbmNvZGVkCkBAIC0zNDUsNiArNDM3LDQ2IEBACiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCisuLiBkYXRhOjogT1BfQ0lQSEVSX1NFUlZFUl9QUkVGRVJFTkNFCisKKyAgIFVzZSB0aGUgc2VydmVyJ3MgY2lwaGVyIG9yZGVyaW5nIHByZWZlcmVuY2UsIHJhdGhlciB0aGFuIHRoZSBjbGllbnQncy4KKyAgIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gY2xpZW50IHNvY2tldHMgYW5kIFNTTHYyIHNlcnZlciBzb2NrZXRzLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworLi4gZGF0YTo6IE9QX1NJTkdMRV9ESF9VU0UKKworICAgUHJldmVudHMgcmUtdXNlIG9mIHRoZSBzYW1lIERIIGtleSBmb3IgZGlzdGluY3QgU1NMIHNlc3Npb25zLiAgVGhpcworICAgaW1wcm92ZXMgZm9yd2FyZCBzZWNyZWN5IGJ1dCByZXF1aXJlcyBtb3JlIGNvbXB1dGF0aW9uYWwgcmVzb3VyY2VzLgorICAgVGhpcyBvcHRpb24gb25seSBhcHBsaWVzIHRvIHNlcnZlciBzb2NrZXRzLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworLi4gZGF0YTo6IE9QX1NJTkdMRV9FQ0RIX1VTRQorCisgICBQcmV2ZW50cyByZS11c2Ugb2YgdGhlIHNhbWUgRUNESCBrZXkgZm9yIGRpc3RpbmN0IFNTTCBzZXNzaW9ucy4gIFRoaXMKKyAgIGltcHJvdmVzIGZvcndhcmQgc2VjcmVjeSBidXQgcmVxdWlyZXMgbW9yZSBjb21wdXRhdGlvbmFsIHJlc291cmNlcy4KKyAgIFRoaXMgb3B0aW9uIG9ubHkgYXBwbGllcyB0byBzZXJ2ZXIgc29ja2V0cy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGRhdGE6OiBPUF9OT19DT01QUkVTU0lPTgorCisgICBEaXNhYmxlIGNvbXByZXNzaW9uIG9uIHRoZSBTU0wgY2hhbm5lbC4gIFRoaXMgaXMgdXNlZnVsIGlmIHRoZSBhcHBsaWNhdGlvbgorICAgcHJvdG9jb2wgc3VwcG9ydHMgaXRzIG93biBjb21wcmVzc2lvbiBzY2hlbWUuCisKKyAgIFRoaXMgb3B0aW9uIGlzIG9ubHkgYXZhaWxhYmxlIHdpdGggT3BlblNTTCAxLjAuMCBhbmQgbGF0ZXIuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisuLiBkYXRhOjogSEFTX0VDREgKKworICAgV2hldGhlciB0aGUgT3BlblNTTCBsaWJyYXJ5IGhhcyBidWlsdC1pbiBzdXBwb3J0IGZvciBFbGxpcHRpYyBDdXJ2ZS1iYXNlZAorICAgRGlmZmllLUhlbGxtYW4ga2V5IGV4Y2hhbmdlLiAgVGhpcyBzaG91bGQgYmUgdHJ1ZSB1bmxlc3MgdGhlIGZlYXR1cmUgd2FzCisgICBleHBsaWNpdGx5IGRpc2FibGVkIGJ5IHRoZSBkaXN0cmlidXRvci4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIC4uIGRhdGE6OiBIQVNfU05JCiAKICAgIFdoZXRoZXIgdGhlIE9wZW5TU0wgbGlicmFyeSBoYXMgYnVpbHQtaW4gc3VwcG9ydCBmb3IgdGhlICpTZXJ2ZXIgTmFtZQpAQCAtMzU0LDYgKzQ4NiwyMyBAQAogCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAorLi4gZGF0YTo6IEhBU19OUE4KKworICAgV2hldGhlciB0aGUgT3BlblNTTCBsaWJyYXJ5IGhhcyBidWlsdC1pbiBzdXBwb3J0IGZvciAqTmV4dCBQcm90b2NvbAorICAgTmVnb3RpYXRpb24qIGFzIGRlc2NyaWJlZCBpbiB0aGUgYE5QTiBkcmFmdCBzcGVjaWZpY2F0aW9uCisgICA8aHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtYWdsLXRscy1uZXh0cHJvdG9uZWc+YF8uIFdoZW4gdHJ1ZSwKKyAgIHlvdSBjYW4gdXNlIHRoZSA6bWV0aDpgU1NMQ29udGV4dC5zZXRfbnBuX3Byb3RvY29sc2AgbWV0aG9kIHRvIGFkdmVydGlzZQorICAgd2hpY2ggcHJvdG9jb2xzIHlvdSB3YW50IHRvIHN1cHBvcnQuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisuLiBkYXRhOjogQ0hBTk5FTF9CSU5ESU5HX1RZUEVTCisKKyAgIExpc3Qgb2Ygc3VwcG9ydGVkIFRMUyBjaGFubmVsIGJpbmRpbmcgdHlwZXMuICBTdHJpbmdzIGluIHRoaXMgbGlzdAorICAgY2FuIGJlIHVzZWQgYXMgYXJndW1lbnRzIHRvIDptZXRoOmBTU0xTb2NrZXQuZ2V0X2NoYW5uZWxfYmluZGluZ2AuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAuLiBkYXRhOjogT1BFTlNTTF9WRVJTSU9OCiAKICAgIFRoZSB2ZXJzaW9uIHN0cmluZyBvZiB0aGUgT3BlblNTTCBsaWJyYXJ5IGxvYWRlZCBieSB0aGUgaW50ZXJwcmV0ZXI6OgpAQCAtNDYzLDYgKzYxMiwzNyBAQAogICAgdmVyc2lvbiBvZiB0aGUgU1NMIHByb3RvY29sIHRoYXQgZGVmaW5lcyBpdHMgdXNlLCBhbmQgdGhlIG51bWJlciBvZiBzZWNyZXQKICAgIGJpdHMgYmVpbmcgdXNlZC4gIElmIG5vIGNvbm5lY3Rpb24gaGFzIGJlZW4gZXN0YWJsaXNoZWQsIHJldHVybnMgYGBOb25lYGAuCiAKKy4uIG1ldGhvZDo6IFNTTFNvY2tldC5jb21wcmVzc2lvbigpCisKKyAgIFJldHVybiB0aGUgY29tcHJlc3Npb24gYWxnb3JpdGhtIGJlaW5nIHVzZWQgYXMgYSBzdHJpbmcsIG9yIGBgTm9uZWBgCisgICBpZiB0aGUgY29ubmVjdGlvbiBpc24ndCBjb21wcmVzc2VkLgorCisgICBJZiB0aGUgaGlnaGVyLWxldmVsIHByb3RvY29sIHN1cHBvcnRzIGl0cyBvd24gY29tcHJlc3Npb24gbWVjaGFuaXNtLAorICAgeW91IGNhbiB1c2UgOmRhdGE6YE9QX05PX0NPTVBSRVNTSU9OYCB0byBkaXNhYmxlIFNTTC1sZXZlbCBjb21wcmVzc2lvbi4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIG1ldGhvZDo6IFNTTFNvY2tldC5nZXRfY2hhbm5lbF9iaW5kaW5nKGNiX3R5cGU9InRscy11bmlxdWUiKQorCisgICBHZXQgY2hhbm5lbCBiaW5kaW5nIGRhdGEgZm9yIGN1cnJlbnQgY29ubmVjdGlvbiwgYXMgYSBieXRlcyBvYmplY3QuICBSZXR1cm5zCisgICBgYE5vbmVgYCBpZiBub3QgY29ubmVjdGVkIG9yIHRoZSBoYW5kc2hha2UgaGFzIG5vdCBiZWVuIGNvbXBsZXRlZC4KKworICAgVGhlICpjYl90eXBlKiBwYXJhbWV0ZXIgYWxsb3cgc2VsZWN0aW9uIG9mIHRoZSBkZXNpcmVkIGNoYW5uZWwgYmluZGluZworICAgdHlwZS4gVmFsaWQgY2hhbm5lbCBiaW5kaW5nIHR5cGVzIGFyZSBsaXN0ZWQgaW4gdGhlCisgICA6ZGF0YTpgQ0hBTk5FTF9CSU5ESU5HX1RZUEVTYCBsaXN0LiAgQ3VycmVudGx5IG9ubHkgdGhlICd0bHMtdW5pcXVlJyBjaGFubmVsCisgICBiaW5kaW5nLCBkZWZpbmVkIGJ5IDpyZmM6YDU5MjlgLCBpcyBzdXBwb3J0ZWQuICA6ZXhjOmBWYWx1ZUVycm9yYCB3aWxsIGJlCisgICByYWlzZWQgaWYgYW4gdW5zdXBwb3J0ZWQgY2hhbm5lbCBiaW5kaW5nIHR5cGUgaXMgcmVxdWVzdGVkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworLi4gbWV0aG9kOjogU1NMU29ja2V0LnNlbGVjdGVkX25wbl9wcm90b2NvbCgpCisKKyAgIFJldHVybnMgdGhlIHByb3RvY29sIHRoYXQgd2FzIHNlbGVjdGVkIGR1cmluZyB0aGUgVExTL1NTTCBoYW5kc2hha2UuIElmCisgICA6bWV0aDpgU1NMQ29udGV4dC5zZXRfbnBuX3Byb3RvY29sc2Agd2FzIG5vdCBjYWxsZWQsIG9yIGlmIHRoZSBvdGhlciBwYXJ0eQorICAgZG9lcyBub3Qgc3VwcG9ydCBOUE4sIG9yIGlmIHRoZSBoYW5kc2hha2UgaGFzIG5vdCB5ZXQgaGFwcGVuZWQsIHRoaXMgd2lsbAorICAgcmV0dXJuIGBgTm9uZWBgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKIAogLi4gbWV0aG9kOjogU1NMU29ja2V0LnVud3JhcCgpCiAKQEAgLTQ3Miw3ICs2NTIsNiBAQAogICAgcmV0dXJuZWQgc29ja2V0IHNob3VsZCBhbHdheXMgYmUgdXNlZCBmb3IgZnVydGhlciBjb21tdW5pY2F0aW9uIHdpdGggdGhlCiAgICBvdGhlciBzaWRlIG9mIHRoZSBjb25uZWN0aW9uLCByYXRoZXIgdGhhbiB0aGUgb3JpZ2luYWwgc29ja2V0LgogCi0KIC4uIGF0dHJpYnV0ZTo6IFNTTFNvY2tldC5jb250ZXh0CiAKICAgIFRoZSA6Y2xhc3M6YFNTTENvbnRleHRgIG9iamVjdCB0aGlzIFNTTCBzb2NrZXQgaXMgdGllZCB0by4gIElmIHRoZSBTU0wKQEAgLTUwMiw3ICs2ODEsNyBAQAogCiA6Y2xhc3M6YFNTTENvbnRleHRgIG9iamVjdHMgaGF2ZSB0aGUgZm9sbG93aW5nIG1ldGhvZHMgYW5kIGF0dHJpYnV0ZXM6CiAKLS4uIG1ldGhvZDo6IFNTTENvbnRleHQubG9hZF9jZXJ0X2NoYWluKGNlcnRmaWxlLCBrZXlmaWxlPU5vbmUpCisuLiBtZXRob2Q6OiBTU0xDb250ZXh0LmxvYWRfY2VydF9jaGFpbihjZXJ0ZmlsZSwga2V5ZmlsZT1Ob25lLCBwYXNzd29yZD1Ob25lKQogCiAgICBMb2FkIGEgcHJpdmF0ZSBrZXkgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGNlcnRpZmljYXRlLiAgVGhlICpjZXJ0ZmlsZSoKICAgIHN0cmluZyBtdXN0IGJlIHRoZSBwYXRoIHRvIGEgc2luZ2xlIGZpbGUgaW4gUEVNIGZvcm1hdCBjb250YWluaW5nIHRoZQpAQCAtNTEzLDkgKzY5MiwyNSBAQAogICAgOnJlZjpgc3NsLWNlcnRpZmljYXRlc2AgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaG93IHRoZSBjZXJ0aWZpY2F0ZQogICAgaXMgc3RvcmVkIGluIHRoZSAqY2VydGZpbGUqLgogCisgICBUaGUgKnBhc3N3b3JkKiBhcmd1bWVudCBtYXkgYmUgYSBmdW5jdGlvbiB0byBjYWxsIHRvIGdldCB0aGUgcGFzc3dvcmQgZm9yCisgICBkZWNyeXB0aW5nIHRoZSBwcml2YXRlIGtleS4gIEl0IHdpbGwgb25seSBiZSBjYWxsZWQgaWYgdGhlIHByaXZhdGUga2V5IGlzCisgICBlbmNyeXB0ZWQgYW5kIGEgcGFzc3dvcmQgaXMgbmVjZXNzYXJ5LiAgSXQgd2lsbCBiZSBjYWxsZWQgd2l0aCBubyBhcmd1bWVudHMsCisgICBhbmQgaXQgc2hvdWxkIHJldHVybiBhIHN0cmluZywgYnl0ZXMsIG9yIGJ5dGVhcnJheS4gIElmIHRoZSByZXR1cm4gdmFsdWUgaXMKKyAgIGEgc3RyaW5nIGl0IHdpbGwgYmUgZW5jb2RlZCBhcyBVVEYtOCBiZWZvcmUgdXNpbmcgaXQgdG8gZGVjcnlwdCB0aGUga2V5LgorICAgQWx0ZXJuYXRpdmVseSBhIHN0cmluZywgYnl0ZXMsIG9yIGJ5dGVhcnJheSB2YWx1ZSBtYXkgYmUgc3VwcGxpZWQgZGlyZWN0bHkKKyAgIGFzIHRoZSAqcGFzc3dvcmQqIGFyZ3VtZW50LiAgSXQgd2lsbCBiZSBpZ25vcmVkIGlmIHRoZSBwcml2YXRlIGtleSBpcyBub3QKKyAgIGVuY3J5cHRlZCBhbmQgbm8gcGFzc3dvcmQgaXMgbmVlZGVkLgorCisgICBJZiB0aGUgKnBhc3N3b3JkKiBhcmd1bWVudCBpcyBub3Qgc3BlY2lmaWVkIGFuZCBhIHBhc3N3b3JkIGlzIHJlcXVpcmVkLAorICAgT3BlblNTTCdzIGJ1aWx0LWluIHBhc3N3b3JkIHByb21wdGluZyBtZWNoYW5pc20gd2lsbCBiZSB1c2VkIHRvCisgICBpbnRlcmFjdGl2ZWx5IHByb21wdCB0aGUgdXNlciBmb3IgYSBwYXNzd29yZC4KKwogICAgQW4gOmNsYXNzOmBTU0xFcnJvcmAgaXMgcmFpc2VkIGlmIHRoZSBwcml2YXRlIGtleSBkb2Vzbid0CiAgICBtYXRjaCB3aXRoIHRoZSBjZXJ0aWZpY2F0ZS4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIE5ldyBvcHRpb25hbCBhcmd1bWVudCAqcGFzc3dvcmQqLgorCiAuLiBtZXRob2Q6OiBTU0xDb250ZXh0LmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhjYWZpbGU9Tm9uZSwgY2FwYXRoPU5vbmUpCiAKICAgIExvYWQgYSBzZXQgb2YgImNlcnRpZmljYXRpb24gYXV0aG9yaXR5IiAoQ0EpIGNlcnRpZmljYXRlcyB1c2VkIHRvIHZhbGlkYXRlCkBAIC01NTQsNiArNzQ5LDUzIEBACiAgICAgICB3aGVuIGNvbm5lY3RlZCwgdGhlIDptZXRoOmBTU0xTb2NrZXQuY2lwaGVyYCBtZXRob2Qgb2YgU1NMIHNvY2tldHMgd2lsbAogICAgICAgZ2l2ZSB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGNpcGhlci4KIAorLi4gbWV0aG9kOjogU1NMQ29udGV4dC5zZXRfbnBuX3Byb3RvY29scyhwcm90b2NvbHMpCisKKyAgIFNwZWNpZnkgd2hpY2ggcHJvdG9jb2xzIHRoZSBzb2NrZXQgc2hvdWxkIGF2ZXJ0aXNlIGR1cmluZyB0aGUgU1NML1RMUworICAgaGFuZHNoYWtlLiBJdCBzaG91bGQgYmUgYSBsaXN0IG9mIHN0cmluZ3MsIGxpa2UgYGBbJ2h0dHAvMS4xJywgJ3NwZHkvMiddYGAsCisgICBvcmRlcmVkIGJ5IHByZWZlcmVuY2UuIFRoZSBzZWxlY3Rpb24gb2YgYSBwcm90b2NvbCB3aWxsIGhhcHBlbiBkdXJpbmcgdGhlCisgICBoYW5kc2hha2UsIGFuZCB3aWxsIHBsYXkgb3V0IGFjY29yZGluZyB0byB0aGUgYE5QTiBkcmFmdCBzcGVjaWZpY2F0aW9uCisgICA8aHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtYWdsLXRscy1uZXh0cHJvdG9uZWc+YF8uIEFmdGVyIGEKKyAgIHN1Y2Nlc3NmdWwgaGFuZHNoYWtlLCB0aGUgOm1ldGg6YFNTTFNvY2tldC5zZWxlY3RlZF9ucG5fcHJvdG9jb2xgIG1ldGhvZCB3aWxsCisgICByZXR1cm4gdGhlIGFncmVlZC11cG9uIHByb3RvY29sLgorCisgICBUaGlzIG1ldGhvZCB3aWxsIHJhaXNlIDpleGM6YE5vdEltcGxlbWVudGVkRXJyb3JgIGlmIDpkYXRhOmBIQVNfTlBOYCBpcworICAgRmFsc2UuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisuLiBtZXRob2Q6OiBTU0xDb250ZXh0LmxvYWRfZGhfcGFyYW1zKGRoZmlsZSkKKworICAgTG9hZCB0aGUga2V5IGdlbmVyYXRpb24gcGFyYW1ldGVycyBmb3IgRGlmZmllLUhlbG1hbiAoREgpIGtleSBleGNoYW5nZS4KKyAgIFVzaW5nIERIIGtleSBleGNoYW5nZSBpbXByb3ZlcyBmb3J3YXJkIHNlY3JlY3kgYXQgdGhlIGV4cGVuc2Ugb2YKKyAgIGNvbXB1dGF0aW9uYWwgcmVzb3VyY2VzIChib3RoIG9uIHRoZSBzZXJ2ZXIgYW5kIG9uIHRoZSBjbGllbnQpLgorICAgVGhlICpkaGZpbGUqIHBhcmFtZXRlciBzaG91bGQgYmUgdGhlIHBhdGggdG8gYSBmaWxlIGNvbnRhaW5pbmcgREgKKyAgIHBhcmFtZXRlcnMgaW4gUEVNIGZvcm1hdC4KKworICAgVGhpcyBzZXR0aW5nIGRvZXNuJ3QgYXBwbHkgdG8gY2xpZW50IHNvY2tldHMuICBZb3UgY2FuIGFsc28gdXNlIHRoZQorICAgOmRhdGE6YE9QX1NJTkdMRV9ESF9VU0VgIG9wdGlvbiB0byBmdXJ0aGVyIGltcHJvdmUgc2VjdXJpdHkuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisuLiBtZXRob2Q6OiBTU0xDb250ZXh0LnNldF9lY2RoX2N1cnZlKGN1cnZlX25hbWUpCisKKyAgIFNldCB0aGUgY3VydmUgbmFtZSBmb3IgRWxsaXB0aWMgQ3VydmUtYmFzZWQgRGlmZmllLUhlbGxtYW4gKEVDREgpIGtleQorICAgZXhjaGFuZ2UuICBFQ0RIIGlzIHNpZ25pZmljYW50bHkgZmFzdGVyIHRoYW4gcmVndWxhciBESCB3aGlsZSBhcmd1YWJseQorICAgYXMgc2VjdXJlLiAgVGhlICpjdXJ2ZV9uYW1lKiBwYXJhbWV0ZXIgc2hvdWxkIGJlIGEgc3RyaW5nIGRlc2NyaWJpbmcKKyAgIGEgd2VsbC1rbm93biBlbGxpcHRpYyBjdXJ2ZSwgZm9yIGV4YW1wbGUgYGBwcmltZTI1NnYxYGAgZm9yIGEgd2lkZWx5CisgICBzdXBwb3J0ZWQgY3VydmUuCisKKyAgIFRoaXMgc2V0dGluZyBkb2Vzbid0IGFwcGx5IHRvIGNsaWVudCBzb2NrZXRzLiAgWW91IGNhbiBhbHNvIHVzZSB0aGUKKyAgIDpkYXRhOmBPUF9TSU5HTEVfRUNESF9VU0VgIG9wdGlvbiB0byBmdXJ0aGVyIGltcHJvdmUgc2VjdXJpdHkuCisKKyAgIFRoaXMgbWV0aG9kIGlzIG5vdCBhdmFpbGFibGUgaWYgOmRhdGE6YEhBU19FQ0RIYCBpcyBGYWxzZS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKyAgIC4uIHNlZWFsc286OgorICAgICAgYFNTTC9UTFMgJiBQZXJmZWN0IEZvcndhcmQgU2VjcmVjeSA8aHR0cDovL3ZpbmNlbnQuYmVybmF0LmltL2VuL2Jsb2cvMjAxMS1zc2wtcGVyZmVjdC1mb3J3YXJkLXNlY3JlY3kuaHRtbD5gXworICAgICAgICAgVmluY2VudCBCZXJuYXQuCisKIC4uIG1ldGhvZDo6IFNTTENvbnRleHQud3JhcF9zb2NrZXQoc29jaywgc2VydmVyX3NpZGU9RmFsc2UsIFwKICAgICAgIGRvX2hhbmRzaGFrZV9vbl9jb25uZWN0PVRydWUsIHN1cHByZXNzX3JhZ2dlZF9lb2ZzPVRydWUsIFwKICAgICAgIHNlcnZlcl9ob3N0bmFtZT1Ob25lKQpAQCAtOTY4LDEzICsxMjEwLDEwIEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNvY2suZG9faGFuZHNoYWtlKCkKICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGV4Y2VwdCBzc2wuU1NMRXJyb3IgYXMgZXJyOgotICAgICAgICAgICAgaWYgZXJyLmFyZ3NbMF0gPT0gc3NsLlNTTF9FUlJPUl9XQU5UX1JFQUQ6Ci0gICAgICAgICAgICAgICAgc2VsZWN0LnNlbGVjdChbc29ja10sIFtdLCBbXSkKLSAgICAgICAgICAgIGVsaWYgZXJyLmFyZ3NbMF0gPT0gc3NsLlNTTF9FUlJPUl9XQU5UX1dSSVRFOgotICAgICAgICAgICAgICAgIHNlbGVjdC5zZWxlY3QoW10sIFtzb2NrXSwgW10pCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdCBzc2wuU1NMV2FudFJlYWRFcnJvcjoKKyAgICAgICAgICAgIHNlbGVjdC5zZWxlY3QoW3NvY2tdLCBbXSwgW10pCisgICAgICAgIGV4Y2VwdCBzc2wuU1NMV2FudFdyaXRlRXJyb3I6CisgICAgICAgICAgICBzZWxlY3Quc2VsZWN0KFtdLCBbc29ja10sIFtdKQogCiAKIC4uIF9zc2wtc2VjdXJpdHk6CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zdGF0LnJzdCBiL0RvYy9saWJyYXJ5L3N0YXQucnN0CmluZGV4IDdkZTk4YjYuLmY0N2Y0NjQgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3N0YXQucnN0CisrKyBiL0RvYy9saWJyYXJ5L3N0YXQucnN0CkBAIC0xMDQsNiArMTA0LDE2IEBACiAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgICAgIHdhbGt0cmVlKHN5cy5hcmd2WzFdLCB2aXNpdGZpbGUpCiAKK0FuIGFkZGl0aW9uYWwgdXRpbGl0eSBmdW5jdGlvbiBpcyBwcm92aWRlZCB0byBjb3ZlcnQgYSBmaWxlJ3MgbW9kZSBpbiBhIGh1bWFuCityZWFkYWJsZSBzdHJpbmc6CisKKy4uIGZ1bmN0aW9uOjogZmlsZW1vZGUobW9kZSkKKworICAgQ29udmVydCBhIGZpbGUncyBtb2RlIHRvIGEgc3RyaW5nIG9mIHRoZSBmb3JtICctcnd4cnd4cnd4Jy4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogQWxsIHRoZSB2YXJpYWJsZXMgYmVsb3cgYXJlIHNpbXBseSBzeW1ib2xpYyBpbmRleGVzIGludG8gdGhlIDEwLXR1cGxlIHJldHVybmVkCiBieSA6ZnVuYzpgb3Muc3RhdGAsIDpmdW5jOmBvcy5mc3RhdGAgb3IgOmZ1bmM6YG9zLmxzdGF0YC4KIApAQCAtMzQ0LDQgKzM1NCwzIEBACiAgICBUaGUgZmlsZSBpcyBhIHNuYXBzaG90IGZpbGUuCiAKIFNlZSB0aGUgXCpCU0Qgb3IgTWFjIE9TIHN5c3RlbXMgbWFuIHBhZ2UgOm1hbnBhZ2U6YGNoZmxhZ3MoMilgIGZvciBtb3JlIGluZm9ybWF0aW9uLgotCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zdGR0eXBlcy5yc3QgYi9Eb2MvbGlicmFyeS9zdGR0eXBlcy5yc3QKaW5kZXggYjIzODFlNi4uOGRjNThlOSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc3RkdHlwZXMucnN0CisrKyBiL0RvYy9saWJyYXJ5L3N0ZHR5cGVzLnJzdApAQCAtMTUsNiArMTUsMTAgQEAKIFRoZSBwcmluY2lwYWwgYnVpbHQtaW4gdHlwZXMgYXJlIG51bWVyaWNzLCBzZXF1ZW5jZXMsIG1hcHBpbmdzLCBjbGFzc2VzLAogaW5zdGFuY2VzIGFuZCBleGNlcHRpb25zLgogCitTb21lIGNvbGxlY3Rpb24gY2xhc3NlcyBhcmUgbXV0YWJsZS4gIFRoZSBtZXRob2RzIHRoYXQgYWRkLCBzdWJ0cmFjdCwgb3IKK3JlYXJyYW5nZSB0aGVpciBtZW1iZXJzIGluIHBsYWNlLCBhbmQgZG9uJ3QgcmV0dXJuIGEgc3BlY2lmaWMgaXRlbSwgbmV2ZXIgcmV0dXJuCit0aGUgY29sbGVjdGlvbiBpbnN0YW5jZSBpdHNlbGYgYnV0IGBgTm9uZWBgLgorCiBTb21lIG9wZXJhdGlvbnMgYXJlIHN1cHBvcnRlZCBieSBzZXZlcmFsIG9iamVjdCB0eXBlczsgaW4gcGFydGljdWxhciwKIHByYWN0aWNhbGx5IGFsbCBvYmplY3RzIGNhbiBiZSBjb21wYXJlZCwgdGVzdGVkIGZvciB0cnV0aCB2YWx1ZSwgYW5kIGNvbnZlcnRlZAogdG8gYSBzdHJpbmcgKHdpdGggdGhlIDpmdW5jOmByZXByYCBmdW5jdGlvbiBvciB0aGUgc2xpZ2h0bHkgZGlmZmVyZW50CkBAIC02NDEsMzAgKzY0NSwzMCBAQAogCiBIZXJlIGFyZSB0aGUgcnVsZXMgaW4gZGV0YWlsOgogCi0gLSBJZiBgYHggPSBtIC8gbmBgIGlzIGEgbm9ubmVnYXRpdmUgcmF0aW9uYWwgbnVtYmVyIGFuZCBgYG5gYCBpcyBub3QgZGl2aXNpYmxlCi0gICBieSBgYFBgYCwgZGVmaW5lIGBgaGFzaCh4KWBgIGFzIGBgbSAqIGludm1vZChuLCBQKSAlIFBgYCwgd2hlcmUgYGBpbnZtb2QobiwKLSAgIFApYGAgZ2l2ZXMgdGhlIGludmVyc2Ugb2YgYGBuYGAgbW9kdWxvIGBgUGBgLgorLSBJZiBgYHggPSBtIC8gbmBgIGlzIGEgbm9ubmVnYXRpdmUgcmF0aW9uYWwgbnVtYmVyIGFuZCBgYG5gYCBpcyBub3QgZGl2aXNpYmxlCisgIGJ5IGBgUGBgLCBkZWZpbmUgYGBoYXNoKHgpYGAgYXMgYGBtICogaW52bW9kKG4sIFApICUgUGBgLCB3aGVyZSBgYGludm1vZChuLAorICBQKWBgIGdpdmVzIHRoZSBpbnZlcnNlIG9mIGBgbmBgIG1vZHVsbyBgYFBgYC4KIAotIC0gSWYgYGB4ID0gbSAvIG5gYCBpcyBhIG5vbm5lZ2F0aXZlIHJhdGlvbmFsIG51bWJlciBhbmQgYGBuYGAgaXMKLSAgIGRpdmlzaWJsZSBieSBgYFBgYCAoYnV0IGBgbWBgIGlzIG5vdCkgdGhlbiBgYG5gYCBoYXMgbm8gaW52ZXJzZQotICAgbW9kdWxvIGBgUGBgIGFuZCB0aGUgcnVsZSBhYm92ZSBkb2Vzbid0IGFwcGx5OyBpbiB0aGlzIGNhc2UgZGVmaW5lCi0gICBgYGhhc2goeClgYCB0byBiZSB0aGUgY29uc3RhbnQgdmFsdWUgYGBzeXMuaGFzaF9pbmZvLmluZmBgLgorLSBJZiBgYHggPSBtIC8gbmBgIGlzIGEgbm9ubmVnYXRpdmUgcmF0aW9uYWwgbnVtYmVyIGFuZCBgYG5gYCBpcworICBkaXZpc2libGUgYnkgYGBQYGAgKGJ1dCBgYG1gYCBpcyBub3QpIHRoZW4gYGBuYGAgaGFzIG5vIGludmVyc2UKKyAgbW9kdWxvIGBgUGBgIGFuZCB0aGUgcnVsZSBhYm92ZSBkb2Vzbid0IGFwcGx5OyBpbiB0aGlzIGNhc2UgZGVmaW5lCisgIGBgaGFzaCh4KWBgIHRvIGJlIHRoZSBjb25zdGFudCB2YWx1ZSBgYHN5cy5oYXNoX2luZm8uaW5mYGAuCiAKLSAtIElmIGBgeCA9IG0gLyBuYGAgaXMgYSBuZWdhdGl2ZSByYXRpb25hbCBudW1iZXIgZGVmaW5lIGBgaGFzaCh4KWBgCi0gICBhcyBgYC1oYXNoKC14KWBgLiAgSWYgdGhlIHJlc3VsdGluZyBoYXNoIGlzIGBgLTFgYCwgcmVwbGFjZSBpdCB3aXRoCi0gICBgYC0yYGAuCistIElmIGBgeCA9IG0gLyBuYGAgaXMgYSBuZWdhdGl2ZSByYXRpb25hbCBudW1iZXIgZGVmaW5lIGBgaGFzaCh4KWBgCisgIGFzIGBgLWhhc2goLXgpYGAuICBJZiB0aGUgcmVzdWx0aW5nIGhhc2ggaXMgYGAtMWBgLCByZXBsYWNlIGl0IHdpdGgKKyAgYGAtMmBgLgogCi0gLSBUaGUgcGFydGljdWxhciB2YWx1ZXMgYGBzeXMuaGFzaF9pbmZvLmluZmBgLCBgYC1zeXMuaGFzaF9pbmZvLmluZmBgCi0gICBhbmQgYGBzeXMuaGFzaF9pbmZvLm5hbmBgIGFyZSB1c2VkIGFzIGhhc2ggdmFsdWVzIGZvciBwb3NpdGl2ZQotICAgaW5maW5pdHksIG5lZ2F0aXZlIGluZmluaXR5LCBvciBuYW5zIChyZXNwZWN0aXZlbHkpLiAgKEFsbCBoYXNoYWJsZQotICAgbmFucyBoYXZlIHRoZSBzYW1lIGhhc2ggdmFsdWUuKQorLSBUaGUgcGFydGljdWxhciB2YWx1ZXMgYGBzeXMuaGFzaF9pbmZvLmluZmBgLCBgYC1zeXMuaGFzaF9pbmZvLmluZmBgCisgIGFuZCBgYHN5cy5oYXNoX2luZm8ubmFuYGAgYXJlIHVzZWQgYXMgaGFzaCB2YWx1ZXMgZm9yIHBvc2l0aXZlCisgIGluZmluaXR5LCBuZWdhdGl2ZSBpbmZpbml0eSwgb3IgbmFucyAocmVzcGVjdGl2ZWx5KS4gIChBbGwgaGFzaGFibGUKKyAgbmFucyBoYXZlIHRoZSBzYW1lIGhhc2ggdmFsdWUuKQogCi0gLSBGb3IgYSA6Y2xhc3M6YGNvbXBsZXhgIG51bWJlciBgYHpgYCwgdGhlIGhhc2ggdmFsdWVzIG9mIHRoZSByZWFsCi0gICBhbmQgaW1hZ2luYXJ5IHBhcnRzIGFyZSBjb21iaW5lZCBieSBjb21wdXRpbmcgYGBoYXNoKHoucmVhbCkgKwotICAgc3lzLmhhc2hfaW5mby5pbWFnICogaGFzaCh6LmltYWcpYGAsIHJlZHVjZWQgbW9kdWxvCi0gICBgYDIqKnN5cy5oYXNoX2luZm8ud2lkdGhgYCBzbyB0aGF0IGl0IGxpZXMgaW4KLSAgIGBgcmFuZ2UoLTIqKihzeXMuaGFzaF9pbmZvLndpZHRoIC0gMSksIDIqKihzeXMuaGFzaF9pbmZvLndpZHRoIC0KLSAgIDEpKWBgLiAgQWdhaW4sIGlmIHRoZSByZXN1bHQgaXMgYGAtMWBgLCBpdCdzIHJlcGxhY2VkIHdpdGggYGAtMmBgLgorLSBGb3IgYSA6Y2xhc3M6YGNvbXBsZXhgIG51bWJlciBgYHpgYCwgdGhlIGhhc2ggdmFsdWVzIG9mIHRoZSByZWFsCisgIGFuZCBpbWFnaW5hcnkgcGFydHMgYXJlIGNvbWJpbmVkIGJ5IGNvbXB1dGluZyBgYGhhc2goei5yZWFsKSArCisgIHN5cy5oYXNoX2luZm8uaW1hZyAqIGhhc2goei5pbWFnKWBgLCByZWR1Y2VkIG1vZHVsbworICBgYDIqKnN5cy5oYXNoX2luZm8ud2lkdGhgYCBzbyB0aGF0IGl0IGxpZXMgaW4KKyAgYGByYW5nZSgtMioqKHN5cy5oYXNoX2luZm8ud2lkdGggLSAxKSwgMioqKHN5cy5oYXNoX2luZm8ud2lkdGggLQorICAxKSlgYC4gIEFnYWluLCBpZiB0aGUgcmVzdWx0IGlzIGBgLTFgYCwgaXQncyByZXBsYWNlZCB3aXRoIGBgLTJgYC4KIAogCiBUbyBjbGFyaWZ5IHRoZSBhYm92ZSBydWxlcywgaGVyZSdzIHNvbWUgZXhhbXBsZSBQeXRob24gY29kZSwKQEAgLTk5OSw2ICsxMDAzLDIzIEBACiAgICByZXN0IGxvd2VyY2FzZWQuCiAKIAorLi4gbWV0aG9kOjogc3RyLmNhc2Vmb2xkKCkKKworICAgUmV0dXJuIGEgY2FzZWZvbGRlZCBjb3B5IG9mIHRoZSBzdHJpbmcuIENhc2Vmb2xkZWQgc3RyaW5ncyBtYXkgYmUgdXNlZCBmb3IKKyAgIGNhc2VsZXNzIG1hdGNoaW5nLgorCisgICBDYXNlZm9sZGluZyBpcyBzaW1pbGFyIHRvIGxvd2VyY2FzaW5nIGJ1dCBtb3JlIGFnZ3Jlc3NpdmUgYmVjYXVzZSBpdCBpcworICAgaW50ZW5kZWQgdG8gcmVtb3ZlIGFsbCBjYXNlIGRpc3RpbmN0aW9ucyBpbiBhIHN0cmluZy4gRm9yIGV4YW1wbGUsIHRoZSBHZXJtYW4KKyAgIGxvd2VyY2FzZSBsZXR0ZXIgYGAnw58nYGAgaXMgZXF1aXZhbGVudCB0byBgYCJzcyJgYC4gU2luY2UgaXQgaXMgYWxyZWFkeQorICAgbG93ZXJjYXNlLCA6bWV0aDpgbG93ZXJgIHdvdWxkIGRvIG5vdGhpbmcgdG8gYGAnw58nYGA7IDptZXRoOmBjYXNlZm9sZGAKKyAgIGNvbnZlcnRzIGl0IHRvIGBgInNzImBgLgorCisgICBUaGUgY2FzZWZvbGRpbmcgYWxnb3JpdGhtIGlzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDMuMTMgb2YgdGhlIFVuaWNvZGUKKyAgIFN0YW5kYXJkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAuLiBtZXRob2Q6OiBzdHIuY2VudGVyKHdpZHRoWywgZmlsbGNoYXJdKQogCiAgICBSZXR1cm4gY2VudGVyZWQgaW4gYSBzdHJpbmcgb2YgbGVuZ3RoICp3aWR0aCouIFBhZGRpbmcgaXMgZG9uZSB1c2luZyB0aGUKQEAgLTEyMDYsNiArMTIyNyw5IEBACiAgICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCBhbGwgdGhlIGNhc2VkIGNoYXJhY3RlcnMgWzRdXyBjb252ZXJ0ZWQgdG8KICAgIGxvd2VyY2FzZS4KIAorICAgVGhlIGxvd2VyY2FzaW5nIGFsZ29yaXRobSB1c2VkIGlzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDMuMTMgb2YgdGhlIFVuaWNvZGUKKyAgIFN0YW5kYXJkLgorCiAKIC4uIG1ldGhvZDo6IHN0ci5sc3RyaXAoW2NoYXJzXSkKIApAQCAtMTI3OCw3ICsxMzAyLDcgQEAKICAgIHR3byBlbXB0eSBzdHJpbmdzLCBmb2xsb3dlZCBieSB0aGUgc3RyaW5nIGl0c2VsZi4KIAogCi0uLiBtZXRob2Q6OiBzdHIucnNwbGl0KFtzZXBbLCBtYXhzcGxpdF1dKQorLi4gbWV0aG9kOjogc3RyLnJzcGxpdChzZXA9Tm9uZSwgbWF4c3BsaXQ9LTEpCiAKICAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIHdvcmRzIGluIHRoZSBzdHJpbmcsIHVzaW5nICpzZXAqIGFzIHRoZSBkZWxpbWl0ZXIgc3RyaW5nLgogICAgSWYgKm1heHNwbGl0KiBpcyBnaXZlbiwgYXQgbW9zdCAqbWF4c3BsaXQqIHNwbGl0cyBhcmUgZG9uZSwgdGhlICpyaWdodG1vc3QqCkBAIC0xMzAwLDcgKzEzMjQsNyBAQAogICAgICAgJ21pc3Npc3MnCiAKIAotLi4gbWV0aG9kOjogc3RyLnNwbGl0KFtzZXBbLCBtYXhzcGxpdF1dKQorLi4gbWV0aG9kOjogc3RyLnNwbGl0KHNlcD1Ob25lLCBtYXhzcGxpdD0tMSkKIAogICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgd29yZHMgaW4gdGhlIHN0cmluZywgdXNpbmcgKnNlcCogYXMgdGhlIGRlbGltaXRlcgogICAgc3RyaW5nLiAgSWYgKm1heHNwbGl0KiBpcyBnaXZlbiwgYXQgbW9zdCAqbWF4c3BsaXQqIHNwbGl0cyBhcmUgZG9uZSAodGh1cywKQEAgLTEzNjMsNyArMTM4Nyw4IEBACiAuLiBtZXRob2Q6OiBzdHIuc3dhcGNhc2UoKQogCiAgICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCB1cHBlcmNhc2UgY2hhcmFjdGVycyBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlIGFuZAotICAgdmljZSB2ZXJzYS4KKyAgIHZpY2UgdmVyc2EuIE5vdGUgdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJpbHkgdHJ1ZSB0aGF0CisgICBgYHMuc3dhcGNhc2UoKS5zd2FwY2FzZSgpID09IHNgYC4KIAogCiAuLiBtZXRob2Q6OiBzdHIudGl0bGUoKQpAQCAtMTQxNCw3ICsxNDM5LDExIEBACiAgICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCBhbGwgdGhlIGNhc2VkIGNoYXJhY3RlcnMgWzRdXyBjb252ZXJ0ZWQgdG8KICAgIHVwcGVyY2FzZS4gIE5vdGUgdGhhdCBgYHN0ci51cHBlcigpLmlzdXBwZXIoKWBgIG1pZ2h0IGJlIGBgRmFsc2VgYCBpZiBgYHNgYAogICAgY29udGFpbnMgdW5jYXNlZCBjaGFyYWN0ZXJzIG9yIGlmIHRoZSBVbmljb2RlIGNhdGVnb3J5IG9mIHRoZSByZXN1bHRpbmcKLSAgIGNoYXJhY3RlcihzKSBpcyBub3QgIkx1IiAoTGV0dGVyLCB1cHBlcmNhc2UpLCBidXQgZS5nLiAiTHQiIChMZXR0ZXIsIHRpdGxlY2FzZSkuCisgICBjaGFyYWN0ZXIocykgaXMgbm90ICJMdSIgKExldHRlciwgdXBwZXJjYXNlKSwgYnV0IGUuZy4gIkx0IiAoTGV0dGVyLAorICAgdGl0bGVjYXNlKS4KKworICAgVGhlIHVwcGVyY2FzaW5nIGFsZ29yaXRobSB1c2VkIGlzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDMuMTMgb2YgdGhlIFVuaWNvZGUKKyAgIFN0YW5kYXJkLgogCiAKIC4uIG1ldGhvZDo6IHN0ci56ZmlsbCh3aWR0aCkKQEAgLTE2NDEsMTQgKzE2NzAsMTUgQEAKIAogICAgUmV0dXJuIHRoZSBudW1iZXIgb2YgKmkqJ3MgZm9yIHdoaWNoIGBgc1tpXSA9PSB4YGAuCiAKLSAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCiAuLiBtZXRob2Q6OiByYW5nZS5pbmRleCh4KQogCiAgICBSZXR1cm4gdGhlIHNtYWxsZXN0ICppKiBzdWNoIHRoYXQgYGBzW2ldID09IHhgYC4gIFJhaXNlcwogICAgOmV4YzpgVmFsdWVFcnJvcmAgd2hlbiAqeCogaXMgbm90IGluIHRoZSByYW5nZS4KIAotICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgorICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCisKIAogLi4gX3R5cGVzc2VxLW11dGFibGU6CiAKQEAgLTE2NzksNiArMTcwOSw4IEBACiAgICBzaW5nbGU6IGFwcGVuZCgpIChzZXF1ZW5jZSBtZXRob2QpCiAgICBzaW5nbGU6IGV4dGVuZCgpIChzZXF1ZW5jZSBtZXRob2QpCiAgICBzaW5nbGU6IGNvdW50KCkgKHNlcXVlbmNlIG1ldGhvZCkKKyAgIHNpbmdsZTogY2xlYXIoKSAoc2VxdWVuY2UgbWV0aG9kKQorICAgc2luZ2xlOiBjb3B5KCkgKHNlcXVlbmNlIG1ldGhvZCkKICAgIHNpbmdsZTogaW5kZXgoKSAoc2VxdWVuY2UgbWV0aG9kKQogICAgc2luZ2xlOiBpbnNlcnQoKSAoc2VxdWVuY2UgbWV0aG9kKQogICAgc2luZ2xlOiBwb3AoKSAoc2VxdWVuY2UgbWV0aG9kKQpAQCAtMTcxMCw2ICsxNzQyLDEyIEBACiB8IGBgcy5leHRlbmQoeClgYCAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgc1tsZW4ocyk6bGVuKHMpXSA9ICAgfCBcKDIpICAgICAgICAgICAgICAgIHwKIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHhgYCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfAogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgcy5jbGVhcigpYGAgICAgICAgICAgICAgICAgfCByZW1vdmUgYWxsIGl0ZW1zIGZyb20gYGBzYGAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgcy5jb3B5KClgYCAgICAgICAgICAgICAgICAgfCByZXR1cm4gYSBzaGFsbG93IGNvcHkgb2YgYGBzYGAgfCAgICAgICAgICAgICAgICAgICAgIHwKK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiB8IGBgcy5jb3VudCh4KWBgICAgICAgICAgICAgICAgfCByZXR1cm4gbnVtYmVyIG9mICppKidzIGZvciAgICAgfCAgICAgICAgICAgICAgICAgICAgIHwKIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHdoaWNoIGBgc1tpXSA9PSB4YGAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfAogKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0xNzg4LDYgKzE4MjYsOSBAQAogKDgpCiAgICA6bWV0aDpgc29ydGAgaXMgbm90IHN1cHBvcnRlZCBieSA6Y2xhc3M6YGJ5dGVhcnJheWAgb2JqZWN0cy4KIAorICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgIDptZXRoOmBjbGVhcmAgYW5kIDptZXRoOmAhY29weWAgbWV0aG9kcy4KKwogCiAuLiBfYnl0ZXMtbWV0aG9kczoKIApAQCAtMTgwNSw2ICsxODQ2LDEyIEBACiBXaGVyZXZlciBvbmUgb2YgdGhlc2UgbWV0aG9kcyBuZWVkcyB0byBpbnRlcnByZXQgdGhlIGJ5dGVzIGFzIGNoYXJhY3RlcnMKIChlLmcuIHRoZSA6ZnVuYzpgaXMuLi5gIG1ldGhvZHMpLCB0aGUgQVNDSUkgY2hhcmFjdGVyIHNldCBpcyBhc3N1bWVkLgogCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgIFRoZSBmdW5jdGlvbnMgOmZ1bmM6YGNvdW50YCwgOmZ1bmM6YGZpbmRgLCA6ZnVuYzpgaW5kZXhgLAorICAgOmZ1bmM6YHJmaW5kYCBhbmQgOmZ1bmM6YHJpbmRleGAgaGF2ZSBhZGRpdGlvbmFsIHNlbWFudGljcyBjb21wYXJlZCB0bworICAgdGhlIGNvcnJlc3BvbmRpbmcgc3RyaW5nIGZ1bmN0aW9uczogVGhleSBhbHNvIGFjY2VwdCBhbiBpbnRlZ2VyIGluCisgICByYW5nZSAwIHRvIDI1NSAoYSBieXRlKSBhcyB0aGVpciBmaXJzdCBhcmd1bWVudC4KKwogLi4gbm90ZTo6CiAKICAgIFRoZSBtZXRob2RzIG9uIGJ5dGVzIGFuZCBieXRlYXJyYXkgb2JqZWN0cyBkb24ndCBhY2NlcHQgc3RyaW5ncyBhcyB0aGVpcgpAQCAtMjIxNCwxMyArMjI2MSwxMyBAQAogCiAgICAuLiBtZXRob2Q6OiBpdGVtcygpCiAKLSAgICAgIFJldHVybiBhIG5ldyB2aWV3IG9mIHRoZSBkaWN0aW9uYXJ5J3MgaXRlbXMgKGBgKGtleSwgdmFsdWUpYGAgcGFpcnMpLiAgU2VlCi0gICAgICBiZWxvdyBmb3IgZG9jdW1lbnRhdGlvbiBvZiB2aWV3IG9iamVjdHMuCisgICAgICBSZXR1cm4gYSBuZXcgdmlldyBvZiB0aGUgZGljdGlvbmFyeSdzIGl0ZW1zIChgYChrZXksIHZhbHVlKWBgIHBhaXJzKS4KKyAgICAgIFNlZSB0aGUgOnJlZjpgZG9jdW1lbnRhdGlvbiBvZiB2aWV3IG9iamVjdHMgPGRpY3Qtdmlld3M+YC4KIAogICAgLi4gbWV0aG9kOjoga2V5cygpCiAKLSAgICAgIFJldHVybiBhIG5ldyB2aWV3IG9mIHRoZSBkaWN0aW9uYXJ5J3Mga2V5cy4gIFNlZSBiZWxvdyBmb3IgZG9jdW1lbnRhdGlvbiBvZgotICAgICAgdmlldyBvYmplY3RzLgorICAgICAgUmV0dXJuIGEgbmV3IHZpZXcgb2YgdGhlIGRpY3Rpb25hcnkncyBrZXlzLiAgU2VlIHRoZSA6cmVmOmBkb2N1bWVudGF0aW9uCisgICAgICBvZiB2aWV3IG9iamVjdHMgPGRpY3Qtdmlld3M+YC4KIAogICAgLi4gbWV0aG9kOjogcG9wKGtleVssIGRlZmF1bHRdKQogCkBAIC0yMjU0LDggKzIzMDEsMTIgQEAKIAogICAgLi4gbWV0aG9kOjogdmFsdWVzKCkKIAotICAgICAgUmV0dXJuIGEgbmV3IHZpZXcgb2YgdGhlIGRpY3Rpb25hcnkncyB2YWx1ZXMuICBTZWUgYmVsb3cgZm9yIGRvY3VtZW50YXRpb24gb2YKLSAgICAgIHZpZXcgb2JqZWN0cy4KKyAgICAgIFJldHVybiBhIG5ldyB2aWV3IG9mIHRoZSBkaWN0aW9uYXJ5J3MgdmFsdWVzLiAgU2VlIHRoZQorICAgICAgOnJlZjpgZG9jdW1lbnRhdGlvbiBvZiB2aWV3IG9iamVjdHMgPGRpY3Qtdmlld3M+YC4KKworLi4gc2VlYWxzbzo6CisgICA6Y2xhc3M6YHR5cGVzLk1hcHBpbmdQcm94eVR5cGVgIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHJlYWQtb25seSB2aWV3CisgICBvZiBhIDpjbGFzczpgZGljdGAuCiAKIAogLi4gX2RpY3Qtdmlld3M6CkBAIC0yMzQzLDcgKzIzOTQsNyBAQAogCiA6Y2xhc3M6YG1lbW9yeXZpZXdgIG9iamVjdHMgYWxsb3cgUHl0aG9uIGNvZGUgdG8gYWNjZXNzIHRoZSBpbnRlcm5hbCBkYXRhCiBvZiBhbiBvYmplY3QgdGhhdCBzdXBwb3J0cyB0aGUgOnJlZjpgYnVmZmVyIHByb3RvY29sIDxidWZmZXJvYmplY3RzPmAgd2l0aG91dAotY29weWluZy4gIE1lbW9yeSBpcyBnZW5lcmFsbHkgaW50ZXJwcmV0ZWQgYXMgc2ltcGxlIGJ5dGVzLgorY29weWluZy4KIAogLi4gY2xhc3M6OiBtZW1vcnl2aWV3KG9iaikKIApAQCAtMjM1Nyw0MyArMjQwOCw5MiBAQAogICAgaXMgYSBzaW5nbGUgYnl0ZSwgYnV0IG90aGVyIHR5cGVzIHN1Y2ggYXMgOmNsYXNzOmBhcnJheS5hcnJheWAgbWF5IGhhdmUKICAgIGJpZ2dlciBlbGVtZW50cy4KIAotICAgYGBsZW4odmlldylgYCByZXR1cm5zIHRoZSB0b3RhbCBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIG1lbW9yeXZpZXcsCi0gICAqdmlldyouICBUaGUgOmNsYXNzOmB+bWVtb3J5dmlldy5pdGVtc2l6ZWAgYXR0cmlidXRlIHdpbGwgZ2l2ZSB5b3UgdGhlCisgICBgYGxlbih2aWV3KWBgIGlzIGVxdWFsIHRvIHRoZSBsZW5ndGggb2YgOmNsYXNzOmB+bWVtb3J5dmlldy50b2xpc3RgLgorICAgSWYgYGB2aWV3Lm5kaW0gPSAwYGAsIHRoZSBsZW5ndGggaXMgMS4gSWYgYGB2aWV3Lm5kaW0gPSAxYGAsIHRoZSBsZW5ndGgKKyAgIGlzIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIHZpZXcuIEZvciBoaWdoZXIgZGltZW5zaW9ucywKKyAgIHRoZSBsZW5ndGggaXMgZXF1YWwgdG8gdGhlIGxlbmd0aCBvZiB0aGUgbmVzdGVkIGxpc3QgcmVwcmVzZW50YXRpb24gb2YKKyAgIHRoZSB2aWV3LiBUaGUgOmNsYXNzOmB+bWVtb3J5dmlldy5pdGVtc2l6ZWAgYXR0cmlidXRlIHdpbGwgZ2l2ZSB5b3UgdGhlCiAgICBudW1iZXIgb2YgYnl0ZXMgaW4gYSBzaW5nbGUgZWxlbWVudC4KIAotICAgQSA6Y2xhc3M6YG1lbW9yeXZpZXdgIHN1cHBvcnRzIHNsaWNpbmcgdG8gZXhwb3NlIGl0cyBkYXRhLiAgVGFraW5nIGEgc2luZ2xlCi0gICBpbmRleCB3aWxsIHJldHVybiBhIHNpbmdsZSBlbGVtZW50IGFzIGEgOmNsYXNzOmBieXRlc2Agb2JqZWN0LiAgRnVsbAotICAgc2xpY2luZyB3aWxsIHJlc3VsdCBpbiBhIHN1YnZpZXc6OgorICAgQSA6Y2xhc3M6YG1lbW9yeXZpZXdgIHN1cHBvcnRzIHNsaWNpbmcgdG8gZXhwb3NlIGl0cyBkYXRhLiBJZgorICAgOmNsYXNzOmB+bWVtb3J5dmlldy5mb3JtYXRgIGlzIG9uZSBvZiB0aGUgbmF0aXZlIGZvcm1hdCBzcGVjaWZpZXJzCisgICBmcm9tIHRoZSA6bW9kOmBzdHJ1Y3RgIG1vZHVsZSwgaW5kZXhpbmcgd2lsbCByZXR1cm4gYSBzaW5nbGUgZWxlbWVudAorICAgd2l0aCB0aGUgY29ycmVjdCB0eXBlLiBGdWxsIHNsaWNpbmcgd2lsbCByZXN1bHQgaW4gYSBzdWJ2aWV3OjoKIAotICAgICAgPj4+IHYgPSBtZW1vcnl2aWV3KGInYWJjZWZnJykKLSAgICAgID4+PiB2WzFdCi0gICAgICBiJ2InCi0gICAgICA+Pj4gdlstMV0KLSAgICAgIGInZycKLSAgICAgID4+PiB2WzE6NF0KLSAgICAgIDxtZW1vcnkgYXQgMHg3N2FiMjg+Ci0gICAgICA+Pj4gYnl0ZXModlsxOjRdKQotICAgICAgYidiY2UnCisgICAgPj4+IHYgPSBtZW1vcnl2aWV3KGInYWJjZWZnJykKKyAgICA+Pj4gdlsxXQorICAgIDk4CisgICAgPj4+IHZbLTFdCisgICAgMTAzCisgICAgPj4+IHZbMTo0XQorICAgIDxtZW1vcnkgYXQgMHg3ZjNkZGM5ZjQzNTA+CisgICAgPj4+IGJ5dGVzKHZbMTo0XSkKKyAgICBiJ2JjZScKIAotICAgSWYgdGhlIG9iamVjdCB0aGUgbWVtb3J5dmlldyBpcyBvdmVyIHN1cHBvcnRzIGNoYW5naW5nIGl0cyBkYXRhLCB0aGUKLSAgIG1lbW9yeXZpZXcgc3VwcG9ydHMgc2xpY2UgYXNzaWdubWVudDo6CisgICBPdGhlciBuYXRpdmUgZm9ybWF0czo6CisKKyAgICAgID4+PiBpbXBvcnQgYXJyYXkKKyAgICAgID4+PiBhID0gYXJyYXkuYXJyYXkoJ2wnLCBbLTExMTExMTExLCAyMjIyMjIyMiwgLTMzMzMzMzMzLCA0NDQ0NDQ0NF0pCisgICAgICA+Pj4gYVswXQorICAgICAgLTExMTExMTExCisgICAgICA+Pj4gYVstMV0KKyAgICAgIDQ0NDQ0NDQ0CisgICAgICA+Pj4gYVsyOjNdLnRvbGlzdCgpCisgICAgICBbLTMzMzMzMzMzXQorICAgICAgPj4+IGFbOjoyXS50b2xpc3QoKQorICAgICAgWy0xMTExMTExMSwgLTMzMzMzMzMzXQorICAgICAgPj4+IGFbOjotMV0udG9saXN0KCkKKyAgICAgIFs0NDQ0NDQ0NCwgLTMzMzMzMzMzLCAyMjIyMjIyMiwgLTExMTExMTExXQorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworICAgSWYgdGhlIHVuZGVybHlpbmcgb2JqZWN0IGlzIHdyaXRhYmxlLCB0aGUgbWVtb3J5dmlldyBzdXBwb3J0cyBzbGljZQorICAgYXNzaWdubWVudC4gUmVzaXppbmcgaXMgbm90IGFsbG93ZWQ6OgogCiAgICAgICA+Pj4gZGF0YSA9IGJ5dGVhcnJheShiJ2FiY2VmZycpCiAgICAgICA+Pj4gdiA9IG1lbW9yeXZpZXcoZGF0YSkKICAgICAgID4+PiB2LnJlYWRvbmx5CiAgICAgICBGYWxzZQotICAgICAgPj4+IHZbMF0gPSBiJ3onCisgICAgICA+Pj4gdlswXSA9IG9yZChiJ3onKQogICAgICAgPj4+IGRhdGEKICAgICAgIGJ5dGVhcnJheShiJ3piY2VmZycpCiAgICAgICA+Pj4gdlsxOjRdID0gYicxMjMnCiAgICAgICA+Pj4gZGF0YQogICAgICAgYnl0ZWFycmF5KGInejEyM2ZnJykKLSAgICAgID4+PiB2WzJdID0gYidzcGFtJworICAgICAgPj4+IHZbMjozXSA9IGInc3BhbScKICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gPG1vZHVsZT4KLSAgICAgIFZhbHVlRXJyb3I6IGNhbm5vdCBtb2RpZnkgc2l6ZSBvZiBtZW1vcnl2aWV3IG9iamVjdAorICAgICAgVmFsdWVFcnJvcjogbWVtb3J5dmlldyBhc3NpZ25tZW50OiBsdmFsdWUgYW5kIHJ2YWx1ZSBoYXZlIGRpZmZlcmVudCBzdHJ1Y3R1cmVzCisgICAgICA+Pj4gdlsyOjZdID0gYidzcGFtJworICAgICAgPj4+IGRhdGEKKyAgICAgIGJ5dGVhcnJheShiJ3oxc3BhbScpCiAKLSAgIE5vdGljZSBob3cgdGhlIHNpemUgb2YgdGhlIG1lbW9yeXZpZXcgb2JqZWN0IGNhbm5vdCBiZSBjaGFuZ2VkLgorICAgTWVtb3J5dmlld3Mgb2YgaGFzaGFibGUgKHJlYWQtb25seSkgdHlwZXMgYXJlIGFsc28gaGFzaGFibGUuIFRoZSBoYXNoCisgICBpcyBkZWZpbmVkIGFzIGBgaGFzaChtKSA9PSBoYXNoKG0udG9ieXRlcygpKWBgOjoKKworICAgICAgPj4+IHYgPSBtZW1vcnl2aWV3KGInYWJjZWZnJykKKyAgICAgID4+PiBoYXNoKHYpID09IGhhc2goYidhYmNlZmcnKQorICAgICAgVHJ1ZQorICAgICAgPj4+IGhhc2godlsyOjRdKSA9PSBoYXNoKGInY2UnKQorICAgICAgVHJ1ZQorICAgICAgPj4+IGhhc2godls6Oi0yXSkgPT0gaGFzaChiJ2FiY2VmZydbOjotMl0pCisgICAgICBUcnVlCisKKyAgIEhhc2hpbmcgb2YgbXVsdGktZGltZW5zaW9uYWwgb2JqZWN0cyBpcyBzdXBwb3J0ZWQ6OgorCisgICAgICA+Pj4gYnVmID0gYnl0ZXMobGlzdChyYW5nZSgxMikpKQorICAgICAgPj4+IHggPSBtZW1vcnl2aWV3KGJ1ZikKKyAgICAgID4+PiB5ID0geC5jYXN0KCdCJywgc2hhcGU9WzIsMiwzXSkKKyAgICAgID4+PiB4LnRvbGlzdCgpCisgICAgICBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExXQorICAgICAgPj4+IHkudG9saXN0KCkKKyAgICAgIFtbWzAsIDEsIDJdLCBbMywgNCwgNV1dLCBbWzYsIDcsIDhdLCBbOSwgMTAsIDExXV1dCisgICAgICA+Pj4gaGFzaCh4KSA9PSBoYXNoKHkpID09IGhhc2goeS50b2J5dGVzKCkpCisgICAgICBUcnVlCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBNZW1vcnl2aWV3IG9iamVjdHMgYXJlIG5vdyBoYXNoYWJsZS4KKwogCiAgICA6Y2xhc3M6YG1lbW9yeXZpZXdgIGhhcyBzZXZlcmFsIG1ldGhvZHM6CiAKQEAgLTI0MDgsMTIgKzI1MDgsMjAgQEAKICAgICAgICAgID4+PiBieXRlcyhtKQogICAgICAgICAgYidhYmMnCiAKKyAgICAgIEZvciBub24tY29udGlndW91cyBhcnJheXMgdGhlIHJlc3VsdCBpcyBlcXVhbCB0byB0aGUgZmxhdHRlbmVkIGxpc3QKKyAgICAgIHJlcHJlc2VudGF0aW9uIHdpdGggYWxsIGVsZW1lbnRzIGNvbnZlcnRlZCB0byBieXRlcy4KKwogICAgLi4gbWV0aG9kOjogdG9saXN0KCkKIAotICAgICAgUmV0dXJuIHRoZSBkYXRhIGluIHRoZSBidWZmZXIgYXMgYSBsaXN0IG9mIGludGVnZXJzLiA6OgorICAgICAgUmV0dXJuIHRoZSBkYXRhIGluIHRoZSBidWZmZXIgYXMgYSBsaXN0IG9mIGVsZW1lbnRzLiA6OgogCiAgICAgICAgICA+Pj4gbWVtb3J5dmlldyhiJ2FiYycpLnRvbGlzdCgpCiAgICAgICAgICBbOTcsIDk4LCA5OV0KKyAgICAgICAgID4+PiBpbXBvcnQgYXJyYXkKKyAgICAgICAgID4+PiBhID0gYXJyYXkuYXJyYXkoJ2QnLCBbMS4xLCAyLjIsIDMuM10pCisgICAgICAgICA+Pj4gbSA9IG1lbW9yeXZpZXcoYSkKKyAgICAgICAgID4+PiBtLnRvbGlzdCgpCisgICAgICAgICBbMS4xLCAyLjIsIDMuM10KIAogICAgLi4gbWV0aG9kOjogcmVsZWFzZSgpCiAKQEAgLTI0NDAsNyArMjU0OCw3IEBACiAgICAgICAgICA+Pj4gd2l0aCBtZW1vcnl2aWV3KGInYWJjJykgYXMgbToKICAgICAgICAgIC4uLiAgICAgbVswXQogICAgICAgICAgLi4uCi0gICAgICAgICBiJ2EnCisgICAgICAgICA5NwogICAgICAgICAgPj4+IG1bMF0KICAgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgICAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gPG1vZHVsZT4KQEAgLTI0NDgsNDUgKzI1NTYsMjE5IEBACiAKICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCisgICAuLiBtZXRob2Q6OiBjYXN0KGZvcm1hdFssIHNoYXBlXSkKKworICAgICAgQ2FzdCBhIG1lbW9yeXZpZXcgdG8gYSBuZXcgZm9ybWF0IG9yIHNoYXBlLiAqc2hhcGUqIGRlZmF1bHRzIHRvCisgICAgICBgYFtieXRlX2xlbmd0aC8vbmV3X2l0ZW1zaXplXWBgLCB3aGljaCBtZWFucyB0aGF0IHRoZSByZXN1bHQgdmlldworICAgICAgd2lsbCBiZSBvbmUtZGltZW5zaW9uYWwuIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBuZXcgbWVtb3J5dmlldywgYnV0CisgICAgICB0aGUgYnVmZmVyIGl0c2VsZiBpcyBub3QgY29waWVkLiBTdXBwb3J0ZWQgY2FzdHMgYXJlIDFEIC0+IEMtY29udGlndW91cworICAgICAgYW5kIEMtY29udGlndW91cyAtPiAxRC4gT25lIG9mIHRoZSBmb3JtYXRzIG11c3QgYmUgYSBieXRlIGZvcm1hdAorICAgICAgKCdCJywgJ2InIG9yICdjJykuIFRoZSBieXRlIGxlbmd0aCBvZiB0aGUgcmVzdWx0IG11c3QgYmUgdGhlIHNhbWUKKyAgICAgIGFzIHRoZSBvcmlnaW5hbCBsZW5ndGguCisKKyAgICAgIENhc3QgMUQvbG9uZyB0byAxRC91bnNpZ25lZCBieXRlczo6CisKKyAgICAgICAgID4+PiBpbXBvcnQgYXJyYXkKKyAgICAgICAgID4+PiBhID0gYXJyYXkuYXJyYXkoJ2wnLCBbMSwyLDNdKQorICAgICAgICAgPj4+IHggPSBtZW1vcnl2aWV3KGEpCisgICAgICAgICA+Pj4geC5mb3JtYXQKKyAgICAgICAgICdsJworICAgICAgICAgPj4+IHguaXRlbXNpemUKKyAgICAgICAgIDgKKyAgICAgICAgID4+PiBsZW4oeCkKKyAgICAgICAgIDMKKyAgICAgICAgID4+PiB4Lm5ieXRlcworICAgICAgICAgMjQKKyAgICAgICAgID4+PiB5ID0geC5jYXN0KCdCJykKKyAgICAgICAgID4+PiB5LmZvcm1hdAorICAgICAgICAgJ0InCisgICAgICAgICA+Pj4geS5pdGVtc2l6ZQorICAgICAgICAgMQorICAgICAgICAgPj4+IGxlbih5KQorICAgICAgICAgMjQKKyAgICAgICAgID4+PiB5Lm5ieXRlcworICAgICAgICAgMjQKKworICAgICAgQ2FzdCAxRC91bnNpZ25lZCBieXRlcyB0byAxRC9jaGFyOjoKKworICAgICAgICAgPj4+IGIgPSBieXRlYXJyYXkoYid6eXonKQorICAgICAgICAgPj4+IHggPSBtZW1vcnl2aWV3KGIpCisgICAgICAgICA+Pj4geFswXSA9IGInYScKKyAgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gPG1vZHVsZT4KKyAgICAgICAgIFZhbHVlRXJyb3I6IG1lbW9yeXZpZXc6IGludmFsaWQgdmFsdWUgZm9yIGZvcm1hdCAiQiIKKyAgICAgICAgID4+PiB5ID0geC5jYXN0KCdjJykKKyAgICAgICAgID4+PiB5WzBdID0gYidhJworICAgICAgICAgPj4+IGIKKyAgICAgICAgIGJ5dGVhcnJheShiJ2F5eicpCisKKyAgICAgIENhc3QgMUQvYnl0ZXMgdG8gM0QvaW50cyB0byAxRC9zaWduZWQgY2hhcjo6CisKKyAgICAgICAgID4+PiBpbXBvcnQgc3RydWN0CisgICAgICAgICA+Pj4gYnVmID0gc3RydWN0LnBhY2soImkiKjEyLCAqbGlzdChyYW5nZSgxMikpKQorICAgICAgICAgPj4+IHggPSBtZW1vcnl2aWV3KGJ1ZikKKyAgICAgICAgID4+PiB5ID0geC5jYXN0KCdpJywgc2hhcGU9WzIsMiwzXSkKKyAgICAgICAgID4+PiB5LnRvbGlzdCgpCisgICAgICAgICBbW1swLCAxLCAyXSwgWzMsIDQsIDVdXSwgW1s2LCA3LCA4XSwgWzksIDEwLCAxMV1dXQorICAgICAgICAgPj4+IHkuZm9ybWF0CisgICAgICAgICAnaScKKyAgICAgICAgID4+PiB5Lml0ZW1zaXplCisgICAgICAgICA0CisgICAgICAgICA+Pj4gbGVuKHkpCisgICAgICAgICAyCisgICAgICAgICA+Pj4geS5uYnl0ZXMKKyAgICAgICAgIDQ4CisgICAgICAgICA+Pj4geiA9IHkuY2FzdCgnYicpCisgICAgICAgICA+Pj4gei5mb3JtYXQKKyAgICAgICAgICdiJworICAgICAgICAgPj4+IHouaXRlbXNpemUKKyAgICAgICAgIDEKKyAgICAgICAgID4+PiBsZW4oeikKKyAgICAgICAgIDQ4CisgICAgICAgICA+Pj4gei5uYnl0ZXMKKyAgICAgICAgIDQ4CisKKyAgICAgIENhc3QgMUQvdW5zaWduZWQgY2hhciB0byB0byAyRC91bnNpZ25lZCBsb25nOjoKKworICAgICAgICAgPj4+IGJ1ZiA9IHN0cnVjdC5wYWNrKCJMIio2LCAqbGlzdChyYW5nZSg2KSkpCisgICAgICAgICA+Pj4geCA9IG1lbW9yeXZpZXcoYnVmKQorICAgICAgICAgPj4+IHkgPSB4LmNhc3QoJ0wnLCBzaGFwZT1bMiwzXSkKKyAgICAgICAgID4+PiBsZW4oeSkKKyAgICAgICAgIDIKKyAgICAgICAgID4+PiB5Lm5ieXRlcworICAgICAgICAgNDgKKyAgICAgICAgID4+PiB5LnRvbGlzdCgpCisgICAgICAgICBbWzAsIDEsIDJdLCBbMywgNCwgNV1dCisKKyAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCiAgICBUaGVyZSBhcmUgYWxzbyBzZXZlcmFsIHJlYWRvbmx5IGF0dHJpYnV0ZXMgYXZhaWxhYmxlOgogCisgICAuLiBhdHRyaWJ1dGU6OiBvYmoKKworICAgICAgVGhlIHVuZGVybHlpbmcgb2JqZWN0IG9mIHRoZSBtZW1vcnl2aWV3OjoKKworICAgICAgICAgPj4+IGIgID0gYnl0ZWFycmF5KGIneHl6JykKKyAgICAgICAgID4+PiBtID0gbWVtb3J5dmlldyhiKQorICAgICAgICAgPj4+IG0ub2JqIGlzIGIKKyAgICAgICAgIFRydWUKKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKyAgIC4uIGF0dHJpYnV0ZTo6IG5ieXRlcworCisgICAgICBgYG5ieXRlcyA9PSBwcm9kdWN0KHNoYXBlKSAqIGl0ZW1zaXplID09IGxlbihtLnRvYnl0ZXMoKSlgYC4gVGhpcyBpcworICAgICAgdGhlIGFtb3VudCBvZiBzcGFjZSBpbiBieXRlcyB0aGF0IHRoZSBhcnJheSB3b3VsZCB1c2UgaW4gYSBjb250aWd1b3VzCisgICAgICByZXByZXNlbnRhdGlvbi4gSXQgaXMgbm90IG5lY2Vzc2FyaWx5IGVxdWFsIHRvIGxlbihtKTo6CisKKyAgICAgICAgID4+PiBpbXBvcnQgYXJyYXkKKyAgICAgICAgID4+PiBhID0gYXJyYXkuYXJyYXkoJ2knLCBbMSwyLDMsNCw1XSkKKyAgICAgICAgID4+PiBtID0gbWVtb3J5dmlldyhhKQorICAgICAgICAgPj4+IGxlbihtKQorICAgICAgICAgNQorICAgICAgICAgPj4+IG0ubmJ5dGVzCisgICAgICAgICAyMAorICAgICAgICAgPj4+IHkgPSBtWzo6Ml0KKyAgICAgICAgID4+PiBsZW4oeSkKKyAgICAgICAgIDMKKyAgICAgICAgID4+PiB5Lm5ieXRlcworICAgICAgICAgMTIKKyAgICAgICAgID4+PiBsZW4oeS50b2J5dGVzKCkpCisgICAgICAgICAxMgorCisgICAgICBNdWx0aS1kaW1lbnNpb25hbCBhcnJheXM6OgorCisgICAgICAgICA+Pj4gaW1wb3J0IHN0cnVjdAorICAgICAgICAgPj4+IGJ1ZiA9IHN0cnVjdC5wYWNrKCJkIioxMiwgKlsxLjUqeCBmb3IgeCBpbiByYW5nZSgxMildKQorICAgICAgICAgPj4+IHggPSBtZW1vcnl2aWV3KGJ1ZikKKyAgICAgICAgID4+PiB5ID0geC5jYXN0KCdkJywgc2hhcGU9WzMsNF0pCisgICAgICAgICA+Pj4geS50b2xpc3QoKQorICAgICAgICAgW1swLjAsIDEuNSwgMy4wLCA0LjVdLCBbNi4wLCA3LjUsIDkuMCwgMTAuNV0sIFsxMi4wLCAxMy41LCAxNS4wLCAxNi41XV0KKyAgICAgICAgID4+PiBsZW4oeSkKKyAgICAgICAgIDMKKyAgICAgICAgID4+PiB5Lm5ieXRlcworICAgICAgICAgOTYKKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKyAgIC4uIGF0dHJpYnV0ZTo6IHJlYWRvbmx5CisKKyAgICAgIEEgYm9vbCBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIG1lbW9yeSBpcyByZWFkIG9ubHkuCisKICAgIC4uIGF0dHJpYnV0ZTo6IGZvcm1hdAogCiAgICAgICBBIHN0cmluZyBjb250YWluaW5nIHRoZSBmb3JtYXQgKGluIDptb2Q6YHN0cnVjdGAgbW9kdWxlIHN0eWxlKSBmb3IgZWFjaAotICAgICAgZWxlbWVudCBpbiB0aGUgdmlldy4gIFRoaXMgZGVmYXVsdHMgdG8gYGAnQidgYCwgYSBzaW1wbGUgYnl0ZXN0cmluZy4KKyAgICAgIGVsZW1lbnQgaW4gdGhlIHZpZXcuIEEgbWVtb3J5dmlldyBjYW4gYmUgY3JlYXRlZCBmcm9tIGV4cG9ydGVycyB3aXRoCisgICAgICBhcmJpdHJhcnkgZm9ybWF0IHN0cmluZ3MsIGJ1dCBzb21lIG1ldGhvZHMgKGUuZy4gOm1ldGg6YHRvbGlzdGApIGFyZQorICAgICAgcmVzdHJpY3RlZCB0byBuYXRpdmUgc2luZ2xlIGVsZW1lbnQgZm9ybWF0cy4gU3BlY2lhbCBjYXJlIG11c3QgYmUgdGFrZW4KKyAgICAgIHdoZW4gY29tcGFyaW5nIG1lbW9yeXZpZXdzLiBTaW5jZSBjb21wYXJpc29ucyBhcmUgcmVxdWlyZWQgdG8gcmV0dXJuIGEKKyAgICAgIHZhbHVlIGZvciBgYD09YGAgYW5kIGBgIT1gYCwgdHdvIG1lbW9yeXZpZXdzIHJlZmVyZW5jaW5nIHRoZSBzYW1lCisgICAgICBleHBvcnRlciBjYW4gY29tcGFyZSBhcyBub3QtZXF1YWwgaWYgdGhlIGV4cG9ydGVyJ3MgZm9ybWF0IGlzIG5vdAorICAgICAgdW5kZXJzdG9vZDo6CisKKyAgICAgICAgID4+PiBmcm9tIGN0eXBlcyBpbXBvcnQgQmlnRW5kaWFuU3RydWN0dXJlLCBjX2xvbmcKKyAgICAgICAgID4+PiBjbGFzcyBCRVBvaW50KEJpZ0VuZGlhblN0cnVjdHVyZSk6CisgICAgICAgICAuLi4gICAgIF9maWVsZHNfID0gWygieCIsIGNfbG9uZyksICgieSIsIGNfbG9uZyldCisgICAgICAgICAuLi4KKyAgICAgICAgID4+PiBwb2ludCA9IEJFUG9pbnQoMTAwLCAyMDApCisgICAgICAgICA+Pj4gYSA9IG1lbW9yeXZpZXcocG9pbnQpCisgICAgICAgICA+Pj4gYiA9IG1lbW9yeXZpZXcocG9pbnQpCisgICAgICAgICA+Pj4gYSA9PSBiCisgICAgICAgICBGYWxzZQorICAgICAgICAgPj4+IGEudG9saXN0KCkKKyAgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gPG1vZHVsZT4KKyAgICAgICAgIE5vdEltcGxlbWVudGVkRXJyb3I6IG1lbW9yeXZpZXc6IHVuc3VwcG9ydGVkIGZvcm1hdCBUez5sOng6Pmw6eTp9CiAKICAgIC4uIGF0dHJpYnV0ZTo6IGl0ZW1zaXplCiAKICAgICAgIFRoZSBzaXplIGluIGJ5dGVzIG9mIGVhY2ggZWxlbWVudCBvZiB0aGUgbWVtb3J5dmlldzo6CiAKLSAgICAgICAgID4+PiBtID0gbWVtb3J5dmlldyhhcnJheS5hcnJheSgnSCcsIFsxLDIsM10pKQorICAgICAgICAgPj4+IGltcG9ydCBhcnJheSwgc3RydWN0CisgICAgICAgICA+Pj4gbSA9IG1lbW9yeXZpZXcoYXJyYXkuYXJyYXkoJ0gnLCBbMzIwMDAsIDMyMDAxLCAzMjAwMl0pKQogICAgICAgICAgPj4+IG0uaXRlbXNpemUKICAgICAgICAgIDIKICAgICAgICAgID4+PiBtWzBdCi0gICAgICAgICBiJ1x4MDFceDAwJwotICAgICAgICAgPj4+IGxlbihtWzBdKSA9PSBtLml0ZW1zaXplCisgICAgICAgICAzMjAwMAorICAgICAgICAgPj4+IHN0cnVjdC5jYWxjc2l6ZSgnSCcpID09IG0uaXRlbXNpemUKICAgICAgICAgIFRydWUKIAotICAgLi4gYXR0cmlidXRlOjogc2hhcGUKLQotICAgICAgQSB0dXBsZSBvZiBpbnRlZ2VycyB0aGUgbGVuZ3RoIG9mIDphdHRyOmBuZGltYCBnaXZpbmcgdGhlIHNoYXBlIG9mIHRoZQotICAgICAgbWVtb3J5IGFzIGEgTi1kaW1lbnNpb25hbCBhcnJheS4KLQogICAgLi4gYXR0cmlidXRlOjogbmRpbQogCiAgICAgICBBbiBpbnRlZ2VyIGluZGljYXRpbmcgaG93IG1hbnkgZGltZW5zaW9ucyBvZiBhIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5IHRoZQogICAgICAgbWVtb3J5IHJlcHJlc2VudHMuCiAKKyAgIC4uIGF0dHJpYnV0ZTo6IHNoYXBlCisKKyAgICAgIEEgdHVwbGUgb2YgaW50ZWdlcnMgdGhlIGxlbmd0aCBvZiA6YXR0cjpgbmRpbWAgZ2l2aW5nIHRoZSBzaGFwZSBvZiB0aGUKKyAgICAgIG1lbW9yeSBhcyBhIE4tZGltZW5zaW9uYWwgYXJyYXkuCisKICAgIC4uIGF0dHJpYnV0ZTo6IHN0cmlkZXMKIAogICAgICAgQSB0dXBsZSBvZiBpbnRlZ2VycyB0aGUgbGVuZ3RoIG9mIDphdHRyOmBuZGltYCBnaXZpbmcgdGhlIHNpemUgaW4gYnl0ZXMgdG8KICAgICAgIGFjY2VzcyBlYWNoIGVsZW1lbnQgZm9yIGVhY2ggZGltZW5zaW9uIG9mIHRoZSBhcnJheS4KIAotICAgLi4gYXR0cmlidXRlOjogcmVhZG9ubHkKKyAgIC4uIGF0dHJpYnV0ZTo6IHN1Ym9mZnNldHMKIAotICAgICAgQSBib29sIGluZGljYXRpbmcgd2hldGhlciB0aGUgbWVtb3J5IGlzIHJlYWQgb25seS4KKyAgICAgIFVzZWQgaW50ZXJuYWxseSBmb3IgUElMLXN0eWxlIGFycmF5cy4gVGhlIHZhbHVlIGlzIGluZm9ybWF0aW9uYWwgb25seS4KIAotICAgLi4gbWVtb3J5dmlldy5zdWJvZmZzZXRzIGlzbid0IGRvY3VtZW50ZWQgYmVjYXVzZSBpdCBvbmx5IHNlZW1zIHVzZWZ1bCBmb3IgQworICAgLi4gYXR0cmlidXRlOjogY19jb250aWd1b3VzCisKKyAgICAgIEEgYm9vbCBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIG1lbW9yeSBpcyBDLWNvbnRpZ3VvdXMuCisKKyAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisgICAuLiBhdHRyaWJ1dGU6OiBmX2NvbnRpZ3VvdXMKKworICAgICAgQSBib29sIGluZGljYXRpbmcgd2hldGhlciB0aGUgbWVtb3J5IGlzIEZvcnRyYW4gY29udGlndW91cy4KKworICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKyAgIC4uIGF0dHJpYnV0ZTo6IGNvbnRpZ3VvdXMKKworICAgICAgQSBib29sIGluZGljYXRpbmcgd2hldGhlciB0aGUgbWVtb3J5IGlzIGNvbnRpZ3VvdXMuCisKKyAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiAKIC4uIF90eXBlY29udGV4dG1hbmFnZXI6CkBAIC0yNzEwLDcgKzI5OTIsNyBAQAogCiBUaGlzIG9iamVjdCBpcyByZXR1cm5lZCBieSBmdW5jdGlvbnMgdGhhdCBkb24ndCBleHBsaWNpdGx5IHJldHVybiBhIHZhbHVlLiAgSXQKIHN1cHBvcnRzIG5vIHNwZWNpYWwgb3BlcmF0aW9ucy4gIFRoZXJlIGlzIGV4YWN0bHkgb25lIG51bGwgb2JqZWN0LCBuYW1lZAotYGBOb25lYGAgKGEgYnVpbHQtaW4gbmFtZSkuCitgYE5vbmVgYCAoYSBidWlsdC1pbiBuYW1lKS4gIGBgdHlwZShOb25lKSgpYGAgcHJvZHVjZXMgdGhlIHNhbWUgc2luZ2xldG9uLgogCiBJdCBpcyB3cml0dGVuIGFzIGBgTm9uZWBgLgogCkBAIC0yNzIyLDcgKzMwMDQsOCBAQAogCiBUaGlzIG9iamVjdCBpcyBjb21tb25seSB1c2VkIGJ5IHNsaWNpbmcgKHNlZSA6cmVmOmBzbGljaW5nc2ApLiAgSXQgc3VwcG9ydHMgbm8KIHNwZWNpYWwgb3BlcmF0aW9ucy4gIFRoZXJlIGlzIGV4YWN0bHkgb25lIGVsbGlwc2lzIG9iamVjdCwgbmFtZWQKLTpjb25zdDpgRWxsaXBzaXNgIChhIGJ1aWx0LWluIG5hbWUpLgorOmNvbnN0OmBFbGxpcHNpc2AgKGEgYnVpbHQtaW4gbmFtZSkuICBgYHR5cGUoRWxsaXBzaXMpKClgYCBwcm9kdWNlcyB0aGUKKzpjb25zdDpgRWxsaXBzaXNgIHNpbmdsZXRvbi4KIAogSXQgaXMgd3JpdHRlbiBhcyBgYEVsbGlwc2lzYGAgb3IgYGAuLi5gYC4KIApAQCAtMjczNCw3ICszMDE3LDggQEAKIAogVGhpcyBvYmplY3QgaXMgcmV0dXJuZWQgZnJvbSBjb21wYXJpc29ucyBhbmQgYmluYXJ5IG9wZXJhdGlvbnMgd2hlbiB0aGV5IGFyZQogYXNrZWQgdG8gb3BlcmF0ZSBvbiB0eXBlcyB0aGV5IGRvbid0IHN1cHBvcnQuIFNlZSA6cmVmOmBjb21wYXJpc29uc2AgZm9yIG1vcmUKLWluZm9ybWF0aW9uLgoraW5mb3JtYXRpb24uICBUaGVyZSBpcyBleGFjdGx5IG9uZSBgYE5vdEltcGxlbWVudGVkYGAgb2JqZWN0LgorYGB0eXBlKE5vdEltcGxlbWVudGVkKSgpYGAgcHJvZHVjZXMgdGhlIHNpbmdsZXRvbiBpbnN0YW5jZS4KIAogSXQgaXMgd3JpdHRlbiBhcyBgYE5vdEltcGxlbWVudGVkYGAuCiAKQEAgLTI4MDAsNiArMzA4NCwxMyBAQAogICAgVGhlIG5hbWUgb2YgdGhlIGNsYXNzIG9yIHR5cGUuCiAKIAorLi4gYXR0cmlidXRlOjogY2xhc3MuX19xdWFsbmFtZV9fCisKKyAgIFRoZSA6dGVybTpgcXVhbGlmaWVkIG5hbWVgIG9mIHRoZSBjbGFzcyBvciB0eXBlLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAuLiBhdHRyaWJ1dGU6OiBjbGFzcy5fX21yb19fCiAKICAgIFRoaXMgYXR0cmlidXRlIGlzIGEgdHVwbGUgb2YgY2xhc3NlcyB0aGF0IGFyZSBjb25zaWRlcmVkIHdoZW4gbG9va2luZyBmb3IKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3N0cnVjdC5yc3QgYi9Eb2MvbGlicmFyeS9zdHJ1Y3QucnN0CmluZGV4IDEyODIwZTAuLjk5NDUwNmMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3N0cnVjdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc3RydWN0LnJzdApAQCAtMTg3LDE3ICsxODcsMjQgQEAKIHwgYGBRYGAgIHwgOmM6dHlwZTpgdW5zaWduZWQgbG9uZyAgIHwgaW50ZWdlciAgICAgICAgICAgIHwgOCAgICAgICAgICAgICAgfCBcKDIpLCBcKDMpIHwKIHwgICAgICAgIHwgbG9uZ2AgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKLXwgYGBmYGAgIHwgOmM6dHlwZTpgZmxvYXRgICAgICAgICAgIHwgZmxvYXQgICAgICAgICAgICAgIHwgNCAgICAgICAgICAgICAgfCBcKDQpICAgICAgIHwKK3wgYGBuYGAgIHwgOmM6dHlwZTpgc3NpemVfdGAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCBcKDQpICAgICAgIHwKICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKLXwgYGBkYGAgIHwgOmM6dHlwZTpgZG91YmxlYCAgICAgICAgIHwgZmxvYXQgICAgICAgICAgICAgIHwgOCAgICAgICAgICAgICAgfCBcKDQpICAgICAgIHwKK3wgYGBOYGAgIHwgOmM6dHlwZTpgc2l6ZV90YCAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCBcKDQpICAgICAgIHwKKystLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKK3wgYGBmYGAgIHwgOmM6dHlwZTpgZmxvYXRgICAgICAgICAgIHwgZmxvYXQgICAgICAgICAgICAgIHwgNCAgICAgICAgICAgICAgfCBcKDUpICAgICAgIHwKKystLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKK3wgYGBkYGAgIHwgOmM6dHlwZTpgZG91YmxlYCAgICAgICAgIHwgZmxvYXQgICAgICAgICAgICAgIHwgOCAgICAgICAgICAgICAgfCBcKDUpICAgICAgIHwKICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKIHwgYGBzYGAgIHwgOmM6dHlwZTpgY2hhcltdYCAgICAgICAgIHwgYnl0ZXMgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKIHwgYGBwYGAgIHwgOmM6dHlwZTpgY2hhcltdYCAgICAgICAgIHwgYnl0ZXMgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwKICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKLXwgYGBQYGAgIHwgOmM6dHlwZTpgdm9pZCBcKmAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCBcKDUpICAgICAgIHwKK3wgYGBQYGAgIHwgOmM6dHlwZTpgdm9pZCBcKmAgICAgICAgIHwgaW50ZWdlciAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgfCBcKDYpICAgICAgIHwKICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKIAorLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgIEFkZGVkIHN1cHBvcnQgZm9yIHRoZSBgYCduJ2BgIGFuZCBgYCdOJ2BgIGZvcm1hdHMuCisKIE5vdGVzOgogCiAoMSkKQEAgLTIxOSwxMSArMjI2LDE3IEBACiAgICAgICBVc2Ugb2YgdGhlIDptZXRoOmBfX2luZGV4X19gIG1ldGhvZCBmb3Igbm9uLWludGVnZXJzIGlzIG5ldyBpbiAzLjIuCiAKICg0KQorICAgVGhlIGBgJ24nYGAgYW5kIGBgJ04nYGAgY29udmVyc2lvbiBjb2RlcyBhcmUgb25seSBhdmFpbGFibGUgZm9yIHRoZSBuYXRpdmUKKyAgIHNpemUgKHNlbGVjdGVkIGFzIHRoZSBkZWZhdWx0IG9yIHdpdGggdGhlIGBgJ0AnYGAgYnl0ZSBvcmRlciBjaGFyYWN0ZXIpLgorICAgRm9yIHRoZSBzdGFuZGFyZCBzaXplLCB5b3UgY2FuIHVzZSB3aGljaGV2ZXIgb2YgdGhlIG90aGVyIGludGVnZXIgZm9ybWF0cworICAgZml0cyB5b3VyIGFwcGxpY2F0aW9uLgorCisoNSkKICAgIEZvciB0aGUgYGAnZidgYCBhbmQgYGAnZCdgYCBjb252ZXJzaW9uIGNvZGVzLCB0aGUgcGFja2VkIHJlcHJlc2VudGF0aW9uIHVzZXMKICAgIHRoZSBJRUVFIDc1NCBiaW5hcnkzMiAoZm9yIGBgJ2YnYGApIG9yIGJpbmFyeTY0IChmb3IgYGAnZCdgYCkgZm9ybWF0LAogICAgcmVnYXJkbGVzcyBvZiB0aGUgZmxvYXRpbmctcG9pbnQgZm9ybWF0IHVzZWQgYnkgdGhlIHBsYXRmb3JtLgogCi0oNSkKKyg2KQogICAgVGhlIGBgJ1AnYGAgZm9ybWF0IGNoYXJhY3RlciBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdGhlIG5hdGl2ZSBieXRlIG9yZGVyaW5nCiAgICAoc2VsZWN0ZWQgYXMgdGhlIGRlZmF1bHQgb3Igd2l0aCB0aGUgYGAnQCdgYCBieXRlIG9yZGVyIGNoYXJhY3RlcikuIFRoZSBieXRlCiAgICBvcmRlciBjaGFyYWN0ZXIgYGAnPSdgYCBjaG9vc2VzIHRvIHVzZSBsaXR0bGUtIG9yIGJpZy1lbmRpYW4gb3JkZXJpbmcgYmFzZWQKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3N1YnByb2Nlc3MucnN0IGIvRG9jL2xpYnJhcnkvc3VicHJvY2Vzcy5yc3QKaW5kZXggOTBhMDFkMC4uYThkNjViMiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc3VicHJvY2Vzcy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvc3VicHJvY2Vzcy5yc3QKQEAgLTMwLDE2ICszMCwyMSBAQAogdXNlIGNhc2VzLCB0aGUgdW5kZXJseWluZyA6Y2xhc3M6YFBvcGVuYCBpbnRlcmZhY2UgY2FuIGJlIHVzZWQgZGlyZWN0bHkuCiAKIAotLi4gZnVuY3Rpb246OiBjYWxsKGFyZ3MsICosIHN0ZGluPU5vbmUsIHN0ZG91dD1Ob25lLCBzdGRlcnI9Tm9uZSwgc2hlbGw9RmFsc2UpCisuLiBmdW5jdGlvbjo6IGNhbGwoYXJncywgKiwgc3RkaW49Tm9uZSwgc3Rkb3V0PU5vbmUsIHN0ZGVycj1Ob25lLCBzaGVsbD1GYWxzZSwgdGltZW91dD1Ob25lKQogCiAgICBSdW4gdGhlIGNvbW1hbmQgZGVzY3JpYmVkIGJ5ICphcmdzKi4gIFdhaXQgZm9yIGNvbW1hbmQgdG8gY29tcGxldGUsIHRoZW4KICAgIHJldHVybiB0aGUgOmF0dHI6YHJldHVybmNvZGVgIGF0dHJpYnV0ZS4KIAogICAgVGhlIGFyZ3VtZW50cyBzaG93biBhYm92ZSBhcmUgbWVyZWx5IHRoZSBtb3N0IGNvbW1vbiBvbmVzLCBkZXNjcmliZWQgYmVsb3cKLSAgIGluIDpyZWY6YGZyZXF1ZW50bHktdXNlZC1hcmd1bWVudHNgIChoZW5jZSB0aGUgc2xpZ2h0bHkgb2RkIG5vdGF0aW9uIGluCi0gICB0aGUgYWJicmV2aWF0ZWQgc2lnbmF0dXJlKS4gVGhlIGZ1bGwgZnVuY3Rpb24gc2lnbmF0dXJlIGlzIHRoZSBzYW1lIGFzCi0gICB0aGF0IG9mIHRoZSA6Y2xhc3M6YFBvcGVuYCBjb25zdHJ1Y3RvciAtIHRoaXMgZnVuY3Rpb25zIHBhc3NlcyBhbGwKLSAgIHN1cHBsaWVkIGFyZ3VtZW50cyBkaXJlY3RseSB0aHJvdWdoIHRvIHRoYXQgaW50ZXJmYWNlLgorICAgaW4gOnJlZjpgZnJlcXVlbnRseS11c2VkLWFyZ3VtZW50c2AgKGhlbmNlIHRoZSB1c2Ugb2Yga2V5d29yZC1vbmx5IG5vdGF0aW9uCisgICBpbiB0aGUgYWJicmV2aWF0ZWQgc2lnbmF0dXJlKS4gVGhlIGZ1bGwgZnVuY3Rpb24gc2lnbmF0dXJlIGlzIGxhcmdlbHkgdGhlCisgICBzYW1lIGFzIHRoYXQgb2YgdGhlIDpjbGFzczpgUG9wZW5gIGNvbnN0cnVjdG9yIC0gdGhpcyBmdW5jdGlvbiBwYXNzZXMgYWxsCisgICBzdXBwbGllZCBhcmd1bWVudHMgb3RoZXIgdGhhbiAqdGltZW91dCogZGlyZWN0bHkgdGhyb3VnaCB0byB0aGF0IGludGVyZmFjZS4KKworICAgVGhlICp0aW1lb3V0KiBhcmd1bWVudCBpcyBwYXNzZWQgdG8gOm1ldGg6YFBvcGVuLndhaXRgLiBJZiB0aGUgdGltZW91dAorICAgZXhwaXJlcywgdGhlIGNoaWxkIHByb2Nlc3Mgd2lsbCBiZSBraWxsZWQgYW5kIHRoZW4gd2FpdGVkIGZvciBhZ2Fpbi4gIFRoZQorICAgOmV4YzpgVGltZW91dEV4cGlyZWRgIGV4Y2VwdGlvbiB3aWxsIGJlIHJlLXJhaXNlZCBhZnRlciB0aGUgY2hpbGQgcHJvY2VzcworICAgaGFzIHRlcm1pbmF0ZWQuCiAKICAgIEV4YW1wbGVzOjoKIApAQCAtNjIsOCArNjcsMTEgQEAKICAgICAgIHByb2Nlc3MgbWF5IGJsb2NrIGlmIGl0IGdlbmVyYXRlcyBlbm91Z2ggb3V0cHV0IHRvIGEgcGlwZSB0byBmaWxsIHVwCiAgICAgICB0aGUgT1MgcGlwZSBidWZmZXIuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAqdGltZW91dCogd2FzIGFkZGVkLgogCi0uLiBmdW5jdGlvbjo6IGNoZWNrX2NhbGwoYXJncywgKiwgc3RkaW49Tm9uZSwgc3Rkb3V0PU5vbmUsIHN0ZGVycj1Ob25lLCBzaGVsbD1GYWxzZSkKKworLi4gZnVuY3Rpb246OiBjaGVja19jYWxsKGFyZ3MsICosIHN0ZGluPU5vbmUsIHN0ZG91dD1Ob25lLCBzdGRlcnI9Tm9uZSwgc2hlbGw9RmFsc2UsIHRpbWVvdXQ9Tm9uZSkKIAogICAgUnVuIGNvbW1hbmQgd2l0aCBhcmd1bWVudHMuICBXYWl0IGZvciBjb21tYW5kIHRvIGNvbXBsZXRlLiBJZiB0aGUgcmV0dXJuCiAgICBjb2RlIHdhcyB6ZXJvIHRoZW4gcmV0dXJuLCBvdGhlcndpc2UgcmFpc2UgOmV4YzpgQ2FsbGVkUHJvY2Vzc0Vycm9yYC4gVGhlCkBAIC03MSwxMCArNzksMTUgQEAKICAgIDphdHRyOmByZXR1cm5jb2RlYCBhdHRyaWJ1dGUuCiAKICAgIFRoZSBhcmd1bWVudHMgc2hvd24gYWJvdmUgYXJlIG1lcmVseSB0aGUgbW9zdCBjb21tb24gb25lcywgZGVzY3JpYmVkIGJlbG93Ci0gICBpbiA6cmVmOmBmcmVxdWVudGx5LXVzZWQtYXJndW1lbnRzYCAoaGVuY2UgdGhlIHNsaWdodGx5IG9kZCBub3RhdGlvbiBpbgotICAgdGhlIGFiYnJldmlhdGVkIHNpZ25hdHVyZSkuIFRoZSBmdWxsIGZ1bmN0aW9uIHNpZ25hdHVyZSBpcyB0aGUgc2FtZSBhcwotICAgdGhhdCBvZiB0aGUgOmNsYXNzOmBQb3BlbmAgY29uc3RydWN0b3IgLSB0aGlzIGZ1bmN0aW9ucyBwYXNzZXMgYWxsCi0gICBzdXBwbGllZCBhcmd1bWVudHMgZGlyZWN0bHkgdGhyb3VnaCB0byB0aGF0IGludGVyZmFjZS4KKyAgIGluIDpyZWY6YGZyZXF1ZW50bHktdXNlZC1hcmd1bWVudHNgIChoZW5jZSB0aGUgdXNlIG9mIGtleXdvcmQtb25seSBub3RhdGlvbgorICAgaW4gdGhlIGFiYnJldmlhdGVkIHNpZ25hdHVyZSkuIFRoZSBmdWxsIGZ1bmN0aW9uIHNpZ25hdHVyZSBpcyBsYXJnZWx5IHRoZQorICAgc2FtZSBhcyB0aGF0IG9mIHRoZSA6Y2xhc3M6YFBvcGVuYCBjb25zdHJ1Y3RvciAtIHRoaXMgZnVuY3Rpb24gcGFzc2VzIGFsbAorICAgc3VwcGxpZWQgYXJndW1lbnRzIG90aGVyIHRoYW4gKnRpbWVvdXQqIGRpcmVjdGx5IHRocm91Z2ggdG8gdGhhdCBpbnRlcmZhY2UuCisKKyAgIFRoZSAqdGltZW91dCogYXJndW1lbnQgaXMgcGFzc2VkIHRvIDptZXRoOmBQb3Blbi53YWl0YC4gSWYgdGhlIHRpbWVvdXQKKyAgIGV4cGlyZXMsIHRoZSBjaGlsZCBwcm9jZXNzIHdpbGwgYmUga2lsbGVkIGFuZCB0aGVuIHdhaXRlZCBmb3IgYWdhaW4uICBUaGUKKyAgIDpleGM6YFRpbWVvdXRFeHBpcmVkYCBleGNlcHRpb24gd2lsbCBiZSByZS1yYWlzZWQgYWZ0ZXIgdGhlIGNoaWxkIHByb2Nlc3MKKyAgIGhhcyB0ZXJtaW5hdGVkLgogCiAgICBFeGFtcGxlczo6CiAKQEAgLTg2LDggKzk5LDYgQEAKICAgICAgICAgIC4uLgogICAgICAgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6IENvbW1hbmQgJ2V4aXQgMScgcmV0dXJuZWQgbm9uLXplcm8gZXhpdCBzdGF0dXMgMQogCi0gICAuLiB2ZXJzaW9uYWRkZWQ6OiAyLjUKLQogICAgLi4gd2FybmluZzo6CiAKICAgICAgIEludm9raW5nIHRoZSBzeXN0ZW0gc2hlbGwgd2l0aCBgYHNoZWxsPVRydWVgYCBjYW4gYmUgYSBzZWN1cml0eSBoYXphcmQKQEAgLTEwMSw4ICsxMTIsMTEgQEAKICAgICAgIHByb2Nlc3MgbWF5IGJsb2NrIGlmIGl0IGdlbmVyYXRlcyBlbm91Z2ggb3V0cHV0IHRvIGEgcGlwZSB0byBmaWxsIHVwCiAgICAgICB0aGUgT1MgcGlwZSBidWZmZXIuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAqdGltZW91dCogd2FzIGFkZGVkLgogCi0uLiBmdW5jdGlvbjo6IGNoZWNrX291dHB1dChhcmdzLCAqLCBzdGRpbj1Ob25lLCBzdGRlcnI9Tm9uZSwgc2hlbGw9RmFsc2UsIHVuaXZlcnNhbF9uZXdsaW5lcz1GYWxzZSkKKworLi4gZnVuY3Rpb246OiBjaGVja19vdXRwdXQoYXJncywgKiwgc3RkaW49Tm9uZSwgc3RkZXJyPU5vbmUsIHNoZWxsPUZhbHNlLCB1bml2ZXJzYWxfbmV3bGluZXM9RmFsc2UsIHRpbWVvdXQ9Tm9uZSkKIAogICAgUnVuIGNvbW1hbmQgd2l0aCBhcmd1bWVudHMgYW5kIHJldHVybiBpdHMgb3V0cHV0IGFzIGEgYnl0ZSBzdHJpbmcuCiAKQEAgLTExMiwxMSArMTI2LDE3IEBACiAgICBhdHRyaWJ1dGUuCiAKICAgIFRoZSBhcmd1bWVudHMgc2hvd24gYWJvdmUgYXJlIG1lcmVseSB0aGUgbW9zdCBjb21tb24gb25lcywgZGVzY3JpYmVkIGJlbG93Ci0gICBpbiA6cmVmOmBmcmVxdWVudGx5LXVzZWQtYXJndW1lbnRzYCAoaGVuY2UgdGhlIHNsaWdodGx5IG9kZCBub3RhdGlvbiBpbgotICAgdGhlIGFiYnJldmlhdGVkIHNpZ25hdHVyZSkuIFRoZSBmdWxsIGZ1bmN0aW9uIHNpZ25hdHVyZSBpcyBsYXJnZWx5IHRoZQotICAgc2FtZSBhcyB0aGF0IG9mIHRoZSA6Y2xhc3M6YFBvcGVuYCBjb25zdHJ1Y3RvciwgZXhjZXB0IHRoYXQgKnN0ZG91dCogaXMKLSAgIG5vdCBwZXJtaXR0ZWQgYXMgaXQgaXMgdXNlZCBpbnRlcm5hbGx5LiBBbGwgb3RoZXIgc3VwcGxpZWQgYXJndW1lbnRzIGFyZQotICAgcGFzc2VkIGRpcmVjdGx5IHRocm91Z2ggdG8gdGhlIDpjbGFzczpgUG9wZW5gIGNvbnN0cnVjdG9yLgorICAgaW4gOnJlZjpgZnJlcXVlbnRseS11c2VkLWFyZ3VtZW50c2AgKGhlbmNlIHRoZSB1c2Ugb2Yga2V5d29yZC1vbmx5IG5vdGF0aW9uCisgICBpbiB0aGUgYWJicmV2aWF0ZWQgc2lnbmF0dXJlKS4gVGhlIGZ1bGwgZnVuY3Rpb24gc2lnbmF0dXJlIGlzIGxhcmdlbHkgdGhlCisgICBzYW1lIGFzIHRoYXQgb2YgdGhlIDpjbGFzczpgUG9wZW5gIGNvbnN0cnVjdG9yIC0gdGhpcyBmdW5jdGlvbnMgcGFzc2VzIGFsbAorICAgc3VwcGxpZWQgYXJndW1lbnRzIG90aGVyIHRoYW4gKnRpbWVvdXQqIGRpcmVjdGx5IHRocm91Z2ggdG8gdGhhdCBpbnRlcmZhY2UuCisgICBJbiBhZGRpdGlvbiwgKnN0ZG91dCogaXMgbm90IHBlcm1pdHRlZCBhcyBhbiBhcmd1bWVudCwgYXMgaXQgaXMgdXNlZAorICAgaW50ZXJuYWxseSB0byBjb2xsZWN0IHRoZSBvdXRwdXQgZnJvbSB0aGUgc3VicHJvY2Vzcy4KKworICAgVGhlICp0aW1lb3V0KiBhcmd1bWVudCBpcyBwYXNzZWQgdG8gOm1ldGg6YFBvcGVuLndhaXRgLiBJZiB0aGUgdGltZW91dAorICAgZXhwaXJlcywgdGhlIGNoaWxkIHByb2Nlc3Mgd2lsbCBiZSBraWxsZWQgYW5kIHRoZW4gd2FpdGVkIGZvciBhZ2Fpbi4gIFRoZQorICAgOmV4YzpgVGltZW91dEV4cGlyZWRgIGV4Y2VwdGlvbiB3aWxsIGJlIHJlLXJhaXNlZCBhZnRlciB0aGUgY2hpbGQgcHJvY2VzcworICAgaGFzIHRlcm1pbmF0ZWQuCiAKICAgIEV4YW1wbGVzOjoKIApAQCAtMTQ3LDcgKzE2Nyw3IEBACiAgICAgICAuLi4gICAgIHNoZWxsPVRydWUpCiAgICAgICAnbHM6IG5vbl9leGlzdGVudF9maWxlOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5XG4nCiAKLSAgIC4uIHZlcnNpb25hZGRlZDo6IDIuNworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4xCiAKICAgIC4uIHdhcm5pbmc6OgogCkBAIC0xNjEsNiArMTgxLDE4IEBACiAgICAgICByZWFkIGluIHRoZSBjdXJyZW50IHByb2Nlc3MsIHRoZSBjaGlsZCBwcm9jZXNzIG1heSBibG9jayBpZiBpdAogICAgICAgZ2VuZXJhdGVzIGVub3VnaCBvdXRwdXQgdG8gdGhlIHBpcGUgdG8gZmlsbCB1cCB0aGUgT1MgcGlwZSBidWZmZXIuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAqdGltZW91dCogd2FzIGFkZGVkLgorCisKKy4uIGRhdGE6OiBERVZOVUxMCisKKyAgIFNwZWNpYWwgdmFsdWUgdGhhdCBjYW4gYmUgdXNlZCBhcyB0aGUgKnN0ZGluKiwgKnN0ZG91dCogb3IgKnN0ZGVyciogYXJndW1lbnQKKyAgIHRvIDpjbGFzczpgUG9wZW5gIGFuZCBpbmRpY2F0ZXMgdGhhdCB0aGUgc3BlY2lhbCBmaWxlIDpkYXRhOmBvcy5kZXZudWxsYAorICAgd2lsbCBiZSB1c2VkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogCiAuLiBkYXRhOjogUElQRQogCkBAIC0xOTYsMTMgKzIyOCwxNCBAQAogCiAgICAqc3RkaW4qLCAqc3Rkb3V0KiBhbmQgKnN0ZGVyciogc3BlY2lmeSB0aGUgZXhlY3V0ZWQgcHJvZ3JhbSdzIHN0YW5kYXJkIGlucHV0LAogICAgc3RhbmRhcmQgb3V0cHV0IGFuZCBzdGFuZGFyZCBlcnJvciBmaWxlIGhhbmRsZXMsIHJlc3BlY3RpdmVseS4gIFZhbGlkIHZhbHVlcwotICAgYXJlIDpkYXRhOmBQSVBFYCwgYW4gZXhpc3RpbmcgZmlsZSBkZXNjcmlwdG9yIChhIHBvc2l0aXZlIGludGVnZXIpLCBhbgotICAgZXhpc3RpbmcgZmlsZSBvYmplY3QsIGFuZCBgYE5vbmVgYC4gIDpkYXRhOmBQSVBFYCBpbmRpY2F0ZXMgdGhhdCBhIG5ldyBwaXBlCi0gICB0byB0aGUgY2hpbGQgc2hvdWxkIGJlIGNyZWF0ZWQuICBXaXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzIG9mIGBgTm9uZWBgLCBubwotICAgcmVkaXJlY3Rpb24gd2lsbCBvY2N1cjsgdGhlIGNoaWxkJ3MgZmlsZSBoYW5kbGVzIHdpbGwgYmUgaW5oZXJpdGVkIGZyb20gdGhlCi0gICBwYXJlbnQuICBBZGRpdGlvbmFsbHksICpzdGRlcnIqIGNhbiBiZSA6ZGF0YTpgU1RET1VUYCwgd2hpY2ggaW5kaWNhdGVzIHRoYXQKLSAgIHRoZSBzdGRlcnIgZGF0YSBmcm9tIHRoZSBjaGlsZCBwcm9jZXNzIHNob3VsZCBiZSBjYXB0dXJlZCBpbnRvIHRoZSBzYW1lIGZpbGUKLSAgIGhhbmRsZSBhcyBmb3Igc3Rkb3V0LgorICAgYXJlIDpkYXRhOmBQSVBFYCwgOmRhdGE6YERFVk5VTExgLCBhbiBleGlzdGluZyBmaWxlIGRlc2NyaXB0b3IgKGEgcG9zaXRpdmUKKyAgIGludGVnZXIpLCBhbiBleGlzdGluZyBmaWxlIG9iamVjdCwgYW5kIGBgTm9uZWBgLiAgOmRhdGE6YFBJUEVgIGluZGljYXRlcworICAgdGhhdCBhIG5ldyBwaXBlIHRvIHRoZSBjaGlsZCBzaG91bGQgYmUgY3JlYXRlZC4gIDpkYXRhOmBERVZOVUxMYCBpbmRpY2F0ZXMKKyAgIHRoYXQgdGhlIHNwZWNpYWwgZmlsZSA6ZGF0YTpgb3MuZGV2bnVsbGAgd2lsbCBiZSB1c2VkLiAgV2l0aCB0aGUgZGVmYXVsdAorICAgc2V0dGluZ3Mgb2YgYGBOb25lYGAsIG5vIHJlZGlyZWN0aW9uIHdpbGwgb2NjdXI7IHRoZSBjaGlsZCdzIGZpbGUgaGFuZGxlcworICAgd2lsbCBiZSBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50LiAgQWRkaXRpb25hbGx5LCAqc3RkZXJyKiBjYW4gYmUKKyAgIDpkYXRhOmBTVERPVVRgLCB3aGljaCBpbmRpY2F0ZXMgdGhhdCB0aGUgc3RkZXJyIGRhdGEgZnJvbSB0aGUgY2hpbGQKKyAgIHByb2Nlc3Mgc2hvdWxkIGJlIGNhcHR1cmVkIGludG8gdGhlIHNhbWUgZmlsZSBoYW5kbGUgYXMgZm9yICpzdGRvdXQqLgogCiAgICBXaGVuICpzdGRvdXQqIG9yICpzdGRlcnIqIGFyZSBwaXBlcyBhbmQgKnVuaXZlcnNhbF9uZXdsaW5lcyogaXMKICAgIDpjb25zdDpgVHJ1ZWAgdGhlbiB0aGUgb3V0cHV0IGRhdGEgaXMgYXNzdW1lZCB0byBiZSBlbmNvZGVkIGFzIFVURi04IGFuZApAQCAtMzMxLDEzICszNjQsMTQgQEAKIAogICAgKnN0ZGluKiwgKnN0ZG91dCogYW5kICpzdGRlcnIqIHNwZWNpZnkgdGhlIGV4ZWN1dGVkIHByb2dyYW0ncyBzdGFuZGFyZCBpbnB1dCwKICAgIHN0YW5kYXJkIG91dHB1dCBhbmQgc3RhbmRhcmQgZXJyb3IgZmlsZSBoYW5kbGVzLCByZXNwZWN0aXZlbHkuICBWYWxpZCB2YWx1ZXMKLSAgIGFyZSA6ZGF0YTpgUElQRWAsIGFuIGV4aXN0aW5nIGZpbGUgZGVzY3JpcHRvciAoYSBwb3NpdGl2ZSBpbnRlZ2VyKSwgYW4KLSAgIGV4aXN0aW5nIDp0ZXJtOmBmaWxlIG9iamVjdGAsIGFuZCBgYE5vbmVgYC4gIDpkYXRhOmBQSVBFYCBpbmRpY2F0ZXMgdGhhdCBhCi0gICBuZXcgcGlwZSB0byB0aGUgY2hpbGQgc2hvdWxkIGJlIGNyZWF0ZWQuICBXaXRoIHRoZSBkZWZhdWx0IHNldHRpbmdzIG9mCi0gICBgYE5vbmVgYCwgbm8gcmVkaXJlY3Rpb24gd2lsbCBvY2N1cjsgdGhlIGNoaWxkJ3MgZmlsZSBoYW5kbGVzIHdpbGwgYmUKLSAgIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQuICBBZGRpdGlvbmFsbHksICpzdGRlcnIqIGNhbiBiZSA6ZGF0YTpgU1RET1VUYCwKLSAgIHdoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBzdGRlcnIgZGF0YSBmcm9tIHRoZSBhcHBsaWNhdGlvbnMgc2hvdWxkIGJlCi0gICBjYXB0dXJlZCBpbnRvIHRoZSBzYW1lIGZpbGUgaGFuZGxlIGFzIGZvciBzdGRvdXQuCisgICBhcmUgOmRhdGE6YFBJUEVgLCA6ZGF0YTpgREVWTlVMTGAsIGFuIGV4aXN0aW5nIGZpbGUgZGVzY3JpcHRvciAoYSBwb3NpdGl2ZQorICAgaW50ZWdlciksIGFuIGV4aXN0aW5nIDp0ZXJtOmBmaWxlIG9iamVjdGAsIGFuZCBgYE5vbmVgYC4gIDpkYXRhOmBQSVBFYAorICAgaW5kaWNhdGVzIHRoYXQgYSBuZXcgcGlwZSB0byB0aGUgY2hpbGQgc2hvdWxkIGJlIGNyZWF0ZWQuICA6ZGF0YTpgREVWTlVMTGAKKyAgIGluZGljYXRlcyB0aGF0IHRoZSBzcGVjaWFsIGZpbGUgOmRhdGE6YG9zLmRldm51bGxgIHdpbGwgYmUgdXNlZC4gV2l0aCB0aGUKKyAgIGRlZmF1bHQgc2V0dGluZ3Mgb2YgYGBOb25lYGAsIG5vIHJlZGlyZWN0aW9uIHdpbGwgb2NjdXI7IHRoZSBjaGlsZCdzIGZpbGUKKyAgIGhhbmRsZXMgd2lsbCBiZSBpbmhlcml0ZWQgZnJvbSB0aGUgcGFyZW50LiAgQWRkaXRpb25hbGx5LCAqc3RkZXJyKiBjYW4gYmUKKyAgIDpkYXRhOmBTVERPVVRgLCB3aGljaCBpbmRpY2F0ZXMgdGhhdCB0aGUgc3RkZXJyIGRhdGEgZnJvbSB0aGUgYXBwbGljYXRpb25zCisgICBzaG91bGQgYmUgY2FwdHVyZWQgaW50byB0aGUgc2FtZSBmaWxlIGhhbmRsZSBhcyBmb3Igc3Rkb3V0LgogCiAgICBJZiAqcHJlZXhlY19mbiogaXMgc2V0IHRvIGEgY2FsbGFibGUgb2JqZWN0LCB0aGlzIG9iamVjdCB3aWxsIGJlIGNhbGxlZCBpbiB0aGUKICAgIGNoaWxkIHByb2Nlc3MganVzdCBiZWZvcmUgdGhlIGNoaWxkIGlzIGV4ZWN1dGVkLgpAQCAtNDU2LDYgKzQ5MCwxNSBAQAogOmV4YzpgQ2FsbGVkUHJvY2Vzc0Vycm9yYCBpZiB0aGUgY2FsbGVkIHByb2Nlc3MgcmV0dXJucyBhIG5vbi16ZXJvIHJldHVybgogY29kZS4KIAorQWxsIG9mIHRoZSBmdW5jdGlvbnMgYW5kIG1ldGhvZHMgdGhhdCBhY2NlcHQgYSAqdGltZW91dCogcGFyYW1ldGVyLCBzdWNoIGFzCis6ZnVuYzpgY2FsbGAgYW5kIDptZXRoOmBQb3Blbi5jb21tdW5pY2F0ZWAgd2lsbCByYWlzZSA6ZXhjOmBUaW1lb3V0RXhwaXJlZGAgaWYKK3RoZSB0aW1lb3V0IGV4cGlyZXMgYmVmb3JlIHRoZSBwcm9jZXNzIGV4aXRzLgorCitFeGNlcHRpb25zIGRlZmluZWQgaW4gdGhpcyBtb2R1bGUgYWxsIGluaGVyaXQgZnJvbSA6ZXhjOmBTdWJwcm9jZXNzRXJyb3JgLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgIFRoZSA6ZXhjOmBTdWJwcm9jZXNzRXJyb3JgIGJhc2UgY2xhc3Mgd2FzIGFkZGVkLgorCiAKIFNlY3VyaXR5CiBeXl5eXl5eXgpAQCAtNDc5LDExICs1MjIsMTUgQEAKICAgIGF0dHJpYnV0ZS4KIAogCi0uLiBtZXRob2Q6OiBQb3Blbi53YWl0KCkKKy4uIG1ldGhvZDo6IFBvcGVuLndhaXQodGltZW91dD1Ob25lKQogCiAgICBXYWl0IGZvciBjaGlsZCBwcm9jZXNzIHRvIHRlcm1pbmF0ZS4gIFNldCBhbmQgcmV0dXJuIDphdHRyOmByZXR1cm5jb2RlYAogICAgYXR0cmlidXRlLgogCisgICBJZiB0aGUgcHJvY2VzcyBkb2VzIG5vdCB0ZXJtaW5hdGUgYWZ0ZXIgKnRpbWVvdXQqIHNlY29uZHMsIHJhaXNlIGEKKyAgIDpleGM6YFRpbWVvdXRFeHBpcmVkYCBleGNlcHRpb24uICBJdCBpcyBzYWZlIHRvIGNhdGNoIHRoaXMgZXhjZXB0aW9uIGFuZAorICAgcmV0cnkgdGhlIHdhaXQuCisKICAgIC4uIHdhcm5pbmc6OgogCiAgICAgICBUaGlzIHdpbGwgZGVhZGxvY2sgd2hlbiB1c2luZyBgYHN0ZG91dD1QSVBFYGAgYW5kL29yCkBAIC00OTEsMTMgKzUzOCwxNyBAQAogICAgICAgYSBwaXBlIHN1Y2ggdGhhdCBpdCBibG9ja3Mgd2FpdGluZyBmb3IgdGhlIE9TIHBpcGUgYnVmZmVyIHRvCiAgICAgICBhY2NlcHQgbW9yZSBkYXRhLiAgVXNlIDptZXRoOmBjb21tdW5pY2F0ZWAgdG8gYXZvaWQgdGhhdC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICp0aW1lb3V0KiB3YXMgYWRkZWQuCiAKLS4uIG1ldGhvZDo6IFBvcGVuLmNvbW11bmljYXRlKGlucHV0PU5vbmUpCisKKy4uIG1ldGhvZDo6IFBvcGVuLmNvbW11bmljYXRlKGlucHV0PU5vbmUsIHRpbWVvdXQ9Tm9uZSkKIAogICAgSW50ZXJhY3Qgd2l0aCBwcm9jZXNzOiBTZW5kIGRhdGEgdG8gc3RkaW4uICBSZWFkIGRhdGEgZnJvbSBzdGRvdXQgYW5kIHN0ZGVyciwKLSAgIHVudGlsIGVuZC1vZi1maWxlIGlzIHJlYWNoZWQuICBXYWl0IGZvciBwcm9jZXNzIHRvIHRlcm1pbmF0ZS4gVGhlIG9wdGlvbmFsCi0gICAqaW5wdXQqIGFyZ3VtZW50IHNob3VsZCBiZSBhIGJ5dGUgc3RyaW5nIHRvIGJlIHNlbnQgdG8gdGhlIGNoaWxkIHByb2Nlc3MsIG9yCi0gICBgYE5vbmVgYCwgaWYgbm8gZGF0YSBzaG91bGQgYmUgc2VudCB0byB0aGUgY2hpbGQuCisgICB1bnRpbCBlbmQtb2YtZmlsZSBpcyByZWFjaGVkLiAgV2FpdCBmb3IgcHJvY2VzcyB0byB0ZXJtaW5hdGUuICBUaGUgb3B0aW9uYWwKKyAgICppbnB1dCogYXJndW1lbnQgc2hvdWxkIGJlIGRhdGEgdG8gYmUgc2VudCB0byB0aGUgY2hpbGQgcHJvY2Vzcywgb3IKKyAgIGBgTm9uZWBgLCBpZiBubyBkYXRhIHNob3VsZCBiZSBzZW50IHRvIHRoZSBjaGlsZC4gIFRoZSB0eXBlIG9mICppbnB1dCoKKyAgIG11c3QgYmUgYnl0ZXMgb3IsIGlmICp1bml2ZXJzYWxfbmV3bGluZXMqIHdhcyBgYFRydWVgYCwgYSBzdHJpbmcuCiAKICAgIDptZXRoOmBjb21tdW5pY2F0ZWAgcmV0dXJucyBhIHR1cGxlIGBgKHN0ZG91dGRhdGEsIHN0ZGVycmRhdGEpYGAuCiAKQEAgLTUwNiwxMSArNTU3LDI5IEBACiAgICBgYE5vbmVgYCBpbiB0aGUgcmVzdWx0IHR1cGxlLCB5b3UgbmVlZCB0byBnaXZlIGBgc3Rkb3V0PVBJUEVgYCBhbmQvb3IKICAgIGBgc3RkZXJyPVBJUEVgYCB0b28uCiAKKyAgIElmIHRoZSBwcm9jZXNzIGRvZXMgbm90IHRlcm1pbmF0ZSBhZnRlciAqdGltZW91dCogc2Vjb25kcywgYQorICAgOmV4YzpgVGltZW91dEV4cGlyZWRgIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZC4gIENhdGNoaW5nIHRoaXMgZXhjZXB0aW9uIGFuZAorICAgcmV0cnlpbmcgY29tbXVuaWNhdGlvbiB3aWxsIG5vdCBsb3NlIGFueSBvdXRwdXQuCisKKyAgIFRoZSBjaGlsZCBwcm9jZXNzIGlzIG5vdCBraWxsZWQgaWYgdGhlIHRpbWVvdXQgZXhwaXJlcywgc28gaW4gb3JkZXIgdG8KKyAgIGNsZWFudXAgcHJvcGVybHkgYSB3ZWxsLWJlaGF2ZWQgYXBwbGljYXRpb24gc2hvdWxkIGtpbGwgdGhlIGNoaWxkIHByb2Nlc3MgYW5kCisgICBmaW5pc2ggY29tbXVuaWNhdGlvbjo6CisKKyAgICAgIHByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKC4uLikKKyAgICAgIHRyeToKKyAgICAgICAgICBvdXRzLCBlcnJzID0gcHJvYy5jb21tdW5pY2F0ZSh0aW1lb3V0PTE1KQorICAgICAgZXhjZXB0IFRpbWVvdXRFeHBpcmVkOgorICAgICAgICAgIHByb2Mua2lsbCgpCisgICAgICAgICAgb3V0cywgZXJycyA9IHByb2MuY29tbXVuaWNhdGUoKQorCiAgICAuLiBub3RlOjoKIAogICAgICAgVGhlIGRhdGEgcmVhZCBpcyBidWZmZXJlZCBpbiBtZW1vcnksIHNvIGRvIG5vdCB1c2UgdGhpcyBtZXRob2QgaWYgdGhlIGRhdGEKICAgICAgIHNpemUgaXMgbGFyZ2Ugb3IgdW5saW1pdGVkLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgKnRpbWVvdXQqIHdhcyBhZGRlZC4KKwogCiAuLiBtZXRob2Q6OiBQb3Blbi5zZW5kX3NpZ25hbChzaWduYWwpCiAKQEAgLTk1MiwzICsxMDIxLDkgQEAKICAgIGJhY2tzbGFzaC4gIElmIHRoZSBudW1iZXIgb2YgYmFja3NsYXNoZXMgaXMgb2RkLCB0aGUgbGFzdAogICAgYmFja3NsYXNoIGVzY2FwZXMgdGhlIG5leHQgZG91YmxlIHF1b3RhdGlvbiBtYXJrIGFzCiAgICBkZXNjcmliZWQgaW4gcnVsZSAzLgorCisKKy4uIHNlZWFsc286OgorCisgICA6bW9kOmBzaGxleGAKKyAgICAgIE1vZHVsZSB3aGljaCBwcm92aWRlcyBmdW5jdGlvbiB0byBwYXJzZSBhbmQgZXNjYXBlIGNvbW1hbmQgbGluZXMuCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS9zeXMucnN0IGIvRG9jL2xpYnJhcnkvc3lzLnJzdAppbmRleCAwZTRhZGVjLi4xNTE2ZTNjIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS9zeXMucnN0CisrKyBiL0RvYy9saWJyYXJ5L3N5cy5yc3QKQEAgLTI5LDYgKzI5LDMyIEBACiAgICBjb21tYW5kIGxpbmUsIHNlZSB0aGUgOm1vZDpgZmlsZWlucHV0YCBtb2R1bGUuCiAKIAorLi4gZGF0YTo6IGJhc2VfZXhlY19wcmVmaXgKKworICAgU2V0IGR1cmluZyBQeXRob24gc3RhcnR1cCwgYmVmb3JlIGBgc2l0ZS5weWBgIGlzIHJ1biwgdG8gdGhlIHNhbWUgdmFsdWUgYXMKKyAgIDpkYXRhOmBleGVjX3ByZWZpeGAuIElmIG5vdCBydW5uaW5nIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudCwgdGhlIHZhbHVlcworICAgd2lsbCBzdGF5IHRoZSBzYW1lOyBpZiBgYHNpdGUucHlgYCBmaW5kcyB0aGF0IGEgdmlydHVhbCBlbnZpcm9ubWVudCBpcyBpbgorICAgdXNlLCB0aGUgdmFsdWVzIG9mIDpkYXRhOmBwcmVmaXhgIGFuZCA6ZGF0YTpgZXhlY19wcmVmaXhgIHdpbGwgYmUgY2hhbmdlZCB0bworICAgcG9pbnQgdG8gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQsIHdoZXJlYXMgOmRhdGE6YGJhc2VfcHJlZml4YCBhbmQKKyAgIDpkYXRhOmBiYXNlX2V4ZWNfcHJlZml4YCB3aWxsIHJlbWFpbiBwb2ludGluZyB0byB0aGUgYmFzZSBQeXRob24KKyAgIGluc3RhbGxhdGlvbiAodGhlIG9uZSB3aGljaCB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCB3YXMgY3JlYXRlZCBmcm9tKS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZGF0YTo6IGJhc2VfcHJlZml4CisKKyAgIFNldCBkdXJpbmcgUHl0aG9uIHN0YXJ0dXAsIGJlZm9yZSBgYHNpdGUucHlgYCBpcyBydW4sIHRvIHRoZSBzYW1lIHZhbHVlIGFzCisgICA6ZGF0YTpgcHJlZml4YC4gSWYgbm90IHJ1bm5pbmcgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LCB0aGUgdmFsdWVzCisgICB3aWxsIHN0YXkgdGhlIHNhbWU7IGlmIGBgc2l0ZS5weWBgIGZpbmRzIHRoYXQgYSB2aXJ0dWFsIGVudmlyb25tZW50IGlzIGluCisgICB1c2UsIHRoZSB2YWx1ZXMgb2YgOmRhdGE6YHByZWZpeGAgYW5kIDpkYXRhOmBleGVjX3ByZWZpeGAgd2lsbCBiZSBjaGFuZ2VkIHRvCisgICBwb2ludCB0byB0aGUgdmlydHVhbCBlbnZpcm9ubWVudCwgd2hlcmVhcyA6ZGF0YTpgYmFzZV9wcmVmaXhgIGFuZAorICAgOmRhdGE6YGJhc2VfZXhlY19wcmVmaXhgIHdpbGwgcmVtYWluIHBvaW50aW5nIHRvIHRoZSBiYXNlIFB5dGhvbgorICAgaW5zdGFsbGF0aW9uICh0aGUgb25lIHdoaWNoIHRoZSB2aXJ0dWFsIGVudmlyb25tZW50IHdhcyBjcmVhdGVkIGZyb20pLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAuLiBkYXRhOjogYnl0ZW9yZGVyCiAKICAgIEFuIGluZGljYXRvciBvZiB0aGUgbmF0aXZlIGJ5dGUgb3JkZXIuICBUaGlzIHdpbGwgaGF2ZSB0aGUgdmFsdWUgYGAnYmlnJ2BgIG9uCkBAIC04MCw2ICsxMDYsMjIgQEAKICAgIFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHVzZWQgZm9yIGludGVybmFsIGFuZCBzcGVjaWFsaXplZCBwdXJwb3NlcyBvbmx5LgogCiAKKy4uIGZ1bmN0aW9uOjogX2RlYnVnbWFsbG9jc3RhdHMoKQorCisgICBQcmludCBsb3ctbGV2ZWwgaW5mb3JtYXRpb24gdG8gc3RkZXJyIGFib3V0IHRoZSBzdGF0ZSBvZiBDUHl0aG9uJ3MgbWVtb3J5CisgICBhbGxvY2F0b3IuCisKKyAgIElmIFB5dGhvbiBpcyBjb25maWd1cmVkIC0td2l0aC1weWRlYnVnLCBpdCBhbHNvIHBlcmZvcm1zIHNvbWUgZXhwZW5zaXZlCisgICBpbnRlcm5hbCBjb25zaXN0ZW5jeSBjaGVja3MuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisgICAuLiBpbXBsLWRldGFpbDo6CisKKyAgICAgIFRoaXMgZnVuY3Rpb24gaXMgc3BlY2lmaWMgdG8gQ1B5dGhvbi4gIFRoZSBleGFjdCBvdXRwdXQgZm9ybWF0IGlzIG5vdAorICAgICAgZGVmaW5lZCBoZXJlLCBhbmQgbWF5IGNoYW5nZS4KKworCiAuLiBkYXRhOjogZGxsaGFuZGxlCiAKICAgIEludGVnZXIgc3BlY2lmeWluZyB0aGUgaGFuZGxlIG9mIHRoZSBQeXRob24gRExMLiBBdmFpbGFiaWxpdHk6IFdpbmRvd3MuCkBAIC0xOTksNiArMjQxLDEwIEBACiAgICBpbnN0YWxsZWQgaW4gOmZpbGU6YHtleGVjX3ByZWZpeH0vbGliL3B5dGhvbntYLll9L2xpYi1keW5sb2FkYCwgd2hlcmUgKlguWSoKICAgIGlzIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBQeXRob24sIGZvciBleGFtcGxlIGBgMy4yYGAuCiAKKyAgIC4uIG5vdGU6OiBJZiBhIHZpcnR1YWwgZW52aXJvbm1lbnQgaXMgaW4gZWZmZWN0LCB0aGlzIHZhbHVlIHdpbGwgYmUgY2hhbmdlZAorICAgICAgaW4gYGBzaXRlLnB5YGAgdG8gcG9pbnQgdG8gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQuIFRoZSB2YWx1ZSBmb3IgdGhlCisgICAgICBQeXRob24gaW5zdGFsbGF0aW9uIHdpbGwgc3RpbGwgYmUgYXZhaWxhYmxlLCB2aWEgOmRhdGE6YGJhc2VfZXhlY19wcmVmaXhgLgorCiAKIC4uIGRhdGE6OiBleGVjdXRhYmxlCiAKQEAgLTIzNSwxNCArMjgxLDEzIEBACiAKIC4uIGRhdGE6OiBmbGFncwogCi0gICBUaGUgc3RydWN0IHNlcXVlbmNlICpmbGFncyogZXhwb3NlcyB0aGUgc3RhdHVzIG9mIGNvbW1hbmQgbGluZSBmbGFncy4gVGhlCi0gICBhdHRyaWJ1dGVzIGFyZSByZWFkIG9ubHkuCisgICBUaGUgOnRlcm06YHN0cnVjdCBzZXF1ZW5jZWAgKmZsYWdzKiBleHBvc2VzIHRoZSBzdGF0dXMgb2YgY29tbWFuZCBsaW5lCisgICBmbGFncy4gVGhlIGF0dHJpYnV0ZXMgYXJlIHJlYWQgb25seS4KIAogICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICAgIGF0dHJpYnV0ZSAgICAgICAgICAgICAgICAgICAgIGZsYWcKICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAgICA6Y29uc3Q6YGRlYnVnYCAgICAgICAgICAgICAgICA6b3B0aW9uOmAtZGAKLSAgIDpjb25zdDpgZGl2aXNpb25fd2FybmluZ2AgICAgIDpvcHRpb246YC1RYAogICAgOmNvbnN0OmBpbnNwZWN0YCAgICAgICAgICAgICAgOm9wdGlvbjpgLWlgCiAgICA6Y29uc3Q6YGludGVyYWN0aXZlYCAgICAgICAgICA6b3B0aW9uOmAtaWAKICAgIDpjb25zdDpgb3B0aW1pemVgICAgICAgICAgICAgIDpvcHRpb246YC1PYCBvciA6b3B0aW9uOmAtT09gCkBAIC0yNjIsMTUgKzMwNywxOCBAQAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yLjMKICAgICAgIFRoZSBgYGhhc2hfcmFuZG9taXphdGlvbmBgIGF0dHJpYnV0ZS4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFJlbW92ZWQgb2Jzb2xldGUgYGBkaXZpc2lvbl93YXJuaW5nYGAgYXR0cmlidXRlLgorCiAKIC4uIGRhdGE6OiBmbG9hdF9pbmZvCiAKLSAgIEEgc3RydWN0c2VxIGhvbGRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZsb2F0IHR5cGUuIEl0IGNvbnRhaW5zIGxvdyBsZXZlbAotICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByZWNpc2lvbiBhbmQgaW50ZXJuYWwgcmVwcmVzZW50YXRpb24uICBUaGUgdmFsdWVzCi0gICBjb3JyZXNwb25kIHRvIHRoZSB2YXJpb3VzIGZsb2F0aW5nLXBvaW50IGNvbnN0YW50cyBkZWZpbmVkIGluIHRoZSBzdGFuZGFyZAotICAgaGVhZGVyIGZpbGUgOmZpbGU6YGZsb2F0LmhgIGZvciB0aGUgJ0MnIHByb2dyYW1taW5nIGxhbmd1YWdlOyBzZWUgc2VjdGlvbgotICAgNS4yLjQuMi4yIG9mIHRoZSAxOTk5IElTTy9JRUMgQyBzdGFuZGFyZCBbQzk5XV8sICdDaGFyYWN0ZXJpc3RpY3Mgb2YKLSAgIGZsb2F0aW5nIHR5cGVzJywgZm9yIGRldGFpbHMuCisgICBBIDp0ZXJtOmBzdHJ1Y3Qgc2VxdWVuY2VgIGhvbGRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZsb2F0IHR5cGUuIEl0CisgICBjb250YWlucyBsb3cgbGV2ZWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHByZWNpc2lvbiBhbmQgaW50ZXJuYWwKKyAgIHJlcHJlc2VudGF0aW9uLiAgVGhlIHZhbHVlcyBjb3JyZXNwb25kIHRvIHRoZSB2YXJpb3VzIGZsb2F0aW5nLXBvaW50CisgICBjb25zdGFudHMgZGVmaW5lZCBpbiB0aGUgc3RhbmRhcmQgaGVhZGVyIGZpbGUgOmZpbGU6YGZsb2F0LmhgIGZvciB0aGUgJ0MnCisgICBwcm9ncmFtbWluZyBsYW5ndWFnZTsgc2VlIHNlY3Rpb24gNS4yLjQuMi4yIG9mIHRoZSAxOTk5IElTTy9JRUMgQyBzdGFuZGFyZAorICAgW0M5OV1fLCAnQ2hhcmFjdGVyaXN0aWNzIG9mIGZsb2F0aW5nIHR5cGVzJywgZm9yIGRldGFpbHMuCiAKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgIHwgYXR0cmlidXRlICAgICAgICAgICB8IGZsb2F0LmggbWFjcm8gIHwgZXhwbGFuYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKQEAgLTQwOSw2ICs0NTcsOSBAQAogICAgZG9lcyBub3QgaGF2ZSB0byBob2xkIHRydWUgZm9yIHRoaXJkLXBhcnR5IGV4dGVuc2lvbnMgYXMgaXQgaXMgaW1wbGVtZW50YXRpb24KICAgIHNwZWNpZmljLgogCisgICBPbmx5IHRoZSBtZW1vcnkgY29uc3VtcHRpb24gZGlyZWN0bHkgYXR0cmlidXRlZCB0byB0aGUgb2JqZWN0IGlzCisgICBhY2NvdW50ZWQgZm9yLCBub3QgdGhlIG1lbW9yeSBjb25zdW1wdGlvbiBvZiBvYmplY3RzIGl0IHJlZmVycyB0by4KKwogICAgSWYgZ2l2ZW4sICpkZWZhdWx0KiB3aWxsIGJlIHJldHVybmVkIGlmIHRoZSBvYmplY3QgZG9lcyBub3QgcHJvdmlkZSBtZWFucyB0bwogICAgcmV0cmlldmUgdGhlIHNpemUuICBPdGhlcndpc2UgYSA6ZXhjOmBUeXBlRXJyb3JgIHdpbGwgYmUgcmFpc2VkLgogCkBAIC01MjAsOCArNTcxLDkgQEAKIAogLi4gZGF0YTo6IGhhc2hfaW5mbwogCi0gICBBIHN0cnVjdHNlcSBnaXZpbmcgcGFyYW1ldGVycyBvZiB0aGUgbnVtZXJpYyBoYXNoIGltcGxlbWVudGF0aW9uLiAgRm9yCi0gICBtb3JlIGRldGFpbHMgYWJvdXQgaGFzaGluZyBvZiBudW1lcmljIHR5cGVzLCBzZWUgOnJlZjpgbnVtZXJpYy1oYXNoYC4KKyAgIEEgOnRlcm06YHN0cnVjdCBzZXF1ZW5jZWAgZ2l2aW5nIHBhcmFtZXRlcnMgb2YgdGhlIG51bWVyaWMgaGFzaAorICAgaW1wbGVtZW50YXRpb24uICBGb3IgbW9yZSBkZXRhaWxzIGFib3V0IGhhc2hpbmcgb2YgbnVtZXJpYyB0eXBlcywgc2VlCisgICA6cmVmOmBudW1lcmljLWhhc2hgLgogCiAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgfCBhdHRyaWJ1dGUgICAgICAgICAgIHwgZXhwbGFuYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKQEAgLTU1Niw4ICs2MDgsOCBAQAogCiAgICBUaGlzIGlzIGNhbGxlZCBgYGhleHZlcnNpb25gYCBzaW5jZSBpdCBvbmx5IHJlYWxseSBsb29rcyBtZWFuaW5nZnVsIHdoZW4gdmlld2VkCiAgICBhcyB0aGUgcmVzdWx0IG9mIHBhc3NpbmcgaXQgdG8gdGhlIGJ1aWx0LWluIDpmdW5jOmBoZXhgIGZ1bmN0aW9uLiAgVGhlCi0gICBzdHJ1Y3Qgc2VxdWVuY2UgIDpkYXRhOmBzeXMudmVyc2lvbl9pbmZvYCBtYXkgYmUgdXNlZCBmb3IgYSBtb3JlIGh1bWFuLWZyaWVuZGx5Ci0gICBlbmNvZGluZyBvZiB0aGUgc2FtZSBpbmZvcm1hdGlvbi4KKyAgIDp0ZXJtOmBzdHJ1Y3Qgc2VxdWVuY2VgICA6ZGF0YTpgc3lzLnZlcnNpb25faW5mb2AgbWF5IGJlIHVzZWQgZm9yIGEgbW9yZQorICAgaHVtYW4tZnJpZW5kbHkgZW5jb2Rpbmcgb2YgdGhlIHNhbWUgaW5mb3JtYXRpb24uCiAKICAgIFRoZSBgYGhleHZlcnNpb25gYCBpcyBhIDMyLWJpdCBudW1iZXIgd2l0aCB0aGUgZm9sbG93aW5nIGxheW91dDoKIApAQCAtNTgzLDEwICs2MzUsNTEgQEAKIAogICAgVGh1cyBgYDIuMS4wYTNgYCBpcyBoZXh2ZXJzaW9uIGBgMHgwMjAxMDBhM2BgLgogCisKKy4uIGRhdGE6OiBpbXBsZW1lbnRhdGlvbgorCisgICBBbiBvYmplY3QgY29udGFpbmluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlCisgICBjdXJyZW50bHkgcnVubmluZyBQeXRob24gaW50ZXJwcmV0ZXIuICBUaGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXJlCisgICByZXF1aXJlZCB0byBleGlzdCBpbiBhbGwgUHl0aG9uIGltcGxlbWVudGF0aW9ucy4KKworICAgKm5hbWUqIGlzIHRoZSBpbXBsZW1lbnRhdGlvbidzIGlkZW50aWZpZXIsIGUuZy4gYGAnY3B5dGhvbidgYC4gIFRoZSBhY3R1YWwKKyAgIHN0cmluZyBpcyBkZWZpbmVkIGJ5IHRoZSBQeXRob24gaW1wbGVtZW50YXRpb24sIGJ1dCBpdCBpcyBndWFyYW50ZWVkIHRvIGJlCisgICBsb3dlciBjYXNlLgorCisgICAqdmVyc2lvbiogaXMgYSBuYW1lZCB0dXBsZSwgaW4gdGhlIHNhbWUgZm9ybWF0IGFzCisgICA6ZGF0YTpgc3lzLnZlcnNpb25faW5mb2AuICBJdCByZXByZXNlbnRzIHRoZSB2ZXJzaW9uIG9mIHRoZSBQeXRob24KKyAgICppbXBsZW1lbnRhdGlvbiouICBUaGlzIGhhcyBhIGRpc3RpbmN0IG1lYW5pbmcgZnJvbSB0aGUgc3BlY2lmaWMKKyAgIHZlcnNpb24gb2YgdGhlIFB5dGhvbiAqbGFuZ3VhZ2UqIHRvIHdoaWNoIHRoZSBjdXJyZW50bHkgcnVubmluZworICAgaW50ZXJwcmV0ZXIgY29uZm9ybXMsIHdoaWNoIGBgc3lzLnZlcnNpb25faW5mb2BgIHJlcHJlc2VudHMuICBGb3IKKyAgIGV4YW1wbGUsIGZvciBQeVB5IDEuOCBgYHN5cy5pbXBsZW1lbnRhdGlvbi52ZXJzaW9uYGAgbWlnaHQgYmUKKyAgIGBgc3lzLnZlcnNpb25faW5mbygxLCA4LCAwLCAnZmluYWwnLCAwKWBgLCB3aGVyZWFzIGBgc3lzLnZlcnNpb25faW5mb2BgCisgICB3b3VsZCBiZSBgYHN5cy52ZXJzaW9uX2luZm8oMiwgNywgMiwgJ2ZpbmFsJywgMClgYC4gIEZvciBDUHl0aG9uIHRoZXkKKyAgIGFyZSB0aGUgc2FtZSB2YWx1ZSwgc2luY2UgaXQgaXMgdGhlIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbi4KKworICAgKmhleHZlcnNpb24qIGlzIHRoZSBpbXBsZW1lbnRhdGlvbiB2ZXJzaW9uIGluIGhleGFkZWNpbWFsIGZvcm1hdCwgbGlrZQorICAgOmRhdGE6YHN5cy5oZXh2ZXJzaW9uYC4KKworICAgKmNhY2hlX3RhZyogaXMgdGhlIHRhZyB1c2VkIGJ5IHRoZSBpbXBvcnQgbWFjaGluZXJ5IGluIHRoZSBmaWxlbmFtZXMgb2YKKyAgIGNhY2hlZCBtb2R1bGVzLiAgQnkgY29udmVudGlvbiwgaXQgd291bGQgYmUgYSBjb21wb3NpdGUgb2YgdGhlCisgICBpbXBsZW1lbnRhdGlvbidzIG5hbWUgYW5kIHZlcnNpb24sIGxpa2UgYGAnY3B5dGhvbi0zMydgYC4gIEhvd2V2ZXIsIGEKKyAgIFB5dGhvbiBpbXBsZW1lbnRhdGlvbiBtYXkgdXNlIHNvbWUgb3RoZXIgdmFsdWUgaWYgYXBwcm9wcmlhdGUuICBJZgorICAgYGBjYWNoZV90YWdgYCBpcyBzZXQgdG8gYGBOb25lYGAsIGl0IGluZGljYXRlcyB0aGF0IG1vZHVsZSBjYWNoaW5nIHNob3VsZAorICAgYmUgZGlzYWJsZWQuCisKKyAgIDpkYXRhOmBzeXMuaW1wbGVtZW50YXRpb25gIG1heSBjb250YWluIGFkZGl0aW9uYWwgYXR0cmlidXRlcyBzcGVjaWZpYyB0bworICAgdGhlIFB5dGhvbiBpbXBsZW1lbnRhdGlvbi4gIFRoZXNlIG5vbi1zdGFuZGFyZCBhdHRyaWJ1dGVzIG11c3Qgc3RhcnQgd2l0aAorICAgYW4gdW5kZXJzY29yZSwgYW5kIGFyZSBub3QgZGVzY3JpYmVkIGhlcmUuICBSZWdhcmRsZXNzIG9mIGl0cyBjb250ZW50cywKKyAgIDpkYXRhOmBzeXMuaW1wbGVtZW50YXRpb25gIHdpbGwgbm90IGNoYW5nZSBkdXJpbmcgYSBydW4gb2YgdGhlIGludGVycHJldGVyLAorICAgbm9yIGJldHdlZW4gaW1wbGVtZW50YXRpb24gdmVyc2lvbnMuICAoSXQgbWF5IGNoYW5nZSBiZXR3ZWVuIFB5dGhvbgorICAgbGFuZ3VhZ2UgdmVyc2lvbnMsIGhvd2V2ZXIuKSAgU2VlIGBQRVAgNDIxYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKwogLi4gZGF0YTo6IGludF9pbmZvCiAKLSAgIEEgc3RydWN0IHNlcXVlbmNlIHRoYXQgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgUHl0aG9uJ3MKLSAgIGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIGludGVnZXJzLiAgVGhlIGF0dHJpYnV0ZXMgYXJlIHJlYWQgb25seS4KKyAgIEEgOnRlcm06YHN0cnVjdCBzZXF1ZW5jZWAgdGhhdCBob2xkcyBpbmZvcm1hdGlvbiBhYm91dCBQeXRob24ncyBpbnRlcm5hbAorICAgcmVwcmVzZW50YXRpb24gb2YgaW50ZWdlcnMuICBUaGUgYXR0cmlidXRlcyBhcmUgcmVhZCBvbmx5LgogCiAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgfCBBdHRyaWJ1dGUgICAgICAgICAgICAgICB8IEV4cGxhbmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKQEAgLTY0MSw5ICs3MzQsMTMgQEAKIAogLi4gZGF0YTo6IG1heHVuaWNvZGUKIAotICAgQW4gaW50ZWdlciBnaXZpbmcgdGhlIGxhcmdlc3Qgc3VwcG9ydGVkIGNvZGUgcG9pbnQgZm9yIGEgVW5pY29kZSBjaGFyYWN0ZXIuICBUaGUKLSAgIHZhbHVlIG9mIHRoaXMgZGVwZW5kcyBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gdGhhdCBzcGVjaWZpZXMgd2hldGhlciBVbmljb2RlCi0gICBjaGFyYWN0ZXJzIGFyZSBzdG9yZWQgYXMgVUNTLTIgb3IgVUNTLTQuCisgICBBbiBpbnRlZ2VyIGdpdmluZyB0aGUgdmFsdWUgb2YgdGhlIGxhcmdlc3QgVW5pY29kZSBjb2RlIHBvaW50LAorICAgaS5lLiBgYDExMTQxMTFgYCAoYGAweDEwRkZGRmBgIGluIGhleGFkZWNpbWFsKS4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEJlZm9yZSA6cGVwOmAzOTNgLCBgYHN5cy5tYXh1bmljb2RlYGAgdXNlZCB0byBiZSBlaXRoZXIgYGAweEZGRkZgYAorICAgICAgb3IgYGAweDEwRkZGRmBgLCBkZXBlbmRpbmcgb24gdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRoYXQgc3BlY2lmaWVkCisgICAgICB3aGV0aGVyIFVuaWNvZGUgY2hhcmFjdGVycyB3ZXJlIHN0b3JlZCBhcyBVQ1MtMiBvciBVQ1MtNC4KIAogCiAuLiBkYXRhOjogbWV0YV9wYXRoCkBAIC03MTgsMzYgKzgxNSwzNSBAQAogICAgVGhpcyBzdHJpbmcgY29udGFpbnMgYSBwbGF0Zm9ybSBpZGVudGlmaWVyIHRoYXQgY2FuIGJlIHVzZWQgdG8gYXBwZW5kCiAgICBwbGF0Zm9ybS1zcGVjaWZpYyBjb21wb25lbnRzIHRvIDpkYXRhOmBzeXMucGF0aGAsIGZvciBpbnN0YW5jZS4KIAotICAgRm9yIG1vc3QgVW5peCBzeXN0ZW1zLCB0aGlzIGlzIHRoZSBsb3dlcmNhc2VkIE9TIG5hbWUgYXMgcmV0dXJuZWQgYnkgYGB1bmFtZQotICAgLXNgYCB3aXRoIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSB2ZXJzaW9uIGFzIHJldHVybmVkIGJ5IGBgdW5hbWUgLXJgYCBhcHBlbmRlZCwKLSAgIGUuZy4gYGAnc3Vub3M1J2BgLCAqYXQgdGhlIHRpbWUgd2hlbiBQeXRob24gd2FzIGJ1aWx0Ki4gIFVubGVzcyB5b3Ugd2FudCB0bwotICAgdGVzdCBmb3IgYSBzcGVjaWZpYyBzeXN0ZW0gdmVyc2lvbiwgaXQgaXMgdGhlcmVmb3JlIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUKLSAgIGZvbGxvd2luZyBpZGlvbTo6CisgICBGb3IgVW5peCBzeXN0ZW1zLCBleGNlcHQgb24gTGludXgsIHRoaXMgaXMgdGhlIGxvd2VyY2FzZWQgT1MgbmFtZSBhcworICAgcmV0dXJuZWQgYnkgYGB1bmFtZSAtc2BgIHdpdGggdGhlIGZpcnN0IHBhcnQgb2YgdGhlIHZlcnNpb24gYXMgcmV0dXJuZWQgYnkKKyAgIGBgdW5hbWUgLXJgYCBhcHBlbmRlZCwgZS5nLiBgYCdzdW5vczUnYGAgb3IgYGAnZnJlZWJzZDgnYGAsICphdCB0aGUgdGltZQorICAgd2hlbiBQeXRob24gd2FzIGJ1aWx0Ki4gIFVubGVzcyB5b3Ugd2FudCB0byB0ZXN0IGZvciBhIHNwZWNpZmljIHN5c3RlbQorICAgdmVyc2lvbiwgaXQgaXMgdGhlcmVmb3JlIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgZm9sbG93aW5nIGlkaW9tOjoKIAogICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2ZyZWVic2QnKToKICAgICAgICAgICAjIEZyZWVCU0Qtc3BlY2lmaWMgY29kZSBoZXJlLi4uCiAgICAgICBlbGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpOgogICAgICAgICAgICMgTGludXgtc3BlY2lmaWMgY29kZSBoZXJlLi4uCiAKLSAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4yLjIKLSAgICAgIFNpbmNlIGxvdHMgb2YgY29kZSBjaGVjayBmb3IgYGBzeXMucGxhdGZvcm0gPT0gJ2xpbnV4MidgYCwgYW5kIHRoZXJlIGlzCi0gICAgICBubyBlc3NlbnRpYWwgY2hhbmdlIGJldHdlZW4gTGludXggMi54IGFuZCAzLngsIGBgc3lzLnBsYXRmb3JtYGAgaXMgYWx3YXlzCi0gICAgICBzZXQgdG8gYGAnbGludXgyJ2BgLCBldmVuIG9uIExpbnV4IDMueC4gIEluIFB5dGhvbiAzLjMgYW5kIGxhdGVyLCB0aGUKLSAgICAgIHZhbHVlIHdpbGwgYWx3YXlzIGJlIHNldCB0byBgYCdsaW51eCdgYCwgc28gaXQgaXMgcmVjb21tZW5kZWQgdG8gYWx3YXlzCi0gICAgICB1c2UgdGhlIGBgc3RhcnRzd2l0aGBgIGlkaW9tIHByZXNlbnRlZCBhYm92ZS4KLQogICAgRm9yIG90aGVyIHN5c3RlbXMsIHRoZSB2YWx1ZXMgYXJlOgogCi0gICA9PT09PT09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgU3lzdGVtICAgICAgICAgICAgICAgICA6ZGF0YTpgcGxhdGZvcm1gIHZhbHVlCi0gICA9PT09PT09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PQotICAgTGludXggKDIueCAqYW5kKiAzLngpICBgYCdsaW51eDInYGAKLSAgIFdpbmRvd3MgICAgICAgICAgICAgICAgYGAnd2luMzInYGAKLSAgIFdpbmRvd3MvQ3lnd2luICAgICAgICAgYGAnY3lnd2luJ2BgCi0gICBNYWMgT1MgWCAgICAgICAgICAgICAgIGBgJ2RhcndpbidgYAotICAgT1MvMiAgICAgICAgICAgICAgICAgICBgYCdvczInYGAKLSAgIE9TLzIgRU1YICAgICAgICAgICAgICAgYGAnb3MyZW14J2BgCi0gICA9PT09PT09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgPT09PT09PT09PT09PT09PSA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgIFN5c3RlbSAgICAgICAgICAgOmRhdGE6YHBsYXRmb3JtYCB2YWx1ZQorICAgPT09PT09PT09PT09PT09PSA9PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgIExpbnV4ICAgICAgICAgICAgYGAnbGludXgnYGAKKyAgIFdpbmRvd3MgICAgICAgICAgYGAnd2luMzInYGAKKyAgIFdpbmRvd3MvQ3lnd2luICAgYGAnY3lnd2luJ2BgCisgICBNYWMgT1MgWCAgICAgICAgIGBgJ2RhcndpbidgYAorICAgT1MvMiAgICAgICAgICAgICBgYCdvczInYGAKKyAgIE9TLzIgRU1YICAgICAgICAgYGAnb3MyZW14J2BgCisgICA9PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgT24gTGludXgsIDphdHRyOmBzeXMucGxhdGZvcm1gIGRvZXNuJ3QgY29udGFpbiB0aGUgbWFqb3IgdmVyc2lvbiBhbnltb3JlLgorICAgICAgSXQgaXMgYWx3YXlzIGBgJ2xpbnV4J2BgLCBpbnN0ZWFkIG9mIGBgJ2xpbnV4MidgYCBvciBgYCdsaW51eDMnYGAuICBTaW5jZQorICAgICAgb2xkZXIgUHl0aG9uIHZlcnNpb25zIGluY2x1ZGUgdGhlIHZlcnNpb24gbnVtYmVyLCBpdCBpcyByZWNvbW1lbmRlZCB0bworICAgICAgYWx3YXlzIHVzZSB0aGUgYGBzdGFydHN3aXRoYGAgaWRpb20gcHJlc2VudGVkIGFib3ZlLgogCiAgICAuLiBzZWVhbHNvOjoKIApAQCAtNzY0LDExICs4NjAsMTUgQEAKICAgIGluZGVwZW5kZW50IFB5dGhvbiBmaWxlcyBhcmUgaW5zdGFsbGVkOyBieSBkZWZhdWx0LCB0aGlzIGlzIHRoZSBzdHJpbmcKICAgIGBgJy91c3IvbG9jYWwnYGAuICBUaGlzIGNhbiBiZSBzZXQgYXQgYnVpbGQgdGltZSB3aXRoIHRoZSBgYC0tcHJlZml4YGAKICAgIGFyZ3VtZW50IHRvIHRoZSA6cHJvZ3JhbTpgY29uZmlndXJlYCBzY3JpcHQuICBUaGUgbWFpbiBjb2xsZWN0aW9uIG9mIFB5dGhvbgotICAgbGlicmFyeSBtb2R1bGVzIGlzIGluc3RhbGxlZCBpbiB0aGUgZGlyZWN0b3J5IDpmaWxlOmB7cHJlZml4fS9saWIvcHl0aG9ue1guWX1gYAorICAgbGlicmFyeSBtb2R1bGVzIGlzIGluc3RhbGxlZCBpbiB0aGUgZGlyZWN0b3J5IDpmaWxlOmB7cHJlZml4fS9saWIvcHl0aG9ue1guWX1gCiAgICB3aGlsZSB0aGUgcGxhdGZvcm0gaW5kZXBlbmRlbnQgaGVhZGVyIGZpbGVzIChhbGwgZXhjZXB0IDpmaWxlOmBweWNvbmZpZy5oYCkgYXJlCiAgICBzdG9yZWQgaW4gOmZpbGU6YHtwcmVmaXh9L2luY2x1ZGUvcHl0aG9ue1guWX1gLCB3aGVyZSAqWC5ZKiBpcyB0aGUgdmVyc2lvbgogICAgbnVtYmVyIG9mIFB5dGhvbiwgZm9yIGV4YW1wbGUgYGAzLjJgYC4KIAorICAgLi4gbm90ZTo6IElmIGEgdmlydHVhbCBlbnZpcm9ubWVudCBpcyBpbiBlZmZlY3QsIHRoaXMgdmFsdWUgd2lsbCBiZSBjaGFuZ2VkCisgICAgICBpbiBgYHNpdGUucHlgYCB0byBwb2ludCB0byB0aGUgdmlydHVhbCBlbnZpcm9ubWVudC4gVGhlIHZhbHVlIGZvciB0aGUKKyAgICAgIFB5dGhvbiBpbnN0YWxsYXRpb24gd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUsIHZpYSA6ZGF0YTpgYmFzZV9wcmVmaXhgLgorCiAKIC4uIGRhdGE6OiBwczEKICAgICAgICAgICBwczIKQEAgLTgwNiwxMSArOTA2LDExIEBACiAgICB0aGUgaW50ZXJwcmV0ZXIgbG9hZHMgZXh0ZW5zaW9uIG1vZHVsZXMuICBBbW9uZyBvdGhlciB0aGluZ3MsIHRoaXMgd2lsbCBlbmFibGUgYQogICAgbGF6eSByZXNvbHZpbmcgb2Ygc3ltYm9scyB3aGVuIGltcG9ydGluZyBhIG1vZHVsZSwgaWYgY2FsbGVkIGFzCiAgICBgYHN5cy5zZXRkbG9wZW5mbGFncygwKWBgLiAgVG8gc2hhcmUgc3ltYm9scyBhY3Jvc3MgZXh0ZW5zaW9uIG1vZHVsZXMsIGNhbGwgYXMKLSAgIGBgc3lzLnNldGRsb3BlbmZsYWdzKGN0eXBlcy5SVExEX0dMT0JBTClgYC4gIFN5bWJvbGljIG5hbWVzIGZvciB0aGUKLSAgIGZsYWcgbW9kdWxlcyBjYW4gYmUgZWl0aGVyIGZvdW5kIGluIHRoZSA6bW9kOmBjdHlwZXNgIG1vZHVsZSwgb3IgaW4gdGhlIDptb2Q6YERMRkNOYAotICAgbW9kdWxlLiBJZiA6bW9kOmBETEZDTmAgaXMgbm90IGF2YWlsYWJsZSwgaXQgY2FuIGJlIGdlbmVyYXRlZCBmcm9tCi0gICA6ZmlsZTpgL3Vzci9pbmNsdWRlL2RsZmNuLmhgIHVzaW5nIHRoZSA6cHJvZ3JhbTpgaDJweWAgc2NyaXB0LiBBdmFpbGFiaWxpdHk6Ci0gICBVbml4LgorICAgYGBzeXMuc2V0ZGxvcGVuZmxhZ3Mob3MuUlRMRF9HTE9CQUwpYGAuICBTeW1ib2xpYyBuYW1lcyBmb3IgdGhlIGZsYWcgbW9kdWxlcworICAgY2FuIGJlIGZvdW5kIGluIHRoZSA6bW9kOmBvc2AgbW9kdWxlIChgYFJUTERfeHh4YGAgY29uc3RhbnRzLCBlLmcuCisgICA6ZGF0YTpgb3MuUlRMRF9MQVpZYCkuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KIAogLi4gZnVuY3Rpb246OiBzZXRwcm9maWxlKHByb2ZpbGVmdW5jKQogCkBAIC0xMDAzLDIyICsxMTAzLDMzIEBACiAgICAgICAgdG8gYSBjb25zb2xlIGFuZCBQeXRob24gYXBwcyBzdGFydGVkIHdpdGggOnByb2dyYW06YHB5dGhvbndgLgogCiAKLS4uIGRhdGE6OiBzdWJ2ZXJzaW9uCisuLiBkYXRhOjogdGhyZWFkX2luZm8KIAotICAgQSB0cmlwbGUgKHJlcG8sIGJyYW5jaCwgdmVyc2lvbikgcmVwcmVzZW50aW5nIHRoZSBTdWJ2ZXJzaW9uIGluZm9ybWF0aW9uIG9mIHRoZQotICAgUHl0aG9uIGludGVycHJldGVyLiAqcmVwbyogaXMgdGhlIG5hbWUgb2YgdGhlIHJlcG9zaXRvcnksIGBgJ0NQeXRob24nYGAuCi0gICAqYnJhbmNoKiBpcyBhIHN0cmluZyBvZiBvbmUgb2YgdGhlIGZvcm1zIGBgJ3RydW5rJ2BgLCBgYCdicmFuY2hlcy9uYW1lJ2BgIG9yCi0gICBgYCd0YWdzL25hbWUnYGAuICp2ZXJzaW9uKiBpcyB0aGUgb3V0cHV0IG9mIGBgc3ZudmVyc2lvbmBgLCBpZiB0aGUgaW50ZXJwcmV0ZXIKLSAgIHdhcyBidWlsdCBmcm9tIGEgU3VidmVyc2lvbiBjaGVja291dDsgaXQgY29udGFpbnMgdGhlIHJldmlzaW9uIG51bWJlciAocmFuZ2UpCi0gICBhbmQgcG9zc2libHkgYSB0cmFpbGluZyAnTScgaWYgdGhlcmUgd2VyZSBsb2NhbCBtb2RpZmljYXRpb25zLiBJZiB0aGUgdHJlZSB3YXMKLSAgIGV4cG9ydGVkIChvciBzdm52ZXJzaW9uIHdhcyBub3QgYXZhaWxhYmxlKSwgaXQgaXMgdGhlIHJldmlzaW9uIG9mCi0gICBgYEluY2x1ZGUvcGF0Y2hsZXZlbC5oYGAgaWYgdGhlIGJyYW5jaCBpcyBhIHRhZy4gT3RoZXJ3aXNlLCBpdCBpcyBgYE5vbmVgYC4KKyAgIEEgOnRlcm06YHN0cnVjdCBzZXF1ZW5jZWAgaG9sZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGhyZWFkCisgICBpbXBsZW1lbnRhdGlvbi4KIAotICAgLi4gZGVwcmVjYXRlZDo6IDMuMi4xCi0gICAgICBQeXRob24gaXMgbm93IGBkZXZlbG9wZWQgPGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvZGV2Z3VpZGUvPmBfIHVzaW5nCi0gICAgICBNZXJjdXJpYWwuICBJbiByZWNlbnQgUHl0aG9uIDMuMiBidWdmaXggcmVsZWFzZXMsIDpkYXRhOmBzdWJ2ZXJzaW9uYAotICAgICAgdGhlcmVmb3JlIGNvbnRhaW5zIHBsYWNlaG9sZGVyIGluZm9ybWF0aW9uLiAgSXQgaXMgcmVtb3ZlZCBpbiBQeXRob24KLSAgICAgIDMuMy4KKyAgICstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgfCBBdHRyaWJ1dGUgICAgICAgIHwgRXhwbGFuYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICArPT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKKyAgIHwgOmNvbnN0OmBuYW1lYCAgICB8IE5hbWUgb2YgdGhlIHRocmVhZCBpbXBsZW1lbnRhdGlvbjogICAgICAgICAgICAgICAgICAgICAgfAorICAgfCAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICB8ICAgICAgICAgICAgICAgICAgfCAgKiBgYCdudCdgYDogV2luZG93cyB0aHJlYWRzICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgIHwgICAgICAgICAgICAgICAgICB8ICAqIGBgJ29zMidgYDogT1MvMiB0aHJlYWRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgfCAgICAgICAgICAgICAgICAgIHwgICogYGAncHRocmVhZCdgYDogUE9TSVggdGhyZWFkcyAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICB8ICAgICAgICAgICAgICAgICAgfCAgKiBgYCdzb2xhcmlzJ2BgOiBTb2xhcmlzIHRocmVhZHMgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgfCA6Y29uc3Q6YGxvY2tgICAgIHwgTmFtZSBvZiB0aGUgbG9jayBpbXBsZW1lbnRhdGlvbjogICAgICAgICAgICAgICAgICAgICAgICB8CisgICB8ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgIHwgICAgICAgICAgICAgICAgICB8ICAqIGBgJ3NlbWFwaG9yZSdgYDogYSBsb2NrIHVzZXMgYSBzZW1hcGhvcmUgICAgICAgICAgICAgfAorICAgfCAgICAgICAgICAgICAgICAgIHwgICogYGAnbXV0ZXgrY29uZCdgYDogYSBsb2NrIHVzZXMgYSBtdXRleCAgICAgICAgICAgICAgICB8CisgICB8ICAgICAgICAgICAgICAgICAgfCAgICBhbmQgYSBjb25kaXRpb24gdmFyaWFibGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgIHwgICAgICAgICAgICAgICAgICB8ICAqIGBgTm9uZWBgIGlmIHRoaXMgaW5mb3JtYXRpb24gaXMgdW5rbm93biAgICAgICAgICAgICAgfAorICAgKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICB8IDpjb25zdDpgdmVyc2lvbmAgfCBOYW1lIGFuZCB2ZXJzaW9uIG9mIHRoZSB0aHJlYWQgbGlicmFyeS4gSXQgaXMgYSBzdHJpbmcsIHwKKyAgIHwgICAgICAgICAgICAgICAgICB8IG9yIGBgTm9uZWBgIGlmIHRoZXNlIGluZm9ybWF0aW9ucyBhcmUgdW5rbm93bi4gICAgICAgICAgfAorICAgKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiAKIC4uIGRhdGE6OiB0cmFjZWJhY2tsaW1pdApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvc3lzbG9nLnJzdCBiL0RvYy9saWJyYXJ5L3N5c2xvZy5yc3QKaW5kZXggNjQ1YzMyNi4uYWEwZjVhMSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvc3lzbG9nLnJzdAorKysgYi9Eb2MvbGlicmFyeS9zeXNsb2cucnN0CkBAIC03OCwxMiArNzgsMTQgQEAKIEZhY2lsaXRpZXM6CiAgICA6Y29uc3Q6YExPR19LRVJOYCwgOmNvbnN0OmBMT0dfVVNFUmAsIDpjb25zdDpgTE9HX01BSUxgLCA6Y29uc3Q6YExPR19EQUVNT05gLAogICAgOmNvbnN0OmBMT0dfQVVUSGAsIDpjb25zdDpgTE9HX0xQUmAsIDpjb25zdDpgTE9HX05FV1NgLCA6Y29uc3Q6YExPR19VVUNQYCwKLSAgIDpjb25zdDpgTE9HX0NST05gLCA6Y29uc3Q6YExPR19TWVNMT0dgIGFuZCA6Y29uc3Q6YExPR19MT0NBTDBgIHRvCi0gICA6Y29uc3Q6YExPR19MT0NBTDdgLgorICAgOmNvbnN0OmBMT0dfQ1JPTmAsIDpjb25zdDpgTE9HX1NZU0xPR2AsIDpjb25zdDpgTE9HX0xPQ0FMMGAgdG8KKyAgIDpjb25zdDpgTE9HX0xPQ0FMN2AsIGFuZCwgaWYgZGVmaW5lZCBpbiBgYDxzeXNsb2cuaD5gYCwKKyAgIDpjb25zdDpgTE9HX0FVVEhQUklWYC4KIAogTG9nIG9wdGlvbnM6Ci0gICA6Y29uc3Q6YExPR19QSURgLCA6Y29uc3Q6YExPR19DT05TYCwgOmNvbnN0OmBMT0dfTkRFTEFZYCwgOmNvbnN0OmBMT0dfTk9XQUlUYAotICAgYW5kIDpjb25zdDpgTE9HX1BFUlJPUmAgaWYgZGVmaW5lZCBpbiBgYDxzeXNsb2cuaD5gYC4KKyAgIDpjb25zdDpgTE9HX1BJRGAsIDpjb25zdDpgTE9HX0NPTlNgLCA6Y29uc3Q6YExPR19OREVMQVlgLCBhbmQsIGlmIGRlZmluZWQKKyAgIGluIGBgPHN5c2xvZy5oPmBgLCA6Y29uc3Q6YExPR19PREVMQVlgLCA6Y29uc3Q6YExPR19OT1dBSVRgLCBhbmQKKyAgIDpjb25zdDpgTE9HX1BFUlJPUmAuCiAKIAogRXhhbXBsZXMKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3RhcmZpbGUucnN0IGIvRG9jL2xpYnJhcnkvdGFyZmlsZS5yc3QKaW5kZXggNDZlNDkwMC4uODZkZDMzZCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvdGFyZmlsZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdGFyZmlsZS5yc3QKQEAgLTEzLDEzICsxMywxMyBAQAogLS0tLS0tLS0tLS0tLS0KIAogVGhlIDptb2Q6YHRhcmZpbGVgIG1vZHVsZSBtYWtlcyBpdCBwb3NzaWJsZSB0byByZWFkIGFuZCB3cml0ZSB0YXIKLWFyY2hpdmVzLCBpbmNsdWRpbmcgdGhvc2UgdXNpbmcgZ3ppcCBvciBiejIgY29tcHJlc3Npb24uCithcmNoaXZlcywgaW5jbHVkaW5nIHRob3NlIHVzaW5nIGd6aXAsIGJ6MiBhbmQgbHptYSBjb21wcmVzc2lvbi4KIFVzZSB0aGUgOm1vZDpgemlwZmlsZWAgbW9kdWxlIHRvIHJlYWQgb3Igd3JpdGUgOmZpbGU6YC56aXBgIGZpbGVzLCBvciB0aGUKIGhpZ2hlci1sZXZlbCBmdW5jdGlvbnMgaW4gOnJlZjpgc2h1dGlsIDxhcmNoaXZpbmctb3BlcmF0aW9ucz5gLgogCiBTb21lIGZhY3RzIGFuZCBmaWd1cmVzOgogCi0qIHJlYWRzIGFuZCB3cml0ZXMgOm1vZDpgZ3ppcGAgYW5kIDptb2Q6YGJ6MmAgY29tcHJlc3NlZCBhcmNoaXZlcy4KKyogcmVhZHMgYW5kIHdyaXRlcyA6bW9kOmBnemlwYCwgOm1vZDpgYnoyYCBhbmQgOm1vZDpgbHptYWAgY29tcHJlc3NlZCBhcmNoaXZlcy4KIAogKiByZWFkL3dyaXRlIHN1cHBvcnQgZm9yIHRoZSBQT1NJWC4xLTE5ODggKHVzdGFyKSBmb3JtYXQuCiAKQEAgLTMzLDYgKzMzLDkgQEAKICAgY2hhcmFjdGVyIGRldmljZXMgYW5kIGJsb2NrIGRldmljZXMgYW5kIGlzIGFibGUgdG8gYWNxdWlyZSBhbmQgcmVzdG9yZSBmaWxlCiAgIGluZm9ybWF0aW9uIGxpa2UgdGltZXN0YW1wLCBhY2Nlc3MgcGVybWlzc2lvbnMgYW5kIG93bmVyLgogCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgQWRkZWQgc3VwcG9ydCBmb3IgOm1vZDpgbHptYWAgY29tcHJlc3Npb24uCisKIAogLi4gZnVuY3Rpb246OiBvcGVuKG5hbWU9Tm9uZSwgbW9kZT0ncicsIGZpbGVvYmo9Tm9uZSwgYnVmc2l6ZT0xMDI0MCwgXCpcKmt3YXJncykKIApAQCAtNTYsNiArNTksOCBAQAogICAgKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICB8IGBgJ3I6YnoyJ2BgICAgICAgfCBPcGVuIGZvciByZWFkaW5nIHdpdGggYnppcDIgY29tcHJlc3Npb24uICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgfCBgYCdyOnh6J2BgICAgICAgIHwgT3BlbiBmb3IgcmVhZGluZyB3aXRoIGx6bWEgY29tcHJlc3Npb24uICAgICB8CisgICArLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKICAgIHwgYGAnYScgb3IgJ2E6J2BgICB8IE9wZW4gZm9yIGFwcGVuZGluZyB3aXRoIG5vIGNvbXByZXNzaW9uLiBUaGUgfAogICAgfCAgICAgICAgICAgICAgICAgIHwgZmlsZSBpcyBjcmVhdGVkIGlmIGl0IGRvZXMgbm90IGV4aXN0LiAgICAgICB8CiAgICArLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKQEAgLTY1LDExICs3MCwxMyBAQAogICAgKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICB8IGBgJ3c6YnoyJ2BgICAgICAgfCBPcGVuIGZvciBiemlwMiBjb21wcmVzc2VkIHdyaXRpbmcuICAgICAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgfCBgYCd3Onh6J2BgICAgICAgIHwgT3BlbiBmb3IgbHptYSBjb21wcmVzc2VkIHdyaXRpbmcuICAgICAgICAgICB8CisgICArLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAotICAgTm90ZSB0aGF0IGBgJ2E6Z3onYGAgb3IgYGAnYTpiejInYGAgaXMgbm90IHBvc3NpYmxlLiBJZiAqbW9kZSogaXMgbm90IHN1aXRhYmxlCi0gICB0byBvcGVuIGEgY2VydGFpbiAoY29tcHJlc3NlZCkgZmlsZSBmb3IgcmVhZGluZywgOmV4YzpgUmVhZEVycm9yYCBpcyByYWlzZWQuIFVzZQotICAgKm1vZGUqIGBgJ3InYGAgdG8gYXZvaWQgdGhpcy4gIElmIGEgY29tcHJlc3Npb24gbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQsCi0gICA6ZXhjOmBDb21wcmVzc2lvbkVycm9yYCBpcyByYWlzZWQuCisgICBOb3RlIHRoYXQgYGAnYTpneidgYCwgYGAnYTpiejInYGAgb3IgYGAnYTp4eidgYCBpcyBub3QgcG9zc2libGUuIElmICptb2RlKgorICAgaXMgbm90IHN1aXRhYmxlIHRvIG9wZW4gYSBjZXJ0YWluIChjb21wcmVzc2VkKSBmaWxlIGZvciByZWFkaW5nLAorICAgOmV4YzpgUmVhZEVycm9yYCBpcyByYWlzZWQuIFVzZSAqbW9kZSogYGAncidgYCB0byBhdm9pZCB0aGlzLiAgSWYgYQorICAgY29tcHJlc3Npb24gbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQsIDpleGM6YENvbXByZXNzaW9uRXJyb3JgIGlzIHJhaXNlZC4KIAogICAgSWYgKmZpbGVvYmoqIGlzIHNwZWNpZmllZCwgaXQgaXMgdXNlZCBhcyBhbiBhbHRlcm5hdGl2ZSB0byBhIDp0ZXJtOmBmaWxlIG9iamVjdGAKICAgIG9wZW5lZCBpbiBiaW5hcnkgbW9kZSBmb3IgKm5hbWUqLiBJdCBpcyBzdXBwb3NlZCB0byBiZSBhdCBwb3NpdGlvbiAwLgpAQCAtMTAwLDYgKzEwNyw5IEBACiAgICB8IGBgJ3J8YnoyJ2BgIHwgT3BlbiBhIGJ6aXAyIGNvbXByZXNzZWQgKnN0cmVhbSogZm9yICAgICAgIHwKICAgIHwgICAgICAgICAgICAgfCByZWFkaW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICB8IGBgJ3J8eHonYGAgIHwgT3BlbiBhIGx6bWEgY29tcHJlc3NlZCAqc3RyZWFtKiBmb3IgICAgICAgIHwKKyAgIHwgICAgICAgICAgICAgfCByZWFkaW5nLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorICAgKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICB8IGBgJ3d8J2BgICAgIHwgT3BlbiBhbiB1bmNvbXByZXNzZWQgKnN0cmVhbSogZm9yIHdyaXRpbmcuIHwKICAgICstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogICAgfCBgYCd3fGd6J2BgICB8IE9wZW4gYSBnemlwIGNvbXByZXNzZWQgKnN0cmVhbSogZm9yICAgICAgICB8CkBAIC0xMDgsNiArMTE4LDkgQEAKICAgIHwgYGAnd3xiejInYGAgfCBPcGVuIGEgYnppcDIgY29tcHJlc3NlZCAqc3RyZWFtKiBmb3IgICAgICAgfAogICAgfCAgICAgICAgICAgICB8IHdyaXRpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICArLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgYGAnd3x4eidgYCAgfCBPcGVuIGFuIGx6bWEgY29tcHJlc3NlZCAqc3RyZWFtKiBmb3IgICAgICAgfAorICAgfCAgICAgICAgICAgICB8IHdyaXRpbmcuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisgICArLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAogCiAuLiBjbGFzczo6IFRhckZpbGUKQEAgLTI2Myw5ICsyNzYsOSBAQAogCiAgICBJZiAqZXJyb3JsZXZlbCogaXMgYGAwYGAsIGFsbCBlcnJvcnMgYXJlIGlnbm9yZWQgd2hlbiB1c2luZyA6bWV0aDpgVGFyRmlsZS5leHRyYWN0YC4KICAgIE5ldmVydGhlbGVzcywgdGhleSBhcHBlYXIgYXMgZXJyb3IgbWVzc2FnZXMgaW4gdGhlIGRlYnVnIG91dHB1dCwgd2hlbiBkZWJ1Z2dpbmcKLSAgIGlzIGVuYWJsZWQuICBJZiBgYDFgYCwgYWxsICpmYXRhbCogZXJyb3JzIGFyZSByYWlzZWQgYXMgOmV4YzpgT1NFcnJvcmAgb3IKLSAgIDpleGM6YElPRXJyb3JgIGV4Y2VwdGlvbnMuIElmIGBgMmBgLCBhbGwgKm5vbi1mYXRhbCogZXJyb3JzIGFyZSByYWlzZWQgYXMKLSAgIDpleGM6YFRhckVycm9yYCBleGNlcHRpb25zIGFzIHdlbGwuCisgICBpcyBlbmFibGVkLiAgSWYgYGAxYGAsIGFsbCAqZmF0YWwqIGVycm9ycyBhcmUgcmFpc2VkIGFzIDpleGM6YE9TRXJyb3JgCisgICBleGNlcHRpb25zLiBJZiBgYDJgYCwgYWxsICpub24tZmF0YWwqIGVycm9ycyBhcmUgcmFpc2VkIGFzIDpleGM6YFRhckVycm9yYAorICAgZXhjZXB0aW9ucyBhcyB3ZWxsLgogCiAgICBUaGUgKmVuY29kaW5nKiBhbmQgKmVycm9ycyogYXJndW1lbnRzIGRlZmluZSB0aGUgY2hhcmFjdGVyIGVuY29kaW5nIHRvIGJlCiAgICB1c2VkIGZvciByZWFkaW5nIG9yIHdyaXRpbmcgdGhlIGFyY2hpdmUgYW5kIGhvdyBjb252ZXJzaW9uIGVycm9ycyBhcmUgZ29pbmcKQEAgLTM2MywxNSArMzc2LDEyIEBACiAuLiBtZXRob2Q6OiBUYXJGaWxlLmV4dHJhY3RmaWxlKG1lbWJlcikKIAogICAgRXh0cmFjdCBhIG1lbWJlciBmcm9tIHRoZSBhcmNoaXZlIGFzIGEgZmlsZSBvYmplY3QuICptZW1iZXIqIG1heSBiZSBhIGZpbGVuYW1lCi0gICBvciBhIDpjbGFzczpgVGFySW5mb2Agb2JqZWN0LiBJZiAqbWVtYmVyKiBpcyBhIHJlZ3VsYXIgZmlsZSwgYSA6dGVybTpgZmlsZS1saWtlCi0gICBvYmplY3RgIGlzIHJldHVybmVkLiBJZiAqbWVtYmVyKiBpcyBhIGxpbmssIGEgZmlsZS1saWtlIG9iamVjdCBpcyBjb25zdHJ1Y3RlZCBmcm9tCi0gICB0aGUgbGluaydzIHRhcmdldC4gSWYgKm1lbWJlciogaXMgbm9uZSBvZiB0aGUgYWJvdmUsIDpjb25zdDpgTm9uZWAgaXMgcmV0dXJuZWQuCisgICBvciBhIDpjbGFzczpgVGFySW5mb2Agb2JqZWN0LiBJZiAqbWVtYmVyKiBpcyBhIHJlZ3VsYXIgZmlsZSBvciBhIGxpbmssIGFuCisgICA6Y2xhc3M6YGlvLkJ1ZmZlcmVkUmVhZGVyYCBvYmplY3QgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSwgOmNvbnN0OmBOb25lYCBpcworICAgcmV0dXJuZWQuCiAKLSAgIC4uIG5vdGU6OgotCi0gICAgICBUaGUgZmlsZS1saWtlIG9iamVjdCBpcyByZWFkLW9ubHkuICBJdCBwcm92aWRlcyB0aGUgbWV0aG9kcwotICAgICAgOm1ldGg6YHJlYWRgLCA6bWV0aDpgcmVhZGxpbmVgLCA6bWV0aDpgcmVhZGxpbmVzYCwgOm1ldGg6YHNlZWtgLCA6bWV0aDpgdGVsbGAsCi0gICAgICBhbmQgOm1ldGg6YGNsb3NlYCwgYW5kIGFsc28gc3VwcG9ydHMgaXRlcmF0aW9uIG92ZXIgaXRzIGxpbmVzLgorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFJldHVybiBhbiA6Y2xhc3M6YGlvLkJ1ZmZlcmVkUmVhZGVyYCBvYmplY3QuCiAKIAogLi4gbWV0aG9kOjogVGFyRmlsZS5hZGQobmFtZSwgYXJjbmFtZT1Ob25lLCByZWN1cnNpdmU9VHJ1ZSwgZXhjbHVkZT1Ob25lLCAqLCBmaWx0ZXI9Tm9uZSkKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3RlbG5ldGxpYi5yc3QgYi9Eb2MvbGlicmFyeS90ZWxuZXRsaWIucnN0CmluZGV4IDY0NjYzNGQuLjliYzc5YzUgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3RlbG5ldGxpYi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdGVsbmV0bGliLnJzdApAQCAtMTYyLDkgKzE2MiwxMyBAQAogLi4gbWV0aG9kOjogVGVsbmV0LndyaXRlKGJ1ZmZlcikKIAogICAgV3JpdGUgYSBieXRlIHN0cmluZyB0byB0aGUgc29ja2V0LCBkb3VibGluZyBhbnkgSUFDIGNoYXJhY3RlcnMuIFRoaXMgY2FuCi0gICBibG9jayBpZiB0aGUgY29ubmVjdGlvbiBpcyBibG9ja2VkLiAgTWF5IHJhaXNlIDpleGM6YHNvY2tldC5lcnJvcmAgaWYgdGhlCisgICBibG9jayBpZiB0aGUgY29ubmVjdGlvbiBpcyBibG9ja2VkLiAgTWF5IHJhaXNlIDpleGM6YE9TRXJyb3JgIGlmIHRoZQogICAgY29ubmVjdGlvbiBpcyBjbG9zZWQuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGlzIG1ldGhvZCB1c2VkIHRvIHJhaXNlIDpleGM6YHNvY2tldC5lcnJvcmAsIHdoaWNoIGlzIG5vdyBhbiBhbGlhcworICAgICAgb2YgOmV4YzpgT1NFcnJvcmAuCisKIAogLi4gbWV0aG9kOjogVGVsbmV0LmludGVyYWN0KCkKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdGVtcGZpbGUucnN0IGIvRG9jL2xpYnJhcnkvdGVtcGZpbGUucnN0CmluZGV4IGZmZjZjNGUuLmRmZWIyNTAgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3RlbXBmaWxlLnJzdAorKysgYi9Eb2MvbGlicmFyeS90ZW1wZmlsZS5yc3QKQEAgLTI1LDcgKzI1LDcgQEAKIAogQWxzbywgYWxsIHRoZSB1c2VyLWNhbGxhYmxlIGZ1bmN0aW9ucyBub3cgdGFrZSBhZGRpdGlvbmFsIGFyZ3VtZW50cyB3aGljaAogYWxsb3cgZGlyZWN0IGNvbnRyb2wgb3ZlciB0aGUgbG9jYXRpb24gYW5kIG5hbWUgb2YgdGVtcG9yYXJ5IGZpbGVzLiAgSXQgaXMKLW5vIGxvbmdlciBuZWNlc3NhcnkgdG8gdXNlIHRoZSBnbG9iYWwgKnRlbXBkaXIqIGFuZCAqdGVtcGxhdGUqIHZhcmlhYmxlcy4KK25vIGxvbmdlciBuZWNlc3NhcnkgdG8gdXNlIHRoZSBnbG9iYWwgKnRlbXBkaXIqIHZhcmlhYmxlLgogVG8gbWFpbnRhaW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdGhlIGFyZ3VtZW50IG9yZGVyIGlzIHNvbWV3aGF0IG9kZDsgaXQKIGlzIHJlY29tbWVuZGVkIHRvIHVzZSBrZXl3b3JkIGFyZ3VtZW50cyBmb3IgY2xhcml0eS4KIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdGVzdC5yc3QgYi9Eb2MvbGlicmFyeS90ZXN0LnJzdAppbmRleCA0MGY0MTE1Li4yZThiYTMyIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS90ZXN0LnJzdAorKysgYi9Eb2MvbGlicmFyeS90ZXN0LnJzdApAQCAtODAsMTcgKzgwLDEyIEBACiAKICAgIC4uLiBtb3JlIHRlc3QgY2xhc3NlcyAuLi4KIAotICAgZGVmIHRlc3RfbWFpbigpOgotICAgICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KE15VGVzdENhc2UxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTXlUZXN0Q2FzZTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4gbGlzdCBvdGhlciB0ZXN0cyAuLi4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotCiAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICAgIHRlc3RfbWFpbigpCisgICAgICAgdW5pdHRlc3QubWFpbigpCiAKLVRoaXMgYm9pbGVycGxhdGUgY29kZSBhbGxvd3MgdGhlIHRlc3Rpbmcgc3VpdGUgdG8gYmUgcnVuIGJ5IDptb2Q6YHRlc3QucmVncnRlc3RgCi1hcyB3ZWxsIGFzIG9uIGl0cyBvd24gYXMgYSBzY3JpcHQuCitUaGlzIGNvZGUgcGF0dGVybiBhbGxvd3MgdGhlIHRlc3Rpbmcgc3VpdGUgdG8gYmUgcnVuIGJ5IDptb2Q6YHRlc3QucmVncnRlc3RgLAorb24gaXRzIG93biBhcyBhIHNjcmlwdCB0aGF0IHN1cHBvcnRzIHRoZSA6bW9kOmB1bml0dGVzdGAgQ0xJLCBvciB2aWEgdGhlCitgcHl0aG9uIC1tIHVuaXR0ZXN0YCBDTEkuCiAKIFRoZSBnb2FsIGZvciByZWdyZXNzaW9uIHRlc3RpbmcgaXMgdG8gdHJ5IHRvIGJyZWFrIGNvZGUuIFRoaXMgbGVhZHMgdG8gYSBmZXcKIGd1aWRlbGluZXMgdG8gYmUgZm9sbG93ZWQ6CkBAIC0xMjksMjIgKzEyNCwyNyBAQAogICBhcyB3aGF0IHR5cGUgb2YgaW5wdXQgaXMgdXNlZC4gTWluaW1pemUgY29kZSBkdXBsaWNhdGlvbiBieSBzdWJjbGFzc2luZyBhCiAgIGJhc2ljIHRlc3QgY2xhc3Mgd2l0aCBhIGNsYXNzIHRoYXQgc3BlY2lmaWVzIHRoZSBpbnB1dDo6CiAKLSAgICAgY2xhc3MgVGVzdEZ1bmNBY2NlcHRzU2VxdWVuY2VzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgY2xhc3MgVGVzdEZ1bmNBY2NlcHRzU2VxdWVuY2VzTWl4aW46CiAKICAgICAgICAgIGZ1bmMgPSBteVN1cGVyV2hhbW15RnVuY3Rpb24KIAogICAgICAgICAgZGVmIHRlc3RfZnVuYyhzZWxmKToKICAgICAgICAgICAgICBzZWxmLmZ1bmMoc2VsZi5hcmcpCiAKLSAgICAgY2xhc3MgQWNjZXB0TGlzdHMoVGVzdEZ1bmNBY2NlcHRzU2VxdWVuY2VzKToKKyAgICAgY2xhc3MgQWNjZXB0TGlzdHMoVGVzdEZ1bmNBY2NlcHRzU2VxdWVuY2VzTWl4aW4sIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIGFyZyA9IFsxLCAyLCAzXQogCi0gICAgIGNsYXNzIEFjY2VwdFN0cmluZ3MoVGVzdEZ1bmNBY2NlcHRzU2VxdWVuY2VzKToKKyAgICAgY2xhc3MgQWNjZXB0U3RyaW5ncyhUZXN0RnVuY0FjY2VwdHNTZXF1ZW5jZXNNaXhpbiwgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgYXJnID0gJ2FiYycKIAotICAgICBjbGFzcyBBY2NlcHRUdXBsZXMoVGVzdEZ1bmNBY2NlcHRzU2VxdWVuY2VzKToKKyAgICAgY2xhc3MgQWNjZXB0VHVwbGVzKFRlc3RGdW5jQWNjZXB0c1NlcXVlbmNlc01peGluLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICBhcmcgPSAoMSwgMiwgMykKIAorICBXaGVuIHVzaW5nIHRoaXMgcGF0dGVybiwgcmVtZW1iZXIgdGhhdCBhbGwgY2xhc3NlcyB0aGF0IGluaGVyaXQgZnJvbQorICBgdW5pdHRlc3QuVGVzdENhc2VgIGFyZSBydW4gYXMgdGVzdHMuICBUaGUgYE1peGluYCBjbGFzcyBpbiB0aGUgZXhhbXBsZSBhYm92ZQorICBkb2VzIG5vdCBoYXZlIGFueSBkYXRhIGFuZCBzbyBjYW4ndCBiZSBydW4gYnkgaXRzZWxmLCB0aHVzIGl0IGRvZXMgbm90CisgIGluaGVyaXQgZnJvbSBgdW5pdHRlc3QuVGVzdENhc2VgLgorCiAKIC4uIHNlZWFsc286OgogCkBAIC0xNjAsMTQgKzE2MCwxNSBAQAogVGhlIDptb2Q6YHRlc3RgIHBhY2thZ2UgY2FuIGJlIHJ1biBhcyBhIHNjcmlwdCB0byBkcml2ZSBQeXRob24ncyByZWdyZXNzaW9uCiB0ZXN0IHN1aXRlLCB0aGFua3MgdG8gdGhlIDpvcHRpb246YC1tYCBvcHRpb246IDpwcm9ncmFtOmBweXRob24gLW0gdGVzdGAuIFVuZGVyCiB0aGUgaG9vZCwgaXQgdXNlcyA6bW9kOmB0ZXN0LnJlZ3J0ZXN0YDsgdGhlIGNhbGwgOnByb2dyYW06YHB5dGhvbiAtbQotdGVzdC5yZWdydGVzdGAgdXNlZCBpbiBwcmV2aW91cyBQeXRob24gdmVyc2lvbnMgc3RpbGwgd29ya3MpLgotUnVubmluZyB0aGUgc2NyaXB0IGJ5IGl0c2VsZiBhdXRvbWF0aWNhbGx5IHN0YXJ0cyBydW5uaW5nIGFsbCByZWdyZXNzaW9uCi10ZXN0cyBpbiB0aGUgOm1vZDpgdGVzdGAgcGFja2FnZS4gSXQgZG9lcyB0aGlzIGJ5IGZpbmRpbmcgYWxsIG1vZHVsZXMgaW4gdGhlCi1wYWNrYWdlIHdob3NlIG5hbWUgc3RhcnRzIHdpdGggYGB0ZXN0X2BgLCBpbXBvcnRpbmcgdGhlbSwgYW5kIGV4ZWN1dGluZyB0aGUKLWZ1bmN0aW9uIDpmdW5jOmB0ZXN0X21haW5gIGlmIHByZXNlbnQuIFRoZSBuYW1lcyBvZiB0ZXN0cyB0byBleGVjdXRlIG1heSBhbHNvCi1iZSBwYXNzZWQgdG8gdGhlIHNjcmlwdC4gU3BlY2lmeWluZyBhIHNpbmdsZSByZWdyZXNzaW9uIHRlc3QgKDpwcm9ncmFtOmBweXRob24KLS1tIHRlc3QgdGVzdF9zcGFtYCkgd2lsbCBtaW5pbWl6ZSBvdXRwdXQgYW5kIG9ubHkgcHJpbnQKLXdoZXRoZXIgdGhlIHRlc3QgcGFzc2VkIG9yIGZhaWxlZCBhbmQgdGh1cyBtaW5pbWl6ZSBvdXRwdXQuCit0ZXN0LnJlZ3J0ZXN0YCB1c2VkIGluIHByZXZpb3VzIFB5dGhvbiB2ZXJzaW9ucyBzdGlsbCB3b3JrcykuICBSdW5uaW5nIHRoZQorc2NyaXB0IGJ5IGl0c2VsZiBhdXRvbWF0aWNhbGx5IHN0YXJ0cyBydW5uaW5nIGFsbCByZWdyZXNzaW9uIHRlc3RzIGluIHRoZQorOm1vZDpgdGVzdGAgcGFja2FnZS4gSXQgZG9lcyB0aGlzIGJ5IGZpbmRpbmcgYWxsIG1vZHVsZXMgaW4gdGhlIHBhY2thZ2Ugd2hvc2UKK25hbWUgc3RhcnRzIHdpdGggYGB0ZXN0X2BgLCBpbXBvcnRpbmcgdGhlbSwgYW5kIGV4ZWN1dGluZyB0aGUgZnVuY3Rpb24KKzpmdW5jOmB0ZXN0X21haW5gIGlmIHByZXNlbnQgb3IgbG9hZGluZyB0aGUgdGVzdHMgdmlhCit1bml0dGVzdC5UZXN0TG9hZGVyLmxvYWRUZXN0c0Zyb21Nb2R1bGUgaWYgYGB0ZXN0X21haW5gYCBkb2VzIG5vdCBleGlzdC4gIFRoZQorbmFtZXMgb2YgdGVzdHMgdG8gZXhlY3V0ZSBtYXkgYWxzbyBiZSBwYXNzZWQgdG8gdGhlIHNjcmlwdC4gU3BlY2lmeWluZyBhIHNpbmdsZQorcmVncmVzc2lvbiB0ZXN0ICg6cHJvZ3JhbTpgcHl0aG9uIC1tIHRlc3QgdGVzdF9zcGFtYCkgd2lsbCBtaW5pbWl6ZSBvdXRwdXQgYW5kCitvbmx5IHByaW50IHdoZXRoZXIgdGhlIHRlc3QgcGFzc2VkIG9yIGZhaWxlZC4KIAogUnVubmluZyA6bW9kOmB0ZXN0YCBkaXJlY3RseSBhbGxvd3Mgd2hhdCByZXNvdXJjZXMgYXJlIGF2YWlsYWJsZSBmb3IKIHRlc3RzIHRvIHVzZSB0byBiZSBzZXQuIFlvdSBkbyB0aGlzIGJ5IHVzaW5nIHRoZSBgYC11YGAgY29tbWFuZC1saW5lCkBAIC0yMjMsMTQgKzIyNCwxNCBAQAogCiAuLiBkYXRhOjogdmVyYm9zZQogCi0gICA6Y29uc3Q6YFRydWVgIHdoZW4gdmVyYm9zZSBvdXRwdXQgaXMgZW5hYmxlZC4gU2hvdWxkIGJlIGNoZWNrZWQgd2hlbiBtb3JlCisgICBgYFRydWVgYCB3aGVuIHZlcmJvc2Ugb3V0cHV0IGlzIGVuYWJsZWQuIFNob3VsZCBiZSBjaGVja2VkIHdoZW4gbW9yZQogICAgZGV0YWlsZWQgaW5mb3JtYXRpb24gaXMgZGVzaXJlZCBhYm91dCBhIHJ1bm5pbmcgdGVzdC4gKnZlcmJvc2UqIGlzIHNldCBieQogICAgOm1vZDpgdGVzdC5yZWdydGVzdGAuCiAKIAogLi4gZGF0YTo6IGlzX2p5dGhvbgogCi0gICA6Y29uc3Q6YFRydWVgIGlmIHRoZSBydW5uaW5nIGludGVycHJldGVyIGlzIEp5dGhvbi4KKyAgIGBgVHJ1ZWBgIGlmIHRoZSBydW5uaW5nIGludGVycHJldGVyIGlzIEp5dGhvbi4KIAogCiAuLiBkYXRhOjogVEVTVEZOCkBAIC0yNDksNyArMjUwLDcgQEAKIAogLi4gZnVuY3Rpb246OiBpc19yZXNvdXJjZV9lbmFibGVkKHJlc291cmNlKQogCi0gICBSZXR1cm4gOmNvbnN0OmBUcnVlYCBpZiAqcmVzb3VyY2UqIGlzIGVuYWJsZWQgYW5kIGF2YWlsYWJsZS4gVGhlIGxpc3Qgb2YKKyAgIFJldHVybiBgYFRydWVgYCBpZiAqcmVzb3VyY2UqIGlzIGVuYWJsZWQgYW5kIGF2YWlsYWJsZS4gVGhlIGxpc3Qgb2YKICAgIGF2YWlsYWJsZSByZXNvdXJjZXMgaXMgb25seSBzZXQgd2hlbiA6bW9kOmB0ZXN0LnJlZ3J0ZXN0YCBpcyBleGVjdXRpbmcgdGhlCiAgICB0ZXN0cy4KIApAQCAtMjU4LDcgKzI1OSw3IEBACiAKICAgIFJhaXNlIDpleGM6YFJlc291cmNlRGVuaWVkYCBpZiAqcmVzb3VyY2UqIGlzIG5vdCBhdmFpbGFibGUuICptc2cqIGlzIHRoZQogICAgYXJndW1lbnQgdG8gOmV4YzpgUmVzb3VyY2VEZW5pZWRgIGlmIGl0IGlzIHJhaXNlZC4gQWx3YXlzIHJldHVybnMKLSAgIDpjb25zdDpgVHJ1ZWAgaWYgY2FsbGVkIGJ5IGEgZnVuY3Rpb24gd2hvc2UgYGBfX25hbWVfX2BgIGlzIGBgJ19fbWFpbl9fJ2BgLgorICAgYGBUcnVlYGAgaWYgY2FsbGVkIGJ5IGEgZnVuY3Rpb24gd2hvc2UgYGBfX25hbWVfX2BgIGlzIGBgJ19fbWFpbl9fJ2BgLgogICAgVXNlZCB3aGVuIHRlc3RzIGFyZSBleGVjdXRlZCBieSA6bW9kOmB0ZXN0LnJlZ3J0ZXN0YC4KIAogCkBAIC0yODYsNiArMjg3LDE1IEBACiAgICBUaGlzIHdpbGwgcnVuIGFsbCB0ZXN0cyBkZWZpbmVkIGluIHRoZSBuYW1lZCBtb2R1bGUuCiAKIAorLi4gZnVuY3Rpb246OiBydW5fZG9jdGVzdChtb2R1bGUsIHZlcmJvc2l0eT1Ob25lKQorCisgICBSdW4gOmZ1bmM6YGRvY3Rlc3QudGVzdG1vZGAgb24gdGhlIGdpdmVuICptb2R1bGUqLiAgUmV0dXJuCisgICBgYChmYWlsdXJlX2NvdW50LCB0ZXN0X2NvdW50KWBgLgorCisgICBJZiAqdmVyYm9zaXR5KiBpcyBgYE5vbmVgYCwgOmZ1bmM6YGRvY3Rlc3QudGVzdG1vZGAgaXMgcnVuIHdpdGggdmVyYm9zaXR5CisgICBzZXQgdG8gOmRhdGE6YHZlcmJvc2VgLiAgT3RoZXJ3aXNlLCBpdCBpcyBydW4gd2l0aCB2ZXJib3NpdHkgc2V0IHRvCisgICBgYE5vbmVgYC4KKwogLi4gZnVuY3Rpb246OiBjaGVja193YXJuaW5ncyhcKmZpbHRlcnMsIHF1aWV0PVRydWUpCiAKICAgIEEgY29udmVuaWVuY2Ugd3JhcHBlciBmb3IgOmZ1bmM6YHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKClgIHRoYXQgbWFrZXMgaXQKQEAgLTI5NiwxMiArMzA2LDEyIEBACiAKICAgIGBgY2hlY2tfd2FybmluZ3NgYCBhY2NlcHRzIDItdHVwbGVzIG9mIHRoZSBmb3JtIGBgKCJtZXNzYWdlIHJlZ2V4cCIsCiAgICBXYXJuaW5nQ2F0ZWdvcnkpYGAgYXMgcG9zaXRpb25hbCBhcmd1bWVudHMuIElmIG9uZSBvciBtb3JlICpmaWx0ZXJzKiBhcmUKLSAgIHByb3ZpZGVkLCBvciBpZiB0aGUgb3B0aW9uYWwga2V5d29yZCBhcmd1bWVudCAqcXVpZXQqIGlzIDpjb25zdDpgRmFsc2VgLAorICAgcHJvdmlkZWQsIG9yIGlmIHRoZSBvcHRpb25hbCBrZXl3b3JkIGFyZ3VtZW50ICpxdWlldCogaXMgYGBGYWxzZWBgLAogICAgaXQgY2hlY2tzIHRvIG1ha2Ugc3VyZSB0aGUgd2FybmluZ3MgYXJlIGFzIGV4cGVjdGVkOiAgZWFjaCBzcGVjaWZpZWQgZmlsdGVyCiAgICBtdXN0IG1hdGNoIGF0IGxlYXN0IG9uZSBvZiB0aGUgd2FybmluZ3MgcmFpc2VkIGJ5IHRoZSBlbmNsb3NlZCBjb2RlIG9yIHRoZQogICAgdGVzdCBmYWlscywgYW5kIGlmIGFueSB3YXJuaW5ncyBhcmUgcmFpc2VkIHRoYXQgZG8gbm90IG1hdGNoIGFueSBvZiB0aGUKICAgIHNwZWNpZmllZCBmaWx0ZXJzIHRoZSB0ZXN0IGZhaWxzLiAgVG8gZGlzYWJsZSB0aGUgZmlyc3Qgb2YgdGhlc2UgY2hlY2tzLAotICAgc2V0ICpxdWlldCogdG8gOmNvbnN0OmBUcnVlYC4KKyAgIHNldCAqcXVpZXQqIHRvIGBgVHJ1ZWBgLgogCiAgICBJZiBubyBhcmd1bWVudHMgYXJlIHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG86OgogCkBAIC0zMTYsNyArMzI2LDcgQEAKICAgIHJlcHJlc2VudGluZyB0aGUgbW9zdCByZWNlbnQgd2FybmluZyBjYW4gYWxzbyBiZSBhY2Nlc3NlZCBkaXJlY3RseSB0aHJvdWdoCiAgICB0aGUgcmVjb3JkZXIgb2JqZWN0IChzZWUgZXhhbXBsZSBiZWxvdykuICBJZiBubyB3YXJuaW5nIGhhcyBiZWVuIHJhaXNlZCwKICAgIHRoZW4gYW55IG9mIHRoZSBhdHRyaWJ1dGVzIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlIGV4cGVjdGVkIG9uIGFuIG9iamVjdAotICAgcmVwcmVzZW50aW5nIGEgd2FybmluZyB3aWxsIHJldHVybiA6Y29uc3Q6YE5vbmVgLgorICAgcmVwcmVzZW50aW5nIGEgd2FybmluZyB3aWxsIHJldHVybiBgYE5vbmVgYC4KIAogICAgVGhlIHJlY29yZGVyIG9iamVjdCBhbHNvIGhhcyBhIDptZXRoOmByZXNldGAgbWV0aG9kLCB3aGljaCBjbGVhcnMgdGhlCiAgICB3YXJuaW5ncyBsaXN0LgpAQCAtMzU0LDcgKzM2NCw3IEBACiAKIC4uIGZ1bmN0aW9uOjogY2FwdHVyZWRfc3Rkb3V0KCkKIAotICAgVGhpcyBpcyBhIGNvbnRleHQgbWFuYWdlciB0aGF0IHJ1bnMgdGhlIDprZXl3b3JkOmB3aXRoYCBzdGF0ZW1lbnQgYm9keSB1c2luZworICAgQSBjb250ZXh0IG1hbmFnZXIgdGhhdCBydW5zIHRoZSA6a2V5d29yZDpgd2l0aGAgc3RhdGVtZW50IGJvZHkgdXNpbmcKICAgIGEgOmNsYXNzOmBTdHJpbmdJTy5TdHJpbmdJT2Agb2JqZWN0IGFzIHN5cy5zdGRvdXQuICBUaGF0IG9iamVjdCBjYW4gYmUKICAgIHJldHJpZXZlZCB1c2luZyB0aGUgYGBhc2BgIGNsYXVzZSBvZiB0aGUgOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudC4KIApAQCAtMzY1LDYgKzM3NSw1NyBAQAogICAgICAgYXNzZXJ0IHMuZ2V0dmFsdWUoKSA9PSAiaGVsbG9cbiIKIAogCisuLiBmdW5jdGlvbjo6IHRlbXBfY3dkKG5hbWU9J3RlbXBjd2QnLCBxdWlldD1GYWxzZSwgcGF0aD1Ob25lKQorCisgICBBIGNvbnRleHQgbWFuYWdlciB0aGF0IHRlbXBvcmFyaWx5IGNoYW5nZXMgdGhlIGN1cnJlbnQgd29ya2luZworICAgZGlyZWN0b3J5IChDV0QpLgorCisgICBBbiBleGlzdGluZyBwYXRoIG1heSBiZSBwcm92aWRlZCBhcyAqcGF0aCosIGluIHdoaWNoIGNhc2UgdGhpcyBmdW5jdGlvbgorICAgbWFrZXMgbm8gY2hhbmdlcyB0byB0aGUgZmlsZSBzeXN0ZW0uCisKKyAgIE90aGVyd2lzZSwgdGhlIG5ldyBDV0QgaXMgY3JlYXRlZCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkgYW5kIGl0J3MgbmFtZWQKKyAgICpuYW1lKi4gIElmICpxdWlldCogaXMgYGBGYWxzZWBgIGFuZCBpdCdzIG5vdCBwb3NzaWJsZSB0byBjcmVhdGUgb3IKKyAgIGNoYW5nZSB0aGUgQ1dELCBhbiBlcnJvciBpcyByYWlzZWQuICBJZiBpdCdzIGBgVHJ1ZWBgLCBvbmx5IGEgd2FybmluZworICAgaXMgcmFpc2VkIGFuZCB0aGUgb3JpZ2luYWwgQ1dEIGlzIHVzZWQuCisKKworLi4gZnVuY3Rpb246OiB0ZW1wX3VtYXNrKHVtYXNrKQorCisgICBBIGNvbnRleHQgbWFuYWdlciB0aGF0IHRlbXBvcmFyaWx5IHNldHMgdGhlIHByb2Nlc3MgdW1hc2suCisKKworLi4gZnVuY3Rpb246OiBjYW5fc3ltbGluaygpCisKKyAgIFJldHVybiBgYFRydWVgYCBpZiB0aGUgT1Mgc3VwcG9ydHMgc3ltYm9saWMgbGlua3MsIGBgRmFsc2VgYAorICAgb3RoZXJ3aXNlLgorCisKKy4uIGRlY29yYXRvcjo6IHNraXBfdW5sZXNzX3N5bWxpbmsoKQorCisgICBBIGRlY29yYXRvciBmb3IgcnVubmluZyB0ZXN0cyB0aGF0IHJlcXVpcmUgc3VwcG9ydCBmb3Igc3ltYm9saWMgbGlua3MuCisKKworLi4gZGVjb3JhdG9yOjogYW50aWNpcGF0ZV9mYWlsdXJlKGNvbmRpdGlvbikKKworICAgQSBkZWNvcmF0b3IgdG8gY29uZGl0aW9uYWxseSBtYXJrIHRlc3RzIHdpdGgKKyAgIDpmdW5jOmB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmVgLiBBbnkgdXNlIG9mIHRoaXMgZGVjb3JhdG9yIHNob3VsZAorICAgaGF2ZSBhbiBhc3NvY2lhdGVkIGNvbW1lbnQgaWRlbnRpZnlpbmcgdGhlIHJlbGV2YW50IHRyYWNrZXIgaXNzdWUuCisKKworLi4gZGVjb3JhdG9yOjogcnVuX3dpdGhfbG9jYWxlKGNhdHN0ciwgKmxvY2FsZXMpCisKKyAgIEEgZGVjb3JhdG9yIGZvciBydW5uaW5nIGEgZnVuY3Rpb24gaW4gYSBkaWZmZXJlbnQgbG9jYWxlLCBjb3JyZWN0bHkKKyAgIHJlc2V0dGluZyBpdCBhZnRlciBpdCBoYXMgZmluaXNoZWQuICAqY2F0c3RyKiBpcyB0aGUgbG9jYWxlIGNhdGVnb3J5IGFzCisgICBhIHN0cmluZyAoZm9yIGV4YW1wbGUgYGAiTENfQUxMImBgKS4gIFRoZSAqbG9jYWxlcyogcGFzc2VkIHdpbGwgYmUgdHJpZWQKKyAgIHNlcXVlbnRpYWxseSwgYW5kIHRoZSBmaXJzdCB2YWxpZCBsb2NhbGUgd2lsbCBiZSB1c2VkLgorCisKKy4uIGZ1bmN0aW9uOjogbWFrZV9iYWRfZmQoKQorCisgICBDcmVhdGUgYW4gaW52YWxpZCBmaWxlIGRlc2NyaXB0b3IgYnkgb3BlbmluZyBhbmQgY2xvc2luZyBhIHRlbXBvcmFyeSBmaWxlLAorICAgYW5kIHJldHVybmluZyBpdHMgZGVzY3JpcG9yLgorCisKIC4uIGZ1bmN0aW9uOjogaW1wb3J0X21vZHVsZShuYW1lLCBkZXByZWNhdGVkPUZhbHNlKQogCiAgICBUaGlzIGZ1bmN0aW9uIGltcG9ydHMgYW5kIHJldHVybnMgdGhlIG5hbWVkIG1vZHVsZS4gVW5saWtlIGEgbm9ybWFsCkBAIC0zNzIsNyArNDMzLDcgQEAKICAgIGNhbm5vdCBiZSBpbXBvcnRlZC4KIAogICAgTW9kdWxlIGFuZCBwYWNrYWdlIGRlcHJlY2F0aW9uIG1lc3NhZ2VzIGFyZSBzdXBwcmVzc2VkIGR1cmluZyB0aGlzIGltcG9ydAotICAgaWYgKmRlcHJlY2F0ZWQqIGlzIDpjb25zdDpgVHJ1ZWAuCisgICBpZiAqZGVwcmVjYXRlZCogaXMgYGBUcnVlYGAuCiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMQogCkBAIC0zOTYsOSArNDU3LDkgQEAKICAgIGBgc3lzLm1vZHVsZXNgYCB3aGVuIHRoZSBmcmVzaCBpbXBvcnQgaXMgY29tcGxldGUuCiAKICAgIE1vZHVsZSBhbmQgcGFja2FnZSBkZXByZWNhdGlvbiBtZXNzYWdlcyBhcmUgc3VwcHJlc3NlZCBkdXJpbmcgdGhpcyBpbXBvcnQKLSAgIGlmICpkZXByZWNhdGVkKiBpcyA6Y29uc3Q6YFRydWVgLgorICAgaWYgKmRlcHJlY2F0ZWQqIGlzIGBgVHJ1ZWBgLgogCi0gICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmFpc2UgOmV4YzpgdW5pdHRlc3QuU2tpcFRlc3RgIGlzIHRoZSBuYW1lZCBtb2R1bGUKKyAgIFRoaXMgZnVuY3Rpb24gd2lsbCByYWlzZSA6ZXhjOmB1bml0dGVzdC5Ta2lwVGVzdGAgaWYgdGhlIG5hbWVkIG1vZHVsZQogICAgY2Fubm90IGJlIGltcG9ydGVkLgogCiAgICBFeGFtcGxlIHVzZTo6CkBAIC00MTMsNiArNDc0LDQ4IEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKIAogCisuLiBmdW5jdGlvbjo6IGJpbmRfcG9ydChzb2NrLCBob3N0PUhPU1QpCisKKyAgIEJpbmQgdGhlIHNvY2tldCB0byBhIGZyZWUgcG9ydCBhbmQgcmV0dXJuIHRoZSBwb3J0IG51bWJlci4gIFJlbGllcyBvbgorICAgZXBoZW1lcmFsIHBvcnRzIGluIG9yZGVyIHRvIGVuc3VyZSB3ZSBhcmUgdXNpbmcgYW4gdW5ib3VuZCBwb3J0LiAgVGhpcyBpcworICAgaW1wb3J0YW50IGFzIG1hbnkgdGVzdHMgbWF5IGJlIHJ1bm5pbmcgc2ltdWx0YW5lb3VzbHksIGVzcGVjaWFsbHkgaW4gYQorICAgYnVpbGRib3QgZW52aXJvbm1lbnQuICBUaGlzIG1ldGhvZCByYWlzZXMgYW4gZXhjZXB0aW9uIGlmIHRoZQorICAgYGBzb2NrLmZhbWlseWBgIGlzIDpjb25zdDpgfnNvY2tldC5BRl9JTkVUYCBhbmQgYGBzb2NrLnR5cGVgYCBpcworICAgOmNvbnN0OmB+c29ja2V0LlNPQ0tfU1RSRUFNYCwgYW5kIHRoZSBzb2NrZXQgaGFzCisgICA6Y29uc3Q6YH5zb2NrZXQuU09fUkVVU0VBRERSYCBvciA6Y29uc3Q6YH5zb2NrZXQuU09fUkVVU0VQT1JUYCBzZXQgb24gaXQuCisgICBUZXN0cyBzaG91bGQgbmV2ZXIgc2V0IHRoZXNlIHNvY2tldCBvcHRpb25zIGZvciBUQ1AvSVAgc29ja2V0cy4KKyAgIFRoZSBvbmx5IGNhc2UgZm9yIHNldHRpbmcgdGhlc2Ugb3B0aW9ucyBpcyB0ZXN0aW5nIG11bHRpY2FzdGluZyB2aWEKKyAgIG11bHRpcGxlIFVEUCBzb2NrZXRzLgorCisgICBBZGRpdGlvbmFsbHksIGlmIHRoZSA6Y29uc3Q6YH5zb2NrZXQuU09fRVhDTFVTSVZFQUREUlVTRWAgc29ja2V0IG9wdGlvbiBpcworICAgYXZhaWxhYmxlIChpLmUuIG9uIFdpbmRvd3MpLCBpdCB3aWxsIGJlIHNldCBvbiB0aGUgc29ja2V0LiAgVGhpcyB3aWxsCisgICBwcmV2ZW50IGFueW9uZSBlbHNlIGZyb20gYmluZGluZyB0byBvdXIgaG9zdC9wb3J0IGZvciB0aGUgZHVyYXRpb24gb2YgdGhlCisgICB0ZXN0LgorCisKKy4uIGZ1bmN0aW9uOjogZmluZF91bnVzZWRfcG9ydChmYW1pbHk9c29ja2V0LkFGX0lORVQsIHNvY2t0eXBlPXNvY2tldC5TT0NLX1NUUkVBTSkKKworICAgUmV0dXJucyBhbiB1bnVzZWQgcG9ydCB0aGF0IHNob3VsZCBiZSBzdWl0YWJsZSBmb3IgYmluZGluZy4gIFRoaXMgaXMKKyAgIGFjaGlldmVkIGJ5IGNyZWF0aW5nIGEgdGVtcG9yYXJ5IHNvY2tldCB3aXRoIHRoZSBzYW1lIGZhbWlseSBhbmQgdHlwZSBhcworICAgdGhlIGBgc29ja2BgIHBhcmFtZXRlciAoZGVmYXVsdCBpcyA6Y29uc3Q6YH5zb2NrZXQuQUZfSU5FVGAsCisgICA6Y29uc3Q6YH5zb2NrZXQuU09DS19TVFJFQU1gKSwKKyAgIGFuZCBiaW5kaW5nIGl0IHRvIHRoZSBzcGVjaWZpZWQgaG9zdCBhZGRyZXNzIChkZWZhdWx0cyB0byBgYDAuMC4wLjBgYCkKKyAgIHdpdGggdGhlIHBvcnQgc2V0IHRvIDAsIGVsaWNpdGluZyBhbiB1bnVzZWQgZXBoZW1lcmFsIHBvcnQgZnJvbSB0aGUgT1MuCisgICBUaGUgdGVtcG9yYXJ5IHNvY2tldCBpcyB0aGVuIGNsb3NlZCBhbmQgZGVsZXRlZCwgYW5kIHRoZSBlcGhlbWVyYWwgcG9ydCBpcworICAgcmV0dXJuZWQuCisKKyAgIEVpdGhlciB0aGlzIG1ldGhvZCBvciA6ZnVuYzpgYmluZF9wb3J0YCBzaG91bGQgYmUgdXNlZCBmb3IgYW55IHRlc3RzCisgICB3aGVyZSBhIHNlcnZlciBzb2NrZXQgbmVlZHMgdG8gYmUgYm91bmQgdG8gYSBwYXJ0aWN1bGFyIHBvcnQgZm9yIHRoZQorICAgZHVyYXRpb24gb2YgdGhlIHRlc3QuCisgICBXaGljaCBvbmUgdG8gdXNlIGRlcGVuZHMgb24gd2hldGhlciB0aGUgY2FsbGluZyBjb2RlIGlzIGNyZWF0aW5nIGEgcHl0aG9uCisgICBzb2NrZXQsIG9yIGlmIGFuIHVudXNlZCBwb3J0IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGluIGEgY29uc3RydWN0b3IKKyAgIG9yIHBhc3NlZCB0byBhbiBleHRlcm5hbCBwcm9ncmFtIChpLmUuIHRoZSBgYC1hY2NlcHRgYCBhcmd1bWVudCB0bworICAgb3BlbnNzbCdzIHNfc2VydmVyIG1vZGUpLiAgQWx3YXlzIHByZWZlciA6ZnVuYzpgYmluZF9wb3J0YCBvdmVyCisgICA6ZnVuYzpgZmluZF91bnVzZWRfcG9ydGAgd2hlcmUgcG9zc2libGUuICBVc2luZyBhIGhhcmQgY29kZWQgcG9ydCBpcworICAgZGlzY291cmFnZWQgc2luY2UgaXQgY2FuIG1ha2VzIG11bHRpcGxlIGluc3RhbmNlcyBvZiB0aGUgdGVzdCBpbXBvc3NpYmxlIHRvCisgICBydW4gc2ltdWx0YW5lb3VzbHksIHdoaWNoIGlzIGEgcHJvYmxlbSBmb3IgYnVpbGRib3RzLgorCisKIFRoZSA6bW9kOmB0ZXN0LnN1cHBvcnRgIG1vZHVsZSBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgY2xhc3NlczoKIAogLi4gY2xhc3M6OiBUcmFuc2llbnRSZXNvdXJjZShleGMsICoqa3dhcmdzKQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdGV4dHdyYXAucnN0IGIvRG9jL2xpYnJhcnkvdGV4dHdyYXAucnN0CmluZGV4IGE4MTQ5NjIuLjUwYzcxMGMgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3RleHR3cmFwLnJzdAorKysgYi9Eb2MvbGlicmFyeS90ZXh0d3JhcC5yc3QKQEAgLTEyLDcgKzEyLDcgQEAKIAogVGhlIDptb2Q6YHRleHR3cmFwYCBtb2R1bGUgcHJvdmlkZXMgdHdvIGNvbnZlbmllbmNlIGZ1bmN0aW9ucywgOmZ1bmM6YHdyYXBgIGFuZAogOmZ1bmM6YGZpbGxgLCBhcyB3ZWxsIGFzIDpjbGFzczpgVGV4dFdyYXBwZXJgLCB0aGUgY2xhc3MgdGhhdCBkb2VzIGFsbCB0aGUgd29yaywKLWFuZCBhIHV0aWxpdHkgZnVuY3Rpb24gIDpmdW5jOmBkZWRlbnRgLiAgSWYgeW91J3JlIGp1c3Qgd3JhcHBpbmcgb3IgZmlsbGluZyBvbmUKK2FuZCB0d28gdXRpbGl0eSBmdW5jdGlvbnMsIDpmdW5jOmBkZWRlbnRgIGFuZCA6ZnVuYzpgaW5kZW50YC4gIElmIHlvdSdyZSBqdXN0IHdyYXBwaW5nIG9yIGZpbGxpbmcgb25lCiBvciB0d28gIHRleHQgc3RyaW5ncywgdGhlIGNvbnZlbmllbmNlIGZ1bmN0aW9ucyBzaG91bGQgYmUgZ29vZCBlbm91Z2g7CiBvdGhlcndpc2UsICB5b3Ugc2hvdWxkIHVzZSBhbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YFRleHRXcmFwcGVyYCBmb3IgZWZmaWNpZW5jeS4KIApAQCAtNDUsOSArNDUsMTAgQEAKIGh5cGhlbmF0ZWQgd29yZHM7IG9ubHkgdGhlbiB3aWxsIGxvbmcgd29yZHMgYmUgYnJva2VuIGlmIG5lY2Vzc2FyeSwgdW5sZXNzCiA6YXR0cjpgVGV4dFdyYXBwZXIuYnJlYWtfbG9uZ193b3Jkc2AgaXMgc2V0IHRvIGZhbHNlLgogCi1BbiBhZGRpdGlvbmFsIHV0aWxpdHkgZnVuY3Rpb24sIDpmdW5jOmBkZWRlbnRgLCBpcyBwcm92aWRlZCB0byByZW1vdmUKLWluZGVudGF0aW9uIGZyb20gc3RyaW5ncyB0aGF0IGhhdmUgdW53YW50ZWQgd2hpdGVzcGFjZSB0byB0aGUgbGVmdCBvZiB0aGUgdGV4dC4KLQorVHdvIGFkZGl0aW9uYWwgdXRpbGl0eSBmdW5jdGlvbiwgOmZ1bmM6YGRlZGVudGAgYW5kIDpmdW5jOmBpbmRlbnRgLCBhcmUKK3Byb3ZpZGVkIHRvIHJlbW92ZSBpbmRlbnRhdGlvbiBmcm9tIHN0cmluZ3MgdGhhdCBoYXZlIHVud2FudGVkIHdoaXRlc3BhY2UKK3RvIHRoZSBsZWZ0IG9mIHRoZSB0ZXh0IGFuZCB0byBhZGQgYW4gYXJiaXRyYXJ5IHByZWZpeCB0byBzZWxlY3RlZCBsaW5lcworaW4gYSBibG9jayBvZiB0ZXh0LgogCiAuLiBmdW5jdGlvbjo6IGRlZGVudCh0ZXh0KQogCkBAIC03Miw2ICs3MywzMiBAQAogICAgICAgICAgIHByaW50KHJlcHIoZGVkZW50KHMpKSkgICMgcHJpbnRzICdoZWxsb1xuICB3b3JsZFxuJwogCiAKKy4uIGZ1bmN0aW9uOjogaW5kZW50KHRleHQsIHByZWZpeCwgcHJlZGljYXRlPU5vbmUpCisKKyAgIEFkZCAqcHJlZml4KiB0byB0aGUgYmVnaW5uaW5nIG9mIHNlbGVjdGVkIGxpbmVzIGluICp0ZXh0Ki4KKworICAgTGluZXMgYXJlIHNlcGFyYXRlZCBieSBjYWxsaW5nIGBgdGV4dC5zcGxpdGxpbmVzKFRydWUpYGAuCisKKyAgIEJ5IGRlZmF1bHQsICpwcmVmaXgqIGlzIGFkZGVkIHRvIGFsbCBsaW5lcyB0aGF0IGRvIG5vdCBjb25zaXN0CisgICBzb2xlbHkgb2Ygd2hpdGVzcGFjZSAoaW5jbHVkaW5nIGFueSBsaW5lIGVuZGluZ3MpLgorCisgICBGb3IgZXhhbXBsZTo6CisKKyAgICAgID4+PiBzID0gJ2hlbGxvXG5cbiBcbndvcmxkJworICAgICAgPj4+IGluZGVudChzLCAnICAnKQorICAgICAgJyAgaGVsbG9cblxuIFxuICB3b3JsZCcKKworICAgVGhlIG9wdGlvbmFsICpwcmVkaWNhdGUqIGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvIGNvbnRyb2wgd2hpY2ggbGluZXMKKyAgIGFyZSBpbmRlbnRlZC4gRm9yIGV4YW1wbGUsIGl0IGlzIGVhc3kgdG8gYWRkICpwcmVmaXgqIHRvIGV2ZW4gZW1wdHkKKyAgIGFuZCB3aGl0ZXNwYWNlLW9ubHkgbGluZXM6OgorCisgICAgICA+Pj4gcHJpbnQoaW5kZW50KHMsICcrICcsIGxhbWJkYSBsaW5lOiBUcnVlKSkKKyAgICAgICsgaGVsbG8KKyAgICAgICsKKyAgICAgICsKKyAgICAgICsgd29ybGQKKworCiAuLiBjbGFzczo6IFRleHRXcmFwcGVyKCoqa3dhcmdzKQogCiAgICBUaGUgOmNsYXNzOmBUZXh0V3JhcHBlcmAgY29uc3RydWN0b3IgYWNjZXB0cyBhIG51bWJlciBvZiBvcHRpb25hbCBrZXl3b3JkCkBAIC0xMDcsNiArMTM0LDE1IEBACiAgICAgICBleHBhbmRlZCB0byBzcGFjZXMgdXNpbmcgdGhlIDptZXRoOmBleHBhbmR0YWJzYCBtZXRob2Qgb2YgKnRleHQqLgogCiAKKyAgIC4uIGF0dHJpYnV0ZTo6IHRhYnNpemUKKworICAgICAgKGRlZmF1bHQ6IGBgOGBgKSBJZiA6YXR0cjpgZXhwYW5kX3RhYnNgIGlzIHRydWUsIHRoZW4gYWxsIHRhYiBjaGFyYWN0ZXJzCisgICAgICBpbiAqdGV4dCogd2lsbCBiZSBleHBhbmRlZCB0byB6ZXJvIG9yIG1vcmUgc3BhY2VzLCBkZXBlbmRpbmcgb24gdGhlCisgICAgICBjdXJyZW50IGNvbHVtbiBhbmQgdGhlIGdpdmVuIHRhYiBzaXplLgorCisgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAgICAuLiBhdHRyaWJ1dGU6OiByZXBsYWNlX3doaXRlc3BhY2UKIAogICAgICAgKGRlZmF1bHQ6IGBgVHJ1ZWBgKSBJZiB0cnVlLCBlYWNoIHdoaXRlc3BhY2UgY2hhcmFjdGVyIChhcyBkZWZpbmVkIGJ5CmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS90aHJlYWRpbmcucnN0IGIvRG9jL2xpYnJhcnkvdGhyZWFkaW5nLnJzdAppbmRleCA0MzA4N2VmLi5lYWJhMzhiIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS90aHJlYWRpbmcucnN0CisrKyBiL0RvYy9saWJyYXJ5L3RocmVhZGluZy5yc3QKQEAgLTIwLDE3ICsyMCw2IEBACiAgICBtZXRob2RzIGFuZCBmdW5jdGlvbnMgaW4gdGhpcyBtb2R1bGUgaW4gdGhlIFB5dGhvbiAyLnggc2VyaWVzIGFyZSBzdGlsbAogICAgc3VwcG9ydGVkIGJ5IHRoaXMgbW9kdWxlLgogCi0uLiBpbXBsLWRldGFpbDo6Ci0KLSAgIER1ZSB0byB0aGUgOnRlcm06YEdsb2JhbCBJbnRlcnByZXRlciBMb2NrYCwgaW4gQ1B5dGhvbiBvbmx5IG9uZSB0aHJlYWQKLSAgIGNhbiBleGVjdXRlIFB5dGhvbiBjb2RlIGF0IG9uY2UgKGV2ZW4gdGhvdWdoIGNlcnRhaW4gcGVyZm9ybWFuY2Utb3JpZW50ZWQKLSAgIGxpYnJhcmllcyBtaWdodCBvdmVyY29tZSB0aGlzIGxpbWl0YXRpb24pLgotICAgSWYgeW91IHdhbnQgeW91ciBhcHBsaWNhdGlvbiB0byBtYWtlIGJldHRlciBvZiB1c2Ugb2YgdGhlIGNvbXB1dGF0aW9uYWwKLSAgIHJlc291cmNlcyBvZiBtdWx0aS1jb3JlIG1hY2hpbmVzLCB5b3UgYXJlIGFkdmlzZWQgdG8gdXNlCi0gICA6bW9kOmBtdWx0aXByb2Nlc3NpbmdgIG9yIDpjbGFzczpgY29uY3VycmVudC5mdXR1cmVzLlByb2Nlc3NQb29sRXhlY3V0b3JgLgotICAgSG93ZXZlciwgdGhyZWFkaW5nIGlzIHN0aWxsIGFuIGFwcHJvcHJpYXRlIG1vZGVsIGlmIHlvdSB3YW50IHRvIHJ1bgotICAgbXVsdGlwbGUgSS9PLWJvdW5kIHRhc2tzIHNpbXVsdGFuZW91c2x5LgotCiAKIFRoaXMgbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYW5kIG9iamVjdHM6CiAKQEAgLTU5LDYgKzQ4LDE3IEBACiAgICByZXR1cm5lZC4KIAogCisuLiBmdW5jdGlvbjo6IGdldF9pZGVudCgpCisKKyAgIFJldHVybiB0aGUgJ3RocmVhZCBpZGVudGlmaWVyJyBvZiB0aGUgY3VycmVudCB0aHJlYWQuICBUaGlzIGlzIGEgbm9uemVybworICAgaW50ZWdlci4gIEl0cyB2YWx1ZSBoYXMgbm8gZGlyZWN0IG1lYW5pbmc7IGl0IGlzIGludGVuZGVkIGFzIGEgbWFnaWMgY29va2llCisgICB0byBiZSB1c2VkIGUuZy4gdG8gaW5kZXggYSBkaWN0aW9uYXJ5IG9mIHRocmVhZC1zcGVjaWZpYyBkYXRhLiAgVGhyZWFkCisgICBpZGVudGlmaWVycyBtYXkgYmUgcmVjeWNsZWQgd2hlbiBhIHRocmVhZCBleGl0cyBhbmQgYW5vdGhlciB0aHJlYWQgaXMKKyAgIGNyZWF0ZWQuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIGZ1bmN0aW9uOjogZW51bWVyYXRlKCkKIAogICAgUmV0dXJuIGEgbGlzdCBvZiBhbGwgOmNsYXNzOmBUaHJlYWRgIG9iamVjdHMgY3VycmVudGx5IGFsaXZlLiAgVGhlIGxpc3QKQEAgLTE3NCw3ICsxNzQsNyBAQAogICAgKnNpemUqIGFyZ3VtZW50IHNwZWNpZmllcyB0aGUgc3RhY2sgc2l6ZSB0byBiZSB1c2VkIGZvciBzdWJzZXF1ZW50bHkgY3JlYXRlZAogICAgdGhyZWFkcywgYW5kIG11c3QgYmUgMCAodXNlIHBsYXRmb3JtIG9yIGNvbmZpZ3VyZWQgZGVmYXVsdCkgb3IgYSBwb3NpdGl2ZQogICAgaW50ZWdlciB2YWx1ZSBvZiBhdCBsZWFzdCAzMiw3NjggKDMya0IpLiBJZiBjaGFuZ2luZyB0aGUgdGhyZWFkIHN0YWNrIHNpemUgaXMKLSAgIHVuc3VwcG9ydGVkLCBhIDpleGM6YFRocmVhZEVycm9yYCBpcyByYWlzZWQuICBJZiB0aGUgc3BlY2lmaWVkIHN0YWNrIHNpemUgaXMKKyAgIHVuc3VwcG9ydGVkLCBhIDpleGM6YFJ1bnRpbWVFcnJvcmAgaXMgcmFpc2VkLiAgSWYgdGhlIHNwZWNpZmllZCBzdGFjayBzaXplIGlzCiAgICBpbnZhbGlkLCBhIDpleGM6YFZhbHVlRXJyb3JgIGlzIHJhaXNlZCBhbmQgdGhlIHN0YWNrIHNpemUgaXMgdW5tb2RpZmllZC4gIDMya0IKICAgIGlzIGN1cnJlbnRseSB0aGUgbWluaW11bSBzdXBwb3J0ZWQgc3RhY2sgc2l6ZSB2YWx1ZSB0byBndWFyYW50ZWUgc3VmZmljaWVudAogICAgc3RhY2sgc3BhY2UgZm9yIHRoZSBpbnRlcnByZXRlciBpdHNlbGYuICBOb3RlIHRoYXQgc29tZSBwbGF0Zm9ybXMgbWF5IGhhdmUKQEAgLTIzOSwxMCArMjM5LDExIEBACiBBIHRocmVhZCBoYXMgYSBuYW1lLiAgVGhlIG5hbWUgY2FuIGJlIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IsIGFuZCByZWFkIG9yCiBjaGFuZ2VkIHRocm91Z2ggdGhlIDphdHRyOmB+VGhyZWFkLm5hbWVgIGF0dHJpYnV0ZS4KIAotQSB0aHJlYWQgY2FuIGJlIGZsYWdnZWQgYXMgYSAiZGFlbW9uIHRocmVhZCIuICBUaGUgc2lnbmlmaWNhbmNlIG9mIHRoaXMgZmxhZwotaXMgdGhhdCB0aGUgZW50aXJlIFB5dGhvbiBwcm9ncmFtIGV4aXRzIHdoZW4gb25seSBkYWVtb24gdGhyZWFkcyBhcmUgbGVmdC4KLVRoZSBpbml0aWFsIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBjcmVhdGluZyB0aHJlYWQuICBUaGUgZmxhZyBjYW4gYmUKLXNldCB0aHJvdWdoIHRoZSA6YXR0cjpgflRocmVhZC5kYWVtb25gIHByb3BlcnR5LgorQSB0aHJlYWQgY2FuIGJlIGZsYWdnZWQgYXMgYSAiZGFlbW9uIHRocmVhZCIuICBUaGUgc2lnbmlmaWNhbmNlIG9mIHRoaXMgZmxhZyBpcwordGhhdCB0aGUgZW50aXJlIFB5dGhvbiBwcm9ncmFtIGV4aXRzIHdoZW4gb25seSBkYWVtb24gdGhyZWFkcyBhcmUgbGVmdC4gIFRoZQoraW5pdGlhbCB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgY3JlYXRpbmcgdGhyZWFkLiAgVGhlIGZsYWcgY2FuIGJlIHNldAordGhyb3VnaCB0aGUgOmF0dHI6YH5UaHJlYWQuZGFlbW9uYCBwcm9wZXJ0eSBvciB0aGUgKmRhZW1vbiogY29uc3RydWN0b3IKK2FyZ3VtZW50LgogCiBUaGVyZSBpcyBhICJtYWluIHRocmVhZCIgb2JqZWN0OyB0aGlzIGNvcnJlc3BvbmRzIHRvIHRoZSBpbml0aWFsIHRocmVhZCBvZgogY29udHJvbCBpbiB0aGUgUHl0aG9uIHByb2dyYW0uICBJdCBpcyBub3QgYSBkYWVtb24gdGhyZWFkLgpAQCAtMjU1LDcgKzI1Niw4IEBACiBzaW5jZSBpdCBpcyBpbXBvc3NpYmxlIHRvIGRldGVjdCB0aGUgdGVybWluYXRpb24gb2YgYWxpZW4gdGhyZWFkcy4KIAogCi0uLiBjbGFzczo6IFRocmVhZChncm91cD1Ob25lLCB0YXJnZXQ9Tm9uZSwgbmFtZT1Ob25lLCBhcmdzPSgpLCBrd2FyZ3M9e30pCisuLiBjbGFzczo6IFRocmVhZChncm91cD1Ob25lLCB0YXJnZXQ9Tm9uZSwgbmFtZT1Ob25lLCBhcmdzPSgpLCBrd2FyZ3M9e30sCisgICAgICAgICAgICAgICAgICB2ZXJib3NlPU5vbmUsICosIGRhZW1vbj1Ob25lKQogCiAgICBUaGlzIGNvbnN0cnVjdG9yIHNob3VsZCBhbHdheXMgYmUgY2FsbGVkIHdpdGgga2V5d29yZCBhcmd1bWVudHMuICBBcmd1bWVudHMKICAgIGFyZToKQEAgLTI3NCwxMCArMjc2LDE5IEBACiAgICAqa3dhcmdzKiBpcyBhIGRpY3Rpb25hcnkgb2Yga2V5d29yZCBhcmd1bWVudHMgZm9yIHRoZSB0YXJnZXQgaW52b2NhdGlvbi4KICAgIERlZmF1bHRzIHRvIGBge31gYC4KIAorICAgKnZlcmJvc2UqIGlzIGEgZmxhZyB1c2VkIGZvciBkZWJ1Z2dpbmcgbWVzc2FnZXMuCisKKyAgIElmIG5vdCBgYE5vbmVgYCwgKmRhZW1vbiogZXhwbGljaXRseSBzZXRzIHdoZXRoZXIgdGhlIHRocmVhZCBpcyBkYWVtb25pYy4KKyAgIElmIGBgTm9uZWBgICh0aGUgZGVmYXVsdCksIHRoZSBkYWVtb25pYyBwcm9wZXJ0eSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUKKyAgIGN1cnJlbnQgdGhyZWFkLgorCiAgICBJZiB0aGUgc3ViY2xhc3Mgb3ZlcnJpZGVzIHRoZSBjb25zdHJ1Y3RvciwgaXQgbXVzdCBtYWtlIHN1cmUgdG8gaW52b2tlIHRoZQogICAgYmFzZSBjbGFzcyBjb25zdHJ1Y3RvciAoYGBUaHJlYWQuX19pbml0X18oKWBgKSBiZWZvcmUgZG9pbmcgYW55dGhpbmcgZWxzZSB0bwogICAgdGhlIHRocmVhZC4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEFkZGVkIHRoZSAqZGFlbW9uKiBhcmd1bWVudC4KKwogICAgLi4gbWV0aG9kOjogc3RhcnQoKQogCiAgICAgICBTdGFydCB0aGUgdGhyZWFkJ3MgYWN0aXZpdHkuCkBAIC0zNjgsNiArMzc5LDE4IEBACiAgICAgICBwcm9wZXJ0eSBpbnN0ZWFkLgogCiAKKy4uIGltcGwtZGV0YWlsOjoKKworICAgRHVlIHRvIHRoZSA6dGVybTpgR2xvYmFsIEludGVycHJldGVyIExvY2tgLCBpbiBDUHl0aG9uIG9ubHkgb25lIHRocmVhZAorICAgY2FuIGV4ZWN1dGUgUHl0aG9uIGNvZGUgYXQgb25jZSAoZXZlbiB0aG91Z2ggY2VydGFpbiBwZXJmb3JtYW5jZS1vcmllbnRlZAorICAgbGlicmFyaWVzIG1pZ2h0IG92ZXJjb21lIHRoaXMgbGltaXRhdGlvbikuCisgICBJZiB5b3Ugd2FudCB5b3VyIGFwcGxpY2F0aW9uIHRvIG1ha2UgYmV0dGVyIG9mIHVzZSBvZiB0aGUgY29tcHV0YXRpb25hbAorICAgcmVzb3VyY2VzIG9mIG11bHRpLWNvcmUgbWFjaGluZXMsIHlvdSBhcmUgYWR2aXNlZCB0byB1c2UKKyAgIDptb2Q6YG11bHRpcHJvY2Vzc2luZ2Agb3IgOmNsYXNzOmBjb25jdXJyZW50LmZ1dHVyZXMuUHJvY2Vzc1Bvb2xFeGVjdXRvcmAuCisgICBIb3dldmVyLCB0aHJlYWRpbmcgaXMgc3RpbGwgYW4gYXBwcm9wcmlhdGUgbW9kZWwgaWYgeW91IHdhbnQgdG8gcnVuCisgICBtdWx0aXBsZSBJL08tYm91bmQgdGFza3Mgc2ltdWx0YW5lb3VzbHkuCisKKwogLi4gX2xvY2stb2JqZWN0czoKIAogTG9jayBPYmplY3RzCkBAIC00MzUsNyArNDU4LDcgQEAKICAgIGFyZSBibG9ja2VkIHdhaXRpbmcgZm9yIHRoZSBsb2NrIHRvIGJlY29tZSB1bmxvY2tlZCwgYWxsb3cgZXhhY3RseSBvbmUgb2YgdGhlbQogICAgdG8gcHJvY2VlZC4KIAotICAgV2hlbiBpbnZva2VkIG9uIGFuIHVubG9ja2VkIGxvY2ssIGEgOmV4YzpgVGhyZWFkRXJyb3JgIGlzIHJhaXNlZC4KKyAgIFdoZW4gaW52b2tlZCBvbiBhbiB1bmxvY2tlZCBsb2NrLCBhIDpleGM6YFJ1bnRpbWVFcnJvcmAgaXMgcmFpc2VkLgogCiAgICBUaGVyZSBpcyBubyByZXR1cm4gdmFsdWUuCiAKQEAgLTk3MywyNyArOTk2LDMgQEAKIEN1cnJlbnRseSwgOmNsYXNzOmBMb2NrYCwgOmNsYXNzOmBSTG9ja2AsIDpjbGFzczpgQ29uZGl0aW9uYCwKIDpjbGFzczpgU2VtYXBob3JlYCwgYW5kIDpjbGFzczpgQm91bmRlZFNlbWFwaG9yZWAgb2JqZWN0cyBtYXkgYmUgdXNlZCBhcwogOmtleXdvcmQ6YHdpdGhgIHN0YXRlbWVudCBjb250ZXh0IG1hbmFnZXJzLgotCi0KLS4uIF90aHJlYWRlZC1pbXBvcnRzOgotCi1JbXBvcnRpbmcgaW4gdGhyZWFkZWQgY29kZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotV2hpbGUgdGhlIGltcG9ydCBtYWNoaW5lcnkgaXMgdGhyZWFkLXNhZmUsIHRoZXJlIGFyZSB0d28ga2V5IHJlc3RyaWN0aW9ucyBvbgotdGhyZWFkZWQgaW1wb3J0cyBkdWUgdG8gaW5oZXJlbnQgbGltaXRhdGlvbnMgaW4gdGhlIHdheSB0aGF0IHRocmVhZC1zYWZldHkgaXMKLXByb3ZpZGVkOgotCi0qIEZpcnN0bHksIG90aGVyIHRoYW4gaW4gdGhlIG1haW4gbW9kdWxlLCBhbiBpbXBvcnQgc2hvdWxkIG5vdCBoYXZlIHRoZQotICBzaWRlIGVmZmVjdCBvZiBzcGF3bmluZyBhIG5ldyB0aHJlYWQgYW5kIHRoZW4gd2FpdGluZyBmb3IgdGhhdCB0aHJlYWQgaW4KLSAgYW55IHdheS4gRmFpbGluZyB0byBhYmlkZSBieSB0aGlzIHJlc3RyaWN0aW9uIGNhbiBsZWFkIHRvIGEgZGVhZGxvY2sgaWYKLSAgdGhlIHNwYXduZWQgdGhyZWFkIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgYXR0ZW1wdHMgdG8gaW1wb3J0IGEgbW9kdWxlLgotKiBTZWNvbmRseSwgYWxsIGltcG9ydCBhdHRlbXB0cyBtdXN0IGJlIGNvbXBsZXRlZCBiZWZvcmUgdGhlIGludGVycHJldGVyCi0gIHN0YXJ0cyBzaHV0dGluZyBpdHNlbGYgZG93bi4gVGhpcyBjYW4gYmUgbW9zdCBlYXNpbHkgYWNoaWV2ZWQgYnkgb25seQotICBwZXJmb3JtaW5nIGltcG9ydHMgZnJvbSBub24tZGFlbW9uIHRocmVhZHMgY3JlYXRlZCB0aHJvdWdoIHRoZSB0aHJlYWRpbmcKLSAgbW9kdWxlLiBEYWVtb24gdGhyZWFkcyBhbmQgdGhyZWFkcyBjcmVhdGVkIGRpcmVjdGx5IHdpdGggdGhlIHRocmVhZAotICBtb2R1bGUgd2lsbCByZXF1aXJlIHNvbWUgb3RoZXIgZm9ybSBvZiBzeW5jaHJvbml6YXRpb24gdG8gZW5zdXJlIHRoZXkgZG8KLSAgbm90IGF0dGVtcHQgaW1wb3J0cyBhZnRlciBzeXN0ZW0gc2h1dGRvd24gaGFzIGNvbW1lbmNlZC4gRmFpbHVyZSB0bwotICBhYmlkZSBieSB0aGlzIHJlc3RyaWN0aW9uIHdpbGwgbGVhZCB0byBpbnRlcm1pdHRlbnQgZXhjZXB0aW9ucyBhbmQKLSAgY3Jhc2hlcyBkdXJpbmcgaW50ZXJwcmV0ZXIgc2h1dGRvd24gKGFzIHRoZSBsYXRlIGltcG9ydHMgYXR0ZW1wdCB0bwotICBhY2Nlc3MgbWFjaGluZXJ5IHdoaWNoIGlzIG5vIGxvbmdlciBpbiBhIHZhbGlkIHN0YXRlKS4KZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3RpbWUucnN0IGIvRG9jL2xpYnJhcnkvdGltZS5yc3QKaW5kZXggZTBjNzAwNy4uNzk5MTQwYyAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvdGltZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdGltZS5yc3QKQEAgLTQxLDI1ICs0MSw2IEBACiAgIHBhcnNlZCwgdGhleSBhcmUgY29udmVydGVkIGFjY29yZGluZyB0byB0aGUgUE9TSVggYW5kIElTTyBDIHN0YW5kYXJkczogdmFsdWVzCiAgIDY5LS05OSBhcmUgbWFwcGVkIHRvIDE5NjktLTE5OTksIGFuZCB2YWx1ZXMgMC0tNjggYXJlIG1hcHBlZCB0byAyMDAwLS0yMDY4LgogCi0gIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCB5ZWFycyB3aXRoIGxlc3MgdGhhbiA0IGRpZ2l0cyBhcmUgdHJlYXRlZAotICBzcGVjaWFsbHkgYnkgOmZ1bmM6YGFzY3RpbWVgLCA6ZnVuYzpgbWt0aW1lYCwgYW5kIDpmdW5jOmBzdHJmdGltZWAgZnVuY3Rpb25zCi0gIHRoYXQgb3BlcmF0ZSBvbiBhIDktdHVwbGUgb3IgOmNsYXNzOmBzdHJ1Y3RfdGltZWAgdmFsdWVzLiBJZiB5ZWFyICh0aGUgZmlyc3QKLSAgdmFsdWUgaW4gdGhlIDktdHVwbGUpIGlzIHNwZWNpZmllZCB3aXRoIGxlc3MgdGhhbiA0IGRpZ2l0cywgaXRzIGludGVycHJldGF0aW9uCi0gIGRlcGVuZHMgb24gdGhlIHZhbHVlIG9mIGBgYWNjZXB0MmR5ZWFyYGAgdmFyaWFibGUuCi0KLSAgSWYgYGBhY2NlcHQyZHllYXJgYCBpcyB0cnVlIChkZWZhdWx0KSwgYSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGJlaGF2aW9yIGlzCi0gIGludm9rZWQgYXMgZm9sbG93czoKLQotICAgIC0gZm9yIDItZGlnaXQgeWVhciwgY2VudHVyeSBpcyBndWVzc2VkIGFjY29yZGluZyB0byBQT1NJWCBydWxlcyBmb3IKLSAgICAgIGBgJXlgYCBzdHJwdGltZSBmb3JtYXQuICBBIGRlcHJlY2F0aW9uIHdhcm5pbmcgaXMgaXNzdWVkIHdoZW4gY2VudHVyeQotICAgICAgaW5mb3JtYXRpb24gaXMgZ3Vlc3NlZCBpbiB0aGlzIHdheS4KLQotICAgIC0gZm9yIDMtZGlnaXQgb3IgbmVnYXRpdmUgeWVhciwgYSA6ZXhjOmBWYWx1ZUVycm9yYCBleGNlcHRpb24gaXMgcmFpc2VkLgotCi0gIElmIGBgYWNjZXB0MmR5ZWFyYGAgaXMgZmFsc2UgKHNldCBieSB0aGUgcHJvZ3JhbSBvciBhcyBhIHJlc3VsdCBvZiBhCi0gIG5vbi1lbXB0eSB2YWx1ZSBhc3NpZ25lZCB0byBgYFBZVEhPTlkyS2BgIGVudmlyb25tZW50IHZhcmlhYmxlKSBhbGwgeWVhcgotICB2YWx1ZXMgYXJlIGludGVycHJldGVkIGFzIGdpdmVuLgotCiAuLiBpbmRleDo6CiAgICBzaW5nbGU6IFVUQwogICAgc2luZ2xlOiBDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZQpAQCAtOTYsNiArNzcsMTEgQEAKIAogICBTZWUgOmNsYXNzOmBzdHJ1Y3RfdGltZWAgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlc2Ugb2JqZWN0cy4KIAorICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICBUaGUgOmNsYXNzOmBzdHJ1Y3RfdGltZWAgdHlwZSB3YXMgZXh0ZW5kZWQgdG8gcHJvdmlkZSB0aGUgOmF0dHI6YHRtX2dtdG9mZmAKKyAgICAgYW5kIDphdHRyOmB0bV96b25lYCBhdHRyaWJ1dGVzIHdoZW4gcGxhdGZvcm0gc3VwcG9ydHMgY29ycmVzcG9uZGluZworICAgICBgYHN0cnVjdCB0bWBgIG1lbWJlcnMuCisKICogVXNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHRvIGNvbnZlcnQgYmV0d2VlbiB0aW1lIHJlcHJlc2VudGF0aW9uczoKIAogICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCkBAIC0xMTcsMjQgKzEwMyw2IEBACiAKIFRoZSBtb2R1bGUgZGVmaW5lcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhbmQgZGF0YSBpdGVtczoKIAotCi0uLiBkYXRhOjogYWNjZXB0MmR5ZWFyCi0KLSAgIEJvb2xlYW4gdmFsdWUgaW5kaWNhdGluZyB3aGV0aGVyIHR3by1kaWdpdCB5ZWFyIHZhbHVlcyB3aWxsIGJlCi0gICBtYXBwZWQgdG8gMTk2OS0tMjA2OCByYW5nZSBieSA6ZnVuYzpgYXNjdGltZWAsIDpmdW5jOmBta3RpbWVgLCBhbmQKLSAgIDpmdW5jOmBzdHJmdGltZWAgZnVuY3Rpb25zLiAgVGhpcyBpcyB0cnVlIGJ5IGRlZmF1bHQsIGJ1dCB3aWxsIGJlCi0gICBzZXQgdG8gZmFsc2UgaWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIDplbnZ2YXI6YFBZVEhPTlkyS2AgaGFzCi0gICBiZWVuIHNldCB0byBhIG5vbi1lbXB0eSBzdHJpbmcuICBJdCBtYXkgYWxzbyBiZSBtb2RpZmllZCBhdCBydW4KLSAgIHRpbWUuCi0KLSAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjIKLSAgICAgIE1hcHBpbmcgb2YgMi1kaWdpdCB5ZWFyIHZhbHVlcyBieSA6ZnVuYzpgYXNjdGltZWAsCi0gICAgICA6ZnVuYzpgbWt0aW1lYCwgYW5kIDpmdW5jOmBzdHJmdGltZWAgZnVuY3Rpb25zIHRvIDE5NjktLTIwNjgKLSAgICAgIHJhbmdlIGlzIGRlcHJlY2F0ZWQuICBQcm9ncmFtcyB0aGF0IG5lZWQgdG8gcHJvY2VzcyAyLWRpZ2l0Ci0gICAgICB5ZWFycyBzaG91bGQgdXNlIGBgJXlgYCBjb2RlIGF2YWlsYWJsZSBpbiA6ZnVuYzpgc3RycHRpbWVgCi0gICAgICBmdW5jdGlvbiBvciBjb252ZXJ0IDItZGlnaXQgeWVhciB2YWx1ZXMgdG8gNC1kaWdpdCB0aGVtc2VsdmVzLgotCi0KIC4uIGRhdGE6OiBhbHR6b25lCiAKICAgIFRoZSBvZmZzZXQgb2YgdGhlIGxvY2FsIERTVCB0aW1lem9uZSwgaW4gc2Vjb25kcyB3ZXN0IG9mIFVUQywgaWYgb25lIGlzIGRlZmluZWQuCkBAIC0xNTIsNyArMTIwLDggQEAKIAogICAgLi4gbm90ZTo6CiAKLSAgICAgIFVubGlrZSB0aGUgQyBmdW5jdGlvbiBvZiB0aGUgc2FtZSBuYW1lLCB0aGVyZSBpcyBubyB0cmFpbGluZyBuZXdsaW5lLgorICAgICAgVW5saWtlIHRoZSBDIGZ1bmN0aW9uIG9mIHRoZSBzYW1lIG5hbWUsIDpmdW5jOmBhc2N0aW1lYCBkb2VzIG5vdCBhZGQgYQorICAgICAgdHJhaWxpbmcgbmV3bGluZS4KIAogCiAuLiBmdW5jdGlvbjo6IGNsb2NrKCkKQEAgLTE3Miw2ICsxNDEsOTcgQEAKICAgIDpjOmZ1bmM6YFF1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyYC4gVGhlIHJlc29sdXRpb24gaXMgdHlwaWNhbGx5IGJldHRlciB0aGFuIG9uZQogICAgbWljcm9zZWNvbmQuCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKyAgICAgIFRoZSBiZWhhdmlvdXIgb2YgdGhpcyBmdW5jdGlvbiBkZXBlbmRzIG9uIHRoZSBwbGF0Zm9ybTogdXNlCisgICAgICA6ZnVuYzpgcGVyZl9jb3VudGVyYCBvciA6ZnVuYzpgcHJvY2Vzc190aW1lYCBpbnN0ZWFkLCBkZXBlbmRpbmcgb24geW91cgorICAgICAgcmVxdWlyZW1lbnRzLCB0byBoYXZlIGEgd2VsbCBkZWZpbmVkIGJlaGF2aW91ci4KKworCisuLiBmdW5jdGlvbjo6IGNsb2NrX2dldHJlcyhjbGtfaWQpCisKKyAgIFJldHVybiB0aGUgcmVzb2x1dGlvbiAocHJlY2lzaW9uKSBvZiB0aGUgc3BlY2lmaWVkIGNsb2NrICpjbGtfaWQqLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogY2xvY2tfZ2V0dGltZShjbGtfaWQpCisKKyAgIFJldHVybiB0aGUgdGltZSBvZiB0aGUgc3BlY2lmaWVkIGNsb2NrICpjbGtfaWQqLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogY2xvY2tfc2V0dGltZShjbGtfaWQsIHRpbWUpCisKKyAgIFNldCB0aGUgdGltZSBvZiB0aGUgc3BlY2lmaWVkIGNsb2NrICpjbGtfaWQqLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGRhdGE6OiBDTE9DS19ISUdIUkVTCisKKyAgIFRoZSBTb2xhcmlzIE9TIGhhcyBhIENMT0NLX0hJR0hSRVMgdGltZXIgdGhhdCBhdHRlbXB0cyB0byB1c2UgYW4gb3B0aW1hbAorICAgaGFyZHdhcmUgc291cmNlLCBhbmQgbWF5IGdpdmUgY2xvc2UgdG8gbmFub3NlY29uZCByZXNvbHV0aW9uLiAgQ0xPQ0tfSElHSFJFUworICAgaXMgdGhlIG5vbmFkanVzdGFibGUsIGhpZ2gtcmVzb2x1dGlvbiBjbG9jay4KKworICAgQXZhaWxhYmlsaXR5OiBTb2xhcmlzLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBkYXRhOjogQ0xPQ0tfTU9OT1RPTklDCisKKyAgIENsb2NrIHRoYXQgY2Fubm90IGJlIHNldCBhbmQgcmVwcmVzZW50cyBtb25vdG9uaWMgdGltZSBzaW5jZSBzb21lIHVuc3BlY2lmaWVkCisgICBzdGFydGluZyBwb2ludC4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBkYXRhOjogQ0xPQ0tfTU9OT1RPTklDX1JBVworCisgICBTaW1pbGFyIHRvIDpkYXRhOmBDTE9DS19NT05PVE9OSUNgLCBidXQgcHJvdmlkZXMgYWNjZXNzIHRvIGEgcmF3CisgICBoYXJkd2FyZS1iYXNlZCB0aW1lIHRoYXQgaXMgbm90IHN1YmplY3QgdG8gTlRQIGFkanVzdG1lbnRzLgorCisgICBBdmFpbGFiaWxpdHk6IExpbnV4IDIuNi4yOCBvciBsYXRlci4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZGF0YTo6IENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRAorCisgICBIaWdoLXJlc29sdXRpb24gcGVyLXByb2Nlc3MgdGltZXIgZnJvbSB0aGUgQ1BVLgorCisgICBBdmFpbGFiaWxpdHk6IFVuaXguCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGRhdGE6OiBDTE9DS19SRUFMVElNRQorCisgICBTeXN0ZW0td2lkZSByZWFsLXRpbWUgY2xvY2suICBTZXR0aW5nIHRoaXMgY2xvY2sgcmVxdWlyZXMgYXBwcm9wcmlhdGUKKyAgIHByaXZpbGVnZXMuCisKKyAgIEF2YWlsYWJpbGl0eTogVW5peC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKworLi4gZGF0YTo6IENMT0NLX1RIUkVBRF9DUFVUSU1FX0lECisKKyAgIFRocmVhZC1zcGVjaWZpYyBDUFUtdGltZSBjbG9jay4KKworICAgQXZhaWxhYmlsaXR5OiBVbml4LgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogCiAuLiBmdW5jdGlvbjo6IGN0aW1lKFtzZWNzXSkKIApAQCAtMTg2LDYgKzI0NiwzMSBAQAogICAgTm9uemVybyBpZiBhIERTVCB0aW1lem9uZSBpcyBkZWZpbmVkLgogCiAKKy4uIGZ1bmN0aW9uOjogZ2V0X2Nsb2NrX2luZm8obmFtZSkKKworICAgR2V0IGluZm9ybWF0aW9uIG9uIHRoZSBzcGVjaWZpZWQgY2xvY2sgYXMgYSBuYW1lc3BhY2Ugb2JqZWN0LgorICAgU3VwcG9ydGVkIGNsb2NrIG5hbWVzIGFuZCB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbnMgdG8gcmVhZCB0aGVpciB2YWx1ZQorICAgYXJlOgorCisgICAqIGBgJ2Nsb2NrJ2BgOiA6ZnVuYzpgdGltZS5jbG9ja2AKKyAgICogYGAnbW9ub3RvbmljJ2BgOiA6ZnVuYzpgdGltZS5tb25vdG9uaWNgCisgICAqIGBgJ3BlcmZfY291bnRlcidgYDogOmZ1bmM6YHRpbWUucGVyZl9jb3VudGVyYAorICAgKiBgYCdwcm9jZXNzX3RpbWUnYGA6IDpmdW5jOmB0aW1lLnByb2Nlc3NfdGltZWAKKyAgICogYGAndGltZSdgYDogOmZ1bmM6YHRpbWUudGltZWAKKworICAgVGhlIHJlc3VsdCBoYXMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzOgorCisgICAtICphZGp1c3RhYmxlKjogYGBUcnVlYGAgaWYgdGhlIGNsb2NrIGNhbiBiZSBjaGFuZ2VkIGF1dG9tYXRpY2FsbHkgKGUuZy4gYnkKKyAgICAgYSBOVFAgZGFlbW9uKSBvciBtYW51YWxseSBieSB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3IsIGBgRmFsc2VgYCBvdGhlcndpc2UKKyAgIC0gKmltcGxlbWVudGF0aW9uKjogVGhlIG5hbWUgb2YgdGhlIHVuZGVybHlpbmcgQyBmdW5jdGlvbiB1c2VkIHRvIGdldAorICAgICB0aGUgY2xvY2sgdmFsdWUKKyAgIC0gKm1vbm90b25pYyo6IGBgVHJ1ZWBgIGlmIHRoZSBjbG9jayBjYW5ub3QgZ28gYmFja3dhcmQsCisgICAgIGBgRmFsc2VgYCBvdGhlcndpc2UKKyAgIC0gKnJlc29sdXRpb24qOiBUaGUgcmVzb2x1dGlvbiBvZiB0aGUgY2xvY2sgaW4gc2Vjb25kcyAoOmNsYXNzOmBmbG9hdGApCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKIC4uIGZ1bmN0aW9uOjogZ210aW1lKFtzZWNzXSkKIAogICAgQ29udmVydCBhIHRpbWUgZXhwcmVzc2VkIGluIHNlY29uZHMgc2luY2UgdGhlIGVwb2NoIHRvIGEgOmNsYXNzOmBzdHJ1Y3RfdGltZWAgaW4KQEAgLTIxNSw2ICszMDAsNDcgQEAKICAgIFRoZSBlYXJsaWVzdCBkYXRlIGZvciB3aGljaCBpdCBjYW4gZ2VuZXJhdGUgYSB0aW1lIGlzIHBsYXRmb3JtLWRlcGVuZGVudC4KIAogCisuLiBmdW5jdGlvbjo6IG1vbm90b25pYygpCisKKyAgIFJldHVybiB0aGUgdmFsdWUgKGluIGZyYWN0aW9uYWwgc2Vjb25kcykgb2YgYSBtb25vdG9uaWMgY2xvY2ssIGkuZS4gYSBjbG9jaworICAgdGhhdCBjYW5ub3QgZ28gYmFja3dhcmRzLiAgVGhlIGNsb2NrIGlzIG5vdCBhZmZlY3RlZCBieSBzeXN0ZW0gY2xvY2sgdXBkYXRlcy4KKyAgIFRoZSByZWZlcmVuY2UgcG9pbnQgb2YgdGhlIHJldHVybmVkIHZhbHVlIGlzIHVuZGVmaW5lZCwgc28gdGhhdCBvbmx5IHRoZQorICAgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSByZXN1bHRzIG9mIGNvbnNlY3V0aXZlIGNhbGxzIGlzIHZhbGlkLgorCisgICBPbiBXaW5kb3dzIHZlcnNpb25zIG9sZGVyIHRoYW4gVmlzdGEsIDpmdW5jOmBtb25vdG9uaWNgIGRldGVjdHMKKyAgIDpjOmZ1bmM6YEdldFRpY2tDb3VudGAgaW50ZWdlciBvdmVyZmxvdyAoMzIgYml0cywgcm9sbC1vdmVyIGFmdGVyIDQ5LjcgZGF5cykuCisgICBJdCBpbmNyZWFzZXMgYW4gaW50ZXJuYWwgZXBvY2ggKHJlZmVyZW5jZSB0aW1lIGJ5KSAyXCA6c3VwOmAzMmAgZWFjaCB0aW1lCisgICB0aGF0IGFuIG92ZXJmbG93IGlzIGRldGVjdGVkLiAgVGhlIGVwb2NoIGlzIHN0b3JlZCBpbiB0aGUgcHJvY2Vzcy1sb2NhbCBzdGF0ZQorICAgYW5kIHNvIHRoZSB2YWx1ZSBvZiA6ZnVuYzpgbW9ub3RvbmljYCBtYXkgYmUgZGlmZmVyZW50IGluIHR3byBQeXRob24KKyAgIHByb2Nlc3NlcyBydW5uaW5nIGZvciBtb3JlIHRoYW4gNDkgZGF5cy4gT24gbW9yZSByZWNlbnQgdmVyc2lvbnMgb2YgV2luZG93cworICAgYW5kIG9uIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zLCA6ZnVuYzpgbW9ub3RvbmljYCBpcyBzeXN0ZW0td2lkZS4KKworICAgQXZhaWxhYmlsaXR5OiBXaW5kb3dzLCBNYWMgT1MgWCwgTGludXgsIEZyZWVCU0QsIE9wZW5CU0QsIFNvbGFyaXMuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIGZ1bmN0aW9uOjogcGVyZl9jb3VudGVyKCkKKworICAgUmV0dXJuIHRoZSB2YWx1ZSAoaW4gZnJhY3Rpb25hbCBzZWNvbmRzKSBvZiBhIHBlcmZvcm1hbmNlIGNvdW50ZXIsIGkuZS4gYQorICAgY2xvY2sgd2l0aCB0aGUgaGlnaGVzdCBhdmFpbGFibGUgcmVzb2x1dGlvbiB0byBtZWFzdXJlIGEgc2hvcnQgZHVyYXRpb24uICBJdAorICAgZG9lcyBpbmNsdWRlIHRpbWUgZWxhcHNlZCBkdXJpbmcgc2xlZXAgYW5kIGlzIHN5c3RlbS13aWRlLiAgVGhlIHJlZmVyZW5jZQorICAgcG9pbnQgb2YgdGhlIHJldHVybmVkIHZhbHVlIGlzIHVuZGVmaW5lZCwgc28gdGhhdCBvbmx5IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KKyAgIHRoZSByZXN1bHRzIG9mIGNvbnNlY3V0aXZlIGNhbGxzIGlzIHZhbGlkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCisuLiBmdW5jdGlvbjo6IHByb2Nlc3NfdGltZSgpCisKKyAgIFJldHVybiB0aGUgdmFsdWUgKGluIGZyYWN0aW9uYWwgc2Vjb25kcykgb2YgdGhlIHN1bSBvZiB0aGUgc3lzdGVtIGFuZCB1c2VyCisgICBDUFUgdGltZSBvZiB0aGUgY3VycmVudCBwcm9jZXNzLiAgSXQgZG9lcyBub3QgaW5jbHVkZSB0aW1lIGVsYXBzZWQgZHVyaW5nCisgICBzbGVlcC4gIEl0IGlzIHByb2Nlc3Mtd2lkZSBieSBkZWZpbml0aW9uLiAgVGhlIHJlZmVyZW5jZSBwb2ludCBvZiB0aGUKKyAgIHJldHVybmVkIHZhbHVlIGlzIHVuZGVmaW5lZCwgc28gdGhhdCBvbmx5IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHJlc3VsdHMKKyAgIG9mIGNvbnNlY3V0aXZlIGNhbGxzIGlzIHZhbGlkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKwogLi4gZnVuY3Rpb246OiBzbGVlcChzZWNzKQogCiAgICBTdXNwZW5kIGV4ZWN1dGlvbiBmb3IgdGhlIGdpdmVuIG51bWJlciBvZiBzZWNvbmRzLiAgVGhlIGFyZ3VtZW50IG1heSBiZSBhCkBAIC0zMDgsOSArNDM0LDE1IEBACiAgICB8IGBgJXlgYCAgICB8IFllYXIgd2l0aG91dCBjZW50dXJ5IGFzIGEgZGVjaW1hbCBudW1iZXIgICAgICAgfCAgICAgICB8CiAgICB8ICAgICAgICAgICB8IFswMCw5OV0uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CiAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCi0gICB8IGBgJVlgYCAgICB8IFllYXIgd2l0aCBjZW50dXJ5IGFzIGEgZGVjaW1hbCBudW1iZXIuICAgICAgICAgfCBcKDQpICB8CisgICB8IGBgJVlgYCAgICB8IFllYXIgd2l0aCBjZW50dXJ5IGFzIGEgZGVjaW1hbCBudW1iZXIuICAgICAgICAgfCAgICAgICB8CiAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CiAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCisgICB8IGBgJXpgYCAgICB8IFRpbWUgem9uZSBvZmZzZXQgaW5kaWNhdGluZyBhIHBvc2l0aXZlIG9yICAgICAgfCAgICAgICB8CisgICB8ICAgICAgICAgICB8IG5lZ2F0aXZlIHRpbWUgZGlmZmVyZW5jZSBmcm9tIFVUQy9HTVQgb2YgdGhlICAgfCAgICAgICB8CisgICB8ICAgICAgICAgICB8IGZvcm0gK0hITU0gb3IgLUhITU0sIHdoZXJlIEggcmVwcmVzZW50cyBkZWNpbWFsfCAgICAgICB8CisgICB8ICAgICAgICAgICB8IGhvdXIgZGlnaXRzIGFuZCBNIHJlcHJlc2VudHMgZGVjaW1hbCBtaW51dGUgICAgfCAgICAgICB8CisgICB8ICAgICAgICAgICB8IGRpZ2l0cyBbLTIzOjU5LCArMjM6NTldLiAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CisgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCiAgICB8IGBgJVpgYCAgICB8IFRpbWUgem9uZSBuYW1lIChubyBjaGFyYWN0ZXJzIGlmIG5vIHRpbWUgem9uZSAgfCAgICAgICB8CiAgICB8ICAgICAgICAgICB8IGV4aXN0cykuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8CiAgICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCkBAIC0zMzIsMTIgKzQ2NCw2IEBACiAgICAgICBXaGVuIHVzZWQgd2l0aCB0aGUgOmZ1bmM6YHN0cnB0aW1lYCBmdW5jdGlvbiwgYGAlVWBgIGFuZCBgYCVXYGAgYXJlIG9ubHkgdXNlZCBpbgogICAgICAgY2FsY3VsYXRpb25zIHdoZW4gdGhlIGRheSBvZiB0aGUgd2VlayBhbmQgdGhlIHllYXIgYXJlIHNwZWNpZmllZC4KIAotICAgKDQpCi0gICAgICBQcm9kdWNlcyBkaWZmZXJlbnQgcmVzdWx0cyBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mCi0gICAgICBgYHRpbWUuYWNjZXB0MmR5ZWFyYGAgdmFyaWFibGUuICBTZWUgOnJlZjpgWWVhciAyMDAwIChZMkspCi0gICAgICBpc3N1ZXMgPHRpbWUteTJraXNzdWVzPmAgZm9yIGRldGFpbHMuCi0KLQogICAgSGVyZSBpcyBhbiBleGFtcGxlLCBhIGZvcm1hdCBmb3IgZGF0ZXMgY29tcGF0aWJsZSB3aXRoIHRoYXQgc3BlY2lmaWVkICBpbiB0aGUKICAgIDpyZmM6YDI4MjJgIEludGVybmV0IGVtYWlsIHN0YW5kYXJkLiAgWyNdXyA6OgogCkBAIC00MTYsMTAgKzU0MiwxMyBAQAogICAgKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAgICB8IDggICAgIHwgOmF0dHI6YHRtX2lzZHN0YCAgfCAwLCAxIG9yIC0xOyBzZWUgYmVsb3cgICAgICAgICAgIHwKICAgICstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgfCBOL0EgICB8IDphdHRyOmB0bV96b25lYCAgIHwgYWJicmV2aWF0aW9uIG9mIHRpbWV6b25lIG5hbWUgICB8CisgICArLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgIHwgTi9BICAgfCA6YXR0cjpgdG1fZ210b2ZmYCB8IG9mZnNldCBlYXN0IG9mIFVUQyBpbiBzZWNvbmRzICAgfAorICAgKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCiAKICAgIE5vdGUgdGhhdCB1bmxpa2UgdGhlIEMgc3RydWN0dXJlLCB0aGUgbW9udGggdmFsdWUgaXMgYSByYW5nZSBvZiBbMSwgMTJdLCBub3QKLSAgIFswLCAxMV0uICBBIHllYXIgdmFsdWUgd2lsbCBiZSBoYW5kbGVkIGFzIGRlc2NyaWJlZCB1bmRlciA6cmVmOmBZZWFyIDIwMDAKLSAgIChZMkspIGlzc3VlcyA8dGltZS15Mmtpc3N1ZXM+YCBhYm92ZS4gIEEgYGAtMWBgIGFyZ3VtZW50IGFzIHRoZSBkYXlsaWdodAorICAgWzAsIDExXS4gIEEgYGAtMWBgIGFyZ3VtZW50IGFzIHRoZSBkYXlsaWdodAogICAgc2F2aW5ncyBmbGFnLCBwYXNzZWQgdG8gOmZ1bmM6YG1rdGltZWAgd2lsbCB1c3VhbGx5IHJlc3VsdCBpbiB0aGUgY29ycmVjdAogICAgZGF5bGlnaHQgc2F2aW5ncyBzdGF0ZSB0byBiZSBmaWxsZWQgaW4uCiAKQEAgLTQyNyw2ICs1NTYsOSBAQAogICAgOmNsYXNzOmBzdHJ1Y3RfdGltZWAsIG9yIGhhdmluZyBlbGVtZW50cyBvZiB0aGUgd3JvbmcgdHlwZSwgYQogICAgOmV4YzpgVHlwZUVycm9yYCBpcyByYWlzZWQuCiAKKyAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgOmF0dHI6YHRtX2dtdG9mZmAgYW5kIDphdHRyOmB0bV96b25lYCBhdHRyaWJ1dGVzIGFyZSBhdmFsaWFibGUgb24gcGxhdGZvcm1zCisgICAgIHdpdGggQyBsaWJyYXJ5IHN1cHBvcnRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgZmllbGRzIGluIGBgc3RydWN0IHRtYGAuCiAKIC4uIGZ1bmN0aW9uOjogdGltZSgpCiAKQEAgLTQzNyw3ICs1NjksNiBAQAogICAgbG93ZXIgdmFsdWUgdGhhbiBhIHByZXZpb3VzIGNhbGwgaWYgdGhlIHN5c3RlbSBjbG9jayBoYXMgYmVlbiBzZXQgYmFjayBiZXR3ZWVuCiAgICB0aGUgdHdvIGNhbGxzLgogCi0KIC4uIGRhdGE6OiB0aW1lem9uZQogCiAgICBUaGUgb2Zmc2V0IG9mIHRoZSBsb2NhbCAobm9uLURTVCkgdGltZXpvbmUsIGluIHNlY29uZHMgd2VzdCBvZiBVVEMgKG5lZ2F0aXZlIGluCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS90aW1laXQucnN0IGIvRG9jL2xpYnJhcnkvdGltZWl0LnJzdAppbmRleCBjZDJkMjA1Li5jNDFlNTlkIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS90aW1laXQucnN0CisrKyBiL0RvYy9saWJyYXJ5L3RpbWVpdC5yc3QKQEAgLTEwNCwxMyArMTA0LDcgQEAKIAogLi4gZnVuY3Rpb246OiBkZWZhdWx0X3RpbWVyKCkKIAotICAgRGVmaW5lIGEgZGVmYXVsdCB0aW1lciwgaW4gYSBwbGF0Zm9ybSBzcGVjaWZpYyBtYW5uZXIuIE9uIFdpbmRvd3MsCi0gICA6ZnVuYzpgdGltZS5jbG9ja2AgaGFzIG1pY3Jvc2Vjb25kIGdyYW51bGFyaXR5IGJ1dCA6ZnVuYzpgdGltZS50aW1lYCdzCi0gICBncmFudWxhcml0eSBpcyAxLzYwdGggb2YgYSBzZWNvbmQ7IG9uIFVuaXgsIDpmdW5jOmB0aW1lLmNsb2NrYCBoYXMgMS8xMDB0aCBvZgotICAgYSBzZWNvbmQgZ3JhbnVsYXJpdHkgYW5kIDpmdW5jOmB0aW1lLnRpbWVgIGlzIG11Y2ggbW9yZSBwcmVjaXNlLiAgT24gZWl0aGVyCi0gICBwbGF0Zm9ybSwgOmZ1bmM6YGRlZmF1bHRfdGltZXJgIG1lYXN1cmVzIHdhbGwgY2xvY2sgdGltZSwgbm90IHRoZSBDUFUKLSAgIHRpbWUuICBUaGlzIG1lYW5zIHRoYXQgb3RoZXIgcHJvY2Vzc2VzIHJ1bm5pbmcgb24gdGhlIHNhbWUgY29tcHV0ZXIgbWF5Ci0gICBpbnRlcmZlcmUgd2l0aCB0aGUgdGltaW5nLgorICAgVGhlIGRlZmF1bHQgdGltZXIsIHdoaWNoIGlzIGFsd2F5cyA6ZnVuYzpgdGltZS5wZXJmX2NvdW50ZXJgLgogCiAKIC4uIGZ1bmN0aW9uOjogcmVwZWF0KHN0bXQ9J3Bhc3MnLCBzZXR1cD0ncGFzcycsIHRpbWVyPTxkZWZhdWx0IHRpbWVyPiwgcmVwZWF0PTMsIG51bWJlcj0xMDAwMDAwKQpAQCAtMTQ5LDEzICsxNDMsMjAgQEAKIAogICAgc3RhdGVtZW50IHRvIGJlIGV4ZWN1dGVkIG9uY2UgaW5pdGlhbGx5IChkZWZhdWx0IGBgcGFzc2BgKQogCisuLiBjbWRvcHRpb246OiAtcCwgLS1wcm9jZXNzCisKKyAgIG1lYXN1cmUgcHJvY2VzcyB0aW1lLCBub3Qgd2FsbGNsb2NrIHRpbWUsIHVzaW5nIDpmdW5jOmB0aW1lLnByb2Nlc3NfdGltZWAKKyAgIGluc3RlYWQgb2YgOmZ1bmM6YHRpbWUucGVyZl9jb3VudGVyYCwgd2hpY2ggaXMgdGhlIGRlZmF1bHQKKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKIC4uIGNtZG9wdGlvbjo6IC10LCAtLXRpbWUKIAotICAgdXNlIDpmdW5jOmB0aW1lLnRpbWVgIChkZWZhdWx0IG9uIGFsbCBwbGF0Zm9ybXMgYnV0IFdpbmRvd3MpCisgICB1c2UgOmZ1bmM6YHRpbWUudGltZWAgKGRlcHJlY2F0ZWQpCiAKIC4uIGNtZG9wdGlvbjo6IC1jLCAtLWNsb2NrCiAKLSAgIHVzZSA6ZnVuYzpgdGltZS5jbG9ja2AgKGRlZmF1bHQgb24gV2luZG93cykKKyAgIHVzZSA6ZnVuYzpgdGltZS5jbG9ja2AgKGRlcHJlY2F0ZWQpCiAKIC4uIGNtZG9wdGlvbjo6IC12LCAtLXZlcmJvc2UKIApAQCAtMTczLDEyICsxNzQsMTEgQEAKIElmIDpvcHRpb246YC1uYCBpcyBub3QgZ2l2ZW4sIGEgc3VpdGFibGUgbnVtYmVyIG9mIGxvb3BzIGlzIGNhbGN1bGF0ZWQgYnkgdHJ5aW5nCiBzdWNjZXNzaXZlIHBvd2VycyBvZiAxMCB1bnRpbCB0aGUgdG90YWwgdGltZSBpcyBhdCBsZWFzdCAwLjIgc2Vjb25kcy4KIAotOmZ1bmM6YGRlZmF1bHRfdGltZXJgIG1lYXN1cmF0aW9ucyBjYW4gYmUgYWZmZWN0ZWQgYnkgb3RoZXIgcHJvZ3JhbXMgcnVubmluZyBvbgotdGhlIHNhbWUgbWFjaGluZSwgc28KLXRoZSBiZXN0IHRoaW5nIHRvIGRvIHdoZW4gYWNjdXJhdGUgdGltaW5nIGlzIG5lY2Vzc2FyeSBpcyB0byByZXBlYXQKLXRoZSB0aW1pbmcgYSBmZXcgdGltZXMgYW5kIHVzZSB0aGUgYmVzdCB0aW1lLiAgVGhlIDpvcHRpb246YC1yYCBvcHRpb24gaXMgZ29vZAotZm9yIHRoaXM7IHRoZSBkZWZhdWx0IG9mIDMgcmVwZXRpdGlvbnMgaXMgcHJvYmFibHkgZW5vdWdoIGluIG1vc3QgY2FzZXMuICBPbgotVW5peCwgeW91IGNhbiB1c2UgOmZ1bmM6YHRpbWUuY2xvY2tgIHRvIG1lYXN1cmUgQ1BVIHRpbWUuCis6ZnVuYzpgZGVmYXVsdF90aW1lcmAgbWVhc3VyZW1lbnRzIGNhbiBiZSBhZmZlY3RlZCBieSBvdGhlciBwcm9ncmFtcyBydW5uaW5nIG9uCit0aGUgc2FtZSBtYWNoaW5lLCBzbyB0aGUgYmVzdCB0aGluZyB0byBkbyB3aGVuIGFjY3VyYXRlIHRpbWluZyBpcyBuZWNlc3NhcnkgaXMKK3RvIHJlcGVhdCB0aGUgdGltaW5nIGEgZmV3IHRpbWVzIGFuZCB1c2UgdGhlIGJlc3QgdGltZS4gIFRoZSA6b3B0aW9uOmAtcmAKK29wdGlvbiBpcyBnb29kIGZvciB0aGlzOyB0aGUgZGVmYXVsdCBvZiAzIHJlcGV0aXRpb25zIGlzIHByb2JhYmx5IGVub3VnaCBpbgorbW9zdCBjYXNlcy4gIFlvdSBjYW4gdXNlIDpmdW5jOmB0aW1lLnByb2Nlc3NfdGltZWAgdG8gbWVhc3VyZSBDUFUgdGltZS4KIAogLi4gbm90ZTo6CiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3RraW50ZXIucnN0IGIvRG9jL2xpYnJhcnkvdGtpbnRlci5yc3QKaW5kZXggYWU1NjM1Zi4uMmUzNTgzNiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvdGtpbnRlci5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdGtpbnRlci5yc3QKQEAgLTE3OSwzNSArMTc5LDMwIEBACiAKIDo6CiAKLSAgIGZyb20gdGtpbnRlciBpbXBvcnQgKgorICAgIGltcG9ydCB0a2ludGVyIGFzIHRrCiAKLSAgIGNsYXNzIEFwcGxpY2F0aW9uKEZyYW1lKToKLSAgICAgICBkZWYgc2F5X2hpKHNlbGYpOgotICAgICAgICAgICBwcmludCgiaGkgdGhlcmUsIGV2ZXJ5b25lISIpCisgICAgY2xhc3MgQXBwbGljYXRpb24odGsuRnJhbWUpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgbWFzdGVyPU5vbmUpOgorICAgICAgICAgICAgdGsuRnJhbWUuX19pbml0X18oc2VsZiwgbWFzdGVyKQorICAgICAgICAgICAgc2VsZi5wYWNrKCkKKyAgICAgICAgICAgIHNlbGYuY3JlYXRlV2lkZ2V0cygpCiAKLSAgICAgICBkZWYgY3JlYXRlV2lkZ2V0cyhzZWxmKToKLSAgICAgICAgICAgc2VsZi5RVUlUID0gQnV0dG9uKHNlbGYpCi0gICAgICAgICAgIHNlbGYuUVVJVFsidGV4dCJdID0gIlFVSVQiCi0gICAgICAgICAgIHNlbGYuUVVJVFsiZmciXSA9ICJyZWQiCi0gICAgICAgICAgIHNlbGYuUVVJVFsiY29tbWFuZCJdID0gc2VsZi5xdWl0CisgICAgICAgIGRlZiBjcmVhdGVXaWRnZXRzKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5oaV90aGVyZSA9IHRrLkJ1dHRvbihzZWxmKQorICAgICAgICAgICAgc2VsZi5oaV90aGVyZVsidGV4dCJdID0gIkhlbGxvIFdvcmxkXG4oY2xpY2sgbWUpIgorICAgICAgICAgICAgc2VsZi5oaV90aGVyZVsiY29tbWFuZCJdID0gc2VsZi5zYXlfaGkKKyAgICAgICAgICAgIHNlbGYuaGlfdGhlcmUucGFjayhzaWRlPSJ0b3AiKQogCi0gICAgICAgICAgIHNlbGYuUVVJVC5wYWNrKHsic2lkZSI6ICJsZWZ0In0pCisgICAgICAgICAgICBzZWxmLlFVSVQgPSB0ay5CdXR0b24oc2VsZiwgdGV4dD0iUVVJVCIsIGZnPSJyZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD1yb290LmRlc3Ryb3kpCisgICAgICAgICAgICBzZWxmLlFVSVQucGFjayhzaWRlPSJib3R0b20iKQogCi0gICAgICAgICAgIHNlbGYuaGlfdGhlcmUgPSBCdXR0b24oc2VsZikKLSAgICAgICAgICAgc2VsZi5oaV90aGVyZVsidGV4dCJdID0gIkhlbGxvIiwKLSAgICAgICAgICAgc2VsZi5oaV90aGVyZVsiY29tbWFuZCJdID0gc2VsZi5zYXlfaGkKKyAgICAgICAgZGVmIHNheV9oaShzZWxmKToKKyAgICAgICAgICAgIHByaW50KCJoaSB0aGVyZSwgZXZlcnlvbmUhIikKIAotICAgICAgICAgICBzZWxmLmhpX3RoZXJlLnBhY2soeyJzaWRlIjogImxlZnQifSkKLQotICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYXN0ZXI9Tm9uZSk6Ci0gICAgICAgICAgIEZyYW1lLl9faW5pdF9fKHNlbGYsIG1hc3RlcikKLSAgICAgICAgICAgc2VsZi5wYWNrKCkKLSAgICAgICAgICAgc2VsZi5jcmVhdGVXaWRnZXRzKCkKLQotICAgcm9vdCA9IFRrKCkKLSAgIGFwcCA9IEFwcGxpY2F0aW9uKG1hc3Rlcj1yb290KQotICAgYXBwLm1haW5sb29wKCkKLSAgIHJvb3QuZGVzdHJveSgpCisgICAgcm9vdCA9IHRrLlRrKCkKKyAgICBhcHAgPSBBcHBsaWNhdGlvbihtYXN0ZXI9cm9vdCkKKyAgICBhcHAubWFpbmxvb3AoKQogCiAKIEEgKFZlcnkpIFF1aWNrIExvb2sgYXQgVGNsL1RrCkBAIC03NDAsMjIgKzczNSwzMiBAQAogICAgZGlzcGxheWVkLiAgWW91IGNhbiB1c2UgdGhlc2UgOm1vZDpgdGtpbnRlcmAgZnVuY3Rpb25zIHRvIGFjY2VzcyB0aGVzZSBzcGVjaWFsCiAgICBwb2ludHMgaW4gdGV4dCB3aWRnZXRzOgogCi0gICBBdEVuZCgpCisuLiBmdW5jdGlvbjo6IEF0RW5kKCkKICAgICAgIHJlZmVycyB0byB0aGUgbGFzdCBwb3NpdGlvbiBpbiB0aGUgdGV4dAogCi0gICBBdEluc2VydCgpCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisKKy4uIGZ1bmN0aW9uOjogQXRJbnNlcnQoKQogICAgICAgcmVmZXJzIHRvIHRoZSBwb2ludCB3aGVyZSB0aGUgdGV4dCBjdXJzb3IgaXMKIAotICAgQXRTZWxGaXJzdCgpCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisKKy4uIGZ1bmN0aW9uOjogQXRTZWxGaXJzdCgpCiAgICAgICBpbmRpY2F0ZXMgdGhlIGJlZ2lubmluZyBwb2ludCBvZiB0aGUgc2VsZWN0ZWQgdGV4dAogCi0gICBBdFNlbExhc3QoKQorICAgLi4gZGVwcmVjYXRlZDo6IDMuMworCisuLiBmdW5jdGlvbjo6IEF0U2VsTGFzdCgpCiAgICAgICBkZW5vdGVzIHRoZSBsYXN0IHBvaW50IG9mIHRoZSBzZWxlY3RlZCB0ZXh0IGFuZCBmaW5hbGx5CiAKLSAgIEF0KHhbLCB5XSkKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKworLi4gZnVuY3Rpb246OiBBdCh4WywgeV0pCiAgICAgICByZWZlcnMgdG8gdGhlIGNoYXJhY3RlciBhdCBwaXhlbCBsb2NhdGlvbiAqeCosICp5KiAod2l0aCAqeSogbm90IHVzZWQgaW4gdGhlCiAgICAgICBjYXNlIG9mIGEgdGV4dCBlbnRyeSB3aWRnZXQsIHdoaWNoIGNvbnRhaW5zIGEgc2luZ2xlIGxpbmUgb2YgdGV4dCkuCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKwogVGV4dCB3aWRnZXQgaW5kZXhlcwogICAgVGhlIGluZGV4IG5vdGF0aW9uIGZvciBUZXh0IHdpZGdldHMgaXMgdmVyeSByaWNoIGFuZCBpcyBiZXN0IGRlc2NyaWJlZCBpbiB0aGUgVGsKICAgIG1hbiBwYWdlcy4KQEAgLTgwMyw0ICs4MDgsMyBAQAogcmVmZXJlbmNlIHRvIHRoZSBpbWFnZS4gV2hlbiB0aGUgbGFzdCBQeXRob24gcmVmZXJlbmNlIHRvIHRoZSBpbWFnZSBvYmplY3QgaXMKIGRlbGV0ZWQsIHRoZSBpbWFnZSBkYXRhIGlzIGRlbGV0ZWQgYXMgd2VsbCwgYW5kIFRrIHdpbGwgZGlzcGxheSBhbiBlbXB0eSBib3gKIHdoZXJldmVyIHRoZSBpbWFnZSB3YXMgdXNlZC4KLQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdG9rZW5pemUucnN0IGIvRG9jL2xpYnJhcnkvdG9rZW5pemUucnN0CmluZGV4IDcwOTE5Y2EuLjM3ZDlmNDEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3Rva2VuaXplLnJzdAorKysgYi9Eb2MvbGlicmFyeS90b2tlbml6ZS5yc3QKQEAgLTE3LDkgKzE3LDExIEBACiAKIFRvIHNpbXBsaWZ5IHRva2VuIHN0cmVhbSBoYW5kbGluZywgYWxsIDpyZWY6YG9wZXJhdG9yc2AgYW5kIDpyZWY6YGRlbGltaXRlcnNgCiB0b2tlbnMgYXJlIHJldHVybmVkIHVzaW5nIHRoZSBnZW5lcmljIDpkYXRhOmB0b2tlbi5PUGAgdG9rZW4gdHlwZS4gIFRoZSBleGFjdAotdHlwZSBjYW4gYmUgZGV0ZXJtaW5lZCBieSBjaGVja2luZyB0aGUgdG9rZW4gYGBzdHJpbmdgYCBmaWVsZCBvbiB0aGUKLTp0ZXJtOmBuYW1lZCB0dXBsZWAgcmV0dXJuZWQgZnJvbSA6ZnVuYzpgdG9rZW5pemUudG9rZW5pemVgIGZvciB0aGUgY2hhcmFjdGVyCi1zZXF1ZW5jZSB0aGF0IGlkZW50aWZpZXMgYSBzcGVjaWZpYyBvcGVyYXRvciB0b2tlbi4KK3R5cGUgY2FuIGJlIGRldGVybWluZWQgYnkgY2hlY2tpbmcgdGhlIGBgZXhhY3RfdHlwZWBgIHByb3BlcnR5IG9uIHRoZQorOnRlcm06YG5hbWVkIHR1cGxlYCByZXR1cm5lZCBmcm9tIDpmdW5jOmB0b2tlbml6ZS50b2tlbml6ZWAuCisKK1Rva2VuaXppbmcgSW5wdXQKKy0tLS0tLS0tLS0tLS0tLS0KIAogVGhlIHByaW1hcnkgZW50cnkgcG9pbnQgaXMgYSA6dGVybTpgZ2VuZXJhdG9yYDoKIApAQCAtMzksOSArNDEsMTcgQEAKICAgIHJldHVybmVkIGFzIGEgOnRlcm06YG5hbWVkIHR1cGxlYCB3aXRoIHRoZSBmaWVsZCBuYW1lczoKICAgIGBgdHlwZSBzdHJpbmcgc3RhcnQgZW5kIGxpbmVgYC4KIAorICAgVGhlIHJldHVybmVkIDp0ZXJtOmBuYW1lZCB0dXBsZWAgaGFzIGEgYWRkaXRpb25hbCBwcm9wZXJ0eSBuYW1lZAorICAgYGBleGFjdF90eXBlYGAgdGhhdCBjb250YWlucyB0aGUgZXhhY3Qgb3BlcmF0b3IgdHlwZSBmb3IKKyAgIDpkYXRhOmB0b2tlbi5PUGAgdG9rZW5zLiAgRm9yIGFsbCBvdGhlciB0b2tlbiB0eXBlcyBgYGV4YWN0X3R5cGVgYAorICAgZXF1YWxzIHRoZSBuYW1lZCB0dXBsZSBgYHR5cGVgYCBmaWVsZC4KKwogICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjEKICAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIG5hbWVkIHR1cGxlcy4KIAorICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEFkZGVkIHN1cHBvcnQgZm9yIGBgZXhhY3RfdHlwZWBgLgorCiAgICA6ZnVuYzpgdG9rZW5pemVgIGRldGVybWluZXMgdGhlIHNvdXJjZSBlbmNvZGluZyBvZiB0aGUgZmlsZSBieSBsb29raW5nIGZvciBhCiAgICBVVEYtOCBCT00gb3IgZW5jb2RpbmcgY29va2llLCBhY2NvcmRpbmcgdG8gOnBlcDpgMjYzYC4KIApAQCAtMTIyLDYgKzEzMiwzOCBAQAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKIAorLi4gX3Rva2VuaXplLWNsaToKKworQ29tbWFuZC1MaW5lIFVzYWdlCistLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKK1RoZSA6bW9kOmB0b2tlbml6ZWAgbW9kdWxlIGNhbiBiZSBleGVjdXRlZCBhcyBhIHNjcmlwdCBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCitJdCBpcyBhcyBzaW1wbGUgYXM6CisKKy4uIGNvZGUtYmxvY2s6OiBzaAorCisgICBweXRob24gLW0gdG9rZW5pemUgWy1lXSBbZmlsZW5hbWUucHldCisKK1RoZSBmb2xsb3dpbmcgb3B0aW9ucyBhcmUgYWNjZXB0ZWQ6CisKKy4uIHByb2dyYW06OiB0b2tlbml6ZQorCisuLiBjbWRvcHRpb246OiAtaCwgLS1oZWxwCisKKyAgIHNob3cgdGhpcyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKKworLi4gY21kb3B0aW9uOjogLWUsIC0tZXhhY3QKKworICAgZGlzcGxheSB0b2tlbiBuYW1lcyB1c2luZyB0aGUgZXhhY3QgdHlwZQorCitJZiA6ZmlsZTpgZmlsZW5hbWUucHlgIGlzIHNwZWNpZmllZCBpdHMgY29udGVudHMgYXJlIHRva2VuaXplZCB0byBzdGRvdXQuCitPdGhlcndpc2UsIHRva2VuaXphdGlvbiBpcyBwZXJmb3JtZWQgb24gc3RkaW4uCisKK0V4YW1wbGVzCistLS0tLS0tLS0tLS0tLS0tLS0KKwogRXhhbXBsZSBvZiBhIHNjcmlwdCByZXdyaXRlciB0aGF0IHRyYW5zZm9ybXMgZmxvYXQgbGl0ZXJhbHMgaW50byBEZWNpbWFsCiBvYmplY3RzOjoKIApAQCAtMTY0LDMgKzIwNiw2MyBAQAogICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKHRva251bSwgdG9rdmFsKSkKICAgICAgICAgcmV0dXJuIHVudG9rZW5pemUocmVzdWx0KS5kZWNvZGUoJ3V0Zi04JykKIAorRXhhbXBsZSBvZiB0b2tlbml6aW5nIGZyb20gdGhlIGNvbW1hbmQgbGluZS4gIFRoZSBzY3JpcHQ6OgorCisgICAgZGVmIHNheV9oZWxsbygpOgorICAgICAgICBwcmludCgiSGVsbG8sIFdvcmxkISIpCisKKyAgICBzYXlfaGVsbG8oKQorCit3aWxsIGJlIHRva2VuaXplZCB0byB0aGUgZm9sbG93aW5nIG91dHB1dCB3aGVyZSB0aGUgZmlyc3QgY29sdW1uIGlzIHRoZSByYW5nZQorb2YgdGhlIGxpbmUvY29sdW1uIGNvb3JkaW5hdGVzIHdoZXJlIHRoZSB0b2tlbiBpcyBmb3VuZCwgdGhlIHNlY29uZCBjb2x1bW4gaXMKK3RoZSBuYW1lIG9mIHRoZSB0b2tlbiwgYW5kIHRoZSBmaW5hbCBjb2x1bW4gaXMgdGhlIHZhbHVlIG9mIHRoZSB0b2tlbiAoaWYgYW55KQorCisuLiBjb2RlLWJsb2NrOjogc2gKKworICAgICQgcHl0aG9uIC1tIHRva2VuaXplIGhlbGxvLnB5CisgICAgMCwwLTAsMDogICAgICAgICAgICBFTkNPRElORyAgICAgICAndXRmLTgnCisgICAgMSwwLTEsMzogICAgICAgICAgICBOQU1FICAgICAgICAgICAnZGVmJworICAgIDEsNC0xLDEzOiAgICAgICAgICAgTkFNRSAgICAgICAgICAgJ3NheV9oZWxsbycKKyAgICAxLDEzLTEsMTQ6ICAgICAgICAgIE9QICAgICAgICAgICAgICcoJworICAgIDEsMTQtMSwxNTogICAgICAgICAgT1AgICAgICAgICAgICAgJyknCisgICAgMSwxNS0xLDE2OiAgICAgICAgICBPUCAgICAgICAgICAgICAnOicKKyAgICAxLDE2LTEsMTc6ICAgICAgICAgIE5FV0xJTkUgICAgICAgICdcbicKKyAgICAyLDAtMiw0OiAgICAgICAgICAgIElOREVOVCAgICAgICAgICcgICAgJworICAgIDIsNC0yLDk6ICAgICAgICAgICAgTkFNRSAgICAgICAgICAgJ3ByaW50JworICAgIDIsOS0yLDEwOiAgICAgICAgICAgT1AgICAgICAgICAgICAgJygnCisgICAgMiwxMC0yLDI1OiAgICAgICAgICBTVFJJTkcgICAgICAgICAnIkhlbGxvLCBXb3JsZCEiJworICAgIDIsMjUtMiwyNjogICAgICAgICAgT1AgICAgICAgICAgICAgJyknCisgICAgMiwyNi0yLDI3OiAgICAgICAgICBORVdMSU5FICAgICAgICAnXG4nCisgICAgMywwLTMsMTogICAgICAgICAgICBOTCAgICAgICAgICAgICAnXG4nCisgICAgNCwwLTQsMDogICAgICAgICAgICBERURFTlQgICAgICAgICAnJworICAgIDQsMC00LDk6ICAgICAgICAgICAgTkFNRSAgICAgICAgICAgJ3NheV9oZWxsbycKKyAgICA0LDktNCwxMDogICAgICAgICAgIE9QICAgICAgICAgICAgICcoJworICAgIDQsMTAtNCwxMTogICAgICAgICAgT1AgICAgICAgICAgICAgJyknCisgICAgNCwxMS00LDEyOiAgICAgICAgICBORVdMSU5FICAgICAgICAnXG4nCisgICAgNSwwLTUsMDogICAgICAgICAgICBFTkRNQVJLRVIgICAgICAnJworCitUaGUgZXhhY3QgdG9rZW4gdHlwZSBuYW1lcyBjYW4gYmUgZGlzcGxheWVkIHVzaW5nIHRoZSBgYC1lYGAgb3B0aW9uOgorCisuLiBjb2RlLWJsb2NrOjogc2gKKworICAgICQgcHl0aG9uIC1tIHRva2VuaXplIC1lIGhlbGxvLnB5CisgICAgMCwwLTAsMDogICAgICAgICAgICBFTkNPRElORyAgICAgICAndXRmLTgnCisgICAgMSwwLTEsMzogICAgICAgICAgICBOQU1FICAgICAgICAgICAnZGVmJworICAgIDEsNC0xLDEzOiAgICAgICAgICAgTkFNRSAgICAgICAgICAgJ3NheV9oZWxsbycKKyAgICAxLDEzLTEsMTQ6ICAgICAgICAgIExQQVIgICAgICAgICAgICcoJworICAgIDEsMTQtMSwxNTogICAgICAgICAgUlBBUiAgICAgICAgICAgJyknCisgICAgMSwxNS0xLDE2OiAgICAgICAgICBDT0xPTiAgICAgICAgICAnOicKKyAgICAxLDE2LTEsMTc6ICAgICAgICAgIE5FV0xJTkUgICAgICAgICdcbicKKyAgICAyLDAtMiw0OiAgICAgICAgICAgIElOREVOVCAgICAgICAgICcgICAgJworICAgIDIsNC0yLDk6ICAgICAgICAgICAgTkFNRSAgICAgICAgICAgJ3ByaW50JworICAgIDIsOS0yLDEwOiAgICAgICAgICAgTFBBUiAgICAgICAgICAgJygnCisgICAgMiwxMC0yLDI1OiAgICAgICAgICBTVFJJTkcgICAgICAgICAnIkhlbGxvLCBXb3JsZCEiJworICAgIDIsMjUtMiwyNjogICAgICAgICAgUlBBUiAgICAgICAgICAgJyknCisgICAgMiwyNi0yLDI3OiAgICAgICAgICBORVdMSU5FICAgICAgICAnXG4nCisgICAgMywwLTMsMTogICAgICAgICAgICBOTCAgICAgICAgICAgICAnXG4nCisgICAgNCwwLTQsMDogICAgICAgICAgICBERURFTlQgICAgICAgICAnJworICAgIDQsMC00LDk6ICAgICAgICAgICAgTkFNRSAgICAgICAgICAgJ3NheV9oZWxsbycKKyAgICA0LDktNCwxMDogICAgICAgICAgIExQQVIgICAgICAgICAgICcoJworICAgIDQsMTAtNCwxMTogICAgICAgICAgUlBBUiAgICAgICAgICAgJyknCisgICAgNCwxMS00LDEyOiAgICAgICAgICBORVdMSU5FICAgICAgICAnXG4nCisgICAgNSwwLTUsMDogICAgICAgICAgICBFTkRNQVJLRVIgICAgICAnJwpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdHlwZXMucnN0IGIvRG9jL2xpYnJhcnkvdHlwZXMucnN0CmluZGV4IGQ0YTc2YjYuLmI2MGIxOTUgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3R5cGVzLnJzdAorKysgYi9Eb2MvbGlicmFyeS90eXBlcy5yc3QKQEAgLTEsNSArMSw1IEBACi06bW9kOmB0eXBlc2AgLS0tIE5hbWVzIGZvciBidWlsdC1pbiB0eXBlcwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzptb2Q6YHR5cGVzYCAtLS0gRHluYW1pYyB0eXBlIGNyZWF0aW9uIGFuZCBuYW1lcyBmb3IgYnVpbHQtaW4gdHlwZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAogLi4gbW9kdWxlOjogdHlwZXMKICAgIDpzeW5vcHNpczogTmFtZXMgZm9yIGJ1aWx0LWluIHR5cGVzLgpAQCAtOCwyMCArOCw3NyBAQAogCiAtLS0tLS0tLS0tLS0tLQogCi1UaGlzIG1vZHVsZSBkZWZpbmVzIG5hbWVzIGZvciBzb21lIG9iamVjdCB0eXBlcyB0aGF0IGFyZSB1c2VkIGJ5IHRoZSBzdGFuZGFyZAorVGhpcyBtb2R1bGUgZGVmaW5lcyB1dGlsaXR5IGZ1bmN0aW9uIHRvIGFzc2lzdCBpbiBkeW5hbWljIGNyZWF0aW9uIG9mCituZXcgdHlwZXMuCisKK0l0IGFsc28gZGVmaW5lcyBuYW1lcyBmb3Igc29tZSBvYmplY3QgdHlwZXMgdGhhdCBhcmUgdXNlZCBieSB0aGUgc3RhbmRhcmQKIFB5dGhvbiBpbnRlcnByZXRlciwgYnV0IG5vdCBleHBvc2VkIGFzIGJ1aWx0aW5zIGxpa2UgOmNsYXNzOmBpbnRgIG9yCi06Y2xhc3M6YHN0cmAgYXJlLiAgQWxzbywgaXQgZG9lcyBub3QgaW5jbHVkZSBzb21lIG9mIHRoZSB0eXBlcyB0aGF0IGFyaXNlCi10cmFuc3BhcmVudGx5IGR1cmluZyBwcm9jZXNzaW5nIHN1Y2ggYXMgdGhlIGBgbGlzdGl0ZXJhdG9yYGAgdHlwZS4KKzpjbGFzczpgc3RyYCBhcmUuCiAKLVR5cGljYWwgdXNlIGlzIGZvciA6ZnVuYzpgaXNpbnN0YW5jZWAgb3IgOmZ1bmM6YGlzc3ViY2xhc3NgIGNoZWNrcy4KIAotVGhlIG1vZHVsZSBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgbmFtZXM6CitEeW5hbWljIFR5cGUgQ3JlYXRpb24KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisuLiBmdW5jdGlvbjo6IG5ld19jbGFzcyhuYW1lLCBiYXNlcz0oKSwga3dkcz1Ob25lLCBleGVjX2JvZHk9Tm9uZSkKKworICAgQ3JlYXRlcyBhIGNsYXNzIG9iamVjdCBkeW5hbWljYWxseSB1c2luZyB0aGUgYXBwcm9wcmlhdGUgbWV0YWNsYXNzLgorCisgICBUaGUgZmlyc3QgdGhyZWUgYXJndW1lbnRzIGFyZSB0aGUgY29tcG9uZW50cyB0aGF0IG1ha2UgdXAgYSBjbGFzcworICAgZGVmaW5pdGlvbiBoZWFkZXI6IHRoZSBjbGFzcyBuYW1lLCB0aGUgYmFzZSBjbGFzc2VzIChpbiBvcmRlciksIHRoZQorICAga2V5d29yZCBhcmd1bWVudHMgKHN1Y2ggYXMgYGBtZXRhY2xhc3NgYCkuCisKKyAgIFRoZSAqZXhlY19ib2R5KiBhcmd1bWVudCBpcyBhIGNhbGxiYWNrIHRoYXQgaXMgdXNlZCB0byBwb3B1bGF0ZSB0aGUKKyAgIGZyZXNobHkgY3JlYXRlZCBjbGFzcyBuYW1lc3BhY2UuIEl0IHNob3VsZCBhY2NlcHQgdGhlIGNsYXNzIG5hbWVzcGFjZQorICAgYXMgaXRzIHNvbGUgYXJndW1lbnQgYW5kIHVwZGF0ZSB0aGUgbmFtZXNwYWNlIGRpcmVjdGx5IHdpdGggdGhlIGNsYXNzCisgICBjb250ZW50cy4gSWYgbm8gY2FsbGJhY2sgaXMgcHJvdmlkZWQsIGl0IGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgcGFzc2luZworICAgaW4gYGBsYW1iZGEgbnM6IG5zYGAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworCisuLiBmdW5jdGlvbjo6IHByZXBhcmVfY2xhc3MobmFtZSwgYmFzZXM9KCksIGt3ZHM9Tm9uZSkKKworICAgQ2FsY3VsYXRlcyB0aGUgYXBwcm9wcmlhdGUgbWV0YWNsYXNzIGFuZCBjcmVhdGVzIHRoZSBjbGFzcyBuYW1lc3BhY2UuCisKKyAgIFRoZSBhcmd1bWVudHMgYXJlIHRoZSBjb21wb25lbnRzIHRoYXQgbWFrZSB1cCBhIGNsYXNzIGRlZmluaXRpb24gaGVhZGVyOgorICAgdGhlIGNsYXNzIG5hbWUsIHRoZSBiYXNlIGNsYXNzZXMgKGluIG9yZGVyKSBhbmQgdGhlIGtleXdvcmQgYXJndW1lbnRzCisgICAoc3VjaCBhcyBgYG1ldGFjbGFzc2BgKS4KKworICAgVGhlIHJldHVybiB2YWx1ZSBpcyBhIDMtdHVwbGU6IGBgbWV0YWNsYXNzLCBuYW1lc3BhY2UsIGt3ZHNgYAorCisgICAqbWV0YWNsYXNzKiBpcyB0aGUgYXBwcm9wcmlhdGUgbWV0YWNsYXNzLCAqbmFtZXNwYWNlKiBpcyB0aGUKKyAgIHByZXBhcmVkIGNsYXNzIG5hbWVzcGFjZSBhbmQgKmt3ZHMqIGlzIGFuIHVwZGF0ZWQgY29weSBvZiB0aGUgcGFzc2VkCisgICBpbiAqa3dkcyogYXJndW1lbnQgd2l0aCBhbnkgYGAnbWV0YWNsYXNzJ2BgIGVudHJ5IHJlbW92ZWQuIElmIG5vICprd2RzKgorICAgYXJndW1lbnQgaXMgcGFzc2VkIGluLCB0aGlzIHdpbGwgYmUgYW4gZW1wdHkgZGljdC4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIHNlZWFsc286OgorCisgICA6cmVmOmBtZXRhY2xhc3Nlc2AKKyAgICAgIEZ1bGwgZGV0YWlscyBvZiB0aGUgY2xhc3MgY3JlYXRpb24gcHJvY2VzcyBzdXBwb3J0ZWQgYnkgdGhlc2UgZnVuY3Rpb25zCisKKyAgIDpwZXA6YDMxMTVgIC0gTWV0YWNsYXNzZXMgaW4gUHl0aG9uIDMwMDAKKyAgICAgIEludHJvZHVjZWQgdGhlIGBgX19wcmVwYXJlX19gYCBuYW1lc3BhY2UgaG9vaworCisKK1N0YW5kYXJkIEludGVycHJldGVyIFR5cGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGlzIG1vZHVsZSBwcm92aWRlcyBuYW1lcyBmb3IgbWFueSBvZiB0aGUgdHlwZXMgdGhhdCBhcmUgcmVxdWlyZWQgdG8KK2ltcGxlbWVudCBhIFB5dGhvbiBpbnRlcnByZXRlci4gSXQgZGVsaWJlcmF0ZWx5IGF2b2lkcyBpbmNsdWRpbmcgc29tZSBvZgordGhlIHR5cGVzIHRoYXQgYXJpc2Ugb25seSBpbmNpZGVudGFsbHkgZHVyaW5nIHByb2Nlc3Npbmcgc3VjaCBhcyB0aGUKK2BgbGlzdGl0ZXJhdG9yYGAgdHlwZS4KKworVHlwaWNhbCB1c2UgaXMgb2YgdGhlc2UgbmFtZXMgaXMgZm9yIDpmdW5jOmBpc2luc3RhbmNlYCBvcgorOmZ1bmM6YGlzc3ViY2xhc3NgIGNoZWNrcy4KKworU3RhbmRhcmQgbmFtZXMgYXJlIGRlZmluZWQgZm9yIHRoZSBmb2xsb3dpbmcgdHlwZXM6CiAKIC4uIGRhdGE6OiBGdW5jdGlvblR5cGUKICAgICAgICAgICBMYW1iZGFUeXBlCiAKLSAgIFRoZSB0eXBlIG9mIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kIGZ1bmN0aW9ucyBjcmVhdGVkIGJ5IDprZXl3b3JkOmBsYW1iZGFgCi0gICBleHByZXNzaW9ucy4KKyAgIFRoZSB0eXBlIG9mIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kIGZ1bmN0aW9ucyBjcmVhdGVkIGJ5CisgICA6a2V5d29yZDpgbGFtYmRhYCAgZXhwcmVzc2lvbnMuCiAKIAogLi4gZGF0YTo6IEdlbmVyYXRvclR5cGUKQEAgLTg1LDMgKzE0Miw3OSBAQAogCiAgICAgICBJbiBvdGhlciBpbXBsZW1lbnRhdGlvbnMgb2YgUHl0aG9uLCB0aGlzIHR5cGUgbWF5IGJlIGlkZW50aWNhbCB0bwogICAgICAgYGBHZXRTZXREZXNjcmlwdG9yVHlwZWBgLgorCisuLiBjbGFzczo6IE1hcHBpbmdQcm94eVR5cGUobWFwcGluZykKKworICAgUmVhZC1vbmx5IHByb3h5IG9mIGEgbWFwcGluZy4gSXQgcHJvdmlkZXMgYSBkeW5hbWljIHZpZXcgb24gdGhlIG1hcHBpbmcncworICAgZW50cmllcywgd2hpY2ggbWVhbnMgdGhhdCB3aGVuIHRoZSBtYXBwaW5nIGNoYW5nZXMsIHRoZSB2aWV3IHJlZmxlY3RzIHRoZXNlCisgICBjaGFuZ2VzLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworICAgLi4gZGVzY3JpYmU6OiBrZXkgaW4gcHJveHkKKworICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSB1bmRlcmx5aW5nIG1hcHBpbmcgaGFzIGEga2V5ICprZXkqLCBlbHNlCisgICAgICBgYEZhbHNlYGAuCisKKyAgIC4uIGRlc2NyaWJlOjogcHJveHlba2V5XQorCisgICAgICBSZXR1cm4gdGhlIGl0ZW0gb2YgdGhlIHVuZGVybHlpbmcgbWFwcGluZyB3aXRoIGtleSAqa2V5Ki4gIFJhaXNlcyBhCisgICAgICA6ZXhjOmBLZXlFcnJvcmAgaWYgKmtleSogaXMgbm90IGluIHRoZSB1bmRlcmx5aW5nIG1hcHBpbmcuCisKKyAgIC4uIGRlc2NyaWJlOjogaXRlcihwcm94eSkKKworICAgICAgUmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGtleXMgb2YgdGhlIHVuZGVybHlpbmcgbWFwcGluZy4gIFRoaXMgaXMgYQorICAgICAgc2hvcnRjdXQgZm9yIGBgaXRlcihwcm94eS5rZXlzKCkpYGAuCisKKyAgIC4uIGRlc2NyaWJlOjogbGVuKHByb3h5KQorCisgICAgICBSZXR1cm4gdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgdW5kZXJseWluZyBtYXBwaW5nLgorCisgICAuLiBtZXRob2Q6OiBjb3B5KCkKKworICAgICAgUmV0dXJuIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSB1bmRlcmx5aW5nIG1hcHBpbmcuCisKKyAgIC4uIG1ldGhvZDo6IGdldChrZXlbLCBkZWZhdWx0XSkKKworICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBmb3IgKmtleSogaWYgKmtleSogaXMgaW4gdGhlIHVuZGVybHlpbmcgbWFwcGluZywgZWxzZQorICAgICAgKmRlZmF1bHQqLiAgSWYgKmRlZmF1bHQqIGlzIG5vdCBnaXZlbiwgaXQgZGVmYXVsdHMgdG8gYGBOb25lYGAsIHNvIHRoYXQKKyAgICAgIHRoaXMgbWV0aG9kIG5ldmVyIHJhaXNlcyBhIDpleGM6YEtleUVycm9yYC4KKworICAgLi4gbWV0aG9kOjogaXRlbXMoKQorCisgICAgICBSZXR1cm4gYSBuZXcgdmlldyBvZiB0aGUgdW5kZXJseWluZyBtYXBwaW5nJ3MgaXRlbXMgKGBgKGtleSwgdmFsdWUpYGAKKyAgICAgIHBhaXJzKS4KKworICAgLi4gbWV0aG9kOjoga2V5cygpCisKKyAgICAgIFJldHVybiBhIG5ldyB2aWV3IG9mIHRoZSB1bmRlcmx5aW5nIG1hcHBpbmcncyBrZXlzLgorCisgICAuLiBtZXRob2Q6OiB2YWx1ZXMoKQorCisgICAgICBSZXR1cm4gYSBuZXcgdmlldyBvZiB0aGUgdW5kZXJseWluZyBtYXBwaW5nJ3MgdmFsdWVzLgorCisKKy4uIGNsYXNzOjogU2ltcGxlTmFtZXNwYWNlCisKKyAgIEEgc2ltcGxlIDpjbGFzczpgb2JqZWN0YCBzdWJjbGFzcyB0aGF0IHByb3ZpZGVzIGF0dHJpYnV0ZSBhY2Nlc3MgdG8gaXRzCisgICBuYW1lc3BhY2UsIGFzIHdlbGwgYXMgYSBtZWFuaW5nZnVsIHJlcHIuCisKKyAgIFVubGlrZSA6Y2xhc3M6YG9iamVjdGAsIHdpdGggYGBTaW1wbGVOYW1lc3BhY2VgYCB5b3UgY2FuIGFkZCBhbmQgcmVtb3ZlCisgICBhdHRyaWJ1dGVzLiAgSWYgYSBgYFNpbXBsZU5hbWVzcGFjZWBgIG9iamVjdCBpcyBpbml0aWFsaXplZCB3aXRoIGtleXdvcmQKKyAgIGFyZ3VtZW50cywgdGhvc2UgYXJlIGRpcmVjdGx5IGFkZGVkIHRvIHRoZSB1bmRlcmx5aW5nIG5hbWVzcGFjZS4KKworICAgVGhlIHR5cGUgaXMgcm91Z2hseSBlcXVpdmFsZW50IHRvIHRoZSBmb2xsb3dpbmcgY29kZTo6CisKKyAgICAgICBjbGFzcyBTaW1wbGVOYW1lc3BhY2U6CisgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICBzZWxmLl9fZGljdF9fLnVwZGF0ZShrd2FyZ3MpCisgICAgICAgICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgICAgICAgIGtleXMgPSBzb3J0ZWQoc2VsZi5fX2RpY3RfXykKKyAgICAgICAgICAgICAgIGl0ZW1zID0gKCJ7fT17IXJ9Ii5mb3JtYXQoaywgc2VsZi5fX2RpY3RfX1trXSkgZm9yIGsgaW4ga2V5cykKKyAgICAgICAgICAgICAgIHJldHVybiAie30oe30pIi5mb3JtYXQodHlwZShzZWxmKS5fX25hbWVfXywgIiwgIi5qb2luKGl0ZW1zKSkKKworICAgYGBTaW1wbGVOYW1lc3BhY2VgYCBtYXkgYmUgdXNlZnVsIGFzIGEgcmVwbGFjZW1lbnQgZm9yIGBgY2xhc3MgTlM6IHBhc3NgYC4KKyAgIEhvd2V2ZXIsIGZvciBhIHN0cnVjdHVyZWQgcmVjb3JkIHR5cGUgdXNlIDpmdW5jOmB+Y29sbGVjdGlvbnMubmFtZWR0dXBsZWAKKyAgIGluc3RlYWQuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdW5pY29kZWRhdGEucnN0IGIvRG9jL2xpYnJhcnkvdW5pY29kZWRhdGEucnN0CmluZGV4IDQyNDAwZGYuLmI3MzVhNjkgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3VuaWNvZGVkYXRhLnJzdAorKysgYi9Eb2MvbGlicmFyeS91bmljb2RlZGF0YS5yc3QKQEAgLTE1LDggKzE1LDggQEAKIAogVGhpcyBtb2R1bGUgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZSBVbmljb2RlIENoYXJhY3RlciBEYXRhYmFzZSAoVUNEKSB3aGljaAogZGVmaW5lcyBjaGFyYWN0ZXIgcHJvcGVydGllcyBmb3IgYWxsIFVuaWNvZGUgY2hhcmFjdGVycy4gVGhlIGRhdGEgY29udGFpbmVkIGluCi10aGlzIGRhdGFiYXNlIGlzIGNvbXBpbGVkIGZyb20gdGhlIGBVQ0QgdmVyc2lvbiA2LjAuMAotPGh0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljLzYuMC4wL3VjZD5gXy4KK3RoaXMgZGF0YWJhc2UgaXMgY29tcGlsZWQgZnJvbSB0aGUgYFVDRCB2ZXJzaW9uIDYuMS4wCis8aHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvNi4xLjAvdWNkPmBfLgogCiBUaGUgbW9kdWxlIHVzZXMgdGhlIHNhbWUgbmFtZXMgYW5kIHN5bWJvbHMgYXMgZGVmaW5lZCBieSBVbmljb2RlCiBTdGFuZGFyZCBBbm5leCAjNDQsIGAiVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UiCkBAIC0yOSw2ICsyOSw5IEBACiAgICBMb29rIHVwIGNoYXJhY3RlciBieSBuYW1lLiAgSWYgYSBjaGFyYWN0ZXIgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBpcyBmb3VuZCwgcmV0dXJuCiAgICB0aGUgY29ycmVzcG9uZGluZyBjaGFyYWN0ZXIuICBJZiBub3QgZm91bmQsIDpleGM6YEtleUVycm9yYCBpcyByYWlzZWQuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBTdXBwb3J0IGZvciBuYW1lIGFsaWFzZXMgWyNdXyBhbmQgbmFtZWQgc2VxdWVuY2VzIFsjXV8gaGFzIGJlZW4gYWRkZWQuCisKIAogLi4gZnVuY3Rpb246OiBuYW1lKGNoclssIGRlZmF1bHRdKQogCkBAIC0xNjAsMyArMTYzLDkgQEAKICAgID4+PiB1bmljb2RlZGF0YS5iaWRpcmVjdGlvbmFsKCdcdTA2NjAnKSAjICdBJ3JhYmljLCAnTid1bWJlcgogICAgJ0FOJwogCisKKy4uIHJ1YnJpYzo6IEZvb3Rub3RlcworCisuLiBbI10gaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvNi4xLjAvdWNkL05hbWVBbGlhc2VzLnR4dAorCisuLiBbI10gaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvNi4xLjAvdWNkL05hbWVkU2VxdWVuY2VzLnR4dApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdW5pdHRlc3QubW9jay1leGFtcGxlcy5yc3QgYi9Eb2MvbGlicmFyeS91bml0dGVzdC5tb2NrLWV4YW1wbGVzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTFlODhhCi0tLSAvZGV2L251bGwKKysrIGIvRG9jL2xpYnJhcnkvdW5pdHRlc3QubW9jay1leGFtcGxlcy5yc3QKQEAgLTAsMCArMSwxMjQ2IEBACis6bW9kOmB1bml0dGVzdC5tb2NrYCAtLS0gZ2V0dGluZyBzdGFydGVkCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIG1vZHVsZWF1dGhvcjo6IE1pY2hhZWwgRm9vcmQgPG1pY2hhZWxAcHl0aG9uLm9yZz4KKy4uIGN1cnJlbnRtb2R1bGU6OiB1bml0dGVzdC5tb2NrCisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMworCisKKy4uIF9nZXR0aW5nLXN0YXJ0ZWQ6CisKK1VzaW5nIE1vY2sKKy0tLS0tLS0tLS0KKworTW9jayBQYXRjaGluZyBNZXRob2RzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworQ29tbW9uIHVzZXMgZm9yIDpjbGFzczpgTW9ja2Agb2JqZWN0cyBpbmNsdWRlOgorCisqIFBhdGNoaW5nIG1ldGhvZHMKKyogUmVjb3JkaW5nIG1ldGhvZCBjYWxscyBvbiBvYmplY3RzCisKK1lvdSBtaWdodCB3YW50IHRvIHJlcGxhY2UgYSBtZXRob2Qgb24gYW4gb2JqZWN0IHRvIGNoZWNrIHRoYXQKK2l0IGlzIGNhbGxlZCB3aXRoIHRoZSBjb3JyZWN0IGFyZ3VtZW50cyBieSBhbm90aGVyIHBhcnQgb2YgdGhlIHN5c3RlbToKKworICAgID4+PiByZWFsID0gU29tZUNsYXNzKCkKKyAgICA+Pj4gcmVhbC5tZXRob2QgPSBNYWdpY01vY2sobmFtZT0nbWV0aG9kJykKKyAgICA+Pj4gcmVhbC5tZXRob2QoMywgNCwgNSwga2V5PSd2YWx1ZScpCisgICAgPE1hZ2ljTW9jayBuYW1lPSdtZXRob2QoKScgaWQ9Jy4uLic+CisKK09uY2Ugb3VyIG1vY2sgaGFzIGJlZW4gdXNlZCAoYHJlYWwubWV0aG9kYCBpbiB0aGlzIGV4YW1wbGUpIGl0IGhhcyBtZXRob2RzCithbmQgYXR0cmlidXRlcyB0aGF0IGFsbG93IHlvdSB0byBtYWtlIGFzc2VydGlvbnMgYWJvdXQgaG93IGl0IGhhcyBiZWVuIHVzZWQuCisKKy4uIG5vdGU6OgorCisgICAgSW4gbW9zdCBvZiB0aGVzZSBleGFtcGxlcyB0aGUgOmNsYXNzOmBNb2NrYCBhbmQgOmNsYXNzOmBNYWdpY01vY2tgIGNsYXNzZXMKKyAgICBhcmUgaW50ZXJjaGFuZ2VhYmxlLiBBcyB0aGUgYE1hZ2ljTW9ja2AgaXMgdGhlIG1vcmUgY2FwYWJsZSBjbGFzcyBpdCBtYWtlcworICAgIGEgc2Vuc2libGUgb25lIHRvIHVzZSBieSBkZWZhdWx0LgorCitPbmNlIHRoZSBtb2NrIGhhcyBiZWVuIGNhbGxlZCBpdHMgOmF0dHI6YH5Nb2NrLmNhbGxlZGAgYXR0cmlidXRlIGlzIHNldCB0bworYFRydWVgLiBNb3JlIGltcG9ydGFudGx5IHdlIGNhbiB1c2UgdGhlIDptZXRoOmB+TW9jay5hc3NlcnRfY2FsbGVkX3dpdGhgIG9yCis6bWV0aDpgfk1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGhgIG1ldGhvZCB0byBjaGVjayB0aGF0IGl0IHdhcyBjYWxsZWQgd2l0aAordGhlIGNvcnJlY3QgYXJndW1lbnRzLgorCitUaGlzIGV4YW1wbGUgdGVzdHMgdGhhdCBjYWxsaW5nIGBQcm9kdWN0aW9uQ2xhc3MoKS5tZXRob2RgIHJlc3VsdHMgaW4gYSBjYWxsIHRvCit0aGUgYHNvbWV0aGluZ2AgbWV0aG9kOgorCisgICAgPj4+IGNsYXNzIFByb2R1Y3Rpb25DbGFzcyhvYmplY3QpOgorICAgIC4uLiAgICAgZGVmIG1ldGhvZChzZWxmKToKKyAgICAuLi4gICAgICAgICBzZWxmLnNvbWV0aGluZygxLCAyLCAzKQorICAgIC4uLiAgICAgZGVmIHNvbWV0aGluZyhzZWxmLCBhLCBiLCBjKToKKyAgICAuLi4gICAgICAgICBwYXNzCisgICAgLi4uCisgICAgPj4+IHJlYWwgPSBQcm9kdWN0aW9uQ2xhc3MoKQorICAgID4+PiByZWFsLnNvbWV0aGluZyA9IE1hZ2ljTW9jaygpCisgICAgPj4+IHJlYWwubWV0aG9kKCkKKyAgICA+Pj4gcmVhbC5zb21ldGhpbmcuYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoMSwgMiwgMykKKworCisKK01vY2sgZm9yIE1ldGhvZCBDYWxscyBvbiBhbiBPYmplY3QKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworSW4gdGhlIGxhc3QgZXhhbXBsZSB3ZSBwYXRjaGVkIGEgbWV0aG9kIGRpcmVjdGx5IG9uIGFuIG9iamVjdCB0byBjaGVjayB0aGF0IGl0Cit3YXMgY2FsbGVkIGNvcnJlY3RseS4gQW5vdGhlciBjb21tb24gdXNlIGNhc2UgaXMgdG8gcGFzcyBhbiBvYmplY3QgaW50byBhCittZXRob2QgKG9yIHNvbWUgcGFydCBvZiB0aGUgc3lzdGVtIHVuZGVyIHRlc3QpIGFuZCB0aGVuIGNoZWNrIHRoYXQgaXQgaXMgdXNlZAoraW4gdGhlIGNvcnJlY3Qgd2F5LgorCitUaGUgc2ltcGxlIGBQcm9kdWN0aW9uQ2xhc3NgIGJlbG93IGhhcyBhIGBjbG9zZXJgIG1ldGhvZC4gSWYgaXQgaXMgY2FsbGVkIHdpdGgKK2FuIG9iamVjdCB0aGVuIGl0IGNhbGxzIGBjbG9zZWAgb24gaXQuCisKKyAgICA+Pj4gY2xhc3MgUHJvZHVjdGlvbkNsYXNzKG9iamVjdCk6CisgICAgLi4uICAgICBkZWYgY2xvc2VyKHNlbGYsIHNvbWV0aGluZyk6CisgICAgLi4uICAgICAgICAgc29tZXRoaW5nLmNsb3NlKCkKKyAgICAuLi4KKworU28gdG8gdGVzdCBpdCB3ZSBuZWVkIHRvIHBhc3MgaW4gYW4gb2JqZWN0IHdpdGggYSBgY2xvc2VgIG1ldGhvZCBhbmQgY2hlY2sKK3RoYXQgaXQgd2FzIGNhbGxlZCBjb3JyZWN0bHkuCisKKyAgICA+Pj4gcmVhbCA9IFByb2R1Y3Rpb25DbGFzcygpCisgICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgICA+Pj4gcmVhbC5jbG9zZXIobW9jaykKKyAgICA+Pj4gbW9jay5jbG9zZS5hc3NlcnRfY2FsbGVkX3dpdGgoKQorCitXZSBkb24ndCBoYXZlIHRvIGRvIGFueSB3b3JrIHRvIHByb3ZpZGUgdGhlICdjbG9zZScgbWV0aG9kIG9uIG91ciBtb2NrLgorQWNjZXNzaW5nIGNsb3NlIGNyZWF0ZXMgaXQuIFNvLCBpZiAnY2xvc2UnIGhhc24ndCBhbHJlYWR5IGJlZW4gY2FsbGVkIHRoZW4KK2FjY2Vzc2luZyBpdCBpbiB0aGUgdGVzdCB3aWxsIGNyZWF0ZSBpdCwgYnV0IDptZXRoOmB+TW9jay5hc3NlcnRfY2FsbGVkX3dpdGhgCit3aWxsIHJhaXNlIGEgZmFpbHVyZSBleGNlcHRpb24uCisKKworTW9ja2luZyBDbGFzc2VzCit+fn5+fn5+fn5+fn5+fn4KKworQSBjb21tb24gdXNlIGNhc2UgaXMgdG8gbW9jayBvdXQgY2xhc3NlcyBpbnN0YW50aWF0ZWQgYnkgeW91ciBjb2RlIHVuZGVyIHRlc3QuCitXaGVuIHlvdSBwYXRjaCBhIGNsYXNzLCB0aGVuIHRoYXQgY2xhc3MgaXMgcmVwbGFjZWQgd2l0aCBhIG1vY2suIEluc3RhbmNlcworYXJlIGNyZWF0ZWQgYnkgKmNhbGxpbmcgdGhlIGNsYXNzKi4gVGhpcyBtZWFucyB5b3UgYWNjZXNzIHRoZSAibW9jayBpbnN0YW5jZSIKK2J5IGxvb2tpbmcgYXQgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgbW9ja2VkIGNsYXNzLgorCitJbiB0aGUgZXhhbXBsZSBiZWxvdyB3ZSBoYXZlIGEgZnVuY3Rpb24gYHNvbWVfZnVuY3Rpb25gIHRoYXQgaW5zdGFudGlhdGVzIGBGb29gCithbmQgY2FsbHMgYSBtZXRob2Qgb24gaXQuIFRoZSBjYWxsIHRvIGBwYXRjaGAgcmVwbGFjZXMgdGhlIGNsYXNzIGBGb29gIHdpdGggYQorbW9jay4gVGhlIGBGb29gIGluc3RhbmNlIGlzIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgbW9jaywgc28gaXQgaXMgY29uZmlndXJlZAorYnkgbW9kaWZ5aW5nIHRoZSBtb2NrIDphdHRyOmB+TW9jay5yZXR1cm5fdmFsdWVgLgorCisgICAgPj4+IGRlZiBzb21lX2Z1bmN0aW9uKCk6CisgICAgLi4uICAgICBpbnN0YW5jZSA9IG1vZHVsZS5Gb28oKQorICAgIC4uLiAgICAgcmV0dXJuIGluc3RhbmNlLm1ldGhvZCgpCisgICAgLi4uCisgICAgPj4+IHdpdGggcGF0Y2goJ21vZHVsZS5Gb28nKSBhcyBtb2NrOgorICAgIC4uLiAgICAgaW5zdGFuY2UgPSBtb2NrLnJldHVybl92YWx1ZQorICAgIC4uLiAgICAgaW5zdGFuY2UubWV0aG9kLnJldHVybl92YWx1ZSA9ICd0aGUgcmVzdWx0JworICAgIC4uLiAgICAgcmVzdWx0ID0gc29tZV9mdW5jdGlvbigpCisgICAgLi4uICAgICBhc3NlcnQgcmVzdWx0ID09ICd0aGUgcmVzdWx0JworCisKK05hbWluZyB5b3VyIG1vY2tzCit+fn5+fn5+fn5+fn5+fn5+fgorCitJdCBjYW4gYmUgdXNlZnVsIHRvIGdpdmUgeW91ciBtb2NrcyBhIG5hbWUuIFRoZSBuYW1lIGlzIHNob3duIGluIHRoZSByZXByIG9mCit0aGUgbW9jayBhbmQgY2FuIGJlIGhlbHBmdWwgd2hlbiB0aGUgbW9jayBhcHBlYXJzIGluIHRlc3QgZmFpbHVyZSBtZXNzYWdlcy4gVGhlCituYW1lIGlzIGFsc28gcHJvcGFnYXRlZCB0byBhdHRyaWJ1dGVzIG9yIG1ldGhvZHMgb2YgdGhlIG1vY2s6CisKKyAgICA+Pj4gbW9jayA9IE1hZ2ljTW9jayhuYW1lPSdmb28nKQorICAgID4+PiBtb2NrCisgICAgPE1hZ2ljTW9jayBuYW1lPSdmb28nIGlkPScuLi4nPgorICAgID4+PiBtb2NrLm1ldGhvZAorICAgIDxNYWdpY01vY2sgbmFtZT0nZm9vLm1ldGhvZCcgaWQ9Jy4uLic+CisKKworVHJhY2tpbmcgYWxsIENhbGxzCit+fn5+fn5+fn5+fn5+fn5+fn4KKworT2Z0ZW4geW91IHdhbnQgdG8gdHJhY2sgbW9yZSB0aGFuIGEgc2luZ2xlIGNhbGwgdG8gYSBtZXRob2QuIFRoZQorOmF0dHI6YH5Nb2NrLm1vY2tfY2FsbHNgIGF0dHJpYnV0ZSByZWNvcmRzIGFsbCBjYWxscwordG8gY2hpbGQgYXR0cmlidXRlcyBvZiB0aGUgbW9jayAtIGFuZCBhbHNvIHRvIHRoZWlyIGNoaWxkcmVuLgorCisgICAgPj4+IG1vY2sgPSBNYWdpY01vY2soKQorICAgID4+PiBtb2NrLm1ldGhvZCgpCisgICAgPE1hZ2ljTW9jayBuYW1lPSdtb2NrLm1ldGhvZCgpJyBpZD0nLi4uJz4KKyAgICA+Pj4gbW9jay5hdHRyaWJ1dGUubWV0aG9kKDEwLCB4PTUzKQorICAgIDxNYWdpY01vY2sgbmFtZT0nbW9jay5hdHRyaWJ1dGUubWV0aG9kKCknIGlkPScuLi4nPgorICAgID4+PiBtb2NrLm1vY2tfY2FsbHMKKyAgICBbY2FsbC5tZXRob2QoKSwgY2FsbC5hdHRyaWJ1dGUubWV0aG9kKDEwLCB4PTUzKV0KKworSWYgeW91IG1ha2UgYW4gYXNzZXJ0aW9uIGFib3V0IGBtb2NrX2NhbGxzYCBhbmQgYW55IHVuZXhwZWN0ZWQgbWV0aG9kcworaGF2ZSBiZWVuIGNhbGxlZCwgdGhlbiB0aGUgYXNzZXJ0aW9uIHdpbGwgZmFpbC4gVGhpcyBpcyB1c2VmdWwgYmVjYXVzZSBhcyB3ZWxsCithcyBhc3NlcnRpbmcgdGhhdCB0aGUgY2FsbHMgeW91IGV4cGVjdGVkIGhhdmUgYmVlbiBtYWRlLCB5b3UgYXJlIGFsc28gY2hlY2tpbmcKK3RoYXQgdGhleSB3ZXJlIG1hZGUgaW4gdGhlIHJpZ2h0IG9yZGVyIGFuZCB3aXRoIG5vIGFkZGl0aW9uYWwgY2FsbHM6CisKK1lvdSB1c2UgdGhlIDpkYXRhOmBjYWxsYCBvYmplY3QgdG8gY29uc3RydWN0IGxpc3RzIGZvciBjb21wYXJpbmcgd2l0aAorYG1vY2tfY2FsbHNgOgorCisgICAgPj4+IGV4cGVjdGVkID0gW2NhbGwubWV0aG9kKCksIGNhbGwuYXR0cmlidXRlLm1ldGhvZCgxMCwgeD01MyldCisgICAgPj4+IG1vY2subW9ja19jYWxscyA9PSBleHBlY3RlZAorICAgIFRydWUKKworCitTZXR0aW5nIFJldHVybiBWYWx1ZXMgYW5kIEF0dHJpYnV0ZXMKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitTZXR0aW5nIHRoZSByZXR1cm4gdmFsdWVzIG9uIGEgbW9jayBvYmplY3QgaXMgdHJpdmlhbGx5IGVhc3k6CisKKyAgICA+Pj4gbW9jayA9IE1vY2soKQorICAgID4+PiBtb2NrLnJldHVybl92YWx1ZSA9IDMKKyAgICA+Pj4gbW9jaygpCisgICAgMworCitPZiBjb3Vyc2UgeW91IGNhbiBkbyB0aGUgc2FtZSBmb3IgbWV0aG9kcyBvbiB0aGUgbW9jazoKKworICAgID4+PiBtb2NrID0gTW9jaygpCisgICAgPj4+IG1vY2subWV0aG9kLnJldHVybl92YWx1ZSA9IDMKKyAgICA+Pj4gbW9jay5tZXRob2QoKQorICAgIDMKKworVGhlIHJldHVybiB2YWx1ZSBjYW4gYWxzbyBiZSBzZXQgaW4gdGhlIGNvbnN0cnVjdG9yOgorCisgICAgPj4+IG1vY2sgPSBNb2NrKHJldHVybl92YWx1ZT0zKQorICAgID4+PiBtb2NrKCkKKyAgICAzCisKK0lmIHlvdSBuZWVkIGFuIGF0dHJpYnV0ZSBzZXR0aW5nIG9uIHlvdXIgbW9jaywganVzdCBkbyBpdDoKKworICAgID4+PiBtb2NrID0gTW9jaygpCisgICAgPj4+IG1vY2sueCA9IDMKKyAgICA+Pj4gbW9jay54CisgICAgMworCitTb21ldGltZXMgeW91IHdhbnQgdG8gbW9jayB1cCBhIG1vcmUgY29tcGxleCBzaXR1YXRpb24sIGxpa2UgZm9yIGV4YW1wbGUKK2Btb2NrLmNvbm5lY3Rpb24uY3Vyc29yKCkuZXhlY3V0ZSgiU0VMRUNUIDEiKWAuIElmIHdlIHdhbnRlZCB0aGlzIGNhbGwgdG8KK3JldHVybiBhIGxpc3QsIHRoZW4gd2UgaGF2ZSB0byBjb25maWd1cmUgdGhlIHJlc3VsdCBvZiB0aGUgbmVzdGVkIGNhbGwuCisKK1dlIGNhbiB1c2UgOmRhdGE6YGNhbGxgIHRvIGNvbnN0cnVjdCB0aGUgc2V0IG9mIGNhbGxzIGluIGEgImNoYWluZWQgY2FsbCIgbGlrZQordGhpcyBmb3IgZWFzeSBhc3NlcnRpb24gYWZ0ZXJ3YXJkczoKKworICAgID4+PiBtb2NrID0gTW9jaygpCisgICAgPj4+IGN1cnNvciA9IG1vY2suY29ubmVjdGlvbi5jdXJzb3IucmV0dXJuX3ZhbHVlCisgICAgPj4+IGN1cnNvci5leGVjdXRlLnJldHVybl92YWx1ZSA9IFsnZm9vJ10KKyAgICA+Pj4gbW9jay5jb25uZWN0aW9uLmN1cnNvcigpLmV4ZWN1dGUoIlNFTEVDVCAxIikKKyAgICBbJ2ZvbyddCisgICAgPj4+IGV4cGVjdGVkID0gY2FsbC5jb25uZWN0aW9uLmN1cnNvcigpLmV4ZWN1dGUoIlNFTEVDVCAxIikuY2FsbF9saXN0KCkKKyAgICA+Pj4gbW9jay5tb2NrX2NhbGxzCisgICAgW2NhbGwuY29ubmVjdGlvbi5jdXJzb3IoKSwgY2FsbC5jb25uZWN0aW9uLmN1cnNvcigpLmV4ZWN1dGUoJ1NFTEVDVCAxJyldCisgICAgPj4+IG1vY2subW9ja19jYWxscyA9PSBleHBlY3RlZAorICAgIFRydWUKKworSXQgaXMgdGhlIGNhbGwgdG8gYC5jYWxsX2xpc3QoKWAgdGhhdCB0dXJucyBvdXIgY2FsbCBvYmplY3QgaW50byBhIGxpc3Qgb2YKK2NhbGxzIHJlcHJlc2VudGluZyB0aGUgY2hhaW5lZCBjYWxscy4KKworCitSYWlzaW5nIGV4Y2VwdGlvbnMgd2l0aCBtb2Nrcworfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KKworQSB1c2VmdWwgYXR0cmlidXRlIGlzIDphdHRyOmB+TW9jay5zaWRlX2VmZmVjdGAuIElmIHlvdSBzZXQgdGhpcyB0byBhbgorZXhjZXB0aW9uIGNsYXNzIG9yIGluc3RhbmNlIHRoZW4gdGhlIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIHRoZSBtb2NrCitpcyBjYWxsZWQuCisKKyAgICA+Pj4gbW9jayA9IE1vY2soc2lkZV9lZmZlY3Q9RXhjZXB0aW9uKCdCb29tIScpKQorICAgID4+PiBtb2NrKCkKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgICBFeGNlcHRpb246IEJvb20hCisKKworU2lkZSBlZmZlY3QgZnVuY3Rpb25zIGFuZCBpdGVyYWJsZXMKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK2BzaWRlX2VmZmVjdGAgY2FuIGFsc28gYmUgc2V0IHRvIGEgZnVuY3Rpb24gb3IgYW4gaXRlcmFibGUuIFRoZSB1c2UgY2FzZSBmb3IKK2BzaWRlX2VmZmVjdGAgYXMgYW4gaXRlcmFibGUgaXMgd2hlcmUgeW91ciBtb2NrIGlzIGdvaW5nIHRvIGJlIGNhbGxlZCBzZXZlcmFsCit0aW1lcywgYW5kIHlvdSB3YW50IGVhY2ggY2FsbCB0byByZXR1cm4gYSBkaWZmZXJlbnQgdmFsdWUuIFdoZW4geW91IHNldAorYHNpZGVfZWZmZWN0YCB0byBhbiBpdGVyYWJsZSBldmVyeSBjYWxsIHRvIHRoZSBtb2NrIHJldHVybnMgdGhlIG5leHQgdmFsdWUKK2Zyb20gdGhlIGl0ZXJhYmxlOgorCisgICAgPj4+IG1vY2sgPSBNYWdpY01vY2soc2lkZV9lZmZlY3Q9WzQsIDUsIDZdKQorICAgID4+PiBtb2NrKCkKKyAgICA0CisgICAgPj4+IG1vY2soKQorICAgIDUKKyAgICA+Pj4gbW9jaygpCisgICAgNgorCisKK0ZvciBtb3JlIGFkdmFuY2VkIHVzZSBjYXNlcywgbGlrZSBkeW5hbWljYWxseSB2YXJ5aW5nIHRoZSByZXR1cm4gdmFsdWVzCitkZXBlbmRpbmcgb24gd2hhdCB0aGUgbW9jayBpcyBjYWxsZWQgd2l0aCwgYHNpZGVfZWZmZWN0YCBjYW4gYmUgYSBmdW5jdGlvbi4KK1RoZSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aXRoIHRoZSBzYW1lIGFyZ3VtZW50cyBhcyB0aGUgbW9jay4gV2hhdGV2ZXIgdGhlCitmdW5jdGlvbiByZXR1cm5zIGlzIHdoYXQgdGhlIGNhbGwgcmV0dXJuczoKKworICAgID4+PiB2YWxzID0geygxLCAyKTogMSwgKDIsIDMpOiAyfQorICAgID4+PiBkZWYgc2lkZV9lZmZlY3QoKmFyZ3MpOgorICAgIC4uLiAgICAgcmV0dXJuIHZhbHNbYXJnc10KKyAgICAuLi4KKyAgICA+Pj4gbW9jayA9IE1hZ2ljTW9jayhzaWRlX2VmZmVjdD1zaWRlX2VmZmVjdCkKKyAgICA+Pj4gbW9jaygxLCAyKQorICAgIDEKKyAgICA+Pj4gbW9jaygyLCAzKQorICAgIDIKKworCitDcmVhdGluZyBhIE1vY2sgZnJvbSBhbiBFeGlzdGluZyBPYmplY3QKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCitPbmUgcHJvYmxlbSB3aXRoIG92ZXIgdXNlIG9mIG1vY2tpbmcgaXMgdGhhdCBpdCBjb3VwbGVzIHlvdXIgdGVzdHMgdG8gdGhlCitpbXBsZW1lbnRhdGlvbiBvZiB5b3VyIG1vY2tzIHJhdGhlciB0aGFuIHlvdXIgcmVhbCBjb2RlLiBTdXBwb3NlIHlvdSBoYXZlIGEKK2NsYXNzIHRoYXQgaW1wbGVtZW50cyBgc29tZV9tZXRob2RgLiBJbiBhIHRlc3QgZm9yIGFub3RoZXIgY2xhc3MsIHlvdQorcHJvdmlkZSBhIG1vY2sgb2YgdGhpcyBvYmplY3QgdGhhdCAqYWxzbyogcHJvdmlkZXMgYHNvbWVfbWV0aG9kYC4gSWYgbGF0ZXIKK3lvdSByZWZhY3RvciB0aGUgZmlyc3QgY2xhc3MsIHNvIHRoYXQgaXQgbm8gbG9uZ2VyIGhhcyBgc29tZV9tZXRob2RgIC0gdGhlbgoreW91ciB0ZXN0cyB3aWxsIGNvbnRpbnVlIHRvIHBhc3MgZXZlbiB0aG91Z2ggeW91ciBjb2RlIGlzIG5vdyBicm9rZW4hCisKK2BNb2NrYCBhbGxvd3MgeW91IHRvIHByb3ZpZGUgYW4gb2JqZWN0IGFzIGEgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIG1vY2ssCit1c2luZyB0aGUgYHNwZWNgIGtleXdvcmQgYXJndW1lbnQuIEFjY2Vzc2luZyBtZXRob2RzIC8gYXR0cmlidXRlcyBvbiB0aGUKK21vY2sgdGhhdCBkb24ndCBleGlzdCBvbiB5b3VyIHNwZWNpZmljYXRpb24gb2JqZWN0IHdpbGwgaW1tZWRpYXRlbHkgcmFpc2UgYW4KK2F0dHJpYnV0ZSBlcnJvci4gSWYgeW91IGNoYW5nZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgeW91ciBzcGVjaWZpY2F0aW9uLCB0aGVuCit0ZXN0cyB0aGF0IHVzZSB0aGF0IGNsYXNzIHdpbGwgc3RhcnQgZmFpbGluZyBpbW1lZGlhdGVseSB3aXRob3V0IHlvdSBoYXZpbmcgdG8KK2luc3RhbnRpYXRlIHRoZSBjbGFzcyBpbiB0aG9zZSB0ZXN0cy4KKworICAgID4+PiBtb2NrID0gTW9jayhzcGVjPVNvbWVDbGFzcykKKyAgICA+Pj4gbW9jay5vbGRfbWV0aG9kKCkKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgLi4uCisgICAgQXR0cmlidXRlRXJyb3I6IG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdvbGRfbWV0aG9kJworCitJZiB5b3Ugd2FudCBhIHN0cm9uZ2VyIGZvcm0gb2Ygc3BlY2lmaWNhdGlvbiB0aGF0IHByZXZlbnRzIHRoZSBzZXR0aW5nCitvZiBhcmJpdHJhcnkgYXR0cmlidXRlcyBhcyB3ZWxsIGFzIHRoZSBnZXR0aW5nIG9mIHRoZW0gdGhlbiB5b3UgY2FuIHVzZQorYHNwZWNfc2V0YCBpbnN0ZWFkIG9mIGBzcGVjYC4KKworCisKK1BhdGNoIERlY29yYXRvcnMKKy0tLS0tLS0tLS0tLS0tLS0KKworLi4gbm90ZTo6CisKKyAgIFdpdGggYHBhdGNoYCBpdCBtYXR0ZXJzIHRoYXQgeW91IHBhdGNoIG9iamVjdHMgaW4gdGhlIG5hbWVzcGFjZSB3aGVyZSB0aGV5CisgICBhcmUgbG9va2VkIHVwLiBUaGlzIGlzIG5vcm1hbGx5IHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IGZvciBhIHF1aWNrIGd1aWRlCisgICByZWFkIDpyZWY6YHdoZXJlIHRvIHBhdGNoIDx3aGVyZS10by1wYXRjaD5gLgorCisKK0EgY29tbW9uIG5lZWQgaW4gdGVzdHMgaXMgdG8gcGF0Y2ggYSBjbGFzcyBhdHRyaWJ1dGUgb3IgYSBtb2R1bGUgYXR0cmlidXRlLAorZm9yIGV4YW1wbGUgcGF0Y2hpbmcgYSBidWlsdGluIG9yIHBhdGNoaW5nIGEgY2xhc3MgaW4gYSBtb2R1bGUgdG8gdGVzdCB0aGF0IGl0CitpcyBpbnN0YW50aWF0ZWQuIE1vZHVsZXMgYW5kIGNsYXNzZXMgYXJlIGVmZmVjdGl2ZWx5IGdsb2JhbCwgc28gcGF0Y2hpbmcgb24KK3RoZW0gaGFzIHRvIGJlIHVuZG9uZSBhZnRlciB0aGUgdGVzdCBvciB0aGUgcGF0Y2ggd2lsbCBwZXJzaXN0IGludG8gb3RoZXIKK3Rlc3RzIGFuZCBjYXVzZSBoYXJkIHRvIGRpYWdub3NlIHByb2JsZW1zLgorCittb2NrIHByb3ZpZGVzIHRocmVlIGNvbnZlbmllbnQgZGVjb3JhdG9ycyBmb3IgdGhpczogYHBhdGNoYCwgYHBhdGNoLm9iamVjdGAgYW5kCitgcGF0Y2guZGljdGAuIGBwYXRjaGAgdGFrZXMgYSBzaW5nbGUgc3RyaW5nLCBvZiB0aGUgZm9ybQorYHBhY2thZ2UubW9kdWxlLkNsYXNzLmF0dHJpYnV0ZWAgdG8gc3BlY2lmeSB0aGUgYXR0cmlidXRlIHlvdSBhcmUgcGF0Y2hpbmcuIEl0CithbHNvIG9wdGlvbmFsbHkgdGFrZXMgYSB2YWx1ZSB0aGF0IHlvdSB3YW50IHRoZSBhdHRyaWJ1dGUgKG9yIGNsYXNzIG9yCit3aGF0ZXZlcikgdG8gYmUgcmVwbGFjZWQgd2l0aC4gJ3BhdGNoLm9iamVjdCcgdGFrZXMgYW4gb2JqZWN0IGFuZCB0aGUgbmFtZSBvZgordGhlIGF0dHJpYnV0ZSB5b3Ugd291bGQgbGlrZSBwYXRjaGVkLCBwbHVzIG9wdGlvbmFsbHkgdGhlIHZhbHVlIHRvIHBhdGNoIGl0Cit3aXRoLgorCitgcGF0Y2gub2JqZWN0YDoKKworICAgID4+PiBvcmlnaW5hbCA9IFNvbWVDbGFzcy5hdHRyaWJ1dGUKKyAgICA+Pj4gQHBhdGNoLm9iamVjdChTb21lQ2xhc3MsICdhdHRyaWJ1dGUnLCBzZW50aW5lbC5hdHRyaWJ1dGUpCisgICAgLi4uIGRlZiB0ZXN0KCk6CisgICAgLi4uICAgICBhc3NlcnQgU29tZUNsYXNzLmF0dHJpYnV0ZSA9PSBzZW50aW5lbC5hdHRyaWJ1dGUKKyAgICAuLi4KKyAgICA+Pj4gdGVzdCgpCisgICAgPj4+IGFzc2VydCBTb21lQ2xhc3MuYXR0cmlidXRlID09IG9yaWdpbmFsCisKKyAgICA+Pj4gQHBhdGNoKCdwYWNrYWdlLm1vZHVsZS5hdHRyaWJ1dGUnLCBzZW50aW5lbC5hdHRyaWJ1dGUpCisgICAgLi4uIGRlZiB0ZXN0KCk6CisgICAgLi4uICAgICBmcm9tIHBhY2thZ2UubW9kdWxlIGltcG9ydCBhdHRyaWJ1dGUKKyAgICAuLi4gICAgIGFzc2VydCBhdHRyaWJ1dGUgaXMgc2VudGluZWwuYXR0cmlidXRlCisgICAgLi4uCisgICAgPj4+IHRlc3QoKQorCitJZiB5b3UgYXJlIHBhdGNoaW5nIGEgbW9kdWxlIChpbmNsdWRpbmcgYF9fYnVpbHRpbl9fYCkgdGhlbiB1c2UgYHBhdGNoYAoraW5zdGVhZCBvZiBgcGF0Y2gub2JqZWN0YDoKKworICAgID4+PiBtb2NrID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZSA9IHNlbnRpbmVsLmZpbGVfaGFuZGxlKQorICAgID4+PiB3aXRoIHBhdGNoKCdfX2J1aWx0aW5fXy5vcGVuJywgbW9jayk6CisgICAgLi4uICAgICBoYW5kbGUgPSBvcGVuKCdmaWxlbmFtZScsICdyJykKKyAgICAuLi4KKyAgICA+Pj4gbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoJ2ZpbGVuYW1lJywgJ3InKQorICAgID4+PiBhc3NlcnQgaGFuZGxlID09IHNlbnRpbmVsLmZpbGVfaGFuZGxlLCAiaW5jb3JyZWN0IGZpbGUgaGFuZGxlIHJldHVybmVkIgorCitUaGUgbW9kdWxlIG5hbWUgY2FuIGJlICdkb3R0ZWQnLCBpbiB0aGUgZm9ybSBgcGFja2FnZS5tb2R1bGVgIGlmIG5lZWRlZDoKKworICAgID4+PiBAcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZS5hdHRyaWJ1dGUnLCBzZW50aW5lbC5hdHRyaWJ1dGUpCisgICAgLi4uIGRlZiB0ZXN0KCk6CisgICAgLi4uICAgICBmcm9tIHBhY2thZ2UubW9kdWxlIGltcG9ydCBDbGFzc05hbWUKKyAgICAuLi4gICAgIGFzc2VydCBDbGFzc05hbWUuYXR0cmlidXRlID09IHNlbnRpbmVsLmF0dHJpYnV0ZQorICAgIC4uLgorICAgID4+PiB0ZXN0KCkKKworQSBuaWNlIHBhdHRlcm4gaXMgdG8gYWN0dWFsbHkgZGVjb3JhdGUgdGVzdCBtZXRob2RzIHRoZW1zZWx2ZXM6CisKKyAgICA+Pj4gY2xhc3MgTXlUZXN0KHVuaXR0ZXN0Mi5UZXN0Q2FzZSk6CisgICAgLi4uICAgICBAcGF0Y2gub2JqZWN0KFNvbWVDbGFzcywgJ2F0dHJpYnV0ZScsIHNlbnRpbmVsLmF0dHJpYnV0ZSkKKyAgICAuLi4gICAgIGRlZiB0ZXN0X3NvbWV0aGluZyhzZWxmKToKKyAgICAuLi4gICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWVDbGFzcy5hdHRyaWJ1dGUsIHNlbnRpbmVsLmF0dHJpYnV0ZSkKKyAgICAuLi4KKyAgICA+Pj4gb3JpZ2luYWwgPSBTb21lQ2xhc3MuYXR0cmlidXRlCisgICAgPj4+IE15VGVzdCgndGVzdF9zb21ldGhpbmcnKS50ZXN0X3NvbWV0aGluZygpCisgICAgPj4+IGFzc2VydCBTb21lQ2xhc3MuYXR0cmlidXRlID09IG9yaWdpbmFsCisKK0lmIHlvdSB3YW50IHRvIHBhdGNoIHdpdGggYSBNb2NrLCB5b3UgY2FuIHVzZSBgcGF0Y2hgIHdpdGggb25seSBvbmUgYXJndW1lbnQKKyhvciBgcGF0Y2gub2JqZWN0YCB3aXRoIHR3byBhcmd1bWVudHMpLiBUaGUgbW9jayB3aWxsIGJlIGNyZWF0ZWQgZm9yIHlvdSBhbmQKK3Bhc3NlZCBpbnRvIHRoZSB0ZXN0IGZ1bmN0aW9uIC8gbWV0aG9kOgorCisgICAgPj4+IGNsYXNzIE15VGVzdCh1bml0dGVzdDIuVGVzdENhc2UpOgorICAgIC4uLiAgICAgQHBhdGNoLm9iamVjdChTb21lQ2xhc3MsICdzdGF0aWNfbWV0aG9kJykKKyAgICAuLi4gICAgIGRlZiB0ZXN0X3NvbWV0aGluZyhzZWxmLCBtb2NrX21ldGhvZCk6CisgICAgLi4uICAgICAgICAgU29tZUNsYXNzLnN0YXRpY19tZXRob2QoKQorICAgIC4uLiAgICAgICAgIG1vY2tfbWV0aG9kLmFzc2VydF9jYWxsZWRfd2l0aCgpCisgICAgLi4uCisgICAgPj4+IE15VGVzdCgndGVzdF9zb21ldGhpbmcnKS50ZXN0X3NvbWV0aGluZygpCisKK1lvdSBjYW4gc3RhY2sgdXAgbXVsdGlwbGUgcGF0Y2ggZGVjb3JhdG9ycyB1c2luZyB0aGlzIHBhdHRlcm46CisKKyAgICA+Pj4gY2xhc3MgTXlUZXN0KHVuaXR0ZXN0Mi5UZXN0Q2FzZSk6CisgICAgLi4uICAgICBAcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZTEnKQorICAgIC4uLiAgICAgQHBhdGNoKCdwYWNrYWdlLm1vZHVsZS5DbGFzc05hbWUyJykKKyAgICAuLi4gICAgIGRlZiB0ZXN0X3NvbWV0aGluZyhzZWxmLCBNb2NrQ2xhc3MyLCBNb2NrQ2xhc3MxKToKKyAgICAuLi4gICAgICAgICBzZWxmLmFzc2VydFRydWUocGFja2FnZS5tb2R1bGUuQ2xhc3NOYW1lMSBpcyBNb2NrQ2xhc3MxKQorICAgIC4uLiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwYWNrYWdlLm1vZHVsZS5DbGFzc05hbWUyIGlzIE1vY2tDbGFzczIpCisgICAgLi4uCisgICAgPj4+IE15VGVzdCgndGVzdF9zb21ldGhpbmcnKS50ZXN0X3NvbWV0aGluZygpCisKK1doZW4geW91IG5lc3QgcGF0Y2ggZGVjb3JhdG9ycyB0aGUgbW9ja3MgYXJlIHBhc3NlZCBpbiB0byB0aGUgZGVjb3JhdGVkCitmdW5jdGlvbiBpbiB0aGUgc2FtZSBvcmRlciB0aGV5IGFwcGxpZWQgKHRoZSBub3JtYWwgKnB5dGhvbiogb3JkZXIgdGhhdAorZGVjb3JhdG9ycyBhcmUgYXBwbGllZCkuIFRoaXMgbWVhbnMgZnJvbSB0aGUgYm90dG9tIHVwLCBzbyBpbiB0aGUgZXhhbXBsZQorYWJvdmUgdGhlIG1vY2sgZm9yIGB0ZXN0X21vZHVsZS5DbGFzc05hbWUyYCBpcyBwYXNzZWQgaW4gZmlyc3QuCisKK1RoZXJlIGlzIGFsc28gOmZ1bmM6YHBhdGNoLmRpY3RgIGZvciBzZXR0aW5nIHZhbHVlcyBpbiBhIGRpY3Rpb25hcnkganVzdAorZHVyaW5nIGEgc2NvcGUgYW5kIHJlc3RvcmluZyB0aGUgZGljdGlvbmFyeSB0byBpdHMgb3JpZ2luYWwgc3RhdGUgd2hlbiB0aGUgdGVzdAorZW5kczoKKworICAgPj4+IGZvbyA9IHsna2V5JzogJ3ZhbHVlJ30KKyAgID4+PiBvcmlnaW5hbCA9IGZvby5jb3B5KCkKKyAgID4+PiB3aXRoIHBhdGNoLmRpY3QoZm9vLCB7J25ld2tleSc6ICduZXd2YWx1ZSd9LCBjbGVhcj1UcnVlKToKKyAgIC4uLiAgICAgYXNzZXJ0IGZvbyA9PSB7J25ld2tleSc6ICduZXd2YWx1ZSd9CisgICAuLi4KKyAgID4+PiBhc3NlcnQgZm9vID09IG9yaWdpbmFsCisKK2BwYXRjaGAsIGBwYXRjaC5vYmplY3RgIGFuZCBgcGF0Y2guZGljdGAgY2FuIGFsbCBiZSB1c2VkIGFzIGNvbnRleHQgbWFuYWdlcnMuCisKK1doZXJlIHlvdSB1c2UgYHBhdGNoYCB0byBjcmVhdGUgYSBtb2NrIGZvciB5b3UsIHlvdSBjYW4gZ2V0IGEgcmVmZXJlbmNlIHRvIHRoZQorbW9jayB1c2luZyB0aGUgImFzIiBmb3JtIG9mIHRoZSB3aXRoIHN0YXRlbWVudDoKKworICAgID4+PiBjbGFzcyBQcm9kdWN0aW9uQ2xhc3Mob2JqZWN0KToKKyAgICAuLi4gICAgIGRlZiBtZXRob2Qoc2VsZik6CisgICAgLi4uICAgICAgICAgcGFzcworICAgIC4uLgorICAgID4+PiB3aXRoIHBhdGNoLm9iamVjdChQcm9kdWN0aW9uQ2xhc3MsICdtZXRob2QnKSBhcyBtb2NrX21ldGhvZDoKKyAgICAuLi4gICAgIG1vY2tfbWV0aG9kLnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICAuLi4gICAgIHJlYWwgPSBQcm9kdWN0aW9uQ2xhc3MoKQorICAgIC4uLiAgICAgcmVhbC5tZXRob2QoMSwgMiwgMykKKyAgICAuLi4KKyAgICA+Pj4gbW9ja19tZXRob2QuYXNzZXJ0X2NhbGxlZF93aXRoKDEsIDIsIDMpCisKKworQXMgYW4gYWx0ZXJuYXRpdmUgYHBhdGNoYCwgYHBhdGNoLm9iamVjdGAgYW5kIGBwYXRjaC5kaWN0YCBjYW4gYmUgdXNlZCBhcworY2xhc3MgZGVjb3JhdG9ycy4gV2hlbiB1c2VkIGluIHRoaXMgd2F5IGl0IGlzIHRoZSBzYW1lIGFzIGFwcGx5aW5nIHRoZQorZGVjb3JhdG9yIGluZHZpZHVhbGx5IHRvIGV2ZXJ5IG1ldGhvZCB3aG9zZSBuYW1lIHN0YXJ0cyB3aXRoICJ0ZXN0Ii4KKworCisuLiBfZnVydGhlci1leGFtcGxlczoKKworRnVydGhlciBFeGFtcGxlcworPT09PT09PT09PT09PT09PQorCisKK0hlcmUgYXJlIHNvbWUgbW9yZSBleGFtcGxlcyBmb3Igc29tZSBzbGlnaHRseSBtb3JlIGFkdmFuY2VkIHNjZW5hcmlvcy4KKworCitNb2NraW5nIGNoYWluZWQgY2FsbHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitNb2NraW5nIGNoYWluZWQgY2FsbHMgaXMgYWN0dWFsbHkgc3RyYWlnaHRmb3J3YXJkIHdpdGggbW9jayBvbmNlIHlvdQordW5kZXJzdGFuZCB0aGUgOmF0dHI6YH5Nb2NrLnJldHVybl92YWx1ZWAgYXR0cmlidXRlLiBXaGVuIGEgbW9jayBpcyBjYWxsZWQgZm9yCit0aGUgZmlyc3QgdGltZSwgb3IgeW91IGZldGNoIGl0cyBgcmV0dXJuX3ZhbHVlYCBiZWZvcmUgaXQgaGFzIGJlZW4gY2FsbGVkLCBhCituZXcgYE1vY2tgIGlzIGNyZWF0ZWQuCisKK1RoaXMgbWVhbnMgdGhhdCB5b3UgY2FuIHNlZSBob3cgdGhlIG9iamVjdCByZXR1cm5lZCBmcm9tIGEgY2FsbCB0byBhIG1vY2tlZAorb2JqZWN0IGhhcyBiZWVuIHVzZWQgYnkgaW50ZXJyb2dhdGluZyB0aGUgYHJldHVybl92YWx1ZWAgbW9jazoKKworICAgID4+PiBtb2NrID0gTW9jaygpCisgICAgPj4+IG1vY2soKS5mb28oYT0yLCBiPTMpCisgICAgPE1vY2sgbmFtZT0nbW9jaygpLmZvbygpJyBpZD0nLi4uJz4KKyAgICA+Pj4gbW9jay5yZXR1cm5fdmFsdWUuZm9vLmFzc2VydF9jYWxsZWRfd2l0aChhPTIsIGI9MykKKworRnJvbSBoZXJlIGl0IGlzIGEgc2ltcGxlIHN0ZXAgdG8gY29uZmlndXJlIGFuZCB0aGVuIG1ha2UgYXNzZXJ0aW9ucyBhYm91dAorY2hhaW5lZCBjYWxscy4gT2YgY291cnNlIGFub3RoZXIgYWx0ZXJuYXRpdmUgaXMgd3JpdGluZyB5b3VyIGNvZGUgaW4gYSBtb3JlCit0ZXN0YWJsZSB3YXkgaW4gdGhlIGZpcnN0IHBsYWNlLi4uCisKK1NvLCBzdXBwb3NlIHdlIGhhdmUgc29tZSBjb2RlIHRoYXQgbG9va3MgYSBsaXR0bGUgYml0IGxpa2UgdGhpczoKKworICAgID4+PiBjbGFzcyBTb21ldGhpbmcob2JqZWN0KToKKyAgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAuLi4gICAgICAgICBzZWxmLmJhY2tlbmQgPSBCYWNrZW5kUHJvdmlkZXIoKQorICAgIC4uLiAgICAgZGVmIG1ldGhvZChzZWxmKToKKyAgICAuLi4gICAgICAgICByZXNwb25zZSA9IHNlbGYuYmFja2VuZC5nZXRfZW5kcG9pbnQoJ2Zvb2JhcicpLmNyZWF0ZV9jYWxsKCdzcGFtJywgJ2VnZ3MnKS5zdGFydF9jYWxsKCkKKyAgICAuLi4gICAgICAgICAjIG1vcmUgY29kZQorCitBc3N1bWluZyB0aGF0IGBCYWNrZW5kUHJvdmlkZXJgIGlzIGFscmVhZHkgd2VsbCB0ZXN0ZWQsIGhvdyBkbyB3ZSB0ZXN0CitgbWV0aG9kKClgPyBTcGVjaWZpY2FsbHksIHdlIHdhbnQgdG8gdGVzdCB0aGF0IHRoZSBjb2RlIHNlY3Rpb24gYCMgbW9yZQorY29kZWAgdXNlcyB0aGUgcmVzcG9uc2Ugb2JqZWN0IGluIHRoZSBjb3JyZWN0IHdheS4KKworQXMgdGhpcyBjaGFpbiBvZiBjYWxscyBpcyBtYWRlIGZyb20gYW4gaW5zdGFuY2UgYXR0cmlidXRlIHdlIGNhbiBtb25rZXkgcGF0Y2gKK3RoZSBgYmFja2VuZGAgYXR0cmlidXRlIG9uIGEgYFNvbWV0aGluZ2AgaW5zdGFuY2UuIEluIHRoaXMgcGFydGljdWxhciBjYXNlCit3ZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIHRoZSByZXR1cm4gdmFsdWUgZnJvbSB0aGUgZmluYWwgY2FsbCB0bworYHN0YXJ0X2NhbGxgIHNvIHdlIGRvbid0IGhhdmUgbXVjaCBjb25maWd1cmF0aW9uIHRvIGRvLiBMZXQncyBhc3N1bWUgdGhlCitvYmplY3QgaXQgcmV0dXJucyBpcyAnZmlsZS1saWtlJywgc28gd2UnbGwgZW5zdXJlIHRoYXQgb3VyIHJlc3BvbnNlIG9iamVjdAordXNlcyB0aGUgYnVpbHRpbiBgZmlsZWAgYXMgaXRzIGBzcGVjYC4KKworVG8gZG8gdGhpcyB3ZSBjcmVhdGUgYSBtb2NrIGluc3RhbmNlIGFzIG91ciBtb2NrIGJhY2tlbmQgYW5kIGNyZWF0ZSBhIG1vY2sKK3Jlc3BvbnNlIG9iamVjdCBmb3IgaXQuIFRvIHNldCB0aGUgcmVzcG9uc2UgYXMgdGhlIHJldHVybiB2YWx1ZSBmb3IgdGhhdCBmaW5hbAorYHN0YXJ0X2NhbGxgIHdlIGNvdWxkIGRvIHRoaXM6CisKKyAgICBgbW9ja19iYWNrZW5kLmdldF9lbmRwb2ludC5yZXR1cm5fdmFsdWUuY3JlYXRlX2NhbGwucmV0dXJuX3ZhbHVlLnN0YXJ0X2NhbGwucmV0dXJuX3ZhbHVlID0gbW9ja19yZXNwb25zZWAuCisKK1dlIGNhbiBkbyB0aGF0IGluIGEgc2xpZ2h0bHkgbmljZXIgd2F5IHVzaW5nIHRoZSA6bWV0aDpgfk1vY2suY29uZmlndXJlX21vY2tgCittZXRob2QgdG8gZGlyZWN0bHkgc2V0IHRoZSByZXR1cm4gdmFsdWUgZm9yIHVzOgorCisgICAgPj4+IHNvbWV0aGluZyA9IFNvbWV0aGluZygpCisgICAgPj4+IG1vY2tfcmVzcG9uc2UgPSBNb2NrKHNwZWM9ZmlsZSkKKyAgICA+Pj4gbW9ja19iYWNrZW5kID0gTW9jaygpCisgICAgPj4+IGNvbmZpZyA9IHsnZ2V0X2VuZHBvaW50LnJldHVybl92YWx1ZS5jcmVhdGVfY2FsbC5yZXR1cm5fdmFsdWUuc3RhcnRfY2FsbC5yZXR1cm5fdmFsdWUnOiBtb2NrX3Jlc3BvbnNlfQorICAgID4+PiBtb2NrX2JhY2tlbmQuY29uZmlndXJlX21vY2soKipjb25maWcpCisKK1dpdGggdGhlc2Ugd2UgbW9ua2V5IHBhdGNoIHRoZSAibW9jayBiYWNrZW5kIiBpbiBwbGFjZSBhbmQgY2FuIG1ha2UgdGhlIHJlYWwKK2NhbGw6CisKKyAgICA+Pj4gc29tZXRoaW5nLmJhY2tlbmQgPSBtb2NrX2JhY2tlbmQKKyAgICA+Pj4gc29tZXRoaW5nLm1ldGhvZCgpCisKK1VzaW5nIDphdHRyOmB+TW9jay5tb2NrX2NhbGxzYCB3ZSBjYW4gY2hlY2sgdGhlIGNoYWluZWQgY2FsbCB3aXRoIGEgc2luZ2xlCithc3NlcnQuIEEgY2hhaW5lZCBjYWxsIGlzIHNldmVyYWwgY2FsbHMgaW4gb25lIGxpbmUgb2YgY29kZSwgc28gdGhlcmUgd2lsbCBiZQorc2V2ZXJhbCBlbnRyaWVzIGluIGBtb2NrX2NhbGxzYC4gV2UgY2FuIHVzZSA6bWV0aDpgY2FsbC5jYWxsX2xpc3RgIHRvIGNyZWF0ZQordGhpcyBsaXN0IG9mIGNhbGxzIGZvciB1czoKKworICAgID4+PiBjaGFpbmVkID0gY2FsbC5nZXRfZW5kcG9pbnQoJ2Zvb2JhcicpLmNyZWF0ZV9jYWxsKCdzcGFtJywgJ2VnZ3MnKS5zdGFydF9jYWxsKCkKKyAgICA+Pj4gY2FsbF9saXN0ID0gY2hhaW5lZC5jYWxsX2xpc3QoKQorICAgID4+PiBhc3NlcnQgbW9ja19iYWNrZW5kLm1vY2tfY2FsbHMgPT0gY2FsbF9saXN0CisKKworUGFydGlhbCBtb2NraW5nCistLS0tLS0tLS0tLS0tLS0KKworSW4gc29tZSB0ZXN0cyBJIHdhbnRlZCB0byBtb2NrIG91dCBhIGNhbGwgdG8gYGRhdGV0aW1lLmRhdGUudG9kYXkoKQorPGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS9kYXRldGltZS5odG1sI2RhdGV0aW1lLmRhdGUudG9kYXk+YF8gdG8gcmV0dXJuCithIGtub3duIGRhdGUsIGJ1dCBJIGRpZG4ndCB3YW50IHRvIHByZXZlbnQgdGhlIGNvZGUgdW5kZXIgdGVzdCBmcm9tCitjcmVhdGluZyBuZXcgZGF0ZSBvYmplY3RzLiBVbmZvcnR1bmF0ZWx5IGBkYXRldGltZS5kYXRlYCBpcyB3cml0dGVuIGluIEMsIGFuZAorc28gSSBjb3VsZG4ndCBqdXN0IG1vbmtleS1wYXRjaCBvdXQgdGhlIHN0YXRpYyBgZGF0ZS50b2RheWAgbWV0aG9kLgorCitJIGZvdW5kIGEgc2ltcGxlIHdheSBvZiBkb2luZyB0aGlzIHRoYXQgaW52b2x2ZWQgZWZmZWN0aXZlbHkgd3JhcHBpbmcgdGhlIGRhdGUKK2NsYXNzIHdpdGggYSBtb2NrLCBidXQgcGFzc2luZyB0aHJvdWdoIGNhbGxzIHRvIHRoZSBjb25zdHJ1Y3RvciB0byB0aGUgcmVhbAorY2xhc3MgKGFuZCByZXR1cm5pbmcgcmVhbCBpbnN0YW5jZXMpLgorCitUaGUgOmZ1bmM6YHBhdGNoIGRlY29yYXRvciA8cGF0Y2g+YCBpcyB1c2VkIGhlcmUgdG8KK21vY2sgb3V0IHRoZSBgZGF0ZWAgY2xhc3MgaW4gdGhlIG1vZHVsZSB1bmRlciB0ZXN0LiBUaGUgOmF0dHI6YHNpZGVfZWZmZWN0YAorYXR0cmlidXRlIG9uIHRoZSBtb2NrIGRhdGUgY2xhc3MgaXMgdGhlbiBzZXQgdG8gYSBsYW1iZGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zCithIHJlYWwgZGF0ZS4gV2hlbiB0aGUgbW9jayBkYXRlIGNsYXNzIGlzIGNhbGxlZCBhIHJlYWwgZGF0ZSB3aWxsIGJlCitjb25zdHJ1Y3RlZCBhbmQgcmV0dXJuZWQgYnkgYHNpZGVfZWZmZWN0YC4KKworICAgID4+PiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRlCisgICAgPj4+IHdpdGggcGF0Y2goJ215bW9kdWxlLmRhdGUnKSBhcyBtb2NrX2RhdGU6CisgICAgLi4uICAgICBtb2NrX2RhdGUudG9kYXkucmV0dXJuX3ZhbHVlID0gZGF0ZSgyMDEwLCAxMCwgOCkKKyAgICAuLi4gICAgIG1vY2tfZGF0ZS5zaWRlX2VmZmVjdCA9IGxhbWJkYSAqYXJncywgKiprdzogZGF0ZSgqYXJncywgKiprdykKKyAgICAuLi4KKyAgICAuLi4gICAgIGFzc2VydCBteW1vZHVsZS5kYXRlLnRvZGF5KCkgPT0gZGF0ZSgyMDEwLCAxMCwgOCkKKyAgICAuLi4gICAgIGFzc2VydCBteW1vZHVsZS5kYXRlKDIwMDksIDYsIDgpID09IGRhdGUoMjAwOSwgNiwgOCkKKyAgICAuLi4KKworTm90ZSB0aGF0IHdlIGRvbid0IHBhdGNoIGBkYXRldGltZS5kYXRlYCBnbG9iYWxseSwgd2UgcGF0Y2ggYGRhdGVgIGluIHRoZQorbW9kdWxlIHRoYXQgKnVzZXMqIGl0LiBTZWUgOnJlZjpgd2hlcmUgdG8gcGF0Y2ggPHdoZXJlLXRvLXBhdGNoPmAuCisKK1doZW4gYGRhdGUudG9kYXkoKWAgaXMgY2FsbGVkIGEga25vd24gZGF0ZSBpcyByZXR1cm5lZCwgYnV0IGNhbGxzIHRvIHRoZQorYGRhdGUoLi4uKWAgY29uc3RydWN0b3Igc3RpbGwgcmV0dXJuIG5vcm1hbCBkYXRlcy4gV2l0aG91dCB0aGlzIHlvdSBjYW4gZmluZAoreW91cnNlbGYgaGF2aW5nIHRvIGNhbGN1bGF0ZSBhbiBleHBlY3RlZCByZXN1bHQgdXNpbmcgZXhhY3RseSB0aGUgc2FtZQorYWxnb3JpdGhtIGFzIHRoZSBjb2RlIHVuZGVyIHRlc3QsIHdoaWNoIGlzIGEgY2xhc3NpYyB0ZXN0aW5nIGFudGktcGF0dGVybi4KKworQ2FsbHMgdG8gdGhlIGRhdGUgY29uc3RydWN0b3IgYXJlIHJlY29yZGVkIGluIHRoZSBgbW9ja19kYXRlYCBhdHRyaWJ1dGVzCisoYGNhbGxfY291bnRgIGFuZCBmcmllbmRzKSB3aGljaCBtYXkgYWxzbyBiZSB1c2VmdWwgZm9yIHlvdXIgdGVzdHMuCisKK0FuIGFsdGVybmF0aXZlIHdheSBvZiBkZWFsaW5nIHdpdGggbW9ja2luZyBkYXRlcywgb3Igb3RoZXIgYnVpbHRpbiBjbGFzc2VzLAoraXMgZGlzY3Vzc2VkIGluIGB0aGlzIGJsb2cgZW50cnkKKzxodHRwOi8vd2lsbGlhbWpvaG5iZXJ0LmNvbS8yMDExLzA3L2hvdy10by11bml0LXRlc3RpbmctaW4tZGphbmdvLXdpdGgtbW9ja2luZy1hbmQtcGF0Y2hpbmcvPmBfLgorCisKK01vY2tpbmcgYSBHZW5lcmF0b3IgTWV0aG9kCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitBIFB5dGhvbiBnZW5lcmF0b3IgaXMgYSBmdW5jdGlvbiBvciBtZXRob2QgdGhhdCB1c2VzIHRoZSBgeWllbGQgc3RhdGVtZW50Cis8aHR0cDovL2RvY3MucHl0aG9uLm9yZy9yZWZlcmVuY2Uvc2ltcGxlX3N0bXRzLmh0bWwjdGhlLXlpZWxkLXN0YXRlbWVudD5gXyB0bworcmV0dXJuIGEgc2VyaWVzIG9mIHZhbHVlcyB3aGVuIGl0ZXJhdGVkIG92ZXIgWyNdXy4KKworQSBnZW5lcmF0b3IgbWV0aG9kIC8gZnVuY3Rpb24gaXMgY2FsbGVkIHRvIHJldHVybiB0aGUgZ2VuZXJhdG9yIG9iamVjdC4gSXQgaXMKK3RoZSBnZW5lcmF0b3Igb2JqZWN0IHRoYXQgaXMgdGhlbiBpdGVyYXRlZCBvdmVyLiBUaGUgcHJvdG9jb2wgbWV0aG9kIGZvcgoraXRlcmF0aW9uIGlzIGBfX2l0ZXJfXworPGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvbGlicmFyeS9zdGR0eXBlcy5odG1sI2NvbnRhaW5lci5fX2l0ZXJfXz5gXywgc28gd2UgY2FuCittb2NrIHRoaXMgdXNpbmcgYSBgTWFnaWNNb2NrYC4KKworSGVyZSdzIGFuIGV4YW1wbGUgY2xhc3Mgd2l0aCBhbiAiaXRlciIgbWV0aG9kIGltcGxlbWVudGVkIGFzIGEgZ2VuZXJhdG9yOgorCisgICAgPj4+IGNsYXNzIEZvbyhvYmplY3QpOgorICAgIC4uLiAgICAgZGVmIGl0ZXIoc2VsZik6CisgICAgLi4uICAgICAgICAgZm9yIGkgaW4gWzEsIDIsIDNdOgorICAgIC4uLiAgICAgICAgICAgICB5aWVsZCBpCisgICAgLi4uCisgICAgPj4+IGZvbyA9IEZvbygpCisgICAgPj4+IGxpc3QoZm9vLml0ZXIoKSkKKyAgICBbMSwgMiwgM10KKworCitIb3cgd291bGQgd2UgbW9jayB0aGlzIGNsYXNzLCBhbmQgaW4gcGFydGljdWxhciBpdHMgIml0ZXIiIG1ldGhvZD8KKworVG8gY29uZmlndXJlIHRoZSB2YWx1ZXMgcmV0dXJuZWQgZnJvbSB0aGUgaXRlcmF0aW9uIChpbXBsaWNpdCBpbiB0aGUgY2FsbCB0bworYGxpc3RgKSwgd2UgbmVlZCB0byBjb25maWd1cmUgdGhlIG9iamVjdCByZXR1cm5lZCBieSB0aGUgY2FsbCB0byBgZm9vLml0ZXIoKWAuCisKKyAgICA+Pj4gbW9ja19mb28gPSBNYWdpY01vY2soKQorICAgID4+PiBtb2NrX2Zvby5pdGVyLnJldHVybl92YWx1ZSA9IGl0ZXIoWzEsIDIsIDNdKQorICAgID4+PiBsaXN0KG1vY2tfZm9vLml0ZXIoKSkKKyAgICBbMSwgMiwgM10KKworLi4gWyNdIFRoZXJlIGFyZSBhbHNvIGdlbmVyYXRvciBleHByZXNzaW9ucyBhbmQgbW9yZSBgYWR2YW5jZWQgdXNlcworICAgIDxodHRwOi8vd3d3LmRhYmVhei5jb20vY29yb3V0aW5lcy9pbmRleC5odG1sPmBfIG9mIGdlbmVyYXRvcnMsIGJ1dCB3ZSBhcmVuJ3QKKyAgICBjb25jZXJuZWQgYWJvdXQgdGhlbSBoZXJlLiBBIHZlcnkgZ29vZCBpbnRyb2R1Y3Rpb24gdG8gZ2VuZXJhdG9ycyBhbmQgaG93CisgICAgcG93ZXJmdWwgdGhleSBhcmUgaXM6IGBHZW5lcmF0b3IgVHJpY2tzIGZvciBTeXN0ZW1zIFByb2dyYW1tZXJzCisgICAgPGh0dHA6Ly93d3cuZGFiZWF6LmNvbS9nZW5lcmF0b3JzLz5gXy4KKworCitBcHBseWluZyB0aGUgc2FtZSBwYXRjaCB0byBldmVyeSB0ZXN0IG1ldGhvZAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSWYgeW91IHdhbnQgc2V2ZXJhbCBwYXRjaGVzIGluIHBsYWNlIGZvciBtdWx0aXBsZSB0ZXN0IG1ldGhvZHMgdGhlIG9idmlvdXMgd2F5CitpcyB0byBhcHBseSB0aGUgcGF0Y2ggZGVjb3JhdG9ycyB0byBldmVyeSBtZXRob2QuIFRoaXMgY2FuIGZlZWwgbGlrZSB1bm5lY2Vzc2FyeQorcmVwZXRpdGlvbi4gRm9yIFB5dGhvbiAyLjYgb3IgbW9yZSByZWNlbnQgeW91IGNhbiB1c2UgYHBhdGNoYCAoaW4gYWxsIGl0cwordmFyaW91cyBmb3JtcykgYXMgYSBjbGFzcyBkZWNvcmF0b3IuIFRoaXMgYXBwbGllcyB0aGUgcGF0Y2hlcyB0byBhbGwgdGVzdAorbWV0aG9kcyBvbiB0aGUgY2xhc3MuIEEgdGVzdCBtZXRob2QgaXMgaWRlbnRpZmllZCBieSBtZXRob2RzIHdob3NlIG5hbWVzIHN0YXJ0Cit3aXRoIGB0ZXN0YDoKKworICAgID4+PiBAcGF0Y2goJ215bW9kdWxlLlNvbWVDbGFzcycpCisgICAgLi4uIGNsYXNzIE15VGVzdChUZXN0Q2FzZSk6CisgICAgLi4uCisgICAgLi4uICAgICBkZWYgdGVzdF9vbmUoc2VsZiwgTW9ja1NvbWVDbGFzcyk6CisgICAgLi4uICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG15bW9kdWxlLlNvbWVDbGFzcyBpcyBNb2NrU29tZUNsYXNzKQorICAgIC4uLgorICAgIC4uLiAgICAgZGVmIHRlc3RfdHdvKHNlbGYsIE1vY2tTb21lQ2xhc3MpOgorICAgIC4uLiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShteW1vZHVsZS5Tb21lQ2xhc3MgaXMgTW9ja1NvbWVDbGFzcykKKyAgICAuLi4KKyAgICAuLi4gICAgIGRlZiBub3RfYV90ZXN0KHNlbGYpOgorICAgIC4uLiAgICAgICAgIHJldHVybiAnc29tZXRoaW5nJworICAgIC4uLgorICAgID4+PiBNeVRlc3QoJ3Rlc3Rfb25lJykudGVzdF9vbmUoKQorICAgID4+PiBNeVRlc3QoJ3Rlc3RfdHdvJykudGVzdF90d28oKQorICAgID4+PiBNeVRlc3QoJ3Rlc3RfdHdvJykubm90X2FfdGVzdCgpCisgICAgJ3NvbWV0aGluZycKKworQW4gYWx0ZXJuYXRpdmUgd2F5IG9mIG1hbmFnaW5nIHBhdGNoZXMgaXMgdG8gdXNlIHRoZSA6cmVmOmBzdGFydC1hbmQtc3RvcGAuCitUaGVzZSBhbGxvdyB5b3UgdG8gbW92ZSB0aGUgcGF0Y2hpbmcgaW50byB5b3VyIGBzZXRVcGAgYW5kIGB0ZWFyRG93bmAgbWV0aG9kcy4KKworICAgID4+PiBjbGFzcyBNeVRlc3QoVGVzdENhc2UpOgorICAgIC4uLiAgICAgZGVmIHNldFVwKHNlbGYpOgorICAgIC4uLiAgICAgICAgIHNlbGYucGF0Y2hlciA9IHBhdGNoKCdteW1vZHVsZS5mb28nKQorICAgIC4uLiAgICAgICAgIHNlbGYubW9ja19mb28gPSBzZWxmLnBhdGNoZXIuc3RhcnQoKQorICAgIC4uLgorICAgIC4uLiAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgIC4uLiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShteW1vZHVsZS5mb28gaXMgc2VsZi5tb2NrX2ZvbykKKyAgICAuLi4KKyAgICAuLi4gICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAuLi4gICAgICAgICBzZWxmLnBhdGNoZXIuc3RvcCgpCisgICAgLi4uCisgICAgPj4+IE15VGVzdCgndGVzdF9mb28nKS5ydW4oKQorCitJZiB5b3UgdXNlIHRoaXMgdGVjaG5pcXVlIHlvdSBtdXN0IGVuc3VyZSB0aGF0IHRoZSBwYXRjaGluZyBpcyAidW5kb25lIiBieQorY2FsbGluZyBgc3RvcGAuIFRoaXMgY2FuIGJlIGZpZGRsaWVyIHRoYW4geW91IG1pZ2h0IHRoaW5rLCBiZWNhdXNlIGlmIGFuCitleGNlcHRpb24gaXMgcmFpc2VkIGluIHRoZSBzZXRVcCB0aGVuIHRlYXJEb3duIGlzIG5vdCBjYWxsZWQuCis6bWV0aDpgdW5pdHRlc3QuVGVzdENhc2UuYWRkQ2xlYW51cGAgbWFrZXMgdGhpcyBlYXNpZXI6CisKKyAgICA+Pj4gY2xhc3MgTXlUZXN0KFRlc3RDYXNlKToKKyAgICAuLi4gICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAuLi4gICAgICAgICBwYXRjaGVyID0gcGF0Y2goJ215bW9kdWxlLmZvbycpCisgICAgLi4uICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHBhdGNoZXIuc3RvcCkKKyAgICAuLi4gICAgICAgICBzZWxmLm1vY2tfZm9vID0gcGF0Y2hlci5zdGFydCgpCisgICAgLi4uCisgICAgLi4uICAgICBkZWYgdGVzdF9mb28oc2VsZik6CisgICAgLi4uICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG15bW9kdWxlLmZvbyBpcyBzZWxmLm1vY2tfZm9vKQorICAgIC4uLgorICAgID4+PiBNeVRlc3QoJ3Rlc3RfZm9vJykucnVuKCkKKworCitNb2NraW5nIFVuYm91bmQgTWV0aG9kcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworV2hpbHN0IHdyaXRpbmcgdGVzdHMgdG9kYXkgSSBuZWVkZWQgdG8gcGF0Y2ggYW4gKnVuYm91bmQgbWV0aG9kKiAocGF0Y2hpbmcgdGhlCittZXRob2Qgb24gdGhlIGNsYXNzIHJhdGhlciB0aGFuIG9uIHRoZSBpbnN0YW5jZSkuIEkgbmVlZGVkIHNlbGYgdG8gYmUgcGFzc2VkCitpbiBhcyB0aGUgZmlyc3QgYXJndW1lbnQgYmVjYXVzZSBJIHdhbnQgdG8gbWFrZSBhc3NlcnRzIGFib3V0IHdoaWNoIG9iamVjdHMKK3dlcmUgY2FsbGluZyB0aGlzIHBhcnRpY3VsYXIgbWV0aG9kLiBUaGUgaXNzdWUgaXMgdGhhdCB5b3UgY2FuJ3QgcGF0Y2ggd2l0aCBhCittb2NrIGZvciB0aGlzLCBiZWNhdXNlIGlmIHlvdSByZXBsYWNlIGFuIHVuYm91bmQgbWV0aG9kIHdpdGggYSBtb2NrIGl0IGRvZXNuJ3QKK2JlY29tZSBhIGJvdW5kIG1ldGhvZCB3aGVuIGZldGNoZWQgZnJvbSB0aGUgaW5zdGFuY2UsIGFuZCBzbyBpdCBkb2Vzbid0IGdldAorc2VsZiBwYXNzZWQgaW4uIFRoZSB3b3JrYXJvdW5kIGlzIHRvIHBhdGNoIHRoZSB1bmJvdW5kIG1ldGhvZCB3aXRoIGEgcmVhbAorZnVuY3Rpb24gaW5zdGVhZC4gVGhlIDpmdW5jOmBwYXRjaGAgZGVjb3JhdG9yIG1ha2VzIGl0IHNvIHNpbXBsZSB0bworcGF0Y2ggb3V0IG1ldGhvZHMgd2l0aCBhIG1vY2sgdGhhdCBoYXZpbmcgdG8gY3JlYXRlIGEgcmVhbCBmdW5jdGlvbiBiZWNvbWVzIGEKK251aXNhbmNlLgorCitJZiB5b3UgcGFzcyBgYXV0b3NwZWM9VHJ1ZWAgdG8gcGF0Y2ggdGhlbiBpdCBkb2VzIHRoZSBwYXRjaGluZyB3aXRoIGEKKypyZWFsKiBmdW5jdGlvbiBvYmplY3QuIFRoaXMgZnVuY3Rpb24gb2JqZWN0IGhhcyB0aGUgc2FtZSBzaWduYXR1cmUgYXMgdGhlIG9uZQoraXQgaXMgcmVwbGFjaW5nLCBidXQgZGVsZWdhdGVzIHRvIGEgbW9jayB1bmRlciB0aGUgaG9vZC4gWW91IHN0aWxsIGdldCB5b3VyCittb2NrIGF1dG8tY3JlYXRlZCBpbiBleGFjdGx5IHRoZSBzYW1lIHdheSBhcyBiZWZvcmUuIFdoYXQgaXQgbWVhbnMgdGhvdWdoLCBpcwordGhhdCBpZiB5b3UgdXNlIGl0IHRvIHBhdGNoIG91dCBhbiB1bmJvdW5kIG1ldGhvZCBvbiBhIGNsYXNzIHRoZSBtb2NrZWQKK2Z1bmN0aW9uIHdpbGwgYmUgdHVybmVkIGludG8gYSBib3VuZCBtZXRob2QgaWYgaXQgaXMgZmV0Y2hlZCBmcm9tIGFuIGluc3RhbmNlLgorSXQgd2lsbCBoYXZlIGBzZWxmYCBwYXNzZWQgaW4gYXMgdGhlIGZpcnN0IGFyZ3VtZW50LCB3aGljaCBpcyBleGFjdGx5IHdoYXQgSQord2FudGVkOgorCisgICAgPj4+IGNsYXNzIEZvbyhvYmplY3QpOgorICAgIC4uLiAgIGRlZiBmb28oc2VsZik6CisgICAgLi4uICAgICBwYXNzCisgICAgLi4uCisgICAgPj4+IHdpdGggcGF0Y2gub2JqZWN0KEZvbywgJ2ZvbycsIGF1dG9zcGVjPVRydWUpIGFzIG1vY2tfZm9vOgorICAgIC4uLiAgIG1vY2tfZm9vLnJldHVybl92YWx1ZSA9ICdmb28nCisgICAgLi4uICAgZm9vID0gRm9vKCkKKyAgICAuLi4gICBmb28uZm9vKCkKKyAgICAuLi4KKyAgICAnZm9vJworICAgID4+PiBtb2NrX2Zvby5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aChmb28pCisKK0lmIHdlIGRvbid0IHVzZSBgYXV0b3NwZWM9VHJ1ZWAgdGhlbiB0aGUgdW5ib3VuZCBtZXRob2QgaXMgcGF0Y2hlZCBvdXQKK3dpdGggYSBNb2NrIGluc3RhbmNlIGluc3RlYWQsIGFuZCBpc24ndCBjYWxsZWQgd2l0aCBgc2VsZmAuCisKKworQ2hlY2tpbmcgbXVsdGlwbGUgY2FsbHMgd2l0aCBtb2NrCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworbW9jayBoYXMgYSBuaWNlIEFQSSBmb3IgbWFraW5nIGFzc2VydGlvbnMgYWJvdXQgaG93IHlvdXIgbW9jayBvYmplY3RzIGFyZSB1c2VkLgorCisgICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgICA+Pj4gbW9jay5mb29fYmFyLnJldHVybl92YWx1ZSA9IE5vbmUKKyAgICA+Pj4gbW9jay5mb29fYmFyKCdiYXonLCBzcGFtPSdlZ2dzJykKKyAgICA+Pj4gbW9jay5mb29fYmFyLmFzc2VydF9jYWxsZWRfd2l0aCgnYmF6Jywgc3BhbT0nZWdncycpCisKK0lmIHlvdXIgbW9jayBpcyBvbmx5IGJlaW5nIGNhbGxlZCBvbmNlIHlvdSBjYW4gdXNlIHRoZQorOm1ldGg6YGFzc2VydF9jYWxsZWRfb25jZV93aXRoYCBtZXRob2QgdGhhdCBhbHNvIGFzc2VydHMgdGhhdCB0aGUKKzphdHRyOmBjYWxsX2NvdW50YCBpcyBvbmUuCisKKyAgICA+Pj4gbW9jay5mb29fYmFyLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCdiYXonLCBzcGFtPSdlZ2dzJykKKyAgICA+Pj4gbW9jay5mb29fYmFyKCkKKyAgICA+Pj4gbW9jay5mb29fYmFyLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCdiYXonLCBzcGFtPSdlZ2dzJykKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgIC4uLgorICAgIEFzc2VydGlvbkVycm9yOiBFeHBlY3RlZCB0byBiZSBjYWxsZWQgb25jZS4gQ2FsbGVkIDIgdGltZXMuCisKK0JvdGggYGFzc2VydF9jYWxsZWRfd2l0aGAgYW5kIGBhc3NlcnRfY2FsbGVkX29uY2Vfd2l0aGAgbWFrZSBhc3NlcnRpb25zIGFib3V0Cit0aGUgKm1vc3QgcmVjZW50KiBjYWxsLiBJZiB5b3VyIG1vY2sgaXMgZ29pbmcgdG8gYmUgY2FsbGVkIHNldmVyYWwgdGltZXMsIGFuZAoreW91IHdhbnQgdG8gbWFrZSBhc3NlcnRpb25zIGFib3V0ICphbGwqIHRob3NlIGNhbGxzIHlvdSBjYW4gdXNlCis6YXR0cjpgfk1vY2suY2FsbF9hcmdzX2xpc3RgOgorCisgICAgPj4+IG1vY2sgPSBNb2NrKHJldHVybl92YWx1ZT1Ob25lKQorICAgID4+PiBtb2NrKDEsIDIsIDMpCisgICAgPj4+IG1vY2soNCwgNSwgNikKKyAgICA+Pj4gbW9jaygpCisgICAgPj4+IG1vY2suY2FsbF9hcmdzX2xpc3QKKyAgICBbY2FsbCgxLCAyLCAzKSwgY2FsbCg0LCA1LCA2KSwgY2FsbCgpXQorCitUaGUgOmRhdGE6YGNhbGxgIGhlbHBlciBtYWtlcyBpdCBlYXN5IHRvIG1ha2UgYXNzZXJ0aW9ucyBhYm91dCB0aGVzZSBjYWxscy4gWW91CitjYW4gYnVpbGQgdXAgYSBsaXN0IG9mIGV4cGVjdGVkIGNhbGxzIGFuZCBjb21wYXJlIGl0IHRvIGBjYWxsX2FyZ3NfbGlzdGAuIFRoaXMKK2xvb2tzIHJlbWFya2FibHkgc2ltaWxhciB0byB0aGUgcmVwciBvZiB0aGUgYGNhbGxfYXJnc19saXN0YDoKKworICAgID4+PiBleHBlY3RlZCA9IFtjYWxsKDEsIDIsIDMpLCBjYWxsKDQsIDUsIDYpLCBjYWxsKCldCisgICAgPj4+IG1vY2suY2FsbF9hcmdzX2xpc3QgPT0gZXhwZWN0ZWQKKyAgICBUcnVlCisKKworQ29waW5nIHdpdGggbXV0YWJsZSBhcmd1bWVudHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0Fub3RoZXIgc2l0dWF0aW9uIGlzIHJhcmUsIGJ1dCBjYW4gYml0ZSB5b3UsIGlzIHdoZW4geW91ciBtb2NrIGlzIGNhbGxlZCB3aXRoCittdXRhYmxlIGFyZ3VtZW50cy4gYGNhbGxfYXJnc2AgYW5kIGBjYWxsX2FyZ3NfbGlzdGAgc3RvcmUgKnJlZmVyZW5jZXMqIHRvIHRoZQorYXJndW1lbnRzLiBJZiB0aGUgYXJndW1lbnRzIGFyZSBtdXRhdGVkIGJ5IHRoZSBjb2RlIHVuZGVyIHRlc3QgdGhlbiB5b3UgY2FuIG5vCitsb25nZXIgbWFrZSBhc3NlcnRpb25zIGFib3V0IHdoYXQgdGhlIHZhbHVlcyB3ZXJlIHdoZW4gdGhlIG1vY2sgd2FzIGNhbGxlZC4KKworSGVyZSdzIHNvbWUgZXhhbXBsZSBjb2RlIHRoYXQgc2hvd3MgdGhlIHByb2JsZW0uIEltYWdpbmUgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMKK2RlZmluZWQgaW4gJ215bW9kdWxlJzo6CisKKyAgICBkZWYgZnJvYih2YWwpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgZ3JvYih2YWwpOgorICAgICAgICAiRmlyc3QgZnJvYiBhbmQgdGhlbiBjbGVhciB2YWwiCisgICAgICAgIGZyb2IodmFsKQorICAgICAgICB2YWwuY2xlYXIoKQorCitXaGVuIHdlIHRyeSB0byB0ZXN0IHRoYXQgYGdyb2JgIGNhbGxzIGBmcm9iYCB3aXRoIHRoZSBjb3JyZWN0IGFyZ3VtZW50IGxvb2sKK3doYXQgaGFwcGVuczoKKworICAgID4+PiB3aXRoIHBhdGNoKCdteW1vZHVsZS5mcm9iJykgYXMgbW9ja19mcm9iOgorICAgIC4uLiAgICAgdmFsID0gc2V0KFs2XSkKKyAgICAuLi4gICAgIG15bW9kdWxlLmdyb2IodmFsKQorICAgIC4uLgorICAgID4+PiB2YWwKKyAgICBzZXQoW10pCisgICAgPj4+IG1vY2tfZnJvYi5hc3NlcnRfY2FsbGVkX3dpdGgoc2V0KFs2XSkpCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAuLi4KKyAgICBBc3NlcnRpb25FcnJvcjogRXhwZWN0ZWQ6ICgoc2V0KFs2XSksKSwge30pCisgICAgQ2FsbGVkIHdpdGg6ICgoc2V0KFtdKSwpLCB7fSkKKworT25lIHBvc3NpYmlsaXR5IHdvdWxkIGJlIGZvciBtb2NrIHRvIGNvcHkgdGhlIGFyZ3VtZW50cyB5b3UgcGFzcyBpbi4gVGhpcworY291bGQgdGhlbiBjYXVzZSBwcm9ibGVtcyBpZiB5b3UgZG8gYXNzZXJ0aW9ucyB0aGF0IHJlbHkgb24gb2JqZWN0IGlkZW50aXR5Citmb3IgZXF1YWxpdHkuCisKK0hlcmUncyBvbmUgc29sdXRpb24gdGhhdCB1c2VzIHRoZSA6YXR0cjpgc2lkZV9lZmZlY3RgCitmdW5jdGlvbmFsaXR5LiBJZiB5b3UgcHJvdmlkZSBhIGBzaWRlX2VmZmVjdGAgZnVuY3Rpb24gZm9yIGEgbW9jayB0aGVuCitgc2lkZV9lZmZlY3RgIHdpbGwgYmUgY2FsbGVkIHdpdGggdGhlIHNhbWUgYXJncyBhcyB0aGUgbW9jay4gVGhpcyBnaXZlcyB1cyBhbgorb3Bwb3J0dW5pdHkgdG8gY29weSB0aGUgYXJndW1lbnRzIGFuZCBzdG9yZSB0aGVtIGZvciBsYXRlciBhc3NlcnRpb25zLiBJbiB0aGlzCitleGFtcGxlIEknbSB1c2luZyAqYW5vdGhlciogbW9jayB0byBzdG9yZSB0aGUgYXJndW1lbnRzIHNvIHRoYXQgSSBjYW4gdXNlIHRoZQorbW9jayBtZXRob2RzIGZvciBkb2luZyB0aGUgYXNzZXJ0aW9uLiBBZ2FpbiBhIGhlbHBlciBmdW5jdGlvbiBzZXRzIHRoaXMgdXAgZm9yCittZS4KKworICAgID4+PiBmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5CisgICAgPj4+IGZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgTW9jaywgcGF0Y2gsIERFRkFVTFQKKyAgICA+Pj4gZGVmIGNvcHlfY2FsbF9hcmdzKG1vY2spOgorICAgIC4uLiAgICAgbmV3X21vY2sgPSBNb2NrKCkKKyAgICAuLi4gICAgIGRlZiBzaWRlX2VmZmVjdCgqYXJncywgKiprd2FyZ3MpOgorICAgIC4uLiAgICAgICAgIGFyZ3MgPSBkZWVwY29weShhcmdzKQorICAgIC4uLiAgICAgICAgIGt3YXJncyA9IGRlZXBjb3B5KGt3YXJncykKKyAgICAuLi4gICAgICAgICBuZXdfbW9jaygqYXJncywgKiprd2FyZ3MpCisgICAgLi4uICAgICAgICAgcmV0dXJuIERFRkFVTFQKKyAgICAuLi4gICAgIG1vY2suc2lkZV9lZmZlY3QgPSBzaWRlX2VmZmVjdAorICAgIC4uLiAgICAgcmV0dXJuIG5ld19tb2NrCisgICAgLi4uCisgICAgPj4+IHdpdGggcGF0Y2goJ215bW9kdWxlLmZyb2InKSBhcyBtb2NrX2Zyb2I6CisgICAgLi4uICAgICBuZXdfbW9jayA9IGNvcHlfY2FsbF9hcmdzKG1vY2tfZnJvYikKKyAgICAuLi4gICAgIHZhbCA9IHNldChbNl0pCisgICAgLi4uICAgICBteW1vZHVsZS5ncm9iKHZhbCkKKyAgICAuLi4KKyAgICA+Pj4gbmV3X21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKHNldChbNl0pKQorICAgID4+PiBuZXdfbW9jay5jYWxsX2FyZ3MKKyAgICBjYWxsKHNldChbNl0pKQorCitgY29weV9jYWxsX2FyZ3NgIGlzIGNhbGxlZCB3aXRoIHRoZSBtb2NrIHRoYXQgd2lsbCBiZSBjYWxsZWQuIEl0IHJldHVybnMgYSBuZXcKK21vY2sgdGhhdCB3ZSBkbyB0aGUgYXNzZXJ0aW9uIG9uLiBUaGUgYHNpZGVfZWZmZWN0YCBmdW5jdGlvbiBtYWtlcyBhIGNvcHkgb2YKK3RoZSBhcmdzIGFuZCBjYWxscyBvdXIgYG5ld19tb2NrYCB3aXRoIHRoZSBjb3B5LgorCisuLiBub3RlOjoKKworICAgIElmIHlvdXIgbW9jayBpcyBvbmx5IGdvaW5nIHRvIGJlIHVzZWQgb25jZSB0aGVyZSBpcyBhbiBlYXNpZXIgd2F5IG9mCisgICAgY2hlY2tpbmcgYXJndW1lbnRzIGF0IHRoZSBwb2ludCB0aGV5IGFyZSBjYWxsZWQuIFlvdSBjYW4gc2ltcGx5IGRvIHRoZQorICAgIGNoZWNraW5nIGluc2lkZSBhIGBzaWRlX2VmZmVjdGAgZnVuY3Rpb24uCisKKyAgICAgICAgPj4+IGRlZiBzaWRlX2VmZmVjdChhcmcpOgorICAgICAgICAuLi4gICAgIGFzc2VydCBhcmcgPT0gc2V0KFs2XSkKKyAgICAgICAgLi4uCisgICAgICAgID4+PiBtb2NrID0gTW9jayhzaWRlX2VmZmVjdD1zaWRlX2VmZmVjdCkKKyAgICAgICAgPj4+IG1vY2soc2V0KFs2XSkpCisgICAgICAgID4+PiBtb2NrKHNldCgpKQorICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAuLi4KKyAgICAgICAgQXNzZXJ0aW9uRXJyb3IKKworQW4gYWx0ZXJuYXRpdmUgYXBwcm9hY2ggaXMgdG8gY3JlYXRlIGEgc3ViY2xhc3Mgb2YgYE1vY2tgIG9yIGBNYWdpY01vY2tgIHRoYXQKK2NvcGllcyAodXNpbmcgOmZ1bmM6YGNvcHkuZGVlcGNvcHlgKSB0aGUgYXJndW1lbnRzLgorSGVyZSdzIGFuIGV4YW1wbGUgaW1wbGVtZW50YXRpb246CisKKyAgICA+Pj4gZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQorICAgID4+PiBjbGFzcyBDb3B5aW5nTW9jayhNYWdpY01vY2spOgorICAgIC4uLiAgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgLi4uICAgICAgICAgYXJncyA9IGRlZXBjb3B5KGFyZ3MpCisgICAgLi4uICAgICAgICAga3dhcmdzID0gZGVlcGNvcHkoa3dhcmdzKQorICAgIC4uLiAgICAgICAgIHJldHVybiBzdXBlcihDb3B5aW5nTW9jaywgc2VsZikuX19jYWxsX18oKmFyZ3MsICoqa3dhcmdzKQorICAgIC4uLgorICAgID4+PiBjID0gQ29weWluZ01vY2socmV0dXJuX3ZhbHVlPU5vbmUpCisgICAgPj4+IGFyZyA9IHNldCgpCisgICAgPj4+IGMoYXJnKQorICAgID4+PiBhcmcuYWRkKDEpCisgICAgPj4+IGMuYXNzZXJ0X2NhbGxlZF93aXRoKHNldCgpKQorICAgID4+PiBjLmFzc2VydF9jYWxsZWRfd2l0aChhcmcpCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAuLi4KKyAgICBBc3NlcnRpb25FcnJvcjogRXhwZWN0ZWQgY2FsbDogbW9jayhzZXQoWzFdKSkKKyAgICBBY3R1YWwgY2FsbDogbW9jayhzZXQoW10pKQorICAgID4+PiBjLmZvbworICAgIDxDb3B5aW5nTW9jayBuYW1lPSdtb2NrLmZvbycgaWQ9Jy4uLic+CisKK1doZW4geW91IHN1YmNsYXNzIGBNb2NrYCBvciBgTWFnaWNNb2NrYCBhbGwgZHluYW1pY2FsbHkgY3JlYXRlZCBhdHRyaWJ1dGVzLAorYW5kIHRoZSBgcmV0dXJuX3ZhbHVlYCB3aWxsIHVzZSB5b3VyIHN1YmNsYXNzIGF1dG9tYXRpY2FsbHkuIFRoYXQgbWVhbnMgYWxsCitjaGlsZHJlbiBvZiBhIGBDb3B5aW5nTW9ja2Agd2lsbCBhbHNvIGhhdmUgdGhlIHR5cGUgYENvcHlpbmdNb2NrYC4KKworCitOZXN0aW5nIFBhdGNoZXMKKy0tLS0tLS0tLS0tLS0tLQorCitVc2luZyBwYXRjaCBhcyBhIGNvbnRleHQgbWFuYWdlciBpcyBuaWNlLCBidXQgaWYgeW91IGRvIG11bHRpcGxlIHBhdGNoZXMgeW91CitjYW4gZW5kIHVwIHdpdGggbmVzdGVkIHdpdGggc3RhdGVtZW50cyBpbmRlbnRpbmcgZnVydGhlciBhbmQgZnVydGhlciB0byB0aGUKK3JpZ2h0OgorCisgICAgPj4+IGNsYXNzIE15VGVzdChUZXN0Q2FzZSk6CisgICAgLi4uCisgICAgLi4uICAgICBkZWYgdGVzdF9mb28oc2VsZik6CisgICAgLi4uICAgICAgICAgd2l0aCBwYXRjaCgnbXltb2R1bGUuRm9vJykgYXMgbW9ja19mb286CisgICAgLi4uICAgICAgICAgICAgIHdpdGggcGF0Y2goJ215bW9kdWxlLkJhcicpIGFzIG1vY2tfYmFyOgorICAgIC4uLiAgICAgICAgICAgICAgICAgd2l0aCBwYXRjaCgnbXltb2R1bGUuU3BhbScpIGFzIG1vY2tfc3BhbToKKyAgICAuLi4gICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbXltb2R1bGUuRm9vIGlzIG1vY2tfZm9vCisgICAgLi4uICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG15bW9kdWxlLkJhciBpcyBtb2NrX2JhcgorICAgIC4uLiAgICAgICAgICAgICAgICAgICAgIGFzc2VydCBteW1vZHVsZS5TcGFtIGlzIG1vY2tfc3BhbQorICAgIC4uLgorICAgID4+PiBvcmlnaW5hbCA9IG15bW9kdWxlLkZvbworICAgID4+PiBNeVRlc3QoJ3Rlc3RfZm9vJykudGVzdF9mb28oKQorICAgID4+PiBhc3NlcnQgbXltb2R1bGUuRm9vIGlzIG9yaWdpbmFsCisKK1dpdGggdW5pdHRlc3QgYGNsZWFudXBgIGZ1bmN0aW9ucyBhbmQgdGhlIDpyZWY6YHN0YXJ0LWFuZC1zdG9wYCB3ZSBjYW4KK2FjaGlldmUgdGhlIHNhbWUgZWZmZWN0IHdpdGhvdXQgdGhlIG5lc3RlZCBpbmRlbnRhdGlvbi4gQSBzaW1wbGUgaGVscGVyCittZXRob2QsIGBjcmVhdGVfcGF0Y2hgLCBwdXRzIHRoZSBwYXRjaCBpbiBwbGFjZSBhbmQgcmV0dXJucyB0aGUgY3JlYXRlZCBtb2NrCitmb3IgdXM6CisKKyAgICA+Pj4gY2xhc3MgTXlUZXN0KFRlc3RDYXNlKToKKyAgICAuLi4KKyAgICAuLi4gICAgIGRlZiBjcmVhdGVfcGF0Y2goc2VsZiwgbmFtZSk6CisgICAgLi4uICAgICAgICAgcGF0Y2hlciA9IHBhdGNoKG5hbWUpCisgICAgLi4uICAgICAgICAgdGhpbmcgPSBwYXRjaGVyLnN0YXJ0KCkKKyAgICAuLi4gICAgICAgICBzZWxmLmFkZENsZWFudXAocGF0Y2hlci5zdG9wKQorICAgIC4uLiAgICAgICAgIHJldHVybiB0aGluZworICAgIC4uLgorICAgIC4uLiAgICAgZGVmIHRlc3RfZm9vKHNlbGYpOgorICAgIC4uLiAgICAgICAgIG1vY2tfZm9vID0gc2VsZi5jcmVhdGVfcGF0Y2goJ215bW9kdWxlLkZvbycpCisgICAgLi4uICAgICAgICAgbW9ja19iYXIgPSBzZWxmLmNyZWF0ZV9wYXRjaCgnbXltb2R1bGUuQmFyJykKKyAgICAuLi4gICAgICAgICBtb2NrX3NwYW0gPSBzZWxmLmNyZWF0ZV9wYXRjaCgnbXltb2R1bGUuU3BhbScpCisgICAgLi4uCisgICAgLi4uICAgICAgICAgYXNzZXJ0IG15bW9kdWxlLkZvbyBpcyBtb2NrX2ZvbworICAgIC4uLiAgICAgICAgIGFzc2VydCBteW1vZHVsZS5CYXIgaXMgbW9ja19iYXIKKyAgICAuLi4gICAgICAgICBhc3NlcnQgbXltb2R1bGUuU3BhbSBpcyBtb2NrX3NwYW0KKyAgICAuLi4KKyAgICA+Pj4gb3JpZ2luYWwgPSBteW1vZHVsZS5Gb28KKyAgICA+Pj4gTXlUZXN0KCd0ZXN0X2ZvbycpLnJ1bigpCisgICAgPj4+IGFzc2VydCBteW1vZHVsZS5Gb28gaXMgb3JpZ2luYWwKKworCitNb2NraW5nIGEgZGljdGlvbmFyeSB3aXRoIE1hZ2ljTW9jaworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworWW91IG1heSB3YW50IHRvIG1vY2sgYSBkaWN0aW9uYXJ5LCBvciBvdGhlciBjb250YWluZXIgb2JqZWN0LCByZWNvcmRpbmcgYWxsCithY2Nlc3MgdG8gaXQgd2hpbHN0IGhhdmluZyBpdCBzdGlsbCBiZWhhdmUgbGlrZSBhIGRpY3Rpb25hcnkuCisKK1dlIGNhbiBkbyB0aGlzIHdpdGggOmNsYXNzOmBNYWdpY01vY2tgLCB3aGljaCB3aWxsIGJlaGF2ZSBsaWtlIGEgZGljdGlvbmFyeSwKK2FuZCB1c2luZyA6ZGF0YTpgfk1vY2suc2lkZV9lZmZlY3RgIHRvIGRlbGVnYXRlIGRpY3Rpb25hcnkgYWNjZXNzIHRvIGEgcmVhbAordW5kZXJseWluZyBkaWN0aW9uYXJ5IHRoYXQgaXMgdW5kZXIgb3VyIGNvbnRyb2wuCisKK1doZW4gdGhlIGBfX2dldGl0ZW1fX2AgYW5kIGBfX3NldGl0ZW1fX2AgbWV0aG9kcyBvZiBvdXIgYE1hZ2ljTW9ja2AgYXJlIGNhbGxlZAorKG5vcm1hbCBkaWN0aW9uYXJ5IGFjY2VzcykgdGhlbiBgc2lkZV9lZmZlY3RgIGlzIGNhbGxlZCB3aXRoIHRoZSBrZXkgKGFuZCBpbgordGhlIGNhc2Ugb2YgYF9fc2V0aXRlbV9fYCB0aGUgdmFsdWUgdG9vKS4gV2UgY2FuIGFsc28gY29udHJvbCB3aGF0IGlzIHJldHVybmVkLgorCitBZnRlciB0aGUgYE1hZ2ljTW9ja2AgaGFzIGJlZW4gdXNlZCB3ZSBjYW4gdXNlIGF0dHJpYnV0ZXMgbGlrZQorOmRhdGE6YH5Nb2NrLmNhbGxfYXJnc19saXN0YCB0byBhc3NlcnQgYWJvdXQgaG93IHRoZSBkaWN0aW9uYXJ5IHdhcyB1c2VkOgorCisgICAgPj4+IG15X2RpY3QgPSB7J2EnOiAxLCAnYic6IDIsICdjJzogM30KKyAgICA+Pj4gZGVmIGdldGl0ZW0obmFtZSk6CisgICAgLi4uICAgICAgcmV0dXJuIG15X2RpY3RbbmFtZV0KKyAgICAuLi4KKyAgICA+Pj4gZGVmIHNldGl0ZW0obmFtZSwgdmFsKToKKyAgICAuLi4gICAgIG15X2RpY3RbbmFtZV0gPSB2YWwKKyAgICAuLi4KKyAgICA+Pj4gbW9jayA9IE1hZ2ljTW9jaygpCisgICAgPj4+IG1vY2suX19nZXRpdGVtX18uc2lkZV9lZmZlY3QgPSBnZXRpdGVtCisgICAgPj4+IG1vY2suX19zZXRpdGVtX18uc2lkZV9lZmZlY3QgPSBzZXRpdGVtCisKKy4uIG5vdGU6OgorCisgICAgQW4gYWx0ZXJuYXRpdmUgdG8gdXNpbmcgYE1hZ2ljTW9ja2AgaXMgdG8gdXNlIGBNb2NrYCBhbmQgKm9ubHkqIHByb3ZpZGUKKyAgICB0aGUgbWFnaWMgbWV0aG9kcyB5b3Ugc3BlY2lmaWNhbGx5IHdhbnQ6CisKKyAgICAgICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgICAgICAgPj4+IG1vY2suX19zZXRpdGVtX18gPSBNb2NrKHNpZGVfZWZmZWN0PWdldGl0ZW0pCisgICAgICAgID4+PiBtb2NrLl9fZ2V0aXRlbV9fID0gTW9jayhzaWRlX2VmZmVjdD1zZXRpdGVtKQorCisgICAgQSAqdGhpcmQqIG9wdGlvbiBpcyB0byB1c2UgYE1hZ2ljTW9ja2AgYnV0IHBhc3NpbmcgaW4gYGRpY3RgIGFzIHRoZSBgc3BlY2AKKyAgICAob3IgYHNwZWNfc2V0YCkgYXJndW1lbnQgc28gdGhhdCB0aGUgYE1hZ2ljTW9ja2AgY3JlYXRlZCBvbmx5IGhhcworICAgIGRpY3Rpb25hcnkgbWFnaWMgbWV0aG9kcyBhdmFpbGFibGU6CisKKyAgICAgICAgPj4+IG1vY2sgPSBNYWdpY01vY2soc3BlY19zZXQ9ZGljdCkKKyAgICAgICAgPj4+IG1vY2suX19nZXRpdGVtX18uc2lkZV9lZmZlY3QgPSBnZXRpdGVtCisgICAgICAgID4+PiBtb2NrLl9fc2V0aXRlbV9fLnNpZGVfZWZmZWN0ID0gc2V0aXRlbQorCitXaXRoIHRoZXNlIHNpZGUgZWZmZWN0IGZ1bmN0aW9ucyBpbiBwbGFjZSwgdGhlIGBtb2NrYCB3aWxsIGJlaGF2ZSBsaWtlIGEgbm9ybWFsCitkaWN0aW9uYXJ5IGJ1dCByZWNvcmRpbmcgdGhlIGFjY2Vzcy4gSXQgZXZlbiByYWlzZXMgYSBgS2V5RXJyb3JgIGlmIHlvdSB0cnkKK3RvIGFjY2VzcyBhIGtleSB0aGF0IGRvZXNuJ3QgZXhpc3QuCisKKyAgICA+Pj4gbW9ja1snYSddCisgICAgMQorICAgID4+PiBtb2NrWydjJ10KKyAgICAzCisgICAgPj4+IG1vY2tbJ2QnXQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgLi4uCisgICAgS2V5RXJyb3I6ICdkJworICAgID4+PiBtb2NrWydiJ10gPSAnZmlzaCcKKyAgICA+Pj4gbW9ja1snZCddID0gJ2VnZ3MnCisgICAgPj4+IG1vY2tbJ2InXQorICAgICdmaXNoJworICAgID4+PiBtb2NrWydkJ10KKyAgICAnZWdncycKKworQWZ0ZXIgaXQgaGFzIGJlZW4gdXNlZCB5b3UgY2FuIG1ha2UgYXNzZXJ0aW9ucyBhYm91dCB0aGUgYWNjZXNzIHVzaW5nIHRoZSBub3JtYWwKK21vY2sgbWV0aG9kcyBhbmQgYXR0cmlidXRlczoKKworICAgID4+PiBtb2NrLl9fZ2V0aXRlbV9fLmNhbGxfYXJnc19saXN0CisgICAgW2NhbGwoJ2EnKSwgY2FsbCgnYycpLCBjYWxsKCdkJyksIGNhbGwoJ2InKSwgY2FsbCgnZCcpXQorICAgID4+PiBtb2NrLl9fc2V0aXRlbV9fLmNhbGxfYXJnc19saXN0CisgICAgW2NhbGwoJ2InLCAnZmlzaCcpLCBjYWxsKCdkJywgJ2VnZ3MnKV0KKyAgICA+Pj4gbXlfZGljdAorICAgIHsnYSc6IDEsICdjJzogMywgJ2InOiAnZmlzaCcsICdkJzogJ2VnZ3MnfQorCisKK01vY2sgc3ViY2xhc3NlcyBhbmQgdGhlaXIgYXR0cmlidXRlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJlIGFyZSB2YXJpb3VzIHJlYXNvbnMgd2h5IHlvdSBtaWdodCB3YW50IHRvIHN1YmNsYXNzIGBNb2NrYC4gT25lIHJlYXNvbgorbWlnaHQgYmUgdG8gYWRkIGhlbHBlciBtZXRob2RzLiBIZXJlJ3MgYSBzaWxseSBleGFtcGxlOgorCisgICAgPj4+IGNsYXNzIE15TW9jayhNYWdpY01vY2spOgorICAgIC4uLiAgICAgZGVmIGhhc19iZWVuX2NhbGxlZChzZWxmKToKKyAgICAuLi4gICAgICAgICByZXR1cm4gc2VsZi5jYWxsZWQKKyAgICAuLi4KKyAgICA+Pj4gbXltb2NrID0gTXlNb2NrKHJldHVybl92YWx1ZT1Ob25lKQorICAgID4+PiBteW1vY2sKKyAgICA8TXlNb2NrIGlkPScuLi4nPgorICAgID4+PiBteW1vY2suaGFzX2JlZW5fY2FsbGVkKCkKKyAgICBGYWxzZQorICAgID4+PiBteW1vY2soKQorICAgID4+PiBteW1vY2suaGFzX2JlZW5fY2FsbGVkKCkKKyAgICBUcnVlCisKK1RoZSBzdGFuZGFyZCBiZWhhdmlvdXIgZm9yIGBNb2NrYCBpbnN0YW5jZXMgaXMgdGhhdCBhdHRyaWJ1dGVzIGFuZCB0aGUgcmV0dXJuCit2YWx1ZSBtb2NrcyBhcmUgb2YgdGhlIHNhbWUgdHlwZSBhcyB0aGUgbW9jayB0aGV5IGFyZSBhY2Nlc3NlZCBvbi4gVGhpcyBlbnN1cmVzCit0aGF0IGBNb2NrYCBhdHRyaWJ1dGVzIGFyZSBgTW9ja3NgIGFuZCBgTWFnaWNNb2NrYCBhdHRyaWJ1dGVzIGFyZSBgTWFnaWNNb2Nrc2AKK1sjXV8uIFNvIGlmIHlvdSdyZSBzdWJjbGFzc2luZyB0byBhZGQgaGVscGVyIG1ldGhvZHMgdGhlbiB0aGV5J2xsIGFsc28gYmUKK2F2YWlsYWJsZSBvbiB0aGUgYXR0cmlidXRlcyBhbmQgcmV0dXJuIHZhbHVlIG1vY2sgb2YgaW5zdGFuY2VzIG9mIHlvdXIKK3N1YmNsYXNzLgorCisgICAgPj4+IG15bW9jay5mb28KKyAgICA8TXlNb2NrIG5hbWU9J21vY2suZm9vJyBpZD0nLi4uJz4KKyAgICA+Pj4gbXltb2NrLmZvby5oYXNfYmVlbl9jYWxsZWQoKQorICAgIEZhbHNlCisgICAgPj4+IG15bW9jay5mb28oKQorICAgIDxNeU1vY2sgbmFtZT0nbW9jay5mb28oKScgaWQ9Jy4uLic+CisgICAgPj4+IG15bW9jay5mb28uaGFzX2JlZW5fY2FsbGVkKCkKKyAgICBUcnVlCisKK1NvbWV0aW1lcyB0aGlzIGlzIGluY29udmVuaWVudC4gRm9yIGV4YW1wbGUsIGBvbmUgdXNlcgorPGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvbW9jay9pc3N1ZXMvZGV0YWlsP2lkPTEwNT5gXyBpcyBzdWJjbGFzc2luZyBtb2NrIHRvCitjcmVhdGVkIGEgYFR3aXN0ZWQgYWRhcHRvcgorPGh0dHA6Ly90d2lzdGVkbWF0cml4LmNvbS9kb2N1bWVudHMvMTEuMC4wL2FwaS90d2lzdGVkLnB5dGhvbi5jb21wb25lbnRzLmh0bWw+YF8uCitIYXZpbmcgdGhpcyBhcHBsaWVkIHRvIGF0dHJpYnV0ZXMgdG9vIGFjdHVhbGx5IGNhdXNlcyBlcnJvcnMuCisKK2BNb2NrYCAoaW4gYWxsIGl0cyBmbGF2b3VycykgdXNlcyBhIG1ldGhvZCBjYWxsZWQgYF9nZXRfY2hpbGRfbW9ja2AgdG8gY3JlYXRlCit0aGVzZSAic3ViLW1vY2tzIiBmb3IgYXR0cmlidXRlcyBhbmQgcmV0dXJuIHZhbHVlcy4gWW91IGNhbiBwcmV2ZW50IHlvdXIKK3N1YmNsYXNzIGJlaW5nIHVzZWQgZm9yIGF0dHJpYnV0ZXMgYnkgb3ZlcnJpZGluZyB0aGlzIG1ldGhvZC4gVGhlIHNpZ25hdHVyZSBpcwordGhhdCBpdCB0YWtlcyBhcmJpdHJhcnkga2V5d29yZCBhcmd1bWVudHMgKGAqKmt3YXJnc2ApIHdoaWNoIGFyZSB0aGVuIHBhc3NlZAorb250byB0aGUgbW9jayBjb25zdHJ1Y3RvcjoKKworICAgID4+PiBjbGFzcyBTdWJjbGFzcyhNYWdpY01vY2spOgorICAgIC4uLiAgICAgZGVmIF9nZXRfY2hpbGRfbW9jayhzZWxmLCAqKmt3YXJncyk6CisgICAgLi4uICAgICAgICAgcmV0dXJuIE1hZ2ljTW9jaygqKmt3YXJncykKKyAgICAuLi4KKyAgICA+Pj4gbXltb2NrID0gU3ViY2xhc3MoKQorICAgID4+PiBteW1vY2suZm9vCisgICAgPE1hZ2ljTW9jayBuYW1lPSdtb2NrLmZvbycgaWQ9Jy4uLic+CisgICAgPj4+IGFzc2VydCBpc2luc3RhbmNlKG15bW9jaywgU3ViY2xhc3MpCisgICAgPj4+IGFzc2VydCBub3QgaXNpbnN0YW5jZShteW1vY2suZm9vLCBTdWJjbGFzcykKKyAgICA+Pj4gYXNzZXJ0IG5vdCBpc2luc3RhbmNlKG15bW9jaygpLCBTdWJjbGFzcykKKworLi4gWyNdIEFuIGV4Y2VwdGlvbiB0byB0aGlzIHJ1bGUgYXJlIHRoZSBub24tY2FsbGFibGUgbW9ja3MuIEF0dHJpYnV0ZXMgdXNlIHRoZQorICAgIGNhbGxhYmxlIHZhcmlhbnQgYmVjYXVzZSBvdGhlcndpc2Ugbm9uLWNhbGxhYmxlIG1vY2tzIGNvdWxkbid0IGhhdmUgY2FsbGFibGUKKyAgICBtZXRob2RzLgorCisKK01vY2tpbmcgaW1wb3J0cyB3aXRoIHBhdGNoLmRpY3QKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworT25lIHNpdHVhdGlvbiB3aGVyZSBtb2NraW5nIGNhbiBiZSBoYXJkIGlzIHdoZXJlIHlvdSBoYXZlIGEgbG9jYWwgaW1wb3J0IGluc2lkZQorYSBmdW5jdGlvbi4gVGhlc2UgYXJlIGhhcmRlciB0byBtb2NrIGJlY2F1c2UgdGhleSBhcmVuJ3QgdXNpbmcgYW4gb2JqZWN0IGZyb20KK3RoZSBtb2R1bGUgbmFtZXNwYWNlIHRoYXQgd2UgY2FuIHBhdGNoIG91dC4KKworR2VuZXJhbGx5IGxvY2FsIGltcG9ydHMgYXJlIHRvIGJlIGF2b2lkZWQuIFRoZXkgYXJlIHNvbWV0aW1lcyBkb25lIHRvIHByZXZlbnQKK2NpcmN1bGFyIGRlcGVuZGVuY2llcywgZm9yIHdoaWNoIHRoZXJlIGlzICp1c3VhbGx5KiBhIG11Y2ggYmV0dGVyIHdheSB0byBzb2x2ZQordGhlIHByb2JsZW0gKHJlZmFjdG9yIHRoZSBjb2RlKSBvciB0byBwcmV2ZW50ICJ1cCBmcm9udCBjb3N0cyIgYnkgZGVsYXlpbmcgdGhlCitpbXBvcnQuIFRoaXMgY2FuIGFsc28gYmUgc29sdmVkIGluIGJldHRlciB3YXlzIHRoYW4gYW4gdW5jb25kaXRpb25hbCBsb2NhbAoraW1wb3J0IChzdG9yZSB0aGUgbW9kdWxlIGFzIGEgY2xhc3Mgb3IgbW9kdWxlIGF0dHJpYnV0ZSBhbmQgb25seSBkbyB0aGUgaW1wb3J0CitvbiBmaXJzdCB1c2UpLgorCitUaGF0IGFzaWRlIHRoZXJlIGlzIGEgd2F5IHRvIHVzZSBgbW9ja2AgdG8gYWZmZWN0IHRoZSByZXN1bHRzIG9mIGFuIGltcG9ydC4KK0ltcG9ydGluZyBmZXRjaGVzIGFuICpvYmplY3QqIGZyb20gdGhlIGBzeXMubW9kdWxlc2AgZGljdGlvbmFyeS4gTm90ZSB0aGF0IGl0CitmZXRjaGVzIGFuICpvYmplY3QqLCB3aGljaCBuZWVkIG5vdCBiZSBhIG1vZHVsZS4gSW1wb3J0aW5nIGEgbW9kdWxlIGZvciB0aGUKK2ZpcnN0IHRpbWUgcmVzdWx0cyBpbiBhIG1vZHVsZSBvYmplY3QgYmVpbmcgcHV0IGluIGBzeXMubW9kdWxlc2AsIHNvIHVzdWFsbHkKK3doZW4geW91IGltcG9ydCBzb21ldGhpbmcgeW91IGdldCBhIG1vZHVsZSBiYWNrLiBUaGlzIG5lZWQgbm90IGJlIHRoZSBjYXNlCitob3dldmVyLgorCitUaGlzIG1lYW5zIHlvdSBjYW4gdXNlIDpmdW5jOmBwYXRjaC5kaWN0YCB0byAqdGVtcG9yYXJpbHkqIHB1dCBhIG1vY2sgaW4gcGxhY2UKK2luIGBzeXMubW9kdWxlc2AuIEFueSBpbXBvcnRzIHdoaWxzdCB0aGlzIHBhdGNoIGlzIGFjdGl2ZSB3aWxsIGZldGNoIHRoZSBtb2NrLgorV2hlbiB0aGUgcGF0Y2ggaXMgY29tcGxldGUgKHRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24gZXhpdHMsIHRoZSB3aXRoIHN0YXRlbWVudAorYm9keSBpcyBjb21wbGV0ZSBvciBgcGF0Y2hlci5zdG9wKClgIGlzIGNhbGxlZCkgdGhlbiB3aGF0ZXZlciB3YXMgdGhlcmUKK3ByZXZpb3VzbHkgd2lsbCBiZSByZXN0b3JlZCBzYWZlbHkuCisKK0hlcmUncyBhbiBleGFtcGxlIHRoYXQgbW9ja3Mgb3V0IHRoZSAnZm9vYmxlJyBtb2R1bGUuCisKKyAgICA+Pj4gbW9jayA9IE1vY2soKQorICAgID4+PiB3aXRoIHBhdGNoLmRpY3QoJ3N5cy5tb2R1bGVzJywgeydmb29ibGUnOiBtb2NrfSk6CisgICAgLi4uICAgIGltcG9ydCBmb29ibGUKKyAgICAuLi4gICAgZm9vYmxlLmJsb2IoKQorICAgIC4uLgorICAgIDxNb2NrIG5hbWU9J21vY2suYmxvYigpJyBpZD0nLi4uJz4KKyAgICA+Pj4gYXNzZXJ0ICdmb29ibGUnIG5vdCBpbiBzeXMubW9kdWxlcworICAgID4+PiBtb2NrLmJsb2IuYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoKQorCitBcyB5b3UgY2FuIHNlZSB0aGUgYGltcG9ydCBmb29ibGVgIHN1Y2NlZWRzLCBidXQgb24gZXhpdCB0aGVyZSBpcyBubyAnZm9vYmxlJworbGVmdCBpbiBgc3lzLm1vZHVsZXNgLgorCitUaGlzIGFsc28gd29ya3MgZm9yIHRoZSBgZnJvbSBtb2R1bGUgaW1wb3J0IG5hbWVgIGZvcm06CisKKyAgICA+Pj4gbW9jayA9IE1vY2soKQorICAgID4+PiB3aXRoIHBhdGNoLmRpY3QoJ3N5cy5tb2R1bGVzJywgeydmb29ibGUnOiBtb2NrfSk6CisgICAgLi4uICAgIGZyb20gZm9vYmxlIGltcG9ydCBibG9iCisgICAgLi4uICAgIGJsb2IuYmxpcCgpCisgICAgLi4uCisgICAgPE1vY2sgbmFtZT0nbW9jay5ibG9iLmJsaXAoKScgaWQ9Jy4uLic+CisgICAgPj4+IG1vY2suYmxvYi5ibGlwLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKworV2l0aCBzbGlnaHRseSBtb3JlIHdvcmsgeW91IGNhbiBhbHNvIG1vY2sgcGFja2FnZSBpbXBvcnRzOgorCisgICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgICA+Pj4gbW9kdWxlcyA9IHsncGFja2FnZSc6IG1vY2ssICdwYWNrYWdlLm1vZHVsZSc6IG1vY2subW9kdWxlfQorICAgID4+PiB3aXRoIHBhdGNoLmRpY3QoJ3N5cy5tb2R1bGVzJywgbW9kdWxlcyk6CisgICAgLi4uICAgIGZyb20gcGFja2FnZS5tb2R1bGUgaW1wb3J0IGZvb2JsZQorICAgIC4uLiAgICBmb29ibGUoKQorICAgIC4uLgorICAgIDxNb2NrIG5hbWU9J21vY2subW9kdWxlLmZvb2JsZSgpJyBpZD0nLi4uJz4KKyAgICA+Pj4gbW9jay5tb2R1bGUuZm9vYmxlLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKworCitUcmFja2luZyBvcmRlciBvZiBjYWxscyBhbmQgbGVzcyB2ZXJib3NlIGNhbGwgYXNzZXJ0aW9ucworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIDpjbGFzczpgTW9ja2AgY2xhc3MgYWxsb3dzIHlvdSB0byB0cmFjayB0aGUgKm9yZGVyKiBvZiBtZXRob2QgY2FsbHMgb24KK3lvdXIgbW9jayBvYmplY3RzIHRocm91Z2ggdGhlIDphdHRyOmB+TW9jay5tZXRob2RfY2FsbHNgIGF0dHJpYnV0ZS4gVGhpcworZG9lc24ndCBhbGxvdyB5b3UgdG8gdHJhY2sgdGhlIG9yZGVyIG9mIGNhbGxzIGJldHdlZW4gc2VwYXJhdGUgbW9jayBvYmplY3RzLAoraG93ZXZlciB3ZSBjYW4gdXNlIDphdHRyOmB+TW9jay5tb2NrX2NhbGxzYCB0byBhY2hpZXZlIHRoZSBzYW1lIGVmZmVjdC4KKworQmVjYXVzZSBtb2NrcyB0cmFjayBjYWxscyB0byBjaGlsZCBtb2NrcyBpbiBgbW9ja19jYWxsc2AsIGFuZCBhY2Nlc3NpbmcgYW4KK2FyYml0cmFyeSBhdHRyaWJ1dGUgb2YgYSBtb2NrIGNyZWF0ZXMgYSBjaGlsZCBtb2NrLCB3ZSBjYW4gY3JlYXRlIG91ciBzZXBhcmF0ZQorbW9ja3MgZnJvbSBhIHBhcmVudCBvbmUuIENhbGxzIHRvIHRob3NlIGNoaWxkIG1vY2sgd2lsbCB0aGVuIGFsbCBiZSByZWNvcmRlZCwKK2luIG9yZGVyLCBpbiB0aGUgYG1vY2tfY2FsbHNgIG9mIHRoZSBwYXJlbnQ6CisKKyAgICA+Pj4gbWFuYWdlciA9IE1vY2soKQorICAgID4+PiBtb2NrX2ZvbyA9IG1hbmFnZXIuZm9vCisgICAgPj4+IG1vY2tfYmFyID0gbWFuYWdlci5iYXIKKworICAgID4+PiBtb2NrX2Zvby5zb21ldGhpbmcoKQorICAgIDxNb2NrIG5hbWU9J21vY2suZm9vLnNvbWV0aGluZygpJyBpZD0nLi4uJz4KKyAgICA+Pj4gbW9ja19iYXIub3RoZXIudGhpbmcoKQorICAgIDxNb2NrIG5hbWU9J21vY2suYmFyLm90aGVyLnRoaW5nKCknIGlkPScuLi4nPgorCisgICAgPj4+IG1hbmFnZXIubW9ja19jYWxscworICAgIFtjYWxsLmZvby5zb21ldGhpbmcoKSwgY2FsbC5iYXIub3RoZXIudGhpbmcoKV0KKworV2UgY2FuIHRoZW4gYXNzZXJ0IGFib3V0IHRoZSBjYWxscywgaW5jbHVkaW5nIHRoZSBvcmRlciwgYnkgY29tcGFyaW5nIHdpdGgKK3RoZSBgbW9ja19jYWxsc2AgYXR0cmlidXRlIG9uIHRoZSBtYW5hZ2VyIG1vY2s6CisKKyAgICA+Pj4gZXhwZWN0ZWRfY2FsbHMgPSBbY2FsbC5mb28uc29tZXRoaW5nKCksIGNhbGwuYmFyLm90aGVyLnRoaW5nKCldCisgICAgPj4+IG1hbmFnZXIubW9ja19jYWxscyA9PSBleHBlY3RlZF9jYWxscworICAgIFRydWUKKworSWYgYHBhdGNoYCBpcyBjcmVhdGluZywgYW5kIHB1dHRpbmcgaW4gcGxhY2UsIHlvdXIgbW9ja3MgdGhlbiB5b3UgY2FuIGF0dGFjaAordGhlbSB0byBhIG1hbmFnZXIgbW9jayB1c2luZyB0aGUgOm1ldGg6YH5Nb2NrLmF0dGFjaF9tb2NrYCBtZXRob2QuIEFmdGVyCithdHRhY2hpbmcgY2FsbHMgd2lsbCBiZSByZWNvcmRlZCBpbiBgbW9ja19jYWxsc2Agb2YgdGhlIG1hbmFnZXIuCisKKyAgICA+Pj4gbWFuYWdlciA9IE1hZ2ljTW9jaygpCisgICAgPj4+IHdpdGggcGF0Y2goJ215bW9kdWxlLkNsYXNzMScpIGFzIE1vY2tDbGFzczE6CisgICAgLi4uICAgICB3aXRoIHBhdGNoKCdteW1vZHVsZS5DbGFzczInKSBhcyBNb2NrQ2xhc3MyOgorICAgIC4uLiAgICAgICAgIG1hbmFnZXIuYXR0YWNoX21vY2soTW9ja0NsYXNzMSwgJ01vY2tDbGFzczEnKQorICAgIC4uLiAgICAgICAgIG1hbmFnZXIuYXR0YWNoX21vY2soTW9ja0NsYXNzMiwgJ01vY2tDbGFzczInKQorICAgIC4uLiAgICAgICAgIE1vY2tDbGFzczEoKS5mb28oKQorICAgIC4uLiAgICAgICAgIE1vY2tDbGFzczIoKS5iYXIoKQorICAgIC4uLgorICAgIDxNYWdpY01vY2sgbmFtZT0nbW9jay5Nb2NrQ2xhc3MxKCkuZm9vKCknIGlkPScuLi4nPgorICAgIDxNYWdpY01vY2sgbmFtZT0nbW9jay5Nb2NrQ2xhc3MyKCkuYmFyKCknIGlkPScuLi4nPgorICAgID4+PiBtYW5hZ2VyLm1vY2tfY2FsbHMKKyAgICBbY2FsbC5Nb2NrQ2xhc3MxKCksCisgICAgIGNhbGwuTW9ja0NsYXNzMSgpLmZvbygpLAorICAgICBjYWxsLk1vY2tDbGFzczIoKSwKKyAgICAgY2FsbC5Nb2NrQ2xhc3MyKCkuYmFyKCldCisKK0lmIG1hbnkgY2FsbHMgaGF2ZSBiZWVuIG1hZGUsIGJ1dCB5b3UncmUgb25seSBpbnRlcmVzdGVkIGluIGEgcGFydGljdWxhcgorc2VxdWVuY2Ugb2YgdGhlbSB0aGVuIGFuIGFsdGVybmF0aXZlIGlzIHRvIHVzZSB0aGUKKzptZXRoOmB+TW9jay5hc3NlcnRfaGFzX2NhbGxzYCBtZXRob2QuIFRoaXMgdGFrZXMgYSBsaXN0IG9mIGNhbGxzIChjb25zdHJ1Y3RlZAord2l0aCB0aGUgOmRhdGE6YGNhbGxgIG9iamVjdCkuIElmIHRoYXQgc2VxdWVuY2Ugb2YgY2FsbHMgYXJlIGluCis6YXR0cjpgfk1vY2subW9ja19jYWxsc2AgdGhlbiB0aGUgYXNzZXJ0IHN1Y2NlZWRzLgorCisgICAgPj4+IG0gPSBNYWdpY01vY2soKQorICAgID4+PiBtKCkuZm9vKCkuYmFyKCkuYmF6KCkKKyAgICA8TWFnaWNNb2NrIG5hbWU9J21vY2soKS5mb28oKS5iYXIoKS5iYXooKScgaWQ9Jy4uLic+CisgICAgPj4+IG0ub25lKCkudHdvKCkudGhyZWUoKQorICAgIDxNYWdpY01vY2sgbmFtZT0nbW9jay5vbmUoKS50d28oKS50aHJlZSgpJyBpZD0nLi4uJz4KKyAgICA+Pj4gY2FsbHMgPSBjYWxsLm9uZSgpLnR3bygpLnRocmVlKCkuY2FsbF9saXN0KCkKKyAgICA+Pj4gbS5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzKQorCitFdmVuIHRob3VnaCB0aGUgY2hhaW5lZCBjYWxsIGBtLm9uZSgpLnR3bygpLnRocmVlKClgIGFyZW4ndCB0aGUgb25seSBjYWxscyB0aGF0CitoYXZlIGJlZW4gbWFkZSB0byB0aGUgbW9jaywgdGhlIGFzc2VydCBzdGlsbCBzdWNjZWVkcy4KKworU29tZXRpbWVzIGEgbW9jayBtYXkgaGF2ZSBzZXZlcmFsIGNhbGxzIG1hZGUgdG8gaXQsIGFuZCB5b3UgYXJlIG9ubHkgaW50ZXJlc3RlZAoraW4gYXNzZXJ0aW5nIGFib3V0ICpzb21lKiBvZiB0aG9zZSBjYWxscy4gWW91IG1heSBub3QgZXZlbiBjYXJlIGFib3V0IHRoZQorb3JkZXIuIEluIHRoaXMgY2FzZSB5b3UgY2FuIHBhc3MgYGFueV9vcmRlcj1UcnVlYCB0byBgYXNzZXJ0X2hhc19jYWxsc2A6CisKKyAgICA+Pj4gbSA9IE1hZ2ljTW9jaygpCisgICAgPj4+IG0oMSksIG0udHdvKDIsIDMpLCBtLnNldmVuKDcpLCBtLmZpZnR5KCc1MCcpCisgICAgKC4uLikKKyAgICA+Pj4gY2FsbHMgPSBbY2FsbC5maWZ0eSgnNTAnKSwgY2FsbCgxKSwgY2FsbC5zZXZlbig3KV0KKyAgICA+Pj4gbS5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzLCBhbnlfb3JkZXI9VHJ1ZSkKKworCitNb3JlIGNvbXBsZXggYXJndW1lbnQgbWF0Y2hpbmcKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitVc2luZyB0aGUgc2FtZSBiYXNpYyBjb25jZXB0IGFzIDpkYXRhOmBBTllgIHdlIGNhbiBpbXBsZW1lbnQgbWF0Y2hlcnMgdG8gZG8gbW9yZQorY29tcGxleCBhc3NlcnRpb25zIG9uIG9iamVjdHMgdXNlZCBhcyBhcmd1bWVudHMgdG8gbW9ja3MuCisKK1N1cHBvc2Ugd2UgZXhwZWN0IHNvbWUgb2JqZWN0IHRvIGJlIHBhc3NlZCB0byBhIG1vY2sgdGhhdCBieSBkZWZhdWx0Citjb21wYXJlcyBlcXVhbCBiYXNlZCBvbiBvYmplY3QgaWRlbnRpdHkgKHdoaWNoIGlzIHRoZSBQeXRob24gZGVmYXVsdCBmb3IgdXNlcgorZGVmaW5lZCBjbGFzc2VzKS4gVG8gdXNlIDptZXRoOmB+TW9jay5hc3NlcnRfY2FsbGVkX3dpdGhgIHdlIHdvdWxkIG5lZWQgdG8gcGFzcworaW4gdGhlIGV4YWN0IHNhbWUgb2JqZWN0LiBJZiB3ZSBhcmUgb25seSBpbnRlcmVzdGVkIGluIHNvbWUgb2YgdGhlIGF0dHJpYnV0ZXMKK29mIHRoaXMgb2JqZWN0IHRoZW4gd2UgY2FuIGNyZWF0ZSBhIG1hdGNoZXIgdGhhdCB3aWxsIGNoZWNrIHRoZXNlIGF0dHJpYnV0ZXMKK2ZvciB1cy4KKworWW91IGNhbiBzZWUgaW4gdGhpcyBleGFtcGxlIGhvdyBhICdzdGFuZGFyZCcgY2FsbCB0byBgYXNzZXJ0X2NhbGxlZF93aXRoYCBpc24ndAorc3VmZmljaWVudDoKKworICAgID4+PiBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhLCBiKToKKyAgICAuLi4gICAgICAgICBzZWxmLmEsIHNlbGYuYiA9IGEsIGIKKyAgICAuLi4KKyAgICA+Pj4gbW9jayA9IE1vY2socmV0dXJuX3ZhbHVlPU5vbmUpCisgICAgPj4+IG1vY2soRm9vKDEsIDIpKQorICAgID4+PiBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aChGb28oMSwgMikpCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAuLi4KKyAgICBBc3NlcnRpb25FcnJvcjogRXhwZWN0ZWQ6IGNhbGwoPF9fbWFpbl9fLkZvbyBvYmplY3QgYXQgMHguLi4+KQorICAgIEFjdHVhbCBjYWxsOiBjYWxsKDxfX21haW5fXy5Gb28gb2JqZWN0IGF0IDB4Li4uPikKKworQSBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciBvdXIgYEZvb2AgY2xhc3MgbWlnaHQgbG9vayBzb21ldGhpbmcgbGlrZSB0aGlzOgorCisgICAgPj4+IGRlZiBjb21wYXJlKHNlbGYsIG90aGVyKToKKyAgICAuLi4gICAgIGlmIG5vdCB0eXBlKHNlbGYpID09IHR5cGUob3RoZXIpOgorICAgIC4uLiAgICAgICAgIHJldHVybiBGYWxzZQorICAgIC4uLiAgICAgaWYgc2VsZi5hICE9IG90aGVyLmE6CisgICAgLi4uICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgLi4uICAgICBpZiBzZWxmLmIgIT0gb3RoZXIuYjoKKyAgICAuLi4gICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAuLi4gICAgIHJldHVybiBUcnVlCisgICAgLi4uCisKK0FuZCBhIG1hdGNoZXIgb2JqZWN0IHRoYXQgY2FuIHVzZSBjb21wYXJpc29uIGZ1bmN0aW9ucyBsaWtlIHRoaXMgZm9yIGl0cworZXF1YWxpdHkgb3BlcmF0aW9uIHdvdWxkIGxvb2sgc29tZXRoaW5nIGxpa2UgdGhpczoKKworICAgID4+PiBjbGFzcyBNYXRjaGVyKG9iamVjdCk6CisgICAgLi4uICAgICBkZWYgX19pbml0X18oc2VsZiwgY29tcGFyZSwgc29tZV9vYmopOgorICAgIC4uLiAgICAgICAgIHNlbGYuY29tcGFyZSA9IGNvbXBhcmUKKyAgICAuLi4gICAgICAgICBzZWxmLnNvbWVfb2JqID0gc29tZV9vYmoKKyAgICAuLi4gICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgIC4uLiAgICAgICAgIHJldHVybiBzZWxmLmNvbXBhcmUoc2VsZi5zb21lX29iaiwgb3RoZXIpCisgICAgLi4uCisKK1B1dHRpbmcgYWxsIHRoaXMgdG9nZXRoZXI6CisKKyAgICA+Pj4gbWF0Y2hfZm9vID0gTWF0Y2hlcihjb21wYXJlLCBGb28oMSwgMikpCisgICAgPj4+IG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKG1hdGNoX2ZvbykKKworVGhlIGBNYXRjaGVyYCBpcyBpbnN0YW50aWF0ZWQgd2l0aCBvdXIgY29tcGFyZSBmdW5jdGlvbiBhbmQgdGhlIGBGb29gIG9iamVjdAord2Ugd2FudCB0byBjb21wYXJlIGFnYWluc3QuIEluIGBhc3NlcnRfY2FsbGVkX3dpdGhgIHRoZSBgTWF0Y2hlcmAgZXF1YWxpdHkKK21ldGhvZCB3aWxsIGJlIGNhbGxlZCwgd2hpY2ggY29tcGFyZXMgdGhlIG9iamVjdCB0aGUgbW9jayB3YXMgY2FsbGVkIHdpdGgKK2FnYWluc3QgdGhlIG9uZSB3ZSBjcmVhdGVkIG91ciBtYXRjaGVyIHdpdGguIElmIHRoZXkgbWF0Y2ggdGhlbgorYGFzc2VydF9jYWxsZWRfd2l0aGAgcGFzc2VzLCBhbmQgaWYgdGhleSBkb24ndCBhbiBgQXNzZXJ0aW9uRXJyb3JgIGlzIHJhaXNlZDoKKworICAgID4+PiBtYXRjaF93cm9uZyA9IE1hdGNoZXIoY29tcGFyZSwgRm9vKDMsIDQpKQorICAgID4+PiBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aChtYXRjaF93cm9uZykKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgIC4uLgorICAgIEFzc2VydGlvbkVycm9yOiBFeHBlY3RlZDogKCg8TWF0Y2hlciBvYmplY3QgYXQgMHguLi4+LCksIHt9KQorICAgIENhbGxlZCB3aXRoOiAoKDxGb28gb2JqZWN0IGF0IDB4Li4uPiwpLCB7fSkKKworV2l0aCBhIGJpdCBvZiB0d2Vha2luZyB5b3UgY291bGQgaGF2ZSB0aGUgY29tcGFyaXNvbiBmdW5jdGlvbiByYWlzZSB0aGUKK2BBc3NlcnRpb25FcnJvcmAgZGlyZWN0bHkgYW5kIHByb3ZpZGUgYSBtb3JlIHVzZWZ1bCBmYWlsdXJlIG1lc3NhZ2UuCisKK0FzIG9mIHZlcnNpb24gMS41LCB0aGUgUHl0aG9uIHRlc3RpbmcgbGlicmFyeSBgUHlIYW1jcmVzdAorPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9QeUhhbWNyZXN0PmBfIHByb3ZpZGVzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eSwKK3RoYXQgbWF5IGJlIHVzZWZ1bCBoZXJlLCBpbiB0aGUgZm9ybSBvZiBpdHMgZXF1YWxpdHkgbWF0Y2hlcgorKGBoYW1jcmVzdC5saWJyYXJ5LmludGVncmF0aW9uLm1hdGNoX2VxdWFsaXR5Cis8aHR0cDovL3BhY2thZ2VzLnB5dGhvbi5vcmcvUHlIYW1jcmVzdC9pbnRlZ3JhdGlvbi5odG1sI2hhbWNyZXN0LmxpYnJhcnkuaW50ZWdyYXRpb24ubWF0Y2hfZXF1YWxpdHk+YF8pLgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvdW5pdHRlc3QubW9jay5yc3QgYi9Eb2MvbGlicmFyeS91bml0dGVzdC5tb2NrLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZWQ2OThhCi0tLSAvZGV2L251bGwKKysrIGIvRG9jL2xpYnJhcnkvdW5pdHRlc3QubW9jay5yc3QKQEAgLTAsMCArMSwyMjI1IEBACis6bW9kOmB1bml0dGVzdC5tb2NrYCAtLS0gbW9jayBvYmplY3QgbGlicmFyeQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLi4gbW9kdWxlOjogdW5pdHRlc3QubW9jaworICAgOnN5bm9wc2lzOiBNb2NrIG9iamVjdCBsaWJyYXJ5LgorLi4gbW9kdWxlYXV0aG9yOjogTWljaGFlbCBGb29yZCA8bWljaGFlbEBweXRob24ub3JnPgorLi4gY3VycmVudG1vZHVsZTo6IHVuaXR0ZXN0Lm1vY2sKKworLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKzptb2Q6YHVuaXR0ZXN0Lm1vY2tgIGlzIGEgbGlicmFyeSBmb3IgdGVzdGluZyBpbiBQeXRob24uIEl0IGFsbG93cyB5b3UgdG8KK3JlcGxhY2UgcGFydHMgb2YgeW91ciBzeXN0ZW0gdW5kZXIgdGVzdCB3aXRoIG1vY2sgb2JqZWN0cyBhbmQgbWFrZSBhc3NlcnRpb25zCithYm91dCBob3cgdGhleSBoYXZlIGJlZW4gdXNlZC4KKworYHVuaXR0ZXN0Lm1vY2tgIHByb3ZpZGVzIGEgY29yZSA6Y2xhc3M6YE1vY2tgIGNsYXNzIHJlbW92aW5nIHRoZSBuZWVkIHRvCitjcmVhdGUgYSBob3N0IG9mIHN0dWJzIHRocm91Z2hvdXQgeW91ciB0ZXN0IHN1aXRlLiBBZnRlciBwZXJmb3JtaW5nIGFuCithY3Rpb24sIHlvdSBjYW4gbWFrZSBhc3NlcnRpb25zIGFib3V0IHdoaWNoIG1ldGhvZHMgLyBhdHRyaWJ1dGVzIHdlcmUgdXNlZAorYW5kIGFyZ3VtZW50cyB0aGV5IHdlcmUgY2FsbGVkIHdpdGguIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IHJldHVybiB2YWx1ZXMgYW5kCitzZXQgbmVlZGVkIGF0dHJpYnV0ZXMgaW4gdGhlIG5vcm1hbCB3YXkuCisKK0FkZGl0aW9uYWxseSwgbW9jayBwcm92aWRlcyBhIDpmdW5jOmBwYXRjaGAgZGVjb3JhdG9yIHRoYXQgaGFuZGxlcyBwYXRjaGluZworbW9kdWxlIGFuZCBjbGFzcyBsZXZlbCBhdHRyaWJ1dGVzIHdpdGhpbiB0aGUgc2NvcGUgb2YgYSB0ZXN0LCBhbG9uZyB3aXRoCis6Y29uc3Q6YHNlbnRpbmVsYCBmb3IgY3JlYXRpbmcgdW5pcXVlIG9iamVjdHMuIFNlZSB0aGUgYHF1aWNrIGd1aWRlYF8gZm9yCitzb21lIGV4YW1wbGVzIG9mIGhvdyB0byB1c2UgOmNsYXNzOmBNb2NrYCwgOmNsYXNzOmBNYWdpY01vY2tgIGFuZAorOmZ1bmM6YHBhdGNoYC4KKworTW9jayBpcyB2ZXJ5IGVhc3kgdG8gdXNlIGFuZCBpcyBkZXNpZ25lZCBmb3IgdXNlIHdpdGggOm1vZDpgdW5pdHRlc3RgLiBNb2NrCitpcyBiYXNlZCBvbiB0aGUgJ2FjdGlvbiAtPiBhc3NlcnRpb24nIHBhdHRlcm4gaW5zdGVhZCBvZiBgJ3JlY29yZCAtPiByZXBsYXknYAordXNlZCBieSBtYW55IG1vY2tpbmcgZnJhbWV3b3Jrcy4KKworVGhlcmUgaXMgYSBiYWNrcG9ydCBvZiBgdW5pdHRlc3QubW9ja2AgZm9yIGVhcmxpZXIgdmVyc2lvbnMgb2YgUHl0aG9uLAorYXZhaWxhYmxlIGFzIGBtb2NrIG9uIFB5UEkgPGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9tb2NrPmBfLgorCisqKlNvdXJjZSBjb2RlOioqIDpzb3VyY2U6YExpYi91bml0dGVzdC9tb2NrLnB5YAorCisKK1F1aWNrIEd1aWRlCistLS0tLS0tLS0tLQorCis6Y2xhc3M6YE1vY2tgIGFuZCA6Y2xhc3M6YE1hZ2ljTW9ja2Agb2JqZWN0cyBjcmVhdGUgYWxsIGF0dHJpYnV0ZXMgYW5kCittZXRob2RzIGFzIHlvdSBhY2Nlc3MgdGhlbSBhbmQgc3RvcmUgZGV0YWlscyBvZiBob3cgdGhleSBoYXZlIGJlZW4gdXNlZC4gWW91CitjYW4gY29uZmlndXJlIHRoZW0sIHRvIHNwZWNpZnkgcmV0dXJuIHZhbHVlcyBvciBsaW1pdCB3aGF0IGF0dHJpYnV0ZXMgYXJlCithdmFpbGFibGUsIGFuZCB0aGVuIG1ha2UgYXNzZXJ0aW9ucyBhYm91dCBob3cgdGhleSBoYXZlIGJlZW4gdXNlZDoKKworICAgID4+PiBmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IE1hZ2ljTW9jaworICAgID4+PiB0aGluZyA9IFByb2R1Y3Rpb25DbGFzcygpCisgICAgPj4+IHRoaW5nLm1ldGhvZCA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9MykKKyAgICA+Pj4gdGhpbmcubWV0aG9kKDMsIDQsIDUsIGtleT0ndmFsdWUnKQorICAgIDMKKyAgICA+Pj4gdGhpbmcubWV0aG9kLmFzc2VydF9jYWxsZWRfd2l0aCgzLCA0LCA1LCBrZXk9J3ZhbHVlJykKKworOmF0dHI6YHNpZGVfZWZmZWN0YCBhbGxvd3MgeW91IHRvIHBlcmZvcm0gc2lkZSBlZmZlY3RzLCBpbmNsdWRpbmcgcmFpc2luZyBhbgorZXhjZXB0aW9uIHdoZW4gYSBtb2NrIGlzIGNhbGxlZDoKKworICAgPj4+IG1vY2sgPSBNb2NrKHNpZGVfZWZmZWN0PUtleUVycm9yKCdmb28nKSkKKyAgID4+PiBtb2NrKCkKKyAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAuLi4KKyAgIEtleUVycm9yOiAnZm9vJworCisgICA+Pj4gdmFsdWVzID0geydhJzogMSwgJ2InOiAyLCAnYyc6IDN9CisgICA+Pj4gZGVmIHNpZGVfZWZmZWN0KGFyZyk6CisgICAuLi4gICAgIHJldHVybiB2YWx1ZXNbYXJnXQorICAgLi4uCisgICA+Pj4gbW9jay5zaWRlX2VmZmVjdCA9IHNpZGVfZWZmZWN0CisgICA+Pj4gbW9jaygnYScpLCBtb2NrKCdiJyksIG1vY2soJ2MnKQorICAgKDEsIDIsIDMpCisgICA+Pj4gbW9jay5zaWRlX2VmZmVjdCA9IFs1LCA0LCAzLCAyLCAxXQorICAgPj4+IG1vY2soKSwgbW9jaygpLCBtb2NrKCkKKyAgICg1LCA0LCAzKQorCitNb2NrIGhhcyBtYW55IG90aGVyIHdheXMgeW91IGNhbiBjb25maWd1cmUgaXQgYW5kIGNvbnRyb2wgaXRzIGJlaGF2aW91ci4gRm9yCitleGFtcGxlIHRoZSBgc3BlY2AgYXJndW1lbnQgY29uZmlndXJlcyB0aGUgbW9jayB0byB0YWtlIGl0cyBzcGVjaWZpY2F0aW9uCitmcm9tIGFub3RoZXIgb2JqZWN0LiBBdHRlbXB0aW5nIHRvIGFjY2VzcyBhdHRyaWJ1dGVzIG9yIG1ldGhvZHMgb24gdGhlIG1vY2sKK3RoYXQgZG9uJ3QgZXhpc3Qgb24gdGhlIHNwZWMgd2lsbCBmYWlsIHdpdGggYW4gYEF0dHJpYnV0ZUVycm9yYC4KKworVGhlIDpmdW5jOmBwYXRjaGAgZGVjb3JhdG9yIC8gY29udGV4dCBtYW5hZ2VyIG1ha2VzIGl0IGVhc3kgdG8gbW9jayBjbGFzc2VzIG9yCitvYmplY3RzIGluIGEgbW9kdWxlIHVuZGVyIHRlc3QuIFRoZSBvYmplY3QgeW91IHNwZWNpZnkgd2lsbCBiZSByZXBsYWNlZCB3aXRoIGEKK21vY2sgKG9yIG90aGVyIG9iamVjdCkgZHVyaW5nIHRoZSB0ZXN0IGFuZCByZXN0b3JlZCB3aGVuIHRoZSB0ZXN0IGVuZHM6CisKKyAgICA+Pj4gZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorICAgID4+PiBAcGF0Y2goJ21vZHVsZS5DbGFzc05hbWUyJykKKyAgICAuLi4gQHBhdGNoKCdtb2R1bGUuQ2xhc3NOYW1lMScpCisgICAgLi4uIGRlZiB0ZXN0KE1vY2tDbGFzczEsIE1vY2tDbGFzczIpOgorICAgIC4uLiAgICAgbW9kdWxlLkNsYXNzTmFtZTEoKQorICAgIC4uLiAgICAgbW9kdWxlLkNsYXNzTmFtZTIoKQorICAgIC4uLiAgICAgYXNzZXJ0IE1vY2tDbGFzczEgaXMgbW9kdWxlLkNsYXNzTmFtZTEKKyAgICAuLi4gICAgIGFzc2VydCBNb2NrQ2xhc3MyIGlzIG1vZHVsZS5DbGFzc05hbWUyCisgICAgLi4uICAgICBhc3NlcnQgTW9ja0NsYXNzMS5jYWxsZWQKKyAgICAuLi4gICAgIGFzc2VydCBNb2NrQ2xhc3MyLmNhbGxlZAorICAgIC4uLgorICAgID4+PiB0ZXN0KCkKKworLi4gbm90ZTo6CisKKyAgIFdoZW4geW91IG5lc3QgcGF0Y2ggZGVjb3JhdG9ycyB0aGUgbW9ja3MgYXJlIHBhc3NlZCBpbiB0byB0aGUgZGVjb3JhdGVkCisgICBmdW5jdGlvbiBpbiB0aGUgc2FtZSBvcmRlciB0aGV5IGFwcGxpZWQgKHRoZSBub3JtYWwgKnB5dGhvbiogb3JkZXIgdGhhdAorICAgZGVjb3JhdG9ycyBhcmUgYXBwbGllZCkuIFRoaXMgbWVhbnMgZnJvbSB0aGUgYm90dG9tIHVwLCBzbyBpbiB0aGUgZXhhbXBsZQorICAgYWJvdmUgdGhlIG1vY2sgZm9yIGBtb2R1bGUuQ2xhc3NOYW1lMWAgaXMgcGFzc2VkIGluIGZpcnN0LgorCisgICBXaXRoIGBwYXRjaGAgaXQgbWF0dGVycyB0aGF0IHlvdSBwYXRjaCBvYmplY3RzIGluIHRoZSBuYW1lc3BhY2Ugd2hlcmUgdGhleQorICAgYXJlIGxvb2tlZCB1cC4gVGhpcyBpcyBub3JtYWxseSBzdHJhaWdodGZvcndhcmQsIGJ1dCBmb3IgYSBxdWljayBndWlkZQorICAgcmVhZCA6cmVmOmB3aGVyZSB0byBwYXRjaCA8d2hlcmUtdG8tcGF0Y2g+YC4KKworQXMgd2VsbCBhcyBhIGRlY29yYXRvciBgcGF0Y2hgIGNhbiBiZSB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyIGluIGEgd2l0aAorc3RhdGVtZW50OgorCisgICAgPj4+IHdpdGggcGF0Y2gub2JqZWN0KFByb2R1Y3Rpb25DbGFzcywgJ21ldGhvZCcsIHJldHVybl92YWx1ZT1Ob25lKSBhcyBtb2NrX21ldGhvZDoKKyAgICAuLi4gICAgIHRoaW5nID0gUHJvZHVjdGlvbkNsYXNzKCkKKyAgICAuLi4gICAgIHRoaW5nLm1ldGhvZCgxLCAyLCAzKQorICAgIC4uLgorICAgID4+PiBtb2NrX21ldGhvZC5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgxLCAyLCAzKQorCisKK1RoZXJlIGlzIGFsc28gOmZ1bmM6YHBhdGNoLmRpY3RgIGZvciBzZXR0aW5nIHZhbHVlcyBpbiBhIGRpY3Rpb25hcnkganVzdAorZHVyaW5nIGEgc2NvcGUgYW5kIHJlc3RvcmluZyB0aGUgZGljdGlvbmFyeSB0byBpdHMgb3JpZ2luYWwgc3RhdGUgd2hlbiB0aGUgdGVzdAorZW5kczoKKworICAgPj4+IGZvbyA9IHsna2V5JzogJ3ZhbHVlJ30KKyAgID4+PiBvcmlnaW5hbCA9IGZvby5jb3B5KCkKKyAgID4+PiB3aXRoIHBhdGNoLmRpY3QoZm9vLCB7J25ld2tleSc6ICduZXd2YWx1ZSd9LCBjbGVhcj1UcnVlKToKKyAgIC4uLiAgICAgYXNzZXJ0IGZvbyA9PSB7J25ld2tleSc6ICduZXd2YWx1ZSd9CisgICAuLi4KKyAgID4+PiBhc3NlcnQgZm9vID09IG9yaWdpbmFsCisKK01vY2sgc3VwcG9ydHMgdGhlIG1vY2tpbmcgb2YgUHl0aG9uIDpyZWY6YG1hZ2ljIG1ldGhvZHMgPG1hZ2ljLW1ldGhvZHM+YC4gVGhlCitlYXNpZXN0IHdheSBvZiB1c2luZyBtYWdpYyBtZXRob2RzIGlzIHdpdGggdGhlIDpjbGFzczpgTWFnaWNNb2NrYCBjbGFzcy4gSXQKK2FsbG93cyB5b3UgdG8gZG8gdGhpbmdzIGxpa2U6CisKKyAgICA+Pj4gbW9jayA9IE1hZ2ljTW9jaygpCisgICAgPj4+IG1vY2suX19zdHJfXy5yZXR1cm5fdmFsdWUgPSAnZm9vYmFyYmF6JworICAgID4+PiBzdHIobW9jaykKKyAgICAnZm9vYmFyYmF6JworICAgID4+PiBtb2NrLl9fc3RyX18uYXNzZXJ0X2NhbGxlZF93aXRoKCkKKworTW9jayBhbGxvd3MgeW91IHRvIGFzc2lnbiBmdW5jdGlvbnMgKG9yIG90aGVyIE1vY2sgaW5zdGFuY2VzKSB0byBtYWdpYyBtZXRob2RzCithbmQgdGhleSB3aWxsIGJlIGNhbGxlZCBhcHByb3ByaWF0ZWx5LiBUaGUgYE1hZ2ljTW9ja2AgY2xhc3MgaXMganVzdCBhIE1vY2sKK3ZhcmlhbnQgdGhhdCBoYXMgYWxsIG9mIHRoZSBtYWdpYyBtZXRob2RzIHByZS1jcmVhdGVkIGZvciB5b3UgKHdlbGwsIGFsbCB0aGUKK3VzZWZ1bCBvbmVzIGFueXdheSkuCisKK1RoZSBmb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSBvZiB1c2luZyBtYWdpYyBtZXRob2RzIHdpdGggdGhlIG9yZGluYXJ5IE1vY2sKK2NsYXNzOgorCisgICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgICA+Pj4gbW9jay5fX3N0cl9fID0gTW9jayhyZXR1cm5fdmFsdWU9J3doZWVlZWVlJykKKyAgICA+Pj4gc3RyKG1vY2spCisgICAgJ3doZWVlZWVlJworCitGb3IgZW5zdXJpbmcgdGhhdCB0aGUgbW9jayBvYmplY3RzIGluIHlvdXIgdGVzdHMgaGF2ZSB0aGUgc2FtZSBhcGkgYXMgdGhlCitvYmplY3RzIHRoZXkgYXJlIHJlcGxhY2luZywgeW91IGNhbiB1c2UgOnJlZjpgYXV0by1zcGVjY2luZyA8YXV0by1zcGVjY2luZz5gLgorQXV0by1zcGVjY2luZyBjYW4gYmUgZG9uZSB0aHJvdWdoIHRoZSBgYXV0b3NwZWNgIGFyZ3VtZW50IHRvIHBhdGNoLCBvciB0aGUKKzpmdW5jOmBjcmVhdGVfYXV0b3NwZWNgIGZ1bmN0aW9uLiBBdXRvLXNwZWNjaW5nIGNyZWF0ZXMgbW9jayBvYmplY3RzIHRoYXQKK2hhdmUgdGhlIHNhbWUgYXR0cmlidXRlcyBhbmQgbWV0aG9kcyBhcyB0aGUgb2JqZWN0cyB0aGV5IGFyZSByZXBsYWNpbmcsIGFuZAorYW55IGZ1bmN0aW9ucyBhbmQgbWV0aG9kcyAoaW5jbHVkaW5nIGNvbnN0cnVjdG9ycykgaGF2ZSB0aGUgc2FtZSBjYWxsCitzaWduYXR1cmUgYXMgdGhlIHJlYWwgb2JqZWN0LgorCitUaGlzIGVuc3VyZXMgdGhhdCB5b3VyIG1vY2tzIHdpbGwgZmFpbCBpbiB0aGUgc2FtZSB3YXkgYXMgeW91ciBwcm9kdWN0aW9uCitjb2RlIGlmIHRoZXkgYXJlIHVzZWQgaW5jb3JyZWN0bHk6CisKKyAgID4+PiBmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IGNyZWF0ZV9hdXRvc3BlYworICAgPj4+IGRlZiBmdW5jdGlvbihhLCBiLCBjKToKKyAgIC4uLiAgICAgcGFzcworICAgLi4uCisgICA+Pj4gbW9ja19mdW5jdGlvbiA9IGNyZWF0ZV9hdXRvc3BlYyhmdW5jdGlvbiwgcmV0dXJuX3ZhbHVlPSdmaXNoeScpCisgICA+Pj4gbW9ja19mdW5jdGlvbigxLCAyLCAzKQorICAgJ2Zpc2h5JworICAgPj4+IG1vY2tfZnVuY3Rpb24uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoMSwgMiwgMykKKyAgID4+PiBtb2NrX2Z1bmN0aW9uKCd3cm9uZyBhcmd1bWVudHMnKQorICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgIC4uLgorICAgVHlwZUVycm9yOiA8bGFtYmRhPigpIHRha2VzIGV4YWN0bHkgMyBhcmd1bWVudHMgKDEgZ2l2ZW4pCisKK2BjcmVhdGVfYXV0b3NwZWNgIGNhbiBhbHNvIGJlIHVzZWQgb24gY2xhc3Nlcywgd2hlcmUgaXQgY29waWVzIHRoZSBzaWduYXR1cmUgb2YKK3RoZSBgX19pbml0X19gIG1ldGhvZCwgYW5kIG9uIGNhbGxhYmxlIG9iamVjdHMgd2hlcmUgaXQgY29waWVzIHRoZSBzaWduYXR1cmUgb2YKK3RoZSBgX19jYWxsX19gIG1ldGhvZC4KKworCisKK1RoZSBNb2NrIENsYXNzCistLS0tLS0tLS0tLS0tLQorCisKK2BNb2NrYCBpcyBhIGZsZXhpYmxlIG1vY2sgb2JqZWN0IGludGVuZGVkIHRvIHJlcGxhY2UgdGhlIHVzZSBvZiBzdHVicyBhbmQKK3Rlc3QgZG91YmxlcyB0aHJvdWdob3V0IHlvdXIgY29kZS4gTW9ja3MgYXJlIGNhbGxhYmxlIGFuZCBjcmVhdGUgYXR0cmlidXRlcyBhcworbmV3IG1vY2tzIHdoZW4geW91IGFjY2VzcyB0aGVtIFsjXV8uIEFjY2Vzc2luZyB0aGUgc2FtZSBhdHRyaWJ1dGUgd2lsbCBhbHdheXMKK3JldHVybiB0aGUgc2FtZSBtb2NrLiBNb2NrcyByZWNvcmQgaG93IHlvdSB1c2UgdGhlbSwgYWxsb3dpbmcgeW91IHRvIG1ha2UKK2Fzc2VydGlvbnMgYWJvdXQgd2hhdCB5b3VyIGNvZGUgaGFzIGRvbmUgdG8gdGhlbS4KKworOmNsYXNzOmBNYWdpY01vY2tgIGlzIGEgc3ViY2xhc3Mgb2YgYE1vY2tgIHdpdGggYWxsIHRoZSBtYWdpYyBtZXRob2RzCitwcmUtY3JlYXRlZCBhbmQgcmVhZHkgdG8gdXNlLiBUaGVyZSBhcmUgYWxzbyBub24tY2FsbGFibGUgdmFyaWFudHMsIHVzZWZ1bAord2hlbiB5b3UgYXJlIG1vY2tpbmcgb3V0IG9iamVjdHMgdGhhdCBhcmVuJ3QgY2FsbGFibGU6Cis6Y2xhc3M6YE5vbkNhbGxhYmxlTW9ja2AgYW5kIDpjbGFzczpgTm9uQ2FsbGFibGVNYWdpY01vY2tgCisKK1RoZSA6ZnVuYzpgcGF0Y2hgIGRlY29yYXRvcnMgbWFrZXMgaXQgZWFzeSB0byB0ZW1wb3JhcmlseSByZXBsYWNlIGNsYXNzZXMKK2luIGEgcGFydGljdWxhciBtb2R1bGUgd2l0aCBhIGBNb2NrYCBvYmplY3QuIEJ5IGRlZmF1bHQgYHBhdGNoYCB3aWxsIGNyZWF0ZQorYSBgTWFnaWNNb2NrYCBmb3IgeW91LiBZb3UgY2FuIHNwZWNpZnkgYW4gYWx0ZXJuYXRpdmUgY2xhc3Mgb2YgYE1vY2tgIHVzaW5nCit0aGUgYG5ld19jYWxsYWJsZWAgYXJndW1lbnQgdG8gYHBhdGNoYC4KKworCisuLiBjbGFzczo6IE1vY2soc3BlYz1Ob25lLCBzaWRlX2VmZmVjdD1Ob25lLCByZXR1cm5fdmFsdWU9REVGQVVMVCwgd3JhcHM9Tm9uZSwgbmFtZT1Ob25lLCBzcGVjX3NldD1Ob25lLCAqKmt3YXJncykKKworICAgIENyZWF0ZSBhIG5ldyBgTW9ja2Agb2JqZWN0LiBgTW9ja2AgdGFrZXMgc2V2ZXJhbCBvcHRpb25hbCBhcmd1bWVudHMKKyAgICB0aGF0IHNwZWNpZnkgdGhlIGJlaGF2aW91ciBvZiB0aGUgTW9jayBvYmplY3Q6CisKKyAgICAqIGBzcGVjYDogVGhpcyBjYW4gYmUgZWl0aGVyIGEgbGlzdCBvZiBzdHJpbmdzIG9yIGFuIGV4aXN0aW5nIG9iamVjdCAoYQorICAgICAgY2xhc3Mgb3IgaW5zdGFuY2UpIHRoYXQgYWN0cyBhcyB0aGUgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIG1vY2sgb2JqZWN0LiBJZgorICAgICAgeW91IHBhc3MgaW4gYW4gb2JqZWN0IHRoZW4gYSBsaXN0IG9mIHN0cmluZ3MgaXMgZm9ybWVkIGJ5IGNhbGxpbmcgZGlyIG9uCisgICAgICB0aGUgb2JqZWN0IChleGNsdWRpbmcgdW5zdXBwb3J0ZWQgbWFnaWMgYXR0cmlidXRlcyBhbmQgbWV0aG9kcykuCisgICAgICBBY2Nlc3NpbmcgYW55IGF0dHJpYnV0ZSBub3QgaW4gdGhpcyBsaXN0IHdpbGwgcmFpc2UgYW4gYEF0dHJpYnV0ZUVycm9yYC4KKworICAgICAgSWYgYHNwZWNgIGlzIGFuIG9iamVjdCAocmF0aGVyIHRoYW4gYSBsaXN0IG9mIHN0cmluZ3MpIHRoZW4KKyAgICAgIDphdHRyOmBfX2NsYXNzX19gIHJldHVybnMgdGhlIGNsYXNzIG9mIHRoZSBzcGVjIG9iamVjdC4gVGhpcyBhbGxvd3MgbW9ja3MKKyAgICAgIHRvIHBhc3MgYGlzaW5zdGFuY2VgIHRlc3RzLgorCisgICAgKiBgc3BlY19zZXRgOiBBIHN0cmljdGVyIHZhcmlhbnQgb2YgYHNwZWNgLiBJZiB1c2VkLCBhdHRlbXB0aW5nIHRvICpzZXQqCisgICAgICBvciBnZXQgYW4gYXR0cmlidXRlIG9uIHRoZSBtb2NrIHRoYXQgaXNuJ3Qgb24gdGhlIG9iamVjdCBwYXNzZWQgYXMKKyAgICAgIGBzcGVjX3NldGAgd2lsbCByYWlzZSBhbiBgQXR0cmlidXRlRXJyb3JgLgorCisgICAgKiBgc2lkZV9lZmZlY3RgOiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgTW9jayBpcyBjYWxsZWQuIFNlZQorICAgICAgdGhlIDphdHRyOmB+TW9jay5zaWRlX2VmZmVjdGAgYXR0cmlidXRlLiBVc2VmdWwgZm9yIHJhaXNpbmcgZXhjZXB0aW9ucyBvcgorICAgICAgZHluYW1pY2FsbHkgY2hhbmdpbmcgcmV0dXJuIHZhbHVlcy4gVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHRoZSBzYW1lCisgICAgICBhcmd1bWVudHMgYXMgdGhlIG1vY2ssIGFuZCB1bmxlc3MgaXQgcmV0dXJucyA6ZGF0YTpgREVGQVVMVGAsIHRoZSByZXR1cm4KKyAgICAgIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBhcyB0aGUgcmV0dXJuIHZhbHVlLgorCisgICAgICBBbHRlcm5hdGl2ZWx5IGBzaWRlX2VmZmVjdGAgY2FuIGJlIGFuIGV4Y2VwdGlvbiBjbGFzcyBvciBpbnN0YW5jZS4gSW4KKyAgICAgIHRoaXMgY2FzZSB0aGUgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gdGhlIG1vY2sgaXMgY2FsbGVkLgorCisgICAgICBJZiBgc2lkZV9lZmZlY3RgIGlzIGFuIGl0ZXJhYmxlIHRoZW4gZWFjaCBjYWxsIHRvIHRoZSBtb2NrIHdpbGwgcmV0dXJuCisgICAgICB0aGUgbmV4dCB2YWx1ZSBmcm9tIHRoZSBpdGVyYWJsZS4KKworICAgICAgQSBgc2lkZV9lZmZlY3RgIGNhbiBiZSBjbGVhcmVkIGJ5IHNldHRpbmcgaXQgdG8gYE5vbmVgLgorCisgICAgKiBgcmV0dXJuX3ZhbHVlYDogVGhlIHZhbHVlIHJldHVybmVkIHdoZW4gdGhlIG1vY2sgaXMgY2FsbGVkLiBCeSBkZWZhdWx0CisgICAgICB0aGlzIGlzIGEgbmV3IE1vY2sgKGNyZWF0ZWQgb24gZmlyc3QgYWNjZXNzKS4gU2VlIHRoZQorICAgICAgOmF0dHI6YHJldHVybl92YWx1ZWAgYXR0cmlidXRlLgorCisgICAgKiBgd3JhcHNgOiBJdGVtIGZvciB0aGUgbW9jayBvYmplY3QgdG8gd3JhcC4gSWYgYHdyYXBzYCBpcyBub3QgTm9uZSB0aGVuCisgICAgICBjYWxsaW5nIHRoZSBNb2NrIHdpbGwgcGFzcyB0aGUgY2FsbCB0aHJvdWdoIHRvIHRoZSB3cmFwcGVkIG9iamVjdAorICAgICAgKHJldHVybmluZyB0aGUgcmVhbCByZXN1bHQpLiBBdHRyaWJ1dGUgYWNjZXNzIG9uIHRoZSBtb2NrIHdpbGwgcmV0dXJuIGEKKyAgICAgIE1vY2sgb2JqZWN0IHRoYXQgd3JhcHMgdGhlIGNvcnJlc3BvbmRpbmcgYXR0cmlidXRlIG9mIHRoZSB3cmFwcGVkCisgICAgICBvYmplY3QgKHNvIGF0dGVtcHRpbmcgdG8gYWNjZXNzIGFuIGF0dHJpYnV0ZSB0aGF0IGRvZXNuJ3QgZXhpc3Qgd2lsbAorICAgICAgcmFpc2UgYW4gYEF0dHJpYnV0ZUVycm9yYCkuCisKKyAgICAgIElmIHRoZSBtb2NrIGhhcyBhbiBleHBsaWNpdCBgcmV0dXJuX3ZhbHVlYCBzZXQgdGhlbiBjYWxscyBhcmUgbm90IHBhc3NlZAorICAgICAgdG8gdGhlIHdyYXBwZWQgb2JqZWN0IGFuZCB0aGUgYHJldHVybl92YWx1ZWAgaXMgcmV0dXJuZWQgaW5zdGVhZC4KKworICAgICogYG5hbWVgOiBJZiB0aGUgbW9jayBoYXMgYSBuYW1lIHRoZW4gaXQgd2lsbCBiZSB1c2VkIGluIHRoZSByZXByIG9mIHRoZQorICAgICAgbW9jay4gVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBkZWJ1Z2dpbmcuIFRoZSBuYW1lIGlzIHByb3BhZ2F0ZWQgdG8gY2hpbGQKKyAgICAgIG1vY2tzLgorCisgICAgTW9ja3MgY2FuIGFsc28gYmUgY2FsbGVkIHdpdGggYXJiaXRyYXJ5IGtleXdvcmQgYXJndW1lbnRzLiBUaGVzZSB3aWxsIGJlCisgICAgdXNlZCB0byBzZXQgYXR0cmlidXRlcyBvbiB0aGUgbW9jayBhZnRlciBpdCBpcyBjcmVhdGVkLiBTZWUgdGhlCisgICAgOm1ldGg6YGNvbmZpZ3VyZV9tb2NrYCBtZXRob2QgZm9yIGRldGFpbHMuCisKKworICAgIC4uIG1ldGhvZDo6IGFzc2VydF9jYWxsZWRfd2l0aCgqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgVGhpcyBtZXRob2QgaXMgYSBjb252ZW5pZW50IHdheSBvZiBhc3NlcnRpbmcgdGhhdCBjYWxscyBhcmUgbWFkZSBpbiBhCisgICAgICAgIHBhcnRpY3VsYXIgd2F5OgorCisgICAgICAgICAgICA+Pj4gbW9jayA9IE1vY2soKQorICAgICAgICAgICAgPj4+IG1vY2subWV0aG9kKDEsIDIsIDMsIHRlc3Q9J3dvdycpCisgICAgICAgICAgICA8TW9jayBuYW1lPSdtb2NrLm1ldGhvZCgpJyBpZD0nLi4uJz4KKyAgICAgICAgICAgID4+PiBtb2NrLm1ldGhvZC5hc3NlcnRfY2FsbGVkX3dpdGgoMSwgMiwgMywgdGVzdD0nd293JykKKworCisgICAgLi4gbWV0aG9kOjogYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAgQXNzZXJ0IHRoYXQgdGhlIG1vY2sgd2FzIGNhbGxlZCBleGFjdGx5IG9uY2UgYW5kIHdpdGggdGhlIHNwZWNpZmllZAorICAgICAgIGFyZ3VtZW50cy4KKworICAgICAgICAgICAgPj4+IG1vY2sgPSBNb2NrKHJldHVybl92YWx1ZT1Ob25lKQorICAgICAgICAgICAgPj4+IG1vY2soJ2ZvbycsIGJhcj0nYmF6JykKKyAgICAgICAgICAgID4+PiBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCdmb28nLCBiYXI9J2JheicpCisgICAgICAgICAgICA+Pj4gbW9jaygnZm9vJywgYmFyPSdiYXonKQorICAgICAgICAgICAgPj4+IG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoJ2ZvbycsIGJhcj0nYmF6JykKKyAgICAgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICBBc3NlcnRpb25FcnJvcjogRXhwZWN0ZWQgdG8gYmUgY2FsbGVkIG9uY2UuIENhbGxlZCAyIHRpbWVzLgorCisKKyAgICAuLiBtZXRob2Q6OiBhc3NlcnRfYW55X2NhbGwoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAgIGFzc2VydCB0aGUgbW9jayBoYXMgYmVlbiBjYWxsZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGFyZ3VtZW50cy4KKworICAgICAgICBUaGUgYXNzZXJ0IHBhc3NlcyBpZiB0aGUgbW9jayBoYXMgKmV2ZXIqIGJlZW4gY2FsbGVkLCB1bmxpa2UKKyAgICAgICAgOm1ldGg6YGFzc2VydF9jYWxsZWRfd2l0aGAgYW5kIDptZXRoOmBhc3NlcnRfY2FsbGVkX29uY2Vfd2l0aGAgdGhhdAorICAgICAgICBvbmx5IHBhc3MgaWYgdGhlIGNhbGwgaXMgdGhlIG1vc3QgcmVjZW50IG9uZS4KKworICAgICAgICAgICAgPj4+IG1vY2sgPSBNb2NrKHJldHVybl92YWx1ZT1Ob25lKQorICAgICAgICAgICAgPj4+IG1vY2soMSwgMiwgYXJnPSd0aGluZycpCisgICAgICAgICAgICA+Pj4gbW9jaygnc29tZScsICd0aGluZycsICdlbHNlJykKKyAgICAgICAgICAgID4+PiBtb2NrLmFzc2VydF9hbnlfY2FsbCgxLCAyLCBhcmc9J3RoaW5nJykKKworCisgICAgLi4gbWV0aG9kOjogYXNzZXJ0X2hhc19jYWxscyhjYWxscywgYW55X29yZGVyPUZhbHNlKQorCisgICAgICAgIGFzc2VydCB0aGUgbW9jayBoYXMgYmVlbiBjYWxsZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGNhbGxzLgorICAgICAgICBUaGUgYG1vY2tfY2FsbHNgIGxpc3QgaXMgY2hlY2tlZCBmb3IgdGhlIGNhbGxzLgorCisgICAgICAgIElmIGBhbnlfb3JkZXJgIGlzIEZhbHNlICh0aGUgZGVmYXVsdCkgdGhlbiB0aGUgY2FsbHMgbXVzdCBiZQorICAgICAgICBzZXF1ZW50aWFsLiBUaGVyZSBjYW4gYmUgZXh0cmEgY2FsbHMgYmVmb3JlIG9yIGFmdGVyIHRoZQorICAgICAgICBzcGVjaWZpZWQgY2FsbHMuCisKKyAgICAgICAgSWYgYGFueV9vcmRlcmAgaXMgVHJ1ZSB0aGVuIHRoZSBjYWxscyBjYW4gYmUgaW4gYW55IG9yZGVyLCBidXQKKyAgICAgICAgdGhleSBtdXN0IGFsbCBhcHBlYXIgaW4gOmF0dHI6YG1vY2tfY2FsbHNgLgorCisgICAgICAgICAgICA+Pj4gbW9jayA9IE1vY2socmV0dXJuX3ZhbHVlPU5vbmUpCisgICAgICAgICAgICA+Pj4gbW9jaygxKQorICAgICAgICAgICAgPj4+IG1vY2soMikKKyAgICAgICAgICAgID4+PiBtb2NrKDMpCisgICAgICAgICAgICA+Pj4gbW9jayg0KQorICAgICAgICAgICAgPj4+IGNhbGxzID0gW2NhbGwoMiksIGNhbGwoMyldCisgICAgICAgICAgICA+Pj4gbW9jay5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzKQorICAgICAgICAgICAgPj4+IGNhbGxzID0gW2NhbGwoNCksIGNhbGwoMiksIGNhbGwoMyldCisgICAgICAgICAgICA+Pj4gbW9jay5hc3NlcnRfaGFzX2NhbGxzKGNhbGxzLCBhbnlfb3JkZXI9VHJ1ZSkKKworCisgICAgLi4gbWV0aG9kOjogcmVzZXRfbW9jaygpCisKKyAgICAgICAgVGhlIHJlc2V0X21vY2sgbWV0aG9kIHJlc2V0cyBhbGwgdGhlIGNhbGwgYXR0cmlidXRlcyBvbiBhIG1vY2sgb2JqZWN0OgorCisgICAgICAgICAgICA+Pj4gbW9jayA9IE1vY2socmV0dXJuX3ZhbHVlPU5vbmUpCisgICAgICAgICAgICA+Pj4gbW9jaygnaGVsbG8nKQorICAgICAgICAgICAgPj4+IG1vY2suY2FsbGVkCisgICAgICAgICAgICBUcnVlCisgICAgICAgICAgICA+Pj4gbW9jay5yZXNldF9tb2NrKCkKKyAgICAgICAgICAgID4+PiBtb2NrLmNhbGxlZAorICAgICAgICAgICAgRmFsc2UKKworICAgICAgICBUaGlzIGNhbiBiZSB1c2VmdWwgd2hlcmUgeW91IHdhbnQgdG8gbWFrZSBhIHNlcmllcyBvZiBhc3NlcnRpb25zIHRoYXQKKyAgICAgICAgcmV1c2UgdGhlIHNhbWUgb2JqZWN0LiBOb3RlIHRoYXQgYHJlc2V0X21vY2tgICpkb2Vzbid0KiBjbGVhciB0aGUKKyAgICAgICAgcmV0dXJuIHZhbHVlLCA6YXR0cjpgc2lkZV9lZmZlY3RgIG9yIGFueSBjaGlsZCBhdHRyaWJ1dGVzIHlvdSBoYXZlCisgICAgICAgIHNldCB1c2luZyBub3JtYWwgYXNzaWdubWVudC4gQ2hpbGQgbW9ja3MgYW5kIHRoZSByZXR1cm4gdmFsdWUgbW9jaworICAgICAgICAoaWYgYW55KSBhcmUgcmVzZXQgYXMgd2VsbC4KKworCisgICAgLi4gbWV0aG9kOjogbW9ja19hZGRfc3BlYyhzcGVjLCBzcGVjX3NldD1GYWxzZSkKKworICAgICAgICBBZGQgYSBzcGVjIHRvIGEgbW9jay4gYHNwZWNgIGNhbiBlaXRoZXIgYmUgYW4gb2JqZWN0IG9yIGEKKyAgICAgICAgbGlzdCBvZiBzdHJpbmdzLiBPbmx5IGF0dHJpYnV0ZXMgb24gdGhlIGBzcGVjYCBjYW4gYmUgZmV0Y2hlZCBhcworICAgICAgICBhdHRyaWJ1dGVzIGZyb20gdGhlIG1vY2suCisKKyAgICAgICAgSWYgYHNwZWNfc2V0YCBpcyBgVHJ1ZWAgdGhlbiBvbmx5IGF0dHJpYnV0ZXMgb24gdGhlIHNwZWMgY2FuIGJlIHNldC4KKworCisgICAgLi4gbWV0aG9kOjogYXR0YWNoX21vY2sobW9jaywgYXR0cmlidXRlKQorCisgICAgICAgIEF0dGFjaCBhIG1vY2sgYXMgYW4gYXR0cmlidXRlIG9mIHRoaXMgb25lLCByZXBsYWNpbmcgaXRzIG5hbWUgYW5kCisgICAgICAgIHBhcmVudC4gQ2FsbHMgdG8gdGhlIGF0dGFjaGVkIG1vY2sgd2lsbCBiZSByZWNvcmRlZCBpbiB0aGUKKyAgICAgICAgOmF0dHI6YG1ldGhvZF9jYWxsc2AgYW5kIDphdHRyOmBtb2NrX2NhbGxzYCBhdHRyaWJ1dGVzIG9mIHRoaXMgb25lLgorCisKKyAgICAuLiBtZXRob2Q6OiBjb25maWd1cmVfbW9jaygqKmt3YXJncykKKworICAgICAgICBTZXQgYXR0cmlidXRlcyBvbiB0aGUgbW9jayB0aHJvdWdoIGtleXdvcmQgYXJndW1lbnRzLgorCisgICAgICAgIEF0dHJpYnV0ZXMgcGx1cyByZXR1cm4gdmFsdWVzIGFuZCBzaWRlIGVmZmVjdHMgY2FuIGJlIHNldCBvbiBjaGlsZAorICAgICAgICBtb2NrcyB1c2luZyBzdGFuZGFyZCBkb3Qgbm90YXRpb24gYW5kIHVucGFja2luZyBhIGRpY3Rpb25hcnkgaW4gdGhlCisgICAgICAgIG1ldGhvZCBjYWxsOgorCisgICAgICAgICAgICA+Pj4gbW9jayA9IE1vY2soKQorICAgICAgICAgICAgPj4+IGF0dHJzID0geydtZXRob2QucmV0dXJuX3ZhbHVlJzogMywgJ290aGVyLnNpZGVfZWZmZWN0JzogS2V5RXJyb3J9CisgICAgICAgICAgICA+Pj4gbW9jay5jb25maWd1cmVfbW9jaygqKmF0dHJzKQorICAgICAgICAgICAgPj4+IG1vY2subWV0aG9kKCkKKyAgICAgICAgICAgIDMKKyAgICAgICAgICAgID4+PiBtb2NrLm90aGVyKCkKKyAgICAgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICBLZXlFcnJvcgorCisgICAgICAgIFRoZSBzYW1lIHRoaW5nIGNhbiBiZSBhY2hpZXZlZCBpbiB0aGUgY29uc3RydWN0b3IgY2FsbCB0byBtb2NrczoKKworICAgICAgICAgICAgPj4+IGF0dHJzID0geydtZXRob2QucmV0dXJuX3ZhbHVlJzogMywgJ290aGVyLnNpZGVfZWZmZWN0JzogS2V5RXJyb3J9CisgICAgICAgICAgICA+Pj4gbW9jayA9IE1vY2soc29tZV9hdHRyaWJ1dGU9J2VnZ3MnLCAqKmF0dHJzKQorICAgICAgICAgICAgPj4+IG1vY2suc29tZV9hdHRyaWJ1dGUKKyAgICAgICAgICAgICdlZ2dzJworICAgICAgICAgICAgPj4+IG1vY2subWV0aG9kKCkKKyAgICAgICAgICAgIDMKKyAgICAgICAgICAgID4+PiBtb2NrLm90aGVyKCkKKyAgICAgICAgICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICBLZXlFcnJvcgorCisgICAgICAgIGBjb25maWd1cmVfbW9ja2AgZXhpc3RzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRvIGNvbmZpZ3VyYXRpb24KKyAgICAgICAgYWZ0ZXIgdGhlIG1vY2sgaGFzIGJlZW4gY3JlYXRlZC4KKworCisgICAgLi4gbWV0aG9kOjogX19kaXJfXygpCisKKyAgICAgICAgYE1vY2tgIG9iamVjdHMgbGltaXQgdGhlIHJlc3VsdHMgb2YgYGRpcihzb21lX21vY2spYCB0byB1c2VmdWwgcmVzdWx0cy4KKyAgICAgICAgRm9yIG1vY2tzIHdpdGggYSBgc3BlY2AgdGhpcyBpbmNsdWRlcyBhbGwgdGhlIHBlcm1pdHRlZCBhdHRyaWJ1dGVzCisgICAgICAgIGZvciB0aGUgbW9jay4KKworICAgICAgICBTZWUgOmRhdGE6YEZJTFRFUl9ESVJgIGZvciB3aGF0IHRoaXMgZmlsdGVyaW5nIGRvZXMsIGFuZCBob3cgdG8KKyAgICAgICAgc3dpdGNoIGl0IG9mZi4KKworCisgICAgLi4gbWV0aG9kOjogX2dldF9jaGlsZF9tb2NrKCoqa3cpCisKKyAgICAgICAgQ3JlYXRlIHRoZSBjaGlsZCBtb2NrcyBmb3IgYXR0cmlidXRlcyBhbmQgcmV0dXJuIHZhbHVlLgorICAgICAgICBCeSBkZWZhdWx0IGNoaWxkIG1vY2tzIHdpbGwgYmUgdGhlIHNhbWUgdHlwZSBhcyB0aGUgcGFyZW50LgorICAgICAgICBTdWJjbGFzc2VzIG9mIE1vY2sgbWF5IHdhbnQgdG8gb3ZlcnJpZGUgdGhpcyB0byBjdXN0b21pemUgdGhlIHdheQorICAgICAgICBjaGlsZCBtb2NrcyBhcmUgbWFkZS4KKworICAgICAgICBGb3Igbm9uLWNhbGxhYmxlIG1vY2tzIHRoZSBjYWxsYWJsZSB2YXJpYW50IHdpbGwgYmUgdXNlZCAocmF0aGVyIHRoYW4KKyAgICAgICAgYW55IGN1c3RvbSBzdWJjbGFzcykuCisKKworICAgIC4uIGF0dHJpYnV0ZTo6IGNhbGxlZAorCisgICAgICAgIEEgYm9vbGVhbiByZXByZXNlbnRpbmcgd2hldGhlciBvciBub3QgdGhlIG1vY2sgb2JqZWN0IGhhcyBiZWVuIGNhbGxlZDoKKworICAgICAgICAgICAgPj4+IG1vY2sgPSBNb2NrKHJldHVybl92YWx1ZT1Ob25lKQorICAgICAgICAgICAgPj4+IG1vY2suY2FsbGVkCisgICAgICAgICAgICBGYWxzZQorICAgICAgICAgICAgPj4+IG1vY2soKQorICAgICAgICAgICAgPj4+IG1vY2suY2FsbGVkCisgICAgICAgICAgICBUcnVlCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBjYWxsX2NvdW50CisKKyAgICAgICAgQW4gaW50ZWdlciB0ZWxsaW5nIHlvdSBob3cgbWFueSB0aW1lcyB0aGUgbW9jayBvYmplY3QgaGFzIGJlZW4gY2FsbGVkOgorCisgICAgICAgICAgICA+Pj4gbW9jayA9IE1vY2socmV0dXJuX3ZhbHVlPU5vbmUpCisgICAgICAgICAgICA+Pj4gbW9jay5jYWxsX2NvdW50CisgICAgICAgICAgICAwCisgICAgICAgICAgICA+Pj4gbW9jaygpCisgICAgICAgICAgICA+Pj4gbW9jaygpCisgICAgICAgICAgICA+Pj4gbW9jay5jYWxsX2NvdW50CisgICAgICAgICAgICAyCisKKworICAgIC4uIGF0dHJpYnV0ZTo6IHJldHVybl92YWx1ZQorCisgICAgICAgIFNldCB0aGlzIHRvIGNvbmZpZ3VyZSB0aGUgdmFsdWUgcmV0dXJuZWQgYnkgY2FsbGluZyB0aGUgbW9jazoKKworICAgICAgICAgICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgICAgICAgICAgID4+PiBtb2NrLnJldHVybl92YWx1ZSA9ICdmaXNoJworICAgICAgICAgICAgPj4+IG1vY2soKQorICAgICAgICAgICAgJ2Zpc2gnCisKKyAgICAgICAgVGhlIGRlZmF1bHQgcmV0dXJuIHZhbHVlIGlzIGEgbW9jayBvYmplY3QgYW5kIHlvdSBjYW4gY29uZmlndXJlIGl0IGluCisgICAgICAgIHRoZSBub3JtYWwgd2F5OgorCisgICAgICAgICAgICA+Pj4gbW9jayA9IE1vY2soKQorICAgICAgICAgICAgPj4+IG1vY2sucmV0dXJuX3ZhbHVlLmF0dHJpYnV0ZSA9IHNlbnRpbmVsLkF0dHJpYnV0ZQorICAgICAgICAgICAgPj4+IG1vY2sucmV0dXJuX3ZhbHVlKCkKKyAgICAgICAgICAgIDxNb2NrIG5hbWU9J21vY2soKSgpJyBpZD0nLi4uJz4KKyAgICAgICAgICAgID4+PiBtb2NrLnJldHVybl92YWx1ZS5hc3NlcnRfY2FsbGVkX3dpdGgoKQorCisgICAgICAgIGByZXR1cm5fdmFsdWVgIGNhbiBhbHNvIGJlIHNldCBpbiB0aGUgY29uc3RydWN0b3I6CisKKyAgICAgICAgICAgID4+PiBtb2NrID0gTW9jayhyZXR1cm5fdmFsdWU9MykKKyAgICAgICAgICAgID4+PiBtb2NrLnJldHVybl92YWx1ZQorICAgICAgICAgICAgMworICAgICAgICAgICAgPj4+IG1vY2soKQorICAgICAgICAgICAgMworCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBzaWRlX2VmZmVjdAorCisgICAgICAgIFRoaXMgY2FuIGVpdGhlciBiZSBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSBtb2NrIGlzIGNhbGxlZCwKKyAgICAgICAgb3IgYW4gZXhjZXB0aW9uIChjbGFzcyBvciBpbnN0YW5jZSkgdG8gYmUgcmFpc2VkLgorCisgICAgICAgIElmIHlvdSBwYXNzIGluIGEgZnVuY3Rpb24gaXQgd2lsbCBiZSBjYWxsZWQgd2l0aCBzYW1lIGFyZ3VtZW50cyBhcyB0aGUKKyAgICAgICAgbW9jayBhbmQgdW5sZXNzIHRoZSBmdW5jdGlvbiByZXR1cm5zIHRoZSA6ZGF0YTpgREVGQVVMVGAgc2luZ2xldG9uIHRoZQorICAgICAgICBjYWxsIHRvIHRoZSBtb2NrIHdpbGwgdGhlbiByZXR1cm4gd2hhdGV2ZXIgdGhlIGZ1bmN0aW9uIHJldHVybnMuIElmIHRoZQorICAgICAgICBmdW5jdGlvbiByZXR1cm5zIDpkYXRhOmBERUZBVUxUYCB0aGVuIHRoZSBtb2NrIHdpbGwgcmV0dXJuIGl0cyBub3JtYWwKKyAgICAgICAgdmFsdWUgKGZyb20gdGhlIDphdHRyOmByZXR1cm5fdmFsdWVgLgorCisgICAgICAgIEFuIGV4YW1wbGUgb2YgYSBtb2NrIHRoYXQgcmFpc2VzIGFuIGV4Y2VwdGlvbiAodG8gdGVzdCBleGNlcHRpb24KKyAgICAgICAgaGFuZGxpbmcgb2YgYW4gQVBJKToKKworICAgICAgICAgICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgICAgICAgICAgID4+PiBtb2NrLnNpZGVfZWZmZWN0ID0gRXhjZXB0aW9uKCdCb29tIScpCisgICAgICAgICAgICA+Pj4gbW9jaygpCisgICAgICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAgIC4uLgorICAgICAgICAgICAgRXhjZXB0aW9uOiBCb29tIQorCisgICAgICAgIFVzaW5nIGBzaWRlX2VmZmVjdGAgdG8gcmV0dXJuIGEgc2VxdWVuY2Ugb2YgdmFsdWVzOgorCisgICAgICAgICAgICA+Pj4gbW9jayA9IE1vY2soKQorICAgICAgICAgICAgPj4+IG1vY2suc2lkZV9lZmZlY3QgPSBbMywgMiwgMV0KKyAgICAgICAgICAgID4+PiBtb2NrKCksIG1vY2soKSwgbW9jaygpCisgICAgICAgICAgICAoMywgMiwgMSkKKworICAgICAgICBUaGUgYHNpZGVfZWZmZWN0YCBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0aGUgc2FtZSBhcmd1bWVudHMgYXMgdGhlCisgICAgICAgIG1vY2sgKHNvIGl0IGlzIHdpc2UgZm9yIGl0IHRvIHRha2UgYXJiaXRyYXJ5IGFyZ3MgYW5kIGtleXdvcmQKKyAgICAgICAgYXJndW1lbnRzKSBhbmQgd2hhdGV2ZXIgaXQgcmV0dXJucyBpcyB1c2VkIGFzIHRoZSByZXR1cm4gdmFsdWUgZm9yCisgICAgICAgIHRoZSBjYWxsLiBUaGUgZXhjZXB0aW9uIGlzIGlmIGBzaWRlX2VmZmVjdGAgcmV0dXJucyA6ZGF0YTpgREVGQVVMVGAsCisgICAgICAgIGluIHdoaWNoIGNhc2UgdGhlIG5vcm1hbCA6YXR0cjpgcmV0dXJuX3ZhbHVlYCBpcyB1c2VkLgorCisgICAgICAgICAgICA+Pj4gbW9jayA9IE1vY2socmV0dXJuX3ZhbHVlPTMpCisgICAgICAgICAgICA+Pj4gZGVmIHNpZGVfZWZmZWN0KCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAuLi4gICAgIHJldHVybiBERUZBVUxUCisgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgID4+PiBtb2NrLnNpZGVfZWZmZWN0ID0gc2lkZV9lZmZlY3QKKyAgICAgICAgICAgID4+PiBtb2NrKCkKKyAgICAgICAgICAgIDMKKworICAgICAgICBgc2lkZV9lZmZlY3RgIGNhbiBiZSBzZXQgaW4gdGhlIGNvbnN0cnVjdG9yLiBIZXJlJ3MgYW4gZXhhbXBsZSB0aGF0CisgICAgICAgIGFkZHMgb25lIHRvIHRoZSB2YWx1ZSB0aGUgbW9jayBpcyBjYWxsZWQgd2l0aCBhbmQgcmV0dXJucyBpdDoKKworICAgICAgICAgICAgPj4+IHNpZGVfZWZmZWN0ID0gbGFtYmRhIHZhbHVlOiB2YWx1ZSArIDEKKyAgICAgICAgICAgID4+PiBtb2NrID0gTW9jayhzaWRlX2VmZmVjdD1zaWRlX2VmZmVjdCkKKyAgICAgICAgICAgID4+PiBtb2NrKDMpCisgICAgICAgICAgICA0CisgICAgICAgICAgICA+Pj4gbW9jaygtOCkKKyAgICAgICAgICAgIC03CisKKyAgICAgICAgU2V0dGluZyBgc2lkZV9lZmZlY3RgIHRvIGBOb25lYCBjbGVhcnMgaXQ6CisKKyAgICAgICAgICAgID4+PiBtID0gTW9jayhzaWRlX2VmZmVjdD1LZXlFcnJvciwgcmV0dXJuX3ZhbHVlPTMpCisgICAgICAgICAgICA+Pj4gbSgpCisgICAgICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgICAgLi4uCisgICAgICAgICAgICBLZXlFcnJvcgorICAgICAgICAgICAgPj4+IG0uc2lkZV9lZmZlY3QgPSBOb25lCisgICAgICAgICAgICA+Pj4gbSgpCisgICAgICAgICAgICAzCisKKworICAgIC4uIGF0dHJpYnV0ZTo6IGNhbGxfYXJncworCisgICAgICAgIFRoaXMgaXMgZWl0aGVyIGBOb25lYCAoaWYgdGhlIG1vY2sgaGFzbid0IGJlZW4gY2FsbGVkKSwgb3IgdGhlCisgICAgICAgIGFyZ3VtZW50cyB0aGF0IHRoZSBtb2NrIHdhcyBsYXN0IGNhbGxlZCB3aXRoLiBUaGlzIHdpbGwgYmUgaW4gdGhlCisgICAgICAgIGZvcm0gb2YgYSB0dXBsZTogdGhlIGZpcnN0IG1lbWJlciBpcyBhbnkgb3JkZXJlZCBhcmd1bWVudHMgdGhlIG1vY2sKKyAgICAgICAgd2FzIGNhbGxlZCB3aXRoIChvciBhbiBlbXB0eSB0dXBsZSkgYW5kIHRoZSBzZWNvbmQgbWVtYmVyIGlzIGFueQorICAgICAgICBrZXl3b3JkIGFyZ3VtZW50cyAob3IgYW4gZW1wdHkgZGljdGlvbmFyeSkuCisKKyAgICAgICAgICAgID4+PiBtb2NrID0gTW9jayhyZXR1cm5fdmFsdWU9Tm9uZSkKKyAgICAgICAgICAgID4+PiBwcmludCBtb2NrLmNhbGxfYXJncworICAgICAgICAgICAgTm9uZQorICAgICAgICAgICAgPj4+IG1vY2soKQorICAgICAgICAgICAgPj4+IG1vY2suY2FsbF9hcmdzCisgICAgICAgICAgICBjYWxsKCkKKyAgICAgICAgICAgID4+PiBtb2NrLmNhbGxfYXJncyA9PSAoKQorICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgICAgPj4+IG1vY2soMywgNCkKKyAgICAgICAgICAgID4+PiBtb2NrLmNhbGxfYXJncworICAgICAgICAgICAgY2FsbCgzLCA0KQorICAgICAgICAgICAgPj4+IG1vY2suY2FsbF9hcmdzID09ICgoMywgNCksKQorICAgICAgICAgICAgVHJ1ZQorICAgICAgICAgICAgPj4+IG1vY2soMywgNCwgNSwga2V5PSdmaXNoJywgbmV4dD0ndzAwdCEnKQorICAgICAgICAgICAgPj4+IG1vY2suY2FsbF9hcmdzCisgICAgICAgICAgICBjYWxsKDMsIDQsIDUsIGtleT0nZmlzaCcsIG5leHQ9J3cwMHQhJykKKworICAgICAgICBgY2FsbF9hcmdzYCwgYWxvbmcgd2l0aCBtZW1iZXJzIG9mIHRoZSBsaXN0cyA6YXR0cjpgY2FsbF9hcmdzX2xpc3RgLAorICAgICAgICA6YXR0cjpgbWV0aG9kX2NhbGxzYCBhbmQgOmF0dHI6YG1vY2tfY2FsbHNgIGFyZSA6ZGF0YTpgY2FsbGAgb2JqZWN0cy4KKyAgICAgICAgVGhlc2UgYXJlIHR1cGxlcywgc28gdGhleSBjYW4gYmUgdW5wYWNrZWQgdG8gZ2V0IGF0IHRoZSBpbmRpdmlkdWFsCisgICAgICAgIGFyZ3VtZW50cyBhbmQgbWFrZSBtb3JlIGNvbXBsZXggYXNzZXJ0aW9ucy4gU2VlCisgICAgICAgIDpyZWY6YGNhbGxzIGFzIHR1cGxlcyA8Y2FsbHMtYXMtdHVwbGVzPmAuCisKKworICAgIC4uIGF0dHJpYnV0ZTo6IGNhbGxfYXJnc19saXN0CisKKyAgICAgICAgVGhpcyBpcyBhIGxpc3Qgb2YgYWxsIHRoZSBjYWxscyBtYWRlIHRvIHRoZSBtb2NrIG9iamVjdCBpbiBzZXF1ZW5jZQorICAgICAgICAoc28gdGhlIGxlbmd0aCBvZiB0aGUgbGlzdCBpcyB0aGUgbnVtYmVyIG9mIHRpbWVzIGl0IGhhcyBiZWVuCisgICAgICAgIGNhbGxlZCkuIEJlZm9yZSBhbnkgY2FsbHMgaGF2ZSBiZWVuIG1hZGUgaXQgaXMgYW4gZW1wdHkgbGlzdC4gVGhlCisgICAgICAgIDpkYXRhOmBjYWxsYCBvYmplY3QgY2FuIGJlIHVzZWQgZm9yIGNvbnZlbmllbnRseSBjb25zdHJ1Y3RpbmcgbGlzdHMgb2YKKyAgICAgICAgY2FsbHMgdG8gY29tcGFyZSB3aXRoIGBjYWxsX2FyZ3NfbGlzdGAuCisKKyAgICAgICAgICAgID4+PiBtb2NrID0gTW9jayhyZXR1cm5fdmFsdWU9Tm9uZSkKKyAgICAgICAgICAgID4+PiBtb2NrKCkKKyAgICAgICAgICAgID4+PiBtb2NrKDMsIDQpCisgICAgICAgICAgICA+Pj4gbW9jayhrZXk9J2Zpc2gnLCBuZXh0PSd3MDB0IScpCisgICAgICAgICAgICA+Pj4gbW9jay5jYWxsX2FyZ3NfbGlzdAorICAgICAgICAgICAgW2NhbGwoKSwgY2FsbCgzLCA0KSwgY2FsbChrZXk9J2Zpc2gnLCBuZXh0PSd3MDB0IScpXQorICAgICAgICAgICAgPj4+IGV4cGVjdGVkID0gWygpLCAoKDMsIDQpLCksICh7J2tleSc6ICdmaXNoJywgJ25leHQnOiAndzAwdCEnfSwpXQorICAgICAgICAgICAgPj4+IG1vY2suY2FsbF9hcmdzX2xpc3QgPT0gZXhwZWN0ZWQKKyAgICAgICAgICAgIFRydWUKKworICAgICAgICBNZW1iZXJzIG9mIGBjYWxsX2FyZ3NfbGlzdGAgYXJlIDpkYXRhOmBjYWxsYCBvYmplY3RzLiBUaGVzZSBjYW4gYmUKKyAgICAgICAgdW5wYWNrZWQgYXMgdHVwbGVzIHRvIGdldCBhdCB0aGUgaW5kaXZpZHVhbCBhcmd1bWVudHMuIFNlZQorICAgICAgICA6cmVmOmBjYWxscyBhcyB0dXBsZXMgPGNhbGxzLWFzLXR1cGxlcz5gLgorCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBtZXRob2RfY2FsbHMKKworICAgICAgICBBcyB3ZWxsIGFzIHRyYWNraW5nIGNhbGxzIHRvIHRoZW1zZWx2ZXMsIG1vY2tzIGFsc28gdHJhY2sgY2FsbHMgdG8KKyAgICAgICAgbWV0aG9kcyBhbmQgYXR0cmlidXRlcywgYW5kICp0aGVpciogbWV0aG9kcyBhbmQgYXR0cmlidXRlczoKKworICAgICAgICAgICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgICAgICAgICAgID4+PiBtb2NrLm1ldGhvZCgpCisgICAgICAgICAgICA8TW9jayBuYW1lPSdtb2NrLm1ldGhvZCgpJyBpZD0nLi4uJz4KKyAgICAgICAgICAgID4+PiBtb2NrLnByb3BlcnR5Lm1ldGhvZC5hdHRyaWJ1dGUoKQorICAgICAgICAgICAgPE1vY2sgbmFtZT0nbW9jay5wcm9wZXJ0eS5tZXRob2QuYXR0cmlidXRlKCknIGlkPScuLi4nPgorICAgICAgICAgICAgPj4+IG1vY2subWV0aG9kX2NhbGxzCisgICAgICAgICAgICBbY2FsbC5tZXRob2QoKSwgY2FsbC5wcm9wZXJ0eS5tZXRob2QuYXR0cmlidXRlKCldCisKKyAgICAgICAgTWVtYmVycyBvZiBgbWV0aG9kX2NhbGxzYCBhcmUgOmRhdGE6YGNhbGxgIG9iamVjdHMuIFRoZXNlIGNhbiBiZQorICAgICAgICB1bnBhY2tlZCBhcyB0dXBsZXMgdG8gZ2V0IGF0IHRoZSBpbmRpdmlkdWFsIGFyZ3VtZW50cy4gU2VlCisgICAgICAgIDpyZWY6YGNhbGxzIGFzIHR1cGxlcyA8Y2FsbHMtYXMtdHVwbGVzPmAuCisKKworICAgIC4uIGF0dHJpYnV0ZTo6IG1vY2tfY2FsbHMKKworICAgICAgICBgbW9ja19jYWxsc2AgcmVjb3JkcyAqYWxsKiBjYWxscyB0byB0aGUgbW9jayBvYmplY3QsIGl0cyBtZXRob2RzLCBtYWdpYworICAgICAgICBtZXRob2RzICphbmQqIHJldHVybiB2YWx1ZSBtb2Nrcy4KKworICAgICAgICAgICAgPj4+IG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICAgICAgPj4+IHJlc3VsdCA9IG1vY2soMSwgMiwgMykKKyAgICAgICAgICAgID4+PiBtb2NrLmZpcnN0KGE9MykKKyAgICAgICAgICAgIDxNYWdpY01vY2sgbmFtZT0nbW9jay5maXJzdCgpJyBpZD0nLi4uJz4KKyAgICAgICAgICAgID4+PiBtb2NrLnNlY29uZCgpCisgICAgICAgICAgICA8TWFnaWNNb2NrIG5hbWU9J21vY2suc2Vjb25kKCknIGlkPScuLi4nPgorICAgICAgICAgICAgPj4+IGludChtb2NrKQorICAgICAgICAgICAgMQorICAgICAgICAgICAgPj4+IHJlc3VsdCgxKQorICAgICAgICAgICAgPE1hZ2ljTW9jayBuYW1lPSdtb2NrKCkoKScgaWQ9Jy4uLic+CisgICAgICAgICAgICA+Pj4gZXhwZWN0ZWQgPSBbY2FsbCgxLCAyLCAzKSwgY2FsbC5maXJzdChhPTMpLCBjYWxsLnNlY29uZCgpLAorICAgICAgICAgICAgLi4uIGNhbGwuX19pbnRfXygpLCBjYWxsKCkoMSldCisgICAgICAgICAgICA+Pj4gbW9jay5tb2NrX2NhbGxzID09IGV4cGVjdGVkCisgICAgICAgICAgICBUcnVlCisKKyAgICAgICAgTWVtYmVycyBvZiBgbW9ja19jYWxsc2AgYXJlIDpkYXRhOmBjYWxsYCBvYmplY3RzLiBUaGVzZSBjYW4gYmUKKyAgICAgICAgdW5wYWNrZWQgYXMgdHVwbGVzIHRvIGdldCBhdCB0aGUgaW5kaXZpZHVhbCBhcmd1bWVudHMuIFNlZQorICAgICAgICA6cmVmOmBjYWxscyBhcyB0dXBsZXMgPGNhbGxzLWFzLXR1cGxlcz5gLgorCisKKyAgICAuLiBhdHRyaWJ1dGU6OiBfX2NsYXNzX18KKworICAgICAgICBOb3JtYWxseSB0aGUgYF9fY2xhc3NfX2AgYXR0cmlidXRlIG9mIGFuIG9iamVjdCB3aWxsIHJldHVybiBpdHMgdHlwZS4KKyAgICAgICAgRm9yIGEgbW9jayBvYmplY3Qgd2l0aCBhIGBzcGVjYCBgX19jbGFzc19fYCByZXR1cm5zIHRoZSBzcGVjIGNsYXNzCisgICAgICAgIGluc3RlYWQuIFRoaXMgYWxsb3dzIG1vY2sgb2JqZWN0cyB0byBwYXNzIGBpc2luc3RhbmNlYCB0ZXN0cyBmb3IgdGhlCisgICAgICAgIG9iamVjdCB0aGV5IGFyZSByZXBsYWNpbmcgLyBtYXNxdWVyYWRpbmcgYXM6CisKKyAgICAgICAgICAgID4+PiBtb2NrID0gTW9jayhzcGVjPTMpCisgICAgICAgICAgICA+Pj4gaXNpbnN0YW5jZShtb2NrLCBpbnQpCisgICAgICAgICAgICBUcnVlCisKKyAgICAgICAgYF9fY2xhc3NfX2AgaXMgYXNzaWduYWJsZSB0bywgdGhpcyBhbGxvd3MgYSBtb2NrIHRvIHBhc3MgYW4KKyAgICAgICAgYGlzaW5zdGFuY2VgIGNoZWNrIHdpdGhvdXQgZm9yY2luZyB5b3UgdG8gdXNlIGEgc3BlYzoKKworICAgICAgICAgICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgICAgICAgICAgID4+PiBtb2NrLl9fY2xhc3NfXyA9IGRpY3QKKyAgICAgICAgICAgID4+PiBpc2luc3RhbmNlKG1vY2ssIGRpY3QpCisgICAgICAgICAgICBUcnVlCisKKy4uIGNsYXNzOjogTm9uQ2FsbGFibGVNb2NrKHNwZWM9Tm9uZSwgd3JhcHM9Tm9uZSwgbmFtZT1Ob25lLCBzcGVjX3NldD1Ob25lLCAqKmt3YXJncykKKworICAgIEEgbm9uLWNhbGxhYmxlIHZlcnNpb24gb2YgYE1vY2tgLiBUaGUgY29uc3RydWN0b3IgcGFyYW1ldGVycyBoYXZlIHRoZSBzYW1lCisgICAgbWVhbmluZyBvZiBgTW9ja2AsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBgcmV0dXJuX3ZhbHVlYCBhbmQgYHNpZGVfZWZmZWN0YAorICAgIHdoaWNoIGhhdmUgbm8gbWVhbmluZyBvbiBhIG5vbi1jYWxsYWJsZSBtb2NrLgorCitNb2NrIG9iamVjdHMgdGhhdCB1c2UgYSBjbGFzcyBvciBhbiBpbnN0YW5jZSBhcyBhIGBzcGVjYCBvciBgc3BlY19zZXRgIGFyZSBhYmxlCit0byBwYXNzIGBpc2ludGFuY2VgIHRlc3RzOgorCisgICAgPj4+IG1vY2sgPSBNb2NrKHNwZWM9U29tZUNsYXNzKQorICAgID4+PiBpc2luc3RhbmNlKG1vY2ssIFNvbWVDbGFzcykKKyAgICBUcnVlCisgICAgPj4+IG1vY2sgPSBNb2NrKHNwZWNfc2V0PVNvbWVDbGFzcygpKQorICAgID4+PiBpc2luc3RhbmNlKG1vY2ssIFNvbWVDbGFzcykKKyAgICBUcnVlCisKK1RoZSBgTW9ja2AgY2xhc3NlcyBoYXZlIHN1cHBvcnQgZm9yIG1vY2tpbmcgbWFnaWMgbWV0aG9kcy4gU2VlIDpyZWY6YG1hZ2ljCittZXRob2RzIDxtYWdpYy1tZXRob2RzPmAgZm9yIHRoZSBmdWxsIGRldGFpbHMuCisKK1RoZSBtb2NrIGNsYXNzZXMgYW5kIHRoZSA6ZnVuYzpgcGF0Y2hgIGRlY29yYXRvcnMgYWxsIHRha2UgYXJiaXRyYXJ5IGtleXdvcmQKK2FyZ3VtZW50cyBmb3IgY29uZmlndXJhdGlvbi4gRm9yIHRoZSBgcGF0Y2hgIGRlY29yYXRvcnMgdGhlIGtleXdvcmRzIGFyZQorcGFzc2VkIHRvIHRoZSBjb25zdHJ1Y3RvciBvZiB0aGUgbW9jayBiZWluZyBjcmVhdGVkLiBUaGUga2V5d29yZCBhcmd1bWVudHMKK2FyZSBmb3IgY29uZmlndXJpbmcgYXR0cmlidXRlcyBvZiB0aGUgbW9jazoKKworICAgICAgICA+Pj4gbSA9IE1hZ2ljTW9jayhhdHRyaWJ1dGU9Mywgb3RoZXI9J2Zpc2gnKQorICAgICAgICA+Pj4gbS5hdHRyaWJ1dGUKKyAgICAgICAgMworICAgICAgICA+Pj4gbS5vdGhlcgorICAgICAgICAnZmlzaCcKKworVGhlIHJldHVybiB2YWx1ZSBhbmQgc2lkZSBlZmZlY3Qgb2YgY2hpbGQgbW9ja3MgY2FuIGJlIHNldCBpbiB0aGUgc2FtZSB3YXksCit1c2luZyBkb3R0ZWQgbm90YXRpb24uIEFzIHlvdSBjYW4ndCB1c2UgZG90dGVkIG5hbWVzIGRpcmVjdGx5IGluIGEgY2FsbCB5b3UKK2hhdmUgdG8gY3JlYXRlIGEgZGljdGlvbmFyeSBhbmQgdW5wYWNrIGl0IHVzaW5nIGAqKmA6CisKKyAgICA+Pj4gYXR0cnMgPSB7J21ldGhvZC5yZXR1cm5fdmFsdWUnOiAzLCAnb3RoZXIuc2lkZV9lZmZlY3QnOiBLZXlFcnJvcn0KKyAgICA+Pj4gbW9jayA9IE1vY2soc29tZV9hdHRyaWJ1dGU9J2VnZ3MnLCAqKmF0dHJzKQorICAgID4+PiBtb2NrLnNvbWVfYXR0cmlidXRlCisgICAgJ2VnZ3MnCisgICAgPj4+IG1vY2subWV0aG9kKCkKKyAgICAzCisgICAgPj4+IG1vY2sub3RoZXIoKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAgIEtleUVycm9yCisKKworLi4gY2xhc3M6OiBQcm9wZXJ0eU1vY2soKmFyZ3MsICoqa3dhcmdzKQorCisgICBBIG1vY2sgaW50ZW5kZWQgdG8gYmUgdXNlZCBhcyBhIHByb3BlcnR5LCBvciBvdGhlciBkZXNjcmlwdG9yLCBvbiBhIGNsYXNzLgorICAgYFByb3BlcnR5TW9ja2AgcHJvdmlkZXMgYF9fZ2V0X19gIGFuZCBgX19zZXRfX2AgbWV0aG9kcyBzbyB5b3UgY2FuIHNwZWNpZnkKKyAgIGEgcmV0dXJuIHZhbHVlIHdoZW4gaXQgaXMgZmV0Y2hlZC4KKworICAgRmV0Y2hpbmcgYSBgUHJvcGVydHlNb2NrYCBpbnN0YW5jZSBmcm9tIGFuIG9iamVjdCBjYWxscyB0aGUgbW9jaywgd2l0aAorICAgbm8gYXJncy4gU2V0dGluZyBpdCBjYWxscyB0aGUgbW9jayB3aXRoIHRoZSB2YWx1ZSBiZWluZyBzZXQuCisKKyAgICAgICAgPj4+IGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAuLi4gICAgIEBwcm9wZXJ0eQorICAgICAgICAuLi4gICAgIGRlZiBmb28oc2VsZik6CisgICAgICAgIC4uLiAgICAgICAgIHJldHVybiAnc29tZXRoaW5nJworICAgICAgICAuLi4gICAgIEBmb28uc2V0dGVyCisgICAgICAgIC4uLiAgICAgZGVmIGZvbyhzZWxmLCB2YWx1ZSk6CisgICAgICAgIC4uLiAgICAgICAgIHBhc3MKKyAgICAgICAgLi4uCisgICAgICAgID4+PiB3aXRoIHBhdGNoKCdfX21haW5fXy5Gb28uZm9vJywgbmV3X2NhbGxhYmxlPVByb3BlcnR5TW9jaykgYXMgbW9ja19mb286CisgICAgICAgIC4uLiAgICAgbW9ja19mb28ucmV0dXJuX3ZhbHVlID0gJ21vY2tpdHktbW9jaycKKyAgICAgICAgLi4uICAgICB0aGlzX2ZvbyA9IEZvbygpCisgICAgICAgIC4uLiAgICAgcHJpbnQgdGhpc19mb28uZm9vCisgICAgICAgIC4uLiAgICAgdGhpc19mb28uZm9vID0gNgorICAgICAgICAuLi4KKyAgICAgICAgbW9ja2l0eS1tb2NrCisgICAgICAgID4+PiBtb2NrX2Zvby5tb2NrX2NhbGxzCisgICAgICAgIFtjYWxsKCksIGNhbGwoNildCisKK0JlY2F1c2Ugb2YgdGhlIHdheSBtb2NrIGF0dHJpYnV0ZXMgYXJlIHN0b3JlZCB5b3UgY2FuJ3QgZGlyZWN0bHkgYXR0YWNoIGEKK2BQcm9wZXJ0eU1vY2tgIHRvIGEgbW9jayBvYmplY3QuIEluc3RlYWQgeW91IGNhbiBhdHRhY2ggaXQgdG8gdGhlIG1vY2sgdHlwZQorb2JqZWN0OjoKKworICAgID4+PiBtID0gTWFnaWNNb2NrKCkKKyAgICA+Pj4gcCA9IFByb3BlcnR5TW9jayhyZXR1cm5fdmFsdWU9MykKKyAgICA+Pj4gdHlwZShtKS5mb28gPSBwCisgICAgPj4+IG0uZm9vCisgICAgMworICAgID4+PiBwLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKworCitDYWxsaW5nCit+fn5+fn5+CisKK01vY2sgb2JqZWN0cyBhcmUgY2FsbGFibGUuIFRoZSBjYWxsIHdpbGwgcmV0dXJuIHRoZSB2YWx1ZSBzZXQgYXMgdGhlCis6YXR0cjpgfk1vY2sucmV0dXJuX3ZhbHVlYCBhdHRyaWJ1dGUuIFRoZSBkZWZhdWx0IHJldHVybiB2YWx1ZSBpcyBhIG5ldyBNb2NrCitvYmplY3Q7IGl0IGlzIGNyZWF0ZWQgdGhlIGZpcnN0IHRpbWUgdGhlIHJldHVybiB2YWx1ZSBpcyBhY2Nlc3NlZCAoZWl0aGVyCitleHBsaWNpdGx5IG9yIGJ5IGNhbGxpbmcgdGhlIE1vY2spIC0gYnV0IGl0IGlzIHN0b3JlZCBhbmQgdGhlIHNhbWUgb25lCityZXR1cm5lZCBlYWNoIHRpbWUuCisKK0NhbGxzIG1hZGUgdG8gdGhlIG9iamVjdCB3aWxsIGJlIHJlY29yZGVkIGluIHRoZSBhdHRyaWJ1dGVzCitsaWtlIDphdHRyOmB+TW9jay5jYWxsX2FyZ3NgIGFuZCA6YXR0cjpgfk1vY2suY2FsbF9hcmdzX2xpc3RgLgorCitJZiA6YXR0cjpgfk1vY2suc2lkZV9lZmZlY3RgIGlzIHNldCB0aGVuIGl0IHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBjYWxsIGhhcworYmVlbiByZWNvcmRlZCwgc28gaWYgYHNpZGVfZWZmZWN0YCByYWlzZXMgYW4gZXhjZXB0aW9uIHRoZSBjYWxsIGlzIHN0aWxsCityZWNvcmRlZC4KKworVGhlIHNpbXBsZXN0IHdheSB0byBtYWtlIGEgbW9jayByYWlzZSBhbiBleGNlcHRpb24gd2hlbiBjYWxsZWQgaXMgdG8gbWFrZQorOmF0dHI6YH5Nb2NrLnNpZGVfZWZmZWN0YCBhbiBleGNlcHRpb24gY2xhc3Mgb3IgaW5zdGFuY2U6CisKKyAgICAgICAgPj4+IG0gPSBNYWdpY01vY2soc2lkZV9lZmZlY3Q9SW5kZXhFcnJvcikKKyAgICAgICAgPj4+IG0oMSwgMiwgMykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgIC4uLgorICAgICAgICBJbmRleEVycm9yCisgICAgICAgID4+PiBtLm1vY2tfY2FsbHMKKyAgICAgICAgW2NhbGwoMSwgMiwgMyldCisgICAgICAgID4+PiBtLnNpZGVfZWZmZWN0ID0gS2V5RXJyb3IoJ0JhbmchJykKKyAgICAgICAgPj4+IG0oJ3R3bycsICd0aHJlZScsICdmb3VyJykKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgIC4uLgorICAgICAgICBLZXlFcnJvcjogJ0JhbmchJworICAgICAgICA+Pj4gbS5tb2NrX2NhbGxzCisgICAgICAgIFtjYWxsKDEsIDIsIDMpLCBjYWxsKCd0d28nLCAndGhyZWUnLCAnZm91cicpXQorCitJZiBgc2lkZV9lZmZlY3RgIGlzIGEgZnVuY3Rpb24gdGhlbiB3aGF0ZXZlciB0aGF0IGZ1bmN0aW9uIHJldHVybnMgaXMgd2hhdAorY2FsbHMgdG8gdGhlIG1vY2sgcmV0dXJuLiBUaGUgYHNpZGVfZWZmZWN0YCBmdW5jdGlvbiBpcyBjYWxsZWQgd2l0aCB0aGUKK3NhbWUgYXJndW1lbnRzIGFzIHRoZSBtb2NrLiBUaGlzIGFsbG93cyB5b3UgdG8gdmFyeSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZQorY2FsbCBkeW5hbWljYWxseSwgYmFzZWQgb24gdGhlIGlucHV0OgorCisgICAgICAgID4+PiBkZWYgc2lkZV9lZmZlY3QodmFsdWUpOgorICAgICAgICAuLi4gICAgIHJldHVybiB2YWx1ZSArIDEKKyAgICAgICAgLi4uCisgICAgICAgID4+PiBtID0gTWFnaWNNb2NrKHNpZGVfZWZmZWN0PXNpZGVfZWZmZWN0KQorICAgICAgICA+Pj4gbSgxKQorICAgICAgICAyCisgICAgICAgID4+PiBtKDIpCisgICAgICAgIDMKKyAgICAgICAgPj4+IG0ubW9ja19jYWxscworICAgICAgICBbY2FsbCgxKSwgY2FsbCgyKV0KKworSWYgeW91IHdhbnQgdGhlIG1vY2sgdG8gc3RpbGwgcmV0dXJuIHRoZSBkZWZhdWx0IHJldHVybiB2YWx1ZSAoYSBuZXcgbW9jayksIG9yCithbnkgc2V0IHJldHVybiB2YWx1ZSwgdGhlbiB0aGVyZSBhcmUgdHdvIHdheXMgb2YgZG9pbmcgdGhpcy4gRWl0aGVyIHJldHVybgorYG1vY2sucmV0dXJuX3ZhbHVlYCBmcm9tIGluc2lkZSBgc2lkZV9lZmZlY3RgLCBvciByZXR1cm4gOmRhdGE6YERFRkFVTFRgOgorCisgICAgICAgID4+PiBtID0gTWFnaWNNb2NrKCkKKyAgICAgICAgPj4+IGRlZiBzaWRlX2VmZmVjdCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAuLi4gICAgIHJldHVybiBtLnJldHVybl92YWx1ZQorICAgICAgICAuLi4KKyAgICAgICAgPj4+IG0uc2lkZV9lZmZlY3QgPSBzaWRlX2VmZmVjdAorICAgICAgICA+Pj4gbS5yZXR1cm5fdmFsdWUgPSAzCisgICAgICAgID4+PiBtKCkKKyAgICAgICAgMworICAgICAgICA+Pj4gZGVmIHNpZGVfZWZmZWN0KCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIC4uLiAgICAgcmV0dXJuIERFRkFVTFQKKyAgICAgICAgLi4uCisgICAgICAgID4+PiBtLnNpZGVfZWZmZWN0ID0gc2lkZV9lZmZlY3QKKyAgICAgICAgPj4+IG0oKQorICAgICAgICAzCisKK1RvIHJlbW92ZSBhIGBzaWRlX2VmZmVjdGAsIGFuZCByZXR1cm4gdG8gdGhlIGRlZmF1bHQgYmVoYXZpb3VyLCBzZXQgdGhlCitgc2lkZV9lZmZlY3RgIHRvIGBOb25lYDoKKworICAgICAgICA+Pj4gbSA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9NikKKyAgICAgICAgPj4+IGRlZiBzaWRlX2VmZmVjdCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAuLi4gICAgIHJldHVybiAzCisgICAgICAgIC4uLgorICAgICAgICA+Pj4gbS5zaWRlX2VmZmVjdCA9IHNpZGVfZWZmZWN0CisgICAgICAgID4+PiBtKCkKKyAgICAgICAgMworICAgICAgICA+Pj4gbS5zaWRlX2VmZmVjdCA9IE5vbmUKKyAgICAgICAgPj4+IG0oKQorICAgICAgICA2CisKK1RoZSBgc2lkZV9lZmZlY3RgIGNhbiBhbHNvIGJlIGFueSBpdGVyYWJsZSBvYmplY3QuIFJlcGVhdGVkIGNhbGxzIHRvIHRoZSBtb2NrCit3aWxsIHJldHVybiB2YWx1ZXMgZnJvbSB0aGUgaXRlcmFibGUgKHVudGlsIHRoZSBpdGVyYWJsZSBpcyBleGhhdXN0ZWQgYW5kCithIGBTdG9wSXRlcmF0aW9uYCBpcyByYWlzZWQpOgorCisgICAgICAgID4+PiBtID0gTWFnaWNNb2NrKHNpZGVfZWZmZWN0PVsxLCAyLCAzXSkKKyAgICAgICAgPj4+IG0oKQorICAgICAgICAxCisgICAgICAgID4+PiBtKCkKKyAgICAgICAgMgorICAgICAgICA+Pj4gbSgpCisgICAgICAgIDMKKyAgICAgICAgPj4+IG0oKQorICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgICAgLi4uCisgICAgICAgIFN0b3BJdGVyYXRpb24KKworSWYgYW55IG1lbWJlcnMgb2YgdGhlIGl0ZXJhYmxlIGFyZSBleGNlcHRpb25zIHRoZXkgd2lsbCBiZSByYWlzZWQgaW5zdGVhZCBvZgorcmV0dXJuZWQ6OgorCisgICAgICAgID4+PiBpdGVyYWJsZSA9ICgzMywgVmFsdWVFcnJvciwgNjYpCisgICAgICAgID4+PiBtID0gTWFnaWNNb2NrKHNpZGVfZWZmZWN0PWl0ZXJhYmxlKQorICAgICAgICA+Pj4gbSgpCisgICAgICAgIDMzCisgICAgICAgID4+PiBtKCkKKyAgICAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgLi4uCisgICAgICAgIFZhbHVlRXJyb3IKKyAgICAgICAgPj4+IG0oKQorICAgICAgICA2NgorCisKKy4uIF9kZWxldGluZy1hdHRyaWJ1dGVzOgorCitEZWxldGluZyBBdHRyaWJ1dGVzCit+fn5+fn5+fn5+fn5+fn5+fn5+CisKK01vY2sgb2JqZWN0cyBjcmVhdGUgYXR0cmlidXRlcyBvbiBkZW1hbmQuIFRoaXMgYWxsb3dzIHRoZW0gdG8gcHJldGVuZCB0byBiZQorb2JqZWN0cyBvZiBhbnkgdHlwZS4KKworWW91IG1heSB3YW50IGEgbW9jayBvYmplY3QgdG8gcmV0dXJuIGBGYWxzZWAgdG8gYSBgaGFzYXR0cmAgY2FsbCwgb3IgcmFpc2UgYW4KK2BBdHRyaWJ1dGVFcnJvcmAgd2hlbiBhbiBhdHRyaWJ1dGUgaXMgZmV0Y2hlZC4gWW91IGNhbiBkbyB0aGlzIGJ5IHByb3ZpZGluZworYW4gb2JqZWN0IGFzIGEgYHNwZWNgIGZvciBhIG1vY2ssIGJ1dCB0aGF0IGlzbid0IGFsd2F5cyBjb252ZW5pZW50LgorCitZb3UgImJsb2NrIiBhdHRyaWJ1dGVzIGJ5IGRlbGV0aW5nIHRoZW0uIE9uY2UgZGVsZXRlZCwgYWNjZXNzaW5nIGFuIGF0dHJpYnV0ZQord2lsbCByYWlzZSBhbiBgQXR0cmlidXRlRXJyb3JgLgorCisgICAgPj4+IG1vY2sgPSBNYWdpY01vY2soKQorICAgID4+PiBoYXNhdHRyKG1vY2ssICdtJykKKyAgICBUcnVlCisgICAgPj4+IGRlbCBtb2NrLm0KKyAgICA+Pj4gaGFzYXR0cihtb2NrLCAnbScpCisgICAgRmFsc2UKKyAgICA+Pj4gZGVsIG1vY2suZgorICAgID4+PiBtb2NrLmYKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAgIC4uLgorICAgIEF0dHJpYnV0ZUVycm9yOiBmCisKKworQXR0YWNoaW5nIE1vY2tzIGFzIEF0dHJpYnV0ZXMKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisKK1doZW4geW91IGF0dGFjaCBhIG1vY2sgYXMgYW4gYXR0cmlidXRlIG9mIGFub3RoZXIgbW9jayAob3IgYXMgdGhlIHJldHVybgordmFsdWUpIGl0IGJlY29tZXMgYSAiY2hpbGQiIG9mIHRoYXQgbW9jay4gQ2FsbHMgdG8gdGhlIGNoaWxkIGFyZSByZWNvcmRlZCBpbgordGhlIDphdHRyOmB+TW9jay5tZXRob2RfY2FsbHNgIGFuZCA6YXR0cjpgfk1vY2subW9ja19jYWxsc2AgYXR0cmlidXRlcyBvZiB0aGUKK3BhcmVudC4gVGhpcyBpcyB1c2VmdWwgZm9yIGNvbmZpZ3VyaW5nIGNoaWxkIG1vY2tzIGFuZCB0aGVuIGF0dGFjaGluZyB0aGVtIHRvCit0aGUgcGFyZW50LCBvciBmb3IgYXR0YWNoaW5nIG1vY2tzIHRvIGEgcGFyZW50IHRoYXQgcmVjb3JkcyBhbGwgY2FsbHMgdG8gdGhlCitjaGlsZHJlbiBhbmQgYWxsb3dzIHlvdSB0byBtYWtlIGFzc2VydGlvbnMgYWJvdXQgdGhlIG9yZGVyIG9mIGNhbGxzIGJldHdlZW4KK21vY2tzOgorCisgICAgPj4+IHBhcmVudCA9IE1hZ2ljTW9jaygpCisgICAgPj4+IGNoaWxkMSA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9Tm9uZSkKKyAgICA+Pj4gY2hpbGQyID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1Ob25lKQorICAgID4+PiBwYXJlbnQuY2hpbGQxID0gY2hpbGQxCisgICAgPj4+IHBhcmVudC5jaGlsZDIgPSBjaGlsZDIKKyAgICA+Pj4gY2hpbGQxKDEpCisgICAgPj4+IGNoaWxkMigyKQorICAgID4+PiBwYXJlbnQubW9ja19jYWxscworICAgIFtjYWxsLmNoaWxkMSgxKSwgY2FsbC5jaGlsZDIoMildCisKK1RoZSBleGNlcHRpb24gdG8gdGhpcyBpcyBpZiB0aGUgbW9jayBoYXMgYSBuYW1lLiBUaGlzIGFsbG93cyB5b3UgdG8gcHJldmVudAordGhlICJwYXJlbnRpbmciIGlmIGZvciBzb21lIHJlYXNvbiB5b3UgZG9uJ3Qgd2FudCBpdCB0byBoYXBwZW4uCisKKyAgICA+Pj4gbW9jayA9IE1hZ2ljTW9jaygpCisgICAgPj4+IG5vdF9hX2NoaWxkID0gTWFnaWNNb2NrKG5hbWU9J25vdC1hLWNoaWxkJykKKyAgICA+Pj4gbW9jay5hdHRyaWJ1dGUgPSBub3RfYV9jaGlsZAorICAgID4+PiBtb2NrLmF0dHJpYnV0ZSgpCisgICAgPE1hZ2ljTW9jayBuYW1lPSdub3QtYS1jaGlsZCgpJyBpZD0nLi4uJz4KKyAgICA+Pj4gbW9jay5tb2NrX2NhbGxzCisgICAgW10KKworTW9ja3MgY3JlYXRlZCBmb3IgeW91IGJ5IDpmdW5jOmBwYXRjaGAgYXJlIGF1dG9tYXRpY2FsbHkgZ2l2ZW4gbmFtZXMuIFRvCithdHRhY2ggbW9ja3MgdGhhdCBoYXZlIG5hbWVzIHRvIGEgcGFyZW50IHlvdSB1c2UgdGhlIDptZXRoOmB+TW9jay5hdHRhY2hfbW9ja2AKK21ldGhvZDoKKworICAgID4+PiB0aGluZzEgPSBvYmplY3QoKQorICAgID4+PiB0aGluZzIgPSBvYmplY3QoKQorICAgID4+PiBwYXJlbnQgPSBNYWdpY01vY2soKQorICAgID4+PiB3aXRoIHBhdGNoKCdfX21haW5fXy50aGluZzEnLCByZXR1cm5fdmFsdWU9Tm9uZSkgYXMgY2hpbGQxOgorICAgIC4uLiAgICAgd2l0aCBwYXRjaCgnX19tYWluX18udGhpbmcyJywgcmV0dXJuX3ZhbHVlPU5vbmUpIGFzIGNoaWxkMjoKKyAgICAuLi4gICAgICAgICBwYXJlbnQuYXR0YWNoX21vY2soY2hpbGQxLCAnY2hpbGQxJykKKyAgICAuLi4gICAgICAgICBwYXJlbnQuYXR0YWNoX21vY2soY2hpbGQyLCAnY2hpbGQyJykKKyAgICAuLi4gICAgICAgICBjaGlsZDEoJ29uZScpCisgICAgLi4uICAgICAgICAgY2hpbGQyKCd0d28nKQorICAgIC4uLgorICAgID4+PiBwYXJlbnQubW9ja19jYWxscworICAgIFtjYWxsLmNoaWxkMSgnb25lJyksIGNhbGwuY2hpbGQyKCd0d28nKV0KKworCisuLiBbI10gVGhlIG9ubHkgZXhjZXB0aW9ucyBhcmUgbWFnaWMgbWV0aG9kcyBhbmQgYXR0cmlidXRlcyAodGhvc2UgdGhhdCBoYXZlCisgICAgICAgbGVhZGluZyBhbmQgdHJhaWxpbmcgZG91YmxlIHVuZGVyc2NvcmVzKS4gTW9jayBkb2Vzbid0IGNyZWF0ZSB0aGVzZSBidXQKKyAgICAgICBpbnN0ZWFkIG9mIHJhaXNlcyBhbiBgYEF0dHJpYnV0ZUVycm9yYGAuIFRoaXMgaXMgYmVjYXVzZSB0aGUgaW50ZXJwcmV0ZXIKKyAgICAgICB3aWxsIG9mdGVuIGltcGxpY2l0bHkgcmVxdWVzdCB0aGVzZSBtZXRob2RzLCBhbmQgZ2V0cyAqdmVyeSogY29uZnVzZWQgdG8KKyAgICAgICBnZXQgYSBuZXcgTW9jayBvYmplY3Qgd2hlbiBpdCBleHBlY3RzIGEgbWFnaWMgbWV0aG9kLiBJZiB5b3UgbmVlZCBtYWdpYworICAgICAgIG1ldGhvZCBzdXBwb3J0IHNlZSA6cmVmOmBtYWdpYyBtZXRob2RzIDxtYWdpYy1tZXRob2RzPmAuCisKKworVGhlIHBhdGNoZXJzCis9PT09PT09PT09PT0KKworVGhlIHBhdGNoIGRlY29yYXRvcnMgYXJlIHVzZWQgZm9yIHBhdGNoaW5nIG9iamVjdHMgb25seSB3aXRoaW4gdGhlIHNjb3BlIG9mCit0aGUgZnVuY3Rpb24gdGhleSBkZWNvcmF0ZS4gVGhleSBhdXRvbWF0aWNhbGx5IGhhbmRsZSB0aGUgdW5wYXRjaGluZyBmb3IgeW91LAorZXZlbiBpZiBleGNlcHRpb25zIGFyZSByYWlzZWQuIEFsbCBvZiB0aGVzZSBmdW5jdGlvbnMgY2FuIGFsc28gYmUgdXNlZCBpbiB3aXRoCitzdGF0ZW1lbnRzIG9yIGFzIGNsYXNzIGRlY29yYXRvcnMuCisKKworcGF0Y2gKKy0tLS0tCisKKy4uIG5vdGU6OgorCisgICAgYHBhdGNoYCBpcyBzdHJhaWdodGZvcndhcmQgdG8gdXNlLiBUaGUga2V5IGlzIHRvIGRvIHRoZSBwYXRjaGluZyBpbiB0aGUKKyAgICByaWdodCBuYW1lc3BhY2UuIFNlZSB0aGUgc2VjdGlvbiBgd2hlcmUgdG8gcGF0Y2hgXy4KKworLi4gZnVuY3Rpb246OiBwYXRjaCh0YXJnZXQsIG5ldz1ERUZBVUxULCBzcGVjPU5vbmUsIGNyZWF0ZT1GYWxzZSwgc3BlY19zZXQ9Tm9uZSwgYXV0b3NwZWM9Tm9uZSwgbmV3X2NhbGxhYmxlPU5vbmUsICoqa3dhcmdzKQorCisgICAgYHBhdGNoYCBhY3RzIGFzIGEgZnVuY3Rpb24gZGVjb3JhdG9yLCBjbGFzcyBkZWNvcmF0b3Igb3IgYSBjb250ZXh0CisgICAgbWFuYWdlci4gSW5zaWRlIHRoZSBib2R5IG9mIHRoZSBmdW5jdGlvbiBvciB3aXRoIHN0YXRlbWVudCwgdGhlIGB0YXJnZXRgCisgICAgaXMgcGF0Y2hlZCB3aXRoIGEgYG5ld2Agb2JqZWN0LiBXaGVuIHRoZSBmdW5jdGlvbi93aXRoIHN0YXRlbWVudCBleGl0cworICAgIHRoZSBwYXRjaCBpcyB1bmRvbmUuCisKKyAgICBJZiBgbmV3YCBpcyBvbWl0dGVkLCB0aGVuIHRoZSB0YXJnZXQgaXMgcmVwbGFjZWQgd2l0aCBhCisgICAgOmNsYXNzOmBNYWdpY01vY2tgLiBJZiBgcGF0Y2hgIGlzIHVzZWQgYXMgYSBkZWNvcmF0b3IgYW5kIGBuZXdgIGlzCisgICAgb21pdHRlZCwgdGhlIGNyZWF0ZWQgbW9jayBpcyBwYXNzZWQgaW4gYXMgYW4gZXh0cmEgYXJndW1lbnQgdG8gdGhlCisgICAgZGVjb3JhdGVkIGZ1bmN0aW9uLiBJZiBgcGF0Y2hgIGlzIHVzZWQgYXMgYSBjb250ZXh0IG1hbmFnZXIgdGhlIGNyZWF0ZWQKKyAgICBtb2NrIGlzIHJldHVybmVkIGJ5IHRoZSBjb250ZXh0IG1hbmFnZXIuCisKKyAgICBgdGFyZ2V0YCBzaG91bGQgYmUgYSBzdHJpbmcgaW4gdGhlIGZvcm0gYCdwYWNrYWdlLm1vZHVsZS5DbGFzc05hbWUnYC4gVGhlCisgICAgYHRhcmdldGAgaXMgaW1wb3J0ZWQgYW5kIHRoZSBzcGVjaWZpZWQgb2JqZWN0IHJlcGxhY2VkIHdpdGggdGhlIGBuZXdgCisgICAgb2JqZWN0LCBzbyB0aGUgYHRhcmdldGAgbXVzdCBiZSBpbXBvcnRhYmxlIGZyb20gdGhlIGVudmlyb25tZW50IHlvdSBhcmUKKyAgICBjYWxsaW5nIGBwYXRjaGAgZnJvbS4gVGhlIHRhcmdldCBpcyBpbXBvcnRlZCB3aGVuIHRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24KKyAgICBpcyBleGVjdXRlZCwgbm90IGF0IGRlY29yYXRpb24gdGltZS4KKworICAgIFRoZSBgc3BlY2AgYW5kIGBzcGVjX3NldGAga2V5d29yZCBhcmd1bWVudHMgYXJlIHBhc3NlZCB0byB0aGUgYE1hZ2ljTW9ja2AKKyAgICBpZiBwYXRjaCBpcyBjcmVhdGluZyBvbmUgZm9yIHlvdS4KKworICAgIEluIGFkZGl0aW9uIHlvdSBjYW4gcGFzcyBgc3BlYz1UcnVlYCBvciBgc3BlY19zZXQ9VHJ1ZWAsIHdoaWNoIGNhdXNlcworICAgIHBhdGNoIHRvIHBhc3MgaW4gdGhlIG9iamVjdCBiZWluZyBtb2NrZWQgYXMgdGhlIHNwZWMvc3BlY19zZXQgb2JqZWN0LgorCisgICAgYG5ld19jYWxsYWJsZWAgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGEgZGlmZmVyZW50IGNsYXNzLCBvciBjYWxsYWJsZSBvYmplY3QsCisgICAgdGhhdCB3aWxsIGJlIGNhbGxlZCB0byBjcmVhdGUgdGhlIGBuZXdgIG9iamVjdC4gQnkgZGVmYXVsdCBgTWFnaWNNb2NrYCBpcworICAgIHVzZWQuCisKKyAgICBBIG1vcmUgcG93ZXJmdWwgZm9ybSBvZiBgc3BlY2AgaXMgYGF1dG9zcGVjYC4gSWYgeW91IHNldCBgYXV0b3NwZWM9VHJ1ZWAKKyAgICB0aGVuIHRoZSBtb2NrIHdpdGggYmUgY3JlYXRlZCB3aXRoIGEgc3BlYyBmcm9tIHRoZSBvYmplY3QgYmVpbmcgcmVwbGFjZWQuCisgICAgQWxsIGF0dHJpYnV0ZXMgb2YgdGhlIG1vY2sgd2lsbCBhbHNvIGhhdmUgdGhlIHNwZWMgb2YgdGhlIGNvcnJlc3BvbmRpbmcKKyAgICBhdHRyaWJ1dGUgb2YgdGhlIG9iamVjdCBiZWluZyByZXBsYWNlZC4gTWV0aG9kcyBhbmQgZnVuY3Rpb25zIGJlaW5nIG1vY2tlZAorICAgIHdpbGwgaGF2ZSB0aGVpciBhcmd1bWVudHMgY2hlY2tlZCBhbmQgd2lsbCByYWlzZSBhIGBUeXBlRXJyb3JgIGlmIHRoZXkgYXJlCisgICAgY2FsbGVkIHdpdGggdGhlIHdyb25nIHNpZ25hdHVyZS4gRm9yIG1vY2tzCisgICAgcmVwbGFjaW5nIGEgY2xhc3MsIHRoZWlyIHJldHVybiB2YWx1ZSAodGhlICdpbnN0YW5jZScpIHdpbGwgaGF2ZSB0aGUgc2FtZQorICAgIHNwZWMgYXMgdGhlIGNsYXNzLiBTZWUgdGhlIDpmdW5jOmBjcmVhdGVfYXV0b3NwZWNgIGZ1bmN0aW9uIGFuZAorICAgIDpyZWY6YGF1dG8tc3BlY2NpbmdgLgorCisgICAgSW5zdGVhZCBvZiBgYXV0b3NwZWM9VHJ1ZWAgeW91IGNhbiBwYXNzIGBhdXRvc3BlYz1zb21lX29iamVjdGAgdG8gdXNlIGFuCisgICAgYXJiaXRyYXJ5IG9iamVjdCBhcyB0aGUgc3BlYyBpbnN0ZWFkIG9mIHRoZSBvbmUgYmVpbmcgcmVwbGFjZWQuCisKKyAgICBCeSBkZWZhdWx0IGBwYXRjaGAgd2lsbCBmYWlsIHRvIHJlcGxhY2UgYXR0cmlidXRlcyB0aGF0IGRvbid0IGV4aXN0LiBJZgorICAgIHlvdSBwYXNzIGluIGBjcmVhdGU9VHJ1ZWAsIGFuZCB0aGUgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QsIHBhdGNoIHdpbGwKKyAgICBjcmVhdGUgdGhlIGF0dHJpYnV0ZSBmb3IgeW91IHdoZW4gdGhlIHBhdGNoZWQgZnVuY3Rpb24gaXMgY2FsbGVkLCBhbmQKKyAgICBkZWxldGUgaXQgYWdhaW4gYWZ0ZXJ3YXJkcy4gVGhpcyBpcyB1c2VmdWwgZm9yIHdyaXRpbmcgdGVzdHMgYWdhaW5zdAorICAgIGF0dHJpYnV0ZXMgdGhhdCB5b3VyIHByb2R1Y3Rpb24gY29kZSBjcmVhdGVzIGF0IHJ1bnRpbWUuIEl0IGlzIG9mZiBieSBieQorICAgIGRlZmF1bHQgYmVjYXVzZSBpdCBjYW4gYmUgZGFuZ2Vyb3VzLiBXaXRoIGl0IHN3aXRjaGVkIG9uIHlvdSBjYW4gd3JpdGUKKyAgICBwYXNzaW5nIHRlc3RzIGFnYWluc3QgQVBJcyB0aGF0IGRvbid0IGFjdHVhbGx5IGV4aXN0IQorCisgICAgUGF0Y2ggY2FuIGJlIHVzZWQgYXMgYSBgVGVzdENhc2VgIGNsYXNzIGRlY29yYXRvci4gSXQgd29ya3MgYnkKKyAgICBkZWNvcmF0aW5nIGVhY2ggdGVzdCBtZXRob2QgaW4gdGhlIGNsYXNzLiBUaGlzIHJlZHVjZXMgdGhlIGJvaWxlcnBsYXRlCisgICAgY29kZSB3aGVuIHlvdXIgdGVzdCBtZXRob2RzIHNoYXJlIGEgY29tbW9uIHBhdGNoaW5ncyBzZXQuIGBwYXRjaGAgZmluZHMKKyAgICB0ZXN0cyBieSBsb29raW5nIGZvciBtZXRob2QgbmFtZXMgdGhhdCBzdGFydCB3aXRoIGBwYXRjaC5URVNUX1BSRUZJWGAuCisgICAgQnkgZGVmYXVsdCB0aGlzIGlzIGB0ZXN0YCwgd2hpY2ggbWF0Y2hlcyB0aGUgd2F5IGB1bml0dGVzdGAgZmluZHMgdGVzdHMuCisgICAgWW91IGNhbiBzcGVjaWZ5IGFuIGFsdGVybmF0aXZlIHByZWZpeCBieSBzZXR0aW5nIGBwYXRjaC5URVNUX1BSRUZJWGAuCisKKyAgICBQYXRjaCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlciwgd2l0aCB0aGUgd2l0aCBzdGF0ZW1lbnQuIEhlcmUgdGhlCisgICAgcGF0Y2hpbmcgYXBwbGllcyB0byB0aGUgaW5kZW50ZWQgYmxvY2sgYWZ0ZXIgdGhlIHdpdGggc3RhdGVtZW50LiBJZiB5b3UKKyAgICB1c2UgImFzIiB0aGVuIHRoZSBwYXRjaGVkIG9iamVjdCB3aWxsIGJlIGJvdW5kIHRvIHRoZSBuYW1lIGFmdGVyIHRoZQorICAgICJhcyI7IHZlcnkgdXNlZnVsIGlmIGBwYXRjaGAgaXMgY3JlYXRpbmcgYSBtb2NrIG9iamVjdCBmb3IgeW91LgorCisgICAgYHBhdGNoYCB0YWtlcyBhcmJpdHJhcnkga2V5d29yZCBhcmd1bWVudHMuIFRoZXNlIHdpbGwgYmUgcGFzc2VkIHRvCisgICAgdGhlIGBNb2NrYCAob3IgYG5ld19jYWxsYWJsZWApIG9uIGNvbnN0cnVjdGlvbi4KKworICAgIGBwYXRjaC5kaWN0KC4uLilgLCBgcGF0Y2gubXVsdGlwbGUoLi4uKWAgYW5kIGBwYXRjaC5vYmplY3QoLi4uKWAgYXJlCisgICAgYXZhaWxhYmxlIGZvciBhbHRlcm5hdGUgdXNlLWNhc2VzLgorCitgcGF0Y2hgIGFzIGZ1bmN0aW9uIGRlY29yYXRvciwgY3JlYXRpbmcgdGhlIG1vY2sgZm9yIHlvdSBhbmQgcGFzc2luZyBpdCBpbnRvCit0aGUgZGVjb3JhdGVkIGZ1bmN0aW9uOgorCisgICAgPj4+IEBwYXRjaCgnX19tYWluX18uU29tZUNsYXNzJykKKyAgICAuLi4gZGVmIGZ1bmN0aW9uKG5vcm1hbF9hcmd1bWVudCwgbW9ja19jbGFzcyk6CisgICAgLi4uICAgICBwcmludChtb2NrX2NsYXNzIGlzIFNvbWVDbGFzcykKKyAgICAuLi4KKyAgICA+Pj4gZnVuY3Rpb24oTm9uZSkKKyAgICBUcnVlCisKK1BhdGNoaW5nIGEgY2xhc3MgcmVwbGFjZXMgdGhlIGNsYXNzIHdpdGggYSBgTWFnaWNNb2NrYCAqaW5zdGFuY2UqLiBJZiB0aGUKK2NsYXNzIGlzIGluc3RhbnRpYXRlZCBpbiB0aGUgY29kZSB1bmRlciB0ZXN0IHRoZW4gaXQgd2lsbCBiZSB0aGUKKzphdHRyOmB+TW9jay5yZXR1cm5fdmFsdWVgIG9mIHRoZSBtb2NrIHRoYXQgd2lsbCBiZSB1c2VkLgorCitJZiB0aGUgY2xhc3MgaXMgaW5zdGFudGlhdGVkIG11bHRpcGxlIHRpbWVzIHlvdSBjb3VsZCB1c2UKKzphdHRyOmB+TW9jay5zaWRlX2VmZmVjdGAgdG8gcmV0dXJuIGEgbmV3IG1vY2sgZWFjaCB0aW1lLiBBbHRlcm5hdGl2ZWx5IHlvdQorY2FuIHNldCB0aGUgYHJldHVybl92YWx1ZWAgdG8gYmUgYW55dGhpbmcgeW91IHdhbnQuCisKK1RvIGNvbmZpZ3VyZSByZXR1cm4gdmFsdWVzIG9uIG1ldGhvZHMgb2YgKmluc3RhbmNlcyogb24gdGhlIHBhdGNoZWQgY2xhc3MKK3lvdSBtdXN0IGRvIHRoaXMgb24gdGhlIGByZXR1cm5fdmFsdWVgLiBGb3IgZXhhbXBsZToKKworICAgID4+PiBjbGFzcyBDbGFzcyhvYmplY3QpOgorICAgIC4uLiAgICAgZGVmIG1ldGhvZChzZWxmKToKKyAgICAuLi4gICAgICAgICBwYXNzCisgICAgLi4uCisgICAgPj4+IHdpdGggcGF0Y2goJ19fbWFpbl9fLkNsYXNzJykgYXMgTW9ja0NsYXNzOgorICAgIC4uLiAgICAgaW5zdGFuY2UgPSBNb2NrQ2xhc3MucmV0dXJuX3ZhbHVlCisgICAgLi4uICAgICBpbnN0YW5jZS5tZXRob2QucmV0dXJuX3ZhbHVlID0gJ2ZvbycKKyAgICAuLi4gICAgIGFzc2VydCBDbGFzcygpIGlzIGluc3RhbmNlCisgICAgLi4uICAgICBhc3NlcnQgQ2xhc3MoKS5tZXRob2QoKSA9PSAnZm9vJworICAgIC4uLgorCitJZiB5b3UgdXNlIGBzcGVjYCBvciBgc3BlY19zZXRgIGFuZCBgcGF0Y2hgIGlzIHJlcGxhY2luZyBhICpjbGFzcyosIHRoZW4gdGhlCityZXR1cm4gdmFsdWUgb2YgdGhlIGNyZWF0ZWQgbW9jayB3aWxsIGhhdmUgdGhlIHNhbWUgc3BlYy4KKworICAgID4+PiBPcmlnaW5hbCA9IENsYXNzCisgICAgPj4+IHBhdGNoZXIgPSBwYXRjaCgnX19tYWluX18uQ2xhc3MnLCBzcGVjPVRydWUpCisgICAgPj4+IE1vY2tDbGFzcyA9IHBhdGNoZXIuc3RhcnQoKQorICAgID4+PiBpbnN0YW5jZSA9IE1vY2tDbGFzcygpCisgICAgPj4+IGFzc2VydCBpc2luc3RhbmNlKGluc3RhbmNlLCBPcmlnaW5hbCkKKyAgICA+Pj4gcGF0Y2hlci5zdG9wKCkKKworVGhlIGBuZXdfY2FsbGFibGVgIGFyZ3VtZW50IGlzIHVzZWZ1bCB3aGVyZSB5b3Ugd2FudCB0byB1c2UgYW4gYWx0ZXJuYXRpdmUKK2NsYXNzIHRvIHRoZSBkZWZhdWx0IDpjbGFzczpgTWFnaWNNb2NrYCBmb3IgdGhlIGNyZWF0ZWQgbW9jay4gRm9yIGV4YW1wbGUsIGlmCit5b3Ugd2FudGVkIGEgOmNsYXNzOmBOb25DYWxsYWJsZU1vY2tgIHRvIGJlIHVzZWQ6CisKKyAgICA+Pj4gdGhpbmcgPSBvYmplY3QoKQorICAgID4+PiB3aXRoIHBhdGNoKCdfX21haW5fXy50aGluZycsIG5ld19jYWxsYWJsZT1Ob25DYWxsYWJsZU1vY2spIGFzIG1vY2tfdGhpbmc6CisgICAgLi4uICAgICBhc3NlcnQgdGhpbmcgaXMgbW9ja190aGluZworICAgIC4uLiAgICAgdGhpbmcoKQorICAgIC4uLgorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAgIFR5cGVFcnJvcjogJ05vbkNhbGxhYmxlTW9jaycgb2JqZWN0IGlzIG5vdCBjYWxsYWJsZQorCitBbm90aGVyIHVzZSBjYXNlIG1pZ2h0IGJlIHRvIHJlcGxhY2UgYW4gb2JqZWN0IHdpdGggYSBgU3RyaW5nSU9gIGluc3RhbmNlOgorCisgICAgPj4+IGZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCisgICAgPj4+IGRlZiBmb28oKToKKyAgICAuLi4gICAgIHByaW50ICdTb21ldGhpbmcnCisgICAgLi4uCisgICAgPj4+IEBwYXRjaCgnc3lzLnN0ZG91dCcsIG5ld19jYWxsYWJsZT1TdHJpbmdJTykKKyAgICAuLi4gZGVmIHRlc3QobW9ja19zdGRvdXQpOgorICAgIC4uLiAgICAgZm9vKCkKKyAgICAuLi4gICAgIGFzc2VydCBtb2NrX3N0ZG91dC5nZXR2YWx1ZSgpID09ICdTb21ldGhpbmdcbicKKyAgICAuLi4KKyAgICA+Pj4gdGVzdCgpCisKK1doZW4gYHBhdGNoYCBpcyBjcmVhdGluZyBhIG1vY2sgZm9yIHlvdSwgaXQgaXMgY29tbW9uIHRoYXQgdGhlIGZpcnN0IHRoaW5nCit5b3UgbmVlZCB0byBkbyBpcyB0byBjb25maWd1cmUgdGhlIG1vY2suIFNvbWUgb2YgdGhhdCBjb25maWd1cmF0aW9uIGNhbiBiZSBkb25lCitpbiB0aGUgY2FsbCB0byBwYXRjaC4gQW55IGFyYml0cmFyeSBrZXl3b3JkcyB5b3UgcGFzcyBpbnRvIHRoZSBjYWxsIHdpbGwgYmUKK3VzZWQgdG8gc2V0IGF0dHJpYnV0ZXMgb24gdGhlIGNyZWF0ZWQgbW9jazoKKworICAgID4+PiBwYXRjaGVyID0gcGF0Y2goJ19fbWFpbl9fLnRoaW5nJywgZmlyc3Q9J29uZScsIHNlY29uZD0ndHdvJykKKyAgICA+Pj4gbW9ja190aGluZyA9IHBhdGNoZXIuc3RhcnQoKQorICAgID4+PiBtb2NrX3RoaW5nLmZpcnN0CisgICAgJ29uZScKKyAgICA+Pj4gbW9ja190aGluZy5zZWNvbmQKKyAgICAndHdvJworCitBcyB3ZWxsIGFzIGF0dHJpYnV0ZXMgb24gdGhlIGNyZWF0ZWQgbW9jayBhdHRyaWJ1dGVzLCBsaWtlIHRoZQorOmF0dHI6YH5Nb2NrLnJldHVybl92YWx1ZWAgYW5kIDphdHRyOmB+TW9jay5zaWRlX2VmZmVjdGAsIG9mIGNoaWxkIG1vY2tzIGNhbgorYWxzbyBiZSBjb25maWd1cmVkLiBUaGVzZSBhcmVuJ3Qgc3ludGFjdGljYWxseSB2YWxpZCB0byBwYXNzIGluIGRpcmVjdGx5IGFzCitrZXl3b3JkIGFyZ3VtZW50cywgYnV0IGEgZGljdGlvbmFyeSB3aXRoIHRoZXNlIGFzIGtleXMgY2FuIHN0aWxsIGJlIGV4cGFuZGVkCitpbnRvIGEgYHBhdGNoYCBjYWxsIHVzaW5nIGAqKmA6CisKKyAgICA+Pj4gY29uZmlnID0geydtZXRob2QucmV0dXJuX3ZhbHVlJzogMywgJ290aGVyLnNpZGVfZWZmZWN0JzogS2V5RXJyb3J9CisgICAgPj4+IHBhdGNoZXIgPSBwYXRjaCgnX19tYWluX18udGhpbmcnLCAqKmNvbmZpZykKKyAgICA+Pj4gbW9ja190aGluZyA9IHBhdGNoZXIuc3RhcnQoKQorICAgID4+PiBtb2NrX3RoaW5nLm1ldGhvZCgpCisgICAgMworICAgID4+PiBtb2NrX3RoaW5nLm90aGVyKCkKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgICBLZXlFcnJvcgorCisKK3BhdGNoLm9iamVjdAorLS0tLS0tLS0tLS0tCisKKy4uIGZ1bmN0aW9uOjogcGF0Y2gub2JqZWN0KHRhcmdldCwgYXR0cmlidXRlLCBuZXc9REVGQVVMVCwgc3BlYz1Ob25lLCBjcmVhdGU9RmFsc2UsIHNwZWNfc2V0PU5vbmUsIGF1dG9zcGVjPU5vbmUsIG5ld19jYWxsYWJsZT1Ob25lLCAqKmt3YXJncykKKworICAgIHBhdGNoIHRoZSBuYW1lZCBtZW1iZXIgKGBhdHRyaWJ1dGVgKSBvbiBhbiBvYmplY3QgKGB0YXJnZXRgKSB3aXRoIGEgbW9jaworICAgIG9iamVjdC4KKworICAgIGBwYXRjaC5vYmplY3RgIGNhbiBiZSB1c2VkIGFzIGEgZGVjb3JhdG9yLCBjbGFzcyBkZWNvcmF0b3Igb3IgYSBjb250ZXh0CisgICAgbWFuYWdlci4gQXJndW1lbnRzIGBuZXdgLCBgc3BlY2AsIGBjcmVhdGVgLCBgc3BlY19zZXRgLCBgYXV0b3NwZWNgIGFuZAorICAgIGBuZXdfY2FsbGFibGVgIGhhdmUgdGhlIHNhbWUgbWVhbmluZyBhcyBmb3IgYHBhdGNoYC4gTGlrZSBgcGF0Y2hgLAorICAgIGBwYXRjaC5vYmplY3RgIHRha2VzIGFyYml0cmFyeSBrZXl3b3JkIGFyZ3VtZW50cyBmb3IgY29uZmlndXJpbmcgdGhlIG1vY2sKKyAgICBvYmplY3QgaXQgY3JlYXRlcy4KKworICAgIFdoZW4gdXNlZCBhcyBhIGNsYXNzIGRlY29yYXRvciBgcGF0Y2gub2JqZWN0YCBob25vdXJzIGBwYXRjaC5URVNUX1BSRUZJWGAKKyAgICBmb3IgY2hvb3Npbmcgd2hpY2ggbWV0aG9kcyB0byB3cmFwLgorCitZb3UgY2FuIGVpdGhlciBjYWxsIGBwYXRjaC5vYmplY3RgIHdpdGggdGhyZWUgYXJndW1lbnRzIG9yIHR3byBhcmd1bWVudHMuIFRoZQordGhyZWUgYXJndW1lbnQgZm9ybSB0YWtlcyB0aGUgb2JqZWN0IHRvIGJlIHBhdGNoZWQsIHRoZSBhdHRyaWJ1dGUgbmFtZSBhbmQgdGhlCitvYmplY3QgdG8gcmVwbGFjZSB0aGUgYXR0cmlidXRlIHdpdGguCisKK1doZW4gY2FsbGluZyB3aXRoIHRoZSB0d28gYXJndW1lbnQgZm9ybSB5b3Ugb21pdCB0aGUgcmVwbGFjZW1lbnQgb2JqZWN0LCBhbmQgYQorbW9jayBpcyBjcmVhdGVkIGZvciB5b3UgYW5kIHBhc3NlZCBpbiBhcyBhbiBleHRyYSBhcmd1bWVudCB0byB0aGUgZGVjb3JhdGVkCitmdW5jdGlvbjoKKworICAgID4+PiBAcGF0Y2gub2JqZWN0KFNvbWVDbGFzcywgJ2NsYXNzX21ldGhvZCcpCisgICAgLi4uIGRlZiB0ZXN0KG1vY2tfbWV0aG9kKToKKyAgICAuLi4gICAgIFNvbWVDbGFzcy5jbGFzc19tZXRob2QoMykKKyAgICAuLi4gICAgIG1vY2tfbWV0aG9kLmFzc2VydF9jYWxsZWRfd2l0aCgzKQorICAgIC4uLgorICAgID4+PiB0ZXN0KCkKKworYHNwZWNgLCBgY3JlYXRlYCBhbmQgdGhlIG90aGVyIGFyZ3VtZW50cyB0byBgcGF0Y2gub2JqZWN0YCBoYXZlIHRoZSBzYW1lCittZWFuaW5nIGFzIHRoZXkgZG8gZm9yIGBwYXRjaGAuCisKKworcGF0Y2guZGljdAorLS0tLS0tLS0tLQorCisuLiBmdW5jdGlvbjo6IHBhdGNoLmRpY3QoaW5fZGljdCwgdmFsdWVzPSgpLCBjbGVhcj1GYWxzZSwgKiprd2FyZ3MpCisKKyAgICBQYXRjaCBhIGRpY3Rpb25hcnksIG9yIGRpY3Rpb25hcnkgbGlrZSBvYmplY3QsIGFuZCByZXN0b3JlIHRoZSBkaWN0aW9uYXJ5CisgICAgdG8gaXRzIG9yaWdpbmFsIHN0YXRlIGFmdGVyIHRoZSB0ZXN0LgorCisgICAgYGluX2RpY3RgIGNhbiBiZSBhIGRpY3Rpb25hcnkgb3IgYSBtYXBwaW5nIGxpa2UgY29udGFpbmVyLiBJZiBpdCBpcyBhCisgICAgbWFwcGluZyB0aGVuIGl0IG11c3QgYXQgbGVhc3Qgc3VwcG9ydCBnZXR0aW5nLCBzZXR0aW5nIGFuZCBkZWxldGluZyBpdGVtcworICAgIHBsdXMgaXRlcmF0aW5nIG92ZXIga2V5cy4KKworICAgIGBpbl9kaWN0YCBjYW4gYWxzbyBiZSBhIHN0cmluZyBzcGVjaWZ5aW5nIHRoZSBuYW1lIG9mIHRoZSBkaWN0aW9uYXJ5LCB3aGljaAorICAgIHdpbGwgdGhlbiBiZSBmZXRjaGVkIGJ5IGltcG9ydGluZyBpdC4KKworICAgIGB2YWx1ZXNgIGNhbiBiZSBhIGRpY3Rpb25hcnkgb2YgdmFsdWVzIHRvIHNldCBpbiB0aGUgZGljdGlvbmFyeS4gYHZhbHVlc2AKKyAgICBjYW4gYWxzbyBiZSBhbiBpdGVyYWJsZSBvZiBgKGtleSwgdmFsdWUpYCBwYWlycy4KKworICAgIElmIGBjbGVhcmAgaXMgVHJ1ZSB0aGVuIHRoZSBkaWN0aW9uYXJ5IHdpbGwgYmUgY2xlYXJlZCBiZWZvcmUgdGhlIG5ldworICAgIHZhbHVlcyBhcmUgc2V0LgorCisgICAgYHBhdGNoLmRpY3RgIGNhbiBhbHNvIGJlIGNhbGxlZCB3aXRoIGFyYml0cmFyeSBrZXl3b3JkIGFyZ3VtZW50cyB0byBzZXQKKyAgICB2YWx1ZXMgaW4gdGhlIGRpY3Rpb25hcnkuCisKKyAgICBgcGF0Y2guZGljdGAgY2FuIGJlIHVzZWQgYXMgYSBjb250ZXh0IG1hbmFnZXIsIGRlY29yYXRvciBvciBjbGFzcworICAgIGRlY29yYXRvci4gV2hlbiB1c2VkIGFzIGEgY2xhc3MgZGVjb3JhdG9yIGBwYXRjaC5kaWN0YCBob25vdXJzCisgICAgYHBhdGNoLlRFU1RfUFJFRklYYCBmb3IgY2hvb3Npbmcgd2hpY2ggbWV0aG9kcyB0byB3cmFwLgorCitgcGF0Y2guZGljdGAgY2FuIGJlIHVzZWQgdG8gYWRkIG1lbWJlcnMgdG8gYSBkaWN0aW9uYXJ5LCBvciBzaW1wbHkgbGV0IGEgdGVzdAorY2hhbmdlIGEgZGljdGlvbmFyeSwgYW5kIGVuc3VyZSB0aGUgZGljdGlvbmFyeSBpcyByZXN0b3JlZCB3aGVuIHRoZSB0ZXN0CitlbmRzLgorCisgICAgPj4+IGZvbyA9IHt9CisgICAgPj4+IHdpdGggcGF0Y2guZGljdChmb28sIHsnbmV3a2V5JzogJ25ld3ZhbHVlJ30pOgorICAgIC4uLiAgICAgYXNzZXJ0IGZvbyA9PSB7J25ld2tleSc6ICduZXd2YWx1ZSd9CisgICAgLi4uCisgICAgPj4+IGFzc2VydCBmb28gPT0ge30KKworICAgID4+PiBpbXBvcnQgb3MKKyAgICA+Pj4gd2l0aCBwYXRjaC5kaWN0KCdvcy5lbnZpcm9uJywgeyduZXdrZXknOiAnbmV3dmFsdWUnfSk6CisgICAgLi4uICAgICBwcmludCBvcy5lbnZpcm9uWyduZXdrZXknXQorICAgIC4uLgorICAgIG5ld3ZhbHVlCisgICAgPj4+IGFzc2VydCAnbmV3a2V5JyBub3QgaW4gb3MuZW52aXJvbgorCitLZXl3b3JkcyBjYW4gYmUgdXNlZCBpbiB0aGUgYHBhdGNoLmRpY3RgIGNhbGwgdG8gc2V0IHZhbHVlcyBpbiB0aGUgZGljdGlvbmFyeToKKworICAgID4+PiBteW1vZHVsZSA9IE1hZ2ljTW9jaygpCisgICAgPj4+IG15bW9kdWxlLmZ1bmN0aW9uLnJldHVybl92YWx1ZSA9ICdmaXNoJworICAgID4+PiB3aXRoIHBhdGNoLmRpY3QoJ3N5cy5tb2R1bGVzJywgbXltb2R1bGU9bXltb2R1bGUpOgorICAgIC4uLiAgICAgaW1wb3J0IG15bW9kdWxlCisgICAgLi4uICAgICBteW1vZHVsZS5mdW5jdGlvbignc29tZScsICdhcmdzJykKKyAgICAuLi4KKyAgICAnZmlzaCcKKworYHBhdGNoLmRpY3RgIGNhbiBiZSB1c2VkIHdpdGggZGljdGlvbmFyeSBsaWtlIG9iamVjdHMgdGhhdCBhcmVuJ3QgYWN0dWFsbHkKK2RpY3Rpb25hcmllcy4gQXQgdGhlIHZlcnkgbWluaW11bSB0aGV5IG11c3Qgc3VwcG9ydCBpdGVtIGdldHRpbmcsIHNldHRpbmcsCitkZWxldGluZyBhbmQgZWl0aGVyIGl0ZXJhdGlvbiBvciBtZW1iZXJzaGlwIHRlc3QuIFRoaXMgY29ycmVzcG9uZHMgdG8gdGhlCittYWdpYyBtZXRob2RzIGBfX2dldGl0ZW1fX2AsIGBfX3NldGl0ZW1fX2AsIGBfX2RlbGl0ZW1fX2AgYW5kIGVpdGhlcgorYF9faXRlcl9fYCBvciBgX19jb250YWluc19fYC4KKworICAgID4+PiBjbGFzcyBDb250YWluZXIob2JqZWN0KToKKyAgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAuLi4gICAgICAgICBzZWxmLnZhbHVlcyA9IHt9CisgICAgLi4uICAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgbmFtZSk6CisgICAgLi4uICAgICAgICAgcmV0dXJuIHNlbGYudmFsdWVzW25hbWVdCisgICAgLi4uICAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgIC4uLiAgICAgICAgIHNlbGYudmFsdWVzW25hbWVdID0gdmFsdWUKKyAgICAuLi4gICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBuYW1lKToKKyAgICAuLi4gICAgICAgICBkZWwgc2VsZi52YWx1ZXNbbmFtZV0KKyAgICAuLi4gICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAuLi4gICAgICAgICByZXR1cm4gaXRlcihzZWxmLnZhbHVlcykKKyAgICAuLi4KKyAgICA+Pj4gdGhpbmcgPSBDb250YWluZXIoKQorICAgID4+PiB0aGluZ1snb25lJ10gPSAxCisgICAgPj4+IHdpdGggcGF0Y2guZGljdCh0aGluZywgb25lPTIsIHR3bz0zKToKKyAgICAuLi4gICAgIGFzc2VydCB0aGluZ1snb25lJ10gPT0gMgorICAgIC4uLiAgICAgYXNzZXJ0IHRoaW5nWyd0d28nXSA9PSAzCisgICAgLi4uCisgICAgPj4+IGFzc2VydCB0aGluZ1snb25lJ10gPT0gMQorICAgID4+PiBhc3NlcnQgbGlzdCh0aGluZykgPT0gWydvbmUnXQorCisKK3BhdGNoLm11bHRpcGxlCistLS0tLS0tLS0tLS0tLQorCisuLiBmdW5jdGlvbjo6IHBhdGNoLm11bHRpcGxlKHRhcmdldCwgc3BlYz1Ob25lLCBjcmVhdGU9RmFsc2UsIHNwZWNfc2V0PU5vbmUsIGF1dG9zcGVjPU5vbmUsIG5ld19jYWxsYWJsZT1Ob25lLCAqKmt3YXJncykKKworICAgIFBlcmZvcm0gbXVsdGlwbGUgcGF0Y2hlcyBpbiBhIHNpbmdsZSBjYWxsLiBJdCB0YWtlcyB0aGUgb2JqZWN0IHRvIGJlCisgICAgcGF0Y2hlZCAoZWl0aGVyIGFzIGFuIG9iamVjdCBvciBhIHN0cmluZyB0byBmZXRjaCB0aGUgb2JqZWN0IGJ5IGltcG9ydGluZykKKyAgICBhbmQga2V5d29yZCBhcmd1bWVudHMgZm9yIHRoZSBwYXRjaGVzOjoKKworICAgICAgICB3aXRoIHBhdGNoLm11bHRpcGxlKHNldHRpbmdzLCBGSVJTVF9QQVRDSD0nb25lJywgU0VDT05EX1BBVENIPSd0d28nKToKKyAgICAgICAgICAgIC4uLgorCisgICAgVXNlIDpkYXRhOmBERUZBVUxUYCBhcyB0aGUgdmFsdWUgaWYgeW91IHdhbnQgYHBhdGNoLm11bHRpcGxlYCB0byBjcmVhdGUKKyAgICBtb2NrcyBmb3IgeW91LiBJbiB0aGlzIGNhc2UgdGhlIGNyZWF0ZWQgbW9ja3MgYXJlIHBhc3NlZCBpbnRvIGEgZGVjb3JhdGVkCisgICAgZnVuY3Rpb24gYnkga2V5d29yZCwgYW5kIGEgZGljdGlvbmFyeSBpcyByZXR1cm5lZCB3aGVuIGBwYXRjaC5tdWx0aXBsZWAgaXMKKyAgICB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyLgorCisgICAgYHBhdGNoLm11bHRpcGxlYCBjYW4gYmUgdXNlZCBhcyBhIGRlY29yYXRvciwgY2xhc3MgZGVjb3JhdG9yIG9yIGEgY29udGV4dAorICAgIG1hbmFnZXIuIFRoZSBhcmd1bWVudHMgYHNwZWNgLCBgc3BlY19zZXRgLCBgY3JlYXRlYCwgYGF1dG9zcGVjYCBhbmQKKyAgICBgbmV3X2NhbGxhYmxlYCBoYXZlIHRoZSBzYW1lIG1lYW5pbmcgYXMgZm9yIGBwYXRjaGAuIFRoZXNlIGFyZ3VtZW50cyB3aWxsCisgICAgYmUgYXBwbGllZCB0byAqYWxsKiBwYXRjaGVzIGRvbmUgYnkgYHBhdGNoLm11bHRpcGxlYC4KKworICAgIFdoZW4gdXNlZCBhcyBhIGNsYXNzIGRlY29yYXRvciBgcGF0Y2gubXVsdGlwbGVgIGhvbm91cnMgYHBhdGNoLlRFU1RfUFJFRklYYAorICAgIGZvciBjaG9vc2luZyB3aGljaCBtZXRob2RzIHRvIHdyYXAuCisKK0lmIHlvdSB3YW50IGBwYXRjaC5tdWx0aXBsZWAgdG8gY3JlYXRlIG1vY2tzIGZvciB5b3UsIHRoZW4geW91IGNhbiB1c2UKKzpkYXRhOmBERUZBVUxUYCBhcyB0aGUgdmFsdWUuIElmIHlvdSB1c2UgYHBhdGNoLm11bHRpcGxlYCBhcyBhIGRlY29yYXRvcgordGhlbiB0aGUgY3JlYXRlZCBtb2NrcyBhcmUgcGFzc2VkIGludG8gdGhlIGRlY29yYXRlZCBmdW5jdGlvbiBieSBrZXl3b3JkLgorCisgICAgPj4+IHRoaW5nID0gb2JqZWN0KCkKKyAgICA+Pj4gb3RoZXIgPSBvYmplY3QoKQorCisgICAgPj4+IEBwYXRjaC5tdWx0aXBsZSgnX19tYWluX18nLCB0aGluZz1ERUZBVUxULCBvdGhlcj1ERUZBVUxUKQorICAgIC4uLiBkZWYgdGVzdF9mdW5jdGlvbih0aGluZywgb3RoZXIpOgorICAgIC4uLiAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodGhpbmcsIE1hZ2ljTW9jaykKKyAgICAuLi4gICAgIGFzc2VydCBpc2luc3RhbmNlKG90aGVyLCBNYWdpY01vY2spCisgICAgLi4uCisgICAgPj4+IHRlc3RfZnVuY3Rpb24oKQorCitgcGF0Y2gubXVsdGlwbGVgIGNhbiBiZSBuZXN0ZWQgd2l0aCBvdGhlciBgcGF0Y2hgIGRlY29yYXRvcnMsIGJ1dCBwdXQgYXJndW1lbnRzCitwYXNzZWQgYnkga2V5d29yZCAqYWZ0ZXIqIGFueSBvZiB0aGUgc3RhbmRhcmQgYXJndW1lbnRzIGNyZWF0ZWQgYnkgYHBhdGNoYDoKKworICAgID4+PiBAcGF0Y2goJ3N5cy5leGl0JykKKyAgICAuLi4gQHBhdGNoLm11bHRpcGxlKCdfX21haW5fXycsIHRoaW5nPURFRkFVTFQsIG90aGVyPURFRkFVTFQpCisgICAgLi4uIGRlZiB0ZXN0X2Z1bmN0aW9uKG1vY2tfZXhpdCwgb3RoZXIsIHRoaW5nKToKKyAgICAuLi4gICAgIGFzc2VydCAnb3RoZXInIGluIHJlcHIob3RoZXIpCisgICAgLi4uICAgICBhc3NlcnQgJ3RoaW5nJyBpbiByZXByKHRoaW5nKQorICAgIC4uLiAgICAgYXNzZXJ0ICdleGl0JyBpbiByZXByKG1vY2tfZXhpdCkKKyAgICAuLi4KKyAgICA+Pj4gdGVzdF9mdW5jdGlvbigpCisKK0lmIGBwYXRjaC5tdWx0aXBsZWAgaXMgdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlciwgdGhlIHZhbHVlIHJldHVybmVkIGJ5IHRoZQorY29udGV4dCBtYW5nZXIgaXMgYSBkaWN0aW9uYXJ5IHdoZXJlIGNyZWF0ZWQgbW9ja3MgYXJlIGtleWVkIGJ5IG5hbWU6CisKKyAgICA+Pj4gd2l0aCBwYXRjaC5tdWx0aXBsZSgnX19tYWluX18nLCB0aGluZz1ERUZBVUxULCBvdGhlcj1ERUZBVUxUKSBhcyB2YWx1ZXM6CisgICAgLi4uICAgICBhc3NlcnQgJ290aGVyJyBpbiByZXByKHZhbHVlc1snb3RoZXInXSkKKyAgICAuLi4gICAgIGFzc2VydCAndGhpbmcnIGluIHJlcHIodmFsdWVzWyd0aGluZyddKQorICAgIC4uLiAgICAgYXNzZXJ0IHZhbHVlc1sndGhpbmcnXSBpcyB0aGluZworICAgIC4uLiAgICAgYXNzZXJ0IHZhbHVlc1snb3RoZXInXSBpcyBvdGhlcgorICAgIC4uLgorCisKKy4uIF9zdGFydC1hbmQtc3RvcDoKKworcGF0Y2ggbWV0aG9kczogc3RhcnQgYW5kIHN0b3AKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0FsbCB0aGUgcGF0Y2hlcnMgaGF2ZSBgc3RhcnRgIGFuZCBgc3RvcGAgbWV0aG9kcy4gVGhlc2UgbWFrZSBpdCBzaW1wbGVyIHRvIGRvCitwYXRjaGluZyBpbiBgc2V0VXBgIG1ldGhvZHMgb3Igd2hlcmUgeW91IHdhbnQgdG8gZG8gbXVsdGlwbGUgcGF0Y2hlcyB3aXRob3V0CituZXN0aW5nIGRlY29yYXRvcnMgb3Igd2l0aCBzdGF0ZW1lbnRzLgorCitUbyB1c2UgdGhlbSBjYWxsIGBwYXRjaGAsIGBwYXRjaC5vYmplY3RgIG9yIGBwYXRjaC5kaWN0YCBhcyBub3JtYWwgYW5kIGtlZXAgYQorcmVmZXJlbmNlIHRvIHRoZSByZXR1cm5lZCBgcGF0Y2hlcmAgb2JqZWN0LiBZb3UgY2FuIHRoZW4gY2FsbCBgc3RhcnRgIHRvIHB1dAordGhlIHBhdGNoIGluIHBsYWNlIGFuZCBgc3RvcGAgdG8gdW5kbyBpdC4KKworSWYgeW91IGFyZSB1c2luZyBgcGF0Y2hgIHRvIGNyZWF0ZSBhIG1vY2sgZm9yIHlvdSB0aGVuIGl0IHdpbGwgYmUgcmV0dXJuZWQgYnkKK3RoZSBjYWxsIHRvIGBwYXRjaGVyLnN0YXJ0YC4KKworICAgID4+PiBwYXRjaGVyID0gcGF0Y2goJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZScpCisgICAgPj4+IGZyb20gcGFja2FnZSBpbXBvcnQgbW9kdWxlCisgICAgPj4+IG9yaWdpbmFsID0gbW9kdWxlLkNsYXNzTmFtZQorICAgID4+PiBuZXdfbW9jayA9IHBhdGNoZXIuc3RhcnQoKQorICAgID4+PiBhc3NlcnQgbW9kdWxlLkNsYXNzTmFtZSBpcyBub3Qgb3JpZ2luYWwKKyAgICA+Pj4gYXNzZXJ0IG1vZHVsZS5DbGFzc05hbWUgaXMgbmV3X21vY2sKKyAgICA+Pj4gcGF0Y2hlci5zdG9wKCkKKyAgICA+Pj4gYXNzZXJ0IG1vZHVsZS5DbGFzc05hbWUgaXMgb3JpZ2luYWwKKyAgICA+Pj4gYXNzZXJ0IG1vZHVsZS5DbGFzc05hbWUgaXMgbm90IG5ld19tb2NrCisKKworQSB0eXBpY2FsIHVzZSBjYXNlIGZvciB0aGlzIG1pZ2h0IGJlIGZvciBkb2luZyBtdWx0aXBsZSBwYXRjaGVzIGluIHRoZSBgc2V0VXBgCittZXRob2Qgb2YgYSBgVGVzdENhc2VgOgorCisgICAgPj4+IGNsYXNzIE15VGVzdChUZXN0Q2FzZSk6CisgICAgLi4uICAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgLi4uICAgICAgICAgc2VsZi5wYXRjaGVyMSA9IHBhdGNoKCdwYWNrYWdlLm1vZHVsZS5DbGFzczEnKQorICAgIC4uLiAgICAgICAgIHNlbGYucGF0Y2hlcjIgPSBwYXRjaCgncGFja2FnZS5tb2R1bGUuQ2xhc3MyJykKKyAgICAuLi4gICAgICAgICBzZWxmLk1vY2tDbGFzczEgPSBzZWxmLnBhdGNoZXIxLnN0YXJ0KCkKKyAgICAuLi4gICAgICAgICBzZWxmLk1vY2tDbGFzczIgPSBzZWxmLnBhdGNoZXIyLnN0YXJ0KCkKKyAgICAuLi4KKyAgICAuLi4gICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAuLi4gICAgICAgICBzZWxmLnBhdGNoZXIxLnN0b3AoKQorICAgIC4uLiAgICAgICAgIHNlbGYucGF0Y2hlcjIuc3RvcCgpCisgICAgLi4uCisgICAgLi4uICAgICBkZWYgdGVzdF9zb21ldGhpbmcoc2VsZik6CisgICAgLi4uICAgICAgICAgYXNzZXJ0IHBhY2thZ2UubW9kdWxlLkNsYXNzMSBpcyBzZWxmLk1vY2tDbGFzczEKKyAgICAuLi4gICAgICAgICBhc3NlcnQgcGFja2FnZS5tb2R1bGUuQ2xhc3MyIGlzIHNlbGYuTW9ja0NsYXNzMgorICAgIC4uLgorICAgID4+PiBNeVRlc3QoJ3Rlc3Rfc29tZXRoaW5nJykucnVuKCkKKworLi4gY2F1dGlvbjo6CisKKyAgICBJZiB5b3UgdXNlIHRoaXMgdGVjaG5pcXVlIHlvdSBtdXN0IGVuc3VyZSB0aGF0IHRoZSBwYXRjaGluZyBpcyAidW5kb25lIiBieQorICAgIGNhbGxpbmcgYHN0b3BgLiBUaGlzIGNhbiBiZSBmaWRkbGllciB0aGFuIHlvdSBtaWdodCB0aGluaywgYmVjYXVzZSBpZiBhbgorICAgIGV4Y2VwdGlvbiBpcyByYWlzZWQgaW4gdGhlIGBgc2V0VXBgYCB0aGVuIGBgdGVhckRvd25gYCBpcyBub3QgY2FsbGVkLgorICAgIDptZXRoOmB1bml0dGVzdC5UZXN0Q2FzZS5hZGRDbGVhbnVwYCBtYWtlcyB0aGlzIGVhc2llcjoKKworICAgICAgICA+Pj4gY2xhc3MgTXlUZXN0KFRlc3RDYXNlKToKKyAgICAgICAgLi4uICAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIC4uLiAgICAgICAgIHBhdGNoZXIgPSBwYXRjaCgncGFja2FnZS5tb2R1bGUuQ2xhc3MnKQorICAgICAgICAuLi4gICAgICAgICBzZWxmLk1vY2tDbGFzcyA9IHBhdGNoZXIuc3RhcnQoKQorICAgICAgICAuLi4gICAgICAgICBzZWxmLmFkZENsZWFudXAocGF0Y2hlci5zdG9wKQorICAgICAgICAuLi4KKyAgICAgICAgLi4uICAgICBkZWYgdGVzdF9zb21ldGhpbmcoc2VsZik6CisgICAgICAgIC4uLiAgICAgICAgIGFzc2VydCBwYWNrYWdlLm1vZHVsZS5DbGFzcyBpcyBzZWxmLk1vY2tDbGFzcworICAgICAgICAuLi4KKworICAgIEFzIGFuIGFkZGVkIGJvbnVzIHlvdSBubyBsb25nZXIgbmVlZCB0byBrZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBgcGF0Y2hlcmAKKyAgICBvYmplY3QuCisKK0l0IGlzIGFsc28gcG9zc2libGUgdG8gc3RvcCBhbGwgcGF0Y2hlcyB3aGljaCBoYXZlIGJlZW4gc3RhcnRlZCBieSB1c2luZworYHBhdGNoLnN0b3BhbGxgLgorCisuLiBmdW5jdGlvbjo6IHBhdGNoLnN0b3BhbGwKKworICAgIFN0b3AgYWxsIGFjdGl2ZSBwYXRjaGVzLiBPbmx5IHN0b3BzIHBhdGNoZXMgc3RhcnRlZCB3aXRoIGBzdGFydGAuCisKKworVEVTVF9QUkVGSVgKKy0tLS0tLS0tLS0tCisKK0FsbCBvZiB0aGUgcGF0Y2hlcnMgY2FuIGJlIHVzZWQgYXMgY2xhc3MgZGVjb3JhdG9ycy4gV2hlbiB1c2VkIGluIHRoaXMgd2F5Cit0aGV5IHdyYXAgZXZlcnkgdGVzdCBtZXRob2Qgb24gdGhlIGNsYXNzLiBUaGUgcGF0Y2hlcnMgcmVjb2duaXNlIG1ldGhvZHMgdGhhdAorc3RhcnQgd2l0aCBgdGVzdGAgYXMgYmVpbmcgdGVzdCBtZXRob2RzLiBUaGlzIGlzIHRoZSBzYW1lIHdheSB0aGF0IHRoZQorOmNsYXNzOmB1bml0dGVzdC5UZXN0TG9hZGVyYCBmaW5kcyB0ZXN0IG1ldGhvZHMgYnkgZGVmYXVsdC4KKworSXQgaXMgcG9zc2libGUgdGhhdCB5b3Ugd2FudCB0byB1c2UgYSBkaWZmZXJlbnQgcHJlZml4IGZvciB5b3VyIHRlc3RzLiBZb3UgY2FuCitpbmZvcm0gdGhlIHBhdGNoZXJzIG9mIHRoZSBkaWZmZXJlbnQgcHJlZml4IGJ5IHNldHRpbmcgYHBhdGNoLlRFU1RfUFJFRklYYDoKKworICAgID4+PiBwYXRjaC5URVNUX1BSRUZJWCA9ICdmb28nCisgICAgPj4+IHZhbHVlID0gMworICAgID4+PgorICAgID4+PiBAcGF0Y2goJ19fbWFpbl9fLnZhbHVlJywgJ25vdCB0aHJlZScpCisgICAgLi4uIGNsYXNzIFRoaW5nKG9iamVjdCk6CisgICAgLi4uICAgICBkZWYgZm9vX29uZShzZWxmKToKKyAgICAuLi4gICAgICAgICBwcmludCB2YWx1ZQorICAgIC4uLiAgICAgZGVmIGZvb190d28oc2VsZik6CisgICAgLi4uICAgICAgICAgcHJpbnQgdmFsdWUKKyAgICAuLi4KKyAgICA+Pj4KKyAgICA+Pj4gVGhpbmcoKS5mb29fb25lKCkKKyAgICBub3QgdGhyZWUKKyAgICA+Pj4gVGhpbmcoKS5mb29fdHdvKCkKKyAgICBub3QgdGhyZWUKKyAgICA+Pj4gdmFsdWUKKyAgICAzCisKKworTmVzdGluZyBQYXRjaCBEZWNvcmF0b3JzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworSWYgeW91IHdhbnQgdG8gcGVyZm9ybSBtdWx0aXBsZSBwYXRjaGVzIHRoZW4geW91IGNhbiBzaW1wbHkgc3RhY2sgdXAgdGhlCitkZWNvcmF0b3JzLgorCitZb3UgY2FuIHN0YWNrIHVwIG11bHRpcGxlIHBhdGNoIGRlY29yYXRvcnMgdXNpbmcgdGhpcyBwYXR0ZXJuOgorCisgICAgPj4+IEBwYXRjaC5vYmplY3QoU29tZUNsYXNzLCAnY2xhc3NfbWV0aG9kJykKKyAgICAuLi4gQHBhdGNoLm9iamVjdChTb21lQ2xhc3MsICdzdGF0aWNfbWV0aG9kJykKKyAgICAuLi4gZGVmIHRlc3QobW9jazEsIG1vY2syKToKKyAgICAuLi4gICAgIGFzc2VydCBTb21lQ2xhc3Muc3RhdGljX21ldGhvZCBpcyBtb2NrMQorICAgIC4uLiAgICAgYXNzZXJ0IFNvbWVDbGFzcy5jbGFzc19tZXRob2QgaXMgbW9jazIKKyAgICAuLi4gICAgIFNvbWVDbGFzcy5zdGF0aWNfbWV0aG9kKCdmb28nKQorICAgIC4uLiAgICAgU29tZUNsYXNzLmNsYXNzX21ldGhvZCgnYmFyJykKKyAgICAuLi4gICAgIHJldHVybiBtb2NrMSwgbW9jazIKKyAgICAuLi4KKyAgICA+Pj4gbW9jazEsIG1vY2syID0gdGVzdCgpCisgICAgPj4+IG1vY2sxLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCdmb28nKQorICAgID4+PiBtb2NrMi5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgnYmFyJykKKworCitOb3RlIHRoYXQgdGhlIGRlY29yYXRvcnMgYXJlIGFwcGxpZWQgZnJvbSB0aGUgYm90dG9tIHVwd2FyZHMuIFRoaXMgaXMgdGhlCitzdGFuZGFyZCB3YXkgdGhhdCBQeXRob24gYXBwbGllcyBkZWNvcmF0b3JzLiBUaGUgb3JkZXIgb2YgdGhlIGNyZWF0ZWQgbW9ja3MKK3Bhc3NlZCBpbnRvIHlvdXIgdGVzdCBmdW5jdGlvbiBtYXRjaGVzIHRoaXMgb3JkZXIuCisKKworLi4gX3doZXJlLXRvLXBhdGNoOgorCitXaGVyZSB0byBwYXRjaAorLS0tLS0tLS0tLS0tLS0KKworYHBhdGNoYCB3b3JrcyBieSAodGVtcG9yYXJpbHkpIGNoYW5naW5nIHRoZSBvYmplY3QgdGhhdCBhICpuYW1lKiBwb2ludHMgdG8gd2l0aAorYW5vdGhlciBvbmUuIFRoZXJlIGNhbiBiZSBtYW55IG5hbWVzIHBvaW50aW5nIHRvIGFueSBpbmRpdmlkdWFsIG9iamVjdCwgc28KK2ZvciBwYXRjaGluZyB0byB3b3JrIHlvdSBtdXN0IGVuc3VyZSB0aGF0IHlvdSBwYXRjaCB0aGUgbmFtZSB1c2VkIGJ5IHRoZSBzeXN0ZW0KK3VuZGVyIHRlc3QuCisKK1RoZSBiYXNpYyBwcmluY2lwbGUgaXMgdGhhdCB5b3UgcGF0Y2ggd2hlcmUgYW4gb2JqZWN0IGlzICpsb29rZWQgdXAqLCB3aGljaAoraXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIHBsYWNlIGFzIHdoZXJlIGl0IGlzIGRlZmluZWQuIEEgY291cGxlIG9mCitleGFtcGxlcyB3aWxsIGhlbHAgdG8gY2xhcmlmeSB0aGlzLgorCitJbWFnaW5lIHdlIGhhdmUgYSBwcm9qZWN0IHRoYXQgd2Ugd2FudCB0byB0ZXN0IHdpdGggdGhlIGZvbGxvd2luZyBzdHJ1Y3R1cmU6OgorCisgICAgYS5weQorICAgICAgICAtPiBEZWZpbmVzIFNvbWVDbGFzcworCisgICAgYi5weQorICAgICAgICAtPiBmcm9tIGEgaW1wb3J0IFNvbWVDbGFzcworICAgICAgICAtPiBzb21lX2Z1bmN0aW9uIGluc3RhbnRpYXRlcyBTb21lQ2xhc3MKKworTm93IHdlIHdhbnQgdG8gdGVzdCBgc29tZV9mdW5jdGlvbmAgYnV0IHdlIHdhbnQgdG8gbW9jayBvdXQgYFNvbWVDbGFzc2AgdXNpbmcKK2BwYXRjaGAuIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2hlbiB3ZSBpbXBvcnQgbW9kdWxlIGIsIHdoaWNoIHdlIHdpbGwgaGF2ZSB0bworZG8gdGhlbiBpdCBpbXBvcnRzIGBTb21lQ2xhc3NgIGZyb20gbW9kdWxlIGEuIElmIHdlIHVzZSBgcGF0Y2hgIHRvIG1vY2sgb3V0CitgYS5Tb21lQ2xhc3NgIHRoZW4gaXQgd2lsbCBoYXZlIG5vIGVmZmVjdCBvbiBvdXIgdGVzdDsgbW9kdWxlIGIgYWxyZWFkeSBoYXMgYQorcmVmZXJlbmNlIHRvIHRoZSAqcmVhbCogYFNvbWVDbGFzc2AgYW5kIGl0IGxvb2tzIGxpa2Ugb3VyIHBhdGNoaW5nIGhhZCBubworZWZmZWN0LgorCitUaGUga2V5IGlzIHRvIHBhdGNoIG91dCBgU29tZUNsYXNzYCB3aGVyZSBpdCBpcyB1c2VkIChvciB3aGVyZSBpdCBpcyBsb29rZWQgdXAKKykuIEluIHRoaXMgY2FzZSBgc29tZV9mdW5jdGlvbmAgd2lsbCBhY3R1YWxseSBsb29rIHVwIGBTb21lQ2xhc3NgIGluIG1vZHVsZSBiLAord2hlcmUgd2UgaGF2ZSBpbXBvcnRlZCBpdC4gVGhlIHBhdGNoaW5nIHNob3VsZCBsb29rIGxpa2U6OgorCisgICAgQHBhdGNoKCdiLlNvbWVDbGFzcycpCisKK0hvd2V2ZXIsIGNvbnNpZGVyIHRoZSBhbHRlcm5hdGl2ZSBzY2VuYXJpbyB3aGVyZSBpbnN0ZWFkIG9mIGBmcm9tIGEgaW1wb3J0CitTb21lQ2xhc3NgIG1vZHVsZSBiIGRvZXMgYGltcG9ydCBhYCBhbmQgYHNvbWVfZnVuY3Rpb25gIHVzZXMgYGEuU29tZUNsYXNzYC4gQm90aAorb2YgdGhlc2UgaW1wb3J0IGZvcm1zIGFyZSBjb21tb24uIEluIHRoaXMgY2FzZSB0aGUgY2xhc3Mgd2Ugd2FudCB0byBwYXRjaCBpcworYmVpbmcgbG9va2VkIHVwIG9uIHRoZSBhIG1vZHVsZSBhbmQgc28gd2UgaGF2ZSB0byBwYXRjaCBgYS5Tb21lQ2xhc3NgIGluc3RlYWQ6OgorCisgICAgQHBhdGNoKCdhLlNvbWVDbGFzcycpCisKKworUGF0Y2hpbmcgRGVzY3JpcHRvcnMgYW5kIFByb3h5IE9iamVjdHMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0JvdGggcGF0Y2hfIGFuZCBwYXRjaC5vYmplY3RfIGNvcnJlY3RseSBwYXRjaCBhbmQgcmVzdG9yZSBkZXNjcmlwdG9yczogY2xhc3MKK21ldGhvZHMsIHN0YXRpYyBtZXRob2RzIGFuZCBwcm9wZXJ0aWVzLiBZb3Ugc2hvdWxkIHBhdGNoIHRoZXNlIG9uIHRoZSAqY2xhc3MqCityYXRoZXIgdGhhbiBhbiBpbnN0YW5jZS4gVGhleSBhbHNvIHdvcmsgd2l0aCAqc29tZSogb2JqZWN0cwordGhhdCBwcm94eSBhdHRyaWJ1dGUgYWNjZXNzLCBsaWtlIHRoZSBgZGphbmdvIHNldHR0aW5ncyBvYmplY3QKKzxodHRwOi8vd3d3LnZvaWRzcGFjZS5vcmcudWsvcHl0aG9uL3dlYmxvZy9hcmNoX2Q3XzIwMTBfMTJfMDQuc2h0bWwjZTExOTg+YF8uCisKKworTWFnaWNNb2NrIGFuZCBtYWdpYyBtZXRob2Qgc3VwcG9ydAorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBfbWFnaWMtbWV0aG9kczoKKworTW9ja2luZyBNYWdpYyBNZXRob2RzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworOmNsYXNzOmBNb2NrYCBzdXBwb3J0cyBtb2NraW5nIHRoZSBQeXRob24gcHJvdG9jb2wgbWV0aG9kcywgYWxzbyBrbm93biBhcworIm1hZ2ljIG1ldGhvZHMiLiBUaGlzIGFsbG93cyBtb2NrIG9iamVjdHMgdG8gcmVwbGFjZSBjb250YWluZXJzIG9yIG90aGVyCitvYmplY3RzIHRoYXQgaW1wbGVtZW50IFB5dGhvbiBwcm90b2NvbHMuCisKK0JlY2F1c2UgbWFnaWMgbWV0aG9kcyBhcmUgbG9va2VkIHVwIGRpZmZlcmVudGx5IGZyb20gbm9ybWFsIG1ldGhvZHMgWyNdXywgdGhpcworc3VwcG9ydCBoYXMgYmVlbiBzcGVjaWFsbHkgaW1wbGVtZW50ZWQuIFRoaXMgbWVhbnMgdGhhdCBvbmx5IHNwZWNpZmljIG1hZ2ljCittZXRob2RzIGFyZSBzdXBwb3J0ZWQuIFRoZSBzdXBwb3J0ZWQgbGlzdCBpbmNsdWRlcyAqYWxtb3N0KiBhbGwgb2YgdGhlbS4gSWYKK3RoZXJlIGFyZSBhbnkgbWlzc2luZyB0aGF0IHlvdSBuZWVkIHBsZWFzZSBsZXQgdXMga25vdy4KKworWW91IG1vY2sgbWFnaWMgbWV0aG9kcyBieSBzZXR0aW5nIHRoZSBtZXRob2QgeW91IGFyZSBpbnRlcmVzdGVkIGluIHRvIGEgZnVuY3Rpb24KK29yIGEgbW9jayBpbnN0YW5jZS4gSWYgeW91IGFyZSB1c2luZyBhIGZ1bmN0aW9uIHRoZW4gaXQgKm11c3QqIHRha2UgYGBzZWxmYGAgYXMKK3RoZSBmaXJzdCBhcmd1bWVudCBbI11fLgorCisgICA+Pj4gZGVmIF9fc3RyX18oc2VsZik6CisgICAuLi4gICAgIHJldHVybiAnZm9vYmxlJworICAgLi4uCisgICA+Pj4gbW9jayA9IE1vY2soKQorICAgPj4+IG1vY2suX19zdHJfXyA9IF9fc3RyX18KKyAgID4+PiBzdHIobW9jaykKKyAgICdmb29ibGUnCisKKyAgID4+PiBtb2NrID0gTW9jaygpCisgICA+Pj4gbW9jay5fX3N0cl9fID0gTW9jaygpCisgICA+Pj4gbW9jay5fX3N0cl9fLnJldHVybl92YWx1ZSA9ICdmb29ibGUnCisgICA+Pj4gc3RyKG1vY2spCisgICAnZm9vYmxlJworCisgICA+Pj4gbW9jayA9IE1vY2soKQorICAgPj4+IG1vY2suX19pdGVyX18gPSBNb2NrKHJldHVybl92YWx1ZT1pdGVyKFtdKSkKKyAgID4+PiBsaXN0KG1vY2spCisgICBbXQorCitPbmUgdXNlIGNhc2UgZm9yIHRoaXMgaXMgZm9yIG1vY2tpbmcgb2JqZWN0cyB1c2VkIGFzIGNvbnRleHQgbWFuYWdlcnMgaW4gYQorYHdpdGhgIHN0YXRlbWVudDoKKworICAgPj4+IG1vY2sgPSBNb2NrKCkKKyAgID4+PiBtb2NrLl9fZW50ZXJfXyA9IE1vY2socmV0dXJuX3ZhbHVlPSdmb28nKQorICAgPj4+IG1vY2suX19leGl0X18gPSBNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgID4+PiB3aXRoIG1vY2sgYXMgbToKKyAgIC4uLiAgICAgYXNzZXJ0IG0gPT0gJ2ZvbycKKyAgIC4uLgorICAgPj4+IG1vY2suX19lbnRlcl9fLmFzc2VydF9jYWxsZWRfd2l0aCgpCisgICA+Pj4gbW9jay5fX2V4aXRfXy5hc3NlcnRfY2FsbGVkX3dpdGgoTm9uZSwgTm9uZSwgTm9uZSkKKworQ2FsbHMgdG8gbWFnaWMgbWV0aG9kcyBkbyBub3QgYXBwZWFyIGluIDphdHRyOmB+TW9jay5tZXRob2RfY2FsbHNgLCBidXQgdGhleQorYXJlIHJlY29yZGVkIGluIDphdHRyOmB+TW9jay5tb2NrX2NhbGxzYC4KKworLi4gbm90ZTo6CisKKyAgIElmIHlvdSB1c2UgdGhlIGBzcGVjYCBrZXl3b3JkIGFyZ3VtZW50IHRvIGNyZWF0ZSBhIG1vY2sgdGhlbiBhdHRlbXB0aW5nIHRvCisgICBzZXQgYSBtYWdpYyBtZXRob2QgdGhhdCBpc24ndCBpbiB0aGUgc3BlYyB3aWxsIHJhaXNlIGFuIGBBdHRyaWJ1dGVFcnJvcmAuCisKK1RoZSBmdWxsIGxpc3Qgb2Ygc3VwcG9ydGVkIG1hZ2ljIG1ldGhvZHMgaXM6CisKKyogYGBfX2hhc2hfX2BgLCBgYF9fc2l6ZW9mX19gYCwgYGBfX3JlcHJfX2BgIGFuZCBgYF9fc3RyX19gYAorKiBgYF9fZGlyX19gYCwgYGBfX2Zvcm1hdF9fYGAgYW5kIGBgX19zdWJjbGFzc2VzX19gYAorKiBgYF9fZmxvb3JfX2BgLCBgYF9fdHJ1bmNfX2BgIGFuZCBgYF9fY2VpbF9fYGAKKyogQ29tcGFyaXNvbnM6IGBgX19jbXBfX2BgLCBgYF9fbHRfX2BgLCBgYF9fZ3RfX2BgLCBgYF9fbGVfX2BgLCBgYF9fZ2VfX2BgLAorICBgYF9fZXFfX2BgIGFuZCBgYF9fbmVfX2BgCisqIENvbnRhaW5lciBtZXRob2RzOiBgYF9fZ2V0aXRlbV9fYGAsIGBgX19zZXRpdGVtX19gYCwgYGBfX2RlbGl0ZW1fX2BgLAorICBgYF9fY29udGFpbnNfX2BgLCBgYF9fbGVuX19gYCwgYGBfX2l0ZXJfX2BgLCBgYF9fZ2V0c2xpY2VfX2BgLAorICBgYF9fc2V0c2xpY2VfX2BgLCBgYF9fcmV2ZXJzZWRfX2BgIGFuZCBgYF9fbWlzc2luZ19fYGAKKyogQ29udGV4dCBtYW5hZ2VyOiBgYF9fZW50ZXJfX2BgIGFuZCBgYF9fZXhpdF9fYGAKKyogVW5hcnkgbnVtZXJpYyBtZXRob2RzOiBgYF9fbmVnX19gYCwgYGBfX3Bvc19fYGAgYW5kIGBgX19pbnZlcnRfX2BgCisqIFRoZSBudW1lcmljIG1ldGhvZHMgKGluY2x1ZGluZyByaWdodCBoYW5kIGFuZCBpbi1wbGFjZSB2YXJpYW50cyk6CisgIGBgX19hZGRfX2BgLCBgYF9fc3ViX19gYCwgYGBfX211bF9fYGAsIGBgX19kaXZfX2BgLAorICBgYF9fZmxvb3JkaXZfX2BgLCBgYF9fbW9kX19gYCwgYGBfX2Rpdm1vZF9fYGAsIGBgX19sc2hpZnRfX2BgLAorICBgYF9fcnNoaWZ0X19gYCwgYGBfX2FuZF9fYGAsIGBgX194b3JfX2BgLCBgYF9fb3JfX2BgLCBhbmQgYGBfX3Bvd19fYGAKKyogTnVtZXJpYyBjb252ZXJzaW9uIG1ldGhvZHM6IGBgX19jb21wbGV4X19gYCwgYGBfX2ludF9fYGAsIGBgX19mbG9hdF9fYGAsCisgIGBgX19pbmRleF9fYGAgYW5kIGBgX19jb2VyY2VfX2BgCisqIERlc2NyaXB0b3IgbWV0aG9kczogYGBfX2dldF9fYGAsIGBgX19zZXRfX2BgIGFuZCBgYF9fZGVsZXRlX19gYAorKiBQaWNrbGluZzogYGBfX3JlZHVjZV9fYGAsIGBgX19yZWR1Y2VfZXhfX2BgLCBgYF9fZ2V0aW5pdGFyZ3NfX2BgLAorICBgYF9fZ2V0bmV3YXJnc19fYGAsIGBgX19nZXRzdGF0ZV9fYGAgYW5kIGBgX19zZXRzdGF0ZV9fYGAKKworCitUaGUgZm9sbG93aW5nIG1ldGhvZHMgZXhpc3QgYnV0IGFyZSAqbm90KiBzdXBwb3J0ZWQgYXMgdGhleSBhcmUgZWl0aGVyIGluIHVzZQorYnkgbW9jaywgY2FuJ3QgYmUgc2V0IGR5bmFtaWNhbGx5LCBvciBjYW4gY2F1c2UgcHJvYmxlbXM6CisKKyogYGBfX2dldGF0dHJfX2BgLCBgYF9fc2V0YXR0cl9fYGAsIGBgX19pbml0X19gYCBhbmQgYGBfX25ld19fYGAKKyogYGBfX3ByZXBhcmVfX2BgLCBgYF9faW5zdGFuY2VjaGVja19fYGAsIGBgX19zdWJjbGFzc2NoZWNrX19gYCwgYGBfX2RlbF9fYGAKKworCisKK01hZ2ljIE1vY2sKKy0tLS0tLS0tLS0KKworVGhlcmUgYXJlIHR3byBgTWFnaWNNb2NrYCB2YXJpYW50czogYE1hZ2ljTW9ja2AgYW5kIGBOb25DYWxsYWJsZU1hZ2ljTW9ja2AuCisKKworLi4gY2xhc3M6OiBNYWdpY01vY2soKmFyZ3MsICoqa3cpCisKKyAgIGBgTWFnaWNNb2NrYGAgaXMgYSBzdWJjbGFzcyBvZiA6Y2xhc3M6YE1vY2tgIHdpdGggZGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMKKyAgIG9mIG1vc3Qgb2YgdGhlIG1hZ2ljIG1ldGhvZHMuIFlvdSBjYW4gdXNlIGBgTWFnaWNNb2NrYGAgd2l0aG91dCBoYXZpbmcgdG8KKyAgIGNvbmZpZ3VyZSB0aGUgbWFnaWMgbWV0aG9kcyB5b3Vyc2VsZi4KKworICAgVGhlIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgaGF2ZSB0aGUgc2FtZSBtZWFuaW5nIGFzIGZvciA6Y2xhc3M6YE1vY2tgLgorCisgICBJZiB5b3UgdXNlIHRoZSBgc3BlY2Agb3IgYHNwZWNfc2V0YCBhcmd1bWVudHMgdGhlbiAqb25seSogbWFnaWMgbWV0aG9kcworICAgdGhhdCBleGlzdCBpbiB0aGUgc3BlYyB3aWxsIGJlIGNyZWF0ZWQuCisKKworLi4gY2xhc3M6OiBOb25DYWxsYWJsZU1hZ2ljTW9jaygqYXJncywgKiprdykKKworICAgIEEgbm9uLWNhbGxhYmxlIHZlcnNpb24gb2YgYE1hZ2ljTW9ja2AuCisKKyAgICBUaGUgY29uc3RydWN0b3IgcGFyYW1ldGVycyBoYXZlIHRoZSBzYW1lIG1lYW5pbmcgYXMgZm9yCisgICAgOmNsYXNzOmBNYWdpY01vY2tgLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgYHJldHVybl92YWx1ZWAgYW5kCisgICAgYHNpZGVfZWZmZWN0YCB3aGljaCBoYXZlIG5vIG1lYW5pbmcgb24gYSBub24tY2FsbGFibGUgbW9jay4KKworVGhlIG1hZ2ljIG1ldGhvZHMgYXJlIHNldHVwIHdpdGggYE1hZ2ljTW9ja2Agb2JqZWN0cywgc28geW91IGNhbiBjb25maWd1cmUgdGhlbQorYW5kIHVzZSB0aGVtIGluIHRoZSB1c3VhbCB3YXk6CisKKyAgID4+PiBtb2NrID0gTWFnaWNNb2NrKCkKKyAgID4+PiBtb2NrWzNdID0gJ2Zpc2gnCisgICA+Pj4gbW9jay5fX3NldGl0ZW1fXy5hc3NlcnRfY2FsbGVkX3dpdGgoMywgJ2Zpc2gnKQorICAgPj4+IG1vY2suX19nZXRpdGVtX18ucmV0dXJuX3ZhbHVlID0gJ3Jlc3VsdCcKKyAgID4+PiBtb2NrWzJdCisgICAncmVzdWx0JworCitCeSBkZWZhdWx0IG1hbnkgb2YgdGhlIHByb3RvY29sIG1ldGhvZHMgYXJlIHJlcXVpcmVkIHRvIHJldHVybiBvYmplY3RzIG9mIGEKK3NwZWNpZmljIHR5cGUuIFRoZXNlIG1ldGhvZHMgYXJlIHByZWNvbmZpZ3VyZWQgd2l0aCBhIGRlZmF1bHQgcmV0dXJuIHZhbHVlLCBzbwordGhhdCB0aGV5IGNhbiBiZSB1c2VkIHdpdGhvdXQgeW91IGhhdmluZyB0byBkbyBhbnl0aGluZyBpZiB5b3UgYXJlbid0IGludGVyZXN0ZWQKK2luIHRoZSByZXR1cm4gdmFsdWUuIFlvdSBjYW4gc3RpbGwgKnNldCogdGhlIHJldHVybiB2YWx1ZSBtYW51YWxseSBpZiB5b3Ugd2FudAordG8gY2hhbmdlIHRoZSBkZWZhdWx0LgorCitNZXRob2RzIGFuZCB0aGVpciBkZWZhdWx0czoKKworKiBgYF9fbHRfX2BgOiBOb3RJbXBsZW1lbnRlZAorKiBgYF9fZ3RfX2BgOiBOb3RJbXBsZW1lbnRlZAorKiBgYF9fbGVfX2BgOiBOb3RJbXBsZW1lbnRlZAorKiBgYF9fZ2VfX2BgOiBOb3RJbXBsZW1lbnRlZAorKiBgYF9faW50X19gYCA6IDEKKyogYGBfX2NvbnRhaW5zX19gYCA6IEZhbHNlCisqIGBgX19sZW5fX2BgIDogMQorKiBgYF9faXRlcl9fYGAgOiBpdGVyKFtdKQorKiBgYF9fZXhpdF9fYGAgOiBGYWxzZQorKiBgYF9fY29tcGxleF9fYGAgOiAxagorKiBgYF9fZmxvYXRfX2BgIDogMS4wCisqIGBgX19ib29sX19gYCA6IFRydWUKKyogYGBfX2luZGV4X19gYCA6IDEKKyogYGBfX2hhc2hfX2BgIDogZGVmYXVsdCBoYXNoIGZvciB0aGUgbW9jaworKiBgYF9fc3RyX19gYCA6IGRlZmF1bHQgc3RyIGZvciB0aGUgbW9jaworKiBgYF9fc2l6ZW9mX19gYDogZGVmYXVsdCBzaXplb2YgZm9yIHRoZSBtb2NrCisKK0ZvciBleGFtcGxlOgorCisgICA+Pj4gbW9jayA9IE1hZ2ljTW9jaygpCisgICA+Pj4gaW50KG1vY2spCisgICAxCisgICA+Pj4gbGVuKG1vY2spCisgICAwCisgICA+Pj4gbGlzdChtb2NrKQorICAgW10KKyAgID4+PiBvYmplY3QoKSBpbiBtb2NrCisgICBGYWxzZQorCitUaGUgdHdvIGVxdWFsaXR5IG1ldGhvZCwgYF9fZXFfX2AgYW5kIGBfX25lX19gLCBhcmUgc3BlY2lhbC4KK1RoZXkgZG8gdGhlIGRlZmF1bHQgZXF1YWxpdHkgY29tcGFyaXNvbiBvbiBpZGVudGl0eSwgdXNpbmcgYSBzaWRlCitlZmZlY3QsIHVubGVzcyB5b3UgY2hhbmdlIHRoZWlyIHJldHVybiB2YWx1ZSB0byByZXR1cm4gc29tZXRoaW5nIGVsc2U6CisKKyAgID4+PiBNYWdpY01vY2soKSA9PSAzCisgICBGYWxzZQorICAgPj4+IE1hZ2ljTW9jaygpICE9IDMKKyAgIFRydWUKKyAgID4+PiBtb2NrID0gTWFnaWNNb2NrKCkKKyAgID4+PiBtb2NrLl9fZXFfXy5yZXR1cm5fdmFsdWUgPSBUcnVlCisgICA+Pj4gbW9jayA9PSAzCisgICBUcnVlCisKK1RoZSByZXR1cm4gdmFsdWUgb2YgYE1hZ2ljTW9jay5fX2l0ZXJfX2AgY2FuIGJlIGFueSBpdGVyYWJsZSBvYmplY3QgYW5kIGlzbid0CityZXF1aXJlZCB0byBiZSBhbiBpdGVyYXRvcjoKKworICAgPj4+IG1vY2sgPSBNYWdpY01vY2soKQorICAgPj4+IG1vY2suX19pdGVyX18ucmV0dXJuX3ZhbHVlID0gWydhJywgJ2InLCAnYyddCisgICA+Pj4gbGlzdChtb2NrKQorICAgWydhJywgJ2InLCAnYyddCisgICA+Pj4gbGlzdChtb2NrKQorICAgWydhJywgJ2InLCAnYyddCisKK0lmIHRoZSByZXR1cm4gdmFsdWUgKmlzKiBhbiBpdGVyYXRvciwgdGhlbiBpdGVyYXRpbmcgb3ZlciBpdCBvbmNlIHdpbGwgY29uc3VtZQoraXQgYW5kIHN1YnNlcXVlbnQgaXRlcmF0aW9ucyB3aWxsIHJlc3VsdCBpbiBhbiBlbXB0eSBsaXN0OgorCisgICA+Pj4gbW9jay5fX2l0ZXJfXy5yZXR1cm5fdmFsdWUgPSBpdGVyKFsnYScsICdiJywgJ2MnXSkKKyAgID4+PiBsaXN0KG1vY2spCisgICBbJ2EnLCAnYicsICdjJ10KKyAgID4+PiBsaXN0KG1vY2spCisgICBbXQorCitgYE1hZ2ljTW9ja2BgIGhhcyBhbGwgb2YgdGhlIHN1cHBvcnRlZCBtYWdpYyBtZXRob2RzIGNvbmZpZ3VyZWQgZXhjZXB0IGZvciBzb21lCitvZiB0aGUgb2JzY3VyZSBhbmQgb2Jzb2xldGUgb25lcy4gWW91IGNhbiBzdGlsbCBzZXQgdGhlc2UgdXAgaWYgeW91IHdhbnQuCisKK01hZ2ljIG1ldGhvZHMgdGhhdCBhcmUgc3VwcG9ydGVkIGJ1dCBub3Qgc2V0dXAgYnkgZGVmYXVsdCBpbiBgYE1hZ2ljTW9ja2BgIGFyZToKKworKiBgYF9fc3ViY2xhc3Nlc19fYGAKKyogYGBfX2Rpcl9fYGAKKyogYGBfX2Zvcm1hdF9fYGAKKyogYGBfX2dldF9fYGAsIGBgX19zZXRfX2BgIGFuZCBgYF9fZGVsZXRlX19gYAorKiBgYF9fcmV2ZXJzZWRfX2BgIGFuZCBgYF9fbWlzc2luZ19fYGAKKyogYGBfX3JlZHVjZV9fYGAsIGBgX19yZWR1Y2VfZXhfX2BgLCBgYF9fZ2V0aW5pdGFyZ3NfX2BgLCBgYF9fZ2V0bmV3YXJnc19fYGAsCisgIGBgX19nZXRzdGF0ZV9fYGAgYW5kIGBgX19zZXRzdGF0ZV9fYGAKKyogYGBfX2dldGZvcm1hdF9fYGAgYW5kIGBgX19zZXRmb3JtYXRfX2BgCisKKworCisuLiBbI10gTWFnaWMgbWV0aG9kcyAqc2hvdWxkKiBiZSBsb29rZWQgdXAgb24gdGhlIGNsYXNzIHJhdGhlciB0aGFuIHRoZQorICAgaW5zdGFuY2UuIERpZmZlcmVudCB2ZXJzaW9ucyBvZiBQeXRob24gYXJlIGluY29uc2lzdGVudCBhYm91dCBhcHBseWluZyB0aGlzCisgICBydWxlLiBUaGUgc3VwcG9ydGVkIHByb3RvY29sIG1ldGhvZHMgc2hvdWxkIHdvcmsgd2l0aCBhbGwgc3VwcG9ydGVkIHZlcnNpb25zCisgICBvZiBQeXRob24uCisuLiBbI10gVGhlIGZ1bmN0aW9uIGlzIGJhc2ljYWxseSBob29rZWQgdXAgdG8gdGhlIGNsYXNzLCBidXQgZWFjaCBgYE1vY2tgYAorICAgaW5zdGFuY2UgaXMga2VwdCBpc29sYXRlZCBmcm9tIHRoZSBvdGhlcnMuCisKKworSGVscGVycworPT09PT09PQorCitzZW50aW5lbAorLS0tLS0tLS0KKworLi4gZGF0YTo6IHNlbnRpbmVsCisKKyAgICBUaGUgYGBzZW50aW5lbGBgIG9iamVjdCBwcm92aWRlcyBhIGNvbnZlbmllbnQgd2F5IG9mIHByb3ZpZGluZyB1bmlxdWUKKyAgICBvYmplY3RzIGZvciB5b3VyIHRlc3RzLgorCisgICAgQXR0cmlidXRlcyBhcmUgY3JlYXRlZCBvbiBkZW1hbmQgd2hlbiB5b3UgYWNjZXNzIHRoZW0gYnkgbmFtZS4gQWNjZXNzaW5nCisgICAgdGhlIHNhbWUgYXR0cmlidXRlIHdpbGwgYWx3YXlzIHJldHVybiB0aGUgc2FtZSBvYmplY3QuIFRoZSBvYmplY3RzCisgICAgcmV0dXJuZWQgaGF2ZSBhIHNlbnNpYmxlIHJlcHIgc28gdGhhdCB0ZXN0IGZhaWx1cmUgbWVzc2FnZXMgYXJlIHJlYWRhYmxlLgorCitTb21ldGltZXMgd2hlbiB0ZXN0aW5nIHlvdSBuZWVkIHRvIHRlc3QgdGhhdCBhIHNwZWNpZmljIG9iamVjdCBpcyBwYXNzZWQgYXMgYW4KK2FyZ3VtZW50IHRvIGFub3RoZXIgbWV0aG9kLCBvciByZXR1cm5lZC4gSXQgY2FuIGJlIGNvbW1vbiB0byBjcmVhdGUgbmFtZWQKK3NlbnRpbmVsIG9iamVjdHMgdG8gdGVzdCB0aGlzLiBgc2VudGluZWxgIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgb2YKK2NyZWF0aW5nIGFuZCB0ZXN0aW5nIHRoZSBpZGVudGl0eSBvZiBvYmplY3RzIGxpa2UgdGhpcy4KKworSW4gdGhpcyBleGFtcGxlIHdlIG1vbmtleSBwYXRjaCBgbWV0aG9kYCB0byByZXR1cm4gYHNlbnRpbmVsLnNvbWVfb2JqZWN0YDoKKworICAgID4+PiByZWFsID0gUHJvZHVjdGlvbkNsYXNzKCkKKyAgICA+Pj4gcmVhbC5tZXRob2QgPSBNb2NrKG5hbWU9Im1ldGhvZCIpCisgICAgPj4+IHJlYWwubWV0aG9kLnJldHVybl92YWx1ZSA9IHNlbnRpbmVsLnNvbWVfb2JqZWN0CisgICAgPj4+IHJlc3VsdCA9IHJlYWwubWV0aG9kKCkKKyAgICA+Pj4gYXNzZXJ0IHJlc3VsdCBpcyBzZW50aW5lbC5zb21lX29iamVjdAorICAgID4+PiBzZW50aW5lbC5zb21lX29iamVjdAorICAgIHNlbnRpbmVsLnNvbWVfb2JqZWN0CisKKworREVGQVVMVAorLS0tLS0tLQorCisKKy4uIGRhdGE6OiBERUZBVUxUCisKKyAgICBUaGUgYERFRkFVTFRgIG9iamVjdCBpcyBhIHByZS1jcmVhdGVkIHNlbnRpbmVsIChhY3R1YWxseQorICAgIGBzZW50aW5lbC5ERUZBVUxUYCkuIEl0IGNhbiBiZSB1c2VkIGJ5IDphdHRyOmB+TW9jay5zaWRlX2VmZmVjdGAKKyAgICBmdW5jdGlvbnMgdG8gaW5kaWNhdGUgdGhhdCB0aGUgbm9ybWFsIHJldHVybiB2YWx1ZSBzaG91bGQgYmUgdXNlZC4KKworCisKK2NhbGwKKy0tLS0KKworLi4gZnVuY3Rpb246OiBjYWxsKCphcmdzLCAqKmt3YXJncykKKworICAgIGBjYWxsYCBpcyBhIGhlbHBlciBvYmplY3QgZm9yIG1ha2luZyBzaW1wbGVyIGFzc2VydGlvbnMsIGZvciBjb21wYXJpbmcgd2l0aAorICAgIDphdHRyOmB+TW9jay5jYWxsX2FyZ3NgLCA6YXR0cjpgfk1vY2suY2FsbF9hcmdzX2xpc3RgLAorICAgIDphdHRyOmB+TW9jay5tb2NrX2NhbGxzYCBhbmQgOmF0dHI6YH5Nb2NrLm1ldGhvZF9jYWxsc2AuIGBjYWxsYCBjYW4gYWxzbyBiZQorICAgIHVzZWQgd2l0aCA6bWV0aDpgfk1vY2suYXNzZXJ0X2hhc19jYWxsc2AuCisKKyAgICAgICAgPj4+IG0gPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPU5vbmUpCisgICAgICAgID4+PiBtKDEsIDIsIGE9J2ZvbycsIGI9J2JhcicpCisgICAgICAgID4+PiBtKCkKKyAgICAgICAgPj4+IG0uY2FsbF9hcmdzX2xpc3QgPT0gW2NhbGwoMSwgMiwgYT0nZm9vJywgYj0nYmFyJyksIGNhbGwoKV0KKyAgICAgICAgVHJ1ZQorCisuLiBtZXRob2Q6OiBjYWxsLmNhbGxfbGlzdCgpCisKKyAgICBGb3IgYSBjYWxsIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgbXVsdGlwbGUgY2FsbHMsIGBjYWxsX2xpc3RgCisgICAgcmV0dXJucyBhIGxpc3Qgb2YgYWxsIHRoZSBpbnRlcm1lZGlhdGUgY2FsbHMgYXMgd2VsbCBhcyB0aGUKKyAgICBmaW5hbCBjYWxsLgorCitgY2FsbF9saXN0YCBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsIGZvciBtYWtpbmcgYXNzZXJ0aW9ucyBvbiAiY2hhaW5lZCBjYWxscyIuIEEKK2NoYWluZWQgY2FsbCBpcyBtdWx0aXBsZSBjYWxscyBvbiBhIHNpbmdsZSBsaW5lIG9mIGNvZGUuIFRoaXMgcmVzdWx0cyBpbgorbXVsdGlwbGUgZW50cmllcyBpbiA6YXR0cjpgfk1vY2subW9ja19jYWxsc2Agb24gYSBtb2NrLiBNYW51YWxseSBjb25zdHJ1Y3RpbmcKK3RoZSBzZXF1ZW5jZSBvZiBjYWxscyBjYW4gYmUgdGVkaW91cy4KKworOm1ldGg6YH5jYWxsLmNhbGxfbGlzdGAgY2FuIGNvbnN0cnVjdCB0aGUgc2VxdWVuY2Ugb2YgY2FsbHMgZnJvbSB0aGUgc2FtZQorY2hhaW5lZCBjYWxsOgorCisgICAgPj4+IG0gPSBNYWdpY01vY2soKQorICAgID4+PiBtKDEpLm1ldGhvZChhcmc9J2ZvbycpLm90aGVyKCdiYXInKSgyLjApCisgICAgPE1hZ2ljTW9jayBuYW1lPSdtb2NrKCkubWV0aG9kKCkub3RoZXIoKSgpJyBpZD0nLi4uJz4KKyAgICA+Pj4ga2FsbCA9IGNhbGwoMSkubWV0aG9kKGFyZz0nZm9vJykub3RoZXIoJ2JhcicpKDIuMCkKKyAgICA+Pj4ga2FsbC5jYWxsX2xpc3QoKQorICAgIFtjYWxsKDEpLAorICAgICBjYWxsKCkubWV0aG9kKGFyZz0nZm9vJyksCisgICAgIGNhbGwoKS5tZXRob2QoKS5vdGhlcignYmFyJyksCisgICAgIGNhbGwoKS5tZXRob2QoKS5vdGhlcigpKDIuMCldCisgICAgPj4+IG0ubW9ja19jYWxscyA9PSBrYWxsLmNhbGxfbGlzdCgpCisgICAgVHJ1ZQorCisuLiBfY2FsbHMtYXMtdHVwbGVzOgorCitBIGBjYWxsYCBvYmplY3QgaXMgZWl0aGVyIGEgdHVwbGUgb2YgKHBvc2l0aW9uYWwgYXJncywga2V5d29yZCBhcmdzKSBvcgorKG5hbWUsIHBvc2l0aW9uYWwgYXJncywga2V5d29yZCBhcmdzKSBkZXBlbmRpbmcgb24gaG93IGl0IHdhcyBjb25zdHJ1Y3RlZC4gV2hlbgoreW91IGNvbnN0cnVjdCB0aGVtIHlvdXJzZWxmIHRoaXMgaXNuJ3QgcGFydGljdWxhcmx5IGludGVyZXN0aW5nLCBidXQgdGhlIGBjYWxsYAorb2JqZWN0cyB0aGF0IGFyZSBpbiB0aGUgOmF0dHI6YE1vY2suY2FsbF9hcmdzYCwgOmF0dHI6YE1vY2suY2FsbF9hcmdzX2xpc3RgIGFuZAorOmF0dHI6YE1vY2subW9ja19jYWxsc2AgYXR0cmlidXRlcyBjYW4gYmUgaW50cm9zcGVjdGVkIHRvIGdldCBhdCB0aGUgaW5kaXZpZHVhbAorYXJndW1lbnRzIHRoZXkgY29udGFpbi4KKworVGhlIGBjYWxsYCBvYmplY3RzIGluIDphdHRyOmBNb2NrLmNhbGxfYXJnc2AgYW5kIDphdHRyOmBNb2NrLmNhbGxfYXJnc19saXN0YAorYXJlIHR3by10dXBsZXMgb2YgKHBvc2l0aW9uYWwgYXJncywga2V5d29yZCBhcmdzKSB3aGVyZWFzIHRoZSBgY2FsbGAgb2JqZWN0cworaW4gOmF0dHI6YE1vY2subW9ja19jYWxsc2AsIGFsb25nIHdpdGggb25lcyB5b3UgY29uc3RydWN0IHlvdXJzZWxmLCBhcmUKK3RocmVlLXR1cGxlcyBvZiAobmFtZSwgcG9zaXRpb25hbCBhcmdzLCBrZXl3b3JkIGFyZ3MpLgorCitZb3UgY2FuIHVzZSB0aGVpciAidHVwbGVuZXNzIiB0byBwdWxsIG91dCB0aGUgaW5kaXZpZHVhbCBhcmd1bWVudHMgZm9yIG1vcmUKK2NvbXBsZXggaW50cm9zcGVjdGlvbiBhbmQgYXNzZXJ0aW9ucy4gVGhlIHBvc2l0aW9uYWwgYXJndW1lbnRzIGFyZSBhIHR1cGxlCisoYW4gZW1wdHkgdHVwbGUgaWYgdGhlcmUgYXJlIG5vIHBvc2l0aW9uYWwgYXJndW1lbnRzKSBhbmQgdGhlIGtleXdvcmQKK2FyZ3VtZW50cyBhcmUgYSBkaWN0aW9uYXJ5OgorCisgICAgPj4+IG0gPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPU5vbmUpCisgICAgPj4+IG0oMSwgMiwgMywgYXJnPSdvbmUnLCBhcmcyPSd0d28nKQorICAgID4+PiBrYWxsID0gbS5jYWxsX2FyZ3MKKyAgICA+Pj4gYXJncywga3dhcmdzID0ga2FsbAorICAgID4+PiBhcmdzCisgICAgKDEsIDIsIDMpCisgICAgPj4+IGt3YXJncworICAgIHsnYXJnMic6ICd0d28nLCAnYXJnJzogJ29uZSd9CisgICAgPj4+IGFyZ3MgaXMga2FsbFswXQorICAgIFRydWUKKyAgICA+Pj4ga3dhcmdzIGlzIGthbGxbMV0KKyAgICBUcnVlCisKKyAgICA+Pj4gbSA9IE1hZ2ljTW9jaygpCisgICAgPj4+IG0uZm9vKDQsIDUsIDYsIGFyZz0ndHdvJywgYXJnMj0ndGhyZWUnKQorICAgIDxNYWdpY01vY2sgbmFtZT0nbW9jay5mb28oKScgaWQ9Jy4uLic+CisgICAgPj4+IGthbGwgPSBtLm1vY2tfY2FsbHNbMF0KKyAgICA+Pj4gbmFtZSwgYXJncywga3dhcmdzID0ga2FsbAorICAgID4+PiBuYW1lCisgICAgJ2ZvbycKKyAgICA+Pj4gYXJncworICAgICg0LCA1LCA2KQorICAgID4+PiBrd2FyZ3MKKyAgICB7J2FyZzInOiAndGhyZWUnLCAnYXJnJzogJ3R3byd9CisgICAgPj4+IG5hbWUgaXMgbS5tb2NrX2NhbGxzWzBdWzBdCisgICAgVHJ1ZQorCisKK2NyZWF0ZV9hdXRvc3BlYworLS0tLS0tLS0tLS0tLS0tCisKKy4uIGZ1bmN0aW9uOjogY3JlYXRlX2F1dG9zcGVjKHNwZWMsIHNwZWNfc2V0PUZhbHNlLCBpbnN0YW5jZT1GYWxzZSwgKiprd2FyZ3MpCisKKyAgICBDcmVhdGUgYSBtb2NrIG9iamVjdCB1c2luZyBhbm90aGVyIG9iamVjdCBhcyBhIHNwZWMuIEF0dHJpYnV0ZXMgb24gdGhlCisgICAgbW9jayB3aWxsIHVzZSB0aGUgY29ycmVzcG9uZGluZyBhdHRyaWJ1dGUgb24gdGhlIGBzcGVjYCBvYmplY3QgYXMgdGhlaXIKKyAgICBzcGVjLgorCisgICAgRnVuY3Rpb25zIG9yIG1ldGhvZHMgYmVpbmcgbW9ja2VkIHdpbGwgaGF2ZSB0aGVpciBhcmd1bWVudHMgY2hlY2tlZCB0bworICAgIGVuc3VyZSB0aGF0IHRoZXkgYXJlIGNhbGxlZCB3aXRoIHRoZSBjb3JyZWN0IHNpZ25hdHVyZS4KKworICAgIElmIGBzcGVjX3NldGAgaXMgYFRydWVgIHRoZW4gYXR0ZW1wdGluZyB0byBzZXQgYXR0cmlidXRlcyB0aGF0IGRvbid0IGV4aXN0CisgICAgb24gdGhlIHNwZWMgb2JqZWN0IHdpbGwgcmFpc2UgYW4gYEF0dHJpYnV0ZUVycm9yYC4KKworICAgIElmIGEgY2xhc3MgaXMgdXNlZCBhcyBhIHNwZWMgdGhlbiB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBtb2NrICh0aGUKKyAgICBpbnN0YW5jZSBvZiB0aGUgY2xhc3MpIHdpbGwgaGF2ZSB0aGUgc2FtZSBzcGVjLiBZb3UgY2FuIHVzZSBhIGNsYXNzIGFzIHRoZQorICAgIHNwZWMgZm9yIGFuIGluc3RhbmNlIG9iamVjdCBieSBwYXNzaW5nIGBpbnN0YW5jZT1UcnVlYC4gVGhlIHJldHVybmVkIG1vY2sKKyAgICB3aWxsIG9ubHkgYmUgY2FsbGFibGUgaWYgaW5zdGFuY2VzIG9mIHRoZSBtb2NrIGFyZSBjYWxsYWJsZS4KKworICAgIGBjcmVhdGVfYXV0b3NwZWNgIGFsc28gdGFrZXMgYXJiaXRyYXJ5IGtleXdvcmQgYXJndW1lbnRzIHRoYXQgYXJlIHBhc3NlZCB0bworICAgIHRoZSBjb25zdHJ1Y3RvciBvZiB0aGUgY3JlYXRlZCBtb2NrLgorCitTZWUgOnJlZjpgYXV0by1zcGVjY2luZ2AgZm9yIGV4YW1wbGVzIG9mIGhvdyB0byB1c2UgYXV0by1zcGVjY2luZyB3aXRoCitgY3JlYXRlX2F1dG9zcGVjYCBhbmQgdGhlIGBhdXRvc3BlY2AgYXJndW1lbnQgdG8gOmZ1bmM6YHBhdGNoYC4KKworCitBTlkKKy0tLQorCisuLiBkYXRhOjogQU5ZCisKK1NvbWV0aW1lcyB5b3UgbWF5IG5lZWQgdG8gbWFrZSBhc3NlcnRpb25zIGFib3V0ICpzb21lKiBvZiB0aGUgYXJndW1lbnRzIGluIGEKK2NhbGwgdG8gbW9jaywgYnV0IGVpdGhlciBub3QgY2FyZSBhYm91dCBzb21lIG9mIHRoZSBhcmd1bWVudHMgb3Igd2FudCB0byBwdWxsCit0aGVtIGluZGl2aWR1YWxseSBvdXQgb2YgOmF0dHI6YH5Nb2NrLmNhbGxfYXJnc2AgYW5kIG1ha2UgbW9yZSBjb21wbGV4Cithc3NlcnRpb25zIG9uIHRoZW0uCisKK1RvIGlnbm9yZSBjZXJ0YWluIGFyZ3VtZW50cyB5b3UgY2FuIHBhc3MgaW4gb2JqZWN0cyB0aGF0IGNvbXBhcmUgZXF1YWwgdG8KKypldmVyeXRoaW5nKi4gQ2FsbHMgdG8gOm1ldGg6YH5Nb2NrLmFzc2VydF9jYWxsZWRfd2l0aGAgYW5kCis6bWV0aDpgfk1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGhgIHdpbGwgdGhlbiBzdWNjZWVkIG5vIG1hdHRlciB3aGF0IHdhcworcGFzc2VkIGluLgorCisgICAgPj4+IG1vY2sgPSBNb2NrKHJldHVybl92YWx1ZT1Ob25lKQorICAgID4+PiBtb2NrKCdmb28nLCBiYXI9b2JqZWN0KCkpCisgICAgPj4+IG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoJ2ZvbycsIGJhcj1BTlkpCisKK2BBTllgIGNhbiBhbHNvIGJlIHVzZWQgaW4gY29tcGFyaXNvbnMgd2l0aCBjYWxsIGxpc3RzIGxpa2UKKzphdHRyOmB+TW9jay5tb2NrX2NhbGxzYDoKKworICAgID4+PiBtID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1Ob25lKQorICAgID4+PiBtKDEpCisgICAgPj4+IG0oMSwgMikKKyAgICA+Pj4gbShvYmplY3QoKSkKKyAgICA+Pj4gbS5tb2NrX2NhbGxzID09IFtjYWxsKDEpLCBjYWxsKDEsIDIpLCBBTlldCisgICAgVHJ1ZQorCisKKworRklMVEVSX0RJUgorLS0tLS0tLS0tLQorCisuLiBkYXRhOjogRklMVEVSX0RJUgorCitgRklMVEVSX0RJUmAgaXMgYSBtb2R1bGUgbGV2ZWwgdmFyaWFibGUgdGhhdCBjb250cm9scyB0aGUgd2F5IG1vY2sgb2JqZWN0cworcmVzcG9uZCB0byBgZGlyYCAob25seSBmb3IgUHl0aG9uIDIuNiBvciBtb3JlIHJlY2VudCkuIFRoZSBkZWZhdWx0IGlzIGBUcnVlYCwKK3doaWNoIHVzZXMgdGhlIGZpbHRlcmluZyBkZXNjcmliZWQgYmVsb3csIHRvIG9ubHkgc2hvdyB1c2VmdWwgbWVtYmVycy4gSWYgeW91CitkaXNsaWtlIHRoaXMgZmlsdGVyaW5nLCBvciBuZWVkIHRvIHN3aXRjaCBpdCBvZmYgZm9yIGRpYWdub3N0aWMgcHVycG9zZXMsIHRoZW4KK3NldCBgbW9jay5GSUxURVJfRElSID0gRmFsc2VgLgorCitXaXRoIGZpbHRlcmluZyBvbiwgYGRpcihzb21lX21vY2spYCBzaG93cyBvbmx5IHVzZWZ1bCBhdHRyaWJ1dGVzIGFuZCB3aWxsCitpbmNsdWRlIGFueSBkeW5hbWljYWxseSBjcmVhdGVkIGF0dHJpYnV0ZXMgdGhhdCB3b3VsZG4ndCBub3JtYWxseSBiZSBzaG93bi4KK0lmIHRoZSBtb2NrIHdhcyBjcmVhdGVkIHdpdGggYSBgc3BlY2AgKG9yIGBhdXRvc3BlY2Agb2YgY291cnNlKSB0aGVuIGFsbCB0aGUKK2F0dHJpYnV0ZXMgZnJvbSB0aGUgb3JpZ2luYWwgYXJlIHNob3duLCBldmVuIGlmIHRoZXkgaGF2ZW4ndCBiZWVuIGFjY2Vzc2VkCit5ZXQ6CisKKyAgICA+Pj4gZGlyKE1vY2soKSkKKyAgICBbJ2Fzc2VydF9hbnlfY2FsbCcsCisgICAgICdhc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCcsCisgICAgICdhc3NlcnRfY2FsbGVkX3dpdGgnLAorICAgICAnYXNzZXJ0X2hhc19jYWxscycsCisgICAgICdhdHRhY2hfbW9jaycsCisgICAgIC4uLgorICAgID4+PiBmcm9tIHVybGxpYiBpbXBvcnQgcmVxdWVzdAorICAgID4+PiBkaXIoTW9jayhzcGVjPXJlcXVlc3QpKQorICAgIFsnQWJzdHJhY3RCYXNpY0F1dGhIYW5kbGVyJywKKyAgICAgJ0Fic3RyYWN0RGlnZXN0QXV0aEhhbmRsZXInLAorICAgICAnQWJzdHJhY3RIVFRQSGFuZGxlcicsCisgICAgICdCYXNlSGFuZGxlcicsCisgICAgIC4uLgorCitNYW55IG9mIHRoZSBub3QtdmVyeS11c2VmdWwgKHByaXZhdGUgdG8gYE1vY2tgIHJhdGhlciB0aGFuIHRoZSB0aGluZyBiZWluZworbW9ja2VkKSB1bmRlcnNjb3JlIGFuZCBkb3VibGUgdW5kZXJzY29yZSBwcmVmaXhlZCBhdHRyaWJ1dGVzIGhhdmUgYmVlbgorZmlsdGVyZWQgZnJvbSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgYGRpcmAgb24gYSBgTW9ja2AuIElmIHlvdSBkaXNsaWtlIHRoaXMKK2JlaGF2aW91ciB5b3UgY2FuIHN3aXRjaCBpdCBvZmYgYnkgc2V0dGluZyB0aGUgbW9kdWxlIGxldmVsIHN3aXRjaAorYEZJTFRFUl9ESVJgOgorCisgICAgPj4+IGZyb20gdW5pdHRlc3QgaW1wb3J0IG1vY2sKKyAgICA+Pj4gbW9jay5GSUxURVJfRElSID0gRmFsc2UKKyAgICA+Pj4gZGlyKG1vY2suTW9jaygpKQorICAgIFsnX05vbkNhbGxhYmxlTW9ja19fZ2V0X3JldHVybl92YWx1ZScsCisgICAgICdfTm9uQ2FsbGFibGVNb2NrX19nZXRfc2lkZV9lZmZlY3QnLAorICAgICAnX05vbkNhbGxhYmxlTW9ja19fcmV0dXJuX3ZhbHVlX2RvYycsCisgICAgICdfTm9uQ2FsbGFibGVNb2NrX19zZXRfcmV0dXJuX3ZhbHVlJywKKyAgICAgJ19Ob25DYWxsYWJsZU1vY2tfX3NldF9zaWRlX2VmZmVjdCcsCisgICAgICdfX2NhbGxfXycsCisgICAgICdfX2NsYXNzX18nLAorICAgICAuLi4KKworQWx0ZXJuYXRpdmVseSB5b3UgY2FuIGp1c3QgdXNlIGB2YXJzKG15X21vY2spYCAoaW5zdGFuY2UgbWVtYmVycykgYW5kCitgZGlyKHR5cGUobXlfbW9jaykpYCAodHlwZSBtZW1iZXJzKSB0byBieXBhc3MgdGhlIGZpbHRlcmluZyBpcnJlc3BlY3RpdmUgb2YKK2Btb2NrLkZJTFRFUl9ESVJgLgorCisKK21vY2tfb3BlbgorLS0tLS0tLS0tCisKKy4uIGZ1bmN0aW9uOjogbW9ja19vcGVuKG1vY2s9Tm9uZSwgcmVhZF9kYXRhPU5vbmUpCisKKyAgICBBIGhlbHBlciBmdW5jdGlvbiB0byBjcmVhdGUgYSBtb2NrIHRvIHJlcGxhY2UgdGhlIHVzZSBvZiBgb3BlbmAuIEl0IHdvcmtzCisgICAgZm9yIGBvcGVuYCBjYWxsZWQgZGlyZWN0bHkgb3IgdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlci4KKworICAgIFRoZSBgbW9ja2AgYXJndW1lbnQgaXMgdGhlIG1vY2sgb2JqZWN0IHRvIGNvbmZpZ3VyZS4gSWYgYE5vbmVgICh0aGUKKyAgICBkZWZhdWx0KSB0aGVuIGEgYE1hZ2ljTW9ja2Agd2lsbCBiZSBjcmVhdGVkIGZvciB5b3UsIHdpdGggdGhlIEFQSSBsaW1pdGVkCisgICAgdG8gbWV0aG9kcyBvciBhdHRyaWJ1dGVzIGF2YWlsYWJsZSBvbiBzdGFuZGFyZCBmaWxlIGhhbmRsZXMuCisKKyAgICBgcmVhZF9kYXRhYCBpcyBhIHN0cmluZyBmb3IgdGhlIGByZWFkYCBtZXRob2Qgb2YgdGhlIGZpbGUgaGFuZGxlIHRvIHJldHVybi4KKyAgICBUaGlzIGlzIGFuIGVtcHR5IHN0cmluZyBieSBkZWZhdWx0LgorCitVc2luZyBgb3BlbmAgYXMgYSBjb250ZXh0IG1hbmFnZXIgaXMgYSBncmVhdCB3YXkgdG8gZW5zdXJlIHlvdXIgZmlsZSBoYW5kbGVzCithcmUgY2xvc2VkIHByb3Blcmx5IGFuZCBpcyBiZWNvbWluZyBjb21tb246OgorCisgICAgd2l0aCBvcGVuKCcvc29tZS9wYXRoJywgJ3cnKSBhcyBmOgorICAgICAgICBmLndyaXRlKCdzb21ldGhpbmcnKQorCitUaGUgaXNzdWUgaXMgdGhhdCBldmVuIGlmIHlvdSBtb2NrIG91dCB0aGUgY2FsbCB0byBgb3BlbmAgaXQgaXMgdGhlCisqcmV0dXJuZWQgb2JqZWN0KiB0aGF0IGlzIHVzZWQgYXMgYSBjb250ZXh0IG1hbmFnZXIgKGFuZCBoYXMgYF9fZW50ZXJfX2AgYW5kCitgX19leGl0X19gIGNhbGxlZCkuCisKK01vY2tpbmcgY29udGV4dCBtYW5hZ2VycyB3aXRoIGEgOmNsYXNzOmBNYWdpY01vY2tgIGlzIGNvbW1vbiBlbm91Z2ggYW5kIGZpZGRseQorZW5vdWdoIHRoYXQgYSBoZWxwZXIgZnVuY3Rpb24gaXMgdXNlZnVsLgorCisgICAgPj4+IG0gPSBtb2NrX29wZW4oKQorICAgID4+PiB3aXRoIHBhdGNoKCdfX21haW5fXy5vcGVuJywgbSwgY3JlYXRlPVRydWUpOgorICAgIC4uLiAgICAgd2l0aCBvcGVuKCdmb28nLCAndycpIGFzIGg6CisgICAgLi4uICAgICAgICAgaC53cml0ZSgnc29tZSBzdHVmZicpCisgICAgLi4uCisgICAgPj4+IG0ubW9ja19jYWxscworICAgIFtjYWxsKCdmb28nLCAndycpLAorICAgICBjYWxsKCkuX19lbnRlcl9fKCksCisgICAgIGNhbGwoKS53cml0ZSgnc29tZSBzdHVmZicpLAorICAgICBjYWxsKCkuX19leGl0X18oTm9uZSwgTm9uZSwgTm9uZSldCisgICAgPj4+IG0uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoJ2ZvbycsICd3JykKKyAgICA+Pj4gaGFuZGxlID0gbSgpCisgICAgPj4+IGhhbmRsZS53cml0ZS5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgnc29tZSBzdHVmZicpCisKK0FuZCBmb3IgcmVhZGluZyBmaWxlczoKKworICAgID4+PiB3aXRoIHBhdGNoKCdfX21haW5fXy5vcGVuJywgbW9ja19vcGVuKHJlYWRfZGF0YT0nYmliYmxlJyksIGNyZWF0ZT1UcnVlKSBhcyBtOgorICAgIC4uLiAgICAgd2l0aCBvcGVuKCdmb28nKSBhcyBoOgorICAgIC4uLiAgICAgICAgIHJlc3VsdCA9IGgucmVhZCgpCisgICAgLi4uCisgICAgPj4+IG0uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoJ2ZvbycpCisgICAgPj4+IGFzc2VydCByZXN1bHQgPT0gJ2JpYmJsZScKKworCisuLiBfYXV0by1zcGVjY2luZzoKKworQXV0b3NwZWNjaW5nCistLS0tLS0tLS0tLS0KKworQXV0b3NwZWNjaW5nIGlzIGJhc2VkIG9uIHRoZSBleGlzdGluZyBgc3BlY2AgZmVhdHVyZSBvZiBtb2NrLiBJdCBsaW1pdHMgdGhlCithcGkgb2YgbW9ja3MgdG8gdGhlIGFwaSBvZiBhbiBvcmlnaW5hbCBvYmplY3QgKHRoZSBzcGVjKSwgYnV0IGl0IGlzIHJlY3Vyc2l2ZQorKGltcGxlbWVudGVkIGxhemlseSkgc28gdGhhdCBhdHRyaWJ1dGVzIG9mIG1vY2tzIG9ubHkgaGF2ZSB0aGUgc2FtZSBhcGkgYXMKK3RoZSBhdHRyaWJ1dGVzIG9mIHRoZSBzcGVjLiBJbiBhZGRpdGlvbiBtb2NrZWQgZnVuY3Rpb25zIC8gbWV0aG9kcyBoYXZlIHRoZQorc2FtZSBjYWxsIHNpZ25hdHVyZSBhcyB0aGUgb3JpZ2luYWwgc28gdGhleSByYWlzZSBhIGBUeXBlRXJyb3JgIGlmIHRoZXkgYXJlCitjYWxsZWQgaW5jb3JyZWN0bHkuCisKK0JlZm9yZSBJIGV4cGxhaW4gaG93IGF1dG8tc3BlY2Npbmcgd29ya3MsIGhlcmUncyB3aHkgaXQgaXMgbmVlZGVkLgorCitgTW9ja2AgaXMgYSB2ZXJ5IHBvd2VyZnVsIGFuZCBmbGV4aWJsZSBvYmplY3QsIGJ1dCBpdCBzdWZmZXJzIGZyb20gdHdvIGZsYXdzCit3aGVuIHVzZWQgdG8gbW9jayBvdXQgb2JqZWN0cyBmcm9tIGEgc3lzdGVtIHVuZGVyIHRlc3QuIE9uZSBvZiB0aGVzZSBmbGF3cyBpcworc3BlY2lmaWMgdG8gdGhlIGBNb2NrYCBhcGkgYW5kIHRoZSBvdGhlciBpcyBhIG1vcmUgZ2VuZXJhbCBwcm9ibGVtIHdpdGggdXNpbmcKK21vY2sgb2JqZWN0cy4KKworRmlyc3QgdGhlIHByb2JsZW0gc3BlY2lmaWMgdG8gYE1vY2tgLiBgTW9ja2AgaGFzIHR3byBhc3NlcnQgbWV0aG9kcyB0aGF0IGFyZQorZXh0cmVtZWx5IGhhbmR5OiA6bWV0aDpgfk1vY2suYXNzZXJ0X2NhbGxlZF93aXRoYCBhbmQKKzptZXRoOmB+TW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aGAuCisKKyAgICA+Pj4gbW9jayA9IE1vY2sobmFtZT0nVGhpbmcnLCByZXR1cm5fdmFsdWU9Tm9uZSkKKyAgICA+Pj4gbW9jaygxLCAyLCAzKQorICAgID4+PiBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKDEsIDIsIDMpCisgICAgPj4+IG1vY2soMSwgMiwgMykKKyAgICA+Pj4gbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgxLCAyLCAzKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgLi4uCisgICAgQXNzZXJ0aW9uRXJyb3I6IEV4cGVjdGVkIHRvIGJlIGNhbGxlZCBvbmNlLiBDYWxsZWQgMiB0aW1lcy4KKworQmVjYXVzZSBtb2NrcyBhdXRvLWNyZWF0ZSBhdHRyaWJ1dGVzIG9uIGRlbWFuZCwgYW5kIGFsbG93IHlvdSB0byBjYWxsIHRoZW0KK3dpdGggYXJiaXRyYXJ5IGFyZ3VtZW50cywgaWYgeW91IG1pc3NwZWxsIG9uZSBvZiB0aGVzZSBhc3NlcnQgbWV0aG9kcyB0aGVuCit5b3VyIGFzc2VydGlvbiBpcyBnb25lOgorCisuLiBjb2RlLWJsb2NrOjogcHljb24KKworICAgID4+PiBtb2NrID0gTW9jayhuYW1lPSdUaGluZycsIHJldHVybl92YWx1ZT1Ob25lKQorICAgID4+PiBtb2NrKDEsIDIsIDMpCisgICAgPj4+IG1vY2suYXNzcmV0X2NhbGxlZF9vbmNlX3dpdGgoNCwgNSwgNikKKworWW91ciB0ZXN0cyBjYW4gcGFzcyBzaWxlbnRseSBhbmQgaW5jb3JyZWN0bHkgYmVjYXVzZSBvZiB0aGUgdHlwby4KKworVGhlIHNlY29uZCBpc3N1ZSBpcyBtb3JlIGdlbmVyYWwgdG8gbW9ja2luZy4gSWYgeW91IHJlZmFjdG9yIHNvbWUgb2YgeW91cgorY29kZSwgcmVuYW1lIG1lbWJlcnMgYW5kIHNvIG9uLCBhbnkgdGVzdHMgZm9yIGNvZGUgdGhhdCBpcyBzdGlsbCB1c2luZyB0aGUKKypvbGQgYXBpKiBidXQgdXNlcyBtb2NrcyBpbnN0ZWFkIG9mIHRoZSByZWFsIG9iamVjdHMgd2lsbCBzdGlsbCBwYXNzLiBUaGlzCittZWFucyB5b3VyIHRlc3RzIGNhbiBhbGwgcGFzcyBldmVuIHRob3VnaCB5b3VyIGNvZGUgaXMgYnJva2VuLgorCitOb3RlIHRoYXQgdGhpcyBpcyBhbm90aGVyIHJlYXNvbiB3aHkgeW91IG5lZWQgaW50ZWdyYXRpb24gdGVzdHMgYXMgd2VsbCBhcwordW5pdCB0ZXN0cy4gVGVzdGluZyBldmVyeXRoaW5nIGluIGlzb2xhdGlvbiBpcyBhbGwgZmluZSBhbmQgZGFuZHksIGJ1dCBpZiB5b3UKK2Rvbid0IHRlc3QgaG93IHlvdXIgdW5pdHMgYXJlICJ3aXJlZCB0b2dldGhlciIgdGhlcmUgaXMgc3RpbGwgbG90cyBvZiByb29tCitmb3IgYnVncyB0aGF0IHRlc3RzIG1pZ2h0IGhhdmUgY2F1Z2h0LgorCitgbW9ja2AgYWxyZWFkeSBwcm92aWRlcyBhIGZlYXR1cmUgdG8gaGVscCB3aXRoIHRoaXMsIGNhbGxlZCBzcGVjY2luZy4gSWYgeW91Cit1c2UgYSBjbGFzcyBvciBpbnN0YW5jZSBhcyB0aGUgYHNwZWNgIGZvciBhIG1vY2sgdGhlbiB5b3UgY2FuIG9ubHkgYWNjZXNzCithdHRyaWJ1dGVzIG9uIHRoZSBtb2NrIHRoYXQgZXhpc3Qgb24gdGhlIHJlYWwgY2xhc3M6CisKKyAgICA+Pj4gZnJvbSB1cmxsaWIgaW1wb3J0IHJlcXVlc3QKKyAgICA+Pj4gbW9jayA9IE1vY2soc3BlYz1yZXF1ZXN0LlJlcXVlc3QpCisgICAgPj4+IG1vY2suYXNzcmV0X2NhbGxlZF93aXRoCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAuLi4KKyAgICBBdHRyaWJ1dGVFcnJvcjogTW9jayBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnYXNzcmV0X2NhbGxlZF93aXRoJworCitUaGUgc3BlYyBvbmx5IGFwcGxpZXMgdG8gdGhlIG1vY2sgaXRzZWxmLCBzbyB3ZSBzdGlsbCBoYXZlIHRoZSBzYW1lIGlzc3VlCit3aXRoIGFueSBtZXRob2RzIG9uIHRoZSBtb2NrOgorCisuLiBjb2RlLWJsb2NrOjogcHljb24KKworICAgID4+PiBtb2NrLmhhc19kYXRhKCkKKyAgICA8bW9jay5Nb2NrIG9iamVjdCBhdCAweC4uLj4KKyAgICA+Pj4gbW9jay5oYXNfZGF0YS5hc3NyZXRfY2FsbGVkX3dpdGgoKQorCitBdXRvLXNwZWNjaW5nIHNvbHZlcyB0aGlzIHByb2JsZW0uIFlvdSBjYW4gZWl0aGVyIHBhc3MgYGF1dG9zcGVjPVRydWVgIHRvCitgcGF0Y2hgIC8gYHBhdGNoLm9iamVjdGAgb3IgdXNlIHRoZSBgY3JlYXRlX2F1dG9zcGVjYCBmdW5jdGlvbiB0byBjcmVhdGUgYQorbW9jayB3aXRoIGEgc3BlYy4gSWYgeW91IHVzZSB0aGUgYGF1dG9zcGVjPVRydWVgIGFyZ3VtZW50IHRvIGBwYXRjaGAgdGhlbiB0aGUKK29iamVjdCB0aGF0IGlzIGJlaW5nIHJlcGxhY2VkIHdpbGwgYmUgdXNlZCBhcyB0aGUgc3BlYyBvYmplY3QuIEJlY2F1c2UgdGhlCitzcGVjY2luZyBpcyBkb25lICJsYXppbHkiICh0aGUgc3BlYyBpcyBjcmVhdGVkIGFzIGF0dHJpYnV0ZXMgb24gdGhlIG1vY2sgYXJlCithY2Nlc3NlZCkgeW91IGNhbiB1c2UgaXQgd2l0aCB2ZXJ5IGNvbXBsZXggb3IgZGVlcGx5IG5lc3RlZCBvYmplY3RzIChsaWtlCittb2R1bGVzIHRoYXQgaW1wb3J0IG1vZHVsZXMgdGhhdCBpbXBvcnQgbW9kdWxlcykgd2l0aG91dCBhIGJpZyBwZXJmb3JtYW5jZQoraGl0LgorCitIZXJlJ3MgYW4gZXhhbXBsZSBvZiBpdCBpbiB1c2U6CisKKyAgICA+Pj4gZnJvbSB1cmxsaWIgaW1wb3J0IHJlcXVlc3QKKyAgICA+Pj4gcGF0Y2hlciA9IHBhdGNoKCdfX21haW5fXy5yZXF1ZXN0JywgYXV0b3NwZWM9VHJ1ZSkKKyAgICA+Pj4gbW9ja19yZXF1ZXN0ID0gcGF0Y2hlci5zdGFydCgpCisgICAgPj4+IHJlcXVlc3QgaXMgbW9ja19yZXF1ZXN0CisgICAgVHJ1ZQorICAgID4+PiBtb2NrX3JlcXVlc3QuUmVxdWVzdAorICAgIDxNYWdpY01vY2sgbmFtZT0ncmVxdWVzdC5SZXF1ZXN0JyBzcGVjPSdSZXF1ZXN0JyBpZD0nLi4uJz4KKworWW91IGNhbiBzZWUgdGhhdCBgcmVxdWVzdC5SZXF1ZXN0YCBoYXMgYSBzcGVjLiBgcmVxdWVzdC5SZXF1ZXN0YCB0YWtlcyB0d28KK2FyZ3VtZW50cyBpbiB0aGUgY29uc3RydWN0b3IgKG9uZSBvZiB3aGljaCBpcyBgc2VsZmApLiBIZXJlJ3Mgd2hhdCBoYXBwZW5zIGlmCit3ZSB0cnkgdG8gY2FsbCBpdCBpbmNvcnJlY3RseToKKworICAgID4+PiByZXEgPSByZXF1ZXN0LlJlcXVlc3QoKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgLi4uCisgICAgVHlwZUVycm9yOiA8bGFtYmRhPigpIHRha2VzIGF0IGxlYXN0IDIgYXJndW1lbnRzICgxIGdpdmVuKQorCitUaGUgc3BlYyBhbHNvIGFwcGxpZXMgdG8gaW5zdGFudGlhdGVkIGNsYXNzZXMgKGkuZS4gdGhlIHJldHVybiB2YWx1ZSBvZgorc3BlY2NlZCBtb2Nrcyk6CisKKyAgICA+Pj4gcmVxID0gcmVxdWVzdC5SZXF1ZXN0KCdmb28nKQorICAgID4+PiByZXEKKyAgICA8Tm9uQ2FsbGFibGVNYWdpY01vY2sgbmFtZT0ncmVxdWVzdC5SZXF1ZXN0KCknIHNwZWM9J1JlcXVlc3QnIGlkPScuLi4nPgorCitgUmVxdWVzdGAgb2JqZWN0cyBhcmUgbm90IGNhbGxhYmxlLCBzbyB0aGUgcmV0dXJuIHZhbHVlIG9mIGluc3RhbnRpYXRpbmcgb3VyCittb2NrZWQgb3V0IGByZXF1ZXN0LlJlcXVlc3RgIGlzIGEgbm9uLWNhbGxhYmxlIG1vY2suIFdpdGggdGhlIHNwZWMgaW4gcGxhY2UKK2FueSB0eXBvcyBpbiBvdXIgYXNzZXJ0cyB3aWxsIHJhaXNlIHRoZSBjb3JyZWN0IGVycm9yOgorCisgICAgPj4+IHJlcS5hZGRfaGVhZGVyKCdzcGFtJywgJ2VnZ3MnKQorICAgIDxNYWdpY01vY2sgbmFtZT0ncmVxdWVzdC5SZXF1ZXN0KCkuYWRkX2hlYWRlcigpJyBpZD0nLi4uJz4KKyAgICA+Pj4gcmVxLmFkZF9oZWFkZXIuYXNzcmV0X2NhbGxlZF93aXRoCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAuLi4KKyAgICBBdHRyaWJ1dGVFcnJvcjogTW9jayBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnYXNzcmV0X2NhbGxlZF93aXRoJworICAgID4+PiByZXEuYWRkX2hlYWRlci5hc3NlcnRfY2FsbGVkX3dpdGgoJ3NwYW0nLCAnZWdncycpCisKK0luIG1hbnkgY2FzZXMgeW91IHdpbGwganVzdCBiZSBhYmxlIHRvIGFkZCBgYXV0b3NwZWM9VHJ1ZWAgdG8geW91ciBleGlzdGluZworYHBhdGNoYCBjYWxscyBhbmQgdGhlbiBiZSBwcm90ZWN0ZWQgYWdhaW5zdCBidWdzIGR1ZSB0byB0eXBvcyBhbmQgYXBpCitjaGFuZ2VzLgorCitBcyB3ZWxsIGFzIHVzaW5nIGBhdXRvc3BlY2AgdGhyb3VnaCBgcGF0Y2hgIHRoZXJlIGlzIGEKKzpmdW5jOmBjcmVhdGVfYXV0b3NwZWNgIGZvciBjcmVhdGluZyBhdXRvc3BlY2NlZCBtb2NrcyBkaXJlY3RseToKKworICAgID4+PiBmcm9tIHVybGxpYiBpbXBvcnQgcmVxdWVzdAorICAgID4+PiBtb2NrX3JlcXVlc3QgPSBjcmVhdGVfYXV0b3NwZWMocmVxdWVzdCkKKyAgICA+Pj4gbW9ja19yZXF1ZXN0LlJlcXVlc3QoJ2ZvbycsICdiYXInKQorICAgIDxOb25DYWxsYWJsZU1hZ2ljTW9jayBuYW1lPSdtb2NrLlJlcXVlc3QoKScgc3BlYz0nUmVxdWVzdCcgaWQ9Jy4uLic+CisKK1RoaXMgaXNuJ3Qgd2l0aG91dCBjYXZlYXRzIGFuZCBsaW1pdGF0aW9ucyBob3dldmVyLCB3aGljaCBpcyB3aHkgaXQgaXMgbm90Cit0aGUgZGVmYXVsdCBiZWhhdmlvdXIuIEluIG9yZGVyIHRvIGtub3cgd2hhdCBhdHRyaWJ1dGVzIGFyZSBhdmFpbGFibGUgb24gdGhlCitzcGVjIG9iamVjdCwgYXV0b3NwZWMgaGFzIHRvIGludHJvc3BlY3QgKGFjY2VzcyBhdHRyaWJ1dGVzKSB0aGUgc3BlYy4gQXMgeW91Cit0cmF2ZXJzZSBhdHRyaWJ1dGVzIG9uIHRoZSBtb2NrIGEgY29ycmVzcG9uZGluZyB0cmF2ZXJzYWwgb2YgdGhlIG9yaWdpbmFsCitvYmplY3QgaXMgaGFwcGVuaW5nIHVuZGVyIHRoZSBob29kLiBJZiBhbnkgb2YgeW91ciBzcGVjY2VkIG9iamVjdHMgaGF2ZQorcHJvcGVydGllcyBvciBkZXNjcmlwdG9ycyB0aGF0IGNhbiB0cmlnZ2VyIGNvZGUgZXhlY3V0aW9uIHRoZW4geW91IG1heSBub3QgYmUKK2FibGUgdG8gdXNlIGF1dG9zcGVjLiBPbiB0aGUgb3RoZXIgaGFuZCBpdCBpcyBtdWNoIGJldHRlciB0byBkZXNpZ24geW91cgorb2JqZWN0cyBzbyB0aGF0IGludHJvc3BlY3Rpb24gaXMgc2FmZSBbI11fLgorCitBIG1vcmUgc2VyaW91cyBwcm9ibGVtIGlzIHRoYXQgaXQgaXMgY29tbW9uIGZvciBpbnN0YW5jZSBhdHRyaWJ1dGVzIHRvIGJlCitjcmVhdGVkIGluIHRoZSBgX19pbml0X19gIG1ldGhvZCBhbmQgbm90IHRvIGV4aXN0IG9uIHRoZSBjbGFzcyBhdCBhbGwuCitgYXV0b3NwZWNgIGNhbid0IGtub3cgYWJvdXQgYW55IGR5bmFtaWNhbGx5IGNyZWF0ZWQgYXR0cmlidXRlcyBhbmQgcmVzdHJpY3RzCit0aGUgYXBpIHRvIHZpc2libGUgYXR0cmlidXRlcy4KKworICAgID4+PiBjbGFzcyBTb21ldGhpbmcob2JqZWN0KToKKyAgICAuLi4gICBkZWYgX19pbml0X18oc2VsZik6CisgICAgLi4uICAgICBzZWxmLmEgPSAzMworICAgIC4uLgorICAgID4+PiB3aXRoIHBhdGNoKCdfX21haW5fXy5Tb21ldGhpbmcnLCBhdXRvc3BlYz1UcnVlKToKKyAgICAuLi4gICB0aGluZyA9IFNvbWV0aGluZygpCisgICAgLi4uICAgdGhpbmcuYQorICAgIC4uLgorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAgIEF0dHJpYnV0ZUVycm9yOiBNb2NrIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdhJworCitUaGVyZSBhcmUgYSBmZXcgZGlmZmVyZW50IHdheXMgb2YgcmVzb2x2aW5nIHRoaXMgcHJvYmxlbS4gVGhlIGVhc2llc3QsIGJ1dAorbm90IG5lY2Vzc2FyaWx5IHRoZSBsZWFzdCBhbm5veWluZywgd2F5IGlzIHRvIHNpbXBseSBzZXQgdGhlIHJlcXVpcmVkCithdHRyaWJ1dGVzIG9uIHRoZSBtb2NrIGFmdGVyIGNyZWF0aW9uLiBKdXN0IGJlY2F1c2UgYGF1dG9zcGVjYCBkb2Vzbid0IGFsbG93Cit5b3UgdG8gZmV0Y2ggYXR0cmlidXRlcyB0aGF0IGRvbid0IGV4aXN0IG9uIHRoZSBzcGVjIGl0IGRvZXNuJ3QgcHJldmVudCB5b3UKK3NldHRpbmcgdGhlbToKKworICAgID4+PiB3aXRoIHBhdGNoKCdfX21haW5fXy5Tb21ldGhpbmcnLCBhdXRvc3BlYz1UcnVlKToKKyAgICAuLi4gICB0aGluZyA9IFNvbWV0aGluZygpCisgICAgLi4uICAgdGhpbmcuYSA9IDMzCisgICAgLi4uCisKK1RoZXJlIGlzIGEgbW9yZSBhZ2dyZXNzaXZlIHZlcnNpb24gb2YgYm90aCBgc3BlY2AgYW5kIGBhdXRvc3BlY2AgdGhhdCAqZG9lcyoKK3ByZXZlbnQgeW91IHNldHRpbmcgbm9uLWV4aXN0ZW50IGF0dHJpYnV0ZXMuIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3YW50IHRvCitlbnN1cmUgeW91ciBjb2RlIG9ubHkgKnNldHMqIHZhbGlkIGF0dHJpYnV0ZXMgdG9vLCBidXQgb2J2aW91c2x5IGl0IHByZXZlbnRzCit0aGlzIHBhcnRpY3VsYXIgc2NlbmFyaW86CisKKyAgICA+Pj4gd2l0aCBwYXRjaCgnX19tYWluX18uU29tZXRoaW5nJywgYXV0b3NwZWM9VHJ1ZSwgc3BlY19zZXQ9VHJ1ZSk6CisgICAgLi4uICAgdGhpbmcgPSBTb21ldGhpbmcoKQorICAgIC4uLiAgIHRoaW5nLmEgPSAzMworICAgIC4uLgorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgLi4uCisgICAgQXR0cmlidXRlRXJyb3I6IE1vY2sgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ2EnCisKK1Byb2JhYmx5IHRoZSBiZXN0IHdheSBvZiBzb2x2aW5nIHRoZSBwcm9ibGVtIGlzIHRvIGFkZCBjbGFzcyBhdHRyaWJ1dGVzIGFzCitkZWZhdWx0IHZhbHVlcyBmb3IgaW5zdGFuY2UgbWVtYmVycyBpbml0aWFsaXNlZCBpbiBgX19pbml0X19gLiBOb3RlIHRoYXQgaWYKK3lvdSBhcmUgb25seSBzZXR0aW5nIGRlZmF1bHQgYXR0cmlidXRlcyBpbiBgX19pbml0X19gIHRoZW4gcHJvdmlkaW5nIHRoZW0gdmlhCitjbGFzcyBhdHRyaWJ1dGVzIChzaGFyZWQgYmV0d2VlbiBpbnN0YW5jZXMgb2YgY291cnNlKSBpcyBmYXN0ZXIgdG9vLiBlLmcuCisKKy4uIGNvZGUtYmxvY2s6OiBweXRob24KKworICAgIGNsYXNzIFNvbWV0aGluZyhvYmplY3QpOgorICAgICAgICBhID0gMzMKKworVGhpcyBicmluZ3MgdXAgYW5vdGhlciBpc3N1ZS4gSXQgaXMgcmVsYXRpdmVseSBjb21tb24gdG8gcHJvdmlkZSBhIGRlZmF1bHQKK3ZhbHVlIG9mIGBOb25lYCBmb3IgbWVtYmVycyB0aGF0IHdpbGwgbGF0ZXIgYmUgYW4gb2JqZWN0IG9mIGEgZGlmZmVyZW50IHR5cGUuCitgTm9uZWAgd291bGQgYmUgdXNlbGVzcyBhcyBhIHNwZWMgYmVjYXVzZSBpdCB3b3VsZG4ndCBsZXQgeW91IGFjY2VzcyAqYW55KgorYXR0cmlidXRlcyBvciBtZXRob2RzIG9uIGl0LiBBcyBgTm9uZWAgaXMgKm5ldmVyKiBnb2luZyB0byBiZSB1c2VmdWwgYXMgYQorc3BlYywgYW5kIHByb2JhYmx5IGluZGljYXRlcyBhIG1lbWJlciB0aGF0IHdpbGwgbm9ybWFsbHkgb2Ygc29tZSBvdGhlciB0eXBlLAorYGF1dG9zcGVjYCBkb2Vzbid0IHVzZSBhIHNwZWMgZm9yIG1lbWJlcnMgdGhhdCBhcmUgc2V0IHRvIGBOb25lYC4gVGhlc2Ugd2lsbAoranVzdCBiZSBvcmRpbmFyeSBtb2NrcyAod2VsbCAtIGBNYWdpY01vY2tzYCk6CisKKyAgICA+Pj4gY2xhc3MgU29tZXRoaW5nKG9iamVjdCk6CisgICAgLi4uICAgICBtZW1iZXIgPSBOb25lCisgICAgLi4uCisgICAgPj4+IG1vY2sgPSBjcmVhdGVfYXV0b3NwZWMoU29tZXRoaW5nKQorICAgID4+PiBtb2NrLm1lbWJlci5mb28uYmFyLmJheigpCisgICAgPE1hZ2ljTW9jayBuYW1lPSdtb2NrLm1lbWJlci5mb28uYmFyLmJheigpJyBpZD0nLi4uJz4KKworSWYgbW9kaWZ5aW5nIHlvdXIgcHJvZHVjdGlvbiBjbGFzc2VzIHRvIGFkZCBkZWZhdWx0cyBpc24ndCB0byB5b3VyIGxpa2luZwordGhlbiB0aGVyZSBhcmUgbW9yZSBvcHRpb25zLiBPbmUgb2YgdGhlc2UgaXMgc2ltcGx5IHRvIHVzZSBhbiBpbnN0YW5jZSBhcyB0aGUKK3NwZWMgcmF0aGVyIHRoYW4gdGhlIGNsYXNzLiBUaGUgb3RoZXIgaXMgdG8gY3JlYXRlIGEgc3ViY2xhc3Mgb2YgdGhlCitwcm9kdWN0aW9uIGNsYXNzIGFuZCBhZGQgdGhlIGRlZmF1bHRzIHRvIHRoZSBzdWJjbGFzcyB3aXRob3V0IGFmZmVjdGluZyB0aGUKK3Byb2R1Y3Rpb24gY2xhc3MuIEJvdGggb2YgdGhlc2UgcmVxdWlyZSB5b3UgdG8gdXNlIGFuIGFsdGVybmF0aXZlIG9iamVjdCBhcwordGhlIHNwZWMuIFRoYW5rZnVsbHkgYHBhdGNoYCBzdXBwb3J0cyB0aGlzIC0geW91IGNhbiBzaW1wbHkgcGFzcyB0aGUKK2FsdGVybmF0aXZlIG9iamVjdCBhcyB0aGUgYGF1dG9zcGVjYCBhcmd1bWVudDoKKworICAgID4+PiBjbGFzcyBTb21ldGhpbmcob2JqZWN0KToKKyAgICAuLi4gICBkZWYgX19pbml0X18oc2VsZik6CisgICAgLi4uICAgICBzZWxmLmEgPSAzMworICAgIC4uLgorICAgID4+PiBjbGFzcyBTb21ldGhpbmdGb3JUZXN0KFNvbWV0aGluZyk6CisgICAgLi4uICAgYSA9IDMzCisgICAgLi4uCisgICAgPj4+IHAgPSBwYXRjaCgnX19tYWluX18uU29tZXRoaW5nJywgYXV0b3NwZWM9U29tZXRoaW5nRm9yVGVzdCkKKyAgICA+Pj4gbW9jayA9IHAuc3RhcnQoKQorICAgID4+PiBtb2NrLmEKKyAgICA8Tm9uQ2FsbGFibGVNYWdpY01vY2sgbmFtZT0nU29tZXRoaW5nLmEnIHNwZWM9J2ludCcgaWQ9Jy4uLic+CisKKworLi4gWyNdIFRoaXMgb25seSBhcHBsaWVzIHRvIGNsYXNzZXMgb3IgYWxyZWFkeSBpbnN0YW50aWF0ZWQgb2JqZWN0cy4gQ2FsbGluZworICAgYSBtb2NrZWQgY2xhc3MgdG8gY3JlYXRlIGEgbW9jayBpbnN0YW5jZSAqZG9lcyBub3QqIGNyZWF0ZSBhIHJlYWwgaW5zdGFuY2UuCisgICBJdCBpcyBvbmx5IGF0dHJpYnV0ZSBsb29rdXBzIC0gYWxvbmcgd2l0aCBjYWxscyB0byBgZGlyYCAtIHRoYXQgYXJlIGRvbmUuCisKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3VuaXR0ZXN0LnJzdCBiL0RvYy9saWJyYXJ5L3VuaXR0ZXN0LnJzdAppbmRleCA0ZDMyMTZiLi4wYWY5MDM4IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS91bml0dGVzdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdW5pdHRlc3QucnN0CkBAIC03OTIsMTEgKzc5MiwxNCBAQAogICAgICAgUnVuIHRoZSB0ZXN0LCBjb2xsZWN0aW5nIHRoZSByZXN1bHQgaW50byB0aGUgdGVzdCByZXN1bHQgb2JqZWN0IHBhc3NlZCBhcwogICAgICAgKnJlc3VsdCouICBJZiAqcmVzdWx0KiBpcyBvbWl0dGVkIG9yIGBgTm9uZWBgLCBhIHRlbXBvcmFyeSByZXN1bHQKICAgICAgIG9iamVjdCBpcyBjcmVhdGVkIChieSBjYWxsaW5nIHRoZSA6bWV0aDpgZGVmYXVsdFRlc3RSZXN1bHRgIG1ldGhvZCkgYW5kCi0gICAgICB1c2VkLiBUaGUgcmVzdWx0IG9iamVjdCBpcyBub3QgcmV0dXJuZWQgdG8gOm1ldGg6YHJ1bmAncyBjYWxsZXIuCisgICAgICB1c2VkLiBUaGUgcmVzdWx0IG9iamVjdCBpcyByZXR1cm5lZCB0byA6bWV0aDpgcnVuYCdzIGNhbGxlci4KIAogICAgICAgVGhlIHNhbWUgZWZmZWN0IG1heSBiZSBoYWQgYnkgc2ltcGx5IGNhbGxpbmcgdGhlIDpjbGFzczpgVGVzdENhc2VgCiAgICAgICBpbnN0YW5jZS4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICAgIFByZXZpb3VzIHZlcnNpb25zIG9mIGBgcnVuYGAgZGlkIG5vdCByZXR1cm4gdGhlIHJlc3VsdC4gTmVpdGhlciBkaWQKKyAgICAgICAgIGNhbGxpbmcgYW4gaW5zdGFuY2UuCiAKICAgIC4uIG1ldGhvZDo6IHNraXBUZXN0KHJlYXNvbikKIApAQCAtODU3LDEwICs4NjAsMTEgQEAKICAgIHwgPFRlc3RDYXNlLmFzc2VydE5vdElzSW5zdGFuY2U+YCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8CiAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKwogCi0gICBBbGwgdGhlIGFzc2VydCBtZXRob2RzIChleGNlcHQgOm1ldGg6YGFzc2VydFJhaXNlc2AsCi0gICA6bWV0aDpgYXNzZXJ0UmFpc2VzUmVnZXhgLCA6bWV0aDpgYXNzZXJ0V2FybnNgLCA6bWV0aDpgYXNzZXJ0V2FybnNSZWdleGApCi0gICBhY2NlcHQgYSAqbXNnKiBhcmd1bWVudCB0aGF0LCBpZiBzcGVjaWZpZWQsIGlzIHVzZWQgYXMgdGhlIGVycm9yIG1lc3NhZ2Ugb24KLSAgIGZhaWx1cmUgKHNlZSBhbHNvIDpkYXRhOmBsb25nTWVzc2FnZWApLgorICAgQWxsIHRoZSBhc3NlcnQgbWV0aG9kcyBhY2NlcHQgYSAqbXNnKiBhcmd1bWVudCB0aGF0LCBpZiBzcGVjaWZpZWQsIGlzIHVzZWQKKyAgIGFzIHRoZSBlcnJvciBtZXNzYWdlIG9uIGZhaWx1cmUgKHNlZSBhbHNvIDpkYXRhOmBsb25nTWVzc2FnZWApLgorICAgTm90ZSB0aGF0IHRoZSAqbXNnKiBrZXl3b3JkIGFyZ3VtZW50IGNhbiBiZSBwYXNzZWQgdG8gOm1ldGg6YGFzc2VydFJhaXNlc2AsCisgICA6bWV0aDpgYXNzZXJ0UmFpc2VzUmVnZXhgLCA6bWV0aDpgYXNzZXJ0V2FybnNgLCA6bWV0aDpgYXNzZXJ0V2FybnNSZWdleGAKKyAgIG9ubHkgd2hlbiB0aGV5IGFyZSB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyLgogCiAgICAuLiBtZXRob2Q6OiBhc3NlcnRFcXVhbChmaXJzdCwgc2Vjb25kLCBtc2c9Tm9uZSkKIApAQCAtOTU1LDcgKzk1OSw3IEBACiAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSsKIAogICAgLi4gbWV0aG9kOjogYXNzZXJ0UmFpc2VzKGV4Y2VwdGlvbiwgY2FsbGFibGUsICphcmdzLCAqKmt3ZHMpCi0gICAgICAgICAgICAgICBhc3NlcnRSYWlzZXMoZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgYXNzZXJ0UmFpc2VzKGV4Y2VwdGlvbiwgbXNnPU5vbmUpCiAKICAgICAgIFRlc3QgdGhhdCBhbiBleGNlcHRpb24gaXMgcmFpc2VkIHdoZW4gKmNhbGxhYmxlKiBpcyBjYWxsZWQgd2l0aCBhbnkKICAgICAgIHBvc2l0aW9uYWwgb3Iga2V5d29yZCBhcmd1bWVudHMgdGhhdCBhcmUgYWxzbyBwYXNzZWQgdG8KQEAgLTk2NCwxMiArOTY4LDE2IEBACiAgICAgICBUbyBjYXRjaCBhbnkgb2YgYSBncm91cCBvZiBleGNlcHRpb25zLCBhIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGV4Y2VwdGlvbgogICAgICAgY2xhc3NlcyBtYXkgYmUgcGFzc2VkIGFzICpleGNlcHRpb24qLgogCi0gICAgICBJZiBvbmx5IHRoZSAqZXhjZXB0aW9uKiBhcmd1bWVudCBpcyBnaXZlbiwgcmV0dXJucyBhIGNvbnRleHQgbWFuYWdlciBzbwotICAgICAgdGhhdCB0aGUgY29kZSB1bmRlciB0ZXN0IGNhbiBiZSB3cml0dGVuIGlubGluZSByYXRoZXIgdGhhbiBhcyBhIGZ1bmN0aW9uOjoKKyAgICAgIElmIG9ubHkgdGhlICpleGNlcHRpb24qIGFuZCBwb3NzaWJseSB0aGUgKm1zZyogYXJndW1lbnRzIGFyZSBnaXZlbiwKKyAgICAgIHJldHVybiBhIGNvbnRleHQgbWFuYWdlciBzbyB0aGF0IHRoZSBjb2RlIHVuZGVyIHRlc3QgY2FuIGJlIHdyaXR0ZW4KKyAgICAgIGlubGluZSByYXRoZXIgdGhhbiBhcyBhIGZ1bmN0aW9uOjoKIAogICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTb21lRXhjZXB0aW9uKToKICAgICAgICAgICAgICBkb19zb21ldGhpbmcoKQogCisgICAgICBXaGVuIHVzZWQgYXMgYSBjb250ZXh0IG1hbmFnZXIsIDptZXRoOmBhc3NlcnRSYWlzZXNgIGFjY2VwdHMgdGhlCisgICAgICBhZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnQgKm1zZyouCisKICAgICAgIFRoZSBjb250ZXh0IG1hbmFnZXIgd2lsbCBzdG9yZSB0aGUgY2F1Z2h0IGV4Y2VwdGlvbiBvYmplY3QgaW4gaXRzCiAgICAgICA6YXR0cjpgZXhjZXB0aW9uYCBhdHRyaWJ1dGUuICBUaGlzIGNhbiBiZSB1c2VmdWwgaWYgdGhlIGludGVudGlvbgogICAgICAgaXMgdG8gcGVyZm9ybSBhZGRpdGlvbmFsIGNoZWNrcyBvbiB0aGUgZXhjZXB0aW9uIHJhaXNlZDo6CkBAIC05ODYsOSArOTk0LDEyIEBACiAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgogICAgICAgICAgQWRkZWQgdGhlIDphdHRyOmBleGNlcHRpb25gIGF0dHJpYnV0ZS4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICAgIEFkZGVkIHRoZSAqbXNnKiBrZXl3b3JkIGFyZ3VtZW50IHdoZW4gdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlci4KKwogCiAgICAuLiBtZXRob2Q6OiBhc3NlcnRSYWlzZXNSZWdleChleGNlcHRpb24sIHJlZ2V4LCBjYWxsYWJsZSwgKmFyZ3MsICoqa3dkcykKLSAgICAgICAgICAgICAgIGFzc2VydFJhaXNlc1JlZ2V4KGV4Y2VwdGlvbiwgcmVnZXgpCisgICAgICAgICAgICAgICBhc3NlcnRSYWlzZXNSZWdleChleGNlcHRpb24sIHJlZ2V4LCBtc2c9Tm9uZSkKIAogICAgICAgTGlrZSA6bWV0aDpgYXNzZXJ0UmFpc2VzYCBidXQgYWxzbyB0ZXN0cyB0aGF0ICpyZWdleCogbWF0Y2hlcwogICAgICAgb24gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmFpc2VkIGV4Y2VwdGlvbi4gICpyZWdleCogbWF5IGJlCkBAIC0xMDA1LDEyICsxMDE2LDE2IEBACiAKICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMQogICAgICAgICAgdW5kZXIgdGhlIG5hbWUgYGBhc3NlcnRSYWlzZXNSZWdleHBgYC4KKwogICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIKICAgICAgICAgIFJlbmFtZWQgdG8gOm1ldGg6YGFzc2VydFJhaXNlc1JlZ2V4YC4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICAgIEFkZGVkIHRoZSAqbXNnKiBrZXl3b3JkIGFyZ3VtZW50IHdoZW4gdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlci4KKwogCiAgICAuLiBtZXRob2Q6OiBhc3NlcnRXYXJucyh3YXJuaW5nLCBjYWxsYWJsZSwgKmFyZ3MsICoqa3dkcykKLSAgICAgICAgICAgICAgIGFzc2VydFdhcm5zKHdhcm5pbmcpCisgICAgICAgICAgICAgICBhc3NlcnRXYXJucyh3YXJuaW5nLCBtc2c9Tm9uZSkKIAogICAgICAgVGVzdCB0aGF0IGEgd2FybmluZyBpcyB0cmlnZ2VyZWQgd2hlbiAqY2FsbGFibGUqIGlzIGNhbGxlZCB3aXRoIGFueQogICAgICAgcG9zaXRpb25hbCBvciBrZXl3b3JkIGFyZ3VtZW50cyB0aGF0IGFyZSBhbHNvIHBhc3NlZCB0bwpAQCAtMTAxOSwxMiArMTAzNCwxNiBAQAogICAgICAgVG8gY2F0Y2ggYW55IG9mIGEgZ3JvdXAgb2Ygd2FybmluZ3MsIGEgdHVwbGUgY29udGFpbmluZyB0aGUgd2FybmluZwogICAgICAgY2xhc3NlcyBtYXkgYmUgcGFzc2VkIGFzICp3YXJuaW5ncyouCiAKLSAgICAgIElmIG9ubHkgdGhlICp3YXJuaW5nKiBhcmd1bWVudCBpcyBnaXZlbiwgcmV0dXJucyBhIGNvbnRleHQgbWFuYWdlciBzbwotICAgICAgdGhhdCB0aGUgY29kZSB1bmRlciB0ZXN0IGNhbiBiZSB3cml0dGVuIGlubGluZSByYXRoZXIgdGhhbiBhcyBhIGZ1bmN0aW9uOjoKKyAgICAgIElmIG9ubHkgdGhlICp3YXJuaW5nKiBhbmQgcG9zc2libHkgdGhlICptc2cqIGFyZ3VtZW50cyBhcmUgZ2l2ZW4sCisgICAgICByZXR1cm5zIGEgY29udGV4dCBtYW5hZ2VyIHNvIHRoYXQgdGhlIGNvZGUgdW5kZXIgdGVzdCBjYW4gYmUgd3JpdHRlbgorICAgICAgaW5saW5lIHJhdGhlciB0aGFuIGFzIGEgZnVuY3Rpb246OgogCiAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0V2FybnMoU29tZVdhcm5pbmcpOgogICAgICAgICAgICAgIGRvX3NvbWV0aGluZygpCiAKKyAgICAgIFdoZW4gdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlciwgOm1ldGg6YGFzc2VydFJhaXNlc2AgYWNjZXB0cyB0aGUKKyAgICAgIGFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudCAqbXNnKi4KKwogICAgICAgVGhlIGNvbnRleHQgbWFuYWdlciB3aWxsIHN0b3JlIHRoZSBjYXVnaHQgd2FybmluZyBvYmplY3QgaW4gaXRzCiAgICAgICA6YXR0cjpgd2FybmluZ2AgYXR0cmlidXRlLCBhbmQgdGhlIHNvdXJjZSBsaW5lIHdoaWNoIHRyaWdnZXJlZCB0aGUKICAgICAgIHdhcm5pbmdzIGluIHRoZSA6YXR0cjpgZmlsZW5hbWVgIGFuZCA6YXR0cjpgbGluZW5vYCBhdHRyaWJ1dGVzLgpAQCAtMTA0Miw5ICsxMDYxLDEyIEBACiAKICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCisgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgICAgQWRkZWQgdGhlICptc2cqIGtleXdvcmQgYXJndW1lbnQgd2hlbiB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyLgorCiAKICAgIC4uIG1ldGhvZDo6IGFzc2VydFdhcm5zUmVnZXgod2FybmluZywgcmVnZXgsIGNhbGxhYmxlLCAqYXJncywgKiprd2RzKQotICAgICAgICAgICAgICAgYXNzZXJ0V2FybnNSZWdleCh3YXJuaW5nLCByZWdleCkKKyAgICAgICAgICAgICAgIGFzc2VydFdhcm5zUmVnZXgod2FybmluZywgcmVnZXgsIG1zZz1Ob25lKQogCiAgICAgICBMaWtlIDptZXRoOmBhc3NlcnRXYXJuc2AgYnV0IGFsc28gdGVzdHMgdGhhdCAqcmVnZXgqIG1hdGNoZXMgb24gdGhlCiAgICAgICBtZXNzYWdlIG9mIHRoZSB0cmlnZ2VyZWQgd2FybmluZy4gICpyZWdleCogbWF5IGJlIGEgcmVndWxhciBleHByZXNzaW9uCkBAIC0xMDYyLDYgKzEwODQsOCBAQAogCiAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICAgIEFkZGVkIHRoZSAqbXNnKiBrZXl3b3JkIGFyZ3VtZW50IHdoZW4gdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlci4KIAogCiAgICBUaGVyZSBhcmUgYWxzbyBvdGhlciBtZXRob2RzIHVzZWQgdG8gcGVyZm9ybSBtb3JlIHNwZWNpZmljIGNoZWNrcywgc3VjaCBhczoKQEAgLTExNTEsMjEgKzExNzUsNiBAQAogICAgICAgICAgOm1ldGg6YC5hc3NlcnROb3RSZWdleGAuCiAKIAotICAgLi4gbWV0aG9kOjogYXNzZXJ0RGljdENvbnRhaW5zU3Vic2V0KHN1YnNldCwgZGljdGlvbmFyeSwgbXNnPU5vbmUpCi0KLSAgICAgIFRlc3RzIHdoZXRoZXIgdGhlIGtleS92YWx1ZSBwYWlycyBpbiAqZGljdGlvbmFyeSogYXJlIGEgc3VwZXJzZXQgb2YKLSAgICAgIHRob3NlIGluICpzdWJzZXQqLiAgSWYgbm90LCBhbiBlcnJvciBtZXNzYWdlIGxpc3RpbmcgdGhlIG1pc3Npbmcga2V5cwotICAgICAgYW5kIG1pc21hdGNoZWQgdmFsdWVzIGlzIGdlbmVyYXRlZC4KLQotICAgICAgTm90ZSwgdGhlIGFyZ3VtZW50cyBhcmUgaW4gdGhlIG9wcG9zaXRlIG9yZGVyIG9mIHdoYXQgdGhlIG1ldGhvZCBuYW1lCi0gICAgICBkaWN0YXRlcy4gIEluc3RlYWQsIGNvbnNpZGVyIHVzaW5nIHRoZSBzZXQtbWV0aG9kcyBvbiA6cmVmOmBkaWN0aW9uYXJ5Ci0gICAgICB2aWV3cyA8ZGljdC12aWV3cz5gLCBmb3IgZXhhbXBsZTogYGBkLmtleXMoKSA8PSBlLmtleXMoKWBgIG9yCi0gICAgICBgYGQuaXRlbXMoKSA8PSBkLml0ZW1zKClgYC4KLQotICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4xCi0gICAgICAuLiBkZXByZWNhdGVkOjogMy4yCi0KLQogICAgLi4gbWV0aG9kOjogYXNzZXJ0Q291bnRFcXVhbChmaXJzdCwgc2Vjb25kLCBtc2c9Tm9uZSkKIAogICAgICAgVGVzdCB0aGF0IHNlcXVlbmNlICpmaXJzdCogY29udGFpbnMgdGhlIHNhbWUgZWxlbWVudHMgYXMgKnNlY29uZCosCkBAIC0xMTgwLDIxICsxMTg5LDYgQEAKIAogICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKLSAgIC4uIG1ldGhvZDo6IGFzc2VydFNhbWVFbGVtZW50cyhmaXJzdCwgc2Vjb25kLCBtc2c9Tm9uZSkKLQotICAgICAgVGVzdCB0aGF0IHNlcXVlbmNlICpmaXJzdCogY29udGFpbnMgdGhlIHNhbWUgZWxlbWVudHMgYXMgKnNlY29uZCosCi0gICAgICByZWdhcmRsZXNzIG9mIHRoZWlyIG9yZGVyLiBXaGVuIHRoZXkgZG9uJ3QsIGFuIGVycm9yIG1lc3NhZ2UgbGlzdGluZwotICAgICAgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHNlcXVlbmNlcyB3aWxsIGJlIGdlbmVyYXRlZC4KLQotICAgICAgRHVwbGljYXRlIGVsZW1lbnRzIGFyZSBpZ25vcmVkIHdoZW4gY29tcGFyaW5nICpmaXJzdCogYW5kICpzZWNvbmQqLgotICAgICAgSXQgaXMgdGhlIGVxdWl2YWxlbnQgb2YgYGBhc3NlcnRFcXVhbChzZXQoZmlyc3QpLCBzZXQoc2Vjb25kKSlgYAotICAgICAgYnV0IGl0IHdvcmtzIHdpdGggc2VxdWVuY2VzIG9mIHVuaGFzaGFibGUgb2JqZWN0cyBhcyB3ZWxsLiBCZWNhdXNlCi0gICAgICBkdXBsaWNhdGVzIGFyZSBpZ25vcmVkLCB0aGlzIG1ldGhvZCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIGZhdm91ciBvZgotICAgICAgOm1ldGg6YGFzc2VydENvdW50RXF1YWxgLgotCi0gICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjEKLSAgICAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjIKLQogCiAgICAuLiBfdHlwZS1zcGVjaWZpYy1tZXRob2RzOgogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS91cmxsaWIuZXJyb3IucnN0IGIvRG9jL2xpYnJhcnkvdXJsbGliLmVycm9yLnJzdAppbmRleCAyODIzMjlmLi5lMjBkYjI3IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS91cmxsaWIuZXJyb3IucnN0CisrKyBiL0RvYy9saWJyYXJ5L3VybGxpYi5lcnJvci5yc3QKQEAgLTgsMjEgKzgsMjMgQEAKIAogCiBUaGUgOm1vZDpgdXJsbGliLmVycm9yYCBtb2R1bGUgZGVmaW5lcyB0aGUgZXhjZXB0aW9uIGNsYXNzZXMgZm9yIGV4Y2VwdGlvbnMKLXJhaXNlZCBieSA6bW9kOmB1cmxsaWIucmVxdWVzdGAuICBUaGUgYmFzZSBleGNlcHRpb24gY2xhc3MgaXMgOmV4YzpgVVJMRXJyb3JgLAotd2hpY2ggaW5oZXJpdHMgZnJvbSA6ZXhjOmBJT0Vycm9yYC4KK3JhaXNlZCBieSA6bW9kOmB1cmxsaWIucmVxdWVzdGAuICBUaGUgYmFzZSBleGNlcHRpb24gY2xhc3MgaXMgOmV4YzpgVVJMRXJyb3JgLgogCiBUaGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMgYXJlIHJhaXNlZCBieSA6bW9kOmB1cmxsaWIuZXJyb3JgIGFzIGFwcHJvcHJpYXRlOgogCiAuLiBleGNlcHRpb246OiBVUkxFcnJvcgogCiAgICBUaGUgaGFuZGxlcnMgcmFpc2UgdGhpcyBleGNlcHRpb24gKG9yIGRlcml2ZWQgZXhjZXB0aW9ucykgd2hlbiB0aGV5IHJ1biBpbnRvCi0gICBhIHByb2JsZW0uICBJdCBpcyBhIHN1YmNsYXNzIG9mIDpleGM6YElPRXJyb3JgLgorICAgYSBwcm9ibGVtLiAgSXQgaXMgYSBzdWJjbGFzcyBvZiA6ZXhjOmBPU0Vycm9yYC4KIAogICAgLi4gYXR0cmlidXRlOjogcmVhc29uCiAKICAgICAgIFRoZSByZWFzb24gZm9yIHRoaXMgZXJyb3IuICBJdCBjYW4gYmUgYSBtZXNzYWdlIHN0cmluZyBvciBhbm90aGVyCi0gICAgICBleGNlcHRpb24gaW5zdGFuY2UgKDpleGM6YHNvY2tldC5lcnJvcmAgZm9yIHJlbW90ZSBVUkxzLCA6ZXhjOmBPU0Vycm9yYAotICAgICAgZm9yIGxvY2FsIFVSTHMpLgorICAgICAgZXhjZXB0aW9uIGluc3RhbmNlLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgOmV4YzpgVVJMRXJyb3JgIGhhcyBiZWVuIG1hZGUgYSBzdWJjbGFzcyBvZiA6ZXhjOmBPU0Vycm9yYCBpbnN0ZWFkCisgICAgICBvZiA6ZXhjOmBJT0Vycm9yYC4KIAogCiAuLiBleGNlcHRpb246OiBIVFRQRXJyb3IKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3VybGxpYi5yZXF1ZXN0LnJzdCBiL0RvYy9saWJyYXJ5L3VybGxpYi5yZXF1ZXN0LnJzdAppbmRleCBiNDc2NGNjLi44ODdlNzM3IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS91cmxsaWIucmVxdWVzdC5yc3QKKysrIGIvRG9jL2xpYnJhcnkvdXJsbGliLnJlcXVlc3QucnN0CkBAIC0xNiw3ICsxNiw3IEBACiBUaGUgOm1vZDpgdXJsbGliLnJlcXVlc3RgIG1vZHVsZSBkZWZpbmVzIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgogCiAKLS4uIGZ1bmN0aW9uOjogdXJsb3Blbih1cmwsIGRhdGE9Tm9uZVssIHRpbWVvdXRdLCAqLCBjYWZpbGU9Tm9uZSwgY2FwYXRoPU5vbmUpCisuLiBmdW5jdGlvbjo6IHVybG9wZW4odXJsLCBkYXRhPU5vbmVbLCB0aW1lb3V0XSwgKiwgY2FmaWxlPU5vbmUsIGNhcGF0aD1Ob25lLCBjYWRlZmF1bHQ9VHJ1ZSkKIAogICAgT3BlbiB0aGUgVVJMICp1cmwqLCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGEKICAgIDpjbGFzczpgUmVxdWVzdGAgb2JqZWN0LgpAQCAtNTMsOSArNTMsMTUgQEAKICAgIHBvaW50IHRvIGEgZGlyZWN0b3J5IG9mIGhhc2hlZCBjZXJ0aWZpY2F0ZSBmaWxlcy4gIE1vcmUgaW5mb3JtYXRpb24gY2FuCiAgICBiZSBmb3VuZCBpbiA6bWV0aDpgc3NsLlNTTENvbnRleHQubG9hZF92ZXJpZnlfbG9jYXRpb25zYC4KIAorICAgVGhlICpjYWRlZmF1bHQqIHBhcmFtZXRlciBzcGVjaWZpZXMgd2hldGhlciB0byBmYWxsIGJhY2sgdG8gbG9hZGluZyBhCisgICBkZWZhdWx0IGNlcnRpZmljYXRlIHN0b3JlIGRlZmluZWQgYnkgdGhlIHVuZGVybHlpbmcgT3BlblNTTCBsaWJyYXJ5IGlmIHRoZQorICAgKmNhZmlsZSogYW5kICpjYXBhdGgqIHBhcmFtZXRlcnMgYXJlIG9taXR0ZWQuICBUaGlzIHdpbGwgb25seSB3b3JrIG9uCisgICBzb21lIG5vbi1XaW5kb3dzIHBsYXRmb3Jtcy4KKwogICAgLi4gd2FybmluZzo6Ci0gICAgICBJZiBuZWl0aGVyICpjYWZpbGUqIG5vciAqY2FwYXRoKiBpcyBzcGVjaWZpZWQsIGFuIEhUVFBTIHJlcXVlc3QKLSAgICAgIHdpbGwgbm90IGRvIGFueSB2ZXJpZmljYXRpb24gb2YgdGhlIHNlcnZlcidzIGNlcnRpZmljYXRlLgorICAgICAgSWYgbmVpdGhlciAqY2FmaWxlKiBub3IgKmNhcGF0aCogaXMgc3BlY2lmaWVkLCBhbmQgKmNhZGVmYXVsdCogaXMgRmFsc2UsCisgICAgICBhbiBIVFRQUyByZXF1ZXN0IHdpbGwgbm90IGRvIGFueSB2ZXJpZmljYXRpb24gb2YgdGhlIHNlcnZlcidzCisgICAgICBjZXJ0aWZpY2F0ZS4KIAogICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGEgZmlsZS1saWtlIG9iamVjdCB0aGF0IHdvcmtzIGFzIGEgOnRlcm06YGNvbnRleHQgbWFuYWdlcmAsCiAgICB3aXRoIHR3byBhZGRpdGlvbmFsIG1ldGhvZHMgZnJvbSB0aGUgOm1vZDpgdXJsbGliLnJlc3BvbnNlYCBtb2R1bGUKQEAgLTkyLDYgKzk4LDkgQEAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogICAgICAgKmRhdGEqIGNhbiBiZSBhbiBpdGVyYWJsZSBvYmplY3QuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICAqY2FkZWZhdWx0KiB3YXMgYWRkZWQuCisKIC4uIGZ1bmN0aW9uOjogaW5zdGFsbF9vcGVuZXIob3BlbmVyKQogCiAgICBJbnN0YWxsIGFuIDpjbGFzczpgT3BlbmVyRGlyZWN0b3JgIGluc3RhbmNlIGFzIHRoZSBkZWZhdWx0IGdsb2JhbCBvcGVuZXIuCkBAIC0xNDUsNyArMTU0LDcgQEAKIAogVGhlIGZvbGxvd2luZyBjbGFzc2VzIGFyZSBwcm92aWRlZDoKIAotLi4gY2xhc3M6OiBSZXF1ZXN0KHVybCwgZGF0YT1Ob25lLCBoZWFkZXJzPXt9LCBvcmlnaW5fcmVxX2hvc3Q9Tm9uZSwgdW52ZXJpZmlhYmxlPUZhbHNlKQorLi4gY2xhc3M6OiBSZXF1ZXN0KHVybCwgZGF0YT1Ob25lLCBoZWFkZXJzPXt9LCBvcmlnaW5fcmVxX2hvc3Q9Tm9uZSwgdW52ZXJpZmlhYmxlPUZhbHNlLCBtZXRob2Q9Tm9uZSkKIAogICAgVGhpcyBjbGFzcyBpcyBhbiBhYnN0cmFjdGlvbiBvZiBhIFVSTCByZXF1ZXN0LgogCkBAIC0xOTgsNiArMjA3LDEzIEBACiAgICBkb2N1bWVudCwgYW5kIHRoZSB1c2VyIGhhZCBubyBvcHRpb24gdG8gYXBwcm92ZSB0aGUgYXV0b21hdGljCiAgICBmZXRjaGluZyBvZiB0aGUgaW1hZ2UsIHRoaXMgc2hvdWxkIGJlIHRydWUuCiAKKyAgICptZXRob2QqIHNob3VsZCBiZSBhIHN0cmluZyB0aGF0IGluZGljYXRlcyB0aGUgSFRUUCByZXF1ZXN0IG1ldGhvZCB0aGF0CisgICB3aWxsIGJlIHVzZWQgKGUuZy4gYGAnSEVBRCdgYCkuICBJdHMgdmFsdWUgaXMgc3RvcmVkIGluIHRoZQorICAgOmF0dHI6YH5SZXF1ZXN0Lm1ldGhvZGAgYXR0cmlidXRlIGFuZCBpcyB1c2VkIGJ5IDptZXRoOmBnZXRfbWV0aG9kKClgLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgOmF0dHI6YFJlcXVlc3QubWV0aG9kYCBhcmd1bWVudCBpcyBhZGRlZCB0byB0aGUgUmVxdWVzdCBjbGFzcy4KKwogCiAuLiBjbGFzczo6IE9wZW5lckRpcmVjdG9yKCkKIApAQCAtMjYzLDEwICsyNzksMTEgQEAKIAogLi4gY2xhc3M6OiBIVFRQQmFzaWNBdXRoSGFuZGxlcihwYXNzd29yZF9tZ3I9Tm9uZSkKIAotICAgSGFuZGxlIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhlIHJlbW90ZSBob3N0LiAqcGFzc3dvcmRfbWdyKiwgaWYgZ2l2ZW4sIHNob3VsZCBiZQotICAgc29tZXRoaW5nIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIDpjbGFzczpgSFRUUFBhc3N3b3JkTWdyYDsgcmVmZXIgdG8gc2VjdGlvbgotICAgOnJlZjpgaHR0cC1wYXNzd29yZC1tZ3JgIGZvciBpbmZvcm1hdGlvbiBvbiB0aGUgaW50ZXJmYWNlIHRoYXQgbXVzdCBiZQotICAgc3VwcG9ydGVkLgorICAgSGFuZGxlIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhlIHJlbW90ZSBob3N0LiAqcGFzc3dvcmRfbWdyKiwgaWYgZ2l2ZW4sIHNob3VsZAorICAgYmUgc29tZXRoaW5nIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIDpjbGFzczpgSFRUUFBhc3N3b3JkTWdyYDsgcmVmZXIgdG8KKyAgIHNlY3Rpb24gOnJlZjpgaHR0cC1wYXNzd29yZC1tZ3JgIGZvciBpbmZvcm1hdGlvbiBvbiB0aGUgaW50ZXJmYWNlIHRoYXQgbXVzdAorICAgYmUgc3VwcG9ydGVkLiBIVFRQQmFzaWNBdXRoSGFuZGxlciB3aWxsIHJhaXNlIGEgOmV4YzpgVmFsdWVFcnJvcmAgd2hlbgorICAgcHJlc2VudGVkIHdpdGggYSB3cm9uZyBBdXRoZW50aWNhdGlvbiBzY2hlbWUuCiAKIAogLi4gY2xhc3M6OiBQcm94eUJhc2ljQXV0aEhhbmRsZXIocGFzc3dvcmRfbWdyPU5vbmUpCkBAIC0yODgsMTAgKzMwNSwxOSBAQAogCiAuLiBjbGFzczo6IEhUVFBEaWdlc3RBdXRoSGFuZGxlcihwYXNzd29yZF9tZ3I9Tm9uZSkKIAotICAgSGFuZGxlIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhlIHJlbW90ZSBob3N0LiAqcGFzc3dvcmRfbWdyKiwgaWYgZ2l2ZW4sIHNob3VsZCBiZQotICAgc29tZXRoaW5nIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIDpjbGFzczpgSFRUUFBhc3N3b3JkTWdyYDsgcmVmZXIgdG8gc2VjdGlvbgotICAgOnJlZjpgaHR0cC1wYXNzd29yZC1tZ3JgIGZvciBpbmZvcm1hdGlvbiBvbiB0aGUgaW50ZXJmYWNlIHRoYXQgbXVzdCBiZQotICAgc3VwcG9ydGVkLgorICAgSGFuZGxlIGF1dGhlbnRpY2F0aW9uIHdpdGggdGhlIHJlbW90ZSBob3N0LiAqcGFzc3dvcmRfbWdyKiwgaWYgZ2l2ZW4sIHNob3VsZAorICAgYmUgc29tZXRoaW5nIHRoYXQgaXMgY29tcGF0aWJsZSB3aXRoIDpjbGFzczpgSFRUUFBhc3N3b3JkTWdyYDsgcmVmZXIgdG8KKyAgIHNlY3Rpb24gOnJlZjpgaHR0cC1wYXNzd29yZC1tZ3JgIGZvciBpbmZvcm1hdGlvbiBvbiB0aGUgaW50ZXJmYWNlIHRoYXQgbXVzdAorICAgYmUgc3VwcG9ydGVkLiBXaGVuIGJvdGggRGlnZXN0IEF1dGhlbnRpY2F0aW9uIEhhbmRsZXIgYW5kIEJhc2ljCisgICBBdXRoZW50aWNhdGlvbiBIYW5kbGVyIGFyZSBib3RoIGFkZGVkLCBEaWdlc3QgQXV0aGVudGljYXRpb24gaXMgYWx3YXlzIHRyaWVkCisgICBmaXJzdC4gSWYgdGhlIERpZ2VzdCBBdXRoZW50aWNhdGlvbiByZXR1cm5zIGEgNDB4IHJlc3BvbnNlIGFnYWluLCBpdCBpcyBzZW50CisgICB0byBCYXNpYyBBdXRoZW50aWNhdGlvbiBoYW5kbGVyIHRvIEhhbmRsZS4gIFRoaXMgSGFuZGxlciBtZXRob2Qgd2lsbCByYWlzZSBhCisgICA6ZXhjOmBWYWx1ZUVycm9yYCB3aGVuIHByZXNlbnRlZCB3aXRoIGFuIGF1dGhlbnRpY2F0aW9uIHNjaGVtZSBvdGhlciB0aGFuCisgICBEaWdlc3Qgb3IgQmFzaWMuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBSYWlzZSA6ZXhjOmBWYWx1ZUVycm9yYCBvbiB1bnN1cHBvcnRlZCBBdXRoZW50aWNhdGlvbiBTY2hlbWUuCisKIAogCiAuLiBjbGFzczo6IFByb3h5RGlnZXN0QXV0aEhhbmRsZXIocGFzc3dvcmRfbWdyPU5vbmUpCkBAIC0zODIsMjcgKzQwOCwyNSBAQAogICAgYm9vbGVhbiwgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIHJlcXVlc3QgaXMgdW52ZXJpZmlhYmxlIGFzIGRlZmluZWQKICAgIGJ5IFJGQyAyOTY1LgogCi0uLiBtZXRob2Q6OiBSZXF1ZXN0LmFkZF9kYXRhKGRhdGEpCisuLiBhdHRyaWJ1dGU6OiBSZXF1ZXN0Lm1ldGhvZAogCi0gICBTZXQgdGhlIDpjbGFzczpgUmVxdWVzdGAgZGF0YSB0byAqZGF0YSouICBUaGlzIGlzIGlnbm9yZWQgYnkgYWxsIGhhbmRsZXJzIGV4Y2VwdAotICAgSFRUUCBoYW5kbGVycyAtLS0gYW5kIHRoZXJlIGl0IHNob3VsZCBiZSBhIGJ5dGUgc3RyaW5nLCBhbmQgd2lsbCBjaGFuZ2UgdGhlCi0gICByZXF1ZXN0IHRvIGJlIGBgUE9TVGBgIHJhdGhlciB0aGFuIGBgR0VUYGAuCisgICBUaGUgSFRUUCByZXF1ZXN0IG1ldGhvZCB0byB1c2UuICBUaGlzIHZhbHVlIGlzIHVzZWQgYnkKKyAgIDptZXRoOmB+UmVxdWVzdC5nZXRfbWV0aG9kYCB0byBvdmVycmlkZSB0aGUgY29tcHV0ZWQgSFRUUCByZXF1ZXN0CisgICBtZXRob2QgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmUgcmV0dXJuZWQuICBUaGlzIGF0dHJpYnV0ZSBpcyBpbml0aWFsaXplZCB3aXRoCisgICB0aGUgdmFsdWUgb2YgdGhlICptZXRob2QqIGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMwogCiAKIC4uIG1ldGhvZDo6IFJlcXVlc3QuZ2V0X21ldGhvZCgpCiAKLSAgIFJldHVybiBhIHN0cmluZyBpbmRpY2F0aW5nIHRoZSBIVFRQIHJlcXVlc3QgbWV0aG9kLiAgVGhpcyBpcyBvbmx5IG1lYW5pbmdmdWwgZm9yCi0gICBIVFRQIHJlcXVlc3RzLCBhbmQgY3VycmVudGx5IGFsd2F5cyByZXR1cm5zIGBgJ0dFVCdgYCBvciBgYCdQT1NUJ2BgLgorICAgUmV0dXJuIGEgc3RyaW5nIGluZGljYXRpbmcgdGhlIEhUVFAgcmVxdWVzdCBtZXRob2QuICBJZgorICAgOmF0dHI6YFJlcXVlc3QubWV0aG9kYCBpcyBub3QgYGBOb25lYGAsIHJldHVybiBpdHMgdmFsdWUsIG90aGVyd2lzZSByZXR1cm4KKyAgIGBgJ0dFVCdgYCBpZiA6YXR0cjpgUmVxdWVzdC5kYXRhYCBpcyBgYE5vbmVgYCwgb3IgYGAnUE9TVCdgYCBpZiBpdCdzIG5vdC4KKyAgIFRoaXMgaXMgb25seSBtZWFuaW5nZnVsIGZvciBIVFRQIHJlcXVlc3RzLgogCi0KLS4uIG1ldGhvZDo6IFJlcXVlc3QuaGFzX2RhdGEoKQotCi0gICBSZXR1cm4gd2hldGhlciB0aGUgaW5zdGFuY2UgaGFzIGEgbm9uLVwgYGBOb25lYGAgZGF0YS4KLQotCi0uLiBtZXRob2Q6OiBSZXF1ZXN0LmdldF9kYXRhKCkKLQotICAgUmV0dXJuIHRoZSBpbnN0YW5jZSdzIGRhdGEuCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgZ2V0X21ldGhvZCBub3cgbG9va3MgYXQgdGhlIHZhbHVlIG9mIDphdHRyOmBSZXF1ZXN0Lm1ldGhvZGAuCiAKIAogLi4gbWV0aG9kOjogUmVxdWVzdC5hZGRfaGVhZGVyKGtleSwgdmFsKQpAQCAtNDMyLDIwICs0NTYsNjAgQEAKICAgIFJldHVybiB0aGUgVVJMIGdpdmVuIGluIHRoZSBjb25zdHJ1Y3Rvci4KIAogCisuLiBtZXRob2Q6OiBSZXF1ZXN0LnNldF9wcm94eShob3N0LCB0eXBlKQorCisgICBQcmVwYXJlIHRoZSByZXF1ZXN0IGJ5IGNvbm5lY3RpbmcgdG8gYSBwcm94eSBzZXJ2ZXIuIFRoZSAqaG9zdCogYW5kICp0eXBlKiB3aWxsCisgICByZXBsYWNlIHRob3NlIG9mIHRoZSBpbnN0YW5jZSwgYW5kIHRoZSBpbnN0YW5jZSdzIHNlbGVjdG9yIHdpbGwgYmUgdGhlIG9yaWdpbmFsCisgICBVUkwgZ2l2ZW4gaW4gdGhlIGNvbnN0cnVjdG9yLgorCisKKy4uIG1ldGhvZDo6IFJlcXVlc3QuYWRkX2RhdGEoZGF0YSkKKworICAgU2V0IHRoZSA6Y2xhc3M6YFJlcXVlc3RgIGRhdGEgdG8gKmRhdGEqLiAgVGhpcyBpcyBpZ25vcmVkIGJ5IGFsbCBoYW5kbGVycyBleGNlcHQKKyAgIEhUVFAgaGFuZGxlcnMgLS0tIGFuZCB0aGVyZSBpdCBzaG91bGQgYmUgYSBieXRlIHN0cmluZywgYW5kIHdpbGwgY2hhbmdlIHRoZQorICAgcmVxdWVzdCB0byBiZSBgYFBPU1RgYCByYXRoZXIgdGhhbiBgYEdFVGBgLiAgRGVwcmVjYXRlZCBpbiAzLjMsIHVzZQorICAgOmF0dHI6YFJlcXVlc3QuZGF0YWAuCisKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKKworCisuLiBtZXRob2Q6OiBSZXF1ZXN0Lmhhc19kYXRhKCkKKworICAgUmV0dXJuIHdoZXRoZXIgdGhlIGluc3RhbmNlIGhhcyBhIG5vbi1cIGBgTm9uZWBgIGRhdGEuIERlcHJlY2F0ZWQgaW4gMy4zLAorICAgdXNlIDphdHRyOmBSZXF1ZXN0LmRhdGFgLgorCisgICAuLiBkZXByZWNhdGVkOjogMy4zCisKKworLi4gbWV0aG9kOjogUmVxdWVzdC5nZXRfZGF0YSgpCisKKyAgIFJldHVybiB0aGUgaW5zdGFuY2UncyBkYXRhLiAgRGVwcmVjYXRlZCBpbiAzLjMsIHVzZSA6YXR0cjpgUmVxdWVzdC5kYXRhYC4KKworICAgLi4gZGVwcmVjYXRlZDo6IDMuMworCisKIC4uIG1ldGhvZDo6IFJlcXVlc3QuZ2V0X3R5cGUoKQogCi0gICBSZXR1cm4gdGhlIHR5cGUgb2YgdGhlIFVSTCAtLS0gYWxzbyBrbm93biBhcyB0aGUgc2NoZW1lLgorICAgUmV0dXJuIHRoZSB0eXBlIG9mIHRoZSBVUkwgLS0tIGFsc28ga25vd24gYXMgdGhlIHNjaGVtZS4gIERlcHJlY2F0ZWQgaW4gMy4zLAorICAgdXNlIDphdHRyOmBSZXF1ZXN0LnR5cGVgLgorCisgICAuLiBkZXByZWNhdGVkOjogMy4zCiAKIAogLi4gbWV0aG9kOjogUmVxdWVzdC5nZXRfaG9zdCgpCiAKLSAgIFJldHVybiB0aGUgaG9zdCB0byB3aGljaCBhIGNvbm5lY3Rpb24gd2lsbCBiZSBtYWRlLgorICAgUmV0dXJuIHRoZSBob3N0IHRvIHdoaWNoIGEgY29ubmVjdGlvbiB3aWxsIGJlIG1hZGUuIERlcHJlY2F0ZWQgaW4gMy4zLCB1c2UKKyAgIDphdHRyOmBSZXF1ZXN0Lmhvc3RgLgorCisgICAuLiBkZXByZWNhdGVkOjogMy4zCiAKIAogLi4gbWV0aG9kOjogUmVxdWVzdC5nZXRfc2VsZWN0b3IoKQogCiAgICBSZXR1cm4gdGhlIHNlbGVjdG9yIC0tLSB0aGUgcGFydCBvZiB0aGUgVVJMIHRoYXQgaXMgc2VudCB0byB0aGUgc2VydmVyLgorICAgRGVwcmVjYXRlZCBpbiAzLjMsIHVzZSA6YXR0cjpgUmVxdWVzdC5zZWxlY3RvcmAuCiAKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKIAogLi4gbWV0aG9kOjogUmVxdWVzdC5nZXRfaGVhZGVyKGhlYWRlcl9uYW1lLCBkZWZhdWx0PU5vbmUpCiAKQEAgLTQ2MCwyMSArNTI0LDIyIEBACiAKIC4uIG1ldGhvZDo6IFJlcXVlc3Quc2V0X3Byb3h5KGhvc3QsIHR5cGUpCiAKLSAgIFByZXBhcmUgdGhlIHJlcXVlc3QgYnkgY29ubmVjdGluZyB0byBhIHByb3h5IHNlcnZlci4gVGhlICpob3N0KiBhbmQgKnR5cGUqIHdpbGwKLSAgIHJlcGxhY2UgdGhvc2Ugb2YgdGhlIGluc3RhbmNlLCBhbmQgdGhlIGluc3RhbmNlJ3Mgc2VsZWN0b3Igd2lsbCBiZSB0aGUgb3JpZ2luYWwKLSAgIFVSTCBnaXZlbiBpbiB0aGUgY29uc3RydWN0b3IuCi0KLQogLi4gbWV0aG9kOjogUmVxdWVzdC5nZXRfb3JpZ2luX3JlcV9ob3N0KCkKIAotICAgUmV0dXJuIHRoZSByZXF1ZXN0LWhvc3Qgb2YgdGhlIG9yaWdpbiB0cmFuc2FjdGlvbiwgYXMgZGVmaW5lZCBieSA6cmZjOmAyOTY1YC4KLSAgIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIDpjbGFzczpgUmVxdWVzdGAgY29uc3RydWN0b3IuCisgICBSZXR1cm4gdGhlIHJlcXVlc3QtaG9zdCBvZiB0aGUgb3JpZ2luIHRyYW5zYWN0aW9uLCBhcyBkZWZpbmVkIGJ5CisgICA6cmZjOmAyOTY1YC4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIDpjbGFzczpgUmVxdWVzdGAgY29uc3RydWN0b3IuCisgICBEZXByZWNhdGVkIGluIDMuMywgdXNlIDphdHRyOmBSZXF1ZXN0Lm9yaWdpbl9yZXFfaG9zdGAuCisKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKIAogCiAuLiBtZXRob2Q6OiBSZXF1ZXN0LmlzX3VudmVyaWZpYWJsZSgpCiAKICAgIFJldHVybiB3aGV0aGVyIHRoZSByZXF1ZXN0IGlzIHVudmVyaWZpYWJsZSwgYXMgZGVmaW5lZCBieSBSRkMgMjk2NS4gU2VlIHRoZQotICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIDpjbGFzczpgUmVxdWVzdGAgY29uc3RydWN0b3IuCisgICBkb2N1bWVudGF0aW9uIGZvciB0aGUgOmNsYXNzOmBSZXF1ZXN0YCBjb25zdHJ1Y3Rvci4gIERlcHJlY2F0ZWQgaW4gMy4zLCB1c2UKKyAgIDphdHRyOmBSZXF1ZXN0LmlzX3VudmVyaWZpYWJsZWAuCisKKyAgIC4uIGRlcHJlY2F0ZWQ6OiAzLjMKIAogCiAuLiBfb3BlbmVyLWRpcmVjdG9yLW9iamVjdHM6CkBAIC0xMTM4LDE2ICsxMjAzLDE0IEBACiBgYHVybGxpYmBgIChhcyBvcHBvc2VkIHRvIGBgdXJsbGliMmBgKS4gIFRoZXkgbWlnaHQgYmVjb21lIGRlcHJlY2F0ZWQgYXQKIHNvbWUgcG9pbnQgaW4gdGhlIGZ1dHVyZS4KIAotCiAuLiBmdW5jdGlvbjo6IHVybHJldHJpZXZlKHVybCwgZmlsZW5hbWU9Tm9uZSwgcmVwb3J0aG9vaz1Ob25lLCBkYXRhPU5vbmUpCiAKLSAgIENvcHkgYSBuZXR3b3JrIG9iamVjdCBkZW5vdGVkIGJ5IGEgVVJMIHRvIGEgbG9jYWwgZmlsZSwgaWYgbmVjZXNzYXJ5LiBJZiB0aGUgVVJMCi0gICBwb2ludHMgdG8gYSBsb2NhbCBmaWxlLCBvciBhIHZhbGlkIGNhY2hlZCBjb3B5IG9mIHRoZSBvYmplY3QgZXhpc3RzLCB0aGUgb2JqZWN0Ci0gICBpcyBub3QgY29waWVkLiAgUmV0dXJuIGEgdHVwbGUgYGAoZmlsZW5hbWUsIGhlYWRlcnMpYGAgd2hlcmUgKmZpbGVuYW1lKiBpcyB0aGUKKyAgIENvcHkgYSBuZXR3b3JrIG9iamVjdCBkZW5vdGVkIGJ5IGEgVVJMIHRvIGEgbG9jYWwgZmlsZS4gSWYgdGhlIFVSTAorICAgcG9pbnRzIHRvIGEgbG9jYWwgZmlsZSwgdGhlIG9iamVjdCB3aWxsIG5vdCBiZSBjb3BpZWQgdW5sZXNzIGZpbGVuYW1lIGlzIHN1cHBsaWVkLgorICAgUmV0dXJuIGEgdHVwbGUgYGAoZmlsZW5hbWUsIGhlYWRlcnMpYGAgd2hlcmUgKmZpbGVuYW1lKiBpcyB0aGUKICAgIGxvY2FsIGZpbGUgbmFtZSB1bmRlciB3aGljaCB0aGUgb2JqZWN0IGNhbiBiZSBmb3VuZCwgYW5kICpoZWFkZXJzKiBpcyB3aGF0ZXZlcgogICAgdGhlIDptZXRoOmBpbmZvYCBtZXRob2Qgb2YgdGhlIG9iamVjdCByZXR1cm5lZCBieSA6ZnVuYzpgdXJsb3BlbmAgcmV0dXJuZWQgKGZvcgotICAgYSByZW1vdGUgb2JqZWN0LCBwb3NzaWJseSBjYWNoZWQpLiBFeGNlcHRpb25zIGFyZSB0aGUgc2FtZSBhcyBmb3IKLSAgIDpmdW5jOmB1cmxvcGVuYC4KKyAgIGEgcmVtb3RlIG9iamVjdCkuIEV4Y2VwdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGZvciA6ZnVuYzpgdXJsb3BlbmAuCiAKICAgIFRoZSBzZWNvbmQgYXJndW1lbnQsIGlmIHByZXNlbnQsIHNwZWNpZmllcyB0aGUgZmlsZSBsb2NhdGlvbiB0byBjb3B5IHRvIChpZgogICAgYWJzZW50LCB0aGUgbG9jYXRpb24gd2lsbCBiZSBhIHRlbXBmaWxlIHdpdGggYSBnZW5lcmF0ZWQgbmFtZSkuIFRoZSB0aGlyZApAQCAtMTE1OCw2ICsxMjIxLDEzIEBACiAgICB0aGlyZCBhcmd1bWVudCBtYXkgYmUgYGAtMWBgIG9uIG9sZGVyIEZUUCBzZXJ2ZXJzIHdoaWNoIGRvIG5vdCByZXR1cm4gYSBmaWxlCiAgICBzaXplIGluIHJlc3BvbnNlIHRvIGEgcmV0cmlldmFsIHJlcXVlc3QuCiAKKyAgIFRoZSBmb2xsb3dpbmcgZXhhbXBsZSBpbGx1c3RyYXRlcyB0aGUgbW9zdCBjb21tb24gdXNhZ2Ugc2NlbmFyaW86OgorCisgICAgICA+Pj4gaW1wb3J0IHVybGxpYi5yZXF1ZXN0CisgICAgICA+Pj4gbG9jYWxfZmlsZW5hbWUsIGhlYWRlcnMgPSB1cmxsaWIucmVxdWVzdC51cmxyZXRyaWV2ZSgnaHR0cDovL3B5dGhvbi5vcmcvJykKKyAgICAgID4+PiBodG1sID0gb3Blbihsb2NhbF9maWxlbmFtZSkKKyAgICAgID4+PiBodG1sLmNsb3NlKCkKKwogICAgSWYgdGhlICp1cmwqIHVzZXMgdGhlIDpmaWxlOmBodHRwOmAgc2NoZW1lIGlkZW50aWZpZXIsIHRoZSBvcHRpb25hbCAqZGF0YSoKICAgIGFyZ3VtZW50IG1heSBiZSBnaXZlbiB0byBzcGVjaWZ5IGEgYGBQT1NUYGAgcmVxdWVzdCAobm9ybWFsbHkgdGhlIHJlcXVlc3QKICAgIHR5cGUgaXMgYGBHRVRgYCkuICBUaGUgKmRhdGEqIGFyZ3VtZW50IG11c3QgYmUgYSBieXRlcyBvYmplY3QgaW4gc3RhbmRhcmQKQEAgLTExNzAsMjAgKzEyNDAsMjAgQEAKICAgIHRoZSAgZG93bmxvYWQgaXMgaW50ZXJydXB0ZWQuCiAKICAgIFRoZSAqQ29udGVudC1MZW5ndGgqIGlzIHRyZWF0ZWQgYXMgYSBsb3dlciBib3VuZDogaWYgdGhlcmUncyBtb3JlIGRhdGEgIHRvIHJlYWQsCi0gICA6ZnVuYzpgdXJscmV0cmlldmVgIHJlYWRzIG1vcmUgZGF0YSwgYnV0IGlmIGxlc3MgZGF0YSBpcyBhdmFpbGFibGUsICBpdCByYWlzZXMKLSAgIHRoZSBleGNlcHRpb24uCisgICB1cmxyZXRyaWV2ZSByZWFkcyBtb3JlIGRhdGEsIGJ1dCBpZiBsZXNzIGRhdGEgaXMgYXZhaWxhYmxlLCAgaXQgcmFpc2VzIHRoZQorICAgZXhjZXB0aW9uLgogCiAgICBZb3UgY2FuIHN0aWxsIHJldHJpZXZlIHRoZSBkb3dubG9hZGVkIGRhdGEgaW4gdGhpcyBjYXNlLCBpdCBpcyBzdG9yZWQgIGluIHRoZQogICAgOmF0dHI6YGNvbnRlbnRgIGF0dHJpYnV0ZSBvZiB0aGUgZXhjZXB0aW9uIGluc3RhbmNlLgogCi0gICBJZiBubyAqQ29udGVudC1MZW5ndGgqIGhlYWRlciB3YXMgc3VwcGxpZWQsIDpmdW5jOmB1cmxyZXRyaWV2ZWAgY2FuIG5vdCBjaGVjawotICAgdGhlIHNpemUgb2YgdGhlIGRhdGEgaXQgaGFzIGRvd25sb2FkZWQsIGFuZCBqdXN0IHJldHVybnMgaXQuICBJbiB0aGlzIGNhc2UKLSAgIHlvdSBqdXN0IGhhdmUgdG8gYXNzdW1lIHRoYXQgdGhlIGRvd25sb2FkIHdhcyBzdWNjZXNzZnVsLgorICAgSWYgbm8gKkNvbnRlbnQtTGVuZ3RoKiBoZWFkZXIgd2FzIHN1cHBsaWVkLCB1cmxyZXRyaWV2ZSBjYW4gbm90IGNoZWNrIHRoZSBzaXplCisgICBvZiB0aGUgZGF0YSBpdCBoYXMgZG93bmxvYWRlZCwgYW5kIGp1c3QgcmV0dXJucyBpdC4gIEluIHRoaXMgY2FzZSB5b3UganVzdCBoYXZlCisgICB0byBhc3N1bWUgdGhhdCB0aGUgZG93bmxvYWQgd2FzIHN1Y2Nlc3NmdWwuCiAKIC4uIGZ1bmN0aW9uOjogdXJsY2xlYW51cCgpCiAKLSAgIENsZWFyIHRoZSBjYWNoZSB0aGF0IG1heSBoYXZlIGJlZW4gYnVpbHQgdXAgYnkgcHJldmlvdXMgY2FsbHMgdG8KLSAgIDpmdW5jOmB1cmxyZXRyaWV2ZWAuCisgICBDbGVhbnMgdXAgdGVtcG9yYXJ5IGZpbGVzIHRoYXQgbWF5IGhhdmUgYmVlbiBsZWZ0IGJlaGluZCBieSBwcmV2aW91cworICAgY2FsbHMgdG8gOmZ1bmM6YHVybHJldHJpZXZlYC4KIAogLi4gY2xhc3M6OiBVUkxvcGVuZXIocHJveGllcz1Ob25lLCAqKng1MDkpCiAKQEAgLTEyMDcsNyArMTI3Nyw3IEBACiAgICAqa2V5X2ZpbGUqIGFuZCAqY2VydF9maWxlKiBhcmUgc3VwcG9ydGVkIHRvIHByb3ZpZGUgYW4gIFNTTCBrZXkgYW5kIGNlcnRpZmljYXRlOwogICAgYm90aCBhcmUgbmVlZGVkIHRvIHN1cHBvcnQgY2xpZW50IGF1dGhlbnRpY2F0aW9uLgogCi0gICA6Y2xhc3M6YFVSTG9wZW5lcmAgb2JqZWN0cyB3aWxsIHJhaXNlIGFuIDpleGM6YElPRXJyb3JgIGV4Y2VwdGlvbiBpZiB0aGUgc2VydmVyCisgICA6Y2xhc3M6YFVSTG9wZW5lcmAgb2JqZWN0cyB3aWxsIHJhaXNlIGFuIDpleGM6YE9TRXJyb3JgIGV4Y2VwdGlvbiBpZiB0aGUgc2VydmVyCiAgICByZXR1cm5zIGFuIGVycm9yIGNvZGUuCiAKICAgICAuLiBtZXRob2Q6OiBvcGVuKGZ1bGx1cmwsIGRhdGE9Tm9uZSkKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3ZlbnYucnN0IGIvRG9jL2xpYnJhcnkvdmVudi5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTVjOTFlNAotLS0gL2Rldi9udWxsCisrKyBiL0RvYy9saWJyYXJ5L3ZlbnYucnN0CkBAIC0wLDAgKzEsMTk5IEBACis6bW9kOmB2ZW52YCAtLS0gQ3JlYXRpb24gb2YgdmlydHVhbCBlbnZpcm9ubWVudHMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisuLiBtb2R1bGU6OiB2ZW52CisgICA6c3lub3BzaXM6IENyZWF0aW9uIG9mIHZpcnR1YWwgZW52aXJvbm1lbnRzLgorLi4gbW9kdWxlYXV0aG9yOjogVmluYXkgU2FqaXAgPHZpbmF5X3NhamlwQHlhaG9vLmNvLnVrPgorLi4gc2VjdGlvbmF1dGhvcjo6IFZpbmF5IFNhamlwIDx2aW5heV9zYWppcEB5YWhvby5jby51az4KKworCisuLiBpbmRleDo6IHBhaXI6IEVudmlyb25tZW50czsgdmlydHVhbAorCisuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworKipTb3VyY2UgY29kZToqKiA6c291cmNlOmBMaWIvdmVudi5weWAKKworLS0tLS0tLS0tLS0tLS0KKworVGhlIDptb2Q6YHZlbnZgIG1vZHVsZSBwcm92aWRlcyBzdXBwb3J0IGZvciBjcmVhdGluZyBsaWdodHdlaWdodCAidmlydHVhbAorZW52aXJvbm1lbnRzIiB3aXRoIHRoZWlyIG93biBzaXRlIGRpcmVjdG9yaWVzLCBvcHRpb25hbGx5IGlzb2xhdGVkIGZyb20gc3lzdGVtCitzaXRlIGRpcmVjdG9yaWVzLiAgRWFjaCB2aXJ0dWFsIGVudmlyb25tZW50IGhhcyBpdHMgb3duIFB5dGhvbiBiaW5hcnkgKGFsbG93aW5nCitjcmVhdGlvbiBvZiBlbnZpcm9ubWVudHMgd2l0aCB2YXJpb3VzIFB5dGhvbiB2ZXJzaW9ucykgYW5kIGNhbiBoYXZlIGl0cyBvd24KK2luZGVwZW5kZW50IHNldCBvZiBpbnN0YWxsZWQgUHl0aG9uIHBhY2thZ2VzIGluIGl0cyBzaXRlIGRpcmVjdG9yaWVzLgorCisKK0NyZWF0aW5nIHZpcnR1YWwgZW52aXJvbm1lbnRzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitDcmVhdGlvbiBvZiB2aXJ0dWFsIGVudmlyb25tZW50cyBpcyBzaW1wbGVzdCBleGVjdXRpbmcgdGhlIGBgcHl2ZW52YGAgc2NyaXB0OjoKKworICAgIHB5dmVudiAvcGF0aC90by9uZXcvdmlydHVhbC9lbnZpcm9ubWVudAorCitSdW5uaW5nIHRoaXMgY29tbWFuZCBjcmVhdGVzIHRoZSB0YXJnZXQgZGlyZWN0b3J5IChjcmVhdGluZyBhbnkgcGFyZW50CitkaXJlY3RvcmllcyB0aGF0IGRvbid0IGV4aXN0IGFscmVhZHkpIGFuZCBwbGFjZXMgYSBgYHB5dmVudi5jZmdgYCBmaWxlIGluIGl0Cit3aXRoIGEgYGBob21lYGAga2V5IHBvaW50aW5nIHRvIHRoZSBQeXRob24gaW5zdGFsbGF0aW9uIHRoZSBjb21tYW5kIHdhcyBydW4KK2Zyb20uICBJdCBhbHNvIGNyZWF0ZXMgYSBgYGJpbmBgIChvciBgYFNjcmlwdHNgYCBvbiBXaW5kb3dzKSBzdWJkaXJlY3RvcnkKK2NvbnRhaW5pbmcgYSBjb3B5IG9mIHRoZSBgYHB5dGhvbmBgIGJpbmFyeSAob3IgYmluYXJpZXMsIGluIHRoZSBjYXNlIG9mCitXaW5kb3dzKS4gIEl0IGFsc28gY3JlYXRlcyBhbiAoaW5pdGlhbGx5IGVtcHR5KSBgYGxpYi9weXRob25YLlkvc2l0ZS1wYWNrYWdlc2BgCitzdWJkaXJlY3RvcnkgKG9uIFdpbmRvd3MsIHRoaXMgaXMgYGBMaWJcc2l0ZS1wYWNrYWdlc2BgKS4KKworLi4gaGlnaGxpZ2h0Ojogbm9uZQorCitPbiBXaW5kb3dzLCB5b3UgbWF5IGhhdmUgdG8gaW52b2tlIHRoZSBgYHB5dmVudmBgIHNjcmlwdCBhcyBmb2xsb3dzLCBpZiB5b3UKK2Rvbid0IGhhdmUgdGhlIHJlbGV2YW50IFBBVEggYW5kIFBBVEhFWFQgc2V0dGluZ3M6OgorCisgICAgYzpcVGVtcD5jOlxQeXRob24zM1xweXRob24gYzpcUHl0aG9uMzNcVG9vbHNcU2NyaXB0c1xweXZlbnYucHkgbXllbnYKKworb3IgZXF1aXZhbGVudGx5OjoKKworICAgIGM6XFRlbXA+YzpcUHl0aG9uMzNccHl0aG9uIC1tIHZlbnYgbXllbnYKKworVGhlIGNvbW1hbmQsIGlmIHJ1biB3aXRoIGBgLWhgYCwgd2lsbCBzaG93IHRoZSBhdmFpbGFibGUgb3B0aW9uczo6CisKKyAgICB1c2FnZTogcHl2ZW52IFstaF0gWy0tc3lzdGVtLXNpdGUtcGFja2FnZXNdIFstLXN5bWxpbmtdIFstLWNsZWFyXQorICAgICAgICAgICAgICAgICAgWy0tdXBncmFkZV0gRU5WX0RJUiBbRU5WX0RJUiAuLi5dCisKKyAgICBDcmVhdGVzIHZpcnR1YWwgUHl0aG9uIGVudmlyb25tZW50cyBpbiBvbmUgb3IgbW9yZSB0YXJnZXQgZGlyZWN0b3JpZXMuCisKKyAgICBwb3NpdGlvbmFsIGFyZ3VtZW50czoKKyAgICAgIEVOVl9ESVIgICAgICAgICAgICAgQSBkaXJlY3RvcnkgdG8gY3JlYXRlIHRoZSBlbnZpcm9ubWVudCBpbi4KKworICAgIG9wdGlvbmFsIGFyZ3VtZW50czoKKyAgICAgIC1oLCAtLWhlbHAgICAgICAgICAgICAgc2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdAorICAgICAgLS1zeXN0ZW0tc2l0ZS1wYWNrYWdlcyBHaXZlIGFjY2VzcyB0byB0aGUgZ2xvYmFsIHNpdGUtcGFja2FnZXMgZGlyIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIGVudmlyb25tZW50LgorICAgICAgLS1zeW1saW5rICAgICAgICAgICAgICBBdHRlbXB0IHRvIHN5bWxpbmsgcmF0aGVyIHRoYW4gY29weS4KKyAgICAgIC0tY2xlYXIgICAgICAgICAgICAgICAgRGVsZXRlIHRoZSBlbnZpcm9ubWVudCBkaXJlY3RvcnkgaWYgaXQgYWxyZWFkeSBleGlzdHMuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIG5vdCBzcGVjaWZpZWQgYW5kIHRoZSBkaXJlY3RvcnkgZXhpc3RzLCBhbiBlcnJvciBpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZWQuCisgICAgICAtLXVwZ3JhZGUgICAgICAgICAgICAgIFVwZ3JhZGUgdGhlIGVudmlyb25tZW50IGRpcmVjdG9yeSB0byB1c2UgdGhpcyB2ZXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIFB5dGhvbiwgYXNzdW1pbmcgUHl0aG9uIGhhcyBiZWVuIHVwZ3JhZGVkIGluLXBsYWNlLgorCitJZiB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBhbHJlYWR5IGV4aXN0cyBhbiBlcnJvciB3aWxsIGJlIHJhaXNlZCwgdW5sZXNzIHRoZQorYGAtLWNsZWFyYGAgb3IgYGAtLXVwZ3JhZGVgYCBvcHRpb24gd2FzIHByb3ZpZGVkLgorCitUaGUgY3JlYXRlZCBgYHB5dmVudi5jZmdgYCBmaWxlIGFsc28gaW5jbHVkZXMgdGhlCitgYGluY2x1ZGUtc3lzdGVtLXNpdGUtcGFja2FnZXNgYCBrZXksIHNldCB0byBgYHRydWVgYCBpZiBgYHZlbnZgYCBpcyBydW4gd2l0aAordGhlIGBgLS1zeXN0ZW0tc2l0ZS1wYWNrYWdlc2BgIG9wdGlvbiwgYGBmYWxzZWBgIG90aGVyd2lzZS4KKworTXVsdGlwbGUgcGF0aHMgY2FuIGJlIGdpdmVuIHRvIGBgcHl2ZW52YGAsIGluIHdoaWNoIGNhc2UgYW4gaWRlbnRpY2FsIHZpcnR1YWxlbnYKK3dpbGwgYmUgY3JlYXRlZCwgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBvcHRpb25zLCBhdCBlYWNoIHByb3ZpZGVkIHBhdGguCisKKworQVBJCistLS0KKworLi4gaGlnaGxpZ2h0OjogcHl0aG9uCisKK1RoZSBoaWdoLWxldmVsIG1ldGhvZCBkZXNjcmliZWQgYWJvdmUgbWFrZXMgdXNlIG9mIGEgc2ltcGxlIEFQSSB3aGljaCBwcm92aWRlcworbWVjaGFuaXNtcyBmb3IgdGhpcmQtcGFydHkgdmlydHVhbCBlbnZpcm9ubWVudCBjcmVhdG9ycyB0byBjdXN0b21pemUgZW52aXJvbm1lbnQKK2NyZWF0aW9uIGFjY29yZGluZyB0byB0aGVpciBuZWVkcywgdGhlIDpjbGFzczpgRW52QnVpbGRlcmAgY2xhc3MuCisKKy4uIGNsYXNzOjogRW52QnVpbGRlcihzeXN0ZW1fc2l0ZV9wYWNrYWdlcz1GYWxzZSwgY2xlYXI9RmFsc2UsIHN5bWxpbmtzPUZhbHNlLCB1cGdyYWRlPUZhbHNlKQorCisgICAgVGhlIDpjbGFzczpgRW52QnVpbGRlcmAgY2xhc3MgYWNjZXB0cyB0aGUgZm9sbG93aW5nIGtleXdvcmQgYXJndW1lbnRzIG9uCisgICAgaW5zdGFudGlhdGlvbjoKKworICAgICogYGBzeXN0ZW1fc2l0ZV9wYWNrYWdlc2BgIC0tIGEgQm9vbGVhbiB2YWx1ZSBpbmRpY2F0aW5nIHRoYXQgdGhlIHN5c3RlbSBQeXRob24KKyAgICAgIHNpdGUtcGFja2FnZXMgc2hvdWxkIGJlIGF2YWlsYWJsZSB0byB0aGUgZW52aXJvbm1lbnQgKGRlZmF1bHRzIHRvIGBgRmFsc2VgYCkuCisKKyAgICAqIGBgY2xlYXJgYCAtLSBhIEJvb2xlYW4gdmFsdWUgd2hpY2gsIGlmIFRydWUsIHdpbGwgZGVsZXRlIGFueSBleGlzdGluZyB0YXJnZXQKKyAgICAgIGRpcmVjdG9yeSBpbnN0ZWFkIG9mIHJhaXNpbmcgYW4gZXhjZXB0aW9uIChkZWZhdWx0cyB0byBgYEZhbHNlYGApLgorCisgICAgKiBgYHN5bWxpbmtzYGAgLS0gYSBCb29sZWFuIHZhbHVlIGluZGljYXRpbmcgd2hldGhlciB0byBhdHRlbXB0IHRvIHN5bWxpbmsgdGhlCisgICAgICBQeXRob24gYmluYXJ5IChhbmQgYW55IG5lY2Vzc2FyeSBETExzIG9yIG90aGVyIGJpbmFyaWVzLAorICAgICAgZS5nLiBgYHB5dGhvbncuZXhlYGApLCByYXRoZXIgdGhhbiBjb3B5aW5nLiBEZWZhdWx0cyB0byBgYFRydWVgYCBvbiBMaW51eCBhbmQKKyAgICAgIFVuaXggc3lzdGVtcywgYnV0IGBgRmFsc2VgYCBvbiBXaW5kb3dzIGFuZCBNYWMgT1MgWC4KKworICAgIC4uIFhYWCBpdCBhbHNvIHRha2VzICJ1cGdyYWRlIiEKKworCisgICAgQ3JlYXRvcnMgb2YgdGhpcmQtcGFydHkgdmlydHVhbCBlbnZpcm9ubWVudCB0b29scyB3aWxsIGJlIGZyZWUgdG8gdXNlIHRoZQorICAgIHByb3ZpZGVkIGBgRW52QnVpbGRlcmBgIGNsYXNzIGFzIGEgYmFzZSBjbGFzcy4KKworICAgIFRoZSByZXR1cm5lZCBlbnYtYnVpbGRlciBpcyBhbiBvYmplY3Qgd2hpY2ggaGFzIGEgbWV0aG9kLCBgYGNyZWF0ZWBgOgorCisgICAgLi4gbWV0aG9kOjogY3JlYXRlKGVudl9kaXIpCisKKyAgICAgICAgVGhpcyBtZXRob2QgdGFrZXMgYXMgcmVxdWlyZWQgYXJndW1lbnQgdGhlIHBhdGggKGFic29sdXRlIG9yIHJlbGF0aXZlIHRvCisgICAgICAgIHRoZSBjdXJyZW50IGRpcmVjdG9yeSkgb2YgdGhlIHRhcmdldCBkaXJlY3Rvcnkgd2hpY2ggaXMgdG8gY29udGFpbiB0aGUKKyAgICAgICAgdmlydHVhbCBlbnZpcm9ubWVudC4gIFRoZSBgYGNyZWF0ZWBgIG1ldGhvZCB3aWxsIGVpdGhlciBjcmVhdGUgdGhlCisgICAgICAgIGVudmlyb25tZW50IGluIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5LCBvciByYWlzZSBhbiBhcHByb3ByaWF0ZQorICAgICAgICBleGNlcHRpb24uCisKKyAgICAgICAgVGhlIGBgY3JlYXRlYGAgbWV0aG9kIG9mIHRoZSBgYEVudkJ1aWxkZXJgYCBjbGFzcyBpbGx1c3RyYXRlcyB0aGUgaG9va3MKKyAgICAgICAgYXZhaWxhYmxlIGZvciBzdWJjbGFzcyBjdXN0b21pemF0aW9uOjoKKworICAgICAgICAgICAgZGVmIGNyZWF0ZShzZWxmLCBlbnZfZGlyKToKKyAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgICAgICBDcmVhdGUgYSB2aXJ0dWFsaXplZCBQeXRob24gZW52aXJvbm1lbnQgaW4gYSBkaXJlY3RvcnkuCisgICAgICAgICAgICAgICAgZW52X2RpciBpcyB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4uCisgICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICAgICAgZW52X2RpciA9IG9zLnBhdGguYWJzcGF0aChlbnZfZGlyKQorICAgICAgICAgICAgICAgIGNvbnRleHQgPSBzZWxmLmNyZWF0ZV9kaXJlY3RvcmllcyhlbnZfZGlyKQorICAgICAgICAgICAgICAgIHNlbGYuY3JlYXRlX2NvbmZpZ3VyYXRpb24oY29udGV4dCkKKyAgICAgICAgICAgICAgICBzZWxmLnNldHVwX3B5dGhvbihjb250ZXh0KQorICAgICAgICAgICAgICAgIHNlbGYuc2V0dXBfc2NyaXB0cyhjb250ZXh0KQorICAgICAgICAgICAgICAgIHNlbGYucG9zdF9zZXR1cChjb250ZXh0KQorCisgICAgICAgIEVhY2ggb2YgdGhlIG1ldGhvZHMgOm1ldGg6YGNyZWF0ZV9kaXJlY3Rvcmllc2AsCisgICAgICAgIDptZXRoOmBjcmVhdGVfY29uZmlndXJhdGlvbmAsIDptZXRoOmBzZXR1cF9weXRob25gLAorICAgICAgICA6bWV0aDpgc2V0dXBfc2NyaXB0c2AgYW5kIDptZXRoOmBwb3N0X3NldHVwYCBjYW4gYmUgb3ZlcnJpZGRlbi4KKworICAgIC4uIG1ldGhvZDo6IGNyZWF0ZV9kaXJlY3RvcmllcyhlbnZfZGlyKQorCisgICAgICAgIENyZWF0ZXMgdGhlIGVudmlyb25tZW50IGRpcmVjdG9yeSBhbmQgYWxsIG5lY2Vzc2FyeSBkaXJlY3RvcmllcywgYW5kCisgICAgICAgIHJldHVybnMgYSBjb250ZXh0IG9iamVjdC4gIFRoaXMgaXMganVzdCBhIGhvbGRlciBmb3IgYXR0cmlidXRlcyAoc3VjaCBhcworICAgICAgICBwYXRocyksIGZvciB1c2UgYnkgdGhlIG90aGVyIG1ldGhvZHMuCisKKyAgICAuLiBtZXRob2Q6OiBjcmVhdGVfY29uZmlndXJhdGlvbihjb250ZXh0KQorCisgICAgICAgIENyZWF0ZXMgdGhlIGBgcHl2ZW52LmNmZ2BgIGNvbmZpZ3VyYXRpb24gZmlsZSBpbiB0aGUgZW52aXJvbm1lbnQuCisKKyAgICAuLiBtZXRob2Q6OiBzZXR1cF9weXRob24oY29udGV4dCkKKworICAgICAgICBDcmVhdGVzIGEgY29weSBvZiB0aGUgUHl0aG9uIGV4ZWN1dGFibGUgKGFuZCwgdW5kZXIgV2luZG93cywgRExMcykgaW4KKyAgICAgICAgdGhlIGVudmlyb25tZW50LgorCisgICAgLi4gbWV0aG9kOjogc2V0dXBfc2NyaXB0cyhjb250ZXh0KQorCisgICAgICAgIEluc3RhbGxzIGFjdGl2YXRpb24gc2NyaXB0cyBhcHByb3ByaWF0ZSB0byB0aGUgcGxhdGZvcm0gaW50byB0aGUgdmlydHVhbAorICAgICAgICBlbnZpcm9ubWVudC4KKworICAgIC4uIG1ldGhvZDo6IHBvc3Rfc2V0dXAoY29udGV4dCkKKworICAgICAgICBBIHBsYWNlaG9sZGVyIG1ldGhvZCB3aGljaCBjYW4gYmUgb3ZlcnJpZGRlbiBpbiB0aGlyZCBwYXJ0eQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgdG8gcHJlLWluc3RhbGwgcGFja2FnZXMgaW4gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQgb3IKKyAgICAgICAgcGVyZm9ybSBvdGhlciBwb3N0LWNyZWF0aW9uIHN0ZXBzLgorCisgICAgSW4gYWRkaXRpb24sIDpjbGFzczpgRW52QnVpbGRlcmAgcHJvdmlkZXMgdGhpcyB1dGlsaXR5IG1ldGhvZCB0aGF0IGNhbiBiZQorICAgIGNhbGxlZCBmcm9tIDptZXRoOmBzZXR1cF9zY3JpcHRzYCBvciA6bWV0aDpgcG9zdF9zZXR1cGAgaW4gc3ViY2xhc3NlcyB0bworICAgIGFzc2lzdCBpbiBpbnN0YWxsaW5nIGN1c3RvbSBzY3JpcHRzIGludG8gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQuCisKKyAgICAuLiBtZXRob2Q6OiBpbnN0YWxsX3NjcmlwdHMoY29udGV4dCwgcGF0aCkKKworICAgICAgICAqcGF0aCogaXMgdGhlIHBhdGggdG8gYSBkaXJlY3RvcnkgdGhhdCBzaG91bGQgY29udGFpbiBzdWJkaXJlY3RvcmllcworICAgICAgICAiY29tbW9uIiwgInBvc2l4IiwgIm50IiwgZWFjaCBjb250YWluaW5nIHNjcmlwdHMgZGVzdGluZWQgZm9yIHRoZSBiaW4KKyAgICAgICAgZGlyZWN0b3J5IGluIHRoZSBlbnZpcm9ubWVudC4gIFRoZSBjb250ZW50cyBvZiAiY29tbW9uIiBhbmQgdGhlCisgICAgICAgIGRpcmVjdG9yeSBjb3JyZXNwb25kaW5nIHRvIDpkYXRhOmBvcy5uYW1lYCBhcmUgY29waWVkIGFmdGVyIHNvbWUgdGV4dAorICAgICAgICByZXBsYWNlbWVudCBvZiBwbGFjZWhvbGRlcnM6CisKKyAgICAgICAgKiBgYF9fVkVOVl9ESVJfX2BgIGlzIHJlcGxhY2VkIHdpdGggdGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGVudmlyb25tZW50CisgICAgICAgICAgZGlyZWN0b3J5LgorCisgICAgICAgICogYGBfX1ZFTlZfTkFNRV9fYGAgaXMgcmVwbGFjZWQgd2l0aCB0aGUgZW52aXJvbm1lbnQgbmFtZSAoZmluYWwgcGF0aAorICAgICAgICAgIHNlZ21lbnQgb2YgZW52aXJvbm1lbnQgZGlyZWN0b3J5KS4KKworICAgICAgICAqIGBgX19WRU5WX0JJTl9OQU1FX19gYCBpcyByZXBsYWNlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBiaW4gZGlyZWN0b3J5CisgICAgICAgICAgKGVpdGhlciBgYGJpbmBgIG9yIGBgU2NyaXB0c2BgKS4KKworICAgICAgICAqIGBgX19WRU5WX1BZVEhPTl9fYGAgaXMgcmVwbGFjZWQgd2l0aCB0aGUgYWJzb2x1dGUgcGF0aCBvZiB0aGUKKyAgICAgICAgICBlbnZpcm9ubWVudCdzIGV4ZWN1dGFibGUuCisKKworVGhlcmUgaXMgYWxzbyBhIG1vZHVsZS1sZXZlbCBjb252ZW5pZW5jZSBmdW5jdGlvbjoKKworLi4gZnVuY3Rpb246OiBjcmVhdGUoZW52X2Rpciwgc3lzdGVtX3NpdGVfcGFja2FnZXM9RmFsc2UsIGNsZWFyPUZhbHNlLCBzeW1saW5rcz1GYWxzZSkKKworICAgIENyZWF0ZSBhbiA6Y2xhc3M6YEVudkJ1aWxkZXJgIHdpdGggdGhlIGdpdmVuIGtleXdvcmQgYXJndW1lbnRzLCBhbmQgY2FsbCBpdHMKKyAgICA6bWV0aDpgfkVudkJ1aWxkZXIuY3JlYXRlYCBtZXRob2Qgd2l0aCB0aGUgKmVudl9kaXIqIGFyZ3VtZW50LgpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvd2FybmluZ3MucnN0IGIvRG9jL2xpYnJhcnkvd2FybmluZ3MucnN0CmluZGV4IDhhZjE5YTIuLjgzODdmNWEgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3dhcm5pbmdzLnJzdAorKysgYi9Eb2MvbGlicmFyeS93YXJuaW5ncy5yc3QKQEAgLTMzOSw4ICszMzksNyBAQAogICAgV3JpdGUgYSB3YXJuaW5nIHRvIGEgZmlsZS4gIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzCiAgICBgYGZvcm1hdHdhcm5pbmcobWVzc2FnZSwgY2F0ZWdvcnksIGZpbGVuYW1lLCBsaW5lbm8sIGxpbmUpYGAgYW5kIHdyaXRlcyB0aGUKICAgIHJlc3VsdGluZyBzdHJpbmcgdG8gKmZpbGUqLCB3aGljaCBkZWZhdWx0cyB0byBgYHN5cy5zdGRlcnJgYC4gIFlvdSBtYXkgcmVwbGFjZQotICAgdGhpcyBmdW5jdGlvbiB3aXRoIGFuIGFsdGVybmF0aXZlIGltcGxlbWVudGF0aW9uIGJ5IGFzc2lnbmluZyB0bwotICAgYGB3YXJuaW5ncy5zaG93d2FybmluZ2BgLgorICAgdGhpcyBmdW5jdGlvbiB3aXRoIGFueSBjYWxsYWJsZSBieSBhc3NpZ25pbmcgdG8gYGB3YXJuaW5ncy5zaG93d2FybmluZ2BgLgogICAgKmxpbmUqIGlzIGEgbGluZSBvZiBzb3VyY2UgY29kZSB0byBiZSBpbmNsdWRlZCBpbiB0aGUgd2FybmluZwogICAgbWVzc2FnZTsgaWYgKmxpbmUqIGlzIG5vdCBzdXBwbGllZCwgOmZ1bmM6YHNob3d3YXJuaW5nYCB3aWxsCiAgICB0cnkgdG8gcmVhZCB0aGUgbGluZSBzcGVjaWZpZWQgYnkgKmZpbGVuYW1lKiBhbmQgKmxpbmVubyouCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS93ZWJicm93c2VyLnJzdCBiL0RvYy9saWJyYXJ5L3dlYmJyb3dzZXIucnN0CmluZGV4IGIxYThkNzMuLjFhNGNiNjkgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3dlYmJyb3dzZXIucnN0CisrKyBiL0RvYy9saWJyYXJ5L3dlYmJyb3dzZXIucnN0CkBAIC05Niw0NyArOTYsNTUgQEAKIG1heSBiZSBwYXNzZWQgdG8gdGhlIDpmdW5jOmBnZXRgIGZ1bmN0aW9uIGFuZCB0aGUgY29ycmVzcG9uZGluZyBpbnN0YW50aWF0aW9ucwogZm9yIHRoZSBjb250cm9sbGVyIGNsYXNzZXMsIGFsbCBkZWZpbmVkIGluIHRoaXMgbW9kdWxlLgogCi0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKLXwgVHlwZSBOYW1lICAgICAgICAgICAgIHwgQ2xhc3MgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTm90ZXMgfAotKz09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT0rCi18IGBgJ21vemlsbGEnYGAgICAgICAgICB8IDpjbGFzczpgTW96aWxsYSgnbW96aWxsYScpYCAgICAgICAgICAgICB8ICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKwotfCBgYCdmaXJlZm94J2BgICAgICAgICAgfCA6Y2xhc3M6YE1vemlsbGEoJ21vemlsbGEnKWAgICAgICAgICAgICAgfCAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKLXwgYGAnbmV0c2NhcGUnYGAgICAgICAgIHwgOmNsYXNzOmBNb3ppbGxhKCduZXRzY2FwZScpYCAgICAgICAgICAgIHwgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCi18IGBgJ2dhbGVvbidgYCAgICAgICAgICB8IDpjbGFzczpgR2FsZW9uKCdnYWxlb24nKWAgICAgICAgICAgICAgICB8ICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKwotfCBgYCdlcGlwaGFueSdgYCAgICAgICAgfCA6Y2xhc3M6YEdhbGVvbignZXBpcGhhbnknKWAgICAgICAgICAgICAgfCAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKLXwgYGAnc2tpcHN0b25lJ2BgICAgICAgIHwgOmNsYXNzOmBCYWNrZ3JvdW5kQnJvd3Nlcignc2tpcHN0b25lJylgIHwgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCi18IGBgJ2tmbWNsaWVudCdgYCAgICAgICB8IDpjbGFzczpgS29ucXVlcm9yKClgICAgICAgICAgICAgICAgICAgICB8IFwoMSkgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKwotfCBgYCdrb25xdWVyb3InYGAgICAgICAgfCA6Y2xhc3M6YEtvbnF1ZXJvcigpYCAgICAgICAgICAgICAgICAgICAgfCBcKDEpICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKLXwgYGAna2ZtJ2BgICAgICAgICAgICAgIHwgOmNsYXNzOmBLb25xdWVyb3IoKWAgICAgICAgICAgICAgICAgICAgIHwgXCgxKSAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCi18IGBgJ21vc2FpYydgYCAgICAgICAgICB8IDpjbGFzczpgQmFja2dyb3VuZEJyb3dzZXIoJ21vc2FpYycpYCAgICB8ICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKwotfCBgYCdvcGVyYSdgYCAgICAgICAgICAgfCA6Y2xhc3M6YE9wZXJhKClgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKLXwgYGAnZ3JhaWwnYGAgICAgICAgICAgIHwgOmNsYXNzOmBHcmFpbCgpYCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCi18IGBgJ2xpbmtzJ2BgICAgICAgICAgICB8IDpjbGFzczpgR2VuZXJpY0Jyb3dzZXIoJ2xpbmtzJylgICAgICAgICB8ICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKwotfCBgYCdlbGlua3MnYGAgICAgICAgICAgfCA6Y2xhc3M6YEVsaW5rcygnZWxpbmtzJylgICAgICAgICAgICAgICAgfCAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKLXwgYGAnbHlueCdgYCAgICAgICAgICAgIHwgOmNsYXNzOmBHZW5lcmljQnJvd3NlcignbHlueCcpYCAgICAgICAgIHwgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCi18IGBgJ3czbSdgYCAgICAgICAgICAgICB8IDpjbGFzczpgR2VuZXJpY0Jyb3dzZXIoJ3czbScpYCAgICAgICAgICB8ICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKwotfCBgYCd3aW5kb3dzLWRlZmF1bHQnYGAgfCA6Y2xhc3M6YFdpbmRvd3NEZWZhdWx0YCAgICAgICAgICAgICAgICAgfCBcKDIpICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKLXwgYGAnbWFjb3N4J2BgICAgICAgICAgIHwgOmNsYXNzOmBNYWNPU1goJ2RlZmF1bHQnKWAgICAgICAgICAgICAgIHwgXCgzKSAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rCi18IGBgJ3NhZmFyaSdgYCAgICAgICAgICB8IDpjbGFzczpgTWFjT1NYKCdzYWZhcmknKWAgICAgICAgICAgICAgICB8IFwoMykgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBUeXBlIE5hbWUgICAgICAgICAgICAgIHwgQ2xhc3MgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTm90ZXMgfAorKz09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09KworfCBgYCdtb3ppbGxhJ2BgICAgICAgICAgIHwgOmNsYXNzOmBNb3ppbGxhKCdtb3ppbGxhJylgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdmaXJlZm94J2BgICAgICAgICAgIHwgOmNsYXNzOmBNb3ppbGxhKCdtb3ppbGxhJylgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCduZXRzY2FwZSdgYCAgICAgICAgIHwgOmNsYXNzOmBNb3ppbGxhKCduZXRzY2FwZScpYCAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdnYWxlb24nYGAgICAgICAgICAgIHwgOmNsYXNzOmBHYWxlb24oJ2dhbGVvbicpYCAgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdlcGlwaGFueSdgYCAgICAgICAgIHwgOmNsYXNzOmBHYWxlb24oJ2VwaXBoYW55JylgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdza2lwc3RvbmUnYGAgICAgICAgIHwgOmNsYXNzOmBCYWNrZ3JvdW5kQnJvd3Nlcignc2tpcHN0b25lJylgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdrZm1jbGllbnQnYGAgICAgICAgIHwgOmNsYXNzOmBLb25xdWVyb3IoKWAgICAgICAgICAgICAgICAgICAgIHwgXCgxKSAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdrb25xdWVyb3InYGAgICAgICAgIHwgOmNsYXNzOmBLb25xdWVyb3IoKWAgICAgICAgICAgICAgICAgICAgIHwgXCgxKSAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdrZm0nYGAgICAgICAgICAgICAgIHwgOmNsYXNzOmBLb25xdWVyb3IoKWAgICAgICAgICAgICAgICAgICAgIHwgXCgxKSAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdtb3NhaWMnYGAgICAgICAgICAgIHwgOmNsYXNzOmBCYWNrZ3JvdW5kQnJvd3NlcignbW9zYWljJylgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdvcGVyYSdgYCAgICAgICAgICAgIHwgOmNsYXNzOmBPcGVyYSgpYCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdncmFpbCdgYCAgICAgICAgICAgIHwgOmNsYXNzOmBHcmFpbCgpYCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdsaW5rcydgYCAgICAgICAgICAgIHwgOmNsYXNzOmBHZW5lcmljQnJvd3NlcignbGlua3MnKWAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdlbGlua3MnYGAgICAgICAgICAgIHwgOmNsYXNzOmBFbGlua3MoJ2VsaW5rcycpYCAgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdseW54J2BgICAgICAgICAgICAgIHwgOmNsYXNzOmBHZW5lcmljQnJvd3NlcignbHlueCcpYCAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCd3M20nYGAgICAgICAgICAgICAgIHwgOmNsYXNzOmBHZW5lcmljQnJvd3NlcigndzNtJylgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCd3aW5kb3dzLWRlZmF1bHQnYGAgIHwgOmNsYXNzOmBXaW5kb3dzRGVmYXVsdGAgICAgICAgICAgICAgICAgIHwgXCgyKSAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdtYWNvc3gnYGAgICAgICAgICAgIHwgOmNsYXNzOmBNYWNPU1goJ2RlZmF1bHQnKWAgICAgICAgICAgICAgIHwgXCgzKSAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdzYWZhcmknYGAgICAgICAgICAgIHwgOmNsYXNzOmBNYWNPU1goJ3NhZmFyaScpYCAgICAgICAgICAgICAgIHwgXCgzKSAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdnb29nbGUtY2hyb21lJ2BgICAgIHwgOmNsYXNzOmBDaHJvbWUoJ2dvb2dsZS1jaHJvbWUnKWAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdjaHJvbWUnYGAgICAgICAgICAgIHwgOmNsYXNzOmBDaHJvbWUoJ2Nocm9tZScpYCAgICAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdjaHJvbWl1bSdgYCAgICAgICAgIHwgOmNsYXNzOmBDaHJvbWl1bSgnY2hyb21pdW0nKWAgICAgICAgICAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKworfCBgYCdjaHJvbWl1bS1icm93c2VyJ2BgIHwgOmNsYXNzOmBDaHJvbWl1bSgnY2hyb21pdW0tYnJvd3NlcicpYCAgIHwgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKwogCiBOb3RlczoKIApAQCAtMTUzLDEyICsxNjEsMTUgQEAKICgzKQogICAgT25seSBvbiBNYWMgT1MgWCBwbGF0Zm9ybS4KIAorLi4gdmVyc2lvbmFkZGVkOjogMy4zCisgICBTdXBwb3J0IGZvciBDaHJvbWUvQ2hyb21pdW0gaGFzIGJlZW4gYWRkZWQuCisKIEhlcmUgYXJlIHNvbWUgc2ltcGxlIGV4YW1wbGVzOjoKIAotICAgdXJsID0gJ2h0dHA6Ly93d3cucHl0aG9uLm9yZy8nCisgICB1cmwgPSAnaHR0cDovL2RvY3MucHl0aG9uLm9yZy8nCiAKICAgICMgT3BlbiBVUkwgaW4gYSBuZXcgdGFiLCBpZiBhIGJyb3dzZXIgd2luZG93IGlzIGFscmVhZHkgb3Blbi4KLSAgIHdlYmJyb3dzZXIub3Blbl9uZXdfdGFiKHVybCArICdkb2MvJykKKyAgIHdlYmJyb3dzZXIub3Blbl9uZXdfdGFiKHVybCkKIAogICAgIyBPcGVuIFVSTCBpbiBuZXcgd2luZG93LCByYWlzaW5nIHRoZSB3aW5kb3cgaWYgcG9zc2libGUuCiAgICB3ZWJicm93c2VyLm9wZW5fbmV3KHVybCkKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3dpbnJlZy5yc3QgYi9Eb2MvbGlicmFyeS93aW5yZWcucnN0CmluZGV4IGU0OWI1MWIuLmE4NzhkYTIgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3dpbnJlZy5yc3QKKysrIGIvRG9jL2xpYnJhcnkvd2lucmVnLnJzdApAQCAtMzgsNyArMzgsMTEgQEAKICAgICprZXkqIGlzIHRoZSBwcmVkZWZpbmVkIGhhbmRsZSB0byBjb25uZWN0IHRvLgogCiAgICBUaGUgcmV0dXJuIHZhbHVlIGlzIHRoZSBoYW5kbGUgb2YgdGhlIG9wZW5lZCBrZXkuIElmIHRoZSBmdW5jdGlvbiBmYWlscywgYQotICAgOmV4YzpgV2luZG93c0Vycm9yYCBleGNlcHRpb24gaXMgcmFpc2VkLgorICAgOmV4YzpgT1NFcnJvcmAgZXhjZXB0aW9uIGlzIHJhaXNlZC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0byByYWlzZSBhIDpleGM6YFdpbmRvd3NFcnJvcmAsIHdoaWNoIGlzIG5vdyBhbgorICAgICAgYWxpYXMgb2YgOmV4YzpgT1NFcnJvcmAuCiAKIAogLi4gZnVuY3Rpb246OiBDcmVhdGVLZXkoa2V5LCBzdWJfa2V5KQpAQCAtNTcsNyArNjEsMTEgQEAKICAgIElmIHRoZSBrZXkgYWxyZWFkeSBleGlzdHMsIHRoaXMgZnVuY3Rpb24gb3BlbnMgdGhlIGV4aXN0aW5nIGtleS4KIAogICAgVGhlIHJldHVybiB2YWx1ZSBpcyB0aGUgaGFuZGxlIG9mIHRoZSBvcGVuZWQga2V5LiBJZiB0aGUgZnVuY3Rpb24gZmFpbHMsIGEKLSAgIDpleGM6YFdpbmRvd3NFcnJvcmAgZXhjZXB0aW9uIGlzIHJhaXNlZC4KKyAgIDpleGM6YE9TRXJyb3JgIGV4Y2VwdGlvbiBpcyByYWlzZWQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gcmFpc2UgYSA6ZXhjOmBXaW5kb3dzRXJyb3JgLCB3aGljaCBpcyBub3cgYW4KKyAgICAgIGFsaWFzIG9mIDpleGM6YE9TRXJyb3JgLgogCiAKIC4uIGZ1bmN0aW9uOjogQ3JlYXRlS2V5RXgoa2V5LCBzdWJfa2V5LCByZXNlcnZlZD0wLCBhY2Nlc3M9S0VZX0FMTF9BQ0NFU1MpCkBAIC04MiwxMCArOTAsMTQgQEAKICAgIElmIHRoZSBrZXkgYWxyZWFkeSBleGlzdHMsIHRoaXMgZnVuY3Rpb24gb3BlbnMgdGhlIGV4aXN0aW5nIGtleS4KIAogICAgVGhlIHJldHVybiB2YWx1ZSBpcyB0aGUgaGFuZGxlIG9mIHRoZSBvcGVuZWQga2V5LiBJZiB0aGUgZnVuY3Rpb24gZmFpbHMsIGEKLSAgIDpleGM6YFdpbmRvd3NFcnJvcmAgZXhjZXB0aW9uIGlzIHJhaXNlZC4KKyAgIDpleGM6YE9TRXJyb3JgIGV4Y2VwdGlvbiBpcyByYWlzZWQuCiAKICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIHJhaXNlIGEgOmV4YzpgV2luZG93c0Vycm9yYCwgd2hpY2ggaXMgbm93IGFuCisgICAgICBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KKwogCiAuLiBmdW5jdGlvbjo6IERlbGV0ZUtleShrZXksIHN1Yl9rZXkpCiAKQEAgLTEwMCw3ICsxMTIsMTEgQEAKICAgICpUaGlzIG1ldGhvZCBjYW4gbm90IGRlbGV0ZSBrZXlzIHdpdGggc3Via2V5cy4qCiAKICAgIElmIHRoZSBtZXRob2Qgc3VjY2VlZHMsIHRoZSBlbnRpcmUga2V5LCBpbmNsdWRpbmcgYWxsIG9mIGl0cyB2YWx1ZXMsIGlzIHJlbW92ZWQuCi0gICBJZiB0aGUgbWV0aG9kIGZhaWxzLCBhIDpleGM6YFdpbmRvd3NFcnJvcmAgZXhjZXB0aW9uIGlzIHJhaXNlZC4KKyAgIElmIHRoZSBtZXRob2QgZmFpbHMsIGEgOmV4YzpgT1NFcnJvcmAgZXhjZXB0aW9uIGlzIHJhaXNlZC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0byByYWlzZSBhIDpleGM6YFdpbmRvd3NFcnJvcmAsIHdoaWNoIGlzIG5vdyBhbgorICAgICAgYWxpYXMgb2YgOmV4YzpgT1NFcnJvcmAuCiAKIAogLi4gZnVuY3Rpb246OiBEZWxldGVLZXlFeChrZXksIHN1Yl9rZXksIGFjY2Vzcz1LRVlfQUxMX0FDQ0VTUywgcmVzZXJ2ZWQ9MCkKQEAgLTEyOSwxMiArMTQ1LDE2IEBACiAgICAqVGhpcyBtZXRob2QgY2FuIG5vdCBkZWxldGUga2V5cyB3aXRoIHN1YmtleXMuKgogCiAgICBJZiB0aGUgbWV0aG9kIHN1Y2NlZWRzLCB0aGUgZW50aXJlIGtleSwgaW5jbHVkaW5nIGFsbCBvZiBpdHMgdmFsdWVzLCBpcwotICAgcmVtb3ZlZC4gSWYgdGhlIG1ldGhvZCBmYWlscywgYSA6ZXhjOmBXaW5kb3dzRXJyb3JgIGV4Y2VwdGlvbiBpcyByYWlzZWQuCisgICByZW1vdmVkLiBJZiB0aGUgbWV0aG9kIGZhaWxzLCBhIDpleGM6YE9TRXJyb3JgIGV4Y2VwdGlvbiBpcyByYWlzZWQuCiAKICAgIE9uIHVuc3VwcG9ydGVkIFdpbmRvd3MgdmVyc2lvbnMsIDpleGM6YE5vdEltcGxlbWVudGVkRXJyb3JgIGlzIHJhaXNlZC4KIAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gcmFpc2UgYSA6ZXhjOmBXaW5kb3dzRXJyb3JgLCB3aGljaCBpcyBub3cgYW4KKyAgICAgIGFsaWFzIG9mIDpleGM6YE9TRXJyb3JgLgorCiAKIC4uIGZ1bmN0aW9uOjogRGVsZXRlVmFsdWUoa2V5LCB2YWx1ZSkKIApAQCAtMTU2LDkgKzE3NiwxMyBAQAogICAgKmluZGV4KiBpcyBhbiBpbnRlZ2VyIHRoYXQgaWRlbnRpZmllcyB0aGUgaW5kZXggb2YgdGhlIGtleSB0byByZXRyaWV2ZS4KIAogICAgVGhlIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUgbmFtZSBvZiBvbmUgc3Via2V5IGVhY2ggdGltZSBpdCBpcyBjYWxsZWQuICBJdCBpcwotICAgdHlwaWNhbGx5IGNhbGxlZCByZXBlYXRlZGx5IHVudGlsIGEgOmV4YzpgV2luZG93c0Vycm9yYCBleGNlcHRpb24gaXMKKyAgIHR5cGljYWxseSBjYWxsZWQgcmVwZWF0ZWRseSB1bnRpbCBhIDpleGM6YE9TRXJyb3JgIGV4Y2VwdGlvbiBpcwogICAgcmFpc2VkLCBpbmRpY2F0aW5nLCBubyBtb3JlIHZhbHVlcyBhcmUgYXZhaWxhYmxlLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIHJhaXNlIGEgOmV4YzpgV2luZG93c0Vycm9yYCwgd2hpY2ggaXMgbm93IGFuCisgICAgICBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KKwogCiAuLiBmdW5jdGlvbjo6IEVudW1WYWx1ZShrZXksIGluZGV4KQogCkBAIC0xNzAsNyArMTk0LDcgQEAKICAgICppbmRleCogaXMgYW4gaW50ZWdlciB0aGF0IGlkZW50aWZpZXMgdGhlIGluZGV4IG9mIHRoZSB2YWx1ZSB0byByZXRyaWV2ZS4KIAogICAgVGhlIGZ1bmN0aW9uIHJldHJpZXZlcyB0aGUgbmFtZSBvZiBvbmUgc3Via2V5IGVhY2ggdGltZSBpdCBpcyBjYWxsZWQuIEl0IGlzCi0gICB0eXBpY2FsbHkgY2FsbGVkIHJlcGVhdGVkbHksIHVudGlsIGEgOmV4YzpgV2luZG93c0Vycm9yYCBleGNlcHRpb24gaXMKKyAgIHR5cGljYWxseSBjYWxsZWQgcmVwZWF0ZWRseSwgdW50aWwgYSA6ZXhjOmBPU0Vycm9yYCBleGNlcHRpb24gaXMKICAgIHJhaXNlZCwgaW5kaWNhdGluZyBubyBtb3JlIHZhbHVlcy4KIAogICAgVGhlIHJlc3VsdCBpcyBhIHR1cGxlIG9mIDMgaXRlbXM6CkBAIC0xODksNiArMjEzLDEwIEBACiAgICB8ICAgICAgIHwgOm1ldGg6YFNldFZhbHVlRXhgKSAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIHJhaXNlIGEgOmV4YzpgV2luZG93c0Vycm9yYCwgd2hpY2ggaXMgbm93IGFuCisgICAgICBhbGlhcyBvZiA6ZXhjOmBPU0Vycm9yYC4KKwogCiAuLiBmdW5jdGlvbjo6IEV4cGFuZEVudmlyb25tZW50U3RyaW5ncyhzdHIpCiAKQEAgLTI2MCw5ICsyODgsMTQgQEAKIAogICAgVGhlIHJlc3VsdCBpcyBhIG5ldyBoYW5kbGUgdG8gdGhlIHNwZWNpZmllZCBrZXkuCiAKLSAgIElmIHRoZSBmdW5jdGlvbiBmYWlscywgOmV4YzpgV2luZG93c0Vycm9yYCBpcyByYWlzZWQuCisgICBJZiB0aGUgZnVuY3Rpb24gZmFpbHMsIDpleGM6YE9TRXJyb3JgIGlzIHJhaXNlZC4KIAotICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjIgQWxsb3cgdGhlIHVzZSBvZiBuYW1lZCBhcmd1bWVudHMuCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgorICAgICAgQWxsb3cgdGhlIHVzZSBvZiBuYW1lZCBhcmd1bWVudHMuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGlzIGZ1bmN0aW9uIHVzZWQgdG8gcmFpc2UgYSA6ZXhjOmBXaW5kb3dzRXJyb3JgLCB3aGljaCBpcyBub3cgYW4KKyAgICAgIGFsaWFzIG9mIDpleGM6YE9TRXJyb3JgLgogCiAKIC4uIGZ1bmN0aW9uOjogT3BlbktleUV4KCkKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3dzZ2lyZWYucnN0IGIvRG9jL2xpYnJhcnkvd3NnaXJlZi5yc3QKaW5kZXggMWZkMzQ1MS4uMWNlZjJlOSAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvd3NnaXJlZi5yc3QKKysrIGIvRG9jL2xpYnJhcnkvd3NnaXJlZi5yc3QKQEAgLTYwOSw2ICs2MDksOSBAQAogICAgICAgYXMgOmNsYXNzOmBCYXNlQ0dJSGFuZGxlcmAgYW5kIDpjbGFzczpgQ0dJSGFuZGxlcmApIHRoYXQgYXJlIG5vdCBIVFRQIG9yaWdpbgogICAgICAgc2VydmVycy4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICAgIFRoZSB0ZXJtICJQeXRob24iIGlzIHJlcGxhY2VkIHdpdGggaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgdGVybSBsaWtlCisgICAgICAgICAiQ1B5dGhvbiIsICJKeXRob24iIGV0Yy4KIAogICAgLi4gbWV0aG9kOjogQmFzZUhhbmRsZXIuZ2V0X3NjaGVtZSgpCiAKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3htbC5ldHJlZS5lbGVtZW50dHJlZS5yc3QgYi9Eb2MvbGlicmFyeS94bWwuZXRyZWUuZWxlbWVudHRyZWUucnN0CmluZGV4IGM1Yzg4MDIuLjMzNWE2ZTIgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3htbC5ldHJlZS5lbGVtZW50dHJlZS5yc3QKKysrIGIvRG9jL2xpYnJhcnkveG1sLmV0cmVlLmVsZW1lbnR0cmVlLnJzdApAQCAtNSw0OSArNSwyMzIgQEAKICAgIDpzeW5vcHNpczogSW1wbGVtZW50YXRpb24gb2YgdGhlIEVsZW1lbnRUcmVlIEFQSS4KIC4uIG1vZHVsZWF1dGhvcjo6IEZyZWRyaWsgTHVuZGggPGZyZWRyaWtAcHl0aG9ud2FyZS5jb20+CiAKLSoqU291cmNlIGNvZGU6KiogOnNvdXJjZTpgTGliL3htbC9ldHJlZS9FbGVtZW50VHJlZS5weWAKK1RoZSA6bW9kOmB4bWwuZXRyZWUuRWxlbWVudFRyZWVgIG1vZHVsZSBpbXBsZW1lbnRzIGEgc2ltcGxlIGFuZCBlZmZpY2llbnQgQVBJCitmb3IgcGFyc2luZyBhbmQgY3JlYXRpbmcgWE1MIGRhdGEuCiAKLS0tLS0tLS0tLS0tLS0tCisuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgVGhpcyBtb2R1bGUgd2lsbCB1c2UgYSBmYXN0IGltcGxlbWVudGF0aW9uIHdoZW5ldmVyIGF2YWlsYWJsZS4KKyAgIFRoZSA6bW9kOmB4bWwuZXRyZWUuY0VsZW1lbnRUcmVlYCBtb2R1bGUgaXMgZGVwcmVjYXRlZC4KIAotVGhlIDpjbGFzczpgRWxlbWVudGAgdHlwZSBpcyBhIGZsZXhpYmxlIGNvbnRhaW5lciBvYmplY3QsIGRlc2lnbmVkIHRvIHN0b3JlCi1oaWVyYXJjaGljYWwgZGF0YSBzdHJ1Y3R1cmVzIGluIG1lbW9yeS4gIFRoZSB0eXBlIGNhbiBiZSBkZXNjcmliZWQgYXMgYSBjcm9zcwotYmV0d2VlbiBhIGxpc3QgYW5kIGEgZGljdGlvbmFyeS4KK1R1dG9yaWFsCistLS0tLS0tLQogCi1FYWNoIGVsZW1lbnQgaGFzIGEgbnVtYmVyIG9mIHByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIGl0OgorVGhpcyBpcyBhIHNob3J0IHR1dG9yaWFsIGZvciB1c2luZyA6bW9kOmB4bWwuZXRyZWUuRWxlbWVudFRyZWVgIChgYEVUYGAgaW4KK3Nob3J0KS4gIFRoZSBnb2FsIGlzIHRvIGRlbW9uc3RyYXRlIHNvbWUgb2YgdGhlIGJ1aWxkaW5nIGJsb2NrcyBhbmQgYmFzaWMKK2NvbmNlcHRzIG9mIHRoZSBtb2R1bGUuCiAKLSogYSB0YWcgd2hpY2ggaXMgYSBzdHJpbmcgaWRlbnRpZnlpbmcgd2hhdCBraW5kIG9mIGRhdGEgdGhpcyBlbGVtZW50IHJlcHJlc2VudHMKLSAgKHRoZSBlbGVtZW50IHR5cGUsIGluIG90aGVyIHdvcmRzKS4KK1hNTCB0cmVlIGFuZCBlbGVtZW50cworXl5eXl5eXl5eXl5eXl5eXl5eXl5eCiAKLSogYSBudW1iZXIgb2YgYXR0cmlidXRlcywgc3RvcmVkIGluIGEgUHl0aG9uIGRpY3Rpb25hcnkuCitYTUwgaXMgYW4gaW5oZXJlbnRseSBoaWVyYXJjaGljYWwgZGF0YSBmb3JtYXQsIGFuZCB0aGUgbW9zdCBuYXR1cmFsIHdheSB0bworcmVwcmVzZW50IGl0IGlzIHdpdGggYSB0cmVlLiAgYGBFVGBgIGhhcyB0d28gY2xhc3NlcyBmb3IgdGhpcyBwdXJwb3NlIC0KKzpjbGFzczpgRWxlbWVudFRyZWVgIHJlcHJlc2VudHMgdGhlIHdob2xlIFhNTCBkb2N1bWVudCBhcyBhIHRyZWUsIGFuZAorOmNsYXNzOmBFbGVtZW50YCByZXByZXNlbnRzIGEgc2luZ2xlIG5vZGUgaW4gdGhpcyB0cmVlLiAgSW50ZXJhY3Rpb25zIHdpdGgKK3RoZSB3aG9sZSBkb2N1bWVudCAocmVhZGluZyBhbmQgd3JpdGluZyB0by9mcm9tIGZpbGVzKSBhcmUgdXN1YWxseSBkb25lCitvbiB0aGUgOmNsYXNzOmBFbGVtZW50VHJlZWAgbGV2ZWwuICBJbnRlcmFjdGlvbnMgd2l0aCBhIHNpbmdsZSBYTUwgZWxlbWVudAorYW5kIGl0cyBzdWItZWxlbWVudHMgYXJlIGRvbmUgb24gdGhlIDpjbGFzczpgRWxlbWVudGAgbGV2ZWwuCiAKLSogYSB0ZXh0IHN0cmluZy4KKy4uIF9lbGVtZW50dHJlZS1wYXJzaW5nLXhtbDoKIAotKiBhbiBvcHRpb25hbCB0YWlsIHN0cmluZy4KK1BhcnNpbmcgWE1MCiteXl5eXl5eXl5eXgogCi0qIGEgbnVtYmVyIG9mIGNoaWxkIGVsZW1lbnRzLCBzdG9yZWQgaW4gYSBQeXRob24gc2VxdWVuY2UKK1dlJ2xsIGJlIHVzaW5nIHRoZSBmb2xsb3dpbmcgWE1MIGRvY3VtZW50IGNvbnRhaW5lZCBpbiBhIFB5dGhvbiBzdHJpbmcgYXMgdGhlCitzYW1wbGUgZGF0YSBmb3IgdGhpcyBzZWN0aW9uOjoKIAotVG8gY3JlYXRlIGFuIGVsZW1lbnQgaW5zdGFuY2UsIHVzZSB0aGUgOmNsYXNzOmBFbGVtZW50YCBjb25zdHJ1Y3RvciBvciB0aGUKLTpmdW5jOmBTdWJFbGVtZW50YCBmYWN0b3J5IGZ1bmN0aW9uLgorICAgY291bnRyeWRhdGEgPSByJycnPD94bWwgdmVyc2lvbj0iMS4wIj8+CisgICA8ZGF0YT4KKyAgICAgICA8Y291bnRyeSBuYW1lPSJMaWVjaHRlbnNodGVpbiI+CisgICAgICAgICAgIDxyYW5rPjE8L3Jhbms+CisgICAgICAgICAgIDx5ZWFyPjIwMDg8L3llYXI+CisgICAgICAgICAgIDxnZHBwYz4xNDExMDA8L2dkcHBjPgorICAgICAgICAgICA8bmVpZ2hib3IgbmFtZT0iQXVzdHJpYSIgZGlyZWN0aW9uPSJFIi8+CisgICAgICAgICAgIDxuZWlnaGJvciBuYW1lPSJTd2l0emVybGFuZCIgZGlyZWN0aW9uPSJXIi8+CisgICAgICAgPC9jb3VudHJ5PgorICAgICAgIDxjb3VudHJ5IG5hbWU9IlNpbmdhcG9yZSI+CisgICAgICAgICAgIDxyYW5rPjQ8L3Jhbms+CisgICAgICAgICAgIDx5ZWFyPjIwMTE8L3llYXI+CisgICAgICAgICAgIDxnZHBwYz41OTkwMDwvZ2RwcGM+CisgICAgICAgICAgIDxuZWlnaGJvciBuYW1lPSJNYWxheXNpYSIgZGlyZWN0aW9uPSJOIi8+CisgICAgICAgPC9jb3VudHJ5PgorICAgICAgIDxjb3VudHJ5IG5hbWU9IlBhbmFtYSI+CisgICAgICAgICAgIDxyYW5rPjY4PC9yYW5rPgorICAgICAgICAgICA8eWVhcj4yMDExPC95ZWFyPgorICAgICAgICAgICA8Z2RwcGM+MTM2MDA8L2dkcHBjPgorICAgICAgICAgICA8bmVpZ2hib3IgbmFtZT0iQ29zdGEgUmljYSIgZGlyZWN0aW9uPSJXIi8+CisgICAgICAgICAgIDxuZWlnaGJvciBuYW1lPSJDb2xvbWJpYSIgZGlyZWN0aW9uPSJFIi8+CisgICAgICAgPC9jb3VudHJ5PgorICAgPC9kYXRhPgorICAgJycnCiAKLVRoZSA6Y2xhc3M6YEVsZW1lbnRUcmVlYCBjbGFzcyBjYW4gYmUgdXNlZCB0byB3cmFwIGFuIGVsZW1lbnQgc3RydWN0dXJlLCBhbmQKLWNvbnZlcnQgaXQgZnJvbSBhbmQgdG8gWE1MLgorRmlyc3QsIGltcG9ydCB0aGUgbW9kdWxlIGFuZCBwYXJzZSB0aGUgZGF0YTo6CiAKLUEgQyBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIEFQSSBpcyBhdmFpbGFibGUgYXMgOm1vZDpgeG1sLmV0cmVlLmNFbGVtZW50VHJlZWAuCisgICBpbXBvcnQgeG1sLmV0cmVlLkVsZW1lbnRUcmVlIGFzIEVUCisKKyAgIHJvb3QgPSBFVC5mcm9tc3RyaW5nKGNvdW50cnlkYXRhKQorCis6ZnVuYzpgZnJvbXN0cmluZ2AgcGFyc2VzIFhNTCBmcm9tIGEgc3RyaW5nIGRpcmVjdGx5IGludG8gYW4gOmNsYXNzOmBFbGVtZW50YCwKK3doaWNoIGlzIHRoZSByb290IGVsZW1lbnQgb2YgdGhlIHBhcnNlZCB0cmVlLiAgT3RoZXIgcGFyc2luZyBmdW5jdGlvbnMgbWF5CitjcmVhdGUgYW4gOmNsYXNzOmBFbGVtZW50VHJlZWAuICBNYWtlIHN1cmUgdG8gY2hlY2sgdGhlIGRvY3VtZW50YXRpb24gdG8gYmUKK3N1cmUuCisKK0FzIGFuIDpjbGFzczpgRWxlbWVudGAsIGBgcm9vdGBgIGhhcyBhIHRhZyBhbmQgYSBkaWN0aW9uYXJ5IG9mIGF0dHJpYnV0ZXM6OgorCisgICA+Pj4gcm9vdC50YWcKKyAgICdkYXRhJworICAgPj4+IHJvb3QuYXR0cmliCisgICB7fQorCitJdCBhbHNvIGhhcyBjaGlsZHJlbiBub2RlcyBvdmVyIHdoaWNoIHdlIGNhbiBpdGVyYXRlOjoKKworICAgPj4+IGZvciBjaGlsZCBpbiByb290OgorICAgLi4uICAgcHJpbnQoY2hpbGQudGFnLCBjaGlsZC5hdHRyaWIpCisgICAuLi4KKyAgIGNvdW50cnkgeyduYW1lJzogJ0xpZWNodGVuc2h0ZWluJ30KKyAgIGNvdW50cnkgeyduYW1lJzogJ1NpbmdhcG9yZSd9CisgICBjb3VudHJ5IHsnbmFtZSc6ICdQYW5hbWEnfQorCitDaGlsZHJlbiBhcmUgbmVzdGVkLCBhbmQgd2UgY2FuIGFjY2VzcyBzcGVjaWZpYyBjaGlsZCBub2RlcyBieSBpbmRleDo6CisKKyAgID4+PiByb290WzBdWzFdLnRleHQKKyAgICcyMDA4JworCitGaW5kaW5nIGludGVyZXN0aW5nIGVsZW1lbnRzCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKKzpjbGFzczpgRWxlbWVudGAgaGFzIHNvbWUgdXNlZnVsIG1ldGhvZHMgdGhhdCBoZWxwIGl0ZXJhdGUgcmVjdXJzaXZlbHkgb3ZlciBhbGwKK3RoZSBzdWItdHJlZSBiZWxvdyBpdCAoaXRzIGNoaWxkcmVuLCB0aGVpciBjaGlsZHJlbiwgYW5kIHNvIG9uKS4gIEZvciBleGFtcGxlLAorOm1ldGg6YEVsZW1lbnQuaXRlcmA6OgorCisgICA+Pj4gZm9yIG5laWdoYm9yIGluIHJvb3QuaXRlcignbmVpZ2hib3InKToKKyAgIC4uLiAgIHByaW50KG5laWdoYm9yLmF0dHJpYikKKyAgIC4uLgorICAgeyduYW1lJzogJ0F1c3RyaWEnLCAnZGlyZWN0aW9uJzogJ0UnfQorICAgeyduYW1lJzogJ1N3aXR6ZXJsYW5kJywgJ2RpcmVjdGlvbic6ICdXJ30KKyAgIHsnbmFtZSc6ICdNYWxheXNpYScsICdkaXJlY3Rpb24nOiAnTid9CisgICB7J25hbWUnOiAnQ29zdGEgUmljYScsICdkaXJlY3Rpb24nOiAnVyd9CisgICB7J25hbWUnOiAnQ29sb21iaWEnLCAnZGlyZWN0aW9uJzogJ0UnfQorCitNb3JlIHNvcGhpc3RpY2F0ZWQgc3BlY2lmaWNhdGlvbiBvZiB3aGljaCBlbGVtZW50cyB0byBsb29rIGZvciBpcyBwb3NzaWJsZSBieQordXNpbmcgOnJlZjpgWFBhdGggPGVsZW1lbnR0cmVlLXhwYXRoPmAuCisKK0J1aWxkaW5nIFhNTCBkb2N1bWVudHMKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworYGBFVGBgIHByb3ZpZGVzIGEgc2ltcGxlIHdheSB0byBidWlsZCBYTUwgZG9jdW1lbnRzIGFuZCB3cml0ZSB0aGVtIHRvIGZpbGVzLgorVGhlIDptZXRoOmBFbGVtZW50VHJlZS53cml0ZWAgbWV0aG9kIHNlcnZlcyB0aGlzIHB1cnBvc2UuCisKK09uY2UgY3JlYXRlZCwgYW4gOmNsYXNzOmBFbGVtZW50YCBvYmplY3QgbWF5IGJlIG1hbmlwdWxhdGVkIGJ5IGRpcmVjdGx5IGNoYW5naW5nCitpdHMgZmllbGRzIChzdWNoIGFzIDphdHRyOmBFbGVtZW50LnRleHRgKSwgYWRkaW5nIGFuZCBtb2RpZnlpbmcgYXR0cmlidXRlcworKDptZXRoOmBFbGVtZW50LnNldGAgbWV0aG9kKSwgYXMgd2VsbCBhcyBhZGRpbmcgbmV3IGNoaWxkcmVuIChmb3IgZXhhbXBsZQord2l0aCA6bWV0aDpgRWxlbWVudC5hcHBlbmRgKS4KKworVGhlIDpmdW5jOmBTdWJFbGVtZW50YCBmdW5jdGlvbiBhbHNvIHByb3ZpZGVzIGEgY29udmVuaWVudCB3YXkgdG8gY3JlYXRlIG5ldworc3ViLWVsZW1lbnRzIGZvciBhIGdpdmVuIGVsZW1lbnQ6OgorCisgICA+Pj4gYSA9IEVULkVsZW1lbnQoJ2EnKQorICAgPj4+IGIgPSBFVC5TdWJFbGVtZW50KGEsICdiJykKKyAgID4+PiBjID0gRVQuU3ViRWxlbWVudChhLCAnYycpCisgICA+Pj4gZCA9IEVULlN1YkVsZW1lbnQoYywgJ2QnKQorICAgPj4+IEVULmR1bXAoYSkKKyAgIDxhPjxiIC8+PGM+PGQgLz48L2M+PC9hPgorCitBZGRpdGlvbmFsIHJlc291cmNlcworXl5eXl5eXl5eXl5eXl5eXl5eXl4KIAogU2VlIGh0dHA6Ly9lZmZib3Qub3JnL3pvbmUvZWxlbWVudC1pbmRleC5odG0gZm9yIHR1dG9yaWFscyBhbmQgbGlua3MgdG8gb3RoZXIKLWRvY3MuICBGcmVkcmlrIEx1bmRoJ3MgcGFnZSBpcyBhbHNvIHRoZSBsb2NhdGlvbiBvZiB0aGUgZGV2ZWxvcG1lbnQgdmVyc2lvbiBvZgotdGhlIHhtbC5ldHJlZS5FbGVtZW50VHJlZS4KK2RvY3MuCiAKLS4uIHZlcnNpb25jaGFuZ2VkOjogMy4yCi0gICBUaGUgRWxlbWVudFRyZWUgQVBJIGlzIHVwZGF0ZWQgdG8gMS4zLiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZQotICAgYEludHJvZHVjaW5nIEVsZW1lbnRUcmVlIDEuMwotICAgPGh0dHA6Ly9lZmZib3Qub3JnL3pvbmUvZWxlbWVudHRyZWUtMTMtaW50cm8uaHRtPmBfLgogCisuLiBfZWxlbWVudHRyZWUteHBhdGg6CisKK1hQYXRoIHN1cHBvcnQKKy0tLS0tLS0tLS0tLS0KKworVGhpcyBtb2R1bGUgcHJvdmlkZXMgbGltaXRlZCBzdXBwb3J0IGZvcgorYFhQYXRoIGV4cHJlc3Npb25zIDxodHRwOi8vd3d3LnczLm9yZy9UUi94cGF0aD5gXyBmb3IgbG9jYXRpbmcgZWxlbWVudHMgaW4gYQordHJlZS4gIFRoZSBnb2FsIGlzIHRvIHN1cHBvcnQgYSBzbWFsbCBzdWJzZXQgb2YgdGhlIGFiYnJldmlhdGVkIHN5bnRheDsgYSBmdWxsCitYUGF0aCBlbmdpbmUgaXMgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhlIG1vZHVsZS4KKworRXhhbXBsZQorXl5eXl5eXgorCitIZXJlJ3MgYW4gZXhhbXBsZSB0aGF0IGRlbW9uc3RyYXRlcyBzb21lIG9mIHRoZSBYUGF0aCBjYXBhYmlsaXRpZXMgb2YgdGhlCittb2R1bGUuICBXZSdsbCBiZSB1c2luZyB0aGUgYGBjb3VudHJ5ZGF0YWBgIFhNTCBkb2N1bWVudCBmcm9tIHRoZQorOnJlZjpgUGFyc2luZyBYTUwgPGVsZW1lbnR0cmVlLXBhcnNpbmcteG1sPmAgc2VjdGlvbjo6CisKKyAgIGltcG9ydCB4bWwuZXRyZWUuRWxlbWVudFRyZWUgYXMgRVQKKworICAgcm9vdCA9IEVULmZyb21zdHJpbmcoY291bnRyeWRhdGEpCisKKyAgICMgVG9wLWxldmVsIGVsZW1lbnRzCisgICByb290LmZpbmRhbGwoIi4iKQorCisgICAjIEFsbCAnbmVpZ2hib3InIGdyYW5kLWNoaWxkcmVuIG9mICdjb3VudHJ5JyBjaGlsZHJlbiBvZiB0aGUgdG9wLWxldmVsCisgICAjIGVsZW1lbnRzCisgICByb290LmZpbmRhbGwoIi4vY291bnRyeS9uZWlnaGJvciIpCisKKyAgICMgTm9kZXMgd2l0aCBuYW1lPSdTaW5nYXBvcmUnIHRoYXQgaGF2ZSBhICd5ZWFyJyBjaGlsZAorICAgcm9vdC5maW5kYWxsKCIuLy95ZWFyLy4uW0BuYW1lPSdTaW5nYXBvcmUnXSIpCisKKyAgICMgJ3llYXInIG5vZGVzIHRoYXQgYXJlIGNoaWxkcmVuIG9mIG5vZGVzIHdpdGggbmFtZT0nU2luZ2Fwb3JlJworICAgcm9vdC5maW5kYWxsKCIuLy8qW0BuYW1lPSdTaW5nYXBvcmUnXS95ZWFyIikKKworICAgIyBBbGwgJ25laWdoYm9yJyBub2RlcyB0aGF0IGFyZSB0aGUgc2Vjb25kIGNoaWxkIG9mIHRoZWlyIHBhcmVudAorICAgcm9vdC5maW5kYWxsKCIuLy9uZWlnaGJvclsyXSIpCisKK1N1cHBvcnRlZCBYUGF0aCBzeW50YXgKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgU3ludGF4ICAgICAgICAgICAgICAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrPT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09KworfCBgYHRhZ2BgICAgICAgICAgICAgICAgfCBTZWxlY3RzIGFsbCBjaGlsZCBlbGVtZW50cyB3aXRoIHRoZSBnaXZlbiB0YWcuICAgICAgIHwKK3wgICAgICAgICAgICAgICAgICAgICAgIHwgRm9yIGV4YW1wbGUsIGBgc3BhbWBgIHNlbGVjdHMgYWxsIGNoaWxkIGVsZW1lbnRzICAgICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICB8IG5hbWVkIGBgc3BhbWBgLCBgYHNwYW0vZWdnYGAgc2VsZWN0cyBhbGwgICAgICAgICAgICAgfAorfCAgICAgICAgICAgICAgICAgICAgICAgfCBncmFuZGNoaWxkcmVuIG5hbWVkIGBgZWdnYGAgaW4gYWxsIGNoaWxkcmVuIG5hbWVkICAgIHwKK3wgICAgICAgICAgICAgICAgICAgICAgIHwgYGBzcGFtYGAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYCpgYCAgICAgICAgICAgICAgICAgfCBTZWxlY3RzIGFsbCBjaGlsZCBlbGVtZW50cy4gIEZvciBleGFtcGxlLCBgYCovZWdnYGAgIHwKK3wgICAgICAgICAgICAgICAgICAgICAgIHwgc2VsZWN0cyBhbGwgZ3JhbmRjaGlsZHJlbiBuYW1lZCBgYGVnZ2BgLiAgICAgICAgICAgICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYC5gYCAgICAgICAgICAgICAgICAgfCBTZWxlY3RzIHRoZSBjdXJyZW50IG5vZGUuICBUaGlzIGlzIG1vc3RseSB1c2VmdWwgICAgIHwKK3wgICAgICAgICAgICAgICAgICAgICAgIHwgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgcGF0aCwgdG8gaW5kaWNhdGUgdGhhdCBpdCdzICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICB8IGEgcmVsYXRpdmUgcGF0aC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGAvL2BgICAgICAgICAgICAgICAgIHwgU2VsZWN0cyBhbGwgc3ViZWxlbWVudHMsIG9uIGFsbCBsZXZlbHMgYmVuZWF0aCB0aGUgICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICB8IGN1cnJlbnQgIGVsZW1lbnQuICBGb3IgZXhhbXBsZSwgYGAuLy9lZ2dgYCBzZWxlY3RzICAgfAorfCAgICAgICAgICAgICAgICAgICAgICAgfCBhbGwgYGBlZ2dgYCBlbGVtZW50cyBpbiB0aGUgZW50aXJlIHRyZWUuICAgICAgICAgICAgIHwKKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCit8IGBgLi5gYCAgICAgICAgICAgICAgICB8IFNlbGVjdHMgdGhlIHBhcmVudCBlbGVtZW50LiAgICAgICAgICAgICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBbQGF0dHJpYl1gYCAgICAgICAgIHwgU2VsZWN0cyBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIHRoZSBnaXZlbiBhdHRyaWJ1dGUuICB8CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworfCBgYFtAYXR0cmliPSd2YWx1ZSddYGAgfCBTZWxlY3RzIGFsbCBlbGVtZW50cyBmb3Igd2hpY2ggdGhlIGdpdmVuIGF0dHJpYnV0ZSAgIHwKK3wgICAgICAgICAgICAgICAgICAgICAgIHwgaGFzIHRoZSBnaXZlbiB2YWx1ZS4gIFRoZSB2YWx1ZSBjYW5ub3QgY29udGFpbiAgICAgICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICB8IHF1b3Rlcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBbdGFnXWBgICAgICAgICAgICAgIHwgU2VsZWN0cyBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgY2hpbGQgbmFtZWQgICAgICAgICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICB8IGBgdGFnYGAuICBPbmx5IGltbWVkaWF0ZSBjaGlsZHJlbiBhcmUgc3VwcG9ydGVkLiAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKK3wgYGBbcG9zaXRpb25dYGAgICAgICAgIHwgU2VsZWN0cyBhbGwgZWxlbWVudHMgdGhhdCBhcmUgbG9jYXRlZCBhdCB0aGUgZ2l2ZW4gICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICB8IHBvc2l0aW9uLiAgVGhlIHBvc2l0aW9uIGNhbiBiZSBlaXRoZXIgYW4gaW50ZWdlciAgICAgfAorfCAgICAgICAgICAgICAgICAgICAgICAgfCAoMSBpcyB0aGUgZmlyc3QgcG9zaXRpb24pLCB0aGUgZXhwcmVzc2lvbiBgYGxhc3QoKWBgIHwKK3wgICAgICAgICAgICAgICAgICAgICAgIHwgKGZvciB0aGUgbGFzdCBwb3NpdGlvbiksIG9yIGEgcG9zaXRpb24gcmVsYXRpdmUgdG8gICB8Cit8ICAgICAgICAgICAgICAgICAgICAgICB8IHRoZSBsYXN0IHBvc2l0aW9uIChlLmcuIGBgbGFzdCgpLTFgYCkuICAgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKworUHJlZGljYXRlcyAoZXhwcmVzc2lvbnMgd2l0aGluIHNxdWFyZSBicmFja2V0cykgbXVzdCBiZSBwcmVjZWRlZCBieSBhIHRhZworbmFtZSwgYW4gYXN0ZXJpc2ssIG9yIGFub3RoZXIgcHJlZGljYXRlLiAgYGBwb3NpdGlvbmBgIHByZWRpY2F0ZXMgbXVzdCBiZQorcHJlY2VkZWQgYnkgYSB0YWcgbmFtZS4KKworUmVmZXJlbmNlCistLS0tLS0tLS0KIAogLi4gX2VsZW1lbnR0cmVlLWZ1bmN0aW9uczoKIAogRnVuY3Rpb25zCi0tLS0tLS0tLS0KK15eXl5eXl5eXgogCiAKIC4uIGZ1bmN0aW9uOjogQ29tbWVudCh0ZXh0PU5vbmUpCkBAIC0xOTgsOCArMzgxLDcgQEAKIC4uIF9lbGVtZW50dHJlZS1lbGVtZW50LW9iamVjdHM6CiAKIEVsZW1lbnQgT2JqZWN0cwotLS0tLS0tLS0tLS0tLS0tCi0KK15eXl5eXl5eXl5eXl5eXgogCiAuLiBjbGFzczo6IEVsZW1lbnQodGFnLCBhdHRyaWI9e30sICoqZXh0cmEpCiAKQEAgLTI4MSwzNiArNDYzLDQzIEBACiAKICAgIC4uIG1ldGhvZDo6IGFwcGVuZChzdWJlbGVtZW50KQogCi0gICAgICBBZGRzIHRoZSBlbGVtZW50ICpzdWJlbGVtZW50KiB0byB0aGUgZW5kIG9mIHRoaXMgZWxlbWVudHMgaW50ZXJuYWwgbGlzdAotICAgICAgb2Ygc3ViZWxlbWVudHMuCisgICAgICBBZGRzIHRoZSBlbGVtZW50ICpzdWJlbGVtZW50KiB0byB0aGUgZW5kIG9mIHRoaXMgZWxlbWVudCdzIGludGVybmFsIGxpc3QKKyAgICAgIG9mIHN1YmVsZW1lbnRzLiAgUmFpc2VzIDpleGM6YFR5cGVFcnJvcmAgaWYgKnN1YmVsZW1lbnQqIGlzIG5vdCBhbgorICAgICAgOmNsYXNzOmBFbGVtZW50YC4KIAogCiAgICAuLiBtZXRob2Q6OiBleHRlbmQoc3ViZWxlbWVudHMpCiAKICAgICAgIEFwcGVuZHMgKnN1YmVsZW1lbnRzKiBmcm9tIGEgc2VxdWVuY2Ugb2JqZWN0IHdpdGggemVybyBvciBtb3JlIGVsZW1lbnRzLgotICAgICAgUmFpc2VzIDpleGM6YEFzc2VydGlvbkVycm9yYCBpZiBhIHN1YmVsZW1lbnQgaXMgbm90IGEgdmFsaWQgb2JqZWN0LgorICAgICAgUmFpc2VzIDpleGM6YFR5cGVFcnJvcmAgaWYgYSBzdWJlbGVtZW50IGlzIG5vdCBhbiA6Y2xhc3M6YEVsZW1lbnRgLgogCiAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogCi0gICAuLiBtZXRob2Q6OiBmaW5kKG1hdGNoKQorICAgLi4gbWV0aG9kOjogZmluZChtYXRjaCwgbmFtZXNwYWNlcz1Ob25lKQogCiAgICAgICBGaW5kcyB0aGUgZmlyc3Qgc3ViZWxlbWVudCBtYXRjaGluZyAqbWF0Y2gqLiAgKm1hdGNoKiBtYXkgYmUgYSB0YWcgbmFtZQotICAgICAgb3IgcGF0aC4gIFJldHVybnMgYW4gZWxlbWVudCBpbnN0YW5jZSBvciBgYE5vbmVgYC4KKyAgICAgIG9yIGEgOnJlZjpgcGF0aCA8ZWxlbWVudHRyZWUteHBhdGg+YC4gIFJldHVybnMgYW4gZWxlbWVudCBpbnN0YW5jZQorICAgICAgb3IgYGBOb25lYGAuICAqbmFtZXNwYWNlcyogaXMgYW4gb3B0aW9uYWwgbWFwcGluZyBmcm9tIG5hbWVzcGFjZSBwcmVmaXgKKyAgICAgIHRvIGZ1bGwgbmFtZS4KIAogCi0gICAuLiBtZXRob2Q6OiBmaW5kYWxsKG1hdGNoKQorICAgLi4gbWV0aG9kOjogZmluZGFsbChtYXRjaCwgbmFtZXNwYWNlcz1Ob25lKQogCi0gICAgICBGaW5kcyBhbGwgbWF0Y2hpbmcgc3ViZWxlbWVudHMsIGJ5IHRhZyBuYW1lIG9yIHBhdGguICBSZXR1cm5zIGEgbGlzdAotICAgICAgY29udGFpbmluZyBhbGwgbWF0Y2hpbmcgZWxlbWVudHMgaW4gZG9jdW1lbnQgb3JkZXIuCisgICAgICBGaW5kcyBhbGwgbWF0Y2hpbmcgc3ViZWxlbWVudHMsIGJ5IHRhZyBuYW1lIG9yCisgICAgICA6cmVmOmBwYXRoIDxlbGVtZW50dHJlZS14cGF0aD5gLiAgUmV0dXJucyBhIGxpc3QgY29udGFpbmluZyBhbGwgbWF0Y2hpbmcKKyAgICAgIGVsZW1lbnRzIGluIGRvY3VtZW50IG9yZGVyLiAgKm5hbWVzcGFjZXMqIGlzIGFuIG9wdGlvbmFsIG1hcHBpbmcgZnJvbQorICAgICAgbmFtZXNwYWNlIHByZWZpeCB0byBmdWxsIG5hbWUuCiAKIAotICAgLi4gbWV0aG9kOjogZmluZHRleHQobWF0Y2gsIGRlZmF1bHQ9Tm9uZSkKKyAgIC4uIG1ldGhvZDo6IGZpbmR0ZXh0KG1hdGNoLCBkZWZhdWx0PU5vbmUsIG5hbWVzcGFjZXM9Tm9uZSkKIAogICAgICAgRmluZHMgdGV4dCBmb3IgdGhlIGZpcnN0IHN1YmVsZW1lbnQgbWF0Y2hpbmcgKm1hdGNoKi4gICptYXRjaCogbWF5IGJlCi0gICAgICBhIHRhZyBuYW1lIG9yIHBhdGguICBSZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIGZpcnN0IG1hdGNoaW5nCi0gICAgICBlbGVtZW50LCBvciAqZGVmYXVsdCogaWYgbm8gZWxlbWVudCB3YXMgZm91bmQuICBOb3RlIHRoYXQgaWYgdGhlIG1hdGNoaW5nCi0gICAgICBlbGVtZW50IGhhcyBubyB0ZXh0IGNvbnRlbnQgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLgorICAgICAgYSB0YWcgbmFtZSBvciBhIDpyZWY6YHBhdGggPGVsZW1lbnR0cmVlLXhwYXRoPmAuICBSZXR1cm5zIHRoZSB0ZXh0IGNvbnRlbnQKKyAgICAgIG9mIHRoZSBmaXJzdCBtYXRjaGluZyBlbGVtZW50LCBvciAqZGVmYXVsdCogaWYgbm8gZWxlbWVudCB3YXMgZm91bmQuCisgICAgICBOb3RlIHRoYXQgaWYgdGhlIG1hdGNoaW5nIGVsZW1lbnQgaGFzIG5vIHRleHQgY29udGVudCBhbiBlbXB0eSBzdHJpbmcKKyAgICAgIGlzIHJldHVybmVkLiAqbmFtZXNwYWNlcyogaXMgYW4gb3B0aW9uYWwgbWFwcGluZyBmcm9tIG5hbWVzcGFjZSBwcmVmaXgKKyAgICAgIHRvIGZ1bGwgbmFtZS4KIAogCiAgICAuLiBtZXRob2Q6OiBnZXRjaGlsZHJlbigpCkBAIC0zMjUsOSArNTE0LDEwIEBACiAgICAgICAgICBVc2UgbWV0aG9kIDptZXRoOmBFbGVtZW50Lml0ZXJgIGluc3RlYWQuCiAKIAotICAgLi4gbWV0aG9kOjogaW5zZXJ0KGluZGV4LCBlbGVtZW50KQorICAgLi4gbWV0aG9kOjogaW5zZXJ0KGluZGV4LCBzdWJlbGVtZW50KQogCi0gICAgICBJbnNlcnRzIGEgc3ViZWxlbWVudCBhdCB0aGUgZ2l2ZW4gcG9zaXRpb24gaW4gdGhpcyBlbGVtZW50LgorICAgICAgSW5zZXJ0cyAqc3ViZWxlbWVudCogYXQgdGhlIGdpdmVuIHBvc2l0aW9uIGluIHRoaXMgZWxlbWVudC4gIFJhaXNlcworICAgICAgOmV4YzpgVHlwZUVycm9yYCBpZiAqc3ViZWxlbWVudCogaXMgbm90IGFuIDpjbGFzczpgRWxlbWVudGAuCiAKIAogICAgLi4gbWV0aG9kOjogaXRlcih0YWc9Tm9uZSkKQEAgLTM0MSwxMCArNTMxLDEzIEBACiAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIAogCi0gICAuLiBtZXRob2Q6OiBpdGVyZmluZChtYXRjaCkKKyAgIC4uIG1ldGhvZDo6IGl0ZXJmaW5kKG1hdGNoLCBuYW1lc3BhY2VzPU5vbmUpCiAKLSAgICAgIEZpbmRzIGFsbCBtYXRjaGluZyBzdWJlbGVtZW50cywgYnkgdGFnIG5hbWUgb3IgcGF0aC4gIFJldHVybnMgYW4gaXRlcmFibGUKLSAgICAgIHlpZWxkaW5nIGFsbCBtYXRjaGluZyBlbGVtZW50cyBpbiBkb2N1bWVudCBvcmRlci4KKyAgICAgIEZpbmRzIGFsbCBtYXRjaGluZyBzdWJlbGVtZW50cywgYnkgdGFnIG5hbWUgb3IKKyAgICAgIDpyZWY6YHBhdGggPGVsZW1lbnR0cmVlLXhwYXRoPmAuICBSZXR1cm5zIGFuIGl0ZXJhYmxlIHlpZWxkaW5nIGFsbAorICAgICAgbWF0Y2hpbmcgZWxlbWVudHMgaW4gZG9jdW1lbnQgb3JkZXIuICpuYW1lc3BhY2VzKiBpcyBhbiBvcHRpb25hbCBtYXBwaW5nCisgICAgICBmcm9tIG5hbWVzcGFjZSBwcmVmaXggdG8gZnVsbCBuYW1lLgorCiAKICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMgogCkBAIC0zODksNyArNTgyLDcgQEAKIC4uIF9lbGVtZW50dHJlZS1lbGVtZW50dHJlZS1vYmplY3RzOgogCiBFbGVtZW50VHJlZSBPYmplY3RzCi0tLS0tLS0tLS0tLS0tLS0tLS0tCiteXl5eXl5eXl5eXl5eXl5eXl5eCiAKIAogLi4gY2xhc3M6OiBFbGVtZW50VHJlZShlbGVtZW50PU5vbmUsIGZpbGU9Tm9uZSkKQEAgLTQwOSwyOCArNjAyLDE5IEBACiAgICAgICBjYXJlLiAgKmVsZW1lbnQqIGlzIGFuIGVsZW1lbnQgaW5zdGFuY2UuCiAKIAotICAgLi4gbWV0aG9kOjogZmluZChtYXRjaCkKKyAgIC4uIG1ldGhvZDo6IGZpbmQobWF0Y2gsIG5hbWVzcGFjZXM9Tm9uZSkKIAotICAgICAgRmluZHMgdGhlIGZpcnN0IHRvcGxldmVsIGVsZW1lbnQgbWF0Y2hpbmcgKm1hdGNoKi4gICptYXRjaCogbWF5IGJlIGEgdGFnCi0gICAgICBuYW1lIG9yIHBhdGguICBTYW1lIGFzIGdldHJvb3QoKS5maW5kKG1hdGNoKS4gIFJldHVybnMgdGhlIGZpcnN0IG1hdGNoaW5nCi0gICAgICBlbGVtZW50LCBvciBgYE5vbmVgYCBpZiBubyBlbGVtZW50IHdhcyBmb3VuZC4KKyAgICAgIFNhbWUgYXMgOm1ldGg6YEVsZW1lbnQuZmluZGAsIHN0YXJ0aW5nIGF0IHRoZSByb290IG9mIHRoZSB0cmVlLgogCiAKLSAgIC4uIG1ldGhvZDo6IGZpbmRhbGwobWF0Y2gpCisgICAuLiBtZXRob2Q6OiBmaW5kYWxsKG1hdGNoLCBuYW1lc3BhY2VzPU5vbmUpCiAKLSAgICAgIEZpbmRzIGFsbCBtYXRjaGluZyBzdWJlbGVtZW50cywgYnkgdGFnIG5hbWUgb3IgcGF0aC4gIFNhbWUgYXMKLSAgICAgIGdldHJvb3QoKS5maW5kYWxsKG1hdGNoKS4gICptYXRjaCogbWF5IGJlIGEgdGFnIG5hbWUgb3IgcGF0aC4gIFJldHVybnMgYQotICAgICAgbGlzdCBjb250YWluaW5nIGFsbCBtYXRjaGluZyBlbGVtZW50cywgaW4gZG9jdW1lbnQgb3JkZXIuCisgICAgICBTYW1lIGFzIDptZXRoOmBFbGVtZW50LmZpbmRhbGxgLCBzdGFydGluZyBhdCB0aGUgcm9vdCBvZiB0aGUgdHJlZS4KIAogCi0gICAuLiBtZXRob2Q6OiBmaW5kdGV4dChtYXRjaCwgZGVmYXVsdD1Ob25lKQorICAgLi4gbWV0aG9kOjogZmluZHRleHQobWF0Y2gsIGRlZmF1bHQ9Tm9uZSwgbmFtZXNwYWNlcz1Ob25lKQogCi0gICAgICBGaW5kcyB0aGUgZWxlbWVudCB0ZXh0IGZvciB0aGUgZmlyc3QgdG9wbGV2ZWwgZWxlbWVudCB3aXRoIGdpdmVuIHRhZy4KLSAgICAgIFNhbWUgYXMgZ2V0cm9vdCgpLmZpbmR0ZXh0KG1hdGNoKS4gICptYXRjaCogbWF5IGJlIGEgdGFnIG5hbWUgb3IgcGF0aC4KLSAgICAgICpkZWZhdWx0KiBpcyB0aGUgdmFsdWUgdG8gcmV0dXJuIGlmIHRoZSBlbGVtZW50IHdhcyBub3QgZm91bmQuICBSZXR1cm5zCi0gICAgICB0aGUgdGV4dCBjb250ZW50IG9mIHRoZSBmaXJzdCBtYXRjaGluZyBlbGVtZW50LCBvciB0aGUgZGVmYXVsdCB2YWx1ZSBubwotICAgICAgZWxlbWVudCB3YXMgZm91bmQuICBOb3RlIHRoYXQgaWYgdGhlIGVsZW1lbnQgaXMgZm91bmQsIGJ1dCBoYXMgbm8gdGV4dAotICAgICAgY29udGVudCwgdGhpcyBtZXRob2QgcmV0dXJucyBhbiBlbXB0eSBzdHJpbmcuCisgICAgICBTYW1lIGFzIDptZXRoOmBFbGVtZW50LmZpbmR0ZXh0YCwgc3RhcnRpbmcgYXQgdGhlIHJvb3Qgb2YgdGhlIHRyZWUuCiAKIAogICAgLi4gbWV0aG9kOjogZ2V0aXRlcmF0b3IodGFnPU5vbmUpCkBAIC00NTEsMTEgKzYzNSw5IEBACiAgICAgICB0byBsb29rIGZvciAoZGVmYXVsdCBpcyB0byByZXR1cm4gYWxsIGVsZW1lbnRzKQogCiAKLSAgIC4uIG1ldGhvZDo6IGl0ZXJmaW5kKG1hdGNoKQorICAgLi4gbWV0aG9kOjogaXRlcmZpbmQobWF0Y2gsIG5hbWVzcGFjZXM9Tm9uZSkKIAotICAgICAgRmluZHMgYWxsIG1hdGNoaW5nIHN1YmVsZW1lbnRzLCBieSB0YWcgbmFtZSBvciBwYXRoLiAgU2FtZSBhcwotICAgICAgZ2V0cm9vdCgpLml0ZXJmaW5kKG1hdGNoKS4gUmV0dXJucyBhbiBpdGVyYWJsZSB5aWVsZGluZyBhbGwgbWF0Y2hpbmcKLSAgICAgIGVsZW1lbnRzIGluIGRvY3VtZW50IG9yZGVyLgorICAgICAgU2FtZSBhcyA6bWV0aDpgRWxlbWVudC5pdGVyZmluZGAsIHN0YXJ0aW5nIGF0IHRoZSByb290IG9mIHRoZSB0cmVlLgogCiAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKIApAQCAtNDY0LDggKzY0Niw4IEBACiAKICAgICAgIExvYWRzIGFuIGV4dGVybmFsIFhNTCBzZWN0aW9uIGludG8gdGhpcyBlbGVtZW50IHRyZWUuICAqc291cmNlKiBpcyBhIGZpbGUKICAgICAgIG5hbWUgb3IgOnRlcm06YGZpbGUgb2JqZWN0YC4gICpwYXJzZXIqIGlzIGFuIG9wdGlvbmFsIHBhcnNlciBpbnN0YW5jZS4KLSAgICAgIElmIG5vdCBnaXZlbiwgdGhlIHN0YW5kYXJkIFhNTFBhcnNlciBwYXJzZXIgaXMgdXNlZC4gIFJldHVybnMgdGhlIHNlY3Rpb24KLSAgICAgIHJvb3QgZWxlbWVudC4KKyAgICAgIElmIG5vdCBnaXZlbiwgdGhlIHN0YW5kYXJkIDpjbGFzczpgWE1MUGFyc2VyYCBwYXJzZXIgaXMgdXNlZC4gIFJldHVybnMgdGhlCisgICAgICBzZWN0aW9uIHJvb3QgZWxlbWVudC4KIAogCiAgICAuLiBtZXRob2Q6OiB3cml0ZShmaWxlLCBlbmNvZGluZz0idXMtYXNjaWkiLCB4bWxfZGVjbGFyYXRpb249Tm9uZSwgbWV0aG9kPSJ4bWwiKQpAQCAtNTEwLDcgKzY5Miw3IEBACiAuLiBfZWxlbWVudHRyZWUtcW5hbWUtb2JqZWN0czoKIAogUU5hbWUgT2JqZWN0cwotLS0tLS0tLS0tLS0tLQorXl5eXl5eXl5eXl5eXgogCiAKIC4uIGNsYXNzOjogUU5hbWUodGV4dF9vcl91cmksIHRhZz1Ob25lKQpAQCAtNTI2LDcgKzcwOCw3IEBACiAuLiBfZWxlbWVudHRyZWUtdHJlZWJ1aWxkZXItb2JqZWN0czoKIAogVHJlZUJ1aWxkZXIgT2JqZWN0cwotLS0tLS0tLS0tLS0tLS0tLS0tLQorXl5eXl5eXl5eXl5eXl5eXl5eXgogCiAKIC4uIGNsYXNzOjogVHJlZUJ1aWxkZXIoZWxlbWVudF9mYWN0b3J5PU5vbmUpCkBAIC01MzQsOSArNzE2LDkgQEAKICAgIEdlbmVyaWMgZWxlbWVudCBzdHJ1Y3R1cmUgYnVpbGRlci4gIFRoaXMgYnVpbGRlciBjb252ZXJ0cyBhIHNlcXVlbmNlIG9mCiAgICBzdGFydCwgZGF0YSwgYW5kIGVuZCBtZXRob2QgY2FsbHMgdG8gYSB3ZWxsLWZvcm1lZCBlbGVtZW50IHN0cnVjdHVyZS4gIFlvdQogICAgY2FuIHVzZSB0aGlzIGNsYXNzIHRvIGJ1aWxkIGFuIGVsZW1lbnQgc3RydWN0dXJlIHVzaW5nIGEgY3VzdG9tIFhNTCBwYXJzZXIsCi0gICBvciBhIHBhcnNlciBmb3Igc29tZSBvdGhlciBYTUwtbGlrZSBmb3JtYXQuICBUaGUgKmVsZW1lbnRfZmFjdG9yeSogaXMgY2FsbGVkCi0gICB0byBjcmVhdGUgbmV3IDpjbGFzczpgRWxlbWVudGAgaW5zdGFuY2VzIHdoZW4gZ2l2ZW4uCi0KKyAgIG9yIGEgcGFyc2VyIGZvciBzb21lIG90aGVyIFhNTC1saWtlIGZvcm1hdC4gICplbGVtZW50X2ZhY3RvcnkqLCB3aGVuIGdpdmVuLAorICAgbXVzdCBiZSBhIGNhbGxhYmxlIGFjY2VwdGluZyB0d28gcG9zaXRpb25hbCBhcmd1bWVudHM6IGEgdGFnIGFuZAorICAgYSBkaWN0IG9mIGF0dHJpYnV0ZXMuICBJdCBpcyBleHBlY3RlZCB0byByZXR1cm4gYSBuZXcgZWxlbWVudCBpbnN0YW5jZS4KIAogICAgLi4gbWV0aG9kOjogY2xvc2UoKQogCkBAIC01NzcsNyArNzU5LDcgQEAKIC4uIF9lbGVtZW50dHJlZS14bWxwYXJzZXItb2JqZWN0czoKIAogWE1MUGFyc2VyIE9iamVjdHMKLS0tLS0tLS0tLS0tLS0tLS0tCiteXl5eXl5eXl5eXl5eXl5eXgogCiAKIC4uIGNsYXNzOjogWE1MUGFyc2VyKGh0bWw9MCwgdGFyZ2V0PU5vbmUsIGVuY29kaW5nPU5vbmUpCkBAIC01ODUsOSArNzY3LDkgQEAKICAgIDpjbGFzczpgRWxlbWVudGAgc3RydWN0dXJlIGJ1aWxkZXIgZm9yIFhNTCBzb3VyY2UgZGF0YSwgYmFzZWQgb24gdGhlIGV4cGF0CiAgICBwYXJzZXIuICAqaHRtbCogYXJlIHByZWRlZmluZWQgSFRNTCBlbnRpdGllcy4gIFRoaXMgZmxhZyBpcyBub3Qgc3VwcG9ydGVkIGJ5CiAgICB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbi4gICp0YXJnZXQqIGlzIHRoZSB0YXJnZXQgb2JqZWN0LiAgSWYgb21pdHRlZCwgdGhlCi0gICBidWlsZGVyIHVzZXMgYW4gaW5zdGFuY2Ugb2YgdGhlIHN0YW5kYXJkIFRyZWVCdWlsZGVyIGNsYXNzLiAgKmVuY29kaW5nKiBbMV1fCi0gICBpcyBvcHRpb25hbC4gIElmIGdpdmVuLCB0aGUgdmFsdWUgb3ZlcnJpZGVzIHRoZSBlbmNvZGluZyBzcGVjaWZpZWQgaW4gdGhlCi0gICBYTUwgZmlsZS4KKyAgIGJ1aWxkZXIgdXNlcyBhbiBpbnN0YW5jZSBvZiB0aGUgc3RhbmRhcmQgOmNsYXNzOmBUcmVlQnVpbGRlcmAgY2xhc3MuCisgICAqZW5jb2RpbmcqIFsxXV8gaXMgb3B0aW9uYWwuICBJZiBnaXZlbiwgdGhlIHZhbHVlIG92ZXJyaWRlcyB0aGUgZW5jb2RpbmcKKyAgIHNwZWNpZmllZCBpbiB0aGUgWE1MIGZpbGUuCiAKIAogICAgLi4gbWV0aG9kOjogY2xvc2UoKQpAQCAtNjQ1LDYgKzgyNywyNCBAQAogICAgID4+PiBwYXJzZXIuY2xvc2UoKQogICAgIDQKIAorRXhjZXB0aW9ucworXl5eXl5eXl5eXgorCisuLiBjbGFzczo6IFBhcnNlRXJyb3IKKworICAgWE1MIHBhcnNlIGVycm9yLCByYWlzZWQgYnkgdGhlIHZhcmlvdXMgcGFyc2luZyBtZXRob2RzIGluIHRoaXMgbW9kdWxlIHdoZW4KKyAgIHBhcnNpbmcgZmFpbHMuICBUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGluc3RhbmNlIG9mIHRoaXMgZXhjZXB0aW9uCisgICB3aWxsIGNvbnRhaW4gYSB1c2VyLWZyaWVuZGx5IGVycm9yIG1lc3NhZ2UuICBJbiBhZGRpdGlvbiwgaXQgd2lsbCBoYXZlCisgICB0aGUgZm9sbG93aW5nIGF0dHJpYnV0ZXMgYXZhaWxhYmxlOgorCisgICAuLiBhdHRyaWJ1dGU6OiBjb2RlCisKKyAgICAgIEEgbnVtZXJpYyBlcnJvciBjb2RlIGZyb20gdGhlIGV4cGF0IHBhcnNlci4gU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mCisgICAgICA6bW9kOmB4bWwucGFyc2Vycy5leHBhdGAgZm9yIHRoZSBsaXN0IG9mIGVycm9yIGNvZGVzIGFuZCB0aGVpciBtZWFuaW5ncy4KKworICAgLi4gYXR0cmlidXRlOjogcG9zaXRpb24KKworICAgICAgQSB0dXBsZSBvZiAqbGluZSosICpjb2x1bW4qIG51bWJlcnMsIHNwZWNpZnlpbmcgd2hlcmUgdGhlIGVycm9yIG9jY3VycmVkLgogCiAuLiBydWJyaWM6OiBGb290bm90ZXMKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkveG1sLnNheC51dGlscy5yc3QgYi9Eb2MvbGlicmFyeS94bWwuc2F4LnV0aWxzLnJzdAppbmRleCBmZjM2ZmQ4Li4wYTQwMzhjIDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS94bWwuc2F4LnV0aWxzLnJzdAorKysgYi9Eb2MvbGlicmFyeS94bWwuc2F4LnV0aWxzLnJzdApAQCAtNjIsNyArNjIsNyBAQAogICAgdGFncywgaWYgc2V0IHRvICpUcnVlKiB0aGV5IGFyZSBlbWl0dGVkIGFzIGEgc2luZ2xlIHNlbGYtY2xvc2VkIHRhZy4KIAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yCi0gICAgICBzaG9ydF9lbXB0eV9lbGVtZW50cworICAgICAgVGhlICpzaG9ydF9lbXB0eV9lbGVtZW50cyogcGFyYW1ldGVyLgogCiAKIC4uIGNsYXNzOjogWE1MRmlsdGVyQmFzZShiYXNlKQpkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkveG1scnBjLmNsaWVudC5yc3QgYi9Eb2MvbGlicmFyeS94bWxycGMuY2xpZW50LnJzdAppbmRleCBlNzI3NzBhLi4xODcxYzk5IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS94bWxycGMuY2xpZW50LnJzdAorKysgYi9Eb2MvbGlicmFyeS94bWxycGMuY2xpZW50LnJzdApAQCAtOCw3ICs4LDcgQEAKIAogCiAuLiBYWFggTm90IGV2ZXJ5dGhpbmcgaXMgZG9jdW1lbnRlZCB5ZXQuICBJdCBtaWdodCBiZSBnb29kIHRvIGRlc2NyaWJlCi0gICBNYXJzaGFsbGVyLCBVbm1hcnNoYWxsZXIsIGdldHBhcnNlciwgZHVtcHMsIGxvYWRzLCBhbmQgVHJhbnNwb3J0LgorICAgTWFyc2hhbGxlciwgVW5tYXJzaGFsbGVyLCBnZXRwYXJzZXIgYW5kIFRyYW5zcG9ydC4KIAogKipTb3VyY2UgY29kZToqKiA6c291cmNlOmBMaWIveG1scnBjL2NsaWVudC5weWAKIApAQCAtMjEsNyArMjEsMTIgQEAKIGJldHdlZW4gY29uZm9ybWFibGUgUHl0aG9uIG9iamVjdHMgYW5kIFhNTCBvbiB0aGUgd2lyZS4KIAogCi0uLiBjbGFzczo6IFNlcnZlclByb3h5KHVyaSwgdHJhbnNwb3J0PU5vbmUsIGVuY29kaW5nPU5vbmUsIHZlcmJvc2U9RmFsc2UsIGFsbG93X25vbmU9RmFsc2UsIHVzZV9kYXRldGltZT1GYWxzZSkKKy4uIGNsYXNzOjogU2VydmVyUHJveHkodXJpLCB0cmFuc3BvcnQ9Tm9uZSwgZW5jb2Rpbmc9Tm9uZSwgdmVyYm9zZT1GYWxzZSwgXAorICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19ub25lPUZhbHNlLCB1c2VfZGF0ZXRpbWU9RmFsc2UsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgdXNlX2J1aWx0aW5fdHlwZXM9RmFsc2UpCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGUgKnVzZV9idWlsdGluX3R5cGVzKiBmbGFnIHdhcyBhZGRlZC4KIAogICAgQSA6Y2xhc3M6YFNlcnZlclByb3h5YCBpbnN0YW5jZSBpcyBhbiBvYmplY3QgdGhhdCBtYW5hZ2VzIGNvbW11bmljYXRpb24gd2l0aCBhCiAgICByZW1vdGUgWE1MLVJQQyBzZXJ2ZXIuICBUaGUgcmVxdWlyZWQgZmlyc3QgYXJndW1lbnQgaXMgYSBVUkkgKFVuaWZvcm0gUmVzb3VyY2UKQEAgLTM0LDkgKzM5LDEzIEBACiAgICBYTUw7IHRoZSBkZWZhdWx0IGJlaGF2aW91ciBpcyBmb3IgYGBOb25lYGAgdG8gcmFpc2UgYSA6ZXhjOmBUeXBlRXJyb3JgLiBUaGlzIGlzCiAgICBhIGNvbW1vbmx5LXVzZWQgZXh0ZW5zaW9uIHRvIHRoZSBYTUwtUlBDIHNwZWNpZmljYXRpb24sIGJ1dCBpc24ndCBzdXBwb3J0ZWQgYnkKICAgIGFsbCBjbGllbnRzIGFuZCBzZXJ2ZXJzOyBzZWUgaHR0cDovL29udG9zeXMuY29tL3htbC1ycGMvZXh0ZW5zaW9ucy5waHAgZm9yIGEKLSAgIGRlc2NyaXB0aW9uLiAgVGhlICp1c2VfZGF0ZXRpbWUqIGZsYWcgY2FuIGJlIHVzZWQgdG8gY2F1c2UgZGF0ZS90aW1lIHZhbHVlcyB0bwotICAgYmUgcHJlc2VudGVkIGFzIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdHM7IHRoaXMgaXMgZmFsc2UgYnkgZGVmYXVsdC4KLSAgIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdHMgbWF5IGJlIHBhc3NlZCB0byBjYWxscy4KKyAgIGRlc2NyaXB0aW9uLiAgVGhlICp1c2VfYnVpbHRpbl90eXBlcyogZmxhZyBjYW4gYmUgdXNlZCB0byBjYXVzZSBkYXRlL3RpbWUgdmFsdWVzCisgICB0byBiZSBwcmVzZW50ZWQgYXMgOmNsYXNzOmBkYXRldGltZS5kYXRldGltZWAgb2JqZWN0cyBhbmQgYmluYXJ5IGRhdGEgdG8gYmUKKyAgIHByZXNlbnRlZCBhcyA6Y2xhc3M6YGJ5dGVzYCBvYmplY3RzOyB0aGlzIGZsYWcgaXMgZmFsc2UgYnkgZGVmYXVsdC4KKyAgIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZXRpbWVgIGFuZCA6Y2xhc3M6YGJ5dGVzYCBvYmplY3RzIG1heSBiZSBwYXNzZWQgdG8gY2FsbHMuCisKKyAgIFRoZSBvYnNvbGV0ZSAqdXNlX2RhdGV0aW1lKiBmbGFnIGlzIHNpbWlsYXIgdG8gKnVzZV9idWlsdGluX3R5cGVzKiBidXQgaXQKKyAgIGFwcGxpZXMgb25seSB0byBkYXRlL3RpbWUgdmFsdWVzLgogCiAgICBCb3RoIHRoZSBIVFRQIGFuZCBIVFRQUyB0cmFuc3BvcnRzIHN1cHBvcnQgdGhlIFVSTCBzeW50YXggZXh0ZW5zaW9uIGZvciBIVFRQCiAgICBCYXNpYyBBdXRoZW50aWNhdGlvbjogYGBodHRwOi8vdXNlcjpwYXNzQGhvc3Q6cG9ydC9wYXRoYGAuICBUaGUgIGBgdXNlcjpwYXNzYGAKQEAgLTc4LDEyICs4NywxMiBAQAogICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb25seSB0aGVpciAqX19kaWN0X18qIGF0dHJpYnV0ZSBpcyAgICAgICAgICB8CiAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0cmFuc21pdHRlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICAgfCA6Y29uc3Q6YGRhdGVzYCAgICAgICAgICAgICAgICAgIHwgaW4gc2Vjb25kcyBzaW5jZSB0aGUgZXBvY2ggKHBhc3MgaW4gYW4gICAgICB8Ci0gICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpbnN0YW5jZSBvZiB0aGUgOmNsYXNzOmBEYXRlVGltZWAgY2xhc3MpIG9yIHwKKyAgIHwgOmNvbnN0OmBkYXRlc2AgICAgICAgICAgICAgICAgICB8IEluIHNlY29uZHMgc2luY2UgdGhlIGVwb2NoLiAgUGFzcyBpbiBhbiAgICAgfAorICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaW5zdGFuY2Ugb2YgdGhlIDpjbGFzczpgRGF0ZVRpbWVgIGNsYXNzIG9yICB8CiAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZXRpbWVgIGluc3RhbmNlLiAgICAgIHwKICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotICAgfCA6Y29uc3Q6YGJpbmFyeSBkYXRhYCAgICAgICAgICAgIHwgcGFzcyBpbiBhbiBpbnN0YW5jZSBvZiB0aGUgOmNsYXNzOmBCaW5hcnlgICB8Ci0gICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB3cmFwcGVyIGNsYXNzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgIHwgOmNvbnN0OmBiaW5hcnkgZGF0YWAgICAgICAgICAgICB8IFBhc3MgaW4gYW4gaW5zdGFuY2Ugb2YgdGhlIDpjbGFzczpgQmluYXJ5YCAgfAorICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgd3JhcHBlciBjbGFzcyBvciBhIDpjbGFzczpgYnl0ZXNgIGluc3RhbmNlLiB8CiAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKIAogICAgVGhpcyBpcyB0aGUgZnVsbCBzZXQgb2YgZGF0YSB0eXBlcyBzdXBwb3J0ZWQgYnkgWE1MLVJQQy4gIE1ldGhvZCBjYWxscyBtYXkgYWxzbwpAQCAtOTgsOCArMTA3LDkgQEAKICAgIGVuc3VyZSB0aGF0IHRoZSBzdHJpbmcgaXMgZnJlZSBvZiBjaGFyYWN0ZXJzIHRoYXQgYXJlbid0IGFsbG93ZWQgaW4gWE1MLCBzdWNoIGFzCiAgICB0aGUgY29udHJvbCBjaGFyYWN0ZXJzIHdpdGggQVNDSUkgdmFsdWVzIGJldHdlZW4gMCBhbmQgMzEgKGV4Y2VwdCwgb2YgY291cnNlLAogICAgdGFiLCBuZXdsaW5lIGFuZCBjYXJyaWFnZSByZXR1cm4pOyBmYWlsaW5nIHRvIGRvIHRoaXMgd2lsbCByZXN1bHQgaW4gYW4gWE1MLVJQQwotICAgcmVxdWVzdCB0aGF0IGlzbid0IHdlbGwtZm9ybWVkIFhNTC4gIElmIHlvdSBoYXZlIHRvIHBhc3MgYXJiaXRyYXJ5IHN0cmluZ3MgdmlhCi0gICBYTUwtUlBDLCB1c2UgdGhlIDpjbGFzczpgQmluYXJ5YCB3cmFwcGVyIGNsYXNzIGRlc2NyaWJlZCBiZWxvdy4KKyAgIHJlcXVlc3QgdGhhdCBpc24ndCB3ZWxsLWZvcm1lZCBYTUwuICBJZiB5b3UgaGF2ZSB0byBwYXNzIGFyYml0cmFyeSBieXRlcworICAgdmlhIFhNTC1SUEMsIHVzZSB0aGUgOmNsYXNzOmBieXRlc2AgY2xhc3Mgb3IgdGhlIGNsYXNzOmBCaW5hcnlgIHdyYXBwZXIgY2xhc3MKKyAgIGRlc2NyaWJlZCBiZWxvdy4KIAogICAgOmNsYXNzOmBTZXJ2ZXJgIGlzIHJldGFpbmVkIGFzIGFuIGFsaWFzIGZvciA6Y2xhc3M6YFNlcnZlclByb3h5YCBmb3IgYmFja3dhcmRzCiAgICBjb21wYXRpYmlsaXR5LiAgTmV3IGNvZGUgc2hvdWxkIHVzZSA6Y2xhc3M6YFNlcnZlclByb3h5YC4KQEAgLTI0OSw3ICsyNTksNyBAQAogQmluYXJ5IE9iamVjdHMKIC0tLS0tLS0tLS0tLS0tCiAKLVRoaXMgY2xhc3MgbWF5IGJlIGluaXRpYWxpemVkIGZyb20gc3RyaW5nIGRhdGEgKHdoaWNoIG1heSBpbmNsdWRlIE5VTHMpLiBUaGUKK1RoaXMgY2xhc3MgbWF5IGJlIGluaXRpYWxpemVkIGZyb20gYnl0ZXMgZGF0YSAod2hpY2ggbWF5IGluY2x1ZGUgTlVMcykuIFRoZQogcHJpbWFyeSBhY2Nlc3MgdG8gdGhlIGNvbnRlbnQgb2YgYSA6Y2xhc3M6YEJpbmFyeWAgb2JqZWN0IGlzIHByb3ZpZGVkIGJ5IGFuCiBhdHRyaWJ1dGU6CiAKQEAgLTI1NywxNSArMjY3LDE1IEBACiAuLiBhdHRyaWJ1dGU6OiBCaW5hcnkuZGF0YQogCiAgICBUaGUgYmluYXJ5IGRhdGEgZW5jYXBzdWxhdGVkIGJ5IHRoZSA6Y2xhc3M6YEJpbmFyeWAgaW5zdGFuY2UuICBUaGUgZGF0YSBpcwotICAgcHJvdmlkZWQgYXMgYW4gOC1iaXQgc3RyaW5nLgorICAgcHJvdmlkZWQgYXMgYSA6Y2xhc3M6YGJ5dGVzYCBvYmplY3QuCiAKIDpjbGFzczpgQmluYXJ5YCBvYmplY3RzIGhhdmUgdGhlIGZvbGxvd2luZyBtZXRob2RzLCBzdXBwb3J0ZWQgbWFpbmx5IGZvcgogaW50ZXJuYWwgdXNlIGJ5IHRoZSBtYXJzaGFsbGluZy91bm1hcnNoYWxsaW5nIGNvZGU6CiAKIAotLi4gbWV0aG9kOjogQmluYXJ5LmRlY29kZShzdHJpbmcpCisuLiBtZXRob2Q6OiBCaW5hcnkuZGVjb2RlKGJ5dGVzKQogCi0gICBBY2NlcHQgYSBiYXNlNjQgc3RyaW5nIGFuZCBkZWNvZGUgaXQgYXMgdGhlIGluc3RhbmNlJ3MgbmV3IGRhdGEuCisgICBBY2NlcHQgYSBiYXNlNjQgOmNsYXNzOmBieXRlc2Agb2JqZWN0IGFuZCBkZWNvZGUgaXQgYXMgdGhlIGluc3RhbmNlJ3MgbmV3IGRhdGEuCiAKIAogLi4gbWV0aG9kOjogQmluYXJ5LmVuY29kZShvdXQpCkBAIC00NzEsMTQgKzQ4MSwyMSBAQAogICAgaXQgdmlhIGFuIGV4dGVuc2lvbiwgIHByb3ZpZGUgYSB0cnVlIHZhbHVlIGZvciAqYWxsb3dfbm9uZSouCiAKIAotLi4gZnVuY3Rpb246OiBsb2FkcyhkYXRhLCB1c2VfZGF0ZXRpbWU9RmFsc2UpCisuLiBmdW5jdGlvbjo6IGxvYWRzKGRhdGEsIHVzZV9kYXRldGltZT1GYWxzZSwgdXNlX2J1aWx0aW5fdHlwZXM9RmFsc2UpCiAKICAgIENvbnZlcnQgYW4gWE1MLVJQQyByZXF1ZXN0IG9yIHJlc3BvbnNlIGludG8gUHl0aG9uIG9iamVjdHMsIGEgYGAocGFyYW1zLAogICAgbWV0aG9kbmFtZSlgYC4gICpwYXJhbXMqIGlzIGEgdHVwbGUgb2YgYXJndW1lbnQ7ICptZXRob2RuYW1lKiBpcyBhIHN0cmluZywgb3IKICAgIGBgTm9uZWBgIGlmIG5vIG1ldGhvZCBuYW1lIGlzIHByZXNlbnQgaW4gdGhlIHBhY2tldC4gSWYgdGhlIFhNTC1SUEMgcGFja2V0CiAgICByZXByZXNlbnRzIGEgZmF1bHQgY29uZGl0aW9uLCB0aGlzIGZ1bmN0aW9uIHdpbGwgcmFpc2UgYSA6ZXhjOmBGYXVsdGAgZXhjZXB0aW9uLgotICAgVGhlICp1c2VfZGF0ZXRpbWUqIGZsYWcgY2FuIGJlIHVzZWQgdG8gY2F1c2UgZGF0ZS90aW1lIHZhbHVlcyB0byBiZSBwcmVzZW50ZWQgYXMKLSAgIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdHM7IHRoaXMgaXMgZmFsc2UgYnkgZGVmYXVsdC4KKyAgIFRoZSAqdXNlX2J1aWx0aW5fdHlwZXMqIGZsYWcgY2FuIGJlIHVzZWQgdG8gY2F1c2UgZGF0ZS90aW1lIHZhbHVlcyB0byBiZQorICAgcHJlc2VudGVkIGFzIDpjbGFzczpgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdHMgYW5kIGJpbmFyeSBkYXRhIHRvIGJlCisgICBwcmVzZW50ZWQgYXMgOmNsYXNzOmBieXRlc2Agb2JqZWN0czsgdGhpcyBmbGFnIGlzIGZhbHNlIGJ5IGRlZmF1bHQuCisKKyAgIFRoZSBvYnNvbGV0ZSAqdXNlX2RhdGV0aW1lKiBmbGFnIGlzIHNpbWlsYXIgdG8gKnVzZV9idWlsdGluX3R5cGVzKiBidXQgaXQKKyAgIGFwcGxpZXMgb25seSB0byBkYXRlL3RpbWUgdmFsdWVzLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhlICp1c2VfYnVpbHRpbl90eXBlcyogZmxhZyB3YXMgYWRkZWQuCiAKIAogLi4gX3htbHJwYy1jbGllbnQtZXhhbXBsZToKZGlmZiAtLWdpdCBhL0RvYy9saWJyYXJ5L3htbHJwYy5zZXJ2ZXIucnN0IGIvRG9jL2xpYnJhcnkveG1scnBjLnNlcnZlci5yc3QKaW5kZXggNjdmZWJhNi4uNjQ5M2ZkNCAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkveG1scnBjLnNlcnZlci5yc3QKKysrIGIvRG9jL2xpYnJhcnkveG1scnBjLnNlcnZlci5yc3QKQEAgLTE2LDcgKzE2LDkgQEAKIDpjbGFzczpgQ0dJWE1MUlBDUmVxdWVzdEhhbmRsZXJgLgogCiAKLS4uIGNsYXNzOjogU2ltcGxlWE1MUlBDU2VydmVyKGFkZHIsIHJlcXVlc3RIYW5kbGVyPVNpbXBsZVhNTFJQQ1JlcXVlc3RIYW5kbGVyLCBsb2dSZXF1ZXN0cz1UcnVlLCBhbGxvd19ub25lPUZhbHNlLCBlbmNvZGluZz1Ob25lLCBiaW5kX2FuZF9hY3RpdmF0ZT1UcnVlKQorLi4gY2xhc3M6OiBTaW1wbGVYTUxSUENTZXJ2ZXIoYWRkciwgcmVxdWVzdEhhbmRsZXI9U2ltcGxlWE1MUlBDUmVxdWVzdEhhbmRsZXIsXAorICAgICAgICAgICAgICAgbG9nUmVxdWVzdHM9VHJ1ZSwgYWxsb3dfbm9uZT1GYWxzZSwgZW5jb2Rpbmc9Tm9uZSxcCisgICAgICAgICAgICAgICBiaW5kX2FuZF9hY3RpdmF0ZT1UcnVlLCB1c2VfYnVpbHRpbl90eXBlcz1GYWxzZSkKIAogICAgQ3JlYXRlIGEgbmV3IHNlcnZlciBpbnN0YW5jZS4gIFRoaXMgY2xhc3MgcHJvdmlkZXMgbWV0aG9kcyBmb3IgcmVnaXN0cmF0aW9uIG9mCiAgICBmdW5jdGlvbnMgdGhhdCBjYW4gYmUgY2FsbGVkIGJ5IHRoZSBYTUwtUlBDIHByb3RvY29sLiAgVGhlICpyZXF1ZXN0SGFuZGxlcioKQEAgLTI1LDE4ICsyNywzMSBAQAogICAgYXJlIHBhc3NlZCB0byB0aGUgOmNsYXNzOmBzb2NrZXRzZXJ2ZXIuVENQU2VydmVyYCBjb25zdHJ1Y3Rvci4gIElmICpsb2dSZXF1ZXN0cyoKICAgIGlzIHRydWUgKHRoZSBkZWZhdWx0KSwgcmVxdWVzdHMgd2lsbCBiZSBsb2dnZWQ7IHNldHRpbmcgdGhpcyBwYXJhbWV0ZXIgdG8gZmFsc2UKICAgIHdpbGwgdHVybiBvZmYgbG9nZ2luZy4gICBUaGUgKmFsbG93X25vbmUqIGFuZCAqZW5jb2RpbmcqIHBhcmFtZXRlcnMgYXJlIHBhc3NlZAotICAgb24gdG8gIDptb2Q6YHhtbHJwYy5jbGllbnRgIGFuZCBjb250cm9sIHRoZSBYTUwtUlBDIHJlc3BvbnNlcyB0aGF0IHdpbGwgYmUgcmV0dXJuZWQKKyAgIG9uIHRvIDptb2Q6YHhtbHJwYy5jbGllbnRgIGFuZCBjb250cm9sIHRoZSBYTUwtUlBDIHJlc3BvbnNlcyB0aGF0IHdpbGwgYmUgcmV0dXJuZWQKICAgIGZyb20gdGhlIHNlcnZlci4gVGhlICpiaW5kX2FuZF9hY3RpdmF0ZSogcGFyYW1ldGVyIGNvbnRyb2xzIHdoZXRoZXIKICAgIDptZXRoOmBzZXJ2ZXJfYmluZGAgYW5kIDptZXRoOmBzZXJ2ZXJfYWN0aXZhdGVgIGFyZSBjYWxsZWQgaW1tZWRpYXRlbHkgYnkgdGhlCiAgICBjb25zdHJ1Y3RvcjsgaXQgZGVmYXVsdHMgdG8gdHJ1ZS4gU2V0dGluZyBpdCB0byBmYWxzZSBhbGxvd3MgY29kZSB0byBtYW5pcHVsYXRlCiAgICB0aGUgKmFsbG93X3JldXNlX2FkZHJlc3MqIGNsYXNzIHZhcmlhYmxlIGJlZm9yZSB0aGUgYWRkcmVzcyBpcyBib3VuZC4KKyAgIFRoZSAqdXNlX2J1aWx0aW5fdHlwZXMqIHBhcmFtZXRlciBpcyBwYXNzZWQgdG8gdGhlCisgICA6ZnVuYzpgfnhtbHJwYy5jbGllbnQubG9hZHNgIGZ1bmN0aW9uIGFuZCBjb250cm9scyB3aGljaCB0eXBlcyBhcmUgcHJvY2Vzc2VkCisgICB3aGVuIGRhdGUvdGltZXMgdmFsdWVzIG9yIGJpbmFyeSBkYXRhIGFyZSByZWNlaXZlZDsgaXQgZGVmYXVsdHMgdG8gZmFsc2UuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGUgKnVzZV9idWlsdGluX3R5cGVzKiBmbGFnIHdhcyBhZGRlZC4KIAogCi0uLiBjbGFzczo6IENHSVhNTFJQQ1JlcXVlc3RIYW5kbGVyKGFsbG93X25vbmU9RmFsc2UsIGVuY29kaW5nPU5vbmUpCisuLiBjbGFzczo6IENHSVhNTFJQQ1JlcXVlc3RIYW5kbGVyKGFsbG93X25vbmU9RmFsc2UsIGVuY29kaW5nPU5vbmUsXAorICAgICAgICAgICAgICAgdXNlX2J1aWx0aW5fdHlwZXM9RmFsc2UpCiAKICAgIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSB0byBoYW5kbGUgWE1MLVJQQyByZXF1ZXN0cyBpbiBhIENHSSBlbnZpcm9ubWVudC4gIFRoZQogICAgKmFsbG93X25vbmUqIGFuZCAqZW5jb2RpbmcqIHBhcmFtZXRlcnMgYXJlIHBhc3NlZCBvbiB0byA6bW9kOmB4bWxycGMuY2xpZW50YAogICAgYW5kIGNvbnRyb2wgdGhlIFhNTC1SUEMgcmVzcG9uc2VzIHRoYXQgd2lsbCBiZSByZXR1cm5lZCBmcm9tIHRoZSBzZXJ2ZXIuCisgICBUaGUgKnVzZV9idWlsdGluX3R5cGVzKiBwYXJhbWV0ZXIgaXMgcGFzc2VkIHRvIHRoZQorICAgOmZ1bmM6YH54bWxycGMuY2xpZW50LmxvYWRzYCBmdW5jdGlvbiBhbmQgY29udHJvbHMgd2hpY2ggdHlwZXMgYXJlIHByb2Nlc3NlZAorICAgd2hlbiBkYXRlL3RpbWVzIHZhbHVlcyBvciBiaW5hcnkgZGF0YSBhcmUgcmVjZWl2ZWQ7IGl0IGRlZmF1bHRzIHRvIGZhbHNlLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgVGhlICp1c2VfYnVpbHRpbl90eXBlcyogZmxhZyB3YXMgYWRkZWQuCiAKIAogLi4gY2xhc3M6OiBTaW1wbGVYTUxSUENSZXF1ZXN0SGFuZGxlcigpCkBAIC0yMzMsMTIgKzI0OCwxNyBAQAogOmNsYXNzOmBEb2NDR0lYTUxSUENSZXF1ZXN0SGFuZGxlcmAuCiAKIAotLi4gY2xhc3M6OiBEb2NYTUxSUENTZXJ2ZXIoYWRkciwgcmVxdWVzdEhhbmRsZXI9RG9jWE1MUlBDUmVxdWVzdEhhbmRsZXIsIGxvZ1JlcXVlc3RzPVRydWUsIGFsbG93X25vbmU9RmFsc2UsIGVuY29kaW5nPU5vbmUsIGJpbmRfYW5kX2FjdGl2YXRlPVRydWUpCisuLiBjbGFzczo6IERvY1hNTFJQQ1NlcnZlcihhZGRyLCByZXF1ZXN0SGFuZGxlcj1Eb2NYTUxSUENSZXF1ZXN0SGFuZGxlcixcCisgICAgICAgICAgICAgICBsb2dSZXF1ZXN0cz1UcnVlLCBhbGxvd19ub25lPUZhbHNlLCBlbmNvZGluZz1Ob25lLFwKKyAgICAgICAgICAgICAgIGJpbmRfYW5kX2FjdGl2YXRlPVRydWUsIHVzZV9idWlsdGluX3R5cGVzPVRydWUpCiAKICAgIENyZWF0ZSBhIG5ldyBzZXJ2ZXIgaW5zdGFuY2UuIEFsbCBwYXJhbWV0ZXJzIGhhdmUgdGhlIHNhbWUgbWVhbmluZyBhcyBmb3IKICAgIDpjbGFzczpgU2ltcGxlWE1MUlBDU2VydmVyYDsgKnJlcXVlc3RIYW5kbGVyKiBkZWZhdWx0cyB0bwogICAgOmNsYXNzOmBEb2NYTUxSUENSZXF1ZXN0SGFuZGxlcmAuCiAKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBUaGUgKnVzZV9idWlsdGluX3R5cGVzKiBmbGFnIHdhcyBhZGRlZC4KKwogCiAuLiBjbGFzczo6IERvY0NHSVhNTFJQQ1JlcXVlc3RIYW5kbGVyKCkKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvemlwZmlsZS5yc3QgYi9Eb2MvbGlicmFyeS96aXBmaWxlLnJzdAppbmRleCBiY2VjMTM0Li40MDlkZTQ0IDEwMDY0NAotLS0gYS9Eb2MvbGlicmFyeS96aXBmaWxlLnJzdAorKysgYi9Eb2MvbGlicmFyeS96aXBmaWxlLnJzdApAQCAtODcsNyArODcsMzAgQEAKIC4uIGRhdGE6OiBaSVBfREVGTEFURUQKIAogICAgVGhlIG51bWVyaWMgY29uc3RhbnQgZm9yIHRoZSB1c3VhbCBaSVAgY29tcHJlc3Npb24gbWV0aG9kLiAgVGhpcyByZXF1aXJlcyB0aGUKLSAgIHpsaWIgbW9kdWxlLiAgTm8gb3RoZXIgY29tcHJlc3Npb24gbWV0aG9kcyBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4KKyAgIHpsaWIgbW9kdWxlLgorCisKKy4uIGRhdGE6OiBaSVBfQlpJUDIKKworICAgVGhlIG51bWVyaWMgY29uc3RhbnQgZm9yIHRoZSBCWklQMiBjb21wcmVzc2lvbiBtZXRob2QuICBUaGlzIHJlcXVpcmVzIHRoZQorICAgYnoyIG1vZHVsZS4KKworICAgLi4gdmVyc2lvbmFkZGVkOjogMy4zCisKKy4uIGRhdGE6OiBaSVBfTFpNQQorCisgICBUaGUgbnVtZXJpYyBjb25zdGFudCBmb3IgdGhlIExaTUEgY29tcHJlc3Npb24gbWV0aG9kLiAgVGhpcyByZXF1aXJlcyB0aGUKKyAgIGx6bWEgbW9kdWxlLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworICAgLi4gbm90ZTo6CisKKyAgICAgIFRoZSBaSVAgZmlsZSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBoYXMgaW5jbHVkZWQgc3VwcG9ydCBmb3IgYnppcDIgY29tcHJlc3Npb24KKyAgICAgIHNpbmNlIDIwMDEsIGFuZCBmb3IgTFpNQSBjb21wcmVzc2lvbiBzaW5jZSAyMDA2LiBIb3dldmVyLCBzb21lIHRvb2xzCisgICAgICAoaW5jbHVkaW5nIG9sZGVyIFB5dGhvbiByZWxlYXNlcykgZG8gbm90IHN1cHBvcnQgdGhlc2UgY29tcHJlc3Npb24KKyAgICAgIG1ldGhvZHMsIGFuZCBtYXkgZWl0aGVyIHJlZnVzZSB0byBwcm9jZXNzIHRoZSBaSVAgZmlsZSBhbHRvZ2V0aGVyLAorICAgICAgb3IgZmFpbCB0byBleHRyYWN0IGluZGl2aWR1YWwgZmlsZXMuCiAKIAogLi4gc2VlYWxzbzo6CkBAIC0xMTgsOSArMTQxLDExIEBACiAgICBhZGRpbmcgYSBaSVAgYXJjaGl2ZSB0byBhbm90aGVyIGZpbGUgKHN1Y2ggYXMgOmZpbGU6YHB5dGhvbi5leGVgKS4gIElmCiAgICAqbW9kZSogaXMgYGBhYGAgYW5kIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0IGF0IGFsbCwgaXQgaXMgY3JlYXRlZC4KICAgICpjb21wcmVzc2lvbiogaXMgdGhlIFpJUCBjb21wcmVzc2lvbiBtZXRob2QgdG8gdXNlIHdoZW4gd3JpdGluZyB0aGUgYXJjaGl2ZSwKLSAgIGFuZCBzaG91bGQgYmUgOmNvbnN0OmBaSVBfU1RPUkVEYCBvciA6Y29uc3Q6YFpJUF9ERUZMQVRFRGA7IHVucmVjb2duaXplZAotICAgdmFsdWVzIHdpbGwgY2F1c2UgOmV4YzpgUnVudGltZUVycm9yYCB0byBiZSByYWlzZWQuICBJZiA6Y29uc3Q6YFpJUF9ERUZMQVRFRGAKLSAgIGlzIHNwZWNpZmllZCBidXQgdGhlIDptb2Q6YHpsaWJgIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlLCA6ZXhjOmBSdW50aW1lRXJyb3JgCisgICBhbmQgc2hvdWxkIGJlIDpjb25zdDpgWklQX1NUT1JFRGAsIDpjb25zdDpgWklQX0RFRkxBVEVEYCwKKyAgIDpjb25zdDpgWklQX0JaSVAyYCBvciA6Y29uc3Q6YFpJUF9MWk1BYDsgdW5yZWNvZ25pemVkCisgICB2YWx1ZXMgd2lsbCBjYXVzZSA6ZXhjOmBSdW50aW1lRXJyb3JgIHRvIGJlIHJhaXNlZC4gIElmIDpjb25zdDpgWklQX0RFRkxBVEVEYCwKKyAgIDpjb25zdDpgWklQX0JaSVAyYCBvciA6Y29uc3Q6YFpJUF9MWk1BYCBpcyBzcGVjaWZpZWQgYnV0IHRoZSBjb3JyZXNwb25kZWQgbW9kdWxlCisgICAoOm1vZDpgemxpYmAsIDptb2Q6YGJ6MmAgb3IgOm1vZDpgbHptYWApIGlzIG5vdCBhdmFpbGFibGUsIDpleGM6YFJ1bnRpbWVFcnJvcmAKICAgIGlzIGFsc28gcmFpc2VkLiBUaGUgZGVmYXVsdCBpcyA6Y29uc3Q6YFpJUF9TVE9SRURgLiAgSWYgKmFsbG93WmlwNjQqIGlzCiAgICBgYFRydWVgYCB6aXBmaWxlIHdpbGwgY3JlYXRlIFpJUCBmaWxlcyB0aGF0IHVzZSB0aGUgWklQNjQgZXh0ZW5zaW9ucyB3aGVuCiAgICB0aGUgemlwZmlsZSBpcyBsYXJnZXIgdGhhbiAyIEdCLiBJZiBpdCBpcyAgZmFsc2UgKHRoZSBkZWZhdWx0KSA6bW9kOmB6aXBmaWxlYApAQCAtMTQzLDYgKzE2OCw5IEBACiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjIKICAgICAgIEFkZGVkIHRoZSBhYmlsaXR5IHRvIHVzZSA6Y2xhc3M6YFppcEZpbGVgIGFzIGEgY29udGV4dCBtYW5hZ2VyLgogCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgc3VwcG9ydCBmb3IgOm1vZDpgYnppcDJgIGFuZCA6bW9kOmBsem1hYCBjb21wcmVzc2lvbi4KKwogCiAuLiBtZXRob2Q6OiBaaXBGaWxlLmNsb3NlKCkKIApkaWZmIC0tZ2l0IGEvRG9jL2xpYnJhcnkvemlwaW1wb3J0LnJzdCBiL0RvYy9saWJyYXJ5L3ppcGltcG9ydC5yc3QKaW5kZXggNGYxNzA5Mi4uYjQ3YzM1YiAxMDA2NDQKLS0tIGEvRG9jL2xpYnJhcnkvemlwaW1wb3J0LnJzdAorKysgYi9Eb2MvbGlicmFyeS96aXBpbXBvcnQucnN0CkBAIC04NSw5ICs4NSwxMiBAQAogCiAgICAuLiBtZXRob2Q6OiBnZXRfZGF0YShwYXRobmFtZSkKIAotICAgICAgUmV0dXJuIHRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCAqcGF0aG5hbWUqLiBSYWlzZSA6ZXhjOmBJT0Vycm9yYCBpZiB0aGUKKyAgICAgIFJldHVybiB0aGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggKnBhdGhuYW1lKi4gUmFpc2UgOmV4YzpgT1NFcnJvcmAgaWYgdGhlCiAgICAgICBmaWxlIHdhc24ndCBmb3VuZC4KIAorICAgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICAgIDpleGM6YElPRXJyb3JgIHVzZWQgdG8gYmUgcmFpc2VkIGluc3RlYWQgb2YgOmV4YzpgT1NFcnJvcmAuCisKIAogICAgLi4gbWV0aG9kOjogZ2V0X2ZpbGVuYW1lKGZ1bGxuYW1lKQogCmRpZmYgLS1naXQgYS9Eb2MvbGlicmFyeS96bGliLnJzdCBiL0RvYy9saWJyYXJ5L3psaWIucnN0CmluZGV4IDg5N2Q5MTkuLjQyNTM1YTAgMTAwNjQ0Ci0tLSBhL0RvYy9saWJyYXJ5L3psaWIucnN0CisrKyBiL0RvYy9saWJyYXJ5L3psaWIucnN0CkBAIC01OCwxMiArNTgsMzcgQEAKICAgIGV4Y2VwdGlvbiBpZiBhbnkgZXJyb3Igb2NjdXJzLgogCiAKLS4uIGZ1bmN0aW9uOjogY29tcHJlc3NvYmooW2xldmVsXSkKKy4uIGZ1bmN0aW9uOjogY29tcHJlc3NvYmoobGV2ZWw9LTEsIG1ldGhvZD1ERUZMQVRFRCwgd2JpdHM9MTUsIG1lbWxldmVsPTgsIHN0cmF0ZWd5PVpfREVGQVVMVF9TVFJBVEVHWVssIHpkaWN0XSkKIAogICAgUmV0dXJucyBhIGNvbXByZXNzaW9uIG9iamVjdCwgdG8gYmUgdXNlZCBmb3IgY29tcHJlc3NpbmcgZGF0YSBzdHJlYW1zIHRoYXQgd29uJ3QKLSAgIGZpdCBpbnRvIG1lbW9yeSBhdCBvbmNlLiAgKmxldmVsKiBpcyBhbiBpbnRlZ2VyIGZyb20gYGAxYGAgdG8gYGA5YGAgY29udHJvbGxpbmcKLSAgIHRoZSBsZXZlbCBvZiBjb21wcmVzc2lvbjsgYGAxYGAgaXMgZmFzdGVzdCBhbmQgcHJvZHVjZXMgdGhlIGxlYXN0IGNvbXByZXNzaW9uLAotICAgYGA5YGAgaXMgc2xvd2VzdCBhbmQgcHJvZHVjZXMgdGhlIG1vc3QuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgYDZgYC4KKyAgIGZpdCBpbnRvIG1lbW9yeSBhdCBvbmNlLgorCisgICAqbGV2ZWwqIGlzIHRoZSBjb21wcmVzc2lvbiBsZXZlbCAtLSBhbiBpbnRlZ2VyIGZyb20gYGAxYGAgdG8gYGA5YGAuIEEgdmFsdWUKKyAgIG9mIGBgMWBgIGlzIGZhc3Rlc3QgYW5kIHByb2R1Y2VzIHRoZSBsZWFzdCBjb21wcmVzc2lvbiwgd2hpbGUgYSB2YWx1ZSBvZgorICAgYGA5YGAgaXMgc2xvd2VzdCBhbmQgcHJvZHVjZXMgdGhlIG1vc3QuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBgNmBgLgorCisgICAqbWV0aG9kKiBpcyB0aGUgY29tcHJlc3Npb24gYWxnb3JpdGhtLiBDdXJyZW50bHksIHRoZSBvbmx5IHN1cHBvcnRlZCB2YWx1ZSBpcworICAgYGBERUZMQVRFRGBgLgorCisgICAqd2JpdHMqIGlzIHRoZSBiYXNlIHR3byBsb2dhcml0aG0gb2YgdGhlIHNpemUgb2YgdGhlIHdpbmRvdyBidWZmZXIuIFRoaXMKKyAgIHNob3VsZCBiZSBhbiBpbnRlZ2VyIGZyb20gYGA4YGAgdG8gYGAxNWBgLiBIaWdoZXIgdmFsdWVzIGdpdmUgYmV0dGVyCisgICBjb21wcmVzc2lvbiwgYnV0IHVzZSBtb3JlIG1lbW9yeS4KKworICAgKm1lbWxldmVsKiBjb250cm9scyB0aGUgYW1vdW50IG9mIG1lbW9yeSB1c2VkIGZvciBpbnRlcm5hbCBjb21wcmVzc2lvbiBzdGF0ZS4KKyAgIFZhbGlkIHZhbHVlcyByYW5nZSBmcm9tIGBgMWBgIHRvIGBgOWBgLiBIaWdoZXIgdmFsdWVzIHVzaW5nIG1vcmUgbWVtb3J5LAorICAgYnV0IGFyZSBmYXN0ZXIgYW5kIHByb2R1Y2Ugc21hbGxlciBvdXRwdXQuCisKKyAgICpzdHJhdGVneSogaXMgdXNlZCB0byB0dW5lIHRoZSBjb21wcmVzc2lvbiBhbGdvcml0aG0uIFBvc3NpYmxlIHZhbHVlcyBhcmUKKyAgIGBgWl9ERUZBVUxUX1NUUkFURUdZYGAsIGBgWl9GSUxURVJFRGBgLCBhbmQgYGBaX0hVRkZNQU5fT05MWWBgLgorCisgICAqemRpY3QqIGlzIGEgcHJlZGVmaW5lZCBjb21wcmVzc2lvbiBkaWN0aW9uYXJ5LiBUaGlzIGlzIGEgc2VxdWVuY2Ugb2YgYnl0ZXMKKyAgIChzdWNoIGFzIGEgOmNsYXNzOmBieXRlc2Agb2JqZWN0KSBjb250YWluaW5nIHN1YnNlcXVlbmNlcyB0aGF0IGFyZSBleHBlY3RlZAorICAgdG8gb2NjdXIgZnJlcXVlbnRseSBpbiB0aGUgZGF0YSB0aGF0IGlzIHRvIGJlIGNvbXByZXNzZWQuIFRob3NlIHN1YnNlcXVlbmNlcworICAgdGhhdCBhcmUgZXhwZWN0ZWQgdG8gYmUgbW9zdCBjb21tb24gc2hvdWxkIGNvbWUgYXQgdGhlIGVuZCBvZiB0aGUgZGljdGlvbmFyeS4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEFkZGVkIHRoZSAqbWV0aG9kKiwgKndiaXRzKiwgKm1lbWxldmVsKiwgKnN0cmF0ZWd5KiBhbmQgKnpkaWN0KgorICAgICAgcGFyYW1ldGVycy4KIAogCiAuLiBmdW5jdGlvbjo6IGNyYzMyKGRhdGFbLCB2YWx1ZV0pCkBAIC04MiwxMiArMTA3LDEzIEBACiAKICAgIEFsd2F5cyByZXR1cm5zIGFuIHVuc2lnbmVkIDMyLWJpdCBpbnRlZ2VyLgogCi0uLiBub3RlOjoKLSAgIFRvIGdlbmVyYXRlIHRoZSBzYW1lIG51bWVyaWMgdmFsdWUgYWNyb3NzIGFsbCBQeXRob24gdmVyc2lvbnMgYW5kCi0gICBwbGF0Zm9ybXMgdXNlIGNyYzMyKGRhdGEpICYgMHhmZmZmZmZmZi4gIElmIHlvdSBhcmUgb25seSB1c2luZwotICAgdGhlIGNoZWNrc3VtIGluIHBhY2tlZCBiaW5hcnkgZm9ybWF0IHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBhcyB0aGUKLSAgIHJldHVybiB2YWx1ZSBpcyB0aGUgY29ycmVjdCAzMmJpdCBiaW5hcnkgcmVwcmVzZW50YXRpb24KLSAgIHJlZ2FyZGxlc3Mgb2Ygc2lnbi4KKyAgIC4uIG5vdGU6OgorCisgICAgICBUbyBnZW5lcmF0ZSB0aGUgc2FtZSBudW1lcmljIHZhbHVlIGFjcm9zcyBhbGwgUHl0aG9uIHZlcnNpb25zIGFuZAorICAgICAgcGxhdGZvcm1zLCB1c2UgYGBjcmMzMihkYXRhKSAmIDB4ZmZmZmZmZmZgYC4gIElmIHlvdSBhcmUgb25seSB1c2luZworICAgICAgdGhlIGNoZWNrc3VtIGluIHBhY2tlZCBiaW5hcnkgZm9ybWF0IHRoaXMgaXMgbm90IG5lY2Vzc2FyeSBhcyB0aGUKKyAgICAgIHJldHVybiB2YWx1ZSBpcyB0aGUgY29ycmVjdCAzMi1iaXQgYmluYXJ5IHJlcHJlc2VudGF0aW9uCisgICAgICByZWdhcmRsZXNzIG9mIHNpZ24uCiAKIAogLi4gZnVuY3Rpb246OiBkZWNvbXByZXNzKGRhdGFbLCB3Yml0c1ssIGJ1ZnNpemVdXSkKQEAgLTExNCwxMSArMTQwLDI2IEBACiAgICB0byA6YzpmdW5jOmBtYWxsb2NgLiAgVGhlIGRlZmF1bHQgc2l6ZSBpcyAxNjM4NC4KIAogCi0uLiBmdW5jdGlvbjo6IGRlY29tcHJlc3NvYmooW3diaXRzXSkKKy4uIGZ1bmN0aW9uOjogZGVjb21wcmVzc29iaih3Yml0cz0xNVssIHpkaWN0XSkKIAogICAgUmV0dXJucyBhIGRlY29tcHJlc3Npb24gb2JqZWN0LCB0byBiZSB1c2VkIGZvciBkZWNvbXByZXNzaW5nIGRhdGEgc3RyZWFtcyB0aGF0Ci0gICB3b24ndCBmaXQgaW50byBtZW1vcnkgYXQgb25jZS4gIFRoZSAqd2JpdHMqIHBhcmFtZXRlciBjb250cm9scyB0aGUgc2l6ZSBvZiB0aGUKLSAgIHdpbmRvdyBidWZmZXIuCisgICB3b24ndCBmaXQgaW50byBtZW1vcnkgYXQgb25jZS4KKworICAgVGhlICp3Yml0cyogcGFyYW1ldGVyIGNvbnRyb2xzIHRoZSBzaXplIG9mIHRoZSB3aW5kb3cgYnVmZmVyLgorCisgICBUaGUgKnpkaWN0KiBwYXJhbWV0ZXIgc3BlY2lmaWVzIGEgcHJlZGVmaW5lZCBjb21wcmVzc2lvbiBkaWN0aW9uYXJ5LiBJZgorICAgcHJvdmlkZWQsIHRoaXMgbXVzdCBiZSB0aGUgc2FtZSBkaWN0aW9uYXJ5IGFzIHdhcyB1c2VkIGJ5IHRoZSBjb21wcmVzc29yIHRoYXQKKyAgIHByb2R1Y2VkIHRoZSBkYXRhIHRoYXQgaXMgdG8gYmUgZGVjb21wcmVzc2VkLgorCisgICAuLiBub3RlOjoKKworICAgICAgSWYgKnpkaWN0KiBpcyBhIG11dGFibGUgb2JqZWN0IChzdWNoIGFzIGEgOmNsYXNzOmBieXRlYXJyYXlgKSwgeW91IG11c3Qgbm90CisgICAgICBtb2RpZnkgaXRzIGNvbnRlbnRzIGJldHdlZW4gdGhlIGNhbGwgdG8gOmZ1bmM6YGRlY29tcHJlc3NvYmpgIGFuZCB0aGUgZmlyc3QKKyAgICAgIGNhbGwgdG8gdGhlIGRlY29tcHJlc3NvcidzIGBgZGVjb21wcmVzcygpYGAgbWV0aG9kLgorCisgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMworICAgICAgQWRkZWQgdGhlICp6ZGljdCogcGFyYW1ldGVyLgorCiAKIENvbXByZXNzaW9uIG9iamVjdHMgc3VwcG9ydCB0aGUgZm9sbG93aW5nIG1ldGhvZHM6CiAKQEAgLTE1MCw3ICsxOTEsNyBAQAogICAgY29tcHJlc3MgYSBzZXQgb2YgZGF0YSB0aGF0IHNoYXJlIGEgY29tbW9uIGluaXRpYWwgcHJlZml4LgogCiAKLURlY29tcHJlc3Npb24gb2JqZWN0cyBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgbWV0aG9kcywgYW5kIHR3byBhdHRyaWJ1dGVzOgorRGVjb21wcmVzc2lvbiBvYmplY3RzIHN1cHBvcnQgdGhlIGZvbGxvd2luZyBtZXRob2RzIGFuZCBhdHRyaWJ1dGVzOgogCiAKIC4uIGF0dHJpYnV0ZTo6IERlY29tcHJlc3MudW51c2VkX2RhdGEKQEAgLTE2MCwxMyArMjAxLDYgQEAKICAgIGF2YWlsYWJsZS4gIElmIHRoZSB3aG9sZSBieXRlc3RyaW5nIHR1cm5lZCBvdXQgdG8gY29udGFpbiBjb21wcmVzc2VkIGRhdGEsIHRoaXMgaXMKICAgIGBgYiIiYGAsIGFuIGVtcHR5IGJ5dGVzIG9iamVjdC4KIAotICAgVGhlIG9ubHkgd2F5IHRvIGRldGVybWluZSB3aGVyZSBhIGJ5dGVzdHJpbmcgb2YgY29tcHJlc3NlZCBkYXRhIGVuZHMgaXMgYnkgYWN0dWFsbHkKLSAgIGRlY29tcHJlc3NpbmcgaXQuICBUaGlzIG1lYW5zIHRoYXQgd2hlbiBjb21wcmVzc2VkIGRhdGEgaXMgY29udGFpbmVkIHBhcnQgb2YgYQotICAgbGFyZ2VyIGZpbGUsIHlvdSBjYW4gb25seSBmaW5kIHRoZSBlbmQgb2YgaXQgYnkgcmVhZGluZyBkYXRhIGFuZCBmZWVkaW5nIGl0Ci0gICBmb2xsb3dlZCBieSBzb21lIG5vbi1lbXB0eSBieXRlc3RyaW5nIGludG8gYSBkZWNvbXByZXNzaW9uIG9iamVjdCdzCi0gICA6bWV0aDpgZGVjb21wcmVzc2AgbWV0aG9kIHVudGlsIHRoZSA6YXR0cjpgdW51c2VkX2RhdGFgIGF0dHJpYnV0ZSBpcyBubyBsb25nZXIKLSAgIGVtcHR5LgotCiAKIC4uIGF0dHJpYnV0ZTo6IERlY29tcHJlc3MudW5jb25zdW1lZF90YWlsCiAKQEAgLTE3Nyw2ICsyMTEsMTcgQEAKICAgIDptZXRoOmBkZWNvbXByZXNzYCBtZXRob2QgY2FsbCBpbiBvcmRlciB0byBnZXQgY29ycmVjdCBvdXRwdXQuCiAKIAorLi4gYXR0cmlidXRlOjogRGVjb21wcmVzcy5lb2YKKworICAgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZW5kIG9mIHRoZSBjb21wcmVzc2VkIGRhdGEgc3RyZWFtIGhhcyBiZWVuCisgICByZWFjaGVkLgorCisgICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gYSBwcm9wZXJseS1mb3JtZWQgY29tcHJlc3NlZAorICAgc3RyZWFtLCBhbmQgYW4gaW5jb21wbGV0ZSBvciB0cnVuY2F0ZWQgb25lLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAuLiBtZXRob2Q6OiBEZWNvbXByZXNzLmRlY29tcHJlc3MoZGF0YVssIG1heF9sZW5ndGhdKQogCiAgICBEZWNvbXByZXNzICpkYXRhKiwgcmV0dXJuaW5nIGEgYnl0ZXMgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHVuY29tcHJlc3NlZCBkYXRhCkBAIC0yMTEsNiArMjU2LDI0IEBACiAgICBzZWVrcyBpbnRvIHRoZSBzdHJlYW0gYXQgYSBmdXR1cmUgcG9pbnQuCiAKIAorSW5mb3JtYXRpb24gYWJvdXQgdGhlIHZlcnNpb24gb2YgdGhlIHpsaWIgbGlicmFyeSBpbiB1c2UgaXMgYXZhaWxhYmxlIHRocm91Z2gKK3RoZSBmb2xsb3dpbmcgY29uc3RhbnRzOgorCisKKy4uIGRhdGE6OiBaTElCX1ZFUlNJT04KKworICAgVGhlIHZlcnNpb24gc3RyaW5nIG9mIHRoZSB6bGliIGxpYnJhcnkgdGhhdCB3YXMgdXNlZCBmb3IgYnVpbGRpbmcgdGhlIG1vZHVsZS4KKyAgIFRoaXMgbWF5IGJlIGRpZmZlcmVudCBmcm9tIHRoZSB6bGliIGxpYnJhcnkgYWN0dWFsbHkgdXNlZCBhdCBydW50aW1lLCB3aGljaAorICAgaXMgYXZhaWxhYmxlIGFzIDpjb25zdDpgWkxJQl9SVU5USU1FX1ZFUlNJT05gLgorCisKKy4uIGRhdGE6OiBaTElCX1JVTlRJTUVfVkVSU0lPTgorCisgICBUaGUgdmVyc2lvbiBzdHJpbmcgb2YgdGhlIHpsaWIgbGlicmFyeSBhY3R1YWxseSBsb2FkZWQgYnkgdGhlIGludGVycHJldGVyLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKworCiAuLiBzZWVhbHNvOjoKIAogICAgTW9kdWxlIDptb2Q6YGd6aXBgCmRpZmYgLS1naXQgYS9Eb2MvbGljZW5zZS5yc3QgYi9Eb2MvbGljZW5zZS5yc3QKaW5kZXggY2IyMGM4My4uYjQ3YjdjYyAxMDA2NDQKLS0tIGEvRG9jL2xpY2Vuc2UucnN0CisrKyBiL0RvYy9saWNlbnNlLnJzdApAQCAtMTIwLDYgKzEyMCw4IEBACiArLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKwogfCAzLjIuMyAgICAgICAgICB8IDMuMi4yICAgICAgICB8IDIwMTIgICAgICAgfCBQU0YgICAgICAgIHwgeWVzICAgICAgICAgICAgIHwKICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rCit8IDMuMy4wICAgICAgICAgIHwgMy4yICAgICAgICAgIHwgMjAxMiAgICAgICB8IFBTRiAgICAgICAgfCB5ZXMgICAgICAgICAgICAgfAorKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSsKIAogLi4gbm90ZTo6CiAKZGlmZiAtLWdpdCBhL0RvYy9yZWZlcmVuY2UvZGF0YW1vZGVsLnJzdCBiL0RvYy9yZWZlcmVuY2UvZGF0YW1vZGVsLnJzdAppbmRleCA3ZGNkNDU5Li5mYTYwNzIzIDEwMDY0NAotLS0gYS9Eb2MvcmVmZXJlbmNlL2RhdGFtb2RlbC5yc3QKKysrIGIvRG9jL3JlZmVyZW5jZS9kYXRhbW9kZWwucnN0CkBAIC0zNSwxMiArMzUsMTkgQEAKIEV2ZXJ5IG9iamVjdCBoYXMgYW4gaWRlbnRpdHksIGEgdHlwZSBhbmQgYSB2YWx1ZS4gIEFuIG9iamVjdCdzICppZGVudGl0eSogbmV2ZXIKIGNoYW5nZXMgb25jZSBpdCBoYXMgYmVlbiBjcmVhdGVkOyB5b3UgbWF5IHRoaW5rIG9mIGl0IGFzIHRoZSBvYmplY3QncyBhZGRyZXNzIGluCiBtZW1vcnkuICBUaGUgJzprZXl3b3JkOmBpc2AnIG9wZXJhdG9yIGNvbXBhcmVzIHRoZSBpZGVudGl0eSBvZiB0d28gb2JqZWN0czsgdGhlCi06ZnVuYzpgaWRgIGZ1bmN0aW9uIHJldHVybnMgYW4gaW50ZWdlciByZXByZXNlbnRpbmcgaXRzIGlkZW50aXR5IChjdXJyZW50bHkKLWltcGxlbWVudGVkIGFzIGl0cyBhZGRyZXNzKS4gQW4gb2JqZWN0J3MgOmRmbjpgdHlwZWAgaXMgYWxzbyB1bmNoYW5nZWFibGUuIFsjXV8KKzpmdW5jOmBpZGAgZnVuY3Rpb24gcmV0dXJucyBhbiBpbnRlZ2VyIHJlcHJlc2VudGluZyBpdHMgaWRlbnRpdHkuCisKKy4uIGltcGwtZGV0YWlsOjoKKworICAgRm9yIENQeXRob24sIGBgaWQoeClgYCBpcyB0aGUgbWVtb3J5IGFkZHJlc3Mgd2hlcmUgYGB4YGAgaXMgc3RvcmVkLgorCiBBbiBvYmplY3QncyB0eXBlIGRldGVybWluZXMgdGhlIG9wZXJhdGlvbnMgdGhhdCB0aGUgb2JqZWN0IHN1cHBvcnRzIChlLmcuLCAiZG9lcwogaXQgaGF2ZSBhIGxlbmd0aD8iKSBhbmQgYWxzbyBkZWZpbmVzIHRoZSBwb3NzaWJsZSB2YWx1ZXMgZm9yIG9iamVjdHMgb2YgdGhhdAogdHlwZS4gIFRoZSA6ZnVuYzpgdHlwZWAgZnVuY3Rpb24gcmV0dXJucyBhbiBvYmplY3QncyB0eXBlICh3aGljaCBpcyBhbiBvYmplY3QKLWl0c2VsZikuICBUaGUgKnZhbHVlKiBvZiBzb21lIG9iamVjdHMgY2FuIGNoYW5nZS4gIE9iamVjdHMgd2hvc2UgdmFsdWUgY2FuCitpdHNlbGYpLiAgTGlrZSBpdHMgaWRlbnRpdHksIGFuIG9iamVjdCdzIDpkZm46YHR5cGVgIGlzIGFsc28gdW5jaGFuZ2VhYmxlLgorWyNdXworCitUaGUgKnZhbHVlKiBvZiBzb21lIG9iamVjdHMgY2FuIGNoYW5nZS4gIE9iamVjdHMgd2hvc2UgdmFsdWUgY2FuCiBjaGFuZ2UgYXJlIHNhaWQgdG8gYmUgKm11dGFibGUqOyBvYmplY3RzIHdob3NlIHZhbHVlIGlzIHVuY2hhbmdlYWJsZSBvbmNlIHRoZXkKIGFyZSBjcmVhdGVkIGFyZSBjYWxsZWQgKmltbXV0YWJsZSouIChUaGUgdmFsdWUgb2YgYW4gaW1tdXRhYmxlIGNvbnRhaW5lciBvYmplY3QKIHRoYXQgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gYSBtdXRhYmxlIG9iamVjdCBjYW4gY2hhbmdlIHdoZW4gdGhlIGxhdHRlcidzIHZhbHVlCkBAIC0yNzYsMTYgKzI4MywxNiBAQAogICAgICAgICAgICAgc2luZ2xlOiBpbnRlZ2VyCiAgICAgICAgICAgICBzaW5nbGU6IFVuaWNvZGUKIAotICAgICAgICAgVGhlIGl0ZW1zIG9mIGEgc3RyaW5nIG9iamVjdCBhcmUgVW5pY29kZSBjb2RlIHVuaXRzLiAgQSBVbmljb2RlIGNvZGUKLSAgICAgICAgIHVuaXQgaXMgcmVwcmVzZW50ZWQgYnkgYSBzdHJpbmcgb2JqZWN0IG9mIG9uZSBpdGVtIGFuZCBjYW4gaG9sZCBlaXRoZXIKLSAgICAgICAgIGEgMTYtYml0IG9yIDMyLWJpdCB2YWx1ZSByZXByZXNlbnRpbmcgYSBVbmljb2RlIG9yZGluYWwgKHRoZSBtYXhpbXVtCi0gICAgICAgICB2YWx1ZSBmb3IgdGhlIG9yZGluYWwgaXMgZ2l2ZW4gaW4gYGBzeXMubWF4dW5pY29kZWBgLCBhbmQgZGVwZW5kcyBvbgotICAgICAgICAgaG93IFB5dGhvbiBpcyBjb25maWd1cmVkIGF0IGNvbXBpbGUgdGltZSkuICBTdXJyb2dhdGUgcGFpcnMgbWF5IGJlCi0gICAgICAgICBwcmVzZW50IGluIHRoZSBVbmljb2RlIG9iamVjdCwgYW5kIHdpbGwgYmUgcmVwb3J0ZWQgYXMgdHdvIHNlcGFyYXRlCi0gICAgICAgICBpdGVtcy4gIFRoZSBidWlsdC1pbiBmdW5jdGlvbnMgOmZ1bmM6YGNocmAgYW5kIDpmdW5jOmBvcmRgIGNvbnZlcnQKLSAgICAgICAgIGJldHdlZW4gY29kZSB1bml0cyBhbmQgbm9ubmVnYXRpdmUgaW50ZWdlcnMgcmVwcmVzZW50aW5nIHRoZSBVbmljb2RlCi0gICAgICAgICBvcmRpbmFscyBhcyBkZWZpbmVkIGluIHRoZSBVbmljb2RlIFN0YW5kYXJkIDMuMC4gQ29udmVyc2lvbiBmcm9tIGFuZCB0bwotICAgICAgICAgb3RoZXIgZW5jb2RpbmdzIGFyZSBwb3NzaWJsZSB0aHJvdWdoIHRoZSBzdHJpbmcgbWV0aG9kIDptZXRoOmBlbmNvZGVgLgorICAgICAgICAgQSBzdHJpbmcgaXMgYSBzZXF1ZW5jZSBvZiB2YWx1ZXMgdGhhdCByZXByZXNlbnQgVW5pY29kZSBjb2RlcG9pbnRzLgorICAgICAgICAgQWxsIHRoZSBjb2RlcG9pbnRzIGluIHJhbmdlIGBgVSswMDAwIC0gVSsxMEZGRkZgYCBjYW4gYmUgcmVwcmVzZW50ZWQKKyAgICAgICAgIGluIGEgc3RyaW5nLiAgUHl0aG9uIGRvZXNuJ3QgaGF2ZSBhIDpjOnR5cGU6YGNocmAgdHlwZSwgYW5kCisgICAgICAgICBldmVyeSBjaGFyYWN0ZXIgaW4gdGhlIHN0cmluZyBpcyByZXByZXNlbnRlZCBhcyBhIHN0cmluZyBvYmplY3QKKyAgICAgICAgIHdpdGggbGVuZ3RoIGBgMWBgLiAgVGhlIGJ1aWx0LWluIGZ1bmN0aW9uIDpmdW5jOmBvcmRgIGNvbnZlcnRzIGEKKyAgICAgICAgIGNoYXJhY3RlciB0byBpdHMgY29kZXBvaW50IChhcyBhbiBpbnRlZ2VyKTsgOmZ1bmM6YGNocmAgY29udmVydHMKKyAgICAgICAgIGFuIGludGVnZXIgaW4gcmFuZ2UgYGAwIC0gMTBGRkZGYGAgdG8gdGhlIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVyLgorICAgICAgICAgOm1ldGg6YHN0ci5lbmNvZGVgIGNhbiBiZSB1c2VkIHRvIGNvbnZlcnQgYSA6Y2xhc3M6YHN0cmAgdG8KKyAgICAgICAgIDpjbGFzczpgYnl0ZXNgIHVzaW5nIHRoZSBnaXZlbiBlbmNvZGluZywgYW5kIDptZXRoOmBieXRlcy5kZWNvZGVgIGNhbgorICAgICAgICAgYmUgdXNlZCB0byBhY2hpZXZlIHRoZSBvcHBvc2l0ZS4KIAogICAgICAgVHVwbGVzCiAgICAgICAgICAuLiBpbmRleDo6CkBAIC00NDgsNiArNDU1LDExIEBACiAgICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKwogICAgICAgfCA6YXR0cjpgX19uYW1lX19gICAgICAgICB8IFRoZSBmdW5jdGlvbidzIG5hbWUgICAgICAgICAgIHwgV3JpdGFibGUgIHwKICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rCisgICAgICB8IDphdHRyOmBfX3F1YWxuYW1lX19gICAgIHwgVGhlIGZ1bmN0aW9uJ3MgICAgICAgICAgICAgICAgfCBXcml0YWJsZSAgfAorICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IDp0ZXJtOmBxdWFsaWZpZWQgbmFtZWAgICAgICAgIHwgICAgICAgICAgIHwKKyAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8CisgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgLi4gdmVyc2lvbmFkZGVkOjogMy4zICAgICAgICAgfCAgICAgICAgICAgfAorICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSsKICAgICAgIHwgOmF0dHI6YF9fbW9kdWxlX19gICAgICAgfCBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoZSAgICB8IFdyaXRhYmxlICB8CiAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb24gd2FzIGRlZmluZWQgaW4sIG9yICAgfCAgICAgICAgICAgfAogICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IGBgTm9uZWBgIGlmIHVuYXZhaWxhYmxlLiAgICAgIHwgICAgICAgICAgIHwKQEAgLTEyNTAsMTAgKzEyNjIsMTAgQEAKICAgIGltbXV0YWJsZSAoaWYgdGhlIG9iamVjdCdzIGhhc2ggdmFsdWUgY2hhbmdlcywgaXQgd2lsbCBiZSBpbiB0aGUgd3JvbmcgaGFzaAogICAgYnVja2V0KS4KIAotCiAgICBVc2VyLWRlZmluZWQgY2xhc3NlcyBoYXZlIDptZXRoOmBfX2VxX19gIGFuZCA6bWV0aDpgX19oYXNoX19gIG1ldGhvZHMKICAgIGJ5IGRlZmF1bHQ7IHdpdGggdGhlbSwgYWxsIG9iamVjdHMgY29tcGFyZSB1bmVxdWFsIChleGNlcHQgd2l0aCB0aGVtc2VsdmVzKQotICAgYW5kIGBgeC5fX2hhc2hfXygpYGAgcmV0dXJucyBgYGlkKHgpYGAuCisgICBhbmQgYGB4Ll9faGFzaF9fKClgYCByZXR1cm5zIGFuIGFwcHJvcHJpYXRlIHZhbHVlIHN1Y2ggdGhhdCBgYHggPT0geWBgCisgICBpbXBsaWVzIGJvdGggdGhhdCBgYHggaXMgeWBgIGFuZCBgYGhhc2goeCkgPT0gaGFzaCh5KWBgLgogCiAgICBDbGFzc2VzIHdoaWNoIGluaGVyaXQgYSA6bWV0aDpgX19oYXNoX19gIG1ldGhvZCBmcm9tIGEgcGFyZW50IGNsYXNzIGJ1dAogICAgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIDptZXRoOmBfX2VxX19gIHN1Y2ggdGhhdCB0aGUgaGFzaCB2YWx1ZSByZXR1cm5lZCBpcyBubwpAQCAtMTI3Miw3ICsxMjg0LDI3IEBACiAgICBpbmhlcml0YW5jZSBvZiA6bWV0aDpgX19oYXNoX19gIHdpbGwgYmUgYmxvY2tlZCwganVzdCBhcyBpZiA6YXR0cjpgX19oYXNoX19gCiAgICBoYWQgYmVlbiBleHBsaWNpdGx5IHNldCB0byA6Y29uc3Q6YE5vbmVgLgogCi0gICBTZWUgYWxzbyB0aGUgOm9wdGlvbjpgLVJgIGNvbW1hbmQtbGluZSBvcHRpb24uCisKKyAgIC4uIG5vdGU6OgorCisgICAgICBOb3RlIGJ5IGRlZmF1bHQgdGhlIDptZXRoOmBfX2hhc2hfX2AgdmFsdWVzIG9mIHN0ciwgYnl0ZXMgYW5kIGRhdGV0aW1lCisgICAgICBvYmplY3RzIGFyZSAic2FsdGVkIiB3aXRoIGFuIHVucHJlZGljdGFibGUgcmFuZG9tIHZhbHVlLiAgQWx0aG91Z2ggdGhleQorICAgICAgcmVtYWluIGNvbnN0YW50IHdpdGhpbiBhbiBpbmRpdmlkdWFsIFB5dGhvbiBwcm9jZXNzLCB0aGV5IGFyZSBub3QKKyAgICAgIHByZWRpY3RhYmxlIGJldHdlZW4gcmVwZWF0ZWQgaW52b2NhdGlvbnMgb2YgUHl0aG9uLgorCisgICAgICBUaGlzIGlzIGludGVuZGVkIHRvIHByb3ZpZGUgcHJvdGVjdGlvbiBhZ2FpbnN0IGEgZGVuaWFsLW9mLXNlcnZpY2UgY2F1c2VkCisgICAgICBieSBjYXJlZnVsbHktY2hvc2VuIGlucHV0cyB0aGF0IGV4cGxvaXQgdGhlIHdvcnN0IGNhc2UgcGVyZm9ybWFuY2Ugb2YgYQorICAgICAgZGljdCBpbnNlcnRpb24sIE8obl4yKSBjb21wbGV4aXR5LiAgU2VlCisgICAgICBodHRwOi8vd3d3Lm9jZXJ0Lm9yZy9hZHZpc29yaWVzL29jZXJ0LTIwMTEtMDAzLmh0bWwgZm9yIGRldGFpbHMuCisKKyAgICAgIENoYW5naW5nIGhhc2ggdmFsdWVzIGFmZmVjdHMgdGhlIG9yZGVyIGluIHdoaWNoIGtleXMgYXJlIHJldHJpZXZlZCBmcm9tIGEKKyAgICAgIGRpY3QuICBOb3RlIFB5dGhvbiBoYXMgbmV2ZXIgbWFkZSBndWFyYW50ZWVzIGFib3V0IHRoaXMgb3JkZXJpbmcgKGFuZCBpdAorICAgICAgdHlwaWNhbGx5IHZhcmllcyBiZXR3ZWVuIDMyLWJpdCBhbmQgNjQtYml0IGJ1aWxkcykuCisKKyAgICAgIFNlZSBhbHNvIDplbnZ2YXI6YFBZVEhPTkhBU0hTRUVEYC4KKworICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgIEhhc2ggcmFuZG9taXphdGlvbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCiAKIAogLi4gbWV0aG9kOjogb2JqZWN0Ll9fYm9vbF9fKHNlbGYpCkBAIC0xMzUzLDcgKzEzODUsOCBAQAogCiAuLiBtZXRob2Q6OiBvYmplY3QuX19kaXJfXyhzZWxmKQogCi0gICBDYWxsZWQgd2hlbiA6ZnVuYzpgZGlyYCBpcyBjYWxsZWQgb24gdGhlIG9iamVjdC4gIEEgbGlzdCBtdXN0IGJlIHJldHVybmVkLgorICAgQ2FsbGVkIHdoZW4gOmZ1bmM6YGRpcmAgaXMgY2FsbGVkIG9uIHRoZSBvYmplY3QuIEEgc2VxdWVuY2UgbXVzdCBiZQorICAgcmV0dXJuZWQuIDpmdW5jOmBkaXJgIGNvbnZlcnRzIHRoZSByZXR1cm5lZCBzZXF1ZW5jZSB0byBhIGxpc3QgYW5kIHNvcnRzIGl0LgogCiAKIC4uIF9kZXNjcmlwdG9yczoKQEAgLTE1MjQsNTMgKzE1NTcsMTE1IEBACiBDdXN0b21pemluZyBjbGFzcyBjcmVhdGlvbgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotQnkgZGVmYXVsdCwgY2xhc3NlcyBhcmUgY29uc3RydWN0ZWQgdXNpbmcgOmZ1bmM6YHR5cGVgLiBBIGNsYXNzIGRlZmluaXRpb24gaXMKLXJlYWQgaW50byBhIHNlcGFyYXRlIG5hbWVzcGFjZSBhbmQgdGhlIHZhbHVlIG9mIGNsYXNzIG5hbWUgaXMgYm91bmQgdG8gdGhlCi1yZXN1bHQgb2YgYGB0eXBlKG5hbWUsIGJhc2VzLCBkaWN0KWBgLgorQnkgZGVmYXVsdCwgY2xhc3NlcyBhcmUgY29uc3RydWN0ZWQgdXNpbmcgOmZ1bmM6YHR5cGVgLiBUaGUgY2xhc3MgYm9keSBpcworZXhlY3V0ZWQgaW4gYSBuZXcgbmFtZXNwYWNlIGFuZCB0aGUgY2xhc3MgbmFtZSBpcyBib3VuZCBsb2NhbGx5IHRvIHRoZQorcmVzdWx0IG9mIGBgdHlwZShuYW1lLCBiYXNlcywgbmFtZXNwYWNlKWBgLgogCi1XaGVuIHRoZSBjbGFzcyBkZWZpbml0aW9uIGlzIHJlYWQsIGlmIGEgY2FsbGFibGUgYGBtZXRhY2xhc3NgYCBrZXl3b3JkIGFyZ3VtZW50Ci1pcyBwYXNzZWQgYWZ0ZXIgdGhlIGJhc2VzIGluIHRoZSBjbGFzcyBkZWZpbml0aW9uLCB0aGUgY2FsbGFibGUgZ2l2ZW4gd2lsbCBiZQotY2FsbGVkIGluc3RlYWQgb2YgOmZ1bmM6YHR5cGVgLiAgSWYgb3RoZXIga2V5d29yZCBhcmd1bWVudHMgYXJlIHBhc3NlZCwgdGhleQotd2lsbCBhbHNvIGJlIHBhc3NlZCB0byB0aGUgbWV0YWNsYXNzLiAgVGhpcyBhbGxvd3MgY2xhc3NlcyBvciBmdW5jdGlvbnMgdG8gYmUKLXdyaXR0ZW4gd2hpY2ggbW9uaXRvciBvciBhbHRlciB0aGUgY2xhc3MgY3JlYXRpb24gcHJvY2VzczoKK1RoZSBjbGFzcyBjcmVhdGlvbiBwcm9jZXNzIGNhbiBiZSBjdXN0b21pc2VkIGJ5IHBhc3NpbmcgdGhlIGBgbWV0YWNsYXNzYGAKK2tleXdvcmQgYXJndW1lbnQgaW4gdGhlIGNsYXNzIGRlZmluaXRpb24gbGluZSwgb3IgYnkgaW5oZXJpdGluZyBmcm9tIGFuCitleGlzdGluZyBjbGFzcyB0aGF0IGluY2x1ZGVkIHN1Y2ggYW4gYXJndW1lbnQuIEluIHRoZSBmb2xsb3dpbmcgZXhhbXBsZSwKK2JvdGggYGBNeUNsYXNzYGAgYW5kIGBgTXlTdWJjbGFzc2BgIGFyZSBpbnN0YW5jZXMgb2YgYGBNZXRhYGA6OgogCi0qIE1vZGlmeWluZyB0aGUgY2xhc3MgZGljdGlvbmFyeSBwcmlvciB0byB0aGUgY2xhc3MgYmVpbmcgY3JlYXRlZC4KKyAgIGNsYXNzIE1ldGEodHlwZSk6CisgICAgICAgcGFzcwogCi0qIFJldHVybmluZyBhbiBpbnN0YW5jZSBvZiBhbm90aGVyIGNsYXNzIC0tIGVzc2VudGlhbGx5IHBlcmZvcm1pbmcgdGhlIHJvbGUgb2YgYQotICBmYWN0b3J5IGZ1bmN0aW9uLgorICAgY2xhc3MgTXlDbGFzcyhtZXRhY2xhc3M9TWV0YSk6CisgICAgICAgcGFzcwogCi1UaGVzZSBzdGVwcyB3aWxsIGhhdmUgdG8gYmUgcGVyZm9ybWVkIGluIHRoZSBtZXRhY2xhc3MncyA6bWV0aDpgX19uZXdfX2AgbWV0aG9kCi0tLSA6bWV0aDpgdHlwZS5fX25ld19fYCBjYW4gdGhlbiBiZSBjYWxsZWQgZnJvbSB0aGlzIG1ldGhvZCB0byBjcmVhdGUgYSBjbGFzcwotd2l0aCBkaWZmZXJlbnQgcHJvcGVydGllcy4gIFRoaXMgZXhhbXBsZSBhZGRzIGEgbmV3IGVsZW1lbnQgdG8gdGhlIGNsYXNzCi1kaWN0aW9uYXJ5IGJlZm9yZSBjcmVhdGluZyB0aGUgY2xhc3M6OgorICAgY2xhc3MgTXlTdWJjbGFzcyhNeUNsYXNzKToKKyAgICAgICBwYXNzCiAKLSAgY2xhc3MgbWV0YWNscyh0eXBlKToKLSAgICAgIGRlZiBfX25ld19fKG1jcywgbmFtZSwgYmFzZXMsIGRpY3QpOgotICAgICAgICAgIGRpY3RbJ2ZvbyddID0gJ21ldGFjbHMgd2FzIGhlcmUnCi0gICAgICAgICAgcmV0dXJuIHR5cGUuX19uZXdfXyhtY3MsIG5hbWUsIGJhc2VzLCBkaWN0KQorQW55IG90aGVyIGtleXdvcmQgYXJndW1lbnRzIHRoYXQgYXJlIHNwZWNpZmllZCBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbiBhcmUKK3Bhc3NlZCB0aHJvdWdoIHRvIGFsbCBtZXRhY2xhc3Mgb3BlcmF0aW9ucyBkZXNjcmliZWQgYmVsb3cuCiAKLVlvdSBjYW4gb2YgY291cnNlIGFsc28gb3ZlcnJpZGUgb3RoZXIgY2xhc3MgbWV0aG9kcyAob3IgYWRkIG5ldyBtZXRob2RzKTsgZm9yCi1leGFtcGxlIGRlZmluaW5nIGEgY3VzdG9tIDptZXRoOmBfX2NhbGxfX2AgbWV0aG9kIGluIHRoZSBtZXRhY2xhc3MgYWxsb3dzIGN1c3RvbQotYmVoYXZpb3Igd2hlbiB0aGUgY2xhc3MgaXMgY2FsbGVkLCBlLmcuIG5vdCBhbHdheXMgY3JlYXRpbmcgYSBuZXcgaW5zdGFuY2UuCitXaGVuIGEgY2xhc3MgZGVmaW5pdGlvbiBpcyBleGVjdXRlZCwgdGhlIGZvbGxvd2luZyBzdGVwcyBvY2N1cjoKIAotSWYgdGhlIG1ldGFjbGFzcyBoYXMgYSA6bWV0aDpgX19wcmVwYXJlX19gIGF0dHJpYnV0ZSAodXN1YWxseSBpbXBsZW1lbnRlZCBhcyBhCi1jbGFzcyBvciBzdGF0aWMgbWV0aG9kKSwgaXQgaXMgY2FsbGVkIGJlZm9yZSB0aGUgY2xhc3MgYm9keSBpcyBldmFsdWF0ZWQgd2l0aAotdGhlIG5hbWUgb2YgdGhlIGNsYXNzIGFuZCBhIHR1cGxlIG9mIGl0cyBiYXNlcyBmb3IgYXJndW1lbnRzLiAgSXQgc2hvdWxkIHJldHVybgotYW4gb2JqZWN0IHRoYXQgc3VwcG9ydHMgdGhlIG1hcHBpbmcgaW50ZXJmYWNlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIHN0b3JlIHRoZQotbmFtZXNwYWNlIG9mIHRoZSBjbGFzcy4gIFRoZSBkZWZhdWx0IGlzIGEgcGxhaW4gZGljdGlvbmFyeS4gIFRoaXMgY291bGQgYmUgdXNlZCwKLWZvciBleGFtcGxlLCB0byBrZWVwIHRyYWNrIG9mIHRoZSBvcmRlciB0aGF0IGNsYXNzIGF0dHJpYnV0ZXMgYXJlIGRlY2xhcmVkIGluIGJ5Ci1yZXR1cm5pbmcgYW4gb3JkZXJlZCBkaWN0aW9uYXJ5LgorKiB0aGUgYXBwcm9wcmlhdGUgbWV0YWNsYXNzIGlzIGRldGVybWluZWQKKyogdGhlIGNsYXNzIG5hbWVzcGFjZSBpcyBwcmVwYXJlZAorKiB0aGUgY2xhc3MgYm9keSBpcyBleGVjdXRlZAorKiB0aGUgY2xhc3Mgb2JqZWN0IGlzIGNyZWF0ZWQKIAotVGhlIGFwcHJvcHJpYXRlIG1ldGFjbGFzcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBmb2xsb3dpbmcgcHJlY2VkZW5jZSBydWxlczoKK0RldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZSBtZXRhY2xhc3MKK15eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KIAotKiBJZiB0aGUgYGBtZXRhY2xhc3NgYCBrZXl3b3JkIGFyZ3VtZW50IGlzIHBhc3NlZCB3aXRoIHRoZSBiYXNlcywgaXQgaXMgdXNlZC4KK1RoZSBhcHByb3ByaWF0ZSBtZXRhY2xhc3MgZm9yIGEgY2xhc3MgZGVmaW5pdGlvbiBpcyBkZXRlcm1pbmVkIGFzIGZvbGxvd3M6CiAKLSogT3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgYmFzZSBjbGFzcywgaXRzIG1ldGFjbGFzcyBpcyB1c2VkLgorKiBpZiBubyBiYXNlcyBhbmQgbm8gZXhwbGljaXQgbWV0YWNsYXNzIGFyZSBnaXZlbiwgdGhlbiA6ZnVuYzpgdHlwZWAgaXMgdXNlZAorKiBpZiBhbiBleHBsaWNpdCBtZXRhY2xhc3MgaXMgZ2l2ZW4gYW5kIGl0IGlzICpub3QqIGFuIGluc3RhbmNlIG9mCisgIDpmdW5jOmB0eXBlYCwgdGhlbiBpdCBpcyB1c2VkIGRpcmVjdGx5IGFzIHRoZSBtZXRhY2xhc3MKKyogaWYgYW4gaW5zdGFuY2Ugb2YgOmZ1bmM6YHR5cGVgIGlzIGdpdmVuIGFzIHRoZSBleHBsaWNpdCBtZXRhY2xhc3MsIG9yCisgIGJhc2VzIGFyZSBkZWZpbmVkLCB0aGVuIHRoZSBtb3N0IGRlcml2ZWQgbWV0YWNsYXNzIGlzIHVzZWQKIAotKiBPdGhlcndpc2UsIHRoZSBkZWZhdWx0IG1ldGFjbGFzcyAoOmNsYXNzOmB0eXBlYCkgaXMgdXNlZC4KK1RoZSBtb3N0IGRlcml2ZWQgbWV0YWNsYXNzIGlzIHNlbGVjdGVkIGZyb20gdGhlIGV4cGxpY2l0bHkgc3BlY2lmaWVkCittZXRhY2xhc3MgKGlmIGFueSkgYW5kIHRoZSBtZXRhY2xhc3NlcyAoaS5lLiBgYHR5cGUoY2xzKWBgKSBvZiBhbGwgc3BlY2lmaWVkCitiYXNlIGNsYXNzZXMuIFRoZSBtb3N0IGRlcml2ZWQgbWV0YWNsYXNzIGlzIG9uZSB3aGljaCBpcyBhIHN1YnR5cGUgb2YgKmFsbCoKK29mIHRoZXNlIGNhbmRpZGF0ZSBtZXRhY2xhc3Nlcy4gSWYgbm9uZSBvZiB0aGUgY2FuZGlkYXRlIG1ldGFjbGFzc2VzIG1lZXRzCit0aGF0IGNyaXRlcmlvbiwgdGhlbiB0aGUgY2xhc3MgZGVmaW5pdGlvbiB3aWxsIGZhaWwgd2l0aCBgYFR5cGVFcnJvcmBgLgorCisKK1ByZXBhcmluZyB0aGUgY2xhc3MgbmFtZXNwYWNlCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitPbmNlIHRoZSBhcHByb3ByaWF0ZSBtZXRhY2xhc3MgaGFzIGJlZW4gaWRlbnRpZmllZCwgdGhlbiB0aGUgY2xhc3MgbmFtZXNwYWNlCitpcyBwcmVwYXJlZC4gSWYgdGhlIG1ldGFjbGFzcyBoYXMgYSBgYF9fcHJlcGFyZV9fYGAgYXR0cmlidXRlLCBpdCBpcyBjYWxsZWQKK2FzIGBgbmFtZXNwYWNlID0gbWV0YWNsYXNzLl9fcHJlcGFyZV9fKG5hbWUsIGJhc2VzLCAqKmt3ZHMpYGAgKHdoZXJlIHRoZQorYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cywgaWYgYW55LCBjb21lIGZyb20gdGhlIGNsYXNzIGRlZmluaXRpb24pLgorCitJZiB0aGUgbWV0YWNsYXNzIGhhcyBubyBgYF9fcHJlcGFyZV9fYGAgYXR0cmlidXRlLCB0aGVuIHRoZSBjbGFzcyBuYW1lc3BhY2UKK2lzIGluaXRpYWxpc2VkIGFzIGFuIGVtcHR5IDpmdW5jOmBkaWN0YCBpbnN0YW5jZS4KKworLi4gc2VlYWxzbzo6CisKKyAgIDpwZXA6YDMxMTVgIC0gTWV0YWNsYXNzZXMgaW4gUHl0aG9uIDMwMDAKKyAgICAgIEludHJvZHVjZWQgdGhlIGBgX19wcmVwYXJlX19gYCBuYW1lc3BhY2UgaG9vaworCisKK0V4ZWN1dGluZyB0aGUgY2xhc3MgYm9keQorXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK1RoZSBjbGFzcyBib2R5IGlzIGV4ZWN1dGVkIChhcHByb3hpbWF0ZWx5KSBhcworYGBleGVjKGJvZHksIGdsb2JhbHMoKSwgbmFtZXNwYWNlKWBgLiBUaGUga2V5IGRpZmZlcmVuY2UgZnJvbSBhIG5vcm1hbAorY2FsbCB0byA6ZnVuYzpgZXhlY2AgaXMgdGhhdCBsZXhpY2FsIHNjb3BpbmcgYWxsb3dzIHRoZSBjbGFzcyBib2R5IChpbmNsdWRpbmcKK2FueSBtZXRob2RzKSB0byByZWZlcmVuY2UgbmFtZXMgZnJvbSB0aGUgY3VycmVudCBhbmQgb3V0ZXIgc2NvcGVzIHdoZW4gdGhlCitjbGFzcyBkZWZpbml0aW9uIG9jY3VycyBpbnNpZGUgYSBmdW5jdGlvbi4KKworSG93ZXZlciwgZXZlbiB3aGVuIHRoZSBjbGFzcyBkZWZpbml0aW9uIG9jY3VycyBpbnNpZGUgdGhlIGZ1bmN0aW9uLCBtZXRob2RzCitkZWZpbmVkIGluc2lkZSB0aGUgY2xhc3Mgc3RpbGwgY2Fubm90IHNlZSBuYW1lcyBkZWZpbmVkIGF0IHRoZSBjbGFzcyBzY29wZS4KK0NsYXNzIHZhcmlhYmxlcyBtdXN0IGJlIGFjY2Vzc2VkIHRocm91Z2ggdGhlIGZpcnN0IHBhcmFtZXRlciBvZiBpbnN0YW5jZSBvcgorY2xhc3MgbWV0aG9kcywgYW5kIGNhbm5vdCBiZSBhY2Nlc3NlZCBhdCBhbGwgZnJvbSBzdGF0aWMgbWV0aG9kcy4KKworCitDcmVhdGluZyB0aGUgY2xhc3Mgb2JqZWN0CiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK09uY2UgdGhlIGNsYXNzIG5hbWVzcGFjZSBoYXMgYmVlbiBwb3B1bGF0ZWQgYnkgZXhlY3V0aW5nIHRoZSBjbGFzcyBib2R5LAordGhlIGNsYXNzIG9iamVjdCBpcyBjcmVhdGVkIGJ5IGNhbGxpbmcKK2BgbWV0YWNsYXNzKG5hbWUsIGJhc2VzLCBuYW1lc3BhY2UsICoqa3dkcylgYCAodGhlIGFkZGl0aW9uYWwga2V5d29yZHMKK3Bhc3NlZCBoZXJlIGFyZSB0aGUgc2FtZSBhcyB0aG9zZSBwYXNzZWQgdG8gYGBfX3ByZXBhcmVfX2BgKS4KKworVGhpcyBjbGFzcyBvYmplY3QgaXMgdGhlIG9uZSB0aGF0IHdpbGwgYmUgcmVmZXJlbmNlZCBieSB0aGUgemVyby1hcmd1bWVudAorZm9ybSBvZiA6ZnVuYzpgc3VwZXJgLiBgYF9fY2xhc3NfX2BgIGlzIGFuIGltcGxpY2l0IGNsb3N1cmUgcmVmZXJlbmNlCitjcmVhdGVkIGJ5IHRoZSBjb21waWxlciBpZiBhbnkgbWV0aG9kcyBpbiBhIGNsYXNzIGJvZHkgcmVmZXIgdG8gZWl0aGVyCitgYF9fY2xhc3NfX2BgIG9yIGBgc3VwZXJgYC4gVGhpcyBhbGxvd3MgdGhlIHplcm8gYXJndW1lbnQgZm9ybSBvZgorOmZ1bmM6YHN1cGVyYCB0byBjb3JyZWN0bHkgaWRlbnRpZnkgdGhlIGNsYXNzIGJlaW5nIGRlZmluZWQgYmFzZWQgb24KK2xleGljYWwgc2NvcGluZywgd2hpbGUgdGhlIGNsYXNzIG9yIGluc3RhbmNlIHRoYXQgd2FzIHVzZWQgdG8gbWFrZSB0aGUKK2N1cnJlbnQgY2FsbCBpcyBpZGVudGlmaWVkIGJhc2VkIG9uIHRoZSBmaXJzdCBhcmd1bWVudCBwYXNzZWQgdG8gdGhlIG1ldGhvZC4KKworQWZ0ZXIgdGhlIGNsYXNzIG9iamVjdCBpcyBjcmVhdGVkLCBpdCBpcyBwYXNzZWQgdG8gdGhlIGNsYXNzIGRlY29yYXRvcnMKK2luY2x1ZGVkIGluIHRoZSBjbGFzcyBkZWZpbml0aW9uIChpZiBhbnkpIGFuZCB0aGUgcmVzdWx0aW5nIG9iamVjdCBpcyBib3VuZAoraW4gdGhlIGxvY2FsIG5hbWVzcGFjZSBhcyB0aGUgZGVmaW5lZCBjbGFzcy4KKworLi4gc2VlYWxzbzo6CisKKyAgIDpwZXA6YDMxMzVgIC0gTmV3IHN1cGVyCisgICAgICBEZXNjcmliZXMgdGhlIGltcGxpY2l0IGBgX19jbGFzc19fYGAgY2xvc3VyZSByZWZlcmVuY2UKKworCitNZXRhY2xhc3MgZXhhbXBsZQorXl5eXl5eXl5eXl5eXl5eXl4KIAogVGhlIHBvdGVudGlhbCB1c2VzIGZvciBtZXRhY2xhc3NlcyBhcmUgYm91bmRsZXNzLiBTb21lIGlkZWFzIHRoYXQgaGF2ZSBiZWVuCi1leHBsb3JlZCBpbmNsdWRpbmcgbG9nZ2luZywgaW50ZXJmYWNlIGNoZWNraW5nLCBhdXRvbWF0aWMgZGVsZWdhdGlvbiwgYXV0b21hdGljCitleHBsb3JlZCBpbmNsdWRlIGxvZ2dpbmcsIGludGVyZmFjZSBjaGVja2luZywgYXV0b21hdGljIGRlbGVnYXRpb24sIGF1dG9tYXRpYwogcHJvcGVydHkgY3JlYXRpb24sIHByb3hpZXMsIGZyYW1ld29ya3MsIGFuZCBhdXRvbWF0aWMgcmVzb3VyY2UKIGxvY2tpbmcvc3luY2hyb25pemF0aW9uLgogCkBAIC0xNTgzLDkgKzE2NzgsOSBAQAogICAgICAgICAgZGVmIF9fcHJlcGFyZV9fKG1ldGFjbHMsIG5hbWUsIGJhc2VzLCAqKmt3ZHMpOgogICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0KCkKIAotICAgICAgICAgZGVmIF9fbmV3X18oY2xzLCBuYW1lLCBiYXNlcywgY2xhc3NkaWN0KToKLSAgICAgICAgICAgIHJlc3VsdCA9IHR5cGUuX19uZXdfXyhjbHMsIG5hbWUsIGJhc2VzLCBkaWN0KGNsYXNzZGljdCkpCi0gICAgICAgICAgICByZXN1bHQubWVtYmVycyA9IHR1cGxlKGNsYXNzZGljdCkKKyAgICAgICAgIGRlZiBfX25ld19fKGNscywgbmFtZSwgYmFzZXMsIG5hbWVzcGFjZSwgKiprd2RzKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHR5cGUuX19uZXdfXyhjbHMsIG5hbWUsIGJhc2VzLCBkaWN0KG5hbWVzcGFjZSkpCisgICAgICAgICAgICByZXN1bHQubWVtYmVycyA9IHR1cGxlKG5hbWVzcGFjZSkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQKIAogICAgIGNsYXNzIEEobWV0YWNsYXNzPU9yZGVyZWRDbGFzcyk6CmRpZmYgLS1naXQgYS9Eb2MvcmVmZXJlbmNlL2V4cHJlc3Npb25zLnJzdCBiL0RvYy9yZWZlcmVuY2UvZXhwcmVzc2lvbnMucnN0CmluZGV4IDViNjg0NjguLjk2MjRiNjAgMTAwNjQ0Ci0tLSBhL0RvYy9yZWZlcmVuY2UvZXhwcmVzc2lvbnMucnN0CisrKyBiL0RvYy9yZWZlcmVuY2UvZXhwcmVzc2lvbnMucnN0CkBAIC0zMTgsNyArMzE4LDcgQEAKIAogLi4gcHJvZHVjdGlvbmxpc3Q6OgogICAgeWllbGRfYXRvbTogIigiIGB5aWVsZF9leHByZXNzaW9uYCAiKSIKLSAgIHlpZWxkX2V4cHJlc3Npb246ICJ5aWVsZCIgW2BleHByZXNzaW9uX2xpc3RgXQorICAgeWllbGRfZXhwcmVzc2lvbjogInlpZWxkIiBbYGV4cHJlc3Npb25fbGlzdGAgfCAiZnJvbSIgYGV4cHJlc3Npb25gXQogCiBUaGUgOmtleXdvcmQ6YHlpZWxkYCBleHByZXNzaW9uIGlzIG9ubHkgdXNlZCB3aGVuIGRlZmluaW5nIGEgZ2VuZXJhdG9yIGZ1bmN0aW9uLAogYW5kIGNhbiBvbmx5IGJlIHVzZWQgaW4gdGhlIGJvZHkgb2YgYSBmdW5jdGlvbiBkZWZpbml0aW9uLiAgVXNpbmcgYQpAQCAtMzM2LDcgKzMzNiwxMCBAQAogdGhlIGdlbmVyYXRvcidzIG1ldGhvZHMsIHRoZSBmdW5jdGlvbiBjYW4gcHJvY2VlZCBleGFjdGx5IGFzIGlmIHRoZQogOmtleXdvcmQ6YHlpZWxkYCBleHByZXNzaW9uIHdhcyBqdXN0IGFub3RoZXIgZXh0ZXJuYWwgY2FsbC4gIFRoZSB2YWx1ZSBvZiB0aGUKIDprZXl3b3JkOmB5aWVsZGAgZXhwcmVzc2lvbiBhZnRlciByZXN1bWluZyBkZXBlbmRzIG9uIHRoZSBtZXRob2Qgd2hpY2ggcmVzdW1lZAotdGhlIGV4ZWN1dGlvbi4KK3RoZSBleGVjdXRpb24uIElmIDptZXRoOmBfX25leHRfX2AgaXMgdXNlZCAodHlwaWNhbGx5IHZpYSBlaXRoZXIgYQorOmtleXdvcmQ6YGZvcmAgb3IgdGhlIDpmdW5jOmBuZXh0YCBidWlsdGluKSB0aGVuIHRoZSByZXN1bHQgaXMgOmNvbnN0OmBOb25lYCwKK290aGVyd2lzZSwgaWYgOm1ldGg6YHNlbmRgIGlzIHVzZWQsIHRoZW4gdGhlIHJlc3VsdCB3aWxsIGJlIHRoZSB2YWx1ZSBwYXNzZWQKK2luIHRvIHRoYXQgbWV0aG9kLgogCiAuLiBpbmRleDo6IHNpbmdsZTogY29yb3V0aW5lCiAKQEAgLTM0NiwxMiArMzQ5LDMyIEBACiB3aGVyZSBzaG91bGQgdGhlIGV4ZWN1dGlvbiBjb250aW51ZSBhZnRlciBpdCB5aWVsZHM7IHRoZSBjb250cm9sIGlzIGFsd2F5cwogdHJhbnNmZXJyZWQgdG8gdGhlIGdlbmVyYXRvcidzIGNhbGxlci4KIAotVGhlIDprZXl3b3JkOmB5aWVsZGAgc3RhdGVtZW50IGlzIGFsbG93ZWQgaW4gdGhlIDprZXl3b3JkOmB0cnlgIGNsYXVzZSBvZiBhCis6a2V5d29yZDpgeWllbGRgIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIHRoZSA6a2V5d29yZDpgdHJ5YCBjbGF1c2Ugb2YgYQogOmtleXdvcmQ6YHRyeWAgLi4uICA6a2V5d29yZDpgZmluYWxseWAgY29uc3RydWN0LiAgSWYgdGhlIGdlbmVyYXRvciBpcyBub3QKIHJlc3VtZWQgYmVmb3JlIGl0IGlzIGZpbmFsaXplZCAoYnkgcmVhY2hpbmcgYSB6ZXJvIHJlZmVyZW5jZSBjb3VudCBvciBieSBiZWluZwogZ2FyYmFnZSBjb2xsZWN0ZWQpLCB0aGUgZ2VuZXJhdG9yLWl0ZXJhdG9yJ3MgOm1ldGg6YGNsb3NlYCBtZXRob2Qgd2lsbCBiZQogY2FsbGVkLCBhbGxvd2luZyBhbnkgcGVuZGluZyA6a2V5d29yZDpgZmluYWxseWAgY2xhdXNlcyB0byBleGVjdXRlLgogCitXaGVuIGBgeWllbGQgZnJvbSA8ZXhwcj5gYCBpcyB1c2VkLCBpdCB0cmVhdHMgdGhlIHN1cHBsaWVkIGV4cHJlc3Npb24gYXMKK2Egc3ViaXRlcmF0b3IuIEFsbCB2YWx1ZXMgcHJvZHVjZWQgYnkgdGhhdCBzdWJpdGVyYXRvciBhcmUgcGFzc2VkIGRpcmVjdGx5Cit0byB0aGUgY2FsbGVyIG9mIHRoZSBjdXJyZW50IGdlbmVyYXRvcidzIG1ldGhvZHMuIEFueSB2YWx1ZXMgcGFzc2VkIGluIHdpdGgKKzptZXRoOmBzZW5kYCBhbmQgYW55IGV4Y2VwdGlvbnMgcGFzc2VkIGluIHdpdGggOm1ldGg6YHRocm93YCBhcmUgcGFzc2VkIHRvCit0aGUgdW5kZXJseWluZyBpdGVyYXRvciBpZiBpdCBoYXMgdGhlIGFwcHJvcHJpYXRlIG1ldGhvZHMuIElmIHRoaXMgaXMgbm90IHRoZQorY2FzZSwgdGhlbiA6bWV0aDpgc2VuZGAgd2lsbCByYWlzZSA6ZXhjOmBBdHRyaWJ1dGVFcnJvcmAgb3IgOmV4YzpgVHlwZUVycm9yYCwKK3doaWxlIDptZXRoOmB0aHJvd2Agd2lsbCBqdXN0IHJhaXNlIHRoZSBwYXNzZWQgaW4gZXhjZXB0aW9uIGltbWVkaWF0ZWx5LgorCitXaGVuIHRoZSB1bmRlcmx5aW5nIGl0ZXJhdG9yIGlzIGNvbXBsZXRlLCB0aGUgOmF0dHI6YH5TdG9wSXRlcmF0aW9uLnZhbHVlYAorYXR0cmlidXRlIG9mIHRoZSByYWlzZWQgOmV4YzpgU3RvcEl0ZXJhdGlvbmAgaW5zdGFuY2UgYmVjb21lcyB0aGUgdmFsdWUgb2YKK3RoZSB5aWVsZCBleHByZXNzaW9uLiBJdCBjYW4gYmUgZWl0aGVyIHNldCBleHBsaWNpdGx5IHdoZW4gcmFpc2luZworOmV4YzpgU3RvcEl0ZXJhdGlvbmAsIG9yIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGUgc3ViLWl0ZXJhdG9yIGlzIGEgZ2VuZXJhdG9yCisoYnkgcmV0dXJuaW5nIGEgdmFsdWUgZnJvbSB0aGUgc3ViLWdlbmVyYXRvcikuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCBgYHlpZWxkIGZyb20gPGV4cHI+YGAgdG8gZGVsZWdhdGUgY29udHJvbCBmbG93IHRvIGEgc3ViaXRlcmF0b3IKKworVGhlIHBhcmVudGhlc2VzIGNhbiBiZSBvbWl0dGVkIHdoZW4gdGhlIDprZXl3b3JkOmB5aWVsZGAgZXhwcmVzc2lvbiBpcyB0aGUKK3NvbGUgZXhwcmVzc2lvbiBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1lbnQgc3RhdGVtZW50LgorCiAuLiBpbmRleDo6IG9iamVjdDogZ2VuZXJhdG9yCiAKIFRoZSBmb2xsb3dpbmcgZ2VuZXJhdG9yJ3MgbWV0aG9kcyBjYW4gYmUgdXNlZCB0byBjb250cm9sIHRoZSBleGVjdXRpb24gb2YgYQpAQCAtNDQ0LDYgKzQ2NywxMCBAQAogICAgICAgVGhlIHByb3Bvc2FsIHRvIGVuaGFuY2UgdGhlIEFQSSBhbmQgc3ludGF4IG9mIGdlbmVyYXRvcnMsIG1ha2luZyB0aGVtCiAgICAgICB1c2FibGUgYXMgc2ltcGxlIGNvcm91dGluZXMuCiAKKyAgIDpwZXA6YDAzODBgIC0gU3ludGF4IGZvciBEZWxlZ2F0aW5nIHRvIGEgU3ViZ2VuZXJhdG9yCisgICAgICBUaGUgcHJvcG9zYWwgdG8gaW50cm9kdWNlIHRoZSA6dG9rZW46YHlpZWxkX2Zyb21gIHN5bnRheCwgbWFraW5nIGRlbGVnYXRpb24KKyAgICAgIHRvIHN1Yi1nZW5lcmF0b3JzIGVhc3kuCisKIAogLi4gX3ByaW1hcmllczoKIApkaWZmIC0tZ2l0IGEvRG9jL3JlZmVyZW5jZS9sZXhpY2FsX2FuYWx5c2lzLnJzdCBiL0RvYy9yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcy5yc3QKaW5kZXggNGI0OTczOC4uYmFiMzlmOSAxMDA2NDQKLS0tIGEvRG9jL3JlZmVyZW5jZS9sZXhpY2FsX2FuYWx5c2lzLnJzdAorKysgYi9Eb2MvcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMucnN0CkBAIC00MDEsNyArNDAxLDcgQEAKIAogLi4gcHJvZHVjdGlvbmxpc3Q6OgogICAgc3RyaW5nbGl0ZXJhbDogW2BzdHJpbmdwcmVmaXhgXShgc2hvcnRzdHJpbmdgIHwgYGxvbmdzdHJpbmdgKQotICAgc3RyaW5ncHJlZml4OiAiciIgfCAiUiIKKyAgIHN0cmluZ3ByZWZpeDogInIiIHwgInUiIHwgIlIiIHwgIlUiCiAgICBzaG9ydHN0cmluZzogIiciIGBzaG9ydHN0cmluZ2l0ZW1gKiAiJyIgfCAnIicgYHNob3J0c3RyaW5naXRlbWAqICciJwogICAgbG9uZ3N0cmluZzogIicnJyIgYGxvbmdzdHJpbmdpdGVtYCogIicnJyIgfCAnIiIiJyBgbG9uZ3N0cmluZ2l0ZW1gKiAnIiIiJwogICAgc2hvcnRzdHJpbmdpdGVtOiBgc2hvcnRzdHJpbmdjaGFyYCB8IGBzdHJpbmdlc2NhcGVzZXFgCkBAIC00MTIsNyArNDEyLDcgQEAKIAogLi4gcHJvZHVjdGlvbmxpc3Q6OgogICAgYnl0ZXNsaXRlcmFsOiBgYnl0ZXNwcmVmaXhgKGBzaG9ydGJ5dGVzYCB8IGBsb25nYnl0ZXNgKQotICAgYnl0ZXNwcmVmaXg6ICJiIiB8ICJCIiB8ICJiciIgfCAiQnIiIHwgImJSIiB8ICJCUiIKKyAgIGJ5dGVzcHJlZml4OiAiYiIgfCAiQiIgfCAiYnIiIHwgIkJyIiB8ICJiUiIgfCAiQlIiIHwgInJiIiB8ICJyQiIgfCAiUmIiIHwgIlJCIgogICAgc2hvcnRieXRlczogIiciIGBzaG9ydGJ5dGVzaXRlbWAqICInIiB8ICciJyBgc2hvcnRieXRlc2l0ZW1gKiAnIicKICAgIGxvbmdieXRlczogIicnJyIgYGxvbmdieXRlc2l0ZW1gKiAiJycnIiB8ICciIiInIGBsb25nYnl0ZXNpdGVtYCogJyIiIicKICAgIHNob3J0Ynl0ZXNpdGVtOiBgc2hvcnRieXRlc2NoYXJgIHwgYGJ5dGVzZXNjYXBlc2VxYApAQCAtNDQxLDEwICs0NDEsMjQgQEAKIG1heSBvbmx5IGNvbnRhaW4gQVNDSUkgY2hhcmFjdGVyczsgYnl0ZXMgd2l0aCBhIG51bWVyaWMgdmFsdWUgb2YgMTI4IG9yIGdyZWF0ZXIKIG11c3QgYmUgZXhwcmVzc2VkIHdpdGggZXNjYXBlcy4KIAorQXMgb2YgUHl0aG9uIDMuMyBpdCBpcyBwb3NzaWJsZSBhZ2FpbiB0byBwcmVmaXggdW5pY29kZSBzdHJpbmdzIHdpdGggYQorYGB1YGAgcHJlZml4IHRvIHNpbXBsaWZ5IG1haW50ZW5hbmNlIG9mIGR1YWwgMi54IGFuZCAzLnggY29kZWJhc2VzLgorCiBCb3RoIHN0cmluZyBhbmQgYnl0ZXMgbGl0ZXJhbHMgbWF5IG9wdGlvbmFsbHkgYmUgcHJlZml4ZWQgd2l0aCBhIGxldHRlciBgYCdyJ2BgCiBvciBgYCdSJ2BgOyBzdWNoIHN0cmluZ3MgYXJlIGNhbGxlZCA6ZGZuOmByYXcgc3RyaW5nc2AgYW5kIHRyZWF0IGJhY2tzbGFzaGVzIGFzCiBsaXRlcmFsIGNoYXJhY3RlcnMuICBBcyBhIHJlc3VsdCwgaW4gc3RyaW5nIGxpdGVyYWxzLCBgYCdcVSdgYCBhbmQgYGAnXHUnYGAKLWVzY2FwZXMgaW4gcmF3IHN0cmluZ3MgYXJlIG5vdCB0cmVhdGVkIHNwZWNpYWxseS4KK2VzY2FwZXMgaW4gcmF3IHN0cmluZ3MgYXJlIG5vdCB0cmVhdGVkIHNwZWNpYWxseS4gR2l2ZW4gdGhhdCBQeXRob24gMi54J3MgcmF3Cit1bmljb2RlIGxpdGVyYWxzIGJlaGF2ZSBkaWZmZXJlbnRseSB0aGFuIFB5dGhvbiAzLngncyB0aGUgYGAndXInYGAgc3ludGF4CitpcyBub3Qgc3VwcG9ydGVkLgorCisgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjMKKyAgICAgIFRoZSBgYCdyYidgYCBwcmVmaXggb2YgcmF3IGJ5dGVzIGxpdGVyYWxzIGhhcyBiZWVuIGFkZGVkIGFzIGEgc3lub255bQorICAgICAgb2YgYGAnYnInYGAuCisKKyAgIC4uIHZlcnNpb25hZGRlZDo6IDMuMworICAgICAgU3VwcG9ydCBmb3IgdGhlIHVuaWNvZGUgbGVnYWN5IGxpdGVyYWwgKGBgdSd2YWx1ZSdgYCkgd2FzIHJlaW50cm9kdWNlZAorICAgICAgdG8gc2ltcGxpZnkgdGhlIG1haW50ZW5hbmNlIG9mIGR1YWwgUHl0aG9uIDIueCBhbmQgMy54IGNvZGViYXNlcy4KKyAgICAgIFNlZSA6cGVwOmA0MTRgIGZvciBtb3JlIGluZm9ybWF0aW9uLgogCiBJbiB0cmlwbGUtcXVvdGVkIHN0cmluZ3MsIHVuZXNjYXBlZCBuZXdsaW5lcyBhbmQgcXVvdGVzIGFyZSBhbGxvd2VkIChhbmQgYXJlCiByZXRhaW5lZCksIGV4Y2VwdCB0aGF0IHRocmVlIHVuZXNjYXBlZCBxdW90ZXMgaW4gYSByb3cgdGVybWluYXRlIHRoZSBzdHJpbmcuICAoQQpAQCAtNDkyLDEzICs1MDYsMTMgQEAKICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKIHwgRXNjYXBlIFNlcXVlbmNlIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vdGVzIHwKICs9PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PSsKLXwgYGBcTntuYW1lfWBgICAgIHwgQ2hhcmFjdGVyIG5hbWVkICpuYW1lKiBpbiB0aGUgICB8ICAgICAgIHwKK3wgYGBcTntuYW1lfWBgICAgIHwgQ2hhcmFjdGVyIG5hbWVkICpuYW1lKiBpbiB0aGUgICB8IFwoNCkgIHwKIHwgICAgICAgICAgICAgICAgIHwgVW5pY29kZSBkYXRhYmFzZSAgICAgICAgICAgICAgICB8ICAgICAgIHwKICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKLXwgYGBcdXh4eHhgYCAgICAgIHwgQ2hhcmFjdGVyIHdpdGggMTYtYml0IGhleCB2YWx1ZSB8IFwoNCkgIHwKK3wgYGBcdXh4eHhgYCAgICAgIHwgQ2hhcmFjdGVyIHdpdGggMTYtYml0IGhleCB2YWx1ZSB8IFwoNSkgIHwKIHwgICAgICAgICAgICAgICAgIHwgKnh4eHgqICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwKICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKLXwgYGBcVXh4eHh4eHh4YGAgIHwgQ2hhcmFjdGVyIHdpdGggMzItYml0IGhleCB2YWx1ZSB8IFwoNSkgIHwKK3wgYGBcVXh4eHh4eHh4YGAgIHwgQ2hhcmFjdGVyIHdpdGggMzItYml0IGhleCB2YWx1ZSB8IFwoNikgIHwKIHwgICAgICAgICAgICAgICAgIHwgKnh4eHh4eHh4KiAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgIHwKICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSsKIApAQCAtNTE2LDEwICs1MzAsMTQgQEAKICAgIHdpdGggdGhlIGdpdmVuIHZhbHVlLgogCiAoNCkKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBTdXBwb3J0IGZvciBuYW1lIGFsaWFzZXMgWyNdXyBoYXMgYmVlbiBhZGRlZC4KKworKDUpCiAgICBJbmRpdmlkdWFsIGNvZGUgdW5pdHMgd2hpY2ggZm9ybSBwYXJ0cyBvZiBhIHN1cnJvZ2F0ZSBwYWlyIGNhbiBiZSBlbmNvZGVkIHVzaW5nCiAgICB0aGlzIGVzY2FwZSBzZXF1ZW5jZS4gIEV4YWN0bHkgZm91ciBoZXggZGlnaXRzIGFyZSByZXF1aXJlZC4KIAotKDUpCisoNikKICAgIEFueSBVbmljb2RlIGNoYXJhY3RlciBjYW4gYmUgZW5jb2RlZCB0aGlzIHdheSwgYnV0IGNoYXJhY3RlcnMgb3V0c2lkZSB0aGUgQmFzaWMKICAgIE11bHRpbGluZ3VhbCBQbGFuZSAoQk1QKSB3aWxsIGJlIGVuY29kZWQgdXNpbmcgYSBzdXJyb2dhdGUgcGFpciBpZiBQeXRob24gaXMKICAgIGNvbXBpbGVkIHRvIHVzZSAxNi1iaXQgY29kZSB1bml0cyAodGhlIGRlZmF1bHQpLiAgRXhhY3RseSBlaWdodCBoZXggZGlnaXRzCkBAIC03MDYsMyArNzI0LDggQEAKIG9jY3VycmVuY2Ugb3V0c2lkZSBzdHJpbmcgbGl0ZXJhbHMgYW5kIGNvbW1lbnRzIGlzIGFuIHVuY29uZGl0aW9uYWwgZXJyb3I6OgogCiAgICAkICAgICAgID8gICAgICAgYAorCisKKy4uIHJ1YnJpYzo6IEZvb3Rub3RlcworCisuLiBbI10gaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvNi4xLjAvdWNkL05hbWVBbGlhc2VzLnR4dApkaWZmIC0tZ2l0IGEvRG9jL3JlZmVyZW5jZS9zaW1wbGVfc3RtdHMucnN0IGIvRG9jL3JlZmVyZW5jZS9zaW1wbGVfc3RtdHMucnN0CmluZGV4IDczMTgzZDUuLmNlN2NlOTIgMTAwNjQ0Ci0tLSBhL0RvYy9yZWZlcmVuY2Uvc2ltcGxlX3N0bXRzLnJzdAorKysgYi9Eb2MvcmVmZXJlbmNlL3NpbXBsZV9zdG10cy5yc3QKQEAgLTQyNCwxMCArNDI0LDEwIEBACiA6a2V5d29yZDpgZmluYWxseWAgY2xhdXNlLCB0aGF0IDprZXl3b3JkOmBmaW5hbGx5YCBjbGF1c2UgaXMgZXhlY3V0ZWQgYmVmb3JlCiByZWFsbHkgbGVhdmluZyB0aGUgZnVuY3Rpb24uCiAKLUluIGEgZ2VuZXJhdG9yIGZ1bmN0aW9uLCB0aGUgOmtleXdvcmQ6YHJldHVybmAgc3RhdGVtZW50IGlzIG5vdCBhbGxvd2VkIHRvCi1pbmNsdWRlIGFuIDp0b2tlbjpgZXhwcmVzc2lvbl9saXN0YC4gIEluIHRoYXQgY29udGV4dCwgYSBiYXJlIDprZXl3b3JkOmByZXR1cm5gCi1pbmRpY2F0ZXMgdGhhdCB0aGUgZ2VuZXJhdG9yIGlzIGRvbmUgYW5kIHdpbGwgY2F1c2UgOmV4YzpgU3RvcEl0ZXJhdGlvbmAgdG8gYmUKLXJhaXNlZC4KK0luIGEgZ2VuZXJhdG9yIGZ1bmN0aW9uLCB0aGUgOmtleXdvcmQ6YHJldHVybmAgc3RhdGVtZW50IGluZGljYXRlcyB0aGF0IHRoZQorZ2VuZXJhdG9yIGlzIGRvbmUgYW5kIHdpbGwgY2F1c2UgOmV4YzpgU3RvcEl0ZXJhdGlvbmAgdG8gYmUgcmFpc2VkLiBUaGUgcmV0dXJuZWQKK3ZhbHVlIChpZiBhbnkpIGlzIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gY29uc3RydWN0IDpleGM6YFN0b3BJdGVyYXRpb25gIGFuZAorYmVjb21lcyB0aGUgOmF0dHI6YFN0b3BJdGVyYXRpb24udmFsdWVgIGF0dHJpYnV0ZS4KIAogCiAuLiBfeWllbGQ6CkBAIC00NDksNiArNDQ5LDcgQEAKIGFuZCBpcyBvbmx5IHVzZWQgaW4gdGhlIGJvZHkgb2YgdGhlIGdlbmVyYXRvciBmdW5jdGlvbi4gVXNpbmcgYSA6a2V5d29yZDpgeWllbGRgCiBzdGF0ZW1lbnQgaW4gYSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIHN1ZmZpY2llbnQgdG8gY2F1c2UgdGhhdCBkZWZpbml0aW9uIHRvCiBjcmVhdGUgYSBnZW5lcmF0b3IgZnVuY3Rpb24gaW5zdGVhZCBvZiBhIG5vcm1hbCBmdW5jdGlvbi4KKwogV2hlbiBhIGdlbmVyYXRvciBmdW5jdGlvbiBpcyBjYWxsZWQsIGl0IHJldHVybnMgYW4gaXRlcmF0b3Iga25vd24gYXMgYSBnZW5lcmF0b3IKIGl0ZXJhdG9yLCBvciBtb3JlIGNvbW1vbmx5LCBhIGdlbmVyYXRvci4gIFRoZSBib2R5IG9mIHRoZSBnZW5lcmF0b3IgZnVuY3Rpb24gaXMKIGV4ZWN1dGVkIGJ5IGNhbGxpbmcgdGhlIDpmdW5jOmBuZXh0YCBmdW5jdGlvbiBvbiB0aGUgZ2VuZXJhdG9yIHJlcGVhdGVkbHkgdW50aWwKQEAgLTQ2OCwxNCArNDY5LDI4IEBACiBnYXJiYWdlIGNvbGxlY3RlZCksIHRoZSBnZW5lcmF0b3ItaXRlcmF0b3IncyA6bWV0aDpgY2xvc2VgIG1ldGhvZCB3aWxsIGJlCiBjYWxsZWQsIGFsbG93aW5nIGFueSBwZW5kaW5nIDprZXl3b3JkOmBmaW5hbGx5YCBjbGF1c2VzIHRvIGV4ZWN1dGUuCiAKK1doZW4gYGB5aWVsZCBmcm9tIDxleHByPmBgIGlzIHVzZWQsIGl0IHRyZWF0cyB0aGUgc3VwcGxpZWQgZXhwcmVzc2lvbiBhcworYSBzdWJpdGVyYXRvciwgcHJvZHVjaW5nIHZhbHVlcyBmcm9tIGl0IHVudGlsIHRoZSB1bmRlcmx5aW5nIGl0ZXJhdG9yIGlzCitleGhhdXN0ZWQuCisKKyAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMy4zCisgICAgICBBZGRlZCBgYHlpZWxkIGZyb20gPGV4cHI+YGAgdG8gZGVsZWdhdGUgY29udHJvbCBmbG93IHRvIGEgc3ViaXRlcmF0b3IKKworRm9yIGZ1bGwgZGV0YWlscyBvZiA6a2V5d29yZDpgeWllbGRgIHNlbWFudGljcywgcmVmZXIgdG8gdGhlIDpyZWY6YHlpZWxkZXhwcmAKK3NlY3Rpb24uCisKIC4uIHNlZWFsc286OgogCiAgICA6cGVwOmAwMjU1YCAtIFNpbXBsZSBHZW5lcmF0b3JzCiAgICAgICBUaGUgcHJvcG9zYWwgZm9yIGFkZGluZyBnZW5lcmF0b3JzIGFuZCB0aGUgOmtleXdvcmQ6YHlpZWxkYCBzdGF0ZW1lbnQgdG8gUHl0aG9uLgogCiAgICA6cGVwOmAwMzQyYCAtIENvcm91dGluZXMgdmlhIEVuaGFuY2VkIEdlbmVyYXRvcnMKLSAgICAgIFRoZSBwcm9wb3NhbCB0aGF0LCBhbW9uZyBvdGhlciBnZW5lcmF0b3IgZW5oYW5jZW1lbnRzLCBwcm9wb3NlZCBhbGxvd2luZwotICAgICAgOmtleXdvcmQ6YHlpZWxkYCB0byBhcHBlYXIgaW5zaWRlIGEgOmtleXdvcmQ6YHRyeWAgLi4uIDprZXl3b3JkOmBmaW5hbGx5YCBibG9jay4KKyAgICAgIFRoZSBwcm9wb3NhbCB0byBlbmhhbmNlIHRoZSBBUEkgYW5kIHN5bnRheCBvZiBnZW5lcmF0b3JzLCBtYWtpbmcgdGhlbQorICAgICAgdXNhYmxlIGFzIHNpbXBsZSBjb3JvdXRpbmVzLgorCisgICA6cGVwOmAwMzgwYCAtIFN5bnRheCBmb3IgRGVsZWdhdGluZyB0byBhIFN1YmdlbmVyYXRvcgorICAgICAgVGhlIHByb3Bvc2FsIHRvIGludHJvZHVjZSB0aGUgOnRva2VuOmB5aWVsZF9mcm9tYCBzeW50YXgsIG1ha2luZyBkZWxlZ2F0aW9uCisgICAgICB0byBzdWItZ2VuZXJhdG9ycyBlYXN5LgogCiAKIC4uIF9yYWlzZToKQEAgLTc2MCw3ICs3NzUsOCBAQAogYmUgc2V0IHRvIHRoZSBuYW1lIG9mIHBhY2thZ2UgdGhhdCBjb250YWlucyB0aGUgbW9kdWxlIG9yIHBhY2thZ2UgKHRoZSBlbXB0eQogc3RyaW5nIGlzIHVzZWQgZm9yIG1vZHVsZSBub3QgY29udGFpbmVkIGluIGEgcGFja2FnZSkuIDpkYXRhOmBfX2xvYWRlcl9fYCBpcwogYWxzbyBvcHRpb25hbCBidXQgc2hvdWxkIGJlIHNldCB0byB0aGUgbG9hZGVyIG9iamVjdCB0aGF0IGlzIGxvYWRpbmcgdGhlCi1tb2R1bGUuCittb2R1bGUuIFdoaWxlIGxvYWRlcnMgYXJlIHJlcXVpcmVkIHRvIHJldHVybiB0aGUgbW9kdWxlIHRoZXkgbG9hZGVkLCBpbXBvcnQKK2l0c2VsZiBhbHdheXMgcmV0cmlldmVzIGFueSBtb2R1bGVzIGl0IHJldHVybnMgZnJvbSA6ZGF0YTpgc3lzLm1vZHVsZXNgLgogCiAuLiBpbmRleDo6CiAgICAgZXhjZXB0aW9uOiBJbXBvcnRFcnJvcgpkaWZmIC0tZ2l0IGEvRG9jL3Rvb2xzL3NwaGlueGV4dC9pbmRleHNpZGViYXIuaHRtbCBiL0RvYy90b29scy9zcGhpbnhleHQvaW5kZXhzaWRlYmFyLmh0bWwKaW5kZXggNzQ4Y2I5MS4uMjAxODAxMSAxMDA2NDQKLS0tIGEvRG9jL3Rvb2xzL3NwaGlueGV4dC9pbmRleHNpZGViYXIuaHRtbAorKysgYi9Eb2MvdG9vbHMvc3BoaW54ZXh0L2luZGV4c2lkZWJhci5odG1sCkBAIC0zLDcgKzMsNyBAQAogCSAgICA8aDM+RG9jcyBmb3Igb3RoZXIgdmVyc2lvbnM8L2gzPgogCSAgICA8dWw+CiAJICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMi43LyI+UHl0aG9uIDIuNyAoc3RhYmxlKTwvYT48L2xpPgotCSAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vZG9jcy5weXRob24ub3JnLzMuMy8iPlB5dGhvbiAzLjMgKGluIGRldmVsb3BtZW50KTwvYT48L2xpPgorCSAgICAgIDxsaT48YSBocmVmPSJodHRwOi8vZG9jcy5weXRob24ub3JnLzMuMi8iPlB5dGhvbiAzLjIgKHN0YWJsZSk8L2E+PC9saT4KICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Imh0dHA6Ly93d3cucHl0aG9uLm9yZy9kb2MvdmVyc2lvbnMvIj5PbGQgdmVyc2lvbnM8L2E+PC9saT4KICAgICAgICAgICAgIDwvdWw+CiAKZGlmZiAtLWdpdCBhL0RvYy90b29scy9zcGhpbnhleHQvcGF0Y2hsZXZlbC5weSBiL0RvYy90b29scy9zcGhpbnhleHQvcGF0Y2hsZXZlbC5weQppbmRleCBiMDcwZDYwLi5iY2EyZWI4IDEwMDY0NAotLS0gYS9Eb2MvdG9vbHMvc3BoaW54ZXh0L3BhdGNobGV2ZWwucHkKKysrIGIvRG9jL3Rvb2xzL3NwaGlueGV4dC9wYXRjaGxldmVsLnB5CkBAIC0zNCw4ICszNCw3IEBACiAKICAgICByZWxlYXNlID0gdmVyc2lvbiA9ICclcy4lcycgJSAoZFsnUFlfTUFKT1JfVkVSU0lPTiddLCBkWydQWV9NSU5PUl9WRVJTSU9OJ10pCiAgICAgbWljcm8gPSBpbnQoZFsnUFlfTUlDUk9fVkVSU0lPTiddKQotICAgIGlmIG1pY3JvICE9IDA6Ci0gICAgICAgIHJlbGVhc2UgKz0gJy4nICsgc3RyKG1pY3JvKQorICAgIHJlbGVhc2UgKz0gJy4nICsgc3RyKG1pY3JvKQogCiAgICAgbGV2ZWwgPSBkWydQWV9SRUxFQVNFX0xFVkVMJ10KICAgICBzdWZmaXhlcyA9IHsKQEAgLTUxLDggKzUwLDcgQEAKIGRlZiBnZXRfc3lzX3ZlcnNpb25faW5mbygpOgogICAgIG1ham9yLCBtaW5vciwgbWljcm8sIGxldmVsLCBzZXJpYWwgPSBzeXMudmVyc2lvbl9pbmZvCiAgICAgcmVsZWFzZSA9IHZlcnNpb24gPSAnJXMuJXMnICUgKG1ham9yLCBtaW5vcikKLSAgICBpZiBtaWNybzoKLSAgICAgICAgcmVsZWFzZSArPSAnLiVzJyAlIG1pY3JvCisgICAgcmVsZWFzZSArPSAnLiVzJyAlIG1pY3JvCiAgICAgaWYgbGV2ZWwgIT0gJ2ZpbmFsJzoKICAgICAgICAgcmVsZWFzZSArPSAnJXMlcycgJSAobGV2ZWxbMF0sIHNlcmlhbCkKICAgICByZXR1cm4gdmVyc2lvbiwgcmVsZWFzZQpkaWZmIC0tZ2l0IGEvRG9jL3Rvb2xzL3NwaGlueGV4dC9weXNwZWNpZmljLnB5IGIvRG9jL3Rvb2xzL3NwaGlueGV4dC9weXNwZWNpZmljLnB5CmluZGV4IDg5YmI4NmYuLmJmZjEwYWIgMTAwNjQ0Ci0tLSBhL0RvYy90b29scy9zcGhpbnhleHQvcHlzcGVjaWZpYy5weQorKysgYi9Eb2MvdG9vbHMvc3BoaW54ZXh0L3B5c3BlY2lmaWMucHkKQEAgLTUsMTIgKzUsMTIgQEAKIAogICAgIFNwaGlueCBleHRlbnNpb24gd2l0aCBQeXRob24gZG9jLXNwZWNpZmljIG1hcmt1cC4KIAotICAgIDpjb3B5cmlnaHQ6IDIwMDgsIDIwMDksIDIwMTAgYnkgR2VvcmcgQnJhbmRsLgorICAgIDpjb3B5cmlnaHQ6IDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIgYnkgR2VvcmcgQnJhbmRsLgogICAgIDpsaWNlbnNlOiBQeXRob24gbGljZW5zZS4KICIiIgogCiBJU1NVRV9VUkkgPSAnaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZSVzJwotU09VUkNFX1VSSSA9ICdodHRwOi8vaGcucHl0aG9uLm9yZy9jcHl0aG9uL2ZpbGUvMy4yLyVzJworU09VUkNFX1VSSSA9ICdodHRwOi8vaGcucHl0aG9uLm9yZy9jcHl0aG9uL2ZpbGUvZGVmYXVsdC8lcycKIAogZnJvbSBkb2N1dGlscyBpbXBvcnQgbm9kZXMsIHV0aWxzCiBmcm9tIHNwaGlueC51dGlsLm5vZGVzIGltcG9ydCBzcGxpdF9leHBsaWNpdF90aXRsZQpAQCAtMjAxLDExICsyMDEsMTIgQEAKICAgICAgICAgICAgIGRvY3VtZW50LmFwcGVuZChkb2N0cmVlLmlkc1tsYWJlbGlkXSkKICAgICAgICAgICAgIGRlc3RpbmF0aW9uID0gU3RyaW5nT3V0cHV0KGVuY29kaW5nPSd1dGYtOCcpCiAgICAgICAgICAgICB3cml0ZXIud3JpdGUoZG9jdW1lbnQsIGRlc3RpbmF0aW9uKQotICAgICAgICAgICAgc2VsZi50b3BpY3NbbGFiZWxdID0gc3RyKHdyaXRlci5vdXRwdXQpCisgICAgICAgICAgICBzZWxmLnRvcGljc1tsYWJlbF0gPSB3cml0ZXIub3V0cHV0LmVuY29kZSgndXRmLTgnKQogCiAgICAgZGVmIGZpbmlzaChzZWxmKToKICAgICAgICAgZiA9IG9wZW4ocGF0aC5qb2luKHNlbGYub3V0ZGlyLCAndG9waWNzLnB5JyksICd3JykKICAgICAgICAgdHJ5OgorICAgICAgICAgICAgZi53cml0ZSgnIyAtKi0gY29kaW5nOiB1dGYtOCAtKi1cbicpCiAgICAgICAgICAgICBmLndyaXRlKCcjIEF1dG9nZW5lcmF0ZWQgYnkgU3BoaW54IG9uICVzXG4nICUgYXNjdGltZSgpKQogICAgICAgICAgICAgZi53cml0ZSgndG9waWNzID0gJyArIHBmb3JtYXQoc2VsZi50b3BpY3MpICsgJ1xuJykKICAgICAgICAgZmluYWxseToKZGlmZiAtLWdpdCBhL0RvYy90b29scy9zcGhpbnhleHQvc3VzcC1pZ25vcmVkLmNzdiBiL0RvYy90b29scy9zcGhpbnhleHQvc3VzcC1pZ25vcmVkLmNzdgppbmRleCA1MDc2YWVkLi44Y2U0NzhhIDEwMDY0NAotLS0gYS9Eb2MvdG9vbHMvc3BoaW54ZXh0L3N1c3AtaWdub3JlZC5jc3YKKysrIGIvRG9jL3Rvb2xzL3NwaGlueGV4dC9zdXNwLWlnbm9yZWQuY3N2CkBAIC0xLDE2ICsxLDI0IEBACiBjLWFwaS9hcmcsLDpyZWYsIlB5QXJnX1BhcnNlVHVwbGUoYXJncywgIiJPfE86cmVmIiIsICZvYmplY3QsICZjYWxsYmFjaykiCiBjLWFwaS9saXN0LCw6aGlnaCxsaXN0W2xvdzpoaWdoXQogYy1hcGkvbGlzdCwsOmhpZ2gsbGlzdFtsb3c6aGlnaF0gPSBpdGVtbGlzdAorYy1hcGkvc2VxdWVuY2UsLDppMixkZWwgb1tpMTppMl0KIGMtYXBpL3NlcXVlbmNlLCw6aTIsb1tpMTppMl0KIGMtYXBpL3NlcXVlbmNlLCw6aTIsb1tpMTppMl0gPSB2Ci1jLWFwaS9zZXF1ZW5jZSwsOmkyLGRlbCBvW2kxOmkyXQogYy1hcGkvdW5pY29kZSwsOmVuZCxzdHJbc3RhcnQ6ZW5kXQorYy1hcGkvdW5pY29kZSwsOnN0YXJ0LHVuaWNvZGVbc3RhcnQ6c3RhcnQrbGVuZ3RoXQorZGlzdHV0aWxzL2V4YW1wbGVzLDI2NyxgLFRoaXMgaXMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBgYGZvb2JhcmBgIHBhY2thZ2UuCiBkaXN0dXRpbHMvc2V0dXBzY3JpcHQsLDo6LAogZXh0ZW5kaW5nL2VtYmVkZGluZywsOm51bWFyZ3MsImlmKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICIiOm51bWFyZ3MiIikpIgotZXh0ZW5kaW5nL2V4dGVuZGluZywsOnNldCwiaWYgKFB5QXJnX1BhcnNlVHVwbGUoYXJncywgIiJPOnNldF9jYWxsYmFjayIiLCAmdGVtcCkpIHsiCiBleHRlbmRpbmcvZXh0ZW5kaW5nLCw6bXlmdW5jdGlvbiwiUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiIkQ6bXlmdW5jdGlvbiIiLCAmYyk7IgorZXh0ZW5kaW5nL2V4dGVuZGluZywsOnNldCwiaWYgKFB5QXJnX1BhcnNlVHVwbGUoYXJncywgIiJPOnNldF9jYWxsYmFjayIiLCAmdGVtcCkpIHsiCiBleHRlbmRpbmcvbmV3dHlwZXMsLDpjYWxsLCJpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIiJzc3M6Y2FsbCIiLCAmYXJnMSwgJmFyZzIsICZhcmczKSkgeyIKIGV4dGVuZGluZy93aW5kb3dzLCw6aW5pdHNwYW0sL2V4cG9ydDppbml0c3BhbQorZmFxL3Byb2dyYW1taW5nLCw6Y2hyLCI+PTQuMCkgb3IgMStmKHhjLHljLHgqeC15KnkreGMsMi4wKngqeSt5YyxrLTEsZik6Zih4Yyx5Yyx4LHksayxmKTpjaHIoIgorZmFxL3Byb2dyYW1taW5nLCw6Oixmb3IgeCBpbiBzZXF1ZW5jZVs6Oi0xXToKK2ZhcS9wcm9ncmFtbWluZywsOnJlZHVjZSwicHJpbnQoKGxhbWJkYSBSdSxSbyxJdSxJbyxJTSxTeCxTeTpyZWR1Y2UobGFtYmRhIHgseTp4K3ksbWFwKGxhbWJkYSB5LCIKK2ZhcS9wcm9ncmFtbWluZywsOnJlZHVjZSwiU3g9U3gsU3k9U3k6cmVkdWNlKGxhbWJkYSB4LHk6eCt5LG1hcChsYW1iZGEgeCx4Yz1SdSx5Yz15YyxSdT1SdSxSbz1SbywiCitmYXEvd2luZG93cywyMjksOkVPRixAc2V0bG9jYWwgZW5hYmxlZXh0ZW5zaW9ucyAmIHB5dGhvbiAteCAlfmYwICUqICYgZ290byA6RU9GCitmYXEvd2luZG93cywzOTMsOlJFRywucHkgOlJFR19TWjogYzpcPHBhdGggdG8gcHl0aG9uPlxweXRob24uZXhlIC11ICVzICVzCiBob3d0by9jcG9ydGluZywsOmFkZCwiaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICIiaWk6YWRkX2ludHMiIiwgJm9uZSwgJnR3bykpIgogaG93dG8vY3BvcnRpbmcsLDplbmNvZGUsImlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiIk86ZW5jb2RlX29iamVjdCIiLCAmbXlvYmopKSIKIGhvd3RvL2Nwb3J0aW5nLCw6c2F5LCJpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIiJVOnNheV9oZWxsbyIiLCAmbmFtZSkpIgpAQCAtMjIsMTkgKzMwLDg3IEBACiBob3d0by9jdXJzZXMsLDpyZWQsIlRoZXkgYXJlOiAwOmJsYWNrLCAxOnJlZCwgMjpncmVlbiwgMzp5ZWxsb3csIDQ6Ymx1ZSwgNTptYWdlbnRhLCA2OmN5YW4sIGFuZCIKIGhvd3RvL2N1cnNlcywsOndoaXRlLCI3OndoaXRlLiIKIGhvd3RvL2N1cnNlcywsOnllbGxvdywiVGhleSBhcmU6IDA6YmxhY2ssIDE6cmVkLCAyOmdyZWVuLCAzOnllbGxvdywgNDpibHVlLCA1Om1hZ2VudGEsIDY6Y3lhbiwgYW5kIgoraG93dG8vaXBhZGRyZXNzLCw6REI4LD4+PiBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMjAwMTpEQjg6OjEnKQoraG93dG8vaXBhZGRyZXNzLCw6Oiw+Pj4gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzIwMDE6REI4OjoxJykKK2hvd3RvL2lwYWRkcmVzcywsOmRiOCxJUHY2QWRkcmVzcygnMjAwMTpkYjg6OjEnKQoraG93dG8vaXBhZGRyZXNzLCw6OixJUHY2QWRkcmVzcygnMjAwMTpkYjg6OjEnKQoraG93dG8vaXBhZGRyZXNzLCw6ZGI4LElQdjZBZGRyZXNzKCcyMDAxOmRiODo6MScpCitob3d0by9pcGFkZHJlc3MsLDo6LElQdjZBZGRyZXNzKCcyMDAxOmRiODo6MScpCitob3d0by9pcGFkZHJlc3MsLDo6LElQdjZBZGRyZXNzKCc6OjEnKQoraG93dG8vaXBhZGRyZXNzLCw6ZGI4LD4+PiBpcGFkZHJlc3MuaXBfbmV0d29yaygnMjAwMTpkYjg6OjAvOTYnKQoraG93dG8vaXBhZGRyZXNzLCw6Oiw+Pj4gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzIwMDE6ZGI4OjowLzk2JykKK2hvd3RvL2lwYWRkcmVzcywsOmRiOCxJUHY2TmV0d29yaygnMjAwMTpkYjg6Oi85NicpCitob3d0by9pcGFkZHJlc3MsLDo6LElQdjZOZXR3b3JrKCcyMDAxOmRiODo6Lzk2JykKK2hvd3RvL2lwYWRkcmVzcywsOmRiOCxJUHY2TmV0d29yaygnMjAwMTpkYjg6Oi8xMjgnKQoraG93dG8vaXBhZGRyZXNzLCw6OixJUHY2TmV0d29yaygnMjAwMTpkYjg6Oi8xMjgnKQoraG93dG8vaXBhZGRyZXNzLCw6ZGI4LD4+PiBpcGFkZHJlc3MuaXBfbmV0d29yaygnMjAwMTpkYjg6OjEvOTYnKQoraG93dG8vaXBhZGRyZXNzLCw6Oiw+Pj4gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzIwMDE6ZGI4OjoxLzk2JykKK2hvd3RvL2lwYWRkcmVzcywsOmRiOCxJUHY2SW50ZXJmYWNlKCcyMDAxOmRiODo6MS85NicpCitob3d0by9pcGFkZHJlc3MsLDo6LElQdjZJbnRlcmZhY2UoJzIwMDE6ZGI4OjoxLzk2JykKK2hvd3RvL2lwYWRkcmVzcywsOmRiOCw+Pj4gYWRkcjYgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMjAwMTpkYjg6OjEnKQoraG93dG8vaXBhZGRyZXNzLCw6Oiw+Pj4gYWRkcjYgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMjAwMTpkYjg6OjEnKQoraG93dG8vaXBhZGRyZXNzLCw6ZGI4LD4+PiBob3N0NiA9IGlwYWRkcmVzcy5pcF9pbnRlcmZhY2UoJzIwMDE6ZGI4OjoxLzk2JykKK2hvd3RvL2lwYWRkcmVzcywsOjosPj4+IGhvc3Q2ID0gaXBhZGRyZXNzLmlwX2ludGVyZmFjZSgnMjAwMTpkYjg6OjEvOTYnKQoraG93dG8vaXBhZGRyZXNzLCw6ZGI4LElQdjZOZXR3b3JrKCcyMDAxOmRiODo6Lzk2JykKK2hvd3RvL2lwYWRkcmVzcywsOjosSVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjovOTYnKQoraG93dG8vaXBhZGRyZXNzLCw6ZGI4LD4+PiBuZXQ2ID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzIwMDE6ZGI4OjowLzk2JykKK2hvd3RvL2lwYWRkcmVzcywsOjosPj4+IG5ldDYgPSBpcGFkZHJlc3MuaXBfbmV0d29yaygnMjAwMTpkYjg6OjAvOTYnKQoraG93dG8vaXBhZGRyZXNzLCw6ZGI4LD4+PiBuZXQ2ID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzIwMDE6ZGI4OjowLzk2JykKK2hvd3RvL2lwYWRkcmVzcywsOjosPj4+IG5ldDYgPSBpcGFkZHJlc3MuaXBfbmV0d29yaygnMjAwMTpkYjg6OjAvOTYnKQoraG93dG8vaXBhZGRyZXNzLCw6ZmZmZixJUHY2QWRkcmVzcygnZmZmZjpmZmZmOmZmZmY6ZmZmZjpmZmZmOmZmZmY6OicpCitob3d0by9pcGFkZHJlc3MsLDo6LElQdjZBZGRyZXNzKCdmZmZmOmZmZmY6ZmZmZjpmZmZmOmZmZmY6ZmZmZjo6JykKK2hvd3RvL2lwYWRkcmVzcywsOjosSVB2NkFkZHJlc3MoJzo6ZmZmZjpmZmZmJykKK2hvd3RvL2lwYWRkcmVzcywsOmZmZmYsSVB2NkFkZHJlc3MoJzo6ZmZmZjpmZmZmJykKK2hvd3RvL2lwYWRkcmVzcywsOjosSVB2NkFkZHJlc3MoJzIwMDE6OjEnKQoraG93dG8vaXBhZGRyZXNzLCw6OixJUHY2QWRkcmVzcygnMjAwMTo6ZmZmZjpmZmZmJykKK2hvd3RvL2lwYWRkcmVzcywsOmZmZmYsSVB2NkFkZHJlc3MoJzIwMDE6OmZmZmY6ZmZmZicpCitob3d0by9sb2dnaW5nLCw6QW5kLCJXQVJOSU5HOkFuZCB0aGlzLCB0b28iCitob3d0by9sb2dnaW5nLCw6QW5kLCJXQVJOSU5HOnJvb3Q6QW5kIHRoaXMsIHRvbyIKK2hvd3RvL2xvZ2dpbmcsLDpEb2luZyxJTkZPOnJvb3Q6RG9pbmcgc29tZXRoaW5nCitob3d0by9sb2dnaW5nLCw6RmluaXNoZWQsSU5GTzpyb290OkZpbmlzaGVkCitob3d0by9sb2dnaW5nLCw6bG9nZ2VyLHNldmVyaXR5OmxvZ2dlciBuYW1lOm1lc3NhZ2UKK2hvd3RvL2xvZ2dpbmcsLDpMb29rLFdBUk5JTkc6cm9vdDpMb29rIGJlZm9yZSB5b3UgbGVhcCEKK2hvd3RvL2xvZ2dpbmcsLDptZXNzYWdlLHNldmVyaXR5OmxvZ2dlciBuYW1lOm1lc3NhZ2UKK2hvd3RvL2xvZ2dpbmcsLDpyb290LERFQlVHOnJvb3Q6VGhpcyBtZXNzYWdlIHNob3VsZCBnbyB0byB0aGUgbG9nIGZpbGUKK2hvd3RvL2xvZ2dpbmcsLDpyb290LElORk86cm9vdDpEb2luZyBzb21ldGhpbmcKK2hvd3RvL2xvZ2dpbmcsLDpyb290LElORk86cm9vdDpGaW5pc2hlZAoraG93dG8vbG9nZ2luZywsOnJvb3QsSU5GTzpyb290OlNvIHNob3VsZCB0aGlzCitob3d0by9sb2dnaW5nLCw6cm9vdCxJTkZPOnJvb3Q6U3RhcnRlZAoraG93dG8vbG9nZ2luZywsOnJvb3QsIldBUk5JTkc6cm9vdDpBbmQgdGhpcywgdG9vIgoraG93dG8vbG9nZ2luZywsOnJvb3QsV0FSTklORzpyb290Okxvb2sgYmVmb3JlIHlvdSBsZWFwIQoraG93dG8vbG9nZ2luZywsOnJvb3QsV0FSTklORzpyb290OldhdGNoIG91dCEKK2hvd3RvL2xvZ2dpbmcsLDpTbyxJTkZPOnJvb3Q6U28gc2hvdWxkIHRoaXMKK2hvd3RvL2xvZ2dpbmcsLDpTbyxJTkZPOlNvIHNob3VsZCB0aGlzCitob3d0by9sb2dnaW5nLCw6U3RhcnRlZCxJTkZPOnJvb3Q6U3RhcnRlZAoraG93dG8vbG9nZ2luZywsOlRoaXMsREVCVUc6cm9vdDpUaGlzIG1lc3NhZ2Ugc2hvdWxkIGdvIHRvIHRoZSBsb2cgZmlsZQoraG93dG8vbG9nZ2luZywsOlRoaXMsREVCVUc6VGhpcyBtZXNzYWdlIHNob3VsZCBhcHBlYXIgb24gdGhlIGNvbnNvbGUKK2hvd3RvL2xvZ2dpbmcsLDpXYXRjaCxXQVJOSU5HOnJvb3Q6V2F0Y2ggb3V0IQoraG93dG8vcHlwb3J0aW5nLDc1LDo6LCMgbWFrZSBzdXJlIHRvIHVzZSA6OiBQeXRob24gKmFuZCogOjogUHl0aG9uIDo6IDMgc28KK2hvd3RvL3B5cG9ydGluZyw3NSw6OiwiJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbicsIgoraG93dG8vcHlwb3J0aW5nLDc1LDo6LCdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMycKIGhvd3RvL3JlZ2V4LCw6OiwKIGhvd3RvL3JlZ2V4LCw6Zm9vLCg/OmZvbykKIGhvd3RvL3VybGxpYjIsLDpleGFtcGxlLCJmb3IgZXhhbXBsZSAiImpvZUBwYXNzd29yZDpleGFtcGxlLmNvbSIiIgogaG93dG8vd2Vic2VydmVycywsLi4gaW1hZ2U6LC4uIGltYWdlOjogaHR0cC5wbmcKIGxpYnJhcnkvYXVkaW9vcCwsOmlwb3MsIiMgZmFjdG9yID0gYXVkaW9vcC5maW5kZmFjdG9yKGluX3Rlc3RbaXBvcyoyOmlwb3MqMitsZW4ob3V0X3Rlc3QpXSwiCitsaWJyYXJ5L2Jpc2VjdCwzMiw6aGksYWxsKHZhbCA+PSB4IGZvciB2YWwgaW4gYVtpOmhpXSkKK2xpYnJhcnkvYmlzZWN0LDQyLDpoaSxhbGwodmFsID4geCBmb3IgdmFsIGluIGFbaTpoaV0pCitsaWJyYXJ5L2NvbmZpZ3BhcnNlciwsOmhvbWUsbXlfZGlyOiAke0NvbW1vbjpob21lX2Rpcn0vdHdvc2hlZHMKK2xpYnJhcnkvY29uZmlncGFyc2VyLCw6b3B0aW9uLCR7c2VjdGlvbjpvcHRpb259CitsaWJyYXJ5L2NvbmZpZ3BhcnNlciwsOnBhdGgscHl0aG9uX2RpcjogJHtGcmFtZXdvcmtzOnBhdGh9L1B5dGhvbi9WZXJzaW9ucy8ke0ZyYW1ld29ya3M6UHl0aG9ufQorbGlicmFyeS9jb25maWdwYXJzZXIsLDpQeXRob24scHl0aG9uX2RpcjogJHtGcmFtZXdvcmtzOnBhdGh9L1B5dGhvbi9WZXJzaW9ucy8ke0ZyYW1ld29ya3M6UHl0aG9ufQorbGlicmFyeS9jb25maWdwYXJzZXIsLGAsIyBTZXQgdGhlIG9wdGlvbmFsIGByYXdgIGFyZ3VtZW50IG9mIGdldCgpIHRvIFRydWUgaWYgeW91IHdpc2ggdG8gZGlzYWJsZQorbGlicmFyeS9jb25maWdwYXJzZXIsLDpzeXN0ZW0scGF0aDogJHtDb21tb246c3lzdGVtX2Rpcn0vTGlicmFyeS9GcmFtZXdvcmtzLworbGlicmFyeS9jb25maWdwYXJzZXIsLGAsIyBUaGUgb3B0aW9uYWwgYGZhbGxiYWNrYCBhcmd1bWVudCBjYW4gYmUgdXNlZCB0byBwcm92aWRlIGEgZmFsbGJhY2sgdmFsdWUKK2xpYnJhcnkvY29uZmlncGFyc2VyLCxgLCMgVGhlIG9wdGlvbmFsIGB2YXJzYCBhcmd1bWVudCBpcyBhIGRpY3Qgd2l0aCBtZW1iZXJzIHRoYXQgd2lsbCB0YWtlCiBsaWJyYXJ5L2RhdGV0aW1lLCw6TU0sCiBsaWJyYXJ5L2RhdGV0aW1lLCw6U1MsCiBsaWJyYXJ5L2RlY2ltYWwsLDpvcHRpb25hbCwidHJhaWxuZWc6b3B0aW9uYWwgdHJhaWxpbmcgbWludXMgaW5kaWNhdG9yIgogbGlicmFyeS9kaWZmbGliLCw6YWhpLGFbYWxvOmFoaV0KIGxpYnJhcnkvZGlmZmxpYiwsOmJoaSxiW2JsbzpiaGldCitsaWJyYXJ5L2RpZmZsaWIsLDppMSwKIGxpYnJhcnkvZGlmZmxpYiwsOmkyLAogbGlicmFyeS9kaWZmbGliLCw6ajIsCi1saWJyYXJ5L2RpZmZsaWIsLDppMSwKIGxpYnJhcnkvZGlzLCw6VE9TLAogbGlicmFyeS9kaXMsLGAsVE9TID0gYFRPU2AKIGxpYnJhcnkvZG9jdGVzdCwsYCxgYGZhY3RvcmlhbGBgIGZyb20gdGhlIGBgZXhhbXBsZWBgIG1vZHVsZToKQEAgLTQ0LDk2ICsxMjAsMTY5IEBACiBsaWJyYXJ5L2Z1bmN0aW9ucywsOnN0b3AsImFbc3RhcnQ6c3RvcCwgaV0iCiBsaWJyYXJ5L2Z1bmN0aW9ucywsOnN0b3AsYVtzdGFydDpzdG9wOnN0ZXBdCiBsaWJyYXJ5L2hvdHNob3QsLDpsaW5lbm8sIm5jYWxscyAgdG90dGltZSAgcGVyY2FsbCAgY3VtdGltZSAgcGVyY2FsbCBmaWxlbmFtZTpsaW5lbm8oZnVuY3Rpb24pIgorbGlicmFyeS9odHRwLmNsaWVudCw1Miw6cG9ydCxob3N0OnBvcnQKK2xpYnJhcnkvaHR0cC5jb29raWVzLCxgLCEjJCUmJyorLS5eX2B8fjoKIGxpYnJhcnkvaHR0cGxpYiwsOnBvcnQsaG9zdDpwb3J0Ci1saWJyYXJ5L2ltYXBsaWIsLDpNTSwiIiJERC1NbW0tWVlZWSBISDpNTTpTUyArSEhNTSIiIgotbGlicmFyeS9pbWFwbGliLCw6U1MsIiIiREQtTW1tLVlZWVkgSEg6TU06U1MgK0hITU0iIiIKLWxpYnJhcnkvaXRlcnRvb2xzLCw6c3RvcCxlbGVtZW50cyBmcm9tIHNlcVtzdGFydDpzdG9wOnN0ZXBdCitsaWJyYXJ5L2ltYXBsaWIsLDpNTSwiIiJERC1NbW0tWVlZWSBISDpNTTpTUyIKK2xpYnJhcnkvaW1hcGxpYiwsOlNTLCIiIkRELU1tbS1ZWVlZIEhIOk1NOlNTIgorbGlicmFyeS9pcGFkZHJlc3MsLDpkYjgsPj4+IGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcyMDAxOmRiODo6JykKK2xpYnJhcnkvaXBhZGRyZXNzLCw6Oiw+Pj4gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzIwMDE6ZGI4OjonKQorbGlicmFyeS9pcGFkZHJlc3MsLDpkYjgsSVB2NkFkZHJlc3MoJzIwMDE6ZGI4OjonKQorbGlicmFyeS9pcGFkZHJlc3MsLDo6LElQdjZBZGRyZXNzKCcyMDAxOmRiODo6JykKK2xpYnJhcnkvaXBhZGRyZXNzLCw6ZGI4LD4+PiBpcGFkZHJlc3MuSVB2NkFkZHJlc3MoJzIwMDE6ZGI4OjoxMDAwJykKK2xpYnJhcnkvaXBhZGRyZXNzLCw6Oiw+Pj4gaXBhZGRyZXNzLklQdjZBZGRyZXNzKCcyMDAxOmRiODo6MTAwMCcpCitsaWJyYXJ5L2lwYWRkcmVzcywsOmRiOCxJUHY2QWRkcmVzcygnMjAwMTpkYjg6OjEwMDAnKQorbGlicmFyeS9pcGFkZHJlc3MsLDo6LElQdjZBZGRyZXNzKCcyMDAxOmRiODo6MTAwMCcpCitsaWJyYXJ5L2lwYWRkcmVzcywsOmRiOCw+Pj4gaXBhZGRyZXNzLklQdjZJbnRlcmZhY2UoJzIwMDE6ZGI4OjoxMDAwLzk2JykKK2xpYnJhcnkvaXBhZGRyZXNzLCw6Oiw+Pj4gaXBhZGRyZXNzLklQdjZJbnRlcmZhY2UoJzIwMDE6ZGI4OjoxMDAwLzk2JykKK2xpYnJhcnkvaXBhZGRyZXNzLCw6ZGI4LElQdjZJbnRlcmZhY2UoJzIwMDE6ZGI4OjoxMDAwLzk2JykKK2xpYnJhcnkvaXBhZGRyZXNzLCw6OixJUHY2SW50ZXJmYWNlKCcyMDAxOmRiODo6MTAwMC85NicpCitsaWJyYXJ5L2lwYWRkcmVzcywsOmRiOCw+Pj4gaXBhZGRyZXNzLklQdjZJbnRlcmZhY2UoJzIwMDE6ZGI4OjoxMDAwLzk2JykubmV0d29yaworbGlicmFyeS9pcGFkZHJlc3MsLDo6LD4+PiBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgnMjAwMTpkYjg6OjEwMDAvOTYnKS5uZXR3b3JrCitsaWJyYXJ5L2lwYWRkcmVzcywsOmRiOCxJUHY2TmV0d29yaygnMjAwMTpkYjg6Oi85NicpCitsaWJyYXJ5L2lwYWRkcmVzcywsOjosSVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjovOTYnKQorbGlicmFyeS9pcGFkZHJlc3MsLDpkYjgsPj4+IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnMjAwMTpkYjg6Oi85NicpCitsaWJyYXJ5L2lwYWRkcmVzcywsOjosPj4+IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnMjAwMTpkYjg6Oi85NicpCitsaWJyYXJ5L2lwYWRkcmVzcywsOmRiOCxJUHY2TmV0d29yaygnMjAwMTpkYjg6Oi85NicpCitsaWJyYXJ5L2lwYWRkcmVzcywsOjosSVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjovOTYnKQorbGlicmFyeS9pcGFkZHJlc3MsLDpkYjgsPj4+IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnMjAwMTpkYjg6Oi85NicpLm5ldG1hc2sKK2xpYnJhcnkvaXBhZGRyZXNzLCw6Oiw+Pj4gaXBhZGRyZXNzLklQdjZOZXR3b3JrKCcyMDAxOmRiODo6Lzk2JykubmV0bWFzaworbGlicmFyeS9pcGFkZHJlc3MsLDpmZmZmLElQdjZBZGRyZXNzKCdmZmZmOmZmZmY6ZmZmZjpmZmZmOmZmZmY6ZmZmZjo6JykKK2xpYnJhcnkvaXBhZGRyZXNzLCw6OixJUHY2QWRkcmVzcygnZmZmZjpmZmZmOmZmZmY6ZmZmZjpmZmZmOmZmZmY6OicpCitsaWJyYXJ5L2lwYWRkcmVzcywsOmRiOCwiPj4+IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnMjAwMTpkYjg6OjEwMDAvOTYnLCBzdHJpY3Q9RmFsc2UpIgorbGlicmFyeS9pcGFkZHJlc3MsLDo6LCI+Pj4gaXBhZGRyZXNzLklQdjZOZXR3b3JrKCcyMDAxOmRiODo6MTAwMC85NicsIHN0cmljdD1GYWxzZSkiCiBsaWJyYXJ5L2l0ZXJ0b29scywsOnN0ZXAsZWxlbWVudHMgZnJvbSBzZXFbc3RhcnQ6c3RvcDpzdGVwXQorbGlicmFyeS9pdGVydG9vbHMsLDpzdG9wLGVsZW1lbnRzIGZyb20gc2VxW3N0YXJ0OnN0b3A6c3RlcF0KIGxpYnJhcnkvbGluZWNhY2hlLCw6c3lzLCJzeXM6eDozOjM6c3lzOi9kZXY6L2Jpbi9zaCIKIGxpYnJhcnkvbG9nZ2luZywsOkFuZCwKK2xpYnJhcnkvbG9nZ2luZywsOkRvaW5nLElORk86cm9vdDpEb2luZyBzb21ldGhpbmcKK2xpYnJhcnkvbG9nZ2luZywsOkZpbmlzaGVkLElORk86cm9vdDpGaW5pc2hlZAorbGlicmFyeS9sb2dnaW5nLCw6bG9nZ2VyLHNldmVyaXR5OmxvZ2dlciBuYW1lOm1lc3NhZ2UKK2xpYnJhcnkvbG9nZ2luZywsOkxvb2ssV0FSTklORzpyb290Okxvb2sgYmVmb3JlIHlvdSBsZWFwIQorbGlicmFyeS9sb2dnaW5nLCw6bWVzc2FnZSxzZXZlcml0eTpsb2dnZXIgbmFtZTptZXNzYWdlCiBsaWJyYXJ5L2xvZ2dpbmcsLDpwYWNrYWdlMSwKIGxpYnJhcnkvbG9nZ2luZywsOnBhY2thZ2UyLAotbGlicmFyeS9sb2dnaW5nLCw6cm9vdCwKLWxpYnJhcnkvbG9nZ2luZywsOlRoaXMsCiBsaWJyYXJ5L2xvZ2dpbmcsLDpwb3J0LGhvc3Q6cG9ydAorbGlicmFyeS9sb2dnaW5nLCw6cm9vdCwKK2xpYnJhcnkvbG9nZ2luZywsOlNvLElORk86cm9vdDpTbyBzaG91bGQgdGhpcworbGlicmFyeS9sb2dnaW5nLCw6U28sSU5GTzpTbyBzaG91bGQgdGhpcworbGlicmFyeS9sb2dnaW5nLCw6U3RhcnRlZCxJTkZPOnJvb3Q6U3RhcnRlZAorbGlicmFyeS9sb2dnaW5nLCw6VGhpcywKK2xpYnJhcnkvbG9nZ2luZywsOldhdGNoLFdBUk5JTkc6cm9vdDpXYXRjaCBvdXQhCitsaWJyYXJ5L2xvZ2dpbmcuaGFuZGxlcnMsLDpwb3J0LGhvc3Q6cG9ydAogbGlicmFyeS9tbWFwLCw6aTIsb2JqW2kxOmkyXQotbGlicmFyeS9tdWx0aXByb2Nlc3NpbmcsLDpxdWV1ZSwiPj4+IFF1ZXVlTWFuYWdlci5yZWdpc3RlcignZ2V0X3F1ZXVlJywgY2FsbGFibGU9bGFtYmRhOnF1ZXVlKSIKLWxpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLCI+Pj4gbC5fY2FsbG1ldGhvZCgnX19nZXRpdGVtX18nLCAoMjAsKSkgICAgICMgZXF1aXYgdG8gYGxbMjBdYCIKLWxpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLCI+Pj4gbC5fY2FsbG1ldGhvZCgnX19nZXRzbGljZV9fJywgKDIsIDcpKSAgICMgZXF1aXYgdG8gYGxbMjo3XWAiCi1saWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCwjIGBCYXNlTWFuYWdlcmAuCi1saWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCwjIGBQb29sLmltYXAoKWAgKHdoaWNoIHdpbGwgc2F2ZSBvbiB0aGUgYW1vdW50IG9mIGNvZGUgbmVlZGVkIGFueXdheSkuCitsaWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCwjIEFkZCBtb3JlIHRhc2tzIHVzaW5nIGBwdXQoKWAKIGxpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLCMgQSB0ZXN0IGZpbGUgZm9yIHRoZSBgbXVsdGlwcm9jZXNzaW5nYCBwYWNrYWdlCiBsaWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCwjIEEgdGVzdCBvZiBgbXVsdGlwcm9jZXNzaW5nLlBvb2xgIGNsYXNzCi1saWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCwjIEFkZCBtb3JlIHRhc2tzIHVzaW5nIGBwdXQoKWAKK2xpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLCMgYEJhc2VNYW5hZ2VyYC4KK2xpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLGBDbHVzdGVyYCBpcyBhIHN1YmNsYXNzIG9mIGBTeW5jTWFuYWdlcmAgc28gaXQgYWxsb3dzIGNyZWF0aW9uIG9mCiBsaWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCwjIGNyZWF0ZSBzZXJ2ZXIgZm9yIGEgYEhvc3RNYW5hZ2VyYCBvYmplY3QKIGxpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLCMgRGVwZW5kcyBvbiBgbXVsdGlwcm9jZXNzaW5nYCBwYWNrYWdlIC0tIHRlc3RlZCB3aXRoIGBwcm9jZXNzaW5nLTAuNjBgCitsaWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCxgaG9zdG5hbWVgIGdpdmVzIHRoZSBuYW1lIG9mIHRoZSBob3N0LiAgSWYgaG9zdG5hbWUgaXMgbm90CiBsaWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCwjIGluIHRoZSBvcmlnaW5hbCBvcmRlciB0aGVuIGNvbnNpZGVyIHVzaW5nIGBQb29sLm1hcCgpYCBvcgorbGlicmFyeS9tdWx0aXByb2Nlc3NpbmcsLGAsIj4+PiBsLl9jYWxsbWV0aG9kKCdfX2dldGl0ZW1fXycsICgyMCwpKSAgICAgIyBlcXVpdiB0byBgbFsyMF1gIgorbGlicmFyeS9tdWx0aXByb2Nlc3NpbmcsLGAsIj4+PiBsLl9jYWxsbWV0aG9kKCdfX2dldHNsaWNlX18nLCAoMiwgNykpICAgIyBlcXVpdiB0byBgbFsyOjddYCIKIGxpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLCMgTm90IHN1cmUgaWYgd2Ugc2hvdWxkIHN5bmNocm9uaXplIGFjY2VzcyB0byBgc29ja2V0LmFjY2VwdCgpYCBtZXRob2QgYnkKIGxpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLCMgb2JqZWN0LiAgKFdlIGltcG9ydCBgbXVsdGlwcm9jZXNzaW5nLnJlZHVjdGlvbmAgdG8gZW5hYmxlIHRoaXMgcGlja2xpbmcuKQorbGlicmFyeS9tdWx0aXByb2Nlc3NpbmcsLGAsIyBgUG9vbC5pbWFwKClgICh3aGljaCB3aWxsIHNhdmUgb24gdGhlIGFtb3VudCBvZiBjb2RlIG5lZWRlZCBhbnl3YXkpLgorbGlicmFyeS9tdWx0aXByb2Nlc3NpbmcsLDpxdWV1ZSwiPj4+IFF1ZXVlTWFuYWdlci5yZWdpc3RlcignZ2V0X3F1ZXVlJywgY2FsbGFibGU9bGFtYmRhOnF1ZXVlKSIKIGxpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLCMgcmVnaXN0ZXIgdGhlIEZvbyBjbGFzczsgbWFrZSBgZigpYCBhbmQgYGcoKWAgYWNjZXNzaWJsZSB2aWEgcHJveHkKIGxpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLCMgcmVnaXN0ZXIgdGhlIEZvbyBjbGFzczsgbWFrZSBgZygpYCBhbmQgYF9oKClgIGFjY2Vzc2libGUgdmlhIHByb3h5CiBsaWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCwjIHJlZ2lzdGVyIHRoZSBnZW5lcmF0b3IgZnVuY3Rpb24gYmF6OyB1c2UgYEdlbmVyYXRvclByb3h5YCB0byBtYWtlIHByb3hpZXMKLWxpYnJhcnkvbXVsdGlwcm9jZXNzaW5nLCxgLGBDbHVzdGVyYCBpcyBhIHN1YmNsYXNzIG9mIGBTeW5jTWFuYWdlcmAgc28gaXQgYWxsb3dzIGNyZWF0aW9uIG9mCi1saWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCxgaG9zdG5hbWVgIGdpdmVzIHRoZSBuYW1lIG9mIHRoZSBob3N0LiAgSWYgaG9zdG5hbWUgaXMgbm90CiBsaWJyYXJ5L211bHRpcHJvY2Vzc2luZywsYCxgc2xvdHNgIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgbnVtYmVyIG9mIHNsb3RzIGZvciBwcm9jZXNzZXMgb24KK2xpYnJhcnkvbm50cGxpYiwsOmJ5dGVzLDpieXRlcworbGlicmFyeS9ubnRwbGliLCw6Ynl0ZXMsIlsneHJlZicsICdmcm9tJywgJzpsaW5lcycsICc6Ynl0ZXMnLCAncmVmZXJlbmNlcycsICdkYXRlJywgJ21lc3NhZ2UtaWQnLCAnc3ViamVjdCddIgorbGlicmFyeS9ubnRwbGliLCw6bGluZXMsOmxpbmVzCitsaWJyYXJ5L25udHBsaWIsLDpsaW5lcywiWyd4cmVmJywgJ2Zyb20nLCAnOmxpbmVzJywgJzpieXRlcycsICdyZWZlcmVuY2VzJywgJ2RhdGUnLCAnbWVzc2FnZS1pZCcsICdzdWJqZWN0J10iCiBsaWJyYXJ5L29wdHBhcnNlLCw6bGVuLCJkZWwgcGFyc2VyLnJhcmdzWzpsZW4odmFsdWUpXSIKIGxpYnJhcnkvb3MucGF0aCwsOmZvbyxjOmZvbwogbGlicmFyeS9wYXJzZXIsLGAsIiIiTWFrZSBhIGZ1bmN0aW9uIHRoYXQgcmFpc2VzIGFuIGFyZ3VtZW50IHRvIHRoZSBleHBvbmVudCBgZXhwYC4iIiIKK2xpYnJhcnkvcGRiLCw6bGluZW5vLGZpbGVuYW1lOmxpbmVubworbGlicmFyeS9wZGIsLDpsaW5lbm8sW2ZpbGVuYW1lOmxpbmVubyB8IGJwbnVtYmVyIFticG51bWJlciAuLi5dXQorbGlicmFyeS9waWNrbGUsLDptZW1vcnksImNvbm4gPSBzcWxpdGUzLmNvbm5lY3QoIiI6bWVtb3J5OiIiKSIKIGxpYnJhcnkvcG9zaXgsLGAsIkNGTEFHUz0iImBnZXRjb25mIExGU19DRkxBR1NgIiIgT1BUPSIiLWcgLU8yICRDRkxBR1MiIiIKLWxpYnJhcnkvcHJvZmlsZSwsOmxpbmVubyxuY2FsbHMgIHRvdHRpbWUgIHBlcmNhbGwgIGN1bXRpbWUgIHBlcmNhbGwgZmlsZW5hbWU6bGluZW5vKGZ1bmN0aW9uKQorbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInY2xhc3NpZmllcnMnOiBbJ0RldmVsb3BtZW50IFN0YXR1cyA6OiA0IC0gQmV0YScsIgorbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInSW50ZW5kZWQgQXVkaWVuY2UgOjogRGV2ZWxvcGVycycsIgorbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInTGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UnLCIKK2xpYnJhcnkvcHByaW50LDIwOSw6OiwiJ05hdHVyYWwgTGFuZ3VhZ2UgOjogRW5nbGlzaCcsIgorbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInT3BlcmF0aW5nIFN5c3RlbSA6OiBPUyBJbmRlcGVuZGVudCcsIgorbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uJywiCitsaWJyYXJ5L3BwcmludCwyMDksOjosIidQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMicsIgorbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNicsIgorbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNycsIgorbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInVG9waWMgOjogU29mdHdhcmUgRGV2ZWxvcG1lbnQgOjogTGlicmFyaWVzJywiCitsaWJyYXJ5L3BwcmludCwyMDksOjosIidUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMnXSwiCiBsaWJyYXJ5L3Byb2ZpbGUsLDpsaW5lbm8sZmlsZW5hbWU6bGluZW5vKGZ1bmN0aW9uKQorbGlicmFyeS9wcm9maWxlLCw6bGluZW5vLG5jYWxscyAgdG90dGltZSAgcGVyY2FsbCAgY3VtdGltZSAgcGVyY2FsbCBmaWxlbmFtZTpsaW5lbm8oZnVuY3Rpb24pCitsaWJyYXJ5L3Byb2ZpbGUsLDpsaW5lbm8sIihzb3J0IGJ5IGZpbGVuYW1lOmxpbmVubyksIgogbGlicmFyeS9weWV4cGF0LCw6ZWxlbTEsPHB5OmVsZW0xIC8+CiBsaWJyYXJ5L3B5ZXhwYXQsLDpweSwieG1sbnM6cHkgPSAiImh0dHA6Ly93d3cucHl0aG9uLm9yZy9ucy8iIj4iCiBsaWJyYXJ5L3JlcHIsLGAsInJldHVybiBgb2JqYCIKIGxpYnJhcnkvc210cGxpYiwsOnBvcnQsImFzIHdlbGwgYXMgYSByZWd1bGFyIGhvc3Q6cG9ydCBzZXJ2ZXIuIgorbGlicmFyeS9zbXRwbGliLCw6cG9ydCxtZXRob2QgbXVzdCBzdXBwb3J0IHRoYXQgYXMgd2VsbCBhcyBhIHJlZ3VsYXIgaG9zdDpwb3J0CitsaWJyYXJ5L3NvY2tldCwsOjosIigxMCwgMSwgNiwgJycsICgnMjAwMTo4ODg6MjAwMDpkOjphMicsIDgwLCAwLCAwKSldIgogbGlicmFyeS9zb2NrZXQsLDo6LCc1YWVmOjJiOjo4JwotbGlicmFyeS9zcWxpdGUzLCw6bWVtb3J5LAorbGlicmFyeS9zb2NrZXQsLDpjYW4sInJldHVybiAoY2FuX2lkLCBjYW5fZGxjLCBkYXRhWzpjYW5fZGxjXSkiCitsaWJyYXJ5L3NvY2tldCwsOmxlbixmZHMuZnJvbXN0cmluZyhjbXNnX2RhdGFbOmxlbihjbXNnX2RhdGEpIC0gKGxlbihjbXNnX2RhdGEpICUgZmRzLml0ZW1zaXplKV0pCitsaWJyYXJ5L3NxbGl0ZTMsLDphZ2UsImN1ci5leGVjdXRlKCIic2VsZWN0ICogZnJvbSBwZW9wbGUgd2hlcmUgbmFtZV9sYXN0PTp3aG8gYW5kIGFnZT06YWdlIiIsIHsiIndobyIiOiB3aG8sICIiYWdlIiI6IGFnZX0pIgogbGlicmFyeS9zcWxpdGUzLCw6YWdlLCJzZWxlY3QgbmFtZV9sYXN0LCBhZ2UgZnJvbSBwZW9wbGUgd2hlcmUgbmFtZV9sYXN0PTp3aG8gYW5kIGFnZT06YWdlIgotbGlicmFyeS9zcWxpdGUzLCw6d2hvLCJzZWxlY3QgbmFtZV9sYXN0LCBhZ2UgZnJvbSBwZW9wbGUgd2hlcmUgbmFtZV9sYXN0PTp3aG8gYW5kIGFnZT06YWdlIgotbGlicmFyeS9zc2wsLDpNeSwiT3JnYW5pemF0aW9uIE5hbWUgKGVnLCBjb21wYW55KSBbSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkXTpNeSBPcmdhbml6YXRpb24sIEluYy4iCitsaWJyYXJ5L3NxbGl0ZTMsLDptZW1vcnksCitsaWJyYXJ5L3NxbGl0ZTMsLDp3aG8sImN1ci5leGVjdXRlKCIic2VsZWN0ICogZnJvbSBwZW9wbGUgd2hlcmUgbmFtZV9sYXN0PTp3aG8gYW5kIGFnZT06YWdlIiIsIHsiIndobyIiOiB3aG8sICIiYWdlIiI6IGFnZX0pIgogbGlicmFyeS9zc2wsLDpNeSwiT3JnYW5pemF0aW9uYWwgVW5pdCBOYW1lIChlZywgc2VjdGlvbikgW106TXkgR3JvdXAiCitsaWJyYXJ5L3NzbCwsOk15LCJPcmdhbml6YXRpb24gTmFtZSAoZWcsIGNvbXBhbnkpIFtJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGRdOk15IE9yZ2FuaXphdGlvbiwgSW5jLiIKIGxpYnJhcnkvc3NsLCw6bXlzZXJ2ZXIsIkNvbW1vbiBOYW1lIChlZywgWU9VUiBuYW1lKSBbXTpteXNlcnZlci5teWdyb3VwLm15b3JnYW5pemF0aW9uLmNvbSIKIGxpYnJhcnkvc3NsLCw6TXlTdGF0ZSxTdGF0ZSBvciBQcm92aW5jZSBOYW1lIChmdWxsIG5hbWUpIFtTb21lLVN0YXRlXTpNeVN0YXRlCiBsaWJyYXJ5L3NzbCwsOm9wcyxFbWFpbCBBZGRyZXNzIFtdOm9wc0BteXNlcnZlci5teWdyb3VwLm15b3JnYW5pemF0aW9uLmNvbQogbGlicmFyeS9zc2wsLDpTb21lLCJMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkgW106U29tZSBDaXR5IgogbGlicmFyeS9zc2wsLDpVUyxDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUpIFtBVV06VVMKK2xpYnJhcnkvc3RkdHlwZXMsLDo6LD4+PiBhWzo6LTFdLnRvbGlzdCgpCitsaWJyYXJ5L3N0ZHR5cGVzLCw6Oiw+Pj4gYVs6OjJdLnRvbGlzdCgpCitsaWJyYXJ5L3N0ZHR5cGVzLCw6ZW5kLHNbc3RhcnQ6ZW5kXQorbGlicmFyeS9zdGR0eXBlcywsOjosPj4+IGhhc2godls6Oi0yXSkgPT0gaGFzaChiJ2FiY2VmZydbOjotMl0pCiBsaWJyYXJ5L3N0ZHR5cGVzLCw6bGVuLHNbbGVuKHMpOmxlbihzKV0KLWxpYnJhcnkvc3RkdHlwZXMsLDpsZW4sc1tsZW4ocyk6bGVuKHMpXQorbGlicmFyeS9zdGR0eXBlcywsOjosPj4+IHkgPSBtWzo6Ml0KIGxpYnJhcnkvc3RyaW5nLCw6ZW5kLHNbc3RhcnQ6ZW5kXQotbGlicmFyeS9zdHJpbmcsLDplbmQsc1tzdGFydDplbmRdCi1saWJyYXJ5L3N1YnByb2Nlc3MsLGAsIm91dHB1dD1gbXljbWQgbXlhcmdgIgogbGlicmFyeS9zdWJwcm9jZXNzLCxgLCJvdXRwdXQ9YGRtZXNnIHwgZ3JlcCBoZGFgIgorbGlicmFyeS9zdWJwcm9jZXNzLCxgLCJvdXRwdXQ9YG15Y21kIG15YXJnYCIKK2xpYnJhcnkvdGFyZmlsZSwsOmJ6MiwKIGxpYnJhcnkvdGFyZmlsZSwsOmNvbXByZXNzaW9uLGZpbGVtb2RlWzpjb21wcmVzc2lvbl0KIGxpYnJhcnkvdGFyZmlsZSwsOmd6LAotbGlicmFyeS90YXJmaWxlLCw6YnoyLAorbGlicmFyeS90YXJmaWxlLCw6eHosJ2E6eHonCitsaWJyYXJ5L3RhcmZpbGUsLDp4eiwncjp4eicKK2xpYnJhcnkvdGFyZmlsZSwsOnh6LCd3Onh6JwogbGlicmFyeS90aW1lLCw6bW0sCiBsaWJyYXJ5L3RpbWUsLDpzcywKIGxpYnJhcnkvdHVydGxlLCw6OixFeGFtcGxlOjoKLWxpYnJhcnkvdXJsbGliLCw6cG9ydCw6cG9ydAogbGlicmFyeS91cmxsaWIyLCw6cGFzc3dvcmQsIiIiam9lOnBhc3N3b3JkQHB5dGhvbi5vcmciIiIKK2xpYnJhcnkvdXJsbGliLCw6cG9ydCw6cG9ydAorbGlicmFyeS91cmxsaWIucmVxdWVzdCwsOmNsb3NlLENvbm5lY3Rpb246Y2xvc2UKK2xpYnJhcnkvdXJsbGliLnJlcXVlc3QsLDpsYW5nLCJ4bWxucz0iImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIiB4bWw6bGFuZz0iImVuIiIgbGFuZz0iImVuIiI+XG5cbjxoZWFkPlxuIgorbGlicmFyeS91cmxsaWIucmVxdWVzdCwsOnBhc3N3b3JkLCIiImpvZTpwYXNzd29yZEBweXRob24ub3JnIiIiCiBsaWJyYXJ5L3V1aWQsLDp1dWlkLHVybjp1dWlkOjEyMzQ1Njc4LTEyMzQtNTY3OC0xMjM0LTU2NzgxMjM0NTY3OAotbGlicmFyeS94bWxycGNsaWIsLDpwYXNzLGh0dHA6Ly91c2VyOnBhc3NAaG9zdDpwb3J0L3BhdGgKLWxpYnJhcnkveG1scnBjbGliLCw6cGFzcyx1c2VyOnBhc3MKLWxpYnJhcnkveG1scnBjbGliLCw6cG9ydCxodHRwOi8vdXNlcjpwYXNzQGhvc3Q6cG9ydC9wYXRoCitsaWJyYXJ5L3htbHJwYy5jbGllbnQsLDpwYXNzLGh0dHA6Ly91c2VyOnBhc3NAaG9zdDpwb3J0L3BhdGgKK2xpYnJhcnkveG1scnBjLmNsaWVudCwsOnBhc3MsdXNlcjpwYXNzCitsaWJyYXJ5L3htbHJwYy5jbGllbnQsLDpwb3J0LGh0dHA6Ly91c2VyOnBhc3NAaG9zdDpwb3J0L3BhdGgKK2xpY2Vuc2UsLGAsImBgU29mdHdhcmUnJyksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyIKK2xpY2Vuc2UsLGAsIlRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIgorbGljZW5zZSwsYCwqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgRVJJQyBZT1VORyBgYEFTIElTJycgQU5ECitsaWNlbnNlLCxgLFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKK2xpY2Vuc2UsLGAsKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBPcGVuU1NMIFBST0pFQ1QgYGBBUyBJUycnIEFORCBBTlkKIGxpY2Vuc2UsLGAsVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUFJPSkVDVCBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKIGxpY2Vuc2UsLDp6b29rbyxtYWlsdG86em9va29Aem9va28uY29tCi1saWNlbnNlLCxgLFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLXJlZmVyZW5jZS9kYXRhbW9kZWwsLDpzdGVwLGFbaTpqOnN0ZXBdCiByZWZlcmVuY2UvZGF0YW1vZGVsLCw6bWF4LAotcmVmZXJlbmNlL2V4cHJlc3Npb25zLCw6aW5kZXgseFtpbmRleDppbmRleF0KK3JlZmVyZW5jZS9kYXRhbW9kZWwsLDpzdGVwLGFbaTpqOnN0ZXBdCiByZWZlcmVuY2UvZXhwcmVzc2lvbnMsLDpkYXR1bSx7a2V5OmRhdHVtLi4ufQogcmVmZXJlbmNlL2V4cHJlc3Npb25zLCxgLGBleHByZXNzaW9ucy4uLmAKK3JlZmVyZW5jZS9leHByZXNzaW9ucywsOmluZGV4LHhbaW5kZXg6aW5kZXhdCiByZWZlcmVuY2UvZ3JhbW1hciwsOm91dHB1dCwjZGlhZ3JhbTpvdXRwdXQKIHJlZmVyZW5jZS9ncmFtbWFyLCw6cnVsZXMsI2RpYWdyYW06cnVsZXMKLXJlZmVyZW5jZS9ncmFtbWFyLCw6dG9rZW4sI2RpYWdyYW06dG9rZW4KIHJlZmVyZW5jZS9ncmFtbWFyLCxgLCdgJyB0ZXN0bGlzdDEgJ2AnCi1yZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcywsOmZpbGVlbmNvZGluZywjIHZpbTpmaWxlZW5jb2Rpbmc9PGVuY29kaW5nLW5hbWU+CityZWZlcmVuY2UvZ3JhbW1hciwsOnRva2VuLCNkaWFncmFtOnRva2VuCiByZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcywsYCwiLCAgICAgICA6ICAgICAgIC4gICAgICAgYCAgICAgICA9ICAgICAgIDsiCi10dXRvcmlhbC9kYXRhc3RydWN0dXJlcywsOnZhbHVlLGtleTp2YWx1ZSBwYWlycyB3aXRoaW4gdGhlIGJyYWNlcyBhZGRzIGluaXRpYWwga2V5OnZhbHVlIHBhaXJzCityZWZlcmVuY2UvbGV4aWNhbF9hbmFseXNpcywsYCwkICAgICAgID8gICAgICAgYAorcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMsLDpmaWxlZW5jb2RpbmcsIyB2aW06ZmlsZWVuY29kaW5nPTxlbmNvZGluZy1uYW1lPgogdHV0b3JpYWwvZGF0YXN0cnVjdHVyZXMsLDp2YWx1ZSxJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGRlbGV0ZSBhIGtleTp2YWx1ZQotdHV0b3JpYWwvc3RkbGliMiwsOnN0YXJ0LCJmaWVsZHMgPSBzdHJ1Y3QudW5wYWNrKCc8SUlJSEgnLCBkYXRhW3N0YXJ0OnN0YXJ0KzE2XSkiCi10dXRvcmlhbC9zdGRsaWIyLCw6c3RhcnQsZXh0cmEgPSBkYXRhW3N0YXJ0OnN0YXJ0K2V4dHJhX3NpemVdCi10dXRvcmlhbC9zdGRsaWIyLCw6c3RhcnQsZmlsZW5hbWUgPSBkYXRhW3N0YXJ0OnN0YXJ0K2ZpbGVuYW1lc2l6ZV0KK3R1dG9yaWFsL2RhdGFzdHJ1Y3R1cmVzLCw6dmFsdWUsa2V5OnZhbHVlIHBhaXJzIHdpdGhpbiB0aGUgYnJhY2VzIGFkZHMgaW5pdGlhbCBrZXk6dmFsdWUgcGFpcnMKIHR1dG9yaWFsL3N0ZGxpYjIsLDpjb25maWcsImxvZ2dpbmcud2FybmluZygnV2FybmluZzpjb25maWcgZmlsZSAlcyBub3QgZm91bmQnLCAnc2VydmVyLmNvbmYnKSIKIHR1dG9yaWFsL3N0ZGxpYjIsLDpjb25maWcsV0FSTklORzpyb290Oldhcm5pbmc6Y29uZmlnIGZpbGUgc2VydmVyLmNvbmYgbm90IGZvdW5kCiB0dXRvcmlhbC9zdGRsaWIyLCw6Q3JpdGljYWwsQ1JJVElDQUw6cm9vdDpDcml0aWNhbCBlcnJvciAtLSBzaHV0dGluZyBkb3duCkBAIC0xNDEsMTUgKzI5MCwxNiBAQAogdHV0b3JpYWwvc3RkbGliMiwsOnJvb3QsQ1JJVElDQUw6cm9vdDpDcml0aWNhbCBlcnJvciAtLSBzaHV0dGluZyBkb3duCiB0dXRvcmlhbC9zdGRsaWIyLCw6cm9vdCxFUlJPUjpyb290OkVycm9yIG9jY3VycmVkCiB0dXRvcmlhbC9zdGRsaWIyLCw6cm9vdCxXQVJOSU5HOnJvb3Q6V2FybmluZzpjb25maWcgZmlsZSBzZXJ2ZXIuY29uZiBub3QgZm91bmQKK3R1dG9yaWFsL3N0ZGxpYjIsLDpzdGFydCxleHRyYSA9IGRhdGFbc3RhcnQ6c3RhcnQrZXh0cmFfc2l6ZV0KK3R1dG9yaWFsL3N0ZGxpYjIsLDpzdGFydCwiZmllbGRzID0gc3RydWN0LnVucGFjaygnPElJSUhIJywgZGF0YVtzdGFydDpzdGFydCsxNl0pIgordHV0b3JpYWwvc3RkbGliMiwsOnN0YXJ0LGZpbGVuYW1lID0gZGF0YVtzdGFydDpzdGFydCtmaWxlbmFtZXNpemVdCiB0dXRvcmlhbC9zdGRsaWIyLCw6V2FybmluZyxXQVJOSU5HOnJvb3Q6V2FybmluZzpjb25maWcgZmlsZSBzZXJ2ZXIuY29uZiBub3QgZm91bmQKLXVzaW5nL2NtZGxpbmUsLDpsaW5lLGZpbGU6bGluZTogY2F0ZWdvcnk6IG1lc3NhZ2UKIHVzaW5nL2NtZGxpbmUsLDpjYXRlZ29yeSxhY3Rpb246bWVzc2FnZTpjYXRlZ29yeTptb2R1bGU6bGluZQordXNpbmcvY21kbGluZSwsOmVycm9yaGFuZGxlciw6ZXJyb3JoYW5kbGVyCiB1c2luZy9jbWRsaW5lLCw6bGluZSxhY3Rpb246bWVzc2FnZTpjYXRlZ29yeTptb2R1bGU6bGluZQordXNpbmcvY21kbGluZSwsOmxpbmUsZmlsZTpsaW5lOiBjYXRlZ29yeTogbWVzc2FnZQogdXNpbmcvY21kbGluZSwsOm1lc3NhZ2UsYWN0aW9uOm1lc3NhZ2U6Y2F0ZWdvcnk6bW9kdWxlOmxpbmUKIHVzaW5nL2NtZGxpbmUsLDptb2R1bGUsYWN0aW9uOm1lc3NhZ2U6Y2F0ZWdvcnk6bW9kdWxlOmxpbmUKLXVzaW5nL2NtZGxpbmUsLDplcnJvcmhhbmRsZXIsOmVycm9yaGFuZGxlcgotdXNpbmcvd2luZG93cywxNjIsYCxgYCB0aGlzIGZpeGVzIHN5bnRheCBoaWdobGlnaHRpbmcgZXJyb3JzIGluIHNvbWUgZWRpdG9ycyBkdWUgdG8gdGhlIFxcXFwgaGFja2VyeQotdXNpbmcvd2luZG93cywxNzAsYCxgYAogd2hhdHNuZXcvMi4wLDQxOCw6bGVuLAogd2hhdHNuZXcvMi4zLCw6OiwKIHdoYXRzbmV3LzIuMywsOmNvbmZpZywKQEAgLTE2MywxMTMgKzMxMywyNiBAQAogd2hhdHNuZXcvMi41LCw6bWVtb3J5LDptZW1vcnk6CiB3aGF0c25ldy8yLjUsLDpzdGVwLFtzdGFydDpzdG9wOnN0ZXBdCiB3aGF0c25ldy8yLjUsLDpzdG9wLFtzdGFydDpzdG9wOnN0ZXBdCi1kaXN0dXRpbHMvZXhhbXBsZXMsMjY3LGAsVGhpcyBpcyB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIGBgZm9vYmFyYGAgcGFja2FnZS4KLWZhcS9wcm9ncmFtbWluZywsOnJlZHVjZSwicHJpbnQoKGxhbWJkYSBSdSxSbyxJdSxJbyxJTSxTeCxTeTpyZWR1Y2UobGFtYmRhIHgseTp4K3ksbWFwKGxhbWJkYSB5LCIKLWZhcS9wcm9ncmFtbWluZywsOnJlZHVjZSwiU3g9U3gsU3k9U3k6cmVkdWNlKGxhbWJkYSB4LHk6eCt5LG1hcChsYW1iZGEgeCx4Yz1SdSx5Yz15YyxSdT1SdSxSbz1SbywiCi1mYXEvcHJvZ3JhbW1pbmcsLDpjaHIsIj49NC4wKSBvciAxK2YoeGMseWMseCp4LXkqeSt4YywyLjAqeCp5K3ljLGstMSxmKTpmKHhjLHljLHgseSxrLGYpOmNocigiCi1mYXEvcHJvZ3JhbW1pbmcsLDo6LGZvciB4IGluIHNlcXVlbmNlWzo6LTFdOgotZmFxL3dpbmRvd3MsMjI5LDpFT0YsQHNldGxvY2FsIGVuYWJsZWV4dGVuc2lvbnMgJiBweXRob24gLXggJX5mMCAlKiAmIGdvdG8gOkVPRgotZmFxL3dpbmRvd3MsMzkzLDpSRUcsLnB5IDpSRUdfU1o6IGM6XDxwYXRoIHRvIHB5dGhvbj5ccHl0aG9uLmV4ZSAtdSAlcyAlcwotbGlicmFyeS9iaXNlY3QsMzIsOmhpLGFsbCh2YWwgPj0geCBmb3IgdmFsIGluIGFbaTpoaV0pCi1saWJyYXJ5L2Jpc2VjdCw0Miw6aGksYWxsKHZhbCA+IHggZm9yIHZhbCBpbiBhW2k6aGldKQotbGlicmFyeS9odHRwLmNsaWVudCw1Miw6cG9ydCxob3N0OnBvcnQKLWxpYnJhcnkvbm50cGxpYiwsOmJ5dGVzLDpieXRlcwotbGlicmFyeS9ubnRwbGliLCw6bGluZXMsOmxpbmVzCi1saWJyYXJ5L25udHBsaWIsLDpsaW5lcywiWyd4cmVmJywgJ2Zyb20nLCAnOmxpbmVzJywgJzpieXRlcycsICdyZWZlcmVuY2VzJywgJ2RhdGUnLCAnbWVzc2FnZS1pZCcsICdzdWJqZWN0J10iCi1saWJyYXJ5L25udHBsaWIsLDpieXRlcywiWyd4cmVmJywgJ2Zyb20nLCAnOmxpbmVzJywgJzpieXRlcycsICdyZWZlcmVuY2VzJywgJ2RhdGUnLCAnbWVzc2FnZS1pZCcsICdzdWJqZWN0J10iCi1saWJyYXJ5L3BpY2tsZSwsOm1lbW9yeSwiY29ubiA9IHNxbGl0ZTMuY29ubmVjdCgiIjptZW1vcnk6IiIpIgotbGlicmFyeS9wcm9maWxlLCw6bGluZW5vLCIoc29ydCBieSBmaWxlbmFtZTpsaW5lbm8pLCIKLWxpYnJhcnkvc29ja2V0LCw6OiwiKDEwLCAxLCA2LCAnJywgKCcyMDAxOjg4ODoyMDAwOmQ6OmEyJywgODAsIDAsIDApKV0iCi1saWJyYXJ5L3N0ZHR5cGVzLCw6ZW5kLHNbc3RhcnQ6ZW5kXQotbGlicmFyeS9zdGR0eXBlcywsOmVuZCxzW3N0YXJ0OmVuZF0KLWxpYnJhcnkvdXJsbGliLnJlcXVlc3QsLDpjbG9zZSxDb25uZWN0aW9uOmNsb3NlCi1saWJyYXJ5L3VybGxpYi5yZXF1ZXN0LCw6cGFzc3dvcmQsIiIiam9lOnBhc3N3b3JkQHB5dGhvbi5vcmciIiIKLWxpYnJhcnkvdXJsbGliLnJlcXVlc3QsLDpsYW5nLCJ4bWxucz0iImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIiB4bWw6bGFuZz0iImVuIiIgbGFuZz0iImVuIiI+XG5cbjxoZWFkPlxuIgotbGlicmFyeS94bWxycGMuY2xpZW50LDEwMyw6cGFzcyxodHRwOi8vdXNlcjpwYXNzQGhvc3Q6cG9ydC9wYXRoCi1saWJyYXJ5L3htbHJwYy5jbGllbnQsMTAzLDpwb3J0LGh0dHA6Ly91c2VyOnBhc3NAaG9zdDpwb3J0L3BhdGgKLWxpYnJhcnkveG1scnBjLmNsaWVudCwxMDMsOnBhc3MsdXNlcjpwYXNzCi1saWNlbnNlLCxgLCogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgT3BlblNTTCBQUk9KRUNUIGBgQVMgSVMnJyBBTkQgQU5ZCi1saWNlbnNlLCxgLCogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBFUklDIFlPVU5HIGBgQVMgSVMnJyBBTkQKLWxpY2Vuc2UsLGAsImBgU29mdHdhcmUnJyksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyIKLWxpY2Vuc2UsLGAsIlRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIgotcmVmZXJlbmNlL2xleGljYWxfYW5hbHlzaXMsNzA0LGAsJCAgICAgICA/ICAgICAgIGAKLXdoYXRzbmV3LzIuNyw3MzUsOlN1bmRheSwnMjAwOTo0OlN1bmRheScKLXdoYXRzbmV3LzIuNyw4NjIsOjosImV4cG9ydCBQWVRIT05XQVJOSU5HUz1hbGwsZXJyb3I6OjpDb29raWU6MCIKLXdoYXRzbmV3LzIuNyw4NjIsOkNvb2tpZSwiZXhwb3J0IFBZVEhPTldBUk5JTkdTPWFsbCxlcnJvcjo6OkNvb2tpZTowIgotd2hhdHNuZXcvMi43LDE2MTksOjosPj4+IHVybHBhcnNlLnVybHBhcnNlKCdodHRwOi8vWzEwODA6Ojg6ODAwOjIwMEM6NDE3QV0vZm9vJykKIHdoYXRzbmV3LzIuNywxNjE5LDo6LCJQYXJzZVJlc3VsdChzY2hlbWU9J2h0dHAnLCBuZXRsb2M9J1sxMDgwOjo4OjgwMDoyMDBDOjQxN0FdJywiCi1saWJyYXJ5L2NvbmZpZ3BhcnNlciwsYCwjIFNldCB0aGUgb3B0aW9uYWwgYHJhd2AgYXJndW1lbnQgb2YgZ2V0KCkgdG8gVHJ1ZSBpZiB5b3Ugd2lzaCB0byBkaXNhYmxlCi1saWJyYXJ5L2NvbmZpZ3BhcnNlciwsYCwjIFRoZSBvcHRpb25hbCBgdmFyc2AgYXJndW1lbnQgaXMgYSBkaWN0IHdpdGggbWVtYmVycyB0aGF0IHdpbGwgdGFrZQotbGlicmFyeS9jb25maWdwYXJzZXIsLGAsIyBUaGUgb3B0aW9uYWwgYGZhbGxiYWNrYCBhcmd1bWVudCBjYW4gYmUgdXNlZCB0byBwcm92aWRlIGEgZmFsbGJhY2sgdmFsdWUKLWxpYnJhcnkvY29uZmlncGFyc2VyLCw6b3B0aW9uLCR7c2VjdGlvbjpvcHRpb259Ci1saWJyYXJ5L2NvbmZpZ3BhcnNlciwsOnN5c3RlbSxwYXRoOiAke0NvbW1vbjpzeXN0ZW1fZGlyfS9MaWJyYXJ5L0ZyYW1ld29ya3MvCi1saWJyYXJ5L2NvbmZpZ3BhcnNlciwsOmhvbWUsbXlfZGlyOiAke0NvbW1vbjpob21lX2Rpcn0vdHdvc2hlZHMKLWxpYnJhcnkvY29uZmlncGFyc2VyLCw6cGF0aCxweXRob25fZGlyOiAke0ZyYW1ld29ya3M6cGF0aH0vUHl0aG9uL1ZlcnNpb25zLyR7RnJhbWV3b3JrczpQeXRob259Ci1saWJyYXJ5L2NvbmZpZ3BhcnNlciwsOlB5dGhvbixweXRob25fZGlyOiAke0ZyYW1ld29ya3M6cGF0aH0vUHl0aG9uL1ZlcnNpb25zLyR7RnJhbWV3b3JrczpQeXRob259Ci1saWJyYXJ5L3BkYiwsOmxpbmVubyxbZmlsZW5hbWU6bGluZW5vIHwgYnBudW1iZXIgW2JwbnVtYmVyIC4uLl1dCi1saWJyYXJ5L3BkYiwsOmxpbmVubyxmaWxlbmFtZTpsaW5lbm8KLWxpYnJhcnkvbG9nZ2luZywsOldhdGNoLFdBUk5JTkc6cm9vdDpXYXRjaCBvdXQhCi1saWJyYXJ5L2xvZ2dpbmcsLDpTbyxJTkZPOnJvb3Q6U28gc2hvdWxkIHRoaXMKLWxpYnJhcnkvbG9nZ2luZywsOlN0YXJ0ZWQsSU5GTzpyb290OlN0YXJ0ZWQKLWxpYnJhcnkvbG9nZ2luZywsOkRvaW5nLElORk86cm9vdDpEb2luZyBzb21ldGhpbmcKLWxpYnJhcnkvbG9nZ2luZywsOkZpbmlzaGVkLElORk86cm9vdDpGaW5pc2hlZAotbGlicmFyeS9sb2dnaW5nLCw6TG9vayxXQVJOSU5HOnJvb3Q6TG9vayBiZWZvcmUgeW91IGxlYXAhCi1saWJyYXJ5L2xvZ2dpbmcsLDpTbyxJTkZPOlNvIHNob3VsZCB0aGlzCi1saWJyYXJ5L2xvZ2dpbmcsLDpsb2dnZXIsc2V2ZXJpdHk6bG9nZ2VyIG5hbWU6bWVzc2FnZQotbGlicmFyeS9sb2dnaW5nLCw6bWVzc2FnZSxzZXZlcml0eTpsb2dnZXIgbmFtZTptZXNzYWdlCi13aGF0c25ldy8zLjIsLDpkaXJlY3RvcnksLi4uICAgJHtidWlsZG91dDpkaXJlY3Rvcnl9L2Rvd25sb2Fkcy9kaXN0Ci13aGF0c25ldy8zLjIsLDpsb2NhdGlvbiwuLi4gem9wZTktbG9jYXRpb24gPSAke3pvcGU5OmxvY2F0aW9ufQotd2hhdHNuZXcvMy4yLCw6cHJlZml4LC4uLiB6b3BlLWNvbmYgPSAke2N1c3RvbTpwcmVmaXh9L2V0Yy96b3BlLmNvbmYKLWhvd3RvL2xvZ2dpbmcsLDpyb290LFdBUk5JTkc6cm9vdDpXYXRjaCBvdXQhCi1ob3d0by9sb2dnaW5nLCw6V2F0Y2gsV0FSTklORzpyb290OldhdGNoIG91dCEKLWhvd3RvL2xvZ2dpbmcsLDpyb290LERFQlVHOnJvb3Q6VGhpcyBtZXNzYWdlIHNob3VsZCBnbyB0byB0aGUgbG9nIGZpbGUKLWhvd3RvL2xvZ2dpbmcsLDpUaGlzLERFQlVHOnJvb3Q6VGhpcyBtZXNzYWdlIHNob3VsZCBnbyB0byB0aGUgbG9nIGZpbGUKLWhvd3RvL2xvZ2dpbmcsLDpyb290LElORk86cm9vdDpTbyBzaG91bGQgdGhpcwotaG93dG8vbG9nZ2luZywsOlNvLElORk86cm9vdDpTbyBzaG91bGQgdGhpcwotaG93dG8vbG9nZ2luZywsOnJvb3QsIldBUk5JTkc6cm9vdDpBbmQgdGhpcywgdG9vIgotaG93dG8vbG9nZ2luZywsOkFuZCwiV0FSTklORzpyb290OkFuZCB0aGlzLCB0b28iCi1ob3d0by9sb2dnaW5nLCw6cm9vdCxJTkZPOnJvb3Q6U3RhcnRlZAotaG93dG8vbG9nZ2luZywsOlN0YXJ0ZWQsSU5GTzpyb290OlN0YXJ0ZWQKLWhvd3RvL2xvZ2dpbmcsLDpyb290LElORk86cm9vdDpEb2luZyBzb21ldGhpbmcKLWhvd3RvL2xvZ2dpbmcsLDpEb2luZyxJTkZPOnJvb3Q6RG9pbmcgc29tZXRoaW5nCi1ob3d0by9sb2dnaW5nLCw6cm9vdCxJTkZPOnJvb3Q6RmluaXNoZWQKLWhvd3RvL2xvZ2dpbmcsLDpGaW5pc2hlZCxJTkZPOnJvb3Q6RmluaXNoZWQKLWhvd3RvL2xvZ2dpbmcsLDpyb290LFdBUk5JTkc6cm9vdDpMb29rIGJlZm9yZSB5b3UgbGVhcCEKLWhvd3RvL2xvZ2dpbmcsLDpMb29rLFdBUk5JTkc6cm9vdDpMb29rIGJlZm9yZSB5b3UgbGVhcCEKLWhvd3RvL2xvZ2dpbmcsLDpUaGlzLERFQlVHOlRoaXMgbWVzc2FnZSBzaG91bGQgYXBwZWFyIG9uIHRoZSBjb25zb2xlCi1ob3d0by9sb2dnaW5nLCw6U28sSU5GTzpTbyBzaG91bGQgdGhpcwotaG93dG8vbG9nZ2luZywsOkFuZCwiV0FSTklORzpBbmQgdGhpcywgdG9vIgotaG93dG8vbG9nZ2luZywsOmxvZ2dlcixzZXZlcml0eTpsb2dnZXIgbmFtZTptZXNzYWdlCi1ob3d0by9sb2dnaW5nLCw6bWVzc2FnZSxzZXZlcml0eTpsb2dnZXIgbmFtZTptZXNzYWdlCi1saWJyYXJ5L2xvZ2dpbmcuaGFuZGxlcnMsLDpwb3J0LGhvc3Q6cG9ydAotbGlicmFyeS9pbWFwbGliLDExNiw6TU0sIiIiREQtTW1tLVlZWVkgSEg6TU06U1MiCi1saWJyYXJ5L2ltYXBsaWIsMTE2LDpTUywiIiJERC1NbW0tWVlZWSBISDpNTTpTUyIKLXdoYXRzbmV3LzMuMiwsOjosIiQgZXhwb3J0IFBZVEhPTldBUk5JTkdTPSdpZ25vcmU6OlJ1bnRpbWVXYXJuaW5nOjosb25jZTo6VW5pY29kZVdhcm5pbmc6OiciCi1ob3d0by9weXBvcnRpbmcsNzUsOjosIyBtYWtlIHN1cmUgdG8gdXNlIDo6IFB5dGhvbiAqYW5kKiA6OiBQeXRob24gOjogMyBzbwotaG93dG8vcHlwb3J0aW5nLDc1LDo6LCInUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uJywiCi1ob3d0by9weXBvcnRpbmcsNzUsOjosJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzJwotd2hhdHNuZXcvMy4yLCw6Z3osIj4+PiB3aXRoIHRhcmZpbGUub3BlbihuYW1lPSdteWFyY2hpdmUudGFyLmd6JywgbW9kZT0ndzpneicpIGFzIHRmOiIKLXdoYXRzbmV3LzMuMiwsOmRpcmVjdG9yeSwke2J1aWxkb3V0OmRpcmVjdG9yeX0vZG93bmxvYWRzL2Rpc3QKLXdoYXRzbmV3LzMuMiwsOmxvY2F0aW9uLHpvcGU5LWxvY2F0aW9uID0gJHt6b3BlOTpsb2NhdGlvbn0KLXdoYXRzbmV3LzMuMiwsOnByZWZpeCx6b3BlLWNvbmYgPSAke2N1c3RvbTpwcmVmaXh9L2V0Yy96b3BlLmNvbmYKLXdoYXRzbmV3LzMuMiwsOmJlZWYsPj4+IHVybGxpYi5wYXJzZS51cmxwYXJzZSgnaHR0cDovL1tkZWFkOmJlZWY6Y2FmZTo1NDE3OmFmZmU6OEZBMzpkZWFmOmZlZWRdL2Zvby8nKQotd2hhdHNuZXcvMy4yLCw6Y2FmZSw+Pj4gdXJsbGliLnBhcnNlLnVybHBhcnNlKCdodHRwOi8vW2RlYWQ6YmVlZjpjYWZlOjU0MTc6YWZmZTo4RkEzOmRlYWY6ZmVlZF0vZm9vLycpCi13aGF0c25ldy8zLjIsLDphZmZlLD4+PiB1cmxsaWIucGFyc2UudXJscGFyc2UoJ2h0dHA6Ly9bZGVhZDpiZWVmOmNhZmU6NTQxNzphZmZlOjhGQTM6ZGVhZjpmZWVkXS9mb28vJykKLXdoYXRzbmV3LzMuMiwsOmRlYWYsPj4+IHVybGxpYi5wYXJzZS51cmxwYXJzZSgnaHR0cDovL1tkZWFkOmJlZWY6Y2FmZTo1NDE3OmFmZmU6OEZBMzpkZWFmOmZlZWRdL2Zvby8nKQotd2hhdHNuZXcvMy4yLCw6ZmVlZCw+Pj4gdXJsbGliLnBhcnNlLnVybHBhcnNlKCdodHRwOi8vW2RlYWQ6YmVlZjpjYWZlOjU0MTc6YWZmZTo4RkEzOmRlYWY6ZmVlZF0vZm9vLycpCi13aGF0c25ldy8zLjIsLDpiZWVmLCJuZXRsb2M9J1tkZWFkOmJlZWY6Y2FmZTo1NDE3OmFmZmU6OEZBMzpkZWFmOmZlZWRdJywiCi13aGF0c25ldy8zLjIsLDpjYWZlLCJuZXRsb2M9J1tkZWFkOmJlZWY6Y2FmZTo1NDE3OmFmZmU6OEZBMzpkZWFmOmZlZWRdJywiCit3aGF0c25ldy8yLjcsMTYxOSw6Oiw+Pj4gdXJscGFyc2UudXJscGFyc2UoJ2h0dHA6Ly9bMTA4MDo6ODo4MDA6MjAwQzo0MTdBXS9mb28nKQord2hhdHNuZXcvMi43LDczNSw6U3VuZGF5LCcyMDA5OjQ6U3VuZGF5Jword2hhdHNuZXcvMi43LDg2Miw6Q29va2llLCJleHBvcnQgUFlUSE9OV0FSTklOR1M9YWxsLGVycm9yOjo6Q29va2llOjAiCit3aGF0c25ldy8yLjcsODYyLDo6LCJleHBvcnQgUFlUSE9OV0FSTklOR1M9YWxsLGVycm9yOjo6Q29va2llOjAiCiB3aGF0c25ldy8zLjIsLDphZmZlLCJuZXRsb2M9J1tkZWFkOmJlZWY6Y2FmZTo1NDE3OmFmZmU6OEZBMzpkZWFmOmZlZWRdJywiCit3aGF0c25ldy8zLjIsLDphZmZlLD4+PiB1cmxsaWIucGFyc2UudXJscGFyc2UoJ2h0dHA6Ly9bZGVhZDpiZWVmOmNhZmU6NTQxNzphZmZlOjhGQTM6ZGVhZjpmZWVkXS9mb28vJykKK3doYXRzbmV3LzMuMiwsOmJlZWYsIm5ldGxvYz0nW2RlYWQ6YmVlZjpjYWZlOjU0MTc6YWZmZTo4RkEzOmRlYWY6ZmVlZF0nLCIKK3doYXRzbmV3LzMuMiwsOmJlZWYsPj4+IHVybGxpYi5wYXJzZS51cmxwYXJzZSgnaHR0cDovL1tkZWFkOmJlZWY6Y2FmZTo1NDE3OmFmZmU6OEZBMzpkZWFmOmZlZWRdL2Zvby8nKQord2hhdHNuZXcvMy4yLCw6Y2FmZSwibmV0bG9jPSdbZGVhZDpiZWVmOmNhZmU6NTQxNzphZmZlOjhGQTM6ZGVhZjpmZWVkXScsIgord2hhdHNuZXcvMy4yLCw6Y2FmZSw+Pj4gdXJsbGliLnBhcnNlLnVybHBhcnNlKCdodHRwOi8vW2RlYWQ6YmVlZjpjYWZlOjU0MTc6YWZmZTo4RkEzOmRlYWY6ZmVlZF0vZm9vLycpCiB3aGF0c25ldy8zLjIsLDpkZWFmLCJuZXRsb2M9J1tkZWFkOmJlZWY6Y2FmZTo1NDE3OmFmZmU6OEZBMzpkZWFmOmZlZWRdJywiCit3aGF0c25ldy8zLjIsLDpkZWFmLD4+PiB1cmxsaWIucGFyc2UudXJscGFyc2UoJ2h0dHA6Ly9bZGVhZDpiZWVmOmNhZmU6NTQxNzphZmZlOjhGQTM6ZGVhZjpmZWVkXS9mb28vJykKK3doYXRzbmV3LzMuMiwsOmRpcmVjdG9yeSwuLi4gICAke2J1aWxkb3V0OmRpcmVjdG9yeX0vZG93bmxvYWRzL2Rpc3QKK3doYXRzbmV3LzMuMiwsOmRpcmVjdG9yeSwke2J1aWxkb3V0OmRpcmVjdG9yeX0vZG93bmxvYWRzL2Rpc3QKK3doYXRzbmV3LzMuMiwsOjosIiQgZXhwb3J0IFBZVEhPTldBUk5JTkdTPSdpZ25vcmU6OlJ1bnRpbWVXYXJuaW5nOjosb25jZTo6VW5pY29kZVdhcm5pbmc6OiciCiB3aGF0c25ldy8zLjIsLDpmZWVkLCJuZXRsb2M9J1tkZWFkOmJlZWY6Y2FmZTo1NDE3OmFmZmU6OEZBMzpkZWFmOmZlZWRdJywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidjbGFzc2lmaWVycyc6IFsnRGV2ZWxvcG1lbnQgU3RhdHVzIDo6IDQgLSBCZXRhJywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBNSVQgTGljZW5zZScsIgotbGlicmFyeS9wcHJpbnQsMjA5LDo6LCInTmF0dXJhbCBMYW5ndWFnZSA6OiBFbmdsaXNoJywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidPcGVyYXRpbmcgU3lzdGVtIDo6IE9TIEluZGVwZW5kZW50JywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24nLCIKLWxpYnJhcnkvcHByaW50LDIwOSw6OiwiJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAyJywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi42JywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi43JywiCi1saWJyYXJ5L3BwcmludCwyMDksOjosIidUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMnLCIKLWxpYnJhcnkvcHByaW50LDIwOSw6OiwiJ1RvcGljIDo6IFNvZnR3YXJlIERldmVsb3BtZW50IDo6IExpYnJhcmllcyA6OiBQeXRob24gTW9kdWxlcyddLCIKK3doYXRzbmV3LzMuMiwsOmZlZWQsPj4+IHVybGxpYi5wYXJzZS51cmxwYXJzZSgnaHR0cDovL1tkZWFkOmJlZWY6Y2FmZTo1NDE3OmFmZmU6OEZBMzpkZWFmOmZlZWRdL2Zvby8nKQord2hhdHNuZXcvMy4yLCw6Z3osIj4+PiB3aXRoIHRhcmZpbGUub3BlbihuYW1lPSdteWFyY2hpdmUudGFyLmd6JywgbW9kZT0ndzpneicpIGFzIHRmOiIKK3doYXRzbmV3LzMuMiwsOmxvY2F0aW9uLC4uLiB6b3BlOS1sb2NhdGlvbiA9ICR7em9wZTk6bG9jYXRpb259Cit3aGF0c25ldy8zLjIsLDpsb2NhdGlvbix6b3BlOS1sb2NhdGlvbiA9ICR7em9wZTk6bG9jYXRpb259Cit3aGF0c25ldy8zLjIsLDpwcmVmaXgsLi4uIHpvcGUtY29uZiA9ICR7Y3VzdG9tOnByZWZpeH0vZXRjL3pvcGUuY29uZgord2hhdHNuZXcvMy4yLCw6cHJlZml4LHpvcGUtY29uZiA9ICR7Y3VzdG9tOnByZWZpeH0vZXRjL3pvcGUuY29uZgpkaWZmIC0tZ2l0IGEvRG9jL3R1dG9yaWFsL2NsYXNzZXMucnN0IGIvRG9jL3R1dG9yaWFsL2NsYXNzZXMucnN0CmluZGV4IDVjZTM2NjkuLmI0ZjA5YzIgMTAwNjQ0Ci0tLSBhL0RvYy90dXRvcmlhbC9jbGFzc2VzLnJzdAorKysgYi9Eb2MvdHV0b3JpYWwvY2xhc3Nlcy5yc3QKQEAgLTE4NCw3ICsxODQsNiBAQAogCiAuLiBjb2RlLWJsb2NrOjogbm9uZQogCi0KICAgIEFmdGVyIGxvY2FsIGFzc2lnbm1lbnQ6IHRlc3Qgc3BhbQogICAgQWZ0ZXIgbm9ubG9jYWwgYXNzaWdubWVudDogbm9ubG9jYWwgc3BhbQogICAgQWZ0ZXIgZ2xvYmFsIGFzc2lnbm1lbnQ6IG5vbmxvY2FsIHNwYW0KQEAgLTY5OCw5ICs2OTcsOSBAQAogICAgY2xhc3MgRChDKToKICAgICAgICBwYXNzCiAKLSAgIGZvciBjIGluIFtCLCBDLCBEXToKKyAgIGZvciBjbHMgaW4gW0IsIEMsIERdOgogICAgICAgIHRyeToKLSAgICAgICAgICAgcmFpc2UgYygpCisgICAgICAgICAgIHJhaXNlIGNscygpCiAgICAgICAgZXhjZXB0IEQ6CiAgICAgICAgICAgIHByaW50KCJEIikKICAgICAgICBleGNlcHQgQzoKZGlmZiAtLWdpdCBhL0RvYy90dXRvcmlhbC9kYXRhc3RydWN0dXJlcy5yc3QgYi9Eb2MvdHV0b3JpYWwvZGF0YXN0cnVjdHVyZXMucnN0CmluZGV4IGVlYzM0ZjAuLjU0ZjQ0MmQgMTAwNjQ0Ci0tLSBhL0RvYy90dXRvcmlhbC9kYXRhc3RydWN0dXJlcy5yc3QKKysrIGIvRG9jL3R1dG9yaWFsL2RhdGFzdHJ1Y3R1cmVzLnJzdApAQCAtMTksMTMgKzE5LDEzIEBACiAuLiBtZXRob2Q6OiBsaXN0LmFwcGVuZCh4KQogICAgOm5vaW5kZXg6CiAKLSAgIEFkZCBhbiBpdGVtIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3Q7IGVxdWl2YWxlbnQgdG8gYGBhW2xlbihhKTpdID0gW3hdYGAuCisgICBBZGQgYW4gaXRlbSB0byB0aGUgZW5kIG9mIHRoZSBsaXN0LiAgRXF1aXZhbGVudCB0byBgYGFbbGVuKGEpOl0gPSBbeF1gYC4KIAogCiAuLiBtZXRob2Q6OiBsaXN0LmV4dGVuZChMKQogICAgOm5vaW5kZXg6CiAKLSAgIEV4dGVuZCB0aGUgbGlzdCBieSBhcHBlbmRpbmcgYWxsIHRoZSBpdGVtcyBpbiB0aGUgZ2l2ZW4gbGlzdDsgZXF1aXZhbGVudCB0bworICAgRXh0ZW5kIHRoZSBsaXN0IGJ5IGFwcGVuZGluZyBhbGwgdGhlIGl0ZW1zIGluIHRoZSBnaXZlbiBsaXN0LiAgRXF1aXZhbGVudCB0bwogICAgYGBhW2xlbihhKTpdID0gTGBgLgogCiAKQEAgLTQwLDggKzQwLDggQEAKIC4uIG1ldGhvZDo6IGxpc3QucmVtb3ZlKHgpCiAgICA6bm9pbmRleDoKIAotICAgUmVtb3ZlIHRoZSBmaXJzdCBpdGVtIGZyb20gdGhlIGxpc3Qgd2hvc2UgdmFsdWUgaXMgKngqLiBJdCBpcyBhbiBlcnJvciBpZiB0aGVyZQotICAgaXMgbm8gc3VjaCBpdGVtLgorICAgUmVtb3ZlIHRoZSBmaXJzdCBpdGVtIGZyb20gdGhlIGxpc3Qgd2hvc2UgdmFsdWUgaXMgKngqLiAgSXQgaXMgYW4gZXJyb3IgaWYKKyAgIHRoZXJlIGlzIG5vIHN1Y2ggaXRlbS4KIAogCiAuLiBtZXRob2Q6OiBsaXN0LnBvcChbaV0pCkBAIC03MCwxMyArNzAsMTQgQEAKIC4uIG1ldGhvZDo6IGxpc3Quc29ydCgpCiAgICA6bm9pbmRleDoKIAotICAgU29ydCB0aGUgaXRlbXMgb2YgdGhlIGxpc3QsIGluIHBsYWNlLgorICAgU29ydCB0aGUgaXRlbXMgb2YgdGhlIGxpc3QgaW4gcGxhY2UuCiAKIAogLi4gbWV0aG9kOjogbGlzdC5yZXZlcnNlKCkKICAgIDpub2luZGV4OgogCi0gICBSZXZlcnNlIHRoZSBlbGVtZW50cyBvZiB0aGUgbGlzdCwgaW4gcGxhY2UuCisgICBSZXZlcnNlIHRoZSBlbGVtZW50cyBvZiB0aGUgbGlzdCBpbiBwbGFjZS4KKwogCiBBbiBleGFtcGxlIHRoYXQgdXNlcyBtb3N0IG9mIHRoZSBsaXN0IG1ldGhvZHM6OgogCkBAIC05OSw2ICsxMDAsMTAgQEAKICAgID4+PiBhCiAgICBbLTEsIDEsIDY2LjI1LCAzMzMsIDMzMywgMTIzNC41XQogCitZb3UgbWlnaHQgaGF2ZSBub3RpY2VkIHRoYXQgbWV0aG9kcyBsaWtlIGBgaW5zZXJ0YGAsIGBgcmVtb3ZlYGAgb3IgYGBzb3J0YGAgdGhhdAorbW9kaWZ5IHRoZSBsaXN0IGhhdmUgbm8gcmV0dXJuIHZhbHVlIHByaW50ZWQgLS0gdGhleSByZXR1cm4gYGBOb25lYGAuIFsxXV8gIFRoaXMKK2lzIGEgZGVzaWduIHByaW5jaXBsZSBmb3IgYWxsIG11dGFibGUgZGF0YSBzdHJ1Y3R1cmVzIGluIFB5dGhvbi4KKwogCiAuLiBfdHV0LWxpc3RzLWFzLXN0YWNrczoKIApAQCAtNDgwLDcgKzQ4NSw3IEBACiAKIFBlcmZvcm1pbmcgYGBsaXN0KGQua2V5cygpKWBgIG9uIGEgZGljdGlvbmFyeSByZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIGtleXMKIHVzZWQgaW4gdGhlIGRpY3Rpb25hcnksIGluIGFyYml0cmFyeSBvcmRlciAoaWYgeW91IHdhbnQgaXQgc29ydGVkLCBqdXN0IHVzZQotYGBzb3J0ZWQoZC5rZXlzKCkpYGAgaW5zdGVhZCkuIFsxXV8gIFRvIGNoZWNrIHdoZXRoZXIgYSBzaW5nbGUga2V5IGlzIGluIHRoZQorYGBzb3J0ZWQoZC5rZXlzKCkpYGAgaW5zdGVhZCkuIFsyXV8gIFRvIGNoZWNrIHdoZXRoZXIgYSBzaW5nbGUga2V5IGlzIGluIHRoZQogZGljdGlvbmFyeSwgdXNlIHRoZSA6a2V5d29yZDpgaW5gIGtleXdvcmQuCiAKIEhlcmUgaXMgYSBzbWFsbCBleGFtcGxlIHVzaW5nIGEgZGljdGlvbmFyeTo6CkBAIC02NjQsNiArNjY5LDkgQEAKIAogLi4gcnVicmljOjogRm9vdG5vdGVzCiAKLS4uIFsxXSBDYWxsaW5nIGBgZC5rZXlzKClgYCB3aWxsIHJldHVybiBhIDpkZm46YGRpY3Rpb25hcnkgdmlld2Agb2JqZWN0LiAgSXQKKy4uIFsxXSBPdGhlciBsYW5ndWFnZXMgbWF5IHJldHVybiB0aGUgbXV0YXRlZCBvYmplY3QsIHdoaWNoIGFsbG93cyBtZXRob2QKKyAgICAgICBjaGFpbmluZywgc3VjaCBhcyBgYGQtPmluc2VydCgiYSIpLT5yZW1vdmUoImIiKS0+c29ydCgpO2BgLgorCisuLiBbMl0gQ2FsbGluZyBgYGQua2V5cygpYGAgd2lsbCByZXR1cm4gYSA6ZGZuOmBkaWN0aW9uYXJ5IHZpZXdgIG9iamVjdC4gIEl0CiAgICAgICAgc3VwcG9ydHMgb3BlcmF0aW9ucyBsaWtlIG1lbWJlcnNoaXAgdGVzdCBhbmQgaXRlcmF0aW9uLCBidXQgaXRzIGNvbnRlbnRzCiAgICAgICAgYXJlIG5vdCBpbmRlcGVuZGVudCBvZiB0aGUgb3JpZ2luYWwgZGljdGlvbmFyeSAtLSBpdCBpcyBvbmx5IGEgKnZpZXcqLgpkaWZmIC0tZ2l0IGEvRG9jL3R1dG9yaWFsL2ludGVycHJldGVyLnJzdCBiL0RvYy90dXRvcmlhbC9pbnRlcnByZXRlci5yc3QKaW5kZXggMjMzODQ2NS4uOGYwOGNkOCAxMDA2NDQKLS0tIGEvRG9jL3R1dG9yaWFsL2ludGVycHJldGVyLnJzdAorKysgYi9Eb2MvdHV0b3JpYWwvaW50ZXJwcmV0ZXIucnN0CkBAIC0xMCwxMSArMTAsMTEgQEAKIEludm9raW5nIHRoZSBJbnRlcnByZXRlcgogPT09PT09PT09PT09PT09PT09PT09PT09CiAKLVRoZSBQeXRob24gaW50ZXJwcmV0ZXIgaXMgdXN1YWxseSBpbnN0YWxsZWQgYXMgOmZpbGU6YC91c3IvbG9jYWwvYmluL3B5dGhvbjMuMmAKK1RoZSBQeXRob24gaW50ZXJwcmV0ZXIgaXMgdXN1YWxseSBpbnN0YWxsZWQgYXMgOmZpbGU6YC91c3IvbG9jYWwvYmluL3B5dGhvbjMuM2AKIG9uIHRob3NlIG1hY2hpbmVzIHdoZXJlIGl0IGlzIGF2YWlsYWJsZTsgcHV0dGluZyA6ZmlsZTpgL3Vzci9sb2NhbC9iaW5gIGluIHlvdXIKIFVuaXggc2hlbGwncyBzZWFyY2ggcGF0aCBtYWtlcyBpdCBwb3NzaWJsZSB0byBzdGFydCBpdCBieSB0eXBpbmcgdGhlIGNvbW1hbmQgOjoKIAotICAgcHl0aG9uMy4yCisgICBweXRob24zLjMKIAogdG8gdGhlIHNoZWxsLiBbI11fIFNpbmNlIHRoZSBjaG9pY2Ugb2YgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgaW50ZXJwcmV0ZXIgbGl2ZXMKIGlzIGFuIGluc3RhbGxhdGlvbiBvcHRpb24sIG90aGVyIHBsYWNlcyBhcmUgcG9zc2libGU7IGNoZWNrIHdpdGggeW91ciBsb2NhbApAQCAtMjIsMTEgKzIyLDExIEBACiBwb3B1bGFyIGFsdGVybmF0aXZlIGxvY2F0aW9uLikKIAogT24gV2luZG93cyBtYWNoaW5lcywgdGhlIFB5dGhvbiBpbnN0YWxsYXRpb24gaXMgdXN1YWxseSBwbGFjZWQgaW4KLTpmaWxlOmBDOlxcUHl0aG9uMzJgLCB0aG91Z2ggeW91IGNhbiBjaGFuZ2UgdGhpcyB3aGVuIHlvdSdyZSBydW5uaW5nIHRoZQorOmZpbGU6YEM6XFxQeXRob24zM2AsIHRob3VnaCB5b3UgY2FuIGNoYW5nZSB0aGlzIHdoZW4geW91J3JlIHJ1bm5pbmcgdGhlCiBpbnN0YWxsZXIuICBUbyBhZGQgdGhpcyBkaXJlY3RvcnkgdG8geW91ciBwYXRoLCAgeW91IGNhbiB0eXBlIHRoZSBmb2xsb3dpbmcKIGNvbW1hbmQgaW50byB0aGUgY29tbWFuZCBwcm9tcHQgaW4gYSBET1MgYm94OjoKIAotICAgc2V0IHBhdGg9JXBhdGglO0M6XHB5dGhvbjMyCisgICBzZXQgcGF0aD0lcGF0aCU7QzpccHl0aG9uMzMKIAogVHlwaW5nIGFuIGVuZC1vZi1maWxlIGNoYXJhY3RlciAoOmtiZDpgQ29udHJvbC1EYCBvbiBVbml4LCA6a2JkOmBDb250cm9sLVpgIG9uCiBXaW5kb3dzKSBhdCB0aGUgcHJpbWFyeSBwcm9tcHQgY2F1c2VzIHRoZSBpbnRlcnByZXRlciB0byBleGl0IHdpdGggYSB6ZXJvIGV4aXQKQEAgLTkzLDggKzkzLDggQEAKIHByaW50cyBhIHdlbGNvbWUgbWVzc2FnZSBzdGF0aW5nIGl0cyB2ZXJzaW9uIG51bWJlciBhbmQgYSBjb3B5cmlnaHQgbm90aWNlCiBiZWZvcmUgcHJpbnRpbmcgdGhlIGZpcnN0IHByb21wdDo6CiAKLSAgICQgcHl0aG9uMy4yCi0gICBQeXRob24gMy4yIChweTNrLCBTZXAgMTIgMjAwNywgMTI6MjE6MDIpCisgICAkIHB5dGhvbjMuMworICAgUHl0aG9uIDMuMyAocHkzaywgU2VwIDEyIDIwMDcsIDEyOjIxOjAyKQogICAgW0dDQyAzLjQuNiAyMDA2MDQwNCAoUmVkIEhhdCAzLjQuNi04KV0gb24gbGludXgyCiAgICBUeXBlICJoZWxwIiwgImNvcHlyaWdodCIsICJjcmVkaXRzIiBvciAibGljZW5zZSIgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICA+Pj4KQEAgLTE0Nyw3ICsxNDcsNyBAQAogT24gQlNEJ2lzaCBVbml4IHN5c3RlbXMsIFB5dGhvbiBzY3JpcHRzIGNhbiBiZSBtYWRlIGRpcmVjdGx5IGV4ZWN1dGFibGUsIGxpa2UKIHNoZWxsIHNjcmlwdHMsIGJ5IHB1dHRpbmcgdGhlIGxpbmUgOjoKIAotICAgIyEgL3Vzci9iaW4vZW52IHB5dGhvbjMuMgorICAgIyEgL3Vzci9iaW4vZW52IHB5dGhvbjMuMwogCiAoYXNzdW1pbmcgdGhhdCB0aGUgaW50ZXJwcmV0ZXIgaXMgb24gdGhlIHVzZXIncyA6ZW52dmFyOmBQQVRIYCkgYXQgdGhlIGJlZ2lubmluZwogb2YgdGhlIHNjcmlwdCBhbmQgZ2l2aW5nIHRoZSBmaWxlIGFuIGV4ZWN1dGFibGUgbW9kZS4gIFRoZSBgYCMhYGAgbXVzdCBiZSB0aGUKZGlmZiAtLWdpdCBhL0RvYy90dXRvcmlhbC9zdGRsaWIucnN0IGIvRG9jL3R1dG9yaWFsL3N0ZGxpYi5yc3QKaW5kZXggOTcyOTc0My4uNTAwY2E3ZiAxMDA2NDQKLS0tIGEvRG9jL3R1dG9yaWFsL3N0ZGxpYi5yc3QKKysrIGIvRG9jL3R1dG9yaWFsL3N0ZGxpYi5yc3QKQEAgLTE1LDcgKzE1LDcgQEAKIAogICAgPj4+IGltcG9ydCBvcwogICAgPj4+IG9zLmdldGN3ZCgpICAgICAgIyBSZXR1cm4gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkKLSAgICdDOlxcUHl0aG9uMzEnCisgICAnQzpcXFB5dGhvbjMzJwogICAgPj4+IG9zLmNoZGlyKCcvc2VydmVyL2FjY2Vzc2xvZ3MnKSAgICMgQ2hhbmdlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkKICAgID4+PiBvcy5zeXN0ZW0oJ21rZGlyIHRvZGF5JykgICAjIFJ1biB0aGUgY29tbWFuZCBta2RpciBpbiB0aGUgc3lzdGVtIHNoZWxsCiAgICAwCmRpZmYgLS1naXQgYS9Eb2MvdHV0b3JpYWwvc3RkbGliMi5yc3QgYi9Eb2MvdHV0b3JpYWwvc3RkbGliMi5yc3QKaW5kZXggZmU3ZjAyNy4uODVjODhkYyAxMDA2NDQKLS0tIGEvRG9jL3R1dG9yaWFsL3N0ZGxpYjIucnN0CisrKyBiL0RvYy90dXRvcmlhbC9zdGRsaWIyLnJzdApAQCAtMTQxLDcgKzE0MSw5IEBACiAKICAgIGltcG9ydCBzdHJ1Y3QKIAotICAgZGF0YSA9IG9wZW4oJ215ZmlsZS56aXAnLCAncmInKS5yZWFkKCkKKyAgIHdpdGggb3BlbignbXlmaWxlLnppcCcsICdyYicpIGFzIGY6CisgICAgICAgZGF0YSA9IGYucmVhZCgpCisKICAgIHN0YXJ0ID0gMAogICAgZm9yIGkgaW4gcmFuZ2UoMyk6ICAgICAgICAgICAgICAgICAgICAgICMgc2hvdyB0aGUgZmlyc3QgMyBmaWxlIGhlYWRlcnMKICAgICAgICBzdGFydCArPSAxNApAQCAtMjcxLDcgKzI3Myw3IEBACiAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDEsIGluIDxtb2R1bGU+CiAgICAgICAgZFsncHJpbWFyeSddICAgICAgICAgICAgICAgICMgZW50cnkgd2FzIGF1dG9tYXRpY2FsbHkgcmVtb3ZlZAotICAgICBGaWxlICJDOi9weXRob24zMS9saWIvd2Vha3JlZi5weSIsIGxpbmUgNDYsIGluIF9fZ2V0aXRlbV9fCisgICAgIEZpbGUgIkM6L3B5dGhvbjMzL2xpYi93ZWFrcmVmLnB5IiwgbGluZSA0NiwgaW4gX19nZXRpdGVtX18KICAgICAgICBvID0gc2VsZi5kYXRhW2tleV0oKQogICAgS2V5RXJyb3I6ICdwcmltYXJ5JwogCmRpZmYgLS1naXQgYS9Eb2MvdXNpbmcvY21kbGluZS5yc3QgYi9Eb2MvdXNpbmcvY21kbGluZS5yc3QKaW5kZXggMGQxMjEyNi4uYjE0ZjM3MCAxMDA2NDQKLS0tIGEvRG9jL3VzaW5nL2NtZGxpbmUucnN0CisrKyBiL0RvYy91c2luZy9jbWRsaW5lLnJzdApAQCAtMjQsNyArMjQsNyBAQAogCiBXaGVuIGludm9raW5nIFB5dGhvbiwgeW91IG1heSBzcGVjaWZ5IGFueSBvZiB0aGVzZSBvcHRpb25zOjoKIAotICAgIHB5dGhvbiBbLWJCZEVoaU9ScXNTdXZWV3g/XSBbLWMgY29tbWFuZCB8IC1tIG1vZHVsZS1uYW1lIHwgc2NyaXB0IHwgLSBdIFthcmdzXQorICAgIHB5dGhvbiBbLWJCZEVoaU9xc1N1dlZXeD9dIFstYyBjb21tYW5kIHwgLW0gbW9kdWxlLW5hbWUgfCBzY3JpcHQgfCAtIF0gW2FyZ3NdCiAKIFRoZSBtb3N0IGNvbW1vbiB1c2UgY2FzZSBpcywgb2YgY291cnNlLCBhIHNpbXBsZSBpbnZvY2F0aW9uIG9mIGEgc2NyaXB0OjoKIApAQCAtMjYzLDcgKzI2Myw5IEBACiAuLiBjbWRvcHRpb246OiAtUwogCiAgICBEaXNhYmxlIHRoZSBpbXBvcnQgb2YgdGhlIG1vZHVsZSA6bW9kOmBzaXRlYCBhbmQgdGhlIHNpdGUtZGVwZW5kZW50Ci0gICBtYW5pcHVsYXRpb25zIG9mIDpkYXRhOmBzeXMucGF0aGAgdGhhdCBpdCBlbnRhaWxzLgorICAgbWFuaXB1bGF0aW9ucyBvZiA6ZGF0YTpgc3lzLnBhdGhgIHRoYXQgaXQgZW50YWlscy4gIEFsc28gZGlzYWJsZSB0aGVzZQorICAgbWFuaXB1bGF0aW9ucyBpZiA6bW9kOmBzaXRlYCBpcyBleHBsaWNpdGx5IGltcG9ydGVkIGxhdGVyIChjYWxsCisgICA6ZnVuYzpgc2l0ZS5tYWluYCBpZiB5b3Ugd2FudCB0aGVtIHRvIGJlIHRyaWdnZXJlZCkuCiAKIAogLi4gY21kb3B0aW9uOjogLXUKQEAgLTQ3Miw3ICs0NzQsNyBAQAogLi4gZW52dmFyOjogUFlUSE9OQ0FTRU9LCiAKICAgIElmIHRoaXMgaXMgc2V0LCBQeXRob24gaWdub3JlcyBjYXNlIGluIDprZXl3b3JkOmBpbXBvcnRgIHN0YXRlbWVudHMuICBUaGlzCi0gICBvbmx5IHdvcmtzIG9uIFdpbmRvd3MsIE9TIFgsIGFuZCBPUy8yLgorICAgb25seSB3b3JrcyBvbiBXaW5kb3dzIGFuZCBPUyBYLgogCiAKIC4uIGVudnZhcjo6IFBZVEhPTkRPTlRXUklURUJZVEVDT0RFCkBAIC00ODQsOSArNDg2LDggQEAKIAogLi4gZW52dmFyOjogUFlUSE9OSEFTSFNFRUQKIAotICAgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gYGByYW5kb21gYCwgdGhlIGVmZmVjdCBpcyB0aGUgc2FtZSBhcyBzcGVjaWZ5aW5nCi0gICB0aGUgOm9wdGlvbjpgLVJgIG9wdGlvbjogYSByYW5kb20gdmFsdWUgaXMgdXNlZCB0byBzZWVkIHRoZSBoYXNoZXMgb2Ygc3RyLAotICAgYnl0ZXMgYW5kIGRhdGV0aW1lIG9iamVjdHMuCisgICBJZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byBgYHJhbmRvbWBgLCBhIHJhbmRvbSB2YWx1ZSBpcyB1c2VkIHRvIHNlZWQgdGhlCisgICBoYXNoZXMgb2Ygc3RyLCBieXRlcyBhbmQgZGF0ZXRpbWUgb2JqZWN0cy4KIAogICAgSWYgOmVudnZhcjpgUFlUSE9OSEFTSFNFRURgIGlzIHNldCB0byBhbiBpbnRlZ2VyIHZhbHVlLCBpdCBpcyB1c2VkIGFzIGEgZml4ZWQKICAgIHNlZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGhhc2goKSBvZiB0aGUgdHlwZXMgY292ZXJlZCBieSB0aGUgaGFzaApAQCAtNDk3LDggKzQ5OCw3IEBACiAgICB2YWx1ZXMuCiAKICAgIFRoZSBpbnRlZ2VyIG11c3QgYmUgYSBkZWNpbWFsIG51bWJlciBpbiB0aGUgcmFuZ2UgWzAsNDI5NDk2NzI5NV0uICBTcGVjaWZ5aW5nCi0gICB0aGUgdmFsdWUgMCB3aWxsIGxlYWQgdG8gdGhlIHNhbWUgaGFzaCB2YWx1ZXMgYXMgd2hlbiBoYXNoIHJhbmRvbWl6YXRpb24gaXMKLSAgIGRpc2FibGVkLgorICAgdGhlIHZhbHVlIDAgd2lsbCBkaXNhYmxlIGhhc2ggcmFuZG9taXphdGlvbi4KIAogICAgLi4gdmVyc2lvbmFkZGVkOjogMy4yLjMKIApAQCAtNTI4LDggKzUyOCw4IEBACiAKICAgIERlZmluZXMgdGhlIDpkYXRhOmB1c2VyIGJhc2UgZGlyZWN0b3J5IDxzaXRlLlVTRVJfQkFTRT5gLCB3aGljaCBpcyB1c2VkIHRvCiAgICBjb21wdXRlIHRoZSBwYXRoIG9mIHRoZSA6ZGF0YTpgdXNlciBzaXRlLXBhY2thZ2VzIGRpcmVjdG9yeSA8c2l0ZS5VU0VSX1NJVEU+YAotICAgYW5kIDpyZWY6YERpc3R1dGlscyBpbnN0YWxsYXRpb24gcGF0aHMgPGluc3QtYWx0LWluc3RhbGwtdXNlcj5gIGZvciBgYHB5dGhvbgotICAgc2V0dXAucHkgaW5zdGFsbCAtLXVzZXJgYC4KKyAgIGFuZCA6cmVmOmBEaXN0dXRpbHMgaW5zdGFsbGF0aW9uIHBhdGhzIDxpbnN0LWFsdC1pbnN0YWxsLXVzZXI+YCBmb3IKKyAgIGBgcHl0aG9uIHNldHVwLnB5IGluc3RhbGwgLS11c2VyYGAuCiAKICAgIC4uIHNlZWFsc286OgogCkBAIC01NDgsNiArNTQ4LDE0IEBACiAgICBzZXBhcmF0ZWQgc3RyaW5nLCBpdCBpcyBlcXVpdmFsZW50IHRvIHNwZWNpZnlpbmcgOm9wdGlvbjpgLVdgIG11bHRpcGxlCiAgICB0aW1lcy4KIAorLi4gZW52dmFyOjogUFlUSE9ORkFVTFRIQU5ETEVSCisKKyAgIElmIHRoaXMgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0LCA6ZnVuYzpgZmF1bHRoYW5kbGVyLmVuYWJsZWAgaXMgY2FsbGVkCisgICBhdCBzdGFydHVwOiBpbnN0YWxsIGEgaGFuZGxlciBmb3IgOmNvbnN0OmBTSUdTRUdWYCwgOmNvbnN0OmBTSUdGUEVgLAorICAgOmNvbnN0OmBTSUdBQlJUYCwgOmNvbnN0OmBTSUdCVVNgIGFuZCA6Y29uc3Q6YFNJR0lMTGAgc2lnbmFscyB0byBkdW1wIHRoZQorICAgUHl0aG9uIHRyYWNlYmFjay4gIFRoaXMgaXMgZXF1aXZhbGVudCB0byA6b3B0aW9uOmAtWGAgYGBmYXVsdGhhbmRsZXJgYAorICAgb3B0aW9uLgorCiAKIERlYnVnLW1vZGUgdmFyaWFibGVzCiB+fn5+fn5+fn5+fn5+fn5+fn5+fgpkaWZmIC0tZ2l0IGEvRG9jL3VzaW5nL2luZGV4LnJzdCBiL0RvYy91c2luZy9pbmRleC5yc3QKaW5kZXggMTIwMTE1My4uNTAyYWZhOSAxMDA2NDQKLS0tIGEvRG9jL3VzaW5nL2luZGV4LnJzdAorKysgYi9Eb2MvdXNpbmcvaW5kZXgucnN0CkBAIC0xNyw0ICsxNyw0IEBACiAgICB1bml4LnJzdAogICAgd2luZG93cy5yc3QKICAgIG1hYy5yc3QKLQorICAgc2NyaXB0cy5yc3QKZGlmZiAtLWdpdCBhL0RvYy91c2luZy9zY3JpcHRzLnJzdCBiL0RvYy91c2luZy9zY3JpcHRzLnJzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTY4ODQ3Ci0tLSAvZGV2L251bGwKKysrIGIvRG9jL3VzaW5nL3NjcmlwdHMucnN0CkBAIC0wLDAgKzEsODcgQEAKKy4uIF90b29scy1hbmQtc2NyaXB0czoKKworQWRkaXRpb25hbCBUb29scyBhbmQgU2NyaXB0cworPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitweXZlbnYgLSBDcmVhdGluZyB2aXJ0dWFsIGVudmlyb25tZW50cworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworQ3JlYXRpb24gb2YgdmlydHVhbCBlbnZpcm9ubWVudHMgaXMgZG9uZSBieSBleGVjdXRpbmcgdGhlIGBgcHl2ZW52YGAKK3NjcmlwdDo6CisKKyAgICBweXZlbnYgL3BhdGgvdG8vbmV3L3ZpcnR1YWwvZW52aXJvbm1lbnQKKworUnVubmluZyB0aGlzIGNvbW1hbmQgY3JlYXRlcyB0aGUgdGFyZ2V0IGRpcmVjdG9yeSAoY3JlYXRpbmcgYW55IHBhcmVudAorZGlyZWN0b3JpZXMgdGhhdCBkb24ndCBleGlzdCBhbHJlYWR5KSBhbmQgcGxhY2VzIGEgYGBweXZlbnYuY2ZnYGAgZmlsZQoraW4gaXQgd2l0aCBhIGBgaG9tZWBgIGtleSBwb2ludGluZyB0byB0aGUgUHl0aG9uIGluc3RhbGxhdGlvbiB0aGUKK2NvbW1hbmQgd2FzIHJ1biBmcm9tLiAgSXQgYWxzbyBjcmVhdGVzIGEgYGBiaW5gYCAob3IgYGBTY3JpcHRzYGAgb24KK1dpbmRvd3MpIHN1YmRpcmVjdG9yeSBjb250YWluaW5nIGEgY29weSBvZiB0aGUgYGBweXRob25gYCBiaW5hcnkgKG9yCitiaW5hcmllcywgaW4gdGhlIGNhc2Ugb2YgV2luZG93cykuCitJdCBhbHNvIGNyZWF0ZXMgYW4gKGluaXRpYWxseSBlbXB0eSkgYGBsaWIvcHl0aG9uWC5ZL3NpdGUtcGFja2FnZXNgYAorc3ViZGlyZWN0b3J5IChvbiBXaW5kb3dzLCB0aGlzIGlzIGBgTGliXHNpdGUtcGFja2FnZXNgYCkuCisKKy4uIGhpZ2hsaWdodDo6IG5vbmUKKworT24gV2luZG93cywgeW91IG1heSBoYXZlIHRvIGludm9rZSB0aGUgYGBweXZlbnZgYCBzY3JpcHQgYXMgZm9sbG93cywgaWYgeW91Citkb24ndCBoYXZlIHRoZSByZWxldmFudCBQQVRIIGFuZCBQQVRIRVhUIHNldHRpbmdzOjoKKworICAgIGM6XFRlbXA+YzpcUHl0aG9uMzNccHl0aG9uIGM6XFB5dGhvbjMzXFRvb2xzXFNjcmlwdHNccHl2ZW52LnB5IG15ZW52CisKK29yIGVxdWl2YWxlbnRseTo6CisKKyAgICBjOlxUZW1wPmM6XFB5dGhvbjMzXHB5dGhvbiAtbSB2ZW52IG15ZW52CisKK1RoZSBjb21tYW5kLCBpZiBydW4gd2l0aCBgYC1oYGAsIHdpbGwgc2hvdyB0aGUgYXZhaWxhYmxlIG9wdGlvbnM6OgorCisgICAgdXNhZ2U6IHB5dmVudiBbLWhdIFstLXN5c3RlbS1zaXRlLXBhY2thZ2VzXSBbLS1zeW1saW5rXSBbLS1jbGVhcl0KKyAgICAgICAgICAgICAgICAgIFstLXVwZ3JhZGVdIEVOVl9ESVIgW0VOVl9ESVIgLi4uXQorCisgICAgQ3JlYXRlcyB2aXJ0dWFsIFB5dGhvbiBlbnZpcm9ubWVudHMgaW4gb25lIG9yIG1vcmUgdGFyZ2V0IGRpcmVjdG9yaWVzLgorCisgICAgcG9zaXRpb25hbCBhcmd1bWVudHM6CisgICAgICBFTlZfRElSICAgICAgICAgICAgIEEgZGlyZWN0b3J5IHRvIGNyZWF0ZSB0aGUgZW52aXJvbm1lbnQgaW4uCisKKyAgICBvcHRpb25hbCBhcmd1bWVudHM6CisgICAgICAtaCwgLS1oZWxwICAgICAgICAgICAgIHNob3cgdGhpcyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKKyAgICAgIC0tc3lzdGVtLXNpdGUtcGFja2FnZXMgR2l2ZSBhY2Nlc3MgdG8gdGhlIGdsb2JhbCBzaXRlLXBhY2thZ2VzIGRpciB0byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbCBlbnZpcm9ubWVudC4KKyAgICAgIC0tc3ltbGluayAgICAgICAgICAgICAgQXR0ZW1wdCB0byBzeW1saW5rIHJhdGhlciB0aGFuIGNvcHkuCisgICAgICAtLWNsZWFyICAgICAgICAgICAgICAgIERlbGV0ZSB0aGUgZW52aXJvbm1lbnQgZGlyZWN0b3J5IGlmIGl0IGFscmVhZHkgZXhpc3RzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJZiBub3Qgc3BlY2lmaWVkIGFuZCB0aGUgZGlyZWN0b3J5IGV4aXN0cywgYW4gZXJyb3IgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2VkLgorICAgICAgLS11cGdyYWRlICAgICAgICAgICAgICBVcGdyYWRlIHRoZSBlbnZpcm9ubWVudCBkaXJlY3RvcnkgdG8gdXNlIHRoaXMgdmVyc2lvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBQeXRob24sIGFzc3VtaW5nIFB5dGhvbiBoYXMgYmVlbiB1cGdyYWRlZCBpbi1wbGFjZS4KKworSWYgdGhlIHRhcmdldCBkaXJlY3RvcnkgYWxyZWFkeSBleGlzdHMgYW4gZXJyb3Igd2lsbCBiZSByYWlzZWQsIHVubGVzcwordGhlIGBgLS1jbGVhcmBgIG9yIGBgLS11cGdyYWRlYGAgb3B0aW9uIHdhcyBwcm92aWRlZC4KKworVGhlIGNyZWF0ZWQgYGBweXZlbnYuY2ZnYGAgZmlsZSBhbHNvIGluY2x1ZGVzIHRoZQorYGBpbmNsdWRlLXN5c3RlbS1zaXRlLXBhY2thZ2VzYGAga2V5LCBzZXQgdG8gYGB0cnVlYGAgaWYgYGB2ZW52YGAgaXMKK3J1biB3aXRoIHRoZSBgYC0tc3lzdGVtLXNpdGUtcGFja2FnZXNgYCBvcHRpb24sIGBgZmFsc2VgYCBvdGhlcndpc2UuCisKK011bHRpcGxlIHBhdGhzIGNhbiBiZSBnaXZlbiB0byBgYHB5dmVudmBgLCBpbiB3aGljaCBjYXNlIGFuIGlkZW50aWNhbAordmlydHVhbGVudiB3aWxsIGJlIGNyZWF0ZWQsIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gb3B0aW9ucywgYXQgZWFjaAorcHJvdmlkZWQgcGF0aC4KKworLi4gbm90ZTo6IEEgdmlydHVhbCBlbnZpcm9ubWVudCAoYWxzbyBjYWxsZWQgYSBgYHZlbnZgYCkgaXMgYSBQeXRob24KKyAgIGVudmlyb25tZW50IHN1Y2ggdGhhdCB0aGUgUHl0aG9uIGludGVycHJldGVyLCBsaWJyYXJpZXMgYW5kIHNjcmlwdHMKKyAgIGluc3RhbGxlZCBpbnRvIGl0IGFyZSBpc29sYXRlZCBmcm9tIHRob3NlIGluc3RhbGxlZCBpbiBvdGhlciB2aXJ0dWFsCisgICBlbnZpcm9ubWVudHMsIGFuZCAoYnkgZGVmYXVsdCkgYW55IGxpYnJhcmllcyBpbnN0YWxsZWQgaW4gYSAic3lzdGVtIiBQeXRob24sCisgICBpLmUuIG9uZSB3aGljaCBpcyBpbnN0YWxsZWQgYXMgcGFydCBvZiB5b3VyIG9wZXJhdGluZyBzeXN0ZW0uCisKKyAgIEEgdmVudiBpcyBhIGRpcmVjdG9yeSB0cmVlIHdoaWNoIGNvbnRhaW5zIFB5dGhvbiBleGVjdXRhYmxlIGZpbGVzIGFuZAorICAgb3RoZXIgZmlsZXMgd2hpY2ggaW5kaWNhdGUgdGhhdCBpdCBpcyBhIHZlbnYuCisKKyAgIENvbW1vbiBpbnN0YWxsYXRpb24gdG9vbHMgc3VjaCBhcyBgYGRpc3RyaWJ1dGVgYCBhbmQgYGBwaXBgYCB3b3JrIGFzCisgICBleHBlY3RlZCB3aXRoIHZlbnZzIC0gaS5lLiB3aGVuIGEgdmVudiBpcyBhY3RpdmUsIHRoZXkgaW5zdGFsbCBQeXRob24KKyAgIHBhY2thZ2VzIGludG8gdGhlIHZlbnYgd2l0aG91dCBuZWVkaW5nIHRvIGJlIHRvbGQgdG8gZG8gc28gZXhwbGljaXRseS4KKworICAgV2hlbiBhIHZlbnYgaXMgYWN0aXZlIChpLmUuIHRoZSB2ZW52J3MgUHl0aG9uIGludGVycHJldGVyIGlzIHJ1bm5pbmcpLCB0aGUKKyAgIGF0dHJpYnV0ZXMgOmF0dHI6YHN5cy5wcmVmaXhgIGFuZCA6YXR0cjpgc3lzLmV4ZWNfcHJlZml4YCBwb2ludCB0byB0aGUgYmFzZQorICAgZGlyZWN0b3J5IG9mIHRoZSB2ZW52LCB3aGVyZWFzIDphdHRyOmBzeXMuYmFzZV9wcmVmaXhgIGFuZAorICAgOmF0dHI6YHN5cy5iYXNlX2V4ZWNfcHJlZml4YCBwb2ludCB0byB0aGUgbm9uLXZlbnYgUHl0aG9uIGluc3RhbGxhdGlvbgorICAgd2hpY2ggd2FzIHVzZWQgdG8gY3JlYXRlIHRoZSB2ZW52LiBJZiBhIHZlbnYgaXMgbm90IGFjdGl2ZSwgdGhlbgorICAgOmF0dHI6YHN5cy5wcmVmaXhgIGlzIHRoZSBzYW1lIGFzIDphdHRyOmBzeXMuYmFzZV9wcmVmaXhgIGFuZAorICAgOmF0dHI6YHN5cy5leGVjX3ByZWZpeGAgaXMgdGhlIHNhbWUgYXMgOmF0dHI6YHN5cy5iYXNlX2V4ZWNfcHJlZml4YCAodGhleQorICAgYWxsIHBvaW50IHRvIGEgbm9uLXZlbnYgUHl0aG9uIGluc3RhbGxhdGlvbikuCisKZGlmZiAtLWdpdCBhL0RvYy91c2luZy93aW5kb3dzLnJzdCBiL0RvYy91c2luZy93aW5kb3dzLnJzdAppbmRleCA3NDJhMjkwLi45MjEzMzVlIDEwMDY0NAotLS0gYS9Eb2MvdXNpbmcvd2luZG93cy5yc3QKKysrIGIvRG9jL3VzaW5nL3dpbmRvd3MucnN0CkBAIC0yMDMsMTMgKzIwMywxOSBAQAogRXhlY3V0aW5nIHNjcmlwdHMKIC0tLS0tLS0tLS0tLS0tLS0tCiAKLVB5dGhvbiBzY3JpcHRzIChmaWxlcyB3aXRoIHRoZSBleHRlbnNpb24gYGAucHlgYCkgd2lsbCBiZSBleGVjdXRlZCBieQotOnByb2dyYW06YHB5dGhvbi5leGVgIGJ5IGRlZmF1bHQuICBUaGlzIGV4ZWN1dGFibGUgb3BlbnMgYSB0ZXJtaW5hbCwgd2hpY2ggc3RheXMKLW9wZW4gZXZlbiBpZiB0aGUgcHJvZ3JhbSB1c2VzIGEgR1VJLiAgSWYgeW91IGRvIG5vdCB3YW50IHRoaXMgdG8gaGFwcGVuLCB1c2UgdGhlCi1leHRlbnNpb24gYGAucHl3YGAgd2hpY2ggd2lsbCBjYXVzZSB0aGUgc2NyaXB0IHRvIGJlIGV4ZWN1dGVkIGJ5Ci06cHJvZ3JhbTpgcHl0aG9udy5leGVgIGJ5IGRlZmF1bHQgKGJvdGggZXhlY3V0YWJsZXMgYXJlIGxvY2F0ZWQgaW4gdGhlIHRvcC1sZXZlbAotb2YgeW91ciBQeXRob24gaW5zdGFsbGF0aW9uIGRpcmVjdG9yeSkuICBUaGlzIHN1cHByZXNzZXMgdGhlIHRlcm1pbmFsIHdpbmRvdyBvbgotc3RhcnR1cC4KK0FzIG9mIFB5dGhvbiAzLjMsIFB5dGhvbiBpbmNsdWRlcyBhIGxhdW5jaGVyIHdoaWNoIGZhY2lsaXRhdGVzIHJ1bm5pbmcgUHl0aG9uCitzY3JpcHRzLiBTZWUgOnJlZjpgbGF1bmNoZXJgIGZvciBtb3JlIGluZm9ybWF0aW9uLgorCitFeGVjdXRpbmcgc2NyaXB0cyB3aXRob3V0IHRoZSBQeXRob24gbGF1bmNoZXIKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaXRob3V0IHRoZSBQeXRob24gbGF1bmNoZXIgaW5zdGFsbGVkLCBQeXRob24gc2NyaXB0cyAoZmlsZXMgd2l0aCB0aGUgZXh0ZW5zaW9uCitgYC5weWBgKSB3aWxsIGJlIGV4ZWN1dGVkIGJ5IDpwcm9ncmFtOmBweXRob24uZXhlYCBieSBkZWZhdWx0LiAgVGhpcyBleGVjdXRhYmxlCitvcGVucyBhIHRlcm1pbmFsLCB3aGljaCBzdGF5cyBvcGVuIGV2ZW4gaWYgdGhlIHByb2dyYW0gdXNlcyBhIEdVSS4gIElmIHlvdSBkbworbm90IHdhbnQgdGhpcyB0byBoYXBwZW4sIHVzZSB0aGUgZXh0ZW5zaW9uIGBgLnB5d2BgIHdoaWNoIHdpbGwgY2F1c2UgdGhlIHNjcmlwdAordG8gYmUgZXhlY3V0ZWQgYnkgOnByb2dyYW06YHB5dGhvbncuZXhlYCBieSBkZWZhdWx0IChib3RoIGV4ZWN1dGFibGVzIGFyZQorbG9jYXRlZCBpbiB0aGUgdG9wLWxldmVsIG9mIHlvdXIgUHl0aG9uIGluc3RhbGxhdGlvbiBkaXJlY3RvcnkpLiAgVGhpcworc3VwcHJlc3NlcyB0aGUgdGVybWluYWwgd2luZG93IG9uIHN0YXJ0dXAuCiAKIFlvdSBjYW4gYWxzbyBtYWtlIGFsbCBgYC5weWBgIHNjcmlwdHMgZXhlY3V0ZSB3aXRoIDpwcm9ncmFtOmBweXRob253LmV4ZWAsCiBzZXR0aW5nIHRoaXMgdGhyb3VnaCB0aGUgdXN1YWwgZmFjaWxpdGllcywgZm9yIGV4YW1wbGUgKG1pZ2h0IHJlcXVpcmUKQEAgLTIyNSw2ICsyMzEsMjUwIEBACiAgICAgICBmdHlwZSBQeXRob24uRmlsZT1DOlxQYXRoXHRvXHB5dGhvbncuZXhlICIlMSIgJSoKIAogCisuLiBfbGF1bmNoZXI6CisKK1B5dGhvbiBMYXVuY2hlciBmb3IgV2luZG93cworPT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKy4uIHZlcnNpb25hZGRlZDo6IDMuMworCitUaGUgUHl0aG9uIGxhdW5jaGVyIGZvciBXaW5kb3dzIGlzIGEgdXRpbGl0eSB3aGljaCBhaWRzIGluIHRoZSBsb2NhdGlvbiBhbmQKK2V4ZWN1dGlvbiBvZiBkaWZmZXJlbnQgUHl0aG9uIHZlcnNpb25zLiAgSXQgYWxsb3dzIHNjcmlwdHMgKG9yIHRoZQorY29tbWFuZC1saW5lKSB0byBpbmRpY2F0ZSBhIHByZWZlcmVuY2UgZm9yIGEgc3BlY2lmaWMgUHl0aG9uIHZlcnNpb24sIGFuZAord2lsbCBsb2NhdGUgYW5kIGV4ZWN1dGUgdGhhdCB2ZXJzaW9uLgorCitHZXR0aW5nIHN0YXJ0ZWQKKy0tLS0tLS0tLS0tLS0tLQorCitGcm9tIHRoZSBjb21tYW5kLWxpbmUKK15eXl5eXl5eXl5eXl5eXl5eXl5eXgorCitZb3Ugc2hvdWxkIGVuc3VyZSB0aGUgbGF1bmNoZXIgaXMgb24geW91ciBQQVRIIC0gZGVwZW5kaW5nIG9uIGhvdyBpdCB3YXMKK2luc3RhbGxlZCBpdCBtYXkgYWxyZWFkeSBiZSB0aGVyZSwgYnV0IGNoZWNrIGp1c3QgaW4gY2FzZSBpdCBpcyBub3QuCisKK0Zyb20gYSBjb21tYW5kLXByb21wdCwgZXhlY3V0ZSB0aGUgZm9sbG93aW5nIGNvbW1hbmQ6CisKKzo6CisKKyAgcHkKKworWW91IHNob3VsZCBmaW5kIHRoYXQgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIFB5dGhvbiAyLnggeW91IGhhdmUgaW5zdGFsbGVkIGlzCitzdGFydGVkIC0gaXQgY2FuIGJlIGV4aXRlZCBhcyBub3JtYWwsIGFuZCBhbnkgYWRkaXRpb25hbCBjb21tYW5kLWxpbmUKK2FyZ3VtZW50cyBzcGVjaWZpZWQgd2lsbCBiZSBzZW50IGRpcmVjdGx5IHRvIFB5dGhvbi4KKworSWYgeW91IGhhdmUgbXVsdGlwbGUgdmVyc2lvbnMgb2YgUHl0aG9uIDIueCBpbnN0YWxsZWQgKGUuZy4sIDIuNiBhbmQgMi43KSB5b3UKK3dpbGwgaGF2ZSBub3RpY2VkIHRoYXQgUHl0aG9uIDIuNyB3YXMgc3RhcnRlZCAtIHRvIGxhdW5jaCBQeXRob24gMi42LCB0cnkgdGhlCitjb21tYW5kOgorCis6OgorCisgIHB5IC0yLjYKKworSWYgeW91IGhhdmUgYSBQeXRob24gMy54IGluc3RhbGxlZCwgdHJ5IHRoZSBjb21tYW5kOgorCis6OgorCisgIHB5IC0zCisKK1lvdSBzaG91bGQgZmluZCB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgUHl0aG9uIDMueCBzdGFydHMuCisKK0Zyb20gYSBzY3JpcHQKK15eXl5eXl5eXl5eXl4KKworTGV0J3MgY3JlYXRlIGEgdGVzdCBQeXRob24gc2NyaXB0IC0gY3JlYXRlIGEgZmlsZSBjYWxsZWQgYGBoZWxsby5weWBgIHdpdGggdGhlCitmb2xsb3dpbmcgY29udGVudHMKKworOjoKKworICAgICMhIHB5dGhvbgorICAgIGltcG9ydCBzeXMKKyAgICBzeXMuc3Rkb3V0LndyaXRlKCJoZWxsbyBmcm9tIFB5dGhvbiAlc1xuIiAlIChzeXMudmVyc2lvbiwpKQorCitGcm9tIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggaGVsbG8ucHkgbGl2ZXMsIGV4ZWN1dGUgdGhlIGNvbW1hbmQ6CisKKzo6CisKKyAgIHB5IGhlbGxvLnB5CisKK1lvdSBzaG91bGQgbm90aWNlIHRoZSB2ZXJzaW9uIG51bWJlciBvZiB5b3VyIGxhdGVzdCBQeXRob24gMi54IGluc3RhbGxhdGlvbgoraXMgcHJpbnRlZC4gIE5vdyB0cnkgY2hhbmdpbmcgdGhlIGZpcnN0IGxpbmUgdG8gYmU6CisKKzo6CisKKyAgICAjISBweXRob24zCisKK1JlLWV4ZWN1dGluZyB0aGUgY29tbWFuZCBzaG91bGQgbm93IHByaW50IHRoZSBsYXRlc3QgUHl0aG9uIDMueCBpbmZvcm1hdGlvbi4KK0FzIHdpdGggdGhlIGFib3ZlIGNvbW1hbmQtbGluZSBleGFtcGxlcywgeW91IGNhbiBzcGVjaWZ5IGEgbW9yZSBleHBsaWNpdAordmVyc2lvbiBxdWFsaWZpZXIuICBBc3N1bWluZyB5b3UgaGF2ZSBQeXRob24gMi42IGluc3RhbGxlZCwgdHJ5IGNoYW5naW5nIHRoZQorZmlyc3QgbGluZSB0byBgYCMhIHB5dGhvbjIuNmBgIGFuZCB5b3Ugc2hvdWxkIGZpbmQgdGhlIDIuNiB2ZXJzaW9uCitpbmZvcm1hdGlvbiBwcmludGVkLgorCitGcm9tIGZpbGUgYXNzb2NpYXRpb25zCiteXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKK1RoZSBsYXVuY2hlciBzaG91bGQgaGF2ZSBiZWVuIGFzc29jaWF0ZWQgd2l0aCBQeXRob24gZmlsZXMgKGkuZS4gYGAucHlgYCwKK2BgLnB5d2BgLCBgYC5weWNgYCwgYGAucHlvYGAgZmlsZXMpIHdoZW4gaXQgd2FzIGluc3RhbGxlZC4gIFRoaXMgbWVhbnMgdGhhdAord2hlbiB5b3UgZG91YmxlLWNsaWNrIG9uIG9uZSBvZiB0aGVzZSBmaWxlcyBmcm9tIFdpbmRvd3MgZXhwbG9yZXIgdGhlIGxhdW5jaGVyCit3aWxsIGJlIHVzZWQsIGFuZCB0aGVyZWZvcmUgeW91IGNhbiB1c2UgdGhlIHNhbWUgZmFjaWxpdGllcyBkZXNjcmliZWQgYWJvdmUgdG8KK2hhdmUgdGhlIHNjcmlwdCBzcGVjaWZ5IHRoZSB2ZXJzaW9uIHdoaWNoIHNob3VsZCBiZSB1c2VkLgorCitUaGUga2V5IGJlbmVmaXQgb2YgdGhpcyBpcyB0aGF0IGEgc2luZ2xlIGxhdW5jaGVyIGNhbiBzdXBwb3J0IG11bHRpcGxlIFB5dGhvbgordmVyc2lvbnMgYXQgdGhlIHNhbWUgdGltZSBkZXBlbmRpbmcgb24gdGhlIGNvbnRlbnRzIG9mIHRoZSBmaXJzdCBsaW5lLgorCitTaGViYW5nIExpbmVzCistLS0tLS0tLS0tLS0tCisKK0lmIHRoZSBmaXJzdCBsaW5lIG9mIGEgc2NyaXB0IGZpbGUgc3RhcnRzIHdpdGggYGAjIWBgLCBpdCBpcyBrbm93biBhcyBhCisic2hlYmFuZyIgbGluZS4gIExpbnV4IGFuZCBvdGhlciBVbml4IGxpa2Ugb3BlcmF0aW5nIHN5c3RlbXMgaGF2ZSBuYXRpdmUKK3N1cHBvcnQgZm9yIHN1Y2ggbGluZXMgYW5kIGFyZSBjb21tb25seSB1c2VkIG9uIHN1Y2ggc3lzdGVtcyB0byBpbmRpY2F0ZSBob3cKK2Egc2NyaXB0IHNob3VsZCBiZSBleGVjdXRlZC4gIFRoaXMgbGF1bmNoZXIgYWxsb3dzIHRoZSBzYW1lIGZhY2lsaXRpZXMgdG8gYmUKK3VzaW5nIHdpdGggUHl0aG9uIHNjcmlwdHMgb24gV2luZG93cyBhbmQgdGhlIGV4YW1wbGVzIGFib3ZlIGRlbW9uc3RyYXRlIHRoZWlyCit1c2UuCisKK1RvIGFsbG93IHNoZWJhbmcgbGluZXMgaW4gUHl0aG9uIHNjcmlwdHMgdG8gYmUgcG9ydGFibGUgYmV0d2VlbiBVbml4IGFuZAorV2luZG93cywgdGhpcyBsYXVuY2hlciBzdXBwb3J0cyBhIG51bWJlciBvZiAndmlydHVhbCcgY29tbWFuZHMgdG8gc3BlY2lmeQord2hpY2ggaW50ZXJwcmV0ZXIgdG8gdXNlLiAgVGhlIHN1cHBvcnRlZCB2aXJ0dWFsIGNvbW1hbmRzIGFyZToKKworKiBgYC91c3IvYmluL2VudiBweXRob25gYAorKiBgYC91c3IvYmluL3B5dGhvbmBgCisqIGBgL3Vzci9sb2NhbC9iaW4vcHl0aG9uYGAKKyogYGBweXRob25gYAorCitGb3IgZXhhbXBsZSwgaWYgdGhlIGZpcnN0IGxpbmUgb2YgeW91ciBzY3JpcHQgc3RhcnRzIHdpdGgKKworOjoKKworICAjISAvdXNyL2Jpbi9weXRob24KKworVGhlIGRlZmF1bHQgUHl0aG9uIHdpbGwgYmUgbG9jYXRlZCBhbmQgdXNlZC4gIEFzIG1hbnkgUHl0aG9uIHNjcmlwdHMgd3JpdHRlbgordG8gd29yayBvbiBVbml4IHdpbGwgYWxyZWFkeSBoYXZlIHRoaXMgbGluZSwgeW91IHNob3VsZCBmaW5kIHRoZXNlIHNjcmlwdHMgY2FuCitiZSB1c2VkIGJ5IHRoZSBsYXVuY2hlciB3aXRob3V0IG1vZGlmaWNhdGlvbi4gIElmIHlvdSBhcmUgd3JpdGluZyBhIG5ldyBzY3JpcHQKK29uIFdpbmRvd3Mgd2hpY2ggeW91IGhvcGUgd2lsbCBiZSB1c2VmdWwgb24gVW5peCwgeW91IHNob3VsZCB1c2Ugb25lIG9mIHRoZQorc2hlYmFuZyBsaW5lcyBzdGFydGluZyB3aXRoIGBgL3VzcmBgLgorCitBcmd1bWVudHMgaW4gc2hlYmFuZyBsaW5lcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIHNoZWJhbmcgbGluZXMgY2FuIGFsc28gc3BlY2lmeSBhZGRpdGlvbmFsIG9wdGlvbnMgdG8gYmUgcGFzc2VkIHRvIHRoZQorUHl0aG9uIGludGVycHJldGVyLiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBoYXZlIGEgc2hlYmFuZyBsaW5lOgorCis6OgorCisgICMhIC91c3IvYmluL3B5dGhvbiAtdgorCitUaGVuIFB5dGhvbiB3aWxsIGJlIHN0YXJ0ZWQgd2l0aCB0aGUgYGAtdmBgIG9wdGlvbgorCitDdXN0b21pemF0aW9uCistLS0tLS0tLS0tLS0tCisKK0N1c3RvbWl6YXRpb24gdmlhIElOSSBmaWxlcworXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCisKKyAgICBUd28gLmluaSBmaWxlcyB3aWxsIGJlIHNlYXJjaGVkIGJ5IHRoZSBsYXVuY2hlciAtIGBgcHkuaW5pYGAgaW4gdGhlCisgICAgY3VycmVudCB1c2VyJ3MgImFwcGxpY2F0aW9uIGRhdGEiIGRpcmVjdG9yeSAoaS5lLiB0aGUgZGlyZWN0b3J5IHJldHVybmVkCisgICAgYnkgY2FsbGluZyB0aGUgV2luZG93cyBmdW5jdGlvbiBTSEdldEZvbGRlclBhdGggd2l0aCBDU0lETF9MT0NBTF9BUFBEQVRBKQorICAgIGFuZCBgYHB5LmluaWBgIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgbGF1bmNoZXIuICBUaGUgc2FtZSAuaW5pCisgICAgZmlsZXMgYXJlIHVzZWQgZm9yIGJvdGggdGhlICdjb25zb2xlJyB2ZXJzaW9uIG9mIHRoZSBsYXVuY2hlciAoaS5lLgorICAgIHB5LmV4ZSkgYW5kIGZvciB0aGUgJ3dpbmRvd3MnIHZlcnNpb24gKGkuZS4gcHl3LmV4ZSkKKworICAgIEN1c3RvbWl6YXRpb24gc3BlY2lmaWVkIGluIHRoZSAiYXBwbGljYXRpb24gZGlyZWN0b3J5IiB3aWxsIGhhdmUKKyAgICBwcmVjZWRlbmNlIG92ZXIgdGhlIG9uZSBuZXh0IHRvIHRoZSBleGVjdXRhYmxlLCBzbyBhIHVzZXIsIHdobyBtYXkgbm90CisgICAgaGF2ZSB3cml0ZSBhY2Nlc3MgdG8gdGhlIC5pbmkgZmlsZSBuZXh0IHRvIHRoZSBsYXVuY2hlciwgY2FuIG92ZXJyaWRlCisgICAgY29tbWFuZHMgaW4gdGhhdCBnbG9iYWwgLmluaSBmaWxlKQorCitDdXN0b21pemluZyBkZWZhdWx0IFB5dGhvbiB2ZXJzaW9ucworXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KKworSW4gc29tZSBjYXNlcywgYSB2ZXJzaW9uIHF1YWxpZmllciBjYW4gYmUgaW5jbHVkZWQgaW4gYSBjb21tYW5kIHRvIGRpY3RhdGUKK3doaWNoIHZlcnNpb24gb2YgUHl0aG9uIHdpbGwgYmUgdXNlZCBieSB0aGUgY29tbWFuZC4gQSB2ZXJzaW9uIHF1YWxpZmllcgorc3RhcnRzIHdpdGggYSBtYWpvciB2ZXJzaW9uIG51bWJlciBhbmQgY2FuIG9wdGlvbmFsbHkgYmUgZm9sbG93ZWQgYnkgYSBwZXJpb2QKKygnLicpIGFuZCBhIG1pbm9yIHZlcnNpb24gc3BlY2lmaWVyLiBJZiB0aGUgbWlub3IgcXVhbGlmaWVyIGlzIHNwZWNpZmllZCwgaXQKK21heSBvcHRpb25hbGx5IGJlIGZvbGxvd2VkIGJ5ICItMzIiIHRvIGluZGljYXRlIHRoZSAzMi1iaXQgaW1wbGVtZW50YXRpb24gb2YKK3RoYXQgdmVyc2lvbiBiZSB1c2VkLgorCitGb3IgZXhhbXBsZSwgYSBzaGViYW5nIGxpbmUgb2YgYGAjIXB5dGhvbmBgIGhhcyBubyB2ZXJzaW9uIHF1YWxpZmllciwgd2hpbGUKK2BgIyFweXRob24zYGAgaGFzIGEgdmVyc2lvbiBxdWFsaWZpZXIgd2hpY2ggc3BlY2lmaWVzIG9ubHkgYSBtYWpvciB2ZXJzaW9uLgorCitJZiBubyB2ZXJzaW9uIHF1YWxpZmllcnMgYXJlIGZvdW5kIGluIGEgY29tbWFuZCwgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCitgYFBZX1BZVEhPTmBgIGNhbiBiZSBzZXQgdG8gc3BlY2lmeSB0aGUgZGVmYXVsdCB2ZXJzaW9uIHF1YWxpZmllciAtIHRoZSBkZWZhdWx0Cit2YWx1ZSBpcyAiMiIuIE5vdGUgdGhpcyB2YWx1ZSBjb3VsZCBzcGVjaWZ5IGp1c3QgYSBtYWpvciB2ZXJzaW9uIChlLmcuICIyIikgb3IKK2EgbWFqb3IubWlub3IgcXVhbGlmaWVyIChlLmcuICIyLjYiKSwgb3IgZXZlbiBtYWpvci5taW5vci0zMi4KKworSWYgbm8gbWlub3IgdmVyc2lvbiBxdWFsaWZpZXJzIGFyZSBmb3VuZCwgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlCitgYFBZX1BZVEhPTnttYWpvcn1gYCAod2hlcmUgYGB7bWFqb3J9YGAgaXMgdGhlIGN1cnJlbnQgbWFqb3IgdmVyc2lvbiBxdWFsaWZpZXIKK2FzIGRldGVybWluZWQgYWJvdmUpIGNhbiBiZSBzZXQgdG8gc3BlY2lmeSB0aGUgZnVsbCB2ZXJzaW9uLiBJZiBubyBzdWNoIG9wdGlvbgoraXMgZm91bmQsIHRoZSBsYXVuY2hlciB3aWxsIGVudW1lcmF0ZSB0aGUgaW5zdGFsbGVkIFB5dGhvbiB2ZXJzaW9ucyBhbmQgdXNlCit0aGUgbGF0ZXN0IG1pbm9yIHJlbGVhc2UgZm91bmQgZm9yIHRoZSBtYWpvciB2ZXJzaW9uLCB3aGljaCBpcyBsaWtlbHksCithbHRob3VnaCBub3QgZ3VhcmFudGVlZCwgdG8gYmUgdGhlIG1vc3QgcmVjZW50bHkgaW5zdGFsbGVkIHZlcnNpb24gaW4gdGhhdAorZmFtaWx5LgorCitPbiA2NC1iaXQgV2luZG93cyB3aXRoIGJvdGggMzItYml0IGFuZCA2NC1iaXQgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBzYW1lCisobWFqb3IubWlub3IpIFB5dGhvbiB2ZXJzaW9uIGluc3RhbGxlZCwgdGhlIDY0LWJpdCB2ZXJzaW9uIHdpbGwgYWx3YXlzIGJlCitwcmVmZXJyZWQuIFRoaXMgd2lsbCBiZSB0cnVlIGZvciBib3RoIDMyLWJpdCBhbmQgNjQtYml0IGltcGxlbWVudGF0aW9ucyBvZiB0aGUKK2xhdW5jaGVyIC0gYSAzMi1iaXQgbGF1bmNoZXIgd2lsbCBwcmVmZXIgdG8gZXhlY3V0ZSBhIDY0LWJpdCBQeXRob24gaW5zdGFsbGF0aW9uCitvZiB0aGUgc3BlY2lmaWVkIHZlcnNpb24gaWYgYXZhaWxhYmxlLiBUaGlzIGlzIHNvIHRoZSBiZWhhdmlvciBvZiB0aGUgbGF1bmNoZXIKK2NhbiBiZSBwcmVkaWN0ZWQga25vd2luZyBvbmx5IHdoYXQgdmVyc2lvbnMgYXJlIGluc3RhbGxlZCBvbiB0aGUgUEMgYW5kCit3aXRob3V0IHJlZ2FyZCB0byB0aGUgb3JkZXIgaW4gd2hpY2ggdGhleSB3ZXJlIGluc3RhbGxlZCAoaS5lLiwgd2l0aG91dCBrbm93aW5nCit3aGV0aGVyIGEgMzIgb3IgNjQtYml0IHZlcnNpb24gb2YgUHl0aG9uIGFuZCBjb3JyZXNwb25kaW5nIGxhdW5jaGVyIHdhcworaW5zdGFsbGVkIGxhc3QpLiBBcyBub3RlZCBhYm92ZSwgYW4gb3B0aW9uYWwgIi0zMiIgc3VmZml4IGNhbiBiZSB1c2VkIG9uIGEKK3ZlcnNpb24gc3BlY2lmaWVyIHRvIGNoYW5nZSB0aGlzIGJlaGF2aW91ci4KKworRXhhbXBsZXM6CisKKyogSWYgbm8gcmVsZXZhbnQgb3B0aW9ucyBhcmUgc2V0LCB0aGUgY29tbWFuZHMgYGBweXRob25gYCBhbmQKKyAgYGBweXRob24yYGAgd2lsbCB1c2UgdGhlIGxhdGVzdCBQeXRob24gMi54IHZlcnNpb24gaW5zdGFsbGVkIGFuZAorICB0aGUgY29tbWFuZCBgYHB5dGhvbjNgYCB3aWxsIHVzZSB0aGUgbGF0ZXN0IFB5dGhvbiAzLnggaW5zdGFsbGVkLgorCisqIFRoZSBjb21tYW5kcyBgYHB5dGhvbjMuMWBgIGFuZCBgYHB5dGhvbjIuN2BgIHdpbGwgbm90IGNvbnN1bHQgYW55CisgIG9wdGlvbnMgYXQgYWxsIGFzIHRoZSB2ZXJzaW9ucyBhcmUgZnVsbHkgc3BlY2lmaWVkLgorCisqIElmIGBgUFlfUFlUSE9OPTNgYCwgdGhlIGNvbW1hbmRzIGBgcHl0aG9uYGAgYW5kIGBgcHl0aG9uM2BgIHdpbGwgYm90aCB1c2UKKyAgdGhlIGxhdGVzdCBpbnN0YWxsZWQgUHl0aG9uIDMgdmVyc2lvbi4KKworKiBJZiBgYFBZX1BZVEhPTj0zLjEtMzJgYCwgdGhlIGNvbW1hbmQgYGBweXRob25gYCB3aWxsIHVzZSB0aGUgMzItYml0CisgIGltcGxlbWVudGF0aW9uIG9mIDMuMSB3aGVyZWFzIHRoZSBjb21tYW5kIGBgcHl0aG9uM2BgIHdpbGwgdXNlIHRoZSBsYXRlc3QKKyAgaW5zdGFsbGVkIFB5dGhvbiAoUFlfUFlUSE9OIHdhcyBub3QgY29uc2lkZXJlZCBhdCBhbGwgYXMgYSBtYWpvcgorICB2ZXJzaW9uIHdhcyBzcGVjaWZpZWQuKQorCisqIElmIGBgUFlfUFlUSE9OPTNgYCBhbmQgYGBQWV9QWVRIT04zPTMuMWBgLCB0aGUgY29tbWFuZHMKKyAgYGBweXRob25gYCBhbmQgYGBweXRob24zYGAgd2lsbCBib3RoIHVzZSBzcGVjaWZpY2FsbHkgMy4xCisKK0luIGFkZGl0aW9uIHRvIGVudmlyb25tZW50IHZhcmlhYmxlcywgdGhlIHNhbWUgc2V0dGluZ3MgY2FuIGJlIGNvbmZpZ3VyZWQKK2luIHRoZSAuSU5JIGZpbGUgdXNlZCBieSB0aGUgbGF1bmNoZXIuICBUaGUgc2VjdGlvbiBpbiB0aGUgSU5JIGZpbGUgaXMKK2NhbGxlZCBgYFtkZWZhdWx0c11gYCBhbmQgdGhlIGtleSBuYW1lIHdpbGwgYmUgdGhlIHNhbWUgYXMgdGhlCitlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aG91dCB0aGUgbGVhZGluZyBgYFBZXF9gYCBwcmVmaXggKGFuZCBub3RlIHRoYXQKK3RoZSBrZXkgbmFtZXMgaW4gdGhlIElOSSBmaWxlIGFyZSBjYXNlIGluc2Vuc2l0aXZlLikgIFRoZSBjb250ZW50cyBvZgorYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgd2lsbCBvdmVycmlkZSB0aGluZ3Mgc3BlY2lmaWVkIGluIHRoZSBJTkkgZmlsZS4KKworRm9yIGV4YW1wbGU6CisKKyogU2V0dGluZyBgYFBZX1BZVEhPTj0zLjFgYCBpcyBlcXVpdmFsZW50IHRvIHRoZSBJTkkgZmlsZSBjb250YWluaW5nOgorCis6OgorCisgIFtkZWZhdWx0c10KKyAgcHl0aG9uPTMuMQorCisqIFNldHRpbmcgYGBQWV9QWVRIT049M2BgIGFuZCBgYFBZX1BZVEhPTjM9My4xYGAgaXMgZXF1aXZhbGVudCB0byB0aGUgSU5JIGZpbGUKKyAgY29udGFpbmluZzoKKworOjoKKworICBbZGVmYXVsdHNdCisgIHB5dGhvbj0zCisgIHB5dGhvbjM9My4xCisKK0RpYWdub3N0aWNzCistLS0tLS0tLS0tLQorCitJZiBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBgYFBZTEFVTkNIX0RFQlVHYGAgaXMgc2V0ICh0byBhbnkgdmFsdWUpLCB0aGUKK2xhdW5jaGVyIHdpbGwgcHJpbnQgZGlhZ25vc3RpYyBpbmZvcm1hdGlvbiB0byBzdGRlcnIgKGkuZS4gdG8gdGhlIGNvbnNvbGUpLgorV2hpbGUgdGhpcyBpbmZvcm1hdGlvbiBtYW5hZ2VzIHRvIGJlIHNpbXVsdGFuZW91c2x5IHZlcmJvc2UgKmFuZCogdGVyc2UsIGl0CitzaG91bGQgYWxsb3cgeW91IHRvIHNlZSB3aGF0IHZlcnNpb25zIG9mIFB5dGhvbiB3ZXJlIGxvY2F0ZWQsIHdoeSBhCitwYXJ0aWN1bGFyIHZlcnNpb24gd2FzIGNob3NlbiBhbmQgdGhlIGV4YWN0IGNvbW1hbmQtbGluZSB1c2VkIHRvIGV4ZWN1dGUgdGhlCit0YXJnZXQgUHl0aG9uLgorCisKIEFkZGl0aW9uYWwgbW9kdWxlcwogPT09PT09PT09PT09PT09PT09CiAKQEAgLTM0MSwzICs1OTEsNyBAQAogICAgYEEgUHl0aG9uIGZvciBXaW5kb3dzIFR1dG9yaWFsIDxodHRwOi8vd3d3LmltbGFkcmlzLmNvbS9TY3JpcHRzL1B5dGhvbkZvcldpbmRvd3MuaHRtbD5gXwogICAgICAgYnkgQW1hbmRhIEJpcm1pbmdoYW0sIDIwMDQKIAorICAgOnBlcDpgMzk3YCAtIFB5dGhvbiBsYXVuY2hlciBmb3IgV2luZG93cworICAgICAgVGhlIHByb3Bvc2FsIGZvciB0aGUgbGF1bmNoZXIgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIFB5dGhvbiBkaXN0cmlidXRpb24uCisKKwpkaWZmIC0tZ2l0IGEvRG9jL3doYXRzbmV3LzMuMi5yc3QgYi9Eb2Mvd2hhdHNuZXcvMy4yLnJzdAppbmRleCAwNTUzZWMzLi45OTgyN2ZmIDEwMDY0NAotLS0gYS9Eb2Mvd2hhdHNuZXcvMy4yLnJzdAorKysgYi9Eb2Mvd2hhdHNuZXcvMy4yLnJzdApAQCAtMjcwLDcgKzI3MCw3IEBACiAgICAgICBlLnN1Ym1pdChzaHV0aWwuY29weSwgJ3NyYzEudHh0JywgJ2Rlc3QxLnR4dCcpCiAgICAgICBlLnN1Ym1pdChzaHV0aWwuY29weSwgJ3NyYzIudHh0JywgJ2Rlc3QyLnR4dCcpCiAgICAgICBlLnN1Ym1pdChzaHV0aWwuY29weSwgJ3NyYzMudHh0JywgJ2Rlc3QzLnR4dCcpCi0gICAgICBlLnN1Ym1pdChzaHV0aWwuY29weSwgJ3NyYzQudHh0JywgJ2Rlc3Q0LnR4dCcpCisgICAgICBlLnN1Ym1pdChzaHV0aWwuY29weSwgJ3NyYzMudHh0JywgJ2Rlc3Q0LnR4dCcpCiAKIC4uIHNlZWFsc286OgogCkBAIC0yMzU0LDcgKzIzNTQsNyBAQAogICAoQ29udHJpYnV0ZWQgYnkgQW50b2luZSBQaXRyb3U7IDppc3N1ZTpgMzAwMWAuKQogCiAqIFRoZSBmYXN0LXNlYXJjaCBhbGdvcml0aG0gaW4gc3RyaW5nbGliIGlzIG5vdyB1c2VkIGJ5IHRoZSA6bWV0aDpgc3BsaXRgLAotICA6bWV0aDpgc3BsaXRsaW5lc2AgYW5kIDptZXRoOmByZXBsYWNlYCBtZXRob2RzIG9uCisgIDptZXRoOmByc3BsaXRgLCA6bWV0aDpgc3BsaXRsaW5lc2AgYW5kIDptZXRoOmByZXBsYWNlYCBtZXRob2RzIG9uCiAgIDpjbGFzczpgYnl0ZXNgLCA6Y2xhc3M6YGJ5dGVhcnJheWAgYW5kIDpjbGFzczpgc3RyYCBvYmplY3RzLiBMaWtld2lzZSwgdGhlCiAgIGFsZ29yaXRobSBpcyBhbHNvIHVzZWQgYnkgOm1ldGg6YHJmaW5kYCwgOm1ldGg6YHJpbmRleGAsIDptZXRoOmByc3BsaXRgIGFuZAogICA6bWV0aDpgcnBhcnRpdGlvbmAuCkBAIC0yNDcxLDE0ICsyNDcxLDE0IEBACiAKIEluIGFkZGl0aW9uIHRvIHRoZSBleGlzdGluZyBTdWJ2ZXJzaW9uIGNvZGUgcmVwb3NpdG9yeSBhdCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcKIHRoZXJlIGlzIG5vdyBhIGBNZXJjdXJpYWwgPGh0dHA6Ly9tZXJjdXJpYWwuc2VsZW5pYy5jb20vPmBfIHJlcG9zaXRvcnkgYXQKLWh0dHA6Ly9oZy5weXRob24ub3JnL1wuCitodHRwOi8vaGcucHl0aG9uLm9yZy8gLgogCiBBZnRlciB0aGUgMy4yIHJlbGVhc2UsIHRoZXJlIGFyZSBwbGFucyB0byBzd2l0Y2ggdG8gTWVyY3VyaWFsIGFzIHRoZSBwcmltYXJ5CiByZXBvc2l0b3J5LiAgVGhpcyBkaXN0cmlidXRlZCB2ZXJzaW9uIGNvbnRyb2wgc3lzdGVtIHNob3VsZCBtYWtlIGl0IGVhc2llciBmb3IKIG1lbWJlcnMgb2YgdGhlIGNvbW11bml0eSB0byBjcmVhdGUgYW5kIHNoYXJlIGV4dGVybmFsIGNoYW5nZXNldHMuICBTZWUKIDpwZXA6YDM4NWAgZm9yIGRldGFpbHMuCiAKLVRvIGxlYXJuIHRoZSBuZXcgdmVyc2lvbiBjb250cm9sIHN5c3RlbSwgc2VlIHRoZSBgdHV0b3JpYWwgYnkgSm9lbAorVG8gbGVhcm4gdG8gdXNlIHRoZSBuZXcgdmVyc2lvbiBjb250cm9sIHN5c3RlbSwgc2VlIHRoZSBgdHV0b3JpYWwgYnkgSm9lbAogU3BvbHNreSA8aHR0cDovL2hnaW5pdC5jb20+YF8gb3IgdGhlIGBHdWlkZSB0byBNZXJjdXJpYWwgV29ya2Zsb3dzCiA8aHR0cDovL21lcmN1cmlhbC5zZWxlbmljLmNvbS9ndWlkZS8+YF8uCiAKZGlmZiAtLWdpdCBhL0RvYy93aGF0c25ldy8zLjMucnN0IGIvRG9jL3doYXRzbmV3LzMuMy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTNlZGRjNAotLS0gL2Rldi9udWxsCisrKyBiL0RvYy93aGF0c25ldy8zLjMucnN0CkBAIC0wLDAgKzEsMTc4MiBAQAorKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICBXaGF0J3MgTmV3IEluIFB5dGhvbiAzLjMKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworOkF1dGhvcjogUmF5bW9uZCBIZXR0aW5nZXIKKzpSZWxlYXNlOiB8cmVsZWFzZXwKKzpEYXRlOiB8dG9kYXl8CisKKy4uIFJ1bGVzIGZvciBtYWludGVuYW5jZToKKworICAgKiBBbnlvbmUgY2FuIGFkZCB0ZXh0IHRvIHRoaXMgZG9jdW1lbnQuICBEbyBub3Qgc3BlbmQgdmVyeSBtdWNoIHRpbWUKKyAgIG9uIHRoZSB3b3JkaW5nIG9mIHlvdXIgY2hhbmdlcywgYmVjYXVzZSB5b3VyIHRleHQgd2lsbCBwcm9iYWJseQorICAgZ2V0IHJld3JpdHRlbiB0byBzb21lIGRlZ3JlZS4KKworICAgKiBUaGUgbWFpbnRhaW5lciB3aWxsIGdvIHRocm91Z2ggTWlzYy9ORVdTIHBlcmlvZGljYWxseSBhbmQgYWRkCisgICBjaGFuZ2VzOyBpdCdzIHRoZXJlZm9yZSBtb3JlIGltcG9ydGFudCB0byBhZGQgeW91ciBjaGFuZ2VzIHRvCisgICBNaXNjL05FV1MgdGhhbiB0byB0aGlzIGZpbGUuCisKKyAgICogVGhpcyBpcyBub3QgYSBjb21wbGV0ZSBsaXN0IG9mIGV2ZXJ5IHNpbmdsZSBjaGFuZ2U7IGNvbXBsZXRlbmVzcworICAgaXMgdGhlIHB1cnBvc2Ugb2YgTWlzYy9ORVdTLiAgU29tZSBjaGFuZ2VzIEkgY29uc2lkZXIgdG9vIHNtYWxsCisgICBvciBlc290ZXJpYyB0byBpbmNsdWRlLiAgSWYgc3VjaCBhIGNoYW5nZSBpcyBhZGRlZCB0byB0aGUgdGV4dCwKKyAgIEknbGwganVzdCByZW1vdmUgaXQuICAoVGhpcyBpcyBhbm90aGVyIHJlYXNvbiB5b3Ugc2hvdWxkbid0IHNwZW5kCisgICB0b28gbXVjaCB0aW1lIG9uIHdyaXRpbmcgeW91ciBhZGRpdGlvbi4pCisKKyAgICogSWYgeW91IHdhbnQgdG8gZHJhdyB5b3VyIG5ldyB0ZXh0IHRvIHRoZSBhdHRlbnRpb24gb2YgdGhlCisgICBtYWludGFpbmVyLCBhZGQgJ1hYWCcgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgcGFyYWdyYXBoIG9yCisgICBzZWN0aW9uLgorCisgICAqIEl0J3MgT0sgdG8ganVzdCBhZGQgYSBmcmFnbWVudGFyeSBub3RlIGFib3V0IGEgY2hhbmdlLiAgRm9yCisgICBleGFtcGxlOiAiWFhYIERlc2NyaWJlIHRoZSB0cmFuc21vZ3JpZnkoKSBmdW5jdGlvbiBhZGRlZCB0byB0aGUKKyAgIHNvY2tldCBtb2R1bGUuIiAgVGhlIG1haW50YWluZXIgd2lsbCByZXNlYXJjaCB0aGUgY2hhbmdlIGFuZAorICAgd3JpdGUgdGhlIG5lY2Vzc2FyeSB0ZXh0LgorCisgICAqIFlvdSBjYW4gY29tbWVudCBvdXQgeW91ciBhZGRpdGlvbnMgaWYgeW91IGxpa2UsIGJ1dCBpdCdzIG5vdAorICAgbmVjZXNzYXJ5IChlc3BlY2lhbGx5IHdoZW4gYSBmaW5hbCByZWxlYXNlIGlzIHNvbWUgbW9udGhzIGF3YXkpLgorCisgICAqIENyZWRpdCB0aGUgYXV0aG9yIG9mIGEgcGF0Y2ggb3IgYnVnZml4LiAgIEp1c3QgdGhlIG5hbWUgaXMKKyAgIHN1ZmZpY2llbnQ7IHRoZSBlLW1haWwgYWRkcmVzcyBpc24ndCBuZWNlc3NhcnkuCisKKyAgICogSXQncyBoZWxwZnVsIHRvIGFkZCB0aGUgYnVnL3BhdGNoIG51bWJlciBhcyBhIGNvbW1lbnQ6CisKKyAgIFhYWCBEZXNjcmliZSB0aGUgdHJhbnNtb2dyaWZ5KCkgZnVuY3Rpb24gYWRkZWQgdG8gdGhlIHNvY2tldAorICAgbW9kdWxlLgorICAgKENvbnRyaWJ1dGVkIGJ5IFAuWS4gRGV2ZWxvcGVyIGluIDppc3N1ZTpgMTIzNDVgLikKKworICAgVGhpcyBzYXZlcyB0aGUgbWFpbnRhaW5lciB0aGUgZWZmb3J0IG9mIGdvaW5nIHRocm91Z2ggdGhlIE1lcmN1cmlhbCBsb2cKKyAgIHdoZW4gcmVzZWFyY2hpbmcgYSBjaGFuZ2UuCisKK1RoaXMgYXJ0aWNsZSBleHBsYWlucyB0aGUgbmV3IGZlYXR1cmVzIGluIFB5dGhvbiAzLjMsIGNvbXBhcmVkIHRvIDMuMi4KKworLi4gbm90ZTo6IEJldGEgdXNlcnMgc2hvdWxkIGJlIGF3YXJlIHRoYXQgdGhpcyBkb2N1bWVudCBpcyBjdXJyZW50bHkgaW4KKyAgIGRyYWZ0IGZvcm0uIEl0IHdpbGwgYmUgdXBkYXRlZCBzdWJzdGFudGlhbGx5IGFzIFB5dGhvbiAzLjMgbW92ZXMgdG93YXJkcworICAgcmVsZWFzZSwgc28gaXQncyB3b3J0aCBjaGVja2luZyBiYWNrIGV2ZW4gYWZ0ZXIgcmVhZGluZyBlYXJsaWVyIHZlcnNpb25zLgorCisKK1BFUCA0MDU6IFZpcnR1YWwgRW52aXJvbm1lbnRzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCistIGluc3BpcmVkIGJ5IGBgdmlydHVhbGVudmBgLCBhIHRvb2wgd2lkZWx5IHVzZWQgYnkgdGhlIGNvbW11bml0eQorLSBjaGFuZ2UgdG8gdGhlIGludGVycHJldGVyIHRvIGF2b2lkIGhhY2tzCisKK1RoZSA6bW9kOmB2ZW52YCBtb2R1bGUgYW5kIGBgcHl2ZW52YGAgc2NyaXB0IChpbnNwaXJlZCBieSBgYHZpcnR1YWxlbnZgYCwgYQordG9vbCB3aWRlbHkgdXNlZCBieSB0aGUgY29tbXVuaXR5KS4KKworLi4gYWxzbyBtZW50aW9uIHRoZSBpbnRlcnByZXRlciBjaGFuZ2VzIHRoYXQgYXZvaWQgdGhlIGhhY2tzIHVzZWQgaW4gdmlydHVhbGVudgorCisKK1BFUCA0MjA6IE5hbWVzcGFjZSBQYWNrYWdlcworPT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK05hdGl2ZSBzdXBwb3J0IGZvciBwYWNrYWdlIGRpcmVjdG9yaWVzIHRoYXQgZG9uJ3QgcmVxdWlyZSBgYF9faW5pdF9fLnB5YGAKK21hcmtlciBmaWxlcyBhbmQgY2FuIGF1dG9tYXRpY2FsbHkgc3BhbiBtdWx0aXBsZSBwYXRoIHNlZ21lbnRzIChpbnNwaXJlZCBieQordmFyaW91cyB0aGlyZCBwYXJ0eSBhcHByb2FjaGVzIHRvIG5hbWVzcGFjZSBwYWNrYWdlcywgYXMgZGVzY3JpYmVkIGluCis6cGVwOmA0MjBgKQorCisKKy4uIF9wZXAtMzExOC11cGRhdGU6CisKK1BFUCAzMTE4OiBOZXcgbWVtb3J5dmlldyBpbXBsZW1lbnRhdGlvbiBhbmQgYnVmZmVyIHByb3RvY29sIGRvY3VtZW50YXRpb24KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworOmlzc3VlOmAxMDE4MWAgLSBtZW1vcnl2aWV3IGJ1ZyBmaXhlcyBhbmQgZmVhdHVyZXMuCisgIFdyaXR0ZW4gYnkgU3RlZmFuIEtyYWguCisKK1RoZSBuZXcgbWVtb3J5dmlldyBpbXBsZW1lbnRhdGlvbiBjb21wcmVoZW5zaXZlbHkgZml4ZXMgYWxsIG93bmVyc2hpcCBhbmQKK2xpZmV0aW1lIGlzc3VlcyBvZiBkeW5hbWljYWxseSBhbGxvY2F0ZWQgZmllbGRzIGluIHRoZSBQeV9idWZmZXIgc3RydWN0Cit0aGF0IGxlZCB0byBtdWx0aXBsZSBjcmFzaCByZXBvcnRzLiBBZGRpdGlvbmFsbHksIHNldmVyYWwgZnVuY3Rpb25zIHRoYXQKK2NyYXNoZWQgb3IgcmV0dXJuZWQgaW5jb3JyZWN0IHJlc3VsdHMgZm9yIG5vbi1jb250aWd1b3VzIG9yIG11bHRpLWRpbWVuc2lvbmFsCitpbnB1dCBoYXZlIGJlZW4gZml4ZWQuCisKK1RoZSBtZW1vcnl2aWV3IG9iamVjdCBub3cgaGFzIGEgUEVQLTMxMTggY29tcGxpYW50IGdldGJ1ZmZlcnByb2MoKQordGhhdCBjaGVja3MgdGhlIGNvbnN1bWVyJ3MgcmVxdWVzdCB0eXBlLiBNYW55IG5ldyBmZWF0dXJlcyBoYXZlIGJlZW4KK2FkZGVkLCBtb3N0IG9mIHRoZW0gd29yayBpbiBmdWxsIGdlbmVyYWxpdHkgZm9yIG5vbi1jb250aWd1b3VzIGFycmF5cworYW5kIGFycmF5cyB3aXRoIHN1Ym9mZnNldHMuCisKK1RoZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQsIGNsZWFybHkgc3BlbGxpbmcgb3V0IHJlc3BvbnNpYmlsaXRpZXMKK2ZvciBib3RoIGV4cG9ydGVycyBhbmQgY29uc3VtZXJzLiBCdWZmZXIgcmVxdWVzdCBmbGFncyBhcmUgZ3JvdXBlZCBpbnRvCitiYXNpYyBhbmQgY29tcG91bmQgZmxhZ3MuIFRoZSBtZW1vcnkgbGF5b3V0IG9mIG5vbi1jb250aWd1b3VzIGFuZAorbXVsdGktZGltZW5zaW9uYWwgTnVtUHktc3R5bGUgYXJyYXlzIGlzIGV4cGxhaW5lZC4KKworRmVhdHVyZXMKKy0tLS0tLS0tCisKKyogQWxsIG5hdGl2ZSBzaW5nbGUgY2hhcmFjdGVyIGZvcm1hdCBzcGVjaWZpZXJzIGluIHN0cnVjdCBtb2R1bGUgc3ludGF4CisgIChvcHRpb25hbGx5IHByZWZpeGVkIHdpdGggJ0AnKSBhcmUgbm93IHN1cHBvcnRlZC4KKworKiBXaXRoIHNvbWUgcmVzdHJpY3Rpb25zLCB0aGUgY2FzdCgpIG1ldGhvZCBhbGxvd3MgY2hhbmdpbmcgb2YgZm9ybWF0IGFuZAorICBzaGFwZSBvZiBDLWNvbnRpZ3VvdXMgYXJyYXlzLgorCisqIE11bHRpLWRpbWVuc2lvbmFsIGxpc3QgcmVwcmVzZW50YXRpb25zIGFyZSBzdXBwb3J0ZWQgZm9yIGFueSBhcnJheSB0eXBlLgorCisqIE11bHRpLWRpbWVuc2lvbmFsIGNvbXBhcmlzb25zIGFyZSBzdXBwb3J0ZWQgZm9yIGFueSBhcnJheSB0eXBlLgorCisqIEFsbCBhcnJheSB0eXBlcyBhcmUgaGFzaGFibGUgaWYgdGhlIGV4cG9ydGluZyBvYmplY3QgaXMgaGFzaGFibGUKKyAgYW5kIHRoZSB2aWV3IGlzIHJlYWQtb25seS4gKENvbnRyaWJ1dGVkIGJ5IEFudG9pbmUgUGl0cm91IGluCisgIDppc3N1ZTpgMTM0MTFgKQorCisKKyogQXJiaXRyYXJ5IHNsaWNpbmcgb2YgYW55IDEtRCBhcnJheXMgdHlwZSBpcyBzdXBwb3J0ZWQuIEZvciBleGFtcGxlLCBpdAorICBpcyBub3cgcG9zc2libGUgdG8gcmV2ZXJzZSBhIG1lbW9yeXZpZXcgaW4gTygxKSBieSB1c2luZyBhIG5lZ2F0aXZlIHN0ZXAuCisKK0FQSSBjaGFuZ2VzCistLS0tLS0tLS0tLQorCisqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkaW1lbnNpb25zIGlzIG9mZmljaWFsbHkgbGltaXRlZCB0byA2NC4KKworKiBUaGUgcmVwcmVzZW50YXRpb24gb2YgZW1wdHkgc2hhcGUsIHN0cmlkZXMgYW5kIHN1Ym9mZnNldHMgaXMgbm93CisgIGFuIGVtcHR5IHR1cGxlIGluc3RlYWQgb2YgTm9uZS4KKworKiBBY2Nlc3NpbmcgYSBtZW1vcnl2aWV3IGVsZW1lbnQgd2l0aCBmb3JtYXQgJ0InICh1bnNpZ25lZCBieXRlcykKKyAgbm93IHJldHVybnMgYW4gaW50ZWdlciAoaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBzdHJ1Y3QgbW9kdWxlIHN5bnRheCkuCisgIEZvciByZXR1cm5pbmcgYSBieXRlcyBvYmplY3QgdGhlIHZpZXcgbXVzdCBiZSBjYXN0IHRvICdjJyBmaXJzdC4KKworKiBGb3IgZnVydGhlciBjaGFuZ2VzIHNlZSBgQnVpbGQgYW5kIEMgQVBJIENoYW5nZXNgXyBhbmQgYFBvcnRpbmcgQyBjb2RlYF8gLgorCisuLiBfcGVwLTM5MzoKKworUEVQIDM5MzogRmxleGlibGUgU3RyaW5nIFJlcHJlc2VudGF0aW9uCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworVGhlIFVuaWNvZGUgc3RyaW5nIHR5cGUgaXMgY2hhbmdlZCB0byBzdXBwb3J0IG11bHRpcGxlIGludGVybmFsCityZXByZXNlbnRhdGlvbnMsIGRlcGVuZGluZyBvbiB0aGUgY2hhcmFjdGVyIHdpdGggdGhlIGxhcmdlc3QgVW5pY29kZSBvcmRpbmFsCisoMSwgMiwgb3IgNCBieXRlcykgaW4gdGhlIHJlcHJlc2VudGVkIHN0cmluZy4gIFRoaXMgYWxsb3dzIGEgc3BhY2UtZWZmaWNpZW50CityZXByZXNlbnRhdGlvbiBpbiBjb21tb24gY2FzZXMsIGJ1dCBnaXZlcyBhY2Nlc3MgdG8gZnVsbCBVQ1MtNCBvbiBhbGwKK3N5c3RlbXMuICBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIGV4aXN0aW5nIEFQSXMsIHNldmVyYWwgcmVwcmVzZW50YXRpb25zIG1heQorZXhpc3QgaW4gcGFyYWxsZWw7IG92ZXIgdGltZSwgdGhpcyBjb21wYXRpYmlsaXR5IHNob3VsZCBiZSBwaGFzZWQgb3V0LgorCitPbiB0aGUgUHl0aG9uIHNpZGUsIHRoZXJlIHNob3VsZCBiZSBubyBkb3duc2lkZSB0byB0aGlzIGNoYW5nZS4KKworT24gdGhlIEMgQVBJIHNpZGUsIFBFUCAzOTMgaXMgZnVsbHkgYmFja3dhcmQgY29tcGF0aWJsZS4gIFRoZSBsZWdhY3kgQVBJCitzaG91bGQgcmVtYWluIGF2YWlsYWJsZSBhdCBsZWFzdCBmaXZlIHllYXJzLiAgQXBwbGljYXRpb25zIHVzaW5nIHRoZSBsZWdhY3kKK0FQSSB3aWxsIG5vdCBmdWxseSBiZW5lZml0IG9mIHRoZSBtZW1vcnkgcmVkdWN0aW9uLCBvciAtIHdvcnNlIC0gbWF5IHVzZQorYSBiaXQgbW9yZSBtZW1vcnksIGJlY2F1c2UgUHl0aG9uIG1heSBoYXZlIHRvIG1haW50YWluIHR3byB2ZXJzaW9ucyBvZiBlYWNoCitzdHJpbmcgKGluIHRoZSBsZWdhY3kgZm9ybWF0IGFuZCBpbiB0aGUgbmV3IGVmZmljaWVudCBzdG9yYWdlKS4KKworRnVuY3Rpb25hbGl0eQorLS0tLS0tLS0tLS0tLQorCitDaGFuZ2VzIGludHJvZHVjZWQgYnkgOnBlcDpgMzkzYCBhcmUgdGhlIGZvbGxvd2luZzoKKworKiBQeXRob24gbm93IGFsd2F5cyBzdXBwb3J0cyB0aGUgZnVsbCByYW5nZSBvZiBVbmljb2RlIGNvZGVwb2ludHMsIGluY2x1ZGluZworICBub24tQk1QIG9uZXMgKGkuZS4gZnJvbSBgYFUrMDAwMGBgIHRvIGBgVSsxMEZGRkZgYCkuICBUaGUgZGlzdGluY3Rpb24gYmV0d2VlbgorICBuYXJyb3cgYW5kIHdpZGUgYnVpbGRzIG5vIGxvbmdlciBleGlzdHMgYW5kIFB5dGhvbiBub3cgYmVoYXZlcyBsaWtlIGEgd2lkZQorICBidWlsZCwgZXZlbiB1bmRlciBXaW5kb3dzLgorCisqIFdpdGggdGhlIGRlYXRoIG9mIG5hcnJvdyBidWlsZHMsIHRoZSBwcm9ibGVtcyBzcGVjaWZpYyB0byBuYXJyb3cgYnVpbGRzIGhhdmUKKyAgYWxzbyBiZWVuIGZpeGVkLCBmb3IgZXhhbXBsZToKKworICAqIDpmdW5jOmBsZW5gIG5vdyBhbHdheXMgcmV0dXJucyAxIGZvciBub24tQk1QIGNoYXJhY3RlcnMsCisgICAgc28gYGBsZW4oJ1xVMDAxMEZGRkYnKSA9PSAxYGA7CisKKyAgKiBzdXJyb2dhdGUgcGFpcnMgYXJlIG5vdCByZWNvbWJpbmVkIGluIHN0cmluZyBsaXRlcmFscywKKyAgICBzbyBgYCdcdURCRkZcdURGRkYnICE9ICdcVTAwMTBGRkZGJ2BgOworCisgICogaW5kZXhpbmcgb3Igc2xpY2luZyBub24tQk1QIGNoYXJhY3RlcnMgcmV0dXJucyB0aGUgZXhwZWN0ZWQgdmFsdWUsCisgICAgc28gYGAnXFUwMDEwRkZGRidbMF1gYCBub3cgcmV0dXJucyBgYCdcVTAwMTBGRkZGJ2BgIGFuZCBub3QgYGAnXHVEQkZGJ2BgOworCisgICogYWxsIG90aGVyIGZ1bmN0aW9ucyBpbiB0aGUgc3RhbmRhcmQgbGlicmFyeSBub3cgY29ycmVjdGx5IGhhbmRsZQorICAgIG5vbi1CTVAgY29kZXBvaW50cy4KKworKiBUaGUgdmFsdWUgb2YgOmRhdGE6YHN5cy5tYXh1bmljb2RlYCBpcyBub3cgYWx3YXlzIGBgMTExNDExMWBgIChgYDB4MTBGRkZGYGAKKyAgaW4gaGV4YWRlY2ltYWwpLiAgVGhlIDpjOmZ1bmM6YFB5VW5pY29kZV9HZXRNYXhgIGZ1bmN0aW9uIHN0aWxsIHJldHVybnMKKyAgZWl0aGVyIGBgMHhGRkZGYGAgb3IgYGAweDEwRkZGRmBgIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LCBhbmQgaXQgc2hvdWxkCisgIG5vdCBiZSB1c2VkIHdpdGggdGhlIG5ldyBVbmljb2RlIEFQSSAoc2VlIDppc3N1ZTpgMTMwNTRgKS4KKworKiBUaGUgOmZpbGU6YC4vY29uZmlndXJlYCBmbGFnIGBgLS13aXRoLXdpZGUtdW5pY29kZWBgIGhhcyBiZWVuIHJlbW92ZWQuCisKK1BlcmZvcm1hbmNlIGFuZCByZXNvdXJjZSB1c2FnZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBzdG9yYWdlIG9mIFVuaWNvZGUgc3RyaW5ncyBub3cgZGVwZW5kcyBvbiB0aGUgaGlnaGVzdCBjb2RlcG9pbnQgaW4gdGhlIHN0cmluZzoKKworKiBwdXJlIEFTQ0lJIGFuZCBMYXRpbjEgc3RyaW5ncyAoYGBVKzAwMDAtVSswMEZGYGApIHVzZSAxIGJ5dGUgcGVyIGNvZGVwb2ludDsKKworKiBCTVAgc3RyaW5ncyAoYGBVKzAwMDAtVStGRkZGYGApIHVzZSAyIGJ5dGVzIHBlciBjb2RlcG9pbnQ7CisKKyogbm9uLUJNUCBzdHJpbmdzIChgYFUrMTAwMDAtVSsxMEZGRkZgYCkgdXNlIDQgYnl0ZXMgcGVyIGNvZGVwb2ludC4KKworVGhlIG5ldCBlZmZlY3QgaXMgdGhhdCBmb3IgbW9zdCBhcHBsaWNhdGlvbnMsIG1lbW9yeSB1c2FnZSBvZiBzdHJpbmcKK3N0b3JhZ2Ugc2hvdWxkIGRlY3JlYXNlIHNpZ25pZmljYW50bHkgLSBlc3BlY2lhbGx5IGNvbXBhcmVkIHRvIGZvcm1lcgord2lkZSB1bmljb2RlIGJ1aWxkcyAtIGFzLCBpbiBtYW55IGNhc2VzLCBzdHJpbmdzIHdpbGwgYmUgcHVyZSBBU0NJSQorZXZlbiBpbiBpbnRlcm5hdGlvbmFsIGNvbnRleHRzIChiZWNhdXNlIG1hbnkgc3RyaW5ncyBzdG9yZSBub24taHVtYW4KK2xhbmd1YWdlIGRhdGEsIHN1Y2ggYXMgWE1MIGZyYWdtZW50cywgSFRUUCBoZWFkZXJzLCBKU09OLWVuY29kZWQgZGF0YSwKK2V0Yy4pLiAgV2UgYWxzbyBob3BlIHRoYXQgaXQgd2lsbCwgZm9yIHRoZSBzYW1lIHJlYXNvbnMsIGluY3JlYXNlIENQVQorY2FjaGUgZWZmaWNpZW5jeSBvbiBub24tdHJpdmlhbCBhcHBsaWNhdGlvbnMuIFRoZSBtZW1vcnkgdXNhZ2Ugb2YKK1B5dGhvbiAzLjMgaXMgdHdvIHRvIHRocmVlIHRpbWVzIHNtYWxsZXIgdGhhbiBQeXRob24gMy4yLCBhbmQgYSBsaXR0bGUKK2JpdCBiZXR0ZXIgdGhhbiBQeXRob24gMi43LCBvbiBhIERqYW5nbyBiZW5jaG1hcmsgKHNlZSB0aGUgUEVQIGZvcgorZGV0YWlscykuCisKKworUEVQIDMxNTE6IFJld29ya2luZyB0aGUgT1MgYW5kIElPIGV4Y2VwdGlvbiBoaWVyYXJjaHkKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKzpwZXA6YDMxNTFgIC0gUmV3b3JraW5nIHRoZSBPUyBhbmQgSU8gZXhjZXB0aW9uIGhpZXJhcmNoeQorIFBFUCB3cml0dGVuIGFuZCBpbXBsZW1lbnRlZCBieSBBbnRvaW5lIFBpdHJvdS4KKworVGhlIGhpZXJhcmNoeSBvZiBleGNlcHRpb25zIHJhaXNlZCBieSBvcGVyYXRpbmcgc3lzdGVtIGVycm9ycyBpcyBub3cgYm90aAorc2ltcGxpZmllZCBhbmQgZmluZXItZ3JhaW5lZC4KKworWW91IGRvbid0IGhhdmUgdG8gd29ycnkgYW55bW9yZSBhYm91dCBjaG9vc2luZyB0aGUgYXBwcm9wcmlhdGUgZXhjZXB0aW9uCit0eXBlIGJldHdlZW4gOmV4YzpgT1NFcnJvcmAsIDpleGM6YElPRXJyb3JgLCA6ZXhjOmBFbnZpcm9ubWVudEVycm9yYCwKKzpleGM6YFdpbmRvd3NFcnJvcmAsIDpleGM6YG1tYXAuZXJyb3JgLCA6ZXhjOmBzb2NrZXQuZXJyb3JgIG9yCis6ZXhjOmBzZWxlY3QuZXJyb3JgLiAgQWxsIHRoZXNlIGV4Y2VwdGlvbiB0eXBlcyBhcmUgbm93IG9ubHkgb25lOgorOmV4YzpgT1NFcnJvcmAuICBUaGUgb3RoZXIgbmFtZXMgYXJlIGtlcHQgYXMgYWxpYXNlcyBmb3IgY29tcGF0aWJpbGl0eQorcmVhc29ucy4KKworQWxzbywgaXQgaXMgbm93IGVhc2llciB0byBjYXRjaCBhIHNwZWNpZmljIGVycm9yIGNvbmRpdGlvbi4gIEluc3RlYWQgb2YKK2luc3BlY3RpbmcgdGhlIGBgZXJybm9gYCBhdHRyaWJ1dGUgKG9yIGBgYXJnc1swXWBgKSBmb3IgYSBwYXJ0aWN1bGFyCitjb25zdGFudCBmcm9tIHRoZSA6bW9kOmBlcnJub2AgbW9kdWxlLCB5b3UgY2FuIGNhdGNoIHRoZSBhZGVxdWF0ZQorOmV4YzpgT1NFcnJvcmAgc3ViY2xhc3MuICBUaGUgYXZhaWxhYmxlIHN1YmNsYXNzZXMgYXJlIHRoZSBmb2xsb3dpbmc6CisKKyogOmV4YzpgQmxvY2tpbmdJT0Vycm9yYAorKiA6ZXhjOmBDaGlsZFByb2Nlc3NFcnJvcmAKKyogOmV4YzpgQ29ubmVjdGlvbkVycm9yYAorKiA6ZXhjOmBGaWxlRXhpc3RzRXJyb3JgCisqIDpleGM6YEZpbGVOb3RGb3VuZEVycm9yYAorKiA6ZXhjOmBJbnRlcnJ1cHRlZEVycm9yYAorKiA6ZXhjOmBJc0FEaXJlY3RvcnlFcnJvcmAKKyogOmV4YzpgTm90QURpcmVjdG9yeUVycm9yYAorKiA6ZXhjOmBQZXJtaXNzaW9uRXJyb3JgCisqIDpleGM6YFByb2Nlc3NMb29rdXBFcnJvcmAKKyogOmV4YzpgVGltZW91dEVycm9yYAorCitBbmQgdGhlIDpleGM6YENvbm5lY3Rpb25FcnJvcmAgaXRzZWxmIGhhcyBmaW5lci1ncmFpbmVkIHN1YmNsYXNzZXM6CisKKyogOmV4YzpgQnJva2VuUGlwZUVycm9yYAorKiA6ZXhjOmBDb25uZWN0aW9uQWJvcnRlZEVycm9yYAorKiA6ZXhjOmBDb25uZWN0aW9uUmVmdXNlZEVycm9yYAorKiA6ZXhjOmBDb25uZWN0aW9uUmVzZXRFcnJvcmAKKworVGhhbmtzIHRvIHRoZSBuZXcgZXhjZXB0aW9ucywgY29tbW9uIHVzYWdlcyBvZiB0aGUgOm1vZDpgZXJybm9gIGNhbiBub3cgYmUKK2F2b2lkZWQuICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBjb2RlIHdyaXR0ZW4gZm9yIFB5dGhvbiAzLjI6OgorCisgICAgZnJvbSBlcnJubyBpbXBvcnQgRU5PRU5ULCBFQUNDRVMsIEVQRVJNCisKKyAgICB0cnk6CisgICAgICAgIHdpdGggb3BlbigiZG9jdW1lbnQudHh0IikgYXMgZjoKKyAgICAgICAgICAgIGNvbnRlbnQgPSBmLnJlYWQoKQorICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGVycjoKKyAgICAgICAgaWYgZXJyLmVycm5vID09IEVOT0VOVDoKKyAgICAgICAgICAgIHByaW50KCJkb2N1bWVudC50eHQgZmlsZSBpcyBtaXNzaW5nIikKKyAgICAgICAgZWxpZiBlcnIuZXJybm8gaW4gKEVBQ0NFUywgRVBFUk0pOgorICAgICAgICAgICAgcHJpbnQoIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gcmVhZCBkb2N1bWVudC50eHQiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UKKworY2FuIG5vdyBiZSB3cml0dGVuIHdpdGhvdXQgdGhlIDptb2Q6YGVycm5vYCBpbXBvcnQgYW5kIHdpdGhvdXQgbWFudWFsCitpbnNwZWN0aW9uIG9mIGV4Y2VwdGlvbiBhdHRyaWJ1dGVzOjoKKworICAgIHRyeToKKyAgICAgICAgd2l0aCBvcGVuKCJkb2N1bWVudC50eHQiKSBhcyBmOgorICAgICAgICAgICAgY29udGVudCA9IGYucmVhZCgpCisgICAgZXhjZXB0IEZpbGVOb3RGb3VuZEVycm9yOgorICAgICAgICBwcmludCgiZG9jdW1lbnQudHh0IGZpbGUgaXMgbWlzc2luZyIpCisgICAgZXhjZXB0IFBlcm1pc3Npb25FcnJvcjoKKyAgICAgICAgcHJpbnQoIllvdSBhcmUgbm90IGFsbG93ZWQgdG8gcmVhZCBkb2N1bWVudC50eHQiKQorCisKK1BFUCAzODA6IFN5bnRheCBmb3IgRGVsZWdhdGluZyB0byBhIFN1YmdlbmVyYXRvcgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKzpwZXA6YDM4MGAgLSBTeW50YXggZm9yIERlbGVnYXRpbmcgdG8gYSBTdWJnZW5lcmF0b3IKKyBQRVAgd3JpdHRlbiBieSBHcmVnIEV3aW5nLgorCitQRVAgMzgwIGFkZHMgdGhlIGBgeWllbGQgZnJvbWBgIGV4cHJlc3Npb24sIGFsbG93aW5nIGEgZ2VuZXJhdG9yIHRvIGRlbGVnYXRlCitwYXJ0IG9mIGl0cyBvcGVyYXRpb25zIHRvIGFub3RoZXIgZ2VuZXJhdG9yLiBUaGlzIGFsbG93cyBhIHNlY3Rpb24gb2YgY29kZQorY29udGFpbmluZyAneWllbGQnIHRvIGJlIGZhY3RvcmVkIG91dCBhbmQgcGxhY2VkIGluIGFub3RoZXIgZ2VuZXJhdG9yLgorQWRkaXRpb25hbGx5LCB0aGUgc3ViZ2VuZXJhdG9yIGlzIGFsbG93ZWQgdG8gcmV0dXJuIHdpdGggYSB2YWx1ZSwgYW5kIHRoZQordmFsdWUgaXMgbWFkZSBhdmFpbGFibGUgdG8gdGhlIGRlbGVnYXRpbmcgZ2VuZXJhdG9yLgorCitXaGlsZSBkZXNpZ25lZCBwcmltYXJpbHkgZm9yIHVzZSBpbiBkZWxlZ2F0aW5nIHRvIGEgc3ViZ2VuZXJhdG9yLCB0aGUgYGB5aWVsZAorZnJvbWBgIGV4cHJlc3Npb24gYWN0dWFsbHkgYWxsb3dzIGRlbGVnYXRpb24gdG8gYXJiaXRyYXJ5IHN1Yml0ZXJhdG9ycy4KKworRm9yIHNpbXBsZSBpdGVyYXRvcnMsIGBgeWllbGQgZnJvbSBpdGVyYWJsZWBgIGlzIGVzc2VudGlhbGx5IGp1c3QgYSBzaG9ydGVuZWQKK2Zvcm0gb2YgYGBmb3IgaXRlbSBpbiBpdGVyYWJsZTogeWllbGQgaXRlbWBgOjoKKworICAgID4+PiBkZWYgZyh4KToKKyAgICAuLi4gICAgIHlpZWxkIGZyb20gcmFuZ2UoeCwgMCwgLTEpCisgICAgLi4uICAgICB5aWVsZCBmcm9tIHJhbmdlKHgpCisgICAgLi4uCisgICAgPj4+IGxpc3QoZyg1KSkKKyAgICBbNSwgNCwgMywgMiwgMSwgMCwgMSwgMiwgMywgNF0KKworSG93ZXZlciwgdW5saWtlIGFuIG9yZGluYXJ5IGxvb3AsIGBgeWllbGQgZnJvbWBgIGFsbG93cyBzdWJnZW5lcmF0b3JzIHRvCityZWNlaXZlIHNlbnQgYW5kIHRocm93biB2YWx1ZXMgZGlyZWN0bHkgZnJvbSB0aGUgY2FsbGluZyBzY29wZSwgYW5kCityZXR1cm4gYSBmaW5hbCB2YWx1ZSB0byB0aGUgb3V0ZXIgZ2VuZXJhdG9yOjoKKworICAgID4+PiBkZWYgYWNjdW11bGF0ZShzdGFydD0wKToKKyAgICAuLi4gICAgIHRhbGx5ID0gc3RhcnQKKyAgICAuLi4gICAgIHdoaWxlIDE6CisgICAgLi4uICAgICAgICAgbmV4dCA9IHlpZWxkCisgICAgLi4uICAgICAgICAgaWYgbmV4dCBpcyBOb25lOgorICAgIC4uLiAgICAgICAgICAgICByZXR1cm4gdGFsbHkKKyAgICAuLi4gICAgICAgICB0YWxseSArPSBuZXh0CisgICAgLi4uCisgICAgPj4+IGRlZiBnYXRoZXJfdGFsbGllcyh0YWxsaWVzLCBzdGFydD0wKToKKyAgICAuLi4gICAgIHdoaWxlIDE6CisgICAgLi4uICAgICAgICAgdGFsbHkgPSB5aWVsZCBmcm9tIGFjY3VtdWxhdGUoKQorICAgIC4uLiAgICAgICAgIHRhbGxpZXMuYXBwZW5kKHRhbGx5KQorICAgIC4uLgorICAgID4+PiB0YWxsaWVzID0gW10KKyAgICA+Pj4gYWNjID0gZ2F0aGVyX3RhbGxpZXModGFsbGllcykKKyAgICA+Pj4gbmV4dChhY2MpICMgRW5zdXJlIHRoZSBhY2N1bXVsYXRvciBpcyByZWFkeSB0byBhY2NlcHQgdmFsdWVzCisgICAgPj4+IGZvciBpIGluIHJhbmdlKDEwKToKKyAgICAuLi4gICAgIGFjYy5zZW5kKGkpCisgICAgLi4uCisgICAgPj4+IGFjYy5zZW5kKE5vbmUpICMgRmluaXNoIHRoZSBmaXJzdCB0YWxseQorICAgID4+PiBmb3IgaSBpbiByYW5nZSg1KToKKyAgICAuLi4gICAgIGFjYy5zZW5kKGkpCisgICAgLi4uCisgICAgPj4+IGFjYy5zZW5kKE5vbmUpICMgRmluaXNoIHRoZSBzZWNvbmQgdGFsbHkKKyAgICA+Pj4gdGFsbGllcworICAgIFs0NSwgMTBdCisKK1RoZSBtYWluIHByaW5jaXBsZSBkcml2aW5nIHRoaXMgY2hhbmdlIGlzIHRvIGFsbG93IGV2ZW4gZ2VuZXJhdG9ycyB0aGF0IGFyZQorZGVzaWduZWQgdG8gYmUgdXNlZCB3aXRoIHRoZSBgYHNlbmRgYCBhbmQgYGB0aHJvd2BgIG1ldGhvZHMgdG8gYmUgc3BsaXQgaW50bworbXVsdGlwbGUgc3ViZ2VuZXJhdG9ycyBhcyBlYXNpbHkgYXMgYSBzaW5nbGUgbGFyZ2UgZnVuY3Rpb24gY2FuIGJlIHNwbGl0IGludG8KK211bHRpcGxlIHN1YmZ1bmN0aW9ucy4KKworKEltcGxlbWVudGF0aW9uIGJ5IEdyZWcgRXdpbmcsIGludGVncmF0ZWQgaW50byAzLjMgYnkgUmVuYXVkIEJsYW5jaCwgUnlhbgorS2VsbHkgYW5kIE5pY2sgQ29naGxhbiwgZG9jdW1lbnRhdGlvbiBieSBaYmlnbmlldyBKxJlkcnplamV3c2tpLVN6bWVrIGFuZAorTmljayBDb2dobGFuKQorCisKK1BFUCA0MDk6IFN1cHByZXNzaW5nIGV4Y2VwdGlvbiBjb250ZXh0Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCis6cGVwOmA0MDlgIC0gU3VwcHJlc3NpbmcgZXhjZXB0aW9uIGNvbnRleHQKKyBQRVAgd3JpdHRlbiBieSBFdGhhbiBGdXJtYW4sIGltcGxlbWVudGVkIGJ5IEV0aGFuIEZ1cm1hbiBhbmQgTmljayBDb2dobGFuLgorCitQRVAgNDA5IGludHJvZHVjZXMgbmV3IHN5bnRheCB0aGF0IGFsbG93cyB0aGUgZGlzcGxheSBvZiB0aGUgY2hhaW5lZAorZXhjZXB0aW9uIGNvbnRleHQgdG8gYmUgZGlzYWJsZWQuIFRoaXMgYWxsb3dzIGNsZWFuZXIgZXJyb3IgbWVzc2FnZXMgaW4KK2FwcGxpY2F0aW9ucyB0aGF0IGNvbnZlcnQgYmV0d2VlbiBleGNlcHRpb24gdHlwZXM6OgorCisgICAgPj4+IGNsYXNzIEQ6CisgICAgLi4uICAgICBkZWYgX19pbml0X18oc2VsZiwgZXh0cmEpOgorICAgIC4uLiAgICAgICAgIHNlbGYuX2V4dHJhX2F0dHJpYnV0ZXMgPSBleHRyYQorICAgIC4uLiAgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHIpOgorICAgIC4uLiAgICAgICAgIHRyeToKKyAgICAuLi4gICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2V4dHJhX2F0dHJpYnV0ZXNbYXR0cl0KKyAgICAuLi4gICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgLi4uICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKGF0dHIpIGZyb20gTm9uZQorICAgIC4uLgorICAgID4+PiBEKHt9KS54CisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gPG1vZHVsZT4KKyAgICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDgsIGluIF9fZ2V0YXR0cl9fCisgICAgQXR0cmlidXRlRXJyb3I6IHgKKworV2l0aG91dCB0aGUgYGBmcm9tIE5vbmVgYCBzdWZmaXggdG8gc3VwcHJlc3MgdGhlIGNhdXNlLCB0aGUgb3JpZ2luYWwKK2V4Y2VwdGlvbiB3b3VsZCBiZSBkaXNwbGF5ZWQgYnkgZGVmYXVsdDo6CisKKyAgICA+Pj4gY2xhc3MgQzoKKyAgICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHRyYSk6CisgICAgLi4uICAgICAgICAgc2VsZi5fZXh0cmFfYXR0cmlidXRlcyA9IGV4dHJhCisgICAgLi4uICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgYXR0cik6CisgICAgLi4uICAgICAgICAgdHJ5OgorICAgIC4uLiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZXh0cmFfYXR0cmlidXRlc1thdHRyXQorICAgIC4uLiAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAuLi4gICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoYXR0cikKKyAgICAuLi4KKyAgICA+Pj4gQyh7fSkueAorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDYsIGluIF9fZ2V0YXR0cl9fCisgICAgS2V5RXJyb3I6ICd4JworCisgICAgRHVyaW5nIGhhbmRsaW5nIG9mIHRoZSBhYm92ZSBleGNlcHRpb24sIGFub3RoZXIgZXhjZXB0aW9uIG9jY3VycmVkOgorCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gPG1vZHVsZT4KKyAgICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDgsIGluIF9fZ2V0YXR0cl9fCisgICAgQXR0cmlidXRlRXJyb3I6IHgKKworTm8gZGVidWdnaW5nIGNhcGFiaWxpdHkgaXMgbG9zdCwgYXMgdGhlIG9yaWdpbmFsIGV4Y2VwdGlvbiBjb250ZXh0IHJlbWFpbnMKK2F2YWlsYWJsZSBpZiBuZWVkZWQgKGZvciBleGFtcGxlLCBpZiBhbiBpbnRlcnZlbmluZyBsaWJyYXJ5IGhhcyBpbmNvcnJlY3RseQorc3VwcHJlc3NlZCB2YWx1YWJsZSB1bmRlcmx5aW5nIGRldGFpbHMpOjoKKworICAgID4+PiB0cnk6CisgICAgLi4uICAgICBEKHt9KS54CisgICAgLi4uIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvciBhcyBleGM6CisgICAgLi4uICAgICBwcmludChyZXByKGV4Yy5fX2NvbnRleHRfXykpCisgICAgLi4uCisgICAgS2V5RXJyb3IoJ3gnLCkKKworCitQRVAgNDE0OiBFeHBsaWNpdCBVbmljb2RlIGxpdGVyYWxzCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCis6cGVwOmA0MTRgIC0gRXhwbGljaXQgVW5pY29kZSBsaXRlcmFscworIFBFUCB3cml0dGVuIGJ5IEFybWluIFJvbmFjaGVyLgorCitUbyBlYXNlIHRoZSB0cmFuc2l0aW9uIGZyb20gUHl0aG9uIDIgZm9yIFVuaWNvZGUgYXdhcmUgUHl0aG9uIGFwcGxpY2F0aW9ucwordGhhdCBtYWtlIGhlYXZ5IHVzZSBvZiBVbmljb2RlIGxpdGVyYWxzLCBQeXRob24gMy4zIG9uY2UgYWdhaW4gc3VwcG9ydHMgdGhlCisiYGB1YGAiIHByZWZpeCBmb3Igc3RyaW5nIGxpdGVyYWxzLiBUaGlzIHByZWZpeCBoYXMgbm8gc2VtYW50aWMgc2lnbmlmaWNhbmNlCitpbiBQeXRob24gMywgaXQgaXMgcHJvdmlkZWQgc29sZWx5IHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHB1cmVseSBtZWNoYW5pY2FsCitjaGFuZ2VzIGluIG1pZ3JhdGluZyB0byBQeXRob24gMywgbWFraW5nIGl0IGVhc2llciBmb3IgZGV2ZWxvcGVycyB0byBmb2N1cyBvbgordGhlIG1vcmUgc2lnbmlmaWNhbnQgc2VtYW50aWMgY2hhbmdlcyAoc3VjaCBhcyB0aGUgc3RyaWN0ZXIgZGVmYXVsdAorc2VwYXJhdGlvbiBvZiBiaW5hcnkgYW5kIHRleHQgZGF0YSkuCisKKworUEVQIDMxNTU6IFF1YWxpZmllZCBuYW1lIGZvciBjbGFzc2VzIGFuZCBmdW5jdGlvbnMKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKzpwZXA6YDMxNTVgIC0gUXVhbGlmaWVkIG5hbWUgZm9yIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucworIFBFUCB3cml0dGVuIGFuZCBpbXBsZW1lbnRlZCBieSBBbnRvaW5lIFBpdHJvdS4KKworRnVuY3Rpb25zIGFuZCBjbGFzcyBvYmplY3RzIGhhdmUgYSBuZXcgYGBfX3F1YWxuYW1lX19gYCBhdHRyaWJ1dGUgcmVwcmVzZW50aW5nCit0aGUgInBhdGgiIGZyb20gdGhlIG1vZHVsZSB0b3AtbGV2ZWwgdG8gdGhlaXIgZGVmaW5pdGlvbi4gIEZvciBnbG9iYWwgZnVuY3Rpb25zCithbmQgY2xhc3NlcywgdGhpcyBpcyB0aGUgc2FtZSBhcyBgYF9fbmFtZV9fYGAuICBGb3Igb3RoZXIgZnVuY3Rpb25zIGFuZCBjbGFzc2VzLAoraXQgcHJvdmlkZXMgYmV0dGVyIGluZm9ybWF0aW9uIGFib3V0IHdoZXJlIHRoZXkgd2VyZSBhY3R1YWxseSBkZWZpbmVkLCBhbmQKK2hvdyB0aGV5IG1pZ2h0IGJlIGFjY2Vzc2libGUgZnJvbSB0aGUgZ2xvYmFsIHNjb3BlLgorCitFeGFtcGxlIHdpdGggKG5vbi1ib3VuZCkgbWV0aG9kczo6CisKKyAgID4+PiBjbGFzcyBDOgorICAgLi4uICAgICBkZWYgbWV0aChzZWxmKToKKyAgIC4uLiAgICAgICAgIHBhc3MKKyAgID4+PiBDLm1ldGguX19uYW1lX18KKyAgICdtZXRoJworICAgPj4+IEMubWV0aC5fX3F1YWxuYW1lX18KKyAgICdDLm1ldGgnCisKK0V4YW1wbGUgd2l0aCBuZXN0ZWQgY2xhc3Nlczo6CisKKyAgID4+PiBjbGFzcyBDOgorICAgLi4uICAgICBjbGFzcyBEOgorICAgLi4uICAgICAgICAgZGVmIG1ldGgoc2VsZik6CisgICAuLi4gICAgICAgICAgICAgcGFzcworICAgLi4uCisgICA+Pj4gQy5ELl9fbmFtZV9fCisgICAnRCcKKyAgID4+PiBDLkQuX19xdWFsbmFtZV9fCisgICAnQy5EJworICAgPj4+IEMuRC5tZXRoLl9fbmFtZV9fCisgICAnbWV0aCcKKyAgID4+PiBDLkQubWV0aC5fX3F1YWxuYW1lX18KKyAgICdDLkQubWV0aCcKKworRXhhbXBsZSB3aXRoIG5lc3RlZCBmdW5jdGlvbnM6OgorCisgICA+Pj4gZGVmIG91dGVyKCk6CisgICAuLi4gICAgIGRlZiBpbm5lcigpOgorICAgLi4uICAgICAgICAgcGFzcworICAgLi4uICAgICByZXR1cm4gaW5uZXIKKyAgIC4uLgorICAgPj4+IG91dGVyKCkuX19uYW1lX18KKyAgICdpbm5lcicKKyAgID4+PiBvdXRlcigpLl9fcXVhbG5hbWVfXworICAgJ291dGVyLjxsb2NhbHM+LmlubmVyJworCitUaGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRob3NlIG9iamVjdHMgaXMgYWxzbyBjaGFuZ2VkIHRvIGluY2x1ZGUgdGhlCituZXcsIG1vcmUgcHJlY2lzZSBpbmZvcm1hdGlvbjo6CisKKyAgID4+PiBzdHIoQy5EKQorICAgIjxjbGFzcyAnX19tYWluX18uQy5EJz4iCisgICA+Pj4gc3RyKEMuRC5tZXRoKQorICAgJzxmdW5jdGlvbiBDLkQubWV0aCBhdCAweDdmNDZiOWZlMzFlMD4nCisKKworUEVQIDQxMjogS2V5LVNoYXJpbmcgRGljdGlvbmFyeQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCis6cGVwOmA0MTJgIC0gS2V5LVNoYXJpbmcgRGljdGlvbmFyeQorIFBFUCB3cml0dGVuIGFuZCBpbXBsZW1lbnRlZCBieSBNYXJrIFNoYW5ub24uCisKK0RpY3Rpb25hcmllcyB1c2VkIGZvciB0aGUgc3RvcmFnZSBvZiBvYmplY3RzJyBhdHRyaWJ1dGVzIGFyZSBub3cgYWJsZSB0bworc2hhcmUgcGFydCBvZiB0aGVpciBpbnRlcm5hbCBzdG9yYWdlIGJldHdlZW4gZWFjaCBvdGhlciAobmFtZWx5LCB0aGUgcGFydAord2hpY2ggc3RvcmVzIHRoZSBrZXlzIGFuZCB0aGVpciByZXNwZWN0aXZlIGhhc2hlcykuICBUaGlzIHJlZHVjZXMgdGhlIG1lbW9yeQorY29uc3VtcHRpb24gb2YgcHJvZ3JhbXMgY3JlYXRpbmcgbWFueSBpbnN0YW5jZXMgb2Ygbm9uLWJ1aWx0aW4gdHlwZXMuCisKKworVXNpbmcgaW1wb3J0bGliIGFzIHRoZSBJbXBsZW1lbnRhdGlvbiBvZiBJbXBvcnQKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis6aXNzdWU6YDIzNzdgIC0gUmVwbGFjZSBfX2ltcG9ydF9fIHcvIGltcG9ydGxpYi5fX2ltcG9ydF9fCis6aXNzdWU6YDEzOTU5YCAtIFJlLWltcGxlbWVudCBwYXJ0cyBvZiA6bW9kOmBpbXBgIGluIHB1cmUgUHl0aG9uCis6aXNzdWU6YDE0NjA1YCAtIE1ha2UgaW1wb3J0IG1hY2hpbmVyeSBleHBsaWNpdAorOmlzc3VlOmAxNDY0NmAgLSBSZXF1aXJlIGxvYWRlcnMgc2V0IF9fbG9hZGVyX18gYW5kIF9fcGFja2FnZV9fCisKKyhXcml0dGVuIGJ5IEJyZXR0IENhbm5vbikKKworVGhlIDpmdW5jOmBfX2ltcG9ydF9fYCBmdW5jdGlvbiBpcyBub3cgcG93ZXJlZCBieSA6ZnVuYzpgaW1wb3J0bGliLl9faW1wb3J0X19gLgorVGhpcyB3b3JrIGxlYWRzIHRvIHRoZSBjb21wbGV0aW9uIG9mICJwaGFzZSAyIiBvZiA6cGVwOmAzMDJgLiBUaGVyZSBhcmUKK211bHRpcGxlIGJlbmVmaXRzIHRvIHRoaXMgY2hhbmdlLiBGaXJzdCwgaXQgaGFzIGFsbG93ZWQgZm9yIG1vcmUgb2YgdGhlCittYWNoaW5lcnkgcG93ZXJpbmcgaW1wb3J0IHRvIGJlIGV4cG9zZWQgaW5zdGVhZCBvZiBiZWluZyBpbXBsaWNpdCBhbmQgaGlkZGVuCit3aXRoaW4gdGhlIEMgY29kZS4gSXQgYWxzbyBwcm92aWRlcyBhIHNpbmdsZSBpbXBsZW1lbnRhdGlvbiBmb3IgYWxsIFB5dGhvbiBWTXMKK3N1cHBvcnRpbmcgUHl0aG9uIDMuMyB0byB1c2UsIGhlbHBpbmcgdG8gZW5kIGFueSBWTS1zcGVjaWZpYyBkZXZpYXRpb25zIGluCitpbXBvcnQgc2VtYW50aWNzLiBBbmQgZmluYWxseSBpdCBlYXNlcyB0aGUgbWFpbnRlbmFuY2Ugb2YgaW1wb3J0LCBhbGxvd2luZyBmb3IKK2Z1dHVyZSBncm93dGggdG8gb2NjdXIuCisKK0ZvciB0aGUgY29tbW9uIHVzZXIsIHRoaXMgY2hhbmdlIHNob3VsZCByZXN1bHQgaW4gbm8gdmlzaWJsZSBjaGFuZ2UgaW4KK3NlbWFudGljcy4gQW55IHBvc3NpYmxlIGNoYW5nZXMgcmVxdWlyZWQgaW4gb25lJ3MgY29kZSB0byBoYW5kbGUgdGhpcyBjaGFuZ2UKK3Nob3VsZCByZWFkIHRoZSBgUG9ydGluZyBQeXRob24gY29kZWBfIHNlY3Rpb24gb2YgdGhpcyBkb2N1bWVudCB0byBzZWUgd2hhdAorbmVlZHMgdG8gYmUgY2hhbmdlZCwgYnV0IGl0IHdpbGwgb25seSBhZmZlY3QgdGhvc2UgdGhhdCBjdXJyZW50bHkgbWFuaXB1bGF0ZQoraW1wb3J0IG9yIHRyeSBjYWxsaW5nIGl0IHByb2dyYW1tYXRpY2FsbHkuCisKK05ldyBBUElzCistLS0tLS0tLQorT25lIG9mIHRoZSBsYXJnZSBiZW5lZml0cyBvZiB0aGlzIHdvcmsgaXMgdGhlIGV4cG9zdXJlIG9mIHdoYXQgZ29lcyBpbnRvCittYWtpbmcgdGhlIGltcG9ydCBzdGF0ZW1lbnQgd29yay4gVGhhdCBtZWFucyB0aGUgdmFyaW91cyBpbXBvcnRlcnMgdGhhdCB3ZXJlCitvbmNlIGltcGxpY2l0IGFyZSBub3cgZnVsbHkgZXhwb3NlZCBhcyBwYXJ0IG9mIHRoZSA6bW9kOmBpbXBvcnRsaWJgIHBhY2thZ2UuCisKK0luIHRlcm1zIG9mIGZpbmRlcnMsICogOmNsYXNzOmBpbXBvcnRsaWIubWFjaGluZXJ5LkZpbGVGaW5kZXJgIGV4cG9zZXMgdGhlCittZWNoYW5pc20gdXNlZCB0byBzZWFyY2ggZm9yIHNvdXJjZSBhbmQgYnl0ZWNvZGUgZmlsZXMgb2YgYSBtb2R1bGUuIFByZXZpb3VzbHkKK3RoaXMgY2xhc3Mgd2FzIGFuIGltcGxpY2l0IG1lbWJlciBvZiA6YXR0cjpgc3lzLnBhdGhfaG9va3NgLgorCitGb3IgbG9hZGVycywgdGhlIG5ldyBhYnN0cmFjdCBiYXNlIGNsYXNzIDpjbGFzczpgaW1wb3J0bGliLmFiYy5GaWxlTG9hZGVyYCBoZWxwcword3JpdGUgYSBsb2FkZXIgdGhhdCB1c2VzIHRoZSBmaWxlIHN5c3RlbSBhcyB0aGUgc3RvcmFnZSBtZWNoYW5pc20gZm9yIGEgbW9kdWxlJ3MKK2NvZGUuIFRoZSBsb2FkZXIgZm9yIHNvdXJjZSBmaWxlcworKDpjbGFzczpgaW1wb3J0bGliLm1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyYCksIHNvdXJjZWxlc3MgYnl0ZWNvZGUgZmlsZXMKKyg6Y2xhc3M6YGltcG9ydGxpYi5tYWNoaW5lcnkuU291cmNlbGVzc0ZpbGVMb2FkZXJgKSwgYW5kIGV4dGVuc2lvbiBtb2R1bGVzCisoOmNsYXNzOmBpbXBvcnRsaWIubWFjaGluZXJ5LkV4dGVuc2lvbkZpbGVMb2FkZXJgKSBhcmUgbm93IGF2YWlsYWJsZSBmb3IKK2RpcmVjdCB1c2UuCisKKzpleGM6YEltcG9ydEVycm9yYCBub3cgaGFzIGBgbmFtZWBgIGFuZCBgYHBhdGhgYCBhdHRyaWJ1dGVzIHdoaWNoIGFyZSBzZXQgd2hlbgordGhlcmUgaXMgcmVsZXZhbnQgZGF0YSB0byBwcm92aWRlLiBUaGUgbWVzc2FnZSBmb3IgZmFpbGVkIGltcG9ydHMgd2lsbCBhbHNvCitwcm92aWRlIHRoZSBmdWxsIG5hbWUgb2YgdGhlIG1vZHVsZSBub3cgaW5zdGVhZCBvZiBqdXN0IHRoZSB0YWlsIGVuZCBvZiB0aGUKK21vZHVsZSdzIG5hbWUuCisKK1RoZSA6ZnVuYzpgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzYCBmdW5jdGlvbiB3aWxsIG5vdyBjYWxsIHRoZSBtZXRob2Qgd2l0aAordGhlIHNhbWUgbmFtZSBvbiBhbGwgZmluZGVycyBjYWNoZWQgaW4gOmF0dHI6YHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlYCB0byBoZWxwCitjbGVhbiB1cCBhbnkgc3RvcmVkIHN0YXRlIGFzIG5lY2Vzc2FyeS4KKworVmlzaWJsZSBDaGFuZ2VzCistLS0tLS0tLS0tLS0tLS0KK1tGb3IgcG90ZW50aWFsIHJlcXVpcmVkIGNoYW5nZXMgdG8gY29kZSwgc2VlIHRoZSBgUG9ydGluZyBQeXRob24gY29kZWBfCitzZWN0aW9uXQorCitCZXlvbmQgdGhlIGV4cGFuc2Ugb2Ygd2hhdCA6bW9kOmBpbXBvcnRsaWJgIG5vdyBleHBvc2VzLCB0aGVyZSBhcmUgb3RoZXIKK3Zpc2libGUgY2hhbmdlcyB0byBpbXBvcnQuIFRoZSBiaWdnZXN0IGlzIHRoYXQgOmF0dHI6YHN5cy5tZXRhX3BhdGhgIGFuZAorOmF0dHI6YHN5cy5wYXRoX2hvb2tzYCBub3cgc3RvcmUgYWxsIG9mIHRoZSBmaW5kZXJzIHVzZWQgYnkgaW1wb3J0IGV4cGxpY2l0bHkuCitQcmV2aW91c2x5IHRoZSBmaW5kZXJzIHdlcmUgaW1wbGljaXQgYW5kIGhpZGRlbiB3aXRoaW4gdGhlIEMgY29kZSBvZiBpbXBvcnQKK2luc3RlYWQgb2YgYmVpbmcgZGlyZWN0bHkgZXhwb3NlZC4gVGhpcyBtZWFucyB0aGF0IG9uZSBjYW4gbm93IGVhc2lseSByZW1vdmUgb3IKK2NoYW5nZSB0aGUgb3JkZXIgb2YgdGhlIHZhcmlvdXMgZmluZGVycyB0byBmaXQgb25lJ3MgbmVlZHMuCisKK0Fub3RoZXIgY2hhbmdlIGlzIHRoYXQgYWxsIG1vZHVsZXMgaGF2ZSBhIGBgX19sb2FkZXJfX2BgIGF0dHJpYnV0ZSwgc3RvcmluZyB0aGUKK2xvYWRlciB1c2VkIHRvIGNyZWF0ZSB0aGUgbW9kdWxlLiA6cGVwOmAzMDJgIGhhcyBiZWVuIHVwZGF0ZWQgdG8gbWFrZSB0aGlzCithdHRyaWJ1dGUgbWFuZGF0b3J5IGZvciBsb2FkZXJzIHRvIGltcGxlbWVudCwgc28gaW4gdGhlIGZ1dHVyZSBvbmNlIDNyZC1wYXJ0eQorbG9hZGVycyBoYXZlIGJlZW4gdXBkYXRlZCBwZW9wbGUgd2lsbCBiZSBhYmxlIHRvIHJlbHkgb24gdGhlIGV4aXN0ZW5jZSBvZiB0aGUKK2F0dHJpYnV0ZS4gVW50aWwgc3VjaCB0aW1lLCB0aG91Z2gsIGltcG9ydCBpcyBzZXR0aW5nIHRoZSBtb2R1bGUgcG9zdC1sb2FkLgorCitMb2FkZXJzIGFyZSBhbHNvIG5vdyBleHBlY3RlZCB0byBzZXQgdGhlIGBgX19wYWNrYWdlX19gYCBhdHRyaWJ1dGUgZnJvbQorOnBlcDpgMzY2YC4gT25jZSBhZ2FpbiwgaW1wb3J0IGl0c2VsZiBpcyBhbHJlYWR5IHNldHRpbmcgdGhpcyBvbiBhbGwgbG9hZGVycworZnJvbSA6bW9kOmBpbXBvcnRsaWJgIGFuZCBpbXBvcnQgaXRzZWxmIGlzIHNldHRpbmcgdGhlIGF0dHJpYnV0ZSBwb3N0LWxvYWQuCisKK2BgTm9uZWBgIGlzIG5vdyBpbnNlcnRlZCBpbnRvIDphdHRyOmBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZWAgd2hlbiBubyBmaW5kZXIKK2NhbiBiZSBmb3VuZCBvbiA6YXR0cjpgc3lzLnBhdGhfaG9va3NgLiBTaW5jZSA6Y2xhc3M6YGltcC5OdWxsSW1wb3J0ZXJgIGlzIG5vdAorZGlyZWN0bHkgZXhwb3NlZCBvbiA6YXR0cjpgc3lzLnBhdGhfaG9va3NgIGl0IGNvdWxkIG5vIGxvbmdlciBiZSByZWxpZWQgdXBvbiB0bworYWx3YXlzIGJlIGF2YWlsYWJsZSB0byB1c2UgYXMgYSB2YWx1ZSByZXByZXNlbnRpbmcgbm8gZmluZGVyIGZvdW5kLgorCitBbGwgb3RoZXIgY2hhbmdlcyByZWxhdGUgdG8gc2VtYW50aWMgY2hhbmdlcyB3aGljaCBzaG91bGQgYmUgdGFrZW4gaW50bworY29uc2lkZXJhdGlvbiB3aGVuIHVwZGF0aW5nIGNvZGUgZm9yIFB5dGhvbiAzLjMsIGFuZCB0aHVzIHNob3VsZCBiZSByZWFkIGFib3V0CitpbiB0aGUgYFBvcnRpbmcgUHl0aG9uIGNvZGVgXyBzZWN0aW9uIG9mIHRoaXMgZG9jdW1lbnQuCisKKworTmV3IEVtYWlsIFBhY2thZ2UgRmVhdHVyZXMKKz09PT09PT09PT09PT09PT09PT09PT09PT09CisKK1BvbGljeSBGcmFtZXdvcmsKKy0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGVtYWlsIHBhY2thZ2Ugbm93IGhhcyBhIDptb2Q6YH5lbWFpbC5wb2xpY3lgIGZyYW1ld29yay4gIEEKKzpjbGFzczpgfmVtYWlsLnBvbGljeS5Qb2xpY3lgIGlzIGFuIG9iamVjdCB3aXRoIHNldmVyYWwgbWV0aG9kcyBhbmQgcHJvcGVydGllcwordGhhdCBjb250cm9sIGhvdyB0aGUgZW1haWwgcGFja2FnZSBiZWhhdmVzLiAgVGhlIHByaW1hcnkgcG9saWN5IGZvciBQeXRob24gMy4zCitpcyB0aGUgOmNsYXNzOmB+ZW1haWwucG9saWN5LkNvbXBhdDMyYCBwb2xpY3ksIHdoaWNoIHByb3ZpZGVzIGJhY2t3YXJkCitjb21wYXRpYmlsaXR5IHdpdGggdGhlIGVtYWlsIHBhY2thZ2UgaW4gUHl0aG9uIDMuMi4gIEEgYGBwb2xpY3lgYCBjYW4gYmUKK3NwZWNpZmllZCB3aGVuIGFuIGVtYWlsIG1lc3NhZ2UgaXMgcGFyc2VkIGJ5IGEgOm1vZDpgfmVtYWlsLnBhcnNlcmAsIG9yIHdoZW4gYQorOmNsYXNzOmB+ZW1haWwubWVzc2FnZS5NZXNzYWdlYCBvYmplY3QgaXMgY3JlYXRlZCwgb3Igd2hlbiBhbiBlbWFpbCBpcworc2VyaWFsaXplZCB1c2luZyBhIDptb2Q6YH5lbWFpbC5nZW5lcmF0b3JgLiAgVW5sZXNzIG92ZXJyaWRkZW4sIGEgcG9saWN5IHBhc3NlZAordG8gYSBgYHBhcnNlcmBgIGlzIGluaGVyaXRlZCBieSBhbGwgdGhlIGBgTWVzc2FnZWBgIG9iamVjdCBhbmQgc3ViLW9iamVjdHMKK2NyZWF0ZWQgYnkgdGhlIGBgcGFyc2VyYGAuICBCeSBkZWZhdWx0IGEgYGBnZW5lcmF0b3JgYCB3aWxsIHVzZSB0aGUgcG9saWN5IG9mCit0aGUgYGBNZXNzYWdlYGAgb2JqZWN0IGl0IGlzIHNlcmlhbGl6aW5nLiAgVGhlIGRlZmF1bHQgcG9saWN5IGlzCis6ZGF0YTpgfmVtYWlsLnBvbGljeS5jb21wYXQzMmAuCisKK1RoZSBtaW5pbXVtIHNldCBvZiBjb250cm9scyBpbXBsZW1lbnRlZCBieSBhbGwgYGBwb2xpY3lgYCBvYmplY3RzIGFyZToKKworICAgID09PT09PT09PT09PT09PSAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgIG1heF9saW5lX2xlbmd0aCAgICAgVGhlIG1heGltdW0gbGVuZ3RoLCBleGNsdWRpbmcgdGhlIGxpbmVzZXAgY2hhcmFjdGVyKHMpLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5kaXZpZHVhbCBsaW5lcyBtYXkgaGF2ZSB3aGVuIGEgYGBNZXNzYWdlYGAgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbGl6ZWQuICBEZWZhdWx0cyB0byA3OC4KKworICAgIGxpbmVzZXAgICAgICAgICAgICAgVGhlIGNoYXJhY3RlciB1c2VkIHRvIHNlcGFyYXRlIGluZGl2aWR1YWwgbGluZXMgd2hlbiBhCisgICAgICAgICAgICAgICAgICAgICAgICBgYE1lc3NhZ2VgYCBpcyBzZXJpYWxpemVkLiAgRGVmYXVsdHMgdG8gYGBcbmBgLgorCisgICAgY3RlX3R5cGUgICAgICAgICAgICBgYDdiaXRgYCBvciBgYDhiaXRgYC4gIGBgOGJpdGBgIGFwcGxpZXMgb25seSB0byBhCisgICAgICAgICAgICAgICAgICAgICAgICBgYEJ5dGVzYGAgYGBnZW5lcmF0b3JgYCwgYW5kIG1lYW5zIHRoYXQgbm9uLUFTQ0lJIG1heQorICAgICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB3aGVyZSBhbGxvd2VkIGJ5IHRoZSBwcm90b2NvbCAob3Igd2hlcmUgaXQKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4aXN0cyBpbiB0aGUgb3JpZ2luYWwgaW5wdXQpLgorCisgICAgcmFpc2Vfb25fZGVmZWN0ICAgICBDYXVzZXMgYSBgYHBhcnNlcmBgIHRvIHJhaXNlIGVycm9yIHdoZW4gZGVmZWN0cyBhcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuY291bnRlcmVkIGluc3RlYWQgb2YgYWRkaW5nIHRoZW0gdG8gdGhlIGBgTWVzc2FnZWBgCisgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QncyBgYGRlZmVjdHNgYCBsaXN0LgorICAgID09PT09PT09PT09PT09PSAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitBIG5ldyBwb2xpY3kgaW5zdGFuY2UsIHdpdGggbmV3IHNldHRpbmdzLCBpcyBjcmVhdGVkIHVzaW5nIHRoZQorOm1ldGg6YH5lbWFpbC5wb2xpY3kuUG9saWN5LmNsb25lYCBtZXRob2Qgb2YgcG9saWN5IG9iamVjdHMuICBgYGNsb25lYGAgdGFrZXMKK2FueSBvZiB0aGUgYWJvdmUgY29udHJvbHMgYXMga2V5d29yZCBhcmd1bWVudHMuICBBbnkgY29udHJvbCBub3Qgc3BlY2lmaWVkIGluCit0aGUgY2FsbCByZXRhaW5zIGl0cyBkZWZhdWx0IHZhbHVlLiAgVGh1cyB5b3UgY2FuIGNyZWF0ZSBhIHBvbGljeSB0aGF0IHVzZXMKK2BgXHJcbmBgIGxpbmVzZXAgY2hhcmFjdGVycyBsaWtlIHRoaXM6OgorCisgICAgbXlwb2xpY3kgPSBjb21wYXQzMi5jbG9uZShsaW5lc2VwPSdcclxuJykKKworUG9saWNpZXMgY2FuIGJlIHVzZWQgdG8gbWFrZSB0aGUgZ2VuZXJhdGlvbiBvZiBtZXNzYWdlcyBpbiB0aGUgZm9ybWF0IG5lZWRlZCBieQoreW91ciBhcHBsaWNhdGlvbiBzaW1wbGVyLiAgSW5zdGVhZCBvZiBoYXZpbmcgdG8gcmVtZW1iZXIgdG8gc3BlY2lmeQorYGBsaW5lc2VwPSdcclxuJ2BgIGluIGFsbCB0aGUgcGxhY2VzIHlvdSBjYWxsIGEgYGBnZW5lcmF0b3JgYCwgeW91IGNhbiBzcGVjaWZ5CitpdCBvbmNlLCB3aGVuIHlvdSBzZXQgdGhlIHBvbGljeSB1c2VkIGJ5IHRoZSBgYHBhcnNlcmBgIG9yIHRoZSBgYE1lc3NhZ2VgYCwKK3doaWNoZXZlciB5b3VyIHByb2dyYW0gdXNlcyB0byBjcmVhdGUgYGBNZXNzYWdlYGAgb2JqZWN0cy4gIE9uIHRoZSBvdGhlciBoYW5kLAoraWYgeW91IG5lZWQgdG8gZ2VuZXJhdGUgbWVzc2FnZXMgaW4gbXVsdGlwbGUgZm9ybXMsIHlvdSBjYW4gc3RpbGwgc3BlY2lmeSB0aGUKK3BhcmFtZXRlcnMgaW4gdGhlIGFwcHJvcHJpYXRlIGBgZ2VuZXJhdG9yYGAgY2FsbC4gIE9yIHlvdSBjYW4gaGF2ZSBjdXN0b20KK3BvbGljeSBpbnN0YW5jZXMgZm9yIHlvdXIgZGlmZmVyZW50IGNhc2VzLCBhbmQgcGFzcyB0aG9zZSBpbiB3aGVuIHlvdSBjcmVhdGUKK3RoZSBgYGdlbmVyYXRvcmBgLgorCisKK1Byb3Zpc2lvbmFsIFBvbGljeSB3aXRoIE5ldyBIZWFkZXIgQVBJCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitXaGlsZSB0aGUgcG9saWN5IGZyYW1ld29yayBpcyB3b3J0aHdoaWxlIGFsbCBieSBpdHNlbGYsIHRoZSBtYWluIG1vdGl2YXRpb24gZm9yCitpbnRyb2R1Y2luZyBpdCBpcyB0byBhbGxvdyB0aGUgY3JlYXRpb24gb2YgbmV3IHBvbGljaWVzIHRoYXQgaW1wbGVtZW50IG5ldworZmVhdHVyZXMgZm9yIHRoZSBlbWFpbCBwYWNrYWdlIGluIGEgd2F5IHRoYXQgbWFpbnRhaW5zIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKK2ZvciB0aG9zZSB3aG8gZG8gbm90IHVzZSB0aGUgbmV3IHBvbGljaWVzLiAgQmVjYXVzZSB0aGUgbmV3IHBvbGljaWVzIGludHJvZHVjZSBhCituZXcgQVBJLCB3ZSBhcmUgcmVsZWFzaW5nIHRoZW0gaW4gUHl0aG9uIDMuMyBhcyBhIDp0ZXJtOmBwcm92aXNpb25hbCBwb2xpY3kKKzxwcm92aXNpb25hbCBwYWNrYWdlPmAuICBCYWNrd2FyZHMgaW5jb21wYXRpYmxlIGNoYW5nZXMgKHVwIHRvIGFuZCBpbmNsdWRpbmcKK3JlbW92YWwgb2YgdGhlIGNvZGUpIG1heSBvY2N1ciBpZiBkZWVtZWQgbmVjZXNzYXJ5IGJ5IHRoZSBjb3JlIGRldmVsb3BlcnMuCisKK1RoZSBuZXcgcG9saWNpZXMgYXJlIGluc3RhbmNlcyBvZiA6Y2xhc3M6YH5lbWFpbC5wb2xpY3kuRW1haWxQb2xpY3lgLAorYW5kIGFkZCB0aGUgZm9sbG93aW5nIGFkZGl0aW9uYWwgY29udHJvbHM6CisKKyAgICA9PT09PT09PT09PT09PT0gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyAgICByZWZvbGRfc291cmNlICAgICAgIENvbnRyb2xzIHdoZXRoZXIgb3Igbm90IGhlYWRlcnMgcGFyc2VkIGJ5IGEKKyAgICAgICAgICAgICAgICAgICAgICAgIDptb2Q6YH5lbWFpbC5wYXJzZXJgIGFyZSByZWZvbGRlZCBieSB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDptb2Q6YH5lbWFpbC5nZW5lcmF0b3JgLiAgSXQgY2FuIGJlIGBgbm9uZWBgLCBgYGxvbmdgYCwKKyAgICAgICAgICAgICAgICAgICAgICAgIG9yIGBgYWxsYGAuICBUaGUgZGVmYXVsdCBpcyBgYGxvbmdgYCwgd2hpY2ggbWVhbnMgdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlIGhlYWRlcnMgd2l0aCBhIGxpbmUgbG9uZ2VyIHRoYW4KKyAgICAgICAgICAgICAgICAgICAgICAgIGBgbWF4X2xpbmVfbGVuZ3RoYGAgZ2V0IHJlZm9sZGVkLiAgYGBub25lYGAgbWVhbnMgbm8KKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgZ2V0IHJlZm9sZGVkLCBhbmQgYGBhbGxgYCBtZWFucyB0aGF0IGFsbCBsaW5lcworICAgICAgICAgICAgICAgICAgICAgICAgZ2V0IHJlZm9sZGVkLgorCisgICAgaGVhZGVyX2ZhY3RvcnkgICAgICBBIGNhbGxhYmxlIHRoYXQgdGFrZSBhIGBgbmFtZWBgIGFuZCBgYHZhbHVlYGAgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWNlcyBhIGN1c3RvbSBoZWFkZXIgb2JqZWN0LgorICAgID09PT09PT09PT09PT09PSAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitUaGUgYGBoZWFkZXJfZmFjdG9yeWBgIGlzIHRoZSBrZXkgdG8gdGhlIG5ldyBmZWF0dXJlcyBwcm92aWRlZCBieSB0aGUgbmV3Citwb2xpY2llcy4gIFdoZW4gb25lIG9mIHRoZSBuZXcgcG9saWNpZXMgaXMgdXNlZCwgYW55IGhlYWRlciByZXRyaWV2ZWQgZnJvbQorYSBgYE1lc3NhZ2VgYCBvYmplY3QgaXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5IHRoZSBgYGhlYWRlcl9mYWN0b3J5YGAsIGFuZCBhbnkKK3RpbWUgeW91IHNldCBhIGhlYWRlciBvbiBhIGBgTWVzc2FnZWBgIGl0IGJlY29tZXMgYW4gb2JqZWN0IHByb2R1Y2VkIGJ5CitgYGhlYWRlcl9mYWN0b3J5YGAuICBBbGwgc3VjaCBoZWFkZXIgb2JqZWN0cyBoYXZlIGEgYGBuYW1lYGAgYXR0cmlidXRlIGVxdWFsCit0byB0aGUgaGVhZGVyIG5hbWUuICBBZGRyZXNzIGFuZCBEYXRlIGhlYWRlcnMgaGF2ZSBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMKK3RoYXQgZ2l2ZSB5b3UgYWNjZXNzIHRvIHRoZSBwYXJzZWQgZGF0YSBvZiB0aGUgaGVhZGVyLiAgVGhpcyBtZWFucyB5b3UgY2FuIG5vdworZG8gdGhpbmdzIGxpa2UgdGhpczo6CisKKyAgICA+Pj4gbSA9IE1lc3NhZ2UocG9saWN5PVNNVFApCisgICAgPj4+IG1bJ1RvJ10gPSAnw4lyaWMgPGZvb0BleGFtcGxlLmNvbT4nCisgICAgPj4+IG1bJ3RvJ10KKyAgICAnw4lyaWMgPGZvb0BleGFtcGxlLmNvbT4nCisgICAgPj4+IG1bJ3RvJ10uYWRkcmVzc2VzCisgICAgKEFkZHJlc3MoZGlzcGxheV9uYW1lPSfDiXJpYycsIHVzZXJuYW1lPSdmb28nLCBkb21haW49J2V4YW1wbGUuY29tJyksKQorICAgID4+PiBtWyd0byddLmFkZHJlc3Nlc1swXS51c2VybmFtZQorICAgICdmb28nCisgICAgPj4+IG1bJ3RvJ10uYWRkcmVzc2VzWzBdLmRpc3BsYXlfbmFtZQorICAgICfDiXJpYycKKyAgICA+Pj4gbVsnRGF0ZSddID0gZW1haWwudXRpbHMubG9jYWx0aW1lKCkKKyAgICA+Pj4gbVsnRGF0ZSddLmRhdGV0aW1lCisgICAgZGF0ZXRpbWUuZGF0ZXRpbWUoMjAxMiwgNSwgMjUsIDIxLCAzOSwgMjQsIDQ2NTQ4NCwgdHppbmZvPWRhdGV0aW1lLnRpbWV6b25lKGRhdGV0aW1lLnRpbWVkZWx0YSgtMSwgNzIwMDApLCAnRURUJykpCisgICAgPj4+IG1bJ0RhdGUnXQorICAgICdGcmksIDI1IE1heSAyMDEyIDIxOjQ0OjI3IC0wNDAwJworICAgID4+PiBwcmludChtKQorICAgIFRvOiA9P3V0Zi04P3E/PUMzPTg5cmljPz0gPGZvb0BleGFtcGxlLmNvbT4KKyAgICBEYXRlOiBGcmksIDI1IE1heSAyMDEyIDIxOjQ0OjI3IC0wNDAwCisKK1lvdSB3aWxsIG5vdGUgdGhhdCB0aGUgdW5pY29kZSBkaXNwbGF5IG5hbWUgaXMgYXV0b21hdGljYWxseSBlbmNvZGVkIGFzCitgYHV0Zi04YGAgd2hlbiB0aGUgbWVzc2FnZSBpcyBzZXJpYWxpemVkLCBidXQgdGhhdCB3aGVuIHRoZSBoZWFkZXIgaXMgYWNjZXNzZWQKK2RpcmVjdGx5LCB5b3UgZ2V0IHRoZSB1bmljb2RlIHZlcnNpb24uICBUaGlzIGVsaW1pbmF0ZXMgYW55IG5lZWQgdG8gZGVhbCB3aXRoCit0aGUgOm1vZDpgZW1haWwuaGVhZGVyYCA6bWV0aDpgfmVtYWlsLmhlYWRlci5kZWNvZGVfaGVhZGVyYCBvcgorOm1ldGg6YH5lbWFpbC5oZWFkZXIubWFrZV9oZWFkZXJgIGZ1bmN0aW9ucy4KKworWW91IGNhbiBhbHNvIGNyZWF0ZSBhZGRyZXNzZXMgZnJvbSBwYXJ0czo6CisKKyAgICA+Pj4gbVsnY2MnXSA9IFtHcm91cCgncGFscycsIFtBZGRyZXNzKCdCb2InLCAnYm9iJywgJ2V4YW1wbGUuY29tJyksCisgICAgLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcygnU2FsbHknLCAnc2FsbHknLCAnZXhhbXBsZS5jb20nKV0pLAorICAgIC4uLiAgICAgICAgICAgIEFkZHJlc3MoJ0JvbnpvJywgYWRkcl9zcGVjPSdib256QGxhdWdoLmNvbScpXQorICAgID4+PiBwcmludChtKQorICAgIFRvOiA9P3V0Zi04P3E/PUMzPTg5cmljPz0gPGZvb0BleGFtcGxlLmNvbT4KKyAgICBEYXRlOiBGcmksIDI1IE1heSAyMDEyIDIxOjQ0OjI3IC0wNDAwCisgICAgY2M6IHBhbHM6IEJvYiA8Ym9iQGV4YW1wbGUuY29tPiwgU2FsbHkgPHNhbGx5QGV4YW1wbGUuY29tPjssIEJvbnpvIDxib256QGxhdWdoLmNvbT4KKworRGVjb2RpbmcgdG8gdW5pY29kZSBpcyBkb25lIGF1dG9tYXRpY2FsbHk6OgorCisgICAgPj4+IG0yID0gbWVzc2FnZV9mcm9tX3N0cmluZyhzdHIobSkpCisgICAgPj4+IG0yWyd0byddCisgICAgJ8OJcmljIDxmb29AZXhhbXBsZS5jb20+JworCitXaGVuIHlvdSBwYXJzZSBhIG1lc3NhZ2UsIHlvdSBjYW4gdXNlIHRoZSBgYGFkZHJlc3Nlc2BgIGFuZCBgYGdyb3Vwc2BgCithdHRyaWJ1dGVzIG9mIHRoZSBoZWFkZXIgb2JqZWN0cyB0byBhY2Nlc3MgdGhlIGdyb3VwcyBhbmQgaW5kaXZpZHVhbAorYWRkcmVzc2VzOjoKKworICAgID4+PiBtMlsnY2MnXS5hZGRyZXNzZXMKKyAgICAoQWRkcmVzcyhkaXNwbGF5X25hbWU9J0JvYicsIHVzZXJuYW1lPSdib2InLCBkb21haW49J2V4YW1wbGUuY29tJyksIEFkZHJlc3MoZGlzcGxheV9uYW1lPSdTYWxseScsIHVzZXJuYW1lPSdzYWxseScsIGRvbWFpbj0nZXhhbXBsZS5jb20nKSwgQWRkcmVzcyhkaXNwbGF5X25hbWU9J0JvbnpvJywgdXNlcm5hbWU9J2JvbnonLCBkb21haW49J2xhdWdoLmNvbScpKQorICAgID4+PiBtMlsnY2MnXS5ncm91cHMKKyAgICAoR3JvdXAoZGlzcGxheV9uYW1lPSdwYWxzJywgYWRkcmVzc2VzPShBZGRyZXNzKGRpc3BsYXlfbmFtZT0nQm9iJywgdXNlcm5hbWU9J2JvYicsIGRvbWFpbj0nZXhhbXBsZS5jb20nKSwgQWRkcmVzcyhkaXNwbGF5X25hbWU9J1NhbGx5JywgdXNlcm5hbWU9J3NhbGx5JywgZG9tYWluPSdleGFtcGxlLmNvbScpKSwgR3JvdXAoZGlzcGxheV9uYW1lPU5vbmUsIGFkZHJlc3Nlcz0oQWRkcmVzcyhkaXNwbGF5X25hbWU9J0JvbnpvJywgdXNlcm5hbWU9J2JvbnonLCBkb21haW49J2xhdWdoLmNvbScpLCkpCisKK0luIHN1bW1hcnksIGlmIHlvdSB1c2Ugb25lIG9mIHRoZSBuZXcgcG9saWNpZXMsIGhlYWRlciBtYW5pcHVsYXRpb24gd29ya3MgdGhlCit3YXkgaXQgb3VnaHQgdG86ICB5b3VyIGFwcGxpY2F0aW9uIHdvcmtzIHdpdGggdW5pY29kZSBzdHJpbmdzLCBhbmQgdGhlIGVtYWlsCitwYWNrYWdlIHRyYW5zcGFyZW50bHkgZW5jb2RlcyBhbmQgZGVjb2RlcyB0aGUgdW5pY29kZSB0byBhbmQgZnJvbSB0aGUgUkZDCitzdGFuZGFyZCBDb250ZW50IFRyYW5zZmVyIEVuY29kaW5ncy4KKworCitPdGhlciBMYW5ndWFnZSBDaGFuZ2VzCis9PT09PT09PT09PT09PT09PT09PT09CisKK1NvbWUgc21hbGxlciBjaGFuZ2VzIG1hZGUgdG8gdGhlIGNvcmUgUHl0aG9uIGxhbmd1YWdlIGFyZToKKworKiBBZGRlZCBzdXBwb3J0IGZvciBVbmljb2RlIG5hbWUgYWxpYXNlcyBhbmQgbmFtZWQgc2VxdWVuY2VzLgorICBCb3RoIDpmdW5jOmB1bmljb2RlZGF0YS5sb29rdXAoKWAgYW5kIGBgJ1xOey4uLn0nYGAgbm93IHJlc29sdmUgbmFtZSBhbGlhc2VzLAorICBhbmQgOmZ1bmM6YHVuaWNvZGVkYXRhLmxvb2t1cCgpYCByZXNvbHZlcyBuYW1lZCBzZXF1ZW5jZXMgdG9vLgorCisgIChDb250cmlidXRlZCBieSBFemlvIE1lbG90dGkgaW4gOmlzc3VlOmAxMjc1M2ApCisKKyogRXF1YWxpdHkgY29tcGFyaXNvbnMgb24gOmZ1bmM6YHJhbmdlYCBvYmplY3RzIG5vdyByZXR1cm4gYSByZXN1bHQgcmVmbGVjdGluZworICB0aGUgZXF1YWxpdHkgb2YgdGhlIHVuZGVybHlpbmcgc2VxdWVuY2VzIGdlbmVyYXRlZCBieSB0aG9zZSByYW5nZSBvYmplY3RzLgorCisgICg6aXNzdWU6YDEzMjAxYCkKKworKiBUaGUgYGBjb3VudCgpYGAsIGBgZmluZCgpYGAsIGBgcmZpbmQoKWBgLCBgYGluZGV4KClgYCBhbmQgYGByaW5kZXgoKWBgCisgIG1ldGhvZHMgb2YgOmNsYXNzOmBieXRlc2AgYW5kIDpjbGFzczpgYnl0ZWFycmF5YCBvYmplY3RzIG5vdyBhY2NlcHQgYW4KKyAgaW50ZWdlciBiZXR3ZWVuIDAgYW5kIDI1NSBhcyB0aGVpciBmaXJzdCBhcmd1bWVudC4KKworICAoQ29udHJpYnV0ZWQgYnkgUGV0cmkgTGVodGluZW4gaW4gOmlzc3VlOmAxMjE3MGApCisKKyogTmV3IG1ldGhvZHMgaGF2ZSBiZWVuIGFkZGVkIHRvIDpjbGFzczpgbGlzdGAgYW5kIDpjbGFzczpgYnl0ZWFycmF5YDoKKyAgYGBjb3B5KClgYCBhbmQgYGBjbGVhcigpYGAuCisKKyAgKDppc3N1ZTpgMTA1MTZgKQorCisqIFJhdyBieXRlcyBsaXRlcmFscyBjYW4gbm93IGJlIHdyaXR0ZW4gYGByYiIuLi4iYGAgYXMgd2VsbCBhcyBgYGJyIi4uLiJgYC4KKyAgKENvbnRyaWJ1dGVkIGJ5IEFudG9pbmUgUGl0cm91IGluIDppc3N1ZTpgMTM3NDhgLikKKworKiA6bWV0aDpgZGljdC5zZXRkZWZhdWx0YCBub3cgZG9lcyBvbmx5IG9uZSBsb29rdXAgZm9yIHRoZSBnaXZlbiBrZXksIG1ha2luZworICBpdCBhdG9taWMgd2hlbiB1c2VkIHdpdGggYnVpbHQtaW4gdHlwZXMuCisgIChDb250cmlidXRlZCBieSBGaWxpcCBHcnVzemN6ecWEc2tpIGluIDppc3N1ZTpgMTM1MjFgLikKKworCisuLiBYWFggbWVudGlvbiBuZXcgZXJyb3IgbWVzc2FnZXMgZm9yIHBhc3Npbmcgd3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyB0byBmdW5jdGlvbnMKKworCitBIEZpbmVyLUdyYWluZWQgSW1wb3J0IExvY2sKKz09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitQcmV2aW91cyB2ZXJzaW9ucyBvZiBDUHl0aG9uIGhhdmUgYWx3YXlzIHJlbGllZCBvbiBhIGdsb2JhbCBpbXBvcnQgbG9jay4KK1RoaXMgbGVkIHRvIHVuZXhwZWN0ZWQgYW5ub3lhbmNlcywgc3VjaCBhcyBkZWFkbG9ja3Mgd2hlbiBpbXBvcnRpbmcgYSBtb2R1bGUKK3dvdWxkIHRyaWdnZXIgY29kZSBleGVjdXRpb24gaW4gYSBkaWZmZXJlbnQgdGhyZWFkIGFzIGEgc2lkZS1lZmZlY3QuCitDbHVtc3kgd29ya2Fyb3VuZHMgd2VyZSBzb21ldGltZXMgZW1wbG95ZWQsIHN1Y2ggYXMgdGhlCis6YzpmdW5jOmBQeUltcG9ydF9JbXBvcnRNb2R1bGVOb0Jsb2NrYCBDIEFQSSBmdW5jdGlvbi4KKworSW4gUHl0aG9uIDMuMywgaW1wb3J0aW5nIGEgbW9kdWxlIHRha2VzIGEgcGVyLW1vZHVsZSBsb2NrLiAgVGhpcyBjb3JyZWN0bHkKK3NlcmlhbGl6ZXMgaW1wb3J0YXRpb24gb2YgYSBnaXZlbiBtb2R1bGUgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIChwcmV2ZW50aW5nCit0aGUgZXhwb3N1cmUgb2YgaW5jb21wbGV0ZWx5IGluaXRpYWxpemVkIG1vZHVsZXMpLCB3aGlsZSBlbGltaW5hdGluZyB0aGUKK2Fmb3JlbWVudGlvbmVkIGFubm95YW5jZXMuCisKKyhjb250cmlidXRlZCBieSBBbnRvaW5lIFBpdHJvdSBpbiA6aXNzdWU6YDkyNjBgLikKKworCitOZXcgYW5kIEltcHJvdmVkIE1vZHVsZXMKKz09PT09PT09PT09PT09PT09PT09PT09PQorCithYmMKKy0tLQorCitJbXByb3ZlZCBzdXBwb3J0IGZvciBhYnN0cmFjdCBiYXNlIGNsYXNzZXMgY29udGFpbmluZyBkZXNjcmlwdG9ycyBjb21wb3NlZCB3aXRoCithYnN0cmFjdCBtZXRob2RzLiBUaGUgcmVjb21tZW5kZWQgYXBwcm9hY2ggdG8gZGVjbGFyaW5nIGFic3RyYWN0IGRlc2NyaXB0b3JzIGlzCitub3cgdG8gcHJvdmlkZSA6YXR0cjpgX19pc2Fic3RyYWN0bWV0aG9kX19gIGFzIGEgZHluYW1pY2FsbHkgdXBkYXRlZAorcHJvcGVydHkuIFRoZSBidWlsdC1pbiBkZXNjcmlwdG9ycyBoYXZlIGJlZW4gdXBkYXRlZCBhY2NvcmRpbmdseS4KKworICAqIDpjbGFzczpgYWJjLmFic3RyYWN0cHJvcGVydHlgIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHVzZSA6Y2xhc3M6YHByb3BlcnR5YAorICAgIHdpdGggOmZ1bmM6YGFiYy5hYnN0cmFjdG1ldGhvZGAgaW5zdGVhZC4KKyAgKiA6Y2xhc3M6YGFiYy5hYnN0cmFjdGNsYXNzbWV0aG9kYCBoYXMgYmVlbiBkZXByZWNhdGVkLCB1c2UKKyAgICA6Y2xhc3M6YGNsYXNzbWV0aG9kYCB3aXRoIDpmdW5jOmBhYmMuYWJzdHJhY3RtZXRob2RgIGluc3RlYWQuCisgICogOmNsYXNzOmBhYmMuYWJzdHJhY3RzdGF0aWNtZXRob2RgIGhhcyBiZWVuIGRlcHJlY2F0ZWQsIHVzZQorICAgIDpjbGFzczpgc3RhdGljbWV0aG9kYCB3aXRoIDpmdW5jOmBhYmMuYWJzdHJhY3RtZXRob2RgIGluc3RlYWQuCisKKyhDb250cmlidXRlZCBieSBEYXJyZW4gRGFsZSBpbiA6aXNzdWU6YDExNjEwYCkKKworYXJyYXkKKy0tLS0tCisKK1RoZSA6bW9kOmBhcnJheWAgbW9kdWxlIHN1cHBvcnRzIHRoZSA6Yzp0eXBlOmBsb25nIGxvbmdgIHR5cGUgdXNpbmcgYGBxYGAgYW5kCitgYFFgYCB0eXBlIGNvZGVzLgorCisoQ29udHJpYnV0ZWQgYnkgT3JlbiBUaXJvc2ggYW5kIEhpcm9rYXp1IFlhbWFtb3RvIGluIDppc3N1ZTpgMTE3MjcxMWApCisKKworYnoyCistLS0KKworVGhlIDptb2Q6YGJ6MmAgbW9kdWxlIGhhcyBiZWVuIHJld3JpdHRlbiBmcm9tIHNjcmF0Y2guIEluIHRoZSBwcm9jZXNzLCBzZXZlcmFsCituZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkOgorCisqIDpjbGFzczpgYnoyLkJaMkZpbGVgIGNhbiBub3cgcmVhZCBmcm9tIGFuZCB3cml0ZSB0byBhcmJpdHJhcnkgZmlsZS1saWtlCisgIG9iamVjdHMsIGJ5IG1lYW5zIG9mIGl0cyBjb25zdHJ1Y3RvcidzICpmaWxlb2JqKiBhcmd1bWVudC4KKworICAoQ29udHJpYnV0ZWQgYnkgTmFkZWVtIFZhd2RhIGluIDppc3N1ZTpgNTg2M2ApCisKKyogOmNsYXNzOmBiejIuQloyRmlsZWAgYW5kIDpmdW5jOmBiejIuZGVjb21wcmVzc2AgY2FuIG5vdyBkZWNvbXByZXNzCisgIG11bHRpLXN0cmVhbSBpbnB1dHMgKHN1Y2ggYXMgdGhvc2UgcHJvZHVjZWQgYnkgdGhlIDpwcm9ncmFtOmBwYnppcDJgIHRvb2wpLgorICA6Y2xhc3M6YGJ6Mi5CWjJGaWxlYCBjYW4gbm93IGFsc28gYmUgdXNlZCB0byBjcmVhdGUgdGhpcyB0eXBlIG9mIGZpbGUsIHVzaW5nCisgIHRoZSBgYCdhJ2BgIChhcHBlbmQpIG1vZGUuCisKKyAgKENvbnRyaWJ1dGVkIGJ5IE5pciBBaWRlcyBpbiA6aXNzdWU6YDE2MjVgKQorCisqIDpjbGFzczpgYnoyLkJaMkZpbGVgIG5vdyBpbXBsZW1lbnRzIGFsbCBvZiB0aGUgOmNsYXNzOmBpby5CdWZmZXJlZElPQmFzZWAgQVBJLAorICBleGNlcHQgZm9yIHRoZSA6bWV0aDpgZGV0YWNoYCBhbmQgOm1ldGg6YHRydW5jYXRlYCBtZXRob2RzLgorCisKK2NvZGVjcworLS0tLS0tCisKK1RoZSA6bW9kOmB+ZW5jb2RpbmdzLm1iY3NgIGNvZGVjIGhhcyBiZWVuIHJld3JpdHRlbiB0byBoYW5kbGUgY29ycmVjdGx5CitgYHJlcGxhY2VgYCBhbmQgYGBpZ25vcmVgYCBlcnJvciBoYW5kbGVycyBvbiBhbGwgV2luZG93cyB2ZXJzaW9ucy4gIFRoZQorOm1vZDpgfmVuY29kaW5ncy5tYmNzYCBjb2RlYyBub3cgc3VwcG9ydHMgYWxsIGVycm9yIGhhbmRsZXJzLCBpbnN0ZWFkIG9mIG9ubHkKK2BgcmVwbGFjZWBgIHRvIGVuY29kZSBhbmQgYGBpZ25vcmVgYCB0byBkZWNvZGUuCisKK0EgbmV3IFdpbmRvd3Mtb25seSBjb2RlYyBoYXMgYmVlbiBhZGRlZDogYGBjcDY1MDAxYGAgKDppc3N1ZTpgMTMyMTZgKS4gSXQgaXMgdGhlCitXaW5kb3dzIGNvZGUgcGFnZSA2NTAwMSAoV2luZG93cyBVVEYtOCwgYGBDUF9VVEY4YGApLiAgRm9yIGV4YW1wbGUsIGl0IGlzIHVzZWQKK2J5IGBgc3lzLnN0ZG91dGBgIGlmIHRoZSBjb25zb2xlIG91dHB1dCBjb2RlIHBhZ2UgaXMgc2V0IHRvIGNwNjUwMDEgKGUuZy4sIHVzaW5nCitgYGNoY3AgNjUwMDFgYCBjb21tYW5kKS4KKworTXVsdGlieXRlIENKSyBkZWNvZGVycyBub3cgcmVzeW5jaHJvbml6ZSBmYXN0ZXIuICBUaGV5IG9ubHkgaWdub3JlIHRoZSBmaXJzdAorYnl0ZSBvZiBhbiBpbnZhbGlkIGJ5dGUgc2VxdWVuY2UuIEZvciBleGFtcGxlLCBgYGInXHhmZlxuJy5kZWNvZGUoJ2diMjMxMicsCisncmVwbGFjZScpYGAgbm93IHJldHVybnMgYSBgYFxuYGAgYWZ0ZXIgdGhlIHJlcGxhY2VtZW50IGNoYXJhY3Rlci4KKworKDppc3N1ZTpgMTIwMTZgKQorCitJbmNyZW1lbnRhbCBDSksgY29kZWMgZW5jb2RlcnMgYXJlIG5vIGxvbmdlciByZXNldCBhdCBlYWNoIGNhbGwgdG8gdGhlaXIKK2VuY29kZSgpIG1ldGhvZHMuIEZvciBleGFtcGxlOjoKKworICAgICQgLi9weXRob24gLXEKKyAgICA+Pj4gaW1wb3J0IGNvZGVjcworICAgID4+PiBlbmNvZGVyID0gY29kZWNzLmdldGluY3JlbWVudGFsZW5jb2RlcignaHonKSgnc3RyaWN0JykKKyAgICA+Pj4gYicnLmpvaW4oZW5jb2Rlci5lbmNvZGUoeCkgZm9yIHggaW4gJ1x1NTJmZlx1NjViZFx1NjViY1x1NGViYVx1MzAwMiBCeWUuJykKKyAgICBiJ357TnBKKWw2SEshI359IEJ5ZS4nCisKK1RoaXMgZXhhbXBsZSBnaXZlcyBgYGInfntOcH59fntKKX59fntsNn59fntIS359fnshI359IEJ5ZS4nYGAgd2l0aCBvbGRlciBQeXRob24KK3ZlcnNpb25zLgorCisoOmlzc3VlOmAxMjEwMGApCisKK1RoZSBgYHVuaWNvZGVfaW50ZXJuYWxgYCBjb2RlYyBoYXMgYmVlbiBkZXByZWNhdGVkLgorCisKK2NvbGxlY3Rpb25zCistLS0tLS0tLS0tLQorCitBZGRpdGlvbiBvZiBhIG5ldyA6Y2xhc3M6YH5jb2xsZWN0aW9ucy5DaGFpbk1hcGAgY2xhc3MgdG8gYWxsb3cgdHJlYXRpbmcgYQorbnVtYmVyIG9mIG1hcHBpbmdzIGFzIGEgc2luZ2xlIHVuaXQuCisKKyhXcml0dGVuIGJ5IFJheW1vbmQgSGV0dGluZ2VyIGZvciA6aXNzdWU6YDExMDg5YCwgbWFkZSBwdWJsaWMgaW4KKzppc3N1ZTpgMTEyOTdgKQorCitUaGUgYWJzdHJhY3QgYmFzZSBjbGFzc2VzIGhhdmUgYmVlbiBtb3ZlZCBpbiBhIG5ldyA6bW9kOmBjb2xsZWN0aW9ucy5hYmNgCittb2R1bGUsIHRvIGJldHRlciBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdGhlIGFic3RyYWN0IGFuZCB0aGUgY29uY3JldGUKK2NvbGxlY3Rpb25zIGNsYXNzZXMuICBBbGlhc2VzIGZvciBBQkNzIGFyZSBzdGlsbCBwcmVzZW50IGluIHRoZQorOm1vZDpgY29sbGVjdGlvbnNgIG1vZHVsZSB0byBwcmVzZXJ2ZSBleGlzdGluZyBpbXBvcnRzLgorCisoOmlzc3VlOmAxMTA4NWApCisKKy4uIFhYWCBhZGRpdGlvbiBvZiBfX3Nsb3RzX18gdG8gQUJDcyBub3QgcmVjb3JkZWQgaGVyZTogaW50ZXJuYWwgZGV0YWlsCisKKworY29udGV4dGxpYgorLS0tLS0tLS0tLQorCis6Y2xhc3M6YH5jb2xsZWN0aW9ucy5FeGl0U3RhY2tgIG5vdyBwcm92aWRlcyBhIHNvbGlkIGZvdW5kYXRpb24gZm9yCitwcm9ncmFtbWF0aWMgbWFuaXB1bGF0aW9uIG9mIGNvbnRleHQgbWFuYWdlcnMgYW5kIHNpbWlsYXIgY2xlYW51cAorZnVuY3Rpb25hbGl0eS4gVW5saWtlIHRoZSBwcmV2aW91cyBgYGNvbnRleHRsaWIubmVzdGVkYGAgQVBJICh3aGljaCB3YXMKK2RlcHJlY2F0ZWQgYW5kIHJlbW92ZWQpLCB0aGUgbmV3IEFQSSBpcyBkZXNpZ25lZCB0byB3b3JrIGNvcnJlY3RseQorcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGNvbnRleHQgbWFuYWdlcnMgYWNxdWlyZSB0aGVpciByZXNvdXJjZXMgaW4KK3RoZWlyIGBgX19pbml0X19gYCBtZXRob2QgKGZvciBleGFtcGxlLCBmaWxlIG9iamVjdHMpIG9yIGluIHRoZWlyCitgYF9fZW50ZXJfX2BgIG1ldGhvZCAoZm9yIGV4YW1wbGUsIHN5bmNocm9uaXNhdGlvbiBvYmplY3RzIGZyb20gdGhlCis6bW9kOmB0aHJlYWRpbmdgIG1vZHVsZSkuCisKKyg6aXNzdWU6YDEzNTg1YCkKKworCitjcnlwdAorLS0tLS0KKworQWRkaXRpb24gb2Ygc2FsdCBhbmQgbW9kdWxhciBjcnlwdCBmb3JtYXQgYW5kIHRoZSA6ZnVuYzpgfmNyeXB0Lm1rc2FsdGAKK2Z1bmN0aW9uIHRvIHRoZSA6bW9kOmBjcnlwdGAgbW9kdWxlLgorCisoOmlzc3VlOmAxMDkyNGApCisKK2N1cnNlcworLS0tLS0tCisKKyAqIElmIHRoZSA6bW9kOmBjdXJzZXNgIG1vZHVsZSBpcyBsaW5rZWQgdG8gdGhlIG5jdXJzZXN3IGxpYnJhcnksIHVzZSBVbmljb2RlCisgICBmdW5jdGlvbnMgd2hlbiBVbmljb2RlIHN0cmluZ3Mgb3IgY2hhcmFjdGVycyBhcmUgcGFzc2VkIChlLmcuCisgICA6YzpmdW5jOmB3YWRkd3N0cmApLCBhbmQgYnl0ZXMgZnVuY3Rpb25zIG90aGVyd2lzZSAoZS5nLiA6YzpmdW5jOmB3YWRkc3RyYCkuCisgKiBVc2UgdGhlIGxvY2FsZSBlbmNvZGluZyBpbnN0ZWFkIG9mIGBgdXRmLThgYCB0byBlbmNvZGUgVW5pY29kZSBzdHJpbmdzLgorICogOmNsYXNzOmBjdXJzZXMud2luZG93YCBoYXMgYSBuZXcgOmF0dHI6YGN1cnNlcy53aW5kb3cuZW5jb2RpbmdgIGF0dHJpYnV0ZS4KKyAqIFRoZSA6Y2xhc3M6YGN1cnNlcy53aW5kb3dgIGNsYXNzIGhhcyBhIG5ldyA6bWV0aDpgfmN1cnNlcy53aW5kb3cuZ2V0X3djaGAKKyAgIG1ldGhvZCB0byBnZXQgYSB3aWRlIGNoYXJhY3RlcgorICogVGhlIDptb2Q6YGN1cnNlc2AgbW9kdWxlIGhhcyBhIG5ldyA6bWV0aDpgfmN1cnNlcy51bmdldF93Y2hgIGZ1bmN0aW9uIHRvCisgICBwdXNoIGEgd2lkZSBjaGFyYWN0ZXIgc28gdGhlIG5leHQgOm1ldGg6YH5jdXJzZXMud2luZG93LmdldF93Y2hgIHdpbGwgcmV0dXJuCisgICBpdAorCisoQ29udHJpYnV0ZWQgYnkgScOxaWdvIFNlcm5hIGluIDppc3N1ZTpgNjc1NWApCisKK2RlY2ltYWwKKy0tLS0tLS0KKworOmlzc3VlOmA3NjUyYCAtIGludGVncmF0ZSBmYXN0IG5hdGl2ZSBkZWNpbWFsIGFyaXRobWV0aWMuCisgICBDLW1vZHVsZSBhbmQgbGlibXBkZWMgd3JpdHRlbiBieSBTdGVmYW4gS3JhaC4KKworVGhlIG5ldyBDIHZlcnNpb24gb2YgdGhlIGRlY2ltYWwgbW9kdWxlIGludGVncmF0ZXMgdGhlIGhpZ2ggc3BlZWQgbGlibXBkZWMKK2xpYnJhcnkgZm9yIGFyYml0cmFyeSBwcmVjaXNpb24gY29ycmVjdGx5LXJvdW5kZWQgZGVjaW1hbCBmbG9hdGluZyBwb2ludAorYXJpdGhtZXRpYy4gbGlibXBkZWMgY29uZm9ybXMgdG8gSUJNJ3MgR2VuZXJhbCBEZWNpbWFsIEFyaXRobWV0aWMgU3BlY2lmaWNhdGlvbi4KKworUGVyZm9ybWFuY2UgZ2FpbnMgcmFuZ2UgZnJvbSAxMHggZm9yIGRhdGFiYXNlIGFwcGxpY2F0aW9ucyB0byAxMDB4IGZvcgorbnVtZXJpY2FsbHkgaW50ZW5zaXZlIGFwcGxpY2F0aW9ucy4gVGhlc2UgbnVtYmVycyBhcmUgZXhwZWN0ZWQgZ2FpbnMKK2ZvciBzdGFuZGFyZCBwcmVjaXNpb25zIHVzZWQgaW4gZGVjaW1hbCBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljLiBTaW5jZQordGhlIHByZWNpc2lvbiBpcyB1c2VyIGNvbmZpZ3VyYWJsZSwgdGhlIGV4YWN0IGZpZ3VyZXMgbWF5IHZhcnkuIEZvciBleGFtcGxlLAoraW4gaW50ZWdlciBiaWdudW0gYXJpdGhtZXRpYyB0aGUgZGlmZmVyZW5jZXMgY2FuIGJlIHNpZ25pZmljYW50bHkgaGlnaGVyLgorCitUaGUgZm9sbG93aW5nIHRhYmxlIGlzIG1lYW50IGFzIGFuIGlsbHVzdHJhdGlvbi4gQmVuY2htYXJrcyBhcmUgYXZhaWxhYmxlCithdCBodHRwOi8vd3d3LmJ5dGVyZWVmLm9yZy9tcGRlY2ltYWwvcXVpY2tzdGFydC5odG1sLgorCisgICArLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSsKKyAgIHwgICAgICAgICB8ICBkZWNpbWFsLnB5IHwgICBfZGVjaW1hbCAgIHwgICBzcGVlZHVwICAgfAorICAgKz09PT09PT09PSs9PT09PT09PT09PT09Kz09PT09PT09PT09PT09Kz09PT09PT09PT09PT0rCisgICB8ICAgcGkgICAgfCAgICAzOC44OXMgICB8ICAgIDAuMzhzICAgICB8ICAgIDEwMHggICAgIHwKKyAgICstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKworICAgfCB0ZWxjbyAgIHwgICAxNzIuMTlzICAgfCAgICA1LjY4cyAgICAgfCAgICAgMzB4ICAgICB8CisgICArLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSsKKyAgIHwgcHN5Y29wZyB8ICAgICAzLjU3cyAgIHwgICAgMC4yOXMgICAgIHwgICAgIDEyeCAgICAgfAorICAgKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rCisKK0ZlYXR1cmVzCit+fn5+fn5+fgorCisqIFRoZSA6ZXhjOmB+ZGVjaW1hbC5GbG9hdE9wZXJhdGlvbmAgc2lnbmFsIG9wdGlvbmFsbHkgZW5hYmxlcyBzdHJpY3RlcgorICBzZW1hbnRpY3MgZm9yIG1peGluZyBmbG9hdHMgYW5kIERlY2ltYWxzLgorCisqIElmIFB5dGhvbiBpcyBjb21waWxlZCB3aXRob3V0IHRocmVhZHMsIHRoZSBDIHZlcnNpb24gYXV0b21hdGljYWxseQorICBkaXNhYmxlcyB0aGUgZXhwZW5zaXZlIHRocmVhZCBsb2NhbCBjb250ZXh0IG1hY2hpbmVyeS4gSW4gdGhpcyBjYXNlLAorICB0aGUgdmFyaWFibGUgOmRhdGE6YH5kZWNpbWFsLkhBVkVfVEhSRUFEU2AgaXMgc2V0IHRvIEZhbHNlLgorCitBUEkgY2hhbmdlcworfn5+fn5+fn5+fn4KKworKiBUaGUgQyBtb2R1bGUgaGFzIHRoZSBmb2xsb3dpbmcgY29udGV4dCBsaW1pdHMsIGRlcGVuZGluZyBvbiB0aGUgbWFjaGluZQorICBhcmNoaXRlY3R1cmU6CisKKyAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgMzItYml0ICAgICAgICB8ICAgICAgICAgICAgNjQtYml0ICAgICAgICAgICAgfAorICAgKz09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKKyAgIHwgOmNvbnN0OmBNQVhfUFJFQ2AgfCA6Y29uc3Q6YDQyNTAwMDAwMGAgIHwgOmNvbnN0OmA5OTk5OTk5OTk5OTk5OTk5OTlgICB8CisgICArLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKworICAgfCA6Y29uc3Q6YE1BWF9FTUFYYCB8IDpjb25zdDpgNDI1MDAwMDAwYCAgfCA6Y29uc3Q6YDk5OTk5OTk5OTk5OTk5OTk5OWAgIHwKKyAgICstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCisgICB8IDpjb25zdDpgTUlOX0VNSU5gIHwgOmNvbnN0OmAtNDI1MDAwMDAwYCB8IDpjb25zdDpgLTk5OTk5OTk5OTk5OTk5OTk5OWAgfAorICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKworKiBJbiB0aGUgY29udGV4dCB0ZW1wbGF0ZXMgKDpjbGFzczpgfmRlY2ltYWwuRGVmYXVsdENvbnRleHRgLAorICA6Y2xhc3M6YH5kZWNpbWFsLkJhc2ljQ29udGV4dGAgYW5kIDpjbGFzczpgfmRlY2ltYWwuRXh0ZW5kZWRDb250ZXh0YCkKKyAgdGhlIG1hZ25pdHVkZSBvZiA6YXR0cjpgfmRlY2ltYWwuQ29udGV4dC5FbWF4YCBhbmQKKyAgOmF0dHI6YH5kZWNpbWFsLkNvbnRleHQuRW1pbmAgaGFzIGNoYW5nZWQgdG8gOmNvbnN0OmA5OTk5OTlgLgorCisqIFRoZSA6Y2xhc3M6YH5kZWNpbWFsLkRlY2ltYWxgIGNvbnN0cnVjdG9yIGluIGRlY2ltYWwucHkgZG9lcyBub3Qgb2JzZXJ2ZQorICB0aGUgY29udGV4dCBsaW1pdHMgYW5kIGNvbnZlcnRzIHZhbHVlcyB3aXRoIGFyYml0cmFyeSBleHBvbmVudHMgb3IgcHJlY2lzaW9uCisgIGV4YWN0bHkuIFNpbmNlIHRoZSBDIHZlcnNpb24gaGFzIGludGVybmFsIGxpbWl0cywgdGhlIGZvbGxvd2luZyBzY2hlbWUgaXMKKyAgdXNlZDogSWYgcG9zc2libGUsIHZhbHVlcyBhcmUgY29udmVydGVkIGV4YWN0bHksIG90aGVyd2lzZQorICA6ZXhjOmB+ZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uYCBpcyByYWlzZWQgYW5kIHRoZSByZXN1bHQgaXMgTmFOLiBJbiB0aGUKKyAgbGF0dGVyIGNhc2UgaXQgaXMgYWx3YXlzIHBvc3NpYmxlIHRvIHVzZSA6bWV0aDpgfmRlY2ltYWwuQ29udGV4dC5jcmVhdGVfZGVjaW1hbGAKKyAgaW4gb3JkZXIgdG8gb2J0YWluIGEgcm91bmRlZCBvciBpbmV4YWN0IHZhbHVlLgorCisKKyogVGhlIHBvd2VyIGZ1bmN0aW9uIGluIGRlY2ltYWwucHkgaXMgYWx3YXlzIGNvcnJlY3RseS1yb3VuZGVkLiBJbiB0aGUKKyAgQyB2ZXJzaW9uLCBpdCBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHRoZSBjb3JyZWN0bHktcm91bmRlZAorICA6bWV0aDpgfmRlY2ltYWwuRGVjaW1hbC5leHBgIGFuZCA6bWV0aDpgfmRlY2ltYWwuRGVjaW1hbC5sbmAgZnVuY3Rpb25zLAorICBidXQgdGhlIGZpbmFsIHJlc3VsdCBpcyBvbmx5ICJhbG1vc3QgYWx3YXlzIGNvcnJlY3RseSByb3VuZGVkIi4KKworCisqIEluIHRoZSBDIHZlcnNpb24sIHRoZSBjb250ZXh0IGRpY3Rpb25hcnkgY29udGFpbmluZyB0aGUgc2lnbmFscyBpcyBhCisgIDpjbGFzczpgfmNvbGxlY3Rpb25zLmFiYy5NdXRhYmxlTWFwcGluZ2AuICBGb3Igc3BlZWQgcmVhc29ucywKKyAgOmF0dHI6YH5kZWNpbWFsLkNvbnRleHQuZmxhZ3NgIGFuZCA6YXR0cjpgfmRlY2ltYWwuQ29udGV4dC50cmFwc2AgYWx3YXlzCisgIHJlZmVyIHRvIHRoZSBzYW1lIDpjbGFzczpgfmNvbGxlY3Rpb25zLmFiYy5NdXRhYmxlTWFwcGluZ2AgdGhhdCB0aGUgY29udGV4dAorICB3YXMgaW5pdGlhbGl6ZWQgd2l0aC4gSWYgYSBuZXcgc2lnbmFsIGRpY3Rpb25hcnkgaXMgYXNzaWduZWQsCisgIDphdHRyOmB+ZGVjaW1hbC5Db250ZXh0LmZsYWdzYCBhbmQgOmF0dHI6YH5kZWNpbWFsLkNvbnRleHQudHJhcHNgCisgIGFyZSB1cGRhdGVkIHdpdGggdGhlIG5ldyB2YWx1ZXMsIGJ1dCB0aGV5IGRvIG5vdCByZWZlcmVuY2UgdGhlIFJIUworICBkaWN0aW9uYXJ5LgorCisKKyogUGlja2xpbmcgYSA6Y2xhc3M6YH5kZWNpbWFsLkNvbnRleHRgIHByb2R1Y2VzIGEgZGlmZmVyZW50IG91dHB1dCBpbiBvcmRlcgorICB0byBoYXZlIGEgY29tbW9uIGludGVyY2hhbmdlIGZvcm1hdCBmb3IgdGhlIFB5dGhvbiBhbmQgQyB2ZXJzaW9ucy4KKworCisqIFRoZSBvcmRlciBvZiBhcmd1bWVudHMgaW4gdGhlIDpjbGFzczpgfmRlY2ltYWwuQ29udGV4dGAgY29uc3RydWN0b3IgaGFzIGJlZW4KKyAgY2hhbmdlZCB0byBtYXRjaCB0aGUgb3JkZXIgZGlzcGxheWVkIGJ5IDpmdW5jOmByZXByYC4KKworCitmYXVsdGhhbmRsZXIKKy0tLS0tLS0tLS0tLQorCitOZXcgbW9kdWxlOiA6bW9kOmBmYXVsdGhhbmRsZXJgLgorCisgKiA6ZW52dmFyOmBQWVRIT05GQVVMVEhBTkRMRVJgCisgKiA6b3B0aW9uOmAtWGAgYGBmYXVsdGhhbmRsZXJgYAorCitmdHBsaWIKKy0tLS0tLQorCitUaGUgOmNsYXNzOmB+ZnRwbGliLkZUUF9UTFNgIGNsYXNzIG5vdyBwcm92aWRlcyBhIG5ldworOmZ1bmM6YH5mdHBsaWIuRlRQX1RMUy5jY2NgIGZ1bmN0aW9uIHRvIHJldmVydCBjb250cm9sIGNoYW5uZWwgYmFjayB0bworcGxhaW50ZXh0LiAgVGhpcyBjYW4gYmUgdXNlZnVsIHRvIHRha2UgYWR2YW50YWdlIG9mIGZpcmV3YWxscyB0aGF0IGtub3cgaG93IHRvCitoYW5kbGUgTkFUIHdpdGggbm9uLXNlY3VyZSBGVFAgd2l0aG91dCBvcGVuaW5nIGZpeGVkIHBvcnRzLgorCisoQ29udHJpYnV0ZWQgYnkgR2lhbXBhb2xvIFJvZG9sw6AgaW4gOmlzc3VlOmAxMjEzOWApCisKKworaG1hYworLS0tLQorCitBIG5ldyA6ZnVuYzpgfmhtYWMuY29tcGFyZV9kaWdlc3RgIGZ1bmN0aW9uIGhhcyBiZWVuIGFkZGVkIHRvIHByZXZlbnQKK3NpZGUgY2hhbm5lbCBhdHRhY2tzIG9uIGRpZ2VzdHMgdGhyb3VnaCB0aW1pbmcgYW5hbHlzaXMuCisKKyhDb250cmlidXRlZCBieSBOaWNrIENvZ2hsYW4gYW5kIENocmlzdGlhbiBIZWltZXMgaW4gaXNzdWU6YDE1MDYxYCkKKworCitpbWFwbGliCistLS0tLS0tCisKK1RoZSA6Y2xhc3M6YH5pbWFwbGliLklNQVA0X1NTTGAgY29uc3RydWN0b3Igbm93IGFjY2VwdHMgYW4gU1NMQ29udGV4dAorcGFyYW1ldGVyIHRvIGNvbnRyb2wgcGFyYW1ldGVycyBvZiB0aGUgc2VjdXJlIGNoYW5uZWwuCisKKyhDb250cmlidXRlZCBieSBTaWppbiBKb3NlcGggaW4gOmlzc3VlOmA4ODA4YCkKKworCitpbnNwZWN0CistLS0tLS0tCisKK0EgbmV3IDpmdW5jOmB+aW5zcGVjdC5nZXRjbG9zdXJldmFyc2AgZnVuY3Rpb24gaGFzIGJlZW4gYWRkZWQuIFRoaXMgZnVuY3Rpb24KK3JlcG9ydHMgdGhlIGN1cnJlbnQgYmluZGluZyBvZiBhbGwgbmFtZXMgcmVmZXJlbmNlZCBmcm9tIHRoZSBmdW5jdGlvbiBib2R5IGFuZAord2hlcmUgdGhvc2UgbmFtZXMgd2VyZSByZXNvbHZlZCwgbWFraW5nIGl0IGVhc2llciB0byB2ZXJpZnkgY29ycmVjdCBpbnRlcm5hbAorc3RhdGUgd2hlbiB0ZXN0aW5nIGNvZGUgdGhhdCByZWxpZXMgb24gc3RhdGVmdWwgY2xvc3VyZXMuCisKKyhDb250cmlidXRlZCBieSBNZWFkb3IgSW5nZSBhbmQgTmljayBDb2dobGFuIGluIDppc3N1ZTpgMTMwNjJgKQorCitBIG5ldyA6ZnVuYzpgfmluc3BlY3QuZ2V0Z2VuZXJhdG9ybG9jYWxzYCBmdW5jdGlvbiBoYXMgYmVlbiBhZGRlZC4gVGhpcworZnVuY3Rpb24gcmVwb3J0cyB0aGUgY3VycmVudCBiaW5kaW5nIG9mIGxvY2FsIHZhcmlhYmxlcyBpbiB0aGUgZ2VuZXJhdG9yJ3MKK3N0YWNrIGZyYW1lLCBtYWtpbmcgaXQgZWFzaWVyIHRvIHZlcmlmeSBjb3JyZWN0IGludGVybmFsIHN0YXRlIHdoZW4gdGVzdGluZworZ2VuZXJhdG9ycy4KKworKENvbnRyaWJ1dGVkIGJ5IE1lYWRvciBJbmdlIGluIDppc3N1ZTpgMTUxNTNgKQorCitpbworLS0KKworVGhlIDpmdW5jOmB+aW8ub3BlbmAgZnVuY3Rpb24gaGFzIGEgbmV3IGBgJ3gnYGAgbW9kZSB0aGF0IGNhbiBiZSB1c2VkIHRvCitleGNsdXNpdmVseSBjcmVhdGUgYSBuZXcgZmlsZSwgYW5kIHJhaXNlIGEgOmV4YzpgRmlsZUV4aXN0c0Vycm9yYCBpZiB0aGUgZmlsZQorYWxyZWFkeSBleGlzdHMuIEl0IGlzIGJhc2VkIG9uIHRoZSBDMTEgJ3gnIG1vZGUgdG8gZm9wZW4oKS4KKworKENvbnRyaWJ1dGVkIGJ5IERhdmlkIFRvd25zaGVuZCBpbiA6aXNzdWU6YDEyNzYwYCkKKworCitpcGFkZHJlc3MKKy0tLS0tLS0tLQorCitUaGUgbmV3IDptb2Q6YGlwYWRkcmVzc2AgbW9kdWxlIHByb3ZpZGVzIHRvb2xzIGZvciBjcmVhdGluZyBhbmQgbWFuaXB1bGF0aW5nCitvYmplY3RzIHJlcHJlc2VudGluZyBJUHY0IGFuZCBJUHY2IGFkZHJlc3NlcywgbmV0d29ya3MgYW5kIGludGVyZmFjZXMgKGkuZS4KK2FuIElQIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgSVAgc3VibmV0KS4KKworKENvbnRyaWJ1dGVkIGJ5IEdvb2dsZSBhbmQgUGV0ZXIgTW9vZHkgaW4gOnBlcDpgMzE0NGApCisKK2x6bWEKKy0tLS0KKworVGhlIG5ld2x5LWFkZGVkIDptb2Q6YGx6bWFgIG1vZHVsZSBwcm92aWRlcyBkYXRhIGNvbXByZXNzaW9uIGFuZCBkZWNvbXByZXNzaW9uCit1c2luZyB0aGUgTFpNQSBhbGdvcml0aG0sIGluY2x1ZGluZyBzdXBwb3J0IGZvciB0aGUgYGAueHpgYCBhbmQgYGAubHptYWBgCitmaWxlIGZvcm1hdHMuCisKKyhDb250cmlidXRlZCBieSBOYWRlZW0gVmF3ZGEgYW5kIFBlciDDmHl2aW5kIEthcmxzZW4gaW4gOmlzc3VlOmA2NzE1YCkKKworCittYXRoCistLS0tCisKK1RoZSA6bW9kOmBtYXRoYCBtb2R1bGUgaGFzIGEgbmV3IGZ1bmN0aW9uOgorCisgICogOmZ1bmM6YH5tYXRoLmxvZzJgOiByZXR1cm4gdGhlIGJhc2UtMiBsb2dhcml0aG0gb2YgKngqCisgICAgKFdyaXR0ZW4gYnkgTWFyayBEaWNraW5zb24gaW4gOmlzc3VlOmAxMTg4OGApLgorCisKK211bHRpcHJvY2Vzc2luZworLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBuZXcgOmZ1bmM6YG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uLndhaXRgIGZ1bmN0aW9uIGFsbG93cyB0byBwb2xsCittdWx0aXBsZSBvYmplY3RzIChzdWNoIGFzIGNvbm5lY3Rpb25zLCBzb2NrZXRzIGFuZCBwaXBlcykgd2l0aCBhIHRpbWVvdXQuCisoQ29udHJpYnV0ZWQgYnkgUmljaGFyZCBPdWRrZXJrIGluIDppc3N1ZTpgMTIzMjhgLikKKworOmNsYXNzOmBtdWx0aXByb2Nlc3NpbmcuQ29ubmVjdGlvbmAgb2JqZWN0cyBjYW4gbm93IGJlIHRyYW5zZmVycmVkIG92ZXIKK211bHRpcHJvY2Vzc2luZyBjb25uZWN0aW9ucy4KKyhDb250cmlidXRlZCBieSBSaWNoYXJkIE91ZGtlcmsgaW4gOmlzc3VlOmA0ODkyYC4pCisKKworbm50cGxpYgorLS0tLS0tLQorCitUaGUgOmNsYXNzOmBubnRwbGliLk5OVFBgIGNsYXNzIG5vdyBzdXBwb3J0cyB0aGUgY29udGV4dCBtYW5hZ2VyIHByb3RvY29sIHRvCit1bmNvbmRpdGlvbmFsbHkgY29uc3VtZSA6ZXhjOmBzb2NrZXQuZXJyb3JgIGV4Y2VwdGlvbnMgYW5kIHRvIGNsb3NlIHRoZSBOTlRQCitjb25uZWN0aW9uIHdoZW4gZG9uZTo6CisKKyAgPj4+IGZyb20gbm50cGxpYiBpbXBvcnQgTk5UUAorICA+Pj4gd2l0aCBOTlRQKCduZXdzLmdtYW5lLm9yZycpIGFzIG46CisgIC4uLiAgICAgbi5ncm91cCgnZ21hbmUuY29tcC5weXRob24uY29tbWl0dGVycycpCisgIC4uLgorICAoJzIxMSAxNzU1IDEgMTc1NSBnbWFuZS5jb21wLnB5dGhvbi5jb21taXR0ZXJzJywgMTc1NSwgMSwgMTc1NSwgJ2dtYW5lLmNvbXAucHl0aG9uLmNvbW1pdHRlcnMnKQorICA+Pj4KKworKENvbnRyaWJ1dGVkIGJ5IEdpYW1wYW9sbyBSb2RvbMOgIGluIDppc3N1ZTpgOTc5NWApCisKKworb3MKKy0tCisKKyogVGhlIDptb2Q6YG9zYCBtb2R1bGUgaGFzIGEgbmV3IDpmdW5jOmB+b3MucGlwZTJgIGZ1bmN0aW9uIHRoYXQgbWFrZXMgaXQKKyAgcG9zc2libGUgdG8gY3JlYXRlIGEgcGlwZSB3aXRoIDpkYXRhOmB+b3MuT19DTE9FWEVDYCBvcgorICA6ZGF0YTpgfm9zLk9fTk9OQkxPQ0tgIGZsYWdzIHNldCBhdG9taWNhbGx5LiBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVsIHRvCisgIGF2b2lkIHJhY2UgY29uZGl0aW9ucyBpbiBtdWx0aS10aHJlYWRlZCBwcm9ncmFtcy4KKworKiBUaGUgOm1vZDpgb3NgIG1vZHVsZSBoYXMgYSBuZXcgOmZ1bmM6YH5vcy5zZW5kZmlsZWAgZnVuY3Rpb24gd2hpY2ggcHJvdmlkZXMKKyAgYW4gZWZmaWNlbnQgInplcm8tY29weSIgd2F5IGZvciBjb3B5aW5nIGRhdGEgZnJvbSBvbmUgZmlsZSAob3Igc29ja2V0KQorICBkZXNjcmlwdG9yIHRvIGFub3RoZXIuIFRoZSBwaHJhc2UgInplcm8tY29weSIgcmVmZXJzIHRvIHRoZSBmYWN0IHRoYXQgYWxsIG9mCisgIHRoZSBjb3B5aW5nIG9mIGRhdGEgYmV0d2VlbiB0aGUgdHdvIGRlc2NyaXB0b3JzIGlzIGRvbmUgZW50aXJlbHkgYnkgdGhlCisgIGtlcm5lbCwgd2l0aCBubyBjb3B5aW5nIG9mIGRhdGEgaW50byB1c2Vyc3BhY2UgYnVmZmVycy4gOmZ1bmM6YH5vcy5zZW5kZmlsZWAKKyAgY2FuIGJlIHVzZWQgdG8gZWZmaWNpZW50bHkgY29weSBkYXRhIGZyb20gYSBmaWxlIG9uIGRpc2sgdG8gYSBuZXR3b3JrIHNvY2tldCwKKyAgZS5nLiBmb3IgZG93bmxvYWRpbmcgYSBmaWxlLgorCisgIChQYXRjaCBzdWJtaXR0ZWQgYnkgUm9zcyBMYWdlcndhbGwgYW5kIEdpYW1wYW9sbyBSb2RvbMOgIGluIDppc3N1ZTpgMTA4ODJgLikKKworKiBUaGUgOm1vZDpgb3NgIG1vZHVsZSBoYXMgdHdvIG5ldyBmdW5jdGlvbnM6IDpmdW5jOmB+b3MuZ2V0cHJpb3JpdHlgIGFuZAorICA6ZnVuYzpgfm9zLnNldHByaW9yaXR5YC4gVGhleSBjYW4gYmUgdXNlZCB0byBnZXQgb3Igc2V0IHByb2Nlc3MKKyAgbmljZW5lc3MvcHJpb3JpdHkgaW4gYSBmYXNoaW9uIHNpbWlsYXIgdG8gOmZ1bmM6YG9zLm5pY2VgIGJ1dCBleHRlbmRlZCB0byBhbGwKKyAgcHJvY2Vzc2VzIGluc3RlYWQgb2YganVzdCB0aGUgY3VycmVudCBvbmUuCisKKyAgKFBhdGNoIHN1Ym1pdHRlZCBieSBHaWFtcGFvbG8gUm9kb2zDoCBpbiA6aXNzdWU6YDEwNzg0YC4pCisKKyogVGhlIDptb2Q6YG9zYCBtb2R1bGUgaGFzIGEgbmV3IDpmdW5jOmB+b3MuZndhbGtgIGZ1bmN0aW9uIHNpbWlsYXIgdG8KKyAgOmZ1bmM6YH5vcy53YWxrYCBleGNlcHQgdGhhdCBpdCBhbHNvIHlpZWxkcyBmaWxlIGRlc2NyaXB0b3JzIHJlZmVycmluZyB0byB0aGUKKyAgZGlyZWN0b3JpZXMgdmlzaXRlZC4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCB0byBhdm9pZCBzeW1saW5rIHJhY2VzLgorCisqIFRoZSBuZXcgOmZ1bmM6YG9zLnJlcGxhY2VgIGZ1bmN0aW9uIGFsbG93cyBjcm9zcy1wbGF0Zm9ybSByZW5hbWluZyBvZiBhCisgIGZpbGUgd2l0aCBvdmVyd3JpdGluZyB0aGUgZGVzdGluYXRpb24uICBXaXRoIDpmdW5jOmBvcy5yZW5hbWVgLCBhbiBleGlzdGluZworICBkZXN0aW5hdGlvbiBmaWxlIGlzIG92ZXJ3cml0dGVuIHVuZGVyIFBPU0lYLCBidXQgcmFpc2VzIGFuIGVycm9yIHVuZGVyCisgIFdpbmRvd3MuCisgIChDb250cmlidXRlZCBieSBBbnRvaW5lIFBpdHJvdSBpbiA6aXNzdWU6YDg4MjhgLikKKworKiBUaGUgbmV3IDpmdW5jOmBvcy5nZXRfdGVybWluYWxfc2l6ZWAgZnVuY3Rpb24gcXVlcmllcyB0aGUgc2l6ZSBvZiB0aGUKKyAgdGVybWluYWwgYXR0YWNoZWQgdG8gYSBmaWxlIGRlc2NyaXB0b3IuCisgIChDb250cmlidXRlZCBieSBaYmlnbmlldyBKxJlkcnplamV3c2tpLVN6bWVrIGluIDppc3N1ZTpgMTM2MDlgLikKKworLi4gWFhYIHNvcnQgb3V0IHRoaXMgbWVzcyBhZnRlciBiZXRhMQorCisgICogImF0IiBmdW5jdGlvbnMgKDppc3N1ZTpgNDc2MWApOgorCisgICAgKiA6ZnVuYzpgfm9zLmZhY2Nlc3NhdGAKKyAgICAqIDpmdW5jOmB+b3MuZmNobW9kYXRgCisgICAgKiA6ZnVuYzpgfm9zLmZjaG93bmF0YAorICAgICogOmZ1bmM6YH5vcy5mc3RhdGF0YAorICAgICogOmZ1bmM6YH5vcy5mdXRpbWVzYXRgCisgICAgKiA6ZnVuYzpgfm9zLmxpbmthdGAKKyAgICAqIDpmdW5jOmB+b3MubWtkaXJhdGAKKyAgICAqIDpmdW5jOmB+b3MubWtmaWZvYXRgCisgICAgKiA6ZnVuYzpgfm9zLm1rbm9kYXRgCisgICAgKiA6ZnVuYzpgfm9zLm9wZW5hdGAKKyAgICAqIDpmdW5jOmB+b3MucmVhZGxpbmthdGAKKyAgICAqIDpmdW5jOmB+b3MucmVuYW1lYXRgCisgICAgKiA6ZnVuYzpgfm9zLnN5bWxpbmthdGAKKyAgICAqIDpmdW5jOmB+b3MudW5saW5rYXRgCisgICAgKiA6ZnVuYzpgfm9zLnV0aW1lbnNhdGAKKworICAqIGV4dGVuZGVkIGF0dHJpYnV0ZXMgKDppc3N1ZTpgMTI3MjBgKToKKworICAgICogOmZ1bmM6YH5vcy5mZ2V0eGF0dHJgCisgICAgKiA6ZnVuYzpgfm9zLmZsaXN0eGF0dHJgCisgICAgKiA6ZnVuYzpgfm9zLmZyZW1vdmV4YXR0cmAKKyAgICAqIDpmdW5jOmB+b3MuZnNldHhhdHRyYAorICAgICogOmZ1bmM6YH5vcy5nZXR4YXR0cmAKKyAgICAqIDpmdW5jOmB+b3MubGdldHhhdHRyYAorICAgICogOmZ1bmM6YH5vcy5saXN0eGF0dHJgCisgICAgKiA6ZnVuYzpgfm9zLmxsaXN0eGF0dHJgCisgICAgKiA6ZnVuYzpgfm9zLmxyZW1vdmV4YXR0cmAKKyAgICAqIDpmdW5jOmB+b3MubHNldHhhdHRyYAorICAgICogOmZ1bmM6YH5vcy5yZW1vdmV4YXR0cmAKKyAgICAqIDpmdW5jOmB+b3Muc2V0eGF0dHJgCisKKyAgKiBTY2hlZHVsZXIgZnVuY3Rpb25zICg6aXNzdWU6YDEyNjU1YCk6CisKKyAgICAqIDpmdW5jOmB+b3Muc2NoZWRfZ2V0X3ByaW9yaXR5X21heGAKKyAgICAqIDpmdW5jOmB+b3Muc2NoZWRfZ2V0X3ByaW9yaXR5X21pbmAKKyAgICAqIDpmdW5jOmB+b3Muc2NoZWRfZ2V0YWZmaW5pdHlgCisgICAgKiA6ZnVuYzpgfm9zLnNjaGVkX2dldHBhcmFtYAorICAgICogOmZ1bmM6YH5vcy5zY2hlZF9nZXRzY2hlZHVsZXJgCisgICAgKiA6ZnVuYzpgfm9zLnNjaGVkX3JyX2dldF9pbnRlcnZhbGAKKyAgICAqIDpmdW5jOmB+b3Muc2NoZWRfc2V0YWZmaW5pdHlgCisgICAgKiA6ZnVuYzpgfm9zLnNjaGVkX3NldHBhcmFtYAorICAgICogOmZ1bmM6YH5vcy5zY2hlZF9zZXRzY2hlZHVsZXJgCisgICAgKiA6ZnVuYzpgfm9zLnNjaGVkX3lpZWxkYAorCisgICogQWRkIHNvbWUgZXh0cmEgcG9zaXggZnVuY3Rpb25zIHRvIHRoZSBvcyBtb2R1bGUgKDppc3N1ZTpgMTA4MTJgKToKKworICAgICogOmZ1bmM6YH5vcy5mZXhlY3ZlYAorICAgICogOmZ1bmM6YH5vcy5mdXRpbWVuc2AKKyAgICAqIDpmdW5jOmB+b3MuZnV0aW1lc2AKKyAgICAqIDpmdW5jOmB+b3MubG9ja2ZgCisgICAgKiA6ZnVuYzpgfm9zLmx1dGltZXNgCisgICAgKiA6ZnVuYzpgfm9zLnBvc2l4X2ZhZHZpc2VgCisgICAgKiA6ZnVuYzpgfm9zLnBvc2l4X2ZhbGxvY2F0ZWAKKyAgICAqIDpmdW5jOmB+b3MucHJlYWRgCisgICAgKiA6ZnVuYzpgfm9zLnB3cml0ZWAKKyAgICAqIDpmdW5jOmB+b3MucmVhZHZgCisgICAgKiA6ZnVuYzpgfm9zLnN5bmNgCisgICAgKiA6ZnVuYzpgfm9zLnRydW5jYXRlYAorICAgICogOmZ1bmM6YH5vcy53YWl0aWRgCisgICAgKiA6ZnVuYzpgfm9zLndyaXRldmAKKworICAqIE90aGVyIG5ldyBmdW5jdGlvbnM6CisKKyAgICAqIDpmdW5jOmB+b3MuZmxpc3RkaXJgICg6aXNzdWU6YDEwNzU1YCkKKyAgICAqIDpmdW5jOmB+b3MuZ2V0Z3JvdXBsaXN0YCAoOmlzc3VlOmA5MzQ0YCkKKworCitwZGIKKy0tLQorCisqIFRhYi1jb21wbGV0aW9uIGlzIG5vdyBhdmFpbGFibGUgbm90IG9ubHkgZm9yIGNvbW1hbmQgbmFtZXMsIGJ1dCBhbHNvIHRoZWlyCisgIGFyZ3VtZW50cy4gIEZvciBleGFtcGxlLCBmb3IgdGhlIGBgYnJlYWtgYCBjb21tYW5kLCBmdW5jdGlvbiBhbmQgZmlsZSBuYW1lcworICBhcmUgY29tcGxldGVkLiAgKENvbnRyaWJ1dGVkIGJ5IEdlb3JnIEJyYW5kbCBpbiA6aXNzdWU6YDE0MjEwYCkKKworCitwaWNrbGUKKy0tLS0tLQorCis6Y2xhc3M6YHBpY2tsZS5QaWNrbGVyYCBvYmplY3RzIG5vdyBoYXZlIGFuIG9wdGlvbmFsCis6YXR0cjpgfnBpY2tsZS5QaWNrbGVyLmRpc3BhdGNoX3RhYmxlYCBhdHRyaWJ1dGUgYWxsb3dpbmcgdG8gc2V0IHBlci1waWNrbGVyCityZWR1Y3Rpb24gZnVuY3Rpb25zLgorKENvbnRyaWJ1dGVkIGJ5IFJpY2hhcmQgT3Vka2VyayBpbiA6aXNzdWU6YDE0MTY2YC4pCisKKworcHlkb2MKKy0tLS0tCisKK1RoZSBUayBHVUkgYW5kIHRoZSA6ZnVuYzpgfnB5ZG9jLnNlcnZlYCBmdW5jdGlvbiBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZQorOm1vZDpgcHlkb2NgIG1vZHVsZTogYGBweWRvYyAtZ2BgIGFuZCA6ZnVuYzpgfnB5ZG9jLnNlcnZlYCBoYXZlIGJlZW4gZGVwcmVjYXRlZAoraW4gUHl0aG9uIDMuMi4KKworCityZQorLS0KKworOmNsYXNzOmBzdHJgIHJlZ3VsYXIgZXhwcmVzc2lvbnMgbm93IHN1cHBvcnQgYGBcdWBgIGFuZCBgYFxVYGAgZXNjYXBlcy4KKworKENvbnRyaWJ1dGVkIGJ5IFNlcmhpeSBTdG9yY2hha2EgaW4gOmlzc3VlOmAzNjY1YC4pCisKKworc2NoZWQKKy0tLS0tCisKKyogOm1ldGg6YH5zY2hlZC5zY2hlZHVsZXIucnVuYCBub3cgYWNjZXB0cyBhICpibG9ja2luZyogcGFyYW1ldGVyIHdoaWNoIHdoZW4KKyAgc2V0IHRvIEZhbHNlIG1ha2VzIHRoZSBtZXRob2QgZXhlY3V0ZSB0aGUgc2NoZWR1bGVkIGV2ZW50cyBkdWUgdG8gZXhwaXJlCisgIHNvb25lc3QgKGlmIGFueSkgYW5kIHRoZW4gcmV0dXJuIGltbWVkaWF0ZWx5LgorICBUaGlzIGlzIHVzZWZ1bCBpbiBjYXNlIHlvdSB3YW50IHRvIHVzZSB0aGUgOmNsYXNzOmB+c2NoZWQuc2NoZWR1bGVyYCBpbgorICBub24tYmxvY2tpbmcgYXBwbGljYXRpb25zLiAgKENvbnRyaWJ1dGVkIGJ5IEdpYW1wYW9sbyBSb2RvbMOgIGluIDppc3N1ZTpgMTM0NDlgKQorCisqIDpjbGFzczpgfnNjaGVkLnNjaGVkdWxlcmAgY2xhc3MgY2FuIG5vdyBiZSBzYWZlbHkgdXNlZCBpbiBtdWx0aS10aHJlYWRlZAorICBlbnZpcm9ubWVudHMuICAoQ29udHJpYnV0ZWQgYnkgSm9zaWFoIENhcmxzb24gYW5kIEdpYW1wYW9sbyBSb2RvbMOgIGluCisgIDppc3N1ZTpgODY4NGApCisKKyogKnRpbWVmdW5jKiBhbmQgKmRlbGF5ZnVuY3QqIHBhcmFtZXRlcnMgb2YgOmNsYXNzOmB+c2NoZWQuc2NoZWR1bGVyYCBjbGFzcworICBjb25zdHJ1Y3RvciBhcmUgbm93IG9wdGlvbmFsIGFuZCBkZWZhdWx0cyB0byA6ZnVuYzpgdGltZS50aW1lYCBhbmQKKyAgOmZ1bmM6YHRpbWUuc2xlZXBgIHJlc3BlY3RpdmVseS4gIChDb250cmlidXRlZCBieSBDaHJpcyBDbGFyayBpbgorICA6aXNzdWU6YDEzMjQ1YCkKKworKiA6bWV0aDpgfnNjaGVkLnNjaGVkdWxlci5lbnRlcmAgYW5kIDptZXRoOmB+c2NoZWQuc2NoZWR1bGVyLmVudGVyYWJzYAorICAqYXJndW1lbnQqIHBhcmFtZXRlciBpcyBub3cgb3B0aW9uYWwuICAoQ29udHJpYnV0ZWQgYnkgQ2hyaXMgQ2xhcmsgaW4KKyAgOmlzc3VlOmAxMzI0NWApCisKKyogOm1ldGg6YH5zY2hlZC5zY2hlZHVsZXIuZW50ZXJgIGFuZCA6bWV0aDpgfnNjaGVkLnNjaGVkdWxlci5lbnRlcmFic2AKKyAgbm93IGFjY2VwdCBhICprd2FyZ3MqIHBhcmFtZXRlci4gIChDb250cmlidXRlZCBieSBDaHJpcyBDbGFyayBpbgorICA6aXNzdWU6YDEzMjQ1YCkKKworCitzaHV0aWwKKy0tLS0tLQorCisqIFRoZSA6bW9kOmBzaHV0aWxgIG1vZHVsZSBoYXMgdGhlc2UgbmV3IGZ1Y3Rpb25zOgorCisgICogOmZ1bmM6YH5zaHV0aWwuZGlza191c2FnZWA6IHByb3ZpZGVzIHRvdGFsLCB1c2VkIGFuZCBmcmVlIGRpc2sgc3BhY2UKKyAgICBzdGF0aXN0aWNzLiAoQ29udHJpYnV0ZWQgYnkgR2lhbXBhb2xvIFJvZG9sw6AgaW4gOmlzc3VlOmAxMjQ0MmApCisgICogOmZ1bmM6YH5zaHV0aWwuY2hvd25gOiBhbGxvd3Mgb25lIHRvIGNoYW5nZSB1c2VyIGFuZC9vciBncm91cCBvZiB0aGUgZ2l2ZW4KKyAgICBwYXRoIGFsc28gc3BlY2lmeWluZyB0aGUgdXNlci9ncm91cCBuYW1lcyBhbmQgbm90IG9ubHkgdGhlaXIgbnVtZXJpYworICAgIGlkcy4gKENvbnRyaWJ1dGVkIGJ5IFNhbmRybyBUb3NpIGluIDppc3N1ZTpgMTIxOTFgKQorCisqIFRoZSBuZXcgOmZ1bmM6YHNodXRpbC5nZXRfdGVybWluYWxfc2l6ZWAgZnVuY3Rpb24gcmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUKKyAgdGVybWluYWwgd2luZG93IHRoZSBpbnRlcnByZXRlciBpcyBhdHRhY2hlZCB0by4KKyAgKENvbnRyaWJ1dGVkIGJ5IFpiaWduaWV3IErEmWRyemVqZXdza2ktU3ptZWsgaW4gOmlzc3VlOmAxMzYwOWAuKQorCisqIFNldmVyYWwgZnVuY3Rpb25zIG5vdyB0YWtlIGFuIG9wdGlvbmFsIGBgc3ltbGlua3NgYCBhcmd1bWVudDogd2hlbiB0aGF0CisgIHBhcmFtZXRlciBpcyB0cnVlLCBzeW1saW5rcyBhcmVuJ3QgZGVyZWZlcmVuY2VkIGFuZCB0aGUgb3BlcmF0aW9uIGluc3RlYWQKKyAgYWN0cyBvbiB0aGUgc3ltbGluayBpdHNlbGYgKG9yIGNyZWF0ZXMgb25lLCBpZiByZWxldmFudCkuCisgIChDb250cmlidXRlZCBieSBIeW5layBTY2hsYXdhY2sgaW4gOmlzc3VlOmAxMjcxNWAuKQorCisqIDpmdW5jOmB+c2h1dGlsLnJtdHJlZWAgaXMgbm93IHJlc2lzdGFudCB0byBzeW1saW5rIGF0dGFja3Mgb24gcGxhdGZvcm1zCisgIHdoaWNoIHN1cHBvcnQgdGhlIG5ldyBgYGRpcl9mZGBgIHBhcmFtZXRlciBpbiA6ZnVuYzpgb3Mub3BlbmAgYW5kCisgIDpmdW5jOmBvcy51bmxpbmtgLiAoQ29udHJpYnV0ZWQgYnkgTWFydGluIHZvbiBMw7Z3aXMgYW5kIEh5bmVrIFNjaGxhd2FjaworICBpbiA6aXNzdWU6YDQ0ODlgLikKKworCisKK3NpZ25hbAorLS0tLS0tCisKKyogVGhlIDptb2Q6YHNpZ25hbGAgbW9kdWxlIGhhcyBuZXcgZnVuY3Rpb25zOgorCisgICogOmZ1bmM6YH5zaWduYWwucHRocmVhZF9zaWdtYXNrYDogZmV0Y2ggYW5kL29yIGNoYW5nZSB0aGUgc2lnbmFsIG1hc2sgb2YgdGhlCisgICAgY2FsbGluZyB0aHJlYWQgKENvbnRyaWJ1dGVkIGJ5IEplYW4tUGF1bCBDYWxkZXJvbmUgaW4gOmlzc3VlOmA4NDA3YCkgOworICAqIDpmdW5jOmB+c2lnbmFsLnB0aHJlYWRfa2lsbGA6IHNlbmQgYSBzaWduYWwgdG8gYSB0aHJlYWQgOworICAqIDpmdW5jOmB+c2lnbmFsLnNpZ3BlbmRpbmdgOiBleGFtaW5lIHBlbmRpbmcgZnVuY3Rpb25zIDsKKyAgKiA6ZnVuYzpgfnNpZ25hbC5zaWd3YWl0YDogd2FpdCBhIHNpZ25hbC4KKyAgKiA6ZnVuYzpgfnNpZ25hbC5zaWd3YWl0aW5mb2A6IHdhaXQgZm9yIGEgc2lnbmFsLCByZXR1cm5pbmcgZGV0YWlsZWQKKyAgICBpbmZvcm1hdGlvbiBhYm91dCBpdC4KKyAgKiA6ZnVuYzpgfnNpZ25hbC5zaWd0aW1lZHdhaXRgOiBsaWtlIDpmdW5jOmB+c2lnbmFsLnNpZ3dhaXRpbmZvYCBidXQgd2l0aCBhCisgICAgdGltZW91dC4KKworKiBUaGUgc2lnbmFsIGhhbmRsZXIgd3JpdGVzIHRoZSBzaWduYWwgbnVtYmVyIGFzIGEgc2luZ2xlIGJ5dGUgaW5zdGVhZCBvZgorICBhIG51bCBieXRlIGludG8gdGhlIHdha2V1cCBmaWxlIGRlc2NyaXB0b3IuIFNvIGl0IGlzIHBvc3NpYmxlIHRvIHdhaXQgbW9yZQorICB0aGFuIG9uZSBzaWduYWwgYW5kIGtub3cgd2hpY2ggc2lnbmFscyB3ZXJlIHJhaXNlZC4KKworKiA6ZnVuYzpgc2lnbmFsLnNpZ25hbGAgYW5kIDpmdW5jOmBzaWduYWwuc2lnaW50ZXJydXB0YCByYWlzZSBhbiBPU0Vycm9yLAorICBpbnN0ZWFkIG9mIGEgUnVudGltZUVycm9yOiBPU0Vycm9yIGhhcyBhbiBlcnJubyBhdHRyaWJ1dGUuCisKK3NtdHBsaWIKKy0tLS0tLS0KKworVGhlIDpjbGFzczpgfnNtdHBsaWIuU01UUF9TU0xgIGNvbnN0cnVjdG9yIGFuZCB0aGUgOm1ldGg6YH5zbXRwbGliLlNNVFAuc3RhcnR0bHNgCittZXRob2Qgbm93IGFjY2VwdCBhbiBTU0xDb250ZXh0IHBhcmFtZXRlciB0byBjb250cm9sIHBhcmFtZXRlcnMgb2YgdGhlIHNlY3VyZQorY2hhbm5lbC4KKworKENvbnRyaWJ1dGVkIGJ5IEthc3VuIEhlcmF0aCBpbiA6aXNzdWU6YDg4MDlgKQorCisKK3NvY2tldAorLS0tLS0tCisKKyogVGhlIDpjbGFzczpgfnNvY2tldC5zb2NrZXRgIGNsYXNzIG5vdyBleHBvc2VzIGFkZGl0aW9uYWwgbWV0aG9kcyB0byBwcm9jZXNzCisgIGFuY2lsbGFyeSBkYXRhIHdoZW4gc3VwcG9ydGVkIGJ5IHRoZSB1bmRlcmx5aW5nIHBsYXRmb3JtOgorCisgICogOmZ1bmM6YH5zb2NrZXQuc29ja2V0LnNlbmRtc2dgCisgICogOmZ1bmM6YH5zb2NrZXQuc29ja2V0LnJlY3Ztc2dgCisgICogOmZ1bmM6YH5zb2NrZXQuc29ja2V0LnJlY3Ztc2dfaW50b2AKKworICAoQ29udHJpYnV0ZWQgYnkgRGF2aWQgV2F0c29uIGluIDppc3N1ZTpgNjU2MGAsIGJhc2VkIG9uIGFuIGVhcmxpZXIgcGF0Y2ggYnkKKyAgSGVpa28gV3VuZHJhbSkKKworKiBUaGUgOmNsYXNzOmB+c29ja2V0LnNvY2tldGAgY2xhc3Mgbm93IHN1cHBvcnRzIHRoZSBQRl9DQU4gcHJvdG9jb2wgZmFtaWx5CisgIChodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NvY2tldGNhbiksIG9uIExpbnV4CisgIChodHRwOi8vbHduLm5ldC9BcnRpY2xlcy8yNTM0MjUpLgorCisgIChDb250cmlidXRlZCBieSBNYXR0aGlhcyBGdWNocywgdXBkYXRlZCBieSBUaWFnbyBHb27Dp2FsdmVzIGluIDppc3N1ZTpgMTAxNDFgKQorCisqIFRoZSA6Y2xhc3M6YH5zb2NrZXQuc29ja2V0YCBjbGFzcyBub3cgc3VwcG9ydHMgdGhlIFBGX1JEUyBwcm90b2NvbCBmYW1pbHkKKyAgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUmVsaWFibGVfRGF0YWdyYW1fU29ja2V0cyBhbmQKKyAgaHR0cDovL29zcy5vcmFjbGUuY29tL3Byb2plY3RzL3Jkcy8pLgorCisKK3NzbAorLS0tCisKKyogVGhlIDptb2Q6YHNzbGAgbW9kdWxlIGhhcyB0d28gbmV3IHJhbmRvbSBnZW5lcmF0aW9uIGZ1bmN0aW9uczoKKworICAqIDpmdW5jOmB+c3NsLlJBTkRfYnl0ZXNgOiBnZW5lcmF0ZSBjcnlwdG9ncmFwaGljYWxseSBzdHJvbmcKKyAgICBwc2V1ZG8tcmFuZG9tIGJ5dGVzLgorICAqIDpmdW5jOmB+c3NsLlJBTkRfcHNldWRvX2J5dGVzYDogZ2VuZXJhdGUgcHNldWRvLXJhbmRvbSBieXRlcy4KKworICAoQ29udHJpYnV0ZWQgYnkgVmljdG9yIFN0aW5uZXIgaW4gOmlzc3VlOmAxMjA0OWApCisKKyogVGhlIDptb2Q6YHNzbGAgbW9kdWxlIG5vdyBleHBvc2VzIGEgZmluZXItZ3JhaW5lZCBleGNlcHRpb24gaGllcmFyY2h5CisgIGluIG9yZGVyIHRvIG1ha2UgaXQgZWFzaWVyIHRvIGluc3BlY3QgdGhlIHZhcmlvdXMga2luZHMgb2YgZXJyb3JzLgorCisgIChDb250cmlidXRlZCBieSBBbnRvaW5lIFBpdHJvdSBpbiA6aXNzdWU6YDExMTgzYCkKKworKiA6bWV0aDpgfnNzbC5TU0xDb250ZXh0LmxvYWRfY2VydF9jaGFpbmAgbm93IGFjY2VwdHMgYSAqcGFzc3dvcmQqIGFyZ3VtZW50CisgIHRvIGJlIHVzZWQgaWYgdGhlIHByaXZhdGUga2V5IGlzIGVuY3J5cHRlZC4KKworICAoQ29udHJpYnV0ZWQgYnkgQWRhbSBTaW1wa2lucyBpbiA6aXNzdWU6YDEyODAzYCkKKworKiBEaWZmaWUtSGVsbG1hbiBrZXkgZXhjaGFuZ2UsIGJvdGggcmVndWxhciBhbmQgRWxsaXB0aWMgQ3VydmUtYmFzZWQsIGlzCisgIG5vdyBzdXBwb3J0ZWQgdGhyb3VnaCB0aGUgOm1ldGg6YH5zc2wuU1NMQ29udGV4dC5sb2FkX2RoX3BhcmFtc2AgYW5kCisgIDptZXRoOmB+c3NsLlNTTENvbnRleHQuc2V0X2VjZGhfY3VydmVgIG1ldGhvZHMuCisKKyAgKENvbnRyaWJ1dGVkIGJ5IEFudG9pbmUgUGl0cm91IGluIDppc3N1ZTpgMTM2MjZgIGFuZCA6aXNzdWU6YDEzNjI3YCkKKworKiBTU0wgc29ja2V0cyBoYXZlIGEgbmV3IDptZXRoOmB+c3NsLlNTTFNvY2tldC5nZXRfY2hhbm5lbF9iaW5kaW5nYCBtZXRob2QKKyAgYWxsb3dpbmcgdGhlIGltcGxlbWVudGF0aW9uIG9mIGNlcnRhaW4gYXV0aGVudGljYXRpb24gbWVjaGFuaXNtcyBzdWNoIGFzCisgIFNDUkFNLVNIQS0xLVBMVVMuCisKKyAgKENvbnRyaWJ1dGVkIGJ5IEphY2VrIEtvbmllY3pueSBpbiA6aXNzdWU6YDEyNTUxYCkKKworKiBZb3UgY2FuIHF1ZXJ5IHRoZSBTU0wgY29tcHJlc3Npb24gYWxnb3JpdGhtIHVzZWQgYnkgYW4gU1NMIHNvY2tldCwgdGhhbmtzCisgIHRvIGl0cyBuZXcgOm1ldGg6YH5zc2wuU1NMU29ja2V0LmNvbXByZXNzaW9uYCBtZXRob2QuCisKKyAgKENvbnRyaWJ1dGVkIGJ5IEFudG9pbmUgUGl0cm91IGluIDppc3N1ZTpgMTM2MzRgKQorCisqIFN1cHBvcnQgaGFzIGJlZW4gYWRkZWQgZm9yIHRoZSBOZXh0IFByb2NvdG9sIE5lZ290aWF0aW9uIGV4dGVuc2lvbiB1c2luZworICB0aGUgOm1ldGg6YHNzbC5TU0xDb250ZXh0LnNldF9ucG5fcHJvdG9jb2xzYCBtZXRob2QuCisKKyAgKENvbnRyaWJ1dGVkIGJ5IENvbGluIE1hcmMgaW4gOmlzc3VlOmAxNDIwNGApCisKKyogU1NMIGVycm9ycyBjYW4gbm93IGJlIGludHJvc3BlY3RlZCBtb3JlIGVhc2lseSB0aGFua3MgdG8KKyAgOmF0dHI6YH5zc2wuU1NMRXJyb3IubGlicmFyeWAgYW5kIDphdHRyOmB+c3NsLlNTTEVycm9yLnJlYXNvbmAgYXR0cmlidXRlcy4KKworICAoQ29udHJpYnV0ZWQgYnkgQW50b2luZSBQaXRyb3UgaW4gOmlzc3VlOmAxNDgzN2ApCisKK3N0YXQKKy0tLS0KKworLSBUaGUgdW5kb2N1bWVudGVkIHRhcmZpbGUuZmlsZW1vZGUgZnVuY3Rpb24gaGFzIGJlZW4gbW92ZWQgdG8KKyAgOmZ1bmM6YHN0YXQuZmlsZW1vZGVgLiBJdCBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IGEgZmlsZSdzIG1vZGUgdG8gYSBzdHJpbmcgb2YKKyAgdGhlIGZvcm0gJy1yd3hyd3hyd3gnLgorCisgIChDb250cmlidXRlZCBieSBHaWFtcGFvbG8gUm9kb2zDoCBpbiA6aXNzdWU6YDE0ODA3YCkKKworc3lzCistLS0KKworKiBUaGUgOm1vZDpgc3lzYCBtb2R1bGUgaGFzIGEgbmV3IDpkYXRhOmB+c3lzLnRocmVhZF9pbmZvYCA6dGVybTpgc3RydWN0CisgIHNlcXVlbmNlYCBob2xkaW5nIGluZm9ybWF0aW9ucyBhYm91dCB0aGUgdGhyZWFkIGltcGxlbWVudGF0aW9uLgorCisgICg6aXNzdWU6YDExMjIzYCkKKwordGV4dHdyYXAKKy0tLS0tLS0tCisKKyogVGhlIDptb2Q6YHRleHR3cmFwYCBtb2R1bGUgaGFzIGEgbmV3IDpmdW5jOmB+dGV4dHdyYXAuaW5kZW50YCB0aGF0IG1ha2VzCisgIGl0IHN0cmFpZ2h0Zm9yd2FyZCB0byBhZGQgYSBjb21tb24gcHJlZml4IHRvIHNlbGVjdGVkIGxpbmVzIGluIGEgYmxvY2sKKyAgb2YgdGV4dC4KKworICAoOmlzc3VlOmAxMzg1N2ApCisKK3RpbWUKKy0tLS0KKworVGhlIDpwZXA6YDQxOGAgYWRkZWQgbmV3IGZ1bmN0aW9ucyB0byB0aGUgOm1vZDpgdGltZWAgbW9kdWxlOgorCisqIDpmdW5jOmB+dGltZS5nZXRfY2xvY2tfaW5mb2A6IEdldCBpbmZvcm1hdGlvbiBvbiBhIGNsb2NrLgorKiA6ZnVuYzpgfnRpbWUubW9ub3RvbmljYDogTW9ub3RvbmljIGNsb2NrIChjYW5ub3QgZ28gYmFja3dhcmQpLCBub3QgYWZmZWN0ZWQKKyAgYnkgc3lzdGVtIGNsb2NrIHVwZGF0ZXMuCisqIDpmdW5jOmB+dGltZS5wZXJmX2NvdW50ZXJgOiBQZXJmb3JtYW5jZSBjb3VudGVyIHdpdGggdGhlIGhpZ2hlc3QgYXZhaWxhYmxlCisgIHJlc29sdXRpb24gdG8gbWVhc3VyZSBhIHNob3J0IGR1cmF0aW9uLgorKiA6ZnVuYzpgfnRpbWUucHJvY2Vzc190aW1lYDogU3VtIG9mIHRoZSBzeXN0ZW0gYW5kIHVzZXIgQ1BVIHRpbWUgb2YgdGhlCisgIGN1cnJlbnQgcHJvY2Vzcy4KKworT3RoZXIgbmV3IGZ1bmN0aW9uczoKKworKiA6ZnVuYzpgfnRpbWUuY2xvY2tfZ2V0cmVzYCwgOmZ1bmM6YH50aW1lLmNsb2NrX2dldHRpbWVgIGFuZAorICA6ZnVuYzpgfnRpbWUuY2xvY2tfc2V0dGltZWAgZnVuY3Rpb25zIHdpdGggYGBDTE9DS194eHhgYCBjb25zdGFudHMuCisgIChDb250cmlidXRlZCBieSBWaWN0b3IgU3Rpbm5lciBpbiA6aXNzdWU6YDEwMjc4YCkKKworCit0eXBlcworLS0tLS0KKworQWRkIGEgbmV3IDpjbGFzczpgdHlwZXMuTWFwcGluZ1Byb3h5VHlwZWAgY2xhc3M6IFJlYWQtb25seSBwcm94eSBvZiBhIG1hcHBpbmcuCisoOmlzc3VlOmAxNDM4NmApCisKKworVGhlIG5ldyBmdW5jdGlvbnMgYHR5cGVzLm5ld19jbGFzc2AgYW5kIGB0eXBlcy5wcmVwYXJlX2NsYXNzYCBwcm92aWRlIHN1cHBvcnQKK2ZvciBQRVAgMzExNSBjb21wbGlhbnQgZHluYW1pYyB0eXBlIGNyZWF0aW9uLiAoOmlzc3VlOmAxNDU4OGApCisKKwordXJsbGliCistLS0tLS0KKworVGhlIDpjbGFzczpgfnVybGxpYi5yZXF1ZXN0LlJlcXVlc3RgIGNsYXNzLCBub3cgYWNjZXB0cyBhICptZXRob2QqIGFyZ3VtZW50Cit1c2VkIGJ5IDptZXRoOmB+dXJsbGliLnJlcXVlc3QuUmVxdWVzdC5nZXRfbWV0aG9kYCB0byBkZXRlcm1pbmUgd2hhdCBIVFRQIG1ldGhvZAorc2hvdWxkIGJlIHVzZWQuICBGb3IgZXhhbXBsZSwgdGhpcyB3aWxsIHNlbmQgYSBgYCdIRUFEJ2BgIHJlcXVlc3Q6OgorCisgICA+Pj4gdXJsb3BlbihSZXF1ZXN0KCdodHRwOi8vd3d3LnB5dGhvbi5vcmcnLCBtZXRob2Q9J0hFQUQnKSkKKworKDppc3N1ZTpgMTY3MzAwN2ApCisKKword2ViYnJvd3NlcgorLS0tLS0tLS0tLQorCitUaGUgOm1vZDpgd2ViYnJvd3NlcmAgbW9kdWxlIHN1cHBvcnRzIG1vcmUgYnJvd3NlcnM6IEdvb2dsZSBDaHJvbWUgKG5hbWVkCis6cHJvZ3JhbTpgY2hyb21lYCwgOnByb2dyYW06YGNocm9taXVtYCwgOnByb2dyYW06YGNocm9tZS1icm93c2VyYCBvcgorOnByb2dyYW06YGNocm9taXVtLWJyb3dzZXJgIGRlcGVuZGluZyBvbiB0aGUgdmVyc2lvbiBhbmQgb3BlcmF0aW5nIHN5c3RlbSkgYXMKK3dlbGwgYXMgdGhlIHRoZSBnZW5lcmljIGxhdW5jaGVycyA6cHJvZ3JhbTpgeGRnLW9wZW5gIGZyb20gdGhlIEZyZWVEZXNrdG9wLm9yZworcHJvamVjdCBhbmQgOnByb2dyYW06YGd2ZnMtb3BlbmAgd2hpY2ggaXMgdGhlIGRlZmF1bHQgVVJJIGhhbmRsZXIgZm9yIEdOT01FIDMuCisKKyg6aXNzdWU6YDEzNjIwYCBhbmQgOmlzc3VlOmAxNDQ5M2ApCisKKworT3B0aW1pemF0aW9ucworPT09PT09PT09PT09PQorCitNYWpvciBwZXJmb3JtYW5jZSBlbmhhbmNlbWVudHMgaGF2ZSBiZWVuIGFkZGVkOgorCisqIFRoYW5rcyB0byA6cGVwOmAzOTNgLCBzb21lIG9wZXJhdGlvbnMgb24gVW5pY29kZSBzdHJpbmdzIGhhdmUgYmVlbiBvcHRpbWl6ZWQ6CisKKyAgKiB0aGUgbWVtb3J5IGZvb3RwcmludCBpcyBkaXZpZGVkIGJ5IDIgdG8gNCBkZXBlbmRpbmcgb24gdGhlIHRleHQKKyAgKiBlbmNvZGUgYW4gQVNDSUkgc3RyaW5nIHRvIFVURi04IGRvZXNuJ3QgbmVlZCB0byBlbmNvZGUgY2hhcmFjdGVycyBhbnltb3JlLAorICAgIHRoZSBVVEYtOCByZXByZXNlbnRhdGlvbiBpcyBzaGFyZWQgd2l0aCB0aGUgQVNDSUkgcmVwcmVzZW50YXRpb24KKyAgKiB0aGUgVVRGLTggZW5jb2RlciBoYXMgYmVlbiBvcHRpbWl6ZWQKKyAgKiByZXBlYXRpbmcgYSBzaW5nbGUgQVNDSUkgbGV0dGVyIGFuZCBnZXR0aW5nIGEgc3Vic3RyaW5nIG9mIGEgQVNDSUkgc3RyaW5ncworICAgIGlzIDQgdGltZXMgZmFzdGVyCisKKyogVVRGLTggaXMgbm93IDJ4IHRvIDR4IGZhc3Rlci4gIFVURi0xNiBlbmNvZGluZyBpcyBub3cgdXAgdG8gMTB4IGZhc3Rlci4KKworICAoY29udHJpYnV0ZWQgYnkgU2VyaGl5IFN0b3JjaGFrYSwgOmlzc3VlOmAxNDYyNGAsIDppc3N1ZTpgMTQ3MzhgIGFuZAorICA6aXNzdWU6YDE1MDI2YC4pCisKKworQnVpbGQgYW5kIEMgQVBJIENoYW5nZXMKKz09PT09PT09PT09PT09PT09PT09PT09CisKK0NoYW5nZXMgdG8gUHl0aG9uJ3MgYnVpbGQgcHJvY2VzcyBhbmQgdG8gdGhlIEMgQVBJIGluY2x1ZGU6CisKKyogTmV3IDpwZXA6YDMxMThgIHJlbGF0ZWQgZnVuY3Rpb246CisKKyAgKiA6YzpmdW5jOmBQeU1lbW9yeVZpZXdfRnJvbU1lbW9yeWAKKworKiA6cGVwOmAzOTNgIGFkZGVkIG5ldyBVbmljb2RlIHR5cGVzLCBtYWNyb3MgYW5kIGZ1bmN0aW9uczoKKworICAqIEhpZ2gtbGV2ZWwgQVBJOgorCisgICAgKiA6YzpmdW5jOmBQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnNgCisgICAgKiA6YzpmdW5jOmBQeVVuaWNvZGVfRmluZENoYXJgCisgICAgKiA6YzpmdW5jOmBQeVVuaWNvZGVfR2V0TGVuZ3RoYCwgOmM6bWFjcm86YFB5VW5pY29kZV9HRVRfTEVOR1RIYAorICAgICogOmM6ZnVuYzpgUHlVbmljb2RlX05ld2AKKyAgICAqIDpjOmZ1bmM6YFB5VW5pY29kZV9TdWJzdHJpbmdgCisgICAgKiA6YzpmdW5jOmBQeVVuaWNvZGVfUmVhZENoYXJgLCA6YzpmdW5jOmBQeVVuaWNvZGVfV3JpdGVDaGFyYAorCisgICogTG93LWxldmVsIEFQSToKKworICAgICogOmM6dHlwZTpgUHlfVUNTMWAsIDpjOnR5cGU6YFB5X1VDUzJgLCA6Yzp0eXBlOmBQeV9VQ1M0YCB0eXBlcworICAgICogOmM6dHlwZTpgUHlBU0NJSU9iamVjdGAgYW5kIDpjOnR5cGU6YFB5Q29tcGFjdFVuaWNvZGVPYmplY3RgIHN0cnVjdHVyZXMKKyAgICAqIDpjOm1hY3JvOmBQeVVuaWNvZGVfUkVBRFlgCisgICAgKiA6YzpmdW5jOmBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhYAorICAgICogOmM6ZnVuYzpgUHlVbmljb2RlX0FzVUNTNGAsIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc1VDUzRDb3B5YAorICAgICogOmM6bWFjcm86YFB5VW5pY29kZV9EQVRBYCwgOmM6bWFjcm86YFB5VW5pY29kZV8xQllURV9EQVRBYCwKKyAgICAgIDpjOm1hY3JvOmBQeVVuaWNvZGVfMkJZVEVfREFUQWAsIDpjOm1hY3JvOmBQeVVuaWNvZGVfNEJZVEVfREFUQWAKKyAgICAqIDpjOm1hY3JvOmBQeVVuaWNvZGVfS0lORGAgd2l0aCA6Yzp0eXBlOmBQeVVuaWNvZGVfS2luZGAgZW51bToKKyAgICAgIDpjOmRhdGE6YFB5VW5pY29kZV9XQ0hBUl9LSU5EYCwgOmM6ZGF0YTpgUHlVbmljb2RlXzFCWVRFX0tJTkRgLAorICAgICAgOmM6ZGF0YTpgUHlVbmljb2RlXzJCWVRFX0tJTkRgLCA6YzpkYXRhOmBQeVVuaWNvZGVfNEJZVEVfS0lORGAKKyAgICAqIDpjOm1hY3JvOmBQeVVuaWNvZGVfUkVBRGAsIDpjOm1hY3JvOmBQeVVuaWNvZGVfUkVBRF9DSEFSYCwgOmM6bWFjcm86YFB5VW5pY29kZV9XUklURWAKKyAgICAqIDpjOm1hY3JvOmBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUVgCisKKworCitEZXByZWNhdGVkCis9PT09PT09PT09CisKK1Vuc3VwcG9ydGVkIE9wZXJhdGluZyBTeXN0ZW1zCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitPUy8yIGFuZCBWTVMgYXJlIG5vIGxvbmdlciBzdXBwb3J0ZWQgZHVlIHRvIHRoZSBsYWNrIG9mIGEgbWFpbnRhaW5lci4KKworV2luZG93cyAyMDAwIGFuZCBXaW5kb3dzIHBsYXRmb3JtcyB3aGljaCBzZXQgYGBDT01TUEVDYGAgdG8gYGBjb21tYW5kLmNvbWBgCithcmUgbm8gbG9uZ2VyIHN1cHBvcnRlZCBkdWUgdG8gbWFpbnRlbmFuY2UgYnVyZGVuLgorCisKK0RlcHJlY2F0ZWQgUHl0aG9uIG1vZHVsZXMsIGZ1bmN0aW9ucyBhbmQgbWV0aG9kcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyogVGhlIGBgdW5pY29kZV9pbnRlcm5hbGBgIGNvZGVjIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYmVjYXVzZSBvZiB0aGUKKyAgOnBlcDpgMzkzYCwgdXNlIFVURi04LCBVVEYtMTYgKGBgdXRmLTE2LWxlYGAgb3IgYGB1dGYtMTYtYmVgYCksIG9yIFVURi0zMgorICAoYGB1dGYtMzItbGVgYCBvciBgYHV0Zi0zMi1iZWBgKQorKiA6bWV0aDpgZnRwbGliLkZUUC5ubHN0YCBhbmQgOm1ldGg6YGZ0cGxpYi5GVFAuZGlyYDogdXNlCisgIDptZXRoOmBmdHBsaWIuRlRQLm1sc2RgCisqIDpmdW5jOmBwbGF0Zm9ybS5wb3BlbmA6IHVzZSB0aGUgOm1vZDpgc3VicHJvY2Vzc2AgbW9kdWxlLiBDaGVjayBlc3BlY2lhbGx5CisgIHRoZSA6cmVmOmBzdWJwcm9jZXNzLXJlcGxhY2VtZW50c2Agc2VjdGlvbi4KKyogOmlzc3VlOmAxMzM3NGA6IFRoZSBXaW5kb3dzIGJ5dGVzIEFQSSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIHRoZSA6bW9kOmBvc2AKKyAgbW9kdWxlLiBVc2UgVW5pY29kZSBmaWxlbmFtZXMsIGluc3RlYWQgb2YgYnl0ZXMgZmlsZW5hbWVzLCB0byBub3QgZGVwZW5kIG9uCisgIHRoZSBBTlNJIGNvZGUgcGFnZSBhbnltb3JlIGFuZCB0byBzdXBwb3J0IGFueSBmaWxlbmFtZS4KKyogOmlzc3VlOmAxMzk4OGA6IFRoZSA6bW9kOmB4bWwuZXRyZWUuY0VsZW1lbnRUcmVlYCBtb2R1bGUgaXMgZGVwcmVjYXRlZC4gIFRoZQorICBhY2NlbGVyYXRvciBpcyB1c2VkIGF1dG9tYXRpY2FsbHkgd2hlbmV2ZXIgYXZhaWxhYmxlLgorKiBUaGUgYmVoYXZpb3VyIG9mIDpmdW5jOmB0aW1lLmNsb2NrYCBkZXBlbmRzIG9uIHRoZSBwbGF0Zm9ybTogdXNlIHRoZSBuZXcKKyAgOmZ1bmM6YHRpbWUucGVyZl9jb3VudGVyYCBvciA6ZnVuYzpgdGltZS5wcm9jZXNzX3RpbWVgIGZ1bmN0aW9uIGluc3RlYWQsCisgIGRlcGVuZGluZyBvbiB5b3VyIHJlcXVpcmVtZW50cywgdG8gaGF2ZSBhIHdlbGwgZGVmaW5lZCBiZWhhdmlvdXIuCisKKworRGVwcmVjYXRlZCBmdW5jdGlvbnMgYW5kIHR5cGVzIG9mIHRoZSBDIEFQSQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgOmM6dHlwZTpgUHlfVU5JQ09ERWAgaGFzIGJlZW4gZGVwcmVjYXRlZCBieSA6cGVwOmAzOTNgIGFuZCB3aWxsIGJlCityZW1vdmVkIGluIFB5dGhvbiA0LiBBbGwgZnVuY3Rpb25zIHVzaW5nIHRoaXMgdHlwZSBhcmUgZGVwcmVjYXRlZDoKKworVW5pY29kZSBmdW5jdGlvbnMgYW5kIG1ldGhvZHMgdXNpbmcgOmM6dHlwZTpgUHlfVU5JQ09ERWAgYW5kCis6Yzp0eXBlOmBQeV9VTklDT0RFKmAgdHlwZXM6CisKKyAqIDpjOm1hY3JvOmBQeVVuaWNvZGVfRnJvbVVuaWNvZGVgOiB1c2UgOmM6ZnVuYzpgUHlVbmljb2RlX0Zyb21XaWRlQ2hhcmAgb3IKKyAgIDpjOmZ1bmM6YFB5VW5pY29kZV9Gcm9tS2luZEFuZERhdGFgCisgKiA6YzptYWNybzpgUHlVbmljb2RlX0FTX1VOSUNPREVgLCA6YzpmdW5jOmBQeVVuaWNvZGVfQXNVbmljb2RlYCwKKyAgIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc1VuaWNvZGVBbmRTaXplYDogdXNlIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc1dpZGVDaGFyU3RyaW5nYAorICogOmM6bWFjcm86YFB5VW5pY29kZV9BU19EQVRBYDogdXNlIDpjOm1hY3JvOmBQeVVuaWNvZGVfREFUQWAgd2l0aAorICAgOmM6bWFjcm86YFB5VW5pY29kZV9SRUFEYCBhbmQgOmM6bWFjcm86YFB5VW5pY29kZV9XUklURWAKKyAqIDpjOm1hY3JvOmBQeVVuaWNvZGVfR0VUX1NJWkVgLCA6YzpmdW5jOmBQeVVuaWNvZGVfR2V0U2l6ZWA6IHVzZQorICAgOmM6bWFjcm86YFB5VW5pY29kZV9HRVRfTEVOR1RIYCBvciA6YzpmdW5jOmBQeVVuaWNvZGVfR2V0TGVuZ3RoYAorICogOmM6bWFjcm86YFB5VW5pY29kZV9HRVRfREFUQV9TSVpFYDogdXNlCisgICBgYFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikgKiBQeVVuaWNvZGVfS0lORChzdHIpYGAgKG9ubHkgd29yayBvbiByZWFkeQorICAgc3RyaW5ncykKKyAqIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc1VuaWNvZGVDb3B5YDogdXNlIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc1VDUzRDb3B5YCBvcgorICAgOmM6ZnVuYzpgUHlVbmljb2RlX0FzV2lkZUNoYXJTdHJpbmdgCisgKiA6YzpmdW5jOmBQeVVuaWNvZGVfR2V0TWF4YAorCisKK0Z1bmN0aW9ucyBhbmQgbWFjcm9zIG1hbmlwdWxhdGluZyBQeV9VTklDT0RFKiBzdHJpbmdzOgorCisgKiA6YzptYWNybzpgUHlfVU5JQ09ERV9zdHJsZW5gOiB1c2UgOmM6ZnVuYzpgUHlVbmljb2RlX0dldExlbmd0aGAgb3IKKyAgIDpjOm1hY3JvOmBQeVVuaWNvZGVfR0VUX0xFTkdUSGAKKyAqIDpjOm1hY3JvOmBQeV9VTklDT0RFX3N0cmNhdGA6IHVzZSA6YzpmdW5jOmBQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnNgIG9yCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfRnJvbUZvcm1hdGAKKyAqIDpjOm1hY3JvOmBQeV9VTklDT0RFX3N0cmNweWAsIDpjOm1hY3JvOmBQeV9VTklDT0RFX3N0cm5jcHlgLAorICAgOmM6bWFjcm86YFB5X1VOSUNPREVfQ09QWWA6IHVzZSA6YzpmdW5jOmBQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnNgIG9yCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfU3Vic3RyaW5nYAorICogOmM6bWFjcm86YFB5X1VOSUNPREVfc3RyY21wYDogdXNlIDpjOmZ1bmM6YFB5VW5pY29kZV9Db21wYXJlYAorICogOmM6bWFjcm86YFB5X1VOSUNPREVfc3RybmNtcGA6IHVzZSA6YzpmdW5jOmBQeVVuaWNvZGVfVGFpbG1hdGNoYAorICogOmM6bWFjcm86YFB5X1VOSUNPREVfc3RyY2hyYCwgOmM6bWFjcm86YFB5X1VOSUNPREVfc3RycmNocmA6IHVzZQorICAgOmM6ZnVuYzpgUHlVbmljb2RlX0ZpbmRDaGFyYAorICogOmM6bWFjcm86YFB5X1VOSUNPREVfRklMTGA6IHVzZSA6YzpmdW5jOmBQeVVuaWNvZGVfRmlsbGAKKyAqIDpjOm1hY3JvOmBQeV9VTklDT0RFX01BVENIYAorCitFbmNvZGVyczoKKworICogOmM6ZnVuYzpgUHlVbmljb2RlX0VuY29kZWA6IHVzZSA6YzpmdW5jOmBQeVVuaWNvZGVfQXNFbmNvZGVkT2JqZWN0YAorICogOmM6ZnVuYzpgUHlVbmljb2RlX0VuY29kZVVURjdgCisgKiA6YzpmdW5jOmBQeVVuaWNvZGVfRW5jb2RlVVRGOGA6IHVzZSA6YzpmdW5jOmBQeVVuaWNvZGVfQXNVVEY4YCBvcgorICAgOmM6ZnVuYzpgUHlVbmljb2RlX0FzVVRGOFN0cmluZ2AKKyAqIDpjOmZ1bmM6YFB5VW5pY29kZV9FbmNvZGVVVEYzMmAKKyAqIDpjOmZ1bmM6YFB5VW5pY29kZV9FbmNvZGVVVEYxNmAKKyAqIDpjOmZ1bmM6YFB5VW5pY29kZV9FbmNvZGVVbmljb2RlRXNjYXBlOmAgdXNlCisgICA6YzpmdW5jOmBQeVVuaWNvZGVfQXNVbmljb2RlRXNjYXBlU3RyaW5nYAorICogOmM6ZnVuYzpgUHlVbmljb2RlX0VuY29kZVJhd1VuaWNvZGVFc2NhcGU6YCB1c2UKKyAgIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc1Jhd1VuaWNvZGVFc2NhcGVTdHJpbmdgCisgKiA6YzpmdW5jOmBQeVVuaWNvZGVfRW5jb2RlTGF0aW4xYDogdXNlIDpjOmZ1bmM6YFB5VW5pY29kZV9Bc0xhdGluMVN0cmluZ2AKKyAqIDpjOmZ1bmM6YFB5VW5pY29kZV9FbmNvZGVBU0NJSWA6IHVzZSA6YzpmdW5jOmBQeVVuaWNvZGVfQXNBU0NJSVN0cmluZ2AKKyAqIDpjOmZ1bmM6YFB5VW5pY29kZV9FbmNvZGVDaGFybWFwYAorICogOmM6ZnVuYzpgUHlVbmljb2RlX1RyYW5zbGF0ZUNoYXJtYXBgCisgKiA6YzpmdW5jOmBQeVVuaWNvZGVfRW5jb2RlTUJDU2A6IHVzZSA6YzpmdW5jOmBQeVVuaWNvZGVfQXNNQkNTU3RyaW5nYCBvcgorICAgOmM6ZnVuYzpgUHlVbmljb2RlX0VuY29kZUNvZGVQYWdlYCAod2l0aCBgYENQX0FDUGBgIGNvZGVfcGFnZSkKKyAqIDpjOmZ1bmM6YFB5VW5pY29kZV9FbmNvZGVEZWNpbWFsYCwKKyAgIDpjOmZ1bmM6YFB5VW5pY29kZV9UcmFuc2Zvcm1EZWNpbWFsVG9BU0NJSWAKKworCitQb3J0aW5nIHRvIFB5dGhvbiAzLjMKKz09PT09PT09PT09PT09PT09PT09PQorCitUaGlzIHNlY3Rpb24gbGlzdHMgcHJldmlvdXNseSBkZXNjcmliZWQgY2hhbmdlcyBhbmQgb3RoZXIgYnVnZml4ZXMKK3RoYXQgbWF5IHJlcXVpcmUgY2hhbmdlcyB0byB5b3VyIGNvZGUuCisKK1BvcnRpbmcgUHl0aG9uIGNvZGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKworLi4gWFhYIGFkZCBhIHBvaW50IGFib3V0IGhhc2ggcmFuZG9taXphdGlvbiBhbmQgdGhhdCBpdCdzIGFsd2F5cyBvbiBpbiAzLjMKKworKiA6aXNzdWU6YDEyMzI2YDogT24gTGludXgsIHN5cy5wbGF0Zm9ybSBkb2Vzbid0IGNvbnRhaW4gdGhlIG1ham9yIHZlcnNpb24KKyAgYW55bW9yZS4gSXQgaXMgbm93IGFsd2F5cyAnbGludXgnLCBpbnN0ZWFkIG9mICdsaW51eDInIG9yICdsaW51eDMnIGRlcGVuZGluZworICBvbiB0aGUgTGludXggdmVyc2lvbiB1c2VkIHRvIGJ1aWxkIFB5dGhvbi4gUmVwbGFjZSBzeXMucGxhdGZvcm0gPT0gJ2xpbnV4MicKKyAgd2l0aCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgnKSwgb3IgZGlyZWN0bHkgc3lzLnBsYXRmb3JtID09ICdsaW51eCcgaWYKKyAgeW91IGRvbid0IG5lZWQgdG8gc3VwcG9ydCBvbGRlciBQeXRob24gdmVyc2lvbnMuCisKKyogOmlzc3VlOmAxMzg0N2AsIDppc3N1ZTpgMTQxODBgOiA6bW9kOmB0aW1lYCBhbmQgOm1vZDpgZGF0ZXRpbWVgOgorICA6ZXhjOmBPdmVyZmxvd0Vycm9yYCBpcyBub3cgcmFpc2VkIGluc3RlYWQgb2YgOmV4YzpgVmFsdWVFcnJvcmAgaWYgYQorICB0aW1lc3RhbXAgaXMgb3V0IG9mIHJhbmdlLiA6ZXhjOmBPU0Vycm9yYCBpcyBub3cgcmFpc2VkIGlmIEMgZnVuY3Rpb25zCisgIDpjOmZ1bmM6YGdtdGltZWAgb3IgOmM6ZnVuYzpgbG9jYWx0aW1lYCBmYWlsZWQuCisKKyogVGhlIGRlZmF1bHQgZmluZGVycyB1c2VkIGJ5IGltcG9ydCBub3cgdXRpbGl6ZSBhIGNhY2hlIG9mIHdoYXQgaXMgY29udGFpbmVkCisgIHdpdGhpbiBhIHNwZWNpZmljIGRpcmVjdG9yeS4gSWYgeW91IGNyZWF0ZSBhIFB5dGhvbiBzb3VyY2UgZmlsZSBvciBzb3VyY2VsZXNzCisgIGJ5dGVjb2RlIGZpbGUsIG1ha2Ugc3VyZSB0byBjYWxsIDpmdW5jOmBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXNgIHRvIGNsZWFyCisgIG91dCB0aGUgY2FjaGUgZm9yIHRoZSBmaW5kZXJzIHRvIG5vdGljZSB0aGUgbmV3IGZpbGUuCisKKyogOmV4YzpgSW1wb3J0RXJyb3JgIG5vdyB1c2VzIHRoZSBmdWxsIG5hbWUgb2YgdGhlIG1vZHVsZSB0aGF0IHdhcyBhdHRlbXBlZCB0bworICBiZSBpbXBvcnRlZC4gRG9jdGVzdHMgdGhhdCBjaGVjayBJbXBvcnRFcnJvcnMnIG1lc3NhZ2Ugd2lsbCBuZWVkIHRvIGJlCisgIHVwZGF0ZWQgdG8gdXNlIHRoZSBmdWxsIG5hbWUgb2YgdGhlIG1vZHVsZSBpbnN0ZWFkIG9mIGp1c3QgdGhlIHRhaWwgb2YgdGhlCisgIG5hbWUuCisKKyogVGhlICoqaW5kZXgqKiBhcmd1bWVudCB0byA6ZnVuYzpgX19pbXBvcnRfX2Agbm93IGRlZmF1bHRzIHRvIDAgaW5zdGVhZCBvZiAtMQorICBhbmQgbm8gbG9uZ2VyIHN1cHBvcnQgbmVnYXRpdmUgdmFsdWVzLiBJdCB3YXMgYW4gb3ZlcnNpZ2h0IHdoZW4gOnBlcDpgMzI4YCB3YXMKKyAgaW1wbGVtZW50ZWQgdGhhdCB0aGUgZGVmYXVsdCB2YWx1ZSByZW1haW5lZCAtMS4gSWYgeW91IG5lZWQgdG8gY29udGludWUgdG8KKyAgcGVyZm9ybSBhIHJlbGF0aXZlIGltcG9ydCBmb2xsb3dlZCBieSBhbiBhYnNvbHV0ZSBpbXBvcnQsIHRoZW4gcGVyZm9ybSB0aGUKKyAgcmVsYXRpdmUgaW1wb3J0IHVzaW5nIGFuIGluZGV4IG9mIDEsIGZvbGxvd2VkIGJ5IGFub3RoZXIgaW1wb3J0IHVzaW5nIGFuCisgIGluZGV4IG9mIDAuIEl0IGlzIHByZWZlcnJlZCwgdGhvdWdoLCB0aGF0IHlvdSB1c2UKKyAgOmZ1bmM6YGltcG9ydGxpYi5pbXBvcnRfbW9kdWxlYCByYXRoZXIgdGhhbiBjYWxsIDpmdW5jOmBfX2ltcG9ydF9fYCBkaXJlY3RseS4KKworKiA6ZnVuYzpgX19pbXBvcnRfX2Agbm8gbG9uZ2VyIGFsbG93cyBvbmUgdG8gdXNlIGFuIGluZGV4IHZhbHVlIG90aGVyIHRoYW4gMAorICBmb3IgdG9wLWxldmVsIG1vZHVsZXMuIEUuZy4gYGBfX2ltcG9ydF9fKCdzeXMnLCBsZXZlbD0xKWBgIGlzIG5vdyBhbiBlcnJvci4KKworKiBCZWNhdXNlIDphdHRyOmBzeXMubWV0YV9wYXRoYCBhbmQgOmF0dHI6YHN5cy5wYXRoX2hvb2tzYCBub3cgaGF2ZSBmaW5kZXJzIG9uCisgIHRoZW0gYnkgZGVmYXVsdCwgeW91IHdpbGwgbW9zdCBsaWtlbHkgd2FudCB0byB1c2UgOm1ldGg6YGxpc3QuaW5zZXJ0YCBpbnN0ZWFkCisgIG9mIDptZXRoOmBsaXN0LmFwcGVuZGAgdG8gYWRkIHRvIHRob3NlIGxpc3RzLgorCisqIEJlY2F1c2UgYGBOb25lYGAgaXMgbm93IGluc2VydGVkIGludG8gOmF0dHI6YHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlYCwgaWYgeW91CisgIGFyZSBjbGVhcmluZyBvdXQgZW50cmllcyBpbiB0aGUgZGljdGlvbmFyeSBvZiBwYXRocyB0aGF0IGRvIG5vdCBoYXZlIGEKKyAgZmluZGVyLCB5b3Ugd2lsbCBuZWVkIHRvIHJlbW92ZSBrZXlzIHBhaXJlZCB3aXRoIHZhbHVlcyBvZiBgYE5vbmVgYCAqKmFuZCoqCisgIDpjbGFzczpgaW1wLk51bGxJbXBvcnRlcmAgdG8gYmUgYmFja3dhcmRzLWNvbXBhdGlibGUuIFRoaXMgd2lsbCBuZWVkIHRvIGV4dHJhCisgIG92ZXJoZWFkIG9uIG9sZGVyIHZlcnNpb25zIG9mIFB5dGhvbiB0aGF0IHJlLWluc2VydCBgYE5vbmVgYCBpbnRvCisgIDphdHRyOmBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZWAgd2hlcmUgaXQgcmVwZXNlbnRzIHRoZSB1c2Ugb2YgaW1wbGljaXQKKyAgZmluZGVycywgYnV0IHNlbWFudGljYWxseSBpdCBzaG91bGQgbm90IGNoYW5nZSBhbnl0aGluZy4KKworKiA6bWV0aDpgaW1wb3J0bGliLmFiYy5Tb3VyY2VMb2FkZXIucGF0aF9tdGltZWAgaXMgbm93IGRlcHJlY2F0ZWQgaW4gZmF2b3VyIG9mCisgIDptZXRoOmBpbXBvcnRsaWIuYWJjLlNvdXJjZUxvYWRlci5wYXRoX3N0YXRzYCBhcyBieXRlY29kZSBmaWxlcyBub3cgc3RvcmUKKyAgYm90aCB0aGUgbW9kaWZpY2F0aW9uIHRpbWUgYW5kIHNpemUgb2YgdGhlIHNvdXJjZSBmaWxlIHRoZSBieXRlY29kZSBmaWxlIHdhcworICBjb21waWxlZCBmcm9tLgorCisKK1BvcnRpbmcgQyBjb2RlCistLS0tLS0tLS0tLS0tLQorCisqIEluIHRoZSBjb3Vyc2Ugb2YgY2hhbmdlcyB0byB0aGUgYnVmZmVyIEFQSSB0aGUgdW5kb2N1bWVudGVkCisgIDpjOm1lbWJlcjpgflB5X2J1ZmZlci5zbWFsbHRhYmxlYCBtZW1iZXIgb2YgdGhlCisgIDpjOnR5cGU6YFB5X2J1ZmZlcmAgc3RydWN0dXJlIGhhcyBiZWVuIHJlbW92ZWQgYW5kIHRoZQorICBsYXlvdXQgb2YgdGhlIDpjOnR5cGU6YFB5TWVtb3J5Vmlld09iamVjdGAgaGFzIGNoYW5nZWQuCisKKyAgQWxsIGV4dGVuc2lvbnMgcmVseWluZyBvbiB0aGUgcmVsZXZhbnQgcGFydHMgaW4gYGBtZW1vcnlvYmplY3QuaGBgCisgIG9yIGBgb2JqZWN0LmhgYCBtdXN0IGJlIHJlYnVpbHQuCisKKyogRHVlIHRvIDpyZWY6YFBFUCAzOTMgPHBlcC0zOTM+YCwgdGhlIDpjOnR5cGU6YFB5X1VOSUNPREVgIHR5cGUgYW5kIGFsbAorICBmdW5jdGlvbnMgdXNpbmcgdGhpcyB0eXBlIGFyZSBkZXByZWNhdGVkIChidXQgd2lsbCBzdGF5IGF2YWlsYWJsZSBmb3IKKyAgYXQgbGVhc3QgZml2ZSB5ZWFycykuICBJZiB5b3Ugd2VyZSB1c2luZyBsb3ctbGV2ZWwgVW5pY29kZSBBUElzIHRvCisgIGNvbnN0cnVjdCBhbmQgYWNjZXNzIHVuaWNvZGUgb2JqZWN0cyBhbmQgeW91IHdhbnQgdG8gYmVuZWZpdCBvZiB0aGUKKyAgbWVtb3J5IGZvb3RwcmludCByZWR1Y3Rpb24gcHJvdmlkZWQgYnkgUEVQIDM5MywgeW91IGhhdmUgdG8gY29udmVydAorICB5b3VyIGNvZGUgdG8gdGhlIG5ldyA6ZG9jOmBVbmljb2RlIEFQSSA8Li4vYy1hcGkvdW5pY29kZT5gLgorCisgIEhvd2V2ZXIsIGlmIHlvdSBvbmx5IGhhdmUgYmVlbiB1c2luZyBoaWdoLWxldmVsIGZ1bmN0aW9ucyBzdWNoIGFzCisgIDpjOmZ1bmM6YFB5VW5pY29kZV9Db25jYXQoKWAsIDpjOmZ1bmM6YFB5VW5pY29kZV9Kb2luYCBvcgorICA6YzpmdW5jOmBQeVVuaWNvZGVfRnJvbUZvcm1hdCgpYCwgeW91ciBjb2RlIHdpbGwgYXV0b21hdGljYWxseSB0YWtlCisgIGFkdmFudGFnZSBvZiB0aGUgbmV3IHVuaWNvZGUgcmVwcmVzZW50YXRpb25zLgorCitCdWlsZGluZyBDIGV4dGVuc2lvbnMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisqIFRoZSByYW5nZSBvZiBwb3NzaWJsZSBmaWxlIG5hbWVzIGZvciBDIGV4dGVuc2lvbnMgaGFzIGJlZW4gbmFycm93ZWQuCisgIFZlcnkgcmFyZWx5IHVzZWQgc3BlbGxpbmdzIGhhdmUgYmVlbiBzdXBwcmVzc2VkOiB1bmRlciBQT1NJWCwgZmlsZXMKKyAgbmFtZWQgYGB4eHhtb2R1bGUuc29gYCwgYGB4eHhtb2R1bGUuYWJpMy5zb2BgIGFuZAorICBgYHh4eG1vZHVsZS5jcHl0aG9uLSouc29gYCBhcmUgbm8gbG9uZ2VyIHJlY29nbml6ZWQgYXMgaW1wbGVtZW50aW5nCisgIHRoZSBgYHh4eGBgIG1vZHVsZS4gIElmIHlvdSBoYWQgYmVlbiBnZW5lcmF0aW5nIHN1Y2ggZmlsZXMsIHlvdSBoYXZlCisgIHRvIHN3aXRjaCB0byB0aGUgb3RoZXIgc3BlbGxpbmdzIChpLmUuLCByZW1vdmUgdGhlIGBgbW9kdWxlYGAgc3RyaW5nCisgIGZyb20gdGhlIGZpbGUgbmFtZXMpLgorCisgIChpbXBsZW1lbnRlZCBpbiA6aXNzdWU6YDE0MDQwYC4pCisKKworT3RoZXIgaXNzdWVzCistLS0tLS0tLS0tLS0KKworLi4gSXNzdWUgIzExNTkxOiBXaGVuIDpwcm9ncmFtOmBweXRob25gIHdhcyBzdGFydGVkIHdpdGggOm9wdGlvbjpgLVNgLAorICAgYGBpbXBvcnQgc2l0ZWBgIHdpbGwgbm90IGFkZCBzaXRlLXNwZWNpZmljIHBhdGhzIHRvIHRoZSBtb2R1bGUgc2VhcmNoCisgICBwYXRocy4gIEluIHByZXZpb3VzIHZlcnNpb25zLCBpdCBkaWQuICBTZWUgY2hhbmdlc2V0IGZvciBkb2MgY2hhbmdlcyBpbgorICAgdmFyaW91cyBmaWxlcy4gIENvbnRyaWJ1dGVkIGJ5IENhcmwgTWV5ZXIgd2l0aCBlZGl0aW9ucyBieSDDiXJpYyBBcmF1am8uCisKKy4uIElzc3VlICMxMDk5ODogdGhlIC1RIGNvbW1hbmQtbGluZSBmbGFnIGFuZCByZWxhdGVkIGFydGlmYWN0cyBoYXZlIGJlZW4KKyAgIHJlbW92ZWQuICBDb2RlIGNoZWNraW5nIHN5cy5mbGFncy5kaXZpc2lvbl93YXJuaW5nIHdpbGwgbmVlZCB1cGRhdGluZy4KKyAgIENvbnRyaWJ1dGVkIGJ5IMOJcmljIEFyYXVqby4KZGlmZiAtLWdpdCBhL0RvYy93aGF0c25ldy9pbmRleC5yc3QgYi9Eb2Mvd2hhdHNuZXcvaW5kZXgucnN0CmluZGV4IDgyMjBiZDIuLmM2MDgxOGEgMTAwNjQ0Ci0tLSBhL0RvYy93aGF0c25ldy9pbmRleC5yc3QKKysrIGIvRG9jL3doYXRzbmV3L2luZGV4LnJzdApAQCAtMTEsNiArMTEsNyBAQAogLi4gdG9jdHJlZTo6CiAgICA6bWF4ZGVwdGg6IDIKIAorICAgMy4zLnJzdAogICAgMy4yLnJzdAogICAgMy4xLnJzdAogICAgMy4wLnJzdApkaWZmIC0tZ2l0IGEvR3JhbW1hci9HcmFtbWFyIGIvR3JhbW1hci9HcmFtbWFyCmluZGV4IGNlYTY4ZGUuLmQ3YWFmZmQgMTAwNjQ0Ci0tLSBhL0dyYW1tYXIvR3JhbW1hcgorKysgYi9HcmFtbWFyL0dyYW1tYXIKQEAgLTEzLDcgKzEzLDcgQEAKICMgU3RhcnQgc3ltYm9scyBmb3IgdGhlIGdyYW1tYXI6CiAjICAgICAgIHNpbmdsZV9pbnB1dCBpcyBhIHNpbmdsZSBpbnRlcmFjdGl2ZSBzdGF0ZW1lbnQ7CiAjICAgICAgIGZpbGVfaW5wdXQgaXMgYSBtb2R1bGUgb3Igc2VxdWVuY2Ugb2YgY29tbWFuZHMgcmVhZCBmcm9tIGFuIGlucHV0IGZpbGU7Ci0jICAgICAgIGV2YWxfaW5wdXQgaXMgdGhlIGlucHV0IGZvciB0aGUgZXZhbCgpIGFuZCBpbnB1dCgpIGZ1bmN0aW9ucy4KKyMgICAgICAgZXZhbF9pbnB1dCBpcyB0aGUgaW5wdXQgZm9yIHRoZSBldmFsKCkgZnVuY3Rpb25zLgogIyBOQjogY29tcG91bmRfc3RtdCBpbiBzaW5nbGVfaW5wdXQgaXMgZm9sbG93ZWQgYnkgZXh0cmEgTkVXTElORSEKIHNpbmdsZV9pbnB1dDogTkVXTElORSB8IHNpbXBsZV9zdG10IHwgY29tcG91bmRfc3RtdCBORVdMSU5FCiBmaWxlX2lucHV0OiAoTkVXTElORSB8IHN0bXQpKiBFTkRNQVJLRVIKQEAgLTEyOSw0ICsxMjksNSBAQAogIyBub3QgdXNlZCBpbiBncmFtbWFyLCBidXQgbWF5IGFwcGVhciBpbiAibm9kZSIgcGFzc2VkIGZyb20gUGFyc2VyIHRvIENvbXBpbGVyCiBlbmNvZGluZ19kZWNsOiBOQU1FCiAKLXlpZWxkX2V4cHI6ICd5aWVsZCcgW3Rlc3RsaXN0XQoreWllbGRfZXhwcjogJ3lpZWxkJyBbeWllbGRfYXJnXQoreWllbGRfYXJnOiAnZnJvbScgdGVzdCB8IHRlc3RsaXN0CmRpZmYgLS1naXQgYS9JbmNsdWRlL1B5dGhvbi1hc3QuaCBiL0luY2x1ZGUvUHl0aG9uLWFzdC5oCmluZGV4IDBhZDc4OGIuLjdhZDZjYjMgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvUHl0aG9uLWFzdC5oCisrKyBiL0luY2x1ZGUvUHl0aG9uLWFzdC5oCkBAIC0zNiw2ICszNiw4IEBACiAKIHR5cGVkZWYgc3RydWN0IF9hbGlhcyAqYWxpYXNfdHk7CiAKK3R5cGVkZWYgc3RydWN0IF93aXRoaXRlbSAqd2l0aGl0ZW1fdHk7CisKIAogZW51bSBfbW9kX2tpbmQge01vZHVsZV9raW5kPTEsIEludGVyYWN0aXZlX2tpbmQ9MiwgRXhwcmVzc2lvbl9raW5kPTMsCiAgICAgICAgICAgICAgICAgIFN1aXRlX2tpbmQ9NH07CkBAIC02NCwxMCArNjYsOSBAQAogZW51bSBfc3RtdF9raW5kIHtGdW5jdGlvbkRlZl9raW5kPTEsIENsYXNzRGVmX2tpbmQ9MiwgUmV0dXJuX2tpbmQ9MywKICAgICAgICAgICAgICAgICAgIERlbGV0ZV9raW5kPTQsIEFzc2lnbl9raW5kPTUsIEF1Z0Fzc2lnbl9raW5kPTYsIEZvcl9raW5kPTcsCiAgICAgICAgICAgICAgICAgICBXaGlsZV9raW5kPTgsIElmX2tpbmQ9OSwgV2l0aF9raW5kPTEwLCBSYWlzZV9raW5kPTExLAotICAgICAgICAgICAgICAgICAgVHJ5RXhjZXB0X2tpbmQ9MTIsIFRyeUZpbmFsbHlfa2luZD0xMywgQXNzZXJ0X2tpbmQ9MTQsCi0gICAgICAgICAgICAgICAgICBJbXBvcnRfa2luZD0xNSwgSW1wb3J0RnJvbV9raW5kPTE2LCBHbG9iYWxfa2luZD0xNywKLSAgICAgICAgICAgICAgICAgIE5vbmxvY2FsX2tpbmQ9MTgsIEV4cHJfa2luZD0xOSwgUGFzc19raW5kPTIwLCBCcmVha19raW5kPTIxLAotICAgICAgICAgICAgICAgICAgQ29udGludWVfa2luZD0yMn07CisgICAgICAgICAgICAgICAgICBUcnlfa2luZD0xMiwgQXNzZXJ0X2tpbmQ9MTMsIEltcG9ydF9raW5kPTE0LAorICAgICAgICAgICAgICAgICAgSW1wb3J0RnJvbV9raW5kPTE1LCBHbG9iYWxfa2luZD0xNiwgTm9ubG9jYWxfa2luZD0xNywKKyAgICAgICAgICAgICAgICAgIEV4cHJfa2luZD0xOCwgUGFzc19raW5kPTE5LCBCcmVha19raW5kPTIwLCBDb250aW51ZV9raW5kPTIxfTsKIHN0cnVjdCBfc3RtdCB7CiAgICAgICAgIGVudW0gX3N0bXRfa2luZCBraW5kOwogICAgICAgICB1bmlvbiB7CkBAIC0xMjgsOCArMTI5LDcgQEAKICAgICAgICAgICAgICAgICB9IElmOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIHN0cnVjdCB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBleHByX3R5IGNvbnRleHRfZXhwcjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJfdHkgb3B0aW9uYWxfdmFyczsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzZGxfc2VxICppdGVtczsKICAgICAgICAgICAgICAgICAgICAgICAgIGFzZGxfc2VxICpib2R5OwogICAgICAgICAgICAgICAgIH0gV2l0aDsKICAgICAgICAgICAgICAgICAKQEAgLTE0MiwxMiArMTQyLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGFzZGxfc2VxICpib2R5OwogICAgICAgICAgICAgICAgICAgICAgICAgYXNkbF9zZXEgKmhhbmRsZXJzOwogICAgICAgICAgICAgICAgICAgICAgICAgYXNkbF9zZXEgKm9yZWxzZTsKLSAgICAgICAgICAgICAgICB9IFRyeUV4Y2VwdDsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgICAgICAgICAgICAgYXNkbF9zZXEgKmJvZHk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhc2RsX3NlcSAqZmluYWxib2R5OwotICAgICAgICAgICAgICAgIH0gVHJ5RmluYWxseTsKKyAgICAgICAgICAgICAgICB9IFRyeTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICAgZXhwcl90eSB0ZXN0OwpAQCAtMTg0LDEwICsxODAsMTAgQEAKIGVudW0gX2V4cHJfa2luZCB7Qm9vbE9wX2tpbmQ9MSwgQmluT3Bfa2luZD0yLCBVbmFyeU9wX2tpbmQ9MywgTGFtYmRhX2tpbmQ9NCwKICAgICAgICAgICAgICAgICAgIElmRXhwX2tpbmQ9NSwgRGljdF9raW5kPTYsIFNldF9raW5kPTcsIExpc3RDb21wX2tpbmQ9OCwKICAgICAgICAgICAgICAgICAgIFNldENvbXBfa2luZD05LCBEaWN0Q29tcF9raW5kPTEwLCBHZW5lcmF0b3JFeHBfa2luZD0xMSwKLSAgICAgICAgICAgICAgICAgIFlpZWxkX2tpbmQ9MTIsIENvbXBhcmVfa2luZD0xMywgQ2FsbF9raW5kPTE0LCBOdW1fa2luZD0xNSwKLSAgICAgICAgICAgICAgICAgIFN0cl9raW5kPTE2LCBCeXRlc19raW5kPTE3LCBFbGxpcHNpc19raW5kPTE4LAotICAgICAgICAgICAgICAgICAgQXR0cmlidXRlX2tpbmQ9MTksIFN1YnNjcmlwdF9raW5kPTIwLCBTdGFycmVkX2tpbmQ9MjEsCi0gICAgICAgICAgICAgICAgICBOYW1lX2tpbmQ9MjIsIExpc3Rfa2luZD0yMywgVHVwbGVfa2luZD0yNH07CisgICAgICAgICAgICAgICAgICBZaWVsZF9raW5kPTEyLCBZaWVsZEZyb21fa2luZD0xMywgQ29tcGFyZV9raW5kPTE0LAorICAgICAgICAgICAgICAgICAgQ2FsbF9raW5kPTE1LCBOdW1fa2luZD0xNiwgU3RyX2tpbmQ9MTcsIEJ5dGVzX2tpbmQ9MTgsCisgICAgICAgICAgICAgICAgICBFbGxpcHNpc19raW5kPTE5LCBBdHRyaWJ1dGVfa2luZD0yMCwgU3Vic2NyaXB0X2tpbmQ9MjEsCisgICAgICAgICAgICAgICAgICBTdGFycmVkX2tpbmQ9MjIsIE5hbWVfa2luZD0yMywgTGlzdF9raW5kPTI0LCBUdXBsZV9raW5kPTI1fTsKIHN0cnVjdCBfZXhwciB7CiAgICAgICAgIGVudW0gX2V4cHJfa2luZCBraW5kOwogICAgICAgICB1bmlvbiB7CkBAIC0yNTMsNiArMjQ5LDEwIEBACiAgICAgICAgICAgICAgICAgfSBZaWVsZDsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgICAgICAgICAgICAgZXhwcl90eSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9IFlpZWxkRnJvbTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgICAgICAgICAgZXhwcl90eSBsZWZ0OwogICAgICAgICAgICAgICAgICAgICAgICAgYXNkbF9pbnRfc2VxICpvcHM7CiAgICAgICAgICAgICAgICAgICAgICAgICBhc2RsX3NlcSAqY29tcGFyYXRvcnM7CkBAIC0yNzUsNyArMjc1LDcgQEAKICAgICAgICAgICAgICAgICB9IFN0cjsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBzdHJ1Y3QgewotICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIHM7CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlcyBzOwogICAgICAgICAgICAgICAgIH0gQnl0ZXM7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgc3RydWN0IHsKQEAgLTM4Myw2ICszODMsMTEgQEAKICAgICAgICAgaWRlbnRpZmllciBhc25hbWU7CiB9OwogCitzdHJ1Y3QgX3dpdGhpdGVtIHsKKyAgICAgICAgZXhwcl90eSBjb250ZXh0X2V4cHI7CisgICAgICAgIGV4cHJfdHkgb3B0aW9uYWxfdmFyczsKK307CisKIAogI2RlZmluZSBNb2R1bGUoYTAsIGExKSBfUHlfTW9kdWxlKGEwLCBhMSkKIG1vZF90eSBfUHlfTW9kdWxlKGFzZGxfc2VxICogYm9keSwgUHlBcmVuYSAqYXJlbmEpOwpAQCAtNDIxLDE4ICs0MjYsMTYgQEAKICNkZWZpbmUgSWYoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSkgX1B5X0lmKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUpCiBzdG10X3R5IF9QeV9JZihleHByX3R5IHRlc3QsIGFzZGxfc2VxICogYm9keSwgYXNkbF9zZXEgKiBvcmVsc2UsIGludCBsaW5lbm8sCiAgICAgICAgICAgICAgICBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpOwotI2RlZmluZSBXaXRoKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUpIF9QeV9XaXRoKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUpCi1zdG10X3R5IF9QeV9XaXRoKGV4cHJfdHkgY29udGV4dF9leHByLCBleHByX3R5IG9wdGlvbmFsX3ZhcnMsIGFzZGxfc2VxICogYm9keSwKLSAgICAgICAgICAgICAgICAgaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsIFB5QXJlbmEgKmFyZW5hKTsKKyNkZWZpbmUgV2l0aChhMCwgYTEsIGEyLCBhMywgYTQpIF9QeV9XaXRoKGEwLCBhMSwgYTIsIGEzLCBhNCkKK3N0bXRfdHkgX1B5X1dpdGgoYXNkbF9zZXEgKiBpdGVtcywgYXNkbF9zZXEgKiBib2R5LCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwKKyAgICAgICAgICAgICAgICAgUHlBcmVuYSAqYXJlbmEpOwogI2RlZmluZSBSYWlzZShhMCwgYTEsIGEyLCBhMywgYTQpIF9QeV9SYWlzZShhMCwgYTEsIGEyLCBhMywgYTQpCiBzdG10X3R5IF9QeV9SYWlzZShleHByX3R5IGV4YywgZXhwcl90eSBjYXVzZSwgaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsCiAgICAgICAgICAgICAgICAgICBQeUFyZW5hICphcmVuYSk7Ci0jZGVmaW5lIFRyeUV4Y2VwdChhMCwgYTEsIGEyLCBhMywgYTQsIGE1KSBfUHlfVHJ5RXhjZXB0KGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUpCi1zdG10X3R5IF9QeV9UcnlFeGNlcHQoYXNkbF9zZXEgKiBib2R5LCBhc2RsX3NlcSAqIGhhbmRsZXJzLCBhc2RsX3NlcSAqIG9yZWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpOwotI2RlZmluZSBUcnlGaW5hbGx5KGEwLCBhMSwgYTIsIGEzLCBhNCkgX1B5X1RyeUZpbmFsbHkoYTAsIGExLCBhMiwgYTMsIGE0KQotc3RtdF90eSBfUHlfVHJ5RmluYWxseShhc2RsX3NlcSAqIGJvZHksIGFzZGxfc2VxICogZmluYWxib2R5LCBpbnQgbGluZW5vLCBpbnQKLSAgICAgICAgICAgICAgICAgICAgICAgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpOworI2RlZmluZSBUcnkoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpIF9QeV9UcnkoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSwgYTYpCitzdG10X3R5IF9QeV9UcnkoYXNkbF9zZXEgKiBib2R5LCBhc2RsX3NlcSAqIGhhbmRsZXJzLCBhc2RsX3NlcSAqIG9yZWxzZSwKKyAgICAgICAgICAgICAgICBhc2RsX3NlcSAqIGZpbmFsYm9keSwgaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsIFB5QXJlbmEKKyAgICAgICAgICAgICAgICAqYXJlbmEpOwogI2RlZmluZSBBc3NlcnQoYTAsIGExLCBhMiwgYTMsIGE0KSBfUHlfQXNzZXJ0KGEwLCBhMSwgYTIsIGEzLCBhNCkKIHN0bXRfdHkgX1B5X0Fzc2VydChleHByX3R5IHRlc3QsIGV4cHJfdHkgbXNnLCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwKICAgICAgICAgICAgICAgICAgICBQeUFyZW5hICphcmVuYSk7CkBAIC00OTAsNiArNDkzLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfb2Zmc2V0LCBQeUFyZW5hICphcmVuYSk7CiAjZGVmaW5lIFlpZWxkKGEwLCBhMSwgYTIsIGEzKSBfUHlfWWllbGQoYTAsIGExLCBhMiwgYTMpCiBleHByX3R5IF9QeV9ZaWVsZChleHByX3R5IHZhbHVlLCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpOworI2RlZmluZSBZaWVsZEZyb20oYTAsIGExLCBhMiwgYTMpIF9QeV9ZaWVsZEZyb20oYTAsIGExLCBhMiwgYTMpCitleHByX3R5IF9QeV9ZaWVsZEZyb20oZXhwcl90eSB2YWx1ZSwgaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsIFB5QXJlbmEKKyAgICAgICAgICAgICAgICAgICAgICAqYXJlbmEpOwogI2RlZmluZSBDb21wYXJlKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUpIF9QeV9Db21wYXJlKGEwLCBhMSwgYTIsIGEzLCBhNCwgYTUpCiBleHByX3R5IF9QeV9Db21wYXJlKGV4cHJfdHkgbGVmdCwgYXNkbF9pbnRfc2VxICogb3BzLCBhc2RsX3NlcSAqIGNvbXBhcmF0b3JzLAogICAgICAgICAgICAgICAgICAgICBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpOwpAQCAtNTAyLDcgKzUwOCw3IEBACiAjZGVmaW5lIFN0cihhMCwgYTEsIGEyLCBhMykgX1B5X1N0cihhMCwgYTEsIGEyLCBhMykKIGV4cHJfdHkgX1B5X1N0cihzdHJpbmcgcywgaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsIFB5QXJlbmEgKmFyZW5hKTsKICNkZWZpbmUgQnl0ZXMoYTAsIGExLCBhMiwgYTMpIF9QeV9CeXRlcyhhMCwgYTEsIGEyLCBhMykKLWV4cHJfdHkgX1B5X0J5dGVzKHN0cmluZyBzLCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpOworZXhwcl90eSBfUHlfQnl0ZXMoYnl0ZXMgcywgaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsIFB5QXJlbmEgKmFyZW5hKTsKICNkZWZpbmUgRWxsaXBzaXMoYTAsIGExLCBhMikgX1B5X0VsbGlwc2lzKGEwLCBhMSwgYTIpCiBleHByX3R5IF9QeV9FbGxpcHNpcyhpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpOwogI2RlZmluZSBBdHRyaWJ1dGUoYTAsIGExLCBhMiwgYTMsIGE0LCBhNSkgX1B5X0F0dHJpYnV0ZShhMCwgYTEsIGEyLCBhMywgYTQsIGE1KQpAQCAtNTQ3LDYgKzU1Myw5IEBACiBrZXl3b3JkX3R5IF9QeV9rZXl3b3JkKGlkZW50aWZpZXIgYXJnLCBleHByX3R5IHZhbHVlLCBQeUFyZW5hICphcmVuYSk7CiAjZGVmaW5lIGFsaWFzKGEwLCBhMSwgYTIpIF9QeV9hbGlhcyhhMCwgYTEsIGEyKQogYWxpYXNfdHkgX1B5X2FsaWFzKGlkZW50aWZpZXIgbmFtZSwgaWRlbnRpZmllciBhc25hbWUsIFB5QXJlbmEgKmFyZW5hKTsKKyNkZWZpbmUgd2l0aGl0ZW0oYTAsIGExLCBhMikgX1B5X3dpdGhpdGVtKGEwLCBhMSwgYTIpCit3aXRoaXRlbV90eSBfUHlfd2l0aGl0ZW0oZXhwcl90eSBjb250ZXh0X2V4cHIsIGV4cHJfdHkgb3B0aW9uYWxfdmFycywgUHlBcmVuYQorICAgICAgICAgICAgICAgICAgICAgICAgICphcmVuYSk7CiAKIFB5T2JqZWN0KiBQeUFTVF9tb2Qyb2JqKG1vZF90eSB0KTsKIG1vZF90eSBQeUFTVF9vYmoybW9kKFB5T2JqZWN0KiBhc3QsIFB5QXJlbmEqIGFyZW5hLCBpbnQgbW9kZSk7CmRpZmYgLS1naXQgYS9JbmNsdWRlL1B5dGhvbi5oIGIvSW5jbHVkZS9QeXRob24uaAppbmRleCBkNmU0N2MyLi5hNzhhNzIxIDEwMDY0NAotLS0gYS9JbmNsdWRlL1B5dGhvbi5oCisrKyBiL0luY2x1ZGUvUHl0aG9uLmgKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlIDxhc3NlcnQuaD4KIAogI2luY2x1ZGUgInB5cG9ydC5oIgorI2luY2x1ZGUgInB5bWFjcm8uaCIKIAogI2luY2x1ZGUgInB5YXRvbWljLmgiCiAKQEAgLTEwMCw2ICsxMDEsNyBAQAogI2luY2x1ZGUgIndhcm5pbmdzLmgiCiAjaW5jbHVkZSAid2Vha3JlZm9iamVjdC5oIgogI2luY2x1ZGUgInN0cnVjdHNlcS5oIgorI2luY2x1ZGUgIm5hbWVzcGFjZW9iamVjdC5oIgogCiAjaW5jbHVkZSAiY29kZWNzLmgiCiAjaW5jbHVkZSAicHllcnJvcnMuaCIKQEAgLTEyNSw0MyArMTI3LDYgQEAKICNpbmNsdWRlICJweXN0cmNtcC5oIgogI2luY2x1ZGUgImR0b2EuaCIKICNpbmNsdWRlICJmaWxldXRpbHMuaCIKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0vKiBfUHlfTWFuZ2xlIGlzIGRlZmluZWQgaW4gY29tcGlsZS5jICovCi0jaWZuZGVmIFB5X0xJTUlURURfQVBJCi1QeUFQSV9GVU5DKFB5T2JqZWN0KikgX1B5X01hbmdsZShQeU9iamVjdCAqcCwgUHlPYmplY3QgKm5hbWUpOwotI2VuZGlmCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLS8qIEFyZ3VtZW50IG11c3QgYmUgYSBjaGFyIG9yIGFuIGludCBpbiBbLTEyOCwgMTI3XSBvciBbMCwgMjU1XS4gKi8KLSNkZWZpbmUgUHlfQ0hBUk1BU0soYykgICAgICAgICAgKCh1bnNpZ25lZCBjaGFyKSgoYykgJiAweGZmKSkKLQogI2luY2x1ZGUgInB5ZnBlLmgiCiAKLS8qIFRoZXNlIGRlZmluaXRpb25zIG11c3QgbWF0Y2ggY29ycmVzcG9uZGluZyBkZWZpbml0aW9ucyBpbiBncmFtaW5pdC5oLgotICAgVGhlcmUncyBjb2RlIGluIGNvbXBpbGUuYyB0aGF0IGNoZWNrcyB0aGF0IHRoZXkgYXJlIHRoZSBzYW1lLiAqLwotI2RlZmluZSBQeV9zaW5nbGVfaW5wdXQgMjU2Ci0jZGVmaW5lIFB5X2ZpbGVfaW5wdXQgMjU3Ci0jZGVmaW5lIFB5X2V2YWxfaW5wdXQgMjU4Ci0KLSNpZmRlZiBIQVZFX1BUSAotLyogR05VIHB0aCB1c2VyLXNwYWNlIHRocmVhZCBzdXBwb3J0ICovCi0jaW5jbHVkZSA8cHRoLmg+Ci0jZW5kaWYKLQotLyogRGVmaW5lIG1hY3JvcyBmb3IgaW5saW5lIGRvY3VtZW50YXRpb24uICovCi0jZGVmaW5lIFB5RG9jX1ZBUihuYW1lKSBzdGF0aWMgY2hhciBuYW1lW10KLSNkZWZpbmUgUHlEb2NfU1RSVkFSKG5hbWUsc3RyKSBQeURvY19WQVIobmFtZSkgPSBQeURvY19TVFIoc3RyKQotI2lmZGVmIFdJVEhfRE9DX1NUUklOR1MKLSNkZWZpbmUgUHlEb2NfU1RSKHN0cikgc3RyCi0jZWxzZQotI2RlZmluZSBQeURvY19TVFIoc3RyKSAiIgotI2VuZGlmCi0KICNlbmRpZiAvKiAhUHlfUFlUSE9OX0ggKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvYWJzdHJhY3QuaCBiL0luY2x1ZGUvYWJzdHJhY3QuaAppbmRleCAwZmUwOTU2Li5lODc5ZmExYiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9hYnN0cmFjdC5oCisrKyBiL0luY2x1ZGUvYWJzdHJhY3QuaApAQCAtNyw2ICs3LDcgQEAKICNpZmRlZiBQWV9TU0laRV9UX0NMRUFOCiAjZGVmaW5lIFB5T2JqZWN0X0NhbGxGdW5jdGlvbiBfUHlPYmplY3RfQ2FsbEZ1bmN0aW9uX1NpemVUCiAjZGVmaW5lIFB5T2JqZWN0X0NhbGxNZXRob2QgX1B5T2JqZWN0X0NhbGxNZXRob2RfU2l6ZVQKKyNkZWZpbmUgX1B5T2JqZWN0X0NhbGxNZXRob2RJZCBfUHlPYmplY3RfQ2FsbE1ldGhvZElkX1NpemVUCiAjZW5kaWYKIAogLyogQWJzdHJhY3QgT2JqZWN0IEludGVyZmFjZSAobWFueSB0aGFua3MgdG8gSmltIEZ1bHRvbikgKi8KQEAgLTMwNywxMSArMzA4LDIyIEBACiAgICAgIFB5dGhvbiBleHByZXNzaW9uOiBvLm1ldGhvZChhcmdzKS4KICAgICAgICAqLwogCisgICAgIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5T2JqZWN0X0NhbGxNZXRob2RJZChQeU9iamVjdCAqbywgX1B5X0lkZW50aWZpZXIgKm1ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqZm9ybWF0LCAuLi4pOworCisgICAgICAgLyoKKyAgICAgICAgIExpa2UgUHlPYmplY3RfQ2FsbE1ldGhvZCwgYnV0IGV4cGVjdCBhIF9QeV9JZGVudGlmaWVyKiBhcyB0aGUKKyAgICAgICAgIG1ldGhvZCBuYW1lLgorICAgICAgICovCisKICAgICAgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlPYmplY3RfQ2FsbEZ1bmN0aW9uX1NpemVUKFB5T2JqZWN0ICpjYWxsYWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZvcm1hdCwgLi4uKTsKICAgICAgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlPYmplY3RfQ2FsbE1ldGhvZF9TaXplVChQeU9iamVjdCAqbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZvcm1hdCwgLi4uKTsKKyAgICAgUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkX1NpemVUKFB5T2JqZWN0ICpvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9QeV9JZGVudGlmaWVyICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmZvcm1hdCwgLi4uKTsKIAogICAgICBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoUHlPYmplY3QgKmNhbGxhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKTsKQEAgLTMyNyw2ICszMzksMTAgQEAKIAogICAgICBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5T2JqZWN0X0NhbGxNZXRob2RPYmpBcmdzKFB5T2JqZWN0ICpvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICptZXRob2QsIC4uLik7CisgICAgIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5T2JqZWN0X0NhbGxNZXRob2RPYmpJZEFyZ3MoUHlPYmplY3QgKm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBfUHlfSWRlbnRpZmllciAqbWV0aG9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pOworCiAKICAgICAgICAvKgogICAgICBDYWxsIHRoZSBtZXRob2QgbmFtZWQgbSBvZiBvYmplY3QgbyB3aXRoIGEgdmFyaWFibGUgbnVtYmVyIG9mCkBAIC01NDcsNyArNTYzLDcgQEAKICAgICAvKiBDb3B5IHRoZSBkYXRhIGZyb20gdGhlIHNyYyBidWZmZXIgdG8gdGhlIGJ1ZmZlciBvZiBkZXN0aW5hdGlvbgogICAgICAqLwogCi0gICAgIFB5QVBJX0ZVTkMoaW50KSBQeUJ1ZmZlcl9Jc0NvbnRpZ3VvdXMoUHlfYnVmZmVyICp2aWV3LCBjaGFyIGZvcnQpOworICAgICBQeUFQSV9GVU5DKGludCkgUHlCdWZmZXJfSXNDb250aWd1b3VzKGNvbnN0IFB5X2J1ZmZlciAqdmlldywgY2hhciBmb3J0KTsKIAogCiAgICAgIFB5QVBJX0ZVTkModm9pZCkgUHlCdWZmZXJfRmlsbENvbnRpZ3VvdXNTdHJpZGVzKGludCBuZGltcywKQEAgLTc2MSwyMSArNzc3LDYgQEAKICAgICAgUHlBUElfRlVOQyhQeV9zc2l6ZV90KSBQeU51bWJlcl9Bc1NzaXplX3QoUHlPYmplY3QgKm8sIFB5T2JqZWN0ICpleGMpOwogCiAgICAgICAgLyoKLSAgICAgUmV0dXJucyB0aGUgSW50ZWdyYWwgaW5zdGFuY2UgY29udmVydGVkIHRvIGFuIGludC4gVGhlCi0gICAgIGluc3RhbmNlIGlzIGV4cGVjdGVkIHRvIGJlIGludCBvciBsb25nIG9yIGhhdmUgYW4gX19pbnRfXwotICAgICBtZXRob2QuIFN0ZWFscyBpbnRlZ3JhbCdzIHJlZmVyZW5jZS4gZXJyb3JfZm9ybWF0IHdpbGwgYmUKLSAgICAgdXNlZCB0byBjcmVhdGUgdGhlIFR5cGVFcnJvciBpZiBpbnRlZ3JhbCBpc24ndCBhY3R1YWxseSBhbgotICAgICBJbnRlZ3JhbCBpbnN0YW5jZS4gZXJyb3JfZm9ybWF0IHNob3VsZCBiZSBhIGZvcm1hdCBzdHJpbmcKLSAgICAgdGhhdCBjYW4gYWNjZXB0IGEgY2hhciogbmFtaW5nIGludGVncmFsJ3MgdHlwZS4KLSAgICAgICAqLwotCi0jaWZuZGVmIFB5X0xJTUlURURfQVBJCi0gICAgIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5TnVtYmVyX0NvbnZlcnRJbnRlZ3JhbFRvSW50KAotICAgICAgICAgUHlPYmplY3QgKmludGVncmFsLAotICAgICAgICAgY29uc3QgY2hhciogZXJyb3JfZm9ybWF0KTsKLSNlbmRpZgotCi0gICAgICAgLyoKICAgICBSZXR1cm5zIHRoZSBvYmplY3QgY29udmVydGVkIHRvIFB5X3NzaXplX3QgYnkgZ29pbmcgdGhyb3VnaAogICAgIFB5TnVtYmVyX0luZGV4IGZpcnN0LiAgSWYgYW4gb3ZlcmZsb3cgZXJyb3Igb2NjdXJzIHdoaWxlCiAgICAgY29udmVydGluZyB0aGUgaW50LW9yLWxvbmcgdG8gUHlfc3NpemVfdCwgdGhlbiB0aGUgc2Vjb25kIGFyZ3VtZW50CkBAIC0xMDE0LDcgKzEwMTUsNyBAQAogCiAgICAgIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlTZXF1ZW5jZV9GYXN0KFB5T2JqZWN0ICpvLCBjb25zdCBjaGFyKiBtKTsKICAgICAgICAvKgotICAgICBSZXR1cm5zIHRoZSBzZXF1ZW5jZSwgbywgYXMgYSB0dXBsZSwgdW5sZXNzIGl0J3MgYWxyZWFkeSBhCisgICAgIFJldHVybnMgdGhlIHNlcXVlbmNlLCBvLCBhcyBhIGxpc3QsIHVubGVzcyBpdCdzIGFscmVhZHkgYQogICAgICB0dXBsZSBvciBsaXN0LiAgVXNlIFB5U2VxdWVuY2VfRmFzdF9HRVRfSVRFTSB0byBhY2Nlc3MgdGhlCiAgICAgIG1lbWJlcnMgb2YgdGhpcyBsaXN0LCBhbmQgUHlTZXF1ZW5jZV9GYXN0X0dFVF9TSVpFIHRvIGdldCBpdHMgbGVuZ3RoLgogCmRpZmYgLS1naXQgYS9JbmNsdWRlL2FzZGwuaCBiL0luY2x1ZGUvYXNkbC5oCmluZGV4IDliYjA2OTcuLjZiZjYxOGYgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvYXNkbC5oCisrKyBiL0luY2x1ZGUvYXNkbC5oCkBAIC0zLDYgKzMsNyBAQAogCiB0eXBlZGVmIFB5T2JqZWN0ICogaWRlbnRpZmllcjsKIHR5cGVkZWYgUHlPYmplY3QgKiBzdHJpbmc7Cit0eXBlZGVmIFB5T2JqZWN0ICogYnl0ZXM7CiB0eXBlZGVmIFB5T2JqZWN0ICogb2JqZWN0OwogCiAvKiBJdCB3b3VsZCBiZSBuaWNlIGlmIHRoZSBjb2RlIGdlbmVyYXRlZCBieSBhc2RsX2MucHkgd2FzIGNvbXBsZXRlbHkKQEAgLTE0LDE3ICsxNSwxNyBAQAogLyogWFhYIEEgc2VxdWVuY2Ugc2hvdWxkIGJlIHR5cGVkIHNvIHRoYXQgaXRzIHVzZSBjYW4gYmUgdHlwZWNoZWNrZWQuICovCiAKIHR5cGVkZWYgc3RydWN0IHsKLSAgICBpbnQgc2l6ZTsKKyAgICBQeV9zc2l6ZV90IHNpemU7CiAgICAgdm9pZCAqZWxlbWVudHNbMV07CiB9IGFzZGxfc2VxOwogCiB0eXBlZGVmIHN0cnVjdCB7Ci0gICAgaW50IHNpemU7CisgICAgUHlfc3NpemVfdCBzaXplOwogICAgIGludCBlbGVtZW50c1sxXTsKIH0gYXNkbF9pbnRfc2VxOwogCi1hc2RsX3NlcSAqYXNkbF9zZXFfbmV3KGludCBzaXplLCBQeUFyZW5hICphcmVuYSk7Ci1hc2RsX2ludF9zZXEgKmFzZGxfaW50X3NlcV9uZXcoaW50IHNpemUsIFB5QXJlbmEgKmFyZW5hKTsKK2FzZGxfc2VxICphc2RsX3NlcV9uZXcoUHlfc3NpemVfdCBzaXplLCBQeUFyZW5hICphcmVuYSk7Cithc2RsX2ludF9zZXEgKmFzZGxfaW50X3NlcV9uZXcoUHlfc3NpemVfdCBzaXplLCBQeUFyZW5hICphcmVuYSk7CiAKICNkZWZpbmUgYXNkbF9zZXFfR0VUKFMsIEkpIChTKS0+ZWxlbWVudHNbKEkpXQogI2RlZmluZSBhc2RsX3NlcV9MRU4oUykgKChTKSA9PSBOVUxMID8gMCA6IChTKS0+c2l6ZSkKZGlmZiAtLWdpdCBhL0luY2x1ZGUvYXN0LmggYi9JbmNsdWRlL2FzdC5oCmluZGV4IGEwMTUzMzYuLjA1NWU4ZGMgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvYXN0LmgKKysrIGIvSW5jbHVkZS9hc3QuaApAQCAtNCw2ICs0LDcgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKK1B5QVBJX0ZVTkMoaW50KSBQeUFTVF9WYWxpZGF0ZShtb2RfdHkpOwogUHlBUElfRlVOQyhtb2RfdHkpIFB5QVNUX0Zyb21Ob2RlKAogICAgIGNvbnN0IG5vZGUgKm4sCiAgICAgUHlDb21waWxlckZsYWdzICpmbGFncywKZGlmZiAtLWdpdCBhL0luY2x1ZGUvYnl0ZXNvYmplY3QuaCBiL0luY2x1ZGUvYnl0ZXNvYmplY3QuaAppbmRleCBlMWFmODlmLi5kN2M3ZmZkIDEwMDY0NAotLS0gYS9JbmNsdWRlL2J5dGVzb2JqZWN0LmgKKysrIGIvSW5jbHVkZS9ieXRlc29iamVjdC5oCkBAIC02Miw4ICs2Miw2IEBACiBQeUFQSV9GVU5DKHZvaWQpIFB5Qnl0ZXNfQ29uY2F0QW5kRGVsKFB5T2JqZWN0ICoqLCBQeU9iamVjdCAqKTsKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKIFB5QVBJX0ZVTkMoaW50KSBfUHlCeXRlc19SZXNpemUoUHlPYmplY3QgKiosIFB5X3NzaXplX3QpOwotUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlCeXRlc19Gb3JtYXRMb25nKFB5T2JqZWN0KiwgaW50LCBpbnQsCi0JCQkJCQkgIGludCwgY2hhcioqLCBpbnQqKTsKICNlbmRpZgogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUJ5dGVzX0RlY29kZUVzY2FwZShjb25zdCBjaGFyICosIFB5X3NzaXplX3QsCiAJCQkJCQkgICBjb25zdCBjaGFyICosIFB5X3NzaXplX3QsCmRpZmYgLS1naXQgYS9JbmNsdWRlL2NvZGUuaCBiL0luY2x1ZGUvY29kZS5oCmluZGV4IGU3NzNiNmEuLjdjN2U1YmYgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvY29kZS5oCisrKyBiL0luY2x1ZGUvY29kZS5oCkBAIC0yMiw2ICsyMiw3IEBACiAgICAgUHlPYmplY3QgKmNvX2ZyZWV2YXJzOwkvKiB0dXBsZSBvZiBzdHJpbmdzIChmcmVlIHZhcmlhYmxlIG5hbWVzKSAqLwogICAgIFB5T2JqZWN0ICpjb19jZWxsdmFyczsgICAgICAvKiB0dXBsZSBvZiBzdHJpbmdzIChjZWxsIHZhcmlhYmxlIG5hbWVzKSAqLwogICAgIC8qIFRoZSByZXN0IGRvZXNuJ3QgY291bnQgZm9yIGhhc2ggb3IgY29tcGFyaXNvbnMgKi8KKyAgICB1bnNpZ25lZCBjaGFyICpjb19jZWxsMmFyZzsgLyogTWFwcyBjZWxsIHZhcnMgd2hpY2ggYXJlIGFyZ3VtZW50cy4gKi8KICAgICBQeU9iamVjdCAqY29fZmlsZW5hbWU7CS8qIHVuaWNvZGUgKHdoZXJlIGl0IHdhcyBsb2FkZWQgZnJvbSkgKi8KICAgICBQeU9iamVjdCAqY29fbmFtZTsJCS8qIHVuaWNvZGUgKG5hbWUsIGZvciByZWZlcmVuY2UpICovCiAgICAgaW50IGNvX2ZpcnN0bGluZW5vOwkJLyogZmlyc3Qgc291cmNlIGxpbmUgbnVtYmVyICovCkBAIC01Nyw2ICs1OCwxMSBAQAogCiAjZGVmaW5lIENPX0ZVVFVSRV9CQVJSWV9BU19CREZMICAweDQwMDAwCiAKKy8qIFRoaXMgdmFsdWUgaXMgZm91bmQgaW4gdGhlIGNvX2NlbGwyYXJnIGFycmF5IHdoZW4gdGhlIGFzc29jaWF0ZWQgY2VsbAorICAgdmFyaWFibGUgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbiBhcmd1bWVudC4gVGhlIG1heGltdW0gbnVtYmVyIG9mCisgICBhcmd1bWVudHMgaXMgMjU1IChpbmRleGVkIHVwIHRvIDI1NCksIHNvIDI1NSB3b3JrIGFzIGEgc3BlY2lhbCBmbGFnLiovCisjZGVmaW5lIENPX0NFTExfTk9UX0FOX0FSRyAyNTUKKwogLyogVGhpcyBzaG91bGQgYmUgZGVmaW5lZCBpZiBhIGZ1dHVyZSBzdGF0ZW1lbnQgbW9kaWZpZXMgdGhlIHN5bnRheC4KICAgIEZvciBleGFtcGxlLCB3aGVuIGEga2V5d29yZCBpcyBhZGRlZC4KICovCmRpZmYgLS1naXQgYS9JbmNsdWRlL2NvZGVjcy5oIGIvSW5jbHVkZS9jb2RlY3MuaAppbmRleCBkZmYwOWU3Li4wZDllOWI0IDEwMDY0NAotLS0gYS9JbmNsdWRlL2NvZGVjcy5oCisrKyBiL0luY2x1ZGUvY29kZWNzLmgKQEAgLTE3NCw2ICsxNzQsOCBAQAogLyogcmVwbGFjZSB0aGUgdW5pY29kZSBlbmNvZGUgZXJyb3Igd2l0aCBiYWNrc2xhc2ggZXNjYXBlcyAoXHgsIFx1IGFuZCBcVSkgKi8KIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlDb2RlY19CYWNrc2xhc2hSZXBsYWNlRXJyb3JzKFB5T2JqZWN0ICpleGMpOwogCitQeUFQSV9EQVRBKGNvbnN0IGNoYXIgKikgUHlfaGV4ZGlnaXRzOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9jb21waWxlLmggYi9JbmNsdWRlL2NvbXBpbGUuaAppbmRleCBiYzUzYjM5Li5hYzI2MzZkIDEwMDY0NAotLS0gYS9JbmNsdWRlL2NvbXBpbGUuaAorKysgYi9JbmNsdWRlL2NvbXBpbGUuaApAQCAtMSw3ICsxLDcgQEAKLSNpZm5kZWYgUHlfTElNSVRFRF9BUEkKICNpZm5kZWYgUHlfQ09NUElMRV9ICiAjZGVmaW5lIFB5X0NPTVBJTEVfSAogCisjaWZuZGVmIFB5X0xJTUlURURfQVBJCiAjaW5jbHVkZSAiY29kZS5oIgogCiAjaWZkZWYgX19jcGx1c3BsdXMKQEAgLTM4LDkgKzM4LDE5IEBACiAgICAgUHlBcmVuYSAqYXJlbmEpOwogUHlBUElfRlVOQyhQeUZ1dHVyZUZlYXR1cmVzICopIFB5RnV0dXJlX0Zyb21BU1Qoc3RydWN0IF9tb2QgKiwgY29uc3QgY2hhciAqKTsKIAorLyogX1B5X01hbmdsZSBpcyBkZWZpbmVkIGluIGNvbXBpbGUuYyAqLworUHlBUElfRlVOQyhQeU9iamVjdCopIF9QeV9NYW5nbGUoUHlPYmplY3QgKnAsIFB5T2JqZWN0ICpuYW1lKTsKIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKLSNlbmRpZiAvKiAhUHlfQ09NUElMRV9IICovCisKICNlbmRpZiAvKiAhUHlfTElNSVRFRF9BUEkgKi8KKworLyogVGhlc2UgZGVmaW5pdGlvbnMgbXVzdCBtYXRjaCBjb3JyZXNwb25kaW5nIGRlZmluaXRpb25zIGluIGdyYW1pbml0LmguCisgICBUaGVyZSdzIGNvZGUgaW4gY29tcGlsZS5jIHRoYXQgY2hlY2tzIHRoYXQgdGhleSBhcmUgdGhlIHNhbWUuICovCisjZGVmaW5lIFB5X3NpbmdsZV9pbnB1dCAyNTYKKyNkZWZpbmUgUHlfZmlsZV9pbnB1dCAyNTcKKyNkZWZpbmUgUHlfZXZhbF9pbnB1dCAyNTgKKworI2VuZGlmIC8qICFQeV9DT01QSUxFX0ggKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvY29tcGxleG9iamVjdC5oIGIvSW5jbHVkZS9jb21wbGV4b2JqZWN0LmgKaW5kZXggYzM3OWIwOC4uMTkzNGYzYiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9jb21wbGV4b2JqZWN0LmgKKysrIGIvSW5jbHVkZS9jb21wbGV4b2JqZWN0LmgKQEAgLTYzLDkgKzYzLDEyIEBACiAvKiBGb3JtYXQgdGhlIG9iamVjdCBiYXNlZCBvbiB0aGUgZm9ybWF0X3NwZWMsIGFzIGRlZmluZWQgaW4gUEVQIDMxMDEKICAgIChBZHZhbmNlZCBTdHJpbmcgRm9ybWF0dGluZykuICovCiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCi1QeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeUNvbXBsZXhfRm9ybWF0QWR2YW5jZWQoUHlPYmplY3QgKm9iaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9VTklDT0RFICpmb3JtYXRfc3BlYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGZvcm1hdF9zcGVjX2xlbik7CitQeUFQSV9GVU5DKGludCkgX1B5Q29tcGxleF9Gb3JtYXRBZHZhbmNlZFdyaXRlcigKKyAgICBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsCisgICAgUHlPYmplY3QgKm9iaiwKKyAgICBQeU9iamVjdCAqZm9ybWF0X3NwZWMsCisgICAgUHlfc3NpemVfdCBzdGFydCwKKyAgICBQeV9zc2l6ZV90IGVuZCk7CiAjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9JbmNsdWRlL2RhdGV0aW1lLmggYi9JbmNsdWRlL2RhdGV0aW1lLmgKaW5kZXggZGI1N2ExOC4uNDFlM2JjZiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9kYXRldGltZS5oCisrKyBiL0luY2x1ZGUvZGF0ZXRpbWUuaApAQCAtMTM1LDYgKzEzNSwxMiBAQAogICAgICAoKChQeURhdGVUaW1lX1RpbWUqKW8pLT5kYXRhWzRdIDw8IDgpICB8ICAgICAgICAgICBcCiAgICAgICAoKFB5RGF0ZVRpbWVfVGltZSopbyktPmRhdGFbNV0pCiAKKy8qIEFwcGx5IGZvciB0aW1lIGRlbHRhIGluc3RhbmNlcyAqLworI2RlZmluZSBQeURhdGVUaW1lX0RFTFRBX0dFVF9EQVlTKG8pICAgICAgICAgKCgoUHlEYXRlVGltZV9EZWx0YSopbyktPmRheXMpCisjZGVmaW5lIFB5RGF0ZVRpbWVfREVMVEFfR0VUX1NFQ09ORFMobykgICAgICAoKChQeURhdGVUaW1lX0RlbHRhKilvKS0+c2Vjb25kcykKKyNkZWZpbmUgUHlEYXRlVGltZV9ERUxUQV9HRVRfTUlDUk9TRUNPTkRTKG8pICAgICAgICAgICAgXAorICAgICgoKFB5RGF0ZVRpbWVfRGVsdGEqKW8pLT5taWNyb3NlY29uZHMpCisKIAogLyogRGVmaW5lIHN0cnVjdHVyZSBmb3IgQyBBUEkuICovCiB0eXBlZGVmIHN0cnVjdCB7CmRpZmYgLS1naXQgYS9JbmNsdWRlL2Rlc2Nyb2JqZWN0LmggYi9JbmNsdWRlL2Rlc2Nyb2JqZWN0LmgKaW5kZXggNjQ2YjNjYy4uZTJiYTk3ZiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9kZXNjcm9iamVjdC5oCisrKyBiL0luY2x1ZGUvZGVzY3JvYmplY3QuaApAQCAtNDIsNiArNDIsNyBAQAogICAgIFB5T2JqZWN0X0hFQUQKICAgICBQeVR5cGVPYmplY3QgKmRfdHlwZTsKICAgICBQeU9iamVjdCAqZF9uYW1lOworICAgIFB5T2JqZWN0ICpkX3F1YWxuYW1lOwogfSBQeURlc2NyT2JqZWN0OwogCiAjZGVmaW5lIFB5RGVzY3JfQ09NTU9OIFB5RGVzY3JPYmplY3QgZF9jb21tb24KZGlmZiAtLWdpdCBhL0luY2x1ZGUvZGljdG9iamVjdC5oIGIvSW5jbHVkZS9kaWN0b2JqZWN0LmgKaW5kZXggYjAyNjc4NS4uZDg5YWFjOCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9kaWN0b2JqZWN0LmgKKysrIGIvSW5jbHVkZS9kaWN0b2JqZWN0LmgKQEAgLTEzLDc4ICsxMywyMCBAQAogICAgdHVuaW5nIGRpY3Rpb25hcmllcywgYW5kIHNldmVyYWwgaWRlYXMgZm9yIHBvc3NpYmxlIG9wdGltaXphdGlvbnMuCiAqLwogCi0vKgotVGhlcmUgYXJlIHRocmVlIGtpbmRzIG9mIHNsb3RzIGluIHRoZSB0YWJsZToKLQotMS4gVW51c2VkLiAgbWVfa2V5ID09IG1lX3ZhbHVlID09IE5VTEwKLSAgIERvZXMgbm90IGhvbGQgYW4gYWN0aXZlIChrZXksIHZhbHVlKSBwYWlyIG5vdyBhbmQgbmV2ZXIgZGlkLiAgVW51c2VkIGNhbgotICAgdHJhbnNpdGlvbiB0byBBY3RpdmUgdXBvbiBrZXkgaW5zZXJ0aW9uLiAgVGhpcyBpcyB0aGUgb25seSBjYXNlIGluIHdoaWNoCi0gICBtZV9rZXkgaXMgTlVMTCwgYW5kIGlzIGVhY2ggc2xvdCdzIGluaXRpYWwgc3RhdGUuCi0KLTIuIEFjdGl2ZS4gIG1lX2tleSAhPSBOVUxMIGFuZCBtZV9rZXkgIT0gZHVtbXkgYW5kIG1lX3ZhbHVlICE9IE5VTEwKLSAgIEhvbGRzIGFuIGFjdGl2ZSAoa2V5LCB2YWx1ZSkgcGFpci4gIEFjdGl2ZSBjYW4gdHJhbnNpdGlvbiB0byBEdW1teSB1cG9uCi0gICBrZXkgZGVsZXRpb24uICBUaGlzIGlzIHRoZSBvbmx5IGNhc2UgaW4gd2hpY2ggbWVfdmFsdWUgIT0gTlVMTC4KLQotMy4gRHVtbXkuICBtZV9rZXkgPT0gZHVtbXkgYW5kIG1lX3ZhbHVlID09IE5VTEwKLSAgIFByZXZpb3VzbHkgaGVsZCBhbiBhY3RpdmUgKGtleSwgdmFsdWUpIHBhaXIsIGJ1dCB0aGF0IHdhcyBkZWxldGVkIGFuZCBhbgotICAgYWN0aXZlIHBhaXIgaGFzIG5vdCB5ZXQgb3ZlcndyaXR0ZW4gdGhlIHNsb3QuICBEdW1teSBjYW4gdHJhbnNpdGlvbiB0bwotICAgQWN0aXZlIHVwb24ga2V5IGluc2VydGlvbi4gIER1bW15IHNsb3RzIGNhbm5vdCBiZSBtYWRlIFVudXNlZCBhZ2FpbgotICAgKGNhbm5vdCBoYXZlIG1lX2tleSBzZXQgdG8gTlVMTCksIGVsc2UgdGhlIHByb2JlIHNlcXVlbmNlIGluIGNhc2Ugb2YKLSAgIGNvbGxpc2lvbiB3b3VsZCBoYXZlIG5vIHdheSB0byBrbm93IHRoZXkgd2VyZSBvbmNlIGFjdGl2ZS4KLQotTm90ZTogLnBvcGl0ZW0oKSBhYnVzZXMgdGhlIG1lX2hhc2ggZmllbGQgb2YgYW4gVW51c2VkIG9yIER1bW15IHNsb3QgdG8KLWhvbGQgYSBzZWFyY2ggZmluZ2VyLiAgVGhlIG1lX2hhc2ggZmllbGQgb2YgVW51c2VkIG9yIER1bW15IHNsb3RzIGhhcyBubwotbWVhbmluZyBvdGhlcndpc2UuCi0qLwotCi0vKiBQeURpY3RfTUlOU0laRSBpcyB0aGUgbWluaW11bSBzaXplIG9mIGEgZGljdGlvbmFyeS4gIFRoaXMgbWFueSBzbG90cyBhcmUKLSAqIGFsbG9jYXRlZCBkaXJlY3RseSBpbiB0aGUgZGljdCBvYmplY3QgKGluIHRoZSBtYV9zbWFsbHRhYmxlIG1lbWJlcikuCi0gKiBJdCBtdXN0IGJlIGEgcG93ZXIgb2YgMiwgYW5kIGF0IGxlYXN0IDQuICA4IGFsbG93cyBkaWN0cyB3aXRoIG5vIG1vcmUKLSAqIHRoYW4gNSBhY3RpdmUgZW50cmllcyB0byBsaXZlIGluIG1hX3NtYWxsdGFibGUgKGFuZCBzbyBhdm9pZCBhbgotICogYWRkaXRpb25hbCBtYWxsb2MpOyBpbnN0cnVtZW50YXRpb24gc3VnZ2VzdGVkIHRoaXMgc3VmZmljZXMgZm9yIHRoZQotICogbWFqb3JpdHkgb2YgZGljdHMgKGNvbnNpc3RpbmcgbW9zdGx5IG9mIHVzdWFsbHktc21hbGwgaW5zdGFuY2UgZGljdHMgYW5kCi0gKiB1c3VhbGx5LXNtYWxsIGRpY3RzIGNyZWF0ZWQgdG8gcGFzcyBrZXl3b3JkIGFyZ3VtZW50cykuCi0gKi8KICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKLSNkZWZpbmUgUHlEaWN0X01JTlNJWkUgOAogCit0eXBlZGVmIHN0cnVjdCBfZGljdGtleXNvYmplY3QgUHlEaWN0S2V5c09iamVjdDsKKworLyogVGhlIG1hX3ZhbHVlcyBwb2ludGVyIGlzIE5VTEwgZm9yIGEgY29tYmluZWQgdGFibGUKKyAqIG9yIHBvaW50cyB0byBhbiBhcnJheSBvZiBQeU9iamVjdCogZm9yIGEgc3BsaXQgdGFibGUKKyAqLwogdHlwZWRlZiBzdHJ1Y3QgewotICAgIC8qIENhY2hlZCBoYXNoIGNvZGUgb2YgbWVfa2V5LiAqLwotICAgIFB5X2hhc2hfdCBtZV9oYXNoOwotICAgIFB5T2JqZWN0ICptZV9rZXk7Ci0gICAgUHlPYmplY3QgKm1lX3ZhbHVlOwotfSBQeURpY3RFbnRyeTsKLQotLyoKLVRvIGVuc3VyZSB0aGUgbG9va3VwIGFsZ29yaXRobSB0ZXJtaW5hdGVzLCB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBVbnVzZWQKLXNsb3QgKE5VTEwga2V5KSBpbiB0aGUgdGFibGUuCi1UaGUgdmFsdWUgbWFfZmlsbCBpcyB0aGUgbnVtYmVyIG9mIG5vbi1OVUxMIGtleXMgKHN1bSBvZiBBY3RpdmUgYW5kIER1bW15KTsKLW1hX3VzZWQgaXMgdGhlIG51bWJlciBvZiBub24tTlVMTCwgbm9uLWR1bW15IGtleXMgKD09IHRoZSBudW1iZXIgb2Ygbm9uLU5VTEwKLXZhbHVlcyA9PSB0aGUgbnVtYmVyIG9mIEFjdGl2ZSBpdGVtcykuCi1UbyBhdm9pZCBzbG93aW5nIGRvd24gbG9va3VwcyBvbiBhIG5lYXItZnVsbCB0YWJsZSwgd2UgcmVzaXplIHRoZSB0YWJsZSB3aGVuCi1pdCdzIHR3by10aGlyZHMgZnVsbC4KLSovCi10eXBlZGVmIHN0cnVjdCBfZGljdG9iamVjdCBQeURpY3RPYmplY3Q7Ci1zdHJ1Y3QgX2RpY3RvYmplY3QgewogICAgIFB5T2JqZWN0X0hFQUQKLSAgICBQeV9zc2l6ZV90IG1hX2ZpbGw7ICAvKiAjIEFjdGl2ZSArICMgRHVtbXkgKi8KLSAgICBQeV9zc2l6ZV90IG1hX3VzZWQ7ICAvKiAjIEFjdGl2ZSAqLworICAgIFB5X3NzaXplX3QgbWFfdXNlZDsKKyAgICBQeURpY3RLZXlzT2JqZWN0ICptYV9rZXlzOworICAgIFB5T2JqZWN0ICoqbWFfdmFsdWVzOworfSBQeURpY3RPYmplY3Q7CiAKLSAgICAvKiBUaGUgdGFibGUgY29udGFpbnMgbWFfbWFzayArIDEgc2xvdHMsIGFuZCB0aGF0J3MgYSBwb3dlciBvZiAyLgotICAgICAqIFdlIHN0b3JlIHRoZSBtYXNrIGluc3RlYWQgb2YgdGhlIHNpemUgYmVjYXVzZSB0aGUgbWFzayBpcyBtb3JlCi0gICAgICogZnJlcXVlbnRseSBuZWVkZWQuCi0gICAgICovCi0gICAgUHlfc3NpemVfdCBtYV9tYXNrOwotCi0gICAgLyogbWFfdGFibGUgcG9pbnRzIHRvIG1hX3NtYWxsdGFibGUgZm9yIHNtYWxsIHRhYmxlcywgZWxzZSB0bwotICAgICAqIGFkZGl0aW9uYWwgbWFsbG9jJ2VkIG1lbW9yeS4gIG1hX3RhYmxlIGlzIG5ldmVyIE5VTEwhICBUaGlzIHJ1bGUKLSAgICAgKiBzYXZlcyByZXBlYXRlZCBydW50aW1lIG51bGwtdGVzdHMgaW4gdGhlIHdvcmtob3JzZSBnZXRpdGVtIGFuZAotICAgICAqIHNldGl0ZW0gY2FsbHMuCi0gICAgICovCi0gICAgUHlEaWN0RW50cnkgKm1hX3RhYmxlOwotICAgIFB5RGljdEVudHJ5ICooKm1hX2xvb2t1cCkoUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwgUHlfaGFzaF90IGhhc2gpOwotICAgIFB5RGljdEVudHJ5IG1hX3NtYWxsdGFibGVbUHlEaWN0X01JTlNJWkVdOwotfTsKICNlbmRpZiAvKiBQeV9MSU1JVEVEX0FQSSAqLwogCiBQeUFQSV9EQVRBKFB5VHlwZU9iamVjdCkgUHlEaWN0X1R5cGU7CkBAIC0xMDksMTIgKzUxLDE2IEBACiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5RGljdF9OZXcodm9pZCk7CiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5RGljdF9HZXRJdGVtKFB5T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSk7CiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5RGljdF9HZXRJdGVtV2l0aEVycm9yKFB5T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSk7CitQeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeURpY3RfR2V0SXRlbUlkV2l0aEVycm9yKFB5T2JqZWN0ICpkcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IF9QeV9JZGVudGlmaWVyICprZXkpOwogUHlBUElfRlVOQyhpbnQpIFB5RGljdF9TZXRJdGVtKFB5T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwgUHlPYmplY3QgKml0ZW0pOwogUHlBUElfRlVOQyhpbnQpIFB5RGljdF9EZWxJdGVtKFB5T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSk7CiBQeUFQSV9GVU5DKHZvaWQpIFB5RGljdF9DbGVhcihQeU9iamVjdCAqbXApOwogUHlBUElfRlVOQyhpbnQpIFB5RGljdF9OZXh0KAogICAgIFB5T2JqZWN0ICptcCwgUHlfc3NpemVfdCAqcG9zLCBQeU9iamVjdCAqKmtleSwgUHlPYmplY3QgKip2YWx1ZSk7CiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCitQeURpY3RLZXlzT2JqZWN0ICpfUHlEaWN0X05ld0tleXNGb3JDbGFzcyh2b2lkKTsKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlPYmplY3RfR2VuZXJpY0dldERpY3QoUHlPYmplY3QgKiwgdm9pZCAqKTsKIFB5QVBJX0ZVTkMoaW50KSBfUHlEaWN0X05leHQoCiAgICAgUHlPYmplY3QgKm1wLCBQeV9zc2l6ZV90ICpwb3MsIFB5T2JqZWN0ICoqa2V5LCBQeU9iamVjdCAqKnZhbHVlLCBQeV9oYXNoX3QgKmhhc2gpOwogI2VuZGlmCkBAIC0xMjksNiArNzUsMTAgQEAKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5RGljdF9OZXdQcmVzaXplZChQeV9zc2l6ZV90IG1pbnVzZWQpOwogUHlBUElfRlVOQyh2b2lkKSBfUHlEaWN0X01heWJlVW50cmFjayhQeU9iamVjdCAqbXApOwogUHlBUElfRlVOQyhpbnQpIF9QeURpY3RfSGFzT25seVN0cmluZ0tleXMoUHlPYmplY3QgKm1wKTsKK1B5X3NzaXplX3QgX1B5RGljdF9LZXlzU2l6ZShQeURpY3RLZXlzT2JqZWN0ICprZXlzKTsKKyNkZWZpbmUgX1B5RGljdF9IYXNTcGxpdFRhYmxlKGQpICgoZCktPm1hX3ZhbHVlcyAhPSBOVUxMKQorCitQeUFQSV9GVU5DKGludCkgUHlEaWN0X0NsZWFyRnJlZUxpc3Qodm9pZCk7CiAjZW5kaWYKIAogLyogUHlEaWN0X1VwZGF0ZShtcCwgb3RoZXIpIGlzIGVxdWl2YWxlbnQgdG8gUHlEaWN0X01lcmdlKG1wLCBvdGhlciwgMSkuICovCkBAIC0xNTMsOSArMTAzLDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG92ZXJyaWRlKTsKIAogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeURpY3RfR2V0SXRlbVN0cmluZyhQeU9iamVjdCAqZHAsIGNvbnN0IGNoYXIgKmtleSk7CitQeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeURpY3RfR2V0SXRlbUlkKFB5T2JqZWN0ICpkcCwgc3RydWN0IF9QeV9JZGVudGlmaWVyICprZXkpOwogUHlBUElfRlVOQyhpbnQpIFB5RGljdF9TZXRJdGVtU3RyaW5nKFB5T2JqZWN0ICpkcCwgY29uc3QgY2hhciAqa2V5LCBQeU9iamVjdCAqaXRlbSk7CitQeUFQSV9GVU5DKGludCkgX1B5RGljdF9TZXRJdGVtSWQoUHlPYmplY3QgKmRwLCBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKmtleSwgUHlPYmplY3QgKml0ZW0pOwogUHlBUElfRlVOQyhpbnQpIFB5RGljdF9EZWxJdGVtU3RyaW5nKFB5T2JqZWN0ICpkcCwgY29uc3QgY2hhciAqa2V5KTsKIAorI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQoraW50IF9QeU9iamVjdERpY3RfU2V0SXRlbShQeVR5cGVPYmplY3QgKnRwLCBQeU9iamVjdCAqKmRpY3RwdHIsIFB5T2JqZWN0ICpuYW1lLCBQeU9iamVjdCAqdmFsdWUpOworUHlPYmplY3QgKl9QeURpY3RfTG9hZEdsb2JhbChQeURpY3RPYmplY3QgKiwgUHlEaWN0T2JqZWN0ICosIFB5T2JqZWN0ICopOworUHlBUElfRlVOQyh2b2lkKSBfUHlEaWN0X0RlYnVnTWFsbG9jU3RhdHMoRklMRSAqb3V0KTsKKyNlbmRpZgorCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9kdG9hLmggYi9JbmNsdWRlL2R0b2EuaAppbmRleCA4MTliZDBmLi45YmZiNjI1IDEwMDY0NAotLS0gYS9JbmNsdWRlL2R0b2EuaAorKysgYi9JbmNsdWRlL2R0b2EuaApAQCAtOCw2ICs4LDggQEAKIFB5QVBJX0ZVTkMoY2hhciAqKSBfUHlfZGdfZHRvYShkb3VibGUgZCwgaW50IG1vZGUsIGludCBuZGlnaXRzLAogICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpkZWNwdCwgaW50ICpzaWduLCBjaGFyICoqcnZlKTsKIFB5QVBJX0ZVTkModm9pZCkgX1B5X2RnX2ZyZWVkdG9hKGNoYXIgKnMpOworUHlBUElfRlVOQyhkb3VibGUpIF9QeV9kZ19zdGRuYW4oaW50IHNpZ24pOworUHlBUElfRlVOQyhkb3VibGUpIF9QeV9kZ19pbmZpbml0eShpbnQgc2lnbik7CiAKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9JbmNsdWRlL2VycmNvZGUuaCBiL0luY2x1ZGUvZXJyY29kZS5oCmluZGV4IDZiYjNjYzEuLjU5NDY2ODYgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvZXJyY29kZS5oCisrKyBiL0luY2x1ZGUvZXJyY29kZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjZGVmaW5lIEVfRU9MUwkJMjQJLyogRU9MIGluIHNpbmdsZS1xdW90ZWQgc3RyaW5nICovCiAjZGVmaW5lIEVfTElORUNPTlQJMjUJLyogVW5leHBlY3RlZCBjaGFyYWN0ZXJzIGFmdGVyIGEgbGluZSBjb250aW51YXRpb24gKi8KICNkZWZpbmUgRV9JREVOVElGSUVSICAgIDI2ICAgICAgLyogSW52YWxpZCBjaGFyYWN0ZXJzIGluIGlkZW50aWZpZXIgKi8KKyNkZWZpbmUgRV9CQURTSU5HTEUJMjcJLyogSWxsLWZvcm1lZCBzaW5nbGUgc3RhdGVtZW50IGlucHV0ICovCiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9maWxldXRpbHMuaCBiL0luY2x1ZGUvZmlsZXV0aWxzLmgKaW5kZXggMmZhZGU5Yi4uN2MxOGNmMiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9maWxldXRpbHMuaAorKysgYi9JbmNsdWRlL2ZpbGV1dGlscy5oCkBAIC01LDYgKzUsOCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAorUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlfZGV2aWNlX2VuY29kaW5nKGludCk7CisKIFB5QVBJX0ZVTkMod2NoYXJfdCAqKSBfUHlfY2hhcjJ3Y2hhcigKICAgICBjb25zdCBjaGFyICphcmcsCiAgICAgc2l6ZV90ICpzaXplKTsKZGlmZiAtLWdpdCBhL0luY2x1ZGUvZmxvYXRvYmplY3QuaCBiL0luY2x1ZGUvZmxvYXRvYmplY3QuaAppbmRleCA5MGYwYTQ1Li5lMjQwZmRiIDEwMDY0NAotLS0gYS9JbmNsdWRlL2Zsb2F0b2JqZWN0LmgKKysrIGIvSW5jbHVkZS9mbG9hdG9iamVjdC5oCkBAIC0yNywxMiArMjcsMTIgQEAKICNkZWZpbmUgUHlfUkVUVVJOX05BTiByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKFB5X05BTikKICNlbmRpZgogCi0jZGVmaW5lIFB5X1JFVFVSTl9JTkYoc2lnbikgZG8JCQkJCVwKLQlpZiAoY29weXNpZ24oMS4sIHNpZ24pID09IDEuKSB7CQkJCVwKLQkJcmV0dXJuIFB5RmxvYXRfRnJvbURvdWJsZShQeV9IVUdFX1ZBTCk7CVwKLQl9IGVsc2UgewkJCQkJCVwKLQkJcmV0dXJuIFB5RmxvYXRfRnJvbURvdWJsZSgtUHlfSFVHRV9WQUwpOwlcCi0JfSB3aGlsZSgwKQorI2RlZmluZSBQeV9SRVRVUk5fSU5GKHNpZ24pIGRvICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChjb3B5c2lnbigxLiwgc2lnbikgPT0gMS4pIHsgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKFB5X0hVR0VfVkFMKTsgICAgXAorICAgIH0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKC1QeV9IVUdFX1ZBTCk7ICAgXAorICAgIH0gd2hpbGUoMCkKIAogUHlBUElfRlVOQyhkb3VibGUpIFB5RmxvYXRfR2V0TWF4KHZvaWQpOwogUHlBUElfRlVOQyhkb3VibGUpIFB5RmxvYXRfR2V0TWluKHZvaWQpOwpAQCAtMTEwLDExICsxMTAsMTYgQEAKIC8qIGZyZWUgbGlzdCBhcGkgKi8KIFB5QVBJX0ZVTkMoaW50KSBQeUZsb2F0X0NsZWFyRnJlZUxpc3Qodm9pZCk7CiAKK1B5QVBJX0ZVTkModm9pZCkgX1B5RmxvYXRfRGVidWdNYWxsb2NTdGF0cyhGSUxFKiBvdXQpOworCiAvKiBGb3JtYXQgdGhlIG9iamVjdCBiYXNlZCBvbiB0aGUgZm9ybWF0X3NwZWMsIGFzIGRlZmluZWQgaW4gUEVQIDMxMDEKICAgIChBZHZhbmNlZCBTdHJpbmcgRm9ybWF0dGluZykuICovCi1QeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeUZsb2F0X0Zvcm1hdEFkdmFuY2VkKFB5T2JqZWN0ICpvYmosCi0JCQkJCSAgICAgICBQeV9VTklDT0RFICpmb3JtYXRfc3BlYywKLQkJCQkJICAgICAgIFB5X3NzaXplX3QgZm9ybWF0X3NwZWNfbGVuKTsKK1B5QVBJX0ZVTkMoaW50KSBfUHlGbG9hdF9Gb3JtYXRBZHZhbmNlZFdyaXRlcigKKyAgICBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsCisgICAgUHlPYmplY3QgKm9iaiwKKyAgICBQeU9iamVjdCAqZm9ybWF0X3NwZWMsCisgICAgUHlfc3NpemVfdCBzdGFydCwKKyAgICBQeV9zc2l6ZV90IGVuZCk7CiAjZW5kaWYgLyogUHlfTElNSVRFRF9BUEkgKi8KIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9JbmNsdWRlL2ZyYW1lb2JqZWN0LmggYi9JbmNsdWRlL2ZyYW1lb2JqZWN0LmgKaW5kZXggMWZiNjRiYi4uYWMyZjc5MCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9mcmFtZW9iamVjdC5oCisrKyBiL0luY2x1ZGUvZnJhbWVvYmplY3QuaApAQCAtOSw0NSArOSw0NSBAQAogI2VuZGlmCiAKIHR5cGVkZWYgc3RydWN0IHsKLSAgICBpbnQgYl90eXBlOwkJCS8qIHdoYXQga2luZCBvZiBibG9jayB0aGlzIGlzICovCi0gICAgaW50IGJfaGFuZGxlcjsJCS8qIHdoZXJlIHRvIGp1bXAgdG8gZmluZCBoYW5kbGVyICovCi0gICAgaW50IGJfbGV2ZWw7CQkvKiB2YWx1ZSBzdGFjayBsZXZlbCB0byBwb3AgdG8gKi8KKyAgICBpbnQgYl90eXBlOyAgICAgICAgICAgICAgICAgLyogd2hhdCBraW5kIG9mIGJsb2NrIHRoaXMgaXMgKi8KKyAgICBpbnQgYl9oYW5kbGVyOyAgICAgICAgICAgICAgLyogd2hlcmUgdG8ganVtcCB0byBmaW5kIGhhbmRsZXIgKi8KKyAgICBpbnQgYl9sZXZlbDsgICAgICAgICAgICAgICAgLyogdmFsdWUgc3RhY2sgbGV2ZWwgdG8gcG9wIHRvICovCiB9IFB5VHJ5QmxvY2s7CiAKIHR5cGVkZWYgc3RydWN0IF9mcmFtZSB7CiAgICAgUHlPYmplY3RfVkFSX0hFQUQKLSAgICBzdHJ1Y3QgX2ZyYW1lICpmX2JhY2s7CS8qIHByZXZpb3VzIGZyYW1lLCBvciBOVUxMICovCi0gICAgUHlDb2RlT2JqZWN0ICpmX2NvZGU7CS8qIGNvZGUgc2VnbWVudCAqLwotICAgIFB5T2JqZWN0ICpmX2J1aWx0aW5zOwkvKiBidWlsdGluIHN5bWJvbCB0YWJsZSAoUHlEaWN0T2JqZWN0KSAqLwotICAgIFB5T2JqZWN0ICpmX2dsb2JhbHM7CS8qIGdsb2JhbCBzeW1ib2wgdGFibGUgKFB5RGljdE9iamVjdCkgKi8KLSAgICBQeU9iamVjdCAqZl9sb2NhbHM7CQkvKiBsb2NhbCBzeW1ib2wgdGFibGUgKGFueSBtYXBwaW5nKSAqLwotICAgIFB5T2JqZWN0ICoqZl92YWx1ZXN0YWNrOwkvKiBwb2ludHMgYWZ0ZXIgdGhlIGxhc3QgbG9jYWwgKi8KKyAgICBzdHJ1Y3QgX2ZyYW1lICpmX2JhY2s7ICAgICAgLyogcHJldmlvdXMgZnJhbWUsIG9yIE5VTEwgKi8KKyAgICBQeUNvZGVPYmplY3QgKmZfY29kZTsgICAgICAgLyogY29kZSBzZWdtZW50ICovCisgICAgUHlPYmplY3QgKmZfYnVpbHRpbnM7ICAgICAgIC8qIGJ1aWx0aW4gc3ltYm9sIHRhYmxlIChQeURpY3RPYmplY3QpICovCisgICAgUHlPYmplY3QgKmZfZ2xvYmFsczsgICAgICAgIC8qIGdsb2JhbCBzeW1ib2wgdGFibGUgKFB5RGljdE9iamVjdCkgKi8KKyAgICBQeU9iamVjdCAqZl9sb2NhbHM7ICAgICAgICAgLyogbG9jYWwgc3ltYm9sIHRhYmxlIChhbnkgbWFwcGluZykgKi8KKyAgICBQeU9iamVjdCAqKmZfdmFsdWVzdGFjazsgICAgLyogcG9pbnRzIGFmdGVyIHRoZSBsYXN0IGxvY2FsICovCiAgICAgLyogTmV4dCBmcmVlIHNsb3QgaW4gZl92YWx1ZXN0YWNrLiAgRnJhbWUgY3JlYXRpb24gc2V0cyB0byBmX3ZhbHVlc3RhY2suCiAgICAgICAgRnJhbWUgZXZhbHVhdGlvbiB1c3VhbGx5IE5VTExzIGl0LCBidXQgYSBmcmFtZSB0aGF0IHlpZWxkcyBzZXRzIGl0CiAgICAgICAgdG8gdGhlIGN1cnJlbnQgc3RhY2sgdG9wLiAqLwogICAgIFB5T2JqZWN0ICoqZl9zdGFja3RvcDsKLSAgICBQeU9iamVjdCAqZl90cmFjZTsJCS8qIFRyYWNlIGZ1bmN0aW9uICovCisgICAgUHlPYmplY3QgKmZfdHJhY2U7ICAgICAgICAgIC8qIFRyYWNlIGZ1bmN0aW9uICovCiAKLQkvKiBJbiBhIGdlbmVyYXRvciwgd2UgbmVlZCB0byBiZSBhYmxlIHRvIHN3YXAgYmV0d2VlbiB0aGUgZXhjZXB0aW9uCi0JICAgc3RhdGUgaW5zaWRlIHRoZSBnZW5lcmF0b3IgYW5kIHRoZSBleGNlcHRpb24gc3RhdGUgb2YgdGhlIGNhbGxpbmcKLQkgICBmcmFtZSAod2hpY2ggc2hvdWxkbid0IGJlIGltcGFjdGVkIHdoZW4gdGhlIGdlbmVyYXRvciAieWllbGRzIgotCSAgIGZyb20gYW4gZXhjZXB0IGhhbmRsZXIpLgotCSAgIFRoZXNlIHRocmVlIGZpZWxkcyBleGlzdCBleGFjdGx5IGZvciB0aGF0LCBhbmQgYXJlIHVudXNlZCBmb3IKLQkgICBub24tZ2VuZXJhdG9yIGZyYW1lcy4gU2VlIHRoZSBTQVZFX0VYQ19TVEFURSBhbmQgU1dBUF9FWENfU1RBVEUKLQkgICBtYWNyb3MgaW4gY2V2YWwuYyBmb3IgZGV0YWlscyBvZiB0aGVpciB1c2UuICovCisgICAgICAgIC8qIEluIGEgZ2VuZXJhdG9yLCB3ZSBuZWVkIHRvIGJlIGFibGUgdG8gc3dhcCBiZXR3ZWVuIHRoZSBleGNlcHRpb24KKyAgICAgICAgICAgc3RhdGUgaW5zaWRlIHRoZSBnZW5lcmF0b3IgYW5kIHRoZSBleGNlcHRpb24gc3RhdGUgb2YgdGhlIGNhbGxpbmcKKyAgICAgICAgICAgZnJhbWUgKHdoaWNoIHNob3VsZG4ndCBiZSBpbXBhY3RlZCB3aGVuIHRoZSBnZW5lcmF0b3IgInlpZWxkcyIKKyAgICAgICAgICAgZnJvbSBhbiBleGNlcHQgaGFuZGxlcikuCisgICAgICAgICAgIFRoZXNlIHRocmVlIGZpZWxkcyBleGlzdCBleGFjdGx5IGZvciB0aGF0LCBhbmQgYXJlIHVudXNlZCBmb3IKKyAgICAgICAgICAgbm9uLWdlbmVyYXRvciBmcmFtZXMuIFNlZSB0aGUgU0FWRV9FWENfU1RBVEUgYW5kIFNXQVBfRVhDX1NUQVRFCisgICAgICAgICAgIG1hY3JvcyBpbiBjZXZhbC5jIGZvciBkZXRhaWxzIG9mIHRoZWlyIHVzZS4gKi8KICAgICBQeU9iamVjdCAqZl9leGNfdHlwZSwgKmZfZXhjX3ZhbHVlLCAqZl9leGNfdHJhY2ViYWNrOwogCiAgICAgUHlUaHJlYWRTdGF0ZSAqZl90c3RhdGU7Ci0gICAgaW50IGZfbGFzdGk7CQkvKiBMYXN0IGluc3RydWN0aW9uIGlmIGNhbGxlZCAqLworICAgIGludCBmX2xhc3RpOyAgICAgICAgICAgICAgICAvKiBMYXN0IGluc3RydWN0aW9uIGlmIGNhbGxlZCAqLwogICAgIC8qIENhbGwgUHlGcmFtZV9HZXRMaW5lTnVtYmVyKCkgaW5zdGVhZCBvZiByZWFkaW5nIHRoaXMgZmllbGQKICAgICAgICBkaXJlY3RseS4gIEFzIG9mIDIuMyBmX2xpbmVubyBpcyBvbmx5IHZhbGlkIHdoZW4gdHJhY2luZyBpcwogICAgICAgIGFjdGl2ZSAoaS5lLiB3aGVuIGZfdHJhY2UgaXMgc2V0KS4gIEF0IG90aGVyIHRpbWVzIHdlIHVzZQogICAgICAgIFB5Q29kZV9BZGRyMkxpbmUgdG8gY2FsY3VsYXRlIHRoZSBsaW5lIGZyb20gdGhlIGN1cnJlbnQKICAgICAgICBieXRlY29kZSBpbmRleC4gKi8KLSAgICBpbnQgZl9saW5lbm87CQkvKiBDdXJyZW50IGxpbmUgbnVtYmVyICovCi0gICAgaW50IGZfaWJsb2NrOwkJLyogaW5kZXggaW4gZl9ibG9ja3N0YWNrICovCisgICAgaW50IGZfbGluZW5vOyAgICAgICAgICAgICAgIC8qIEN1cnJlbnQgbGluZSBudW1iZXIgKi8KKyAgICBpbnQgZl9pYmxvY2s7ICAgICAgICAgICAgICAgLyogaW5kZXggaW4gZl9ibG9ja3N0YWNrICovCiAgICAgUHlUcnlCbG9jayBmX2Jsb2Nrc3RhY2tbQ09fTUFYQkxPQ0tTXTsgLyogZm9yIHRyeSBhbmQgbG9vcCBibG9ja3MgKi8KLSAgICBQeU9iamVjdCAqZl9sb2NhbHNwbHVzWzFdOwkvKiBsb2NhbHMrc3RhY2ssIGR5bmFtaWNhbGx5IHNpemVkICovCisgICAgUHlPYmplY3QgKmZfbG9jYWxzcGx1c1sxXTsgIC8qIGxvY2FscytzdGFjaywgZHluYW1pY2FsbHkgc2l6ZWQgKi8KIH0gUHlGcmFtZU9iamVjdDsKIAogCkBAIC03OSw2ICs3OSw4IEBACiAKIFB5QVBJX0ZVTkMoaW50KSBQeUZyYW1lX0NsZWFyRnJlZUxpc3Qodm9pZCk7CiAKK1B5QVBJX0ZVTkModm9pZCkgX1B5RnJhbWVfRGVidWdNYWxsb2NTdGF0cyhGSUxFICpvdXQpOworCiAvKiBSZXR1cm4gdGhlIGxpbmUgb2YgY29kZSB0aGUgZnJhbWUgaXMgY3VycmVudGx5IGV4ZWN1dGluZy4gKi8KIFB5QVBJX0ZVTkMoaW50KSBQeUZyYW1lX0dldExpbmVOdW1iZXIoUHlGcmFtZU9iamVjdCAqKTsKIApkaWZmIC0tZ2l0IGEvSW5jbHVkZS9mdW5jb2JqZWN0LmggYi9JbmNsdWRlL2Z1bmNvYmplY3QuaAppbmRleCA1MjFkODdiLi5jYzE0MjZjIDEwMDY0NAotLS0gYS9JbmNsdWRlL2Z1bmNvYmplY3QuaAorKysgYi9JbmNsdWRlL2Z1bmNvYmplY3QuaApAQCAtMzEsNiArMzEsNyBAQAogICAgIFB5T2JqZWN0ICpmdW5jX3dlYWtyZWZsaXN0OwkvKiBMaXN0IG9mIHdlYWsgcmVmZXJlbmNlcyAqLwogICAgIFB5T2JqZWN0ICpmdW5jX21vZHVsZTsJLyogVGhlIF9fbW9kdWxlX18gYXR0cmlidXRlLCBjYW4gYmUgYW55dGhpbmcgKi8KICAgICBQeU9iamVjdCAqZnVuY19hbm5vdGF0aW9uczsJLyogQW5ub3RhdGlvbnMsIGEgZGljdCBvciBOVUxMICovCisgICAgUHlPYmplY3QgKmZ1bmNfcXVhbG5hbWU7ICAgIC8qIFRoZSBxdWFsaWZpZWQgbmFtZSAqLwogCiAgICAgLyogSW52YXJpYW50OgogICAgICAqICAgICBmdW5jX2Nsb3N1cmUgY29udGFpbnMgdGhlIGJpbmRpbmdzIGZvciBmdW5jX2NvZGUtPmNvX2ZyZWV2YXJzLCBzbwpAQCAtNDQsNiArNDUsNyBAQAogI2RlZmluZSBQeUZ1bmN0aW9uX0NoZWNrKG9wKSAoUHlfVFlQRShvcCkgPT0gJlB5RnVuY3Rpb25fVHlwZSkKIAogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUZ1bmN0aW9uX05ldyhQeU9iamVjdCAqLCBQeU9iamVjdCAqKTsKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlGdW5jdGlvbl9OZXdXaXRoUXVhbE5hbWUoUHlPYmplY3QgKiwgUHlPYmplY3QgKiwgUHlPYmplY3QgKik7CiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5RnVuY3Rpb25fR2V0Q29kZShQeU9iamVjdCAqKTsKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlGdW5jdGlvbl9HZXRHbG9iYWxzKFB5T2JqZWN0ICopOwogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUZ1bmN0aW9uX0dldE1vZHVsZShQeU9iamVjdCAqKTsKZGlmZiAtLWdpdCBhL0luY2x1ZGUvZ2Vub2JqZWN0LmggYi9JbmNsdWRlL2dlbm9iamVjdC5oCmluZGV4IGQyOWZiMWUuLmVkNDUxYmEgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvZ2Vub2JqZWN0LmgKKysrIGIvSW5jbHVkZS9nZW5vYmplY3QuaApAQCAtMTEsMjAgKzExLDIwIEBACiBzdHJ1Y3QgX2ZyYW1lOyAvKiBBdm9pZCBpbmNsdWRpbmcgZnJhbWVvYmplY3QuaCAqLwogCiB0eXBlZGVmIHN0cnVjdCB7Ci0JUHlPYmplY3RfSEVBRAotCS8qIFRoZSBnaV8gcHJlZml4IGlzIGludGVuZGVkIHRvIHJlbWluZCBvZiBnZW5lcmF0b3ItaXRlcmF0b3IuICovCisgICAgUHlPYmplY3RfSEVBRAorICAgIC8qIFRoZSBnaV8gcHJlZml4IGlzIGludGVuZGVkIHRvIHJlbWluZCBvZiBnZW5lcmF0b3ItaXRlcmF0b3IuICovCiAKLQkvKiBOb3RlOiBnaV9mcmFtZSBjYW4gYmUgTlVMTCBpZiB0aGUgZ2VuZXJhdG9yIGlzICJmaW5pc2hlZCIgKi8KLQlzdHJ1Y3QgX2ZyYW1lICpnaV9mcmFtZTsKKyAgICAvKiBOb3RlOiBnaV9mcmFtZSBjYW4gYmUgTlVMTCBpZiB0aGUgZ2VuZXJhdG9yIGlzICJmaW5pc2hlZCIgKi8KKyAgICBzdHJ1Y3QgX2ZyYW1lICpnaV9mcmFtZTsKIAotCS8qIFRydWUgaWYgZ2VuZXJhdG9yIGlzIGJlaW5nIGV4ZWN1dGVkLiAqLwotCWludCBnaV9ydW5uaW5nOwotICAgIAotCS8qIFRoZSBjb2RlIG9iamVjdCBiYWNraW5nIHRoZSBnZW5lcmF0b3IgKi8KLQlQeU9iamVjdCAqZ2lfY29kZTsKKyAgICAvKiBUcnVlIGlmIGdlbmVyYXRvciBpcyBiZWluZyBleGVjdXRlZC4gKi8KKyAgICBjaGFyIGdpX3J1bm5pbmc7CiAKLQkvKiBMaXN0IG9mIHdlYWsgcmVmZXJlbmNlLiAqLwotCVB5T2JqZWN0ICpnaV93ZWFrcmVmbGlzdDsKKyAgICAvKiBUaGUgY29kZSBvYmplY3QgYmFja2luZyB0aGUgZ2VuZXJhdG9yICovCisgICAgUHlPYmplY3QgKmdpX2NvZGU7CisKKyAgICAvKiBMaXN0IG9mIHdlYWsgcmVmZXJlbmNlLiAqLworICAgIFB5T2JqZWN0ICpnaV93ZWFrcmVmbGlzdDsKIH0gUHlHZW5PYmplY3Q7CiAKIFB5QVBJX0RBVEEoUHlUeXBlT2JqZWN0KSBQeUdlbl9UeXBlOwpAQCAtMzQsNiArMzQsOCBAQAogCiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5R2VuX05ldyhzdHJ1Y3QgX2ZyYW1lICopOwogUHlBUElfRlVOQyhpbnQpIFB5R2VuX05lZWRzRmluYWxpemluZyhQeUdlbk9iamVjdCAqKTsKK1B5QVBJX0ZVTkMoaW50KSBfUHlHZW5fRmV0Y2hTdG9wSXRlcmF0aW9uVmFsdWUoUHlPYmplY3QgKiopOworUHlPYmplY3QgKl9QeUdlbl9TZW5kKFB5R2VuT2JqZWN0ICosIFB5T2JqZWN0ICopOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL0luY2x1ZGUvZ3JhbWluaXQuaCBiL0luY2x1ZGUvZ3JhbWluaXQuaAppbmRleCBlMGUyN2Y5Li4zZWM5NDlhIDEwMDY0NAotLS0gYS9JbmNsdWRlL2dyYW1pbml0LmgKKysrIGIvSW5jbHVkZS9ncmFtaW5pdC5oCkBAIC04MSwzICs4MSw0IEBACiAjZGVmaW5lIGNvbXBfaWYgMzM0CiAjZGVmaW5lIGVuY29kaW5nX2RlY2wgMzM1CiAjZGVmaW5lIHlpZWxkX2V4cHIgMzM2CisjZGVmaW5lIHlpZWxkX2FyZyAzMzcKZGlmZiAtLWdpdCBhL0luY2x1ZGUvaW1wb3J0LmggYi9JbmNsdWRlL2ltcG9ydC5oCmluZGV4IDQwMGU5N2MuLmJjMjFhZTIgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvaW1wb3J0LmgKKysrIGIvSW5jbHVkZS9pbXBvcnQuaApAQCAtNyw2ICs3LDkgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKK1B5QVBJX0ZVTkModm9pZCkgX1B5SW1wb3J0WmlwX0luaXQodm9pZCk7CisKK1B5TU9ESU5JVF9GVU5DIFB5SW5pdF9pbXAodm9pZCk7CiBQeUFQSV9GVU5DKGxvbmcpIFB5SW1wb3J0X0dldE1hZ2ljTnVtYmVyKHZvaWQpOwogUHlBUElfRlVOQyhjb25zdCBjaGFyICopIFB5SW1wb3J0X0dldE1hZ2ljVGFnKHZvaWQpOwogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZSgKQEAgLTI0LDcgKzI3LDE2IEBACiAgICAgY2hhciAqcGF0aG5hbWUsICAgICAgICAgICAgIC8qIGRlY29kZWQgZnJvbSB0aGUgZmlsZXN5c3RlbSBlbmNvZGluZyAqLwogICAgIGNoYXIgKmNwYXRobmFtZSAgICAgICAgICAgICAvKiBkZWNvZGVkIGZyb20gdGhlIGZpbGVzeXN0ZW0gZW5jb2RpbmcgKi8KICAgICApOworUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZU9iamVjdCgKKyAgICBQeU9iamVjdCAqbmFtZSwKKyAgICBQeU9iamVjdCAqY28sCisgICAgUHlPYmplY3QgKnBhdGhuYW1lLAorICAgIFB5T2JqZWN0ICpjcGF0aG5hbWUKKyAgICApOwogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUltcG9ydF9HZXRNb2R1bGVEaWN0KHZvaWQpOworUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUltcG9ydF9BZGRNb2R1bGVPYmplY3QoCisgICAgUHlPYmplY3QgKm5hbWUKKyAgICApOwogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUltcG9ydF9BZGRNb2R1bGUoCiAgICAgY29uc3QgY2hhciAqbmFtZSAgICAgICAgICAgIC8qIFVURi04IGVuY29kZWQgc3RyaW5nICovCiAgICAgKTsKQEAgLTM1LDcgKzQ3LDE0IEBACiAgICAgY29uc3QgY2hhciAqbmFtZSAgICAgICAgICAgIC8qIFVURi04IGVuY29kZWQgc3RyaW5nICovCiAgICAgKTsKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWwoCi0gICAgY2hhciAqbmFtZSwgICAgICAgICAgICAgICAgIC8qIFVURi04IGVuY29kZWQgc3RyaW5nICovCisgICAgY29uc3QgY2hhciAqbmFtZSwgICAgICAgICAgIC8qIFVURi04IGVuY29kZWQgc3RyaW5nICovCisgICAgUHlPYmplY3QgKmdsb2JhbHMsCisgICAgUHlPYmplY3QgKmxvY2FscywKKyAgICBQeU9iamVjdCAqZnJvbWxpc3QsCisgICAgaW50IGxldmVsCisgICAgKTsKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWxPYmplY3QoCisgICAgUHlPYmplY3QgKm5hbWUsCiAgICAgUHlPYmplY3QgKmdsb2JhbHMsCiAgICAgUHlPYmplY3QgKmxvY2FscywKICAgICBQeU9iamVjdCAqZnJvbWxpc3QsCkBAIC00OSw2ICs2OCw5IEBACiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5SW1wb3J0X0ltcG9ydChQeU9iamVjdCAqbmFtZSk7CiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5SW1wb3J0X1JlbG9hZE1vZHVsZShQeU9iamVjdCAqbSk7CiBQeUFQSV9GVU5DKHZvaWQpIFB5SW1wb3J0X0NsZWFudXAodm9pZCk7CitQeUFQSV9GVU5DKGludCkgUHlJbXBvcnRfSW1wb3J0RnJvemVuTW9kdWxlT2JqZWN0KAorICAgIFB5T2JqZWN0ICpuYW1lCisgICAgKTsKIFB5QVBJX0ZVTkMoaW50KSBQeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGUoCiAgICAgY2hhciAqbmFtZSAgICAgICAgICAgICAgICAgIC8qIFVURi04IGVuY29kZWQgc3RyaW5nICovCiAgICAgKTsKQEAgLTY1LDE3ICs4NywxNyBAQAogUHlBUElfRlVOQyh2b2lkKSBfUHlJbXBvcnRfUmVJbml0TG9jayh2b2lkKTsKIAogUHlBUElfRlVOQyhQeU9iamVjdCAqKV9QeUltcG9ydF9GaW5kQnVpbHRpbigKLSAgICBjaGFyICpuYW1lICAgICAgICAgICAgICAgICAgLyogVVRGLTggZW5jb2RlZCBzdHJpbmcgKi8KKyAgICBjb25zdCBjaGFyICpuYW1lICAgICAgICAgICAgLyogVVRGLTggZW5jb2RlZCBzdHJpbmcgKi8KICAgICApOwotUHlBUElfRlVOQyhQeU9iamVjdCAqKV9QeUltcG9ydF9GaW5kRXh0ZW5zaW9uVW5pY29kZShjaGFyICosIFB5T2JqZWN0ICopOworUHlBUElfRlVOQyhQeU9iamVjdCAqKV9QeUltcG9ydF9GaW5kRXh0ZW5zaW9uT2JqZWN0KFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwogUHlBUElfRlVOQyhpbnQpX1B5SW1wb3J0X0ZpeHVwQnVpbHRpbigKICAgICBQeU9iamVjdCAqbW9kLAogICAgIGNoYXIgKm5hbWUgICAgICAgICAgICAgICAgICAvKiBVVEYtOCBlbmNvZGVkIHN0cmluZyAqLwogICAgICk7Ci1QeUFQSV9GVU5DKGludClfUHlJbXBvcnRfRml4dXBFeHRlbnNpb25Vbmljb2RlKFB5T2JqZWN0KiwgY2hhciAqLCBQeU9iamVjdCAqKTsKK1B5QVBJX0ZVTkMoaW50KV9QeUltcG9ydF9GaXh1cEV4dGVuc2lvbk9iamVjdChQeU9iamVjdCosIFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwogCiBzdHJ1Y3QgX2luaXR0YWIgewotICAgIGNoYXIgKm5hbWU7CisgICAgY2hhciAqbmFtZTsgICAgICAgICAgICAgICAgIC8qIEFTQ0lJIGVuY29kZWQgc3RyaW5nICovCiAgICAgUHlPYmplY3QqICgqaW5pdGZ1bmMpKHZvaWQpOwogfTsKIFB5QVBJX0RBVEEoc3RydWN0IF9pbml0dGFiICopIFB5SW1wb3J0X0luaXR0YWI7CmRpZmYgLS1naXQgYS9JbmNsdWRlL2ludHJjaGVjay5oIGIvSW5jbHVkZS9pbnRyY2hlY2suaAppbmRleCAzYjY3ZWQwLi5mNTNmZWUxIDEwMDY0NAotLS0gYS9JbmNsdWRlL2ludHJjaGVjay5oCisrKyBiL0luY2x1ZGUvaW50cmNoZWNrLmgKQEAgLTgsNiArOCwxMiBAQAogUHlBUElfRlVOQyhpbnQpIFB5T1NfSW50ZXJydXB0T2NjdXJyZWQodm9pZCk7CiBQeUFQSV9GVU5DKHZvaWQpIFB5T1NfSW5pdEludGVycnVwdHModm9pZCk7CiBQeUFQSV9GVU5DKHZvaWQpIFB5T1NfQWZ0ZXJGb3JrKHZvaWQpOworUHlBUElfRlVOQyhpbnQpIF9QeU9TX0lzTWFpblRocmVhZCh2b2lkKTsKKworI2lmZGVmIE1TX1dJTkRPV1MKKy8qIHdpbmRvd3MuaCBpcyBub3QgaW5jbHVkZWQgYnkgUHl0aG9uLmggc28gdXNlIHZvaWQqIGluc3RlYWQgb2YgSEFORExFICovCitQeUFQSV9GVU5DKHZvaWQqKSBfUHlPU19TaWdpbnRFdmVudCh2b2lkKTsKKyNlbmRpZgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL0luY2x1ZGUvbGlzdG9iamVjdC5oIGIvSW5jbHVkZS9saXN0b2JqZWN0LmgKaW5kZXggOTQ5YjFhMy4uZGM2MmFlZSAxMDA2NDQKLS0tIGEvSW5jbHVkZS9saXN0b2JqZWN0LmgKKysrIGIvSW5jbHVkZS9saXN0b2JqZWN0LmgKQEAgLTYyLDYgKzYyLDkgQEAKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlMaXN0X0FzVHVwbGUoUHlPYmplY3QgKik7CiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeUxpc3RfRXh0ZW5kKFB5TGlzdE9iamVjdCAqLCBQeU9iamVjdCAqKTsKKworUHlBUElfRlVOQyhpbnQpIFB5TGlzdF9DbGVhckZyZWVMaXN0KHZvaWQpOworUHlBUElfRlVOQyh2b2lkKSBfUHlMaXN0X0RlYnVnTWFsbG9jU3RhdHMoRklMRSAqb3V0KTsKICNlbmRpZgogCiAvKiBNYWNybywgdHJhZGluZyBzYWZldHkgZm9yIHNwZWVkICovCmRpZmYgLS1naXQgYS9JbmNsdWRlL2xvbmdpbnRyZXByLmggYi9JbmNsdWRlL2xvbmdpbnRyZXByLmgKaW5kZXggYjk0ZjdiMi4uM2E0NWJhZCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9sb25naW50cmVwci5oCisrKyBiL0luY2x1ZGUvbG9uZ2ludHJlcHIuaApAQCAtNiw3ICs2LDcgQEAKICNlbmRpZgogCiAKLS8qIFRoaXMgaXMgcHVibGlzaGVkIGZvciB0aGUgYmVuZWZpdCBvZiAiZnJpZW5kIiBtYXJzaGFsLmMgb25seS4gKi8KKy8qIFRoaXMgaXMgcHVibGlzaGVkIGZvciB0aGUgYmVuZWZpdCBvZiAiZnJpZW5kcyIgbWFyc2hhbC5jIGFuZCBfZGVjaW1hbC5jLiAqLwogCiAvKiBQYXJhbWV0ZXJzIG9mIHRoZSBsb25nIGludGVnZXIgcmVwcmVzZW50YXRpb24uICBUaGVyZSBhcmUgdHdvIGRpZmZlcmVudAogICAgc2V0cyBvZiBwYXJhbWV0ZXJzOiBvbmUgc2V0IGZvciAzMC1iaXQgZGlnaXRzLCBzdG9yZWQgaW4gYW4gdW5zaWduZWQgMzItYml0CmRpZmYgLS1naXQgYS9JbmNsdWRlL2xvbmdvYmplY3QuaCBiL0luY2x1ZGUvbG9uZ29iamVjdC5oCmluZGV4IGMwOTU2NWEuLmQ3NDFmMWIgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvbG9uZ29iamVjdC5oCisrKyBiL0luY2x1ZGUvbG9uZ29iamVjdC5oCkBAIC0xMiw3ICsxMiw3IEBACiBQeUFQSV9EQVRBKFB5VHlwZU9iamVjdCkgUHlMb25nX1R5cGU7CiAKICNkZWZpbmUgUHlMb25nX0NoZWNrKG9wKSBcCi0JCVB5VHlwZV9GYXN0U3ViY2xhc3MoUHlfVFlQRShvcCksIFB5X1RQRkxBR1NfTE9OR19TVUJDTEFTUykKKyAgICAgICAgUHlUeXBlX0Zhc3RTdWJjbGFzcyhQeV9UWVBFKG9wKSwgUHlfVFBGTEFHU19MT05HX1NVQkNMQVNTKQogI2RlZmluZSBQeUxvbmdfQ2hlY2tFeGFjdChvcCkgKFB5X1RZUEUob3ApID09ICZQeUxvbmdfVHlwZSkKIAogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUxvbmdfRnJvbUxvbmcobG9uZyk7CkBAIC04MCw2ICs4MCw3IEBACiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5TG9uZ19Gcm9tU3RyaW5nKGNoYXIgKiwgY2hhciAqKiwgaW50KTsKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlMb25nX0Zyb21Vbmljb2RlKFB5X1VOSUNPREUqLCBQeV9zc2l6ZV90LCBpbnQpOworUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUxvbmdfRnJvbVVuaWNvZGVPYmplY3QoUHlPYmplY3QgKnUsIGludCBiYXNlKTsKICNlbmRpZgogCiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCkBAIC0xMjEsOCArMTIyLDggQEAKICAgICAgZW5vdWdoIG1lbW9yeSB0byBjcmVhdGUgdGhlIFB5dGhvbiBsb25nLgogKi8KIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5TG9uZ19Gcm9tQnl0ZUFycmF5KAotCWNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBzaXplX3QgbiwKLQlpbnQgbGl0dGxlX2VuZGlhbiwgaW50IGlzX3NpZ25lZCk7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciogYnl0ZXMsIHNpemVfdCBuLAorICAgIGludCBsaXR0bGVfZW5kaWFuLCBpbnQgaXNfc2lnbmVkKTsKIAogLyogX1B5TG9uZ19Bc0J5dGVBcnJheTogQ29udmVydCB0aGUgbGVhc3Qtc2lnbmlmaWNhbnQgOCpuIGJpdHMgb2YgbG9uZwogICAgdiB0byBhIGJhc2UtMjU2IGludGVnZXIsIHN0b3JlZCBpbiBhcnJheSBieXRlcy4gIE5vcm1hbGx5IHJldHVybiAwLApAQCAtMTQ0LDE5ICsxNDUsMjggQEAKICAgICAgY2FzZSwgYnV0IGJ5dGVzIGhvbGRzIHRoZSBsZWFzdC1zaWduZmljYW50IG4gYnl0ZXMgb2YgdGhlIHRydWUgdmFsdWUuCiAqLwogUHlBUElfRlVOQyhpbnQpIF9QeUxvbmdfQXNCeXRlQXJyYXkoUHlMb25nT2JqZWN0KiB2LAotCXVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBzaXplX3QgbiwKLQlpbnQgbGl0dGxlX2VuZGlhbiwgaW50IGlzX3NpZ25lZCk7CisgICAgdW5zaWduZWQgY2hhciogYnl0ZXMsIHNpemVfdCBuLAorICAgIGludCBsaXR0bGVfZW5kaWFuLCBpbnQgaXNfc2lnbmVkKTsKIAogCiAvKiBfUHlMb25nX0Zvcm1hdDogQ29udmVydCB0aGUgbG9uZyB0byBhIHN0cmluZyBvYmplY3Qgd2l0aCBnaXZlbiBiYXNlLAogICAgYXBwZW5kaW5nIGEgYmFzZSBwcmVmaXggb2YgMFtib3hdIGlmIGJhc2UgaXMgMiwgOCBvciAxNi4gKi8KLVB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5TG9uZ19Gb3JtYXQoUHlPYmplY3QgKmFhLCBpbnQgYmFzZSk7CitQeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeUxvbmdfRm9ybWF0KFB5T2JqZWN0ICpvYmosIGludCBiYXNlKTsKKworUHlBUElfRlVOQyhpbnQpIF9QeUxvbmdfRm9ybWF0V3JpdGVyKAorICAgIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwKKyAgICBQeU9iamVjdCAqb2JqLAorICAgIGludCBiYXNlLAorICAgIGludCBhbHRlcm5hdGUpOwogCiAvKiBGb3JtYXQgdGhlIG9iamVjdCBiYXNlZCBvbiB0aGUgZm9ybWF0X3NwZWMsIGFzIGRlZmluZWQgaW4gUEVQIDMxMDEKICAgIChBZHZhbmNlZCBTdHJpbmcgRm9ybWF0dGluZykuICovCi1QeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeUxvbmdfRm9ybWF0QWR2YW5jZWQoUHlPYmplY3QgKm9iaiwKLQkJCQkJICAgICAgUHlfVU5JQ09ERSAqZm9ybWF0X3NwZWMsCi0JCQkJCSAgICAgIFB5X3NzaXplX3QgZm9ybWF0X3NwZWNfbGVuKTsKK1B5QVBJX0ZVTkMoaW50KSBfUHlMb25nX0Zvcm1hdEFkdmFuY2VkV3JpdGVyKAorICAgIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwKKyAgICBQeU9iamVjdCAqb2JqLAorICAgIFB5T2JqZWN0ICpmb3JtYXRfc3BlYywKKyAgICBQeV9zc2l6ZV90IHN0YXJ0LAorICAgIFB5X3NzaXplX3QgZW5kKTsKICNlbmRpZiAvKiBQeV9MSU1JVEVEX0FQSSAqLwogCiAvKiBUaGVzZSBhcmVuJ3QgcmVhbGx5IHBhcnQgb2YgdGhlIGxvbmcgb2JqZWN0LCBidXQgdGhleSdyZSBoYW5keS4gVGhlCmRpZmYgLS1naXQgYS9JbmNsdWRlL21lbW9yeW9iamVjdC5oIGIvSW5jbHVkZS9tZW1vcnlvYmplY3QuaAppbmRleCA2MmVjYmQ2Li5jMmUxMTk0IDEwMDY0NAotLS0gYS9JbmNsdWRlL21lbW9yeW9iamVjdC5oCisrKyBiL0luY2x1ZGUvbWVtb3J5b2JqZWN0LmgKQEAgLTYsNjkgKzYsNjUgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK1B5QVBJX0RBVEEoUHlUeXBlT2JqZWN0KSBfUHlNYW5hZ2VkQnVmZmVyX1R5cGU7CisjZW5kaWYKIFB5QVBJX0RBVEEoUHlUeXBlT2JqZWN0KSBQeU1lbW9yeVZpZXdfVHlwZTsKIAogI2RlZmluZSBQeU1lbW9yeVZpZXdfQ2hlY2sob3ApIChQeV9UWVBFKG9wKSA9PSAmUHlNZW1vcnlWaWV3X1R5cGUpCiAKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKLS8qIEdldCBhIHBvaW50ZXIgdG8gdGhlIHVuZGVybHlpbmcgUHlfYnVmZmVyIG9mIGEgbWVtb3J5dmlldyBvYmplY3QuICovCisvKiBHZXQgYSBwb2ludGVyIHRvIHRoZSBtZW1vcnl2aWV3J3MgcHJpdmF0ZSBjb3B5IG9mIHRoZSBleHBvcnRlcidzIGJ1ZmZlci4gKi8KICNkZWZpbmUgUHlNZW1vcnlWaWV3X0dFVF9CVUZGRVIob3ApICgmKChQeU1lbW9yeVZpZXdPYmplY3QgKikob3ApKS0+dmlldykKLS8qIEdldCBhIHBvaW50ZXIgdG8gdGhlIFB5T2JqZWN0IGZyb20gd2hpY2ggb3JpZ2luYXRlcyBhIG1lbW9yeXZpZXcgb2JqZWN0LiAqLworLyogR2V0IGEgcG9pbnRlciB0byB0aGUgZXhwb3J0aW5nIG9iamVjdCAodGhpcyBtYXkgYmUgTlVMTCEpLiAqLwogI2RlZmluZSBQeU1lbW9yeVZpZXdfR0VUX0JBU0Uob3ApICgoKFB5TWVtb3J5Vmlld09iamVjdCAqKShvcCkpLT52aWV3Lm9iaikKICNlbmRpZgogCi0KLVB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlNZW1vcnlWaWV3X0dldENvbnRpZ3VvdXMoUHlPYmplY3QgKmJhc2UsIAotCQkJCQkJICBpbnQgYnVmZmVydHlwZSwgCi0JCQkJCQkgIGNoYXIgZm9ydCk7Ci0KLSAgICAvKiBSZXR1cm4gYSBjb250aWd1b3VzIGNodW5rIG9mIG1lbW9yeSByZXByZXNlbnRpbmcgdGhlIGJ1ZmZlcgotICAgICAgIGZyb20gYW4gb2JqZWN0IGluIGEgbWVtb3J5IHZpZXcgb2JqZWN0LiAgSWYgYSBjb3B5IGlzIG1hZGUgdGhlbiB0aGUKLSAgICAgICBiYXNlIG9iamVjdCBmb3IgdGhlIG1lbW9yeSB2aWV3IHdpbGwgYmUgYSAqbmV3KiBieXRlcyBvYmplY3QuIAotICAgICAgIAotICAgICAgIE90aGVyd2lzZSwgdGhlIGJhc2Utb2JqZWN0IHdpbGwgYmUgdGhlIG9iamVjdCBpdHNlbGYgYW5kIG5vIAotICAgICAgIGRhdGEtY29weWluZyB3aWxsIGJlIGRvbmUuIAotCi0gICAgICAgVGhlIGJ1ZmZlcnR5cGUgYXJndW1lbnQgY2FuIGJlIFB5QlVGX1JFQUQsIFB5QlVGX1dSSVRFLAotICAgICAgIFB5QlVGX1NIQURPVyB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgcmV0dXJuZWQgYnVmZmVyCi0gICAgICAgc2hvdWxkIGJlIFJFQURPTkxZLCBXUklUQUJMRSwgb3Igc2V0IHRvIHVwZGF0ZSB0aGUKLSAgICAgICBvcmlnaW5hbCBidWZmZXIgaWYgYSBjb3B5IG11c3QgYmUgbWFkZS4gIElmIGJ1ZmZlcnR5cGUgaXMKLSAgICAgICBQeUJVRl9XUklURSBhbmQgdGhlIGJ1ZmZlciBpcyBub3QgY29udGlndW91cyBhbiBlcnJvciB3aWxsCi0gICAgICAgYmUgcmFpc2VkLiAgSW4gdGhpcyBjaXJjdW1zdGFuY2UsIHRoZSB1c2VyIGNhbiB1c2UKLSAgICAgICBQeUJVRl9TSEFET1cgdG8gZW5zdXJlIHRoYXQgYSBhIHdyaXRhYmxlIHRlbXBvcmFyeQotICAgICAgIGNvbnRpZ3VvdXMgYnVmZmVyIGlzIHJldHVybmVkLiAgVGhlIGNvbnRlbnRzIG9mIHRoaXMKLSAgICAgICBjb250aWd1b3VzIGJ1ZmZlciB3aWxsIGJlIGNvcGllZCBiYWNrIGludG8gdGhlIG9yaWdpbmFsCi0gICAgICAgb2JqZWN0IGFmdGVyIHRoZSBtZW1vcnl2aWV3IG9iamVjdCBpcyBkZWxldGVkIGFzIGxvbmcgYXMKLSAgICAgICB0aGUgb3JpZ2luYWwgb2JqZWN0IGlzIHdyaXRhYmxlIGFuZCBhbGxvd3Mgc2V0dGluZyBhbgotICAgICAgIGV4Y2x1c2l2ZSB3cml0ZSBsb2NrLiBJZiB0aGlzIGlzIG5vdCBhbGxvd2VkIGJ5IHRoZQotICAgICAgIG9yaWdpbmFsIG9iamVjdCwgdGhlbiBhIEJ1ZmZlckVycm9yIGlzIHJhaXNlZC4KLSAgICAgICAKLSAgICAgICBJZiB0aGUgb2JqZWN0IGlzIG11bHRpLWRpbWVuc2lvbmFsIGFuZCBpZiBmb3J0cmFuIGlzICdGJywKLSAgICAgICB0aGUgZmlyc3QgZGltZW5zaW9uIG9mIHRoZSB1bmRlcmx5aW5nIGFycmF5IHdpbGwgdmFyeSB0aGUKLSAgICAgICBmYXN0ZXN0IGluIHRoZSBidWZmZXIuICBJZiBmb3J0cmFuIGlzICdDJywgdGhlbiB0aGUgbGFzdAotICAgICAgIGRpbWVuc2lvbiB3aWxsIHZhcnkgdGhlIGZhc3Rlc3QgKEMtc3R5bGUgY29udGlndW91cykuICBJZgotICAgICAgIGZvcnRyYW4gaXMgJ0EnLCB0aGVuIGl0IGRvZXMgbm90IG1hdHRlciBhbmQgeW91IHdpbGwgZ2V0Ci0gICAgICAgd2hhdGV2ZXIgdGhlIG9iamVjdCBkZWNpZGVzIGlzIG1vcmUgZWZmaWNpZW50LiAgCi0KLSAgICAgICBBIG5ldyByZWZlcmVuY2UgaXMgcmV0dXJuZWQgdGhhdCBtdXN0IGJlIERFQ1JFRidkIHdoZW4gZmluaXNoZWQuCi0gICAgKi8KLQogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeU1lbW9yeVZpZXdfRnJvbU9iamVjdChQeU9iamVjdCAqYmFzZSk7Ci0KK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlNZW1vcnlWaWV3X0Zyb21NZW1vcnkoY2hhciAqbWVtLCBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmbGFncyk7CiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5TWVtb3J5Vmlld19Gcm9tQnVmZmVyKFB5X2J1ZmZlciAqaW5mbyk7Ci0gICAgLyogY3JlYXRlIG5ldyBpZiBidWZwdHIgaXMgTlVMTCAKLSAgICAgICAgd2lsbCBiZSBhIG5ldyBieXRlc29iamVjdCBpbiBiYXNlICovCiAjZW5kaWYKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlNZW1vcnlWaWV3X0dldENvbnRpZ3VvdXMoUHlPYmplY3QgKmJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBidWZmZXJ0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIG9yZGVyKTsKIAogCi0vKiBUaGUgc3RydWN0IGlzIGRlY2xhcmVkIGhlcmUgc28gdGhhdCBtYWNyb3MgY2FuIHdvcmssIGJ1dCBpdCBzaG91bGRuJ3QKLSAgIGJlIGNvbnNpZGVyZWQgcHVibGljLiBEb24ndCBhY2Nlc3MgdGhvc2UgZmllbGRzIGRpcmVjdGx5LCB1c2UgdGhlIG1hY3JvcworLyogVGhlIHN0cnVjdHMgYXJlIGRlY2xhcmVkIGhlcmUgc28gdGhhdCBtYWNyb3MgY2FuIHdvcmssIGJ1dCB0aGV5IHNob3VsZG4ndAorICAgYmUgY29uc2lkZXJlZCBwdWJsaWMuIERvbid0IGFjY2VzcyB0aGVpciBmaWVsZHMgZGlyZWN0bHksIHVzZSB0aGUgbWFjcm9zCiAgICBhbmQgZnVuY3Rpb25zIGluc3RlYWQhICovCiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCisjZGVmaW5lIF9QeV9NQU5BR0VEX0JVRkZFUl9SRUxFQVNFRCAgICAweDAwMSAgLyogYWNjZXNzIHRvIGV4cG9ydGVyIGJsb2NrZWQgKi8KKyNkZWZpbmUgX1B5X01BTkFHRURfQlVGRkVSX0ZSRUVfRk9STUFUIDB4MDAyICAvKiBmcmVlIGZvcm1hdCAqLwogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFB5T2JqZWN0X0hFQUQKLSAgICBQeV9idWZmZXIgdmlldzsKKyAgICBpbnQgZmxhZ3M7ICAgICAgICAgIC8qIHN0YXRlIGZsYWdzICovCisgICAgUHlfc3NpemVfdCBleHBvcnRzOyAvKiBudW1iZXIgb2YgZGlyZWN0IG1lbW9yeXZpZXcgZXhwb3J0cyAqLworICAgIFB5X2J1ZmZlciBtYXN0ZXI7IC8qIHNuYXBzaG90IGJ1ZmZlciBvYnRhaW5lZCBmcm9tIHRoZSBvcmlnaW5hbCBleHBvcnRlciAqLworfSBfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0OworCisKKy8qIHN0YXRpYyBzdG9yYWdlIHVzZWQgZm9yIGNhc3RpbmcgYmV0d2VlbiBmb3JtYXRzICovCisjZGVmaW5lIF9QeV9NRU1PUllWSUVXX01BWF9GT1JNQVQgMyAvKiBtdXN0IGJlID49IDMgKi8KKworLyogbWVtb3J5dmlldyBzdGF0ZSBmbGFncyAqLworI2RlZmluZSBfUHlfTUVNT1JZVklFV19SRUxFQVNFRCAgICAweDAwMSAgLyogYWNjZXNzIHRvIG1hc3RlciBidWZmZXIgYmxvY2tlZCAqLworI2RlZmluZSBfUHlfTUVNT1JZVklFV19DICAgICAgICAgICAweDAwMiAgLyogQy1jb250aWd1b3VzIGxheW91dCAqLworI2RlZmluZSBfUHlfTUVNT1JZVklFV19GT1JUUkFOICAgICAweDAwNCAgLyogRm9ydHJhbiBjb250aWd1b3VzIGxheW91dCAqLworI2RlZmluZSBfUHlfTUVNT1JZVklFV19TQ0FMQVIgICAgICAweDAwOCAgLyogc2NhbGFyOiBuZGltID0gMCAqLworI2RlZmluZSBfUHlfTUVNT1JZVklFV19QSUwgICAgICAgICAweDAxMCAgLyogUElMLXN0eWxlIGxheW91dCAqLworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfVkFSX0hFQUQKKyAgICBfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0ICptYnVmOyAvKiBtYW5hZ2VkIGJ1ZmZlciAqLworICAgIFB5X2hhc2hfdCBoYXNoOyAgICAgICAgICAgICAgIC8qIGhhc2ggdmFsdWUgZm9yIHJlYWQtb25seSB2aWV3cyAqLworICAgIGludCBmbGFnczsgICAgICAgICAgICAgICAgICAgIC8qIHN0YXRlIGZsYWdzICovCisgICAgUHlfc3NpemVfdCBleHBvcnRzOyAgICAgICAgICAgLyogbnVtYmVyIG9mIGJ1ZmZlciByZS1leHBvcnRzICovCisgICAgUHlfYnVmZmVyIHZpZXc7ICAgICAgICAgICAgICAgLyogcHJpdmF0ZSBjb3B5IG9mIHRoZSBleHBvcnRlcidzIHZpZXcgKi8KKyAgICBjaGFyIGZvcm1hdFtfUHlfTUVNT1JZVklFV19NQVhfRk9STUFUXTsgLyogdXNlZCBmb3IgY2FzdGluZyAqLworICAgIFB5T2JqZWN0ICp3ZWFrcmVmbGlzdDsKKyAgICBQeV9zc2l6ZV90IG9iX2FycmF5WzFdOyAgICAgICAvKiBzaGFwZSwgc3RyaWRlcywgc3Vib2Zmc2V0cyAqLwogfSBQeU1lbW9yeVZpZXdPYmplY3Q7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvSW5jbHVkZS9tZXRob2RvYmplY3QuaCBiL0luY2x1ZGUvbWV0aG9kb2JqZWN0LmgKaW5kZXggN2U2N2MwYi4uM2NjMmVhOSAxMDA2NDQKLS0tIGEvSW5jbHVkZS9tZXRob2RvYmplY3QuaAorKysgYi9JbmNsdWRlL21ldGhvZG9iamVjdC5oCkBAIC0xNyw3ICsxNyw3IEBACiAKIHR5cGVkZWYgUHlPYmplY3QgKigqUHlDRnVuY3Rpb24pKFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwogdHlwZWRlZiBQeU9iamVjdCAqKCpQeUNGdW5jdGlvbldpdGhLZXl3b3JkcykoUHlPYmplY3QgKiwgUHlPYmplY3QgKiwKLQkJCQkJICAgICBQeU9iamVjdCAqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICopOwogdHlwZWRlZiBQeU9iamVjdCAqKCpQeU5vQXJnc0Z1bmN0aW9uKShQeU9iamVjdCAqKTsKIAogUHlBUElfRlVOQyhQeUNGdW5jdGlvbikgUHlDRnVuY3Rpb25fR2V0RnVuY3Rpb24oUHlPYmplY3QgKik7CkBAIC0zMCwyNCArMzAsMjUgQEAKICNkZWZpbmUgUHlDRnVuY3Rpb25fR0VUX0ZVTkNUSU9OKGZ1bmMpIFwKICAgICAgICAgKCgoUHlDRnVuY3Rpb25PYmplY3QgKilmdW5jKSAtPiBtX21sIC0+IG1sX21ldGgpCiAjZGVmaW5lIFB5Q0Z1bmN0aW9uX0dFVF9TRUxGKGZ1bmMpIFwKLQkoKChQeUNGdW5jdGlvbk9iamVjdCAqKWZ1bmMpIC0+IG1fc2VsZikKKyAgICAgICAgKCgoUHlDRnVuY3Rpb25PYmplY3QgKilmdW5jKSAtPiBtX21sIC0+IG1sX2ZsYWdzICYgTUVUSF9TVEFUSUMgPyBcCisgICAgICAgICBOVUxMIDogKChQeUNGdW5jdGlvbk9iamVjdCAqKWZ1bmMpIC0+IG1fc2VsZikKICNkZWZpbmUgUHlDRnVuY3Rpb25fR0VUX0ZMQUdTKGZ1bmMpIFwKLQkoKChQeUNGdW5jdGlvbk9iamVjdCAqKWZ1bmMpIC0+IG1fbWwgLT4gbWxfZmxhZ3MpCisgICAgICAgICgoKFB5Q0Z1bmN0aW9uT2JqZWN0ICopZnVuYykgLT4gbV9tbCAtPiBtbF9mbGFncykKICNlbmRpZgogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUNGdW5jdGlvbl9DYWxsKFB5T2JqZWN0ICosIFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwogCiBzdHJ1Y3QgUHlNZXRob2REZWYgewotICAgIGNvbnN0IGNoYXIJKm1sX25hbWU7CS8qIFRoZSBuYW1lIG9mIHRoZSBidWlsdC1pbiBmdW5jdGlvbi9tZXRob2QgKi8KLSAgICBQeUNGdW5jdGlvbiAgbWxfbWV0aDsJLyogVGhlIEMgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIGl0ICovCi0gICAgaW50CQkgbWxfZmxhZ3M7CS8qIENvbWJpbmF0aW9uIG9mIE1FVEhfeHh4IGZsYWdzLCB3aGljaCBtb3N0bHkKLQkJCQkgICBkZXNjcmliZSB0aGUgYXJncyBleHBlY3RlZCBieSB0aGUgQyBmdW5jICovCi0gICAgY29uc3QgY2hhcgkqbWxfZG9jOwkvKiBUaGUgX19kb2NfXyBhdHRyaWJ1dGUsIG9yIE5VTEwgKi8KKyAgICBjb25zdCBjaGFyICAqbWxfbmFtZTsgICAvKiBUaGUgbmFtZSBvZiB0aGUgYnVpbHQtaW4gZnVuY3Rpb24vbWV0aG9kICovCisgICAgUHlDRnVuY3Rpb24gbWxfbWV0aDsgICAgLyogVGhlIEMgZnVuY3Rpb24gdGhhdCBpbXBsZW1lbnRzIGl0ICovCisgICAgaW50ICAgICAgICAgbWxfZmxhZ3M7ICAgLyogQ29tYmluYXRpb24gb2YgTUVUSF94eHggZmxhZ3MsIHdoaWNoIG1vc3RseQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlIHRoZSBhcmdzIGV4cGVjdGVkIGJ5IHRoZSBDIGZ1bmMgKi8KKyAgICBjb25zdCBjaGFyICAqbWxfZG9jOyAgICAvKiBUaGUgX19kb2NfXyBhdHRyaWJ1dGUsIG9yIE5VTEwgKi8KIH07CiB0eXBlZGVmIHN0cnVjdCBQeU1ldGhvZERlZiBQeU1ldGhvZERlZjsKIAogI2RlZmluZSBQeUNGdW5jdGlvbl9OZXcoTUwsIFNFTEYpIFB5Q0Z1bmN0aW9uX05ld0V4KChNTCksIChTRUxGKSwgTlVMTCkKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlDRnVuY3Rpb25fTmV3RXgoUHlNZXRob2REZWYgKiwgUHlPYmplY3QgKiwgCi0JCQkJCSBQeU9iamVjdCAqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKik7CiAKIC8qIEZsYWcgcGFzc2VkIHRvIG5ld21ldGhvZG9iamVjdCAqLwogLyogI2RlZmluZSBNRVRIX09MREFSR1MgIDB4MDAwMCAgIC0tIHVuc3VwcG9ydGVkIG5vdyAqLwpAQCAtODEsNiArODIsMTEgQEAKIAogUHlBUElfRlVOQyhpbnQpIFB5Q0Z1bmN0aW9uX0NsZWFyRnJlZUxpc3Qodm9pZCk7CiAKKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK1B5QVBJX0ZVTkModm9pZCkgX1B5Q0Z1bmN0aW9uX0RlYnVnTWFsbG9jU3RhdHMoRklMRSAqb3V0KTsKK1B5QVBJX0ZVTkModm9pZCkgX1B5TWV0aG9kX0RlYnVnTWFsbG9jU3RhdHMoRklMRSAqb3V0KTsKKyNlbmRpZgorCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9tb2RzdXBwb3J0LmggYi9JbmNsdWRlL21vZHN1cHBvcnQuaAppbmRleCBiZjY0NzhmLi5lY2YxZGNjIDEwMDY0NAotLS0gYS9JbmNsdWRlL21vZHN1cHBvcnQuaAorKysgYi9JbmNsdWRlL21vZHN1cHBvcnQuaApAQCAtMjMsNiArMjMsOCBAQAogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlfVmFCdWlsZFZhbHVlX1NpemVUKGNvbnN0IGNoYXIgKiwgdmFfbGlzdCk7CiAjZW5kaWYKIAorLyogRHVlIHRvIGEgZ2xpdGNoIGluIDMuMiwgdGhlIF9TaXplVCB2ZXJzaW9ucyB3ZXJlbid0IGV4cG9ydGVkIGZyb20gdGhlIERMTC4gKi8KKyNpZiAhZGVmaW5lZChQWV9TU0laRV9UX0NMRUFOKSB8fCAhZGVmaW5lZChQeV9MSU1JVEVEX0FQSSkgfHwgUHlfTElNSVRFRF9BUEkrMCA+PSAweDAzMDMwMDAwCiBQeUFQSV9GVU5DKGludCkgUHlBcmdfUGFyc2UoUHlPYmplY3QgKiwgY29uc3QgY2hhciAqLCAuLi4pOwogUHlBUElfRlVOQyhpbnQpIFB5QXJnX1BhcnNlVHVwbGUoUHlPYmplY3QgKiwgY29uc3QgY2hhciAqLCAuLi4pIFB5X0ZPUk1BVF9QQVJTRVRVUExFKFB5QXJnX1BhcnNlVHVwbGUsIDIsIDMpOwogUHlBUElfRlVOQyhpbnQpIFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhQeU9iamVjdCAqLCBQeU9iamVjdCAqLApAQCAtMzEsMTMgKzMzLDE0IEBACiBQeUFQSV9GVU5DKGludCkgUHlBcmdfVW5wYWNrVHVwbGUoUHlPYmplY3QgKiwgY29uc3QgY2hhciAqLCBQeV9zc2l6ZV90LCBQeV9zc2l6ZV90LCAuLi4pOwogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeV9CdWlsZFZhbHVlKGNvbnN0IGNoYXIgKiwgLi4uKTsKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5X0J1aWxkVmFsdWVfU2l6ZVQoY29uc3QgY2hhciAqLCAuLi4pOworI2VuZGlmCiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCiBQeUFQSV9GVU5DKGludCkgX1B5QXJnX05vS2V5d29yZHMoY29uc3QgY2hhciAqZnVuY25hbWUsIFB5T2JqZWN0ICprdyk7Ci0jZW5kaWYKIAogUHlBUElfRlVOQyhpbnQpIFB5QXJnX1ZhUGFyc2UoUHlPYmplY3QgKiwgY29uc3QgY2hhciAqLCB2YV9saXN0KTsKIFB5QVBJX0ZVTkMoaW50KSBQeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3JkcyhQeU9iamVjdCAqLCBQeU9iamVjdCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICosIGNoYXIgKiosIHZhX2xpc3QpOworI2VuZGlmCiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5X1ZhQnVpbGRWYWx1ZShjb25zdCBjaGFyICosIHZhX2xpc3QpOwogCiBQeUFQSV9GVU5DKGludCkgUHlNb2R1bGVfQWRkT2JqZWN0KFB5T2JqZWN0ICosIGNvbnN0IGNoYXIgKiwgUHlPYmplY3QgKik7CmRpZmYgLS1naXQgYS9JbmNsdWRlL21vZHVsZW9iamVjdC5oIGIvSW5jbHVkZS9tb2R1bGVvYmplY3QuaAppbmRleCA3YjJiZjFjLi44MDEzZGQ5IDEwMDY0NAotLS0gYS9JbmNsdWRlL21vZHVsZW9iamVjdC5oCisrKyBiL0luY2x1ZGUvbW9kdWxlb2JqZWN0LmgKQEAgLTEyLDEwICsxMiwxNCBAQAogI2RlZmluZSBQeU1vZHVsZV9DaGVjayhvcCkgUHlPYmplY3RfVHlwZUNoZWNrKG9wLCAmUHlNb2R1bGVfVHlwZSkKICNkZWZpbmUgUHlNb2R1bGVfQ2hlY2tFeGFjdChvcCkgKFB5X1RZUEUob3ApID09ICZQeU1vZHVsZV9UeXBlKQogCitQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5TW9kdWxlX05ld09iamVjdCgKKyAgICBQeU9iamVjdCAqbmFtZQorICAgICk7CiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5TW9kdWxlX05ldygKICAgICBjb25zdCBjaGFyICpuYW1lICAgICAgICAgICAgLyogVVRGLTggZW5jb2RlZCBzdHJpbmcgKi8KICAgICApOwogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeU1vZHVsZV9HZXREaWN0KFB5T2JqZWN0ICopOworUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeU1vZHVsZV9HZXROYW1lT2JqZWN0KFB5T2JqZWN0ICopOwogUHlBUElfRlVOQyhjb25zdCBjaGFyICopIFB5TW9kdWxlX0dldE5hbWUoUHlPYmplY3QgKik7CiBQeUFQSV9GVU5DKGNvbnN0IGNoYXIgKikgUHlNb2R1bGVfR2V0RmlsZW5hbWUoUHlPYmplY3QgKik7CiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5TW9kdWxlX0dldEZpbGVuYW1lT2JqZWN0KFB5T2JqZWN0ICopOwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9uYW1lc3BhY2VvYmplY3QuaCBiL0luY2x1ZGUvbmFtZXNwYWNlb2JqZWN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTQxMmYwNQotLS0gL2Rldi9udWxsCisrKyBiL0luY2x1ZGUvbmFtZXNwYWNlb2JqZWN0LmgKQEAgLTAsMCArMSwxNyBAQAorCisvKiBzaW1wbGUgbmFtZXNwYWNlIG9iamVjdCBpbnRlcmZhY2UgKi8KKworI2lmbmRlZiBOQU1FU1BBQ0VPQkpFQ1RfSAorI2RlZmluZSBOQU1FU1BBQ0VPQkpFQ1RfSAorI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitQeUFQSV9EQVRBKFB5VHlwZU9iamVjdCkgX1B5TmFtZXNwYWNlX1R5cGU7CisKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5TmFtZXNwYWNlX05ldyhQeU9iamVjdCAqa3dkcyk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisjZW5kaWYgLyogIU5BTUVTUEFDRU9CSkVDVF9IICovCmRpZmYgLS1naXQgYS9JbmNsdWRlL25vZGUuaCBiL0luY2x1ZGUvbm9kZS5oCmluZGV4IGUyM2U3MDkuLmQxNjExOTUgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvbm9kZS5oCisrKyBiL0luY2x1ZGUvbm9kZS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjZGVmaW5lIFJDSElMRChuLCBpKQkoQ0hJTEQobiwgTkNIKG4pICsgaSkpCiAjZGVmaW5lIFRZUEUobikJCSgobiktPm5fdHlwZSkKICNkZWZpbmUgU1RSKG4pCQkoKG4pLT5uX3N0cikKKyNkZWZpbmUgTElORU5PKG4pICAgICAgICgobiktPm5fbGluZW5vKQogCiAvKiBBc3NlcnQgdGhhdCB0aGUgdHlwZSBvZiBhIG5vZGUgaXMgd2hhdCB3ZSBleHBlY3QgKi8KICNkZWZpbmUgUkVRKG4sIHR5cGUpIGFzc2VydChUWVBFKG4pID09ICh0eXBlKSkKZGlmZiAtLWdpdCBhL0luY2x1ZGUvb2JqZWN0LmggYi9JbmNsdWRlL29iamVjdC5oCmluZGV4IDMxNTc2NmMuLjcwOWE5ZmYgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvb2JqZWN0LmgKKysrIGIvSW5jbHVkZS9vYmplY3QuaApAQCAtMTE3LDYgKzExNywzNSBAQAogI2RlZmluZSBQeV9UWVBFKG9iKSAgICAgICAgICAgICAoKChQeU9iamVjdCopKG9iKSktPm9iX3R5cGUpCiAjZGVmaW5lIFB5X1NJWkUob2IpICAgICAgICAgICAgICgoKFB5VmFyT2JqZWN0Kikob2IpKS0+b2Jfc2l6ZSkKIAorLyoqKioqKioqKioqKioqKioqKioqKiBTdHJpbmcgTGl0ZXJhbHMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFRoaXMgc3RydWN0dXJlIGhlbHBzIG1hbmFnaW5nIHN0YXRpYyBzdHJpbmdzLiBUaGUgYmFzaWMgdXNhZ2UgZ29lcyBsaWtlIHRoaXM6CisgICBJbnN0ZWFkIG9mIGRvaW5nCisKKyAgICAgICByID0gUHlPYmplY3RfQ2FsbE1ldGhvZChvLCAiZm9vIiwgImFyZ3MiLCAuLi4pOworCisgICBkbworCisgICAgICAgX1B5X0lERU5USUZJRVIoZm9vKTsKKyAgICAgICAuLi4KKyAgICAgICByID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChvLCAmUHlJZF9mb28sICJhcmdzIiwgLi4uKTsKKworICAgUHlJZF9mb28gaXMgYSBzdGF0aWMgdmFyaWFibGUsIGVpdGhlciBvbiBibG9jayBsZXZlbCBvciBmaWxlIGxldmVsLiBPbiBmaXJzdAorICAgdXNhZ2UsIHRoZSBzdHJpbmcgImZvbyIgaXMgaW50ZXJuZWQsIGFuZCB0aGUgc3RydWN0dXJlcyBhcmUgbGlua2VkLiBPbiBpbnRlcnByZXRlcgorICAgc2h1dGRvd24sIGFsbCBzdHJpbmdzIGFyZSByZWxlYXNlZCAodGhyb3VnaCBfUHlVbmljb2RlX0NsZWFyU3RhdGljU3RyaW5ncykuCisKKyAgIEFsdGVybmF0aXZlbHksIF9QeV9zdGF0aWNfc3RyaW5nIGFsbG93cyB0byBjaG9vc2UgdGhlIHZhcmlhYmxlIG5hbWUuCisgICBfUHlVbmljb2RlX0Zyb21JZCByZXR1cm5zIGEgYm9ycm93ZWQgcmVmZXJlbmNlIHRvIHRoZSBpbnRlcm5lZCBzdHJpbmcuCisgICBfUHlPYmplY3Rfe0dldCxTZXQsSGFzfUF0dHJJZCBhcmUgX19nZXRhdHRyX18gdmVyc2lvbnMgdXNpbmcgX1B5X0lkZW50aWZpZXIqLgorKi8KK3R5cGVkZWYgc3RydWN0IF9QeV9JZGVudGlmaWVyIHsKKyAgICBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKm5leHQ7CisgICAgY29uc3QgY2hhciogc3RyaW5nOworICAgIFB5T2JqZWN0ICpvYmplY3Q7Cit9IF9QeV9JZGVudGlmaWVyOworCisjZGVmaW5lIF9QeV9zdGF0aWNfc3RyaW5nKHZhcm5hbWUsIHZhbHVlKSAgc3RhdGljIF9QeV9JZGVudGlmaWVyIHZhcm5hbWUgPSB7IDAsIHZhbHVlLCAwIH0KKyNkZWZpbmUgX1B5X0lERU5USUZJRVIodmFybmFtZSkgX1B5X3N0YXRpY19zdHJpbmcoUHlJZF8jI3Zhcm5hbWUsICN2YXJuYW1lKQorCiAvKgogVHlwZSBvYmplY3RzIGNvbnRhaW4gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgdHlwZSBuYW1lICh0byBoZWxwIHNvbWV3aGF0CiBpbiBkZWJ1Z2dpbmcpLCB0aGUgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzIChzZWUgUHlPYmplY3RfTmV3KCkgYW5kCkBAIC0xNTcsMTUgKzE4NiwxNiBAQAogICAgIFB5X3NzaXplX3QgKnNoYXBlOwogICAgIFB5X3NzaXplX3QgKnN0cmlkZXM7CiAgICAgUHlfc3NpemVfdCAqc3Vib2Zmc2V0czsKLSAgICBQeV9zc2l6ZV90IHNtYWxsdGFibGVbMl07ICAvKiBzdGF0aWMgc3RvcmUgZm9yIHNoYXBlIGFuZCBzdHJpZGVzIG9mCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9uby1kaW1lbnNpb25hbCBidWZmZXJzLiAqLwogICAgIHZvaWQgKmludGVybmFsOwogfSBQeV9idWZmZXI7CiAKIHR5cGVkZWYgaW50ICgqZ2V0YnVmZmVycHJvYykoUHlPYmplY3QgKiwgUHlfYnVmZmVyICosIGludCk7CiB0eXBlZGVmIHZvaWQgKCpyZWxlYXNlYnVmZmVycHJvYykoUHlPYmplY3QgKiwgUHlfYnVmZmVyICopOwogCi0gICAgLyogRmxhZ3MgZm9yIGdldHRpbmcgYnVmZmVycyAqLworLyogTWF4aW11bSBudW1iZXIgb2YgZGltZW5zaW9ucyAqLworI2RlZmluZSBQeUJVRl9NQVhfTkRJTSA2NAorCisvKiBGbGFncyBmb3IgZ2V0dGluZyBidWZmZXJzICovCiAjZGVmaW5lIFB5QlVGX1NJTVBMRSAwCiAjZGVmaW5lIFB5QlVGX1dSSVRBQkxFIDB4MDAwMQogLyogIHdlIHVzZWQgdG8gaW5jbHVkZSBhbiBFLCBiYWNrd2FyZHMgY29tcGF0aWJsZSBhbGlhcyAgKi8KQEAgLTQwMyw2ICs0MzMsOSBAQAogfSBQeVR5cGVfU3BlYzsKIAogUHlBUElfRlVOQyhQeU9iamVjdCopIFB5VHlwZV9Gcm9tU3BlYyhQeVR5cGVfU3BlYyopOworI2lmICFkZWZpbmVkKFB5X0xJTUlURURfQVBJKSB8fCBQeV9MSU1JVEVEX0FQSSswID49IDB4MDMwMzAwMDAKK1B5QVBJX0ZVTkMoUHlPYmplY3QqKSBQeVR5cGVfRnJvbVNwZWNXaXRoQmFzZXMoUHlUeXBlX1NwZWMqLCBQeU9iamVjdCopOworI2VuZGlmCiAKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKIC8qIFRoZSAqcmVhbCogbGF5b3V0IG9mIGEgdHlwZSBvYmplY3Qgd2hlbiBhbGxvY2F0ZWQgb24gdGhlIGhlYXAgKi8KQEAgLTQxOCw3ICs0NTEsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIGdpdmVuIG9wZXJhdG9yIChlLmcuIF9fZ2V0aXRlbV9fKS4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VlIGFkZF9vcGVyYXRvcnMoKSBpbiB0eXBlb2JqZWN0LmMgLiAqLwogICAgIFB5QnVmZmVyUHJvY3MgYXNfYnVmZmVyOwotICAgIFB5T2JqZWN0ICpodF9uYW1lLCAqaHRfc2xvdHM7CisgICAgUHlPYmplY3QgKmh0X25hbWUsICpodF9zbG90cywgKmh0X3F1YWxuYW1lOworICAgIHN0cnVjdCBfZGljdGtleXNvYmplY3QgKmh0X2NhY2hlZF9rZXlzOwogICAgIC8qIGhlcmUgYXJlIG9wdGlvbmFsIHVzZXIgc2xvdHMsIGZvbGxvd2VkIGJ5IHRoZSBtZW1iZXJzLiAqLwogfSBQeUhlYXBUeXBlT2JqZWN0OwogCkBAIC00NDgsMTMgKzQ4MiwxNCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqLCBQeU9iamVjdCAqKTsKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5VHlwZV9Mb29rdXAoUHlUeXBlT2JqZWN0ICosIFB5T2JqZWN0ICopOwotUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChQeU9iamVjdCAqLCBjaGFyICosIFB5T2JqZWN0ICoqKTsKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwoUHlPYmplY3QgKiwgX1B5X0lkZW50aWZpZXIgKik7CiBQeUFQSV9GVU5DKFB5VHlwZU9iamVjdCAqKSBfUHlUeXBlX0NhbGN1bGF0ZU1ldGFjbGFzcyhQeVR5cGVPYmplY3QgKiwgUHlPYmplY3QgKik7CiAjZW5kaWYKIFB5QVBJX0ZVTkModW5zaWduZWQgaW50KSBQeVR5cGVfQ2xlYXJDYWNoZSh2b2lkKTsKIFB5QVBJX0ZVTkModm9pZCkgUHlUeXBlX01vZGlmaWVkKFB5VHlwZU9iamVjdCAqKTsKIAogLyogR2VuZXJpYyBvcGVyYXRpb25zIG9uIG9iamVjdHMgKi8KK3N0cnVjdCBfUHlfSWRlbnRpZmllcjsKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKIFB5QVBJX0ZVTkMoaW50KSBQeU9iamVjdF9QcmludChQeU9iamVjdCAqLCBGSUxFICosIGludCk7CiBQeUFQSV9GVU5DKHZvaWQpIF9QeV9CcmVha1BvaW50KHZvaWQpOwpAQCAtNDcyLDYgKzUwNywxMCBAQAogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeU9iamVjdF9HZXRBdHRyKFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwogUHlBUElfRlVOQyhpbnQpIFB5T2JqZWN0X1NldEF0dHIoUHlPYmplY3QgKiwgUHlPYmplY3QgKiwgUHlPYmplY3QgKik7CiBQeUFQSV9GVU5DKGludCkgUHlPYmplY3RfSGFzQXR0cihQeU9iamVjdCAqLCBQeU9iamVjdCAqKTsKK1B5QVBJX0ZVTkMoaW50KSBfUHlPYmplY3RfSXNBYnN0cmFjdChQeU9iamVjdCAqKTsKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5T2JqZWN0X0dldEF0dHJJZChQeU9iamVjdCAqLCBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKik7CitQeUFQSV9GVU5DKGludCkgX1B5T2JqZWN0X1NldEF0dHJJZChQeU9iamVjdCAqLCBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKiwgUHlPYmplY3QgKik7CitQeUFQSV9GVU5DKGludCkgX1B5T2JqZWN0X0hhc0F0dHJJZChQeU9iamVjdCAqLCBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKik7CiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCiBQeUFQSV9GVU5DKFB5T2JqZWN0ICoqKSBfUHlPYmplY3RfR2V0RGljdFB0cihQeU9iamVjdCAqKTsKICNlbmRpZgpAQCAtNDgyLDYgKzUyMSw3IEBACiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyKFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwogUHlBUElfRlVOQyhpbnQpIFB5T2JqZWN0X0dlbmVyaWNTZXRBdHRyKFB5T2JqZWN0ICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKiwgUHlPYmplY3QgKik7CitQeUFQSV9GVU5DKGludCkgUHlPYmplY3RfR2VuZXJpY1NldERpY3QoUHlPYmplY3QgKiwgUHlPYmplY3QgKiwgdm9pZCAqKTsKIFB5QVBJX0ZVTkMoUHlfaGFzaF90KSBQeU9iamVjdF9IYXNoKFB5T2JqZWN0ICopOwogUHlBUElfRlVOQyhQeV9oYXNoX3QpIFB5T2JqZWN0X0hhc2hOb3RJbXBsZW1lbnRlZChQeU9iamVjdCAqKTsKIFB5QVBJX0ZVTkMoaW50KSBQeU9iamVjdF9Jc1RydWUoUHlPYmplY3QgKik7CkBAIC00OTgsNiArNTM4LDExIEBACiBfUHlPYmplY3RfR2VuZXJpY1NldEF0dHJXaXRoRGljdChQeU9iamVjdCAqLCBQeU9iamVjdCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKiwgUHlPYmplY3QgKik7CiAKKy8qIEhlbHBlciB0byBsb29rIHVwIGEgYnVpbHRpbiBvYmplY3QgKi8KKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikKK19QeU9iamVjdF9HZXRCdWlsdGluKGNvbnN0IGNoYXIgKm5hbWUpOworI2VuZGlmCiAKIC8qIFB5T2JqZWN0X0RpcihvYmopIGFjdHMgbGlrZSBQeXRob24gYnVpbHRpbnMuZGlyKG9iaiksIHJldHVybmluZyBhCiAgICBsaXN0IG9mIHN0cmluZ3MuICBQeU9iamVjdF9EaXIoTlVMTCkgaXMgbGlrZSBidWlsdGlucy5kaXIoKSwKQEAgLTUxNSw2ICs1NjAsNyBAQAogI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQogUHlBUElfRlVOQyhQeV9oYXNoX3QpIF9QeV9IYXNoRG91YmxlKGRvdWJsZSk7CiBQeUFQSV9GVU5DKFB5X2hhc2hfdCkgX1B5X0hhc2hQb2ludGVyKHZvaWQqKTsKK1B5QVBJX0ZVTkMoUHlfaGFzaF90KSBfUHlfSGFzaEJ5dGVzKHVuc2lnbmVkIGNoYXIqLCBQeV9zc2l6ZV90KTsKICNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCB7CkBAIC04MDMsNiArODQ5LDEwIEBACiBQeUFQSV9EQVRBKFB5T2JqZWN0KSBfUHlfTm90SW1wbGVtZW50ZWRTdHJ1Y3Q7IC8qIERvbid0IHVzZSB0aGlzIGRpcmVjdGx5ICovCiAjZGVmaW5lIFB5X05vdEltcGxlbWVudGVkICgmX1B5X05vdEltcGxlbWVudGVkU3RydWN0KQogCisvKiBNYWNybyBmb3IgcmV0dXJuaW5nIFB5X05vdEltcGxlbWVudGVkIGZyb20gYSBmdW5jdGlvbiAqLworI2RlZmluZSBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQgXAorICAgIHJldHVybiBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpLCBQeV9Ob3RJbXBsZW1lbnRlZAorCiAvKiBSaWNoIGNvbXBhcmlzb24gb3Bjb2RlcyAqLwogI2RlZmluZSBQeV9MVCAwCiAjZGVmaW5lIFB5X0xFIDEKQEAgLTkzMCw2ICs5ODAsMTQgQEAKICAgICBlbHNlIFwKICAgICAgICAgX1B5VHJhc2hfZGVwb3NpdF9vYmplY3QoKFB5T2JqZWN0KilvcCk7CiAKKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK1B5QVBJX0ZVTkModm9pZCkKK19QeURlYnVnQWxsb2NhdG9yU3RhdHMoRklMRSAqb3V0LCBjb25zdCBjaGFyICpibG9ja19uYW1lLCBpbnQgbnVtX2Jsb2NrcywKKyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemVvZl9ibG9jayk7CitQeUFQSV9GVU5DKHZvaWQpCitfUHlPYmplY3RfRGVidWdUeXBlU3RhdHMoRklMRSAqb3V0KTsKKyNlbmRpZiAvKiBpZm5kZWYgUHlfTElNSVRFRF9BUEkgKi8KKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0luY2x1ZGUvb2JqaW1wbC5oIGIvSW5jbHVkZS9vYmppbXBsLmgKaW5kZXggOGZjM2ZjMS4uYjFhNjI0YyAxMDA2NDQKLS0tIGEvSW5jbHVkZS9vYmppbXBsLmgKKysrIGIvSW5jbHVkZS9vYmppbXBsLmgKQEAgLTEwMSwxMyArMTAxLDE1IEBACiAKIC8qIE1hY3JvcyAqLwogI2lmZGVmIFdJVEhfUFlNQUxMT0MKKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK1B5QVBJX0ZVTkModm9pZCkgX1B5T2JqZWN0X0RlYnVnTWFsbG9jU3RhdHMoRklMRSAqb3V0KTsKKyNlbmRpZiAvKiAjaWZuZGVmIFB5X0xJTUlURURfQVBJICovCiAjaWZkZWYgUFlNQUxMT0NfREVCVUcgICAvKiBXSVRIX1BZTUFMTE9DICYmIFBZTUFMTE9DX0RFQlVHICovCiBQeUFQSV9GVU5DKHZvaWQgKikgX1B5T2JqZWN0X0RlYnVnTWFsbG9jKHNpemVfdCBuYnl0ZXMpOwogUHlBUElfRlVOQyh2b2lkICopIF9QeU9iamVjdF9EZWJ1Z1JlYWxsb2Modm9pZCAqcCwgc2l6ZV90IG5ieXRlcyk7CiBQeUFQSV9GVU5DKHZvaWQpIF9QeU9iamVjdF9EZWJ1Z0ZyZWUodm9pZCAqcCk7CiBQeUFQSV9GVU5DKHZvaWQpIF9QeU9iamVjdF9EZWJ1Z0R1bXBBZGRyZXNzKGNvbnN0IHZvaWQgKnApOwogUHlBUElfRlVOQyh2b2lkKSBfUHlPYmplY3RfRGVidWdDaGVja0FkZHJlc3MoY29uc3Qgdm9pZCAqcCk7Ci1QeUFQSV9GVU5DKHZvaWQpIF9QeU9iamVjdF9EZWJ1Z01hbGxvY1N0YXRzKHZvaWQpOwogUHlBUElfRlVOQyh2b2lkICopIF9QeU9iamVjdF9EZWJ1Z01hbGxvY0FwaShjaGFyIGFwaSwgc2l6ZV90IG5ieXRlcyk7CiBQeUFQSV9GVU5DKHZvaWQgKikgX1B5T2JqZWN0X0RlYnVnUmVhbGxvY0FwaShjaGFyIGFwaSwgdm9pZCAqcCwgc2l6ZV90IG5ieXRlcyk7CiBQeUFQSV9GVU5DKHZvaWQpIF9QeU9iamVjdF9EZWJ1Z0ZyZWVBcGkoY2hhciBhcGksIHZvaWQgKnApOwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9vcGNvZGUuaCBiL0luY2x1ZGUvb3Bjb2RlLmgKaW5kZXggNmIxMDk0NC4uYTkwMTg0ZCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9vcGNvZGUuaAorKysgYi9JbmNsdWRlL29wY29kZS5oCkBAIC03LDExNyArNywxMTcgQEAKIAogLyogSW5zdHJ1Y3Rpb24gb3Bjb2RlcyBmb3IgY29tcGlsZWQgY29kZSAqLwogCi0jZGVmaW5lIFNUT1BfQ09ERQkwCi0jZGVmaW5lIFBPUF9UT1AJCTEKLSNkZWZpbmUgUk9UX1RXTwkJMgotI2RlZmluZSBST1RfVEhSRUUJMwotI2RlZmluZSBEVVBfVE9QCQk0CisjZGVmaW5lIFBPUF9UT1AgICAgICAgICAxCisjZGVmaW5lIFJPVF9UV08gICAgICAgICAyCisjZGVmaW5lIFJPVF9USFJFRSAgICAgICAzCisjZGVmaW5lIERVUF9UT1AgICAgICAgICA0CiAjZGVmaW5lIERVUF9UT1BfVFdPICAgICA1Ci0jZGVmaW5lIE5PUAkJOQorI2RlZmluZSBOT1AgICAgICAgICAgICAgOQogCi0jZGVmaW5lIFVOQVJZX1BPU0lUSVZFCTEwCi0jZGVmaW5lIFVOQVJZX05FR0FUSVZFCTExCi0jZGVmaW5lIFVOQVJZX05PVAkxMgorI2RlZmluZSBVTkFSWV9QT1NJVElWRSAgMTAKKyNkZWZpbmUgVU5BUllfTkVHQVRJVkUgIDExCisjZGVmaW5lIFVOQVJZX05PVCAgICAgICAxMgogCi0jZGVmaW5lIFVOQVJZX0lOVkVSVAkxNQorI2RlZmluZSBVTkFSWV9JTlZFUlQgICAgMTUKIAotI2RlZmluZSBCSU5BUllfUE9XRVIJMTkKKyNkZWZpbmUgQklOQVJZX1BPV0VSICAgIDE5CiAKLSNkZWZpbmUgQklOQVJZX01VTFRJUExZCTIwCisjZGVmaW5lIEJJTkFSWV9NVUxUSVBMWSAyMAogCi0jZGVmaW5lIEJJTkFSWV9NT0RVTE8JMjIKLSNkZWZpbmUgQklOQVJZX0FERAkyMwotI2RlZmluZSBCSU5BUllfU1VCVFJBQ1QJMjQKLSNkZWZpbmUgQklOQVJZX1NVQlNDUgkyNQorI2RlZmluZSBCSU5BUllfTU9EVUxPICAgMjIKKyNkZWZpbmUgQklOQVJZX0FERCAgICAgIDIzCisjZGVmaW5lIEJJTkFSWV9TVUJUUkFDVCAyNAorI2RlZmluZSBCSU5BUllfU1VCU0NSICAgMjUKICNkZWZpbmUgQklOQVJZX0ZMT09SX0RJVklERSAyNgogI2RlZmluZSBCSU5BUllfVFJVRV9ESVZJREUgMjcKICNkZWZpbmUgSU5QTEFDRV9GTE9PUl9ESVZJREUgMjgKICNkZWZpbmUgSU5QTEFDRV9UUlVFX0RJVklERSAyOQogCi0jZGVmaW5lIFNUT1JFX01BUAk1NAotI2RlZmluZSBJTlBMQUNFX0FERAk1NQotI2RlZmluZSBJTlBMQUNFX1NVQlRSQUNUCTU2Ci0jZGVmaW5lIElOUExBQ0VfTVVMVElQTFkJNTcKKyNkZWZpbmUgU1RPUkVfTUFQICAgICAgIDU0CisjZGVmaW5lIElOUExBQ0VfQUREICAgICA1NQorI2RlZmluZSBJTlBMQUNFX1NVQlRSQUNUICAgICAgICA1NgorI2RlZmluZSBJTlBMQUNFX01VTFRJUExZICAgICAgICA1NwogCi0jZGVmaW5lIElOUExBQ0VfTU9EVUxPCTU5Ci0jZGVmaW5lIFNUT1JFX1NVQlNDUgk2MAotI2RlZmluZSBERUxFVEVfU1VCU0NSCTYxCisjZGVmaW5lIElOUExBQ0VfTU9EVUxPICA1OQorI2RlZmluZSBTVE9SRV9TVUJTQ1IgICAgNjAKKyNkZWZpbmUgREVMRVRFX1NVQlNDUiAgIDYxCiAKLSNkZWZpbmUgQklOQVJZX0xTSElGVAk2MgotI2RlZmluZSBCSU5BUllfUlNISUZUCTYzCi0jZGVmaW5lIEJJTkFSWV9BTkQJNjQKLSNkZWZpbmUgQklOQVJZX1hPUgk2NQotI2RlZmluZSBCSU5BUllfT1IJNjYKLSNkZWZpbmUgSU5QTEFDRV9QT1dFUgk2NwotI2RlZmluZSBHRVRfSVRFUgk2OAotI2RlZmluZSBTVE9SRV9MT0NBTFMJNjkKLSNkZWZpbmUgUFJJTlRfRVhQUgk3MAorI2RlZmluZSBCSU5BUllfTFNISUZUICAgNjIKKyNkZWZpbmUgQklOQVJZX1JTSElGVCAgIDYzCisjZGVmaW5lIEJJTkFSWV9BTkQgICAgICA2NAorI2RlZmluZSBCSU5BUllfWE9SICAgICAgNjUKKyNkZWZpbmUgQklOQVJZX09SICAgICAgIDY2CisjZGVmaW5lIElOUExBQ0VfUE9XRVIgICA2NworI2RlZmluZSBHRVRfSVRFUiAgICAgICAgNjgKKyNkZWZpbmUgU1RPUkVfTE9DQUxTICAgIDY5CisjZGVmaW5lIFBSSU5UX0VYUFIgICAgICA3MAogI2RlZmluZSBMT0FEX0JVSUxEX0NMQVNTIDcxCisjZGVmaW5lIFlJRUxEX0ZST00gICAgICA3MgogCi0jZGVmaW5lIElOUExBQ0VfTFNISUZUCTc1Ci0jZGVmaW5lIElOUExBQ0VfUlNISUZUCTc2Ci0jZGVmaW5lIElOUExBQ0VfQU5ECTc3Ci0jZGVmaW5lIElOUExBQ0VfWE9SCTc4Ci0jZGVmaW5lIElOUExBQ0VfT1IJNzkKLSNkZWZpbmUgQlJFQUtfTE9PUAk4MAorI2RlZmluZSBJTlBMQUNFX0xTSElGVCAgNzUKKyNkZWZpbmUgSU5QTEFDRV9SU0hJRlQgIDc2CisjZGVmaW5lIElOUExBQ0VfQU5EICAgICA3NworI2RlZmluZSBJTlBMQUNFX1hPUiAgICAgNzgKKyNkZWZpbmUgSU5QTEFDRV9PUiAgICAgIDc5CisjZGVmaW5lIEJSRUFLX0xPT1AgICAgICA4MAogI2RlZmluZSBXSVRIX0NMRUFOVVAgICAgODEKIAotI2RlZmluZSBSRVRVUk5fVkFMVUUJODMKLSNkZWZpbmUgSU1QT1JUX1NUQVIJODQKKyNkZWZpbmUgUkVUVVJOX1ZBTFVFICAgIDgzCisjZGVmaW5lIElNUE9SVF9TVEFSICAgICA4NAogCi0jZGVmaW5lIFlJRUxEX1ZBTFVFCTg2Ci0jZGVmaW5lIFBPUF9CTE9DSwk4NwotI2RlZmluZSBFTkRfRklOQUxMWQk4OAotI2RlZmluZSBQT1BfRVhDRVBUCTg5CisjZGVmaW5lIFlJRUxEX1ZBTFVFICAgICA4NgorI2RlZmluZSBQT1BfQkxPQ0sgICAgICAgODcKKyNkZWZpbmUgRU5EX0ZJTkFMTFkgICAgIDg4CisjZGVmaW5lIFBPUF9FWENFUFQgICAgICA4OQogCi0jZGVmaW5lIEhBVkVfQVJHVU1FTlQJOTAJLyogT3Bjb2RlcyBmcm9tIGhlcmUgaGF2ZSBhbiBhcmd1bWVudDogKi8KKyNkZWZpbmUgSEFWRV9BUkdVTUVOVCAgIDkwICAgICAgLyogT3Bjb2RlcyBmcm9tIGhlcmUgaGF2ZSBhbiBhcmd1bWVudDogKi8KIAotI2RlZmluZSBTVE9SRV9OQU1FCTkwCS8qIEluZGV4IGluIG5hbWUgbGlzdCAqLwotI2RlZmluZSBERUxFVEVfTkFNRQk5MQkvKiAiIiAqLwotI2RlZmluZSBVTlBBQ0tfU0VRVUVOQ0UJOTIJLyogTnVtYmVyIG9mIHNlcXVlbmNlIGl0ZW1zICovCi0jZGVmaW5lIEZPUl9JVEVSCTkzCisjZGVmaW5lIFNUT1JFX05BTUUgICAgICA5MCAgICAgIC8qIEluZGV4IGluIG5hbWUgbGlzdCAqLworI2RlZmluZSBERUxFVEVfTkFNRSAgICAgOTEgICAgICAvKiAiIiAqLworI2RlZmluZSBVTlBBQ0tfU0VRVUVOQ0UgOTIgICAgICAvKiBOdW1iZXIgb2Ygc2VxdWVuY2UgaXRlbXMgKi8KKyNkZWZpbmUgRk9SX0lURVIgICAgICAgIDkzCiAjZGVmaW5lIFVOUEFDS19FWCAgICAgICA5NCAgICAgIC8qIE51bSBpdGVtcyBiZWZvcmUgdmFyaWFibGUgcGFydCArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChOdW0gaXRlbXMgYWZ0ZXIgdmFyaWFibGUgcGFydCA8PCA4KSAqLwogCi0jZGVmaW5lIFNUT1JFX0FUVFIJOTUJLyogSW5kZXggaW4gbmFtZSBsaXN0ICovCi0jZGVmaW5lIERFTEVURV9BVFRSCTk2CS8qICIiICovCi0jZGVmaW5lIFNUT1JFX0dMT0JBTAk5NwkvKiAiIiAqLwotI2RlZmluZSBERUxFVEVfR0xPQkFMCTk4CS8qICIiICovCisjZGVmaW5lIFNUT1JFX0FUVFIgICAgICA5NSAgICAgIC8qIEluZGV4IGluIG5hbWUgbGlzdCAqLworI2RlZmluZSBERUxFVEVfQVRUUiAgICAgOTYgICAgICAvKiAiIiAqLworI2RlZmluZSBTVE9SRV9HTE9CQUwgICAgOTcgICAgICAvKiAiIiAqLworI2RlZmluZSBERUxFVEVfR0xPQkFMICAgOTggICAgICAvKiAiIiAqLwogCi0jZGVmaW5lIExPQURfQ09OU1QJMTAwCS8qIEluZGV4IGluIGNvbnN0IGxpc3QgKi8KLSNkZWZpbmUgTE9BRF9OQU1FCTEwMQkvKiBJbmRleCBpbiBuYW1lIGxpc3QgKi8KLSNkZWZpbmUgQlVJTERfVFVQTEUJMTAyCS8qIE51bWJlciBvZiB0dXBsZSBpdGVtcyAqLwotI2RlZmluZSBCVUlMRF9MSVNUCTEwMwkvKiBOdW1iZXIgb2YgbGlzdCBpdGVtcyAqLwotI2RlZmluZSBCVUlMRF9TRVQJMTA0ICAgICAvKiBOdW1iZXIgb2Ygc2V0IGl0ZW1zICovCi0jZGVmaW5lIEJVSUxEX01BUAkxMDUJLyogQWx3YXlzIHplcm8gZm9yIG5vdyAqLwotI2RlZmluZSBMT0FEX0FUVFIJMTA2CS8qIEluZGV4IGluIG5hbWUgbGlzdCAqLwotI2RlZmluZSBDT01QQVJFX09QCTEwNwkvKiBDb21wYXJpc29uIG9wZXJhdG9yICovCi0jZGVmaW5lIElNUE9SVF9OQU1FCTEwOAkvKiBJbmRleCBpbiBuYW1lIGxpc3QgKi8KLSNkZWZpbmUgSU1QT1JUX0ZST00JMTA5CS8qIEluZGV4IGluIG5hbWUgbGlzdCAqLworI2RlZmluZSBMT0FEX0NPTlNUICAgICAgMTAwICAgICAvKiBJbmRleCBpbiBjb25zdCBsaXN0ICovCisjZGVmaW5lIExPQURfTkFNRSAgICAgICAxMDEgICAgIC8qIEluZGV4IGluIG5hbWUgbGlzdCAqLworI2RlZmluZSBCVUlMRF9UVVBMRSAgICAgMTAyICAgICAvKiBOdW1iZXIgb2YgdHVwbGUgaXRlbXMgKi8KKyNkZWZpbmUgQlVJTERfTElTVCAgICAgIDEwMyAgICAgLyogTnVtYmVyIG9mIGxpc3QgaXRlbXMgKi8KKyNkZWZpbmUgQlVJTERfU0VUICAgICAgIDEwNCAgICAgLyogTnVtYmVyIG9mIHNldCBpdGVtcyAqLworI2RlZmluZSBCVUlMRF9NQVAgICAgICAgMTA1ICAgICAvKiBBbHdheXMgemVybyBmb3Igbm93ICovCisjZGVmaW5lIExPQURfQVRUUiAgICAgICAxMDYgICAgIC8qIEluZGV4IGluIG5hbWUgbGlzdCAqLworI2RlZmluZSBDT01QQVJFX09QICAgICAgMTA3ICAgICAvKiBDb21wYXJpc29uIG9wZXJhdG9yICovCisjZGVmaW5lIElNUE9SVF9OQU1FICAgICAxMDggICAgIC8qIEluZGV4IGluIG5hbWUgbGlzdCAqLworI2RlZmluZSBJTVBPUlRfRlJPTSAgICAgMTA5ICAgICAvKiBJbmRleCBpbiBuYW1lIGxpc3QgKi8KIAotI2RlZmluZSBKVU1QX0ZPUldBUkQJMTEwCS8qIE51bWJlciBvZiBieXRlcyB0byBza2lwICovCi0jZGVmaW5lIEpVTVBfSUZfRkFMU0VfT1JfUE9QIDExMQkvKiBUYXJnZXQgYnl0ZSBvZmZzZXQgZnJvbSBiZWdpbm5pbmcgb2YgY29kZSAqLwotI2RlZmluZSBKVU1QX0lGX1RSVUVfT1JfUE9QIDExMgkvKiAiIiAqLwotI2RlZmluZSBKVU1QX0FCU09MVVRFCTExMwkvKiAiIiAqLwotI2RlZmluZSBQT1BfSlVNUF9JRl9GQUxTRSAxMTQJLyogIiIgKi8KLSNkZWZpbmUgUE9QX0pVTVBfSUZfVFJVRSAxMTUJLyogIiIgKi8KKyNkZWZpbmUgSlVNUF9GT1JXQVJEICAgIDExMCAgICAgLyogTnVtYmVyIG9mIGJ5dGVzIHRvIHNraXAgKi8KKyNkZWZpbmUgSlVNUF9JRl9GQUxTRV9PUl9QT1AgMTExICAgICAgICAvKiBUYXJnZXQgYnl0ZSBvZmZzZXQgZnJvbSBiZWdpbm5pbmcgb2YgY29kZSAqLworI2RlZmluZSBKVU1QX0lGX1RSVUVfT1JfUE9QIDExMiAvKiAiIiAqLworI2RlZmluZSBKVU1QX0FCU09MVVRFICAgMTEzICAgICAvKiAiIiAqLworI2RlZmluZSBQT1BfSlVNUF9JRl9GQUxTRSAxMTQgICAvKiAiIiAqLworI2RlZmluZSBQT1BfSlVNUF9JRl9UUlVFIDExNSAgICAvKiAiIiAqLwogCi0jZGVmaW5lIExPQURfR0xPQkFMCTExNgkvKiBJbmRleCBpbiBuYW1lIGxpc3QgKi8KKyNkZWZpbmUgTE9BRF9HTE9CQUwgICAgIDExNiAgICAgLyogSW5kZXggaW4gbmFtZSBsaXN0ICovCiAKLSNkZWZpbmUgQ09OVElOVUVfTE9PUAkxMTkJLyogU3RhcnQgb2YgbG9vcCAoYWJzb2x1dGUpICovCi0jZGVmaW5lIFNFVFVQX0xPT1AJMTIwCS8qIFRhcmdldCBhZGRyZXNzIChyZWxhdGl2ZSkgKi8KLSNkZWZpbmUgU0VUVVBfRVhDRVBUCTEyMQkvKiAiIiAqLwotI2RlZmluZSBTRVRVUF9GSU5BTExZCTEyMgkvKiAiIiAqLworI2RlZmluZSBDT05USU5VRV9MT09QICAgMTE5ICAgICAvKiBTdGFydCBvZiBsb29wIChhYnNvbHV0ZSkgKi8KKyNkZWZpbmUgU0VUVVBfTE9PUCAgICAgIDEyMCAgICAgLyogVGFyZ2V0IGFkZHJlc3MgKHJlbGF0aXZlKSAqLworI2RlZmluZSBTRVRVUF9FWENFUFQgICAgMTIxICAgICAvKiAiIiAqLworI2RlZmluZSBTRVRVUF9GSU5BTExZICAgMTIyICAgICAvKiAiIiAqLwogCi0jZGVmaW5lIExPQURfRkFTVAkxMjQJLyogTG9jYWwgdmFyaWFibGUgbnVtYmVyICovCi0jZGVmaW5lIFNUT1JFX0ZBU1QJMTI1CS8qIExvY2FsIHZhcmlhYmxlIG51bWJlciAqLwotI2RlZmluZSBERUxFVEVfRkFTVAkxMjYJLyogTG9jYWwgdmFyaWFibGUgbnVtYmVyICovCisjZGVmaW5lIExPQURfRkFTVCAgICAgICAxMjQgICAgIC8qIExvY2FsIHZhcmlhYmxlIG51bWJlciAqLworI2RlZmluZSBTVE9SRV9GQVNUICAgICAgMTI1ICAgICAvKiBMb2NhbCB2YXJpYWJsZSBudW1iZXIgKi8KKyNkZWZpbmUgREVMRVRFX0ZBU1QgICAgIDEyNiAgICAgLyogTG9jYWwgdmFyaWFibGUgbnVtYmVyICovCiAKLSNkZWZpbmUgUkFJU0VfVkFSQVJHUwkxMzAJLyogTnVtYmVyIG9mIHJhaXNlIGFyZ3VtZW50cyAoMSwgMiBvciAzKSAqLworI2RlZmluZSBSQUlTRV9WQVJBUkdTICAgMTMwICAgICAvKiBOdW1iZXIgb2YgcmFpc2UgYXJndW1lbnRzICgxLCAyIG9yIDMpICovCiAvKiBDQUxMX0ZVTkNUSU9OX1hYWCBvcGNvZGVzIGRlZmluZWQgYmVsb3cgZGVwZW5kIG9uIHRoaXMgZGVmaW5pdGlvbiAqLwotI2RlZmluZSBDQUxMX0ZVTkNUSU9OCTEzMQkvKiAjYXJncyArICgja3dhcmdzPDw4KSAqLwotI2RlZmluZSBNQUtFX0ZVTkNUSU9OCTEzMgkvKiAjZGVmYXVsdHMgKyAja3dkZWZhdWx0czw8OCArICNhbm5vdGF0aW9uczw8MTYgKi8KLSNkZWZpbmUgQlVJTERfU0xJQ0UgCTEzMwkvKiBOdW1iZXIgb2YgaXRlbXMgKi8KKyNkZWZpbmUgQ0FMTF9GVU5DVElPTiAgIDEzMSAgICAgLyogI2FyZ3MgKyAoI2t3YXJnczw8OCkgKi8KKyNkZWZpbmUgTUFLRV9GVU5DVElPTiAgIDEzMiAgICAgLyogI2RlZmF1bHRzICsgI2t3ZGVmYXVsdHM8PDggKyAjYW5ub3RhdGlvbnM8PDE2ICovCisjZGVmaW5lIEJVSUxEX1NMSUNFICAgICAxMzMgICAgIC8qIE51bWJlciBvZiBpdGVtcyAqLwogCiAjZGVmaW5lIE1BS0VfQ0xPU1VSRSAgICAxMzQgICAgIC8qIHNhbWUgYXMgTUFLRV9GVU5DVElPTiAqLwogI2RlZmluZSBMT0FEX0NMT1NVUkUgICAgMTM1ICAgICAvKiBMb2FkIGZyZWUgdmFyaWFibGUgZnJvbSBjbG9zdXJlICovCkBAIC0xMjcsOSArMTI3LDkgQEAKIAogLyogVGhlIG5leHQgMyBvcGNvZGVzIG11c3QgYmUgY29udGlndW91cyBhbmQgc2F0aXNmeQogICAgKENBTExfRlVOQ1RJT05fVkFSIC0gQ0FMTF9GVU5DVElPTikgJiAzID09IDEgICovCi0jZGVmaW5lIENBTExfRlVOQ1RJT05fVkFSICAgICAgICAgIDE0MAkvKiAjYXJncyArICgja3dhcmdzPDw4KSAqLwotI2RlZmluZSBDQUxMX0ZVTkNUSU9OX0tXICAgICAgICAgICAxNDEJLyogI2FyZ3MgKyAoI2t3YXJnczw8OCkgKi8KLSNkZWZpbmUgQ0FMTF9GVU5DVElPTl9WQVJfS1cgICAgICAgMTQyCS8qICNhcmdzICsgKCNrd2FyZ3M8PDgpICovCisjZGVmaW5lIENBTExfRlVOQ1RJT05fVkFSICAgICAgICAgIDE0MCAgLyogI2FyZ3MgKyAoI2t3YXJnczw8OCkgKi8KKyNkZWZpbmUgQ0FMTF9GVU5DVElPTl9LVyAgICAgICAgICAgMTQxICAvKiAjYXJncyArICgja3dhcmdzPDw4KSAqLworI2RlZmluZSBDQUxMX0ZVTkNUSU9OX1ZBUl9LVyAgICAgICAxNDIgIC8qICNhcmdzICsgKCNrd2FyZ3M8PDgpICovCiAKICNkZWZpbmUgU0VUVVBfV0lUSCAxNDMKIApAQCAtMTQ5LDcgKzE0OSw3IEBACiAKIAogZW51bSBjbXBfb3Age1B5Q21wX0xUPVB5X0xULCBQeUNtcF9MRT1QeV9MRSwgUHlDbXBfRVE9UHlfRVEsIFB5Q21wX05FPVB5X05FLCBQeUNtcF9HVD1QeV9HVCwgUHlDbXBfR0U9UHlfR0UsCi0JICAgICBQeUNtcF9JTiwgUHlDbXBfTk9UX0lOLCBQeUNtcF9JUywgUHlDbXBfSVNfTk9ULCBQeUNtcF9FWENfTUFUQ0gsIFB5Q21wX0JBRH07CisgICAgICAgICAgICAgUHlDbXBfSU4sIFB5Q21wX05PVF9JTiwgUHlDbXBfSVMsIFB5Q21wX0lTX05PVCwgUHlDbXBfRVhDX01BVENILCBQeUNtcF9CQUR9OwogCiAjZGVmaW5lIEhBU19BUkcob3ApICgob3ApID49IEhBVkVfQVJHVU1FTlQpCiAKZGlmZiAtLWdpdCBhL0luY2x1ZGUvcGFyc2V0b2suaCBiL0luY2x1ZGUvcGFyc2V0b2suaAppbmRleCA0Yjc2OTRmLi45MTFkZmMxIDEwMDY0NAotLS0gYS9JbmNsdWRlL3BhcnNldG9rLmgKKysrIGIvSW5jbHVkZS9wYXJzZXRvay5oCkBAIC05LDcgKzksMTAgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIGludCBlcnJvcjsKLSAgICBjb25zdCBjaGFyICpmaWxlbmFtZTsgICAgICAgLyogZGVjb2RlZCBmcm9tIHRoZSBmaWxlc3lzdGVtIGVuY29kaW5nICovCisjaWZuZGVmIFBHRU4KKyAgICAvKiBUaGUgZmlsZW5hbWUgaXMgdXNlbGVzcyBmb3IgcGdlbiwgc2VlIGNvbW1lbnQgaW4gdG9rX3N0YXRlIHN0cnVjdHVyZSAqLworICAgIFB5T2JqZWN0ICpmaWxlbmFtZTsKKyNlbmRpZgogICAgIGludCBsaW5lbm87CiAgICAgaW50IG9mZnNldDsKICAgICBjaGFyICp0ZXh0OyAgICAgICAgICAgICAgICAgLyogVVRGLTgtZW5jb2RlZCBzdHJpbmcgKi8KQEAgLTY2LDggKzY5LDEwIEBACiAgICAgcGVycmRldGFpbCAqZXJyX3JldCwKICAgICBpbnQgKmZsYWdzKTsKIAotLyogTm90ZSB0aGF0IGhlIGZvbGxvd2luZyBmdW5jdGlvbiBpcyBkZWZpbmVkIGluIHB5dGhvbnJ1bi5jIG5vdCBwYXJzZXRvay5jLiAqLworLyogTm90ZSB0aGF0IHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIGFyZSBkZWZpbmVkIGluIHB5dGhvbnJ1bi5jLAorICAgbm90IGluIHBhcnNldG9rLmMgKi8KIFB5QVBJX0ZVTkModm9pZCkgUHlQYXJzZXJfU2V0RXJyb3IocGVycmRldGFpbCAqKTsKK1B5QVBJX0ZVTkModm9pZCkgUHlQYXJzZXJfQ2xlYXJFcnJvcihwZXJyZGV0YWlsICopOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL0luY2x1ZGUvcGF0Y2hsZXZlbC5oIGIvSW5jbHVkZS9wYXRjaGxldmVsLmgKaW5kZXggMDgzOTA3MS4uOGU2YzljMSAxMDA2NDQKLS0tIGEvSW5jbHVkZS9wYXRjaGxldmVsLmgKKysrIGIvSW5jbHVkZS9wYXRjaGxldmVsLmgKQEAgLTE3LDE5ICsxNywxNSBAQAogLyogVmVyc2lvbiBwYXJzZWQgb3V0IGludG8gbnVtZXJpYyB2YWx1ZXMgKi8KIC8qLS1zdGFydCBjb25zdGFudHMtLSovCiAjZGVmaW5lIFBZX01BSk9SX1ZFUlNJT04JMwotI2RlZmluZSBQWV9NSU5PUl9WRVJTSU9OCTIKLSNkZWZpbmUgUFlfTUlDUk9fVkVSU0lPTgkzCi0jZGVmaW5lIFBZX1JFTEVBU0VfTEVWRUwJUFlfUkVMRUFTRV9MRVZFTF9GSU5BTAotI2RlZmluZSBQWV9SRUxFQVNFX1NFUklBTAkwCisjZGVmaW5lIFBZX01JTk9SX1ZFUlNJT04JMworI2RlZmluZSBQWV9NSUNST19WRVJTSU9OCTAKKyNkZWZpbmUgUFlfUkVMRUFTRV9MRVZFTAlQWV9SRUxFQVNFX0xFVkVMX0JFVEEKKyNkZWZpbmUgUFlfUkVMRUFTRV9TRVJJQUwJMQogCiAvKiBWZXJzaW9uIGFzIGEgc3RyaW5nICovCi0jZGVmaW5lIFBZX1ZFUlNJT04gICAgICAJIjMuMi4zKyIKKyNkZWZpbmUgUFlfVkVSU0lPTiAgICAgIAkiMy4zLjBiMSIKIC8qLS1lbmQgY29uc3RhbnRzLS0qLwogCi0vKiBTdWJ2ZXJzaW9uIFJldmlzaW9uIG51bWJlciBvZiB0aGlzIGZpbGUgKG5vdCBvZiB0aGUgcmVwb3NpdG9yeSkuIEVtcHR5Ci0gICBzaW5jZSBNZXJjdXJpYWwgbWlncmF0aW9uLiAqLwotI2RlZmluZSBQWV9QQVRDSExFVkVMX1JFVklTSU9OICAiIgotCiAvKiBWZXJzaW9uIGFzIGEgc2luZ2xlIDQtYnl0ZSBoZXggbnVtYmVyLCBlLmcuIDB4MDEwNTAyQjIgPT0gMS41LjJiMi4KICAgIFVzZSB0aGlzIGZvciBudW1lcmljIGNvbXBhcmlzb25zLCBlLmcuICNpZiBQWV9WRVJTSU9OX0hFWCA+PSAuLi4gKi8KICNkZWZpbmUgUFlfVkVSU0lPTl9IRVggKChQWV9NQUpPUl9WRVJTSU9OIDw8IDI0KSB8IFwKZGlmZiAtLWdpdCBhL0luY2x1ZGUvcHlfY3Vyc2VzLmggYi9JbmNsdWRlL3B5X2N1cnNlcy5oCmluZGV4IGE4OTFjNDIuLmYyYzA4ZjYgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvcHlfY3Vyc2VzLmgKKysrIGIvSW5jbHVkZS9weV9jdXJzZXMuaApAQCAtNzYsNiArNzYsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgewogCVB5T2JqZWN0X0hFQUQKIAlXSU5ET1cgKndpbjsKKwljaGFyICplbmNvZGluZzsKIH0gUHlDdXJzZXNXaW5kb3dPYmplY3Q7CiAKICNkZWZpbmUgUHlDdXJzZXNXaW5kb3dfQ2hlY2sodikJIChQeV9UWVBFKHYpID09ICZQeUN1cnNlc1dpbmRvd19UeXBlKQpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9weWRlYnVnLmggYi9JbmNsdWRlL3B5ZGVidWcuaAppbmRleCBlMjNjYmRjLi45N2MyZjhjIDEwMDY0NAotLS0gYS9JbmNsdWRlL3B5ZGVidWcuaAorKysgYi9JbmNsdWRlL3B5ZGVidWcuaApAQCAtMTYsNyArMTYsNiBAQAogUHlBUElfREFUQShpbnQpIFB5X1VzZUNsYXNzRXhjZXB0aW9uc0ZsYWc7CiBQeUFQSV9EQVRBKGludCkgUHlfRnJvemVuRmxhZzsKIFB5QVBJX0RBVEEoaW50KSBQeV9JZ25vcmVFbnZpcm9ubWVudEZsYWc7Ci1QeUFQSV9EQVRBKGludCkgUHlfRGl2aXNpb25XYXJuaW5nRmxhZzsKIFB5QVBJX0RBVEEoaW50KSBQeV9Eb250V3JpdGVCeXRlY29kZUZsYWc7CiBQeUFQSV9EQVRBKGludCkgUHlfTm9Vc2VyU2l0ZURpcmVjdG9yeTsKIFB5QVBJX0RBVEEoaW50KSBQeV9VbmJ1ZmZlcmVkU3RkaW9GbGFnOwpAQCAtMjcsOCArMjYsNiBAQAogICAgUFlUSE9OUEFUSCBhbmQgUFlUSE9OSE9NRSBmcm9tIHRoZSBlbnZpcm9ubWVudCAqLwogI2RlZmluZSBQeV9HRVRFTlYocykgKFB5X0lnbm9yZUVudmlyb25tZW50RmxhZyA/IE5VTEwgOiBnZXRlbnYocykpCiAKLVB5QVBJX0ZVTkModm9pZCkgUHlfRmF0YWxFcnJvcihjb25zdCBjaGFyICptZXNzYWdlKTsKLQogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0luY2x1ZGUvcHllcnJvcnMuaCBiL0luY2x1ZGUvcHllcnJvcnMuaAppbmRleCA0YmIzYzAxLi4yYzE0NWFkIDEwMDY0NAotLS0gYS9JbmNsdWRlL3B5ZXJyb3JzLmgKKysrIGIvSW5jbHVkZS9weWVycm9ycy5oCkBAIC0xMCw3ICsxMCw4IEBACiAvKiBQeUV4Y2VwdGlvbl9IRUFEIGRlZmluZXMgdGhlIGluaXRpYWwgc2VnbWVudCBvZiBldmVyeSBleGNlcHRpb24gY2xhc3MuICovCiAjZGVmaW5lIFB5RXhjZXB0aW9uX0hFQUQgUHlPYmplY3RfSEVBRCBQeU9iamVjdCAqZGljdDtcCiAgICAgICAgICAgICAgUHlPYmplY3QgKmFyZ3M7IFB5T2JqZWN0ICp0cmFjZWJhY2s7XAotICAgICAgICAgICAgIFB5T2JqZWN0ICpjb250ZXh0OyBQeU9iamVjdCAqY2F1c2U7CisgICAgICAgICAgICAgUHlPYmplY3QgKmNvbnRleHQ7IFB5T2JqZWN0ICpjYXVzZTtcCisgICAgICAgICAgICAgaW50IHN1cHByZXNzX2NvbnRleHQ7CiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBQeUV4Y2VwdGlvbl9IRUFECkBAIC0yOCw2ICsyOSwxMyBAQAogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgUHlFeGNlcHRpb25fSEVBRAorICAgIFB5T2JqZWN0ICptc2c7CisgICAgUHlPYmplY3QgKm5hbWU7CisgICAgUHlPYmplY3QgKnBhdGg7Cit9IFB5SW1wb3J0RXJyb3JPYmplY3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeUV4Y2VwdGlvbl9IRUFECiAgICAgUHlPYmplY3QgKmVuY29kaW5nOwogICAgIFB5T2JqZWN0ICpvYmplY3Q7CiAgICAgUHlfc3NpemVfdCBzdGFydDsKQEAgLTQ1LDE4ICs1MywyMyBAQAogICAgIFB5T2JqZWN0ICpteWVycm5vOwogICAgIFB5T2JqZWN0ICpzdHJlcnJvcjsKICAgICBQeU9iamVjdCAqZmlsZW5hbWU7Ci19IFB5RW52aXJvbm1lbnRFcnJvck9iamVjdDsKLQogI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBQeU9iamVjdCAqd2luZXJyb3I7CisjZW5kaWYKKyAgICBQeV9zc2l6ZV90IHdyaXR0ZW47ICAgLyogb25seSBmb3IgQmxvY2tpbmdJT0Vycm9yLCAtMSBvdGhlcndpc2UgKi8KK30gUHlPU0Vycm9yT2JqZWN0OworCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgUHlFeGNlcHRpb25fSEVBRAotICAgIFB5T2JqZWN0ICpteWVycm5vOwotICAgIFB5T2JqZWN0ICpzdHJlcnJvcjsKLSAgICBQeU9iamVjdCAqZmlsZW5hbWU7Ci0gICAgUHlPYmplY3QgKndpbmVycm9yOwotfSBQeVdpbmRvd3NFcnJvck9iamVjdDsKKyAgICBQeU9iamVjdCAqdmFsdWU7Cit9IFB5U3RvcEl0ZXJhdGlvbk9iamVjdDsKKworLyogQ29tcGF0aWJpbGl0eSB0eXBlZGVmcyAqLwordHlwZWRlZiBQeU9TRXJyb3JPYmplY3QgUHlFbnZpcm9ubWVudEVycm9yT2JqZWN0OworI2lmZGVmIE1TX1dJTkRPV1MKK3R5cGVkZWYgUHlPU0Vycm9yT2JqZWN0IFB5V2luZG93c0Vycm9yT2JqZWN0OwogI2VuZGlmCi0jZW5kaWYKKyNlbmRpZiAvKiAhUHlfTElNSVRFRF9BUEkgKi8KIAogLyogRXJyb3IgaGFuZGxpbmcgZGVmaW5pdGlvbnMgKi8KIApAQCAtNzAsNyArODMsMTkgQEAKIFB5QVBJX0ZVTkModm9pZCkgUHlFcnJfQ2xlYXIodm9pZCk7CiBQeUFQSV9GVU5DKHZvaWQpIFB5RXJyX0ZldGNoKFB5T2JqZWN0ICoqLCBQeU9iamVjdCAqKiwgUHlPYmplY3QgKiopOwogUHlBUElfRlVOQyh2b2lkKSBQeUVycl9SZXN0b3JlKFB5T2JqZWN0ICosIFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwotUHlBUElfRlVOQyh2b2lkKSBQeV9GYXRhbEVycm9yKGNvbnN0IGNoYXIgKm1lc3NhZ2UpOworUHlBUElfRlVOQyh2b2lkKSBQeUVycl9HZXRFeGNJbmZvKFB5T2JqZWN0ICoqLCBQeU9iamVjdCAqKiwgUHlPYmplY3QgKiopOworUHlBUElfRlVOQyh2b2lkKSBQeUVycl9TZXRFeGNJbmZvKFB5T2JqZWN0ICosIFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOworCisjaWYgZGVmaW5lZChfX2NsYW5nX18pIHx8IFwKKyAgICAoZGVmaW5lZChfX0dOVUNfTUFKT1JfXykgJiYgXAorICAgICAoKF9fR05VQ19NQUpPUl9fID49IDMpIHx8IFwKKyAgICAgIChfX0dOVUNfTUFKT1JfXyA9PSAyKSAmJiAoX19HTlVDX01JTk9SX18gPj0gNSkpKQorI2RlZmluZSBfUHlfTk9fUkVUVVJOIF9fYXR0cmlidXRlX18oKF9fbm9yZXR1cm5fXykpCisjZWxzZQorI2RlZmluZSBfUHlfTk9fUkVUVVJOCisjZW5kaWYKKworUHlBUElfRlVOQyh2b2lkKSBQeV9GYXRhbEVycm9yKGNvbnN0IGNoYXIgKm1lc3NhZ2UpIF9QeV9OT19SRVRVUk47CiAKICNpZiBkZWZpbmVkKFB5X0RFQlVHKSB8fCBkZWZpbmVkKFB5X0xJTUlURURfQVBJKQogI2RlZmluZSBfUHlFcnJfT0NDVVJSRUQoKSBQeUVycl9PY2N1cnJlZCgpCkBAIC0xMjIsMTAgKzE0Nyw5IEBACiAKIFB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfQXNzZXJ0aW9uRXJyb3I7CiBQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX0F0dHJpYnV0ZUVycm9yOworUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19CdWZmZXJFcnJvcjsKIFB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfRU9GRXJyb3I7CiBQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX0Zsb2F0aW5nUG9pbnRFcnJvcjsKLVB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfRW52aXJvbm1lbnRFcnJvcjsKLVB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfSU9FcnJvcjsKIFB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfT1NFcnJvcjsKIFB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfSW1wb3J0RXJyb3I7CiBQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX0luZGV4RXJyb3I7CkBAIC0xNTAsNiArMTc0LDI3IEBACiBQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX1VuaWNvZGVUcmFuc2xhdGVFcnJvcjsKIFB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfVmFsdWVFcnJvcjsKIFB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfWmVyb0RpdmlzaW9uRXJyb3I7CisKK1B5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfQmxvY2tpbmdJT0Vycm9yOworUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19Ccm9rZW5QaXBlRXJyb3I7CitQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX0NoaWxkUHJvY2Vzc0Vycm9yOworUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19Db25uZWN0aW9uRXJyb3I7CitQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX0Nvbm5lY3Rpb25BYm9ydGVkRXJyb3I7CitQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX0Nvbm5lY3Rpb25SZWZ1c2VkRXJyb3I7CitQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX0Nvbm5lY3Rpb25SZXNldEVycm9yOworUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19GaWxlRXhpc3RzRXJyb3I7CitQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX0ZpbGVOb3RGb3VuZEVycm9yOworUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19JbnRlcnJ1cHRlZEVycm9yOworUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19Jc0FEaXJlY3RvcnlFcnJvcjsKK1B5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfTm90QURpcmVjdG9yeUVycm9yOworUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19QZXJtaXNzaW9uRXJyb3I7CitQeUFQSV9EQVRBKFB5T2JqZWN0ICopIFB5RXhjX1Byb2Nlc3NMb29rdXBFcnJvcjsKK1B5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfVGltZW91dEVycm9yOworCisKKy8qIENvbXBhdGliaWxpdHkgYWxpYXNlcyAqLworUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19FbnZpcm9ubWVudEVycm9yOworUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19JT0Vycm9yOwogI2lmZGVmIE1TX1dJTkRPV1MKIFB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfV2luZG93c0Vycm9yOwogI2VuZGlmCkBAIC0xNTcsOCArMjAyLDYgQEAKIFB5QVBJX0RBVEEoUHlPYmplY3QgKikgUHlFeGNfVk1TRXJyb3I7CiAjZW5kaWYKIAotUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19CdWZmZXJFcnJvcjsKLQogUHlBUElfREFUQShQeU9iamVjdCAqKSBQeUV4Y19SZWN1cnNpb25FcnJvckluc3Q7CiAKIC8qIFByZWRlZmluZWQgd2FybmluZyBjYXRlZ29yaWVzICovCkBAIC0xOTgsOCArMjQxLDYgQEAKICAgICApOwogCiAjaWZkZWYgTVNfV0lORE9XUwotUHlBUElfRlVOQyhQeU9iamVjdCAqKSBQeUVycl9TZXRGcm9tV2luZG93c0VycldpdGhGaWxlbmFtZU9iamVjdCgKLSAgICBpbnQsIGNvbnN0IGNoYXIgKik7CiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyV2l0aEZpbGVuYW1lKAogICAgIGludCBpZXJyLAogICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lICAgICAgICAvKiBkZWNvZGVkIGZyb20gdGhlIGZpbGVzeXN0ZW0gZW5jb2RpbmcgKi8KQEAgLTIyNCw2ICsyNjUsMTEgQEAKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlFcnJfU2V0RXhjRnJvbVdpbmRvd3NFcnIoUHlPYmplY3QgKiwgaW50KTsKICNlbmRpZiAvKiBNU19XSU5ET1dTICovCiAKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlFcnJfU2V0RXhjV2l0aEFyZ3NLd2FyZ3MoUHlPYmplY3QgKiwgUHlPYmplY3QgKiwKKyAgICBQeU9iamVjdCAqKTsKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlFcnJfU2V0SW1wb3J0RXJyb3IoUHlPYmplY3QgKiwgUHlPYmplY3QgKiwKKyAgICBQeU9iamVjdCAqKTsKKwogLyogRXhwb3J0IHRoZSBvbGQgZnVuY3Rpb24gc28gdGhhdCB0aGUgZXhpc3RpbmcgQVBJIHJlbWFpbnMgYXZhaWxhYmxlOiAqLwogUHlBUElfRlVOQyh2b2lkKSBQeUVycl9CYWRJbnRlcm5hbENhbGwodm9pZCk7CiBQeUFQSV9GVU5DKHZvaWQpIF9QeUVycl9CYWRJbnRlcm5hbENhbGwoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBsaW5lbm8pOwpAQCAtMjkzLDYgKzMzOSwxMiBAQAogICAgIFB5X3NzaXplX3QgZW5kLAogICAgIGNvbnN0IGNoYXIgKnJlYXNvbiAgICAgICAgICAvKiBVVEYtOCBlbmNvZGVkIHN0cmluZyAqLwogICAgICk7CitQeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9DcmVhdGUoCisgICAgUHlPYmplY3QgKm9iamVjdCwKKyAgICBQeV9zc2l6ZV90IHN0YXJ0LAorICAgIFB5X3NzaXplX3QgZW5kLAorICAgIGNvbnN0IGNoYXIgKnJlYXNvbiAgICAgICAgICAvKiBVVEYtOCBlbmNvZGVkIHN0cmluZyAqLworICAgICk7CiAjZW5kaWYKIAogLyogZ2V0IHRoZSBlbmNvZGluZyBhdHRyaWJ1dGUgKi8KQEAgLTM0OCw3ICs0MDAsNiBAQAogICAgIGNvbnN0IGNoYXIgKnJlYXNvbiAgICAgICAgICAvKiBVVEYtOCBlbmNvZGVkIHN0cmluZyAqLwogICAgICk7CiAKLQogLyogVGhlc2UgQVBJcyBhcmVuJ3QgcmVhbGx5IHBhcnQgb2YgdGhlIGVycm9yIGltcGxlbWVudGF0aW9uLCBidXQKICAgIG9mdGVuIG5lZWRlZCB0byBmb3JtYXQgZXJyb3IgbWVzc2FnZXM7IHRoZSBuYXRpdmUgQyBsaWIgQVBJcyBhcmUKICAgIG5vdCBhdmFpbGFibGUgb24gYWxsIHBsYXRmb3Jtcywgd2hpY2ggaXMgd2h5IHdlIHByb3ZpZGUgZW11bGF0aW9ucwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9weWV4cGF0LmggYi9JbmNsdWRlL3B5ZXhwYXQuaAppbmRleCA1MzQwZWY1Li4xNjhiNWIyIDEwMDY0NAotLS0gYS9JbmNsdWRlL3B5ZXhwYXQuaAorKysgYi9JbmNsdWRlL3B5ZXhwYXQuaApAQCAtNDMsNiArNDMsOCBAQAogICAgICAgICBYTUxfUGFyc2VyIHBhcnNlciwgWE1MX1Vua25vd25FbmNvZGluZ0hhbmRsZXIgaGFuZGxlciwKICAgICAgICAgdm9pZCAqZW5jb2RpbmdIYW5kbGVyRGF0YSk7CiAgICAgdm9pZCAoKlNldFVzZXJEYXRhKShYTUxfUGFyc2VyIHBhcnNlciwgdm9pZCAqdXNlckRhdGEpOworICAgIHZvaWQgKCpTZXRTdGFydERvY3R5cGVEZWNsSGFuZGxlcikoWE1MX1BhcnNlciBwYXJzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfU3RhcnREb2N0eXBlRGVjbEhhbmRsZXIgc3RhcnQpOwogICAgIC8qIGFsd2F5cyBhZGQgbmV3IHN0dWZmIHRvIHRoZSBlbmQhICovCiB9OwogCmRpZmYgLS1naXQgYS9JbmNsdWRlL3B5bWFjcm8uaCBiL0luY2x1ZGUvcHltYWNyby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkYzBjNjEKLS0tIC9kZXYvbnVsbAorKysgYi9JbmNsdWRlL3B5bWFjcm8uaApAQCAtMCwwICsxLDU1IEBACisjaWZuZGVmIFB5X1BZTUFDUk9fSAorI2RlZmluZSBQeV9QWU1BQ1JPX0gKKworI2RlZmluZSBQeV9NSU4oeCwgeSkgKCgoeCkgPiAoeSkpID8gKHkpIDogKHgpKQorI2RlZmluZSBQeV9NQVgoeCwgeSkgKCgoeCkgPiAoeSkpID8gKHgpIDogKHkpKQorCisvKiBBcmd1bWVudCBtdXN0IGJlIGEgY2hhciBvciBhbiBpbnQgaW4gWy0xMjgsIDEyN10gb3IgWzAsIDI1NV0uICovCisjZGVmaW5lIFB5X0NIQVJNQVNLKGMpICgodW5zaWduZWQgY2hhcikoKGMpICYgMHhmZikpCisKKworLyogQXNzZXJ0IGEgYnVpbGQtdGltZSBkZXBlbmRlbmN5LCBhcyBhbiBleHByZXNzaW9uLgorCisgICBZb3VyIGNvbXBpbGUgd2lsbCBmYWlsIGlmIHRoZSBjb25kaXRpb24gaXNuJ3QgdHJ1ZSwgb3IgY2FuJ3QgYmUgZXZhbHVhdGVkCisgICBieSB0aGUgY29tcGlsZXIuIFRoaXMgY2FuIGJlIHVzZWQgaW4gYW4gZXhwcmVzc2lvbjogaXRzIHZhbHVlIGlzIDAuCisKKyAgIEV4YW1wbGU6CisKKyAgICNkZWZpbmUgZm9vX3RvX2NoYXIoZm9vKSAgXAorICAgICAgICgoY2hhciAqKShmb28pICAgICAgICBcCisgICAgICAgICsgUHlfQlVJTERfQVNTRVJUX0VYUFIob2Zmc2V0b2Yoc3RydWN0IGZvbywgc3RyaW5nKSA9PSAwKSkKKworICAgV3JpdHRlbiBieSBSdXN0eSBSdXNzZWxsLCBwdWJsaWMgZG9tYWluLCBodHRwOi8vY2NvZGVhcmNoaXZlLm5ldC8gKi8KKyNkZWZpbmUgUHlfQlVJTERfQVNTRVJUX0VYUFIoY29uZCkgXAorICAgIChzaXplb2YoY2hhciBbMSAtIDIqIShjb25kKV0pIC0gMSkKKworLyogR2V0IHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gYSB2aXNpYmxlIGFycmF5CisKKyAgIFRoaXMgZG9lcyBub3Qgd29yayBvbiBwb2ludGVycywgb3IgYXJyYXlzIGRlY2xhcmVkIGFzIFtdLCBvciBmdW5jdGlvbgorICAgcGFyYW1ldGVycy4gV2l0aCBjb3JyZWN0IGNvbXBpbGVyIHN1cHBvcnQsIHN1Y2ggdXNhZ2Ugd2lsbCBjYXVzZSBhIGJ1aWxkCisgICBlcnJvciAoc2VlIFB5X0JVSUxEX0FTU0VSVF9FWFBSKS4KKworICAgV3JpdHRlbiBieSBSdXN0eSBSdXNzZWxsLCBwdWJsaWMgZG9tYWluLCBodHRwOi8vY2NvZGVhcmNoaXZlLm5ldC8gKi8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKQorLyogVHdvIGdjYyBleHRlbnNpb25zLgorICAgJmFbMF0gZGVncmFkZXMgdG8gYSBwb2ludGVyOiBhIGRpZmZlcmVudCB0eXBlIGZyb20gYW4gYXJyYXkgKi8KKyNkZWZpbmUgUHlfQVJSQVlfTEVOR1RIKGFycmF5KSBcCisgICAgKHNpemVvZihhcnJheSkgLyBzaXplb2YoKGFycmF5KVswXSkgXAorICAgICArIFB5X0JVSUxEX0FTU0VSVF9FWFBSKCFfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKHR5cGVvZihhcnJheSksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlb2YoJihhcnJheSlbMF0pKSkpCisjZWxzZQorI2RlZmluZSBQeV9BUlJBWV9MRU5HVEgoYXJyYXkpIFwKKyAgICAoc2l6ZW9mKGFycmF5KSAvIHNpemVvZigoYXJyYXkpWzBdKSkKKyNlbmRpZgorCisKKy8qIERlZmluZSBtYWNyb3MgZm9yIGlubGluZSBkb2N1bWVudGF0aW9uLiAqLworI2RlZmluZSBQeURvY19WQVIobmFtZSkgc3RhdGljIGNoYXIgbmFtZVtdCisjZGVmaW5lIFB5RG9jX1NUUlZBUihuYW1lLHN0cikgUHlEb2NfVkFSKG5hbWUpID0gUHlEb2NfU1RSKHN0cikKKyNpZmRlZiBXSVRIX0RPQ19TVFJJTkdTCisjZGVmaW5lIFB5RG9jX1NUUihzdHIpIHN0cgorI2Vsc2UKKyNkZWZpbmUgUHlEb2NfU1RSKHN0cikgIiIKKyNlbmRpZgorCisjZW5kaWYgLyogUHlfUFlNQUNST19IICovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3B5bWF0aC5oIGIvSW5jbHVkZS9weW1hdGguaAppbmRleCBiNGVkYTY2Li42MmE2YzQyIDEwMDY0NAotLS0gYS9JbmNsdWRlL3B5bWF0aC5oCisrKyBiL0luY2x1ZGUvcHltYXRoLmgKQEAgLTM3LDEyICszNyw2IEBACiAjZW5kaWYgLyogX19TVERDX18gKi8KICNlbmRpZiAvKiBfTVNDX1ZFUiAqLwogCi0jaWZkZWYgX09TRl9TT1VSQ0UKLS8qIE9TRjEgNS4xIGRvZXNuJ3QgbWFrZSB0aGVzZSBhdmFpbGFibGUgd2l0aCBYT1BFTl9TT1VSQ0VfRVhURU5ERUQgZGVmaW5lZCAqLwotZXh0ZXJuIGludCBmaW5pdGUoZG91YmxlKTsKLWV4dGVybiBkb3VibGUgY29weXNpZ24oZG91YmxlLCBkb3VibGUpOwotI2VuZGlmCi0KIC8qIEhpZ2ggcHJlY2lzaW9uIGRlZmludGlvbiBvZiBwaSBhbmQgZSAoRXVsZXIpCiAgKiBUaGUgdmFsdWVzIGFyZSB0YWtlbiBmcm9tIGxpYmM2J3MgbWF0aC5oLgogICovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3B5cG9ydC5oIGIvSW5jbHVkZS9weXBvcnQuaAppbmRleCA0ZWYwZGIyLi5lYmEzNGY5IDEwMDY0NAotLS0gYS9JbmNsdWRlL3B5cG9ydC5oCisrKyBiL0luY2x1ZGUvcHlwb3J0LmgKQEAgLTEzNSw3ICsxMzUsNyBAQAogI2RlZmluZSBfUHlIQVNIX01VTFRJUExJRVIgMTAwMDAwMyAgLyogMHhmNDI0MyAqLwogCiAvKiBQYXJhbWV0ZXJzIHVzZWQgZm9yIHRoZSBudW1lcmljIGhhc2ggaW1wbGVtZW50YXRpb24uICBTZWUgbm90ZXMgZm9yCi0gICBfUHlIYXNoX0RvdWJsZSBpbiBPYmplY3RzL29iamVjdC5jLiAgTnVtZXJpYyBoYXNoZXMgYXJlIGJhc2VkIG9uCisgICBfUHlfSGFzaERvdWJsZSBpbiBPYmplY3RzL29iamVjdC5jLiAgTnVtZXJpYyBoYXNoZXMgYXJlIGJhc2VkIG9uCiAgICByZWR1Y3Rpb24gbW9kdWxvIHRoZSBwcmltZSAyKipfUHlIQVNIX0JJVFMgLSAxLiAqLwogCiAjaWYgU0laRU9GX1ZPSURfUCA+PSA4CmRpZmYgLS1naXQgYS9JbmNsdWRlL3B5c3RhdGUuaCBiL0luY2x1ZGUvcHlzdGF0ZS5oCmluZGV4IGI1ZmUxYWQuLjI1YzJmYWEgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvcHlzdGF0ZS5oCisrKyBiL0luY2x1ZGUvcHlzdGF0ZS5oCkBAIC0yNSw3ICsyNSw3IEBACiAgICAgUHlPYmplY3QgKm1vZHVsZXNfYnlfaW5kZXg7CiAgICAgUHlPYmplY3QgKnN5c2RpY3Q7CiAgICAgUHlPYmplY3QgKmJ1aWx0aW5zOwotICAgIFB5T2JqZWN0ICptb2R1bGVzX3JlbG9hZGluZzsKKyAgICBQeU9iamVjdCAqaW1wb3J0bGliOwogCiAgICAgUHlPYmplY3QgKmNvZGVjX3NlYXJjaF9wYXRoOwogICAgIFB5T2JqZWN0ICpjb2RlY19zZWFyY2hfY2FjaGU7CkBAIC0zMyw2ICszMyw3IEBACiAgICAgaW50IGNvZGVjc19pbml0aWFsaXplZDsKICAgICBpbnQgZnNjb2RlY19pbml0aWFsaXplZDsKIAorCiAjaWZkZWYgSEFWRV9ETE9QRU4KICAgICBpbnQgZGxvcGVuZmxhZ3M7CiAjZW5kaWYKQEAgLTc0LDkgKzc1LDkgQEAKICAgICBzdHJ1Y3QgX2ZyYW1lICpmcmFtZTsKICAgICBpbnQgcmVjdXJzaW9uX2RlcHRoOwogICAgIGNoYXIgb3ZlcmZsb3dlZDsgLyogVGhlIHN0YWNrIGhhcyBvdmVyZmxvd2VkLiBBbGxvdyA1MCBtb3JlIGNhbGxzCi0JCSAgICAgICAgdG8gaGFuZGxlIHRoZSBydW50aW1lIGVycm9yLiAqLwotICAgIGNoYXIgcmVjdXJzaW9uX2NyaXRpY2FsOyAvKiBUaGUgY3VycmVudCBjYWxscyBtdXN0IG5vdCBjYXVzZSAKLQkJCQlhIHN0YWNrIG92ZXJmbG93LiAqLworICAgICAgICAgICAgICAgICAgICAgICAgdG8gaGFuZGxlIHRoZSBydW50aW1lIGVycm9yLiAqLworICAgIGNoYXIgcmVjdXJzaW9uX2NyaXRpY2FsOyAvKiBUaGUgY3VycmVudCBjYWxscyBtdXN0IG5vdCBjYXVzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHN0YWNrIG92ZXJmbG93LiAqLwogICAgIC8qICd0cmFjaW5nJyBrZWVwcyB0cmFjayBvZiB0aGUgZXhlY3V0aW9uIGRlcHRoIHdoZW4gdHJhY2luZy9wcm9maWxpbmcuCiAgICAgICAgVGhpcyBpcyB0byBwcmV2ZW50IHRoZSBhY3R1YWwgdHJhY2UvcHJvZmlsZSBjb2RlIGZyb20gYmVpbmcgcmVjb3JkZWQgaW4KICAgICAgICB0aGUgdHJhY2UvcHJvZmlsZS4gKi8KQEAgLTEyMyw2ICsxMjQsMTEgQEAKIFB5QVBJX0ZVTkModm9pZCkgUHlJbnRlcnByZXRlclN0YXRlX0NsZWFyKFB5SW50ZXJwcmV0ZXJTdGF0ZSAqKTsKIFB5QVBJX0ZVTkModm9pZCkgUHlJbnRlcnByZXRlclN0YXRlX0RlbGV0ZShQeUludGVycHJldGVyU3RhdGUgKik7CiBQeUFQSV9GVU5DKGludCkgX1B5U3RhdGVfQWRkTW9kdWxlKFB5T2JqZWN0Kiwgc3RydWN0IFB5TW9kdWxlRGVmKik7CisjaWYgIWRlZmluZWQoUHlfTElNSVRFRF9BUEkpIHx8IFB5X0xJTUlURURfQVBJKzAgPj0gMHgwMzAzMDAwMAorLyogTmV3IGluIDMuMyAqLworUHlBUElfRlVOQyhpbnQpIFB5U3RhdGVfQWRkTW9kdWxlKFB5T2JqZWN0Kiwgc3RydWN0IFB5TW9kdWxlRGVmKik7CitQeUFQSV9GVU5DKGludCkgUHlTdGF0ZV9SZW1vdmVNb2R1bGUoc3RydWN0IFB5TW9kdWxlRGVmKik7CisjZW5kaWYKIFB5QVBJX0ZVTkMoUHlPYmplY3QqKSBQeVN0YXRlX0ZpbmRNb2R1bGUoc3RydWN0IFB5TW9kdWxlRGVmKik7CiAKIFB5QVBJX0ZVTkMoUHlUaHJlYWRTdGF0ZSAqKSBQeVRocmVhZFN0YXRlX05ldyhQeUludGVycHJldGVyU3RhdGUgKik7CkBAIC0xNjAsNiArMTY2LDggQEAKICAgICBlbnVtIHtQeUdJTFN0YXRlX0xPQ0tFRCwgUHlHSUxTdGF0ZV9VTkxPQ0tFRH0KICAgICAgICAgUHlHSUxTdGF0ZV9TVEFURTsKIAorI2lmZGVmIFdJVEhfVEhSRUFECisKIC8qIEVuc3VyZSB0aGF0IHRoZSBjdXJyZW50IHRocmVhZCBpcyByZWFkeSB0byBjYWxsIHRoZSBQeXRob24KICAgIEMgQVBJLCByZWdhcmRsZXNzIG9mIHRoZSBjdXJyZW50IHN0YXRlIG9mIFB5dGhvbiwgb3Igb2YgaXRzCiAgICB0aHJlYWQgbG9jay4gIFRoaXMgbWF5IGJlIGNhbGxlZCBhcyBtYW55IHRpbWVzIGFzIGRlc2lyZWQKQEAgLTIwMSw2ICsyMDksOCBAQAogKi8KIFB5QVBJX0ZVTkMoUHlUaHJlYWRTdGF0ZSAqKSBQeUdJTFN0YXRlX0dldFRoaXNUaHJlYWRTdGF0ZSh2b2lkKTsKIAorI2VuZGlmICAgLyogI2lmZGVmIFdJVEhfVEhSRUFEICovCisKIC8qIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBzeXMuX2N1cnJlbnRfZnJhbWVzKCkgIFJldHVybnMgYSBkaWN0IG1hcHBpbmcKICAgIHRocmVhZCBpZCB0byB0aGF0IHRocmVhZCdzIGN1cnJlbnQgZnJhbWUuCiAqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9weXRob25ydW4uaCBiL0luY2x1ZGUvcHl0aG9ucnVuLmgKaW5kZXggZTI0NGNlNy4uNGQyNGIyZCAxMDA2NDQKLS0tIGEvSW5jbHVkZS9weXRob25ydW4uaAorKysgYi9JbmNsdWRlL3B5dGhvbnJ1bi5oCkBAIC0zMCw2ICszMCw5IEBACiAKIFB5QVBJX0ZVTkModm9pZCkgUHlfSW5pdGlhbGl6ZSh2b2lkKTsKIFB5QVBJX0ZVTkModm9pZCkgUHlfSW5pdGlhbGl6ZUV4KGludCk7CisjaWZuZGVmIFB5X0xJTUlURURfQVBJCitQeUFQSV9GVU5DKHZvaWQpIF9QeV9Jbml0aWFsaXplRXhfUHJpdmF0ZShpbnQsIGludCk7CisjZW5kaWYKIFB5QVBJX0ZVTkModm9pZCkgUHlfRmluYWxpemUodm9pZCk7CiBQeUFQSV9GVU5DKGludCkgUHlfSXNJbml0aWFsaXplZCh2b2lkKTsKIFB5QVBJX0ZVTkMoUHlUaHJlYWRTdGF0ZSAqKSBQeV9OZXdJbnRlcnByZXRlcih2b2lkKTsKQEAgLTgyLDkgKzg1LDEyIEBACiAgICAgUHlQYXJzZXJfU2ltcGxlUGFyc2VGaWxlRmxhZ3MoRlAsIFMsIEIsIDApCiAjZW5kaWYKIFB5QVBJX0ZVTkMoc3RydWN0IF9ub2RlICopIFB5UGFyc2VyX1NpbXBsZVBhcnNlU3RyaW5nRmxhZ3MoY29uc3QgY2hhciAqLCBpbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KTsKK1B5QVBJX0ZVTkMoc3RydWN0IF9ub2RlICopIFB5UGFyc2VyX1NpbXBsZVBhcnNlU3RyaW5nRmxhZ3NGaWxlbmFtZShjb25zdCBjaGFyICosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwgaW50KTsKIFB5QVBJX0ZVTkMoc3RydWN0IF9ub2RlICopIFB5UGFyc2VyX1NpbXBsZVBhcnNlRmlsZUZsYWdzKEZJTEUgKiwgY29uc3QgY2hhciAqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIGludCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIGludCk7CiAKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlSdW5fU3RyaW5nRmxhZ3MoY29uc3QgY2hhciAqLCBpbnQsIFB5T2JqZWN0ICosCkBAIC0xNzksOSArMTg1LDYgQEAKIFB5QVBJX0ZVTkMoY29uc3QgY2hhciAqKSBQeV9HZXRDb21waWxlcih2b2lkKTsKIFB5QVBJX0ZVTkMoY29uc3QgY2hhciAqKSBQeV9HZXRCdWlsZEluZm8odm9pZCk7CiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCi1QeUFQSV9GVU5DKGNvbnN0IGNoYXIgKikgX1B5X3N2bnZlcnNpb24odm9pZCk7Ci1QeUFQSV9GVU5DKGNvbnN0IGNoYXIgKikgUHlfU3VidmVyc2lvblJldmlzaW9uKHZvaWQpOwotUHlBUElfRlVOQyhjb25zdCBjaGFyICopIFB5X1N1YnZlcnNpb25TaG9ydEJyYW5jaCh2b2lkKTsKIFB5QVBJX0ZVTkMoY29uc3QgY2hhciAqKSBfUHlfaGdpZGVudGlmaWVyKHZvaWQpOwogUHlBUElfRlVOQyhjb25zdCBjaGFyICopIF9QeV9oZ3ZlcnNpb24odm9pZCk7CiAjZW5kaWYKQEAgLTE5MSw3ICsxOTQsNyBAQAogUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlCdWlsdGluX0luaXQodm9pZCk7CiBQeUFQSV9GVU5DKFB5T2JqZWN0ICopIF9QeVN5c19Jbml0KHZvaWQpOwogUHlBUElfRlVOQyh2b2lkKSBfUHlJbXBvcnRfSW5pdCh2b2lkKTsKLVB5QVBJX0ZVTkModm9pZCkgX1B5RXhjX0luaXQodm9pZCk7CitQeUFQSV9GVU5DKHZvaWQpIF9QeUV4Y19Jbml0KFB5T2JqZWN0ICogYmx0aW5tb2QpOwogUHlBUElfRlVOQyh2b2lkKSBfUHlJbXBvcnRIb29rc19Jbml0KHZvaWQpOwogUHlBUElfRlVOQyhpbnQpIF9QeUZyYW1lX0luaXQodm9pZCk7CiBQeUFQSV9GVU5DKHZvaWQpIF9QeUZsb2F0X0luaXQodm9pZCk7CkBAIC0yMTUsNiArMjE4LDcgQEAKIFB5QVBJX0ZVTkModm9pZCkgUHlGbG9hdF9GaW5pKHZvaWQpOwogUHlBUElfRlVOQyh2b2lkKSBQeU9TX0ZpbmlJbnRlcnJ1cHRzKHZvaWQpOwogUHlBUElfRlVOQyh2b2lkKSBfUHlHQ19GaW5pKHZvaWQpOworUHlBUElfRlVOQyh2b2lkKSBQeVNsaWNlX0Zpbmkodm9pZCk7CiAKIFB5QVBJX0RBVEEoUHlUaHJlYWRTdGF0ZSAqKSBfUHlfRmluYWxpemluZzsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9weXRocmVhZC5oIGIvSW5jbHVkZS9weXRocmVhZC5oCmluZGV4IDk4MDZjNjEuLjZlOWYzMDMgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvcHl0aHJlYWQuaAorKysgYi9JbmNsdWRlL3B5dGhyZWFkLmgKQEAgLTMyLDcgKzMyLDcgQEAKICAgIG9uIGEgbG9jayAoc2VlIFB5VGhyZWFkX2FjcXVpcmVfbG9ja190aW1lZCgpIGJlbG93KS4KICAgIFBZX1RJTUVPVVRfTUFYIGlzIHRoZSBoaWdoZXN0IHVzYWJsZSB2YWx1ZSAoaW4gbWljcm9zZWNvbmRzKSBvZiB0aGF0CiAgICB0eXBlLCBhbmQgZGVwZW5kcyBvbiB0aGUgc3lzdGVtIHRocmVhZGluZyBBUEkuCi0gICAKKwogICAgTk9URTogdGhpcyBpc24ndCB0aGUgc2FtZSB2YWx1ZSBhcyBgX3RocmVhZC5USU1FT1VUX01BWGAuICBUaGUgX3RocmVhZAogICAgbW9kdWxlIGV4cG9zZXMgYSBoaWdoZXItbGV2ZWwgQVBJLCB3aXRoIHRpbWVvdXRzIGV4cHJlc3NlZCBpbiBzZWNvbmRzCiAgICBhbmQgZmxvYXRpbmctcG9pbnQgbnVtYmVycyBhbGxvd2VkLgpAQCAtNzQsNiArNzQsOCBAQAogUHlBUElfRlVOQyhzaXplX3QpIFB5VGhyZWFkX2dldF9zdGFja3NpemUodm9pZCk7CiBQeUFQSV9GVU5DKGludCkgUHlUaHJlYWRfc2V0X3N0YWNrc2l6ZShzaXplX3QpOwogCitQeUFQSV9GVU5DKFB5T2JqZWN0KikgUHlUaHJlYWRfR2V0SW5mbyh2b2lkKTsKKwogLyogVGhyZWFkIExvY2FsIFN0b3JhZ2UgKFRMUykgQVBJICovCiBQeUFQSV9GVU5DKGludCkgUHlUaHJlYWRfY3JlYXRlX2tleSh2b2lkKTsKIFB5QVBJX0ZVTkModm9pZCkgUHlUaHJlYWRfZGVsZXRlX2tleShpbnQpOwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9weXRpbWUuaCBiL0luY2x1ZGUvcHl0aW1lLmgKaW5kZXggZDcwN2JkYi4uNTI5MDJmNSAxMDA2NDQKLS0tIGEvSW5jbHVkZS9weXRpbWUuaAorKysgYi9JbmNsdWRlL3B5dGltZS5oCkBAIC0zLDYgKzMsNyBAQAogI2RlZmluZSBQeV9QWVRJTUVfSAogCiAjaW5jbHVkZSAicHljb25maWcuaCIgLyogaW5jbHVkZSBmb3IgZGVmaW5lcyAqLworI2luY2x1ZGUgIm9iamVjdC5oIgogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIFN5bWJvbHMgYW5kIG1hY3JvcyB0byBzdXBwbHkgcGxhdGZvcm0taW5kZXBlbmRlbnQgaW50ZXJmYWNlcyB0byB0aW1lIHJlbGF0ZWQKQEAgLTIxLDExICsyMiwyNSBAQAogfSBfUHlUaW1lX3RpbWV2YWw7CiAjZW5kaWYKIAorLyogU3RydWN0dXJlIHVzZWQgYnkgdGltZS5nZXRfY2xvY2tfaW5mbygpICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgY29uc3QgY2hhciAqaW1wbGVtZW50YXRpb247CisgICAgaW50IG1vbm90b25pYzsKKyAgICBpbnQgYWRqdXN0YWJsZTsKKyAgICBkb3VibGUgcmVzb2x1dGlvbjsKK30gX1B5X2Nsb2NrX2luZm9fdDsKKwogLyogU2ltaWxhciB0byBQT1NJWCBnZXR0aW1lb2ZkYXkgYnV0IGNhbm5vdCBmYWlsLiAgSWYgc3lzdGVtIGdldHRpbWVvZmRheQogICogZmFpbHMgb3IgaXMgbm90IGF2YWlsYWJsZSwgZmFsbCBiYWNrIHRvIGxvd2VyIHJlc29sdXRpb24gY2xvY2tzLgogICovCiBQeUFQSV9GVU5DKHZvaWQpIF9QeVRpbWVfZ2V0dGltZW9mZGF5KF9QeVRpbWVfdGltZXZhbCAqdHApOwogCisvKiBTaW1pbGFyIHRvIF9QeVRpbWVfZ2V0dGltZW9mZGF5KCkgYnV0IHJldHJpZXZlIGFsc28gaW5mb3JtYXRpb24gb24gdGhlCisgKiBjbG9jayB1c2VkIHRvIGdldCB0aGUgY3VycmVudCB0aW1lLiAqLworUHlBUElfRlVOQyh2b2lkKSBfUHlUaW1lX2dldHRpbWVvZmRheV9pbmZvKAorICAgIF9QeVRpbWVfdGltZXZhbCAqdHAsCisgICAgX1B5X2Nsb2NrX2luZm9fdCAqaW5mbyk7CisKICNkZWZpbmUgX1B5VGltZV9BRERfU0VDT05EUyh0diwgaW50ZXJ2YWwpIFwKIGRvIHsgXAogICAgIHR2LnR2X3VzZWMgKz0gKGxvbmcpICgoKGxvbmcpIGludGVydmFsIC0gaW50ZXJ2YWwpICogMTAwMDAwMCk7IFwKQEAgLTM3LDYgKzUyLDM3IEBACiAgICAgKCh0dl9lbmQudHZfc2VjIC0gdHZfc3RhcnQudHZfc2VjKSArIFwKICAgICAgKHR2X2VuZC50dl91c2VjIC0gdHZfc3RhcnQudHZfdXNlYykgKiAwLjAwMDAwMSkKIAorI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQorLyogQ29udmVydCBhIG51bWJlciBvZiBzZWNvbmRzLCBpbnQgb3IgZmxvYXQsIHRvIHRpbWVfdC4gKi8KK1B5QVBJX0ZVTkMoaW50KSBfUHlUaW1lX09iamVjdFRvVGltZV90KAorICAgIFB5T2JqZWN0ICpvYmosCisgICAgdGltZV90ICpzZWMpOworCisvKiBDb252ZXJ0IGEgdGltZV90IHRvIGEgUHlMb25nLiAqLworUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlMb25nX0Zyb21UaW1lX3QoCisgICAgdGltZV90IHNlYyk7CisKKy8qIENvbnZlcnQgYSBQeUxvbmcgdG8gYSB0aW1lX3QuICovCitQeUFQSV9GVU5DKHRpbWVfdCkgX1B5TG9uZ19Bc1RpbWVfdCgKKyAgICBQeU9iamVjdCAqb2JqKTsKKworLyogQ29udmVydCBhIG51bWJlciBvZiBzZWNvbmRzLCBpbnQgb3IgZmxvYXQsIHRvIGEgdGltZXZhbCBzdHJ1Y3R1cmUuCisgICB1c2VjIGlzIGluIHRoZSByYW5nZSBbMDsgOTk5OTk5XSBhbmQgcm91bmRlZCB0b3dhcmRzIHplcm8uCisgICBGb3IgZXhhbXBsZSwgLTEuMiBpcyBjb252ZXJ0ZWQgdG8gKC0yLCA4MDAwMDApLiAqLworUHlBUElfRlVOQyhpbnQpIF9QeVRpbWVfT2JqZWN0VG9UaW1ldmFsKAorICAgIFB5T2JqZWN0ICpvYmosCisgICAgdGltZV90ICpzZWMsCisgICAgbG9uZyAqdXNlYyk7CisKKy8qIENvbnZlcnQgYSBudW1iZXIgb2Ygc2Vjb25kcywgaW50IG9yIGZsb2F0LCB0byBhIHRpbWVzcGVjIHN0cnVjdHVyZS4KKyAgIG5zZWMgaXMgaW4gdGhlIHJhbmdlIFswOyA5OTk5OTk5OTldIGFuZCByb3VuZGVkIHRvd2FyZHMgemVyby4KKyAgIEZvciBleGFtcGxlLCAtMS4yIGlzIGNvbnZlcnRlZCB0byAoLTIsIDgwMDAwMDAwMCkuICovCitQeUFQSV9GVU5DKGludCkgX1B5VGltZV9PYmplY3RUb1RpbWVzcGVjKAorICAgIFB5T2JqZWN0ICpvYmosCisgICAgdGltZV90ICpzZWMsCisgICAgbG9uZyAqbnNlYyk7CisjZW5kaWYKKwogLyogRHVtbXkgdG8gZm9yY2UgbGlua2luZy4gKi8KIFB5QVBJX0ZVTkModm9pZCkgX1B5VGltZV9Jbml0KHZvaWQpOwogCmRpZmYgLS1naXQgYS9JbmNsdWRlL3NldG9iamVjdC5oIGIvSW5jbHVkZS9zZXRvYmplY3QuaAppbmRleCA2MjM0MTExLi5hMTQ4NzRiIDEwMDY0NAotLS0gYS9JbmNsdWRlL3NldG9iamVjdC5oCisrKyBiL0luY2x1ZGUvc2V0b2JqZWN0LmgKQEAgLTk5LDYgKzk5LDkgQEAKIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgUHlTZXRfUG9wKFB5T2JqZWN0ICpzZXQpOwogI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQogUHlBUElfRlVOQyhpbnQpIF9QeVNldF9VcGRhdGUoUHlPYmplY3QgKnNldCwgUHlPYmplY3QgKml0ZXJhYmxlKTsKKworUHlBUElfRlVOQyhpbnQpIFB5U2V0X0NsZWFyRnJlZUxpc3Qodm9pZCk7CitQeUFQSV9GVU5DKHZvaWQpIF9QeVNldF9EZWJ1Z01hbGxvY1N0YXRzKEZJTEUgKm91dCk7CiAjZW5kaWYKIAogI2lmZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0cnVjdG1lbWJlci5oIGIvSW5jbHVkZS9zdHJ1Y3RtZW1iZXIuaAppbmRleCAwYjg1YjJhLi45NDhmNjkwIDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0cnVjdG1lbWJlci5oCisrKyBiL0luY2x1ZGUvc3RydWN0bWVtYmVyLmgKQEAgLTksMTYgKzksNiBAQAogCiAjaW5jbHVkZSA8c3RkZGVmLmg+IC8qIEZvciBvZmZzZXRvZiAqLwogCi0vKiBUaGUgb2Zmc2V0b2YoKSBtYWNybyBjYWxjdWxhdGVzIHRoZSBvZmZzZXQgb2YgYSBzdHJ1Y3R1cmUgbWVtYmVyCi0gICBpbiBpdHMgc3RydWN0dXJlLiAgVW5mb3J0dW5hdGVseSB0aGlzIGNhbm5vdCBiZSB3cml0dGVuIGRvd24KLSAgIHBvcnRhYmx5LCBoZW5jZSBpdCBpcyBwcm92aWRlZCBieSBhIFN0YW5kYXJkIEMgaGVhZGVyIGZpbGUuCi0gICBGb3IgcHJlLVN0YW5kYXJkIEMgY29tcGlsZXJzLCBoZXJlIGlzIGEgdmVyc2lvbiB0aGF0IHVzdWFsbHkgd29ya3MKLSAgIChidXQgd2F0Y2ggb3V0ISk6ICovCi0KLSNpZm5kZWYgb2Zmc2V0b2YKLSNkZWZpbmUgb2Zmc2V0b2YodHlwZSwgbWVtYmVyKSAoIChpbnQpICYgKCh0eXBlKikwKSAtPiBtZW1iZXIgKQotI2VuZGlmCi0KIC8qIEFuIGFycmF5IG9mIFB5TWVtYmVyRGVmIHN0cnVjdHVyZXMgZGVmaW5lcyB0aGUgbmFtZSwgdHlwZSBhbmQgb2Zmc2V0CiAgICBvZiBzZWxlY3RlZCBtZW1iZXJzIG9mIGEgQyBzdHJ1Y3R1cmUuICBUaGVzZSBjYW4gYmUgcmVhZCBieQogICAgUHlNZW1iZXJfR2V0T25lKCkgYW5kIHNldCBieSBQeU1lbWJlcl9TZXRPbmUoKSAoZXhjZXB0IGlmIHRoZWlyIFJFQURPTkxZCkBAIC0yNiw0MiArMTYsNDEgQEAKICAgIHBvaW50ZXIgaXMgTlVMTC4gKi8KIAogdHlwZWRlZiBzdHJ1Y3QgUHlNZW1iZXJEZWYgewotCS8qIEN1cnJlbnQgdmVyc2lvbiwgdXNlIHRoaXMgKi8KLQljaGFyICpuYW1lOwotCWludCB0eXBlOwotCVB5X3NzaXplX3Qgb2Zmc2V0OwotCWludCBmbGFnczsKLQljaGFyICpkb2M7CisgICAgY2hhciAqbmFtZTsKKyAgICBpbnQgdHlwZTsKKyAgICBQeV9zc2l6ZV90IG9mZnNldDsKKyAgICBpbnQgZmxhZ3M7CisgICAgY2hhciAqZG9jOwogfSBQeU1lbWJlckRlZjsKIAogLyogVHlwZXMgKi8KLSNkZWZpbmUgVF9TSE9SVAkJMAotI2RlZmluZSBUX0lOVAkJMQotI2RlZmluZSBUX0xPTkcJCTIKLSNkZWZpbmUgVF9GTE9BVAkJMwotI2RlZmluZSBUX0RPVUJMRQk0Ci0jZGVmaW5lIFRfU1RSSU5HCTUKLSNkZWZpbmUgVF9PQkpFQ1QJNgorI2RlZmluZSBUX1NIT1JUICAgICAwCisjZGVmaW5lIFRfSU5UICAgICAgIDEKKyNkZWZpbmUgVF9MT05HICAgICAgMgorI2RlZmluZSBUX0ZMT0FUICAgICAzCisjZGVmaW5lIFRfRE9VQkxFICAgIDQKKyNkZWZpbmUgVF9TVFJJTkcgICAgNQorI2RlZmluZSBUX09CSkVDVCAgICA2CiAvKiBYWFggdGhlIG9yZGVyaW5nIGhlcmUgaXMgd2VpcmQgZm9yIGJpbmFyeSBjb21wYXRpYmlsaXR5ICovCi0jZGVmaW5lIFRfQ0hBUgkJNwkvKiAxLWNoYXJhY3RlciBzdHJpbmcgKi8KLSNkZWZpbmUgVF9CWVRFCQk4CS8qIDgtYml0IHNpZ25lZCBpbnQgKi8KKyNkZWZpbmUgVF9DSEFSICAgICAgNyAgIC8qIDEtY2hhcmFjdGVyIHN0cmluZyAqLworI2RlZmluZSBUX0JZVEUgICAgICA4ICAgLyogOC1iaXQgc2lnbmVkIGludCAqLwogLyogdW5zaWduZWQgdmFyaWFudHM6ICovCi0jZGVmaW5lIFRfVUJZVEUJCTkKLSNkZWZpbmUgVF9VU0hPUlQJMTAKLSNkZWZpbmUgVF9VSU5UCQkxMQotI2RlZmluZSBUX1VMT05HCQkxMgorI2RlZmluZSBUX1VCWVRFICAgICA5CisjZGVmaW5lIFRfVVNIT1JUICAgIDEwCisjZGVmaW5lIFRfVUlOVCAgICAgIDExCisjZGVmaW5lIFRfVUxPTkcgICAgIDEyCiAKIC8qIEFkZGVkIGJ5IEphY2s6IHN0cmluZ3MgY29udGFpbmVkIGluIHRoZSBzdHJ1Y3R1cmUgKi8KLSNkZWZpbmUgVF9TVFJJTkdfSU5QTEFDRQkxMworI2RlZmluZSBUX1NUUklOR19JTlBMQUNFICAgIDEzCiAKIC8qIEFkZGVkIGJ5IExpbGxvOiBib29scyBjb250YWluZWQgaW4gdGhlIHN0cnVjdHVyZSAoYXNzdW1lZCBjaGFyKSAqLwotI2RlZmluZSBUX0JPT0wJCTE0CisjZGVmaW5lIFRfQk9PTCAgICAgIDE0CiAKLSNkZWZpbmUgVF9PQkpFQ1RfRVgJMTYJLyogTGlrZSBUX09CSkVDVCwgYnV0IHJhaXNlcyBBdHRyaWJ1dGVFcnJvcgotCQkJCSAgIHdoZW4gdGhlIHZhbHVlIGlzIE5VTEwsIGluc3RlYWQgb2YKLQkJCQkgICBjb252ZXJ0aW5nIHRvIE5vbmUuICovCisjZGVmaW5lIFRfT0JKRUNUX0VYIDE2ICAvKiBMaWtlIFRfT0JKRUNULCBidXQgcmFpc2VzIEF0dHJpYnV0ZUVycm9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVuIHRoZSB2YWx1ZSBpcyBOVUxMLCBpbnN0ZWFkIG9mCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252ZXJ0aW5nIHRvIE5vbmUuICovCiAjaWZkZWYgSEFWRV9MT05HX0xPTkcKLSNkZWZpbmUgVF9MT05HTE9ORyAgICAgIDE3ICAKKyNkZWZpbmUgVF9MT05HTE9ORyAgICAgIDE3CiAjZGVmaW5lIFRfVUxPTkdMT05HICAgICAxOAogI2VuZGlmIC8qIEhBVkVfTE9OR19MT05HICovCiAKQEAgLTcwLDEwICs1OSwxMCBAQAogCiAKIC8qIEZsYWdzICovCi0jZGVmaW5lIFJFQURPTkxZCTEKLSNkZWZpbmUgUkVBRF9SRVNUUklDVEVECTIKKyNkZWZpbmUgUkVBRE9OTFkgICAgICAgICAgICAxCisjZGVmaW5lIFJFQURfUkVTVFJJQ1RFRCAgICAgMgogI2RlZmluZSBQWV9XUklURV9SRVNUUklDVEVEIDQKLSNkZWZpbmUgUkVTVFJJQ1RFRAkoUkVBRF9SRVNUUklDVEVEIHwgUFlfV1JJVEVfUkVTVFJJQ1RFRCkKKyNkZWZpbmUgUkVTVFJJQ1RFRCAgICAgICAgICAoUkVBRF9SRVNUUklDVEVEIHwgUFlfV1JJVEVfUkVTVFJJQ1RFRCkKIAogCiAvKiBDdXJyZW50IEFQSSwgdXNlIHRoaXMgKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3ltdGFibGUuaCBiL0luY2x1ZGUvc3ltdGFibGUuaAppbmRleCBmZDdkZTA0Li44MmY2MjY5IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N5bXRhYmxlLmgKKysrIGIvSW5jbHVkZS9zeW10YWJsZS5oCkBAIC0yMywxMCArMjMsMTMgQEAKICAgICBQeU9iamVjdCAqc3RfYmxvY2tzOyAgICAgICAgICAgIC8qIGRpY3Q6IG1hcCBBU1Qgbm9kZSBhZGRyZXNzZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqICAgICAgIHRvIHN5bWJvbCB0YWJsZSBlbnRyaWVzICovCiAgICAgUHlPYmplY3QgKnN0X3N0YWNrOyAgICAgICAgICAgICAvKiBsaXN0OiBzdGFjayBvZiBuYW1lc3BhY2UgaW5mbyAqLwotICAgIFB5T2JqZWN0ICpzdF9nbG9iYWw7ICAgICAgICAgICAgLyogYm9ycm93ZWQgcmVmIHRvIHN0X3RvcC0+c3Rfc3ltYm9scyAqLwotICAgIGludCBzdF9uYmxvY2tzOyAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGJsb2NrcyB1c2VkICovCisgICAgUHlPYmplY3QgKnN0X2dsb2JhbDsgICAgICAgICAgICAvKiBib3Jyb3dlZCByZWYgdG8gc3RfdG9wLT5zdGVfc3ltYm9scyAqLworICAgIGludCBzdF9uYmxvY2tzOyAgICAgICAgICAgICAgICAgLyogbnVtYmVyIG9mIGJsb2NrcyB1c2VkLiBrZXB0IGZvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc2lzdGVuY3kgd2l0aCB0aGUgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZXIgc3RydWN0dXJlICovCiAgICAgUHlPYmplY3QgKnN0X3ByaXZhdGU7ICAgICAgICAgICAvKiBuYW1lIG9mIGN1cnJlbnQgY2xhc3Mgb3IgTlVMTCAqLwotICAgIFB5RnV0dXJlRmVhdHVyZXMgKnN0X2Z1dHVyZTsgICAgLyogbW9kdWxlJ3MgZnV0dXJlIGZlYXR1cmVzICovCisgICAgUHlGdXR1cmVGZWF0dXJlcyAqc3RfZnV0dXJlOyAgICAvKiBtb2R1bGUncyBmdXR1cmUgZmVhdHVyZXMgdGhhdCBhZmZlY3QKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzeW1ib2wgdGFibGUgKi8KIH07CiAKIHR5cGVkZWYgc3RydWN0IF9zeW10YWJsZV9lbnRyeSB7CkBAIC0zNCw3ICszNyw3IEBACiAgICAgUHlPYmplY3QgKnN0ZV9pZDsgICAgICAgIC8qIGludDoga2V5IGluIHN0ZV90YWJsZS0+c3RfYmxvY2tzICovCiAgICAgUHlPYmplY3QgKnN0ZV9zeW1ib2xzOyAgIC8qIGRpY3Q6IHZhcmlhYmxlIG5hbWVzIHRvIGZsYWdzICovCiAgICAgUHlPYmplY3QgKnN0ZV9uYW1lOyAgICAgIC8qIHN0cmluZzogbmFtZSBvZiBjdXJyZW50IGJsb2NrICovCi0gICAgUHlPYmplY3QgKnN0ZV92YXJuYW1lczsgIC8qIGxpc3Qgb2YgdmFyaWFibGUgbmFtZXMgKi8KKyAgICBQeU9iamVjdCAqc3RlX3Zhcm5hbWVzOyAgLyogbGlzdCBvZiBmdW5jdGlvbiBwYXJhbWV0ZXJzICovCiAgICAgUHlPYmplY3QgKnN0ZV9jaGlsZHJlbjsgIC8qIGxpc3Qgb2YgY2hpbGQgYmxvY2tzICovCiAgICAgX1B5X2Jsb2NrX3R5IHN0ZV90eXBlOyAgIC8qIG1vZHVsZSwgY2xhc3MsIG9yIGZ1bmN0aW9uICovCiAgICAgaW50IHN0ZV91bm9wdGltaXplZDsgICAgIC8qIGZhbHNlIGlmIG5hbWVzcGFjZSBpcyBvcHRpbWl6ZWQgKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvdGltZWZ1bmNzLmggYi9JbmNsdWRlL3RpbWVmdW5jcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYzQzNTc1Li4wMDAwMDAwCi0tLSBhL0luY2x1ZGUvdGltZWZ1bmNzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi0vKiAgdGltZWZ1bmNzLmgKLSAqLwotCi0vKiBVdGlsaXR5IGZ1bmN0aW9uIHJlbGF0ZWQgdG8gdGltZW1vZHVsZS5jLiAqLwotCi0jaWZuZGVmIFRJTUVGVU5DU19ICi0jZGVmaW5lIFRJTUVGVU5DU19ICi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLQotLyogQ2FzdCBkb3VibGUgeCB0byB0aW1lX3QsIGJ1dCByYWlzZSBWYWx1ZUVycm9yIGlmIHggaXMgdG9vIGxhcmdlCi0gKiB0byBmaXQgaW4gYSB0aW1lX3QuICBWYWx1ZUVycm9yIGlzIHNldCBvbiByZXR1cm4gaWZmIHRoZSByZXR1cm4KLSAqIHZhbHVlIGlzICh0aW1lX3QpLTEgYW5kIFB5RXJyX09jY3VycmVkKCkuCi0gKi8KLSNpZm5kZWYgUHlfTElNSVRFRF9BUEkKLVB5QVBJX0ZVTkModGltZV90KSBfUHlUaW1lX0RvdWJsZVRvVGltZXQoZG91YmxlIHgpOwotI2VuZGlmCi0KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLSNlbmRpZiAgLyogVElNRUZVTkNTX0ggKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvdHJhY2ViYWNrLmggYi9JbmNsdWRlL3RyYWNlYmFjay5oCmluZGV4IDY5ZTNkMDUuLjc3MzQ3MDcgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvdHJhY2ViYWNrLmgKKysrIGIvSW5jbHVkZS90cmFjZWJhY2suaApAQCAtNSw2ICs1LDggQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKKyNpbmNsdWRlICJweXN0YXRlLmgiCisKIHN0cnVjdCBfZnJhbWU7CiAKIC8qIFRyYWNlYmFjayBpbnRlcmZhY2UgKi8KQEAgLTI4LDYgKzMwLDQyIEBACiBQeUFQSV9EQVRBKFB5VHlwZU9iamVjdCkgUHlUcmFjZUJhY2tfVHlwZTsKICNkZWZpbmUgUHlUcmFjZUJhY2tfQ2hlY2sodikgKFB5X1RZUEUodikgPT0gJlB5VHJhY2VCYWNrX1R5cGUpCiAKKy8qIFdyaXRlIHRoZSBQeXRob24gdHJhY2ViYWNrIGludG8gdGhlIGZpbGUgJ2ZkJy4gRm9yIGV4YW1wbGU6CisKKyAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgZmlyc3QpOgorICAgICAgICAgRmlsZSAieHh4IiwgbGluZSB4eHggaW4gPHh4eD4KKyAgICAgICAgIEZpbGUgInh4eCIsIGxpbmUgeHh4IGluIDx4eHg+CisgICAgICAgICAuLi4KKyAgICAgICAgIEZpbGUgInh4eCIsIGxpbmUgeHh4IGluIDx4eHg+CisKKyAgIFRoaXMgZnVuY3Rpb24gaXMgd3JpdHRlbiBmb3IgZGVidWcgcHVycG9zZSBvbmx5LCB0byBkdW1wIHRoZSB0cmFjZWJhY2sgaW4KKyAgIHRoZSB3b3JzdCBjYXNlOiBhZnRlciBhIHNlZ21lbnRhdGlvbiBmYXVsdCwgYXQgZmF0YWwgZXJyb3IsIGV0Yy4gVGhhdCdzIHdoeSwKKyAgIGl0IGlzIHZlcnkgbGltaXRlZC4gU3RyaW5ncyBhcmUgdHJ1bmNhdGVkIHRvIDEwMCBjaGFyYWN0ZXJzIGFuZCBlbmNvZGVkIHRvCisgICBBU0NJSSB3aXRoIGJhY2tzbGFzaHJlcGxhY2UuIEl0IGRvZXNuJ3Qgd3JpdGUgdGhlIHNvdXJjZSBjb2RlLCBvbmx5IHRoZQorICAgZnVuY3Rpb24gbmFtZSwgZmlsZW5hbWUgYW5kIGxpbmUgbnVtYmVyIG9mIGVhY2ggZnJhbWUuIFdyaXRlIG9ubHkgdGhlIGZpcnN0CisgICAxMDAgZnJhbWVzOiBpZiB0aGUgdHJhY2ViYWNrIGlzIHRydW5jYXRlZCwgd3JpdGUgdGhlIGxpbmUgIiAuLi4iLgorCisgICBUaGlzIGZ1bmN0aW9uIGlzIHNpZ25hbCBzYWZlLiAqLworCitQeUFQSV9EQVRBKHZvaWQpIF9QeV9EdW1wVHJhY2ViYWNrKAorICAgIGludCBmZCwKKyAgICBQeVRocmVhZFN0YXRlICp0c3RhdGUpOworCisvKiBXcml0ZSB0aGUgdHJhY2ViYWNrIG9mIGFsbCB0aHJlYWRzIGludG8gdGhlIGZpbGUgJ2ZkJy4gY3VycmVudF90aHJlYWQgY2FuIGJlCisgICBOVUxMLiBSZXR1cm4gTlVMTCBvbiBzdWNjZXNzLCBvciBhbiBlcnJvciBtZXNzYWdlIG9uIGVycm9yLgorCisgICBUaGlzIGZ1bmN0aW9uIGlzIHdyaXR0ZW4gZm9yIGRlYnVnIHB1cnBvc2Ugb25seS4gSXQgY2FsbHMKKyAgIF9QeV9EdW1wVHJhY2ViYWNrKCkgZm9yIGVhY2ggdGhyZWFkLCBhbmQgc28gaGFzIHRoZSBzYW1lIGxpbWl0YXRpb25zLiBJdAorICAgb25seSB3cml0ZSB0aGUgdHJhY2ViYWNrIG9mIHRoZSBmaXJzdCAxMDAgdGhyZWFkczogd3JpdGUgIi4uLiIgaWYgdGhlcmUgYXJlCisgICBtb3JlIHRocmVhZHMuCisKKyAgIFRoaXMgZnVuY3Rpb24gaXMgc2lnbmFsIHNhZmUuICovCisKK1B5QVBJX0RBVEEoY29uc3QgY2hhciopIF9QeV9EdW1wVHJhY2ViYWNrVGhyZWFkcygKKyAgICBpbnQgZmQsIFB5SW50ZXJwcmV0ZXJTdGF0ZSAqaW50ZXJwLAorICAgIFB5VGhyZWFkU3RhdGUgKmN1cnJlbnRfdGhyZWFkKTsKKworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvSW5jbHVkZS90dXBsZW9iamVjdC5oIGIvSW5jbHVkZS90dXBsZW9iamVjdC5oCmluZGV4IGYxN2I3ODguLmMyNzNjZTcgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvdHVwbGVvYmplY3QuaAorKysgYi9JbmNsdWRlL3R1cGxlb2JqZWN0LmgKQEAgLTYzLDYgKzYzLDkgQEAKICNlbmRpZgogCiBQeUFQSV9GVU5DKGludCkgUHlUdXBsZV9DbGVhckZyZWVMaXN0KHZvaWQpOworI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQorUHlBUElfRlVOQyh2b2lkKSBfUHlUdXBsZV9EZWJ1Z01hbGxvY1N0YXRzKEZJTEUgKm91dCk7CisjZW5kaWYgLyogUHlfTElNSVRFRF9BUEkgKi8KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CmRpZmYgLS1naXQgYS9JbmNsdWRlL3Vjbmhhc2guaCBiL0luY2x1ZGUvdWNuaGFzaC5oCmluZGV4IDcwZmRmMTMuLjhkZTliYTAgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvdWNuaGFzaC5oCisrKyBiL0luY2x1ZGUvdWNuaGFzaC5oCkBAIC0xOSwxMSArMTksMTMgQEAKICAgICAgICBzdWNjZXNzLCB6ZXJvIGlmIG5vdC4gIERvZXMgbm90IHNldCBQeXRob24gZXhjZXB0aW9ucy4gCiAgICAgICAgSWYgc2VsZiBpcyBOVUxMLCBkYXRhIGNvbWUgZnJvbSB0aGUgZGVmYXVsdCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZS4KICAgICAgICBJZiBpdCBpcyBub3QgTlVMTCwgaXQgc2hvdWxkIGJlIGEgdW5pY29kZWRhdGEudWNkX1hfWV9aIG9iamVjdCAqLwotICAgIGludCAoKmdldG5hbWUpKFB5T2JqZWN0ICpzZWxmLCBQeV9VQ1M0IGNvZGUsIGNoYXIqIGJ1ZmZlciwgaW50IGJ1Zmxlbik7CisgICAgaW50ICgqZ2V0bmFtZSkoUHlPYmplY3QgKnNlbGYsIFB5X1VDUzQgY29kZSwgY2hhciogYnVmZmVyLCBpbnQgYnVmbGVuLAorICAgICAgICAgICAgICAgICAgIGludCB3aXRoX2FsaWFzX2FuZF9zZXEpOwogCiAgICAgLyogR2V0IGNoYXJhY3RlciBjb2RlIGZvciBhIGdpdmVuIG5hbWUuICBTYW1lIGVycm9yIGhhbmRsaW5nCiAgICAgICAgYXMgZm9yIGdldG5hbWUuICovCi0gICAgaW50ICgqZ2V0Y29kZSkoUHlPYmplY3QgKnNlbGYsIGNvbnN0IGNoYXIqIG5hbWUsIGludCBuYW1lbGVuLCBQeV9VQ1M0KiBjb2RlKTsKKyAgICBpbnQgKCpnZXRjb2RlKShQeU9iamVjdCAqc2VsZiwgY29uc3QgY2hhciogbmFtZSwgaW50IG5hbWVsZW4sIFB5X1VDUzQqIGNvZGUsCisgICAgICAgICAgICAgICAgICAgaW50IHdpdGhfbmFtZWRfc2VxKTsKIAogfSBfUHlVbmljb2RlX05hbWVfQ0FQSTsKIApkaWZmIC0tZ2l0IGEvSW5jbHVkZS91bmljb2Rlb2JqZWN0LmggYi9JbmNsdWRlL3VuaWNvZGVvYmplY3QuaAppbmRleCAzNzlhOTBjLi4xMzVlNDY5IDEwMDY0NAotLS0gYS9JbmNsdWRlL3VuaWNvZGVvYmplY3QuaAorKysgYi9JbmNsdWRlL3VuaWNvZGVvYmplY3QuaApAQCAtNjQsMTYgKzY0LDE1IEBACiAvKiBQeXRob24gMy54IHJlcXVpcmVzIHVuaWNvZGUgKi8KICNkZWZpbmUgUHlfVVNJTkdfVU5JQ09ERQogCi0vKiBGSVhNRTogTXZMJ3MgbmV3IGltcGxlbWVudGF0aW9uIGFzc3VtZXMgdGhhdCBQeV9VTklDT0RFX1NJWkUgaXMKLSAgIHByb3Blcmx5IHNldCwgYnV0IHRoZSBkZWZhdWx0IHJ1bGVzIGJlbG93IGRvZXNuJ3Qgc2V0IGl0LiAgSSdsbAotICAgc29ydCB0aGlzIG91dCBzb21lIG90aGVyIGRheSAtLSBmcmVkcmlrQHB5dGhvbndhcmUuY29tICovCi0KLSNpZm5kZWYgUHlfVU5JQ09ERV9TSVpFCi0jZXJyb3IgTXVzdCBkZWZpbmUgUHlfVU5JQ09ERV9TSVpFCisjaWZuZGVmIFNJWkVPRl9XQ0hBUl9UCisjZXJyb3IgTXVzdCBkZWZpbmUgU0laRU9GX1dDSEFSX1QKICNlbmRpZgogCi0vKiBTZXR0aW5nIFB5X1VOSUNPREVfV0lERSBlbmFibGVzIFVDUy00IHN0b3JhZ2UuICBPdGhlcndpc2UsIFVuaWNvZGUKLSAgIHN0cmluZ3MgYXJlIHN0b3JlZCBhcyBVQ1MtMiAod2l0aCBsaW1pdGVkIHN1cHBvcnQgZm9yIFVURi0xNikgKi8KKyNkZWZpbmUgUHlfVU5JQ09ERV9TSVpFIFNJWkVPRl9XQ0hBUl9UCisKKy8qIElmIHdjaGFyX3QgY2FuIGJlIHVzZWQgZm9yIFVDUy00IHN0b3JhZ2UsIHNldCBQeV9VTklDT0RFX1dJREUuCisgICBPdGhlcndpc2UsIFVuaWNvZGUgc3RyaW5ncyBhcmUgc3RvcmVkIGFzIFVDUy0yICh3aXRoIGxpbWl0ZWQgc3VwcG9ydAorICAgZm9yIFVURi0xNikgKi8KIAogI2lmIFB5X1VOSUNPREVfU0laRSA+PSA0CiAjZGVmaW5lIFB5X1VOSUNPREVfV0lERQpAQCAtODQsMTkgKzgzLDE0IEBACiAvKiAjZGVmaW5lIEhBVkVfV0NIQVJfSCAqLwogLyogI2RlZmluZSBIQVZFX1VTQUJMRV9XQ0hBUl9UICovCiAKLS8qIERlZmF1bHRzIGZvciB2YXJpb3VzIHBsYXRmb3JtcyAqLwotI2lmbmRlZiBQWV9VTklDT0RFX1RZUEUKKy8qIFB5X1VOSUNPREUgd2FzIHRoZSBuYXRpdmUgVW5pY29kZSBzdG9yYWdlIGZvcm1hdCAoY29kZSB1bml0KSB1c2VkIGJ5CisgICBQeXRob24gYW5kIHJlcHJlc2VudHMgYSBzaW5nbGUgVW5pY29kZSBlbGVtZW50IGluIHRoZSBVbmljb2RlIHR5cGUuCisgICBXaXRoIFBFUCAzOTMsIFB5X1VOSUNPREUgaXMgZGVwcmVjYXRlZCBhbmQgcmVwbGFjZWQgd2l0aCBhCisgICB0eXBlZGVmIHRvIHdjaGFyX3QuICovCiAKLS8qIFdpbmRvd3MgaGFzIGEgdXNhYmxlIHdjaGFyX3QgdHlwZSAodW5sZXNzIHdlJ3JlIHVzaW5nIFVDUy00KSAqLwotIyBpZiBkZWZpbmVkKE1TX1dJTjMyKSAmJiBQeV9VTklDT0RFX1NJWkUgPT0gMgotIyAgZGVmaW5lIEhBVkVfVVNBQkxFX1dDSEFSX1QKLSMgIGRlZmluZSBQWV9VTklDT0RFX1RZUEUgd2NoYXJfdAotIyBlbmRpZgotCi0jIGlmIGRlZmluZWQoUHlfVU5JQ09ERV9XSURFKQotIyAgZGVmaW5lIFBZX1VOSUNPREVfVFlQRSBQeV9VQ1M0Ci0jIGVuZGlmCi0KKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKKyNkZWZpbmUgUFlfVU5JQ09ERV9UWVBFIHdjaGFyX3QKK3R5cGVkZWYgd2NoYXJfdCBQeV9VTklDT0RFOwogI2VuZGlmCiAKIC8qIElmIHRoZSBjb21waWxlciBwcm92aWRlcyBhIHdjaGFyX3QgdHlwZSB3ZSB0cnkgdG8gc3VwcG9ydCBpdApAQCAtMTA5LDYgKzEwMywxMCBAQAogIyBlbmRpZgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpCisjICBkZWZpbmUgSEFWRV9NQkNTCisjZW5kaWYKKwogI2lmZGVmIEhBVkVfV0NIQVJfSAogLyogV29yayBhcm91bmQgYSBjb3NtZXRpYyBidWcgaW4gQlNESSA0Lnggd2NoYXIuaDsgdGhhbmtzIHRvIFRob21hcyBXb3V0ZXJzICovCiAjIGlmZGVmIF9IQVZFX0JTREkKQEAgLTExNywyMDEgKzExNSwyNCBAQAogIyAgaW5jbHVkZSA8d2NoYXIuaD4KICNlbmRpZgogCi0vKgotICogVXNlIHRoaXMgdHlwZWRlZiB3aGVuIHlvdSBuZWVkIHRvIHJlcHJlc2VudCBhIFVURi0xNiBzdXJyb2dhdGUgcGFpcgotICogYXMgc2luZ2xlIHVuc2lnbmVkIGludGVnZXIuCi0gKi8KLSNpZiBTSVpFT0ZfSU5UID49IDQKKy8qIFB5X1VDUzQgYW5kIFB5X1VDUzIgYXJlIHR5cGVkZWZzIGZvciB0aGUgcmVzcGVjdGl2ZQorICAgdW5pY29kZSByZXByZXNlbnRhdGlvbnMuICovCisjaWYgU0laRU9GX0lOVCA9PSA0CiB0eXBlZGVmIHVuc2lnbmVkIGludCBQeV9VQ1M0OwotI2VsaWYgU0laRU9GX0xPTkcgPj0gNAorI2VsaWYgU0laRU9GX0xPTkcgPT0gNAogdHlwZWRlZiB1bnNpZ25lZCBsb25nIFB5X1VDUzQ7Ci0jZW5kaWYKLQotLyogUHlfVU5JQ09ERSBpcyB0aGUgbmF0aXZlIFVuaWNvZGUgc3RvcmFnZSBmb3JtYXQgKGNvZGUgdW5pdCkgdXNlZCBieQotICAgUHl0aG9uIGFuZCByZXByZXNlbnRzIGEgc2luZ2xlIFVuaWNvZGUgZWxlbWVudCBpbiB0aGUgVW5pY29kZQotICAgdHlwZS4gKi8KLQotI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQotdHlwZWRlZiBQWV9VTklDT0RFX1RZUEUgUHlfVU5JQ09ERTsKLSNlbmRpZgotCi0vKiAtLS0gVUNTLTIvVUNTLTQgTmFtZSBNYW5nbGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotLyogVW5pY29kZSBBUEkgbmFtZXMgYXJlIG1hbmdsZWQgdG8gYXNzdXJlIHRoYXQgVUNTLTIgYW5kIFVDUy00IGJ1aWxkcwotICAgcHJvZHVjZSBkaWZmZXJlbnQgZXh0ZXJuYWwgbmFtZXMgYW5kIHRodXMgY2F1c2UgaW1wb3J0IGVycm9ycyBpbgotICAgY2FzZSBQeXRob24gaW50ZXJwcmV0ZXJzIGFuZCBleHRlbnNpb25zIHdpdGggbWl4ZWQgY29tcGlsZWQgaW4KLSAgIFVuaWNvZGUgd2lkdGggYXNzdW1wdGlvbnMgYXJlIGNvbWJpbmVkLiAqLwotCi0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotCi0jIGRlZmluZSBQeVVuaWNvZGVfQXNBU0NJSVN0cmluZyBQeVVuaWNvZGVVQ1MyX0FzQVNDSUlTdHJpbmcKLSMgZGVmaW5lIFB5VW5pY29kZV9Bc0NoYXJtYXBTdHJpbmcgUHlVbmljb2RlVUNTMl9Bc0NoYXJtYXBTdHJpbmcKLSMgZGVmaW5lIFB5VW5pY29kZV9Bc0RlY29kZWRPYmplY3QgUHlVbmljb2RlVUNTMl9Bc0RlY29kZWRPYmplY3QKLSMgZGVmaW5lIFB5VW5pY29kZV9Bc0RlY29kZWRVbmljb2RlIFB5VW5pY29kZVVDUzJfQXNEZWNvZGVkVW5pY29kZQotIyBkZWZpbmUgUHlVbmljb2RlX0FzRW5jb2RlZE9iamVjdCBQeVVuaWNvZGVVQ1MyX0FzRW5jb2RlZE9iamVjdAotIyBkZWZpbmUgUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyBQeVVuaWNvZGVVQ1MyX0FzRW5jb2RlZFN0cmluZwotIyBkZWZpbmUgUHlVbmljb2RlX0FzRW5jb2RlZFVuaWNvZGUgUHlVbmljb2RlVUNTMl9Bc0VuY29kZWRVbmljb2RlCi0jIGRlZmluZSBQeVVuaWNvZGVfQXNMYXRpbjFTdHJpbmcgUHlVbmljb2RlVUNTMl9Bc0xhdGluMVN0cmluZwotIyBkZWZpbmUgUHlVbmljb2RlX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZyBQeVVuaWNvZGVVQ1MyX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZwotIyBkZWZpbmUgUHlVbmljb2RlX0FzVVRGMzJTdHJpbmcgUHlVbmljb2RlVUNTMl9Bc1VURjMyU3RyaW5nCi0jIGRlZmluZSBQeVVuaWNvZGVfQXNVVEYxNlN0cmluZyBQeVVuaWNvZGVVQ1MyX0FzVVRGMTZTdHJpbmcKLSMgZGVmaW5lIFB5VW5pY29kZV9Bc1VURjhTdHJpbmcgUHlVbmljb2RlVUNTMl9Bc1VURjhTdHJpbmcKLSMgZGVmaW5lIFB5VW5pY29kZV9Bc1VuaWNvZGUgUHlVbmljb2RlVUNTMl9Bc1VuaWNvZGUKLSMgZGVmaW5lIFB5VW5pY29kZV9Bc1VuaWNvZGVFc2NhcGVTdHJpbmcgUHlVbmljb2RlVUNTMl9Bc1VuaWNvZGVFc2NhcGVTdHJpbmcKLSMgZGVmaW5lIFB5VW5pY29kZV9Bc1dpZGVDaGFyIFB5VW5pY29kZVVDUzJfQXNXaWRlQ2hhcgotIyBkZWZpbmUgUHlVbmljb2RlX0FzV2lkZUNoYXJTdHJpbmcgUHlVbmljb2RlVUNTMl9Bc1dpZGVDaGFyU3RyaW5nCi0jIGRlZmluZSBQeVVuaWNvZGVfQ2xlYXJGcmVlTGlzdCBQeVVuaWNvZGVVQ1MyX0NsZWFyRnJlZWxpc3QKLSMgZGVmaW5lIFB5VW5pY29kZV9Db21wYXJlIFB5VW5pY29kZVVDUzJfQ29tcGFyZQotIyBkZWZpbmUgUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcgUHlVbmljb2RlVUNTMl9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nCi0jIGRlZmluZSBQeVVuaWNvZGVfQ29uY2F0IFB5VW5pY29kZVVDUzJfQ29uY2F0Ci0jIGRlZmluZSBQeVVuaWNvZGVfQXBwZW5kIFB5VW5pY29kZVVDUzJfQXBwZW5kCi0jIGRlZmluZSBQeVVuaWNvZGVfQXBwZW5kQW5kRGVsIFB5VW5pY29kZVVDUzJfQXBwZW5kQW5kRGVsCi0jIGRlZmluZSBQeVVuaWNvZGVfQ29udGFpbnMgUHlVbmljb2RlVUNTMl9Db250YWlucwotIyBkZWZpbmUgUHlVbmljb2RlX0NvdW50IFB5VW5pY29kZVVDUzJfQ291bnQKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGUgUHlVbmljb2RlVUNTMl9EZWNvZGUKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVBU0NJSSBQeVVuaWNvZGVVQ1MyX0RlY29kZUFTQ0lJCi0jIGRlZmluZSBQeVVuaWNvZGVfRGVjb2RlQ2hhcm1hcCBQeVVuaWNvZGVVQ1MyX0RlY29kZUNoYXJtYXAKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVMYXRpbjEgUHlVbmljb2RlVUNTMl9EZWNvZGVMYXRpbjEKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQgUHlVbmljb2RlVUNTMl9EZWNvZGVGU0RlZmF1bHQKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHRBbmRTaXplIFB5VW5pY29kZVVDUzJfRGVjb2RlRlNEZWZhdWx0QW5kU2l6ZQotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZVJhd1VuaWNvZGVFc2NhcGUgUHlVbmljb2RlVUNTMl9EZWNvZGVSYXdVbmljb2RlRXNjYXBlCi0jIGRlZmluZSBQeVVuaWNvZGVfRGVjb2RlVVRGMzIgUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYzMgotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZVVURjMyU3RhdGVmdWwgUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYzMlN0YXRlZnVsCi0jIGRlZmluZSBQeVVuaWNvZGVfRGVjb2RlVVRGMTYgUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYxNgotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZVVURjE2U3RhdGVmdWwgUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYxNlN0YXRlZnVsCi0jIGRlZmluZSBQeVVuaWNvZGVfRGVjb2RlVVRGOCBQeVVuaWNvZGVVQ1MyX0RlY29kZVVURjgKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVVVEY4U3RhdGVmdWwgUHlVbmljb2RlVUNTMl9EZWNvZGVVVEY4U3RhdGVmdWwKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVVbmljb2RlRXNjYXBlIFB5VW5pY29kZVVDUzJfRGVjb2RlVW5pY29kZUVzY2FwZQotIyBkZWZpbmUgUHlVbmljb2RlX0VuY29kZSBQeVVuaWNvZGVVQ1MyX0VuY29kZQotIyBkZWZpbmUgUHlVbmljb2RlX0VuY29kZUFTQ0lJIFB5VW5pY29kZVVDUzJfRW5jb2RlQVNDSUkKLSMgZGVmaW5lIFB5VW5pY29kZV9FbmNvZGVDaGFybWFwIFB5VW5pY29kZVVDUzJfRW5jb2RlQ2hhcm1hcAotIyBkZWZpbmUgUHlVbmljb2RlX0VuY29kZURlY2ltYWwgUHlVbmljb2RlVUNTMl9FbmNvZGVEZWNpbWFsCi0jIGRlZmluZSBQeVVuaWNvZGVfRW5jb2RlTGF0aW4xIFB5VW5pY29kZVVDUzJfRW5jb2RlTGF0aW4xCi0jIGRlZmluZSBQeVVuaWNvZGVfRW5jb2RlUmF3VW5pY29kZUVzY2FwZSBQeVVuaWNvZGVVQ1MyX0VuY29kZVJhd1VuaWNvZGVFc2NhcGUKLSMgZGVmaW5lIFB5VW5pY29kZV9FbmNvZGVVVEYzMiBQeVVuaWNvZGVVQ1MyX0VuY29kZVVURjMyCi0jIGRlZmluZSBQeVVuaWNvZGVfRW5jb2RlVVRGMTYgUHlVbmljb2RlVUNTMl9FbmNvZGVVVEYxNgotIyBkZWZpbmUgUHlVbmljb2RlX0VuY29kZVVURjggUHlVbmljb2RlVUNTMl9FbmNvZGVVVEY4Ci0jIGRlZmluZSBQeVVuaWNvZGVfRW5jb2RlVW5pY29kZUVzY2FwZSBQeVVuaWNvZGVVQ1MyX0VuY29kZVVuaWNvZGVFc2NhcGUKLSMgZGVmaW5lIFB5VW5pY29kZV9GaW5kIFB5VW5pY29kZVVDUzJfRmluZAotIyBkZWZpbmUgUHlVbmljb2RlX0Zvcm1hdCBQeVVuaWNvZGVVQ1MyX0Zvcm1hdAotIyBkZWZpbmUgUHlVbmljb2RlX0Zyb21FbmNvZGVkT2JqZWN0IFB5VW5pY29kZVVDUzJfRnJvbUVuY29kZWRPYmplY3QKLSMgZGVmaW5lIFB5VW5pY29kZV9Gcm9tRm9ybWF0IFB5VW5pY29kZVVDUzJfRnJvbUZvcm1hdAotIyBkZWZpbmUgUHlVbmljb2RlX0Zyb21Gb3JtYXRWIFB5VW5pY29kZVVDUzJfRnJvbUZvcm1hdFYKLSMgZGVmaW5lIFB5VW5pY29kZV9Gcm9tT2JqZWN0IFB5VW5pY29kZVVDUzJfRnJvbU9iamVjdAotIyBkZWZpbmUgUHlVbmljb2RlX0Zyb21PcmRpbmFsIFB5VW5pY29kZVVDUzJfRnJvbU9yZGluYWwKLSMgZGVmaW5lIFB5VW5pY29kZV9Gcm9tU3RyaW5nIFB5VW5pY29kZVVDUzJfRnJvbVN0cmluZwotIyBkZWZpbmUgUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplIFB5VW5pY29kZVVDUzJfRnJvbVN0cmluZ0FuZFNpemUKLSMgZGVmaW5lIFB5VW5pY29kZV9Gcm9tVW5pY29kZSBQeVVuaWNvZGVVQ1MyX0Zyb21Vbmljb2RlCi0jIGRlZmluZSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyIFB5VW5pY29kZVVDUzJfRnJvbVdpZGVDaGFyCi0jIGRlZmluZSBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIgUHlVbmljb2RlVUNTMl9GU0NvbnZlcnRlcgotIyBkZWZpbmUgUHlVbmljb2RlX0ZTRGVjb2RlciBQeVVuaWNvZGVVQ1MyX0ZTRGVjb2RlcgotIyBkZWZpbmUgUHlVbmljb2RlX0dldERlZmF1bHRFbmNvZGluZyBQeVVuaWNvZGVVQ1MyX0dldERlZmF1bHRFbmNvZGluZwotIyBkZWZpbmUgUHlVbmljb2RlX0dldE1heCBQeVVuaWNvZGVVQ1MyX0dldE1heAotIyBkZWZpbmUgUHlVbmljb2RlX0dldFNpemUgUHlVbmljb2RlVUNTMl9HZXRTaXplCi0jIGRlZmluZSBQeVVuaWNvZGVfSXNJZGVudGlmaWVyIFB5VW5pY29kZVVDUzJfSXNJZGVudGlmaWVyCi0jIGRlZmluZSBQeVVuaWNvZGVfSm9pbiBQeVVuaWNvZGVVQ1MyX0pvaW4KLSMgZGVmaW5lIFB5VW5pY29kZV9QYXJ0aXRpb24gUHlVbmljb2RlVUNTMl9QYXJ0aXRpb24KLSMgZGVmaW5lIFB5VW5pY29kZV9SUGFydGl0aW9uIFB5VW5pY29kZVVDUzJfUlBhcnRpdGlvbgotIyBkZWZpbmUgUHlVbmljb2RlX1JTcGxpdCBQeVVuaWNvZGVVQ1MyX1JTcGxpdAotIyBkZWZpbmUgUHlVbmljb2RlX1JlcGxhY2UgUHlVbmljb2RlVUNTMl9SZXBsYWNlCi0jIGRlZmluZSBQeVVuaWNvZGVfUmVzaXplIFB5VW5pY29kZVVDUzJfUmVzaXplCi0jIGRlZmluZSBQeVVuaWNvZGVfUmljaENvbXBhcmUgUHlVbmljb2RlVUNTMl9SaWNoQ29tcGFyZQotIyBkZWZpbmUgUHlVbmljb2RlX1NwbGl0IFB5VW5pY29kZVVDUzJfU3BsaXQKLSMgZGVmaW5lIFB5VW5pY29kZV9TcGxpdGxpbmVzIFB5VW5pY29kZVVDUzJfU3BsaXRsaW5lcwotIyBkZWZpbmUgUHlVbmljb2RlX1RhaWxtYXRjaCBQeVVuaWNvZGVVQ1MyX1RhaWxtYXRjaAotIyBkZWZpbmUgUHlVbmljb2RlX1RyYW5zbGF0ZSBQeVVuaWNvZGVVQ1MyX1RyYW5zbGF0ZQotIyBkZWZpbmUgUHlVbmljb2RlX1RyYW5zbGF0ZUNoYXJtYXAgUHlVbmljb2RlVUNTMl9UcmFuc2xhdGVDaGFybWFwCi0jIGRlZmluZSBfUHlVbmljb2RlX0FzRGVmYXVsdEVuY29kZWRTdHJpbmcgX1B5VW5pY29kZVVDUzJfQXNEZWZhdWx0RW5jb2RlZFN0cmluZwotIyBkZWZpbmUgX1B5VW5pY29kZV9GaW5pIF9QeVVuaWNvZGVVQ1MyX0ZpbmkKLSMgZGVmaW5lIF9QeVVuaWNvZGVfSW5pdCBfUHlVbmljb2RlVUNTMl9Jbml0Ci0jIGRlZmluZSBQeVVuaWNvZGVfc3RyZHVwIFB5VW5pY29kZVVDUzJfc3RyZHVwCi0KICNlbHNlCi0KLSMgZGVmaW5lIFB5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nIFB5VW5pY29kZVVDUzRfQXNBU0NJSVN0cmluZwotIyBkZWZpbmUgUHlVbmljb2RlX0FzQ2hhcm1hcFN0cmluZyBQeVVuaWNvZGVVQ1M0X0FzQ2hhcm1hcFN0cmluZwotIyBkZWZpbmUgUHlVbmljb2RlX0FzRGVjb2RlZE9iamVjdCBQeVVuaWNvZGVVQ1M0X0FzRGVjb2RlZE9iamVjdAotIyBkZWZpbmUgUHlVbmljb2RlX0FzRGVjb2RlZFVuaWNvZGUgUHlVbmljb2RlVUNTNF9Bc0RlY29kZWRVbmljb2RlCi0jIGRlZmluZSBQeVVuaWNvZGVfQXNFbmNvZGVkT2JqZWN0IFB5VW5pY29kZVVDUzRfQXNFbmNvZGVkT2JqZWN0Ci0jIGRlZmluZSBQeVVuaWNvZGVfQXNFbmNvZGVkU3RyaW5nIFB5VW5pY29kZVVDUzRfQXNFbmNvZGVkU3RyaW5nCi0jIGRlZmluZSBQeVVuaWNvZGVfQXNFbmNvZGVkVW5pY29kZSBQeVVuaWNvZGVVQ1M0X0FzRW5jb2RlZFVuaWNvZGUKLSMgZGVmaW5lIFB5VW5pY29kZV9Bc0xhdGluMVN0cmluZyBQeVVuaWNvZGVVQ1M0X0FzTGF0aW4xU3RyaW5nCi0jIGRlZmluZSBQeVVuaWNvZGVfQXNSYXdVbmljb2RlRXNjYXBlU3RyaW5nIFB5VW5pY29kZVVDUzRfQXNSYXdVbmljb2RlRXNjYXBlU3RyaW5nCi0jIGRlZmluZSBQeVVuaWNvZGVfQXNVVEYzMlN0cmluZyBQeVVuaWNvZGVVQ1M0X0FzVVRGMzJTdHJpbmcKLSMgZGVmaW5lIFB5VW5pY29kZV9Bc1VURjE2U3RyaW5nIFB5VW5pY29kZVVDUzRfQXNVVEYxNlN0cmluZwotIyBkZWZpbmUgUHlVbmljb2RlX0FzVVRGOFN0cmluZyBQeVVuaWNvZGVVQ1M0X0FzVVRGOFN0cmluZwotIyBkZWZpbmUgUHlVbmljb2RlX0FzVW5pY29kZSBQeVVuaWNvZGVVQ1M0X0FzVW5pY29kZQotIyBkZWZpbmUgUHlVbmljb2RlX0FzVW5pY29kZUVzY2FwZVN0cmluZyBQeVVuaWNvZGVVQ1M0X0FzVW5pY29kZUVzY2FwZVN0cmluZwotIyBkZWZpbmUgUHlVbmljb2RlX0FzV2lkZUNoYXIgUHlVbmljb2RlVUNTNF9Bc1dpZGVDaGFyCi0jIGRlZmluZSBQeVVuaWNvZGVfQXNXaWRlQ2hhclN0cmluZyBQeVVuaWNvZGVVQ1M0X0FzV2lkZUNoYXJTdHJpbmcKLSMgZGVmaW5lIFB5VW5pY29kZV9DbGVhckZyZWVMaXN0IFB5VW5pY29kZVVDUzRfQ2xlYXJGcmVlbGlzdAotIyBkZWZpbmUgUHlVbmljb2RlX0NvbXBhcmUgUHlVbmljb2RlVUNTNF9Db21wYXJlCi0jIGRlZmluZSBQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZyBQeVVuaWNvZGVVQ1M0X0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcKLSMgZGVmaW5lIFB5VW5pY29kZV9Db25jYXQgUHlVbmljb2RlVUNTNF9Db25jYXQKLSMgZGVmaW5lIFB5VW5pY29kZV9BcHBlbmQgUHlVbmljb2RlVUNTNF9BcHBlbmQKLSMgZGVmaW5lIFB5VW5pY29kZV9BcHBlbmRBbmREZWwgUHlVbmljb2RlVUNTNF9BcHBlbmRBbmREZWwKLSMgZGVmaW5lIFB5VW5pY29kZV9Db250YWlucyBQeVVuaWNvZGVVQ1M0X0NvbnRhaW5zCi0jIGRlZmluZSBQeVVuaWNvZGVfQ291bnQgUHlVbmljb2RlVUNTNF9Db3VudAotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZSBQeVVuaWNvZGVVQ1M0X0RlY29kZQotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZUFTQ0lJIFB5VW5pY29kZVVDUzRfRGVjb2RlQVNDSUkKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVDaGFybWFwIFB5VW5pY29kZVVDUzRfRGVjb2RlQ2hhcm1hcAotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZUxhdGluMSBQeVVuaWNvZGVVQ1M0X0RlY29kZUxhdGluMQotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdCBQeVVuaWNvZGVVQ1M0X0RlY29kZUZTRGVmYXVsdAotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdEFuZFNpemUgUHlVbmljb2RlVUNTNF9EZWNvZGVGU0RlZmF1bHRBbmRTaXplCi0jIGRlZmluZSBQeVVuaWNvZGVfRGVjb2RlUmF3VW5pY29kZUVzY2FwZSBQeVVuaWNvZGVVQ1M0X0RlY29kZVJhd1VuaWNvZGVFc2NhcGUKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVVVEYzMiBQeVVuaWNvZGVVQ1M0X0RlY29kZVVURjMyCi0jIGRlZmluZSBQeVVuaWNvZGVfRGVjb2RlVVRGMzJTdGF0ZWZ1bCBQeVVuaWNvZGVVQ1M0X0RlY29kZVVURjMyU3RhdGVmdWwKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVVVEYxNiBQeVVuaWNvZGVVQ1M0X0RlY29kZVVURjE2Ci0jIGRlZmluZSBQeVVuaWNvZGVfRGVjb2RlVVRGMTZTdGF0ZWZ1bCBQeVVuaWNvZGVVQ1M0X0RlY29kZVVURjE2U3RhdGVmdWwKLSMgZGVmaW5lIFB5VW5pY29kZV9EZWNvZGVVVEY4IFB5VW5pY29kZVVDUzRfRGVjb2RlVVRGOAotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZVVURjhTdGF0ZWZ1bCBQeVVuaWNvZGVVQ1M0X0RlY29kZVVURjhTdGF0ZWZ1bAotIyBkZWZpbmUgUHlVbmljb2RlX0RlY29kZVVuaWNvZGVFc2NhcGUgUHlVbmljb2RlVUNTNF9EZWNvZGVVbmljb2RlRXNjYXBlCi0jIGRlZmluZSBQeVVuaWNvZGVfRW5jb2RlIFB5VW5pY29kZVVDUzRfRW5jb2RlCi0jIGRlZmluZSBQeVVuaWNvZGVfRW5jb2RlQVNDSUkgUHlVbmljb2RlVUNTNF9FbmNvZGVBU0NJSQotIyBkZWZpbmUgUHlVbmljb2RlX0VuY29kZUNoYXJtYXAgUHlVbmljb2RlVUNTNF9FbmNvZGVDaGFybWFwCi0jIGRlZmluZSBQeVVuaWNvZGVfRW5jb2RlRGVjaW1hbCBQeVVuaWNvZGVVQ1M0X0VuY29kZURlY2ltYWwKLSMgZGVmaW5lIFB5VW5pY29kZV9FbmNvZGVMYXRpbjEgUHlVbmljb2RlVUNTNF9FbmNvZGVMYXRpbjEKLSMgZGVmaW5lIFB5VW5pY29kZV9FbmNvZGVSYXdVbmljb2RlRXNjYXBlIFB5VW5pY29kZVVDUzRfRW5jb2RlUmF3VW5pY29kZUVzY2FwZQotIyBkZWZpbmUgUHlVbmljb2RlX0VuY29kZVVURjMyIFB5VW5pY29kZVVDUzRfRW5jb2RlVVRGMzIKLSMgZGVmaW5lIFB5VW5pY29kZV9FbmNvZGVVVEYxNiBQeVVuaWNvZGVVQ1M0X0VuY29kZVVURjE2Ci0jIGRlZmluZSBQeVVuaWNvZGVfRW5jb2RlVVRGOCBQeVVuaWNvZGVVQ1M0X0VuY29kZVVURjgKLSMgZGVmaW5lIFB5VW5pY29kZV9FbmNvZGVVbmljb2RlRXNjYXBlIFB5VW5pY29kZVVDUzRfRW5jb2RlVW5pY29kZUVzY2FwZQotIyBkZWZpbmUgUHlVbmljb2RlX0ZpbmQgUHlVbmljb2RlVUNTNF9GaW5kCi0jIGRlZmluZSBQeVVuaWNvZGVfRm9ybWF0IFB5VW5pY29kZVVDUzRfRm9ybWF0Ci0jIGRlZmluZSBQeVVuaWNvZGVfRnJvbUVuY29kZWRPYmplY3QgUHlVbmljb2RlVUNTNF9Gcm9tRW5jb2RlZE9iamVjdAotIyBkZWZpbmUgUHlVbmljb2RlX0Zyb21Gb3JtYXQgUHlVbmljb2RlVUNTNF9Gcm9tRm9ybWF0Ci0jIGRlZmluZSBQeVVuaWNvZGVfRnJvbUZvcm1hdFYgUHlVbmljb2RlVUNTNF9Gcm9tRm9ybWF0VgotIyBkZWZpbmUgUHlVbmljb2RlX0Zyb21PYmplY3QgUHlVbmljb2RlVUNTNF9Gcm9tT2JqZWN0Ci0jIGRlZmluZSBQeVVuaWNvZGVfRnJvbU9yZGluYWwgUHlVbmljb2RlVUNTNF9Gcm9tT3JkaW5hbAotIyBkZWZpbmUgUHlVbmljb2RlX0Zyb21TdHJpbmcgUHlVbmljb2RlVUNTNF9Gcm9tU3RyaW5nCi0jIGRlZmluZSBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUgUHlVbmljb2RlVUNTNF9Gcm9tU3RyaW5nQW5kU2l6ZQotIyBkZWZpbmUgUHlVbmljb2RlX0Zyb21Vbmljb2RlIFB5VW5pY29kZVVDUzRfRnJvbVVuaWNvZGUKLSMgZGVmaW5lIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIgUHlVbmljb2RlVUNTNF9Gcm9tV2lkZUNoYXIKLSMgZGVmaW5lIFB5VW5pY29kZV9GU0NvbnZlcnRlciBQeVVuaWNvZGVVQ1M0X0ZTQ29udmVydGVyCi0jIGRlZmluZSBQeVVuaWNvZGVfRlNEZWNvZGVyIFB5VW5pY29kZVVDUzRfRlNEZWNvZGVyCi0jIGRlZmluZSBQeVVuaWNvZGVfR2V0RGVmYXVsdEVuY29kaW5nIFB5VW5pY29kZVVDUzRfR2V0RGVmYXVsdEVuY29kaW5nCi0jIGRlZmluZSBQeVVuaWNvZGVfR2V0TWF4IFB5VW5pY29kZVVDUzRfR2V0TWF4Ci0jIGRlZmluZSBQeVVuaWNvZGVfR2V0U2l6ZSBQeVVuaWNvZGVVQ1M0X0dldFNpemUKLSMgZGVmaW5lIFB5VW5pY29kZV9Jc0lkZW50aWZpZXIgUHlVbmljb2RlVUNTNF9Jc0lkZW50aWZpZXIKLSMgZGVmaW5lIFB5VW5pY29kZV9Kb2luIFB5VW5pY29kZVVDUzRfSm9pbgotIyBkZWZpbmUgUHlVbmljb2RlX1BhcnRpdGlvbiBQeVVuaWNvZGVVQ1M0X1BhcnRpdGlvbgotIyBkZWZpbmUgUHlVbmljb2RlX1JQYXJ0aXRpb24gUHlVbmljb2RlVUNTNF9SUGFydGl0aW9uCi0jIGRlZmluZSBQeVVuaWNvZGVfUlNwbGl0IFB5VW5pY29kZVVDUzRfUlNwbGl0Ci0jIGRlZmluZSBQeVVuaWNvZGVfUmVwbGFjZSBQeVVuaWNvZGVVQ1M0X1JlcGxhY2UKLSMgZGVmaW5lIFB5VW5pY29kZV9SZXNpemUgUHlVbmljb2RlVUNTNF9SZXNpemUKLSMgZGVmaW5lIFB5VW5pY29kZV9SaWNoQ29tcGFyZSBQeVVuaWNvZGVVQ1M0X1JpY2hDb21wYXJlCi0jIGRlZmluZSBQeVVuaWNvZGVfU3BsaXQgUHlVbmljb2RlVUNTNF9TcGxpdAotIyBkZWZpbmUgUHlVbmljb2RlX1NwbGl0bGluZXMgUHlVbmljb2RlVUNTNF9TcGxpdGxpbmVzCi0jIGRlZmluZSBQeVVuaWNvZGVfVGFpbG1hdGNoIFB5VW5pY29kZVVDUzRfVGFpbG1hdGNoCi0jIGRlZmluZSBQeVVuaWNvZGVfVHJhbnNsYXRlIFB5VW5pY29kZVVDUzRfVHJhbnNsYXRlCi0jIGRlZmluZSBQeVVuaWNvZGVfVHJhbnNsYXRlQ2hhcm1hcCBQeVVuaWNvZGVVQ1M0X1RyYW5zbGF0ZUNoYXJtYXAKLSMgZGVmaW5lIF9QeVVuaWNvZGVfQXNEZWZhdWx0RW5jb2RlZFN0cmluZyBfUHlVbmljb2RlVUNTNF9Bc0RlZmF1bHRFbmNvZGVkU3RyaW5nCi0jIGRlZmluZSBfUHlVbmljb2RlX0ZpbmkgX1B5VW5pY29kZVVDUzRfRmluaQotIyBkZWZpbmUgX1B5VW5pY29kZV9Jbml0IF9QeVVuaWNvZGVVQ1M0X0luaXQKLSMgZGVmaW5lIFB5VW5pY29kZV9zdHJkdXAgUHlVbmljb2RlVUNTNF9zdHJkdXAKLQorI2Vycm9yICJDb3VsZCBub3QgZmluZCBhIHByb3BlciB0eXBlZGVmIGZvciBQeV9VQ1M0IgogI2VuZGlmCiAKKyNpZiBTSVpFT0ZfU0hPUlQgPT0gMgordHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBQeV9VQ1MyOworI2Vsc2UKKyNlcnJvciAiQ291bGQgbm90IGZpbmQgYSBwcm9wZXIgdHlwZWRlZiBmb3IgUHlfVUNTMiIKKyNlbmRpZgorCit0eXBlZGVmIHVuc2lnbmVkIGNoYXIgUHlfVUNTMTsKKwogLyogLS0tIEludGVybmFsIFVuaWNvZGUgT3BlcmF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIFNpbmNlIHNwbGl0dGluZyBvbiB3aGl0ZXNwYWNlIGlzIGFuIGltcG9ydGFudCB1c2UgY2FzZSwgYW5kCkBAIC0zNTAsNyArMTcxLDcgQEAKICAgICBQeV9VTklDT0RFX0lTRElHSVQoY2gpIHx8IFwKICAgICBQeV9VTklDT0RFX0lTTlVNRVJJQyhjaCkpCiAKLSNkZWZpbmUgUHlfVU5JQ09ERV9DT1BZKHRhcmdldCwgc291cmNlLCBsZW5ndGgpICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyNkZWZpbmUgUHlfVU5JQ09ERV9DT1BZKHRhcmdldCwgc291cmNlLCBsZW5ndGgpIFwKICAgICBQeV9NRU1DUFkoKHRhcmdldCksIChzb3VyY2UpLCAobGVuZ3RoKSpzaXplb2YoUHlfVU5JQ09ERSkpCiAKICNkZWZpbmUgUHlfVU5JQ09ERV9GSUxMKHRhcmdldCwgdmFsdWUsIGxlbmd0aCkgXApAQCAtMzU4LDEzICsxNzksMjcgQEAKICAgICBmb3IgKGlfID0gMDsgaV8gPCAobGVuZ3RoKTsgaV8rKykgdF9baV9dID0gdl87XAogICAgIH0gd2hpbGUgKDApCiAKKy8qIG1hY3JvcyB0byB3b3JrIHdpdGggc3Vycm9nYXRlcyAqLworI2RlZmluZSBQeV9VTklDT0RFX0lTX1NVUlJPR0FURShjaCkgKDB4RDgwMCA8PSBjaCAmJiBjaCA8PSAweERGRkYpCisjZGVmaW5lIFB5X1VOSUNPREVfSVNfSElHSF9TVVJST0dBVEUoY2gpICgweEQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhEQkZGKQorI2RlZmluZSBQeV9VTklDT0RFX0lTX0xPV19TVVJST0dBVEUoY2gpICgweERDMDAgPD0gY2ggJiYgY2ggPD0gMHhERkZGKQorLyogSm9pbiB0d28gc3Vycm9nYXRlIGNoYXJhY3RlcnMgYW5kIHJldHVybiBhIHNpbmdsZSBQeV9VQ1M0IHZhbHVlLiAqLworI2RlZmluZSBQeV9VTklDT0RFX0pPSU5fU1VSUk9HQVRFUyhoaWdoLCBsb3cpICBcCisgICAgKCgoKChQeV9VQ1M0KShoaWdoKSAmIDB4MDNGRikgPDwgMTApIHwgICAgICBcCisgICAgICAoKFB5X1VDUzQpKGxvdykgJiAweDAzRkYpKSArIDB4MTAwMDApCisvKiBoaWdoIHN1cnJvZ2F0ZSA9IHRvcCAxMCBiaXRzIGFkZGVkIHRvIEQ4MDAgKi8KKyNkZWZpbmUgUHlfVU5JQ09ERV9ISUdIX1NVUlJPR0FURShjaCkgKDB4RDgwMCAtICgweDEwMDAwID4+IDEwKSArICgoY2gpID4+IDEwKSkKKy8qIGxvdyBzdXJyb2dhdGUgPSBib3R0b20gMTAgYml0cyBhZGRlZCB0byBEQzAwICovCisjZGVmaW5lIFB5X1VOSUNPREVfTE9XX1NVUlJPR0FURShjaCkgKDB4REMwMCArICgoY2gpICYgMHgzRkYpKQorCiAvKiBDaGVjayBpZiBzdWJzdHJpbmcgbWF0Y2hlcyBhdCBnaXZlbiBvZmZzZXQuICBUaGUgb2Zmc2V0IG11c3QgYmUKICAgIHZhbGlkLCBhbmQgdGhlIHN1YnN0cmluZyBtdXN0IG5vdCBiZSBlbXB0eS4gKi8KIAogI2RlZmluZSBQeV9VTklDT0RFX01BVENIKHN0cmluZywgb2Zmc2V0LCBzdWJzdHJpbmcpIFwKLSAgICAoKCooKHN0cmluZyktPnN0ciArIChvZmZzZXQpKSA9PSAqKChzdWJzdHJpbmcpLT5zdHIpKSAmJiBcCi0gICAgKCgqKChzdHJpbmcpLT5zdHIgKyAob2Zmc2V0KSArIChzdWJzdHJpbmcpLT5sZW5ndGgtMSkgPT0gKigoc3Vic3RyaW5nKS0+c3RyICsgKHN1YnN0cmluZyktPmxlbmd0aC0xKSkpICYmIFwKLSAgICAgIW1lbWNtcCgoc3RyaW5nKS0+c3RyICsgKG9mZnNldCksIChzdWJzdHJpbmcpLT5zdHIsIChzdWJzdHJpbmcpLT5sZW5ndGgqc2l6ZW9mKFB5X1VOSUNPREUpKSkKKyAgICAoKCooKHN0cmluZyktPndzdHIgKyAob2Zmc2V0KSkgPT0gKigoc3Vic3RyaW5nKS0+d3N0cikpICYmIFwKKyAgICAgKCgqKChzdHJpbmcpLT53c3RyICsgKG9mZnNldCkgKyAoc3Vic3RyaW5nKS0+d3N0cl9sZW5ndGgtMSkgPT0gKigoc3Vic3RyaW5nKS0+d3N0ciArIChzdWJzdHJpbmcpLT53c3RyX2xlbmd0aC0xKSkpICYmIFwKKyAgICAgIW1lbWNtcCgoc3RyaW5nKS0+d3N0ciArIChvZmZzZXQpLCAoc3Vic3RyaW5nKS0+d3N0ciwgKHN1YnN0cmluZyktPndzdHJfbGVuZ3RoKnNpemVvZihQeV9VTklDT0RFKSkpCisKICNlbmRpZiAvKiBQeV9MSU1JVEVEX0FQSSAqLwogCiAjaWZkZWYgX19jcGx1c3BsdXMKQEAgLTM3NCw0MSArMjA5LDM3NCBAQAogLyogLS0tIFVuaWNvZGUgVHlwZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKKworLyogQVNDSUktb25seSBzdHJpbmdzIGNyZWF0ZWQgdGhyb3VnaCBQeVVuaWNvZGVfTmV3IHVzZSB0aGUgUHlBU0NJSU9iamVjdAorICAgc3RydWN0dXJlLiBzdGF0ZS5hc2NpaSBhbmQgc3RhdGUuY29tcGFjdCBhcmUgc2V0LCBhbmQgdGhlIGRhdGEKKyAgIGltbWVkaWF0ZWx5IGZvbGxvdyB0aGUgc3RydWN0dXJlLiB1dGY4X2xlbmd0aCBhbmQgd3N0cl9sZW5ndGggY2FuIGJlIGZvdW5kCisgICBpbiB0aGUgbGVuZ3RoIGZpZWxkOyB0aGUgdXRmOCBwb2ludGVyIGlzIGVxdWFsIHRvIHRoZSBkYXRhIHBvaW50ZXIuICovCiB0eXBlZGVmIHN0cnVjdCB7CisgICAgLyogVGhlcmUgYXJlIDQgZm9ybXMgb2YgVW5pY29kZSBzdHJpbmdzOgorCisgICAgICAgLSBjb21wYWN0IGFzY2lpOgorCisgICAgICAgICAqIHN0cnVjdHVyZSA9IFB5QVNDSUlPYmplY3QKKyAgICAgICAgICogdGVzdDogUHlVbmljb2RlX0lTX0NPTVBBQ1RfQVNDSUkob3ApCisgICAgICAgICAqIGtpbmQgPSBQeVVuaWNvZGVfMUJZVEVfS0lORAorICAgICAgICAgKiBjb21wYWN0ID0gMQorICAgICAgICAgKiBhc2NpaSA9IDEKKyAgICAgICAgICogcmVhZHkgPSAxCisgICAgICAgICAqIChsZW5ndGggaXMgdGhlIGxlbmd0aCBvZiB0aGUgdXRmOCBhbmQgd3N0ciBzdHJpbmdzKQorICAgICAgICAgKiAoZGF0YSBzdGFydHMganVzdCBhZnRlciB0aGUgc3RydWN0dXJlKQorICAgICAgICAgKiAoc2luY2UgQVNDSUkgaXMgZGVjb2RlZCBmcm9tIFVURi04LCB0aGUgdXRmOCBzdHJpbmcgYXJlIHRoZSBkYXRhKQorCisgICAgICAgLSBjb21wYWN0OgorCisgICAgICAgICAqIHN0cnVjdHVyZSA9IFB5Q29tcGFjdFVuaWNvZGVPYmplY3QKKyAgICAgICAgICogdGVzdDogUHlVbmljb2RlX0lTX0NPTVBBQ1Qob3ApICYmICFQeVVuaWNvZGVfSVNfQVNDSUkob3ApCisgICAgICAgICAqIGtpbmQgPSBQeVVuaWNvZGVfMUJZVEVfS0lORCwgUHlVbmljb2RlXzJCWVRFX0tJTkQgb3IKKyAgICAgICAgICAgUHlVbmljb2RlXzRCWVRFX0tJTkQKKyAgICAgICAgICogY29tcGFjdCA9IDEKKyAgICAgICAgICogcmVhZHkgPSAxCisgICAgICAgICAqIGFzY2lpID0gMAorICAgICAgICAgKiB1dGY4IGlzIG5vdCBzaGFyZWQgd2l0aCBkYXRhCisgICAgICAgICAqIHV0ZjhfbGVuZ3RoID0gMCBpZiB1dGY4IGlzIE5VTEwKKyAgICAgICAgICogd3N0ciBpcyBzaGFyZWQgd2l0aCBkYXRhIGFuZCB3c3RyX2xlbmd0aD1sZW5ndGgKKyAgICAgICAgICAgaWYga2luZD1QeVVuaWNvZGVfMkJZVEVfS0lORCBhbmQgc2l6ZW9mKHdjaGFyX3QpPTIKKyAgICAgICAgICAgb3IgaWYga2luZD1QeVVuaWNvZGVfNEJZVEVfS0lORCBhbmQgc2l6ZW9mKHdjaGFyX3QpPTQKKyAgICAgICAgICogd3N0cl9sZW5ndGggPSAwIGlmIHdzdHIgaXMgTlVMTAorICAgICAgICAgKiAoZGF0YSBzdGFydHMganVzdCBhZnRlciB0aGUgc3RydWN0dXJlKQorCisgICAgICAgLSBsZWdhY3kgc3RyaW5nLCBub3QgcmVhZHk6CisKKyAgICAgICAgICogc3RydWN0dXJlID0gUHlVbmljb2RlT2JqZWN0CisgICAgICAgICAqIHRlc3Q6IGtpbmQgPT0gUHlVbmljb2RlX1dDSEFSX0tJTkQKKyAgICAgICAgICogbGVuZ3RoID0gMCAodXNlIHdzdHJfbGVuZ3RoKQorICAgICAgICAgKiBoYXNoID0gLTEKKyAgICAgICAgICoga2luZCA9IFB5VW5pY29kZV9XQ0hBUl9LSU5ECisgICAgICAgICAqIGNvbXBhY3QgPSAwCisgICAgICAgICAqIGFzY2lpID0gMAorICAgICAgICAgKiByZWFkeSA9IDAKKyAgICAgICAgICogaW50ZXJuZWQgPSBTU1RBVEVfTk9UX0lOVEVSTkVECisgICAgICAgICAqIHdzdHIgaXMgbm90IE5VTEwKKyAgICAgICAgICogZGF0YS5hbnkgaXMgTlVMTAorICAgICAgICAgKiB1dGY4IGlzIE5VTEwKKyAgICAgICAgICogdXRmOF9sZW5ndGggPSAwCisKKyAgICAgICAtIGxlZ2FjeSBzdHJpbmcsIHJlYWR5OgorCisgICAgICAgICAqIHN0cnVjdHVyZSA9IFB5VW5pY29kZU9iamVjdCBzdHJ1Y3R1cmUKKyAgICAgICAgICogdGVzdDogIVB5VW5pY29kZV9JU19DT01QQUNUKG9wKSAmJiBraW5kICE9IFB5VW5pY29kZV9XQ0hBUl9LSU5ECisgICAgICAgICAqIGtpbmQgPSBQeVVuaWNvZGVfMUJZVEVfS0lORCwgUHlVbmljb2RlXzJCWVRFX0tJTkQgb3IKKyAgICAgICAgICAgUHlVbmljb2RlXzRCWVRFX0tJTkQKKyAgICAgICAgICogY29tcGFjdCA9IDAKKyAgICAgICAgICogcmVhZHkgPSAxCisgICAgICAgICAqIGRhdGEuYW55IGlzIG5vdCBOVUxMCisgICAgICAgICAqIHV0ZjggaXMgc2hhcmVkIGFuZCB1dGY4X2xlbmd0aCA9IGxlbmd0aCB3aXRoIGRhdGEuYW55IGlmIGFzY2lpID0gMQorICAgICAgICAgKiB1dGY4X2xlbmd0aCA9IDAgaWYgdXRmOCBpcyBOVUxMCisgICAgICAgICAqIHdzdHIgaXMgc2hhcmVkIHdpdGggZGF0YS5hbnkgYW5kIHdzdHJfbGVuZ3RoID0gbGVuZ3RoCisgICAgICAgICAgIGlmIGtpbmQ9UHlVbmljb2RlXzJCWVRFX0tJTkQgYW5kIHNpemVvZih3Y2hhcl90KT0yCisgICAgICAgICAgIG9yIGlmIGtpbmQ9UHlVbmljb2RlXzRCWVRFX0tJTkQgYW5kIHNpemVvZih3Y2hhcl80KT00CisgICAgICAgICAqIHdzdHJfbGVuZ3RoID0gMCBpZiB3c3RyIGlzIE5VTEwKKworICAgICAgIENvbXBhY3Qgc3RyaW5ncyB1c2Ugb25seSBvbmUgbWVtb3J5IGJsb2NrIChzdHJ1Y3R1cmUgKyBjaGFyYWN0ZXJzKSwKKyAgICAgICB3aGVyZWFzIGxlZ2FjeSBzdHJpbmdzIHVzZSBvbmUgYmxvY2sgZm9yIHRoZSBzdHJ1Y3R1cmUgYW5kIG9uZSBibG9jaworICAgICAgIGZvciBjaGFyYWN0ZXJzLgorCisgICAgICAgTGVnYWN5IHN0cmluZ3MgYXJlIGNyZWF0ZWQgYnkgUHlVbmljb2RlX0Zyb21Vbmljb2RlKCkgYW5kCisgICAgICAgUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIHNpemUpIGZ1bmN0aW9ucy4gVGhleSBiZWNvbWUgcmVhZHkKKyAgICAgICB3aGVuIFB5VW5pY29kZV9SRUFEWSgpIGlzIGNhbGxlZC4KKworICAgICAgIFNlZSBhbHNvIF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeSgpLgorICAgICovCiAgICAgUHlPYmplY3RfSEVBRAotICAgIFB5X3NzaXplX3QgbGVuZ3RoOyAgICAgICAgICAvKiBMZW5ndGggb2YgcmF3IFVuaWNvZGUgZGF0YSBpbiBidWZmZXIgKi8KLSAgICBQeV9VTklDT0RFICpzdHI7ICAgICAgICAgICAgLyogUmF3IFVuaWNvZGUgYnVmZmVyICovCisgICAgUHlfc3NpemVfdCBsZW5ndGg7ICAgICAgICAgIC8qIE51bWJlciBvZiBjb2RlIHBvaW50cyBpbiB0aGUgc3RyaW5nICovCiAgICAgUHlfaGFzaF90IGhhc2g7ICAgICAgICAgICAgIC8qIEhhc2ggdmFsdWU7IC0xIGlmIG5vdCBzZXQgKi8KLSAgICBpbnQgc3RhdGU7ICAgICAgICAgICAgICAgICAgLyogIT0gMCBpZiBpbnRlcm5lZC4gSW4gdGhpcyBjYXNlIHRoZSB0d28KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogcmVmZXJlbmNlcyBmcm9tIHRoZSBkaWN0aW9uYXJ5IHRvIHRoaXMgb2JqZWN0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIGFyZSAqbm90KiBjb3VudGVkIGluIG9iX3JlZmNudC4gKi8KLSAgICBQeU9iamVjdCAqZGVmZW5jOyAgICAgICAgICAgLyogKERlZmF1bHQpIEVuY29kZWQgdmVyc2lvbiBhcyBQeXRob24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nLCBvciBOVUxMOyB0aGlzIGlzIHVzZWQgZm9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxlbWVudGluZyB0aGUgYnVmZmVyIHByb3RvY29sICovCisgICAgc3RydWN0IHsKKyAgICAgICAgLyoKKyAgICAgICAgICAgU1NUQVRFX05PVF9JTlRFUk5FRCAoMCkKKyAgICAgICAgICAgU1NUQVRFX0lOVEVSTkVEX01PUlRBTCAoMSkKKyAgICAgICAgICAgU1NUQVRFX0lOVEVSTkVEX0lNTU9SVEFMICgyKQorCisgICAgICAgICAgIElmIGludGVybmVkICE9IFNTVEFURV9OT1RfSU5URVJORUQsIHRoZSB0d28gcmVmZXJlbmNlcyBmcm9tIHRoZQorICAgICAgICAgICBkaWN0aW9uYXJ5IHRvIHRoaXMgb2JqZWN0IGFyZSAqbm90KiBjb3VudGVkIGluIG9iX3JlZmNudC4KKyAgICAgICAgICovCisgICAgICAgIHVuc2lnbmVkIGludCBpbnRlcm5lZDoyOworICAgICAgICAvKiBDaGFyYWN0ZXIgc2l6ZToKKworICAgICAgICAgICAtIFB5VW5pY29kZV9XQ0hBUl9LSU5EICgwKToKKworICAgICAgICAgICAgICogY2hhcmFjdGVyIHR5cGUgPSB3Y2hhcl90ICgxNiBvciAzMiBiaXRzLCBkZXBlbmRpbmcgb24gdGhlCisgICAgICAgICAgICAgICBwbGF0Zm9ybSkKKworICAgICAgICAgICAtIFB5VW5pY29kZV8xQllURV9LSU5EICgxKToKKworICAgICAgICAgICAgICogY2hhcmFjdGVyIHR5cGUgPSBQeV9VQ1MxICg4IGJpdHMsIHVuc2lnbmVkKQorICAgICAgICAgICAgICogYWxsIGNoYXJhY3RlcnMgYXJlIGluIHRoZSByYW5nZSBVKzAwMDAtVSswMEZGIChsYXRpbjEpCisgICAgICAgICAgICAgKiBpZiBhc2NpaSBpcyBzZXQsIGFsbCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgcmFuZ2UgVSswMDAwLVUrMDA3RgorICAgICAgICAgICAgICAgKEFTQ0lJKSwgb3RoZXJ3aXNlIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgaXMgaW4gdGhlIHJhbmdlCisgICAgICAgICAgICAgICBVKzAwODAtVSswMEZGCisKKyAgICAgICAgICAgLSBQeVVuaWNvZGVfMkJZVEVfS0lORCAoMik6CisKKyAgICAgICAgICAgICAqIGNoYXJhY3RlciB0eXBlID0gUHlfVUNTMiAoMTYgYml0cywgdW5zaWduZWQpCisgICAgICAgICAgICAgKiBhbGwgY2hhcmFjdGVycyBhcmUgaW4gdGhlIHJhbmdlIFUrMDAwMC1VK0ZGRkYgKEJNUCkKKyAgICAgICAgICAgICAqIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgaXMgaW4gdGhlIHJhbmdlIFUrMDEwMC1VK0ZGRkYKKworICAgICAgICAgICAtIFB5VW5pY29kZV80QllURV9LSU5EICg0KToKKworICAgICAgICAgICAgICogY2hhcmFjdGVyIHR5cGUgPSBQeV9VQ1M0ICgzMiBiaXRzLCB1bnNpZ25lZCkKKyAgICAgICAgICAgICAqIGFsbCBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgcmFuZ2UgVSswMDAwLVUrMTBGRkZGCisgICAgICAgICAgICAgKiBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIGlzIGluIHRoZSByYW5nZSBVKzEwMDAwLVUrMTBGRkZGCisgICAgICAgICAqLworICAgICAgICB1bnNpZ25lZCBpbnQga2luZDozOworICAgICAgICAvKiBDb21wYWN0IGlzIHdpdGggcmVzcGVjdCB0byB0aGUgYWxsb2NhdGlvbiBzY2hlbWUuIENvbXBhY3QgdW5pY29kZQorICAgICAgICAgICBvYmplY3RzIG9ubHkgcmVxdWlyZSBvbmUgbWVtb3J5IGJsb2NrIHdoaWxlIG5vbi1jb21wYWN0IG9iamVjdHMgdXNlCisgICAgICAgICAgIG9uZSBibG9jayBmb3IgdGhlIFB5VW5pY29kZU9iamVjdCBzdHJ1Y3QgYW5kIGFub3RoZXIgZm9yIGl0cyBkYXRhCisgICAgICAgICAgIGJ1ZmZlci4gKi8KKyAgICAgICAgdW5zaWduZWQgaW50IGNvbXBhY3Q6MTsKKyAgICAgICAgLyogVGhlIHN0cmluZyBvbmx5IGNvbnRhaW5zIGNoYXJhY3RlcnMgaW4gdGhlIHJhbmdlIFUrMDAwMC1VKzAwN0YgKEFTQ0lJKQorICAgICAgICAgICBhbmQgdGhlIGtpbmQgaXMgUHlVbmljb2RlXzFCWVRFX0tJTkQuIElmIGFzY2lpIGlzIHNldCBhbmQgY29tcGFjdCBpcworICAgICAgICAgICBzZXQsIHVzZSB0aGUgUHlBU0NJSU9iamVjdCBzdHJ1Y3R1cmUuICovCisgICAgICAgIHVuc2lnbmVkIGludCBhc2NpaToxOworICAgICAgICAvKiBUaGUgcmVhZHkgZmxhZyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgb2JqZWN0IGxheW91dCBpcyBpbml0aWFsaXplZAorICAgICAgICAgICBjb21wbGV0ZWx5LiBUaGlzIG1lYW5zIHRoYXQgdGhpcyBpcyBlaXRoZXIgYSBjb21wYWN0IG9iamVjdCwgb3IKKyAgICAgICAgICAgdGhlIGRhdGEgcG9pbnRlciBpcyBmaWxsZWQgb3V0LiBUaGUgYml0IGlzIHJlZHVuZGFudCwgYW5kIGhlbHBzCisgICAgICAgICAgIHRvIG1pbmltaXplIHRoZSB0ZXN0IGluIFB5VW5pY29kZV9JU19SRUFEWSgpLiAqLworICAgICAgICB1bnNpZ25lZCBpbnQgcmVhZHk6MTsKKyAgICB9IHN0YXRlOworICAgIHdjaGFyX3QgKndzdHI7ICAgICAgICAgICAgICAvKiB3Y2hhcl90IHJlcHJlc2VudGF0aW9uIChudWxsLXRlcm1pbmF0ZWQpICovCit9IFB5QVNDSUlPYmplY3Q7CisKKy8qIE5vbi1BU0NJSSBzdHJpbmdzIGFsbG9jYXRlZCB0aHJvdWdoIFB5VW5pY29kZV9OZXcgdXNlIHRoZQorICAgUHlDb21wYWN0VW5pY29kZU9iamVjdCBzdHJ1Y3R1cmUuIHN0YXRlLmNvbXBhY3QgaXMgc2V0LCBhbmQgdGhlIGRhdGEKKyAgIGltbWVkaWF0ZWx5IGZvbGxvdyB0aGUgc3RydWN0dXJlLiAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5QVNDSUlPYmplY3QgX2Jhc2U7CisgICAgUHlfc3NpemVfdCB1dGY4X2xlbmd0aDsgICAgIC8qIE51bWJlciBvZiBieXRlcyBpbiB1dGY4LCBleGNsdWRpbmcgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHRlcm1pbmF0aW5nIFwwLiAqLworICAgIGNoYXIgKnV0Zjg7ICAgICAgICAgICAgICAgICAvKiBVVEYtOCByZXByZXNlbnRhdGlvbiAobnVsbC10ZXJtaW5hdGVkKSAqLworICAgIFB5X3NzaXplX3Qgd3N0cl9sZW5ndGg7ICAgICAvKiBOdW1iZXIgb2YgY29kZSBwb2ludHMgaW4gd3N0ciwgcG9zc2libGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc3Vycm9nYXRlcyBjb3VudCBhcyB0d28gY29kZSBwb2ludHMuICovCit9IFB5Q29tcGFjdFVuaWNvZGVPYmplY3Q7CisKKy8qIFN0cmluZ3MgYWxsb2NhdGVkIHRocm91Z2ggUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIGxlbikgdXNlIHRoZQorICAgUHlVbmljb2RlT2JqZWN0IHN0cnVjdHVyZS4gVGhlIGFjdHVhbCBzdHJpbmcgZGF0YSBpcyBpbml0aWFsbHkgaW4gdGhlIHdzdHIKKyAgIGJsb2NrLCBhbmQgY29waWVkIGludG8gdGhlIGRhdGEgYmxvY2sgdXNpbmcgX1B5VW5pY29kZV9SZWFkeS4gKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeUNvbXBhY3RVbmljb2RlT2JqZWN0IF9iYXNlOworICAgIHVuaW9uIHsKKyAgICAgICAgdm9pZCAqYW55OworICAgICAgICBQeV9VQ1MxICpsYXRpbjE7CisgICAgICAgIFB5X1VDUzIgKnVjczI7CisgICAgICAgIFB5X1VDUzQgKnVjczQ7CisgICAgfSBkYXRhOyAgICAgICAgICAgICAgICAgICAgIC8qIENhbm9uaWNhbCwgc21hbGxlc3QtZm9ybSBVbmljb2RlIGJ1ZmZlciAqLwogfSBQeVVuaWNvZGVPYmplY3Q7CiAjZW5kaWYKIAogUHlBUElfREFUQShQeVR5cGVPYmplY3QpIFB5VW5pY29kZV9UeXBlOwogUHlBUElfREFUQShQeVR5cGVPYmplY3QpIFB5VW5pY29kZUl0ZXJfVHlwZTsKIAotI2RlZmluZSBTU1RBVEVfTk9UX0lOVEVSTkVEIDAKLSNkZWZpbmUgU1NUQVRFX0lOVEVSTkVEX01PUlRBTCAxCi0jZGVmaW5lIFNTVEFURV9JTlRFUk5FRF9JTU1PUlRBTCAyCi0KICNkZWZpbmUgUHlVbmljb2RlX0NoZWNrKG9wKSBcCiAgICAgICAgICAgICAgICAgIFB5VHlwZV9GYXN0U3ViY2xhc3MoUHlfVFlQRShvcCksIFB5X1RQRkxBR1NfVU5JQ09ERV9TVUJDTEFTUykKICNkZWZpbmUgUHlVbmljb2RlX0NoZWNrRXhhY3Qob3ApIChQeV9UWVBFKG9wKSA9PSAmUHlVbmljb2RlX1R5cGUpCiAKIC8qIEZhc3QgYWNjZXNzIG1hY3JvcyAqLwogI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQotI2RlZmluZSBQeVVuaWNvZGVfR0VUX1NJWkUob3ApIFwKLSAgICAoYXNzZXJ0KFB5VW5pY29kZV9DaGVjayhvcCkpLCgoKFB5VW5pY29kZU9iamVjdCAqKShvcCkpLT5sZW5ndGgpKQorCisjZGVmaW5lIFB5VW5pY29kZV9XU1RSX0xFTkdUSChvcCkgXAorICAgIChQeVVuaWNvZGVfSVNfQ09NUEFDVF9BU0NJSShvcCkgPyAgICAgICAgICAgICAgICAgIFwKKyAgICAgKChQeUFTQ0lJT2JqZWN0KilvcCktPmxlbmd0aCA6ICAgICAgICAgICAgICAgICAgICBcCisgICAgICgoUHlDb21wYWN0VW5pY29kZU9iamVjdCopb3ApLT53c3RyX2xlbmd0aCkKKworLyogUmV0dXJucyB0aGUgZGVwcmVjYXRlZCBQeV9VTklDT0RFIHJlcHJlc2VudGF0aW9uJ3Mgc2l6ZSBpbiBjb2RlIHVuaXRzCisgICAodGhpcyBpbmNsdWRlcyBzdXJyb2dhdGUgcGFpcnMgYXMgMiB1bml0cykuCisgICBJZiB0aGUgUHlfVU5JQ09ERSByZXByZXNlbnRhdGlvbiBpcyBub3QgYXZhaWxhYmxlLCBpdCB3aWxsIGJlIGNvbXB1dGVkCisgICBvbiByZXF1ZXN0LiAgVXNlIFB5VW5pY29kZV9HRVRfTEVOR1RIKCkgZm9yIHRoZSBsZW5ndGggaW4gY29kZSBwb2ludHMuICovCisKKyNkZWZpbmUgUHlVbmljb2RlX0dFVF9TSVpFKG9wKSAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChhc3NlcnQoUHlVbmljb2RlX0NoZWNrKG9wKSksICAgICAgICAgICAgICAgICAgICBcCisgICAgICgoKFB5QVNDSUlPYmplY3QgKikob3ApKS0+d3N0cikgPyAgICAgICAgICAgICAgIFwKKyAgICAgIFB5VW5pY29kZV9XU1RSX0xFTkdUSChvcCkgOiAgICAgICAgICAgICAgICAgICAgXAorICAgICAgKCh2b2lkKVB5VW5pY29kZV9Bc1VuaWNvZGUoKFB5T2JqZWN0ICopKG9wKSksICBcCisgICAgICAgYXNzZXJ0KCgoUHlBU0NJSU9iamVjdCAqKShvcCkpLT53c3RyKSwgICAgICAgIFwKKyAgICAgICBQeVVuaWNvZGVfV1NUUl9MRU5HVEgob3ApKSkKKwogI2RlZmluZSBQeVVuaWNvZGVfR0VUX0RBVEFfU0laRShvcCkgXAotICAgIChhc3NlcnQoUHlVbmljb2RlX0NoZWNrKG9wKSksKCgoUHlVbmljb2RlT2JqZWN0ICopKG9wKSktPmxlbmd0aCAqIHNpemVvZihQeV9VTklDT0RFKSkpCisgICAgKFB5VW5pY29kZV9HRVRfU0laRShvcCkgKiBQeV9VTklDT0RFX1NJWkUpCisKKy8qIEFsaWFzIGZvciBQeVVuaWNvZGVfQXNVbmljb2RlKCkuICBUaGlzIHdpbGwgY3JlYXRlIGEgd2NoYXJfdC9QeV9VTklDT0RFCisgICByZXByZXNlbnRhdGlvbiBvbiBkZW1hbmQuICBVc2luZyB0aGlzIG1hY3JvIGlzIHZlcnkgaW5lZmZpY2llbnQgbm93LAorICAgdHJ5IHRvIHBvcnQgeW91ciBjb2RlIHRvIHVzZSB0aGUgbmV3IFB5VW5pY29kZV8qQllURV9EQVRBKCkgbWFjcm9zIG9yCisgICB1c2UgUHlVbmljb2RlX1dSSVRFKCkgYW5kIFB5VW5pY29kZV9SRUFEKCkuICovCisKICNkZWZpbmUgUHlVbmljb2RlX0FTX1VOSUNPREUob3ApIFwKLSAgICAoYXNzZXJ0KFB5VW5pY29kZV9DaGVjayhvcCkpLCgoKFB5VW5pY29kZU9iamVjdCAqKShvcCkpLT5zdHIpKQorICAgIChhc3NlcnQoUHlVbmljb2RlX0NoZWNrKG9wKSksIFwKKyAgICAgKCgoUHlBU0NJSU9iamVjdCAqKShvcCkpLT53c3RyKSA/ICgoKFB5QVNDSUlPYmplY3QgKikob3ApKS0+d3N0cikgOiBcCisgICAgICBQeVVuaWNvZGVfQXNVbmljb2RlKChQeU9iamVjdCAqKShvcCkpKQorCiAjZGVmaW5lIFB5VW5pY29kZV9BU19EQVRBKG9wKSBcCi0gICAgKGFzc2VydChQeVVuaWNvZGVfQ2hlY2sob3ApKSwoKGNvbnN0IGNoYXIgKikoKFB5VW5pY29kZU9iamVjdCAqKShvcCkpLT5zdHIpKQorICAgICgoY29uc3QgY2hhciAqKShQeVVuaWNvZGVfQVNfVU5JQ09ERShvcCkpKQorCisKKy8qIC0tLSBGbGV4aWJsZSBTdHJpbmcgUmVwcmVzZW50YXRpb24gSGVscGVyIE1hY3JvcyAoUEVQIDM5MykgLS0tLS0tLS0tLS0tLS0gKi8KKworLyogVmFsdWVzIGZvciBQeUFTQ0lJT2JqZWN0LnN0YXRlOiAqLworCisvKiBJbnRlcm5pbmcgc3RhdGUuICovCisjZGVmaW5lIFNTVEFURV9OT1RfSU5URVJORUQgMAorI2RlZmluZSBTU1RBVEVfSU5URVJORURfTU9SVEFMIDEKKyNkZWZpbmUgU1NUQVRFX0lOVEVSTkVEX0lNTU9SVEFMIDIKKworLyogUmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZyBjb250YWlucyBvbmx5IEFTQ0lJIGNoYXJhY3RlcnMsIG9yIDAgaWYgbm90LiBUaGUKKyAgIHN0cmluZyBtYXkgYmUgY29tcGFjdCAoUHlVbmljb2RlX0lTX0NPTVBBQ1RfQVNDSUkpIG9yIG5vdCwgYnV0IG11c3QgYmUKKyAgIHJlYWR5LiAqLworI2RlZmluZSBQeVVuaWNvZGVfSVNfQVNDSUkob3ApICAgICAgICAgICAgICAgICAgIFwKKyAgICAoYXNzZXJ0KFB5VW5pY29kZV9DaGVjayhvcCkpLCAgICAgICAgICAgICAgICBcCisgICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkob3ApKSwgICAgICAgICAgICAgXAorICAgICAoKFB5QVNDSUlPYmplY3QqKW9wKS0+c3RhdGUuYXNjaWkpCisKKy8qIFJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmcgaXMgY29tcGFjdCBvciAwIGlmIG5vdC4KKyAgIE5vIHR5cGUgY2hlY2tzIG9yIFJlYWR5IGNhbGxzIGFyZSBwZXJmb3JtZWQuICovCisjZGVmaW5lIFB5VW5pY29kZV9JU19DT01QQUNUKG9wKSBcCisgICAgKCgoUHlBU0NJSU9iamVjdCopKG9wKSktPnN0YXRlLmNvbXBhY3QpCisKKy8qIFJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmcgaXMgYSBjb21wYWN0IEFTQ0lJIHN0cmluZyAodXNlIFB5QVNDSUlPYmplY3QKKyAgIHN0cnVjdHVyZSksIG9yIDAgaWYgbm90LiAgTm8gdHlwZSBjaGVja3Mgb3IgUmVhZHkgY2FsbHMgYXJlIHBlcmZvcm1lZC4gKi8KKyNkZWZpbmUgUHlVbmljb2RlX0lTX0NPTVBBQ1RfQVNDSUkob3ApICAgICAgICAgICAgICAgICBcCisgICAgKCgoUHlBU0NJSU9iamVjdCopb3ApLT5zdGF0ZS5hc2NpaSAmJiBQeVVuaWNvZGVfSVNfQ09NUEFDVChvcCkpCisKK2VudW0gUHlVbmljb2RlX0tpbmQgeworLyogU3RyaW5nIGNvbnRhaW5zIG9ubHkgd3N0ciBieXRlIGNoYXJhY3RlcnMuICBUaGlzIGlzIG9ubHkgcG9zc2libGUKKyAgIHdoZW4gdGhlIHN0cmluZyB3YXMgY3JlYXRlZCB3aXRoIGEgbGVnYWN5IEFQSSBhbmQgX1B5VW5pY29kZV9SZWFkeSgpCisgICBoYXMgbm90IGJlZW4gY2FsbGVkIHlldC4gICovCisgICAgUHlVbmljb2RlX1dDSEFSX0tJTkQgPSAwLAorLyogUmV0dXJuIHZhbHVlcyBvZiB0aGUgUHlVbmljb2RlX0tJTkQoKSBtYWNybzogKi8KKyAgICBQeVVuaWNvZGVfMUJZVEVfS0lORCA9IDEsCisgICAgUHlVbmljb2RlXzJCWVRFX0tJTkQgPSAyLAorICAgIFB5VW5pY29kZV80QllURV9LSU5EID0gNAorfTsKKworLyogUmV0dXJuIHBvaW50ZXJzIHRvIHRoZSBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24gY2FzdCB0byB1bnNpZ25lZCBjaGFyLAorICAgUHlfVUNTMiwgb3IgUHlfVUNTNCBmb3IgZGlyZWN0IGNoYXJhY3RlciBhY2Nlc3MuCisgICBObyBjaGVja3MgYXJlIHBlcmZvcm1lZCwgdXNlIFB5VW5pY29kZV9LSU5EKCkgYmVmb3JlIHRvIGVuc3VyZQorICAgdGhlc2Ugd2lsbCB3b3JrIGNvcnJlY3RseS4gKi8KKworI2RlZmluZSBQeVVuaWNvZGVfMUJZVEVfREFUQShvcCkgKChQeV9VQ1MxKilQeVVuaWNvZGVfREFUQShvcCkpCisjZGVmaW5lIFB5VW5pY29kZV8yQllURV9EQVRBKG9wKSAoKFB5X1VDUzIqKVB5VW5pY29kZV9EQVRBKG9wKSkKKyNkZWZpbmUgUHlVbmljb2RlXzRCWVRFX0RBVEEob3ApICgoUHlfVUNTNCopUHlVbmljb2RlX0RBVEEob3ApKQorCisvKiBSZXR1cm4gb25lIG9mIHRoZSBQeVVuaWNvZGVfKl9LSU5EIHZhbHVlcyBkZWZpbmVkIGFib3ZlLiAqLworI2RlZmluZSBQeVVuaWNvZGVfS0lORChvcCkgXAorICAgIChhc3NlcnQoUHlVbmljb2RlX0NoZWNrKG9wKSksIFwKKyAgICAgYXNzZXJ0KFB5VW5pY29kZV9JU19SRUFEWShvcCkpLCAgICAgICAgICAgIFwKKyAgICAgKChQeUFTQ0lJT2JqZWN0ICopKG9wKSktPnN0YXRlLmtpbmQpCisKKy8qIFJldHVybiBhIHZvaWQgcG9pbnRlciB0byB0aGUgcmF3IHVuaWNvZGUgYnVmZmVyLiAqLworI2RlZmluZSBfUHlVbmljb2RlX0NPTVBBQ1RfREFUQShvcCkgICAgICAgICAgICAgICAgICAgICBcCisgICAgKFB5VW5pY29kZV9JU19BU0NJSShvcCkgPyAgICAgICAgICAgICAgICAgICBcCisgICAgICgodm9pZCopKChQeUFTQ0lJT2JqZWN0Kikob3ApICsgMSkpIDogICAgICAgICAgICAgIFwKKyAgICAgKCh2b2lkKikoKFB5Q29tcGFjdFVuaWNvZGVPYmplY3QqKShvcCkgKyAxKSkpCisKKyNkZWZpbmUgX1B5VW5pY29kZV9OT05DT01QQUNUX0RBVEEob3ApICAgICAgICAgICAgICAgICAgXAorICAgIChhc3NlcnQoKChQeVVuaWNvZGVPYmplY3QqKShvcCkpLT5kYXRhLmFueSksICAgICAgICBcCisgICAgICgoKChQeVVuaWNvZGVPYmplY3QgKikob3ApKS0+ZGF0YS5hbnkpKSkKKworI2RlZmluZSBQeVVuaWNvZGVfREFUQShvcCkgXAorICAgIChhc3NlcnQoUHlVbmljb2RlX0NoZWNrKG9wKSksIFwKKyAgICAgUHlVbmljb2RlX0lTX0NPTVBBQ1Qob3ApID8gX1B5VW5pY29kZV9DT01QQUNUX0RBVEEob3ApIDogICBcCisgICAgIF9QeVVuaWNvZGVfTk9OQ09NUEFDVF9EQVRBKG9wKSkKKworLyogSW4gdGhlIGFjY2VzcyBtYWNyb3MgYmVsb3csICJraW5kIiBtYXkgYmUgZXZhbHVhdGVkIG1vcmUgdGhhbiBvbmNlLgorICAgQWxsIG90aGVyIG1hY3JvIHBhcmFtZXRlcnMgYXJlIGV2YWx1YXRlZCBleGFjdGx5IG9uY2UsIHNvIGl0IGlzIHNhZmUKKyAgIHRvIHB1dCBzaWRlIGVmZmVjdHMgaW50byB0aGVtIChzdWNoIGFzIGluY3JlYXNpbmcgdGhlIGluZGV4KS4gKi8KKworLyogV3JpdGUgaW50byB0aGUgY2Fub25pY2FsIHJlcHJlc2VudGF0aW9uLCB0aGlzIG1hY3JvIGRvZXMgbm90IGRvIGFueSBzYW5pdHkKKyAgIGNoZWNrcyBhbmQgaXMgaW50ZW5kZWQgZm9yIHVzYWdlIGluIGxvb3BzLiAgVGhlIGNhbGxlciBzaG91bGQgY2FjaGUgdGhlCisgICBraW5kIGFuZCBkYXRhIHBvaW50ZXJzIG9idGFpbmVkIGZyb20gb3RoZXIgbWFjcm8gY2FsbHMuCisgICBpbmRleCBpcyB0aGUgaW5kZXggaW4gdGhlIHN0cmluZyAoc3RhcnRzIGF0IDApIGFuZCB2YWx1ZSBpcyB0aGUgbmV3CisgICBjb2RlIHBvaW50IHZhbHVlIHdoaWNoIHNob3VsZCBiZSB3cml0dGVuIHRvIHRoYXQgbG9jYXRpb24uICovCisjZGVmaW5lIFB5VW5pY29kZV9XUklURShraW5kLCBkYXRhLCBpbmRleCwgdmFsdWUpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgc3dpdGNoICgoa2luZCkpIHsgXAorICAgICAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOiB7IFwKKyAgICAgICAgICAgICgoUHlfVUNTMSAqKShkYXRhKSlbKGluZGV4KV0gPSAoUHlfVUNTMSkodmFsdWUpOyBcCisgICAgICAgICAgICBicmVhazsgXAorICAgICAgICB9IFwKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfMkJZVEVfS0lORDogeyBcCisgICAgICAgICAgICAoKFB5X1VDUzIgKikoZGF0YSkpWyhpbmRleCldID0gKFB5X1VDUzIpKHZhbHVlKTsgXAorICAgICAgICAgICAgYnJlYWs7IFwKKyAgICAgICAgfSBcCisgICAgICAgIGRlZmF1bHQ6IHsgXAorICAgICAgICAgICAgYXNzZXJ0KChraW5kKSA9PSBQeVVuaWNvZGVfNEJZVEVfS0lORCk7IFwKKyAgICAgICAgICAgICgoUHlfVUNTNCAqKShkYXRhKSlbKGluZGV4KV0gPSAoUHlfVUNTNCkodmFsdWUpOyBcCisgICAgICAgIH0gXAorICAgICAgICB9IFwKKyAgICB9IHdoaWxlICgwKQorCisvKiBSZWFkIGEgY29kZSBwb2ludCBmcm9tIHRoZSBzdHJpbmcncyBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24uICBObyBjaGVja3MKKyAgIG9yIHJlYWR5IGNhbGxzIGFyZSBwZXJmb3JtZWQuICovCisjZGVmaW5lIFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGluZGV4KSBcCisgICAgKChQeV9VQ1M0KSBcCisgICAgKChraW5kKSA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCA/IFwKKyAgICAgICAgKChjb25zdCBQeV9VQ1MxICopKGRhdGEpKVsoaW5kZXgpXSA6IFwKKyAgICAgICAgKChraW5kKSA9PSBQeVVuaWNvZGVfMkJZVEVfS0lORCA/IFwKKyAgICAgICAgICAgICgoY29uc3QgUHlfVUNTMiAqKShkYXRhKSlbKGluZGV4KV0gOiBcCisgICAgICAgICAgICAoKGNvbnN0IFB5X1VDUzQgKikoZGF0YSkpWyhpbmRleCldIFwKKyAgICAgICAgKSBcCisgICAgKSkKKworLyogUHlVbmljb2RlX1JFQURfQ0hBUigpIGlzIGxlc3MgZWZmaWNpZW50IHRoYW4gUHlVbmljb2RlX1JFQUQoKSBiZWNhdXNlIGl0CisgICBjYWxscyBQeVVuaWNvZGVfS0lORCgpIGFuZCBtaWdodCBjYWxsIGl0IHR3aWNlLiAgRm9yIHNpbmdsZSByZWFkcywgdXNlCisgICBQeVVuaWNvZGVfUkVBRF9DSEFSLCBmb3IgbXVsdGlwbGUgY29uc2VjdXRpdmUgcmVhZHMgY2FsbGVycyBzaG91bGQKKyAgIGNhY2hlIGtpbmQgYW5kIHVzZSBQeVVuaWNvZGVfUkVBRCBpbnN0ZWFkLiAqLworI2RlZmluZSBQeVVuaWNvZGVfUkVBRF9DSEFSKHVuaWNvZGUsIGluZGV4KSBcCisgICAgKGFzc2VydChQeVVuaWNvZGVfQ2hlY2sodW5pY29kZSkpLCAgICAgICAgICBcCisgICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkodW5pY29kZSkpLCAgICAgICBcCisgICAgIChQeV9VQ1M0KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIChQeVVuaWNvZGVfS0lORCgodW5pY29kZSkpID09IFB5VW5pY29kZV8xQllURV9LSU5EID8gXAorICAgICAgICAgICAgKChjb25zdCBQeV9VQ1MxICopKFB5VW5pY29kZV9EQVRBKCh1bmljb2RlKSkpKVsoaW5kZXgpXSA6IFwKKyAgICAgICAgICAgIChQeVVuaWNvZGVfS0lORCgodW5pY29kZSkpID09IFB5VW5pY29kZV8yQllURV9LSU5EID8gXAorICAgICAgICAgICAgICAgICgoY29uc3QgUHlfVUNTMiAqKShQeVVuaWNvZGVfREFUQSgodW5pY29kZSkpKSlbKGluZGV4KV0gOiBcCisgICAgICAgICAgICAgICAgKChjb25zdCBQeV9VQ1M0ICopKFB5VW5pY29kZV9EQVRBKCh1bmljb2RlKSkpKVsoaW5kZXgpXSBcCisgICAgICAgICAgICApIFwKKyAgICAgICAgKSkKKworLyogUmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSB1bmljb2RlIHN0cmluZy4gVGhlIGNhbGxlciBoYXMgdG8gbWFrZSBzdXJlIHRoYXQKKyAgIHRoZSBzdHJpbmcgaGFzIGl0J3MgY2Fub25pY2FsIHJlcHJlc2VudGF0aW9uIHNldCBiZWZvcmUgY2FsbGluZworICAgdGhpcyBtYWNyby4gIENhbGwgUHlVbmljb2RlXyhGQVNUXylSZWFkeSB0byBlbnN1cmUgdGhhdC4gKi8KKyNkZWZpbmUgUHlVbmljb2RlX0dFVF9MRU5HVEgob3ApICAgICAgICAgICAgICAgIFwKKyAgICAoYXNzZXJ0KFB5VW5pY29kZV9DaGVjayhvcCkpLCAgICAgICAgICAgICAgIFwKKyAgICAgYXNzZXJ0KFB5VW5pY29kZV9JU19SRUFEWShvcCkpLCAgICAgICAgICAgIFwKKyAgICAgKChQeUFTQ0lJT2JqZWN0ICopKG9wKSktPmxlbmd0aCkKKworCisvKiBGYXN0IGNoZWNrIHRvIGRldGVybWluZSB3aGV0aGVyIGFuIG9iamVjdCBpcyByZWFkeS4gRXF1aXZhbGVudCB0bworICAgUHlVbmljb2RlX0lTX0NPTVBBQ1Qob3ApIHx8ICgoUHlVbmljb2RlT2JqZWN0Kikob3ApKS0+ZGF0YS5hbnkpICovCisKKyNkZWZpbmUgUHlVbmljb2RlX0lTX1JFQURZKG9wKSAoKChQeUFTQ0lJT2JqZWN0KilvcCktPnN0YXRlLnJlYWR5KQorCisvKiBQeVVuaWNvZGVfUkVBRFkoKSBkb2VzIGxlc3Mgd29yayB0aGFuIF9QeVVuaWNvZGVfUmVhZHkoKSBpbiB0aGUgYmVzdAorICAgY2FzZS4gIElmIHRoZSBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24gaXMgbm90IHlldCBzZXQsIGl0IHdpbGwgc3RpbGwgY2FsbAorICAgX1B5VW5pY29kZV9SZWFkeSgpLgorICAgUmV0dXJucyAwIG9uIHN1Y2Nlc3MgYW5kIC0xIG9uIGVycm9ycy4gKi8KKyNkZWZpbmUgUHlVbmljb2RlX1JFQURZKG9wKSAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoYXNzZXJ0KFB5VW5pY29kZV9DaGVjayhvcCkpLCAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAoUHlVbmljb2RlX0lTX1JFQURZKG9wKSA/ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAwIDogX1B5VW5pY29kZV9SZWFkeSgoUHlPYmplY3QgKikob3ApKSkpCisKKy8qIFJldHVybiBhIG1heGltdW0gY2hhcmFjdGVyIHZhbHVlIHdoaWNoIGlzIHN1aXRhYmxlIGZvciBjcmVhdGluZyBhbm90aGVyCisgICBzdHJpbmcgYmFzZWQgb24gb3AuICBUaGlzIGlzIGFsd2F5cyBhbiBhcHByb3hpbWF0aW9uIGJ1dCBtb3JlIGVmZmljaWVudAorICAgdGhhbiBpdGVyYXRpbmcgb3ZlciB0aGUgc3RyaW5nLiAqLworI2RlZmluZSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUob3ApIFwKKyAgICAoYXNzZXJ0KFB5VW5pY29kZV9JU19SRUFEWShvcCkpLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgKFB5VW5pY29kZV9JU19BU0NJSShvcCkgPyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICgweDdmKSA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIChQeVVuaWNvZGVfS0lORChvcCkgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQgPyAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAoMHhmZlUpIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAoUHlVbmljb2RlX0tJTkQob3ApID09IFB5VW5pY29kZV8yQllURV9LSU5EID8gICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKDB4ZmZmZlUpIDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgKDB4MTBmZmZmVSkpKSkpCisKICNlbmRpZgogCiAvKiAtLS0gQ29uc3RhbnRzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTQxOCwxMiArNTg2LDEwNyBAQAogICAgVW5pY29kZSBjaGFyYWN0ZXIgVStGRkZEIGlzIHRoZSBvZmZpY2lhbCBSRVBMQUNFTUVOVCBDSEFSQUNURVIgaW4KICAgIFVuaWNvZGUgMy4wLiAqLwogCi0jZGVmaW5lIFB5X1VOSUNPREVfUkVQTEFDRU1FTlRfQ0hBUkFDVEVSICgoUHlfVU5JQ09ERSkgMHhGRkZEKQorI2RlZmluZSBQeV9VTklDT0RFX1JFUExBQ0VNRU5UX0NIQVJBQ1RFUiAoKFB5X1VDUzQpIDB4RkZGRCkKIAogLyogPT09IFB1YmxpYyBBUEkgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAKIC8qIC0tLSBQbGFpbiBQeV9VTklDT0RFIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCisvKiBXaXRoIFBFUCAzOTMsIHRoaXMgaXMgdGhlIHJlY29tbWVuZGVkIHdheSB0byBhbGxvY2F0ZSBhIG5ldyB1bmljb2RlIG9iamVjdC4KKyAgIFRoaXMgZnVuY3Rpb24gd2lsbCBhbGxvY2F0ZSB0aGUgb2JqZWN0IGFuZCBpdHMgYnVmZmVyIGluIGEgc2luZ2xlIG1lbW9yeQorICAgYmxvY2suICBPYmplY3RzIGNyZWF0ZWQgdXNpbmcgdGhpcyBmdW5jdGlvbiBhcmUgbm90IHJlc2l6YWJsZS4gKi8KKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK1B5QVBJX0ZVTkMoUHlPYmplY3QqKSBQeVVuaWNvZGVfTmV3KAorICAgIFB5X3NzaXplX3Qgc2l6ZSwgICAgICAgICAgICAvKiBOdW1iZXIgb2YgY29kZSBwb2ludHMgaW4gdGhlIG5ldyBzdHJpbmcgKi8KKyAgICBQeV9VQ1M0IG1heGNoYXIgICAgICAgICAgICAgLyogbWF4aW11bSBjb2RlIHBvaW50IHZhbHVlIGluIHRoZSBzdHJpbmcgKi8KKyAgICApOworI2VuZGlmCisKKy8qIEluaXRpYWxpemVzIHRoZSBjYW5vbmljYWwgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZyb20gYSB0aGUgZGVwcmVjYXRlZAorICAgd3N0ci9QeV9VTklDT0RFIHJlcHJlc2VudGF0aW9uLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gY29udmVydCBVbmljb2RlCisgICBvYmplY3RzIHdoaWNoIHdlcmUgY3JlYXRlZCB1c2luZyB0aGUgb2xkIEFQSSB0byB0aGUgbmV3IGZsZXhpYmxlIGZvcm1hdAorICAgaW50cm9kdWNlZCB3aXRoIFBFUCAzOTMuCisKKyAgIERvbid0IGNhbGwgdGhpcyBmdW5jdGlvbiBkaXJlY3RseSwgdXNlIHRoZSBwdWJsaWMgUHlVbmljb2RlX1JFQURZKCkgbWFjcm8KKyAgIGluc3RlYWQuICovCisjaWZuZGVmIFB5X0xJTUlURURfQVBJCitQeUFQSV9GVU5DKGludCkgX1B5VW5pY29kZV9SZWFkeSgKKyAgICBQeU9iamVjdCAqdW5pY29kZSAgICAgICAgICAgLyogVW5pY29kZSBvYmplY3QgKi8KKyAgICApOworI2VuZGlmCisKKy8qIEdldCBhIGNvcHkgb2YgYSBVbmljb2RlIHN0cmluZy4gKi8KKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK1B5QVBJX0ZVTkMoUHlPYmplY3QqKSBfUHlVbmljb2RlX0NvcHkoCisgICAgUHlPYmplY3QgKnVuaWNvZGUKKyAgICApOworI2VuZGlmCisKKy8qIENvcHkgY2hhcmFjdGVyIGZyb20gb25lIHVuaWNvZGUgb2JqZWN0IGludG8gYW5vdGhlciwgdGhpcyBmdW5jdGlvbiBwZXJmb3JtcworICAgY2hhcmFjdGVyIGNvbnZlcnNpb24gd2hlbiBuZWNlc3NhcnkgYW5kIGZhbGxzIGJhY2sgdG8gbWVtY3B5KCkgaWYgcG9zc2libGUuCisKKyAgIEZhaWwgaWYgdG8gaXMgdG9vIHNtYWxsIChzbWFsbGVyIHRoYW4gKmhvd19tYW55KiBvciBzbWFsbGVyIHRoYW4KKyAgIGxlbihmcm9tKS1mcm9tX3N0YXJ0KSwgb3IgaWYga2luZChmcm9tW2Zyb21fc3RhcnQ6ZnJvbV9zdGFydCtob3dfbWFueV0pID4KKyAgIGtpbmQodG8pLCBvciBpZiAqdG8qIGhhcyBtb3JlIHRoYW4gMSByZWZlcmVuY2UuCisKKyAgIFJldHVybiB0aGUgbnVtYmVyIG9mIHdyaXR0ZW4gY2hhcmFjdGVyLCBvciByZXR1cm4gLTEgYW5kIHJhaXNlIGFuIGV4Y2VwdGlvbgorICAgb24gZXJyb3IuCisKKyAgIFBzZXVkby1jb2RlOgorCisgICAgICAgaG93X21hbnkgPSBtaW4oaG93X21hbnksIGxlbihmcm9tKSAtIGZyb21fc3RhcnQpCisgICAgICAgdG9bdG9fc3RhcnQ6dG9fc3RhcnQraG93X21hbnldID0gZnJvbVtmcm9tX3N0YXJ0OmZyb21fc3RhcnQraG93X21hbnldCisgICAgICAgcmV0dXJuIGhvd19tYW55CisKKyAgIE5vdGU6IFRoZSBmdW5jdGlvbiBkb2Vzbid0IHdyaXRlIGEgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIuCisgICAqLworI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQorUHlBUElfRlVOQyhQeV9zc2l6ZV90KSBQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnMoCisgICAgUHlPYmplY3QgKnRvLAorICAgIFB5X3NzaXplX3QgdG9fc3RhcnQsCisgICAgUHlPYmplY3QgKmZyb20sCisgICAgUHlfc3NpemVfdCBmcm9tX3N0YXJ0LAorICAgIFB5X3NzaXplX3QgaG93X21hbnkKKyAgICApOworCisvKiBVbnNhZmUgdmVyc2lvbiBvZiBQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnMoKTogZG9uJ3QgY2hlY2sgYXJndW1lbnRzIGFuZCBzbworICAgbWF5IGNyYXNoIGlmIHBhcmFtZXRlcnMgYXJlIGludmFsaWQgKGUuZy4gaWYgdGhlIG91dHB1dCBzdHJpbmcKKyAgIGlzIHRvbyBzaG9ydCkuICovCitQeUFQSV9GVU5DKHZvaWQpIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKAorICAgIFB5T2JqZWN0ICp0bywKKyAgICBQeV9zc2l6ZV90IHRvX3N0YXJ0LAorICAgIFB5T2JqZWN0ICpmcm9tLAorICAgIFB5X3NzaXplX3QgZnJvbV9zdGFydCwKKyAgICBQeV9zc2l6ZV90IGhvd19tYW55CisgICAgKTsKKyNlbmRpZgorCisjaWZuZGVmIFB5X0xJTUlURURfQVBJCisvKiBGaWxsIGEgc3RyaW5nIHdpdGggYSBjaGFyYWN0ZXI6IHdyaXRlIGZpbGxfY2hhciBpbnRvCisgICB1bmljb2RlW3N0YXJ0OnN0YXJ0K2xlbmd0aF0uCisKKyAgIEZhaWwgaWYgZmlsbF9jaGFyIGlzIGJpZ2dlciB0aGFuIHRoZSBzdHJpbmcgbWF4aW11bSBjaGFyYWN0ZXIsIG9yIGlmIHRoZQorICAgc3RyaW5nIGhhcyBtb3JlIHRoYW4gMSByZWZlcmVuY2UuCisKKyAgIFJldHVybiB0aGUgbnVtYmVyIG9mIHdyaXR0ZW4gY2hhcmFjdGVyLCBvciByZXR1cm4gLTEgYW5kIHJhaXNlIGFuIGV4Y2VwdGlvbgorICAgb24gZXJyb3IuICovCitQeUFQSV9GVU5DKFB5X3NzaXplX3QpIFB5VW5pY29kZV9GaWxsKAorICAgIFB5T2JqZWN0ICp1bmljb2RlLAorICAgIFB5X3NzaXplX3Qgc3RhcnQsCisgICAgUHlfc3NpemVfdCBsZW5ndGgsCisgICAgUHlfVUNTNCBmaWxsX2NoYXIKKyAgICApOworCisvKiBVbnNhZmUgdmVyc2lvbiBvZiBQeVVuaWNvZGVfRmlsbCgpOiBkb24ndCBjaGVjayBhcmd1bWVudHMgYW5kIHNvIG1heSBjcmFzaAorICAgaWYgcGFyYW1ldGVycyBhcmUgaW52YWxpZCAoZS5nLiBpZiBsZW5ndGggaXMgbG9uZ2VyIHRoYW4gdGhlIHN0cmluZykuICovCitQeUFQSV9GVU5DKHZvaWQpIF9QeVVuaWNvZGVfRmFzdEZpbGwoCisgICAgUHlPYmplY3QgKnVuaWNvZGUsCisgICAgUHlfc3NpemVfdCBzdGFydCwKKyAgICBQeV9zc2l6ZV90IGxlbmd0aCwKKyAgICBQeV9VQ1M0IGZpbGxfY2hhcgorICAgICk7CisjZW5kaWYKKwogLyogQ3JlYXRlIGEgVW5pY29kZSBPYmplY3QgZnJvbSB0aGUgUHlfVU5JQ09ERSBidWZmZXIgdSBvZiB0aGUgZ2l2ZW4KICAgIHNpemUuCiAKQEAgLTQ0OCwxMyArNzExLDYwIEBACiAgICAgKTsKIAogLyogU2ltaWxhciB0byBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoKSwgYnV0IHUgcG9pbnRzIHRvIG51bGwtdGVybWluYXRlZAotICAgVVRGLTggZW5jb2RlZCBieXRlcyAqLworICAgVVRGLTggZW5jb2RlZCBieXRlcy4gIFRoZSBzaXplIGlzIGRldGVybWluZWQgd2l0aCBzdHJsZW4oKS4gKi8KIFB5QVBJX0ZVTkMoUHlPYmplY3QqKSBQeVVuaWNvZGVfRnJvbVN0cmluZygKICAgICBjb25zdCBjaGFyICp1ICAgICAgICAgICAgICAvKiBVVEYtOCBlbmNvZGVkIHN0cmluZyAqLwogICAgICk7CiAKKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKKy8qIENyZWF0ZSBhIG5ldyBzdHJpbmcgZnJvbSBhIGJ1ZmZlciBvZiBQeV9VQ1MxLCBQeV9VQ1MyIG9yIFB5X1VDUzQgY2hhcmFjdGVycy4KKyAgIFNjYW4gdGhlIHN0cmluZyB0byBmaW5kIHRoZSBtYXhpbXVtIGNoYXJhY3Rlci4gKi8KK1B5QVBJX0ZVTkMoUHlPYmplY3QqKSBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKAorICAgIGludCBraW5kLAorICAgIGNvbnN0IHZvaWQgKmJ1ZmZlciwKKyAgICBQeV9zc2l6ZV90IHNpemUpOworCisvKiBDcmVhdGUgYSBuZXcgc3RyaW5nIGZyb20gYSBidWZmZXIgb2YgQVNDSUkgY2hhcmFjdGVycy4KKyAgIFdBUk5JTkc6IERvbid0IGNoZWNrIGlmIHRoZSBzdHJpbmcgY29udGFpbnMgYW55IG5vbi1BU0NJSSBjaGFyYWN0ZXIuICovCitQeUFQSV9GVU5DKFB5T2JqZWN0KikgX1B5VW5pY29kZV9Gcm9tQVNDSUkoCisgICAgY29uc3QgY2hhciAqYnVmZmVyLAorICAgIFB5X3NzaXplX3Qgc2l6ZSk7CisjZW5kaWYKKworUHlBUElfRlVOQyhQeU9iamVjdCopIFB5VW5pY29kZV9TdWJzdHJpbmcoCisgICAgUHlPYmplY3QgKnN0ciwKKyAgICBQeV9zc2l6ZV90IHN0YXJ0LAorICAgIFB5X3NzaXplX3QgZW5kKTsKKworI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQorLyogQ29tcHV0ZSB0aGUgbWF4aW11bSBjaGFyYWN0ZXIgb2YgdGhlIHN1YnN0cmluZyB1bmljb2RlW3N0YXJ0OmVuZF0uCisgICBSZXR1cm4gMTI3IGZvciBhbiBlbXB0eSBzdHJpbmcuICovCitQeUFQSV9GVU5DKFB5X1VDUzQpIF9QeVVuaWNvZGVfRmluZE1heENoYXIgKAorICAgIFB5T2JqZWN0ICp1bmljb2RlLAorICAgIFB5X3NzaXplX3Qgc3RhcnQsCisgICAgUHlfc3NpemVfdCBlbmQpOworI2VuZGlmCisKKy8qIENvcHkgdGhlIHN0cmluZyBpbnRvIGEgVUNTNCBidWZmZXIgaW5jbHVkaW5nIHRoZSBudWxsIGNoYXJhY3RlciBpZiBjb3B5X251bGwKKyAgIGlzIHNldC4gUmV0dXJuIE5VTEwgYW5kIHJhaXNlIGFuIGV4Y2VwdGlvbiBvbiBlcnJvci4gUmFpc2UgYSBWYWx1ZUVycm9yIGlmCisgICB0aGUgYnVmZmVyIGlzIHNtYWxsZXIgdGhhbiB0aGUgc3RyaW5nLiBSZXR1cm4gYnVmZmVyIG9uIHN1Y2Nlc3MuCisKKyAgIGJ1ZmxlbiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIgaW4gKFB5X1VDUzQpIGNoYXJhY3RlcnMuICovCitQeUFQSV9GVU5DKFB5X1VDUzQqKSBQeVVuaWNvZGVfQXNVQ1M0KAorICAgIFB5T2JqZWN0ICp1bmljb2RlLAorICAgIFB5X1VDUzQqIGJ1ZmZlciwKKyAgICBQeV9zc2l6ZV90IGJ1ZmxlbiwKKyAgICBpbnQgY29weV9udWxsKTsKKworLyogQ29weSB0aGUgc3RyaW5nIGludG8gYSBVQ1M0IGJ1ZmZlci4gQSBuZXcgYnVmZmVyIGlzIGFsbG9jYXRlZCB1c2luZworICogUHlNZW1fTWFsbG9jOyBpZiB0aGlzIGZhaWxzLCBOVUxMIGlzIHJldHVybmVkIHdpdGggYSBtZW1vcnkgZXJyb3IKKyAgIGV4Y2VwdGlvbiBzZXQuICovCitQeUFQSV9GVU5DKFB5X1VDUzQqKSBQeVVuaWNvZGVfQXNVQ1M0Q29weShQeU9iamVjdCAqdW5pY29kZSk7CisKIC8qIFJldHVybiBhIHJlYWQtb25seSBwb2ludGVyIHRvIHRoZSBVbmljb2RlIG9iamVjdCdzIGludGVybmFsCi0gICBQeV9VTklDT0RFIGJ1ZmZlci4gKi8KKyAgIFB5X1VOSUNPREUgYnVmZmVyLgorICAgSWYgdGhlIHdjaGFyX3QvUHlfVU5JQ09ERSByZXByZXNlbnRhdGlvbiBpcyBub3QgeWV0IGF2YWlsYWJsZSwgdGhpcworICAgZnVuY3Rpb24gd2lsbCBjYWxjdWxhdGUgaXQuICovCiAKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKIFB5QVBJX0ZVTkMoUHlfVU5JQ09ERSAqKSBQeVVuaWNvZGVfQXNVbmljb2RlKApAQCAtNDYyLDMwICs3NzIsNjkgQEAKICAgICApOwogI2VuZGlmCiAKKy8qIFJldHVybiBhIHJlYWQtb25seSBwb2ludGVyIHRvIHRoZSBVbmljb2RlIG9iamVjdCdzIGludGVybmFsCisgICBQeV9VTklDT0RFIGJ1ZmZlciBhbmQgc2F2ZSB0aGUgbGVuZ3RoIGF0IHNpemUuCisgICBJZiB0aGUgd2NoYXJfdC9QeV9VTklDT0RFIHJlcHJlc2VudGF0aW9uIGlzIG5vdCB5ZXQgYXZhaWxhYmxlLCB0aGlzCisgICBmdW5jdGlvbiB3aWxsIGNhbGN1bGF0ZSBpdC4gKi8KKworI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQorUHlBUElfRlVOQyhQeV9VTklDT0RFICopIFB5VW5pY29kZV9Bc1VuaWNvZGVBbmRTaXplKAorICAgIFB5T2JqZWN0ICp1bmljb2RlLCAgICAgICAgICAvKiBVbmljb2RlIG9iamVjdCAqLworICAgIFB5X3NzaXplX3QgKnNpemUgICAgICAgICAgICAvKiBsb2NhdGlvbiB3aGVyZSB0byBzYXZlIHRoZSBsZW5ndGggKi8KKyAgICApOworI2VuZGlmCisKIC8qIEdldCB0aGUgbGVuZ3RoIG9mIHRoZSBVbmljb2RlIG9iamVjdC4gKi8KIAorUHlBUElfRlVOQyhQeV9zc2l6ZV90KSBQeVVuaWNvZGVfR2V0TGVuZ3RoKAorICAgIFB5T2JqZWN0ICp1bmljb2RlCispOworCisvKiBHZXQgdGhlIG51bWJlciBvZiBQeV9VTklDT0RFIHVuaXRzIGluIHRoZQorICAgc3RyaW5nIHJlcHJlc2VudGF0aW9uLiAqLworCiBQeUFQSV9GVU5DKFB5X3NzaXplX3QpIFB5VW5pY29kZV9HZXRTaXplKAogICAgIFB5T2JqZWN0ICp1bmljb2RlICAgICAgICAgICAvKiBVbmljb2RlIG9iamVjdCAqLwogICAgICk7CiAKKy8qIFJlYWQgYSBjaGFyYWN0ZXIgZnJvbSB0aGUgc3RyaW5nLiAqLworCitQeUFQSV9GVU5DKFB5X1VDUzQpIFB5VW5pY29kZV9SZWFkQ2hhcigKKyAgICBQeU9iamVjdCAqdW5pY29kZSwKKyAgICBQeV9zc2l6ZV90IGluZGV4CisgICAgKTsKKworLyogV3JpdGUgYSBjaGFyYWN0ZXIgdG8gdGhlIHN0cmluZy4gVGhlIHN0cmluZyBtdXN0IGhhdmUgYmVlbiBjcmVhdGVkIHRocm91Z2gKKyAgIFB5VW5pY29kZV9OZXcsIG11c3Qgbm90IGJlIHNoYXJlZCwgYW5kIG11c3Qgbm90IGhhdmUgYmVlbiBoYXNoZWQgeWV0LgorCisgICBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSBvbiBlcnJvci4gKi8KKworUHlBUElfRlVOQyhpbnQpIFB5VW5pY29kZV9Xcml0ZUNoYXIoCisgICAgUHlPYmplY3QgKnVuaWNvZGUsCisgICAgUHlfc3NpemVfdCBpbmRleCwKKyAgICBQeV9VQ1M0IGNoYXJhY3RlcgorICAgICk7CisKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKIC8qIEdldCB0aGUgbWF4aW11bSBvcmRpbmFsIGZvciBhIFVuaWNvZGUgY2hhcmFjdGVyLiAqLwogUHlBUElfRlVOQyhQeV9VTklDT0RFKSBQeVVuaWNvZGVfR2V0TWF4KHZvaWQpOwogI2VuZGlmCiAKLS8qIFJlc2l6ZSBhbiBhbHJlYWR5IGFsbG9jYXRlZCBVbmljb2RlIG9iamVjdCB0byB0aGUgbmV3IHNpemUgbGVuZ3RoLgorLyogUmVzaXplIGFuIFVuaWNvZGUgb2JqZWN0LiBUaGUgbGVuZ3RoIGlzIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycywgZXhjZXB0CisgICBpZiB0aGUga2luZCBvZiB0aGUgc3RyaW5nIGlzIFB5VW5pY29kZV9XQ0hBUl9LSU5EOiBpbiB0aGlzIGNhc2UsIHRoZSBsZW5ndGgKKyAgIGlzIHRoZSBudW1iZXIgb2YgUHlfVU5JQ09ERSBjaGFyYWN0ZXJzLgogCiAgICAqdW5pY29kZSBpcyBtb2RpZmllZCB0byBwb2ludCB0byB0aGUgbmV3IChyZXNpemVkKSBvYmplY3QgYW5kIDAKICAgIHJldHVybmVkIG9uIHN1Y2Nlc3MuCiAKLSAgIFRoaXMgQVBJIG1heSBvbmx5IGJlIGNhbGxlZCBieSB0aGUgZnVuY3Rpb24gd2hpY2ggYWxzbyBjYWxsZWQgdGhlCi0gICBVbmljb2RlIGNvbnN0cnVjdG9yLiBUaGUgcmVmY291bnQgb24gdGhlIG9iamVjdCBtdXN0IGJlIDEuIE90aGVyd2lzZSwKLSAgIGFuIGVycm9yIGlzIHJldHVybmVkLgorICAgVHJ5IHRvIHJlc2l6ZSB0aGUgc3RyaW5nIGluIHBsYWNlICh3aGljaCBpcyB1c3VhbGx5IGZhc3RlciB0aGFuIGFsbG9jYXRpbmcKKyAgIGEgbmV3IHN0cmluZyBhbmQgY29weSBjaGFyYWN0ZXJzKSwgb3IgY3JlYXRlIGEgbmV3IHN0cmluZy4KIAogICAgRXJyb3IgaGFuZGxpbmcgaXMgaW1wbGVtZW50ZWQgYXMgZm9sbG93czogYW4gZXhjZXB0aW9uIGlzIHNldCwgLTEKICAgIGlzIHJldHVybmVkIGFuZCAqdW5pY29kZSBsZWZ0IHVudG91Y2hlZC4KIAotKi8KKyAgIFdBUk5JTkc6IFRoZSBmdW5jdGlvbiBkb2Vzbid0IGNoZWNrIHN0cmluZyBjb250ZW50LCB0aGUgcmVzdWx0IG1heSBub3QgYmUgYQorICAgICAgICAgICAgc3RyaW5nIGluIGNhbm9uaWNhbCByZXByZXNlbnRhdGlvbi4gKi8KIAogUHlBUElfRlVOQyhpbnQpIFB5VW5pY29kZV9SZXNpemUoCiAgICAgUHlPYmplY3QgKip1bmljb2RlLCAgICAgICAgIC8qIFBvaW50ZXIgdG8gdGhlIFVuaWNvZGUgb2JqZWN0ICovCkBAIC01NDIsMTEgKzg5MSw2NyBAQAogICAgICk7CiAKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdCAqYnVmZmVyOworICAgIHZvaWQgKmRhdGE7CisgICAgZW51bSBQeVVuaWNvZGVfS2luZCBraW5kOworICAgIFB5X1VDUzQgbWF4Y2hhcjsKKyAgICBQeV9zc2l6ZV90IHNpemU7CisgICAgUHlfc3NpemVfdCBwb3M7CisgICAgLyogbWluaW11bSBsZW5ndGggb2YgdGhlIGJ1ZmZlciB3aGVuIG92ZXJhbGxvY2F0aW9uIGlzIGVuYWJsZWQsCisgICAgICAgc2VlIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgpICovCisgICAgUHlfc3NpemVfdCBtaW5fbGVuZ3RoOworICAgIHVuc2lnbmVkIGNoYXIgb3ZlcmFsbG9jYXRlOworICAgIC8qIElmIHJlYWRvbmx5IGlzIDEsIGJ1ZmZlciBpcyBhIHNoYXJlZCBzdHJpbmcgKGNhbm5vdCBiZSBtb2RpZmllZCkKKyAgICAgICBhbmQgc2l6ZSBpcyBzZXQgdG8gMC4gKi8KKyAgICB1bnNpZ25lZCBjaGFyIHJlYWRvbmx5OworfSBfUHlVbmljb2RlV3JpdGVyIDsKKworLyogSW5pdGlhbGl6ZSBhIFVuaWNvZGUgd3JpdGVyLgorCisgICBJZiBtaW5fbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCBfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUoKQorICAgb3ZlcmFsbG9jYXRlcyB0aGUgYnVmZmVyIGFuZCBtaW5fbGVuZ3RoIGlzIHRoZSBtaW5pbXVtIGxlbmd0aCBpbiBjaGFyYWN0ZXJzCisgICBvZiB0aGUgYnVmZmVyLiAqLworUHlBUElfRlVOQyh2b2lkKQorX1B5VW5pY29kZVdyaXRlcl9Jbml0KF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwgUHlfc3NpemVfdCBtaW5fbGVuZ3RoKTsKKworLyogUHJlcGFyZSB0aGUgYnVmZmVyIHRvIHdyaXRlICdsZW5ndGgnIGNoYXJhY3RlcnMKKyAgIHdpdGggdGhlIHNwZWNpZmllZCBtYXhpbXVtIGNoYXJhY3Rlci4KKworICAgUmV0dXJuIDAgb24gc3VjY2VzcywgcmFpc2UgYW4gZXhjZXB0aW9uIGFuZCByZXR1cm4gLTEgb24gZXJyb3IuICovCisjZGVmaW5lIF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZShXUklURVIsIExFTkdUSCwgTUFYQ0hBUikgICAgICAgICAgICAgXAorICAgICgoKE1BWENIQVIpIDw9IChXUklURVIpLT5tYXhjaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICYmIChMRU5HVEgpIDw9IChXUklURVIpLT5zaXplIC0gKFdSSVRFUiktPnBvcykgICAgICAgICAgICAgICAgICBcCisgICAgID8gMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICA6ICgoKExFTkdUSCkgPT0gMCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgPyAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIDogX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlSW50ZXJuYWwoKFdSSVRFUiksIChMRU5HVEgpLCAoTUFYQ0hBUikpKSkKKworLyogRG9uJ3QgY2FsbCB0aGlzIGZ1bmN0aW9uIGRpcmVjdGx5LCB1c2UgdGhlIF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSgpIG1hY3JvCisgICBpbnN0ZWFkLiAqLworUHlBUElfRlVOQyhpbnQpCitfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmVJbnRlcm5hbChfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbmd0aCwgUHlfVUNTNCBtYXhjaGFyKTsKKworUHlBUElfRlVOQyhpbnQpCitfUHlVbmljb2RlV3JpdGVyX1dyaXRlU3RyKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwgUHlPYmplY3QgKnN0cik7CisKK1B5QVBJX0ZVTkMoUHlPYmplY3QgKikKK19QeVVuaWNvZGVXcml0ZXJfRmluaXNoKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcik7CisKK1B5QVBJX0ZVTkModm9pZCkKK19QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYyhfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpOworI2VuZGlmCisKKyNpZm5kZWYgUHlfTElNSVRFRF9BUEkKIC8qIEZvcm1hdCB0aGUgb2JqZWN0IGJhc2VkIG9uIHRoZSBmb3JtYXRfc3BlYywgYXMgZGVmaW5lZCBpbiBQRVAgMzEwMQogICAgKEFkdmFuY2VkIFN0cmluZyBGb3JtYXR0aW5nKS4gKi8KLVB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5VW5pY29kZV9Gb3JtYXRBZHZhbmNlZChQeU9iamVjdCAqb2JqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1VOSUNPREUgKmZvcm1hdF9zcGVjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgZm9ybWF0X3NwZWNfbGVuKTsKK1B5QVBJX0ZVTkMoaW50KSBfUHlVbmljb2RlX0Zvcm1hdEFkdmFuY2VkV3JpdGVyKAorICAgIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwKKyAgICBQeU9iamVjdCAqb2JqLAorICAgIFB5T2JqZWN0ICpmb3JtYXRfc3BlYywKKyAgICBQeV9zc2l6ZV90IHN0YXJ0LAorICAgIFB5X3NzaXplX3QgZW5kKTsKICNlbmRpZgogCiBQeUFQSV9GVU5DKHZvaWQpIFB5VW5pY29kZV9JbnRlcm5JblBsYWNlKFB5T2JqZWN0ICoqKTsKQEAgLTU1OSw3ICs5NjQsOCBAQAogI2VuZGlmCiAKIC8qIFVzZSBvbmx5IGlmIHlvdSBrbm93IGl0J3MgYSBzdHJpbmcgKi8KLSNkZWZpbmUgUHlVbmljb2RlX0NIRUNLX0lOVEVSTkVEKG9wKSAoKChQeVVuaWNvZGVPYmplY3QgKikob3ApKS0+c3RhdGUpCisjZGVmaW5lIFB5VW5pY29kZV9DSEVDS19JTlRFUk5FRChvcCkgXAorICAgICgoKFB5QVNDSUlPYmplY3QgKikob3ApKS0+c3RhdGUuaW50ZXJuZWQpCiAKIC8qIC0tLSB3Y2hhcl90IHN1cHBvcnQgZm9yIHBsYXRmb3JtcyB3aGljaCBzdXBwb3J0IGl0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCkBAIC02MDYsNiArMTAxMiwxMCBAQAogICAgIFB5X3NzaXplX3QgKnNpemUgICAgICAgICAgICAvKiBudW1iZXIgb2YgY2hhcmFjdGVycyBvZiB0aGUgcmVzdWx0ICovCiAgICAgKTsKIAorI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQorUHlBUElfRlVOQyh2b2lkKikgX1B5VW5pY29kZV9Bc0tpbmQoUHlPYmplY3QgKnMsIHVuc2lnbmVkIGludCBraW5kKTsKKyNlbmRpZgorCiAjZW5kaWYKIAogLyogLS0tIFVuaWNvZGUgb3JkaW5hbHMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC02NTEsNTAgKzEwNjEsNDIgQEAKIAogLyogLS0tIE1hbmFnZSB0aGUgZGVmYXVsdCBlbmNvZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKLS8qIFJldHVybiBhIFB5dGhvbiBzdHJpbmcgaG9sZGluZyB0aGUgZGVmYXVsdCBlbmNvZGVkIHZhbHVlIG9mIHRoZQotICAgVW5pY29kZSBvYmplY3QuCi0KLSAgIFNhbWUgYXMgUHlVbmljb2RlX0FzVVRGOFN0cmluZygpIGV4Y2VwdAotICAgdGhlIHJlc3VsdGluZyBzdHJpbmcgaXMgY2FjaGVkIGluIHRoZSBVbmljb2RlIG9iamVjdCBmb3Igc3Vic2VxdWVudAotICAgdXNhZ2UgYnkgdGhpcyBmdW5jdGlvbi4gVGhlIGNhY2hlZCB2ZXJzaW9uIGlzIG5lZWRlZCB0byBpbXBsZW1lbnQKLSAgIHRoZSBjaGFyYWN0ZXIgYnVmZmVyIGludGVyZmFjZSBhbmQgd2lsbCBsaXZlIChhdCBsZWFzdCkgYXMgbG9uZyBhcwotICAgdGhlIFVuaWNvZGUgb2JqZWN0IGl0c2VsZi4KLQotICAgVGhlIHJlZmNvdW50IG9mIHRoZSBzdHJpbmcgaXMgKm5vdCogaW5jcmVtZW50ZWQuCi0KLSAgICoqKiBFeHBvcnRlZCBmb3IgaW50ZXJuYWwgdXNlIGJ5IHRoZSBpbnRlcnByZXRlciBvbmx5ICEhISAqKioKLQotKi8KLQotI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQotUHlBUElfRlVOQyhQeU9iamVjdCAqKSBfUHlVbmljb2RlX0FzRGVmYXVsdEVuY29kZWRTdHJpbmcoCi0gICAgUHlPYmplY3QgKnVuaWNvZGUsCi0gICAgY29uc3QgY2hhciAqZXJyb3JzKTsKLSNlbmRpZgotCiAvKiBSZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgZGVmYXVsdCBlbmNvZGluZyAoVVRGLTgpIG9mIHRoZQogICAgVW5pY29kZSBvYmplY3QgdW5pY29kZSBhbmQgdGhlIHNpemUgb2YgdGhlIGVuY29kZWQgcmVwcmVzZW50YXRpb24KICAgIGluIGJ5dGVzIHN0b3JlZCBpbiAqc2l6ZS4KIAogICAgSW4gY2FzZSBvZiBhbiBlcnJvciwgbm8gKnNpemUgaXMgc2V0LgogCisgICBUaGlzIGZ1bmN0aW9uIGNhY2hlcyB0aGUgVVRGLTggZW5jb2RlZCBzdHJpbmcgaW4gdGhlIHVuaWNvZGVvYmplY3QKKyAgIGFuZCBzdWJzZXF1ZW50IGNhbGxzIHdpbGwgcmV0dXJuIHRoZSBzYW1lIHN0cmluZy4gIFRoZSBtZW1vcnkgaXMgcmVsZWFzZWQKKyAgIHdoZW4gdGhlIHVuaWNvZGVvYmplY3QgaXMgZGVhbGxvY2F0ZWQuCisKKyAgIF9QeVVuaWNvZGVfQXNTdHJpbmdBbmRTaXplIGlzIGEgI2RlZmluZSBmb3IgUHlVbmljb2RlX0FzVVRGOEFuZFNpemUgdG8KKyAgIHN1cHBvcnQgdGhlIHByZXZpb3VzIGludGVybmFsIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgYmVoYXZpb3VyLgorCiAgICAqKiogVGhpcyBBUEkgaXMgZm9yIGludGVycHJldGVyIElOVEVSTkFMIFVTRSBPTkxZIGFuZCB3aWxsIGxpa2VseQogICAgKioqIGJlIHJlbW92ZWQgb3IgY2hhbmdlZCBpbiB0aGUgZnV0dXJlLgogCiAgICAqKiogSWYgeW91IG5lZWQgdG8gYWNjZXNzIHRoZSBVbmljb2RlIG9iamVjdCBhcyBVVEYtOCBieXRlcyBzdHJpbmcsCiAgICAqKiogcGxlYXNlIHVzZSBQeVVuaWNvZGVfQXNVVEY4U3RyaW5nKCkgaW5zdGVhZC4KLQogKi8KIAogI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQotUHlBUElfRlVOQyhjaGFyICopIF9QeVVuaWNvZGVfQXNTdHJpbmdBbmRTaXplKAorUHlBUElfRlVOQyhjaGFyICopIFB5VW5pY29kZV9Bc1VURjhBbmRTaXplKAogICAgIFB5T2JqZWN0ICp1bmljb2RlLAogICAgIFB5X3NzaXplX3QgKnNpemUpOworI2RlZmluZSBfUHlVbmljb2RlX0FzU3RyaW5nQW5kU2l6ZSBQeVVuaWNvZGVfQXNVVEY4QW5kU2l6ZQogI2VuZGlmCiAKIC8qIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBkZWZhdWx0IGVuY29kaW5nIChVVEYtOCkgb2YgdGhlCiAgICBVbmljb2RlIG9iamVjdCB1bmljb2RlLgogCisgICBMaWtlIFB5VW5pY29kZV9Bc1VURjhBbmRTaXplKCksIHRoaXMgYWxzbyBjYWNoZXMgdGhlIFVURi04IHJlcHJlc2VudGF0aW9uCisgICBpbiB0aGUgdW5pY29kZW9iamVjdC4KKworICAgX1B5VW5pY29kZV9Bc1N0cmluZyBpcyBhICNkZWZpbmUgZm9yIFB5VW5pY29kZV9Bc1VURjggdG8KKyAgIHN1cHBvcnQgdGhlIHByZXZpb3VzIGludGVybmFsIGZ1bmN0aW9uIHdpdGggdGhlIHNhbWUgYmVoYXZpb3VyLgorCiAgICBVc2Ugb2YgdGhpcyBBUEkgaXMgREVQUkVDQVRFRCBzaW5jZSBubyBzaXplIGluZm9ybWF0aW9uIGNhbiBiZQogICAgZXh0cmFjdGVkIGZyb20gdGhlIHJldHVybmVkIGRhdGEuCiAKQEAgLTcwNyw3ICsxMTA5LDggQEAKICovCiAKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKLVB5QVBJX0ZVTkMoY2hhciAqKSBfUHlVbmljb2RlX0FzU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlKTsKK1B5QVBJX0ZVTkMoY2hhciAqKSBQeVVuaWNvZGVfQXNVVEY4KFB5T2JqZWN0ICp1bmljb2RlKTsKKyNkZWZpbmUgX1B5VW5pY29kZV9Bc1N0cmluZyBQeVVuaWNvZGVfQXNVVEY4CiAjZW5kaWYKIAogLyogUmV0dXJucyAidXRmLTgiLiAgKi8KQEAgLTgxMiw2ICsxMjE1LDEyIEBACiAgICAgaW50IGJhc2U2NFdoaXRlU3BhY2UsICAgICAgIC8qIEVuY29kZSB3aGl0ZXNwYWNlIChzcCwgaHQsIG5sLCBjcikgaW4gYmFzZTY0ICovCiAgICAgY29uc3QgY2hhciAqZXJyb3JzICAgICAgICAgIC8qIGVycm9yIGhhbmRsaW5nICovCiAgICAgKTsKK1B5QVBJX0ZVTkMoUHlPYmplY3QqKSBfUHlVbmljb2RlX0VuY29kZVVURjcoCisgICAgUHlPYmplY3QgKnVuaWNvZGUsICAgICAgICAgIC8qIFVuaWNvZGUgb2JqZWN0ICovCisgICAgaW50IGJhc2U2NFNldE8sICAgICAgICAgICAgIC8qIEVuY29kZSBSRkMyMTUyIFNldCBPIGNoYXJhY3RlcnMgaW4gYmFzZTY0ICovCisgICAgaW50IGJhc2U2NFdoaXRlU3BhY2UsICAgICAgIC8qIEVuY29kZSB3aGl0ZXNwYWNlIChzcCwgaHQsIG5sLCBjcikgaW4gYmFzZTY0ICovCisgICAgY29uc3QgY2hhciAqZXJyb3JzICAgICAgICAgIC8qIGVycm9yIGhhbmRsaW5nICovCisgICAgKTsKICNlbmRpZgogCiAvKiAtLS0gVVRGLTggQ29kZWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTgzNCw2ICsxMjQzLDEwIEBACiAgICAgKTsKIAogI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQorUHlBUElfRlVOQyhQeU9iamVjdCopIF9QeVVuaWNvZGVfQXNVVEY4U3RyaW5nKAorICAgIFB5T2JqZWN0ICp1bmljb2RlLAorICAgIGNvbnN0IGNoYXIgKmVycm9ycyk7CisKIFB5QVBJX0ZVTkMoUHlPYmplY3QqKSBQeVVuaWNvZGVfRW5jb2RlVVRGOCgKICAgICBjb25zdCBQeV9VTklDT0RFICpkYXRhLCAgICAgLyogVW5pY29kZSBjaGFyIGJ1ZmZlciAqLwogICAgIFB5X3NzaXplX3QgbGVuZ3RoLCAgICAgICAgICAvKiBudW1iZXIgb2YgUHlfVU5JQ09ERSBjaGFycyB0byBlbmNvZGUgKi8KQEAgLTkxNSw2ICsxMzI4LDExIEBACiAgICAgY29uc3QgY2hhciAqZXJyb3JzLCAgICAgICAgIC8qIGVycm9yIGhhbmRsaW5nICovCiAgICAgaW50IGJ5dGVvcmRlciAgICAgICAgICAgICAgIC8qIGJ5dGVvcmRlciB0byB1c2UgMD1CT00rbmF0aXZlOy0xPUxFLDE9QkUgKi8KICAgICApOworUHlBUElfRlVOQyhQeU9iamVjdCopIF9QeVVuaWNvZGVfRW5jb2RlVVRGMzIoCisgICAgUHlPYmplY3QgKm9iamVjdCwgICAgICAgICAgIC8qIFVuaWNvZGUgb2JqZWN0ICovCisgICAgY29uc3QgY2hhciAqZXJyb3JzLCAgICAgICAgIC8qIGVycm9yIGhhbmRsaW5nICovCisgICAgaW50IGJ5dGVvcmRlciAgICAgICAgICAgICAgIC8qIGJ5dGVvcmRlciB0byB1c2UgMD1CT00rbmF0aXZlOy0xPUxFLDE9QkUgKi8KKyAgICApOwogI2VuZGlmCiAKIC8qIC0tLSBVVEYtMTYgQ29kZWNzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtOTk1LDYgKzE0MTMsMTEgQEAKICAgICBjb25zdCBjaGFyICplcnJvcnMsICAgICAgICAgLyogZXJyb3IgaGFuZGxpbmcgKi8KICAgICBpbnQgYnl0ZW9yZGVyICAgICAgICAgICAgICAgLyogYnl0ZW9yZGVyIHRvIHVzZSAwPUJPTStuYXRpdmU7LTE9TEUsMT1CRSAqLwogICAgICk7CitQeUFQSV9GVU5DKFB5T2JqZWN0KikgX1B5VW5pY29kZV9FbmNvZGVVVEYxNigKKyAgICBQeU9iamVjdCogdW5pY29kZSwgICAgICAgICAgLyogVW5pY29kZSBvYmplY3QgKi8KKyAgICBjb25zdCBjaGFyICplcnJvcnMsICAgICAgICAgLyogZXJyb3IgaGFuZGxpbmcgKi8KKyAgICBpbnQgYnl0ZW9yZGVyICAgICAgICAgICAgICAgLyogYnl0ZW9yZGVyIHRvIHVzZSAwPUJPTStuYXRpdmU7LTE9TEUsMT1CRSAqLworICAgICk7CiAjZW5kaWYKIAogLyogLS0tIFVuaWNvZGUtRXNjYXBlIENvZGVjcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCkBAIC0xMDY0LDYgKzE0ODcsMTAgQEAKICAgICApOwogCiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCitQeUFQSV9GVU5DKFB5T2JqZWN0KikgX1B5VW5pY29kZV9Bc0xhdGluMVN0cmluZygKKyAgICBQeU9iamVjdCogdW5pY29kZSwKKyAgICBjb25zdCBjaGFyKiBlcnJvcnMpOworCiBQeUFQSV9GVU5DKFB5T2JqZWN0KikgUHlVbmljb2RlX0VuY29kZUxhdGluMSgKICAgICBjb25zdCBQeV9VTklDT0RFICpkYXRhLCAgICAgLyogVW5pY29kZSBjaGFyIGJ1ZmZlciAqLwogICAgIFB5X3NzaXplX3QgbGVuZ3RoLCAgICAgICAgICAvKiBOdW1iZXIgb2YgUHlfVU5JQ09ERSBjaGFycyB0byBlbmNvZGUgKi8KQEAgLTEwODgsNiArMTUxNSwxMCBAQAogICAgICk7CiAKICNpZm5kZWYgUHlfTElNSVRFRF9BUEkKK1B5QVBJX0ZVTkMoUHlPYmplY3QqKSBfUHlVbmljb2RlX0FzQVNDSUlTdHJpbmcoCisgICAgUHlPYmplY3QqIHVuaWNvZGUsCisgICAgY29uc3QgY2hhciogZXJyb3JzKTsKKwogUHlBUElfRlVOQyhQeU9iamVjdCopIFB5VW5pY29kZV9FbmNvZGVBU0NJSSgKICAgICBjb25zdCBQeV9VTklDT0RFICpkYXRhLCAgICAgLyogVW5pY29kZSBjaGFyIGJ1ZmZlciAqLwogICAgIFB5X3NzaXplX3QgbGVuZ3RoLCAgICAgICAgICAvKiBOdW1iZXIgb2YgUHlfVU5JQ09ERSBjaGFycyB0byBlbmNvZGUgKi8KQEAgLTExMzksNiArMTU3MCwxMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodW5pY29kZSBvcmRpbmFsIC0+IGNoYXIgb3JkaW5hbCkgKi8KICAgICBjb25zdCBjaGFyICplcnJvcnMgICAgICAgICAgLyogZXJyb3IgaGFuZGxpbmcgKi8KICAgICApOworUHlBUElfRlVOQyhQeU9iamVjdCopIF9QeVVuaWNvZGVfRW5jb2RlQ2hhcm1hcCgKKyAgICBQeU9iamVjdCAqdW5pY29kZSwgICAgICAgICAgLyogVW5pY29kZSBvYmplY3QgKi8KKyAgICBQeU9iamVjdCAqbWFwcGluZywgICAgICAgICAgLyogY2hhcmFjdGVyIG1hcHBpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVuaWNvZGUgb3JkaW5hbCAtPiBjaGFyIG9yZGluYWwpICovCisgICAgY29uc3QgY2hhciAqZXJyb3JzICAgICAgICAgIC8qIGVycm9yIGhhbmRsaW5nICovCisgICAgKTsKICNlbmRpZgogCiAvKiBUcmFuc2xhdGUgYSBQeV9VTklDT0RFIGJ1ZmZlciBvZiB0aGUgZ2l2ZW4gbGVuZ3RoIGJ5IGFwcGx5aW5nIGEKQEAgLTExNjMsNyArMTYwMCw3IEBACiAgICAgKTsKICNlbmRpZgogCi0jaWZkZWYgTVNfV0lOMzIKKyNpZmRlZiBIQVZFX01CQ1MKIAogLyogLS0tIE1CQ1MgY29kZWNzIGZvciBXaW5kb3dzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKQEAgLTExODAsNiArMTYxNywxNCBAQAogICAgIFB5X3NzaXplX3QgKmNvbnN1bWVkICAgICAgICAvKiBieXRlcyBjb25zdW1lZCAqLwogICAgICk7CiAKK1B5QVBJX0ZVTkMoUHlPYmplY3QqKSBQeVVuaWNvZGVfRGVjb2RlQ29kZVBhZ2VTdGF0ZWZ1bCgKKyAgICBpbnQgY29kZV9wYWdlLCAgICAgICAgICAgICAgLyogY29kZSBwYWdlIG51bWJlciAqLworICAgIGNvbnN0IGNoYXIgKnN0cmluZywgICAgICAgICAvKiBlbmNvZGVkIHN0cmluZyAqLworICAgIFB5X3NzaXplX3QgbGVuZ3RoLCAgICAgICAgICAvKiBzaXplIG9mIHN0cmluZyAqLworICAgIGNvbnN0IGNoYXIgKmVycm9ycywgICAgICAgICAvKiBlcnJvciBoYW5kbGluZyAqLworICAgIFB5X3NzaXplX3QgKmNvbnN1bWVkICAgICAgICAvKiBieXRlcyBjb25zdW1lZCAqLworICAgICk7CisKIFB5QVBJX0ZVTkMoUHlPYmplY3QqKSBQeVVuaWNvZGVfQXNNQkNTU3RyaW5nKAogICAgIFB5T2JqZWN0ICp1bmljb2RlICAgICAgICAgICAvKiBVbmljb2RlIG9iamVjdCAqLwogICAgICk7CkBAIC0xMTg3LDEyICsxNjMyLDE4IEBACiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCiBQeUFQSV9GVU5DKFB5T2JqZWN0KikgUHlVbmljb2RlX0VuY29kZU1CQ1MoCiAgICAgY29uc3QgUHlfVU5JQ09ERSAqZGF0YSwgICAgIC8qIFVuaWNvZGUgY2hhciBidWZmZXIgKi8KLSAgICBQeV9zc2l6ZV90IGxlbmd0aCwgICAgICAgICAgLyogTnVtYmVyIG9mIFB5X1VOSUNPREUgY2hhcnMgdG8gZW5jb2RlICovCisgICAgUHlfc3NpemVfdCBsZW5ndGgsICAgICAgICAgIC8qIG51bWJlciBvZiBQeV9VTklDT0RFIGNoYXJzIHRvIGVuY29kZSAqLwogICAgIGNvbnN0IGNoYXIgKmVycm9ycyAgICAgICAgICAvKiBlcnJvciBoYW5kbGluZyAqLwogICAgICk7CiAjZW5kaWYKIAotI2VuZGlmIC8qIE1TX1dJTjMyICovCitQeUFQSV9GVU5DKFB5T2JqZWN0KikgUHlVbmljb2RlX0VuY29kZUNvZGVQYWdlKAorICAgIGludCBjb2RlX3BhZ2UsICAgICAgICAgICAgICAvKiBjb2RlIHBhZ2UgbnVtYmVyICovCisgICAgUHlPYmplY3QgKnVuaWNvZGUsICAgICAgICAgIC8qIFVuaWNvZGUgb2JqZWN0ICovCisgICAgY29uc3QgY2hhciAqZXJyb3JzICAgICAgICAgIC8qIGVycm9yIGhhbmRsaW5nICovCisgICAgKTsKKworI2VuZGlmIC8qIEhBVkVfTUJDUyAqLwogCiAvKiAtLS0gRGVjaW1hbCBFbmNvZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtMTI0MCw2ICsxNjkxLDQ5IEBACiAgICAgKTsKICNlbmRpZgogCisvKiBTaW1pbGFyIHRvIFB5VW5pY29kZV9UcmFuc2Zvcm1EZWNpbWFsVG9BU0NJSSgpLCBidXQgdGFrZXMgYSBQeU9iamVjdAorICAgYXMgYXJndW1lbnQgaW5zdGVhZCBvZiBhIHJhdyBidWZmZXIgYW5kIGxlbmd0aC4gIFRoaXMgZnVuY3Rpb24gYWRkaXRpb25hbGx5CisgICB0cmFuc2Zvcm1zIHNwYWNlcyB0byBBU0NJSSBiZWNhdXNlIHRoaXMgaXMgd2hhdCB0aGUgY2FsbGVycyBpbiBsb25nb2JqZWN0LAorICAgZmxvYXRvYmplY3QsIGFuZCBjb21wbGV4b2JqZWN0IGRpZCBhbnl3YXlzLiAqLworCisjaWZuZGVmIFB5X0xJTUlURURfQVBJCitQeUFQSV9GVU5DKFB5T2JqZWN0KikgX1B5VW5pY29kZV9UcmFuc2Zvcm1EZWNpbWFsQW5kU3BhY2VUb0FTQ0lJKAorICAgIFB5T2JqZWN0ICp1bmljb2RlICAgICAgICAgICAvKiBVbmljb2RlIG9iamVjdCAqLworICAgICk7CisjZW5kaWYKKworLyogLS0tIExvY2FsZSBlbmNvZGluZyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKworLyogRGVjb2RlIGEgc3RyaW5nIGZyb20gdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nLiBUaGUgZGVjb2RlciBpcyBzdHJpY3QgaWYKKyAgICpzdXJyb2dhdGVlc2NhcGUqIGlzIGVxdWFsIHRvIHplcm8sIG90aGVyd2lzZSBpdCB1c2VzIHRoZSAnc3Vycm9nYXRlZXNjYXBlJworICAgZXJyb3IgaGFuZGxlciAoUEVQIDM4MykgdG8gZXNjYXBlIHVuZGVjb2RhYmxlIGJ5dGVzLiBJZiBhIGJ5dGUgc2VxdWVuY2UgY2FuCisgICBiZSBkZWNvZGVkIGFzIGEgc3Vycm9nYXRlIGNoYXJhY3RlciBhbmQgKnN1cnJvZ2F0ZWVzY2FwZSogaXMgbm90IGVxdWFsIHRvCisgICB6ZXJvLCB0aGUgYnl0ZSBzZXF1ZW5jZSBpcyBlc2NhcGVkIHVzaW5nIHRoZSAnc3Vycm9nYXRlZXNjYXBlJyBlcnJvciBoYW5kbGVyCisgICBpbnN0ZWFkIG9mIGJlaW5nIGRlY29kZWQuICpzdHIqIG11c3QgZW5kIHdpdGggYSBudWxsIGNoYXJhY3RlciBidXQgY2Fubm90CisgICBjb250YWluIGVtYmVkZGVkIG51bGwgY2hhcmFjdGVycy4gKi8KKworUHlBUElfRlVOQyhQeU9iamVjdCopIFB5VW5pY29kZV9EZWNvZGVMb2NhbGVBbmRTaXplKAorICAgIGNvbnN0IGNoYXIgKnN0ciwKKyAgICBQeV9zc2l6ZV90IGxlbiwKKyAgICBjb25zdCBjaGFyICplcnJvcnMpOworCisvKiBTaW1pbGFyIHRvIFB5VW5pY29kZV9EZWNvZGVMb2NhbGVBbmRTaXplKCksIGJ1dCBjb21wdXRlIHRoZSBzdHJpbmcKKyAgIGxlbmd0aCB1c2luZyBzdHJsZW4oKS4gKi8KKworUHlBUElfRlVOQyhQeU9iamVjdCopIFB5VW5pY29kZV9EZWNvZGVMb2NhbGUoCisgICAgY29uc3QgY2hhciAqc3RyLAorICAgIGNvbnN0IGNoYXIgKmVycm9ycyk7CisKKy8qIEVuY29kZSBhIFVuaWNvZGUgb2JqZWN0IHRvIHRoZSBjdXJyZW50IGxvY2FsZSBlbmNvZGluZy4gVGhlIGVuY29kZXIgaXMKKyAgIHN0cmljdCBpcyAqc3Vycm9nYXRlZXNjYXBlKiBpcyBlcXVhbCB0byB6ZXJvLCBvdGhlcndpc2UgdGhlCisgICAic3Vycm9nYXRlZXNjYXBlIiBlcnJvciBoYW5kbGVyIGlzIHVzZWQuIFJldHVybiBhIGJ5dGVzIG9iamVjdC4gVGhlIHN0cmluZworICAgY2Fubm90IGNvbnRhaW4gZW1iZWRkZWQgbnVsbCBjaGFyYWN0ZXJzLi4gKi8KKworUHlBUElfRlVOQyhQeU9iamVjdCopIFB5VW5pY29kZV9FbmNvZGVMb2NhbGUoCisgICAgUHlPYmplY3QgKnVuaWNvZGUsCisgICAgY29uc3QgY2hhciAqZXJyb3JzCisgICAgKTsKKwogLyogLS0tIEZpbGUgc3lzdGVtIGVuY29kaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogLyogUGFyc2VUdXBsZSBjb252ZXJ0ZXI6IGVuY29kZSBzdHIgb2JqZWN0cyB0byBieXRlcyB1c2luZwpAQCAtMTI5Miw3ICsxNzg2LDcgQEAKIAogICAgVGhlc2UgYXJlIGNhcGFibGUgb2YgaGFuZGxpbmcgVW5pY29kZSBvYmplY3RzIGFuZCBzdHJpbmdzIG9uIGlucHV0CiAgICAod2UgcmVmZXIgdG8gdGhlbSBhcyBzdHJpbmdzIGluIHRoZSBkZXNjcmlwdGlvbnMpIGFuZCByZXR1cm4KLSAgIFVuaWNvZGUgb2JqZWN0cyBvciBpbnRlZ2VycyBhcyBhcHBvcnByaWF0ZS4gKi8KKyAgIFVuaWNvZGUgb2JqZWN0cyBvciBpbnRlZ2VycyBhcyBhcHByb3ByaWF0ZS4gKi8KIAogLyogQ29uY2F0IHR3byBzdHJpbmdzIGdpdmluZyBhIG5ldyBVbmljb2RlIHN0cmluZy4gKi8KIApAQCAtMTQyNyw2ICsxOTIxLDE1IEBACiAgICAgaW50IGRpcmVjdGlvbiAgICAgICAgICAgICAgIC8qIEZpbmQgZGlyZWN0aW9uOiArMSBmb3J3YXJkLCAtMSBiYWNrd2FyZCAqLwogICAgICk7CiAKKy8qIExpa2UgUHlVbmljb2RlX0ZpbmQsIGJ1dCBzZWFyY2ggZm9yIHNpbmdsZSBjaGFyYWN0ZXIgb25seS4gKi8KK1B5QVBJX0ZVTkMoUHlfc3NpemVfdCkgUHlVbmljb2RlX0ZpbmRDaGFyKAorICAgIFB5T2JqZWN0ICpzdHIsCisgICAgUHlfVUNTNCBjaCwKKyAgICBQeV9zc2l6ZV90IHN0YXJ0LAorICAgIFB5X3NzaXplX3QgZW5kLAorICAgIGludCBkaXJlY3Rpb24KKyAgICApOworCiAvKiBDb3VudCB0aGUgbnVtYmVyIG9mIG9jY3VycmVuY2VzIG9mIHN1YnN0ciBpbiBzdHJbc3RhcnQ6ZW5kXS4gKi8KIAogUHlBUElfRlVOQyhQeV9zc2l6ZV90KSBQeVVuaWNvZGVfQ291bnQoCkBAIC0xNDYzLDcgKzE5NjYsNyBAQAogLyogUmljaCBjb21wYXJlIHR3byBzdHJpbmdzIGFuZCByZXR1cm4gb25lIG9mIHRoZSBmb2xsb3dpbmc6CiAKICAgIC0gTlVMTCBpbiBjYXNlIGFuIGV4Y2VwdGlvbiB3YXMgcmFpc2VkCi0gICAtIFB5X1RydWUgb3IgUHlfRmFsc2UgZm9yIHN1Y2Nlc3NmdWx5IGNvbXBhcmlzb25zCisgICAtIFB5X1RydWUgb3IgUHlfRmFsc2UgZm9yIHN1Y2Nlc3NmdWxseSBjb21wYXJpc29ucwogICAgLSBQeV9Ob3RJbXBsZW1lbnRlZCBpbiBjYXNlIHRoZSB0eXBlIGNvbWJpbmF0aW9uIGlzIHVua25vd24KIAogICAgTm90ZSB0aGF0IFB5X0VRIGFuZCBQeV9ORSBjb21wYXJpc29ucyBjYW4gY2F1c2UgYSBVbmljb2RlV2FybmluZyBpbgpAQCAtMTUxNCwzNSArMjAxNywyNiBAQAogI2lmbmRlZiBQeV9MSU1JVEVEX0FQSQogLyogRXh0ZXJuYWxseSB2aXNpYmxlIGZvciBzdHIuc3RyaXAodW5pY29kZSkgKi8KIFB5QVBJX0ZVTkMoUHlPYmplY3QgKikgX1B5VW5pY29kZV9YU3RyaXAoCi0gICAgUHlVbmljb2RlT2JqZWN0ICpzZWxmLAorICAgIFB5T2JqZWN0ICpzZWxmLAogICAgIGludCBzdHJpcHR5cGUsCiAgICAgUHlPYmplY3QgKnNlcG9iagogICAgICk7CiAjZW5kaWYKIAotLyogVXNpbmcgdGhlIGN1cnJlbnQgbG9jYWxlLCBpbnNlcnQgdGhlIHRob3VzYW5kcyBncm91cGluZwotICAgaW50byB0aGUgc3RyaW5nIHBvaW50ZWQgdG8gYnkgYnVmZmVyLiAgRm9yIHRoZSBhcmd1bWVudCBkZXNjcmlwdGlvbnMsCi0gICBzZWUgT2JqZWN0cy9zdHJpbmdsaWIvbG9jYWxldXRpbC5oICovCi0KLSNpZm5kZWYgUHlfTElNSVRFRF9BUEkKLVB5QVBJX0ZVTkMoUHlfc3NpemVfdCkgX1B5VW5pY29kZV9JbnNlcnRUaG91c2FuZHNHcm91cGluZ0xvY2FsZShQeV9VTklDT0RFICpidWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG5fYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfVU5JQ09ERSAqZGlnaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuX2RpZ2l0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbWluX3dpZHRoKTsKLSNlbmRpZgotCiAvKiBVc2luZyBleHBsaWNpdCBwYXNzZWQtaW4gdmFsdWVzLCBpbnNlcnQgdGhlIHRob3VzYW5kcyBncm91cGluZwogICAgaW50byB0aGUgc3RyaW5nIHBvaW50ZWQgdG8gYnkgYnVmZmVyLiAgRm9yIHRoZSBhcmd1bWVudCBkZXNjcmlwdGlvbnMsCiAgICBzZWUgT2JqZWN0cy9zdHJpbmdsaWIvbG9jYWxldXRpbC5oICovCiAjaWZuZGVmIFB5X0xJTUlURURfQVBJCi1QeUFQSV9GVU5DKFB5X3NzaXplX3QpIF9QeVVuaWNvZGVfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcoUHlfVU5JQ09ERSAqYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuX2J1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1VOSUNPREUgKmRpZ2l0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgbl9kaWdpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG1pbl93aWR0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmdyb3VwaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqdGhvdXNhbmRzX3NlcCk7CitQeUFQSV9GVU5DKFB5X3NzaXplX3QpIF9QeVVuaWNvZGVfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcoCisgICAgUHlPYmplY3QgKnVuaWNvZGUsCisgICAgUHlfc3NpemVfdCBpbmRleCwKKyAgICBQeV9zc2l6ZV90IG5fYnVmZmVyLAorICAgIHZvaWQgKmRpZ2l0cywKKyAgICBQeV9zc2l6ZV90IG5fZGlnaXRzLAorICAgIFB5X3NzaXplX3QgbWluX3dpZHRoLAorICAgIGNvbnN0IGNoYXIgKmdyb3VwaW5nLAorICAgIFB5T2JqZWN0ICp0aG91c2FuZHNfc2VwLAorICAgIFB5X1VDUzQgKm1heGNoYXIpOwogI2VuZGlmCiAvKiA9PT0gQ2hhcmFjdGVycyBUeXBlIEFQSXMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KIApAQCAtMTU5OCw2ICsyMDkyLDM0IEBACiAgICAgUHlfVUNTNCBjaCAgICAgICAvKiBVbmljb2RlIGNoYXJhY3RlciAqLwogICAgICk7CiAKK1B5QVBJX0ZVTkMoaW50KSBfUHlVbmljb2RlX1RvTG93ZXJGdWxsKAorICAgIFB5X1VDUzQgY2gsICAgICAgIC8qIFVuaWNvZGUgY2hhcmFjdGVyICovCisgICAgUHlfVUNTNCAqcmVzCisgICAgKTsKKworUHlBUElfRlVOQyhpbnQpIF9QeVVuaWNvZGVfVG9UaXRsZUZ1bGwoCisgICAgUHlfVUNTNCBjaCwgICAgICAgLyogVW5pY29kZSBjaGFyYWN0ZXIgKi8KKyAgICBQeV9VQ1M0ICpyZXMKKyAgICApOworCitQeUFQSV9GVU5DKGludCkgX1B5VW5pY29kZV9Ub1VwcGVyRnVsbCgKKyAgICBQeV9VQ1M0IGNoLCAgICAgICAvKiBVbmljb2RlIGNoYXJhY3RlciAqLworICAgIFB5X1VDUzQgKnJlcworICAgICk7CisKK1B5QVBJX0ZVTkMoaW50KSBfUHlVbmljb2RlX1RvRm9sZGVkRnVsbCgKKyAgICBQeV9VQ1M0IGNoLCAgICAgICAvKiBVbmljb2RlIGNoYXJhY3RlciAqLworICAgIFB5X1VDUzQgKnJlcworICAgICk7CisKK1B5QVBJX0ZVTkMoaW50KSBfUHlVbmljb2RlX0lzQ2FzZUlnbm9yYWJsZSgKKyAgICBQeV9VQ1M0IGNoICAgICAgICAgLyogVW5pY29kZSBjaGFyYWN0ZXIgKi8KKyAgICApOworCitQeUFQSV9GVU5DKGludCkgX1B5VW5pY29kZV9Jc0Nhc2VkKAorICAgIFB5X1VDUzQgY2ggICAgICAgICAvKiBVbmljb2RlIGNoYXJhY3RlciAqLworICAgICk7CisKIFB5QVBJX0ZVTkMoaW50KSBfUHlVbmljb2RlX1RvRGVjaW1hbERpZ2l0KAogICAgIFB5X1VDUzQgY2ggICAgICAgLyogVW5pY29kZSBjaGFyYWN0ZXIgKi8KICAgICApOwpAQCAtMTY3Niw2ICsyMTk4LDE3IEBACiAgICAgKTsKICNlbmRpZiAvKiBQeV9MSU1JVEVEX0FQSSAqLwogCisjaWYgZGVmaW5lZChQeV9ERUJVRykgJiYgIWRlZmluZWQoUHlfTElNSVRFRF9BUEkpCitQeUFQSV9GVU5DKGludCkgX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KAorICAgIFB5T2JqZWN0ICpvcCwKKyAgICBpbnQgY2hlY2tfY29udGVudCk7CisjZW5kaWYKKworLyogUmV0dXJuIGFuIGludGVybmVkIFVuaWNvZGUgb2JqZWN0IGZvciBhbiBJZGVudGlmaWVyOyBtYXkgZmFpbCBpZiB0aGVyZSBpcyBubyBtZW1vcnkuKi8KK1B5QVBJX0ZVTkMoUHlPYmplY3QqKSBfUHlVbmljb2RlX0Zyb21JZChfUHlfSWRlbnRpZmllciopOworLyogQ2xlYXIgYWxsIHN0YXRpYyBzdHJpbmdzLiAqLworUHlBUElfRlVOQyh2b2lkKSBfUHlVbmljb2RlX0NsZWFyU3RhdGljU3RyaW5ncyh2b2lkKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xJQ0VOU0UgYi9MSUNFTlNFCmluZGV4IDQzMzg4ZTcuLjg4ZWVkMWYgMTAwNjQ0Ci0tLSBhL0xJQ0VOU0UKKysrIGIvTElDRU5TRQpAQCAtNzQsNiArNzQsNyBAQAogICAgIDMuMi4xICAgICAgICAgICAzLjIgICAgICAgICAyMDExICAgICAgICBQU0YgICAgICAgICB5ZXMKICAgICAzLjIuMiAgICAgICAgICAgMy4yLjEgICAgICAgMjAxMSAgICAgICAgUFNGICAgICAgICAgeWVzCiAgICAgMy4yLjMgICAgICAgICAgIDMuMi4yICAgICAgIDIwMTIgICAgICAgIFBTRiAgICAgICAgIHllcworICAgIDMuMy4wICAgICAgICAgICAzLjIgICAgICAgICAyMDEyICAgICAgICBQU0YgICAgICAgICB5ZXMKIAogRm9vdG5vdGVzOgogCmRpZmYgLS1naXQgYS9MaWIvX2R1bW15X3RocmVhZC5weSBiL0xpYi9fZHVtbXlfdGhyZWFkLnB5CmluZGV4IGVkNTA1MjAuLjEzYjFmMjYgMTAwNjQ0Ci0tLSBhL0xpYi9fZHVtbXlfdGhyZWFkLnB5CisrKyBiL0xpYi9fZHVtbXlfdGhyZWFkLnB5CkBAIC0yNCwxMSArMjQsNyBAQAogIyBpbXBvcnRzIGFyZSBkb25lIHdoZW4gbmVlZGVkIG9uIGEgZnVuY3Rpb24tYnktZnVuY3Rpb24gYmFzaXMuICBTaW5jZSB0aHJlYWRzCiAjIGFyZSBkaXNhYmxlZCwgdGhlIGltcG9ydCBsb2NrIHNob3VsZCBub3QgYmUgYW4gaXNzdWUgYW55d2F5ICg/PykuCiAKLWNsYXNzIGVycm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIiRHVtbXkgaW1wbGVtZW50YXRpb24gb2YgX3RocmVhZC5lcnJvci4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncyk6Ci0gICAgICAgIHNlbGYuYXJncyA9IGFyZ3MKK2Vycm9yID0gUnVudGltZUVycm9yCiAKIGRlZiBzdGFydF9uZXdfdGhyZWFkKGZ1bmN0aW9uLCBhcmdzLCBrd2FyZ3M9e30pOgogICAgICIiIkR1bW15IGltcGxlbWVudGF0aW9uIG9mIF90aHJlYWQuc3RhcnRfbmV3X3RocmVhZCgpLgpkaWZmIC0tZ2l0IGEvTGliL19weWlvLnB5IGIvTGliL19weWlvLnB5CmluZGV4IGEyZmFlYjMuLjFjZTYxZTkgMTAwNjQ0Ci0tLSBhL0xpYi9fcHlpby5weQorKysgYi9MaWIvX3B5aW8ucHkKQEAgLTUsNyArNSw2IEBACiBpbXBvcnQgb3MKIGltcG9ydCBhYmMKIGltcG9ydCBjb2RlY3MKLWltcG9ydCB3YXJuaW5ncwogaW1wb3J0IGVycm5vCiAjIEltcG9ydCBfdGhyZWFkIGluc3RlYWQgb2YgdGhyZWFkaW5nIHRvIHJlZHVjZSBzdGFydHVwIGNvc3QKIHRyeToKQEAgLTE1LDcgKzE0LDExIEBACiAKIGltcG9ydCBpbwogZnJvbSBpbyBpbXBvcnQgKF9fYWxsX18sIFNFRUtfU0VULCBTRUVLX0NVUiwgU0VFS19FTkQpCi1mcm9tIGVycm5vIGltcG9ydCBFSU5UUgorCit2YWxpZF9zZWVrX2ZsYWdzID0gezAsIDEsIDJ9ICAjIEhhcmR3aXJlZCB2YWx1ZXMKK2lmIGhhc2F0dHIob3MsICdTRUVLX0hPTEUnKSA6CisgICAgdmFsaWRfc2Vla19mbGFncy5hZGQob3MuU0VFS19IT0xFKQorICAgIHZhbGlkX3NlZWtfZmxhZ3MuYWRkKG9zLlNFRUtfREFUQSkKIAogIyBvcGVuKCkgdXNlcyBzdF9ibGtzaXplIHdoZW5ldmVyIHdlIGNhbgogREVGQVVMVF9CVUZGRVJfU0laRSA9IDggKiAxMDI0ICAjIGJ5dGVzCkBAIC0yNCwyMCArMjcsMTIgQEAKICMgZGVmaW5lZCBpbiBpby5weS4gV2UgZG9uJ3QgdXNlIHJlYWwgaW5oZXJpdGFuY2UgdGhvdWdoLCBiZWNhdXNlIHdlIGRvbid0CiAjIHdhbnQgdG8gaW5oZXJpdCB0aGUgQyBpbXBsZW1lbnRhdGlvbnMuCiAKLQotY2xhc3MgQmxvY2tpbmdJT0Vycm9yKElPRXJyb3IpOgotCi0gICAgIiIiRXhjZXB0aW9uIHJhaXNlZCB3aGVuIEkvTyB3b3VsZCBibG9jayBvbiBhIG5vbi1ibG9ja2luZyBJL08gc3RyZWFtLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGVycm5vLCBzdHJlcnJvciwgY2hhcmFjdGVyc193cml0dGVuPTApOgotICAgICAgICBzdXBlcigpLl9faW5pdF9fKGVycm5vLCBzdHJlcnJvcikKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY2hhcmFjdGVyc193cml0dGVuLCBpbnQpOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJjaGFyYWN0ZXJzX3dyaXR0ZW4gbXVzdCBiZSBhIGludGVnZXIiKQotICAgICAgICBzZWxmLmNoYXJhY3RlcnNfd3JpdHRlbiA9IGNoYXJhY3RlcnNfd3JpdHRlbgorIyBSZWJpbmQgZm9yIGNvbXBhdGliaWxpdHkKK0Jsb2NraW5nSU9FcnJvciA9IEJsb2NraW5nSU9FcnJvcgogCiAKIGRlZiBvcGVuKGZpbGUsIG1vZGU9InIiLCBidWZmZXJpbmc9LTEsIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lLAotICAgICAgICAgbmV3bGluZT1Ob25lLCBjbG9zZWZkPVRydWUpOgorICAgICAgICAgbmV3bGluZT1Ob25lLCBjbG9zZWZkPVRydWUsIG9wZW5lcj1Ob25lKToKIAogICAgIHIiIiJPcGVuIGZpbGUgYW5kIHJldHVybiBhIHN0cmVhbS4gIFJhaXNlIElPRXJyb3IgdXBvbiBmYWlsdXJlLgogCkBAIC00NywyMSArNDIsMjIgQEAKICAgICB3cmFwcGVkLiAoSWYgYSBmaWxlIGRlc2NyaXB0b3IgaXMgZ2l2ZW4sIGl0IGlzIGNsb3NlZCB3aGVuIHRoZQogICAgIHJldHVybmVkIEkvTyBvYmplY3QgaXMgY2xvc2VkLCB1bmxlc3MgY2xvc2VmZCBpcyBzZXQgdG8gRmFsc2UuKQogCi0gICAgbW9kZSBpcyBhbiBvcHRpb25hbCBzdHJpbmcgdGhhdCBzcGVjaWZpZXMgdGhlIG1vZGUgaW4gd2hpY2ggdGhlIGZpbGUKLSAgICBpcyBvcGVuZWQuIEl0IGRlZmF1bHRzIHRvICdyJyB3aGljaCBtZWFucyBvcGVuIGZvciByZWFkaW5nIGluIHRleHQKLSAgICBtb2RlLiAgT3RoZXIgY29tbW9uIHZhbHVlcyBhcmUgJ3cnIGZvciB3cml0aW5nICh0cnVuY2F0aW5nIHRoZSBmaWxlIGlmCi0gICAgaXQgYWxyZWFkeSBleGlzdHMpLCBhbmQgJ2EnIGZvciBhcHBlbmRpbmcgKHdoaWNoIG9uIHNvbWUgVW5peCBzeXN0ZW1zLAotICAgIG1lYW5zIHRoYXQgYWxsIHdyaXRlcyBhcHBlbmQgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSByZWdhcmRsZXNzIG9mIHRoZQotICAgIGN1cnJlbnQgc2VlayBwb3NpdGlvbikuIEluIHRleHQgbW9kZSwgaWYgZW5jb2RpbmcgaXMgbm90IHNwZWNpZmllZCB0aGUKLSAgICBlbmNvZGluZyB1c2VkIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4gKEZvciByZWFkaW5nIGFuZCB3cml0aW5nIHJhdwotICAgIGJ5dGVzIHVzZSBiaW5hcnkgbW9kZSBhbmQgbGVhdmUgZW5jb2RpbmcgdW5zcGVjaWZpZWQuKSBUaGUgYXZhaWxhYmxlCi0gICAgbW9kZXMgYXJlOgorICAgIG1vZGUgaXMgYW4gb3B0aW9uYWwgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBtb2RlIGluIHdoaWNoIHRoZSBmaWxlIGlzCisgICAgb3BlbmVkLiBJdCBkZWZhdWx0cyB0byAncicgd2hpY2ggbWVhbnMgb3BlbiBmb3IgcmVhZGluZyBpbiB0ZXh0IG1vZGUuIE90aGVyCisgICAgY29tbW9uIHZhbHVlcyBhcmUgJ3cnIGZvciB3cml0aW5nICh0cnVuY2F0aW5nIHRoZSBmaWxlIGlmIGl0IGFscmVhZHkKKyAgICBleGlzdHMpLCAneCcgZm9yIGV4Y2x1c2l2ZSBjcmVhdGlvbiBvZiBhIG5ldyBmaWxlLCBhbmQgJ2EnIGZvciBhcHBlbmRpbmcKKyAgICAod2hpY2ggb24gc29tZSBVbml4IHN5c3RlbXMsIG1lYW5zIHRoYXQgYWxsIHdyaXRlcyBhcHBlbmQgdG8gdGhlIGVuZCBvZiB0aGUKKyAgICBmaWxlIHJlZ2FyZGxlc3Mgb2YgdGhlIGN1cnJlbnQgc2VlayBwb3NpdGlvbikuIEluIHRleHQgbW9kZSwgaWYgZW5jb2RpbmcgaXMKKyAgICBub3Qgc3BlY2lmaWVkIHRoZSBlbmNvZGluZyB1c2VkIGlzIHBsYXRmb3JtIGRlcGVuZGVudC4gKEZvciByZWFkaW5nIGFuZAorICAgIHdyaXRpbmcgcmF3IGJ5dGVzIHVzZSBiaW5hcnkgbW9kZSBhbmQgbGVhdmUgZW5jb2RpbmcgdW5zcGVjaWZpZWQuKSBUaGUKKyAgICBhdmFpbGFibGUgbW9kZXMgYXJlOgogCiAgICAgPT09PT09PT09ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogICAgIENoYXJhY3RlciBNZWFuaW5nCiAgICAgLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICdyJyAgICAgICBvcGVuIGZvciByZWFkaW5nIChkZWZhdWx0KQogICAgICd3JyAgICAgICBvcGVuIGZvciB3cml0aW5nLCB0cnVuY2F0aW5nIHRoZSBmaWxlIGZpcnN0CisgICAgJ3gnICAgICAgIGNyZWF0ZSBhIG5ldyBmaWxlIGFuZCBvcGVuIGl0IGZvciB3cml0aW5nCiAgICAgJ2EnICAgICAgIG9wZW4gZm9yIHdyaXRpbmcsIGFwcGVuZGluZyB0byB0aGUgZW5kIG9mIHRoZSBmaWxlIGlmIGl0IGV4aXN0cwogICAgICdiJyAgICAgICBiaW5hcnkgbW9kZQogICAgICd0JyAgICAgICB0ZXh0IG1vZGUgKGRlZmF1bHQpCkBAIC03Miw3ICs2OCw4IEBACiAKICAgICBUaGUgZGVmYXVsdCBtb2RlIGlzICdydCcgKG9wZW4gZm9yIHJlYWRpbmcgdGV4dCkuIEZvciBiaW5hcnkgcmFuZG9tCiAgICAgYWNjZXNzLCB0aGUgbW9kZSAndytiJyBvcGVucyBhbmQgdHJ1bmNhdGVzIHRoZSBmaWxlIHRvIDAgYnl0ZXMsIHdoaWxlCi0gICAgJ3IrYicgb3BlbnMgdGhlIGZpbGUgd2l0aG91dCB0cnVuY2F0aW9uLgorICAgICdyK2InIG9wZW5zIHRoZSBmaWxlIHdpdGhvdXQgdHJ1bmNhdGlvbi4gVGhlICd4JyBtb2RlIGltcGxpZXMgJ3cnIGFuZAorICAgIHJhaXNlcyBhbiBgRmlsZUV4aXN0c0Vycm9yYCBpZiB0aGUgZmlsZSBhbHJlYWR5IGV4aXN0cy4KIAogICAgIFB5dGhvbiBkaXN0aW5ndWlzaGVzIGJldHdlZW4gZmlsZXMgb3BlbmVkIGluIGJpbmFyeSBhbmQgdGV4dCBtb2RlcywKICAgICBldmVuIHdoZW4gdGhlIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbSBkb2Vzbid0LiBGaWxlcyBvcGVuZWQgaW4KQEAgLTEzMiw2ICsxMjksMTIgQEAKICAgICBiZSBrZXB0IG9wZW4gd2hlbiB0aGUgZmlsZSBpcyBjbG9zZWQuIFRoaXMgZG9lcyBub3Qgd29yayB3aGVuIGEgZmlsZSBuYW1lIGlzCiAgICAgZ2l2ZW4gYW5kIG11c3QgYmUgVHJ1ZSBpbiB0aGF0IGNhc2UuCiAKKyAgICBBIGN1c3RvbSBvcGVuZXIgY2FuIGJlIHVzZWQgYnkgcGFzc2luZyBhIGNhbGxhYmxlIGFzICpvcGVuZXIqLiBUaGUKKyAgICB1bmRlcmx5aW5nIGZpbGUgZGVzY3JpcHRvciBmb3IgdGhlIGZpbGUgb2JqZWN0IGlzIHRoZW4gb2J0YWluZWQgYnkgY2FsbGluZworICAgICpvcGVuZXIqIHdpdGggKCpmaWxlKiwgKmZsYWdzKikuICpvcGVuZXIqIG11c3QgcmV0dXJuIGFuIG9wZW4gZmlsZQorICAgIGRlc2NyaXB0b3IgKHBhc3Npbmcgb3Mub3BlbiBhcyAqb3BlbmVyKiByZXN1bHRzIGluIGZ1bmN0aW9uYWxpdHkgc2ltaWxhciB0bworICAgIHBhc3NpbmcgTm9uZSkuCisKICAgICBvcGVuKCkgcmV0dXJucyBhIGZpbGUgb2JqZWN0IHdob3NlIHR5cGUgZGVwZW5kcyBvbiB0aGUgbW9kZSwgYW5kCiAgICAgdGhyb3VnaCB3aGljaCB0aGUgc3RhbmRhcmQgZmlsZSBvcGVyYXRpb25zIHN1Y2ggYXMgcmVhZGluZyBhbmQgd3JpdGluZwogICAgIGFyZSBwZXJmb3JtZWQuIFdoZW4gb3BlbigpIGlzIHVzZWQgdG8gb3BlbiBhIGZpbGUgaW4gYSB0ZXh0IG1vZGUgKCd3JywKQEAgLTE1Nyw4ICsxNjAsOSBAQAogICAgIGlmIGVycm9ycyBpcyBub3QgTm9uZSBhbmQgbm90IGlzaW5zdGFuY2UoZXJyb3JzLCBzdHIpOgogICAgICAgICByYWlzZSBUeXBlRXJyb3IoImludmFsaWQgZXJyb3JzOiAlciIgJSBlcnJvcnMpCiAgICAgbW9kZXMgPSBzZXQobW9kZSkKLSAgICBpZiBtb2RlcyAtIHNldCgiYXJ3Yit0VSIpIG9yIGxlbihtb2RlKSA+IGxlbihtb2Rlcyk6CisgICAgaWYgbW9kZXMgLSBzZXQoImF4cndiK3RVIikgb3IgbGVuKG1vZGUpID4gbGVuKG1vZGVzKToKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCBtb2RlOiAlciIgJSBtb2RlKQorICAgIGNyZWF0aW5nID0gIngiIGluIG1vZGVzCiAgICAgcmVhZGluZyA9ICJyIiBpbiBtb2RlcwogICAgIHdyaXRpbmcgPSAidyIgaW4gbW9kZXMKICAgICBhcHBlbmRpbmcgPSAiYSIgaW4gbW9kZXMKQEAgLTE2NiwxNCArMTcwLDE0IEBACiAgICAgdGV4dCA9ICJ0IiBpbiBtb2RlcwogICAgIGJpbmFyeSA9ICJiIiBpbiBtb2RlcwogICAgIGlmICJVIiBpbiBtb2RlczoKLSAgICAgICAgaWYgd3JpdGluZyBvciBhcHBlbmRpbmc6CisgICAgICAgIGlmIGNyZWF0aW5nIG9yIHdyaXRpbmcgb3IgYXBwZW5kaW5nOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2FuJ3QgdXNlIFUgYW5kIHdyaXRpbmcgbW9kZSBhdCBvbmNlIikKICAgICAgICAgcmVhZGluZyA9IFRydWUKICAgICBpZiB0ZXh0IGFuZCBiaW5hcnk6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNhbid0IGhhdmUgdGV4dCBhbmQgYmluYXJ5IG1vZGUgYXQgb25jZSIpCi0gICAgaWYgcmVhZGluZyArIHdyaXRpbmcgKyBhcHBlbmRpbmcgPiAxOgorICAgIGlmIGNyZWF0aW5nICsgcmVhZGluZyArIHdyaXRpbmcgKyBhcHBlbmRpbmcgPiAxOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW4ndCBoYXZlIHJlYWQvd3JpdGUvYXBwZW5kIG1vZGUgYXQgb25jZSIpCi0gICAgaWYgbm90IChyZWFkaW5nIG9yIHdyaXRpbmcgb3IgYXBwZW5kaW5nKToKKyAgICBpZiBub3QgKGNyZWF0aW5nIG9yIHJlYWRpbmcgb3Igd3JpdGluZyBvciBhcHBlbmRpbmcpOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtdXN0IGhhdmUgZXhhY3RseSBvbmUgb2YgcmVhZC93cml0ZS9hcHBlbmQgbW9kZSIpCiAgICAgaWYgYmluYXJ5IGFuZCBlbmNvZGluZyBpcyBub3QgTm9uZToKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYmluYXJ5IG1vZGUgZG9lc24ndCB0YWtlIGFuIGVuY29kaW5nIGFyZ3VtZW50IikKQEAgLTE4MiwxMSArMTg2LDEyIEBACiAgICAgaWYgYmluYXJ5IGFuZCBuZXdsaW5lIGlzIG5vdCBOb25lOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJiaW5hcnkgbW9kZSBkb2Vzbid0IHRha2UgYSBuZXdsaW5lIGFyZ3VtZW50IikKICAgICByYXcgPSBGaWxlSU8oZmlsZSwKKyAgICAgICAgICAgICAgICAgKGNyZWF0aW5nIGFuZCAieCIgb3IgIiIpICsKICAgICAgICAgICAgICAgICAgKHJlYWRpbmcgYW5kICJyIiBvciAiIikgKwogICAgICAgICAgICAgICAgICAod3JpdGluZyBhbmQgInciIG9yICIiKSArCiAgICAgICAgICAgICAgICAgIChhcHBlbmRpbmcgYW5kICJhIiBvciAiIikgKwogICAgICAgICAgICAgICAgICAodXBkYXRpbmcgYW5kICIrIiBvciAiIiksCi0gICAgICAgICAgICAgICAgIGNsb3NlZmQpCisgICAgICAgICAgICAgICAgIGNsb3NlZmQsIG9wZW5lcj1vcGVuZXIpCiAgICAgbGluZV9idWZmZXJpbmcgPSBGYWxzZQogICAgIGlmIGJ1ZmZlcmluZyA9PSAxIG9yIGJ1ZmZlcmluZyA8IDAgYW5kIHJhdy5pc2F0dHkoKToKICAgICAgICAgYnVmZmVyaW5nID0gLTEKQEAgLTIwOCw3ICsyMTMsNyBAQAogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjYW4ndCBoYXZlIHVuYnVmZmVyZWQgdGV4dCBJL08iKQogICAgIGlmIHVwZGF0aW5nOgogICAgICAgICBidWZmZXIgPSBCdWZmZXJlZFJhbmRvbShyYXcsIGJ1ZmZlcmluZykKLSAgICBlbGlmIHdyaXRpbmcgb3IgYXBwZW5kaW5nOgorICAgIGVsaWYgY3JlYXRpbmcgb3Igd3JpdGluZyBvciBhcHBlbmRpbmc6CiAgICAgICAgIGJ1ZmZlciA9IEJ1ZmZlcmVkV3JpdGVyKHJhdywgYnVmZmVyaW5nKQogICAgIGVsaWYgcmVhZGluZzoKICAgICAgICAgYnVmZmVyID0gQnVmZmVyZWRSZWFkZXIocmF3LCBidWZmZXJpbmcpCkBAIC0zMDUsNiArMzEwLDcgQEAKICAgICAgICAgKiAwIC0tIHN0YXJ0IG9mIHN0cmVhbSAodGhlIGRlZmF1bHQpOyBvZmZzZXQgc2hvdWxkIGJlIHplcm8gb3IgcG9zaXRpdmUKICAgICAgICAgKiAxIC0tIGN1cnJlbnQgc3RyZWFtIHBvc2l0aW9uOyBvZmZzZXQgbWF5IGJlIG5lZ2F0aXZlCiAgICAgICAgICogMiAtLSBlbmQgb2Ygc3RyZWFtOyBvZmZzZXQgaXMgdXN1YWxseSBuZWdhdGl2ZQorICAgICAgICBTb21lIG9wZXJhdGluZyBzeXN0ZW1zIC8gZmlsZSBzeXN0ZW1zIGNvdWxkIHByb3ZpZGUgYWRkaXRpb25hbCB2YWx1ZXMuCiAKICAgICAgICAgUmV0dXJuIGFuIGludCBpbmRpY2F0aW5nIHRoZSBuZXcgYWJzb2x1dGUgcG9zaXRpb24uCiAgICAgICAgICIiIgpAQCAtODY1LDcgKzg3MSw3IEBACiAgICAgICAgIGVsaWYgd2hlbmNlID09IDI6CiAgICAgICAgICAgICBzZWxmLl9wb3MgPSBtYXgoMCwgbGVuKHNlbGYuX2J1ZmZlcikgKyBwb3MpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHdoZW5jZSB2YWx1ZSIpCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bnN1cHBvcnRlZCB3aGVuY2UgdmFsdWUiKQogICAgICAgICByZXR1cm4gc2VsZi5fcG9zCiAKICAgICBkZWYgdGVsbChzZWxmKToKQEAgLTk0OCwxNSArOTU0LDE5IEBACiAgICAgICAgICMgU3BlY2lhbCBjYXNlIGZvciB3aGVuIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gcmVhZCBpcyB1bnNwZWNpZmllZC4KICAgICAgICAgaWYgbiBpcyBOb25lIG9yIG4gPT0gLTE6CiAgICAgICAgICAgICBzZWxmLl9yZXNldF9yZWFkX2J1ZigpCisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYucmF3LCAncmVhZGFsbCcpOgorICAgICAgICAgICAgICAgIGNodW5rID0gc2VsZi5yYXcucmVhZGFsbCgpCisgICAgICAgICAgICAgICAgaWYgY2h1bmsgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1Zltwb3M6XSBvciBOb25lCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJ1Zltwb3M6XSArIGNodW5rCiAgICAgICAgICAgICBjaHVua3MgPSBbYnVmW3BvczpdXSAgIyBTdHJpcCB0aGUgY29uc3VtZWQgYnl0ZXMuCiAgICAgICAgICAgICBjdXJyZW50X3NpemUgPSAwCiAgICAgICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAgICMgUmVhZCB1bnRpbCBFT0Ygb3IgdW50aWwgcmVhZCgpIHdvdWxkIGJsb2NrLgogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgY2h1bmsgPSBzZWxmLnJhdy5yZWFkKCkKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgotICAgICAgICAgICAgICAgICAgICBpZiBlLmVycm5vICE9IEVJTlRSOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBleGNlcHQgSW50ZXJydXB0ZWRFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICBpZiBjaHVuayBpbiBlbXB0eV92YWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgIG5vZGF0YV92YWwgPSBjaHVuawpAQCAtOTc4LDkgKzk4OCw3IEBACiAgICAgICAgIHdoaWxlIGF2YWlsIDwgbjoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBjaHVuayA9IHNlbGYucmF3LnJlYWQod2FudGVkKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBpZiBlLmVycm5vICE9IEVJTlRSOgotICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZXhjZXB0IEludGVycnVwdGVkRXJyb3I6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIGNodW5rIGluIGVtcHR5X3ZhbHVlczoKICAgICAgICAgICAgICAgICBub2RhdGFfdmFsID0gY2h1bmsKQEAgLTEwMTMsOSArMTAyMSw3IEBACiAgICAgICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgY3VycmVudCA9IHNlbGYucmF3LnJlYWQodG9fcmVhZCkKLSAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgotICAgICAgICAgICAgICAgICAgICBpZiBlLmVycm5vICE9IEVJTlRSOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBleGNlcHQgSW50ZXJydXB0ZWRFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgaWYgY3VycmVudDoKQEAgLTEwNDAsNyArMTA0Niw3IEBACiAgICAgICAgIHJldHVybiBfQnVmZmVyZWRJT01peGluLnRlbGwoc2VsZikgLSBsZW4oc2VsZi5fcmVhZF9idWYpICsgc2VsZi5fcmVhZF9wb3MKIAogICAgIGRlZiBzZWVrKHNlbGYsIHBvcywgd2hlbmNlPTApOgotICAgICAgICBpZiBub3QgKDAgPD0gd2hlbmNlIDw9IDIpOgorICAgICAgICBpZiB3aGVuY2Ugbm90IGluIHZhbGlkX3NlZWtfZmxhZ3M6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHdoZW5jZSB2YWx1ZSIpCiAgICAgICAgIHdpdGggc2VsZi5fcmVhZF9sb2NrOgogICAgICAgICAgICAgaWYgd2hlbmNlID09IDE6CkBAIC0xMDU4LDE5ICsxMDY0LDEzIEBACiAgICAgREVGQVVMVF9CVUZGRVJfU0laRS4KICAgICAiIiIKIAotICAgIF93YXJuaW5nX3N0YWNrX29mZnNldCA9IDIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYXcsCi0gICAgICAgICAgICAgICAgIGJ1ZmZlcl9zaXplPURFRkFVTFRfQlVGRkVSX1NJWkUsIG1heF9idWZmZXJfc2l6ZT1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmF3LCBidWZmZXJfc2l6ZT1ERUZBVUxUX0JVRkZFUl9TSVpFKToKICAgICAgICAgaWYgbm90IHJhdy53cml0YWJsZSgpOgogICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignInJhdyIgYXJndW1lbnQgbXVzdCBiZSB3cml0YWJsZS4nKQogCiAgICAgICAgIF9CdWZmZXJlZElPTWl4aW4uX19pbml0X18oc2VsZiwgcmF3KQogICAgICAgICBpZiBidWZmZXJfc2l6ZSA8PSAwOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCBidWZmZXIgc2l6ZSIpCi0gICAgICAgIGlmIG1heF9idWZmZXJfc2l6ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIm1heF9idWZmZXJfc2l6ZSBpcyBkZXByZWNhdGVkIiwgRGVwcmVjYXRpb25XYXJuaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl93YXJuaW5nX3N0YWNrX29mZnNldCkKICAgICAgICAgc2VsZi5idWZmZXJfc2l6ZSA9IGJ1ZmZlcl9zaXplCiAgICAgICAgIHNlbGYuX3dyaXRlX2J1ZiA9IGJ5dGVhcnJheSgpCiAgICAgICAgIHNlbGYuX3dyaXRlX2xvY2sgPSBMb2NrKCkKQEAgLTExMjAsMTMgKzExMjAsMTEgQEAKICAgICAgICAgd2hpbGUgc2VsZi5fd3JpdGVfYnVmOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG4gPSBzZWxmLnJhdy53cml0ZShzZWxmLl93cml0ZV9idWYpCisgICAgICAgICAgICBleGNlcHQgSW50ZXJydXB0ZWRFcnJvcjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgZXhjZXB0IEJsb2NraW5nSU9FcnJvcjoKICAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInNlbGYucmF3IHNob3VsZCBpbXBsZW1lbnQgUmF3SU9CYXNlOiBpdCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGQgbm90IHJhaXNlIEJsb2NraW5nSU9FcnJvciIpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgotICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gRUlOVFI6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlmIG4gaXMgTm9uZToKICAgICAgICAgICAgICAgICByYWlzZSBCbG9ja2luZ0lPRXJyb3IoCiAgICAgICAgICAgICAgICAgICAgIGVycm5vLkVBR0FJTiwKQEAgLTExMzksOCArMTEzNyw4IEBACiAgICAgICAgIHJldHVybiBfQnVmZmVyZWRJT01peGluLnRlbGwoc2VsZikgKyBsZW4oc2VsZi5fd3JpdGVfYnVmKQogCiAgICAgZGVmIHNlZWsoc2VsZiwgcG9zLCB3aGVuY2U9MCk6Ci0gICAgICAgIGlmIG5vdCAoMCA8PSB3aGVuY2UgPD0gMik6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHdoZW5jZSIpCisgICAgICAgIGlmIHdoZW5jZSBub3QgaW4gdmFsaWRfc2Vla19mbGFnczoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImludmFsaWQgd2hlbmNlIHZhbHVlIikKICAgICAgICAgd2l0aCBzZWxmLl93cml0ZV9sb2NrOgogICAgICAgICAgICAgc2VsZi5fZmx1c2hfdW5sb2NrZWQoKQogICAgICAgICAgICAgcmV0dXJuIF9CdWZmZXJlZElPTWl4aW4uc2VlayhzZWxmLCBwb3MsIHdoZW5jZSkKQEAgLTExNjIsMTUgKzExNjAsMTEgQEAKICAgICAjIFhYWCBUaGUgdXNlZnVsbmVzcyBvZiB0aGlzIChjb21wYXJlZCB0byBoYXZpbmcgdHdvIHNlcGFyYXRlIElPCiAgICAgIyBvYmplY3RzKSBpcyBxdWVzdGlvbmFibGUuCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVhZGVyLCB3cml0ZXIsCi0gICAgICAgICAgICAgICAgIGJ1ZmZlcl9zaXplPURFRkFVTFRfQlVGRkVSX1NJWkUsIG1heF9idWZmZXJfc2l6ZT1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmVhZGVyLCB3cml0ZXIsIGJ1ZmZlcl9zaXplPURFRkFVTFRfQlVGRkVSX1NJWkUpOgogICAgICAgICAiIiJDb25zdHJ1Y3Rvci4KIAogICAgICAgICBUaGUgYXJndW1lbnRzIGFyZSB0d28gUmF3SU8gaW5zdGFuY2VzLgogICAgICAgICAiIiIKLSAgICAgICAgaWYgbWF4X2J1ZmZlcl9zaXplIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgd2FybmluZ3Mud2FybigibWF4X2J1ZmZlcl9zaXplIGlzIGRlcHJlY2F0ZWQiLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCi0KICAgICAgICAgaWYgbm90IHJlYWRlci5yZWFkYWJsZSgpOgogICAgICAgICAgICAgcmFpc2UgSU9FcnJvcignInJlYWRlciIgYXJndW1lbnQgbXVzdCBiZSByZWFkYWJsZS4nKQogCkBAIC0xMjI3LDE3ICsxMjIxLDE0IEBACiAgICAgZGVmYXVsdHMgdG8gREVGQVVMVF9CVUZGRVJfU0laRS4KICAgICAiIiIKIAotICAgIF93YXJuaW5nX3N0YWNrX29mZnNldCA9IDMKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYXcsCi0gICAgICAgICAgICAgICAgIGJ1ZmZlcl9zaXplPURFRkFVTFRfQlVGRkVSX1NJWkUsIG1heF9idWZmZXJfc2l6ZT1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcmF3LCBidWZmZXJfc2l6ZT1ERUZBVUxUX0JVRkZFUl9TSVpFKToKICAgICAgICAgcmF3Ll9jaGVja1NlZWthYmxlKCkKICAgICAgICAgQnVmZmVyZWRSZWFkZXIuX19pbml0X18oc2VsZiwgcmF3LCBidWZmZXJfc2l6ZSkKLSAgICAgICAgQnVmZmVyZWRXcml0ZXIuX19pbml0X18oc2VsZiwgcmF3LCBidWZmZXJfc2l6ZSwgbWF4X2J1ZmZlcl9zaXplKQorICAgICAgICBCdWZmZXJlZFdyaXRlci5fX2luaXRfXyhzZWxmLCByYXcsIGJ1ZmZlcl9zaXplKQogCiAgICAgZGVmIHNlZWsoc2VsZiwgcG9zLCB3aGVuY2U9MCk6Ci0gICAgICAgIGlmIG5vdCAoMCA8PSB3aGVuY2UgPD0gMik6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHdoZW5jZSIpCisgICAgICAgIGlmIHdoZW5jZSBub3QgaW4gdmFsaWRfc2Vla19mbGFnczoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImludmFsaWQgd2hlbmNlIHZhbHVlIikKICAgICAgICAgc2VsZi5mbHVzaCgpCiAgICAgICAgIGlmIHNlbGYuX3JlYWRfYnVmOgogICAgICAgICAgICAgIyBVbmRvIHJlYWQgYWhlYWQuCkBAIC0xNDQ5LDcgKzE0NDAsNyBAQAogICAgIHIiIiJDaGFyYWN0ZXIgYW5kIGxpbmUgYmFzZWQgbGF5ZXIgb3ZlciBhIEJ1ZmZlcmVkSU9CYXNlIG9iamVjdCwgYnVmZmVyLgogCiAgICAgZW5jb2RpbmcgZ2l2ZXMgdGhlIG5hbWUgb2YgdGhlIGVuY29kaW5nIHRoYXQgdGhlIHN0cmVhbSB3aWxsIGJlCi0gICAgZGVjb2RlZCBvciBlbmNvZGVkIHdpdGguIEl0IGRlZmF1bHRzIHRvIGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZy4KKyAgICBkZWNvZGVkIG9yIGVuY29kZWQgd2l0aC4gSXQgZGVmYXVsdHMgdG8gbG9jYWxlLmdldHByZWZlcnJlZGVuY29kaW5nKEZhbHNlKS4KIAogICAgIGVycm9ycyBkZXRlcm1pbmVzIHRoZSBzdHJpY3RuZXNzIG9mIGVuY29kaW5nIGFuZCBkZWNvZGluZyAoc2VlIHRoZQogICAgIGNvZGVjcy5yZWdpc3RlcikgYW5kIGRlZmF1bHRzIHRvICJzdHJpY3QiLgpAQCAtMTQ4OCw3ICsxNDc5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgIyBJbXBvcnRpbmcgbG9jYWxlIG1heSBmYWlsIGlmIFB5dGhvbiBpcyBiZWluZyBidWlsdAogICAgICAgICAgICAgICAgICAgICBlbmNvZGluZyA9ICJhc2NpaSIKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBlbmNvZGluZyA9IGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZygpCisgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nID0gbG9jYWxlLmdldHByZWZlcnJlZGVuY29kaW5nKEZhbHNlKQogCiAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGVuY29kaW5nLCBzdHIpOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCBlbmNvZGluZzogJXIiICUgZW5jb2RpbmcpCkBAIC0xNTE1LDYgKzE1MDYsNyBAQAogICAgICAgICBzZWxmLl9zbmFwc2hvdCA9IE5vbmUgICMgaW5mbyBmb3IgcmVjb25zdHJ1Y3RpbmcgZGVjb2RlciBzdGF0ZQogICAgICAgICBzZWxmLl9zZWVrYWJsZSA9IHNlbGYuX3RlbGxpbmcgPSBzZWxmLmJ1ZmZlci5zZWVrYWJsZSgpCiAgICAgICAgIHNlbGYuX2hhc19yZWFkMSA9IGhhc2F0dHIoc2VsZi5idWZmZXIsICdyZWFkMScpCisgICAgICAgIHNlbGYuX2IyY3JhdGlvID0gMC4wCiAKICAgICAgICAgaWYgc2VsZi5fc2Vla2FibGUgYW5kIHNlbGYud3JpdGFibGUoKToKICAgICAgICAgICAgIHBvc2l0aW9uID0gc2VsZi5idWZmZXIudGVsbCgpCkBAIC0xNjg1LDcgKzE2NzcsMTIgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlucHV0X2NodW5rID0gc2VsZi5idWZmZXIucmVhZChzZWxmLl9DSFVOS19TSVpFKQogICAgICAgICBlb2YgPSBub3QgaW5wdXRfY2h1bmsKLSAgICAgICAgc2VsZi5fc2V0X2RlY29kZWRfY2hhcnMoc2VsZi5fZGVjb2Rlci5kZWNvZGUoaW5wdXRfY2h1bmssIGVvZikpCisgICAgICAgIGRlY29kZWRfY2hhcnMgPSBzZWxmLl9kZWNvZGVyLmRlY29kZShpbnB1dF9jaHVuaywgZW9mKQorICAgICAgICBzZWxmLl9zZXRfZGVjb2RlZF9jaGFycyhkZWNvZGVkX2NoYXJzKQorICAgICAgICBpZiBkZWNvZGVkX2NoYXJzOgorICAgICAgICAgICAgc2VsZi5fYjJjcmF0aW8gPSBsZW4oaW5wdXRfY2h1bmspIC8gbGVuKHNlbGYuX2RlY29kZWRfY2hhcnMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9iMmNyYXRpbyA9IDAuMAogCiAgICAgICAgIGlmIHNlbGYuX3RlbGxpbmc6CiAgICAgICAgICAgICAjIEF0IHRoZSBzbmFwc2hvdCBwb2ludCwgbGVuKGRlY19idWZmZXIpIGJ5dGVzIGJlZm9yZSB0aGUgcmVhZCwKQEAgLTE3MzksMjAgKzE3MzYsNTYgQEAKICAgICAgICAgIyBmb3J3YXJkIHVudGlsIGl0IGdpdmVzIHVzIGVub3VnaCBkZWNvZGVkIGNoYXJhY3RlcnMuCiAgICAgICAgIHNhdmVkX3N0YXRlID0gZGVjb2Rlci5nZXRzdGF0ZSgpCiAgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgRmFzdCBzZWFyY2ggZm9yIGFuIGFjY2VwdGFibGUgc3RhcnQgcG9pbnQsIGNsb3NlIHRvIG91cgorICAgICAgICAgICAgIyBjdXJyZW50IHBvcy4KKyAgICAgICAgICAgICMgUmF0aW9uYWxlOiBjYWxsaW5nIGRlY29kZXIuZGVjb2RlKCkgaGFzIGEgbGFyZ2Ugb3ZlcmhlYWQKKyAgICAgICAgICAgICMgcmVnYXJkbGVzcyBvZiBjaHVuayBzaXplOyB3ZSB3YW50IHRoZSBudW1iZXIgb2Ygc3VjaCBjYWxscyB0bworICAgICAgICAgICAgIyBiZSBPKDEpIGluIG1vc3Qgc2l0dWF0aW9ucyAoY29tbW9uIGRlY29kZXJzLCBub24tY3JhenkgaW5wdXQpLgorICAgICAgICAgICAgIyBBY3R1YWxseSwgaXQgd2lsbCBiZSBleGFjdGx5IDEgZm9yIGZpeGVkLXNpemUgY29kZWNzIChhbGwKKyAgICAgICAgICAgICMgOC1iaXQgY29kZWNzLCBhbHNvIFVURi0xNiBhbmQgVVRGLTMyKS4KKyAgICAgICAgICAgIHNraXBfYnl0ZXMgPSBpbnQoc2VsZi5fYjJjcmF0aW8gKiBjaGFyc190b19za2lwKQorICAgICAgICAgICAgc2tpcF9iYWNrID0gMQorICAgICAgICAgICAgYXNzZXJ0IHNraXBfYnl0ZXMgPD0gbGVuKG5leHRfaW5wdXQpCisgICAgICAgICAgICB3aGlsZSBza2lwX2J5dGVzID4gMDoKKyAgICAgICAgICAgICAgICBkZWNvZGVyLnNldHN0YXRlKChiJycsIGRlY19mbGFncykpCisgICAgICAgICAgICAgICAgIyBEZWNvZGUgdXAgdG8gdGVtcHRhdGl2ZSBzdGFydCBwb2ludAorICAgICAgICAgICAgICAgIG4gPSBsZW4oZGVjb2Rlci5kZWNvZGUobmV4dF9pbnB1dFs6c2tpcF9ieXRlc10pKQorICAgICAgICAgICAgICAgIGlmIG4gPD0gY2hhcnNfdG9fc2tpcDoKKyAgICAgICAgICAgICAgICAgICAgYiwgZCA9IGRlY29kZXIuZ2V0c3RhdGUoKQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgYjoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgQmVmb3JlIHBvcyBhbmQgbm8gYnl0ZXMgYnVmZmVyZWQgaW4gZGVjb2RlciA9PiBPSworICAgICAgICAgICAgICAgICAgICAgICAgZGVjX2ZsYWdzID0gZAorICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnNfdG9fc2tpcCAtPSBuCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAjIFNraXAgYmFjayBieSBidWZmZXJlZCBhbW91bnQgYW5kIHJlc2V0IGhldXJpc3RpYworICAgICAgICAgICAgICAgICAgICBza2lwX2J5dGVzIC09IGxlbihiKQorICAgICAgICAgICAgICAgICAgICBza2lwX2JhY2sgPSAxCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyBXZSdyZSB0b28gZmFyIGFoZWFkLCBza2lwIGJhY2sgYSBiaXQKKyAgICAgICAgICAgICAgICAgICAgc2tpcF9ieXRlcyAtPSBza2lwX2JhY2sKKyAgICAgICAgICAgICAgICAgICAgc2tpcF9iYWNrID0gc2tpcF9iYWNrICogMgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBza2lwX2J5dGVzID0gMAorICAgICAgICAgICAgICAgIGRlY29kZXIuc2V0c3RhdGUoKGInJywgZGVjX2ZsYWdzKSkKKwogICAgICAgICAgICAgIyBOb3RlIG91ciBpbml0aWFsIHN0YXJ0IHBvaW50LgotICAgICAgICAgICAgZGVjb2Rlci5zZXRzdGF0ZSgoYicnLCBkZWNfZmxhZ3MpKQotICAgICAgICAgICAgc3RhcnRfcG9zID0gcG9zaXRpb24KLSAgICAgICAgICAgIHN0YXJ0X2ZsYWdzLCBieXRlc19mZWQsIGNoYXJzX2RlY29kZWQgPSBkZWNfZmxhZ3MsIDAsIDAKLSAgICAgICAgICAgIG5lZWRfZW9mID0gMAorICAgICAgICAgICAgc3RhcnRfcG9zID0gcG9zaXRpb24gKyBza2lwX2J5dGVzCisgICAgICAgICAgICBzdGFydF9mbGFncyA9IGRlY19mbGFncworICAgICAgICAgICAgaWYgY2hhcnNfdG9fc2tpcCA9PSAwOgorICAgICAgICAgICAgICAgICMgV2UgaGF2ZW4ndCBtb3ZlZCBmcm9tIHRoZSBzdGFydCBwb2ludC4KKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGFja19jb29raWUoc3RhcnRfcG9zLCBzdGFydF9mbGFncykKIAogICAgICAgICAgICAgIyBGZWVkIHRoZSBkZWNvZGVyIG9uZSBieXRlIGF0IGEgdGltZS4gIEFzIHdlIGdvLCBub3RlIHRoZQogICAgICAgICAgICAgIyBuZWFyZXN0ICJzYWZlIHN0YXJ0IHBvaW50IiBiZWZvcmUgdGhlIGN1cnJlbnQgbG9jYXRpb24KICAgICAgICAgICAgICMgKGEgcG9pbnQgd2hlcmUgdGhlIGRlY29kZXIgaGFzIG5vdGhpbmcgYnVmZmVyZWQsIHNvIHNlZWsoKQogICAgICAgICAgICAgIyBjYW4gc2FmZWx5IHN0YXJ0IGZyb20gdGhlcmUgYW5kIGFkdmFuY2UgdG8gdGhpcyBsb2NhdGlvbikuCi0gICAgICAgICAgICBuZXh0X2J5dGUgPSBieXRlYXJyYXkoMSkKLSAgICAgICAgICAgIGZvciBuZXh0X2J5dGVbMF0gaW4gbmV4dF9pbnB1dDoKKyAgICAgICAgICAgIGJ5dGVzX2ZlZCA9IDAKKyAgICAgICAgICAgIG5lZWRfZW9mID0gMAorICAgICAgICAgICAgIyBDaGFycyBkZWNvZGVkIHNpbmNlIGBzdGFydF9wb3NgCisgICAgICAgICAgICBjaGFyc19kZWNvZGVkID0gMAorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2tpcF9ieXRlcywgbGVuKG5leHRfaW5wdXQpKToKICAgICAgICAgICAgICAgICBieXRlc19mZWQgKz0gMQotICAgICAgICAgICAgICAgIGNoYXJzX2RlY29kZWQgKz0gbGVuKGRlY29kZXIuZGVjb2RlKG5leHRfYnl0ZSkpCisgICAgICAgICAgICAgICAgY2hhcnNfZGVjb2RlZCArPSBsZW4oZGVjb2Rlci5kZWNvZGUobmV4dF9pbnB1dFtpOmkrMV0pKQogICAgICAgICAgICAgICAgIGRlY19idWZmZXIsIGRlY19mbGFncyA9IGRlY29kZXIuZ2V0c3RhdGUoKQogICAgICAgICAgICAgICAgIGlmIG5vdCBkZWNfYnVmZmVyIGFuZCBjaGFyc19kZWNvZGVkIDw9IGNoYXJzX3RvX3NraXA6CiAgICAgICAgICAgICAgICAgICAgICMgRGVjb2RlciBidWZmZXIgaXMgZW1wdHksIHNvIHRoaXMgaXMgYSBzYWZlIHN0YXJ0IHBvaW50LgpAQCAtMTgxMSw4ICsxODQ0LDcgQEAKICAgICAgICAgICAgICAgICBzZWxmLl9kZWNvZGVyLnJlc2V0KCkKICAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbgogICAgICAgICBpZiB3aGVuY2UgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImludmFsaWQgd2hlbmNlICglciwgc2hvdWxkIGJlIDAsIDEgb3IgMikiICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdoZW5jZSwpKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5zdXBwb3J0ZWQgd2hlbmNlICglcikiICUgKHdoZW5jZSwpKQogICAgICAgICBpZiBjb29raWUgPCAwOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibmVnYXRpdmUgc2VlayBwb3NpdGlvbiAlciIgJSAoY29va2llLCkpCiAgICAgICAgIHNlbGYuZmx1c2goKQpkaWZmIC0tZ2l0IGEvTGliL19zdHJwdGltZS5weSBiL0xpYi9fc3RycHRpbWUucHkKaW5kZXggZmEwNjM3Ni4uYjBjZDNkNiAxMDA2NDQKLS0tIGEvTGliL19zdHJwdGltZS5weQorKysgYi9MaWIvX3N0cnB0aW1lLnB5CkBAIC00ODYsMTkgKzQ4NiwxOSBAQAogCiAgICAgcmV0dXJuICh5ZWFyLCBtb250aCwgZGF5LAogICAgICAgICAgICAgaG91ciwgbWludXRlLCBzZWNvbmQsCi0gICAgICAgICAgICB3ZWVrZGF5LCBqdWxpYW4sIHR6LCBnbXRvZmYsIHR6bmFtZSksIGZyYWN0aW9uCisgICAgICAgICAgICB3ZWVrZGF5LCBqdWxpYW4sIHR6LCB0em5hbWUsIGdtdG9mZiksIGZyYWN0aW9uCiAKIGRlZiBfc3RycHRpbWVfdGltZShkYXRhX3N0cmluZywgZm9ybWF0PSIlYSAlYiAlZCAlSDolTTolUyAlWSIpOgogICAgICIiIlJldHVybiBhIHRpbWUgc3RydWN0IGJhc2VkIG9uIHRoZSBpbnB1dCBzdHJpbmcgYW5kIHRoZQogICAgIGZvcm1hdCBzdHJpbmcuIiIiCiAgICAgdHQgPSBfc3RycHRpbWUoZGF0YV9zdHJpbmcsIGZvcm1hdClbMF0KLSAgICByZXR1cm4gdGltZS5zdHJ1Y3RfdGltZSh0dFs6OV0pCisgICAgcmV0dXJuIHRpbWUuc3RydWN0X3RpbWUodHRbOnRpbWUuX1NUUlVDVF9UTV9JVEVNU10pCiAKIGRlZiBfc3RycHRpbWVfZGF0ZXRpbWUoY2xzLCBkYXRhX3N0cmluZywgZm9ybWF0PSIlYSAlYiAlZCAlSDolTTolUyAlWSIpOgogICAgICIiIlJldHVybiBhIGNsYXNzIGNscyBpbnN0YW5jZSBiYXNlZCBvbiB0aGUgaW5wdXQgc3RyaW5nIGFuZCB0aGUKICAgICBmb3JtYXQgc3RyaW5nLiIiIgogICAgIHR0LCBmcmFjdGlvbiA9IF9zdHJwdGltZShkYXRhX3N0cmluZywgZm9ybWF0KQotICAgIGdtdG9mZiwgdHpuYW1lID0gdHRbLTI6XQorICAgIHR6bmFtZSwgZ210b2ZmID0gdHRbLTI6XQogICAgIGFyZ3MgPSB0dFs6Nl0gKyAoZnJhY3Rpb24sKQogICAgIGlmIGdtdG9mZiBpcyBub3QgTm9uZToKICAgICAgICAgdHpkZWx0YSA9IGRhdGV0aW1lX3RpbWVkZWx0YShzZWNvbmRzPWdtdG9mZikKZGlmZiAtLWdpdCBhL0xpYi9hYmMucHkgYi9MaWIvYWJjLnB5CmluZGV4IGE2YzJkYzQuLjA5Nzc4ZTggMTAwNjQ0Ci0tLSBhL0xpYi9hYmMucHkKKysrIGIvTGliL2FiYy5weQpAQCAtMjYsNyArMjYsOCBAQAogCiAKIGNsYXNzIGFic3RyYWN0Y2xhc3NtZXRob2QoY2xhc3NtZXRob2QpOgotICAgICIiIkEgZGVjb3JhdG9yIGluZGljYXRpbmcgYWJzdHJhY3QgY2xhc3NtZXRob2RzLgorICAgICIiIgorICAgIEEgZGVjb3JhdG9yIGluZGljYXRpbmcgYWJzdHJhY3QgY2xhc3NtZXRob2RzLgogCiAgICAgU2ltaWxhciB0byBhYnN0cmFjdG1ldGhvZC4KIApAQCAtMzYsNiArMzcsOSBAQAogICAgICAgICAgICAgQGFic3RyYWN0Y2xhc3NtZXRob2QKICAgICAgICAgICAgIGRlZiBteV9hYnN0cmFjdF9jbGFzc21ldGhvZChjbHMsIC4uLik6CiAgICAgICAgICAgICAgICAgLi4uCisKKyAgICAnYWJzdHJhY3RjbGFzc21ldGhvZCcgaXMgZGVwcmVjYXRlZC4gVXNlICdjbGFzc21ldGhvZCcgd2l0aAorICAgICdhYnN0cmFjdG1ldGhvZCcgaW5zdGVhZC4KICAgICAiIiIKIAogICAgIF9faXNhYnN0cmFjdG1ldGhvZF9fID0gVHJ1ZQpAQCAtNDYsNyArNTAsOCBAQAogCiAKIGNsYXNzIGFic3RyYWN0c3RhdGljbWV0aG9kKHN0YXRpY21ldGhvZCk6Ci0gICAgIiIiQSBkZWNvcmF0b3IgaW5kaWNhdGluZyBhYnN0cmFjdCBzdGF0aWNtZXRob2RzLgorICAgICIiIgorICAgIEEgZGVjb3JhdG9yIGluZGljYXRpbmcgYWJzdHJhY3Qgc3RhdGljbWV0aG9kcy4KIAogICAgIFNpbWlsYXIgdG8gYWJzdHJhY3RtZXRob2QuCiAKQEAgLTU2LDYgKzYxLDkgQEAKICAgICAgICAgICAgIEBhYnN0cmFjdHN0YXRpY21ldGhvZAogICAgICAgICAgICAgZGVmIG15X2Fic3RyYWN0X3N0YXRpY21ldGhvZCguLi4pOgogICAgICAgICAgICAgICAgIC4uLgorCisgICAgJ2Fic3RyYWN0c3RhdGljbWV0aG9kJyBpcyBkZXByZWNhdGVkLiBVc2UgJ3N0YXRpY21ldGhvZCcgd2l0aAorICAgICdhYnN0cmFjdG1ldGhvZCcgaW5zdGVhZC4KICAgICAiIiIKIAogICAgIF9faXNhYnN0cmFjdG1ldGhvZF9fID0gVHJ1ZQpAQCAtNjYsNyArNzQsOCBAQAogCiAKIGNsYXNzIGFic3RyYWN0cHJvcGVydHkocHJvcGVydHkpOgotICAgICIiIkEgZGVjb3JhdG9yIGluZGljYXRpbmcgYWJzdHJhY3QgcHJvcGVydGllcy4KKyAgICAiIiIKKyAgICBBIGRlY29yYXRvciBpbmRpY2F0aW5nIGFic3RyYWN0IHByb3BlcnRpZXMuCiAKICAgICBSZXF1aXJlcyB0aGF0IHRoZSBtZXRhY2xhc3MgaXMgQUJDTWV0YSBvciBkZXJpdmVkIGZyb20gaXQuICBBCiAgICAgY2xhc3MgdGhhdCBoYXMgYSBtZXRhY2xhc3MgZGVyaXZlZCBmcm9tIEFCQ01ldGEgY2Fubm90IGJlCkBAIC04OCw3ICs5NywxMSBAQAogICAgICAgICAgICAgZGVmIGdldHgoc2VsZik6IC4uLgogICAgICAgICAgICAgZGVmIHNldHgoc2VsZiwgdmFsdWUpOiAuLi4KICAgICAgICAgICAgIHggPSBhYnN0cmFjdHByb3BlcnR5KGdldHgsIHNldHgpCisKKyAgICAnYWJzdHJhY3Rwcm9wZXJ0eScgaXMgZGVwcmVjYXRlZC4gVXNlICdwcm9wZXJ0eScgd2l0aCAnYWJzdHJhY3RtZXRob2QnCisgICAgaW5zdGVhZC4KICAgICAiIiIKKwogICAgIF9faXNhYnN0cmFjdG1ldGhvZF9fID0gVHJ1ZQogCiAKQEAgLTEzMywxMSArMTQ2LDE0IEBACiAgICAgICAgIHJldHVybiBjbHMKIAogICAgIGRlZiByZWdpc3RlcihjbHMsIHN1YmNsYXNzKToKLSAgICAgICAgIiIiUmVnaXN0ZXIgYSB2aXJ0dWFsIHN1YmNsYXNzIG9mIGFuIEFCQy4iIiIKKyAgICAgICAgIiIiUmVnaXN0ZXIgYSB2aXJ0dWFsIHN1YmNsYXNzIG9mIGFuIEFCQy4KKworICAgICAgICBSZXR1cm5zIHRoZSBzdWJjbGFzcywgdG8gYWxsb3cgdXNhZ2UgYXMgYSBjbGFzcyBkZWNvcmF0b3IuCisgICAgICAgICIiIgogICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzdWJjbGFzcywgdHlwZSk6CiAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIkNhbiBvbmx5IHJlZ2lzdGVyIGNsYXNzZXMiKQogICAgICAgICBpZiBpc3N1YmNsYXNzKHN1YmNsYXNzLCBjbHMpOgotICAgICAgICAgICAgcmV0dXJuICAjIEFscmVhZHkgYSBzdWJjbGFzcworICAgICAgICAgICAgcmV0dXJuIHN1YmNsYXNzICAjIEFscmVhZHkgYSBzdWJjbGFzcwogICAgICAgICAjIFN1YnRsZTogdGVzdCBmb3IgY3ljbGVzICphZnRlciogdGVzdGluZyBmb3IgImFscmVhZHkgYSBzdWJjbGFzcyI7CiAgICAgICAgICMgdGhpcyBtZWFucyB3ZSBhbGxvdyBYLnJlZ2lzdGVyKFgpIGFuZCBpbnRlcnByZXQgaXQgYXMgYSBuby1vcC4KICAgICAgICAgaWYgaXNzdWJjbGFzcyhjbHMsIHN1YmNsYXNzKToKQEAgLTE0NSw2ICsxNjEsNyBAQAogICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJSZWZ1c2luZyB0byBjcmVhdGUgYW4gaW5oZXJpdGFuY2UgY3ljbGUiKQogICAgICAgICBjbHMuX2FiY19yZWdpc3RyeS5hZGQoc3ViY2xhc3MpCiAgICAgICAgIEFCQ01ldGEuX2FiY19pbnZhbGlkYXRpb25fY291bnRlciArPSAxICAjIEludmFsaWRhdGUgbmVnYXRpdmUgY2FjaGUKKyAgICAgICAgcmV0dXJuIHN1YmNsYXNzCiAKICAgICBkZWYgX2R1bXBfcmVnaXN0cnkoY2xzLCBmaWxlPU5vbmUpOgogICAgICAgICAiIiJEZWJ1ZyBoZWxwZXIgdG8gcHJpbnQgdGhlIEFCQyByZWdpc3RyeS4iIiIKZGlmZiAtLWdpdCBhL0xpYi9haWZjLnB5IGIvTGliL2FpZmMucHkKaW5kZXggNzc1ZjM5Yy4uZWM0ZjgyMiAxMDA2NDQKLS0tIGEvTGliL2FpZmMucHkKKysrIGIvTGliL2FpZmMucHkKQEAgLTEzNiw2ICsxMzYsNyBAQAogCiBpbXBvcnQgc3RydWN0CiBpbXBvcnQgYnVpbHRpbnMKK2ltcG9ydCB3YXJuaW5ncwogCiBfX2FsbF9fID0gWyJFcnJvciIsICJvcGVuIiwgIm9wZW5mcCJdCiAKQEAgLTQ0MCw3ICs0NDEsNyBAQAogICAgICAgICAgICAga2x1ZGdlID0gMAogICAgICAgICAgICAgaWYgY2h1bmsuY2h1bmtzaXplID09IDE4OgogICAgICAgICAgICAgICAgIGtsdWRnZSA9IDEKLSAgICAgICAgICAgICAgICBwcmludCgnV2FybmluZzogYmFkIENPTU0gY2h1bmsgc2l6ZScpCisgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybignV2FybmluZzogYmFkIENPTU0gY2h1bmsgc2l6ZScpCiAgICAgICAgICAgICAgICAgY2h1bmsuY2h1bmtzaXplID0gMjMKICAgICAgICAgICAgICNERUJVRyBlbmQKICAgICAgICAgICAgIHNlbGYuX2NvbXB0eXBlID0gY2h1bmsucmVhZCg0KQpAQCAtNDg0LDExICs0ODUsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgIyBhIHBvc2l0aW9uIDAgYW5kIG5hbWUgJycKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbWFya2Vycy5hcHBlbmQoKGlkLCBwb3MsIG5hbWUpKQogICAgICAgICBleGNlcHQgRU9GRXJyb3I6Ci0gICAgICAgICAgICBwcmludCgnV2FybmluZzogTUFSSyBjaHVuayBjb250YWlucyBvbmx5JywgZW5kPScgJykKLSAgICAgICAgICAgIHByaW50KGxlbihzZWxmLl9tYXJrZXJzKSwgZW5kPScgJykKLSAgICAgICAgICAgIGlmIGxlbihzZWxmLl9tYXJrZXJzKSA9PSAxOiBwcmludCgnbWFya2VyJywgZW5kPScgJykKLSAgICAgICAgICAgIGVsc2U6IHByaW50KCdtYXJrZXJzJywgZW5kPScgJykKLSAgICAgICAgICAgIHByaW50KCdpbnN0ZWFkIG9mJywgbm1hcmtlcnMpCisgICAgICAgICAgICB3ID0gKCdXYXJuaW5nOiBNQVJLIGNodW5rIGNvbnRhaW5zIG9ubHkgJXMgbWFya2VyJXMgaW5zdGVhZCBvZiAlcycgJQorICAgICAgICAgICAgICAgICAobGVuKHNlbGYuX21hcmtlcnMpLCAnJyBpZiBsZW4oc2VsZi5fbWFya2VycykgPT0gMSBlbHNlICdzJywKKyAgICAgICAgICAgICAgICAgIG5tYXJrZXJzKSkKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4odykKIAogY2xhc3MgQWlmY193cml0ZToKICAgICAjIFZhcmlhYmxlcyB1c2VkIGluIHRoaXMgY2xhc3M6CmRpZmYgLS1naXQgYS9MaWIvYXJncGFyc2UucHkgYi9MaWIvYXJncGFyc2UucHkKaW5kZXggMjIwMmI1Ny4uYWIzZWM0YiAxMDA2NDQKLS0tIGEvTGliL2FyZ3BhcnNlLnB5CisrKyBiL0xpYi9hcmdwYXJzZS5weQpAQCAtNzEsNiArNzEsNyBAQAogICAgICdBcmd1bWVudERlZmF1bHRzSGVscEZvcm1hdHRlcicsCiAgICAgJ1Jhd0Rlc2NyaXB0aW9uSGVscEZvcm1hdHRlcicsCiAgICAgJ1Jhd1RleHRIZWxwRm9ybWF0dGVyJywKKyAgICAnTWV0YXZhclR5cGVIZWxwRm9ybWF0dGVyJywKICAgICAnTmFtZXNwYWNlJywKICAgICAnQWN0aW9uJywKICAgICAnT05FX09SX01PUkUnLApAQCAtNDE5LDcgKzQyMCw4IEBACiAKICAgICAgICAgICAgICMgcHJvZHVjZSBhbGwgYXJnIHN0cmluZ3MKICAgICAgICAgICAgIGVsaWYgbm90IGFjdGlvbi5vcHRpb25fc3RyaW5nczoKLSAgICAgICAgICAgICAgICBwYXJ0ID0gc2VsZi5fZm9ybWF0X2FyZ3MoYWN0aW9uLCBhY3Rpb24uZGVzdCkKKyAgICAgICAgICAgICAgICBkZWZhdWx0ID0gc2VsZi5fZ2V0X2RlZmF1bHRfbWV0YXZhcl9mb3JfcG9zaXRpb25hbChhY3Rpb24pCisgICAgICAgICAgICAgICAgcGFydCA9IHNlbGYuX2Zvcm1hdF9hcmdzKGFjdGlvbiwgZGVmYXVsdCkKIAogICAgICAgICAgICAgICAgICMgaWYgaXQncyBpbiBhIGdyb3VwLCBzdHJpcCB0aGUgb3V0ZXIgW10KICAgICAgICAgICAgICAgICBpZiBhY3Rpb24gaW4gZ3JvdXBfYWN0aW9uczoKQEAgLTQ0MSw3ICs0NDMsNyBAQAogICAgICAgICAgICAgICAgICMgaWYgdGhlIE9wdGlvbmFsIHRha2VzIGEgdmFsdWUsIGZvcm1hdCBpczoKICAgICAgICAgICAgICAgICAjICAgIC1zIEFSR1Mgb3IgLS1sb25nIEFSR1MKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0ID0gYWN0aW9uLmRlc3QudXBwZXIoKQorICAgICAgICAgICAgICAgICAgICBkZWZhdWx0ID0gc2VsZi5fZ2V0X2RlZmF1bHRfbWV0YXZhcl9mb3Jfb3B0aW9uYWwoYWN0aW9uKQogICAgICAgICAgICAgICAgICAgICBhcmdzX3N0cmluZyA9IHNlbGYuX2Zvcm1hdF9hcmdzKGFjdGlvbiwgZGVmYXVsdCkKICAgICAgICAgICAgICAgICAgICAgcGFydCA9ICclcyAlcycgJSAob3B0aW9uX3N0cmluZywgYXJnc19zdHJpbmcpCiAKQEAgLTUyNyw3ICs1MjksOCBAQAogCiAgICAgZGVmIF9mb3JtYXRfYWN0aW9uX2ludm9jYXRpb24oc2VsZiwgYWN0aW9uKToKICAgICAgICAgaWYgbm90IGFjdGlvbi5vcHRpb25fc3RyaW5nczoKLSAgICAgICAgICAgIG1ldGF2YXIsID0gc2VsZi5fbWV0YXZhcl9mb3JtYXR0ZXIoYWN0aW9uLCBhY3Rpb24uZGVzdCkoMSkKKyAgICAgICAgICAgIGRlZmF1bHQgPSBzZWxmLl9nZXRfZGVmYXVsdF9tZXRhdmFyX2Zvcl9wb3NpdGlvbmFsKGFjdGlvbikKKyAgICAgICAgICAgIG1ldGF2YXIsID0gc2VsZi5fbWV0YXZhcl9mb3JtYXR0ZXIoYWN0aW9uLCBkZWZhdWx0KSgxKQogICAgICAgICAgICAgcmV0dXJuIG1ldGF2YXIKIAogICAgICAgICBlbHNlOgpAQCAtNTQxLDcgKzU0NCw3IEBACiAgICAgICAgICAgICAjIGlmIHRoZSBPcHRpb25hbCB0YWtlcyBhIHZhbHVlLCBmb3JtYXQgaXM6CiAgICAgICAgICAgICAjICAgIC1zIEFSR1MsIC0tbG9uZyBBUkdTCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGRlZmF1bHQgPSBhY3Rpb24uZGVzdC51cHBlcigpCisgICAgICAgICAgICAgICAgZGVmYXVsdCA9IHNlbGYuX2dldF9kZWZhdWx0X21ldGF2YXJfZm9yX29wdGlvbmFsKGFjdGlvbikKICAgICAgICAgICAgICAgICBhcmdzX3N0cmluZyA9IHNlbGYuX2Zvcm1hdF9hcmdzKGFjdGlvbiwgZGVmYXVsdCkKICAgICAgICAgICAgICAgICBmb3Igb3B0aW9uX3N0cmluZyBpbiBhY3Rpb24ub3B0aW9uX3N0cmluZ3M6CiAgICAgICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgnJXMgJXMnICUgKG9wdGlvbl9zdHJpbmcsIGFyZ3Nfc3RyaW5nKSkKQEAgLTYxOSw2ICs2MjIsMTIgQEAKICAgICBkZWYgX2dldF9oZWxwX3N0cmluZyhzZWxmLCBhY3Rpb24pOgogICAgICAgICByZXR1cm4gYWN0aW9uLmhlbHAKIAorICAgIGRlZiBfZ2V0X2RlZmF1bHRfbWV0YXZhcl9mb3Jfb3B0aW9uYWwoc2VsZiwgYWN0aW9uKToKKyAgICAgICAgcmV0dXJuIGFjdGlvbi5kZXN0LnVwcGVyKCkKKworICAgIGRlZiBfZ2V0X2RlZmF1bHRfbWV0YXZhcl9mb3JfcG9zaXRpb25hbChzZWxmLCBhY3Rpb24pOgorICAgICAgICByZXR1cm4gYWN0aW9uLmRlc3QKKwogCiBjbGFzcyBSYXdEZXNjcmlwdGlvbkhlbHBGb3JtYXR0ZXIoSGVscEZvcm1hdHRlcik6CiAgICAgIiIiSGVscCBtZXNzYWdlIGZvcm1hdHRlciB3aGljaCByZXRhaW5zIGFueSBmb3JtYXR0aW5nIGluIGRlc2NyaXB0aW9ucy4KQEAgLTYyOCw3ICs2MzcsNyBAQAogICAgICIiIgogCiAgICAgZGVmIF9maWxsX3RleHQoc2VsZiwgdGV4dCwgd2lkdGgsIGluZGVudCk6Ci0gICAgICAgIHJldHVybiAnJy5qb2luKFtpbmRlbnQgKyBsaW5lIGZvciBsaW5lIGluIHRleHQuc3BsaXRsaW5lcyhUcnVlKV0pCisgICAgICAgIHJldHVybiAnJy5qb2luKGluZGVudCArIGxpbmUgZm9yIGxpbmUgaW4gdGV4dC5zcGxpdGxpbmVzKGtlZXBlbmRzPVRydWUpKQogCiAKIGNsYXNzIFJhd1RleHRIZWxwRm9ybWF0dGVyKFJhd0Rlc2NyaXB0aW9uSGVscEZvcm1hdHRlcik6CkBAIC02NTksNiArNjY4LDIyIEBACiAgICAgICAgIHJldHVybiBoZWxwCiAKIAorY2xhc3MgTWV0YXZhclR5cGVIZWxwRm9ybWF0dGVyKEhlbHBGb3JtYXR0ZXIpOgorICAgICIiIkhlbHAgbWVzc2FnZSBmb3JtYXR0ZXIgd2hpY2ggdXNlcyB0aGUgYXJndW1lbnQgJ3R5cGUnIGFzIHRoZSBkZWZhdWx0CisgICAgbWV0YXZhciB2YWx1ZSAoaW5zdGVhZCBvZiB0aGUgYXJndW1lbnQgJ2Rlc3QnKQorCisgICAgT25seSB0aGUgbmFtZSBvZiB0aGlzIGNsYXNzIGlzIGNvbnNpZGVyZWQgYSBwdWJsaWMgQVBJLiBBbGwgdGhlIG1ldGhvZHMKKyAgICBwcm92aWRlZCBieSB0aGUgY2xhc3MgYXJlIGNvbnNpZGVyZWQgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLgorICAgICIiIgorCisgICAgZGVmIF9nZXRfZGVmYXVsdF9tZXRhdmFyX2Zvcl9vcHRpb25hbChzZWxmLCBhY3Rpb24pOgorICAgICAgICByZXR1cm4gYWN0aW9uLnR5cGUuX19uYW1lX18KKworICAgIGRlZiBfZ2V0X2RlZmF1bHRfbWV0YXZhcl9mb3JfcG9zaXRpb25hbChzZWxmLCBhY3Rpb24pOgorICAgICAgICByZXR1cm4gYWN0aW9uLnR5cGUuX19uYW1lX18KKworCisKICMgPT09PT09PT09PT09PT09PT09PT09CiAjIE9wdGlvbnMgYW5kIEFyZ3VtZW50cwogIyA9PT09PT09PT09PT09PT09PT09PT0KQEAgLTE1NTQsNyArMTU3OSw2IEBACiAgICAgICAgICAgICAgICAgIHVzYWdlPU5vbmUsCiAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPU5vbmUsCiAgICAgICAgICAgICAgICAgIGVwaWxvZz1Ob25lLAotICAgICAgICAgICAgICAgICB2ZXJzaW9uPU5vbmUsCiAgICAgICAgICAgICAgICAgIHBhcmVudHM9W10sCiAgICAgICAgICAgICAgICAgIGZvcm1hdHRlcl9jbGFzcz1IZWxwRm9ybWF0dGVyLAogICAgICAgICAgICAgICAgICBwcmVmaXhfY2hhcnM9Jy0nLApAQCAtMTU2MywxNCArMTU4Nyw2IEBACiAgICAgICAgICAgICAgICAgIGNvbmZsaWN0X2hhbmRsZXI9J2Vycm9yJywKICAgICAgICAgICAgICAgICAgYWRkX2hlbHA9VHJ1ZSk6CiAKLSAgICAgICAgaWYgdmVyc2lvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGltcG9ydCB3YXJuaW5ncwotICAgICAgICAgICAgd2FybmluZ3Mud2FybigKLSAgICAgICAgICAgICAgICAiIiJUaGUgInZlcnNpb24iIGFyZ3VtZW50IHRvIEFyZ3VtZW50UGFyc2VyIGlzIGRlcHJlY2F0ZWQuICIiIgotICAgICAgICAgICAgICAgICIiIlBsZWFzZSB1c2UgIiIiCi0gICAgICAgICAgICAgICAgIiIiImFkZF9hcmd1bWVudCguLi4sIGFjdGlvbj0ndmVyc2lvbicsIHZlcnNpb249Ik4iLCAuLi4pIiAiIiIKLSAgICAgICAgICAgICAgICAiIiJpbnN0ZWFkIiIiLCBEZXByZWNhdGlvbldhcm5pbmcpCi0KICAgICAgICAgc3VwZXJpbml0ID0gc3VwZXIoQXJndW1lbnRQYXJzZXIsIHNlbGYpLl9faW5pdF9fCiAgICAgICAgIHN1cGVyaW5pdChkZXNjcmlwdGlvbj1kZXNjcmlwdGlvbiwKICAgICAgICAgICAgICAgICAgIHByZWZpeF9jaGFycz1wcmVmaXhfY2hhcnMsCkBAIC0xNTg0LDcgKzE2MDAsNiBAQAogICAgICAgICBzZWxmLnByb2cgPSBwcm9nCiAgICAgICAgIHNlbGYudXNhZ2UgPSB1c2FnZQogICAgICAgICBzZWxmLmVwaWxvZyA9IGVwaWxvZwotICAgICAgICBzZWxmLnZlcnNpb24gPSB2ZXJzaW9uCiAgICAgICAgIHNlbGYuZm9ybWF0dGVyX2NsYXNzID0gZm9ybWF0dGVyX2NsYXNzCiAgICAgICAgIHNlbGYuZnJvbWZpbGVfcHJlZml4X2NoYXJzID0gZnJvbWZpbGVfcHJlZml4X2NoYXJzCiAgICAgICAgIHNlbGYuYWRkX2hlbHAgPSBhZGRfaGVscApAQCAtMTU5OSw3ICsxNjE0LDcgQEAKICAgICAgICAgICAgIHJldHVybiBzdHJpbmcKICAgICAgICAgc2VsZi5yZWdpc3RlcigndHlwZScsIE5vbmUsIGlkZW50aXR5KQogCi0gICAgICAgICMgYWRkIGhlbHAgYW5kIHZlcnNpb24gYXJndW1lbnRzIGlmIG5lY2Vzc2FyeQorICAgICAgICAjIGFkZCBoZWxwIGFyZ3VtZW50IGlmIG5lY2Vzc2FyeQogICAgICAgICAjICh1c2luZyBleHBsaWNpdCBkZWZhdWx0IHRvIG92ZXJyaWRlIGdsb2JhbCBhcmd1bWVudF9kZWZhdWx0KQogICAgICAgICBkZWZhdWx0X3ByZWZpeCA9ICctJyBpZiAnLScgaW4gcHJlZml4X2NoYXJzIGVsc2UgcHJlZml4X2NoYXJzWzBdCiAgICAgICAgIGlmIHNlbGYuYWRkX2hlbHA6CkBAIC0xNjA3LDEyICsxNjIyLDYgQEAKICAgICAgICAgICAgICAgICBkZWZhdWx0X3ByZWZpeCsnaCcsIGRlZmF1bHRfcHJlZml4KjIrJ2hlbHAnLAogICAgICAgICAgICAgICAgIGFjdGlvbj0naGVscCcsIGRlZmF1bHQ9U1VQUFJFU1MsCiAgICAgICAgICAgICAgICAgaGVscD1fKCdzaG93IHRoaXMgaGVscCBtZXNzYWdlIGFuZCBleGl0JykpCi0gICAgICAgIGlmIHNlbGYudmVyc2lvbjoKLSAgICAgICAgICAgIHNlbGYuYWRkX2FyZ3VtZW50KAotICAgICAgICAgICAgICAgIGRlZmF1bHRfcHJlZml4Kyd2JywgZGVmYXVsdF9wcmVmaXgqMisndmVyc2lvbicsCi0gICAgICAgICAgICAgICAgYWN0aW9uPSd2ZXJzaW9uJywgZGVmYXVsdD1TVVBQUkVTUywKLSAgICAgICAgICAgICAgICB2ZXJzaW9uPXNlbGYudmVyc2lvbiwKLSAgICAgICAgICAgICAgICBoZWxwPV8oInNob3cgcHJvZ3JhbSdzIHZlcnNpb24gbnVtYmVyIGFuZCBleGl0IikpCiAKICAgICAgICAgIyBhZGQgcGFyZW50IGFyZ3VtZW50cyBhbmQgZGVmYXVsdHMKICAgICAgICAgZm9yIHBhcmVudCBpbiBwYXJlbnRzOgpAQCAtMTYzMiw3ICsxNjQxLDYgQEAKICAgICAgICAgICAgICdwcm9nJywKICAgICAgICAgICAgICd1c2FnZScsCiAgICAgICAgICAgICAnZGVzY3JpcHRpb24nLAotICAgICAgICAgICAgJ3ZlcnNpb24nLAogICAgICAgICAgICAgJ2Zvcm1hdHRlcl9jbGFzcycsCiAgICAgICAgICAgICAnY29uZmxpY3RfaGFuZGxlcicsCiAgICAgICAgICAgICAnYWRkX2hlbHAnLApAQCAtMTk0MCwxNyArMTk0OCwxMiBAQAogICAgICAgICAjIGlmIHdlIGRpZG4ndCBjb25zdW1lIGFsbCB0aGUgYXJndW1lbnQgc3RyaW5ncywgdGhlcmUgd2VyZSBleHRyYXMKICAgICAgICAgZXh0cmFzLmV4dGVuZChhcmdfc3RyaW5nc1tzdG9wX2luZGV4Ol0pCiAKLSAgICAgICAgIyBpZiB3ZSBkaWRuJ3QgdXNlIGFsbCB0aGUgUG9zaXRpb25hbCBvYmplY3RzLCB0aGVyZSB3ZXJlIHRvbyBmZXcKLSAgICAgICAgIyBhcmcgc3RyaW5ncyBzdXBwbGllZC4KLSAgICAgICAgaWYgcG9zaXRpb25hbHM6Ci0gICAgICAgICAgICBzZWxmLmVycm9yKF8oJ3RvbyBmZXcgYXJndW1lbnRzJykpCi0KICAgICAgICAgIyBtYWtlIHN1cmUgYWxsIHJlcXVpcmVkIGFjdGlvbnMgd2VyZSBwcmVzZW50Ci0gICAgICAgIGZvciBhY3Rpb24gaW4gc2VsZi5fYWN0aW9uczoKLSAgICAgICAgICAgIGlmIGFjdGlvbi5yZXF1aXJlZDoKLSAgICAgICAgICAgICAgICBpZiBhY3Rpb24gbm90IGluIHNlZW5fYWN0aW9uczoKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9IF9nZXRfYWN0aW9uX25hbWUoYWN0aW9uKQotICAgICAgICAgICAgICAgICAgICBzZWxmLmVycm9yKF8oJ2FyZ3VtZW50ICVzIGlzIHJlcXVpcmVkJykgJSBuYW1lKQorICAgICAgICByZXF1aXJlZF9hY3Rpb25zID0gW19nZXRfYWN0aW9uX25hbWUoYWN0aW9uKSBmb3IgYWN0aW9uIGluIHNlbGYuX2FjdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhY3Rpb24ucmVxdWlyZWQgYW5kIGFjdGlvbiBub3QgaW4gc2Vlbl9hY3Rpb25zXQorICAgICAgICBpZiByZXF1aXJlZF9hY3Rpb25zOgorICAgICAgICAgICAgc2VsZi5lcnJvcihfKCd0aGUgZm9sbG93aW5nIGFyZ3VtZW50cyBhcmUgcmVxdWlyZWQ6ICVzJykgJQorICAgICAgICAgICAgICAgICAgICAgICAnLCAnLmpvaW4ocmVxdWlyZWRfYWN0aW9ucykpCiAKICAgICAgICAgIyBtYWtlIHN1cmUgYWxsIHJlcXVpcmVkIGdyb3VwcyBoYWQgb25lIG9wdGlvbiBwcmVzZW50CiAgICAgICAgIGZvciBncm91cCBpbiBzZWxmLl9tdXR1YWxseV9leGNsdXNpdmVfZ3JvdXBzOgpAQCAtMjMwMCwxNiArMjMwMyw2IEBACiAgICAgICAgICMgZGV0ZXJtaW5lIGhlbHAgZnJvbSBmb3JtYXQgYWJvdmUKICAgICAgICAgcmV0dXJuIGZvcm1hdHRlci5mb3JtYXRfaGVscCgpCiAKLSAgICBkZWYgZm9ybWF0X3ZlcnNpb24oc2VsZik6Ci0gICAgICAgIGltcG9ydCB3YXJuaW5ncwotICAgICAgICB3YXJuaW5ncy53YXJuKAotICAgICAgICAgICAgJ1RoZSBmb3JtYXRfdmVyc2lvbiBtZXRob2QgaXMgZGVwcmVjYXRlZCAtLSB0aGUgInZlcnNpb24iICcKLSAgICAgICAgICAgICdhcmd1bWVudCB0byBBcmd1bWVudFBhcnNlciBpcyBubyBsb25nZXIgc3VwcG9ydGVkLicsCi0gICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgIGZvcm1hdHRlciA9IHNlbGYuX2dldF9mb3JtYXR0ZXIoKQotICAgICAgICBmb3JtYXR0ZXIuYWRkX3RleHQoc2VsZi52ZXJzaW9uKQotICAgICAgICByZXR1cm4gZm9ybWF0dGVyLmZvcm1hdF9oZWxwKCkKLQogICAgIGRlZiBfZ2V0X2Zvcm1hdHRlcihzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuZm9ybWF0dGVyX2NsYXNzKHByb2c9c2VsZi5wcm9nKQogCkBAIC0yMzI2LDE0ICsyMzE5LDYgQEAKICAgICAgICAgICAgIGZpbGUgPSBfc3lzLnN0ZG91dAogICAgICAgICBzZWxmLl9wcmludF9tZXNzYWdlKHNlbGYuZm9ybWF0X2hlbHAoKSwgZmlsZSkKIAotICAgIGRlZiBwcmludF92ZXJzaW9uKHNlbGYsIGZpbGU9Tm9uZSk6Ci0gICAgICAgIGltcG9ydCB3YXJuaW5ncwotICAgICAgICB3YXJuaW5ncy53YXJuKAotICAgICAgICAgICAgJ1RoZSBwcmludF92ZXJzaW9uIG1ldGhvZCBpcyBkZXByZWNhdGVkIC0tIHRoZSAidmVyc2lvbiIgJwotICAgICAgICAgICAgJ2FyZ3VtZW50IHRvIEFyZ3VtZW50UGFyc2VyIGlzIG5vIGxvbmdlciBzdXBwb3J0ZWQuJywKLSAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgc2VsZi5fcHJpbnRfbWVzc2FnZShzZWxmLmZvcm1hdF92ZXJzaW9uKCksIGZpbGUpCi0KICAgICBkZWYgX3ByaW50X21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwgZmlsZT1Ob25lKToKICAgICAgICAgaWYgbWVzc2FnZToKICAgICAgICAgICAgIGlmIGZpbGUgaXMgTm9uZToKZGlmZiAtLWdpdCBhL0xpYi9hc3QucHkgYi9MaWIvYXN0LnB5CmluZGV4IGZiNWFkYWMuLjEzZjU5ZjkgMTAwNjQ0Ci0tLSBhL0xpYi9hc3QucHkKKysrIGIvTGliL2FzdC5weQpAQCAtMjUsNyArMjUsNiBAQAogICAgIDpsaWNlbnNlOiBQeXRob24gTGljZW5zZS4KICIiIgogZnJvbSBfYXN0IGltcG9ydCAqCi1mcm9tIF9hc3QgaW1wb3J0IF9fdmVyc2lvbl9fCiAKIAogZGVmIHBhcnNlKHNvdXJjZSwgZmlsZW5hbWU9Jzx1bmtub3duPicsIG1vZGU9J2V4ZWMnKToKZGlmZiAtLWdpdCBhL0xpYi9hc3luY2hhdC5weSBiL0xpYi9hc3luY2hhdC5weQppbmRleCA2NTU4NTEyLi4yMTk5ZDFiIDEwMDY0NAotLS0gYS9MaWIvYXN5bmNoYXQucHkKKysrIGIvTGliL2FzeW5jaGF0LnB5CkBAIC03NSw3ICs3NSw3IEBACiAgICAgIyBzaWduIG9mIGFuIGFwcGxpY2F0aW9uIGJ1ZyB0aGF0IHdlIGRvbid0IHdhbnQgdG8gcGFzcyBzaWxlbnRseQogCiAgICAgdXNlX2VuY29kaW5nICAgICAgICAgICAgPSAwCi0gICAgZW5jb2RpbmcgICAgICAgICAgICAgICAgPSAnbGF0aW4xJworICAgIGVuY29kaW5nICAgICAgICAgICAgICAgID0gJ2xhdGluLTEnCiAKICAgICBkZWYgX19pbml0X18gKHNlbGYsIHNvY2s9Tm9uZSwgbWFwPU5vbmUpOgogICAgICAgICAjIGZvciBzdHJpbmcgdGVybWluYXRvciBtYXRjaGluZwpkaWZmIC0tZ2l0IGEvTGliL2FzeW5jb3JlLnB5IGIvTGliL2FzeW5jb3JlLnB5CmluZGV4IGIwNjA3N2YuLjJjYWM4OGIgMTAwNjQ0Ci0tLSBhL0xpYi9hc3luY29yZS5weQorKysgYi9MaWIvYXN5bmNvcmUucHkKQEAgLTU0LDcgKzU0LDcgQEAKIAogaW1wb3J0IG9zCiBmcm9tIGVycm5vIGltcG9ydCBFQUxSRUFEWSwgRUlOUFJPR1JFU1MsIEVXT1VMREJMT0NLLCBFQ09OTlJFU0VULCBFSU5WQUwsIFwKLSAgICAgRU5PVENPTk4sIEVTSFVURE9XTiwgRUlOVFIsIEVJU0NPTk4sIEVCQURGLCBFQ09OTkFCT1JURUQsIEVQSVBFLCBFQUdBSU4sIFwKKyAgICAgRU5PVENPTk4sIEVTSFVURE9XTiwgRUlTQ09OTiwgRUJBREYsIEVDT05OQUJPUlRFRCwgRVBJUEUsIEVBR0FJTiwgXAogICAgICBlcnJvcmNvZGUKIAogX0RJU0NPTk5FQ1RFRCA9IGZyb3plbnNldCgoRUNPTk5SRVNFVCwgRU5PVENPTk4sIEVTSFVURE9XTiwgRUNPTk5BQk9SVEVELCBFUElQRSwKQEAgLTE0MywxMSArMTQzLDggQEAKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICByLCB3LCBlID0gc2VsZWN0LnNlbGVjdChyLCB3LCBlLCB0aW1lb3V0KQotICAgICAgICBleGNlcHQgc2VsZWN0LmVycm9yIGFzIGVycjoKLSAgICAgICAgICAgIGlmIGVyci5hcmdzWzBdICE9IEVJTlRSOgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICBleGNlcHQgSW50ZXJydXB0ZWRFcnJvcjoKKyAgICAgICAgICAgIHJldHVybgogCiAgICAgICAgIGZvciBmZCBpbiByOgogICAgICAgICAgICAgb2JqID0gbWFwLmdldChmZCkKQEAgLTE4NCwxNSArMTgxLDEwIEBACiAgICAgICAgICAgICBpZiBvYmoud3JpdGFibGUoKSBhbmQgbm90IG9iai5hY2NlcHRpbmc6CiAgICAgICAgICAgICAgICAgZmxhZ3MgfD0gc2VsZWN0LlBPTExPVVQKICAgICAgICAgICAgIGlmIGZsYWdzOgotICAgICAgICAgICAgICAgICMgT25seSBjaGVjayBmb3IgZXhjZXB0aW9ucyBpZiBvYmplY3Qgd2FzIGVpdGhlciByZWFkYWJsZQotICAgICAgICAgICAgICAgICMgb3Igd3JpdGFibGUuCi0gICAgICAgICAgICAgICAgZmxhZ3MgfD0gc2VsZWN0LlBPTExFUlIgfCBzZWxlY3QuUE9MTEhVUCB8IHNlbGVjdC5QT0xMTlZBTAogICAgICAgICAgICAgICAgIHBvbGxzdGVyLnJlZ2lzdGVyKGZkLCBmbGFncykKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgciA9IHBvbGxzdGVyLnBvbGwodGltZW91dCkKLSAgICAgICAgZXhjZXB0IHNlbGVjdC5lcnJvciBhcyBlcnI6Ci0gICAgICAgICAgICBpZiBlcnIuYXJnc1swXSAhPSBFSU5UUjoKLSAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQgSW50ZXJydXB0ZWRFcnJvcjoKICAgICAgICAgICAgIHIgPSBbXQogICAgICAgICBmb3IgZmQsIGZsYWdzIGluIHI6CiAgICAgICAgICAgICBvYmogPSBtYXAuZ2V0KGZkKQpAQCAtMjkyLDcgKzI4NCw3IEBACiAgICAgICAgICAgICBkZWwgbWFwW2ZkXQogICAgICAgICBzZWxmLl9maWxlbm8gPSBOb25lCiAKLSAgICBkZWYgY3JlYXRlX3NvY2tldChzZWxmLCBmYW1pbHksIHR5cGUpOgorICAgIGRlZiBjcmVhdGVfc29ja2V0KHNlbGYsIGZhbWlseT1zb2NrZXQuQUZfSU5FVCwgdHlwZT1zb2NrZXQuU09DS19TVFJFQU0pOgogICAgICAgICBzZWxmLmZhbWlseV9hbmRfdHlwZSA9IGZhbWlseSwgdHlwZQogICAgICAgICBzb2NrID0gc29ja2V0LnNvY2tldChmYW1pbHksIHR5cGUpCiAgICAgICAgIHNvY2suc2V0YmxvY2tpbmcoMCkKZGlmZiAtLWdpdCBhL0xpYi9iYXNlNjQucHkgYi9MaWIvYmFzZTY0LnB5CmluZGV4IDg5NWQ4MTMuLjQwNDJmMDAgMTAwNzU1Ci0tLSBhL0xpYi9iYXNlNjQucHkKKysrIGIvTGliL2Jhc2U2NC5weQpAQCAtMjksMTQgKzI5LDE2IEBACiAKIGJ5dGVzX3R5cGVzID0gKGJ5dGVzLCBieXRlYXJyYXkpICAjIFR5cGVzIGFjY2VwdGFibGUgYXMgYmluYXJ5IGRhdGEKIAotCi1kZWYgX3RyYW5zbGF0ZShzLCBhbHRjaGFycyk6Ci0gICAgaWYgbm90IGlzaW5zdGFuY2UocywgYnl0ZXNfdHlwZXMpOgotICAgICAgICByYWlzZSBUeXBlRXJyb3IoImV4cGVjdGVkIGJ5dGVzLCBub3QgJXMiICUgcy5fX2NsYXNzX18uX19uYW1lX18pCi0gICAgdHJhbnNsYXRpb24gPSBieXRlYXJyYXkocmFuZ2UoMjU2KSkKLSAgICBmb3IgaywgdiBpbiBhbHRjaGFycy5pdGVtcygpOgotICAgICAgICB0cmFuc2xhdGlvbltvcmQoayldID0gdlswXQotICAgIHJldHVybiBzLnRyYW5zbGF0ZSh0cmFuc2xhdGlvbikKK2RlZiBfYnl0ZXNfZnJvbV9kZWNvZGVfZGF0YShzKToKKyAgICBpZiBpc2luc3RhbmNlKHMsIHN0cik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzLmVuY29kZSgnYXNjaWknKQorICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignc3RyaW5nIGFyZ3VtZW50IHNob3VsZCBjb250YWluIG9ubHkgQVNDSUkgY2hhcmFjdGVycycpCisgICAgZWxpZiBpc2luc3RhbmNlKHMsIGJ5dGVzX3R5cGVzKToKKyAgICAgICAgcmV0dXJuIHMKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoImFyZ3VtZW50IHNob3VsZCBiZSBieXRlcyBvciBBU0NJSSBzdHJpbmcsIG5vdCAlcyIgJSBzLl9fY2xhc3NfXy5fX25hbWVfXykKIAogCiAKQEAgLTYxLDcgKzYzLDcgQEAKICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiZXhwZWN0ZWQgYnl0ZXMsIG5vdCAlcyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGFsdGNoYXJzLl9fY2xhc3NfXy5fX25hbWVfXykKICAgICAgICAgYXNzZXJ0IGxlbihhbHRjaGFycykgPT0gMiwgcmVwcihhbHRjaGFycykKLSAgICAgICAgcmV0dXJuIF90cmFuc2xhdGUoZW5jb2RlZCwgeycrJzogYWx0Y2hhcnNbMDoxXSwgJy8nOiBhbHRjaGFyc1sxOjJdfSkKKyAgICAgICAgcmV0dXJuIGVuY29kZWQudHJhbnNsYXRlKGJ5dGVzLm1ha2V0cmFucyhiJysvJywgYWx0Y2hhcnMpKQogICAgIHJldHVybiBlbmNvZGVkCiAKIApAQCAtNzksMTQgKzgxLDExIEBACiAgICAgZGlzY2FyZGVkIHByaW9yIHRvIHRoZSBwYWRkaW5nIGNoZWNrLiAgSWYgdmFsaWRhdGUgaXMgVHJ1ZSwKICAgICBub24tYmFzZTY0LWFscGhhYmV0IGNoYXJhY3RlcnMgaW4gdGhlIGlucHV0IHJlc3VsdCBpbiBhIGJpbmFzY2lpLkVycm9yLgogICAgICIiIgotICAgIGlmIG5vdCBpc2luc3RhbmNlKHMsIGJ5dGVzX3R5cGVzKToKLSAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJleHBlY3RlZCBieXRlcywgbm90ICVzIiAlIHMuX19jbGFzc19fLl9fbmFtZV9fKQorICAgIHMgPSBfYnl0ZXNfZnJvbV9kZWNvZGVfZGF0YShzKQogICAgIGlmIGFsdGNoYXJzIGlzIG5vdCBOb25lOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhbHRjaGFycywgYnl0ZXNfdHlwZXMpOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJleHBlY3RlZCBieXRlcywgbm90ICVzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgYWx0Y2hhcnMuX19jbGFzc19fLl9fbmFtZV9fKQorICAgICAgICBhbHRjaGFycyA9IF9ieXRlc19mcm9tX2RlY29kZV9kYXRhKGFsdGNoYXJzKQogICAgICAgICBhc3NlcnQgbGVuKGFsdGNoYXJzKSA9PSAyLCByZXByKGFsdGNoYXJzKQotICAgICAgICBzID0gX3RyYW5zbGF0ZShzLCB7Y2hyKGFsdGNoYXJzWzBdKTogYicrJywgY2hyKGFsdGNoYXJzWzFdKTogYicvJ30pCisgICAgICAgIHMgPSBzLnRyYW5zbGF0ZShieXRlcy5tYWtldHJhbnMoYWx0Y2hhcnMsIGInKy8nKSkKICAgICBpZiB2YWxpZGF0ZSBhbmQgbm90IHJlLm1hdGNoKGInXltBLVphLXowLTkrL10qPXswLDJ9JCcsIHMpOgogICAgICAgICByYWlzZSBiaW5hc2NpaS5FcnJvcignTm9uLWJhc2U2NCBkaWdpdCBmb3VuZCcpCiAgICAgcmV0dXJuIGJpbmFzY2lpLmEyYl9iYXNlNjQocykKQEAgLTEwOSw2ICsxMDgsMTAgQEAKICAgICAiIiIKICAgICByZXR1cm4gYjY0ZGVjb2RlKHMpCiAKKworX3VybHNhZmVfZW5jb2RlX3RyYW5zbGF0aW9uID0gYnl0ZXMubWFrZXRyYW5zKGInKy8nLCBiJy1fJykKK191cmxzYWZlX2RlY29kZV90cmFuc2xhdGlvbiA9IGJ5dGVzLm1ha2V0cmFucyhiJy1fJywgYicrLycpCisKIGRlZiB1cmxzYWZlX2I2NGVuY29kZShzKToKICAgICAiIiJFbmNvZGUgYSBieXRlIHN0cmluZyB1c2luZyBhIHVybC1zYWZlIEJhc2U2NCBhbHBoYWJldC4KIApAQCAtMTE2LDcgKzExOSw3IEBACiAgICAgcmV0dXJuZWQuICBUaGUgYWxwaGFiZXQgdXNlcyAnLScgaW5zdGVhZCBvZiAnKycgYW5kICdfJyBpbnN0ZWFkIG9mCiAgICAgJy8nLgogICAgICIiIgotICAgIHJldHVybiBiNjRlbmNvZGUocywgYictXycpCisgICAgcmV0dXJuIGI2NGVuY29kZShzKS50cmFuc2xhdGUoX3VybHNhZmVfZW5jb2RlX3RyYW5zbGF0aW9uKQogCiBkZWYgdXJsc2FmZV9iNjRkZWNvZGUocyk6CiAgICAgIiIiRGVjb2RlIGEgYnl0ZSBzdHJpbmcgZW5jb2RlZCB3aXRoIHRoZSBzdGFuZGFyZCBCYXNlNjQgYWxwaGFiZXQuCkBAIC0xMjgsNyArMTMxLDkgQEAKIAogICAgIFRoZSBhbHBoYWJldCB1c2VzICctJyBpbnN0ZWFkIG9mICcrJyBhbmQgJ18nIGluc3RlYWQgb2YgJy8nLgogICAgICIiIgotICAgIHJldHVybiBiNjRkZWNvZGUocywgYictXycpCisgICAgcyA9IF9ieXRlc19mcm9tX2RlY29kZV9kYXRhKHMpCisgICAgcyA9IHMudHJhbnNsYXRlKF91cmxzYWZlX2RlY29kZV90cmFuc2xhdGlvbikKKyAgICByZXR1cm4gYjY0ZGVjb2RlKHMpCiAKIAogCkBAIC0yMTEsOCArMjE2LDcgQEAKICAgICB0aGUgaW5wdXQgaXMgaW5jb3JyZWN0bHkgcGFkZGVkIG9yIGlmIHRoZXJlIGFyZSBub24tYWxwaGFiZXQKICAgICBjaGFyYWN0ZXJzIHByZXNlbnQgaW4gdGhlIGlucHV0LgogICAgICIiIgotICAgIGlmIG5vdCBpc2luc3RhbmNlKHMsIGJ5dGVzX3R5cGVzKToKLSAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJleHBlY3RlZCBieXRlcywgbm90ICVzIiAlIHMuX19jbGFzc19fLl9fbmFtZV9fKQorICAgIHMgPSBfYnl0ZXNfZnJvbV9kZWNvZGVfZGF0YShzKQogICAgIHF1YW50YSwgbGVmdG92ZXIgPSBkaXZtb2QobGVuKHMpLCA4KQogICAgIGlmIGxlZnRvdmVyOgogICAgICAgICByYWlzZSBiaW5hc2NpaS5FcnJvcignSW5jb3JyZWN0IHBhZGRpbmcnKQpAQCAtMjIwLDEwICsyMjQsOSBAQAogICAgICMgRmFsc2UsIG9yIHRoZSBjaGFyYWN0ZXIgdG8gbWFwIHRoZSBkaWdpdCAxIChvbmUpIHRvLiAgSXQgc2hvdWxkIGJlCiAgICAgIyBlaXRoZXIgTCAoZWwpIG9yIEkgKGV5ZSkuCiAgICAgaWYgbWFwMDEgaXMgbm90IE5vbmU6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG1hcDAxLCBieXRlc190eXBlcyk6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImV4cGVjdGVkIGJ5dGVzLCBub3QgJXMiICUgbWFwMDEuX19jbGFzc19fLl9fbmFtZV9fKQorICAgICAgICBtYXAwMSA9IF9ieXRlc19mcm9tX2RlY29kZV9kYXRhKG1hcDAxKQogICAgICAgICBhc3NlcnQgbGVuKG1hcDAxKSA9PSAxLCByZXByKG1hcDAxKQotICAgICAgICBzID0gX3RyYW5zbGF0ZShzLCB7YicwJzogYidPJywgYicxJzogbWFwMDF9KQorICAgICAgICBzID0gcy50cmFuc2xhdGUoYnl0ZXMubWFrZXRyYW5zKGInMDEnLCBiJ08nICsgbWFwMDEpKQogICAgIGlmIGNhc2Vmb2xkOgogICAgICAgICBzID0gcy51cHBlcigpCiAgICAgIyBTdHJpcCBvZmYgcGFkIGNoYXJhY3RlcnMgZnJvbSB0aGUgcmlnaHQuICBXZSBuZWVkIHRvIGNvdW50IHRoZSBwYWQKQEAgLTI5Miw4ICsyOTUsNyBAQAogICAgIHMgd2VyZSBpbmNvcnJlY3RseSBwYWRkZWQgb3IgaWYgdGhlcmUgYXJlIG5vbi1hbHBoYWJldCBjaGFyYWN0ZXJzCiAgICAgcHJlc2VudCBpbiB0aGUgc3RyaW5nLgogICAgICIiIgotICAgIGlmIG5vdCBpc2luc3RhbmNlKHMsIGJ5dGVzX3R5cGVzKToKLSAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJleHBlY3RlZCBieXRlcywgbm90ICVzIiAlIHMuX19jbGFzc19fLl9fbmFtZV9fKQorICAgIHMgPSBfYnl0ZXNfZnJvbV9kZWNvZGVfZGF0YShzKQogICAgIGlmIGNhc2Vmb2xkOgogICAgICAgICBzID0gcy51cHBlcigpCiAgICAgaWYgcmUuc2VhcmNoKGInW14wLTlBLUZdJywgcyk6CmRpZmYgLS1naXQgYS9MaWIvYmluaGV4LnB5IGIvTGliL2JpbmhleC5weQppbmRleCA5OTlhNjc1Li43YmY5Mjc4IDEwMDY0NAotLS0gYS9MaWIvYmluaGV4LnB5CisrKyBiL0xpYi9iaW5oZXgucHkKQEAgLTIzLDcgKzIzLDYgQEAKICMKIGltcG9ydCBpbwogaW1wb3J0IG9zCi1pbXBvcnQgc3lzCiBpbXBvcnQgc3RydWN0CiBpbXBvcnQgYmluYXNjaWkKIApkaWZmIC0tZ2l0IGEvTGliL2J6Mi5weSBiL0xpYi9iejIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU4MDhjZAotLS0gL2Rldi9udWxsCisrKyBiL0xpYi9iejIucHkKQEAgLTAsMCArMSw0NjQgQEAKKyIiIkludGVyZmFjZSB0byB0aGUgbGliYnppcDIgY29tcHJlc3Npb24gbGlicmFyeS4KKworVGhpcyBtb2R1bGUgcHJvdmlkZXMgYSBmaWxlIGludGVyZmFjZSwgY2xhc3NlcyBmb3IgaW5jcmVtZW50YWwKKyhkZSljb21wcmVzc2lvbiwgYW5kIGZ1bmN0aW9ucyBmb3Igb25lLXNob3QgKGRlKWNvbXByZXNzaW9uLgorIiIiCisKK19fYWxsX18gPSBbIkJaMkZpbGUiLCAiQloyQ29tcHJlc3NvciIsICJCWjJEZWNvbXByZXNzb3IiLAorICAgICAgICAgICAib3BlbiIsICJjb21wcmVzcyIsICJkZWNvbXByZXNzIl0KKworX19hdXRob3JfXyA9ICJOYWRlZW0gVmF3ZGEgPG5hZGVlbS52YXdkYUBnbWFpbC5jb20+IgorCitpbXBvcnQgYnVpbHRpbnMKK2ltcG9ydCBpbworaW1wb3J0IHdhcm5pbmdzCisKK3RyeToKKyAgICBmcm9tIHRocmVhZGluZyBpbXBvcnQgUkxvY2sKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIGR1bW15X3RocmVhZGluZyBpbXBvcnQgUkxvY2sKKworZnJvbSBfYnoyIGltcG9ydCBCWjJDb21wcmVzc29yLCBCWjJEZWNvbXByZXNzb3IKKworCitfTU9ERV9DTE9TRUQgICA9IDAKK19NT0RFX1JFQUQgICAgID0gMQorX01PREVfUkVBRF9FT0YgPSAyCitfTU9ERV9XUklURSAgICA9IDMKKworX0JVRkZFUl9TSVpFID0gODE5MgorCisKK2NsYXNzIEJaMkZpbGUoaW8uQnVmZmVyZWRJT0Jhc2UpOgorCisgICAgIiIiQSBmaWxlIG9iamVjdCBwcm92aWRpbmcgdHJhbnNwYXJlbnQgYnppcDIgKGRlKWNvbXByZXNzaW9uLgorCisgICAgQSBCWjJGaWxlIGNhbiBhY3QgYXMgYSB3cmFwcGVyIGZvciBhbiBleGlzdGluZyBmaWxlIG9iamVjdCwgb3IgcmVmZXIKKyAgICBkaXJlY3RseSB0byBhIG5hbWVkIGZpbGUgb24gZGlzay4KKworICAgIE5vdGUgdGhhdCBCWjJGaWxlIHByb3ZpZGVzIGEgKmJpbmFyeSogZmlsZSBpbnRlcmZhY2UgLSBkYXRhIHJlYWQgaXMKKyAgICByZXR1cm5lZCBhcyBieXRlcywgYW5kIGRhdGEgdG8gYmUgd3JpdHRlbiBzaG91bGQgYmUgZ2l2ZW4gYXMgYnl0ZXMuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUsIG1vZGU9InIiLCBidWZmZXJpbmc9Tm9uZSwgY29tcHJlc3NsZXZlbD05KToKKyAgICAgICAgIiIiT3BlbiBhIGJ6aXAyLWNvbXByZXNzZWQgZmlsZS4KKworICAgICAgICBJZiBmaWxlbmFtZSBpcyBhIHN0ciBvciBieXRlcyBvYmplY3QsIGlzIGdpdmVzIHRoZSBuYW1lIG9mIHRoZSBmaWxlIHRvCisgICAgICAgIGJlIG9wZW5lZC4gT3RoZXJ3aXNlLCBpdCBzaG91bGQgYmUgYSBmaWxlIG9iamVjdCwgd2hpY2ggd2lsbCBiZSB1c2VkIHRvCisgICAgICAgIHJlYWQgb3Igd3JpdGUgdGhlIGNvbXByZXNzZWQgZGF0YS4KKworICAgICAgICBtb2RlIGNhbiBiZSAncicgZm9yIHJlYWRpbmcgKGRlZmF1bHQpLCAndycgZm9yIChvdmVyKXdyaXRpbmcsIG9yICdhJyBmb3IKKyAgICAgICAgYXBwZW5kaW5nLiBUaGVzZSBjYW4gZXF1aXZhbGVudGx5IGJlIGdpdmVuIGFzICdyYicsICd3YicsIGFuZCAnYWInLgorCisgICAgICAgIGJ1ZmZlcmluZyBpcyBpZ25vcmVkLiBJdHMgdXNlIGlzIGRlcHJlY2F0ZWQuCisKKyAgICAgICAgSWYgbW9kZSBpcyAndycgb3IgJ2EnLCBjb21wcmVzc2xldmVsIGNhbiBiZSBhIG51bWJlciBiZXR3ZWVuIDEKKyAgICAgICAgYW5kIDkgc3BlY2lmeWluZyB0aGUgbGV2ZWwgb2YgY29tcHJlc3Npb246IDEgcHJvZHVjZXMgdGhlIGxlYXN0CisgICAgICAgIGNvbXByZXNzaW9uLCBhbmQgOSAoZGVmYXVsdCkgcHJvZHVjZXMgdGhlIG1vc3QgY29tcHJlc3Npb24uCisKKyAgICAgICAgSWYgbW9kZSBpcyAncicsIHRoZSBpbnB1dCBmaWxlIG1heSBiZSB0aGUgY29uY2F0ZW5hdGlvbiBvZgorICAgICAgICBtdWx0aXBsZSBjb21wcmVzc2VkIHN0cmVhbXMuCisgICAgICAgICIiIgorICAgICAgICAjIFRoaXMgbG9jayBtdXN0IGJlIHJlY3Vyc2l2ZSwgc28gdGhhdCBCdWZmZXJlZElPQmFzZSdzCisgICAgICAgICMgcmVhZGxpbmUoKSwgcmVhZGxpbmVzKCkgYW5kIHdyaXRlbGluZXMoKSBkb24ndCBkZWFkbG9jay4KKyAgICAgICAgc2VsZi5fbG9jayA9IFJMb2NrKCkKKyAgICAgICAgc2VsZi5fZnAgPSBOb25lCisgICAgICAgIHNlbGYuX2Nsb3NlZnAgPSBGYWxzZQorICAgICAgICBzZWxmLl9tb2RlID0gX01PREVfQ0xPU0VECisgICAgICAgIHNlbGYuX3BvcyA9IDAKKyAgICAgICAgc2VsZi5fc2l6ZSA9IC0xCisKKyAgICAgICAgaWYgYnVmZmVyaW5nIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybigiVXNlIG9mICdidWZmZXJpbmcnIGFyZ3VtZW50IGlzIGRlcHJlY2F0ZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcpCisKKyAgICAgICAgaWYgbm90ICgxIDw9IGNvbXByZXNzbGV2ZWwgPD0gOSk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjb21wcmVzc2xldmVsIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA5IikKKworICAgICAgICBpZiBtb2RlIGluICgiIiwgInIiLCAicmIiKToKKyAgICAgICAgICAgIG1vZGUgPSAicmIiCisgICAgICAgICAgICBtb2RlX2NvZGUgPSBfTU9ERV9SRUFECisgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzb3IgPSBCWjJEZWNvbXByZXNzb3IoKQorICAgICAgICAgICAgc2VsZi5fYnVmZmVyID0gTm9uZQorICAgICAgICBlbGlmIG1vZGUgaW4gKCJ3IiwgIndiIik6CisgICAgICAgICAgICBtb2RlID0gIndiIgorICAgICAgICAgICAgbW9kZV9jb2RlID0gX01PREVfV1JJVEUKKyAgICAgICAgICAgIHNlbGYuX2NvbXByZXNzb3IgPSBCWjJDb21wcmVzc29yKGNvbXByZXNzbGV2ZWwpCisgICAgICAgIGVsaWYgbW9kZSBpbiAoImEiLCAiYWIiKToKKyAgICAgICAgICAgIG1vZGUgPSAiYWIiCisgICAgICAgICAgICBtb2RlX2NvZGUgPSBfTU9ERV9XUklURQorICAgICAgICAgICAgc2VsZi5fY29tcHJlc3NvciA9IEJaMkNvbXByZXNzb3IoY29tcHJlc3NsZXZlbCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgbW9kZTogeyFyfSIuZm9ybWF0KG1vZGUpKQorCisgICAgICAgIGlmIGlzaW5zdGFuY2UoZmlsZW5hbWUsIChzdHIsIGJ5dGVzKSk6CisgICAgICAgICAgICBzZWxmLl9mcCA9IGJ1aWx0aW5zLm9wZW4oZmlsZW5hbWUsIG1vZGUpCisgICAgICAgICAgICBzZWxmLl9jbG9zZWZwID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5fbW9kZSA9IG1vZGVfY29kZQorICAgICAgICBlbGlmIGhhc2F0dHIoZmlsZW5hbWUsICJyZWFkIikgb3IgaGFzYXR0cihmaWxlbmFtZSwgIndyaXRlIik6CisgICAgICAgICAgICBzZWxmLl9mcCA9IGZpbGVuYW1lCisgICAgICAgICAgICBzZWxmLl9tb2RlID0gbW9kZV9jb2RlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImZpbGVuYW1lIG11c3QgYmUgYSBzdHIgb3IgYnl0ZXMgb2JqZWN0LCBvciBhIGZpbGUiKQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICAiIiJGbHVzaCBhbmQgY2xvc2UgdGhlIGZpbGUuCisKKyAgICAgICAgTWF5IGJlIGNhbGxlZCBtb3JlIHRoYW4gb25jZSB3aXRob3V0IGVycm9yLiBPbmNlIHRoZSBmaWxlIGlzCisgICAgICAgIGNsb3NlZCwgYW55IG90aGVyIG9wZXJhdGlvbiBvbiBpdCB3aWxsIHJhaXNlIGEgVmFsdWVFcnJvci4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggc2VsZi5fbG9jazoKKyAgICAgICAgICAgIGlmIHNlbGYuX21vZGUgPT0gX01PREVfQ0xPU0VEOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX21vZGUgaW4gKF9NT0RFX1JFQUQsIF9NT0RFX1JFQURfRU9GKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZGVjb21wcmVzc29yID0gTm9uZQorICAgICAgICAgICAgICAgIGVsaWYgc2VsZi5fbW9kZSA9PSBfTU9ERV9XUklURToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZnAud3JpdGUoc2VsZi5fY29tcHJlc3Nvci5mbHVzaCgpKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb21wcmVzc29yID0gTm9uZQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX2Nsb3NlZnA6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9mcC5jbG9zZSgpCisgICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZnAgPSBOb25lCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Nsb3NlZnAgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9tb2RlID0gX01PREVfQ0xPU0VECisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjbG9zZWQoc2VsZik6CisgICAgICAgICIiIlRydWUgaWYgdGhpcyBmaWxlIGlzIGNsb3NlZC4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX21vZGUgPT0gX01PREVfQ0xPU0VECisKKyAgICBkZWYgZmlsZW5vKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIGZpbGUgZGVzY3JpcHRvciBmb3IgdGhlIHVuZGVybHlpbmcgZmlsZS4iIiIKKyAgICAgICAgc2VsZi5fY2hlY2tfbm90X2Nsb3NlZCgpCisgICAgICAgIHJldHVybiBzZWxmLl9mcC5maWxlbm8oKQorCisgICAgZGVmIHNlZWthYmxlKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gd2hldGhlciB0aGUgZmlsZSBzdXBwb3J0cyBzZWVraW5nLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5yZWFkYWJsZSgpIGFuZCBzZWxmLl9mcC5zZWVrYWJsZSgpCisKKyAgICBkZWYgcmVhZGFibGUoc2VsZik6CisgICAgICAgICIiIlJldHVybiB3aGV0aGVyIHRoZSBmaWxlIHdhcyBvcGVuZWQgZm9yIHJlYWRpbmcuIiIiCisgICAgICAgIHNlbGYuX2NoZWNrX25vdF9jbG9zZWQoKQorICAgICAgICByZXR1cm4gc2VsZi5fbW9kZSBpbiAoX01PREVfUkVBRCwgX01PREVfUkVBRF9FT0YpCisKKyAgICBkZWYgd3JpdGFibGUoc2VsZik6CisgICAgICAgICIiIlJldHVybiB3aGV0aGVyIHRoZSBmaWxlIHdhcyBvcGVuZWQgZm9yIHdyaXRpbmcuIiIiCisgICAgICAgIHNlbGYuX2NoZWNrX25vdF9jbG9zZWQoKQorICAgICAgICByZXR1cm4gc2VsZi5fbW9kZSA9PSBfTU9ERV9XUklURQorCisgICAgIyBNb2RlLWNoZWNraW5nIGhlbHBlciBmdW5jdGlvbnMuCisKKyAgICBkZWYgX2NoZWNrX25vdF9jbG9zZWQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuY2xvc2VkOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSS9PIG9wZXJhdGlvbiBvbiBjbG9zZWQgZmlsZSIpCisKKyAgICBkZWYgX2NoZWNrX2Nhbl9yZWFkKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5yZWFkYWJsZSgpOgorICAgICAgICAgICAgcmFpc2UgaW8uVW5zdXBwb3J0ZWRPcGVyYXRpb24oIkZpbGUgbm90IG9wZW4gZm9yIHJlYWRpbmciKQorCisgICAgZGVmIF9jaGVja19jYW5fd3JpdGUoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLndyaXRhYmxlKCk6CisgICAgICAgICAgICByYWlzZSBpby5VbnN1cHBvcnRlZE9wZXJhdGlvbigiRmlsZSBub3Qgb3BlbiBmb3Igd3JpdGluZyIpCisKKyAgICBkZWYgX2NoZWNrX2Nhbl9zZWVrKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5yZWFkYWJsZSgpOgorICAgICAgICAgICAgcmFpc2UgaW8uVW5zdXBwb3J0ZWRPcGVyYXRpb24oIlNlZWtpbmcgaXMgb25seSBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9uIGZpbGVzIG9wZW4gZm9yIHJlYWRpbmciKQorICAgICAgICBpZiBub3Qgc2VsZi5fZnAuc2Vla2FibGUoKToKKyAgICAgICAgICAgIHJhaXNlIGlvLlVuc3VwcG9ydGVkT3BlcmF0aW9uKCJUaGUgdW5kZXJseWluZyBmaWxlIG9iamVjdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9lcyBub3Qgc3VwcG9ydCBzZWVraW5nIikKKworICAgICMgRmlsbCB0aGUgcmVhZGFoZWFkIGJ1ZmZlciBpZiBpdCBpcyBlbXB0eS4gUmV0dXJucyBGYWxzZSBvbiBFT0YuCisgICAgZGVmIF9maWxsX2J1ZmZlcihzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fYnVmZmVyOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBpZiBzZWxmLl9kZWNvbXByZXNzb3IudW51c2VkX2RhdGE6CisgICAgICAgICAgICByYXdibG9jayA9IHNlbGYuX2RlY29tcHJlc3Nvci51bnVzZWRfZGF0YQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmF3YmxvY2sgPSBzZWxmLl9mcC5yZWFkKF9CVUZGRVJfU0laRSkKKworICAgICAgICBpZiBub3QgcmF3YmxvY2s6CisgICAgICAgICAgICBpZiBzZWxmLl9kZWNvbXByZXNzb3IuZW9mOgorICAgICAgICAgICAgICAgIHNlbGYuX21vZGUgPSBfTU9ERV9SRUFEX0VPRgorICAgICAgICAgICAgICAgIHNlbGYuX3NpemUgPSBzZWxmLl9wb3MKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgRU9GRXJyb3IoIkNvbXByZXNzZWQgZmlsZSBlbmRlZCBiZWZvcmUgdGhlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5kLW9mLXN0cmVhbSBtYXJrZXIgd2FzIHJlYWNoZWQiKQorCisgICAgICAgICMgQ29udGludWUgdG8gbmV4dCBzdHJlYW0uCisgICAgICAgIGlmIHNlbGYuX2RlY29tcHJlc3Nvci5lb2Y6CisgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzb3IgPSBCWjJEZWNvbXByZXNzb3IoKQorCisgICAgICAgIHNlbGYuX2J1ZmZlciA9IHNlbGYuX2RlY29tcHJlc3Nvci5kZWNvbXByZXNzKHJhd2Jsb2NrKQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgIyBSZWFkIGRhdGEgdW50aWwgRU9GLgorICAgICMgSWYgcmV0dXJuX2RhdGEgaXMgZmFsc2UsIGNvbnN1bWUgdGhlIGRhdGEgd2l0aG91dCByZXR1cm5pbmcgaXQuCisgICAgZGVmIF9yZWFkX2FsbChzZWxmLCByZXR1cm5fZGF0YT1UcnVlKToKKyAgICAgICAgYmxvY2tzID0gW10KKyAgICAgICAgd2hpbGUgc2VsZi5fZmlsbF9idWZmZXIoKToKKyAgICAgICAgICAgIGlmIHJldHVybl9kYXRhOgorICAgICAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoc2VsZi5fYnVmZmVyKQorICAgICAgICAgICAgc2VsZi5fcG9zICs9IGxlbihzZWxmLl9idWZmZXIpCisgICAgICAgICAgICBzZWxmLl9idWZmZXIgPSBOb25lCisgICAgICAgIGlmIHJldHVybl9kYXRhOgorICAgICAgICAgICAgcmV0dXJuIGIiIi5qb2luKGJsb2NrcykKKworICAgICMgUmVhZCBhIGJsb2NrIG9mIHVwIHRvIG4gYnl0ZXMuCisgICAgIyBJZiByZXR1cm5fZGF0YSBpcyBmYWxzZSwgY29uc3VtZSB0aGUgZGF0YSB3aXRob3V0IHJldHVybmluZyBpdC4KKyAgICBkZWYgX3JlYWRfYmxvY2soc2VsZiwgbiwgcmV0dXJuX2RhdGE9VHJ1ZSk6CisgICAgICAgIGJsb2NrcyA9IFtdCisgICAgICAgIHdoaWxlIG4gPiAwIGFuZCBzZWxmLl9maWxsX2J1ZmZlcigpOgorICAgICAgICAgICAgaWYgbiA8IGxlbihzZWxmLl9idWZmZXIpOgorICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9idWZmZXJbOm5dCisgICAgICAgICAgICAgICAgc2VsZi5fYnVmZmVyID0gc2VsZi5fYnVmZmVyW246XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5fYnVmZmVyCisgICAgICAgICAgICAgICAgc2VsZi5fYnVmZmVyID0gTm9uZQorICAgICAgICAgICAgaWYgcmV0dXJuX2RhdGE6CisgICAgICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChkYXRhKQorICAgICAgICAgICAgc2VsZi5fcG9zICs9IGxlbihkYXRhKQorICAgICAgICAgICAgbiAtPSBsZW4oZGF0YSkKKyAgICAgICAgaWYgcmV0dXJuX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gYiIiLmpvaW4oYmxvY2tzKQorCisgICAgZGVmIHBlZWsoc2VsZiwgbj0wKToKKyAgICAgICAgIiIiUmV0dXJuIGJ1ZmZlcmVkIGRhdGEgd2l0aG91dCBhZHZhbmNpbmcgdGhlIGZpbGUgcG9zaXRpb24uCisKKyAgICAgICAgQWx3YXlzIHJldHVybnMgYXQgbGVhc3Qgb25lIGJ5dGUgb2YgZGF0YSwgdW5sZXNzIGF0IEVPRi4KKyAgICAgICAgVGhlIGV4YWN0IG51bWJlciBvZiBieXRlcyByZXR1cm5lZCBpcyB1bnNwZWNpZmllZC4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggc2VsZi5fbG9jazoKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX2Nhbl9yZWFkKCkKKyAgICAgICAgICAgIGlmIHNlbGYuX21vZGUgPT0gX01PREVfUkVBRF9FT0Ygb3Igbm90IHNlbGYuX2ZpbGxfYnVmZmVyKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGIiIgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2J1ZmZlcgorCisgICAgZGVmIHJlYWQoc2VsZiwgc2l6ZT0tMSk6CisgICAgICAgICIiIlJlYWQgdXAgdG8gc2l6ZSB1bmNvbXByZXNzZWQgYnl0ZXMgZnJvbSB0aGUgZmlsZS4KKworICAgICAgICBJZiBzaXplIGlzIG5lZ2F0aXZlIG9yIG9taXR0ZWQsIHJlYWQgdW50aWwgRU9GIGlzIHJlYWNoZWQuCisgICAgICAgIFJldHVybnMgYicnIGlmIHRoZSBmaWxlIGlzIGFscmVhZHkgYXQgRU9GLgorICAgICAgICAiIiIKKyAgICAgICAgd2l0aCBzZWxmLl9sb2NrOgorICAgICAgICAgICAgc2VsZi5fY2hlY2tfY2FuX3JlYWQoKQorICAgICAgICAgICAgaWYgc2VsZi5fbW9kZSA9PSBfTU9ERV9SRUFEX0VPRiBvciBzaXplID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIGIiIgorICAgICAgICAgICAgZWxpZiBzaXplIDwgMDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVhZF9hbGwoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVhZF9ibG9jayhzaXplKQorCisgICAgZGVmIHJlYWQxKHNlbGYsIHNpemU9LTEpOgorICAgICAgICAiIiJSZWFkIHVwIHRvIHNpemUgdW5jb21wcmVzc2VkIGJ5dGVzIHdpdGggYXQgbW9zdCBvbmUgcmVhZAorICAgICAgICBmcm9tIHRoZSB1bmRlcmx5aW5nIHN0cmVhbS4KKworICAgICAgICBSZXR1cm5zIGInJyBpZiB0aGUgZmlsZSBpcyBhdCBFT0YuCisgICAgICAgICIiIgorICAgICAgICB3aXRoIHNlbGYuX2xvY2s6CisgICAgICAgICAgICBzZWxmLl9jaGVja19jYW5fcmVhZCgpCisgICAgICAgICAgICBpZiAoc2l6ZSA9PSAwIG9yIHNlbGYuX21vZGUgPT0gX01PREVfUkVBRF9FT0Ygb3IKKyAgICAgICAgICAgICAgICBub3Qgc2VsZi5fZmlsbF9idWZmZXIoKSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGIiIgorICAgICAgICAgICAgaWYgMCA8IHNpemUgPCBsZW4oc2VsZi5fYnVmZmVyKToKKyAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5fYnVmZmVyWzpzaXplXQorICAgICAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IHNlbGYuX2J1ZmZlcltzaXplOl0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2J1ZmZlcgorICAgICAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuX3BvcyArPSBsZW4oZGF0YSkKKyAgICAgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBkZWYgcmVhZGludG8oc2VsZiwgYik6CisgICAgICAgICIiIlJlYWQgdXAgdG8gbGVuKGIpIGJ5dGVzIGludG8gYi4KKworICAgICAgICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCAoMCBmb3IgRU9GKS4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggc2VsZi5fbG9jazoKKyAgICAgICAgICAgIHJldHVybiBpby5CdWZmZXJlZElPQmFzZS5yZWFkaW50byhzZWxmLCBiKQorCisgICAgZGVmIHJlYWRsaW5lKHNlbGYsIHNpemU9LTEpOgorICAgICAgICAiIiJSZWFkIGEgbGluZSBvZiB1bmNvbXByZXNzZWQgYnl0ZXMgZnJvbSB0aGUgZmlsZS4KKworICAgICAgICBUaGUgdGVybWluYXRpbmcgbmV3bGluZSAoaWYgcHJlc2VudCkgaXMgcmV0YWluZWQuIElmIHNpemUgaXMKKyAgICAgICAgbm9uLW5lZ2F0aXZlLCBubyBtb3JlIHRoYW4gc2l6ZSBieXRlcyB3aWxsIGJlIHJlYWQgKGluIHdoaWNoCisgICAgICAgIGNhc2UgdGhlIGxpbmUgbWF5IGJlIGluY29tcGxldGUpLiBSZXR1cm5zIGInJyBpZiBhbHJlYWR5IGF0IEVPRi4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNpemUsICJfX2luZGV4X18iKToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiSW50ZWdlciBhcmd1bWVudCBleHBlY3RlZCIpCisgICAgICAgIHNpemUgPSBzaXplLl9faW5kZXhfXygpCisgICAgICAgIHdpdGggc2VsZi5fbG9jazoKKyAgICAgICAgICAgIHJldHVybiBpby5CdWZmZXJlZElPQmFzZS5yZWFkbGluZShzZWxmLCBzaXplKQorCisgICAgZGVmIHJlYWRsaW5lcyhzZWxmLCBzaXplPS0xKToKKyAgICAgICAgIiIiUmVhZCBhIGxpc3Qgb2YgbGluZXMgb2YgdW5jb21wcmVzc2VkIGJ5dGVzIGZyb20gdGhlIGZpbGUuCisKKyAgICAgICAgc2l6ZSBjYW4gYmUgc3BlY2lmaWVkIHRvIGNvbnRyb2wgdGhlIG51bWJlciBvZiBsaW5lcyByZWFkOiBubworICAgICAgICBmdXJ0aGVyIGxpbmVzIHdpbGwgYmUgcmVhZCBvbmNlIHRoZSB0b3RhbCBzaXplIG9mIHRoZSBsaW5lcyByZWFkCisgICAgICAgIHNvIGZhciBlcXVhbHMgb3IgZXhjZWVkcyBzaXplLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoc2l6ZSwgIl9faW5kZXhfXyIpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJJbnRlZ2VyIGFyZ3VtZW50IGV4cGVjdGVkIikKKyAgICAgICAgc2l6ZSA9IHNpemUuX19pbmRleF9fKCkKKyAgICAgICAgd2l0aCBzZWxmLl9sb2NrOgorICAgICAgICAgICAgcmV0dXJuIGlvLkJ1ZmZlcmVkSU9CYXNlLnJlYWRsaW5lcyhzZWxmLCBzaXplKQorCisgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgorICAgICAgICAiIiJXcml0ZSBhIGJ5dGUgc3RyaW5nIHRvIHRoZSBmaWxlLgorCisgICAgICAgIFJldHVybnMgdGhlIG51bWJlciBvZiB1bmNvbXByZXNzZWQgYnl0ZXMgd3JpdHRlbiwgd2hpY2ggaXMKKyAgICAgICAgYWx3YXlzIGxlbihkYXRhKS4gTm90ZSB0aGF0IGR1ZSB0byBidWZmZXJpbmcsIHRoZSBmaWxlIG9uIGRpc2sKKyAgICAgICAgbWF5IG5vdCByZWZsZWN0IHRoZSBkYXRhIHdyaXR0ZW4gdW50aWwgY2xvc2UoKSBpcyBjYWxsZWQuCisgICAgICAgICIiIgorICAgICAgICB3aXRoIHNlbGYuX2xvY2s6CisgICAgICAgICAgICBzZWxmLl9jaGVja19jYW5fd3JpdGUoKQorICAgICAgICAgICAgY29tcHJlc3NlZCA9IHNlbGYuX2NvbXByZXNzb3IuY29tcHJlc3MoZGF0YSkKKyAgICAgICAgICAgIHNlbGYuX2ZwLndyaXRlKGNvbXByZXNzZWQpCisgICAgICAgICAgICBzZWxmLl9wb3MgKz0gbGVuKGRhdGEpCisgICAgICAgICAgICByZXR1cm4gbGVuKGRhdGEpCisKKyAgICBkZWYgd3JpdGVsaW5lcyhzZWxmLCBzZXEpOgorICAgICAgICAiIiJXcml0ZSBhIHNlcXVlbmNlIG9mIGJ5dGUgc3RyaW5ncyB0byB0aGUgZmlsZS4KKworICAgICAgICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdW5jb21wcmVzc2VkIGJ5dGVzIHdyaXR0ZW4uCisgICAgICAgIHNlcSBjYW4gYmUgYW55IGl0ZXJhYmxlIHlpZWxkaW5nIGJ5dGUgc3RyaW5ncy4KKworICAgICAgICBMaW5lIHNlcGFyYXRvcnMgYXJlIG5vdCBhZGRlZCBiZXR3ZWVuIHRoZSB3cml0dGVuIGJ5dGUgc3RyaW5ncy4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggc2VsZi5fbG9jazoKKyAgICAgICAgICAgIHJldHVybiBpby5CdWZmZXJlZElPQmFzZS53cml0ZWxpbmVzKHNlbGYsIHNlcSkKKworICAgICMgUmV3aW5kIHRoZSBmaWxlIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRhdGEgc3RyZWFtLgorICAgIGRlZiBfcmV3aW5kKHNlbGYpOgorICAgICAgICBzZWxmLl9mcC5zZWVrKDAsIDApCisgICAgICAgIHNlbGYuX21vZGUgPSBfTU9ERV9SRUFECisgICAgICAgIHNlbGYuX3BvcyA9IDAKKyAgICAgICAgc2VsZi5fZGVjb21wcmVzc29yID0gQloyRGVjb21wcmVzc29yKCkKKyAgICAgICAgc2VsZi5fYnVmZmVyID0gTm9uZQorCisgICAgZGVmIHNlZWsoc2VsZiwgb2Zmc2V0LCB3aGVuY2U9MCk6CisgICAgICAgICIiIkNoYW5nZSB0aGUgZmlsZSBwb3NpdGlvbi4KKworICAgICAgICBUaGUgbmV3IHBvc2l0aW9uIGlzIHNwZWNpZmllZCBieSBvZmZzZXQsIHJlbGF0aXZlIHRvIHRoZQorICAgICAgICBwb3NpdGlvbiBpbmRpY2F0ZWQgYnkgd2hlbmNlLiBWYWx1ZXMgZm9yIHdoZW5jZSBhcmU6CisKKyAgICAgICAgICAgIDA6IHN0YXJ0IG9mIHN0cmVhbSAoZGVmYXVsdCk7IG9mZnNldCBtdXN0IG5vdCBiZSBuZWdhdGl2ZQorICAgICAgICAgICAgMTogY3VycmVudCBzdHJlYW0gcG9zaXRpb24KKyAgICAgICAgICAgIDI6IGVuZCBvZiBzdHJlYW07IG9mZnNldCBtdXN0IG5vdCBiZSBwb3NpdGl2ZQorCisgICAgICAgIFJldHVybnMgdGhlIG5ldyBmaWxlIHBvc2l0aW9uLgorCisgICAgICAgIE5vdGUgdGhhdCBzZWVraW5nIGlzIGVtdWxhdGVkLCBzbyBkZXBlbmRpbmcgb24gdGhlIHBhcmFtZXRlcnMsCisgICAgICAgIHRoaXMgb3BlcmF0aW9uIG1heSBiZSBleHRyZW1lbHkgc2xvdy4KKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggc2VsZi5fbG9jazoKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX2Nhbl9zZWVrKCkKKworICAgICAgICAgICAgIyBSZWNhbGN1bGF0ZSBvZmZzZXQgYXMgYW4gYWJzb2x1dGUgZmlsZSBwb3NpdGlvbi4KKyAgICAgICAgICAgIGlmIHdoZW5jZSA9PSAwOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsaWYgd2hlbmNlID09IDE6CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gc2VsZi5fcG9zICsgb2Zmc2V0CisgICAgICAgICAgICBlbGlmIHdoZW5jZSA9PSAyOgorICAgICAgICAgICAgICAgICMgU2Vla2luZyByZWxhdGl2ZSB0byBFT0YgLSB3ZSBuZWVkIHRvIGtub3cgdGhlIGZpbGUncyBzaXplLgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX3NpemUgPCAwOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWFkX2FsbChyZXR1cm5fZGF0YT1GYWxzZSkKKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBzZWxmLl9zaXplICsgb2Zmc2V0CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgdmFsdWUgZm9yIHdoZW5jZToge30iLmZvcm1hdCh3aGVuY2UpKQorCisgICAgICAgICAgICAjIE1ha2UgaXQgc28gdGhhdCBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiBieXRlcyB0byBza2lwIGZvcndhcmQuCisgICAgICAgICAgICBpZiBvZmZzZXQgPCBzZWxmLl9wb3M6CisgICAgICAgICAgICAgICAgc2VsZi5fcmV3aW5kKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgb2Zmc2V0IC09IHNlbGYuX3BvcworCisgICAgICAgICAgICAjIFJlYWQgYW5kIGRpc2NhcmQgZGF0YSB1bnRpbCB3ZSByZWFjaCB0aGUgZGVzaXJlZCBwb3NpdGlvbi4KKyAgICAgICAgICAgIGlmIHNlbGYuX21vZGUgIT0gX01PREVfUkVBRF9FT0Y6CisgICAgICAgICAgICAgICAgc2VsZi5fcmVhZF9ibG9jayhvZmZzZXQsIHJldHVybl9kYXRhPUZhbHNlKQorCisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcG9zCisKKyAgICBkZWYgdGVsbChzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBjdXJyZW50IGZpbGUgcG9zaXRpb24uIiIiCisgICAgICAgIHdpdGggc2VsZi5fbG9jazoKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX25vdF9jbG9zZWQoKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3BvcworCisKK2RlZiBvcGVuKGZpbGVuYW1lLCBtb2RlPSJyYiIsIGNvbXByZXNzbGV2ZWw9OSwKKyAgICAgICAgIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lLCBuZXdsaW5lPU5vbmUpOgorICAgICIiIk9wZW4gYSBiemlwMi1jb21wcmVzc2VkIGZpbGUgaW4gYmluYXJ5IG9yIHRleHQgbW9kZS4KKworICAgIFRoZSBmaWxlbmFtZSBhcmd1bWVudCBjYW4gYmUgYW4gYWN0dWFsIGZpbGVuYW1lIChhIHN0ciBvciBieXRlcyBvYmplY3QpLCBvcgorICAgIGFuIGV4aXN0aW5nIGZpbGUgb2JqZWN0IHRvIHJlYWQgZnJvbSBvciB3cml0ZSB0by4KKworICAgIFRoZSBtb2RlIGFyZ3VtZW50IGNhbiBiZSAiciIsICJyYiIsICJ3IiwgIndiIiwgImEiIG9yICJhYiIgZm9yIGJpbmFyeSBtb2RlLAorICAgIG9yICJydCIsICJ3dCIgb3IgImF0IiBmb3IgdGV4dCBtb2RlLiBUaGUgZGVmYXVsdCBtb2RlIGlzICJyYiIsIGFuZCB0aGUKKyAgICBkZWZhdWx0IGNvbXByZXNzbGV2ZWwgaXMgOS4KKworICAgIEZvciBiaW5hcnkgbW9kZSwgdGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIHRoZSBCWjJGaWxlIGNvbnN0cnVjdG9yOgorICAgIEJaMkZpbGUoZmlsZW5hbWUsIG1vZGUsIGNvbXByZXNzbGV2ZWwpLiBJbiB0aGlzIGNhc2UsIHRoZSBlbmNvZGluZywgZXJyb3JzCisgICAgYW5kIG5ld2xpbmUgYXJndW1lbnRzIG11c3Qgbm90IGJlIHByb3ZpZGVkLgorCisgICAgRm9yIHRleHQgbW9kZSwgYSBCWjJGaWxlIG9iamVjdCBpcyBjcmVhdGVkLCBhbmQgd3JhcHBlZCBpbiBhbgorICAgIGlvLlRleHRJT1dyYXBwZXIgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGVuY29kaW5nLCBlcnJvciBoYW5kbGluZworICAgIGJlaGF2aW9yLCBhbmQgbGluZSBlbmRpbmcocykuCisKKyAgICAiIiIKKyAgICBpZiAidCIgaW4gbW9kZToKKyAgICAgICAgaWYgImIiIGluIG1vZGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIG1vZGU6ICVyIiAlIChtb2RlLCkpCisgICAgZWxzZToKKyAgICAgICAgaWYgZW5jb2RpbmcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJBcmd1bWVudCAnZW5jb2RpbmcnIG5vdCBzdXBwb3J0ZWQgaW4gYmluYXJ5IG1vZGUiKQorICAgICAgICBpZiBlcnJvcnMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJBcmd1bWVudCAnZXJyb3JzJyBub3Qgc3VwcG9ydGVkIGluIGJpbmFyeSBtb2RlIikKKyAgICAgICAgaWYgbmV3bGluZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkFyZ3VtZW50ICduZXdsaW5lJyBub3Qgc3VwcG9ydGVkIGluIGJpbmFyeSBtb2RlIikKKworICAgIGJ6X21vZGUgPSBtb2RlLnJlcGxhY2UoInQiLCAiIikKKyAgICBiaW5hcnlfZmlsZSA9IEJaMkZpbGUoZmlsZW5hbWUsIGJ6X21vZGUsIGNvbXByZXNzbGV2ZWw9Y29tcHJlc3NsZXZlbCkKKworICAgIGlmICJ0IiBpbiBtb2RlOgorICAgICAgICByZXR1cm4gaW8uVGV4dElPV3JhcHBlcihiaW5hcnlfZmlsZSwgZW5jb2RpbmcsIGVycm9ycywgbmV3bGluZSkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gYmluYXJ5X2ZpbGUKKworCitkZWYgY29tcHJlc3MoZGF0YSwgY29tcHJlc3NsZXZlbD05KToKKyAgICAiIiJDb21wcmVzcyBhIGJsb2NrIG9mIGRhdGEuCisKKyAgICBjb21wcmVzc2xldmVsLCBpZiBnaXZlbiwgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDEgYW5kIDkuCisKKyAgICBGb3IgaW5jcmVtZW50YWwgY29tcHJlc3Npb24sIHVzZSBhIEJaMkNvbXByZXNzb3Igb2JqZWN0IGluc3RlYWQuCisgICAgIiIiCisgICAgY29tcCA9IEJaMkNvbXByZXNzb3IoY29tcHJlc3NsZXZlbCkKKyAgICByZXR1cm4gY29tcC5jb21wcmVzcyhkYXRhKSArIGNvbXAuZmx1c2goKQorCisKK2RlZiBkZWNvbXByZXNzKGRhdGEpOgorICAgICIiIkRlY29tcHJlc3MgYSBibG9jayBvZiBkYXRhLgorCisgICAgRm9yIGluY3JlbWVudGFsIGRlY29tcHJlc3Npb24sIHVzZSBhIEJaMkRlY29tcHJlc3NvciBvYmplY3QgaW5zdGVhZC4KKyAgICAiIiIKKyAgICBpZiBsZW4oZGF0YSkgPT0gMDoKKyAgICAgICAgcmV0dXJuIGIiIgorCisgICAgcmVzdWx0cyA9IFtdCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgZGVjb21wID0gQloyRGVjb21wcmVzc29yKCkKKyAgICAgICAgcmVzdWx0cy5hcHBlbmQoZGVjb21wLmRlY29tcHJlc3MoZGF0YSkpCisgICAgICAgIGlmIG5vdCBkZWNvbXAuZW9mOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQ29tcHJlc3NlZCBkYXRhIGVuZGVkIGJlZm9yZSB0aGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW5kLW9mLXN0cmVhbSBtYXJrZXIgd2FzIHJlYWNoZWQiKQorICAgICAgICBpZiBub3QgZGVjb21wLnVudXNlZF9kYXRhOgorICAgICAgICAgICAgcmV0dXJuIGIiIi5qb2luKHJlc3VsdHMpCisgICAgICAgICMgVGhlcmUgaXMgdW51c2VkIGRhdGEgbGVmdCBvdmVyLiBQcm9jZWVkIHRvIG5leHQgc3RyZWFtLgorICAgICAgICBkYXRhID0gZGVjb21wLnVudXNlZF9kYXRhCmRpZmYgLS1naXQgYS9MaWIvY2dpLnB5IGIvTGliL2NnaS5weQppbmRleCA5MGEzMzQ1Li5lOTY0ZjBjIDEwMDc1NQotLS0gYS9MaWIvY2dpLnB5CisrKyBiL0xpYi9jZ2kucHkKQEAgLTc2LDcgKzc2LDcgQEAKICAgICBzZW5kIGFuIGVycm9yIG1lc3NhZ2UpLgogCiAgICAgIiIiCi0gICAgZ2xvYmFsIGxvZ2ZwLCBsb2cKKyAgICBnbG9iYWwgbG9nLCBsb2dmaWxlLCBsb2dmcAogICAgIGlmIGxvZ2ZpbGUgYW5kIG5vdCBsb2dmcDoKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgbG9nZnAgPSBvcGVuKGxvZ2ZpbGUsICJhIikKQEAgLTk2LDYgKzk2LDE1IEBACiAgICAgIiIiRHVtbXkgZnVuY3Rpb24sIGFzc2lnbmVkIHRvIGxvZyB3aGVuIGxvZ2dpbmcgaXMgZGlzYWJsZWQuIiIiCiAgICAgcGFzcwogCitkZWYgY2xvc2Vsb2coKToKKyAgICAiIiJDbG9zZSB0aGUgbG9nIGZpbGUuIiIiCisgICAgZ2xvYmFsIGxvZywgbG9nZmlsZSwgbG9nZnAKKyAgICBsb2dmaWxlID0gJycKKyAgICBpZiBsb2dmcDoKKyAgICAgICAgbG9nZnAuY2xvc2UoKQorICAgICAgICBsb2dmcCA9IE5vbmUKKyAgICBsb2cgPSBpbml0bG9nCisKIGxvZyA9IGluaXRsb2cgICAgICAgICAgICMgVGhlIGN1cnJlbnQgbG9nZ2luZyBmdW5jdGlvbgogCiAKQEAgLTEwMDMsNyArMTAxMiw3IEBACiBkZWYgZXNjYXBlKHMsIHF1b3RlPU5vbmUpOgogICAgICIiIkRlcHJlY2F0ZWQgQVBJLiIiIgogICAgIHdhcm4oImNnaS5lc2NhcGUgaXMgZGVwcmVjYXRlZCwgdXNlIGh0bWwuZXNjYXBlIGluc3RlYWQiLAotICAgICAgICAgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQorICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCiAgICAgcyA9IHMucmVwbGFjZSgiJiIsICImYW1wOyIpICMgTXVzdCBiZSBkb25lIGZpcnN0IQogICAgIHMgPSBzLnJlcGxhY2UoIjwiLCAiJmx0OyIpCiAgICAgcyA9IHMucmVwbGFjZSgiPiIsICImZ3Q7IikKZGlmZiAtLWdpdCBhL0xpYi9jZ2l0Yi5weSBiL0xpYi9jZ2l0Yi5weQppbmRleCA3YjUyYzhlLi5lM2NlMmNiIDEwMDY0NAotLS0gYS9MaWIvY2dpdGIucHkKKysrIGIvTGliL2NnaXRiLnB5CkBAIC0zMSw3ICszMSw2IEBACiBpbXBvcnQgdGltZQogaW1wb3J0IHRva2VuaXplCiBpbXBvcnQgdHJhY2ViYWNrCi1pbXBvcnQgdHlwZXMKIAogZGVmIHJlc2V0KCk6CiAgICAgIiIiUmV0dXJuIGEgc3RyaW5nIHRoYXQgcmVzZXRzIHRoZSBDR0kgYW5kIGJyb3dzZXIgdG8gYSBrbm93biBzdGF0ZS4iIiIKZGlmZiAtLWdpdCBhL0xpYi9jb2RlY3MucHkgYi9MaWIvY29kZWNzLnB5CmluZGV4IGIxNTBkNjQuLjk5MDFkNWMgMTAwNjQ0Ci0tLSBhL0xpYi9jb2RlY3MucHkKKysrIGIvTGliL2NvZGVjcy5weQpAQCAtNDg0LDcgKzQ4NCw3IEBACiAgICAgICAgICAgICAgICAgaWYgZmlyc3RsaW5lOgogICAgICAgICAgICAgICAgICAgICBuZXdjaGFycywgZGVjb2RlZGJ5dGVzID0gXAogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWNvZGUoZGF0YVs6ZXhjLnN0YXJ0XSwgc2VsZi5lcnJvcnMpCi0gICAgICAgICAgICAgICAgICAgIGxpbmVzID0gbmV3Y2hhcnMuc3BsaXRsaW5lcyhUcnVlKQorICAgICAgICAgICAgICAgICAgICBsaW5lcyA9IG5ld2NoYXJzLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkKICAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGxpbmVzKTw9MToKICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAgICAgZWxzZToKQEAgLTUyNiw3ICs1MjYsNyBAQAogICAgICAgICAgICAgICAgIHNlbGYuY2hhcmJ1ZmZlciA9IHNlbGYubGluZWJ1ZmZlclswXQogICAgICAgICAgICAgICAgIHNlbGYubGluZWJ1ZmZlciA9IE5vbmUKICAgICAgICAgICAgIGlmIG5vdCBrZWVwZW5kczoKLSAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5zcGxpdGxpbmVzKEZhbHNlKVswXQorICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnNwbGl0bGluZXMoa2VlcGVuZHM9RmFsc2UpWzBdCiAgICAgICAgICAgICByZXR1cm4gbGluZQogCiAgICAgICAgIHJlYWRzaXplID0gc2l6ZSBvciA3MgpAQCAtNTQzLDcgKzU0Myw3IEBACiAgICAgICAgICAgICAgICAgICAgIGRhdGEgKz0gc2VsZi5yZWFkKHNpemU9MSwgY2hhcnM9MSkKIAogICAgICAgICAgICAgbGluZSArPSBkYXRhCi0gICAgICAgICAgICBsaW5lcyA9IGxpbmUuc3BsaXRsaW5lcyhUcnVlKQorICAgICAgICAgICAgbGluZXMgPSBsaW5lLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkKICAgICAgICAgICAgIGlmIGxpbmVzOgogICAgICAgICAgICAgICAgIGlmIGxlbihsaW5lcykgPiAxOgogICAgICAgICAgICAgICAgICAgICAjIE1vcmUgdGhhbiBvbmUgbGluZSByZXN1bHQ7IHRoZSBmaXJzdCBsaW5lIGlzIGEgZnVsbCBsaW5lCkBAIC01NTksMTAgKzU1OSwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgIyBvbmx5IG9uZSByZW1haW5pbmcgbGluZSwgcHV0IGl0IGJhY2sgaW50byBjaGFyYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNoYXJidWZmZXIgPSBsaW5lc1swXSArIHNlbGYuY2hhcmJ1ZmZlcgogICAgICAgICAgICAgICAgICAgICBpZiBub3Qga2VlcGVuZHM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5zcGxpdGxpbmVzKEZhbHNlKVswXQorICAgICAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3BsaXRsaW5lcyhrZWVwZW5kcz1GYWxzZSlbMF0KICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICBsaW5lMHdpdGhlbmQgPSBsaW5lc1swXQotICAgICAgICAgICAgICAgIGxpbmUwd2l0aG91dGVuZCA9IGxpbmVzWzBdLnNwbGl0bGluZXMoRmFsc2UpWzBdCisgICAgICAgICAgICAgICAgbGluZTB3aXRob3V0ZW5kID0gbGluZXNbMF0uc3BsaXRsaW5lcyhrZWVwZW5kcz1GYWxzZSlbMF0KICAgICAgICAgICAgICAgICBpZiBsaW5lMHdpdGhlbmQgIT0gbGluZTB3aXRob3V0ZW5kOiAjIFdlIHJlYWxseSBoYXZlIGEgbGluZSBlbmQKICAgICAgICAgICAgICAgICAgICAgIyBQdXQgdGhlIHJlc3QgYmFjayB0b2dldGhlciBhbmQga2VlcCBpdCB1bnRpbCB0aGUgbmV4dCBjYWxsCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2hhcmJ1ZmZlciA9IHNlbGYuX2VtcHR5X2NoYXJidWZmZXIuam9pbihsaW5lc1sxOl0pICsgXApAQCAtNTc1LDcgKzU3NSw3IEBACiAgICAgICAgICAgICAjIHdlIGRpZG4ndCBnZXQgYW55dGhpbmcgb3IgdGhpcyB3YXMgb3VyIG9ubHkgdHJ5CiAgICAgICAgICAgICBpZiBub3QgZGF0YSBvciBzaXplIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIGlmIGxpbmUgYW5kIG5vdCBrZWVwZW5kczoKLSAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3BsaXRsaW5lcyhGYWxzZSlbMF0KKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3BsaXRsaW5lcyhrZWVwZW5kcz1GYWxzZSlbMF0KICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgaWYgcmVhZHNpemUgPCA4MDAwOgogICAgICAgICAgICAgICAgIHJlYWRzaXplICo9IDIKQEAgLTgwMyw3ICs4MDMsNyBAQAogCiAgICAgICAgIGRhdGEgPSBzZWxmLnJlYWRlci5yZWFkKCkKICAgICAgICAgZGF0YSwgYnl0ZXNlbmNvZGVkID0gc2VsZi5lbmNvZGUoZGF0YSwgc2VsZi5lcnJvcnMpCi0gICAgICAgIHJldHVybiBkYXRhLnNwbGl0bGluZXMoMSkKKyAgICAgICAgcmV0dXJuIGRhdGEuc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKQogCiAgICAgZGVmIF9fbmV4dF9fKHNlbGYpOgogCkBAIC0xMDQyLDEwICsxMDQyLDcgQEAKICAgICAgICAgbWFwcGVkIHRvIHRoZW1zZWx2ZXMuCiAKICAgICAiIiIKLSAgICByZXMgPSB7fQotICAgIGZvciBpIGluIHJuZzoKLSAgICAgICAgcmVzW2ldPWkKLSAgICByZXR1cm4gcmVzCisgICAgcmV0dXJuIHtpOmkgZm9yIGkgaW4gcm5nfQogCiBkZWYgbWFrZV9lbmNvZGluZ19tYXAoZGVjb2RpbmdfbWFwKToKIApkaWZmIC0tZ2l0IGEvTGliL2NvbGxlY3Rpb25zLnB5IGIvTGliL2NvbGxlY3Rpb25zL19faW5pdF9fLnB5CnNpbWlsYXJpdHkgaW5kZXggOTAlCnJlbmFtZSBmcm9tIExpYi9jb2xsZWN0aW9ucy5weQpyZW5hbWUgdG8gTGliL2NvbGxlY3Rpb25zL19faW5pdF9fLnB5CmluZGV4IGViMjAyNDMuLmU1Zjk1OTkgMTAwNjQ0Ci0tLSBhL0xpYi9jb2xsZWN0aW9ucy5weQorKysgYi9MaWIvY29sbGVjdGlvbnMvX19pbml0X18ucHkKQEAgLTEsMTMgKzEsMTQgQEAKIF9fYWxsX18gPSBbJ2RlcXVlJywgJ2RlZmF1bHRkaWN0JywgJ25hbWVkdHVwbGUnLCAnVXNlckRpY3QnLCAnVXNlckxpc3QnLAotICAgICAgICAgICAgJ1VzZXJTdHJpbmcnLCAnQ291bnRlcicsICdPcmRlcmVkRGljdCddCi0jIEZvciBib290c3RyYXBwaW5nIHJlYXNvbnMsIHRoZSBjb2xsZWN0aW9uIEFCQ3MgYXJlIGRlZmluZWQgaW4gX2FiY29sbC5weS4KLSMgVGhleSBzaG91bGQgaG93ZXZlciBiZSBjb25zaWRlcmVkIGFuIGludGVncmFsIHBhcnQgb2YgY29sbGVjdGlvbnMucHkuCi1mcm9tIF9hYmNvbGwgaW1wb3J0ICoKLWltcG9ydCBfYWJjb2xsCi1fX2FsbF9fICs9IF9hYmNvbGwuX19hbGxfXworICAgICAgICAgICAgJ1VzZXJTdHJpbmcnLCAnQ291bnRlcicsICdPcmRlcmVkRGljdCcsICdDaGFpbk1hcCddCisKKyMgRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LCBjb250aW51ZSB0byBtYWtlIHRoZSBjb2xsZWN0aW9ucyBBQkNzCisjIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSBjb2xsZWN0aW9ucyBtb2R1bGUuCitmcm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgKgoraW1wb3J0IGNvbGxlY3Rpb25zLmFiYworX19hbGxfXyArPSBjb2xsZWN0aW9ucy5hYmMuX19hbGxfXwogCiBmcm9tIF9jb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUsIGRlZmF1bHRkaWN0Ci1mcm9tIG9wZXJhdG9yIGltcG9ydCBpdGVtZ2V0dGVyIGFzIF9pdGVtZ2V0dGVyCitmcm9tIG9wZXJhdG9yIGltcG9ydCBpdGVtZ2V0dGVyIGFzIF9pdGVtZ2V0dGVyLCBlcSBhcyBfZXEKIGZyb20ga2V5d29yZCBpbXBvcnQgaXNrZXl3b3JkIGFzIF9pc2tleXdvcmQKIGltcG9ydCBzeXMgYXMgX3N5cwogaW1wb3J0IGhlYXBxIGFzIF9oZWFwcQpAQCAtMjI4LDcgKzIyOSw3IEBACiAgICAgICAgICcnJwogICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCBPcmRlcmVkRGljdCk6CiAgICAgICAgICAgICByZXR1cm4gbGVuKHNlbGYpPT1sZW4ob3RoZXIpIGFuZCBcCi0gICAgICAgICAgICAgICAgICAgYWxsKHA9PXEgZm9yIHAsIHEgaW4gemlwKHNlbGYuaXRlbXMoKSwgb3RoZXIuaXRlbXMoKSkpCisgICAgICAgICAgICAgICAgICAgYWxsKG1hcChfZXEsIHNlbGYuaXRlbXMoKSwgb3RoZXIuaXRlbXMoKSkpCiAgICAgICAgIHJldHVybiBkaWN0Ll9fZXFfXyhzZWxmLCBvdGhlcikKIAogCkBAIC0zMTQsMTAgKzMxNSwxMCBAQAogCiAgICAgIiIiCiAKLSAgICAjIFBhcnNlIGFuZCB2YWxpZGF0ZSB0aGUgZmllbGQgbmFtZXMuICBWYWxpZGF0aW9uIHNlcnZlcyB0d28gcHVycG9zZXMsCi0gICAgIyBnZW5lcmF0aW5nIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2VzIGFuZCBwcmV2ZW50aW5nIHRlbXBsYXRlIGluamVjdGlvbiBhdHRhY2tzLgorICAgICMgVmFsaWRhdGUgdGhlIGZpZWxkIG5hbWVzLiAgQXQgdGhlIHVzZXIncyBvcHRpb24sIGVpdGhlciBnZW5lcmF0ZSBhbiBlcnJvcgorICAgICMgbWVzc2FnZSBvciBhdXRvbWF0aWNhbGx5IHJlcGxhY2UgdGhlIGZpZWxkIG5hbWUgd2l0aCBhIHZhbGlkIG5hbWUuCiAgICAgaWYgaXNpbnN0YW5jZShmaWVsZF9uYW1lcywgc3RyKToKLSAgICAgICAgZmllbGRfbmFtZXMgPSBmaWVsZF9uYW1lcy5yZXBsYWNlKCcsJywgJyAnKS5zcGxpdCgpICMgbmFtZXMgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2UgYW5kL29yIGNvbW1hcworICAgICAgICBmaWVsZF9uYW1lcyA9IGZpZWxkX25hbWVzLnJlcGxhY2UoJywnLCAnICcpLnNwbGl0KCkKICAgICBmaWVsZF9uYW1lcyA9IGxpc3QobWFwKHN0ciwgZmllbGRfbmFtZXMpKQogICAgIGlmIHJlbmFtZToKICAgICAgICAgc2VlbiA9IHNldCgpCkBAIC0zMzIsMTUgKzMzMywxOSBAQAogICAgICAgICAgICAgc2Vlbi5hZGQobmFtZSkKICAgICBmb3IgbmFtZSBpbiBbdHlwZW5hbWVdICsgZmllbGRfbmFtZXM6CiAgICAgICAgIGlmIG5vdCBhbGwoYy5pc2FsbnVtKCkgb3IgYz09J18nIGZvciBjIGluIG5hbWUpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignVHlwZSBuYW1lcyBhbmQgZmllbGQgbmFtZXMgY2FuIG9ubHkgY29udGFpbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBhbmQgdW5kZXJzY29yZXM6ICVyJyAlIG5hbWUpCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdUeXBlIG5hbWVzIGFuZCBmaWVsZCBuYW1lcyBjYW4gb25seSBjb250YWluICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCB1bmRlcnNjb3JlczogJXInICUgbmFtZSkKICAgICAgICAgaWYgX2lza2V5d29yZChuYW1lKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1R5cGUgbmFtZXMgYW5kIGZpZWxkIG5hbWVzIGNhbm5vdCBiZSBhIGtleXdvcmQ6ICVyJyAlIG5hbWUpCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdUeXBlIG5hbWVzIGFuZCBmaWVsZCBuYW1lcyBjYW5ub3QgYmUgYSAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXl3b3JkOiAlcicgJSBuYW1lKQogICAgICAgICBpZiBuYW1lWzBdLmlzZGlnaXQoKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1R5cGUgbmFtZXMgYW5kIGZpZWxkIG5hbWVzIGNhbm5vdCBzdGFydCB3aXRoIGEgbnVtYmVyOiAlcicgJSBuYW1lKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignVHlwZSBuYW1lcyBhbmQgZmllbGQgbmFtZXMgY2Fubm90IHN0YXJ0IHdpdGggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYSBudW1iZXI6ICVyJyAlIG5hbWUpCiAgICAgc2VlbiA9IHNldCgpCiAgICAgZm9yIG5hbWUgaW4gZmllbGRfbmFtZXM6CiAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgnXycpIGFuZCBub3QgcmVuYW1lOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignRmllbGQgbmFtZXMgY2Fubm90IHN0YXJ0IHdpdGggYW4gdW5kZXJzY29yZTogJXInICUgbmFtZSkKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ZpZWxkIG5hbWVzIGNhbm5vdCBzdGFydCB3aXRoIGFuIHVuZGVyc2NvcmU6ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyVyJyAlIG5hbWUpCiAgICAgICAgIGlmIG5hbWUgaW4gc2VlbjoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0VuY291bnRlcmVkIGR1cGxpY2F0ZSBmaWVsZCBuYW1lOiAlcicgJSBuYW1lKQogICAgICAgICBzZWVuLmFkZChuYW1lKQpAQCAtMzUxLDIxICszNTYsMjMgQEAKICAgICAgICAgZmllbGRfbmFtZXMgPSB0dXBsZShmaWVsZF9uYW1lcyksCiAgICAgICAgIG51bV9maWVsZHMgPSBsZW4oZmllbGRfbmFtZXMpLAogICAgICAgICBhcmdfbGlzdCA9IHJlcHIodHVwbGUoZmllbGRfbmFtZXMpKS5yZXBsYWNlKCInIiwgIiIpWzE6LTFdLAotICAgICAgICByZXByX2ZtdCA9ICcsICcuam9pbihfcmVwcl90ZW1wbGF0ZS5mb3JtYXQobmFtZT1uYW1lKSBmb3IgbmFtZSBpbiBmaWVsZF9uYW1lcyksCisgICAgICAgIHJlcHJfZm10ID0gJywgJy5qb2luKF9yZXByX3RlbXBsYXRlLmZvcm1hdChuYW1lPW5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lIGluIGZpZWxkX25hbWVzKSwKICAgICAgICAgZmllbGRfZGVmcyA9ICdcbicuam9pbihfZmllbGRfdGVtcGxhdGUuZm9ybWF0KGluZGV4PWluZGV4LCBuYW1lPW5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGluZGV4LCBuYW1lIGluIGVudW1lcmF0ZShmaWVsZF9uYW1lcykpCiAgICAgKQogCi0gICAgIyBFeGVjdXRlIHRoZSB0ZW1wbGF0ZSBzdHJpbmcgaW4gYSB0ZW1wb3JhcnkgbmFtZXNwYWNlIGFuZAotICAgICMgc3VwcG9ydCB0cmFjaW5nIHV0aWxpdGllcyBieSBzZXR0aW5nIGEgdmFsdWUgZm9yIGZyYW1lLmZfZ2xvYmFsc1snX19uYW1lX18nXQorICAgICMgRXhlY3V0ZSB0aGUgdGVtcGxhdGUgc3RyaW5nIGluIGEgdGVtcG9yYXJ5IG5hbWVzcGFjZSBhbmQgc3VwcG9ydAorICAgICMgdHJhY2luZyB1dGlsaXRpZXMgYnkgc2V0dGluZyBhIHZhbHVlIGZvciBmcmFtZS5mX2dsb2JhbHNbJ19fbmFtZV9fJ10KICAgICBuYW1lc3BhY2UgPSBkaWN0KF9fbmFtZV9fPSduYW1lZHR1cGxlXyVzJyAlIHR5cGVuYW1lKQogICAgIHRyeToKICAgICAgICAgZXhlYyhjbGFzc19kZWZpbml0aW9uLCBuYW1lc3BhY2UpCiAgICAgZXhjZXB0IFN5bnRheEVycm9yIGFzIGU6CiAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKGUubXNnICsgJzpcblxuJyArIGNsYXNzX2RlZmluaXRpb24pCiAgICAgcmVzdWx0ID0gbmFtZXNwYWNlW3R5cGVuYW1lXQorICAgIHJlc3VsdC5fc291cmNlID0gY2xhc3NfZGVmaW5pdGlvbgogICAgIGlmIHZlcmJvc2U6Ci0gICAgICAgIHByaW50KGNsYXNzX2RlZmluaXRpb24pCisgICAgICAgIHByaW50KHJlc3VsdC5fc291cmNlKQogCiAgICAgIyBGb3IgcGlja2xpbmcgdG8gd29yaywgdGhlIF9fbW9kdWxlX18gdmFyaWFibGUgbmVlZHMgdG8gYmUgc2V0IHRvIHRoZSBmcmFtZQogICAgICMgd2hlcmUgdGhlIG5hbWVkIHR1cGxlIGlzIGNyZWF0ZWQuICBCeXBhc3MgdGhpcyBzdGVwIGluIGVudmlyb21lbnRzIHdoZXJlCkBAIC02NzQsMTIgKzY4MSw4NiBAQAogICAgICAgICAgICAgICAgIHJlc3VsdFtlbGVtXSA9IG5ld2NvdW50CiAgICAgICAgIHJldHVybiByZXN1bHQKIAorICAgIGRlZiBfX3Bvc19fKHNlbGYpOgorICAgICAgICAnQWRkcyBhbiBlbXB0eSBjb3VudGVyLCBlZmZlY3RpdmVseSBzdHJpcHBpbmcgbmVnYXRpdmUgYW5kIHplcm8gY291bnRzJworICAgICAgICByZXR1cm4gc2VsZiArIENvdW50ZXIoKQorCisgICAgZGVmIF9fbmVnX18oc2VsZik6CisgICAgICAgICcnJ1N1YnRyYWN0cyBmcm9tIGFuIGVtcHR5IGNvdW50ZXIuICBTdHJpcHMgcG9zaXRpdmUgYW5kIHplcm8gY291bnRzLAorICAgICAgICBhbmQgZmxpcHMgdGhlIHNpZ24gb24gbmVnYXRpdmUgY291bnRzLgorCisgICAgICAgICcnJworICAgICAgICByZXR1cm4gQ291bnRlcigpIC0gc2VsZgorCisgICAgZGVmIF9rZWVwX3Bvc2l0aXZlKHNlbGYpOgorICAgICAgICAnJydJbnRlcm5hbCBtZXRob2QgdG8gc3RyaXAgZWxlbWVudHMgd2l0aCBhIG5lZ2F0aXZlIG9yIHplcm8gY291bnQnJycKKyAgICAgICAgbm9ucG9zaXRpdmUgPSBbZWxlbSBmb3IgZWxlbSwgY291bnQgaW4gc2VsZi5pdGVtcygpIGlmIG5vdCBjb3VudCA+IDBdCisgICAgICAgIGZvciBlbGVtIGluIG5vbnBvc2l0aXZlOgorICAgICAgICAgICAgZGVsIHNlbGZbZWxlbV0KKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2lhZGRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICcnJ0lucGxhY2UgYWRkIGZyb20gYW5vdGhlciBjb3VudGVyLCBrZWVwaW5nIG9ubHkgcG9zaXRpdmUgY291bnRzLgorCisgICAgICAgID4+PiBjID0gQ291bnRlcignYWJiYicpCisgICAgICAgID4+PiBjICs9IENvdW50ZXIoJ2JjYycpCisgICAgICAgID4+PiBjCisgICAgICAgIENvdW50ZXIoeydiJzogNCwgJ2MnOiAyLCAnYSc6IDF9KQorCisgICAgICAgICcnJworICAgICAgICBmb3IgZWxlbSwgY291bnQgaW4gb3RoZXIuaXRlbXMoKToKKyAgICAgICAgICAgIHNlbGZbZWxlbV0gKz0gY291bnQKKyAgICAgICAgcmV0dXJuIHNlbGYuX2tlZXBfcG9zaXRpdmUoKQorCisgICAgZGVmIF9faXN1Yl9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgJycnSW5wbGFjZSBzdWJ0cmFjdCBjb3VudGVyLCBidXQga2VlcCBvbmx5IHJlc3VsdHMgd2l0aCBwb3NpdGl2ZSBjb3VudHMuCisKKyAgICAgICAgPj4+IGMgPSBDb3VudGVyKCdhYmJiYycpCisgICAgICAgID4+PiBjIC09IENvdW50ZXIoJ2JjY2QnKQorICAgICAgICA+Pj4gYworICAgICAgICBDb3VudGVyKHsnYic6IDIsICdhJzogMX0pCisKKyAgICAgICAgJycnCisgICAgICAgIGZvciBlbGVtLCBjb3VudCBpbiBvdGhlci5pdGVtcygpOgorICAgICAgICAgICAgc2VsZltlbGVtXSAtPSBjb3VudAorICAgICAgICByZXR1cm4gc2VsZi5fa2VlcF9wb3NpdGl2ZSgpCisKKyAgICBkZWYgX19pb3JfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICcnJ0lucGxhY2UgdW5pb24gaXMgdGhlIG1heGltdW0gb2YgdmFsdWUgZnJvbSBlaXRoZXIgY291bnRlci4KKworICAgICAgICA+Pj4gYyA9IENvdW50ZXIoJ2FiYmInKQorICAgICAgICA+Pj4gYyB8PSBDb3VudGVyKCdiY2MnKQorICAgICAgICA+Pj4gYworICAgICAgICBDb3VudGVyKHsnYic6IDMsICdjJzogMiwgJ2EnOiAxfSkKKworICAgICAgICAnJycKKyAgICAgICAgZm9yIGVsZW0sIG90aGVyX2NvdW50IGluIG90aGVyLml0ZW1zKCk6CisgICAgICAgICAgICBjb3VudCA9IHNlbGZbZWxlbV0KKyAgICAgICAgICAgIGlmIG90aGVyX2NvdW50ID4gY291bnQ6CisgICAgICAgICAgICAgICAgc2VsZltlbGVtXSA9IG90aGVyX2NvdW50CisgICAgICAgIHJldHVybiBzZWxmLl9rZWVwX3Bvc2l0aXZlKCkKKworICAgIGRlZiBfX2lhbmRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICcnJ0lucGxhY2UgaW50ZXJzZWN0aW9uIGlzIHRoZSBtaW5pbXVtIG9mIGNvcnJlc3BvbmRpbmcgY291bnRzLgorCisgICAgICAgID4+PiBjID0gQ291bnRlcignYWJiYicpCisgICAgICAgID4+PiBjICY9IENvdW50ZXIoJ2JjYycpCisgICAgICAgID4+PiBjCisgICAgICAgIENvdW50ZXIoeydiJzogMX0pCisKKyAgICAgICAgJycnCisgICAgICAgIGZvciBlbGVtLCBjb3VudCBpbiBzZWxmLml0ZW1zKCk6CisgICAgICAgICAgICBvdGhlcl9jb3VudCA9IG90aGVyW2VsZW1dCisgICAgICAgICAgICBpZiBvdGhlcl9jb3VudCA8IGNvdW50OgorICAgICAgICAgICAgICAgIHNlbGZbZWxlbV0gPSBvdGhlcl9jb3VudAorICAgICAgICByZXR1cm4gc2VsZi5fa2VlcF9wb3NpdGl2ZSgpCisKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgIENoYWluTWFwIChoZWxwZXIgZm9yIGNvbmZpZ3BhcnNlcikKKyMjIyAgQ2hhaW5NYXAgKGhlbHBlciBmb3IgY29uZmlncGFyc2VyIGFuZCBzdHJpbmcuVGVtcGxhdGUpCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotY2xhc3MgX0NoYWluTWFwKE11dGFibGVNYXBwaW5nKToKK2NsYXNzIENoYWluTWFwKE11dGFibGVNYXBwaW5nKToKICAgICAnJycgQSBDaGFpbk1hcCBncm91cHMgbXVsdGlwbGUgZGljdHMgKG9yIG90aGVyIG1hcHBpbmdzKSB0b2dldGhlcgogICAgIHRvIGNyZWF0ZSBhIHNpbmdsZSwgdXBkYXRlYWJsZSB2aWV3LgogCkBAIC04OTAsNiArOTcxLDggQEAKICAgICBkZWYgaW5zZXJ0KHNlbGYsIGksIGl0ZW0pOiBzZWxmLmRhdGEuaW5zZXJ0KGksIGl0ZW0pCiAgICAgZGVmIHBvcChzZWxmLCBpPS0xKTogcmV0dXJuIHNlbGYuZGF0YS5wb3AoaSkKICAgICBkZWYgcmVtb3ZlKHNlbGYsIGl0ZW0pOiBzZWxmLmRhdGEucmVtb3ZlKGl0ZW0pCisgICAgZGVmIGNsZWFyKHNlbGYpOiBzZWxmLmRhdGEuY2xlYXIoKQorICAgIGRlZiBjb3B5KHNlbGYpOiByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZikKICAgICBkZWYgY291bnQoc2VsZiwgaXRlbSk6IHJldHVybiBzZWxmLmRhdGEuY291bnQoaXRlbSkKICAgICBkZWYgaW5kZXgoc2VsZiwgaXRlbSwgKmFyZ3MpOiByZXR1cm4gc2VsZi5kYXRhLmluZGV4KGl0ZW0sICphcmdzKQogICAgIGRlZiByZXZlcnNlKHNlbGYpOiBzZWxmLmRhdGEucmV2ZXJzZSgpCkBAIC0xMDM0LDcgKzExMTcsNyBAQAogICAgICAgICByZXR1cm4gc2VsZi5kYXRhLnNwbGl0KHNlcCwgbWF4c3BsaXQpCiAgICAgZGVmIHJzcGxpdChzZWxmLCBzZXA9Tm9uZSwgbWF4c3BsaXQ9LTEpOgogICAgICAgICByZXR1cm4gc2VsZi5kYXRhLnJzcGxpdChzZXAsIG1heHNwbGl0KQotICAgIGRlZiBzcGxpdGxpbmVzKHNlbGYsIGtlZXBlbmRzPTApOiByZXR1cm4gc2VsZi5kYXRhLnNwbGl0bGluZXMoa2VlcGVuZHMpCisgICAgZGVmIHNwbGl0bGluZXMoc2VsZiwga2VlcGVuZHM9RmFsc2UpOiByZXR1cm4gc2VsZi5kYXRhLnNwbGl0bGluZXMoa2VlcGVuZHMpCiAgICAgZGVmIHN0YXJ0c3dpdGgoc2VsZiwgcHJlZml4LCBzdGFydD0wLCBlbmQ9X3N5cy5tYXhzaXplKToKICAgICAgICAgcmV0dXJuIHNlbGYuZGF0YS5zdGFydHN3aXRoKHByZWZpeCwgc3RhcnQsIGVuZCkKICAgICBkZWYgc3RyaXAoc2VsZiwgY2hhcnM9Tm9uZSk6IHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLmRhdGEuc3RyaXAoY2hhcnMpKQpAQCAtMTA0NCw0NCArMTEyNywzIEBACiAgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLmRhdGEudHJhbnNsYXRlKCphcmdzKSkKICAgICBkZWYgdXBwZXIoc2VsZik6IHJldHVybiBzZWxmLl9fY2xhc3NfXyhzZWxmLmRhdGEudXBwZXIoKSkKICAgICBkZWYgemZpbGwoc2VsZiwgd2lkdGgpOiByZXR1cm4gc2VsZi5fX2NsYXNzX18oc2VsZi5kYXRhLnpmaWxsKHdpZHRoKSkKLQotCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIyMgU2ltcGxlIHRlc3RzCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICMgdmVyaWZ5IHRoYXQgaW5zdGFuY2VzIGNhbiBiZSBwaWNrbGVkCi0gICAgZnJvbSBwaWNrbGUgaW1wb3J0IGxvYWRzLCBkdW1wcwotICAgIFBvaW50ID0gbmFtZWR0dXBsZSgnUG9pbnQnLCAneCwgeScsIFRydWUpCi0gICAgcCA9IFBvaW50KHg9MTAsIHk9MjApCi0gICAgYXNzZXJ0IHAgPT0gbG9hZHMoZHVtcHMocCkpCi0KLSAgICAjIHRlc3QgYW5kIGRlbW9uc3RyYXRlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgbWV0aG9kcwotICAgIGNsYXNzIFBvaW50KG5hbWVkdHVwbGUoJ1BvaW50JywgJ3ggeScpKToKLSAgICAgICAgX19zbG90c19fID0gKCkKLSAgICAgICAgQHByb3BlcnR5Ci0gICAgICAgIGRlZiBoeXBvdChzZWxmKToKLSAgICAgICAgICAgIHJldHVybiAoc2VsZi54ICoqIDIgKyBzZWxmLnkgKiogMikgKiogMC41Ci0gICAgICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAgICAgICAgcmV0dXJuICdQb2ludDogeD0lNi4zZiAgeT0lNi4zZiAgaHlwb3Q9JTYuM2YnICUgKHNlbGYueCwgc2VsZi55LCBzZWxmLmh5cG90KQotCi0gICAgZm9yIHAgaW4gUG9pbnQoMywgNCksIFBvaW50KDE0LCA1LzcuKToKLSAgICAgICAgcHJpbnQgKHApCi0KLSAgICBjbGFzcyBQb2ludChuYW1lZHR1cGxlKCdQb2ludCcsICd4IHknKSk6Ci0gICAgICAgICdQb2ludCBjbGFzcyB3aXRoIG9wdGltaXplZCBfbWFrZSgpIGFuZCBfcmVwbGFjZSgpIHdpdGhvdXQgZXJyb3ItY2hlY2tpbmcnCi0gICAgICAgIF9fc2xvdHNfXyA9ICgpCi0gICAgICAgIF9tYWtlID0gY2xhc3NtZXRob2QodHVwbGUuX19uZXdfXykKLSAgICAgICAgZGVmIF9yZXBsYWNlKHNlbGYsIF9tYXA9bWFwLCAqKmt3ZHMpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX21ha2UoX21hcChrd2RzLmdldCwgKCd4JywgJ3knKSwgc2VsZikpCi0KLSAgICBwcmludChQb2ludCgxMSwgMjIpLl9yZXBsYWNlKHg9MTAwKSkKLQotICAgIFBvaW50M0QgPSBuYW1lZHR1cGxlKCdQb2ludDNEJywgUG9pbnQuX2ZpZWxkcyArICgneicsKSkKLSAgICBwcmludChQb2ludDNELl9fZG9jX18pCi0KLSAgICBpbXBvcnQgZG9jdGVzdAotICAgIFRlc3RSZXN1bHRzID0gbmFtZWR0dXBsZSgnVGVzdFJlc3VsdHMnLCAnZmFpbGVkIGF0dGVtcHRlZCcpCi0gICAgcHJpbnQoVGVzdFJlc3VsdHMoKmRvY3Rlc3QudGVzdG1vZCgpKSkKZGlmZiAtLWdpdCBhL0xpYi9jb2xsZWN0aW9ucy9fX21haW5fXy5weSBiL0xpYi9jb2xsZWN0aW9ucy9fX21haW5fXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjNlMzhlCi0tLSAvZGV2L251bGwKKysrIGIvTGliL2NvbGxlY3Rpb25zL19fbWFpbl9fLnB5CkBAIC0wLDAgKzEsMzggQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMgU2ltcGxlIHRlc3RzCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIHZlcmlmeSB0aGF0IGluc3RhbmNlcyBjYW4gYmUgcGlja2xlZAorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZQorZnJvbSBwaWNrbGUgaW1wb3J0IGxvYWRzLCBkdW1wcworUG9pbnQgPSBuYW1lZHR1cGxlKCdQb2ludCcsICd4LCB5JywgVHJ1ZSkKK3AgPSBQb2ludCh4PTEwLCB5PTIwKQorYXNzZXJ0IHAgPT0gbG9hZHMoZHVtcHMocCkpCisKKyMgdGVzdCBhbmQgZGVtb25zdHJhdGUgYWJpbGl0eSB0byBvdmVycmlkZSBtZXRob2RzCitjbGFzcyBQb2ludChuYW1lZHR1cGxlKCdQb2ludCcsICd4IHknKSk6CisgICAgX19zbG90c19fID0gKCkKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaHlwb3Qoc2VsZik6CisgICAgICAgIHJldHVybiAoc2VsZi54ICoqIDIgKyBzZWxmLnkgKiogMikgKiogMC41CisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAnUG9pbnQ6IHg9JTYuM2YgIHk9JTYuM2YgIGh5cG90PSU2LjNmJyAlIChzZWxmLngsIHNlbGYueSwgc2VsZi5oeXBvdCkKKworZm9yIHAgaW4gUG9pbnQoMywgNCksIFBvaW50KDE0LCA1LzcuKToKKyAgICBwcmludCAocCkKKworY2xhc3MgUG9pbnQobmFtZWR0dXBsZSgnUG9pbnQnLCAneCB5JykpOgorICAgICdQb2ludCBjbGFzcyB3aXRoIG9wdGltaXplZCBfbWFrZSgpIGFuZCBfcmVwbGFjZSgpIHdpdGhvdXQgZXJyb3ItY2hlY2tpbmcnCisgICAgX19zbG90c19fID0gKCkKKyAgICBfbWFrZSA9IGNsYXNzbWV0aG9kKHR1cGxlLl9fbmV3X18pCisgICAgZGVmIF9yZXBsYWNlKHNlbGYsIF9tYXA9bWFwLCAqKmt3ZHMpOgorICAgICAgICByZXR1cm4gc2VsZi5fbWFrZShfbWFwKGt3ZHMuZ2V0LCAoJ3gnLCAneScpLCBzZWxmKSkKKworcHJpbnQoUG9pbnQoMTEsIDIyKS5fcmVwbGFjZSh4PTEwMCkpCisKK1BvaW50M0QgPSBuYW1lZHR1cGxlKCdQb2ludDNEJywgUG9pbnQuX2ZpZWxkcyArICgneicsKSkKK3ByaW50KFBvaW50M0QuX19kb2NfXykKKworaW1wb3J0IGRvY3Rlc3QsIGNvbGxlY3Rpb25zCitUZXN0UmVzdWx0cyA9IG5hbWVkdHVwbGUoJ1Rlc3RSZXN1bHRzJywgJ2ZhaWxlZCBhdHRlbXB0ZWQnKQorcHJpbnQoVGVzdFJlc3VsdHMoKmRvY3Rlc3QudGVzdG1vZChjb2xsZWN0aW9ucykpKQpkaWZmIC0tZ2l0IGEvTGliL19hYmNvbGwucHkgYi9MaWIvY29sbGVjdGlvbnMvYWJjLnB5CnNpbWlsYXJpdHkgaW5kZXggOTQlCnJlbmFtZSBmcm9tIExpYi9fYWJjb2xsLnB5CnJlbmFtZSB0byBMaWIvY29sbGVjdGlvbnMvYWJjLnB5CmluZGV4IDI0MTdkMTguLmQxN2NmZGMgMTAwNjQ0Ci0tLSBhL0xpYi9fYWJjb2xsLnB5CisrKyBiL0xpYi9jb2xsZWN0aW9ucy9hYmMucHkKQEAgLTMsOSArMyw3IEBACiAKICIiIkFic3RyYWN0IEJhc2UgQ2xhc3NlcyAoQUJDcykgZm9yIGNvbGxlY3Rpb25zLCBhY2NvcmRpbmcgdG8gUEVQIDMxMTkuCiAKLURPTidUIFVTRSBUSElTIE1PRFVMRSBESVJFQ1RMWSEgIFRoZSBjbGFzc2VzIGhlcmUgc2hvdWxkIGJlIGltcG9ydGVkCi12aWEgY29sbGVjdGlvbnM7IHRoZXkgYXJlIGRlZmluZWQgaGVyZSBvbmx5IHRvIGFsbGV2aWF0ZSBjZXJ0YWluCi1ib290c3RyYXBwaW5nIGlzc3Vlcy4gIFVuaXQgdGVzdHMgYXJlIGluIHRlc3RfY29sbGVjdGlvbnMuCitVbml0IHRlc3RzIGFyZSBpbiB0ZXN0X2NvbGxlY3Rpb25zLgogIiIiCiAKIGZyb20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZApAQCAtMjAsOSArMTgsMTMgQEAKICAgICAgICAgICAgIkJ5dGVTdHJpbmciLAogICAgICAgICAgICBdCiAKLQotIyMjIGNvbGxlY3Rpb24gcmVsYXRlZCB0eXBlcyB3aGljaCBhcmUgbm90IGV4cG9zZWQgdGhyb3VnaCBidWlsdGluICMjIwotIyMgaXRlcmF0b3JzICMjCisjIFByaXZhdGUgbGlzdCBvZiB0eXBlcyB0aGF0IHdlIHdhbnQgdG8gcmVnaXN0ZXIgd2l0aCB0aGUgdmFyaW91cyBBQkNzCisjIHNvIHRoYXQgdGhleSB3aWxsIHBhc3MgdGVzdHMgbGlrZToKKyMgICAgICAgaXQgPSBpdGVyKHNvbWVieXRlYXJyYXkpCisjICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGl0LCBJdGVyYWJsZSkKKyMgTm90ZTogIGluIG90aGVyIGltcGxlbWVudGF0aW9ucywgdGhlc2UgdHlwZXMgbWFueSBub3QgYmUgZGlzdGluY3QKKyMgYW5kIHRoZXkgbWFrZSBoYXZlIHRoZWlyIG93biBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyB0eXBlcyB0aGF0CisjIGFyZSBub3QgaW5jbHVkZWQgb24gdGhpcyBsaXN0LgogYnl0ZXNfaXRlcmF0b3IgPSB0eXBlKGl0ZXIoYicnKSkKIGJ5dGVhcnJheV9pdGVyYXRvciA9IHR5cGUoaXRlcihieXRlYXJyYXkoKSkpCiAjY2FsbGFibGVfaXRlcmF0b3IgPSA/Pz8KQEAgLTQxLDEzICs0MywxNSBAQAogZGljdF92YWx1ZXMgPSB0eXBlKHt9LnZhbHVlcygpKQogZGljdF9pdGVtcyA9IHR5cGUoe30uaXRlbXMoKSkKICMjIG1pc2MgIyMKLWRpY3RfcHJveHkgPSB0eXBlKHR5cGUuX19kaWN0X18pCittYXBwaW5ncHJveHkgPSB0eXBlKHR5cGUuX19kaWN0X18pCiAKIAogIyMjIE9ORS1UUklDSyBQT05JRVMgIyMjCiAKIGNsYXNzIEhhc2hhYmxlKG1ldGFjbGFzcz1BQkNNZXRhKToKIAorICAgIF9fc2xvdHNfXyA9ICgpCisKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgX19oYXNoX18oc2VsZik6CiAgICAgICAgIHJldHVybiAwCkBAIC02NSw2ICs2OSw4IEBACiAKIGNsYXNzIEl0ZXJhYmxlKG1ldGFjbGFzcz1BQkNNZXRhKToKIAorICAgIF9fc2xvdHNfXyA9ICgpCisKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgX19pdGVyX18oc2VsZik6CiAgICAgICAgIHdoaWxlIEZhbHNlOgpAQCAtODAsNiArODYsOCBAQAogCiBjbGFzcyBJdGVyYXRvcihJdGVyYWJsZSk6CiAKKyAgICBfX3Nsb3RzX18gPSAoKQorCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVmIF9fbmV4dF9fKHNlbGYpOgogICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCkBAIC0xMTEsNiArMTE5LDggQEAKIAogY2xhc3MgU2l6ZWQobWV0YWNsYXNzPUFCQ01ldGEpOgogCisgICAgX19zbG90c19fID0gKCkKKwogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBfX2xlbl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gMApAQCAtMTI1LDYgKzEzNSw4IEBACiAKIGNsYXNzIENvbnRhaW5lcihtZXRhY2xhc3M9QUJDTWV0YSk6CiAKKyAgICBfX3Nsb3RzX18gPSAoKQorCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCB4KToKICAgICAgICAgcmV0dXJuIEZhbHNlCkBAIC0xMzksNiArMTUxLDggQEAKIAogY2xhc3MgQ2FsbGFibGUobWV0YWNsYXNzPUFCQ01ldGEpOgogCisgICAgX19zbG90c19fID0gKCkKKwogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2RzKToKICAgICAgICAgcmV0dXJuIEZhbHNlCkBAIC0xNjYsNiArMTgwLDggQEAKICAgICB0aGVuIHRoZSBvdGhlciBvcGVyYXRpb25zIHdpbGwgYXV0b21hdGljYWxseSBmb2xsb3cgc3VpdC4KICAgICAiIiIKIAorICAgIF9fc2xvdHNfXyA9ICgpCisKICAgICBkZWYgX19sZV9fKHNlbGYsIG90aGVyKToKICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIFNldCk6CiAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKQEAgLTI3Nyw2ICsyOTMsOCBAQAogCiBjbGFzcyBNdXRhYmxlU2V0KFNldCk6CiAKKyAgICBfX3Nsb3RzX18gPSAoKQorCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVmIGFkZChzZWxmLCB2YWx1ZSk6CiAgICAgICAgICIiIkFkZCBhbiBlbGVtZW50LiIiIgpAQCAtMzUwLDYgKzM2OCw4IEBACiAKIGNsYXNzIE1hcHBpbmcoU2l6ZWQsIEl0ZXJhYmxlLCBDb250YWluZXIpOgogCisgICAgX19zbG90c19fID0gKCkKKwogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgogICAgICAgICByYWlzZSBLZXlFcnJvcgpAQCAtMzg1LDYgKzQwNSw4IEBACiAgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CiAgICAgICAgIHJldHVybiBub3QgKHNlbGYgPT0gb3RoZXIpCiAKK01hcHBpbmcucmVnaXN0ZXIobWFwcGluZ3Byb3h5KQorCiAKIGNsYXNzIE1hcHBpbmdWaWV3KFNpemVkKToKIApAQCAtNDUzLDYgKzQ3NSw4IEBACiAKIGNsYXNzIE11dGFibGVNYXBwaW5nKE1hcHBpbmcpOgogCisgICAgX19zbG90c19fID0gKCkKKwogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToKICAgICAgICAgcmFpc2UgS2V5RXJyb3IKQEAgLTUzMiw2ICs1NTYsOCBAQAogICAgIF9fZ2V0aXRlbV9fLCBhbmQgX19sZW5fXy4KICAgICAiIiIKIAorICAgIF9fc2xvdHNfXyA9ICgpCisKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgaW5kZXgpOgogICAgICAgICByYWlzZSBJbmRleEVycm9yCkBAIC01NzcsMTIgKzYwMywxNiBAQAogICAgIFhYWCBTaG91bGQgYWRkIGFsbCB0aGVpciBtZXRob2RzLgogICAgICIiIgogCisgICAgX19zbG90c19fID0gKCkKKwogQnl0ZVN0cmluZy5yZWdpc3RlcihieXRlcykKIEJ5dGVTdHJpbmcucmVnaXN0ZXIoYnl0ZWFycmF5KQogCiAKIGNsYXNzIE11dGFibGVTZXF1ZW5jZShTZXF1ZW5jZSk6CiAKKyAgICBfX3Nsb3RzX18gPSAoKQorCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGluZGV4LCB2YWx1ZSk6CiAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IKQEAgLTU5OCw2ICs2MjgsMTMgQEAKICAgICBkZWYgYXBwZW5kKHNlbGYsIHZhbHVlKToKICAgICAgICAgc2VsZi5pbnNlcnQobGVuKHNlbGYpLCB2YWx1ZSkKIAorICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICBzZWxmLnBvcCgpCisgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yOgorICAgICAgICAgICAgcGFzcworCiAgICAgZGVmIHJldmVyc2Uoc2VsZik6CiAgICAgICAgIG4gPSBsZW4oc2VsZikKICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uobi8vMik6CmRpZmYgLS1naXQgYS9MaWIvY29uY3VycmVudC9mdXR1cmVzL19iYXNlLnB5IGIvTGliL2NvbmN1cnJlbnQvZnV0dXJlcy9fYmFzZS5weQppbmRleCA5ZjExZjY5Li4xZTA5OGJlIDEwMDY0NAotLS0gYS9MaWIvY29uY3VycmVudC9mdXR1cmVzL19iYXNlLnB5CisrKyBiL0xpYi9jb25jdXJyZW50L2Z1dHVyZXMvX2Jhc2UucHkKQEAgLTQsNyArNCw2IEBACiBfX2F1dGhvcl9fID0gJ0JyaWFuIFF1aW5sYW4gKGJyaWFuQHN3ZWV0YXBwLmNvbSknCiAKIGltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IGZ1bmN0b29scwogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCB0aHJlYWRpbmcKIGltcG9ydCB0aW1lCkBAIC00NzEsOCArNDcwLDggQEAKICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBMT0dHRVIuY3JpdGljYWwoJ0Z1dHVyZSAlcyBpbiB1bmV4cGVjdGVkIHN0YXRlOiAlcycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkKHNlbGYuZnV0dXJlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdXR1cmUuX3N0YXRlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZChzZWxmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc3RhdGUpCiAgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdGdXR1cmUgaW4gdW5leHBlY3RlZCBzdGF0ZScpCiAKICAgICBkZWYgc2V0X3Jlc3VsdChzZWxmLCByZXN1bHQpOgpAQCAtNTM4LDE1ICs1MzcsMTkgQEAKIAogICAgICAgICBmcyA9IFtzZWxmLnN1Ym1pdChmbiwgKmFyZ3MpIGZvciBhcmdzIGluIHppcCgqaXRlcmFibGVzKV0KIAotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmb3IgZnV0dXJlIGluIGZzOgotICAgICAgICAgICAgICAgIGlmIHRpbWVvdXQgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgZnV0dXJlLnJlc3VsdCgpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgZnV0dXJlLnJlc3VsdChlbmRfdGltZSAtIHRpbWUudGltZSgpKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZm9yIGZ1dHVyZSBpbiBmczoKLSAgICAgICAgICAgICAgICBmdXR1cmUuY2FuY2VsKCkKKyAgICAgICAgIyBZaWVsZCBtdXN0IGJlIGhpZGRlbiBpbiBjbG9zdXJlIHNvIHRoYXQgdGhlIGZ1dHVyZXMgYXJlIHN1Ym1pdHRlZAorICAgICAgICAjIGJlZm9yZSB0aGUgZmlyc3QgaXRlcmF0b3IgdmFsdWUgaXMgcmVxdWlyZWQuCisgICAgICAgIGRlZiByZXN1bHRfaXRlcmF0b3IoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBmb3IgZnV0dXJlIGluIGZzOgorICAgICAgICAgICAgICAgICAgICBpZiB0aW1lb3V0IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCBmdXR1cmUucmVzdWx0KCkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIGZ1dHVyZS5yZXN1bHQoZW5kX3RpbWUgLSB0aW1lLnRpbWUoKSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgZm9yIGZ1dHVyZSBpbiBmczoKKyAgICAgICAgICAgICAgICAgICAgZnV0dXJlLmNhbmNlbCgpCisgICAgICAgIHJldHVybiByZXN1bHRfaXRlcmF0b3IoKQogCiAgICAgZGVmIHNodXRkb3duKHNlbGYsIHdhaXQ9VHJ1ZSk6CiAgICAgICAgICIiIkNsZWFuLXVwIHRoZSByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBFeGVjdXRvci4KZGlmZiAtLWdpdCBhL0xpYi9jb25jdXJyZW50L2Z1dHVyZXMvcHJvY2Vzcy5weSBiL0xpYi9jb25jdXJyZW50L2Z1dHVyZXMvcHJvY2Vzcy5weQppbmRleCBkM2JiZTJjLi4wNDIzOGE3IDEwMDY0NAotLS0gYS9MaWIvY29uY3VycmVudC9mdXR1cmVzL3Byb2Nlc3MucHkKKysrIGIvTGliL2NvbmN1cnJlbnQvZnV0dXJlcy9wcm9jZXNzLnB5CkBAIC00Niw5ICs0NiwxMiBAQAogX19hdXRob3JfXyA9ICdCcmlhbiBRdWlubGFuIChicmlhbkBzd2VldGFwcC5jb20pJwogCiBpbXBvcnQgYXRleGl0CitpbXBvcnQgb3MKIGZyb20gY29uY3VycmVudC5mdXR1cmVzIGltcG9ydCBfYmFzZQogaW1wb3J0IHF1ZXVlCiBpbXBvcnQgbXVsdGlwcm9jZXNzaW5nCitmcm9tIG11bHRpcHJvY2Vzc2luZy5xdWV1ZXMgaW1wb3J0IFNpbXBsZVF1ZXVlLCBGdWxsCitmcm9tIG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uIGltcG9ydCB3YWl0CiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgd2Vha3JlZgogCkBAIC0xMjEsNyArMTI0LDcgQEAKICAgICAgICAgY2FsbF9pdGVtID0gY2FsbF9xdWV1ZS5nZXQoYmxvY2s9VHJ1ZSkKICAgICAgICAgaWYgY2FsbF9pdGVtIGlzIE5vbmU6CiAgICAgICAgICAgICAjIFdha2UgdXAgcXVldWUgbWFuYWdlbWVudCB0aHJlYWQKLSAgICAgICAgICAgIHJlc3VsdF9xdWV1ZS5wdXQoTm9uZSkKKyAgICAgICAgICAgIHJlc3VsdF9xdWV1ZS5wdXQob3MuZ2V0cGlkKCkpCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgdHJ5OgogICAgICAgICAgICAgciA9IGNhbGxfaXRlbS5mbigqY2FsbF9pdGVtLmFyZ3MsICoqY2FsbF9pdGVtLmt3YXJncykKQEAgLTE5Myw0NiArMTk2LDkyIEBACiAgICAgICAgIHJlc3VsdF9xdWV1ZTogQSBtdWx0aXByb2Nlc3NpbmcuUXVldWUgb2YgX1Jlc3VsdEl0ZW1zIGdlbmVyYXRlZCBieSB0aGUKICAgICAgICAgICAgIHByb2Nlc3Mgd29ya2Vycy4KICAgICAiIiIKLSAgICBuYl9zaHV0ZG93bl9wcm9jZXNzZXMgPSAwCi0gICAgZGVmIHNodXRkb3duX29uZV9wcm9jZXNzKCk6Ci0gICAgICAgICIiIlRlbGwgYSB3b3JrZXIgdG8gdGVybWluYXRlLCB3aGljaCB3aWxsIGluIHR1cm4gd2FrZSB1cyBhZ2FpbiIiIgotICAgICAgICBub25sb2NhbCBuYl9zaHV0ZG93bl9wcm9jZXNzZXMKLSAgICAgICAgY2FsbF9xdWV1ZS5wdXQoTm9uZSkKLSAgICAgICAgbmJfc2h1dGRvd25fcHJvY2Vzc2VzICs9IDEKKyAgICBleGVjdXRvciA9IE5vbmUKKworICAgIGRlZiBzaHV0dGluZ19kb3duKCk6CisgICAgICAgIHJldHVybiBfc2h1dGRvd24gb3IgZXhlY3V0b3IgaXMgTm9uZSBvciBleGVjdXRvci5fc2h1dGRvd25fdGhyZWFkCisKKyAgICBkZWYgc2h1dGRvd25fd29ya2VyKCk6CisgICAgICAgICMgVGhpcyBpcyBhbiB1cHBlciBib3VuZAorICAgICAgICBuYl9jaGlsZHJlbl9hbGl2ZSA9IHN1bShwLmlzX2FsaXZlKCkgZm9yIHAgaW4gcHJvY2Vzc2VzLnZhbHVlcygpKQorICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBuYl9jaGlsZHJlbl9hbGl2ZSk6CisgICAgICAgICAgICBjYWxsX3F1ZXVlLnB1dF9ub3dhaXQoTm9uZSkKKyAgICAgICAgIyBSZWxlYXNlIHRoZSBxdWV1ZSdzIHJlc291cmNlcyBhcyBzb29uIGFzIHBvc3NpYmxlLgorICAgICAgICBjYWxsX3F1ZXVlLmNsb3NlKCkKKyAgICAgICAgIyBJZiAuam9pbigpIGlzIG5vdCBjYWxsZWQgb24gdGhlIGNyZWF0ZWQgcHJvY2Vzc2VzIHRoZW4KKyAgICAgICAgIyBzb21lIG11bHRpcHJvY2Vzc2luZy5RdWV1ZSBtZXRob2RzIG1heSBkZWFkbG9jayBvbiBNYWMgT1MgWC4KKyAgICAgICAgZm9yIHAgaW4gcHJvY2Vzc2VzLnZhbHVlcygpOgorICAgICAgICAgICAgcC5qb2luKCkKKworICAgIHJlYWRlciA9IHJlc3VsdF9xdWV1ZS5fcmVhZGVyCisKICAgICB3aGlsZSBUcnVlOgogICAgICAgICBfYWRkX2NhbGxfaXRlbV90b19xdWV1ZShwZW5kaW5nX3dvcmtfaXRlbXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtfaWRzX3F1ZXVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsX3F1ZXVlKQogCi0gICAgICAgIHJlc3VsdF9pdGVtID0gcmVzdWx0X3F1ZXVlLmdldChibG9jaz1UcnVlKQotICAgICAgICBpZiByZXN1bHRfaXRlbSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHdvcmtfaXRlbSA9IHBlbmRpbmdfd29ya19pdGVtc1tyZXN1bHRfaXRlbS53b3JrX2lkXQotICAgICAgICAgICAgZGVsIHBlbmRpbmdfd29ya19pdGVtc1tyZXN1bHRfaXRlbS53b3JrX2lkXQotCi0gICAgICAgICAgICBpZiByZXN1bHRfaXRlbS5leGNlcHRpb246Ci0gICAgICAgICAgICAgICAgd29ya19pdGVtLmZ1dHVyZS5zZXRfZXhjZXB0aW9uKHJlc3VsdF9pdGVtLmV4Y2VwdGlvbikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgd29ya19pdGVtLmZ1dHVyZS5zZXRfcmVzdWx0KHJlc3VsdF9pdGVtLnJlc3VsdCkKKyAgICAgICAgc2VudGluZWxzID0gW3Auc2VudGluZWwgZm9yIHAgaW4gcHJvY2Vzc2VzLnZhbHVlcygpXQorICAgICAgICBhc3NlcnQgc2VudGluZWxzCisgICAgICAgIHJlYWR5ID0gd2FpdChbcmVhZGVyXSArIHNlbnRpbmVscykKKyAgICAgICAgaWYgcmVhZGVyIGluIHJlYWR5OgorICAgICAgICAgICAgcmVzdWx0X2l0ZW0gPSByZWFkZXIucmVjdigpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIE1hcmsgdGhlIHByb2Nlc3MgcG9vbCBicm9rZW4gc28gdGhhdCBzdWJtaXRzIGZhaWwgcmlnaHQgbm93LgorICAgICAgICAgICAgZXhlY3V0b3IgPSBleGVjdXRvcl9yZWZlcmVuY2UoKQorICAgICAgICAgICAgaWYgZXhlY3V0b3IgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgZXhlY3V0b3IuX2Jyb2tlbiA9IFRydWUKKyAgICAgICAgICAgICAgICBleGVjdXRvci5fc2h1dGRvd25fdGhyZWFkID0gVHJ1ZQorICAgICAgICAgICAgICAgIGV4ZWN1dG9yID0gTm9uZQorICAgICAgICAgICAgIyBBbGwgZnV0dXJlcyBpbiBmbGlnaHQgbXVzdCBiZSBtYXJrZWQgZmFpbGVkCisgICAgICAgICAgICBmb3Igd29ya19pZCwgd29ya19pdGVtIGluIHBlbmRpbmdfd29ya19pdGVtcy5pdGVtcygpOgorICAgICAgICAgICAgICAgIHdvcmtfaXRlbS5mdXR1cmUuc2V0X2V4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgQnJva2VuUHJvY2Vzc1Bvb2woCisgICAgICAgICAgICAgICAgICAgICAgICAiQSBwcm9jZXNzIGluIHRoZSBwcm9jZXNzIHBvb2wgd2FzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXJtaW5hdGVkIGFicnVwdGx5IHdoaWxlIHRoZSBmdXR1cmUgd2FzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJydW5uaW5nIG9yIHBlbmRpbmcuIgorICAgICAgICAgICAgICAgICAgICApKQorICAgICAgICAgICAgcGVuZGluZ193b3JrX2l0ZW1zLmNsZWFyKCkKKyAgICAgICAgICAgICMgVGVybWluYXRlIHJlbWFpbmluZyB3b3JrZXJzIGZvcmNpYmx5OiB0aGUgcXVldWVzIG9yIHRoZWlyCisgICAgICAgICAgICAjIGxvY2tzIG1heSBiZSBpbiBhIGRpcnR5IHN0YXRlIGFuZCBibG9jayBmb3JldmVyLgorICAgICAgICAgICAgZm9yIHAgaW4gcHJvY2Vzc2VzLnZhbHVlcygpOgorICAgICAgICAgICAgICAgIHAudGVybWluYXRlKCkKKyAgICAgICAgICAgIHNodXRkb3duX3dvcmtlcigpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgaXNpbnN0YW5jZShyZXN1bHRfaXRlbSwgaW50KToKKyAgICAgICAgICAgICMgQ2xlYW4gc2h1dGRvd24gb2YgYSB3b3JrZXIgdXNpbmcgaXRzIFBJRAorICAgICAgICAgICAgIyAoYXZvaWRzIG1hcmtpbmcgdGhlIGV4ZWN1dG9yIGJyb2tlbikKKyAgICAgICAgICAgIGFzc2VydCBzaHV0dGluZ19kb3duKCkKKyAgICAgICAgICAgIHAgPSBwcm9jZXNzZXMucG9wKHJlc3VsdF9pdGVtKQorICAgICAgICAgICAgcC5qb2luKCkKKyAgICAgICAgICAgIGlmIG5vdCBwcm9jZXNzZXM6CisgICAgICAgICAgICAgICAgc2h1dGRvd25fd29ya2VyKCkKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZWxpZiByZXN1bHRfaXRlbSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHdvcmtfaXRlbSA9IHBlbmRpbmdfd29ya19pdGVtcy5wb3AocmVzdWx0X2l0ZW0ud29ya19pZCwgTm9uZSkKKyAgICAgICAgICAgICMgd29ya19pdGVtIGNhbiBiZSBOb25lIGlmIGFub3RoZXIgcHJvY2VzcyB0ZXJtaW5hdGVkIChzZWUgYWJvdmUpCisgICAgICAgICAgICBpZiB3b3JrX2l0ZW0gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgcmVzdWx0X2l0ZW0uZXhjZXB0aW9uOgorICAgICAgICAgICAgICAgICAgICB3b3JrX2l0ZW0uZnV0dXJlLnNldF9leGNlcHRpb24ocmVzdWx0X2l0ZW0uZXhjZXB0aW9uKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHdvcmtfaXRlbS5mdXR1cmUuc2V0X3Jlc3VsdChyZXN1bHRfaXRlbS5yZXN1bHQpCiAgICAgICAgICMgQ2hlY2sgd2hldGhlciB3ZSBzaG91bGQgc3RhcnQgc2h1dHRpbmcgZG93bi4KICAgICAgICAgZXhlY3V0b3IgPSBleGVjdXRvcl9yZWZlcmVuY2UoKQogICAgICAgICAjIE5vIG1vcmUgd29yayBpdGVtcyBjYW4gYmUgYWRkZWQgaWY6CiAgICAgICAgICMgICAtIFRoZSBpbnRlcnByZXRlciBpcyBzaHV0dGluZyBkb3duIE9SCiAgICAgICAgICMgICAtIFRoZSBleGVjdXRvciB0aGF0IG93bnMgdGhpcyB3b3JrZXIgaGFzIGJlZW4gY29sbGVjdGVkIE9SCiAgICAgICAgICMgICAtIFRoZSBleGVjdXRvciB0aGF0IG93bnMgdGhpcyB3b3JrZXIgaGFzIGJlZW4gc2h1dGRvd24uCi0gICAgICAgIGlmIF9zaHV0ZG93biBvciBleGVjdXRvciBpcyBOb25lIG9yIGV4ZWN1dG9yLl9zaHV0ZG93bl90aHJlYWQ6Ci0gICAgICAgICAgICAjIFNpbmNlIG5vIG5ldyB3b3JrIGl0ZW1zIGNhbiBiZSBhZGRlZCwgaXQgaXMgc2FmZSB0byBzaHV0ZG93bgotICAgICAgICAgICAgIyB0aGlzIHRocmVhZCBpZiB0aGVyZSBhcmUgbm8gcGVuZGluZyB3b3JrIGl0ZW1zLgotICAgICAgICAgICAgaWYgbm90IHBlbmRpbmdfd29ya19pdGVtczoKLSAgICAgICAgICAgICAgICB3aGlsZSBuYl9zaHV0ZG93bl9wcm9jZXNzZXMgPCBsZW4ocHJvY2Vzc2VzKToKLSAgICAgICAgICAgICAgICAgICAgc2h1dGRvd25fb25lX3Byb2Nlc3MoKQotICAgICAgICAgICAgICAgICMgSWYgLmpvaW4oKSBpcyBub3QgY2FsbGVkIG9uIHRoZSBjcmVhdGVkIHByb2Nlc3NlcyB0aGVuCi0gICAgICAgICAgICAgICAgIyBzb21lIG11bHRpcHJvY2Vzc2luZy5RdWV1ZSBtZXRob2RzIG1heSBkZWFkbG9jayBvbiBNYWMgT1MKLSAgICAgICAgICAgICAgICAjIFguCi0gICAgICAgICAgICAgICAgZm9yIHAgaW4gcHJvY2Vzc2VzOgotICAgICAgICAgICAgICAgICAgICBwLmpvaW4oKQotICAgICAgICAgICAgICAgIGNhbGxfcXVldWUuY2xvc2UoKQotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICBkZWwgZXhlY3V0b3IKKyAgICAgICAgaWYgc2h1dHRpbmdfZG93bigpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICMgU2luY2Ugbm8gbmV3IHdvcmsgaXRlbXMgY2FuIGJlIGFkZGVkLCBpdCBpcyBzYWZlIHRvIHNodXRkb3duCisgICAgICAgICAgICAgICAgIyB0aGlzIHRocmVhZCBpZiB0aGVyZSBhcmUgbm8gcGVuZGluZyB3b3JrIGl0ZW1zLgorICAgICAgICAgICAgICAgIGlmIG5vdCBwZW5kaW5nX3dvcmtfaXRlbXM6CisgICAgICAgICAgICAgICAgICAgIHNodXRkb3duX3dvcmtlcigpCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgZXhjZXB0IEZ1bGw6CisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIG5vdCBhIHByb2JsZW06IHdlIHdpbGwgZXZlbnR1YWxseSBiZSB3b2tlbiB1cCAoaW4KKyAgICAgICAgICAgICAgICAjIHJlc3VsdF9xdWV1ZS5nZXQoKSkgYW5kIGJlIGFibGUgdG8gc2VuZCBhIHNlbnRpbmVsIGFnYWluLgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZXhlY3V0b3IgPSBOb25lCiAKIF9zeXN0ZW1fbGltaXRzX2NoZWNrZWQgPSBGYWxzZQogX3N5c3RlbV9saW1pdGVkID0gTm9uZQpAQCAtMjQzLDcgKzI5Miw2IEBACiAgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKF9zeXN0ZW1fbGltaXRlZCkKICAgICBfc3lzdGVtX2xpbWl0c19jaGVja2VkID0gVHJ1ZQogICAgIHRyeToKLSAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgIG5zZW1zX21heCA9IG9zLnN5c2NvbmYoIlNDX1NFTV9OU0VNU19NQVgiKQogICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIFZhbHVlRXJyb3IpOgogICAgICAgICAjIHN5c2NvbmYgbm90IGF2YWlsYWJsZSBvciBzZXR0aW5nIG5vdCBhdmFpbGFibGUKQEAgLTI1OSw2ICszMDcsMTQgQEAKICAgICBfc3lzdGVtX2xpbWl0ZWQgPSAic3lzdGVtIHByb3ZpZGVzIHRvbyBmZXcgc2VtYXBob3JlcyAoJWQgYXZhaWxhYmxlLCAyNTYgbmVjZXNzYXJ5KSIgJSBuc2Vtc19tYXgKICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKF9zeXN0ZW1fbGltaXRlZCkKIAorCitjbGFzcyBCcm9rZW5Qcm9jZXNzUG9vbChSdW50aW1lRXJyb3IpOgorICAgICIiIgorICAgIFJhaXNlZCB3aGVuIGEgcHJvY2VzcyBpbiBhIFByb2Nlc3NQb29sRXhlY3V0b3IgdGVybWluYXRlZCBhYnJ1cHRseQorICAgIHdoaWxlIGEgZnV0dXJlIHdhcyBpbiB0aGUgcnVubmluZyBzdGF0ZS4KKyAgICAiIiIKKworCiBjbGFzcyBQcm9jZXNzUG9vbEV4ZWN1dG9yKF9iYXNlLkV4ZWN1dG9yKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbWF4X3dvcmtlcnM9Tm9uZSk6CiAgICAgICAgICIiIkluaXRpYWxpemVzIGEgbmV3IFByb2Nlc3NQb29sRXhlY3V0b3IgaW5zdGFuY2UuCkBAIC0yODAsMTQgKzMzNiwyMCBAQAogICAgICAgICAjIGJlY2F1c2UgZnV0dXJlcyBpbiB0aGUgY2FsbCBxdWV1ZSBjYW5ub3QgYmUgY2FuY2VsbGVkLgogICAgICAgICBzZWxmLl9jYWxsX3F1ZXVlID0gbXVsdGlwcm9jZXNzaW5nLlF1ZXVlKHNlbGYuX21heF93b3JrZXJzICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWFRSQV9RVUVVRURfQ0FMTFMpCi0gICAgICAgIHNlbGYuX3Jlc3VsdF9xdWV1ZSA9IG11bHRpcHJvY2Vzc2luZy5RdWV1ZSgpCisgICAgICAgICMgS2lsbGVkIHdvcmtlciBwcm9jZXNzZXMgY2FuIHByb2R1Y2Ugc3B1cmlvdXMgImJyb2tlbiBwaXBlIgorICAgICAgICAjIHRyYWNlYmFja3MgaW4gdGhlIHF1ZXVlJ3Mgb3duIHdvcmtlciB0aHJlYWQuIEJ1dCB3ZSBkZXRlY3Qga2lsbGVkCisgICAgICAgICMgcHJvY2Vzc2VzIGFueXdheSwgc28gc2lsZW5jZSB0aGUgdHJhY2ViYWNrcy4KKyAgICAgICAgc2VsZi5fY2FsbF9xdWV1ZS5faWdub3JlX2VwaXBlID0gVHJ1ZQorICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUgPSBTaW1wbGVRdWV1ZSgpCiAgICAgICAgIHNlbGYuX3dvcmtfaWRzID0gcXVldWUuUXVldWUoKQogICAgICAgICBzZWxmLl9xdWV1ZV9tYW5hZ2VtZW50X3RocmVhZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fcHJvY2Vzc2VzID0gc2V0KCkKKyAgICAgICAgIyBNYXAgb2YgcGlkcyB0byBwcm9jZXNzZXMKKyAgICAgICAgc2VsZi5fcHJvY2Vzc2VzID0ge30KIAogICAgICAgICAjIFNodXRkb3duIGlzIGEgdHdvLXN0ZXAgcHJvY2Vzcy4KICAgICAgICAgc2VsZi5fc2h1dGRvd25fdGhyZWFkID0gRmFsc2UKICAgICAgICAgc2VsZi5fc2h1dGRvd25fbG9jayA9IHRocmVhZGluZy5Mb2NrKCkKKyAgICAgICAgc2VsZi5fYnJva2VuID0gRmFsc2UKICAgICAgICAgc2VsZi5fcXVldWVfY291bnQgPSAwCiAgICAgICAgIHNlbGYuX3BlbmRpbmdfd29ya19pdGVtcyA9IHt9CiAKQEAgLTI5Nyw2ICszNTksOCBAQAogICAgICAgICBkZWYgd2Vha3JlZl9jYihfLCBxPXNlbGYuX3Jlc3VsdF9xdWV1ZSk6CiAgICAgICAgICAgICBxLnB1dChOb25lKQogICAgICAgICBpZiBzZWxmLl9xdWV1ZV9tYW5hZ2VtZW50X3RocmVhZCBpcyBOb25lOgorICAgICAgICAgICAgIyBTdGFydCB0aGUgcHJvY2Vzc2VzIHNvIHRoYXQgdGhlaXIgc2VudGluZWxzIGFyZSBrbm93bi4KKyAgICAgICAgICAgIHNlbGYuX2FkanVzdF9wcm9jZXNzX2NvdW50KCkKICAgICAgICAgICAgIHNlbGYuX3F1ZXVlX21hbmFnZW1lbnRfdGhyZWFkID0gdGhyZWFkaW5nLlRocmVhZCgKICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PV9xdWV1ZV9tYW5hZ2VtZW50X3dvcmtlciwKICAgICAgICAgICAgICAgICAgICAgYXJncz0od2Vha3JlZi5yZWYoc2VsZiwgd2Vha3JlZl9jYiksCkBAIC0zMTYsMTAgKzM4MCwxMyBAQAogICAgICAgICAgICAgICAgICAgICBhcmdzPShzZWxmLl9jYWxsX3F1ZXVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUpKQogICAgICAgICAgICAgcC5zdGFydCgpCi0gICAgICAgICAgICBzZWxmLl9wcm9jZXNzZXMuYWRkKHApCisgICAgICAgICAgICBzZWxmLl9wcm9jZXNzZXNbcC5waWRdID0gcAogCiAgICAgZGVmIHN1Ym1pdChzZWxmLCBmbiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgd2l0aCBzZWxmLl9zaHV0ZG93bl9sb2NrOgorICAgICAgICAgICAgaWYgc2VsZi5fYnJva2VuOgorICAgICAgICAgICAgICAgIHJhaXNlIEJyb2tlblByb2Nlc3NQb29sKCdBIGNoaWxkIHByb2Nlc3MgdGVybWluYXRlZCAnCisgICAgICAgICAgICAgICAgICAgICdhYnJ1cHRseSwgdGhlIHByb2Nlc3MgcG9vbCBpcyBub3QgdXNhYmxlIGFueW1vcmUnKQogICAgICAgICAgICAgaWYgc2VsZi5fc2h1dGRvd25fdGhyZWFkOgogICAgICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignY2Fubm90IHNjaGVkdWxlIG5ldyBmdXR1cmVzIGFmdGVyIHNodXRkb3duJykKIApAQCAtMzMzLDcgKzQwMCw2IEBACiAgICAgICAgICAgICBzZWxmLl9yZXN1bHRfcXVldWUucHV0KE5vbmUpCiAKICAgICAgICAgICAgIHNlbGYuX3N0YXJ0X3F1ZXVlX21hbmFnZW1lbnRfdGhyZWFkKCkKLSAgICAgICAgICAgIHNlbGYuX2FkanVzdF9wcm9jZXNzX2NvdW50KCkKICAgICAgICAgICAgIHJldHVybiBmCiAgICAgc3VibWl0Ll9fZG9jX18gPSBfYmFzZS5FeGVjdXRvci5zdWJtaXQuX19kb2NfXwogCmRpZmYgLS1naXQgYS9MaWIvY29uY3VycmVudC9mdXR1cmVzL3RocmVhZC5weSBiL0xpYi9jb25jdXJyZW50L2Z1dHVyZXMvdGhyZWFkLnB5CmluZGV4IGZiYWMwODguLjk1YmI2ODIgMTAwNjQ0Ci0tLSBhL0xpYi9jb25jdXJyZW50L2Z1dHVyZXMvdGhyZWFkLnB5CisrKyBiL0xpYi9jb25jdXJyZW50L2Z1dHVyZXMvdGhyZWFkLnB5CkBAIC03NCw3ICs3NCw3IEBACiAgICAgICAgICAgICAgICAgd29ya19xdWV1ZS5wdXQoTm9uZSkKICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgIGRlbCBleGVjdXRvcgotICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uIGFzIGU6CisgICAgZXhjZXB0IEJhc2VFeGNlcHRpb246CiAgICAgICAgIF9iYXNlLkxPR0dFUi5jcml0aWNhbCgnRXhjZXB0aW9uIGluIHdvcmtlcicsIGV4Y19pbmZvPVRydWUpCiAKIGNsYXNzIFRocmVhZFBvb2xFeGVjdXRvcihfYmFzZS5FeGVjdXRvcik6CmRpZmYgLS1naXQgYS9MaWIvY29uZmlncGFyc2VyLnB5IGIvTGliL2NvbmZpZ3BhcnNlci5weQppbmRleCBkMTQ4Yjg4Li45ZDVmNzc5IDEwMDY0NAotLS0gYS9MaWIvY29uZmlncGFyc2VyLnB5CisrKyBiL0xpYi9jb25maWdwYXJzZXIucHkKQEAgLTExOSw3ICsxMTksOCBAQAogICAgICAgICBiZXR3ZWVuIGtleXMgYW5kIHZhbHVlcyBhcmUgc3Vycm91bmRlZCBieSBzcGFjZXMuCiAiIiIKIAotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTXV0YWJsZU1hcHBpbmcsIE9yZGVyZWREaWN0IGFzIF9kZWZhdWx0X2RpY3QsIF9DaGFpbk1hcAorZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IE11dGFibGVNYXBwaW5nCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdCBhcyBfZGVmYXVsdF9kaWN0LCBDaGFpbk1hcCBhcyBfQ2hhaW5NYXAKIGltcG9ydCBmdW5jdG9vbHMKIGltcG9ydCBpbwogaW1wb3J0IGl0ZXJ0b29scwpAQCAtOTkyLDE4ICs5OTMsMjYgQEAKICAgICAgICAgaW5kZW50X2xldmVsID0gMAogICAgICAgICBlID0gTm9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTm9uZSwgb3IgYW4gZXhjZXB0aW9uCiAgICAgICAgIGZvciBsaW5lbm8sIGxpbmUgaW4gZW51bWVyYXRlKGZwLCBzdGFydD0xKToKLSAgICAgICAgICAgIGNvbW1lbnRfc3RhcnQgPSBOb25lCisgICAgICAgICAgICBjb21tZW50X3N0YXJ0ID0gc3lzLm1heHNpemUKICAgICAgICAgICAgICMgc3RyaXAgaW5saW5lIGNvbW1lbnRzCi0gICAgICAgICAgICBmb3IgcHJlZml4IGluIHNlbGYuX2lubGluZV9jb21tZW50X3ByZWZpeGVzOgotICAgICAgICAgICAgICAgIGluZGV4ID0gbGluZS5maW5kKHByZWZpeCkKLSAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIG9yIChpbmRleCA+IDAgYW5kIGxpbmVbaW5kZXgtMV0uaXNzcGFjZSgpKToKLSAgICAgICAgICAgICAgICAgICAgY29tbWVudF9zdGFydCA9IGluZGV4Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpbmxpbmVfcHJlZml4ZXMgPSB7cDogLTEgZm9yIHAgaW4gc2VsZi5faW5saW5lX2NvbW1lbnRfcHJlZml4ZXN9CisgICAgICAgICAgICB3aGlsZSBjb21tZW50X3N0YXJ0ID09IHN5cy5tYXhzaXplIGFuZCBpbmxpbmVfcHJlZml4ZXM6CisgICAgICAgICAgICAgICAgbmV4dF9wcmVmaXhlcyA9IHt9CisgICAgICAgICAgICAgICAgZm9yIHByZWZpeCwgaW5kZXggaW4gaW5saW5lX3ByZWZpeGVzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIGluZGV4ID0gbGluZS5maW5kKHByZWZpeCwgaW5kZXgrMSkKKyAgICAgICAgICAgICAgICAgICAgaWYgaW5kZXggPT0gLTE6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBuZXh0X3ByZWZpeGVzW3ByZWZpeF0gPSBpbmRleAorICAgICAgICAgICAgICAgICAgICBpZiBpbmRleCA9PSAwIG9yIChpbmRleCA+IDAgYW5kIGxpbmVbaW5kZXgtMV0uaXNzcGFjZSgpKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRfc3RhcnQgPSBtaW4oY29tbWVudF9zdGFydCwgaW5kZXgpCisgICAgICAgICAgICAgICAgaW5saW5lX3ByZWZpeGVzID0gbmV4dF9wcmVmaXhlcwogICAgICAgICAgICAgIyBzdHJpcCBmdWxsIGxpbmUgY29tbWVudHMKICAgICAgICAgICAgIGZvciBwcmVmaXggaW4gc2VsZi5fY29tbWVudF9wcmVmaXhlczoKICAgICAgICAgICAgICAgICBpZiBsaW5lLnN0cmlwKCkuc3RhcnRzd2l0aChwcmVmaXgpOgogICAgICAgICAgICAgICAgICAgICBjb21tZW50X3N0YXJ0ID0gMAogICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgaWYgY29tbWVudF9zdGFydCA9PSBzeXMubWF4c2l6ZToKKyAgICAgICAgICAgICAgICBjb21tZW50X3N0YXJ0ID0gTm9uZQogICAgICAgICAgICAgdmFsdWUgPSBsaW5lWzpjb21tZW50X3N0YXJ0XS5zdHJpcCgpCiAgICAgICAgICAgICBpZiBub3QgdmFsdWU6CiAgICAgICAgICAgICAgICAgaWYgc2VsZi5fZW1wdHlfbGluZXNfaW5fdmFsdWVzOgpkaWZmIC0tZ2l0IGEvTGliL2NvbnRleHRsaWIucHkgYi9MaWIvY29udGV4dGxpYi5weQppbmRleCA1ZWJiYmM2Li5iZGUyZmViIDEwMDY0NAotLS0gYS9MaWIvY29udGV4dGxpYi5weQorKysgYi9MaWIvY29udGV4dGxpYi5weQpAQCAtMSwxMCArMSwxMCBAQAogIiIiVXRpbGl0aWVzIGZvciB3aXRoLXN0YXRlbWVudCBjb250ZXh0cy4gIFNlZSBQRVAgMzQzLiIiIgogCiBpbXBvcnQgc3lzCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQogZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCi1mcm9tIHdhcm5pbmdzIGltcG9ydCB3YXJuCiAKLV9fYWxsX18gPSBbImNvbnRleHRtYW5hZ2VyIiwgImNsb3NpbmciLCAiQ29udGV4dERlY29yYXRvciJdCitfX2FsbF9fID0gWyJjb250ZXh0bWFuYWdlciIsICJjbG9zaW5nIiwgIkNvbnRleHREZWNvcmF0b3IiLCAiRXhpdFN0YWNrIl0KIAogCiBjbGFzcyBDb250ZXh0RGVjb3JhdG9yKG9iamVjdCk6CkBAIC0xMywxMiArMTMsMTIgQEAKICAgICBkZWYgX3JlY3JlYXRlX2NtKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm4gYSByZWNyZWF0ZWQgaW5zdGFuY2Ugb2Ygc2VsZi4KIAotICAgICAgICBBbGxvd3Mgb3RoZXJ3aXNlIG9uZS1zaG90IGNvbnRleHQgbWFuYWdlcnMgbGlrZQorICAgICAgICBBbGxvd3MgYW4gb3RoZXJ3aXNlIG9uZS1zaG90IGNvbnRleHQgbWFuYWdlciBsaWtlCiAgICAgICAgIF9HZW5lcmF0b3JDb250ZXh0TWFuYWdlciB0byBzdXBwb3J0IHVzZSBhcwotICAgICAgICBkZWNvcmF0b3JzIHZpYSBpbXBsaWNpdCByZWNyZWF0aW9uLgorICAgICAgICBhIGRlY29yYXRvciB2aWEgaW1wbGljaXQgcmVjcmVhdGlvbi4KIAotICAgICAgICBOb3RlOiB0aGlzIGlzIGEgcHJpdmF0ZSBpbnRlcmZhY2UganVzdCBmb3IgX0dDTSBpbiAzLjIgYnV0IHdpbGwgYmUKLSAgICAgICAgcmVuYW1lZCBhbmQgZG9jdW1lbnRlZCBmb3IgdGhpcmQgcGFydHkgdXNlIGluIDMuMworICAgICAgICBUaGlzIGlzIGEgcHJpdmF0ZSBpbnRlcmZhY2UganVzdCBmb3IgX0dlbmVyYXRvckNvbnRleHRNYW5hZ2VyLgorICAgICAgICBTZWUgaXNzdWUgIzExNjQ3IGZvciBkZXRhaWxzLgogICAgICAgICAiIiIKICAgICAgICAgcmV0dXJuIHNlbGYKIApAQCAtMTM5LDMgKzEzOSwxMTcgQEAKICAgICAgICAgcmV0dXJuIHNlbGYudGhpbmcKICAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4Y19pbmZvKToKICAgICAgICAgc2VsZi50aGluZy5jbG9zZSgpCisKKworIyBJbnNwaXJlZCBieSBkaXNjdXNzaW9ucyBvbiBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTM1ODUKK2NsYXNzIEV4aXRTdGFjayhvYmplY3QpOgorICAgICIiIkNvbnRleHQgbWFuYWdlciBmb3IgZHluYW1pYyBtYW5hZ2VtZW50IG9mIGEgc3RhY2sgb2YgZXhpdCBjYWxsYmFja3MKKworICAgIEZvciBleGFtcGxlOgorCisgICAgICAgIHdpdGggRXhpdFN0YWNrKCkgYXMgc3RhY2s6CisgICAgICAgICAgICBmaWxlcyA9IFtzdGFjay5lbnRlcl9jb250ZXh0KG9wZW4oZm5hbWUpKSBmb3IgZm5hbWUgaW4gZmlsZW5hbWVzXQorICAgICAgICAgICAgIyBBbGwgb3BlbmVkIGZpbGVzIHdpbGwgYXV0b21hdGljYWxseSBiZSBjbG9zZWQgYXQgdGhlIGVuZCBvZgorICAgICAgICAgICAgIyB0aGUgd2l0aCBzdGF0ZW1lbnQsIGV2ZW4gaWYgYXR0ZW1wdHMgdG8gb3BlbiBmaWxlcyBsYXRlcgorICAgICAgICAgICAgIyBpbiB0aGUgbGlzdCB0aHJvdyBhbiBleGNlcHRpb24KKworICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fZXhpdF9jYWxsYmFja3MgPSBkZXF1ZSgpCisKKyAgICBkZWYgcG9wX2FsbChzZWxmKToKKyAgICAgICAgIiIiUHJlc2VydmUgdGhlIGNvbnRleHQgc3RhY2sgYnkgdHJhbnNmZXJyaW5nIGl0IHRvIGEgbmV3IGluc3RhbmNlIiIiCisgICAgICAgIG5ld19zdGFjayA9IHR5cGUoc2VsZikoKQorICAgICAgICBuZXdfc3RhY2suX2V4aXRfY2FsbGJhY2tzID0gc2VsZi5fZXhpdF9jYWxsYmFja3MKKyAgICAgICAgc2VsZi5fZXhpdF9jYWxsYmFja3MgPSBkZXF1ZSgpCisgICAgICAgIHJldHVybiBuZXdfc3RhY2sKKworICAgIGRlZiBfcHVzaF9jbV9leGl0KHNlbGYsIGNtLCBjbV9leGl0KToKKyAgICAgICAgIiIiSGVscGVyIHRvIGNvcnJlY3RseSByZWdpc3RlciBjYWxsYmFja3MgdG8gX19leGl0X18gbWV0aG9kcyIiIgorICAgICAgICBkZWYgX2V4aXRfd3JhcHBlcigqZXhjX2RldGFpbHMpOgorICAgICAgICAgICAgcmV0dXJuIGNtX2V4aXQoY20sICpleGNfZGV0YWlscykKKyAgICAgICAgX2V4aXRfd3JhcHBlci5fX3NlbGZfXyA9IGNtCisgICAgICAgIHNlbGYucHVzaChfZXhpdF93cmFwcGVyKQorCisgICAgZGVmIHB1c2goc2VsZiwgZXhpdCk6CisgICAgICAgICIiIlJlZ2lzdGVycyBhIGNhbGxiYWNrIHdpdGggdGhlIHN0YW5kYXJkIF9fZXhpdF9fIG1ldGhvZCBzaWduYXR1cmUKKworICAgICAgICBDYW4gc3VwcHJlc3MgZXhjZXB0aW9ucyB0aGUgc2FtZSB3YXkgX19leGl0X18gbWV0aG9kcyBjYW4uCisKKyAgICAgICAgQWxzbyBhY2NlcHRzIGFueSBvYmplY3Qgd2l0aCBhbiBfX2V4aXRfXyBtZXRob2QgKHJlZ2lzdGVyaW5nIGEgY2FsbAorICAgICAgICB0byB0aGUgbWV0aG9kIGluc3RlYWQgb2YgdGhlIG9iamVjdCBpdHNlbGYpCisgICAgICAgICIiIgorICAgICAgICAjIFdlIHVzZSBhbiB1bmJvdW5kIG1ldGhvZCByYXRoZXIgdGhhbiBhIGJvdW5kIG1ldGhvZCB0byBmb2xsb3cKKyAgICAgICAgIyB0aGUgc3RhbmRhcmQgbG9va3VwIGJlaGF2aW91ciBmb3Igc3BlY2lhbCBtZXRob2RzCisgICAgICAgIF9jYl90eXBlID0gdHlwZShleGl0KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBleGl0X21ldGhvZCA9IF9jYl90eXBlLl9fZXhpdF9fCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICMgTm90IGEgY29udGV4dCBtYW5hZ2VyLCBzbyBhc3N1bWUgaXRzIGEgY2FsbGFibGUKKyAgICAgICAgICAgIHNlbGYuX2V4aXRfY2FsbGJhY2tzLmFwcGVuZChleGl0KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fcHVzaF9jbV9leGl0KGV4aXQsIGV4aXRfbWV0aG9kKQorICAgICAgICByZXR1cm4gZXhpdCAjIEFsbG93IHVzZSBhcyBhIGRlY29yYXRvcgorCisgICAgZGVmIGNhbGxiYWNrKHNlbGYsIGNhbGxiYWNrLCAqYXJncywgKiprd2RzKToKKyAgICAgICAgIiIiUmVnaXN0ZXJzIGFuIGFyYml0cmFyeSBjYWxsYmFjayBhbmQgYXJndW1lbnRzLgorCisgICAgICAgIENhbm5vdCBzdXBwcmVzcyBleGNlcHRpb25zLgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIF9leGl0X3dyYXBwZXIoZXhjX3R5cGUsIGV4YywgdGIpOgorICAgICAgICAgICAgY2FsbGJhY2soKmFyZ3MsICoqa3dkcykKKyAgICAgICAgIyBXZSBjaGFuZ2VkIHRoZSBzaWduYXR1cmUsIHNvIHVzaW5nIEB3cmFwcyBpcyBub3QgYXBwcm9wcmlhdGUsIGJ1dAorICAgICAgICAjIHNldHRpbmcgX193cmFwcGVkX18gbWF5IHN0aWxsIGhlbHAgd2l0aCBpbnRyb3NwZWN0aW9uCisgICAgICAgIF9leGl0X3dyYXBwZXIuX193cmFwcGVkX18gPSBjYWxsYmFjaworICAgICAgICBzZWxmLnB1c2goX2V4aXRfd3JhcHBlcikKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrICMgQWxsb3cgdXNlIGFzIGEgZGVjb3JhdG9yCisKKyAgICBkZWYgZW50ZXJfY29udGV4dChzZWxmLCBjbSk6CisgICAgICAgICIiIkVudGVycyB0aGUgc3VwcGxpZWQgY29udGV4dCBtYW5hZ2VyCisKKyAgICAgICAgSWYgc3VjY2Vzc2Z1bCwgYWxzbyBwdXNoZXMgaXRzIF9fZXhpdF9fIG1ldGhvZCBhcyBhIGNhbGxiYWNrIGFuZAorICAgICAgICByZXR1cm5zIHRoZSByZXN1bHQgb2YgdGhlIF9fZW50ZXJfXyBtZXRob2QuCisgICAgICAgICIiIgorICAgICAgICAjIFdlIGxvb2sgdXAgdGhlIHNwZWNpYWwgbWV0aG9kcyBvbiB0aGUgdHlwZSB0byBtYXRjaCB0aGUgd2l0aCBzdGF0ZW1lbnQKKyAgICAgICAgX2NtX3R5cGUgPSB0eXBlKGNtKQorICAgICAgICBfZXhpdCA9IF9jbV90eXBlLl9fZXhpdF9fCisgICAgICAgIHJlc3VsdCA9IF9jbV90eXBlLl9fZW50ZXJfXyhjbSkKKyAgICAgICAgc2VsZi5fcHVzaF9jbV9leGl0KGNtLCBfZXhpdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICAiIiJJbW1lZGlhdGVseSB1bndpbmQgdGhlIGNvbnRleHQgc3RhY2siIiIKKyAgICAgICAgc2VsZi5fX2V4aXRfXyhOb25lLCBOb25lLCBOb25lKQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjX2RldGFpbHMpOgorICAgICAgICAjIFdlIG1hbmlwdWxhdGUgdGhlIGV4Y2VwdGlvbiBzdGF0ZSBzbyBpdCBiZWhhdmVzIGFzIHRob3VnaAorICAgICAgICAjIHdlIHdlcmUgYWN0dWFsbHkgbmVzdGluZyBtdWx0aXBsZSB3aXRoIHN0YXRlbWVudHMKKyAgICAgICAgZnJhbWVfZXhjID0gc3lzLmV4Y19pbmZvKClbMV0KKyAgICAgICAgZGVmIF9maXhfZXhjZXB0aW9uX2NvbnRleHQobmV3X2V4Yywgb2xkX2V4Yyk6CisgICAgICAgICAgICB3aGlsZSAxOgorICAgICAgICAgICAgICAgIGV4Y19jb250ZXh0ID0gbmV3X2V4Yy5fX2NvbnRleHRfXworICAgICAgICAgICAgICAgIGlmIGV4Y19jb250ZXh0IGluIChOb25lLCBmcmFtZV9leGMpOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIG5ld19leGMgPSBleGNfY29udGV4dAorICAgICAgICAgICAgbmV3X2V4Yy5fX2NvbnRleHRfXyA9IG9sZF9leGMKKworICAgICAgICAjIENhbGxiYWNrcyBhcmUgaW52b2tlZCBpbiBMSUZPIG9yZGVyIHRvIG1hdGNoIHRoZSBiZWhhdmlvdXIgb2YKKyAgICAgICAgIyBuZXN0ZWQgY29udGV4dCBtYW5hZ2VycworICAgICAgICBzdXBwcmVzc2VkX2V4YyA9IEZhbHNlCisgICAgICAgIHdoaWxlIHNlbGYuX2V4aXRfY2FsbGJhY2tzOgorICAgICAgICAgICAgY2IgPSBzZWxmLl9leGl0X2NhbGxiYWNrcy5wb3AoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlmIGNiKCpleGNfZGV0YWlscyk6CisgICAgICAgICAgICAgICAgICAgIHN1cHByZXNzZWRfZXhjID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBleGNfZGV0YWlscyA9IChOb25lLCBOb25lLCBOb25lKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIG5ld19leGNfZGV0YWlscyA9IHN5cy5leGNfaW5mbygpCisgICAgICAgICAgICAgICAgIyBzaW11bGF0ZSB0aGUgc3RhY2sgb2YgZXhjZXB0aW9ucyBieSBzZXR0aW5nIHRoZSBjb250ZXh0CisgICAgICAgICAgICAgICAgX2ZpeF9leGNlcHRpb25fY29udGV4dChuZXdfZXhjX2RldGFpbHNbMV0sIGV4Y19kZXRhaWxzWzFdKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9leGl0X2NhbGxiYWNrczoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBleGNfZGV0YWlscyA9IG5ld19leGNfZGV0YWlscworICAgICAgICByZXR1cm4gc3VwcHJlc3NlZF9leGMKZGlmZiAtLWdpdCBhL0xpYi9jb3B5LnB5IGIvTGliL2NvcHkucHkKaW5kZXggMDg5ZDEwMS4uZDk2MjAxZSAxMDA2NDQKLS0tIGEvTGliL2NvcHkucHkKKysrIGIvTGliL2NvcHkucHkKQEAgLTE3Myw4ICsxNzMsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuKGRlZXApY29weWFibGUgb2JqZWN0IG9mIHR5cGUgJXMiICUgY2xzKQogICAgICAgICAgICAgICAgIHkgPSBfcmVjb25zdHJ1Y3QoeCwgcnYsIDEsIG1lbW8pCiAKLSAgICBtZW1vW2RdID0geQotICAgIF9rZWVwX2FsaXZlKHgsIG1lbW8pICMgTWFrZSBzdXJlIHggbGl2ZXMgYXQgbGVhc3QgYXMgbG9uZyBhcyBkCisgICAgIyBJZiBpcyBpdHMgb3duIGNvcHksIGRvbid0IG1lbW9pemUuCisgICAgaWYgeSBpcyBub3QgeDoKKyAgICAgICAgbWVtb1tkXSA9IHkKKyAgICAgICAgX2tlZXBfYWxpdmUoeCwgbWVtbykgIyBNYWtlIHN1cmUgeCBsaXZlcyBhdCBsZWFzdCBhcyBsb25nIGFzIGQKICAgICByZXR1cm4geQogCiBfZGVlcGNvcHlfZGlzcGF0Y2ggPSBkID0ge30KQEAgLTIxNCw5ICsyMTYsMTAgQEAKICAgICB5ID0gW10KICAgICBmb3IgYSBpbiB4OgogICAgICAgICB5LmFwcGVuZChkZWVwY29weShhLCBtZW1vKSkKLSAgICBkID0gaWQoeCkKKyAgICAjIFdlJ3JlIG5vdCBnb2luZyB0byBwdXQgdGhlIHR1cGxlIGluIHRoZSBtZW1vLCBidXQgaXQncyBzdGlsbCBpbXBvcnRhbnQgd2UKKyAgICAjIGNoZWNrIGZvciBpdCwgaW4gY2FzZSB0aGUgdHVwbGUgY29udGFpbnMgcmVjdXJzaXZlIG11dGFibGUgc3RydWN0dXJlcy4KICAgICB0cnk6Ci0gICAgICAgIHJldHVybiBtZW1vW2RdCisgICAgICAgIHJldHVybiBtZW1vW2lkKHgpXQogICAgIGV4Y2VwdCBLZXlFcnJvcjoKICAgICAgICAgcGFzcwogICAgIGZvciBpIGluIHJhbmdlKGxlbih4KSk6CkBAIC0yMjUsNyArMjI4LDYgQEAKICAgICAgICAgICAgIGJyZWFrCiAgICAgZWxzZToKICAgICAgICAgeSA9IHgKLSAgICBtZW1vW2RdID0geQogICAgIHJldHVybiB5CiBkW3R1cGxlXSA9IF9kZWVwY29weV90dXBsZQogCkBAIC0zMjEsNjggKzMyMywzIEBACiAjIEhlbHBlciBmb3IgaW5zdGFuY2UgY3JlYXRpb24gd2l0aG91dCBjYWxsaW5nIF9faW5pdF9fCiBjbGFzcyBfRW1wdHlDbGFzczoKICAgICBwYXNzCi0KLWRlZiBfdGVzdCgpOgotICAgIGwgPSBbTm9uZSwgMSwgMiwgMy4xNCwgJ3h5enp5JywgKDEsIDIpLCBbMy4xNCwgJ2FiYyddLAotICAgICAgICAgeydhYmMnOiAnQUJDJ30sICgpLCBbXSwge31dCi0gICAgbDEgPSBjb3B5KGwpCi0gICAgcHJpbnQobDE9PWwpCi0gICAgbDEgPSBtYXAoY29weSwgbCkKLSAgICBwcmludChsMT09bCkKLSAgICBsMSA9IGRlZXBjb3B5KGwpCi0gICAgcHJpbnQobDE9PWwpCi0gICAgY2xhc3MgQzoKLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFyZz1Ob25lKToKLSAgICAgICAgICAgIHNlbGYuYSA9IDEKLSAgICAgICAgICAgIHNlbGYuYXJnID0gYXJnCi0gICAgICAgICAgICBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgICAgICAgICAgICAgIGltcG9ydCBzeXMKLSAgICAgICAgICAgICAgICBmaWxlID0gc3lzLmFyZ3ZbMF0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZmlsZSA9IF9fZmlsZV9fCi0gICAgICAgICAgICBzZWxmLmZwID0gb3BlbihmaWxlKQotICAgICAgICAgICAgc2VsZi5mcC5jbG9zZSgpCi0gICAgICAgIGRlZiBfX2dldHN0YXRlX18oc2VsZik6Ci0gICAgICAgICAgICByZXR1cm4geydhJzogc2VsZi5hLCAnYXJnJzogc2VsZi5hcmd9Ci0gICAgICAgIGRlZiBfX3NldHN0YXRlX18oc2VsZiwgc3RhdGUpOgotICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc3RhdGUuaXRlbXMoKToKLSAgICAgICAgICAgICAgICBzZXRhdHRyKHNlbGYsIGtleSwgdmFsdWUpCi0gICAgICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbz1Ob25lKToKLSAgICAgICAgICAgIG5ldyA9IHNlbGYuX19jbGFzc19fKGRlZXBjb3B5KHNlbGYuYXJnLCBtZW1vKSkKLSAgICAgICAgICAgIG5ldy5hID0gc2VsZi5hCi0gICAgICAgICAgICByZXR1cm4gbmV3Ci0gICAgYyA9IEMoJ2FyZ3VtZW50IHNrZXRjaCcpCi0gICAgbC5hcHBlbmQoYykKLSAgICBsMiA9IGNvcHkobCkKLSAgICBwcmludChsID09IGwyKQotICAgIHByaW50KGwpCi0gICAgcHJpbnQobDIpCi0gICAgbDIgPSBkZWVwY29weShsKQotICAgIHByaW50KGwgPT0gbDIpCi0gICAgcHJpbnQobCkKLSAgICBwcmludChsMikKLSAgICBsLmFwcGVuZCh7bFsxXTogbCwgJ3h5eic6IGxbMl19KQotICAgIGwzID0gY29weShsKQotICAgIGltcG9ydCByZXBybGliCi0gICAgcHJpbnQobWFwKHJlcHJsaWIucmVwciwgbCkpCi0gICAgcHJpbnQobWFwKHJlcHJsaWIucmVwciwgbDEpKQotICAgIHByaW50KG1hcChyZXBybGliLnJlcHIsIGwyKSkKLSAgICBwcmludChtYXAocmVwcmxpYi5yZXByLCBsMykpCi0gICAgbDMgPSBkZWVwY29weShsKQotICAgIHByaW50KG1hcChyZXBybGliLnJlcHIsIGwpKQotICAgIHByaW50KG1hcChyZXBybGliLnJlcHIsIGwxKSkKLSAgICBwcmludChtYXAocmVwcmxpYi5yZXByLCBsMikpCi0gICAgcHJpbnQobWFwKHJlcHJsaWIucmVwciwgbDMpKQotICAgIGNsYXNzIG9kaWN0KGRpY3QpOgotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgZCA9IHt9KToKLSAgICAgICAgICAgIHNlbGYuYSA9IDk5Ci0gICAgICAgICAgICBkaWN0Ll9faW5pdF9fKHNlbGYsIGQpCi0gICAgICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrLCBpKToKLSAgICAgICAgICAgIGRpY3QuX19zZXRpdGVtX18oc2VsZiwgaywgaSkKLSAgICAgICAgICAgIHNlbGYuYQotICAgIG8gPSBvZGljdCh7IkEiIDogIkIifSkKLSAgICB4ID0gZGVlcGNvcHkobykKLSAgICBwcmludChvLCB4KQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIF90ZXN0KCkKZGlmZiAtLWdpdCBhL0xpYi9jcnlwdC5weSBiL0xpYi9jcnlwdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTBjODFjCi0tLSAvZGV2L251bGwKKysrIGIvTGliL2NyeXB0LnB5CkBAIC0wLDAgKzEsNjIgQEAKKyIiIldyYXBwZXIgdG8gdGhlIFBPU0lYIGNyeXB0IGxpYnJhcnkgY2FsbCBhbmQgYXNzb2NpYXRlZCBmdW5jdGlvbmFsaXR5LiIiIgorCitpbXBvcnQgX2NyeXB0CitpbXBvcnQgc3RyaW5nIGFzIF9zdHJpbmcKK2Zyb20gcmFuZG9tIGltcG9ydCBTeXN0ZW1SYW5kb20gYXMgX1N5c3RlbVJhbmRvbQorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZSBhcyBfbmFtZWR0dXBsZQorCisKK19zYWx0Y2hhcnMgPSBfc3RyaW5nLmFzY2lpX2xldHRlcnMgKyBfc3RyaW5nLmRpZ2l0cyArICcuLycKK19zciA9IF9TeXN0ZW1SYW5kb20oKQorCisKK2NsYXNzIF9NZXRob2QoX25hbWVkdHVwbGUoJ19NZXRob2QnLCAnbmFtZSBpZGVudCBzYWx0X2NoYXJzIHRvdGFsX3NpemUnKSk6CisKKyAgICAiIiJDbGFzcyByZXByZXNlbnRpbmcgYSBzYWx0IG1ldGhvZCBwZXIgdGhlIE1vZHVsYXIgQ3J5cHQgRm9ybWF0IG9yIHRoZQorICAgIGxlZ2FjeSAyLWNoYXJhY3RlciBjcnlwdCBtZXRob2QuIiIiCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPGNyeXB0Lk1FVEhPRF97fT4nLmZvcm1hdChzZWxmLm5hbWUpCisKKworZGVmIG1rc2FsdChtZXRob2Q9Tm9uZSk6CisgICAgIiIiR2VuZXJhdGUgYSBzYWx0IGZvciB0aGUgc3BlY2lmaWVkIG1ldGhvZC4KKworICAgIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBzdHJvbmdlc3QgYXZhaWxhYmxlIG1ldGhvZCB3aWxsIGJlIHVzZWQuCisKKyAgICAiIiIKKyAgICBpZiBtZXRob2QgaXMgTm9uZToKKyAgICAgICAgbWV0aG9kID0gbWV0aG9kc1swXQorICAgIHMgPSAnJHt9JCcuZm9ybWF0KG1ldGhvZC5pZGVudCkgaWYgbWV0aG9kLmlkZW50IGVsc2UgJycKKyAgICBzICs9ICcnLmpvaW4oX3NyLnNhbXBsZShfc2FsdGNoYXJzLCBtZXRob2Quc2FsdF9jaGFycykpCisgICAgcmV0dXJuIHMKKworCitkZWYgY3J5cHQod29yZCwgc2FsdD1Ob25lKToKKyAgICAiIiJSZXR1cm4gYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBvbmUtd2F5IGhhc2ggb2YgYSBwYXNzd29yZCwgd2l0aCBhIHNhbHQKKyAgICBwcmVwZW5kZWQuCisKKyAgICBJZiBgYHNhbHRgYCBpcyBub3Qgc3BlY2lmaWVkIG9yIGlzIGBgTm9uZWBgLCB0aGUgc3Ryb25nZXN0CisgICAgYXZhaWxhYmxlIG1ldGhvZCB3aWxsIGJlIHNlbGVjdGVkIGFuZCBhIHNhbHQgZ2VuZXJhdGVkLiAgT3RoZXJ3aXNlLAorICAgIGBgc2FsdGBgIG1heSBiZSBvbmUgb2YgdGhlIGBgY3J5cHQuTUVUSE9EXypgYCB2YWx1ZXMsIG9yIGEgc3RyaW5nIGFzCisgICAgcmV0dXJuZWQgYnkgYGBjcnlwdC5ta3NhbHQoKWBgLgorCisgICAgIiIiCisgICAgaWYgc2FsdCBpcyBOb25lIG9yIGlzaW5zdGFuY2Uoc2FsdCwgX01ldGhvZCk6CisgICAgICAgIHNhbHQgPSBta3NhbHQoc2FsdCkKKyAgICByZXR1cm4gX2NyeXB0LmNyeXB0KHdvcmQsIHNhbHQpCisKKworIyAgYXZhaWxhYmxlIHNhbHRpbmcvY3J5cHRvIG1ldGhvZHMKK01FVEhPRF9DUllQVCA9IF9NZXRob2QoJ0NSWVBUJywgTm9uZSwgMiwgMTMpCitNRVRIT0RfTUQ1ID0gX01ldGhvZCgnTUQ1JywgJzEnLCA4LCAzNCkKK01FVEhPRF9TSEEyNTYgPSBfTWV0aG9kKCdTSEEyNTYnLCAnNScsIDE2LCA2MykKK01FVEhPRF9TSEE1MTIgPSBfTWV0aG9kKCdTSEE1MTInLCAnNicsIDE2LCAxMDYpCisKK21ldGhvZHMgPSBbXQorZm9yIF9tZXRob2QgaW4gKE1FVEhPRF9TSEE1MTIsIE1FVEhPRF9TSEEyNTYsIE1FVEhPRF9NRDUpOgorICAgIF9yZXN1bHQgPSBjcnlwdCgnJywgX21ldGhvZCkKKyAgICBpZiBfcmVzdWx0IGFuZCBsZW4oX3Jlc3VsdCkgPT0gX21ldGhvZC50b3RhbF9zaXplOgorICAgICAgICBtZXRob2RzLmFwcGVuZChfbWV0aG9kKQorbWV0aG9kcy5hcHBlbmQoTUVUSE9EX0NSWVBUKQorZGVsIF9yZXN1bHQsIF9tZXRob2QKZGlmZiAtLWdpdCBhL0xpYi9jdHlwZXMvX19pbml0X18ucHkgYi9MaWIvY3R5cGVzL19faW5pdF9fLnB5CmluZGV4IDExMTIwOWEuLmYwYmQ2NmEgMTAwNjQ0Ci0tLSBhL0xpYi9jdHlwZXMvX19pbml0X18ucHkKKysrIGIvTGliL2N0eXBlcy9fX2luaXRfXy5weQpAQCAtMjYsNyArMjYsNyBAQAogICAgICMgbGlicmFyaWVzLiAgT1MgWCAxMC4zIGlzIERhcndpbiA3LCBzbyB3ZSBjaGVjayBmb3IKICAgICAjIHRoYXQuCiAKLSAgICBpZiBpbnQoX29zLnVuYW1lKClbMl0uc3BsaXQoJy4nKVswXSkgPCA4OgorICAgIGlmIGludChfb3MudW5hbWUoKS5yZWxlYXNlLnNwbGl0KCcuJylbMF0pIDwgODoKICAgICAgICAgREVGQVVMVF9NT0RFID0gUlRMRF9HTE9CQUwKIAogZnJvbSBfY3R5cGVzIGltcG9ydCBGVU5DRkxBR19DREVDTCBhcyBfRlVOQ0ZMQUdfQ0RFQ0wsIFwKZGlmZiAtLWdpdCBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X2NhbGxiYWNrcy5weSBiL0xpYi9jdHlwZXMvdGVzdC90ZXN0X2NhbGxiYWNrcy5weQppbmRleCBjNzIwN2VhLi41NjAwYjQzIDEwMDY0NAotLS0gYS9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9jYWxsYmFja3MucHkKKysrIGIvTGliL2N0eXBlcy90ZXN0L3Rlc3RfY2FsbGJhY2tzLnB5CkBAIC0xNDAsNyArMTQwLDcgQEAKICAgICAgICAgICAgIGRlZiBfX2RlbF9fKHNlbGYpOgogICAgICAgICAgICAgICAgIGdjLmNvbGxlY3QoKQogICAgICAgICBDRlVOQ1RZUEUoTm9uZSkobGFtYmRhIHg9TmFzdHkoKTogTm9uZSkKLSAgICAgICAgCisKIAogdHJ5OgogICAgIFdJTkZVTkNUWVBFCmRpZmYgLS1naXQgYS9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9tZW1mdW5jdGlvbnMucHkgYi9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9tZW1mdW5jdGlvbnMucHkKaW5kZXggYWEyMTEzYi4uYWVjNGFhYSAxMDA2NDQKLS0tIGEvTGliL2N0eXBlcy90ZXN0L3Rlc3RfbWVtZnVuY3Rpb25zLnB5CisrKyBiL0xpYi9jdHlwZXMvdGVzdC90ZXN0X21lbWZ1bmN0aW9ucy5weQpAQCAtMSw0ICsxLDUgQEAKIGltcG9ydCBzeXMKK2Zyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIGN0eXBlcyBpbXBvcnQgKgogCkBAIC00OSw2ICs1MCw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FzdChhLCBQT0lOVEVSKGNfYnl0ZSkpWzo3OjddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbOTddKQogCisgICAgQHN1cHBvcnQucmVmY291bnRfdGVzdAogICAgIGRlZiB0ZXN0X3N0cmluZ19hdChzZWxmKToKICAgICAgICAgcyA9IHN0cmluZ19hdChiImZvbyBiYXIiKQogICAgICAgICAjIFhYWCBUaGUgZm9sbG93aW5nIG1heSBiZSB3cm9uZywgZGVwZW5kaW5nIG9uIGhvdyBQeXRob24KZGlmZiAtLWdpdCBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3BhcmFtZXRlcnMucHkgYi9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9wYXJhbWV0ZXJzLnB5CmluZGV4IGU4M2ZkOWEuLjk3NjJmYjkgMTAwNjQ0Ci0tLSBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3BhcmFtZXRlcnMucHkKKysrIGIvTGliL2N0eXBlcy90ZXN0L3Rlc3RfcGFyYW1ldGVycy5weQpAQCAtNzMsMTMgKzczLDEwIEBACiAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICMjICAgICAgICAgICAgcHJpbnQgIihObyBjX3djaGFyX3ApIgogICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHMgPSAiMTIzIgotICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gIndpbjMyIjoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjX3djaGFyX3AuZnJvbV9wYXJhbShzKS5fb2JqIGlzIHMpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGNfd2NoYXJfcC5mcm9tX3BhcmFtLCA0MikKIAotICAgICAgICAgICAgIyBuZXcgaW4gMC45LjE6IGNvbnZlcnQgKGRlY29kZSkgYXNjaWkgdG8gdW5pY29kZQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjX3djaGFyX3AuZnJvbV9wYXJhbSgiMTIzIikuX29iaiwgIjEyMyIpCisgICAgICAgIGNfd2NoYXJfcC5mcm9tX3BhcmFtKCIxMjMiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY193Y2hhcl9wLmZyb21fcGFyYW0sIDQyKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGNfd2NoYXJfcC5mcm9tX3BhcmFtLCBiIjEyM1wzNzciKQogCiAgICAgICAgIHBhID0gY193Y2hhcl9wLmZyb21fcGFyYW0oY193Y2hhcl9wKCIxMjMiKSkKZGlmZiAtLWdpdCBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3BlcDMxMTgucHkgYi9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9wZXAzMTE4LnB5CmluZGV4IGZhNjQ2MWYuLmFkMTNiMDEgMTAwNjQ0Ci0tLSBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3BlcDMxMTgucHkKKysrIGIvTGliL2N0eXBlcy90ZXN0L3Rlc3RfcGVwMzExOC5weQpAQCAtMjUsMTQgKzI1LDE3IEBACiAgICAgICAgICAgICB2ID0gbWVtb3J5dmlldyhvYikKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5vcm1hbGl6ZSh2LmZvcm1hdCksIG5vcm1hbGl6ZShmbXQpKQotICAgICAgICAgICAgICAgIGlmIHNoYXBlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGlmIHNoYXBlOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih2KSwgc2hhcGVbMF0pCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odikgKiBzaXplb2YoaXRlbXRwKSwgc2l6ZW9mKG9iKSkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYuaXRlbXNpemUsIHNpemVvZihpdGVtdHApKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodi5zaGFwZSwgc2hhcGUpCi0gICAgICAgICAgICAgICAgIyBjdHlwZXMgb2JqZWN0IGFsd2F5cyBoYXZlIGEgbm9uLXN0cmlkZWQgbWVtb3J5IGJsb2NrCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LnN0cmlkZXMsIE5vbmUpCisgICAgICAgICAgICAgICAgIyBYWFggSXNzdWUgIzEyODUxOiBQeUNEYXRhX05ld0dldEJ1ZmZlcigpIG11c3QgcHJvdmlkZSBzdHJpZGVzCisgICAgICAgICAgICAgICAgIyAgICAgaWYgcmVxdWVzdGVkLiBtZW1vcnl2aWV3IGN1cnJlbnRseSByZWNvbnN0cnVjdHMgbWlzc2luZworICAgICAgICAgICAgICAgICMgICAgIHN0cmlkZSBpbmZvcm1hdGlvbiwgc28gdGhpcyBhc3NlcnQgd2lsbCBmYWlsLgorICAgICAgICAgICAgICAgICMgc2VsZi5hc3NlcnRFcXVhbCh2LnN0cmlkZXMsICgpKQorCiAgICAgICAgICAgICAgICAgIyB0aGV5IGFyZSBhbHdheXMgcmVhZC93cml0ZQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uodi5yZWFkb25seSkKIApAQCAtNTIsMTQgKzU1LDE1IEBACiAgICAgICAgICAgICB2ID0gbWVtb3J5dmlldyhvYikKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYuZm9ybWF0LCBmbXQpCi0gICAgICAgICAgICAgICAgaWYgc2hhcGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgc2hhcGU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHYpLCBzaGFwZVswXSkKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih2KSAqIHNpemVvZihpdGVtdHApLCBzaXplb2Yob2IpKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodi5pdGVtc2l6ZSwgc2l6ZW9mKGl0ZW10cCkpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LnNoYXBlLCBzaGFwZSkKLSAgICAgICAgICAgICAgICAjIGN0eXBlcyBvYmplY3QgYWx3YXlzIGhhdmUgYSBub24tc3RyaWRlZCBtZW1vcnkgYmxvY2sKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYuc3RyaWRlcywgTm9uZSkKKyAgICAgICAgICAgICAgICAjIFhYWCBJc3N1ZSAjMTI4NTEKKyAgICAgICAgICAgICAgICAjIHNlbGYuYXNzZXJ0RXF1YWwodi5zdHJpZGVzLCAoKSkKKwogICAgICAgICAgICAgICAgICMgdGhleSBhcmUgYWx3YXlzIHJlYWQvd3JpdGUKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHYucmVhZG9ubHkpCiAKQEAgLTExMCwzNCArMTE0LDM0IEBACiAKICAgICAjIyBzaW1wbGUgdHlwZXMKIAotICAgIChjX2NoYXIsICAgICAgICAgICAgICAgICAgICAiPGMiLCAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgY19jaGFyKSwKLSAgICAoY19ieXRlLCAgICAgICAgICAgICAgICAgICAgIjxiIiwgICAgICAgICAgICAgICAgICAgTm9uZSwgICAgICAgICAgIGNfYnl0ZSksCi0gICAgKGNfdWJ5dGUsICAgICAgICAgICAgICAgICAgICI8QiIsICAgICAgICAgICAgICAgICAgIE5vbmUsICAgICAgICAgICBjX3VieXRlKSwKLSAgICAoY19zaG9ydCwgICAgICAgICAgICAgICAgICAgIjxoIiwgICAgICAgICAgICAgICAgICAgTm9uZSwgICAgICAgICAgIGNfc2hvcnQpLAotICAgIChjX3VzaG9ydCwgICAgICAgICAgICAgICAgICAiPEgiLCAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgY191c2hvcnQpLAorICAgIChjX2NoYXIsICAgICAgICAgICAgICAgICAgICAiPGMiLCAgICAgICAgICAgICAgICAgICAoKSwgICAgICAgICAgIGNfY2hhciksCisgICAgKGNfYnl0ZSwgICAgICAgICAgICAgICAgICAgICI8YiIsICAgICAgICAgICAgICAgICAgICgpLCAgICAgICAgICAgY19ieXRlKSwKKyAgICAoY191Ynl0ZSwgICAgICAgICAgICAgICAgICAgIjxCIiwgICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBjX3VieXRlKSwKKyAgICAoY19zaG9ydCwgICAgICAgICAgICAgICAgICAgIjxoIiwgICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBjX3Nob3J0KSwKKyAgICAoY191c2hvcnQsICAgICAgICAgICAgICAgICAgIjxIIiwgICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBjX3VzaG9ydCksCiAKICAgICAjIGNfaW50IGFuZCBjX3VpbnQgbWF5IGJlIGFsaWFzZXMgdG8gY19sb25nCi0gICAgIyhjX2ludCwgICAgICAgICAgICAgICAgICAgICAiPGkiLCAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgY19pbnQpLAotICAgICMoY191aW50LCAgICAgICAgICAgICAgICAgICAgIjxJIiwgICAgICAgICAgICAgICAgICAgTm9uZSwgICAgICAgICAgIGNfdWludCksCisgICAgIyhjX2ludCwgICAgICAgICAgICAgICAgICAgICAiPGkiLCAgICAgICAgICAgICAgICAgICAoKSwgICAgICAgICAgIGNfaW50KSwKKyAgICAjKGNfdWludCwgICAgICAgICAgICAgICAgICAgICI8SSIsICAgICAgICAgICAgICAgICAgICgpLCAgICAgICAgICAgY191aW50KSwKIAotICAgIChjX2xvbmcsICAgICAgICAgICAgICAgICAgICAiPGwiLCAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgY19sb25nKSwKLSAgICAoY191bG9uZywgICAgICAgICAgICAgICAgICAgIjxMIiwgICAgICAgICAgICAgICAgICAgTm9uZSwgICAgICAgICAgIGNfdWxvbmcpLAorICAgIChjX2xvbmcsICAgICAgICAgICAgICAgICAgICAiPGwiLCAgICAgICAgICAgICAgICAgICAoKSwgICAgICAgICAgIGNfbG9uZyksCisgICAgKGNfdWxvbmcsICAgICAgICAgICAgICAgICAgICI8TCIsICAgICAgICAgICAgICAgICAgICgpLCAgICAgICAgICAgY191bG9uZyksCiAKICAgICAjIGNfbG9uZ2xvbmcgYW5kIGNfdWxvbmdsb25nIGFyZSBhbGlhc2VzIG9uIDY0LWJpdCBwbGF0Zm9ybXMKICAgICAjKGNfbG9uZ2xvbmcsICAgICAgICAgICAgICAgICI8cSIsICAgICAgICAgICAgICAgICAgIE5vbmUsICAgICAgICAgICBjX2xvbmdsb25nKSwKICAgICAjKGNfdWxvbmdsb25nLCAgICAgICAgICAgICAgICI8USIsICAgICAgICAgICAgICAgICAgIE5vbmUsICAgICAgICAgICBjX3Vsb25nbG9uZyksCiAKLSAgICAoY19mbG9hdCwgICAgICAgICAgICAgICAgICAgIjxmIiwgICAgICAgICAgICAgICAgICAgTm9uZSwgICAgICAgICAgIGNfZmxvYXQpLAotICAgIChjX2RvdWJsZSwgICAgICAgICAgICAgICAgICAiPGQiLCAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgY19kb3VibGUpLAorICAgIChjX2Zsb2F0LCAgICAgICAgICAgICAgICAgICAiPGYiLCAgICAgICAgICAgICAgICAgICAoKSwgICAgICAgICAgIGNfZmxvYXQpLAorICAgIChjX2RvdWJsZSwgICAgICAgICAgICAgICAgICAiPGQiLCAgICAgICAgICAgICAgICAgICAoKSwgICAgICAgICAgIGNfZG91YmxlKSwKICAgICAjIGNfbG9uZ2RvdWJsZSBtYXkgYmUgYW4gYWxpYXMgdG8gY19kb3VibGUKIAotICAgIChjX2Jvb2wsICAgICAgICAgICAgICAgICAgICAiPD8iLCAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgY19ib29sKSwKLSAgICAocHlfb2JqZWN0LCAgICAgICAgICAgICAgICAgIjxPIiwgICAgICAgICAgICAgICAgICAgTm9uZSwgICAgICAgICAgIHB5X29iamVjdCksCisgICAgKGNfYm9vbCwgICAgICAgICAgICAgICAgICAgICI8PyIsICAgICAgICAgICAgICAgICAgICgpLCAgICAgICAgICAgY19ib29sKSwKKyAgICAocHlfb2JqZWN0LCAgICAgICAgICAgICAgICAgIjxPIiwgICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBweV9vYmplY3QpLAogCiAgICAgIyMgcG9pbnRlcnMKIAotICAgIChQT0lOVEVSKGNfYnl0ZSksICAgICAgICAgICAiJjxiIiwgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgUE9JTlRFUihjX2J5dGUpKSwKLSAgICAoUE9JTlRFUihQT0lOVEVSKGNfbG9uZykpLCAgIiYmPGwiLCAgICAgICAgICAgICAgICAgTm9uZSwgICAgICAgICAgIFBPSU5URVIoUE9JTlRFUihjX2xvbmcpKSksCisgICAgKFBPSU5URVIoY19ieXRlKSwgICAgICAgICAgICImPGIiLCAgICAgICAgICAgICAgICAgICgpLCAgICAgICAgICAgUE9JTlRFUihjX2J5dGUpKSwKKyAgICAoUE9JTlRFUihQT0lOVEVSKGNfbG9uZykpLCAgIiYmPGwiLCAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBQT0lOVEVSKFBPSU5URVIoY19sb25nKSkpLAogCiAgICAgIyMgYXJyYXlzIGFuZCBwb2ludGVycwogCkBAIC0xNDUsMzIgKzE0OSwzMiBAQAogICAgIChjX2Zsb2F0ICogNCAqIDMgKiAyLCAgICAgICAiKDIsMyw0KTxmIiwgICAgICAgICAgICAoMiwzLDQpLCAgICAgICAgY19mbG9hdCksCiAgICAgKFBPSU5URVIoY19zaG9ydCkgKiAyLCAgICAgICIoMikmPGgiLCAgICAgICAgICAgICAgICgyLCksICAgICAgICAgICBQT0lOVEVSKGNfc2hvcnQpKSwKICAgICAoUE9JTlRFUihjX3Nob3J0KSAqIDIgKiAzLCAgIigzLDIpJjxoIiwgICAgICAgICAgICAgKDMsMiwpLCAgICAgICAgIFBPSU5URVIoY19zaG9ydCkpLAotICAgIChQT0lOVEVSKGNfc2hvcnQgKiAyKSwgICAgICAiJigyKTxoIiwgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgUE9JTlRFUihjX3Nob3J0KSksCisgICAgKFBPSU5URVIoY19zaG9ydCAqIDIpLCAgICAgICImKDIpPGgiLCAgICAgICAgICAgICAgICgpLCAgICAgICAgICAgUE9JTlRFUihjX3Nob3J0KSksCiAKICAgICAjIyBzdHJ1Y3R1cmVzIGFuZCB1bmlvbnMKIAotICAgIChQb2ludCwgICAgICAgICAgICAgICAgICAgICAiVHs8bDp4OjxsOnk6fSIsICAgICAgICBOb25lLCAgICAgICAgICAgUG9pbnQpLAorICAgIChQb2ludCwgICAgICAgICAgICAgICAgICAgICAiVHs8bDp4OjxsOnk6fSIsICAgICAgICAoKSwgICAgICAgICAgIFBvaW50KSwKICAgICAjIHBhY2tlZCBzdHJ1Y3R1cmVzIGRvIG5vdCBpbXBsZW1lbnQgdGhlIHBlcAotICAgIChQYWNrZWRQb2ludCwgICAgICAgICAgICAgICAiQiIsICAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgUGFja2VkUG9pbnQpLAotICAgIChQb2ludDIsICAgICAgICAgICAgICAgICAgICAiVHs8bDp4OjxsOnk6fSIsICAgICAgICBOb25lLCAgICAgICAgICAgUG9pbnQyKSwKLSAgICAoRW1wdHlTdHJ1Y3QsICAgICAgICAgICAgICAgIlR7fSIsICAgICAgICAgICAgICAgICAgTm9uZSwgICAgICAgICAgIEVtcHR5U3RydWN0KSwKKyAgICAoUGFja2VkUG9pbnQsICAgICAgICAgICAgICAgIkIiLCAgICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBQYWNrZWRQb2ludCksCisgICAgKFBvaW50MiwgICAgICAgICAgICAgICAgICAgICJUezxsOng6PGw6eTp9IiwgICAgICAgICgpLCAgICAgICAgICAgUG9pbnQyKSwKKyAgICAoRW1wdHlTdHJ1Y3QsICAgICAgICAgICAgICAgIlR7fSIsICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBFbXB0eVN0cnVjdCksCiAgICAgIyB0aGUgcGVwIGRvZXMndCBzdXBwb3J0IHVuaW9ucwotICAgIChhVW5pb24sICAgICAgICAgICAgICAgICAgICAiQiIsICAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgYVVuaW9uKSwKKyAgICAoYVVuaW9uLCAgICAgICAgICAgICAgICAgICAgIkIiLCAgICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBhVW5pb24pLAogCiAgICAgIyMgcG9pbnRlciB0byBpbmNvbXBsZXRlIHN0cnVjdHVyZQotICAgIChJbmNvbXBsZXRlLCAgICAgICAgICAgICAgICAiQiIsICAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgSW5jb21wbGV0ZSksCi0gICAgKFBPSU5URVIoSW5jb21wbGV0ZSksICAgICAgICImQiIsICAgICAgICAgICAgICAgICAgIE5vbmUsICAgICAgICAgICBQT0lOVEVSKEluY29tcGxldGUpKSwKKyAgICAoSW5jb21wbGV0ZSwgICAgICAgICAgICAgICAgIkIiLCAgICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBJbmNvbXBsZXRlKSwKKyAgICAoUE9JTlRFUihJbmNvbXBsZXRlKSwgICAgICAgIiZCIiwgICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBQT0lOVEVSKEluY29tcGxldGUpKSwKIAogICAgICMgJ0NvbXBsZXRlJyBpcyBhIHN0cnVjdHVyZSB0aGF0IHN0YXJ0cyBpbmNvbXBsZXRlLCBidXQgaXMgY29tcGxldGVkIGFmdGVyIHRoZQogICAgICMgcG9pbnRlciB0eXBlIHRvIGl0IGhhcyBiZWVuIGNyZWF0ZWQuCi0gICAgKENvbXBsZXRlLCAgICAgICAgICAgICAgICAgICJUezxsOmE6fSIsICAgICAgICAgICAgIE5vbmUsICAgICAgICAgICBDb21wbGV0ZSksCisgICAgKENvbXBsZXRlLCAgICAgICAgICAgICAgICAgICJUezxsOmE6fSIsICAgICAgICAgICAgICgpLCAgICAgICAgICAgQ29tcGxldGUpLAogICAgICMgVW5mb3J0dW5hdGVseSB0aGUgcG9pbnRlciBmb3JtYXQgc3RyaW5nIGlzIG5vdCBmaXhlZC4uLgotICAgIChQT0lOVEVSKENvbXBsZXRlKSwgICAgICAgICAiJkIiLCAgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgUE9JTlRFUihDb21wbGV0ZSkpLAorICAgIChQT0lOVEVSKENvbXBsZXRlKSwgICAgICAgICAiJkIiLCAgICAgICAgICAgICAgICAgICAoKSwgICAgICAgICAgIFBPSU5URVIoQ29tcGxldGUpKSwKIAogICAgICMjIG90aGVyCiAKICAgICAjIGZ1bmN0aW9uIHNpZ25hdHVyZXMgYXJlIG5vdCBpbXBsZW1lbnRlZAotICAgIChDRlVOQ1RZUEUoTm9uZSksICAgICAgICAgICAiWHt9IiwgICAgICAgICAgICAgICAgICBOb25lLCAgICAgICAgICAgQ0ZVTkNUWVBFKE5vbmUpKSwKKyAgICAoQ0ZVTkNUWVBFKE5vbmUpLCAgICAgICAgICAgIlh7fSIsICAgICAgICAgICAgICAgICAgKCksICAgICAgICAgICBDRlVOQ1RZUEUoTm9uZSkpLAogCiAgICAgXQogCkBAIC0xODYsMTAgKzE5MCwxMCBAQAogIyBhbmQgbGl0dGxlIGVuZGlhbiBtYWNoaW5lcy4KICMKIGVuZGlhbl90eXBlcyA9IFsKLSAgICAoQkVQb2ludCwgICAgICAgICAgICAgICAgICAgIlR7Pmw6eDo+bDp5On0iLCAgICAgICAgTm9uZSwgICAgICAgICAgIEJFUG9pbnQpLAotICAgIChMRVBvaW50LCAgICAgICAgICAgICAgICAgICAiVHs8bDp4OjxsOnk6fSIsICAgICAgICBOb25lLCAgICAgICAgICAgTEVQb2ludCksCi0gICAgKFBPSU5URVIoQkVQb2ludCksICAgICAgICAgICImVHs+bDp4Oj5sOnk6fSIsICAgICAgIE5vbmUsICAgICAgICAgICBQT0lOVEVSKEJFUG9pbnQpKSwKLSAgICAoUE9JTlRFUihMRVBvaW50KSwgICAgICAgICAgIiZUezxsOng6PGw6eTp9IiwgICAgICAgTm9uZSwgICAgICAgICAgIFBPSU5URVIoTEVQb2ludCkpLAorICAgIChCRVBvaW50LCAgICAgICAgICAgICAgICAgICAiVHs+bDp4Oj5sOnk6fSIsICAgICAgICAoKSwgICAgICAgICAgIEJFUG9pbnQpLAorICAgIChMRVBvaW50LCAgICAgICAgICAgICAgICAgICAiVHs8bDp4OjxsOnk6fSIsICAgICAgICAoKSwgICAgICAgICAgIExFUG9pbnQpLAorICAgIChQT0lOVEVSKEJFUG9pbnQpLCAgICAgICAgICAiJlR7Pmw6eDo+bDp5On0iLCAgICAgICAoKSwgICAgICAgICAgIFBPSU5URVIoQkVQb2ludCkpLAorICAgIChQT0lOVEVSKExFUG9pbnQpLCAgICAgICAgICAiJlR7PGw6eDo8bDp5On0iLCAgICAgICAoKSwgICAgICAgICAgIFBPSU5URVIoTEVQb2ludCkpLAogICAgIF0KIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKZGlmZiAtLWdpdCBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3B5dGhvbl9hcGkucHkgYi9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9weXRob25fYXBpLnB5CmluZGV4IDFmNGM2MDMuLjlkZTM5ODAgMTAwNjQ0Ci0tLSBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3B5dGhvbl9hcGkucHkKKysrIGIvTGliL2N0eXBlcy90ZXN0L3Rlc3RfcHl0aG9uX2FwaS5weQpAQCAtMSw1ICsxLDYgQEAKIGZyb20gY3R5cGVzIGltcG9ydCAqCiBpbXBvcnQgdW5pdHRlc3QsIHN5cworZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBmcm9tIGN0eXBlcy50ZXN0IGltcG9ydCBpc19yZXNvdXJjZV9lbmFibGVkCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTI1LDYgKzI2LDcgQEAKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoYiJhYmNkZWZnaGkiLCAzKSwgYiJhYmMiKQogCisgICAgQHN1cHBvcnQucmVmY291bnRfdGVzdAogICAgIGRlZiB0ZXN0X1B5U3RyaW5nX0Zyb21TdHJpbmcoc2VsZik6CiAgICAgICAgIHB5dGhvbmFwaS5QeUJ5dGVzX0Zyb21TdHJpbmcucmVzdHlwZSA9IHB5X29iamVjdAogICAgICAgICBweXRob25hcGkuUHlCeXRlc19Gcm9tU3RyaW5nLmFyZ3R5cGVzID0gKGNfY2hhcl9wLCkKQEAgLTU2LDYgKzU4LDcgQEAKICAgICAgICAgICAgIGRlbCByZXMKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JjKDQyKSwgcmVmNDIpCiAKKyAgICBAc3VwcG9ydC5yZWZjb3VudF90ZXN0CiAgICAgZGVmIHRlc3RfUHlPYmpfRnJvbVB0cihzZWxmKToKICAgICAgICAgcyA9ICJhYmMgZGVmIGdoaSBqa2wiCiAgICAgICAgIHJlZiA9IGdyYyhzKQpkaWZmIC0tZ2l0IGEvTGliL2N0eXBlcy90ZXN0L3Rlc3RfcmVmY291bnRzLnB5IGIvTGliL2N0eXBlcy90ZXN0L3Rlc3RfcmVmY291bnRzLnB5CmluZGV4IDM1YTgxYWEuLjU2MTNlN2EgMTAwNjQ0Ci0tLSBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3JlZmNvdW50cy5weQorKysgYi9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9yZWZjb3VudHMucHkKQEAgLTEsNCArMSw1IEBACiBpbXBvcnQgdW5pdHRlc3QKK2Zyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogaW1wb3J0IGN0eXBlcwogaW1wb3J0IGdjCiAKQEAgLTEwLDYgKzExLDcgQEAKIAogY2xhc3MgUmVmY291bnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKKyAgICBAc3VwcG9ydC5yZWZjb3VudF90ZXN0CiAgICAgZGVmIHRlc3RfMShzZWxmKToKICAgICAgICAgZnJvbSBzeXMgaW1wb3J0IGdldHJlZmNvdW50IGFzIGdyYwogCkBAIC0zNCw2ICszNiw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JjKGNhbGxiYWNrKSwgMikKIAogCisgICAgQHN1cHBvcnQucmVmY291bnRfdGVzdAogICAgIGRlZiB0ZXN0X3JlZmNvdW50KHNlbGYpOgogICAgICAgICBmcm9tIHN5cyBpbXBvcnQgZ2V0cmVmY291bnQgYXMgZ3JjCiAgICAgICAgIGRlZiBmdW5jKCphcmdzKToKZGlmZiAtLWdpdCBhL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3N0cmluZ3B0ci5weSBiL0xpYi9jdHlwZXMvdGVzdC90ZXN0X3N0cmluZ3B0ci5weQppbmRleCAzZDI1ZmE1Li45NWNkMTYxIDEwMDY0NAotLS0gYS9MaWIvY3R5cGVzL3Rlc3QvdGVzdF9zdHJpbmdwdHIucHkKKysrIGIvTGliL2N0eXBlcy90ZXN0L3Rlc3Rfc3RyaW5ncHRyLnB5CkBAIC0xLDQgKzEsNSBAQAogaW1wb3J0IHVuaXR0ZXN0Citmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIGZyb20gY3R5cGVzIGltcG9ydCAqCiAKIGltcG9ydCBfY3R5cGVzX3Rlc3QKQEAgLTcsNiArOCw3IEBACiAKIGNsYXNzIFN0cmluZ1B0clRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAorICAgIEBzdXBwb3J0LnJlZmNvdW50X3Rlc3QKICAgICBkZWYgdGVzdF9fUE9JTlRFUl9jX2NoYXIoc2VsZik6CiAgICAgICAgIGNsYXNzIFgoU3RydWN0dXJlKToKICAgICAgICAgICAgIF9maWVsZHNfID0gWygic3RyIiwgUE9JTlRFUihjX2NoYXIpKV0KZGlmZiAtLWdpdCBhL0xpYi9jdHlwZXMvdXRpbC5weSBiL0xpYi9jdHlwZXMvdXRpbC5weQppbmRleCAxYmI3ZDFkLi41NTU1YjJlIDEwMDY0NAotLS0gYS9MaWIvY3R5cGVzL3V0aWwucHkKKysrIGIvTGliL2N0eXBlcy91dGlsLnB5CkBAIC0xLDUgKzEsNiBAQAogaW1wb3J0IHN5cywgb3MKIGltcG9ydCBjb250ZXh0bGliCitpbXBvcnQgc3VicHJvY2VzcwogCiAjIGZpbmRfbGlicmFyeShuYW1lKSByZXR1cm5zIHRoZSBwYXRobmFtZSBvZiBhIGxpYnJhcnksIG9yIE5vbmUuCiBpZiBvcy5uYW1lID09ICJudCI6CkBAIC0zOSw4ICs0MCw4IEBACiAgICAgICAgICAgICBjbGlibmFtZSA9ICdtc3ZjciVkJyAlICh2ZXJzaW9uICogMTApCiAKICAgICAgICAgIyBJZiBweXRob24gd2FzIGJ1aWx0IHdpdGggaW4gZGVidWcgbW9kZQotICAgICAgICBpbXBvcnQgaW1wCi0gICAgICAgIGlmIGltcC5nZXRfc3VmZml4ZXMoKVswXVswXSA9PSAnX2QucHlkJzoKKyAgICAgICAgaW1wb3J0IGltcG9ydGxpYi5tYWNoaW5lcnkKKyAgICAgICAgaWYgJ19kLnB5ZCcgaW4gaW1wb3J0bGliLm1hY2hpbmVyeS5FWFRFTlNJT05fU1VGRklYRVM6CiAgICAgICAgICAgICBjbGlibmFtZSArPSAnZCcKICAgICAgICAgcmV0dXJuIGNsaWJuYW1lKycuZGxsJwogCkBAIC0xMzYsMTYgKzEzNywxMiBAQAogICAgICAgICAgICAgcnYgPSBmLmNsb3NlKCkKICAgICAgICAgICAgIGlmIHJ2ID09IDEwOgogICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoJ29iamR1bXAgY29tbWFuZCBub3QgZm91bmQnKQotICAgICAgICAgICAgd2l0aCBjb250ZXh0bGliLmNsb3Npbmcob3MucG9wZW4oY21kKSkgYXMgZjoKLSAgICAgICAgICAgICAgICBkYXRhID0gZi5yZWFkKCkKLSAgICAgICAgICAgIHJlcyA9IHJlLnNlYXJjaChyJ1xzU09OQU1FXHMrKFteXHNdKyknLCBkYXRhKQorICAgICAgICAgICAgcmVzID0gcmUuc2VhcmNoKHInXHNTT05BTUVccysoW15cc10rKScsIGR1bXApCiAgICAgICAgICAgICBpZiBub3QgcmVzOgogICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgICAgICByZXR1cm4gcmVzLmdyb3VwKDEpCiAKLSAgICBpZiAoc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoImZyZWVic2QiKQotICAgICAgICBvciBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgib3BlbmJzZCIpCi0gICAgICAgIG9yIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJkcmFnb25mbHkiKSk6CisgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoKCJmcmVlYnNkIiwgIm9wZW5ic2QiLCAiZHJhZ29uZmx5IikpOgogCiAgICAgICAgIGRlZiBfbnVtX3ZlcnNpb24obGlibmFtZSk6CiAgICAgICAgICAgICAjICJsaWJ4eXouc28uTUFKT1IuTUlOT1IiID0+IFsgTUFKT1IsIE1JTk9SIF0KQEAgLTE3NCw5ICsxNzEsOSBAQAogICAgICAgICBkZWYgX2ZpbmRTb25hbWVfbGRjb25maWcobmFtZSk6CiAgICAgICAgICAgICBpbXBvcnQgc3RydWN0CiAgICAgICAgICAgICBpZiBzdHJ1Y3QuY2FsY3NpemUoJ2wnKSA9PSA0OgotICAgICAgICAgICAgICAgIG1hY2hpbmUgPSBvcy51bmFtZSgpWzRdICsgJy0zMicKKyAgICAgICAgICAgICAgICBtYWNoaW5lID0gb3MudW5hbWUoKS5tYWNoaW5lICsgJy0zMicKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbWFjaGluZSA9IG9zLnVuYW1lKClbNF0gKyAnLTY0JworICAgICAgICAgICAgICAgIG1hY2hpbmUgPSBvcy51bmFtZSgpLm1hY2hpbmUgKyAnLTY0JwogICAgICAgICAgICAgbWFjaF9tYXAgPSB7CiAgICAgICAgICAgICAgICAgJ3g4Nl82NC02NCc6ICdsaWJjNix4ODYtNjQnLAogICAgICAgICAgICAgICAgICdwcGM2NC02NCc6ICdsaWJjNiw2NGJpdCcsCkBAIC0xODcsMTMgKzE4NCwxOSBAQAogICAgICAgICAgICAgYWJpX3R5cGUgPSBtYWNoX21hcC5nZXQobWFjaGluZSwgJ2xpYmM2JykKIAogICAgICAgICAgICAgIyBYWFggYXNzdW1pbmcgR0xJQkMncyBsZGNvbmZpZyAod2l0aCBvcHRpb24gLXApCi0gICAgICAgICAgICBleHByID0gcidccysobGliJXNcLlteXHNdKylccytcKCVzJyAlIChyZS5lc2NhcGUobmFtZSksIGFiaV90eXBlKQotICAgICAgICAgICAgd2l0aCBjb250ZXh0bGliLmNsb3Npbmcob3MucG9wZW4oJ0xDX0FMTD1DIExBTkc9QyAvc2Jpbi9sZGNvbmZpZyAtcCAyPi9kZXYvbnVsbCcpKSBhcyBmOgotICAgICAgICAgICAgICAgIGRhdGEgPSBmLnJlYWQoKQotICAgICAgICAgICAgcmVzID0gcmUuc2VhcmNoKGV4cHIsIGRhdGEpCi0gICAgICAgICAgICBpZiBub3QgcmVzOgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICByZXR1cm4gcmVzLmdyb3VwKDEpCisgICAgICAgICAgICByZWdleCA9IG9zLmZzZW5jb2RlKAorICAgICAgICAgICAgICAgICdccysobGliJXNcLlteXHNdKylccytcKCVzJyAlIChyZS5lc2NhcGUobmFtZSksIGFiaV90eXBlKSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB3aXRoIHN1YnByb2Nlc3MuUG9wZW4oWycvc2Jpbi9sZGNvbmZpZycsICctcCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLkRFVk5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj17J0xDX0FMTCc6ICdDJywgJ0xBTkcnOiAnQyd9KSBhcyBwOgorICAgICAgICAgICAgICAgICAgICByZXMgPSByZS5zZWFyY2gocmVnZXgsIHAuc3Rkb3V0LnJlYWQoKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgcmVzOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9zLmZzZGVjb2RlKHJlcy5ncm91cCgxKSkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKIAogICAgICAgICBkZWYgZmluZF9saWJyYXJ5KG5hbWUpOgogICAgICAgICAgICAgcmV0dXJuIF9maW5kU29uYW1lX2xkY29uZmlnKG5hbWUpIG9yIF9nZXRfc29uYW1lKF9maW5kTGliX2djYyhuYW1lKSkKZGlmZiAtLWdpdCBhL0xpYi9jdXJzZXMvX19pbml0X18ucHkgYi9MaWIvY3Vyc2VzL19faW5pdF9fLnB5CmluZGV4IGEzZTlkZWYuLjdiZmE2NjcgMTAwNjQ0Ci0tLSBhL0xpYi9jdXJzZXMvX19pbml0X18ucHkKKysrIGIvTGliL2N1cnNlcy9fX2luaXRfXy5weQpAQCAtMTEsNyArMTEsNiBAQAogIiIiCiAKIGZyb20gX2N1cnNlcyBpbXBvcnQgKgotZnJvbSBjdXJzZXMud3JhcHBlciBpbXBvcnQgd3JhcHBlcgogaW1wb3J0IG9zIGFzIF9vcwogaW1wb3J0IHN5cyBhcyBfc3lzCiAKQEAgLTU1LDMgKzU0LDQ4IEBACiAgICAgaGFzX2tleQogZXhjZXB0IE5hbWVFcnJvcjoKICAgICBmcm9tIC5oYXNfa2V5IGltcG9ydCBoYXNfa2V5CisKKyMgV3JhcHBlciBmb3IgdGhlIGVudGlyZSBjdXJzZXMtYmFzZWQgYXBwbGljYXRpb24uICBSdW5zIGEgZnVuY3Rpb24gd2hpY2gKKyMgc2hvdWxkIGJlIHRoZSByZXN0IG9mIHlvdXIgY3Vyc2VzLWJhc2VkIGFwcGxpY2F0aW9uLiAgSWYgdGhlIGFwcGxpY2F0aW9uCisjIHJhaXNlcyBhbiBleGNlcHRpb24sIHdyYXBwZXIoKSB3aWxsIHJlc3RvcmUgdGhlIHRlcm1pbmFsIHRvIGEgc2FuZSBzdGF0ZSBzbworIyB5b3UgY2FuIHJlYWQgdGhlIHJlc3VsdGluZyB0cmFjZWJhY2suCisKK2RlZiB3cmFwcGVyKGZ1bmMsICphcmdzLCAqKmt3ZHMpOgorICAgICIiIldyYXBwZXIgZnVuY3Rpb24gdGhhdCBpbml0aWFsaXplcyBjdXJzZXMgYW5kIGNhbGxzIGFub3RoZXIgZnVuY3Rpb24sCisgICAgcmVzdG9yaW5nIG5vcm1hbCBrZXlib2FyZC9zY3JlZW4gYmVoYXZpb3Igb24gZXJyb3IuCisgICAgVGhlIGNhbGxhYmxlIG9iamVjdCAnZnVuYycgaXMgdGhlbiBwYXNzZWQgdGhlIG1haW4gd2luZG93ICdzdGRzY3InCisgICAgYXMgaXRzIGZpcnN0IGFyZ3VtZW50LCBmb2xsb3dlZCBieSBhbnkgb3RoZXIgYXJndW1lbnRzIHBhc3NlZCB0bworICAgIHdyYXBwZXIoKS4KKyAgICAiIiIKKworICAgIHRyeToKKyAgICAgICAgIyBJbml0aWFsaXplIGN1cnNlcworICAgICAgICBzdGRzY3IgPSBpbml0c2NyKCkKKworICAgICAgICAjIFR1cm4gb2ZmIGVjaG9pbmcgb2Yga2V5cywgYW5kIGVudGVyIGNicmVhayBtb2RlLAorICAgICAgICAjIHdoZXJlIG5vIGJ1ZmZlcmluZyBpcyBwZXJmb3JtZWQgb24ga2V5Ym9hcmQgaW5wdXQKKyAgICAgICAgbm9lY2hvKCkKKyAgICAgICAgY2JyZWFrKCkKKworICAgICAgICAjIEluIGtleXBhZCBtb2RlLCBlc2NhcGUgc2VxdWVuY2VzIGZvciBzcGVjaWFsIGtleXMKKyAgICAgICAgIyAobGlrZSB0aGUgY3Vyc29yIGtleXMpIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYW5kCisgICAgICAgICMgYSBzcGVjaWFsIHZhbHVlIGxpa2UgY3Vyc2VzLktFWV9MRUZUIHdpbGwgYmUgcmV0dXJuZWQKKyAgICAgICAgc3Rkc2NyLmtleXBhZCgxKQorCisgICAgICAgICMgU3RhcnQgY29sb3IsIHRvby4gIEhhcm1sZXNzIGlmIHRoZSB0ZXJtaW5hbCBkb2Vzbid0IGhhdmUKKyAgICAgICAgIyBjb2xvcjsgdXNlciBjYW4gdGVzdCB3aXRoIGhhc19jb2xvcigpIGxhdGVyIG9uLiAgVGhlIHRyeS9jYXRjaAorICAgICAgICAjIHdvcmtzIGFyb3VuZCBhIG1pbm9yIGJpdCBvZiBvdmVyLWNvbnNjaWVudGlvdXNuZXNzIGluIHRoZSBjdXJzZXMKKyAgICAgICAgIyBtb2R1bGUgLS0gdGhlIGVycm9yIHJldHVybiBmcm9tIEMgc3RhcnRfY29sb3IoKSBpcyBpZ25vcmFibGUuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHN0YXJ0X2NvbG9yKCkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHJldHVybiBmdW5jKHN0ZHNjciwgKmFyZ3MsICoqa3dkcykKKyAgICBmaW5hbGx5OgorICAgICAgICAjIFNldCBldmVyeXRoaW5nIGJhY2sgdG8gbm9ybWFsCisgICAgICAgIGlmICdzdGRzY3InIGluIGxvY2FscygpOgorICAgICAgICAgICAgc3Rkc2NyLmtleXBhZCgwKQorICAgICAgICAgICAgZWNobygpCisgICAgICAgICAgICBub2NicmVhaygpCisgICAgICAgICAgICBlbmR3aW4oKQpkaWZmIC0tZ2l0IGEvTGliL2N1cnNlcy93cmFwcGVyLnB5IGIvTGliL2N1cnNlcy93cmFwcGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTgzY2U3Li4wMDAwMDAwCi0tLSBhL0xpYi9jdXJzZXMvd3JhcHBlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLSIiImN1cnNlcy53cmFwcGVyCi0KLUNvbnRhaW5zIG9uZSBmdW5jdGlvbiwgd3JhcHBlcigpLCB3aGljaCBydW5zIGFub3RoZXIgZnVuY3Rpb24gd2hpY2gKLXNob3VsZCBiZSB0aGUgcmVzdCBvZiB5b3VyIGN1cnNlcy1iYXNlZCBhcHBsaWNhdGlvbi4gIElmIHRoZQotYXBwbGljYXRpb24gcmFpc2VzIGFuIGV4Y2VwdGlvbiwgd3JhcHBlcigpIHdpbGwgcmVzdG9yZSB0aGUgdGVybWluYWwKLXRvIGEgc2FuZSBzdGF0ZSBzbyB5b3UgY2FuIHJlYWQgdGhlIHJlc3VsdGluZyB0cmFjZWJhY2suCi0KLSIiIgotCi1pbXBvcnQgY3Vyc2VzCi0KLWRlZiB3cmFwcGVyKGZ1bmMsICphcmdzLCAqKmt3ZHMpOgotICAgICIiIldyYXBwZXIgZnVuY3Rpb24gdGhhdCBpbml0aWFsaXplcyBjdXJzZXMgYW5kIGNhbGxzIGFub3RoZXIgZnVuY3Rpb24sCi0gICAgcmVzdG9yaW5nIG5vcm1hbCBrZXlib2FyZC9zY3JlZW4gYmVoYXZpb3Igb24gZXJyb3IuCi0gICAgVGhlIGNhbGxhYmxlIG9iamVjdCAnZnVuYycgaXMgdGhlbiBwYXNzZWQgdGhlIG1haW4gd2luZG93ICdzdGRzY3InCi0gICAgYXMgaXRzIGZpcnN0IGFyZ3VtZW50LCBmb2xsb3dlZCBieSBhbnkgb3RoZXIgYXJndW1lbnRzIHBhc3NlZCB0bwotICAgIHdyYXBwZXIoKS4KLSAgICAiIiIKLQotICAgIHRyeToKLSAgICAgICAgIyBJbml0aWFsaXplIGN1cnNlcwotICAgICAgICBzdGRzY3IgPSBjdXJzZXMuaW5pdHNjcigpCi0KLSAgICAgICAgIyBUdXJuIG9mZiBlY2hvaW5nIG9mIGtleXMsIGFuZCBlbnRlciBjYnJlYWsgbW9kZSwKLSAgICAgICAgIyB3aGVyZSBubyBidWZmZXJpbmcgaXMgcGVyZm9ybWVkIG9uIGtleWJvYXJkIGlucHV0Ci0gICAgICAgIGN1cnNlcy5ub2VjaG8oKQotICAgICAgICBjdXJzZXMuY2JyZWFrKCkKLQotICAgICAgICAjIEluIGtleXBhZCBtb2RlLCBlc2NhcGUgc2VxdWVuY2VzIGZvciBzcGVjaWFsIGtleXMKLSAgICAgICAgIyAobGlrZSB0aGUgY3Vyc29yIGtleXMpIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYW5kCi0gICAgICAgICMgYSBzcGVjaWFsIHZhbHVlIGxpa2UgY3Vyc2VzLktFWV9MRUZUIHdpbGwgYmUgcmV0dXJuZWQKLSAgICAgICAgc3Rkc2NyLmtleXBhZCgxKQotCi0gICAgICAgICMgU3RhcnQgY29sb3IsIHRvby4gIEhhcm1sZXNzIGlmIHRoZSB0ZXJtaW5hbCBkb2Vzbid0IGhhdmUKLSAgICAgICAgIyBjb2xvcjsgdXNlciBjYW4gdGVzdCB3aXRoIGhhc19jb2xvcigpIGxhdGVyIG9uLiAgVGhlIHRyeS9jYXRjaAotICAgICAgICAjIHdvcmtzIGFyb3VuZCBhIG1pbm9yIGJpdCBvZiBvdmVyLWNvbnNjaWVudGlvdXNuZXNzIGluIHRoZSBjdXJzZXMKLSAgICAgICAgIyBtb2R1bGUgLS0gdGhlIGVycm9yIHJldHVybiBmcm9tIEMgc3RhcnRfY29sb3IoKSBpcyBpZ25vcmFibGUuCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGN1cnNlcy5zdGFydF9jb2xvcigpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICByZXR1cm4gZnVuYyhzdGRzY3IsICphcmdzLCAqKmt3ZHMpCi0gICAgZmluYWxseToKLSAgICAgICAgIyBTZXQgZXZlcnl0aGluZyBiYWNrIHRvIG5vcm1hbAotICAgICAgICBpZiAnc3Rkc2NyJyBpbiBsb2NhbHMoKToKLSAgICAgICAgICAgIHN0ZHNjci5rZXlwYWQoMCkKLSAgICAgICAgICAgIGN1cnNlcy5lY2hvKCkKLSAgICAgICAgICAgIGN1cnNlcy5ub2NicmVhaygpCi0gICAgICAgICAgICBjdXJzZXMuZW5kd2luKCkKZGlmZiAtLWdpdCBhL0xpYi9kYXRldGltZS5weSBiL0xpYi9kYXRldGltZS5weQppbmRleCA2NWY5NWQyLi5hMTVjNmIwIDEwMDY0NAotLS0gYS9MaWIvZGF0ZXRpbWUucHkKKysrIGIvTGliL2RhdGV0aW1lLnB5CkBAIC0xNzIsMTAgKzE3Miw2IEBACiAKICMgQ29ycmVjdGx5IHN1YnN0aXR1dGUgZm9yICV6IGFuZCAlWiBlc2NhcGVzIGluIHN0cmZ0aW1lIGZvcm1hdHMuCiBkZWYgX3dyYXBfc3RyZnRpbWUob2JqZWN0LCBmb3JtYXQsIHRpbWV0dXBsZSk6Ci0gICAgeWVhciA9IHRpbWV0dXBsZVswXQotICAgIGlmIHllYXIgPCAxMDAwOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ5ZWFyPSVkIGlzIGJlZm9yZSAxMDAwOyB0aGUgZGF0ZXRpbWUgc3RyZnRpbWUoKSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIm1ldGhvZHMgcmVxdWlyZSB5ZWFyID49IDEwMDAiICUgeWVhcikKICAgICAjIERvbid0IGNhbGwgdXRjb2Zmc2V0KCkgb3IgdHpuYW1lKCkgdW5sZXNzIGFjdHVhbGx5IG5lZWRlZC4KICAgICBmcmVwbGFjZSA9IE5vbmUgIyB0aGUgc3RyaW5nIHRvIHVzZSBmb3IgJWYKICAgICB6cmVwbGFjZSA9IE5vbmUgIyB0aGUgc3RyaW5nIHRvIHVzZSBmb3IgJXoKQEAgLTEwNjksMTMgKzEwNjUsMTMgQEAKIAogICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgogICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCB0aW1lKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9jbXAob3RoZXIpID09IDAKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9jbXAob3RoZXIsIGFsbG93X21peGVkPVRydWUpID09IDAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CiAgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIHRpbWUpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NtcChvdGhlcikgIT0gMAorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NtcChvdGhlciwgYWxsb3dfbWl4ZWQ9VHJ1ZSkgIT0gMAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKIApAQCAtMTEwMyw3ICsxMDk5LDcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIF9jbXBlcnJvcihzZWxmLCBvdGhlcikKIAotICAgIGRlZiBfY21wKHNlbGYsIG90aGVyKToKKyAgICBkZWYgX2NtcChzZWxmLCBvdGhlciwgYWxsb3dfbWl4ZWQ9RmFsc2UpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShvdGhlciwgdGltZSkKICAgICAgICAgbXl0eiA9IHNlbGYuX3R6aW5mbwogICAgICAgICBvdHR6ID0gb3RoZXIuX3R6aW5mbwpAQCAtMTEyMiw3ICsxMTE4LDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgIChvdGhlci5faG91ciwgb3RoZXIuX21pbnV0ZSwgb3RoZXIuX3NlY29uZCwKICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyLl9taWNyb3NlY29uZCkpCiAgICAgICAgIGlmIG15b2ZmIGlzIE5vbmUgb3Igb3RvZmYgaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiY2Fubm90IGNvbXBhcmUgbmFpdmUgYW5kIGF3YXJlIHRpbWVzIikKKyAgICAgICAgICAgIGlmIGFsbG93X21peGVkOgorICAgICAgICAgICAgICAgIHJldHVybiAyICMgYXJiaXRyYXJ5IG5vbi16ZXJvIHZhbHVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiY2Fubm90IGNvbXBhcmUgbmFpdmUgYW5kIGF3YXJlIHRpbWVzIikKICAgICAgICAgbXloaG1tID0gc2VsZi5faG91ciAqIDYwICsgc2VsZi5fbWludXRlIC0gbXlvZmYvL3RpbWVkZWx0YShtaW51dGVzPTEpCiAgICAgICAgIG90aGhtbSA9IG90aGVyLl9ob3VyICogNjAgKyBvdGhlci5fbWludXRlIC0gb3RvZmYvL3RpbWVkZWx0YShtaW51dGVzPTEpCiAgICAgICAgIHJldHVybiBfY21wKChteWhobW0sIHNlbGYuX3NlY29uZCwgc2VsZi5fbWljcm9zZWNvbmQpLApAQCAtMTM2NCw3ICsxMzYzLDcgQEAKICAgICAgICAgY29udmVydGVyID0gX3RpbWUubG9jYWx0aW1lIGlmIHR6IGlzIE5vbmUgZWxzZSBfdGltZS5nbXRpbWUKIAogICAgICAgICB0LCBmcmFjID0gZGl2bW9kKHQsIDEuMCkKLSAgICAgICAgdXMgPSByb3VuZChmcmFjICogMWU2KQorICAgICAgICB1cyA9IGludChmcmFjICogMWU2KQogCiAgICAgICAgICMgSWYgdGltZXN0YW1wIGlzIGxlc3MgdGhhbiBvbmUgbWljcm9zZWNvbmQgc21hbGxlciB0aGFuIGEKICAgICAgICAgIyBmdWxsIHNlY29uZCwgdXMgY2FuIGJlIHJvdW5kZWQgdXAgdG8gMTAwMDAwMC4gIEluIHRoaXMgY2FzZSwKQEAgLTEzODQsNyArMTM4Myw3IEBACiAgICAgZGVmIHV0Y2Zyb210aW1lc3RhbXAoY2xzLCB0KToKICAgICAgICAgIkNvbnN0cnVjdCBhIFVUQyBkYXRldGltZSBmcm9tIGEgUE9TSVggdGltZXN0YW1wIChsaWtlIHRpbWUudGltZSgpKS4iCiAgICAgICAgIHQsIGZyYWMgPSBkaXZtb2QodCwgMS4wKQotICAgICAgICB1cyA9IHJvdW5kKGZyYWMgKiAxZTYpCisgICAgICAgIHVzID0gaW50KGZyYWMgKiAxZTYpCiAKICAgICAgICAgIyBJZiB0aW1lc3RhbXAgaXMgbGVzcyB0aGFuIG9uZSBtaWNyb3NlY29uZCBzbWFsbGVyIHRoYW4gYQogICAgICAgICAjIGZ1bGwgc2Vjb25kLCB1cyBjYW4gYmUgcm91bmRlZCB1cCB0byAxMDAwMDAwLiAgSW4gdGhpcyBjYXNlLApAQCAtMTQzOCw2ICsxNDM3LDE1IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5ob3VyLCBzZWxmLm1pbnV0ZSwgc2VsZi5zZWNvbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0KQogCisgICAgZGVmIHRpbWVzdGFtcChzZWxmKToKKyAgICAgICAgIlJldHVybiBQT1NJWCB0aW1lc3RhbXAgYXMgZmxvYXQiCisgICAgICAgIGlmIHNlbGYuX3R6aW5mbyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIF90aW1lLm1rdGltZSgoc2VsZi55ZWFyLCBzZWxmLm1vbnRoLCBzZWxmLmRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaG91ciwgc2VsZi5taW51dGUsIHNlbGYuc2Vjb25kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIC0xLCAtMSkpICsgc2VsZi5taWNyb3NlY29uZCAvIDFlNgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIChzZWxmIC0gX0VQT0NIKS50b3RhbF9zZWNvbmRzKCkKKwogICAgIGRlZiB1dGN0aW1ldHVwbGUoc2VsZik6CiAgICAgICAgICJSZXR1cm4gVVRDIHRpbWUgdHVwbGUgY29tcGF0aWJsZSB3aXRoIHRpbWUuZ210aW1lKCkuIgogICAgICAgICBvZmZzZXQgPSBzZWxmLnV0Y29mZnNldCgpCkBAIC0xNDg1LDggKzE0OTMsMzIgQEAKICAgICAgICAgcmV0dXJuIGRhdGV0aW1lKHllYXIsIG1vbnRoLCBkYXksIGhvdXIsIG1pbnV0ZSwgc2Vjb25kLAogICAgICAgICAgICAgICAgICAgICAgICAgICBtaWNyb3NlY29uZCwgdHppbmZvKQogCi0gICAgZGVmIGFzdGltZXpvbmUoc2VsZiwgdHopOgotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh0eiwgdHppbmZvKToKKyAgICBkZWYgYXN0aW1lem9uZShzZWxmLCB0ej1Ob25lKToKKyAgICAgICAgaWYgdHogaXMgTm9uZToKKyAgICAgICAgICAgIGlmIHNlbGYudHppbmZvIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYXN0aW1lem9uZSgpIHJlcXVpcmVzIGFuIGF3YXJlIGRhdGV0aW1lIikKKyAgICAgICAgICAgIHRzID0gKHNlbGYgLSBfRVBPQ0gpIC8vIHRpbWVkZWx0YShzZWNvbmRzPTEpCisgICAgICAgICAgICBsb2NhbHRtID0gX3RpbWUubG9jYWx0aW1lKHRzKQorICAgICAgICAgICAgbG9jYWwgPSBkYXRldGltZSgqbG9jYWx0bVs6Nl0pCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBFeHRyYWN0IFRaIGRhdGEgaWYgYXZhaWxhYmxlCisgICAgICAgICAgICAgICAgZ210b2ZmID0gbG9jYWx0bS50bV9nbXRvZmYKKyAgICAgICAgICAgICAgICB6b25lID0gbG9jYWx0bS50bV96b25lCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgIyBDb21wdXRlIFVUQyBvZmZzZXQgYW5kIGNvbXBhcmUgd2l0aCB0aGUgdmFsdWUgaW1wbGllZAorICAgICAgICAgICAgICAgICMgYnkgdG1faXNkc3QuICBJZiB0aGUgdmFsdWVzIG1hdGNoLCB1c2UgdGhlIHpvbmUgbmFtZQorICAgICAgICAgICAgICAgICMgaW1wbGllZCBieSB0bV9pc2RzdC4KKyAgICAgICAgICAgICAgICBkZWx0YSA9IGxvY2FsIC0gZGF0ZXRpbWUoKl90aW1lLmdtdGltZSh0cylbOjZdKQorICAgICAgICAgICAgICAgIGRzdCA9IF90aW1lLmRheWxpZ2h0IGFuZCBsb2NhbHRtLnRtX2lzZHN0ID4gMAorICAgICAgICAgICAgICAgIGdtdG9mZiA9IC0oX3RpbWUuYWx0em9uZSBpZiBkc3QgZWxzZSBfdGltZS50aW1lem9uZSkKKyAgICAgICAgICAgICAgICBpZiBkZWx0YSA9PSB0aW1lZGVsdGEoc2Vjb25kcz1nbXRvZmYpOgorICAgICAgICAgICAgICAgICAgICB0eiA9IHRpbWV6b25lKGRlbHRhLCBfdGltZS50em5hbWVbZHN0XSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB0eiA9IHRpbWV6b25lKGRlbHRhKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0eiA9IHRpbWV6b25lKHRpbWVkZWx0YShzZWNvbmRzPWdtdG9mZiksIHpvbmUpCisKKyAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZSh0eiwgdHppbmZvKToKICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigidHogYXJndW1lbnQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiB0emluZm8iKQogCiAgICAgICAgIG15dHogPSBzZWxmLnR6aW5mbwpAQCAtMTYxMCw3ICsxNjQyLDcgQEAKIAogICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgogICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCBkYXRldGltZSk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fY21wKG90aGVyKSA9PSAwCisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY21wKG90aGVyLCBhbGxvd19taXhlZD1UcnVlKSA9PSAwCiAgICAgICAgIGVsaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIGRhdGUpOgogICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCiAgICAgICAgIGVsc2U6CkBAIC0xNjE4LDcgKzE2NTAsNyBAQAogCiAgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CiAgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIGRhdGV0aW1lKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9jbXAob3RoZXIpICE9IDAKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9jbXAob3RoZXIsIGFsbG93X21peGVkPVRydWUpICE9IDAKICAgICAgICAgZWxpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgZGF0ZSk6CiAgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKICAgICAgICAgZWxzZToKQEAgLTE2NTYsNyArMTY4OCw3IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBfY21wZXJyb3Ioc2VsZiwgb3RoZXIpCiAKLSAgICBkZWYgX2NtcChzZWxmLCBvdGhlcik6CisgICAgZGVmIF9jbXAoc2VsZiwgb3RoZXIsIGFsbG93X21peGVkPUZhbHNlKToKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob3RoZXIsIGRhdGV0aW1lKQogICAgICAgICBteXR6ID0gc2VsZi5fdHppbmZvCiAgICAgICAgIG90dHogPSBvdGhlci5fdHppbmZvCkBAIC0xNjY1LDEwICsxNjk3LDggQEAKICAgICAgICAgaWYgbXl0eiBpcyBvdHR6OgogICAgICAgICAgICAgYmFzZV9jb21wYXJlID0gVHJ1ZQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgbXl0eiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBteW9mZiA9IHNlbGYudXRjb2Zmc2V0KCkKLSAgICAgICAgICAgIGlmIG90dHogaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgb3RvZmYgPSBvdGhlci51dGNvZmZzZXQoKQorICAgICAgICAgICAgbXlvZmYgPSBzZWxmLnV0Y29mZnNldCgpCisgICAgICAgICAgICBvdG9mZiA9IG90aGVyLnV0Y29mZnNldCgpCiAgICAgICAgICAgICBiYXNlX2NvbXBhcmUgPSBteW9mZiA9PSBvdG9mZgogCiAgICAgICAgIGlmIGJhc2VfY29tcGFyZToKQEAgLTE2NzksNyArMTcwOSwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIuX2hvdXIsIG90aGVyLl9taW51dGUsIG90aGVyLl9zZWNvbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlci5fbWljcm9zZWNvbmQpKQogICAgICAgICBpZiBteW9mZiBpcyBOb25lIG9yIG90b2ZmIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImNhbm5vdCBjb21wYXJlIG5haXZlIGFuZCBhd2FyZSBkYXRldGltZXMiKQorICAgICAgICAgICAgaWYgYWxsb3dfbWl4ZWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIDIgIyBhcmJpdHJhcnkgbm9uLXplcm8gdmFsdWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJjYW5ub3QgY29tcGFyZSBuYWl2ZSBhbmQgYXdhcmUgZGF0ZXRpbWVzIikKICAgICAgICAgIyBYWFggV2hhdCBmb2xsb3dzIGNvdWxkIGJlIGRvbmUgbW9yZSBlZmZpY2llbnRseS4uLgogICAgICAgICBkaWZmID0gc2VsZiAtIG90aGVyICAgICAjIHRoaXMgd2lsbCB0YWtlIG9mZnNldHMgaW50byBhY2NvdW50CiAgICAgICAgIGlmIGRpZmYuZGF5cyA8IDA6CkBAIC0xODkzLDcgKzE5MjYsNyBAQAogdGltZXpvbmUudXRjID0gdGltZXpvbmUuX2NyZWF0ZSh0aW1lZGVsdGEoMCkpCiB0aW1lem9uZS5taW4gPSB0aW1lem9uZS5fY3JlYXRlKHRpbWV6b25lLl9taW5vZmZzZXQpCiB0aW1lem9uZS5tYXggPSB0aW1lem9uZS5fY3JlYXRlKHRpbWV6b25lLl9tYXhvZmZzZXQpCi0KK19FUE9DSCA9IGRhdGV0aW1lKDE5NzAsIDEsIDEsIHR6aW5mbz10aW1lem9uZS51dGMpCiAiIiIKIFNvbWUgdGltZSB6b25lIGFsZ2VicmEuICBGb3IgYSBkYXRldGltZSB4LCBsZXQKICAgICB4Lm4gPSB4IHN0cmlwcGVkIG9mIGl0cyB0aW1lem9uZSAtLSBpdHMgbmFpdmUgdGltZS4KZGlmZiAtLWdpdCBhL0xpYi9kZWNpbWFsLnB5IGIvTGliL2RlY2ltYWwucHkKaW5kZXggZjUyNzdjNS4uNmJkNjU1YiAxMDA2NDQKLS0tIGEvTGliL2RlY2ltYWwucHkKKysrIGIvTGliL2RlY2ltYWwucHkKQEAgLTQ2LDggKzQ2LDggQEAKIERlY2ltYWwoJy0wLjAxMjMnKQogPj4+IERlY2ltYWwoMTIzNDU2KQogRGVjaW1hbCgnMTIzNDU2JykKLT4+PiBEZWNpbWFsKCcxMjMuNDVlMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnKQotRGVjaW1hbCgnMS4yMzQ1RSsxMjM0NTY3ODkwMTIzNDU2Nzg5MicpCis+Pj4gRGVjaW1hbCgnMTIzLjQ1ZTEyMzQ1Njc4JykKK0RlY2ltYWwoJzEuMjM0NUUrMTIzNDU2ODAnKQogPj4+IERlY2ltYWwoJzEuMzMnKSArIERlY2ltYWwoJzEuMjcnKQogRGVjaW1hbCgnMi42MCcpCiA+Pj4gRGVjaW1hbCgnMTIuMzQnKSArIERlY2ltYWwoJzMuODcnKSAtIERlY2ltYWwoJzE4LjQxJykKQEAgLTEyMiwxMyArMTIyLDIwIEBACiAgICAgIyBFeGNlcHRpb25zCiAgICAgJ0RlY2ltYWxFeGNlcHRpb24nLCAnQ2xhbXBlZCcsICdJbnZhbGlkT3BlcmF0aW9uJywgJ0RpdmlzaW9uQnlaZXJvJywKICAgICAnSW5leGFjdCcsICdSb3VuZGVkJywgJ1N1Ym5vcm1hbCcsICdPdmVyZmxvdycsICdVbmRlcmZsb3cnLAorICAgICdGbG9hdE9wZXJhdGlvbicsCiAKICAgICAjIENvbnN0YW50cyBmb3IgdXNlIGluIHNldHRpbmcgdXAgY29udGV4dHMKICAgICAnUk9VTkRfRE9XTicsICdST1VORF9IQUxGX1VQJywgJ1JPVU5EX0hBTEZfRVZFTicsICdST1VORF9DRUlMSU5HJywKICAgICAnUk9VTkRfRkxPT1InLCAnUk9VTkRfVVAnLCAnUk9VTkRfSEFMRl9ET1dOJywgJ1JPVU5EXzA1VVAnLAogCiAgICAgIyBGdW5jdGlvbnMgZm9yIG1hbmlwdWxhdGluZyBjb250ZXh0cwotICAgICdzZXRjb250ZXh0JywgJ2dldGNvbnRleHQnLCAnbG9jYWxjb250ZXh0JworICAgICdzZXRjb250ZXh0JywgJ2dldGNvbnRleHQnLCAnbG9jYWxjb250ZXh0JywKKworICAgICMgTGltaXRzIGZvciB0aGUgQyB2ZXJzaW9uIGZvciBjb21wYXRpYmlsaXR5CisgICAgJ01BWF9QUkVDJywgICdNQVhfRU1BWCcsICdNSU5fRU1JTicsICdNSU5fRVRJTlknLAorCisgICAgIyBDIHZlcnNpb246IGNvbXBpbGUgdGltZSBjaG9pY2UgdGhhdCBlbmFibGVzIHRoZSB0aHJlYWQgbG9jYWwgY29udGV4dAorICAgICdIQVZFX1RIUkVBRFMnCiBdCiAKIF9fdmVyc2lvbl9fID0gJzEuNzAnICAgICMgSGlnaGVzdCB2ZXJzaW9uIG9mIHRoZSBzcGVjIHRoaXMgY29tcGxpZXMgd2l0aApAQCAtMTM3LDYgKzE0NCw3IEBACiBpbXBvcnQgY29weSBhcyBfY29weQogaW1wb3J0IG1hdGggYXMgX21hdGgKIGltcG9ydCBudW1iZXJzIGFzIF9udW1iZXJzCitpbXBvcnQgc3lzCiAKIHRyeToKICAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlIGFzIF9uYW1lZHR1cGxlCkBAIC0xNTQsNiArMTYyLDE5IEBACiBST1VORF9IQUxGX0RPV04gPSAnUk9VTkRfSEFMRl9ET1dOJwogUk9VTkRfMDVVUCA9ICdST1VORF8wNVVQJwogCisjIENvbXBhdGliaWxpdHkgd2l0aCB0aGUgQyB2ZXJzaW9uCitIQVZFX1RIUkVBRFMgPSBUcnVlCitpZiBzeXMubWF4c2l6ZSA9PSAyKio2My0xOgorICAgIE1BWF9QUkVDID0gOTk5OTk5OTk5OTk5OTk5OTk5CisgICAgTUFYX0VNQVggPSA5OTk5OTk5OTk5OTk5OTk5OTkKKyAgICBNSU5fRU1JTiA9IC05OTk5OTk5OTk5OTk5OTk5OTkKK2Vsc2U6CisgICAgTUFYX1BSRUMgPSA0MjUwMDAwMDAKKyAgICBNQVhfRU1BWCA9IDQyNTAwMDAwMAorICAgIE1JTl9FTUlOID0gLTQyNTAwMDAwMAorCitNSU5fRVRJTlkgPSBNSU5fRU1JTiAtIChNQVhfUFJFQy0xKQorCiAjIEVycm9ycwogCiBjbGFzcyBEZWNpbWFsRXhjZXB0aW9uKEFyaXRobWV0aWNFcnJvcik6CkBAIC0zNzAsOSArMzkxLDI0IEBACiAgICAgSW4gYWxsIGNhc2VzLCBJbmV4YWN0LCBSb3VuZGVkLCBhbmQgU3Vibm9ybWFsIHdpbGwgYWxzbyBiZSByYWlzZWQuCiAgICAgIiIiCiAKK2NsYXNzIEZsb2F0T3BlcmF0aW9uKERlY2ltYWxFeGNlcHRpb24sIFR5cGVFcnJvcik6CisgICAgIiIiRW5hYmxlIHN0cmljdGVyIHNlbWFudGljcyBmb3IgbWl4aW5nIGZsb2F0cyBhbmQgRGVjaW1hbHMuCisKKyAgICBJZiB0aGUgc2lnbmFsIGlzIG5vdCB0cmFwcGVkIChkZWZhdWx0KSwgbWl4aW5nIGZsb2F0cyBhbmQgRGVjaW1hbHMgaXMKKyAgICBwZXJtaXR0ZWQgaW4gdGhlIERlY2ltYWwoKSBjb25zdHJ1Y3RvciwgY29udGV4dC5jcmVhdGVfZGVjaW1hbCgpIGFuZAorICAgIGFsbCBjb21wYXJpc29uIG9wZXJhdG9ycy4gQm90aCBjb252ZXJzaW9uIGFuZCBjb21wYXJpc29ucyBhcmUgZXhhY3QuCisgICAgQW55IG9jY3VycmVuY2Ugb2YgYSBtaXhlZCBvcGVyYXRpb24gaXMgc2lsZW50bHkgcmVjb3JkZWQgYnkgc2V0dGluZworICAgIEZsb2F0T3BlcmF0aW9uIGluIHRoZSBjb250ZXh0IGZsYWdzLiAgRXhwbGljaXQgY29udmVyc2lvbnMgd2l0aAorICAgIERlY2ltYWwuZnJvbV9mbG9hdCgpIG9yIGNvbnRleHQuY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdCgpIGRvIG5vdAorICAgIHNldCB0aGUgZmxhZy4KKworICAgIE90aGVyd2lzZSAodGhlIHNpZ25hbCBpcyB0cmFwcGVkKSwgb25seSBlcXVhbGl0eSBjb21wYXJpc29ucyBhbmQgZXhwbGljaXQKKyAgICBjb252ZXJzaW9ucyBhcmUgc2lsZW50LiBBbGwgb3RoZXIgbWl4ZWQgb3BlcmF0aW9ucyByYWlzZSBGbG9hdE9wZXJhdGlvbi4KKyAgICAiIiIKKwogIyBMaXN0IG9mIHB1YmxpYyB0cmFwcyBhbmQgZmxhZ3MKIF9zaWduYWxzID0gW0NsYW1wZWQsIERpdmlzaW9uQnlaZXJvLCBJbmV4YWN0LCBPdmVyZmxvdywgUm91bmRlZCwKLSAgICAgICAgICAgVW5kZXJmbG93LCBJbnZhbGlkT3BlcmF0aW9uLCBTdWJub3JtYWxdCisgICAgICAgICAgICBVbmRlcmZsb3csIEludmFsaWRPcGVyYXRpb24sIFN1Ym5vcm1hbCwgRmxvYXRPcGVyYXRpb25dCiAKICMgTWFwIGNvbmRpdGlvbnMgKHBlciB0aGUgc3BlYykgdG8gc2lnbmFscwogX2NvbmRpdGlvbl9tYXAgPSB7Q29udmVyc2lvblN5bnRheDpJbnZhbGlkT3BlcmF0aW9uLApAQCAtMzgwLDYgKzQxNiwxMCBAQAogICAgICAgICAgICAgICAgICAgRGl2aXNpb25VbmRlZmluZWQ6SW52YWxpZE9wZXJhdGlvbiwKICAgICAgICAgICAgICAgICAgIEludmFsaWRDb250ZXh0OkludmFsaWRPcGVyYXRpb259CiAKKyMgVmFsaWQgcm91bmRpbmcgbW9kZXMKK19yb3VuZGluZ19tb2RlcyA9IChST1VORF9ET1dOLCBST1VORF9IQUxGX1VQLCBST1VORF9IQUxGX0VWRU4sIFJPVU5EX0NFSUxJTkcsCisgICAgICAgICAgICAgICAgICAgUk9VTkRfRkxPT1IsIFJPVU5EX1VQLCBST1VORF9IQUxGX0RPV04sIFJPVU5EXzA1VVApCisKICMjIyMjIENvbnRleHQgRnVuY3Rpb25zICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKICMgVGhlIGdldGNvbnRleHQoKSBhbmQgc2V0Y29udGV4dCgpIGZ1bmN0aW9uIG1hbmFnZSBhY2Nlc3MgdG8gYSB0aHJlYWQtbG9jYWwKQEAgLTM5MiwxMiArNDMyLDExIEBACiAgICAgaW1wb3J0IHRocmVhZGluZwogZXhjZXB0IEltcG9ydEVycm9yOgogICAgICMgUHl0aG9uIHdhcyBjb21waWxlZCB3aXRob3V0IHRocmVhZHM7IGNyZWF0ZSBhIG1vY2sgb2JqZWN0IGluc3RlYWQKLSAgICBpbXBvcnQgc3lzCiAgICAgY2xhc3MgTW9ja1RocmVhZGluZyhvYmplY3QpOgogICAgICAgICBkZWYgbG9jYWwoc2VsZiwgc3lzPXN5cyk6CiAgICAgICAgICAgICByZXR1cm4gc3lzLm1vZHVsZXNbX19uYW1lX19dCiAgICAgdGhyZWFkaW5nID0gTW9ja1RocmVhZGluZygpCi0gICAgZGVsIHN5cywgTW9ja1RocmVhZGluZworICAgIGRlbCBNb2NrVGhyZWFkaW5nCiAKIHRyeToKICAgICB0aHJlYWRpbmcubG9jYWwKQEAgLTY1MCw2ICs2ODksMTEgQEAKICAgICAgICAgICAgIHJldHVybiBzZWxmCiAKICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgZmxvYXQpOgorICAgICAgICAgICAgaWYgY29udGV4dCBpcyBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRleHQgPSBnZXRjb250ZXh0KCkKKyAgICAgICAgICAgIGNvbnRleHQuX3JhaXNlX2Vycm9yKEZsb2F0T3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICJzdHJpY3Qgc2VtYW50aWNzIGZvciBtaXhpbmcgZmxvYXRzIGFuZCBEZWNpbWFscyBhcmUgIgorICAgICAgICAgICAgICAgICJlbmFibGVkIikKICAgICAgICAgICAgIHZhbHVlID0gRGVjaW1hbC5mcm9tX2Zsb2F0KHZhbHVlKQogICAgICAgICAgICAgc2VsZi5fZXhwICA9IHZhbHVlLl9leHAKICAgICAgICAgICAgIHNlbGYuX3NpZ24gPSB2YWx1ZS5fc2lnbgpAQCAtNjg0LDcgKzcyOCw5IEBACiAgICAgICAgICIiIgogICAgICAgICBpZiBpc2luc3RhbmNlKGYsIGludCk6ICAgICAgICAgICAgICAgICMgaGFuZGxlIGludGVnZXIgaW5wdXRzCiAgICAgICAgICAgICByZXR1cm4gY2xzKGYpCi0gICAgICAgIGlmIF9tYXRoLmlzaW5mKGYpIG9yIF9tYXRoLmlzbmFuKGYpOiAgIyByYWlzZXMgVHlwZUVycm9yIGlmIG5vdCBhIGZsb2F0CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGYsIGZsb2F0KToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiYXJndW1lbnQgbXVzdCBiZSBpbnQgb3IgZmxvYXQuIikKKyAgICAgICAgaWYgX21hdGguaXNpbmYoZikgb3IgX21hdGguaXNuYW4oZik6CiAgICAgICAgICAgICByZXR1cm4gY2xzKHJlcHIoZikpCiAgICAgICAgIGlmIF9tYXRoLmNvcHlzaWduKDEuMCwgZikgPT0gMS4wOgogICAgICAgICAgICAgc2lnbiA9IDAKQEAgLTE4NzEsNiArMTkxNyw3IEBACiAgICAgICAgICIiIgogCiAgICAgICAgIG90aGVyID0gX2NvbnZlcnRfb3RoZXIob3RoZXIsIHJhaXNlaXQ9VHJ1ZSkKKyAgICAgICAgdGhpcmQgPSBfY29udmVydF9vdGhlcih0aGlyZCwgcmFpc2VpdD1UcnVlKQogCiAgICAgICAgICMgY29tcHV0ZSBwcm9kdWN0OyByYWlzZSBJbnZhbGlkT3BlcmF0aW9uIGlmIGVpdGhlciBvcGVyYW5kIGlzCiAgICAgICAgICMgYSBzaWduYWxpbmcgTmFOIG9yIGlmIHRoZSBwcm9kdWN0IGlzIHplcm8gdGltZXMgaW5maW5pdHkuCkBAIC0xOTAwLDE3ICsxOTQ3LDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoaW50KHNlbGYuX2ludCkgKiBpbnQob3RoZXIuX2ludCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZXhwICsgb3RoZXIuX2V4cCkKIAotICAgICAgICB0aGlyZCA9IF9jb252ZXJ0X290aGVyKHRoaXJkLCByYWlzZWl0PVRydWUpCiAgICAgICAgIHJldHVybiBwcm9kdWN0Ll9fYWRkX18odGhpcmQsIGNvbnRleHQpCiAKICAgICBkZWYgX3Bvd2VyX21vZHVsbyhzZWxmLCBvdGhlciwgbW9kdWxvLCBjb250ZXh0PU5vbmUpOgogICAgICAgICAiIiJUaHJlZSBhcmd1bWVudCB2ZXJzaW9uIG9mIF9fcG93X18iIiIKIAotICAgICAgICAjIGlmIGNhbid0IGNvbnZlcnQgb3RoZXIgYW5kIG1vZHVsbyB0byBEZWNpbWFsLCByYWlzZQotICAgICAgICAjIFR5cGVFcnJvcjsgdGhlcmUncyBubyBwb2ludCByZXR1cm5pbmcgTm90SW1wbGVtZW50ZWQgKG5vCi0gICAgICAgICMgZXF1aXZhbGVudCBvZiBfX3Jwb3dfXyBmb3IgdGhyZWUgYXJndW1lbnQgcG93KQotICAgICAgICBvdGhlciA9IF9jb252ZXJ0X290aGVyKG90aGVyLCByYWlzZWl0PVRydWUpCi0gICAgICAgIG1vZHVsbyA9IF9jb252ZXJ0X290aGVyKG1vZHVsbywgcmFpc2VpdD1UcnVlKQorICAgICAgICBvdGhlciA9IF9jb252ZXJ0X290aGVyKG90aGVyKQorICAgICAgICBpZiBvdGhlciBpcyBOb3RJbXBsZW1lbnRlZDoKKyAgICAgICAgICAgIHJldHVybiBvdGhlcgorICAgICAgICBtb2R1bG8gPSBfY29udmVydF9vdGhlcihtb2R1bG8pCisgICAgICAgIGlmIG1vZHVsbyBpcyBOb3RJbXBsZW1lbnRlZDoKKyAgICAgICAgICAgIHJldHVybiBtb2R1bG8KIAogICAgICAgICBpZiBjb250ZXh0IGlzIE5vbmU6CiAgICAgICAgICAgICBjb250ZXh0ID0gZ2V0Y29udGV4dCgpCkBAIC0yMDAxLDkgKzIwNDgsOSBAQAogICAgICAgICBub256ZXJvLiAgRm9yIGVmZmljaWVuY3ksIG90aGVyLl9leHAgc2hvdWxkIG5vdCBiZSB0b28gbGFyZ2UsCiAgICAgICAgIHNvIHRoYXQgMTAqKmFicyhvdGhlci5fZXhwKSBpcyBhIGZlYXNpYmxlIGNhbGN1bGF0aW9uLiIiIgogCi0gICAgICAgICMgSW4gdGhlIGNvbW1lbnRzIGJlbG93LCB3ZSB3cml0ZSB4IGZvciB0aGUgdmFsdWUgb2Ygc2VsZiBhbmQKLSAgICAgICAgIyB5IGZvciB0aGUgdmFsdWUgb2Ygb3RoZXIuICBXcml0ZSB4ID0geGMqMTAqKnhlIGFuZCB5ID0KLSAgICAgICAgIyB5YyoxMCoqeWUuCisgICAgICAgICMgSW4gdGhlIGNvbW1lbnRzIGJlbG93LCB3ZSB3cml0ZSB4IGZvciB0aGUgdmFsdWUgb2Ygc2VsZiBhbmQgeSBmb3IgdGhlCisgICAgICAgICMgdmFsdWUgb2Ygb3RoZXIuICBXcml0ZSB4ID0geGMqMTAqKnhlIGFuZCBhYnMoeSkgPSB5YyoxMCoqeWUsIHdpdGggeGMKKyAgICAgICAgIyBhbmQgeWMgcG9zaXRpdmUgaW50ZWdlcnMgbm90IGRpdmlzaWJsZSBieSAxMC4KIAogICAgICAgICAjIFRoZSBtYWluIHB1cnBvc2Ugb2YgdGhpcyBtZXRob2QgaXMgdG8gaWRlbnRpZnkgdGhlICpmYWlsdXJlKgogICAgICAgICAjIG9mIHgqKnkgdG8gYmUgZXhhY3RseSByZXByZXNlbnRhYmxlIHdpdGggYXMgbGl0dGxlIGVmZm9ydCBhcwpAQCAtMjAxMSwxMyArMjA1OCwxMiBAQAogICAgICAgICAjIGVsaW1pbmF0ZSB0aGUgcG9zc2liaWxpdHkgb2YgeCoqeSBiZWluZyBleGFjdC4gIE9ubHkgaWYgYWxsCiAgICAgICAgICMgdGhlc2UgdGVzdHMgYXJlIHBhc3NlZCBkbyB3ZSBnbyBvbiB0byBhY3R1YWxseSBjb21wdXRlIHgqKnkuCiAKLSAgICAgICAgIyBIZXJlJ3MgdGhlIG1haW4gaWRlYS4gIEZpcnN0IG5vcm1hbGl6ZSBib3RoIHggYW5kIHkuICBXZQotICAgICAgICAjIGV4cHJlc3MgeSBhcyBhIHJhdGlvbmFsIG0vbiwgd2l0aCBtIGFuZCBuIHJlbGF0aXZlbHkgcHJpbWUKLSAgICAgICAgIyBhbmQgbj4wLiAgVGhlbiBmb3IgeCoqeSB0byBiZSBleGFjdGx5IHJlcHJlc2VudGFibGUgKGF0Ci0gICAgICAgICMgKmFueSogcHJlY2lzaW9uKSwgeGMgbXVzdCBiZSB0aGUgbnRoIHBvd2VyIG9mIGEgcG9zaXRpdmUKLSAgICAgICAgIyBpbnRlZ2VyIGFuZCB4ZSBtdXN0IGJlIGRpdmlzaWJsZSBieSBuLiAgSWYgbSBpcyBuZWdhdGl2ZQotICAgICAgICAjIHRoZW4gYWRkaXRpb25hbGx5IHhjIG11c3QgYmUgYSBwb3dlciBvZiBlaXRoZXIgMiBvciA1LCBoZW5jZQotICAgICAgICAjIGEgcG93ZXIgb2YgMioqbiBvciA1KipuLgorICAgICAgICAjIEhlcmUncyB0aGUgbWFpbiBpZGVhLiAgRXhwcmVzcyB5IGFzIGEgcmF0aW9uYWwgbnVtYmVyIG0vbiwgd2l0aCBtIGFuZAorICAgICAgICAjIG4gcmVsYXRpdmVseSBwcmltZSBhbmQgbj4wLiAgVGhlbiBmb3IgeCoqeSB0byBiZSBleGFjdGx5CisgICAgICAgICMgcmVwcmVzZW50YWJsZSAoYXQgKmFueSogcHJlY2lzaW9uKSwgeGMgbXVzdCBiZSB0aGUgbnRoIHBvd2VyIG9mIGEKKyAgICAgICAgIyBwb3NpdGl2ZSBpbnRlZ2VyIGFuZCB4ZSBtdXN0IGJlIGRpdmlzaWJsZSBieSBuLiAgSWYgeSBpcyBuZWdhdGl2ZQorICAgICAgICAjIHRoZW4gYWRkaXRpb25hbGx5IHhjIG11c3QgYmUgYSBwb3dlciBvZiBlaXRoZXIgMiBvciA1LCBoZW5jZSBhIHBvd2VyCisgICAgICAgICMgb2YgMioqbiBvciA1KipuLgogICAgICAgICAjCiAgICAgICAgICMgVGhlcmUncyBhIGxpbWl0IHRvIGhvdyBzbWFsbCB8eXwgY2FuIGJlOiBpZiB5PW0vbiBhcyBhYm92ZQogICAgICAgICAjIHRoZW46CkBAIC0yMDg5LDIxICsyMTM1LDQzIEBACiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgICAgICAgICAgIyBub3cgeGMgaXMgYSBwb3dlciBvZiAyOyBlIGlzIGl0cyBleHBvbmVudAogICAgICAgICAgICAgICAgIGUgPSBfbmJpdHMoeGMpLTEKLSAgICAgICAgICAgICAgICAjIGZpbmQgZSp5IGFuZCB4ZSp5OyBib3RoIG11c3QgYmUgaW50ZWdlcnMKLSAgICAgICAgICAgICAgICBpZiB5ZSA+PSAwOgotICAgICAgICAgICAgICAgICAgICB5X2FzX2ludCA9IHljKjEwKip5ZQotICAgICAgICAgICAgICAgICAgICBlID0gZSp5X2FzX2ludAotICAgICAgICAgICAgICAgICAgICB4ZSA9IHhlKnlfYXNfaW50Ci0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgdGVuX3BvdyA9IDEwKioteWUKLSAgICAgICAgICAgICAgICAgICAgZSwgcmVtYWluZGVyID0gZGl2bW9kKGUqeWMsIHRlbl9wb3cpCi0gICAgICAgICAgICAgICAgICAgIGlmIHJlbWFpbmRlcjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICAgICAgICAgIHhlLCByZW1haW5kZXIgPSBkaXZtb2QoeGUqeWMsIHRlbl9wb3cpCi0gICAgICAgICAgICAgICAgICAgIGlmIHJlbWFpbmRlcjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICAgICAgICAgICAgICBpZiBlKjY1ID49IHAqOTM6ICMgOTMvNjUgPiBsb2coMTApL2xvZyg1KQorICAgICAgICAgICAgICAgICMgV2Ugbm93IGhhdmU6CisgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICMgICB4ID0gMioqZSAqIDEwKip4ZSwgZSA+IDAsIGFuZCB5IDwgMC4KKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBUaGUgZXhhY3QgcmVzdWx0IGlzOgorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjICAgeCoqeSA9IDUqKigtZSp5KSAqIDEwKiooZSp5ICsgeGUqeSkKKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBwcm92aWRlZCB0aGF0IGJvdGggZSp5IGFuZCB4ZSp5IGFyZSBpbnRlZ2Vycy4gIE5vdGUgdGhhdCBpZgorICAgICAgICAgICAgICAgICMgNSoqKC1lKnkpID49IDEwKipwLCB0aGVuIHRoZSByZXN1bHQgY2FuJ3QgYmUgZXhwcmVzc2VkCisgICAgICAgICAgICAgICAgIyBleGFjdGx5IHdpdGggcCBkaWdpdHMgb2YgcHJlY2lzaW9uLgorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIFVzaW5nIHRoZSBhYm92ZSwgd2UgY2FuIGd1YXJkIGFnYWluc3QgbGFyZ2UgdmFsdWVzIG9mIHllLgorICAgICAgICAgICAgICAgICMgOTMvNjUgaXMgYW4gdXBwZXIgYm91bmQgZm9yIGxvZygxMCkvbG9nKDUpLCBzbyBpZgorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjICAgeWUgPj0gbGVuKHN0cig5MypwLy82NSkpCisgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICMgdGhlbgorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjICAgLWUqeSA+PSAteSA+PSAxMCoqeWUgPiA5MypwLzY1ID4gcCpsb2coMTApL2xvZyg1KSwKKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBzbyA1KiooLWUqeSkgPj0gMTAqKnAsIGFuZCB0aGUgY29lZmZpY2llbnQgb2YgdGhlIHJlc3VsdAorICAgICAgICAgICAgICAgICMgY2FuJ3QgYmUgZXhwcmVzc2VkIGluIHAgZGlnaXRzLgorCisgICAgICAgICAgICAgICAgIyBlbWF4ID49IGxhcmdlc3QgZSBzdWNoIHRoYXQgNSoqZSA8IDEwKipwLgorICAgICAgICAgICAgICAgIGVtYXggPSBwKjkzLy82NQorICAgICAgICAgICAgICAgIGlmIHllID49IGxlbihzdHIoZW1heCkpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgICAgICAgICAgIyBGaW5kIC1lKnkgYW5kIC14ZSp5OyBib3RoIG11c3QgYmUgaW50ZWdlcnMKKyAgICAgICAgICAgICAgICBlID0gX2RlY2ltYWxfbHNoaWZ0X2V4YWN0KGUgKiB5YywgeWUpCisgICAgICAgICAgICAgICAgeGUgPSBfZGVjaW1hbF9sc2hpZnRfZXhhY3QoeGUgKiB5YywgeWUpCisgICAgICAgICAgICAgICAgaWYgZSBpcyBOb25lIG9yIHhlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgICAgICAgICBpZiBlID4gZW1heDoKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgICAgICAgICB4YyA9IDUqKmUKIApAQCAtMjExNywxOSArMjE4NSwyMCBAQAogICAgICAgICAgICAgICAgIHdoaWxlIHhjICUgNSA9PSAwOgogICAgICAgICAgICAgICAgICAgICB4YyAvLz0gNQogICAgICAgICAgICAgICAgICAgICBlIC09IDEKLSAgICAgICAgICAgICAgICBpZiB5ZSA+PSAwOgotICAgICAgICAgICAgICAgICAgICB5X2FzX2ludGVnZXIgPSB5YyoxMCoqeWUKLSAgICAgICAgICAgICAgICAgICAgZSA9IGUqeV9hc19pbnRlZ2VyCi0gICAgICAgICAgICAgICAgICAgIHhlID0geGUqeV9hc19pbnRlZ2VyCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgdGVuX3BvdyA9IDEwKioteWUKLSAgICAgICAgICAgICAgICAgICAgZSwgcmVtYWluZGVyID0gZGl2bW9kKGUqeWMsIHRlbl9wb3cpCi0gICAgICAgICAgICAgICAgICAgIGlmIHJlbWFpbmRlcjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICAgICAgICAgIHhlLCByZW1haW5kZXIgPSBkaXZtb2QoeGUqeWMsIHRlbl9wb3cpCi0gICAgICAgICAgICAgICAgICAgIGlmIHJlbWFpbmRlcjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICAgICAgaWYgZSozID49IHAqMTA6ICMgMTAvMyA+IGxvZygxMCkvbG9nKDIpCisKKyAgICAgICAgICAgICAgICAjIEd1YXJkIGFnYWluc3QgbGFyZ2UgdmFsdWVzIG9mIHllLCB1c2luZyB0aGUgc2FtZSBsb2dpYyBhcyBpbgorICAgICAgICAgICAgICAgICMgdGhlICd4YyBpcyBhIHBvd2VyIG9mIDInIGJyYW5jaC4gIDEwLzMgaXMgYW4gdXBwZXIgYm91bmQgZm9yCisgICAgICAgICAgICAgICAgIyBsb2coMTApL2xvZygyKS4KKyAgICAgICAgICAgICAgICBlbWF4ID0gcCoxMC8vMworICAgICAgICAgICAgICAgIGlmIHllID49IGxlbihzdHIoZW1heCkpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgICAgICAgICAgZSA9IF9kZWNpbWFsX2xzaGlmdF9leGFjdChlICogeWMsIHllKQorICAgICAgICAgICAgICAgIHhlID0gX2RlY2ltYWxfbHNoaWZ0X2V4YWN0KHhlICogeWMsIHllKQorICAgICAgICAgICAgICAgIGlmIGUgaXMgTm9uZSBvciB4ZSBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgICAgICAgICAgaWYgZSA+IGVtYXg6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgICAgICAgICAgeGMgPSAyKiplCiAgICAgICAgICAgICBlbHNlOgpAQCAtMzgxMCwxMSArMzg3OSw5IEBACiAgICAgY2xhbXAgLSAgSWYgMSwgY2hhbmdlIGV4cG9uZW50cyBpZiB0b28gaGlnaCAoRGVmYXVsdCAwKQogICAgICIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHByZWM9Tm9uZSwgcm91bmRpbmc9Tm9uZSwKLSAgICAgICAgICAgICAgICAgdHJhcHM9Tm9uZSwgZmxhZ3M9Tm9uZSwKLSAgICAgICAgICAgICAgICAgRW1pbj1Ob25lLCBFbWF4PU5vbmUsCi0gICAgICAgICAgICAgICAgIGNhcGl0YWxzPU5vbmUsIGNsYW1wPU5vbmUsCi0gICAgICAgICAgICAgICAgIF9pZ25vcmVkX2ZsYWdzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcmVjPU5vbmUsIHJvdW5kaW5nPU5vbmUsIEVtaW49Tm9uZSwgRW1heD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICBjYXBpdGFscz1Ob25lLCBjbGFtcD1Ob25lLCBmbGFncz1Ob25lLCB0cmFwcz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICBfaWdub3JlZF9mbGFncz1Ob25lKToKICAgICAgICAgIyBTZXQgZGVmYXVsdHM7IGZvciBldmVyeXRoaW5nIGV4Y2VwdCBmbGFncyBhbmQgX2lnbm9yZWRfZmxhZ3MsCiAgICAgICAgICMgaW5oZXJpdCBmcm9tIERlZmF1bHRDb250ZXh0LgogICAgICAgICB0cnk6CkBAIC0zODM3LDE3ICszOTA0LDc4IEBACiAgICAgICAgIGlmIHRyYXBzIGlzIE5vbmU6CiAgICAgICAgICAgICBzZWxmLnRyYXBzID0gZGMudHJhcHMuY29weSgpCiAgICAgICAgIGVsaWYgbm90IGlzaW5zdGFuY2UodHJhcHMsIGRpY3QpOgotICAgICAgICAgICAgc2VsZi50cmFwcyA9IGRpY3QoKHMsIGludChzIGluIHRyYXBzKSkgZm9yIHMgaW4gX3NpZ25hbHMpCisgICAgICAgICAgICBzZWxmLnRyYXBzID0gZGljdCgocywgaW50KHMgaW4gdHJhcHMpKSBmb3IgcyBpbiBfc2lnbmFscyArIHRyYXBzKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi50cmFwcyA9IHRyYXBzCiAKICAgICAgICAgaWYgZmxhZ3MgaXMgTm9uZToKICAgICAgICAgICAgIHNlbGYuZmxhZ3MgPSBkaWN0LmZyb21rZXlzKF9zaWduYWxzLCAwKQogICAgICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKGZsYWdzLCBkaWN0KToKLSAgICAgICAgICAgIHNlbGYuZmxhZ3MgPSBkaWN0KChzLCBpbnQocyBpbiBmbGFncykpIGZvciBzIGluIF9zaWduYWxzKQorICAgICAgICAgICAgc2VsZi5mbGFncyA9IGRpY3QoKHMsIGludChzIGluIGZsYWdzKSkgZm9yIHMgaW4gX3NpZ25hbHMgKyBmbGFncykKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuZmxhZ3MgPSBmbGFncwogCisgICAgZGVmIF9zZXRfaW50ZWdlcl9jaGVjayhzZWxmLCBuYW1lLCB2YWx1ZSwgdm1pbiwgdm1heCk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBpbnQpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCIlcyBtdXN0IGJlIGFuIGludGVnZXIiICUgbmFtZSkKKyAgICAgICAgaWYgdm1pbiA9PSAnLWluZic6CisgICAgICAgICAgICBpZiB2YWx1ZSA+IHZtYXg6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJXMgbXVzdCBiZSBpbiBbJXMsICVkXS4gZ290OiAlcyIgJSAobmFtZSwgdm1pbiwgdm1heCwgdmFsdWUpKQorICAgICAgICBlbGlmIHZtYXggPT0gJ2luZic6CisgICAgICAgICAgICBpZiB2YWx1ZSA8IHZtaW46CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJXMgbXVzdCBiZSBpbiBbJWQsICVzXS4gZ290OiAlcyIgJSAobmFtZSwgdm1pbiwgdm1heCwgdmFsdWUpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgdmFsdWUgPCB2bWluIG9yIHZhbHVlID4gdm1heDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIlcyBtdXN0IGJlIGluIFslZCwgJWRdLiBnb3QgJXMiICUgKG5hbWUsIHZtaW4sIHZtYXgsIHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSkKKworICAgIGRlZiBfc2V0X3NpZ25hbF9kaWN0KHNlbGYsIG5hbWUsIGQpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShkLCBkaWN0KToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiJXMgbXVzdCBiZSBhIHNpZ25hbCBkaWN0IiAlIGQpCisgICAgICAgIGZvciBrZXkgaW4gZDoKKyAgICAgICAgICAgIGlmIG5vdCBrZXkgaW4gX3NpZ25hbHM6CisgICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoIiVzIGlzIG5vdCBhIHZhbGlkIHNpZ25hbCBkaWN0IiAlIGQpCisgICAgICAgIGZvciBrZXkgaW4gX3NpZ25hbHM6CisgICAgICAgICAgICBpZiBub3Qga2V5IGluIGQ6CisgICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IoIiVzIGlzIG5vdCBhIHZhbGlkIHNpZ25hbCBkaWN0IiAlIGQpCisgICAgICAgIHJldHVybiBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgZCkKKworICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIGlmIG5hbWUgPT0gJ3ByZWMnOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3NldF9pbnRlZ2VyX2NoZWNrKG5hbWUsIHZhbHVlLCAxLCAnaW5mJykKKyAgICAgICAgZWxpZiBuYW1lID09ICdFbWluJzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zZXRfaW50ZWdlcl9jaGVjayhuYW1lLCB2YWx1ZSwgJy1pbmYnLCAwKQorICAgICAgICBlbGlmIG5hbWUgPT0gJ0VtYXgnOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3NldF9pbnRlZ2VyX2NoZWNrKG5hbWUsIHZhbHVlLCAwLCAnaW5mJykKKyAgICAgICAgZWxpZiBuYW1lID09ICdjYXBpdGFscyc6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fc2V0X2ludGVnZXJfY2hlY2sobmFtZSwgdmFsdWUsIDAsIDEpCisgICAgICAgIGVsaWYgbmFtZSA9PSAnY2xhbXAnOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3NldF9pbnRlZ2VyX2NoZWNrKG5hbWUsIHZhbHVlLCAwLCAxKQorICAgICAgICBlbGlmIG5hbWUgPT0gJ3JvdW5kaW5nJzoKKyAgICAgICAgICAgIGlmIG5vdCB2YWx1ZSBpbiBfcm91bmRpbmdfbW9kZXM6CisgICAgICAgICAgICAgICAgIyByYWlzZSBUeXBlRXJyb3IgZXZlbiBmb3Igc3RyaW5ncyB0byBoYXZlIGNvbnNpc3RlbmN5CisgICAgICAgICAgICAgICAgIyBhbW9uZyB2YXJpb3VzIGltcGxlbWVudGF0aW9ucy4KKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzOiBpbnZhbGlkIHJvdW5kaW5nIG1vZGUiICUgdmFsdWUpCisgICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKQorICAgICAgICBlbGlmIG5hbWUgPT0gJ2ZsYWdzJyBvciBuYW1lID09ICd0cmFwcyc6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fc2V0X3NpZ25hbF9kaWN0KG5hbWUsIHZhbHVlKQorICAgICAgICBlbGlmIG5hbWUgPT0gJ19pZ25vcmVkX2ZsYWdzJzoKKyAgICAgICAgICAgIHJldHVybiBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigKKyAgICAgICAgICAgICAgICAiJ2RlY2ltYWwuQ29udGV4dCcgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJyVzJyIgJSBuYW1lKQorCisgICAgZGVmIF9fZGVsYXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiJXMgY2Fubm90IGJlIGRlbGV0ZWQiICUgbmFtZSkKKworICAgICMgU3VwcG9ydCBmb3IgcGlja2xpbmcsIGNvcHksIGFuZCBkZWVwY29weQorICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICBmbGFncyA9IFtzaWcgZm9yIHNpZywgdiBpbiBzZWxmLmZsYWdzLml0ZW1zKCkgaWYgdl0KKyAgICAgICAgdHJhcHMgPSBbc2lnIGZvciBzaWcsIHYgaW4gc2VsZi50cmFwcy5pdGVtcygpIGlmIHZdCisgICAgICAgIHJldHVybiAoc2VsZi5fX2NsYXNzX18sCisgICAgICAgICAgICAgICAgKHNlbGYucHJlYywgc2VsZi5yb3VuZGluZywgc2VsZi5FbWluLCBzZWxmLkVtYXgsCisgICAgICAgICAgICAgICAgIHNlbGYuY2FwaXRhbHMsIHNlbGYuY2xhbXAsIGZsYWdzLCB0cmFwcykpCisKICAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgICIiIlNob3cgdGhlIGN1cnJlbnQgY29udGV4dC4iIiIKICAgICAgICAgcyA9IFtdCkBAIC0zODY2LDQzICszOTk0LDI3IEBACiAgICAgICAgIGZvciBmbGFnIGluIHNlbGYuZmxhZ3M6CiAgICAgICAgICAgICBzZWxmLmZsYWdzW2ZsYWddID0gMAogCisgICAgZGVmIGNsZWFyX3RyYXBzKHNlbGYpOgorICAgICAgICAiIiJSZXNldCBhbGwgdHJhcHMgdG8gemVybyIiIgorICAgICAgICBmb3IgZmxhZyBpbiBzZWxmLnRyYXBzOgorICAgICAgICAgICAgc2VsZi50cmFwc1tmbGFnXSA9IDAKKwogICAgIGRlZiBfc2hhbGxvd19jb3B5KHNlbGYpOgogICAgICAgICAiIiJSZXR1cm5zIGEgc2hhbGxvdyBjb3B5IGZyb20gc2VsZi4iIiIKLSAgICAgICAgbmMgPSBDb250ZXh0KHNlbGYucHJlYywgc2VsZi5yb3VuZGluZywgc2VsZi50cmFwcywKLSAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmxhZ3MsIHNlbGYuRW1pbiwgc2VsZi5FbWF4LAotICAgICAgICAgICAgICAgICAgICAgc2VsZi5jYXBpdGFscywgc2VsZi5jbGFtcCwgc2VsZi5faWdub3JlZF9mbGFncykKKyAgICAgICAgbmMgPSBDb250ZXh0KHNlbGYucHJlYywgc2VsZi5yb3VuZGluZywgc2VsZi5FbWluLCBzZWxmLkVtYXgsCisgICAgICAgICAgICAgICAgICAgICBzZWxmLmNhcGl0YWxzLCBzZWxmLmNsYW1wLCBzZWxmLmZsYWdzLCBzZWxmLnRyYXBzLAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5faWdub3JlZF9mbGFncykKICAgICAgICAgcmV0dXJuIG5jCiAKICAgICBkZWYgY29weShzZWxmKToKICAgICAgICAgIiIiUmV0dXJucyBhIGRlZXAgY29weSBmcm9tIHNlbGYuIiIiCi0gICAgICAgIG5jID0gQ29udGV4dChzZWxmLnByZWMsIHNlbGYucm91bmRpbmcsIHNlbGYudHJhcHMuY29weSgpLAotICAgICAgICAgICAgICAgICAgICAgc2VsZi5mbGFncy5jb3B5KCksIHNlbGYuRW1pbiwgc2VsZi5FbWF4LAotICAgICAgICAgICAgICAgICAgICAgc2VsZi5jYXBpdGFscywgc2VsZi5jbGFtcCwgc2VsZi5faWdub3JlZF9mbGFncykKKyAgICAgICAgbmMgPSBDb250ZXh0KHNlbGYucHJlYywgc2VsZi5yb3VuZGluZywgc2VsZi5FbWluLCBzZWxmLkVtYXgsCisgICAgICAgICAgICAgICAgICAgICBzZWxmLmNhcGl0YWxzLCBzZWxmLmNsYW1wLAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5mbGFncy5jb3B5KCksIHNlbGYudHJhcHMuY29weSgpLAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5faWdub3JlZF9mbGFncykKICAgICAgICAgcmV0dXJuIG5jCiAgICAgX19jb3B5X18gPSBjb3B5CiAKLSAgICAjIF9jbGFtcCBpcyBwcm92aWRlZCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aCB0aGlyZC1wYXJ0eQotICAgICMgY29kZS4gIE1heSBiZSByZW1vdmVkIGluIFB5dGhvbiA+PSAzLjMuCi0gICAgZGVmIF9nZXRfY2xhbXAoc2VsZik6Ci0gICAgICAgICJfY2xhbXAgbWlycm9ycyB0aGUgY2xhbXAgYXR0cmlidXRlLiAgSXRzIHVzZSBpcyBkZXByZWNhdGVkLiIKLSAgICAgICAgaW1wb3J0IHdhcm5pbmdzCi0gICAgICAgIHdhcm5pbmdzLndhcm4oJ1VzZSBvZiB0aGUgX2NsYW1wIGF0dHJpYnV0ZSBpcyBkZXByZWNhdGVkLiAnCi0gICAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSB1c2UgY2xhbXAgaW5zdGVhZC4nLAotICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgcmV0dXJuIHNlbGYuY2xhbXAKLQotICAgIGRlZiBfc2V0X2NsYW1wKHNlbGYsIGNsYW1wKToKLSAgICAgICAgIl9jbGFtcCBtaXJyb3JzIHRoZSBjbGFtcCBhdHRyaWJ1dGUuICBJdHMgdXNlIGlzIGRlcHJlY2F0ZWQuIgotICAgICAgICBpbXBvcnQgd2FybmluZ3MKLSAgICAgICAgd2FybmluZ3Mud2FybignVXNlIG9mIHRoZSBfY2xhbXAgYXR0cmlidXRlIGlzIGRlcHJlY2F0ZWQuICcKLSAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIHVzZSBjbGFtcCBpbnN0ZWFkLicsCi0gICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICBzZWxmLmNsYW1wID0gY2xhbXAKLQotICAgICMgZG9uJ3QgYm90aGVyIHdpdGggX2RlbF9jbGFtcDsgIG5vIHNhbmUgM3JkIHBhcnR5IGNvZGUgc2hvdWxkCi0gICAgIyBiZSBkZWxldGluZyB0aGUgX2NsYW1wIGF0dHJpYnV0ZQotICAgIF9jbGFtcCA9IHByb3BlcnR5KF9nZXRfY2xhbXAsIF9zZXRfY2xhbXApCi0KICAgICBkZWYgX3JhaXNlX2Vycm9yKHNlbGYsIGNvbmRpdGlvbiwgZXhwbGFuYXRpb24gPSBOb25lLCAqYXJncyk6CiAgICAgICAgICIiIkhhbmRsZXMgYW4gZXJyb3IKIApAQCAtNDA2Miw2ICs0MTc0LDggQEAKICAgICAgICAgPj4+IEV4dGVuZGVkQ29udGV4dC5jYW5vbmljYWwoRGVjaW1hbCgnMi41MCcpKQogICAgICAgICBEZWNpbWFsKCcyLjUwJykKICAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGEsIERlY2ltYWwpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJjYW5vbmljYWwgcmVxdWlyZXMgYSBEZWNpbWFsIGFzIGFuIGFyZ3VtZW50LiIpCiAgICAgICAgIHJldHVybiBhLmNhbm9uaWNhbChjb250ZXh0PXNlbGYpCiAKICAgICBkZWYgY29tcGFyZShzZWxmLCBhLCBiKToKQEAgLTQzNzIsNiArNDQ4Niw4IEBACiAgICAgICAgID4+PiBFeHRlbmRlZENvbnRleHQuaXNfY2Fub25pY2FsKERlY2ltYWwoJzIuNTAnKSkKICAgICAgICAgVHJ1ZQogICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYSwgRGVjaW1hbCk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImlzX2Nhbm9uaWNhbCByZXF1aXJlcyBhIERlY2ltYWwgYXMgYW4gYXJndW1lbnQuIikKICAgICAgICAgcmV0dXJuIGEuaXNfY2Fub25pY2FsKCkKIAogICAgIGRlZiBpc19maW5pdGUoc2VsZiwgYSk6CkBAIC00OTY0LDcgKzUwODAsNyBAQAogICAgICAgICAgICtOb3JtYWwKICAgICAgICAgICArSW5maW5pdHkKIAotICAgICAgICA+Pj4gYyA9IENvbnRleHQoRXh0ZW5kZWRDb250ZXh0KQorICAgICAgICA+Pj4gYyA9IEV4dGVuZGVkQ29udGV4dC5jb3B5KCkKICAgICAgICAgPj4+IGMuRW1pbiA9IC05OTkKICAgICAgICAgPj4+IGMuRW1heCA9IDk5OQogICAgICAgICA+Pj4gYy5udW1iZXJfY2xhc3MoRGVjaW1hbCgnSW5maW5pdHknKSkKQEAgLTU1MjksNiArNTY0NSwyNyBAQAogCiBfbmJpdHMgPSBpbnQuYml0X2xlbmd0aAogCitkZWYgX2RlY2ltYWxfbHNoaWZ0X2V4YWN0KG4sIGUpOgorICAgICIiIiBHaXZlbiBpbnRlZ2VycyBuIGFuZCBlLCByZXR1cm4gbiAqIDEwKiplIGlmIGl0J3MgYW4gaW50ZWdlciwgZWxzZSBOb25lLgorCisgICAgVGhlIGNvbXB1dGF0aW9uIGlzIGRlc2lnbmVkIHRvIGF2b2lkIGNvbXB1dGluZyBsYXJnZSBwb3dlcnMgb2YgMTAKKyAgICB1bm5lY2Vzc2FyaWx5LgorCisgICAgPj4+IF9kZWNpbWFsX2xzaGlmdF9leGFjdCgzLCA0KQorICAgIDMwMDAwCisgICAgPj4+IF9kZWNpbWFsX2xzaGlmdF9leGFjdCgzMDAsIC05OTk5OTk5OTkpICAjIHJldHVybnMgTm9uZQorCisgICAgIiIiCisgICAgaWYgbiA9PSAwOgorICAgICAgICByZXR1cm4gMAorICAgIGVsaWYgZSA+PSAwOgorICAgICAgICByZXR1cm4gbiAqIDEwKiplCisgICAgZWxzZToKKyAgICAgICAgIyB2YWxfbiA9IGxhcmdlc3QgcG93ZXIgb2YgMTAgZGl2aWRpbmcgbi4KKyAgICAgICAgc3RyX24gPSBzdHIoYWJzKG4pKQorICAgICAgICB2YWxfbiA9IGxlbihzdHJfbikgLSBsZW4oc3RyX24ucnN0cmlwKCcwJykpCisgICAgICAgIHJldHVybiBOb25lIGlmIHZhbF9uIDwgLWUgZWxzZSBuIC8vIDEwKiotZQorCiBkZWYgX3NxcnRfbmVhcmVzdChuLCBhKToKICAgICAiIiJDbG9zZXN0IGludGVnZXIgdG8gdGhlIHNxdWFyZSByb290IG9mIHRoZSBwb3NpdGl2ZSBpbnRlZ2VyIG4uICBhIGlzCiAgICAgYW4gaW5pdGlhbCBhcHByb3hpbWF0aW9uIHRvIHRoZSBzcXVhcmUgcm9vdC4gIEFueSBwb3NpdGl2ZSBpbnRlZ2VyCkBAIC01ODk1LDYgKzYwMzIsMTIgQEAKICAgICBpZiBlcXVhbGl0eV9vcCBhbmQgaXNpbnN0YW5jZShvdGhlciwgX251bWJlcnMuQ29tcGxleCkgYW5kIG90aGVyLmltYWcgPT0gMDoKICAgICAgICAgb3RoZXIgPSBvdGhlci5yZWFsCiAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgZmxvYXQpOgorICAgICAgICBjb250ZXh0ID0gZ2V0Y29udGV4dCgpCisgICAgICAgIGlmIGVxdWFsaXR5X29wOgorICAgICAgICAgICAgY29udGV4dC5mbGFnc1tGbG9hdE9wZXJhdGlvbl0gPSAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb250ZXh0Ll9yYWlzZV9lcnJvcihGbG9hdE9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAic3RyaWN0IHNlbWFudGljcyBmb3IgbWl4aW5nIGZsb2F0cyBhbmQgRGVjaW1hbHMgYXJlIGVuYWJsZWQiKQogICAgICAgICByZXR1cm4gc2VsZiwgRGVjaW1hbC5mcm9tX2Zsb2F0KG90aGVyKQogICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZCwgTm90SW1wbGVtZW50ZWQKIApAQCAtNTkwOCw4ICs2MDUxLDggQEAKICAgICAgICAgcHJlYz0yOCwgcm91bmRpbmc9Uk9VTkRfSEFMRl9FVkVOLAogICAgICAgICB0cmFwcz1bRGl2aXNpb25CeVplcm8sIE92ZXJmbG93LCBJbnZhbGlkT3BlcmF0aW9uXSwKICAgICAgICAgZmxhZ3M9W10sCi0gICAgICAgIEVtYXg9OTk5OTk5OTk5LAotICAgICAgICBFbWluPS05OTk5OTk5OTksCisgICAgICAgIEVtYXg9OTk5OTk5LAorICAgICAgICBFbWluPS05OTk5OTksCiAgICAgICAgIGNhcGl0YWxzPTEsCiAgICAgICAgIGNsYW1wPTAKICkKQEAgLTYwNTksNyArNjIwMiw3IEBACiAgICAgIyBpZiBmb3JtYXQgdHlwZSBpcyAnZycgb3IgJ0cnIHRoZW4gYSBwcmVjaXNpb24gb2YgMCBtYWtlcyBsaXR0bGUKICAgICAjIHNlbnNlOyBjb252ZXJ0IGl0IHRvIDEuICBTYW1lIGlmIGZvcm1hdCB0eXBlIGlzIHVuc3BlY2lmaWVkLgogICAgIGlmIGZvcm1hdF9kaWN0WydwcmVjaXNpb24nXSA9PSAwOgotICAgICAgICBpZiBmb3JtYXRfZGljdFsndHlwZSddIGlzIE5vbmUgb3IgZm9ybWF0X2RpY3RbJ3R5cGUnXSBpbiAnZ0cnOgorICAgICAgICBpZiBmb3JtYXRfZGljdFsndHlwZSddIGlzIE5vbmUgb3IgZm9ybWF0X2RpY3RbJ3R5cGUnXSBpbiAnZ0duJzoKICAgICAgICAgICAgIGZvcm1hdF9kaWN0WydwcmVjaXNpb24nXSA9IDEKIAogICAgICMgZGV0ZXJtaW5lIHRob3VzYW5kcyBzZXBhcmF0b3IsIGdyb3VwaW5nLCBhbmQgZGVjaW1hbCBzZXBhcmF0b3IsIGFuZApAQCAtNjIzMywxNiArNjM3NiwyNiBAQAogCiAjIENvbnN0YW50cyByZWxhdGVkIHRvIHRoZSBoYXNoIGltcGxlbWVudGF0aW9uOyAgaGFzaCh4KSBpcyBiYXNlZAogIyBvbiB0aGUgcmVkdWN0aW9uIG9mIHggbW9kdWxvIF9QeUhBU0hfTU9EVUxVUwotaW1wb3J0IHN5cwogX1B5SEFTSF9NT0RVTFVTID0gc3lzLmhhc2hfaW5mby5tb2R1bHVzCiAjIGhhc2ggdmFsdWVzIHRvIHVzZSBmb3IgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIGluZmluaXRpZXMsIGFuZCBuYW5zCiBfUHlIQVNIX0lORiA9IHN5cy5oYXNoX2luZm8uaW5mCiBfUHlIQVNIX05BTiA9IHN5cy5oYXNoX2luZm8ubmFuCi1kZWwgc3lzCiAKICMgX1B5SEFTSF8xMElOViBpcyB0aGUgaW52ZXJzZSBvZiAxMCBtb2R1bG8gdGhlIHByaW1lIF9QeUhBU0hfTU9EVUxVUwogX1B5SEFTSF8xMElOViA9IHBvdygxMCwgX1B5SEFTSF9NT0RVTFVTIC0gMiwgX1B5SEFTSF9NT0RVTFVTKQorZGVsIHN5cwogCit0cnk6CisgICAgaW1wb3J0IF9kZWNpbWFsCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcGFzcworZWxzZToKKyAgICBzMSA9IHNldChkaXIoKSkKKyAgICBzMiA9IHNldChkaXIoX2RlY2ltYWwpKQorICAgIGZvciBuYW1lIGluIHMxIC0gczI6CisgICAgICAgIGRlbCBnbG9iYWxzKClbbmFtZV0KKyAgICBkZWwgczEsIHMyLCBuYW1lCisgICAgZnJvbSBfZGVjaW1hbCBpbXBvcnQgKgogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIGltcG9ydCBkb2N0ZXN0LCBkZWNpbWFsCmRpZmYgLS1naXQgYS9MaWIvZGlmZmxpYi5weSBiL0xpYi9kaWZmbGliLnB5CmluZGV4IGU2Y2M2ZWUuLmFlMzc3ZDcgMTAwNjQ0Ci0tLSBhL0xpYi9kaWZmbGliLnB5CisrKyBiL0xpYi9kaWZmbGliLnB5CkBAIC0yMDQsNyArMjA0LDcgQEAKICAgICAgICAgIyAgICAgIHJldHVybmluZyB0cnVlIGlmZiB0aGUgZWxlbWVudCBpcyAianVuayIgLS0gdGhpcyBoYXMKICAgICAgICAgIyAgICAgIHN1YnRsZSBidXQgaGVscGZ1bCBlZmZlY3RzIG9uIHRoZSBhbGdvcml0aG0sIHdoaWNoIEknbGwKICAgICAgICAgIyAgICAgIGdldCBhcm91bmQgdG8gd3JpdGluZyB1cCBzb21lZGF5IDwwLjkgd2luaz4uCi0gICAgICAgICMgICAgICBET04nVCBVU0UhICBPbmx5IF9fY2hhaW5fYiB1c2VzIHRoaXMuICBVc2UgaXNianVuay4KKyAgICAgICAgIyAgICAgIERPTidUIFVTRSEgIE9ubHkgX19jaGFpbl9iIHVzZXMgdGhpcy4gIFVzZSAiaW4gc2VsZi5ianVuayIuCiAgICAgICAgICMgYmp1bmsKICAgICAgICAgIyAgICAgIHRoZSBpdGVtcyBpbiBiIGZvciB3aGljaCBpc2p1bmsgaXMgVHJ1ZS4KICAgICAgICAgIyBicG9wdWxhcgpAQCAtMjg3LDcgKzI4Nyw2IEBACiAgICAgIyB3aGVuIHNlbGYuaXNqdW5rIGlzIGRlZmluZWQsIGp1bmsgZWxlbWVudHMgZG9uJ3Qgc2hvdyB1cCBpbiB0aGlzCiAgICAgIyBtYXAgYXQgYWxsLCB3aGljaCBzdG9wcyB0aGUgY2VudHJhbCBmaW5kX2xvbmdlc3RfbWF0Y2ggbWV0aG9kCiAgICAgIyBmcm9tIHN0YXJ0aW5nIGFueSBtYXRjaGluZyBibG9jayBhdCBhIGp1bmsgZWxlbWVudCAuLi4KLSAgICAjIGFsc28gY3JlYXRlcyB0aGUgZmFzdCBpc2JqdW5rIGZ1bmN0aW9uIC4uLgogICAgICMgYjJqIGFsc28gZG9lcyBub3QgY29udGFpbiBlbnRyaWVzIGZvciAicG9wdWxhciIgZWxlbWVudHMsIG1lYW5pbmcKICAgICAjIGVsZW1lbnRzIHRoYXQgYWNjb3VudCBmb3IgbW9yZSB0aGFuIDEgKyAxJSBvZiB0aGUgdG90YWwgZWxlbWVudHMsIGFuZAogICAgICMgd2hlbiB0aGUgc2VxdWVuY2UgaXMgcmVhc29uYWJseSBsYXJnZSAoPj0gMjAwIGVsZW1lbnRzKTsgdGhpcyBjYW4KQEAgLTgwMCw3ICs3OTksNyBAQAogICAgIC4uLiAgIDIuIEV4cGxpY2l0IGlzIGJldHRlciB0aGFuIGltcGxpY2l0LgogICAgIC4uLiAgIDMuIFNpbXBsZSBpcyBiZXR0ZXIgdGhhbiBjb21wbGV4LgogICAgIC4uLiAgIDQuIENvbXBsZXggaXMgYmV0dGVyIHRoYW4gY29tcGxpY2F0ZWQuCi0gICAgLi4uICcnJy5zcGxpdGxpbmVzKDEpCisgICAgLi4uICcnJy5zcGxpdGxpbmVzKGtlZXBlbmRzPVRydWUpCiAgICAgPj4+IGxlbih0ZXh0MSkKICAgICA0CiAgICAgPj4+IHRleHQxWzBdWy0xXQpAQCAtODA5LDcgKzgwOCw3IEBACiAgICAgLi4uICAgMy4gICBTaW1wbGUgaXMgYmV0dGVyIHRoYW4gY29tcGxleC4KICAgICAuLi4gICA0LiBDb21wbGljYXRlZCBpcyBiZXR0ZXIgdGhhbiBjb21wbGV4LgogICAgIC4uLiAgIDUuIEZsYXQgaXMgYmV0dGVyIHRoYW4gbmVzdGVkLgotICAgIC4uLiAnJycuc3BsaXRsaW5lcygxKQorICAgIC4uLiAnJycuc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKQogCiAgICAgTmV4dCB3ZSBpbnN0YW50aWF0ZSBhIERpZmZlciBvYmplY3Q6CiAKQEAgLTg5Niw4ICs4OTUsOCBAQAogCiAgICAgICAgIEV4YW1wbGU6CiAKLSAgICAgICAgPj4+IHByaW50KCcnLmpvaW4oRGlmZmVyKCkuY29tcGFyZSgnb25lXG50d29cbnRocmVlXG4nLnNwbGl0bGluZXMoMSksCi0gICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZVxudHJlZVxuZW11XG4nLnNwbGl0bGluZXMoMSkpKSwKKyAgICAgICAgPj4+IHByaW50KCcnLmpvaW4oRGlmZmVyKCkuY29tcGFyZSgnb25lXG50d29cbnRocmVlXG4nLnNwbGl0bGluZXMoVHJ1ZSksCisgICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZVxudHJlZVxuZW11XG4nLnNwbGl0bGluZXMoVHJ1ZSkpKSwKICAgICAgICAgLi4uICAgICAgIGVuZD0iIikKICAgICAgICAgLSBvbmUKICAgICAgICAgPyAgXgpAQCAtMTI2OSw4ICsxMjY4LDggQEAKIAogICAgIEV4YW1wbGU6CiAKLSAgICA+Pj4gcHJpbnQoJycuam9pbihjb250ZXh0X2RpZmYoJ29uZVxudHdvXG50aHJlZVxuZm91clxuJy5zcGxpdGxpbmVzKDEpLAotICAgIC4uLiAgICAgICAnemVyb1xub25lXG50cmVlXG5mb3VyXG4nLnNwbGl0bGluZXMoMSksICdPcmlnaW5hbCcsICdDdXJyZW50JykpLAorICAgID4+PiBwcmludCgnJy5qb2luKGNvbnRleHRfZGlmZignb25lXG50d29cbnRocmVlXG5mb3VyXG4nLnNwbGl0bGluZXMoVHJ1ZSksCisgICAgLi4uICAgICAgICd6ZXJvXG5vbmVcbnRyZWVcbmZvdXJcbicuc3BsaXRsaW5lcyhUcnVlKSwgJ09yaWdpbmFsJywgJ0N1cnJlbnQnKSksCiAgICAgLi4uICAgICAgIGVuZD0iIikKICAgICAqKiogT3JpZ2luYWwKICAgICAtLS0gQ3VycmVudApAQCAtMTMzOSw4ICsxMzM4LDggQEAKIAogICAgIEV4YW1wbGU6CiAKLSAgICA+Pj4gZGlmZiA9IG5kaWZmKCdvbmVcbnR3b1xudGhyZWVcbicuc3BsaXRsaW5lcygxKSwKLSAgICAuLi4gICAgICAgICAgICAgICdvcmVcbnRyZWVcbmVtdVxuJy5zcGxpdGxpbmVzKDEpKQorICAgID4+PiBkaWZmID0gbmRpZmYoJ29uZVxudHdvXG50aHJlZVxuJy5zcGxpdGxpbmVzKGtlZXBlbmRzPVRydWUpLAorICAgIC4uLiAgICAgICAgICAgICAgJ29yZVxudHJlZVxuZW11XG4nLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkpCiAgICAgPj4+IHByaW50KCcnLmpvaW4oZGlmZiksIGVuZD0iIikKICAgICAtIG9uZQogICAgID8gIF4KQEAgLTIwMzQsOCArMjAzMyw4IEBACiAKICAgICBFeGFtcGxlczoKIAotICAgID4+PiBkaWZmID0gbmRpZmYoJ29uZVxudHdvXG50aHJlZVxuJy5zcGxpdGxpbmVzKDEpLAotICAgIC4uLiAgICAgICAgICAgICAgJ29yZVxudHJlZVxuZW11XG4nLnNwbGl0bGluZXMoMSkpCisgICAgPj4+IGRpZmYgPSBuZGlmZignb25lXG50d29cbnRocmVlXG4nLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSksCisgICAgLi4uICAgICAgICAgICAgICAnb3JlXG50cmVlXG5lbXVcbicuc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKSkKICAgICA+Pj4gZGlmZiA9IGxpc3QoZGlmZikKICAgICA+Pj4gcHJpbnQoJycuam9pbihyZXN0b3JlKGRpZmYsIDEpKSwgZW5kPSIiKQogICAgIG9uZQpkaWZmIC0tZ2l0IGEvTGliL2Rpcy5weSBiL0xpYi9kaXMucHkKaW5kZXggZjY0YmFlNi4uNTQzZmRjNyAxMDA2NDQKLS0tIGEvTGliL2Rpcy5weQorKysgYi9MaWIvZGlzLnB5CkBAIC0xOTAsNiArMTkwLDkgQEAKICAgICAgICAgICAgICAgICBpZiBmcmVlIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIGZyZWUgPSBjby5jb19jZWxsdmFycyArIGNvLmNvX2ZyZWV2YXJzCiAgICAgICAgICAgICAgICAgcHJpbnQoJygnICsgZnJlZVtvcGFyZ10gKyAnKScsIGVuZD0nICcpCisgICAgICAgICAgICBlbGlmIG9wIGluIGhhc25hcmdzOgorICAgICAgICAgICAgICAgIHByaW50KCcoJWQgcG9zaXRpb25hbCwgJWQga2V5d29yZCBwYWlyKScKKyAgICAgICAgICAgICAgICAgICAgICAlIChjb2RlW2ktMl0sIGNvZGVbaS0xXSksIGVuZD0nICcpCiAgICAgICAgIHByaW50KCkKIAogZGVmIF9kaXNhc3NlbWJsZV9ieXRlcyhjb2RlLCBsYXN0aT0tMSwgdmFybmFtZXM9Tm9uZSwgbmFtZXM9Tm9uZSwKQEAgLTIyOSw2ICsyMzIsOSBAQAogICAgICAgICAgICAgICAgICAgICBwcmludCgnKCVkKScgJSBvcGFyZywgZW5kPScgJykKICAgICAgICAgICAgIGVsaWYgb3AgaW4gaGFzY29tcGFyZToKICAgICAgICAgICAgICAgICBwcmludCgnKCcgKyBjbXBfb3Bbb3BhcmddICsgJyknLCBlbmQ9JyAnKQorICAgICAgICAgICAgZWxpZiBvcCBpbiBoYXNuYXJnczoKKyAgICAgICAgICAgICAgICBwcmludCgnKCVkIHBvc2l0aW9uYWwsICVkIGtleXdvcmQgcGFpciknCisgICAgICAgICAgICAgICAgICAgICAgJSAoY29kZVtpLTJdLCBjb2RlW2ktMV0pLCBlbmQ9JyAnKQogICAgICAgICBwcmludCgpCiAKIGRlZiBfZGlzYXNzZW1ibGVfc3RyKHNvdXJjZSk6CmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL19faW5pdF9fLnB5IGIvTGliL2Rpc3R1dGlscy9fX2luaXRfXy5weQppbmRleCBiNTJhOWZlLi43YTdiOGQ2IDEwMDY0NAotLS0gYS9MaWIvZGlzdHV0aWxzL19faW5pdF9fLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvX19pbml0X18ucHkKQEAgLTEzLDUgKzEzLDUgQEAKICMgVXBkYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBQeXRob24gcmVsZWFzZSBwcm9jZXNzLgogIwogIy0tc3RhcnQgY29uc3RhbnRzLS0KLV9fdmVyc2lvbl9fID0gIjMuMi4zIgorX192ZXJzaW9uX18gPSAiMy4zLjBiMSIKICMtLWVuZCBjb25zdGFudHMtLQpkaWZmIC0tZ2l0IGEvTGliL2Rpc3R1dGlscy9jb21tYW5kL2JkaXN0X3dpbmluc3QucHkgYi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYmRpc3Rfd2luaW5zdC5weQppbmRleCBlM2VkM2FkLi45NTlhOGJmIDEwMDY0NAotLS0gYS9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYmRpc3Rfd2luaW5zdC5weQorKysgYi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYmRpc3Rfd2luaW5zdC5weQpAQCAtMjY1LDExICsyNjUsMTEgQEAKICAgICAgICAgY2ZnZGF0YSA9IGNmZ2RhdGEgKyBiIlwwIgogICAgICAgICBpZiBzZWxmLnByZV9pbnN0YWxsX3NjcmlwdDoKICAgICAgICAgICAgICMgV2UgbmVlZCB0byBub3JtYWxpemUgbmV3bGluZXMsIHNvIHdlIG9wZW4gaW4gdGV4dCBtb2RlIGFuZAotICAgICAgICAgICAgIyBjb252ZXJ0IGJhY2sgdG8gYnl0ZXMuICJsYXRpbjEiIHNpbXBseSBhdm9pZHMgYW55IHBvc3NpYmxlCisgICAgICAgICAgICAjIGNvbnZlcnQgYmFjayB0byBieXRlcy4gImxhdGluLTEiIHNpbXBseSBhdm9pZHMgYW55IHBvc3NpYmxlCiAgICAgICAgICAgICAjIGZhaWx1cmVzLgogICAgICAgICAgICAgd2l0aCBvcGVuKHNlbGYucHJlX2luc3RhbGxfc2NyaXB0LCAiciIsCi0gICAgICAgICAgICAgICAgZW5jb2Rpbmc9ImxhdGluMSIpIGFzIHNjcmlwdDoKLSAgICAgICAgICAgICAgICBzY3JpcHRfZGF0YSA9IHNjcmlwdC5yZWFkKCkuZW5jb2RlKCJsYXRpbjEiKQorICAgICAgICAgICAgICAgIGVuY29kaW5nPSJsYXRpbi0xIikgYXMgc2NyaXB0OgorICAgICAgICAgICAgICAgIHNjcmlwdF9kYXRhID0gc2NyaXB0LnJlYWQoKS5lbmNvZGUoImxhdGluLTEiKQogICAgICAgICAgICAgY2ZnZGF0YSA9IGNmZ2RhdGEgKyBzY3JpcHRfZGF0YSArIGIiXG5cMCIKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgZW1wdHkgcHJlLWluc3RhbGwgc2NyaXB0CmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYnVpbGRfZXh0LnB5IGIvTGliL2Rpc3R1dGlscy9jb21tYW5kL2J1aWxkX2V4dC5weQppbmRleCAzNGI2MWJkLi5hYzM3YzEzIDEwMDY0NAotLS0gYS9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYnVpbGRfZXh0LnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvY29tbWFuZC9idWlsZF9leHQucHkKQEAgLTE5Nyw3ICsxOTcsNyBAQAogICAgICAgICAgICAgIyBBcHBlbmQgdGhlIHNvdXJjZSBkaXN0cmlidXRpb24gaW5jbHVkZSBhbmQgbGlicmFyeSBkaXJlY3RvcmllcywKICAgICAgICAgICAgICMgdGhpcyBhbGxvd3MgZGlzdHV0aWxzIG9uIHdpbmRvd3MgdG8gd29yayBpbiB0aGUgc291cmNlIHRyZWUKICAgICAgICAgICAgIHNlbGYuaW5jbHVkZV9kaXJzLmFwcGVuZChvcy5wYXRoLmpvaW4oc3lzLmV4ZWNfcHJlZml4LCAnUEMnKSkKLSAgICAgICAgICAgIGlmIE1TVkNfVkVSU0lPTiA9PSA5OgorICAgICAgICAgICAgaWYgTVNWQ19WRVJTSU9OID49IDk6CiAgICAgICAgICAgICAgICAgIyBVc2UgdGhlIC5saWIgZmlsZXMgZm9yIHRoZSBjb3JyZWN0IGFyY2hpdGVjdHVyZQogICAgICAgICAgICAgICAgIGlmIHNlbGYucGxhdF9uYW1lID09ICd3aW4zMic6CiAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeCA9ICcnCkBAIC0yMzksOCArMjM5LDcgQEAKICAgICAgICAgIyBmb3IgZXh0ZW5zaW9ucyB1bmRlciBMaW51eCBvciBTb2xhcmlzIHdpdGggYSBzaGFyZWQgUHl0aG9uIGxpYnJhcnksCiAgICAgICAgICMgUHl0aG9uJ3MgbGlicmFyeSBkaXJlY3RvcnkgbXVzdCBiZSBhcHBlbmRlZCB0byBsaWJyYXJ5X2RpcnMKICAgICAgICAgc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdQeV9FTkFCTEVfU0hBUkVEJykKLSAgICAgICAgaWYgKChzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgnKSBvciBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnZ251JykKLSAgICAgICAgICAgICBvciBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnc3Vub3MnKSkKKyAgICAgICAgaWYgKHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCgnbGludXgnLCAnZ251JywgJ3N1bm9zJykpCiAgICAgICAgICAgICBhbmQgc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdQeV9FTkFCTEVfU0hBUkVEJykpOgogICAgICAgICAgICAgaWYgc3lzLmV4ZWN1dGFibGUuc3RhcnRzd2l0aChvcy5wYXRoLmpvaW4oc3lzLmV4ZWNfcHJlZml4LCAiYmluIikpOgogICAgICAgICAgICAgICAgICMgYnVpbGRpbmcgdGhpcmQgcGFydHkgZXh0ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvTGliL2Rpc3R1dGlscy9jb21tYW5kL2J1aWxkX3NjcmlwdHMucHkgYi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYnVpbGRfc2NyaXB0cy5weQppbmRleCBlYzQzNDc3Li40YjViMjJlIDEwMDY0NAotLS0gYS9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYnVpbGRfc2NyaXB0cy5weQorKysgYi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvYnVpbGRfc2NyaXB0cy5weQpAQCAtMTI2LDEwICsxMjYsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgc2hlYmFuZyAoeyFyfSkgaXMgbm90IGRlY29kYWJsZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyb20gdGhlIHNjcmlwdCBlbmNvZGluZyAoe30pIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5mb3JtYXQoc2hlYmFuZywgZW5jb2RpbmcpKQotICAgICAgICAgICAgICAgICAgICBvdXRmID0gb3BlbihvdXRmaWxlLCAid2IiKQotICAgICAgICAgICAgICAgICAgICBvdXRmLndyaXRlKHNoZWJhbmcpCi0gICAgICAgICAgICAgICAgICAgIG91dGYud3JpdGVsaW5lcyhmLnJlYWRsaW5lcygpKQotICAgICAgICAgICAgICAgICAgICBvdXRmLmNsb3NlKCkKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBvcGVuKG91dGZpbGUsICJ3YiIpIGFzIG91dGY6CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRmLndyaXRlKHNoZWJhbmcpCisgICAgICAgICAgICAgICAgICAgICAgICBvdXRmLndyaXRlbGluZXMoZi5yZWFkbGluZXMoKSkKICAgICAgICAgICAgICAgICBpZiBmOgogICAgICAgICAgICAgICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgICAgIGVsc2U6CmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvd2luaW5zdC0xMC4wLWFtZDY0LmV4ZSBiL0xpYi9kaXN0dXRpbHMvY29tbWFuZC93aW5pbnN0LTEwLjAtYW1kNjQuZXhlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZmYTBkY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvd2luaW5zdC0xMC4wLWFtZDY0LmV4ZQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvd2luaW5zdC0xMC4wLmV4ZSBiL0xpYi9kaXN0dXRpbHMvY29tbWFuZC93aW5pbnN0LTEwLjAuZXhlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmYzNiYzYKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvZGlzdHV0aWxzL2NvbW1hbmQvd2luaW5zdC0xMC4wLmV4ZQpCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL3N5c2NvbmZpZy5weSBiL0xpYi9kaXN0dXRpbHMvc3lzY29uZmlnLnB5CmluZGV4IDE2OTAyY2EuLmRhYzMwMzUgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvc3lzY29uZmlnLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvc3lzY29uZmlnLnB5CkBAIC0xOCw2ICsxOCw4IEBACiAjIFRoZXNlIGFyZSBuZWVkZWQgaW4gYSBjb3VwbGUgb2Ygc3BvdHMsIHNvIGp1c3QgY29tcHV0ZSB0aGVtIG9uY2UuCiBQUkVGSVggPSBvcy5wYXRoLm5vcm1wYXRoKHN5cy5wcmVmaXgpCiBFWEVDX1BSRUZJWCA9IG9zLnBhdGgubm9ybXBhdGgoc3lzLmV4ZWNfcHJlZml4KQorQkFTRV9QUkVGSVggPSBvcy5wYXRoLm5vcm1wYXRoKHN5cy5iYXNlX3ByZWZpeCkKK0JBU0VfRVhFQ19QUkVGSVggPSBvcy5wYXRoLm5vcm1wYXRoKHN5cy5iYXNlX2V4ZWNfcHJlZml4KQogCiAjIFBhdGggdG8gdGhlIGJhc2UgZGlyZWN0b3J5IG9mIHRoZSBwcm9qZWN0LiBPbiBXaW5kb3dzIHRoZSBiaW5hcnkgbWF5CiAjIGxpdmUgaW4gcHJvamVjdC9QQ0J1aWxkOS4gIElmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhbiB4NjQgV2luZG93cyBidWlsZCwKQEAgLTM5LDExICs0MSwyMSBAQAogIyBkaWZmZXJlbnQgKGhhcmQtd2lyZWQpIGRpcmVjdG9yaWVzLgogIyBTZXR1cC5sb2NhbCBpcyBhdmFpbGFibGUgZm9yIE1ha2VmaWxlIGJ1aWxkcyBpbmNsdWRpbmcgVlBBVEggYnVpbGRzLAogIyBTZXR1cC5kaXN0IGlzIGF2YWlsYWJsZSBvbiBXaW5kb3dzCi1kZWYgX3B5dGhvbl9idWlsZCgpOgorZGVmIF9pc19weXRob25fc291cmNlX2RpcihkKToKICAgICBmb3IgZm4gaW4gKCJTZXR1cC5kaXN0IiwgIlNldHVwLmxvY2FsIik6Ci0gICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihwcm9qZWN0X2Jhc2UsICJNb2R1bGVzIiwgZm4pKToKKyAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKGQsICJNb2R1bGVzIiwgZm4pKToKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgcmV0dXJuIEZhbHNlCitfc3lzX2hvbWUgPSBnZXRhdHRyKHN5cywgJ19ob21lJywgTm9uZSkKK2lmIF9zeXNfaG9tZSBhbmQgb3MubmFtZSA9PSAnbnQnIGFuZCBcCisgICAgX3N5c19ob21lLmxvd2VyKCkuZW5kc3dpdGgoKCdwY2J1aWxkJywgJ3BjYnVpbGRcXGFtZDY0JykpOgorICAgIF9zeXNfaG9tZSA9IG9zLnBhdGguZGlybmFtZShfc3lzX2hvbWUpCisgICAgaWYgX3N5c19ob21lLmVuZHN3aXRoKCdwY2J1aWxkJyk6ICAgIyBtdXN0IGJlIGFtZDY0CisgICAgICAgIF9zeXNfaG9tZSA9IG9zLnBhdGguZGlybmFtZShfc3lzX2hvbWUpCitkZWYgX3B5dGhvbl9idWlsZCgpOgorICAgIGlmIF9zeXNfaG9tZToKKyAgICAgICAgcmV0dXJuIF9pc19weXRob25fc291cmNlX2Rpcihfc3lzX2hvbWUpCisgICAgcmV0dXJuIF9pc19weXRob25fc291cmNlX2Rpcihwcm9qZWN0X2Jhc2UpCiBweXRob25fYnVpbGQgPSBfcHl0aG9uX2J1aWxkKCkKIAogIyBDYWxjdWxhdGUgdGhlIGJ1aWxkIHF1YWxpZmllciBmbGFncyBpZiB0aGV5IGFyZSBkZWZpbmVkLiAgQWRkaW5nIHRoZSBmbGFncwpAQCAtNzQsMTEgKzg2LDExIEBACiAgICAgb3RoZXJ3aXNlLCB0aGlzIGlzIHRoZSBwYXRoIHRvIHBsYXRmb3JtLXNwZWNpZmljIGhlYWRlciBmaWxlcwogICAgIChuYW1lbHkgcHljb25maWcuaCkuCiAKLSAgICBJZiAncHJlZml4JyBpcyBzdXBwbGllZCwgdXNlIGl0IGluc3RlYWQgb2Ygc3lzLnByZWZpeCBvcgotICAgIHN5cy5leGVjX3ByZWZpeCAtLSBpLmUuLCBpZ25vcmUgJ3BsYXRfc3BlY2lmaWMnLgorICAgIElmICdwcmVmaXgnIGlzIHN1cHBsaWVkLCB1c2UgaXQgaW5zdGVhZCBvZiBzeXMuYmFzZV9wcmVmaXggb3IKKyAgICBzeXMuYmFzZV9leGVjX3ByZWZpeCAtLSBpLmUuLCBpZ25vcmUgJ3BsYXRfc3BlY2lmaWMnLgogICAgICIiIgogICAgIGlmIHByZWZpeCBpcyBOb25lOgotICAgICAgICBwcmVmaXggPSBwbGF0X3NwZWNpZmljIGFuZCBFWEVDX1BSRUZJWCBvciBQUkVGSVgKKyAgICAgICAgcHJlZml4ID0gcGxhdF9zcGVjaWZpYyBhbmQgQkFTRV9FWEVDX1BSRUZJWCBvciBCQVNFX1BSRUZJWAogICAgIGlmIG9zLm5hbWUgPT0gInBvc2l4IjoKICAgICAgICAgaWYgcHl0aG9uX2J1aWxkOgogICAgICAgICAgICAgIyBBc3N1bWUgdGhlIGV4ZWN1dGFibGUgaXMgaW4gdGhlIGJ1aWxkIGRpcmVjdG9yeS4gIFRoZQpAQCAtODYsMTEgKzk4LDEyIEBACiAgICAgICAgICAgICAjIHRoZSBidWlsZCBkaXJlY3RvcnkgbWF5IG5vdCBiZSB0aGUgc291cmNlIGRpcmVjdG9yeSwgd2UKICAgICAgICAgICAgICMgbXVzdCB1c2UgInNyY2RpciIgZnJvbSB0aGUgbWFrZWZpbGUgdG8gZmluZCB0aGUgIkluY2x1ZGUiCiAgICAgICAgICAgICAjIGRpcmVjdG9yeS4KLSAgICAgICAgICAgIGJhc2UgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKHN5cy5leGVjdXRhYmxlKSkKKyAgICAgICAgICAgIGJhc2UgPSBfc3lzX2hvbWUgb3Igb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChzeXMuZXhlY3V0YWJsZSkpCiAgICAgICAgICAgICBpZiBwbGF0X3NwZWNpZmljOgogICAgICAgICAgICAgICAgIHJldHVybiBiYXNlCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGluY2RpciA9IG9zLnBhdGguam9pbihnZXRfY29uZmlnX3Zhcignc3JjZGlyJyksICdJbmNsdWRlJykKKyAgICAgICAgICAgICAgICBpbmNkaXIgPSBvcy5wYXRoLmpvaW4oX3N5c19ob21lIG9yIGdldF9jb25maWdfdmFyKCdzcmNkaXInKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0luY2x1ZGUnKQogICAgICAgICAgICAgICAgIHJldHVybiBvcy5wYXRoLm5vcm1wYXRoKGluY2RpcikKICAgICAgICAgcHl0aG9uX2RpciA9ICdweXRob24nICsgZ2V0X3B5dGhvbl92ZXJzaW9uKCkgKyBidWlsZF9mbGFncwogICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHByZWZpeCwgImluY2x1ZGUiLCBweXRob25fZGlyKQpAQCAtMTE1LDExICsxMjgsMTQgQEAKICAgICBjb250YWluaW5nIHN0YW5kYXJkIFB5dGhvbiBsaWJyYXJ5IG1vZHVsZXM7IG90aGVyd2lzZSwgcmV0dXJuIHRoZQogICAgIGRpcmVjdG9yeSBmb3Igc2l0ZS1zcGVjaWZpYyBtb2R1bGVzLgogCi0gICAgSWYgJ3ByZWZpeCcgaXMgc3VwcGxpZWQsIHVzZSBpdCBpbnN0ZWFkIG9mIHN5cy5wcmVmaXggb3IKLSAgICBzeXMuZXhlY19wcmVmaXggLS0gaS5lLiwgaWdub3JlICdwbGF0X3NwZWNpZmljJy4KKyAgICBJZiAncHJlZml4JyBpcyBzdXBwbGllZCwgdXNlIGl0IGluc3RlYWQgb2Ygc3lzLmJhc2VfcHJlZml4IG9yCisgICAgc3lzLmJhc2VfZXhlY19wcmVmaXggLS0gaS5lLiwgaWdub3JlICdwbGF0X3NwZWNpZmljJy4KICAgICAiIiIKICAgICBpZiBwcmVmaXggaXMgTm9uZToKLSAgICAgICAgcHJlZml4ID0gcGxhdF9zcGVjaWZpYyBhbmQgRVhFQ19QUkVGSVggb3IgUFJFRklYCisgICAgICAgIGlmIHN0YW5kYXJkX2xpYjoKKyAgICAgICAgICAgIHByZWZpeCA9IHBsYXRfc3BlY2lmaWMgYW5kIEJBU0VfRVhFQ19QUkVGSVggb3IgQkFTRV9QUkVGSVgKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByZWZpeCA9IHBsYXRfc3BlY2lmaWMgYW5kIEVYRUNfUFJFRklYIG9yIFBSRUZJWAogCiAgICAgaWYgb3MubmFtZSA9PSAicG9zaXgiOgogICAgICAgICBsaWJweXRob24gPSBvcy5wYXRoLmpvaW4ocHJlZml4LApAQCAtMTQ2LDcgKzE2Miw3IEBACiAgICAgICAgICAgICAiSSBkb24ndCBrbm93IHdoZXJlIFB5dGhvbiBpbnN0YWxscyBpdHMgbGlicmFyeSAiCiAgICAgICAgICAgICAib24gcGxhdGZvcm0gJyVzJyIgJSBvcy5uYW1lKQogCi1fVVNFX0NMQU5HID0gTm9uZQorCiAKIGRlZiBjdXN0b21pemVfY29tcGlsZXIoY29tcGlsZXIpOgogICAgICIiIkRvIGFueSBwbGF0Zm9ybS1zcGVjaWZpYyBjdXN0b21pemF0aW9uIG9mIGEgQ0NvbXBpbGVyIGluc3RhbmNlLgpAQCAtMTYxLDM2ICsxNzcsNyBAQAogCiAgICAgICAgIG5ld2NjID0gTm9uZQogICAgICAgICBpZiAnQ0MnIGluIG9zLmVudmlyb246Ci0gICAgICAgICAgICBuZXdjYyA9IG9zLmVudmlyb25bJ0NDJ10KLSAgICAgICAgZWxpZiBzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicgYW5kIGNjID09ICdnY2MtNC4yJzoKLSAgICAgICAgICAgICMgSXNzdWUgIzEzNTkwOgotICAgICAgICAgICAgIyAgICAgICBTaW5jZSBBcHBsZSByZW1vdmVkIGdjYy00LjIgaW4gWGNvZGUgNC4yLCB3ZSBjYW4gbm8KLSAgICAgICAgICAgICMgICAgICAgbG9uZ2VyIGFzc3VtZSBpdCBpcyBhdmFpbGFibGUgZm9yIGV4dGVuc2lvbiBtb2R1bGUgYnVpbGRzLgotICAgICAgICAgICAgIyAgICAgICBJZiBQeXRob24gd2FzIGJ1aWx0IHdpdGggZ2NjLTQuMiwgY2hlY2sgZmlyc3QgdG8gc2VlIGlmCi0gICAgICAgICAgICAjICAgICAgIGl0IGlzIGF2YWlsYWJsZSBvbiB0aGlzIHN5c3RlbTsgaWYgbm90LCB0cnkgdG8gdXNlIGNsYW5nCi0gICAgICAgICAgICAjICAgICAgIGluc3RlYWQgdW5sZXNzIHRoZSBjYWxsZXIgZXhwbGljaXRseSBzZXQgQ0MuCi0gICAgICAgICAgICBnbG9iYWwgX1VTRV9DTEFORwotICAgICAgICAgICAgaWYgX1VTRV9DTEFORyBpcyBOb25lOgotICAgICAgICAgICAgICAgIGZyb20gZGlzdHV0aWxzIGltcG9ydCBsb2cKLSAgICAgICAgICAgICAgICBmcm9tIHN1YnByb2Nlc3MgaW1wb3J0IFBvcGVuLCBQSVBFCi0gICAgICAgICAgICAgICAgcCA9IFBvcGVuKCIhIHR5cGUgZ2NjLTQuMiAmJiB0eXBlIGNsYW5nICYmIGV4aXQgMiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWxsPVRydWUsIHN0ZG91dD1QSVBFLCBzdGRlcnI9UElQRSkKLSAgICAgICAgICAgICAgICBwLndhaXQoKQotICAgICAgICAgICAgICAgIGlmIHAucmV0dXJuY29kZSA9PSAyOgotICAgICAgICAgICAgICAgICAgICBfVVNFX0NMQU5HID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBsb2cud2FybigiZ2NjLTQuMiBub3QgZm91bmQsIHVzaW5nIGNsYW5nIGluc3RlYWQiKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIF9VU0VfQ0xBTkcgPSBGYWxzZQotICAgICAgICAgICAgaWYgX1VTRV9DTEFORzoKLSAgICAgICAgICAgICAgICBuZXdjYyA9ICdjbGFuZycKLSAgICAgICAgaWYgbmV3Y2M6Ci0gICAgICAgICAgICAjIE9uIE9TIFgsIGlmIENDIGlzIG92ZXJyaWRkZW4sIHVzZSB0aGF0IGFzIHRoZSBkZWZhdWx0Ci0gICAgICAgICAgICAjICAgICAgIGNvbW1hbmQgZm9yIExEU0hBUkVEIGFzIHdlbGwKLSAgICAgICAgICAgIGlmIChzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicKLSAgICAgICAgICAgICAgICAgICAgYW5kICdMRFNIQVJFRCcgbm90IGluIG9zLmVudmlyb24KLSAgICAgICAgICAgICAgICAgICAgYW5kIGxkc2hhcmVkLnN0YXJ0c3dpdGgoY2MpKToKLSAgICAgICAgICAgICAgICBsZHNoYXJlZCA9IG5ld2NjICsgbGRzaGFyZWRbbGVuKGNjKTpdCi0gICAgICAgICAgICBjYyA9IG5ld2NjCisgICAgICAgICAgICBjYyA9IG9zLmVudmlyb25bJ0NDJ10KICAgICAgICAgaWYgJ0NYWCcgaW4gb3MuZW52aXJvbjoKICAgICAgICAgICAgIGN4eCA9IG9zLmVudmlyb25bJ0NYWCddCiAgICAgICAgIGlmICdMRFNIQVJFRCcgaW4gb3MuZW52aXJvbjoKQEAgLTIzMiw5ICsyMTksOSBAQAogICAgICIiIlJldHVybiBmdWxsIHBhdGhuYW1lIG9mIGluc3RhbGxlZCBweWNvbmZpZy5oIGZpbGUuIiIiCiAgICAgaWYgcHl0aG9uX2J1aWxkOgogICAgICAgICBpZiBvcy5uYW1lID09ICJudCI6Ci0gICAgICAgICAgICBpbmNfZGlyID0gb3MucGF0aC5qb2luKHByb2plY3RfYmFzZSwgIlBDIikKKyAgICAgICAgICAgIGluY19kaXIgPSBvcy5wYXRoLmpvaW4oX3N5c19ob21lIG9yIHByb2plY3RfYmFzZSwgIlBDIikKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGluY19kaXIgPSBwcm9qZWN0X2Jhc2UKKyAgICAgICAgICAgIGluY19kaXIgPSBfc3lzX2hvbWUgb3IgcHJvamVjdF9iYXNlCiAgICAgZWxzZToKICAgICAgICAgaW5jX2RpciA9IGdldF9weXRob25faW5jKHBsYXRfc3BlY2lmaWM9MSkKICAgICBpZiBnZXRfcHl0aG9uX3ZlcnNpb24oKSA8ICcyLjInOgpAQCAtMjQ4LDcgKzIzNSw4IEBACiBkZWYgZ2V0X21ha2VmaWxlX2ZpbGVuYW1lKCk6CiAgICAgIiIiUmV0dXJuIGZ1bGwgcGF0aG5hbWUgb2YgaW5zdGFsbGVkIE1ha2VmaWxlIGZyb20gdGhlIFB5dGhvbiBidWlsZC4iIiIKICAgICBpZiBweXRob25fYnVpbGQ6Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKHN5cy5leGVjdXRhYmxlKSwgIk1ha2VmaWxlIikKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihfc3lzX2hvbWUgb3Igb3MucGF0aC5kaXJuYW1lKHN5cy5leGVjdXRhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNYWtlZmlsZSIpCiAgICAgbGliX2RpciA9IGdldF9weXRob25fbGliKHBsYXRfc3BlY2lmaWM9MCwgc3RhbmRhcmRfbGliPTEpCiAgICAgY29uZmlnX2ZpbGUgPSAnY29uZmlnLXt9e30nLmZvcm1hdChnZXRfcHl0aG9uX3ZlcnNpb24oKSwgYnVpbGRfZmxhZ3MpCiAgICAgcmV0dXJuIG9zLnBhdGguam9pbihsaWJfZGlyLCBjb25maWdfZmlsZSwgJ01ha2VmaWxlJykKQEAgLTUwNSw2ICs0OTMsMjkgQEAKICAgICBfY29uZmlnX3ZhcnMgPSBnCiAKIAorZGVmIF9yZWFkX291dHB1dChjb21tYW5kc3RyaW5nKToKKyAgICAiIiIKKyAgICBSZXR1cm5zIG9zLnBvcGVuKGNvbW1hbmRzdHJpbmcsICJyIikucmVhZCgpLCBidXQKKyAgICB3aXRob3V0IGFjdHVhbGx5IHVzaW5nIG9zLnBvcGVuIGJlY2F1c2UgdGhhdAorICAgIGZ1bmN0aW9uIGlzIG5vdCB1c2FibGUgZHVyaW5nIHB5dGhvbiBib290c3RyYXAKKyAgICAiIiIKKyAgICAjIE5PVEU6IHRlbXBmaWxlIGlzIGFsc28gbm90IHVzZWFibGUgZHVyaW5nCisgICAgIyBib290c3RyYXAKKyAgICBpbXBvcnQgY29udGV4dGxpYgorICAgIHRyeToKKyAgICAgICAgaW1wb3J0IHRlbXBmaWxlCisgICAgICAgIGZwID0gdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKCkKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIGZwID0gb3BlbigiL3RtcC9kaXN0dXRpbHMuJXMiJSgKKyAgICAgICAgICAgIG9zLmdldHBpZCgpLCksICJ3K2IiKQorCisgICAgd2l0aCBjb250ZXh0bGliLmNsb3NpbmcoZnApIGFzIGZwOgorICAgICAgICBjbWQgPSAiJXMgPiclcyciJShjb21tYW5kc3RyaW5nLCBmcC5uYW1lKQorICAgICAgICBvcy5zeXN0ZW0oY21kKQorICAgICAgICBkYXRhID0gZnAucmVhZCgpCisKKyAgICByZXR1cm4gZGF0YS5kZWNvZGUoJ3V0Zi04JykKKwogZGVmIGdldF9jb25maWdfdmFycygqYXJncyk6CiAgICAgIiIiV2l0aCBubyBhcmd1bWVudHMsIHJldHVybiBhIGRpY3Rpb25hcnkgb2YgYWxsIGNvbmZpZ3VyYXRpb24KICAgICB2YXJpYWJsZXMgcmVsZXZhbnQgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtLiAgR2VuZXJhbGx5IHRoaXMgaW5jbHVkZXMKQEAgLTU0NCw5ICs1NTUsNzAgQEAKICAgICAgICAgICAgICAgICBfY29uZmlnX3ZhcnNbJ3NyY2RpciddID0gb3MucGF0aC5ub3JtcGF0aChzcmNkaXIpCiAKICAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICAgICAgZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0YWJsZQorCiAgICAgICAgICAgICBrZXJuZWxfdmVyc2lvbiA9IG9zLnVuYW1lKClbMl0gIyBLZXJuZWwgdmVyc2lvbiAoOC40LjMpCiAgICAgICAgICAgICBtYWpvcl92ZXJzaW9uID0gaW50KGtlcm5lbF92ZXJzaW9uLnNwbGl0KCcuJylbMF0pCiAKKyAgICAgICAgICAgICMgSXNzdWUgIzEzNTkwOgorICAgICAgICAgICAgIyAgICBUaGUgT1NYIGxvY2F0aW9uIGZvciB0aGUgY29tcGlsZXIgdmFyaWVzIGJldHdlZW4gT1NYCisgICAgICAgICAgICAjICAgIChvciByYXRoZXIgWGNvZGUpIHJlbGVhc2VzLiAgV2l0aCBvbGRlciByZWxlYXNlcyAodXAtdG8gMTAuNSkKKyAgICAgICAgICAgICMgICAgdGhlIGNvbXBpbGVyIGlzIGluIC91c3IvYmluLCB3aXRoIG5ld2VyIHJlbGVhc2VzIHRoZSBjb21waWxlcgorICAgICAgICAgICAgIyAgICBjYW4gb25seSBiZSBmb3VuZCBpbnNpZGUgWGNvZGUuYXBwIGlmIHRoZSAiQ29tbWFuZCBMaW5lIFRvb2xzIgorICAgICAgICAgICAgIyAgICBhcmUgbm90IGluc3RhbGxlZC4KKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgICAgRnV0aGVybW9yZSwgdGhlIGNvbXBpbGVyIHRoYXQgY2FuIGJlIHVzZWQgdmFyaWVzIGJldHdlZW4KKyAgICAgICAgICAgICMgICAgWGNvZGUgcmVsZWFzZXMuIFVwdG8gWGNvZGUgNCBpdCB3YXMgcG9zc2libGUgdG8gdXNlICdnY2MtNC4yJworICAgICAgICAgICAgIyAgICBhcyB0aGUgY29tcGlsZXIsIGFmdGVyIHRoYXQgJ2NsYW5nJyBzaG91bGQgYmUgdXNlZCBiZWNhdXNlCisgICAgICAgICAgICAjICAgIGdjYy00LjIgaXMgZWl0aGVyIG5vdCBwcmVzZW50LCBvciBhIGNvcHkgb2YgJ2xsdm0tZ2NjJyB0aGF0CisgICAgICAgICAgICAjICAgIG1pc2NvbXBpbGVzIFB5dGhvbi4KKworICAgICAgICAgICAgIyBza2lwIGNoZWNrcyBpZiB0aGUgY29tcGlsZXIgd2FzIG92ZXJyaWRlbiB3aXRoIGEgQ0MgZW52IHZhcmlhYmxlCisgICAgICAgICAgICBpZiAnQ0MnIG5vdCBpbiBvcy5lbnZpcm9uOgorICAgICAgICAgICAgICAgIGNjID0gb2xkY2MgPSBfY29uZmlnX3ZhcnNbJ0NDJ10KKyAgICAgICAgICAgICAgICBpZiBub3QgZmluZF9leGVjdXRhYmxlKGNjKToKKyAgICAgICAgICAgICAgICAgICAgIyBDb21waWxlciBpcyBub3QgZm91bmQgb24gdGhlIHNoZWxsIHNlYXJjaCBQQVRILgorICAgICAgICAgICAgICAgICAgICAjIE5vdyBzZWFyY2ggZm9yIGNsYW5nLCBmaXJzdCBvbiBQQVRIIChpZiB0aGUgQ29tbWFuZCBMSW5lCisgICAgICAgICAgICAgICAgICAgICMgVG9vbHMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbiAvIG9yIGlmIHRoZSB1c2VyIGhhcyBwcm92aWRlZAorICAgICAgICAgICAgICAgICAgICAjIGFub3RoZXIgbG9jYXRpb24gdmlhIENDKS4gIElmIG5vdCBmb3VuZCwgdHJ5IHVzaW5nIHhjcnVuCisgICAgICAgICAgICAgICAgICAgICMgdG8gZmluZCBhbiB1bmluc3RhbGxlZCBjbGFuZyAod2l0aGluIGEgc2VsZWN0ZWQgWGNvZGUpLgorCisgICAgICAgICAgICAgICAgICAgICMgTk9URTogQ2Fubm90IHVzZSBzdWJwcm9jZXNzIGhlcmUgYmVjYXVzZSBvZiBib290c3RyYXAKKyAgICAgICAgICAgICAgICAgICAgIyBpc3N1ZXMgd2hlbiBidWlsZGluZyBQeXRob24gaXRzZWxmIChhbmQgb3MucG9wZW4gaXMKKyAgICAgICAgICAgICAgICAgICAgIyBpbXBsZW1lbnRlZCBvbiB0b3Agb2Ygc3VicHJvY2VzcyBhbmQgaXMgdGhlcmVmb3JlIG5vdAorICAgICAgICAgICAgICAgICAgICAjIHVzYWJsZSBhcyB3ZWxsKQorCisgICAgICAgICAgICAgICAgICAgIGRhdGEgPSAoZmluZF9leGVjdXRhYmxlKCdjbGFuZycpIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3JlYWRfb3V0cHV0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3Vzci9iaW4veGNydW4gLWZpbmQgY2xhbmcgMj4vZGV2L251bGwiKS5zdHJpcCgpKQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgZGF0YToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIERpc3R1dGlsc1BsYXRmb3JtRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBsb2NhdGUgd29ya2luZyBjb21waWxlciIpCisKKyAgICAgICAgICAgICAgICAgICAgX2NvbmZpZ192YXJzWydDQyddID0gY2MgPSBkYXRhCisgICAgICAgICAgICAgICAgICAgIF9jb25maWdfdmFyc1snQ1hYJ10gPSBjYyArICcrKycKKworICAgICAgICAgICAgICAgIGVsaWYgb3MucGF0aC5iYXNlbmFtZShjYykuc3RhcnRzd2l0aCgnZ2NjJyk6CisgICAgICAgICAgICAgICAgICAgICMgQ29tcGlsZXIgaXMgR0NDLCBjaGVjayBpZiBpdCBpcyBMTFZNLUdDQworICAgICAgICAgICAgICAgICAgICBkYXRhID0gX3JlYWRfb3V0cHV0KCInJXMnIC0tdmVyc2lvbiAyPi9kZXYvbnVsbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoY2MucmVwbGFjZSgiJyIsICInXCInXCInIiksKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgJ2xsdm0tZ2NjJyBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBGb3VuZCBMTFZNLUdDQywgZmFsbCBiYWNrIHRvIGNsYW5nCisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gKGZpbmRfZXhlY3V0YWJsZSgnY2xhbmcnKSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcmVhZF9vdXRwdXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3Vzci9iaW4veGNydW4gLWZpbmQgY2xhbmcgMj4vZGV2L251bGwiKS5zdHJpcCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgZmluZF9leGVjdXRhYmxlKGRhdGEpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jb25maWdfdmFyc1snQ0MnXSA9IGNjID0gZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9jb25maWdfdmFyc1snQ1hYJ10gPSBjYyArICcrKycKKworICAgICAgICAgICAgICAgIGlmIChjYyAhPSBvbGRjYworICAgICAgICAgICAgICAgICAgICAgICAgYW5kICdMRFNIQVJFRCcgaW4gX2NvbmZpZ192YXJzCisgICAgICAgICAgICAgICAgICAgICAgICBhbmQgJ0xEU0hBUkVEJyBub3QgaW4gb3MuZW52aXJvbik6CisgICAgICAgICAgICAgICAgICAgICMgbW9kaWZ5IExEU0hBUkVEIGlmIHdlIG1vZGlmaWVkIENDCisgICAgICAgICAgICAgICAgICAgIGxkc2hhcmVkID0gX2NvbmZpZ192YXJzWydMRFNIQVJFRCddCisgICAgICAgICAgICAgICAgICAgIGlmIGxkc2hhcmVkLnN0YXJ0c3dpdGgob2xkY2MpOgorICAgICAgICAgICAgICAgICAgICAgICAgX2NvbmZpZ192YXJzWydMRFNIQVJFRCddID0gY2MgKyBsZHNoYXJlZFtsZW4ob2xkY2MpOl0KKwogICAgICAgICAgICAgaWYgbWFqb3JfdmVyc2lvbiA8IDg6CiAgICAgICAgICAgICAgICAgIyBPbiBNYWMgT1MgWCBiZWZvcmUgMTAuNCwgY2hlY2sgaWYgLWFyY2ggYW5kIC1pc3lzcm9vdAogICAgICAgICAgICAgICAgICMgYXJlIGluIENGTEFHUyBvciBMREZMQUdTIGFuZCByZW1vdmUgdGhlbSBpZiB0aGV5IGFyZS4KQEAgLTU2MiwxOSArNjM0LDQ1IEBACiAgICAgICAgICAgICAgICAgICAgIF9jb25maWdfdmFyc1trZXldID0gZmxhZ3MKIAogICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIERpZmZlcmVudCBYY29kZSByZWxlYXNlcyBzdXBwb3J0IGRpZmZlcmVudCBzZXRzIGZvciAnLWFyY2gnCisgICAgICAgICAgICAgICAgIyBmbGFncy4gSW4gcGFydGljdWxhciwgWGNvZGUgNC54IG5vIGxvbmdlciBzdXBwb3J0cyB0aGUKKyAgICAgICAgICAgICAgICAjIFBQQyBhcmNoaXRlY3R1cmVzLgorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIFRoaXMgY29kZSBhdXRvbWF0aWNhbGx5IHJlbW92ZXMgJy1hcmNoIHBwYycgYW5kICctYXJjaCBwcGM2NCcKKyAgICAgICAgICAgICAgICAjIHdoZW4gdGhlc2UgYXJlIG5vdCBzdXBwb3J0ZWQuIFRoYXQgbWFrZXMgaXQgcG9zc2libGUgdG8KKyAgICAgICAgICAgICAgICAjIGJ1aWxkIGV4dGVuc2lvbnMgb24gT1NYIDEwLjcgYW5kIGxhdGVyIHdpdGggdGhlIHByZWJ1aWx0CisgICAgICAgICAgICAgICAgIyAzMi1iaXQgaW5zdGFsbGVyIG9uIHRoZSBweXRob24ub3JnIHdlYnNpdGUuCisgICAgICAgICAgICAgICAgZmxhZ3MgPSBfY29uZmlnX3ZhcnNbJ0NGTEFHUyddCisgICAgICAgICAgICAgICAgaWYgcmUuc2VhcmNoKCctYXJjaFxzK3BwYycsIGZsYWdzKSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgIyBOT1RFOiBDYW5ub3QgdXNlIHN1YnByb2Nlc3MgaGVyZSBiZWNhdXNlIG9mIGJvb3RzdHJhcAorICAgICAgICAgICAgICAgICAgICAjIGlzc3VlcyB3aGVuIGJ1aWxkaW5nIFB5dGhvbiBpdHNlbGYKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gb3Muc3lzdGVtKCInJXMnIC1hcmNoIHBwYyAteCBjIC9kZXYvbnVsbCAyPi9kZXYvbnVsbCIlKAorICAgICAgICAgICAgICAgICAgICAgICAgX2NvbmZpZ192YXJzWydDQyddLnJlcGxhY2UoIiciLCAiJ1wiJ1wiJyIpLCkpCisKKyAgICAgICAgICAgICAgICAgICAgaWYgc3RhdHVzICE9IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAjIENvbXBpbGVyIGRvZXNuJ3Qgc3VwcG9ydCBQUEMsIHJlbW92ZSB0aGUgcmVsYXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgIyAnLWFyY2gnIGZsYWdzLgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGtleSBpbiAoJ0xERkxBR1MnLCAnQkFTRUNGTEFHUycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhIG51bWJlciBvZiBkZXJpdmVkIHZhcmlhYmxlcy4gVGhlc2UgbmVlZCB0byBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcGF0Y2hlZCB1cCBhcyB3ZWxsLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdDRkxBR1MnLCAnUFlfQ0ZMQUdTJywgJ0JMRFNIQVJFRCcsICdMRFNIQVJFRCcpOgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3MgPSBfY29uZmlnX3ZhcnNba2V5XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzID0gcmUuc3ViKCctYXJjaFxzK3BwY1x3KlxzJywgJyAnLCBmbGFncykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfY29uZmlnX3ZhcnNba2V5XSA9IGZsYWdzCisKIAogICAgICAgICAgICAgICAgICMgQWxsb3cgdGhlIHVzZXIgdG8gb3ZlcnJpZGUgdGhlIGFyY2hpdGVjdHVyZSBmbGFncyB1c2luZwogICAgICAgICAgICAgICAgICMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuCiAgICAgICAgICAgICAgICAgIyBOT1RFOiBUaGlzIG5hbWUgd2FzIGludHJvZHVjZWQgYnkgQXBwbGUgaW4gT1NYIDEwLjUgYW5kCiAgICAgICAgICAgICAgICAgIyBpcyB1c2VkIGJ5IHNldmVyYWwgc2NyaXB0aW5nIGxhbmd1YWdlcyBkaXN0cmlidXRlZCB3aXRoCiAgICAgICAgICAgICAgICAgIyB0aGF0IE9TIHJlbGVhc2UuCi0KICAgICAgICAgICAgICAgICBpZiAnQVJDSEZMQUdTJyBpbiBvcy5lbnZpcm9uOgogICAgICAgICAgICAgICAgICAgICBhcmNoID0gb3MuZW52aXJvblsnQVJDSEZMQUdTJ10KICAgICAgICAgICAgICAgICAgICAgZm9yIGtleSBpbiAoJ0xERkxBR1MnLCAnQkFTRUNGTEFHUycsCiAgICAgICAgICAgICAgICAgICAgICAgICAjIGEgbnVtYmVyIG9mIGRlcml2ZWQgdmFyaWFibGVzLiBUaGVzZSBuZWVkIHRvIGJlCiAgICAgICAgICAgICAgICAgICAgICAgICAjIHBhdGNoZWQgdXAgYXMgd2VsbC4KLSAgICAgICAgICAgICAgICAgICAgICAgICdDRkxBR1MnLCAnUFlfQ0ZMQUdTJywgJ0JMRFNIQVJFRCcpOgorICAgICAgICAgICAgICAgICAgICAgICAgJ0NGTEFHUycsICdQWV9DRkxBR1MnLCAnQkxEU0hBUkVEJywgJ0xEU0hBUkVEJyk6CiAKICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzID0gX2NvbmZpZ192YXJzW2tleV0KICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzID0gcmUuc3ViKCctYXJjaFxzK1x3K1xzJywgJyAnLCBmbGFncykKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF9hcmNoaXZlX3V0aWwucHkgYi9MaWIvZGlzdHV0aWxzL3Rlc3RzL3Rlc3RfYXJjaGl2ZV91dGlsLnB5CmluZGV4IDhlZGZhYjQuLjFhZmRkNDYgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF9hcmNoaXZlX3V0aWwucHkKKysrIGIvTGliL2Rpc3R1dGlscy90ZXN0cy90ZXN0X2FyY2hpdmVfdXRpbC5weQpAQCAtMSw2ICsxLDggQEAKKyMgLSotIGNvZGluZzogdXRmLTggLSotCiAiIiJUZXN0cyBmb3IgZGlzdHV0aWxzLmFyY2hpdmVfdXRpbC4iIiIKIGltcG9ydCB1bml0dGVzdAogaW1wb3J0IG9zCitpbXBvcnQgc3lzCiBpbXBvcnQgdGFyZmlsZQogZnJvbSBvcy5wYXRoIGltcG9ydCBzcGxpdGRyaXZlCiBpbXBvcnQgd2FybmluZ3MKQEAgLTI1LDYgKzI3LDE4IEBACiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgWkxJQl9TVVBQT1JUID0gRmFsc2UKIAorZGVmIGNhbl9mc19lbmNvZGUoZmlsZW5hbWUpOgorICAgICIiIgorICAgIFJldHVybiBUcnVlIGlmIHRoZSBmaWxlbmFtZSBjYW4gYmUgc2F2ZWQgaW4gdGhlIGZpbGUgc3lzdGVtLgorICAgICIiIgorICAgIGlmIG9zLnBhdGguc3VwcG9ydHNfdW5pY29kZV9maWxlbmFtZXM6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgdHJ5OgorICAgICAgICBmaWxlbmFtZS5lbmNvZGUoc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpKQorICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIHJldHVybiBUcnVlCisKIAogY2xhc3MgQXJjaGl2ZVV0aWxUZXN0Q2FzZShzdXBwb3J0LlRlbXBkaXJNYW5hZ2VyLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0LkxvZ2dpbmdTaWxlbmNlciwKQEAgLTMyLDYgKzQ2LDI4IEBACiAKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhaTElCX1NVUFBPUlQsICdOZWVkIHpsaWIgc3VwcG9ydCB0byBydW4nKQogICAgIGRlZiB0ZXN0X21ha2VfdGFyYmFsbChzZWxmKToKKyAgICAgICAgc2VsZi5fbWFrZV90YXJiYWxsKCdhcmNoaXZlJykKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKFpMSUJfU1VQUE9SVCwgJ05lZWQgemxpYiBzdXBwb3J0IHRvIHJ1bicpCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoY2FuX2ZzX2VuY29kZSgnw6VyY2hpdicpLAorICAgICAgICAnRmlsZSBzeXN0ZW0gY2Fubm90IGhhbmRsZSB0aGlzIGZpbGVuYW1lJykKKyAgICBkZWYgdGVzdF9tYWtlX3RhcmJhbGxfbGF0aW4xKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTWlycm9yIHRlc3RfbWFrZV90YXJiYWxsLCBleGNlcHQgZmlsZW5hbWUgY29udGFpbnMgbGF0aW4gY2hhcmFjdGVycy4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX21ha2VfdGFyYmFsbCgnw6VyY2hpdicpICMgbm90ZSB0aGlzIGlzbid0IGEgcmVhbCB3b3JkCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhaTElCX1NVUFBPUlQsICdOZWVkIHpsaWIgc3VwcG9ydCB0byBydW4nKQorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGNhbl9mc19lbmNvZGUoJ+OBruOCouODvOOCq+OCpOODlicpLAorICAgICAgICAnRmlsZSBzeXN0ZW0gY2Fubm90IGhhbmRsZSB0aGlzIGZpbGVuYW1lJykKKyAgICBkZWYgdGVzdF9tYWtlX3RhcmJhbGxfZXh0ZW5kZWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBNaXJyb3IgdGVzdF9tYWtlX3RhcmJhbGwsIGV4Y2VwdCBmaWxlbmFtZSBjb250YWlucyBleHRlbmRlZAorICAgICAgICBjaGFyYWN0ZXJzIG91dHNpZGUgdGhlIGxhdGluIGNoYXJzZXQuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9tYWtlX3RhcmJhbGwoJ+OBruOCouODvOOCq+OCpOODlicpICMgamFwYW5lc2UgZm9yIGFyY2hpdmUKKworICAgIGRlZiBfbWFrZV90YXJiYWxsKHNlbGYsIHRhcmdldF9uYW1lKToKICAgICAgICAgIyBjcmVhdGluZyBzb21ldGhpbmcgdG8gdGFyCiAgICAgICAgIHRtcGRpciA9IHNlbGYubWtkdGVtcCgpCiAgICAgICAgIHNlbGYud3JpdGVfZmlsZShbdG1wZGlyLCAnZmlsZTEnXSwgJ3h4eCcpCkBAIC00Myw3ICs3OSw3IEBACiAgICAgICAgIHVuaXR0ZXN0LnNraXBVbmxlc3Moc3BsaXRkcml2ZSh0bXBkaXIpWzBdID09IHNwbGl0ZHJpdmUodG1wZGlyMilbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNvdXJjZSBhbmQgdGFyZ2V0IHNob3VsZCBiZSBvbiBzYW1lIGRyaXZlIikKIAotICAgICAgICBiYXNlX25hbWUgPSBvcy5wYXRoLmpvaW4odG1wZGlyMiwgJ2FyY2hpdmUnKQorICAgICAgICBiYXNlX25hbWUgPSBvcy5wYXRoLmpvaW4odG1wZGlyMiwgdGFyZ2V0X25hbWUpCiAKICAgICAgICAgIyB3b3JraW5nIHdpdGggcmVsYXRpdmUgcGF0aHMgdG8gYXZvaWQgdGFyIHdhcm5pbmdzCiAgICAgICAgIG9sZF9kaXIgPSBvcy5nZXRjd2QoKQpAQCAtNTgsNyArOTQsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHModGFyYmFsbCkpCiAKICAgICAgICAgIyB0cnlpbmcgYW4gdW5jb21wcmVzc2VkIG9uZQotICAgICAgICBiYXNlX25hbWUgPSBvcy5wYXRoLmpvaW4odG1wZGlyMiwgJ2FyY2hpdmUnKQorICAgICAgICBiYXNlX25hbWUgPSBvcy5wYXRoLmpvaW4odG1wZGlyMiwgdGFyZ2V0X25hbWUpCiAgICAgICAgIG9sZF9kaXIgPSBvcy5nZXRjd2QoKQogICAgICAgICBvcy5jaGRpcih0bXBkaXIpCiAgICAgICAgIHRyeToKZGlmZiAtLWdpdCBhL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF9iZGlzdF9ycG0ucHkgYi9MaWIvZGlzdHV0aWxzL3Rlc3RzL3Rlc3RfYmRpc3RfcnBtLnB5CmluZGV4IGFiN2ExYmYuLmIwOTBiNzkgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvdGVzdHMvdGVzdF9iZGlzdF9ycG0ucHkKKysrIGIvTGliL2Rpc3R1dGlscy90ZXN0cy90ZXN0X2JkaXN0X3JwbS5weQpAQCAtMjgsNiArMjgsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzeXMuZXhlY3V0YWJsZS5lbmNvZGUoIlVURi04IikKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KCJzeXMuZXhlY3V0YWJsZSBpcyBub3QgZW5jb2RhYmxlIHRvIFVURi04IikKKwogICAgICAgICBzdXBlcihCdWlsZFJwbVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCiAgICAgICAgIHNlbGYub2xkX2xvY2F0aW9uID0gb3MuZ2V0Y3dkKCkKICAgICAgICAgc2VsZi5vbGRfc3lzX2FyZ3YgPSBzeXMuYXJndiwgc3lzLmFyZ3ZbOl0KQEAgLTQyLDcgKzQ3LDcgQEAKIAogICAgICAgICAjIFhYWCBJIGFtIHVuYWJsZSB5ZXQgdG8gbWFrZSB0aGlzIHRlc3Qgd29yayB3aXRob3V0CiAgICAgICAgICMgc3B1cmlvdXMgc2R0b3V0L3N0ZGVyciBvdXRwdXQgdW5kZXIgTWFjIE9TIFgKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICdsaW51eDInOgorICAgICAgICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2xpbnV4Jyk6CiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICAjIHRoaXMgdGVzdCB3aWxsIHJ1biBvbmx5IGlmIHRoZSBycG0gY29tbWFuZHMgYXJlIGZvdW5kCkBAIC04Niw3ICs5MSw3IEBACiAKICAgICAgICAgIyBYWFggSSBhbSB1bmFibGUgeWV0IHRvIG1ha2UgdGhpcyB0ZXN0IHdvcmsgd2l0aG91dAogICAgICAgICAjIHNwdXJpb3VzIHNkdG91dC9zdGRlcnIgb3V0cHV0IHVuZGVyIE1hYyBPUyBYCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSAhPSAnbGludXgyJzoKKyAgICAgICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdsaW51eCcpOgogICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgIyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTUzMzE2NApkaWZmIC0tZ2l0IGEvTGliL2Rpc3R1dGlscy91bml4Y2NvbXBpbGVyLnB5IGIvTGliL2Rpc3R1dGlscy91bml4Y2NvbXBpbGVyLnB5CmluZGV4IGM3MGEzY2MuLjVkNDVmYWEgMTAwNjQ0Ci0tLSBhL0xpYi9kaXN0dXRpbHMvdW5peGNjb21waWxlci5weQorKysgYi9MaWIvZGlzdHV0aWxzL3VuaXhjY29tcGlsZXIucHkKQEAgLTgzLDkgKzgzLDggQEAKICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAKLSAgICAjIENoZWNrIGlmIHRoZSBTREsgdGhhdCBpcyB1c2VkIGR1cmluZyBjb21waWxhdGlvbiBhY3R1YWxseSBleGlzdHMsCi0gICAgIyB0aGUgdW5pdmVyc2FsIGJ1aWxkIHJlcXVpcmVzIHRoZSB1c2FnZSBvZiBhIHVuaXZlcnNhbCBTREsgYW5kIG5vdCBhbGwKLSAgICAjIHVzZXJzIGhhdmUgdGhhdCBpbnN0YWxsZWQgYnkgZGVmYXVsdC4KKyAgICAjIENoZWNrIGlmIHRoZSBTREsgdGhhdCBpcyB1c2VkIGR1cmluZyBjb21waWxhdGlvbiBhY3R1YWxseSBleGlzdHMuCisgICAgIyBJZiBub3QsIHJldmVydCB0byB1c2luZyB0aGUgaW5zdGFsbGVkIGhlYWRlcnMgYW5kIGhvcGUgZm9yIHRoZSBiZXN0LgogICAgIHN5c3Jvb3QgPSBOb25lCiAgICAgaWYgJy1pc3lzcm9vdCcgaW4gY2NfYXJnczoKICAgICAgICAgaWR4ID0gY2NfYXJncy5pbmRleCgnLWlzeXNyb290JykKQEAgLTk3LDcgKzk2LDIxIEBACiAgICAgaWYgc3lzcm9vdCBhbmQgbm90IG9zLnBhdGguaXNkaXIoc3lzcm9vdCk6CiAgICAgICAgIGxvZy53YXJuKCJDb21waWxpbmcgd2l0aCBhbiBTREsgdGhhdCBkb2Vzbid0IHNlZW0gdG8gZXhpc3Q6ICVzIiwKICAgICAgICAgICAgICAgICBzeXNyb290KQotICAgICAgICBsb2cud2FybigiUGxlYXNlIGNoZWNrIHlvdXIgWGNvZGUgaW5zdGFsbGF0aW9uIikKKyAgICAgICAgbG9nLndhcm4oIkF0dGVtcHRpbmcgdG8gY29tcGlsZSB3aXRob3V0IHRoZSBTREsiKQorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGluZGV4ID0gY2NfYXJncy5pbmRleCgnLWlzeXNyb290JykKKyAgICAgICAgICAgICAgICAjIFN0cmlwIHRoaXMgYXJndW1lbnQgYW5kIHRoZSBuZXh0IG9uZToKKyAgICAgICAgICAgICAgICBkZWwgY2NfYXJnc1tpbmRleDppbmRleCsyXQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpbmRleCA9IGNvbXBpbGVyX3NvLmluZGV4KCctaXN5c3Jvb3QnKQorICAgICAgICAgICAgICAgICMgU3RyaXAgdGhpcyBhcmd1bWVudCBhbmQgdGhlIG5leHQgb25lOgorICAgICAgICAgICAgICAgIGRlbCBjb21waWxlcl9zb1tpbmRleDppbmRleCsyXQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgYnJlYWsKIAogICAgIHJldHVybiBjb21waWxlcl9zbwogCmRpZmYgLS1naXQgYS9MaWIvZGlzdHV0aWxzL3V0aWwucHkgYi9MaWIvZGlzdHV0aWxzL3V0aWwucHkKaW5kZXggYmNlODQwMi4uOTgzM2JmOSAxMDA2NDQKLS0tIGEvTGliL2Rpc3R1dGlscy91dGlsLnB5CisrKyBiL0xpYi9kaXN0dXRpbHMvdXRpbC5weQpAQCAtNTMsNiArNTMsMTAgQEAKICAgICAgICAgICAgIHJldHVybiAnd2luLWlhNjQnCiAgICAgICAgIHJldHVybiBzeXMucGxhdGZvcm0KIAorICAgICMgU2V0IGZvciBjcm9zcyBidWlsZHMgZXhwbGljaXRseQorICAgIGlmICJfUFlUSE9OX0hPU1RfUExBVEZPUk0iIGluIG9zLmVudmlyb246CisgICAgICAgIHJldHVybiBvcy5lbnZpcm9uWyJfUFlUSE9OX0hPU1RfUExBVEZPUk0iXQorCiAgICAgaWYgb3MubmFtZSAhPSAicG9zaXgiIG9yIG5vdCBoYXNhdHRyKG9zLCAndW5hbWUnKToKICAgICAgICAgIyBYWFggd2hhdCBhYm91dCB0aGUgYXJjaGl0ZWN0dXJlPyBOVCBpcyBJbnRlbCBvciBBbHBoYSwKICAgICAgICAgIyBNYWMgT1MgaXMgTTY4ayBvciBQUEMsIGV0Yy4KZGlmZiAtLWdpdCBhL0xpYi9kb2N0ZXN0LnB5IGIvTGliL2RvY3Rlc3QucHkKaW5kZXggY2MzYjQyNS4uNjIwNDUxZiAxMDA2NDQKLS0tIGEvTGliL2RvY3Rlc3QucHkKKysrIGIvTGliL2RvY3Rlc3QucHkKQEAgLTQ1OCw3ICs0NTgsNiBAQAogICAgICAgICByZXR1cm4gaGFzaCgoc2VsZi5zb3VyY2UsIHNlbGYud2FudCwgc2VsZi5saW5lbm8sIHNlbGYuaW5kZW50LAogICAgICAgICAgICAgICAgICAgICAgc2VsZi5leGNfbXNnKSkKIAotCiBjbGFzcyBEb2NUZXN0OgogICAgICIiIgogICAgIEEgY29sbGVjdGlvbiBvZiBkb2N0ZXN0IGV4YW1wbGVzIHRoYXQgc2hvdWxkIGJlIHJ1biBpbiBhIHNpbmdsZQpAQCAtMTM2Nyw3ICsxMzY2LDcgQEAKICAgICAgICAgbSA9IHNlbGYuX19MSU5FQ0FDSEVfRklMRU5BTUVfUkUubWF0Y2goZmlsZW5hbWUpCiAgICAgICAgIGlmIG0gYW5kIG0uZ3JvdXAoJ25hbWUnKSA9PSBzZWxmLnRlc3QubmFtZToKICAgICAgICAgICAgIGV4YW1wbGUgPSBzZWxmLnRlc3QuZXhhbXBsZXNbaW50KG0uZ3JvdXAoJ2V4YW1wbGVudW0nKSldCi0gICAgICAgICAgICByZXR1cm4gZXhhbXBsZS5zb3VyY2Uuc3BsaXRsaW5lcyhUcnVlKQorICAgICAgICAgICAgcmV0dXJuIGV4YW1wbGUuc291cmNlLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBzZWxmLnNhdmVfbGluZWNhY2hlX2dldGxpbmVzKGZpbGVuYW1lLCBtb2R1bGVfZ2xvYmFscykKIApAQCAtMTQxMyw2ICsxNDEyLDcgQEAKICAgICAgICAgIyBOb3RlIHRoYXQgdGhlIGludGVyYWN0aXZlIG91dHB1dCB3aWxsIGdvIHRvICpvdXIqCiAgICAgICAgICMgc2F2ZV9zdGRvdXQsIGV2ZW4gaWYgdGhhdCdzIG5vdCB0aGUgcmVhbCBzeXMuc3Rkb3V0OyB0aGlzCiAgICAgICAgICMgYWxsb3dzIHVzIHRvIHdyaXRlIHRlc3QgY2FzZXMgZm9yIHRoZSBzZXRfdHJhY2UgYmVoYXZpb3IuCisgICAgICAgIHNhdmVfdHJhY2UgPSBzeXMuZ2V0dHJhY2UoKQogICAgICAgICBzYXZlX3NldF90cmFjZSA9IHBkYi5zZXRfdHJhY2UKICAgICAgICAgc2VsZi5kZWJ1Z2dlciA9IF9PdXRwdXRSZWRpcmVjdGluZ1BkYihzYXZlX3N0ZG91dCkKICAgICAgICAgc2VsZi5kZWJ1Z2dlci5yZXNldCgpCkBAIC0xNDMyLDYgKzE0MzIsNyBAQAogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgc3lzLnN0ZG91dCA9IHNhdmVfc3Rkb3V0CiAgICAgICAgICAgICBwZGIuc2V0X3RyYWNlID0gc2F2ZV9zZXRfdHJhY2UKKyAgICAgICAgICAgIHN5cy5zZXR0cmFjZShzYXZlX3RyYWNlKQogICAgICAgICAgICAgbGluZWNhY2hlLmdldGxpbmVzID0gc2VsZi5zYXZlX2xpbmVjYWNoZV9nZXRsaW5lcwogICAgICAgICAgICAgc3lzLmRpc3BsYXlob29rID0gc2F2ZV9kaXNwbGF5aG9vawogICAgICAgICAgICAgaWYgY2xlYXJfZ2xvYnM6CkBAIC0xNjI4LDggKzE2MjksOCBAQAogICAgICAgICAjIENoZWNrIGlmIHdlIHNob3VsZCB1c2UgZGlmZi4KICAgICAgICAgaWYgc2VsZi5fZG9fYV9mYW5jeV9kaWZmKHdhbnQsIGdvdCwgb3B0aW9uZmxhZ3MpOgogICAgICAgICAgICAgIyBTcGxpdCB3YW50ICYgZ290IGludG8gbGluZXMuCi0gICAgICAgICAgICB3YW50X2xpbmVzID0gd2FudC5zcGxpdGxpbmVzKFRydWUpICAjIFRydWUgPT0ga2VlcCBsaW5lIGVuZHMKLSAgICAgICAgICAgIGdvdF9saW5lcyA9IGdvdC5zcGxpdGxpbmVzKFRydWUpCisgICAgICAgICAgICB3YW50X2xpbmVzID0gd2FudC5zcGxpdGxpbmVzKGtlZXBlbmRzPVRydWUpCisgICAgICAgICAgICBnb3RfbGluZXMgPSBnb3Quc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKQogICAgICAgICAgICAgIyBVc2UgZGlmZmxpYiB0byBmaW5kIHRoZWlyIGRpZmZlcmVuY2VzLgogICAgICAgICAgICAgaWYgb3B0aW9uZmxhZ3MgJiBSRVBPUlRfVURJRkY6CiAgICAgICAgICAgICAgICAgZGlmZiA9IGRpZmZsaWIudW5pZmllZF9kaWZmKHdhbnRfbGluZXMsIGdvdF9saW5lcywgbj0yKQpkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL19lbmNvZGVkX3dvcmRzLnB5IGIvTGliL2VtYWlsL19lbmNvZGVkX3dvcmRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU5ZjZlMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvZW1haWwvX2VuY29kZWRfd29yZHMucHkKQEAgLTAsMCArMSwyMjEgQEAKKyIiIiBSb3V0aW5lcyBmb3IgbWFuaXB1bGF0aW5nIFJGQzIwNDcgZW5jb2RlZCB3b3Jkcy4KKworVGhpcyBpcyBjdXJyZW50bHkgYSBwYWNrYWdlLXByaXZhdGUgQVBJLCBidXQgd2lsbCBiZSBjb25zaWRlcmVkIGZvciBwcm9tb3Rpb24KK3RvIGEgcHVibGljIEFQSSBpZiB0aGVyZSBpcyBkZW1hbmQuCisKKyIiIgorCisjIEFuIGVjb2RlZCB3b3JkIGxvb2tzIGxpa2UgdGhpczoKKyMKKyMgICAgICAgID0/Y2hhcnNldFsqbGFuZ10/Y3RlP2VuY29kZWRfc3RyaW5nPz0KKyMKKyMgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgY2hhcnNldCBzZWUgdGhlIGNoYXJzZXQgbW9kdWxlLiAgSGVyZSBpdCBpcyBvbmUKKyMgb2YgdGhlIHByZWZlcnJlZCBNSU1FIGNoYXJzZXQgbmFtZXMgKGhvcGVmdWxseTsgeW91IG5ldmVyIGtub3cgd2hlbiBwYXJzaW5nKS4KKyMgY3RlIChDb250ZW50IFRyYW5zZmVyIEVuY29kaW5nKSBpcyBlaXRoZXIgJ3EnIG9yICdiJyAoaWdub3JpbmcgY2FzZSkuICBJbgorIyB0aGVvcnkgb3RoZXIgbGV0dGVycyBjb3VsZCBiZSB1c2VkIGZvciBvdGhlciBlbmNvZGluZ3MsIGJ1dCBpbiBwcmFjdGljZSB0aGlzCisjIChhbG1vc3Q/KSBuZXZlciBoYXBwZW5zLiAgVGhlcmUgY291bGQgYmUgYSBwdWJsaWMgQVBJIGZvciBhZGRpbmcgZW50cmllcworIyB0byB0byB0aGUgQ1RFIHRhYmxlcywgYnV0IFlBR05JIGZvciBub3cuICAncScgaXMgUXVvdGVkIFByaW50YWJsZSwgJ2InIGlzCisjIEJhc2U2NC4gIFRoZSBtZWFuaW5nIG9mIGVuY29kZWRfc3RyaW5nIHNob3VsZCBiZSBvYnZpb3VzLiAgJ2xhbmcnIGlzIG9wdGlvbmFsCisjIGFzIGluZGljYXRlZCBieSB0aGUgYnJhY2tldHMgKHRoZXkgYXJlIG5vdCBwYXJ0IG9mIHRoZSBzeW50YXgpIGJ1dCBpcyBhbG1vc3QKKyMgbmV2ZXIgZW5jb3VudGVyZWQgaW4gcHJhY3RpY2UuCisjCisjIFRoZSBnZW5lcmFsIGludGVyZmFjZSBmb3IgYSBDVEUgZGVjb2RlciBpcyB0aGF0IGl0IHRha2VzIHRoZSBlbmNvZGVkX3N0cmluZworIyBhcyBpdHMgYXJndW1lbnQsIGFuZCByZXR1cm5zIGEgdHVwbGUgKGN0ZV9kZWNvZGVkX3N0cmluZywgZGVmZWN0cykuICBUaGUKKyMgY3RlX2RlY29kZWRfc3RyaW5nIGlzIHRoZSBvcmlnaW5hbCBiaW5hcnkgdGhhdCB3YXMgZW5jb2RlZCB1c2luZyB0aGUKKyMgc3BlY2lmaWVkIGN0ZS4gICdkZWZlY3RzJyBpcyBhIGxpc3Qgb2YgTWVzc2FnZURlZmVjdCBpbnN0YW5jZXMgaW5kaWNhdGluZyBhbnkKKyMgcHJvYmxlbXMgZW5jb3VudGVyZWQgZHVyaW5nIGNvbnZlcnNpb24uICAnY2hhcnNldCcgYW5kICdsYW5nJyBhcmUgdGhlCisjIGNvcnJlc3BvbmRpbmcgc3RyaW5ncyBleHRyYWN0ZWQgZnJvbSB0aGUgRVcsIGNhc2UgcHJlc2VydmVkLgorIworIyBUaGUgZ2VuZXJhbCBpbnRlcmZhY2UgZm9yIGEgQ1RFIGVuY29kZXIgaXMgdGhhdCBpdCB0YWtlcyBhIGJpbmFyeSBzZXF1ZW5jZQorIyBhcyBpbnB1dCBhbmQgcmV0dXJucyB0aGUgY3RlX2VuY29kZWRfc3RyaW5nLCB3aGljaCBpcyBhbiBhc2NpaS1vbmx5IHN0cmluZy4KKyMKKyMgRWFjaCBkZWNvZGVyIG11c3QgYWxzbyBzdXBwbHkgYSBsZW5ndGggZnVuY3Rpb24gdGhhdCB0YWtlcyB0aGUgYmluYXJ5CisjIHNlcXVlbmNlIGFzIGl0cyBhcmd1bWVudCBhbmQgcmV0dXJucyB0aGUgbGVuZ3RoIG9mIHRoZSByZXN1bHRpbmcgZW5jb2RlZAorIyBzdHJpbmcuCisjCisjIFRoZSBtYWluIEFQSSBmdW5jdGlvbnMgZm9yIHRoZSBtb2R1bGUgYXJlIGRlY29kZSwgd2hpY2ggY2FsbHMgdGhlIGRlY29kZXIKKyMgcmVmZXJlbmNlZCBieSB0aGUgY3RlIHNwZWNpZmllciwgYW5kIGVuY29kZSwgd2hpY2ggYWRkcyB0aGUgYXBwcm9wcmlhdGUKKyMgUkZDIDIwNDcgImNocm9tZSIgdG8gdGhlIGVuY29kZWQgc3RyaW5nLCBhbmQgY2FuIG9wdGlvbmFsbHkgYXV0b21hdGljYWxseQorIyBzZWxlY3QgdGhlIHNob3J0ZXN0IHBvc3NpYmxlIGVuY29kaW5nLiAgU2VlIHRoZWlyIGRvY3N0cmluZ3MgYmVsb3cgZm9yCisjIGRldGFpbHMuCisKK2ltcG9ydCByZQoraW1wb3J0IGJhc2U2NAoraW1wb3J0IGJpbmFzY2lpCitpbXBvcnQgZnVuY3Rvb2xzCitmcm9tIHN0cmluZyBpbXBvcnQgYXNjaWlfbGV0dGVycywgZGlnaXRzCitmcm9tIGVtYWlsIGltcG9ydCBlcnJvcnMKKworX19hbGxfXyA9IFsnZGVjb2RlX3EnLAorICAgICAgICAgICAnZW5jb2RlX3EnLAorICAgICAgICAgICAnZGVjb2RlX2InLAorICAgICAgICAgICAnZW5jb2RlX2InLAorICAgICAgICAgICAnbGVuX3EnLAorICAgICAgICAgICAnbGVuX2InLAorICAgICAgICAgICAnZGVjb2RlJywKKyAgICAgICAgICAgJ2VuY29kZScsCisgICAgICAgICAgIF0KKworIworIyBRdW90ZWQgUHJpbnRhYmxlCisjCisKKyMgcmVnZXggYmFzZWQgZGVjb2Rlci4KK19xX2J5dGVfc3ViYmVyID0gZnVuY3Rvb2xzLnBhcnRpYWwocmUuY29tcGlsZShicic9KFthLWZBLUYwLTldezJ9KScpLnN1YiwKKyAgICAgICAgbGFtYmRhIG06IGJ5dGVzKFtpbnQobS5ncm91cCgxKSwgMTYpXSkpCisKK2RlZiBkZWNvZGVfcShlbmNvZGVkKToKKyAgICBlbmNvZGVkID0gZW5jb2RlZC5yZXBsYWNlKGInXycsIGInICcpCisgICAgcmV0dXJuIF9xX2J5dGVfc3ViYmVyKGVuY29kZWQpLCBbXQorCisKKyMgZGljdCBtYXBwaW5nIGJ5dGVzIHRvIHRoZWlyIGVuY29kZWQgZm9ybQorY2xhc3MgX1FCeXRlTWFwKGRpY3QpOgorCisgICAgc2FmZSA9IGInLSEqKy8nICsgYXNjaWlfbGV0dGVycy5lbmNvZGUoJ2FzY2lpJykgKyBkaWdpdHMuZW5jb2RlKCdhc2NpaScpCisKKyAgICBkZWYgX19taXNzaW5nX18oc2VsZiwga2V5KToKKyAgICAgICAgaWYga2V5IGluIHNlbGYuc2FmZToKKyAgICAgICAgICAgIHNlbGZba2V5XSA9IGNocihrZXkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmW2tleV0gPSAiPXs6MDJYfSIuZm9ybWF0KGtleSkKKyAgICAgICAgcmV0dXJuIHNlbGZba2V5XQorCitfcV9ieXRlX21hcCA9IF9RQnl0ZU1hcCgpCisKKyMgSW4gaGVhZGVycyBzcGFjZXMgYXJlIG1hcHBlZCB0byAnXycuCitfcV9ieXRlX21hcFtvcmQoJyAnKV0gPSAnXycKKworZGVmIGVuY29kZV9xKGJzdHJpbmcpOgorICAgIHJldHVybiAnJy5qb2luKF9xX2J5dGVfbWFwW3hdIGZvciB4IGluIGJzdHJpbmcpCisKK2RlZiBsZW5fcShic3RyaW5nKToKKyAgICByZXR1cm4gc3VtKGxlbihfcV9ieXRlX21hcFt4XSkgZm9yIHggaW4gYnN0cmluZykKKworCisjCisjIEJhc2U2NAorIworCitkZWYgZGVjb2RlX2IoZW5jb2RlZCk6CisgICAgZGVmZWN0cyA9IFtdCisgICAgcGFkX2VyciA9IGxlbihlbmNvZGVkKSAlIDQKKyAgICBpZiBwYWRfZXJyOgorICAgICAgICBkZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEJhc2U2NFBhZGRpbmdEZWZlY3QoKSkKKyAgICAgICAgcGFkZGVkX2VuY29kZWQgPSBlbmNvZGVkICsgYic9PT0nWzo0LXBhZF9lcnJdCisgICAgZWxzZToKKyAgICAgICAgcGFkZGVkX2VuY29kZWQgPSBlbmNvZGVkCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gYmFzZTY0LmI2NGRlY29kZShwYWRkZWRfZW5jb2RlZCwgdmFsaWRhdGU9VHJ1ZSksIGRlZmVjdHMKKyAgICBleGNlcHQgYmluYXNjaWkuRXJyb3I6CisgICAgICAgICMgU2luY2Ugd2UgaGFkIGNvcnJlY3QgcGFkZGluZywgdGhpcyBtdXN0IGFuIGludmFsaWQgY2hhciBlcnJvci4KKyAgICAgICAgZGVmZWN0cyA9IFtlcnJvcnMuSW52YWxpZEJhc2U2NENoYXJhY3RlcnNEZWZlY3QoKV0KKyAgICAgICAgIyBUaGUgbm9uLWFscGhhYmV0IGNoYXJhY3RlcnMgYXJlIGlnbm9yZWQgYXMgZmFyIGFzIHBhZGRpbmcKKyAgICAgICAgIyBnb2VzLCBidXQgd2UgZG9uJ3Qga25vdyBob3cgbWFueSB0aGVyZSBhcmUuICBTbyB3ZSdsbCBqdXN0CisgICAgICAgICMgdHJ5IHZhcmlvdXMgcGFkZGluZyBsZW5ndGhzIHVudGlsIHNvbWV0aGluZyB3b3Jrcy4KKyAgICAgICAgZm9yIGkgaW4gMCwgMSwgMiwgMzoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0LmI2NGRlY29kZShlbmNvZGVkK2InPScqaSwgdmFsaWRhdGU9RmFsc2UpLCBkZWZlY3RzCisgICAgICAgICAgICBleGNlcHQgYmluYXNjaWkuRXJyb3I6CisgICAgICAgICAgICAgICAgaWYgaT09MDoKKyAgICAgICAgICAgICAgICAgICAgZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRCYXNlNjRQYWRkaW5nRGVmZWN0KCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbi4KKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCJ1bmV4cGVjdGVkIGJpbmFzY2lpLkVycm9yIikKKworZGVmIGVuY29kZV9iKGJzdHJpbmcpOgorICAgIHJldHVybiBiYXNlNjQuYjY0ZW5jb2RlKGJzdHJpbmcpLmRlY29kZSgnYXNjaWknKQorCitkZWYgbGVuX2IoYnN0cmluZyk6CisgICAgZ3JvdXBzX29mXzMsIGxlZnRvdmVyID0gZGl2bW9kKGxlbihic3RyaW5nKSwgMykKKyAgICAjIDQgYnl0ZXMgb3V0IGZvciBlYWNoIDMgYnl0ZXMgKG9yIG5vbnplcm8gZnJhY3Rpb24gdGhlcmVvZikgaW4uCisgICAgcmV0dXJuIGdyb3Vwc19vZl8zICogNCArICg0IGlmIGxlZnRvdmVyIGVsc2UgMCkKKworCitfY3RlX2RlY29kZXJzID0geworICAgICdxJzogZGVjb2RlX3EsCisgICAgJ2InOiBkZWNvZGVfYiwKKyAgICB9CisKK2RlZiBkZWNvZGUoZXcpOgorICAgICIiIkRlY29kZSBlbmNvZGVkIHdvcmQgYW5kIHJldHVybiAoc3RyaW5nLCBjaGFyc2V0LCBsYW5nLCBkZWZlY3RzKSB0dXBsZS4KKworICAgIEFuIFJGQyAyMDQ3LzIyNDMgZW5jb2RlZCB3b3JkIGhhcyB0aGUgZm9ybToKKworICAgICAgICA9P2NoYXJzZXQqbGFuZz9jdGU/ZW5jb2RlZF9zdHJpbmc/PQorCisgICAgd2hlcmUgJypsYW5nJyBtYXkgYmUgb21pdHRlZCBidXQgdGhlIG90aGVyIHBhcnRzIG1heSBub3QgYmUuCisKKyAgICBUaGlzIGZ1bmN0aW9uIGV4cGVjdHMgZXhhY3RseSBzdWNoIGEgc3RyaW5nICh0aGF0IGlzLCBpdCBkb2VzIG5vdCBjaGVjayB0aGUKKyAgICBzeW50YXggYW5kIG1heSByYWlzZSBlcnJvcnMgaWYgdGhlIHN0cmluZyBpcyBub3Qgd2VsbCBmb3JtZWQpLCBhbmQgcmV0dXJucworICAgIHRoZSBlbmNvZGVkX3N0cmluZyBkZWNvZGVkIGZpcnN0IGZyb20gaXRzIENvbnRlbnQgVHJhbnNmZXIgRW5jb2RpbmcgYW5kCisgICAgdGhlbiBmcm9tIHRoZSByZXN1bHRpbmcgYnl0ZXMgaW50byB1bmljb2RlIHVzaW5nIHRoZSBzcGVjaWZpZWQgY2hhcnNldC4gIElmCisgICAgdGhlIGN0ZS1kZWNvZGVkIHN0cmluZyBkb2VzIG5vdCBzdWNjZXNzZnVsbHkgZGVjb2RlIHVzaW5nIHRoZSBzcGVjaWZpZWQKKyAgICBjaGFyYWN0ZXIgc2V0LCBhIGRlZmVjdCBpcyBhZGRlZCB0byB0aGUgZGVmZWN0cyBsaXN0IGFuZCB0aGUgdW5rbm93biBvY3RldHMKKyAgICBhcmUgcmVwbGFjZWQgYnkgdGhlIHVuaWNvZGUgJ3Vua25vd24nIGNoYXJhY3RlciBcdUZERkYuCisKKyAgICBUaGUgc3BlY2lmaWVkIGNoYXJzZXQgYW5kIGxhbmd1YWdlIGFyZSByZXR1cm5lZC4gIFRoZSBkZWZhdWx0IGZvciBsYW5ndWFnZSwKKyAgICB3aGljaCBpcyByYXJlbHkgaWYgZXZlciBlbmNvdW50ZXJlZCwgaXMgdGhlIGVtcHR5IHN0cmluZy4KKworICAgICIiIgorICAgIF8sIGNoYXJzZXQsIGN0ZSwgY3RlX3N0cmluZywgXyA9IGV3LnNwbGl0KCc/JykKKyAgICBjaGFyc2V0LCBfLCBsYW5nID0gY2hhcnNldC5wYXJ0aXRpb24oJyonKQorICAgIGN0ZSA9IGN0ZS5sb3dlcigpCisgICAgIyBSZWNvdmVyIHRoZSBvcmlnaW5hbCBieXRlcyBhbmQgZG8gQ1RFIGRlY29kaW5nLgorICAgIGJzdHJpbmcgPSBjdGVfc3RyaW5nLmVuY29kZSgnYXNjaWknLCAnc3Vycm9nYXRlZXNjYXBlJykKKyAgICBic3RyaW5nLCBkZWZlY3RzID0gX2N0ZV9kZWNvZGVyc1tjdGVdKGJzdHJpbmcpCisgICAgIyBUdXJuIHRoZSBDVEUgZGVjb2RlZCBieXRlcyBpbnRvIHVuaWNvZGUuCisgICAgdHJ5OgorICAgICAgICBzdHJpbmcgPSBic3RyaW5nLmRlY29kZShjaGFyc2V0KQorICAgIGV4Y2VwdCBVbmljb2RlRXJyb3I6CisgICAgICAgIGRlZmVjdHMuYXBwZW5kKGVycm9ycy5VbmRlY29kYWJsZUJ5dGVzRGVmZWN0KCJFbmNvZGVkIHdvcmQgIgorICAgICAgICAgICAgImNvbnRhaW5zIGJ5dGVzIG5vdCBkZWNvZGFibGUgdXNpbmcge30gY2hhcnNldCIuZm9ybWF0KGNoYXJzZXQpKSkKKyAgICAgICAgc3RyaW5nID0gYnN0cmluZy5kZWNvZGUoY2hhcnNldCwgJ3N1cnJvZ2F0ZWVzY2FwZScpCisgICAgZXhjZXB0IExvb2t1cEVycm9yOgorICAgICAgICBzdHJpbmcgPSBic3RyaW5nLmRlY29kZSgnYXNjaWknLCAnc3Vycm9nYXRlZXNjYXBlJykKKyAgICAgICAgaWYgY2hhcnNldC5sb3dlcigpICE9ICd1bmtub3duLThiaXQnOgorICAgICAgICAgICAgZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkNoYXJzZXRFcnJvcigiVW5rbm93biBjaGFyc2V0IHt9ICIKKyAgICAgICAgICAgICAgICAiaW4gZW5jb2RlZCB3b3JkOyBkZWNvZGVkIGFzIHVua25vd24gYnl0ZXMiLmZvcm1hdChjaGFyc2V0KSkpCisgICAgcmV0dXJuIHN0cmluZywgY2hhcnNldCwgbGFuZywgZGVmZWN0cworCisKK19jdGVfZW5jb2RlcnMgPSB7CisgICAgJ3EnOiBlbmNvZGVfcSwKKyAgICAnYic6IGVuY29kZV9iLAorICAgIH0KKworX2N0ZV9lbmNvZGVfbGVuZ3RoID0geworICAgICdxJzogbGVuX3EsCisgICAgJ2InOiBsZW5fYiwKKyAgICB9CisKK2RlZiBlbmNvZGUoc3RyaW5nLCBjaGFyc2V0PSd1dGYtOCcsIGVuY29kaW5nPU5vbmUsIGxhbmc9JycpOgorICAgICIiIkVuY29kZSBzdHJpbmcgdXNpbmcgdGhlIENURSBlbmNvZGluZyB0aGF0IHByb2R1Y2VzIHRoZSBzaG9ydGVyIHJlc3VsdC4KKworICAgIFByb2R1Y2VzIGFuIFJGQyAyMDQ3LzIyNDMgZW5jb2RlZCB3b3JkIG9mIHRoZSBmb3JtOgorCisgICAgICAgID0/Y2hhcnNldCpsYW5nP2N0ZT9lbmNvZGVkX3N0cmluZz89CisKKyAgICB3aGVyZSAnKmxhbmcnIGlzIG9taXR0ZWQgdW5sZXNzIHRoZSAnbGFuZycgcGFyYW1ldGVyIGlzIGdpdmVuIGEgdmFsdWUuCisgICAgT3B0aW9uYWwgYXJndW1lbnQgY2hhcnNldCAoZGVmYXVsdHMgdG8gdXRmLTgpIHNwZWNpZmllcyB0aGUgY2hhcnNldCB0byB1c2UKKyAgICB0byBlbmNvZGUgdGhlIHN0cmluZyB0byBiaW5hcnkgYmVmb3JlIENURSBlbmNvZGluZyBpdC4gIE9wdGlvbmFsIGFyZ3VtZW50CisgICAgJ2VuY29kaW5nJyBpcyB0aGUgY3RlIHNwZWNpZmllciBmb3IgdGhlIGVuY29kaW5nIHRoYXQgc2hvdWxkIGJlIHVzZWQgKCdxJworICAgIG9yICdiJyk7IGlmIGl0IGlzIE5vbmUgKHRoZSBkZWZhdWx0KSB0aGUgZW5jb2Rpbmcgd2hpY2ggcHJvZHVjZXMgdGhlCisgICAgc2hvcnRlc3QgZW5jb2RlZCBzZXF1ZW5jZSBpcyB1c2VkLCBleGNlcHQgdGhhdCAncScgaXMgcHJlZmVycmVkIGlmIGl0IGlzIHVwCisgICAgdG8gZml2ZSBjaGFyYWN0ZXJzIGxvbmdlci4gIE9wdGlvbmFsIGFyZ3VtZW50ICdsYW5nJyAoZGVmYXVsdCAnJykgZ2l2ZXMgdGhlCisgICAgUkZDIDIyNDMgbGFuZ3VhZ2Ugc3RyaW5nIHRvIHNwZWNpZnkgaW4gdGhlIGVuY29kZWQgd29yZC4KKworICAgICIiIgorICAgIGlmIGNoYXJzZXQgPT0gJ3Vua25vd24tOGJpdCc6CisgICAgICAgIGJzdHJpbmcgPSBzdHJpbmcuZW5jb2RlKCdhc2NpaScsICdzdXJyb2dhdGVlc2NhcGUnKQorICAgIGVsc2U6CisgICAgICAgIGJzdHJpbmcgPSBzdHJpbmcuZW5jb2RlKGNoYXJzZXQpCisgICAgaWYgZW5jb2RpbmcgaXMgTm9uZToKKyAgICAgICAgcWxlbiA9IF9jdGVfZW5jb2RlX2xlbmd0aFsncSddKGJzdHJpbmcpCisgICAgICAgIGJsZW4gPSBfY3RlX2VuY29kZV9sZW5ndGhbJ2InXShic3RyaW5nKQorICAgICAgICAjIEJpYXMgdG93YXJkIHEuICA1IGlzIGFyYml0cmFyeS4KKyAgICAgICAgZW5jb2RpbmcgPSAncScgaWYgcWxlbiAtIGJsZW4gPCA1IGVsc2UgJ2InCisgICAgZW5jb2RlZCA9IF9jdGVfZW5jb2RlcnNbZW5jb2RpbmddKGJzdHJpbmcpCisgICAgaWYgbGFuZzoKKyAgICAgICAgbGFuZyA9ICcqJyArIGxhbmcKKyAgICByZXR1cm4gIj0/e317fT97fT97fT89Ii5mb3JtYXQoY2hhcnNldCwgbGFuZywgZW5jb2RpbmcsIGVuY29kZWQpCmRpZmYgLS1naXQgYS9MaWIvZW1haWwvX2hlYWRlcl92YWx1ZV9wYXJzZXIucHkgYi9MaWIvZW1haWwvX2hlYWRlcl92YWx1ZV9wYXJzZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkyNGVkMQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi9lbWFpbC9faGVhZGVyX3ZhbHVlX3BhcnNlci5weQpAQCAtMCwwICsxLDI5NTMgQEAKKyIiIkhlYWRlciB2YWx1ZSBwYXJzZXIgaW1wbGVtZW50aW5nIHZhcmlvdXMgZW1haWwtcmVsYXRlZCBSRkMgcGFyc2luZyBydWxlcy4KKworVGhlIHBhcnNpbmcgbWV0aG9kcyBkZWZpbmVkIGluIHRoaXMgbW9kdWxlIGltcGxlbWVudCB2YXJpb3VzIGVtYWlsIHJlbGF0ZWQKK3BhcnNpbmcgcnVsZXMuICBQcmluY2lwYWwgYW1vbmcgdGhlbSBpcyBSRkMgNTMyMiwgd2hpY2ggaXMgdGhlIGZvbGxvd29uCit0byBSRkMgMjgyMiBhbmQgcHJpbWFyaWx5IGEgY2xhcmlmaWNhdGlvbiBvZiB0aGUgZm9ybWVyLiAgSXQgYWxzbyBpbXBsZW1lbnRzCitSRkMgMjA0NyBlbmNvZGVkIHdvcmQgZGVjb2RpbmcuCisKK1JGQyA1MzIyIGdvZXMgdG8gY29uc2lkZXJhYmxlIHRyb3VibGUgdG8gbWFpbnRhaW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoCitSRkMgODIyIGluIHRoZSBwYXJzZSBwaGFzZSwgd2hpbGUgY2xlYW5pbmcgdXAgdGhlIHN0cnVjdHVyZSBvbiB0aGUgZ2VuZXJhdGlvbgorcGhhc2UuICBUaGlzIHBhcnNlciBzdXBwb3J0cyBjb3JyZWN0IFJGQyA1MzIyIGdlbmVyYXRpb24gYnkgdGFnZ2luZyB3aGl0ZSBzcGFjZQorYXMgZm9sZGluZyB3aGl0ZSBzcGFjZSBvbmx5IHdoZW4gZm9sZGluZyBpcyBhbGxvd2VkIGluIHRoZSBub24tb2Jzb2xldGUgcnVsZQorc2V0cy4gIEFjdHVhbGx5LCB0aGUgcGFyc2VyIGlzIGV2ZW4gbW9yZSBnZW5lcm91cyB3aGVuIGFjY2VwdGluZyBpbnB1dCB0aGFuIFJGQworNTMyMiBtYW5kYXRlcywgZm9sbG93aW5nIHRoZSBzcGlyaXQgb2YgUG9zdGVsJ3MgTGF3LCB3aGljaCBSRkMgNTMyMiBlbmNvdXJhZ2VzLgorV2hlcmUgcG9zc2libGUgZGV2aWF0aW9ucyBmcm9tIHRoZSBzdGFuZGFyZCBhcmUgYW5ub3RhdGVkIG9uIHRoZSAnZGVmZWN0cycKK2F0dHJpYnV0ZSBvZiB0b2tlbnMgdGhhdCBkZXZpYXRlLgorCitUaGUgZ2VuZXJhbCBzdHJ1Y3R1cmUgb2YgdGhlIHBhcnNlciBmb2xsb3dzIFJGQyA1MzIyLCBhbmQgdXNlcyBpdHMgdGVybWlub2xvZ3kKK3doZXJlIHRoZXJlIGlzIGEgZGlyZWN0IGNvcnJlc3BvbmRlbmNlLiAgV2hlcmUgdGhlIGltcGxlbWVudGF0aW9uIHJlcXVpcmVzIGEKK3NvbWV3aGF0IGRpZmZlcmVudCBzdHJ1Y3R1cmUgdGhhbiB0aGF0IHVzZWQgYnkgdGhlIGZvcm1hbCBncmFtbWFyLCBuZXcgdGVybXMKK3RoYXQgbWltaWMgdGhlIGNsb3Nlc3QgZXhpc3RpbmcgdGVybXMgYXJlIHVzZWQuICBUaHVzLCBpdCByZWFsbHkgaGVscHMgdG8gaGF2ZQorYSBjb3B5IG9mIFJGQyA1MzIyIGhhbmR5IHdoZW4gc3R1ZHlpbmcgdGhpcyBjb2RlLgorCitJbnB1dCB0byB0aGUgcGFyc2VyIGlzIGEgc3RyaW5nIHRoYXQgaGFzIGFscmVhZHkgYmVlbiB1bmZvbGRlZCBhY2NvcmRpbmcgdG8KK1JGQyA1MzIyIHJ1bGVzLiAgQWNjb3JkaW5nIHRvIHRoZSBSRkMgdGhpcyB1bmZvbGRpbmcgaXMgdGhlIHZlcnkgZmlyc3Qgc3RlcCwgYW5kCit0aGlzIHBhcnNlciBsZWF2ZXMgdGhlIHVuZm9sZGluZyBzdGVwIHRvIGEgaGlnaGVyIGxldmVsIG1lc3NhZ2UgcGFyc2VyLCB3aGljaAord2lsbCBoYXZlIGFscmVhZHkgZGV0ZWN0ZWQgdGhlIGxpbmUgYnJlYWtzIHRoYXQgbmVlZCB1bmZvbGRpbmcgd2hpbGUKK2RldGVybWluaW5nIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCBvZiBlYWNoIGhlYWRlci4KKworVGhlIG91dHB1dCBvZiB0aGUgcGFyc2VyIGlzIGEgVG9rZW5MaXN0IG9iamVjdCwgd2hpY2ggaXMgYSBsaXN0IHN1YmNsYXNzLiAgQQorVG9rZW5MaXN0IGlzIGEgcmVjdXJzaXZlIGRhdGEgc3RydWN0dXJlLiAgVGhlIHRlcm1pbmFsIG5vZGVzIG9mIHRoZSBzdHJ1Y3R1cmUKK2FyZSBUZXJtaW5hbCBvYmplY3RzLCB3aGljaCBhcmUgc3ViY2xhc3NlcyBvZiBzdHIuICBUaGVzZSBkbyBub3QgY29ycmVzcG9uZAorZGlyZWN0bHkgdG8gdGVybWluYWwgb2JqZWN0cyBpbiB0aGUgZm9ybWFsIGdyYW1tYXIsIGJ1dCBhcmUgaW5zdGVhZCBtb3JlCitwcmFjdGljYWwgaGlnaGVyIGxldmVsIGNvbWJpbmF0aW9ucyBvZiB0cnVlIHRlcm1pbmFscy4KKworQWxsIFRva2VuTGlzdCBhbmQgVGVybWluYWwgb2JqZWN0cyBoYXZlIGEgJ3ZhbHVlJyBhdHRyaWJ1dGUsIHdoaWNoIHByb2R1Y2VzIHRoZQorc2VtYW50aWNhbGx5IG1lYW5pbmdmdWwgdmFsdWUgb2YgdGhhdCBwYXJ0IG9mIHRoZSBwYXJzZSBzdWJ0cmVlLiAgVGhlIHZhbHVlIG9mCithbGwgd2hpdGVzcGFjZSB0b2tlbnMgKG5vIG1hdHRlciBob3cgbWFueSBzdWItdG9rZW5zIHRoZXkgbWF5IGNvbnRhaW4pIGlzIGEKK3NpbmdsZSBzcGFjZSwgYXMgcGVyIHRoZSBSRkMgcnVsZXMuICBUaGlzIGluY2x1ZGVzICdDRldTJywgd2hpY2ggaXMgaGVyZWluCitpbmNsdWRlZCBpbiB0aGUgZ2VuZXJhbCBjbGFzcyBvZiB3aGl0ZXNwYWNlIHRva2Vucy4gIFRoZXJlIGlzIG9uZSBleGNlcHRpb24gdG8KK3RoZSBydWxlIHRoYXQgd2hpdGVzcGFjZSB0b2tlbnMgYXJlIGNvbGxhcHNlZCBpbnRvIHNpbmdsZSBzcGFjZXMgaW4gdmFsdWVzOiBpbgordGhlIHZhbHVlIG9mIGEgJ2JhcmUtcXVvdGVkLXN0cmluZycgKGEgcXVvdGVkLXN0cmluZyB3aXRoIG5vIGxlYWRpbmcgb3IKK3RyYWlsaW5nIHdoaXRlc3BhY2UpLCBhbnkgd2hpdGVzcGFjZSB0aGF0IGFwcGVhcmVkIGJldHdlZW4gdGhlIHF1b3RhdGlvbiBtYXJrcworaXMgcHJlc2VydmVkIGluIHRoZSByZXR1cm5lZCB2YWx1ZS4gIE5vdGUgdGhhdCBpbiBhbGwgVGVybWluYWwgc3RyaW5ncyBxdW90ZWQKK3BhaXJzIGFyZSB0dXJuZWQgaW50byB0aGVpciB1bnF1b3RlZCB2YWx1ZXMuCisKK0FsbCBUb2tlbkxpc3QgYW5kIFRlcm1pbmFsIG9iamVjdHMgYWxzbyBoYXZlIGEgc3RyaW5nIHZhbHVlLCB3aGljaCBhdHRlbXB0cyB0bworYmUgYSAiY2Fub25pY2FsIiByZXByZXNlbnRhdGlvbiBvZiB0aGUgUkZDLWNvbXBsaWFudCBmb3JtIG9mIHRoZSBzdWJzdHJpbmcgdGhhdAorcHJvZHVjZWQgdGhlIHBhcnNlZCBzdWJ0cmVlLCBpbmNsdWRpbmcgbWluaW1hbCB1c2Ugb2YgcXVvdGVkIHBhaXIgcXVvdGluZy4KK1doaXRlc3BhY2UgcnVucyBhcmUgbm90IGNvbGxhcHNlZC4KKworQ29tbWVudCB0b2tlbnMgYWxzbyBoYXZlIGEgJ2NvbnRlbnQnIGF0dHJpYnV0ZSBwcm92aWRpbmcgdGhlIHN0cmluZyBmb3VuZAorYmV0d2VlbiB0aGUgcGFyZW5zIChpbmNsdWRpbmcgYW55IG5lc3RlZCBjb21tZW50cykgd2l0aCB3aGl0ZXNwYWNlIHByZXNlcnZlZC4KKworQWxsIFRva2VuTGlzdCBhbmQgVGVybWluYWwgb2JqZWN0cyBoYXZlIGEgJ2RlZmVjdHMnIGF0dHJpYnV0ZSB3aGljaCBpcyBhCitwb3NzaWJseSBlbXB0eSBsaXN0IGFsbCBvZiB0aGUgZGVmZWN0cyBmb3VuZCB3aGlsZSBjcmVhdGluZyB0aGUgdG9rZW4uICBEZWZlY3RzCittYXkgYXBwZWFyIG9uIGFueSB0b2tlbiBpbiB0aGUgdHJlZSwgYW5kIGEgY29tcG9zaXRlIGxpc3Qgb2YgYWxsIGRlZmVjdHMgaW4gdGhlCitzdWJ0cmVlIGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSAnYWxsX2RlZmVjdHMnIGF0dHJpYnV0ZSBvZiBhbnkgbm9kZS4gIChGb3IKK1Rlcm1pbmFsIG5vdGVzIHguZGVmZWN0cyA9PSB4LmFsbF9kZWZlY3RzLikKKworRWFjaCBvYmplY3QgaW4gYSBwYXJzZSB0cmVlIGlzIGNhbGxlZCBhICd0b2tlbicsIGFuZCBlYWNoIGhhcyBhICd0b2tlbl90eXBlJworYXR0cmlidXRlIHRoYXQgZ2l2ZXMgdGhlIG5hbWUgZnJvbSB0aGUgUkZDIDUzMjIgZ3JhbW1hciB0aGF0IGl0IHJlcHJlc2VudHMuCitOb3QgYWxsIFJGQyA1MzIyIG5vZGVzIGFyZSBwcm9kdWNlZCwgYW5kIHRoZXJlIGlzIG9uZSBub24tUkZDIDUzMjIgbm9kZSB0aGF0CittYXkgYmUgcHJvZHVjZWQ6ICdwdGV4dCcuICBBICdwdGV4dCcgaXMgYSBzdHJpbmcgb2YgcHJpbnRhYmxlIGFzY2lpIGNoYXJhY3RlcnMuCitJdCBpcyByZXR1cm5lZCBpbiBwbGFjZSBvZiBsaXN0cyBvZiAoY3RleHQvcXVvdGVkLXBhaXIpIGFuZAorKHF0ZXh0L3F1b3RlZC1wYWlyKS4KKworWFhYOiBwcm92aWRlIGNvbXBsZXRlIGxpc3Qgb2YgdG9rZW4gdHlwZXMuCisiIiIKKworaW1wb3J0IHJlCitpbXBvcnQgdXJsbGliICAgIyBGb3IgdXJsbGliLnBhcnNlLnVucXVvdGUKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IG5hbWVkdHVwbGUsIE9yZGVyZWREaWN0Citmcm9tIGVtYWlsIGltcG9ydCBfZW5jb2RlZF93b3JkcyBhcyBfZXcKK2Zyb20gZW1haWwgaW1wb3J0IGVycm9ycworZnJvbSBlbWFpbCBpbXBvcnQgdXRpbHMKKworIworIyBVc2VmdWwgY29uc3RhbnRzIGFuZCBmdW5jdGlvbnMKKyMKKworV1NQID0gc2V0KCcgXHQnKQorQ0ZXU19MRUFERVIgPSBXU1AgfCBzZXQoJygnKQorU1BFQ0lBTFMgPSBzZXQocicoKTw+QCw6Oy5cIltdJykKK0FUT01fRU5EUyA9IFNQRUNJQUxTIHwgV1NQCitET1RfQVRPTV9FTkRTID0gQVRPTV9FTkRTIC0gc2V0KCcuJykKKyMgJy4nLCAnIicsIGFuZCAnKCcgZG8gbm90IGVuZCBwaHJhc2VzIGluIG9yZGVyIHRvIHN1cHBvcnQgb2JzLXBocmFzZQorUEhSQVNFX0VORFMgPSBTUEVDSUFMUyAtIHNldCgnLiIoJykKK1RTUEVDSUFMUyA9IChTUEVDSUFMUyB8IHNldCgnLz89JykpIC0gc2V0KCcuJykKK1RPS0VOX0VORFMgPSBUU1BFQ0lBTFMgfCBXU1AKK0FTUEVDSUFMUyA9IFRTUEVDSUFMUyB8IHNldCgiKiclIikKK0FUVFJJQlVURV9FTkRTID0gQVNQRUNJQUxTIHwgV1NQCitFWFRFTkRFRF9BVFRSSUJVVEVfRU5EUyA9IEFUVFJJQlVURV9FTkRTIC0gc2V0KCclJykKKworZGVmIHF1b3RlX3N0cmluZyh2YWx1ZSk6CisgICAgcmV0dXJuICciJytzdHIodmFsdWUpLnJlcGxhY2UoJ1xcJywgJ1xcXFwnKS5yZXBsYWNlKCciJywgcidcIicpKyciJworCisjCisjIEFjY3VtdWxhdG9yIGZvciBoZWFkZXIgZm9sZGluZworIworCitjbGFzcyBfRm9sZGVkOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1heGxlbiwgcG9saWN5KToKKyAgICAgICAgc2VsZi5tYXhsZW4gPSBtYXhsZW4KKyAgICAgICAgc2VsZi5wb2xpY3kgPSBwb2xpY3kKKyAgICAgICAgc2VsZi5sYXN0bGVuID0gMAorICAgICAgICBzZWxmLnN0aWNreXNwYWNlID0gTm9uZQorICAgICAgICBzZWxmLmZpcnN0bGluZSA9IFRydWUKKyAgICAgICAgc2VsZi5kb25lID0gW10KKyAgICAgICAgc2VsZi5jdXJyZW50ID0gW10KKworICAgIGRlZiBuZXdsaW5lKHNlbGYpOgorICAgICAgICBzZWxmLmRvbmUuZXh0ZW5kKHNlbGYuY3VycmVudCkKKyAgICAgICAgc2VsZi5kb25lLmFwcGVuZChzZWxmLnBvbGljeS5saW5lc2VwKQorICAgICAgICBzZWxmLmN1cnJlbnQuY2xlYXIoKQorICAgICAgICBzZWxmLmxhc3RsZW4gPSAwCisKKyAgICBkZWYgZmluYWxpemUoc2VsZik6CisgICAgICAgIGlmIHNlbGYuY3VycmVudDoKKyAgICAgICAgICAgIHNlbGYubmV3bGluZSgpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICcnLmpvaW4oc2VsZi5kb25lKQorCisgICAgZGVmIGFwcGVuZChzZWxmLCBzdG9rZW4pOgorICAgICAgICBzZWxmLmN1cnJlbnQuYXBwZW5kKHN0b2tlbikKKworICAgIGRlZiBhcHBlbmRfaWZfZml0cyhzZWxmLCB0b2tlbiwgc3Rva2VuPU5vbmUpOgorICAgICAgICBpZiBzdG9rZW4gaXMgTm9uZToKKyAgICAgICAgICAgIHN0b2tlbiA9IHN0cih0b2tlbikKKyAgICAgICAgbCA9IGxlbihzdG9rZW4pCisgICAgICAgIGlmIHNlbGYuc3RpY2t5c3BhY2UgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzdGlja3lzcGFjZV9sZW4gPSBsZW4oc2VsZi5zdGlja3lzcGFjZSkKKyAgICAgICAgICAgIGlmIHNlbGYubGFzdGxlbiArIHN0aWNreXNwYWNlX2xlbiArIGwgPD0gc2VsZi5tYXhsZW46CisgICAgICAgICAgICAgICAgc2VsZi5jdXJyZW50LmFwcGVuZChzZWxmLnN0aWNreXNwYWNlKQorICAgICAgICAgICAgICAgIHNlbGYubGFzdGxlbiArPSBzdGlja3lzcGFjZV9sZW4KKyAgICAgICAgICAgICAgICBzZWxmLmN1cnJlbnQuYXBwZW5kKHN0b2tlbikKKyAgICAgICAgICAgICAgICBzZWxmLmxhc3RsZW4gKz0gbAorICAgICAgICAgICAgICAgIHNlbGYuc3RpY2t5c3BhY2UgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5maXJzdGxpbmUgPSBGYWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBpZiB0b2tlbi5oYXNfZndzOgorICAgICAgICAgICAgICAgIHdzID0gdG9rZW4ucG9wX2xlYWRpbmdfZndzKCkKKyAgICAgICAgICAgICAgICBpZiB3cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGlja3lzcGFjZSArPSBzdHIod3MpCisgICAgICAgICAgICAgICAgICAgIHN0aWNreXNwYWNlX2xlbiArPSBsZW4od3MpCisgICAgICAgICAgICAgICAgdG9rZW4uX2ZvbGQoc2VsZikKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgaWYgc3RpY2t5c3BhY2VfbGVuIGFuZCBsICsgMSA8PSBzZWxmLm1heGxlbjoKKyAgICAgICAgICAgICAgICBtYXJnaW4gPSBzZWxmLm1heGxlbiAtIGwKKyAgICAgICAgICAgICAgICBpZiAwIDwgbWFyZ2luIDwgc3RpY2t5c3BhY2VfbGVuOgorICAgICAgICAgICAgICAgICAgICB0cmltID0gc3RpY2t5c3BhY2VfbGVuIC0gbWFyZ2luCisgICAgICAgICAgICAgICAgICAgIHNlbGYuY3VycmVudC5hcHBlbmQoc2VsZi5zdGlja3lzcGFjZVs6dHJpbV0pCisgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RpY2t5c3BhY2UgPSBzZWxmLnN0aWNreXNwYWNlW3RyaW06XQorICAgICAgICAgICAgICAgICAgICBzdGlja3lzcGFjZV9sZW4gPSB0cmltCisgICAgICAgICAgICAgICAgc2VsZi5uZXdsaW5lKCkKKyAgICAgICAgICAgICAgICBzZWxmLmN1cnJlbnQuYXBwZW5kKHNlbGYuc3RpY2t5c3BhY2UpCisgICAgICAgICAgICAgICAgc2VsZi5jdXJyZW50LmFwcGVuZChzdG9rZW4pCisgICAgICAgICAgICAgICAgc2VsZi5sYXN0bGVuID0gbCArIHN0aWNreXNwYWNlX2xlbgorICAgICAgICAgICAgICAgIHNlbGYuc3RpY2t5c3BhY2UgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5maXJzdGxpbmUgPSBGYWxzZQorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5maXJzdGxpbmU6CisgICAgICAgICAgICAgICAgc2VsZi5uZXdsaW5lKCkKKyAgICAgICAgICAgIHNlbGYuY3VycmVudC5hcHBlbmQoc2VsZi5zdGlja3lzcGFjZSkKKyAgICAgICAgICAgIHNlbGYuY3VycmVudC5hcHBlbmQoc3Rva2VuKQorICAgICAgICAgICAgc2VsZi5zdGlja3lzcGFjZSA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuZmlyc3RsaW5lID0gRmFsc2UKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGlmIHNlbGYubGFzdGxlbiArIGwgPD0gc2VsZi5tYXhsZW46CisgICAgICAgICAgICBzZWxmLmN1cnJlbnQuYXBwZW5kKHN0b2tlbikKKyAgICAgICAgICAgIHNlbGYubGFzdGxlbiArPSBsCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBpZiBsIDwgc2VsZi5tYXhsZW46CisgICAgICAgICAgICBzZWxmLm5ld2xpbmUoKQorICAgICAgICAgICAgc2VsZi5jdXJyZW50LmFwcGVuZChzdG9rZW4pCisgICAgICAgICAgICBzZWxmLmxhc3RsZW4gPSBsCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworIworIyBUb2tlbkxpc3QgYW5kIGl0cyBzdWJjbGFzc2VzCisjCisKK2NsYXNzIFRva2VuTGlzdChsaXN0KToKKworICAgIHRva2VuX3R5cGUgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKCphcmdzLCAqKmt3KQorICAgICAgICBzZWxmLmRlZmVjdHMgPSBbXQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAnJy5qb2luKHN0cih4KSBmb3IgeCBpbiBzZWxmKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJ3t9KHt9KScuZm9ybWF0KHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBlcigpLl9fcmVwcl9fKCkpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmFsdWUoc2VsZik6CisgICAgICAgIHJldHVybiAnJy5qb2luKHgudmFsdWUgZm9yIHggaW4gc2VsZiBpZiB4LnZhbHVlKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFsbF9kZWZlY3RzKHNlbGYpOgorICAgICAgICByZXR1cm4gc3VtKCh4LmFsbF9kZWZlY3RzIGZvciB4IGluIHNlbGYpLCBzZWxmLmRlZmVjdHMpCisKKyAgICAjCisgICAgIyBGb2xkaW5nIEFQSQorICAgICMKKyAgICAjIHBhcnRzKCk6CisgICAgIworICAgICMgcmV0dXJuIGEgbGlzdCBvZiBvYmplY3RzIHRoYXQgY29uc3RpdHV0ZSB0aGUgImhpZ2hlciBsZXZlbCBzeW50YWN0aWMKKyAgICAjIG9iamVjdHMiIHNwZWNpZmllZCBieSB0aGUgUkZDIGFzIHRoZSBiZXN0IHBsYWNlcyB0byBmb2xkIGEgaGVhZGVyIGxpbmUuCisgICAgIyBUaGUgcmV0dXJuZWQgb2JqZWN0cyBtdXN0IGluY2x1ZGUgbGVhZGluZyBmb2xkaW5nIHdoaXRlIHNwYWNlLCBldmVuIGlmCisgICAgIyB0aGlzIG1lYW5zIG11dGF0aW5nIHRoZSB1bmRlcmx5aW5nIHBhcnNlIHRyZWUgb2YgdGhlIG9iamVjdC4gIEVhY2ggb2JqZWN0CisgICAgIyBpcyBvbmx5IHJlc3BvbnNpYmxlIGZvciByZXR1cm5pbmcgKml0cyogcGFydHMsIGFuZCBzaG91bGQgbm90IGRyaWxsIGRvd24KKyAgICAjIHRvIGFueSBsb3dlciBsZXZlbCBleGNlcHQgYXMgcmVxdWlyZWQgdG8gbWVldCB0aGUgbGVhZGluZyBmb2xkaW5nIHdoaXRlCisgICAgIyBzcGFjZSBjb25zdHJhaW50LgorICAgICMKKyAgICAjIF9mb2xkKGZvbGRlZCk6CisgICAgIworICAgICMgICBmb2xkZWQ6IHRoZSByZXN1bHQgYWNjdW11bGF0b3IuICBUaGlzIGlzIGFuIGluc3RhbmNlIG9mIF9Gb2xkZWQuCisgICAgIyAgICAgICAoWFhYOiBJIGhhdmVuJ3QgZmluaXNoZWQgZmFjdG9yaW5nIHRoaXMgb3V0IHlldCwgdGhlIGZvbGRpbmcgY29kZQorICAgICMgICAgICAgcHJldHR5IG11Y2ggdXNlcyB0aGlzIGFzIGEgc3RhdGUgb2JqZWN0LikgV2hlbiB0aGUgZm9sZGVkLmN1cnJlbnQKKyAgICAjICAgICAgIGNvbnRhaW5zIGFzIG11Y2ggdGV4dCBhcyB3aWxsIGZpdCwgdGhlIF9mb2xkIG1ldGhvZCBzaG91bGQgY2FsbAorICAgICMgICAgICAgZm9sZGVkLm5ld2xpbmUuCisgICAgIyAgZm9sZGVkLmxhc3RsZW46IHRoZSBjdXJyZW50IGxlbmd0aCBvZiB0aGUgdGVzdCBzdG9yZWQgaW4gZm9sZGVkLmN1cnJlbnQuCisgICAgIyAgZm9sZGVkLm1heGxlbjogVGhlIG1heGltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhhdCBtYXkgYXBwZWFyIG9uIGEKKyAgICAjICAgICAgIGZvbGRlZCBsaW5lLiAgRGlmZmVycyBmcm9tIHRoZSBwb2xpY3kgc2V0dGluZyBpbiB0aGF0ICJubyBsaW1pdCIgaXMKKyAgICAjICAgICAgIHJlcHJlc2VudGVkIGJ5ICtpbmYsIHdoaWNoIG1lYW5zIGl0IGNhbiBiZSB1c2VkIGluIHRoZSB0cml2aWFsbHkKKyAgICAjICAgICAgIGxvZ2ljYWwgZmFzaGlvbiBpbiBjb21wYXJpc29ucy4KKyAgICAjCisgICAgIyBDdXJyZW50bHkgbm8gc3ViY2xhc3NlcyBpbXBsZW1lbnQgcGFydHMsIGFuZCBJIHRoaW5rIHRoaXMgd2lsbCByZW1haW4KKyAgICAjIHRydWUuICBBIHN1YmNsYXNzIG9ubHkgbmVlZHMgdG8gaW1wbGVtZW50IF9mb2xkIHdoZW4gdGhlIGdlbmVyaWMgdmVyc2lvbgorICAgICMgaXNuJ3Qgc3VmZmljaWVudC4gIF9mb2xkIHdpbGwgbmVlZCB0byBiZSBpbXBsZW1lbnRlZCBwcmltYXJpbHkgd2hlbiBpdCBpcworICAgICMgcG9zc2libGUgZm9yIGVuY29kZWQgd29yZHMgdG8gYXBwZWFyIGluIHRoZSBzcGVjaWFsaXplZCB0b2tlbi1saXN0LCBzaW5jZQorICAgICMgdGhlcmUgaXMgbm8gZ2VuZXJpYyBhbGdvcml0aG0gdGhhdCBjYW4ga25vdyB3aGVyZSBleGFjdGx5IHRoZSBlbmNvZGVkCisgICAgIyB3b3JkcyBhcmUgYWxsb3dlZC4gIEEgX2ZvbGQgaW1wbGVtZW50YXRpb24gaXMgcmVzcG9uc2libGUgZm9yIGZpbGxpbmcKKyAgICAjIGxpbmVzIGluIHRoZSBzYW1lIGdlbmVyYWwgd2F5IHRoYXQgdGhlIHRvcCBsZXZlbCBfZm9sZCBkb2VzLiBJdCBtYXksIGFuZAorICAgICMgc2hvdWxkLCBjYWxsIHRoZSBfZm9sZCBtZXRob2Qgb2Ygc3ViLW9iamVjdHMgaW4gYSBzaW1pbGFyIGZhc2hpb24gdG8gdGhhdAorICAgICMgb2YgdGhlIHRvcCBsZXZlbCBfZm9sZC4KKyAgICAjCisgICAgIyBYWFg6IEknbSBob3BpbmcgaXQgd2lsbCBiZSBwb3NzaWJsZSB0byBmYWN0b3IgdGhlIGV4aXN0aW5nIGNvZGUgZnVydGhlcgorICAgICMgdG8gcmVkdWNlIHJlZHVuZGFuY3kgYW5kIG1ha2UgdGhlIGxvZ2ljIGNsZWFyZXIuCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGFydHMoc2VsZik6CisgICAgICAgIGtsYXNzID0gc2VsZi5fX2NsYXNzX18KKyAgICAgICAgdGhpcyA9IFtdCisgICAgICAgIGZvciB0b2tlbiBpbiBzZWxmOgorICAgICAgICAgICAgaWYgdG9rZW4uc3RhcnRzd2l0aF9md3MoKToKKyAgICAgICAgICAgICAgICBpZiB0aGlzOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCB0aGlzWzBdIGlmIGxlbih0aGlzKT09MSBlbHNlIGtsYXNzKHRoaXMpCisgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXIoKQorICAgICAgICAgICAgZW5kX3dzID0gdG9rZW4ucG9wX3RyYWlsaW5nX3dzKCkKKyAgICAgICAgICAgIHRoaXMuYXBwZW5kKHRva2VuKQorICAgICAgICAgICAgaWYgZW5kX3dzOgorICAgICAgICAgICAgICAgIHlpZWxkIGtsYXNzKHRoaXMpCisgICAgICAgICAgICAgICAgdGhpcyA9IFtlbmRfd3NdCisgICAgICAgIGlmIHRoaXM6CisgICAgICAgICAgICB5aWVsZCB0aGlzWzBdIGlmIGxlbih0aGlzKT09MSBlbHNlIGtsYXNzKHRoaXMpCisKKyAgICBkZWYgc3RhcnRzd2l0aF9md3Moc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmWzBdLnN0YXJ0c3dpdGhfZndzKCkKKworICAgIGRlZiBwb3BfbGVhZGluZ19md3Moc2VsZik6CisgICAgICAgIGlmIHNlbGZbMF0udG9rZW5fdHlwZSA9PSAnZndzJzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnBvcCgwKQorICAgICAgICByZXR1cm4gc2VsZlswXS5wb3BfbGVhZGluZ19md3MoKQorCisgICAgZGVmIHBvcF90cmFpbGluZ193cyhzZWxmKToKKyAgICAgICAgaWYgc2VsZlstMV0udG9rZW5fdHlwZSA9PSAnY2Z3cyc6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5wb3AoLTEpCisgICAgICAgIHJldHVybiBzZWxmWy0xXS5wb3BfdHJhaWxpbmdfd3MoKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGhhc19md3Moc2VsZik6CisgICAgICAgIGZvciBwYXJ0IGluIHNlbGY6CisgICAgICAgICAgICBpZiBwYXJ0Lmhhc19md3M6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgaGFzX2xlYWRpbmdfY29tbWVudChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGZbMF0uaGFzX2xlYWRpbmdfY29tbWVudCgpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY29tbWVudHMoc2VsZik6CisgICAgICAgIGNvbW1lbnRzID0gW10KKyAgICAgICAgZm9yIHRva2VuIGluIHNlbGY6CisgICAgICAgICAgICBjb21tZW50cy5leHRlbmQodG9rZW4uY29tbWVudHMpCisgICAgICAgIHJldHVybiBjb21tZW50cworCisgICAgZGVmIGZvbGQoc2VsZiwgKiwgcG9saWN5KToKKyAgICAgICAgIyBtYXhfbGluZV9sZW5ndGggMC9Ob25lIG1lYW5zIG5vIGxpbWl0LCBpZTogaW5maW5pdGVseSBsb25nLgorICAgICAgICBtYXhsZW4gPSBwb2xpY3kubWF4X2xpbmVfbGVuZ3RoIG9yIGZsb2F0KCIraW5mIikKKyAgICAgICAgZm9sZGVkID0gX0ZvbGRlZChtYXhsZW4sIHBvbGljeSkKKyAgICAgICAgc2VsZi5fZm9sZChmb2xkZWQpCisgICAgICAgIGZvbGRlZC5maW5hbGl6ZSgpCisgICAgICAgIHJldHVybiBzdHIoZm9sZGVkKQorCisgICAgZGVmIGFzX2VuY29kZWRfd29yZChzZWxmLCBjaGFyc2V0KToKKyAgICAgICAgIyBUaGlzIHdvcmtzIG9ubHkgZm9yIHRoaW5ncyByZXR1cm5lZCBieSAncGFydHMnLCB3aGljaCBpbmNsdWRlCisgICAgICAgICMgdGhlIGxlYWRpbmcgZndzLCBpZiBhbnksIHRoYXQgc2hvdWxkIGJlIHVzZWQuCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIHdzID0gc2VsZi5wb3BfbGVhZGluZ19md3MoKQorICAgICAgICBpZiB3czoKKyAgICAgICAgICAgIHJlcy5hcHBlbmQod3MpCisgICAgICAgIHRyYWlsZXIgPSBzZWxmLnBvcCgtMSkgaWYgc2VsZlstMV0udG9rZW5fdHlwZT09J2Z3cycgZWxzZSAnJworICAgICAgICByZXMuYXBwZW5kKF9ldy5lbmNvZGUoc3RyKHNlbGYpLCBjaGFyc2V0KSkKKyAgICAgICAgcmVzLmFwcGVuZCh0cmFpbGVyKQorICAgICAgICByZXR1cm4gJycuam9pbihyZXMpCisKKyAgICBkZWYgY3RlX2VuY29kZShzZWxmLCBjaGFyc2V0LCBwb2xpY3kpOgorICAgICAgICByZXMgPSBbXQorICAgICAgICBmb3IgcGFydCBpbiBzZWxmOgorICAgICAgICAgICAgcmVzLmFwcGVuZChwYXJ0LmN0ZV9lbmNvZGUoY2hhcnNldCwgcG9saWN5KSkKKyAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzKQorCisgICAgZGVmIF9mb2xkKHNlbGYsIGZvbGRlZCk6CisgICAgICAgIGZvciBwYXJ0IGluIHNlbGYucGFydHM6CisgICAgICAgICAgICB0c3RyID0gc3RyKHBhcnQpCisgICAgICAgICAgICB0bGVuID0gbGVuKHRzdHIpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc3RyKHBhcnQpLmVuY29kZSgndXMtYXNjaWknKQorICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgICAgICAgICBpZiBhbnkoaXNpbnN0YW5jZSh4LCBlcnJvcnMuVW5kZWNvZGFibGVCeXRlc0RlZmVjdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHBhcnQuYWxsX2RlZmVjdHMpOgorICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gJ3Vua25vd24tOGJpdCcKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIFhYWDogdGhpcyBzaG91bGQgYmUgYSBwb2xpY3kgc2V0dGluZworICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gJ3V0Zi04JworICAgICAgICAgICAgICAgIHRzdHIgPSBwYXJ0LmN0ZV9lbmNvZGUoY2hhcnNldCwgZm9sZGVkLnBvbGljeSkKKyAgICAgICAgICAgICAgICB0bGVuID0gbGVuKHRzdHIpCisgICAgICAgICAgICBpZiBmb2xkZWQuYXBwZW5kX2lmX2ZpdHMocGFydCwgdHN0cik6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICMgUGVlbCBvZmYgdGhlIGxlYWRpbmcgd2hpdGVzcGFjZSBpZiBhbnkgYW5kIG1ha2UgaXQgc3RpY2t5LCB0bworICAgICAgICAgICAgIyBhdm9pZCBpbmZpbml0ZSByZWN1cnNpb24uCisgICAgICAgICAgICB3cyA9IHBhcnQucG9wX2xlYWRpbmdfZndzKCkKKyAgICAgICAgICAgIGlmIHdzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICMgUGVlbCBvZmYgdGhlIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgbWFrZSBpdCBzdGlja3ksIHRvCisgICAgICAgICAgICAgICAgIyBhdm9pZCBpbmZpbml0ZSByZWN1cnNpb24uCisgICAgICAgICAgICAgICAgZm9sZGVkLnN0aWNreXNwYWNlID0gc3RyKHBhcnQucG9wKDApKQorICAgICAgICAgICAgICAgIGlmIGZvbGRlZC5hcHBlbmRfaWZfZml0cyhwYXJ0KToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIHBhcnQuaGFzX2Z3czoKKyAgICAgICAgICAgICAgICBwYXJ0Ll9mb2xkKGZvbGRlZCkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgIyBUaGVyZSBhcmUgbm8gZm9sZCBwb2ludHMgaW4gdGhpcyBvbmU7IGl0IGlzIHRvbyBsb25nIGZvciBhIHNpbmdsZQorICAgICAgICAgICAgIyBsaW5lIGFuZCBjYW4ndCBiZSBzcGxpdC4uLndlIGp1c3QgaGF2ZSB0byBwdXQgaXQgb24gaXRzIG93biBsaW5lLgorICAgICAgICAgICAgZm9sZGVkLmFwcGVuZCh0c3RyKQorICAgICAgICAgICAgZm9sZGVkLm5ld2xpbmUoKQorCisgICAgZGVmIHBwcmludChzZWxmLCBpbmRlbnQ9JycpOgorICAgICAgICBwcmludCgnXG4nLmpvaW4oc2VsZi5fcHAoaW5kZW50PScnKSkpCisKKyAgICBkZWYgcHBzdHIoc2VsZiwgaW5kZW50PScnKToKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihzZWxmLl9wcChpbmRlbnQ9JycpKQorCisgICAgZGVmIF9wcChzZWxmLCBpbmRlbnQ9JycpOgorICAgICAgICB5aWVsZCAne317fS97fSgnLmZvcm1hdCgKKyAgICAgICAgICAgIGluZGVudCwKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgc2VsZi50b2tlbl90eXBlKQorICAgICAgICBmb3IgdG9rZW4gaW4gc2VsZjoKKyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHRva2VuLCAnX3BwJyk6CisgICAgICAgICAgICAgICAgeWllbGQgKGluZGVudCArICcgICAgISEgaW52YWxpZCBlbGVtZW50IGluIHRva2VuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGlzdDogeyFyfScuZm9ybWF0KHRva2VuKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gdG9rZW4uX3BwKGluZGVudCsnICAgICcpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBsaW5lCisgICAgICAgIGlmIHNlbGYuZGVmZWN0czoKKyAgICAgICAgICAgIGV4dHJhID0gJyBEZWZlY3RzOiB7fScuZm9ybWF0KHNlbGYuZGVmZWN0cykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4dHJhID0gJycKKyAgICAgICAgeWllbGQgJ3t9KXt9Jy5mb3JtYXQoaW5kZW50LCBleHRyYSkKKworCitjbGFzcyBXaGl0ZVNwYWNlVG9rZW5MaXN0KFRva2VuTGlzdCk6CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmFsdWUoc2VsZik6CisgICAgICAgIHJldHVybiAnICcKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjb21tZW50cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFt4LmNvbnRlbnQgZm9yIHggaW4gc2VsZiBpZiB4LnRva2VuX3R5cGU9PSdjb21tZW50J10KKworCitjbGFzcyBVbnN0cnVjdHVyZWRUb2tlbkxpc3QoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAndW5zdHJ1Y3R1cmVkJworCisgICAgZGVmIF9mb2xkKHNlbGYsIGZvbGRlZCk6CisgICAgICAgIGlmIGFueSh4LnRva2VuX3R5cGU9PSdlbmNvZGVkLXdvcmQnIGZvciB4IGluIHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2ZvbGRfZW5jb2RlZChmb2xkZWQpCisgICAgICAgICMgSGVyZSB3ZSBjYW4gaGF2ZSBlaXRoZXIgYSBwdXJlIEFTQ0lJIHN0cmluZyB0aGF0IG1heSBvciBtYXkgbm90CisgICAgICAgICMgaGF2ZSBzdXJyb2dhdGVlc2NhcGUgZW5jb2RlZCBieXRlcywgb3IgYSB1bmljb2RlIHN0cmluZy4KKyAgICAgICAgbGFzdF9ldyA9IE5vbmUKKyAgICAgICAgZm9yIHBhcnQgaW4gc2VsZi5wYXJ0czoKKyAgICAgICAgICAgIHRzdHIgPSBzdHIocGFydCkKKyAgICAgICAgICAgIGlzX2V3ID0gRmFsc2UKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzdHIocGFydCkuZW5jb2RlKCd1cy1hc2NpaScpCisgICAgICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAgICAgICAgIGlmIGFueShpc2luc3RhbmNlKHgsIGVycm9ycy5VbmRlY29kYWJsZUJ5dGVzRGVmZWN0KQorICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBwYXJ0LmFsbF9kZWZlY3RzKToKKyAgICAgICAgICAgICAgICAgICAgY2hhcnNldCA9ICd1bmtub3duLThiaXQnCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgY2hhcnNldCA9ICd1dGYtOCcKKyAgICAgICAgICAgICAgICBpZiBsYXN0X2V3IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAjIFdlJ3ZlIGFscmVhZHkgZG9uZSBhbiBFVywgY29tYmluZSB0aGlzIG9uZSB3aXRoIGl0CisgICAgICAgICAgICAgICAgICAgICMgaWYgdGhlcmUncyByb29tLgorICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGdldF91bnN0cnVjdHVyZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAnJy5qb2luKGZvbGRlZC5jdXJyZW50W2xhc3RfZXc6XStbdHN0cl0pKS5hc19lbmNvZGVkX3dvcmQoY2hhcnNldCkKKyAgICAgICAgICAgICAgICAgICAgb2xkbGFzdGxlbiA9IHN1bShsZW4oeCkgZm9yIHggaW4gZm9sZGVkLmN1cnJlbnRbOmxhc3RfZXddKQorICAgICAgICAgICAgICAgICAgICBzY2h1bmsgPSBzdHIoY2h1bmspCisgICAgICAgICAgICAgICAgICAgIGxjaHVuayA9IGxlbihzY2h1bmspCisgICAgICAgICAgICAgICAgICAgIGlmIG9sZGxhc3RsZW4gKyBsY2h1bmsgPD0gZm9sZGVkLm1heGxlbjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbCBmb2xkZWQuY3VycmVudFtsYXN0X2V3Ol0KKyAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRlZC5hcHBlbmQoc2NodW5rKQorICAgICAgICAgICAgICAgICAgICAgICAgZm9sZGVkLmxhc3RsZW4gPSBvbGRsYXN0bGVuICsgbGNodW5rCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHRzdHIgPSBwYXJ0LmFzX2VuY29kZWRfd29yZChjaGFyc2V0KQorICAgICAgICAgICAgICAgIGlzX2V3ID0gVHJ1ZQorICAgICAgICAgICAgaWYgZm9sZGVkLmFwcGVuZF9pZl9maXRzKHBhcnQsIHRzdHIpOgorICAgICAgICAgICAgICAgIGlmIGlzX2V3OgorICAgICAgICAgICAgICAgICAgICBsYXN0X2V3ID0gbGVuKGZvbGRlZC5jdXJyZW50KSAtIDEKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgaXNfZXcgb3IgbGFzdF9ldzoKKyAgICAgICAgICAgICAgICAjIEl0J3MgdG9vIGJpZyB0byBmaXQgb24gdGhlIGxpbmUsIGJ1dCBzaW5jZSB3ZSd2ZQorICAgICAgICAgICAgICAgICMgZ290IGVuY29kZWQgd29yZHMgd2UgY2FuIHVzZSBlbmNvZGVkIHdvcmQgZm9sZGluZy4KKyAgICAgICAgICAgICAgICBwYXJ0Ll9mb2xkX2FzX2V3KGZvbGRlZCkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgIyBQZWVsIG9mZiB0aGUgbGVhZGluZyB3aGl0ZXNwYWNlIGlmIGFueSBhbmQgbWFrZSBpdCBzdGlja3ksIHRvCisgICAgICAgICAgICAjIGF2b2lkIGluZmluaXRlIHJlY3Vyc2lvbi4KKyAgICAgICAgICAgIHdzID0gcGFydC5wb3BfbGVhZGluZ19md3MoKQorICAgICAgICAgICAgaWYgd3MgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgZm9sZGVkLnN0aWNreXNwYWNlID0gc3RyKHdzKQorICAgICAgICAgICAgICAgIGlmIGZvbGRlZC5hcHBlbmRfaWZfZml0cyhwYXJ0KToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIHBhcnQuaGFzX2Z3czoKKyAgICAgICAgICAgICAgICBwYXJ0LmZvbGQoZm9sZGVkKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAjIEl0IGNhbid0IGJlIHNwbGl0Li4ud2UganVzdCBoYXZlIHRvIHB1dCBpdCBvbiBpdHMgb3duIGxpbmUuCisgICAgICAgICAgICBmb2xkZWQuYXBwZW5kKHRzdHIpCisgICAgICAgICAgICBmb2xkZWQubmV3bGluZSgpCisgICAgICAgICAgICBsYXN0X2V3ID0gTm9uZQorCisgICAgZGVmIGN0ZV9lbmNvZGUoc2VsZiwgY2hhcnNldCwgcG9saWN5KToKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgbGFzdF9ldyA9IE5vbmUKKyAgICAgICAgZm9yIHBhcnQgaW4gc2VsZjoKKyAgICAgICAgICAgIHNwYXJ0ID0gc3RyKHBhcnQpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc3BhcnQuZW5jb2RlKCd1cy1hc2NpaScpCisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZChzcGFydCkKKyAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CisgICAgICAgICAgICAgICAgaWYgbGFzdF9ldyBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kKHBhcnQuY3RlX2VuY29kZShjaGFyc2V0LCBwb2xpY3kpKQorICAgICAgICAgICAgICAgICAgICBsYXN0X2V3ID0gbGVuKHJlcykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB0bCA9IGdldF91bnN0cnVjdHVyZWQoJycuam9pbihyZXNbbGFzdF9ldzpdICsgW3NwYXJ0XSkpCisgICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQodGwuYXNfZW5jb2RlZF93b3JkKCkpCisgICAgICAgIHJldHVybiAnJy5qb2luKHJlcykKKworCitjbGFzcyBQaHJhc2UoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAncGhyYXNlJworCisgICAgZGVmIF9mb2xkKHNlbGYsIGZvbGRlZCk6CisgICAgICAgICMgQXMgd2l0aCBVbnN0cnVjdHVyZWQsIHdlIGNhbiBoYXZlIHB1cmUgQVNDSUkgd2l0aCBvciB3aXRob3V0CisgICAgICAgICMgc3Vycm9nYXRlZXNjYXBlIGVuY29kZWQgYnl0ZXMsIG9yIHdlIGNvdWxkIGhhdmUgdW5pY29kZS4gIEJ1dCB0aGlzCisgICAgICAgICMgY2FzZSBpcyBtb3JlIGNvbXBsaWNhdGVkLCBzaW5jZSB3ZSBoYXZlIHRvIGRlYWwgd2l0aCB0aGUgdmFyaW91cworICAgICAgICAjIHN1Yi10b2tlbiB0eXBlcyBhbmQgaG93IHRoZXkgY2FuIGJlIGNvbXBvc2VkIGluIHRoZSBmYWNlIG9mCisgICAgICAgICMgdW5pY29kZS10aGF0LW5lZWRzLUNURS1lbmNvZGluZywgYW5kIHRoZSBmYWN0IHRoYXQgaWYgYSB0b2tlbiBhCisgICAgICAgICMgY29tbWVudCB0aGF0IGJlY29tZXMgYSBiYXJyaWVyIGFjcm9zcyB3aGljaCB3ZSBjYW4ndCBjb21wb3NlIGVuY29kZWQKKyAgICAgICAgIyB3b3Jkcy4KKyAgICAgICAgbGFzdF9ldyA9IE5vbmUKKyAgICAgICAgZm9yIHBhcnQgaW4gc2VsZi5wYXJ0czoKKyAgICAgICAgICAgIHRzdHIgPSBzdHIocGFydCkKKyAgICAgICAgICAgIHRsZW4gPSBsZW4odHN0cikKKyAgICAgICAgICAgIGhhc19ldyA9IEZhbHNlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc3RyKHBhcnQpLmVuY29kZSgndXMtYXNjaWknKQorICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgICAgICAgICBpZiBhbnkoaXNpbnN0YW5jZSh4LCBlcnJvcnMuVW5kZWNvZGFibGVCeXRlc0RlZmVjdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHBhcnQuYWxsX2RlZmVjdHMpOgorICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gJ3Vua25vd24tOGJpdCcKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gJ3V0Zi04JworICAgICAgICAgICAgICAgIGlmIGxhc3RfZXcgaXMgbm90IE5vbmUgYW5kIG5vdCBwYXJ0Lmhhc19sZWFkaW5nX2NvbW1lbnQoKToKKyAgICAgICAgICAgICAgICAgICAgIyBXZSd2ZSBhbHJlYWR5IGRvbmUgYW4gRVcsIGxldCdzIHNlZSBpZiB3ZSBjYW4gY29tYmluZQorICAgICAgICAgICAgICAgICAgICAjIHRoaXMgb25lIHdpdGggaXQuICBUaGUgbGFzdF9ldyBsb2dpYyBlbnN1cmVzIHRoYXQgYWxsIHdlCisgICAgICAgICAgICAgICAgICAgICMgaGF2ZSBhdCB0aGlzIHBvaW50IGlzIGF0b21zLCBubyBjb21tZW50cyBvciBxdW90ZWQKKyAgICAgICAgICAgICAgICAgICAgIyBzdHJpbmdzLiAgU28gd2UgY2FuIHRyZWF0IHRoZSB0ZXh0IGJldHdlZW4gdGhlIGxhc3QKKyAgICAgICAgICAgICAgICAgICAgIyBlbmNvZGVkIHdvcmQgYW5kIHRoZSBjb250ZW50IG9mIHRoaXMgdG9rZW4gYXMKKyAgICAgICAgICAgICAgICAgICAgIyB1bnN0cnVjdHVyZWQgdGV4dCwgYW5kIHRoaW5ncyB3aWxsIHdvcmsgY29ycmVjdGx5LiAgQnV0CisgICAgICAgICAgICAgICAgICAgICMgd2UgaGF2ZSB0byBzdHJpcCBvZmYgYW55IHRyYWlsaW5nIGNvbW1lbnQgb24gdGhpcyB0b2tlbgorICAgICAgICAgICAgICAgICAgICAjIGZpcnN0LCBhbmQgaWYgaXQgaXMgYSBxdW90ZWQgc3RyaW5nIHdlIGhhdmUgdG8gcHVsbCBvdXQKKyAgICAgICAgICAgICAgICAgICAgIyB0aGUgY29udGVudCAod2UncmUgZW5jb2RpbmcgaXQsIHNvIGl0IG5vIGxvbmdlciBuZWVkcyB0bworICAgICAgICAgICAgICAgICAgICAjIGJlIHF1b3RlZCkuCisgICAgICAgICAgICAgICAgICAgIGlmIHBhcnRbLTFdLnRva2VuX3R5cGUgPT0gJ2Nmd3MnIGFuZCBwYXJ0LmNvbW1lbnRzOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyID0gcGFydC5wb3AoLTEpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5kZXIgPSAnJworICAgICAgICAgICAgICAgICAgICBmb3IgaSwgdG9rZW4gaW4gZW51bWVyYXRlKHBhcnQpOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdG9rZW4udG9rZW5fdHlwZSA9PSAnYmFyZS1xdW90ZWQtc3RyaW5nJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0W2ldID0gVW5zdHJ1Y3R1cmVkVG9rZW5MaXN0KHRva2VuWzpdKQorICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGdldF91bnN0cnVjdHVyZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAnJy5qb2luKGZvbGRlZC5jdXJyZW50W2xhc3RfZXc6XStbdHN0cl0pKS5hc19lbmNvZGVkX3dvcmQoY2hhcnNldCkKKyAgICAgICAgICAgICAgICAgICAgc2NodW5rID0gc3RyKGNodW5rKQorICAgICAgICAgICAgICAgICAgICBsY2h1bmsgPSBsZW4oc2NodW5rKQorICAgICAgICAgICAgICAgICAgICBpZiBsYXN0X2V3ICsgbGNodW5rIDw9IGZvbGRlZC5tYXhsZW46CisgICAgICAgICAgICAgICAgICAgICAgICBkZWwgZm9sZGVkLmN1cnJlbnRbbGFzdF9ldzpdCisgICAgICAgICAgICAgICAgICAgICAgICBmb2xkZWQuYXBwZW5kKHNjaHVuaykKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvbGRlZC5sYXN0bGVuID0gc3VtKGxlbih4KSBmb3IgeCBpbiBmb2xkZWQuY3VycmVudCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgdHN0ciA9IHBhcnQuYXNfZW5jb2RlZF93b3JkKGNoYXJzZXQpCisgICAgICAgICAgICAgICAgdGxlbiA9IGxlbih0c3RyKQorICAgICAgICAgICAgICAgIGhhc19ldyA9IFRydWUKKyAgICAgICAgICAgIGlmIGZvbGRlZC5hcHBlbmRfaWZfZml0cyhwYXJ0LCB0c3RyKToKKyAgICAgICAgICAgICAgICBpZiBoYXNfZXcgYW5kIG5vdCBwYXJ0LmNvbW1lbnRzOgorICAgICAgICAgICAgICAgICAgICBsYXN0X2V3ID0gbGVuKGZvbGRlZC5jdXJyZW50KSAtIDEKKyAgICAgICAgICAgICAgICBlbGlmIHBhcnQuY29tbWVudHMgb3IgcGFydC50b2tlbl90eXBlID09ICdxdW90ZWQtc3RyaW5nJzoKKyAgICAgICAgICAgICAgICAgICAgIyBJZiBhIGNvbW1lbnQgaXMgaW52b2x2ZWQgd2UgY2FuJ3QgY29tYmluZSBFV3MuICBBbmQgaWYgYQorICAgICAgICAgICAgICAgICAgICAjIHF1b3RlZCBzdHJpbmcgaXMgaW52b2x2ZWQsIGl0J3Mgbm90IHdvcnRoIHRoZSBlZmZvcnQgdG8KKyAgICAgICAgICAgICAgICAgICAgIyB0cnkgdG8gY29tYmluZSB0aGVtLgorICAgICAgICAgICAgICAgICAgICBsYXN0X2V3ID0gTm9uZQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBwYXJ0Ll9mb2xkKGZvbGRlZCkKKworICAgIGRlZiBjdGVfZW5jb2RlKHNlbGYsIGNoYXJzZXQsIHBvbGljeSk6CisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIGxhc3RfZXcgPSBOb25lCisgICAgICAgIGlzX2V3ID0gRmFsc2UKKyAgICAgICAgZm9yIHBhcnQgaW4gc2VsZjoKKyAgICAgICAgICAgIHNwYXJ0ID0gc3RyKHBhcnQpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc3BhcnQuZW5jb2RlKCd1cy1hc2NpaScpCisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZChzcGFydCkKKyAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CisgICAgICAgICAgICAgICAgaXNfZXcgPSBUcnVlCisgICAgICAgICAgICAgICAgaWYgbGFzdF9ldyBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgcGFydC5jb21tZW50czoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfZXcgPSBsZW4ocmVzKQorICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kKHBhcnQuY3RlX2VuY29kZShjaGFyc2V0LCBwb2xpY3kpKQorICAgICAgICAgICAgICAgIGVsaWYgbm90IHBhcnQuaGFzX2xlYWRpbmdfY29tbWVudCgpOgorICAgICAgICAgICAgICAgICAgICBpZiBwYXJ0Wy0xXS50b2tlbl90eXBlID09ICdjZndzJyBhbmQgcGFydC5jb21tZW50czoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmRlciA9IHBhcnQucG9wKC0xKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyID0gJycKKyAgICAgICAgICAgICAgICAgICAgZm9yIGksIHRva2VuIGluIGVudW1lcmF0ZShwYXJ0KToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRva2VuLnRva2VuX3R5cGUgPT0gJ2JhcmUtcXVvdGVkLXN0cmluZyc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydFtpXSA9IFVuc3RydWN0dXJlZFRva2VuTGlzdCh0b2tlbls6XSkKKyAgICAgICAgICAgICAgICAgICAgdGwgPSBnZXRfdW5zdHJ1Y3R1cmVkKCcnLmpvaW4ocmVzW2xhc3RfZXc6XSArIFtzcGFydF0pKQorICAgICAgICAgICAgICAgICAgICByZXNbbGFzdF9ldzpdID0gW3RsLmFzX2VuY29kZWRfd29yZChjaGFyc2V0KV0KKyAgICAgICAgICAgIGlmIHBhcnQuY29tbWVudHMgb3IgKG5vdCBpc19ldyBhbmQgcGFydC50b2tlbl90eXBlID09ICdxdW90ZWQtc3RyaW5nJyk6CisgICAgICAgICAgICAgICAgbGFzdF9ldyA9IE5vbmUKKyAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzKQorCitjbGFzcyBXb3JkKFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ3dvcmQnCisKKworY2xhc3MgQ0ZXU0xpc3QoV2hpdGVTcGFjZVRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ2Nmd3MnCisKKyAgICBkZWYgaGFzX2xlYWRpbmdfY29tbWVudChzZWxmKToKKyAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5jb21tZW50cykKKworCitjbGFzcyBBdG9tKFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ2F0b20nCisKKworY2xhc3MgVG9rZW4oVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAndG9rZW4nCisKKworY2xhc3MgRW5jb2RlZFdvcmQoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAnZW5jb2RlZC13b3JkJworICAgIGN0ZSA9IE5vbmUKKyAgICBjaGFyc2V0ID0gTm9uZQorICAgIGxhbmcgPSBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZW5jb2RlZChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5jdGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5jdGUKKyAgICAgICAgX2V3LmVuY29kZShzdHIoc2VsZiksIHNlbGYuY2hhcnNldCkKKworCisKK2NsYXNzIFF1b3RlZFN0cmluZyhUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdxdW90ZWQtc3RyaW5nJworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNvbnRlbnQoc2VsZik6CisgICAgICAgIGZvciB4IGluIHNlbGY6CisgICAgICAgICAgICBpZiB4LnRva2VuX3R5cGUgPT0gJ2JhcmUtcXVvdGVkLXN0cmluZyc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHgudmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBxdW90ZWRfdmFsdWUoc2VsZik6CisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIGZvciB4IGluIHNlbGY6CisgICAgICAgICAgICBpZiB4LnRva2VuX3R5cGUgPT0gJ2JhcmUtcXVvdGVkLXN0cmluZyc6CisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZChzdHIoeCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlcy5hcHBlbmQoeC52YWx1ZSkKKyAgICAgICAgcmV0dXJuICcnLmpvaW4ocmVzKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHN0cmlwcGVkX3ZhbHVlKHNlbGYpOgorICAgICAgICBmb3IgdG9rZW4gaW4gc2VsZjoKKyAgICAgICAgICAgIGlmIHRva2VuLnRva2VuX3R5cGUgPT0gJ2JhcmUtcXVvdGVkLXN0cmluZyc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHRva2VuLnZhbHVlCisKKworY2xhc3MgQmFyZVF1b3RlZFN0cmluZyhRdW90ZWRTdHJpbmcpOgorCisgICAgdG9rZW5fdHlwZSA9ICdiYXJlLXF1b3RlZC1zdHJpbmcnCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHF1b3RlX3N0cmluZygnJy5qb2luKHN0cih4KSBmb3IgeCBpbiBzZWxmKSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB2YWx1ZShzZWxmKToKKyAgICAgICAgcmV0dXJuICcnLmpvaW4oc3RyKHgpIGZvciB4IGluIHNlbGYpCisKKworY2xhc3MgQ29tbWVudChXaGl0ZVNwYWNlVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAnY29tbWVudCcKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJycuam9pbihzdW0oWworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiKCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxmLnF1b3RlKHgpIGZvciB4IGluIHNlbGZdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiKSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sIFtdKSkKKworICAgIGRlZiBxdW90ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIHZhbHVlLnRva2VuX3R5cGUgPT0gJ2NvbW1lbnQnOgorICAgICAgICAgICAgcmV0dXJuIHN0cih2YWx1ZSkKKyAgICAgICAgcmV0dXJuIHN0cih2YWx1ZSkucmVwbGFjZSgnXFwnLCAnXFxcXCcpLnJlcGxhY2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJygnLCAnXCgnKS5yZXBsYWNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcpJywgJ1wpJykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjb250ZW50KHNlbGYpOgorICAgICAgICByZXR1cm4gJycuam9pbihzdHIoeCkgZm9yIHggaW4gc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjb21tZW50cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLmNvbnRlbnRdCisKK2NsYXNzIEFkZHJlc3NMaXN0KFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ2FkZHJlc3MtbGlzdCcKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhZGRyZXNzZXMoc2VsZik6CisgICAgICAgIHJldHVybiBbeCBmb3IgeCBpbiBzZWxmIGlmIHgudG9rZW5fdHlwZT09J2FkZHJlc3MnXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1haWxib3hlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHN1bSgoeC5tYWlsYm94ZXMKKyAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gc2VsZiBpZiB4LnRva2VuX3R5cGU9PSdhZGRyZXNzJyksIFtdKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFsbF9tYWlsYm94ZXMoc2VsZik6CisgICAgICAgIHJldHVybiBzdW0oKHguYWxsX21haWxib3hlcworICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBzZWxmIGlmIHgudG9rZW5fdHlwZT09J2FkZHJlc3MnKSwgW10pCisKKworY2xhc3MgQWRkcmVzcyhUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdhZGRyZXNzJworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToKKyAgICAgICAgaWYgc2VsZlswXS50b2tlbl90eXBlID09ICdncm91cCc6CisgICAgICAgICAgICByZXR1cm4gc2VsZlswXS5kaXNwbGF5X25hbWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtYWlsYm94ZXMoc2VsZik6CisgICAgICAgIGlmIHNlbGZbMF0udG9rZW5fdHlwZSA9PSAnbWFpbGJveCc6CisgICAgICAgICAgICByZXR1cm4gW3NlbGZbMF1dCisgICAgICAgIGVsaWYgc2VsZlswXS50b2tlbl90eXBlID09ICdpbnZhbGlkLW1haWxib3gnOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIHJldHVybiBzZWxmWzBdLm1haWxib3hlcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFsbF9tYWlsYm94ZXMoc2VsZik6CisgICAgICAgIGlmIHNlbGZbMF0udG9rZW5fdHlwZSA9PSAnbWFpbGJveCc6CisgICAgICAgICAgICByZXR1cm4gW3NlbGZbMF1dCisgICAgICAgIGVsaWYgc2VsZlswXS50b2tlbl90eXBlID09ICdpbnZhbGlkLW1haWxib3gnOgorICAgICAgICAgICAgcmV0dXJuIFtzZWxmWzBdXQorICAgICAgICByZXR1cm4gc2VsZlswXS5hbGxfbWFpbGJveGVzCisKK2NsYXNzIE1haWxib3hMaXN0KFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ21haWxib3gtbGlzdCcKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtYWlsYm94ZXMoc2VsZik6CisgICAgICAgIHJldHVybiBbeCBmb3IgeCBpbiBzZWxmIGlmIHgudG9rZW5fdHlwZT09J21haWxib3gnXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFsbF9tYWlsYm94ZXMoc2VsZik6CisgICAgICAgIHJldHVybiBbeCBmb3IgeCBpbiBzZWxmCisgICAgICAgICAgICBpZiB4LnRva2VuX3R5cGUgaW4gKCdtYWlsYm94JywgJ2ludmFsaWQtbWFpbGJveCcpXQorCisKK2NsYXNzIEdyb3VwTGlzdChUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdncm91cC1saXN0JworCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1haWxib3hlcyhzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYgb3Igc2VsZlswXS50b2tlbl90eXBlICE9ICdtYWlsYm94LWxpc3QnOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIHJldHVybiBzZWxmWzBdLm1haWxib3hlcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFsbF9tYWlsYm94ZXMoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmIG9yIHNlbGZbMF0udG9rZW5fdHlwZSAhPSAnbWFpbGJveC1saXN0JzoKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICByZXR1cm4gc2VsZlswXS5hbGxfbWFpbGJveGVzCisKKworY2xhc3MgR3JvdXAoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAiZ3JvdXAiCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbWFpbGJveGVzKHNlbGYpOgorICAgICAgICBpZiBzZWxmWzJdLnRva2VuX3R5cGUgIT0gJ2dyb3VwLWxpc3QnOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIHJldHVybiBzZWxmWzJdLm1haWxib3hlcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFsbF9tYWlsYm94ZXMoc2VsZik6CisgICAgICAgIGlmIHNlbGZbMl0udG9rZW5fdHlwZSAhPSAnZ3JvdXAtbGlzdCc6CisgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgcmV0dXJuIHNlbGZbMl0uYWxsX21haWxib3hlcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGZbMF0uZGlzcGxheV9uYW1lCisKKworY2xhc3MgTmFtZUFkZHIoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAnbmFtZS1hZGRyJworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToKKyAgICAgICAgaWYgbGVuKHNlbGYpID09IDE6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gc2VsZlswXS5kaXNwbGF5X25hbWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsb2NhbF9wYXJ0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZlstMV0ubG9jYWxfcGFydAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRvbWFpbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGZbLTFdLmRvbWFpbgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJvdXRlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZlstMV0ucm91dGUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhZGRyX3NwZWMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmWy0xXS5hZGRyX3NwZWMKKworCitjbGFzcyBBbmdsZUFkZHIoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAnYW5nbGUtYWRkcicKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsb2NhbF9wYXJ0KHNlbGYpOgorICAgICAgICBmb3IgeCBpbiBzZWxmOgorICAgICAgICAgICAgaWYgeC50b2tlbl90eXBlID09ICdhZGRyLXNwZWMnOgorICAgICAgICAgICAgICAgIHJldHVybiB4LmxvY2FsX3BhcnQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkb21haW4oc2VsZik6CisgICAgICAgIGZvciB4IGluIHNlbGY6CisgICAgICAgICAgICBpZiB4LnRva2VuX3R5cGUgPT0gJ2FkZHItc3BlYyc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHguZG9tYWluCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcm91dGUoc2VsZik6CisgICAgICAgIGZvciB4IGluIHNlbGY6CisgICAgICAgICAgICBpZiB4LnRva2VuX3R5cGUgPT0gJ29icy1yb3V0ZSc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHguZG9tYWlucworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFkZHJfc3BlYyhzZWxmKToKKyAgICAgICAgZm9yIHggaW4gc2VsZjoKKyAgICAgICAgICAgIGlmIHgudG9rZW5fdHlwZSA9PSAnYWRkci1zcGVjJzoKKyAgICAgICAgICAgICAgICByZXR1cm4geC5hZGRyX3NwZWMKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAnPD4nCisKKworY2xhc3MgT2JzUm91dGUoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAnb2JzLXJvdXRlJworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRvbWFpbnMoc2VsZik6CisgICAgICAgIHJldHVybiBbeC5kb21haW4gZm9yIHggaW4gc2VsZiBpZiB4LnRva2VuX3R5cGUgPT0gJ2RvbWFpbiddCisKKworY2xhc3MgTWFpbGJveChUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdtYWlsYm94JworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToKKyAgICAgICAgaWYgc2VsZlswXS50b2tlbl90eXBlID09ICduYW1lLWFkZHInOgorICAgICAgICAgICAgcmV0dXJuIHNlbGZbMF0uZGlzcGxheV9uYW1lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbG9jYWxfcGFydChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGZbMF0ubG9jYWxfcGFydAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRvbWFpbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGZbMF0uZG9tYWluCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcm91dGUoc2VsZik6CisgICAgICAgIGlmIHNlbGZbMF0udG9rZW5fdHlwZSA9PSAnbmFtZS1hZGRyJzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmWzBdLnJvdXRlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYWRkcl9zcGVjKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZlswXS5hZGRyX3NwZWMKKworCitjbGFzcyBJbnZhbGlkTWFpbGJveChUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdpbnZhbGlkLW1haWxib3gnCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZGlzcGxheV9uYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgbG9jYWxfcGFydCA9IGRvbWFpbiA9IHJvdXRlID0gYWRkcl9zcGVjID0gZGlzcGxheV9uYW1lCisKKworY2xhc3MgRG9tYWluKFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ2RvbWFpbicKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkb21haW4oc2VsZik6CisgICAgICAgIHJldHVybiAnJy5qb2luKHN1cGVyKCkudmFsdWUuc3BsaXQoKSkKKworCitjbGFzcyBEb3RBdG9tKFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ2RvdC1hdG9tJworCisKK2NsYXNzIERvdEF0b21UZXh0KFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ2RvdC1hdG9tLXRleHQnCisKKworY2xhc3MgQWRkclNwZWMoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAnYWRkci1zcGVjJworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxvY2FsX3BhcnQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmWzBdLmxvY2FsX3BhcnQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkb21haW4oc2VsZik6CisgICAgICAgIGlmIGxlbihzZWxmKSA8IDM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gc2VsZlstMV0uZG9tYWluCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmFsdWUoc2VsZik6CisgICAgICAgIGlmIGxlbihzZWxmKSA8IDM6CisgICAgICAgICAgICByZXR1cm4gc2VsZlswXS52YWx1ZQorICAgICAgICByZXR1cm4gc2VsZlswXS52YWx1ZS5yc3RyaXAoKStzZWxmWzFdLnZhbHVlK3NlbGZbMl0udmFsdWUubHN0cmlwKCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhZGRyX3NwZWMoc2VsZik6CisgICAgICAgIG5hbWVzZXQgPSBzZXQoc2VsZi5sb2NhbF9wYXJ0KQorICAgICAgICBpZiBsZW4obmFtZXNldCkgPiBsZW4obmFtZXNldC1ET1RfQVRPTV9FTkRTKToKKyAgICAgICAgICAgIGxwID0gcXVvdGVfc3RyaW5nKHNlbGYubG9jYWxfcGFydCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxwID0gc2VsZi5sb2NhbF9wYXJ0CisgICAgICAgIGlmIHNlbGYuZG9tYWluIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmV0dXJuIGxwICsgJ0AnICsgc2VsZi5kb21haW4KKyAgICAgICAgcmV0dXJuIGxwCisKKworY2xhc3MgT2JzTG9jYWxQYXJ0KFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ29icy1sb2NhbC1wYXJ0JworCisKK2NsYXNzIERpc3BsYXlOYW1lKFBocmFzZSk6CisKKyAgICB0b2tlbl90eXBlID0gJ2Rpc3BsYXktbmFtZScKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkaXNwbGF5X25hbWUoc2VsZik6CisgICAgICAgIHJlcyA9IFRva2VuTGlzdChzZWxmKQorICAgICAgICBpZiByZXNbMF0udG9rZW5fdHlwZSA9PSAnY2Z3cyc6CisgICAgICAgICAgICByZXMucG9wKDApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiByZXNbMF1bMF0udG9rZW5fdHlwZSA9PSAnY2Z3cyc6CisgICAgICAgICAgICAgICAgcmVzWzBdID0gVG9rZW5MaXN0KHJlc1swXVsxOl0pCisgICAgICAgIGlmIHJlc1stMV0udG9rZW5fdHlwZSA9PSAnY2Z3cyc6CisgICAgICAgICAgICByZXMucG9wKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHJlc1stMV1bLTFdLnRva2VuX3R5cGUgPT0gJ2Nmd3MnOgorICAgICAgICAgICAgICAgIHJlc1stMV0gPSBUb2tlbkxpc3QocmVzWy0xXVs6LTFdKQorICAgICAgICByZXR1cm4gcmVzLnZhbHVlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmFsdWUoc2VsZik6CisgICAgICAgIHF1b3RlID0gRmFsc2UKKyAgICAgICAgaWYgc2VsZi5kZWZlY3RzOgorICAgICAgICAgICAgcXVvdGUgPSBUcnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmb3IgeCBpbiBzZWxmOgorICAgICAgICAgICAgICAgIGlmIHgudG9rZW5fdHlwZSA9PSAncXVvdGVkLXN0cmluZyc6CisgICAgICAgICAgICAgICAgICAgIHF1b3RlID0gVHJ1ZQorICAgICAgICBpZiBxdW90ZToKKyAgICAgICAgICAgIHByZSA9IHBvc3QgPSAnJworICAgICAgICAgICAgaWYgc2VsZlswXS50b2tlbl90eXBlPT0nY2Z3cycgb3Igc2VsZlswXVswXS50b2tlbl90eXBlPT0nY2Z3cyc6CisgICAgICAgICAgICAgICAgcHJlID0gJyAnCisgICAgICAgICAgICBpZiBzZWxmWy0xXS50b2tlbl90eXBlPT0nY2Z3cycgb3Igc2VsZlstMV1bLTFdLnRva2VuX3R5cGU9PSdjZndzJzoKKyAgICAgICAgICAgICAgICBwb3N0ID0gJyAnCisgICAgICAgICAgICByZXR1cm4gcHJlK3F1b3RlX3N0cmluZyhzZWxmLmRpc3BsYXlfbmFtZSkrcG9zdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkudmFsdWUKKworCitjbGFzcyBMb2NhbFBhcnQoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAnbG9jYWwtcGFydCcKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB2YWx1ZShzZWxmKToKKyAgICAgICAgaWYgc2VsZlswXS50b2tlbl90eXBlID09ICJxdW90ZWQtc3RyaW5nIjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmWzBdLnF1b3RlZF92YWx1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGZbMF0udmFsdWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsb2NhbF9wYXJ0KHNlbGYpOgorICAgICAgICAjIFN0cmlwIHdoaXRlc3BhY2UgZnJvbSBmcm9udCwgYmFjaywgYW5kIGFyb3VuZCBkb3RzLgorICAgICAgICByZXMgPSBbRE9UXQorICAgICAgICBsYXN0ID0gRE9UCisgICAgICAgIGxhc3RfaXNfdGwgPSBGYWxzZQorICAgICAgICBmb3IgdG9rIGluIHNlbGZbMF0gKyBbRE9UXToKKyAgICAgICAgICAgIGlmIHRvay50b2tlbl90eXBlID09ICdjZndzJzoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgKGxhc3RfaXNfdGwgYW5kIHRvay50b2tlbl90eXBlID09ICdkb3QnIGFuZAorICAgICAgICAgICAgICAgICAgICBsYXN0Wy0xXS50b2tlbl90eXBlID09ICdjZndzJyk6CisgICAgICAgICAgICAgICAgcmVzWy0xXSA9IFRva2VuTGlzdChsYXN0WzotMV0pCisgICAgICAgICAgICBpc190bCA9IGlzaW5zdGFuY2UodG9rLCBUb2tlbkxpc3QpCisgICAgICAgICAgICBpZiAoaXNfdGwgYW5kIGxhc3QudG9rZW5fdHlwZSA9PSAnZG90JyBhbmQKKyAgICAgICAgICAgICAgICAgICAgdG9rWzBdLnRva2VuX3R5cGUgPT0gJ2Nmd3MnKToKKyAgICAgICAgICAgICAgICByZXMuYXBwZW5kKFRva2VuTGlzdCh0b2tbMTpdKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZCh0b2spCisgICAgICAgICAgICBsYXN0ID0gcmVzWy0xXQorICAgICAgICAgICAgbGFzdF9pc190bCA9IGlzX3RsCisgICAgICAgIHJlcyA9IFRva2VuTGlzdChyZXNbMTotMV0pCisgICAgICAgIHJldHVybiByZXMudmFsdWUKKworCitjbGFzcyBEb21haW5MaXRlcmFsKFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ2RvbWFpbi1saXRlcmFsJworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRvbWFpbihzZWxmKToKKyAgICAgICAgcmV0dXJuICcnLmpvaW4oc3VwZXIoKS52YWx1ZS5zcGxpdCgpKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlwKHNlbGYpOgorICAgICAgICBmb3IgeCBpbiBzZWxmOgorICAgICAgICAgICAgaWYgeC50b2tlbl90eXBlID09ICdwdGV4dCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHgudmFsdWUKKworCitjbGFzcyBNSU1FVmVyc2lvbihUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdtaW1lLXZlcnNpb24nCisgICAgbWFqb3IgPSBOb25lCisgICAgbWlub3IgPSBOb25lCisKKworY2xhc3MgUGFyYW1ldGVyKFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ3BhcmFtZXRlcicKKyAgICBzZWN0aW9uZWQgPSBGYWxzZQorICAgIGV4dGVuZGVkID0gRmFsc2UKKyAgICBjaGFyc2V0ID0gJ3VzLWFzY2lpJworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNlY3Rpb25fbnVtYmVyKHNlbGYpOgorICAgICAgICAjIEJlY2F1c2UgdGhlIGZpcnN0IHRva2VuLCB0aGUgYXR0cmlidXRlIChuYW1lKSBlYXRzIENGV1MsIHRoZSBzZWNvbmQKKyAgICAgICAgIyB0b2tlbiBpcyBhbHdheXMgdGhlIHNlY3Rpb24gaWYgdGhlcmUgaXMgb25lLgorICAgICAgICByZXR1cm4gc2VsZlsxXS5udW1iZXIgaWYgc2VsZi5zZWN0aW9uZWQgZWxzZSAwCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGFyYW1fdmFsdWUoc2VsZik6CisgICAgICAgICMgVGhpcyBpcyBwYXJ0IG9mIHRoZSAiaGFuZGxlIHF1b3RlZCBleHRlbmRlZCBwYXJhbWV0ZXJzIiBoYWNrLgorICAgICAgICBmb3IgdG9rZW4gaW4gc2VsZjoKKyAgICAgICAgICAgIGlmIHRva2VuLnRva2VuX3R5cGUgPT0gJ3ZhbHVlJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4uc3RyaXBwZWRfdmFsdWUKKyAgICAgICAgICAgIGlmIHRva2VuLnRva2VuX3R5cGUgPT0gJ3F1b3RlZC1zdHJpbmcnOgorICAgICAgICAgICAgICAgIGZvciB0b2tlbiBpbiB0b2tlbjoKKyAgICAgICAgICAgICAgICAgICAgaWYgdG9rZW4udG9rZW5fdHlwZSA9PSAnYmFyZS1xdW90ZWQtc3RyaW5nJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciB0b2tlbiBpbiB0b2tlbjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0b2tlbi50b2tlbl90eXBlID09ICd2YWx1ZSc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b2tlbi5zdHJpcHBlZF92YWx1ZQorICAgICAgICByZXR1cm4gJycKKworCitjbGFzcyBJbnZhbGlkUGFyYW1ldGVyKFBhcmFtZXRlcik6CisKKyAgICB0b2tlbl90eXBlID0gJ2ludmFsaWQtcGFyYW1ldGVyJworCisKK2NsYXNzIEF0dHJpYnV0ZShUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdhdHRyaWJ1dGUnCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc3RyaXBwZWRfdmFsdWUoc2VsZik6CisgICAgICAgIGZvciB0b2tlbiBpbiBzZWxmOgorICAgICAgICAgICAgaWYgdG9rZW4udG9rZW5fdHlwZS5lbmRzd2l0aCgnYXR0cnRleHQnKToKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4udmFsdWUKKworY2xhc3MgU2VjdGlvbihUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdzZWN0aW9uJworICAgIG51bWJlciA9IE5vbmUKKworCitjbGFzcyBWYWx1ZShUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICd2YWx1ZScKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzdHJpcHBlZF92YWx1ZShzZWxmKToKKyAgICAgICAgdG9rZW4gPSBzZWxmWzBdCisgICAgICAgIGlmIHRva2VuLnRva2VuX3R5cGUgPT0gJ2Nmd3MnOgorICAgICAgICAgICAgdG9rZW4gPSBzZWxmWzFdCisgICAgICAgIGlmIHRva2VuLnRva2VuX3R5cGUuZW5kc3dpdGgoCisgICAgICAgICAgICAgICAgKCdxdW90ZWQtc3RyaW5nJywgJ2F0dHJpYnV0ZScsICdleHRlbmRlZC1hdHRyaWJ1dGUnKSk6CisgICAgICAgICAgICByZXR1cm4gdG9rZW4uc3RyaXBwZWRfdmFsdWUKKyAgICAgICAgcmV0dXJuIHNlbGYudmFsdWUKKworCitjbGFzcyBNaW1lUGFyYW1ldGVycyhUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdtaW1lLXBhcmFtZXRlcnMnCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGFyYW1zKHNlbGYpOgorICAgICAgICAjIFRoZSBSRkMgc3BlY2lmaWNhbGx5IHN0YXRlcyB0aGF0IHRoZSBvcmRlcmluZyBvZiBwYXJhbWV0ZXJzIGlzIG5vdAorICAgICAgICAjIGd1YXJhbnRlZWQgYW5kIG1heSBiZSByZW9yZGVyZWQgYnkgdGhlIHRyYW5zcG9ydCBsYXllci4gIFNvIHdlIGhhdmUKKyAgICAgICAgIyB0byBhc3N1bWUgdGhlIFJGQyAyMjMxIHBpZWNlcyBjYW4gY29tZSBpbiBhbnkgb3JkZXIuICBIb3dldmVyLCB3ZQorICAgICAgICAjIG91dHB1dCB0aGVtIGluIHRoZSBvcmRlciB0aGF0IHdlIGZpcnN0IHNlZSBhIGdpdmVuIG5hbWUsIHdoaWNoIGdpdmVzCisgICAgICAgICMgdXMgYSBzdGFibGUgX19zdHJfXy4KKyAgICAgICAgcGFyYW1zID0gT3JkZXJlZERpY3QoKQorICAgICAgICBmb3IgdG9rZW4gaW4gc2VsZjoKKyAgICAgICAgICAgIGlmIG5vdCB0b2tlbi50b2tlbl90eXBlLmVuZHN3aXRoKCdwYXJhbWV0ZXInKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgdG9rZW5bMF0udG9rZW5fdHlwZSAhPSAnYXR0cmlidXRlJzoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgbmFtZSA9IHRva2VuWzBdLnZhbHVlLnN0cmlwKCkKKyAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIHBhcmFtczoKKyAgICAgICAgICAgICAgICBwYXJhbXNbbmFtZV0gPSBbXQorICAgICAgICAgICAgcGFyYW1zW25hbWVdLmFwcGVuZCgodG9rZW4uc2VjdGlvbl9udW1iZXIsIHRva2VuKSkKKyAgICAgICAgZm9yIG5hbWUsIHBhcnRzIGluIHBhcmFtcy5pdGVtcygpOgorICAgICAgICAgICAgcGFydHMgPSBzb3J0ZWQocGFydHMpCisgICAgICAgICAgICAjIFhYWDogdGhlcmUgbWlnaHQgYmUgbW9yZSByZWNvdmVyeSB3ZSBjb3VsZCBkbyBoZXJlIGlmLCBmb3IKKyAgICAgICAgICAgICMgZXhhbXBsZSwgdGhpcyBpcyByZWFsbHkgYSBjYXNlIG9mIGEgZHVwbGljYXRlIGF0dHJpYnV0ZSBuYW1lLgorICAgICAgICAgICAgdmFsdWVfcGFydHMgPSBbXQorICAgICAgICAgICAgY2hhcnNldCA9IHBhcnRzWzBdWzFdLmNoYXJzZXQKKyAgICAgICAgICAgIGZvciBpLCAoc2VjdGlvbl9udW1iZXIsIHBhcmFtKSBpbiBlbnVtZXJhdGUocGFydHMpOgorICAgICAgICAgICAgICAgIGlmIHNlY3Rpb25fbnVtYmVyICE9IGk6CisgICAgICAgICAgICAgICAgICAgIHBhcmFtLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgImluY29uc2lzdGVudCBtdWx0aXBhcnQgcGFyYW1ldGVyIG51bWJlcmluZyIpKQorICAgICAgICAgICAgICAgIHZhbHVlID0gcGFyYW0ucGFyYW1fdmFsdWUKKyAgICAgICAgICAgICAgICBpZiBwYXJhbS5leHRlbmRlZDoKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB1cmxsaWIucGFyc2UudW5xdW90ZV90b19ieXRlcyh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgc291cmNlIGhhZCBzdXJyb2dhdGUgZXNjYXBlZCBieXRlcy4gIFdoYXQgd2UgZG8gbm93CisgICAgICAgICAgICAgICAgICAgICAgICAjIGlzIGEgYml0IG9mIGFuIG9wZW4gcXVlc3Rpb24uICBJJ20gbm90IHN1cmUgdGhpcyBpcworICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUgYmVzdCBjaG9pY2UsIGJ1dCBpdCBpcyB3aGF0IHRoZSBvbGQgYWxnb3JpdGhtIGRpZAorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB1cmxsaWIucGFyc2UudW5xdW90ZSh2YWx1ZSwgZW5jb2Rpbmc9J2xhdGluLTEnKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZGVjb2RlKGNoYXJzZXQsICdzdXJyb2dhdGVlc2NhcGUnKQorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IExvb2t1cEVycm9yOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYOiB0aGVyZSBzaG91bGQgcmVhbGx5IGJlIGEgY3VzdG9tIGRlZmVjdCBmb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHVua25vd24gY2hhcmFjdGVyIHNldCB0byBtYWtlIGl0IGVhc3kgdG8gZmluZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJlY2F1c2Ugb3RoZXJ3aXNlIHVua25vd24gY2hhcnNldCBpcyBhIHNpbGVudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZmFpbHVyZS4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmRlY29kZSgndXMtYXNjaWknLCAnc3Vycm9nYXRlZXNjYXBlJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHV0aWxzLl9oYXNfc3Vycm9nYXRlcyh2YWx1ZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW0uZGVmZWN0cy5hcHBlbmQoZXJyb3JzLlVuZGVjb2RhYmxlQnl0ZXNEZWZlY3QoKSkKKyAgICAgICAgICAgICAgICB2YWx1ZV9wYXJ0cy5hcHBlbmQodmFsdWUpCisgICAgICAgICAgICB2YWx1ZSA9ICcnLmpvaW4odmFsdWVfcGFydHMpCisgICAgICAgICAgICB5aWVsZCBuYW1lLCB2YWx1ZQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHBhcmFtcyA9IFtdCisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLnBhcmFtczoKKyAgICAgICAgICAgIGlmIHZhbHVlOgorICAgICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQoJ3t9PXt9Jy5mb3JtYXQobmFtZSwgcXVvdGVfc3RyaW5nKHZhbHVlKSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBhcmFtcy5hcHBlbmQobmFtZSkKKyAgICAgICAgcGFyYW1zID0gJzsgJy5qb2luKHBhcmFtcykKKyAgICAgICAgcmV0dXJuICcgJyArIHBhcmFtcyBpZiBwYXJhbXMgZWxzZSAnJworCisKK2NsYXNzIFBhcmFtZXRlcml6ZWRIZWFkZXJWYWx1ZShUb2tlbkxpc3QpOgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBhcmFtcyhzZWxmKToKKyAgICAgICAgZm9yIHRva2VuIGluIHJldmVyc2VkKHNlbGYpOgorICAgICAgICAgICAgaWYgdG9rZW4udG9rZW5fdHlwZSA9PSAnbWltZS1wYXJhbWV0ZXJzJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gdG9rZW4ucGFyYW1zCisgICAgICAgIHJldHVybiB7fQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBhcnRzKHNlbGYpOgorICAgICAgICBpZiBzZWxmIGFuZCBzZWxmWy0xXS50b2tlbl90eXBlID09ICdtaW1lLXBhcmFtZXRlcnMnOgorICAgICAgICAgICAgIyBXZSBkb24ndCB3YW50IHRvIHN0YXJ0IGEgbmV3IGxpbmUgaWYgYWxsIG9mIHRoZSBwYXJhbXMgZG9uJ3QgZml0CisgICAgICAgICAgICAjIGFmdGVyIHRoZSB2YWx1ZSwgc28gdW53cmFwIHRoZSBwYXJhbWV0ZXIgbGlzdC4KKyAgICAgICAgICAgIHJldHVybiBUb2tlbkxpc3Qoc2VsZls6LTFdICsgc2VsZlstMV0pCisgICAgICAgIHJldHVybiBUb2tlbkxpc3Qoc2VsZikucGFydHMKKworCitjbGFzcyBDb250ZW50VHlwZShQYXJhbWV0ZXJpemVkSGVhZGVyVmFsdWUpOgorCisgICAgdG9rZW5fdHlwZSA9ICdjb250ZW50LXR5cGUnCisgICAgbWFpbnR5cGUgPSAndGV4dCcKKyAgICBzdWJ0eXBlID0gJ3BsYWluJworCisKK2NsYXNzIENvbnRlbnREaXNwb3NpdGlvbihQYXJhbWV0ZXJpemVkSGVhZGVyVmFsdWUpOgorCisgICAgdG9rZW5fdHlwZSA9ICdjb250ZW50LWRpc3Bvc2l0aW9uJworICAgIGNvbnRlbnRfZGlzcG9zaXRpb24gPSBOb25lCisKKworY2xhc3MgQ29udGVudFRyYW5zZmVyRW5jb2RpbmcoVG9rZW5MaXN0KToKKworICAgIHRva2VuX3R5cGUgPSAnY29udGVudC10cmFuc2Zlci1lbmNvZGluZycKKyAgICBjdGUgPSAnN2JpdCcKKworCitjbGFzcyBIZWFkZXJMYWJlbChUb2tlbkxpc3QpOgorCisgICAgdG9rZW5fdHlwZSA9ICdoZWFkZXItbGFiZWwnCisKKworY2xhc3MgSGVhZGVyKFRva2VuTGlzdCk6CisKKyAgICB0b2tlbl90eXBlID0gJ2hlYWRlcicKKworICAgIGRlZiBfZm9sZChzZWxmLCBmb2xkZWQpOgorICAgICAgICBmb2xkZWQuYXBwZW5kKHN0cihzZWxmLnBvcCgwKSkpCisgICAgICAgIGZvbGRlZC5sYXN0bGVuID0gbGVuKGZvbGRlZC5jdXJyZW50WzBdKQorICAgICAgICAjIFRoZSBmaXJzdCBsaW5lIG9mIHRoZSBoZWFkZXIgaXMgZGlmZmVyZW50IGZyb20gYWxsIG90aGVyczogd2UgZG9uJ3QKKyAgICAgICAgIyB3YW50IHRvIHN0YXJ0IGEgbmV3IG9iamVjdCBvbiBhIG5ldyBsaW5lIGlmIGl0IGhhcyBhbnkgZm9sZCBwb2ludHMgaW4KKyAgICAgICAgIyBpdCB0aGF0IHdvdWxkIGFsbG93IHBhcnQgb2YgaXQgdG8gYmUgb24gdGhlIGZpcnN0IGhlYWRlciBsaW5lLgorICAgICAgICAjIEZ1cnRoZXIsIGlmIHRoZSBmaXJzdCBmb2xkIHBvaW50IHdvdWxkIGZpdCBvbiB0aGUgbmV3IGxpbmUsIHdlIHdhbnQKKyAgICAgICAgIyB0byBkbyB0aGF0LCBidXQgaWYgaXQgZG9lc24ndCB3ZSB3YW50IHRvIHB1dCBpdCBvbiB0aGUgZmlyc3QgbGluZS4KKyAgICAgICAgIyBGb2xkZWQgc3VwcG9ydHMgdGhpcyB2aWEgdGhlIHN0aWNreXNwYWNlIGF0dHJpYnV0ZS4gIElmIHRoaXMKKyAgICAgICAgIyBhdHRyaWJ1dGUgaXMgbm90IE5vbmUsIGl0IGRvZXMgdGhlIHNwZWNpYWwgaGFuZGxpbmcuCisgICAgICAgIGZvbGRlZC5zdGlja3lzcGFjZSA9IHN0cihzZWxmLnBvcCgwKSkgaWYgc2VsZlswXS50b2tlbl90eXBlID09ICdjZndzJyBlbHNlICcnCisgICAgICAgIHJlc3QgPSBzZWxmLnBvcCgwKQorICAgICAgICBpZiBzZWxmOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTWFsZm9ybWVkIEhlYWRlciB0b2tlbiBsaXN0IikKKyAgICAgICAgcmVzdC5fZm9sZChmb2xkZWQpCisKKworIworIyBUZXJtaW5hbCBjbGFzc2VzIGFuZCBpbnN0YW5jZXMKKyMKKworY2xhc3MgVGVybWluYWwoc3RyKToKKworICAgIGRlZiBfX25ld19fKGNscywgdmFsdWUsIHRva2VuX3R5cGUpOgorICAgICAgICBzZWxmID0gc3VwZXIoKS5fX25ld19fKGNscywgdmFsdWUpCisgICAgICAgIHNlbGYudG9rZW5fdHlwZSA9IHRva2VuX3R5cGUKKyAgICAgICAgc2VsZi5kZWZlY3RzID0gW10KKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICJ7fSh7fSkiLmZvcm1hdChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc3VwZXIoKS5fX3JlcHJfXygpKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFsbF9kZWZlY3RzKHNlbGYpOgorICAgICAgICByZXR1cm4gbGlzdChzZWxmLmRlZmVjdHMpCisKKyAgICBkZWYgX3BwKHNlbGYsIGluZGVudD0nJyk6CisgICAgICAgIHJldHVybiBbInt9e30ve30oe30pe30iLmZvcm1hdCgKKyAgICAgICAgICAgIGluZGVudCwKKyAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgc2VsZi50b2tlbl90eXBlLAorICAgICAgICAgICAgc3VwZXIoKS5fX3JlcHJfXygpLAorICAgICAgICAgICAgJycgaWYgbm90IHNlbGYuZGVmZWN0cyBlbHNlICcge30nLmZvcm1hdChzZWxmLmRlZmVjdHMpLAorICAgICAgICAgICAgKV0KKworICAgIGRlZiBjdGVfZW5jb2RlKHNlbGYsIGNoYXJzZXQsIHBvbGljeSk6CisgICAgICAgIHZhbHVlID0gc3RyKHNlbGYpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZhbHVlLmVuY29kZSgndXMtYXNjaWknKQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gX2V3LmVuY29kZSh2YWx1ZSwgY2hhcnNldCkKKworICAgIGRlZiBwb3BfdHJhaWxpbmdfd3Moc2VsZik6CisgICAgICAgICMgVGhpcyB0ZXJtaW5hdGVzIHRoZSByZWN1cnNpb24uCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgcG9wX2xlYWRpbmdfZndzKHNlbGYpOgorICAgICAgICAjIFRoaXMgdGVybWluYXRlcyB0aGUgcmVjdXJzaW9uLgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNvbW1lbnRzKHNlbGYpOgorICAgICAgICByZXR1cm4gW10KKworICAgIGRlZiBoYXNfbGVhZGluZ19jb21tZW50KHNlbGYpOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfX2dldG5ld2FyZ3NfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuKHN0cihzZWxmKSwgc2VsZi50b2tlbl90eXBlKQorCisKK2NsYXNzIFdoaXRlU3BhY2VUZXJtaW5hbChUZXJtaW5hbCk6CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmFsdWUoc2VsZik6CisgICAgICAgIHJldHVybiAnICcKKworICAgIGRlZiBzdGFydHN3aXRoX2Z3cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGhhc19md3MgPSBUcnVlCisKKworY2xhc3MgVmFsdWVUZXJtaW5hbChUZXJtaW5hbCk6CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmFsdWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgc3RhcnRzd2l0aF9md3Moc2VsZik6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgaGFzX2Z3cyA9IEZhbHNlCisKKyAgICBkZWYgYXNfZW5jb2RlZF93b3JkKHNlbGYsIGNoYXJzZXQpOgorICAgICAgICByZXR1cm4gX2V3LmVuY29kZShzdHIoc2VsZiksIGNoYXJzZXQpCisKKworY2xhc3MgRVdXaGl0ZVNwYWNlVGVybWluYWwoV2hpdGVTcGFjZVRlcm1pbmFsKToKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB2YWx1ZShzZWxmKToKKyAgICAgICAgcmV0dXJuICcnCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZW5jb2RlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGZbOl0KKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJycKKworICAgIGhhc19md3MgPSBUcnVlCisKKworIyBYWFggdGhlc2UgbmVlZCB0byBiZWNvbWUgY2xhc3NlcyBhbmQgdXNlZCBhcyBpbnN0YW5jZXMgc28KKyMgdGhhdCBhIHByb2dyYW0gY2FuJ3QgY2hhbmdlIHRoZW0gaW4gYSBwYXJzZSB0cmVlIGFuZCBzY3JldworIyB1cCBvdGhlciBwYXJzZSB0cmVlcy4gIE1heWJlIHNob3VsZCBoYXZlICB0ZXN0cyBmb3IgdGhhdCwgdG9vLgorRE9UID0gVmFsdWVUZXJtaW5hbCgnLicsICdkb3QnKQorTGlzdFNlcGFyYXRvciA9IFZhbHVlVGVybWluYWwoJywnLCAnbGlzdC1zZXBhcmF0b3InKQorUm91dGVDb21wb25lbnRNYXJrZXIgPSBWYWx1ZVRlcm1pbmFsKCdAJywgJ3JvdXRlLWNvbXBvbmVudC1tYXJrZXInKQorCisjCisjIFBhcnNlcgorIworCisiIiJQYXJzZSBzdHJpbmdzIGFjY29yZGluZyB0byBSRkM4MjIvMjA0Ny8yODIyLzUzMjIgcnVsZXMuCisKK1RoaXMgaXMgYSBzdGF0ZWxlc3MgcGFyc2VyLiAgRWFjaCBnZXRfWFhYIGZ1bmN0aW9uIGFjY2VwdHMgYSBzdHJpbmcgYW5kCityZXR1cm5zIGVpdGhlciBhIFRlcm1pbmFsIG9yIGEgVG9rZW5MaXN0IHJlcHJlc2VudGluZyB0aGUgUkZDIG9iamVjdCBuYW1lZAorYnkgdGhlIG1ldGhvZCBhbmQgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgcmVtYWluaW5nIHVucGFyc2VkIGNoYXJhY3RlcnMKK2Zyb20gdGhlIGlucHV0LiAgVGh1cyBhIHBhcnNlciBtZXRob2QgY29uc3VtZXMgdGhlIG5leHQgc3ludGFjdGljIGNvbnN0cnVjdAorb2YgYSBnaXZlbiB0eXBlIGFuZCByZXR1cm5zIGEgdG9rZW4gcmVwcmVzZW50aW5nIHRoZSBjb25zdHJ1Y3QgcGx1cyB0aGUKK3VucGFyc2VkIHJlbWFpbmRlciBvZiB0aGUgaW5wdXQgc3RyaW5nLgorCitGb3IgZXhhbXBsZSwgaWYgdGhlIGZpcnN0IGVsZW1lbnQgb2YgYSBzdHJ1Y3R1cmVkIGhlYWRlciBpcyBhICdwaHJhc2UnLAordGhlbjoKKworICAgIHBocmFzZSwgdmFsdWUgPSBnZXRfcGhyYXNlKHZhbHVlKQorCityZXR1cm5zIHRoZSBjb21wbGV0ZSBwaHJhc2UgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHN0cmluZyB2YWx1ZSwgcGx1cyBhbnkKK2NoYXJhY3RlcnMgbGVmdCBpbiB0aGUgc3RyaW5nIGFmdGVyIHRoZSBwaHJhc2UgaXMgcmVtb3ZlZC4KKworIiIiCisKK193c3Bfc3BsaXR0ZXIgPSByZS5jb21waWxlKHInKFt7fV0rKScuZm9ybWF0KCcnLmpvaW4oV1NQKSkpLnNwbGl0Citfbm9uX2F0b21fZW5kX21hdGNoZXIgPSByZS5jb21waWxlKHIiW157fV0rIi5mb3JtYXQoCisgICAgJycuam9pbihBVE9NX0VORFMpLnJlcGxhY2UoJ1xcJywnXFxcXCcpLnJlcGxhY2UoJ10nLCdcXScpKSkubWF0Y2gKK19ub25fcHJpbnRhYmxlX2ZpbmRlciA9IHJlLmNvbXBpbGUociJbXHgwMC1ceDIwXHg3Rl0iKS5maW5kYWxsCitfbm9uX3Rva2VuX2VuZF9tYXRjaGVyID0gcmUuY29tcGlsZShyIltee31dKyIuZm9ybWF0KAorICAgICcnLmpvaW4oVE9LRU5fRU5EUykucmVwbGFjZSgnXFwnLCdcXFxcJykucmVwbGFjZSgnXScsJ1xdJykpKS5tYXRjaAorX25vbl9hdHRyaWJ1dGVfZW5kX21hdGNoZXIgPSByZS5jb21waWxlKHIiW157fV0rIi5mb3JtYXQoCisgICAgJycuam9pbihBVFRSSUJVVEVfRU5EUykucmVwbGFjZSgnXFwnLCdcXFxcJykucmVwbGFjZSgnXScsJ1xdJykpKS5tYXRjaAorX25vbl9leHRlbmRlZF9hdHRyaWJ1dGVfZW5kX21hdGNoZXIgPSByZS5jb21waWxlKHIiW157fV0rIi5mb3JtYXQoCisgICAgJycuam9pbihFWFRFTkRFRF9BVFRSSUJVVEVfRU5EUykucmVwbGFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcXCcsJ1xcXFwnKS5yZXBsYWNlKCddJywnXF0nKSkpLm1hdGNoCisKK2RlZiBfdmFsaWRhdGVfeHRleHQoeHRleHQpOgorICAgICIiIklmIGlucHV0IHRva2VuIGNvbnRhaW5zIEFTQ0lJIG5vbi1wcmludGFibGVzLCByZWdpc3RlciBhIGRlZmVjdC4iIiIKKworICAgIG5vbl9wcmludGFibGVzID0gX25vbl9wcmludGFibGVfZmluZGVyKHh0ZXh0KQorICAgIGlmIG5vbl9wcmludGFibGVzOgorICAgICAgICB4dGV4dC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuTm9uUHJpbnRhYmxlRGVmZWN0KG5vbl9wcmludGFibGVzKSkKKyAgICBpZiB1dGlscy5faGFzX3N1cnJvZ2F0ZXMoeHRleHQpOgorICAgICAgICB4dGV4dC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuVW5kZWNvZGFibGVCeXRlc0RlZmVjdCgKKyAgICAgICAgICAgICJOb24tQVNDSUkgY2hhcmFjdGVycyBmb3VuZCBpbiBoZWFkZXIgdG9rZW4iKSkKKworZGVmIF9nZXRfcHRleHRfdG9fZW5kY2hhcnModmFsdWUsIGVuZGNoYXJzKToKKyAgICAiIiJTY2FuIHByaW50YWJsZXMvcXVvdGVkLXBhaXJzIHVudGlsIGVuZGNoYXJzIGFuZCByZXR1cm4gdW5xdW90ZWQgcHRleHQuCisKKyAgICBUaGlzIGZ1bmN0aW9uIHR1cm5zIGEgcnVuIG9mIHFjb250ZW50LCBjY29udGVudC13aXRob3V0LWNvbW1lbnRzLCBvcgorICAgIGR0ZXh0LXdpdGgtcXVvdGVkLXByaW50YWJsZXMgaW50byBhIHNpbmdsZSBzdHJpbmcgYnkgdW5xdW90aW5nIGFueQorICAgIHF1b3RlZCBwcmludGFibGVzLiAgSXQgcmV0dXJucyB0aGUgc3RyaW5nLCB0aGUgcmVtYWluaW5nIHZhbHVlLCBhbmQKKyAgICBhIGZsYWcgdGhhdCBpcyBUcnVlIGlmZiB0aGVyZSB3ZXJlIGFueSBxdW90ZWQgcHJpbnRhYmxlcyBkZWNvZGVkLgorCisgICAgIiIiCisgICAgZnJhZ21lbnQsICpyZW1haW5kZXIgPSBfd3NwX3NwbGl0dGVyKHZhbHVlLCAxKQorICAgIHZjaGFycyA9IFtdCisgICAgZXNjYXBlID0gRmFsc2UKKyAgICBoYWRfcXAgPSBGYWxzZQorICAgIGZvciBwb3MgaW4gcmFuZ2UobGVuKGZyYWdtZW50KSk6CisgICAgICAgIGlmIGZyYWdtZW50W3Bvc10gPT0gJ1xcJzoKKyAgICAgICAgICAgIGlmIGVzY2FwZToKKyAgICAgICAgICAgICAgICBlc2NhcGUgPSBGYWxzZQorICAgICAgICAgICAgICAgIGhhZF9xcCA9IFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZXNjYXBlID0gVHJ1ZQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIGVzY2FwZToKKyAgICAgICAgICAgIGVzY2FwZSA9IEZhbHNlCisgICAgICAgIGVsaWYgZnJhZ21lbnRbcG9zXSBpbiBlbmRjaGFyczoKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHZjaGFycy5hcHBlbmQoZnJhZ21lbnRbcG9zXSkKKyAgICBlbHNlOgorICAgICAgICBwb3MgPSBwb3MgKyAxCisgICAgcmV0dXJuICcnLmpvaW4odmNoYXJzKSwgJycuam9pbihbZnJhZ21lbnRbcG9zOl1dICsgcmVtYWluZGVyKSwgaGFkX3FwCisKK2RlZiBfZGVjb2RlX2V3X3J1bih2YWx1ZSk6CisgICAgIiIiIERlY29kZSBhIHJ1biBvZiBSRkMyMDQ3IGVuY29kZWQgd29yZHMuCisKKyAgICAgICAgX2RlY29kZV9ld19ydW4odmFsdWUpIC0+ICh0ZXh0LCB2YWx1ZSwgZGVmZWN0cykKKworICAgIFNjYW5zIHRoZSBzdXBwbGllZCB2YWx1ZSBmb3IgYSBydW4gb2YgdG9rZW5zIHRoYXQgbG9vayBsaWtlIHRoZXkgYXJlIFJGQworICAgIDIwNDcgZW5jb2RlZCB3b3JkcywgZGVjb2RlcyB0aG9zZSB3b3JkcyBpbnRvIHRleHQgYWNjb3JkaW5nIHRvIFJGQyAyMDQ3CisgICAgcnVsZXMgKHdoaXRlc3BhY2UgYmV0d2VlbiBlbmNvZGVkIHdvcmRzIGlzIGRpc2NhcmRlZCksIGFuZCByZXR1cm5zIHRoZSB0ZXh0CisgICAgYW5kIHRoZSByZW1haW5pbmcgdmFsdWUgKGluY2x1ZGluZyBhbnkgbGVhZGluZyB3aGl0ZXNwYWNlIG9uIHRoZSByZW1haW5pbmcKKyAgICB2YWx1ZSksIGFzIHdlbGwgYXMgYSBsaXN0IG9mIGFueSBkZWZlY3RzIGVuY291bnRlcmVkIHdoaWxlIGRlY29kaW5nLiAgVGhlCisgICAgaW5wdXQgdmFsdWUgbWF5IG5vdCBoYXZlIGFueSBsZWFkaW5nIHdoaXRlc3BhY2UuCisKKyAgICAiIiIKKyAgICByZXMgPSBbXQorICAgIGRlZmVjdHMgPSBbXQorICAgIGxhc3Rfd3MgPSAnJworICAgIHdoaWxlIHZhbHVlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0b2ssIHdzLCB2YWx1ZSA9IF93c3Bfc3BsaXR0ZXIodmFsdWUsIDEpCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgdG9rLCB3cywgdmFsdWUgPSB2YWx1ZSwgJycsICcnCisgICAgICAgIGlmIG5vdCAodG9rLnN0YXJ0c3dpdGgoJz0/JykgYW5kIHRvay5lbmRzd2l0aCgnPz0nKSk6CisgICAgICAgICAgICByZXR1cm4gJycuam9pbihyZXMpLCBsYXN0X3dzICsgdG9rICsgd3MgKyB2YWx1ZSwgZGVmZWN0cworICAgICAgICB0ZXh0LCBjaGFyc2V0LCBsYW5nLCBuZXdfZGVmZWN0cyA9IF9ldy5kZWNvZGUodG9rKQorICAgICAgICByZXMuYXBwZW5kKHRleHQpCisgICAgICAgIGRlZmVjdHMuZXh0ZW5kKG5ld19kZWZlY3RzKQorICAgICAgICBsYXN0X3dzID0gd3MKKyAgICByZXR1cm4gJycuam9pbihyZXMpLCBsYXN0X3dzLCBkZWZlY3RzCisKK2RlZiBnZXRfZndzKHZhbHVlKToKKyAgICAiIiJGV1MgPSAxKldTUAorCisgICAgVGhpcyBpc24ndCB0aGUgUkZDIGRlZmluaXRpb24uICBXZSdyZSB1c2luZyBmd3MgdG8gcmVwcmVzZW50IHRva2VucyB3aGVyZQorICAgIGZvbGRpbmcgY2FuIGJlIGRvbmUsIGJ1dCB3aGVuIHdlIGFyZSBwYXJzaW5nIHRoZSAqdW4qZm9sZGluZyBoYXMgYWxyZWFkeQorICAgIGJlZW4gZG9uZSBzbyB3ZSBkb24ndCBuZWVkIHRvIHdhdGNoIG91dCBmb3IgQ1JMRi4KKworICAgICIiIgorICAgIG5ld3ZhbHVlID0gdmFsdWUubHN0cmlwKCkKKyAgICBmd3MgPSBXaGl0ZVNwYWNlVGVybWluYWwodmFsdWVbOmxlbih2YWx1ZSktbGVuKG5ld3ZhbHVlKV0sICdmd3MnKQorICAgIHJldHVybiBmd3MsIG5ld3ZhbHVlCisKK2RlZiBnZXRfZW5jb2RlZF93b3JkKHZhbHVlKToKKyAgICAiIiIgZW5jb2RlZC13b3JkID0gIj0/IiBjaGFyc2V0ICI/IiBlbmNvZGluZyAiPyIgZW5jb2RlZC10ZXh0ICI/PSIKKworICAgICIiIgorICAgIGV3ID0gRW5jb2RlZFdvcmQoKQorICAgIGlmIG5vdCB2YWx1ZS5zdGFydHN3aXRoKCc9PycpOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICJleHBlY3RlZCBlbmNvZGVkIHdvcmQgYnV0IGZvdW5kIHt9Ii5mb3JtYXQodmFsdWUpKQorICAgIHRvaywgKnJlbWFpbmRlciA9IHZhbHVlWzI6XS5zcGxpdCgnPz0nLCAxKQorICAgIGlmIHRvayA9PSB2YWx1ZVsyOl06CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgImV4cGVjdGVkIGVuY29kZWQgd29yZCBidXQgZm91bmQge30iLmZvcm1hdCh2YWx1ZSkpCisgICAgcmVtc3RyID0gJycuam9pbihyZW1haW5kZXIpCisgICAgaWYgcmVtc3RyWzoyXS5pc2RpZ2l0KCk6CisgICAgICAgIHJlc3QsICpyZW1haW5kZXIgPSByZW1zdHIuc3BsaXQoJz89JywgMSkKKyAgICAgICAgdG9rID0gdG9rICsgJz89JyArIHJlc3QKKyAgICBpZiBsZW4odG9rLnNwbGl0KCkpID4gMToKKyAgICAgICAgZXcuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAid2hpdGVzcGFjZSBpbnNpZGUgZW5jb2RlZCB3b3JkIikpCisgICAgZXcuY3RlID0gdmFsdWUKKyAgICB2YWx1ZSA9ICcnLmpvaW4ocmVtYWluZGVyKQorICAgIHRyeToKKyAgICAgICAgdGV4dCwgY2hhcnNldCwgbGFuZywgZGVmZWN0cyA9IF9ldy5kZWNvZGUoJz0/JyArIHRvayArICc/PScpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgImVuY29kZWQgd29yZCBmb3JtYXQgaW52YWxpZDogJ3t9JyIuZm9ybWF0KGV3LmN0ZSkpCisgICAgZXcuY2hhcnNldCA9IGNoYXJzZXQKKyAgICBldy5sYW5nID0gbGFuZworICAgIGV3LmRlZmVjdHMuZXh0ZW5kKGRlZmVjdHMpCisgICAgd2hpbGUgdGV4dDoKKyAgICAgICAgaWYgdGV4dFswXSBpbiBXU1A6CisgICAgICAgICAgICB0b2tlbiwgdGV4dCA9IGdldF9md3ModGV4dCkKKyAgICAgICAgICAgIGV3LmFwcGVuZCh0b2tlbikKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGNoYXJzLCAqcmVtYWluZGVyID0gX3dzcF9zcGxpdHRlcih0ZXh0LCAxKQorICAgICAgICB2dGV4dCA9IFZhbHVlVGVybWluYWwoY2hhcnMsICd2dGV4dCcpCisgICAgICAgIF92YWxpZGF0ZV94dGV4dCh2dGV4dCkKKyAgICAgICAgZXcuYXBwZW5kKHZ0ZXh0KQorICAgICAgICB0ZXh0ID0gJycuam9pbihyZW1haW5kZXIpCisgICAgcmV0dXJuIGV3LCB2YWx1ZQorCitkZWYgZ2V0X3Vuc3RydWN0dXJlZCh2YWx1ZSk6CisgICAgIiIidW5zdHJ1Y3R1cmVkID0gKCooW0ZXU10gdmNoYXIpICpXU1ApIC8gb2JzLXVuc3RydWN0CisgICAgICAgb2JzLXVuc3RydWN0ID0gKigoKkxGICpDUiAqKG9icy11dGV4dCkgKkxGICpDUikpIC8gRldTKQorICAgICAgIG9icy11dGV4dCA9ICVkMCAvIG9icy1OTy1XUy1DVEwgLyBMRiAvIENSCisKKyAgICAgICBvYnMtTk8tV1MtQ1RMIGlzIGNvbnRyb2wgY2hhcmFjdGVycyBleGNlcHQgV1NQL0NSL0xGLgorCisgICAgU28sIGJhc2ljYWxseSwgd2UgaGF2ZSBwcmludGFibGUgcnVucywgcGx1cyBjb250cm9sIGNoYXJhY3RlcnMgb3IgbnVsbHMgaW4KKyAgICB0aGUgb2Jzb2xldGUgc3ludGF4LCBzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZS4gIFNpbmNlIFJGQyAyMDQ3IHVzZXMgdGhlCisgICAgb2Jzb2xldGUgc3ludGF4IGluIGl0cyBzcGVjaWZpY2F0aW9uLCBidXQgcmVxdWlyZXMgd2hpdGVzcGFjZSBvbiBlaXRoZXIKKyAgICBzaWRlIG9mIHRoZSBlbmNvZGVkIHdvcmRzLCBJIGNhbiBzZWUgbm8gcmVhc29uIHRvIG5lZWQgdG8gc2VwYXJhdGUgdGhlCisgICAgbm9uLXByaW50YWJsZS1ub24td2hpdGVzcGFjZSBmcm9tIHRoZSBwcmludGFibGUgcnVucyBpZiB0aGV5IG9jY3VyLCBzbyB3ZQorICAgIHBhcnNlIHRoaXMgaW50byB4dGV4dCB0b2tlbnMgc2VwYXJhdGVkIGJ5IFdTUCB0b2tlbnMuCisKKyAgICBCZWNhdXNlIGFuICd1bnN0cnVjdHVyZWQnIHZhbHVlIG11c3QgYnkgZGVmaW5pdGlvbiBjb25zdGl0dXRlIHRoZSBlbnRpcmUKKyAgICB2YWx1ZSwgdGhpcyAnZ2V0JyByb3V0aW5lIGRvZXMgbm90IHJldHVybiBhIHJlbWFpbmluZyB2YWx1ZSwgb25seSB0aGUKKyAgICBwYXJzZWQgVG9rZW5MaXN0LgorCisgICAgIiIiCisgICAgIyBYWFg6IGJ1dCB3aGF0IGFib3V0IGJhcmUgQ1IgYW5kIExGPyAgVGhleSBtaWdodCBzaWduYWwgdGhlIHN0YXJ0IG9yCisgICAgIyBlbmQgb2YgYW4gZW5jb2RlZCB3b3JkLiAgWUFHTkkgZm9yIG5vdywgc2luY2Ugb3V0IGN1cnJlbnQgcGFyc2VycworICAgICMgd2lsbCBuZXZlciBzZW5kIHVzIHN0cmluZ3Mgd2l0aCBiYXJkIENSIG9yIExGLgorCisgICAgdW5zdHJ1Y3R1cmVkID0gVW5zdHJ1Y3R1cmVkVG9rZW5MaXN0KCkKKyAgICB3aGlsZSB2YWx1ZToKKyAgICAgICAgaWYgdmFsdWVbMF0gaW4gV1NQOgorICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Z3cyh2YWx1ZSkKKyAgICAgICAgICAgIHVuc3RydWN0dXJlZC5hcHBlbmQodG9rZW4pCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiB2YWx1ZS5zdGFydHN3aXRoKCc9PycpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9lbmNvZGVkX3dvcmQodmFsdWUpCisgICAgICAgICAgICBleGNlcHQgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBoYXZlX3dzID0gVHJ1ZQorICAgICAgICAgICAgICAgIGlmIGxlbih1bnN0cnVjdHVyZWQpID4gMDoKKyAgICAgICAgICAgICAgICAgICAgaWYgdW5zdHJ1Y3R1cmVkWy0xXS50b2tlbl90eXBlICE9ICdmd3MnOgorICAgICAgICAgICAgICAgICAgICAgICAgdW5zdHJ1Y3R1cmVkLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtaXNzaW5nIHdoaXRlc3BhY2UgYmVmb3JlIGVuY29kZWQgd29yZCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZV93cyA9IEZhbHNlCisgICAgICAgICAgICAgICAgaWYgaGF2ZV93cyBhbmQgbGVuKHVuc3RydWN0dXJlZCkgPiAxOgorICAgICAgICAgICAgICAgICAgICBpZiB1bnN0cnVjdHVyZWRbLTJdLnRva2VuX3R5cGUgPT0gJ2VuY29kZWQtd29yZCc6CisgICAgICAgICAgICAgICAgICAgICAgICB1bnN0cnVjdHVyZWRbLTFdID0gRVdXaGl0ZVNwYWNlVGVybWluYWwoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zdHJ1Y3R1cmVkWy0xXSwgJ2Z3cycpCisgICAgICAgICAgICAgICAgdW5zdHJ1Y3R1cmVkLmFwcGVuZCh0b2tlbikKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICB0b2ssICpyZW1haW5kZXIgPSBfd3NwX3NwbGl0dGVyKHZhbHVlLCAxKQorICAgICAgICB2dGV4dCA9IFZhbHVlVGVybWluYWwodG9rLCAndnRleHQnKQorICAgICAgICBfdmFsaWRhdGVfeHRleHQodnRleHQpCisgICAgICAgIHVuc3RydWN0dXJlZC5hcHBlbmQodnRleHQpCisgICAgICAgIHZhbHVlID0gJycuam9pbihyZW1haW5kZXIpCisgICAgcmV0dXJuIHVuc3RydWN0dXJlZAorCitkZWYgZ2V0X3FwX2N0ZXh0KHZhbHVlKToKKyAgICAiIiJjdGV4dCA9IDxwcmludGFibGUgYXNjaWkgZXhjZXB0IFwgKCApPgorCisgICAgVGhpcyBpcyBub3QgdGhlIFJGQyBjdGV4dCwgc2luY2Ugd2UgYXJlIGhhbmRsaW5nIG5lc3RlZCBjb21tZW50cyBpbiBjb21tZW50CisgICAgYW5kIHVucXVvdGluZyBxdW90ZWQtcGFpcnMgaGVyZS4gIFdlIGFsbG93IGFueXRoaW5nIGV4Y2VwdCB0aGUgJygpJworICAgIGNoYXJhY3RlcnMsIGJ1dCBpZiB3ZSBmaW5kIGFueSBBU0NJSSBvdGhlciB0aGFuIHRoZSBSRkMgZGVmaW5lZCBwcmludGFibGUKKyAgICBBU0NJSSBhbiBOb25QcmludGFibGVEZWZlY3QgaXMgYWRkZWQgdG8gdGhlIHRva2VuJ3MgZGVmZWN0cyBsaXN0LiAgU2luY2UKKyAgICBxdW90ZWQgcGFpcnMgYXJlIGNvbnZlcnRlZCB0byB0aGVpciB1bnF1b3RlZCB2YWx1ZXMsIHdoYXQgaXMgcmV0dXJuZWQgaXMKKyAgICBhICdwdGV4dCcgdG9rZW4uICBJbiB0aGlzIGNhc2UgaXQgaXMgYSBXaGl0ZVNwYWNlVGVybWluYWwsIHNvIGl0J3MgdmFsdWUKKyAgICBpcyAnICcuCisKKyAgICAiIiIKKyAgICBwdGV4dCwgdmFsdWUsIF8gPSBfZ2V0X3B0ZXh0X3RvX2VuZGNoYXJzKHZhbHVlLCAnKCknKQorICAgIHB0ZXh0ID0gV2hpdGVTcGFjZVRlcm1pbmFsKHB0ZXh0LCAncHRleHQnKQorICAgIF92YWxpZGF0ZV94dGV4dChwdGV4dCkKKyAgICByZXR1cm4gcHRleHQsIHZhbHVlCisKK2RlZiBnZXRfcWNvbnRlbnQodmFsdWUpOgorICAgICIiInFjb250ZW50ID0gcXRleHQgLyBxdW90ZWQtcGFpcgorCisgICAgV2UgYWxsb3cgYW55dGhpbmcgZXhjZXB0IHRoZSBEUVVPVEUgY2hhcmFjdGVyLCBidXQgaWYgd2UgZmluZCBhbnkgQVNDSUkKKyAgICBvdGhlciB0aGFuIHRoZSBSRkMgZGVmaW5lZCBwcmludGFibGUgQVNDSUkgYW4gTm9uUHJpbnRhYmxlRGVmZWN0IGlzCisgICAgYWRkZWQgdG8gdGhlIHRva2VuJ3MgZGVmZWN0cyBsaXN0LiAgQW55IHF1b3RlZCBwYWlycyBhcmUgY29udmVydGVkIHRvIHRoZWlyCisgICAgdW5xdW90ZWQgdmFsdWVzLCBzbyB3aGF0IGlzIHJldHVybmVkIGlzIGEgJ3B0ZXh0JyB0b2tlbi4gIEluIHRoaXMgY2FzZSBpdAorICAgIGlzIGEgVmFsdWVUZXJtaW5hbC4KKworICAgICIiIgorICAgIHB0ZXh0LCB2YWx1ZSwgXyA9IF9nZXRfcHRleHRfdG9fZW5kY2hhcnModmFsdWUsICciJykKKyAgICBwdGV4dCA9IFZhbHVlVGVybWluYWwocHRleHQsICdwdGV4dCcpCisgICAgX3ZhbGlkYXRlX3h0ZXh0KHB0ZXh0KQorICAgIHJldHVybiBwdGV4dCwgdmFsdWUKKworZGVmIGdldF9hdGV4dCh2YWx1ZSk6CisgICAgIiIiYXRleHQgPSA8bWF0Y2hlcyBfYXRleHRfbWF0Y2hlcj4KKworICAgIFdlIGFsbG93IGFueSBub24tQVRPTV9FTkRTIGluIGF0ZXh0LCBidXQgYWRkIGFuIEludmFsaWRBVGV4dERlZmVjdCB0bworICAgIHRoZSB0b2tlbidzIGRlZmVjdHMgbGlzdCBpZiB3ZSBmaW5kIG5vbi1hdGV4dCBjaGFyYWN0ZXJzLgorICAgICIiIgorICAgIG0gPSBfbm9uX2F0b21fZW5kX21hdGNoZXIodmFsdWUpCisgICAgaWYgbm90IG06CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgImV4cGVjdGVkIGF0ZXh0IGJ1dCBmb3VuZCAne30nIi5mb3JtYXQodmFsdWUpKQorICAgIGF0ZXh0ID0gbS5ncm91cCgpCisgICAgdmFsdWUgPSB2YWx1ZVtsZW4oYXRleHQpOl0KKyAgICBhdGV4dCA9IFZhbHVlVGVybWluYWwoYXRleHQsICdhdGV4dCcpCisgICAgX3ZhbGlkYXRlX3h0ZXh0KGF0ZXh0KQorICAgIHJldHVybiBhdGV4dCwgdmFsdWUKKworZGVmIGdldF9iYXJlX3F1b3RlZF9zdHJpbmcodmFsdWUpOgorICAgICIiImJhcmUtcXVvdGVkLXN0cmluZyA9IERRVU9URSAqKFtGV1NdIHFjb250ZW50KSBbRldTXSBEUVVPVEUKKworICAgIEEgcXVvdGVkLXN0cmluZyB3aXRob3V0IHRoZSBsZWFkaW5nIG9yIHRyYWlsaW5nIHdoaXRlIHNwYWNlLiAgSXRzCisgICAgdmFsdWUgaXMgdGhlIHRleHQgYmV0d2VlbiB0aGUgcXVvdGUgbWFya3MsIHdpdGggd2hpdGVzcGFjZQorICAgIHByZXNlcnZlZCBhbmQgcXVvdGVkIHBhaXJzIGRlY29kZWQuCisgICAgIiIiCisgICAgaWYgdmFsdWVbMF0gIT0gJyInOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICJleHBlY3RlZCAnXCInIGJ1dCBmb3VuZCAne30nIi5mb3JtYXQodmFsdWUpKQorICAgIGJhcmVfcXVvdGVkX3N0cmluZyA9IEJhcmVRdW90ZWRTdHJpbmcoKQorICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgd2hpbGUgdmFsdWUgYW5kIHZhbHVlWzBdICE9ICciJzoKKyAgICAgICAgaWYgdmFsdWVbMF0gaW4gV1NQOgorICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Z3cyh2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9xY29udGVudCh2YWx1ZSkKKyAgICAgICAgYmFyZV9xdW90ZWRfc3RyaW5nLmFwcGVuZCh0b2tlbikKKyAgICBpZiBub3QgdmFsdWU6CisgICAgICAgIGJhcmVfcXVvdGVkX3N0cmluZy5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJlbmQgb2YgaGVhZGVyIGluc2lkZSBxdW90ZWQgc3RyaW5nIikpCisgICAgICAgIHJldHVybiBiYXJlX3F1b3RlZF9zdHJpbmcsIHZhbHVlCisgICAgcmV0dXJuIGJhcmVfcXVvdGVkX3N0cmluZywgdmFsdWVbMTpdCisKK2RlZiBnZXRfY29tbWVudCh2YWx1ZSk6CisgICAgIiIiY29tbWVudCA9ICIoIiAqKFtGV1NdIGNjb250ZW50KSBbRldTXSAiKSIKKyAgICAgICBjY29udGVudCA9IGN0ZXh0IC8gcXVvdGVkLXBhaXIgLyBjb21tZW50CisKKyAgICBXZSBoYW5kbGUgbmVzdGVkIGNvbW1lbnRzIGhlcmUsIGFuZCBxdW90ZWQtcGFpciBpbiBvdXIgcXAtY3RleHQgcm91dGluZS4KKyAgICAiIiIKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gIT0gJygnOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICJleHBlY3RlZCAnKCcgYnV0IGZvdW5kICd7fSciLmZvcm1hdCh2YWx1ZSkpCisgICAgY29tbWVudCA9IENvbW1lbnQoKQorICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgd2hpbGUgdmFsdWUgYW5kIHZhbHVlWzBdICE9ICIpIjoKKyAgICAgICAgaWYgdmFsdWVbMF0gaW4gV1NQOgorICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Z3cyh2YWx1ZSkKKyAgICAgICAgZWxpZiB2YWx1ZVswXSA9PSAnKCc6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfY29tbWVudCh2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9xcF9jdGV4dCh2YWx1ZSkKKyAgICAgICAgY29tbWVudC5hcHBlbmQodG9rZW4pCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICBjb21tZW50LmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgImVuZCBvZiBoZWFkZXIgaW5zaWRlIGNvbW1lbnQiKSkKKyAgICAgICAgcmV0dXJuIGNvbW1lbnQsIHZhbHVlCisgICAgcmV0dXJuIGNvbW1lbnQsIHZhbHVlWzE6XQorCitkZWYgZ2V0X2Nmd3ModmFsdWUpOgorICAgICIiIkNGV1MgPSAoMSooW0ZXU10gY29tbWVudCkgW0ZXU10pIC8gRldTCisKKyAgICAiIiIKKyAgICBjZndzID0gQ0ZXU0xpc3QoKQorICAgIHdoaWxlIHZhbHVlIGFuZCB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgaWYgdmFsdWVbMF0gaW4gV1NQOgorICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Z3cyh2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jb21tZW50KHZhbHVlKQorICAgICAgICBjZndzLmFwcGVuZCh0b2tlbikKKyAgICByZXR1cm4gY2Z3cywgdmFsdWUKKworZGVmIGdldF9xdW90ZWRfc3RyaW5nKHZhbHVlKToKKyAgICAiIiJxdW90ZWQtc3RyaW5nID0gW0NGV1NdIDxiYXJlLXF1b3RlZC1zdHJpbmc+IFtDRldTXQorCisgICAgJ2JhcmUtcXVvdGVkLXN0cmluZycgaXMgYW4gaW50ZXJtZWRpYXRlIGNsYXNzIGRlZmluZWQgYnkgdGhpcworICAgIHBhcnNlciBhbmQgbm90IGJ5IHRoZSBSRkMgZ3JhbW1hci4gIEl0IGlzIHRoZSBxdW90ZWQgc3RyaW5nCisgICAgd2l0aG91dCBhbnkgYXR0YWNoZWQgQ0ZXUy4KKyAgICAiIiIKKyAgICBxdW90ZWRfc3RyaW5nID0gUXVvdGVkU3RyaW5nKCkKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBxdW90ZWRfc3RyaW5nLmFwcGVuZCh0b2tlbikKKyAgICB0b2tlbiwgdmFsdWUgPSBnZXRfYmFyZV9xdW90ZWRfc3RyaW5nKHZhbHVlKQorICAgIHF1b3RlZF9zdHJpbmcuYXBwZW5kKHRva2VuKQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgIHF1b3RlZF9zdHJpbmcuYXBwZW5kKHRva2VuKQorICAgIHJldHVybiBxdW90ZWRfc3RyaW5nLCB2YWx1ZQorCitkZWYgZ2V0X2F0b20odmFsdWUpOgorICAgICIiImF0b20gPSBbQ0ZXU10gMSphdGV4dCBbQ0ZXU10KKworICAgICIiIgorICAgIGF0b20gPSBBdG9tKCkKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBhdG9tLmFwcGVuZCh0b2tlbikKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQVRPTV9FTkRTOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICJleHBlY3RlZCBhdG9tIGJ1dCBmb3VuZCAne30nIi5mb3JtYXQodmFsdWUpKQorICAgIHRva2VuLCB2YWx1ZSA9IGdldF9hdGV4dCh2YWx1ZSkKKyAgICBhdG9tLmFwcGVuZCh0b2tlbikKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBhdG9tLmFwcGVuZCh0b2tlbikKKyAgICByZXR1cm4gYXRvbSwgdmFsdWUKKworZGVmIGdldF9kb3RfYXRvbV90ZXh0KHZhbHVlKToKKyAgICAiIiIgZG90LXRleHQgPSAxKmF0ZXh0ICooIi4iIDEqYXRleHQpCisKKyAgICAiIiIKKyAgICBkb3RfYXRvbV90ZXh0ID0gRG90QXRvbVRleHQoKQorICAgIGlmIG5vdCB2YWx1ZSBvciB2YWx1ZVswXSBpbiBBVE9NX0VORFM6CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKCJleHBlY3RlZCBhdG9tIGF0IGEgc3RhcnQgb2YgIgorICAgICAgICAgICAgImRvdC1hdG9tLXRleHQgYnV0IGZvdW5kICd7fSciLmZvcm1hdCh2YWx1ZSkpCisgICAgd2hpbGUgdmFsdWUgYW5kIHZhbHVlWzBdIG5vdCBpbiBBVE9NX0VORFM6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9hdGV4dCh2YWx1ZSkKKyAgICAgICAgZG90X2F0b21fdGV4dC5hcHBlbmQodG9rZW4pCisgICAgICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSA9PSAnLic6CisgICAgICAgICAgICBkb3RfYXRvbV90ZXh0LmFwcGVuZChET1QpCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIGlmIGRvdF9hdG9tX3RleHRbLTFdIGlzIERPVDoKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoImV4cGVjdGVkIGF0b20gYXQgZW5kIG9mIGRvdC1hdG9tLXRleHQgIgorICAgICAgICAgICAgImJ1dCBmb3VuZCAne30nIi5mb3JtYXQoJy4nK3ZhbHVlKSkKKyAgICByZXR1cm4gZG90X2F0b21fdGV4dCwgdmFsdWUKKworZGVmIGdldF9kb3RfYXRvbSh2YWx1ZSk6CisgICAgIiIiIGRvdC1hdG9tID0gW0NGV1NdIGRvdC1hdG9tLXRleHQgW0NGV1NdCisKKyAgICAiIiIKKyAgICBkb3RfYXRvbSA9IERvdEF0b20oKQorICAgIGlmIHZhbHVlWzBdIGluIENGV1NfTEVBREVSOgorICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfY2Z3cyh2YWx1ZSkKKyAgICAgICAgZG90X2F0b20uYXBwZW5kKHRva2VuKQorICAgIHRva2VuLCB2YWx1ZSA9IGdldF9kb3RfYXRvbV90ZXh0KHZhbHVlKQorICAgIGRvdF9hdG9tLmFwcGVuZCh0b2tlbikKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBkb3RfYXRvbS5hcHBlbmQodG9rZW4pCisgICAgcmV0dXJuIGRvdF9hdG9tLCB2YWx1ZQorCitkZWYgZ2V0X3dvcmQodmFsdWUpOgorICAgICIiIndvcmQgPSBhdG9tIC8gcXVvdGVkLXN0cmluZworCisgICAgRWl0aGVyIGF0b20gb3IgcXVvdGVkLXN0cmluZyBtYXkgc3RhcnQgd2l0aCBDRldTLiAgV2UgaGF2ZSB0byBwZWVsIG9mZiB0aGlzCisgICAgQ0ZXUyBmaXJzdCB0byBkZXRlcm1pbmUgd2hpY2ggdHlwZSBvZiB3b3JkIHRvIHBhcnNlLiAgQWZ0ZXJ3YXJkIHdlIHNwbGljZQorICAgIHRoZSBsZWFkaW5nIENGV1MsIGlmIGFueSwgaW50byB0aGUgcGFyc2VkIHN1Yi10b2tlbi4KKworICAgIElmIG5laXRoZXIgYW4gYXRvbSBvciBhIHF1b3RlZC1zdHJpbmcgaXMgZm91bmQgYmVmb3JlIHRoZSBuZXh0IHNwZWNpYWwsIGEKKyAgICBIZWFkZXJQYXJzZUVycm9yIGlzIHJhaXNlZC4KKworICAgIFRoZSB0b2tlbiByZXR1cm5lZCBpcyBlaXRoZXIgYW4gQXRvbSBvciBhIFF1b3RlZFN0cmluZywgYXMgYXBwcm9wcmlhdGUuCisgICAgVGhpcyBtZWFucyB0aGUgJ3dvcmQnIGxldmVsIG9mIHRoZSBmb3JtYWwgZ3JhbW1hciBpcyBub3QgcmVwcmVzZW50ZWQgaW4gdGhlCisgICAgcGFyc2UgdHJlZTsgdGhpcyBpcyBiZWNhdXNlIGhhdmluZyB0aGF0IGV4dHJhIGxheWVyIHdoZW4gbWFuaXB1bGF0aW5nIHRoZQorICAgIHBhcnNlIHRyZWUgaXMgbW9yZSBjb25mdXNpbmcgdGhhbiBpdCBpcyBoZWxwZnVsLgorCisgICAgIiIiCisgICAgaWYgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIGxlYWRlciwgdmFsdWUgPSBnZXRfY2Z3cyh2YWx1ZSkKKyAgICBlbHNlOgorICAgICAgICBsZWFkZXIgPSBOb25lCisgICAgaWYgdmFsdWVbMF09PSciJzoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X3F1b3RlZF9zdHJpbmcodmFsdWUpCisgICAgZWxpZiB2YWx1ZVswXSBpbiBTUEVDSUFMUzoKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoIkV4cGVjdGVkICdhdG9tJyBvciAncXVvdGVkLXN0cmluZycgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnV0IGZvdW5kICd7fSciLmZvcm1hdCh2YWx1ZSkpCisgICAgZWxzZToKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2F0b20odmFsdWUpCisgICAgaWYgbGVhZGVyIGlzIG5vdCBOb25lOgorICAgICAgICB0b2tlbls6MF0gPSBbbGVhZGVyXQorICAgIHJldHVybiB0b2tlbiwgdmFsdWUKKworZGVmIGdldF9waHJhc2UodmFsdWUpOgorICAgICIiIiBwaHJhc2UgPSAxKndvcmQgLyBvYnMtcGhyYXNlCisgICAgICAgIG9icy1waHJhc2UgPSB3b3JkICood29yZCAvICIuIiAvIENGV1MpCisKKyAgICBUaGlzIG1lYW5zIGEgcGhyYXNlIGNhbiBiZSBhIHNlcXVlbmNlIG9mIHdvcmRzLCBwZXJpb2RzLCBhbmQgQ0ZXUyBpbiBhbnkKKyAgICBvcmRlciBhcyBsb25nIGFzIGl0IHN0YXJ0cyB3aXRoIGF0IGxlYXN0IG9uZSB3b3JkLiAgSWYgYW55dGhpbmcgb3RoZXIgdGhhbgorICAgIHdvcmRzIGlzIGRldGVjdGVkLCBhbiBPYnNvbGV0ZUhlYWRlckRlZmVjdCBpcyBhZGRlZCB0byB0aGUgdG9rZW4ncyBkZWZlY3QKKyAgICBsaXN0LiAgV2UgYWxzbyBhY2NlcHQgYSBwaHJhc2UgdGhhdCBzdGFydHMgd2l0aCBDRldTIGZvbGxvd2VkIGJ5IGEgZG90OworICAgIHRoaXMgaXMgcmVnaXN0ZXJlZCBhcyBhbiBJbnZhbGlkSGVhZGVyRGVmZWN0LCBzaW5jZSBpdCBpcyBub3Qgc3VwcG9ydGVkIGJ5CisgICAgZXZlbiB0aGUgb2Jzb2xldGUgZ3JhbW1hci4KKworICAgICIiIgorICAgIHBocmFzZSA9IFBocmFzZSgpCisgICAgdHJ5OgorICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfd29yZCh2YWx1ZSkKKyAgICAgICAgcGhyYXNlLmFwcGVuZCh0b2tlbikKKyAgICBleGNlcHQgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3I6CisgICAgICAgIHBocmFzZS5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJwaHJhc2UgZG9lcyBub3Qgc3RhcnQgd2l0aCB3b3JkIikpCisgICAgd2hpbGUgdmFsdWUgYW5kIHZhbHVlWzBdIG5vdCBpbiBQSFJBU0VfRU5EUzoKKyAgICAgICAgaWYgdmFsdWVbMF09PScuJzoKKyAgICAgICAgICAgIHBocmFzZS5hcHBlbmQoRE9UKQorICAgICAgICAgICAgcGhyYXNlLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAicGVyaW9kIGluICdwaHJhc2UnIikpCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF93b3JkKHZhbHVlKQorICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5IZWFkZXJQYXJzZUVycm9yOgorICAgICAgICAgICAgICAgIGlmIHZhbHVlWzBdIGluIENGV1NfTEVBREVSOgorICAgICAgICAgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfY2Z3cyh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgcGhyYXNlLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJjb21tZW50IGZvdW5kIHdpdGhvdXQgYXRvbSIpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBwaHJhc2UuYXBwZW5kKHRva2VuKQorICAgIHJldHVybiBwaHJhc2UsIHZhbHVlCisKK2RlZiBnZXRfbG9jYWxfcGFydCh2YWx1ZSk6CisgICAgIiIiIGxvY2FsLXBhcnQgPSBkb3QtYXRvbSAvIHF1b3RlZC1zdHJpbmcgLyBvYnMtbG9jYWwtcGFydAorCisgICAgIiIiCisgICAgbG9jYWxfcGFydCA9IExvY2FsUGFydCgpCisgICAgbGVhZGVyID0gTm9uZQorICAgIGlmIHZhbHVlWzBdIGluIENGV1NfTEVBREVSOgorICAgICAgICBsZWFkZXIsIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICJleHBlY3RlZCBsb2NhbC1wYXJ0IGJ1dCBmb3VuZCAne30nIi5mb3JtYXQodmFsdWUpKQorICAgIHRyeToKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2RvdF9hdG9tKHZhbHVlKQorICAgIGV4Y2VwdCBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcjoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X3dvcmQodmFsdWUpCisgICAgICAgIGV4Y2VwdCBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcjoKKyAgICAgICAgICAgIGlmIHZhbHVlWzBdICE9ICdcXCcgYW5kIHZhbHVlWzBdIGluIFBIUkFTRV9FTkRTOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICB0b2tlbiA9IFRva2VuTGlzdCgpCisgICAgaWYgbGVhZGVyIGlzIG5vdCBOb25lOgorICAgICAgICB0b2tlbls6MF0gPSBbbGVhZGVyXQorICAgIGxvY2FsX3BhcnQuYXBwZW5kKHRva2VuKQorICAgIGlmIHZhbHVlIGFuZCAodmFsdWVbMF09PSdcXCcgb3IgdmFsdWVbMF0gbm90IGluIFBIUkFTRV9FTkRTKToKKyAgICAgICAgb2JzX2xvY2FsX3BhcnQsIHZhbHVlID0gZ2V0X29ic19sb2NhbF9wYXJ0KHN0cihsb2NhbF9wYXJ0KSArIHZhbHVlKQorICAgICAgICBpZiBvYnNfbG9jYWxfcGFydC50b2tlbl90eXBlID09ICdpbnZhbGlkLW9icy1sb2NhbC1wYXJ0JzoKKyAgICAgICAgICAgIGxvY2FsX3BhcnQuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAgICAgImxvY2FsLXBhcnQgaXMgbm90IGRvdC1hdG9tLCBxdW90ZWQtc3RyaW5nLCBvciBvYnMtbG9jYWwtcGFydCIpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9jYWxfcGFydC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuT2Jzb2xldGVIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAgICAgImxvY2FsLXBhcnQgaXMgbm90IGEgZG90LWF0b20gKGNvbnRhaW5zIENGV1MpIikpCisgICAgICAgIGxvY2FsX3BhcnRbMF0gPSBvYnNfbG9jYWxfcGFydAorICAgIHRyeToKKyAgICAgICAgbG9jYWxfcGFydC52YWx1ZS5lbmNvZGUoJ2FzY2lpJykKKyAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICBsb2NhbF9wYXJ0LmRlZmVjdHMuYXBwZW5kKGVycm9ycy5Ob25BU0NJSUxvY2FsUGFydERlZmVjdCgKKyAgICAgICAgICAgICAgICAibG9jYWwtcGFydCBjb250YWlucyBub24tQVNDSUkgY2hhcmFjdGVycykiKSkKKyAgICByZXR1cm4gbG9jYWxfcGFydCwgdmFsdWUKKworZGVmIGdldF9vYnNfbG9jYWxfcGFydCh2YWx1ZSk6CisgICAgIiIiIG9icy1sb2NhbC1wYXJ0ID0gd29yZCAqKCIuIiB3b3JkKQorICAgICIiIgorICAgIG9ic19sb2NhbF9wYXJ0ID0gT2JzTG9jYWxQYXJ0KCkKKyAgICBsYXN0X25vbl93c193YXNfZG90ID0gRmFsc2UKKyAgICB3aGlsZSB2YWx1ZSBhbmQgKHZhbHVlWzBdPT0nXFwnIG9yIHZhbHVlWzBdIG5vdCBpbiBQSFJBU0VfRU5EUyk6CisgICAgICAgIGlmIHZhbHVlWzBdID09ICcuJzoKKyAgICAgICAgICAgIGlmIGxhc3Rfbm9uX3dzX3dhc19kb3Q6CisgICAgICAgICAgICAgICAgb2JzX2xvY2FsX3BhcnQuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIHJlcGVhdGVkICcuJyIpKQorICAgICAgICAgICAgb2JzX2xvY2FsX3BhcnQuYXBwZW5kKERPVCkKKyAgICAgICAgICAgIGxhc3Rfbm9uX3dzX3dhc19kb3QgPSBUcnVlCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgZWxpZiB2YWx1ZVswXT09J1xcJzoKKyAgICAgICAgICAgIG9ic19sb2NhbF9wYXJ0LmFwcGVuZChWYWx1ZVRlcm1pbmFsKHZhbHVlWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pc3BsYWNlZC1zcGVjaWFsJykpCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgICAgICAgICAgb2JzX2xvY2FsX3BhcnQuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAgICAgIidcXCcgY2hhcmFjdGVyIG91dHNpZGUgb2YgcXVvdGVkLXN0cmluZy9jY29udGVudCIpKQorICAgICAgICAgICAgbGFzdF9ub25fd3Nfd2FzX2RvdCA9IEZhbHNlCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBvYnNfbG9jYWxfcGFydCBhbmQgb2JzX2xvY2FsX3BhcnRbLTFdLnRva2VuX3R5cGUgIT0gJ2RvdCc6CisgICAgICAgICAgICBvYnNfbG9jYWxfcGFydC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAibWlzc2luZyAnLicgYmV0d2VlbiB3b3JkcyIpKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfd29yZCh2YWx1ZSkKKyAgICAgICAgICAgIGxhc3Rfbm9uX3dzX3dhc19kb3QgPSBGYWxzZQorICAgICAgICBleGNlcHQgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3I6CisgICAgICAgICAgICBpZiB2YWx1ZVswXSBub3QgaW4gQ0ZXU19MRUFERVI6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBvYnNfbG9jYWxfcGFydC5hcHBlbmQodG9rZW4pCisgICAgaWYgKG9ic19sb2NhbF9wYXJ0WzBdLnRva2VuX3R5cGUgPT0gJ2RvdCcgb3IKKyAgICAgICAgICAgIG9ic19sb2NhbF9wYXJ0WzBdLnRva2VuX3R5cGU9PSdjZndzJyBhbmQKKyAgICAgICAgICAgIG9ic19sb2NhbF9wYXJ0WzFdLnRva2VuX3R5cGU9PSdkb3QnKToKKyAgICAgICAgb2JzX2xvY2FsX3BhcnQuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAiSW52YWxpZCBsZWFkaW5nICcuJyBpbiBsb2NhbCBwYXJ0IikpCisgICAgaWYgKG9ic19sb2NhbF9wYXJ0Wy0xXS50b2tlbl90eXBlID09ICdkb3QnIG9yCisgICAgICAgICAgICBvYnNfbG9jYWxfcGFydFstMV0udG9rZW5fdHlwZT09J2Nmd3MnIGFuZAorICAgICAgICAgICAgb2JzX2xvY2FsX3BhcnRbLTJdLnRva2VuX3R5cGU9PSdkb3QnKToKKyAgICAgICAgb2JzX2xvY2FsX3BhcnQuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAiSW52YWxpZCB0cmFpbGluZyAnLicgaW4gbG9jYWwgcGFydCIpKQorICAgIGlmIG9ic19sb2NhbF9wYXJ0LmRlZmVjdHM6CisgICAgICAgIG9ic19sb2NhbF9wYXJ0LnRva2VuX3R5cGUgPSAnaW52YWxpZC1vYnMtbG9jYWwtcGFydCcKKyAgICByZXR1cm4gb2JzX2xvY2FsX3BhcnQsIHZhbHVlCisKK2RlZiBnZXRfZHRleHQodmFsdWUpOgorICAgICIiIiBkdGV4dCA9IDxwcmludGFibGUgYXNjaWkgZXhjZXB0IFwgWyBdPiAvIG9icy1kdGV4dAorICAgICAgICBvYnMtZHRleHQgPSBvYnMtTk8tV1MtQ1RMIC8gcXVvdGVkLXBhaXIKKworICAgIFdlIGFsbG93IGFueXRoaW5nIGV4Y2VwdCB0aGUgZXhjbHVkZWQgY2hhcmFjdGVycywgYnV0IGJ1dCBpZiB3ZSBmaW5kIGFueQorICAgIEFTQ0lJIG90aGVyIHRoYW4gdGhlIFJGQyBkZWZpbmVkIHByaW50YWJsZSBBU0NJSSBhbiBOb25QcmludGFibGVEZWZlY3QgaXMKKyAgICBhZGRlZCB0byB0aGUgdG9rZW4ncyBkZWZlY3RzIGxpc3QuICBRdW90ZWQgcGFpcnMgYXJlIGNvbnZlcnRlZCB0byB0aGVpcgorICAgIHVucXVvdGVkIHZhbHVlcywgc28gd2hhdCBpcyByZXR1cm5lZCBpcyBhIHB0ZXh0IHRva2VuLCBpbiB0aGlzIGNhc2UgYQorICAgIFZhbHVlVGVybWluYWwuICBJZiB0aGVyZSB3ZXJlIHF1b3RlZC1wcmludGFibGVzLCBhbiBPYnNvbGV0ZUhlYWRlckRlZmVjdCBpcworICAgIGFkZGVkIHRvIHRoZSByZXR1cm5lZCB0b2tlbidzIGRlZmVjdCBsaXN0LgorCisgICAgIiIiCisgICAgcHRleHQsIHZhbHVlLCBoYWRfcXAgPSBfZ2V0X3B0ZXh0X3RvX2VuZGNoYXJzKHZhbHVlLCAnW10nKQorICAgIHB0ZXh0ID0gVmFsdWVUZXJtaW5hbChwdGV4dCwgJ3B0ZXh0JykKKyAgICBpZiBoYWRfcXA6CisgICAgICAgIHB0ZXh0LmRlZmVjdHMuYXBwZW5kKGVycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJxdW90ZWQgcHJpbnRhYmxlIGZvdW5kIGluIGRvbWFpbi1saXRlcmFsIikpCisgICAgX3ZhbGlkYXRlX3h0ZXh0KHB0ZXh0KQorICAgIHJldHVybiBwdGV4dCwgdmFsdWUKKworZGVmIF9jaGVja19mb3JfZWFybHlfZGxfZW5kKHZhbHVlLCBkb21haW5fbGl0ZXJhbCk6CisgICAgaWYgdmFsdWU6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGRvbWFpbl9saXRlcmFsLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgImVuZCBvZiBpbnB1dCBpbnNpZGUgZG9tYWluLWxpdGVyYWwiKSkKKyAgICBkb21haW5fbGl0ZXJhbC5hcHBlbmQoVmFsdWVUZXJtaW5hbCgnXScsICdkb21haW4tbGl0ZXJhbC1lbmQnKSkKKyAgICByZXR1cm4gVHJ1ZQorCitkZWYgZ2V0X2RvbWFpbl9saXRlcmFsKHZhbHVlKToKKyAgICAiIiIgZG9tYWluLWxpdGVyYWwgPSBbQ0ZXU10gIlsiICooW0ZXU10gZHRleHQpIFtGV1NdICJdIiBbQ0ZXU10KKworICAgICIiIgorICAgIGRvbWFpbl9saXRlcmFsID0gRG9tYWluTGl0ZXJhbCgpCisgICAgaWYgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBkb21haW5fbGl0ZXJhbC5hcHBlbmQodG9rZW4pCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigiZXhwZWN0ZWQgZG9tYWluLWxpdGVyYWwiKQorICAgIGlmIHZhbHVlWzBdICE9ICdbJzoKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoImV4cGVjdGVkICdbJyBhdCBzdGFydCBvZiBkb21haW4tbGl0ZXJhbCAiCisgICAgICAgICAgICAgICAgImJ1dCBmb3VuZCAne30nIi5mb3JtYXQodmFsdWUpKQorICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgaWYgX2NoZWNrX2Zvcl9lYXJseV9kbF9lbmQodmFsdWUsIGRvbWFpbl9saXRlcmFsKToKKyAgICAgICAgcmV0dXJuIGRvbWFpbl9saXRlcmFsLCB2YWx1ZQorICAgIGRvbWFpbl9saXRlcmFsLmFwcGVuZChWYWx1ZVRlcm1pbmFsKCdbJywgJ2RvbWFpbi1saXRlcmFsLXN0YXJ0JykpCisgICAgaWYgdmFsdWVbMF0gaW4gV1NQOgorICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfZndzKHZhbHVlKQorICAgICAgICBkb21haW5fbGl0ZXJhbC5hcHBlbmQodG9rZW4pCisgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2R0ZXh0KHZhbHVlKQorICAgIGRvbWFpbl9saXRlcmFsLmFwcGVuZCh0b2tlbikKKyAgICBpZiBfY2hlY2tfZm9yX2Vhcmx5X2RsX2VuZCh2YWx1ZSwgZG9tYWluX2xpdGVyYWwpOgorICAgICAgICByZXR1cm4gZG9tYWluX2xpdGVyYWwsIHZhbHVlCisgICAgaWYgdmFsdWVbMF0gaW4gV1NQOgorICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfZndzKHZhbHVlKQorICAgICAgICBkb21haW5fbGl0ZXJhbC5hcHBlbmQodG9rZW4pCisgICAgaWYgX2NoZWNrX2Zvcl9lYXJseV9kbF9lbmQodmFsdWUsIGRvbWFpbl9saXRlcmFsKToKKyAgICAgICAgcmV0dXJuIGRvbWFpbl9saXRlcmFsLCB2YWx1ZQorICAgIGlmIHZhbHVlWzBdICE9ICddJzoKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoImV4cGVjdGVkICddJyBhdCBlbmQgb2YgZG9tYWluLWxpdGVyYWwgIgorICAgICAgICAgICAgICAgICJidXQgZm91bmQgJ3t9JyIuZm9ybWF0KHZhbHVlKSkKKyAgICBkb21haW5fbGl0ZXJhbC5hcHBlbmQoVmFsdWVUZXJtaW5hbCgnXScsICdkb21haW4tbGl0ZXJhbC1lbmQnKSkKKyAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgIGRvbWFpbl9saXRlcmFsLmFwcGVuZCh0b2tlbikKKyAgICByZXR1cm4gZG9tYWluX2xpdGVyYWwsIHZhbHVlCisKK2RlZiBnZXRfZG9tYWluKHZhbHVlKToKKyAgICAiIiIgZG9tYWluID0gZG90LWF0b20gLyBkb21haW4tbGl0ZXJhbCAvIG9icy1kb21haW4KKyAgICAgICAgb2JzLWRvbWFpbiA9IGF0b20gKigiLiIgYXRvbSkpCisKKyAgICAiIiIKKyAgICBkb21haW4gPSBEb21haW4oKQorICAgIGxlYWRlciA9IE5vbmUKKyAgICBpZiB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgbGVhZGVyLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoCisgICAgICAgICAgICAiZXhwZWN0ZWQgZG9tYWluIGJ1dCBmb3VuZCAne30nIi5mb3JtYXQodmFsdWUpKQorICAgIGlmIHZhbHVlWzBdID09ICdbJzoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2RvbWFpbl9saXRlcmFsKHZhbHVlKQorICAgICAgICBpZiBsZWFkZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0b2tlbls6MF0gPSBbbGVhZGVyXQorICAgICAgICBkb21haW4uYXBwZW5kKHRva2VuKQorICAgICAgICByZXR1cm4gZG9tYWluLCB2YWx1ZQorICAgIHRyeToKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2RvdF9hdG9tKHZhbHVlKQorICAgIGV4Y2VwdCBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcjoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2F0b20odmFsdWUpCisgICAgaWYgbGVhZGVyIGlzIG5vdCBOb25lOgorICAgICAgICB0b2tlbls6MF0gPSBbbGVhZGVyXQorICAgIGRvbWFpbi5hcHBlbmQodG9rZW4pCisgICAgaWYgdmFsdWUgYW5kIHZhbHVlWzBdID09ICcuJzoKKyAgICAgICAgZG9tYWluLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJkb21haW4gaXMgbm90IGEgZG90LWF0b20gKGNvbnRhaW5zIENGV1MpIikpCisgICAgICAgIGlmIGRvbWFpblswXS50b2tlbl90eXBlID09ICdkb3QtYXRvbSc6CisgICAgICAgICAgICBkb21haW5bOl0gPSBkb21haW5bMF0KKyAgICAgICAgd2hpbGUgdmFsdWUgYW5kIHZhbHVlWzBdID09ICcuJzoKKyAgICAgICAgICAgIGRvbWFpbi5hcHBlbmQoRE9UKQorICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2F0b20odmFsdWVbMTpdKQorICAgICAgICAgICAgZG9tYWluLmFwcGVuZCh0b2tlbikKKyAgICByZXR1cm4gZG9tYWluLCB2YWx1ZQorCitkZWYgZ2V0X2FkZHJfc3BlYyh2YWx1ZSk6CisgICAgIiIiIGFkZHItc3BlYyA9IGxvY2FsLXBhcnQgIkAiIGRvbWFpbgorCisgICAgIiIiCisgICAgYWRkcl9zcGVjID0gQWRkclNwZWMoKQorICAgIHRva2VuLCB2YWx1ZSA9IGdldF9sb2NhbF9wYXJ0KHZhbHVlKQorICAgIGFkZHJfc3BlYy5hcHBlbmQodG9rZW4pCisgICAgaWYgbm90IHZhbHVlIG9yIHZhbHVlWzBdICE9ICdAJzoKKyAgICAgICAgYWRkcl9zcGVjLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgImFkZC1zcGVjIGxvY2FsIHBhcnQgd2l0aCBubyBkb21haW4iKSkKKyAgICAgICAgcmV0dXJuIGFkZHJfc3BlYywgdmFsdWUKKyAgICBhZGRyX3NwZWMuYXBwZW5kKFZhbHVlVGVybWluYWwoJ0AnLCAnYWRkcmVzcy1hdC1zeW1ib2wnKSkKKyAgICB0b2tlbiwgdmFsdWUgPSBnZXRfZG9tYWluKHZhbHVlWzE6XSkKKyAgICBhZGRyX3NwZWMuYXBwZW5kKHRva2VuKQorICAgIHJldHVybiBhZGRyX3NwZWMsIHZhbHVlCisKK2RlZiBnZXRfb2JzX3JvdXRlKHZhbHVlKToKKyAgICAiIiIgb2JzLXJvdXRlID0gb2JzLWRvbWFpbi1saXN0ICI6IgorICAgICAgICBvYnMtZG9tYWluLWxpc3QgPSAqKENGV1MgLyAiLCIpICJAIiBkb21haW4gKigiLCIgW0NGV1NdIFsiQCIgZG9tYWluXSkKKworICAgICAgICBSZXR1cm5zIGFuIG9icy1yb3V0ZSB0b2tlbiB3aXRoIHRoZSBhcHByb3ByaWF0ZSBzdWItdG9rZW5zICh0aGF0IGlzLAorICAgICAgICB0aGVyZSBpcyBubyBvYnMtZG9tYWluLWxpc3QgaW4gdGhlIHBhcnNlIHRyZWUpLgorICAgICIiIgorICAgIG9ic19yb3V0ZSA9IE9ic1JvdXRlKCkKKyAgICB3aGlsZSB2YWx1ZSBhbmQgKHZhbHVlWzBdPT0nLCcgb3IgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVIpOgorICAgICAgICBpZiB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICAgICAgb2JzX3JvdXRlLmFwcGVuZCh0b2tlbikKKyAgICAgICAgZWxpZiB2YWx1ZVswXSA9PSAnLCc6CisgICAgICAgICAgICBvYnNfcm91dGUuYXBwZW5kKExpc3RTZXBhcmF0b3IpCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIGlmIG5vdCB2YWx1ZSBvciB2YWx1ZVswXSAhPSAnQCc6CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgImV4cGVjdGVkIG9icy1yb3V0ZSBkb21haW4gYnV0IGZvdW5kICd7fSciLmZvcm1hdCh2YWx1ZSkpCisgICAgb2JzX3JvdXRlLmFwcGVuZChSb3V0ZUNvbXBvbmVudE1hcmtlcikKKyAgICB0b2tlbiwgdmFsdWUgPSBnZXRfZG9tYWluKHZhbHVlWzE6XSkKKyAgICBvYnNfcm91dGUuYXBwZW5kKHRva2VuKQorICAgIHdoaWxlIHZhbHVlIGFuZCB2YWx1ZVswXT09JywnOgorICAgICAgICBvYnNfcm91dGUuYXBwZW5kKExpc3RTZXBhcmF0b3IpCisgICAgICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGlmIHZhbHVlWzBdIGluIENGV1NfTEVBREVSOgorICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgICAgICBvYnNfcm91dGUuYXBwZW5kKHRva2VuKQorICAgICAgICBpZiB2YWx1ZVswXSA9PSAnQCc6CisgICAgICAgICAgICBvYnNfcm91dGUuYXBwZW5kKFJvdXRlQ29tcG9uZW50TWFya2VyKQorICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2RvbWFpbih2YWx1ZVsxOl0pCisgICAgICAgICAgICBvYnNfcm91dGUuYXBwZW5kKHRva2VuKQorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoImVuZCBvZiBoZWFkZXIgd2hpbGUgcGFyc2luZyBvYnMtcm91dGUiKQorICAgIGlmIHZhbHVlWzBdICE9ICc6JzoKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoICJleHBlY3RlZCAnOicgbWFya2luZyBlbmQgb2YgIgorICAgICAgICAgICAgIm9icy1yb3V0ZSBidXQgZm91bmQgJ3t9JyIuZm9ybWF0KHZhbHVlKSkKKyAgICBvYnNfcm91dGUuYXBwZW5kKFZhbHVlVGVybWluYWwoJzonLCAnZW5kLW9mLW9icy1yb3V0ZS1tYXJrZXInKSkKKyAgICByZXR1cm4gb2JzX3JvdXRlLCB2YWx1ZVsxOl0KKworZGVmIGdldF9hbmdsZV9hZGRyKHZhbHVlKToKKyAgICAiIiIgYW5nbGUtYWRkciA9IFtDRldTXSAiPCIgYWRkci1zcGVjICI+IiBbQ0ZXU10gLyBvYnMtYW5nbGUtYWRkcgorICAgICAgICBvYnMtYW5nbGUtYWRkciA9IFtDRldTXSAiPCIgb2JzLXJvdXRlIGFkZHItc3BlYyAiPiIgW0NGV1NdCisKKyAgICAiIiIKKyAgICBhbmdsZV9hZGRyID0gQW5nbGVBZGRyKCkKKyAgICBpZiB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgIGFuZ2xlX2FkZHIuYXBwZW5kKHRva2VuKQorICAgIGlmIG5vdCB2YWx1ZSBvciB2YWx1ZVswXSAhPSAnPCc6CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgImV4cGVjdGVkIGFuZ2xlLWFkZHIgYnV0IGZvdW5kICd7fSciLmZvcm1hdCh2YWx1ZSkpCisgICAgYW5nbGVfYWRkci5hcHBlbmQoVmFsdWVUZXJtaW5hbCgnPCcsICdhbmdsZS1hZGRyLXN0YXJ0JykpCisgICAgdmFsdWUgPSB2YWx1ZVsxOl0KKyAgICAjIEFsdGhvdWdoIGl0IGlzIG5vdCBsZWdhbCBwZXIgUkZDNTMyMiwgU01UUCB1c2VzICc8PicgaW4gY2VydGFpbgorICAgICMgY2lyY3Vtc3RhbmNlcy4KKyAgICBpZiB2YWx1ZVswXSA9PSAnPic6CisgICAgICAgIGFuZ2xlX2FkZHIuYXBwZW5kKFZhbHVlVGVybWluYWwoJz4nLCAnYW5nbGUtYWRkci1lbmQnKSkKKyAgICAgICAgYW5nbGVfYWRkci5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJudWxsIGFkZHItc3BlYyBpbiBhbmdsZS1hZGRyIikpCisgICAgICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgICAgIHJldHVybiBhbmdsZV9hZGRyLCB2YWx1ZQorICAgIHRyeToKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2FkZHJfc3BlYyh2YWx1ZSkKKyAgICBleGNlcHQgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3I6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9vYnNfcm91dGUodmFsdWUpCisgICAgICAgICAgICBhbmdsZV9hZGRyLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAib2Jzb2xldGUgcm91dGUgc3BlY2lmaWNhdGlvbiBpbiBhbmdsZS1hZGRyIikpCisgICAgICAgIGV4Y2VwdCBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgICAgICJleHBlY3RlZCBhZGRyLXNwZWMgb3Igb2JzLXJvdXRlIGJ1dCBmb3VuZCAne30nIi5mb3JtYXQodmFsdWUpKQorICAgICAgICBhbmdsZV9hZGRyLmFwcGVuZCh0b2tlbikKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2FkZHJfc3BlYyh2YWx1ZSkKKyAgICBhbmdsZV9hZGRyLmFwcGVuZCh0b2tlbikKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gPT0gJz4nOgorICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIGVsc2U6CisgICAgICAgIGFuZ2xlX2FkZHIuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAibWlzc2luZyB0cmFpbGluZyAnPicgb24gYW5nbGUtYWRkciIpKQorICAgIGFuZ2xlX2FkZHIuYXBwZW5kKFZhbHVlVGVybWluYWwoJz4nLCAnYW5nbGUtYWRkci1lbmQnKSkKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBhbmdsZV9hZGRyLmFwcGVuZCh0b2tlbikKKyAgICByZXR1cm4gYW5nbGVfYWRkciwgdmFsdWUKKworZGVmIGdldF9kaXNwbGF5X25hbWUodmFsdWUpOgorICAgICIiIiBkaXNwbGF5LW5hbWUgPSBwaHJhc2UKKworICAgIEJlY2F1c2UgdGhpcyBpcyBzaW1wbHkgYSBuYW1lLXJ1bGUsIHdlIGRvbid0IHJldHVybiBhIGRpc3BsYXktbmFtZQorICAgIHRva2VuIGNvbnRhaW5pbmcgYSBwaHJhc2UsIGJ1dCByYXRoZXIgYSBkaXNwbGF5LW5hbWUgdG9rZW4gd2l0aAorICAgIHRoZSBjb250ZW50IG9mIHRoZSBwaHJhc2UuCisKKyAgICAiIiIKKyAgICBkaXNwbGF5X25hbWUgPSBEaXNwbGF5TmFtZSgpCisgICAgdG9rZW4sIHZhbHVlID0gZ2V0X3BocmFzZSh2YWx1ZSkKKyAgICBkaXNwbGF5X25hbWUuZXh0ZW5kKHRva2VuWzpdKQorICAgIGRpc3BsYXlfbmFtZS5kZWZlY3RzID0gdG9rZW4uZGVmZWN0c1s6XQorICAgIHJldHVybiBkaXNwbGF5X25hbWUsIHZhbHVlCisKKworZGVmIGdldF9uYW1lX2FkZHIodmFsdWUpOgorICAgICIiIiBuYW1lLWFkZHIgPSBbZGlzcGxheS1uYW1lXSBhbmdsZS1hZGRyCisKKyAgICAiIiIKKyAgICBuYW1lX2FkZHIgPSBOYW1lQWRkcigpCisgICAgIyBCb3RoIHRoZSBvcHRpb25hbCBkaXNwbGF5IG5hbWUgYW5kIHRoZSBhbmdsZS1hZGRyIGNhbiBzdGFydCB3aXRoIGNmd3MuCisgICAgbGVhZGVyID0gTm9uZQorICAgIGlmIHZhbHVlWzBdIGluIENGV1NfTEVBREVSOgorICAgICAgICBsZWFkZXIsIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgICAgICJleHBlY3RlZCBuYW1lLWFkZHIgYnV0IGZvdW5kICd7fSciLmZvcm1hdChsZWFkZXIpKQorICAgIGlmIHZhbHVlWzBdICE9ICc8JzoKKyAgICAgICAgaWYgdmFsdWVbMF0gaW4gUEhSQVNFX0VORFM6CisgICAgICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgbmFtZS1hZGRyIGJ1dCBmb3VuZCAne30nIi5mb3JtYXQodmFsdWUpKQorICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfZGlzcGxheV9uYW1lKHZhbHVlKQorICAgICAgICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgbmFtZS1hZGRyIGJ1dCBmb3VuZCAne30nIi5mb3JtYXQodG9rZW4pKQorICAgICAgICBpZiBsZWFkZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0b2tlblswXVs6MF0gPSBbbGVhZGVyXQorICAgICAgICAgICAgbGVhZGVyID0gTm9uZQorICAgICAgICBuYW1lX2FkZHIuYXBwZW5kKHRva2VuKQorICAgIHRva2VuLCB2YWx1ZSA9IGdldF9hbmdsZV9hZGRyKHZhbHVlKQorICAgIGlmIGxlYWRlciBpcyBub3QgTm9uZToKKyAgICAgICAgdG9rZW5bOjBdID0gW2xlYWRlcl0KKyAgICBuYW1lX2FkZHIuYXBwZW5kKHRva2VuKQorICAgIHJldHVybiBuYW1lX2FkZHIsIHZhbHVlCisKK2RlZiBnZXRfbWFpbGJveCh2YWx1ZSk6CisgICAgIiIiIG1haWxib3ggPSBuYW1lLWFkZHIgLyBhZGRyLXNwZWMKKworICAgICIiIgorICAgICMgVGhlIG9ubHkgd2F5IHRvIGZpZ3VyZSBvdXQgaWYgd2UgYXJlIGRlYWxpbmcgd2l0aCBhIG5hbWUtYWRkciBvciBhbgorICAgICMgYWRkci1zcGVjIGlzIHRvIHRyeSBwYXJzaW5nIGVhY2ggb25lLgorICAgIG1haWxib3ggPSBNYWlsYm94KCkKKyAgICB0cnk6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9uYW1lX2FkZHIodmFsdWUpCisgICAgZXhjZXB0IGVycm9ycy5IZWFkZXJQYXJzZUVycm9yOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfYWRkcl9zcGVjKHZhbHVlKQorICAgICAgICBleGNlcHQgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3I6CisgICAgICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgbWFpbGJveCBidXQgZm91bmQgJ3t9JyIuZm9ybWF0KHZhbHVlKSkKKyAgICBpZiBhbnkoaXNpbnN0YW5jZSh4LCBlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCkKKyAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gdG9rZW4uYWxsX2RlZmVjdHMpOgorICAgICAgICBtYWlsYm94LnRva2VuX3R5cGUgPSAnaW52YWxpZC1tYWlsYm94JworICAgIG1haWxib3guYXBwZW5kKHRva2VuKQorICAgIHJldHVybiBtYWlsYm94LCB2YWx1ZQorCitkZWYgZ2V0X2ludmFsaWRfbWFpbGJveCh2YWx1ZSwgZW5kY2hhcnMpOgorICAgICIiIiBSZWFkIGV2ZXJ5dGhpbmcgdXAgdG8gb25lIG9mIHRoZSBjaGFycyBpbiBlbmRjaGFycy4KKworICAgIFRoaXMgaXMgb3V0c2lkZSB0aGUgZm9ybWFsIGdyYW1tYXIuICBUaGUgSW52YWxpZE1haWxib3ggVG9rZW5MaXN0IHRoYXQgaXMKKyAgICByZXR1cm5lZCBhY3RzIGxpa2UgYSBNYWlsYm94LCBidXQgdGhlIGRhdGEgYXR0cmlidXRlcyBhcmUgTm9uZS4KKworICAgICIiIgorICAgIGludmFsaWRfbWFpbGJveCA9IEludmFsaWRNYWlsYm94KCkKKyAgICB3aGlsZSB2YWx1ZSBhbmQgdmFsdWVbMF0gbm90IGluIGVuZGNoYXJzOgorICAgICAgICBpZiB2YWx1ZVswXSBpbiBQSFJBU0VfRU5EUzoKKyAgICAgICAgICAgIGludmFsaWRfbWFpbGJveC5hcHBlbmQoVmFsdWVUZXJtaW5hbCh2YWx1ZVswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWlzcGxhY2VkLXNwZWNpYWwnKSkKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfcGhyYXNlKHZhbHVlKQorICAgICAgICAgICAgaW52YWxpZF9tYWlsYm94LmFwcGVuZCh0b2tlbikKKyAgICByZXR1cm4gaW52YWxpZF9tYWlsYm94LCB2YWx1ZQorCitkZWYgZ2V0X21haWxib3hfbGlzdCh2YWx1ZSk6CisgICAgIiIiIG1haWxib3gtbGlzdCA9IChtYWlsYm94ICooIiwiIG1haWxib3gpKSAvIG9icy1tYm94LWxpc3QKKyAgICAgICAgb2JzLW1ib3gtbGlzdCA9ICooW0NGV1NdICIsIikgbWFpbGJveCAqKCIsIiBbbWFpbGJveCAvIENGV1NdKQorCisgICAgRm9yIHRoaXMgcm91dGluZSB3ZSBnbyBvdXRzaWRlIHRoZSBmb3JtYWwgZ3JhbW1hciBpbiBvcmRlciB0byBpbXByb3ZlIGVycm9yCisgICAgaGFuZGxpbmcuICBXZSByZWNvZ25pemUgdGhlIGVuZCBvZiB0aGUgbWFpbGJveCBsaXN0IG9ubHkgYXQgdGhlIGVuZCBvZiB0aGUKKyAgICB2YWx1ZSBvciBhdCBhICc7JyAodGhlIGdyb3VwIHRlcm1pbmF0b3IpLiAgVGhpcyBpcyBzbyB0aGF0IHdlIGNhbiB0dXJuCisgICAgaW52YWxpZCBtYWlsYm94ZXMgaW50byBJbnZhbGlkTWFpbGJveCB0b2tlbnMgYW5kIGNvbnRpbnVlIHBhcnNpbmcgYW55CisgICAgcmVtYWluaW5nIHZhbGlkIG1haWxib3hlcy4gIFdlIGFsc28gYWxsb3cgYWxsIG1haWxib3ggZW50cmllcyB0byBiZSBudWxsLAorICAgIGFuZCB0aGlzIGNvbmRpdGlvbiBpcyBoYW5kbGVkIGFwcHJvcHJpYXRlbHkgYXQgYSBoaWdoZXIgbGV2ZWwuCisKKyAgICAiIiIKKyAgICBtYWlsYm94X2xpc3QgPSBNYWlsYm94TGlzdCgpCisgICAgd2hpbGUgdmFsdWUgYW5kIHZhbHVlWzBdICE9ICc7JzoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X21haWxib3godmFsdWUpCisgICAgICAgICAgICBtYWlsYm94X2xpc3QuYXBwZW5kKHRva2VuKQorICAgICAgICBleGNlcHQgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3I6CisgICAgICAgICAgICBsZWFkZXIgPSBOb25lCisgICAgICAgICAgICBpZiB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgICAgICAgICBsZWFkZXIsIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgICAgICAgICAgaWYgbm90IHZhbHVlIG9yIHZhbHVlWzBdIGluICcsOyc6CisgICAgICAgICAgICAgICAgICAgIG1haWxib3hfbGlzdC5hcHBlbmQobGVhZGVyKQorICAgICAgICAgICAgICAgICAgICBtYWlsYm94X2xpc3QuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgImVtcHR5IGVsZW1lbnQgaW4gbWFpbGJveC1saXN0IikpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2ludmFsaWRfbWFpbGJveCh2YWx1ZSwgJyw7JykKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVhZGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5bOjBdID0gW2xlYWRlcl0KKyAgICAgICAgICAgICAgICAgICAgbWFpbGJveF9saXN0LmFwcGVuZCh0b2tlbikKKyAgICAgICAgICAgICAgICAgICAgbWFpbGJveF9saXN0LmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgImludmFsaWQgbWFpbGJveCBpbiBtYWlsYm94LWxpc3QiKSkKKyAgICAgICAgICAgIGVsaWYgdmFsdWVbMF0gPT0gJywnOgorICAgICAgICAgICAgICAgIG1haWxib3hfbGlzdC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuT2Jzb2xldGVIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAgICAgICAgICJlbXB0eSBlbGVtZW50IGluIG1haWxib3gtbGlzdCIpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfaW52YWxpZF9tYWlsYm94KHZhbHVlLCAnLDsnKQorICAgICAgICAgICAgICAgIGlmIGxlYWRlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5bOjBdID0gW2xlYWRlcl0KKyAgICAgICAgICAgICAgICBtYWlsYm94X2xpc3QuYXBwZW5kKHRva2VuKQorICAgICAgICAgICAgICAgIG1haWxib3hfbGlzdC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAgICAgImludmFsaWQgbWFpbGJveCBpbiBtYWlsYm94LWxpc3QiKSkKKyAgICAgICAgaWYgdmFsdWUgYW5kIHZhbHVlWzBdIG5vdCBpbiAnLDsnOgorICAgICAgICAgICAgIyBDcmFwIGFmdGVyIG1haWxib3g7IHRyZWF0IGl0IGFzIGFuIGludmFsaWQgbWFpbGJveC4KKyAgICAgICAgICAgICMgVGhlIG1haWxib3ggaW5mbyB3aWxsIHN0aWxsIGJlIGF2YWlsYWJsZS4KKyAgICAgICAgICAgIG1haWxib3ggPSBtYWlsYm94X2xpc3RbLTFdCisgICAgICAgICAgICBtYWlsYm94LnRva2VuX3R5cGUgPSAnaW52YWxpZC1tYWlsYm94JworICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2ludmFsaWRfbWFpbGJveCh2YWx1ZSwgJyw7JykKKyAgICAgICAgICAgIG1haWxib3guZXh0ZW5kKHRva2VuKQorICAgICAgICAgICAgbWFpbGJveF9saXN0LmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgICAgICJpbnZhbGlkIG1haWxib3ggaW4gbWFpbGJveC1saXN0IikpCisgICAgICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSA9PSAnLCc6CisgICAgICAgICAgICBtYWlsYm94X2xpc3QuYXBwZW5kKExpc3RTZXBhcmF0b3IpCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIHJldHVybiBtYWlsYm94X2xpc3QsIHZhbHVlCisKKworZGVmIGdldF9ncm91cF9saXN0KHZhbHVlKToKKyAgICAiIiIgZ3JvdXAtbGlzdCA9IG1haWxib3gtbGlzdCAvIENGV1MgLyBvYnMtZ3JvdXAtbGlzdAorICAgICAgICBvYnMtZ3JvdXAtbGlzdCA9IDEqKFtDRldTXSAiLCIpIFtDRldTXQorCisgICAgIiIiCisgICAgZ3JvdXBfbGlzdCA9IEdyb3VwTGlzdCgpCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICBncm91cF9saXN0LmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgImVuZCBvZiBoZWFkZXIgYmVmb3JlIGdyb3VwLWxpc3QiKSkKKyAgICAgICAgcmV0dXJuIGdyb3VwX2xpc3QsIHZhbHVlCisgICAgbGVhZGVyID0gTm9uZQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgbGVhZGVyLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICAjIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBpbiBlbWFpbCBwYXJzaW5nLCBzaW5jZSBDRldTLW9ubHkgaXMgYQorICAgICAgICAgICAgIyBsZWdhbCBhbHRlcm5hdGl2ZSB0byBncm91cC1saXN0IGluIGEgZ3JvdXAsIHdoaWNoIGlzIHRoZSBvbmx5CisgICAgICAgICAgICAjIHBsYWNlIGdyb3VwLWxpc3QgYXBwZWFycy4KKyAgICAgICAgICAgIGdyb3VwX2xpc3QuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAgICAgImVuZCBvZiBoZWFkZXIgaW4gZ3JvdXAtbGlzdCIpKQorICAgICAgICAgICAgZ3JvdXBfbGlzdC5hcHBlbmQobGVhZGVyKQorICAgICAgICAgICAgcmV0dXJuIGdyb3VwX2xpc3QsIHZhbHVlCisgICAgICAgIGlmIHZhbHVlWzBdID09ICc7JzoKKyAgICAgICAgICAgIGdyb3VwX2xpc3QuYXBwZW5kKGxlYWRlcikKKyAgICAgICAgICAgIHJldHVybiBncm91cF9saXN0LCB2YWx1ZQorICAgIHRva2VuLCB2YWx1ZSA9IGdldF9tYWlsYm94X2xpc3QodmFsdWUpCisgICAgaWYgbGVuKHRva2VuLmFsbF9tYWlsYm94ZXMpPT0wOgorICAgICAgICBpZiBsZWFkZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBncm91cF9saXN0LmFwcGVuZChsZWFkZXIpCisgICAgICAgIGdyb3VwX2xpc3QuZXh0ZW5kKHRva2VuKQorICAgICAgICBncm91cF9saXN0LmRlZmVjdHMuYXBwZW5kKGVycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJncm91cC1saXN0IHdpdGggZW1wdHkgZW50cmllcyIpKQorICAgICAgICByZXR1cm4gZ3JvdXBfbGlzdCwgdmFsdWUKKyAgICBpZiBsZWFkZXIgaXMgbm90IE5vbmU6CisgICAgICAgIHRva2VuWzowXSA9IFtsZWFkZXJdCisgICAgZ3JvdXBfbGlzdC5hcHBlbmQodG9rZW4pCisgICAgcmV0dXJuIGdyb3VwX2xpc3QsIHZhbHVlCisKK2RlZiBnZXRfZ3JvdXAodmFsdWUpOgorICAgICIiIiBncm91cCA9IGRpc3BsYXktbmFtZSAiOiIgW2dyb3VwLWxpc3RdICI7IiBbQ0ZXU10KKworICAgICIiIgorICAgIGdyb3VwID0gR3JvdXAoKQorICAgIHRva2VuLCB2YWx1ZSA9IGdldF9kaXNwbGF5X25hbWUodmFsdWUpCisgICAgaWYgbm90IHZhbHVlIG9yIHZhbHVlWzBdICE9ICc6JzoKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoImV4cGVjdGVkICc6JyBhdCBlbmQgb2YgZ3JvdXAgIgorICAgICAgICAgICAgImRpc3BsYXkgbmFtZSBidXQgZm91bmQgJ3t9JyIuZm9ybWF0KHZhbHVlKSkKKyAgICBncm91cC5hcHBlbmQodG9rZW4pCisgICAgZ3JvdXAuYXBwZW5kKFZhbHVlVGVybWluYWwoJzonLCAnZ3JvdXAtZGlzcGxheS1uYW1lLXRlcm1pbmF0b3InKSkKKyAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSA9PSAnOyc6CisgICAgICAgIGdyb3VwLmFwcGVuZChWYWx1ZVRlcm1pbmFsKCc7JywgJ2dyb3VwLXRlcm1pbmF0b3InKSkKKyAgICAgICAgcmV0dXJuIGdyb3VwLCB2YWx1ZVsxOl0KKyAgICB0b2tlbiwgdmFsdWUgPSBnZXRfZ3JvdXBfbGlzdCh2YWx1ZSkKKyAgICBncm91cC5hcHBlbmQodG9rZW4pCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICBncm91cC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJlbmQgb2YgaGVhZGVyIGluIGdyb3VwIikpCisgICAgaWYgdmFsdWVbMF0gIT0gJzsnOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICJleHBlY3RlZCAnOycgYXQgZW5kIG9mIGdyb3VwIGJ1dCBmb3VuZCB7fSIuZm9ybWF0KHZhbHVlKSkKKyAgICBncm91cC5hcHBlbmQoVmFsdWVUZXJtaW5hbCgnOycsICdncm91cC10ZXJtaW5hdG9yJykpCisgICAgdmFsdWUgPSB2YWx1ZVsxOl0KKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBncm91cC5hcHBlbmQodG9rZW4pCisgICAgcmV0dXJuIGdyb3VwLCB2YWx1ZQorCitkZWYgZ2V0X2FkZHJlc3ModmFsdWUpOgorICAgICIiIiBhZGRyZXNzID0gbWFpbGJveCAvIGdyb3VwCisKKyAgICBOb3RlIHRoYXQgY291bnRlci1pbnR1aXRpdmVseSwgYW4gYWRkcmVzcyBjYW4gYmUgZWl0aGVyIGEgc2luZ2xlIGFkZHJlc3Mgb3IKKyAgICBhIGxpc3Qgb2YgYWRkcmVzc2VzIChhIGdyb3VwKS4gIFRoaXMgaXMgd2h5IHRoZSByZXR1cm5lZCBBZGRyZXNzIG9iamVjdCBoYXMKKyAgICBhICdtYWlsYm94ZXMnIGF0dHJpYnV0ZSB3aGljaCB0cmVhdHMgYSBzaW5nbGUgYWRkcmVzcyBhcyBhIGxpc3Qgb2YgbGVuZ3RoCisgICAgb25lLiAgV2hlbiB5b3UgbmVlZCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gdG8gdHdvIGNhc2VzLCBleHRyYWN0IHRoZSBzaW5nbGUKKyAgICBlbGVtZW50LCB3aGljaCBpcyBlaXRoZXIgYSBtYWlsYm94IG9yIGEgZ3JvdXAgdG9rZW4uCisKKyAgICAiIiIKKyAgICAjIFRoZSBmb3JtYWwgZ3JhbW1hciBpc24ndCB2ZXJ5IGhlbHBmdWwgd2hlbiBwYXJzaW5nIGFuIGFkZHJlc3MuICBtYWlsYm94CisgICAgIyBhbmQgZ3JvdXAsIGVzcGVjaWFsbHkgd2hlbiBhbGxvd2luZyBmb3Igb2Jzb2xldGUgZm9ybXMsIHN0YXJ0IG9mZiB2ZXJ5CisgICAgIyBzaW1pbGFybHkuICBJdCBpcyBvbmx5IHdoZW4geW91IHJlYWNoIG9uZSBvZiBALCA8LCBvciA6IHRoYXQgeW91IGtub3cKKyAgICAjIHdoYXQgeW91J3ZlIGdvdC4gIFNvLCB3ZSB0cnkgZWFjaCBvbmUgaW4gdHVybiwgc3RhcnRpbmcgd2l0aCB0aGUgbW9yZQorICAgICMgbGlrZWx5IG9mIHRoZSB0d28uICBXZSBjb3VsZCBwZXJoYXBzIG1ha2UgdGhpcyBtb3JlIGVmZmljaWVudCBieSBsb29raW5nCisgICAgIyBmb3IgYSBwaHJhc2UgYW5kIHRoZW4gYnJhbmNoaW5nIGJhc2VkIG9uIHRoZSBuZXh0IGNoYXJhY3RlciwgYnV0IHRoYXQKKyAgICAjIHdvdWxkIGJlIGEgcHJlbWF0dXJlIG9wdGltaXphdGlvbi4KKyAgICBhZGRyZXNzID0gQWRkcmVzcygpCisgICAgdHJ5OgorICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfZ3JvdXAodmFsdWUpCisgICAgZXhjZXB0IGVycm9ycy5IZWFkZXJQYXJzZUVycm9yOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfbWFpbGJveCh2YWx1ZSkKKyAgICAgICAgZXhjZXB0IGVycm9ycy5IZWFkZXJQYXJzZUVycm9yOgorICAgICAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoCisgICAgICAgICAgICAgICAgImV4cGVjdGVkIGFkZHJlc3MgYnV0IGZvdW5kICd7fSciLmZvcm1hdCh2YWx1ZSkpCisgICAgYWRkcmVzcy5hcHBlbmQodG9rZW4pCisgICAgcmV0dXJuIGFkZHJlc3MsIHZhbHVlCisKK2RlZiBnZXRfYWRkcmVzc19saXN0KHZhbHVlKToKKyAgICAiIiIgYWRkcmVzc19saXN0ID0gKGFkZHJlc3MgKigiLCIgYWRkcmVzcykpIC8gb2JzLWFkZHItbGlzdAorICAgICAgICBvYnMtYWRkci1saXN0ID0gKihbQ0ZXU10gIiwiKSBhZGRyZXNzICooIiwiIFthZGRyZXNzIC8gQ0ZXU10pCisKKyAgICBXZSBkZXBhcnQgZnJvbSB0aGUgZm9ybWFsIGdyYW1tYXIgaGVyZSBieSBjb250aW51aW5nIHRvIHBhcnNlIHVudGlsIHRoZSBlbmQKKyAgICBvZiB0aGUgaW5wdXQsIGFzc3VtaW5nIHRoZSBpbnB1dCB0byBiZSBlbnRpcmVseSBjb21wb3NlZCBvZiBhbgorICAgIGFkZHJlc3MtbGlzdC4gIFRoaXMgaXMgYWx3YXlzIHRydWUgaW4gZW1haWwgcGFyc2luZywgYW5kIGFsbG93cyB1cworICAgIHRvIHNraXAgaW52YWxpZCBhZGRyZXNzZXMgdG8gcGFyc2UgYWRkaXRpb25hbCB2YWxpZCBvbmVzLgorCisgICAgIiIiCisgICAgYWRkcmVzc19saXN0ID0gQWRkcmVzc0xpc3QoKQorICAgIHdoaWxlIHZhbHVlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfYWRkcmVzcyh2YWx1ZSkKKyAgICAgICAgICAgIGFkZHJlc3NfbGlzdC5hcHBlbmQodG9rZW4pCisgICAgICAgIGV4Y2VwdCBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvciBhcyBlcnI6CisgICAgICAgICAgICBsZWFkZXIgPSBOb25lCisgICAgICAgICAgICBpZiB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgICAgICAgICBsZWFkZXIsIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgICAgICAgICAgaWYgbm90IHZhbHVlIG9yIHZhbHVlWzBdID09ICcsJzoKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saXN0LmFwcGVuZChsZWFkZXIpCisgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGlzdC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuT2Jzb2xldGVIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAiYWRkcmVzcy1saXN0IGVudHJ5IHdpdGggbm8gY29udGVudCIpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9pbnZhbGlkX21haWxib3godmFsdWUsICcsJykKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVhZGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5bOjBdID0gW2xlYWRlcl0KKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saXN0LmFwcGVuZChBZGRyZXNzKFt0b2tlbl0pKQorICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpc3QuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAiaW52YWxpZCBhZGRyZXNzIGluIGFkZHJlc3MtbGlzdCIpKQorICAgICAgICAgICAgZWxpZiB2YWx1ZVswXSA9PSAnLCc6CisgICAgICAgICAgICAgICAgYWRkcmVzc19saXN0LmRlZmVjdHMuYXBwZW5kKGVycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAgICAgImVtcHR5IGVsZW1lbnQgaW4gYWRkcmVzcy1saXN0IikpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9pbnZhbGlkX21haWxib3godmFsdWUsICcsJykKKyAgICAgICAgICAgICAgICBpZiBsZWFkZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHRva2VuWzowXSA9IFtsZWFkZXJdCisgICAgICAgICAgICAgICAgYWRkcmVzc19saXN0LmFwcGVuZChBZGRyZXNzKFt0b2tlbl0pKQorICAgICAgICAgICAgICAgIGFkZHJlc3NfbGlzdC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAgICAgImludmFsaWQgYWRkcmVzcyBpbiBhZGRyZXNzLWxpc3QiKSkKKyAgICAgICAgaWYgdmFsdWUgYW5kIHZhbHVlWzBdICE9ICcsJzoKKyAgICAgICAgICAgICMgQ3JhcCBhZnRlciBhZGRyZXNzOyB0cmVhdCBpdCBhcyBhbiBpbnZhbGlkIG1haWxib3guCisgICAgICAgICAgICAjIFRoZSBtYWlsYm94IGluZm8gd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUuCisgICAgICAgICAgICBtYWlsYm94ID0gYWRkcmVzc19saXN0Wy0xXVswXQorICAgICAgICAgICAgbWFpbGJveC50b2tlbl90eXBlID0gJ2ludmFsaWQtbWFpbGJveCcKKyAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9pbnZhbGlkX21haWxib3godmFsdWUsICcsJykKKyAgICAgICAgICAgIG1haWxib3guZXh0ZW5kKHRva2VuKQorICAgICAgICAgICAgYWRkcmVzc19saXN0LmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgICAgICJpbnZhbGlkIGFkZHJlc3MgaW4gYWRkcmVzcy1saXN0IikpCisgICAgICAgIGlmIHZhbHVlOiAgIyBNdXN0IGJlIGEgLCBhdCB0aGlzIHBvaW50LgorICAgICAgICAgICAgYWRkcmVzc19saXN0LmFwcGVuZChWYWx1ZVRlcm1pbmFsKCcsJywgJ2xpc3Qtc2VwYXJhdG9yJykpCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIHJldHVybiBhZGRyZXNzX2xpc3QsIHZhbHVlCisKKyMKKyMgWFhYOiBBcyBJIGJlZ2luIHRvIGFkZCBhZGRpdGlvbmFsIGhlYWRlciBwYXJzZXJzLCBJJ20gcmVhbGl6aW5nIHdlIHByb2JhYmx5CisjIGhhdmUgdHdvIGxldmVsIG9mIHBhcnNlciByb3V0aW5lczogdGhlIGdldF9YWFggbWV0aG9kcyB0aGF0IGdldCBhIHRva2VuIGluCisjIHRoZSBncmFtbWFyLCBhbmQgcGFyc2VfWFhYIG1ldGhvZHMgdGhhdCBwYXJzZSBhbiBlbnRpcmUgZmllbGQgdmFsdWUuICBTbworIyBnZXRfYWRkcmVzc19saXN0IGFib3ZlIHNob3VsZCByZWFsbHkgYmUgYSBwYXJzZV8gbWV0aG9kLCBhcyBwcm9iYWJseSBzaG91bGQKKyMgYmUgZ2V0X3Vuc3RydWN0dXJlZC4KKyMKKworZGVmIHBhcnNlX21pbWVfdmVyc2lvbih2YWx1ZSk6CisgICAgIiIiIG1pbWUtdmVyc2lvbiA9IFtDRldTXSAxKmRpZ2l0IFtDRldTXSAiLiIgW0NGV1NdIDEqZGlnaXQgW0NGV1NdCisKKyAgICAiIiIKKyAgICAjIFRoZSBbQ0ZXU10gaXMgaW1wbGljaXQgaW4gdGhlIFJGQyAyMDQ1IEJORi4KKyAgICAjIFhYWDogVGhpcyByb3V0aW5lIGlzIGEgYml0IHZlcmJvc2UsIHNob3VsZCBmYWN0b3Igb3V0IGEgZ2V0X2ludCBtZXRob2QuCisgICAgbWltZV92ZXJzaW9uID0gTUlNRVZlcnNpb24oKQorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgbWltZV92ZXJzaW9uLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5IZWFkZXJNaXNzaW5nUmVxdWlyZWRWYWx1ZSgKKyAgICAgICAgICAgICJNaXNzaW5nIE1JTUUgdmVyc2lvbiBudW1iZXIgKGVnOiAxLjApIikpCisgICAgICAgIHJldHVybiBtaW1lX3ZlcnNpb24KKyAgICBpZiB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgIG1pbWVfdmVyc2lvbi5hcHBlbmQodG9rZW4pCisgICAgICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgICAgIG1pbWVfdmVyc2lvbi5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSGVhZGVyTWlzc2luZ1JlcXVpcmVkVmFsdWUoCisgICAgICAgICAgICAgICAgIkV4cGVjdGVkIE1JTUUgdmVyc2lvbiBudW1iZXIgYnV0IGZvdW5kIG9ubHkgQ0ZXUyIpKQorICAgIGRpZ2l0cyA9ICcnCisgICAgd2hpbGUgdmFsdWUgYW5kIHZhbHVlWzBdICE9ICcuJyBhbmQgdmFsdWVbMF0gbm90IGluIENGV1NfTEVBREVSOgorICAgICAgICBkaWdpdHMgKz0gdmFsdWVbMF0KKyAgICAgICAgdmFsdWUgPSB2YWx1ZVsxOl0KKyAgICBpZiBub3QgZGlnaXRzLmlzZGlnaXQoKToKKyAgICAgICAgbWltZV92ZXJzaW9uLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgIkV4cGVjdGVkIE1JTUUgbWFqb3IgdmVyc2lvbiBudW1iZXIgYnV0IGZvdW5kIHshcn0iLmZvcm1hdChkaWdpdHMpKSkKKyAgICAgICAgbWltZV92ZXJzaW9uLmFwcGVuZChWYWx1ZVRlcm1pbmFsKGRpZ2l0cywgJ3h0ZXh0JykpCisgICAgZWxzZToKKyAgICAgICAgbWltZV92ZXJzaW9uLm1ham9yID0gaW50KGRpZ2l0cykKKyAgICAgICAgbWltZV92ZXJzaW9uLmFwcGVuZChWYWx1ZVRlcm1pbmFsKGRpZ2l0cywgJ2RpZ2l0cycpKQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgIG1pbWVfdmVyc2lvbi5hcHBlbmQodG9rZW4pCisgICAgaWYgbm90IHZhbHVlIG9yIHZhbHVlWzBdICE9ICcuJzoKKyAgICAgICAgaWYgbWltZV92ZXJzaW9uLm1ham9yIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbWltZV92ZXJzaW9uLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgICAgICJJbmNvbXBsZXRlIE1JTUUgdmVyc2lvbjsgZm91bmQgb25seSBtYWpvciBudW1iZXIiKSkKKyAgICAgICAgaWYgdmFsdWU6CisgICAgICAgICAgICBtaW1lX3ZlcnNpb24uYXBwZW5kKFZhbHVlVGVybWluYWwodmFsdWUsICd4dGV4dCcpKQorICAgICAgICByZXR1cm4gbWltZV92ZXJzaW9uCisgICAgbWltZV92ZXJzaW9uLmFwcGVuZChWYWx1ZVRlcm1pbmFsKCcuJywgJ3ZlcnNpb24tc2VwYXJhdG9yJykpCisgICAgdmFsdWUgPSB2YWx1ZVsxOl0KKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBtaW1lX3ZlcnNpb24uYXBwZW5kKHRva2VuKQorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgaWYgbWltZV92ZXJzaW9uLm1ham9yIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbWltZV92ZXJzaW9uLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgICAgICJJbmNvbXBsZXRlIE1JTUUgdmVyc2lvbjsgZm91bmQgb25seSBtYWpvciBudW1iZXIiKSkKKyAgICAgICAgcmV0dXJuIG1pbWVfdmVyc2lvbgorICAgIGRpZ2l0cyA9ICcnCisgICAgd2hpbGUgdmFsdWUgYW5kIHZhbHVlWzBdIG5vdCBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgZGlnaXRzICs9IHZhbHVlWzBdCisgICAgICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgaWYgbm90IGRpZ2l0cy5pc2RpZ2l0KCk6CisgICAgICAgIG1pbWVfdmVyc2lvbi5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJFeHBlY3RlZCBNSU1FIG1pbm9yIHZlcnNpb24gbnVtYmVyIGJ1dCBmb3VuZCB7IXJ9Ii5mb3JtYXQoZGlnaXRzKSkpCisgICAgICAgIG1pbWVfdmVyc2lvbi5hcHBlbmQoVmFsdWVUZXJtaW5hbChkaWdpdHMsICd4dGV4dCcpKQorICAgIGVsc2U6CisgICAgICAgIG1pbWVfdmVyc2lvbi5taW5vciA9IGludChkaWdpdHMpCisgICAgICAgIG1pbWVfdmVyc2lvbi5hcHBlbmQoVmFsdWVUZXJtaW5hbChkaWdpdHMsICdkaWdpdHMnKSkKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBtaW1lX3ZlcnNpb24uYXBwZW5kKHRva2VuKQorICAgIGlmIHZhbHVlOgorICAgICAgICBtaW1lX3ZlcnNpb24uZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAiRXhjZXNzIG5vbi1DRldTIHRleHQgYWZ0ZXIgTUlNRSB2ZXJzaW9uIikpCisgICAgICAgIG1pbWVfdmVyc2lvbi5hcHBlbmQoVmFsdWVUZXJtaW5hbCh2YWx1ZSwgJ3h0ZXh0JykpCisgICAgcmV0dXJuIG1pbWVfdmVyc2lvbgorCitkZWYgZ2V0X2ludmFsaWRfcGFyYW1ldGVyKHZhbHVlKToKKyAgICAiIiIgUmVhZCBldmVyeXRoaW5nIHVwIHRvIHRoZSBuZXh0ICc7Jy4KKworICAgIFRoaXMgaXMgb3V0c2lkZSB0aGUgZm9ybWFsIGdyYW1tYXIuICBUaGUgSW52YWxpZFBhcmFtZXRlciBUb2tlbkxpc3QgdGhhdCBpcworICAgIHJldHVybmVkIGFjdHMgbGlrZSBhIFBhcmFtZXRlciwgYnV0IHRoZSBkYXRhIGF0dHJpYnV0ZXMgYXJlIE5vbmUuCisKKyAgICAiIiIKKyAgICBpbnZhbGlkX3BhcmFtZXRlciA9IEludmFsaWRQYXJhbWV0ZXIoKQorICAgIHdoaWxlIHZhbHVlIGFuZCB2YWx1ZVswXSAhPSAnOyc6CisgICAgICAgIGlmIHZhbHVlWzBdIGluIFBIUkFTRV9FTkRTOgorICAgICAgICAgICAgaW52YWxpZF9wYXJhbWV0ZXIuYXBwZW5kKFZhbHVlVGVybWluYWwodmFsdWVbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWlzcGxhY2VkLXNwZWNpYWwnKSkKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfcGhyYXNlKHZhbHVlKQorICAgICAgICAgICAgaW52YWxpZF9wYXJhbWV0ZXIuYXBwZW5kKHRva2VuKQorICAgIHJldHVybiBpbnZhbGlkX3BhcmFtZXRlciwgdmFsdWUKKworZGVmIGdldF90dGV4dCh2YWx1ZSk6CisgICAgIiIidHRleHQgPSA8bWF0Y2hlcyBfdHRleHRfbWF0Y2hlcj4KKworICAgIFdlIGFsbG93IGFueSBub24tVE9LRU5fRU5EUyBpbiB0dGV4dCwgYnV0IGFkZCBkZWZlY3RzIHRvIHRoZSB0b2tlbidzCisgICAgZGVmZWN0cyBsaXN0IGlmIHdlIGZpbmQgbm9uLXR0ZXh0IGNoYXJhY3RlcnMuICBXZSBhbHNvIHJlZ2lzdGVyIGRlZmVjdHMgZm9yCisgICAgKmFueSogbm9uLXByaW50YWJsZXMgZXZlbiB0aG91Z2ggdGhlIFJGQyBkb2Vzbid0IGV4Y2x1ZGUgYWxsIG9mIHRoZW0sCisgICAgYmVjYXVzZSB3ZSBmb2xsb3cgdGhlIHNwaXJpdCBvZiBSRkMgNTMyMi4KKworICAgICIiIgorICAgIG0gPSBfbm9uX3Rva2VuX2VuZF9tYXRjaGVyKHZhbHVlKQorICAgIGlmIG5vdCBtOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICJleHBlY3RlZCB0dGV4dCBidXQgZm91bmQgJ3t9JyIuZm9ybWF0KHZhbHVlKSkKKyAgICB0dGV4dCA9IG0uZ3JvdXAoKQorICAgIHZhbHVlID0gdmFsdWVbbGVuKHR0ZXh0KTpdCisgICAgdHRleHQgPSBWYWx1ZVRlcm1pbmFsKHR0ZXh0LCAndHRleHQnKQorICAgIF92YWxpZGF0ZV94dGV4dCh0dGV4dCkKKyAgICByZXR1cm4gdHRleHQsIHZhbHVlCisKK2RlZiBnZXRfdG9rZW4odmFsdWUpOgorICAgICIiInRva2VuID0gW0NGV1NdIDEqdHRleHQgW0NGV1NdCisKKyAgICBUaGUgUkZDIGVxdWl2YWxlbnQgb2YgdHRleHQgaXMgYW55IFVTLUFTQ0lJIGNoYXJzIGV4Y2VwdCBzcGFjZSwgY3Rscywgb3IKKyAgICB0c3BlY2lhbHMuICBXZSBhbHNvIGV4Y2x1ZGUgdGFicyBldmVuIHRob3VnaCB0aGUgUkZDIGRvZXNuJ3QuCisKKyAgICBUaGUgUkZDIGltcGxpZXMgdGhlIENGV1MgYnV0IGlzIG5vdCBleHBsaWNpdCBhYm91dCBpdCBpbiB0aGUgQk5GLgorCisgICAgIiIiCisgICAgbXRva2VuID0gVG9rZW4oKQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgIG10b2tlbi5hcHBlbmQodG9rZW4pCisgICAgaWYgdmFsdWUgYW5kIHZhbHVlWzBdIGluIFRPS0VOX0VORFM6CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgImV4cGVjdGVkIHRva2VuIGJ1dCBmb3VuZCAne30nIi5mb3JtYXQodmFsdWUpKQorICAgIHRva2VuLCB2YWx1ZSA9IGdldF90dGV4dCh2YWx1ZSkKKyAgICBtdG9rZW4uYXBwZW5kKHRva2VuKQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgIG10b2tlbi5hcHBlbmQodG9rZW4pCisgICAgcmV0dXJuIG10b2tlbiwgdmFsdWUKKworZGVmIGdldF9hdHRydGV4dCh2YWx1ZSk6CisgICAgIiIiYXR0cnRleHQgPSAxKihhbnkgbm9uLUFUVFJJQlVURV9FTkRTIGNoYXJhY3RlcikKKworICAgIFdlIGFsbG93IGFueSBub24tQVRUUklCVVRFX0VORFMgaW4gYXR0cnRleHQsIGJ1dCBhZGQgZGVmZWN0cyB0byB0aGUKKyAgICB0b2tlbidzIGRlZmVjdHMgbGlzdCBpZiB3ZSBmaW5kIG5vbi1hdHRydGV4dCBjaGFyYWN0ZXJzLiAgV2UgYWxzbyByZWdpc3RlcgorICAgIGRlZmVjdHMgZm9yICphbnkqIG5vbi1wcmludGFibGVzIGV2ZW4gdGhvdWdoIHRoZSBSRkMgZG9lc24ndCBleGNsdWRlIGFsbCBvZgorICAgIHRoZW0sIGJlY2F1c2Ugd2UgZm9sbG93IHRoZSBzcGlyaXQgb2YgUkZDIDUzMjIuCisKKyAgICAiIiIKKyAgICBtID0gX25vbl9hdHRyaWJ1dGVfZW5kX21hdGNoZXIodmFsdWUpCisgICAgaWYgbm90IG06CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgImV4cGVjdGVkIGF0dHJ0ZXh0IGJ1dCBmb3VuZCB7IXJ9Ii5mb3JtYXQodmFsdWUpKQorICAgIGF0dHJ0ZXh0ID0gbS5ncm91cCgpCisgICAgdmFsdWUgPSB2YWx1ZVtsZW4oYXR0cnRleHQpOl0KKyAgICBhdHRydGV4dCA9IFZhbHVlVGVybWluYWwoYXR0cnRleHQsICdhdHRydGV4dCcpCisgICAgX3ZhbGlkYXRlX3h0ZXh0KGF0dHJ0ZXh0KQorICAgIHJldHVybiBhdHRydGV4dCwgdmFsdWUKKworZGVmIGdldF9hdHRyaWJ1dGUodmFsdWUpOgorICAgICIiIiBbQ0ZXU10gMSphdHRydGV4dCBbQ0ZXU10KKworICAgIFRoaXMgdmVyc2lvbiBvZiB0aGUgQk5GIG1ha2VzIHRoZSBDRldTIGV4cGxpY2l0LCBhbmQgYXMgdXN1YWwgd2UgdXNlIGEKKyAgICB2YWx1ZSB0ZXJtaW5hbCBmb3IgdGhlIGFjdHVhbCBydW4gb2YgY2hhcmFjdGVycy4gIFRoZSBSRkMgZXF1aXZhbGVudCBvZgorICAgIGF0dHJ0ZXh0IGlzIHRoZSB0b2tlbiBjaGFyYWN0ZXJzLCB3aXRoIHRoZSBzdWJ0cmFjdGlvbiBvZiAnKicsICInIiwgYW5kICclJy4KKyAgICBXZSBpbmNsdWRlIHRhYiBpbiB0aGUgZXhjbHVkZWQgc2V0IGp1c3QgYXMgd2UgZG8gZm9yIHRva2VuLgorCisgICAgIiIiCisgICAgYXR0cmlidXRlID0gQXR0cmlidXRlKCkKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBhdHRyaWJ1dGUuYXBwZW5kKHRva2VuKQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSBpbiBBVFRSSUJVVEVfRU5EUzoKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoCisgICAgICAgICAgICAiZXhwZWN0ZWQgdG9rZW4gYnV0IGZvdW5kICd7fSciLmZvcm1hdCh2YWx1ZSkpCisgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2F0dHJ0ZXh0KHZhbHVlKQorICAgIGF0dHJpYnV0ZS5hcHBlbmQodG9rZW4pCisgICAgaWYgdmFsdWUgYW5kIHZhbHVlWzBdIGluIENGV1NfTEVBREVSOgorICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfY2Z3cyh2YWx1ZSkKKyAgICAgICAgYXR0cmlidXRlLmFwcGVuZCh0b2tlbikKKyAgICByZXR1cm4gYXR0cmlidXRlLCB2YWx1ZQorCitkZWYgZ2V0X2V4dGVuZGVkX2F0dHJ0ZXh0KHZhbHVlKToKKyAgICAiIiJhdHRydGV4dCA9IDEqKGFueSBub24tQVRUUklCVVRFX0VORFMgY2hhcmFjdGVyIHBsdXMgJyUnKQorCisgICAgVGhpcyBpcyBhIHNwZWNpYWwgcGFyc2luZyByb3V0aW5lIHNvIHRoYXQgd2UgZ2V0IGEgdmFsdWUgdGhhdAorICAgIGluY2x1ZGVzICUgZXNjYXBlcyBhcyBhIHNpbmdsZSBzdHJpbmcgKHdoaWNoIHdlIGRlY29kZSBhcyBhIHNpbmdsZQorICAgIHN0cmluZyBsYXRlcikuCisKKyAgICAiIiIKKyAgICBtID0gX25vbl9leHRlbmRlZF9hdHRyaWJ1dGVfZW5kX21hdGNoZXIodmFsdWUpCisgICAgaWYgbm90IG06CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKAorICAgICAgICAgICAgImV4cGVjdGVkIGV4dGVuZGVkIGF0dHJ0ZXh0IGJ1dCBmb3VuZCB7IXJ9Ii5mb3JtYXQodmFsdWUpKQorICAgIGF0dHJ0ZXh0ID0gbS5ncm91cCgpCisgICAgdmFsdWUgPSB2YWx1ZVtsZW4oYXR0cnRleHQpOl0KKyAgICBhdHRydGV4dCA9IFZhbHVlVGVybWluYWwoYXR0cnRleHQsICdleHRlbmRlZC1hdHRydGV4dCcpCisgICAgX3ZhbGlkYXRlX3h0ZXh0KGF0dHJ0ZXh0KQorICAgIHJldHVybiBhdHRydGV4dCwgdmFsdWUKKworZGVmIGdldF9leHRlbmRlZF9hdHRyaWJ1dGUodmFsdWUpOgorICAgICIiIiBbQ0ZXU10gMSpleHRlbmRlZF9hdHRydGV4dCBbQ0ZXU10KKworICAgIFRoaXMgaXMgbGlrZSB0aGUgbm9uLWV4dGVuZGVkIHZlcnNpb24gZXhjZXB0IHdlIGFsbG93ICUgY2hhcmFjdGVycywgc28gdGhhdAorICAgIHdlIGNhbiBwaWNrIHVwIGFuIGVuY29kZWQgdmFsdWUgYXMgYSBzaW5nbGUgc3RyaW5nLgorCisgICAgIiIiCisgICAgIyBYWFg6IHNob3VsZCB3ZSBoYXZlIGFuIEV4dGVuZGVkQXR0cmlidXRlIFRva2VuTGlzdD8KKyAgICBhdHRyaWJ1dGUgPSBBdHRyaWJ1dGUoKQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSBpbiBDRldTX0xFQURFUjoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgICAgIGF0dHJpYnV0ZS5hcHBlbmQodG9rZW4pCisgICAgaWYgdmFsdWUgYW5kIHZhbHVlWzBdIGluIEVYVEVOREVEX0FUVFJJQlVURV9FTkRTOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigKKyAgICAgICAgICAgICJleHBlY3RlZCB0b2tlbiBidXQgZm91bmQgJ3t9JyIuZm9ybWF0KHZhbHVlKSkKKyAgICB0b2tlbiwgdmFsdWUgPSBnZXRfZXh0ZW5kZWRfYXR0cnRleHQodmFsdWUpCisgICAgYXR0cmlidXRlLmFwcGVuZCh0b2tlbikKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBhdHRyaWJ1dGUuYXBwZW5kKHRva2VuKQorICAgIHJldHVybiBhdHRyaWJ1dGUsIHZhbHVlCisKK2RlZiBnZXRfc2VjdGlvbih2YWx1ZSk6CisgICAgIiIiICcqJyBkaWdpdHMKKworICAgIFRoZSBmb3JtYWwgQk5GIGlzIG1vcmUgY29tcGxpY2F0ZWQgYmVjYXVzZSBsZWFkaW5nIDBzIGFyZSBub3QgYWxsb3dlZC4gIFdlCisgICAgY2hlY2sgZm9yIHRoYXQgYW5kIGFkZCBhIGRlZmVjdC4gIFdlIGFsc28gYXNzdW1lIG5vIENGV1MgaXMgYWxsb3dlZCBiZXR3ZWVuCisgICAgdGhlICcqJyBhbmQgdGhlIGRpZ2l0cywgdGhvdWdoIHRoZSBSRkMgaXMgbm90IGNyeXN0YWwgY2xlYXIgb24gdGhhdC4KKyAgICBUaGUgY2FsbGVyIHNob3VsZCBhbHJlYWR5IGhhdmUgZGVhbHQgd2l0aCBsZWFkaW5nIENGV1MuCisKKyAgICAiIiIKKyAgICBzZWN0aW9uID0gU2VjdGlvbigpCisgICAgaWYgbm90IHZhbHVlIG9yIHZhbHVlWzBdICE9ICcqJzoKKyAgICAgICAgcmFpc2UgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IoIkV4cGVjdGVkIHNlY3Rpb24gYnV0IGZvdW5kIHt9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUpKQorICAgIHNlY3Rpb24uYXBwZW5kKFZhbHVlVGVybWluYWwoJyonLCAnc2VjdGlvbi1tYXJrZXInKSkKKyAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIGlmIG5vdCB2YWx1ZSBvciBub3QgdmFsdWVbMF0uaXNkaWdpdCgpOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigiRXhwZWN0ZWQgc2VjdGlvbiBudW1iZXIgYnV0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvdW5kIHt9Ii5mb3JtYXQodmFsdWUpKQorICAgIGRpZ2l0cyA9ICcnCisgICAgd2hpbGUgdmFsdWUgYW5kIHZhbHVlWzBdLmlzZGlnaXQoKToKKyAgICAgICAgZGlnaXRzICs9IHZhbHVlWzBdCisgICAgICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgaWYgZGlnaXRzWzBdID09ICcwJyBhbmQgZGlnaXRzICE9ICcwJzoKKyAgICAgICAgc2VjdGlvbi5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckVycm9yKCJzZWN0aW9uIG51bWJlciIKKyAgICAgICAgICAgICJoYXMgYW4gaW52YWxpZCBsZWFkaW5nIDAiKSkKKyAgICBzZWN0aW9uLm51bWJlciA9IGludChkaWdpdHMpCisgICAgc2VjdGlvbi5hcHBlbmQoVmFsdWVUZXJtaW5hbChkaWdpdHMsICdkaWdpdHMnKSkKKyAgICByZXR1cm4gc2VjdGlvbiwgdmFsdWUKKworCitkZWYgZ2V0X3ZhbHVlKHZhbHVlKToKKyAgICAiIiIgcXVvdGVkLXN0cmluZyAvIGF0dHJpYnV0ZQorCisgICAgIiIiCisgICAgdiA9IFZhbHVlKCkKKyAgICBpZiBub3QgdmFsdWU6CisgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKCJFeHBlY3RlZCB2YWx1ZSBidXQgZm91bmQgZW5kIG9mIHN0cmluZyIpCisgICAgbGVhZGVyID0gTm9uZQorICAgIGlmIHZhbHVlWzBdIGluIENGV1NfTEVBREVSOgorICAgICAgICBsZWFkZXIsIHZhbHVlID0gZ2V0X2Nmd3ModmFsdWUpCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigiRXhwZWN0ZWQgdmFsdWUgYnV0IGZvdW5kICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9ubHkge30iLmZvcm1hdChsZWFkZXIpKQorICAgIGlmIHZhbHVlWzBdID09ICciJzoKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X3F1b3RlZF9zdHJpbmcodmFsdWUpCisgICAgZWxzZToKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2V4dGVuZGVkX2F0dHJpYnV0ZSh2YWx1ZSkKKyAgICBpZiBsZWFkZXIgaXMgbm90IE5vbmU6CisgICAgICAgIHRva2VuWzowXSA9IFtsZWFkZXJdCisgICAgdi5hcHBlbmQodG9rZW4pCisgICAgcmV0dXJuIHYsIHZhbHVlCisKK2RlZiBnZXRfcGFyYW1ldGVyKHZhbHVlKToKKyAgICAiIiIgYXR0cmlidXRlIFtzZWN0aW9uXSBbIioiXSBbQ0ZXU10gIj0iIHZhbHVlCisKKyAgICBUaGUgQ0ZXUyBpcyBpbXBsaWVkIGJ5IHRoZSBSRkMgYnV0IG5vdCBtYWRlIGV4cGxpY2l0IGluIHRoZSBCTkYuICBUaGlzCisgICAgc2ltcGxpZmllZCBmb3JtIG9mIHRoZSBCTkYgZnJvbSB0aGUgUkZDIGlzIG1hZGUgdG8gY29uZm9ybSB3aXRoIHRoZSBSRkMgQk5GCisgICAgdGhyb3VnaCBzb21lIGV4dHJhIGNoZWNrcy4gIFdlIGRvIGl0IHRoaXMgd2F5IGJlY2F1c2UgaXQgbWFrZXMgYm90aCBlcnJvcgorICAgIHJlY292ZXJ5IGFuZCB3b3JraW5nIHdpdGggdGhlIHJlc3VsdGluZyBwYXJzZSB0cmVlIGVhc2llci4KKyAgICAiIiIKKyAgICAjIEl0IGlzIHBvc3NpYmxlIENGV1Mgd291bGQgYWxzbyBiZSBpbXBsaWNpdGx5IGFsbG93ZWQgYmV0d2VlbiB0aGUgc2VjdGlvbgorICAgICMgYW5kIHRoZSAnZXh0ZW5kZWQtYXR0cmlidXRlJyBtYXJrZXIgKHRoZSAnKicpICwgYnV0IHdlJ3ZlIG5ldmVyIHNlZW4gdGhhdAorICAgICMgaW4gdGhlIHdpbGQgYW5kIHdlIHdpbGwgdGhlcmVmb3JlIGlnbm9yZSB0aGUgcG9zc2liaWxpdHkuCisgICAgcGFyYW0gPSBQYXJhbWV0ZXIoKQorICAgIHRva2VuLCB2YWx1ZSA9IGdldF9hdHRyaWJ1dGUodmFsdWUpCisgICAgcGFyYW0uYXBwZW5kKHRva2VuKQorICAgIGlmIG5vdCB2YWx1ZSBvciB2YWx1ZVswXSA9PSAnOyc6CisgICAgICAgIHBhcmFtLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KCJQYXJhbWV0ZXIgY29udGFpbnMgIgorICAgICAgICAgICAgIm5hbWUgKHt9KSBidXQgbm8gdmFsdWUiLmZvcm1hdCh0b2tlbikpKQorICAgICAgICByZXR1cm4gcGFyYW0sIHZhbHVlCisgICAgaWYgdmFsdWVbMF0gPT0gJyonOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfc2VjdGlvbih2YWx1ZSkKKyAgICAgICAgICAgIHBhcmFtLnNlY3Rpb25lZCA9IFRydWUKKyAgICAgICAgICAgIHBhcmFtLmFwcGVuZCh0b2tlbikKKyAgICAgICAgZXhjZXB0IGVycm9ycy5IZWFkZXJQYXJzZUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigiSW5jb21wbGV0ZSBwYXJhbWV0ZXIiKQorICAgICAgICBpZiB2YWx1ZVswXSA9PSAnKic6CisgICAgICAgICAgICBwYXJhbS5hcHBlbmQoVmFsdWVUZXJtaW5hbCgnKicsICdleHRlbmRlZC1wYXJhbWV0ZXItbWFya2VyJykpCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgICAgICAgICAgcGFyYW0uZXh0ZW5kZWQgPSBUcnVlCisgICAgaWYgdmFsdWVbMF0gIT0gJz0nOgorICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigiUGFyYW1ldGVyIG5vdCBmb2xsb3dlZCBieSAnPSciKQorICAgIHBhcmFtLmFwcGVuZChWYWx1ZVRlcm1pbmFsKCc9JywgJ3BhcmFtZXRlci1zZXBhcmF0b3InKSkKKyAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIGxlYWRlciA9IE5vbmUKKyAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICBwYXJhbS5hcHBlbmQodG9rZW4pCisgICAgcmVtYWluZGVyID0gTm9uZQorICAgIGFwcGVuZHRvID0gcGFyYW0KKyAgICBpZiBwYXJhbS5leHRlbmRlZCBhbmQgdmFsdWUgYW5kIHZhbHVlWzBdID09ICciJzoKKyAgICAgICAgIyBOb3cgZm9yIHNvbWUgc2VyaW91cyBoYWNrZXJ5IHRvIGhhbmRsZSB0aGUgY29tbW9uIGludmFsaWQgY2FzZSBvZgorICAgICAgICAjIGRvdWJsZSBxdW90ZXMgYXJvdW5kIGFuIGV4dGVuZGVkIHZhbHVlLiAgV2UgYWxzbyBhY2NlcHQgKHdpdGggZGVmZWN0KQorICAgICAgICAjIGEgdmFsdWUgbWFya2VkIGFzIGVuY29kZWQgdGhhdCBpc24ndCByZWFsbHkuCisgICAgICAgIHFzdHJpbmcsIHJlbWFpbmRlciA9IGdldF9xdW90ZWRfc3RyaW5nKHZhbHVlKQorICAgICAgICBpbm5lcl92YWx1ZSA9IHFzdHJpbmcuc3RyaXBwZWRfdmFsdWUKKyAgICAgICAgc2VtaV92YWxpZCA9IEZhbHNlCisgICAgICAgIGlmIHBhcmFtLnNlY3Rpb25fbnVtYmVyID09IDA6CisgICAgICAgICAgICBpZiBpbm5lcl92YWx1ZSBhbmQgaW5uZXJfdmFsdWVbMF0gPT0gIiciOgorICAgICAgICAgICAgICAgIHNlbWlfdmFsaWQgPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRva2VuLCByZXN0ID0gZ2V0X2F0dHJ0ZXh0KGlubmVyX3ZhbHVlKQorICAgICAgICAgICAgICAgIGlmIHJlc3QgYW5kIHJlc3RbMF0gPT0gIiciOgorICAgICAgICAgICAgICAgICAgICBzZW1pX3ZhbGlkID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRva2VuLCByZXN0ID0gZ2V0X2V4dGVuZGVkX2F0dHJ0ZXh0KGlubmVyX3ZhbHVlKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgbm90IHJlc3Q6CisgICAgICAgICAgICAgICAgICAgIHNlbWlfdmFsaWQgPSBUcnVlCisgICAgICAgIGlmIHNlbWlfdmFsaWQ6CisgICAgICAgICAgICBwYXJhbS5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAiUXVvdGVkIHN0cmluZyB2YWx1ZSBmb3IgZXh0ZW5kZWQgcGFyYW1ldGVyIGlzIGludmFsaWQiKSkKKyAgICAgICAgICAgIHBhcmFtLmFwcGVuZChxc3RyaW5nKQorICAgICAgICAgICAgZm9yIHQgaW4gcXN0cmluZzoKKyAgICAgICAgICAgICAgICBpZiB0LnRva2VuX3R5cGUgPT0gJ2JhcmUtcXVvdGVkLXN0cmluZyc6CisgICAgICAgICAgICAgICAgICAgIHRbOl0gPSBbXQorICAgICAgICAgICAgICAgICAgICBhcHBlbmR0byA9IHQKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHZhbHVlID0gaW5uZXJfdmFsdWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlbWFpbmRlciA9IE5vbmUKKyAgICAgICAgICAgIHBhcmFtLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgICAgICJQYXJhbWV0ZXIgbWFya2VkIGFzIGV4dGVuZGVkIGJ1dCBhcHBlYXJzIHRvIGhhdmUgYSAiCisgICAgICAgICAgICAgICAgInF1b3RlZCBzdHJpbmcgdmFsdWUgdGhhdCBpcyBub24tZW5jb2RlZCIpKQorICAgIGlmIHZhbHVlIGFuZCB2YWx1ZVswXSA9PSAiJyI6CisgICAgICAgIHRva2VuID0gTm9uZQorICAgIGVsc2U6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF92YWx1ZSh2YWx1ZSkKKyAgICBpZiBub3QgcGFyYW0uZXh0ZW5kZWQgb3IgcGFyYW0uc2VjdGlvbl9udW1iZXIgPiAwOgorICAgICAgICBpZiBub3QgdmFsdWUgb3IgdmFsdWVbMF0gIT0gIiciOgorICAgICAgICAgICAgYXBwZW5kdG8uYXBwZW5kKHRva2VuKQorICAgICAgICAgICAgaWYgcmVtYWluZGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgdmFsdWUsIHZhbHVlCisgICAgICAgICAgICAgICAgdmFsdWUgPSByZW1haW5kZXIKKyAgICAgICAgICAgIHJldHVybiBwYXJhbSwgdmFsdWUKKyAgICAgICAgcGFyYW0uZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAiQXBwYXJlbnQgaW5pdGlhbC1leHRlbmRlZC12YWx1ZSBidXQgYXR0cmlidXRlICIKKyAgICAgICAgICAgICJ3YXMgbm90IG1hcmtlZCBhcyBleHRlbmRlZCBvciB3YXMgbm90IGluaXRpYWwgc2VjdGlvbiIpKQorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgIyBBc3N1bWUgdGhlIGNoYXJzZXQvbGFuZyBpcyBtaXNzaW5nIGFuZCB0aGUgdG9rZW4gaXMgdGhlIHZhbHVlLgorICAgICAgICBwYXJhbS5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJNaXNzaW5nIHJlcXVpcmVkIGNoYXJzZXQvbGFuZyBkZWxpbWl0ZXJzIikpCisgICAgICAgIGFwcGVuZHRvLmFwcGVuZCh0b2tlbikKKyAgICAgICAgaWYgcmVtYWluZGVyIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gcGFyYW0sIHZhbHVlCisgICAgZWxzZToKKyAgICAgICAgaWYgdG9rZW4gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmb3IgdCBpbiB0b2tlbjoKKyAgICAgICAgICAgICAgICBpZiB0LnRva2VuX3R5cGUgPT0gJ2V4dGVuZGVkLWF0dHJ0ZXh0JzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHQudG9rZW5fdHlwZSA9PSAnYXR0cnRleHQnCisgICAgICAgICAgICBhcHBlbmR0by5hcHBlbmQodCkKKyAgICAgICAgICAgIHBhcmFtLmNoYXJzZXQgPSB0LnZhbHVlCisgICAgICAgIGlmIHZhbHVlWzBdICE9ICInIjoKKyAgICAgICAgICAgIHJhaXNlIGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKCJFeHBlY3RlZCBSRkMyMjMxIGNoYXIvbGFuZyBlbmNvZGluZyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVsaW1pdGVyLCBidXQgZm91bmQgeyFyfSIuZm9ybWF0KHZhbHVlKSkKKyAgICAgICAgYXBwZW5kdG8uYXBwZW5kKFZhbHVlVGVybWluYWwoIiciLCAnUkZDMjIzMSBkZWxpbWl0ZXInKSkKKyAgICAgICAgdmFsdWUgPSB2YWx1ZVsxOl0KKyAgICAgICAgaWYgdmFsdWUgYW5kIHZhbHVlWzBdICE9ICInIjoKKyAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9hdHRydGV4dCh2YWx1ZSkKKyAgICAgICAgICAgIGFwcGVuZHRvLmFwcGVuZCh0b2tlbikKKyAgICAgICAgICAgIHBhcmFtLmxhbmcgPSB0b2tlbi52YWx1ZQorICAgICAgICAgICAgaWYgbm90IHZhbHVlIG9yIHZhbHVlWzBdICE9ICInIjoKKyAgICAgICAgICAgICAgICByYWlzZSBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcigiRXhwZWN0ZWQgUkZDMjIzMSBjaGFyL2xhbmcgZW5jb2RpbmcgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWxpbWl0ZXIsIGJ1dCBmb3VuZCB7fSIuZm9ybWF0KHZhbHVlKSkKKyAgICAgICAgYXBwZW5kdG8uYXBwZW5kKFZhbHVlVGVybWluYWwoIiciLCAnUkZDMjIzMSBkZWxpbWl0ZXInKSkKKyAgICAgICAgdmFsdWUgPSB2YWx1ZVsxOl0KKyAgICBpZiByZW1haW5kZXIgaXMgbm90IE5vbmU6CisgICAgICAgICMgVHJlYXQgdGhlIHJlc3Qgb2YgdmFsdWUgYXMgYmFyZSBxdW90ZWQgc3RyaW5nIGNvbnRlbnQuCisgICAgICAgIHYgPSBWYWx1ZSgpCisgICAgICAgIHdoaWxlIHZhbHVlOgorICAgICAgICAgICAgaWYgdmFsdWVbMF0gaW4gV1NQOgorICAgICAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9md3ModmFsdWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9xY29udGVudCh2YWx1ZSkKKyAgICAgICAgICAgIHYuYXBwZW5kKHRva2VuKQorICAgICAgICB0b2tlbiA9IHYKKyAgICBlbHNlOgorICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfdmFsdWUodmFsdWUpCisgICAgYXBwZW5kdG8uYXBwZW5kKHRva2VuKQorICAgIGlmIHJlbWFpbmRlciBpcyBub3QgTm9uZToKKyAgICAgICAgYXNzZXJ0IG5vdCB2YWx1ZSwgdmFsdWUKKyAgICAgICAgdmFsdWUgPSByZW1haW5kZXIKKyAgICByZXR1cm4gcGFyYW0sIHZhbHVlCisKK2RlZiBwYXJzZV9taW1lX3BhcmFtZXRlcnModmFsdWUpOgorICAgICIiIiBwYXJhbWV0ZXIgKiggIjsiIHBhcmFtZXRlciApCisKKyAgICBUaGF0IEJORiBpcyBtZWFudCB0byBpbmRpY2F0ZSB0aGlzIHJvdXRpbmUgc2hvdWxkIG9ubHkgYmUgY2FsbGVkIGFmdGVyCisgICAgZmluZGluZyBhbmQgaGFuZGxpbmcgdGhlIGxlYWRpbmcgJzsnLiAgVGhlcmUgaXMgbm8gY29ycmVzcG9uZGluZyBydWxlIGluCisgICAgdGhlIGZvcm1hbCBSRkMgZ3JhbW1hciwgYnV0IGl0IGlzIG1vcmUgY29udmVuaWVudCBmb3IgdXMgZm9yIHRoZSBzZXQgb2YKKyAgICBwYXJhbWV0ZXJzIHRvIGJlIHRyZWF0ZWQgYXMgaXRzIG93biBUb2tlbkxpc3QuCisKKyAgICBUaGlzIGlzICdwYXJzZScgcm91dGluZSBiZWNhdXNlIGl0IGNvbnN1bWVzIHRoZSByZW1pbmFpbmcgdmFsdWUsIGJ1dCBpdAorICAgIHdvdWxkIG5ldmVyIGJlIGNhbGxlZCB0byBwYXJzZSBhIGZ1bGwgaGVhZGVyLiAgSW5zdGVhZCBpdCBpcyBjYWxsZWQgdG8KKyAgICBwYXJzZSBldmVyeXRoaW5nIGFmdGVyIHRoZSBub24tcGFyYW1ldGVyIHZhbHVlIG9mIGEgc3BlY2lmaWMgTUlNRSBoZWFkZXIuCisKKyAgICAiIiIKKyAgICBtaW1lX3BhcmFtZXRlcnMgPSBNaW1lUGFyYW1ldGVycygpCisgICAgd2hpbGUgdmFsdWU6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF9wYXJhbWV0ZXIodmFsdWUpCisgICAgICAgICAgICBtaW1lX3BhcmFtZXRlcnMuYXBwZW5kKHRva2VuKQorICAgICAgICBleGNlcHQgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgbGVhZGVyID0gTm9uZQorICAgICAgICAgICAgaWYgdmFsdWVbMF0gaW4gQ0ZXU19MRUFERVI6CisgICAgICAgICAgICAgICAgbGVhZGVyLCB2YWx1ZSA9IGdldF9jZndzKHZhbHVlKQorICAgICAgICAgICAgaWYgbm90IHZhbHVlOgorICAgICAgICAgICAgICAgIG1pbWVfcGFyYW1ldGVycy5hcHBlbmQobGVhZGVyKQorICAgICAgICAgICAgICAgIHJldHVybiBtaW1lX3BhcmFtZXRlcnMKKyAgICAgICAgICAgIGlmIHZhbHVlWzBdID09ICc7JzoKKyAgICAgICAgICAgICAgICBpZiBsZWFkZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIG1pbWVfcGFyYW1ldGVycy5hcHBlbmQobGVhZGVyKQorICAgICAgICAgICAgICAgIG1pbWVfcGFyYW1ldGVycy5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAgICAgInBhcmFtZXRlciBlbnRyeSB3aXRoIG5vIGNvbnRlbnQiKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X2ludmFsaWRfcGFyYW1ldGVyKHZhbHVlKQorICAgICAgICAgICAgICAgIGlmIGxlYWRlcjoKKyAgICAgICAgICAgICAgICAgICAgdG9rZW5bOjBdID0gW2xlYWRlcl0KKyAgICAgICAgICAgICAgICBtaW1lX3BhcmFtZXRlcnMuYXBwZW5kKHRva2VuKQorICAgICAgICAgICAgICAgIG1pbWVfcGFyYW1ldGVycy5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICAgICAgICAgImludmFsaWQgcGFyYW1ldGVyIHshcn0iLmZvcm1hdCh0b2tlbikpKQorICAgICAgICBpZiB2YWx1ZSBhbmQgdmFsdWVbMF0gIT0gJzsnOgorICAgICAgICAgICAgIyBKdW5rIGFmdGVyIHRoZSBvdGhlcndpc2UgdmFsaWQgcGFyYW1ldGVyLiAgTWFyayBpdCBhcworICAgICAgICAgICAgIyBpbnZhbGlkLCBidXQgaXQgd2lsbCBoYXZlIGEgdmFsdWUuCisgICAgICAgICAgICBwYXJhbSA9IG1pbWVfcGFyYW1ldGVyc1stMV0KKyAgICAgICAgICAgIHBhcmFtLnRva2VuX3R5cGUgPSAnaW52YWxpZC1wYXJhbWV0ZXInCisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfaW52YWxpZF9wYXJhbWV0ZXIodmFsdWUpCisgICAgICAgICAgICBwYXJhbS5leHRlbmQodG9rZW4pCisgICAgICAgICAgICBtaW1lX3BhcmFtZXRlcnMuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAgICAgInBhcmFtZXRlciB3aXRoIGludmFsaWQgdHJhaWxpbmcgdGV4dCB7IXJ9Ii5mb3JtYXQodG9rZW4pKSkKKyAgICAgICAgaWYgdmFsdWU6CisgICAgICAgICAgICAjIE11c3QgYmUgYSAnOycgYXQgdGhpcyBwb2ludC4KKyAgICAgICAgICAgIG1pbWVfcGFyYW1ldGVycy5hcHBlbmQoVmFsdWVUZXJtaW5hbCgnOycsICdwYXJhbWV0ZXItc2VwYXJhdG9yJykpCisgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIHJldHVybiBtaW1lX3BhcmFtZXRlcnMKKworZGVmIF9maW5kX21pbWVfcGFyYW1ldGVycyh0b2tlbmxpc3QsIHZhbHVlKToKKyAgICAiIiJEbyBvdXIgYmVzdCB0byBmaW5kIHRoZSBwYXJhbWV0ZXJzIGluIGFuIGludmFsaWQgTUlNRSBoZWFkZXIKKworICAgICIiIgorICAgIHdoaWxlIHZhbHVlIGFuZCB2YWx1ZVswXSAhPSAnOyc6CisgICAgICAgIGlmIHZhbHVlWzBdIGluIFBIUkFTRV9FTkRTOgorICAgICAgICAgICAgdG9rZW5saXN0LmFwcGVuZChWYWx1ZVRlcm1pbmFsKHZhbHVlWzBdLCAnbWlzcGxhY2VkLXNwZWNpYWwnKSkKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfcGhyYXNlKHZhbHVlKQorICAgICAgICAgICAgdG9rZW5saXN0LmFwcGVuZCh0b2tlbikKKyAgICBpZiBub3QgdmFsdWU6CisgICAgICAgIHJldHVybgorICAgIHRva2VubGlzdC5hcHBlbmQoVmFsdWVUZXJtaW5hbCgnOycsICdwYXJhbWV0ZXItc2VwYXJhdG9yJykpCisgICAgdG9rZW5saXN0LmFwcGVuZChwYXJzZV9taW1lX3BhcmFtZXRlcnModmFsdWVbMTpdKSkKKworZGVmIHBhcnNlX2NvbnRlbnRfdHlwZV9oZWFkZXIodmFsdWUpOgorICAgICIiIiBtYWludHlwZSAiLyIgc3VidHlwZSAqKCAiOyIgcGFyYW1ldGVyICkKKworICAgIFRoZSBtYWludHlwZSBhbmQgc3Vic3R5cGUgYXJlIHRva2Vucy4gIFRoZW9yZXRpY2FsbHkgdGhleSBjb3VsZAorICAgIGJlIGNoZWNrZWQgYWdhaW5zdCB0aGUgb2ZmaWNpYWwgSUFOQSBsaXN0ICsgeC10b2tlbiwgYnV0IHdlCisgICAgZG9uJ3QgZG8gdGhhdC4KKyAgICAiIiIKKyAgICBjdHlwZSA9IENvbnRlbnRUeXBlKCkKKyAgICByZWNvdmVyID0gRmFsc2UKKyAgICBpZiBub3QgdmFsdWU6CisgICAgICAgIGN0eXBlLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5IZWFkZXJNaXNzaW5nUmVxdWlyZWRWYWx1ZSgKKyAgICAgICAgICAgICJNaXNzaW5nIGNvbnRlbnQgdHlwZSBzcGVjaWZpY2F0aW9uIikpCisgICAgICAgIHJldHVybiBjdHlwZQorICAgIHRyeToKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X3Rva2VuKHZhbHVlKQorICAgIGV4Y2VwdCBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcjoKKyAgICAgICAgY3R5cGUuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAiRXhwZWN0ZWQgY29udGVudCBtYWludHlwZSBidXQgZm91bmQgeyFyfSIuZm9ybWF0KHZhbHVlKSkpCisgICAgICAgIF9maW5kX21pbWVfcGFyYW1ldGVycyhjdHlwZSwgdmFsdWUpCisgICAgICAgIHJldHVybiBjdHlwZQorICAgIGN0eXBlLmFwcGVuZCh0b2tlbikKKyAgICAjIFhYWDogSWYgd2UgcmVhbGx5IHdhbnQgdG8gZm9sbG93IHRoZSBmb3JtYWwgZ3JhbW1lciB3ZSBzaG91bGQgbWFrZQorICAgICMgbWFudHlwZSBhbmQgc3VidHlwZSBzcGVjaWFsaXplZCBUb2tlbkxpc3RzIGhlcmUuICBQcm9iYWJseSBub3Qgd29ydGggaXQuCisgICAgaWYgbm90IHZhbHVlIG9yIHZhbHVlWzBdICE9ICcvJzoKKyAgICAgICAgY3R5cGUuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAiSW52YWxpZCBjb250ZW50IHR5cGUiKSkKKyAgICAgICAgaWYgdmFsdWU6CisgICAgICAgICAgICBfZmluZF9taW1lX3BhcmFtZXRlcnMoY3R5cGUsIHZhbHVlKQorICAgICAgICByZXR1cm4gY3R5cGUKKyAgICBjdHlwZS5tYWludHlwZSA9IHRva2VuLnZhbHVlLnN0cmlwKCkubG93ZXIoKQorICAgIGN0eXBlLmFwcGVuZChWYWx1ZVRlcm1pbmFsKCcvJywgJ2NvbnRlbnQtdHlwZS1zZXBhcmF0b3InKSkKKyAgICB2YWx1ZSA9IHZhbHVlWzE6XQorICAgIHRyeToKKyAgICAgICAgdG9rZW4sIHZhbHVlID0gZ2V0X3Rva2VuKHZhbHVlKQorICAgIGV4Y2VwdCBlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcjoKKyAgICAgICAgY3R5cGUuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAiRXhwZWN0ZWQgY29udGVudCBzdWJ0eXBlIGJ1dCBmb3VuZCB7IXJ9Ii5mb3JtYXQodmFsdWUpKSkKKyAgICAgICAgX2ZpbmRfbWltZV9wYXJhbWV0ZXJzKGN0eXBlLCB2YWx1ZSkKKyAgICAgICAgcmV0dXJuIGN0eXBlCisgICAgY3R5cGUuYXBwZW5kKHRva2VuKQorICAgIGN0eXBlLnN1YnR5cGUgPSB0b2tlbi52YWx1ZS5zdHJpcCgpLmxvd2VyKCkKKyAgICBpZiBub3QgdmFsdWU6CisgICAgICAgIHJldHVybiBjdHlwZQorICAgIGlmIHZhbHVlWzBdICE9ICc7JzoKKyAgICAgICAgY3R5cGUuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAiT25seSBwYXJhbWV0ZXJzIGFyZSB2YWxpZCBhZnRlciBjb250ZW50IHR5cGUsIGJ1dCAiCisgICAgICAgICAgICAiZm91bmQgeyFyfSIuZm9ybWF0KHZhbHVlKSkpCisgICAgICAgICMgVGhlIFJGQyByZXF1aXJlcyB0aGF0IGEgc3ludGFjdGljYWxseSBpbnZhbGlkIGNvbnRlbnQtdHlwZSBiZSB0cmVhdGVkCisgICAgICAgICMgYXMgdGV4dC9wbGFpbi4gIFBlcmhhcHMgd2Ugc2hvdWxkIHBvc3RlbCB0aGlzLCBidXQgd2Ugc2hvdWxkIHByb2JhYmx5CisgICAgICAgICMgb25seSBkbyB0aGF0IGlmIHdlIHdlcmUgY2hlY2tpbmcgdGhlIHN1YnR5cGUgdmFsdWUgYWdhaW5zdCBJQU5BLgorICAgICAgICBkZWwgY3R5cGUubWFpbnR5cGUsIGN0eXBlLnN1YnR5cGUKKyAgICAgICAgX2ZpbmRfbWltZV9wYXJhbWV0ZXJzKGN0eXBlLCB2YWx1ZSkKKyAgICAgICAgcmV0dXJuIGN0eXBlCisgICAgY3R5cGUuYXBwZW5kKFZhbHVlVGVybWluYWwoJzsnLCAncGFyYW1ldGVyLXNlcGFyYXRvcicpKQorICAgIGN0eXBlLmFwcGVuZChwYXJzZV9taW1lX3BhcmFtZXRlcnModmFsdWVbMTpdKSkKKyAgICByZXR1cm4gY3R5cGUKKworZGVmIHBhcnNlX2NvbnRlbnRfZGlzcG9zaXRpb25faGVhZGVyKHZhbHVlKToKKyAgICAiIiIgZGlzcG9zaXRpb24tdHlwZSAqKCAiOyIgcGFyYW1ldGVyICkKKworICAgICIiIgorICAgIGRpc3BfaGVhZGVyID0gQ29udGVudERpc3Bvc2l0aW9uKCkKKyAgICBpZiBub3QgdmFsdWU6CisgICAgICAgIGRpc3BfaGVhZGVyLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5IZWFkZXJNaXNzaW5nUmVxdWlyZWRWYWx1ZSgKKyAgICAgICAgICAgICJNaXNzaW5nIGNvbnRlbnQgZGlzcG9zaXRpb24iKSkKKyAgICAgICAgcmV0dXJuIGRpc3BfaGVhZGVyCisgICAgdHJ5OgorICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfdG9rZW4odmFsdWUpCisgICAgZXhjZXB0IGVycm9ycy5IZWFkZXJQYXJzZUVycm9yOgorICAgICAgICBjdHlwZS5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJFeHBlY3RlZCBjb250ZW50IGRpc3Bvc2l0aW9uIGJ1dCBmb3VuZCB7IXJ9Ii5mb3JtYXQodmFsdWUpKSkKKyAgICAgICAgX2ZpbmRfbWltZV9wYXJhbWV0ZXJzKGRpc3BfaGVhZGVyLCB2YWx1ZSkKKyAgICAgICAgcmV0dXJuIGRpc3BfaGVhZGVyCisgICAgZGlzcF9oZWFkZXIuYXBwZW5kKHRva2VuKQorICAgIGRpc3BfaGVhZGVyLmNvbnRlbnRfZGlzcG9zaXRpb24gPSB0b2tlbi52YWx1ZS5zdHJpcCgpLmxvd2VyKCkKKyAgICBpZiBub3QgdmFsdWU6CisgICAgICAgIHJldHVybiBkaXNwX2hlYWRlcgorICAgIGlmIHZhbHVlWzBdICE9ICc7JzoKKyAgICAgICAgZGlzcF9oZWFkZXIuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QoCisgICAgICAgICAgICAiT25seSBwYXJhbWV0ZXJzIGFyZSB2YWxpZCBhZnRlciBjb250ZW50IGRpc3Bvc2l0aW9uLCBidXQgIgorICAgICAgICAgICAgImZvdW5kIHshcn0iLmZvcm1hdCh2YWx1ZSkpKQorICAgICAgICBfZmluZF9taW1lX3BhcmFtZXRlcnMoZGlzcF9oZWFkZXIsIHZhbHVlKQorICAgICAgICByZXR1cm4gZGlzcF9oZWFkZXIKKyAgICBkaXNwX2hlYWRlci5hcHBlbmQoVmFsdWVUZXJtaW5hbCgnOycsICdwYXJhbWV0ZXItc2VwYXJhdG9yJykpCisgICAgZGlzcF9oZWFkZXIuYXBwZW5kKHBhcnNlX21pbWVfcGFyYW1ldGVycyh2YWx1ZVsxOl0pKQorICAgIHJldHVybiBkaXNwX2hlYWRlcgorCitkZWYgcGFyc2VfY29udGVudF90cmFuc2Zlcl9lbmNvZGluZ19oZWFkZXIodmFsdWUpOgorICAgICIiIiBtZWNoYW5pc20KKworICAgICIiIgorICAgICMgV2Ugc2hvdWxkIHByb2JhYmx5IHZhbGlkYXRlIHRoZSB2YWx1ZXMsIHNpbmNlIHRoZSBsaXN0IGlzIGZpeGVkLgorICAgIGN0ZV9oZWFkZXIgPSBDb250ZW50VHJhbnNmZXJFbmNvZGluZygpCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICBjdGVfaGVhZGVyLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5IZWFkZXJNaXNzaW5nUmVxdWlyZWRWYWx1ZSgKKyAgICAgICAgICAgICJNaXNzaW5nIGNvbnRlbnQgdHJhbnNmZXIgZW5jb2RpbmciKSkKKyAgICAgICAgcmV0dXJuIGN0ZV9oZWFkZXIKKyAgICB0cnk6CisgICAgICAgIHRva2VuLCB2YWx1ZSA9IGdldF90b2tlbih2YWx1ZSkKKyAgICBleGNlcHQgZXJyb3JzLkhlYWRlclBhcnNlRXJyb3I6CisgICAgICAgIGN0eXBlLmRlZmVjdHMuYXBwZW5kKGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0KAorICAgICAgICAgICAgIkV4cGVjdGVkIGNvbnRlbnQgdHJuYXNmZXIgZW5jb2RpbmcgYnV0IGZvdW5kIHshcn0iLmZvcm1hdCh2YWx1ZSkpKQorICAgIGVsc2U6CisgICAgICAgIGN0ZV9oZWFkZXIuYXBwZW5kKHRva2VuKQorICAgICAgICBjdGVfaGVhZGVyLmN0ZSA9IHRva2VuLnZhbHVlLnN0cmlwKCkubG93ZXIoKQorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgcmV0dXJuIGN0ZV9oZWFkZXIKKyAgICB3aGlsZSB2YWx1ZToKKyAgICAgICAgY3RlX2hlYWRlci5kZWZlY3RzLmFwcGVuZChlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdCgKKyAgICAgICAgICAgICJFeHRyYSB0ZXh0IGFmdGVyIGNvbnRlbnQgdHJhbnNmZXIgZW5jb2RpbmciKSkKKyAgICAgICAgaWYgdmFsdWVbMF0gaW4gUEhSQVNFX0VORFM6CisgICAgICAgICAgICBjdGVfaGVhZGVyLmFwcGVuZChWYWx1ZVRlcm1pbmFsKHZhbHVlWzBdLCAnbWlzcGxhY2VkLXNwZWNpYWwnKSkKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWVbMTpdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0b2tlbiwgdmFsdWUgPSBnZXRfcGhyYXNlKHZhbHVlKQorICAgICAgICAgICAgY3RlX2hlYWRlci5hcHBlbmQodG9rZW4pCisgICAgcmV0dXJuIGN0ZV9oZWFkZXIKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9fcGFyc2VhZGRyLnB5IGIvTGliL2VtYWlsL19wYXJzZWFkZHIucHkKaW5kZXggNzk1NzNjNi4uMzUyOGQwMiAxMDA2NDQKLS0tIGEvTGliL2VtYWlsL19wYXJzZWFkZHIucHkKKysrIGIvTGliL2VtYWlsL19wYXJzZWFkZHIucHkKQEAgLTQ3LDYgKzQ3LDIxIEBACiAKICAgICBBY2NvdW50cyBmb3IgbWlsaXRhcnkgdGltZXpvbmVzLgogICAgICIiIgorICAgIHJlcyA9IF9wYXJzZWRhdGVfdHooZGF0YSkKKyAgICBpZiByZXNbOV0gaXMgTm9uZToKKyAgICAgICAgcmVzWzldID0gMAorICAgIHJldHVybiB0dXBsZShyZXMpCisKK2RlZiBfcGFyc2VkYXRlX3R6KGRhdGEpOgorICAgICIiIkNvbnZlcnQgZGF0ZSB0byBleHRlbmRlZCB0aW1lIHR1cGxlLgorCisgICAgVGhlIGxhc3QgKGFkZGl0aW9uYWwpIGVsZW1lbnQgaXMgdGhlIHRpbWUgem9uZSBvZmZzZXQgaW4gc2Vjb25kcywgZXhjZXB0IGlmCisgICAgdGhlIHRpbWV6b25lIHdhcyBzcGVjaWZpZWQgYXMgLTAwMDAuICBJbiB0aGF0IGNhc2UgdGhlIGxhc3QgZWxlbWVudCBpcworICAgIE5vbmUuICBUaGlzIGluZGljYXRlcyBhIFVUQyB0aW1lc3RhbXAgdGhhdCBleHBsaWNpdGx5IGRlY2xhaW1zIGtub3dsZWRnZSBvZgorICAgIHRoZSBzb3VyY2UgdGltZXpvbmUsIGFzIG9wcG9zZWQgdG8gYSArMDAwMCB0aW1lc3RhbXAgdGhhdCBpbmRpY2F0ZXMgdGhlCisgICAgc291cmNlIHRpbWV6b25lIHJlYWxseSB3YXMgVVRDLgorCisgICAgIiIiCiAgICAgZGF0YSA9IGRhdGEuc3BsaXQoKQogICAgICMgVGhlIEZXUyBhZnRlciB0aGUgY29tbWEgYWZ0ZXIgdGhlIGRheS1vZi13ZWVrIGlzIG9wdGlvbmFsLCBzbyBzZWFyY2ggYW5kCiAgICAgIyBhZGp1c3QgZm9yIHRoaXMuCkBAIC05OSw2ICsxMTQsMTQgQEAKICAgICAgICAgdHNzID0gJzAnCiAgICAgZWxpZiBsZW4odG0pID09IDM6CiAgICAgICAgIFt0aGgsIHRtbSwgdHNzXSA9IHRtCisgICAgZWxpZiBsZW4odG0pID09IDEgYW5kICcuJyBpbiB0bVswXToKKyAgICAgICAgIyBTb21lIG5vbi1jb21wbGlhbnQgTVVBcyB1c2UgJy4nIHRvIHNlcGFyYXRlIHRpbWUgZWxlbWVudHMuCisgICAgICAgIHRtID0gdG1bMF0uc3BsaXQoJy4nKQorICAgICAgICBpZiBsZW4odG0pID09IDI6CisgICAgICAgICAgICBbdGhoLCB0bW1dID0gdG0KKyAgICAgICAgICAgIHRzcyA9IDAKKyAgICAgICAgZWxpZiBsZW4odG0pID09IDM6CisgICAgICAgICAgICBbdGhoLCB0bW0sIHRzc10gPSB0bQogICAgIGVsc2U6CiAgICAgICAgIHJldHVybiBOb25lCiAgICAgdHJ5OgpAQCAtMTMwLDYgKzE1Myw4IEBACiAgICAgICAgICAgICB0em9mZnNldCA9IGludCh0eikKICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIHR6b2Zmc2V0PT0wIGFuZCB0ei5zdGFydHN3aXRoKCctJyk6CisgICAgICAgICAgICB0em9mZnNldCA9IE5vbmUKICAgICAjIENvbnZlcnQgYSB0aW1lem9uZSBvZmZzZXQgaW50byBzZWNvbmRzIDsgLTA1MDAgLT4gLTE4MDAwCiAgICAgaWYgdHpvZmZzZXQ6CiAgICAgICAgIGlmIHR6b2Zmc2V0IDwgMDoKQEAgLTEzOSw3ICsxNjQsNyBAQAogICAgICAgICAgICAgdHpzaWduID0gMQogICAgICAgICB0em9mZnNldCA9IHR6c2lnbiAqICggKHR6b2Zmc2V0Ly8xMDApKjM2MDAgKyAodHpvZmZzZXQgJSAxMDApKjYwKQogICAgICMgRGF5bGlnaHQgU2F2aW5nIFRpbWUgZmxhZyBpcyBzZXQgdG8gLTEsIHNpbmNlIERTVCBpcyB1bmtub3duLgotICAgIHJldHVybiB5eSwgbW0sIGRkLCB0aGgsIHRtbSwgdHNzLCAwLCAxLCAtMSwgdHpvZmZzZXQKKyAgICByZXR1cm4gW3l5LCBtbSwgZGQsIHRoaCwgdG1tLCB0c3MsIDAsIDEsIC0xLCB0em9mZnNldF0KIAogCiBkZWYgcGFyc2VkYXRlKGRhdGEpOgpkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL19wb2xpY3liYXNlLnB5IGIvTGliL2VtYWlsL19wb2xpY3liYXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgxMDYxMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvZW1haWwvX3BvbGljeWJhc2UucHkKQEAgLTAsMCArMSwzNTggQEAKKyIiIlBvbGljeSBmcmFtZXdvcmsgZm9yIHRoZSBlbWFpbCBwYWNrYWdlLgorCitBbGxvd3MgZmluZSBncmFpbmVkIGZlYXR1cmUgY29udHJvbCBvZiBob3cgdGhlIHBhY2thZ2UgcGFyc2VzIGFuZCBlbWl0cyBkYXRhLgorIiIiCisKK2ltcG9ydCBhYmMKK2Zyb20gZW1haWwgaW1wb3J0IGhlYWRlcgorZnJvbSBlbWFpbCBpbXBvcnQgY2hhcnNldCBhcyBfY2hhcnNldAorZnJvbSBlbWFpbC51dGlscyBpbXBvcnQgX2hhc19zdXJyb2dhdGVzCisKK19fYWxsX18gPSBbCisgICAgJ1BvbGljeScsCisgICAgJ0NvbXBhdDMyJywKKyAgICAnY29tcGF0MzInLAorICAgIF0KKworCitjbGFzcyBfUG9saWN5QmFzZToKKworICAgICIiIlBvbGljeSBPYmplY3QgYmFzaWMgZnJhbWV3b3JrLgorCisgICAgVGhpcyBjbGFzcyBpcyB1c2VsZXNzIHVubGVzcyBzdWJjbGFzc2VkLiAgQSBzdWJjbGFzcyBzaG91bGQgZGVmaW5lCisgICAgY2xhc3MgYXR0cmlidXRlcyB3aXRoIGRlZmF1bHRzIGZvciBhbnkgdmFsdWVzIHRoYXQgYXJlIHRvIGJlCisgICAgbWFuYWdlZCBieSB0aGUgUG9saWN5IG9iamVjdC4gIFRoZSBjb25zdHJ1Y3RvciB3aWxsIHRoZW4gYWxsb3cKKyAgICBub24tZGVmYXVsdCB2YWx1ZXMgdG8gYmUgc2V0IGZvciB0aGVzZSBhdHRyaWJ1dGVzIGF0IGluc3RhbmNlCisgICAgY3JlYXRpb24gdGltZS4gIFRoZSBpbnN0YW5jZSB3aWxsIGJlIGNhbGxhYmxlLCB0YWtpbmcgdGhlc2Ugc2FtZQorICAgIGF0dHJpYnV0ZXMga2V5d29yZCBhcmd1bWVudHMsIGFuZCByZXR1cm5pbmcgYSBuZXcgaW5zdGFuY2UKKyAgICBpZGVudGljYWwgdG8gdGhlIGNhbGxlZCBpbnN0YW5jZSBleGNlcHQgZm9yIHRob3NlIHZhbHVlcyBjaGFuZ2VkCisgICAgYnkgdGhlIGtleXdvcmQgYXJndW1lbnRzLiAgSW5zdGFuY2VzIG1heSBiZSBhZGRlZCwgeWllbGRpbmcgbmV3CisgICAgaW5zdGFuY2VzIHdpdGggYW55IG5vbi1kZWZhdWx0IHZhbHVlcyBmcm9tIHRoZSByaWdodCBoYW5kCisgICAgb3BlcmFuZCBvdmVycmlkaW5nIHRob3NlIGluIHRoZSBsZWZ0IGhhbmQgb3BlcmFuZC4gIFRoYXQgaXMsCisKKyAgICAgICAgQSArIEIgPT0gQSg8bm9uLWRlZmF1bHQgdmFsdWVzIG9mIEI+KQorCisgICAgVGhlIHJlcHIgb2YgYW4gaW5zdGFuY2UgY2FuIGJlIHVzZWQgdG8gcmVjb25zdHJ1Y3QgdGhlIG9iamVjdAorICAgIGlmIGFuZCBvbmx5IGlmIHRoZSByZXByIG9mIHRoZSB2YWx1ZXMgY2FuIGJlIHVzZWQgdG8gcmVjb25zdHJ1Y3QKKyAgICB0aG9zZSB2YWx1ZXMuCisKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3KToKKyAgICAgICAgIiIiQ3JlYXRlIG5ldyBQb2xpY3ksIHBvc3NpYmx5IG92ZXJyaWRpbmcgc29tZSBkZWZhdWx0cy4KKworICAgICAgICBTZWUgY2xhc3MgZG9jc3RyaW5nIGZvciBhIGxpc3Qgb2Ygb3ZlcnJpZGFibGUgYXR0cmlidXRlcy4KKworICAgICAgICAiIiIKKyAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGt3Lml0ZW1zKCk6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgICAgIHN1cGVyKF9Qb2xpY3lCYXNlLHNlbGYpLl9fc2V0YXR0cl9fKG5hbWUsIHZhbHVlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJ7IXJ9IGlzIGFuIGludmFsaWQga2V5d29yZCBhcmd1bWVudCBmb3Ige30iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fKSkKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgYXJncyA9IFsgInt9PXshcn0iLmZvcm1hdChuYW1lLCB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYuX19kaWN0X18uaXRlbXMoKSBdCisgICAgICAgIHJldHVybiAie30oe30pIi5mb3JtYXQoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sICcsICcuam9pbihhcmdzKSkKKworICAgIGRlZiBjbG9uZShzZWxmLCAqKmt3KToKKyAgICAgICAgIiIiUmV0dXJuIGEgbmV3IGluc3RhbmNlIHdpdGggc3BlY2lmaWVkIGF0dHJpYnV0ZXMgY2hhbmdlZC4KKworICAgICAgICBUaGUgbmV3IGluc3RhbmNlIGhhcyB0aGUgc2FtZSBhdHRyaWJ1dGUgdmFsdWVzIGFzIHRoZSBjdXJyZW50IG9iamVjdCwKKyAgICAgICAgZXhjZXB0IGZvciB0aGUgY2hhbmdlcyBwYXNzZWQgaW4gYXMga2V5d29yZCBhcmd1bWVudHMuCisKKyAgICAgICAgIiIiCisgICAgICAgIG5ld3BvbGljeSA9IHNlbGYuX19jbGFzc19fLl9fbmV3X18oc2VsZi5fX2NsYXNzX18pCisgICAgICAgIGZvciBhdHRyLCB2YWx1ZSBpbiBzZWxmLl9fZGljdF9fLml0ZW1zKCk6CisgICAgICAgICAgICBvYmplY3QuX19zZXRhdHRyX18obmV3cG9saWN5LCBhdHRyLCB2YWx1ZSkKKyAgICAgICAgZm9yIGF0dHIsIHZhbHVlIGluIGt3Lml0ZW1zKCk6CisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCBhdHRyKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJ7IXJ9IGlzIGFuIGludmFsaWQga2V5d29yZCBhcmd1bWVudCBmb3Ige30iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIsIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fKSkKKyAgICAgICAgICAgIG9iamVjdC5fX3NldGF0dHJfXyhuZXdwb2xpY3ksIGF0dHIsIHZhbHVlKQorICAgICAgICByZXR1cm4gbmV3cG9saWN5CisKKyAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsIG5hbWUpOgorICAgICAgICAgICAgbXNnID0gInshcn0gb2JqZWN0IGF0dHJpYnV0ZSB7IXJ9IGlzIHJlYWQtb25seSIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1zZyA9ICJ7IXJ9IG9iamVjdCBoYXMgbm8gYXR0cmlidXRlIHshcn0iCisgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKG1zZy5mb3JtYXQoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIG5hbWUpKQorCisgICAgZGVmIF9fYWRkX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAiIiJOb24tZGVmYXVsdCB2YWx1ZXMgZnJvbSByaWdodCBvcGVyYW5kIG92ZXJyaWRlIHRob3NlIGZyb20gbGVmdC4KKworICAgICAgICBUaGUgb2JqZWN0IHJldHVybmVkIGlzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBzdWJjbGFzcy4KKworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuY2xvbmUoKipvdGhlci5fX2RpY3RfXykKKworCitkZWYgX2FwcGVuZF9kb2MoZG9jLCBhZGRlZF9kb2MpOgorICAgIGRvYyA9IGRvYy5yc3BsaXQoJ1xuJywgMSlbMF0KKyAgICBhZGRlZF9kb2MgPSBhZGRlZF9kb2Muc3BsaXQoJ1xuJywgMSlbMV0KKyAgICByZXR1cm4gZG9jICsgJ1xuJyArIGFkZGVkX2RvYworCitkZWYgX2V4dGVuZF9kb2NzdHJpbmdzKGNscyk6CisgICAgaWYgY2xzLl9fZG9jX18gYW5kIGNscy5fX2RvY19fLnN0YXJ0c3dpdGgoJysnKToKKyAgICAgICAgY2xzLl9fZG9jX18gPSBfYXBwZW5kX2RvYyhjbHMuX19iYXNlc19fWzBdLl9fZG9jX18sIGNscy5fX2RvY19fKQorICAgIGZvciBuYW1lLCBhdHRyIGluIGNscy5fX2RpY3RfXy5pdGVtcygpOgorICAgICAgICBpZiBhdHRyLl9fZG9jX18gYW5kIGF0dHIuX19kb2NfXy5zdGFydHN3aXRoKCcrJyk6CisgICAgICAgICAgICBmb3IgYyBpbiAoYyBmb3IgYmFzZSBpbiBjbHMuX19iYXNlc19fIGZvciBjIGluIGJhc2UubXJvKCkpOgorICAgICAgICAgICAgICAgIGRvYyA9IGdldGF0dHIoZ2V0YXR0cihjLCBuYW1lKSwgJ19fZG9jX18nKQorICAgICAgICAgICAgICAgIGlmIGRvYzoKKyAgICAgICAgICAgICAgICAgICAgYXR0ci5fX2RvY19fID0gX2FwcGVuZF9kb2MoZG9jLCBhdHRyLl9fZG9jX18pCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgcmV0dXJuIGNscworCisKK2NsYXNzIFBvbGljeShfUG9saWN5QmFzZSwgbWV0YWNsYXNzPWFiYy5BQkNNZXRhKToKKworICAgIHIiIiJDb250cm9scyBmb3IgaG93IG1lc3NhZ2VzIGFyZSBpbnRlcnByZXRlZCBhbmQgZm9ybWF0dGVkLgorCisgICAgTW9zdCBvZiB0aGUgY2xhc3NlcyBhbmQgbWFueSBvZiB0aGUgbWV0aG9kcyBpbiB0aGUgZW1haWwgcGFja2FnZSBhY2NlcHQKKyAgICBQb2xpY3kgb2JqZWN0cyBhcyBwYXJhbWV0ZXJzLiAgQSBQb2xpY3kgb2JqZWN0IGNvbnRhaW5zIGEgc2V0IG9mIHZhbHVlcyBhbmQKKyAgICBmdW5jdGlvbnMgdGhhdCBjb250cm9sIGhvdyBpbnB1dCBpcyBpbnRlcnByZXRlZCBhbmQgaG93IG91dHB1dCBpcyByZW5kZXJlZC4KKyAgICBGb3IgZXhhbXBsZSwgdGhlIHBhcmFtZXRlciAncmFpc2Vfb25fZGVmZWN0JyBjb250cm9scyB3aGV0aGVyIG9yIG5vdCBhbiBSRkMKKyAgICB2aW9sYXRpb24gcmVzdWx0cyBpbiBhbiBlcnJvciBiZWluZyByYWlzZWQgb3Igbm90LCB3aGlsZSAnbWF4X2xpbmVfbGVuZ3RoJworICAgIGNvbnRyb2xzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBvdXRwdXQgbGluZXMgd2hlbiBhIE1lc3NhZ2UgaXMgc2VyaWFsaXplZC4KKworICAgIEFueSB2YWxpZCBhdHRyaWJ1dGUgbWF5IGJlIG92ZXJyaWRkZW4gd2hlbiBhIFBvbGljeSBpcyBjcmVhdGVkIGJ5IHBhc3NpbmcKKyAgICBpdCBhcyBhIGtleXdvcmQgYXJndW1lbnQgdG8gdGhlIGNvbnN0cnVjdG9yLiAgUG9saWN5IG9iamVjdHMgYXJlIGltbXV0YWJsZSwKKyAgICBidXQgYSBuZXcgUG9saWN5IG9iamVjdCBjYW4gYmUgY3JlYXRlZCB3aXRoIG9ubHkgY2VydGFpbiB2YWx1ZXMgY2hhbmdlZCBieQorICAgIGNhbGxpbmcgdGhlIFBvbGljeSBpbnN0YW5jZSB3aXRoIGtleXdvcmQgYXJndW1lbnRzLiAgUG9saWN5IG9iamVjdHMgY2FuCisgICAgYWxzbyBiZSBhZGRlZCwgcHJvZHVjaW5nIGEgbmV3IFBvbGljeSBvYmplY3QgaW4gd2hpY2ggdGhlIG5vbi1kZWZhdWx0CisgICAgYXR0cmlidXRlcyBzZXQgaW4gdGhlIHJpZ2h0IGhhbmQgb3BlcmFuZCBvdmVyd3JpdGUgdGhvc2Ugc3BlY2lmaWVkIGluIHRoZQorICAgIGxlZnQgb3BlcmFuZC4KKworICAgIFNldHRhYmxlIGF0dHJpYnV0ZXM6CisKKyAgICByYWlzZV9vbl9kZWZlY3QgICAgIC0tIElmIHRydWUsIHRoZW4gZGVmZWN0cyBzaG91bGQgYmUgcmFpc2VkIGFzIGVycm9ycy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQ6IEZhbHNlLgorCisgICAgbGluZXNlcCAgICAgICAgICAgICAtLSBzdHJpbmcgY29udGFpbmluZyB0aGUgdmFsdWUgdG8gdXNlIGFzIHNlcGFyYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJldHdlZW4gb3V0cHV0IGxpbmVzLiAgRGVmYXVsdCAnXG4nLgorCisgICAgY3RlX3R5cGUgICAgICAgICAgICAtLSBUeXBlIG9mIGFsbG93ZWQgY29udGVudCB0cmFuc2ZlciBlbmNvZGluZ3MKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgN2JpdCAgLS0gQVNDSUkgb25seQorICAgICAgICAgICAgICAgICAgICAgICAgICAgOGJpdCAgLS0gQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdCBpcyBhbGxvd2VkCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIERlZmF1bHQ6IDhiaXQuICBBbHNvIGNvbnRyb2xzIHRoZSBkaXNwb3NpdGlvbiBvZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKFJGQyBpbnZhbGlkKSBiaW5hcnkgZGF0YSBpbiBoZWFkZXJzOyBzZWUgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudGF0aW9uIG9mIHRoZSBiaW5hcnlfZm9sZCBtZXRob2QuCisKKyAgICBtYXhfbGluZV9sZW5ndGggICAgIC0tIG1heGltdW0gbGVuZ3RoIG9mIGxpbmVzLCBleGNsdWRpbmcgJ2xpbmVzZXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyaW5nIHNlcmlhbGl6YXRpb24uICBOb25lIG9yIDAgbWVhbnMgbm8gbGluZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JhcHBpbmcgaXMgZG9uZS4gIERlZmF1bHQgaXMgNzguCisKKyAgICAiIiIKKworICAgIHJhaXNlX29uX2RlZmVjdCA9IEZhbHNlCisgICAgbGluZXNlcCA9ICdcbicKKyAgICBjdGVfdHlwZSA9ICc4Yml0JworICAgIG1heF9saW5lX2xlbmd0aCA9IDc4CisKKyAgICBkZWYgaGFuZGxlX2RlZmVjdChzZWxmLCBvYmosIGRlZmVjdCk6CisgICAgICAgICIiIkJhc2VkIG9uIHBvbGljeSwgZWl0aGVyIHJhaXNlIGRlZmVjdCBvciBjYWxsIHJlZ2lzdGVyX2RlZmVjdC4KKworICAgICAgICAgICAgaGFuZGxlX2RlZmVjdChvYmosIGRlZmVjdCkKKworICAgICAgICBkZWZlY3Qgc2hvdWxkIGJlIGEgRGVmZWN0IHN1YmNsYXNzLCBidXQgaW4gYW55IGNhc2UgbXVzdCBiZSBhbgorICAgICAgICBFeGNlcHRpb24gc3ViY2xhc3MuICBvYmogaXMgdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgZGVmZWN0IHNob3VsZCBiZQorICAgICAgICByZWdpc3RlcmVkIGlmIGl0IGlzIG5vdCByYWlzZWQuICBJZiB0aGUgcmFpc2Vfb25fZGVmZWN0IGlzIFRydWUsIHRoZQorICAgICAgICBkZWZlY3QgaXMgcmFpc2VkIGFzIGFuIGVycm9yLCBvdGhlcndpc2UgdGhlIG9iamVjdCBhbmQgdGhlIGRlZmVjdCBhcmUKKyAgICAgICAgcGFzc2VkIHRvIHJlZ2lzdGVyX2RlZmVjdC4KKworICAgICAgICBUaGlzIG1ldGhvZCBpcyBpbnRlbmRlZCB0byBiZSBjYWxsZWQgYnkgcGFyc2VycyB0aGF0IGRpc2NvdmVyIGRlZmVjdHMuCisgICAgICAgIFRoZSBlbWFpbCBwYWNrYWdlIHBhcnNlcnMgYWx3YXlzIGNhbGwgaXQgd2l0aCBEZWZlY3QgaW5zdGFuY2VzLgorCisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLnJhaXNlX29uX2RlZmVjdDoKKyAgICAgICAgICAgIHJhaXNlIGRlZmVjdAorICAgICAgICBzZWxmLnJlZ2lzdGVyX2RlZmVjdChvYmosIGRlZmVjdCkKKworICAgIGRlZiByZWdpc3Rlcl9kZWZlY3Qoc2VsZiwgb2JqLCBkZWZlY3QpOgorICAgICAgICAiIiJSZWNvcmQgJ2RlZmVjdCcgb24gJ29iaicuCisKKyAgICAgICAgQ2FsbGVkIGJ5IGhhbmRsZV9kZWZlY3QgaWYgcmFpc2Vfb25fZGVmZWN0IGlzIEZhbHNlLiAgVGhpcyBtZXRob2QgaXMKKyAgICAgICAgcGFydCBvZiB0aGUgUG9saWN5IEFQSSBzbyB0aGF0IFBvbGljeSBzdWJjbGFzc2VzIGNhbiBpbXBsZW1lbnQgY3VzdG9tCisgICAgICAgIGRlZmVjdCBoYW5kbGluZy4gIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzIHRoZSBhcHBlbmQgbWV0aG9kIG9mCisgICAgICAgIHRoZSBkZWZlY3RzIGF0dHJpYnV0ZSBvZiBvYmouICBUaGUgb2JqZWN0cyB1c2VkIGJ5IHRoZSBlbWFpbCBwYWNrYWdlIGJ5CisgICAgICAgIGRlZmF1bHQgdGhhdCBnZXQgcGFzc2VkIHRvIHRoaXMgbWV0aG9kIHdpbGwgYWx3YXlzIGhhdmUgYSBkZWZlY3RzCisgICAgICAgIGF0dHJpYnV0ZSB3aXRoIGFuIGFwcGVuZCBtZXRob2QuCisKKyAgICAgICAgIiIiCisgICAgICAgIG9iai5kZWZlY3RzLmFwcGVuZChkZWZlY3QpCisKKyAgICBkZWYgaGVhZGVyX21heF9jb3VudChzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBtYXhpbXVtIGFsbG93ZWQgbnVtYmVyIG9mIGhlYWRlcnMgbmFtZWQgJ25hbWUnLgorCisgICAgICAgIENhbGxlZCB3aGVuIGEgaGVhZGVyIGlzIGFkZGVkIHRvIGEgTWVzc2FnZSBvYmplY3QuICBJZiB0aGUgcmV0dXJuZWQKKyAgICAgICAgdmFsdWUgaXMgbm90IDAgb3IgTm9uZSwgYW5kIHRoZXJlIGFyZSBhbHJlYWR5IGEgbnVtYmVyIG9mIGhlYWRlcnMgd2l0aAorICAgICAgICB0aGUgbmFtZSAnbmFtZScgZXF1YWwgdG8gdGhlIHZhbHVlIHJldHVybmVkLCBhIFZhbHVlRXJyb3IgaXMgcmFpc2VkLgorCisgICAgICAgIEJlY2F1c2UgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgTWVzc2FnZSdzIF9fc2V0aXRlbV9fIGlzIHRvIGFwcGVuZCB0aGUKKyAgICAgICAgdmFsdWUgdG8gdGhlIGxpc3Qgb2YgaGVhZGVycywgaXQgaXMgZWFzeSB0byBjcmVhdGUgZHVwbGljYXRlIGhlYWRlcnMKKyAgICAgICAgd2l0aG91dCByZWFsaXppbmcgaXQuICBUaGlzIG1ldGhvZCBhbGxvd3MgY2VydGFpbiBoZWFkZXJzIHRvIGJlIGxpbWl0ZWQKKyAgICAgICAgaW4gdGhlIG51bWJlciBvZiBpbnN0YW5jZXMgb2YgdGhhdCBoZWFkZXIgdGhhdCBtYXkgYmUgYWRkZWQgdG8gYQorICAgICAgICBNZXNzYWdlIHByb2dyYW1tYXRpY2FsbHkuICAoVGhlIGxpbWl0IGlzIG5vdCBvYnNlcnZlZCBieSB0aGUgcGFyc2VyLAorICAgICAgICB3aGljaCB3aWxsIGZhaXRoZnVsbHkgcHJvZHVjZSBhcyBtYW55IGhlYWRlcnMgYXMgZXhpc3QgaW4gdGhlIG1lc3NhZ2UKKyAgICAgICAgYmVpbmcgcGFyc2VkLikKKworICAgICAgICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5zIE5vbmUgZm9yIGFsbCBoZWFkZXIgbmFtZXMuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiBoZWFkZXJfc291cmNlX3BhcnNlKHNlbGYsIHNvdXJjZWxpbmVzKToKKyAgICAgICAgIiIiR2l2ZW4gYSBsaXN0IG9mIGxpbmVzZXAgdGVybWluYXRlZCBzdHJpbmdzIGNvbnN0aXR1dGluZyB0aGUgbGluZXMgb2YKKyAgICAgICAgYSBzaW5nbGUgaGVhZGVyLCByZXR1cm4gdGhlIChuYW1lLCB2YWx1ZSkgdHVwbGUgdGhhdCBzaG91bGQgYmUgc3RvcmVkCisgICAgICAgIGluIHRoZSBtb2RlbC4gIFRoZSBpbnB1dCBsaW5lcyBzaG91bGQgcmV0YWluIHRoZWlyIHRlcm1pbmF0aW5nIGxpbmVzZXAKKyAgICAgICAgY2hhcmFjdGVycy4gIFRoZSBsaW5lcyBwYXNzZWQgaW4gYnkgdGhlIGVtYWlsIHBhY2thZ2UgbWF5IGNvbnRhaW4KKyAgICAgICAgc3Vycm9nYXRlZXNjYXBlZCBiaW5hcnkgZGF0YS4KKyAgICAgICAgIiIiCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgaGVhZGVyX3N0b3JlX3BhcnNlKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiR2l2ZW4gdGhlIGhlYWRlciBuYW1lIGFuZCB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIGFwcGxpY2F0aW9uCisgICAgICAgIHByb2dyYW0sIHJldHVybiB0aGUgKG5hbWUsIHZhbHVlKSB0aGF0IHNob3VsZCBiZSBzdG9yZWQgaW4gdGhlIG1vZGVsLgorICAgICAgICAiIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiBoZWFkZXJfZmV0Y2hfcGFyc2Uoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICAiIiJHaXZlbiB0aGUgaGVhZGVyIG5hbWUgYW5kIHRoZSB2YWx1ZSBmcm9tIHRoZSBtb2RlbCwgcmV0dXJuIHRoZSB2YWx1ZQorICAgICAgICB0byBiZSByZXR1cm5lZCB0byB0aGUgYXBwbGljYXRpb24gcHJvZ3JhbSB0aGF0IGlzIHJlcXVlc3RpbmcgdGhhdAorICAgICAgICBoZWFkZXIuICBUaGUgdmFsdWUgcGFzc2VkIGluIGJ5IHRoZSBlbWFpbCBwYWNrYWdlIG1heSBjb250YWluCisgICAgICAgIHN1cnJvZ2F0ZWVzY2FwZWQgYmluYXJ5IGRhdGEgaWYgdGhlIGxpbmVzIHdlcmUgcGFyc2VkIGJ5IGEgQnl0ZXNQYXJzZXIuCisgICAgICAgIFRoZSByZXR1cm5lZCB2YWx1ZSBzaG91bGQgbm90IGNvbnRhaW4gYW55IHN1cnJvZ2F0ZWVzY2FwZWQgZGF0YS4KKworICAgICAgICAiIiIKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiBmb2xkKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiR2l2ZW4gdGhlIGhlYWRlciBuYW1lIGFuZCB0aGUgdmFsdWUgZnJvbSB0aGUgbW9kZWwsIHJldHVybiBhIHN0cmluZworICAgICAgICBjb250YWluaW5nIGxpbmVzZXAgY2hhcmFjdGVycyB0aGF0IGltcGxlbWVudCB0aGUgZm9sZGluZyBvZiB0aGUgaGVhZGVyCisgICAgICAgIGFjY29yZGluZyB0byB0aGUgcG9saWN5IGNvbnRyb2xzLiAgVGhlIHZhbHVlIHBhc3NlZCBpbiBieSB0aGUgZW1haWwKKyAgICAgICAgcGFja2FnZSBtYXkgY29udGFpbiBzdXJyb2dhdGVlc2NhcGVkIGJpbmFyeSBkYXRhIGlmIHRoZSBsaW5lcyB3ZXJlCisgICAgICAgIHBhcnNlZCBieSBhIEJ5dGVzUGFyc2VyLiAgVGhlIHJldHVybmVkIHZhbHVlIHNob3VsZCBub3QgY29udGFpbiBhbnkKKyAgICAgICAgc3Vycm9nYXRlZXNjYXBlZCBkYXRhLgorCisgICAgICAgICIiIgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIGZvbGRfYmluYXJ5KHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiR2l2ZW4gdGhlIGhlYWRlciBuYW1lIGFuZCB0aGUgdmFsdWUgZnJvbSB0aGUgbW9kZWwsIHJldHVybiBiaW5hcnkKKyAgICAgICAgZGF0YSBjb250YWluaW5nIGxpbmVzZXAgY2hhcmFjdGVycyB0aGF0IGltcGxlbWVudCB0aGUgZm9sZGluZyBvZiB0aGUKKyAgICAgICAgaGVhZGVyIGFjY29yZGluZyB0byB0aGUgcG9saWN5IGNvbnRyb2xzLiAgVGhlIHZhbHVlIHBhc3NlZCBpbiBieSB0aGUKKyAgICAgICAgZW1haWwgcGFja2FnZSBtYXkgY29udGFpbiBzdXJyb2dhdGVlc2NhcGVkIGJpbmFyeSBkYXRhLgorCisgICAgICAgICIiIgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKworQF9leHRlbmRfZG9jc3RyaW5ncworY2xhc3MgQ29tcGF0MzIoUG9saWN5KToKKworICAgICIiIisKKyAgICBUaGlzIHBhcnRpY3VsYXIgcG9saWN5IGlzIHRoZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IFBvbGljeS4gIEl0CisgICAgcmVwbGljYXRlcyB0aGUgYmVoYXZpb3Igb2YgdGhlIGVtYWlsIHBhY2thZ2UgdmVyc2lvbiA1LjEuCisgICAgIiIiCisKKyAgICBkZWYgX3Nhbml0aXplX2hlYWRlcihzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICMgSWYgdGhlIGhlYWRlciB2YWx1ZSBjb250YWlucyBzdXJyb2dhdGVzLCByZXR1cm4gYSBIZWFkZXIgdXNpbmcKKyAgICAgICAgIyB0aGUgdW5rbm93bi04Yml0IGNoYXJzZXQgdG8gZW5jb2RlIHRoZSBieXRlcyBhcyBlbmNvZGVkIHdvcmRzLgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKToKKyAgICAgICAgICAgICMgQXNzdW1lIGl0IGlzIGFscmVhZHkgYSBoZWFkZXIgb2JqZWN0CisgICAgICAgICAgICByZXR1cm4gdmFsdWUKKyAgICAgICAgaWYgX2hhc19zdXJyb2dhdGVzKHZhbHVlKToKKyAgICAgICAgICAgIHJldHVybiBoZWFkZXIuSGVhZGVyKHZhbHVlLCBjaGFyc2V0PV9jaGFyc2V0LlVOS05PV044QklULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX25hbWU9bmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgZGVmIGhlYWRlcl9zb3VyY2VfcGFyc2Uoc2VsZiwgc291cmNlbGluZXMpOgorICAgICAgICAiIiIrCisgICAgICAgIFRoZSBuYW1lIGlzIHBhcnNlZCBhcyBldmVyeXRoaW5nIHVwIHRvIHRoZSAnOicgYW5kIHJldHVybmVkIHVubW9kaWZpZWQuCisgICAgICAgIFRoZSB2YWx1ZSBpcyBkZXRlcm1pbmVkIGJ5IHN0cmlwcGluZyBsZWFkaW5nIHdoaXRlc3BhY2Ugb2ZmIHRoZQorICAgICAgICByZW1haW5kZXIgb2YgdGhlIGZpcnN0IGxpbmUsIGpvaW5pbmcgYWxsIHN1YnNlcXVlbnQgbGluZXMgdG9nZXRoZXIsIGFuZAorICAgICAgICBzdHJpcHBpbmcgYW55IHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiBvciBsaW5lZmVlZCBjaGFyYWN0ZXJzLgorCisgICAgICAgICIiIgorICAgICAgICBuYW1lLCB2YWx1ZSA9IHNvdXJjZWxpbmVzWzBdLnNwbGl0KCc6JywgMSkKKyAgICAgICAgdmFsdWUgPSB2YWx1ZS5sc3RyaXAoJyBcdCcpICsgJycuam9pbihzb3VyY2VsaW5lc1sxOl0pCisgICAgICAgIHJldHVybiAobmFtZSwgdmFsdWUucnN0cmlwKCdcclxuJykpCisKKyAgICBkZWYgaGVhZGVyX3N0b3JlX3BhcnNlKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiKworICAgICAgICBUaGUgbmFtZSBhbmQgdmFsdWUgYXJlIHJldHVybmVkIHVubW9kaWZpZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gKG5hbWUsIHZhbHVlKQorCisgICAgZGVmIGhlYWRlcl9mZXRjaF9wYXJzZShzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICIiIisKKyAgICAgICAgSWYgdGhlIHZhbHVlIGNvbnRhaW5zIGJpbmFyeSBkYXRhLCBpdCBpcyBjb252ZXJ0ZWQgaW50byBhIEhlYWRlciBvYmplY3QKKyAgICAgICAgdXNpbmcgdGhlIHVua25vd24tOGJpdCBjaGFyc2V0LiAgT3RoZXJ3aXNlIGl0IGlzIHJldHVybmVkIHVubW9kaWZpZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2VsZi5fc2FuaXRpemVfaGVhZGVyKG5hbWUsIHZhbHVlKQorCisgICAgZGVmIGZvbGQoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICAiIiIrCisgICAgICAgIEhlYWRlcnMgYXJlIGZvbGRlZCB1c2luZyB0aGUgSGVhZGVyIGZvbGRpbmcgYWxnb3JpdGhtLCB3aGljaCBwcmVzZXJ2ZXMKKyAgICAgICAgZXhpc3RpbmcgbGluZSBicmVha3MgaW4gdGhlIHZhbHVlLCBhbmQgd3JhcHMgZWFjaCByZXN1bHRpbmcgbGluZSB0byB0aGUKKyAgICAgICAgbWF4X2xpbmVfbGVuZ3RoLiAgTm9uLUFTQ0lJIGJpbmFyeSBkYXRhIGFyZSBDVEUgZW5jb2RlZCB1c2luZyB0aGUKKyAgICAgICAgdW5rbm93bi04Yml0IGNoYXJzZXQuCisKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9mb2xkKG5hbWUsIHZhbHVlLCBzYW5pdGl6ZT1UcnVlKQorCisgICAgZGVmIGZvbGRfYmluYXJ5KHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiKworICAgICAgICBIZWFkZXJzIGFyZSBmb2xkZWQgdXNpbmcgdGhlIEhlYWRlciBmb2xkaW5nIGFsZ29yaXRobSwgd2hpY2ggcHJlc2VydmVzCisgICAgICAgIGV4aXN0aW5nIGxpbmUgYnJlYWtzIGluIHRoZSB2YWx1ZSwgYW5kIHdyYXBzIGVhY2ggcmVzdWx0aW5nIGxpbmUgdG8gdGhlCisgICAgICAgIG1heF9saW5lX2xlbmd0aC4gIElmIGN0ZV90eXBlIGlzIDdiaXQsIG5vbi1hc2NpaSBiaW5hcnkgZGF0YSBpcyBDVEUKKyAgICAgICAgZW5jb2RlZCB1c2luZyB0aGUgdW5rbm93bi04Yml0IGNoYXJzZXQuICBPdGhlcndpc2UgdGhlIG9yaWdpbmFsIHNvdXJjZQorICAgICAgICBoZWFkZXIgaXMgdXNlZCwgd2l0aCBpdHMgZXhpc3RpbmcgbGluZSBicmVha3MgYW5kL29yIGJpbmFyeSBkYXRhLgorCisgICAgICAgICIiIgorICAgICAgICBmb2xkZWQgPSBzZWxmLl9mb2xkKG5hbWUsIHZhbHVlLCBzYW5pdGl6ZT1zZWxmLmN0ZV90eXBlPT0nN2JpdCcpCisgICAgICAgIHJldHVybiBmb2xkZWQuZW5jb2RlKCdhc2NpaScsICdzdXJyb2dhdGVlc2NhcGUnKQorCisgICAgZGVmIF9mb2xkKHNlbGYsIG5hbWUsIHZhbHVlLCBzYW5pdGl6ZSk6CisgICAgICAgIHBhcnRzID0gW10KKyAgICAgICAgcGFydHMuYXBwZW5kKCclczogJyAlIG5hbWUpCisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CisgICAgICAgICAgICBpZiBfaGFzX3N1cnJvZ2F0ZXModmFsdWUpOgorICAgICAgICAgICAgICAgIGlmIHNhbml0aXplOgorICAgICAgICAgICAgICAgICAgICBoID0gaGVhZGVyLkhlYWRlcih2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnNldD1fY2hhcnNldC5VTktOT1dOOEJJVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX25hbWU9bmFtZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIElmIHdlIGhhdmUgcmF3IDhiaXQgZGF0YSBpbiBhIGJ5dGUgc3RyaW5nLCB3ZSBoYXZlIG5vIGlkZWEKKyAgICAgICAgICAgICAgICAgICAgIyB3aGF0IHRoZSBlbmNvZGluZyBpcy4gIFRoZXJlIGlzIG5vIHNhZmUgd2F5IHRvIHNwbGl0IHRoaXMKKyAgICAgICAgICAgICAgICAgICAgIyBzdHJpbmcuICBJZiBpdCdzIGFzY2lpLXN1YnNldCwgdGhlbiB3ZSBjb3VsZCBkbyBhIG5vcm1hbAorICAgICAgICAgICAgICAgICAgICAjIGFzY2lpIHNwbGl0LCBidXQgaWYgaXQncyBtdWx0aWJ5dGUgdGhlbiB3ZSBjb3VsZCBicmVhayB0aGUKKyAgICAgICAgICAgICAgICAgICAgIyBzdHJpbmcuICBUaGVyZSdzIG5vIHdheSB0byBrbm93IHNvIHRoZSBsZWFzdCBoYXJtIHNlZW1zIHRvCisgICAgICAgICAgICAgICAgICAgICMgYmUgdG8gbm90IHNwbGl0IHRoZSBzdHJpbmcgYW5kIHJpc2sgaXQgYmVpbmcgdG9vIGxvbmcuCisgICAgICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZCh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgaCA9IE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaCA9IGhlYWRlci5IZWFkZXIodmFsdWUsIGhlYWRlcl9uYW1lPW5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEFzc3VtZSBpdCBpcyBhIEhlYWRlci1saWtlIG9iamVjdC4KKyAgICAgICAgICAgIGggPSB2YWx1ZQorICAgICAgICBpZiBoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGFydHMuYXBwZW5kKGguZW5jb2RlKGxpbmVzZXA9c2VsZi5saW5lc2VwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGxpbmVsZW49c2VsZi5tYXhfbGluZV9sZW5ndGgpKQorICAgICAgICBwYXJ0cy5hcHBlbmQoc2VsZi5saW5lc2VwKQorICAgICAgICByZXR1cm4gJycuam9pbihwYXJ0cykKKworCitjb21wYXQzMiA9IENvbXBhdDMyKCkKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9hcmNoaXRlY3R1cmUucnN0IGIvTGliL2VtYWlsL2FyY2hpdGVjdHVyZS5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODBkMjRmZQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi9lbWFpbC9hcmNoaXRlY3R1cmUucnN0CkBAIC0wLDAgKzEsMjE2IEBACis6bW9kOmBlbWFpbGAgUGFja2FnZSBBcmNoaXRlY3R1cmUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitPdmVydmlldworLS0tLS0tLS0KKworVGhlIGVtYWlsIHBhY2thZ2UgY29uc2lzdHMgb2YgdGhyZWUgbWFqb3IgY29tcG9uZW50czoKKworICAgIE1vZGVsCisgICAgICAgIEFuIG9iamVjdCBzdHJ1Y3R1cmUgdGhhdCByZXByZXNlbnRzIGFuIGVtYWlsIG1lc3NhZ2UsIGFuZCBwcm92aWRlcyBhbgorICAgICAgICBBUEkgZm9yIGNyZWF0aW5nLCBxdWVyeWluZywgYW5kIG1vZGlmeWluZyBhIG1lc3NhZ2UuCisKKyAgICBQYXJzZXIKKyAgICAgICAgVGFrZXMgYSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIG9yIGJ5dGVzIGFuZCBwcm9kdWNlcyBhIG1vZGVsIG9mIHRoZQorICAgICAgICBlbWFpbCBtZXNzYWdlIHJlcHJlc2VudGVkIGJ5IHRob3NlIGNoYXJhY3RlcnMgb3IgYnl0ZXMuCisKKyAgICBHZW5lcmF0b3IKKyAgICAgICAgVGFrZXMgYSBtb2RlbCBhbmQgdHVybnMgaXQgaW50byBhIHNlcXVlbmNlIG9mIGNoYXJhY3RlcnMgb3IgYnl0ZXMuICBUaGUKKyAgICAgICAgc2VxdWVuY2UgY2FuIGVpdGhlciBiZSBpbnRlbmRlZCBmb3IgaHVtYW4gY29uc3VtcHRpb24gKGEgcHJpbnRhYmxlCisgICAgICAgIHVuaWNvZGUgc3RyaW5nKSBvciBieXRlcyBzdWl0YWJsZSBmb3IgdHJhbnNtaXNzaW9uIG92ZXIgdGhlIHdpcmUuICBJbgorICAgICAgICB0aGUgbGF0dGVyIGNhc2UgYWxsIGRhdGEgaXMgcHJvcGVybHkgZW5jb2RlZCB1c2luZyB0aGUgY29udGVudCB0cmFuc2ZlcgorICAgICAgICBlbmNvZGluZ3Mgc3BlY2lmaWVkIGJ5IHRoZSByZWxldmFudCBSRkNzLgorCitDb25jZXB0dWFsbHkgdGhlIHBhY2thZ2UgaXMgb3JnYW5pemVkIGFyb3VuZCB0aGUgbW9kZWwuICBUaGUgbW9kZWwgcHJvdmlkZXMgYm90aAorImV4dGVybmFsIiBBUElzIGludGVuZGVkIGZvciB1c2UgYnkgYXBwbGljYXRpb24gcHJvZ3JhbXMgdXNpbmcgdGhlIGxpYnJhcnksCithbmQgImludGVybmFsIiBBUElzIGludGVuZGVkIGZvciB1c2UgYnkgdGhlIFBhcnNlciBhbmQgR2VuZXJhdG9yIGNvbXBvbmVudHMuCitUaGlzIGRpdmlzaW9uIGlzIGludGVudGlvbmFsbHkgYSBiaXQgZnV6eTsgdGhlIEFQSSBkZXNjcmliZWQgYnkgdGhpcyBkb2N1bWVudGF0aW9uCitpcyBhbGwgYSBwdWJsaWMsIHN0YWJsZSBBUEkuICBUaGlzIGFsbG93cyBmb3IgYW4gYXBwbGljYXRpb24gd2l0aCBzcGVjaWFsIG5lZWRzCit0byBpbXBsZW1lbnQgaXRzIG93biBwYXJzZXIgYW5kL29yIGdlbmVyYXRvci4KKworSW4gYWRkaXRpb24gdG8gdGhlIHRocmVlIG1ham9yIGZ1bmN0aW9uYWwgY29tcG9uZW50cywgdGhlcmUgaXMgYSB0aGlyZCBrZXkKK2NvbXBvbmVudCB0byB0aGUgYXJjaGl0ZWN0dXJlOgorCisgICAgUG9saWN5CisgICAgICAgIEFuIG9iamVjdCB0aGF0IHNwZWNpZmllcyB2YXJpb3VzIGJlaGF2aW9yYWwgc2V0dGluZ3MgYW5kIGNhcnJpZXMKKyAgICAgICAgaW1wbGVtZW50YXRpb25zIG9mIHZhcmlvdXMgYmVoYXZpb3ItY29udHJvbGxpbmcgbWV0aG9kcy4KKworVGhlIFBvbGljeSBmcmFtZXdvcmsgcHJvdmlkZXMgYSBzaW1wbGUgYW5kIGNvbnZlbmllbnQgd2F5IHRvIGNvbnRyb2wgdGhlCitiZWhhdmlvciBvZiB0aGUgbGlicmFyeSwgbWFraW5nIGl0IHBvc3NpYmxlIGZvciB0aGUgbGlicmFyeSB0byBiZSB1c2VkIGluIGEKK3ZlcnkgZmxleGlibGUgZmFzaGlvbiB3aGlsZSBsZXZlcmFnaW5nIHRoZSBjb21tb24gY29kZSByZXF1aXJlZCB0byBwYXJzZSwKK3JlcHJlc2VudCwgYW5kIGdlbmVyYXRlIG1lc3NhZ2UtbGlrZSBvYmplY3RzLiAgRm9yIGV4YW1wbGUsIGluIGFkZGl0aW9uIHRvIHRoZQorZGVmYXVsdCA6cmZjOmA1MzIyYCBlbWFpbCBtZXNzYWdlIHBvbGljeSwgd2UgYWxzbyBoYXZlIGEgcG9saWN5IHRoYXQgbWFuYWdlcworSFRUUCBoZWFkZXJzIGluIGEgZmFzaGlvbiBjb21wbGlhbnQgd2l0aCA6cmZjOmAyNjE2YC4gIEluZGl2aWR1YWwgcG9saWN5Citjb250cm9scywgc3VjaCBhcyB0aGUgbWF4aW11bSBsaW5lIGxlbmd0aCBwcm9kdWNlZCBieSB0aGUgZ2VuZXJhdG9yLCBjYW4gYWxzbworYmUgY29udHJvbGxlZCBpbmRpdmlkdWFsbHkgdG8gbWVldCBzcGVjaWFsaXplZCBhcHBsaWNhdGlvbiByZXF1aXJlbWVudHMuCisKKworVGhlIE1vZGVsCistLS0tLS0tLS0KKworVGhlIG1lc3NhZ2UgbW9kZWwgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIDpjbGFzczpgfmVtYWlsLm1lc3NhZ2UuTWVzc2FnZWAgY2xhc3MuCitUaGUgbW9kZWwgZGl2aWRlcyBhIG1lc3NhZ2UgaW50byB0aGUgdHdvIGZ1bmRhbWVudGFsIHBhcnRzIGRpc2N1c3NlZCBieSB0aGUKK1JGQzogdGhlIGhlYWRlciBzZWN0aW9uIGFuZCB0aGUgYm9keS4gIFRoZSBgTWVzc2FnZWAgb2JqZWN0IGFjdHMgYXMgYQorcHNldWRvLWRpY3Rpb25hcnkgb2YgbmFtZWQgaGVhZGVycy4gIEl0cyBkaWN0aW9uYXJ5IGludGVyZmFjZSBwcm92aWRlcworY29udmVuaWVudCBhY2Nlc3MgdG8gaW5kaXZpZHVhbCBoZWFkZXJzIGJ5IG5hbWUuICBIb3dldmVyLCBhbGwgaGVhZGVycyBhcmUga2VwdAoraW50ZXJuYWxseSBpbiBhbiBvcmRlcmVkIGxpc3QsIHNvIHRoYXQgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmRlciBvZiB0aGUKK2hlYWRlcnMgaW4gdGhlIG9yaWdpbmFsIG1lc3NhZ2UgaXMgcHJlc2VydmVkLgorCitUaGUgYE1lc3NhZ2VgIG9iamVjdCBhbHNvIGhhcyBhIGBwYXlsb2FkYCB0aGF0IGhvbGRzIHRoZSBib2R5LiAgQSBgcGF5bG9hZGAgY2FuCitiZSBvbmUgb2YgdHdvIHRoaW5nczogZGF0YSwgb3IgYSBsaXN0IG9mIGBNZXNzYWdlYCBvYmplY3RzLiAgVGhlIGxhdHRlciBpcyB1c2VkCit0byByZXByZXNlbnQgYSBtdWx0aXBhcnQgTUlNRSBtZXNzYWdlLiAgTGlzdHMgY2FuIGJlIG5lc3RlZCBhcmJpdHJhcmlseSBkZWVwbHkKK2luIG9yZGVyIHRvIHJlcHJlc2VudCB0aGUgbWVzc2FnZSwgd2l0aCBhbGwgdGVybWluYWwgbGVhdmVzIGhhdmluZyBub24tbGlzdAorZGF0YSBwYXlsb2Fkcy4KKworCitNZXNzYWdlIExpZmVjeWNsZQorLS0tLS0tLS0tLS0tLS0tLS0KKworVGhlIGdlbmVyYWwgbGlmZWN5bGUgb2YgYSBtZXNzYWdlIGlzOgorCisgICAgQ3JlYXRpb24KKyAgICAgICAgQSBgTWVzc2FnZWAgb2JqZWN0IGNhbiBiZSBjcmVhdGVkIGJ5IGEgUGFyc2VyLCBvciBpdCBjYW4gYmUKKyAgICAgICAgaW5zdGFudGlhdGVkIGFzIGFuIGVtcHR5IG1lc3NhZ2UgYnkgYW4gYXBwbGljYXRpb24uCisKKyAgICBNYW5pcHVsYXRpb24KKyAgICAgICAgVGhlIGFwcGxpY2F0aW9uIG1heSBleGFtaW5lIG9uZSBvciBtb3JlIGhlYWRlcnMsIGFuZC9vciB0aGUKKyAgICAgICAgcGF5bG9hZCwgYW5kIGl0IG1heSBtb2RpZnkgb25lIG9yIG1vcmUgaGVhZGVycyBhbmQvb3IKKyAgICAgICAgdGhlIHBheWxvYWQuICBUaGlzIG1heSBiZSBkb25lIG9uIHRoZSB0b3AgbGV2ZWwgYE1lc3NhZ2VgCisgICAgICAgIG9iamVjdCwgb3Igb24gYW55IHN1Yi1vYmplY3QuCisKKyAgICBGaW5hbGl6YXRpb24KKyAgICAgICAgVGhlIE1vZGVsIGlzIGNvbnZlcnRlZCBpbnRvIGEgdW5pY29kZSBvciBiaW5hcnkgc3RyZWFtLAorICAgICAgICBvciB0aGUgbW9kZWwgaXMgZGlzY2FyZGVkLgorCisKKworSGVhZGVyIFBvbGljeSBDb250cm9sIER1cmluZyBMaWZlY3ljbGUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK09uZSBvZiB0aGUgbWFqb3IgY29udHJvbHMgZXhlcnRlZCBieSB0aGUgUG9saWN5IGlzIHRoZSBtYW5hZ2VtZW50IG9mIGhlYWRlcnMKK2R1cmluZyB0aGUgYE1lc3NhZ2VgIGxpZmVjeWNsZS4gIE1vc3QgYXBwbGljYXRpb25zIGRvbid0IG5lZWQgdG8gYmUgYXdhcmUgb2YKK3RoaXMuCisKK0EgaGVhZGVyIGVudGVycyB0aGUgbW9kZWwgaW4gb25lIG9mIHR3byB3YXlzOiB2aWEgYSBQYXJzZXIsIG9yIGJ5IGJlaW5nIHNldCB0bworYSBzcGVjaWZpYyB2YWx1ZSBieSBhbiBhcHBsaWNhdGlvbiBwcm9ncmFtIGFmdGVyIHRoZSBNb2RlbCBhbHJlYWR5IGV4aXN0cy4KK1NpbWlsYXJseSwgYSBoZWFkZXIgZXhpdHMgdGhlIG1vZGVsIGluIG9uZSBvZiB0d28gd2F5czogYnkgYmVpbmcgc2VyaWFsaXplZCBieQorYSBHZW5lcmF0b3IsIG9yIGJ5IGJlaW5nIHJldHJpZXZlZCBmcm9tIGEgTW9kZWwgYnkgYW4gYXBwbGljYXRpb24gcHJvZ3JhbS4gIFRoZQorUG9saWN5IG9iamVjdCBwcm92aWRlcyBob29rcyBmb3IgYWxsIGZvdXIgb2YgdGhlc2UgcGF0aHdheXMuCisKK1RoZSBtb2RlbCBzdG9yYWdlIGZvciBoZWFkZXJzIGlzIGEgbGlzdCBvZiAobmFtZSwgdmFsdWUpIHR1cGxlcy4KKworVGhlIFBhcnNlciBpZGVudGlmaWVzIGhlYWRlcnMgZHVyaW5nIHBhcnNpbmcsIGFuZCBwYXNzZXMgdGhlbSB0byB0aGUKKzptZXRoOmB+ZW1haWwucG9saWN5LlBvbGljeS5oZWFkZXJfc291cmNlX3BhcnNlYCBtZXRob2Qgb2YgdGhlIFBvbGljeS4gIFRoZQorcmVzdWx0IG9mIHRoYXQgbWV0aG9kIGlzIHRoZSAobmFtZSwgdmFsdWUpIHR1cGxlIHRvIGJlIHN0b3JlZCBpbiB0aGUgbW9kZWwuCisKK1doZW4gYW4gYXBwbGljYXRpb24gcHJvZ3JhbSBzdXBwbGllcyBhIGhlYWRlciB2YWx1ZSAoZm9yIGV4YW1wbGUsIHRocm91Z2ggdGhlCitgTWVzc2FnZWAgb2JqZWN0IGBfX3NldGl0ZW1fX2AgaW50ZXJmYWNlKSwgdGhlIG5hbWUgYW5kIHRoZSB2YWx1ZSBhcmUgcGFzc2VkIHRvCit0aGUgOm1ldGg6YH5lbWFpbC5wb2xpY3kuUG9saWN5LmhlYWRlcl9zdG9yZV9wYXJzZWAgbWV0aG9kIG9mIHRoZSBQb2xpY3ksIHdoaWNoCityZXR1cm5zIHRoZSAobmFtZSwgdmFsdWUpIHR1cGxlIHRvIGJlIHN0b3JlZCBpbiB0aGUgbW9kZWwuCisKK1doZW4gYW4gYXBwbGljYXRpb24gcHJvZ3JhbSByZXRyaWV2ZXMgYSBoZWFkZXIgKHRocm91Z2ggYW55IG9mIHRoZSBkaWN0IG9yIGxpc3QKK2ludGVyZmFjZXMgb2YgYE1lc3NhZ2VgKSwgdGhlIG5hbWUgYW5kIHZhbHVlIGFyZSBwYXNzZWQgdG8gdGhlCis6bWV0aDpgfmVtYWlsLnBvbGljeS5Qb2xpY3kuaGVhZGVyX2ZldGNoX3BhcnNlYCBtZXRob2Qgb2YgdGhlIFBvbGljeSB0bworb2J0YWluIHRoZSB2YWx1ZSByZXR1cm5lZCB0byB0aGUgYXBwbGljYXRpb24uCisKK1doZW4gYSBHZW5lcmF0b3IgcmVxdWVzdHMgYSBoZWFkZXIgZHVyaW5nIHNlcmlhbGl6YXRpb24sIHRoZSBuYW1lIGFuZCB2YWx1ZSBhcmUKK3Bhc3NlZCB0byB0aGUgOm1ldGg6YH5lbWFpbC5wb2xpY3kuUG9saWN5LmZvbGRgIG1ldGhvZCBvZiB0aGUgUG9saWN5LCB3aGljaAorcmV0dXJucyBhIHN0cmluZyBjb250YWluaW5nIGxpbmUgYnJlYWtzIGluIHRoZSBhcHByb3ByaWF0ZSBwbGFjZXMuICBUaGUKKzptZXRoOmB+ZW1haWwucG9saWN5LlBvbGljeS5jdGVfdHlwZWAgUG9saWN5IGNvbnRyb2wgZGV0ZXJtaW5lcyB3aGV0aGVyIG9yCitub3QgQ29udGVudCBUcmFuc2ZlciBFbmNvZGluZyBpcyBwZXJmb3JtZWQgb24gdGhlIGRhdGEgaW4gdGhlIGhlYWRlci4gIFRoZXJlIGlzCithbHNvIGEgOm1ldGg6YH5lbWFpbC5wb2xpY3kuUG9saWN5LmJpbmFyeV9mb2xkYCBtZXRob2QgZm9yIHVzZSBieSBnZW5lcmF0b3JzCit0aGF0IHByb2R1Y2UgYmluYXJ5IG91dHB1dCwgd2hpY2ggcmV0dXJucyB0aGUgZm9sZGVkIGhlYWRlciBhcyBiaW5hcnkgZGF0YSwKK3Bvc3NpYmx5IGZvbGRlZCBhdCBkaWZmZXJlbnQgcGxhY2VzIHRoYW4gdGhlIGNvcnJlc3BvbmRpbmcgc3RyaW5nIHdvdWxkIGJlLgorCisKK0hhbmRsaW5nIEJpbmFyeSBEYXRhCistLS0tLS0tLS0tLS0tLS0tLS0tLQorCitJbiBhbiBpZGVhbCB3b3JsZCBhbGwgbWVzc2FnZSBkYXRhIHdvdWxkIGNvbmZvcm0gdG8gdGhlIFJGQ3MsIG1lYW5pbmcgdGhhdCB0aGUKK3BhcnNlciBjb3VsZCBkZWNvZGUgdGhlIG1lc3NhZ2UgaW50byB0aGUgaWRlYWxpemVkIHVuaWNvZGUgbWVzc2FnZSB0aGF0IHRoZQorc2VuZGVyIG9yaWdpbmFsbHkgd3JvdGUuICBJbiB0aGUgcmVhbCB3b3JsZCwgdGhlIGVtYWlsIHBhY2thZ2UgbXVzdCBhbHNvIGJlCithYmxlIHRvIGRlYWwgd2l0aCBiYWRseSBmb3JtYXR0ZWQgbWVzc2FnZXMsIGluY2x1ZGluZyBtZXNzYWdlcyBjb250YWluaW5nCitub24tQVNDSUkgY2hhcmFjdGVycyB0aGF0IGVpdGhlciBoYXZlIG5vIGluZGljYXRlZCBjaGFyYWN0ZXIgc2V0IG9yIGFyZSBub3QKK3ZhbGlkIGNoYXJhY3RlcnMgaW4gdGhlIGluZGljYXRlZCBjaGFyYWN0ZXIgc2V0LgorCitTaW5jZSBlbWFpbCBtZXNzYWdlcyBhcmUgKnByaW1hcmlseSogdGV4dCBkYXRhLCBhbmQgb3BlcmF0aW9ucyBvbiBtZXNzYWdlIGRhdGEKK2FyZSBwcmltYXJpbHkgdGV4dCBvcGVyYXRpb25zIChleGNlcHQgZm9yIGJpbmFyeSBwYXlsb2FkcyBvZiBjb3Vyc2UpLCB0aGUgbW9kZWwKK3N0b3JlcyBhbGwgdGV4dCBkYXRhIGFzIHVuaWNvZGUgc3RyaW5ncy4gIFVuLWRlY29kYWJsZSBiaW5hcnkgaW5zaWRlIHRleHQKK2RhdGEgaXMgaGFuZGxlZCBieSB1c2luZyB0aGUgYHN1cnJvZ2F0ZWVzY2FwZWAgZXJyb3IgaGFuZGxlciBvZiB0aGUgQVNDSUkKK2NvZGVjLiAgQXMgd2l0aCB0aGUgYmluYXJ5IGZpbGVuYW1lcyB0aGUgZXJyb3IgaGFuZGxlciB3YXMgaW50cm9kdWNlZCB0bworaGFuZGxlLCB0aGlzIGFsbG93cyB0aGUgZW1haWwgcGFja2FnZSB0byAiY2FycnkiIHRoZSBiaW5hcnkgZGF0YSByZWNlaXZlZAorZHVyaW5nIHBhcnNpbmcgYWxvbmcgdW50aWwgdGhlIG91dHB1dCBzdGFnZSwgYXQgd2hpY2ggdGltZSBpdCBpcyByZWdlbmVyYXRlZAoraW4gaXRzIG9yaWdpbmFsIGZvcm0uCisKK1RoaXMgY2FycmllZCBiaW5hcnkgZGF0YSBpcyBhbG1vc3QgZW50aXJlbHkgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLiAgVGhlIG9uZQorcGxhY2Ugd2hlcmUgaXQgaXMgdmlzaWJsZSBpbiB0aGUgQVBJIGlzIGluIHRoZSAiaW50ZXJuYWwiIEFQSS4gIEEgUGFyc2VyIG11c3QKK2RvIHRoZSBgc3Vycm9nYXRlZXNjYXBlYCBlbmNvZGluZyBvZiBiaW5hcnkgaW5wdXQgZGF0YSwgYW5kIHBhc3MgdGhhdCBkYXRhIHRvCit0aGUgYXBwcm9wcmlhdGUgUG9saWN5IG1ldGhvZC4gIFRoZSAiaW50ZXJuYWwiIGludGVyZmFjZSB1c2VkIGJ5IHRoZSBHZW5lcmF0b3IKK3RvIGFjY2VzcyBoZWFkZXIgdmFsdWVzIHByZXNlcnZlcyB0aGUgYHN1cnJvZ2F0ZWVzY2FwZWRgIGJ5dGVzLiAgQWxsIG90aGVyCitpbnRlcmZhY2VzIGNvbnZlcnQgdGhlIGJpbmFyeSBkYXRhIGVpdGhlciBiYWNrIGludG8gYnl0ZXMgb3IgaW50byBhIHNhZmUgZm9ybQorKGxvc2luZyBpbmZvcm1hdGlvbiBpbiBzb21lIGNhc2VzKS4KKworCitCYWNrd2FyZCBDb21wYXRpYmlsaXR5CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSA6Y2xhc3M6YH5lbWFpbC5wb2xpY3kuUG9saWN5LkNvbXBhdDMyYCBQb2xpY3kgcHJvdmlkZXMgYmFja3dhcmQKK2NvbXBhdGliaWxpdHkgd2l0aCB2ZXJzaW9uIDUuMSBvZiB0aGUgZW1haWwgcGFja2FnZS4gIEl0IGRvZXMgdGhpcyB2aWEgdGhlCitmb2xsb3dpbmcgaW1wbGVtZW50YXRpb24gb2YgdGhlIGZvdXIrMSBQb2xpY3kgbWV0aG9kcyBkZXNjcmliZWQgYWJvdmU6CisKK2hlYWRlcl9zb3VyY2VfcGFyc2UKKyAgICBTcGxpdHMgdGhlIGZpcnN0IGxpbmUgb24gdGhlIGNvbG9uIHRvIG9idGFpbiB0aGUgbmFtZSwgZGlzY2FyZHMgYW55IHNwYWNlcworICAgIGFmdGVyIHRoZSBjb2xvbiwgYW5kIGpvaW5zIHRoZSByZW1haW5kZXIgb2YgdGhlIGxpbmUgd2l0aCBhbGwgb2YgdGhlCisgICAgcmVtYWluaW5nIGxpbmVzLCBwcmVzZXJ2aW5nIHRoZSBsaW5lc2VwIGNoYXJhY3RlcnMgdG8gb2J0YWluIHRoZSB2YWx1ZS4KKyAgICBUcmFpbGluZyBjYXJyaWFnZSByZXR1cm4gYW5kL29yIGxpbmVmZWVkIGNoYXJhY3RlcnMgYXJlIHN0cmlwcGVkIGZyb20gdGhlCisgICAgcmVzdWx0aW5nIHZhbHVlIHN0cmluZy4KKworaGVhZGVyX3N0b3JlX3BhcnNlCisgICAgUmV0dXJucyB0aGUgbmFtZSBhbmQgdmFsdWUgZXhhY3RseSBhcyByZWNlaXZlZCBmcm9tIHRoZSBhcHBsaWNhdGlvbi4KKworaGVhZGVyX2ZldGNoX3BhcnNlCisgICAgSWYgdGhlIHZhbHVlIGNvbnRhaW5zIGFueSBgc3Vycm9nYXRlZXNjYXBlZGAgYmluYXJ5IGRhdGEsIHJldHVybiB0aGUgdmFsdWUKKyAgICBhcyBhIDpjbGFzczpgfmVtYWlsLmhlYWRlci5IZWFkZXJgIG9iamVjdCwgdXNpbmcgdGhlIGNoYXJhY3RlciBzZXQKKyAgICBgdW5rbm93bi04Yml0YC4gIE90aGVyd2lzZSBqdXN0IHJldHVybnMgdGhlIHZhbHVlLgorCitmb2xkCisgICAgVXNlcyA6Y2xhc3M6YH5lbWFpbC5oZWFkZXIuSGVhZGVyYCdzIGZvbGRpbmcgdG8gZm9sZCBoZWFkZXJzIGluIHRoZQorICAgIHNhbWUgd2F5IHRoZSBlbWFpbDUuMSBnZW5lcmF0b3IgZGlkLgorCitiaW5hcnlfZm9sZAorICAgIFNhbWUgYXMgZm9sZCwgYnV0IGVuY29kZXMgdG8gJ2FzY2lpJy4KKworCitOZXcgQWxnb3JpdGhtCistLS0tLS0tLS0tLS0tCisKK2hlYWRlcl9zb3VyY2VfcGFyc2UKKyAgICBTYW1lIGFzIGxlZ2FjeSBiZWhhdmlvci4KKworaGVhZGVyX3N0b3JlX3BhcnNlCisgICAgU2FtZSBhcyBsZWdhY3kgYmVoYXZpb3IuCisKK2hlYWRlcl9mZXRjaF9wYXJzZQorICAgIElmIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IGEgaGVhZGVyIG9iamVjdCwgcmV0dXJucyBpdC4gIE90aGVyd2lzZSwgcGFyc2VzIHRoZQorICAgIHZhbHVlIHVzaW5nIHRoZSBuZXcgcGFyc2VyLCBhbmQgcmV0dXJucyB0aGUgcmVzdWx0aW5nIG9iamVjdCBhcyB0aGUgdmFsdWUuCisgICAgYHN1cnJvZ2F0ZWVzY2FwZWRgIGJ5dGVzIGdldCB0dXJuZWQgaW50byB1bmljb2RlIHVua25vd24gY2hhcmFjdGVyIGNvZGUKKyAgICBwb2ludHMuCisKK2ZvbGQKKyAgICBVc2VzIHRoZSBuZXcgaGVhZGVyIGZvbGRpbmcgYWxnb3JpdGhtLCByZXNwZWN0aW5nIHRoZSBwb2xpY3kgc2V0dGluZ3MuCisgICAgc3Vycm9nYXRlZXNjYXBlZCBieXRlcyBhcmUgZW5jb2RlZCB1c2luZyB0aGUgYGB1bmtub3duLThiaXRgYCBjaGFyc2V0IGZvcgorICAgIGBgY3RlX3R5cGU9N2JpdGBgIG9yIGBgOGJpdGBgLiAgUmV0dXJucyBhIHN0cmluZy4KKworICAgIEF0IHNvbWUgcG9pbnQgdGhlcmUgd2lsbCBhbHNvIGJlIGEgYGBjdGVfdHlwZT11bmljb2RlYGAsIGFuZCBmb3IgdGhhdAorICAgIHBvbGljeSBmb2xkIHdpbGwgc2VyaWFsaXplIHRoZSBpZGVhbGl6ZWQgdW5pY29kZSBtZXNzYWdlIHdpdGggUkZDLWxpa2UKKyAgICBmb2xkaW5nLCBjb252ZXJ0aW5nIGFueSBzdXJyb2dhdGVlc2NhcGVkIGJ5dGVzIGludG8gdGhlIHVuaWNvZGUKKyAgICB1bmtub3duIGNoYXJhY3RlciBnbHlwaC4KKworYmluYXJ5X2ZvbGQKKyAgICBVc2VzIHRoZSBuZXcgaGVhZGVyIGZvbGRpbmcgYWxnb3JpdGhtLCByZXNwZWN0aW5nIHRoZSBwb2xpY3kgc2V0dGluZ3MuCisgICAgc3Vycm9nYXRlZXNjYXBlZCBieXRlcyBhcmUgZW5jb2RlZCB1c2luZyB0aGUgYHVua25vd24tOGJpdGAgY2hhcnNldCBmb3IKKyAgICBgYGN0ZV90eXBlPTdiaXRgYCwgYW5kIGdldCB0dXJuZWQgYmFjayBpbnRvIGJ5dGVzIGZvciBgYGN0ZV90eXBlPThiaXRgYC4KKyAgICBSZXR1cm5zIGJ5dGVzLgorCisgICAgQXQgc29tZSBwb2ludCB0aGVyZSB3aWxsIGFsc28gYmUgYSBgYGN0ZV90eXBlPXVuaWNvZGVgYCwgYW5kIGZvciB0aGF0CisgICAgcG9saWN5IGJpbmFyeV9mb2xkIHdpbGwgc2VyaWFsaXplIHRoZSBtZXNzYWdlIGFjY29yZGluZyB0byA6cmZjOmBgNTMzNWBgLgpkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL2Vycm9ycy5weSBiL0xpYi9lbWFpbC9lcnJvcnMucHkKaW5kZXggZDUyYTYyNC4uNzkxMjM5ZiAxMDA2NDQKLS0tIGEvTGliL2VtYWlsL2Vycm9ycy5weQorKysgYi9MaWIvZW1haWwvZXJyb3JzLnB5CkBAIC01LDcgKzUsNiBAQAogIiIiZW1haWwgcGFja2FnZSBleGNlcHRpb24gY2xhc3Nlcy4iIiIKIAogCi0MCiBjbGFzcyBNZXNzYWdlRXJyb3IoRXhjZXB0aW9uKToKICAgICAiIiJCYXNlIGNsYXNzIGZvciBlcnJvcnMgaW4gdGhlIGVtYWlsIHBhY2thZ2UuIiIiCiAKQEAgLTMwLDEyICsyOSwxMyBAQAogICAgICIiIkFuIGlsbGVnYWwgY2hhcnNldCB3YXMgZ2l2ZW4uIiIiCiAKIAotDAogIyBUaGVzZSBhcmUgcGFyc2luZyBkZWZlY3RzIHdoaWNoIHRoZSBwYXJzZXIgd2FzIGFibGUgdG8gd29yayBhcm91bmQuCi1jbGFzcyBNZXNzYWdlRGVmZWN0OgorY2xhc3MgTWVzc2FnZURlZmVjdChWYWx1ZUVycm9yKToKICAgICAiIiJCYXNlIGNsYXNzIGZvciBhIG1lc3NhZ2UgZGVmZWN0LiIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxpbmU9Tm9uZSk6CisgICAgICAgIGlmIGxpbmUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKGxpbmUpCiAgICAgICAgIHNlbGYubGluZSA9IGxpbmUKIAogY2xhc3MgTm9Cb3VuZGFyeUluTXVsdGlwYXJ0RGVmZWN0KE1lc3NhZ2VEZWZlY3QpOgpAQCAtNDQsMTQgKzQ0LDY0IEBACiBjbGFzcyBTdGFydEJvdW5kYXJ5Tm90Rm91bmREZWZlY3QoTWVzc2FnZURlZmVjdCk6CiAgICAgIiIiVGhlIGNsYWltZWQgc3RhcnQgYm91bmRhcnkgd2FzIG5ldmVyIGZvdW5kLiIiIgogCitjbGFzcyBDbG9zZUJvdW5kYXJ5Tm90Rm91bmREZWZlY3QoTWVzc2FnZURlZmVjdCk6CisgICAgIiIiQSBzdGFydCBib3VuZGFyeSB3YXMgZm91bmQsIGJ1dCBub3QgdGhlIGNvcnJlc3BvbmRpbmcgY2xvc2UgYm91bmRhcnkuIiIiCisKIGNsYXNzIEZpcnN0SGVhZGVyTGluZUlzQ29udGludWF0aW9uRGVmZWN0KE1lc3NhZ2VEZWZlY3QpOgogICAgICIiIkEgbWVzc2FnZSBoYWQgYSBjb250aW51YXRpb24gbGluZSBhcyBpdHMgZmlyc3QgaGVhZGVyIGxpbmUuIiIiCiAKIGNsYXNzIE1pc3BsYWNlZEVudmVsb3BlSGVhZGVyRGVmZWN0KE1lc3NhZ2VEZWZlY3QpOgogICAgICIiIkEgJ1VuaXgtZnJvbScgaGVhZGVyIHdhcyBmb3VuZCBpbiB0aGUgbWlkZGxlIG9mIGEgaGVhZGVyIGJsb2NrLiIiIgogCi1jbGFzcyBNYWxmb3JtZWRIZWFkZXJEZWZlY3QoTWVzc2FnZURlZmVjdCk6Ci0gICAgIiIiRm91bmQgYSBoZWFkZXIgdGhhdCB3YXMgbWlzc2luZyBhIGNvbG9uLCBvciB3YXMgb3RoZXJ3aXNlIG1hbGZvcm1lZC4iIiIKK2NsYXNzIE1pc3NpbmdIZWFkZXJCb2R5U2VwYXJhdG9yRGVmZWN0KE1lc3NhZ2VEZWZlY3QpOgorICAgICIiIkZvdW5kIGxpbmUgd2l0aCBubyBsZWFkaW5nIHdoaXRlc3BhY2UgYW5kIG5vIGNvbG9uIGJlZm9yZSBibGFuayBsaW5lLiIiIgorIyBYWFg6IGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGp1c3QgaW4gY2FzZSAoaXQgd2FzIG5ldmVyIGVtaXR0ZWQpLgorTWFsZm9ybWVkSGVhZGVyRGVmZWN0ID0gTWlzc2luZ0hlYWRlckJvZHlTZXBhcmF0b3JEZWZlY3QKIAogY2xhc3MgTXVsdGlwYXJ0SW52YXJpYW50VmlvbGF0aW9uRGVmZWN0KE1lc3NhZ2VEZWZlY3QpOgogICAgICIiIkEgbWVzc2FnZSBjbGFpbWVkIHRvIGJlIGEgbXVsdGlwYXJ0IGJ1dCBubyBzdWJwYXJ0cyB3ZXJlIGZvdW5kLiIiIgorCitjbGFzcyBJbnZhbGlkTXVsdGlwYXJ0Q29udGVudFRyYW5zZmVyRW5jb2RpbmdEZWZlY3QoTWVzc2FnZURlZmVjdCk6CisgICAgIiIiQW4gaW52YWxpZCBjb250ZW50IHRyYW5zZmVyIGVuY29kaW5nIHdhcyBzZXQgb24gdGhlIG11bHRpcGFydCBpdHNlbGYuIiIiCisKK2NsYXNzIFVuZGVjb2RhYmxlQnl0ZXNEZWZlY3QoTWVzc2FnZURlZmVjdCk6CisgICAgIiIiSGVhZGVyIGNvbnRhaW5lZCBieXRlcyB0aGF0IGNvdWxkIG5vdCBiZSBkZWNvZGVkIiIiCisKK2NsYXNzIEludmFsaWRCYXNlNjRQYWRkaW5nRGVmZWN0KE1lc3NhZ2VEZWZlY3QpOgorICAgICIiImJhc2U2NCBlbmNvZGVkIHNlcXVlbmNlIGhhZCBhbiBpbmNvcnJlY3QgbGVuZ3RoIiIiCisKK2NsYXNzIEludmFsaWRCYXNlNjRDaGFyYWN0ZXJzRGVmZWN0KE1lc3NhZ2VEZWZlY3QpOgorICAgICIiImJhc2U2NCBlbmNvZGVkIHNlcXVlbmNlIGhhZCBjaGFyYWN0ZXJzIG5vdCBpbiBiYXNlNjQgYWxwaGFiZXQiIiIKKworIyBUaGVzZSBlcnJvcnMgYXJlIHNwZWNpZmljIHRvIGhlYWRlciBwYXJzaW5nLgorCitjbGFzcyBIZWFkZXJEZWZlY3QoTWVzc2FnZURlZmVjdCk6CisgICAgIiIiQmFzZSBjbGFzcyBmb3IgYSBoZWFkZXIgZGVmZWN0LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqYXJncywgKiprdykKKworY2xhc3MgSW52YWxpZEhlYWRlckRlZmVjdChIZWFkZXJEZWZlY3QpOgorICAgICIiIkhlYWRlciBpcyBub3QgdmFsaWQsIG1lc3NhZ2UgZ2l2ZXMgZGV0YWlscy4iIiIKKworY2xhc3MgSGVhZGVyTWlzc2luZ1JlcXVpcmVkVmFsdWUoSGVhZGVyRGVmZWN0KToKKyAgICAiIiJBIGhlYWRlciB0aGF0IG11c3QgaGF2ZSBhIHZhbHVlIGhhZCBub25lIiIiCisKK2NsYXNzIE5vblByaW50YWJsZURlZmVjdChIZWFkZXJEZWZlY3QpOgorICAgICIiIkFTQ0lJIGNoYXJhY3RlcnMgb3V0c2lkZSB0aGUgYXNjaWktcHJpbnRhYmxlIHJhbmdlIGZvdW5kIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9uX3ByaW50YWJsZXMpOgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKG5vbl9wcmludGFibGVzKQorICAgICAgICBzZWxmLm5vbl9wcmludGFibGVzID0gbm9uX3ByaW50YWJsZXMKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gKCJ0aGUgZm9sbG93aW5nIEFTQ0lJIG5vbi1wcmludGFibGVzIGZvdW5kIGluIGhlYWRlcjogIgorICAgICAgICAgICAgInt9Ii5mb3JtYXQoc2VsZi5ub25fcHJpbnRhYmxlcykpCisKK2NsYXNzIE9ic29sZXRlSGVhZGVyRGVmZWN0KEhlYWRlckRlZmVjdCk6CisgICAgIiIiSGVhZGVyIHVzZXMgc3ludGF4IGRlY2xhcmVkIG9ic29sZXRlIGJ5IFJGQyA1MzIyIiIiCisKK2NsYXNzIE5vbkFTQ0lJTG9jYWxQYXJ0RGVmZWN0KEhlYWRlckRlZmVjdCk6CisgICAgIiIibG9jYWxfcGFydCBjb250YWlucyBub24tQVNDSUkgY2hhcmFjdGVycyIiIgorICAgICMgVGhpcyBkZWZlY3Qgb25seSBvY2N1cnMgZHVyaW5nIHVuaWNvZGUgcGFyc2luZywgbm90IHdoZW4KKyAgICAjIHBhcnNpbmcgbWVzc2FnZXMgZGVjb2RlZCBmcm9tIGJpbmFyeS4KZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9mZWVkcGFyc2VyLnB5IGIvTGliL2VtYWlsL2ZlZWRwYXJzZXIucHkKaW5kZXggYWE4YTJmZi4uNTZmNTBkZiAxMDA2NDQKLS0tIGEvTGliL2VtYWlsL2ZlZWRwYXJzZXIucHkKKysrIGIvTGliL2VtYWlsL2ZlZWRwYXJzZXIucHkKQEAgLTI1LDYgKzI1LDcgQEAKIAogZnJvbSBlbWFpbCBpbXBvcnQgZXJyb3JzCiBmcm9tIGVtYWlsIGltcG9ydCBtZXNzYWdlCitmcm9tIGVtYWlsLl9wb2xpY3liYXNlIGltcG9ydCBjb21wYXQzMgogCiBOTENSRSA9IHJlLmNvbXBpbGUoJ1xyXG58XHJ8XG4nKQogTkxDUkVfYm9sID0gcmUuY29tcGlsZSgnKFxyXG58XHJ8XG4pJykKQEAgLTEyMCw5ICsxMjEsNiBAQAogICAgICAgICAjIFJldmVyc2UgYW5kIGluc2VydCBhdCB0aGUgZnJvbnQgb2YgdGhlIGxpbmVzLgogICAgICAgICBzZWxmLl9saW5lc1s6MF0gPSBsaW5lc1s6Oi0xXQogCi0gICAgZGVmIGlzX2Nsb3NlZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Nsb3NlZAotCiAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZgogCkBAIC0xMzcsOSArMTM1LDIyIEBACiBjbGFzcyBGZWVkUGFyc2VyOgogICAgICIiIkEgZmVlZC1zdHlsZSBwYXJzZXIgb2YgZW1haWwuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgX2ZhY3Rvcnk9bWVzc2FnZS5NZXNzYWdlKToKLSAgICAgICAgIiIiX2ZhY3RvcnkgaXMgY2FsbGVkIHdpdGggbm8gYXJndW1lbnRzIHRvIGNyZWF0ZSBhIG5ldyBtZXNzYWdlIG9iaiIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBfZmFjdG9yeT1tZXNzYWdlLk1lc3NhZ2UsICosIHBvbGljeT1jb21wYXQzMik6CisgICAgICAgICIiIl9mYWN0b3J5IGlzIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cyB0byBjcmVhdGUgYSBuZXcgbWVzc2FnZSBvYmoKKworICAgICAgICBUaGUgcG9saWN5IGtleXdvcmQgc3BlY2lmaWVzIGEgcG9saWN5IG9iamVjdCB0aGF0IGNvbnRyb2xzIGEgbnVtYmVyIG9mCisgICAgICAgIGFzcGVjdHMgb2YgdGhlIHBhcnNlcidzIG9wZXJhdGlvbi4gIFRoZSBkZWZhdWx0IHBvbGljeSBtYWludGFpbnMKKyAgICAgICAgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKworICAgICAgICAiIiIKICAgICAgICAgc2VsZi5fZmFjdG9yeSA9IF9mYWN0b3J5CisgICAgICAgIHNlbGYucG9saWN5ID0gcG9saWN5CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIF9mYWN0b3J5KHBvbGljeT1zZWxmLnBvbGljeSkKKyAgICAgICAgICAgIHNlbGYuX2ZhY3Rvcnlfa3dkcyA9IGxhbWJkYTogeydwb2xpY3knOiBzZWxmLnBvbGljeX0KKyAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgICMgQXNzdW1lIHRoaXMgaXMgYW4gb2xkLXN0eWxlIGZhY3RvcnkKKyAgICAgICAgICAgIHNlbGYuX2ZhY3Rvcnlfa3dkcyA9IGxhbWJkYToge30KICAgICAgICAgc2VsZi5faW5wdXQgPSBCdWZmZXJlZFN1YkZpbGUoKQogICAgICAgICBzZWxmLl9tc2dzdGFjayA9IFtdCiAgICAgICAgIHNlbGYuX3BhcnNlID0gc2VsZi5fcGFyc2VnZW4oKS5fX25leHRfXwpAQCAtMTcxLDExICsxODIsMTIgQEAKICAgICAgICAgIyBMb29rIGZvciBmaW5hbCBzZXQgb2YgZGVmZWN0cwogICAgICAgICBpZiByb290LmdldF9jb250ZW50X21haW50eXBlKCkgPT0gJ211bHRpcGFydCcgXAogICAgICAgICAgICAgICAgYW5kIG5vdCByb290LmlzX211bHRpcGFydCgpOgotICAgICAgICAgICAgcm9vdC5kZWZlY3RzLmFwcGVuZChlcnJvcnMuTXVsdGlwYXJ0SW52YXJpYW50VmlvbGF0aW9uRGVmZWN0KCkpCisgICAgICAgICAgICBkZWZlY3QgPSBlcnJvcnMuTXVsdGlwYXJ0SW52YXJpYW50VmlvbGF0aW9uRGVmZWN0KCkKKyAgICAgICAgICAgIHNlbGYucG9saWN5LmhhbmRsZV9kZWZlY3Qocm9vdCwgZGVmZWN0KQogICAgICAgICByZXR1cm4gcm9vdAogCiAgICAgZGVmIF9uZXdfbWVzc2FnZShzZWxmKToKLSAgICAgICAgbXNnID0gc2VsZi5fZmFjdG9yeSgpCisgICAgICAgIG1zZyA9IHNlbGYuX2ZhY3RvcnkoKipzZWxmLl9mYWN0b3J5X2t3ZHMoKSkKICAgICAgICAgaWYgc2VsZi5fY3VyIGFuZCBzZWxmLl9jdXIuZ2V0X2NvbnRlbnRfdHlwZSgpID09ICdtdWx0aXBhcnQvZGlnZXN0JzoKICAgICAgICAgICAgIG1zZy5zZXRfZGVmYXVsdF90eXBlKCdtZXNzYWdlL3JmYzgyMicpCiAgICAgICAgIGlmIHNlbGYuX21zZ3N0YWNrOgpAQCAtMjA3LDYgKzIxOSw4IEBACiAgICAgICAgICAgICAgICAgIyAoaS5lLiBuZXdsaW5lKSwganVzdCB0aHJvdyBpdCBhd2F5LiBPdGhlcndpc2UgdGhlIGxpbmUgaXMKICAgICAgICAgICAgICAgICAjIHBhcnQgb2YgdGhlIGJvZHkgc28gcHVzaCBpdCBiYWNrLgogICAgICAgICAgICAgICAgIGlmIG5vdCBOTENSRS5tYXRjaChsaW5lKToKKyAgICAgICAgICAgICAgICAgICAgZGVmZWN0ID0gZXJyb3JzLk1pc3NpbmdIZWFkZXJCb2R5U2VwYXJhdG9yRGVmZWN0KCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wb2xpY3kuaGFuZGxlX2RlZmVjdChzZWxmLl9jdXIsIGRlZmVjdCkKICAgICAgICAgICAgICAgICAgICAgc2VsZi5faW5wdXQudW5yZWFkbGluZShsaW5lKQogICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICBoZWFkZXJzLmFwcGVuZChsaW5lKQpAQCAtMjg0LDcgKzI5OCw4IEBACiAgICAgICAgICAgICAgICAgIyBkZWZpbmVkIGEgYm91bmRhcnkuICBUaGF0J3MgYSBwcm9ibGVtIHdoaWNoIHdlJ2xsIGhhbmRsZSBieQogICAgICAgICAgICAgICAgICMgcmVhZGluZyBldmVyeXRoaW5nIHVudGlsIHRoZSBFT0YgYW5kIG1hcmtpbmcgdGhlIG1lc3NhZ2UgYXMKICAgICAgICAgICAgICAgICAjIGRlZmVjdGl2ZS4KLSAgICAgICAgICAgICAgICBzZWxmLl9jdXIuZGVmZWN0cy5hcHBlbmQoZXJyb3JzLk5vQm91bmRhcnlJbk11bHRpcGFydERlZmVjdCgpKQorICAgICAgICAgICAgICAgIGRlZmVjdCA9IGVycm9ycy5Ob0JvdW5kYXJ5SW5NdWx0aXBhcnREZWZlY3QoKQorICAgICAgICAgICAgICAgIHNlbGYucG9saWN5LmhhbmRsZV9kZWZlY3Qoc2VsZi5fY3VyLCBkZWZlY3QpCiAgICAgICAgICAgICAgICAgbGluZXMgPSBbXQogICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuX2lucHV0OgogICAgICAgICAgICAgICAgICAgICBpZiBsaW5lIGlzIE5lZWRNb3JlRGF0YToKQEAgLTI5Myw2ICszMDgsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGxpbmUpCiAgICAgICAgICAgICAgICAgc2VsZi5fY3VyLnNldF9wYXlsb2FkKEVNUFRZU1RSSU5HLmpvaW4obGluZXMpKQogICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIyBNYWtlIHN1cmUgYSB2YWxpZCBjb250ZW50IHR5cGUgd2FzIHNwZWNpZmllZCBwZXIgUkZDIDIwNDU6Ni40LgorICAgICAgICAgICAgaWYgKHNlbGYuX2N1ci5nZXQoJ2NvbnRlbnQtdHJhbnNmZXItZW5jb2RpbmcnLCAnOGJpdCcpLmxvd2VyKCkKKyAgICAgICAgICAgICAgICAgICAgbm90IGluICgnN2JpdCcsICc4Yml0JywgJ2JpbmFyeScpKToKKyAgICAgICAgICAgICAgICBkZWZlY3QgPSBlcnJvcnMuSW52YWxpZE11bHRpcGFydENvbnRlbnRUcmFuc2ZlckVuY29kaW5nRGVmZWN0KCkKKyAgICAgICAgICAgICAgICBzZWxmLnBvbGljeS5oYW5kbGVfZGVmZWN0KHNlbGYuX2N1ciwgZGVmZWN0KQogICAgICAgICAgICAgIyBDcmVhdGUgYSBsaW5lIG1hdGNoIHByZWRpY2F0ZSB3aGljaCBtYXRjaGVzIHRoZSBpbnRlci1wYXJ0CiAgICAgICAgICAgICAjIGJvdW5kYXJ5IGFzIHdlbGwgYXMgdGhlIGVuZC1vZi1tdWx0aXBhcnQgYm91bmRhcnkuICBEb24ndCBwdXNoCiAgICAgICAgICAgICAjIHRoaXMgb250byB0aGUgaW5wdXQgc3RyZWFtIHVudGlsIHdlJ3ZlIHNjYW5uZWQgcGFzdCB0aGUKQEAgLTMwNCw2ICszMjQsNyBAQAogICAgICAgICAgICAgY2FwdHVyaW5nX3ByZWFtYmxlID0gVHJ1ZQogICAgICAgICAgICAgcHJlYW1ibGUgPSBbXQogICAgICAgICAgICAgbGluZXNlcCA9IEZhbHNlCisgICAgICAgICAgICBjbG9zZV9ib3VuZGFyeV9zZWVuID0gRmFsc2UKICAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICAgbGluZSA9IHNlbGYuX2lucHV0LnJlYWRsaW5lKCkKICAgICAgICAgICAgICAgICBpZiBsaW5lIGlzIE5lZWRNb3JlRGF0YToKQEAgLTMxOCw2ICszMzksNyBAQAogICAgICAgICAgICAgICAgICAgICAjIHRoZSBjbG9zaW5nIGJvdW5kYXJ5LCB0aGVuIHdlIG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUKICAgICAgICAgICAgICAgICAgICAgIyBlcGlsb2d1ZSB3aXRoIHRoZSBlbXB0eSBzdHJpbmcgKHNlZSBiZWxvdykuCiAgICAgICAgICAgICAgICAgICAgIGlmIG1vLmdyb3VwKCdlbmQnKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2JvdW5kYXJ5X3NlZW4gPSBUcnVlCiAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lc2VwID0gbW8uZ3JvdXAoJ2xpbmVzZXAnKQogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICAgIyBXZSBzYXcgYW4gaW50ZXItcGFydCBib3VuZGFyeS4gIFdlcmUgd2UgaW4gdGhlIHByZWFtYmxlPwpAQCAtMzg2LDkgKzQwOCw5IEBACiAgICAgICAgICAgICAjIFdlJ3ZlIHNlZW4gZWl0aGVyIHRoZSBFT0Ygb3IgdGhlIGVuZCBib3VuZGFyeS4gIElmIHdlJ3JlIHN0aWxsCiAgICAgICAgICAgICAjIGNhcHR1cmluZyB0aGUgcHJlYW1ibGUsIHdlIG5ldmVyIHNhdyB0aGUgc3RhcnQgYm91bmRhcnkuICBOb3RlCiAgICAgICAgICAgICAjIHRoYXQgYXMgYSBkZWZlY3QgYW5kIHN0b3JlIHRoZSBjYXB0dXJlZCB0ZXh0IGFzIHRoZSBwYXlsb2FkLgotICAgICAgICAgICAgIyBFdmVyeXRoaW5nIGZyb20gaGVyZSB0byB0aGUgRU9GIGlzIGVwaWxvZ3VlLgogICAgICAgICAgICAgaWYgY2FwdHVyaW5nX3ByZWFtYmxlOgotICAgICAgICAgICAgICAgIHNlbGYuX2N1ci5kZWZlY3RzLmFwcGVuZChlcnJvcnMuU3RhcnRCb3VuZGFyeU5vdEZvdW5kRGVmZWN0KCkpCisgICAgICAgICAgICAgICAgZGVmZWN0ID0gZXJyb3JzLlN0YXJ0Qm91bmRhcnlOb3RGb3VuZERlZmVjdCgpCisgICAgICAgICAgICAgICAgc2VsZi5wb2xpY3kuaGFuZGxlX2RlZmVjdChzZWxmLl9jdXIsIGRlZmVjdCkKICAgICAgICAgICAgICAgICBzZWxmLl9jdXIuc2V0X3BheWxvYWQoRU1QVFlTVFJJTkcuam9pbihwcmVhbWJsZSkpCiAgICAgICAgICAgICAgICAgZXBpbG9ndWUgPSBbXQogICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuX2lucHV0OgpAQCAtMzk3LDggKzQxOSwxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICBzZWxmLl9jdXIuZXBpbG9ndWUgPSBFTVBUWVNUUklORy5qb2luKGVwaWxvZ3VlKQogICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgIyBJZiB0aGUgZW5kIGJvdW5kYXJ5IGVuZGVkIGluIGEgbmV3bGluZSwgd2UnbGwgbmVlZCB0byBtYWtlIHN1cmUKLSAgICAgICAgICAgICMgdGhlIGVwaWxvZ3VlIGlzbid0IE5vbmUKKyAgICAgICAgICAgICMgSWYgd2UncmUgbm90IHByb2Nlc3NpbmcgdGhlIHByZWFtYmxlLCB0aGVuIHdlIG1pZ2h0IGhhdmUgc2VlbgorICAgICAgICAgICAgIyBFT0Ygd2l0aG91dCBzZWVpbmcgdGhhdCBlbmQgYm91bmRhcnkuLi50aGF0IGlzIGFsc28gYSBkZWZlY3QuCisgICAgICAgICAgICBpZiBub3QgY2xvc2VfYm91bmRhcnlfc2VlbjoKKyAgICAgICAgICAgICAgICBkZWZlY3QgPSBlcnJvcnMuQ2xvc2VCb3VuZGFyeU5vdEZvdW5kRGVmZWN0KCkKKyAgICAgICAgICAgICAgICBzZWxmLnBvbGljeS5oYW5kbGVfZGVmZWN0KHNlbGYuX2N1ciwgZGVmZWN0KQorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIyBFdmVyeXRoaW5nIGZyb20gaGVyZSB0byB0aGUgRU9GIGlzIGVwaWxvZ3VlLiAgSWYgdGhlIGVuZCBib3VuZGFyeQorICAgICAgICAgICAgIyBlbmRlZCBpbiBhIG5ld2xpbmUsIHdlJ2xsIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBlcGlsb2d1ZSBpc24ndAorICAgICAgICAgICAgIyBOb25lCiAgICAgICAgICAgICBpZiBsaW5lc2VwOgogICAgICAgICAgICAgICAgIGVwaWxvZ3VlID0gWycnXQogICAgICAgICAgICAgZWxzZToKQEAgLTQ0MCwxNCArNDY5LDEyIEBACiAgICAgICAgICAgICAgICAgICAgICMgaXMgaWxsZWdhbCwgc28gbGV0J3Mgbm90ZSB0aGUgZGVmZWN0LCBzdG9yZSB0aGUgaWxsZWdhbAogICAgICAgICAgICAgICAgICAgICAjIGxpbmUsIGFuZCBpZ25vcmUgaXQgZm9yIHB1cnBvc2VzIG9mIGhlYWRlcnMuCiAgICAgICAgICAgICAgICAgICAgIGRlZmVjdCA9IGVycm9ycy5GaXJzdEhlYWRlckxpbmVJc0NvbnRpbnVhdGlvbkRlZmVjdChsaW5lKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jdXIuZGVmZWN0cy5hcHBlbmQoZGVmZWN0KQorICAgICAgICAgICAgICAgICAgICBzZWxmLnBvbGljeS5oYW5kbGVfZGVmZWN0KHNlbGYuX2N1ciwgZGVmZWN0KQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgIGxhc3R2YWx1ZS5hcHBlbmQobGluZSkKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgaWYgbGFzdGhlYWRlcjoKLSAgICAgICAgICAgICAgICAjIFhYWCByZWNvbnNpZGVyIHRoZSBqb2luaW5nIG9mIGZvbGRlZCBsaW5lcwotICAgICAgICAgICAgICAgIGxoZHIgPSBFTVBUWVNUUklORy5qb2luKGxhc3R2YWx1ZSlbOi0xXS5yc3RyaXAoJ1xyXG4nKQotICAgICAgICAgICAgICAgIHNlbGYuX2N1cltsYXN0aGVhZGVyXSA9IGxoZHIKKyAgICAgICAgICAgICAgICBzZWxmLl9jdXIuc2V0X3Jhdygqc2VsZi5wb2xpY3kuaGVhZGVyX3NvdXJjZV9wYXJzZShsYXN0dmFsdWUpKQogICAgICAgICAgICAgICAgIGxhc3RoZWFkZXIsIGxhc3R2YWx1ZSA9ICcnLCBbXQogICAgICAgICAgICAgIyBDaGVjayBmb3IgZW52ZWxvcGUgaGVhZGVyLCBpLmUuIHVuaXgtZnJvbQogICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCdGcm9tICcpOgpAQCAtNDcxLDE5ICs0OTgsMTcgQEAKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY3VyLmRlZmVjdHMuYXBwZW5kKGRlZmVjdCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICMgU3BsaXQgdGhlIGxpbmUgb24gdGhlIGNvbG9uIHNlcGFyYXRpbmcgZmllbGQgbmFtZSBmcm9tIHZhbHVlLgorICAgICAgICAgICAgIyBUaGVyZSB3aWxsIGFsd2F5cyBiZSBhIGNvbG9uLCBiZWNhdXNlIGlmIHRoZXJlIHdhc24ndCB0aGUgcGFydCBvZgorICAgICAgICAgICAgIyB0aGUgcGFyc2VyIHRoYXQgY2FsbHMgdXMgd291bGQgaGF2ZSBzdGFydGVkIHBhcnNpbmcgdGhlIGJvZHkuCiAgICAgICAgICAgICBpID0gbGluZS5maW5kKCc6JykKLSAgICAgICAgICAgIGlmIGkgPCAwOgotICAgICAgICAgICAgICAgIGRlZmVjdCA9IGVycm9ycy5NYWxmb3JtZWRIZWFkZXJEZWZlY3QobGluZSkKLSAgICAgICAgICAgICAgICBzZWxmLl9jdXIuZGVmZWN0cy5hcHBlbmQoZGVmZWN0KQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBhc3NlcnQgaT4wLCAiX3BhcnNlX2hlYWRlcnMgZmVkIGxpbmUgd2l0aCBubyA6IGFuZCBubyBsZWFkaW5nIFdTIgogICAgICAgICAgICAgbGFzdGhlYWRlciA9IGxpbmVbOmldCi0gICAgICAgICAgICBsYXN0dmFsdWUgPSBbbGluZVtpKzE6XS5sc3RyaXAoKV0KKyAgICAgICAgICAgIGxhc3R2YWx1ZSA9IFtsaW5lXQogICAgICAgICAjIERvbmUgd2l0aCBhbGwgdGhlIGxpbmVzLCBzbyBoYW5kbGUgdGhlIGxhc3QgaGVhZGVyLgogICAgICAgICBpZiBsYXN0aGVhZGVyOgotICAgICAgICAgICAgIyBYWFggcmVjb25zaWRlciB0aGUgam9pbmluZyBvZiBmb2xkZWQgbGluZXMKLSAgICAgICAgICAgIHNlbGYuX2N1cltsYXN0aGVhZGVyXSA9IEVNUFRZU1RSSU5HLmpvaW4obGFzdHZhbHVlKS5yc3RyaXAoJ1xyXG4nKQorICAgICAgICAgICAgc2VsZi5fY3VyLnNldF9yYXcoKnNlbGYucG9saWN5LmhlYWRlcl9zb3VyY2VfcGFyc2UobGFzdHZhbHVlKSkKIAotDAorCiBjbGFzcyBCeXRlc0ZlZWRQYXJzZXIoRmVlZFBhcnNlcik6CiAgICAgIiIiTGlrZSBGZWVkUGFyc2VyLCBidXQgZmVlZCBhY2NlcHRzIGJ5dGVzLiIiIgogCmRpZmYgLS1naXQgYS9MaWIvZW1haWwvZ2VuZXJhdG9yLnB5IGIvTGliL2VtYWlsL2dlbmVyYXRvci5weQppbmRleCAwNGMwMjEwLi5mY2VjZjkzIDEwMDY0NAotLS0gYS9MaWIvZW1haWwvZ2VuZXJhdG9yLnB5CisrKyBiL0xpYi9lbWFpbC9nZW5lcmF0b3IucHkKQEAgLTEzLDggKzEzLDEwIEBACiBpbXBvcnQgd2FybmluZ3MKIAogZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8sIEJ5dGVzSU8KK2Zyb20gZW1haWwuX3BvbGljeWJhc2UgaW1wb3J0IGNvbXBhdDMyCiBmcm9tIGVtYWlsLmhlYWRlciBpbXBvcnQgSGVhZGVyCi1mcm9tIGVtYWlsLm1lc3NhZ2UgaW1wb3J0IF9oYXNfc3Vycm9nYXRlcworZnJvbSBlbWFpbC51dGlscyBpbXBvcnQgX2hhc19zdXJyb2dhdGVzCitpbXBvcnQgZW1haWwuY2hhcnNldCBhcyBfY2hhcnNldAogCiBVTkRFUlNDT1JFID0gJ18nCiBOTCA9ICdcbicgICMgWFhYOiBubyBsb25nZXIgdXNlZCBieSB0aGUgY29kZSBiZWxvdy4KQEAgLTMzLDcgKzM1LDggQEAKICAgICAjIFB1YmxpYyBpbnRlcmZhY2UKICAgICAjCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3V0ZnAsIG1hbmdsZV9mcm9tXz1UcnVlLCBtYXhoZWFkZXJsZW49NzgpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvdXRmcCwgbWFuZ2xlX2Zyb21fPVRydWUsIG1heGhlYWRlcmxlbj1Ob25lLCAqLAorICAgICAgICAgICAgICAgICBwb2xpY3k9Tm9uZSk6CiAgICAgICAgICIiIkNyZWF0ZSB0aGUgZ2VuZXJhdG9yIGZvciBtZXNzYWdlIGZsYXR0ZW5pbmcuCiAKICAgICAgICAgb3V0ZnAgaXMgdGhlIG91dHB1dCBmaWxlLWxpa2Ugb2JqZWN0IGZvciB3cml0aW5nIHRoZSBtZXNzYWdlIHRvLiAgSXQKQEAgLTQ5LDE2ICs1MiwyMiBAQAogICAgICAgICBkZWZpbmVkIGluIHRoZSBIZWFkZXIgY2xhc3MuICBTZXQgbWF4aGVhZGVybGVuIHRvIHplcm8gdG8gZGlzYWJsZQogICAgICAgICBoZWFkZXIgd3JhcHBpbmcuICBUaGUgZGVmYXVsdCBpcyA3OCwgYXMgcmVjb21tZW5kZWQgKGJ1dCBub3QgcmVxdWlyZWQpCiAgICAgICAgIGJ5IFJGQyAyODIyLgorCisgICAgICAgIFRoZSBwb2xpY3kga2V5d29yZCBzcGVjaWZpZXMgYSBwb2xpY3kgb2JqZWN0IHRoYXQgY29udHJvbHMgYSBudW1iZXIgb2YKKyAgICAgICAgYXNwZWN0cyBvZiB0aGUgZ2VuZXJhdG9yJ3Mgb3BlcmF0aW9uLiAgVGhlIGRlZmF1bHQgcG9saWN5IG1haW50YWlucworICAgICAgICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorCiAgICAgICAgICIiIgogICAgICAgICBzZWxmLl9mcCA9IG91dGZwCiAgICAgICAgIHNlbGYuX21hbmdsZV9mcm9tXyA9IG1hbmdsZV9mcm9tXwotICAgICAgICBzZWxmLl9tYXhoZWFkZXJsZW4gPSBtYXhoZWFkZXJsZW4KKyAgICAgICAgc2VsZi5tYXhoZWFkZXJsZW4gPSBtYXhoZWFkZXJsZW4KKyAgICAgICAgc2VsZi5wb2xpY3kgPSBwb2xpY3kKIAogICAgIGRlZiB3cml0ZShzZWxmLCBzKToKICAgICAgICAgIyBKdXN0IGRlbGVnYXRlIHRvIHRoZSBmaWxlIG9iamVjdAogICAgICAgICBzZWxmLl9mcC53cml0ZShzKQogCi0gICAgZGVmIGZsYXR0ZW4oc2VsZiwgbXNnLCB1bml4ZnJvbT1GYWxzZSwgbGluZXNlcD0nXG4nKToKKyAgICBkZWYgZmxhdHRlbihzZWxmLCBtc2csIHVuaXhmcm9tPUZhbHNlLCBsaW5lc2VwPU5vbmUpOgogICAgICAgICByIiIiUHJpbnQgdGhlIG1lc3NhZ2Ugb2JqZWN0IHRyZWUgcm9vdGVkIGF0IG1zZyB0byB0aGUgb3V0cHV0IGZpbGUKICAgICAgICAgc3BlY2lmaWVkIHdoZW4gdGhlIEdlbmVyYXRvciBpbnN0YW5jZSB3YXMgY3JlYXRlZC4KIApAQCAtNzAsMjkgKzc5LDQ3IEBACiAgICAgICAgIE5vdGUgdGhhdCBmb3Igc3Vib2JqZWN0cywgbm8gRnJvbV8gbGluZSBpcyBwcmludGVkLgogCiAgICAgICAgIGxpbmVzZXAgc3BlY2lmaWVzIHRoZSBjaGFyYWN0ZXJzIHVzZWQgdG8gaW5kaWNhdGUgYSBuZXcgbGluZSBpbgotICAgICAgICB0aGUgb3V0cHV0LiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgdGhlIG1vc3QgdXNlZnVsIGZvciB0eXBpY2FsCi0gICAgICAgIFB5dGhvbiBhcHBsaWNhdGlvbnMsIGJ1dCBpdCBjYW4gYmUgc2V0IHRvIFxyXG4gdG8gcHJvZHVjZSBSRkMtY29tcGxpYW50Ci0gICAgICAgIGxpbmUgc2VwYXJhdG9ycyB3aGVuIG5lZWRlZC4KKyAgICAgICAgdGhlIG91dHB1dC4gIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGRldGVybWluZWQgYnkgdGhlIHBvbGljeS4KIAogICAgICAgICAiIiIKICAgICAgICAgIyBXZSB1c2UgdGhlIF9YWFggY29uc3RhbnRzIGZvciBvcGVyYXRpbmcgb24gZGF0YSB0aGF0IGNvbWVzIGRpcmVjdGx5CiAgICAgICAgICMgZnJvbSB0aGUgbXNnLCBhbmQgX2VuY29kZWRfWFhYIGNvbnN0YW50cyBmb3Igb3BlcmF0aW5nIG9uIGRhdGEgdGhhdAogICAgICAgICAjIGhhcyBhbHJlYWR5IGJlZW4gY29udmVydGVkICh0byBieXRlcyBpbiB0aGUgQnl0ZXNHZW5lcmF0b3IpIGFuZAogICAgICAgICAjIGluc2VydGVkIGludG8gYSB0ZW1wb3JhcnkgYnVmZmVyLgotICAgICAgICBzZWxmLl9OTCA9IGxpbmVzZXAKLSAgICAgICAgc2VsZi5fZW5jb2RlZF9OTCA9IHNlbGYuX2VuY29kZShsaW5lc2VwKQorICAgICAgICBwb2xpY3kgPSBtc2cucG9saWN5IGlmIHNlbGYucG9saWN5IGlzIE5vbmUgZWxzZSBzZWxmLnBvbGljeQorICAgICAgICBpZiBsaW5lc2VwIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcG9saWN5ID0gcG9saWN5LmNsb25lKGxpbmVzZXA9bGluZXNlcCkKKyAgICAgICAgaWYgc2VsZi5tYXhoZWFkZXJsZW4gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBwb2xpY3kgPSBwb2xpY3kuY2xvbmUobWF4X2xpbmVfbGVuZ3RoPXNlbGYubWF4aGVhZGVybGVuKQorICAgICAgICBzZWxmLl9OTCA9IHBvbGljeS5saW5lc2VwCisgICAgICAgIHNlbGYuX2VuY29kZWRfTkwgPSBzZWxmLl9lbmNvZGUoc2VsZi5fTkwpCiAgICAgICAgIHNlbGYuX0VNUFRZID0gJycKICAgICAgICAgc2VsZi5fZW5jb2RlZF9FTVRQWSA9IHNlbGYuX2VuY29kZSgnJykKLSAgICAgICAgaWYgdW5peGZyb206Ci0gICAgICAgICAgICB1ZnJvbSA9IG1zZy5nZXRfdW5peGZyb20oKQotICAgICAgICAgICAgaWYgbm90IHVmcm9tOgotICAgICAgICAgICAgICAgIHVmcm9tID0gJ0Zyb20gbm9ib2R5ICcgKyB0aW1lLmN0aW1lKHRpbWUudGltZSgpKQotICAgICAgICAgICAgc2VsZi53cml0ZSh1ZnJvbSArIHNlbGYuX05MKQotICAgICAgICBzZWxmLl93cml0ZShtc2cpCisgICAgICAgICMgQmVjYXVzZSB3ZSB1c2UgY2xvbmUgKGJlbG93KSB3aGVuIHdlIHJlY3Vyc2l2ZWx5IHByb2Nlc3MgbWVzc2FnZQorICAgICAgICAjIHN1YnBhcnRzLCBhbmQgYmVjYXVzZSBjbG9uZSB1c2VzIHRoZSBjb21wdXRlZCBwb2xpY3kgKG5vdCBOb25lKSwKKyAgICAgICAgIyBzdWJtZXNzYWdlcyB3aWxsIGF1dG9tYXRpY2FsbHkgZ2V0IHNldCB0byB0aGUgY29tcHV0ZWQgcG9saWN5IHdoZW4KKyAgICAgICAgIyB0aGV5IGFyZSBwcm9jZXNzZWQgYnkgdGhpcyBjb2RlLgorICAgICAgICBvbGRfZ2VuX3BvbGljeSA9IHNlbGYucG9saWN5CisgICAgICAgIG9sZF9tc2dfcG9saWN5ID0gbXNnLnBvbGljeQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnBvbGljeSA9IHBvbGljeQorICAgICAgICAgICAgbXNnLnBvbGljeSA9IHBvbGljeQorICAgICAgICAgICAgaWYgdW5peGZyb206CisgICAgICAgICAgICAgICAgdWZyb20gPSBtc2cuZ2V0X3VuaXhmcm9tKCkKKyAgICAgICAgICAgICAgICBpZiBub3QgdWZyb206CisgICAgICAgICAgICAgICAgICAgIHVmcm9tID0gJ0Zyb20gbm9ib2R5ICcgKyB0aW1lLmN0aW1lKHRpbWUudGltZSgpKQorICAgICAgICAgICAgICAgIHNlbGYud3JpdGUodWZyb20gKyBzZWxmLl9OTCkKKyAgICAgICAgICAgIHNlbGYuX3dyaXRlKG1zZykKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYucG9saWN5ID0gb2xkX2dlbl9wb2xpY3kKKyAgICAgICAgICAgIG1zZy5wb2xpY3kgPSBvbGRfbXNnX3BvbGljeQogCiAgICAgZGVmIGNsb25lKHNlbGYsIGZwKToKICAgICAgICAgIiIiQ2xvbmUgdGhpcyBnZW5lcmF0b3Igd2l0aCB0aGUgZXhhY3Qgc2FtZSBvcHRpb25zLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oZnAsIHNlbGYuX21hbmdsZV9mcm9tXywgc2VsZi5fbWF4aGVhZGVybGVuKQorICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oZnAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9tYW5nbGVfZnJvbV8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLCAjIFVzZSBwb2xpY3kgc2V0dGluZywgd2hpY2ggd2UndmUgYWRqdXN0ZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeT1zZWxmLnBvbGljeSkKIAogICAgICMKICAgICAjIFByb3RlY3RlZCBpbnRlcmZhY2UgLSB1bmRvY3VtZW50ZWQgOy8KQEAgLTE2NywxNiArMTk0LDggQEAKICAgICAjCiAKICAgICBkZWYgX3dyaXRlX2hlYWRlcnMoc2VsZiwgbXNnKToKLSAgICAgICAgZm9yIGgsIHYgaW4gbXNnLml0ZW1zKCk6Ci0gICAgICAgICAgICBzZWxmLndyaXRlKCclczogJyAlIGgpCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHYsIEhlYWRlcik6Ci0gICAgICAgICAgICAgICAgc2VsZi53cml0ZSh2LmVuY29kZSgKLSAgICAgICAgICAgICAgICAgICAgbWF4bGluZWxlbj1zZWxmLl9tYXhoZWFkZXJsZW4sIGxpbmVzZXA9c2VsZi5fTkwpK3NlbGYuX05MKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIEhlYWRlcidzIGdvdCBsb3RzIG9mIHNtYXJ0cywgc28gdXNlIGl0LgotICAgICAgICAgICAgICAgIGhlYWRlciA9IEhlYWRlcih2LCBtYXhsaW5lbGVuPXNlbGYuX21heGhlYWRlcmxlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX25hbWU9aCkKLSAgICAgICAgICAgICAgICBzZWxmLndyaXRlKGhlYWRlci5lbmNvZGUobGluZXNlcD1zZWxmLl9OTCkrc2VsZi5fTkwpCisgICAgICAgIGZvciBoLCB2IGluIG1zZy5yYXdfaXRlbXMoKToKKyAgICAgICAgICAgIHNlbGYud3JpdGUoc2VsZi5wb2xpY3kuZm9sZChoLCB2KSkKICAgICAgICAgIyBBIGJsYW5rIGxpbmUgYWx3YXlzIHNlcGFyYXRlcyBoZWFkZXJzIGZyb20gYm9keQogICAgICAgICBzZWxmLndyaXRlKHNlbGYuX05MKQogCkBAIC0yNTcsMTIgKzI3NiwxMiBAQAogICAgICAgICAjIFRoZSBjb250ZW50cyBvZiBzaWduZWQgcGFydHMgaGFzIHRvIHN0YXkgdW5tb2RpZmllZCBpbiBvcmRlciB0byBrZWVwCiAgICAgICAgICMgdGhlIHNpZ25hdHVyZSBpbnRhY3QgcGVyIFJGQzE4NDcgMi4xLCBzbyB3ZSBkaXNhYmxlIGhlYWRlciB3cmFwcGluZy4KICAgICAgICAgIyBSRE06IFRoaXMgaXNuJ3QgZW5vdWdoIHRvIGNvbXBsZXRlbHkgcHJlc2VydmUgdGhlIHBhcnQsIGJ1dCBpdCBoZWxwcy4KLSAgICAgICAgb2xkX21heGhlYWRlcmxlbiA9IHNlbGYuX21heGhlYWRlcmxlbgorICAgICAgICBwID0gc2VsZi5wb2xpY3kKKyAgICAgICAgc2VsZi5wb2xpY3kgPSBwLmNsb25lKG1heF9saW5lX2xlbmd0aD0wKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9tYXhoZWFkZXJsZW4gPSAwCiAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfbXVsdGlwYXJ0KG1zZykKICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX21heGhlYWRlcmxlbiA9IG9sZF9tYXhoZWFkZXJsZW4KKyAgICAgICAgICAgIHNlbGYucG9saWN5ID0gcAogCiAgICAgZGVmIF9oYW5kbGVfbWVzc2FnZV9kZWxpdmVyeV9zdGF0dXMoc2VsZiwgbXNnKToKICAgICAgICAgIyBXZSBjYW4ndCBqdXN0IHdyaXRlIHRoZSBoZWFkZXJzIGRpcmVjdGx5IHRvIHNlbGYncyBmaWxlIG9iamVjdApAQCAtMjk3LDEwICszMTYsMTIgQEAKICAgICAgICAgIyBtZXNzYWdlL3JmYzgyMi4gIFN1Y2ggbWVzc2FnZXMgYXJlIGdlbmVyYXRlZCBieSwgZm9yIGV4YW1wbGUsCiAgICAgICAgICMgR3JvdXB3aXNlIHdoZW4gZm9yd2FyZGluZyB1bmFkb3JuZWQgbWVzc2FnZXMuICAoSXNzdWUgNzk3MC4pICBTbwogICAgICAgICAjIGluIHRoYXQgY2FzZSB3ZSBqdXN0IGVtaXQgdGhlIHN0cmluZyBib2R5LgotICAgICAgICBwYXlsb2FkID0gbXNnLmdldF9wYXlsb2FkKCkKKyAgICAgICAgcGF5bG9hZCA9IG1zZy5fcGF5bG9hZAogICAgICAgICBpZiBpc2luc3RhbmNlKHBheWxvYWQsIGxpc3QpOgogICAgICAgICAgICAgZy5mbGF0dGVuKG1zZy5nZXRfcGF5bG9hZCgwKSwgdW5peGZyb209RmFsc2UsIGxpbmVzZXA9c2VsZi5fTkwpCiAgICAgICAgICAgICBwYXlsb2FkID0gcy5nZXR2YWx1ZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fZW5jb2RlKHBheWxvYWQpCiAgICAgICAgIHNlbGYuX2ZwLndyaXRlKHBheWxvYWQpCiAKICAgICAjIFRoaXMgdXNlZCB0byBiZSBhIG1vZHVsZSBsZXZlbCBmdW5jdGlvbjsgd2UgdXNlIGEgY2xhc3NtZXRob2QgZm9yIHRoaXMKQEAgLTMzNiw3ICszNTcsMTAgQEAKIAogICAgIEZ1bmN0aW9uYWxseSBpZGVudGljYWwgdG8gdGhlIGJhc2UgR2VuZXJhdG9yIGV4Y2VwdCB0aGF0IHRoZSBvdXRwdXQgaXMKICAgICBieXRlcyBhbmQgbm90IHN0cmluZy4gIFdoZW4gc3Vycm9nYXRlcyB3ZXJlIHVzZWQgaW4gdGhlIGlucHV0IHRvIGVuY29kZQotICAgIGJ5dGVzLCB0aGVzZSBhcmUgZGVjb2RlZCBiYWNrIHRvIGJ5dGVzIGZvciBvdXRwdXQuCisgICAgYnl0ZXMsIHRoZXNlIGFyZSBkZWNvZGVkIGJhY2sgdG8gYnl0ZXMgZm9yIG91dHB1dC4gIElmIHRoZSBwb2xpY3kgaGFzCisgICAgY3RlX3R5cGUgc2V0IHRvIDdiaXQsIHRoZW4gdGhlIG1lc3NhZ2UgaXMgdHJhbnNmb3JtZWQgc3VjaCB0aGF0IHRoZQorICAgIG5vbi1BU0NJSSBieXRlcyBhcmUgcHJvcGVybHkgY29udGVudCB0cmFuc2ZlciBlbmNvZGVkLCB1c2luZyB0aGUgY2hhcnNldAorICAgIHVua25vd24tOGJpdC4KIAogICAgIFRoZSBvdXRmcCBvYmplY3QgbXVzdCBhY2NlcHQgYnl0ZXMgaW4gaXRzIHdyaXRlIG1ldGhvZC4KICAgICAiIiIKQEAgLTM1NywyMyArMzgxLDggQEAKICAgICBkZWYgX3dyaXRlX2hlYWRlcnMoc2VsZiwgbXNnKToKICAgICAgICAgIyBUaGlzIGlzIGFsbW9zdCB0aGUgc2FtZSBhcyB0aGUgc3RyaW5nIHZlcnNpb24sIGV4Y2VwdCBmb3IgaGFuZGxpbmcKICAgICAgICAgIyBzdHJpbmdzIHdpdGggOGJpdCBieXRlcy4KLSAgICAgICAgZm9yIGgsIHYgaW4gbXNnLl9oZWFkZXJzOgotICAgICAgICAgICAgc2VsZi53cml0ZSgnJXM6ICcgJSBoKQotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2LCBIZWFkZXIpOgotICAgICAgICAgICAgICAgIHNlbGYud3JpdGUodi5lbmNvZGUobWF4bGluZWxlbj1zZWxmLl9tYXhoZWFkZXJsZW4pK3NlbGYuX05MKQotICAgICAgICAgICAgZWxpZiBfaGFzX3N1cnJvZ2F0ZXModik6Ci0gICAgICAgICAgICAgICAgIyBJZiB3ZSBoYXZlIHJhdyA4Yml0IGRhdGEgaW4gYSBieXRlIHN0cmluZywgd2UgaGF2ZSBubyBpZGVhCi0gICAgICAgICAgICAgICAgIyB3aGF0IHRoZSBlbmNvZGluZyBpcy4gIFRoZXJlIGlzIG5vIHNhZmUgd2F5IHRvIHNwbGl0IHRoaXMKLSAgICAgICAgICAgICAgICAjIHN0cmluZy4gIElmIGl0J3MgYXNjaWktc3Vic2V0LCB0aGVuIHdlIGNvdWxkIGRvIGEgbm9ybWFsCi0gICAgICAgICAgICAgICAgIyBhc2NpaSBzcGxpdCwgYnV0IGlmIGl0J3MgbXVsdGlieXRlIHRoZW4gd2UgY291bGQgYnJlYWsgdGhlCi0gICAgICAgICAgICAgICAgIyBzdHJpbmcuICBUaGVyZSdzIG5vIHdheSB0byBrbm93IHNvIHRoZSBsZWFzdCBoYXJtIHNlZW1zIHRvCi0gICAgICAgICAgICAgICAgIyBiZSB0byBub3Qgc3BsaXQgdGhlIHN0cmluZyBhbmQgcmlzayBpdCBiZWluZyB0b28gbG9uZy4KLSAgICAgICAgICAgICAgICBzZWxmLndyaXRlKHYrTkwpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgSGVhZGVyJ3MgZ290IGxvdHMgb2Ygc21hcnRzIGFuZCB0aGlzIHN0cmluZyBpcyBzYWZlLi4uCi0gICAgICAgICAgICAgICAgaGVhZGVyID0gSGVhZGVyKHYsIG1heGxpbmVsZW49c2VsZi5fbWF4aGVhZGVybGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJfbmFtZT1oKQotICAgICAgICAgICAgICAgIHNlbGYud3JpdGUoaGVhZGVyLmVuY29kZShsaW5lc2VwPXNlbGYuX05MKStzZWxmLl9OTCkKKyAgICAgICAgZm9yIGgsIHYgaW4gbXNnLnJhd19pdGVtcygpOgorICAgICAgICAgICAgc2VsZi5fZnAud3JpdGUoc2VsZi5wb2xpY3kuZm9sZF9iaW5hcnkoaCwgdikpCiAgICAgICAgICMgQSBibGFuayBsaW5lIGFsd2F5cyBzZXBhcmF0ZXMgaGVhZGVycyBmcm9tIGJvZHkKICAgICAgICAgc2VsZi53cml0ZShzZWxmLl9OTCkKIApAQCAtMzgyLDcgKzM5MSw3IEBACiAgICAgICAgICMganVzdCB3cml0ZSBpdCBiYWNrIG91dC4KICAgICAgICAgaWYgbXNnLl9wYXlsb2FkIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgX2hhc19zdXJyb2dhdGVzKG1zZy5fcGF5bG9hZCk6CisgICAgICAgIGlmIF9oYXNfc3Vycm9nYXRlcyhtc2cuX3BheWxvYWQpIGFuZCBub3Qgc2VsZi5wb2xpY3kuY3RlX3R5cGU9PSc3Yml0JzoKICAgICAgICAgICAgIHNlbGYud3JpdGUobXNnLl9wYXlsb2FkKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc3VwZXIoQnl0ZXNHZW5lcmF0b3Isc2VsZikuX2hhbmRsZV90ZXh0KG1zZykKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9oZWFkZXIucHkgYi9MaWIvZW1haWwvaGVhZGVyLnB5CmluZGV4IDMyNTBkMzYuLmE4OTIxOWQgMTAwNjQ0Ci0tLSBhL0xpYi9lbWFpbC9oZWFkZXIucHkKKysrIGIvTGliL2VtYWlsL2hlYWRlci5weQpAQCAtNDAsNyArNDAsNiBAQAogICBcPyAgICAgICAgICAgICAgICAgICAgIyBsaXRlcmFsID8KICAgKD9QPGVuY29kZWQ+Lio/KSAgICAgICMgbm9uLWdyZWVkeSB1cCB0byB0aGUgbmV4dCA/PSBpcyB0aGUgZW5jb2RlZCBzdHJpbmcKICAgXD89ICAgICAgICAgICAgICAgICAgICMgbGl0ZXJhbCA/PQotICAoPz1bIFx0XXwkKSAgICAgICAgICAgIyB3aGl0ZXNwYWNlIG9yIHRoZSBlbmQgb2YgdGhlIHN0cmluZwogICAnJycsIHJlLlZFUkJPU0UgfCByZS5JR05PUkVDQVNFIHwgcmUuTVVMVElMSU5FKQogCiAjIEZpZWxkIG5hbWUgcmVnZXhwLCBpbmNsdWRpbmcgdHJhaWxpbmcgY29sb24sIGJ1dCBub3Qgc2VwYXJhdGluZyB3aGl0ZXNwYWNlLApAQCAtODYsOCArODUsMTIgQEAKICAgICB3b3JkcyA9IFtdCiAgICAgZm9yIGxpbmUgaW4gaGVhZGVyLnNwbGl0bGluZXMoKToKICAgICAgICAgcGFydHMgPSBlY3JlLnNwbGl0KGxpbmUpCisgICAgICAgIGZpcnN0ID0gVHJ1ZQogICAgICAgICB3aGlsZSBwYXJ0czoKLSAgICAgICAgICAgIHVuZW5jb2RlZCA9IHBhcnRzLnBvcCgwKS5zdHJpcCgpCisgICAgICAgICAgICB1bmVuY29kZWQgPSBwYXJ0cy5wb3AoMCkKKyAgICAgICAgICAgIGlmIGZpcnN0OgorICAgICAgICAgICAgICAgIHVuZW5jb2RlZCA9IHVuZW5jb2RlZC5sc3RyaXAoKQorICAgICAgICAgICAgICAgIGZpcnN0ID0gRmFsc2UKICAgICAgICAgICAgIGlmIHVuZW5jb2RlZDoKICAgICAgICAgICAgICAgICB3b3Jkcy5hcHBlbmQoKHVuZW5jb2RlZCwgTm9uZSwgTm9uZSkpCiAgICAgICAgICAgICBpZiBwYXJ0czoKQEAgLTk1LDYgKzk4LDE2IEBACiAgICAgICAgICAgICAgICAgZW5jb2RpbmcgPSBwYXJ0cy5wb3AoMCkubG93ZXIoKQogICAgICAgICAgICAgICAgIGVuY29kZWQgPSBwYXJ0cy5wb3AoMCkKICAgICAgICAgICAgICAgICB3b3Jkcy5hcHBlbmQoKGVuY29kZWQsIGVuY29kaW5nLCBjaGFyc2V0KSkKKyAgICAjIE5vdyBsb29wIG92ZXIgd29yZHMgYW5kIHJlbW92ZSB3b3JkcyB0aGF0IGNvbnNpc3Qgb2Ygd2hpdGVzcGFjZQorICAgICMgYmV0d2VlbiB0d28gZW5jb2RlZCBzdHJpbmdzLgorICAgIGltcG9ydCBzeXMKKyAgICBkcm9wbGlzdCA9IFtdCisgICAgZm9yIG4sIHcgaW4gZW51bWVyYXRlKHdvcmRzKToKKyAgICAgICAgaWYgbj4xIGFuZCB3WzFdIGFuZCB3b3Jkc1tuLTJdWzFdIGFuZCB3b3Jkc1tuLTFdWzBdLmlzc3BhY2UoKToKKyAgICAgICAgICAgIGRyb3BsaXN0LmFwcGVuZChuLTEpCisgICAgZm9yIGQgaW4gcmV2ZXJzZWQoZHJvcGxpc3QpOgorICAgICAgICBkZWwgd29yZHNbZF0KKwogICAgICMgVGhlIG5leHQgc3RlcCBpcyB0byBkZWNvZGUgZWFjaCBlbmNvZGVkIHdvcmQgYnkgYXBwbHlpbmcgdGhlIHJldmVyc2UKICAgICAjIGJhc2U2NCBvciBxdW9wcmkgdHJhbnNmb3JtYXRpb24uICBkZWNvZGVkX3dvcmRzIGlzIG5vdyBhIGxpc3Qgb2YgdGhlCiAgICAgIyBmb3JtIChkZWNvZGVkX3dvcmQsIGNoYXJzZXQpLgpAQCAtMjE3LDIyICsyMzAsMjcgQEAKICAgICAgICAgc2VsZi5fbm9ybWFsaXplKCkKICAgICAgICAgdWNodW5rcyA9IFtdCiAgICAgICAgIGxhc3RjcyA9IE5vbmUKKyAgICAgICAgbGFzdHNwYWNlID0gTm9uZQogICAgICAgICBmb3Igc3RyaW5nLCBjaGFyc2V0IGluIHNlbGYuX2NodW5rczoKICAgICAgICAgICAgICMgV2UgbXVzdCBwcmVzZXJ2ZSBzcGFjZXMgYmV0d2VlbiBlbmNvZGVkIGFuZCBub24tZW5jb2RlZCB3b3JkCiAgICAgICAgICAgICAjIGJvdW5kYXJpZXMsIHdoaWNoIG1lYW5zIGZvciB1cyB3ZSBuZWVkIHRvIGFkZCBhIHNwYWNlIHdoZW4gd2UgZ28KICAgICAgICAgICAgICMgZnJvbSBhIGNoYXJzZXQgdG8gTm9uZS91cy1hc2NpaSwgb3IgZnJvbSBOb25lL3VzLWFzY2lpIHRvIGEKICAgICAgICAgICAgICMgY2hhcnNldC4gIE9ubHkgZG8gdGhpcyBmb3IgdGhlIHNlY29uZCBhbmQgc3Vic2VxdWVudCBjaHVua3MuCisgICAgICAgICAgICAjIERvbid0IGFkZCBhIHNwYWNlIGlmIHRoZSBOb25lL3VzLWFzY2lpIHN0cmluZyBhbHJlYWR5IGhhcworICAgICAgICAgICAgIyBhIHNwYWNlICh0cmFpbGluZyBvciBsZWFkaW5nIGRlcGVuZGluZyBvbiB0cmFuc2l0aW9uKQogICAgICAgICAgICAgbmV4dGNzID0gY2hhcnNldAogICAgICAgICAgICAgaWYgbmV4dGNzID09IF9jaGFyc2V0LlVOS05PV044QklUOgogICAgICAgICAgICAgICAgIG9yaWdpbmFsX2J5dGVzID0gc3RyaW5nLmVuY29kZSgnYXNjaWknLCAnc3Vycm9nYXRlZXNjYXBlJykKICAgICAgICAgICAgICAgICBzdHJpbmcgPSBvcmlnaW5hbF9ieXRlcy5kZWNvZGUoJ2FzY2lpJywgJ3JlcGxhY2UnKQogICAgICAgICAgICAgaWYgdWNodW5rczoKKyAgICAgICAgICAgICAgICBoYXNzcGFjZSA9IHN0cmluZyBhbmQgc2VsZi5fbm9uY3RleHQoc3RyaW5nWzBdKQogICAgICAgICAgICAgICAgIGlmIGxhc3RjcyBub3QgaW4gKE5vbmUsICd1cy1hc2NpaScpOgotICAgICAgICAgICAgICAgICAgICBpZiBuZXh0Y3MgaW4gKE5vbmUsICd1cy1hc2NpaScpOgorICAgICAgICAgICAgICAgICAgICBpZiBuZXh0Y3MgaW4gKE5vbmUsICd1cy1hc2NpaScpIGFuZCBub3QgaGFzc3BhY2U6CiAgICAgICAgICAgICAgICAgICAgICAgICB1Y2h1bmtzLmFwcGVuZChTUEFDRSkKICAgICAgICAgICAgICAgICAgICAgICAgIG5leHRjcyA9IE5vbmUKLSAgICAgICAgICAgICAgICBlbGlmIG5leHRjcyBub3QgaW4gKE5vbmUsICd1cy1hc2NpaScpOgorICAgICAgICAgICAgICAgIGVsaWYgbmV4dGNzIG5vdCBpbiAoTm9uZSwgJ3VzLWFzY2lpJykgYW5kIG5vdCBsYXN0c3BhY2U6CiAgICAgICAgICAgICAgICAgICAgIHVjaHVua3MuYXBwZW5kKFNQQUNFKQorICAgICAgICAgICAgbGFzdHNwYWNlID0gc3RyaW5nIGFuZCBzZWxmLl9ub25jdGV4dChzdHJpbmdbLTFdKQogICAgICAgICAgICAgbGFzdGNzID0gbmV4dGNzCiAgICAgICAgICAgICB1Y2h1bmtzLmFwcGVuZChzdHJpbmcpCiAgICAgICAgIHJldHVybiBFTVBUWVNUUklORy5qb2luKHVjaHVua3MpCkBAIC0yOTEsNiArMzA5LDExIEBACiAgICAgICAgICAgICAgICAgY2hhcnNldCA9IFVURjgKICAgICAgICAgc2VsZi5fY2h1bmtzLmFwcGVuZCgocywgY2hhcnNldCkpCiAKKyAgICBkZWYgX25vbmN0ZXh0KHNlbGYsIHMpOgorICAgICAgICAiIiJUcnVlIGlmIHN0cmluZyBzIGlzIG5vdCBhIGN0ZXh0IGNoYXJhY3RlciBvZiBSRkM4MjIuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gcy5pc3NwYWNlKCkgb3IgcyBpbiAoJygnLCAnKScsICdcXCcpCisKICAgICBkZWYgZW5jb2RlKHNlbGYsIHNwbGl0Y2hhcnM9JzssIFx0JywgbWF4bGluZWxlbj1Ob25lLCBsaW5lc2VwPSdcbicpOgogICAgICAgICByIiIiRW5jb2RlIGEgbWVzc2FnZSBoZWFkZXIgaW50byBhbiBSRkMtY29tcGxpYW50IGZvcm1hdC4KIApAQCAtMzM0LDcgKzM1NywyMCBAQAogICAgICAgICAgICAgbWF4bGluZWxlbiA9IDEwMDAwMDAKICAgICAgICAgZm9ybWF0dGVyID0gX1ZhbHVlRm9ybWF0dGVyKHNlbGYuX2hlYWRlcmxlbiwgbWF4bGluZWxlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRpbnVhdGlvbl93cywgc3BsaXRjaGFycykKKyAgICAgICAgbGFzdGNzID0gTm9uZQorICAgICAgICBoYXNzcGFjZSA9IGxhc3RzcGFjZSA9IE5vbmUKICAgICAgICAgZm9yIHN0cmluZywgY2hhcnNldCBpbiBzZWxmLl9jaHVua3M6CisgICAgICAgICAgICBpZiBoYXNzcGFjZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBoYXNzcGFjZSA9IHN0cmluZyBhbmQgc2VsZi5fbm9uY3RleHQoc3RyaW5nWzBdKQorICAgICAgICAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgICAgICAgICBpZiBsYXN0Y3Mgbm90IGluIChOb25lLCAndXMtYXNjaWknKToKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhhc3NwYWNlIG9yIGNoYXJzZXQgbm90IGluIChOb25lLCAndXMtYXNjaWknKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlci5hZGRfdHJhbnNpdGlvbigpCisgICAgICAgICAgICAgICAgZWxpZiBjaGFyc2V0IG5vdCBpbiAoTm9uZSwgJ3VzLWFzY2lpJykgYW5kIG5vdCBsYXN0c3BhY2U6CisgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlci5hZGRfdHJhbnNpdGlvbigpCisgICAgICAgICAgICBsYXN0c3BhY2UgPSBzdHJpbmcgYW5kIHNlbGYuX25vbmN0ZXh0KHN0cmluZ1stMV0pCisgICAgICAgICAgICBsYXN0Y3MgPSBjaGFyc2V0CisgICAgICAgICAgICBoYXNzcGFjZSA9IEZhbHNlCiAgICAgICAgICAgICBsaW5lcyA9IHN0cmluZy5zcGxpdGxpbmVzKCkKICAgICAgICAgICAgIGlmIGxpbmVzOgogICAgICAgICAgICAgICAgIGZvcm1hdHRlci5mZWVkKCcnLCBsaW5lc1swXSwgY2hhcnNldCkKQEAgLTM1MSw2ICszODcsNyBAQAogICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIuZmVlZChmd3MsIHNsaW5lLCBjaGFyc2V0KQogICAgICAgICAgICAgaWYgbGVuKGxpbmVzKSA+IDE6CiAgICAgICAgICAgICAgICAgZm9ybWF0dGVyLm5ld2xpbmUoKQorICAgICAgICBpZiBzZWxmLl9jaHVua3M6CiAgICAgICAgICAgICBmb3JtYXR0ZXIuYWRkX3RyYW5zaXRpb24oKQogICAgICAgICB2YWx1ZSA9IGZvcm1hdHRlci5fc3RyKGxpbmVzZXApCiAgICAgICAgIGlmIF9lbWJlZGVkX2hlYWRlci5zZWFyY2godmFsdWUpOgpkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL2hlYWRlcnJlZ2lzdHJ5LnB5IGIvTGliL2VtYWlsL2hlYWRlcnJlZ2lzdHJ5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFmYWU5NTAKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvZW1haWwvaGVhZGVycmVnaXN0cnkucHkKQEAgLTAsMCArMSw1ODMgQEAKKyIiIlJlcHJlc2VudGluZyBhbmQgbWFuaXB1bGF0aW5nIGVtYWlsIGhlYWRlcnMgdmlhIGN1c3RvbSBvYmplY3RzLgorCitUaGlzIG1vZHVsZSBwcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgSGVhZGVyUmVnaXN0cnkgQVBJLgorVGhlIGltcGxlbWVudGF0aW9uIGlzIGRlc2lnbmVkIHRvIGZsZXhpYmx5IGZvbGxvdyBSRkM1MzIyIHJ1bGVzLgorCitFdmVudHVhbGx5IEhlYWRlclJlZ2lzdHJ5IHdpbGwgYmUgYSBwdWJsaWMgQVBJLCBidXQgaXQgaXNuJ3QgeWV0LAorYW5kIHdpbGwgcHJvYmFibHkgY2hhbmdlIHNvbWUgYmVmb3JlIHRoYXQgaGFwcGVucy4KKworIiIiCisKK2Zyb20gZW1haWwgaW1wb3J0IHV0aWxzCitmcm9tIGVtYWlsIGltcG9ydCBlcnJvcnMKK2Zyb20gZW1haWwgaW1wb3J0IF9oZWFkZXJfdmFsdWVfcGFyc2VyIGFzIHBhcnNlcgorCitjbGFzcyBBZGRyZXNzOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRpc3BsYXlfbmFtZT0nJywgdXNlcm5hbWU9JycsIGRvbWFpbj0nJywgYWRkcl9zcGVjPU5vbmUpOgorICAgICAgICAiIiJDcmVhdGUgYW4gb2JqZWN0IHJlcHJlc2V0aW5nIGEgZnVsbCBlbWFpbCBhZGRyZXNzLgorCisgICAgICAgIEFuIGFkZHJlc3MgY2FuIGhhdmUgYSAnZGlzcGxheV9uYW1lJywgYSAndXNlcm5hbWUnLCBhbmQgYSAnZG9tYWluJy4gIEluCisgICAgICAgIGFkZGl0aW9uIHRvIHNwZWNpZnlpbmcgdGhlIHVzZXJuYW1lIGFuZCBkb21haW4gc2VwYXJhdGVseSwgdGhleSBtYXkgYmUKKyAgICAgICAgc3BlY2lmaWVkIHRvZ2V0aGVyIGJ5IHVzaW5nIHRoZSBhZGRyX3NwZWMga2V5d29yZCAqaW5zdGVhZCBvZiogdGhlCisgICAgICAgIHVzZXJuYW1lIGFuZCBkb21haW4ga2V5d29yZHMuICBJZiBhbiBhZGRyX3NwZWMgc3RyaW5nIGlzIHNwZWNpZmllZCBpdAorICAgICAgICBtdXN0IGJlIHByb3Blcmx5IHF1b3RlZCBhY2NvcmRpbmcgdG8gUkZDIDUzMjIgcnVsZXM7IGFuIGVycm9yIHdpbGwgYmUKKyAgICAgICAgcmFpc2VkIGlmIGl0IGlzIG5vdC4KKworICAgICAgICBBbiBBZGRyZXNzIG9iamVjdCBoYXMgZGlzcGxheV9uYW1lLCB1c2VybmFtZSwgZG9tYWluLCBhbmQgYWRkcl9zcGVjCisgICAgICAgIGF0dHJpYnV0ZXMsIGFsbCBvZiB3aGljaCBhcmUgcmVhZC1vbmx5LiAgVGhlIGFkZHJfc3BlYyBhbmQgdGhlIHN0cmluZworICAgICAgICB2YWx1ZSBvZiB0aGUgb2JqZWN0IGFyZSBib3RoIHF1b3RlZCBhY2NvcmRpbmcgdG8gUkZDNTMyMiBydWxlcywgYnV0CisgICAgICAgIHdpdGhvdXQgYW55IENvbnRlbnQgVHJhbnNmZXIgRW5jb2RpbmcuCisKKyAgICAgICAgIiIiCisgICAgICAgICMgVGhpcyBjbGF1c2Ugd2l0aCBpdHMgcG90ZW50aWFsICdyYWlzZScgbWF5IG9ubHkgaGFwcGVuIHdoZW4gYW4KKyAgICAgICAgIyBhcHBsaWNhdGlvbiBwcm9ncmFtIGNyZWF0ZXMgYW4gQWRkcmVzcyBvYmplY3QgdXNpbmcgYW4gYWRkcl9zcGVjCisgICAgICAgICMga2V5d29yZC4gIFRoZSBlbWFpbCBsaWJyYXJ5IGNvZGUgaXRzZWxmIG11c3QgYWx3YXlzIHN1cHBseSB1c2VybmFtZQorICAgICAgICAjIGFuZCBkb21haW4uCisgICAgICAgIGlmIGFkZHJfc3BlYyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIHVzZXJuYW1lIG9yIGRvbWFpbjoKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImFkZHJzcGVjIHNwZWNpZmllZCB3aGVuIHVzZXJuYW1lIGFuZC9vciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb21haW4gYWxzbyBzcGVjaWZpZWQiKQorICAgICAgICAgICAgYV9zLCByZXN0ID0gcGFyc2VyLmdldF9hZGRyX3NwZWMoYWRkcl9zcGVjKQorICAgICAgICAgICAgaWYgcmVzdDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIGFkZHJfc3BlYzsgb25seSAne30nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb3VsZCBiZSBwYXJzZWQgZnJvbSAne30nIi5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhX3MsIGFkZHJfc3BlYykpCisgICAgICAgICAgICBpZiBhX3MuYWxsX2RlZmVjdHM6CisgICAgICAgICAgICAgICAgcmFpc2UgYV9zLmFsbF9kZWZlY3RzWzBdCisgICAgICAgICAgICB1c2VybmFtZSA9IGFfcy5sb2NhbF9wYXJ0CisgICAgICAgICAgICBkb21haW4gPSBhX3MuZG9tYWluCisgICAgICAgIHNlbGYuX2Rpc3BsYXlfbmFtZSA9IGRpc3BsYXlfbmFtZQorICAgICAgICBzZWxmLl91c2VybmFtZSA9IHVzZXJuYW1lCisgICAgICAgIHNlbGYuX2RvbWFpbiA9IGRvbWFpbgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Rpc3BsYXlfbmFtZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHVzZXJuYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fdXNlcm5hbWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkb21haW4oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9kb21haW4KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhZGRyX3NwZWMoc2VsZik6CisgICAgICAgICIiIlRoZSBhZGRyX3NwZWMgKHVzZXJuYW1lQGRvbWFpbikgcG9ydGlvbiBvZiB0aGUgYWRkcmVzcywgcXVvdGVkCisgICAgICAgIGFjY29yZGluZyB0byBSRkMgNTMyMiBydWxlcywgYnV0IHdpdGggbm8gQ29udGVudCBUcmFuc2ZlciBFbmNvZGluZy4KKyAgICAgICAgIiIiCisgICAgICAgIG5hbWVzZXQgPSBzZXQoc2VsZi51c2VybmFtZSkKKyAgICAgICAgaWYgbGVuKG5hbWVzZXQpID4gbGVuKG5hbWVzZXQtcGFyc2VyLkRPVF9BVE9NX0VORFMpOgorICAgICAgICAgICAgbHAgPSBwYXJzZXIucXVvdGVfc3RyaW5nKHNlbGYudXNlcm5hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBscCA9IHNlbGYudXNlcm5hbWUKKyAgICAgICAgaWYgc2VsZi5kb21haW46CisgICAgICAgICAgICByZXR1cm4gbHAgKyAnQCcgKyBzZWxmLmRvbWFpbgorICAgICAgICBpZiBub3QgbHA6CisgICAgICAgICAgICByZXR1cm4gJzw+JworICAgICAgICByZXR1cm4gbHAKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICJBZGRyZXNzKGRpc3BsYXlfbmFtZT17IXJ9LCB1c2VybmFtZT17IXJ9LCBkb21haW49eyFyfSkiLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGlzcGxheV9uYW1lLCBzZWxmLnVzZXJuYW1lLCBzZWxmLmRvbWFpbikKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBuYW1lc2V0ID0gc2V0KHNlbGYuZGlzcGxheV9uYW1lKQorICAgICAgICBpZiBsZW4obmFtZXNldCkgPiBsZW4obmFtZXNldC1wYXJzZXIuU1BFQ0lBTFMpOgorICAgICAgICAgICAgZGlzcCA9IHBhcnNlci5xdW90ZV9zdHJpbmcoc2VsZi5kaXNwbGF5X25hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkaXNwID0gc2VsZi5kaXNwbGF5X25hbWUKKyAgICAgICAgaWYgZGlzcDoKKyAgICAgICAgICAgIGFkZHJfc3BlYyA9ICcnIGlmIHNlbGYuYWRkcl9zcGVjPT0nPD4nIGVsc2Ugc2VsZi5hZGRyX3NwZWMKKyAgICAgICAgICAgIHJldHVybiAie30gPHt9PiIuZm9ybWF0KGRpc3AsIGFkZHJfc3BlYykKKyAgICAgICAgcmV0dXJuIHNlbGYuYWRkcl9zcGVjCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgdHlwZShvdGhlcikgIT0gdHlwZShzZWxmKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gKHNlbGYuZGlzcGxheV9uYW1lID09IG90aGVyLmRpc3BsYXlfbmFtZSBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLnVzZXJuYW1lID09IG90aGVyLnVzZXJuYW1lIGFuZAorICAgICAgICAgICAgICAgIHNlbGYuZG9tYWluID09IG90aGVyLmRvbWFpbikKKworCitjbGFzcyBHcm91cDoKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaXNwbGF5X25hbWU9Tm9uZSwgYWRkcmVzc2VzPU5vbmUpOgorICAgICAgICAiIiJDcmVhdGUgYW4gb2JqZWN0IHJlcHJlc2VudGluZyBhbiBhZGRyZXNzIGdyb3VwLgorCisgICAgICAgIEFuIGFkZHJlc3MgZ3JvdXAgY29uc2lzdHMgb2YgYSBkaXNwbGF5X25hbWUgZm9sbG93ZWQgYnkgY29sb24gYW5kIGFuCisgICAgICAgIGxpc3Qgb2YgYWRkcmVzc2VzIChzZWUgQWRkcmVzcykgdGVybWluYXRlZCBieSBhIHNlbWktY29sb24uICBUaGUgR3JvdXAKKyAgICAgICAgaXMgY3JlYXRlZCBieSBzcGVjaWZ5aW5nIGEgZGlzcGxheV9uYW1lIGFuZCBhIHBvc3NpYmx5IGVtcHR5IGxpc3Qgb2YKKyAgICAgICAgQWRkcmVzcyBvYmplY3RzLiAgQSBHcm91cCBjYW4gYWxzbyBiZSB1c2VkIHRvIHJlcHJlc2VudCBhIHNpbmdsZQorICAgICAgICBhZGRyZXNzIHRoYXQgaXMgbm90IGluIGEgZ3JvdXAsIHdoaWNoIGlzIGNvbnZlbmllbnQgd2hlbiBtYW5pcHVsYXRpbmcKKyAgICAgICAgbGlzdHMgdGhhdCBhcmUgYSBjb21iaW5hdGlvbiBvZiBHcm91cHMgYW5kIGluZGl2aWR1YWwgQWRkcmVzc2VzLiAgSW4KKyAgICAgICAgdGhpcyBjYXNlIHRoZSBkaXNwbGF5X25hbWUgc2hvdWxkIGJlIHNldCB0byBOb25lLiAgSW4gcGFydGljdWxhciwgdGhlCisgICAgICAgIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIEdyb3VwIHdob3NlIGRpc3BsYXlfbmFtZSBpcyBOb25lIGlzIHRoZSBzYW1lCisgICAgICAgIGFzIHRoZSBBZGRyZXNzIG9iamVjdCwgaWYgdGhlcmUgaXMgb25lIGFuZCBvbmx5IG9uZSBBZGRyZXNzIG9iamVjdCBpbgorICAgICAgICB0aGUgYWRkcmVzc2VzIGxpc3QuCisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2Rpc3BsYXlfbmFtZSA9IGRpc3BsYXlfbmFtZQorICAgICAgICBzZWxmLl9hZGRyZXNzZXMgPSB0dXBsZShhZGRyZXNzZXMpIGlmIGFkZHJlc3NlcyBlbHNlIHR1cGxlKCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkaXNwbGF5X25hbWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9kaXNwbGF5X25hbWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhZGRyZXNzZXMoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hZGRyZXNzZXMKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICJHcm91cChkaXNwbGF5X25hbWU9eyFyfSwgYWRkcmVzc2VzPXshcn0iLmZvcm1hdCgKKyAgICAgICAgICAgICAgICAgc2VsZi5kaXNwbGF5X25hbWUsIHNlbGYuYWRkcmVzc2VzKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIGlmIHNlbGYuZGlzcGxheV9uYW1lIGlzIE5vbmUgYW5kIGxlbihzZWxmLmFkZHJlc3Nlcyk9PTE6CisgICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYuYWRkcmVzc2VzWzBdKQorICAgICAgICBkaXNwID0gc2VsZi5kaXNwbGF5X25hbWUKKyAgICAgICAgaWYgZGlzcCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIG5hbWVzZXQgPSBzZXQoZGlzcCkKKyAgICAgICAgICAgIGlmIGxlbihuYW1lc2V0KSA+IGxlbihuYW1lc2V0LXBhcnNlci5TUEVDSUFMUyk6CisgICAgICAgICAgICAgICAgZGlzcCA9IHBhcnNlci5xdW90ZV9zdHJpbmcoZGlzcCkKKyAgICAgICAgYWRyc3RyID0gIiwgIi5qb2luKHN0cih4KSBmb3IgeCBpbiBzZWxmLmFkZHJlc3NlcykKKyAgICAgICAgYWRyc3RyID0gJyAnICsgYWRyc3RyIGlmIGFkcnN0ciBlbHNlIGFkcnN0cgorICAgICAgICByZXR1cm4gInt9Ont9OyIuZm9ybWF0KGRpc3AsIGFkcnN0cikKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICBpZiB0eXBlKG90aGVyKSAhPSB0eXBlKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiAoc2VsZi5kaXNwbGF5X25hbWUgPT0gb3RoZXIuZGlzcGxheV9uYW1lIGFuZAorICAgICAgICAgICAgICAgIHNlbGYuYWRkcmVzc2VzID09IG90aGVyLmFkZHJlc3NlcykKKworCisjIEhlYWRlciBDbGFzc2VzICMKKworY2xhc3MgQmFzZUhlYWRlcihzdHIpOgorCisgICAgIiIiQmFzZSBjbGFzcyBmb3IgbWVzc2FnZSBoZWFkZXJzLgorCisgICAgSW1wbGVtZW50cyBnZW5lcmljIGJlaGF2aW9yIGFuZCBwcm92aWRlcyB0b29scyBmb3Igc3ViY2xhc3Nlcy4KKworICAgIEEgc3ViY2xhc3MgbXVzdCBkZWZpbmUgYSBjbGFzc21ldGhvZCBuYW1lZCAncGFyc2UnIHRoYXQgdGFrZXMgYW4gdW5mb2xkZWQKKyAgICB2YWx1ZSBzdHJpbmcgYW5kIGEgZGljdGlvbmFyeSBhcyBpdHMgYXJndW1lbnRzLiAgVGhlIGRpY3Rpb25hcnkgd2lsbAorICAgIGNvbnRhaW4gb25lIGtleSwgJ2RlZmVjdHMnLCBpbml0aWFsaXplZCB0byBhbiBlbXB0eSBsaXN0LiAgQWZ0ZXIgdGhlIGNhbGwKKyAgICB0aGUgZGljdGlvbmFyeSBtdXN0IGNvbnRhaW4gdHdvIGFkZGl0aW9uYWwga2V5czogcGFyc2VfdHJlZSwgc2V0IHRvIHRoZQorICAgIHBhcnNlIHRyZWUgb2J0YWluZWQgZnJvbSBwYXJzaW5nIHRoZSBoZWFkZXIsIGFuZCAnZGVjb2RlZCcsIHNldCB0byB0aGUKKyAgICBzdHJpbmcgdmFsdWUgb2YgdGhlIGlkZWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGF0YSBmcm9tIHRoZSB2YWx1ZS4KKyAgICAoVGhhdCBpcywgZW5jb2RlZCB3b3JkcyBhcmUgZGVjb2RlZCwgYW5kIHZhbHVlcyB0aGF0IGhhdmUgY2Fub25pY2FsCisgICAgcmVwcmVzZW50YXRpb25zIGFyZSBzbyByZXByZXNlbnRlZC4pCisKKyAgICBUaGUgZGVmZWN0cyBrZXkgaXMgaW50ZW5kZWQgdG8gY29sbGVjdCBwYXJzaW5nIGRlZmVjdHMsIHdoaWNoIHRoZSBtZXNzYWdlCisgICAgcGFyc2VyIHdpbGwgc3Vic2VxdWVudGx5IGRpc3Bvc2Ugb2YgYXMgYXBwcm9wcmlhdGUuICBUaGUgcGFyc2VyIHNob3VsZCBub3QsCisgICAgaW5zb2ZhciBhcyBwcmFjdGljYWwsIHJhaXNlIGFueSBlcnJvcnMuICBEZWZlY3RzIHNob3VsZCBiZSBhZGRlZCB0byB0aGUKKyAgICBsaXN0IGluc3RlYWQuICBUaGUgc3RhbmRhcmQgaGVhZGVyIHBhcnNlcnMgcmVnaXN0ZXIgZGVmZWN0cyBmb3IgUkZDCisgICAgY29tcGxpYW5jZSBpc3N1ZXMsIGZvciBvYnNvbGV0ZSBSRkMgc3ludGF4LCBhbmQgZm9yIHVucmVjb3ZlcmFibGUgcGFyc2luZworICAgIGVycm9ycy4KKworICAgIFRoZSBwYXJzZSBtZXRob2QgbWF5IGFkZCBhZGRpdGlvbmFsIGtleXMgdG8gdGhlIGRpY3Rpb25hcnkuICBJbiB0aGlzIGNhc2UKKyAgICB0aGUgc3ViY2xhc3MgbXVzdCBkZWZpbmUgYW4gJ2luaXQnIG1ldGhvZCwgd2hpY2ggd2lsbCBiZSBwYXNzZWQgdGhlCisgICAgZGljdGlvbmFyeSBhcyBpdHMga2V5d29yZCBhcmd1bWVudHMuICBUaGUgbWV0aG9kIHNob3VsZCB1c2UgKHVzdWFsbHkgYnkKKyAgICBzZXR0aW5nIHRoZW0gYXMgdGhlIHZhbHVlIG9mIHNpbWlsYXJseSBuYW1lZCBhdHRyaWJ1dGVzKSBhbmQgcmVtb3ZlIGFsbCB0aGUKKyAgICBleHRyYSBrZXlzIGFkZGVkIGJ5IGl0cyBwYXJzZSBtZXRob2QsIGFuZCB0aGVuIHVzZSBzdXBlciB0byBjYWxsIGl0cyBwYXJlbnQKKyAgICBjbGFzcyB3aXRoIHRoZSByZW1haW5pbmcgYXJndW1lbnRzIGFuZCBrZXl3b3Jkcy4KKworICAgIFRoZSBzdWJjbGFzcyBzaG91bGQgYWxzbyBtYWtlIHN1cmUgdGhhdCBhICdtYXhfY291bnQnIGF0dHJpYnV0ZSBpcyBkZWZpbmVkCisgICAgdGhhdCBpcyBlaXRoZXIgTm9uZSBvciAxLiBYWFg6IG5lZWQgdG8gYmV0dGVyIGRlZmluZSB0aGlzIEFQSS4KKworICAgICIiIgorCisgICAgZGVmIF9fbmV3X18oY2xzLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIGt3ZHMgPSB7J2RlZmVjdHMnOiBbXX0KKyAgICAgICAgY2xzLnBhcnNlKHZhbHVlLCBrd2RzKQorICAgICAgICBpZiB1dGlscy5faGFzX3N1cnJvZ2F0ZXMoa3dkc1snZGVjb2RlZCddKToKKyAgICAgICAgICAgIGt3ZHNbJ2RlY29kZWQnXSA9IHV0aWxzLl9zYW5pdGl6ZShrd2RzWydkZWNvZGVkJ10pCisgICAgICAgIHNlbGYgPSBzdHIuX19uZXdfXyhjbHMsIGt3ZHNbJ2RlY29kZWQnXSkKKyAgICAgICAgZGVsIGt3ZHNbJ2RlY29kZWQnXQorICAgICAgICBzZWxmLmluaXQobmFtZSwgKiprd2RzKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIGluaXQoc2VsZiwgbmFtZSwgKiwgcGFyc2VfdHJlZSwgZGVmZWN0cyk6CisgICAgICAgIHNlbGYuX25hbWUgPSBuYW1lCisgICAgICAgIHNlbGYuX3BhcnNlX3RyZWUgPSBwYXJzZV90cmVlCisgICAgICAgIHNlbGYuX2RlZmVjdHMgPSBkZWZlY3RzCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbmFtZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkZWZlY3RzKHNlbGYpOgorICAgICAgICByZXR1cm4gdHVwbGUoc2VsZi5fZGVmZWN0cykKKworICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgX3JlY29uc3RydWN0X2hlYWRlciwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywKKyAgICAgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXy5fX2Jhc2VzX18sCisgICAgICAgICAgICAgICAgc3RyKHNlbGYpLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIHNlbGYuX19kaWN0X18pCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3JlY29uc3RydWN0KGNscywgdmFsdWUpOgorICAgICAgICByZXR1cm4gc3RyLl9fbmV3X18oY2xzLCB2YWx1ZSkKKworICAgIGRlZiBmb2xkKHNlbGYsICosIHBvbGljeSk6CisgICAgICAgICIiIkZvbGQgaGVhZGVyIGFjY29yZGluZyB0byBwb2xpY3kuCisKKyAgICAgICAgVGhlIHBhcnNlZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaGVhZGVyIGlzIGZvbGRlZCBhY2NvcmRpbmcgdG8KKyAgICAgICAgUkZDNTMyMiBydWxlcywgYXMgbW9kaWZpZWQgYnkgdGhlIHBvbGljeS4gIElmIHRoZSBwYXJzZSB0cmVlCisgICAgICAgIGNvbnRhaW5zIHN1cnJvZ2F0ZWVzY2FwZWQgYnl0ZXMsIHRoZSBieXRlcyBhcmUgQ1RFIGVuY29kZWQgdXNpbmcKKyAgICAgICAgdGhlIGNoYXJzZXQgJ3Vua25vd24tOGJpdCIuCisKKyAgICAgICAgQW55IG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZSBwYXJzZSB0cmVlIGFyZSBDVEUgZW5jb2RlZCB1c2luZworICAgICAgICBjaGFyc2V0IHV0Zi04LiBYWFg6IG1ha2UgdGhpcyBhIHBvbGljeSBzZXR0aW5nLgorCisgICAgICAgIFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhbiBBU0NJSS1vbmx5IHN0cmluZyBwb3NzaWJseSBjb250YWluaW5nIGxpbmVzZXAKKyAgICAgICAgY2hhcmFjdGVycywgYW5kIGVuZGluZyB3aXRoIGEgbGluZXNlcCBjaGFyYWN0ZXIuICBUaGUgc3RyaW5nIGluY2x1ZGVzCisgICAgICAgIHRoZSBoZWFkZXIgbmFtZSBhbmQgdGhlICc6ICcgc2VwYXJhdG9yLgorCisgICAgICAgICIiIgorICAgICAgICAjIEF0IHNvbWUgcG9pbnQgd2UgbmVlZCB0byBvbmx5IHB1dCBmd3MgaGVyZSBpZiBpdCB3YXMgaW4gdGhlIHNvdXJjZS4KKyAgICAgICAgaGVhZGVyID0gcGFyc2VyLkhlYWRlcihbCisgICAgICAgICAgICBwYXJzZXIuSGVhZGVyTGFiZWwoWworICAgICAgICAgICAgICAgIHBhcnNlci5WYWx1ZVRlcm1pbmFsKHNlbGYubmFtZSwgJ2hlYWRlci1uYW1lJyksCisgICAgICAgICAgICAgICAgcGFyc2VyLlZhbHVlVGVybWluYWwoJzonLCAnaGVhZGVyLXNlcCcpXSksCisgICAgICAgICAgICBwYXJzZXIuQ0ZXU0xpc3QoW3BhcnNlci5XaGl0ZVNwYWNlVGVybWluYWwoJyAnLCAnZndzJyldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyc2VfdHJlZV0pCisgICAgICAgIHJldHVybiBoZWFkZXIuZm9sZChwb2xpY3k9cG9saWN5KQorCisKK2RlZiBfcmVjb25zdHJ1Y3RfaGVhZGVyKGNsc19uYW1lLCBiYXNlcywgdmFsdWUpOgorICAgIHJldHVybiB0eXBlKGNsc19uYW1lLCBiYXNlcywge30pLl9yZWNvbnN0cnVjdCh2YWx1ZSkKKworCitjbGFzcyBVbnN0cnVjdHVyZWRIZWFkZXI6CisKKyAgICBtYXhfY291bnQgPSBOb25lCisgICAgdmFsdWVfcGFyc2VyID0gc3RhdGljbWV0aG9kKHBhcnNlci5nZXRfdW5zdHJ1Y3R1cmVkKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHBhcnNlKGNscywgdmFsdWUsIGt3ZHMpOgorICAgICAgICBrd2RzWydwYXJzZV90cmVlJ10gPSBjbHMudmFsdWVfcGFyc2VyKHZhbHVlKQorICAgICAgICBrd2RzWydkZWNvZGVkJ10gPSBzdHIoa3dkc1sncGFyc2VfdHJlZSddKQorCisKK2NsYXNzIFVuaXF1ZVVuc3RydWN0dXJlZEhlYWRlcihVbnN0cnVjdHVyZWRIZWFkZXIpOgorCisgICAgbWF4X2NvdW50ID0gMQorCisKK2NsYXNzIERhdGVIZWFkZXI6CisKKyAgICAiIiJIZWFkZXIgd2hvc2UgdmFsdWUgY29uc2lzdHMgb2YgYSBzaW5nbGUgdGltZXN0YW1wLgorCisgICAgUHJvdmlkZXMgYW4gYWRkaXRpb25hbCBhdHRyaWJ1dGUsIGRhdGV0aW1lLCB3aGljaCBpcyBlaXRoZXIgYW4gYXdhcmUKKyAgICBkYXRldGltZSB1c2luZyBhIHRpbWV6b25lLCBvciBhIG5haXZlIGRhdGV0aW1lIGlmIHRoZSB0aW1lem9uZQorICAgIGluIHRoZSBpbnB1dCBzdHJpbmcgaXMgLTAwMDAuICBBbHNvIGFjY2VwdHMgYSBkYXRldGltZSBhcyBpbnB1dC4KKyAgICBUaGUgJ3ZhbHVlJyBhdHRyaWJ1dGUgaXMgdGhlIG5vcm1hbGl6ZWQgZm9ybSBvZiB0aGUgdGltZXN0YW1wLAorICAgIHdoaWNoIG1lYW5zIGl0IGlzIHRoZSBvdXRwdXQgb2YgZm9ybWF0X2RhdGV0aW1lIG9uIHRoZSBkYXRldGltZS4KKyAgICAiIiIKKworICAgIG1heF9jb3VudCA9IE5vbmUKKworICAgICMgVGhpcyBpcyB1c2VkIG9ubHkgZm9yIGZvbGRpbmcsIG5vdCBmb3IgY3JlYXRpbmcgJ2RlY29kZWQnLgorICAgIHZhbHVlX3BhcnNlciA9IHN0YXRpY21ldGhvZChwYXJzZXIuZ2V0X3Vuc3RydWN0dXJlZCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBwYXJzZShjbHMsIHZhbHVlLCBrd2RzKToKKyAgICAgICAgaWYgbm90IHZhbHVlOgorICAgICAgICAgICAga3dkc1snZGVmZWN0cyddLmFwcGVuZChlcnJvcnMuSGVhZGVyTWlzc2luZ1JlcXVpcmVkVmFsdWUoKSkKKyAgICAgICAgICAgIGt3ZHNbJ2RhdGV0aW1lJ10gPSBOb25lCisgICAgICAgICAgICBrd2RzWydkZWNvZGVkJ10gPSAnJworICAgICAgICAgICAga3dkc1sncGFyc2VfdHJlZSddID0gcGFyc2VyLlRva2VuTGlzdCgpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKToKKyAgICAgICAgICAgIHZhbHVlID0gdXRpbHMucGFyc2VkYXRlX3RvX2RhdGV0aW1lKHZhbHVlKQorICAgICAgICBrd2RzWydkYXRldGltZSddID0gdmFsdWUKKyAgICAgICAga3dkc1snZGVjb2RlZCddID0gdXRpbHMuZm9ybWF0X2RhdGV0aW1lKGt3ZHNbJ2RhdGV0aW1lJ10pCisgICAgICAgIGt3ZHNbJ3BhcnNlX3RyZWUnXSA9IGNscy52YWx1ZV9wYXJzZXIoa3dkc1snZGVjb2RlZCddKQorCisgICAgZGVmIGluaXQoc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICBzZWxmLl9kYXRldGltZSA9IGt3LnBvcCgnZGF0ZXRpbWUnKQorICAgICAgICBzdXBlcigpLmluaXQoKmFyZ3MsICoqa3cpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZGF0ZXRpbWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9kYXRldGltZQorCisKK2NsYXNzIFVuaXF1ZURhdGVIZWFkZXIoRGF0ZUhlYWRlcik6CisKKyAgICBtYXhfY291bnQgPSAxCisKKworY2xhc3MgQWRkcmVzc0hlYWRlcjoKKworICAgIG1heF9jb3VudCA9IE5vbmUKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgdmFsdWVfcGFyc2VyKHZhbHVlKToKKyAgICAgICAgYWRkcmVzc19saXN0LCB2YWx1ZSA9IHBhcnNlci5nZXRfYWRkcmVzc19saXN0KHZhbHVlKQorICAgICAgICBhc3NlcnQgbm90IHZhbHVlLCAndGhpcyBzaG91bGQgbm90IGhhcHBlbicKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NfbGlzdAorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHBhcnNlKGNscywgdmFsdWUsIGt3ZHMpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgorICAgICAgICAgICAgIyBXZSBhcmUgdHJhbnNsYXRpbmcgaGVyZSBmcm9tIHRoZSBSRkMgbGFuZ3VhZ2UgKGFkZHJlc3MvbWFpbGJveCkKKyAgICAgICAgICAgICMgdG8gb3VyIEFQSSBsYW5ndWFnZSAoZ3JvdXAvYWRkcmVzcykuCisgICAgICAgICAgICBrd2RzWydwYXJzZV90cmVlJ10gPSBhZGRyZXNzX2xpc3QgPSBjbHMudmFsdWVfcGFyc2VyKHZhbHVlKQorICAgICAgICAgICAgZ3JvdXBzID0gW10KKyAgICAgICAgICAgIGZvciBhZGRyIGluIGFkZHJlc3NfbGlzdC5hZGRyZXNzZXM6CisgICAgICAgICAgICAgICAgZ3JvdXBzLmFwcGVuZChHcm91cChhZGRyLmRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtBZGRyZXNzKG1iLmRpc3BsYXlfbmFtZSBvciAnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1iLmxvY2FsX3BhcnQgb3IgJycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYi5kb21haW4gb3IgJycpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG1iIGluIGFkZHIuYWxsX21haWxib3hlc10pKQorICAgICAgICAgICAgZGVmZWN0cyA9IGxpc3QoYWRkcmVzc19saXN0LmFsbF9kZWZlY3RzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBBc3N1bWUgaXQgaXMgQWRkcmVzcy9Hcm91cCBzdHVmZgorICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIodmFsdWUsICdfX2l0ZXJfXycpOgorICAgICAgICAgICAgICAgIHZhbHVlID0gW3ZhbHVlXQorICAgICAgICAgICAgZ3JvdXBzID0gW0dyb3VwKE5vbmUsIFtpdGVtXSkgaWYgbm90IGhhc2F0dHIoaXRlbSwgJ2FkZHJlc3NlcycpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHZhbHVlXQorICAgICAgICAgICAgZGVmZWN0cyA9IFtdCisgICAgICAgIGt3ZHNbJ2dyb3VwcyddID0gZ3JvdXBzCisgICAgICAgIGt3ZHNbJ2RlZmVjdHMnXSA9IGRlZmVjdHMKKyAgICAgICAga3dkc1snZGVjb2RlZCddID0gJywgJy5qb2luKFtzdHIoaXRlbSkgZm9yIGl0ZW0gaW4gZ3JvdXBzXSkKKyAgICAgICAgaWYgJ3BhcnNlX3RyZWUnIG5vdCBpbiBrd2RzOgorICAgICAgICAgICAga3dkc1sncGFyc2VfdHJlZSddID0gY2xzLnZhbHVlX3BhcnNlcihrd2RzWydkZWNvZGVkJ10pCisKKyAgICBkZWYgaW5pdChzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHNlbGYuX2dyb3VwcyA9IHR1cGxlKGt3LnBvcCgnZ3JvdXBzJykpCisgICAgICAgIHNlbGYuX2FkZHJlc3NlcyA9IE5vbmUKKyAgICAgICAgc3VwZXIoKS5pbml0KCphcmdzLCAqKmt3KQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGdyb3VwcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2dyb3VwcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFkZHJlc3NlcyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fYWRkcmVzc2VzIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLl9hZGRyZXNzZXMgPSB0dXBsZShbYWRkcmVzcyBmb3IgZ3JvdXAgaW4gc2VsZi5fZ3JvdXBzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYWRkcmVzcyBpbiBncm91cC5hZGRyZXNzZXNdKQorICAgICAgICByZXR1cm4gc2VsZi5fYWRkcmVzc2VzCisKKworY2xhc3MgVW5pcXVlQWRkcmVzc0hlYWRlcihBZGRyZXNzSGVhZGVyKToKKworICAgIG1heF9jb3VudCA9IDEKKworCitjbGFzcyBTaW5nbGVBZGRyZXNzSGVhZGVyKEFkZHJlc3NIZWFkZXIpOgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGFkZHJlc3Moc2VsZik6CisgICAgICAgIGlmIGxlbihzZWxmLmFkZHJlc3NlcykhPTE6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCgidmFsdWUgb2Ygc2luZ2xlIGFkZHJlc3MgaGVhZGVyIHt9IGlzIG5vdCAiCisgICAgICAgICAgICAgICAgImEgc2luZ2xlIGFkZHJlc3MiKS5mb3JtYXQoc2VsZi5uYW1lKSkKKyAgICAgICAgcmV0dXJuIHNlbGYuYWRkcmVzc2VzWzBdCisKKworY2xhc3MgVW5pcXVlU2luZ2xlQWRkcmVzc0hlYWRlcihTaW5nbGVBZGRyZXNzSGVhZGVyKToKKworICAgIG1heF9jb3VudCA9IDEKKworCitjbGFzcyBNSU1FVmVyc2lvbkhlYWRlcjoKKworICAgIG1heF9jb3VudCA9IDEKKworICAgIHZhbHVlX3BhcnNlciA9IHN0YXRpY21ldGhvZChwYXJzZXIucGFyc2VfbWltZV92ZXJzaW9uKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHBhcnNlKGNscywgdmFsdWUsIGt3ZHMpOgorICAgICAgICBrd2RzWydwYXJzZV90cmVlJ10gPSBwYXJzZV90cmVlID0gY2xzLnZhbHVlX3BhcnNlcih2YWx1ZSkKKyAgICAgICAga3dkc1snZGVjb2RlZCddID0gc3RyKHBhcnNlX3RyZWUpCisgICAgICAgIGt3ZHNbJ2RlZmVjdHMnXS5leHRlbmQocGFyc2VfdHJlZS5hbGxfZGVmZWN0cykKKyAgICAgICAga3dkc1snbWFqb3InXSA9IE5vbmUgaWYgcGFyc2VfdHJlZS5taW5vciBpcyBOb25lIGVsc2UgcGFyc2VfdHJlZS5tYWpvcgorICAgICAgICBrd2RzWydtaW5vciddID0gcGFyc2VfdHJlZS5taW5vcgorICAgICAgICBpZiBwYXJzZV90cmVlLm1pbm9yIGlzIG5vdCBOb25lOgorICAgICAgICAgICAga3dkc1sndmVyc2lvbiddID0gJ3t9Lnt9Jy5mb3JtYXQoa3dkc1snbWFqb3InXSwga3dkc1snbWlub3InXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGt3ZHNbJ3ZlcnNpb24nXSA9IE5vbmUKKworICAgIGRlZiBpbml0KHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgc2VsZi5fdmVyc2lvbiA9IGt3LnBvcCgndmVyc2lvbicpCisgICAgICAgIHNlbGYuX21ham9yID0ga3cucG9wKCdtYWpvcicpCisgICAgICAgIHNlbGYuX21pbm9yID0ga3cucG9wKCdtaW5vcicpCisgICAgICAgIHN1cGVyKCkuaW5pdCgqYXJncywgKiprdykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtYWpvcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX21ham9yCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbWlub3Ioc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9taW5vcgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHZlcnNpb24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCisKKworY2xhc3MgUGFyYW1ldGVyaXplZE1JTUVIZWFkZXI6CisKKyAgICAjIE1peGluIHRoYXQgaGFuZGxlcyB0aGUgcGFyYW1zIGRpY3QuICBNdXN0IGJlIHN1YmNsYXNzZWQgYW5kCisgICAgIyBhIHByb3BlcnR5IHZhbHVlX3BhcnNlciBmb3IgdGhlIHNwZWNpZmljIGhlYWRlciBwcm92aWRlZC4KKworICAgIG1heF9jb3VudCA9IDEKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBwYXJzZShjbHMsIHZhbHVlLCBrd2RzKToKKyAgICAgICAga3dkc1sncGFyc2VfdHJlZSddID0gcGFyc2VfdHJlZSA9IGNscy52YWx1ZV9wYXJzZXIodmFsdWUpCisgICAgICAgIGt3ZHNbJ2RlY29kZWQnXSA9IHN0cihwYXJzZV90cmVlKQorICAgICAgICBrd2RzWydkZWZlY3RzJ10uZXh0ZW5kKHBhcnNlX3RyZWUuYWxsX2RlZmVjdHMpCisgICAgICAgIGlmIHBhcnNlX3RyZWUucGFyYW1zIGlzIE5vbmU6CisgICAgICAgICAgICBrd2RzWydwYXJhbXMnXSA9IHt9CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIFRoZSBNSU1FIFJGQ3Mgc3BlY2lmeSB0aGF0IHBhcmFtZXRlciBvcmRlcmluZyBpcyBhcmJpdHJhcnkuCisgICAgICAgICAgICBrd2RzWydwYXJhbXMnXSA9IHt1dGlscy5fc2FuaXRpemUobmFtZSkubG93ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLl9zYW5pdGl6ZSh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gcGFyc2VfdHJlZS5wYXJhbXN9CisKKyAgICBkZWYgaW5pdChzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHNlbGYuX3BhcmFtcyA9IGt3LnBvcCgncGFyYW1zJykKKyAgICAgICAgc3VwZXIoKS5pbml0KCphcmdzLCAqKmt3KQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBhcmFtcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmFtcy5jb3B5KCkKKworCitjbGFzcyBDb250ZW50VHlwZUhlYWRlcihQYXJhbWV0ZXJpemVkTUlNRUhlYWRlcik6CisKKyAgICB2YWx1ZV9wYXJzZXIgPSBzdGF0aWNtZXRob2QocGFyc2VyLnBhcnNlX2NvbnRlbnRfdHlwZV9oZWFkZXIpCisKKyAgICBkZWYgaW5pdChzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHN1cGVyKCkuaW5pdCgqYXJncywgKiprdykKKyAgICAgICAgc2VsZi5fbWFpbnR5cGUgPSB1dGlscy5fc2FuaXRpemUoc2VsZi5fcGFyc2VfdHJlZS5tYWludHlwZSkKKyAgICAgICAgc2VsZi5fc3VidHlwZSA9IHV0aWxzLl9zYW5pdGl6ZShzZWxmLl9wYXJzZV90cmVlLnN1YnR5cGUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbWFpbnR5cGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9tYWludHlwZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHN1YnR5cGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9zdWJ0eXBlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY29udGVudF90eXBlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tYWludHlwZSArICcvJyArIHNlbGYuc3VidHlwZQorCisKK2NsYXNzIENvbnRlbnREaXNwb3NpdGlvbkhlYWRlcihQYXJhbWV0ZXJpemVkTUlNRUhlYWRlcik6CisKKyAgICB2YWx1ZV9wYXJzZXIgPSBzdGF0aWNtZXRob2QocGFyc2VyLnBhcnNlX2NvbnRlbnRfZGlzcG9zaXRpb25faGVhZGVyKQorCisgICAgZGVmIGluaXQoc2VsZiwgKmFyZ3MsICoqa3cpOgorICAgICAgICBzdXBlcigpLmluaXQoKmFyZ3MsICoqa3cpCisgICAgICAgIGNkID0gc2VsZi5fcGFyc2VfdHJlZS5jb250ZW50X2Rpc3Bvc2l0aW9uCisgICAgICAgIHNlbGYuX2NvbnRlbnRfZGlzcG9zaXRpb24gPSBjZCBpZiBjZCBpcyBOb25lIGVsc2UgdXRpbHMuX3Nhbml0aXplKGNkKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNvbnRlbnRfZGlzcG9zaXRpb24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jb250ZW50X2Rpc3Bvc2l0aW9uCisKKworY2xhc3MgQ29udGVudFRyYW5zZmVyRW5jb2RpbmdIZWFkZXI6CisKKyAgICBtYXhfY291bnQgPSAxCisKKyAgICB2YWx1ZV9wYXJzZXIgPSBzdGF0aWNtZXRob2QocGFyc2VyLnBhcnNlX2NvbnRlbnRfdHJhbnNmZXJfZW5jb2RpbmdfaGVhZGVyKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHBhcnNlKGNscywgdmFsdWUsIGt3ZHMpOgorICAgICAgICBrd2RzWydwYXJzZV90cmVlJ10gPSBwYXJzZV90cmVlID0gY2xzLnZhbHVlX3BhcnNlcih2YWx1ZSkKKyAgICAgICAga3dkc1snZGVjb2RlZCddID0gc3RyKHBhcnNlX3RyZWUpCisgICAgICAgIGt3ZHNbJ2RlZmVjdHMnXS5leHRlbmQocGFyc2VfdHJlZS5hbGxfZGVmZWN0cykKKworICAgIGRlZiBpbml0KHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgc3VwZXIoKS5pbml0KCphcmdzLCAqKmt3KQorICAgICAgICBzZWxmLl9jdGUgPSB1dGlscy5fc2FuaXRpemUoc2VsZi5fcGFyc2VfdHJlZS5jdGUpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY3RlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY3RlCisKKworIyBUaGUgaGVhZGVyIGZhY3RvcnkgIworCitfZGVmYXVsdF9oZWFkZXJfbWFwID0geworICAgICdzdWJqZWN0JzogICAgICAgICAgICAgICAgICAgICAgVW5pcXVlVW5zdHJ1Y3R1cmVkSGVhZGVyLAorICAgICdkYXRlJzogICAgICAgICAgICAgICAgICAgICAgICAgVW5pcXVlRGF0ZUhlYWRlciwKKyAgICAncmVzZW50LWRhdGUnOiAgICAgICAgICAgICAgICAgIERhdGVIZWFkZXIsCisgICAgJ29yaWctZGF0ZSc6ICAgICAgICAgICAgICAgICAgICBVbmlxdWVEYXRlSGVhZGVyLAorICAgICdzZW5kZXInOiAgICAgICAgICAgICAgICAgICAgICAgVW5pcXVlU2luZ2xlQWRkcmVzc0hlYWRlciwKKyAgICAncmVzZW50LXNlbmRlcic6ICAgICAgICAgICAgICAgIFNpbmdsZUFkZHJlc3NIZWFkZXIsCisgICAgJ3RvJzogICAgICAgICAgICAgICAgICAgICAgICAgICBVbmlxdWVBZGRyZXNzSGVhZGVyLAorICAgICdyZXNlbnQtdG8nOiAgICAgICAgICAgICAgICAgICAgQWRkcmVzc0hlYWRlciwKKyAgICAnY2MnOiAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuaXF1ZUFkZHJlc3NIZWFkZXIsCisgICAgJ3Jlc2VudC1jYyc6ICAgICAgICAgICAgICAgICAgICBBZGRyZXNzSGVhZGVyLAorICAgICdiY2MnOiAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pcXVlQWRkcmVzc0hlYWRlciwKKyAgICAncmVzZW50LWJjYyc6ICAgICAgICAgICAgICAgICAgIEFkZHJlc3NIZWFkZXIsCisgICAgJ2Zyb20nOiAgICAgICAgICAgICAgICAgICAgICAgICBVbmlxdWVBZGRyZXNzSGVhZGVyLAorICAgICdyZXNlbnQtZnJvbSc6ICAgICAgICAgICAgICAgICAgQWRkcmVzc0hlYWRlciwKKyAgICAncmVwbHktdG8nOiAgICAgICAgICAgICAgICAgICAgIFVuaXF1ZUFkZHJlc3NIZWFkZXIsCisgICAgJ21pbWUtdmVyc2lvbic6ICAgICAgICAgICAgICAgICBNSU1FVmVyc2lvbkhlYWRlciwKKyAgICAnY29udGVudC10eXBlJzogICAgICAgICAgICAgICAgIENvbnRlbnRUeXBlSGVhZGVyLAorICAgICdjb250ZW50LWRpc3Bvc2l0aW9uJzogICAgICAgICAgQ29udGVudERpc3Bvc2l0aW9uSGVhZGVyLAorICAgICdjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nJzogICAgQ29udGVudFRyYW5zZmVyRW5jb2RpbmdIZWFkZXIsCisgICAgfQorCitjbGFzcyBIZWFkZXJSZWdpc3RyeToKKworICAgICIiIkEgaGVhZGVyX2ZhY3RvcnkgYW5kIGhlYWRlciByZWdpc3RyeS4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBiYXNlX2NsYXNzPUJhc2VIZWFkZXIsIGRlZmF1bHRfY2xhc3M9VW5zdHJ1Y3R1cmVkSGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICB1c2VfZGVmYXVsdF9tYXA9VHJ1ZSk6CisgICAgICAgICIiIkNyZWF0ZSBhIGhlYWRlcl9mYWN0b3J5IHRoYXQgd29ya3Mgd2l0aCB0aGUgUG9saWN5IEFQSS4KKworICAgICAgICBiYXNlX2NsYXNzIGlzIHRoZSBjbGFzcyB0aGF0IHdpbGwgYmUgdGhlIGxhc3QgY2xhc3MgaW4gdGhlIGNyZWF0ZWQKKyAgICAgICAgaGVhZGVyIGNsYXNzJ3MgX19iYXNlc19fIGxpc3QuICBkZWZhdWx0X2NsYXNzIGlzIHRoZSBjbGFzcyB0aGF0IHdpbGwgYmUKKyAgICAgICAgdXNlZCBpZiAibmFtZSIgKHNlZSBfX2NhbGxfXykgZG9lcyBub3QgYXBwZWFyIGluIHRoZSByZWdpc3RyeS4KKyAgICAgICAgdXNlX2RlZmF1bHRfbWFwIGNvbnRyb2xzIHdoZXRoZXIgb3Igbm90IHRoZSBkZWZhdWx0IG1hcHBpbmcgb2YgbmFtZXMgdG8KKyAgICAgICAgc3BlY2lhbGl6ZWQgY2xhc3NlcyBpcyBjb3BpZWQgaW4gdG8gdGhlIHJlZ2lzdHJ5IHdoZW4gdGhlIGZhY3RvcnkgaXMKKyAgICAgICAgY3JlYXRlZC4gIFRoZSBkZWZhdWx0IGlzIFRydWUuCisKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYucmVnaXN0cnkgPSB7fQorICAgICAgICBzZWxmLmJhc2VfY2xhc3MgPSBiYXNlX2NsYXNzCisgICAgICAgIHNlbGYuZGVmYXVsdF9jbGFzcyA9IGRlZmF1bHRfY2xhc3MKKyAgICAgICAgaWYgdXNlX2RlZmF1bHRfbWFwOgorICAgICAgICAgICAgc2VsZi5yZWdpc3RyeS51cGRhdGUoX2RlZmF1bHRfaGVhZGVyX21hcCkKKworICAgIGRlZiBtYXBfdG9fdHlwZShzZWxmLCBuYW1lLCBjbHMpOgorICAgICAgICAiIiJSZWdpc3RlciBjbHMgYXMgdGhlIHNwZWNpYWxpemVkIGNsYXNzIGZvciBoYW5kbGluZyAibmFtZSIgaGVhZGVycy4KKworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5yZWdpc3RyeVtuYW1lLmxvd2VyKCldID0gY2xzCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgbmFtZSk6CisgICAgICAgIGNscyA9IHNlbGYucmVnaXN0cnkuZ2V0KG5hbWUubG93ZXIoKSwgc2VsZi5kZWZhdWx0X2NsYXNzKQorICAgICAgICByZXR1cm4gdHlwZSgnXycrY2xzLl9fbmFtZV9fLCAoY2xzLCBzZWxmLmJhc2VfY2xhc3MpLCB7fSkKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICIiIkNyZWF0ZSBhIGhlYWRlciBpbnN0YW5jZSBmb3IgaGVhZGVyICduYW1lJyBmcm9tICd2YWx1ZScuCisKKyAgICAgICAgQ3JlYXRlcyBhIGhlYWRlciBpbnN0YW5jZSBieSBjcmVhdGluZyBhIHNwZWNpYWxpemVkIGNsYXNzIGZvciBwYXJzaW5nCisgICAgICAgIGFuZCByZXByZXNlbnRpbmcgdGhlIHNwZWNpZmllZCBoZWFkZXIgYnkgY29tYmluaW5nIHRoZSBmYWN0b3J5CisgICAgICAgIGJhc2VfY2xhc3Mgd2l0aCBhIHNwZWNpYWxpemVkIGNsYXNzIGZyb20gdGhlIHJlZ2lzdHJ5IG9yIHRoZQorICAgICAgICBkZWZhdWx0X2NsYXNzLCBhbmQgcGFzc2luZyB0aGUgbmFtZSBhbmQgdmFsdWUgdG8gdGhlIGNvbnN0cnVjdGVkCisgICAgICAgIGNsYXNzJ3MgY29uc3RydWN0b3IuCisKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmW25hbWVdKG5hbWUsIHZhbHVlKQpkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL21lc3NhZ2UucHkgYi9MaWIvZW1haWwvbWVzc2FnZS5weQppbmRleCBmMWZmY2RiLi4zZmVhYjUyIDEwMDY0NAotLS0gYS9MaWIvZW1haWwvbWVzc2FnZS5weQorKysgYi9MaWIvZW1haWwvbWVzc2FnZS5weQpAQCAtMTAsMTQgKzEwLDE0IEBACiBpbXBvcnQgdXUKIGltcG9ydCBiYXNlNjQKIGltcG9ydCBiaW5hc2NpaQotaW1wb3J0IHdhcm5pbmdzCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPLCBTdHJpbmdJTwogCiAjIEludHJhcGFja2FnZSBpbXBvcnRzCiBmcm9tIGVtYWlsIGltcG9ydCB1dGlscwogZnJvbSBlbWFpbCBpbXBvcnQgZXJyb3JzCi1mcm9tIGVtYWlsIGltcG9ydCBoZWFkZXIKK2Zyb20gZW1haWwuX3BvbGljeWJhc2UgaW1wb3J0IGNvbXBhdDMyCiBmcm9tIGVtYWlsIGltcG9ydCBjaGFyc2V0IGFzIF9jaGFyc2V0Citmcm9tIGVtYWlsLl9lbmNvZGVkX3dvcmRzIGltcG9ydCBkZWNvZGVfYgogQ2hhcnNldCA9IF9jaGFyc2V0LkNoYXJzZXQKIAogU0VNSVNQQUNFID0gJzsgJwpAQCAtMjYsMjQgKzI2LDYgQEAKICMgZXhpc3RlbmNlIG9mIHdoaWNoIGZvcmNlIHF1b3Rpbmcgb2YgdGhlIHBhcmFtZXRlciB2YWx1ZS4KIHRzcGVjaWFscyA9IHJlLmNvbXBpbGUocidbIFwoXCk8PkAsOzpcXCIvXFtcXVw/PV0nKQogCi0jIEhvdyB0byBmaWd1cmUgb3V0IGlmIHdlIGFyZSBwcm9jZXNzaW5nIHN0cmluZ3MgdGhhdCBjb21lIGZyb20gYSBieXRlCi0jIHNvdXJjZSB3aXRoIHVuZGVjb2RhYmxlIGNoYXJhY3RlcnMuCi1faGFzX3N1cnJvZ2F0ZXMgPSByZS5jb21waWxlKAotICAgICcoW15cdWQ4MDAtXHVkYmZmXXxcQSlbXHVkYzAwLVx1ZGZmZl0oW15cdWRjMDAtXHVkZmZmXXxcWiknKS5zZWFyY2gKLQotCi0jIEhlbHBlciBmdW5jdGlvbnMKLWRlZiBfc2FuaXRpemVfaGVhZGVyKG5hbWUsIHZhbHVlKToKLSAgICAjIElmIHRoZSBoZWFkZXIgdmFsdWUgY29udGFpbnMgc3Vycm9nYXRlcywgcmV0dXJuIGEgSGVhZGVyIHVzaW5nCi0gICAgIyB0aGUgdW5rbm93bi04Yml0IGNoYXJzZXQgdG8gZW5jb2RlIHRoZSBieXRlcyBhcyBlbmNvZGVkIHdvcmRzLgotICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgotICAgICAgICAjIEFzc3VtZSBpdCBpcyBhbHJlYWR5IGEgaGVhZGVyIG9iamVjdAotICAgICAgICByZXR1cm4gdmFsdWUKLSAgICBpZiBfaGFzX3N1cnJvZ2F0ZXModmFsdWUpOgotICAgICAgICByZXR1cm4gaGVhZGVyLkhlYWRlcih2YWx1ZSwgY2hhcnNldD1fY2hhcnNldC5VTktOT1dOOEJJVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX25hbWU9bmFtZSkKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gdmFsdWUKIAogZGVmIF9zcGxpdHBhcmFtKHBhcmFtKToKICAgICAjIFNwbGl0IGhlYWRlciBwYXJhbWV0ZXJzLiAgQkFXOiB0aGlzIG1heSBiZSB0b28gc2ltcGxlLiAgSXQgaXNuJ3QKQEAgLTEzNiw3ICsxMTgsOCBAQAogICAgIHlvdSBtdXN0IHVzZSB0aGUgZXhwbGljaXQgQVBJIHRvIHNldCBvciBnZXQgYWxsIHRoZSBoZWFkZXJzLiAgTm90IGFsbCBvZgogICAgIHRoZSBtYXBwaW5nIG1ldGhvZHMgYXJlIGltcGxlbWVudGVkLgogICAgICIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcG9saWN5PWNvbXBhdDMyKToKKyAgICAgICAgc2VsZi5wb2xpY3kgPSBwb2xpY3kKICAgICAgICAgc2VsZi5faGVhZGVycyA9IFtdCiAgICAgICAgIHNlbGYuX3VuaXhmcm9tID0gTm9uZQogICAgICAgICBzZWxmLl9wYXlsb2FkID0gTm9uZQpAQCAtMjQ2LDcgKzIyOSw3IEBACiAgICAgICAgIGN0ZSA9IHN0cihzZWxmLmdldCgnY29udGVudC10cmFuc2Zlci1lbmNvZGluZycsICcnKSkubG93ZXIoKQogICAgICAgICAjIHBheWxvYWQgbWF5IGJlIGJ5dGVzIGhlcmUuCiAgICAgICAgIGlmIGlzaW5zdGFuY2UocGF5bG9hZCwgc3RyKToKLSAgICAgICAgICAgIGlmIF9oYXNfc3Vycm9nYXRlcyhwYXlsb2FkKToKKyAgICAgICAgICAgIGlmIHV0aWxzLl9oYXNfc3Vycm9nYXRlcyhwYXlsb2FkKToKICAgICAgICAgICAgICAgICBicGF5bG9hZCA9IHBheWxvYWQuZW5jb2RlKCdhc2NpaScsICdzdXJyb2dhdGVlc2NhcGUnKQogICAgICAgICAgICAgICAgIGlmIG5vdCBkZWNvZGU6CiAgICAgICAgICAgICAgICAgICAgIHRyeToKQEAgLTI2NywxMSArMjUwLDEyIEBACiAgICAgICAgIGlmIGN0ZSA9PSAncXVvdGVkLXByaW50YWJsZSc6CiAgICAgICAgICAgICByZXR1cm4gdXRpbHMuX3FkZWNvZGUoYnBheWxvYWQpCiAgICAgICAgIGVsaWYgY3RlID09ICdiYXNlNjQnOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJldHVybiBiYXNlNjQuYjY0ZGVjb2RlKGJwYXlsb2FkKQotICAgICAgICAgICAgZXhjZXB0IGJpbmFzY2lpLkVycm9yOgotICAgICAgICAgICAgICAgICMgSW5jb3JyZWN0IHBhZGRpbmcKLSAgICAgICAgICAgICAgICByZXR1cm4gYnBheWxvYWQKKyAgICAgICAgICAgICMgWFhYOiB0aGlzIGlzIGEgYml0IG9mIGEgaGFjazsgZGVjb2RlX2Igc2hvdWxkIHByb2JhYmx5IGJlIGZhY3RvcmVkCisgICAgICAgICAgICAjIG91dCBzb21ld2hlcmUsIGJ1dCBJIGhhdmVuJ3QgZmlndXJlZCBvdXQgd2hlcmUgeWV0LgorICAgICAgICAgICAgdmFsdWUsIGRlZmVjdHMgPSBkZWNvZGVfYihiJycuam9pbihicGF5bG9hZC5zcGxpdGxpbmVzKCkpKQorICAgICAgICAgICAgZm9yIGRlZmVjdCBpbiBkZWZlY3RzOgorICAgICAgICAgICAgICAgIHNlbGYucG9saWN5LmhhbmRsZV9kZWZlY3Qoc2VsZiwgZGVmZWN0KQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlCiAgICAgICAgIGVsaWYgY3RlIGluICgneC11dWVuY29kZScsICd1dWVuY29kZScsICd1dWUnLCAneC11dWUnKToKICAgICAgICAgICAgIGluX2ZpbGUgPSBCeXRlc0lPKGJwYXlsb2FkKQogICAgICAgICAgICAgb3V0X2ZpbGUgPSBCeXRlc0lPKCkKQEAgLTM2Miw3ICszNDYsMTcgQEAKICAgICAgICAgTm90ZTogdGhpcyBkb2VzIG5vdCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgaGVhZGVyIHdpdGggdGhlIHNhbWUgZmllbGQKICAgICAgICAgbmFtZS4gIFVzZSBfX2RlbGl0ZW1fXygpIGZpcnN0IHRvIGRlbGV0ZSBhbnkgZXhpc3RpbmcgaGVhZGVycy4KICAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX2hlYWRlcnMuYXBwZW5kKChuYW1lLCB2YWwpKQorICAgICAgICBtYXhfY291bnQgPSBzZWxmLnBvbGljeS5oZWFkZXJfbWF4X2NvdW50KG5hbWUpCisgICAgICAgIGlmIG1heF9jb3VudDoKKyAgICAgICAgICAgIGxuYW1lID0gbmFtZS5sb3dlcigpCisgICAgICAgICAgICBmb3VuZCA9IDAKKyAgICAgICAgICAgIGZvciBrLCB2IGluIHNlbGYuX2hlYWRlcnM6CisgICAgICAgICAgICAgICAgaWYgay5sb3dlcigpID09IGxuYW1lOgorICAgICAgICAgICAgICAgICAgICBmb3VuZCArPSAxCisgICAgICAgICAgICAgICAgICAgIGlmIGZvdW5kID49IG1heF9jb3VudDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlRoZXJlIG1heSBiZSBhdCBtb3N0IHt9IHt9IGhlYWRlcnMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW4gYSBtZXNzYWdlIi5mb3JtYXQobWF4X2NvdW50LCBuYW1lKSkKKyAgICAgICAgc2VsZi5faGVhZGVycy5hcHBlbmQoc2VsZi5wb2xpY3kuaGVhZGVyX3N0b3JlX3BhcnNlKG5hbWUsIHZhbCkpCiAKICAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwgbmFtZSk6CiAgICAgICAgICIiIkRlbGV0ZSBhbGwgb2NjdXJyZW5jZXMgb2YgYSBoZWFkZXIsIGlmIHByZXNlbnQuCkBAIC00MDEsNyArMzk1LDggQEAKICAgICAgICAgQW55IGZpZWxkcyBkZWxldGVkIGFuZCByZS1pbnNlcnRlZCBhcmUgYWx3YXlzIGFwcGVuZGVkIHRvIHRoZSBoZWFkZXIKICAgICAgICAgbGlzdC4KICAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBbX3Nhbml0aXplX2hlYWRlcihrLCB2KSBmb3IgaywgdiBpbiBzZWxmLl9oZWFkZXJzXQorICAgICAgICByZXR1cm4gW3NlbGYucG9saWN5LmhlYWRlcl9mZXRjaF9wYXJzZShrLCB2KQorICAgICAgICAgICAgICAgIGZvciBrLCB2IGluIHNlbGYuX2hlYWRlcnNdCiAKICAgICBkZWYgaXRlbXMoc2VsZik6CiAgICAgICAgICIiIkdldCBhbGwgdGhlIG1lc3NhZ2UncyBoZWFkZXIgZmllbGRzIGFuZCB2YWx1ZXMuCkBAIC00MTEsNyArNDA2LDggQEAKICAgICAgICAgQW55IGZpZWxkcyBkZWxldGVkIGFuZCByZS1pbnNlcnRlZCBhcmUgYWx3YXlzIGFwcGVuZGVkIHRvIHRoZSBoZWFkZXIKICAgICAgICAgbGlzdC4KICAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBbKGssIF9zYW5pdGl6ZV9oZWFkZXIoaywgdikpIGZvciBrLCB2IGluIHNlbGYuX2hlYWRlcnNdCisgICAgICAgIHJldHVybiBbKGssIHNlbGYucG9saWN5LmhlYWRlcl9mZXRjaF9wYXJzZShrLCB2KSkKKyAgICAgICAgICAgICAgICBmb3IgaywgdiBpbiBzZWxmLl9oZWFkZXJzXQogCiAgICAgZGVmIGdldChzZWxmLCBuYW1lLCBmYWlsb2JqPU5vbmUpOgogICAgICAgICAiIiJHZXQgYSBoZWFkZXIgdmFsdWUuCkBAIC00MjIsMTAgKzQxOCwyOSBAQAogICAgICAgICBuYW1lID0gbmFtZS5sb3dlcigpCiAgICAgICAgIGZvciBrLCB2IGluIHNlbGYuX2hlYWRlcnM6CiAgICAgICAgICAgICBpZiBrLmxvd2VyKCkgPT0gbmFtZToKLSAgICAgICAgICAgICAgICByZXR1cm4gX3Nhbml0aXplX2hlYWRlcihrLCB2KQorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnBvbGljeS5oZWFkZXJfZmV0Y2hfcGFyc2UoaywgdikKICAgICAgICAgcmV0dXJuIGZhaWxvYmoKIAogICAgICMKKyAgICAjICJJbnRlcm5hbCIgbWV0aG9kcyAocHVibGljIEFQSSwgYnV0IG9ubHkgaW50ZW5kZWQgZm9yIHVzZSBieSBhIHBhcnNlcgorICAgICMgb3IgZ2VuZXJhdG9yLCBub3Qgbm9ybWFsIGFwcGxpY2F0aW9uIGNvZGUuCisgICAgIworCisgICAgZGVmIHNldF9yYXcoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICAiIiJTdG9yZSBuYW1lIGFuZCB2YWx1ZSBpbiB0aGUgbW9kZWwgd2l0aG91dCBtb2RpZmljYXRpb24uCisKKyAgICAgICAgVGhpcyBpcyBhbiAiaW50ZXJuYWwiIEFQSSwgaW50ZW5kZWQgb25seSBmb3IgdXNlIGJ5IGEgcGFyc2VyLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5faGVhZGVycy5hcHBlbmQoKG5hbWUsIHZhbHVlKSkKKworICAgIGRlZiByYXdfaXRlbXMoc2VsZik6CisgICAgICAgICIiIlJldHVybiB0aGUgKG5hbWUsIHZhbHVlKSBoZWFkZXIgcGFpcnMgd2l0aG91dCBtb2RpZmljYXRpb24uCisKKyAgICAgICAgVGhpcyBpcyBhbiAiaW50ZXJuYWwiIEFQSSwgaW50ZW5kZWQgb25seSBmb3IgdXNlIGJ5IGEgZ2VuZXJhdG9yLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGl0ZXIoc2VsZi5faGVhZGVycy5jb3B5KCkpCisKKyAgICAjCiAgICAgIyBBZGRpdGlvbmFsIHVzZWZ1bCBzdHVmZgogICAgICMKIApAQCAtNDQyLDcgKzQ1Nyw3IEBACiAgICAgICAgIG5hbWUgPSBuYW1lLmxvd2VyKCkKICAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5faGVhZGVyczoKICAgICAgICAgICAgIGlmIGsubG93ZXIoKSA9PSBuYW1lOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoX3Nhbml0aXplX2hlYWRlcihrLCB2KSkKKyAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHNlbGYucG9saWN5LmhlYWRlcl9mZXRjaF9wYXJzZShrLCB2KSkKICAgICAgICAgaWYgbm90IHZhbHVlczoKICAgICAgICAgICAgIHJldHVybiBmYWlsb2JqCiAgICAgICAgIHJldHVybiB2YWx1ZXMKQEAgLTQ3NSw3ICs0OTAsNyBAQAogICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChfZm9ybWF0cGFyYW0oay5yZXBsYWNlKCdfJywgJy0nKSwgdikpCiAgICAgICAgIGlmIF92YWx1ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHBhcnRzLmluc2VydCgwLCBfdmFsdWUpCi0gICAgICAgIHNlbGYuX2hlYWRlcnMuYXBwZW5kKChfbmFtZSwgU0VNSVNQQUNFLmpvaW4ocGFydHMpKSkKKyAgICAgICAgc2VsZltfbmFtZV0gPSBTRU1JU1BBQ0Uuam9pbihwYXJ0cykKIAogICAgIGRlZiByZXBsYWNlX2hlYWRlcihzZWxmLCBfbmFtZSwgX3ZhbHVlKToKICAgICAgICAgIiIiUmVwbGFjZSBhIGhlYWRlci4KQEAgLTQ4Nyw3ICs1MDIsNyBAQAogICAgICAgICBfbmFtZSA9IF9uYW1lLmxvd2VyKCkKICAgICAgICAgZm9yIGksIChrLCB2KSBpbiB6aXAocmFuZ2UobGVuKHNlbGYuX2hlYWRlcnMpKSwgc2VsZi5faGVhZGVycyk6CiAgICAgICAgICAgICBpZiBrLmxvd2VyKCkgPT0gX25hbWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5faGVhZGVyc1tpXSA9IChrLCBfdmFsdWUpCisgICAgICAgICAgICAgICAgc2VsZi5faGVhZGVyc1tpXSA9IHNlbGYucG9saWN5LmhlYWRlcl9zdG9yZV9wYXJzZShrLCBfdmFsdWUpCiAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlIEtleUVycm9yKF9uYW1lKQpAQCAtODAzLDcgKzgxOCw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoaykKICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgnJXM9JXMnICUgKGssIHYpKQotICAgICAgICAgICAgICAgIG5ld2hlYWRlcnMuYXBwZW5kKChoLCBTRU1JU1BBQ0Uuam9pbihwYXJ0cykpKQorICAgICAgICAgICAgICAgIHZhbCA9IFNFTUlTUEFDRS5qb2luKHBhcnRzKQorICAgICAgICAgICAgICAgIG5ld2hlYWRlcnMuYXBwZW5kKHNlbGYucG9saWN5LmhlYWRlcl9zdG9yZV9wYXJzZShoLCB2YWwpKQogCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIG5ld2hlYWRlcnMuYXBwZW5kKChoLCB2KSkKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9taW1lL3RleHQucHkgYi9MaWIvZW1haWwvbWltZS90ZXh0LnB5CmluZGV4IDU3NDdkYjUuLjgwZmY5NTAgMTAwNjQ0Ci0tLSBhL0xpYi9lbWFpbC9taW1lL3RleHQucHkKKysrIGIvTGliL2VtYWlsL21pbWUvdGV4dC5weQpAQCAtMTQsNyArMTQsNyBAQAogY2xhc3MgTUlNRVRleHQoTUlNRU5vbk11bHRpcGFydCk6CiAgICAgIiIiQ2xhc3MgZm9yIGdlbmVyYXRpbmcgdGV4dC8qIHR5cGUgTUlNRSBkb2N1bWVudHMuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgX3RleHQsIF9zdWJ0eXBlPSdwbGFpbicsIF9jaGFyc2V0PSd1cy1hc2NpaScpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBfdGV4dCwgX3N1YnR5cGU9J3BsYWluJywgX2NoYXJzZXQ9Tm9uZSk6CiAgICAgICAgICIiIkNyZWF0ZSBhIHRleHQvKiB0eXBlIE1JTUUgZG9jdW1lbnQuCiAKICAgICAgICAgX3RleHQgaXMgdGhlIHN0cmluZyBmb3IgdGhpcyBtZXNzYWdlIG9iamVjdC4KQEAgLTI1LDYgKzI1LDE4IEBACiAgICAgICAgIGhlYWRlci4gIFRoaXMgZGVmYXVsdHMgdG8gInVzLWFzY2lpIi4gIE5vdGUgdGhhdCBhcyBhIHNpZGUtZWZmZWN0LCB0aGUKICAgICAgICAgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZyBoZWFkZXIgd2lsbCBhbHNvIGJlIHNldC4KICAgICAgICAgIiIiCisKKyAgICAgICAgIyBJZiBubyBfY2hhcnNldCB3YXMgc3BlY2lmaWVkLCBjaGVjayB0byBzZWUgc2VlIGlmIHRoZXJlIGFyZSBub24tYXNjaWkKKyAgICAgICAgIyBjaGFyYWN0ZXJzIHByZXNlbnQuIElmIG5vdCwgdXNlICd1cy1hc2NpaScsIG90aGVyd2lzZSB1c2UgdXRmLTguCisgICAgICAgICMgWFhYOiBUaGlzIGNhbiBiZSByZW1vdmVkIG9uY2UgIzczMDQgaXMgZml4ZWQuCisgICAgICAgIGlmIF9jaGFyc2V0IGlzIE5vbmU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgX3RleHQuZW5jb2RlKCd1cy1hc2NpaScpCisgICAgICAgICAgICAgICAgX2NoYXJzZXQgPSAndXMtYXNjaWknCisgICAgICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAgICAgICAgIF9jaGFyc2V0ID0gJ3V0Zi04JworCiAgICAgICAgIE1JTUVOb25NdWx0aXBhcnQuX19pbml0X18oc2VsZiwgJ3RleHQnLCBfc3VidHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKnsnY2hhcnNldCc6IF9jaGFyc2V0fSkKKwogICAgICAgICBzZWxmLnNldF9wYXlsb2FkKF90ZXh0LCBfY2hhcnNldCkKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9wYXJzZXIucHkgYi9MaWIvZW1haWwvcGFyc2VyLnB5CmluZGV4IDFjOTMxZWEuLjFhYWIwMTIgMTAwNjQ0Ci0tLSBhL0xpYi9lbWFpbC9wYXJzZXIucHkKKysrIGIvTGliL2VtYWlsL3BhcnNlci5weQpAQCAtNCwxOCArNCwxOSBAQAogCiAiIiJBIHBhcnNlciBvZiBSRkMgMjgyMiBhbmQgTUlNRSBlbWFpbCBtZXNzYWdlcy4iIiIKIAotX19hbGxfXyA9IFsnUGFyc2VyJywgJ0hlYWRlclBhcnNlcicsICdCeXRlc1BhcnNlciddCitfX2FsbF9fID0gWydQYXJzZXInLCAnSGVhZGVyUGFyc2VyJywgJ0J5dGVzUGFyc2VyJywgJ0J5dGVzSGVhZGVyUGFyc2VyJ10KIAogaW1wb3J0IHdhcm5pbmdzCiBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTywgVGV4dElPV3JhcHBlcgogCiBmcm9tIGVtYWlsLmZlZWRwYXJzZXIgaW1wb3J0IEZlZWRQYXJzZXIKIGZyb20gZW1haWwubWVzc2FnZSBpbXBvcnQgTWVzc2FnZQorZnJvbSBlbWFpbC5fcG9saWN5YmFzZSBpbXBvcnQgY29tcGF0MzIKIAogCiAMCiBjbGFzcyBQYXJzZXI6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3cyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIF9jbGFzcz1NZXNzYWdlLCAqLCBwb2xpY3k9Y29tcGF0MzIpOgogICAgICAgICAiIiJQYXJzZXIgb2YgUkZDIDI4MjIgYW5kIE1JTUUgZW1haWwgbWVzc2FnZXMuCiAKICAgICAgICAgQ3JlYXRlcyBhbiBpbi1tZW1vcnkgb2JqZWN0IHRyZWUgcmVwcmVzZW50aW5nIHRoZSBlbWFpbCBtZXNzYWdlLCB3aGljaApAQCAtMzAsMjggKzMxLDE0IEBACiAgICAgICAgIF9jbGFzcyBpcyB0aGUgY2xhc3MgdG8gaW5zdGFudGlhdGUgZm9yIG5ldyBtZXNzYWdlIG9iamVjdHMgd2hlbiB0aGV5CiAgICAgICAgIG11c3QgYmUgY3JlYXRlZC4gIFRoaXMgY2xhc3MgbXVzdCBoYXZlIGEgY29uc3RydWN0b3IgdGhhdCBjYW4gdGFrZQogICAgICAgICB6ZXJvIGFyZ3VtZW50cy4gIERlZmF1bHQgaXMgTWVzc2FnZS5NZXNzYWdlLgorCisgICAgICAgIFRoZSBwb2xpY3kga2V5d29yZCBzcGVjaWZpZXMgYSBwb2xpY3kgb2JqZWN0IHRoYXQgY29udHJvbHMgYSBudW1iZXIgb2YKKyAgICAgICAgYXNwZWN0cyBvZiB0aGUgcGFyc2VyJ3Mgb3BlcmF0aW9uLiAgVGhlIGRlZmF1bHQgcG9saWN5IG1haW50YWlucworICAgICAgICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LgorCiAgICAgICAgICIiIgotICAgICAgICBpZiBsZW4oYXJncykgPj0gMToKLSAgICAgICAgICAgIGlmICdfY2xhc3MnIGluIGt3czoKLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIk11bHRpcGxlIHZhbHVlcyBmb3Iga2V5d29yZCBhcmcgJ19jbGFzcyciKQotICAgICAgICAgICAga3dzWydfY2xhc3MnXSA9IGFyZ3NbMF0KLSAgICAgICAgaWYgbGVuKGFyZ3MpID09IDI6Ci0gICAgICAgICAgICBpZiAnc3RyaWN0JyBpbiBrd3M6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJNdWx0aXBsZSB2YWx1ZXMgZm9yIGtleXdvcmQgYXJnICdzdHJpY3QnIikKLSAgICAgICAgICAgIGt3c1snc3RyaWN0J10gPSBhcmdzWzFdCi0gICAgICAgIGlmIGxlbihhcmdzKSA+IDI6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ1RvbyBtYW55IGFyZ3VtZW50cycpCi0gICAgICAgIGlmICdfY2xhc3MnIGluIGt3czoKLSAgICAgICAgICAgIHNlbGYuX2NsYXNzID0ga3dzWydfY2xhc3MnXQotICAgICAgICAgICAgZGVsIGt3c1snX2NsYXNzJ10KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2NsYXNzID0gTWVzc2FnZQotICAgICAgICBpZiAnc3RyaWN0JyBpbiBrd3M6Ci0gICAgICAgICAgICB3YXJuaW5ncy53YXJuKCInc3RyaWN0JyBhcmd1bWVudCBpcyBkZXByZWNhdGVkIChhbmQgaWdub3JlZCkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCi0gICAgICAgICAgICBkZWwga3dzWydzdHJpY3QnXQotICAgICAgICBpZiBrd3M6Ci0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ1VuZXhwZWN0ZWQga2V5d29yZCBhcmd1bWVudHMnKQorICAgICAgICBzZWxmLl9jbGFzcyA9IF9jbGFzcworICAgICAgICBzZWxmLnBvbGljeSA9IHBvbGljeQogCiAgICAgZGVmIHBhcnNlKHNlbGYsIGZwLCBoZWFkZXJzb25seT1GYWxzZSk6CiAgICAgICAgICIiIkNyZWF0ZSBhIG1lc3NhZ2Ugc3RydWN0dXJlIGZyb20gdGhlIGRhdGEgaW4gYSBmaWxlLgpAQCAtNjEsNyArNDgsNyBAQAogICAgICAgICBwYXJzaW5nIGFmdGVyIHJlYWRpbmcgdGhlIGhlYWRlcnMgb3Igbm90LiAgVGhlIGRlZmF1bHQgaXMgRmFsc2UsCiAgICAgICAgIG1lYW5pbmcgaXQgcGFyc2VzIHRoZSBlbnRpcmUgY29udGVudHMgb2YgdGhlIGZpbGUuCiAgICAgICAgICIiIgotICAgICAgICBmZWVkcGFyc2VyID0gRmVlZFBhcnNlcihzZWxmLl9jbGFzcykKKyAgICAgICAgZmVlZHBhcnNlciA9IEZlZWRQYXJzZXIoc2VsZi5fY2xhc3MsIHBvbGljeT1zZWxmLnBvbGljeSkKICAgICAgICAgaWYgaGVhZGVyc29ubHk6CiAgICAgICAgICAgICBmZWVkcGFyc2VyLl9zZXRfaGVhZGVyc29ubHkoKQogICAgICAgICB3aGlsZSBUcnVlOgpAQCAtMTM0LDMgKzEyMSwxMSBAQAogICAgICAgICAiIiIKICAgICAgICAgdGV4dCA9IHRleHQuZGVjb2RlKCdBU0NJSScsIGVycm9ycz0nc3Vycm9nYXRlZXNjYXBlJykKICAgICAgICAgcmV0dXJuIHNlbGYucGFyc2VyLnBhcnNlc3RyKHRleHQsIGhlYWRlcnNvbmx5KQorCisKK2NsYXNzIEJ5dGVzSGVhZGVyUGFyc2VyKEJ5dGVzUGFyc2VyKToKKyAgICBkZWYgcGFyc2Uoc2VsZiwgZnAsIGhlYWRlcnNvbmx5PVRydWUpOgorICAgICAgICByZXR1cm4gQnl0ZXNQYXJzZXIucGFyc2Uoc2VsZiwgZnAsIGhlYWRlcnNvbmx5PVRydWUpCisKKyAgICBkZWYgcGFyc2VieXRlcyhzZWxmLCB0ZXh0LCBoZWFkZXJzb25seT1UcnVlKToKKyAgICAgICAgcmV0dXJuIEJ5dGVzUGFyc2VyLnBhcnNlYnl0ZXMoc2VsZiwgdGV4dCwgaGVhZGVyc29ubHk9VHJ1ZSkKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC9wb2xpY3kucHkgYi9MaWIvZW1haWwvcG9saWN5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyY2FkMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvZW1haWwvcG9saWN5LnB5CkBAIC0wLDAgKzEsMTg4IEBACisiIiJUaGlzIHdpbGwgYmUgdGhlIGhvbWUgZm9yIHRoZSBwb2xpY3kgdGhhdCBob29rcyBpbiB0aGUgbmV3Citjb2RlIHRoYXQgYWRkcyBhbGwgdGhlIGVtYWlsNiBmZWF0dXJlcy4KKyIiIgorCitmcm9tIGVtYWlsLl9wb2xpY3liYXNlIGltcG9ydCBQb2xpY3ksIENvbXBhdDMyLCBjb21wYXQzMiwgX2V4dGVuZF9kb2NzdHJpbmdzCitmcm9tIGVtYWlsLnV0aWxzIGltcG9ydCBfaGFzX3N1cnJvZ2F0ZXMKK2Zyb20gZW1haWwuaGVhZGVycmVnaXN0cnkgaW1wb3J0IEhlYWRlclJlZ2lzdHJ5IGFzIEhlYWRlclJlZ2lzdHJ5CisKK19fYWxsX18gPSBbCisgICAgJ0NvbXBhdDMyJywKKyAgICAnY29tcGF0MzInLAorICAgICdQb2xpY3knLAorICAgICdFbWFpbFBvbGljeScsCisgICAgJ2RlZmF1bHQnLAorICAgICdzdHJpY3QnLAorICAgICdTTVRQJywKKyAgICAnSFRUUCcsCisgICAgXQorCitAX2V4dGVuZF9kb2NzdHJpbmdzCitjbGFzcyBFbWFpbFBvbGljeShQb2xpY3kpOgorCisgICAgIiIiKworICAgIFBST1ZJU0lPTkFMCisKKyAgICBUaGUgQVBJIGV4dGVuc2lvbnMgZW5hYmxlZCBieSB0aGlzIHRoaXMgcG9saWN5IGFyZSBjdXJyZW50bHkgcHJvdmlzaW9uYWwuCisgICAgUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIGRldGFpbHMuCisKKyAgICBUaGlzIHBvbGljeSBhZGRzIG5ldyBoZWFkZXIgcGFyc2luZyBhbmQgZm9sZGluZyBhbGdvcml0aG1zLiAgSW5zdGVhZCBvZgorICAgIHNpbXBsZSBzdHJpbmdzLCBoZWFkZXJzIGFyZSBjdXN0b20gb2JqZWN0cyB3aXRoIGN1c3RvbSBhdHRyaWJ1dGVzCisgICAgZGVwZW5kaW5nIG9uIHRoZSB0eXBlIG9mIHRoZSBmaWVsZC4gIFRoZSBmb2xkaW5nIGFsZ29yaXRobSBmdWxseQorICAgIGltcGxlbWVudHMgUkZDcyAyMDQ3IGFuZCA1MzIyLgorCisgICAgSW4gYWRkaXRpb24gdG8gdGhlIHNldHRhYmxlIGF0dHJpYnV0ZXMgbGlzdGVkIGFib3ZlIHRoYXQgYXBwbHkgdG8KKyAgICBhbGwgUG9saWNpZXMsIHRoaXMgcG9saWN5IGFkZHMgdGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXM6CisKKyAgICByZWZvbGRfc291cmNlICAgICAgIC0tIGlmIHRoZSB2YWx1ZSBmb3IgYSBoZWFkZXIgaW4gdGhlIE1lc3NhZ2Ugb2JqZWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW1lIGZyb20gdGhlIHBhcnNpbmcgb2Ygc29tZSBzb3VyY2UsIHRoaXMgYXR0cmlidXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2F0ZXMgd2hldGhlciBvciBub3QgYSBnZW5lcmF0b3Igc2hvdWxkIHJlZm9sZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCB2YWx1ZSB3aGVuIHRyYW5zZm9ybWluZyB0aGUgbWVzc2FnZSBiYWNrIGludG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmVhbSBmb3JtLiAgVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmU6CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmUgIC0tIGFsbCBzb3VyY2UgdmFsdWVzIHVzZSBvcmlnaW5hbCBmb2xkaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nICAtLSBzb3VyY2UgdmFsdWVzIHRoYXQgaGF2ZSBhbnkgbGluZSB0aGF0IGlzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nZXIgdGhhbiBtYXhfbGluZV9sZW5ndGggd2lsbCBiZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmb2xkZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbCAgLS0gYWxsIHZhbHVlcyBhcmUgcmVmb2xkZWQuCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBkZWZhdWx0IGlzICdsb25nJy4KKworICAgIGhlYWRlcl9mYWN0b3J5ICAgICAgLS0gYSBjYWxsYWJsZSB0aGF0IHRha2VzIHR3byBhcmd1bWVudHMsICduYW1lJyBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZScsIHdoZXJlICduYW1lJyBpcyBhIGhlYWRlciBmaWVsZCBuYW1lIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJyBpcyBhbiB1bmZvbGRlZCBoZWFkZXIgZmllbGQgdmFsdWUsIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJucyBhIHN0cmluZy1saWtlIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyLiAgQSBkZWZhdWx0IGhlYWRlcl9mYWN0b3J5IGlzIHByb3ZpZGVkIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuZGVyc3RhbmRzIHNvbWUgb2YgdGhlIFJGQzUzMjIgaGVhZGVyIGZpZWxkIHR5cGVzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgKEN1cnJlbnRseSBhZGRyZXNzIGZpZWxkcyBhbmQgZGF0ZSBmaWVsZHMgaGF2ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY2lhbCB0cmVhdG1lbnQsIHdoaWxlIGFsbCBvdGhlciBmaWVsZHMgYXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVhdGVkIGFzIHVuc3RydWN0dXJlZC4gIFRoaXMgbGlzdCB3aWxsIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWQgYmVmb3JlIHRoZSBleHRlbnNpb24gaXMgbWFya2VkIHN0YWJsZS4pCisgICAgIiIiCisKKyAgICByZWZvbGRfc291cmNlID0gJ2xvbmcnCisgICAgaGVhZGVyX2ZhY3RvcnkgPSBIZWFkZXJSZWdpc3RyeSgpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiprdyk6CisgICAgICAgICMgRW5zdXJlIHRoYXQgZWFjaCBuZXcgaW5zdGFuY2UgZ2V0cyBhIHVuaXF1ZSBoZWFkZXIgZmFjdG9yeQorICAgICAgICAjIChhcyBvcHBvc2VkIHRvIGNsb25lcywgd2hpY2ggc2hhcmUgdGhlIGZhY3RvcnkpLgorICAgICAgICBpZiAnaGVhZGVyX2ZhY3RvcnknIG5vdCBpbiBrdzoKKyAgICAgICAgICAgIG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCAnaGVhZGVyX2ZhY3RvcnknLCBIZWFkZXJSZWdpc3RyeSgpKQorICAgICAgICBzdXBlcigpLl9faW5pdF9fKCoqa3cpCisKKyAgICBkZWYgaGVhZGVyX21heF9jb3VudChzZWxmLCBuYW1lKToKKyAgICAgICAgIiIiKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gZm9yIHRoaXMgY2xhc3MgcmV0dXJucyB0aGUgbWF4X2NvdW50IGF0dHJpYnV0ZSBmcm9tCisgICAgICAgIHRoZSBzcGVjaWFsaXplZCBoZWFkZXIgY2xhc3MgdGhhdCB3b3VsZCBiZSB1c2VkIHRvIGNvbnN0cnVjdCBhIGhlYWRlcgorICAgICAgICBvZiB0eXBlICduYW1lJy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLmhlYWRlcl9mYWN0b3J5W25hbWVdLm1heF9jb3VudAorCisgICAgIyBUaGUgbG9naWMgb2YgdGhlIG5leHQgdGhyZWUgbWV0aG9kcyBpcyBjaG9zZW4gc3VjaCB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvCisgICAgIyBzd2l0Y2ggYSBNZXNzYWdlIG9iamVjdCBiZXR3ZWVuIGEgQ29tcGF0MzIgcG9saWN5IGFuZCBhIHBvbGljeSBkZXJpdmVkCisgICAgIyBmcm9tIHRoaXMgY2xhc3MgYW5kIGhhdmUgdGhlIHJlc3VsdHMgc3RheSBjb25zaXN0ZW50LiAgVGhpcyBhbGxvd3MgYQorICAgICMgTWVzc2FnZSBvYmplY3QgY29uc3RydWN0ZWQgd2l0aCB0aGlzIHBvbGljeSB0byBiZSBwYXNzZWQgdG8gYSBsaWJyYXJ5CisgICAgIyB0aGF0IG9ubHkgaGFuZGxlcyBDb21wYXQzMiBvYmplY3RzLCBvciB0byByZWNlaXZlIHN1Y2ggYW4gb2JqZWN0IGFuZAorICAgICMgY29udmVydCBpdCB0byB1c2UgdGhlIG5ld2VyIHN0eWxlIGJ5IGp1c3QgY2hhbmdpbmcgaXRzIHBvbGljeS4gIEl0IGlzCisgICAgIyBhbHNvIGNob3NlbiBiZWNhdXNlIGl0IHBvc3Rwb25lcyB0aGUgcmVsYXRpdmVseSBleHBlbnNpdmUgZnVsbCByZmM1MzIyCisgICAgIyBwYXJzZSB1bnRpbCBhcyBsYXRlIGFzIHBvc3NpYmxlIHdoZW4gcGFyc2luZyBmcm9tIHNvdXJjZSwgc2luY2UgaW4gbWFueQorICAgICMgYXBwbGljYXRpb25zIG9ubHkgYSBmZXcgaGVhZGVycyB3aWxsIGFjdHVhbGx5IGJlIGluc3BlY3RlZC4KKworICAgIGRlZiBoZWFkZXJfc291cmNlX3BhcnNlKHNlbGYsIHNvdXJjZWxpbmVzKToKKyAgICAgICAgIiIiKworICAgICAgICBUaGUgbmFtZSBpcyBwYXJzZWQgYXMgZXZlcnl0aGluZyB1cCB0byB0aGUgJzonIGFuZCByZXR1cm5lZCB1bm1vZGlmaWVkLgorICAgICAgICBUaGUgdmFsdWUgaXMgZGV0ZXJtaW5lZCBieSBzdHJpcHBpbmcgbGVhZGluZyB3aGl0ZXNwYWNlIG9mZiB0aGUKKyAgICAgICAgcmVtYWluZGVyIG9mIHRoZSBmaXJzdCBsaW5lLCBqb2luaW5nIGFsbCBzdWJzZXF1ZW50IGxpbmVzIHRvZ2V0aGVyLCBhbmQKKyAgICAgICAgc3RyaXBwaW5nIGFueSB0cmFpbGluZyBjYXJyaWFnZSByZXR1cm4gb3IgbGluZWZlZWQgY2hhcmFjdGVycy4gIChUaGlzCisgICAgICAgIGlzIHRoZSBzYW1lIGFzIENvbXBhdDMyKS4KKworICAgICAgICAiIiIKKyAgICAgICAgbmFtZSwgdmFsdWUgPSBzb3VyY2VsaW5lc1swXS5zcGxpdCgnOicsIDEpCisgICAgICAgIHZhbHVlID0gdmFsdWUubHN0cmlwKCcgXHQnKSArICcnLmpvaW4oc291cmNlbGluZXNbMTpdKQorICAgICAgICByZXR1cm4gKG5hbWUsIHZhbHVlLnJzdHJpcCgnXHJcbicpKQorCisgICAgZGVmIGhlYWRlcl9zdG9yZV9wYXJzZShzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgICIiIisKKyAgICAgICAgVGhlIG5hbWUgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLiAgSWYgdGhlIGlucHV0IHZhbHVlIGhhcyBhICduYW1lJworICAgICAgICBhdHRyaWJ1dGUgYW5kIGl0IG1hdGNoZXMgdGhlIG5hbWUgaWdub3JpbmcgY2FzZSwgdGhlIHZhbHVlIGlzIHJldHVybmVkCisgICAgICAgIHVuY2hhbmdlZC4gIE90aGVyd2lzZSB0aGUgbmFtZSBhbmQgdmFsdWUgYXJlIHBhc3NlZCB0byBoZWFkZXJfZmFjdG9yeQorICAgICAgICBtZXRob2QsIGFuZCB0aGUgcmVzdWx0aW5nIGN1c3RvbSBoZWFkZXIgb2JqZWN0IGlzIHJldHVybmVkIGFzIHRoZQorICAgICAgICB2YWx1ZS4gIEluIHRoaXMgY2FzZSBhIFZhbHVlRXJyb3IgaXMgcmFpc2VkIGlmIHRoZSBpbnB1dCB2YWx1ZSBjb250YWlucworICAgICAgICBDUiBvciBMRiBjaGFyYWN0ZXJzLgorCisgICAgICAgICIiIgorICAgICAgICBpZiBoYXNhdHRyKHZhbHVlLCAnbmFtZScpIGFuZCB2YWx1ZS5uYW1lLmxvd2VyKCkgPT0gbmFtZS5sb3dlcigpOgorICAgICAgICAgICAgcmV0dXJuIChuYW1lLCB2YWx1ZSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgc3RyKSBhbmQgbGVuKHZhbHVlLnNwbGl0bGluZXMoKSk+MToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkhlYWRlciB2YWx1ZXMgbWF5IG5vdCBjb250YWluIGxpbmVmZWVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9yIGNhcnJpYWdlIHJldHVybiBjaGFyYWN0ZXJzIikKKyAgICAgICAgcmV0dXJuIChuYW1lLCBzZWxmLmhlYWRlcl9mYWN0b3J5KG5hbWUsIHZhbHVlKSkKKworICAgIGRlZiBoZWFkZXJfZmV0Y2hfcGFyc2Uoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICAiIiIrCisgICAgICAgIElmIHRoZSB2YWx1ZSBoYXMgYSAnbmFtZScgYXR0cmlidXRlLCBpdCBpcyByZXR1cm5lZCB0byB1bm1vZGlmaWVkLgorICAgICAgICBPdGhlcndpc2UgdGhlIG5hbWUgYW5kIHRoZSB2YWx1ZSB3aXRoIGFueSBsaW5lc2VwIGNoYXJhY3RlcnMgcmVtb3ZlZAorICAgICAgICBhcmUgcGFzc2VkIHRvIHRoZSBoZWFkZXJfZmFjdG9yeSBtZXRob2QsIGFuZCB0aGUgcmVzdWx0aW5nIGN1c3RvbQorICAgICAgICBoZWFkZXIgb2JqZWN0IGlzIHJldHVybmVkLiAgQW55IHN1cnJvZ2F0ZWVzY2FwZWQgYnl0ZXMgZ2V0IHR1cm5lZAorICAgICAgICBpbnRvIHRoZSB1bmljb2RlIHVua25vd24tY2hhcmFjdGVyIGdseXBoLgorCisgICAgICAgICIiIgorICAgICAgICBpZiBoYXNhdHRyKHZhbHVlLCAnbmFtZScpOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgICAgIHJldHVybiBzZWxmLmhlYWRlcl9mYWN0b3J5KG5hbWUsICcnLmpvaW4odmFsdWUuc3BsaXRsaW5lcygpKSkKKworICAgIGRlZiBmb2xkKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgIiIiKworICAgICAgICBIZWFkZXIgZm9sZGluZyBpcyBjb250cm9sbGVkIGJ5IHRoZSByZWZvbGRfc291cmNlIHBvbGljeSBzZXR0aW5nLiAgQQorICAgICAgICB2YWx1ZSBpcyBjb25zaWRlcmVkIHRvIGJlIGEgJ3NvdXJjZSB2YWx1ZScgaWYgYW5kIG9ubHkgaWYgaXQgZG9lcyBub3QKKyAgICAgICAgaGF2ZSBhICduYW1lJyBhdHRyaWJ1dGUgKGhhdmluZyBhICduYW1lJyBhdHRyaWJ1dGUgbWVhbnMgaXQgaXMgYSBoZWFkZXIKKyAgICAgICAgb2JqZWN0IG9mIHNvbWUgc29ydCkuICBJZiBhIHNvdXJjZSB2YWx1ZSBuZWVkcyB0byBiZSByZWZvbGRlZCBhY2NvcmRpbmcKKyAgICAgICAgdG8gdGhlIHBvbGljeSwgaXQgaXMgY29udmVydGVkIGludG8gYSBjdXN0b20gaGVhZGVyIG9iamVjdCBieSBwYXNzaW5nCisgICAgICAgIHRoZSBuYW1lIGFuZCB0aGUgdmFsdWUgd2l0aCBhbnkgbGluZXNlcCBjaGFyYWN0ZXJzIHJlbW92ZWQgdG8gdGhlCisgICAgICAgIGhlYWRlcl9mYWN0b3J5IG1ldGhvZC4gIEZvbGRpbmcgb2YgYSBjdXN0b20gaGVhZGVyIG9iamVjdCBpcyBkb25lIGJ5CisgICAgICAgIGNhbGxpbmcgaXRzIGZvbGQgbWV0aG9kIHdpdGggdGhlIGN1cnJlbnQgcG9saWN5LgorCisgICAgICAgIFNvdXJjZSB2YWx1ZXMgYXJlIHNwbGl0IGludG8gbGluZXMgdXNpbmcgc3BsaXRsaW5lcy4gIElmIHRoZSB2YWx1ZSBpcworICAgICAgICBub3QgdG8gYmUgcmVmb2xkZWQsIHRoZSBsaW5lcyBhcmUgcmVqb2luZWQgdXNpbmcgdGhlIGxpbmVzZXAgZnJvbSB0aGUKKyAgICAgICAgcG9saWN5IGFuZCByZXR1cm5lZC4gIFRoZSBleGNlcHRpb24gaXMgbGluZXMgY29udGFpbmluZyBub24tYXNjaWkKKyAgICAgICAgYmluYXJ5IGRhdGEuICBJbiB0aGF0IGNhc2UgdGhlIHZhbHVlIGlzIHJlZm9sZGVkIHJlZ2FyZGxlc3Mgb2YgdGhlCisgICAgICAgIHJlZm9sZF9zb3VyY2Ugc2V0dGluZywgd2hpY2ggY2F1c2VzIHRoZSBiaW5hcnkgZGF0YSB0byBiZSBDVEUgZW5jb2RlZAorICAgICAgICB1c2luZyB0aGUgdW5rbm93bi04Yml0IGNoYXJzZXQuCisKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLl9mb2xkKG5hbWUsIHZhbHVlLCByZWZvbGRfYmluYXJ5PVRydWUpCisKKyAgICBkZWYgZm9sZF9iaW5hcnkoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICAiIiIrCisgICAgICAgIFRoZSBzYW1lIGFzIGZvbGQgaWYgY3RlX3R5cGUgaXMgN2JpdCwgZXhjZXB0IHRoYXQgdGhlIHJldHVybmVkIHZhbHVlIGlzCisgICAgICAgIGJ5dGVzLgorCisgICAgICAgIElmIGN0ZV90eXBlIGlzIDhiaXQsIG5vbi1BU0NJSSBiaW5hcnkgZGF0YSBpcyBjb252ZXJ0ZWQgYmFjayBpbnRvCisgICAgICAgIGJ5dGVzLiAgSGVhZGVycyB3aXRoIGJpbmFyeSBkYXRhIGFyZSBub3QgcmVmb2xkZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlCisgICAgICAgIHJlZm9sZF9oZWFkZXIgc2V0dGluZywgc2luY2UgdGhlcmUgaXMgbm8gd2F5IHRvIGtub3cgd2hldGhlciB0aGUgYmluYXJ5CisgICAgICAgIGRhdGEgY29uc2lzdHMgb2Ygc2luZ2xlIGJ5dGUgY2hhcmFjdGVycyBvciBtdWx0aWJ5dGUgY2hhcmFjdGVycy4KKworICAgICAgICAiIiIKKyAgICAgICAgZm9sZGVkID0gc2VsZi5fZm9sZChuYW1lLCB2YWx1ZSwgcmVmb2xkX2JpbmFyeT1zZWxmLmN0ZV90eXBlPT0nN2JpdCcpCisgICAgICAgIHJldHVybiBmb2xkZWQuZW5jb2RlKCdhc2NpaScsICdzdXJyb2dhdGVlc2NhcGUnKQorCisgICAgZGVmIF9mb2xkKHNlbGYsIG5hbWUsIHZhbHVlLCByZWZvbGRfYmluYXJ5PUZhbHNlKToKKyAgICAgICAgaWYgaGFzYXR0cih2YWx1ZSwgJ25hbWUnKToKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZS5mb2xkKHBvbGljeT1zZWxmKQorICAgICAgICBtYXhsZW4gPSBzZWxmLm1heF9saW5lX2xlbmd0aCBpZiBzZWxmLm1heF9saW5lX2xlbmd0aCBlbHNlIGZsb2F0KCdpbmYnKQorICAgICAgICBsaW5lcyA9IHZhbHVlLnNwbGl0bGluZXMoKQorICAgICAgICByZWZvbGQgPSAoc2VsZi5yZWZvbGRfc291cmNlID09ICdhbGwnIG9yCisgICAgICAgICAgICAgICAgICBzZWxmLnJlZm9sZF9zb3VyY2UgPT0gJ2xvbmcnIGFuZAorICAgICAgICAgICAgICAgICAgICAobGVuKGxpbmVzWzBdKStsZW4obmFtZSkrMiA+IG1heGxlbiBvcgorICAgICAgICAgICAgICAgICAgICAgYW55KGxlbih4KSA+IG1heGxlbiBmb3IgeCBpbiBsaW5lc1sxOl0pKSkKKyAgICAgICAgaWYgcmVmb2xkIG9yIHJlZm9sZF9iaW5hcnkgYW5kIF9oYXNfc3Vycm9nYXRlcyh2YWx1ZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5oZWFkZXJfZmFjdG9yeShuYW1lLCAnJy5qb2luKGxpbmVzKSkuZm9sZChwb2xpY3k9c2VsZikKKyAgICAgICAgcmV0dXJuIG5hbWUgKyAnOiAnICsgc2VsZi5saW5lc2VwLmpvaW4obGluZXMpICsgc2VsZi5saW5lc2VwCisKKworZGVmYXVsdCA9IEVtYWlsUG9saWN5KCkKKyMgTWFrZSB0aGUgZGVmYXVsdCBwb2xpY3kgdXNlIHRoZSBjbGFzcyBkZWZhdWx0IGhlYWRlcl9mYWN0b3J5CitkZWwgZGVmYXVsdC5oZWFkZXJfZmFjdG9yeQorc3RyaWN0ID0gZGVmYXVsdC5jbG9uZShyYWlzZV9vbl9kZWZlY3Q9VHJ1ZSkKK1NNVFAgPSBkZWZhdWx0LmNsb25lKGxpbmVzZXA9J1xyXG4nKQorSFRUUCA9IGRlZmF1bHQuY2xvbmUobGluZXNlcD0nXHJcbicsIG1heF9saW5lX2xlbmd0aD1Ob25lKQpkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3V0aWxzLnB5IGIvTGliL2VtYWlsL3V0aWxzLnB5CmluZGV4IGFjNGRhMzcuLjM5Zjc5MDMgMTAwNjQ0Ci0tLSBhL0xpYi9lbWFpbC91dGlscy5weQorKysgYi9MaWIvZW1haWwvdXRpbHMucHkKQEAgLTExLDEyICsxMSwxNCBAQAogICAgICdlbmNvZGVfcmZjMjIzMScsCiAgICAgJ2Zvcm1hdGFkZHInLAogICAgICdmb3JtYXRkYXRlJywKKyAgICAnZm9ybWF0X2RhdGV0aW1lJywKICAgICAnZ2V0YWRkcmVzc2VzJywKICAgICAnbWFrZV9tc2dpZCcsCiAgICAgJ21rdGltZV90eicsCiAgICAgJ3BhcnNlYWRkcicsCiAgICAgJ3BhcnNlZGF0ZScsCiAgICAgJ3BhcnNlZGF0ZV90eicsCisgICAgJ3BhcnNlZGF0ZV90b19kYXRldGltZScsCiAgICAgJ3VucXVvdGUnLAogICAgIF0KIApAQCAtMjYsNiArMjgsNyBAQAogaW1wb3J0IGJhc2U2NAogaW1wb3J0IHJhbmRvbQogaW1wb3J0IHNvY2tldAoraW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgdXJsbGliLnBhcnNlCiBpbXBvcnQgd2FybmluZ3MKIGZyb20gaW8gaW1wb3J0IFN0cmluZ0lPCkBAIC0zNywxMSArNDAsMTMgQEAKICMgV2UgbmVlZCB3b3JtYXJvdW5kcyBmb3IgYnVncyBpbiB0aGVzZSBtZXRob2RzIGluIG9sZGVyIFB5dGhvbnMgKHNlZSBiZWxvdykKIGZyb20gZW1haWwuX3BhcnNlYWRkciBpbXBvcnQgcGFyc2VkYXRlIGFzIF9wYXJzZWRhdGUKIGZyb20gZW1haWwuX3BhcnNlYWRkciBpbXBvcnQgcGFyc2VkYXRlX3R6IGFzIF9wYXJzZWRhdGVfdHoKK2Zyb20gZW1haWwuX3BhcnNlYWRkciBpbXBvcnQgX3BhcnNlZGF0ZV90eiBhcyBfX3BhcnNlZGF0ZV90egogCiBmcm9tIHF1b3ByaSBpbXBvcnQgZGVjb2Rlc3RyaW5nIGFzIF9xZGVjb2RlCiAKICMgSW50cmFwYWNrYWdlIGltcG9ydHMKIGZyb20gZW1haWwuZW5jb2RlcnMgaW1wb3J0IF9iZW5jb2RlLCBfcWVuY29kZQorZnJvbSBlbWFpbC5jaGFyc2V0IGltcG9ydCBDaGFyc2V0CiAKIENPTU1BU1BBQ0UgPSAnLCAnCiBFTVBUWVNUUklORyA9ICcnCkBAIC01MCwyNyArNTUsNTMgQEAKIFRJQ0sgPSAiJyIKIAogc3BlY2lhbHNyZSA9IHJlLmNvbXBpbGUocidbXVtcXCgpPD5ALDo7Ii5dJykKLWVzY2FwZXNyZSA9IHJlLmNvbXBpbGUocidbXVtcXCgpIl0nKQorZXNjYXBlc3JlID0gcmUuY29tcGlsZShyJ1tcXCJdJykKIAorIyBIb3cgdG8gZmlndXJlIG91dCBpZiB3ZSBhcmUgcHJvY2Vzc2luZyBzdHJpbmdzIHRoYXQgY29tZSBmcm9tIGEgYnl0ZQorIyBzb3VyY2Ugd2l0aCB1bmRlY29kYWJsZSBjaGFyYWN0ZXJzLgorX2hhc19zdXJyb2dhdGVzID0gcmUuY29tcGlsZSgKKyAgICAnKFteXHVkODAwLVx1ZGJmZl18XEEpW1x1ZGMwMC1cdWRmZmZdKFteXHVkYzAwLVx1ZGZmZl18XFopJykuc2VhcmNoCisKKyMgSG93IHRvIGRlYWwgd2l0aCBhIHN0cmluZyBjb250YWluaW5nIGJ5dGVzIGJlZm9yZSBoYW5kaW5nIGl0IHRvIHRoZQorIyBhcHBsaWNhdGlvbiB0aHJvdWdoIHRoZSAnbm9ybWFsJyBpbnRlcmZhY2UuCitkZWYgX3Nhbml0aXplKHN0cmluZyk6CisgICAgIyBUdXJuIGFueSBlc2NhcGVkIGJ5dGVzIGludG8gdW5pY29kZSAndW5rbm93bicgY2hhci4KKyAgICBvcmlnaW5hbF9ieXRlcyA9IHN0cmluZy5lbmNvZGUoJ2FzY2lpJywgJ3N1cnJvZ2F0ZWVzY2FwZScpCisgICAgcmV0dXJuIG9yaWdpbmFsX2J5dGVzLmRlY29kZSgnYXNjaWknLCAncmVwbGFjZScpCiAKIAogIyBIZWxwZXJzCiAKLWRlZiBmb3JtYXRhZGRyKHBhaXIpOgorZGVmIGZvcm1hdGFkZHIocGFpciwgY2hhcnNldD0ndXRmLTgnKToKICAgICAiIiJUaGUgaW52ZXJzZSBvZiBwYXJzZWFkZHIoKSwgdGhpcyB0YWtlcyBhIDItdHVwbGUgb2YgdGhlIGZvcm0KICAgICAocmVhbG5hbWUsIGVtYWlsX2FkZHJlc3MpIGFuZCByZXR1cm5zIHRoZSBzdHJpbmcgdmFsdWUgc3VpdGFibGUKICAgICBmb3IgYW4gUkZDIDI4MjIgRnJvbSwgVG8gb3IgQ2MgaGVhZGVyLgogCiAgICAgSWYgdGhlIGZpcnN0IGVsZW1lbnQgb2YgcGFpciBpcyBmYWxzZSwgdGhlbiB0aGUgc2Vjb25kIGVsZW1lbnQgaXMKICAgICByZXR1cm5lZCB1bm1vZGlmaWVkLgorCisgICAgT3B0aW9uYWwgY2hhcnNldCBpZiBnaXZlbiBpcyB0aGUgY2hhcmFjdGVyIHNldCB0aGF0IGlzIHVzZWQgdG8gZW5jb2RlCisgICAgcmVhbG5hbWUgaW4gY2FzZSByZWFsbmFtZSBpcyBub3QgQVNDSUkgc2FmZS4gIENhbiBiZSBhbiBpbnN0YW5jZSBvZiBzdHIgb3IKKyAgICBhIENoYXJzZXQtbGlrZSBvYmplY3Qgd2hpY2ggaGFzIGEgaGVhZGVyX2VuY29kZSBtZXRob2QuICBEZWZhdWx0IGlzCisgICAgJ3V0Zi04Jy4KICAgICAiIiIKICAgICBuYW1lLCBhZGRyZXNzID0gcGFpcgorICAgICMgVGhlIGFkZHJlc3MgTVVTVCAocGVyIFJGQykgYmUgYXNjaWksIHNvIHRocm93IGEgVW5pY29kZUVycm9yIGlmIGl0IGlzbid0LgorICAgIGFkZHJlc3MuZW5jb2RlKCdhc2NpaScpCiAgICAgaWYgbmFtZToKLSAgICAgICAgcXVvdGVzID0gJycKLSAgICAgICAgaWYgc3BlY2lhbHNyZS5zZWFyY2gobmFtZSk6Ci0gICAgICAgICAgICBxdW90ZXMgPSAnIicKLSAgICAgICAgbmFtZSA9IGVzY2FwZXNyZS5zdWIocidcXFxnPDA+JywgbmFtZSkKLSAgICAgICAgcmV0dXJuICclcyVzJXMgPCVzPicgJSAocXVvdGVzLCBuYW1lLCBxdW90ZXMsIGFkZHJlc3MpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG5hbWUuZW5jb2RlKCdhc2NpaScpCisgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNoYXJzZXQsIHN0cik6CisgICAgICAgICAgICAgICAgY2hhcnNldCA9IENoYXJzZXQoY2hhcnNldCkKKyAgICAgICAgICAgIGVuY29kZWRfbmFtZSA9IGNoYXJzZXQuaGVhZGVyX2VuY29kZShuYW1lKQorICAgICAgICAgICAgcmV0dXJuICIlcyA8JXM+IiAlIChlbmNvZGVkX25hbWUsIGFkZHJlc3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBxdW90ZXMgPSAnJworICAgICAgICAgICAgaWYgc3BlY2lhbHNyZS5zZWFyY2gobmFtZSk6CisgICAgICAgICAgICAgICAgcXVvdGVzID0gJyInCisgICAgICAgICAgICBuYW1lID0gZXNjYXBlc3JlLnN1YihyJ1xcXGc8MD4nLCBuYW1lKQorICAgICAgICAgICAgcmV0dXJuICclcyVzJXMgPCVzPicgJSAocXVvdGVzLCBuYW1lLCBxdW90ZXMsIGFkZHJlc3MpCiAgICAgcmV0dXJuIGFkZHJlc3MKIAogCkBAIC05NCw2ICsxMjUsMTQgQEAKICAgJycnLCByZS5WRVJCT1NFIHwgcmUuSUdOT1JFQ0FTRSkKIAogCitkZWYgX2Zvcm1hdF90aW1ldHVwbGVfYW5kX3pvbmUodGltZXR1cGxlLCB6b25lKToKKyAgICByZXR1cm4gJyVzLCAlMDJkICVzICUwNGQgJTAyZDolMDJkOiUwMmQgJXMnICUgKAorICAgICAgICBbJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0JywgJ1N1biddW3RpbWV0dXBsZVs2XV0sCisgICAgICAgIHRpbWV0dXBsZVsyXSwKKyAgICAgICAgWydKYW4nLCAnRmViJywgJ01hcicsICdBcHInLCAnTWF5JywgJ0p1bicsCisgICAgICAgICAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXVt0aW1ldHVwbGVbMV0gLSAxXSwKKyAgICAgICAgdGltZXR1cGxlWzBdLCB0aW1ldHVwbGVbM10sIHRpbWV0dXBsZVs0XSwgdGltZXR1cGxlWzVdLAorICAgICAgICB6b25lKQogCiBkZWYgZm9ybWF0ZGF0ZSh0aW1ldmFsPU5vbmUsIGxvY2FsdGltZT1GYWxzZSwgdXNlZ210PUZhbHNlKToKICAgICAiIiJSZXR1cm5zIGEgZGF0ZSBzdHJpbmcgYXMgc3BlY2lmaWVkIGJ5IFJGQyAyODIyLCBlLmcuOgpAQCAtMTM4LDE0ICsxNzcsMjUgQEAKICAgICAgICAgICAgIHpvbmUgPSAnR01UJwogICAgICAgICBlbHNlOgogICAgICAgICAgICAgem9uZSA9ICctMDAwMCcKLSAgICByZXR1cm4gJyVzLCAlMDJkICVzICUwNGQgJTAyZDolMDJkOiUwMmQgJXMnICUgKAotICAgICAgICBbJ01vbicsICdUdWUnLCAnV2VkJywgJ1RodScsICdGcmknLCAnU2F0JywgJ1N1biddW25vd1s2XV0sCi0gICAgICAgIG5vd1syXSwKLSAgICAgICAgWydKYW4nLCAnRmViJywgJ01hcicsICdBcHInLCAnTWF5JywgJ0p1bicsCi0gICAgICAgICAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXVtub3dbMV0gLSAxXSwKLSAgICAgICAgbm93WzBdLCBub3dbM10sIG5vd1s0XSwgbm93WzVdLAotICAgICAgICB6b25lKQorICAgIHJldHVybiBfZm9ybWF0X3RpbWV0dXBsZV9hbmRfem9uZShub3csIHpvbmUpCiAKK2RlZiBmb3JtYXRfZGF0ZXRpbWUoZHQsIHVzZWdtdD1GYWxzZSk6CisgICAgIiIiVHVybiBhIGRhdGV0aW1lIGludG8gYSBkYXRlIHN0cmluZyBhcyBzcGVjaWZpZWQgaW4gUkZDIDI4MjIuCisKKyAgICBJZiB1c2VnbXQgaXMgVHJ1ZSwgZHQgbXVzdCBiZSBhbiBhd2FyZSBkYXRldGltZSB3aXRoIGFuIG9mZnNldCBvZiB6ZXJvLiAgSW4KKyAgICB0aGlzIGNhc2UgJ0dNVCcgd2lsbCBiZSByZW5kZXJlZCBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgKzAwMDAgcmVxdWlyZWQgYnkKKyAgICBSRkMyODIyLiAgVGhpcyBpcyB0byBzdXBwb3J0IEhUVFAgaGVhZGVycyBpbnZvbHZpbmcgZGF0ZSBzdGFtcHMuCisgICAgIiIiCisgICAgbm93ID0gZHQudGltZXR1cGxlKCkKKyAgICBpZiB1c2VnbXQ6CisgICAgICAgIGlmIGR0LnR6aW5mbyBpcyBOb25lIG9yIGR0LnR6aW5mbyAhPSBkYXRldGltZS50aW1lem9uZS51dGM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1c2VnbXQgb3B0aW9uIHJlcXVpcmVzIGEgVVRDIGRhdGV0aW1lIikKKyAgICAgICAgem9uZSA9ICdHTVQnCisgICAgZWxpZiBkdC50emluZm8gaXMgTm9uZToKKyAgICAgICAgem9uZSA9ICctMDAwMCcKKyAgICBlbHNlOgorICAgICAgICB6b25lID0gZHQuc3RyZnRpbWUoIiV6IikKKyAgICByZXR1cm4gX2Zvcm1hdF90aW1ldHVwbGVfYW5kX3pvbmUobm93LCB6b25lKQogCiAKIGRlZiBtYWtlX21zZ2lkKGlkc3RyaW5nPU5vbmUsIGRvbWFpbj1Ob25lKToKQEAgLTE4Nyw2ICsyMzcsMTUgQEAKICAgICAgICAgcmV0dXJuIE5vbmUKICAgICByZXR1cm4gX3BhcnNlZGF0ZV90eihkYXRhKQogCitkZWYgcGFyc2VkYXRlX3RvX2RhdGV0aW1lKGRhdGEpOgorICAgIGlmIG5vdCBkYXRhOgorICAgICAgICByZXR1cm4gTm9uZQorICAgICpkdHVwbGUsIHR6ID0gX19wYXJzZWRhdGVfdHooZGF0YSkKKyAgICBpZiB0eiBpcyBOb25lOgorICAgICAgICByZXR1cm4gZGF0ZXRpbWUuZGF0ZXRpbWUoKmR0dXBsZVs6Nl0pCisgICAgcmV0dXJuIGRhdGV0aW1lLmRhdGV0aW1lKCpkdHVwbGVbOjZdLAorICAgICAgICAgICAgdHppbmZvPWRhdGV0aW1lLnRpbWV6b25lKGRhdGV0aW1lLnRpbWVkZWx0YShzZWNvbmRzPXR6KSkpCisKIAogZGVmIHBhcnNlYWRkcihhZGRyKToKICAgICBhZGRycyA9IF9BZGRyZXNzTGlzdChhZGRyKS5hZGRyZXNzbGlzdApAQCAtMzA0LDMgKzM2Myw1NiBAQAogICAgIGV4Y2VwdCBMb29rdXBFcnJvcjoKICAgICAgICAgIyBjaGFyc2V0IGlzIG5vdCBhIGtub3duIGNvZGVjLgogICAgICAgICByZXR1cm4gdW5xdW90ZSh0ZXh0KQorCisKKyMKKyMgZGF0ZXRpbWUgZG9lc24ndCBwcm92aWRlIGEgbG9jYWx0aW1lIGZ1bmN0aW9uIHlldCwgc28gcHJvdmlkZSBvbmUuICBDb2RlCisjIGFkYXB0ZWQgZnJvbSB0aGUgcGF0Y2ggaW4gaXNzdWUgOTUyNy4gIFRoaXMgbWF5IG5vdCBiZSBwZXJmZWN0LCBidXQgaXQgaXMKKyMgYmV0dGVyIHRoYW4gbm90IGhhdmluZyBpdC4KKyMKKworZGVmIGxvY2FsdGltZShkdD1Ob25lLCBpc2RzdD0tMSk6CisgICAgIiIiUmV0dXJuIGxvY2FsIHRpbWUgYXMgYW4gYXdhcmUgZGF0ZXRpbWUgb2JqZWN0LgorCisgICAgSWYgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnRzLCByZXR1cm4gY3VycmVudCB0aW1lLiAgT3RoZXJ3aXNlICpkdCoKKyAgICBhcmd1bWVudCBzaG91bGQgYmUgYSBkYXRldGltZSBpbnN0YW5jZSwgYW5kIGl0IGlzIGNvbnZlcnRlZCB0byB0aGUKKyAgICBsb2NhbCB0aW1lIHpvbmUgYWNjb3JkaW5nIHRvIHRoZSBzeXN0ZW0gdGltZSB6b25lIGRhdGFiYXNlLiAgSWYgKmR0KiBpcworICAgIG5haXZlICh0aGF0IGlzLCBkdC50emluZm8gaXMgTm9uZSksIGl0IGlzIGFzc3VtZWQgdG8gYmUgaW4gbG9jYWwgdGltZS4KKyAgICBJbiB0aGlzIGNhc2UsIGEgcG9zaXRpdmUgb3IgemVybyB2YWx1ZSBmb3IgKmlzZHN0KiBjYXVzZXMgbG9jYWx0aW1lIHRvCisgICAgcHJlc3VtZSBpbml0aWFsbHkgdGhhdCBzdW1tZXIgdGltZSAoZm9yIGV4YW1wbGUsIERheWxpZ2h0IFNhdmluZyBUaW1lKQorICAgIGlzIG9yIGlzIG5vdCAocmVzcGVjdGl2ZWx5KSBpbiBlZmZlY3QgZm9yIHRoZSBzcGVjaWZpZWQgdGltZS4gIEEKKyAgICBuZWdhdGl2ZSB2YWx1ZSBmb3IgKmlzZHN0KiBjYXVzZXMgdGhlIGxvY2FsdGltZSgpIGZ1bmN0aW9uIHRvIGF0dGVtcHQKKyAgICB0byBkaXZpbmUgd2hldGhlciBzdW1tZXIgdGltZSBpcyBpbiBlZmZlY3QgZm9yIHRoZSBzcGVjaWZpZWQgdGltZS4KKworICAgICIiIgorICAgIGlmIGR0IGlzIE5vbmU6CisgICAgICAgIHNlY29uZHMgPSB0aW1lLnRpbWUoKQorICAgIGVsc2U6CisgICAgICAgIGlmIGR0LnR6aW5mbyBpcyBOb25lOgorICAgICAgICAgICAgIyBBIG5haXZlIGRhdGV0aW1lIGlzIGdpdmVuLiAgQ29udmVydCB0byBhIChsb2NhbHRpbWUpCisgICAgICAgICAgICAjIHRpbWV0dXBsZSBhbmQgcGFzcyB0byBzeXN0ZW0gbWt0aW1lIHRvZ2V0aGVyIHdpdGgKKyAgICAgICAgICAgICMgdGhlIGlzZHN0IGhpbnQuICBTeXN0ZW0gbWt0aW1lIHdpbGwgcmV0dXJuIHNlY29uZHMKKyAgICAgICAgICAgICMgc3lzY2UgZXBvY2guCisgICAgICAgICAgICB0bSA9IGR0LnRpbWV0dXBsZSgpWzotMV0gKyAoaXNkc3QsKQorICAgICAgICAgICAgc2Vjb25kcyA9IHRpbWUubWt0aW1lKHRtKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBBbiBhd2FyZSBkYXRldGltZSBpcyBnaXZlbi4gIFVzZSBhd2FyZSBkYXRldGltZQorICAgICAgICAgICAgIyBhcml0aG1ldGljcyB0byBmaW5kIHNlY29uZHMgc2luY2UgZXBvY2guCisgICAgICAgICAgICBkZWx0YSA9IGR0IC0gZGF0ZXRpbWUuZGF0ZXRpbWUoMTk3MCwgMSwgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0emluZm89ZGF0ZXRpbWUudGltZXpvbmUudXRjKQorICAgICAgICAgICAgc2Vjb25kcyA9IGRlbHRhLnRvdGFsX3NlY29uZHMoKQorICAgIHRtID0gdGltZS5sb2NhbHRpbWUoc2Vjb25kcykKKworICAgICMgWFhYOiBUaGUgZm9sbG93aW5nIGxvZ2ljIG1heSBub3Qgd29yayBjb3JyZWN0bHkgaWYgVVRDCisgICAgIyBvZmZzZXQgaGFzIGNoYW5nZWQgc2luY2UgdGltZSBwcm92aWRlZCBpbiBkdC4gIFRoaXMgd2lsbCBiZQorICAgICMgY29ycmVjdGVkIGluIEMgaW1wbGVtZW50YXRpb24gZm9yIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKKyAgICAjIHRtX2dtdG9mZi4KKyAgICBpZiB0aW1lLmRheWxpZ2h0IGFuZCB0bS50bV9pc2RzdDoKKyAgICAgICAgb2Zmc2V0ID0gdGltZS5hbHR6b25lCisgICAgICAgIHR6bmFtZSA9IHRpbWUudHpuYW1lWzFdCisgICAgZWxzZToKKyAgICAgICAgb2Zmc2V0ID0gdGltZS50aW1lem9uZQorICAgICAgICB0em5hbWUgPSB0aW1lLnR6bmFtZVswXQorCisgICAgdHogPSBkYXRldGltZS50aW1lem9uZShkYXRldGltZS50aW1lZGVsdGEoc2Vjb25kcz0tb2Zmc2V0KSwgdHpuYW1lKQorICAgIHJldHVybiBkYXRldGltZS5kYXRldGltZS5mcm9tdGltZXN0YW1wKHNlY29uZHMsIHR6KQpkaWZmIC0tZ2l0IGEvTGliL2VuY29kaW5ncy9jcDAzNy5weSBiL0xpYi9lbmNvZGluZ3MvY3AwMzcucHkKaW5kZXggNGVkZDcwOC4uYmZlMmMxZSAxMDA2NDQKLS0tIGEvTGliL2VuY29kaW5ncy9jcDAzNy5weQorKysgYi9MaWIvZW5jb2RpbmdzL2NwMDM3LnB5CkBAIC0zMDEsNiArMzAxLDcgQEAKICAgICAnXHhkOScgICAgICMgIDB4RkQgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEdSQVZFCiAgICAgJ1x4ZGEnICAgICAjICAweEZFIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBBQ1VURQogICAgICdceDlmJyAgICAgIyAgMHhGRiAtPiBDT05UUk9MCisgICAgJ1x1ZmZmZScgICAjIyBXaWRlbiB0byBVQ1MyIGZvciBvcHRpbWl6YXRpb24KICkKIAogIyMjIEVuY29kaW5nIHRhYmxlCmRpZmYgLS1naXQgYS9MaWIvZW5jb2RpbmdzL2NwNTAwLnB5IGIvTGliL2VuY29kaW5ncy9jcDUwMC5weQppbmRleCA1ZjYxNTM1Li5hOTc1YmU3IDEwMDY0NAotLS0gYS9MaWIvZW5jb2RpbmdzL2NwNTAwLnB5CisrKyBiL0xpYi9lbmNvZGluZ3MvY3A1MDAucHkKQEAgLTMwMSw2ICszMDEsNyBAQAogICAgICdceGQ5JyAgICAgIyAgMHhGRCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggR1JBVkUKICAgICAnXHhkYScgICAgICMgIDB4RkUgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEFDVVRFCiAgICAgJ1x4OWYnICAgICAjICAweEZGIC0+IENPTlRST0wKKyAgICAnXHVmZmZlJyAgICMjIFdpZGVuIHRvIFVDUzIgZm9yIG9wdGltaXphdGlvbgogKQogCiAjIyMgRW5jb2RpbmcgdGFibGUKZGlmZiAtLWdpdCBhL0xpYi9lbmNvZGluZ3MvY3A2NTAwMS5weSBiL0xpYi9lbmNvZGluZ3MvY3A2NTAwMS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODdlYjg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL2VuY29kaW5ncy9jcDY1MDAxLnB5CkBAIC0wLDAgKzEsNDAgQEAKKyIiIgorQ29kZSBwYWdlIDY1MDAxOiBXaW5kb3dzIFVURi04IChDUF9VVEY4KS4KKyIiIgorCitpbXBvcnQgY29kZWNzCitpbXBvcnQgZnVuY3Rvb2xzCisKK2lmIG5vdCBoYXNhdHRyKGNvZGVjcywgJ2NvZGVfcGFnZV9lbmNvZGUnKToKKyAgICByYWlzZSBMb29rdXBFcnJvcigiY3A2NTAwMSBlbmNvZGluZyBpcyBvbmx5IGF2YWlsYWJsZSBvbiBXaW5kb3dzIikKKworIyMjIENvZGVjIEFQSXMKKworZW5jb2RlID0gZnVuY3Rvb2xzLnBhcnRpYWwoY29kZWNzLmNvZGVfcGFnZV9lbmNvZGUsIDY1MDAxKQorZGVjb2RlID0gZnVuY3Rvb2xzLnBhcnRpYWwoY29kZWNzLmNvZGVfcGFnZV9kZWNvZGUsIDY1MDAxKQorCitjbGFzcyBJbmNyZW1lbnRhbEVuY29kZXIoY29kZWNzLkluY3JlbWVudGFsRW5jb2Rlcik6CisgICAgZGVmIGVuY29kZShzZWxmLCBpbnB1dCwgZmluYWw9RmFsc2UpOgorICAgICAgICByZXR1cm4gZW5jb2RlKGlucHV0LCBzZWxmLmVycm9ycylbMF0KKworY2xhc3MgSW5jcmVtZW50YWxEZWNvZGVyKGNvZGVjcy5CdWZmZXJlZEluY3JlbWVudGFsRGVjb2Rlcik6CisgICAgX2J1ZmZlcl9kZWNvZGUgPSBkZWNvZGUKKworY2xhc3MgU3RyZWFtV3JpdGVyKGNvZGVjcy5TdHJlYW1Xcml0ZXIpOgorICAgIGVuY29kZSA9IGVuY29kZQorCitjbGFzcyBTdHJlYW1SZWFkZXIoY29kZWNzLlN0cmVhbVJlYWRlcik6CisgICAgZGVjb2RlID0gZGVjb2RlCisKKyMjIyBlbmNvZGluZ3MgbW9kdWxlIEFQSQorCitkZWYgZ2V0cmVnZW50cnkoKToKKyAgICByZXR1cm4gY29kZWNzLkNvZGVjSW5mbygKKyAgICAgICAgbmFtZT0nY3A2NTAwMScsCisgICAgICAgIGVuY29kZT1lbmNvZGUsCisgICAgICAgIGRlY29kZT1kZWNvZGUsCisgICAgICAgIGluY3JlbWVudGFsZW5jb2Rlcj1JbmNyZW1lbnRhbEVuY29kZXIsCisgICAgICAgIGluY3JlbWVudGFsZGVjb2Rlcj1JbmNyZW1lbnRhbERlY29kZXIsCisgICAgICAgIHN0cmVhbXJlYWRlcj1TdHJlYW1SZWFkZXIsCisgICAgICAgIHN0cmVhbXdyaXRlcj1TdHJlYW1Xcml0ZXIsCisgICAgKQpkaWZmIC0tZ2l0IGEvTGliL2VuY29kaW5ncy9ocF9yb21hbjgucHkgYi9MaWIvZW5jb2RpbmdzL2hwX3JvbWFuOC5weQppbmRleCBkYmFhYTcyLi4yMzM0MjA4IDEwMDY0NAotLS0gYS9MaWIvZW5jb2RpbmdzL2hwX3JvbWFuOC5weQorKysgYi9MaWIvZW5jb2RpbmdzL2hwX3JvbWFuOC5weQpAQCAtMTQsMTggKzE0LDE4IEBACiBjbGFzcyBDb2RlYyhjb2RlY3MuQ29kZWMpOgogCiAgICAgZGVmIGVuY29kZShzZWxmLGlucHV0LGVycm9ycz0nc3RyaWN0Jyk6Ci0gICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9lbmNvZGUoaW5wdXQsZXJyb3JzLGVuY29kaW5nX21hcCkKKyAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2VuY29kZShpbnB1dCxlcnJvcnMsZW5jb2RpbmdfdGFibGUpCiAKICAgICBkZWYgZGVjb2RlKHNlbGYsaW5wdXQsZXJyb3JzPSdzdHJpY3QnKToKLSAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2RlY29kZShpbnB1dCxlcnJvcnMsZGVjb2RpbmdfbWFwKQorICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZGVjb2RlKGlucHV0LGVycm9ycyxkZWNvZGluZ190YWJsZSkKIAogY2xhc3MgSW5jcmVtZW50YWxFbmNvZGVyKGNvZGVjcy5JbmNyZW1lbnRhbEVuY29kZXIpOgogICAgIGRlZiBlbmNvZGUoc2VsZiwgaW5wdXQsIGZpbmFsPUZhbHNlKToKLSAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2VuY29kZShpbnB1dCxzZWxmLmVycm9ycyxlbmNvZGluZ19tYXApWzBdCisgICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9lbmNvZGUoaW5wdXQsc2VsZi5lcnJvcnMsZW5jb2RpbmdfdGFibGUpWzBdCiAKIGNsYXNzIEluY3JlbWVudGFsRGVjb2Rlcihjb2RlY3MuSW5jcmVtZW50YWxEZWNvZGVyKToKICAgICBkZWYgZGVjb2RlKHNlbGYsIGlucHV0LCBmaW5hbD1GYWxzZSk6Ci0gICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9kZWNvZGUoaW5wdXQsc2VsZi5lcnJvcnMsZGVjb2RpbmdfbWFwKVswXQorICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZGVjb2RlKGlucHV0LHNlbGYuZXJyb3JzLGRlY29kaW5nX3RhYmxlKVswXQogCiBjbGFzcyBTdHJlYW1Xcml0ZXIoQ29kZWMsY29kZWNzLlN0cmVhbVdyaXRlcik6CiAgICAgcGFzcwpAQCAtNDYsMTA3ICs0NiwyNjcgQEAKICAgICAgICAgc3RyZWFtcmVhZGVyPVN0cmVhbVJlYWRlciwKICAgICApCiAKLSMjIyBEZWNvZGluZyBNYXAKIAotZGVjb2RpbmdfbWFwID0gY29kZWNzLm1ha2VfaWRlbnRpdHlfZGljdChyYW5nZSgyNTYpKQotZGVjb2RpbmdfbWFwLnVwZGF0ZSh7Ci0gICAgICAgIDB4MDBhMTogMHgwMGMwLCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBHUkFWRQotICAgICAgICAweDAwYTI6IDB4MDBjMiwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWAotICAgICAgICAweDAwYTM6IDB4MDBjOCwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggR1JBVkUKLSAgICAgICAgMHgwMGE0OiAweDAwY2EsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVgKLSAgICAgICAgMHgwMGE1OiAweDAwY2IsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUwotICAgICAgICAweDAwYTY6IDB4MDBjZSwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWAotICAgICAgICAweDAwYTc6IDB4MDBjZiwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTCi0gICAgICAgIDB4MDBhODogMHgwMGI0LCAjICAgICAgIEFDVVRFIEFDQ0VOVAotICAgICAgICAweDAwYTk6IDB4MDJjYiwgIyAgICAgICBNT0RJRklFUiBMRVRURVIgR1JBVkUgQUNDRU5UIChNYW5kYXJpbiBDaGluZXNlIGZvdXJ0aCB0b25lKQotICAgICAgICAweDAwYWE6IDB4MDJjNiwgIyAgICAgICBNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWCBBQ0NFTlQKLSAgICAgICAgMHgwMGFiOiAweDAwYTgsICMgICAgICAgRElBRVJFU0lTCi0gICAgICAgIDB4MDBhYzogMHgwMmRjLCAjICAgICAgIFNNQUxMIFRJTERFCi0gICAgICAgIDB4MDBhZDogMHgwMGQ5LCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBHUkFWRQotICAgICAgICAweDAwYWU6IDB4MDBkYiwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWAotICAgICAgICAweDAwYWY6IDB4MjBhNCwgIyAgICAgICBMSVJBIFNJR04KLSAgICAgICAgMHgwMGIwOiAweDAwYWYsICMgICAgICAgTUFDUk9OCi0gICAgICAgIDB4MDBiMTogMHgwMGRkLCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBBQ1VURQotICAgICAgICAweDAwYjI6IDB4MDBmZCwgIyAgICAgICBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDBiMzogMHgwMGIwLCAjICAgICAgIERFR1JFRSBTSUdOCi0gICAgICAgIDB4MDBiNDogMHgwMGM3LCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBCi0gICAgICAgIDB4MDBiNTogMHgwMGU3LCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBDIFdJVEggQ0VESUxMQQotICAgICAgICAweDAwYjY6IDB4MDBkMSwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggVElMREUKLSAgICAgICAgMHgwMGI3OiAweDAwZjEsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBUSUxERQotICAgICAgICAweDAwYjg6IDB4MDBhMSwgIyAgICAgICBJTlZFUlRFRCBFWENMQU1BVElPTiBNQVJLCi0gICAgICAgIDB4MDBiOTogMHgwMGJmLCAjICAgICAgIElOVkVSVEVEIFFVRVNUSU9OIE1BUksKLSAgICAgICAgMHgwMGJhOiAweDAwYTQsICMgICAgICAgQ1VSUkVOQ1kgU0lHTgotICAgICAgICAweDAwYmI6IDB4MDBhMywgIyAgICAgICBQT1VORCBTSUdOCi0gICAgICAgIDB4MDBiYzogMHgwMGE1LCAjICAgICAgIFlFTiBTSUdOCi0gICAgICAgIDB4MDBiZDogMHgwMGE3LCAjICAgICAgIFNFQ1RJT04gU0lHTgotICAgICAgICAweDAwYmU6IDB4MDE5MiwgIyAgICAgICBMQVRJTiBTTUFMTCBMRVRURVIgRiBXSVRIIEhPT0sKLSAgICAgICAgMHgwMGJmOiAweDAwYTIsICMgICAgICAgQ0VOVCBTSUdOCi0gICAgICAgIDB4MDBjMDogMHgwMGUyLCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWAotICAgICAgICAweDAwYzE6IDB4MDBlYSwgIyAgICAgICBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVgKLSAgICAgICAgMHgwMGMyOiAweDAwZjQsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYCi0gICAgICAgIDB4MDBjMzogMHgwMGZiLCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWAotICAgICAgICAweDAwYzQ6IDB4MDBlMSwgIyAgICAgICBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDBjNTogMHgwMGU5LCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMGM2OiAweDAwZjMsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBBQ1VURQotICAgICAgICAweDAwYzc6IDB4MDBmYSwgIyAgICAgICBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDBjODogMHgwMGUwLCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggR1JBVkUKLSAgICAgICAgMHgwMGM5OiAweDAwZTgsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBHUkFWRQotICAgICAgICAweDAwY2E6IDB4MDBmMiwgIyAgICAgICBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEdSQVZFCi0gICAgICAgIDB4MDBjYjogMHgwMGY5LCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggR1JBVkUKLSAgICAgICAgMHgwMGNjOiAweDAwZTQsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMGNkOiAweDAwZWIsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMGNlOiAweDAwZjYsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMGNmOiAweDAwZmMsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMGQwOiAweDAwYzUsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUKLSAgICAgICAgMHgwMGQxOiAweDAwZWUsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYCi0gICAgICAgIDB4MDBkMjogMHgwMGQ4LCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBTVFJPS0UKLSAgICAgICAgMHgwMGQzOiAweDAwYzYsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQUUKLSAgICAgICAgMHgwMGQ0OiAweDAwZTUsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBSSU5HIEFCT1ZFCi0gICAgICAgIDB4MDBkNTogMHgwMGVkLCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMGQ2OiAweDAwZjgsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0UKLSAgICAgICAgMHgwMGQ3OiAweDAwZTYsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEFFCi0gICAgICAgIDB4MDBkODogMHgwMGM0LCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMGQ5OiAweDAwZWMsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBHUkFWRQotICAgICAgICAweDAwZGE6IDB4MDBkNiwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTCi0gICAgICAgIDB4MDBkYjogMHgwMGRjLCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMGRjOiAweDAwYzksICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDBkZDogMHgwMGVmLCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggRElBRVJFU0lTCi0gICAgICAgIDB4MDBkZTogMHgwMGRmLCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBTSEFSUCBTIChHZXJtYW4pCi0gICAgICAgIDB4MDBkZjogMHgwMGQ0LCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYCi0gICAgICAgIDB4MDBlMDogMHgwMGMxLCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBBQ1VURQotICAgICAgICAweDAwZTE6IDB4MDBjMywgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggVElMREUKLSAgICAgICAgMHgwMGUyOiAweDAwZTMsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBUSUxERQotICAgICAgICAweDAwZTM6IDB4MDBkMCwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBFVEggKEljZWxhbmRpYykKLSAgICAgICAgMHgwMGU0OiAweDAwZjAsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIEVUSCAoSWNlbGFuZGljKQotICAgICAgICAweDAwZTU6IDB4MDBjZCwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMGU2OiAweDAwY2MsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIEdSQVZFCi0gICAgICAgIDB4MDBlNzogMHgwMGQzLCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBBQ1VURQotICAgICAgICAweDAwZTg6IDB4MDBkMiwgIyAgICAgICBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggR1JBVkUKLSAgICAgICAgMHgwMGU5OiAweDAwZDUsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFCi0gICAgICAgIDB4MDBlYTogMHgwMGY1LCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUKLSAgICAgICAgMHgwMGViOiAweDAxNjAsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OCi0gICAgICAgIDB4MDBlYzogMHgwMTYxLCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST04KLSAgICAgICAgMHgwMGVkOiAweDAwZGEsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDBlZTogMHgwMTc4LCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMGVmOiAweDAwZmYsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMGYwOiAweDAwZGUsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVEhPUk4gKEljZWxhbmRpYykKLSAgICAgICAgMHgwMGYxOiAweDAwZmUsICMgICAgICAgTEFUSU4gU01BTEwgTEVUVEVSIFRIT1JOIChJY2VsYW5kaWMpCi0gICAgICAgIDB4MDBmMjogMHgwMGI3LCAjICAgICAgIE1JRERMRSBET1QKLSAgICAgICAgMHgwMGYzOiAweDAwYjUsICMgICAgICAgTUlDUk8gU0lHTgotICAgICAgICAweDAwZjQ6IDB4MDBiNiwgIyAgICAgICBQSUxDUk9XIFNJR04KLSAgICAgICAgMHgwMGY1OiAweDAwYmUsICMgICAgICAgVlVMR0FSIEZSQUNUSU9OIFRIUkVFIFFVQVJURVJTCi0gICAgICAgIDB4MDBmNjogMHgyMDE0LCAjICAgICAgIEVNIERBU0gKLSAgICAgICAgMHgwMGY3OiAweDAwYmMsICMgICAgICAgVlVMR0FSIEZSQUNUSU9OIE9ORSBRVUFSVEVSCi0gICAgICAgIDB4MDBmODogMHgwMGJkLCAjICAgICAgIFZVTEdBUiBGUkFDVElPTiBPTkUgSEFMRgotICAgICAgICAweDAwZjk6IDB4MDBhYSwgIyAgICAgICBGRU1JTklORSBPUkRJTkFMIElORElDQVRPUgotICAgICAgICAweDAwZmE6IDB4MDBiYSwgIyAgICAgICBNQVNDVUxJTkUgT1JESU5BTCBJTkRJQ0FUT1IKLSAgICAgICAgMHgwMGZiOiAweDAwYWIsICMgICAgICAgTEVGVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUksKLSAgICAgICAgMHgwMGZjOiAweDI1YTAsICMgICAgICAgQkxBQ0sgU1FVQVJFCi0gICAgICAgIDB4MDBmZDogMHgwMGJiLCAjICAgICAgIFJJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSwotICAgICAgICAweDAwZmU6IDB4MDBiMSwgIyAgICAgICBQTFVTLU1JTlVTIFNJR04KLSAgICAgICAgMHgwMGZmOiBOb25lLAotfSkKKyMjIyBEZWNvZGluZyBUYWJsZQogCi0jIyMgRW5jb2RpbmcgTWFwCitkZWNvZGluZ190YWJsZSA9ICgKKyAgICAnXHgwMCcgICAgICMgIDB4MDAgLT4gTlVMTAorICAgICdceDAxJyAgICAgIyAgMHgwMSAtPiBTVEFSVCBPRiBIRUFESU5HCisgICAgJ1x4MDInICAgICAjICAweDAyIC0+IFNUQVJUIE9GIFRFWFQKKyAgICAnXHgwMycgICAgICMgIDB4MDMgLT4gRU5EIE9GIFRFWFQKKyAgICAnXHgwNCcgICAgICMgIDB4MDQgLT4gRU5EIE9GIFRSQU5TTUlTU0lPTgorICAgICdceDA1JyAgICAgIyAgMHgwNSAtPiBFTlFVSVJZCisgICAgJ1x4MDYnICAgICAjICAweDA2IC0+IEFDS05PV0xFREdFCisgICAgJ1x4MDcnICAgICAjICAweDA3IC0+IEJFTEwKKyAgICAnXHgwOCcgICAgICMgIDB4MDggLT4gQkFDS1NQQUNFCisgICAgJ1x0JyAgICAgICAjICAweDA5IC0+IEhPUklaT05UQUwgVEFCVUxBVElPTgorICAgICdcbicgICAgICAgIyAgMHgwQSAtPiBMSU5FIEZFRUQKKyAgICAnXHgwYicgICAgICMgIDB4MEIgLT4gVkVSVElDQUwgVEFCVUxBVElPTgorICAgICdceDBjJyAgICAgIyAgMHgwQyAtPiBGT1JNIEZFRUQKKyAgICAnXHInICAgICAgICMgIDB4MEQgLT4gQ0FSUklBR0UgUkVUVVJOCisgICAgJ1x4MGUnICAgICAjICAweDBFIC0+IFNISUZUIE9VVAorICAgICdceDBmJyAgICAgIyAgMHgwRiAtPiBTSElGVCBJTgorICAgICdceDEwJyAgICAgIyAgMHgxMCAtPiBEQVRBIExJTksgRVNDQVBFCisgICAgJ1x4MTEnICAgICAjICAweDExIC0+IERFVklDRSBDT05UUk9MIE9ORQorICAgICdceDEyJyAgICAgIyAgMHgxMiAtPiBERVZJQ0UgQ09OVFJPTCBUV08KKyAgICAnXHgxMycgICAgICMgIDB4MTMgLT4gREVWSUNFIENPTlRST0wgVEhSRUUKKyAgICAnXHgxNCcgICAgICMgIDB4MTQgLT4gREVWSUNFIENPTlRST0wgRk9VUgorICAgICdceDE1JyAgICAgIyAgMHgxNSAtPiBORUdBVElWRSBBQ0tOT1dMRURHRQorICAgICdceDE2JyAgICAgIyAgMHgxNiAtPiBTWU5DSFJPTk9VUyBJRExFCisgICAgJ1x4MTcnICAgICAjICAweDE3IC0+IEVORCBPRiBUUkFOU01JU1NJT04gQkxPQ0sKKyAgICAnXHgxOCcgICAgICMgIDB4MTggLT4gQ0FOQ0VMCisgICAgJ1x4MTknICAgICAjICAweDE5IC0+IEVORCBPRiBNRURJVU0KKyAgICAnXHgxYScgICAgICMgIDB4MUEgLT4gU1VCU1RJVFVURQorICAgICdceDFiJyAgICAgIyAgMHgxQiAtPiBFU0NBUEUKKyAgICAnXHgxYycgICAgICMgIDB4MUMgLT4gRklMRSBTRVBBUkFUT1IKKyAgICAnXHgxZCcgICAgICMgIDB4MUQgLT4gR1JPVVAgU0VQQVJBVE9SCisgICAgJ1x4MWUnICAgICAjICAweDFFIC0+IFJFQ09SRCBTRVBBUkFUT1IKKyAgICAnXHgxZicgICAgICMgIDB4MUYgLT4gVU5JVCBTRVBBUkFUT1IKKyAgICAnICcgICAgICAgICMgIDB4MjAgLT4gU1BBQ0UKKyAgICAnIScgICAgICAgICMgIDB4MjEgLT4gRVhDTEFNQVRJT04gTUFSSworICAgICciJyAgICAgICAgIyAgMHgyMiAtPiBRVU9UQVRJT04gTUFSSworICAgICcjJyAgICAgICAgIyAgMHgyMyAtPiBOVU1CRVIgU0lHTgorICAgICckJyAgICAgICAgIyAgMHgyNCAtPiBET0xMQVIgU0lHTgorICAgICclJyAgICAgICAgIyAgMHgyNSAtPiBQRVJDRU5UIFNJR04KKyAgICAnJicgICAgICAgICMgIDB4MjYgLT4gQU1QRVJTQU5ECisgICAgIiciICAgICAgICAjICAweDI3IC0+IEFQT1NUUk9QSEUKKyAgICAnKCcgICAgICAgICMgIDB4MjggLT4gTEVGVCBQQVJFTlRIRVNJUworICAgICcpJyAgICAgICAgIyAgMHgyOSAtPiBSSUdIVCBQQVJFTlRIRVNJUworICAgICcqJyAgICAgICAgIyAgMHgyQSAtPiBBU1RFUklTSworICAgICcrJyAgICAgICAgIyAgMHgyQiAtPiBQTFVTIFNJR04KKyAgICAnLCcgICAgICAgICMgIDB4MkMgLT4gQ09NTUEKKyAgICAnLScgICAgICAgICMgIDB4MkQgLT4gSFlQSEVOLU1JTlVTCisgICAgJy4nICAgICAgICAjICAweDJFIC0+IEZVTEwgU1RPUAorICAgICcvJyAgICAgICAgIyAgMHgyRiAtPiBTT0xJRFVTCisgICAgJzAnICAgICAgICAjICAweDMwIC0+IERJR0lUIFpFUk8KKyAgICAnMScgICAgICAgICMgIDB4MzEgLT4gRElHSVQgT05FCisgICAgJzInICAgICAgICAjICAweDMyIC0+IERJR0lUIFRXTworICAgICczJyAgICAgICAgIyAgMHgzMyAtPiBESUdJVCBUSFJFRQorICAgICc0JyAgICAgICAgIyAgMHgzNCAtPiBESUdJVCBGT1VSCisgICAgJzUnICAgICAgICAjICAweDM1IC0+IERJR0lUIEZJVkUKKyAgICAnNicgICAgICAgICMgIDB4MzYgLT4gRElHSVQgU0lYCisgICAgJzcnICAgICAgICAjICAweDM3IC0+IERJR0lUIFNFVkVOCisgICAgJzgnICAgICAgICAjICAweDM4IC0+IERJR0lUIEVJR0hUCisgICAgJzknICAgICAgICAjICAweDM5IC0+IERJR0lUIE5JTkUKKyAgICAnOicgICAgICAgICMgIDB4M0EgLT4gQ09MT04KKyAgICAnOycgICAgICAgICMgIDB4M0IgLT4gU0VNSUNPTE9OCisgICAgJzwnICAgICAgICAjICAweDNDIC0+IExFU1MtVEhBTiBTSUdOCisgICAgJz0nICAgICAgICAjICAweDNEIC0+IEVRVUFMUyBTSUdOCisgICAgJz4nICAgICAgICAjICAweDNFIC0+IEdSRUFURVItVEhBTiBTSUdOCisgICAgJz8nICAgICAgICAjICAweDNGIC0+IFFVRVNUSU9OIE1BUksKKyAgICAnQCcgICAgICAgICMgIDB4NDAgLT4gQ09NTUVSQ0lBTCBBVAorICAgICdBJyAgICAgICAgIyAgMHg0MSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBBCisgICAgJ0InICAgICAgICAjICAweDQyIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEIKKyAgICAnQycgICAgICAgICMgIDB4NDMgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQworICAgICdEJyAgICAgICAgIyAgMHg0NCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBECisgICAgJ0UnICAgICAgICAjICAweDQ1IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEUKKyAgICAnRicgICAgICAgICMgIDB4NDYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgRgorICAgICdHJyAgICAgICAgIyAgMHg0NyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBHCisgICAgJ0gnICAgICAgICAjICAweDQ4IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEgKKyAgICAnSScgICAgICAgICMgIDB4NDkgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICdKJyAgICAgICAgIyAgMHg0QSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBKCisgICAgJ0snICAgICAgICAjICAweDRCIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEsKKyAgICAnTCcgICAgICAgICMgIDB4NEMgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTAorICAgICdNJyAgICAgICAgIyAgMHg0RCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBNCisgICAgJ04nICAgICAgICAjICAweDRFIC0+IExBVElOIENBUElUQUwgTEVUVEVSIE4KKyAgICAnTycgICAgICAgICMgIDB4NEYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTworICAgICdQJyAgICAgICAgIyAgMHg1MCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBQCisgICAgJ1EnICAgICAgICAjICAweDUxIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFEKKyAgICAnUicgICAgICAgICMgIDB4NTIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgUgorICAgICdTJyAgICAgICAgIyAgMHg1MyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBTCisgICAgJ1QnICAgICAgICAjICAweDU0IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFQKKyAgICAnVScgICAgICAgICMgIDB4NTUgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVQorICAgICdWJyAgICAgICAgIyAgMHg1NiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBWCisgICAgJ1cnICAgICAgICAjICAweDU3IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFcKKyAgICAnWCcgICAgICAgICMgIDB4NTggLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgWAorICAgICdZJyAgICAgICAgIyAgMHg1OSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBZCisgICAgJ1onICAgICAgICAjICAweDVBIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFoKKyAgICAnWycgICAgICAgICMgIDB4NUIgLT4gTEVGVCBTUVVBUkUgQlJBQ0tFVAorICAgICdcXCcgICAgICAgIyAgMHg1QyAtPiBSRVZFUlNFIFNPTElEVVMKKyAgICAnXScgICAgICAgICMgIDB4NUQgLT4gUklHSFQgU1FVQVJFIEJSQUNLRVQKKyAgICAnXicgICAgICAgICMgIDB4NUUgLT4gQ0lSQ1VNRkxFWCBBQ0NFTlQKKyAgICAnXycgICAgICAgICMgIDB4NUYgLT4gTE9XIExJTkUKKyAgICAnYCcgICAgICAgICMgIDB4NjAgLT4gR1JBVkUgQUNDRU5UCisgICAgJ2EnICAgICAgICAjICAweDYxIC0+IExBVElOIFNNQUxMIExFVFRFUiBBCisgICAgJ2InICAgICAgICAjICAweDYyIC0+IExBVElOIFNNQUxMIExFVFRFUiBCCisgICAgJ2MnICAgICAgICAjICAweDYzIC0+IExBVElOIFNNQUxMIExFVFRFUiBDCisgICAgJ2QnICAgICAgICAjICAweDY0IC0+IExBVElOIFNNQUxMIExFVFRFUiBECisgICAgJ2UnICAgICAgICAjICAweDY1IC0+IExBVElOIFNNQUxMIExFVFRFUiBFCisgICAgJ2YnICAgICAgICAjICAweDY2IC0+IExBVElOIFNNQUxMIExFVFRFUiBGCisgICAgJ2cnICAgICAgICAjICAweDY3IC0+IExBVElOIFNNQUxMIExFVFRFUiBHCisgICAgJ2gnICAgICAgICAjICAweDY4IC0+IExBVElOIFNNQUxMIExFVFRFUiBICisgICAgJ2knICAgICAgICAjICAweDY5IC0+IExBVElOIFNNQUxMIExFVFRFUiBJCisgICAgJ2onICAgICAgICAjICAweDZBIC0+IExBVElOIFNNQUxMIExFVFRFUiBKCisgICAgJ2snICAgICAgICAjICAweDZCIC0+IExBVElOIFNNQUxMIExFVFRFUiBLCisgICAgJ2wnICAgICAgICAjICAweDZDIC0+IExBVElOIFNNQUxMIExFVFRFUiBMCisgICAgJ20nICAgICAgICAjICAweDZEIC0+IExBVElOIFNNQUxMIExFVFRFUiBNCisgICAgJ24nICAgICAgICAjICAweDZFIC0+IExBVElOIFNNQUxMIExFVFRFUiBOCisgICAgJ28nICAgICAgICAjICAweDZGIC0+IExBVElOIFNNQUxMIExFVFRFUiBPCisgICAgJ3AnICAgICAgICAjICAweDcwIC0+IExBVElOIFNNQUxMIExFVFRFUiBQCisgICAgJ3EnICAgICAgICAjICAweDcxIC0+IExBVElOIFNNQUxMIExFVFRFUiBRCisgICAgJ3InICAgICAgICAjICAweDcyIC0+IExBVElOIFNNQUxMIExFVFRFUiBSCisgICAgJ3MnICAgICAgICAjICAweDczIC0+IExBVElOIFNNQUxMIExFVFRFUiBTCisgICAgJ3QnICAgICAgICAjICAweDc0IC0+IExBVElOIFNNQUxMIExFVFRFUiBUCisgICAgJ3UnICAgICAgICAjICAweDc1IC0+IExBVElOIFNNQUxMIExFVFRFUiBVCisgICAgJ3YnICAgICAgICAjICAweDc2IC0+IExBVElOIFNNQUxMIExFVFRFUiBWCisgICAgJ3cnICAgICAgICAjICAweDc3IC0+IExBVElOIFNNQUxMIExFVFRFUiBXCisgICAgJ3gnICAgICAgICAjICAweDc4IC0+IExBVElOIFNNQUxMIExFVFRFUiBYCisgICAgJ3knICAgICAgICAjICAweDc5IC0+IExBVElOIFNNQUxMIExFVFRFUiBZCisgICAgJ3onICAgICAgICAjICAweDdBIC0+IExBVElOIFNNQUxMIExFVFRFUiBaCisgICAgJ3snICAgICAgICAjICAweDdCIC0+IExFRlQgQ1VSTFkgQlJBQ0tFVAorICAgICd8JyAgICAgICAgIyAgMHg3QyAtPiBWRVJUSUNBTCBMSU5FCisgICAgJ30nICAgICAgICAjICAweDdEIC0+IFJJR0hUIENVUkxZIEJSQUNLRVQKKyAgICAnficgICAgICAgICMgIDB4N0UgLT4gVElMREUKKyAgICAnXHg3ZicgICAgICMgIDB4N0YgLT4gREVMRVRFCisgICAgJ1x4ODAnICAgICAjICAweDgwIC0+IDxjb250cm9sPgorICAgICdceDgxJyAgICAgIyAgMHg4MSAtPiA8Y29udHJvbD4KKyAgICAnXHg4MicgICAgICMgIDB4ODIgLT4gPGNvbnRyb2w+CisgICAgJ1x4ODMnICAgICAjICAweDgzIC0+IDxjb250cm9sPgorICAgICdceDg0JyAgICAgIyAgMHg4NCAtPiA8Y29udHJvbD4KKyAgICAnXHg4NScgICAgICMgIDB4ODUgLT4gPGNvbnRyb2w+CisgICAgJ1x4ODYnICAgICAjICAweDg2IC0+IDxjb250cm9sPgorICAgICdceDg3JyAgICAgIyAgMHg4NyAtPiA8Y29udHJvbD4KKyAgICAnXHg4OCcgICAgICMgIDB4ODggLT4gPGNvbnRyb2w+CisgICAgJ1x4ODknICAgICAjICAweDg5IC0+IDxjb250cm9sPgorICAgICdceDhhJyAgICAgIyAgMHg4QSAtPiA8Y29udHJvbD4KKyAgICAnXHg4YicgICAgICMgIDB4OEIgLT4gPGNvbnRyb2w+CisgICAgJ1x4OGMnICAgICAjICAweDhDIC0+IDxjb250cm9sPgorICAgICdceDhkJyAgICAgIyAgMHg4RCAtPiA8Y29udHJvbD4KKyAgICAnXHg4ZScgICAgICMgIDB4OEUgLT4gPGNvbnRyb2w+CisgICAgJ1x4OGYnICAgICAjICAweDhGIC0+IDxjb250cm9sPgorICAgICdceDkwJyAgICAgIyAgMHg5MCAtPiA8Y29udHJvbD4KKyAgICAnXHg5MScgICAgICMgIDB4OTEgLT4gPGNvbnRyb2w+CisgICAgJ1x4OTInICAgICAjICAweDkyIC0+IDxjb250cm9sPgorICAgICdceDkzJyAgICAgIyAgMHg5MyAtPiA8Y29udHJvbD4KKyAgICAnXHg5NCcgICAgICMgIDB4OTQgLT4gPGNvbnRyb2w+CisgICAgJ1x4OTUnICAgICAjICAweDk1IC0+IDxjb250cm9sPgorICAgICdceDk2JyAgICAgIyAgMHg5NiAtPiA8Y29udHJvbD4KKyAgICAnXHg5NycgICAgICMgIDB4OTcgLT4gPGNvbnRyb2w+CisgICAgJ1x4OTgnICAgICAjICAweDk4IC0+IDxjb250cm9sPgorICAgICdceDk5JyAgICAgIyAgMHg5OSAtPiA8Y29udHJvbD4KKyAgICAnXHg5YScgICAgICMgIDB4OUEgLT4gPGNvbnRyb2w+CisgICAgJ1x4OWInICAgICAjICAweDlCIC0+IDxjb250cm9sPgorICAgICdceDljJyAgICAgIyAgMHg5QyAtPiA8Y29udHJvbD4KKyAgICAnXHg5ZCcgICAgICMgIDB4OUQgLT4gPGNvbnRyb2w+CisgICAgJ1x4OWUnICAgICAjICAweDlFIC0+IDxjb250cm9sPgorICAgICdceDlmJyAgICAgIyAgMHg5RiAtPiA8Y29udHJvbD4KKyAgICAnXHhhMCcgICAgICMgIDB4QTAgLT4gTk8tQlJFQUsgU1BBQ0UKKyAgICAnXHhjMCcgICAgICMgIDB4QTEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEdSQVZFCisgICAgJ1x4YzInICAgICAjICAweEEyIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYCisgICAgJ1x4YzgnICAgICAjICAweEEzIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBHUkFWRQorICAgICdceGNhJyAgICAgIyAgMHhBNCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAorICAgICdceGNiJyAgICAgIyAgMHhBNSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTCisgICAgJ1x4Y2UnICAgICAjICAweEE2IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBDSVJDVU1GTEVYCisgICAgJ1x4Y2YnICAgICAjICAweEE3IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMKKyAgICAnXHhiNCcgICAgICMgIDB4QTggLT4gQUNVVEUgQUNDRU5UCisgICAgJ1x1MDJjYicgICAjICAweEE5IC0+IE1PRElGSUVSIExFVFRFUiBHUkFWRSBBQ0NFTlQgKE1BTkRBUklOIENISU5FU0UgRk9VUlRIIFRPTkUpCisgICAgJ1x1MDJjNicgICAjICAweEFBIC0+IE1PRElGSUVSIExFVFRFUiBDSVJDVU1GTEVYIEFDQ0VOVAorICAgICdceGE4JyAgICAgIyAgMHhBQiAtPiBESUFFUkVTSVMKKyAgICAnXHUwMmRjJyAgICMgIDB4QUMgLT4gU01BTEwgVElMREUKKyAgICAnXHhkOScgICAgICMgIDB4QUQgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEdSQVZFCisgICAgJ1x4ZGInICAgICAjICAweEFFIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYCisgICAgJ1x1MjBhNCcgICAjICAweEFGIC0+IExJUkEgU0lHTgorICAgICdceGFmJyAgICAgIyAgMHhCMCAtPiBNQUNST04KKyAgICAnXHhkZCcgICAgICMgIDB4QjEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEFDVVRFCisgICAgJ1x4ZmQnICAgICAjICAweEIyIC0+IExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQUNVVEUKKyAgICAnXHhiMCcgICAgICMgIDB4QjMgLT4gREVHUkVFIFNJR04KKyAgICAnXHhjNycgICAgICMgIDB4QjQgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEEKKyAgICAnXHhlNycgICAgICMgIDB4QjUgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBCisgICAgJ1x4ZDEnICAgICAjICAweEI2IC0+IExBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBUSUxERQorICAgICdceGYxJyAgICAgIyAgMHhCNyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIFRJTERFCisgICAgJ1x4YTEnICAgICAjICAweEI4IC0+IElOVkVSVEVEIEVYQ0xBTUFUSU9OIE1BUksKKyAgICAnXHhiZicgICAgICMgIDB4QjkgLT4gSU5WRVJURUQgUVVFU1RJT04gTUFSSworICAgICdceGE0JyAgICAgIyAgMHhCQSAtPiBDVVJSRU5DWSBTSUdOCisgICAgJ1x4YTMnICAgICAjICAweEJCIC0+IFBPVU5EIFNJR04KKyAgICAnXHhhNScgICAgICMgIDB4QkMgLT4gWUVOIFNJR04KKyAgICAnXHhhNycgICAgICMgIDB4QkQgLT4gU0VDVElPTiBTSUdOCisgICAgJ1x1MDE5MicgICAjICAweEJFIC0+IExBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggSE9PSworICAgICdceGEyJyAgICAgIyAgMHhCRiAtPiBDRU5UIFNJR04KKyAgICAnXHhlMicgICAgICMgIDB4QzAgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBDSVJDVU1GTEVYCisgICAgJ1x4ZWEnICAgICAjICAweEMxIC0+IExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAorICAgICdceGY0JyAgICAgIyAgMHhDMiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHhmYicgICAgICMgIDB4QzMgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBDSVJDVU1GTEVYCisgICAgJ1x4ZTEnICAgICAjICAweEM0IC0+IExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQUNVVEUKKyAgICAnXHhlOScgICAgICMgIDB4QzUgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBBQ1VURQorICAgICdceGYzJyAgICAgIyAgMHhDNiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEFDVVRFCisgICAgJ1x4ZmEnICAgICAjICAweEM3IC0+IExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQUNVVEUKKyAgICAnXHhlMCcgICAgICMgIDB4QzggLT4gTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBHUkFWRQorICAgICdceGU4JyAgICAgIyAgMHhDOSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEdSQVZFCisgICAgJ1x4ZjInICAgICAjICAweENBIC0+IExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggR1JBVkUKKyAgICAnXHhmOScgICAgICMgIDB4Q0IgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBHUkFWRQorICAgICdceGU0JyAgICAgIyAgMHhDQyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUworICAgICdceGViJyAgICAgIyAgMHhDRCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERJQUVSRVNJUworICAgICdceGY2JyAgICAgIyAgMHhDRSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERJQUVSRVNJUworICAgICdceGZjJyAgICAgIyAgMHhDRiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUworICAgICdceGM1JyAgICAgIyAgMHhEMCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRQorICAgICdceGVlJyAgICAgIyAgMHhEMSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHhkOCcgICAgICMgIDB4RDIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFNUUk9LRQorICAgICdceGM2JyAgICAgIyAgMHhEMyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBBRQorICAgICdceGU1JyAgICAgIyAgMHhENCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUKKyAgICAnXHhlZCcgICAgICMgIDB4RDUgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBBQ1VURQorICAgICdceGY4JyAgICAgIyAgMHhENiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFNUUk9LRQorICAgICdceGU2JyAgICAgIyAgMHhENyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQUUKKyAgICAnXHhjNCcgICAgICMgIDB4RDggLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUworICAgICdceGVjJyAgICAgIyAgMHhEOSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEdSQVZFCisgICAgJ1x4ZDYnICAgICAjICAweERBIC0+IExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAnXHhkYycgICAgICMgIDB4REIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUworICAgICdceGM5JyAgICAgIyAgMHhEQyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQUNVVEUKKyAgICAnXHhlZicgICAgICMgIDB4REQgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBESUFFUkVTSVMKKyAgICAnXHhkZicgICAgICMgIDB4REUgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMgKEdFUk1BTikKKyAgICAnXHhkNCcgICAgICMgIDB4REYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHhjMScgICAgICMgIDB4RTAgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFCisgICAgJ1x4YzMnICAgICAjICAweEUxIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBUSUxERQorICAgICdceGUzJyAgICAgIyAgMHhFMiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFRJTERFCisgICAgJ1x4ZDAnICAgICAjICAweEUzIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEVUSCAoSUNFTEFORElDKQorICAgICdceGYwJyAgICAgIyAgMHhFNCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRVRIIChJQ0VMQU5ESUMpCisgICAgJ1x4Y2QnICAgICAjICAweEU1IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURQorICAgICdceGNjJyAgICAgIyAgMHhFNiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggR1JBVkUKKyAgICAnXHhkMycgICAgICMgIDB4RTcgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIEFDVVRFCisgICAgJ1x4ZDInICAgICAjICAweEU4IC0+IExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBHUkFWRQorICAgICdceGQ1JyAgICAgIyAgMHhFOSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUKKyAgICAnXHhmNScgICAgICMgIDB4RUEgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERQorICAgICdcdTAxNjAnICAgIyAgMHhFQiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST04KKyAgICAnXHUwMTYxJyAgICMgIDB4RUMgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFMgV0lUSCBDQVJPTgorICAgICdceGRhJyAgICAgIyAgMHhFRCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEUKKyAgICAnXHUwMTc4JyAgICMgIDB4RUUgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUworICAgICdceGZmJyAgICAgIyAgMHhFRiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUworICAgICdceGRlJyAgICAgIyAgMHhGMCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBUSE9STiAoSUNFTEFORElDKQorICAgICdceGZlJyAgICAgIyAgMHhGMSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVEhPUk4gKElDRUxBTkRJQykKKyAgICAnXHhiNycgICAgICMgIDB4RjIgLT4gTUlERExFIERPVAorICAgICdceGI1JyAgICAgIyAgMHhGMyAtPiBNSUNSTyBTSUdOCisgICAgJ1x4YjYnICAgICAjICAweEY0IC0+IFBJTENST1cgU0lHTgorICAgICdceGJlJyAgICAgIyAgMHhGNSAtPiBWVUxHQVIgRlJBQ1RJT04gVEhSRUUgUVVBUlRFUlMKKyAgICAnXHUyMDE0JyAgICMgIDB4RjYgLT4gRU0gREFTSAorICAgICdceGJjJyAgICAgIyAgMHhGNyAtPiBWVUxHQVIgRlJBQ1RJT04gT05FIFFVQVJURVIKKyAgICAnXHhiZCcgICAgICMgIDB4RjggLT4gVlVMR0FSIEZSQUNUSU9OIE9ORSBIQUxGCisgICAgJ1x4YWEnICAgICAjICAweEY5IC0+IEZFTUlOSU5FIE9SRElOQUwgSU5ESUNBVE9SCisgICAgJ1x4YmEnICAgICAjICAweEZBIC0+IE1BU0NVTElORSBPUkRJTkFMIElORElDQVRPUgorICAgICdceGFiJyAgICAgIyAgMHhGQiAtPiBMRUZULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSworICAgICdcdTI1YTAnICAgIyAgMHhGQyAtPiBCTEFDSyBTUVVBUkUKKyAgICAnXHhiYicgICAgICMgIDB4RkQgLT4gUklHSFQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgJ1x4YjEnICAgICAjICAweEZFIC0+IFBMVVMtTUlOVVMgU0lHTgorICAgICdcdWZmZmUnCispCiAKLWVuY29kaW5nX21hcCA9IGNvZGVjcy5tYWtlX2VuY29kaW5nX21hcChkZWNvZGluZ19tYXApCisjIyMgRW5jb2RpbmcgdGFibGUKK2VuY29kaW5nX3RhYmxlPWNvZGVjcy5jaGFybWFwX2J1aWxkKGRlY29kaW5nX3RhYmxlKQpkaWZmIC0tZ2l0IGEvTGliL2VuY29kaW5ncy9pZG5hLnB5IGIvTGliL2VuY29kaW5ncy9pZG5hLnB5CmluZGV4IDU4M2JkZjEuLmVhNDA1ODUgMTAwNjQ0Ci0tLSBhL0xpYi9lbmNvZGluZ3MvaWRuYS5weQorKysgYi9MaWIvZW5jb2RpbmdzL2lkbmEucHkKQEAgLTE1Myw2ICsxNTMsMjAgQEAKICAgICAgICAgaWYgbm90IGlucHV0OgogICAgICAgICAgICAgcmV0dXJuIGInJywgMAogCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IGlucHV0LmVuY29kZSgnYXNjaWknKQorICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBBU0NJSSBuYW1lOiBmYXN0IHBhdGgKKyAgICAgICAgICAgIGxhYmVscyA9IHJlc3VsdC5zcGxpdChiJy4nKQorICAgICAgICAgICAgZm9yIGxhYmVsIGluIGxhYmVsc1s6LTFdOgorICAgICAgICAgICAgICAgIGlmIG5vdCAoMCA8IGxlbihsYWJlbCkgPCA2NCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFVuaWNvZGVFcnJvcigibGFiZWwgZW1wdHkgb3IgdG9vIGxvbmciKQorICAgICAgICAgICAgaWYgbGVuKGxhYmVsc1stMV0pID49IDY0OgorICAgICAgICAgICAgICAgIHJhaXNlIFVuaWNvZGVFcnJvcigibGFiZWwgdG9vIGxvbmciKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCwgbGVuKGlucHV0KQorCiAgICAgICAgIHJlc3VsdCA9IGJ5dGVhcnJheSgpCiAgICAgICAgIGxhYmVscyA9IGRvdHMuc3BsaXQoaW5wdXQpCiAgICAgICAgIGlmIGxhYmVscyBhbmQgbm90IGxhYmVsc1stMV06CkBAIC0xNzksNiArMTkzLDE0IEBACiAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGlucHV0LCBieXRlcyk6CiAgICAgICAgICAgICAjIFhYWCBvYnZpb3VzbHkgd3JvbmcsIHNlZSAjMzIzMgogICAgICAgICAgICAgaW5wdXQgPSBieXRlcyhpbnB1dCkKKworICAgICAgICBpZiBhY2VfcHJlZml4IG5vdCBpbiBpbnB1dDoKKyAgICAgICAgICAgICMgRmFzdCBwYXRoCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlucHV0LmRlY29kZSgnYXNjaWknKSwgbGVuKGlucHV0KQorICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisKICAgICAgICAgbGFiZWxzID0gaW5wdXQuc3BsaXQoYiIuIikKIAogICAgICAgICBpZiBsYWJlbHMgYW5kIGxlbihsYWJlbHNbLTFdKSA9PSAwOgpkaWZmIC0tZ2l0IGEvTGliL2VuY29kaW5ncy9pc284ODU5XzEucHkgYi9MaWIvZW5jb2RpbmdzL2lzbzg4NTlfMS5weQppbmRleCA4Y2ZjMDFmLi5kOWNjNTE2IDEwMDY0NAotLS0gYS9MaWIvZW5jb2RpbmdzL2lzbzg4NTlfMS5weQorKysgYi9MaWIvZW5jb2RpbmdzL2lzbzg4NTlfMS5weQpAQCAtMzAxLDYgKzMwMSw3IEBACiAgICAgJ1x4ZmQnICAgICAjICAweEZEIC0+IExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQUNVVEUKICAgICAnXHhmZScgICAgICMgIDB4RkUgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFRIT1JOIChJY2VsYW5kaWMpCiAgICAgJ1x4ZmYnICAgICAjICAweEZGIC0+IExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggRElBRVJFU0lTCisgICAgJ1x1ZmZmZScgICAjIyBXaWRlbiB0byBVQ1MyIGZvciBvcHRpbWl6YXRpb24KICkKIAogIyMjIEVuY29kaW5nIHRhYmxlCmRpZmYgLS1naXQgYS9MaWIvZW5jb2RpbmdzL21hY19sYXRpbjIucHkgYi9MaWIvZW5jb2RpbmdzL21hY19sYXRpbjIucHkKaW5kZXggZTMyMmJlMi4uZGE5ZDRiMSAxMDA2NDQKLS0tIGEvTGliL2VuY29kaW5ncy9tYWNfbGF0aW4yLnB5CisrKyBiL0xpYi9lbmNvZGluZ3MvbWFjX2xhdGluMi5weQpAQCAtMSw0ICsxLDQgQEAKLSIiIiBQeXRob24gQ2hhcmFjdGVyIE1hcHBpbmcgQ29kZWMgZ2VuZXJhdGVkIGZyb20gJ0xBVElOMi5UWFQnIHdpdGggZ2VuY29kZWMucHkuCisiIiIgUHl0aG9uIENoYXJhY3RlciBNYXBwaW5nIENvZGVjIG1hY19sYXRpbjIgZ2VuZXJhdGVkIGZyb20gJ01BUFBJTkdTL1ZFTkRPUlMvTUlDU0ZUL01BQy9MQVRJTjIuVFhUJyB3aXRoIGdlbmNvZGVjLnB5LgogCiBXcml0dGVuIGJ5IE1hcmMtQW5kcmUgTGVtYnVyZyAobWFsQGxlbWJ1cmcuY29tKS4KIApAQCAtMTQsMTggKzE0LDE4IEBACiBjbGFzcyBDb2RlYyhjb2RlY3MuQ29kZWMpOgogCiAgICAgZGVmIGVuY29kZShzZWxmLGlucHV0LGVycm9ycz0nc3RyaWN0Jyk6Ci0gICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9lbmNvZGUoaW5wdXQsZXJyb3JzLGVuY29kaW5nX21hcCkKKyAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2VuY29kZShpbnB1dCxlcnJvcnMsZW5jb2RpbmdfdGFibGUpCiAKICAgICBkZWYgZGVjb2RlKHNlbGYsaW5wdXQsZXJyb3JzPSdzdHJpY3QnKToKLSAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2RlY29kZShpbnB1dCxlcnJvcnMsZGVjb2RpbmdfbWFwKQorICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZGVjb2RlKGlucHV0LGVycm9ycyxkZWNvZGluZ190YWJsZSkKIAogY2xhc3MgSW5jcmVtZW50YWxFbmNvZGVyKGNvZGVjcy5JbmNyZW1lbnRhbEVuY29kZXIpOgogICAgIGRlZiBlbmNvZGUoc2VsZiwgaW5wdXQsIGZpbmFsPUZhbHNlKToKLSAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2VuY29kZShpbnB1dCxzZWxmLmVycm9ycyxlbmNvZGluZ19tYXApWzBdCisgICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9lbmNvZGUoaW5wdXQsc2VsZi5lcnJvcnMsZW5jb2RpbmdfdGFibGUpWzBdCiAKIGNsYXNzIEluY3JlbWVudGFsRGVjb2Rlcihjb2RlY3MuSW5jcmVtZW50YWxEZWNvZGVyKToKICAgICBkZWYgZGVjb2RlKHNlbGYsIGlucHV0LCBmaW5hbD1GYWxzZSk6Ci0gICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9kZWNvZGUoaW5wdXQsc2VsZi5lcnJvcnMsZGVjb2RpbmdfbWFwKVswXQorICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZGVjb2RlKGlucHV0LHNlbGYuZXJyb3JzLGRlY29kaW5nX3RhYmxlKVswXQogCiBjbGFzcyBTdHJlYW1Xcml0ZXIoQ29kZWMsY29kZWNzLlN0cmVhbVdyaXRlcik6CiAgICAgcGFzcwpAQCAtNDYsMTM4ICs0NiwyNjcgQEAKICAgICAgICAgc3RyZWFtd3JpdGVyPVN0cmVhbVdyaXRlciwKICAgICApCiAKLSMjIyBEZWNvZGluZyBNYXAKIAotZGVjb2RpbmdfbWFwID0gY29kZWNzLm1ha2VfaWRlbnRpdHlfZGljdChyYW5nZSgyNTYpKQotZGVjb2RpbmdfbWFwLnVwZGF0ZSh7Ci0gICAgICAgIDB4MDA4MDogMHgwMGM0LCAjIExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMDgxOiAweDAxMDAsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIE1BQ1JPTgotICAgICAgICAweDAwODI6IDB4MDEwMSwgIyBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIE1BQ1JPTgotICAgICAgICAweDAwODM6IDB4MDBjOSwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMDg0OiAweDAxMDQsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIE9HT05FSwotICAgICAgICAweDAwODU6IDB4MDBkNiwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTCi0gICAgICAgIDB4MDA4NjogMHgwMGRjLCAjIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMDg3OiAweDAwZTEsICMgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBBQ1VURQotICAgICAgICAweDAwODg6IDB4MDEwNSwgIyBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIE9HT05FSwotICAgICAgICAweDAwODk6IDB4MDEwYywgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQ0FST04KLSAgICAgICAgMHgwMDhhOiAweDAwZTQsICMgTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKLSAgICAgICAgMHgwMDhiOiAweDAxMGQsICMgTEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDQVJPTgotICAgICAgICAweDAwOGM6IDB4MDEwNiwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBDIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMDhkOiAweDAxMDcsICMgTEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBBQ1VURQotICAgICAgICAweDAwOGU6IDB4MDBlOSwgIyBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDA4ZjogMHgwMTc5LCAjIExBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBBQ1VURQotICAgICAgICAweDAwOTA6IDB4MDE3YSwgIyBMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDA5MTogMHgwMTBlLCAjIExBVElOIENBUElUQUwgTEVUVEVSIEQgV0lUSCBDQVJPTgotICAgICAgICAweDAwOTI6IDB4MDBlZCwgIyBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDA5MzogMHgwMTBmLCAjIExBVElOIFNNQUxMIExFVFRFUiBEIFdJVEggQ0FST04KLSAgICAgICAgMHgwMDk0OiAweDAxMTIsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE1BQ1JPTgotICAgICAgICAweDAwOTU6IDB4MDExMywgIyBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE1BQ1JPTgotICAgICAgICAweDAwOTY6IDB4MDExNiwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRE9UIEFCT1ZFCi0gICAgICAgIDB4MDA5NzogMHgwMGYzLCAjIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMDk4OiAweDAxMTcsICMgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBET1QgQUJPVkUKLSAgICAgICAgMHgwMDk5OiAweDAwZjQsICMgTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBDSVJDVU1GTEVYCi0gICAgICAgIDB4MDA5YTogMHgwMGY2LCAjIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTCi0gICAgICAgIDB4MDA5YjogMHgwMGY1LCAjIExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggVElMREUKLSAgICAgICAgMHgwMDljOiAweDAwZmEsICMgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBBQ1VURQotICAgICAgICAweDAwOWQ6IDB4MDExYSwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0FST04KLSAgICAgICAgMHgwMDllOiAweDAxMWIsICMgTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBDQVJPTgotICAgICAgICAweDAwOWY6IDB4MDBmYywgIyBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUwotICAgICAgICAweDAwYTA6IDB4MjAyMCwgIyBEQUdHRVIKLSAgICAgICAgMHgwMGExOiAweDAwYjAsICMgREVHUkVFIFNJR04KLSAgICAgICAgMHgwMGEyOiAweDAxMTgsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIE9HT05FSwotICAgICAgICAweDAwYTQ6IDB4MDBhNywgIyBTRUNUSU9OIFNJR04KLSAgICAgICAgMHgwMGE1OiAweDIwMjIsICMgQlVMTEVUCi0gICAgICAgIDB4MDBhNjogMHgwMGI2LCAjIFBJTENST1cgU0lHTgotICAgICAgICAweDAwYTc6IDB4MDBkZiwgIyBMQVRJTiBTTUFMTCBMRVRURVIgU0hBUlAgUwotICAgICAgICAweDAwYTg6IDB4MDBhZSwgIyBSRUdJU1RFUkVEIFNJR04KLSAgICAgICAgMHgwMGFhOiAweDIxMjIsICMgVFJBREUgTUFSSyBTSUdOCi0gICAgICAgIDB4MDBhYjogMHgwMTE5LCAjIExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggT0dPTkVLCi0gICAgICAgIDB4MDBhYzogMHgwMGE4LCAjIERJQUVSRVNJUwotICAgICAgICAweDAwYWQ6IDB4MjI2MCwgIyBOT1QgRVFVQUwgVE8KLSAgICAgICAgMHgwMGFlOiAweDAxMjMsICMgTEFUSU4gU01BTEwgTEVUVEVSIEcgV0lUSCBDRURJTExBCi0gICAgICAgIDB4MDBhZjogMHgwMTJlLCAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBPR09ORUsKLSAgICAgICAgMHgwMGIwOiAweDAxMmYsICMgTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBPR09ORUsKLSAgICAgICAgMHgwMGIxOiAweDAxMmEsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIE1BQ1JPTgotICAgICAgICAweDAwYjI6IDB4MjI2NCwgIyBMRVNTLVRIQU4gT1IgRVFVQUwgVE8KLSAgICAgICAgMHgwMGIzOiAweDIyNjUsICMgR1JFQVRFUi1USEFOIE9SIEVRVUFMIFRPCi0gICAgICAgIDB4MDBiNDogMHgwMTJiLCAjIExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggTUFDUk9OCi0gICAgICAgIDB4MDBiNTogMHgwMTM2LCAjIExBVElOIENBUElUQUwgTEVUVEVSIEsgV0lUSCBDRURJTExBCi0gICAgICAgIDB4MDBiNjogMHgyMjAyLCAjIFBBUlRJQUwgRElGRkVSRU5USUFMCi0gICAgICAgIDB4MDBiNzogMHgyMjExLCAjIE4tQVJZIFNVTU1BVElPTgotICAgICAgICAweDAwYjg6IDB4MDE0MiwgIyBMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIFNUUk9LRQotICAgICAgICAweDAwYjk6IDB4MDEzYiwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggQ0VESUxMQQotICAgICAgICAweDAwYmE6IDB4MDEzYywgIyBMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENFRElMTEEKLSAgICAgICAgMHgwMGJiOiAweDAxM2QsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENBUk9OCi0gICAgICAgIDB4MDBiYzogMHgwMTNlLCAjIExBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQ0FST04KLSAgICAgICAgMHgwMGJkOiAweDAxMzksICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDBiZTogMHgwMTNhLCAjIExBVElOIFNNQUxMIExFVFRFUiBMIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMGJmOiAweDAxNDUsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIENFRElMTEEKLSAgICAgICAgMHgwMGMwOiAweDAxNDYsICMgTEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDRURJTExBCi0gICAgICAgIDB4MDBjMTogMHgwMTQzLCAjIExBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBBQ1VURQotICAgICAgICAweDAwYzI6IDB4MDBhYywgIyBOT1QgU0lHTgotICAgICAgICAweDAwYzM6IDB4MjIxYSwgIyBTUVVBUkUgUk9PVAotICAgICAgICAweDAwYzQ6IDB4MDE0NCwgIyBMQVRJTiBTTUFMTCBMRVRURVIgTiBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDBjNTogMHgwMTQ3LCAjIExBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDQVJPTgotICAgICAgICAweDAwYzY6IDB4MjIwNiwgIyBJTkNSRU1FTlQKLSAgICAgICAgMHgwMGM3OiAweDAwYWIsICMgTEVGVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUksKLSAgICAgICAgMHgwMGM4OiAweDAwYmIsICMgUklHSFQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDBjOTogMHgyMDI2LCAjIEhPUklaT05UQUwgRUxMSVBTSVMKLSAgICAgICAgMHgwMGNhOiAweDAwYTAsICMgTk8tQlJFQUsgU1BBQ0UKLSAgICAgICAgMHgwMGNiOiAweDAxNDgsICMgTEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBDQVJPTgotICAgICAgICAweDAwY2M6IDB4MDE1MCwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggRE9VQkxFIEFDVVRFCi0gICAgICAgIDB4MDBjZDogMHgwMGQ1LCAjIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBUSUxERQotICAgICAgICAweDAwY2U6IDB4MDE1MSwgIyBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIERPVUJMRSBBQ1VURQotICAgICAgICAweDAwY2Y6IDB4MDE0YywgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggTUFDUk9OCi0gICAgICAgIDB4MDBkMDogMHgyMDEzLCAjIEVOIERBU0gKLSAgICAgICAgMHgwMGQxOiAweDIwMTQsICMgRU0gREFTSAotICAgICAgICAweDAwZDI6IDB4MjAxYywgIyBMRUZUIERPVUJMRSBRVU9UQVRJT04gTUFSSwotICAgICAgICAweDAwZDM6IDB4MjAxZCwgIyBSSUdIVCBET1VCTEUgUVVPVEFUSU9OIE1BUksKLSAgICAgICAgMHgwMGQ0OiAweDIwMTgsICMgTEVGVCBTSU5HTEUgUVVPVEFUSU9OIE1BUksKLSAgICAgICAgMHgwMGQ1OiAweDIwMTksICMgUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDBkNjogMHgwMGY3LCAjIERJVklTSU9OIFNJR04KLSAgICAgICAgMHgwMGQ3OiAweDI1Y2EsICMgTE9aRU5HRQotICAgICAgICAweDAwZDg6IDB4MDE0ZCwgIyBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIE1BQ1JPTgotICAgICAgICAweDAwZDk6IDB4MDE1NCwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMGRhOiAweDAxNTUsICMgTEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBBQ1VURQotICAgICAgICAweDAwZGI6IDB4MDE1OCwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBSIFdJVEggQ0FST04KLSAgICAgICAgMHgwMGRjOiAweDIwMzksICMgU0lOR0xFIExFRlQtUE9JTlRJTkcgQU5HTEUgUVVPVEFUSU9OIE1BUksKLSAgICAgICAgMHgwMGRkOiAweDIwM2EsICMgU0lOR0xFIFJJR0hULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDBkZTogMHgwMTU5LCAjIExBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQ0FST04KLSAgICAgICAgMHgwMGRmOiAweDAxNTYsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIENFRElMTEEKLSAgICAgICAgMHgwMGUwOiAweDAxNTcsICMgTEFUSU4gU01BTEwgTEVUVEVSIFIgV0lUSCBDRURJTExBCi0gICAgICAgIDB4MDBlMTogMHgwMTYwLCAjIExBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBDQVJPTgotICAgICAgICAweDAwZTI6IDB4MjAxYSwgIyBTSU5HTEUgTE9XLTkgUVVPVEFUSU9OIE1BUksKLSAgICAgICAgMHgwMGUzOiAweDIwMWUsICMgRE9VQkxFIExPVy05IFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDBlNDogMHgwMTYxLCAjIExBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQ0FST04KLSAgICAgICAgMHgwMGU1OiAweDAxNWEsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDBlNjogMHgwMTViLCAjIExBVElOIFNNQUxMIExFVFRFUiBTIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMGU3OiAweDAwYzEsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIEFDVVRFCi0gICAgICAgIDB4MDBlODogMHgwMTY0LCAjIExBVElOIENBUElUQUwgTEVUVEVSIFQgV0lUSCBDQVJPTgotICAgICAgICAweDAwZTk6IDB4MDE2NSwgIyBMQVRJTiBTTUFMTCBMRVRURVIgVCBXSVRIIENBUk9OCi0gICAgICAgIDB4MDBlYTogMHgwMGNkLCAjIExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBBQ1VURQotICAgICAgICAweDAwZWI6IDB4MDE3ZCwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBaIFdJVEggQ0FST04KLSAgICAgICAgMHgwMGVjOiAweDAxN2UsICMgTEFUSU4gU01BTEwgTEVUVEVSIFogV0lUSCBDQVJPTgotICAgICAgICAweDAwZWQ6IDB4MDE2YSwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggTUFDUk9OCi0gICAgICAgIDB4MDBlZTogMHgwMGQzLCAjIExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBBQ1VURQotICAgICAgICAweDAwZWY6IDB4MDBkNCwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWAotICAgICAgICAweDAwZjA6IDB4MDE2YiwgIyBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE1BQ1JPTgotICAgICAgICAweDAwZjE6IDB4MDE2ZSwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggUklORyBBQk9WRQotICAgICAgICAweDAwZjI6IDB4MDBkYSwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMGYzOiAweDAxNmYsICMgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBSSU5HIEFCT1ZFCi0gICAgICAgIDB4MDBmNDogMHgwMTcwLCAjIExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEUKLSAgICAgICAgMHgwMGY1OiAweDAxNzEsICMgTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBET1VCTEUgQUNVVEUKLSAgICAgICAgMHgwMGY2OiAweDAxNzIsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE9HT05FSwotICAgICAgICAweDAwZjc6IDB4MDE3MywgIyBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIE9HT05FSwotICAgICAgICAweDAwZjg6IDB4MDBkZCwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQUNVVEUKLSAgICAgICAgMHgwMGY5OiAweDAwZmQsICMgTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBBQ1VURQotICAgICAgICAweDAwZmE6IDB4MDEzNywgIyBMQVRJTiBTTUFMTCBMRVRURVIgSyBXSVRIIENFRElMTEEKLSAgICAgICAgMHgwMGZiOiAweDAxN2IsICMgTEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIERPVCBBQk9WRQotICAgICAgICAweDAwZmM6IDB4MDE0MSwgIyBMQVRJTiBDQVBJVEFMIExFVFRFUiBMIFdJVEggU1RST0tFCi0gICAgICAgIDB4MDBmZDogMHgwMTdjLCAjIExBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggRE9UIEFCT1ZFCi0gICAgICAgIDB4MDBmZTogMHgwMTIyLCAjIExBVElOIENBUElUQUwgTEVUVEVSIEcgV0lUSCBDRURJTExBCi0gICAgICAgIDB4MDBmZjogMHgwMmM3LCAjIENBUk9OCi19KQorIyMjIERlY29kaW5nIFRhYmxlCiAKLSMjIyBFbmNvZGluZyBNYXAKK2RlY29kaW5nX3RhYmxlID0gKAorICAgICdceDAwJyAgICAgIyAgMHgwMCAtPiBOVUxMCisgICAgJ1x4MDEnICAgICAjICAweDAxIC0+IFNUQVJUIE9GIEhFQURJTkcKKyAgICAnXHgwMicgICAgICMgIDB4MDIgLT4gU1RBUlQgT0YgVEVYVAorICAgICdceDAzJyAgICAgIyAgMHgwMyAtPiBFTkQgT0YgVEVYVAorICAgICdceDA0JyAgICAgIyAgMHgwNCAtPiBFTkQgT0YgVFJBTlNNSVNTSU9OCisgICAgJ1x4MDUnICAgICAjICAweDA1IC0+IEVOUVVJUlkKKyAgICAnXHgwNicgICAgICMgIDB4MDYgLT4gQUNLTk9XTEVER0UKKyAgICAnXHgwNycgICAgICMgIDB4MDcgLT4gQkVMTAorICAgICdceDA4JyAgICAgIyAgMHgwOCAtPiBCQUNLU1BBQ0UKKyAgICAnXHQnICAgICAgICMgIDB4MDkgLT4gSE9SSVpPTlRBTCBUQUJVTEFUSU9OCisgICAgJ1xuJyAgICAgICAjICAweDBBIC0+IExJTkUgRkVFRAorICAgICdceDBiJyAgICAgIyAgMHgwQiAtPiBWRVJUSUNBTCBUQUJVTEFUSU9OCisgICAgJ1x4MGMnICAgICAjICAweDBDIC0+IEZPUk0gRkVFRAorICAgICdccicgICAgICAgIyAgMHgwRCAtPiBDQVJSSUFHRSBSRVRVUk4KKyAgICAnXHgwZScgICAgICMgIDB4MEUgLT4gU0hJRlQgT1VUCisgICAgJ1x4MGYnICAgICAjICAweDBGIC0+IFNISUZUIElOCisgICAgJ1x4MTAnICAgICAjICAweDEwIC0+IERBVEEgTElOSyBFU0NBUEUKKyAgICAnXHgxMScgICAgICMgIDB4MTEgLT4gREVWSUNFIENPTlRST0wgT05FCisgICAgJ1x4MTInICAgICAjICAweDEyIC0+IERFVklDRSBDT05UUk9MIFRXTworICAgICdceDEzJyAgICAgIyAgMHgxMyAtPiBERVZJQ0UgQ09OVFJPTCBUSFJFRQorICAgICdceDE0JyAgICAgIyAgMHgxNCAtPiBERVZJQ0UgQ09OVFJPTCBGT1VSCisgICAgJ1x4MTUnICAgICAjICAweDE1IC0+IE5FR0FUSVZFIEFDS05PV0xFREdFCisgICAgJ1x4MTYnICAgICAjICAweDE2IC0+IFNZTkNIUk9OT1VTIElETEUKKyAgICAnXHgxNycgICAgICMgIDB4MTcgLT4gRU5EIE9GIFRSQU5TTUlTU0lPTiBCTE9DSworICAgICdceDE4JyAgICAgIyAgMHgxOCAtPiBDQU5DRUwKKyAgICAnXHgxOScgICAgICMgIDB4MTkgLT4gRU5EIE9GIE1FRElVTQorICAgICdceDFhJyAgICAgIyAgMHgxQSAtPiBTVUJTVElUVVRFCisgICAgJ1x4MWInICAgICAjICAweDFCIC0+IEVTQ0FQRQorICAgICdceDFjJyAgICAgIyAgMHgxQyAtPiBGSUxFIFNFUEFSQVRPUgorICAgICdceDFkJyAgICAgIyAgMHgxRCAtPiBHUk9VUCBTRVBBUkFUT1IKKyAgICAnXHgxZScgICAgICMgIDB4MUUgLT4gUkVDT1JEIFNFUEFSQVRPUgorICAgICdceDFmJyAgICAgIyAgMHgxRiAtPiBVTklUIFNFUEFSQVRPUgorICAgICcgJyAgICAgICAgIyAgMHgyMCAtPiBTUEFDRQorICAgICchJyAgICAgICAgIyAgMHgyMSAtPiBFWENMQU1BVElPTiBNQVJLCisgICAgJyInICAgICAgICAjICAweDIyIC0+IFFVT1RBVElPTiBNQVJLCisgICAgJyMnICAgICAgICAjICAweDIzIC0+IE5VTUJFUiBTSUdOCisgICAgJyQnICAgICAgICAjICAweDI0IC0+IERPTExBUiBTSUdOCisgICAgJyUnICAgICAgICAjICAweDI1IC0+IFBFUkNFTlQgU0lHTgorICAgICcmJyAgICAgICAgIyAgMHgyNiAtPiBBTVBFUlNBTkQKKyAgICAiJyIgICAgICAgICMgIDB4MjcgLT4gQVBPU1RST1BIRQorICAgICcoJyAgICAgICAgIyAgMHgyOCAtPiBMRUZUIFBBUkVOVEhFU0lTCisgICAgJyknICAgICAgICAjICAweDI5IC0+IFJJR0hUIFBBUkVOVEhFU0lTCisgICAgJyonICAgICAgICAjICAweDJBIC0+IEFTVEVSSVNLCisgICAgJysnICAgICAgICAjICAweDJCIC0+IFBMVVMgU0lHTgorICAgICcsJyAgICAgICAgIyAgMHgyQyAtPiBDT01NQQorICAgICctJyAgICAgICAgIyAgMHgyRCAtPiBIWVBIRU4tTUlOVVMKKyAgICAnLicgICAgICAgICMgIDB4MkUgLT4gRlVMTCBTVE9QCisgICAgJy8nICAgICAgICAjICAweDJGIC0+IFNPTElEVVMKKyAgICAnMCcgICAgICAgICMgIDB4MzAgLT4gRElHSVQgWkVSTworICAgICcxJyAgICAgICAgIyAgMHgzMSAtPiBESUdJVCBPTkUKKyAgICAnMicgICAgICAgICMgIDB4MzIgLT4gRElHSVQgVFdPCisgICAgJzMnICAgICAgICAjICAweDMzIC0+IERJR0lUIFRIUkVFCisgICAgJzQnICAgICAgICAjICAweDM0IC0+IERJR0lUIEZPVVIKKyAgICAnNScgICAgICAgICMgIDB4MzUgLT4gRElHSVQgRklWRQorICAgICc2JyAgICAgICAgIyAgMHgzNiAtPiBESUdJVCBTSVgKKyAgICAnNycgICAgICAgICMgIDB4MzcgLT4gRElHSVQgU0VWRU4KKyAgICAnOCcgICAgICAgICMgIDB4MzggLT4gRElHSVQgRUlHSFQKKyAgICAnOScgICAgICAgICMgIDB4MzkgLT4gRElHSVQgTklORQorICAgICc6JyAgICAgICAgIyAgMHgzQSAtPiBDT0xPTgorICAgICc7JyAgICAgICAgIyAgMHgzQiAtPiBTRU1JQ09MT04KKyAgICAnPCcgICAgICAgICMgIDB4M0MgLT4gTEVTUy1USEFOIFNJR04KKyAgICAnPScgICAgICAgICMgIDB4M0QgLT4gRVFVQUxTIFNJR04KKyAgICAnPicgICAgICAgICMgIDB4M0UgLT4gR1JFQVRFUi1USEFOIFNJR04KKyAgICAnPycgICAgICAgICMgIDB4M0YgLT4gUVVFU1RJT04gTUFSSworICAgICdAJyAgICAgICAgIyAgMHg0MCAtPiBDT01NRVJDSUFMIEFUCisgICAgJ0EnICAgICAgICAjICAweDQxIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEEKKyAgICAnQicgICAgICAgICMgIDB4NDIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQgorICAgICdDJyAgICAgICAgIyAgMHg0MyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBDCisgICAgJ0QnICAgICAgICAjICAweDQ0IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEQKKyAgICAnRScgICAgICAgICMgIDB4NDUgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgRQorICAgICdGJyAgICAgICAgIyAgMHg0NiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBGCisgICAgJ0cnICAgICAgICAjICAweDQ3IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEcKKyAgICAnSCcgICAgICAgICMgIDB4NDggLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgSAorICAgICdJJyAgICAgICAgIyAgMHg0OSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJCisgICAgJ0onICAgICAgICAjICAweDRBIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEoKKyAgICAnSycgICAgICAgICMgIDB4NEIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgSworICAgICdMJyAgICAgICAgIyAgMHg0QyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBMCisgICAgJ00nICAgICAgICAjICAweDREIC0+IExBVElOIENBUElUQUwgTEVUVEVSIE0KKyAgICAnTicgICAgICAgICMgIDB4NEUgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTgorICAgICdPJyAgICAgICAgIyAgMHg0RiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBPCisgICAgJ1AnICAgICAgICAjICAweDUwIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFAKKyAgICAnUScgICAgICAgICMgIDB4NTEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgUQorICAgICdSJyAgICAgICAgIyAgMHg1MiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBSCisgICAgJ1MnICAgICAgICAjICAweDUzIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFMKKyAgICAnVCcgICAgICAgICMgIDB4NTQgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVAorICAgICdVJyAgICAgICAgIyAgMHg1NSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBVCisgICAgJ1YnICAgICAgICAjICAweDU2IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFYKKyAgICAnVycgICAgICAgICMgIDB4NTcgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVworICAgICdYJyAgICAgICAgIyAgMHg1OCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBYCisgICAgJ1knICAgICAgICAjICAweDU5IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFkKKyAgICAnWicgICAgICAgICMgIDB4NUEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgWgorICAgICdbJyAgICAgICAgIyAgMHg1QiAtPiBMRUZUIFNRVUFSRSBCUkFDS0VUCisgICAgJ1xcJyAgICAgICAjICAweDVDIC0+IFJFVkVSU0UgU09MSURVUworICAgICddJyAgICAgICAgIyAgMHg1RCAtPiBSSUdIVCBTUVVBUkUgQlJBQ0tFVAorICAgICdeJyAgICAgICAgIyAgMHg1RSAtPiBDSVJDVU1GTEVYIEFDQ0VOVAorICAgICdfJyAgICAgICAgIyAgMHg1RiAtPiBMT1cgTElORQorICAgICdgJyAgICAgICAgIyAgMHg2MCAtPiBHUkFWRSBBQ0NFTlQKKyAgICAnYScgICAgICAgICMgIDB4NjEgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEEKKyAgICAnYicgICAgICAgICMgIDB4NjIgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEIKKyAgICAnYycgICAgICAgICMgIDB4NjMgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEMKKyAgICAnZCcgICAgICAgICMgIDB4NjQgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEQKKyAgICAnZScgICAgICAgICMgIDB4NjUgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEUKKyAgICAnZicgICAgICAgICMgIDB4NjYgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEYKKyAgICAnZycgICAgICAgICMgIDB4NjcgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEcKKyAgICAnaCcgICAgICAgICMgIDB4NjggLT4gTEFUSU4gU01BTEwgTEVUVEVSIEgKKyAgICAnaScgICAgICAgICMgIDB4NjkgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEkKKyAgICAnaicgICAgICAgICMgIDB4NkEgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEoKKyAgICAnaycgICAgICAgICMgIDB4NkIgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEsKKyAgICAnbCcgICAgICAgICMgIDB4NkMgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEwKKyAgICAnbScgICAgICAgICMgIDB4NkQgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE0KKyAgICAnbicgICAgICAgICMgIDB4NkUgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE4KKyAgICAnbycgICAgICAgICMgIDB4NkYgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE8KKyAgICAncCcgICAgICAgICMgIDB4NzAgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFAKKyAgICAncScgICAgICAgICMgIDB4NzEgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFEKKyAgICAncicgICAgICAgICMgIDB4NzIgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFIKKyAgICAncycgICAgICAgICMgIDB4NzMgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFMKKyAgICAndCcgICAgICAgICMgIDB4NzQgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFQKKyAgICAndScgICAgICAgICMgIDB4NzUgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFUKKyAgICAndicgICAgICAgICMgIDB4NzYgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFYKKyAgICAndycgICAgICAgICMgIDB4NzcgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFcKKyAgICAneCcgICAgICAgICMgIDB4NzggLT4gTEFUSU4gU01BTEwgTEVUVEVSIFgKKyAgICAneScgICAgICAgICMgIDB4NzkgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFkKKyAgICAneicgICAgICAgICMgIDB4N0EgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFoKKyAgICAneycgICAgICAgICMgIDB4N0IgLT4gTEVGVCBDVVJMWSBCUkFDS0VUCisgICAgJ3wnICAgICAgICAjICAweDdDIC0+IFZFUlRJQ0FMIExJTkUKKyAgICAnfScgICAgICAgICMgIDB4N0QgLT4gUklHSFQgQ1VSTFkgQlJBQ0tFVAorICAgICd+JyAgICAgICAgIyAgMHg3RSAtPiBUSUxERQorICAgICdceDdmJyAgICAgIyAgMHg3RiAtPiBERUxFVEUKKyAgICAnXHhjNCcgICAgICMgIDB4ODAgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUworICAgICdcdTAxMDAnICAgIyAgMHg4MSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggTUFDUk9OCisgICAgJ1x1MDEwMScgICAjICAweDgyIC0+IExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggTUFDUk9OCisgICAgJ1x4YzknICAgICAjICAweDgzIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBBQ1VURQorICAgICdcdTAxMDQnICAgIyAgMHg4NCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggT0dPTkVLCisgICAgJ1x4ZDYnICAgICAjICAweDg1IC0+IExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAnXHhkYycgICAgICMgIDB4ODYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUworICAgICdceGUxJyAgICAgIyAgMHg4NyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEFDVVRFCisgICAgJ1x1MDEwNScgICAjICAweDg4IC0+IExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggT0dPTkVLCisgICAgJ1x1MDEwYycgICAjICAweDg5IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDQVJPTgorICAgICdceGU0JyAgICAgIyAgMHg4QSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIERJQUVSRVNJUworICAgICdcdTAxMGQnICAgIyAgMHg4QiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIENBUk9OCisgICAgJ1x1MDEwNicgICAjICAweDhDIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEMgV0lUSCBBQ1VURQorICAgICdcdTAxMDcnICAgIyAgMHg4RCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQyBXSVRIIEFDVVRFCisgICAgJ1x4ZTknICAgICAjICAweDhFIC0+IExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggQUNVVEUKKyAgICAnXHUwMTc5JyAgICMgIDB4OEYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIEFDVVRFCisgICAgJ1x1MDE3YScgICAjICAweDkwIC0+IExBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQUNVVEUKKyAgICAnXHUwMTBlJyAgICMgIDB4OTEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgRCBXSVRIIENBUk9OCisgICAgJ1x4ZWQnICAgICAjICAweDkyIC0+IExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAnXHUwMTBmJyAgICMgIDB4OTMgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEQgV0lUSCBDQVJPTgorICAgICdcdTAxMTInICAgIyAgMHg5NCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggTUFDUk9OCisgICAgJ1x1MDExMycgICAjICAweDk1IC0+IExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggTUFDUk9OCisgICAgJ1x1MDExNicgICAjICAweDk2IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBET1QgQUJPVkUKKyAgICAnXHhmMycgICAgICMgIDB4OTcgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBBQ1VURQorICAgICdcdTAxMTcnICAgIyAgMHg5OCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIERPVCBBQk9WRQorICAgICdceGY0JyAgICAgIyAgMHg5OSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHhmNicgICAgICMgIDB4OUEgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAnXHhmNScgICAgICMgIDB4OUIgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBUSUxERQorICAgICdceGZhJyAgICAgIyAgMHg5QyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFCisgICAgJ1x1MDExYScgICAjICAweDlEIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBDQVJPTgorICAgICdcdTAxMWInICAgIyAgMHg5RSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENBUk9OCisgICAgJ1x4ZmMnICAgICAjICAweDlGIC0+IExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRElBRVJFU0lTCisgICAgJ1x1MjAyMCcgICAjICAweEEwIC0+IERBR0dFUgorICAgICdceGIwJyAgICAgIyAgMHhBMSAtPiBERUdSRUUgU0lHTgorICAgICdcdTAxMTgnICAgIyAgMHhBMiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggT0dPTkVLCisgICAgJ1x4YTMnICAgICAjICAweEEzIC0+IFBPVU5EIFNJR04KKyAgICAnXHhhNycgICAgICMgIDB4QTQgLT4gU0VDVElPTiBTSUdOCisgICAgJ1x1MjAyMicgICAjICAweEE1IC0+IEJVTExFVAorICAgICdceGI2JyAgICAgIyAgMHhBNiAtPiBQSUxDUk9XIFNJR04KKyAgICAnXHhkZicgICAgICMgIDB4QTcgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKyAgICAnXHhhZScgICAgICMgIDB4QTggLT4gUkVHSVNURVJFRCBTSUdOCisgICAgJ1x4YTknICAgICAjICAweEE5IC0+IENPUFlSSUdIVCBTSUdOCisgICAgJ1x1MjEyMicgICAjICAweEFBIC0+IFRSQURFIE1BUksgU0lHTgorICAgICdcdTAxMTknICAgIyAgMHhBQiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIE9HT05FSworICAgICdceGE4JyAgICAgIyAgMHhBQyAtPiBESUFFUkVTSVMKKyAgICAnXHUyMjYwJyAgICMgIDB4QUQgLT4gTk9UIEVRVUFMIFRPCisgICAgJ1x1MDEyMycgICAjICAweEFFIC0+IExBVElOIFNNQUxMIExFVFRFUiBHIFdJVEggQ0VESUxMQQorICAgICdcdTAxMmUnICAgIyAgMHhBRiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggT0dPTkVLCisgICAgJ1x1MDEyZicgICAjICAweEIwIC0+IExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggT0dPTkVLCisgICAgJ1x1MDEyYScgICAjICAweEIxIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBNQUNST04KKyAgICAnXHUyMjY0JyAgICMgIDB4QjIgLT4gTEVTUy1USEFOIE9SIEVRVUFMIFRPCisgICAgJ1x1MjI2NScgICAjICAweEIzIC0+IEdSRUFURVItVEhBTiBPUiBFUVVBTCBUTworICAgICdcdTAxMmInICAgIyAgMHhCNCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIE1BQ1JPTgorICAgICdcdTAxMzYnICAgIyAgMHhCNSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBLIFdJVEggQ0VESUxMQQorICAgICdcdTIyMDInICAgIyAgMHhCNiAtPiBQQVJUSUFMIERJRkZFUkVOVElBTAorICAgICdcdTIyMTEnICAgIyAgMHhCNyAtPiBOLUFSWSBTVU1NQVRJT04KKyAgICAnXHUwMTQyJyAgICMgIDB4QjggLT4gTEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBTVFJPS0UKKyAgICAnXHUwMTNiJyAgICMgIDB4QjkgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIENFRElMTEEKKyAgICAnXHUwMTNjJyAgICMgIDB4QkEgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEwgV0lUSCBDRURJTExBCisgICAgJ1x1MDEzZCcgICAjICAweEJCIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBDQVJPTgorICAgICdcdTAxM2UnICAgIyAgMHhCQyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIENBUk9OCisgICAgJ1x1MDEzOScgICAjICAweEJEIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEwgV0lUSCBBQ1VURQorICAgICdcdTAxM2EnICAgIyAgMHhCRSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTCBXSVRIIEFDVVRFCisgICAgJ1x1MDE0NScgICAjICAweEJGIC0+IExBVElOIENBUElUQUwgTEVUVEVSIE4gV0lUSCBDRURJTExBCisgICAgJ1x1MDE0NicgICAjICAweEMwIC0+IExBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0VESUxMQQorICAgICdcdTAxNDMnICAgIyAgMHhDMSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQUNVVEUKKyAgICAnXHhhYycgICAgICMgIDB4QzIgLT4gTk9UIFNJR04KKyAgICAnXHUyMjFhJyAgICMgIDB4QzMgLT4gU1FVQVJFIFJPT1QKKyAgICAnXHUwMTQ0JyAgICMgIDB4QzQgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE4gV0lUSCBBQ1VURQorICAgICdcdTAxNDcnICAgIyAgMHhDNSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBOIFdJVEggQ0FST04KKyAgICAnXHUyMjA2JyAgICMgIDB4QzYgLT4gSU5DUkVNRU5UCisgICAgJ1x4YWInICAgICAjICAweEM3IC0+IExFRlQtUE9JTlRJTkcgRE9VQkxFIEFOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgJ1x4YmInICAgICAjICAweEM4IC0+IFJJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSworICAgICdcdTIwMjYnICAgIyAgMHhDOSAtPiBIT1JJWk9OVEFMIEVMTElQU0lTCisgICAgJ1x4YTAnICAgICAjICAweENBIC0+IE5PLUJSRUFLIFNQQUNFCisgICAgJ1x1MDE0OCcgICAjICAweENCIC0+IExBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggQ0FST04KKyAgICAnXHUwMTUwJyAgICMgIDB4Q0MgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIERPVUJMRSBBQ1VURQorICAgICdceGQ1JyAgICAgIyAgMHhDRCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggVElMREUKKyAgICAnXHUwMTUxJyAgICMgIDB4Q0UgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBET1VCTEUgQUNVVEUKKyAgICAnXHUwMTRjJyAgICMgIDB4Q0YgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIE1BQ1JPTgorICAgICdcdTIwMTMnICAgIyAgMHhEMCAtPiBFTiBEQVNICisgICAgJ1x1MjAxNCcgICAjICAweEQxIC0+IEVNIERBU0gKKyAgICAnXHUyMDFjJyAgICMgIDB4RDIgLT4gTEVGVCBET1VCTEUgUVVPVEFUSU9OIE1BUksKKyAgICAnXHUyMDFkJyAgICMgIDB4RDMgLT4gUklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLCisgICAgJ1x1MjAxOCcgICAjICAweEQ0IC0+IExFRlQgU0lOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgJ1x1MjAxOScgICAjICAweEQ1IC0+IFJJR0hUIFNJTkdMRSBRVU9UQVRJT04gTUFSSworICAgICdceGY3JyAgICAgIyAgMHhENiAtPiBESVZJU0lPTiBTSUdOCisgICAgJ1x1MjVjYScgICAjICAweEQ3IC0+IExPWkVOR0UKKyAgICAnXHUwMTRkJyAgICMgIDB4RDggLT4gTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBNQUNST04KKyAgICAnXHUwMTU0JyAgICMgIDB4RDkgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIEFDVVRFCisgICAgJ1x1MDE1NScgICAjICAweERBIC0+IExBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQUNVVEUKKyAgICAnXHUwMTU4JyAgICMgIDB4REIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgUiBXSVRIIENBUk9OCisgICAgJ1x1MjAzOScgICAjICAweERDIC0+IFNJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgJ1x1MjAzYScgICAjICAweEREIC0+IFNJTkdMRSBSSUdIVC1QT0lOVElORyBBTkdMRSBRVU9UQVRJT04gTUFSSworICAgICdcdTAxNTknICAgIyAgMHhERSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgUiBXSVRIIENBUk9OCisgICAgJ1x1MDE1NicgICAjICAweERGIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFIgV0lUSCBDRURJTExBCisgICAgJ1x1MDE1NycgICAjICAweEUwIC0+IExBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggQ0VESUxMQQorICAgICdcdTAxNjAnICAgIyAgMHhFMSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBTIFdJVEggQ0FST04KKyAgICAnXHUyMDFhJyAgICMgIDB4RTIgLT4gU0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLCisgICAgJ1x1MjAxZScgICAjICAweEUzIC0+IERPVUJMRSBMT1ctOSBRVU9UQVRJT04gTUFSSworICAgICdcdTAxNjEnICAgIyAgMHhFNCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OCisgICAgJ1x1MDE1YScgICAjICAweEU1IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFMgV0lUSCBBQ1VURQorICAgICdcdTAxNWInICAgIyAgMHhFNiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIEFDVVRFCisgICAgJ1x4YzEnICAgICAjICAweEU3IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBBQ1VURQorICAgICdcdTAxNjQnICAgIyAgMHhFOCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBUIFdJVEggQ0FST04KKyAgICAnXHUwMTY1JyAgICMgIDB4RTkgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFQgV0lUSCBDQVJPTgorICAgICdceGNkJyAgICAgIyAgMHhFQSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAnXHUwMTdkJyAgICMgIDB4RUIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgWiBXSVRIIENBUk9OCisgICAgJ1x1MDE3ZScgICAjICAweEVDIC0+IExBVElOIFNNQUxMIExFVFRFUiBaIFdJVEggQ0FST04KKyAgICAnXHUwMTZhJyAgICMgIDB4RUQgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIE1BQ1JPTgorICAgICdceGQzJyAgICAgIyAgMHhFRSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQUNVVEUKKyAgICAnXHhkNCcgICAgICMgIDB4RUYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHUwMTZiJyAgICMgIDB4RjAgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBNQUNST04KKyAgICAnXHUwMTZlJyAgICMgIDB4RjEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIFJJTkcgQUJPVkUKKyAgICAnXHhkYScgICAgICMgIDB4RjIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIEFDVVRFCisgICAgJ1x1MDE2ZicgICAjICAweEYzIC0+IExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggUklORyBBQk9WRQorICAgICdcdTAxNzAnICAgIyAgMHhGNCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFCisgICAgJ1x1MDE3MScgICAjICAweEY1IC0+IExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggRE9VQkxFIEFDVVRFCisgICAgJ1x1MDE3MicgICAjICAweEY2IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBPR09ORUsKKyAgICAnXHUwMTczJyAgICMgIDB4RjcgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBPR09ORUsKKyAgICAnXHhkZCcgICAgICMgIDB4RjggLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgWSBXSVRIIEFDVVRFCisgICAgJ1x4ZmQnICAgICAjICAweEY5IC0+IExBVElOIFNNQUxMIExFVFRFUiBZIFdJVEggQUNVVEUKKyAgICAnXHUwMTM3JyAgICMgIDB4RkEgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEsgV0lUSCBDRURJTExBCisgICAgJ1x1MDE3YicgICAjICAweEZCIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFogV0lUSCBET1QgQUJPVkUKKyAgICAnXHUwMTQxJyAgICMgIDB4RkMgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTCBXSVRIIFNUUk9LRQorICAgICdcdTAxN2MnICAgIyAgMHhGRCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgWiBXSVRIIERPVCBBQk9WRQorICAgICdcdTAxMjInICAgIyAgMHhGRSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBHIFdJVEggQ0VESUxMQQorICAgICdcdTAyYzcnICAgIyAgMHhGRiAtPiBDQVJPTgorKQogCi1lbmNvZGluZ19tYXAgPSBjb2RlY3MubWFrZV9lbmNvZGluZ19tYXAoZGVjb2RpbmdfbWFwKQorIyMjIEVuY29kaW5nIHRhYmxlCitlbmNvZGluZ190YWJsZT1jb2RlY3MuY2hhcm1hcF9idWlsZChkZWNvZGluZ190YWJsZSkKZGlmZiAtLWdpdCBhL0xpYi9lbmNvZGluZ3MvcGFsbW9zLnB5IGIvTGliL2VuY29kaW5ncy9wYWxtb3MucHkKaW5kZXggNGI3N2UyYi4uYzUwNmQ2NSAxMDA2NDQKLS0tIGEvTGliL2VuY29kaW5ncy9wYWxtb3MucHkKKysrIGIvTGliL2VuY29kaW5ncy9wYWxtb3MucHkKQEAgLTEwLDE4ICsxMCwxOCBAQAogCiBjbGFzcyBDb2RlYyhjb2RlY3MuQ29kZWMpOgogICAgIGRlZiBlbmNvZGUoc2VsZixpbnB1dCxlcnJvcnM9J3N0cmljdCcpOgotICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZW5jb2RlKGlucHV0LGVycm9ycyxlbmNvZGluZ19tYXApCisgICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9lbmNvZGUoaW5wdXQsZXJyb3JzLGVuY29kaW5nX3RhYmxlKQogCiAgICAgZGVmIGRlY29kZShzZWxmLGlucHV0LGVycm9ycz0nc3RyaWN0Jyk6Ci0gICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9kZWNvZGUoaW5wdXQsZXJyb3JzLGRlY29kaW5nX21hcCkKKyAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2RlY29kZShpbnB1dCxlcnJvcnMsZGVjb2RpbmdfdGFibGUpCiAKIGNsYXNzIEluY3JlbWVudGFsRW5jb2Rlcihjb2RlY3MuSW5jcmVtZW50YWxFbmNvZGVyKToKICAgICBkZWYgZW5jb2RlKHNlbGYsIGlucHV0LCBmaW5hbD1GYWxzZSk6Ci0gICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9lbmNvZGUoaW5wdXQsc2VsZi5lcnJvcnMsZW5jb2RpbmdfbWFwKVswXQorICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZW5jb2RlKGlucHV0LHNlbGYuZXJyb3JzLGVuY29kaW5nX3RhYmxlKVswXQogCiBjbGFzcyBJbmNyZW1lbnRhbERlY29kZXIoY29kZWNzLkluY3JlbWVudGFsRGVjb2Rlcik6CiAgICAgZGVmIGRlY29kZShzZWxmLCBpbnB1dCwgZmluYWw9RmFsc2UpOgotICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZGVjb2RlKGlucHV0LHNlbGYuZXJyb3JzLGRlY29kaW5nX21hcClbMF0KKyAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2RlY29kZShpbnB1dCxzZWxmLmVycm9ycyxkZWNvZGluZ190YWJsZSlbMF0KIAogY2xhc3MgU3RyZWFtV3JpdGVyKENvZGVjLGNvZGVjcy5TdHJlYW1Xcml0ZXIpOgogICAgIHBhc3MKQEAgLTQyLDQyICs0MiwyNjcgQEAKICAgICAgICAgc3RyZWFtd3JpdGVyPVN0cmVhbVdyaXRlciwKICAgICApCiAKLSMjIyBEZWNvZGluZyBNYXAKIAotZGVjb2RpbmdfbWFwID0gY29kZWNzLm1ha2VfaWRlbnRpdHlfZGljdChyYW5nZSgyNTYpKQorIyMjIERlY29kaW5nIFRhYmxlCiAKLSMgVGhlIFBhbG1PUyBjaGFyYWN0ZXIgc2V0IGlzIG1vc3RseSBpc28tODg1OS0xIHdpdGggc29tZSBkaWZmZXJlbmNlcy4KLWRlY29kaW5nX21hcC51cGRhdGUoewotICAgICAgICAweDAwODA6IDB4MjBhYywgIyAgICAgICBFVVJPIFNJR04KLSAgICAgICAgMHgwMDgyOiAweDIwMWEsICMgICAgICAgU0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDA4MzogMHgwMTkyLCAjICAgICAgIExBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggSE9PSwotICAgICAgICAweDAwODQ6IDB4MjAxZSwgIyAgICAgICBET1VCTEUgTE9XLTkgUVVPVEFUSU9OIE1BUksKLSAgICAgICAgMHgwMDg1OiAweDIwMjYsICMgICAgICAgSE9SSVpPTlRBTCBFTExJUFNJUwotICAgICAgICAweDAwODY6IDB4MjAyMCwgIyAgICAgICBEQUdHRVIKLSAgICAgICAgMHgwMDg3OiAweDIwMjEsICMgICAgICAgRE9VQkxFIERBR0dFUgotICAgICAgICAweDAwODg6IDB4MDJjNiwgIyAgICAgICBNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWCBBQ0NFTlQKLSAgICAgICAgMHgwMDg5OiAweDIwMzAsICMgICAgICAgUEVSIE1JTExFIFNJR04KLSAgICAgICAgMHgwMDhhOiAweDAxNjAsICMgICAgICAgTEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OCi0gICAgICAgIDB4MDA4YjogMHgyMDM5LCAjICAgICAgIFNJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDA4YzogMHgwMTUyLCAjICAgICAgIExBVElOIENBUElUQUwgTElHQVRVUkUgT0UKLSAgICAgICAgMHgwMDhkOiAweDI2NjYsICMgICAgICAgQkxBQ0sgRElBTU9ORCBTVUlUCi0gICAgICAgIDB4MDA4ZTogMHgyNjYzLCAjICAgICAgIEJMQUNLIENMVUIgU1VJVAotICAgICAgICAweDAwOGY6IDB4MjY2NSwgIyAgICAgICBCTEFDSyBIRUFSVCBTVUlUCi0gICAgICAgIDB4MDA5MDogMHgyNjYwLCAjICAgICAgIEJMQUNLIFNQQURFIFNVSVQKLSAgICAgICAgMHgwMDkxOiAweDIwMTgsICMgICAgICAgTEVGVCBTSU5HTEUgUVVPVEFUSU9OIE1BUksKLSAgICAgICAgMHgwMDkyOiAweDIwMTksICMgICAgICAgUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDA5MzogMHgyMDFjLCAjICAgICAgIExFRlQgRE9VQkxFIFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDA5NDogMHgyMDFkLCAjICAgICAgIFJJR0hUIERPVUJMRSBRVU9UQVRJT04gTUFSSwotICAgICAgICAweDAwOTU6IDB4MjAyMiwgIyAgICAgICBCVUxMRVQKLSAgICAgICAgMHgwMDk2OiAweDIwMTMsICMgICAgICAgRU4gREFTSAotICAgICAgICAweDAwOTc6IDB4MjAxNCwgIyAgICAgICBFTSBEQVNICi0gICAgICAgIDB4MDA5ODogMHgwMmRjLCAjICAgICAgIFNNQUxMIFRJTERFCi0gICAgICAgIDB4MDA5OTogMHgyMTIyLCAjICAgICAgIFRSQURFIE1BUksgU0lHTgotICAgICAgICAweDAwOWE6IDB4MDE2MSwgIyAgICAgICBMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OCi0gICAgICAgIDB4MDA5YzogMHgwMTUzLCAjICAgICAgIExBVElOIFNNQUxMIExJR0FUVVJFIE9FCi0gICAgICAgIDB4MDA5ZjogMHgwMTc4LCAjICAgICAgIExBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVMKLX0pCitkZWNvZGluZ190YWJsZSA9ICgKKyAgICAnXHgwMCcgICAgICMgIDB4MDAgLT4gTlVMTAorICAgICdceDAxJyAgICAgIyAgMHgwMSAtPiBTVEFSVCBPRiBIRUFESU5HCisgICAgJ1x4MDInICAgICAjICAweDAyIC0+IFNUQVJUIE9GIFRFWFQKKyAgICAnXHgwMycgICAgICMgIDB4MDMgLT4gRU5EIE9GIFRFWFQKKyAgICAnXHgwNCcgICAgICMgIDB4MDQgLT4gRU5EIE9GIFRSQU5TTUlTU0lPTgorICAgICdceDA1JyAgICAgIyAgMHgwNSAtPiBFTlFVSVJZCisgICAgJ1x4MDYnICAgICAjICAweDA2IC0+IEFDS05PV0xFREdFCisgICAgJ1x4MDcnICAgICAjICAweDA3IC0+IEJFTEwKKyAgICAnXHgwOCcgICAgICMgIDB4MDggLT4gQkFDS1NQQUNFCisgICAgJ1x0JyAgICAgICAjICAweDA5IC0+IEhPUklaT05UQUwgVEFCVUxBVElPTgorICAgICdcbicgICAgICAgIyAgMHgwQSAtPiBMSU5FIEZFRUQKKyAgICAnXHgwYicgICAgICMgIDB4MEIgLT4gVkVSVElDQUwgVEFCVUxBVElPTgorICAgICdceDBjJyAgICAgIyAgMHgwQyAtPiBGT1JNIEZFRUQKKyAgICAnXHInICAgICAgICMgIDB4MEQgLT4gQ0FSUklBR0UgUkVUVVJOCisgICAgJ1x4MGUnICAgICAjICAweDBFIC0+IFNISUZUIE9VVAorICAgICdceDBmJyAgICAgIyAgMHgwRiAtPiBTSElGVCBJTgorICAgICdceDEwJyAgICAgIyAgMHgxMCAtPiBEQVRBIExJTksgRVNDQVBFCisgICAgJ1x4MTEnICAgICAjICAweDExIC0+IERFVklDRSBDT05UUk9MIE9ORQorICAgICdceDEyJyAgICAgIyAgMHgxMiAtPiBERVZJQ0UgQ09OVFJPTCBUV08KKyAgICAnXHgxMycgICAgICMgIDB4MTMgLT4gREVWSUNFIENPTlRST0wgVEhSRUUKKyAgICAnXHgxNCcgICAgICMgIDB4MTQgLT4gREVWSUNFIENPTlRST0wgRk9VUgorICAgICdceDE1JyAgICAgIyAgMHgxNSAtPiBORUdBVElWRSBBQ0tOT1dMRURHRQorICAgICdceDE2JyAgICAgIyAgMHgxNiAtPiBTWU5DSFJPTk9VUyBJRExFCisgICAgJ1x4MTcnICAgICAjICAweDE3IC0+IEVORCBPRiBUUkFOU01JU1NJT04gQkxPQ0sKKyAgICAnXHgxOCcgICAgICMgIDB4MTggLT4gQ0FOQ0VMCisgICAgJ1x4MTknICAgICAjICAweDE5IC0+IEVORCBPRiBNRURJVU0KKyAgICAnXHgxYScgICAgICMgIDB4MUEgLT4gU1VCU1RJVFVURQorICAgICdceDFiJyAgICAgIyAgMHgxQiAtPiBFU0NBUEUKKyAgICAnXHgxYycgICAgICMgIDB4MUMgLT4gRklMRSBTRVBBUkFUT1IKKyAgICAnXHgxZCcgICAgICMgIDB4MUQgLT4gR1JPVVAgU0VQQVJBVE9SCisgICAgJ1x4MWUnICAgICAjICAweDFFIC0+IFJFQ09SRCBTRVBBUkFUT1IKKyAgICAnXHgxZicgICAgICMgIDB4MUYgLT4gVU5JVCBTRVBBUkFUT1IKKyAgICAnICcgICAgICAgICMgIDB4MjAgLT4gU1BBQ0UKKyAgICAnIScgICAgICAgICMgIDB4MjEgLT4gRVhDTEFNQVRJT04gTUFSSworICAgICciJyAgICAgICAgIyAgMHgyMiAtPiBRVU9UQVRJT04gTUFSSworICAgICcjJyAgICAgICAgIyAgMHgyMyAtPiBOVU1CRVIgU0lHTgorICAgICckJyAgICAgICAgIyAgMHgyNCAtPiBET0xMQVIgU0lHTgorICAgICclJyAgICAgICAgIyAgMHgyNSAtPiBQRVJDRU5UIFNJR04KKyAgICAnJicgICAgICAgICMgIDB4MjYgLT4gQU1QRVJTQU5ECisgICAgIiciICAgICAgICAjICAweDI3IC0+IEFQT1NUUk9QSEUKKyAgICAnKCcgICAgICAgICMgIDB4MjggLT4gTEVGVCBQQVJFTlRIRVNJUworICAgICcpJyAgICAgICAgIyAgMHgyOSAtPiBSSUdIVCBQQVJFTlRIRVNJUworICAgICcqJyAgICAgICAgIyAgMHgyQSAtPiBBU1RFUklTSworICAgICcrJyAgICAgICAgIyAgMHgyQiAtPiBQTFVTIFNJR04KKyAgICAnLCcgICAgICAgICMgIDB4MkMgLT4gQ09NTUEKKyAgICAnLScgICAgICAgICMgIDB4MkQgLT4gSFlQSEVOLU1JTlVTCisgICAgJy4nICAgICAgICAjICAweDJFIC0+IEZVTEwgU1RPUAorICAgICcvJyAgICAgICAgIyAgMHgyRiAtPiBTT0xJRFVTCisgICAgJzAnICAgICAgICAjICAweDMwIC0+IERJR0lUIFpFUk8KKyAgICAnMScgICAgICAgICMgIDB4MzEgLT4gRElHSVQgT05FCisgICAgJzInICAgICAgICAjICAweDMyIC0+IERJR0lUIFRXTworICAgICczJyAgICAgICAgIyAgMHgzMyAtPiBESUdJVCBUSFJFRQorICAgICc0JyAgICAgICAgIyAgMHgzNCAtPiBESUdJVCBGT1VSCisgICAgJzUnICAgICAgICAjICAweDM1IC0+IERJR0lUIEZJVkUKKyAgICAnNicgICAgICAgICMgIDB4MzYgLT4gRElHSVQgU0lYCisgICAgJzcnICAgICAgICAjICAweDM3IC0+IERJR0lUIFNFVkVOCisgICAgJzgnICAgICAgICAjICAweDM4IC0+IERJR0lUIEVJR0hUCisgICAgJzknICAgICAgICAjICAweDM5IC0+IERJR0lUIE5JTkUKKyAgICAnOicgICAgICAgICMgIDB4M0EgLT4gQ09MT04KKyAgICAnOycgICAgICAgICMgIDB4M0IgLT4gU0VNSUNPTE9OCisgICAgJzwnICAgICAgICAjICAweDNDIC0+IExFU1MtVEhBTiBTSUdOCisgICAgJz0nICAgICAgICAjICAweDNEIC0+IEVRVUFMUyBTSUdOCisgICAgJz4nICAgICAgICAjICAweDNFIC0+IEdSRUFURVItVEhBTiBTSUdOCisgICAgJz8nICAgICAgICAjICAweDNGIC0+IFFVRVNUSU9OIE1BUksKKyAgICAnQCcgICAgICAgICMgIDB4NDAgLT4gQ09NTUVSQ0lBTCBBVAorICAgICdBJyAgICAgICAgIyAgMHg0MSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBBCisgICAgJ0InICAgICAgICAjICAweDQyIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEIKKyAgICAnQycgICAgICAgICMgIDB4NDMgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQworICAgICdEJyAgICAgICAgIyAgMHg0NCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBECisgICAgJ0UnICAgICAgICAjICAweDQ1IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEUKKyAgICAnRicgICAgICAgICMgIDB4NDYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgRgorICAgICdHJyAgICAgICAgIyAgMHg0NyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBHCisgICAgJ0gnICAgICAgICAjICAweDQ4IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEgKKyAgICAnSScgICAgICAgICMgIDB4NDkgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgSQorICAgICdKJyAgICAgICAgIyAgMHg0QSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBKCisgICAgJ0snICAgICAgICAjICAweDRCIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEsKKyAgICAnTCcgICAgICAgICMgIDB4NEMgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTAorICAgICdNJyAgICAgICAgIyAgMHg0RCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBNCisgICAgJ04nICAgICAgICAjICAweDRFIC0+IExBVElOIENBUElUQUwgTEVUVEVSIE4KKyAgICAnTycgICAgICAgICMgIDB4NEYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTworICAgICdQJyAgICAgICAgIyAgMHg1MCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBQCisgICAgJ1EnICAgICAgICAjICAweDUxIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFEKKyAgICAnUicgICAgICAgICMgIDB4NTIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgUgorICAgICdTJyAgICAgICAgIyAgMHg1MyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBTCisgICAgJ1QnICAgICAgICAjICAweDU0IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFQKKyAgICAnVScgICAgICAgICMgIDB4NTUgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVQorICAgICdWJyAgICAgICAgIyAgMHg1NiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBWCisgICAgJ1cnICAgICAgICAjICAweDU3IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFcKKyAgICAnWCcgICAgICAgICMgIDB4NTggLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgWAorICAgICdZJyAgICAgICAgIyAgMHg1OSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBZCisgICAgJ1onICAgICAgICAjICAweDVBIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFoKKyAgICAnWycgICAgICAgICMgIDB4NUIgLT4gTEVGVCBTUVVBUkUgQlJBQ0tFVAorICAgICdcXCcgICAgICAgIyAgMHg1QyAtPiBSRVZFUlNFIFNPTElEVVMKKyAgICAnXScgICAgICAgICMgIDB4NUQgLT4gUklHSFQgU1FVQVJFIEJSQUNLRVQKKyAgICAnXicgICAgICAgICMgIDB4NUUgLT4gQ0lSQ1VNRkxFWCBBQ0NFTlQKKyAgICAnXycgICAgICAgICMgIDB4NUYgLT4gTE9XIExJTkUKKyAgICAnYCcgICAgICAgICMgIDB4NjAgLT4gR1JBVkUgQUNDRU5UCisgICAgJ2EnICAgICAgICAjICAweDYxIC0+IExBVElOIFNNQUxMIExFVFRFUiBBCisgICAgJ2InICAgICAgICAjICAweDYyIC0+IExBVElOIFNNQUxMIExFVFRFUiBCCisgICAgJ2MnICAgICAgICAjICAweDYzIC0+IExBVElOIFNNQUxMIExFVFRFUiBDCisgICAgJ2QnICAgICAgICAjICAweDY0IC0+IExBVElOIFNNQUxMIExFVFRFUiBECisgICAgJ2UnICAgICAgICAjICAweDY1IC0+IExBVElOIFNNQUxMIExFVFRFUiBFCisgICAgJ2YnICAgICAgICAjICAweDY2IC0+IExBVElOIFNNQUxMIExFVFRFUiBGCisgICAgJ2cnICAgICAgICAjICAweDY3IC0+IExBVElOIFNNQUxMIExFVFRFUiBHCisgICAgJ2gnICAgICAgICAjICAweDY4IC0+IExBVElOIFNNQUxMIExFVFRFUiBICisgICAgJ2knICAgICAgICAjICAweDY5IC0+IExBVElOIFNNQUxMIExFVFRFUiBJCisgICAgJ2onICAgICAgICAjICAweDZBIC0+IExBVElOIFNNQUxMIExFVFRFUiBKCisgICAgJ2snICAgICAgICAjICAweDZCIC0+IExBVElOIFNNQUxMIExFVFRFUiBLCisgICAgJ2wnICAgICAgICAjICAweDZDIC0+IExBVElOIFNNQUxMIExFVFRFUiBMCisgICAgJ20nICAgICAgICAjICAweDZEIC0+IExBVElOIFNNQUxMIExFVFRFUiBNCisgICAgJ24nICAgICAgICAjICAweDZFIC0+IExBVElOIFNNQUxMIExFVFRFUiBOCisgICAgJ28nICAgICAgICAjICAweDZGIC0+IExBVElOIFNNQUxMIExFVFRFUiBPCisgICAgJ3AnICAgICAgICAjICAweDcwIC0+IExBVElOIFNNQUxMIExFVFRFUiBQCisgICAgJ3EnICAgICAgICAjICAweDcxIC0+IExBVElOIFNNQUxMIExFVFRFUiBRCisgICAgJ3InICAgICAgICAjICAweDcyIC0+IExBVElOIFNNQUxMIExFVFRFUiBSCisgICAgJ3MnICAgICAgICAjICAweDczIC0+IExBVElOIFNNQUxMIExFVFRFUiBTCisgICAgJ3QnICAgICAgICAjICAweDc0IC0+IExBVElOIFNNQUxMIExFVFRFUiBUCisgICAgJ3UnICAgICAgICAjICAweDc1IC0+IExBVElOIFNNQUxMIExFVFRFUiBVCisgICAgJ3YnICAgICAgICAjICAweDc2IC0+IExBVElOIFNNQUxMIExFVFRFUiBWCisgICAgJ3cnICAgICAgICAjICAweDc3IC0+IExBVElOIFNNQUxMIExFVFRFUiBXCisgICAgJ3gnICAgICAgICAjICAweDc4IC0+IExBVElOIFNNQUxMIExFVFRFUiBYCisgICAgJ3knICAgICAgICAjICAweDc5IC0+IExBVElOIFNNQUxMIExFVFRFUiBZCisgICAgJ3onICAgICAgICAjICAweDdBIC0+IExBVElOIFNNQUxMIExFVFRFUiBaCisgICAgJ3snICAgICAgICAjICAweDdCIC0+IExFRlQgQ1VSTFkgQlJBQ0tFVAorICAgICd8JyAgICAgICAgIyAgMHg3QyAtPiBWRVJUSUNBTCBMSU5FCisgICAgJ30nICAgICAgICAjICAweDdEIC0+IFJJR0hUIENVUkxZIEJSQUNLRVQKKyAgICAnficgICAgICAgICMgIDB4N0UgLT4gVElMREUKKyAgICAnXHg3ZicgICAgICMgIDB4N0YgLT4gREVMRVRFCisgICAgJ1x1MjBhYycgICAjICAweDgwIC0+IEVVUk8gU0lHTgorICAgICdceDgxJyAgICAgIyAgMHg4MSAtPiA8Y29udHJvbD4KKyAgICAnXHUyMDFhJyAgICMgIDB4ODIgLT4gU0lOR0xFIExPVy05IFFVT1RBVElPTiBNQVJLCisgICAgJ1x1MDE5MicgICAjICAweDgzIC0+IExBVElOIFNNQUxMIExFVFRFUiBGIFdJVEggSE9PSworICAgICdcdTIwMWUnICAgIyAgMHg4NCAtPiBET1VCTEUgTE9XLTkgUVVPVEFUSU9OIE1BUksKKyAgICAnXHUyMDI2JyAgICMgIDB4ODUgLT4gSE9SSVpPTlRBTCBFTExJUFNJUworICAgICdcdTIwMjAnICAgIyAgMHg4NiAtPiBEQUdHRVIKKyAgICAnXHUyMDIxJyAgICMgIDB4ODcgLT4gRE9VQkxFIERBR0dFUgorICAgICdcdTAyYzYnICAgIyAgMHg4OCAtPiBNT0RJRklFUiBMRVRURVIgQ0lSQ1VNRkxFWCBBQ0NFTlQKKyAgICAnXHUyMDMwJyAgICMgIDB4ODkgLT4gUEVSIE1JTExFIFNJR04KKyAgICAnXHUwMTYwJyAgICMgIDB4OEEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgUyBXSVRIIENBUk9OCisgICAgJ1x1MjAzOScgICAjICAweDhCIC0+IFNJTkdMRSBMRUZULVBPSU5USU5HIEFOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgJ1x1MDE1MicgICAjICAweDhDIC0+IExBVElOIENBUElUQUwgTElHQVRVUkUgT0UKKyAgICAnXHUyNjY2JyAgICMgIDB4OEQgLT4gQkxBQ0sgRElBTU9ORCBTVUlUCisgICAgJ1x1MjY2MycgICAjICAweDhFIC0+IEJMQUNLIENMVUIgU1VJVAorICAgICdcdTI2NjUnICAgIyAgMHg4RiAtPiBCTEFDSyBIRUFSVCBTVUlUCisgICAgJ1x1MjY2MCcgICAjICAweDkwIC0+IEJMQUNLIFNQQURFIFNVSVQKKyAgICAnXHUyMDE4JyAgICMgIDB4OTEgLT4gTEVGVCBTSU5HTEUgUVVPVEFUSU9OIE1BUksKKyAgICAnXHUyMDE5JyAgICMgIDB4OTIgLT4gUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLCisgICAgJ1x1MjAxYycgICAjICAweDkzIC0+IExFRlQgRE9VQkxFIFFVT1RBVElPTiBNQVJLCisgICAgJ1x1MjAxZCcgICAjICAweDk0IC0+IFJJR0hUIERPVUJMRSBRVU9UQVRJT04gTUFSSworICAgICdcdTIwMjInICAgIyAgMHg5NSAtPiBCVUxMRVQKKyAgICAnXHUyMDEzJyAgICMgIDB4OTYgLT4gRU4gREFTSAorICAgICdcdTIwMTQnICAgIyAgMHg5NyAtPiBFTSBEQVNICisgICAgJ1x1MDJkYycgICAjICAweDk4IC0+IFNNQUxMIFRJTERFCisgICAgJ1x1MjEyMicgICAjICAweDk5IC0+IFRSQURFIE1BUksgU0lHTgorICAgICdcdTAxNjEnICAgIyAgMHg5QSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgUyBXSVRIIENBUk9OCisgICAgJ1x4OWInICAgICAjICAweDlCIC0+IDxjb250cm9sPgorICAgICdcdTAxNTMnICAgIyAgMHg5QyAtPiBMQVRJTiBTTUFMTCBMSUdBVFVSRSBPRQorICAgICdceDlkJyAgICAgIyAgMHg5RCAtPiA8Y29udHJvbD4KKyAgICAnXHg5ZScgICAgICMgIDB4OUUgLT4gPGNvbnRyb2w+CisgICAgJ1x1MDE3OCcgICAjICAweDlGIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFkgV0lUSCBESUFFUkVTSVMKKyAgICAnXHhhMCcgICAgICMgIDB4QTAgLT4gTk8tQlJFQUsgU1BBQ0UKKyAgICAnXHhhMScgICAgICMgIDB4QTEgLT4gSU5WRVJURUQgRVhDTEFNQVRJT04gTUFSSworICAgICdceGEyJyAgICAgIyAgMHhBMiAtPiBDRU5UIFNJR04KKyAgICAnXHhhMycgICAgICMgIDB4QTMgLT4gUE9VTkQgU0lHTgorICAgICdceGE0JyAgICAgIyAgMHhBNCAtPiBDVVJSRU5DWSBTSUdOCisgICAgJ1x4YTUnICAgICAjICAweEE1IC0+IFlFTiBTSUdOCisgICAgJ1x4YTYnICAgICAjICAweEE2IC0+IEJST0tFTiBCQVIKKyAgICAnXHhhNycgICAgICMgIDB4QTcgLT4gU0VDVElPTiBTSUdOCisgICAgJ1x4YTgnICAgICAjICAweEE4IC0+IERJQUVSRVNJUworICAgICdceGE5JyAgICAgIyAgMHhBOSAtPiBDT1BZUklHSFQgU0lHTgorICAgICdceGFhJyAgICAgIyAgMHhBQSAtPiBGRU1JTklORSBPUkRJTkFMIElORElDQVRPUgorICAgICdceGFiJyAgICAgIyAgMHhBQiAtPiBMRUZULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSworICAgICdceGFjJyAgICAgIyAgMHhBQyAtPiBOT1QgU0lHTgorICAgICdceGFkJyAgICAgIyAgMHhBRCAtPiBTT0ZUIEhZUEhFTgorICAgICdceGFlJyAgICAgIyAgMHhBRSAtPiBSRUdJU1RFUkVEIFNJR04KKyAgICAnXHhhZicgICAgICMgIDB4QUYgLT4gTUFDUk9OCisgICAgJ1x4YjAnICAgICAjICAweEIwIC0+IERFR1JFRSBTSUdOCisgICAgJ1x4YjEnICAgICAjICAweEIxIC0+IFBMVVMtTUlOVVMgU0lHTgorICAgICdceGIyJyAgICAgIyAgMHhCMiAtPiBTVVBFUlNDUklQVCBUV08KKyAgICAnXHhiMycgICAgICMgIDB4QjMgLT4gU1VQRVJTQ1JJUFQgVEhSRUUKKyAgICAnXHhiNCcgICAgICMgIDB4QjQgLT4gQUNVVEUgQUNDRU5UCisgICAgJ1x4YjUnICAgICAjICAweEI1IC0+IE1JQ1JPIFNJR04KKyAgICAnXHhiNicgICAgICMgIDB4QjYgLT4gUElMQ1JPVyBTSUdOCisgICAgJ1x4YjcnICAgICAjICAweEI3IC0+IE1JRERMRSBET1QKKyAgICAnXHhiOCcgICAgICMgIDB4QjggLT4gQ0VESUxMQQorICAgICdceGI5JyAgICAgIyAgMHhCOSAtPiBTVVBFUlNDUklQVCBPTkUKKyAgICAnXHhiYScgICAgICMgIDB4QkEgLT4gTUFTQ1VMSU5FIE9SRElOQUwgSU5ESUNBVE9SCisgICAgJ1x4YmInICAgICAjICAweEJCIC0+IFJJR0hULVBPSU5USU5HIERPVUJMRSBBTkdMRSBRVU9UQVRJT04gTUFSSworICAgICdceGJjJyAgICAgIyAgMHhCQyAtPiBWVUxHQVIgRlJBQ1RJT04gT05FIFFVQVJURVIKKyAgICAnXHhiZCcgICAgICMgIDB4QkQgLT4gVlVMR0FSIEZSQUNUSU9OIE9ORSBIQUxGCisgICAgJ1x4YmUnICAgICAjICAweEJFIC0+IFZVTEdBUiBGUkFDVElPTiBUSFJFRSBRVUFSVEVSUworICAgICdceGJmJyAgICAgIyAgMHhCRiAtPiBJTlZFUlRFRCBRVUVTVElPTiBNQVJLCisgICAgJ1x4YzAnICAgICAjICAweEMwIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBHUkFWRQorICAgICdceGMxJyAgICAgIyAgMHhDMSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBBIFdJVEggQUNVVEUKKyAgICAnXHhjMicgICAgICMgIDB4QzIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHhjMycgICAgICMgIDB4QzMgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFRJTERFCisgICAgJ1x4YzQnICAgICAjICAweEM0IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVMKKyAgICAnXHhjNScgICAgICMgIDB4QzUgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQSBXSVRIIFJJTkcgQUJPVkUKKyAgICAnXHhjNicgICAgICMgIDB4QzYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQUUKKyAgICAnXHhjNycgICAgICMgIDB4QzcgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQyBXSVRIIENFRElMTEEKKyAgICAnXHhjOCcgICAgICMgIDB4QzggLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgRSBXSVRIIEdSQVZFCisgICAgJ1x4YzknICAgICAjICAweEM5IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEUgV0lUSCBBQ1VURQorICAgICdceGNhJyAgICAgIyAgMHhDQSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggQ0lSQ1VNRkxFWAorICAgICdceGNiJyAgICAgIyAgMHhDQiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBFIFdJVEggRElBRVJFU0lTCisgICAgJ1x4Y2MnICAgICAjICAweENDIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEkgV0lUSCBHUkFWRQorICAgICdceGNkJyAgICAgIyAgMHhDRCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBJIFdJVEggQUNVVEUKKyAgICAnXHhjZScgICAgICMgIDB4Q0UgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHhjZicgICAgICMgIDB4Q0YgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUworICAgICdceGQwJyAgICAgIyAgMHhEMCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBFVEggKEljZWxhbmRpYykKKyAgICAnXHhkMScgICAgICMgIDB4RDEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTiBXSVRIIFRJTERFCisgICAgJ1x4ZDInICAgICAjICAweEQyIC0+IExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBHUkFWRQorICAgICdceGQzJyAgICAgIyAgMHhEMyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggQUNVVEUKKyAgICAnXHhkNCcgICAgICMgIDB4RDQgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHhkNScgICAgICMgIDB4RDUgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTyBXSVRIIFRJTERFCisgICAgJ1x4ZDYnICAgICAjICAweEQ2IC0+IExBVElOIENBUElUQUwgTEVUVEVSIE8gV0lUSCBESUFFUkVTSVMKKyAgICAnXHhkNycgICAgICMgIDB4RDcgLT4gTVVMVElQTElDQVRJT04gU0lHTgorICAgICdceGQ4JyAgICAgIyAgMHhEOCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBPIFdJVEggU1RST0tFCisgICAgJ1x4ZDknICAgICAjICAweEQ5IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFUgV0lUSCBHUkFWRQorICAgICdceGRhJyAgICAgIyAgMHhEQSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBVIFdJVEggQUNVVEUKKyAgICAnXHhkYicgICAgICMgIDB4REIgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHhkYycgICAgICMgIDB4REMgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUworICAgICdceGRkJyAgICAgIyAgMHhERCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBZIFdJVEggQUNVVEUKKyAgICAnXHhkZScgICAgICMgIDB4REUgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVEhPUk4gKEljZWxhbmRpYykKKyAgICAnXHhkZicgICAgICMgIDB4REYgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMgKEdlcm1hbikKKyAgICAnXHhlMCcgICAgICMgIDB4RTAgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBHUkFWRQorICAgICdceGUxJyAgICAgIyAgMHhFMSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIEFDVVRFCisgICAgJ1x4ZTInICAgICAjICAweEUyIC0+IExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggQ0lSQ1VNRkxFWAorICAgICdceGUzJyAgICAgIyAgMHhFMyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQSBXSVRIIFRJTERFCisgICAgJ1x4ZTQnICAgICAjICAweEU0IC0+IExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggRElBRVJFU0lTCisgICAgJ1x4ZTUnICAgICAjICAweEU1IC0+IExBVElOIFNNQUxMIExFVFRFUiBBIFdJVEggUklORyBBQk9WRQorICAgICdceGU2JyAgICAgIyAgMHhFNiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQUUKKyAgICAnXHhlNycgICAgICMgIDB4RTcgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEMgV0lUSCBDRURJTExBCisgICAgJ1x4ZTgnICAgICAjICAweEU4IC0+IExBVElOIFNNQUxMIExFVFRFUiBFIFdJVEggR1JBVkUKKyAgICAnXHhlOScgICAgICMgIDB4RTkgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBBQ1VURQorICAgICdceGVhJyAgICAgIyAgMHhFQSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRSBXSVRIIENJUkNVTUZMRVgKKyAgICAnXHhlYicgICAgICMgIDB4RUIgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEUgV0lUSCBESUFFUkVTSVMKKyAgICAnXHhlYycgICAgICMgIDB4RUMgLT4gTEFUSU4gU01BTEwgTEVUVEVSIEkgV0lUSCBHUkFWRQorICAgICdceGVkJyAgICAgIyAgMHhFRCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIEFDVVRFCisgICAgJ1x4ZWUnICAgICAjICAweEVFIC0+IExBVElOIFNNQUxMIExFVFRFUiBJIFdJVEggQ0lSQ1VNRkxFWAorICAgICdceGVmJyAgICAgIyAgMHhFRiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgSSBXSVRIIERJQUVSRVNJUworICAgICdceGYwJyAgICAgIyAgMHhGMCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRVRIIChJY2VsYW5kaWMpCisgICAgJ1x4ZjEnICAgICAjICAweEYxIC0+IExBVElOIFNNQUxMIExFVFRFUiBOIFdJVEggVElMREUKKyAgICAnXHhmMicgICAgICMgIDB4RjIgLT4gTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBHUkFWRQorICAgICdceGYzJyAgICAgIyAgMHhGMyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIEFDVVRFCisgICAgJ1x4ZjQnICAgICAjICAweEY0IC0+IExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggQ0lSQ1VNRkxFWAorICAgICdceGY1JyAgICAgIyAgMHhGNSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTyBXSVRIIFRJTERFCisgICAgJ1x4ZjYnICAgICAjICAweEY2IC0+IExBVElOIFNNQUxMIExFVFRFUiBPIFdJVEggRElBRVJFU0lTCisgICAgJ1x4ZjcnICAgICAjICAweEY3IC0+IERJVklTSU9OIFNJR04KKyAgICAnXHhmOCcgICAgICMgIDB4RjggLT4gTEFUSU4gU01BTEwgTEVUVEVSIE8gV0lUSCBTVFJPS0UKKyAgICAnXHhmOScgICAgICMgIDB4RjkgLT4gTEFUSU4gU01BTEwgTEVUVEVSIFUgV0lUSCBHUkFWRQorICAgICdceGZhJyAgICAgIyAgMHhGQSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIEFDVVRFCisgICAgJ1x4ZmInICAgICAjICAweEZCIC0+IExBVElOIFNNQUxMIExFVFRFUiBVIFdJVEggQ0lSQ1VNRkxFWAorICAgICdceGZjJyAgICAgIyAgMHhGQyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVSBXSVRIIERJQUVSRVNJUworICAgICdceGZkJyAgICAgIyAgMHhGRCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIEFDVVRFCisgICAgJ1x4ZmUnICAgICAjICAweEZFIC0+IExBVElOIFNNQUxMIExFVFRFUiBUSE9STiAoSWNlbGFuZGljKQorICAgICdceGZmJyAgICAgIyAgMHhGRiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgWSBXSVRIIERJQUVSRVNJUworKQogCi0jIyMgRW5jb2RpbmcgTWFwCi0KLWVuY29kaW5nX21hcCA9IGNvZGVjcy5tYWtlX2VuY29kaW5nX21hcChkZWNvZGluZ19tYXApCisjIyMgRW5jb2RpbmcgdGFibGUKK2VuY29kaW5nX3RhYmxlPWNvZGVjcy5jaGFybWFwX2J1aWxkKGRlY29kaW5nX3RhYmxlKQpkaWZmIC0tZ2l0IGEvTGliL2VuY29kaW5ncy9wdGNwMTU0LnB5IGIvTGliL2VuY29kaW5ncy9wdGNwMTU0LnB5CmluZGV4IGFlZjg5NzUuLjY1NmI3OWQgMTAwNjQ0Ci0tLSBhL0xpYi9lbmNvZGluZ3MvcHRjcDE1NC5weQorKysgYi9MaWIvZW5jb2RpbmdzL3B0Y3AxNTQucHkKQEAgLTE0LDE4ICsxNCwxOCBAQAogY2xhc3MgQ29kZWMoY29kZWNzLkNvZGVjKToKIAogICAgIGRlZiBlbmNvZGUoc2VsZixpbnB1dCxlcnJvcnM9J3N0cmljdCcpOgotICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZW5jb2RlKGlucHV0LGVycm9ycyxlbmNvZGluZ19tYXApCisgICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9lbmNvZGUoaW5wdXQsZXJyb3JzLGVuY29kaW5nX3RhYmxlKQogCiAgICAgZGVmIGRlY29kZShzZWxmLGlucHV0LGVycm9ycz0nc3RyaWN0Jyk6Ci0gICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9kZWNvZGUoaW5wdXQsZXJyb3JzLGRlY29kaW5nX21hcCkKKyAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2RlY29kZShpbnB1dCxlcnJvcnMsZGVjb2RpbmdfdGFibGUpCiAKIGNsYXNzIEluY3JlbWVudGFsRW5jb2Rlcihjb2RlY3MuSW5jcmVtZW50YWxFbmNvZGVyKToKICAgICBkZWYgZW5jb2RlKHNlbGYsIGlucHV0LCBmaW5hbD1GYWxzZSk6Ci0gICAgICAgIHJldHVybiBjb2RlY3MuY2hhcm1hcF9lbmNvZGUoaW5wdXQsc2VsZi5lcnJvcnMsZW5jb2RpbmdfbWFwKVswXQorICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZW5jb2RlKGlucHV0LHNlbGYuZXJyb3JzLGVuY29kaW5nX3RhYmxlKVswXQogCiBjbGFzcyBJbmNyZW1lbnRhbERlY29kZXIoY29kZWNzLkluY3JlbWVudGFsRGVjb2Rlcik6CiAgICAgZGVmIGRlY29kZShzZWxmLCBpbnB1dCwgZmluYWw9RmFsc2UpOgotICAgICAgICByZXR1cm4gY29kZWNzLmNoYXJtYXBfZGVjb2RlKGlucHV0LHNlbGYuZXJyb3JzLGRlY29kaW5nX21hcClbMF0KKyAgICAgICAgcmV0dXJuIGNvZGVjcy5jaGFybWFwX2RlY29kZShpbnB1dCxzZWxmLmVycm9ycyxkZWNvZGluZ190YWJsZSlbMF0KIAogY2xhc3MgU3RyZWFtV3JpdGVyKENvZGVjLGNvZGVjcy5TdHJlYW1Xcml0ZXIpOgogICAgIHBhc3MKQEAgLTQ2LDEzMCArNDYsMjY3IEBACiAgICAgICAgIHN0cmVhbXdyaXRlcj1TdHJlYW1Xcml0ZXIsCiAgICAgKQogCi0jIyMgRGVjb2RpbmcgTWFwCiAKLWRlY29kaW5nX21hcCA9IGNvZGVjcy5tYWtlX2lkZW50aXR5X2RpY3QocmFuZ2UoMjU2KSkKLWRlY29kaW5nX21hcC51cGRhdGUoewotICAgICAgICAweDAwODA6IDB4MDQ5NiwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFIFdJVEggREVTQ0VOREVSCi0gICAgICAgIDB4MDA4MTogMHgwNDkyLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0UKLSAgICAgICAgMHgwMDgyOiAweDA0ZWUsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST04KLSAgICAgICAgMHgwMDgzOiAweDA0OTMsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBHSEUgV0lUSCBTVFJPS0UKLSAgICAgICAgMHgwMDg0OiAweDIwMWUsICMgICAgICAgIERPVUJMRSBMT1ctOSBRVU9UQVRJT04gTUFSSwotICAgICAgICAweDAwODU6IDB4MjAyNiwgIyAgICAgICAgSE9SSVpPTlRBTCBFTExJUFNJUwotICAgICAgICAweDAwODY6IDB4MDRiNiwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggREVTQ0VOREVSCi0gICAgICAgIDB4MDA4NzogMHgwNGFlLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVCi0gICAgICAgIDB4MDA4ODogMHgwNGIyLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQSBXSVRIIERFU0NFTkRFUgotICAgICAgICAweDAwODk6IDB4MDRhZiwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFUKLSAgICAgICAgMHgwMDhhOiAweDA0YTAsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEJBU0hLSVIgS0EKLSAgICAgICAgMHgwMDhiOiAweDA0ZTIsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBNQUNST04KLSAgICAgICAgMHgwMDhjOiAweDA0YTIsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEVOIFdJVEggREVTQ0VOREVSCi0gICAgICAgIDB4MDA4ZDogMHgwNDlhLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUgotICAgICAgICAweDAwOGU6IDB4MDRiYSwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hIQQotICAgICAgICAweDAwOGY6IDB4MDRiOCwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQ0hFIFdJVEggVkVSVElDQUwgU1RST0tFCi0gICAgICAgIDB4MDA5MDogMHgwNDk3LCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgWkhFIFdJVEggREVTQ0VOREVSCi0gICAgICAgIDB4MDA5MTogMHgyMDE4LCAjICAgICAgICBMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSwotICAgICAgICAweDAwOTI6IDB4MjAxOSwgIyAgICAgICAgUklHSFQgU0lOR0xFIFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDA5MzogMHgyMDFjLCAjICAgICAgICBMRUZUIERPVUJMRSBRVU9UQVRJT04gTUFSSwotICAgICAgICAweDAwOTQ6IDB4MjAxZCwgIyAgICAgICAgUklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLCi0gICAgICAgIDB4MDA5NTogMHgyMDIyLCAjICAgICAgICBCVUxMRVQKLSAgICAgICAgMHgwMDk2OiAweDIwMTMsICMgICAgICAgIEVOIERBU0gKLSAgICAgICAgMHgwMDk3OiAweDIwMTQsICMgICAgICAgIEVNIERBU0gKLSAgICAgICAgMHgwMDk4OiAweDA0YjMsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBIQSBXSVRIIERFU0NFTkRFUgotICAgICAgICAweDAwOTk6IDB4MDRiNywgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRSBXSVRIIERFU0NFTkRFUgotICAgICAgICAweDAwOWE6IDB4MDRhMSwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBU0hLSVIgS0EKLSAgICAgICAgMHgwMDliOiAweDA0ZTMsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBJIFdJVEggTUFDUk9OCi0gICAgICAgIDB4MDA5YzogMHgwNGEzLCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVIKLSAgICAgICAgMHgwMDlkOiAweDA0OWIsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUgotICAgICAgICAweDAwOWU6IDB4MDRiYiwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNISEEKLSAgICAgICAgMHgwMDlmOiAweDA0YjksICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBWRVJUSUNBTCBTVFJPS0UKLSAgICAgICAgMHgwMGExOiAweDA0MGUsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIFUgKEJ5ZWxvcnVzc2lhbikKLSAgICAgICAgMHgwMGEyOiAweDA0NWUsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBTSE9SVCBVIChCeWVsb3J1c3NpYW4pCi0gICAgICAgIDB4MDBhMzogMHgwNDA4LCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBKRQotICAgICAgICAweDAwYTQ6IDB4MDRlOCwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE8KLSAgICAgICAgMHgwMGE1OiAweDA0OTgsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFpFIFdJVEggREVTQ0VOREVSCi0gICAgICAgIDB4MDBhNjogMHgwNGIwLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTVFJBSUdIVCBVIFdJVEggU1RST0tFCi0gICAgICAgIDB4MDBhODogMHgwNDAxLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBJTwotICAgICAgICAweDAwYWE6IDB4MDRkOCwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0NIV0EKLSAgICAgICAgMHgwMGFkOiAweDA0ZWYsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBVIFdJVEggTUFDUk9OCi0gICAgICAgIDB4MDBhZjogMHgwNDljLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQSBXSVRIIFZFUlRJQ0FMIFNUUk9LRQotICAgICAgICAweDAwYjE6IDB4MDRiMSwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNUUkFJR0hUIFUgV0lUSCBTVFJPS0UKLSAgICAgICAgMHgwMGIyOiAweDA0MDYsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEJZRUxPUlVTU0lBTi1VS1JBSU5JQU4gSQotICAgICAgICAweDAwYjM6IDB4MDQ1NiwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEJZRUxPUlVTU0lBTi1VS1JBSU5JQU4gSQotICAgICAgICAweDAwYjQ6IDB4MDQ5OSwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFIFdJVEggREVTQ0VOREVSCi0gICAgICAgIDB4MDBiNTogMHgwNGU5LCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE8KLSAgICAgICAgMHgwMGI4OiAweDA0NTEsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBJTwotICAgICAgICAweDAwYjk6IDB4MjExNiwgIyAgICAgICAgTlVNRVJPIFNJR04KLSAgICAgICAgMHgwMGJhOiAweDA0ZDksICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBTQ0hXQQotICAgICAgICAweDAwYmM6IDB4MDQ1OCwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEpFCi0gICAgICAgIDB4MDBiZDogMHgwNGFhLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFUyBXSVRIIERFU0NFTkRFUgotICAgICAgICAweDAwYmU6IDB4MDRhYiwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTIFdJVEggREVTQ0VOREVSCi0gICAgICAgIDB4MDBiZjogMHgwNDlkLCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0UKLSAgICAgICAgMHgwMGMwOiAweDA0MTAsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEEKLSAgICAgICAgMHgwMGMxOiAweDA0MTEsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEJFCi0gICAgICAgIDB4MDBjMjogMHgwNDEyLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBWRQotICAgICAgICAweDAwYzM6IDB4MDQxMywgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFCi0gICAgICAgIDB4MDBjNDogMHgwNDE0LCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBERQotICAgICAgICAweDAwYzU6IDB4MDQxNSwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUKLSAgICAgICAgMHgwMGM2OiAweDA0MTYsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFpIRQotICAgICAgICAweDAwYzc6IDB4MDQxNywgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUKLSAgICAgICAgMHgwMGM4OiAweDA0MTgsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEkKLSAgICAgICAgMHgwMGM5OiAweDA0MTksICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIEkKLSAgICAgICAgMHgwMGNhOiAweDA0MWEsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEtBCi0gICAgICAgIDB4MDBjYjogMHgwNDFiLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTAotICAgICAgICAweDAwY2M6IDB4MDQxYywgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU0KLSAgICAgICAgMHgwMGNkOiAweDA0MWQsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEVOCi0gICAgICAgIDB4MDBjZTogMHgwNDFlLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPCi0gICAgICAgIDB4MDBjZjogMHgwNDFmLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBQRQotICAgICAgICAweDAwZDA6IDB4MDQyMCwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRVIKLSAgICAgICAgMHgwMGQxOiAweDA0MjEsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEVTCi0gICAgICAgIDB4MDBkMjogMHgwNDIyLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBURQotICAgICAgICAweDAwZDM6IDB4MDQyMywgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVQotICAgICAgICAweDAwZDQ6IDB4MDQyNCwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUYKLSAgICAgICAgMHgwMGQ1OiAweDA0MjUsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEhBCi0gICAgICAgIDB4MDBkNjogMHgwNDI2LCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBUU0UKLSAgICAgICAgMHgwMGQ3OiAweDA0MjcsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIENIRQotICAgICAgICAweDAwZDg6IDB4MDQyOCwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hBCi0gICAgICAgIDB4MDBkOTogMHgwNDI5LCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSENIQQotICAgICAgICAweDAwZGE6IDB4MDQyYSwgIyAgICAgICAgQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEFSRCBTSUdOCi0gICAgICAgIDB4MDBkYjogMHgwNDJiLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZRVJVCi0gICAgICAgIDB4MDBkYzogMHgwNDJjLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTT0ZUIFNJR04KLSAgICAgICAgMHgwMGRkOiAweDA0MmQsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIEUKLSAgICAgICAgMHgwMGRlOiAweDA0MmUsICMgICAgICAgIENZUklMTElDIENBUElUQUwgTEVUVEVSIFlVCi0gICAgICAgIDB4MDBkZjogMHgwNDJmLCAjICAgICAgICBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBZQQotICAgICAgICAweDAwZTA6IDB4MDQzMCwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEEKLSAgICAgICAgMHgwMGUxOiAweDA0MzEsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBCRQotICAgICAgICAweDAwZTI6IDB4MDQzMiwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFZFCi0gICAgICAgIDB4MDBlMzogMHgwNDMzLCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFCi0gICAgICAgIDB4MDBlNDogMHgwNDM0LCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgREUKLSAgICAgICAgMHgwMGU1OiAweDA0MzUsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBJRQotICAgICAgICAweDAwZTY6IDB4MDQzNiwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRQotICAgICAgICAweDAwZTc6IDB4MDQzNywgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpFCi0gICAgICAgIDB4MDBlODogMHgwNDM4LCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgSQotICAgICAgICAweDAwZTk6IDB4MDQzOSwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIEkKLSAgICAgICAgMHgwMGVhOiAweDA0M2EsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBLQQotICAgICAgICAweDAwZWI6IDB4MDQzYiwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVMCi0gICAgICAgIDB4MDBlYzogMHgwNDNjLCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgRU0KLSAgICAgICAgMHgwMGVkOiAweDA0M2QsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBFTgotICAgICAgICAweDAwZWU6IDB4MDQzZSwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIE8KLSAgICAgICAgMHgwMGVmOiAweDA0M2YsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBQRQotICAgICAgICAweDAwZjA6IDB4MDQ0MCwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVSCi0gICAgICAgIDB4MDBmMTogMHgwNDQxLCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgRVMKLSAgICAgICAgMHgwMGYyOiAweDA0NDIsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBURQotICAgICAgICAweDAwZjM6IDB4MDQ0MywgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFUKLSAgICAgICAgMHgwMGY0OiAweDA0NDQsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBFRgotICAgICAgICAweDAwZjU6IDB4MDQ0NSwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBCi0gICAgICAgIDB4MDBmNjogMHgwNDQ2LCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgVFNFCi0gICAgICAgIDB4MDBmNzogMHgwNDQ3LCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFCi0gICAgICAgIDB4MDBmODogMHgwNDQ4LCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hBCi0gICAgICAgIDB4MDBmOTogMHgwNDQ5LCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hDSEEKLSAgICAgICAgMHgwMGZhOiAweDA0NGEsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBIQVJEIFNJR04KLSAgICAgICAgMHgwMGZiOiAweDA0NGIsICMgICAgICAgIENZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVCi0gICAgICAgIDB4MDBmYzogMHgwNDRjLCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgU09GVCBTSUdOCi0gICAgICAgIDB4MDBmZDogMHgwNDRkLCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgRQotICAgICAgICAweDAwZmU6IDB4MDQ0ZSwgIyAgICAgICAgQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlVCi0gICAgICAgIDB4MDBmZjogMHgwNDRmLCAjICAgICAgICBDWVJJTExJQyBTTUFMTCBMRVRURVIgWUEKLX0pCisjIyMgRGVjb2RpbmcgVGFibGUKIAotIyMjIEVuY29kaW5nIE1hcAorZGVjb2RpbmdfdGFibGUgPSAoCisgICAgJ1x4MDAnICAgICAjICAweDAwIC0+IE5VTEwKKyAgICAnXHgwMScgICAgICMgIDB4MDEgLT4gU1RBUlQgT0YgSEVBRElORworICAgICdceDAyJyAgICAgIyAgMHgwMiAtPiBTVEFSVCBPRiBURVhUCisgICAgJ1x4MDMnICAgICAjICAweDAzIC0+IEVORCBPRiBURVhUCisgICAgJ1x4MDQnICAgICAjICAweDA0IC0+IEVORCBPRiBUUkFOU01JU1NJT04KKyAgICAnXHgwNScgICAgICMgIDB4MDUgLT4gRU5RVUlSWQorICAgICdceDA2JyAgICAgIyAgMHgwNiAtPiBBQ0tOT1dMRURHRQorICAgICdceDA3JyAgICAgIyAgMHgwNyAtPiBCRUxMCisgICAgJ1x4MDgnICAgICAjICAweDA4IC0+IEJBQ0tTUEFDRQorICAgICdcdCcgICAgICAgIyAgMHgwOSAtPiBIT1JJWk9OVEFMIFRBQlVMQVRJT04KKyAgICAnXG4nICAgICAgICMgIDB4MEEgLT4gTElORSBGRUVECisgICAgJ1x4MGInICAgICAjICAweDBCIC0+IFZFUlRJQ0FMIFRBQlVMQVRJT04KKyAgICAnXHgwYycgICAgICMgIDB4MEMgLT4gRk9STSBGRUVECisgICAgJ1xyJyAgICAgICAjICAweDBEIC0+IENBUlJJQUdFIFJFVFVSTgorICAgICdceDBlJyAgICAgIyAgMHgwRSAtPiBTSElGVCBPVVQKKyAgICAnXHgwZicgICAgICMgIDB4MEYgLT4gU0hJRlQgSU4KKyAgICAnXHgxMCcgICAgICMgIDB4MTAgLT4gREFUQSBMSU5LIEVTQ0FQRQorICAgICdceDExJyAgICAgIyAgMHgxMSAtPiBERVZJQ0UgQ09OVFJPTCBPTkUKKyAgICAnXHgxMicgICAgICMgIDB4MTIgLT4gREVWSUNFIENPTlRST0wgVFdPCisgICAgJ1x4MTMnICAgICAjICAweDEzIC0+IERFVklDRSBDT05UUk9MIFRIUkVFCisgICAgJ1x4MTQnICAgICAjICAweDE0IC0+IERFVklDRSBDT05UUk9MIEZPVVIKKyAgICAnXHgxNScgICAgICMgIDB4MTUgLT4gTkVHQVRJVkUgQUNLTk9XTEVER0UKKyAgICAnXHgxNicgICAgICMgIDB4MTYgLT4gU1lOQ0hST05PVVMgSURMRQorICAgICdceDE3JyAgICAgIyAgMHgxNyAtPiBFTkQgT0YgVFJBTlNNSVNTSU9OIEJMT0NLCisgICAgJ1x4MTgnICAgICAjICAweDE4IC0+IENBTkNFTAorICAgICdceDE5JyAgICAgIyAgMHgxOSAtPiBFTkQgT0YgTUVESVVNCisgICAgJ1x4MWEnICAgICAjICAweDFBIC0+IFNVQlNUSVRVVEUKKyAgICAnXHgxYicgICAgICMgIDB4MUIgLT4gRVNDQVBFCisgICAgJ1x4MWMnICAgICAjICAweDFDIC0+IEZJTEUgU0VQQVJBVE9SCisgICAgJ1x4MWQnICAgICAjICAweDFEIC0+IEdST1VQIFNFUEFSQVRPUgorICAgICdceDFlJyAgICAgIyAgMHgxRSAtPiBSRUNPUkQgU0VQQVJBVE9SCisgICAgJ1x4MWYnICAgICAjICAweDFGIC0+IFVOSVQgU0VQQVJBVE9SCisgICAgJyAnICAgICAgICAjICAweDIwIC0+IFNQQUNFCisgICAgJyEnICAgICAgICAjICAweDIxIC0+IEVYQ0xBTUFUSU9OIE1BUksKKyAgICAnIicgICAgICAgICMgIDB4MjIgLT4gUVVPVEFUSU9OIE1BUksKKyAgICAnIycgICAgICAgICMgIDB4MjMgLT4gTlVNQkVSIFNJR04KKyAgICAnJCcgICAgICAgICMgIDB4MjQgLT4gRE9MTEFSIFNJR04KKyAgICAnJScgICAgICAgICMgIDB4MjUgLT4gUEVSQ0VOVCBTSUdOCisgICAgJyYnICAgICAgICAjICAweDI2IC0+IEFNUEVSU0FORAorICAgICInIiAgICAgICAgIyAgMHgyNyAtPiBBUE9TVFJPUEhFCisgICAgJygnICAgICAgICAjICAweDI4IC0+IExFRlQgUEFSRU5USEVTSVMKKyAgICAnKScgICAgICAgICMgIDB4MjkgLT4gUklHSFQgUEFSRU5USEVTSVMKKyAgICAnKicgICAgICAgICMgIDB4MkEgLT4gQVNURVJJU0sKKyAgICAnKycgICAgICAgICMgIDB4MkIgLT4gUExVUyBTSUdOCisgICAgJywnICAgICAgICAjICAweDJDIC0+IENPTU1BCisgICAgJy0nICAgICAgICAjICAweDJEIC0+IEhZUEhFTi1NSU5VUworICAgICcuJyAgICAgICAgIyAgMHgyRSAtPiBGVUxMIFNUT1AKKyAgICAnLycgICAgICAgICMgIDB4MkYgLT4gU09MSURVUworICAgICcwJyAgICAgICAgIyAgMHgzMCAtPiBESUdJVCBaRVJPCisgICAgJzEnICAgICAgICAjICAweDMxIC0+IERJR0lUIE9ORQorICAgICcyJyAgICAgICAgIyAgMHgzMiAtPiBESUdJVCBUV08KKyAgICAnMycgICAgICAgICMgIDB4MzMgLT4gRElHSVQgVEhSRUUKKyAgICAnNCcgICAgICAgICMgIDB4MzQgLT4gRElHSVQgRk9VUgorICAgICc1JyAgICAgICAgIyAgMHgzNSAtPiBESUdJVCBGSVZFCisgICAgJzYnICAgICAgICAjICAweDM2IC0+IERJR0lUIFNJWAorICAgICc3JyAgICAgICAgIyAgMHgzNyAtPiBESUdJVCBTRVZFTgorICAgICc4JyAgICAgICAgIyAgMHgzOCAtPiBESUdJVCBFSUdIVAorICAgICc5JyAgICAgICAgIyAgMHgzOSAtPiBESUdJVCBOSU5FCisgICAgJzonICAgICAgICAjICAweDNBIC0+IENPTE9OCisgICAgJzsnICAgICAgICAjICAweDNCIC0+IFNFTUlDT0xPTgorICAgICc8JyAgICAgICAgIyAgMHgzQyAtPiBMRVNTLVRIQU4gU0lHTgorICAgICc9JyAgICAgICAgIyAgMHgzRCAtPiBFUVVBTFMgU0lHTgorICAgICc+JyAgICAgICAgIyAgMHgzRSAtPiBHUkVBVEVSLVRIQU4gU0lHTgorICAgICc/JyAgICAgICAgIyAgMHgzRiAtPiBRVUVTVElPTiBNQVJLCisgICAgJ0AnICAgICAgICAjICAweDQwIC0+IENPTU1FUkNJQUwgQVQKKyAgICAnQScgICAgICAgICMgIDB4NDEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgQQorICAgICdCJyAgICAgICAgIyAgMHg0MiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBCCisgICAgJ0MnICAgICAgICAjICAweDQzIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEMKKyAgICAnRCcgICAgICAgICMgIDB4NDQgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgRAorICAgICdFJyAgICAgICAgIyAgMHg0NSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBFCisgICAgJ0YnICAgICAgICAjICAweDQ2IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEYKKyAgICAnRycgICAgICAgICMgIDB4NDcgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgRworICAgICdIJyAgICAgICAgIyAgMHg0OCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBICisgICAgJ0knICAgICAgICAjICAweDQ5IC0+IExBVElOIENBUElUQUwgTEVUVEVSIEkKKyAgICAnSicgICAgICAgICMgIDB4NEEgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgSgorICAgICdLJyAgICAgICAgIyAgMHg0QiAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBLCisgICAgJ0wnICAgICAgICAjICAweDRDIC0+IExBVElOIENBUElUQUwgTEVUVEVSIEwKKyAgICAnTScgICAgICAgICMgIDB4NEQgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgTQorICAgICdOJyAgICAgICAgIyAgMHg0RSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBOCisgICAgJ08nICAgICAgICAjICAweDRGIC0+IExBVElOIENBUElUQUwgTEVUVEVSIE8KKyAgICAnUCcgICAgICAgICMgIDB4NTAgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgUAorICAgICdRJyAgICAgICAgIyAgMHg1MSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBRCisgICAgJ1InICAgICAgICAjICAweDUyIC0+IExBVElOIENBUElUQUwgTEVUVEVSIFIKKyAgICAnUycgICAgICAgICMgIDB4NTMgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgUworICAgICdUJyAgICAgICAgIyAgMHg1NCAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBUCisgICAgJ1UnICAgICAgICAjICAweDU1IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFUKKyAgICAnVicgICAgICAgICMgIDB4NTYgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgVgorICAgICdXJyAgICAgICAgIyAgMHg1NyAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBXCisgICAgJ1gnICAgICAgICAjICAweDU4IC0+IExBVElOIENBUElUQUwgTEVUVEVSIFgKKyAgICAnWScgICAgICAgICMgIDB4NTkgLT4gTEFUSU4gQ0FQSVRBTCBMRVRURVIgWQorICAgICdaJyAgICAgICAgIyAgMHg1QSAtPiBMQVRJTiBDQVBJVEFMIExFVFRFUiBaCisgICAgJ1snICAgICAgICAjICAweDVCIC0+IExFRlQgU1FVQVJFIEJSQUNLRVQKKyAgICAnXFwnICAgICAgICMgIDB4NUMgLT4gUkVWRVJTRSBTT0xJRFVTCisgICAgJ10nICAgICAgICAjICAweDVEIC0+IFJJR0hUIFNRVUFSRSBCUkFDS0VUCisgICAgJ14nICAgICAgICAjICAweDVFIC0+IENJUkNVTUZMRVggQUNDRU5UCisgICAgJ18nICAgICAgICAjICAweDVGIC0+IExPVyBMSU5FCisgICAgJ2AnICAgICAgICAjICAweDYwIC0+IEdSQVZFIEFDQ0VOVAorICAgICdhJyAgICAgICAgIyAgMHg2MSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQQorICAgICdiJyAgICAgICAgIyAgMHg2MiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQgorICAgICdjJyAgICAgICAgIyAgMHg2MyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgQworICAgICdkJyAgICAgICAgIyAgMHg2NCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRAorICAgICdlJyAgICAgICAgIyAgMHg2NSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRQorICAgICdmJyAgICAgICAgIyAgMHg2NiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRgorICAgICdnJyAgICAgICAgIyAgMHg2NyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgRworICAgICdoJyAgICAgICAgIyAgMHg2OCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgSAorICAgICdpJyAgICAgICAgIyAgMHg2OSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgSQorICAgICdqJyAgICAgICAgIyAgMHg2QSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgSgorICAgICdrJyAgICAgICAgIyAgMHg2QiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgSworICAgICdsJyAgICAgICAgIyAgMHg2QyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTAorICAgICdtJyAgICAgICAgIyAgMHg2RCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTQorICAgICduJyAgICAgICAgIyAgMHg2RSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTgorICAgICdvJyAgICAgICAgIyAgMHg2RiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgTworICAgICdwJyAgICAgICAgIyAgMHg3MCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgUAorICAgICdxJyAgICAgICAgIyAgMHg3MSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgUQorICAgICdyJyAgICAgICAgIyAgMHg3MiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgUgorICAgICdzJyAgICAgICAgIyAgMHg3MyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgUworICAgICd0JyAgICAgICAgIyAgMHg3NCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVAorICAgICd1JyAgICAgICAgIyAgMHg3NSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVQorICAgICd2JyAgICAgICAgIyAgMHg3NiAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVgorICAgICd3JyAgICAgICAgIyAgMHg3NyAtPiBMQVRJTiBTTUFMTCBMRVRURVIgVworICAgICd4JyAgICAgICAgIyAgMHg3OCAtPiBMQVRJTiBTTUFMTCBMRVRURVIgWAorICAgICd5JyAgICAgICAgIyAgMHg3OSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgWQorICAgICd6JyAgICAgICAgIyAgMHg3QSAtPiBMQVRJTiBTTUFMTCBMRVRURVIgWgorICAgICd7JyAgICAgICAgIyAgMHg3QiAtPiBMRUZUIENVUkxZIEJSQUNLRVQKKyAgICAnfCcgICAgICAgICMgIDB4N0MgLT4gVkVSVElDQUwgTElORQorICAgICd9JyAgICAgICAgIyAgMHg3RCAtPiBSSUdIVCBDVVJMWSBCUkFDS0VUCisgICAgJ34nICAgICAgICAjICAweDdFIC0+IFRJTERFCisgICAgJ1x4N2YnICAgICAjICAweDdGIC0+IERFTEVURSAoREVMKQorICAgICdcdTA0OTYnICAgIyAgMHg4MCAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBaSEUgV0lUSCBERVNDRU5ERVIKKyAgICAnXHUwNDkyJyAgICMgIDB4ODEgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgR0hFIFdJVEggU1RST0tFCisgICAgJ1x1MDRlZScgICAjICAweDgyIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIFUgV0lUSCBNQUNST04KKyAgICAnXHUwNDkzJyAgICMgIDB4ODMgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEdIRSBXSVRIIFNUUk9LRQorICAgICdcdTIwMWUnICAgIyAgMHg4NCAtPiBET1VCTEUgTE9XLTkgUVVPVEFUSU9OIE1BUksKKyAgICAnXHUyMDI2JyAgICMgIDB4ODUgLT4gSE9SSVpPTlRBTCBFTExJUFNJUworICAgICdcdTA0YjYnICAgIyAgMHg4NiAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVIKKyAgICAnXHUwNGFlJyAgICMgIDB4ODcgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVQorICAgICdcdTA0YjInICAgIyAgMHg4OCAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBIQSBXSVRIIERFU0NFTkRFUgorICAgICdcdTA0YWYnICAgIyAgMHg4OSAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgU1RSQUlHSFQgVQorICAgICdcdTA0YTAnICAgIyAgMHg4QSAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCQVNIS0lSIEtBCisgICAgJ1x1MDRlMicgICAjICAweDhCIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIEkgV0lUSCBNQUNST04KKyAgICAnXHUwNGEyJyAgICMgIDB4OEMgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRU4gV0lUSCBERVNDRU5ERVIKKyAgICAnXHUwNDlhJyAgICMgIDB4OEQgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgS0EgV0lUSCBERVNDRU5ERVIKKyAgICAnXHUwNGJhJyAgICMgIDB4OEUgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hIQQorICAgICdcdTA0YjgnICAgIyAgMHg4RiAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBDSEUgV0lUSCBWRVJUSUNBTCBTVFJPS0UKKyAgICAnXHUwNDk3JyAgICMgIDB4OTAgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRSBXSVRIIERFU0NFTkRFUgorICAgICdcdTIwMTgnICAgIyAgMHg5MSAtPiBMRUZUIFNJTkdMRSBRVU9UQVRJT04gTUFSSworICAgICdcdTIwMTknICAgIyAgMHg5MiAtPiBSSUdIVCBTSU5HTEUgUVVPVEFUSU9OIE1BUksKKyAgICAnXHUyMDFjJyAgICMgIDB4OTMgLT4gTEVGVCBET1VCTEUgUVVPVEFUSU9OIE1BUksKKyAgICAnXHUyMDFkJyAgICMgIDB4OTQgLT4gUklHSFQgRE9VQkxFIFFVT1RBVElPTiBNQVJLCisgICAgJ1x1MjAyMicgICAjICAweDk1IC0+IEJVTExFVAorICAgICdcdTIwMTMnICAgIyAgMHg5NiAtPiBFTiBEQVNICisgICAgJ1x1MjAxNCcgICAjICAweDk3IC0+IEVNIERBU0gKKyAgICAnXHUwNGIzJyAgICMgIDB4OTggLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBIFdJVEggREVTQ0VOREVSCisgICAgJ1x1MDRiNycgICAjICAweDk5IC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBDSEUgV0lUSCBERVNDRU5ERVIKKyAgICAnXHUwNGExJyAgICMgIDB4OUEgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEJBU0hLSVIgS0EKKyAgICAnXHUwNGUzJyAgICMgIDB4OUIgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEkgV0lUSCBNQUNST04KKyAgICAnXHUwNGEzJyAgICMgIDB4OUMgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOIFdJVEggREVTQ0VOREVSCisgICAgJ1x1MDQ5YicgICAjICAweDlEIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBLQSBXSVRIIERFU0NFTkRFUgorICAgICdcdTA0YmInICAgIyAgMHg5RSAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hIQQorICAgICdcdTA0YjknICAgIyAgMHg5RiAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgQ0hFIFdJVEggVkVSVElDQUwgU1RST0tFCisgICAgJ1x4YTAnICAgICAjICAweEEwIC0+IE5PLUJSRUFLIFNQQUNFCisgICAgJ1x1MDQwZScgICAjICAweEExIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIFNIT1JUIFUgKEJ5ZWxvcnVzc2lhbikKKyAgICAnXHUwNDVlJyAgICMgIDB4QTIgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIFUgKEJ5ZWxvcnVzc2lhbikKKyAgICAnXHUwNDA4JyAgICMgIDB4QTMgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSkUKKyAgICAnXHUwNGU4JyAgICMgIDB4QTQgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQkFSUkVEIE8KKyAgICAnXHUwNDk4JyAgICMgIDB4QTUgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkUgV0lUSCBERVNDRU5ERVIKKyAgICAnXHUwNGIwJyAgICMgIDB4QTYgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU1RSQUlHSFQgVSBXSVRIIFNUUk9LRQorICAgICdceGE3JyAgICAgIyAgMHhBNyAtPiBTRUNUSU9OIFNJR04KKyAgICAnXHUwNDAxJyAgICMgIDB4QTggLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSU8KKyAgICAnXHhhOScgICAgICMgIDB4QTkgLT4gQ09QWVJJR0hUIFNJR04KKyAgICAnXHUwNGQ4JyAgICMgIDB4QUEgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0NIV0EKKyAgICAnXHhhYicgICAgICMgIDB4QUIgLT4gTEVGVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUksKKyAgICAnXHhhYycgICAgICMgIDB4QUMgLT4gTk9UIFNJR04KKyAgICAnXHUwNGVmJyAgICMgIDB4QUQgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFUgV0lUSCBNQUNST04KKyAgICAnXHhhZScgICAgICMgIDB4QUUgLT4gUkVHSVNURVJFRCBTSUdOCisgICAgJ1x1MDQ5YycgICAjICAweEFGIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIEtBIFdJVEggVkVSVElDQUwgU1RST0tFCisgICAgJ1x4YjAnICAgICAjICAweEIwIC0+IERFR1JFRSBTSUdOCisgICAgJ1x1MDRiMScgICAjICAweEIxIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBTVFJBSUdIVCBVIFdJVEggU1RST0tFCisgICAgJ1x1MDQwNicgICAjICAweEIyIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIEJZRUxPUlVTU0lBTi1VS1JBSU5JQU4gSQorICAgICdcdTA0NTYnICAgIyAgMHhCMyAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgQllFTE9SVVNTSUFOLVVLUkFJTklBTiBJCisgICAgJ1x1MDQ5OScgICAjICAweEI0IC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBaRSBXSVRIIERFU0NFTkRFUgorICAgICdcdTA0ZTknICAgIyAgMHhCNSAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgQkFSUkVEIE8KKyAgICAnXHhiNicgICAgICMgIDB4QjYgLT4gUElMQ1JPVyBTSUdOCisgICAgJ1x4YjcnICAgICAjICAweEI3IC0+IE1JRERMRSBET1QKKyAgICAnXHUwNDUxJyAgICMgIDB4QjggLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIElPCisgICAgJ1x1MjExNicgICAjICAweEI5IC0+IE5VTUVSTyBTSUdOCisgICAgJ1x1MDRkOScgICAjICAweEJBIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBTQ0hXQQorICAgICdceGJiJyAgICAgIyAgMHhCQiAtPiBSSUdIVC1QT0lOVElORyBET1VCTEUgQU5HTEUgUVVPVEFUSU9OIE1BUksKKyAgICAnXHUwNDU4JyAgICMgIDB4QkMgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEpFCisgICAgJ1x1MDRhYScgICAjICAweEJEIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIEVTIFdJVEggREVTQ0VOREVSCisgICAgJ1x1MDRhYicgICAjICAweEJFIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBFUyBXSVRIIERFU0NFTkRFUgorICAgICdcdTA0OWQnICAgIyAgMHhCRiAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgS0EgV0lUSCBWRVJUSUNBTCBTVFJPS0UKKyAgICAnXHUwNDEwJyAgICMgIDB4QzAgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgQQorICAgICdcdTA0MTEnICAgIyAgMHhDMSAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBCRQorICAgICdcdTA0MTInICAgIyAgMHhDMiAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBWRQorICAgICdcdTA0MTMnICAgIyAgMHhDMyAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBHSEUKKyAgICAnXHUwNDE0JyAgICMgIDB4QzQgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgREUKKyAgICAnXHUwNDE1JyAgICMgIDB4QzUgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSUUKKyAgICAnXHUwNDE2JyAgICMgIDB4QzYgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWkhFCisgICAgJ1x1MDQxNycgICAjICAweEM3IC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIFpFCisgICAgJ1x1MDQxOCcgICAjICAweEM4IC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIEkKKyAgICAnXHUwNDE5JyAgICMgIDB4QzkgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hPUlQgSQorICAgICdcdTA0MWEnICAgIyAgMHhDQSAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBLQQorICAgICdcdTA0MWInICAgIyAgMHhDQiAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTAorICAgICdcdTA0MWMnICAgIyAgMHhDQyAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTQorICAgICdcdTA0MWQnICAgIyAgMHhDRCAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBFTgorICAgICdcdTA0MWUnICAgIyAgMHhDRSAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBPCisgICAgJ1x1MDQxZicgICAjICAweENGIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIFBFCisgICAgJ1x1MDQyMCcgICAjICAweEQwIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIEVSCisgICAgJ1x1MDQyMScgICAjICAweEQxIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIEVTCisgICAgJ1x1MDQyMicgICAjICAweEQyIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIFRFCisgICAgJ1x1MDQyMycgICAjICAweEQzIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIFUKKyAgICAnXHUwNDI0JyAgICMgIDB4RDQgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgRUYKKyAgICAnXHUwNDI1JyAgICMgIDB4RDUgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEEKKyAgICAnXHUwNDI2JyAgICMgIDB4RDYgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgVFNFCisgICAgJ1x1MDQyNycgICAjICAweEQ3IC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIENIRQorICAgICdcdTA0MjgnICAgIyAgMHhEOCAtPiBDWVJJTExJQyBDQVBJVEFMIExFVFRFUiBTSEEKKyAgICAnXHUwNDI5JyAgICMgIDB4RDkgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU0hDSEEKKyAgICAnXHUwNDJhJyAgICMgIDB4REEgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgSEFSRCBTSUdOCisgICAgJ1x1MDQyYicgICAjICAweERCIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIFlFUlUKKyAgICAnXHUwNDJjJyAgICMgIDB4REMgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgU09GVCBTSUdOCisgICAgJ1x1MDQyZCcgICAjICAweEREIC0+IENZUklMTElDIENBUElUQUwgTEVUVEVSIEUKKyAgICAnXHUwNDJlJyAgICMgIDB4REUgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWVUKKyAgICAnXHUwNDJmJyAgICMgIDB4REYgLT4gQ1lSSUxMSUMgQ0FQSVRBTCBMRVRURVIgWUEKKyAgICAnXHUwNDMwJyAgICMgIDB4RTAgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEEKKyAgICAnXHUwNDMxJyAgICMgIDB4RTEgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEJFCisgICAgJ1x1MDQzMicgICAjICAweEUyIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBWRQorICAgICdcdTA0MzMnICAgIyAgMHhFMyAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgR0hFCisgICAgJ1x1MDQzNCcgICAjICAweEU0IC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBERQorICAgICdcdTA0MzUnICAgIyAgMHhFNSAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgSUUKKyAgICAnXHUwNDM2JyAgICMgIDB4RTYgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFpIRQorICAgICdcdTA0MzcnICAgIyAgMHhFNyAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgWkUKKyAgICAnXHUwNDM4JyAgICMgIDB4RTggLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEkKKyAgICAnXHUwNDM5JyAgICMgIDB4RTkgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFNIT1JUIEkKKyAgICAnXHUwNDNhJyAgICMgIDB4RUEgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEtBCisgICAgJ1x1MDQzYicgICAjICAweEVCIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBFTAorICAgICdcdTA0M2MnICAgIyAgMHhFQyAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgRU0KKyAgICAnXHUwNDNkJyAgICMgIDB4RUQgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVOCisgICAgJ1x1MDQzZScgICAjICAweEVFIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBPCisgICAgJ1x1MDQzZicgICAjICAweEVGIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBQRQorICAgICdcdTA0NDAnICAgIyAgMHhGMCAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgRVIKKyAgICAnXHUwNDQxJyAgICMgIDB4RjEgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEVTCisgICAgJ1x1MDQ0MicgICAjICAweEYyIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBURQorICAgICdcdTA0NDMnICAgIyAgMHhGMyAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgVQorICAgICdcdTA0NDQnICAgIyAgMHhGNCAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgRUYKKyAgICAnXHUwNDQ1JyAgICMgIDB4RjUgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEhBCisgICAgJ1x1MDQ0NicgICAjICAweEY2IC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBUU0UKKyAgICAnXHUwNDQ3JyAgICMgIDB4RjcgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIENIRQorICAgICdcdTA0NDgnICAgIyAgMHhGOCAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgU0hBCisgICAgJ1x1MDQ0OScgICAjICAweEY5IC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBTSENIQQorICAgICdcdTA0NGEnICAgIyAgMHhGQSAtPiBDWVJJTExJQyBTTUFMTCBMRVRURVIgSEFSRCBTSUdOCisgICAgJ1x1MDQ0YicgICAjICAweEZCIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBZRVJVCisgICAgJ1x1MDQ0YycgICAjICAweEZDIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBTT0ZUIFNJR04KKyAgICAnXHUwNDRkJyAgICMgIDB4RkQgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIEUKKyAgICAnXHUwNDRlJyAgICMgIDB4RkUgLT4gQ1lSSUxMSUMgU01BTEwgTEVUVEVSIFlVCisgICAgJ1x1MDQ0ZicgICAjICAweEZGIC0+IENZUklMTElDIFNNQUxMIExFVFRFUiBZQQorKQogCi1lbmNvZGluZ19tYXAgPSBjb2RlY3MubWFrZV9lbmNvZGluZ19tYXAoZGVjb2RpbmdfbWFwKQorIyMjIEVuY29kaW5nIHRhYmxlCitlbmNvZGluZ190YWJsZT1jb2RlY3MuY2hhcm1hcF9idWlsZChkZWNvZGluZ190YWJsZSkKZGlmZiAtLWdpdCBhL0xpYi9maWxlaW5wdXQucHkgYi9MaWIvZmlsZWlucHV0LnB5CmluZGV4IDU1NGJlYjIuLmRiYmJiMjEgMTAwNjQ0Ci0tLSBhL0xpYi9maWxlaW5wdXQucHkKKysrIGIvTGliL2ZpbGVpbnB1dC5weQpAQCAtMzk4LDkgKzM5OCw4IEBACiAKIAogZGVmIGhvb2tfZW5jb2RlZChlbmNvZGluZyk6Ci0gICAgaW1wb3J0IGNvZGVjcwogICAgIGRlZiBvcGVuaG9vayhmaWxlbmFtZSwgbW9kZSk6Ci0gICAgICAgIHJldHVybiBjb2RlY3Mub3BlbihmaWxlbmFtZSwgbW9kZSwgZW5jb2RpbmcpCisgICAgICAgIHJldHVybiBvcGVuKGZpbGVuYW1lLCBtb2RlLCBlbmNvZGluZz1lbmNvZGluZykKICAgICByZXR1cm4gb3Blbmhvb2sKIAogCmRpZmYgLS1naXQgYS9MaWIvZm5tYXRjaC5weSBiL0xpYi9mbm1hdGNoLnB5CmluZGV4IDcyNmZiZTUuLmY0NDY3NjkgMTAwNjQ0Ci0tLSBhL0xpYi9mbm1hdGNoLnB5CisrKyBiL0xpYi9mbm1hdGNoLnB5CkBAIC0zNSw5ICszNSw5IEBACiAgICAgcGF0ID0gb3MucGF0aC5ub3JtY2FzZShwYXQpCiAgICAgcmV0dXJuIGZubWF0Y2hjYXNlKG5hbWUsIHBhdCkKIAotQGZ1bmN0b29scy5scnVfY2FjaGUobWF4c2l6ZT0yNTApCi1kZWYgX2NvbXBpbGVfcGF0dGVybihwYXQsIGlzX2J5dGVzPUZhbHNlKToKLSAgICBpZiBpc19ieXRlczoKK0BmdW5jdG9vbHMubHJ1X2NhY2hlKG1heHNpemU9MjUwLCB0eXBlZD1UcnVlKQorZGVmIF9jb21waWxlX3BhdHRlcm4ocGF0KToKKyAgICBpZiBpc2luc3RhbmNlKHBhdCwgYnl0ZXMpOgogICAgICAgICBwYXRfc3RyID0gc3RyKHBhdCwgJ0lTTy04ODU5LTEnKQogICAgICAgICByZXNfc3RyID0gdHJhbnNsYXRlKHBhdF9zdHIpCiAgICAgICAgIHJlcyA9IGJ5dGVzKHJlc19zdHIsICdJU08tODg1OS0xJykKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICAiIiJSZXR1cm4gdGhlIHN1YnNldCBvZiB0aGUgbGlzdCBOQU1FUyB0aGF0IG1hdGNoIFBBVC4iIiIKICAgICByZXN1bHQgPSBbXQogICAgIHBhdCA9IG9zLnBhdGgubm9ybWNhc2UocGF0KQotICAgIG1hdGNoID0gX2NvbXBpbGVfcGF0dGVybihwYXQsIGlzaW5zdGFuY2UocGF0LCBieXRlcykpCisgICAgbWF0Y2ggPSBfY29tcGlsZV9wYXR0ZXJuKHBhdCkKICAgICBpZiBvcy5wYXRoIGlzIHBvc2l4cGF0aDoKICAgICAgICAgIyBub3JtY2FzZSBvbiBwb3NpeCBpcyBOT1AuIE9wdGltaXplIGl0IGF3YXkgZnJvbSB0aGUgbG9vcC4KICAgICAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CkBAIC02Nyw3ICs2Nyw3IEBACiAgICAgVGhpcyBpcyBhIHZlcnNpb24gb2YgZm5tYXRjaCgpIHdoaWNoIGRvZXNuJ3QgY2FzZS1ub3JtYWxpemUKICAgICBpdHMgYXJndW1lbnRzLgogICAgICIiIgotICAgIG1hdGNoID0gX2NvbXBpbGVfcGF0dGVybihwYXQsIGlzaW5zdGFuY2UocGF0LCBieXRlcykpCisgICAgbWF0Y2ggPSBfY29tcGlsZV9wYXR0ZXJuKHBhdCkKICAgICByZXR1cm4gbWF0Y2gobmFtZSkgaXMgbm90IE5vbmUKIAogCmRpZmYgLS1naXQgYS9MaWIvZnRwbGliLnB5IGIvTGliL2Z0cGxpYi5weQppbmRleCA4ZTUzMDIzLi4xODg4N2E2IDEwMDY0NAotLS0gYS9MaWIvZnRwbGliLnB5CisrKyBiL0xpYi9mdHBsaWIucHkKQEAgLTEwMCwxNCArMTAwLDE1IEBACiAgICAgZmlsZSA9IE5vbmUKICAgICB3ZWxjb21lID0gTm9uZQogICAgIHBhc3NpdmVzZXJ2ZXIgPSAxCi0gICAgZW5jb2RpbmcgPSAibGF0aW4xIgorICAgIGVuY29kaW5nID0gImxhdGluLTEiCiAKICAgICAjIEluaXRpYWxpemF0aW9uIG1ldGhvZCAoY2FsbGVkIGJ5IGNsYXNzIGluc3RhbnRpYXRpb24pLgogICAgICMgSW5pdGlhbGl6ZSBob3N0IHRvIGxvY2FsaG9zdCwgcG9ydCB0byBzdGFuZGFyZCBmdHAgcG9ydAogICAgICMgT3B0aW9uYWwgYXJndW1lbnRzIGFyZSBob3N0IChmb3IgY29ubmVjdCgpKSwKICAgICAjIGFuZCB1c2VyLCBwYXNzd2QsIGFjY3QgKGZvciBsb2dpbigpKQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0PScnLCB1c2VyPScnLCBwYXNzd2Q9JycsIGFjY3Q9JycsCi0gICAgICAgICAgICAgICAgIHRpbWVvdXQ9X0dMT0JBTF9ERUZBVUxUX1RJTUVPVVQpOgorICAgICAgICAgICAgICAgICB0aW1lb3V0PV9HTE9CQUxfREVGQVVMVF9USU1FT1VULCBzb3VyY2VfYWRkcmVzcz1Ob25lKToKKyAgICAgICAgc2VsZi5zb3VyY2VfYWRkcmVzcyA9IHNvdXJjZV9hZGRyZXNzCiAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKICAgICAgICAgaWYgaG9zdDoKICAgICAgICAgICAgIHNlbGYuY29ubmVjdChob3N0KQpAQCAtMTI4LDEwICsxMjksMTIgQEAKICAgICAgICAgICAgICAgICBpZiBzZWxmLnNvY2sgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQogCi0gICAgZGVmIGNvbm5lY3Qoc2VsZiwgaG9zdD0nJywgcG9ydD0wLCB0aW1lb3V0PS05OTkpOgorICAgIGRlZiBjb25uZWN0KHNlbGYsIGhvc3Q9JycsIHBvcnQ9MCwgdGltZW91dD0tOTk5LCBzb3VyY2VfYWRkcmVzcz1Ob25lKToKICAgICAgICAgJycnQ29ubmVjdCB0byBob3N0LiAgQXJndW1lbnRzIGFyZToKICAgICAgICAgIC0gaG9zdDogaG9zdG5hbWUgdG8gY29ubmVjdCB0byAoc3RyaW5nLCBkZWZhdWx0IHByZXZpb3VzIGhvc3QpCiAgICAgICAgICAtIHBvcnQ6IHBvcnQgdG8gY29ubmVjdCB0byAoaW50ZWdlciwgZGVmYXVsdCBwcmV2aW91cyBwb3J0KQorICAgICAgICAgLSBzb3VyY2VfYWRkcmVzczogYSAyLXR1cGxlIChob3N0LCBwb3J0KSBmb3IgdGhlIHNvY2tldCB0byBiaW5kCisgICAgICAgICAgIHRvIGFzIGl0cyBzb3VyY2UgYWRkcmVzcyBiZWZvcmUgY29ubmVjdGluZy4KICAgICAgICAgJycnCiAgICAgICAgIGlmIGhvc3QgIT0gJyc6CiAgICAgICAgICAgICBzZWxmLmhvc3QgPSBob3N0CkBAIC0xMzksNyArMTQyLDEwIEBACiAgICAgICAgICAgICBzZWxmLnBvcnQgPSBwb3J0CiAgICAgICAgIGlmIHRpbWVvdXQgIT0gLTk5OToKICAgICAgICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi5zb2NrID0gc29ja2V0LmNyZWF0ZV9jb25uZWN0aW9uKChzZWxmLmhvc3QsIHNlbGYucG9ydCksIHNlbGYudGltZW91dCkKKyAgICAgICAgaWYgc291cmNlX2FkZHJlc3MgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnNvdXJjZV9hZGRyZXNzID0gc291cmNlX2FkZHJlc3MKKyAgICAgICAgc2VsZi5zb2NrID0gc29ja2V0LmNyZWF0ZV9jb25uZWN0aW9uKChzZWxmLmhvc3QsIHNlbGYucG9ydCksIHNlbGYudGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzPXNlbGYuc291cmNlX2FkZHJlc3MpCiAgICAgICAgIHNlbGYuYWYgPSBzZWxmLnNvY2suZmFtaWx5CiAgICAgICAgIHNlbGYuZmlsZSA9IHNlbGYuc29jay5tYWtlZmlsZSgncicsIGVuY29kaW5nPXNlbGYuZW5jb2RpbmcpCiAgICAgICAgIHNlbGYud2VsY29tZSA9IHNlbGYuZ2V0cmVzcCgpCkBAIC0xNjksMTAgKzE3NSw4IEBACiAKICAgICAjIEludGVybmFsOiAic2FuaXRpemUiIGEgc3RyaW5nIGZvciBwcmludGluZwogICAgIGRlZiBzYW5pdGl6ZShzZWxmLCBzKToKLSAgICAgICAgaWYgc1s6NV0gPT0gJ3Bhc3MgJyBvciBzWzo1XSA9PSAnUEFTUyAnOgotICAgICAgICAgICAgaSA9IGxlbihzKQotICAgICAgICAgICAgd2hpbGUgaSA+IDUgYW5kIHNbaS0xXSBpbiB7J1xyJywgJ1xuJ306Ci0gICAgICAgICAgICAgICAgaSA9IGktMQorICAgICAgICBpZiBzWzo1XSBpbiB7J3Bhc3MgJywgJ1BBU1MgJ306CisgICAgICAgICAgICBpID0gbGVuKHMucnN0cmlwKCdcclxuJykpCiAgICAgICAgICAgICBzID0gc1s6NV0gKyAnKicqKGktNSkgKyBzW2k6XQogICAgICAgICByZXR1cm4gcmVwcihzKQogCkBAIC0zMzUsNyArMzM5LDggQEAKICAgICAgICAgc2l6ZSA9IE5vbmUKICAgICAgICAgaWYgc2VsZi5wYXNzaXZlc2VydmVyOgogICAgICAgICAgICAgaG9zdCwgcG9ydCA9IHNlbGYubWFrZXBhc3YoKQotICAgICAgICAgICAgY29ubiA9IHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbigoaG9zdCwgcG9ydCksIHNlbGYudGltZW91dCkKKyAgICAgICAgICAgIGNvbm4gPSBzb2NrZXQuY3JlYXRlX2Nvbm5lY3Rpb24oKGhvc3QsIHBvcnQpLCBzZWxmLnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzPXNlbGYuc291cmNlX2FkZHJlc3MpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgaWYgcmVzdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZW5kY21kKCJSRVNUICVzIiAlIHJlc3QpCkBAIC0zNTQsOCArMzU5LDcgQEAKICAgICAgICAgICAgICAgICBjb25uLmNsb3NlKCkKICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc29jayA9IHNlbGYubWFrZXBvcnQoKQotICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBzZWxmLm1ha2Vwb3J0KCkgYXMgc29jazoKICAgICAgICAgICAgICAgICBpZiByZXN0IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgICBzZWxmLnNlbmRjbWQoIlJFU1QgJXMiICUgcmVzdCkKICAgICAgICAgICAgICAgICByZXNwID0gc2VsZi5zZW5kY21kKGNtZCkKQEAgLTM2Nyw4ICszNzEsNiBAQAogICAgICAgICAgICAgICAgIGNvbm4sIHNvY2thZGRyID0gc29jay5hY2NlcHQoKQogICAgICAgICAgICAgICAgIGlmIHNlbGYudGltZW91dCBpcyBub3QgX0dMT0JBTF9ERUZBVUxUX1RJTUVPVVQ6CiAgICAgICAgICAgICAgICAgICAgIGNvbm4uc2V0dGltZW91dChzZWxmLnRpbWVvdXQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIHNvY2suY2xvc2UoKQogICAgICAgICBpZiByZXNwWzozXSA9PSAnMTUwJzoKICAgICAgICAgICAgICMgdGhpcyBpcyBjb25kaXRpb25hbCBpbiBjYXNlIHdlIHJlY2VpdmVkIGEgMTI1CiAgICAgICAgICAgICBzaXplID0gcGFyc2UxNTAocmVzcCkKQEAgLTQyNiw3ICs0MjgsNyBAQAogICAgICAgICAiIiJSZXRyaWV2ZSBkYXRhIGluIGxpbmUgbW9kZS4gIEEgbmV3IHBvcnQgaXMgY3JlYXRlZCBmb3IgeW91LgogCiAgICAgICAgIEFyZ3M6Ci0gICAgICAgICAgY21kOiBBIFJFVFIsIExJU1QsIE5MU1QsIG9yIE1MU0QgY29tbWFuZC4KKyAgICAgICAgICBjbWQ6IEEgUkVUUiwgTElTVCwgb3IgTkxTVCBjb21tYW5kLgogICAgICAgICAgIGNhbGxiYWNrOiBBbiBvcHRpb25hbCBzaW5nbGUgcGFyYW1ldGVyIGNhbGxhYmxlIHRoYXQgaXMgY2FsbGVkCiAgICAgICAgICAgICAgICAgICAgIGZvciBlYWNoIGxpbmUgd2l0aCB0aGUgdHJhaWxpbmcgQ1JMRiBzdHJpcHBlZC4KICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHQ6IHByaW50X2xpbmUoKV0KQEAgLTUyNyw2ICs1MjksMzQgQEAKICAgICAgICAgICAgICAgICBjbWQgPSBjbWQgKyAoJyAnICsgYXJnKQogICAgICAgICBzZWxmLnJldHJsaW5lcyhjbWQsIGZ1bmMpCiAKKyAgICBkZWYgbWxzZChzZWxmLCBwYXRoPSIiLCBmYWN0cz1bXSk6CisgICAgICAgICcnJ0xpc3QgYSBkaXJlY3RvcnkgaW4gYSBzdGFuZGFyZGl6ZWQgZm9ybWF0IGJ5IHVzaW5nIE1MU0QKKyAgICAgICAgY29tbWFuZCAoUkZDLTM2NTkpLiBJZiBwYXRoIGlzIG9taXR0ZWQgdGhlIGN1cnJlbnQgZGlyZWN0b3J5CisgICAgICAgIGlzIGFzc3VtZWQuICJmYWN0cyIgaXMgYSBsaXN0IG9mIHN0cmluZ3MgcmVwcmVzZW50aW5nIHRoZSB0eXBlCisgICAgICAgIG9mIGluZm9ybWF0aW9uIGRlc2lyZWQgKGUuZy4gWyJ0eXBlIiwgInNpemUiLCAicGVybSJdKS4KKworICAgICAgICBSZXR1cm4gYSBnZW5lcmF0b3Igb2JqZWN0IHlpZWxkaW5nIGEgdHVwbGUgb2YgdHdvIGVsZW1lbnRzCisgICAgICAgIGZvciBldmVyeSBmaWxlIGZvdW5kIGluIHBhdGguCisgICAgICAgIEZpcnN0IGVsZW1lbnQgaXMgdGhlIGZpbGUgbmFtZSwgdGhlIHNlY29uZCBvbmUgaXMgYSBkaWN0aW9uYXJ5CisgICAgICAgIGluY2x1ZGluZyBhIHZhcmlhYmxlIG51bWJlciBvZiAiZmFjdHMiIGRlcGVuZGluZyBvbiB0aGUgc2VydmVyCisgICAgICAgIGFuZCB3aGV0aGVyICJmYWN0cyIgYXJndW1lbnQgaGFzIGJlZW4gcHJvdmlkZWQuCisgICAgICAgICcnJworICAgICAgICBpZiBmYWN0czoKKyAgICAgICAgICAgIHNlbGYuc2VuZGNtZCgiT1BUUyBNTFNUICIgKyAiOyIuam9pbihmYWN0cykgKyAiOyIpCisgICAgICAgIGlmIHBhdGg6CisgICAgICAgICAgICBjbWQgPSAiTUxTRCAlcyIgJSBwYXRoCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjbWQgPSAiTUxTRCIKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBzZWxmLnJldHJsaW5lcyhjbWQsIGxpbmVzLmFwcGVuZCkKKyAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAgICAgICAgICBmYWN0c19mb3VuZCwgXywgbmFtZSA9IGxpbmUucnN0cmlwKENSTEYpLnBhcnRpdGlvbignICcpCisgICAgICAgICAgICBlbnRyeSA9IHt9CisgICAgICAgICAgICBmb3IgZmFjdCBpbiBmYWN0c19mb3VuZFs6LTFdLnNwbGl0KCI7Iik6CisgICAgICAgICAgICAgICAga2V5LCBfLCB2YWx1ZSA9IGZhY3QucGFydGl0aW9uKCI9IikKKyAgICAgICAgICAgICAgICBlbnRyeVtrZXkubG93ZXIoKV0gPSB2YWx1ZQorICAgICAgICAgICAgeWllbGQgKG5hbWUsIGVudHJ5KQorCiAgICAgZGVmIHJlbmFtZShzZWxmLCBmcm9tbmFtZSwgdG9uYW1lKToKICAgICAgICAgJycnUmVuYW1lIGEgZmlsZS4nJycKICAgICAgICAgcmVzcCA9IHNlbGYuc2VuZGNtZCgnUk5GUiAnICsgZnJvbW5hbWUpCkBAIC01NjEsMTAgKzU5MSw3IEBACiAgICAgICAgIHJlc3AgPSBzZWxmLnNlbmRjbWQoJ1NJWkUgJyArIGZpbGVuYW1lKQogICAgICAgICBpZiByZXNwWzozXSA9PSAnMjEzJzoKICAgICAgICAgICAgIHMgPSByZXNwWzM6XS5zdHJpcCgpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGludChzKQotICAgICAgICAgICAgZXhjZXB0IChPdmVyZmxvd0Vycm9yLCBWYWx1ZUVycm9yKToKLSAgICAgICAgICAgICAgICByZXR1cm4gaW50KHMpCisgICAgICAgICAgICByZXR1cm4gaW50KHMpCiAKICAgICBkZWYgbWtkKHNlbGYsIGRpcm5hbWUpOgogICAgICAgICAnJydNYWtlIGEgZGlyZWN0b3J5LCByZXR1cm4gaXRzIGZ1bGwgcGF0aG5hbWUuJycnCkBAIC01OTYsMTEgKzYyMywxMSBAQAogCiAgICAgZGVmIGNsb3NlKHNlbGYpOgogICAgICAgICAnJydDbG9zZSB0aGUgY29ubmVjdGlvbiB3aXRob3V0IGFzc3VtaW5nIGFueXRoaW5nIGFib3V0IGl0LicnJwotICAgICAgICBpZiBzZWxmLmZpbGU6CisgICAgICAgIGlmIHNlbGYuZmlsZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYuZmlsZS5jbG9zZSgpCisgICAgICAgIGlmIHNlbGYuc29jayBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYuc29jay5jbG9zZSgpCi0gICAgICAgICAgICBzZWxmLmZpbGUgPSBzZWxmLnNvY2sgPSBOb25lCi0KKyAgICAgICAgc2VsZi5maWxlID0gc2VsZi5zb2NrID0gTm9uZQogCiB0cnk6CiAgICAgaW1wb3J0IHNzbApAQCAtNjQ0LDcgKzY3MSw3IEBACiAKICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Q9JycsIHVzZXI9JycsIHBhc3N3ZD0nJywgYWNjdD0nJywga2V5ZmlsZT1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgY2VydGZpbGU9Tm9uZSwgY29udGV4dD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgdGltZW91dD1fR0xPQkFMX0RFRkFVTFRfVElNRU9VVCk6CisgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PV9HTE9CQUxfREVGQVVMVF9USU1FT1VULCBzb3VyY2VfYWRkcmVzcz1Ob25lKToKICAgICAgICAgICAgIGlmIGNvbnRleHQgaXMgbm90IE5vbmUgYW5kIGtleWZpbGUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29udGV4dCBhbmQga2V5ZmlsZSBhcmd1bWVudHMgYXJlIG11dHVhbGx5ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGNsdXNpdmUiKQpAQCAtNjU1LDcgKzY4Miw3IEBACiAgICAgICAgICAgICBzZWxmLmNlcnRmaWxlID0gY2VydGZpbGUKICAgICAgICAgICAgIHNlbGYuY29udGV4dCA9IGNvbnRleHQKICAgICAgICAgICAgIHNlbGYuX3Byb3RfcCA9IEZhbHNlCi0gICAgICAgICAgICBGVFAuX19pbml0X18oc2VsZiwgaG9zdCwgdXNlciwgcGFzc3dkLCBhY2N0LCB0aW1lb3V0KQorICAgICAgICAgICAgRlRQLl9faW5pdF9fKHNlbGYsIGhvc3QsIHVzZXIsIHBhc3N3ZCwgYWNjdCwgdGltZW91dCwgc291cmNlX2FkZHJlc3MpCiAKICAgICAgICAgZGVmIGxvZ2luKHNlbGYsIHVzZXI9JycsIHBhc3N3ZD0nJywgYWNjdD0nJywgc2VjdXJlPVRydWUpOgogICAgICAgICAgICAgaWYgc2VjdXJlIGFuZCBub3QgaXNpbnN0YW5jZShzZWxmLnNvY2ssIHNzbC5TU0xTb2NrZXQpOgpAQCAtNjc5LDYgKzcwNiwxNCBAQAogICAgICAgICAgICAgc2VsZi5maWxlID0gc2VsZi5zb2NrLm1ha2VmaWxlKG1vZGU9J3InLCBlbmNvZGluZz1zZWxmLmVuY29kaW5nKQogICAgICAgICAgICAgcmV0dXJuIHJlc3AKIAorICAgICAgICBkZWYgY2NjKHNlbGYpOgorICAgICAgICAgICAgJycnU3dpdGNoIGJhY2sgdG8gYSBjbGVhci10ZXh0IGNvbnRyb2wgY29ubmVjdGlvbi4nJycKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHNlbGYuc29jaywgc3NsLlNTTFNvY2tldCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibm90IHVzaW5nIFRMUyIpCisgICAgICAgICAgICByZXNwID0gc2VsZi52b2lkY21kKCdDQ0MnKQorICAgICAgICAgICAgc2VsZi5zb2NrID0gc2VsZi5zb2NrLnVud3JhcCgpCisgICAgICAgICAgICByZXR1cm4gcmVzcAorCiAgICAgICAgIGRlZiBwcm90X3Aoc2VsZik6CiAgICAgICAgICAgICAnJydTZXQgdXAgc2VjdXJlIGRhdGEgY29ubmVjdGlvbi4nJycKICAgICAgICAgICAgICMgUFJPVCBkZWZpbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBkYXRhIGNoYW5uZWwgaXMgdG8gYmUgcHJvdGVjdGVkLgpAQCAtNzE1LDggKzc1MCw3IEBACiAKICAgICAgICAgZGVmIHJldHJiaW5hcnkoc2VsZiwgY21kLCBjYWxsYmFjaywgYmxvY2tzaXplPTgxOTIsIHJlc3Q9Tm9uZSk6CiAgICAgICAgICAgICBzZWxmLnZvaWRjbWQoJ1RZUEUgSScpCi0gICAgICAgICAgICBjb25uID0gc2VsZi50cmFuc2ZlcmNtZChjbWQsIHJlc3QpCi0gICAgICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIHNlbGYudHJhbnNmZXJjbWQoY21kLCByZXN0KSBhcyBjb25uOgogICAgICAgICAgICAgICAgIHdoaWxlIDE6CiAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBjb25uLnJlY3YoYmxvY2tzaXplKQogICAgICAgICAgICAgICAgICAgICBpZiBub3QgZGF0YToKQEAgLTcyNSw4ICs3NTksNiBAQAogICAgICAgICAgICAgICAgICMgc2h1dGRvd24gc3NsIGxheWVyCiAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjb25uLCBzc2wuU1NMU29ja2V0KToKICAgICAgICAgICAgICAgICAgICAgY29ubi51bndyYXAoKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjb25uLmNsb3NlKCkKICAgICAgICAgICAgIHJldHVybiBzZWxmLnZvaWRyZXNwKCkKIAogICAgICAgICBkZWYgcmV0cmxpbmVzKHNlbGYsIGNtZCwgY2FsbGJhY2sgPSBOb25lKToKQEAgLTczNCw3ICs3NjYsNyBAQAogICAgICAgICAgICAgcmVzcCA9IHNlbGYuc2VuZGNtZCgnVFlQRSBBJykKICAgICAgICAgICAgIGNvbm4gPSBzZWxmLnRyYW5zZmVyY21kKGNtZCkKICAgICAgICAgICAgIGZwID0gY29ubi5tYWtlZmlsZSgncicsIGVuY29kaW5nPXNlbGYuZW5jb2RpbmcpCi0gICAgICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIGZwLCBjb25uOgogICAgICAgICAgICAgICAgIHdoaWxlIDE6CiAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBmcC5yZWFkbGluZSgpCiAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWdnaW5nID4gMjogcHJpbnQoJypyZXRyKicsIHJlcHIobGluZSkpCkBAIC03NDgsMTUgKzc4MCwxMSBAQAogICAgICAgICAgICAgICAgICMgc2h1dGRvd24gc3NsIGxheWVyCiAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjb25uLCBzc2wuU1NMU29ja2V0KToKICAgICAgICAgICAgICAgICAgICAgY29ubi51bndyYXAoKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBmcC5jbG9zZSgpCi0gICAgICAgICAgICAgICAgY29ubi5jbG9zZSgpCiAgICAgICAgICAgICByZXR1cm4gc2VsZi52b2lkcmVzcCgpCiAKICAgICAgICAgZGVmIHN0b3JiaW5hcnkoc2VsZiwgY21kLCBmcCwgYmxvY2tzaXplPTgxOTIsIGNhbGxiYWNrPU5vbmUsIHJlc3Q9Tm9uZSk6CiAgICAgICAgICAgICBzZWxmLnZvaWRjbWQoJ1RZUEUgSScpCi0gICAgICAgICAgICBjb25uID0gc2VsZi50cmFuc2ZlcmNtZChjbWQsIHJlc3QpCi0gICAgICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIHNlbGYudHJhbnNmZXJjbWQoY21kLCByZXN0KSBhcyBjb25uOgogICAgICAgICAgICAgICAgIHdoaWxlIDE6CiAgICAgICAgICAgICAgICAgICAgIGJ1ZiA9IGZwLnJlYWQoYmxvY2tzaXplKQogICAgICAgICAgICAgICAgICAgICBpZiBub3QgYnVmOiBicmVhawpAQCAtNzY1LDE0ICs3OTMsMTEgQEAKICAgICAgICAgICAgICAgICAjIHNodXRkb3duIHNzbCBsYXllcgogICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29ubiwgc3NsLlNTTFNvY2tldCk6CiAgICAgICAgICAgICAgICAgICAgIGNvbm4udW53cmFwKCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgY29ubi5jbG9zZSgpCiAgICAgICAgICAgICByZXR1cm4gc2VsZi52b2lkcmVzcCgpCiAKICAgICAgICAgZGVmIHN0b3JsaW5lcyhzZWxmLCBjbWQsIGZwLCBjYWxsYmFjaz1Ob25lKToKICAgICAgICAgICAgIHNlbGYudm9pZGNtZCgnVFlQRSBBJykKLSAgICAgICAgICAgIGNvbm4gPSBzZWxmLnRyYW5zZmVyY21kKGNtZCkKLSAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggc2VsZi50cmFuc2ZlcmNtZChjbWQpIGFzIGNvbm46CiAgICAgICAgICAgICAgICAgd2hpbGUgMToKICAgICAgICAgICAgICAgICAgICAgYnVmID0gZnAucmVhZGxpbmUoKQogICAgICAgICAgICAgICAgICAgICBpZiBub3QgYnVmOiBicmVhawpAQCAtNzg0LDggKzgwOSw2IEBACiAgICAgICAgICAgICAgICAgIyBzaHV0ZG93biBzc2wgbGF5ZXIKICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNvbm4sIHNzbC5TU0xTb2NrZXQpOgogICAgICAgICAgICAgICAgICAgICBjb25uLnVud3JhcCgpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNvbm4uY2xvc2UoKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYudm9pZHJlc3AoKQogCiAgICAgICAgIGRlZiBhYm9ydChzZWxmKToKQEAgLTgxOCwxMSArODQxLDcgQEAKICAgICBtID0gXzE1MF9yZS5tYXRjaChyZXNwKQogICAgIGlmIG5vdCBtOgogICAgICAgICByZXR1cm4gTm9uZQotICAgIHMgPSBtLmdyb3VwKDEpCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gaW50KHMpCi0gICAgZXhjZXB0IChPdmVyZmxvd0Vycm9yLCBWYWx1ZUVycm9yKToKLSAgICAgICAgcmV0dXJuIGludChzKQorICAgIHJldHVybiBpbnQobS5ncm91cCgxKSkKIAogCiBfMjI3X3JlID0gTm9uZQpkaWZmIC0tZ2l0IGEvTGliL2Z1bmN0b29scy5weSBiL0xpYi9mdW5jdG9vbHMucHkKaW5kZXggODVlYTI1Ny4uMjI2YTQ2ZSAxMDA2NDQKLS0tIGEvTGliL2Z1bmN0b29scy5weQorKysgYi9MaWIvZnVuY3Rvb2xzLnB5CkBAIC0xMiwxNiArMTIsMjIgQEAKICAgICAgICAgICAgJ3RvdGFsX29yZGVyaW5nJywgJ2NtcF90b19rZXknLCAnbHJ1X2NhY2hlJywgJ3JlZHVjZScsICdwYXJ0aWFsJ10KIAogZnJvbSBfZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsLCByZWR1Y2UKLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0LCBuYW1lZHR1cGxlCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCiB0cnk6CiAgICAgZnJvbSBfdGhyZWFkIGltcG9ydCBhbGxvY2F0ZV9sb2NrIGFzIExvY2sKIGV4Y2VwdDoKICAgICBmcm9tIF9kdW1teV90aHJlYWQgaW1wb3J0IGFsbG9jYXRlX2xvY2sgYXMgTG9jawogCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMgdXBkYXRlX3dyYXBwZXIoKSBhbmQgd3JhcHMoKSBkZWNvcmF0b3IKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKICMgdXBkYXRlX3dyYXBwZXIoKSBhbmQgd3JhcHMoKSBhcmUgdG9vbHMgdG8gaGVscCB3cml0ZQogIyB3cmFwcGVyIGZ1bmN0aW9ucyB0aGF0IGNhbiBoYW5kbGUgbmFpdmUgaW50cm9zcGVjdGlvbgogCi1XUkFQUEVSX0FTU0lHTk1FTlRTID0gKCdfX21vZHVsZV9fJywgJ19fbmFtZV9fJywgJ19fZG9jX18nLCAnX19hbm5vdGF0aW9uc19fJykKK1dSQVBQRVJfQVNTSUdOTUVOVFMgPSAoJ19fbW9kdWxlX18nLCAnX19uYW1lX18nLCAnX19xdWFsbmFtZV9fJywgJ19fZG9jX18nLAorICAgICAgICAgICAgICAgICAgICAgICAnX19hbm5vdGF0aW9uc19fJykKIFdSQVBQRVJfVVBEQVRFUyA9ICgnX19kaWN0X18nLCkKIGRlZiB1cGRhdGVfd3JhcHBlcih3cmFwcGVyLAogICAgICAgICAgICAgICAgICAgIHdyYXBwZWQsCkBAIC02NSw2ICs3MSwxMSBAQAogICAgIHJldHVybiBwYXJ0aWFsKHVwZGF0ZV93cmFwcGVyLCB3cmFwcGVkPXdyYXBwZWQsCiAgICAgICAgICAgICAgICAgICAgYXNzaWduZWQ9YXNzaWduZWQsIHVwZGF0ZWQ9dXBkYXRlZCkKIAorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIHRvdGFsX29yZGVyaW5nIGNsYXNzIGRlY29yYXRvcgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKwogZGVmIHRvdGFsX29yZGVyaW5nKGNscyk6CiAgICAgIiIiQ2xhc3MgZGVjb3JhdG9yIHRoYXQgZmlsbHMgaW4gbWlzc2luZyBvcmRlcmluZyBtZXRob2RzIiIiCiAgICAgY29udmVydCA9IHsKQEAgLTkzLDYgKzEwNCwxMSBAQAogICAgICAgICAgICAgc2V0YXR0cihjbHMsIG9wbmFtZSwgb3BmdW5jKQogICAgIHJldHVybiBjbHMKIAorCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIGNtcF90b19rZXkoKSBmdW5jdGlvbiBjb252ZXJ0ZXIKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKIGRlZiBjbXBfdG9fa2V5KG15Y21wKToKICAgICAiIiJDb252ZXJ0IGEgY21wPSBmdW5jdGlvbiBpbnRvIGEga2V5PSBmdW5jdGlvbiIiIgogICAgIGNsYXNzIEsob2JqZWN0KToKQEAgLTExNCw5NSArMTMwLDE3NCBAQAogICAgICAgICBfX2hhc2hfXyA9IE5vbmUKICAgICByZXR1cm4gSwogCi1fQ2FjaGVJbmZvID0gbmFtZWR0dXBsZSgiQ2FjaGVJbmZvIiwgImhpdHMgbWlzc2VzIG1heHNpemUgY3VycnNpemUiKQordHJ5OgorICAgIGZyb20gX2Z1bmN0b29scyBpbXBvcnQgY21wX3RvX2tleQorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHBhc3MKIAotZGVmIGxydV9jYWNoZShtYXhzaXplPTEwMCk6CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIyMgTFJVIENhY2hlIGZ1bmN0aW9uIGRlY29yYXRvcgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworX0NhY2hlSW5mbyA9IG5hbWVkdHVwbGUoIkNhY2hlSW5mbyIsIFsiaGl0cyIsICJtaXNzZXMiLCAibWF4c2l6ZSIsICJjdXJyc2l6ZSJdKQorCitjbGFzcyBfSGFzaGVkU2VxKGxpc3QpOgorICAgIF9fc2xvdHNfXyA9ICdoYXNodmFsdWUnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdHVwLCBoYXNoPWhhc2gpOgorICAgICAgICBzZWxmWzpdID0gdHVwCisgICAgICAgIHNlbGYuaGFzaHZhbHVlID0gaGFzaCh0dXApCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmhhc2h2YWx1ZQorCitkZWYgX21ha2Vfa2V5KGFyZ3MsIGt3ZHMsIHR5cGVkLAorICAgICAgICAgICAgIGt3ZF9tYXJrID0gKG9iamVjdCgpLCksCisgICAgICAgICAgICAgZmFzdHR5cGVzID0ge2ludCwgc3RyLCBmcm96ZW5zZXQsIHR5cGUoTm9uZSl9LAorICAgICAgICAgICAgIHNvcnRlZD1zb3J0ZWQsIHR1cGxlPXR1cGxlLCB0eXBlPXR5cGUsIGxlbj1sZW4pOgorICAgICdNYWtlIGEgY2FjaGUga2V5IGZyb20gb3B0aW9uYWxseSB0eXBlZCBwb3NpdGlvbmFsIGFuZCBrZXl3b3JkIGFyZ3VtZW50cycKKyAgICBrZXkgPSBhcmdzCisgICAgaWYga3dkczoKKyAgICAgICAgc29ydGVkX2l0ZW1zID0gc29ydGVkKGt3ZHMuaXRlbXMoKSkKKyAgICAgICAga2V5ICs9IGt3ZF9tYXJrCisgICAgICAgIGZvciBpdGVtIGluIHNvcnRlZF9pdGVtczoKKyAgICAgICAgICAgIGtleSArPSBpdGVtCisgICAgaWYgdHlwZWQ6CisgICAgICAgIGtleSArPSB0dXBsZSh0eXBlKHYpIGZvciB2IGluIGFyZ3MpCisgICAgICAgIGlmIGt3ZHM6CisgICAgICAgICAgICBrZXkgKz0gdHVwbGUodHlwZSh2KSBmb3IgaywgdiBpbiBzb3J0ZWRfaXRlbXMpCisgICAgZWxpZiBsZW4oa2V5KSA9PSAxIGFuZCB0eXBlKGtleVswXSkgaW4gZmFzdHR5cGVzOgorICAgICAgICByZXR1cm4ga2V5WzBdCisgICAgcmV0dXJuIF9IYXNoZWRTZXEoa2V5KQorCitkZWYgbHJ1X2NhY2hlKG1heHNpemU9MTI4LCB0eXBlZD1GYWxzZSk6CiAgICAgIiIiTGVhc3QtcmVjZW50bHktdXNlZCBjYWNoZSBkZWNvcmF0b3IuCiAKICAgICBJZiAqbWF4c2l6ZSogaXMgc2V0IHRvIE5vbmUsIHRoZSBMUlUgZmVhdHVyZXMgYXJlIGRpc2FibGVkIGFuZCB0aGUgY2FjaGUKICAgICBjYW4gZ3JvdyB3aXRob3V0IGJvdW5kLgogCisgICAgSWYgKnR5cGVkKiBpcyBUcnVlLCBhcmd1bWVudHMgb2YgZGlmZmVyZW50IHR5cGVzIHdpbGwgYmUgY2FjaGVkIHNlcGFyYXRlbHkuCisgICAgRm9yIGV4YW1wbGUsIGYoMy4wKSBhbmQgZigzKSB3aWxsIGJlIHRyZWF0ZWQgYXMgZGlzdGluY3QgY2FsbHMgd2l0aAorICAgIGRpc3RpbmN0IHJlc3VsdHMuCisKICAgICBBcmd1bWVudHMgdG8gdGhlIGNhY2hlZCBmdW5jdGlvbiBtdXN0IGJlIGhhc2hhYmxlLgogCi0gICAgVmlldyB0aGUgY2FjaGUgc3RhdGlzdGljcyBuYW1lZCB0dXBsZSAoaGl0cywgbWlzc2VzLCBtYXhzaXplLCBjdXJyc2l6ZSkgd2l0aAotICAgIGYuY2FjaGVfaW5mbygpLiAgQ2xlYXIgdGhlIGNhY2hlIGFuZCBzdGF0aXN0aWNzIHdpdGggZi5jYWNoZV9jbGVhcigpLgorICAgIFZpZXcgdGhlIGNhY2hlIHN0YXRpc3RpY3MgbmFtZWQgdHVwbGUgKGhpdHMsIG1pc3NlcywgbWF4c2l6ZSwgY3VycnNpemUpCisgICAgd2l0aCBmLmNhY2hlX2luZm8oKS4gIENsZWFyIHRoZSBjYWNoZSBhbmQgc3RhdGlzdGljcyB3aXRoIGYuY2FjaGVfY2xlYXIoKS4KICAgICBBY2Nlc3MgdGhlIHVuZGVybHlpbmcgZnVuY3Rpb24gd2l0aCBmLl9fd3JhcHBlZF9fLgogCiAgICAgU2VlOiAgaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9DYWNoZV9hbGdvcml0aG1zI0xlYXN0X1JlY2VudGx5X1VzZWQKIAogICAgICIiIgorCiAgICAgIyBVc2VycyBzaG91bGQgb25seSBhY2Nlc3MgdGhlIGxydV9jYWNoZSB0aHJvdWdoIGl0cyBwdWJsaWMgQVBJOgogICAgICMgICAgICAgY2FjaGVfaW5mbywgY2FjaGVfY2xlYXIsIGFuZCBmLl9fd3JhcHBlZF9fCiAgICAgIyBUaGUgaW50ZXJuYWxzIG9mIHRoZSBscnVfY2FjaGUgYXJlIGVuY2Fwc3VsYXRlZCBmb3IgdGhyZWFkIHNhZmV0eSBhbmQKICAgICAjIHRvIGFsbG93IHRoZSBpbXBsZW1lbnRhdGlvbiB0byBjaGFuZ2UgKGluY2x1ZGluZyBhIHBvc3NpYmxlIEMgdmVyc2lvbikuCiAKLSAgICBkZWYgZGVjb3JhdGluZ19mdW5jdGlvbih1c2VyX2Z1bmN0aW9uLAotICAgICAgICAgICAgICAgIHR1cGxlPXR1cGxlLCBzb3J0ZWQ9c29ydGVkLCBsZW49bGVuLCBLZXlFcnJvcj1LZXlFcnJvcik6CisgICAgIyBDb25zdGFudHMgc2hhcmVkIGJ5IGFsbCBscnUgY2FjaGUgaW5zdGFuY2VzOgorICAgIHNlbnRpbmVsID0gb2JqZWN0KCkgICAgICAgICAgIyB1bmlxdWUgb2JqZWN0IHVzZWQgdG8gc2lnbmFsIGNhY2hlIG1pc3NlcworICAgIG1ha2Vfa2V5ID0gX21ha2Vfa2V5ICAgICAgICAgIyBidWlsZCBhIGtleSBmcm9tIHRoZSBmdW5jdGlvbiBhcmd1bWVudHMKKyAgICBQUkVWLCBORVhULCBLRVksIFJFU1VMVCA9IDAsIDEsIDIsIDMgICAjIG5hbWVzIGZvciB0aGUgbGluayBmaWVsZHMKIAotICAgICAgICBoaXRzID0gbWlzc2VzID0gMAotICAgICAgICBrd2RfbWFyayA9IChvYmplY3QoKSwpICAgICAgICAgICMgc2VwYXJhdGVzIHBvc2l0aW9uYWwgYW5kIGtleXdvcmQgYXJncwotICAgICAgICBsb2NrID0gTG9jaygpICAgICAgICAgICAgICAgICAgICMgbmVlZGVkIGJlY2F1c2UgT3JkZXJlZERpY3QgaXNuJ3QgdGhyZWFkc2FmZQorICAgIGRlZiBkZWNvcmF0aW5nX2Z1bmN0aW9uKHVzZXJfZnVuY3Rpb24pOgogCi0gICAgICAgIGlmIG1heHNpemUgaXMgTm9uZToKLSAgICAgICAgICAgIGNhY2hlID0gZGljdCgpICAgICAgICAgICAgICAjIHNpbXBsZSBjYWNoZSB3aXRob3V0IG9yZGVyaW5nIG9yIHNpemUgbGltaXQKKyAgICAgICAgY2FjaGUgPSB7fQorICAgICAgICBoaXRzID0gbWlzc2VzID0gY3VycnNpemUgPSAwCisgICAgICAgIGZ1bGwgPSBGYWxzZQorICAgICAgICBjYWNoZV9nZXQgPSBjYWNoZS5nZXQgICAgIyBib3VuZCBtZXRob2QgdG8gbG9va3VwIGEga2V5IG9yIHJldHVybiBOb25lCisgICAgICAgIGxvY2sgPSBMb2NrKCkgICAgICAgICAgICAjIGJlY2F1c2UgbGlua2VkbGlzdCB1cGRhdGVzIGFyZW4ndCB0aHJlYWRzYWZlCisgICAgICAgIHJvb3QgPSBbXSAgICAgICAgICAgICAgICAjIHJvb3Qgb2YgdGhlIGNpcmN1bGFyIGRvdWJseSBsaW5rZWQgbGlzdAorICAgICAgICByb290WzpdID0gW3Jvb3QsIHJvb3QsIE5vbmUsIE5vbmVdICAgICAjIGluaXRpYWxpemUgYnkgcG9pbnRpbmcgdG8gc2VsZgogCi0gICAgICAgICAgICBAd3JhcHModXNlcl9mdW5jdGlvbikKKyAgICAgICAgaWYgbWF4c2l6ZSA9PSAwOgorCiAgICAgICAgICAgICBkZWYgd3JhcHBlcigqYXJncywgKiprd2RzKToKLSAgICAgICAgICAgICAgICBub25sb2NhbCBoaXRzLCBtaXNzZXMKLSAgICAgICAgICAgICAgICBrZXkgPSBhcmdzCi0gICAgICAgICAgICAgICAgaWYga3dkczoKLSAgICAgICAgICAgICAgICAgICAga2V5ICs9IGt3ZF9tYXJrICsgdHVwbGUoc29ydGVkKGt3ZHMuaXRlbXMoKSkpCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBjYWNoZVtrZXldCisgICAgICAgICAgICAgICAgIyBubyBjYWNoaW5nLCBqdXN0IGEgc3RhdGlzdGljcyB1cGRhdGUgYWZ0ZXIgYSBzdWNjZXNzZnVsIGNhbGwKKyAgICAgICAgICAgICAgICBub25sb2NhbCBtaXNzZXMKKyAgICAgICAgICAgICAgICByZXN1bHQgPSB1c2VyX2Z1bmN0aW9uKCphcmdzLCAqKmt3ZHMpCisgICAgICAgICAgICAgICAgbWlzc2VzICs9IDEKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICAgICAgZWxpZiBtYXhzaXplIGlzIE5vbmU6CisKKyAgICAgICAgICAgIGRlZiB3cmFwcGVyKCphcmdzLCAqKmt3ZHMpOgorICAgICAgICAgICAgICAgICMgc2ltcGxlIGNhY2hpbmcgd2l0aG91dCBvcmRlcmluZyBvciBzaXplIGxpbWl0CisgICAgICAgICAgICAgICAgbm9ubG9jYWwgaGl0cywgbWlzc2VzLCBjdXJyc2l6ZQorICAgICAgICAgICAgICAgIGtleSA9IG1ha2Vfa2V5KGFyZ3MsIGt3ZHMsIHR5cGVkKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNhY2hlX2dldChrZXksIHNlbnRpbmVsKQorICAgICAgICAgICAgICAgIGlmIHJlc3VsdCBpcyBub3Qgc2VudGluZWw6CiAgICAgICAgICAgICAgICAgICAgIGhpdHMgKz0gMQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0gICAgICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdXNlcl9mdW5jdGlvbigqYXJncywgKiprd2RzKQogICAgICAgICAgICAgICAgIGNhY2hlW2tleV0gPSByZXN1bHQKICAgICAgICAgICAgICAgICBtaXNzZXMgKz0gMQorICAgICAgICAgICAgICAgIGN1cnJzaXplICs9IDEKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjYWNoZSA9IE9yZGVyZWREaWN0KCkgICAgICAgICAgICMgb3JkZXJlZCBsZWFzdCByZWNlbnQgdG8gbW9zdCByZWNlbnQKLSAgICAgICAgICAgIGNhY2hlX3BvcGl0ZW0gPSBjYWNoZS5wb3BpdGVtCi0gICAgICAgICAgICBjYWNoZV9yZW5ldyA9IGNhY2hlLm1vdmVfdG9fZW5kCiAKLSAgICAgICAgICAgIEB3cmFwcyh1c2VyX2Z1bmN0aW9uKQorICAgICAgICBlbHNlOgorCiAgICAgICAgICAgICBkZWYgd3JhcHBlcigqYXJncywgKiprd2RzKToKLSAgICAgICAgICAgICAgICBub25sb2NhbCBoaXRzLCBtaXNzZXMKLSAgICAgICAgICAgICAgICBrZXkgPSBhcmdzCi0gICAgICAgICAgICAgICAgaWYga3dkczoKLSAgICAgICAgICAgICAgICAgICAga2V5ICs9IGt3ZF9tYXJrICsgdHVwbGUoc29ydGVkKGt3ZHMuaXRlbXMoKSkpCisgICAgICAgICAgICAgICAgIyBzaXplIGxpbWl0ZWQgY2FjaGluZyB0aGF0IHRyYWNrcyBhY2Nlc3NlcyBieSByZWNlbmN5CisgICAgICAgICAgICAgICAgbm9ubG9jYWwgcm9vdCwgaGl0cywgbWlzc2VzLCBjdXJyc2l6ZSwgZnVsbAorICAgICAgICAgICAgICAgIGtleSA9IG1ha2Vfa2V5KGFyZ3MsIGt3ZHMsIHR5cGVkKQogICAgICAgICAgICAgICAgIHdpdGggbG9jazoKLSAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gY2FjaGVba2V5XQotICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfcmVuZXcoa2V5KSAgICAjIHJlY29yZCByZWNlbnQgdXNlIG9mIHRoaXMga2V5CisgICAgICAgICAgICAgICAgICAgIGxpbmsgPSBjYWNoZV9nZXQoa2V5KQorICAgICAgICAgICAgICAgICAgICBpZiBsaW5rIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBtb3ZlIHRoZSBsaW5rIHRvIHRoZSBmcm9udCBvZiB0aGUgY2lyY3VsYXIgcXVldWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtfcHJldiwgbGlua19uZXh0LCBrZXksIHJlc3VsdCA9IGxpbmsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmtfcHJldltORVhUXSA9IGxpbmtfbmV4dAorICAgICAgICAgICAgICAgICAgICAgICAgbGlua19uZXh0W1BSRVZdID0gbGlua19wcmV2CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0ID0gcm9vdFtQUkVWXQorICAgICAgICAgICAgICAgICAgICAgICAgbGFzdFtORVhUXSA9IHJvb3RbUFJFVl0gPSBsaW5rCisgICAgICAgICAgICAgICAgICAgICAgICBsaW5rW1BSRVZdID0gbGFzdAorICAgICAgICAgICAgICAgICAgICAgICAgbGlua1tORVhUXSA9IHJvb3QKICAgICAgICAgICAgICAgICAgICAgICAgIGhpdHMgKz0gMQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAotICAgICAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdXNlcl9mdW5jdGlvbigqYXJncywgKiprd2RzKQogICAgICAgICAgICAgICAgIHdpdGggbG9jazoKLSAgICAgICAgICAgICAgICAgICAgY2FjaGVba2V5XSA9IHJlc3VsdCAgICAgIyByZWNvcmQgcmVjZW50IHVzZSBvZiB0aGlzIGtleQorICAgICAgICAgICAgICAgICAgICBpZiBrZXkgaW4gY2FjaGU6CisgICAgICAgICAgICAgICAgICAgICAgICAjIGdldHRpbmcgaGVyZSBtZWFucyB0aGF0IHRoaXMgc2FtZSBrZXkgd2FzIGFkZGVkIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgIyBjYWNoZSB3aGlsZSB0aGUgbG9jayB3YXMgcmVsZWFzZWQuICBzaW5jZSB0aGUgbGluaworICAgICAgICAgICAgICAgICAgICAgICAgIyB1cGRhdGUgaXMgYWxyZWFkeSBkb25lLCB3ZSBuZWVkIG9ubHkgcmV0dXJuIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgIyBjb21wdXRlZCByZXN1bHQgYW5kIHVwZGF0ZSB0aGUgY291bnQgb2YgbWlzc2VzLgorICAgICAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgICAgICBlbGlmIGZ1bGw6CisgICAgICAgICAgICAgICAgICAgICAgICAjIHVzZSByb290IHRvIHN0b3JlIHRoZSBuZXcga2V5IGFuZCByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RbS0VZXSA9IGtleQorICAgICAgICAgICAgICAgICAgICAgICAgcm9vdFtSRVNVTFRdID0gcmVzdWx0CisgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZVtrZXldID0gcm9vdAorICAgICAgICAgICAgICAgICAgICAgICAgIyBlbXB0eSB0aGUgb2xkZXN0IGxpbmsgYW5kIG1ha2UgaXQgdGhlIG5ldyByb290CisgICAgICAgICAgICAgICAgICAgICAgICByb290ID0gcm9vdFtORVhUXQorICAgICAgICAgICAgICAgICAgICAgICAgZGVsIGNhY2hlW3Jvb3RbS0VZXV0KKyAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RbS0VZXSA9IHJvb3RbUkVTVUxUXSA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgcHV0IHJlc3VsdCBpbiBhIG5ldyBsaW5rIGF0IHRoZSBmcm9udCBvZiB0aGUgcXVldWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgPSByb290W1BSRVZdCisgICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gW2xhc3QsIHJvb3QsIGtleSwgcmVzdWx0XQorICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVba2V5XSA9IGxhc3RbTkVYVF0gPSByb290W1BSRVZdID0gbGluaworICAgICAgICAgICAgICAgICAgICAgICAgY3VycnNpemUgKz0gMQorICAgICAgICAgICAgICAgICAgICAgICAgZnVsbCA9IChjdXJyc2l6ZSA9PSBtYXhzaXplKQogICAgICAgICAgICAgICAgICAgICBtaXNzZXMgKz0gMQotICAgICAgICAgICAgICAgICAgICBpZiBsZW4oY2FjaGUpID4gbWF4c2l6ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX3BvcGl0ZW0oMCkgICAgIyBwdXJnZSBsZWFzdCByZWNlbnRseSB1c2VkIGNhY2hlIGVudHJ5CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgICAgIGRlZiBjYWNoZV9pbmZvKCk6CiAgICAgICAgICAgICAiIiJSZXBvcnQgY2FjaGUgc3RhdGlzdGljcyIiIgogICAgICAgICAgICAgd2l0aCBsb2NrOgotICAgICAgICAgICAgICAgIHJldHVybiBfQ2FjaGVJbmZvKGhpdHMsIG1pc3NlcywgbWF4c2l6ZSwgbGVuKGNhY2hlKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gX0NhY2hlSW5mbyhoaXRzLCBtaXNzZXMsIG1heHNpemUsIGN1cnJzaXplKQogCiAgICAgICAgIGRlZiBjYWNoZV9jbGVhcigpOgogICAgICAgICAgICAgIiIiQ2xlYXIgdGhlIGNhY2hlIGFuZCBjYWNoZSBzdGF0aXN0aWNzIiIiCi0gICAgICAgICAgICBub25sb2NhbCBoaXRzLCBtaXNzZXMKKyAgICAgICAgICAgIG5vbmxvY2FsIGhpdHMsIG1pc3NlcywgY3VycnNpemUsIGZ1bGwKICAgICAgICAgICAgIHdpdGggbG9jazoKICAgICAgICAgICAgICAgICBjYWNoZS5jbGVhcigpCi0gICAgICAgICAgICAgICAgaGl0cyA9IG1pc3NlcyA9IDAKKyAgICAgICAgICAgICAgICByb290WzpdID0gW3Jvb3QsIHJvb3QsIE5vbmUsIE5vbmVdCisgICAgICAgICAgICAgICAgaGl0cyA9IG1pc3NlcyA9IGN1cnJzaXplID0gMAorICAgICAgICAgICAgICAgIGZ1bGwgPSBGYWxzZQogCiAgICAgICAgIHdyYXBwZXIuY2FjaGVfaW5mbyA9IGNhY2hlX2luZm8KICAgICAgICAgd3JhcHBlci5jYWNoZV9jbGVhciA9IGNhY2hlX2NsZWFyCi0gICAgICAgIHJldHVybiB3cmFwcGVyCisgICAgICAgIHJldHVybiB1cGRhdGVfd3JhcHBlcih3cmFwcGVyLCB1c2VyX2Z1bmN0aW9uKQogCiAgICAgcmV0dXJuIGRlY29yYXRpbmdfZnVuY3Rpb24KZGlmZiAtLWdpdCBhL0xpYi9nZXRvcHQucHkgYi9MaWIvZ2V0b3B0LnB5CmluZGV4IDk4MDg2MWQuLjNkNmVjYmQgMTAwNjQ0Ci0tLSBhL0xpYi9nZXRvcHQucHkKKysrIGIvTGliL2dldG9wdC5weQpAQCAtMTksNyArMTksNyBAQAogIyBHZXJyaXQgSG9sbCA8Z2Vycml0QG5sLmxpbnV4Lm9yZz4gbW92ZWQgdGhlIHN0cmluZy1iYXNlZCBleGNlcHRpb25zCiAjIHRvIGNsYXNzLWJhc2VkIGV4Y2VwdGlvbnMuCiAjCi0jIFBldGVyIMODwoVzdHJhbmQgPGFzdHJhbmRAbHlzYXRvci5saXUuc2U+IGFkZGVkIGdudV9nZXRvcHQoKS4KKyMgUGV0ZXIgw4VzdHJhbmQgPGFzdHJhbmRAbHlzYXRvci5saXUuc2U+IGFkZGVkIGdudV9nZXRvcHQoKS4KICMKICMgVE9ETyBmb3IgZ251X2dldG9wdCgpOgogIwpAQCAtMzQsNiArMzQsMTEgQEAKIF9fYWxsX18gPSBbIkdldG9wdEVycm9yIiwiZXJyb3IiLCJnZXRvcHQiLCJnbnVfZ2V0b3B0Il0KIAogaW1wb3J0IG9zCit0cnk6CisgICAgZnJvbSBnZXR0ZXh0IGltcG9ydCBnZXR0ZXh0IGFzIF8KK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIEJvb3RzdHJhcHBpbmcgUHl0aG9uOiBnZXR0ZXh0J3MgZGVwZW5kZW5jaWVzIG5vdCBidWlsdCB5ZXQKKyAgICBkZWYgXyhzKTogcmV0dXJuIHMKIAogY2xhc3MgR2V0b3B0RXJyb3IoRXhjZXB0aW9uKToKICAgICBvcHQgPSAnJwpAQCAtMTUzLDEwICsxNTgsMTAgQEAKICAgICBpZiBoYXNfYXJnOgogICAgICAgICBpZiBvcHRhcmcgaXMgTm9uZToKICAgICAgICAgICAgIGlmIG5vdCBhcmdzOgotICAgICAgICAgICAgICAgIHJhaXNlIEdldG9wdEVycm9yKCdvcHRpb24gLS0lcyByZXF1aXJlcyBhcmd1bWVudCcgJSBvcHQsIG9wdCkKKyAgICAgICAgICAgICAgICByYWlzZSBHZXRvcHRFcnJvcihfKCdvcHRpb24gLS0lcyByZXF1aXJlcyBhcmd1bWVudCcpICUgb3B0LCBvcHQpCiAgICAgICAgICAgICBvcHRhcmcsIGFyZ3MgPSBhcmdzWzBdLCBhcmdzWzE6XQogICAgIGVsaWYgb3B0YXJnIGlzIG5vdCBOb25lOgotICAgICAgICByYWlzZSBHZXRvcHRFcnJvcignb3B0aW9uIC0tJXMgbXVzdCBub3QgaGF2ZSBhbiBhcmd1bWVudCcgJSBvcHQsIG9wdCkKKyAgICAgICAgcmFpc2UgR2V0b3B0RXJyb3IoXygnb3B0aW9uIC0tJXMgbXVzdCBub3QgaGF2ZSBhbiBhcmd1bWVudCcpICUgb3B0LCBvcHQpCiAgICAgb3B0cy5hcHBlbmQoKCctLScgKyBvcHQsIG9wdGFyZyBvciAnJykpCiAgICAgcmV0dXJuIG9wdHMsIGFyZ3MKIApAQCAtMTY2LDcgKzE3MSw3IEBACiBkZWYgbG9uZ19oYXNfYXJncyhvcHQsIGxvbmdvcHRzKToKICAgICBwb3NzaWJpbGl0aWVzID0gW28gZm9yIG8gaW4gbG9uZ29wdHMgaWYgby5zdGFydHN3aXRoKG9wdCldCiAgICAgaWYgbm90IHBvc3NpYmlsaXRpZXM6Ci0gICAgICAgIHJhaXNlIEdldG9wdEVycm9yKCdvcHRpb24gLS0lcyBub3QgcmVjb2duaXplZCcgJSBvcHQsIG9wdCkKKyAgICAgICAgcmFpc2UgR2V0b3B0RXJyb3IoXygnb3B0aW9uIC0tJXMgbm90IHJlY29nbml6ZWQnKSAlIG9wdCwgb3B0KQogICAgICMgSXMgdGhlcmUgYW4gZXhhY3QgbWF0Y2g/CiAgICAgaWYgb3B0IGluIHBvc3NpYmlsaXRpZXM6CiAgICAgICAgIHJldHVybiBGYWxzZSwgb3B0CkBAIC0xNzYsNyArMTgxLDcgQEAKICAgICBpZiBsZW4ocG9zc2liaWxpdGllcykgPiAxOgogICAgICAgICAjIFhYWCBzaW5jZSBwb3NzaWJpbGl0aWVzIGNvbnRhaW5zIGFsbCB2YWxpZCBjb250aW51YXRpb25zLCBtaWdodCBiZQogICAgICAgICAjIG5pY2UgdG8gd29yayB0aGVtIGludG8gdGhlIGVycm9yIG1zZwotICAgICAgICByYWlzZSBHZXRvcHRFcnJvcignb3B0aW9uIC0tJXMgbm90IGEgdW5pcXVlIHByZWZpeCcgJSBvcHQsIG9wdCkKKyAgICAgICAgcmFpc2UgR2V0b3B0RXJyb3IoXygnb3B0aW9uIC0tJXMgbm90IGEgdW5pcXVlIHByZWZpeCcpICUgb3B0LCBvcHQpCiAgICAgYXNzZXJ0IGxlbihwb3NzaWJpbGl0aWVzKSA9PSAxCiAgICAgdW5pcXVlX21hdGNoID0gcG9zc2liaWxpdGllc1swXQogICAgIGhhc19hcmcgPSB1bmlxdWVfbWF0Y2guZW5kc3dpdGgoJz0nKQpAQCAtMTkwLDcgKzE5NSw3IEBACiAgICAgICAgIGlmIHNob3J0X2hhc19hcmcob3B0LCBzaG9ydG9wdHMpOgogICAgICAgICAgICAgaWYgb3B0c3RyaW5nID09ICcnOgogICAgICAgICAgICAgICAgIGlmIG5vdCBhcmdzOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBHZXRvcHRFcnJvcignb3B0aW9uIC0lcyByZXF1aXJlcyBhcmd1bWVudCcgJSBvcHQsCisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEdldG9wdEVycm9yKF8oJ29wdGlvbiAtJXMgcmVxdWlyZXMgYXJndW1lbnQnKSAlIG9wdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0KQogICAgICAgICAgICAgICAgIG9wdHN0cmluZywgYXJncyA9IGFyZ3NbMF0sIGFyZ3NbMTpdCiAgICAgICAgICAgICBvcHRhcmcsIG9wdHN0cmluZyA9IG9wdHN0cmluZywgJycKQEAgLTIwMyw3ICsyMDgsNyBAQAogICAgIGZvciBpIGluIHJhbmdlKGxlbihzaG9ydG9wdHMpKToKICAgICAgICAgaWYgb3B0ID09IHNob3J0b3B0c1tpXSAhPSAnOic6CiAgICAgICAgICAgICByZXR1cm4gc2hvcnRvcHRzLnN0YXJ0c3dpdGgoJzonLCBpKzEpCi0gICAgcmFpc2UgR2V0b3B0RXJyb3IoJ29wdGlvbiAtJXMgbm90IHJlY29nbml6ZWQnICUgb3B0LCBvcHQpCisgICAgcmFpc2UgR2V0b3B0RXJyb3IoXygnb3B0aW9uIC0lcyBub3QgcmVjb2duaXplZCcpICUgb3B0LCBvcHQpCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgaW1wb3J0IHN5cwpkaWZmIC0tZ2l0IGEvTGliL2dldHBhc3MucHkgYi9MaWIvZ2V0cGFzcy5weQppbmRleCBkYzAyYmQxLi4wMDQ0NzQyIDEwMDY0NAotLS0gYS9MaWIvZ2V0cGFzcy5weQorKysgYi9MaWIvZ2V0cGFzcy5weQpAQCAtNzIsNyArNzIsNyBAQAogICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICB0ZXJtaW9zLnRjc2V0YXR0cihmZCwgdGNzZXRhdHRyX2ZsYWdzLCBvbGQpCiAgICAgICAgICAgICAgICAgc3RyZWFtLmZsdXNoKCkgICMgaXNzdWU3MjA4Ci0gICAgICAgIGV4Y2VwdCB0ZXJtaW9zLmVycm9yIGFzIGU6CisgICAgICAgIGV4Y2VwdCB0ZXJtaW9zLmVycm9yOgogICAgICAgICAgICAgaWYgcGFzc3dkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICMgX3Jhd19pbnB1dCBzdWNjZWVkZWQuICBUaGUgZmluYWwgdGNzZXRhdHRyIGZhaWxlZC4gIFJlcmFpc2UKICAgICAgICAgICAgICAgICAjIGluc3RlYWQgb2YgbGVhdmluZyB0aGUgdGVybWluYWwgaW4gYW4gdW5rbm93biBzdGF0ZS4KQEAgLTE0NSw4ICsxNDUsNiBAQAogCiAgICAgIiIiCiAKLSAgICBpbXBvcnQgb3MKLQogICAgIGZvciBuYW1lIGluICgnTE9HTkFNRScsICdVU0VSJywgJ0xOQU1FJywgJ1VTRVJOQU1FJyk6CiAgICAgICAgIHVzZXIgPSBvcy5lbnZpcm9uLmdldChuYW1lKQogICAgICAgICBpZiB1c2VyOgpkaWZmIC0tZ2l0IGEvTGliL2dldHRleHQucHkgYi9MaWIvZ2V0dGV4dC5weQppbmRleCAyNTZlMzMxLi5lNDNmMDQ0IDEwMDY0NAotLS0gYS9MaWIvZ2V0dGV4dC5weQorKysgYi9MaWIvZ2V0dGV4dC5weQpAQCAtNTUsNyArNTUsNyBAQAogICAgICAgICAgICAnZGdldHRleHQnLCAnZG5nZXR0ZXh0JywgJ2dldHRleHQnLCAnbmdldHRleHQnLAogICAgICAgICAgICBdCiAKLV9kZWZhdWx0X2xvY2FsZWRpciA9IG9zLnBhdGguam9pbihzeXMucHJlZml4LCAnc2hhcmUnLCAnbG9jYWxlJykKK19kZWZhdWx0X2xvY2FsZWRpciA9IG9zLnBhdGguam9pbihzeXMuYmFzZV9wcmVmaXgsICdzaGFyZScsICdsb2NhbGUnKQogCiAKIGRlZiBjMnB5KHBsdXJhbCk6CmRpZmYgLS1naXQgYS9MaWIvZ3ppcC5weSBiL0xpYi9nemlwLnB5CmluZGV4IGVlNDVlNTAuLjhiODk0MjYgMTAwNjQ0Ci0tLSBhL0xpYi9nemlwLnB5CisrKyBiL0xpYi9nemlwLnB5CkBAIC0xNiwxNyArMTYsNDkgQEAKIAogUkVBRCwgV1JJVEUgPSAxLCAyCiAKLWRlZiBVMzIoaSk6Ci0gICAgIiIiUmV0dXJuIGkgYXMgYW4gdW5zaWduZWQgaW50ZWdlciwgYXNzdW1pbmcgaXQgZml0cyBpbiAzMiBiaXRzLgotICAgIElmIGl0J3MgPj0gMkdCIHdoZW4gdmlld2VkIGFzIGEgMzItYml0IHVuc2lnbmVkIGludCwgcmV0dXJuIGEgbG9uZy4KLSAgICAiIiIKLSAgICBpZiBpIDwgMDoKLSAgICAgICAgaSArPSAxIDw8IDMyCi0gICAgcmV0dXJuIGkKK2RlZiBvcGVuKGZpbGVuYW1lLCBtb2RlPSJyYiIsIGNvbXByZXNzbGV2ZWw9OSwKKyAgICAgICAgIGVuY29kaW5nPU5vbmUsIGVycm9ycz1Ob25lLCBuZXdsaW5lPU5vbmUpOgorICAgICIiIk9wZW4gYSBnemlwLWNvbXByZXNzZWQgZmlsZSBpbiBiaW5hcnkgb3IgdGV4dCBtb2RlLgogCi1kZWYgTE9XVTMyKGkpOgotICAgICIiIlJldHVybiB0aGUgbG93LW9yZGVyIDMyIGJpdHMsIGFzIGEgbm9uLW5lZ2F0aXZlIGludCIiIgotICAgIHJldHVybiBpICYgMHhGRkZGRkZGRgorICAgIFRoZSBmaWxlbmFtZSBhcmd1bWVudCBjYW4gYmUgYW4gYWN0dWFsIGZpbGVuYW1lIChhIHN0ciBvciBieXRlcyBvYmplY3QpLCBvcgorICAgIGFuIGV4aXN0aW5nIGZpbGUgb2JqZWN0IHRvIHJlYWQgZnJvbSBvciB3cml0ZSB0by4KKworICAgIFRoZSBtb2RlIGFyZ3VtZW50IGNhbiBiZSAiciIsICJyYiIsICJ3IiwgIndiIiwgImEiIG9yICJhYiIgZm9yIGJpbmFyeSBtb2RlLAorICAgIG9yICJydCIsICJ3dCIgb3IgImF0IiBmb3IgdGV4dCBtb2RlLiBUaGUgZGVmYXVsdCBtb2RlIGlzICJyYiIsIGFuZCB0aGUKKyAgICBkZWZhdWx0IGNvbXByZXNzbGV2ZWwgaXMgOS4KKworICAgIEZvciBiaW5hcnkgbW9kZSwgdGhpcyBmdW5jdGlvbiBpcyBlcXVpdmFsZW50IHRvIHRoZSBHemlwRmlsZSBjb25zdHJ1Y3RvcjoKKyAgICBHemlwRmlsZShmaWxlbmFtZSwgbW9kZSwgY29tcHJlc3NsZXZlbCkuIEluIHRoaXMgY2FzZSwgdGhlIGVuY29kaW5nLCBlcnJvcnMKKyAgICBhbmQgbmV3bGluZSBhcmd1bWVudHMgbXVzdCBub3QgYmUgcHJvdmlkZWQuCisKKyAgICBGb3IgdGV4dCBtb2RlLCBhIEd6aXBGaWxlIG9iamVjdCBpcyBjcmVhdGVkLCBhbmQgd3JhcHBlZCBpbiBhbgorICAgIGlvLlRleHRJT1dyYXBwZXIgaW5zdGFuY2Ugd2l0aCB0aGUgc3BlY2lmaWVkIGVuY29kaW5nLCBlcnJvciBoYW5kbGluZworICAgIGJlaGF2aW9yLCBhbmQgbGluZSBlbmRpbmcocykuCisKKyAgICAiIiIKKyAgICBpZiAidCIgaW4gbW9kZToKKyAgICAgICAgaWYgImIiIGluIG1vZGU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIG1vZGU6ICVyIiAlIChtb2RlLCkpCisgICAgZWxzZToKKyAgICAgICAgaWYgZW5jb2RpbmcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJBcmd1bWVudCAnZW5jb2RpbmcnIG5vdCBzdXBwb3J0ZWQgaW4gYmluYXJ5IG1vZGUiKQorICAgICAgICBpZiBlcnJvcnMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJBcmd1bWVudCAnZXJyb3JzJyBub3Qgc3VwcG9ydGVkIGluIGJpbmFyeSBtb2RlIikKKyAgICAgICAgaWYgbmV3bGluZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkFyZ3VtZW50ICduZXdsaW5lJyBub3Qgc3VwcG9ydGVkIGluIGJpbmFyeSBtb2RlIikKKworICAgIGd6X21vZGUgPSBtb2RlLnJlcGxhY2UoInQiLCAiIikKKyAgICBpZiBpc2luc3RhbmNlKGZpbGVuYW1lLCAoc3RyLCBieXRlcykpOgorICAgICAgICBiaW5hcnlfZmlsZSA9IEd6aXBGaWxlKGZpbGVuYW1lLCBnel9tb2RlLCBjb21wcmVzc2xldmVsKQorICAgIGVsaWYgaGFzYXR0cihmaWxlbmFtZSwgInJlYWQiKSBvciBoYXNhdHRyKGZpbGVuYW1lLCAid3JpdGUiKToKKyAgICAgICAgYmluYXJ5X2ZpbGUgPSBHemlwRmlsZShOb25lLCBnel9tb2RlLCBjb21wcmVzc2xldmVsLCBmaWxlbmFtZSkKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoImZpbGVuYW1lIG11c3QgYmUgYSBzdHIgb3IgYnl0ZXMgb2JqZWN0LCBvciBhIGZpbGUiKQorCisgICAgaWYgInQiIGluIG1vZGU6CisgICAgICAgIHJldHVybiBpby5UZXh0SU9XcmFwcGVyKGJpbmFyeV9maWxlLCBlbmNvZGluZywgZXJyb3JzLCBuZXdsaW5lKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBiaW5hcnlfZmlsZQogCiBkZWYgd3JpdGUzMnUob3V0cHV0LCB2YWx1ZSk6CiAgICAgIyBUaGUgTCBmb3JtYXQgd3JpdGVzIHRoZSBiaXQgcGF0dGVybiBjb3JyZWN0bHkgd2hldGhlciBzaWduZWQKQEAgLTM2LDE1ICs2OCw2IEBACiBkZWYgcmVhZDMyKGlucHV0KToKICAgICByZXR1cm4gc3RydWN0LnVucGFjaygiPEkiLCBpbnB1dC5yZWFkKDQpKVswXQogCi1kZWYgb3BlbihmaWxlbmFtZSwgbW9kZT0icmIiLCBjb21wcmVzc2xldmVsPTkpOgotICAgICIiIlNob3J0aGFuZCBmb3IgR3ppcEZpbGUoZmlsZW5hbWUsIG1vZGUsIGNvbXByZXNzbGV2ZWwpLgotCi0gICAgVGhlIGZpbGVuYW1lIGFyZ3VtZW50IGlzIHJlcXVpcmVkOyBtb2RlIGRlZmF1bHRzIHRvICdyYicKLSAgICBhbmQgY29tcHJlc3NsZXZlbCBkZWZhdWx0cyB0byA5LgotCi0gICAgIiIiCi0gICAgcmV0dXJuIEd6aXBGaWxlKGZpbGVuYW1lLCBtb2RlLCBjb21wcmVzc2xldmVsKQotCiBjbGFzcyBfUGFkZGVkRmlsZToKICAgICAiIiJNaW5pbWFsIHJlYWQtb25seSBmaWxlIG9iamVjdCB0aGF0IHByZXBlbmRzIGEgc3RyaW5nIHRvIHRoZSBjb250ZW50cwogICAgIG9mIGFuIGFjdHVhbCBmaWxlLiBTaG91bGRuJ3QgYmUgdXNlZCBvdXRzaWRlIG9mIGd6aXAucHksIGFzIGl0IGxhY2tzCkBAIC0xMDYsNyArMTI5LDcgQEAKICAgICB0aGUgZXhjZXB0aW9uIG9mIHRoZSByZWFkaW50bygpIGFuZCB0cnVuY2F0ZSgpIG1ldGhvZHMuCiAKICAgICBUaGlzIGNsYXNzIG9ubHkgc3VwcG9ydHMgb3BlbmluZyBmaWxlcyBpbiBiaW5hcnkgbW9kZS4gSWYgeW91IG5lZWQgdG8gb3BlbiBhCi0gICAgY29tcHJlc3NlZCBmaWxlIGluIHRleHQgbW9kZSwgd3JhcCB5b3VyIEd6aXBGaWxlIHdpdGggYW4gaW8uVGV4dElPV3JhcHBlci4KKyAgICBjb21wcmVzc2VkIGZpbGUgaW4gdGV4dCBtb2RlLCB1c2UgdGhlIGd6aXAub3BlbigpIGZ1bmN0aW9uLgogCiAgICAgIiIiCiAKQEAgLTE1Myw3ICsxNzYsNyBAQAogICAgICAgICAiIiIKIAogICAgICAgICBpZiBtb2RlIGFuZCAoJ3QnIGluIG1vZGUgb3IgJ1UnIGluIG1vZGUpOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiTW9kZSAiICsgbW9kZSArICIgbm90IHN1cHBvcnRlZCIpCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIG1vZGU6IHshcn0iLmZvcm1hdChtb2RlKSkKICAgICAgICAgaWYgbW9kZSBhbmQgJ2InIG5vdCBpbiBtb2RlOgogICAgICAgICAgICAgbW9kZSArPSAnYicKICAgICAgICAgaWYgZmlsZW9iaiBpcyBOb25lOgpAQCAtMTYzLDEwICsxODYsOSBAQAogICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZmlsZW5hbWUsIChzdHIsIGJ5dGVzKSk6CiAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSAnJwogICAgICAgICBpZiBtb2RlIGlzIE5vbmU6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKGZpbGVvYmosICdtb2RlJyk6IG1vZGUgPSBmaWxlb2JqLm1vZGUKLSAgICAgICAgICAgIGVsc2U6IG1vZGUgPSAncmInCisgICAgICAgICAgICBtb2RlID0gZ2V0YXR0cihmaWxlb2JqLCAnbW9kZScsICdyYicpCiAKLSAgICAgICAgaWYgbW9kZVswOjFdID09ICdyJzoKKyAgICAgICAgaWYgbW9kZS5zdGFydHN3aXRoKCdyJyk6CiAgICAgICAgICAgICBzZWxmLm1vZGUgPSBSRUFECiAgICAgICAgICAgICAjIFNldCBmbGFnIGluZGljYXRpbmcgc3RhcnQgb2YgYSBuZXcgbWVtYmVyCiAgICAgICAgICAgICBzZWxmLl9uZXdfbWVtYmVyID0gVHJ1ZQpAQCAtMTgxLDcgKzIwMyw3IEBACiAgICAgICAgICAgICBzZWxmLm1pbl9yZWFkc2l6ZSA9IDEwMAogICAgICAgICAgICAgZmlsZW9iaiA9IF9QYWRkZWRGaWxlKGZpbGVvYmopCiAKLSAgICAgICAgZWxpZiBtb2RlWzA6MV0gPT0gJ3cnIG9yIG1vZGVbMDoxXSA9PSAnYSc6CisgICAgICAgIGVsaWYgbW9kZS5zdGFydHN3aXRoKCgndycsICdhJykpOgogICAgICAgICAgICAgc2VsZi5tb2RlID0gV1JJVEUKICAgICAgICAgICAgIHNlbGYuX2luaXRfd3JpdGUoZmlsZW5hbWUpCiAgICAgICAgICAgICBzZWxmLmNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaihjb21wcmVzc2xldmVsLApAQCAtMTkwLDcgKzIxMiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6bGliLkRFRl9NRU1fTEVWRUwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiTW9kZSAiICsgbW9kZSArICIgbm90IHN1cHBvcnRlZCIpCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIG1vZGU6IHshcn0iLmZvcm1hdChtb2RlKSkKIAogICAgICAgICBzZWxmLmZpbGVvYmogPSBmaWxlb2JqCiAgICAgICAgIHNlbGYub2Zmc2V0ID0gMApAQCAtMzUzLDYgKzM3NSwyOCBAQAogICAgICAgICBzZWxmLm9mZnNldCArPSBzaXplCiAgICAgICAgIHJldHVybiBjaHVuawogCisgICAgZGVmIHJlYWQxKHNlbGYsIHNpemU9LTEpOgorICAgICAgICBzZWxmLl9jaGVja19jbG9zZWQoKQorICAgICAgICBpZiBzZWxmLm1vZGUgIT0gUkVBRDoKKyAgICAgICAgICAgIGltcG9ydCBlcnJubworICAgICAgICAgICAgcmFpc2UgSU9FcnJvcihlcnJuby5FQkFERiwgInJlYWQxKCkgb24gd3JpdGUtb25seSBHemlwRmlsZSBvYmplY3QiKQorCisgICAgICAgIGlmIHNlbGYuZXh0cmFzaXplIDw9IDAgYW5kIHNlbGYuZmlsZW9iaiBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIGInJworCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX3JlYWQoKQorICAgICAgICBleGNlcHQgRU9GRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIHNpemUgPCAwIG9yIHNpemUgPiBzZWxmLmV4dHJhc2l6ZToKKyAgICAgICAgICAgIHNpemUgPSBzZWxmLmV4dHJhc2l6ZQorCisgICAgICAgIG9mZnNldCA9IHNlbGYub2Zmc2V0IC0gc2VsZi5leHRyYXN0YXJ0CisgICAgICAgIGNodW5rID0gc2VsZi5leHRyYWJ1ZltvZmZzZXQ6IG9mZnNldCArIHNpemVdCisgICAgICAgIHNlbGYuZXh0cmFzaXplIC09IHNpemUKKyAgICAgICAgc2VsZi5vZmZzZXQgKz0gc2l6ZQorICAgICAgICByZXR1cm4gY2h1bmsKKwogICAgIGRlZiBwZWVrKHNlbGYsIG4pOgogICAgICAgICBpZiBzZWxmLm1vZGUgIT0gUkVBRDoKICAgICAgICAgICAgIGltcG9ydCBlcnJubwpkaWZmIC0tZ2l0IGEvTGliL2htYWMucHkgYi9MaWIvaG1hYy5weQppbmRleCA5NTZmYzY1Li40Mjk3YTcxIDEwMDY0NAotLS0gYS9MaWIvaG1hYy5weQorKysgYi9MaWIvaG1hYy5weQpAQCAtNCw2ICs0LDcgQEAKICIiIgogCiBpbXBvcnQgd2FybmluZ3MgYXMgX3dhcm5pbmdzCitmcm9tIG9wZXJhdG9yIGltcG9ydCBfY29tcGFyZV9kaWdlc3QgYXMgY29tcGFyZV9kaWdlc3QKIAogdHJhbnNfNUMgPSBieXRlcygoeCBeIDB4NUMpIGZvciB4IGluIHJhbmdlKDI1NikpCiB0cmFuc18zNiA9IGJ5dGVzKCh4IF4gMHgzNikgZm9yIHggaW4gcmFuZ2UoMjU2KSkKQEAgLTEzLDYgKzE0LDcgQEAKIGRpZ2VzdF9zaXplID0gTm9uZQogCiAKKwogY2xhc3MgSE1BQzoKICAgICAiIiJSRkMgMjEwNCBITUFDIGNsYXNzLiAgQWxzbyBjb21wbGllcyB3aXRoIFJGQyA0MjMxLgogCkBAIC0zMyw3ICszNSw3IEBACiAgICAgICAgICIiIgogCiAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGtleSwgYnl0ZXMpOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJleHBlY3RlZCBieXRlcywgYnV0IGdvdCAlciIgJSB0eXBlKGtleSkuX19uYW1lX18pCisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImtleTogZXhwZWN0ZWQgYnl0ZXMsIGJ1dCBnb3QgJXIiICUgdHlwZShrZXkpLl9fbmFtZV9fKQogCiAgICAgICAgIGlmIGRpZ2VzdG1vZCBpcyBOb25lOgogICAgICAgICAgICAgaW1wb3J0IGhhc2hsaWIKZGlmZiAtLWdpdCBhL0xpYi9odG1sL2VudGl0aWVzLnB5IGIvTGliL2h0bWwvZW50aXRpZXMucHkKaW5kZXggZTJiN2JmMS4uZmY3MmNmNCAxMDA2NDQKLS0tIGEvTGliL2h0bWwvZW50aXRpZXMucHkKKysrIGIvTGliL2h0bWwvZW50aXRpZXMucHkKQEAgLTI1Niw2ICsyNTYsMjI0MiBAQAogICAgICd6d25qJzogICAgIDB4MjAwYywgIyB6ZXJvIHdpZHRoIG5vbi1qb2luZXIsIFUrMjAwQyBORVcgUkZDIDIwNzAKIH0KIAorCisjIG1hcHMgdGhlIEhUTUw1IG5hbWVkIGNoYXJhY3RlciByZWZlcmVuY2VzIHRvIHRoZSBlcXVpdmFsZW50IFVuaWNvZGUgY2hhcmFjdGVyKHMpCitodG1sNSA9IHsKKyAgICAnQWFjdXRlOyc6ICdceGMxJywKKyAgICAnQWFjdXRlJzogJ1x4YzEnLAorICAgICdhYWN1dGU7JzogJ1x4ZTEnLAorICAgICdhYWN1dGUnOiAnXHhlMScsCisgICAgJ0FicmV2ZTsnOiAnXHUwMTAyJywKKyAgICAnYWJyZXZlOyc6ICdcdTAxMDMnLAorICAgICdhYzsnOiAnXHUyMjNlJywKKyAgICAnYWNkOyc6ICdcdTIyM2YnLAorICAgICdhY0U7JzogJ1x1MjIzZVx1MDMzMycsCisgICAgJ0FjaXJjOyc6ICdceGMyJywKKyAgICAnQWNpcmMnOiAnXHhjMicsCisgICAgJ2FjaXJjOyc6ICdceGUyJywKKyAgICAnYWNpcmMnOiAnXHhlMicsCisgICAgJ2FjdXRlOyc6ICdceGI0JywKKyAgICAnYWN1dGUnOiAnXHhiNCcsCisgICAgJ0FjeTsnOiAnXHUwNDEwJywKKyAgICAnYWN5Oyc6ICdcdTA0MzAnLAorICAgICdBRWxpZzsnOiAnXHhjNicsCisgICAgJ0FFbGlnJzogJ1x4YzYnLAorICAgICdhZWxpZzsnOiAnXHhlNicsCisgICAgJ2FlbGlnJzogJ1x4ZTYnLAorICAgICdhZjsnOiAnXHUyMDYxJywKKyAgICAnQWZyOyc6ICdcVTAwMDFkNTA0JywKKyAgICAnYWZyOyc6ICdcVTAwMDFkNTFlJywKKyAgICAnQWdyYXZlOyc6ICdceGMwJywKKyAgICAnQWdyYXZlJzogJ1x4YzAnLAorICAgICdhZ3JhdmU7JzogJ1x4ZTAnLAorICAgICdhZ3JhdmUnOiAnXHhlMCcsCisgICAgJ2FsZWZzeW07JzogJ1x1MjEzNScsCisgICAgJ2FsZXBoOyc6ICdcdTIxMzUnLAorICAgICdBbHBoYTsnOiAnXHUwMzkxJywKKyAgICAnYWxwaGE7JzogJ1x1MDNiMScsCisgICAgJ0FtYWNyOyc6ICdcdTAxMDAnLAorICAgICdhbWFjcjsnOiAnXHUwMTAxJywKKyAgICAnYW1hbGc7JzogJ1x1MmEzZicsCisgICAgJ0FNUDsnOiAnJicsCisgICAgJ0FNUCc6ICcmJywKKyAgICAnYW1wOyc6ICcmJywKKyAgICAnYW1wJzogJyYnLAorICAgICdBbmQ7JzogJ1x1MmE1MycsCisgICAgJ2FuZDsnOiAnXHUyMjI3JywKKyAgICAnYW5kYW5kOyc6ICdcdTJhNTUnLAorICAgICdhbmRkOyc6ICdcdTJhNWMnLAorICAgICdhbmRzbG9wZTsnOiAnXHUyYTU4JywKKyAgICAnYW5kdjsnOiAnXHUyYTVhJywKKyAgICAnYW5nOyc6ICdcdTIyMjAnLAorICAgICdhbmdlOyc6ICdcdTI5YTQnLAorICAgICdhbmdsZTsnOiAnXHUyMjIwJywKKyAgICAnYW5nbXNkOyc6ICdcdTIyMjEnLAorICAgICdhbmdtc2RhYTsnOiAnXHUyOWE4JywKKyAgICAnYW5nbXNkYWI7JzogJ1x1MjlhOScsCisgICAgJ2FuZ21zZGFjOyc6ICdcdTI5YWEnLAorICAgICdhbmdtc2RhZDsnOiAnXHUyOWFiJywKKyAgICAnYW5nbXNkYWU7JzogJ1x1MjlhYycsCisgICAgJ2FuZ21zZGFmOyc6ICdcdTI5YWQnLAorICAgICdhbmdtc2RhZzsnOiAnXHUyOWFlJywKKyAgICAnYW5nbXNkYWg7JzogJ1x1MjlhZicsCisgICAgJ2FuZ3J0Oyc6ICdcdTIyMWYnLAorICAgICdhbmdydHZiOyc6ICdcdTIyYmUnLAorICAgICdhbmdydHZiZDsnOiAnXHUyOTlkJywKKyAgICAnYW5nc3BoOyc6ICdcdTIyMjInLAorICAgICdhbmdzdDsnOiAnXHhjNScsCisgICAgJ2FuZ3phcnI7JzogJ1x1MjM3YycsCisgICAgJ0FvZ29uOyc6ICdcdTAxMDQnLAorICAgICdhb2dvbjsnOiAnXHUwMTA1JywKKyAgICAnQW9wZjsnOiAnXFUwMDAxZDUzOCcsCisgICAgJ2FvcGY7JzogJ1xVMDAwMWQ1NTInLAorICAgICdhcDsnOiAnXHUyMjQ4JywKKyAgICAnYXBhY2lyOyc6ICdcdTJhNmYnLAorICAgICdhcEU7JzogJ1x1MmE3MCcsCisgICAgJ2FwZTsnOiAnXHUyMjRhJywKKyAgICAnYXBpZDsnOiAnXHUyMjRiJywKKyAgICAnYXBvczsnOiAiJyIsCisgICAgJ0FwcGx5RnVuY3Rpb247JzogJ1x1MjA2MScsCisgICAgJ2FwcHJveDsnOiAnXHUyMjQ4JywKKyAgICAnYXBwcm94ZXE7JzogJ1x1MjI0YScsCisgICAgJ0FyaW5nOyc6ICdceGM1JywKKyAgICAnQXJpbmcnOiAnXHhjNScsCisgICAgJ2FyaW5nOyc6ICdceGU1JywKKyAgICAnYXJpbmcnOiAnXHhlNScsCisgICAgJ0FzY3I7JzogJ1xVMDAwMWQ0OWMnLAorICAgICdhc2NyOyc6ICdcVTAwMDFkNGI2JywKKyAgICAnQXNzaWduOyc6ICdcdTIyNTQnLAorICAgICdhc3Q7JzogJyonLAorICAgICdhc3ltcDsnOiAnXHUyMjQ4JywKKyAgICAnYXN5bXBlcTsnOiAnXHUyMjRkJywKKyAgICAnQXRpbGRlOyc6ICdceGMzJywKKyAgICAnQXRpbGRlJzogJ1x4YzMnLAorICAgICdhdGlsZGU7JzogJ1x4ZTMnLAorICAgICdhdGlsZGUnOiAnXHhlMycsCisgICAgJ0F1bWw7JzogJ1x4YzQnLAorICAgICdBdW1sJzogJ1x4YzQnLAorICAgICdhdW1sOyc6ICdceGU0JywKKyAgICAnYXVtbCc6ICdceGU0JywKKyAgICAnYXdjb25pbnQ7JzogJ1x1MjIzMycsCisgICAgJ2F3aW50Oyc6ICdcdTJhMTEnLAorICAgICdiYWNrY29uZzsnOiAnXHUyMjRjJywKKyAgICAnYmFja2Vwc2lsb247JzogJ1x1MDNmNicsCisgICAgJ2JhY2twcmltZTsnOiAnXHUyMDM1JywKKyAgICAnYmFja3NpbTsnOiAnXHUyMjNkJywKKyAgICAnYmFja3NpbWVxOyc6ICdcdTIyY2QnLAorICAgICdCYWNrc2xhc2g7JzogJ1x1MjIxNicsCisgICAgJ0JhcnY7JzogJ1x1MmFlNycsCisgICAgJ2JhcnZlZTsnOiAnXHUyMmJkJywKKyAgICAnQmFyd2VkOyc6ICdcdTIzMDYnLAorICAgICdiYXJ3ZWQ7JzogJ1x1MjMwNScsCisgICAgJ2JhcndlZGdlOyc6ICdcdTIzMDUnLAorICAgICdiYnJrOyc6ICdcdTIzYjUnLAorICAgICdiYnJrdGJyazsnOiAnXHUyM2I2JywKKyAgICAnYmNvbmc7JzogJ1x1MjI0YycsCisgICAgJ0JjeTsnOiAnXHUwNDExJywKKyAgICAnYmN5Oyc6ICdcdTA0MzEnLAorICAgICdiZHF1bzsnOiAnXHUyMDFlJywKKyAgICAnYmVjYXVzOyc6ICdcdTIyMzUnLAorICAgICdCZWNhdXNlOyc6ICdcdTIyMzUnLAorICAgICdiZWNhdXNlOyc6ICdcdTIyMzUnLAorICAgICdiZW1wdHl2Oyc6ICdcdTI5YjAnLAorICAgICdiZXBzaTsnOiAnXHUwM2Y2JywKKyAgICAnYmVybm91Oyc6ICdcdTIxMmMnLAorICAgICdCZXJub3VsbGlzOyc6ICdcdTIxMmMnLAorICAgICdCZXRhOyc6ICdcdTAzOTInLAorICAgICdiZXRhOyc6ICdcdTAzYjInLAorICAgICdiZXRoOyc6ICdcdTIxMzYnLAorICAgICdiZXR3ZWVuOyc6ICdcdTIyNmMnLAorICAgICdCZnI7JzogJ1xVMDAwMWQ1MDUnLAorICAgICdiZnI7JzogJ1xVMDAwMWQ1MWYnLAorICAgICdiaWdjYXA7JzogJ1x1MjJjMicsCisgICAgJ2JpZ2NpcmM7JzogJ1x1MjVlZicsCisgICAgJ2JpZ2N1cDsnOiAnXHUyMmMzJywKKyAgICAnYmlnb2RvdDsnOiAnXHUyYTAwJywKKyAgICAnYmlnb3BsdXM7JzogJ1x1MmEwMScsCisgICAgJ2JpZ290aW1lczsnOiAnXHUyYTAyJywKKyAgICAnYmlnc3FjdXA7JzogJ1x1MmEwNicsCisgICAgJ2JpZ3N0YXI7JzogJ1x1MjYwNScsCisgICAgJ2JpZ3RyaWFuZ2xlZG93bjsnOiAnXHUyNWJkJywKKyAgICAnYmlndHJpYW5nbGV1cDsnOiAnXHUyNWIzJywKKyAgICAnYmlndXBsdXM7JzogJ1x1MmEwNCcsCisgICAgJ2JpZ3ZlZTsnOiAnXHUyMmMxJywKKyAgICAnYmlnd2VkZ2U7JzogJ1x1MjJjMCcsCisgICAgJ2JrYXJvdzsnOiAnXHUyOTBkJywKKyAgICAnYmxhY2tsb3plbmdlOyc6ICdcdTI5ZWInLAorICAgICdibGFja3NxdWFyZTsnOiAnXHUyNWFhJywKKyAgICAnYmxhY2t0cmlhbmdsZTsnOiAnXHUyNWI0JywKKyAgICAnYmxhY2t0cmlhbmdsZWRvd247JzogJ1x1MjViZScsCisgICAgJ2JsYWNrdHJpYW5nbGVsZWZ0Oyc6ICdcdTI1YzInLAorICAgICdibGFja3RyaWFuZ2xlcmlnaHQ7JzogJ1x1MjViOCcsCisgICAgJ2JsYW5rOyc6ICdcdTI0MjMnLAorICAgICdibGsxMjsnOiAnXHUyNTkyJywKKyAgICAnYmxrMTQ7JzogJ1x1MjU5MScsCisgICAgJ2JsazM0Oyc6ICdcdTI1OTMnLAorICAgICdibG9jazsnOiAnXHUyNTg4JywKKyAgICAnYm5lOyc6ICc9XHUyMGU1JywKKyAgICAnYm5lcXVpdjsnOiAnXHUyMjYxXHUyMGU1JywKKyAgICAnYk5vdDsnOiAnXHUyYWVkJywKKyAgICAnYm5vdDsnOiAnXHUyMzEwJywKKyAgICAnQm9wZjsnOiAnXFUwMDAxZDUzOScsCisgICAgJ2JvcGY7JzogJ1xVMDAwMWQ1NTMnLAorICAgICdib3Q7JzogJ1x1MjJhNScsCisgICAgJ2JvdHRvbTsnOiAnXHUyMmE1JywKKyAgICAnYm93dGllOyc6ICdcdTIyYzgnLAorICAgICdib3hib3g7JzogJ1x1MjljOScsCisgICAgJ2JveERMOyc6ICdcdTI1NTcnLAorICAgICdib3hEbDsnOiAnXHUyNTU2JywKKyAgICAnYm94ZEw7JzogJ1x1MjU1NScsCisgICAgJ2JveGRsOyc6ICdcdTI1MTAnLAorICAgICdib3hEUjsnOiAnXHUyNTU0JywKKyAgICAnYm94RHI7JzogJ1x1MjU1MycsCisgICAgJ2JveGRSOyc6ICdcdTI1NTInLAorICAgICdib3hkcjsnOiAnXHUyNTBjJywKKyAgICAnYm94SDsnOiAnXHUyNTUwJywKKyAgICAnYm94aDsnOiAnXHUyNTAwJywKKyAgICAnYm94SEQ7JzogJ1x1MjU2NicsCisgICAgJ2JveEhkOyc6ICdcdTI1NjQnLAorICAgICdib3hoRDsnOiAnXHUyNTY1JywKKyAgICAnYm94aGQ7JzogJ1x1MjUyYycsCisgICAgJ2JveEhVOyc6ICdcdTI1NjknLAorICAgICdib3hIdTsnOiAnXHUyNTY3JywKKyAgICAnYm94aFU7JzogJ1x1MjU2OCcsCisgICAgJ2JveGh1Oyc6ICdcdTI1MzQnLAorICAgICdib3htaW51czsnOiAnXHUyMjlmJywKKyAgICAnYm94cGx1czsnOiAnXHUyMjllJywKKyAgICAnYm94dGltZXM7JzogJ1x1MjJhMCcsCisgICAgJ2JveFVMOyc6ICdcdTI1NWQnLAorICAgICdib3hVbDsnOiAnXHUyNTVjJywKKyAgICAnYm94dUw7JzogJ1x1MjU1YicsCisgICAgJ2JveHVsOyc6ICdcdTI1MTgnLAorICAgICdib3hVUjsnOiAnXHUyNTVhJywKKyAgICAnYm94VXI7JzogJ1x1MjU1OScsCisgICAgJ2JveHVSOyc6ICdcdTI1NTgnLAorICAgICdib3h1cjsnOiAnXHUyNTE0JywKKyAgICAnYm94VjsnOiAnXHUyNTUxJywKKyAgICAnYm94djsnOiAnXHUyNTAyJywKKyAgICAnYm94Vkg7JzogJ1x1MjU2YycsCisgICAgJ2JveFZoOyc6ICdcdTI1NmInLAorICAgICdib3h2SDsnOiAnXHUyNTZhJywKKyAgICAnYm94dmg7JzogJ1x1MjUzYycsCisgICAgJ2JveFZMOyc6ICdcdTI1NjMnLAorICAgICdib3hWbDsnOiAnXHUyNTYyJywKKyAgICAnYm94dkw7JzogJ1x1MjU2MScsCisgICAgJ2JveHZsOyc6ICdcdTI1MjQnLAorICAgICdib3hWUjsnOiAnXHUyNTYwJywKKyAgICAnYm94VnI7JzogJ1x1MjU1ZicsCisgICAgJ2JveHZSOyc6ICdcdTI1NWUnLAorICAgICdib3h2cjsnOiAnXHUyNTFjJywKKyAgICAnYnByaW1lOyc6ICdcdTIwMzUnLAorICAgICdCcmV2ZTsnOiAnXHUwMmQ4JywKKyAgICAnYnJldmU7JzogJ1x1MDJkOCcsCisgICAgJ2JydmJhcjsnOiAnXHhhNicsCisgICAgJ2JydmJhcic6ICdceGE2JywKKyAgICAnQnNjcjsnOiAnXHUyMTJjJywKKyAgICAnYnNjcjsnOiAnXFUwMDAxZDRiNycsCisgICAgJ2JzZW1pOyc6ICdcdTIwNGYnLAorICAgICdic2ltOyc6ICdcdTIyM2QnLAorICAgICdic2ltZTsnOiAnXHUyMmNkJywKKyAgICAnYnNvbDsnOiAnXFwnLAorICAgICdic29sYjsnOiAnXHUyOWM1JywKKyAgICAnYnNvbGhzdWI7JzogJ1x1MjdjOCcsCisgICAgJ2J1bGw7JzogJ1x1MjAyMicsCisgICAgJ2J1bGxldDsnOiAnXHUyMDIyJywKKyAgICAnYnVtcDsnOiAnXHUyMjRlJywKKyAgICAnYnVtcEU7JzogJ1x1MmFhZScsCisgICAgJ2J1bXBlOyc6ICdcdTIyNGYnLAorICAgICdCdW1wZXE7JzogJ1x1MjI0ZScsCisgICAgJ2J1bXBlcTsnOiAnXHUyMjRmJywKKyAgICAnQ2FjdXRlOyc6ICdcdTAxMDYnLAorICAgICdjYWN1dGU7JzogJ1x1MDEwNycsCisgICAgJ0NhcDsnOiAnXHUyMmQyJywKKyAgICAnY2FwOyc6ICdcdTIyMjknLAorICAgICdjYXBhbmQ7JzogJ1x1MmE0NCcsCisgICAgJ2NhcGJyY3VwOyc6ICdcdTJhNDknLAorICAgICdjYXBjYXA7JzogJ1x1MmE0YicsCisgICAgJ2NhcGN1cDsnOiAnXHUyYTQ3JywKKyAgICAnY2FwZG90Oyc6ICdcdTJhNDAnLAorICAgICdDYXBpdGFsRGlmZmVyZW50aWFsRDsnOiAnXHUyMTQ1JywKKyAgICAnY2FwczsnOiAnXHUyMjI5XHVmZTAwJywKKyAgICAnY2FyZXQ7JzogJ1x1MjA0MScsCisgICAgJ2Nhcm9uOyc6ICdcdTAyYzcnLAorICAgICdDYXlsZXlzOyc6ICdcdTIxMmQnLAorICAgICdjY2FwczsnOiAnXHUyYTRkJywKKyAgICAnQ2Nhcm9uOyc6ICdcdTAxMGMnLAorICAgICdjY2Fyb247JzogJ1x1MDEwZCcsCisgICAgJ0NjZWRpbDsnOiAnXHhjNycsCisgICAgJ0NjZWRpbCc6ICdceGM3JywKKyAgICAnY2NlZGlsOyc6ICdceGU3JywKKyAgICAnY2NlZGlsJzogJ1x4ZTcnLAorICAgICdDY2lyYzsnOiAnXHUwMTA4JywKKyAgICAnY2NpcmM7JzogJ1x1MDEwOScsCisgICAgJ0Njb25pbnQ7JzogJ1x1MjIzMCcsCisgICAgJ2NjdXBzOyc6ICdcdTJhNGMnLAorICAgICdjY3Vwc3NtOyc6ICdcdTJhNTAnLAorICAgICdDZG90Oyc6ICdcdTAxMGEnLAorICAgICdjZG90Oyc6ICdcdTAxMGInLAorICAgICdjZWRpbDsnOiAnXHhiOCcsCisgICAgJ2NlZGlsJzogJ1x4YjgnLAorICAgICdDZWRpbGxhOyc6ICdceGI4JywKKyAgICAnY2VtcHR5djsnOiAnXHUyOWIyJywKKyAgICAnY2VudDsnOiAnXHhhMicsCisgICAgJ2NlbnQnOiAnXHhhMicsCisgICAgJ0NlbnRlckRvdDsnOiAnXHhiNycsCisgICAgJ2NlbnRlcmRvdDsnOiAnXHhiNycsCisgICAgJ0NmcjsnOiAnXHUyMTJkJywKKyAgICAnY2ZyOyc6ICdcVTAwMDFkNTIwJywKKyAgICAnQ0hjeTsnOiAnXHUwNDI3JywKKyAgICAnY2hjeTsnOiAnXHUwNDQ3JywKKyAgICAnY2hlY2s7JzogJ1x1MjcxMycsCisgICAgJ2NoZWNrbWFyazsnOiAnXHUyNzEzJywKKyAgICAnQ2hpOyc6ICdcdTAzYTcnLAorICAgICdjaGk7JzogJ1x1MDNjNycsCisgICAgJ2NpcjsnOiAnXHUyNWNiJywKKyAgICAnY2lyYzsnOiAnXHUwMmM2JywKKyAgICAnY2lyY2VxOyc6ICdcdTIyNTcnLAorICAgICdjaXJjbGVhcnJvd2xlZnQ7JzogJ1x1MjFiYScsCisgICAgJ2NpcmNsZWFycm93cmlnaHQ7JzogJ1x1MjFiYicsCisgICAgJ2NpcmNsZWRhc3Q7JzogJ1x1MjI5YicsCisgICAgJ2NpcmNsZWRjaXJjOyc6ICdcdTIyOWEnLAorICAgICdjaXJjbGVkZGFzaDsnOiAnXHUyMjlkJywKKyAgICAnQ2lyY2xlRG90Oyc6ICdcdTIyOTknLAorICAgICdjaXJjbGVkUjsnOiAnXHhhZScsCisgICAgJ2NpcmNsZWRTOyc6ICdcdTI0YzgnLAorICAgICdDaXJjbGVNaW51czsnOiAnXHUyMjk2JywKKyAgICAnQ2lyY2xlUGx1czsnOiAnXHUyMjk1JywKKyAgICAnQ2lyY2xlVGltZXM7JzogJ1x1MjI5NycsCisgICAgJ2NpckU7JzogJ1x1MjljMycsCisgICAgJ2NpcmU7JzogJ1x1MjI1NycsCisgICAgJ2NpcmZuaW50Oyc6ICdcdTJhMTAnLAorICAgICdjaXJtaWQ7JzogJ1x1MmFlZicsCisgICAgJ2NpcnNjaXI7JzogJ1x1MjljMicsCisgICAgJ0Nsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbDsnOiAnXHUyMjMyJywKKyAgICAnQ2xvc2VDdXJseURvdWJsZVF1b3RlOyc6ICdcdTIwMWQnLAorICAgICdDbG9zZUN1cmx5UXVvdGU7JzogJ1x1MjAxOScsCisgICAgJ2NsdWJzOyc6ICdcdTI2NjMnLAorICAgICdjbHVic3VpdDsnOiAnXHUyNjYzJywKKyAgICAnQ29sb247JzogJ1x1MjIzNycsCisgICAgJ2NvbG9uOyc6ICc6JywKKyAgICAnQ29sb25lOyc6ICdcdTJhNzQnLAorICAgICdjb2xvbmU7JzogJ1x1MjI1NCcsCisgICAgJ2NvbG9uZXE7JzogJ1x1MjI1NCcsCisgICAgJ2NvbW1hOyc6ICcsJywKKyAgICAnY29tbWF0Oyc6ICdAJywKKyAgICAnY29tcDsnOiAnXHUyMjAxJywKKyAgICAnY29tcGZuOyc6ICdcdTIyMTgnLAorICAgICdjb21wbGVtZW50Oyc6ICdcdTIyMDEnLAorICAgICdjb21wbGV4ZXM7JzogJ1x1MjEwMicsCisgICAgJ2Nvbmc7JzogJ1x1MjI0NScsCisgICAgJ2Nvbmdkb3Q7JzogJ1x1MmE2ZCcsCisgICAgJ0NvbmdydWVudDsnOiAnXHUyMjYxJywKKyAgICAnQ29uaW50Oyc6ICdcdTIyMmYnLAorICAgICdjb25pbnQ7JzogJ1x1MjIyZScsCisgICAgJ0NvbnRvdXJJbnRlZ3JhbDsnOiAnXHUyMjJlJywKKyAgICAnQ29wZjsnOiAnXHUyMTAyJywKKyAgICAnY29wZjsnOiAnXFUwMDAxZDU1NCcsCisgICAgJ2NvcHJvZDsnOiAnXHUyMjEwJywKKyAgICAnQ29wcm9kdWN0Oyc6ICdcdTIyMTAnLAorICAgICdDT1BZOyc6ICdceGE5JywKKyAgICAnQ09QWSc6ICdceGE5JywKKyAgICAnY29weTsnOiAnXHhhOScsCisgICAgJ2NvcHknOiAnXHhhOScsCisgICAgJ2NvcHlzcjsnOiAnXHUyMTE3JywKKyAgICAnQ291bnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbDsnOiAnXHUyMjMzJywKKyAgICAnY3JhcnI7JzogJ1x1MjFiNScsCisgICAgJ0Nyb3NzOyc6ICdcdTJhMmYnLAorICAgICdjcm9zczsnOiAnXHUyNzE3JywKKyAgICAnQ3NjcjsnOiAnXFUwMDAxZDQ5ZScsCisgICAgJ2NzY3I7JzogJ1xVMDAwMWQ0YjgnLAorICAgICdjc3ViOyc6ICdcdTJhY2YnLAorICAgICdjc3ViZTsnOiAnXHUyYWQxJywKKyAgICAnY3N1cDsnOiAnXHUyYWQwJywKKyAgICAnY3N1cGU7JzogJ1x1MmFkMicsCisgICAgJ2N0ZG90Oyc6ICdcdTIyZWYnLAorICAgICdjdWRhcnJsOyc6ICdcdTI5MzgnLAorICAgICdjdWRhcnJyOyc6ICdcdTI5MzUnLAorICAgICdjdWVwcjsnOiAnXHUyMmRlJywKKyAgICAnY3Vlc2M7JzogJ1x1MjJkZicsCisgICAgJ2N1bGFycjsnOiAnXHUyMWI2JywKKyAgICAnY3VsYXJycDsnOiAnXHUyOTNkJywKKyAgICAnQ3VwOyc6ICdcdTIyZDMnLAorICAgICdjdXA7JzogJ1x1MjIyYScsCisgICAgJ2N1cGJyY2FwOyc6ICdcdTJhNDgnLAorICAgICdDdXBDYXA7JzogJ1x1MjI0ZCcsCisgICAgJ2N1cGNhcDsnOiAnXHUyYTQ2JywKKyAgICAnY3VwY3VwOyc6ICdcdTJhNGEnLAorICAgICdjdXBkb3Q7JzogJ1x1MjI4ZCcsCisgICAgJ2N1cG9yOyc6ICdcdTJhNDUnLAorICAgICdjdXBzOyc6ICdcdTIyMmFcdWZlMDAnLAorICAgICdjdXJhcnI7JzogJ1x1MjFiNycsCisgICAgJ2N1cmFycm07JzogJ1x1MjkzYycsCisgICAgJ2N1cmx5ZXFwcmVjOyc6ICdcdTIyZGUnLAorICAgICdjdXJseWVxc3VjYzsnOiAnXHUyMmRmJywKKyAgICAnY3VybHl2ZWU7JzogJ1x1MjJjZScsCisgICAgJ2N1cmx5d2VkZ2U7JzogJ1x1MjJjZicsCisgICAgJ2N1cnJlbjsnOiAnXHhhNCcsCisgICAgJ2N1cnJlbic6ICdceGE0JywKKyAgICAnY3VydmVhcnJvd2xlZnQ7JzogJ1x1MjFiNicsCisgICAgJ2N1cnZlYXJyb3dyaWdodDsnOiAnXHUyMWI3JywKKyAgICAnY3V2ZWU7JzogJ1x1MjJjZScsCisgICAgJ2N1d2VkOyc6ICdcdTIyY2YnLAorICAgICdjd2NvbmludDsnOiAnXHUyMjMyJywKKyAgICAnY3dpbnQ7JzogJ1x1MjIzMScsCisgICAgJ2N5bGN0eTsnOiAnXHUyMzJkJywKKyAgICAnRGFnZ2VyOyc6ICdcdTIwMjEnLAorICAgICdkYWdnZXI7JzogJ1x1MjAyMCcsCisgICAgJ2RhbGV0aDsnOiAnXHUyMTM4JywKKyAgICAnRGFycjsnOiAnXHUyMWExJywKKyAgICAnZEFycjsnOiAnXHUyMWQzJywKKyAgICAnZGFycjsnOiAnXHUyMTkzJywKKyAgICAnZGFzaDsnOiAnXHUyMDEwJywKKyAgICAnRGFzaHY7JzogJ1x1MmFlNCcsCisgICAgJ2Rhc2h2Oyc6ICdcdTIyYTMnLAorICAgICdkYmthcm93Oyc6ICdcdTI5MGYnLAorICAgICdkYmxhYzsnOiAnXHUwMmRkJywKKyAgICAnRGNhcm9uOyc6ICdcdTAxMGUnLAorICAgICdkY2Fyb247JzogJ1x1MDEwZicsCisgICAgJ0RjeTsnOiAnXHUwNDE0JywKKyAgICAnZGN5Oyc6ICdcdTA0MzQnLAorICAgICdERDsnOiAnXHUyMTQ1JywKKyAgICAnZGQ7JzogJ1x1MjE0NicsCisgICAgJ2RkYWdnZXI7JzogJ1x1MjAyMScsCisgICAgJ2RkYXJyOyc6ICdcdTIxY2EnLAorICAgICdERG90cmFoZDsnOiAnXHUyOTExJywKKyAgICAnZGRvdHNlcTsnOiAnXHUyYTc3JywKKyAgICAnZGVnOyc6ICdceGIwJywKKyAgICAnZGVnJzogJ1x4YjAnLAorICAgICdEZWw7JzogJ1x1MjIwNycsCisgICAgJ0RlbHRhOyc6ICdcdTAzOTQnLAorICAgICdkZWx0YTsnOiAnXHUwM2I0JywKKyAgICAnZGVtcHR5djsnOiAnXHUyOWIxJywKKyAgICAnZGZpc2h0Oyc6ICdcdTI5N2YnLAorICAgICdEZnI7JzogJ1xVMDAwMWQ1MDcnLAorICAgICdkZnI7JzogJ1xVMDAwMWQ1MjEnLAorICAgICdkSGFyOyc6ICdcdTI5NjUnLAorICAgICdkaGFybDsnOiAnXHUyMWMzJywKKyAgICAnZGhhcnI7JzogJ1x1MjFjMicsCisgICAgJ0RpYWNyaXRpY2FsQWN1dGU7JzogJ1x4YjQnLAorICAgICdEaWFjcml0aWNhbERvdDsnOiAnXHUwMmQ5JywKKyAgICAnRGlhY3JpdGljYWxEb3VibGVBY3V0ZTsnOiAnXHUwMmRkJywKKyAgICAnRGlhY3JpdGljYWxHcmF2ZTsnOiAnYCcsCisgICAgJ0RpYWNyaXRpY2FsVGlsZGU7JzogJ1x1MDJkYycsCisgICAgJ2RpYW07JzogJ1x1MjJjNCcsCisgICAgJ0RpYW1vbmQ7JzogJ1x1MjJjNCcsCisgICAgJ2RpYW1vbmQ7JzogJ1x1MjJjNCcsCisgICAgJ2RpYW1vbmRzdWl0Oyc6ICdcdTI2NjYnLAorICAgICdkaWFtczsnOiAnXHUyNjY2JywKKyAgICAnZGllOyc6ICdceGE4JywKKyAgICAnRGlmZmVyZW50aWFsRDsnOiAnXHUyMTQ2JywKKyAgICAnZGlnYW1tYTsnOiAnXHUwM2RkJywKKyAgICAnZGlzaW47JzogJ1x1MjJmMicsCisgICAgJ2RpdjsnOiAnXHhmNycsCisgICAgJ2RpdmlkZTsnOiAnXHhmNycsCisgICAgJ2RpdmlkZSc6ICdceGY3JywKKyAgICAnZGl2aWRlb250aW1lczsnOiAnXHUyMmM3JywKKyAgICAnZGl2b254Oyc6ICdcdTIyYzcnLAorICAgICdESmN5Oyc6ICdcdTA0MDInLAorICAgICdkamN5Oyc6ICdcdTA0NTInLAorICAgICdkbGNvcm47JzogJ1x1MjMxZScsCisgICAgJ2RsY3JvcDsnOiAnXHUyMzBkJywKKyAgICAnZG9sbGFyOyc6ICckJywKKyAgICAnRG9wZjsnOiAnXFUwMDAxZDUzYicsCisgICAgJ2RvcGY7JzogJ1xVMDAwMWQ1NTUnLAorICAgICdEb3Q7JzogJ1x4YTgnLAorICAgICdkb3Q7JzogJ1x1MDJkOScsCisgICAgJ0RvdERvdDsnOiAnXHUyNWNjXHUyMGRjJywKKyAgICAnZG90ZXE7JzogJ1x1MjI1MCcsCisgICAgJ2RvdGVxZG90Oyc6ICdcdTIyNTEnLAorICAgICdEb3RFcXVhbDsnOiAnXHUyMjUwJywKKyAgICAnZG90bWludXM7JzogJ1x1MjIzOCcsCisgICAgJ2RvdHBsdXM7JzogJ1x1MjIxNCcsCisgICAgJ2RvdHNxdWFyZTsnOiAnXHUyMmExJywKKyAgICAnZG91YmxlYmFyd2VkZ2U7JzogJ1x1MjMwNicsCisgICAgJ0RvdWJsZUNvbnRvdXJJbnRlZ3JhbDsnOiAnXHUyMjJmJywKKyAgICAnRG91YmxlRG90Oyc6ICdceGE4JywKKyAgICAnRG91YmxlRG93bkFycm93Oyc6ICdcdTIxZDMnLAorICAgICdEb3VibGVMZWZ0QXJyb3c7JzogJ1x1MjFkMCcsCisgICAgJ0RvdWJsZUxlZnRSaWdodEFycm93Oyc6ICdcdTIxZDQnLAorICAgICdEb3VibGVMZWZ0VGVlOyc6ICdcdTJhZTQnLAorICAgICdEb3VibGVMb25nTGVmdEFycm93Oyc6ICdcdTI3ZjgnLAorICAgICdEb3VibGVMb25nTGVmdFJpZ2h0QXJyb3c7JzogJ1x1MjdmYScsCisgICAgJ0RvdWJsZUxvbmdSaWdodEFycm93Oyc6ICdcdTI3ZjknLAorICAgICdEb3VibGVSaWdodEFycm93Oyc6ICdcdTIxZDInLAorICAgICdEb3VibGVSaWdodFRlZTsnOiAnXHUyMmE4JywKKyAgICAnRG91YmxlVXBBcnJvdzsnOiAnXHUyMWQxJywKKyAgICAnRG91YmxlVXBEb3duQXJyb3c7JzogJ1x1MjFkNScsCisgICAgJ0RvdWJsZVZlcnRpY2FsQmFyOyc6ICdcdTIyMjUnLAorICAgICdEb3duQXJyb3c7JzogJ1x1MjE5MycsCisgICAgJ0Rvd25hcnJvdzsnOiAnXHUyMWQzJywKKyAgICAnZG93bmFycm93Oyc6ICdcdTIxOTMnLAorICAgICdEb3duQXJyb3dCYXI7JzogJ1x1MjkxMycsCisgICAgJ0Rvd25BcnJvd1VwQXJyb3c7JzogJ1x1MjFmNScsCisgICAgJ0Rvd25CcmV2ZTsnOiAnXHUyNWNjXHUwMzExJywKKyAgICAnZG93bmRvd25hcnJvd3M7JzogJ1x1MjFjYScsCisgICAgJ2Rvd25oYXJwb29ubGVmdDsnOiAnXHUyMWMzJywKKyAgICAnZG93bmhhcnBvb25yaWdodDsnOiAnXHUyMWMyJywKKyAgICAnRG93bkxlZnRSaWdodFZlY3RvcjsnOiAnXHUyOTUwJywKKyAgICAnRG93bkxlZnRUZWVWZWN0b3I7JzogJ1x1Mjk1ZScsCisgICAgJ0Rvd25MZWZ0VmVjdG9yOyc6ICdcdTIxYmQnLAorICAgICdEb3duTGVmdFZlY3RvckJhcjsnOiAnXHUyOTU2JywKKyAgICAnRG93blJpZ2h0VGVlVmVjdG9yOyc6ICdcdTI5NWYnLAorICAgICdEb3duUmlnaHRWZWN0b3I7JzogJ1x1MjFjMScsCisgICAgJ0Rvd25SaWdodFZlY3RvckJhcjsnOiAnXHUyOTU3JywKKyAgICAnRG93blRlZTsnOiAnXHUyMmE0JywKKyAgICAnRG93blRlZUFycm93Oyc6ICdcdTIxYTcnLAorICAgICdkcmJrYXJvdzsnOiAnXHUyOTEwJywKKyAgICAnZHJjb3JuOyc6ICdcdTIzMWYnLAorICAgICdkcmNyb3A7JzogJ1x1MjMwYycsCisgICAgJ0RzY3I7JzogJ1xVMDAwMWQ0OWYnLAorICAgICdkc2NyOyc6ICdcVTAwMDFkNGI5JywKKyAgICAnRFNjeTsnOiAnXHUwNDA1JywKKyAgICAnZHNjeTsnOiAnXHUwNDU1JywKKyAgICAnZHNvbDsnOiAnXHUyOWY2JywKKyAgICAnRHN0cm9rOyc6ICdcdTAxMTAnLAorICAgICdkc3Ryb2s7JzogJ1x1MDExMScsCisgICAgJ2R0ZG90Oyc6ICdcdTIyZjEnLAorICAgICdkdHJpOyc6ICdcdTI1YmYnLAorICAgICdkdHJpZjsnOiAnXHUyNWJlJywKKyAgICAnZHVhcnI7JzogJ1x1MjFmNScsCisgICAgJ2R1aGFyOyc6ICdcdTI5NmYnLAorICAgICdkd2FuZ2xlOyc6ICdcdTI5YTYnLAorICAgICdEWmN5Oyc6ICdcdTA0MGYnLAorICAgICdkemN5Oyc6ICdcdTA0NWYnLAorICAgICdkemlncmFycjsnOiAnXHUyN2ZmJywKKyAgICAnRWFjdXRlOyc6ICdceGM5JywKKyAgICAnRWFjdXRlJzogJ1x4YzknLAorICAgICdlYWN1dGU7JzogJ1x4ZTknLAorICAgICdlYWN1dGUnOiAnXHhlOScsCisgICAgJ2Vhc3RlcjsnOiAnXHUyYTZlJywKKyAgICAnRWNhcm9uOyc6ICdcdTAxMWEnLAorICAgICdlY2Fyb247JzogJ1x1MDExYicsCisgICAgJ2VjaXI7JzogJ1x1MjI1NicsCisgICAgJ0VjaXJjOyc6ICdceGNhJywKKyAgICAnRWNpcmMnOiAnXHhjYScsCisgICAgJ2VjaXJjOyc6ICdceGVhJywKKyAgICAnZWNpcmMnOiAnXHhlYScsCisgICAgJ2Vjb2xvbjsnOiAnXHUyMjU1JywKKyAgICAnRWN5Oyc6ICdcdTA0MmQnLAorICAgICdlY3k7JzogJ1x1MDQ0ZCcsCisgICAgJ2VERG90Oyc6ICdcdTJhNzcnLAorICAgICdFZG90Oyc6ICdcdTAxMTYnLAorICAgICdlRG90Oyc6ICdcdTIyNTEnLAorICAgICdlZG90Oyc6ICdcdTAxMTcnLAorICAgICdlZTsnOiAnXHUyMTQ3JywKKyAgICAnZWZEb3Q7JzogJ1x1MjI1MicsCisgICAgJ0VmcjsnOiAnXFUwMDAxZDUwOCcsCisgICAgJ2VmcjsnOiAnXFUwMDAxZDUyMicsCisgICAgJ2VnOyc6ICdcdTJhOWEnLAorICAgICdFZ3JhdmU7JzogJ1x4YzgnLAorICAgICdFZ3JhdmUnOiAnXHhjOCcsCisgICAgJ2VncmF2ZTsnOiAnXHhlOCcsCisgICAgJ2VncmF2ZSc6ICdceGU4JywKKyAgICAnZWdzOyc6ICdcdTJhOTYnLAorICAgICdlZ3Nkb3Q7JzogJ1x1MmE5OCcsCisgICAgJ2VsOyc6ICdcdTJhOTknLAorICAgICdFbGVtZW50Oyc6ICdcdTIyMDgnLAorICAgICdlbGludGVyczsnOiAnXHUyM2U3JywKKyAgICAnZWxsOyc6ICdcdTIxMTMnLAorICAgICdlbHM7JzogJ1x1MmE5NScsCisgICAgJ2Vsc2RvdDsnOiAnXHUyYTk3JywKKyAgICAnRW1hY3I7JzogJ1x1MDExMicsCisgICAgJ2VtYWNyOyc6ICdcdTAxMTMnLAorICAgICdlbXB0eTsnOiAnXHUyMjA1JywKKyAgICAnZW1wdHlzZXQ7JzogJ1x1MjIwNScsCisgICAgJ0VtcHR5U21hbGxTcXVhcmU7JzogJ1x1MjVmYicsCisgICAgJ2VtcHR5djsnOiAnXHUyMjA1JywKKyAgICAnRW1wdHlWZXJ5U21hbGxTcXVhcmU7JzogJ1x1MjVhYicsCisgICAgJ2Vtc3A7JzogJ1x1MjAwMycsCisgICAgJ2Vtc3AxMzsnOiAnXHUyMDA0JywKKyAgICAnZW1zcDE0Oyc6ICdcdTIwMDUnLAorICAgICdFTkc7JzogJ1x1MDE0YScsCisgICAgJ2VuZzsnOiAnXHUwMTRiJywKKyAgICAnZW5zcDsnOiAnXHUyMDAyJywKKyAgICAnRW9nb247JzogJ1x1MDExOCcsCisgICAgJ2VvZ29uOyc6ICdcdTAxMTknLAorICAgICdFb3BmOyc6ICdcVTAwMDFkNTNjJywKKyAgICAnZW9wZjsnOiAnXFUwMDAxZDU1NicsCisgICAgJ2VwYXI7JzogJ1x1MjJkNScsCisgICAgJ2VwYXJzbDsnOiAnXHUyOWUzJywKKyAgICAnZXBsdXM7JzogJ1x1MmE3MScsCisgICAgJ2Vwc2k7JzogJ1x1MDNiNScsCisgICAgJ0Vwc2lsb247JzogJ1x1MDM5NScsCisgICAgJ2Vwc2lsb247JzogJ1x1MDNiNScsCisgICAgJ2Vwc2l2Oyc6ICdcdTAzZjUnLAorICAgICdlcWNpcmM7JzogJ1x1MjI1NicsCisgICAgJ2VxY29sb247JzogJ1x1MjI1NScsCisgICAgJ2Vxc2ltOyc6ICdcdTIyNDInLAorICAgICdlcXNsYW50Z3RyOyc6ICdcdTJhOTYnLAorICAgICdlcXNsYW50bGVzczsnOiAnXHUyYTk1JywKKyAgICAnRXF1YWw7JzogJ1x1MmE3NScsCisgICAgJ2VxdWFsczsnOiAnPScsCisgICAgJ0VxdWFsVGlsZGU7JzogJ1x1MjI0MicsCisgICAgJ2VxdWVzdDsnOiAnXHUyMjVmJywKKyAgICAnRXF1aWxpYnJpdW07JzogJ1x1MjFjYycsCisgICAgJ2VxdWl2Oyc6ICdcdTIyNjEnLAorICAgICdlcXVpdkREOyc6ICdcdTJhNzgnLAorICAgICdlcXZwYXJzbDsnOiAnXHUyOWU1JywKKyAgICAnZXJhcnI7JzogJ1x1Mjk3MScsCisgICAgJ2VyRG90Oyc6ICdcdTIyNTMnLAorICAgICdFc2NyOyc6ICdcdTIxMzAnLAorICAgICdlc2NyOyc6ICdcdTIxMmYnLAorICAgICdlc2RvdDsnOiAnXHUyMjUwJywKKyAgICAnRXNpbTsnOiAnXHUyYTczJywKKyAgICAnZXNpbTsnOiAnXHUyMjQyJywKKyAgICAnRXRhOyc6ICdcdTAzOTcnLAorICAgICdldGE7JzogJ1x1MDNiNycsCisgICAgJ0VUSDsnOiAnXHhkMCcsCisgICAgJ0VUSCc6ICdceGQwJywKKyAgICAnZXRoOyc6ICdceGYwJywKKyAgICAnZXRoJzogJ1x4ZjAnLAorICAgICdFdW1sOyc6ICdceGNiJywKKyAgICAnRXVtbCc6ICdceGNiJywKKyAgICAnZXVtbDsnOiAnXHhlYicsCisgICAgJ2V1bWwnOiAnXHhlYicsCisgICAgJ2V1cm87JzogJ1x1MjBhYycsCisgICAgJ2V4Y2w7JzogJyEnLAorICAgICdleGlzdDsnOiAnXHUyMjAzJywKKyAgICAnRXhpc3RzOyc6ICdcdTIyMDMnLAorICAgICdleHBlY3RhdGlvbjsnOiAnXHUyMTMwJywKKyAgICAnRXhwb25lbnRpYWxFOyc6ICdcdTIxNDcnLAorICAgICdleHBvbmVudGlhbGU7JzogJ1x1MjE0NycsCisgICAgJ2ZhbGxpbmdkb3RzZXE7JzogJ1x1MjI1MicsCisgICAgJ0ZjeTsnOiAnXHUwNDI0JywKKyAgICAnZmN5Oyc6ICdcdTA0NDQnLAorICAgICdmZW1hbGU7JzogJ1x1MjY0MCcsCisgICAgJ2ZmaWxpZzsnOiAnXHVmYjAzJywKKyAgICAnZmZsaWc7JzogJ1x1ZmIwMCcsCisgICAgJ2ZmbGxpZzsnOiAnXHVmYjA0JywKKyAgICAnRmZyOyc6ICdcVTAwMDFkNTA5JywKKyAgICAnZmZyOyc6ICdcVTAwMDFkNTIzJywKKyAgICAnZmlsaWc7JzogJ1x1ZmIwMScsCisgICAgJ0ZpbGxlZFNtYWxsU3F1YXJlOyc6ICdcdTI1ZmMnLAorICAgICdGaWxsZWRWZXJ5U21hbGxTcXVhcmU7JzogJ1x1MjVhYScsCisgICAgJ2ZqbGlnOyc6ICdmaicsCisgICAgJ2ZsYXQ7JzogJ1x1MjY2ZCcsCisgICAgJ2ZsbGlnOyc6ICdcdWZiMDInLAorICAgICdmbHRuczsnOiAnXHUyNWIxJywKKyAgICAnZm5vZjsnOiAnXHUwMTkyJywKKyAgICAnRm9wZjsnOiAnXFUwMDAxZDUzZCcsCisgICAgJ2ZvcGY7JzogJ1xVMDAwMWQ1NTcnLAorICAgICdGb3JBbGw7JzogJ1x1MjIwMCcsCisgICAgJ2ZvcmFsbDsnOiAnXHUyMjAwJywKKyAgICAnZm9yazsnOiAnXHUyMmQ0JywKKyAgICAnZm9ya3Y7JzogJ1x1MmFkOScsCisgICAgJ0ZvdXJpZXJ0cmY7JzogJ1x1MjEzMScsCisgICAgJ2ZwYXJ0aW50Oyc6ICdcdTJhMGQnLAorICAgICdmcmFjMTI7JzogJ1x4YmQnLAorICAgICdmcmFjMTInOiAnXHhiZCcsCisgICAgJ2ZyYWMxMzsnOiAnXHUyMTUzJywKKyAgICAnZnJhYzE0Oyc6ICdceGJjJywKKyAgICAnZnJhYzE0JzogJ1x4YmMnLAorICAgICdmcmFjMTU7JzogJ1x1MjE1NScsCisgICAgJ2ZyYWMxNjsnOiAnXHUyMTU5JywKKyAgICAnZnJhYzE4Oyc6ICdcdTIxNWInLAorICAgICdmcmFjMjM7JzogJ1x1MjE1NCcsCisgICAgJ2ZyYWMyNTsnOiAnXHUyMTU2JywKKyAgICAnZnJhYzM0Oyc6ICdceGJlJywKKyAgICAnZnJhYzM0JzogJ1x4YmUnLAorICAgICdmcmFjMzU7JzogJ1x1MjE1NycsCisgICAgJ2ZyYWMzODsnOiAnXHUyMTVjJywKKyAgICAnZnJhYzQ1Oyc6ICdcdTIxNTgnLAorICAgICdmcmFjNTY7JzogJ1x1MjE1YScsCisgICAgJ2ZyYWM1ODsnOiAnXHUyMTVkJywKKyAgICAnZnJhYzc4Oyc6ICdcdTIxNWUnLAorICAgICdmcmFzbDsnOiAnXHUyMDQ0JywKKyAgICAnZnJvd247JzogJ1x1MjMyMicsCisgICAgJ0ZzY3I7JzogJ1x1MjEzMScsCisgICAgJ2ZzY3I7JzogJ1xVMDAwMWQ0YmInLAorICAgICdnYWN1dGU7JzogJ1x1MDFmNScsCisgICAgJ0dhbW1hOyc6ICdcdTAzOTMnLAorICAgICdnYW1tYTsnOiAnXHUwM2IzJywKKyAgICAnR2FtbWFkOyc6ICdcdTAzZGMnLAorICAgICdnYW1tYWQ7JzogJ1x1MDNkZCcsCisgICAgJ2dhcDsnOiAnXHUyYTg2JywKKyAgICAnR2JyZXZlOyc6ICdcdTAxMWUnLAorICAgICdnYnJldmU7JzogJ1x1MDExZicsCisgICAgJ0djZWRpbDsnOiAnXHUwMTIyJywKKyAgICAnR2NpcmM7JzogJ1x1MDExYycsCisgICAgJ2djaXJjOyc6ICdcdTAxMWQnLAorICAgICdHY3k7JzogJ1x1MDQxMycsCisgICAgJ2djeTsnOiAnXHUwNDMzJywKKyAgICAnR2RvdDsnOiAnXHUwMTIwJywKKyAgICAnZ2RvdDsnOiAnXHUwMTIxJywKKyAgICAnZ0U7JzogJ1x1MjI2NycsCisgICAgJ2dlOyc6ICdcdTIyNjUnLAorICAgICdnRWw7JzogJ1x1MmE4YycsCisgICAgJ2dlbDsnOiAnXHUyMmRiJywKKyAgICAnZ2VxOyc6ICdcdTIyNjUnLAorICAgICdnZXFxOyc6ICdcdTIyNjcnLAorICAgICdnZXFzbGFudDsnOiAnXHUyYTdlJywKKyAgICAnZ2VzOyc6ICdcdTJhN2UnLAorICAgICdnZXNjYzsnOiAnXHUyYWE5JywKKyAgICAnZ2VzZG90Oyc6ICdcdTJhODAnLAorICAgICdnZXNkb3RvOyc6ICdcdTJhODInLAorICAgICdnZXNkb3RvbDsnOiAnXHUyYTg0JywKKyAgICAnZ2VzbDsnOiAnXHUyMmRiXHVmZTAwJywKKyAgICAnZ2VzbGVzOyc6ICdcdTJhOTQnLAorICAgICdHZnI7JzogJ1xVMDAwMWQ1MGEnLAorICAgICdnZnI7JzogJ1xVMDAwMWQ1MjQnLAorICAgICdHZzsnOiAnXHUyMmQ5JywKKyAgICAnZ2c7JzogJ1x1MjI2YicsCisgICAgJ2dnZzsnOiAnXHUyMmQ5JywKKyAgICAnZ2ltZWw7JzogJ1x1MjEzNycsCisgICAgJ0dKY3k7JzogJ1x1MDQwMycsCisgICAgJ2dqY3k7JzogJ1x1MDQ1MycsCisgICAgJ2dsOyc6ICdcdTIyNzcnLAorICAgICdnbGE7JzogJ1x1MmFhNScsCisgICAgJ2dsRTsnOiAnXHUyYTkyJywKKyAgICAnZ2xqOyc6ICdcdTJhYTQnLAorICAgICdnbmFwOyc6ICdcdTJhOGEnLAorICAgICdnbmFwcHJveDsnOiAnXHUyYThhJywKKyAgICAnZ25FOyc6ICdcdTIyNjknLAorICAgICdnbmU7JzogJ1x1MmE4OCcsCisgICAgJ2duZXE7JzogJ1x1MmE4OCcsCisgICAgJ2duZXFxOyc6ICdcdTIyNjknLAorICAgICdnbnNpbTsnOiAnXHUyMmU3JywKKyAgICAnR29wZjsnOiAnXFUwMDAxZDUzZScsCisgICAgJ2dvcGY7JzogJ1xVMDAwMWQ1NTgnLAorICAgICdncmF2ZTsnOiAnYCcsCisgICAgJ0dyZWF0ZXJFcXVhbDsnOiAnXHUyMjY1JywKKyAgICAnR3JlYXRlckVxdWFsTGVzczsnOiAnXHUyMmRiJywKKyAgICAnR3JlYXRlckZ1bGxFcXVhbDsnOiAnXHUyMjY3JywKKyAgICAnR3JlYXRlckdyZWF0ZXI7JzogJ1x1MmFhMicsCisgICAgJ0dyZWF0ZXJMZXNzOyc6ICdcdTIyNzcnLAorICAgICdHcmVhdGVyU2xhbnRFcXVhbDsnOiAnXHUyYTdlJywKKyAgICAnR3JlYXRlclRpbGRlOyc6ICdcdTIyNzMnLAorICAgICdHc2NyOyc6ICdcVTAwMDFkNGEyJywKKyAgICAnZ3NjcjsnOiAnXHUyMTBhJywKKyAgICAnZ3NpbTsnOiAnXHUyMjczJywKKyAgICAnZ3NpbWU7JzogJ1x1MmE4ZScsCisgICAgJ2dzaW1sOyc6ICdcdTJhOTAnLAorICAgICdHVDsnOiAnPicsCisgICAgJ0dUJzogJz4nLAorICAgICdHdDsnOiAnXHUyMjZiJywKKyAgICAnZ3Q7JzogJz4nLAorICAgICdndCc6ICc+JywKKyAgICAnZ3RjYzsnOiAnXHUyYWE3JywKKyAgICAnZ3RjaXI7JzogJ1x1MmE3YScsCisgICAgJ2d0ZG90Oyc6ICdcdTIyZDcnLAorICAgICdndGxQYXI7JzogJ1x1Mjk5NScsCisgICAgJ2d0cXVlc3Q7JzogJ1x1MmE3YycsCisgICAgJ2d0cmFwcHJveDsnOiAnXHUyYTg2JywKKyAgICAnZ3RyYXJyOyc6ICdcdTI5NzgnLAorICAgICdndHJkb3Q7JzogJ1x1MjJkNycsCisgICAgJ2d0cmVxbGVzczsnOiAnXHUyMmRiJywKKyAgICAnZ3RyZXFxbGVzczsnOiAnXHUyYThjJywKKyAgICAnZ3RybGVzczsnOiAnXHUyMjc3JywKKyAgICAnZ3Ryc2ltOyc6ICdcdTIyNzMnLAorICAgICdndmVydG5lcXE7JzogJ1x1MjI2OVx1ZmUwMCcsCisgICAgJ2d2bkU7JzogJ1x1MjI2OVx1ZmUwMCcsCisgICAgJ0hhY2VrOyc6ICdcdTAyYzcnLAorICAgICdoYWlyc3A7JzogJ1x1MjAwYScsCisgICAgJ2hhbGY7JzogJ1x4YmQnLAorICAgICdoYW1pbHQ7JzogJ1x1MjEwYicsCisgICAgJ0hBUkRjeTsnOiAnXHUwNDJhJywKKyAgICAnaGFyZGN5Oyc6ICdcdTA0NGEnLAorICAgICdoQXJyOyc6ICdcdTIxZDQnLAorICAgICdoYXJyOyc6ICdcdTIxOTQnLAorICAgICdoYXJyY2lyOyc6ICdcdTI5NDgnLAorICAgICdoYXJydzsnOiAnXHUyMWFkJywKKyAgICAnSGF0Oyc6ICdeJywKKyAgICAnaGJhcjsnOiAnXHUyMTBmJywKKyAgICAnSGNpcmM7JzogJ1x1MDEyNCcsCisgICAgJ2hjaXJjOyc6ICdcdTAxMjUnLAorICAgICdoZWFydHM7JzogJ1x1MjY2NScsCisgICAgJ2hlYXJ0c3VpdDsnOiAnXHUyNjY1JywKKyAgICAnaGVsbGlwOyc6ICdcdTIwMjYnLAorICAgICdoZXJjb247JzogJ1x1MjJiOScsCisgICAgJ0hmcjsnOiAnXHUyMTBjJywKKyAgICAnaGZyOyc6ICdcVTAwMDFkNTI1JywKKyAgICAnSGlsYmVydFNwYWNlOyc6ICdcdTIxMGInLAorICAgICdoa3NlYXJvdzsnOiAnXHUyOTI1JywKKyAgICAnaGtzd2Fyb3c7JzogJ1x1MjkyNicsCisgICAgJ2hvYXJyOyc6ICdcdTIxZmYnLAorICAgICdob210aHQ7JzogJ1x1MjIzYicsCisgICAgJ2hvb2tsZWZ0YXJyb3c7JzogJ1x1MjFhOScsCisgICAgJ2hvb2tyaWdodGFycm93Oyc6ICdcdTIxYWEnLAorICAgICdIb3BmOyc6ICdcdTIxMGQnLAorICAgICdob3BmOyc6ICdcVTAwMDFkNTU5JywKKyAgICAnaG9yYmFyOyc6ICdcdTIwMTUnLAorICAgICdIb3Jpem9udGFsTGluZTsnOiAnXHUyNTAwJywKKyAgICAnSHNjcjsnOiAnXHUyMTBiJywKKyAgICAnaHNjcjsnOiAnXFUwMDAxZDRiZCcsCisgICAgJ2hzbGFzaDsnOiAnXHUyMTBmJywKKyAgICAnSHN0cm9rOyc6ICdcdTAxMjYnLAorICAgICdoc3Ryb2s7JzogJ1x1MDEyNycsCisgICAgJ0h1bXBEb3duSHVtcDsnOiAnXHUyMjRlJywKKyAgICAnSHVtcEVxdWFsOyc6ICdcdTIyNGYnLAorICAgICdoeWJ1bGw7JzogJ1x1MjA0MycsCisgICAgJ2h5cGhlbjsnOiAnXHUyMDEwJywKKyAgICAnSWFjdXRlOyc6ICdceGNkJywKKyAgICAnSWFjdXRlJzogJ1x4Y2QnLAorICAgICdpYWN1dGU7JzogJ1x4ZWQnLAorICAgICdpYWN1dGUnOiAnXHhlZCcsCisgICAgJ2ljOyc6ICdcdTIwNjMnLAorICAgICdJY2lyYzsnOiAnXHhjZScsCisgICAgJ0ljaXJjJzogJ1x4Y2UnLAorICAgICdpY2lyYzsnOiAnXHhlZScsCisgICAgJ2ljaXJjJzogJ1x4ZWUnLAorICAgICdJY3k7JzogJ1x1MDQxOCcsCisgICAgJ2ljeTsnOiAnXHUwNDM4JywKKyAgICAnSWRvdDsnOiAnXHUwMTMwJywKKyAgICAnSUVjeTsnOiAnXHUwNDE1JywKKyAgICAnaWVjeTsnOiAnXHUwNDM1JywKKyAgICAnaWV4Y2w7JzogJ1x4YTEnLAorICAgICdpZXhjbCc6ICdceGExJywKKyAgICAnaWZmOyc6ICdcdTIxZDQnLAorICAgICdJZnI7JzogJ1x1MjExMScsCisgICAgJ2lmcjsnOiAnXFUwMDAxZDUyNicsCisgICAgJ0lncmF2ZTsnOiAnXHhjYycsCisgICAgJ0lncmF2ZSc6ICdceGNjJywKKyAgICAnaWdyYXZlOyc6ICdceGVjJywKKyAgICAnaWdyYXZlJzogJ1x4ZWMnLAorICAgICdpaTsnOiAnXHUyMTQ4JywKKyAgICAnaWlpaW50Oyc6ICdcdTJhMGMnLAorICAgICdpaWludDsnOiAnXHUyMjJkJywKKyAgICAnaWluZmluOyc6ICdcdTI5ZGMnLAorICAgICdpaW90YTsnOiAnXHUyMTI5JywKKyAgICAnSUpsaWc7JzogJ1x1MDEzMicsCisgICAgJ2lqbGlnOyc6ICdcdTAxMzMnLAorICAgICdJbTsnOiAnXHUyMTExJywKKyAgICAnSW1hY3I7JzogJ1x1MDEyYScsCisgICAgJ2ltYWNyOyc6ICdcdTAxMmInLAorICAgICdpbWFnZTsnOiAnXHUyMTExJywKKyAgICAnSW1hZ2luYXJ5STsnOiAnXHUyMTQ4JywKKyAgICAnaW1hZ2xpbmU7JzogJ1x1MjExMCcsCisgICAgJ2ltYWdwYXJ0Oyc6ICdcdTIxMTEnLAorICAgICdpbWF0aDsnOiAnXHUwMTMxJywKKyAgICAnaW1vZjsnOiAnXHUyMmI3JywKKyAgICAnaW1wZWQ7JzogJ1x1MDFiNScsCisgICAgJ0ltcGxpZXM7JzogJ1x1MjFkMicsCisgICAgJ2luOyc6ICdcdTIyMDgnLAorICAgICdpbmNhcmU7JzogJ1x1MjEwNScsCisgICAgJ2luZmluOyc6ICdcdTIyMWUnLAorICAgICdpbmZpbnRpZTsnOiAnXHUyOWRkJywKKyAgICAnaW5vZG90Oyc6ICdcdTAxMzEnLAorICAgICdJbnQ7JzogJ1x1MjIyYycsCisgICAgJ2ludDsnOiAnXHUyMjJiJywKKyAgICAnaW50Y2FsOyc6ICdcdTIyYmEnLAorICAgICdpbnRlZ2VyczsnOiAnXHUyMTI0JywKKyAgICAnSW50ZWdyYWw7JzogJ1x1MjIyYicsCisgICAgJ2ludGVyY2FsOyc6ICdcdTIyYmEnLAorICAgICdJbnRlcnNlY3Rpb247JzogJ1x1MjJjMicsCisgICAgJ2ludGxhcmhrOyc6ICdcdTJhMTcnLAorICAgICdpbnRwcm9kOyc6ICdcdTJhM2MnLAorICAgICdJbnZpc2libGVDb21tYTsnOiAnXHUyMDYzJywKKyAgICAnSW52aXNpYmxlVGltZXM7JzogJ1x1MjA2MicsCisgICAgJ0lPY3k7JzogJ1x1MDQwMScsCisgICAgJ2lvY3k7JzogJ1x1MDQ1MScsCisgICAgJ0lvZ29uOyc6ICdcdTAxMmUnLAorICAgICdpb2dvbjsnOiAnXHUwMTJmJywKKyAgICAnSW9wZjsnOiAnXFUwMDAxZDU0MCcsCisgICAgJ2lvcGY7JzogJ1xVMDAwMWQ1NWEnLAorICAgICdJb3RhOyc6ICdcdTAzOTknLAorICAgICdpb3RhOyc6ICdcdTAzYjknLAorICAgICdpcHJvZDsnOiAnXHUyYTNjJywKKyAgICAnaXF1ZXN0Oyc6ICdceGJmJywKKyAgICAnaXF1ZXN0JzogJ1x4YmYnLAorICAgICdJc2NyOyc6ICdcdTIxMTAnLAorICAgICdpc2NyOyc6ICdcVTAwMDFkNGJlJywKKyAgICAnaXNpbjsnOiAnXHUyMjA4JywKKyAgICAnaXNpbmRvdDsnOiAnXHUyMmY1JywKKyAgICAnaXNpbkU7JzogJ1x1MjJmOScsCisgICAgJ2lzaW5zOyc6ICdcdTIyZjQnLAorICAgICdpc2luc3Y7JzogJ1x1MjJmMycsCisgICAgJ2lzaW52Oyc6ICdcdTIyMDgnLAorICAgICdpdDsnOiAnXHUyMDYyJywKKyAgICAnSXRpbGRlOyc6ICdcdTAxMjgnLAorICAgICdpdGlsZGU7JzogJ1x1MDEyOScsCisgICAgJ0l1a2N5Oyc6ICdcdTA0MDYnLAorICAgICdpdWtjeTsnOiAnXHUwNDU2JywKKyAgICAnSXVtbDsnOiAnXHhjZicsCisgICAgJ0l1bWwnOiAnXHhjZicsCisgICAgJ2l1bWw7JzogJ1x4ZWYnLAorICAgICdpdW1sJzogJ1x4ZWYnLAorICAgICdKY2lyYzsnOiAnXHUwMTM0JywKKyAgICAnamNpcmM7JzogJ1x1MDEzNScsCisgICAgJ0pjeTsnOiAnXHUwNDE5JywKKyAgICAnamN5Oyc6ICdcdTA0MzknLAorICAgICdKZnI7JzogJ1xVMDAwMWQ1MGQnLAorICAgICdqZnI7JzogJ1xVMDAwMWQ1MjcnLAorICAgICdqbWF0aDsnOiAnXHUwMjM3JywKKyAgICAnSm9wZjsnOiAnXFUwMDAxZDU0MScsCisgICAgJ2pvcGY7JzogJ1xVMDAwMWQ1NWInLAorICAgICdKc2NyOyc6ICdcVTAwMDFkNGE1JywKKyAgICAnanNjcjsnOiAnXFUwMDAxZDRiZicsCisgICAgJ0pzZXJjeTsnOiAnXHUwNDA4JywKKyAgICAnanNlcmN5Oyc6ICdcdTA0NTgnLAorICAgICdKdWtjeTsnOiAnXHUwNDA0JywKKyAgICAnanVrY3k7JzogJ1x1MDQ1NCcsCisgICAgJ0thcHBhOyc6ICdcdTAzOWEnLAorICAgICdrYXBwYTsnOiAnXHUwM2JhJywKKyAgICAna2FwcGF2Oyc6ICdcdTAzZjAnLAorICAgICdLY2VkaWw7JzogJ1x1MDEzNicsCisgICAgJ2tjZWRpbDsnOiAnXHUwMTM3JywKKyAgICAnS2N5Oyc6ICdcdTA0MWEnLAorICAgICdrY3k7JzogJ1x1MDQzYScsCisgICAgJ0tmcjsnOiAnXFUwMDAxZDUwZScsCisgICAgJ2tmcjsnOiAnXFUwMDAxZDUyOCcsCisgICAgJ2tncmVlbjsnOiAnXHUwMTM4JywKKyAgICAnS0hjeTsnOiAnXHUwNDI1JywKKyAgICAna2hjeTsnOiAnXHUwNDQ1JywKKyAgICAnS0pjeTsnOiAnXHUwNDBjJywKKyAgICAna2pjeTsnOiAnXHUwNDVjJywKKyAgICAnS29wZjsnOiAnXFUwMDAxZDU0MicsCisgICAgJ2tvcGY7JzogJ1xVMDAwMWQ1NWMnLAorICAgICdLc2NyOyc6ICdcVTAwMDFkNGE2JywKKyAgICAna3NjcjsnOiAnXFUwMDAxZDRjMCcsCisgICAgJ2xBYXJyOyc6ICdcdTIxZGEnLAorICAgICdMYWN1dGU7JzogJ1x1MDEzOScsCisgICAgJ2xhY3V0ZTsnOiAnXHUwMTNhJywKKyAgICAnbGFlbXB0eXY7JzogJ1x1MjliNCcsCisgICAgJ2xhZ3JhbjsnOiAnXHUyMTEyJywKKyAgICAnTGFtYmRhOyc6ICdcdTAzOWInLAorICAgICdsYW1iZGE7JzogJ1x1MDNiYicsCisgICAgJ0xhbmc7JzogJ1x1MjdlYScsCisgICAgJ2xhbmc7JzogJ1x1MjMyOScsCisgICAgJ2xhbmdkOyc6ICdcdTI5OTEnLAorICAgICdsYW5nbGU7JzogJ1x1MjMyOScsCisgICAgJ2xhcDsnOiAnXHUyYTg1JywKKyAgICAnTGFwbGFjZXRyZjsnOiAnXHUyMTEyJywKKyAgICAnbGFxdW87JzogJ1x4YWInLAorICAgICdsYXF1byc6ICdceGFiJywKKyAgICAnTGFycjsnOiAnXHUyMTllJywKKyAgICAnbEFycjsnOiAnXHUyMWQwJywKKyAgICAnbGFycjsnOiAnXHUyMTkwJywKKyAgICAnbGFycmI7JzogJ1x1MjFlNCcsCisgICAgJ2xhcnJiZnM7JzogJ1x1MjkxZicsCisgICAgJ2xhcnJmczsnOiAnXHUyOTFkJywKKyAgICAnbGFycmhrOyc6ICdcdTIxYTknLAorICAgICdsYXJybHA7JzogJ1x1MjFhYicsCisgICAgJ2xhcnJwbDsnOiAnXHUyOTM5JywKKyAgICAnbGFycnNpbTsnOiAnXHUyOTczJywKKyAgICAnbGFycnRsOyc6ICdcdTIxYTInLAorICAgICdsYXQ7JzogJ1x1MmFhYicsCisgICAgJ2xBdGFpbDsnOiAnXHUyOTFiJywKKyAgICAnbGF0YWlsOyc6ICdcdTI5MTknLAorICAgICdsYXRlOyc6ICdcdTJhYWQnLAorICAgICdsYXRlczsnOiAnXHUyYWFkXHVmZTAwJywKKyAgICAnbEJhcnI7JzogJ1x1MjkwZScsCisgICAgJ2xiYXJyOyc6ICdcdTI5MGMnLAorICAgICdsYmJyazsnOiAnXHUyNzcyJywKKyAgICAnbGJyYWNlOyc6ICd7JywKKyAgICAnbGJyYWNrOyc6ICdbJywKKyAgICAnbGJya2U7JzogJ1x1Mjk4YicsCisgICAgJ2xicmtzbGQ7JzogJ1x1Mjk4ZicsCisgICAgJ2xicmtzbHU7JzogJ1x1Mjk4ZCcsCisgICAgJ0xjYXJvbjsnOiAnXHUwMTNkJywKKyAgICAnbGNhcm9uOyc6ICdcdTAxM2UnLAorICAgICdMY2VkaWw7JzogJ1x1MDEzYicsCisgICAgJ2xjZWRpbDsnOiAnXHUwMTNjJywKKyAgICAnbGNlaWw7JzogJ1x1MjMwOCcsCisgICAgJ2xjdWI7JzogJ3snLAorICAgICdMY3k7JzogJ1x1MDQxYicsCisgICAgJ2xjeTsnOiAnXHUwNDNiJywKKyAgICAnbGRjYTsnOiAnXHUyOTM2JywKKyAgICAnbGRxdW87JzogJ1x1MjAxYycsCisgICAgJ2xkcXVvcjsnOiAnXHUyMDFlJywKKyAgICAnbGRyZGhhcjsnOiAnXHUyOTY3JywKKyAgICAnbGRydXNoYXI7JzogJ1x1Mjk0YicsCisgICAgJ2xkc2g7JzogJ1x1MjFiMicsCisgICAgJ2xFOyc6ICdcdTIyNjYnLAorICAgICdsZTsnOiAnXHUyMjY0JywKKyAgICAnTGVmdEFuZ2xlQnJhY2tldDsnOiAnXHUyMzI5JywKKyAgICAnTGVmdEFycm93Oyc6ICdcdTIxOTAnLAorICAgICdMZWZ0YXJyb3c7JzogJ1x1MjFkMCcsCisgICAgJ2xlZnRhcnJvdzsnOiAnXHUyMTkwJywKKyAgICAnTGVmdEFycm93QmFyOyc6ICdcdTIxZTQnLAorICAgICdMZWZ0QXJyb3dSaWdodEFycm93Oyc6ICdcdTIxYzYnLAorICAgICdsZWZ0YXJyb3d0YWlsOyc6ICdcdTIxYTInLAorICAgICdMZWZ0Q2VpbGluZzsnOiAnXHUyMzA4JywKKyAgICAnTGVmdERvdWJsZUJyYWNrZXQ7JzogJ1x1MjdlNicsCisgICAgJ0xlZnREb3duVGVlVmVjdG9yOyc6ICdcdTI5NjEnLAorICAgICdMZWZ0RG93blZlY3RvcjsnOiAnXHUyMWMzJywKKyAgICAnTGVmdERvd25WZWN0b3JCYXI7JzogJ1x1Mjk1OScsCisgICAgJ0xlZnRGbG9vcjsnOiAnXHUyMzBhJywKKyAgICAnbGVmdGhhcnBvb25kb3duOyc6ICdcdTIxYmQnLAorICAgICdsZWZ0aGFycG9vbnVwOyc6ICdcdTIxYmMnLAorICAgICdsZWZ0bGVmdGFycm93czsnOiAnXHUyMWM3JywKKyAgICAnTGVmdFJpZ2h0QXJyb3c7JzogJ1x1MjE5NCcsCisgICAgJ0xlZnRyaWdodGFycm93Oyc6ICdcdTIxZDQnLAorICAgICdsZWZ0cmlnaHRhcnJvdzsnOiAnXHUyMTk0JywKKyAgICAnbGVmdHJpZ2h0YXJyb3dzOyc6ICdcdTIxYzYnLAorICAgICdsZWZ0cmlnaHRoYXJwb29uczsnOiAnXHUyMWNiJywKKyAgICAnbGVmdHJpZ2h0c3F1aWdhcnJvdzsnOiAnXHUyMWFkJywKKyAgICAnTGVmdFJpZ2h0VmVjdG9yOyc6ICdcdTI5NGUnLAorICAgICdMZWZ0VGVlOyc6ICdcdTIyYTMnLAorICAgICdMZWZ0VGVlQXJyb3c7JzogJ1x1MjFhNCcsCisgICAgJ0xlZnRUZWVWZWN0b3I7JzogJ1x1Mjk1YScsCisgICAgJ2xlZnR0aHJlZXRpbWVzOyc6ICdcdTIyY2InLAorICAgICdMZWZ0VHJpYW5nbGU7JzogJ1x1MjJiMicsCisgICAgJ0xlZnRUcmlhbmdsZUJhcjsnOiAnXHUyOWNmJywKKyAgICAnTGVmdFRyaWFuZ2xlRXF1YWw7JzogJ1x1MjJiNCcsCisgICAgJ0xlZnRVcERvd25WZWN0b3I7JzogJ1x1Mjk1MScsCisgICAgJ0xlZnRVcFRlZVZlY3RvcjsnOiAnXHUyOTYwJywKKyAgICAnTGVmdFVwVmVjdG9yOyc6ICdcdTIxYmYnLAorICAgICdMZWZ0VXBWZWN0b3JCYXI7JzogJ1x1Mjk1OCcsCisgICAgJ0xlZnRWZWN0b3I7JzogJ1x1MjFiYycsCisgICAgJ0xlZnRWZWN0b3JCYXI7JzogJ1x1Mjk1MicsCisgICAgJ2xFZzsnOiAnXHUyYThiJywKKyAgICAnbGVnOyc6ICdcdTIyZGEnLAorICAgICdsZXE7JzogJ1x1MjI2NCcsCisgICAgJ2xlcXE7JzogJ1x1MjI2NicsCisgICAgJ2xlcXNsYW50Oyc6ICdcdTJhN2QnLAorICAgICdsZXM7JzogJ1x1MmE3ZCcsCisgICAgJ2xlc2NjOyc6ICdcdTJhYTgnLAorICAgICdsZXNkb3Q7JzogJ1x1MmE3ZicsCisgICAgJ2xlc2RvdG87JzogJ1x1MmE4MScsCisgICAgJ2xlc2RvdG9yOyc6ICdcdTJhODMnLAorICAgICdsZXNnOyc6ICdcdTIyZGFcdWZlMDAnLAorICAgICdsZXNnZXM7JzogJ1x1MmE5MycsCisgICAgJ2xlc3NhcHByb3g7JzogJ1x1MmE4NScsCisgICAgJ2xlc3Nkb3Q7JzogJ1x1MjJkNicsCisgICAgJ2xlc3NlcWd0cjsnOiAnXHUyMmRhJywKKyAgICAnbGVzc2VxcWd0cjsnOiAnXHUyYThiJywKKyAgICAnTGVzc0VxdWFsR3JlYXRlcjsnOiAnXHUyMmRhJywKKyAgICAnTGVzc0Z1bGxFcXVhbDsnOiAnXHUyMjY2JywKKyAgICAnTGVzc0dyZWF0ZXI7JzogJ1x1MjI3NicsCisgICAgJ2xlc3NndHI7JzogJ1x1MjI3NicsCisgICAgJ0xlc3NMZXNzOyc6ICdcdTJhYTEnLAorICAgICdsZXNzc2ltOyc6ICdcdTIyNzInLAorICAgICdMZXNzU2xhbnRFcXVhbDsnOiAnXHUyYTdkJywKKyAgICAnTGVzc1RpbGRlOyc6ICdcdTIyNzInLAorICAgICdsZmlzaHQ7JzogJ1x1Mjk3YycsCisgICAgJ2xmbG9vcjsnOiAnXHUyMzBhJywKKyAgICAnTGZyOyc6ICdcVTAwMDFkNTBmJywKKyAgICAnbGZyOyc6ICdcVTAwMDFkNTI5JywKKyAgICAnbGc7JzogJ1x1MjI3NicsCisgICAgJ2xnRTsnOiAnXHUyYTkxJywKKyAgICAnbEhhcjsnOiAnXHUyOTYyJywKKyAgICAnbGhhcmQ7JzogJ1x1MjFiZCcsCisgICAgJ2xoYXJ1Oyc6ICdcdTIxYmMnLAorICAgICdsaGFydWw7JzogJ1x1Mjk2YScsCisgICAgJ2xoYmxrOyc6ICdcdTI1ODQnLAorICAgICdMSmN5Oyc6ICdcdTA0MDknLAorICAgICdsamN5Oyc6ICdcdTA0NTknLAorICAgICdMbDsnOiAnXHUyMmQ4JywKKyAgICAnbGw7JzogJ1x1MjI2YScsCisgICAgJ2xsYXJyOyc6ICdcdTIxYzcnLAorICAgICdsbGNvcm5lcjsnOiAnXHUyMzFlJywKKyAgICAnTGxlZnRhcnJvdzsnOiAnXHUyMWRhJywKKyAgICAnbGxoYXJkOyc6ICdcdTI5NmInLAorICAgICdsbHRyaTsnOiAnXHUyNWZhJywKKyAgICAnTG1pZG90Oyc6ICdcdTAxM2YnLAorICAgICdsbWlkb3Q7JzogJ1x1MDE0MCcsCisgICAgJ2xtb3VzdDsnOiAnXHUyM2IwJywKKyAgICAnbG1vdXN0YWNoZTsnOiAnXHUyM2IwJywKKyAgICAnbG5hcDsnOiAnXHUyYTg5JywKKyAgICAnbG5hcHByb3g7JzogJ1x1MmE4OScsCisgICAgJ2xuRTsnOiAnXHUyMjY4JywKKyAgICAnbG5lOyc6ICdcdTJhODcnLAorICAgICdsbmVxOyc6ICdcdTJhODcnLAorICAgICdsbmVxcTsnOiAnXHUyMjY4JywKKyAgICAnbG5zaW07JzogJ1x1MjJlNicsCisgICAgJ2xvYW5nOyc6ICdcdTI3ZWMnLAorICAgICdsb2FycjsnOiAnXHUyMWZkJywKKyAgICAnbG9icms7JzogJ1x1MjdlNicsCisgICAgJ0xvbmdMZWZ0QXJyb3c7JzogJ1x1MjdmNScsCisgICAgJ0xvbmdsZWZ0YXJyb3c7JzogJ1x1MjdmOCcsCisgICAgJ2xvbmdsZWZ0YXJyb3c7JzogJ1x1MjdmNScsCisgICAgJ0xvbmdMZWZ0UmlnaHRBcnJvdzsnOiAnXHUyN2Y3JywKKyAgICAnTG9uZ2xlZnRyaWdodGFycm93Oyc6ICdcdTI3ZmEnLAorICAgICdsb25nbGVmdHJpZ2h0YXJyb3c7JzogJ1x1MjdmNycsCisgICAgJ2xvbmdtYXBzdG87JzogJ1x1MjdmYycsCisgICAgJ0xvbmdSaWdodEFycm93Oyc6ICdcdTI3ZjYnLAorICAgICdMb25ncmlnaHRhcnJvdzsnOiAnXHUyN2Y5JywKKyAgICAnbG9uZ3JpZ2h0YXJyb3c7JzogJ1x1MjdmNicsCisgICAgJ2xvb3BhcnJvd2xlZnQ7JzogJ1x1MjFhYicsCisgICAgJ2xvb3BhcnJvd3JpZ2h0Oyc6ICdcdTIxYWMnLAorICAgICdsb3BhcjsnOiAnXHUyOTg1JywKKyAgICAnTG9wZjsnOiAnXFUwMDAxZDU0MycsCisgICAgJ2xvcGY7JzogJ1xVMDAwMWQ1NWQnLAorICAgICdsb3BsdXM7JzogJ1x1MmEyZCcsCisgICAgJ2xvdGltZXM7JzogJ1x1MmEzNCcsCisgICAgJ2xvd2FzdDsnOiAnXHUyMjE3JywKKyAgICAnbG93YmFyOyc6ICdfJywKKyAgICAnTG93ZXJMZWZ0QXJyb3c7JzogJ1x1MjE5OScsCisgICAgJ0xvd2VyUmlnaHRBcnJvdzsnOiAnXHUyMTk4JywKKyAgICAnbG96Oyc6ICdcdTI1Y2EnLAorICAgICdsb3plbmdlOyc6ICdcdTI1Y2EnLAorICAgICdsb3pmOyc6ICdcdTI5ZWInLAorICAgICdscGFyOyc6ICcoJywKKyAgICAnbHBhcmx0Oyc6ICdcdTI5OTMnLAorICAgICdscmFycjsnOiAnXHUyMWM2JywKKyAgICAnbHJjb3JuZXI7JzogJ1x1MjMxZicsCisgICAgJ2xyaGFyOyc6ICdcdTIxY2InLAorICAgICdscmhhcmQ7JzogJ1x1Mjk2ZCcsCisgICAgJ2xybTsnOiAnXHUyMDBlJywKKyAgICAnbHJ0cmk7JzogJ1x1MjJiZicsCisgICAgJ2xzYXF1bzsnOiAnXHUyMDM5JywKKyAgICAnTHNjcjsnOiAnXHUyMTEyJywKKyAgICAnbHNjcjsnOiAnXFUwMDAxZDRjMScsCisgICAgJ0xzaDsnOiAnXHUyMWIwJywKKyAgICAnbHNoOyc6ICdcdTIxYjAnLAorICAgICdsc2ltOyc6ICdcdTIyNzInLAorICAgICdsc2ltZTsnOiAnXHUyYThkJywKKyAgICAnbHNpbWc7JzogJ1x1MmE4ZicsCisgICAgJ2xzcWI7JzogJ1snLAorICAgICdsc3F1bzsnOiAnXHUyMDE4JywKKyAgICAnbHNxdW9yOyc6ICdcdTIwMWEnLAorICAgICdMc3Ryb2s7JzogJ1x1MDE0MScsCisgICAgJ2xzdHJvazsnOiAnXHUwMTQyJywKKyAgICAnTFQ7JzogJzwnLAorICAgICdMVCc6ICc8JywKKyAgICAnTHQ7JzogJ1x1MjI2YScsCisgICAgJ2x0Oyc6ICc8JywKKyAgICAnbHQnOiAnPCcsCisgICAgJ2x0Y2M7JzogJ1x1MmFhNicsCisgICAgJ2x0Y2lyOyc6ICdcdTJhNzknLAorICAgICdsdGRvdDsnOiAnXHUyMmQ2JywKKyAgICAnbHRocmVlOyc6ICdcdTIyY2InLAorICAgICdsdGltZXM7JzogJ1x1MjJjOScsCisgICAgJ2x0bGFycjsnOiAnXHUyOTc2JywKKyAgICAnbHRxdWVzdDsnOiAnXHUyYTdiJywKKyAgICAnbHRyaTsnOiAnXHUyNWMzJywKKyAgICAnbHRyaWU7JzogJ1x1MjJiNCcsCisgICAgJ2x0cmlmOyc6ICdcdTI1YzInLAorICAgICdsdHJQYXI7JzogJ1x1Mjk5NicsCisgICAgJ2x1cmRzaGFyOyc6ICdcdTI5NGEnLAorICAgICdsdXJ1aGFyOyc6ICdcdTI5NjYnLAorICAgICdsdmVydG5lcXE7JzogJ1x1MjI2OFx1ZmUwMCcsCisgICAgJ2x2bkU7JzogJ1x1MjI2OFx1ZmUwMCcsCisgICAgJ21hY3I7JzogJ1x4YWYnLAorICAgICdtYWNyJzogJ1x4YWYnLAorICAgICdtYWxlOyc6ICdcdTI2NDInLAorICAgICdtYWx0Oyc6ICdcdTI3MjAnLAorICAgICdtYWx0ZXNlOyc6ICdcdTI3MjAnLAorICAgICdNYXA7JzogJ1x1MjkwNScsCisgICAgJ21hcDsnOiAnXHUyMWE2JywKKyAgICAnbWFwc3RvOyc6ICdcdTIxYTYnLAorICAgICdtYXBzdG9kb3duOyc6ICdcdTIxYTcnLAorICAgICdtYXBzdG9sZWZ0Oyc6ICdcdTIxYTQnLAorICAgICdtYXBzdG91cDsnOiAnXHUyMWE1JywKKyAgICAnbWFya2VyOyc6ICdcdTI1YWUnLAorICAgICdtY29tbWE7JzogJ1x1MmEyOScsCisgICAgJ01jeTsnOiAnXHUwNDFjJywKKyAgICAnbWN5Oyc6ICdcdTA0M2MnLAorICAgICdtZGFzaDsnOiAnXHUyMDE0JywKKyAgICAnbUREb3Q7JzogJ1x1MjIzYScsCisgICAgJ21lYXN1cmVkYW5nbGU7JzogJ1x1MjIyMScsCisgICAgJ01lZGl1bVNwYWNlOyc6ICdcdTIwNWYnLAorICAgICdNZWxsaW50cmY7JzogJ1x1MjEzMycsCisgICAgJ01mcjsnOiAnXFUwMDAxZDUxMCcsCisgICAgJ21mcjsnOiAnXFUwMDAxZDUyYScsCisgICAgJ21obzsnOiAnXHUyMTI3JywKKyAgICAnbWljcm87JzogJ1x4YjUnLAorICAgICdtaWNybyc6ICdceGI1JywKKyAgICAnbWlkOyc6ICdcdTIyMjMnLAorICAgICdtaWRhc3Q7JzogJyonLAorICAgICdtaWRjaXI7JzogJ1x1MmFmMCcsCisgICAgJ21pZGRvdDsnOiAnXHhiNycsCisgICAgJ21pZGRvdCc6ICdceGI3JywKKyAgICAnbWludXM7JzogJ1x1MjIxMicsCisgICAgJ21pbnVzYjsnOiAnXHUyMjlmJywKKyAgICAnbWludXNkOyc6ICdcdTIyMzgnLAorICAgICdtaW51c2R1Oyc6ICdcdTJhMmEnLAorICAgICdNaW51c1BsdXM7JzogJ1x1MjIxMycsCisgICAgJ21sY3A7JzogJ1x1MmFkYicsCisgICAgJ21sZHI7JzogJ1x1MjAyNicsCisgICAgJ21ucGx1czsnOiAnXHUyMjEzJywKKyAgICAnbW9kZWxzOyc6ICdcdTIyYTcnLAorICAgICdNb3BmOyc6ICdcVTAwMDFkNTQ0JywKKyAgICAnbW9wZjsnOiAnXFUwMDAxZDU1ZScsCisgICAgJ21wOyc6ICdcdTIyMTMnLAorICAgICdNc2NyOyc6ICdcdTIxMzMnLAorICAgICdtc2NyOyc6ICdcVTAwMDFkNGMyJywKKyAgICAnbXN0cG9zOyc6ICdcdTIyM2UnLAorICAgICdNdTsnOiAnXHUwMzljJywKKyAgICAnbXU7JzogJ1x1MDNiYycsCisgICAgJ211bHRpbWFwOyc6ICdcdTIyYjgnLAorICAgICdtdW1hcDsnOiAnXHUyMmI4JywKKyAgICAnbmFibGE7JzogJ1x1MjIwNycsCisgICAgJ05hY3V0ZTsnOiAnXHUwMTQzJywKKyAgICAnbmFjdXRlOyc6ICdcdTAxNDQnLAorICAgICduYW5nOyc6ICdcdTIyMjBcdTIwZDInLAorICAgICduYXA7JzogJ1x1MjI0OScsCisgICAgJ25hcEU7JzogJ1x1MmE3MFx1MDMzOCcsCisgICAgJ25hcGlkOyc6ICdcdTIyNGJcdTAzMzgnLAorICAgICduYXBvczsnOiAnXHUwMTQ5JywKKyAgICAnbmFwcHJveDsnOiAnXHUyMjQ5JywKKyAgICAnbmF0dXI7JzogJ1x1MjY2ZScsCisgICAgJ25hdHVyYWw7JzogJ1x1MjY2ZScsCisgICAgJ25hdHVyYWxzOyc6ICdcdTIxMTUnLAorICAgICduYnNwOyc6ICdceGEwJywKKyAgICAnbmJzcCc6ICdceGEwJywKKyAgICAnbmJ1bXA7JzogJ1x1MjI0ZVx1MDMzOCcsCisgICAgJ25idW1wZTsnOiAnXHUyMjRmXHUwMzM4JywKKyAgICAnbmNhcDsnOiAnXHUyYTQzJywKKyAgICAnTmNhcm9uOyc6ICdcdTAxNDcnLAorICAgICduY2Fyb247JzogJ1x1MDE0OCcsCisgICAgJ05jZWRpbDsnOiAnXHUwMTQ1JywKKyAgICAnbmNlZGlsOyc6ICdcdTAxNDYnLAorICAgICduY29uZzsnOiAnXHUyMjQ3JywKKyAgICAnbmNvbmdkb3Q7JzogJ1x1MmE2ZFx1MDMzOCcsCisgICAgJ25jdXA7JzogJ1x1MmE0MicsCisgICAgJ05jeTsnOiAnXHUwNDFkJywKKyAgICAnbmN5Oyc6ICdcdTA0M2QnLAorICAgICduZGFzaDsnOiAnXHUyMDEzJywKKyAgICAnbmU7JzogJ1x1MjI2MCcsCisgICAgJ25lYXJoazsnOiAnXHUyOTI0JywKKyAgICAnbmVBcnI7JzogJ1x1MjFkNycsCisgICAgJ25lYXJyOyc6ICdcdTIxOTcnLAorICAgICduZWFycm93Oyc6ICdcdTIxOTcnLAorICAgICduZWRvdDsnOiAnXHUyMjUwXHUwMzM4JywKKyAgICAnTmVnYXRpdmVNZWRpdW1TcGFjZTsnOiAnXHUyMDBiJywKKyAgICAnTmVnYXRpdmVUaGlja1NwYWNlOyc6ICdcdTIwMGInLAorICAgICdOZWdhdGl2ZVRoaW5TcGFjZTsnOiAnXHUyMDBiJywKKyAgICAnTmVnYXRpdmVWZXJ5VGhpblNwYWNlOyc6ICdcdTIwMGInLAorICAgICduZXF1aXY7JzogJ1x1MjI2MicsCisgICAgJ25lc2VhcjsnOiAnXHUyOTI4JywKKyAgICAnbmVzaW07JzogJ1x1MjI0Mlx1MDMzOCcsCisgICAgJ05lc3RlZEdyZWF0ZXJHcmVhdGVyOyc6ICdcdTIyNmInLAorICAgICdOZXN0ZWRMZXNzTGVzczsnOiAnXHUyMjZhJywKKyAgICAnTmV3TGluZTsnOiAnXHUyNDBhJywKKyAgICAnbmV4aXN0Oyc6ICdcdTIyMDQnLAorICAgICduZXhpc3RzOyc6ICdcdTIyMDQnLAorICAgICdOZnI7JzogJ1xVMDAwMWQ1MTEnLAorICAgICduZnI7JzogJ1xVMDAwMWQ1MmInLAorICAgICduZ0U7JzogJ1x1MjI2N1x1MDMzOCcsCisgICAgJ25nZTsnOiAnXHUyMjcxJywKKyAgICAnbmdlcTsnOiAnXHUyMjcxJywKKyAgICAnbmdlcXE7JzogJ1x1MjI2N1x1MDMzOCcsCisgICAgJ25nZXFzbGFudDsnOiAnXHUyYTdlXHUwMzM4JywKKyAgICAnbmdlczsnOiAnXHUyYTdlXHUwMzM4JywKKyAgICAnbkdnOyc6ICdcdTIyZDlcdTAzMzgnLAorICAgICduZ3NpbTsnOiAnXHUyMjc1JywKKyAgICAnbkd0Oyc6ICdcdTIyNmJcdTIwZDInLAorICAgICduZ3Q7JzogJ1x1MjI2ZicsCisgICAgJ25ndHI7JzogJ1x1MjI2ZicsCisgICAgJ25HdHY7JzogJ1x1MjI2Ylx1MDMzOCcsCisgICAgJ25oQXJyOyc6ICdcdTIxY2UnLAorICAgICduaGFycjsnOiAnXHUyMWFlJywKKyAgICAnbmhwYXI7JzogJ1x1MmFmMicsCisgICAgJ25pOyc6ICdcdTIyMGInLAorICAgICduaXM7JzogJ1x1MjJmYycsCisgICAgJ25pc2Q7JzogJ1x1MjJmYScsCisgICAgJ25pdjsnOiAnXHUyMjBiJywKKyAgICAnTkpjeTsnOiAnXHUwNDBhJywKKyAgICAnbmpjeTsnOiAnXHUwNDVhJywKKyAgICAnbmxBcnI7JzogJ1x1MjFjZCcsCisgICAgJ25sYXJyOyc6ICdcdTIxOWEnLAorICAgICdubGRyOyc6ICdcdTIwMjUnLAorICAgICdubEU7JzogJ1x1MjI2Nlx1MDMzOCcsCisgICAgJ25sZTsnOiAnXHUyMjcwJywKKyAgICAnbkxlZnRhcnJvdzsnOiAnXHUyMWNkJywKKyAgICAnbmxlZnRhcnJvdzsnOiAnXHUyMTlhJywKKyAgICAnbkxlZnRyaWdodGFycm93Oyc6ICdcdTIxY2UnLAorICAgICdubGVmdHJpZ2h0YXJyb3c7JzogJ1x1MjFhZScsCisgICAgJ25sZXE7JzogJ1x1MjI3MCcsCisgICAgJ25sZXFxOyc6ICdcdTIyNjZcdTAzMzgnLAorICAgICdubGVxc2xhbnQ7JzogJ1x1MmE3ZFx1MDMzOCcsCisgICAgJ25sZXM7JzogJ1x1MmE3ZFx1MDMzOCcsCisgICAgJ25sZXNzOyc6ICdcdTIyNmUnLAorICAgICduTGw7JzogJ1x1MjJkOFx1MDMzOCcsCisgICAgJ25sc2ltOyc6ICdcdTIyNzQnLAorICAgICduTHQ7JzogJ1x1MjI2YVx1MjBkMicsCisgICAgJ25sdDsnOiAnXHUyMjZlJywKKyAgICAnbmx0cmk7JzogJ1x1MjJlYScsCisgICAgJ25sdHJpZTsnOiAnXHUyMmVjJywKKyAgICAnbkx0djsnOiAnXHUyMjZhXHUwMzM4JywKKyAgICAnbm1pZDsnOiAnXHUyMjI0JywKKyAgICAnTm9CcmVhazsnOiAnXHUyMDYwJywKKyAgICAnTm9uQnJlYWtpbmdTcGFjZTsnOiAnXHhhMCcsCisgICAgJ05vcGY7JzogJ1x1MjExNScsCisgICAgJ25vcGY7JzogJ1xVMDAwMWQ1NWYnLAorICAgICdOb3Q7JzogJ1x1MmFlYycsCisgICAgJ25vdDsnOiAnXHhhYycsCisgICAgJ25vdCc6ICdceGFjJywKKyAgICAnTm90Q29uZ3J1ZW50Oyc6ICdcdTIyNjInLAorICAgICdOb3RDdXBDYXA7JzogJ1x1MjI2ZCcsCisgICAgJ05vdERvdWJsZVZlcnRpY2FsQmFyOyc6ICdcdTIyMjYnLAorICAgICdOb3RFbGVtZW50Oyc6ICdcdTIyMDknLAorICAgICdOb3RFcXVhbDsnOiAnXHUyMjYwJywKKyAgICAnTm90RXF1YWxUaWxkZTsnOiAnXHUyMjQyXHUwMzM4JywKKyAgICAnTm90RXhpc3RzOyc6ICdcdTIyMDQnLAorICAgICdOb3RHcmVhdGVyOyc6ICdcdTIyNmYnLAorICAgICdOb3RHcmVhdGVyRXF1YWw7JzogJ1x1MjI3MScsCisgICAgJ05vdEdyZWF0ZXJGdWxsRXF1YWw7JzogJ1x1MjI2N1x1MDMzOCcsCisgICAgJ05vdEdyZWF0ZXJHcmVhdGVyOyc6ICdcdTIyNmJcdTAzMzgnLAorICAgICdOb3RHcmVhdGVyTGVzczsnOiAnXHUyMjc5JywKKyAgICAnTm90R3JlYXRlclNsYW50RXF1YWw7JzogJ1x1MmE3ZVx1MDMzOCcsCisgICAgJ05vdEdyZWF0ZXJUaWxkZTsnOiAnXHUyMjc1JywKKyAgICAnTm90SHVtcERvd25IdW1wOyc6ICdcdTIyNGVcdTAzMzgnLAorICAgICdOb3RIdW1wRXF1YWw7JzogJ1x1MjI0Zlx1MDMzOCcsCisgICAgJ25vdGluOyc6ICdcdTIyMDknLAorICAgICdub3RpbmRvdDsnOiAnXHUyMmY1XHUwMzM4JywKKyAgICAnbm90aW5FOyc6ICdcdTIyZjlcdTAzMzgnLAorICAgICdub3RpbnZhOyc6ICdcdTIyMDknLAorICAgICdub3RpbnZiOyc6ICdcdTIyZjcnLAorICAgICdub3RpbnZjOyc6ICdcdTIyZjYnLAorICAgICdOb3RMZWZ0VHJpYW5nbGU7JzogJ1x1MjJlYScsCisgICAgJ05vdExlZnRUcmlhbmdsZUJhcjsnOiAnXHUyOWNmXHUwMzM4JywKKyAgICAnTm90TGVmdFRyaWFuZ2xlRXF1YWw7JzogJ1x1MjJlYycsCisgICAgJ05vdExlc3M7JzogJ1x1MjI2ZScsCisgICAgJ05vdExlc3NFcXVhbDsnOiAnXHUyMjcwJywKKyAgICAnTm90TGVzc0dyZWF0ZXI7JzogJ1x1MjI3OCcsCisgICAgJ05vdExlc3NMZXNzOyc6ICdcdTIyNmFcdTAzMzgnLAorICAgICdOb3RMZXNzU2xhbnRFcXVhbDsnOiAnXHUyYTdkXHUwMzM4JywKKyAgICAnTm90TGVzc1RpbGRlOyc6ICdcdTIyNzQnLAorICAgICdOb3ROZXN0ZWRHcmVhdGVyR3JlYXRlcjsnOiAnXHUyYWEyXHUwMzM4JywKKyAgICAnTm90TmVzdGVkTGVzc0xlc3M7JzogJ1x1MmFhMVx1MDMzOCcsCisgICAgJ25vdG5pOyc6ICdcdTIyMGMnLAorICAgICdub3RuaXZhOyc6ICdcdTIyMGMnLAorICAgICdub3RuaXZiOyc6ICdcdTIyZmUnLAorICAgICdub3RuaXZjOyc6ICdcdTIyZmQnLAorICAgICdOb3RQcmVjZWRlczsnOiAnXHUyMjgwJywKKyAgICAnTm90UHJlY2VkZXNFcXVhbDsnOiAnXHUyYWFmXHUwMzM4JywKKyAgICAnTm90UHJlY2VkZXNTbGFudEVxdWFsOyc6ICdcdTIyZTAnLAorICAgICdOb3RSZXZlcnNlRWxlbWVudDsnOiAnXHUyMjBjJywKKyAgICAnTm90UmlnaHRUcmlhbmdsZTsnOiAnXHUyMmViJywKKyAgICAnTm90UmlnaHRUcmlhbmdsZUJhcjsnOiAnXHUyOWQwXHUwMzM4JywKKyAgICAnTm90UmlnaHRUcmlhbmdsZUVxdWFsOyc6ICdcdTIyZWQnLAorICAgICdOb3RTcXVhcmVTdWJzZXQ7JzogJ1x1MjI4Zlx1MDMzOCcsCisgICAgJ05vdFNxdWFyZVN1YnNldEVxdWFsOyc6ICdcdTIyZTInLAorICAgICdOb3RTcXVhcmVTdXBlcnNldDsnOiAnXHUyMjkwXHUwMzM4JywKKyAgICAnTm90U3F1YXJlU3VwZXJzZXRFcXVhbDsnOiAnXHUyMmUzJywKKyAgICAnTm90U3Vic2V0Oyc6ICdcdTIyODJcdTIwZDInLAorICAgICdOb3RTdWJzZXRFcXVhbDsnOiAnXHUyMjg4JywKKyAgICAnTm90U3VjY2VlZHM7JzogJ1x1MjI4MScsCisgICAgJ05vdFN1Y2NlZWRzRXF1YWw7JzogJ1x1MmFiMFx1MDMzOCcsCisgICAgJ05vdFN1Y2NlZWRzU2xhbnRFcXVhbDsnOiAnXHUyMmUxJywKKyAgICAnTm90U3VjY2VlZHNUaWxkZTsnOiAnXHUyMjdmXHUwMzM4JywKKyAgICAnTm90U3VwZXJzZXQ7JzogJ1x1MjI4M1x1MjBkMicsCisgICAgJ05vdFN1cGVyc2V0RXF1YWw7JzogJ1x1MjI4OScsCisgICAgJ05vdFRpbGRlOyc6ICdcdTIyNDEnLAorICAgICdOb3RUaWxkZUVxdWFsOyc6ICdcdTIyNDQnLAorICAgICdOb3RUaWxkZUZ1bGxFcXVhbDsnOiAnXHUyMjQ3JywKKyAgICAnTm90VGlsZGVUaWxkZTsnOiAnXHUyMjQ5JywKKyAgICAnTm90VmVydGljYWxCYXI7JzogJ1x1MjIyNCcsCisgICAgJ25wYXI7JzogJ1x1MjIyNicsCisgICAgJ25wYXJhbGxlbDsnOiAnXHUyMjI2JywKKyAgICAnbnBhcnNsOyc6ICdcdTJhZmRcdTIwZTUnLAorICAgICducGFydDsnOiAnXHUyMjAyXHUwMzM4JywKKyAgICAnbnBvbGludDsnOiAnXHUyYTE0JywKKyAgICAnbnByOyc6ICdcdTIyODAnLAorICAgICducHJjdWU7JzogJ1x1MjJlMCcsCisgICAgJ25wcmU7JzogJ1x1MmFhZlx1MDMzOCcsCisgICAgJ25wcmVjOyc6ICdcdTIyODAnLAorICAgICducHJlY2VxOyc6ICdcdTJhYWZcdTAzMzgnLAorICAgICduckFycjsnOiAnXHUyMWNmJywKKyAgICAnbnJhcnI7JzogJ1x1MjE5YicsCisgICAgJ25yYXJyYzsnOiAnXHUyOTMzXHUwMzM4JywKKyAgICAnbnJhcnJ3Oyc6ICdcdTIxOWRcdTAzMzgnLAorICAgICduUmlnaHRhcnJvdzsnOiAnXHUyMWNmJywKKyAgICAnbnJpZ2h0YXJyb3c7JzogJ1x1MjE5YicsCisgICAgJ25ydHJpOyc6ICdcdTIyZWInLAorICAgICducnRyaWU7JzogJ1x1MjJlZCcsCisgICAgJ25zYzsnOiAnXHUyMjgxJywKKyAgICAnbnNjY3VlOyc6ICdcdTIyZTEnLAorICAgICduc2NlOyc6ICdcdTJhYjBcdTAzMzgnLAorICAgICdOc2NyOyc6ICdcVTAwMDFkNGE5JywKKyAgICAnbnNjcjsnOiAnXFUwMDAxZDRjMycsCisgICAgJ25zaG9ydG1pZDsnOiAnXHUyMjI0JywKKyAgICAnbnNob3J0cGFyYWxsZWw7JzogJ1x1MjIyNicsCisgICAgJ25zaW07JzogJ1x1MjI0MScsCisgICAgJ25zaW1lOyc6ICdcdTIyNDQnLAorICAgICduc2ltZXE7JzogJ1x1MjI0NCcsCisgICAgJ25zbWlkOyc6ICdcdTIyMjQnLAorICAgICduc3BhcjsnOiAnXHUyMjI2JywKKyAgICAnbnNxc3ViZTsnOiAnXHUyMmUyJywKKyAgICAnbnNxc3VwZTsnOiAnXHUyMmUzJywKKyAgICAnbnN1YjsnOiAnXHUyMjg0JywKKyAgICAnbnN1YkU7JzogJ1x1MmFjNVx1MDMzOCcsCisgICAgJ25zdWJlOyc6ICdcdTIyODgnLAorICAgICduc3Vic2V0Oyc6ICdcdTIyODJcdTIwZDInLAorICAgICduc3Vic2V0ZXE7JzogJ1x1MjI4OCcsCisgICAgJ25zdWJzZXRlcXE7JzogJ1x1MmFjNVx1MDMzOCcsCisgICAgJ25zdWNjOyc6ICdcdTIyODEnLAorICAgICduc3VjY2VxOyc6ICdcdTJhYjBcdTAzMzgnLAorICAgICduc3VwOyc6ICdcdTIyODUnLAorICAgICduc3VwRTsnOiAnXHUyYWM2XHUwMzM4JywKKyAgICAnbnN1cGU7JzogJ1x1MjI4OScsCisgICAgJ25zdXBzZXQ7JzogJ1x1MjI4M1x1MjBkMicsCisgICAgJ25zdXBzZXRlcTsnOiAnXHUyMjg5JywKKyAgICAnbnN1cHNldGVxcTsnOiAnXHUyYWM2XHUwMzM4JywKKyAgICAnbnRnbDsnOiAnXHUyMjc5JywKKyAgICAnTnRpbGRlOyc6ICdceGQxJywKKyAgICAnTnRpbGRlJzogJ1x4ZDEnLAorICAgICdudGlsZGU7JzogJ1x4ZjEnLAorICAgICdudGlsZGUnOiAnXHhmMScsCisgICAgJ250bGc7JzogJ1x1MjI3OCcsCisgICAgJ250cmlhbmdsZWxlZnQ7JzogJ1x1MjJlYScsCisgICAgJ250cmlhbmdsZWxlZnRlcTsnOiAnXHUyMmVjJywKKyAgICAnbnRyaWFuZ2xlcmlnaHQ7JzogJ1x1MjJlYicsCisgICAgJ250cmlhbmdsZXJpZ2h0ZXE7JzogJ1x1MjJlZCcsCisgICAgJ051Oyc6ICdcdTAzOWQnLAorICAgICdudTsnOiAnXHUwM2JkJywKKyAgICAnbnVtOyc6ICcjJywKKyAgICAnbnVtZXJvOyc6ICdcdTIxMTYnLAorICAgICdudW1zcDsnOiAnXHUyMDA3JywKKyAgICAnbnZhcDsnOiAnXHUyMjRkXHUyMGQyJywKKyAgICAnblZEYXNoOyc6ICdcdTIyYWYnLAorICAgICduVmRhc2g7JzogJ1x1MjJhZScsCisgICAgJ252RGFzaDsnOiAnXHUyMmFkJywKKyAgICAnbnZkYXNoOyc6ICdcdTIyYWMnLAorICAgICdudmdlOyc6ICdcdTIyNjVcdTIwZDInLAorICAgICdudmd0Oyc6ICc+XHUyMGQyJywKKyAgICAnbnZIYXJyOyc6ICdcdTI5MDQnLAorICAgICdudmluZmluOyc6ICdcdTI5ZGUnLAorICAgICdudmxBcnI7JzogJ1x1MjkwMicsCisgICAgJ252bGU7JzogJ1x1MjI2NFx1MjBkMicsCisgICAgJ252bHQ7JzogJzxcdTIwZDInLAorICAgICdudmx0cmllOyc6ICdcdTIyYjRcdTIwZDInLAorICAgICdudnJBcnI7JzogJ1x1MjkwMycsCisgICAgJ252cnRyaWU7JzogJ1x1MjJiNVx1MjBkMicsCisgICAgJ252c2ltOyc6ICdcdTIyM2NcdTIwZDInLAorICAgICdud2FyaGs7JzogJ1x1MjkyMycsCisgICAgJ253QXJyOyc6ICdcdTIxZDYnLAorICAgICdud2FycjsnOiAnXHUyMTk2JywKKyAgICAnbndhcnJvdzsnOiAnXHUyMTk2JywKKyAgICAnbnduZWFyOyc6ICdcdTI5MjcnLAorICAgICdPYWN1dGU7JzogJ1x4ZDMnLAorICAgICdPYWN1dGUnOiAnXHhkMycsCisgICAgJ29hY3V0ZTsnOiAnXHhmMycsCisgICAgJ29hY3V0ZSc6ICdceGYzJywKKyAgICAnb2FzdDsnOiAnXHUyMjliJywKKyAgICAnb2NpcjsnOiAnXHUyMjlhJywKKyAgICAnT2NpcmM7JzogJ1x4ZDQnLAorICAgICdPY2lyYyc6ICdceGQ0JywKKyAgICAnb2NpcmM7JzogJ1x4ZjQnLAorICAgICdvY2lyYyc6ICdceGY0JywKKyAgICAnT2N5Oyc6ICdcdTA0MWUnLAorICAgICdvY3k7JzogJ1x1MDQzZScsCisgICAgJ29kYXNoOyc6ICdcdTIyOWQnLAorICAgICdPZGJsYWM7JzogJ1x1MDE1MCcsCisgICAgJ29kYmxhYzsnOiAnXHUwMTUxJywKKyAgICAnb2RpdjsnOiAnXHUyYTM4JywKKyAgICAnb2RvdDsnOiAnXHUyMjk5JywKKyAgICAnb2Rzb2xkOyc6ICdcdTI5YmMnLAorICAgICdPRWxpZzsnOiAnXHUwMTUyJywKKyAgICAnb2VsaWc7JzogJ1x1MDE1MycsCisgICAgJ29mY2lyOyc6ICdcdTI5YmYnLAorICAgICdPZnI7JzogJ1xVMDAwMWQ1MTInLAorICAgICdvZnI7JzogJ1xVMDAwMWQ1MmMnLAorICAgICdvZ29uOyc6ICdcdTAyZGInLAorICAgICdPZ3JhdmU7JzogJ1x4ZDInLAorICAgICdPZ3JhdmUnOiAnXHhkMicsCisgICAgJ29ncmF2ZTsnOiAnXHhmMicsCisgICAgJ29ncmF2ZSc6ICdceGYyJywKKyAgICAnb2d0Oyc6ICdcdTI5YzEnLAorICAgICdvaGJhcjsnOiAnXHUyOWI1JywKKyAgICAnb2htOyc6ICdcdTAzYTknLAorICAgICdvaW50Oyc6ICdcdTIyMmUnLAorICAgICdvbGFycjsnOiAnXHUyMWJhJywKKyAgICAnb2xjaXI7JzogJ1x1MjliZScsCisgICAgJ29sY3Jvc3M7JzogJ1x1MjliYicsCisgICAgJ29saW5lOyc6ICdcdTIwM2UnLAorICAgICdvbHQ7JzogJ1x1MjljMCcsCisgICAgJ09tYWNyOyc6ICdcdTAxNGMnLAorICAgICdvbWFjcjsnOiAnXHUwMTRkJywKKyAgICAnT21lZ2E7JzogJ1x1MDNhOScsCisgICAgJ29tZWdhOyc6ICdcdTAzYzknLAorICAgICdPbWljcm9uOyc6ICdcdTAzOWYnLAorICAgICdvbWljcm9uOyc6ICdcdTAzYmYnLAorICAgICdvbWlkOyc6ICdcdTI5YjYnLAorICAgICdvbWludXM7JzogJ1x1MjI5NicsCisgICAgJ09vcGY7JzogJ1xVMDAwMWQ1NDYnLAorICAgICdvb3BmOyc6ICdcVTAwMDFkNTYwJywKKyAgICAnb3BhcjsnOiAnXHUyOWI3JywKKyAgICAnT3BlbkN1cmx5RG91YmxlUXVvdGU7JzogJ1x1MjAxYycsCisgICAgJ09wZW5DdXJseVF1b3RlOyc6ICdcdTIwMTgnLAorICAgICdvcGVycDsnOiAnXHUyOWI5JywKKyAgICAnb3BsdXM7JzogJ1x1MjI5NScsCisgICAgJ09yOyc6ICdcdTJhNTQnLAorICAgICdvcjsnOiAnXHUyMjI4JywKKyAgICAnb3JhcnI7JzogJ1x1MjFiYicsCisgICAgJ29yZDsnOiAnXHUyYTVkJywKKyAgICAnb3JkZXI7JzogJ1x1MjEzNCcsCisgICAgJ29yZGVyb2Y7JzogJ1x1MjEzNCcsCisgICAgJ29yZGY7JzogJ1x4YWEnLAorICAgICdvcmRmJzogJ1x4YWEnLAorICAgICdvcmRtOyc6ICdceGJhJywKKyAgICAnb3JkbSc6ICdceGJhJywKKyAgICAnb3JpZ29mOyc6ICdcdTIyYjYnLAorICAgICdvcm9yOyc6ICdcdTJhNTYnLAorICAgICdvcnNsb3BlOyc6ICdcdTJhNTcnLAorICAgICdvcnY7JzogJ1x1MmE1YicsCisgICAgJ29TOyc6ICdcdTI0YzgnLAorICAgICdPc2NyOyc6ICdcVTAwMDFkNGFhJywKKyAgICAnb3NjcjsnOiAnXHUyMTM0JywKKyAgICAnT3NsYXNoOyc6ICdceGQ4JywKKyAgICAnT3NsYXNoJzogJ1x4ZDgnLAorICAgICdvc2xhc2g7JzogJ1x4ZjgnLAorICAgICdvc2xhc2gnOiAnXHhmOCcsCisgICAgJ29zb2w7JzogJ1x1MjI5OCcsCisgICAgJ090aWxkZTsnOiAnXHhkNScsCisgICAgJ090aWxkZSc6ICdceGQ1JywKKyAgICAnb3RpbGRlOyc6ICdceGY1JywKKyAgICAnb3RpbGRlJzogJ1x4ZjUnLAorICAgICdPdGltZXM7JzogJ1x1MmEzNycsCisgICAgJ290aW1lczsnOiAnXHUyMjk3JywKKyAgICAnb3RpbWVzYXM7JzogJ1x1MmEzNicsCisgICAgJ091bWw7JzogJ1x4ZDYnLAorICAgICdPdW1sJzogJ1x4ZDYnLAorICAgICdvdW1sOyc6ICdceGY2JywKKyAgICAnb3VtbCc6ICdceGY2JywKKyAgICAnb3ZiYXI7JzogJ1x1MjMzZCcsCisgICAgJ092ZXJCYXI7JzogJ1x1MjAzZScsCisgICAgJ092ZXJCcmFjZTsnOiAnXHUyM2RlJywKKyAgICAnT3ZlckJyYWNrZXQ7JzogJ1x1MjNiNCcsCisgICAgJ092ZXJQYXJlbnRoZXNpczsnOiAnXHUyM2RjJywKKyAgICAncGFyOyc6ICdcdTIyMjUnLAorICAgICdwYXJhOyc6ICdceGI2JywKKyAgICAncGFyYSc6ICdceGI2JywKKyAgICAncGFyYWxsZWw7JzogJ1x1MjIyNScsCisgICAgJ3BhcnNpbTsnOiAnXHUyYWYzJywKKyAgICAncGFyc2w7JzogJ1x1MmFmZCcsCisgICAgJ3BhcnQ7JzogJ1x1MjIwMicsCisgICAgJ1BhcnRpYWxEOyc6ICdcdTIyMDInLAorICAgICdQY3k7JzogJ1x1MDQxZicsCisgICAgJ3BjeTsnOiAnXHUwNDNmJywKKyAgICAncGVyY250Oyc6ICclJywKKyAgICAncGVyaW9kOyc6ICcuJywKKyAgICAncGVybWlsOyc6ICdcdTIwMzAnLAorICAgICdwZXJwOyc6ICdcdTIyYTUnLAorICAgICdwZXJ0ZW5rOyc6ICdcdTIwMzEnLAorICAgICdQZnI7JzogJ1xVMDAwMWQ1MTMnLAorICAgICdwZnI7JzogJ1xVMDAwMWQ1MmQnLAorICAgICdQaGk7JzogJ1x1MDNhNicsCisgICAgJ3BoaTsnOiAnXHUwM2M2JywKKyAgICAncGhpdjsnOiAnXHUwM2Q1JywKKyAgICAncGhtbWF0Oyc6ICdcdTIxMzMnLAorICAgICdwaG9uZTsnOiAnXHUyNjBlJywKKyAgICAnUGk7JzogJ1x1MDNhMCcsCisgICAgJ3BpOyc6ICdcdTAzYzAnLAorICAgICdwaXRjaGZvcms7JzogJ1x1MjJkNCcsCisgICAgJ3BpdjsnOiAnXHUwM2Q2JywKKyAgICAncGxhbmNrOyc6ICdcdTIxMGYnLAorICAgICdwbGFuY2toOyc6ICdcdTIxMGUnLAorICAgICdwbGFua3Y7JzogJ1x1MjEwZicsCisgICAgJ3BsdXM7JzogJysnLAorICAgICdwbHVzYWNpcjsnOiAnXHUyYTIzJywKKyAgICAncGx1c2I7JzogJ1x1MjI5ZScsCisgICAgJ3BsdXNjaXI7JzogJ1x1MmEyMicsCisgICAgJ3BsdXNkbzsnOiAnXHUyMjE0JywKKyAgICAncGx1c2R1Oyc6ICdcdTJhMjUnLAorICAgICdwbHVzZTsnOiAnXHUyYTcyJywKKyAgICAnUGx1c01pbnVzOyc6ICdceGIxJywKKyAgICAncGx1c21uOyc6ICdceGIxJywKKyAgICAncGx1c21uJzogJ1x4YjEnLAorICAgICdwbHVzc2ltOyc6ICdcdTJhMjYnLAorICAgICdwbHVzdHdvOyc6ICdcdTJhMjcnLAorICAgICdwbTsnOiAnXHhiMScsCisgICAgJ1BvaW5jYXJlcGxhbmU7JzogJ1x1MjEwYycsCisgICAgJ3BvaW50aW50Oyc6ICdcdTJhMTUnLAorICAgICdQb3BmOyc6ICdcdTIxMTknLAorICAgICdwb3BmOyc6ICdcVTAwMDFkNTYxJywKKyAgICAncG91bmQ7JzogJ1x4YTMnLAorICAgICdwb3VuZCc6ICdceGEzJywKKyAgICAnUHI7JzogJ1x1MmFiYicsCisgICAgJ3ByOyc6ICdcdTIyN2EnLAorICAgICdwcmFwOyc6ICdcdTJhYjcnLAorICAgICdwcmN1ZTsnOiAnXHUyMjdjJywKKyAgICAncHJFOyc6ICdcdTJhYjMnLAorICAgICdwcmU7JzogJ1x1MmFhZicsCisgICAgJ3ByZWM7JzogJ1x1MjI3YScsCisgICAgJ3ByZWNhcHByb3g7JzogJ1x1MmFiNycsCisgICAgJ3ByZWNjdXJseWVxOyc6ICdcdTIyN2MnLAorICAgICdQcmVjZWRlczsnOiAnXHUyMjdhJywKKyAgICAnUHJlY2VkZXNFcXVhbDsnOiAnXHUyYWFmJywKKyAgICAnUHJlY2VkZXNTbGFudEVxdWFsOyc6ICdcdTIyN2MnLAorICAgICdQcmVjZWRlc1RpbGRlOyc6ICdcdTIyN2UnLAorICAgICdwcmVjZXE7JzogJ1x1MmFhZicsCisgICAgJ3ByZWNuYXBwcm94Oyc6ICdcdTJhYjknLAorICAgICdwcmVjbmVxcTsnOiAnXHUyYWI1JywKKyAgICAncHJlY25zaW07JzogJ1x1MjJlOCcsCisgICAgJ3ByZWNzaW07JzogJ1x1MjI3ZScsCisgICAgJ1ByaW1lOyc6ICdcdTIwMzMnLAorICAgICdwcmltZTsnOiAnXHUyMDMyJywKKyAgICAncHJpbWVzOyc6ICdcdTIxMTknLAorICAgICdwcm5hcDsnOiAnXHUyYWI5JywKKyAgICAncHJuRTsnOiAnXHUyYWI1JywKKyAgICAncHJuc2ltOyc6ICdcdTIyZTgnLAorICAgICdwcm9kOyc6ICdcdTIyMGYnLAorICAgICdQcm9kdWN0Oyc6ICdcdTIyMGYnLAorICAgICdwcm9mYWxhcjsnOiAnXHUyMzJlJywKKyAgICAncHJvZmxpbmU7JzogJ1x1MjMxMicsCisgICAgJ3Byb2ZzdXJmOyc6ICdcdTIzMTMnLAorICAgICdwcm9wOyc6ICdcdTIyMWQnLAorICAgICdQcm9wb3J0aW9uOyc6ICdcdTIyMzcnLAorICAgICdQcm9wb3J0aW9uYWw7JzogJ1x1MjIxZCcsCisgICAgJ3Byb3B0bzsnOiAnXHUyMjFkJywKKyAgICAncHJzaW07JzogJ1x1MjI3ZScsCisgICAgJ3BydXJlbDsnOiAnXHUyMmIwJywKKyAgICAnUHNjcjsnOiAnXFUwMDAxZDRhYicsCisgICAgJ3BzY3I7JzogJ1xVMDAwMWQ0YzUnLAorICAgICdQc2k7JzogJ1x1MDNhOCcsCisgICAgJ3BzaTsnOiAnXHUwM2M4JywKKyAgICAncHVuY3NwOyc6ICdcdTIwMDgnLAorICAgICdRZnI7JzogJ1xVMDAwMWQ1MTQnLAorICAgICdxZnI7JzogJ1xVMDAwMWQ1MmUnLAorICAgICdxaW50Oyc6ICdcdTJhMGMnLAorICAgICdRb3BmOyc6ICdcdTIxMWEnLAorICAgICdxb3BmOyc6ICdcVTAwMDFkNTYyJywKKyAgICAncXByaW1lOyc6ICdcdTIwNTcnLAorICAgICdRc2NyOyc6ICdcVTAwMDFkNGFjJywKKyAgICAncXNjcjsnOiAnXFUwMDAxZDRjNicsCisgICAgJ3F1YXRlcm5pb25zOyc6ICdcdTIxMGQnLAorICAgICdxdWF0aW50Oyc6ICdcdTJhMTYnLAorICAgICdxdWVzdDsnOiAnPycsCisgICAgJ3F1ZXN0ZXE7JzogJ1x1MjI1ZicsCisgICAgJ1FVT1Q7JzogJyInLAorICAgICdRVU9UJzogJyInLAorICAgICdxdW90Oyc6ICciJywKKyAgICAncXVvdCc6ICciJywKKyAgICAnckFhcnI7JzogJ1x1MjFkYicsCisgICAgJ3JhY2U7JzogJ1x1MjIzZFx1MDMzMScsCisgICAgJ1JhY3V0ZTsnOiAnXHUwMTU0JywKKyAgICAncmFjdXRlOyc6ICdcdTAxNTUnLAorICAgICdyYWRpYzsnOiAnXHUyMjFhJywKKyAgICAncmFlbXB0eXY7JzogJ1x1MjliMycsCisgICAgJ1Jhbmc7JzogJ1x1MjdlYicsCisgICAgJ3Jhbmc7JzogJ1x1MjMyYScsCisgICAgJ3JhbmdkOyc6ICdcdTI5OTInLAorICAgICdyYW5nZTsnOiAnXHUyOWE1JywKKyAgICAncmFuZ2xlOyc6ICdcdTIzMmEnLAorICAgICdyYXF1bzsnOiAnXHhiYicsCisgICAgJ3JhcXVvJzogJ1x4YmInLAorICAgICdSYXJyOyc6ICdcdTIxYTAnLAorICAgICdyQXJyOyc6ICdcdTIxZDInLAorICAgICdyYXJyOyc6ICdcdTIxOTInLAorICAgICdyYXJyYXA7JzogJ1x1Mjk3NScsCisgICAgJ3JhcnJiOyc6ICdcdTIxZTUnLAorICAgICdyYXJyYmZzOyc6ICdcdTI5MjAnLAorICAgICdyYXJyYzsnOiAnXHUyOTMzJywKKyAgICAncmFycmZzOyc6ICdcdTI5MWUnLAorICAgICdyYXJyaGs7JzogJ1x1MjFhYScsCisgICAgJ3JhcnJscDsnOiAnXHUyMWFjJywKKyAgICAncmFycnBsOyc6ICdcdTI5NDUnLAorICAgICdyYXJyc2ltOyc6ICdcdTI5NzQnLAorICAgICdSYXJydGw7JzogJ1x1MjkxNicsCisgICAgJ3JhcnJ0bDsnOiAnXHUyMWEzJywKKyAgICAncmFycnc7JzogJ1x1MjE5ZCcsCisgICAgJ3JBdGFpbDsnOiAnXHUyOTFjJywKKyAgICAncmF0YWlsOyc6ICdcdTI5MWEnLAorICAgICdyYXRpbzsnOiAnXHUyMjM2JywKKyAgICAncmF0aW9uYWxzOyc6ICdcdTIxMWEnLAorICAgICdSQmFycjsnOiAnXHUyOTEwJywKKyAgICAnckJhcnI7JzogJ1x1MjkwZicsCisgICAgJ3JiYXJyOyc6ICdcdTI5MGQnLAorICAgICdyYmJyazsnOiAnXHUyNzczJywKKyAgICAncmJyYWNlOyc6ICd9JywKKyAgICAncmJyYWNrOyc6ICddJywKKyAgICAncmJya2U7JzogJ1x1Mjk4YycsCisgICAgJ3JicmtzbGQ7JzogJ1x1Mjk4ZScsCisgICAgJ3JicmtzbHU7JzogJ1x1Mjk5MCcsCisgICAgJ1JjYXJvbjsnOiAnXHUwMTU4JywKKyAgICAncmNhcm9uOyc6ICdcdTAxNTknLAorICAgICdSY2VkaWw7JzogJ1x1MDE1NicsCisgICAgJ3JjZWRpbDsnOiAnXHUwMTU3JywKKyAgICAncmNlaWw7JzogJ1x1MjMwOScsCisgICAgJ3JjdWI7JzogJ30nLAorICAgICdSY3k7JzogJ1x1MDQyMCcsCisgICAgJ3JjeTsnOiAnXHUwNDQwJywKKyAgICAncmRjYTsnOiAnXHUyOTM3JywKKyAgICAncmRsZGhhcjsnOiAnXHUyOTY5JywKKyAgICAncmRxdW87JzogJ1x1MjAxZCcsCisgICAgJ3JkcXVvcjsnOiAnXHUyMDFkJywKKyAgICAncmRzaDsnOiAnXHUyMWIzJywKKyAgICAnUmU7JzogJ1x1MjExYycsCisgICAgJ3JlYWw7JzogJ1x1MjExYycsCisgICAgJ3JlYWxpbmU7JzogJ1x1MjExYicsCisgICAgJ3JlYWxwYXJ0Oyc6ICdcdTIxMWMnLAorICAgICdyZWFsczsnOiAnXHUyMTFkJywKKyAgICAncmVjdDsnOiAnXHUyNWFkJywKKyAgICAnUkVHOyc6ICdceGFlJywKKyAgICAnUkVHJzogJ1x4YWUnLAorICAgICdyZWc7JzogJ1x4YWUnLAorICAgICdyZWcnOiAnXHhhZScsCisgICAgJ1JldmVyc2VFbGVtZW50Oyc6ICdcdTIyMGInLAorICAgICdSZXZlcnNlRXF1aWxpYnJpdW07JzogJ1x1MjFjYicsCisgICAgJ1JldmVyc2VVcEVxdWlsaWJyaXVtOyc6ICdcdTI5NmYnLAorICAgICdyZmlzaHQ7JzogJ1x1Mjk3ZCcsCisgICAgJ3JmbG9vcjsnOiAnXHUyMzBiJywKKyAgICAnUmZyOyc6ICdcdTIxMWMnLAorICAgICdyZnI7JzogJ1xVMDAwMWQ1MmYnLAorICAgICdySGFyOyc6ICdcdTI5NjQnLAorICAgICdyaGFyZDsnOiAnXHUyMWMxJywKKyAgICAncmhhcnU7JzogJ1x1MjFjMCcsCisgICAgJ3JoYXJ1bDsnOiAnXHUyOTZjJywKKyAgICAnUmhvOyc6ICdcdTAzYTEnLAorICAgICdyaG87JzogJ1x1MDNjMScsCisgICAgJ3Job3Y7JzogJ1x1MDNmMScsCisgICAgJ1JpZ2h0QW5nbGVCcmFja2V0Oyc6ICdcdTIzMmEnLAorICAgICdSaWdodEFycm93Oyc6ICdcdTIxOTInLAorICAgICdSaWdodGFycm93Oyc6ICdcdTIxZDInLAorICAgICdyaWdodGFycm93Oyc6ICdcdTIxOTInLAorICAgICdSaWdodEFycm93QmFyOyc6ICdcdTIxZTUnLAorICAgICdSaWdodEFycm93TGVmdEFycm93Oyc6ICdcdTIxYzQnLAorICAgICdyaWdodGFycm93dGFpbDsnOiAnXHUyMWEzJywKKyAgICAnUmlnaHRDZWlsaW5nOyc6ICdcdTIzMDknLAorICAgICdSaWdodERvdWJsZUJyYWNrZXQ7JzogJ1x1MjdlNycsCisgICAgJ1JpZ2h0RG93blRlZVZlY3RvcjsnOiAnXHUyOTVkJywKKyAgICAnUmlnaHREb3duVmVjdG9yOyc6ICdcdTIxYzInLAorICAgICdSaWdodERvd25WZWN0b3JCYXI7JzogJ1x1Mjk1NScsCisgICAgJ1JpZ2h0Rmxvb3I7JzogJ1x1MjMwYicsCisgICAgJ3JpZ2h0aGFycG9vbmRvd247JzogJ1x1MjFjMScsCisgICAgJ3JpZ2h0aGFycG9vbnVwOyc6ICdcdTIxYzAnLAorICAgICdyaWdodGxlZnRhcnJvd3M7JzogJ1x1MjFjNCcsCisgICAgJ3JpZ2h0bGVmdGhhcnBvb25zOyc6ICdcdTIxY2MnLAorICAgICdyaWdodHJpZ2h0YXJyb3dzOyc6ICdcdTIxYzknLAorICAgICdyaWdodHNxdWlnYXJyb3c7JzogJ1x1MjE5ZCcsCisgICAgJ1JpZ2h0VGVlOyc6ICdcdTIyYTInLAorICAgICdSaWdodFRlZUFycm93Oyc6ICdcdTIxYTYnLAorICAgICdSaWdodFRlZVZlY3RvcjsnOiAnXHUyOTViJywKKyAgICAncmlnaHR0aHJlZXRpbWVzOyc6ICdcdTIyY2MnLAorICAgICdSaWdodFRyaWFuZ2xlOyc6ICdcdTIyYjMnLAorICAgICdSaWdodFRyaWFuZ2xlQmFyOyc6ICdcdTI5ZDAnLAorICAgICdSaWdodFRyaWFuZ2xlRXF1YWw7JzogJ1x1MjJiNScsCisgICAgJ1JpZ2h0VXBEb3duVmVjdG9yOyc6ICdcdTI5NGYnLAorICAgICdSaWdodFVwVGVlVmVjdG9yOyc6ICdcdTI5NWMnLAorICAgICdSaWdodFVwVmVjdG9yOyc6ICdcdTIxYmUnLAorICAgICdSaWdodFVwVmVjdG9yQmFyOyc6ICdcdTI5NTQnLAorICAgICdSaWdodFZlY3RvcjsnOiAnXHUyMWMwJywKKyAgICAnUmlnaHRWZWN0b3JCYXI7JzogJ1x1Mjk1MycsCisgICAgJ3Jpbmc7JzogJ1x1MDJkYScsCisgICAgJ3Jpc2luZ2RvdHNlcTsnOiAnXHUyMjUzJywKKyAgICAncmxhcnI7JzogJ1x1MjFjNCcsCisgICAgJ3JsaGFyOyc6ICdcdTIxY2MnLAorICAgICdybG07JzogJ1x1MjAwZicsCisgICAgJ3Jtb3VzdDsnOiAnXHUyM2IxJywKKyAgICAncm1vdXN0YWNoZTsnOiAnXHUyM2IxJywKKyAgICAncm5taWQ7JzogJ1x1MmFlZScsCisgICAgJ3JvYW5nOyc6ICdcdTI3ZWQnLAorICAgICdyb2FycjsnOiAnXHUyMWZlJywKKyAgICAncm9icms7JzogJ1x1MjdlNycsCisgICAgJ3JvcGFyOyc6ICdcdTI5ODYnLAorICAgICdSb3BmOyc6ICdcdTIxMWQnLAorICAgICdyb3BmOyc6ICdcVTAwMDFkNTYzJywKKyAgICAncm9wbHVzOyc6ICdcdTJhMmUnLAorICAgICdyb3RpbWVzOyc6ICdcdTJhMzUnLAorICAgICdSb3VuZEltcGxpZXM7JzogJ1x1Mjk3MCcsCisgICAgJ3JwYXI7JzogJyknLAorICAgICdycGFyZ3Q7JzogJ1x1Mjk5NCcsCisgICAgJ3JwcG9saW50Oyc6ICdcdTJhMTInLAorICAgICdycmFycjsnOiAnXHUyMWM5JywKKyAgICAnUnJpZ2h0YXJyb3c7JzogJ1x1MjFkYicsCisgICAgJ3JzYXF1bzsnOiAnXHUyMDNhJywKKyAgICAnUnNjcjsnOiAnXHUyMTFiJywKKyAgICAncnNjcjsnOiAnXFUwMDAxZDRjNycsCisgICAgJ1JzaDsnOiAnXHUyMWIxJywKKyAgICAncnNoOyc6ICdcdTIxYjEnLAorICAgICdyc3FiOyc6ICddJywKKyAgICAncnNxdW87JzogJ1x1MjAxOScsCisgICAgJ3JzcXVvcjsnOiAnXHUyMDE5JywKKyAgICAncnRocmVlOyc6ICdcdTIyY2MnLAorICAgICdydGltZXM7JzogJ1x1MjJjYScsCisgICAgJ3J0cmk7JzogJ1x1MjViOScsCisgICAgJ3J0cmllOyc6ICdcdTIyYjUnLAorICAgICdydHJpZjsnOiAnXHUyNWI4JywKKyAgICAncnRyaWx0cmk7JzogJ1x1MjljZScsCisgICAgJ1J1bGVEZWxheWVkOyc6ICdcdTI5ZjQnLAorICAgICdydWx1aGFyOyc6ICdcdTI5NjgnLAorICAgICdyeDsnOiAnXHUyMTFlJywKKyAgICAnU2FjdXRlOyc6ICdcdTAxNWEnLAorICAgICdzYWN1dGU7JzogJ1x1MDE1YicsCisgICAgJ3NicXVvOyc6ICdcdTIwMWEnLAorICAgICdTYzsnOiAnXHUyYWJjJywKKyAgICAnc2M7JzogJ1x1MjI3YicsCisgICAgJ3NjYXA7JzogJ1x1MmFiOCcsCisgICAgJ1NjYXJvbjsnOiAnXHUwMTYwJywKKyAgICAnc2Nhcm9uOyc6ICdcdTAxNjEnLAorICAgICdzY2N1ZTsnOiAnXHUyMjdkJywKKyAgICAnc2NFOyc6ICdcdTJhYjQnLAorICAgICdzY2U7JzogJ1x1MmFiMCcsCisgICAgJ1NjZWRpbDsnOiAnXHUwMTVlJywKKyAgICAnc2NlZGlsOyc6ICdcdTAxNWYnLAorICAgICdTY2lyYzsnOiAnXHUwMTVjJywKKyAgICAnc2NpcmM7JzogJ1x1MDE1ZCcsCisgICAgJ3NjbmFwOyc6ICdcdTJhYmEnLAorICAgICdzY25FOyc6ICdcdTJhYjYnLAorICAgICdzY25zaW07JzogJ1x1MjJlOScsCisgICAgJ3NjcG9saW50Oyc6ICdcdTJhMTMnLAorICAgICdzY3NpbTsnOiAnXHUyMjdmJywKKyAgICAnU2N5Oyc6ICdcdTA0MjEnLAorICAgICdzY3k7JzogJ1x1MDQ0MScsCisgICAgJ3Nkb3Q7JzogJ1x1MjJjNScsCisgICAgJ3Nkb3RiOyc6ICdcdTIyYTEnLAorICAgICdzZG90ZTsnOiAnXHUyYTY2JywKKyAgICAnc2VhcmhrOyc6ICdcdTI5MjUnLAorICAgICdzZUFycjsnOiAnXHUyMWQ4JywKKyAgICAnc2VhcnI7JzogJ1x1MjE5OCcsCisgICAgJ3NlYXJyb3c7JzogJ1x1MjE5OCcsCisgICAgJ3NlY3Q7JzogJ1x4YTcnLAorICAgICdzZWN0JzogJ1x4YTcnLAorICAgICdzZW1pOyc6ICc7JywKKyAgICAnc2Vzd2FyOyc6ICdcdTI5MjknLAorICAgICdzZXRtaW51czsnOiAnXHUyMjE2JywKKyAgICAnc2V0bW47JzogJ1x1MjIxNicsCisgICAgJ3NleHQ7JzogJ1x1MjczNicsCisgICAgJ1NmcjsnOiAnXFUwMDAxZDUxNicsCisgICAgJ3NmcjsnOiAnXFUwMDAxZDUzMCcsCisgICAgJ3Nmcm93bjsnOiAnXHUyMzIyJywKKyAgICAnc2hhcnA7JzogJ1x1MjY2ZicsCisgICAgJ1NIQ0hjeTsnOiAnXHUwNDI5JywKKyAgICAnc2hjaGN5Oyc6ICdcdTA0NDknLAorICAgICdTSGN5Oyc6ICdcdTA0MjgnLAorICAgICdzaGN5Oyc6ICdcdTA0NDgnLAorICAgICdTaG9ydERvd25BcnJvdzsnOiAnXHUyMTkzJywKKyAgICAnU2hvcnRMZWZ0QXJyb3c7JzogJ1x1MjE5MCcsCisgICAgJ3Nob3J0bWlkOyc6ICdcdTIyMjMnLAorICAgICdzaG9ydHBhcmFsbGVsOyc6ICdcdTIyMjUnLAorICAgICdTaG9ydFJpZ2h0QXJyb3c7JzogJ1x1MjE5MicsCisgICAgJ1Nob3J0VXBBcnJvdzsnOiAnXHUyMTkxJywKKyAgICAnc2h5Oyc6ICdceGFkJywKKyAgICAnc2h5JzogJ1x4YWQnLAorICAgICdTaWdtYTsnOiAnXHUwM2EzJywKKyAgICAnc2lnbWE7JzogJ1x1MDNjMycsCisgICAgJ3NpZ21hZjsnOiAnXHUwM2MyJywKKyAgICAnc2lnbWF2Oyc6ICdcdTAzYzInLAorICAgICdzaW07JzogJ1x1MjIzYycsCisgICAgJ3NpbWRvdDsnOiAnXHUyYTZhJywKKyAgICAnc2ltZTsnOiAnXHUyMjQzJywKKyAgICAnc2ltZXE7JzogJ1x1MjI0MycsCisgICAgJ3NpbWc7JzogJ1x1MmE5ZScsCisgICAgJ3NpbWdFOyc6ICdcdTJhYTAnLAorICAgICdzaW1sOyc6ICdcdTJhOWQnLAorICAgICdzaW1sRTsnOiAnXHUyYTlmJywKKyAgICAnc2ltbmU7JzogJ1x1MjI0NicsCisgICAgJ3NpbXBsdXM7JzogJ1x1MmEyNCcsCisgICAgJ3NpbXJhcnI7JzogJ1x1Mjk3MicsCisgICAgJ3NsYXJyOyc6ICdcdTIxOTAnLAorICAgICdTbWFsbENpcmNsZTsnOiAnXHUyMjE4JywKKyAgICAnc21hbGxzZXRtaW51czsnOiAnXHUyMjE2JywKKyAgICAnc21hc2hwOyc6ICdcdTJhMzMnLAorICAgICdzbWVwYXJzbDsnOiAnXHUyOWU0JywKKyAgICAnc21pZDsnOiAnXHUyMjIzJywKKyAgICAnc21pbGU7JzogJ1x1MjMyMycsCisgICAgJ3NtdDsnOiAnXHUyYWFhJywKKyAgICAnc210ZTsnOiAnXHUyYWFjJywKKyAgICAnc210ZXM7JzogJ1x1MmFhY1x1ZmUwMCcsCisgICAgJ1NPRlRjeTsnOiAnXHUwNDJjJywKKyAgICAnc29mdGN5Oyc6ICdcdTA0NGMnLAorICAgICdzb2w7JzogJy8nLAorICAgICdzb2xiOyc6ICdcdTI5YzQnLAorICAgICdzb2xiYXI7JzogJ1x1MjMzZicsCisgICAgJ1NvcGY7JzogJ1xVMDAwMWQ1NGEnLAorICAgICdzb3BmOyc6ICdcVTAwMDFkNTY0JywKKyAgICAnc3BhZGVzOyc6ICdcdTI2NjAnLAorICAgICdzcGFkZXN1aXQ7JzogJ1x1MjY2MCcsCisgICAgJ3NwYXI7JzogJ1x1MjIyNScsCisgICAgJ3NxY2FwOyc6ICdcdTIyOTMnLAorICAgICdzcWNhcHM7JzogJ1x1MjI5M1x1ZmUwMCcsCisgICAgJ3NxY3VwOyc6ICdcdTIyOTQnLAorICAgICdzcWN1cHM7JzogJ1x1MjI5NFx1ZmUwMCcsCisgICAgJ1NxcnQ7JzogJ1x1MjIxYScsCisgICAgJ3Nxc3ViOyc6ICdcdTIyOGYnLAorICAgICdzcXN1YmU7JzogJ1x1MjI5MScsCisgICAgJ3Nxc3Vic2V0Oyc6ICdcdTIyOGYnLAorICAgICdzcXN1YnNldGVxOyc6ICdcdTIyOTEnLAorICAgICdzcXN1cDsnOiAnXHUyMjkwJywKKyAgICAnc3FzdXBlOyc6ICdcdTIyOTInLAorICAgICdzcXN1cHNldDsnOiAnXHUyMjkwJywKKyAgICAnc3FzdXBzZXRlcTsnOiAnXHUyMjkyJywKKyAgICAnc3F1Oyc6ICdcdTI1YTEnLAorICAgICdTcXVhcmU7JzogJ1x1MjVhMScsCisgICAgJ3NxdWFyZTsnOiAnXHUyNWExJywKKyAgICAnU3F1YXJlSW50ZXJzZWN0aW9uOyc6ICdcdTIyOTMnLAorICAgICdTcXVhcmVTdWJzZXQ7JzogJ1x1MjI4ZicsCisgICAgJ1NxdWFyZVN1YnNldEVxdWFsOyc6ICdcdTIyOTEnLAorICAgICdTcXVhcmVTdXBlcnNldDsnOiAnXHUyMjkwJywKKyAgICAnU3F1YXJlU3VwZXJzZXRFcXVhbDsnOiAnXHUyMjkyJywKKyAgICAnU3F1YXJlVW5pb247JzogJ1x1MjI5NCcsCisgICAgJ3NxdWFyZjsnOiAnXHUyNWFhJywKKyAgICAnc3F1ZjsnOiAnXHUyNWFhJywKKyAgICAnc3JhcnI7JzogJ1x1MjE5MicsCisgICAgJ1NzY3I7JzogJ1xVMDAwMWQ0YWUnLAorICAgICdzc2NyOyc6ICdcVTAwMDFkNGM4JywKKyAgICAnc3NldG1uOyc6ICdcdTIyMTYnLAorICAgICdzc21pbGU7JzogJ1x1MjMyMycsCisgICAgJ3NzdGFyZjsnOiAnXHUyMmM2JywKKyAgICAnU3RhcjsnOiAnXHUyMmM2JywKKyAgICAnc3RhcjsnOiAnXHUyNjA2JywKKyAgICAnc3RhcmY7JzogJ1x1MjYwNScsCisgICAgJ3N0cmFpZ2h0ZXBzaWxvbjsnOiAnXHUwM2Y1JywKKyAgICAnc3RyYWlnaHRwaGk7JzogJ1x1MDNkNScsCisgICAgJ3N0cm5zOyc6ICdceGFmJywKKyAgICAnU3ViOyc6ICdcdTIyZDAnLAorICAgICdzdWI7JzogJ1x1MjI4MicsCisgICAgJ3N1YmRvdDsnOiAnXHUyYWJkJywKKyAgICAnc3ViRTsnOiAnXHUyYWM1JywKKyAgICAnc3ViZTsnOiAnXHUyMjg2JywKKyAgICAnc3ViZWRvdDsnOiAnXHUyYWMzJywKKyAgICAnc3VibXVsdDsnOiAnXHUyYWMxJywKKyAgICAnc3VibkU7JzogJ1x1MmFjYicsCisgICAgJ3N1Ym5lOyc6ICdcdTIyOGEnLAorICAgICdzdWJwbHVzOyc6ICdcdTJhYmYnLAorICAgICdzdWJyYXJyOyc6ICdcdTI5NzknLAorICAgICdTdWJzZXQ7JzogJ1x1MjJkMCcsCisgICAgJ3N1YnNldDsnOiAnXHUyMjgyJywKKyAgICAnc3Vic2V0ZXE7JzogJ1x1MjI4NicsCisgICAgJ3N1YnNldGVxcTsnOiAnXHUyYWM1JywKKyAgICAnU3Vic2V0RXF1YWw7JzogJ1x1MjI4NicsCisgICAgJ3N1YnNldG5lcTsnOiAnXHUyMjhhJywKKyAgICAnc3Vic2V0bmVxcTsnOiAnXHUyYWNiJywKKyAgICAnc3Vic2ltOyc6ICdcdTJhYzcnLAorICAgICdzdWJzdWI7JzogJ1x1MmFkNScsCisgICAgJ3N1YnN1cDsnOiAnXHUyYWQzJywKKyAgICAnc3VjYzsnOiAnXHUyMjdiJywKKyAgICAnc3VjY2FwcHJveDsnOiAnXHUyYWI4JywKKyAgICAnc3VjY2N1cmx5ZXE7JzogJ1x1MjI3ZCcsCisgICAgJ1N1Y2NlZWRzOyc6ICdcdTIyN2InLAorICAgICdTdWNjZWVkc0VxdWFsOyc6ICdcdTJhYjAnLAorICAgICdTdWNjZWVkc1NsYW50RXF1YWw7JzogJ1x1MjI3ZCcsCisgICAgJ1N1Y2NlZWRzVGlsZGU7JzogJ1x1MjI3ZicsCisgICAgJ3N1Y2NlcTsnOiAnXHUyYWIwJywKKyAgICAnc3VjY25hcHByb3g7JzogJ1x1MmFiYScsCisgICAgJ3N1Y2NuZXFxOyc6ICdcdTJhYjYnLAorICAgICdzdWNjbnNpbTsnOiAnXHUyMmU5JywKKyAgICAnc3VjY3NpbTsnOiAnXHUyMjdmJywKKyAgICAnU3VjaFRoYXQ7JzogJ1x1MjIwYicsCisgICAgJ1N1bTsnOiAnXHUyMjExJywKKyAgICAnc3VtOyc6ICdcdTIyMTEnLAorICAgICdzdW5nOyc6ICdcdTI2NmEnLAorICAgICdTdXA7JzogJ1x1MjJkMScsCisgICAgJ3N1cDsnOiAnXHUyMjgzJywKKyAgICAnc3VwMTsnOiAnXHhiOScsCisgICAgJ3N1cDEnOiAnXHhiOScsCisgICAgJ3N1cDI7JzogJ1x4YjInLAorICAgICdzdXAyJzogJ1x4YjInLAorICAgICdzdXAzOyc6ICdceGIzJywKKyAgICAnc3VwMyc6ICdceGIzJywKKyAgICAnc3VwZG90Oyc6ICdcdTJhYmUnLAorICAgICdzdXBkc3ViOyc6ICdcdTJhZDgnLAorICAgICdzdXBFOyc6ICdcdTJhYzYnLAorICAgICdzdXBlOyc6ICdcdTIyODcnLAorICAgICdzdXBlZG90Oyc6ICdcdTJhYzQnLAorICAgICdTdXBlcnNldDsnOiAnXHUyMjgzJywKKyAgICAnU3VwZXJzZXRFcXVhbDsnOiAnXHUyMjg3JywKKyAgICAnc3VwaHNvbDsnOiAnXHUyN2M5JywKKyAgICAnc3VwaHN1YjsnOiAnXHUyYWQ3JywKKyAgICAnc3VwbGFycjsnOiAnXHUyOTdiJywKKyAgICAnc3VwbXVsdDsnOiAnXHUyYWMyJywKKyAgICAnc3VwbkU7JzogJ1x1MmFjYycsCisgICAgJ3N1cG5lOyc6ICdcdTIyOGInLAorICAgICdzdXBwbHVzOyc6ICdcdTJhYzAnLAorICAgICdTdXBzZXQ7JzogJ1x1MjJkMScsCisgICAgJ3N1cHNldDsnOiAnXHUyMjgzJywKKyAgICAnc3Vwc2V0ZXE7JzogJ1x1MjI4NycsCisgICAgJ3N1cHNldGVxcTsnOiAnXHUyYWM2JywKKyAgICAnc3Vwc2V0bmVxOyc6ICdcdTIyOGInLAorICAgICdzdXBzZXRuZXFxOyc6ICdcdTJhY2MnLAorICAgICdzdXBzaW07JzogJ1x1MmFjOCcsCisgICAgJ3N1cHN1YjsnOiAnXHUyYWQ0JywKKyAgICAnc3Vwc3VwOyc6ICdcdTJhZDYnLAorICAgICdzd2FyaGs7JzogJ1x1MjkyNicsCisgICAgJ3N3QXJyOyc6ICdcdTIxZDknLAorICAgICdzd2FycjsnOiAnXHUyMTk5JywKKyAgICAnc3dhcnJvdzsnOiAnXHUyMTk5JywKKyAgICAnc3dud2FyOyc6ICdcdTI5MmEnLAorICAgICdzemxpZzsnOiAnXHhkZicsCisgICAgJ3N6bGlnJzogJ1x4ZGYnLAorICAgICdUYWI7JzogJ1x1MjQwOScsCisgICAgJ3RhcmdldDsnOiAnXHUyMzE2JywKKyAgICAnVGF1Oyc6ICdcdTAzYTQnLAorICAgICd0YXU7JzogJ1x1MDNjNCcsCisgICAgJ3Ricms7JzogJ1x1MjNiNCcsCisgICAgJ1RjYXJvbjsnOiAnXHUwMTY0JywKKyAgICAndGNhcm9uOyc6ICdcdTAxNjUnLAorICAgICdUY2VkaWw7JzogJ1x1MDE2MicsCisgICAgJ3RjZWRpbDsnOiAnXHUwMTYzJywKKyAgICAnVGN5Oyc6ICdcdTA0MjInLAorICAgICd0Y3k7JzogJ1x1MDQ0MicsCisgICAgJ3Rkb3Q7JzogJ1x1MjVjY1x1MjBkYicsCisgICAgJ3RlbHJlYzsnOiAnXHUyMzE1JywKKyAgICAnVGZyOyc6ICdcVTAwMDFkNTE3JywKKyAgICAndGZyOyc6ICdcVTAwMDFkNTMxJywKKyAgICAndGhlcmU0Oyc6ICdcdTIyMzQnLAorICAgICdUaGVyZWZvcmU7JzogJ1x1MjIzNCcsCisgICAgJ3RoZXJlZm9yZTsnOiAnXHUyMjM0JywKKyAgICAnVGhldGE7JzogJ1x1MDM5OCcsCisgICAgJ3RoZXRhOyc6ICdcdTAzYjgnLAorICAgICd0aGV0YXN5bTsnOiAnXHUwM2QxJywKKyAgICAndGhldGF2Oyc6ICdcdTAzZDEnLAorICAgICd0aGlja2FwcHJveDsnOiAnXHUyMjQ4JywKKyAgICAndGhpY2tzaW07JzogJ1x1MjIzYycsCisgICAgJ1RoaWNrU3BhY2U7JzogJ1x1MjA1Zlx1MjAwYScsCisgICAgJ3RoaW5zcDsnOiAnXHUyMDA5JywKKyAgICAnVGhpblNwYWNlOyc6ICdcdTIwMDknLAorICAgICd0aGthcDsnOiAnXHUyMjQ4JywKKyAgICAndGhrc2ltOyc6ICdcdTIyM2MnLAorICAgICdUSE9STjsnOiAnXHhkZScsCisgICAgJ1RIT1JOJzogJ1x4ZGUnLAorICAgICd0aG9ybjsnOiAnXHhmZScsCisgICAgJ3Rob3JuJzogJ1x4ZmUnLAorICAgICdUaWxkZTsnOiAnXHUyMjNjJywKKyAgICAndGlsZGU7JzogJ1x1MDJkYycsCisgICAgJ1RpbGRlRXF1YWw7JzogJ1x1MjI0MycsCisgICAgJ1RpbGRlRnVsbEVxdWFsOyc6ICdcdTIyNDUnLAorICAgICdUaWxkZVRpbGRlOyc6ICdcdTIyNDgnLAorICAgICd0aW1lczsnOiAnXHhkNycsCisgICAgJ3RpbWVzJzogJ1x4ZDcnLAorICAgICd0aW1lc2I7JzogJ1x1MjJhMCcsCisgICAgJ3RpbWVzYmFyOyc6ICdcdTJhMzEnLAorICAgICd0aW1lc2Q7JzogJ1x1MmEzMCcsCisgICAgJ3RpbnQ7JzogJ1x1MjIyZCcsCisgICAgJ3RvZWE7JzogJ1x1MjkyOCcsCisgICAgJ3RvcDsnOiAnXHUyMmE0JywKKyAgICAndG9wYm90Oyc6ICdcdTIzMzYnLAorICAgICd0b3BjaXI7JzogJ1x1MmFmMScsCisgICAgJ1RvcGY7JzogJ1xVMDAwMWQ1NGInLAorICAgICd0b3BmOyc6ICdcVTAwMDFkNTY1JywKKyAgICAndG9wZm9yazsnOiAnXHUyYWRhJywKKyAgICAndG9zYTsnOiAnXHUyOTI5JywKKyAgICAndHByaW1lOyc6ICdcdTIwMzQnLAorICAgICdUUkFERTsnOiAnXHUyMTIyJywKKyAgICAndHJhZGU7JzogJ1x1MjEyMicsCisgICAgJ3RyaWFuZ2xlOyc6ICdcdTI1YjUnLAorICAgICd0cmlhbmdsZWRvd247JzogJ1x1MjViZicsCisgICAgJ3RyaWFuZ2xlbGVmdDsnOiAnXHUyNWMzJywKKyAgICAndHJpYW5nbGVsZWZ0ZXE7JzogJ1x1MjJiNCcsCisgICAgJ3RyaWFuZ2xlcTsnOiAnXHUyMjVjJywKKyAgICAndHJpYW5nbGVyaWdodDsnOiAnXHUyNWI5JywKKyAgICAndHJpYW5nbGVyaWdodGVxOyc6ICdcdTIyYjUnLAorICAgICd0cmlkb3Q7JzogJ1x1MjVlYycsCisgICAgJ3RyaWU7JzogJ1x1MjI1YycsCisgICAgJ3RyaW1pbnVzOyc6ICdcdTJhM2EnLAorICAgICdUcmlwbGVEb3Q7JzogJ1x1MjVjY1x1MjBkYicsCisgICAgJ3RyaXBsdXM7JzogJ1x1MmEzOScsCisgICAgJ3RyaXNiOyc6ICdcdTI5Y2QnLAorICAgICd0cml0aW1lOyc6ICdcdTJhM2InLAorICAgICd0cnBleml1bTsnOiAnXHUyM2UyJywKKyAgICAnVHNjcjsnOiAnXFUwMDAxZDRhZicsCisgICAgJ3RzY3I7JzogJ1xVMDAwMWQ0YzknLAorICAgICdUU2N5Oyc6ICdcdTA0MjYnLAorICAgICd0c2N5Oyc6ICdcdTA0NDYnLAorICAgICdUU0hjeTsnOiAnXHUwNDBiJywKKyAgICAndHNoY3k7JzogJ1x1MDQ1YicsCisgICAgJ1RzdHJvazsnOiAnXHUwMTY2JywKKyAgICAndHN0cm9rOyc6ICdcdTAxNjcnLAorICAgICd0d2l4dDsnOiAnXHUyMjZjJywKKyAgICAndHdvaGVhZGxlZnRhcnJvdzsnOiAnXHUyMTllJywKKyAgICAndHdvaGVhZHJpZ2h0YXJyb3c7JzogJ1x1MjFhMCcsCisgICAgJ1VhY3V0ZTsnOiAnXHhkYScsCisgICAgJ1VhY3V0ZSc6ICdceGRhJywKKyAgICAndWFjdXRlOyc6ICdceGZhJywKKyAgICAndWFjdXRlJzogJ1x4ZmEnLAorICAgICdVYXJyOyc6ICdcdTIxOWYnLAorICAgICd1QXJyOyc6ICdcdTIxZDEnLAorICAgICd1YXJyOyc6ICdcdTIxOTEnLAorICAgICdVYXJyb2NpcjsnOiAnXHUyOTQ5JywKKyAgICAnVWJyY3k7JzogJ1x1MDQwZScsCisgICAgJ3VicmN5Oyc6ICdcdTA0NWUnLAorICAgICdVYnJldmU7JzogJ1x1MDE2YycsCisgICAgJ3VicmV2ZTsnOiAnXHUwMTZkJywKKyAgICAnVWNpcmM7JzogJ1x4ZGInLAorICAgICdVY2lyYyc6ICdceGRiJywKKyAgICAndWNpcmM7JzogJ1x4ZmInLAorICAgICd1Y2lyYyc6ICdceGZiJywKKyAgICAnVWN5Oyc6ICdcdTA0MjMnLAorICAgICd1Y3k7JzogJ1x1MDQ0MycsCisgICAgJ3VkYXJyOyc6ICdcdTIxYzUnLAorICAgICdVZGJsYWM7JzogJ1x1MDE3MCcsCisgICAgJ3VkYmxhYzsnOiAnXHUwMTcxJywKKyAgICAndWRoYXI7JzogJ1x1Mjk2ZScsCisgICAgJ3VmaXNodDsnOiAnXHUyOTdlJywKKyAgICAnVWZyOyc6ICdcVTAwMDFkNTE4JywKKyAgICAndWZyOyc6ICdcVTAwMDFkNTMyJywKKyAgICAnVWdyYXZlOyc6ICdceGQ5JywKKyAgICAnVWdyYXZlJzogJ1x4ZDknLAorICAgICd1Z3JhdmU7JzogJ1x4ZjknLAorICAgICd1Z3JhdmUnOiAnXHhmOScsCisgICAgJ3VIYXI7JzogJ1x1Mjk2MycsCisgICAgJ3VoYXJsOyc6ICdcdTIxYmYnLAorICAgICd1aGFycjsnOiAnXHUyMWJlJywKKyAgICAndWhibGs7JzogJ1x1MjU4MCcsCisgICAgJ3VsY29ybjsnOiAnXHUyMzFjJywKKyAgICAndWxjb3JuZXI7JzogJ1x1MjMxYycsCisgICAgJ3VsY3JvcDsnOiAnXHUyMzBmJywKKyAgICAndWx0cmk7JzogJ1x1MjVmOCcsCisgICAgJ1VtYWNyOyc6ICdcdTAxNmEnLAorICAgICd1bWFjcjsnOiAnXHUwMTZiJywKKyAgICAndW1sOyc6ICdceGE4JywKKyAgICAndW1sJzogJ1x4YTgnLAorICAgICdVbmRlckJhcjsnOiAnXycsCisgICAgJ1VuZGVyQnJhY2U7JzogJ1x1MjNkZicsCisgICAgJ1VuZGVyQnJhY2tldDsnOiAnXHUyM2I1JywKKyAgICAnVW5kZXJQYXJlbnRoZXNpczsnOiAnXHUyM2RkJywKKyAgICAnVW5pb247JzogJ1x1MjJjMycsCisgICAgJ1VuaW9uUGx1czsnOiAnXHUyMjhlJywKKyAgICAnVW9nb247JzogJ1x1MDE3MicsCisgICAgJ3VvZ29uOyc6ICdcdTAxNzMnLAorICAgICdVb3BmOyc6ICdcVTAwMDFkNTRjJywKKyAgICAndW9wZjsnOiAnXFUwMDAxZDU2NicsCisgICAgJ1VwQXJyb3c7JzogJ1x1MjE5MScsCisgICAgJ1VwYXJyb3c7JzogJ1x1MjFkMScsCisgICAgJ3VwYXJyb3c7JzogJ1x1MjE5MScsCisgICAgJ1VwQXJyb3dCYXI7JzogJ1x1MjkxMicsCisgICAgJ1VwQXJyb3dEb3duQXJyb3c7JzogJ1x1MjFjNScsCisgICAgJ1VwRG93bkFycm93Oyc6ICdcdTIxOTUnLAorICAgICdVcGRvd25hcnJvdzsnOiAnXHUyMWQ1JywKKyAgICAndXBkb3duYXJyb3c7JzogJ1x1MjE5NScsCisgICAgJ1VwRXF1aWxpYnJpdW07JzogJ1x1Mjk2ZScsCisgICAgJ3VwaGFycG9vbmxlZnQ7JzogJ1x1MjFiZicsCisgICAgJ3VwaGFycG9vbnJpZ2h0Oyc6ICdcdTIxYmUnLAorICAgICd1cGx1czsnOiAnXHUyMjhlJywKKyAgICAnVXBwZXJMZWZ0QXJyb3c7JzogJ1x1MjE5NicsCisgICAgJ1VwcGVyUmlnaHRBcnJvdzsnOiAnXHUyMTk3JywKKyAgICAnVXBzaTsnOiAnXHUwM2QyJywKKyAgICAndXBzaTsnOiAnXHUwM2M1JywKKyAgICAndXBzaWg7JzogJ1x1MDNkMicsCisgICAgJ1Vwc2lsb247JzogJ1x1MDNhNScsCisgICAgJ3Vwc2lsb247JzogJ1x1MDNjNScsCisgICAgJ1VwVGVlOyc6ICdcdTIyYTUnLAorICAgICdVcFRlZUFycm93Oyc6ICdcdTIxYTUnLAorICAgICd1cHVwYXJyb3dzOyc6ICdcdTIxYzgnLAorICAgICd1cmNvcm47JzogJ1x1MjMxZCcsCisgICAgJ3VyY29ybmVyOyc6ICdcdTIzMWQnLAorICAgICd1cmNyb3A7JzogJ1x1MjMwZScsCisgICAgJ1VyaW5nOyc6ICdcdTAxNmUnLAorICAgICd1cmluZzsnOiAnXHUwMTZmJywKKyAgICAndXJ0cmk7JzogJ1x1MjVmOScsCisgICAgJ1VzY3I7JzogJ1xVMDAwMWQ0YjAnLAorICAgICd1c2NyOyc6ICdcVTAwMDFkNGNhJywKKyAgICAndXRkb3Q7JzogJ1x1MjJmMCcsCisgICAgJ1V0aWxkZTsnOiAnXHUwMTY4JywKKyAgICAndXRpbGRlOyc6ICdcdTAxNjknLAorICAgICd1dHJpOyc6ICdcdTI1YjUnLAorICAgICd1dHJpZjsnOiAnXHUyNWI0JywKKyAgICAndXVhcnI7JzogJ1x1MjFjOCcsCisgICAgJ1V1bWw7JzogJ1x4ZGMnLAorICAgICdVdW1sJzogJ1x4ZGMnLAorICAgICd1dW1sOyc6ICdceGZjJywKKyAgICAndXVtbCc6ICdceGZjJywKKyAgICAndXdhbmdsZTsnOiAnXHUyOWE3JywKKyAgICAndmFuZ3J0Oyc6ICdcdTI5OWMnLAorICAgICd2YXJlcHNpbG9uOyc6ICdcdTAzZjUnLAorICAgICd2YXJrYXBwYTsnOiAnXHUwM2YwJywKKyAgICAndmFybm90aGluZzsnOiAnXHUyMjA1JywKKyAgICAndmFycGhpOyc6ICdcdTAzZDUnLAorICAgICd2YXJwaTsnOiAnXHUwM2Q2JywKKyAgICAndmFycHJvcHRvOyc6ICdcdTIyMWQnLAorICAgICd2QXJyOyc6ICdcdTIxZDUnLAorICAgICd2YXJyOyc6ICdcdTIxOTUnLAorICAgICd2YXJyaG87JzogJ1x1MDNmMScsCisgICAgJ3ZhcnNpZ21hOyc6ICdcdTAzYzInLAorICAgICd2YXJzdWJzZXRuZXE7JzogJ1x1MjI4YVx1ZmUwMCcsCisgICAgJ3ZhcnN1YnNldG5lcXE7JzogJ1x1MmFjYlx1ZmUwMCcsCisgICAgJ3ZhcnN1cHNldG5lcTsnOiAnXHUyMjhiXHVmZTAwJywKKyAgICAndmFyc3Vwc2V0bmVxcTsnOiAnXHUyYWNjXHVmZTAwJywKKyAgICAndmFydGhldGE7JzogJ1x1MDNkMScsCisgICAgJ3ZhcnRyaWFuZ2xlbGVmdDsnOiAnXHUyMmIyJywKKyAgICAndmFydHJpYW5nbGVyaWdodDsnOiAnXHUyMmIzJywKKyAgICAnVmJhcjsnOiAnXHUyYWViJywKKyAgICAndkJhcjsnOiAnXHUyYWU4JywKKyAgICAndkJhcnY7JzogJ1x1MmFlOScsCisgICAgJ1ZjeTsnOiAnXHUwNDEyJywKKyAgICAndmN5Oyc6ICdcdTA0MzInLAorICAgICdWRGFzaDsnOiAnXHUyMmFiJywKKyAgICAnVmRhc2g7JzogJ1x1MjJhOScsCisgICAgJ3ZEYXNoOyc6ICdcdTIyYTgnLAorICAgICd2ZGFzaDsnOiAnXHUyMmEyJywKKyAgICAnVmRhc2hsOyc6ICdcdTJhZTYnLAorICAgICdWZWU7JzogJ1x1MjJjMScsCisgICAgJ3ZlZTsnOiAnXHUyMjI4JywKKyAgICAndmVlYmFyOyc6ICdcdTIyYmInLAorICAgICd2ZWVlcTsnOiAnXHUyMjVhJywKKyAgICAndmVsbGlwOyc6ICdcdTIyZWUnLAorICAgICdWZXJiYXI7JzogJ1x1MjAxNicsCisgICAgJ3ZlcmJhcjsnOiAnfCcsCisgICAgJ1ZlcnQ7JzogJ1x1MjAxNicsCisgICAgJ3ZlcnQ7JzogJ3wnLAorICAgICdWZXJ0aWNhbEJhcjsnOiAnXHUyMjIzJywKKyAgICAnVmVydGljYWxMaW5lOyc6ICd8JywKKyAgICAnVmVydGljYWxTZXBhcmF0b3I7JzogJ1x1Mjc1OCcsCisgICAgJ1ZlcnRpY2FsVGlsZGU7JzogJ1x1MjI0MCcsCisgICAgJ1ZlcnlUaGluU3BhY2U7JzogJ1x1MjAwYScsCisgICAgJ1ZmcjsnOiAnXFUwMDAxZDUxOScsCisgICAgJ3ZmcjsnOiAnXFUwMDAxZDUzMycsCisgICAgJ3ZsdHJpOyc6ICdcdTIyYjInLAorICAgICd2bnN1YjsnOiAnXHUyMjgyXHUyMGQyJywKKyAgICAndm5zdXA7JzogJ1x1MjI4M1x1MjBkMicsCisgICAgJ1ZvcGY7JzogJ1xVMDAwMWQ1NGQnLAorICAgICd2b3BmOyc6ICdcVTAwMDFkNTY3JywKKyAgICAndnByb3A7JzogJ1x1MjIxZCcsCisgICAgJ3ZydHJpOyc6ICdcdTIyYjMnLAorICAgICdWc2NyOyc6ICdcVTAwMDFkNGIxJywKKyAgICAndnNjcjsnOiAnXFUwMDAxZDRjYicsCisgICAgJ3ZzdWJuRTsnOiAnXHUyYWNiXHVmZTAwJywKKyAgICAndnN1Ym5lOyc6ICdcdTIyOGFcdWZlMDAnLAorICAgICd2c3VwbkU7JzogJ1x1MmFjY1x1ZmUwMCcsCisgICAgJ3ZzdXBuZTsnOiAnXHUyMjhiXHVmZTAwJywKKyAgICAnVnZkYXNoOyc6ICdcdTIyYWEnLAorICAgICd2emlnemFnOyc6ICdcdTI5OWEnLAorICAgICdXY2lyYzsnOiAnXHUwMTc0JywKKyAgICAnd2NpcmM7JzogJ1x1MDE3NScsCisgICAgJ3dlZGJhcjsnOiAnXHUyYTVmJywKKyAgICAnV2VkZ2U7JzogJ1x1MjJjMCcsCisgICAgJ3dlZGdlOyc6ICdcdTIyMjcnLAorICAgICd3ZWRnZXE7JzogJ1x1MjI1OScsCisgICAgJ3dlaWVycDsnOiAnXHUyMTE4JywKKyAgICAnV2ZyOyc6ICdcVTAwMDFkNTFhJywKKyAgICAnd2ZyOyc6ICdcVTAwMDFkNTM0JywKKyAgICAnV29wZjsnOiAnXFUwMDAxZDU0ZScsCisgICAgJ3dvcGY7JzogJ1xVMDAwMWQ1NjgnLAorICAgICd3cDsnOiAnXHUyMTE4JywKKyAgICAnd3I7JzogJ1x1MjI0MCcsCisgICAgJ3dyZWF0aDsnOiAnXHUyMjQwJywKKyAgICAnV3NjcjsnOiAnXFUwMDAxZDRiMicsCisgICAgJ3dzY3I7JzogJ1xVMDAwMWQ0Y2MnLAorICAgICd4Y2FwOyc6ICdcdTIyYzInLAorICAgICd4Y2lyYzsnOiAnXHUyNWVmJywKKyAgICAneGN1cDsnOiAnXHUyMmMzJywKKyAgICAneGR0cmk7JzogJ1x1MjViZCcsCisgICAgJ1hmcjsnOiAnXFUwMDAxZDUxYicsCisgICAgJ3hmcjsnOiAnXFUwMDAxZDUzNScsCisgICAgJ3hoQXJyOyc6ICdcdTI3ZmEnLAorICAgICd4aGFycjsnOiAnXHUyN2Y3JywKKyAgICAnWGk7JzogJ1x1MDM5ZScsCisgICAgJ3hpOyc6ICdcdTAzYmUnLAorICAgICd4bEFycjsnOiAnXHUyN2Y4JywKKyAgICAneGxhcnI7JzogJ1x1MjdmNScsCisgICAgJ3htYXA7JzogJ1x1MjdmYycsCisgICAgJ3huaXM7JzogJ1x1MjJmYicsCisgICAgJ3hvZG90Oyc6ICdcdTJhMDAnLAorICAgICdYb3BmOyc6ICdcVTAwMDFkNTRmJywKKyAgICAneG9wZjsnOiAnXFUwMDAxZDU2OScsCisgICAgJ3hvcGx1czsnOiAnXHUyYTAxJywKKyAgICAneG90aW1lOyc6ICdcdTJhMDInLAorICAgICd4ckFycjsnOiAnXHUyN2Y5JywKKyAgICAneHJhcnI7JzogJ1x1MjdmNicsCisgICAgJ1hzY3I7JzogJ1xVMDAwMWQ0YjMnLAorICAgICd4c2NyOyc6ICdcVTAwMDFkNGNkJywKKyAgICAneHNxY3VwOyc6ICdcdTJhMDYnLAorICAgICd4dXBsdXM7JzogJ1x1MmEwNCcsCisgICAgJ3h1dHJpOyc6ICdcdTI1YjMnLAorICAgICd4dmVlOyc6ICdcdTIyYzEnLAorICAgICd4d2VkZ2U7JzogJ1x1MjJjMCcsCisgICAgJ1lhY3V0ZTsnOiAnXHhkZCcsCisgICAgJ1lhY3V0ZSc6ICdceGRkJywKKyAgICAneWFjdXRlOyc6ICdceGZkJywKKyAgICAneWFjdXRlJzogJ1x4ZmQnLAorICAgICdZQWN5Oyc6ICdcdTA0MmYnLAorICAgICd5YWN5Oyc6ICdcdTA0NGYnLAorICAgICdZY2lyYzsnOiAnXHUwMTc2JywKKyAgICAneWNpcmM7JzogJ1x1MDE3NycsCisgICAgJ1ljeTsnOiAnXHUwNDJiJywKKyAgICAneWN5Oyc6ICdcdTA0NGInLAorICAgICd5ZW47JzogJ1x4YTUnLAorICAgICd5ZW4nOiAnXHhhNScsCisgICAgJ1lmcjsnOiAnXFUwMDAxZDUxYycsCisgICAgJ3lmcjsnOiAnXFUwMDAxZDUzNicsCisgICAgJ1lJY3k7JzogJ1x1MDQwNycsCisgICAgJ3lpY3k7JzogJ1x1MDQ1NycsCisgICAgJ1lvcGY7JzogJ1xVMDAwMWQ1NTAnLAorICAgICd5b3BmOyc6ICdcVTAwMDFkNTZhJywKKyAgICAnWXNjcjsnOiAnXFUwMDAxZDRiNCcsCisgICAgJ3lzY3I7JzogJ1xVMDAwMWQ0Y2UnLAorICAgICdZVWN5Oyc6ICdcdTA0MmUnLAorICAgICd5dWN5Oyc6ICdcdTA0NGUnLAorICAgICdZdW1sOyc6ICdcdTAxNzgnLAorICAgICd5dW1sOyc6ICdceGZmJywKKyAgICAneXVtbCc6ICdceGZmJywKKyAgICAnWmFjdXRlOyc6ICdcdTAxNzknLAorICAgICd6YWN1dGU7JzogJ1x1MDE3YScsCisgICAgJ1pjYXJvbjsnOiAnXHUwMTdkJywKKyAgICAnemNhcm9uOyc6ICdcdTAxN2UnLAorICAgICdaY3k7JzogJ1x1MDQxNycsCisgICAgJ3pjeTsnOiAnXHUwNDM3JywKKyAgICAnWmRvdDsnOiAnXHUwMTdiJywKKyAgICAnemRvdDsnOiAnXHUwMTdjJywKKyAgICAnemVldHJmOyc6ICdcdTIxMjgnLAorICAgICdaZXJvV2lkdGhTcGFjZTsnOiAnXHUyMDBiJywKKyAgICAnWmV0YTsnOiAnXHUwMzk2JywKKyAgICAnemV0YTsnOiAnXHUwM2I2JywKKyAgICAnWmZyOyc6ICdcdTIxMjgnLAorICAgICd6ZnI7JzogJ1xVMDAwMWQ1MzcnLAorICAgICdaSGN5Oyc6ICdcdTA0MTYnLAorICAgICd6aGN5Oyc6ICdcdTA0MzYnLAorICAgICd6aWdyYXJyOyc6ICdcdTIxZGQnLAorICAgICdab3BmOyc6ICdcdTIxMjQnLAorICAgICd6b3BmOyc6ICdcVTAwMDFkNTZiJywKKyAgICAnWnNjcjsnOiAnXFUwMDAxZDRiNScsCisgICAgJ3pzY3I7JzogJ1xVMDAwMWQ0Y2YnLAorICAgICd6d2o7JzogJ1x1MjAwZCcsCisgICAgJ3p3bmo7JzogJ1x1MjAwYycsCit9CisKICMgbWFwcyB0aGUgVW5pY29kZSBjb2RlcG9pbnQgdG8gdGhlIEhUTUwgZW50aXR5IG5hbWUKIGNvZGVwb2ludDJuYW1lID0ge30KIApkaWZmIC0tZ2l0IGEvTGliL2h0bWwvcGFyc2VyLnB5IGIvTGliL2h0bWwvcGFyc2VyLnB5CmluZGV4IGRlNTA0YWIuLmY4YWM4MjggMTAwNjQ0Ci0tLSBhL0xpYi9odG1sL3BhcnNlci5weQorKysgYi9MaWIvaHRtbC9wYXJzZXIucHkKQEAgLTEwLDYgKzEwLDcgQEAKIAogaW1wb3J0IF9tYXJrdXBiYXNlCiBpbXBvcnQgcmUKK2ltcG9ydCB3YXJuaW5ncwogCiAjIFJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlZCBmb3IgcGFyc2luZwogCkBAIC0xMTMsMTQgKzExNCwxNiBAQAogCiAgICAgQ0RBVEFfQ09OVEVOVF9FTEVNRU5UUyA9ICgic2NyaXB0IiwgInN0eWxlIikKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdHJpY3Q9VHJ1ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmljdD1GYWxzZSk6CiAgICAgICAgICIiIkluaXRpYWxpemUgYW5kIHJlc2V0IHRoaXMgaW5zdGFuY2UuCiAKLSAgICAgICAgSWYgc3RyaWN0IGlzIHNldCB0byBUcnVlICh0aGUgZGVmYXVsdCksIGVycm9ycyBhcmUgcmFpc2VkIHdoZW4gaW52YWxpZAotICAgICAgICBIVE1MIGlzIGVuY291bnRlcmVkLiAgSWYgc2V0IHRvIEZhbHNlLCBhbiBhdHRlbXB0IGlzIGluc3RlYWQgbWFkZSB0bwotICAgICAgICBjb250aW51ZSBwYXJzaW5nLCBtYWtpbmcgImJlc3QgZ3Vlc3NlcyIgYWJvdXQgdGhlIGludGVuZGVkIG1lYW5pbmcsIGluCi0gICAgICAgIGEgZmFzaGlvbiBzaW1pbGFyIHRvIHdoYXQgYnJvd3NlcnMgdHlwaWNhbGx5IGRvLgorICAgICAgICBJZiBzdHJpY3QgaXMgc2V0IHRvIEZhbHNlICh0aGUgZGVmYXVsdCkgdGhlIHBhcnNlciB3aWxsIHBhcnNlIGludmFsaWQKKyAgICAgICAgbWFya3VwLCBvdGhlcndpc2UgaXQgd2lsbCByYWlzZSBhbiBlcnJvci4gIE5vdGUgdGhhdCB0aGUgc3RyaWN0IG1vZGUKKyAgICAgICAgaXMgZGVwcmVjYXRlZC4KICAgICAgICAgIiIiCisgICAgICAgIGlmIHN0cmljdDoKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIlRoZSBzdHJpY3QgbW9kZSBpcyBkZXByZWNhdGVkLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQogICAgICAgICBzZWxmLnN0cmljdCA9IHN0cmljdAogICAgICAgICBzZWxmLnJlc2V0KCkKIApAQCAtMjcxLDggKzI3NCw4IEBACiAgICAgIyBTZWUgYWxzbyBwYXJzZV9kZWNsYXJhdGlvbiBpbiBfbWFya3VwYmFzZQogICAgIGRlZiBwYXJzZV9odG1sX2RlY2xhcmF0aW9uKHNlbGYsIGkpOgogICAgICAgICByYXdkYXRhID0gc2VsZi5yYXdkYXRhCi0gICAgICAgIGlmIHJhd2RhdGFbaTppKzJdICE9ICc8ISc6Ci0gICAgICAgICAgICBzZWxmLmVycm9yKCd1bmV4cGVjdGVkIGNhbGwgdG8gcGFyc2VfaHRtbF9kZWNsYXJhdGlvbigpJykKKyAgICAgICAgYXNzZXJ0IHJhd2RhdGFbaTppKzJdID09ICc8IScsICgndW5leHBlY3RlZCBjYWxsIHRvICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyc2VfaHRtbF9kZWNsYXJhdGlvbigpJykKICAgICAgICAgaWYgcmF3ZGF0YVtpOmkrNF0gPT0gJzwhLS0nOgogICAgICAgICAgICAgIyB0aGlzIGNhc2UgaXMgYWN0dWFsbHkgYWxyZWFkeSBoYW5kbGVkIGluIGdvYWhlYWQoKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYucGFyc2VfY29tbWVudChpKQpAQCAtMjkyLDggKzI5NSw4IEBACiAgICAgIyBzZWUgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvdG9rZW5pemF0aW9uLmh0bWwjYm9ndXMtY29tbWVudC1zdGF0ZQogICAgIGRlZiBwYXJzZV9ib2d1c19jb21tZW50KHNlbGYsIGksIHJlcG9ydD0xKToKICAgICAgICAgcmF3ZGF0YSA9IHNlbGYucmF3ZGF0YQotICAgICAgICBpZiByYXdkYXRhW2k6aSsyXSBub3QgaW4gKCc8IScsICc8LycpOgotICAgICAgICAgICAgc2VsZi5lcnJvcigndW5leHBlY3RlZCBjYWxsIHRvIHBhcnNlX2NvbW1lbnQoKScpCisgICAgICAgIGFzc2VydCByYXdkYXRhW2k6aSsyXSBpbiAoJzwhJywgJzwvJyksICgndW5leHBlY3RlZCBjYWxsIHRvICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXJzZV9jb21tZW50KCknKQogICAgICAgICBwb3MgPSByYXdkYXRhLmZpbmQoJz4nLCBpKzIpCiAgICAgICAgIGlmIHBvcyA9PSAtMToKICAgICAgICAgICAgIHJldHVybiAtMQpAQCAtNDk3LDcgKzUwMCw2IEBACiAgICAgICAgICAgICBzZWxmLmVycm9yKCJ1bmtub3duIGRlY2xhcmF0aW9uOiAlciIgJSAoZGF0YSwpKQogCiAgICAgIyBJbnRlcm5hbCAtLSBoZWxwZXIgdG8gcmVtb3ZlIHNwZWNpYWwgY2hhcmFjdGVyIHF1b3RpbmcKLSAgICBlbnRpdHlkZWZzID0gTm9uZQogICAgIGRlZiB1bmVzY2FwZShzZWxmLCBzKToKICAgICAgICAgaWYgJyYnIG5vdCBpbiBzOgogICAgICAgICAgICAgcmV0dXJuIHMKQEAgLTUwNywyNCArNTA5LDIzIEBACiAgICAgICAgICAgICAgICAgaWYgc1swXSA9PSAiIyI6CiAgICAgICAgICAgICAgICAgICAgIHMgPSBzWzE6XQogICAgICAgICAgICAgICAgICAgICBpZiBzWzBdIGluIFsneCcsJ1gnXToKLSAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBpbnQoc1sxOl0sIDE2KQorICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGludChzWzE6XS5yc3RyaXAoJzsnKSwgMTYpCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjID0gaW50KHMpCisgICAgICAgICAgICAgICAgICAgICAgICBjID0gaW50KHMucnN0cmlwKCc7JykpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaHIoYykKICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgICAgIHJldHVybiAnJiMnKyBzICsnOycKKyAgICAgICAgICAgICAgICByZXR1cm4gJyYjJyArIHMKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBDYW5ub3QgdXNlIG5hbWUyY29kZXBvaW50IGRpcmVjdGx5LCBiZWNhdXNlIEhUTUxQYXJzZXIKLSAgICAgICAgICAgICAgICAjIHN1cHBvcnRzIGFwb3MsIHdoaWNoIGlzIG5vdCBwYXJ0IG9mIEhUTUwgNAotICAgICAgICAgICAgICAgIGltcG9ydCBodG1sLmVudGl0aWVzCi0gICAgICAgICAgICAgICAgaWYgSFRNTFBhcnNlci5lbnRpdHlkZWZzIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIGVudGl0eWRlZnMgPSBIVE1MUGFyc2VyLmVudGl0eWRlZnMgPSB7J2Fwb3MnOiInIn0KLSAgICAgICAgICAgICAgICAgICAgZm9yIGssIHYgaW4gaHRtbC5lbnRpdGllcy5uYW1lMmNvZGVwb2ludC5pdGVtcygpOgotICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5ZGVmc1trXSA9IGNocih2KQotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZW50aXR5ZGVmc1tzXQotICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcmJytzKyc7JworICAgICAgICAgICAgICAgIGZyb20gaHRtbC5lbnRpdGllcyBpbXBvcnQgaHRtbDUKKyAgICAgICAgICAgICAgICBpZiBzIGluIGh0bWw1OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaHRtbDVbc10KKyAgICAgICAgICAgICAgICBlbGlmIHMuZW5kc3dpdGgoJzsnKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcmJyArIHMKKyAgICAgICAgICAgICAgICBmb3IgeCBpbiByYW5nZSgyLCBsZW4ocykpOgorICAgICAgICAgICAgICAgICAgICBpZiBzWzp4XSBpbiBodG1sNToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBodG1sNVtzWzp4XV0gKyBzW3g6XQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAnJicgKyBzCiAKLSAgICAgICAgcmV0dXJuIHJlLnN1YihyIiYoIz9beFhdPyg/OlswLTlhLWZBLUZdK3xcd3sxLDh9KSk7IiwKKyAgICAgICAgcmV0dXJuIHJlLnN1YihyIiYoIz9beFhdPyg/OlswLTlhLWZBLUZdKzt8XHd7MSwzMn07PykpIiwKICAgICAgICAgICAgICAgICAgICAgICByZXBsYWNlRW50aXRpZXMsIHMsIGZsYWdzPXJlLkFTQ0lJKQpkaWZmIC0tZ2l0IGEvTGliL2h0dHAvY2xpZW50LnB5IGIvTGliL2h0dHAvY2xpZW50LnB5CmluZGV4IDk3YTcxNTUuLjliMDE3MDQgMTAwNjQ0Ci0tLSBhL0xpYi9odHRwL2NsaWVudC5weQorKysgYi9MaWIvaHR0cC9jbGllbnQucHkKQEAgLTE0MSw2ICsxNDEsOSBAQAogTE9DS0VEID0gNDIzCiBGQUlMRURfREVQRU5ERU5DWSA9IDQyNAogVVBHUkFERV9SRVFVSVJFRCA9IDQyNgorUFJFQ09ORElUSU9OX1JFUVVJUkVEID0gNDI4CitUT09fTUFOWV9SRVFVRVNUUyA9IDQyOQorUkVRVUVTVF9IRUFERVJfRklFTERTX1RPT19MQVJHRSA9IDQzMQogCiAjIHNlcnZlciBlcnJvcgogSU5URVJOQUxfU0VSVkVSX0VSUk9SID0gNTAwCkBAIC0xNTEsNiArMTU0LDcgQEAKIEhUVFBfVkVSU0lPTl9OT1RfU1VQUE9SVEVEID0gNTA1CiBJTlNVRkZJQ0lFTlRfU1RPUkFHRSA9IDUwNwogTk9UX0VYVEVOREVEID0gNTEwCitORVRXT1JLX0FVVEhFTlRJQ0FUSU9OX1JFUVVJUkVEID0gNTExCiAKICMgTWFwcGluZyBzdGF0dXMgY29kZXMgdG8gb2ZmaWNpYWwgVzNDIG5hbWVzCiByZXNwb25zZXMgPSB7CkBAIC0xOTIsNiArMTk2LDkgQEAKICAgICA0MTU6ICdVbnN1cHBvcnRlZCBNZWRpYSBUeXBlJywKICAgICA0MTY6ICdSZXF1ZXN0ZWQgUmFuZ2UgTm90IFNhdGlzZmlhYmxlJywKICAgICA0MTc6ICdFeHBlY3RhdGlvbiBGYWlsZWQnLAorICAgIDQyODogJ1ByZWNvbmRpdGlvbiBSZXF1aXJlZCcsCisgICAgNDI5OiAnVG9vIE1hbnkgUmVxdWVzdHMnLAorICAgIDQzMTogJ1JlcXVlc3QgSGVhZGVyIEZpZWxkcyBUb28gTGFyZ2UnLAogCiAgICAgNTAwOiAnSW50ZXJuYWwgU2VydmVyIEVycm9yJywKICAgICA1MDE6ICdOb3QgSW1wbGVtZW50ZWQnLApAQCAtMTk5LDYgKzIwNiw3IEBACiAgICAgNTAzOiAnU2VydmljZSBVbmF2YWlsYWJsZScsCiAgICAgNTA0OiAnR2F0ZXdheSBUaW1lb3V0JywKICAgICA1MDU6ICdIVFRQIFZlcnNpb24gTm90IFN1cHBvcnRlZCcsCisgICAgNTExOiAnTmV0d29yayBBdXRoZW50aWNhdGlvbiBSZXF1aXJlZCcsCiB9CiAKICMgbWF4aW1hbCBhbW91bnQgb2YgZGF0YSB0byByZWFkIGF0IG9uZSB0aW1lIGluIF9zYWZlX3JlYWQKQEAgLTQ4NSwxMSArNDkzLDE3IEBACiAgICAgICAgICAgICBzZWxmLmNsb3NlKCkKICAgICAgICAgICAgIHJldHVybiBiIiIKIAotICAgICAgICBpZiBzZWxmLmNodW5rZWQ6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVhZF9jaHVua2VkKGFtdCkKKyAgICAgICAgaWYgYW10IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyBBbW91bnQgaXMgZ2l2ZW4sIHNvIGNhbGwgYmFzZSBjbGFzcyB2ZXJzaW9uCisgICAgICAgICAgICAjICh3aGljaCBpcyBpbXBsZW1lbnRlZCBpbiB0ZXJtcyBvZiBzZWxmLnJlYWRpbnRvKQorICAgICAgICAgICAgcmV0dXJuIHN1cGVyKEhUVFBSZXNwb25zZSwgc2VsZikucmVhZChhbXQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIEFtb3VudCBpcyBub3QgZ2l2ZW4gKHVuYm91bmRlZCByZWFkKSBzbyB3ZSBtdXN0IGNoZWNrIHNlbGYubGVuZ3RoCisgICAgICAgICAgICAjIGFuZCBzZWxmLmNodW5rZWQKIAotICAgICAgICBpZiBhbXQgaXMgTm9uZToKLSAgICAgICAgICAgICMgdW5ib3VuZGVkIHJlYWQKKyAgICAgICAgICAgIGlmIHNlbGYuY2h1bmtlZDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVhZGFsbF9jaHVua2VkKCkKKwogICAgICAgICAgICAgaWYgc2VsZi5sZW5ndGggaXMgTm9uZToKICAgICAgICAgICAgICAgICBzID0gc2VsZi5mcC5yZWFkKCkKICAgICAgICAgICAgIGVsc2U6CkBAIC00OTgsNjEgKzUxMiw0OSBAQAogICAgICAgICAgICAgc2VsZi5jbG9zZSgpICAgICAgICAjIHdlIHJlYWQgZXZlcnl0aGluZwogICAgICAgICAgICAgcmV0dXJuIHMKIAorICAgIGRlZiByZWFkaW50byhzZWxmLCBiKToKKyAgICAgICAgaWYgc2VsZi5mcCBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIDAKKworICAgICAgICBpZiBzZWxmLl9tZXRob2QgPT0gIkhFQUQiOgorICAgICAgICAgICAgc2VsZi5jbG9zZSgpCisgICAgICAgICAgICByZXR1cm4gMAorCisgICAgICAgIGlmIHNlbGYuY2h1bmtlZDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZWFkaW50b19jaHVua2VkKGIpCisKICAgICAgICAgaWYgc2VsZi5sZW5ndGggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBpZiBhbXQgPiBzZWxmLmxlbmd0aDoKKyAgICAgICAgICAgIGlmIGxlbihiKSA+IHNlbGYubGVuZ3RoOgogICAgICAgICAgICAgICAgICMgY2xpcCB0aGUgcmVhZCB0byB0aGUgImVuZCBvZiByZXNwb25zZSIKLSAgICAgICAgICAgICAgICBhbXQgPSBzZWxmLmxlbmd0aAorICAgICAgICAgICAgICAgIGIgPSBtZW1vcnl2aWV3KGIpWzA6c2VsZi5sZW5ndGhdCiAKICAgICAgICAgIyB3ZSBkbyBub3QgdXNlIF9zYWZlX3JlYWQoKSBoZXJlIGJlY2F1c2UgdGhpcyBtYXkgYmUgYSAud2lsbF9jbG9zZQogICAgICAgICAjIGNvbm5lY3Rpb24sIGFuZCB0aGUgdXNlciBpcyByZWFkaW5nIG1vcmUgYnl0ZXMgdGhhbiB3aWxsIGJlIHByb3ZpZGVkCiAgICAgICAgICMgKGZvciBleGFtcGxlLCByZWFkaW5nIGluIDFrIGNodW5rcykKLSAgICAgICAgcyA9IHNlbGYuZnAucmVhZChhbXQpCisgICAgICAgIG4gPSBzZWxmLmZwLnJlYWRpbnRvKGIpCiAgICAgICAgIGlmIHNlbGYubGVuZ3RoIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5sZW5ndGggLT0gbGVuKHMpCisgICAgICAgICAgICBzZWxmLmxlbmd0aCAtPSBuCiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5sZW5ndGg6CiAgICAgICAgICAgICAgICAgc2VsZi5jbG9zZSgpCi0gICAgICAgIHJldHVybiBzCisgICAgICAgIHJldHVybiBuCiAKLSAgICBkZWYgX3JlYWRfY2h1bmtlZChzZWxmLCBhbXQpOgotICAgICAgICBhc3NlcnQgc2VsZi5jaHVua2VkICE9IF9VTktOT1dOCi0gICAgICAgIGNodW5rX2xlZnQgPSBzZWxmLmNodW5rX2xlZnQKLSAgICAgICAgdmFsdWUgPSBbXQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYgY2h1bmtfbGVmdCBpcyBOb25lOgotICAgICAgICAgICAgICAgIGxpbmUgPSBzZWxmLmZwLnJlYWRsaW5lKF9NQVhMSU5FICsgMSkKLSAgICAgICAgICAgICAgICBpZiBsZW4obGluZSkgPiBfTUFYTElORToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgTGluZVRvb0xvbmcoImNodW5rIHNpemUiKQotICAgICAgICAgICAgICAgIGkgPSBsaW5lLmZpbmQoYiI7IikKLSAgICAgICAgICAgICAgICBpZiBpID49IDA6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lWzppXSAjIHN0cmlwIGNodW5rLWV4dGVuc2lvbnMKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGNodW5rX2xlZnQgPSBpbnQobGluZSwgMTYpCi0gICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICMgY2xvc2UgdGhlIGNvbm5lY3Rpb24gYXMgcHJvdG9jb2wgc3luY2hyb25pc2F0aW9uIGlzCi0gICAgICAgICAgICAgICAgICAgICMgcHJvYmFibHkgbG9zdAotICAgICAgICAgICAgICAgICAgICBzZWxmLmNsb3NlKCkKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW5jb21wbGV0ZVJlYWQoYicnLmpvaW4odmFsdWUpKQotICAgICAgICAgICAgICAgIGlmIGNodW5rX2xlZnQgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGlmIGFtdCBpcyBOb25lOgotICAgICAgICAgICAgICAgIHZhbHVlLmFwcGVuZChzZWxmLl9zYWZlX3JlYWQoY2h1bmtfbGVmdCkpCi0gICAgICAgICAgICBlbGlmIGFtdCA8IGNodW5rX2xlZnQ6Ci0gICAgICAgICAgICAgICAgdmFsdWUuYXBwZW5kKHNlbGYuX3NhZmVfcmVhZChhbXQpKQotICAgICAgICAgICAgICAgIHNlbGYuY2h1bmtfbGVmdCA9IGNodW5rX2xlZnQgLSBhbXQKLSAgICAgICAgICAgICAgICByZXR1cm4gYicnLmpvaW4odmFsdWUpCi0gICAgICAgICAgICBlbGlmIGFtdCA9PSBjaHVua19sZWZ0OgotICAgICAgICAgICAgICAgIHZhbHVlLmFwcGVuZChzZWxmLl9zYWZlX3JlYWQoYW10KSkKLSAgICAgICAgICAgICAgICBzZWxmLl9zYWZlX3JlYWQoMikgICMgdG9zcyB0aGUgQ1JMRiBhdCB0aGUgZW5kIG9mIHRoZSBjaHVuawotICAgICAgICAgICAgICAgIHNlbGYuY2h1bmtfbGVmdCA9IE5vbmUKLSAgICAgICAgICAgICAgICByZXR1cm4gYicnLmpvaW4odmFsdWUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHZhbHVlLmFwcGVuZChzZWxmLl9zYWZlX3JlYWQoY2h1bmtfbGVmdCkpCi0gICAgICAgICAgICAgICAgYW10IC09IGNodW5rX2xlZnQKKyAgICBkZWYgX3JlYWRfbmV4dF9jaHVua19zaXplKHNlbGYpOgorICAgICAgICAjIFJlYWQgdGhlIG5leHQgY2h1bmsgc2l6ZSBmcm9tIHRoZSBmaWxlCisgICAgICAgIGxpbmUgPSBzZWxmLmZwLnJlYWRsaW5lKF9NQVhMSU5FICsgMSkKKyAgICAgICAgaWYgbGVuKGxpbmUpID4gX01BWExJTkU6CisgICAgICAgICAgICByYWlzZSBMaW5lVG9vTG9uZygiY2h1bmsgc2l6ZSIpCisgICAgICAgIGkgPSBsaW5lLmZpbmQoYiI7IikKKyAgICAgICAgaWYgaSA+PSAwOgorICAgICAgICAgICAgbGluZSA9IGxpbmVbOmldICMgc3RyaXAgY2h1bmstZXh0ZW5zaW9ucworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gaW50KGxpbmUsIDE2KQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICMgY2xvc2UgdGhlIGNvbm5lY3Rpb24gYXMgcHJvdG9jb2wgc3luY2hyb25pc2F0aW9uIGlzCisgICAgICAgICAgICAjIHByb2JhYmx5IGxvc3QKKyAgICAgICAgICAgIHNlbGYuY2xvc2UoKQorICAgICAgICAgICAgcmFpc2UKIAotICAgICAgICAgICAgIyB3ZSByZWFkIHRoZSB3aG9sZSBjaHVuaywgZ2V0IGFub3RoZXIKLSAgICAgICAgICAgIHNlbGYuX3NhZmVfcmVhZCgyKSAgICAgICMgdG9zcyB0aGUgQ1JMRiBhdCB0aGUgZW5kIG9mIHRoZSBjaHVuawotICAgICAgICAgICAgY2h1bmtfbGVmdCA9IE5vbmUKLQorICAgIGRlZiBfcmVhZF9hbmRfZGlzY2FyZF90cmFpbGVyKHNlbGYpOgogICAgICAgICAjIHJlYWQgYW5kIGRpc2NhcmQgdHJhaWxlciB1cCB0byB0aGUgQ1JMRiB0ZXJtaW5hdG9yCiAgICAgICAgICMjIyBub3RlOiB3ZSBzaG91bGRuJ3QgaGF2ZSBhbnkgdHJhaWxlcnMhCiAgICAgICAgIHdoaWxlIFRydWU6CkBAIC01NjYsMTEgKzU2OCw3MiBAQAogICAgICAgICAgICAgaWYgbGluZSBpbiAoYidcclxuJywgYidcbicsIGInJyk6CiAgICAgICAgICAgICAgICAgYnJlYWsKIAorICAgIGRlZiBfcmVhZGFsbF9jaHVua2VkKHNlbGYpOgorICAgICAgICBhc3NlcnQgc2VsZi5jaHVua2VkICE9IF9VTktOT1dOCisgICAgICAgIGNodW5rX2xlZnQgPSBzZWxmLmNodW5rX2xlZnQKKyAgICAgICAgdmFsdWUgPSBbXQorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgaWYgY2h1bmtfbGVmdCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgY2h1bmtfbGVmdCA9IHNlbGYuX3JlYWRfbmV4dF9jaHVua19zaXplKCkKKyAgICAgICAgICAgICAgICAgICAgaWYgY2h1bmtfbGVmdCA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW5jb21wbGV0ZVJlYWQoYicnLmpvaW4odmFsdWUpKQorICAgICAgICAgICAgdmFsdWUuYXBwZW5kKHNlbGYuX3NhZmVfcmVhZChjaHVua19sZWZ0KSkKKworICAgICAgICAgICAgIyB3ZSByZWFkIHRoZSB3aG9sZSBjaHVuaywgZ2V0IGFub3RoZXIKKyAgICAgICAgICAgIHNlbGYuX3NhZmVfcmVhZCgyKSAgICAgICMgdG9zcyB0aGUgQ1JMRiBhdCB0aGUgZW5kIG9mIHRoZSBjaHVuaworICAgICAgICAgICAgY2h1bmtfbGVmdCA9IE5vbmUKKworICAgICAgICBzZWxmLl9yZWFkX2FuZF9kaXNjYXJkX3RyYWlsZXIoKQorCiAgICAgICAgICMgd2UgcmVhZCBldmVyeXRoaW5nOyBjbG9zZSB0aGUgImZpbGUiCiAgICAgICAgIHNlbGYuY2xvc2UoKQogCiAgICAgICAgIHJldHVybiBiJycuam9pbih2YWx1ZSkKIAorICAgIGRlZiBfcmVhZGludG9fY2h1bmtlZChzZWxmLCBiKToKKyAgICAgICAgYXNzZXJ0IHNlbGYuY2h1bmtlZCAhPSBfVU5LTk9XTgorICAgICAgICBjaHVua19sZWZ0ID0gc2VsZi5jaHVua19sZWZ0CisKKyAgICAgICAgdG90YWxfYnl0ZXMgPSAwCisgICAgICAgIG12YiA9IG1lbW9yeXZpZXcoYikKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIGlmIGNodW5rX2xlZnQgaXMgTm9uZToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGNodW5rX2xlZnQgPSBzZWxmLl9yZWFkX25leHRfY2h1bmtfc2l6ZSgpCisgICAgICAgICAgICAgICAgICAgIGlmIGNodW5rX2xlZnQgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEluY29tcGxldGVSZWFkKGJ5dGVzKGJbMDp0b3RhbF9ieXRlc10pKQorCisgICAgICAgICAgICBpZiBsZW4obXZiKSA8IGNodW5rX2xlZnQ6CisgICAgICAgICAgICAgICAgbiA9IHNlbGYuX3NhZmVfcmVhZGludG8obXZiKQorICAgICAgICAgICAgICAgIHNlbGYuY2h1bmtfbGVmdCA9IGNodW5rX2xlZnQgLSBuCisgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsX2J5dGVzICsgbgorICAgICAgICAgICAgZWxpZiBsZW4obXZiKSA9PSBjaHVua19sZWZ0OgorICAgICAgICAgICAgICAgIG4gPSBzZWxmLl9zYWZlX3JlYWRpbnRvKG12YikKKyAgICAgICAgICAgICAgICBzZWxmLl9zYWZlX3JlYWQoMikgICMgdG9zcyB0aGUgQ1JMRiBhdCB0aGUgZW5kIG9mIHRoZSBjaHVuaworICAgICAgICAgICAgICAgIHNlbGYuY2h1bmtfbGVmdCA9IE5vbmUKKyAgICAgICAgICAgICAgICByZXR1cm4gdG90YWxfYnl0ZXMgKyBuCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRlbXBfbXZiID0gbXZiWzA6Y2h1bmtfbGVmdF0KKyAgICAgICAgICAgICAgICBuID0gc2VsZi5fc2FmZV9yZWFkaW50byh0ZW1wX212YikKKyAgICAgICAgICAgICAgICBtdmIgPSBtdmJbbjpdCisgICAgICAgICAgICAgICAgdG90YWxfYnl0ZXMgKz0gbgorCisgICAgICAgICAgICAjIHdlIHJlYWQgdGhlIHdob2xlIGNodW5rLCBnZXQgYW5vdGhlcgorICAgICAgICAgICAgc2VsZi5fc2FmZV9yZWFkKDIpICAgICAgIyB0b3NzIHRoZSBDUkxGIGF0IHRoZSBlbmQgb2YgdGhlIGNodW5rCisgICAgICAgICAgICBjaHVua19sZWZ0ID0gTm9uZQorCisgICAgICAgIHNlbGYuX3JlYWRfYW5kX2Rpc2NhcmRfdHJhaWxlcigpCisKKyAgICAgICAgIyB3ZSByZWFkIGV2ZXJ5dGhpbmc7IGNsb3NlIHRoZSAiZmlsZSIKKyAgICAgICAgc2VsZi5jbG9zZSgpCisKKyAgICAgICAgcmV0dXJuIHRvdGFsX2J5dGVzCisKICAgICBkZWYgX3NhZmVfcmVhZChzZWxmLCBhbXQpOgogICAgICAgICAiIiJSZWFkIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWVzdGVkLCBjb21wZW5zYXRpbmcgZm9yIHBhcnRpYWwgcmVhZHMuCiAKQEAgLTU5NCw2ICs2NTcsMjIgQEAKICAgICAgICAgICAgIGFtdCAtPSBsZW4oY2h1bmspCiAgICAgICAgIHJldHVybiBiIiIuam9pbihzKQogCisgICAgZGVmIF9zYWZlX3JlYWRpbnRvKHNlbGYsIGIpOgorICAgICAgICAiIiJTYW1lIGFzIF9zYWZlX3JlYWQsIGJ1dCBmb3IgcmVhZGluZyBpbnRvIGEgYnVmZmVyLiIiIgorICAgICAgICB0b3RhbF9ieXRlcyA9IDAKKyAgICAgICAgbXZiID0gbWVtb3J5dmlldyhiKQorICAgICAgICB3aGlsZSB0b3RhbF9ieXRlcyA8IGxlbihiKToKKyAgICAgICAgICAgIGlmIE1BWEFNT1VOVCA8IGxlbihtdmIpOgorICAgICAgICAgICAgICAgIHRlbXBfbXZiID0gbXZiWzA6TUFYQU1PVU5UXQorICAgICAgICAgICAgICAgIG4gPSBzZWxmLmZwLnJlYWRpbnRvKHRlbXBfbXZiKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBuID0gc2VsZi5mcC5yZWFkaW50byhtdmIpCisgICAgICAgICAgICBpZiBub3QgbjoKKyAgICAgICAgICAgICAgICByYWlzZSBJbmNvbXBsZXRlUmVhZChieXRlcyhtdmJbMDp0b3RhbF9ieXRlc10pLCBsZW4oYikpCisgICAgICAgICAgICBtdmIgPSBtdmJbbjpdCisgICAgICAgICAgICB0b3RhbF9ieXRlcyArPSBuCisgICAgICAgIHJldHVybiB0b3RhbF9ieXRlcworCiAgICAgZGVmIGZpbGVubyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuZnAuZmlsZW5vKCkKIApAQCAtNzAwLDcgKzc3OSw3IEBACiAgICAgICAgIHNlbGYuc2VuZChjb25uZWN0X2J5dGVzKQogICAgICAgICBmb3IgaGVhZGVyLCB2YWx1ZSBpbiBzZWxmLl90dW5uZWxfaGVhZGVycy5pdGVtcygpOgogICAgICAgICAgICAgaGVhZGVyX3N0ciA9ICIlczogJXNcclxuIiAlIChoZWFkZXIsIHZhbHVlKQotICAgICAgICAgICAgaGVhZGVyX2J5dGVzID0gaGVhZGVyX3N0ci5lbmNvZGUoImxhdGluMSIpCisgICAgICAgICAgICBoZWFkZXJfYnl0ZXMgPSBoZWFkZXJfc3RyLmVuY29kZSgibGF0aW4tMSIpCiAgICAgICAgICAgICBzZWxmLnNlbmQoaGVhZGVyX2J5dGVzKQogICAgICAgICBzZWxmLnNlbmQoYidcclxuJykKIApAQCAtOTQzLDcgKzEwMjIsNyBAQAogICAgICAgICB2YWx1ZXMgPSBsaXN0KHZhbHVlcykKICAgICAgICAgZm9yIGksIG9uZV92YWx1ZSBpbiBlbnVtZXJhdGUodmFsdWVzKToKICAgICAgICAgICAgIGlmIGhhc2F0dHIob25lX3ZhbHVlLCAnZW5jb2RlJyk6Ci0gICAgICAgICAgICAgICAgdmFsdWVzW2ldID0gb25lX3ZhbHVlLmVuY29kZSgnbGF0aW4xJykKKyAgICAgICAgICAgICAgICB2YWx1ZXNbaV0gPSBvbmVfdmFsdWUuZW5jb2RlKCdsYXRpbi0xJykKICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvbmVfdmFsdWUsIGludCk6CiAgICAgICAgICAgICAgICAgdmFsdWVzW2ldID0gc3RyKG9uZV92YWx1ZSkuZW5jb2RlKCdhc2NpaScpCiAgICAgICAgIHZhbHVlID0gYidcclxuXHQnLmpvaW4odmFsdWVzKQpkaWZmIC0tZ2l0IGEvTGliL2h0dHAvY29va2llcy5weSBiL0xpYi9odHRwL2Nvb2tpZXMucHkKaW5kZXggZGRiY2JmOC4uZDI5MTY3OCAxMDA2NDQKLS0tIGEvTGliL2h0dHAvY29va2llcy5weQorKysgYi9MaWIvaHR0cC9jb29raWVzLnB5CkBAIC0xNTksNyArMTU5LDcgQEAKICMgICAgICAgX0xlZ2FsQ2hhcnMgICAgICAgaXMgdGhlIGxpc3Qgb2YgY2hhcnMgd2hpY2ggZG9uJ3QgcmVxdWlyZSAiJ3MKICMgICAgICAgX1RyYW5zbGF0b3IgICAgICAgaGFzaC10YWJsZSBmb3IgZmFzdCBxdW90aW5nCiAjCi1fTGVnYWxDaGFycyAgICAgICA9IHN0cmluZy5hc2NpaV9sZXR0ZXJzICsgc3RyaW5nLmRpZ2l0cyArICIhIyQlJicqKy0uXl9gfH4iCitfTGVnYWxDaGFycyAgICAgICA9IHN0cmluZy5hc2NpaV9sZXR0ZXJzICsgc3RyaW5nLmRpZ2l0cyArICIhIyQlJicqKy0uXl9gfH46IgogX1RyYW5zbGF0b3IgICAgICAgPSB7CiAgICAgJ1wwMDAnIDogJ1xcMDAwJywgICdcMDAxJyA6ICdcXDAwMScsICAnXDAwMicgOiAnXFwwMDInLAogICAgICdcMDAzJyA6ICdcXDAwMycsICAnXDAwNCcgOiAnXFwwMDQnLCAgJ1wwMDUnIDogJ1xcMDA1JywKZGlmZiAtLWdpdCBhL0xpYi9odHRwL3NlcnZlci5weSBiL0xpYi9odHRwL3NlcnZlci5weQppbmRleCA1NTY5MDM3Li5jNGFjNzAzIDEwMDY0NAotLS0gYS9MaWIvaHR0cC9zZXJ2ZXIucHkKKysrIGIvTGliL2h0dHAvc2VydmVyLnB5CkBAIC0xMDAsMTEgKzEwMCwxNCBAQAogaW1wb3J0IHRpbWUKIGltcG9ydCB1cmxsaWIucGFyc2UKIGltcG9ydCBjb3B5CitpbXBvcnQgYXJncGFyc2UKKwogCiAjIERlZmF1bHQgZXJyb3IgbWVzc2FnZSB0ZW1wbGF0ZQogREVGQVVMVF9FUlJPUl9NRVNTQUdFID0gIiIiXAogPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEvL0VOIgogICAgICAgICAiaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDQvc3RyaWN0LmR0ZCI+Cis8aHRtbD4KICAgICA8aGVhZD4KICAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI+CiAgICAgICAgIDx0aXRsZT5FcnJvciByZXNwb25zZTwvdGl0bGU+CkBAIC0zNTIsNiArMzU1LDcgQEAKIAogICAgICAgICAiIiIKICAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlX29ubHkoMTAwKQorICAgICAgICBzZWxmLmZsdXNoX2hlYWRlcnMoKQogICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIGhhbmRsZV9vbmVfcmVxdWVzdChzZWxmKToKQEAgLTQyOSw3ICs0MzMsOCBAQAogICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZShjb250ZW50LmVuY29kZSgnVVRGLTgnLCAncmVwbGFjZScpKQogCiAgICAgZGVmIHNlbmRfcmVzcG9uc2Uoc2VsZiwgY29kZSwgbWVzc2FnZT1Ob25lKToKLSAgICAgICAgIiIiU2VuZCB0aGUgcmVzcG9uc2UgaGVhZGVyIGFuZCBsb2cgdGhlIHJlc3BvbnNlIGNvZGUuCisgICAgICAgICIiIkFkZCB0aGUgcmVzcG9uc2UgaGVhZGVyIHRvIHRoZSBoZWFkZXJzIGJ1ZmZlciBhbmQgbG9nIHRoZQorICAgICAgICByZXNwb25zZSBjb2RlLgogCiAgICAgICAgIEFsc28gc2VuZCB0d28gc3RhbmRhcmQgaGVhZGVycyB3aXRoIHRoZSBzZXJ2ZXIgc29mdHdhcmUKICAgICAgICAgdmVyc2lvbiBhbmQgdGhlIGN1cnJlbnQgZGF0ZS4KQEAgLTQ0OCwxNiArNDUzLDE5IEBACiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnJwogICAgICAgICBpZiBzZWxmLnJlcXVlc3RfdmVyc2lvbiAhPSAnSFRUUC8wLjknOgotICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgoIiVzICVkICVzXHJcbiIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYucHJvdG9jb2xfdmVyc2lvbiwgY29kZSwgbWVzc2FnZSkpLmVuY29kZSgnbGF0aW4xJywgJ3N0cmljdCcpKQorICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgJ19oZWFkZXJzX2J1ZmZlcicpOgorICAgICAgICAgICAgICAgIHNlbGYuX2hlYWRlcnNfYnVmZmVyID0gW10KKyAgICAgICAgICAgIHNlbGYuX2hlYWRlcnNfYnVmZmVyLmFwcGVuZCgoIiVzICVkICVzXHJcbiIgJQorICAgICAgICAgICAgICAgICAgICAoc2VsZi5wcm90b2NvbF92ZXJzaW9uLCBjb2RlLCBtZXNzYWdlKSkuZW5jb2RlKAorICAgICAgICAgICAgICAgICAgICAgICAgJ2xhdGluLTEnLCAnc3RyaWN0JykpCiAKICAgICBkZWYgc2VuZF9oZWFkZXIoc2VsZiwga2V5d29yZCwgdmFsdWUpOgotICAgICAgICAiIiJTZW5kIGEgTUlNRSBoZWFkZXIuIiIiCisgICAgICAgICIiIlNlbmQgYSBNSU1FIGhlYWRlciB0byB0aGUgaGVhZGVycyBidWZmZXIuIiIiCiAgICAgICAgIGlmIHNlbGYucmVxdWVzdF92ZXJzaW9uICE9ICdIVFRQLzAuOSc6CiAgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAnX2hlYWRlcnNfYnVmZmVyJyk6CiAgICAgICAgICAgICAgICAgc2VsZi5faGVhZGVyc19idWZmZXIgPSBbXQogICAgICAgICAgICAgc2VsZi5faGVhZGVyc19idWZmZXIuYXBwZW5kKAotICAgICAgICAgICAgICAgICgiJXM6ICVzXHJcbiIgJSAoa2V5d29yZCwgdmFsdWUpKS5lbmNvZGUoJ2xhdGluMScsICdzdHJpY3QnKSkKKyAgICAgICAgICAgICAgICAoIiVzOiAlc1xyXG4iICUgKGtleXdvcmQsIHZhbHVlKSkuZW5jb2RlKCdsYXRpbi0xJywgJ3N0cmljdCcpKQogCiAgICAgICAgIGlmIGtleXdvcmQubG93ZXIoKSA9PSAnY29ubmVjdGlvbic6CiAgICAgICAgICAgICBpZiB2YWx1ZS5sb3dlcigpID09ICdjbG9zZSc6CkBAIC00NjksNiArNDc3LDEwIEBACiAgICAgICAgICIiIlNlbmQgdGhlIGJsYW5rIGxpbmUgZW5kaW5nIHRoZSBNSU1FIGhlYWRlcnMuIiIiCiAgICAgICAgIGlmIHNlbGYucmVxdWVzdF92ZXJzaW9uICE9ICdIVFRQLzAuOSc6CiAgICAgICAgICAgICBzZWxmLl9oZWFkZXJzX2J1ZmZlci5hcHBlbmQoYiJcclxuIikKKyAgICAgICAgICAgIHNlbGYuZmx1c2hfaGVhZGVycygpCisKKyAgICBkZWYgZmx1c2hfaGVhZGVycyhzZWxmKToKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX2hlYWRlcnNfYnVmZmVyJyk6CiAgICAgICAgICAgICBzZWxmLndmaWxlLndyaXRlKGIiIi5qb2luKHNlbGYuX2hlYWRlcnNfYnVmZmVyKSkKICAgICAgICAgICAgIHNlbGYuX2hlYWRlcnNfYnVmZmVyID0gW10KIApAQCAtNTE0LDcgKzUyNiw3IEBACiAgICAgICAgICIiIgogCiAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIiVzIC0gLSBbJXNdICVzXG4iICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jbGllbnRfYWRkcmVzc1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5hZGRyZXNzX3N0cmluZygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ19kYXRlX3RpbWVfc3RyaW5nKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCVhcmdzKSkKIApAQCAtNTQ4LDE1ICs1NjAsOSBAQAogICAgICAgICAgICAgICAgICAnSnVsJywgJ0F1ZycsICdTZXAnLCAnT2N0JywgJ05vdicsICdEZWMnXQogCiAgICAgZGVmIGFkZHJlc3Nfc3RyaW5nKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIGNsaWVudCBhZGRyZXNzIGZvcm1hdHRlZCBmb3IgbG9nZ2luZy4KKyAgICAgICAgIiIiUmV0dXJuIHRoZSBjbGllbnQgYWRkcmVzcy4iIiIKIAotICAgICAgICBUaGlzIHZlcnNpb24gbG9va3MgdXAgdGhlIGZ1bGwgaG9zdG5hbWUgdXNpbmcgZ2V0aG9zdGJ5YWRkcigpLAotICAgICAgICBhbmQgdHJpZXMgdG8gZmluZCBhIG5hbWUgdGhhdCBjb250YWlucyBhdCBsZWFzdCBvbmUgZG90LgotCi0gICAgICAgICIiIgotCi0gICAgICAgIGhvc3QsIHBvcnQgPSBzZWxmLmNsaWVudF9hZGRyZXNzWzoyXQotICAgICAgICByZXR1cm4gc29ja2V0LmdldGZxZG4oaG9zdCkKKyAgICAgICAgcmV0dXJuIHNlbGYuY2xpZW50X2FkZHJlc3NbMF0KIAogICAgICMgRXNzZW50aWFsbHkgc3RhdGljIGNsYXNzIHZhcmlhYmxlcwogCkBAIC01NjksNyArNTc1LDcgQEAKIAogICAgICMgVGFibGUgbWFwcGluZyByZXNwb25zZSBjb2RlcyB0byBtZXNzYWdlczsgZW50cmllcyBoYXZlIHRoZQogICAgICMgZm9ybSB7Y29kZTogKHNob3J0bWVzc2FnZSwgbG9uZ21lc3NhZ2UpfS4KLSAgICAjIFNlZSBSRkMgMjYxNi4KKyAgICAjIFNlZSBSRkMgMjYxNiBhbmQgNjU4NS4KICAgICByZXNwb25zZXMgPSB7CiAgICAgICAgIDEwMDogKCdDb250aW51ZScsICdSZXF1ZXN0IHJlY2VpdmVkLCBwbGVhc2UgY29udGludWUnKSwKICAgICAgICAgMTAxOiAoJ1N3aXRjaGluZyBQcm90b2NvbHMnLApAQCAtNjI0LDYgKzYzMCwxMiBAQAogICAgICAgICAgICAgICAnQ2Fubm90IHNhdGlzZnkgcmVxdWVzdCByYW5nZS4nKSwKICAgICAgICAgNDE3OiAoJ0V4cGVjdGF0aW9uIEZhaWxlZCcsCiAgICAgICAgICAgICAgICdFeHBlY3QgY29uZGl0aW9uIGNvdWxkIG5vdCBiZSBzYXRpc2ZpZWQuJyksCisgICAgICAgIDQyODogKCdQcmVjb25kaXRpb24gUmVxdWlyZWQnLAorICAgICAgICAgICAgICAnVGhlIG9yaWdpbiBzZXJ2ZXIgcmVxdWlyZXMgdGhlIHJlcXVlc3QgdG8gYmUgY29uZGl0aW9uYWwuJyksCisgICAgICAgIDQyOTogKCdUb28gTWFueSBSZXF1ZXN0cycsICdUaGUgdXNlciBoYXMgc2VudCB0b28gbWFueSByZXF1ZXN0cyAnCisgICAgICAgICAgICAgICdpbiBhIGdpdmVuIGFtb3VudCBvZiB0aW1lICgicmF0ZSBsaW1pdGluZyIpLicpLAorICAgICAgICA0MzE6ICgnUmVxdWVzdCBIZWFkZXIgRmllbGRzIFRvbyBMYXJnZScsICdUaGUgc2VydmVyIGlzIHVud2lsbGluZyB0byAnCisgICAgICAgICAgICAgICdwcm9jZXNzIHRoZSByZXF1ZXN0IGJlY2F1c2UgaXRzIGhlYWRlciBmaWVsZHMgYXJlIHRvbyBsYXJnZS4nKSwKIAogICAgICAgICA1MDA6ICgnSW50ZXJuYWwgU2VydmVyIEVycm9yJywgJ1NlcnZlciBnb3QgaXRzZWxmIGluIHRyb3VibGUnKSwKICAgICAgICAgNTAxOiAoJ05vdCBJbXBsZW1lbnRlZCcsCkBAIC02MzQsNiArNjQ2LDggQEAKICAgICAgICAgNTA0OiAoJ0dhdGV3YXkgVGltZW91dCcsCiAgICAgICAgICAgICAgICdUaGUgZ2F0ZXdheSBzZXJ2ZXIgZGlkIG5vdCByZWNlaXZlIGEgdGltZWx5IHJlc3BvbnNlJyksCiAgICAgICAgIDUwNTogKCdIVFRQIFZlcnNpb24gTm90IFN1cHBvcnRlZCcsICdDYW5ub3QgZnVsZmlsbCByZXF1ZXN0LicpLAorICAgICAgICA1MTE6ICgnTmV0d29yayBBdXRoZW50aWNhdGlvbiBSZXF1aXJlZCcsCisgICAgICAgICAgICAgICdUaGUgY2xpZW50IG5lZWRzIHRvIGF1dGhlbnRpY2F0ZSB0byBnYWluIG5ldHdvcmsgYWNjZXNzLicpLAogICAgICAgICB9CiAKIApAQCAtNzIyLDEwICs3MzYsMTYgQEAKICAgICAgICAgbGlzdC5zb3J0KGtleT1sYW1iZGEgYTogYS5sb3dlcigpKQogICAgICAgICByID0gW10KICAgICAgICAgZGlzcGxheXBhdGggPSBodG1sLmVzY2FwZSh1cmxsaWIucGFyc2UudW5xdW90ZShzZWxmLnBhdGgpKQotICAgICAgICByLmFwcGVuZCgnPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMiBGaW5hbC8vRU4iPicpCi0gICAgICAgIHIuYXBwZW5kKCI8aHRtbD5cbjx0aXRsZT5EaXJlY3RvcnkgbGlzdGluZyBmb3IgJXM8L3RpdGxlPlxuIiAlIGRpc3BsYXlwYXRoKQotICAgICAgICByLmFwcGVuZCgiPGJvZHk+XG48aDI+RGlyZWN0b3J5IGxpc3RpbmcgZm9yICVzPC9oMj5cbiIgJSBkaXNwbGF5cGF0aCkKLSAgICAgICAgci5hcHBlbmQoIjxocj5cbjx1bD5cbiIpCisgICAgICAgIGVuYyA9IHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKQorICAgICAgICB0aXRsZSA9ICdEaXJlY3RvcnkgbGlzdGluZyBmb3IgJXMnICUgZGlzcGxheXBhdGgKKyAgICAgICAgci5hcHBlbmQoJzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgJworICAgICAgICAgICAgICAgICAnImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPicpCisgICAgICAgIHIuYXBwZW5kKCc8aHRtbD5cbjxoZWFkPicpCisgICAgICAgIHIuYXBwZW5kKCc8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiICcKKyAgICAgICAgICAgICAgICAgJ2NvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD0lcyI+JyAlIGVuYykKKyAgICAgICAgci5hcHBlbmQoJzx0aXRsZT4lczwvdGl0bGU+XG48L2hlYWQ+JyAlIHRpdGxlKQorICAgICAgICByLmFwcGVuZCgnPGJvZHk+XG48aDE+JXM8L2gxPicgJSB0aXRsZSkKKyAgICAgICAgci5hcHBlbmQoJzxocj5cbjx1bD4nKQogICAgICAgICBmb3IgbmFtZSBpbiBsaXN0OgogICAgICAgICAgICAgZnVsbG5hbWUgPSBvcy5wYXRoLmpvaW4ocGF0aCwgbmFtZSkKICAgICAgICAgICAgIGRpc3BsYXluYW1lID0gbGlua25hbWUgPSBuYW1lCkBAIC03MzYsMTEgKzc1NiwxMCBAQAogICAgICAgICAgICAgaWYgb3MucGF0aC5pc2xpbmsoZnVsbG5hbWUpOgogICAgICAgICAgICAgICAgIGRpc3BsYXluYW1lID0gbmFtZSArICJAIgogICAgICAgICAgICAgICAgICMgTm90ZTogYSBsaW5rIHRvIGEgZGlyZWN0b3J5IGRpc3BsYXlzIHdpdGggQCBhbmQgbGlua3Mgd2l0aCAvCi0gICAgICAgICAgICByLmFwcGVuZCgnPGxpPjxhIGhyZWY9IiVzIj4lczwvYT5cbicKKyAgICAgICAgICAgIHIuYXBwZW5kKCc8bGk+PGEgaHJlZj0iJXMiPiVzPC9hPjwvbGk+JwogICAgICAgICAgICAgICAgICAgICAlICh1cmxsaWIucGFyc2UucXVvdGUobGlua25hbWUpLCBodG1sLmVzY2FwZShkaXNwbGF5bmFtZSkpKQotICAgICAgICByLmFwcGVuZCgiPC91bD5cbjxocj5cbjwvYm9keT5cbjwvaHRtbD5cbiIpCi0gICAgICAgIGVuYyA9IHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKQotICAgICAgICBlbmNvZGVkID0gJycuam9pbihyKS5lbmNvZGUoZW5jKQorICAgICAgICByLmFwcGVuZCgnPC91bD5cbjxocj5cbjwvYm9keT5cbjwvaHRtbD5cbicpCisgICAgICAgIGVuY29kZWQgPSAnXG4nLmpvaW4ocikuZW5jb2RlKGVuYykKICAgICAgICAgZiA9IGlvLkJ5dGVzSU8oKQogICAgICAgICBmLndyaXRlKGVuY29kZWQpCiAgICAgICAgIGYuc2VlaygwKQpAQCAtODg4LDExICs5MDcsNyBAQAogCiBkZWYgZXhlY3V0YWJsZShwYXRoKToKICAgICAiIiJUZXN0IGZvciBleGVjdXRhYmxlIGZpbGUuIiIiCi0gICAgdHJ5OgotICAgICAgICBzdCA9IG9zLnN0YXQocGF0aCkKLSAgICBleGNlcHQgb3MuZXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBzdC5zdF9tb2RlICYgMG8xMTEgIT0gMAorICAgIHJldHVybiBvcy5hY2Nlc3MocGF0aCwgb3MuWF9PSykKIAogCiBjbGFzcyBDR0lIVFRQUmVxdWVzdEhhbmRsZXIoU2ltcGxlSFRUUFJlcXVlc3RIYW5kbGVyKToKQEAgLTEwMDgsNyArMTAyMyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0bmFtZSkKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBpc3B5ID0gc2VsZi5pc19weXRob24oc2NyaXB0bmFtZSkKLSAgICAgICAgaWYgbm90IGlzcHk6CisgICAgICAgIGlmIHNlbGYuaGF2ZV9mb3JrIG9yIG5vdCBpc3B5OgogICAgICAgICAgICAgaWYgbm90IHNlbGYuaXNfZXhlY3V0YWJsZShzY3JpcHRmaWxlKToKICAgICAgICAgICAgICAgICBzZWxmLnNlbmRfZXJyb3IoNDAzLCAiQ0dJIHNjcmlwdCBpcyBub3QgZXhlY3V0YWJsZSAoJXIpIiAlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdG5hbWUpCkBAIC0xMDI5LDkgKzEwNDQsNiBAQAogICAgICAgICBlbnZbJ1NDUklQVF9OQU1FJ10gPSBzY3JpcHRuYW1lCiAgICAgICAgIGlmIHF1ZXJ5OgogICAgICAgICAgICAgZW52WydRVUVSWV9TVFJJTkcnXSA9IHF1ZXJ5Ci0gICAgICAgIGhvc3QgPSBzZWxmLmFkZHJlc3Nfc3RyaW5nKCkKLSAgICAgICAgaWYgaG9zdCAhPSBzZWxmLmNsaWVudF9hZGRyZXNzWzBdOgotICAgICAgICAgICAgZW52WydSRU1PVEVfSE9TVCddID0gaG9zdAogICAgICAgICBlbnZbJ1JFTU9URV9BRERSJ10gPSBzZWxmLmNsaWVudF9hZGRyZXNzWzBdCiAgICAgICAgIGF1dGhvcml6YXRpb24gPSBzZWxmLmhlYWRlcnMuZ2V0KCJhdXRob3JpemF0aW9uIikKICAgICAgICAgaWYgYXV0aG9yaXphdGlvbjoKQEAgLTEwODMsNiArMTA5NSw3IEBACiAgICAgICAgICAgICBlbnYuc2V0ZGVmYXVsdChrLCAiIikKIAogICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwLCAiU2NyaXB0IG91dHB1dCBmb2xsb3dzIikKKyAgICAgICAgc2VsZi5mbHVzaF9oZWFkZXJzKCkKIAogICAgICAgICBkZWNvZGVkX3F1ZXJ5ID0gcXVlcnkucmVwbGFjZSgnKycsICcgJykKIApAQCAtMTE2MiwxOCArMTE3NSwxMyBAQAogCiAKIGRlZiB0ZXN0KEhhbmRsZXJDbGFzcyA9IEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIsCi0gICAgICAgICBTZXJ2ZXJDbGFzcyA9IEhUVFBTZXJ2ZXIsIHByb3RvY29sPSJIVFRQLzEuMCIpOgorICAgICAgICAgU2VydmVyQ2xhc3MgPSBIVFRQU2VydmVyLCBwcm90b2NvbD0iSFRUUC8xLjAiLCBwb3J0PTgwMDApOgogICAgICIiIlRlc3QgdGhlIEhUVFAgcmVxdWVzdCBoYW5kbGVyIGNsYXNzLgogCiAgICAgVGhpcyBydW5zIGFuIEhUVFAgc2VydmVyIG9uIHBvcnQgODAwMCAob3IgdGhlIGZpcnN0IGNvbW1hbmQgbGluZQogICAgIGFyZ3VtZW50KS4KIAogICAgICIiIgotCi0gICAgaWYgc3lzLmFyZ3ZbMTpdOgotICAgICAgICBwb3J0ID0gaW50KHN5cy5hcmd2WzFdKQotICAgIGVsc2U6Ci0gICAgICAgIHBvcnQgPSA4MDAwCiAgICAgc2VydmVyX2FkZHJlc3MgPSAoJycsIHBvcnQpCiAKICAgICBIYW5kbGVyQ2xhc3MucHJvdG9jb2xfdmVyc2lvbiA9IHByb3RvY29sCkBAIC0xMTg5LDQgKzExOTcsMTUgQEAKICAgICAgICAgc3lzLmV4aXQoMCkKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB0ZXN0KEhhbmRsZXJDbGFzcz1TaW1wbGVIVFRQUmVxdWVzdEhhbmRsZXIpCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tY2dpJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nUnVuIGFzIENHSSBTZXJ2ZXInKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ3BvcnQnLCBhY3Rpb249J3N0b3JlJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9ODAwMCwgdHlwZT1pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICBuYXJncz0nPycsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdTcGVjaWZ5IGFsdGVybmF0ZSBwb3J0IFtkZWZhdWx0OiA4MDAwXScpCisgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKyAgICBpZiBhcmdzLmNnaToKKyAgICAgICAgdGVzdChIYW5kbGVyQ2xhc3M9Q0dJSFRUUFJlcXVlc3RIYW5kbGVyLCBwb3J0PWFyZ3MucG9ydCkKKyAgICBlbHNlOgorICAgICAgICB0ZXN0KEhhbmRsZXJDbGFzcz1TaW1wbGVIVFRQUmVxdWVzdEhhbmRsZXIsIHBvcnQ9YXJncy5wb3J0KQpkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvQXV0b0NvbXBsZXRlLnB5IGIvTGliL2lkbGVsaWIvQXV0b0NvbXBsZXRlLnB5CmluZGV4IGU0YzFhZmYuLjkyOWQzNTggMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL0F1dG9Db21wbGV0ZS5weQorKysgYi9MaWIvaWRsZWxpYi9BdXRvQ29tcGxldGUucHkKQEAgLTksOSArOSw2IEBACiAKIGZyb20gaWRsZWxpYi5jb25maWdIYW5kbGVyIGltcG9ydCBpZGxlQ29uZgogCi0jIFRoaXMgc3RyaW5nIGluY2x1ZGVzIGFsbCBjaGFycyB0aGF0IG1heSBiZSBpbiBhIGZpbGUgbmFtZSAod2l0aG91dCBhIHBhdGgKLSMgc2VwYXJhdG9yKQotRklMRU5BTUVfQ0hBUlMgPSBzdHJpbmcuYXNjaWlfbGV0dGVycyArIHN0cmluZy5kaWdpdHMgKyBvcy5jdXJkaXIgKyAiLl9+IyQ6LSIKICMgVGhpcyBzdHJpbmcgaW5jbHVkZXMgYWxsIGNoYXJzIHRoYXQgbWF5IGJlIGluIGFuIGlkZW50aWZpZXIKIElEX0NIQVJTID0gc3RyaW5nLmFzY2lpX2xldHRlcnMgKyBzdHJpbmcuZGlnaXRzICsgIl8iCiAKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL0NvbG9yRGVsZWdhdG9yLnB5IGIvTGliL2lkbGVsaWIvQ29sb3JEZWxlZ2F0b3IucHkKaW5kZXggZTE4ODE5Mi4uZTRjY2I0MiAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvQ29sb3JEZWxlZ2F0b3IucHkKKysrIGIvTGliL2lkbGVsaWIvQ29sb3JEZWxlZ2F0b3IucHkKQEAgLTIxLDEwICsyMSwxMSBAQAogICAgICMgMXN0ICdmaWxlJyBjb2xvcml6ZWQgbm9ybWFsLCAybmQgYXMgYnVpbHRpbiwgM3JkIGFzIHN0cmluZwogICAgIGJ1aWx0aW4gPSByIihbXi4nXCJcXCNdXGJ8XikiICsgYW55KCJCVUlMVElOIiwgYnVpbHRpbmxpc3QpICsgciJcYiIKICAgICBjb21tZW50ID0gYW55KCJDT01NRU5UIiwgW3IiI1teXG5dKiJdKQotICAgIHNxc3RyaW5nID0gciIoXGJbclJiQl0pPydbXidcXFxuXSooXFwuW14nXFxcbl0qKSonPyIKLSAgICBkcXN0cmluZyA9IHInKFxiW3JSYkJdKT8iW14iXFxcbl0qKFxcLlteIlxcXG5dKikqIj8nCi0gICAgc3Ezc3RyaW5nID0gciIoXGJbclJiQl0pPycnJ1teJ1xcXSooKFxcLnwnKD8hJycpKVteJ1xcXSopKignJycpPyIKLSAgICBkcTNzdHJpbmcgPSByJyhcYltyUmJCXSk/IiIiW14iXFxdKigoXFwufCIoPyEiIikpW14iXFxdKikqKCIiIik/JworICAgIHN0cmluZ3ByZWZpeCA9IHIiKFxicnx1fHVyfFJ8VXxVUnxVcnx1UnxifEJ8YnJ8QnJ8YlJ8QlJ8cmJ8ckJ8UmJ8UkIpPyIKKyAgICBzcXN0cmluZyA9IHN0cmluZ3ByZWZpeCArIHIiJ1teJ1xcXG5dKihcXC5bXidcXFxuXSopKic/IgorICAgIGRxc3RyaW5nID0gc3RyaW5ncHJlZml4ICsgciciW14iXFxcbl0qKFxcLlteIlxcXG5dKikqIj8nCisgICAgc3Ezc3RyaW5nID0gc3RyaW5ncHJlZml4ICsgciInJydbXidcXF0qKChcXC58Jyg/IScnKSlbXidcXF0qKSooJycnKT8iCisgICAgZHEzc3RyaW5nID0gc3RyaW5ncHJlZml4ICsgciciIiJbXiJcXF0qKChcXC58Iig/ISIiKSlbXiJcXF0qKSooIiIiKT8nCiAgICAgc3RyaW5nID0gYW55KCJTVFJJTkciLCBbc3Ezc3RyaW5nLCBkcTNzdHJpbmcsIHNxc3RyaW5nLCBkcXN0cmluZ10pCiAgICAgcmV0dXJuIGt3ICsgInwiICsgYnVpbHRpbiArICJ8IiArIGNvbW1lbnQgKyAifCIgKyBzdHJpbmcgK1wKICAgICAgICAgICAgInwiICsgYW55KCJTWU5DIiwgW3IiXG4iXSkKQEAgLTE0OSw5ICsxNTAsOSBAQAogICAgICAgICAgICAgc2VsZi5zdG9wX2NvbG9yaXppbmcgPSBGYWxzZQogICAgICAgICAgICAgc2VsZi5jb2xvcml6aW5nID0gVHJ1ZQogICAgICAgICAgICAgaWYgREVCVUc6IHByaW50KCJjb2xvcml6aW5nLi4uIikKLSAgICAgICAgICAgIHQwID0gdGltZS5jbG9jaygpCisgICAgICAgICAgICB0MCA9IHRpbWUucGVyZl9jb3VudGVyKCkKICAgICAgICAgICAgIHNlbGYucmVjb2xvcml6ZV9tYWluKCkKLSAgICAgICAgICAgIHQxID0gdGltZS5jbG9jaygpCisgICAgICAgICAgICB0MSA9IHRpbWUucGVyZl9jb3VudGVyKCkKICAgICAgICAgICAgIGlmIERFQlVHOiBwcmludCgiJS4zZiBzZWNvbmRzIiAlICh0MS10MCkpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLmNvbG9yaXppbmcgPSBGYWxzZQpkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvRWRpdG9yV2luZG93LnB5IGIvTGliL2lkbGVsaWIvRWRpdG9yV2luZG93LnB5CmluZGV4IGJlYzIxOTEuLjZiZGNlY2MgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL0VkaXRvcldpbmRvdy5weQorKysgYi9MaWIvaWRsZWxpYi9FZGl0b3JXaW5kb3cucHkKQEAgLTEsOCArMSw5IEBACi1pbXBvcnQgc3lzCitpbXBvcnQgaW1wCitpbXBvcnQgaW1wb3J0bGliCiBpbXBvcnQgb3MKIGltcG9ydCByZQogaW1wb3J0IHN0cmluZwotaW1wb3J0IGltcAoraW1wb3J0IHN5cwogZnJvbSB0a2ludGVyIGltcG9ydCAqCiBpbXBvcnQgdGtpbnRlci5zaW1wbGVkaWFsb2cgYXMgdGtTaW1wbGVEaWFsb2cKIGltcG9ydCB0a2ludGVyLm1lc3NhZ2Vib3ggYXMgdGtNZXNzYWdlQm94CkBAIC0yNyw4ICsyOCw3IEBACiAgICAgIkZvcm1hdCBzeXMudmVyc2lvbl9pbmZvIHRvIHByb2R1Y2UgdGhlIFNwaGlueCB2ZXJzaW9uIHN0cmluZyB1c2VkIHRvIGluc3RhbGwgdGhlIGNobSBkb2NzIgogICAgIG1ham9yLCBtaW5vciwgbWljcm8sIGxldmVsLCBzZXJpYWwgPSBzeXMudmVyc2lvbl9pbmZvCiAgICAgcmVsZWFzZSA9ICclcyVzJyAlIChtYWpvciwgbWlub3IpCi0gICAgaWYgbWljcm86Ci0gICAgICAgIHJlbGVhc2UgKz0gJyVzJyAlIChtaWNybywpCisgICAgcmVsZWFzZSArPSAnJXMnICUgKG1pY3JvLCkKICAgICBpZiBsZXZlbCA9PSAnY2FuZGlkYXRlJzoKICAgICAgICAgcmVsZWFzZSArPSAncmMlcycgJSAoc2VyaWFsLCkKICAgICBlbGlmIGxldmVsICE9ICdmaW5hbCc6CkBAIC0xMjAsNyArMTIwLDcgQEAKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmbGlzdD1Ob25lLCBmaWxlbmFtZT1Ob25lLCBrZXk9Tm9uZSwgcm9vdD1Ob25lKToKICAgICAgICAgaWYgRWRpdG9yV2luZG93LmhlbHBfdXJsIGlzIE5vbmU6Ci0gICAgICAgICAgICBkb2Nob21lID0gIG9zLnBhdGguam9pbihzeXMucHJlZml4LCAnRG9jJywgJ2luZGV4Lmh0bWwnKQorICAgICAgICAgICAgZG9jaG9tZSA9ICBvcy5wYXRoLmpvaW4oc3lzLmJhc2VfcHJlZml4LCAnRG9jJywgJ2luZGV4Lmh0bWwnKQogICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtLmNvdW50KCdsaW51eCcpOgogICAgICAgICAgICAgICAgICMgbG9vayBmb3IgaHRtbCBkb2NzIGluIGEgY291cGxlIG9mIHN0YW5kYXJkIHBsYWNlcwogICAgICAgICAgICAgICAgIHB5dmVyID0gJ3B5dGhvbi1kb2NzLScgKyAnJXMuJXMuJXMnICUgc3lzLnZlcnNpb25faW5mb1s6M10KQEAgLTEzMSwxMyArMTMxLDEzIEBACiAgICAgICAgICAgICAgICAgICAgIGRvY2hvbWUgPSBvcy5wYXRoLmpvaW4oYmFzZXBhdGgsIHB5dmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEb2MnLCAnaW5kZXguaHRtbCcpCiAgICAgICAgICAgICBlbGlmIHN5cy5wbGF0Zm9ybVs6M10gPT0gJ3dpbic6Ci0gICAgICAgICAgICAgICAgY2htZmlsZSA9IG9zLnBhdGguam9pbihzeXMucHJlZml4LCAnRG9jJywKKyAgICAgICAgICAgICAgICBjaG1maWxlID0gb3MucGF0aC5qb2luKHN5cy5iYXNlX3ByZWZpeCwgJ0RvYycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUHl0aG9uJXMuY2htJyAlIF9zcGhpbnhfdmVyc2lvbigpKQogICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKGNobWZpbGUpOgogICAgICAgICAgICAgICAgICAgICBkb2Nob21lID0gY2htZmlsZQogICAgICAgICAgICAgZWxpZiBtYWNvc3hTdXBwb3J0LnJ1bm5pbmdBc09TWEFwcCgpOgogICAgICAgICAgICAgICAgICMgZG9jdW1lbnRhdGlvbiBpcyBzdG9yZWQgaW5zaWRlIHRoZSBweXRob24gZnJhbWV3b3JrCi0gICAgICAgICAgICAgICAgZG9jaG9tZSA9IG9zLnBhdGguam9pbihzeXMucHJlZml4LAorICAgICAgICAgICAgICAgIGRvY2hvbWUgPSBvcy5wYXRoLmpvaW4oc3lzLmJhc2VfcHJlZml4LAogICAgICAgICAgICAgICAgICAgICAgICAgJ1Jlc291cmNlcy9FbmdsaXNoLmxwcm9qL0RvY3VtZW50YXRpb24vaW5kZXguaHRtbCcpCiAgICAgICAgICAgICBkb2Nob21lID0gb3MucGF0aC5ub3JtcGF0aChkb2Nob21lKQogICAgICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZG9jaG9tZSk6CkBAIC0xMDA1LDcgKzEwMDUsMTAgQEAKIAogICAgIGRlZiBsb2FkX2V4dGVuc2lvbihzZWxmLCBuYW1lKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgbW9kID0gX19pbXBvcnRfXyhuYW1lLCBnbG9iYWxzKCksIGxvY2FscygpLCBbXSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBtb2QgPSBpbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgnLicgKyBuYW1lLCBwYWNrYWdlPV9fcGFja2FnZV9fKQorICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAgICAgIG1vZCA9IGltcG9ydGxpYi5pbXBvcnRfbW9kdWxlKG5hbWUpCiAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAgICAgICAgIHByaW50KCJcbkZhaWxlZCB0byBpbXBvcnQgZXh0ZW5zaW9uOiAiLCBuYW1lKQogICAgICAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL05FV1MudHh0IGIvTGliL2lkbGVsaWIvTkVXUy50eHQKaW5kZXggZDU3MjM3ZC4uZmYyM2M2ZCAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvTkVXUy50eHQKKysrIGIvTGliL2lkbGVsaWIvTkVXUy50eHQKQEAgLTEsNCArMSw0IEBACi1XaGF0J3MgTmV3IGluIElETEUgMy4yLjQ/CitXaGF0J3MgTmV3IGluIElETEUgMy4zLjA/CiA9PT09PT09PT09PT09PT09PT09PT09PT09CiAKIC0gSXNzdWUgIyAxMjUxMDogQXR0ZW1wdCB0byBnZXQgY2VydGFpbiB0b29sIHRpcHMgbm8gbG9uZ2VyIGNyYXNoZXMgSURMRS4KQEAgLTEyLDggKzEyLDEwIEBACiAtIElzc3VlICMxNDkzNzogUGVyZm9ybSBhdXRvLWNvbXBsZXRpb24gb2YgZmlsZW5hbWVzIGluIHN0cmluZ3MgZXZlbiBmb3IKICAgbm9uLUFTQ0lJIGZpbGVuYW1lcy4gTGlrZXdpc2UgZm9yIGlkZW50aWZpZXJzLgogCi1XaGF0J3MgTmV3IGluIElETEUgMy4yLjM/Ci09PT09PT09PT09PT09PT09PT09PT09PT09CistIElzc3VlICM4NTE1OiBTZXQgX19maWxlX18gd2hlbiBydW4gZmlsZSBpbiBJRExFLgorICBJbml0aWFsIHBhdGNoIGJ5IEJydWNlIEZyZWRlcmlrc2VuLgorCistIElETEUgY2FuIGJlIGxhdW5jaGVkIGFzIGBweXRob24gLW0gaWRsZWxpYmAKIAogLSBJc3N1ZSAjMTQ0MDk6IElETEUgbm93IHByb3Blcmx5IGV4ZWN1dGVzIGNvbW1hbmRzIGluIHRoZSBTaGVsbCB3aW5kb3cKICAgd2hlbiBpdCBjYW5ub3QgcmVhZCB0aGUgbm9ybWFsIGNvbmZpZyBmaWxlcyBvbiBzdGFydHVwIGFuZApkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvUGF0aEJyb3dzZXIucHkgYi9MaWIvaWRsZWxpYi9QYXRoQnJvd3Nlci5weQppbmRleCBkODhhNDhlLi45OTU0ZjA3IDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9QYXRoQnJvd3Nlci5weQorKysgYi9MaWIvaWRsZWxpYi9QYXRoQnJvd3Nlci5weQpAQCAtMSw2ICsxLDcgQEAKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IGltcAoraW1wb3J0IGltcG9ydGxpYi5tYWNoaW5lcnkKIAogZnJvbSBpZGxlbGliLlRyZWVXaWRnZXQgaW1wb3J0IFRyZWVJdGVtCiBmcm9tIGlkbGVsaWIuQ2xhc3NCcm93c2VyIGltcG9ydCBDbGFzc0Jyb3dzZXIsIE1vZHVsZUJyb3dzZXJUcmVlSXRlbQpAQCAtNzAsNyArNzEsOSBAQAogCiAgICAgZGVmIGxpc3Rtb2R1bGVzKHNlbGYsIGFsbG5hbWVzKToKICAgICAgICAgbW9kdWxlcyA9IHt9Ci0gICAgICAgIHN1ZmZpeGVzID0gaW1wLmdldF9zdWZmaXhlcygpCisgICAgICAgIHN1ZmZpeGVzID0gaW1wb3J0bGliLm1hY2hpbmVyeS5FWFRFTlNJT05fU1VGRklYRVNbOl0KKyAgICAgICAgc3VmZml4ZXMgKz0gaW1wb3J0bGliLm1hY2hpbmVyeS5TT1VSQ0VfU1VGRklYRVNbOl0KKyAgICAgICAgc3VmZml4ZXMgKz0gaW1wb3J0bGliLm1hY2hpbmVyeS5CWVRFQ09ERV9TVUZGSVhFU1s6XQogICAgICAgICBzb3J0ZWQgPSBbXQogICAgICAgICBmb3Igc3VmZiwgbW9kZSwgZmxhZyBpbiBzdWZmaXhlczoKICAgICAgICAgICAgIGkgPSAtbGVuKHN1ZmYpCmRpZmYgLS1naXQgYS9MaWIvaWRsZWxpYi9QeVNoZWxsLnB5IGIvTGliL2lkbGVsaWIvUHlTaGVsbC5weQppbmRleCAyNzhmNGY2Li45ZGY4OTU3IDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9QeVNoZWxsLnB5CisrKyBiL0xpYi9pZGxlbGliL1B5U2hlbGwucHkKQEAgLTQ3Myw2ICs0NzMsMTAgQEAKIAogICAgIGRlZiBraWxsX3N1YnByb2Nlc3Moc2VsZik6CiAgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYucnBjY2x0Lmxpc3RlbmluZ19zb2NrLmNsb3NlKCkKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOiAgIyBubyBzb2NrZXQKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5ycGNjbHQuY2xvc2UoKQogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6ICAjIG5vIHNvY2tldAogICAgICAgICAgICAgcGFzcwpAQCAtMTAwMCw2ICsxMDA0LDggQEAKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG5vc3ViID0gIj09PT0gTm8gU3VicHJvY2VzcyA9PT09IgorICAgICAgICAgICAgc3lzLmRpc3BsYXlob29rID0gcnBjLmRpc3BsYXlob29rCisKICAgICAgICAgc2VsZi53cml0ZSgiUHl0aG9uICVzIG9uICVzXG4lc1xuJXMiICUKICAgICAgICAgICAgICAgICAgICAoc3lzLnZlcnNpb24sIHN5cy5wbGF0Zm9ybSwgc2VsZi5DT1BZUklHSFQsIG5vc3ViKSkKICAgICAgICAgc2VsZi5zaG93cHJvbXB0KCkKQEAgLTEyMjIsNiArMTIyOCwxNiBAQAogICAgICAgICBzZWxmLnNldF9saW5lX2FuZF9jb2x1bW4oKQogCiAgICAgZGVmIHdyaXRlKHNlbGYsIHMsIHRhZ3M9KCkpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHMsIHN0cikgYW5kIGxlbihzKSBhbmQgbWF4KHMpID4gJ1x1ZmZmZic6CisgICAgICAgICAgICAjIFRrIGRvZXNuJ3Qgc3VwcG9ydCBvdXRwdXR0aW5nIG5vbi1CTVAgY2hhcmFjdGVycworICAgICAgICAgICAgIyBMZXQncyBhc3N1bWUgd2hhdCBwcmludGVkIHN0cmluZyBpcyBub3QgdmVyeSBsb25nLAorICAgICAgICAgICAgIyBmaW5kIGZpcnN0IG5vbi1CTVAgY2hhcmFjdGVyIGFuZCBjb25zdHJ1Y3QgaW5mb3JtYXRpdmUKKyAgICAgICAgICAgICMgVW5pY29kZUVuY29kZUVycm9yIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgIGZvciBzdGFydCwgY2hhciBpbiBlbnVtZXJhdGUocyk6CisgICAgICAgICAgICAgICAgaWYgY2hhciA+ICdcdWZmZmYnOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgcmFpc2UgVW5pY29kZUVuY29kZUVycm9yKCJVQ1MtMiIsIGNoYXIsIHN0YXJ0LCBzdGFydCsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdOb24tQk1QIGNoYXJhY3RlciBub3Qgc3VwcG9ydGVkIGluIFRrJykKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi50ZXh0Lm1hcmtfZ3Jhdml0eSgiaW9tYXJrIiwgInJpZ2h0IikKICAgICAgICAgICAgIE91dHB1dFdpbmRvdy53cml0ZShzZWxmLCBzLCB0YWdzLCAiaW9tYXJrIikKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL1NjcmlwdEJpbmRpbmcucHkgYi9MaWIvaWRsZWxpYi9TY3JpcHRCaW5kaW5nLnB5CmluZGV4IDE4Y2U5NjUuLjUyOGFkZjYgMTAwNjQ0Ci0tLSBhL0xpYi9pZGxlbGliL1NjcmlwdEJpbmRpbmcucHkKKysrIGIvTGliL2lkbGVsaWIvU2NyaXB0QmluZGluZy5weQpAQCAtMTUwLDE2ICsxNTAsMTYgQEAKICAgICAgICAgZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShmaWxlbmFtZSkKICAgICAgICAgIyBYWFggVG9vIG9mdGVuIHRoaXMgZGlzY2FyZHMgYXJndW1lbnRzIHRoZSB1c2VyIGp1c3Qgc2V0Li4uCiAgICAgICAgIGludGVycC5ydW5jb21tYW5kKCIiImlmIDE6Ci0gICAgICAgICAgICBfZmlsZW5hbWUgPSAlcgorICAgICAgICAgICAgX19maWxlX18gPSB7ZmlsZW5hbWUhcn0KICAgICAgICAgICAgIGltcG9ydCBzeXMgYXMgX3N5cwogICAgICAgICAgICAgZnJvbSBvcy5wYXRoIGltcG9ydCBiYXNlbmFtZSBhcyBfYmFzZW5hbWUKICAgICAgICAgICAgIGlmIChub3QgX3N5cy5hcmd2IG9yCi0gICAgICAgICAgICAgICAgX2Jhc2VuYW1lKF9zeXMuYXJndlswXSkgIT0gX2Jhc2VuYW1lKF9maWxlbmFtZSkpOgotICAgICAgICAgICAgICAgIF9zeXMuYXJndiA9IFtfZmlsZW5hbWVdCisgICAgICAgICAgICAgICAgX2Jhc2VuYW1lKF9zeXMuYXJndlswXSkgIT0gX2Jhc2VuYW1lKF9fZmlsZV9fKSk6CisgICAgICAgICAgICAgICAgX3N5cy5hcmd2ID0gW19fZmlsZV9fXQogICAgICAgICAgICAgaW1wb3J0IG9zIGFzIF9vcwotICAgICAgICAgICAgX29zLmNoZGlyKCVyKQotICAgICAgICAgICAgZGVsIF9maWxlbmFtZSwgX3N5cywgX2Jhc2VuYW1lLCBfb3MKLSAgICAgICAgICAgIFxuIiIiICUgKGZpbGVuYW1lLCBkaXJuYW1lKSkKKyAgICAgICAgICAgIF9vcy5jaGRpcih7ZGlybmFtZSFyfSkKKyAgICAgICAgICAgIGRlbCBfc3lzLCBfYmFzZW5hbWUsIF9vcworICAgICAgICAgICAgXG4iIiIuZm9ybWF0KGZpbGVuYW1lPWZpbGVuYW1lLCBkaXJuYW1lPWRpcm5hbWUpKQogICAgICAgICBpbnRlcnAucHJlcGVuZF9zeXNwYXRoKGZpbGVuYW1lKQogICAgICAgICAjIFhYWCBLQksgMDNKdWwwNCBXaGVuIHJ1biB3L28gc3VicHJvY2VzcywgcnVudGltZSB3YXJuaW5ncyBzdGlsbAogICAgICAgICAjICAgICAgICAgZ28gdG8gX19zdGRlcnJfXy4gIFdpdGggc3VicHJvY2VzcywgdGhleSBnbyB0byB0aGUgc2hlbGwuCmRpZmYgLS1naXQgYS9MaWIvaWRsZWxpYi9fX21haW5fXy5weSBiL0xpYi9pZGxlbGliL19fbWFpbl9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2NjZmMmYKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvaWRsZWxpYi9fX21haW5fXy5weQpAQCAtMCwwICsxLDkgQEAKKyIiIgorSURMRSBtYWluIGVudHJ5IHBvaW50CisKK1J1biBJRExFIGFzIHB5dGhvbiAtbSBpZGxlbGliCisiIiIKKworCitpbXBvcnQgaWRsZWxpYi5QeVNoZWxsCitpZGxlbGliLlB5U2hlbGwubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvaWRsZWxpYi9jb25maWdIYW5kbGVyLnB5IGIvTGliL2lkbGVsaWIvY29uZmlnSGFuZGxlci5weQppbmRleCBkYTkyNzI2Li40MDQ5MDA0IDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9jb25maWdIYW5kbGVyLnB5CisrKyBiL0xpYi9pZGxlbGliL2NvbmZpZ0hhbmRsZXIucHkKQEAgLTE0NSw3ICsxNDUsOCBAQAogICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CiAgICAgICAgICAgICAgICAgb3MudW5saW5rKGZuYW1lKQogICAgICAgICAgICAgICAgIGNmZ0ZpbGUgPSBvcGVuKGZuYW1lLCAndycpCi0gICAgICAgICAgICBzZWxmLndyaXRlKGNmZ0ZpbGUpCisgICAgICAgICAgICB3aXRoIGNmZ0ZpbGU6CisgICAgICAgICAgICAgICAgc2VsZi53cml0ZShjZmdGaWxlKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5SZW1vdmVGaWxlKCkKIApkaWZmIC0tZ2l0IGEvTGliL2lkbGVsaWIvaWRsZXZlci5weSBiL0xpYi9pZGxlbGliL2lkbGV2ZXIucHkKaW5kZXggMTc0NTVkYi4uN2RlMWIwNyAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvaWRsZXZlci5weQorKysgYi9MaWIvaWRsZWxpYi9pZGxldmVyLnB5CkBAIC0xICsxIEBACi1JRExFX1ZFUlNJT04gPSAiMy4yLjMiCitJRExFX1ZFUlNJT04gPSAiMy4zLjBiMSIKZGlmZiAtLWdpdCBhL0xpYi9pZGxlbGliL3JwYy5weSBiL0xpYi9pZGxlbGliL3JwYy5weQppbmRleCBkZWY0Mzk0Li43N2NiM2FjIDEwMDY0NAotLS0gYS9MaWIvaWRsZWxpYi9ycGMucHkKKysrIGIvTGliL2lkbGVsaWIvcnBjLnB5CkBAIC00MCw2ICs0MCw3IEBACiBpbXBvcnQgY29weXJlZwogaW1wb3J0IHR5cGVzCiBpbXBvcnQgbWFyc2hhbAoraW1wb3J0IGJ1aWx0aW5zCiAKIAogZGVmIHVucGlja2xlX2NvZGUobXMpOgpAQCAtMTk2LDggKzE5NywxMiBAQAogICAgICAgICAgICAgICAgIHJldHVybiAoIkVSUk9SIiwgIlVuc3VwcG9ydGVkIG1lc3NhZ2UgdHlwZTogJXMiICUgaG93KQogICAgICAgICBleGNlcHQgU3lzdGVtRXhpdDoKICAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CiAgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4OgorICAgICAgICAgICAgcmV0dXJuICgiQ0FMTEVYQyIsIGV4KQogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBtc2cgPSAiKioqIEludGVybmFsIEVycm9yOiBycGMucHk6U29ja2V0SU8ubG9jYWxjYWxsKClcblxuIlwKICAgICAgICAgICAgICAgICAgICIgT2JqZWN0OiAlcyBcbiBNZXRob2Q6ICVzIFxuIEFyZ3M6ICVzXG4iCkBAIC0yNTcsNiArMjYyLDkgQEAKICAgICAgICAgaWYgaG93ID09ICJFUlJPUiI6CiAgICAgICAgICAgICBzZWxmLmRlYnVnKCJkZWNvZGVyZXNwb25zZTogSW50ZXJuYWwgRVJST1I6Iiwgd2hhdCkKICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcih3aGF0KQorICAgICAgICBpZiBob3cgPT0gIkNBTExFWEMiOgorICAgICAgICAgICAgc2VsZi5kZWJ1ZygiZGVjb2RlcmVzcG9uc2U6IENhbGwgRXhjZXB0aW9uOiIsIHdoYXQpCisgICAgICAgICAgICByYWlzZSB3aGF0CiAgICAgICAgIHJhaXNlIFN5c3RlbUVycm9yKGhvdywgd2hhdCkKIAogICAgIGRlZiBkZWNvZGVfaW50ZXJydXB0aG9vayhzZWxmKToKQEAgLTU5NiwzICs2MDQsMjEgQEAKIAogIyBYWFggS0JLIDA5U2VwMDMgIFdlIG5lZWQgYSBwcm9wZXIgdW5pdCB0ZXN0IGZvciB0aGlzIG1vZHVsZS4gIFByZXZpb3VzbHkKICMgICAgICAgICAgICAgICAgICBleGlzdGluZyB0ZXN0IGNvZGUgd2FzIHJlbW92ZWQgYXQgUmV2IDEuMjcgKHIzNDA5OCkuCisKK2RlZiBkaXNwbGF5aG9vayh2YWx1ZSk6CisgICAgIiIiT3ZlcnJpZGUgc3RhbmRhcmQgZGlzcGxheSBob29rIHRvIHVzZSBub24tbG9jYWxlIGVuY29kaW5nIiIiCisgICAgaWYgdmFsdWUgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuCisgICAgIyBTZXQgJ18nIHRvIE5vbmUgdG8gYXZvaWQgcmVjdXJzaW9uCisgICAgYnVpbHRpbnMuXyA9IE5vbmUKKyAgICB0ZXh0ID0gcmVwcih2YWx1ZSkKKyAgICB0cnk6CisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUodGV4dCkKKyAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAjIGxldCdzIHVzZSBhc2NpaSB3aGlsZSB1dGY4LWJtcCBjb2RlYyBkb2Vzbid0IHByZXNlbnQKKyAgICAgICAgZW5jb2RpbmcgPSAnYXNjaWknCisgICAgICAgIGJ5dGVzID0gdGV4dC5lbmNvZGUoZW5jb2RpbmcsICdiYWNrc2xhc2hyZXBsYWNlJykKKyAgICAgICAgdGV4dCA9IGJ5dGVzLmRlY29kZShlbmNvZGluZywgJ3N0cmljdCcpCisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUodGV4dCkKKyAgICBzeXMuc3Rkb3V0LndyaXRlKCJcbiIpCisgICAgYnVpbHRpbnMuXyA9IHZhbHVlCmRpZmYgLS1naXQgYS9MaWIvaWRsZWxpYi9ydW4ucHkgYi9MaWIvaWRsZWxpYi9ydW4ucHkKaW5kZXggMjUzMzhmZi4uNzEyNGM3MiAxMDA2NDQKLS0tIGEvTGliL2lkbGVsaWIvcnVuLnB5CisrKyBiL0xpYi9pZGxlbGliL3J1bi5weQpAQCAtNiw2ICs2LDcgQEAKIGltcG9ydCBfdGhyZWFkIGFzIHRocmVhZAogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHF1ZXVlCitpbXBvcnQgdGtpbnRlcgogCiBmcm9tIGlkbGVsaWIgaW1wb3J0IENhbGxUaXBzCiBmcm9tIGlkbGVsaWIgaW1wb3J0IEF1dG9Db21wbGV0ZQpAQCAtMzgsNiArMzksMTcgQEAKICAgICAgICAgcmV0dXJuIHMKICAgICB3YXJuaW5ncy5mb3JtYXR3YXJuaW5nID0gaWRsZV9mb3JtYXR3YXJuaW5nX3N1YnByb2MKIAorCit0Y2wgPSB0a2ludGVyLlRjbCgpCisKKworZGVmIGhhbmRsZV90a19ldmVudHModGNsPXRjbCk6CisgICAgIiIiUHJvY2VzcyBhbnkgdGsgZXZlbnRzIHRoYXQgYXJlIHJlYWR5IHRvIGJlIGRpc3BhdGNoZWQgaWYgdGtpbnRlcgorICAgIGhhcyBiZWVuIGltcG9ydGVkLCBhIHRjbCBpbnRlcnByZXRlciBoYXMgYmVlbiBjcmVhdGVkIGFuZCB0ayBoYXMgYmVlbgorICAgIGxvYWRlZC4iIiIKKyAgICB0Y2wuZXZhbCgidXBkYXRlIikKKworCiAjIFRocmVhZCBzaGFyZWQgZ2xvYmFsczogRXN0YWJsaXNoIGEgcXVldWUgYmV0d2VlbiBhIHN1YnRocmVhZCAod2hpY2ggaGFuZGxlcwogIyB0aGUgc29ja2V0KSBhbmQgdGhlIG1haW4gdGhyZWFkICh3aGljaCBydW5zIHVzZXIgY29kZSksIHBsdXMgZ2xvYmFsCiAjIGNvbXBsZXRpb24sIGV4aXQgYW5kIGludGVycnVwdGFibGUgKHRoZSBtYWluIHRocmVhZCkgZmxhZ3M6CkBAIC05Myw2ICsxMDUsNyBAQAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHNlcSwgcmVxdWVzdCA9IHJwYy5yZXF1ZXN0X3F1ZXVlLmdldChibG9jaz1UcnVlLCB0aW1lb3V0PTAuMDUpCiAgICAgICAgICAgICBleGNlcHQgcXVldWUuRW1wdHk6CisgICAgICAgICAgICAgICAgaGFuZGxlX3RrX2V2ZW50cygpCiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIG1ldGhvZCwgYXJncywga3dhcmdzID0gcmVxdWVzdAogICAgICAgICAgICAgcmV0ID0gbWV0aG9kKCphcmdzLCAqKmt3YXJncykKQEAgLTI1NCw2ICsyNjcsNyBAQAogICAgICAgICBzeXMuc3RkaW4gPSBzZWxmLmNvbnNvbGUgPSBzZWxmLmdldF9yZW1vdGVfcHJveHkoInN0ZGluIikKICAgICAgICAgc3lzLnN0ZG91dCA9IHNlbGYuZ2V0X3JlbW90ZV9wcm94eSgic3Rkb3V0IikKICAgICAgICAgc3lzLnN0ZGVyciA9IHNlbGYuZ2V0X3JlbW90ZV9wcm94eSgic3RkZXJyIikKKyAgICAgICAgc3lzLmRpc3BsYXlob29rID0gcnBjLmRpc3BsYXlob29rCiAgICAgICAgICMgcGFnZSBoZWxwKCkgdGV4dCB0byBzaGVsbC4KICAgICAgICAgaW1wb3J0IHB5ZG9jICMgaW1wb3J0IG11c3QgYmUgZG9uZSBoZXJlIHRvIGNhcHR1cmUgaS9vIGJpbmRpbmcKICAgICAgICAgcHlkb2MucGFnZXIgPSBweWRvYy5wbGFpbnBhZ2VyCmRpZmYgLS1naXQgYS9MaWIvaW1hcGxpYi5weSBiL0xpYi9pbWFwbGliLnB5CmluZGV4IGMwMzM0ZDguLmUxNmZiOTUgMTAwNjQ0Ci0tLSBhL0xpYi9pbWFwbGliLnB5CisrKyBiL0xpYi9pbWFwbGliLnB5CkBAIC0yMyw3ICsyMyw3IEBACiBfX3ZlcnNpb25fXyA9ICIyLjU4IgogCiBpbXBvcnQgYmluYXNjaWksIGVycm5vLCByYW5kb20sIHJlLCBzb2NrZXQsIHN1YnByb2Nlc3MsIHN5cywgdGltZSwgY2FsZW5kYXIKLQorZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRpbWV6b25lLCB0aW1lZGVsdGEKIHRyeToKICAgICBpbXBvcnQgc3NsCiAgICAgSEFWRV9TU0wgPSBUcnVlCkBAIC0yNDksMTUgKzI0OSw3IEBACiAKICAgICBkZWYgcmVhZChzZWxmLCBzaXplKToKICAgICAgICAgIiIiUmVhZCAnc2l6ZScgYnl0ZXMgZnJvbSByZW1vdGUuIiIiCi0gICAgICAgIGNodW5rcyA9IFtdCi0gICAgICAgIHJlYWQgPSAwCi0gICAgICAgIHdoaWxlIHJlYWQgPCBzaXplOgotICAgICAgICAgICAgZGF0YSA9IHNlbGYuZmlsZS5yZWFkKG1pbihzaXplLXJlYWQsIDQwOTYpKQotICAgICAgICAgICAgaWYgbm90IGRhdGE6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIHJlYWQgKz0gbGVuKGRhdGEpCi0gICAgICAgICAgICBjaHVua3MuYXBwZW5kKGRhdGEpCi0gICAgICAgIHJldHVybiBiJycuam9pbihjaHVua3MpCisgICAgICAgIHJldHVybiBzZWxmLmZpbGUucmVhZChzaXplKQogCiAKICAgICBkZWYgcmVhZGxpbmUoc2VsZik6CkBAIC0xMTc3LDI1ICsxMTY5LDQwIEBACiAKICAgICAgICAgIiIiSU1BUDQgY2xpZW50IGNsYXNzIG92ZXIgU1NMIGNvbm5lY3Rpb24KIAotICAgICAgICBJbnN0YW50aWF0ZSB3aXRoOiBJTUFQNF9TU0woW2hvc3RbLCBwb3J0Wywga2V5ZmlsZVssIGNlcnRmaWxlXV1dXSkKKyAgICAgICAgSW5zdGFudGlhdGUgd2l0aDogSU1BUDRfU1NMKFtob3N0WywgcG9ydFssIGtleWZpbGVbLCBjZXJ0ZmlsZVssIHNzbF9jb250ZXh0XV1dXV0pCiAKICAgICAgICAgICAgICAgICBob3N0IC0gaG9zdCdzIG5hbWUgKGRlZmF1bHQ6IGxvY2FsaG9zdCk7Ci0gICAgICAgICAgICAgICAgcG9ydCAtIHBvcnQgbnVtYmVyIChkZWZhdWx0OiBzdGFuZGFyZCBJTUFQNCBTU0wgcG9ydCkuCisgICAgICAgICAgICAgICAgcG9ydCAtIHBvcnQgbnVtYmVyIChkZWZhdWx0OiBzdGFuZGFyZCBJTUFQNCBTU0wgcG9ydCk7CiAgICAgICAgICAgICAgICAga2V5ZmlsZSAtIFBFTSBmb3JtYXR0ZWQgZmlsZSB0aGF0IGNvbnRhaW5zIHlvdXIgcHJpdmF0ZSBrZXkgKGRlZmF1bHQ6IE5vbmUpOwogICAgICAgICAgICAgICAgIGNlcnRmaWxlIC0gUEVNIGZvcm1hdHRlZCBjZXJ0aWZpY2F0ZSBjaGFpbiBmaWxlIChkZWZhdWx0OiBOb25lKTsKKyAgICAgICAgICAgICAgICBzc2xfY29udGV4dCAtIGEgU1NMQ29udGV4dCBvYmplY3QgdGhhdCBjb250YWlucyB5b3VyIGNlcnRpZmljYXRlIGNoYWluCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgcHJpdmF0ZSBrZXkgKGRlZmF1bHQ6IE5vbmUpCisgICAgICAgICAgICAgICAgTm90ZTogaWYgc3NsX2NvbnRleHQgaXMgcHJvdmlkZWQsIHRoZW4gcGFyYW1ldGVycyBrZXlmaWxlIG9yCisgICAgICAgICAgICAgICAgY2VydGZpbGUgc2hvdWxkIG5vdCBiZSBzZXQgb3RoZXJ3aXNlIFZhbHVlRXJyb3IgaXMgdGhyb3duLgogCiAgICAgICAgIGZvciBtb3JlIGRvY3VtZW50YXRpb24gc2VlIHRoZSBkb2NzdHJpbmcgb2YgdGhlIHBhcmVudCBjbGFzcyBJTUFQNC4KICAgICAgICAgIiIiCiAKIAotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCA9ICcnLCBwb3J0ID0gSU1BUDRfU1NMX1BPUlQsIGtleWZpbGUgPSBOb25lLCBjZXJ0ZmlsZSA9IE5vbmUpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD0nJywgcG9ydD1JTUFQNF9TU0xfUE9SVCwga2V5ZmlsZT1Ob25lLCBjZXJ0ZmlsZT1Ob25lLCBzc2xfY29udGV4dD1Ob25lKToKKyAgICAgICAgICAgIGlmIHNzbF9jb250ZXh0IGlzIG5vdCBOb25lIGFuZCBrZXlmaWxlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInNzbF9jb250ZXh0IGFuZCBrZXlmaWxlIGFyZ3VtZW50cyBhcmUgbXV0dWFsbHkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2x1c2l2ZSIpCisgICAgICAgICAgICBpZiBzc2xfY29udGV4dCBpcyBub3QgTm9uZSBhbmQgY2VydGZpbGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigic3NsX2NvbnRleHQgYW5kIGNlcnRmaWxlIGFyZ3VtZW50cyBhcmUgbXV0dWFsbHkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4Y2x1c2l2ZSIpCisKICAgICAgICAgICAgIHNlbGYua2V5ZmlsZSA9IGtleWZpbGUKICAgICAgICAgICAgIHNlbGYuY2VydGZpbGUgPSBjZXJ0ZmlsZQorICAgICAgICAgICAgc2VsZi5zc2xfY29udGV4dCA9IHNzbF9jb250ZXh0CiAgICAgICAgICAgICBJTUFQNC5fX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0KQogCiAgICAgICAgIGRlZiBfY3JlYXRlX3NvY2tldChzZWxmKToKICAgICAgICAgICAgIHNvY2sgPSBJTUFQNC5fY3JlYXRlX3NvY2tldChzZWxmKQotICAgICAgICAgICAgcmV0dXJuIHNzbC53cmFwX3NvY2tldChzb2NrLCBzZWxmLmtleWZpbGUsIHNlbGYuY2VydGZpbGUpCisgICAgICAgICAgICBpZiBzZWxmLnNzbF9jb250ZXh0OgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnNzbF9jb250ZXh0LndyYXBfc29ja2V0KHNvY2spCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBzc2wud3JhcF9zb2NrZXQoc29jaywgc2VsZi5rZXlmaWxlLCBzZWxmLmNlcnRmaWxlKQogCiAgICAgICAgIGRlZiBvcGVuKHNlbGYsIGhvc3Q9JycsIHBvcnQ9SU1BUDRfU1NMX1BPUlQpOgogICAgICAgICAgICAgIiIiU2V0dXAgY29ubmVjdGlvbiB0byByZW1vdGUgc2VydmVyIG9uICJob3N0OnBvcnQiLgpAQCAtMTMwNiwxMCArMTMxMyw4IEBACiAgICAgICAgICAgICByZXR1cm4gJycKICAgICAgICAgcmV0dXJuIGJpbmFzY2lpLmEyYl9iYXNlNjQoaW5wKQogCi0KLQotTW9uMm51bSA9IHtiJ0phbic6IDEsIGInRmViJzogMiwgYidNYXInOiAzLCBiJ0Fwcic6IDQsIGInTWF5JzogNSwgYidKdW4nOiA2LAotICAgICAgICAgICBiJ0p1bCc6IDcsIGInQXVnJzogOCwgYidTZXAnOiA5LCBiJ09jdCc6IDEwLCBiJ05vdic6IDExLCBiJ0RlYyc6IDEyfQorTW9udGhzID0gJyBKYW4gRmViIE1hciBBcHIgTWF5IEp1biBKdWwgQXVnIFNlcCBPY3QgTm92IERlYycuc3BsaXQoJyAnKQorTW9uMm51bSA9IHtzLmVuY29kZSgpOm4rMSBmb3IgbiwgcyBpbiBlbnVtZXJhdGUoTW9udGhzWzE6XSl9CiAKIGRlZiBJbnRlcm5hbGRhdGUydHVwbGUocmVzcCk6CiAgICAgIiIiUGFyc2UgYW4gSU1BUDQgSU5URVJOQUxEQVRFIHN0cmluZy4KQEAgLTEzNzcsMjggKzEzODIsMzcgQEAKICAgICBSZXR1cm4gc3RyaW5nIGluIGZvcm06ICciREQtTW1tLVlZWVkgSEg6TU06U1MgK0hITU0iJy4gIFRoZQogICAgIGRhdGVfdGltZSBhcmd1bWVudCBjYW4gYmUgYSBudW1iZXIgKGludCBvciBmbG9hdCkgcmVwcmVzZW50aW5nCiAgICAgc2Vjb25kcyBzaW5jZSBlcG9jaCAoYXMgcmV0dXJuZWQgYnkgdGltZS50aW1lKCkpLCBhIDktdHVwbGUKLSAgICByZXByZXNlbnRpbmcgbG9jYWwgdGltZSAoYXMgcmV0dXJuZWQgYnkgdGltZS5sb2NhbHRpbWUoKSksIG9yIGEKKyAgICByZXByZXNlbnRpbmcgbG9jYWwgdGltZSwgYW4gaW5zdGFuY2Ugb2YgdGltZS5zdHJ1Y3RfdGltZSAoYXMKKyAgICByZXR1cm5lZCBieSB0aW1lLmxvY2FsdGltZSgpKSwgYW4gYXdhcmUgZGF0ZXRpbWUgaW5zdGFuY2Ugb3IgYQogICAgIGRvdWJsZS1xdW90ZWQgc3RyaW5nLiAgSW4gdGhlIGxhc3QgY2FzZSwgaXQgaXMgYXNzdW1lZCB0byBhbHJlYWR5CiAgICAgYmUgaW4gdGhlIGNvcnJlY3QgZm9ybWF0LgogICAgICIiIgotCiAgICAgaWYgaXNpbnN0YW5jZShkYXRlX3RpbWUsIChpbnQsIGZsb2F0KSk6Ci0gICAgICAgIHR0ID0gdGltZS5sb2NhbHRpbWUoZGF0ZV90aW1lKQotICAgIGVsaWYgaXNpbnN0YW5jZShkYXRlX3RpbWUsICh0dXBsZSwgdGltZS5zdHJ1Y3RfdGltZSkpOgotICAgICAgICB0dCA9IGRhdGVfdGltZQorICAgICAgICBkdCA9IGRhdGV0aW1lLmZyb210aW1lc3RhbXAoZGF0ZV90aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXpvbmUudXRjKS5hc3RpbWV6b25lKCkKKyAgICBlbGlmIGlzaW5zdGFuY2UoZGF0ZV90aW1lLCB0dXBsZSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGdtdG9mZiA9IGRhdGVfdGltZS50bV9nbXRvZmYKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgaWYgdGltZS5kYXlsaWdodDoKKyAgICAgICAgICAgICAgICBkc3QgPSBkYXRlX3RpbWVbOF0KKyAgICAgICAgICAgICAgICBpZiBkc3QgPT0gLTE6CisgICAgICAgICAgICAgICAgICAgIGRzdCA9IHRpbWUubG9jYWx0aW1lKHRpbWUubWt0aW1lKGRhdGVfdGltZSkpWzhdCisgICAgICAgICAgICAgICAgZ210b2ZmID0gLSh0aW1lLnRpbWV6b25lLCB0aW1lLmFsdHpvbmUpW2RzdF0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZ210b2ZmID0gLXRpbWUudGltZXpvbmUKKyAgICAgICAgZGVsdGEgPSB0aW1lZGVsdGEoc2Vjb25kcz1nbXRvZmYpCisgICAgICAgIGR0ID0gZGF0ZXRpbWUoKmRhdGVfdGltZVs6Nl0sIHR6aW5mbz10aW1lem9uZShkZWx0YSkpCisgICAgZWxpZiBpc2luc3RhbmNlKGRhdGVfdGltZSwgZGF0ZXRpbWUpOgorICAgICAgICBpZiBkYXRlX3RpbWUudHppbmZvIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJkYXRlX3RpbWUgbXVzdCBiZSBhd2FyZSIpCisgICAgICAgIGR0ID0gZGF0ZV90aW1lCiAgICAgZWxpZiBpc2luc3RhbmNlKGRhdGVfdGltZSwgc3RyKSBhbmQgKGRhdGVfdGltZVswXSxkYXRlX3RpbWVbLTFdKSA9PSAoJyInLCciJyk6CiAgICAgICAgIHJldHVybiBkYXRlX3RpbWUgICAgICAgICMgQXNzdW1lIGluIGNvcnJlY3QgZm9ybWF0CiAgICAgZWxzZToKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiZGF0ZV90aW1lIG5vdCBvZiBhIGtub3duIHR5cGUiKQotCi0gICAgZHQgPSB0aW1lLnN0cmZ0aW1lKCIlZC0lYi0lWSAlSDolTTolUyIsIHR0KQotICAgIGlmIGR0WzBdID09ICcwJzoKLSAgICAgICAgZHQgPSAnICcgKyBkdFsxOl0KLSAgICBpZiB0aW1lLmRheWxpZ2h0IGFuZCB0dFstMV06Ci0gICAgICAgIHpvbmUgPSAtdGltZS5hbHR6b25lCi0gICAgZWxzZToKLSAgICAgICAgem9uZSA9IC10aW1lLnRpbWV6b25lCi0gICAgcmV0dXJuICciJyArIGR0ICsgIiAlKzAzZCUwMmQiICUgZGl2bW9kKHpvbmUvLzYwLCA2MCkgKyAnIicKKyAgICBmbXQgPSAnIiVkLXt9LSVZICVIOiVNOiVTICV6IicuZm9ybWF0KE1vbnRoc1tkdC5tb250aF0pCisgICAgcmV0dXJuIGR0LnN0cmZ0aW1lKGZtdCkKIAogCiAKZGlmZiAtLWdpdCBhL0xpYi9pbXAucHkgYi9MaWIvaW1wLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZjZmQzZDMKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvaW1wLnB5CkBAIC0wLDAgKzEsMjcwIEBACisiIiJUaGlzIG1vZHVsZSBwcm92aWRlcyB0aGUgY29tcG9uZW50cyBuZWVkZWQgdG8gYnVpbGQgeW91ciBvd24gX19pbXBvcnRfXworZnVuY3Rpb24uICBVbmRvY3VtZW50ZWQgZnVuY3Rpb25zIGFyZSBvYnNvbGV0ZS4KKworSW4gbW9zdCBjYXNlcyBpdCBpcyBwcmVmZXJyZWQgeW91IGNvbnNpZGVyIHVzaW5nIHRoZSBpbXBvcnRsaWIgbW9kdWxlJ3MKK2Z1bmN0aW9uYWxpdHkgb3ZlciB0aGlzIG1vZHVsZS4KKworIiIiCisjIChQcm9iYWJseSkgbmVlZCB0byBzdGF5IGluIF9pbXAKK2Zyb20gX2ltcCBpbXBvcnQgKGxvY2tfaGVsZCwgYWNxdWlyZV9sb2NrLCByZWxlYXNlX2xvY2ssCisgICAgICAgICAgICAgICAgICBsb2FkX2R5bmFtaWMsIGdldF9mcm96ZW5fb2JqZWN0LCBpc19mcm96ZW5fcGFja2FnZSwKKyAgICAgICAgICAgICAgICAgIGluaXRfYnVpbHRpbiwgaW5pdF9mcm96ZW4sIGlzX2J1aWx0aW4sIGlzX2Zyb3plbiwKKyAgICAgICAgICAgICAgICAgIF9maXhfY29fZmlsZW5hbWUsIGV4dGVuc2lvbl9zdWZmaXhlcykKKyMgQ291bGQgbW92ZSBvdXQgb2YgX2ltcCwgYnV0IG5vdCB3b3J0aCB0aGUgY29kZQorZnJvbSBfaW1wIGltcG9ydCBnZXRfbWFnaWMKKworZnJvbSBpbXBvcnRsaWIuX2Jvb3RzdHJhcCBpbXBvcnQgbmV3X21vZHVsZQorZnJvbSBpbXBvcnRsaWIuX2Jvb3RzdHJhcCBpbXBvcnQgY2FjaGVfZnJvbV9zb3VyY2UKKworZnJvbSBpbXBvcnRsaWIgaW1wb3J0IF9ib290c3RyYXAKK2Zyb20gaW1wb3J0bGliIGltcG9ydCBtYWNoaW5lcnkKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IHRva2VuaXplCitpbXBvcnQgd2FybmluZ3MKKworCisjIERFUFJFQ0FURUQKK1NFQVJDSF9FUlJPUiA9IDAKK1BZX1NPVVJDRSA9IDEKK1BZX0NPTVBJTEVEID0gMgorQ19FWFRFTlNJT04gPSAzCitQWV9SRVNPVVJDRSA9IDQKK1BLR19ESVJFQ1RPUlkgPSA1CitDX0JVSUxUSU4gPSA2CitQWV9GUk9aRU4gPSA3CitQWV9DT0RFUkVTT1VSQ0UgPSA4CitJTVBfSE9PSyA9IDkKKworCitkZWYgZ2V0X3RhZygpOgorICAgICIiIlJldHVybiB0aGUgbWFnaWMgdGFnIGZvciAucHljIG9yIC5weW8gZmlsZXMuIiIiCisgICAgcmV0dXJuIHN5cy5pbXBsZW1lbnRhdGlvbi5jYWNoZV90YWcKKworCitkZWYgZ2V0X3N1ZmZpeGVzKCk6CisgICAgd2FybmluZ3Mud2FybignaW1wLmdldF9zdWZmaXhlcygpIGlzIGRlcHJlY2F0ZWQ7IHVzZSB0aGUgY29uc3RhbnRzICcKKyAgICAgICAgICAgICAgICAgICdkZWZpbmVkIG9uIGltcG9ydGxpYi5tYWNoaW5lcnkgaW5zdGVhZCcsCisgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgZXh0ZW5zaW9ucyA9IFsocywgJ3JiJywgQ19FWFRFTlNJT04pIGZvciBzIGluIGV4dGVuc2lvbl9zdWZmaXhlcygpXQorICAgIHNvdXJjZSA9IFsocywgJ1UnLCBQWV9TT1VSQ0UpIGZvciBzIGluIG1hY2hpbmVyeS5TT1VSQ0VfU1VGRklYRVNdCisgICAgYnl0ZWNvZGUgPSBbKHMsICdyYicsIFBZX0NPTVBJTEVEKSBmb3IgcyBpbiBtYWNoaW5lcnkuQllURUNPREVfU1VGRklYRVNdCisKKyAgICByZXR1cm4gZXh0ZW5zaW9ucyArIHNvdXJjZSArIGJ5dGVjb2RlCisKKworZGVmIHNvdXJjZV9mcm9tX2NhY2hlKHBhdGgpOgorICAgICIiIkdpdmVuIHRoZSBwYXRoIHRvIGEgLnB5Yy4vLnB5byBmaWxlLCByZXR1cm4gdGhlIHBhdGggdG8gaXRzIC5weSBmaWxlLgorCisgICAgVGhlIC5weWMvLnB5byBmaWxlIGRvZXMgbm90IG5lZWQgdG8gZXhpc3Q7IHRoaXMgc2ltcGx5IHJldHVybnMgdGhlIHBhdGggdG8KKyAgICB0aGUgLnB5IGZpbGUgY2FsY3VsYXRlZCB0byBjb3JyZXNwb25kIHRvIHRoZSAucHljLy5weW8gZmlsZS4gIElmIHBhdGggZG9lcworICAgIG5vdCBjb25mb3JtIHRvIFBFUCAzMTQ3IGZvcm1hdCwgVmFsdWVFcnJvciB3aWxsIGJlIHJhaXNlZC4KKworICAgICIiIgorICAgIGhlYWQsIHB5Y2FjaGVfZmlsZW5hbWUgPSBvcy5wYXRoLnNwbGl0KHBhdGgpCisgICAgaGVhZCwgcHljYWNoZSA9IG9zLnBhdGguc3BsaXQoaGVhZCkKKyAgICBpZiBweWNhY2hlICE9IF9ib290c3RyYXAuX1BZQ0FDSEU6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3t9IG5vdCBib3R0b20tbGV2ZWwgZGlyZWN0b3J5IGluICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAneyFyfScuZm9ybWF0KF9ib290c3RyYXAuX1BZQ0FDSEUsIHBhdGgpKQorICAgIGlmIHB5Y2FjaGVfZmlsZW5hbWUuY291bnQoJy4nKSAhPSAyOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdleHBlY3RlZCBvbmx5IDIgZG90cyBpbiAnCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3shcn0nLmZvcm1hdChweWNhY2hlX2ZpbGVuYW1lKSkKKyAgICBiYXNlX2ZpbGVuYW1lID0gcHljYWNoZV9maWxlbmFtZS5wYXJ0aXRpb24oJy4nKVswXQorICAgIHJldHVybiBvcy5wYXRoLmpvaW4oaGVhZCwgYmFzZV9maWxlbmFtZSArIG1hY2hpbmVyeS5TT1VSQ0VfU1VGRklYRVNbMF0pCisKKworY2xhc3MgTnVsbEltcG9ydGVyOgorCisgICAgIiIiTnVsbCBpbXBvcnQgb2JqZWN0LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgorICAgICAgICBpZiBwYXRoID09ICcnOgorICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoJ2VtcHR5IHBhdGhuYW1lJywgcGF0aD0nJykKKyAgICAgICAgZWxpZiBvcy5wYXRoLmlzZGlyKHBhdGgpOgorICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoJ2V4aXN0aW5nIGRpcmVjdG9yeScsIHBhdGg9cGF0aCkKKworICAgIGRlZiBmaW5kX21vZHVsZShzZWxmLCBmdWxsbmFtZSk6CisgICAgICAgICIiIkFsd2F5cyByZXR1cm5zIE5vbmUuIiIiCisgICAgICAgIHJldHVybiBOb25lCisKKworY2xhc3MgX0hhY2tlZEdldERhdGE6CisKKyAgICAiIiJDb21wYXRpYmlpbHR5IHN1cHBvcnQgZm9yICdmaWxlJyBhcmd1bWVudHMgb2YgdmFyaW91cyBsb2FkXyooKQorICAgIGZ1bmN0aW9ucy4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdWxsbmFtZSwgcGF0aCwgZmlsZT1Ob25lKToKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhmdWxsbmFtZSwgcGF0aCkKKyAgICAgICAgc2VsZi5maWxlID0gZmlsZQorCisgICAgZGVmIGdldF9kYXRhKHNlbGYsIHBhdGgpOgorICAgICAgICAiIiJHcm9zcyBoYWNrIHRvIGNvbnRvcnQgbG9hZGVyIHRvIGRlYWwgdy8gbG9hZF8qKCkncyBiYWQgQVBJLiIiIgorICAgICAgICBpZiBzZWxmLmZpbGUgYW5kIHBhdGggPT0gc2VsZi5wYXRoOgorICAgICAgICAgICAgd2l0aCBzZWxmLmZpbGU6CisgICAgICAgICAgICAgICAgIyBUZWNobmljYWxseSBzaG91bGQgYmUgcmV0dXJuaW5nIGJ5dGVzLCBidXQKKyAgICAgICAgICAgICAgICAjIFNvdXJjZUxvYWRlci5nZXRfY29kZSgpIGp1c3QgcGFzc2VkIHdoYXQgaXMgcmV0dXJuZWQgdG8KKyAgICAgICAgICAgICAgICAjIGNvbXBpbGUoKSB3aGljaCBjYW4gaGFuZGxlIHN0ci4gQW5kIGNvbnZlcnRpbmcgdG8gYnl0ZXMgd291bGQKKyAgICAgICAgICAgICAgICAjIHJlcXVpcmUgZmlndXJpbmcgb3V0IHRoZSBlbmNvZGluZyB0byBkZWNvZGUgdG8gYW5kCisgICAgICAgICAgICAgICAgIyB0b2tlbml6ZS5kZXRlY3RfZW5jb2RpbmcoKSBvbmx5IGFjY2VwdHMgYnl0ZXMuCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZmlsZS5yZWFkKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzdXBlcigpLmdldF9kYXRhKHBhdGgpCisKKworY2xhc3MgX0xvYWRTb3VyY2VDb21wYXRpYmlsaXR5KF9IYWNrZWRHZXREYXRhLCBfYm9vdHN0cmFwLlNvdXJjZUZpbGVMb2FkZXIpOgorCisgICAgIiIiQ29tcGF0aWJpbGl0eSBzdXBwb3J0IGZvciBpbXBsZW1lbnRpbmcgbG9hZF9zb3VyY2UoKS4iIiIKKworCitkZWYgbG9hZF9zb3VyY2UobmFtZSwgcGF0aG5hbWUsIGZpbGU9Tm9uZSk6CisgICAgbXNnID0gKCdpbXAubG9hZF9zb3VyY2UoKSBpcyBkZXByZWNhdGVkOyB1c2UgJworICAgICAgICAgICAnaW1wb3J0bGliLm1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyKG5hbWUsIHBhdGhuYW1lKS5sb2FkX21vZHVsZSgpJworICAgICAgICAgICAnIGluc3RlYWQnKQorICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgcmV0dXJuIF9Mb2FkU291cmNlQ29tcGF0aWJpbGl0eShuYW1lLCBwYXRobmFtZSwgZmlsZSkubG9hZF9tb2R1bGUobmFtZSkKKworCitjbGFzcyBfTG9hZENvbXBpbGVkQ29tcGF0aWJpbGl0eShfSGFja2VkR2V0RGF0YSwKKyAgICAgICAgX2Jvb3RzdHJhcC5Tb3VyY2VsZXNzRmlsZUxvYWRlcik6CisKKyAgICAiIiJDb21wYXRpYmlsaXR5IHN1cHBvcnQgZm9yIGltcGxlbWVudGluZyBsb2FkX2NvbXBpbGVkKCkuIiIiCisKKworZGVmIGxvYWRfY29tcGlsZWQobmFtZSwgcGF0aG5hbWUsIGZpbGU9Tm9uZSk6CisgICAgbXNnID0gKCdpbXAubG9hZF9jb21waWxlZCgpIGlzIGRlcHJlY2F0ZWQ7IHVzZSAnCisgICAgICAgICAgICdpbXBvcnRsaWIubWFjaGluZXJ5LlNvdXJjZWxlc3NGaWxlTG9hZGVyKG5hbWUsIHBhdGhuYW1lKS4nCisgICAgICAgICAgICdsb2FkX21vZHVsZSgpIGluc3RlYWQgJykKKyAgICB3YXJuaW5ncy53YXJuKG1zZywgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgIHJldHVybiBfTG9hZENvbXBpbGVkQ29tcGF0aWJpbGl0eShuYW1lLCBwYXRobmFtZSwgZmlsZSkubG9hZF9tb2R1bGUobmFtZSkKKworCitkZWYgbG9hZF9wYWNrYWdlKG5hbWUsIHBhdGgpOgorICAgIG1zZyA9ICgnaW1wLmxvYWRfcGFja2FnZSgpIGlzIGRlcHJlY2F0ZWQ7IHVzZSBlaXRoZXIgJworICAgICAgICAgICAnaW1wb3J0bGliLm1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyKCkgb3IgJworICAgICAgICAgICAnaW1wb3J0bGliLm1hY2hpbmVyeS5Tb3VyY2VsZXNzRmlsZUxvYWRlcigpIGluc3RlYWQnKQorICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgaWYgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAgZXh0ZW5zaW9ucyA9IChtYWNoaW5lcnkuU09VUkNFX1NVRkZJWEVTWzpdICsKKyAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lcnkuQllURUNPREVfU1VGRklYRVNbOl0pCisgICAgICAgIGZvciBleHRlbnNpb24gaW4gZXh0ZW5zaW9uczoKKyAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4ocGF0aCwgJ19faW5pdF9fJytleHRlbnNpb24pCisgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigneyFyfSBpcyBub3QgYSBwYWNrYWdlJy5mb3JtYXQocGF0aCkpCisgICAgcmV0dXJuIF9ib290c3RyYXAuU291cmNlRmlsZUxvYWRlcihuYW1lLCBwYXRoKS5sb2FkX21vZHVsZShuYW1lKQorCisKK2RlZiBsb2FkX21vZHVsZShuYW1lLCBmaWxlLCBmaWxlbmFtZSwgZGV0YWlscyk6CisgICAgIiIiKipERVBSRUNBVEVEKioKKworICAgIExvYWQgYSBtb2R1bGUsIGdpdmVuIGluZm9ybWF0aW9uIHJldHVybmVkIGJ5IGZpbmRfbW9kdWxlKCkuCisKKyAgICBUaGUgbW9kdWxlIG5hbWUgbXVzdCBpbmNsdWRlIHRoZSBmdWxsIHBhY2thZ2UgbmFtZSwgaWYgYW55LgorCisgICAgIiIiCisgICAgc3VmZml4LCBtb2RlLCB0eXBlXyA9IGRldGFpbHMKKyAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcignaWdub3JlJykKKyAgICAgICAgaWYgbW9kZSBhbmQgKG5vdCBtb2RlLnN0YXJ0c3dpdGgoKCdyJywgJ1UnKSkgb3IgJysnIGluIG1vZGUpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignaW52YWxpZCBmaWxlIG9wZW4gbW9kZSB7IXJ9Jy5mb3JtYXQobW9kZSkpCisgICAgICAgIGVsaWYgZmlsZSBpcyBOb25lIGFuZCB0eXBlXyBpbiB7UFlfU09VUkNFLCBQWV9DT01QSUxFRH06CisgICAgICAgICAgICBtc2cgPSAnZmlsZSBvYmplY3QgcmVxdWlyZWQgZm9yIGltcG9ydCAodHlwZSBjb2RlIHt9KScuZm9ybWF0KHR5cGVfKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihtc2cpCisgICAgICAgIGVsaWYgdHlwZV8gPT0gUFlfU09VUkNFOgorICAgICAgICAgICAgcmV0dXJuIGxvYWRfc291cmNlKG5hbWUsIGZpbGVuYW1lLCBmaWxlKQorICAgICAgICBlbGlmIHR5cGVfID09IFBZX0NPTVBJTEVEOgorICAgICAgICAgICAgcmV0dXJuIGxvYWRfY29tcGlsZWQobmFtZSwgZmlsZW5hbWUsIGZpbGUpCisgICAgICAgIGVsaWYgdHlwZV8gPT0gUEtHX0RJUkVDVE9SWToKKyAgICAgICAgICAgIHJldHVybiBsb2FkX3BhY2thZ2UobmFtZSwgZmlsZW5hbWUpCisgICAgICAgIGVsaWYgdHlwZV8gPT0gQ19CVUlMVElOOgorICAgICAgICAgICAgcmV0dXJuIGluaXRfYnVpbHRpbihuYW1lKQorICAgICAgICBlbGlmIHR5cGVfID09IFBZX0ZST1pFTjoKKyAgICAgICAgICAgIHJldHVybiBpbml0X2Zyb3plbihuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbXNnID0gICJEb24ndCBrbm93IGhvdyB0byBpbXBvcnQge30gKHR5cGUgY29kZSB7fSIuZm9ybWF0KG5hbWUsIHR5cGVfKQorICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IobXNnLCBuYW1lPW5hbWUpCisKKworZGVmIGZpbmRfbW9kdWxlKG5hbWUsIHBhdGg9Tm9uZSk6CisgICAgIiIiKipERVBSRUNBVEVEKioKKworICAgIFNlYXJjaCBmb3IgYSBtb2R1bGUuCisKKyAgICBJZiBwYXRoIGlzIG9taXR0ZWQgb3IgTm9uZSwgc2VhcmNoIGZvciBhIGJ1aWx0LWluLCBmcm96ZW4gb3Igc3BlY2lhbAorICAgIG1vZHVsZSBhbmQgY29udGludWUgc2VhcmNoIGluIHN5cy5wYXRoLiBUaGUgbW9kdWxlIG5hbWUgY2Fubm90CisgICAgY29udGFpbiAnLic7IHRvIHNlYXJjaCBmb3IgYSBzdWJtb2R1bGUgb2YgYSBwYWNrYWdlLCBwYXNzIHRoZQorICAgIHN1Ym1vZHVsZSBuYW1lIGFuZCB0aGUgcGFja2FnZSdzIF9fcGF0aF9fLgorCisgICAgIiIiCisgICAgaWYgbm90IGlzaW5zdGFuY2UobmFtZSwgc3RyKToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCInbmFtZScgbXVzdCBiZSBhIHN0ciwgbm90IHt9Ii5mb3JtYXQodHlwZShuYW1lKSkpCisgICAgZWxpZiBub3QgaXNpbnN0YW5jZShwYXRoLCAodHlwZShOb25lKSwgbGlzdCkpOgorICAgICAgICAjIEJhY2t3YXJkcy1jb21wYXRpYmlsaXR5CisgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiJ2xpc3QnIG11c3QgYmUgTm9uZSBvciBhIGxpc3QsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3Qge30iLmZvcm1hdCh0eXBlKG5hbWUpKSkKKworICAgIGlmIHBhdGggaXMgTm9uZToKKyAgICAgICAgaWYgaXNfYnVpbHRpbihuYW1lKToKKyAgICAgICAgICAgIHJldHVybiBOb25lLCBOb25lLCAoJycsICcnLCBDX0JVSUxUSU4pCisgICAgICAgIGVsaWYgaXNfZnJvemVuKG5hbWUpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsICgnJywgJycsIFBZX0ZST1pFTikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBhdGggPSBzeXMucGF0aAorCisgICAgZm9yIGVudHJ5IGluIHBhdGg6CisgICAgICAgIHBhY2thZ2VfZGlyZWN0b3J5ID0gb3MucGF0aC5qb2luKGVudHJ5LCBuYW1lKQorICAgICAgICBmb3Igc3VmZml4IGluIFsnLnB5JywgbWFjaGluZXJ5LkJZVEVDT0RFX1NVRkZJWEVTWzBdXToKKyAgICAgICAgICAgIHBhY2thZ2VfZmlsZV9uYW1lID0gJ19faW5pdF9fJyArIHN1ZmZpeAorICAgICAgICAgICAgZmlsZV9wYXRoID0gb3MucGF0aC5qb2luKHBhY2thZ2VfZGlyZWN0b3J5LCBwYWNrYWdlX2ZpbGVfbmFtZSkKKyAgICAgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKGZpbGVfcGF0aCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUsIHBhY2thZ2VfZGlyZWN0b3J5LCAoJycsICcnLCBQS0dfRElSRUNUT1JZKQorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2lnbm9yZScpCisgICAgICAgICAgICBmb3Igc3VmZml4LCBtb2RlLCB0eXBlXyBpbiBnZXRfc3VmZml4ZXMoKToKKyAgICAgICAgICAgICAgICBmaWxlX25hbWUgPSBuYW1lICsgc3VmZml4CisgICAgICAgICAgICAgICAgZmlsZV9wYXRoID0gb3MucGF0aC5qb2luKGVudHJ5LCBmaWxlX25hbWUpCisgICAgICAgICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZmlsZV9wYXRoKToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGJyZWFrICAjIEJyZWFrIG91dCBvZiBvdXRlciBsb29wIHdoZW4gYnJlYWtpbmcgb3V0IG9mIGlubmVyIGxvb3AuCisgICAgZWxzZToKKyAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoJ05vIG1vZHVsZSBuYW1lIHshcn0nLmZvcm1hdChuYW1lKSwgbmFtZT1uYW1lKQorCisgICAgZW5jb2RpbmcgPSBOb25lCisgICAgaWYgbW9kZSA9PSAnVSc6CisgICAgICAgIHdpdGggb3BlbihmaWxlX3BhdGgsICdyYicpIGFzIGZpbGU6CisgICAgICAgICAgICBlbmNvZGluZyA9IHRva2VuaXplLmRldGVjdF9lbmNvZGluZyhmaWxlLnJlYWRsaW5lKVswXQorICAgIGZpbGUgPSBvcGVuKGZpbGVfcGF0aCwgbW9kZSwgZW5jb2Rpbmc9ZW5jb2RpbmcpCisgICAgcmV0dXJuIGZpbGUsIGZpbGVfcGF0aCwgKHN1ZmZpeCwgbW9kZSwgdHlwZV8pCisKKworX1JFTE9BRElORyA9IHt9CisKK2RlZiByZWxvYWQobW9kdWxlKToKKyAgICAiIiJSZWxvYWQgdGhlIG1vZHVsZSBhbmQgcmV0dXJuIGl0LgorCisgICAgVGhlIG1vZHVsZSBtdXN0IGhhdmUgYmVlbiBzdWNjZXNzZnVsbHkgaW1wb3J0ZWQgYmVmb3JlLgorCisgICAgIiIiCisgICAgaWYgbm90IG1vZHVsZSBvciB0eXBlKG1vZHVsZSkgIT0gdHlwZShzeXMpOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoInJlbG9hZCgpIGFyZ3VtZW50IG11c3QgYmUgbW9kdWxlIikKKyAgICBuYW1lID0gbW9kdWxlLl9fbmFtZV9fCisgICAgaWYgbmFtZSBub3QgaW4gc3lzLm1vZHVsZXM6CisgICAgICAgIG1zZyA9ICJtb2R1bGUge30gbm90IGluIHN5cy5tb2R1bGVzIgorICAgICAgICByYWlzZSBJbXBvcnRFcnJvcihtc2cuZm9ybWF0KG5hbWUpLCBuYW1lPW5hbWUpCisgICAgaWYgbmFtZSBpbiBfUkVMT0FESU5HOgorICAgICAgICByZXR1cm4gX1JFTE9BRElOR1tuYW1lXQorICAgIF9SRUxPQURJTkdbbmFtZV0gPSBtb2R1bGUKKyAgICB0cnk6CisgICAgICAgIHBhcmVudF9uYW1lID0gbmFtZS5ycGFydGl0aW9uKCcuJylbMF0KKyAgICAgICAgaWYgcGFyZW50X25hbWUgYW5kIHBhcmVudF9uYW1lIG5vdCBpbiBzeXMubW9kdWxlczoKKyAgICAgICAgICAgIG1zZyA9ICJwYXJlbnQgeyFyfSBub3QgaW4gc3lzLm1vZHVsZXMiCisgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcihtc2cuZm9ybWF0KHBhcmVudG5hbWUpLCBuYW1lPXBhcmVudF9uYW1lKQorICAgICAgICByZXR1cm4gbW9kdWxlLl9fbG9hZGVyX18ubG9hZF9tb2R1bGUobmFtZSkKKyAgICBmaW5hbGx5OgorICAgICAgICB0cnk6CisgICAgICAgICAgICBkZWwgX1JFTE9BRElOR1tuYW1lXQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL19faW5pdF9fLnB5IGIvTGliL2ltcG9ydGxpYi9fX2luaXRfXy5weQppbmRleCAyYmFhZjkzLi4wOTM1YWRhIDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL19faW5pdF9fLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvX19pbml0X18ucHkKQEAgLTEsMTAzICsxLDI2IEBACi0iIiJBIHB1cmUgUHl0aG9uIGltcGxlbWVudGF0aW9uIG9mIGltcG9ydC4KLQotUmVmZXJlbmNlcyBvbiBpbXBvcnQ6Ci0KLSAgICAqIExhbmd1YWdlIHJlZmVyZW5jZQotICAgICAgICAgIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvcmVmL2ltcG9ydC5odG1sCi0gICAgKiBfX2ltcG9ydF9fIGZ1bmN0aW9uCi0gICAgICAgICAgaHR0cDovL2RvY3MucHl0aG9uLm9yZy9saWIvYnVpbHQtaW4tZnVuY3MuaHRtbAotICAgICogUGFja2FnZXMKLSAgICAgICAgICBodHRwOi8vd3d3LnB5dGhvbi5vcmcvZG9jL2Vzc2F5cy9wYWNrYWdlcy5odG1sCi0gICAgKiBQRVAgMjM1OiBJbXBvcnQgb24gQ2FzZS1JbnNlbnNpdGl2ZSBQbGF0Zm9ybXMKLSAgICAgICAgICBodHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAyMzUKLSAgICAqIFBFUCAyNzU6IEltcG9ydCBNb2R1bGVzIGZyb20gWmlwIEFyY2hpdmVzCi0gICAgICAgICAgaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMjczCi0gICAgKiBQRVAgMzAyOiBOZXcgSW1wb3J0IEhvb2tzCi0gICAgICAgICAgaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMzAyLwotICAgICogUEVQIDMyODogSW1wb3J0czogTXVsdGktbGluZSBhbmQgQWJzb2x1dGUvUmVsYXRpdmUKLSAgICAgICAgICBodHRwOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAzMjgKLQotIiIiCi1fX2FsbF9fID0gWydfX2ltcG9ydF9fJywgJ2ltcG9ydF9tb2R1bGUnXQotCi1mcm9tIC4gaW1wb3J0IF9ib290c3RyYXAKLQotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9ydCB0b2tlbml6ZQorIiIiQSBwdXJlIFB5dGhvbiBpbXBsZW1lbnRhdGlvbiBvZiBpbXBvcnQuIiIiCitfX2FsbF9fID0gWydfX2ltcG9ydF9fJywgJ2ltcG9ydF9tb2R1bGUnLCAnaW52YWxpZGF0ZV9jYWNoZXMnXQogCiAjIEJvb3RzdHJhcCBoZWxwICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQgaW1wCitpbXBvcnQgc3lzCiAKLWRlZiBfY2FzZV9vayhkaXJlY3RvcnksIGNoZWNrKToKLSAgICAiIiJDaGVjayBpZiB0aGUgZGlyZWN0b3J5IGNvbnRhaW5zIHNvbWV0aGluZyBtYXRjaGluZyAnY2hlY2snLgotCi0gICAgTm8gY2hlY2sgaXMgZG9uZSBpZiB0aGUgZmlsZS9kaXJlY3RvcnkgZXhpc3RzIG9yIG5vdC4KLQotICAgICIiIgotICAgIGlmICdQWVRIT05DQVNFT0snIGluIG9zLmVudmlyb246Ci0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZWxpZiBjaGVjayBpbiBvcy5saXN0ZGlyKGRpcmVjdG9yeSBpZiBkaXJlY3RvcnkgZWxzZSBvcy5nZXRjd2QoKSk6Ci0gICAgICAgIHJldHVybiBUcnVlCi0gICAgcmV0dXJuIEZhbHNlCi0KLQotZGVmIF93X2xvbmcoeCk6Ci0gICAgIiIiQ29udmVydCBhIDMyLWJpdCBpbnRlZ2VyIHRvIGxpdHRsZS1lbmRpYW4uCi0KLSAgICBYWFggVGVtcG9yYXJ5IHVudGlsIG1hcnNoYWwncyBsb25nIGZ1bmN0aW9ucyBhcmUgZXhwb3NlZC4KLQotICAgICIiIgotICAgIHggPSBpbnQoeCkKLSAgICBpbnRfYnl0ZXMgPSBbXQotICAgIGludF9ieXRlcy5hcHBlbmQoeCAmIDB4RkYpCi0gICAgaW50X2J5dGVzLmFwcGVuZCgoeCA+PiA4KSAmIDB4RkYpCi0gICAgaW50X2J5dGVzLmFwcGVuZCgoeCA+PiAxNikgJiAweEZGKQotICAgIGludF9ieXRlcy5hcHBlbmQoKHggPj4gMjQpICYgMHhGRikKLSAgICByZXR1cm4gYnl0ZWFycmF5KGludF9ieXRlcykKLQotCi1kZWYgX3JfbG9uZyhpbnRfYnl0ZXMpOgotICAgICIiIkNvbnZlcnQgNCBieXRlcyBpbiBsaXR0bGUtZW5kaWFuIHRvIGFuIGludGVnZXIuCi0KLSAgICBYWFggVGVtcG9yYXJ5IHVudGlsIG1hcnNoYWwncyBsb25nIGZ1bmN0aW9uIGFyZSBleHBvc2VkLgotCi0gICAgIiIiCi0gICAgeCA9IGludF9ieXRlc1swXQotICAgIHggfD0gaW50X2J5dGVzWzFdIDw8IDgKLSAgICB4IHw9IGludF9ieXRlc1syXSA8PCAxNgotICAgIHggfD0gaW50X2J5dGVzWzNdIDw8IDI0Ci0gICAgcmV0dXJuIHgKLQotCi0jIFJlcXVpcmVkIGJ1aWx0LWluIG1vZHVsZXMuCiB0cnk6Ci0gICAgaW1wb3J0IHBvc2l4IGFzIF9vcworICAgIGltcG9ydCBfZnJvemVuX2ltcG9ydGxpYiBhcyBfYm9vdHN0cmFwCiBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgbnQgYXMgX29zCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbXBvcnQgb3MyIGFzIF9vcwotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigncG9zaXgsIG50LCBvciBvczIgbW9kdWxlIHJlcXVpcmVkIGZvciBpbXBvcnRsaWInKQotX2Jvb3RzdHJhcC5fb3MgPSBfb3MKLWltcG9ydCBpbXAsIHN5cywgbWFyc2hhbCwgZXJybm8sIF9pbwotX2Jvb3RzdHJhcC5pbXAgPSBpbXAKLV9ib290c3RyYXAuc3lzID0gc3lzCi1fYm9vdHN0cmFwLm1hcnNoYWwgPSBtYXJzaGFsCi1fYm9vdHN0cmFwLmVycm5vID0gZXJybm8KLV9ib290c3RyYXAuX2lvID0gX2lvCi1pbXBvcnQgX3dhcm5pbmdzCi1fYm9vdHN0cmFwLl93YXJuaW5ncyA9IF93YXJuaW5ncworICAgIGZyb20gLiBpbXBvcnQgX2Jvb3RzdHJhcAorICAgIF9ib290c3RyYXAuX3NldHVwKHN5cywgaW1wKQorZWxzZToKKyAgICAjIGltcG9ydGxpYi5fYm9vdHN0cmFwIGlzIHRoZSBidWlsdC1pbiBpbXBvcnQsIGVuc3VyZSB3ZSBkb24ndCBjcmVhdGUKKyAgICAjIGEgc2Vjb25kIGNvcHkgb2YgdGhlIG1vZHVsZS4KKyAgICBfYm9vdHN0cmFwLl9fbmFtZV9fID0gJ2ltcG9ydGxpYi5fYm9vdHN0cmFwJworICAgIF9ib290c3RyYXAuX19wYWNrYWdlX18gPSAnaW1wb3J0bGliJworICAgIF9ib290c3RyYXAuX19maWxlX18gPSBfX2ZpbGVfXy5yZXBsYWNlKCdfX2luaXRfXy5weScsICdfYm9vdHN0cmFwLnB5JykKKyAgICBzeXMubW9kdWxlc1snaW1wb3J0bGliLl9ib290c3RyYXAnXSA9IF9ib290c3RyYXAKIAotCi1mcm9tIG9zIGltcG9ydCBzZXAKLSMgRm9yIG9zLnBhdGguam9pbiByZXBsYWNlbWVudDsgcHVsbCBmcm9tIEluY2x1ZGUvb3NkZWZzLmg6U0VQIC4KLV9ib290c3RyYXAucGF0aF9zZXAgPSBzZXAKLQotX2Jvb3RzdHJhcC5fY2FzZV9vayA9IF9jYXNlX29rCi1tYXJzaGFsLl93X2xvbmcgPSBfd19sb25nCi1tYXJzaGFsLl9yX2xvbmcgPSBfcl9sb25nCisjIFRvIHNpbXBsaWZ5IGltcG9ydHMgaW4gdGVzdCBjb2RlCitfd19sb25nID0gX2Jvb3RzdHJhcC5fd19sb25nCitfcl9sb25nID0gX2Jvb3RzdHJhcC5fcl9sb25nCiAKIAogIyBQdWJsaWMgQVBJICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpAQCAtMTA1LDYgKzI4LDM4IEBACiBmcm9tIC5fYm9vdHN0cmFwIGltcG9ydCBfX2ltcG9ydF9fCiAKIAorZGVmIGludmFsaWRhdGVfY2FjaGVzKCk6CisgICAgIiIiQ2FsbCB0aGUgaW52YWxpZGF0ZV9jYWNoZXMoKSBtZXRob2Qgb24gYWxsIGZpbmRlcnMgc3RvcmVkIGluCisgICAgc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGVzICh3aGVyZSBpbXBsZW1lbnRlZCkuIiIiCisgICAgZm9yIGZpbmRlciBpbiBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZS52YWx1ZXMoKToKKyAgICAgICAgaWYgaGFzYXR0cihmaW5kZXIsICdpbnZhbGlkYXRlX2NhY2hlcycpOgorICAgICAgICAgICAgZmluZGVyLmludmFsaWRhdGVfY2FjaGVzKCkKKworCitkZWYgZmluZF9sb2FkZXIobmFtZSwgcGF0aD1Ob25lKToKKyAgICAiIiJGaW5kIHRoZSBsb2FkZXIgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLgorCisgICAgRmlyc3QsIHN5cy5tb2R1bGVzIGlzIGNoZWNrZWQgdG8gc2VlIGlmIHRoZSBtb2R1bGUgd2FzIGFscmVhZHkgaW1wb3J0ZWQuIElmCisgICAgc28sIHRoZW4gc3lzLm1vZHVsZXNbbmFtZV0uX19sb2FkZXJfXyBpcyByZXR1cm5lZC4gSWYgdGhhdCBoYXBwZW5zIHRvIGJlCisgICAgc2V0IHRvIE5vbmUsIHRoZW4gVmFsdWVFcnJvciBpcyByYWlzZWQuIElmIHRoZSBtb2R1bGUgaXMgbm90IGluCisgICAgc3lzLm1vZHVsZXMsIHRoZW4gc3lzLm1ldGFfcGF0aCBpcyBzZWFyY2hlZCBmb3IgYSBzdWl0YWJsZSBsb2FkZXIgd2l0aCB0aGUKKyAgICB2YWx1ZSBvZiAncGF0aCcgZ2l2ZW4gdG8gdGhlIGZpbmRlcnMuIE5vbmUgaXMgcmV0dXJuZWQgaWYgbm8gbG9hZGVyIGNvdWxkCisgICAgYmUgZm91bmQuCisKKyAgICBEb3R0ZWQgbmFtZXMgZG8gbm90IGhhdmUgdGhlaXIgcGFyZW50IHBhY2thZ2VzIGltcGxpY2l0bHkgaW1wb3J0ZWQuCisKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGxvYWRlciA9IHN5cy5tb2R1bGVzW25hbWVdLl9fbG9hZGVyX18KKyAgICAgICAgaWYgbG9hZGVyIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd7fS5fX2xvYWRlcl9fIGlzIE5vbmUnLmZvcm1hdChuYW1lKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBsb2FkZXIKKyAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgIHBhc3MKKyAgICByZXR1cm4gX2Jvb3RzdHJhcC5fZmluZF9tb2R1bGUobmFtZSwgcGF0aCkKKworCiBkZWYgaW1wb3J0X21vZHVsZShuYW1lLCBwYWNrYWdlPU5vbmUpOgogICAgICIiIkltcG9ydCBhIG1vZHVsZS4KIApkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi9fYm9vdHN0cmFwLnB5IGIvTGliL2ltcG9ydGxpYi9fYm9vdHN0cmFwLnB5CmluZGV4IDkwZWIxYTcuLmQ4OWFmNDIgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvX2Jvb3RzdHJhcC5weQorKysgYi9MaWIvaW1wb3J0bGliL19ib290c3RyYXAucHkKQEAgLTYsMzMgKzYsOTMgQEAKIHdvcmsuIE9uZSBzaG91bGQgdXNlIGltcG9ydGxpYiBhcyB0aGUgcHVibGljLWZhY2luZyB2ZXJzaW9uIG9mIHRoaXMgbW9kdWxlLgogCiAiIiIKLQotIyBJbmplY3RlZCBtb2R1bGVzIGFyZSAnX3dhcm5pbmdzJywgJ2ltcCcsICdzeXMnLCAnbWFyc2hhbCcsICdlcnJubycsICdfaW8nLAotIyBhbmQgJ19vcycgKGEuay5hLiAncG9zaXgnLCAnbnQnIG9yICdvczInKS4KLSMgSW5qZWN0ZWQgYXR0cmlidXRlIGlzIHBhdGhfc2VwLgogIworIyBJTVBPUlRBTlQ6IFdoZW5ldmVyIG1ha2luZyBjaGFuZ2VzIHRvIHRoaXMgbW9kdWxlLCBiZSBzdXJlIHRvIHJ1bgorIyBhIHRvcC1sZXZlbCBtYWtlIGluIG9yZGVyIHRvIGdldCB0aGUgZnJvemVuIHZlcnNpb24gb2YgdGhlIG1vZHVsZQorIyB1cGRhdGUuIE5vdCBkb2luZyBzbywgd2lsbCByZXN1bHQgaW4gdGhlIE1ha2VmaWxlIHRvIGZhaWwgZm9yCisjIGFsbCBvdGhlcnMgd2hvIGRvbid0IGhhdmUgYSAuL3B5dGhvbiBhcm91bmQgdG8gZnJlZXplIHRoZSBtb2R1bGUKKyMgaW4gdGhlIGVhcmx5IHN0YWdlcyBvZiBjb21waWxhdGlvbi4KKyMKKworIyBTZWUgaW1wb3J0bGliLl9zZXR1cCgpIGZvciB3aGF0IGlzIGluamVjdGVkIGludG8gdGhlIGdsb2JhbCBuYW1lc3BhY2UuCisKICMgV2hlbiBlZGl0aW5nIHRoaXMgY29kZSBiZSBhd2FyZSB0aGF0IGNvZGUgZXhlY3V0ZWQgYXQgaW1wb3J0IHRpbWUgQ0FOTk9UCiAjIHJlZmVyZW5jZSBhbnkgaW5qZWN0ZWQgb2JqZWN0cyEgVGhpcyBpbmNsdWRlcyBub3Qgb25seSBnbG9iYWwgY29kZSBidXQgYWxzbwogIyBhbnl0aGluZyBzcGVjaWZpZWQgYXQgdGhlIGNsYXNzIGxldmVsLgogCisjIFhYWCBNYWtlIHN1cmUgYWxsIHB1YmxpYyBuYW1lcyBoYXZlIG5vIHNpbmdsZSBsZWFkaW5nIHVuZGVyc2NvcmUgYW5kIGFsbAorIyAgICAgb3RoZXJzIGRvLgorCiAKICMgQm9vdHN0cmFwLXJlbGF0ZWQgY29kZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotIyBYWFggQ291bGQgYWxzbyBleHBvc2UgTW9kdWxlcy9nZXRwYXRoLmM6am9pbnBhdGgoKQotZGVmIF9wYXRoX2pvaW4oKmFyZ3MpOgotICAgICIiIlJlcGxhY2VtZW50IGZvciBvcy5wYXRoLmpvaW4uIiIiCi0gICAgcmV0dXJuIHBhdGhfc2VwLmpvaW4oeFs6LWxlbihwYXRoX3NlcCldIGlmIHguZW5kc3dpdGgocGF0aF9zZXApIGVsc2UgeAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIGFyZ3MgaWYgeCkKK19DQVNFX0lOU0VOU0lUSVZFX1BMQVRGT1JNUyA9ICd3aW4nLCAnY3lnd2luJywgJ2RhcndpbicKIAogCi1kZWYgX3BhdGhfZXhpc3RzKHBhdGgpOgotICAgICIiIlJlcGxhY2VtZW50IGZvciBvcy5wYXRoLmV4aXN0cy4iIiIKLSAgICB0cnk6Ci0gICAgICAgIF9vcy5zdGF0KHBhdGgpCi0gICAgZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQorZGVmIF9tYWtlX3JlbGF4X2Nhc2UoKToKKyAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aChfQ0FTRV9JTlNFTlNJVElWRV9QTEFURk9STVMpOgorICAgICAgICBkZWYgX3JlbGF4X2Nhc2UoKToKKyAgICAgICAgICAgICIiIlRydWUgaWYgZmlsZW5hbWVzIG11c3QgYmUgY2hlY2tlZCBjYXNlLWluc2Vuc2l0aXZlbHkuIiIiCisgICAgICAgICAgICByZXR1cm4gYidQWVRIT05DQVNFT0snIGluIF9vcy5lbnZpcm9uCiAgICAgZWxzZToKLSAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZGVmIF9yZWxheF9jYXNlKCk6CisgICAgICAgICAgICAiIiJUcnVlIGlmIGZpbGVuYW1lcyBtdXN0IGJlIGNoZWNrZWQgY2FzZS1pbnNlbnNpdGl2ZWx5LiIiIgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIF9yZWxheF9jYXNlCisKKworIyBUT0RPOiBFeHBvc2UgZnJvbSBtYXJzaGFsCitkZWYgX3dfbG9uZyh4KToKKyAgICAiIiJDb252ZXJ0IGEgMzItYml0IGludGVnZXIgdG8gbGl0dGxlLWVuZGlhbi4KKworICAgIFhYWCBUZW1wb3JhcnkgdW50aWwgbWFyc2hhbCdzIGxvbmcgZnVuY3Rpb25zIGFyZSBleHBvc2VkLgorCisgICAgIiIiCisgICAgeCA9IGludCh4KQorICAgIGludF9ieXRlcyA9IFtdCisgICAgaW50X2J5dGVzLmFwcGVuZCh4ICYgMHhGRikKKyAgICBpbnRfYnl0ZXMuYXBwZW5kKCh4ID4+IDgpICYgMHhGRikKKyAgICBpbnRfYnl0ZXMuYXBwZW5kKCh4ID4+IDE2KSAmIDB4RkYpCisgICAgaW50X2J5dGVzLmFwcGVuZCgoeCA+PiAyNCkgJiAweEZGKQorICAgIHJldHVybiBieXRlYXJyYXkoaW50X2J5dGVzKQorCisKKyMgVE9ETzogRXhwb3NlIGZyb20gbWFyc2hhbAorZGVmIF9yX2xvbmcoaW50X2J5dGVzKToKKyAgICAiIiJDb252ZXJ0IDQgYnl0ZXMgaW4gbGl0dGxlLWVuZGlhbiB0byBhbiBpbnRlZ2VyLgorCisgICAgWFhYIFRlbXBvcmFyeSB1bnRpbCBtYXJzaGFsJ3MgbG9uZyBmdW5jdGlvbiBhcmUgZXhwb3NlZC4KKworICAgICIiIgorICAgIHggPSBpbnRfYnl0ZXNbMF0KKyAgICB4IHw9IGludF9ieXRlc1sxXSA8PCA4CisgICAgeCB8PSBpbnRfYnl0ZXNbMl0gPDwgMTYKKyAgICB4IHw9IGludF9ieXRlc1szXSA8PCAyNAorICAgIHJldHVybiB4CisKKworZGVmIF9wYXRoX2pvaW4oKnBhdGhfcGFydHMpOgorICAgICIiIlJlcGxhY2VtZW50IGZvciBvcy5wYXRoLmpvaW4oKS4iIiIKKyAgICBuZXdfcGFydHMgPSBbXQorICAgIGZvciBwYXJ0IGluIHBhdGhfcGFydHM6CisgICAgICAgIGlmIG5vdCBwYXJ0OgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgbmV3X3BhcnRzLmFwcGVuZChwYXJ0KQorICAgICAgICBpZiBwYXJ0Wy0xXSBub3QgaW4gcGF0aF9zZXBhcmF0b3JzOgorICAgICAgICAgICAgbmV3X3BhcnRzLmFwcGVuZChwYXRoX3NlcCkKKyAgICByZXR1cm4gJycuam9pbihuZXdfcGFydHNbOi0xXSkgICMgRHJvcCBzdXBlcmZsdW91cyBwYXRoIHNlcGFyYXRvci4KKworCitkZWYgX3BhdGhfc3BsaXQocGF0aCk6CisgICAgIiIiUmVwbGFjZW1lbnQgZm9yIG9zLnBhdGguc3BsaXQoKS4iIiIKKyAgICBmb3IgeCBpbiByZXZlcnNlZChwYXRoKToKKyAgICAgICAgaWYgeCBpbiBwYXRoX3NlcGFyYXRvcnM6CisgICAgICAgICAgICBzZXAgPSB4CisgICAgICAgICAgICBicmVhaworICAgIGVsc2U6CisgICAgICAgIHNlcCA9IHBhdGhfc2VwCisgICAgZnJvbnQsIF8sIHRhaWwgPSBwYXRoLnJwYXJ0aXRpb24oc2VwKQorICAgIHJldHVybiBmcm9udCwgdGFpbAogCiAKIGRlZiBfcGF0aF9pc19tb2RlX3R5cGUocGF0aCwgbW9kZSk6CkBAIC01OCw2MSArMTE4LDI1MSBAQAogICAgIHJldHVybiBfcGF0aF9pc19tb2RlX3R5cGUocGF0aCwgMG8wNDAwMDApCiAKIAotZGVmIF9wYXRoX3dpdGhvdXRfZXh0KHBhdGgsIGV4dF90eXBlKToKLSAgICAiIiJSZXBsYWNlbWVudCBmb3Igb3MucGF0aC5zcGxpdGV4dCgpWzBdLiIiIgotICAgIGZvciBzdWZmaXggaW4gX3N1ZmZpeF9saXN0KGV4dF90eXBlKToKLSAgICAgICAgaWYgcGF0aC5lbmRzd2l0aChzdWZmaXgpOgotICAgICAgICAgICAgcmV0dXJuIHBhdGhbOi1sZW4oc3VmZml4KV0KLSAgICBlbHNlOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJwYXRoIGlzIG5vdCBvZiB0aGUgc3BlY2lmaWVkIHR5cGUiKQotCi0KLWRlZiBfcGF0aF9hYnNvbHV0ZShwYXRoKToKLSAgICAiIiJSZXBsYWNlbWVudCBmb3Igb3MucGF0aC5hYnNwYXRoLiIiIgotICAgIGlmIG5vdCBwYXRoOgotICAgICAgICBwYXRoID0gX29zLmdldGN3ZCgpCitkZWYgX3dyaXRlX2F0b21pYyhwYXRoLCBkYXRhKToKKyAgICAiIiJCZXN0LWVmZm9ydCBmdW5jdGlvbiB0byB3cml0ZSBkYXRhIHRvIGEgcGF0aCBhdG9taWNhbGx5LgorICAgIEJlIHByZXBhcmVkIHRvIGhhbmRsZSBhIEZpbGVFeGlzdHNFcnJvciBpZiBjb25jdXJyZW50IHdyaXRpbmcgb2YgdGhlCisgICAgdGVtcG9yYXJ5IGZpbGUgaXMgYXR0ZW1wdGVkLiIiIgorICAgICMgaWQoKSBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgcHNldWRvLXJhbmRvbSBmaWxlbmFtZS4KKyAgICBwYXRoX3RtcCA9ICd7fS57fScuZm9ybWF0KHBhdGgsIGlkKHBhdGgpKQorICAgIGZkID0gX29zLm9wZW4ocGF0aF90bXAsIF9vcy5PX0VYQ0wgfCBfb3MuT19DUkVBVCB8IF9vcy5PX1dST05MWSwgMG82NjYpCiAgICAgdHJ5OgotICAgICAgICByZXR1cm4gX29zLl9nZXRmdWxscGF0aG5hbWUocGF0aCkKLSAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgIGlmIHBhdGguc3RhcnRzd2l0aCgnLycpOgotICAgICAgICAgICAgcmV0dXJuIHBhdGgKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBfcGF0aF9qb2luKF9vcy5nZXRjd2QoKSwgcGF0aCkKKyAgICAgICAgIyBXZSBmaXJzdCB3cml0ZSBkYXRhIHRvIGEgdGVtcG9yYXJ5IGZpbGUsIGFuZCB0aGVuIHVzZSBvcy5yZXBsYWNlKCkgdG8KKyAgICAgICAgIyBwZXJmb3JtIGFuIGF0b21pYyByZW5hbWUuCisgICAgICAgIHdpdGggX2lvLkZpbGVJTyhmZCwgJ3diJykgYXMgZmlsZToKKyAgICAgICAgICAgIGZpbGUud3JpdGUoZGF0YSkKKyAgICAgICAgX29zLnJlcGxhY2UocGF0aF90bXAsIHBhdGgpCisgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIF9vcy51bmxpbmsocGF0aF90bXApCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICByYWlzZQogCiAKIGRlZiBfd3JhcChuZXcsIG9sZCk6Ci0gICAgIiIiU2ltcGxlIHN1YnN0aXR1dGUgZm9yIGZ1bmN0b29scy53cmFwcy4iIiIKLSAgICBmb3IgcmVwbGFjZSBpbiBbJ19fbW9kdWxlX18nLCAnX19uYW1lX18nLCAnX19kb2NfXyddOgotICAgICAgICBzZXRhdHRyKG5ldywgcmVwbGFjZSwgZ2V0YXR0cihvbGQsIHJlcGxhY2UpKQorICAgICIiIlNpbXBsZSBzdWJzdGl0dXRlIGZvciBmdW5jdG9vbHMudXBkYXRlX3dyYXBwZXIuIiIiCisgICAgZm9yIHJlcGxhY2UgaW4gWydfX21vZHVsZV9fJywgJ19fbmFtZV9fJywgJ19fcXVhbG5hbWVfXycsICdfX2RvY19fJ106CisgICAgICAgIGlmIGhhc2F0dHIob2xkLCByZXBsYWNlKToKKyAgICAgICAgICAgIHNldGF0dHIobmV3LCByZXBsYWNlLCBnZXRhdHRyKG9sZCwgcmVwbGFjZSkpCiAgICAgbmV3Ll9fZGljdF9fLnVwZGF0ZShvbGQuX19kaWN0X18pCiAKIAotY29kZV90eXBlID0gdHlwZShfd3JhcC5fX2NvZGVfXykKK19jb2RlX3R5cGUgPSB0eXBlKF93cmFwLl9fY29kZV9fKQorCisKK2RlZiBuZXdfbW9kdWxlKG5hbWUpOgorICAgICIiIkNyZWF0ZSBhIG5ldyBtb2R1bGUuCisKKyAgICBUaGUgbW9kdWxlIGlzIG5vdCBlbnRlcmVkIGludG8gc3lzLm1vZHVsZXMuCisKKyAgICAiIiIKKyAgICByZXR1cm4gdHlwZShfaW8pKG5hbWUpCisKKworIyBNb2R1bGUtbGV2ZWwgbG9ja2luZyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIEEgZGljdCBtYXBwaW5nIG1vZHVsZSBuYW1lcyB0byB3ZWFrcmVmcyBvZiBfTW9kdWxlTG9jayBpbnN0YW5jZXMKK19tb2R1bGVfbG9ja3MgPSB7fQorIyBBIGRpY3QgbWFwcGluZyB0aHJlYWQgaWRzIHRvIF9Nb2R1bGVMb2NrIGluc3RhbmNlcworX2Jsb2NraW5nX29uID0ge30KKworCitjbGFzcyBfRGVhZGxvY2tFcnJvcihSdW50aW1lRXJyb3IpOgorICAgIHBhc3MKKworCitjbGFzcyBfTW9kdWxlTG9jazoKKyAgICAiIiJBIHJlY3Vyc2l2ZSBsb2NrIGltcGxlbWVudGF0aW9uIHdoaWNoIGlzIGFibGUgdG8gZGV0ZWN0IGRlYWRsb2NrcworICAgIChlLmcuIHRocmVhZCAxIHRyeWluZyB0byB0YWtlIGxvY2tzIEEgdGhlbiBCLCBhbmQgdGhyZWFkIDIgdHJ5aW5nIHRvCisgICAgdGFrZSBsb2NrcyBCIHRoZW4gQSkuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAgIHNlbGYubG9jayA9IF90aHJlYWQuYWxsb2NhdGVfbG9jaygpCisgICAgICAgIHNlbGYud2FrZXVwID0gX3RocmVhZC5hbGxvY2F0ZV9sb2NrKCkKKyAgICAgICAgc2VsZi5uYW1lID0gbmFtZQorICAgICAgICBzZWxmLm93bmVyID0gTm9uZQorICAgICAgICBzZWxmLmNvdW50ID0gMAorICAgICAgICBzZWxmLndhaXRlcnMgPSAwCisKKyAgICBkZWYgaGFzX2RlYWRsb2NrKHNlbGYpOgorICAgICAgICAjIERlYWRsb2NrIGF2b2lkYW5jZSBmb3IgY29uY3VycmVudCBjaXJjdWxhciBpbXBvcnRzLgorICAgICAgICBtZSA9IF90aHJlYWQuZ2V0X2lkZW50KCkKKyAgICAgICAgdGlkID0gc2VsZi5vd25lcgorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgbG9jayA9IF9ibG9ja2luZ19vbi5nZXQodGlkKQorICAgICAgICAgICAgaWYgbG9jayBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgdGlkID0gbG9jay5vd25lcgorICAgICAgICAgICAgaWYgdGlkID09IG1lOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgYWNxdWlyZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIEFjcXVpcmUgdGhlIG1vZHVsZSBsb2NrLiAgSWYgYSBwb3RlbnRpYWwgZGVhZGxvY2sgaXMgZGV0ZWN0ZWQsCisgICAgICAgIGEgX0RlYWRsb2NrRXJyb3IgaXMgcmFpc2VkLgorICAgICAgICBPdGhlcndpc2UsIHRoZSBsb2NrIGlzIGFsd2F5cyBhY3F1aXJlZCBhbmQgVHJ1ZSBpcyByZXR1cm5lZC4KKyAgICAgICAgIiIiCisgICAgICAgIHRpZCA9IF90aHJlYWQuZ2V0X2lkZW50KCkKKyAgICAgICAgX2Jsb2NraW5nX29uW3RpZF0gPSBzZWxmCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmxvY2s6CisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuY291bnQgPT0gMCBvciBzZWxmLm93bmVyID09IHRpZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub3duZXIgPSB0aWQKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY291bnQgKz0gMQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5oYXNfZGVhZGxvY2soKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIF9EZWFkbG9ja0Vycm9yKCJkZWFkbG9jayBkZXRlY3RlZCBieSAlciIgJSBzZWxmKQorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLndha2V1cC5hY3F1aXJlKEZhbHNlKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYud2FpdGVycyArPSAxCisgICAgICAgICAgICAgICAgIyBXYWl0IGZvciBhIHJlbGVhc2UoKSBjYWxsCisgICAgICAgICAgICAgICAgc2VsZi53YWtldXAuYWNxdWlyZSgpCisgICAgICAgICAgICAgICAgc2VsZi53YWtldXAucmVsZWFzZSgpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBkZWwgX2Jsb2NraW5nX29uW3RpZF0KKworICAgIGRlZiByZWxlYXNlKHNlbGYpOgorICAgICAgICB0aWQgPSBfdGhyZWFkLmdldF9pZGVudCgpCisgICAgICAgIHdpdGggc2VsZi5sb2NrOgorICAgICAgICAgICAgaWYgc2VsZi5vd25lciAhPSB0aWQ6CisgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJjYW5ub3QgcmVsZWFzZSB1bi1hY3F1aXJlZCBsb2NrIikKKyAgICAgICAgICAgIGFzc2VydCBzZWxmLmNvdW50ID4gMAorICAgICAgICAgICAgc2VsZi5jb3VudCAtPSAxCisgICAgICAgICAgICBpZiBzZWxmLmNvdW50ID09IDA6CisgICAgICAgICAgICAgICAgc2VsZi5vd25lciA9IE5vbmUKKyAgICAgICAgICAgICAgICBpZiBzZWxmLndhaXRlcnM6CisgICAgICAgICAgICAgICAgICAgIHNlbGYud2FpdGVycyAtPSAxCisgICAgICAgICAgICAgICAgICAgIHNlbGYud2FrZXVwLnJlbGVhc2UoKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIl9Nb2R1bGVMb2NrKCVyKSBhdCAlZCIgJSAoc2VsZi5uYW1lLCBpZChzZWxmKSkKKworCitjbGFzcyBfRHVtbXlNb2R1bGVMb2NrOgorICAgICIiIkEgc2ltcGxlIF9Nb2R1bGVMb2NrIGVxdWl2YWxlbnQgZm9yIFB5dGhvbiBidWlsZHMgd2l0aG91dAorICAgIG11bHRpLXRocmVhZGluZyBzdXBwb3J0LiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUpOgorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYuY291bnQgPSAwCisKKyAgICBkZWYgYWNxdWlyZShzZWxmKToKKyAgICAgICAgc2VsZi5jb3VudCArPSAxCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgcmVsZWFzZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5jb3VudCA9PSAwOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJjYW5ub3QgcmVsZWFzZSB1bi1hY3F1aXJlZCBsb2NrIikKKyAgICAgICAgc2VsZi5jb3VudCAtPSAxCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiX0R1bW15TW9kdWxlTG9jayglcikgYXQgJWQiICUgKHNlbGYubmFtZSwgaWQoc2VsZikpCisKKworIyBUaGUgZm9sbG93aW5nIHR3byBmdW5jdGlvbnMgYXJlIGZvciBjb25zdW1wdGlvbiBieSBQeXRob24vaW1wb3J0LmMuCisKK2RlZiBfZ2V0X21vZHVsZV9sb2NrKG5hbWUpOgorICAgICIiIkdldCBvciBjcmVhdGUgdGhlIG1vZHVsZSBsb2NrIGZvciBhIGdpdmVuIG1vZHVsZSBuYW1lLgorCisgICAgU2hvdWxkIG9ubHkgYmUgY2FsbGVkIHdpdGggdGhlIGltcG9ydCBsb2NrIHRha2VuLiIiIgorICAgIGxvY2sgPSBOb25lCisgICAgaWYgbmFtZSBpbiBfbW9kdWxlX2xvY2tzOgorICAgICAgICBsb2NrID0gX21vZHVsZV9sb2Nrc1tuYW1lXSgpCisgICAgaWYgbG9jayBpcyBOb25lOgorICAgICAgICBpZiBfdGhyZWFkIGlzIE5vbmU6CisgICAgICAgICAgICBsb2NrID0gX0R1bW15TW9kdWxlTG9jayhuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9jayA9IF9Nb2R1bGVMb2NrKG5hbWUpCisgICAgICAgIGRlZiBjYihfKToKKyAgICAgICAgICAgIGRlbCBfbW9kdWxlX2xvY2tzW25hbWVdCisgICAgICAgIF9tb2R1bGVfbG9ja3NbbmFtZV0gPSBfd2Vha3JlZi5yZWYobG9jaywgY2IpCisgICAgcmV0dXJuIGxvY2sKKworZGVmIF9sb2NrX3VubG9ja19tb2R1bGUobmFtZSk6CisgICAgIiIiUmVsZWFzZSB0aGUgZ2xvYmFsIGltcG9ydCBsb2NrLCBhbmQgYWNxdWlyZXMgdGhlbiByZWxlYXNlIHRoZQorICAgIG1vZHVsZSBsb2NrIGZvciBhIGdpdmVuIG1vZHVsZSBuYW1lLgorICAgIFRoaXMgaXMgdXNlZCB0byBlbnN1cmUgYSBtb2R1bGUgaXMgY29tcGxldGVseSBpbml0aWFsaXplZCwgaW4gdGhlCisgICAgZXZlbnQgaXQgaXMgYmVpbmcgaW1wb3J0ZWQgYnkgYW5vdGhlciB0aHJlYWQuCisKKyAgICBTaG91bGQgb25seSBiZSBjYWxsZWQgd2l0aCB0aGUgaW1wb3J0IGxvY2sgdGFrZW4uIiIiCisgICAgbG9jayA9IF9nZXRfbW9kdWxlX2xvY2sobmFtZSkKKyAgICBfaW1wLnJlbGVhc2VfbG9jaygpCisgICAgdHJ5OgorICAgICAgICBsb2NrLmFjcXVpcmUoKQorICAgIGV4Y2VwdCBfRGVhZGxvY2tFcnJvcjoKKyAgICAgICAgIyBDb25jdXJyZW50IGNpcmN1bGFyIGltcG9ydCwgd2UnbGwgYWNjZXB0IGEgcGFydGlhbGx5IGluaXRpYWxpemVkCisgICAgICAgICMgbW9kdWxlIG9iamVjdC4KKyAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIGxvY2sucmVsZWFzZSgpCisKIAogIyBGaW5kZXIvbG9hZGVyIHV0aWxpdHkgY29kZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCitfUFlDQUNIRSA9ICdfX3B5Y2FjaGVfXycKKworU09VUkNFX1NVRkZJWEVTID0gWycucHknXSAgIyBfc2V0dXAoKSBhZGRzIC5weXcgYXMgbmVlZGVkLgorCitERUJVR19CWVRFQ09ERV9TVUZGSVhFUyA9IFsnLnB5YyddCitPUFRJTUlaRURfQllURUNPREVfU1VGRklYRVMgPSBbJy5weW8nXQoraWYgX19kZWJ1Z19fOgorICAgIEJZVEVDT0RFX1NVRkZJWEVTID0gREVCVUdfQllURUNPREVfU1VGRklYRVMKK2Vsc2U6CisgICAgQllURUNPREVfU1VGRklYRVMgPSBPUFRJTUlaRURfQllURUNPREVfU1VGRklYRVMKKworZGVmIGNhY2hlX2Zyb21fc291cmNlKHBhdGgsIGRlYnVnX292ZXJyaWRlPU5vbmUpOgorICAgICIiIkdpdmVuIHRoZSBwYXRoIHRvIGEgLnB5IGZpbGUsIHJldHVybiB0aGUgcGF0aCB0byBpdHMgLnB5Yy8ucHlvIGZpbGUuCisKKyAgICBUaGUgLnB5IGZpbGUgZG9lcyBub3QgbmVlZCB0byBleGlzdDsgdGhpcyBzaW1wbHkgcmV0dXJucyB0aGUgcGF0aCB0byB0aGUKKyAgICAucHljLy5weW8gZmlsZSBjYWxjdWxhdGVkIGFzIGlmIHRoZSAucHkgZmlsZSB3ZXJlIGltcG9ydGVkLiAgVGhlIGV4dGVuc2lvbgorICAgIHdpbGwgYmUgLnB5YyB1bmxlc3MgX19kZWJ1Z19fIGlzIG5vdCBkZWZpbmVkLCB0aGVuIGl0IHdpbGwgYmUgLnB5by4KKworICAgIElmIGRlYnVnX292ZXJyaWRlIGlzIG5vdCBOb25lLCB0aGVuIGl0IG11c3QgYmUgYSBib29sZWFuIGFuZCBpcyB0YWtlbiBhcworICAgIHRoZSB2YWx1ZSBvZiBfX2RlYnVnX18gaW5zdGVhZC4KKworICAgICIiIgorICAgIGRlYnVnID0gX19kZWJ1Z19fIGlmIGRlYnVnX292ZXJyaWRlIGlzIE5vbmUgZWxzZSBkZWJ1Z19vdmVycmlkZQorICAgIGlmIGRlYnVnOgorICAgICAgICBzdWZmaXhlcyA9IERFQlVHX0JZVEVDT0RFX1NVRkZJWEVTCisgICAgZWxzZToKKyAgICAgICAgc3VmZml4ZXMgPSBPUFRJTUlaRURfQllURUNPREVfU1VGRklYRVMKKyAgICBoZWFkLCB0YWlsID0gX3BhdGhfc3BsaXQocGF0aCkKKyAgICBiYXNlX2ZpbGVuYW1lLCBzZXAsIF8gPSB0YWlsLnBhcnRpdGlvbignLicpCisgICAgZmlsZW5hbWUgPSAnJy5qb2luKFtiYXNlX2ZpbGVuYW1lLCBzZXAsIF9UQUcsIHN1ZmZpeGVzWzBdXSkKKyAgICByZXR1cm4gX3BhdGhfam9pbihoZWFkLCBfUFlDQUNIRSwgZmlsZW5hbWUpCisKKworZGVmIF92ZXJib3NlX21lc3NhZ2UobWVzc2FnZSwgKmFyZ3MpOgorICAgICIiIlByaW50IHRoZSBtZXNzYWdlIHRvIHN0ZGVyciBpZiAtdi9QWVRIT05WRVJCT1NFIGlzIHR1cm5lZCBvbi4iIiIKKyAgICBpZiBzeXMuZmxhZ3MudmVyYm9zZToKKyAgICAgICAgaWYgbm90IG1lc3NhZ2Uuc3RhcnRzd2l0aCgoJyMnLCAnaW1wb3J0ICcpKToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAnIyAnICsgbWVzc2FnZQorICAgICAgICBwcmludChtZXNzYWdlLmZvcm1hdCgqYXJncyksIGZpbGU9c3lzLnN0ZGVycikKKworCiBkZWYgc2V0X3BhY2thZ2UoZnhuKToKICAgICAiIiJTZXQgX19wYWNrYWdlX18gb24gdGhlIHJldHVybmVkIG1vZHVsZS4iIiIKLSAgICBkZWYgd3JhcHBlcigqYXJncywgKiprd2FyZ3MpOgorICAgIGRlZiBzZXRfcGFja2FnZV93cmFwcGVyKCphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIG1vZHVsZSA9IGZ4bigqYXJncywgKiprd2FyZ3MpCi0gICAgICAgIGlmIG5vdCBoYXNhdHRyKG1vZHVsZSwgJ19fcGFja2FnZV9fJykgb3IgbW9kdWxlLl9fcGFja2FnZV9fIGlzIE5vbmU6CisgICAgICAgIGlmIGdldGF0dHIobW9kdWxlLCAnX19wYWNrYWdlX18nLCBOb25lKSBpcyBOb25lOgogICAgICAgICAgICAgbW9kdWxlLl9fcGFja2FnZV9fID0gbW9kdWxlLl9fbmFtZV9fCiAgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihtb2R1bGUsICdfX3BhdGhfXycpOgogICAgICAgICAgICAgICAgIG1vZHVsZS5fX3BhY2thZ2VfXyA9IG1vZHVsZS5fX3BhY2thZ2VfXy5ycGFydGl0aW9uKCcuJylbMF0KICAgICAgICAgcmV0dXJuIG1vZHVsZQotICAgIF93cmFwKHdyYXBwZXIsIGZ4bikKLSAgICByZXR1cm4gd3JhcHBlcgorICAgIF93cmFwKHNldF9wYWNrYWdlX3dyYXBwZXIsIGZ4bikKKyAgICByZXR1cm4gc2V0X3BhY2thZ2Vfd3JhcHBlcgogCiAKIGRlZiBzZXRfbG9hZGVyKGZ4bik6CiAgICAgIiIiU2V0IF9fbG9hZGVyX18gb24gdGhlIHJldHVybmVkIG1vZHVsZS4iIiIKLSAgICBkZWYgd3JhcHBlcihzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgIGRlZiBzZXRfbG9hZGVyX3dyYXBwZXIoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgbW9kdWxlID0gZnhuKHNlbGYsICphcmdzLCAqKmt3YXJncykKICAgICAgICAgaWYgbm90IGhhc2F0dHIobW9kdWxlLCAnX19sb2FkZXJfXycpOgogICAgICAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBzZWxmCiAgICAgICAgIHJldHVybiBtb2R1bGUKLSAgICBfd3JhcCh3cmFwcGVyLCBmeG4pCi0gICAgcmV0dXJuIHdyYXBwZXIKKyAgICBfd3JhcChzZXRfbG9hZGVyX3dyYXBwZXIsIGZ4bikKKyAgICByZXR1cm4gc2V0X2xvYWRlcl93cmFwcGVyCiAKIAogZGVmIG1vZHVsZV9mb3JfbG9hZGVyKGZ4bik6CkBAIC0xMjAsMzEgKzM3MCw1MCBAQAogCiAgICAgVGhlIGRlY29yYXRlZCBmdW5jdGlvbiBpcyBwYXNzZWQgdGhlIG1vZHVsZSB0byB1c2UgaW5zdGVhZCBvZiB0aGUgbW9kdWxlCiAgICAgbmFtZS4gVGhlIG1vZHVsZSBwYXNzZWQgaW4gdG8gdGhlIGZ1bmN0aW9uIGlzIGVpdGhlciBmcm9tIHN5cy5tb2R1bGVzIGlmCi0gICAgaXQgYWxyZWFkeSBleGlzdHMgb3IgaXMgYSBuZXcgbW9kdWxlIHdoaWNoIGhhcyBfX25hbWVfXyBzZXQgYW5kIGlzIGluc2VydGVkCi0gICAgaW50byBzeXMubW9kdWxlcy4gSWYgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZCBhbmQgdGhlIGRlY29yYXRvciBjcmVhdGVkIHRoZQotICAgIG1vZHVsZSBpdCBpcyBzdWJzZXF1ZW50bHkgcmVtb3ZlZCBmcm9tIHN5cy5tb2R1bGVzLgorICAgIGl0IGFscmVhZHkgZXhpc3RzIG9yIGlzIGEgbmV3IG1vZHVsZS4gSWYgdGhlIG1vZHVsZSBpcyBuZXcsIHRoZW4gX19uYW1lX18KKyAgICBpcyBzZXQgdGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoZSBtZXRob2QsIF9fbG9hZGVyX18gaXMgc2V0IHRvIHNlbGYsIGFuZAorICAgIF9fcGFja2FnZV9fIGlzIHNldCBhY2NvcmRpbmdseSAoaWYgc2VsZi5pc19wYWNrYWdlKCkgaXMgZGVmaW5lZCkgd2lsbCBiZSBzZXQKKyAgICBiZWZvcmUgaXQgaXMgcGFzc2VkIHRvIHRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24gKGlmIHNlbGYuaXNfcGFja2FnZSgpIGRvZXMKKyAgICBub3Qgd29yayBmb3IgdGhlIG1vZHVsZSBpdCB3aWxsIGJlIHNldCBwb3N0LWxvYWQpLgorCisgICAgSWYgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZCBhbmQgdGhlIGRlY29yYXRvciBjcmVhdGVkIHRoZSBtb2R1bGUgaXQgaXMKKyAgICBzdWJzZXF1ZW50bHkgcmVtb3ZlZCBmcm9tIHN5cy5tb2R1bGVzLgogCiAgICAgVGhlIGRlY29yYXRvciBhc3N1bWVzIHRoYXQgdGhlIGRlY29yYXRlZCBmdW5jdGlvbiB0YWtlcyB0aGUgbW9kdWxlIG5hbWUgYXMKICAgICB0aGUgc2Vjb25kIGFyZ3VtZW50LgogCiAgICAgIiIiCi0gICAgZGVmIGRlY29yYXRlZChzZWxmLCBmdWxsbmFtZSwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICBkZWYgbW9kdWxlX2Zvcl9sb2FkZXJfd3JhcHBlcihzZWxmLCBmdWxsbmFtZSwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgbW9kdWxlID0gc3lzLm1vZHVsZXMuZ2V0KGZ1bGxuYW1lKQotICAgICAgICBpc19yZWxvYWQgPSBib29sKG1vZHVsZSkKKyAgICAgICAgaXNfcmVsb2FkID0gbW9kdWxlIGlzIG5vdCBOb25lCiAgICAgICAgIGlmIG5vdCBpc19yZWxvYWQ6CiAgICAgICAgICAgICAjIFRoaXMgbXVzdCBiZSBkb25lIGJlZm9yZSBvcGVuKCkgaXMgY2FsbGVkIGFzIHRoZSAnaW8nIG1vZHVsZQogICAgICAgICAgICAgIyBpbXBsaWNpdGx5IGltcG9ydHMgJ2xvY2FsZScgYW5kIHdvdWxkIG90aGVyd2lzZSB0cmlnZ2VyIGFuCiAgICAgICAgICAgICAjIGluZmluaXRlIGxvb3AuCi0gICAgICAgICAgICBtb2R1bGUgPSBpbXAubmV3X21vZHVsZShmdWxsbmFtZSkKKyAgICAgICAgICAgIG1vZHVsZSA9IG5ld19tb2R1bGUoZnVsbG5hbWUpCiAgICAgICAgICAgICBzeXMubW9kdWxlc1tmdWxsbmFtZV0gPSBtb2R1bGUKKyAgICAgICAgICAgIG1vZHVsZS5fX2xvYWRlcl9fID0gc2VsZgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlzX3BhY2thZ2UgPSBzZWxmLmlzX3BhY2thZ2UoZnVsbG5hbWUpCisgICAgICAgICAgICBleGNlcHQgKEltcG9ydEVycm9yLCBBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBpc19wYWNrYWdlOgorICAgICAgICAgICAgICAgICAgICBtb2R1bGUuX19wYWNrYWdlX18gPSBmdWxsbmFtZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG1vZHVsZS5fX3BhY2thZ2VfXyA9IGZ1bGxuYW1lLnJwYXJ0aXRpb24oJy4nKVswXQogICAgICAgICB0cnk6CisgICAgICAgICAgICBtb2R1bGUuX19pbml0aWFsaXppbmdfXyA9IFRydWUKKyAgICAgICAgICAgICMgSWYgX19wYWNrYWdlX18gd2FzIG5vdCBzZXQgYWJvdmUsIF9faW1wb3J0X18oKSB3aWxsIGRvIGl0IGxhdGVyLgogICAgICAgICAgICAgcmV0dXJuIGZ4bihzZWxmLCBtb2R1bGUsICphcmdzLCAqKmt3YXJncykKICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgaWYgbm90IGlzX3JlbG9hZDoKICAgICAgICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbZnVsbG5hbWVdCiAgICAgICAgICAgICByYWlzZQotICAgIF93cmFwKGRlY29yYXRlZCwgZnhuKQotICAgIHJldHVybiBkZWNvcmF0ZWQKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG1vZHVsZS5fX2luaXRpYWxpemluZ19fID0gRmFsc2UKKyAgICBfd3JhcChtb2R1bGVfZm9yX2xvYWRlcl93cmFwcGVyLCBmeG4pCisgICAgcmV0dXJuIG1vZHVsZV9mb3JfbG9hZGVyX3dyYXBwZXIKIAogCiBkZWYgX2NoZWNrX25hbWUobWV0aG9kKToKQEAgLTE1NSwzOCArNDI0LDM2IEBACiAgICAgY29tcGFyZWQgYWdhaW5zdC4gSWYgdGhlIGNvbXBhcmlzb24gZmFpbHMgdGhlbiBJbXBvcnRFcnJvciBpcyByYWlzZWQuCiAKICAgICAiIiIKLSAgICBkZWYgaW5uZXIoc2VsZiwgbmFtZSwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgaWYgc2VsZi5fbmFtZSAhPSBuYW1lOgotICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoImxvYWRlciBjYW5ub3QgaGFuZGxlICVzIiAlIG5hbWUpCisgICAgZGVmIF9jaGVja19uYW1lX3dyYXBwZXIoc2VsZiwgbmFtZT1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICBuYW1lID0gc2VsZi5uYW1lCisgICAgICAgIGVsaWYgc2VsZi5uYW1lICE9IG5hbWU6CisgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigibG9hZGVyIGNhbm5vdCBoYW5kbGUgJXMiICUgbmFtZSwgbmFtZT1uYW1lKQogICAgICAgICByZXR1cm4gbWV0aG9kKHNlbGYsIG5hbWUsICphcmdzLCAqKmt3YXJncykKLSAgICBfd3JhcChpbm5lciwgbWV0aG9kKQotICAgIHJldHVybiBpbm5lcgorICAgIF93cmFwKF9jaGVja19uYW1lX3dyYXBwZXIsIG1ldGhvZCkKKyAgICByZXR1cm4gX2NoZWNrX25hbWVfd3JhcHBlcgogCiAKIGRlZiBfcmVxdWlyZXNfYnVpbHRpbihmeG4pOgogICAgICIiIkRlY29yYXRvciB0byB2ZXJpZnkgdGhlIG5hbWVkIG1vZHVsZSBpcyBidWlsdC1pbi4iIiIKLSAgICBkZWYgd3JhcHBlcihzZWxmLCBmdWxsbmFtZSk6CisgICAgZGVmIF9yZXF1aXJlc19idWlsdGluX3dyYXBwZXIoc2VsZiwgZnVsbG5hbWUpOgogICAgICAgICBpZiBmdWxsbmFtZSBub3QgaW4gc3lzLmJ1aWx0aW5fbW9kdWxlX25hbWVzOgotICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoInswfSBpcyBub3QgYSBidWlsdC1pbiBtb2R1bGUiLmZvcm1hdChmdWxsbmFtZSkpCisgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigie30gaXMgbm90IGEgYnVpbHQtaW4gbW9kdWxlIi5mb3JtYXQoZnVsbG5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1mdWxsbmFtZSkKICAgICAgICAgcmV0dXJuIGZ4bihzZWxmLCBmdWxsbmFtZSkKLSAgICBfd3JhcCh3cmFwcGVyLCBmeG4pCi0gICAgcmV0dXJuIHdyYXBwZXIKKyAgICBfd3JhcChfcmVxdWlyZXNfYnVpbHRpbl93cmFwcGVyLCBmeG4pCisgICAgcmV0dXJuIF9yZXF1aXJlc19idWlsdGluX3dyYXBwZXIKIAogCiBkZWYgX3JlcXVpcmVzX2Zyb3plbihmeG4pOgogICAgICIiIkRlY29yYXRvciB0byB2ZXJpZnkgdGhlIG5hbWVkIG1vZHVsZSBpcyBmcm96ZW4uIiIiCi0gICAgZGVmIHdyYXBwZXIoc2VsZiwgZnVsbG5hbWUpOgotICAgICAgICBpZiBub3QgaW1wLmlzX2Zyb3plbihmdWxsbmFtZSk6Ci0gICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigiezB9IGlzIG5vdCBhIGZyb3plbiBtb2R1bGUiLmZvcm1hdChmdWxsbmFtZSkpCisgICAgZGVmIF9yZXF1aXJlc19mcm96ZW5fd3JhcHBlcihzZWxmLCBmdWxsbmFtZSk6CisgICAgICAgIGlmIG5vdCBfaW1wLmlzX2Zyb3plbihmdWxsbmFtZSk6CisgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigie30gaXMgbm90IGEgZnJvemVuIG1vZHVsZSIuZm9ybWF0KGZ1bGxuYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ZnVsbG5hbWUpCiAgICAgICAgIHJldHVybiBmeG4oc2VsZiwgZnVsbG5hbWUpCi0gICAgX3dyYXAod3JhcHBlciwgZnhuKQotICAgIHJldHVybiB3cmFwcGVyCi0KLQotZGVmIF9zdWZmaXhfbGlzdChzdWZmaXhfdHlwZSk6Ci0gICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBmaWxlIHN1ZmZpeGVzIGJhc2VkIG9uIHRoZSBpbXAgZmlsZSB0eXBlLiIiIgotICAgIHJldHVybiBbc3VmZml4WzBdIGZvciBzdWZmaXggaW4gaW1wLmdldF9zdWZmaXhlcygpCi0gICAgICAgICAgICBpZiBzdWZmaXhbMl0gPT0gc3VmZml4X3R5cGVdCisgICAgX3dyYXAoX3JlcXVpcmVzX2Zyb3plbl93cmFwcGVyLCBmeG4pCisgICAgcmV0dXJuIF9yZXF1aXJlc19mcm96ZW5fd3JhcHBlcgogCiAKICMgTG9hZGVycyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTIwMSw2ICs0NjgsMTAgQEAKICAgICAiIiIKIAogICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBtb2R1bGVfcmVwcihjbHMsIG1vZHVsZSk6CisgICAgICAgIHJldHVybiAiPG1vZHVsZSAne30nIChidWlsdC1pbik+Ii5mb3JtYXQobW9kdWxlLl9fbmFtZV9fKQorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZpbmRfbW9kdWxlKGNscywgZnVsbG5hbWUsIHBhdGg9Tm9uZSk6CiAgICAgICAgICIiIkZpbmQgdGhlIGJ1aWx0LWluIG1vZHVsZS4KIApAQCAtMjA5LDcgKzQ4MCw3IEBACiAgICAgICAgICIiIgogICAgICAgICBpZiBwYXRoIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIGNscyBpZiBpbXAuaXNfYnVpbHRpbihmdWxsbmFtZSkgZWxzZSBOb25lCisgICAgICAgIHJldHVybiBjbHMgaWYgX2ltcC5pc19idWlsdGluKGZ1bGxuYW1lKSBlbHNlIE5vbmUKIAogICAgIEBjbGFzc21ldGhvZAogICAgIEBzZXRfcGFja2FnZQpAQCAtMjE5LDEzICs0OTAsMjAgQEAKICAgICAgICAgIiIiTG9hZCBhIGJ1aWx0LWluIG1vZHVsZS4iIiIKICAgICAgICAgaXNfcmVsb2FkID0gZnVsbG5hbWUgaW4gc3lzLm1vZHVsZXMKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIGltcC5pbml0X2J1aWx0aW4oZnVsbG5hbWUpCisgICAgICAgICAgICByZXR1cm4gY2xzLl9leGVjX21vZHVsZShmdWxsbmFtZSkKICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgaWYgbm90IGlzX3JlbG9hZCBhbmQgZnVsbG5hbWUgaW4gc3lzLm1vZHVsZXM6CiAgICAgICAgICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW2Z1bGxuYW1lXQogICAgICAgICAgICAgcmFpc2UKIAogICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfZXhlY19tb2R1bGUoY2xzLCBmdWxsbmFtZSk6CisgICAgICAgICIiIkhlbHBlciBmb3IgbG9hZF9tb2R1bGUsIGFsbG93aW5nIHRvIGlzb2xhdGUgZWFzaWx5ICh3aGVuCisgICAgICAgIGxvb2tpbmcgYXQgYSB0cmFjZWJhY2spIHdoZXRoZXIgYW4gZXJyb3IgY29tZXMgZnJvbSBleGVjdXRpbmcKKyAgICAgICAgYW4gaW1wb3J0ZWQgbW9kdWxlJ3MgY29kZS4iIiIKKyAgICAgICAgcmV0dXJuIF9pbXAuaW5pdF9idWlsdGluKGZ1bGxuYW1lKQorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgQF9yZXF1aXJlc19idWlsdGluCiAgICAgZGVmIGdldF9jb2RlKGNscywgZnVsbG5hbWUpOgogICAgICAgICAiIiJSZXR1cm4gTm9uZSBhcyBidWlsdC1pbiBtb2R1bGVzIGRvIG5vdCBoYXZlIGNvZGUgb2JqZWN0cy4iIiIKQEAgLTI0MCw3ICs1MTgsNyBAQAogICAgIEBjbGFzc21ldGhvZAogICAgIEBfcmVxdWlyZXNfYnVpbHRpbgogICAgIGRlZiBpc19wYWNrYWdlKGNscywgZnVsbG5hbWUpOgotICAgICAgICAiIiJSZXR1cm4gTm9uZSBhcyBidWlsdC1pbiBtb2R1bGUgYXJlIG5ldmVyIHBhY2thZ2VzLiIiIgorICAgICAgICAiIiJSZXR1cm4gRmFsc2UgYXMgYnVpbHQtaW4gbW9kdWxlcyBhcmUgbmV2ZXIgcGFja2FnZXMuIiIiCiAgICAgICAgIHJldHVybiBGYWxzZQogCiAKQEAgLTI1NCw5ICs1MzIsMTMgQEAKICAgICAiIiIKIAogICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBtb2R1bGVfcmVwcihjbHMsIG0pOgorICAgICAgICByZXR1cm4gIjxtb2R1bGUgJ3t9JyAoZnJvemVuKT4iLmZvcm1hdChtLl9fbmFtZV9fKQorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZpbmRfbW9kdWxlKGNscywgZnVsbG5hbWUsIHBhdGg9Tm9uZSk6CiAgICAgICAgICIiIkZpbmQgYSBmcm96ZW4gbW9kdWxlLiIiIgotICAgICAgICByZXR1cm4gY2xzIGlmIGltcC5pc19mcm96ZW4oZnVsbG5hbWUpIGVsc2UgTm9uZQorICAgICAgICByZXR1cm4gY2xzIGlmIF9pbXAuaXNfZnJvemVuKGZ1bGxuYW1lKSBlbHNlIE5vbmUKIAogICAgIEBjbGFzc21ldGhvZAogICAgIEBzZXRfcGFja2FnZQpAQCAtMjY2LDcgKzU0OCwxMCBAQAogICAgICAgICAiIiJMb2FkIGEgZnJvemVuIG1vZHVsZS4iIiIKICAgICAgICAgaXNfcmVsb2FkID0gZnVsbG5hbWUgaW4gc3lzLm1vZHVsZXMKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIGltcC5pbml0X2Zyb3plbihmdWxsbmFtZSkKKyAgICAgICAgICAgIG0gPSBjbHMuX2V4ZWNfbW9kdWxlKGZ1bGxuYW1lKQorICAgICAgICAgICAgIyBMZXQgb3VyIG93biBtb2R1bGVfcmVwcigpIG1ldGhvZCBwcm9kdWNlIGEgc3VpdGFibGUgcmVwci4KKyAgICAgICAgICAgIGRlbCBtLl9fZmlsZV9fCisgICAgICAgICAgICByZXR1cm4gbQogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBpZiBub3QgaXNfcmVsb2FkIGFuZCBmdWxsbmFtZSBpbiBzeXMubW9kdWxlczoKICAgICAgICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbZnVsbG5hbWVdCkBAIC0yNzYsNyArNTYxLDcgQEAKICAgICBAX3JlcXVpcmVzX2Zyb3plbgogICAgIGRlZiBnZXRfY29kZShjbHMsIGZ1bGxuYW1lKToKICAgICAgICAgIiIiUmV0dXJuIHRoZSBjb2RlIG9iamVjdCBmb3IgdGhlIGZyb3plbiBtb2R1bGUuIiIiCi0gICAgICAgIHJldHVybiBpbXAuZ2V0X2Zyb3plbl9vYmplY3QoZnVsbG5hbWUpCisgICAgICAgIHJldHVybiBfaW1wLmdldF9mcm96ZW5fb2JqZWN0KGZ1bGxuYW1lKQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgQF9yZXF1aXJlc19mcm96ZW4KQEAgLTI4OCwzOSArNTczLDczIEBACiAgICAgQF9yZXF1aXJlc19mcm96ZW4KICAgICBkZWYgaXNfcGFja2FnZShjbHMsIGZ1bGxuYW1lKToKICAgICAgICAgIiIiUmV0dXJuIGlmIHRoZSBmcm96ZW4gbW9kdWxlIGlzIGEgcGFja2FnZS4iIiIKLSAgICAgICAgcmV0dXJuIGltcC5pc19mcm96ZW5fcGFja2FnZShmdWxsbmFtZSkKKyAgICAgICAgcmV0dXJuIF9pbXAuaXNfZnJvemVuX3BhY2thZ2UoZnVsbG5hbWUpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX2V4ZWNfbW9kdWxlKGNscywgZnVsbG5hbWUpOgorICAgICAgICAiIiJIZWxwZXIgZm9yIGxvYWRfbW9kdWxlLCBhbGxvd2luZyB0byBpc29sYXRlIGVhc2lseSAod2hlbgorICAgICAgICBsb29raW5nIGF0IGEgdHJhY2ViYWNrKSB3aGV0aGVyIGFuIGVycm9yIGNvbWVzIGZyb20gZXhlY3V0aW5nCisgICAgICAgIGFuIGltcG9ydGVkIG1vZHVsZSdzIGNvZGUuIiIiCisgICAgICAgIHJldHVybiBfaW1wLmluaXRfZnJvemVuKGZ1bGxuYW1lKQogCiAKIGNsYXNzIF9Mb2FkZXJCYXNpY3M6CiAKICAgICAiIiJCYXNlIGNsYXNzIG9mIGNvbW1vbiBjb2RlIG5lZWRlZCBieSBib3RoIFNvdXJjZUxvYWRlciBhbmQKLSAgICBfU291cmNlbGVzc0ZpbGVMb2FkZXIuIiIiCisgICAgU291cmNlbGVzc0ZpbGVMb2FkZXIuIiIiCiAKICAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBmdWxsbmFtZSk6CiAgICAgICAgICIiIkNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIEluc3BlY3RMb2FkZXIuaXNfcGFja2FnZSBieSBjaGVja2luZyBpZgogICAgICAgICB0aGUgcGF0aCByZXR1cm5lZCBieSBnZXRfZmlsZW5hbWUgaGFzIGEgZmlsZW5hbWUgb2YgJ19faW5pdF9fLnB5Jy4iIiIKLSAgICAgICAgZmlsZW5hbWUgPSBzZWxmLmdldF9maWxlbmFtZShmdWxsbmFtZSkucnBhcnRpdGlvbihwYXRoX3NlcClbMl0KLSAgICAgICAgcmV0dXJuIGZpbGVuYW1lLnJzcGxpdCgnLicsIDEpWzBdID09ICdfX2luaXRfXycKKyAgICAgICAgZmlsZW5hbWUgPSBfcGF0aF9zcGxpdChzZWxmLmdldF9maWxlbmFtZShmdWxsbmFtZSkpWzFdCisgICAgICAgIGZpbGVuYW1lX2Jhc2UgPSBmaWxlbmFtZS5yc3BsaXQoJy4nLCAxKVswXQorICAgICAgICB0YWlsX25hbWUgPSBmdWxsbmFtZS5ycGFydGl0aW9uKCcuJylbMl0KKyAgICAgICAgcmV0dXJuIGZpbGVuYW1lX2Jhc2UgPT0gJ19faW5pdF9fJyBhbmQgdGFpbF9uYW1lICE9ICdfX2luaXRfXycKIAotICAgIGRlZiBfYnl0ZXNfZnJvbV9ieXRlY29kZShzZWxmLCBmdWxsbmFtZSwgZGF0YSwgc291cmNlX210aW1lKToKKyAgICBkZWYgX2J5dGVzX2Zyb21fYnl0ZWNvZGUoc2VsZiwgZnVsbG5hbWUsIGRhdGEsIGJ5dGVjb2RlX3BhdGgsIHNvdXJjZV9zdGF0cyk6CiAgICAgICAgICIiIlJldHVybiB0aGUgbWFyc2hhbGxlZCBieXRlcyBmcm9tIGJ5dGVjb2RlLCB2ZXJpZnlpbmcgdGhlIG1hZ2ljCi0gICAgICAgIG51bWJlciBhbmQgdGltZXN0YW1wIGFsb25nIHRoZSB3YXkuCisgICAgICAgIG51bWJlciwgdGltZXN0YW1wIGFuZCBzb3VyY2Ugc2l6ZSBhbG9uZyB0aGUgd2F5LgogCi0gICAgICAgIElmIHNvdXJjZV9tdGltZSBpcyBOb25lIHRoZW4gc2tpcCB0aGUgdGltZXN0YW1wIGNoZWNrLgorICAgICAgICBJZiBzb3VyY2Vfc3RhdHMgaXMgTm9uZSB0aGVuIHNraXAgdGhlIHRpbWVzdGFtcCBjaGVjay4KIAogICAgICAgICAiIiIKICAgICAgICAgbWFnaWMgPSBkYXRhWzo0XQogICAgICAgICByYXdfdGltZXN0YW1wID0gZGF0YVs0OjhdCi0gICAgICAgIGlmIGxlbihtYWdpYykgIT0gNCBvciBtYWdpYyAhPSBpbXAuZ2V0X21hZ2ljKCk6Ci0gICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigiYmFkIG1hZ2ljIG51bWJlciBpbiB7fSIuZm9ybWF0KGZ1bGxuYW1lKSkKKyAgICAgICAgcmF3X3NpemUgPSBkYXRhWzg6MTJdCisgICAgICAgIGlmIG1hZ2ljICE9IF9NQUdJQ19OVU1CRVI6CisgICAgICAgICAgICBtc2cgPSAnYmFkIG1hZ2ljIG51bWJlciBpbiB7IXJ9OiB7IXJ9Jy5mb3JtYXQoZnVsbG5hbWUsIG1hZ2ljKQorICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IobXNnLCBuYW1lPWZ1bGxuYW1lLCBwYXRoPWJ5dGVjb2RlX3BhdGgpCiAgICAgICAgIGVsaWYgbGVuKHJhd190aW1lc3RhbXApICE9IDQ6Ci0gICAgICAgICAgICByYWlzZSBFT0ZFcnJvcigiYmFkIHRpbWVzdGFtcCBpbiB7fSIuZm9ybWF0KGZ1bGxuYW1lKSkKLSAgICAgICAgZWxpZiBzb3VyY2VfbXRpbWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBpZiBtYXJzaGFsLl9yX2xvbmcocmF3X3RpbWVzdGFtcCkgIT0gc291cmNlX210aW1lOgotICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJieXRlY29kZSBpcyBzdGFsZSBmb3Ige30iLmZvcm1hdChmdWxsbmFtZSkpCisgICAgICAgICAgICBtZXNzYWdlID0gJ2JhZCB0aW1lc3RhbXAgaW4ge30nLmZvcm1hdChmdWxsbmFtZSkKKyAgICAgICAgICAgIF92ZXJib3NlX21lc3NhZ2UobWVzc2FnZSkKKyAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yKG1lc3NhZ2UpCisgICAgICAgIGVsaWYgbGVuKHJhd19zaXplKSAhPSA0OgorICAgICAgICAgICAgbWVzc2FnZSA9ICdiYWQgc2l6ZSBpbiB7fScuZm9ybWF0KGZ1bGxuYW1lKQorICAgICAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZShtZXNzYWdlKQorICAgICAgICAgICAgcmFpc2UgRU9GRXJyb3IobWVzc2FnZSkKKyAgICAgICAgaWYgc291cmNlX3N0YXRzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNvdXJjZV9tdGltZSA9IGludChzb3VyY2Vfc3RhdHNbJ210aW1lJ10pCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBfcl9sb25nKHJhd190aW1lc3RhbXApICE9IHNvdXJjZV9tdGltZToKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdieXRlY29kZSBpcyBzdGFsZSBmb3Ige30nLmZvcm1hdChmdWxsbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZShtZXNzYWdlKQorICAgICAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcihtZXNzYWdlLCBuYW1lPWZ1bGxuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPWJ5dGVjb2RlX3BhdGgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc291cmNlX3NpemUgPSBzb3VyY2Vfc3RhdHNbJ3NpemUnXSAmIDB4RkZGRkZGRkYKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIF9yX2xvbmcocmF3X3NpemUpICE9IHNvdXJjZV9zaXplOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICJieXRlY29kZSBpcyBzdGFsZSBmb3Ige30iLmZvcm1hdChmdWxsbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPWZ1bGxuYW1lLCBwYXRoPWJ5dGVjb2RlX3BhdGgpCiAgICAgICAgICMgQ2FuJ3QgcmV0dXJuIHRoZSBjb2RlIG9iamVjdCBhcyBlcnJvcnMgZnJvbSBtYXJzaGFsIGxvYWRpbmcgbmVlZCB0bwogICAgICAgICAjIHByb3BhZ2F0ZSBldmVuIHdoZW4gc291cmNlIGlzIGF2YWlsYWJsZS4KLSAgICAgICAgcmV0dXJuIGRhdGFbODpdCisgICAgICAgIHJldHVybiBkYXRhWzEyOl0KIAogICAgIEBtb2R1bGVfZm9yX2xvYWRlcgogICAgIGRlZiBfbG9hZF9tb2R1bGUoc2VsZiwgbW9kdWxlLCAqLCBzb3VyY2VsZXNzPUZhbHNlKToKQEAgLTMzMCwzMCArNjQ5LDQ1IEBACiAgICAgICAgIGNvZGVfb2JqZWN0ID0gc2VsZi5nZXRfY29kZShuYW1lKQogICAgICAgICBtb2R1bGUuX19maWxlX18gPSBzZWxmLmdldF9maWxlbmFtZShuYW1lKQogICAgICAgICBpZiBub3Qgc291cmNlbGVzczoKLSAgICAgICAgICAgIG1vZHVsZS5fX2NhY2hlZF9fID0gaW1wLmNhY2hlX2Zyb21fc291cmNlKG1vZHVsZS5fX2ZpbGVfXykKKyAgICAgICAgICAgIG1vZHVsZS5fX2NhY2hlZF9fID0gY2FjaGVfZnJvbV9zb3VyY2UobW9kdWxlLl9fZmlsZV9fKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbW9kdWxlLl9fY2FjaGVkX18gPSBtb2R1bGUuX19maWxlX18KICAgICAgICAgbW9kdWxlLl9fcGFja2FnZV9fID0gbmFtZQogICAgICAgICBpZiBzZWxmLmlzX3BhY2thZ2UobmFtZSk6Ci0gICAgICAgICAgICBtb2R1bGUuX19wYXRoX18gPSBbbW9kdWxlLl9fZmlsZV9fLnJzcGxpdChwYXRoX3NlcCwgMSlbMF1dCisgICAgICAgICAgICBtb2R1bGUuX19wYXRoX18gPSBbX3BhdGhfc3BsaXQobW9kdWxlLl9fZmlsZV9fKVswXV0KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG1vZHVsZS5fX3BhY2thZ2VfXyA9IG1vZHVsZS5fX3BhY2thZ2VfXy5ycGFydGl0aW9uKCcuJylbMF0KICAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBzZWxmCi0gICAgICAgIGV4ZWMoY29kZV9vYmplY3QsIG1vZHVsZS5fX2RpY3RfXykKKyAgICAgICAgc2VsZi5fZXhlY19tb2R1bGUoY29kZV9vYmplY3QsIG1vZHVsZS5fX2RpY3RfXykKICAgICAgICAgcmV0dXJuIG1vZHVsZQogCisgICAgZGVmIF9leGVjX21vZHVsZShzZWxmLCBjb2RlX29iamVjdCwgbW9kdWxlX2RpY3QpOgorICAgICAgICAiIiJIZWxwZXIgZm9yIF9sb2FkX21vZHVsZSwgYWxsb3dpbmcgdG8gaXNvbGF0ZSBlYXNpbHkgKHdoZW4KKyAgICAgICAgbG9va2luZyBhdCBhIHRyYWNlYmFjaykgd2hldGhlciBhbiBlcnJvciBjb21lcyBmcm9tIGV4ZWN1dGluZworICAgICAgICBhbiBpbXBvcnRlZCBtb2R1bGUncyBjb2RlLiIiIgorICAgICAgICBleGVjKGNvZGVfb2JqZWN0LCBtb2R1bGVfZGljdCkKKwogCiBjbGFzcyBTb3VyY2VMb2FkZXIoX0xvYWRlckJhc2ljcyk6CiAKICAgICBkZWYgcGF0aF9tdGltZShzZWxmLCBwYXRoKToKICAgICAgICAgIiIiT3B0aW9uYWwgbWV0aG9kIHRoYXQgcmV0dXJucyB0aGUgbW9kaWZpY2F0aW9uIHRpbWUgKGFuIGludCkgZm9yIHRoZQogICAgICAgICBzcGVjaWZpZWQgcGF0aCwgd2hlcmUgcGF0aCBpcyBhIHN0ci4KLQotICAgICAgICBJbXBsZW1lbnRpbmcgdGhpcyBtZXRob2QgYWxsb3dzIHRoZSBsb2FkZXIgdG8gcmVhZCBieXRlY29kZSBmaWxlcy4KLQogICAgICAgICAiIiIKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCisgICAgZGVmIHBhdGhfc3RhdHMoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIk9wdGlvbmFsIG1ldGhvZCByZXR1cm5pbmcgYSBtZXRhZGF0YSBkaWN0IGZvciB0aGUgc3BlY2lmaWVkIHBhdGgKKyAgICAgICAgdG8gYnkgdGhlIHBhdGggKHN0cikuCisgICAgICAgIFBvc3NpYmxlIGtleXM6CisgICAgICAgIC0gJ210aW1lJyAobWFuZGF0b3J5KSBpcyB0aGUgbnVtZXJpYyB0aW1lc3RhbXAgb2YgbGFzdCBzb3VyY2UKKyAgICAgICAgICBjb2RlIG1vZGlmaWNhdGlvbjsKKyAgICAgICAgLSAnc2l6ZScgKG9wdGlvbmFsKSBpcyB0aGUgc2l6ZSBpbiBieXRlcyBvZiB0aGUgc291cmNlIGNvZGUuCisKKyAgICAgICAgSW1wbGVtZW50aW5nIHRoaXMgbWV0aG9kIGFsbG93cyB0aGUgbG9hZGVyIHRvIHJlYWQgYnl0ZWNvZGUgZmlsZXMuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4geydtdGltZSc6IHNlbGYucGF0aF9tdGltZShwYXRoKX0KKwogICAgIGRlZiBzZXRfZGF0YShzZWxmLCBwYXRoLCBkYXRhKToKICAgICAgICAgIiIiT3B0aW9uYWwgbWV0aG9kIHdoaWNoIHdyaXRlcyBkYXRhIChieXRlcykgdG8gYSBmaWxlIHBhdGggKGEgc3RyKS4KIApAQCAtMzcwLDcgKzcwNCw4IEBACiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNvdXJjZV9ieXRlcyA9IHNlbGYuZ2V0X2RhdGEocGF0aCkKICAgICAgICAgZXhjZXB0IElPRXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigic291cmNlIG5vdCBhdmFpbGFibGUgdGhyb3VnaCBnZXRfZGF0YSgpIikKKyAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJzb3VyY2Ugbm90IGF2YWlsYWJsZSB0aHJvdWdoIGdldF9kYXRhKCkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1mdWxsbmFtZSkKICAgICAgICAgZW5jb2RpbmcgPSB0b2tlbml6ZS5kZXRlY3RfZW5jb2RpbmcoX2lvLkJ5dGVzSU8oc291cmNlX2J5dGVzKS5yZWFkbGluZSkKICAgICAgICAgbmV3bGluZV9kZWNvZGVyID0gX2lvLkluY3JlbWVudGFsTmV3bGluZURlY29kZXIoTm9uZSwgVHJ1ZSkKICAgICAgICAgcmV0dXJuIG5ld2xpbmVfZGVjb2Rlci5kZWNvZGUoc291cmNlX2J5dGVzLmRlY29kZShlbmNvZGluZ1swXSkpCkBAIC0zNzgsMTkgKzcxMywyMCBAQAogICAgIGRlZiBnZXRfY29kZShzZWxmLCBmdWxsbmFtZSk6CiAgICAgICAgICIiIkNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIEluc3BlY3RMb2FkZXIuZ2V0X2NvZGUuCiAKLSAgICAgICAgUmVhZGluZyBvZiBieXRlY29kZSByZXF1aXJlcyBwYXRoX210aW1lIHRvIGJlIGltcGxlbWVudGVkLiBUbyB3cml0ZQorICAgICAgICBSZWFkaW5nIG9mIGJ5dGVjb2RlIHJlcXVpcmVzIHBhdGhfc3RhdHMgdG8gYmUgaW1wbGVtZW50ZWQuIFRvIHdyaXRlCiAgICAgICAgIGJ5dGVjb2RlLCBzZXRfZGF0YSBtdXN0IGFsc28gYmUgaW1wbGVtZW50ZWQuCiAKICAgICAgICAgIiIiCiAgICAgICAgIHNvdXJjZV9wYXRoID0gc2VsZi5nZXRfZmlsZW5hbWUoZnVsbG5hbWUpCi0gICAgICAgIGJ5dGVjb2RlX3BhdGggPSBpbXAuY2FjaGVfZnJvbV9zb3VyY2Uoc291cmNlX3BhdGgpCisgICAgICAgIGJ5dGVjb2RlX3BhdGggPSBjYWNoZV9mcm9tX3NvdXJjZShzb3VyY2VfcGF0aCkKICAgICAgICAgc291cmNlX210aW1lID0gTm9uZQogICAgICAgICBpZiBieXRlY29kZV9wYXRoIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNvdXJjZV9tdGltZSA9IHNlbGYucGF0aF9tdGltZShzb3VyY2VfcGF0aCkKKyAgICAgICAgICAgICAgICBzdCA9IHNlbGYucGF0aF9zdGF0cyhzb3VyY2VfcGF0aCkKICAgICAgICAgICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc291cmNlX210aW1lID0gaW50KHN0WydtdGltZSddKQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYuZ2V0X2RhdGEoYnl0ZWNvZGVfcGF0aCkKICAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKQEAgLTM5OCwyOSArNzM0LDM2IEBACiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXNfZGF0YSA9IHNlbGYuX2J5dGVzX2Zyb21fYnl0ZWNvZGUoZnVsbG5hbWUsIGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VfbXRpbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlY29kZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3QpCiAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCAoSW1wb3J0RXJyb3IsIEVPRkVycm9yKToKICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIF92ZXJib3NlX21lc3NhZ2UoJ3t9IG1hdGNoZXMge30nLCBieXRlY29kZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9wYXRoKQogICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBtYXJzaGFsLmxvYWRzKGJ5dGVzX2RhdGEpCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZvdW5kLCBjb2RlX3R5cGUpOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShmb3VuZCwgX2NvZGVfdHlwZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ltcC5fZml4X2NvX2ZpbGVuYW1lKGZvdW5kLCBzb3VyY2VfcGF0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdmVyYm9zZV9tZXNzYWdlKCdjb2RlIG9iamVjdCBmcm9tIHt9JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZWNvZGVfcGF0aCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm91bmQKICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gIk5vbi1jb2RlIG9iamVjdCBpbiB7fSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcihtc2cuZm9ybWF0KGJ5dGVjb2RlX3BhdGgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKG1zZy5mb3JtYXQoYnl0ZWNvZGVfcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1mdWxsbmFtZSwgcGF0aD1ieXRlY29kZV9wYXRoKQogICAgICAgICBzb3VyY2VfYnl0ZXMgPSBzZWxmLmdldF9kYXRhKHNvdXJjZV9wYXRoKQogICAgICAgICBjb2RlX29iamVjdCA9IGNvbXBpbGUoc291cmNlX2J5dGVzLCBzb3VyY2VfcGF0aCwgJ2V4ZWMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb250X2luaGVyaXQ9VHJ1ZSkKKyAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZSgnY29kZSBvYmplY3QgZnJvbSB7fScsIHNvdXJjZV9wYXRoKQogICAgICAgICBpZiAobm90IHN5cy5kb250X3dyaXRlX2J5dGVjb2RlIGFuZCBieXRlY29kZV9wYXRoIGlzIG5vdCBOb25lIGFuZAotICAgICAgICAgICAgICAgIHNvdXJjZV9tdGltZSBpcyBub3QgTm9uZSk6Ci0gICAgICAgICAgICAjIElmIGUuZy4gSnl0aG9uIGV2ZXIgaW1wbGVtZW50cyBpbXAuY2FjaGVfZnJvbV9zb3VyY2UgdG8gaGF2ZQotICAgICAgICAgICAgIyB0aGVpciBvd24gY2FjaGVkIGZpbGUgZm9ybWF0LCB0aGlzIGJsb2NrIG9mIGNvZGUgd2lsbCBtb3N0IGxpa2VseQotICAgICAgICAgICAgIyB0aHJvdyBhbiBleGNlcHRpb24uCi0gICAgICAgICAgICBkYXRhID0gYnl0ZWFycmF5KGltcC5nZXRfbWFnaWMoKSkKLSAgICAgICAgICAgIGRhdGEuZXh0ZW5kKG1hcnNoYWwuX3dfbG9uZyhzb3VyY2VfbXRpbWUpKQorICAgICAgICAgICAgc291cmNlX210aW1lIGlzIG5vdCBOb25lKToKKyAgICAgICAgICAgIGRhdGEgPSBieXRlYXJyYXkoX01BR0lDX05VTUJFUikKKyAgICAgICAgICAgIGRhdGEuZXh0ZW5kKF93X2xvbmcoc291cmNlX210aW1lKSkKKyAgICAgICAgICAgIGRhdGEuZXh0ZW5kKF93X2xvbmcobGVuKHNvdXJjZV9ieXRlcykpKQogICAgICAgICAgICAgZGF0YS5leHRlbmQobWFyc2hhbC5kdW1wcyhjb2RlX29iamVjdCkpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5zZXRfZGF0YShieXRlY29kZV9wYXRoLCBkYXRhKQorICAgICAgICAgICAgICAgIF92ZXJib3NlX21lc3NhZ2UoJ3dyb3RlIHshcn0nLCBieXRlY29kZV9wYXRoKQogICAgICAgICAgICAgZXhjZXB0IE5vdEltcGxlbWVudGVkRXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICByZXR1cm4gY29kZV9vYmplY3QKQEAgLTQzNiw3ICs3NzksNyBAQAogICAgICAgICByZXR1cm4gc2VsZi5fbG9hZF9tb2R1bGUoZnVsbG5hbWUpCiAKIAotY2xhc3MgX0ZpbGVMb2FkZXI6CitjbGFzcyBGaWxlTG9hZGVyOgogCiAgICAgIiIiQmFzZSBmaWxlIGxvYWRlciBjbGFzcyB3aGljaCBpbXBsZW1lbnRzIHRoZSBsb2FkZXIgcHJvdG9jb2wgbWV0aG9kcyB0aGF0CiAgICAgcmVxdWlyZSBmaWxlIHN5c3RlbSB1c2FnZS4iIiIKQEAgLTQ0NCwxMyArNzg3LDIwIEBACiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bGxuYW1lLCBwYXRoKToKICAgICAgICAgIiIiQ2FjaGUgdGhlIG1vZHVsZSBuYW1lIGFuZCB0aGUgcGF0aCB0byB0aGUgZmlsZSBmb3VuZCBieSB0aGUKICAgICAgICAgZmluZGVyLiIiIgotICAgICAgICBzZWxmLl9uYW1lID0gZnVsbG5hbWUKLSAgICAgICAgc2VsZi5fcGF0aCA9IHBhdGgKKyAgICAgICAgc2VsZi5uYW1lID0gZnVsbG5hbWUKKyAgICAgICAgc2VsZi5wYXRoID0gcGF0aAorCisgICAgQF9jaGVja19uYW1lCisgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKKyAgICAgICAgIiIiTG9hZCBhIG1vZHVsZSBmcm9tIGEgZmlsZS4iIiIKKyAgICAgICAgIyBJc3N1ZSAjMTQ4NTc6IEF2b2lkIHRoZSB6ZXJvLWFyZ3VtZW50IGZvcm0gc28gdGhlIGltcGxlbWVudGF0aW9uCisgICAgICAgICMgb2YgdGhhdCBmb3JtIGNhbiBiZSB1cGRhdGVkIHdpdGhvdXQgYnJlYWtpbmcgdGhlIGZyb3plbiBtb2R1bGUKKyAgICAgICAgcmV0dXJuIHN1cGVyKEZpbGVMb2FkZXIsIHNlbGYpLmxvYWRfbW9kdWxlKGZ1bGxuYW1lKQogCiAgICAgQF9jaGVja19uYW1lCiAgICAgZGVmIGdldF9maWxlbmFtZShzZWxmLCBmdWxsbmFtZSk6CiAgICAgICAgICIiIlJldHVybiB0aGUgcGF0aCB0byB0aGUgc291cmNlIGZpbGUgYXMgZm91bmQgYnkgdGhlIGZpbmRlci4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGgKKyAgICAgICAgcmV0dXJuIHNlbGYucGF0aAogCiAgICAgZGVmIGdldF9kYXRhKHNlbGYsIHBhdGgpOgogICAgICAgICAiIiJSZXR1cm4gdGhlIGRhdGEgZnJvbSBwYXRoIGFzIHJhdyBieXRlcy4iIiIKQEAgLTQ1OCw1MiArODA4LDQ1IEBACiAgICAgICAgICAgICByZXR1cm4gZmlsZS5yZWFkKCkKIAogCi1jbGFzcyBfU291cmNlRmlsZUxvYWRlcihfRmlsZUxvYWRlciwgU291cmNlTG9hZGVyKToKK2NsYXNzIFNvdXJjZUZpbGVMb2FkZXIoRmlsZUxvYWRlciwgU291cmNlTG9hZGVyKToKIAogICAgICIiIkNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIFNvdXJjZUxvYWRlciB1c2luZyB0aGUgZmlsZSBzeXN0ZW0uIiIiCiAKLSAgICBkZWYgcGF0aF9tdGltZShzZWxmLCBwYXRoKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBtb2RpZmljYXRpb24gdGltZSBmb3IgdGhlIHBhdGguIiIiCi0gICAgICAgIHJldHVybiBpbnQoX29zLnN0YXQocGF0aCkuc3RfbXRpbWUpCisgICAgZGVmIHBhdGhfc3RhdHMoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIlJldHVybiB0aGUgbWV0YWRhdCBmb3IgdGhlIHBhdGguIiIiCisgICAgICAgIHN0ID0gX29zLnN0YXQocGF0aCkKKyAgICAgICAgcmV0dXJuIHsnbXRpbWUnOiBzdC5zdF9tdGltZSwgJ3NpemUnOiBzdC5zdF9zaXplfQogCiAgICAgZGVmIHNldF9kYXRhKHNlbGYsIHBhdGgsIGRhdGEpOgogICAgICAgICAiIiJXcml0ZSBieXRlcyBkYXRhIHRvIGEgZmlsZS4iIiIKLSAgICAgICAgcGFyZW50LCBfLCBmaWxlbmFtZSA9IHBhdGgucnBhcnRpdGlvbihwYXRoX3NlcCkKKyAgICAgICAgcGFyZW50LCBmaWxlbmFtZSA9IF9wYXRoX3NwbGl0KHBhdGgpCiAgICAgICAgIHBhdGhfcGFydHMgPSBbXQogICAgICAgICAjIEZpZ3VyZSBvdXQgd2hhdCBkaXJlY3RvcmllcyBhcmUgbWlzc2luZy4KICAgICAgICAgd2hpbGUgcGFyZW50IGFuZCBub3QgX3BhdGhfaXNkaXIocGFyZW50KToKLSAgICAgICAgICAgIHBhcmVudCwgXywgcGFydCA9IHBhcmVudC5ycGFydGl0aW9uKHBhdGhfc2VwKQorICAgICAgICAgICAgcGFyZW50LCBwYXJ0ID0gX3BhdGhfc3BsaXQocGFyZW50KQogICAgICAgICAgICAgcGF0aF9wYXJ0cy5hcHBlbmQocGFydCkKICAgICAgICAgIyBDcmVhdGUgbmVlZGVkIGRpcmVjdG9yaWVzLgogICAgICAgICBmb3IgcGFydCBpbiByZXZlcnNlZChwYXRoX3BhcnRzKToKICAgICAgICAgICAgIHBhcmVudCA9IF9wYXRoX2pvaW4ocGFyZW50LCBwYXJ0KQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIF9vcy5ta2RpcihwYXJlbnQpCi0gICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBleGM6CisgICAgICAgICAgICBleGNlcHQgRmlsZUV4aXN0c0Vycm9yOgogICAgICAgICAgICAgICAgICMgUHJvYmFibHkgYW5vdGhlciBQeXRob24gcHJvY2VzcyBhbHJlYWR5IGNyZWF0ZWQgdGhlIGRpci4KLSAgICAgICAgICAgICAgICBpZiBleGMuZXJybm8gPT0gZXJybm8uRUVYSVNUOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBleGM6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGV4Y2VwdCBQZXJtaXNzaW9uRXJyb3I6CiAgICAgICAgICAgICAgICAgIyBJZiBjYW4ndCBnZXQgcHJvcGVyIGFjY2VzcywgdGhlbiBqdXN0IGZvcmdldCBhYm91dCB3cml0aW5nCiAgICAgICAgICAgICAgICAgIyB0aGUgZGF0YS4KLSAgICAgICAgICAgICAgICBpZiBleGMuZXJybm8gPT0gZXJybm8uRUFDQ0VTOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aXRoIF9pby5GaWxlSU8ocGF0aCwgJ3diJykgYXMgZmlsZToKLSAgICAgICAgICAgICAgICBmaWxlLndyaXRlKGRhdGEpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGV4YzoKLSAgICAgICAgICAgICMgRG9uJ3Qgd29ycnkgaWYgeW91IGNhbid0IHdyaXRlIGJ5dGVjb2RlLgotICAgICAgICAgICAgaWYgZXhjLmVycm5vID09IGVycm5vLkVBQ0NFUzoKICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgX3dyaXRlX2F0b21pYyhwYXRoLCBkYXRhKQorICAgICAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZSgnY3JlYXRlZCB7IXJ9JywgcGF0aCkKKyAgICAgICAgZXhjZXB0IChQZXJtaXNzaW9uRXJyb3IsIEZpbGVFeGlzdHNFcnJvcik6CisgICAgICAgICAgICAjIERvbid0IHdvcnJ5IGlmIHlvdSBjYW4ndCB3cml0ZSBieXRlY29kZSBvciBzb21lb25lIGlzIHdyaXRpbmcKKyAgICAgICAgICAgICMgaXQgYXQgdGhlIHNhbWUgdGltZS4KKyAgICAgICAgICAgIHBhc3MKIAogCi1jbGFzcyBfU291cmNlbGVzc0ZpbGVMb2FkZXIoX0ZpbGVMb2FkZXIsIF9Mb2FkZXJCYXNpY3MpOgorY2xhc3MgU291cmNlbGVzc0ZpbGVMb2FkZXIoRmlsZUxvYWRlciwgX0xvYWRlckJhc2ljcyk6CiAKICAgICAiIiJMb2FkZXIgd2hpY2ggaGFuZGxlcyBzb3VyY2VsZXNzIGZpbGUgaW1wb3J0cy4iIiIKIApAQCAtNTEzLDE5ICs4NTYsMjEgQEAKICAgICBkZWYgZ2V0X2NvZGUoc2VsZiwgZnVsbG5hbWUpOgogICAgICAgICBwYXRoID0gc2VsZi5nZXRfZmlsZW5hbWUoZnVsbG5hbWUpCiAgICAgICAgIGRhdGEgPSBzZWxmLmdldF9kYXRhKHBhdGgpCi0gICAgICAgIGJ5dGVzX2RhdGEgPSBzZWxmLl9ieXRlc19mcm9tX2J5dGVjb2RlKGZ1bGxuYW1lLCBkYXRhLCBOb25lKQorICAgICAgICBieXRlc19kYXRhID0gc2VsZi5fYnl0ZXNfZnJvbV9ieXRlY29kZShmdWxsbmFtZSwgZGF0YSwgcGF0aCwgTm9uZSkKICAgICAgICAgZm91bmQgPSBtYXJzaGFsLmxvYWRzKGJ5dGVzX2RhdGEpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoZm91bmQsIGNvZGVfdHlwZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoZm91bmQsIF9jb2RlX3R5cGUpOgorICAgICAgICAgICAgX3ZlcmJvc2VfbWVzc2FnZSgnY29kZSBvYmplY3QgZnJvbSB7IXJ9JywgcGF0aCkKICAgICAgICAgICAgIHJldHVybiBmb3VuZAogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoIk5vbi1jb2RlIG9iamVjdCBpbiB7fSIuZm9ybWF0KHBhdGgpKQorICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoIk5vbi1jb2RlIG9iamVjdCBpbiB7fSIuZm9ybWF0KHBhdGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1mdWxsbmFtZSwgcGF0aD1wYXRoKQogCiAgICAgZGVmIGdldF9zb3VyY2Uoc2VsZiwgZnVsbG5hbWUpOgogICAgICAgICAiIiJSZXR1cm4gTm9uZSBhcyB0aGVyZSBpcyBubyBzb3VyY2UgY29kZS4iIiIKICAgICAgICAgcmV0dXJuIE5vbmUKIAogCi1jbGFzcyBfRXh0ZW5zaW9uRmlsZUxvYWRlcjoKK2NsYXNzIEV4dGVuc2lvbkZpbGVMb2FkZXI6CiAKICAgICAiIiJMb2FkZXIgZm9yIGV4dGVuc2lvbiBtb2R1bGVzLgogCkBAIC01MzQsMTQgKzg3OSw4IEBACiAgICAgIiIiCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgcGF0aCk6Ci0gICAgICAgICIiIkluaXRpYWxpemUgdGhlIGxvYWRlci4KLQotICAgICAgICBJZiBpc19wa2cgaXMgVHJ1ZSB0aGVuIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgYXMgZXh0ZW5zaW9uIG1vZHVsZXMKLSAgICAgICAgY2Fubm90IGJlIHRoZSBfX2luaXRfXyBtb2R1bGUgZm9yIGFuIGV4dGVuc2lvbiBtb2R1bGUuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX25hbWUgPSBuYW1lCi0gICAgICAgIHNlbGYuX3BhdGggPSBwYXRoCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5wYXRoID0gcGF0aAogCiAgICAgQF9jaGVja19uYW1lCiAgICAgQHNldF9wYWNrYWdlCkBAIC01NTAsMjcgKzg4OSwxMDMgQEAKICAgICAgICAgIiIiTG9hZCBhbiBleHRlbnNpb24gbW9kdWxlLiIiIgogICAgICAgICBpc19yZWxvYWQgPSBmdWxsbmFtZSBpbiBzeXMubW9kdWxlcwogICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gaW1wLmxvYWRfZHluYW1pYyhmdWxsbmFtZSwgc2VsZi5fcGF0aCkKKyAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYuX2V4ZWNfbW9kdWxlKGZ1bGxuYW1lLCBzZWxmLnBhdGgpCisgICAgICAgICAgICBfdmVyYm9zZV9tZXNzYWdlKCdleHRlbnNpb24gbW9kdWxlIGxvYWRlZCBmcm9tIHshcn0nLCBzZWxmLnBhdGgpCisgICAgICAgICAgICByZXR1cm4gbW9kdWxlCiAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgIGlmIG5vdCBpc19yZWxvYWQgYW5kIGZ1bGxuYW1lIGluIHN5cy5tb2R1bGVzOgogICAgICAgICAgICAgICAgIGRlbCBzeXMubW9kdWxlc1tmdWxsbmFtZV0KICAgICAgICAgICAgIHJhaXNlCiAKLSAgICBAX2NoZWNrX25hbWUKICAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBmdWxsbmFtZSk6CiAgICAgICAgICIiIlJldHVybiBGYWxzZSBhcyBhbiBleHRlbnNpb24gbW9kdWxlIGNhbiBuZXZlciBiZSBhIHBhY2thZ2UuIiIiCiAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgQF9jaGVja19uYW1lCiAgICAgZGVmIGdldF9jb2RlKHNlbGYsIGZ1bGxuYW1lKToKICAgICAgICAgIiIiUmV0dXJuIE5vbmUgYXMgYW4gZXh0ZW5zaW9uIG1vZHVsZSBjYW5ub3QgY3JlYXRlIGEgY29kZSBvYmplY3QuIiIiCiAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICBAX2NoZWNrX25hbWUKICAgICBkZWYgZ2V0X3NvdXJjZShzZWxmLCBmdWxsbmFtZSk6CiAgICAgICAgICIiIlJldHVybiBOb25lIGFzIGV4dGVuc2lvbiBtb2R1bGVzIGhhdmUgbm8gc291cmNlIGNvZGUuIiIiCiAgICAgICAgIHJldHVybiBOb25lCiAKKyAgICBkZWYgX2V4ZWNfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lLCBwYXRoKToKKyAgICAgICAgIiIiSGVscGVyIGZvciBsb2FkX21vZHVsZSwgYWxsb3dpbmcgdG8gaXNvbGF0ZSBlYXNpbHkgKHdoZW4KKyAgICAgICAgbG9va2luZyBhdCBhIHRyYWNlYmFjaykgd2hldGhlciBhbiBlcnJvciBjb21lcyBmcm9tIGV4ZWN1dGluZworICAgICAgICBhbiBpbXBvcnRlZCBtb2R1bGUncyBjb2RlLiIiIgorICAgICAgICByZXR1cm4gX2ltcC5sb2FkX2R5bmFtaWMoZnVsbG5hbWUsIHBhdGgpCisKKworY2xhc3MgX05hbWVzcGFjZVBhdGg6CisgICAgIiIiUmVwcmVzZW50cyBhIG5hbWVzcGFjZSBwYWNrYWdlJ3MgcGF0aC4gIEl0IHVzZXMgdGhlIG1vZHVsZSBuYW1lCisgICAgdG8gZmluZCBpdHMgcGFyZW50IG1vZHVsZSwgYW5kIGZyb20gdGhlcmUgaXQgbG9va3MgdXAgdGhlIHBhcmVudCdzCisgICAgX19wYXRoX18uICBXaGVuIHRoaXMgY2hhbmdlcywgdGhlIG1vZHVsZSdzIG93biBwYXRoIGlzIHJlY29tcHV0ZWQsCisgICAgdXNpbmcgcGF0aF9maW5kZXIuICBGb3IgdG9wLWxldmUgbW9kdWxlcywgdGhlIHBhcmVudCBtb2R1bGUncyBwYXRoCisgICAgaXMgc3lzLnBhdGguIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgcGF0aCwgcGF0aF9maW5kZXIpOgorICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQorICAgICAgICBzZWxmLl9wYXRoID0gcGF0aAorICAgICAgICBzZWxmLl9sYXN0X3BhcmVudF9wYXRoID0gdHVwbGUoc2VsZi5fZ2V0X3BhcmVudF9wYXRoKCkpCisgICAgICAgIHNlbGYuX3BhdGhfZmluZGVyID0gcGF0aF9maW5kZXIKKworICAgIGRlZiBfZmluZF9wYXJlbnRfcGF0aF9uYW1lcyhzZWxmKToKKyAgICAgICAgIiIiUmV0dXJucyBhIHR1cGxlIG9mIChwYXJlbnQtbW9kdWxlLW5hbWUsIHBhcmVudC1wYXRoLWF0dHItbmFtZSkiIiIKKyAgICAgICAgcGFyZW50LCBkb3QsIG1lID0gc2VsZi5fbmFtZS5ycGFydGl0aW9uKCcuJykKKyAgICAgICAgaWYgZG90ID09ICcnOgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgdG9wLWxldmVsIG1vZHVsZS4gc3lzLnBhdGggY29udGFpbnMgdGhlIHBhcmVudCBwYXRoLgorICAgICAgICAgICAgcmV0dXJuICdzeXMnLCAncGF0aCcKKyAgICAgICAgIyBOb3QgYSB0b3AtbGV2ZWwgbW9kdWxlLiBwYXJlbnQtbW9kdWxlLl9fcGF0aF9fIGNvbnRhaW5zIHRoZQorICAgICAgICAjICBwYXJlbnQgcGF0aC4KKyAgICAgICAgcmV0dXJuIHBhcmVudCwgJ19fcGF0aF9fJworCisgICAgZGVmIF9nZXRfcGFyZW50X3BhdGgoc2VsZik6CisgICAgICAgIHBhcmVudF9tb2R1bGVfbmFtZSwgcGF0aF9hdHRyX25hbWUgPSBzZWxmLl9maW5kX3BhcmVudF9wYXRoX25hbWVzKCkKKyAgICAgICAgcmV0dXJuIGdldGF0dHIoc3lzLm1vZHVsZXNbcGFyZW50X21vZHVsZV9uYW1lXSwgcGF0aF9hdHRyX25hbWUpCisKKyAgICBkZWYgX3JlY2FsY3VsYXRlKHNlbGYpOgorICAgICAgICAjIElmIHRoZSBwYXJlbnQncyBwYXRoIGhhcyBjaGFuZ2VkLCByZWNhbGN1bGF0ZSBfcGF0aAorICAgICAgICBwYXJlbnRfcGF0aCA9IHR1cGxlKHNlbGYuX2dldF9wYXJlbnRfcGF0aCgpKSAjIE1ha2UgYSBjb3B5CisgICAgICAgIGlmIHBhcmVudF9wYXRoICE9IHNlbGYuX2xhc3RfcGFyZW50X3BhdGg6CisgICAgICAgICAgICBsb2FkZXIsIG5ld19wYXRoID0gc2VsZi5fcGF0aF9maW5kZXIoc2VsZi5fbmFtZSwgcGFyZW50X3BhdGgpCisgICAgICAgICAgICAjIE5vdGUgdGhhdCBubyBjaGFuZ2VzIGFyZSBtYWRlIGlmIGEgbG9hZGVyIGlzIHJldHVybmVkLCBidXQgd2UKKyAgICAgICAgICAgICMgIGRvIHJlbWVtYmVyIHRoZSBuZXcgcGFyZW50IHBhdGgKKyAgICAgICAgICAgIGlmIGxvYWRlciBpcyBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuX3BhdGggPSBuZXdfcGF0aAorICAgICAgICAgICAgc2VsZi5fbGFzdF9wYXJlbnRfcGF0aCA9IHBhcmVudF9wYXRoICAgICAjIFNhdmUgdGhlIGNvcHkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BhdGgKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGl0ZXIoc2VsZi5fcmVjYWxjdWxhdGUoKSkKKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gbGVuKHNlbGYuX3JlY2FsY3VsYXRlKCkpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiX05hbWVzcGFjZVBhdGgoeyFyfSkiLmZvcm1hdChzZWxmLl9wYXRoKQorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBpdGVtKToKKyAgICAgICAgcmV0dXJuIGl0ZW0gaW4gc2VsZi5fcmVjYWxjdWxhdGUoKQorCisgICAgZGVmIGFwcGVuZChzZWxmLCBpdGVtKToKKyAgICAgICAgc2VsZi5fcGF0aC5hcHBlbmQoaXRlbSkKKworCitjbGFzcyBOYW1lc3BhY2VMb2FkZXI6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhdGgsIHBhdGhfZmluZGVyKToKKyAgICAgICAgc2VsZi5fcGF0aCA9IF9OYW1lc3BhY2VQYXRoKG5hbWUsIHBhdGgsIHBhdGhfZmluZGVyKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG1vZHVsZV9yZXByKGNscywgbW9kdWxlKToKKyAgICAgICAgcmV0dXJuICI8bW9kdWxlICd7fScgKG5hbWVzcGFjZSk+Ii5mb3JtYXQobW9kdWxlLl9fbmFtZV9fKQorCisgICAgQG1vZHVsZV9mb3JfbG9hZGVyCisgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIG1vZHVsZSk6CisgICAgICAgICIiIkxvYWQgYSBuYW1lc3BhY2UgbW9kdWxlLiIiIgorICAgICAgICBfdmVyYm9zZV9tZXNzYWdlKCduYW1lc3BhY2UgbW9kdWxlIGxvYWRlZCB3aXRoIHBhdGggeyFyfScsIHNlbGYuX3BhdGgpCisgICAgICAgIG1vZHVsZS5fX3BhdGhfXyA9IHNlbGYuX3BhdGgKKyAgICAgICAgcmV0dXJuIG1vZHVsZQorCiAKICMgRmluZGVycyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIApAQCAtNTc5LDI2NSArOTk0LDM5NiBAQAogICAgICIiIk1ldGEgcGF0aCBmaW5kZXIgZm9yIHN5cy4ocGF0aHxwYXRoX2hvb2tzfHBhdGhfaW1wb3J0ZXJfY2FjaGUpLiIiIgogCiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9wYXRoX2hvb2tzKGNscywgcGF0aCwgaG9va3M9Tm9uZSk6CisgICAgZGVmIF9wYXRoX2hvb2tzKGNscywgcGF0aCk6CiAgICAgICAgICIiIlNlYXJjaCBzZXF1ZW5jZSBvZiBob29rcyBmb3IgYSBmaW5kZXIgZm9yICdwYXRoJy4KIAogICAgICAgICBJZiAnaG9va3MnIGlzIGZhbHNlIHRoZW4gdXNlIHN5cy5wYXRoX2hvb2tzLgogCiAgICAgICAgICIiIgotICAgICAgICBpZiBub3QgaG9va3M6Ci0gICAgICAgICAgICBob29rcyA9IHN5cy5wYXRoX2hvb2tzCi0gICAgICAgIGZvciBob29rIGluIGhvb2tzOgorICAgICAgICBpZiBub3Qgc3lzLnBhdGhfaG9va3M6CisgICAgICAgICAgICBfd2FybmluZ3Mud2Fybignc3lzLnBhdGhfaG9va3MgaXMgZW1wdHknLCBJbXBvcnRXYXJuaW5nKQorICAgICAgICBmb3IgaG9vayBpbiBzeXMucGF0aF9ob29rczoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICByZXR1cm4gaG9vayhwYXRoKQogICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigibm8gcGF0aCBob29rIGZvdW5kIGZvciB7MH0iLmZvcm1hdChwYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCiAKICAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX3BhdGhfaW1wb3J0ZXJfY2FjaGUoY2xzLCBwYXRoLCBkZWZhdWx0PU5vbmUpOgorICAgIGRlZiBfcGF0aF9pbXBvcnRlcl9jYWNoZShjbHMsIHBhdGgpOgogICAgICAgICAiIiJHZXQgdGhlIGZpbmRlciBmb3IgdGhlIHBhdGggZnJvbSBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZS4KIAogICAgICAgICBJZiB0aGUgcGF0aCBpcyBub3QgaW4gdGhlIGNhY2hlLCBmaW5kIHRoZSBhcHByb3ByaWF0ZSBmaW5kZXIgYW5kIGNhY2hlCi0gICAgICAgIGl0LiBJZiBOb25lIGlzIGNhY2hlZCwgZ2V0IHRoZSBkZWZhdWx0IGZpbmRlciBhbmQgY2FjaGUgdGhhdAotICAgICAgICAoaWYgYXBwbGljYWJsZSkuCi0KLSAgICAgICAgQmVjYXVzZSBvZiBOdWxsSW1wb3J0ZXIsIHNvbWUgZmluZGVyIHNob3VsZCBiZSByZXR1cm5lZC4gVGhlIG9ubHkKLSAgICAgICAgZXhwbGljaXQgZmFpbCBjYXNlIGlzIGlmIE5vbmUgaXMgY2FjaGVkIGJ1dCB0aGUgcGF0aCBjYW5ub3QgYmUgdXNlZCBmb3IKLSAgICAgICAgdGhlIGRlZmF1bHQgaG9vaywgZm9yIHdoaWNoIEltcG9ydEVycm9yIGlzIHJhaXNlZC4KKyAgICAgICAgaXQuIElmIG5vIGZpbmRlciBpcyBhdmFpbGFibGUsIHN0b3JlIE5vbmUuCiAKICAgICAgICAgIiIiCisgICAgICAgIGlmIHBhdGggPT0gJyc6CisgICAgICAgICAgICBwYXRoID0gJy4nCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGZpbmRlciA9IHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlW3BhdGhdCiAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKICAgICAgICAgICAgIGZpbmRlciA9IGNscy5fcGF0aF9ob29rcyhwYXRoKQogICAgICAgICAgICAgc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGVbcGF0aF0gPSBmaW5kZXIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIGZpbmRlciBpcyBOb25lIGFuZCBkZWZhdWx0OgotICAgICAgICAgICAgICAgICMgUmFpc2VzIEltcG9ydEVycm9yIG9uIGZhaWx1cmUuCi0gICAgICAgICAgICAgICAgZmluZGVyID0gZGVmYXVsdChwYXRoKQotICAgICAgICAgICAgICAgIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlW3BhdGhdID0gZmluZGVyCiAgICAgICAgIHJldHVybiBmaW5kZXIKIAogICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfZ2V0X2xvYWRlcihjbHMsIGZ1bGxuYW1lLCBwYXRoKToKKyAgICAgICAgIiIiRmluZCB0aGUgbG9hZGVyIG9yIG5hbWVzcGFjZV9wYXRoIGZvciB0aGlzIG1vZHVsZS9wYWNrYWdlIG5hbWUuIiIiCisgICAgICAgICMgSWYgdGhpcyBlbmRzIHVwIGJlaW5nIGEgbmFtZXNwYWNlIHBhY2thZ2UsIG5hbWVzcGFjZV9wYXRoIGlzCisgICAgICAgICMgIHRoZSBsaXN0IG9mIHBhdGhzIHRoYXQgd2lsbCBiZWNvbWUgaXRzIF9fcGF0aF9fCisgICAgICAgIG5hbWVzcGFjZV9wYXRoID0gW10KKyAgICAgICAgZm9yIGVudHJ5IGluIHBhdGg6CisgICAgICAgICAgICBmaW5kZXIgPSBjbHMuX3BhdGhfaW1wb3J0ZXJfY2FjaGUoZW50cnkpCisgICAgICAgICAgICBpZiBmaW5kZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihmaW5kZXIsICdmaW5kX2xvYWRlcicpOgorICAgICAgICAgICAgICAgICAgICBsb2FkZXIsIHBvcnRpb25zID0gZmluZGVyLmZpbmRfbG9hZGVyKGZ1bGxuYW1lKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGxvYWRlciA9IGZpbmRlci5maW5kX21vZHVsZShmdWxsbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgcG9ydGlvbnMgPSBbXQorICAgICAgICAgICAgICAgIGlmIGxvYWRlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgIyBXZSBmb3VuZCBhIGxvYWRlcjogcmV0dXJuIGl0IGltbWVkaWF0ZWx5LgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGxvYWRlciwgbmFtZXNwYWNlX3BhdGgpCisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIHBvc3NpYmx5IHBhcnQgb2YgYSBuYW1lc3BhY2UgcGFja2FnZS4KKyAgICAgICAgICAgICAgICAjICBSZW1lbWJlciB0aGVzZSBwYXRoIGVudHJpZXMgKGlmIGFueSkgZm9yIHdoZW4gd2UKKyAgICAgICAgICAgICAgICAjICBjcmVhdGUgYSBuYW1lc3BhY2UgcGFja2FnZSwgYW5kIGNvbnRpbnVlIGl0ZXJhdGluZworICAgICAgICAgICAgICAgICMgIG9uIHBhdGguCisgICAgICAgICAgICAgICAgbmFtZXNwYWNlX3BhdGguZXh0ZW5kKHBvcnRpb25zKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIChOb25lLCBuYW1lc3BhY2VfcGF0aCkKKworICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBmaW5kX21vZHVsZShjbHMsIGZ1bGxuYW1lLCBwYXRoPU5vbmUpOgogICAgICAgICAiIiJGaW5kIHRoZSBtb2R1bGUgb24gc3lzLnBhdGggb3IgJ3BhdGgnIGJhc2VkIG9uIHN5cy5wYXRoX2hvb2tzIGFuZAogICAgICAgICBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZS4iIiIKLSAgICAgICAgaWYgbm90IHBhdGg6CisgICAgICAgIGlmIHBhdGggaXMgTm9uZToKICAgICAgICAgICAgIHBhdGggPSBzeXMucGF0aAotICAgICAgICBmb3IgZW50cnkgaW4gcGF0aDoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBmaW5kZXIgPSBjbHMuX3BhdGhfaW1wb3J0ZXJfY2FjaGUoZW50cnkpCi0gICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGZpbmRlcjoKLSAgICAgICAgICAgICAgICBsb2FkZXIgPSBmaW5kZXIuZmluZF9tb2R1bGUoZnVsbG5hbWUpCi0gICAgICAgICAgICAgICAgaWYgbG9hZGVyOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9hZGVyCisgICAgICAgIGxvYWRlciwgbmFtZXNwYWNlX3BhdGggPSBjbHMuX2dldF9sb2FkZXIoZnVsbG5hbWUsIHBhdGgpCisgICAgICAgIGlmIGxvYWRlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBsb2FkZXIKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICBpZiBuYW1lc3BhY2VfcGF0aDoKKyAgICAgICAgICAgICAgICAjIFdlIGZvdW5kIGF0IGxlYXN0IG9uZSBuYW1lc3BhY2UgcGF0aC4gIFJldHVybiBhCisgICAgICAgICAgICAgICAgIyAgbG9hZGVyIHdoaWNoIGNhbiBjcmVhdGUgdGhlIG5hbWVzcGFjZSBwYWNrYWdlLgorICAgICAgICAgICAgICAgIHJldHVybiBOYW1lc3BhY2VMb2FkZXIoZnVsbG5hbWUsIG5hbWVzcGFjZV9wYXRoLCBjbHMuX2dldF9sb2FkZXIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAKIAotY2xhc3MgX0ZpbGVGaW5kZXI6CitjbGFzcyBGaWxlRmluZGVyOgogCiAgICAgIiIiRmlsZS1iYXNlZCBmaW5kZXIuCiAKLSAgICBDb25zdHJ1Y3RvciB0YWtlcyBhIGxpc3Qgb2Ygb2JqZWN0cyBkZXRhaWxpbmcgd2hhdCBmaWxlIGV4dGVuc2lvbnMgdGhlaXIKLSAgICBsb2FkZXIgc3VwcG9ydHMgYWxvbmcgd2l0aCB3aGV0aGVyIGl0IGNhbiBiZSB1c2VkIGZvciBhIHBhY2thZ2UuCisgICAgSW50ZXJhY3Rpb25zIHdpdGggdGhlIGZpbGUgc3lzdGVtIGFyZSBjYWNoZWQgZm9yIHBlcmZvcm1hbmNlLCBiZWluZworICAgIHJlZnJlc2hlZCB3aGVuIHRoZSBkaXJlY3RvcnkgdGhlIGZpbmRlciBpcyBoYW5kbGluZyBoYXMgYmVlbiBtb2RpZmllZC4KIAogICAgICIiIgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgsICpkZXRhaWxzKToKLSAgICAgICAgIiIiSW5pdGlhbGl6ZSB3aXRoIGZpbmRlciBkZXRhaWxzLiIiIgorICAgICAgICAiIiJJbml0aWFsaXplIHdpdGggdGhlIHBhdGggdG8gc2VhcmNoIG9uIGFuZCBhIHZhcmlhYmxlIG51bWJlciBvZgorICAgICAgICAzLXR1cGxlcyBjb250YWluaW5nIHRoZSBsb2FkZXIsIGZpbGUgc3VmZml4ZXMgdGhlIGxvYWRlciByZWNvZ25pemVzLAorICAgICAgICBhbmQgYSBib29sZWFuIG9mIHdoZXRoZXIgdGhlIGxvYWRlciBoYW5kbGVzIHBhY2thZ2VzLiIiIgogICAgICAgICBwYWNrYWdlcyA9IFtdCiAgICAgICAgIG1vZHVsZXMgPSBbXQotICAgICAgICBmb3IgZGV0YWlsIGluIGRldGFpbHM6Ci0gICAgICAgICAgICBtb2R1bGVzLmV4dGVuZCgoc3VmZml4LCBkZXRhaWwubG9hZGVyKSBmb3Igc3VmZml4IGluIGRldGFpbC5zdWZmaXhlcykKLSAgICAgICAgICAgIGlmIGRldGFpbC5zdXBwb3J0c19wYWNrYWdlczoKLSAgICAgICAgICAgICAgICBwYWNrYWdlcy5leHRlbmQoKHN1ZmZpeCwgZGV0YWlsLmxvYWRlcikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHN1ZmZpeCBpbiBkZXRhaWwuc3VmZml4ZXMpCisgICAgICAgIGZvciBsb2FkZXIsIHN1ZmZpeGVzLCBzdXBwb3J0c19wYWNrYWdlcyBpbiBkZXRhaWxzOgorICAgICAgICAgICAgbW9kdWxlcy5leHRlbmQoKHN1ZmZpeCwgbG9hZGVyKSBmb3Igc3VmZml4IGluIHN1ZmZpeGVzKQorICAgICAgICAgICAgaWYgc3VwcG9ydHNfcGFja2FnZXM6CisgICAgICAgICAgICAgICAgcGFja2FnZXMuZXh0ZW5kKChzdWZmaXgsIGxvYWRlcikgZm9yIHN1ZmZpeCBpbiBzdWZmaXhlcykKICAgICAgICAgc2VsZi5wYWNrYWdlcyA9IHBhY2thZ2VzCiAgICAgICAgIHNlbGYubW9kdWxlcyA9IG1vZHVsZXMKLSAgICAgICAgc2VsZi5wYXRoID0gcGF0aAorICAgICAgICAjIEJhc2UgKGRpcmVjdG9yeSkgcGF0aAorICAgICAgICBzZWxmLnBhdGggPSBwYXRoIG9yICcuJworICAgICAgICBzZWxmLl9wYXRoX210aW1lID0gLTEKKyAgICAgICAgc2VsZi5fcGF0aF9jYWNoZSA9IHNldCgpCisgICAgICAgIHNlbGYuX3JlbGF4ZWRfcGF0aF9jYWNoZSA9IHNldCgpCisKKyAgICBkZWYgaW52YWxpZGF0ZV9jYWNoZXMoc2VsZik6CisgICAgICAgICIiIkludmFsaWRhdGUgdGhlIGRpcmVjdG9yeSBtdGltZS4iIiIKKyAgICAgICAgc2VsZi5fcGF0aF9tdGltZSA9IC0xCiAKICAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwgZnVsbG5hbWUpOgogICAgICAgICAiIiJUcnkgdG8gZmluZCBhIGxvYWRlciBmb3IgdGhlIHNwZWNpZmllZCBtb2R1bGUuIiIiCisgICAgICAgICMgQ2FsbCBmaW5kX2xvYWRlcigpLiBJZiBpdCByZXR1cm5zIGEgc3RyaW5nIChpbmRpY2F0aW5nIHRoaXMKKyAgICAgICAgIyBpcyBhIG5hbWVzcGFjZSBwYWNrYWdlIHBvcnRpb24pLCBnZW5lcmF0ZSBhIHdhcm5pbmcgYW5kCisgICAgICAgICMgcmV0dXJuIE5vbmUuCisgICAgICAgIGxvYWRlciwgcG9ydGlvbnMgPSBzZWxmLmZpbmRfbG9hZGVyKGZ1bGxuYW1lKQorICAgICAgICBhc3NlcnQgbGVuKHBvcnRpb25zKSBpbiBbMCwgMV0KKyAgICAgICAgaWYgbG9hZGVyIGlzIE5vbmUgYW5kIGxlbihwb3J0aW9ucyk6CisgICAgICAgICAgICBtc2cgPSAiTm90IGltcG9ydGluZyBkaXJlY3Rvcnkge306IG1pc3NpbmcgX19pbml0X18iCisgICAgICAgICAgICBfd2FybmluZ3Mud2Fybihtc2cuZm9ybWF0KHBvcnRpb25zWzBdKSwgSW1wb3J0V2FybmluZykKKyAgICAgICAgcmV0dXJuIGxvYWRlcgorCisgICAgZGVmIGZpbmRfbG9hZGVyKHNlbGYsIGZ1bGxuYW1lKToKKyAgICAgICAgIiIiVHJ5IHRvIGZpbmQgYSBsb2FkZXIgZm9yIHRoZSBzcGVjaWZpZWQgbW9kdWxlLCBvciB0aGUgbmFtZXNwYWNlCisgICAgICAgIHBhY2thZ2UgcG9ydGlvbnMuIFJldHVybnMgKGxvYWRlciwgbGlzdC1vZi1wb3J0aW9ucykuIiIiCisgICAgICAgIGlzX25hbWVzcGFjZSA9IEZhbHNlCiAgICAgICAgIHRhaWxfbW9kdWxlID0gZnVsbG5hbWUucnBhcnRpdGlvbignLicpWzJdCi0gICAgICAgIGJhc2VfcGF0aCA9IF9wYXRoX2pvaW4oc2VsZi5wYXRoLCB0YWlsX21vZHVsZSkKLSAgICAgICAgaWYgX3BhdGhfaXNkaXIoYmFzZV9wYXRoKSBhbmQgX2Nhc2Vfb2soc2VsZi5wYXRoLCB0YWlsX21vZHVsZSk6Ci0gICAgICAgICAgICBmb3Igc3VmZml4LCBsb2FkZXIgaW4gc2VsZi5wYWNrYWdlczoKLSAgICAgICAgICAgICAgICBpbml0X2ZpbGVuYW1lID0gJ19faW5pdF9fJyArIHN1ZmZpeAotICAgICAgICAgICAgICAgIGZ1bGxfcGF0aCA9IF9wYXRoX2pvaW4oYmFzZV9wYXRoLCBpbml0X2ZpbGVuYW1lKQotICAgICAgICAgICAgICAgIGlmIChfcGF0aF9pc2ZpbGUoZnVsbF9wYXRoKSBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgIF9jYXNlX29rKGJhc2VfcGF0aCwgaW5pdF9maWxlbmFtZSkpOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gbG9hZGVyKGZ1bGxuYW1lLCBmdWxsX3BhdGgpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG1zZyA9ICJOb3QgaW1wb3J0aW5nIGRpcmVjdG9yeSB7fTogbWlzc2luZyBfX2luaXRfXyIKLSAgICAgICAgICAgICAgICBfd2FybmluZ3Mud2Fybihtc2cuZm9ybWF0KGJhc2VfcGF0aCksIEltcG9ydFdhcm5pbmcpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG10aW1lID0gX29zLnN0YXQoc2VsZi5wYXRoKS5zdF9tdGltZQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIG10aW1lID0gLTEKKyAgICAgICAgaWYgbXRpbWUgIT0gc2VsZi5fcGF0aF9tdGltZToKKyAgICAgICAgICAgIHNlbGYuX2ZpbGxfY2FjaGUoKQorICAgICAgICAgICAgc2VsZi5fcGF0aF9tdGltZSA9IG10aW1lCisgICAgICAgICMgdGFpbF9tb2R1bGUga2VlcHMgdGhlIG9yaWdpbmFsIGNhc2luZywgZm9yIF9fZmlsZV9fIGFuZCBmcmllbmRzCisgICAgICAgIGlmIF9yZWxheF9jYXNlKCk6CisgICAgICAgICAgICBjYWNoZSA9IHNlbGYuX3JlbGF4ZWRfcGF0aF9jYWNoZQorICAgICAgICAgICAgY2FjaGVfbW9kdWxlID0gdGFpbF9tb2R1bGUubG93ZXIoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY2FjaGUgPSBzZWxmLl9wYXRoX2NhY2hlCisgICAgICAgICAgICBjYWNoZV9tb2R1bGUgPSB0YWlsX21vZHVsZQorICAgICAgICAjIENoZWNrIGlmIHRoZSBtb2R1bGUgaXMgdGhlIG5hbWUgb2YgYSBkaXJlY3RvcnkgKGFuZCB0aHVzIGEgcGFja2FnZSkuCisgICAgICAgIGlmIGNhY2hlX21vZHVsZSBpbiBjYWNoZToKKyAgICAgICAgICAgIGJhc2VfcGF0aCA9IF9wYXRoX2pvaW4oc2VsZi5wYXRoLCB0YWlsX21vZHVsZSkKKyAgICAgICAgICAgIGlmIF9wYXRoX2lzZGlyKGJhc2VfcGF0aCk6CisgICAgICAgICAgICAgICAgZm9yIHN1ZmZpeCwgbG9hZGVyIGluIHNlbGYucGFja2FnZXM6CisgICAgICAgICAgICAgICAgICAgIGluaXRfZmlsZW5hbWUgPSAnX19pbml0X18nICsgc3VmZml4CisgICAgICAgICAgICAgICAgICAgIGZ1bGxfcGF0aCA9IF9wYXRoX2pvaW4oYmFzZV9wYXRoLCBpbml0X2ZpbGVuYW1lKQorICAgICAgICAgICAgICAgICAgICBpZiBfcGF0aF9pc2ZpbGUoZnVsbF9wYXRoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAobG9hZGVyKGZ1bGxuYW1lLCBmdWxsX3BhdGgpLCBbYmFzZV9wYXRoXSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIEEgbmFtZXNwYWNlIHBhY2thZ2UsIHJldHVybiB0aGUgcGF0aCBpZiB3ZSBkb24ndCBhbHNvCisgICAgICAgICAgICAgICAgICAgICMgIGZpbmQgYSBtb2R1bGUgaW4gdGhlIG5leHQgc2VjdGlvbi4KKyAgICAgICAgICAgICAgICAgICAgaXNfbmFtZXNwYWNlID0gVHJ1ZQorICAgICAgICAjIENoZWNrIGZvciBhIGZpbGUgdy8gYSBwcm9wZXIgc3VmZml4IGV4aXN0cy4KICAgICAgICAgZm9yIHN1ZmZpeCwgbG9hZGVyIGluIHNlbGYubW9kdWxlczoKLSAgICAgICAgICAgIG1vZF9maWxlbmFtZSA9IHRhaWxfbW9kdWxlICsgc3VmZml4Ci0gICAgICAgICAgICBmdWxsX3BhdGggPSBfcGF0aF9qb2luKHNlbGYucGF0aCwgbW9kX2ZpbGVuYW1lKQotICAgICAgICAgICAgaWYgX3BhdGhfaXNmaWxlKGZ1bGxfcGF0aCkgYW5kIF9jYXNlX29rKHNlbGYucGF0aCwgbW9kX2ZpbGVuYW1lKToKLSAgICAgICAgICAgICAgICByZXR1cm4gbG9hZGVyKGZ1bGxuYW1lLCBmdWxsX3BhdGgpCi0gICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICBpZiBjYWNoZV9tb2R1bGUgKyBzdWZmaXggaW4gY2FjaGU6CisgICAgICAgICAgICAgICAgZnVsbF9wYXRoID0gX3BhdGhfam9pbihzZWxmLnBhdGgsIHRhaWxfbW9kdWxlICsgc3VmZml4KQorICAgICAgICAgICAgICAgIGlmIF9wYXRoX2lzZmlsZShmdWxsX3BhdGgpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGxvYWRlcihmdWxsbmFtZSwgZnVsbF9wYXRoKSwgW10pCisgICAgICAgIGlmIGlzX25hbWVzcGFjZToKKyAgICAgICAgICAgIHJldHVybiAoTm9uZSwgW2Jhc2VfcGF0aF0pCisgICAgICAgIHJldHVybiAoTm9uZSwgW10pCiAKLWNsYXNzIF9Tb3VyY2VGaW5kZXJEZXRhaWxzOgorICAgIGRlZiBfZmlsbF9jYWNoZShzZWxmKToKKyAgICAgICAgIiIiRmlsbCB0aGUgY2FjaGUgb2YgcG90ZW50aWFsIG1vZHVsZXMgYW5kIHBhY2thZ2VzIGZvciB0aGlzIGRpcmVjdG9yeS4iIiIKKyAgICAgICAgcGF0aCA9IHNlbGYucGF0aAorICAgICAgICBjb250ZW50cyA9IF9vcy5saXN0ZGlyKHBhdGgpCisgICAgICAgICMgV2Ugc3RvcmUgdHdvIGNhY2hlZCB2ZXJzaW9ucywgdG8gaGFuZGxlIHJ1bnRpbWUgY2hhbmdlcyBvZiB0aGUKKyAgICAgICAgIyBQWVRIT05DQVNFT0sgZW52aXJvbm1lbnQgdmFyaWFibGUuCisgICAgICAgIGlmIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJyk6CisgICAgICAgICAgICBzZWxmLl9wYXRoX2NhY2hlID0gc2V0KGNvbnRlbnRzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBXaW5kb3dzIHVzZXJzIGNhbiBpbXBvcnQgbW9kdWxlcyB3aXRoIGNhc2UtaW5zZW5zaXRpdmUgZmlsZQorICAgICAgICAgICAgIyBzdWZmaXhlcyAoZm9yIGxlZ2FjeSByZWFzb25zKS4gTWFrZSB0aGUgc3VmZml4IGxvd2VyY2FzZSBoZXJlCisgICAgICAgICAgICAjIHNvIGl0J3MgZG9uZSBvbmNlIGluc3RlYWQgb2YgZm9yIGV2ZXJ5IGltcG9ydC4gVGhpcyBpcyBzYWZlIGFzCisgICAgICAgICAgICAjIHRoZSBzcGVjaWZpZWQgc3VmZml4ZXMgdG8gY2hlY2sgYWdhaW5zdCBhcmUgYWx3YXlzIHNwZWNpZmllZCBpbiBhCisgICAgICAgICAgICAjIGNhc2Utc2Vuc2l0aXZlIG1hbm5lci4KKyAgICAgICAgICAgIGxvd2VyX3N1ZmZpeF9jb250ZW50cyA9IHNldCgpCisgICAgICAgICAgICBmb3IgaXRlbSBpbiBjb250ZW50czoKKyAgICAgICAgICAgICAgICBuYW1lLCBkb3QsIHN1ZmZpeCA9IGl0ZW0ucGFydGl0aW9uKCcuJykKKyAgICAgICAgICAgICAgICBpZiBkb3Q6CisgICAgICAgICAgICAgICAgICAgIG5ld19uYW1lID0gJ3t9Lnt9Jy5mb3JtYXQobmFtZSwgc3VmZml4Lmxvd2VyKCkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbmV3X25hbWUgPSBuYW1lCisgICAgICAgICAgICAgICAgbG93ZXJfc3VmZml4X2NvbnRlbnRzLmFkZChuZXdfbmFtZSkKKyAgICAgICAgICAgIHNlbGYuX3BhdGhfY2FjaGUgPSBsb3dlcl9zdWZmaXhfY29udGVudHMKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoX0NBU0VfSU5TRU5TSVRJVkVfUExBVEZPUk1TKToKKyAgICAgICAgICAgIHNlbGYuX3JlbGF4ZWRfcGF0aF9jYWNoZSA9IHNldChmbi5sb3dlcigpIGZvciBmbiBpbiBjb250ZW50cykKIAotICAgIGxvYWRlciA9IF9Tb3VyY2VGaWxlTG9hZGVyCi0gICAgc3VwcG9ydHNfcGFja2FnZXMgPSBUcnVlCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHBhdGhfaG9vayhjbHMsICpsb2FkZXJfZGV0YWlscyk6CisgICAgICAgICIiIkEgY2xhc3MgbWV0aG9kIHdoaWNoIHJldHVybnMgYSBjbG9zdXJlIHRvIHVzZSBvbiBzeXMucGF0aF9ob29rCisgICAgICAgIHdoaWNoIHdpbGwgcmV0dXJuIGFuIGluc3RhbmNlIHVzaW5nIHRoZSBzcGVjaWZpZWQgbG9hZGVycyBhbmQgdGhlIHBhdGgKKyAgICAgICAgY2FsbGVkIG9uIHRoZSBjbG9zdXJlLgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnN1ZmZpeGVzID0gX3N1ZmZpeF9saXN0KGltcC5QWV9TT1VSQ0UpCisgICAgICAgIElmIHRoZSBwYXRoIGNhbGxlZCBvbiB0aGUgY2xvc3VyZSBpcyBub3QgYSBkaXJlY3RvcnksIEltcG9ydEVycm9yIGlzCisgICAgICAgIHJhaXNlZC4KIAotY2xhc3MgX1NvdXJjZWxlc3NGaW5kZXJEZXRhaWxzOgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHBhdGhfaG9va19mb3JfRmlsZUZpbmRlcihwYXRoKToKKyAgICAgICAgICAgICIiIlBhdGggaG9vayBmb3IgaW1wb3J0bGliLm1hY2hpbmVyeS5GaWxlRmluZGVyLiIiIgorICAgICAgICAgICAgaWYgbm90IF9wYXRoX2lzZGlyKHBhdGgpOgorICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJvbmx5IGRpcmVjdG9yaWVzIGFyZSBzdXBwb3J0ZWQiLCBwYXRoPXBhdGgpCisgICAgICAgICAgICByZXR1cm4gY2xzKHBhdGgsICpsb2FkZXJfZGV0YWlscykKIAotICAgIGxvYWRlciA9IF9Tb3VyY2VsZXNzRmlsZUxvYWRlcgotICAgIHN1cHBvcnRzX3BhY2thZ2VzID0gVHJ1ZQorICAgICAgICByZXR1cm4gcGF0aF9ob29rX2Zvcl9GaWxlRmluZGVyCiAKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuc3VmZml4ZXMgPSBfc3VmZml4X2xpc3QoaW1wLlBZX0NPTVBJTEVEKQotCi0KLWNsYXNzIF9FeHRlbnNpb25GaW5kZXJEZXRhaWxzOgotCi0gICAgbG9hZGVyID0gX0V4dGVuc2lvbkZpbGVMb2FkZXIKLSAgICBzdXBwb3J0c19wYWNrYWdlcyA9IEZhbHNlCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuc3VmZml4ZXMgPSBfc3VmZml4X2xpc3QoaW1wLkNfRVhURU5TSU9OKQorICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICJGaWxlRmluZGVyKCVyKSIgJSAoc2VsZi5wYXRoLCkKIAogCiAjIEltcG9ydCBpdHNlbGYgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLWRlZiBfZmlsZV9wYXRoX2hvb2socGF0aCk6Ci0gICAgIiIiSWYgdGhlIHBhdGggaXMgYSBkaXJlY3RvcnksIHJldHVybiBhIGZpbGUtYmFzZWQgZmluZGVyLiIiIgotICAgIGlmIF9wYXRoX2lzZGlyKHBhdGgpOgotICAgICAgICByZXR1cm4gX0ZpbGVGaW5kZXIocGF0aCwgX0V4dGVuc2lvbkZpbmRlckRldGFpbHMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIF9Tb3VyY2VGaW5kZXJEZXRhaWxzKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBfU291cmNlbGVzc0ZpbmRlckRldGFpbHMoKSkKLSAgICBlbHNlOgotICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigib25seSBkaXJlY3RvcmllcyBhcmUgc3VwcG9ydGVkIikKLQotCi1fREVGQVVMVF9QQVRIX0hPT0sgPSBfZmlsZV9wYXRoX2hvb2sKLQotY2xhc3MgX0RlZmF1bHRQYXRoRmluZGVyKFBhdGhGaW5kZXIpOgotCi0gICAgIiIiU3ViY2xhc3Mgb2YgUGF0aEZpbmRlciB0aGF0IGltcGxlbWVudHMgaW1wbGljaXQgc2VtYW50aWNzIGZvcgotICAgIF9faW1wb3J0X18uIiIiCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX3BhdGhfaG9va3MoY2xzLCBwYXRoKToKLSAgICAgICAgIiIiU2VhcmNoIHN5cy5wYXRoX2hvb2tzIGFzIHdlbGwgYXMgaW1wbGljaXQgcGF0aCBob29rcy4iIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX3BhdGhfaG9va3MocGF0aCkKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgaW1wbGljaXRfaG9va3MgPSBbX0RFRkFVTFRfUEFUSF9IT09LLCBpbXAuTnVsbEltcG9ydGVyXQotICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX3BhdGhfaG9va3MocGF0aCwgaW1wbGljaXRfaG9va3MpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgX3BhdGhfaW1wb3J0ZXJfY2FjaGUoY2xzLCBwYXRoKToKLSAgICAgICAgIiIiVXNlIHRoZSBkZWZhdWx0IHBhdGggaG9vayB3aGVuIE5vbmUgaXMgc3RvcmVkIGluCi0gICAgICAgIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlLiIiIgotICAgICAgICByZXR1cm4gc3VwZXIoKS5fcGF0aF9pbXBvcnRlcl9jYWNoZShwYXRoLCBfREVGQVVMVF9QQVRIX0hPT0spCi0KLQogY2xhc3MgX0ltcG9ydExvY2tDb250ZXh0OgogCiAgICAgIiIiQ29udGV4dCBtYW5hZ2VyIGZvciB0aGUgaW1wb3J0IGxvY2suIiIiCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgogICAgICAgICAiIiJBY3F1aXJlIHRoZSBpbXBvcnQgbG9jay4iIiIKLSAgICAgICAgaW1wLmFjcXVpcmVfbG9jaygpCisgICAgICAgIF9pbXAuYWNxdWlyZV9sb2NrKCkKIAogICAgIGRlZiBfX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbHVlLCBleGNfdHJhY2ViYWNrKToKICAgICAgICAgIiIiUmVsZWFzZSB0aGUgaW1wb3J0IGxvY2sgcmVnYXJkbGVzcyBvZiBhbnkgcmFpc2VkIGV4Y2VwdGlvbnMuIiIiCi0gICAgICAgIGltcC5yZWxlYXNlX2xvY2soKQorICAgICAgICBfaW1wLnJlbGVhc2VfbG9jaygpCiAKIAotX0lNUExJQ0lUX01FVEFfUEFUSCA9IFtCdWlsdGluSW1wb3J0ZXIsIEZyb3plbkltcG9ydGVyLCBfRGVmYXVsdFBhdGhGaW5kZXJdCitkZWYgX3Jlc29sdmVfbmFtZShuYW1lLCBwYWNrYWdlLCBsZXZlbCk6CisgICAgIiIiUmVzb2x2ZSBhIHJlbGF0aXZlIG1vZHVsZSBuYW1lIHRvIGFuIGFic29sdXRlIG9uZS4iIiIKKyAgICBiaXRzID0gcGFja2FnZS5yc3BsaXQoJy4nLCBsZXZlbCAtIDEpCisgICAgaWYgbGVuKGJpdHMpIDwgbGV2ZWw6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2F0dGVtcHRlZCByZWxhdGl2ZSBpbXBvcnQgYmV5b25kIHRvcC1sZXZlbCBwYWNrYWdlJykKKyAgICBiYXNlID0gYml0c1swXQorICAgIHJldHVybiAne30ue30nLmZvcm1hdChiYXNlLCBuYW1lKSBpZiBuYW1lIGVsc2UgYmFzZQogCi1fRVJSX01TRyA9ICdObyBtb2R1bGUgbmFtZWQge30nCisKK2RlZiBfZmluZF9tb2R1bGUobmFtZSwgcGF0aCk6CisgICAgIiIiRmluZCBhIG1vZHVsZSdzIGxvYWRlci4iIiIKKyAgICBpZiBub3Qgc3lzLm1ldGFfcGF0aDoKKyAgICAgICAgX3dhcm5pbmdzLndhcm4oJ3N5cy5tZXRhX3BhdGggaXMgZW1wdHknLCBJbXBvcnRXYXJuaW5nKQorICAgIGZvciBmaW5kZXIgaW4gc3lzLm1ldGFfcGF0aDoKKyAgICAgICAgd2l0aCBfSW1wb3J0TG9ja0NvbnRleHQoKToKKyAgICAgICAgICAgIGxvYWRlciA9IGZpbmRlci5maW5kX21vZHVsZShuYW1lLCBwYXRoKQorICAgICAgICBpZiBsb2FkZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAjIFRoZSBwYXJlbnQgaW1wb3J0IG1heSBoYXZlIGFscmVhZHkgaW1wb3J0ZWQgdGhpcyBtb2R1bGUuCisgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBzeXMubW9kdWxlczoKKyAgICAgICAgICAgICAgICByZXR1cm4gbG9hZGVyCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBzeXMubW9kdWxlc1tuYW1lXS5fX2xvYWRlcl9fCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIE5vbmUKKworCitkZWYgX3Nhbml0eV9jaGVjayhuYW1lLCBwYWNrYWdlLCBsZXZlbCk6CisgICAgIiIiVmVyaWZ5IGFyZ3VtZW50cyBhcmUgInNhbmUiLiIiIgorICAgIGlmIG5vdCBpc2luc3RhbmNlKG5hbWUsIHN0cik6CisgICAgICAgIHJhaXNlIFR5cGVFcnJvcigibW9kdWxlIG5hbWUgbXVzdCBiZSBzdHIsIG5vdCB7fSIuZm9ybWF0KHR5cGUobmFtZSkpKQorICAgIGlmIGxldmVsIDwgMDoKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbGV2ZWwgbXVzdCBiZSA+PSAwJykKKyAgICBpZiBwYWNrYWdlOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwYWNrYWdlLCBzdHIpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJfX3BhY2thZ2VfXyBub3Qgc2V0IHRvIGEgc3RyaW5nIikKKyAgICAgICAgZWxpZiBwYWNrYWdlIG5vdCBpbiBzeXMubW9kdWxlczoKKyAgICAgICAgICAgIG1zZyA9ICgiUGFyZW50IG1vZHVsZSB7IXJ9IG5vdCBsb2FkZWQsIGNhbm5vdCBwZXJmb3JtIHJlbGF0aXZlICIKKyAgICAgICAgICAgICAgICAgICAiaW1wb3J0IikKKyAgICAgICAgICAgIHJhaXNlIFN5c3RlbUVycm9yKG1zZy5mb3JtYXQocGFja2FnZSkpCisgICAgaWYgbm90IG5hbWUgYW5kIGxldmVsID09IDA6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkVtcHR5IG1vZHVsZSBuYW1lIikKKworCitfRVJSX01TRyA9ICdObyBtb2R1bGUgbmFtZWQgeyFyfScKKworZGVmIF9maW5kX2FuZF9sb2FkX3VubG9ja2VkKG5hbWUsIGltcG9ydF8pOgorICAgIHBhdGggPSBOb25lCisgICAgcGFyZW50ID0gbmFtZS5ycGFydGl0aW9uKCcuJylbMF0KKyAgICBpZiBwYXJlbnQ6CisgICAgICAgIGlmIHBhcmVudCBub3QgaW4gc3lzLm1vZHVsZXM6CisgICAgICAgICAgICBpbXBvcnRfKHBhcmVudCkKKyAgICAgICAgIyBDcmF6eSBzaWRlLWVmZmVjdHMhCisgICAgICAgIGlmIG5hbWUgaW4gc3lzLm1vZHVsZXM6CisgICAgICAgICAgICByZXR1cm4gc3lzLm1vZHVsZXNbbmFtZV0KKyAgICAgICAgIyBCYWNrd2FyZHMtY29tcGF0aWJpbGl0eTsgYmUgbmljZXIgdG8gc2tpcCB0aGUgZGljdCBsb29rdXAuCisgICAgICAgIHBhcmVudF9tb2R1bGUgPSBzeXMubW9kdWxlc1twYXJlbnRdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBhdGggPSBwYXJlbnRfbW9kdWxlLl9fcGF0aF9fCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIG1zZyA9IChfRVJSX01TRyArICc7IHt9IGlzIG5vdCBhIHBhY2thZ2UnKS5mb3JtYXQobmFtZSwgcGFyZW50KQorICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IobXNnLCBuYW1lPW5hbWUpCisgICAgbG9hZGVyID0gX2ZpbmRfbW9kdWxlKG5hbWUsIHBhdGgpCisgICAgaWYgbG9hZGVyIGlzIE5vbmU6CisgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKF9FUlJfTVNHLmZvcm1hdChuYW1lKSwgbmFtZT1uYW1lKQorICAgIGVsaWYgbmFtZSBub3QgaW4gc3lzLm1vZHVsZXM6CisgICAgICAgICMgVGhlIHBhcmVudCBpbXBvcnQgbWF5IGhhdmUgYWxyZWFkeSBpbXBvcnRlZCB0aGlzIG1vZHVsZS4KKyAgICAgICAgbG9hZGVyLmxvYWRfbW9kdWxlKG5hbWUpCisgICAgICAgIF92ZXJib3NlX21lc3NhZ2UoJ2ltcG9ydCB7IXJ9ICMgeyFyfScsIG5hbWUsIGxvYWRlcikKKyAgICAjIEJhY2t3YXJkcy1jb21wYXRpYmlsaXR5OyBiZSBuaWNlciB0byBza2lwIHRoZSBkaWN0IGxvb2t1cC4KKyAgICBtb2R1bGUgPSBzeXMubW9kdWxlc1tuYW1lXQorICAgIGlmIHBhcmVudDoKKyAgICAgICAgIyBTZXQgdGhlIG1vZHVsZSBhcyBhbiBhdHRyaWJ1dGUgb24gaXRzIHBhcmVudC4KKyAgICAgICAgcGFyZW50X21vZHVsZSA9IHN5cy5tb2R1bGVzW3BhcmVudF0KKyAgICAgICAgc2V0YXR0cihwYXJlbnRfbW9kdWxlLCBuYW1lLnJwYXJ0aXRpb24oJy4nKVsyXSwgbW9kdWxlKQorICAgICMgU2V0IF9fcGFja2FnZV9fIGlmIHRoZSBsb2FkZXIgZGlkIG5vdC4KKyAgICBpZiBnZXRhdHRyKG1vZHVsZSwgJ19fcGFja2FnZV9fJywgTm9uZSkgaXMgTm9uZToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbW9kdWxlLl9fcGFja2FnZV9fID0gbW9kdWxlLl9fbmFtZV9fCisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihtb2R1bGUsICdfX3BhdGhfXycpOgorICAgICAgICAgICAgICAgIG1vZHVsZS5fX3BhY2thZ2VfXyA9IG1vZHVsZS5fX3BhY2thZ2VfXy5ycGFydGl0aW9uKCcuJylbMF0KKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICMgU2V0IGxvYWRlciBpZiBuZWVkIGJlLgorICAgIGlmIG5vdCBoYXNhdHRyKG1vZHVsZSwgJ19fbG9hZGVyX18nKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBsb2FkZXIKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcGFzcworICAgIHJldHVybiBtb2R1bGUKKworCitkZWYgX2ZpbmRfYW5kX2xvYWQobmFtZSwgaW1wb3J0Xyk6CisgICAgIiIiRmluZCBhbmQgbG9hZCB0aGUgbW9kdWxlLCBhbmQgcmVsZWFzZSB0aGUgaW1wb3J0IGxvY2suIiIiCisgICAgdHJ5OgorICAgICAgICBsb2NrID0gX2dldF9tb2R1bGVfbG9jayhuYW1lKQorICAgIGZpbmFsbHk6CisgICAgICAgIF9pbXAucmVsZWFzZV9sb2NrKCkKKyAgICBsb2NrLmFjcXVpcmUoKQorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIF9maW5kX2FuZF9sb2FkX3VubG9ja2VkKG5hbWUsIGltcG9ydF8pCisgICAgZmluYWxseToKKyAgICAgICAgbG9jay5yZWxlYXNlKCkKKwogCiBkZWYgX2djZF9pbXBvcnQobmFtZSwgcGFja2FnZT1Ob25lLCBsZXZlbD0wKToKICAgICAiIiJJbXBvcnQgYW5kIHJldHVybiB0aGUgbW9kdWxlIGJhc2VkIG9uIGl0cyBuYW1lLCB0aGUgcGFja2FnZSB0aGUgY2FsbCBpcwogICAgIGJlaW5nIG1hZGUgZnJvbSwgYW5kIHRoZSBsZXZlbCBhZGp1c3RtZW50LgogCiAgICAgVGhpcyBmdW5jdGlvbiByZXByZXNlbnRzIHRoZSBncmVhdGVzdCBjb21tb24gZGVub21pbmF0b3Igb2YgZnVuY3Rpb25hbGl0eQotICAgIGJldHdlZW4gaW1wb3J0X21vZHVsZSBhbmQgX19pbXBvcnRfXy4gVGhpcyBpbmNsdWRlcyBzZXR0dGluZyBfX3BhY2thZ2VfXyBpZgorICAgIGJldHdlZW4gaW1wb3J0X21vZHVsZSBhbmQgX19pbXBvcnRfXy4gVGhpcyBpbmNsdWRlcyBzZXR0aW5nIF9fcGFja2FnZV9fIGlmCiAgICAgdGhlIGxvYWRlciBkaWQgbm90LgogCiAgICAgIiIiCi0gICAgaWYgcGFja2FnZToKLSAgICAgICAgaWYgbm90IGhhc2F0dHIocGFja2FnZSwgJ3JpbmRleCcpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiX19wYWNrYWdlX18gbm90IHNldCB0byBhIHN0cmluZyIpCi0gICAgICAgIGVsaWYgcGFja2FnZSBub3QgaW4gc3lzLm1vZHVsZXM6Ci0gICAgICAgICAgICBtc2cgPSAoIlBhcmVudCBtb2R1bGUgezAhcn0gbm90IGxvYWRlZCwgY2Fubm90IHBlcmZvcm0gcmVsYXRpdmUgIgotICAgICAgICAgICAgICAgICAgICJpbXBvcnQiKQotICAgICAgICAgICAgcmFpc2UgU3lzdGVtRXJyb3IobXNnLmZvcm1hdChwYWNrYWdlKSkKLSAgICBpZiBub3QgbmFtZSBhbmQgbGV2ZWwgPT0gMDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRW1wdHkgbW9kdWxlIG5hbWUiKQorICAgIF9zYW5pdHlfY2hlY2sobmFtZSwgcGFja2FnZSwgbGV2ZWwpCiAgICAgaWYgbGV2ZWwgPiAwOgotICAgICAgICBkb3QgPSBsZW4ocGFja2FnZSkKLSAgICAgICAgZm9yIHggaW4gcmFuZ2UobGV2ZWwsIDEsIC0xKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBkb3QgPSBwYWNrYWdlLnJpbmRleCgnLicsIDAsIGRvdCkKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImF0dGVtcHRlZCByZWxhdGl2ZSBpbXBvcnQgYmV5b25kICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0b3AtbGV2ZWwgcGFja2FnZSIpCi0gICAgICAgIGlmIG5hbWU6Ci0gICAgICAgICAgICBuYW1lID0gInswfS57MX0iLmZvcm1hdChwYWNrYWdlWzpkb3RdLCBuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbmFtZSA9IHBhY2thZ2VbOmRvdF0KLSAgICB3aXRoIF9JbXBvcnRMb2NrQ29udGV4dCgpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBtb2R1bGUgPSBzeXMubW9kdWxlc1tuYW1lXQotICAgICAgICAgICAgaWYgbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICgiaW1wb3J0IG9mIHt9IGhhbHRlZDsgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb25lIGluIHN5cy5tb2R1bGVzIi5mb3JtYXQobmFtZSkpCi0gICAgICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IobWVzc2FnZSkKLSAgICAgICAgICAgIHJldHVybiBtb2R1bGUKLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcGFzcwotICAgICAgICBwYXJlbnQgPSBuYW1lLnJwYXJ0aXRpb24oJy4nKVswXQotICAgICAgICBwYXRoID0gTm9uZQotICAgICAgICBpZiBwYXJlbnQ6Ci0gICAgICAgICAgICBpZiBwYXJlbnQgbm90IGluIHN5cy5tb2R1bGVzOgotICAgICAgICAgICAgICAgIF9nY2RfaW1wb3J0KHBhcmVudCkKLSAgICAgICAgICAgICMgQmFja3dhcmRzLWNvbXBhdGliaWxpdHk7IGJlIG5pY2VyIHRvIHNraXAgdGhlIGRpY3QgbG9va3VwLgotICAgICAgICAgICAgcGFyZW50X21vZHVsZSA9IHN5cy5tb2R1bGVzW3BhcmVudF0KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBwYXRoID0gcGFyZW50X21vZHVsZS5fX3BhdGhfXwotICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgICAgIG1zZyA9IChfRVJSX01TRyArICc7IHt9IGlzIG5vdCBhIHBhY2thZ2UnKS5mb3JtYXQobmFtZSwgcGFyZW50KQotICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKG1zZykKLSAgICAgICAgbWV0YV9wYXRoID0gc3lzLm1ldGFfcGF0aCArIF9JTVBMSUNJVF9NRVRBX1BBVEgKLSAgICAgICAgZm9yIGZpbmRlciBpbiBtZXRhX3BhdGg6Ci0gICAgICAgICAgICBsb2FkZXIgPSBmaW5kZXIuZmluZF9tb2R1bGUobmFtZSwgcGF0aCkKLSAgICAgICAgICAgIGlmIGxvYWRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAjIFRoZSBwYXJlbnQgaW1wb3J0IG1heSBoYXZlIGFscmVhZHkgaW1wb3J0ZWQgdGhpcyBtb2R1bGUuCi0gICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc3lzLm1vZHVsZXM6Ci0gICAgICAgICAgICAgICAgICAgIGxvYWRlci5sb2FkX21vZHVsZShuYW1lKQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcihfRVJSX01TRy5mb3JtYXQobmFtZSkpCi0gICAgICAgICMgQmFja3dhcmRzLWNvbXBhdGliaWxpdHk7IGJlIG5pY2VyIHRvIHNraXAgdGhlIGRpY3QgbG9va3VwLgotICAgICAgICBtb2R1bGUgPSBzeXMubW9kdWxlc1tuYW1lXQotICAgICAgICBpZiBwYXJlbnQ6Ci0gICAgICAgICAgICAjIFNldCB0aGUgbW9kdWxlIGFzIGFuIGF0dHJpYnV0ZSBvbiBpdHMgcGFyZW50LgotICAgICAgICAgICAgc2V0YXR0cihwYXJlbnRfbW9kdWxlLCBuYW1lLnJwYXJ0aXRpb24oJy4nKVsyXSwgbW9kdWxlKQotICAgICAgICAjIFNldCBfX3BhY2thZ2VfXyBpZiB0aGUgbG9hZGVyIGRpZCBub3QuCi0gICAgICAgIGlmIG5vdCBoYXNhdHRyKG1vZHVsZSwgJ19fcGFja2FnZV9fJykgb3IgbW9kdWxlLl9fcGFja2FnZV9fIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIFdhdGNoIG91dCBmb3Igd2hhdCBjb21lcyBvdXQgb2Ygc3lzLm1vZHVsZXMgdG8gbm90IGJlIGEgbW9kdWxlLAotICAgICAgICAgICAgIyBlLmcuIGFuIGludC4KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBtb2R1bGUuX19wYWNrYWdlX18gPSBtb2R1bGUuX19uYW1lX18KLSAgICAgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihtb2R1bGUsICdfX3BhdGhfXycpOgotICAgICAgICAgICAgICAgICAgICBtb2R1bGUuX19wYWNrYWdlX18gPSBtb2R1bGUuX19wYWNrYWdlX18ucnBhcnRpdGlvbignLicpWzBdCi0gICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICByZXR1cm4gbW9kdWxlCisgICAgICAgIG5hbWUgPSBfcmVzb2x2ZV9uYW1lKG5hbWUsIHBhY2thZ2UsIGxldmVsKQorICAgIF9pbXAuYWNxdWlyZV9sb2NrKCkKKyAgICBpZiBuYW1lIG5vdCBpbiBzeXMubW9kdWxlczoKKyAgICAgICAgcmV0dXJuIF9maW5kX2FuZF9sb2FkKG5hbWUsIF9nY2RfaW1wb3J0KQorICAgIG1vZHVsZSA9IHN5cy5tb2R1bGVzW25hbWVdCisgICAgaWYgbW9kdWxlIGlzIE5vbmU6CisgICAgICAgIF9pbXAucmVsZWFzZV9sb2NrKCkKKyAgICAgICAgbWVzc2FnZSA9ICgiaW1wb3J0IG9mIHt9IGhhbHRlZDsgIgorICAgICAgICAgICAgICAgICAgICAiTm9uZSBpbiBzeXMubW9kdWxlcyIuZm9ybWF0KG5hbWUpKQorICAgICAgICByYWlzZSBJbXBvcnRFcnJvcihtZXNzYWdlLCBuYW1lPW5hbWUpCisgICAgX2xvY2tfdW5sb2NrX21vZHVsZShuYW1lKQorICAgIHJldHVybiBtb2R1bGUKKworCitkZWYgX2hhbmRsZV9mcm9tbGlzdChtb2R1bGUsIGZyb21saXN0LCBpbXBvcnRfKToKKyAgICAiIiJGaWd1cmUgb3V0IHdoYXQgX19pbXBvcnRfXyBzaG91bGQgcmV0dXJuLgorCisgICAgVGhlIGltcG9ydF8gcGFyYW1ldGVyIGlzIGEgY2FsbGFibGUgd2hpY2ggdGFrZXMgdGhlIG5hbWUgb2YgbW9kdWxlIHRvCisgICAgaW1wb3J0LiBJdCBpcyByZXF1aXJlZCB0byBkZWNvdXBsZSB0aGUgZnVuY3Rpb24gZnJvbSBhc3N1bWluZyBpbXBvcnRsaWIncworICAgIGltcG9ydCBpbXBsZW1lbnRhdGlvbiBpcyBkZXNpcmVkLgorCisgICAgIiIiCisgICAgIyBUaGUgaGVsbCB0aGF0IGlzIGZyb21saXN0IC4uLgorICAgICMgSWYgYSBwYWNrYWdlIHdhcyBpbXBvcnRlZCwgdHJ5IHRvIGltcG9ydCBzdHVmZiBmcm9tIGZyb21saXN0LgorICAgIGlmIGhhc2F0dHIobW9kdWxlLCAnX19wYXRoX18nKToKKyAgICAgICAgaWYgJyonIGluIGZyb21saXN0IGFuZCBoYXNhdHRyKG1vZHVsZSwgJ19fYWxsX18nKToKKyAgICAgICAgICAgIGZyb21saXN0ID0gbGlzdChmcm9tbGlzdCkKKyAgICAgICAgICAgIGZyb21saXN0LnJlbW92ZSgnKicpCisgICAgICAgICAgICBmcm9tbGlzdC5leHRlbmQobW9kdWxlLl9fYWxsX18pCisgICAgICAgIGZvciB4IGluIGZyb21saXN0OgorICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIobW9kdWxlLCB4KToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGltcG9ydF8oJ3t9Lnt9Jy5mb3JtYXQobW9kdWxlLl9fbmFtZV9fLCB4KSkKKyAgICAgICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICByZXR1cm4gbW9kdWxlCisKKworZGVmIF9jYWxjX19fcGFja2FnZV9fKGdsb2JhbHMpOgorICAgICIiIkNhbGN1bGF0ZSB3aGF0IF9fcGFja2FnZV9fIHNob3VsZCBiZS4KKworICAgIF9fcGFja2FnZV9fIGlzIG5vdCBndWFyYW50ZWVkIHRvIGJlIGRlZmluZWQgb3IgY291bGQgYmUgc2V0IHRvIE5vbmUKKyAgICB0byByZXByZXNlbnQgdGhhdCBpdHMgcHJvcGVyIHZhbHVlIGlzIHVua25vd24uCisKKyAgICAiIiIKKyAgICBwYWNrYWdlID0gZ2xvYmFscy5nZXQoJ19fcGFja2FnZV9fJykKKyAgICBpZiBwYWNrYWdlIGlzIE5vbmU6CisgICAgICAgIHBhY2thZ2UgPSBnbG9iYWxzWydfX25hbWVfXyddCisgICAgICAgIGlmICdfX3BhdGhfXycgbm90IGluIGdsb2JhbHM6CisgICAgICAgICAgICBwYWNrYWdlID0gcGFja2FnZS5ycGFydGl0aW9uKCcuJylbMF0KKyAgICByZXR1cm4gcGFja2FnZQogCiAKIGRlZiBfX2ltcG9ydF9fKG5hbWUsIGdsb2JhbHM9e30sIGxvY2Fscz17fSwgZnJvbWxpc3Q9W10sIGxldmVsPTApOgpAQCAtODUxLDQwICsxMzk3LDk5IEBACiAgICAgaW1wb3J0IChlLmcuIGBgZnJvbSAuLnBrZyBpbXBvcnQgbW9kYGAgd291bGQgaGF2ZSBhICdsZXZlbCcgb2YgMikuCiAKICAgICAiIiIKLSAgICBpZiBub3QgaGFzYXR0cihuYW1lLCAncnBhcnRpdGlvbicpOgotICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm1vZHVsZSBuYW1lIG11c3QgYmUgc3RyLCBub3Qge30iLmZvcm1hdCh0eXBlKG5hbWUpKSkKICAgICBpZiBsZXZlbCA9PSAwOgogICAgICAgICBtb2R1bGUgPSBfZ2NkX2ltcG9ydChuYW1lKQogICAgIGVsc2U6Ci0gICAgICAgICMgX19wYWNrYWdlX18gaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgZGVmaW5lZCBvciBjb3VsZCBiZSBzZXQgdG8gTm9uZQotICAgICAgICAjIHRvIHJlcHJlc2VudCB0aGF0IGl0J3MgcHJvcGVyIHZhbHVlIGlzIHVua25vd24KLSAgICAgICAgcGFja2FnZSA9IGdsb2JhbHMuZ2V0KCdfX3BhY2thZ2VfXycpCi0gICAgICAgIGlmIHBhY2thZ2UgaXMgTm9uZToKLSAgICAgICAgICAgIHBhY2thZ2UgPSBnbG9iYWxzWydfX25hbWVfXyddCi0gICAgICAgICAgICBpZiAnX19wYXRoX18nIG5vdCBpbiBnbG9iYWxzOgotICAgICAgICAgICAgICAgIHBhY2thZ2UgPSBwYWNrYWdlLnJwYXJ0aXRpb24oJy4nKVswXQorICAgICAgICBwYWNrYWdlID0gX2NhbGNfX19wYWNrYWdlX18oZ2xvYmFscykKICAgICAgICAgbW9kdWxlID0gX2djZF9pbXBvcnQobmFtZSwgcGFja2FnZSwgbGV2ZWwpCi0gICAgIyBUaGUgaGVsbCB0aGF0IGlzIGZyb21saXN0IC4uLgogICAgIGlmIG5vdCBmcm9tbGlzdDoKICAgICAgICAgIyBSZXR1cm4gdXAgdG8gdGhlIGZpcnN0IGRvdCBpbiAnbmFtZScuIFRoaXMgaXMgY29tcGxpY2F0ZWQgYnkgdGhlIGZhY3QKICAgICAgICAgIyB0aGF0ICduYW1lJyBtYXkgYmUgcmVsYXRpdmUuCiAgICAgICAgIGlmIGxldmVsID09IDA6Ci0gICAgICAgICAgICByZXR1cm4gc3lzLm1vZHVsZXNbbmFtZS5wYXJ0aXRpb24oJy4nKVswXV0KKyAgICAgICAgICAgIHJldHVybiBfZ2NkX2ltcG9ydChuYW1lLnBhcnRpdGlvbignLicpWzBdKQogICAgICAgICBlbGlmIG5vdCBuYW1lOgogICAgICAgICAgICAgcmV0dXJuIG1vZHVsZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgY3V0X29mZiA9IGxlbihuYW1lKSAtIGxlbihuYW1lLnBhcnRpdGlvbignLicpWzBdKQotICAgICAgICAgICAgcmV0dXJuIHN5cy5tb2R1bGVzW21vZHVsZS5fX25hbWVfX1s6LWN1dF9vZmZdXQorICAgICAgICAgICAgcmV0dXJuIHN5cy5tb2R1bGVzW21vZHVsZS5fX25hbWVfX1s6bGVuKG1vZHVsZS5fX25hbWVfXyktY3V0X29mZl1dCiAgICAgZWxzZToKLSAgICAgICAgIyBJZiBhIHBhY2thZ2Ugd2FzIGltcG9ydGVkLCB0cnkgdG8gaW1wb3J0IHN0dWZmIGZyb20gZnJvbWxpc3QuCi0gICAgICAgIGlmIGhhc2F0dHIobW9kdWxlLCAnX19wYXRoX18nKToKLSAgICAgICAgICAgIGlmICcqJyBpbiBmcm9tbGlzdCBhbmQgaGFzYXR0cihtb2R1bGUsICdfX2FsbF9fJyk6Ci0gICAgICAgICAgICAgICAgZnJvbWxpc3QgPSBsaXN0KGZyb21saXN0KQotICAgICAgICAgICAgICAgIGZyb21saXN0LnJlbW92ZSgnKicpCi0gICAgICAgICAgICAgICAgZnJvbWxpc3QuZXh0ZW5kKG1vZHVsZS5fX2FsbF9fKQotICAgICAgICAgICAgZm9yIHggaW4gKHkgZm9yIHkgaW4gZnJvbWxpc3QgaWYgbm90IGhhc2F0dHIobW9kdWxlLHkpKToKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIF9nY2RfaW1wb3J0KCd7MH0uezF9Jy5mb3JtYXQobW9kdWxlLl9fbmFtZV9fLCB4KSkKLSAgICAgICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgcmV0dXJuIG1vZHVsZQorICAgICAgICByZXR1cm4gX2hhbmRsZV9mcm9tbGlzdChtb2R1bGUsIGZyb21saXN0LCBfZ2NkX2ltcG9ydCkKKworCitfTUFHSUNfTlVNQkVSID0gTm9uZSAgIyBTZXQgaW4gX3NldHVwKCkKK19UQUcgPSBOb25lICAjIFNldCBpbiBfc2V0dXAoKQorCisKK2RlZiBfc2V0dXAoc3lzX21vZHVsZSwgX2ltcF9tb2R1bGUpOgorICAgICIiIlNldHVwIGltcG9ydGxpYiBieSBpbXBvcnRpbmcgbmVlZGVkIGJ1aWx0LWluIG1vZHVsZXMgYW5kIGluamVjdGluZyB0aGVtCisgICAgaW50byB0aGUgZ2xvYmFsIG5hbWVzcGFjZS4KKworICAgIEFzIHN5cyBpcyBuZWVkZWQgZm9yIHN5cy5tb2R1bGVzIGFjY2VzcyBhbmQgX2ltcCBpcyBuZWVkZWQgdG8gbG9hZCBidWlsdC1pbgorICAgIG1vZHVsZXMsIHRob3NlIHR3byBtb2R1bGVzIG11c3QgYmUgZXhwbGljaXRseSBwYXNzZWQgaW4uCisKKyAgICAiIiIKKyAgICBnbG9iYWwgX2ltcCwgc3lzCisgICAgX2ltcCA9IF9pbXBfbW9kdWxlCisgICAgc3lzID0gc3lzX21vZHVsZQorCisgICAgZm9yIG1vZHVsZSBpbiAoX2ltcCwgc3lzKToKKyAgICAgICAgaWYgbm90IGhhc2F0dHIobW9kdWxlLCAnX19sb2FkZXJfXycpOgorICAgICAgICAgICAgbW9kdWxlLl9fbG9hZGVyX18gPSBCdWlsdGluSW1wb3J0ZXIKKworICAgIHNlbGZfbW9kdWxlID0gc3lzLm1vZHVsZXNbX19uYW1lX19dCisgICAgZm9yIGJ1aWx0aW5fbmFtZSBpbiAoJ19pbycsICdfd2FybmluZ3MnLCAnYnVpbHRpbnMnLCAnbWFyc2hhbCcpOgorICAgICAgICBpZiBidWlsdGluX25hbWUgbm90IGluIHN5cy5tb2R1bGVzOgorICAgICAgICAgICAgYnVpbHRpbl9tb2R1bGUgPSBCdWlsdGluSW1wb3J0ZXIubG9hZF9tb2R1bGUoYnVpbHRpbl9uYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYnVpbHRpbl9tb2R1bGUgPSBzeXMubW9kdWxlc1tidWlsdGluX25hbWVdCisgICAgICAgIHNldGF0dHIoc2VsZl9tb2R1bGUsIGJ1aWx0aW5fbmFtZSwgYnVpbHRpbl9tb2R1bGUpCisKKyAgICBvc19kZXRhaWxzID0gKCdwb3NpeCcsIFsnLyddKSwgKCdudCcsIFsnXFwnLCAnLyddKSwgKCdvczInLCBbJ1xcJywgJy8nXSkKKyAgICBmb3IgYnVpbHRpbl9vcywgcGF0aF9zZXBhcmF0b3JzIGluIG9zX2RldGFpbHM6CisgICAgICAgICMgQXNzdW1wdGlvbiBtYWRlIGluIF9wYXRoX2pvaW4oKQorICAgICAgICBhc3NlcnQgYWxsKGxlbihzZXApID09IDEgZm9yIHNlcCBpbiBwYXRoX3NlcGFyYXRvcnMpCisgICAgICAgIHBhdGhfc2VwID0gcGF0aF9zZXBhcmF0b3JzWzBdCisgICAgICAgIGlmIGJ1aWx0aW5fb3MgaW4gc3lzLm1vZHVsZXM6CisgICAgICAgICAgICBvc19tb2R1bGUgPSBzeXMubW9kdWxlc1tidWlsdGluX29zXQorICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBvc19tb2R1bGUgPSBCdWlsdGluSW1wb3J0ZXIubG9hZF9tb2R1bGUoYnVpbHRpbl9vcykKKyAgICAgICAgICAgICAgICAjIFRPRE86IHJpcCBvdXQgb3MyIGNvZGUgYWZ0ZXIgMy4zIGlzIHJlbGVhc2VkIGFzIHBlciBQRVAgMTEKKyAgICAgICAgICAgICAgICBpZiBidWlsdGluX29zID09ICdvczInIGFuZCAnRU1YIEdDQycgaW4gc3lzLnZlcnNpb246CisgICAgICAgICAgICAgICAgICAgIHBhdGhfc2VwID0gcGF0aF9zZXBhcmF0b3JzWzFdCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCdpbXBvcnRsaWIgcmVxdWlyZXMgcG9zaXggb3IgbnQnKQorCisgICAgdHJ5OgorICAgICAgICB0aHJlYWRfbW9kdWxlID0gQnVpbHRpbkltcG9ydGVyLmxvYWRfbW9kdWxlKCdfdGhyZWFkJykKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgICMgUHl0aG9uIHdhcyBidWlsdCB3aXRob3V0IHRocmVhZHMKKyAgICAgICAgdGhyZWFkX21vZHVsZSA9IE5vbmUKKyAgICB3ZWFrcmVmX21vZHVsZSA9IEJ1aWx0aW5JbXBvcnRlci5sb2FkX21vZHVsZSgnX3dlYWtyZWYnKQorCisgICAgc2V0YXR0cihzZWxmX21vZHVsZSwgJ19vcycsIG9zX21vZHVsZSkKKyAgICBzZXRhdHRyKHNlbGZfbW9kdWxlLCAnX3RocmVhZCcsIHRocmVhZF9tb2R1bGUpCisgICAgc2V0YXR0cihzZWxmX21vZHVsZSwgJ193ZWFrcmVmJywgd2Vha3JlZl9tb2R1bGUpCisgICAgc2V0YXR0cihzZWxmX21vZHVsZSwgJ3BhdGhfc2VwJywgcGF0aF9zZXApCisgICAgc2V0YXR0cihzZWxmX21vZHVsZSwgJ3BhdGhfc2VwYXJhdG9ycycsIHNldChwYXRoX3NlcGFyYXRvcnMpKQorICAgICMgQ29uc3RhbnRzCisgICAgc2V0YXR0cihzZWxmX21vZHVsZSwgJ19yZWxheF9jYXNlJywgX21ha2VfcmVsYXhfY2FzZSgpKQorICAgIHNldGF0dHIoc2VsZl9tb2R1bGUsICdfTUFHSUNfTlVNQkVSJywgX2ltcF9tb2R1bGUuZ2V0X21hZ2ljKCkpCisgICAgc2V0YXR0cihzZWxmX21vZHVsZSwgJ19UQUcnLCBzeXMuaW1wbGVtZW50YXRpb24uY2FjaGVfdGFnKQorICAgIGlmIGJ1aWx0aW5fb3MgPT0gJ250JzoKKyAgICAgICAgU09VUkNFX1NVRkZJWEVTLmFwcGVuZCgnLnB5dycpCisKKworZGVmIF9pbnN0YWxsKHN5c19tb2R1bGUsIF9pbXBfbW9kdWxlKToKKyAgICAiIiJJbnN0YWxsIGltcG9ydGxpYiBhcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgaW1wb3J0LiIiIgorICAgIF9zZXR1cChzeXNfbW9kdWxlLCBfaW1wX21vZHVsZSkKKyAgICBleHRlbnNpb25zID0gRXh0ZW5zaW9uRmlsZUxvYWRlciwgX2ltcF9tb2R1bGUuZXh0ZW5zaW9uX3N1ZmZpeGVzKCksIEZhbHNlCisgICAgc291cmNlID0gU291cmNlRmlsZUxvYWRlciwgU09VUkNFX1NVRkZJWEVTLCBUcnVlCisgICAgYnl0ZWNvZGUgPSBTb3VyY2VsZXNzRmlsZUxvYWRlciwgQllURUNPREVfU1VGRklYRVMsIFRydWUKKyAgICBzdXBwb3J0ZWRfbG9hZGVycyA9IFtleHRlbnNpb25zLCBzb3VyY2UsIGJ5dGVjb2RlXQorICAgIHN5cy5wYXRoX2hvb2tzLmV4dGVuZChbRmlsZUZpbmRlci5wYXRoX2hvb2soKnN1cHBvcnRlZF9sb2FkZXJzKV0pCisgICAgc3lzLm1ldGFfcGF0aC5leHRlbmQoW0J1aWx0aW5JbXBvcnRlciwgRnJvemVuSW1wb3J0ZXIsIFBhdGhGaW5kZXJdKQpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi9hYmMucHkgYi9MaWIvaW1wb3J0bGliL2FiYy5weQppbmRleCBmYTM0M2Y4Li44ZDY1OTA3IDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL2FiYy5weQorKysgYi9MaWIvaW1wb3J0bGliL2FiYy5weQpAQCAtMSwxOCArMSwyOCBAQAogIiIiQWJzdHJhY3QgYmFzZSBjbGFzc2VzIHJlbGF0ZWQgdG8gaW1wb3J0LiIiIgogZnJvbSAuIGltcG9ydCBfYm9vdHN0cmFwCiBmcm9tIC4gaW1wb3J0IG1hY2hpbmVyeQotZnJvbSAuIGltcG9ydCB1dGlsCit0cnk6CisgICAgaW1wb3J0IF9mcm96ZW5faW1wb3J0bGliCitleGNlcHQgSW1wb3J0RXJyb3IgYXMgZXhjOgorICAgIGlmIGV4Yy5uYW1lICE9ICdfZnJvemVuX2ltcG9ydGxpYic6CisgICAgICAgIHJhaXNlCisgICAgX2Zyb3plbl9pbXBvcnRsaWIgPSBOb25lCiBpbXBvcnQgYWJjCiBpbXBvcnQgaW1wCi1pbXBvcnQgaW8KIGltcG9ydCBtYXJzaGFsCi1pbXBvcnQgb3MucGF0aAogaW1wb3J0IHN5cwogaW1wb3J0IHRva2VuaXplCi1pbXBvcnQgdHlwZXMKIGltcG9ydCB3YXJuaW5ncwogCiAKK2RlZiBfcmVnaXN0ZXIoYWJzdHJhY3RfY2xzLCAqY2xhc3Nlcyk6CisgICAgZm9yIGNscyBpbiBjbGFzc2VzOgorICAgICAgICBhYnN0cmFjdF9jbHMucmVnaXN0ZXIoY2xzKQorICAgICAgICBpZiBfZnJvemVuX2ltcG9ydGxpYiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZyb3plbl9jbHMgPSBnZXRhdHRyKF9mcm96ZW5faW1wb3J0bGliLCBjbHMuX19uYW1lX18pCisgICAgICAgICAgICBhYnN0cmFjdF9jbHMucmVnaXN0ZXIoZnJvemVuX2NscykKKworCiBjbGFzcyBMb2FkZXIobWV0YWNsYXNzPWFiYy5BQkNNZXRhKToKIAogICAgICIiIkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGltcG9ydCBsb2FkZXJzLiIiIgpAQCAtMzYsOSArNDYsOCBAQAogICAgICAgICAiIiIKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi1GaW5kZXIucmVnaXN0ZXIobWFjaGluZXJ5LkJ1aWx0aW5JbXBvcnRlcikKLUZpbmRlci5yZWdpc3RlcihtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIpCi1GaW5kZXIucmVnaXN0ZXIobWFjaGluZXJ5LlBhdGhGaW5kZXIpCitfcmVnaXN0ZXIoRmluZGVyLCBtYWNoaW5lcnkuQnVpbHRpbkltcG9ydGVyLCBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIsCisgICAgICAgICAgbWFjaGluZXJ5LlBhdGhGaW5kZXIsIG1hY2hpbmVyeS5GaWxlRmluZGVyKQogCiAKIGNsYXNzIFJlc291cmNlTG9hZGVyKExvYWRlcik6CkBAIC04NCw4ICs5Myw4IEBACiAgICAgICAgIG1vZHVsZS4gIFRoZSBmdWxsbmFtZSBpcyBhIHN0ci4gIFJldHVybnMgYSBzdHIuIiIiCiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotSW5zcGVjdExvYWRlci5yZWdpc3RlcihtYWNoaW5lcnkuQnVpbHRpbkltcG9ydGVyKQotSW5zcGVjdExvYWRlci5yZWdpc3RlcihtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIpCitfcmVnaXN0ZXIoSW5zcGVjdExvYWRlciwgbWFjaGluZXJ5LkJ1aWx0aW5JbXBvcnRlciwgbWFjaGluZXJ5LkZyb3plbkltcG9ydGVyLAorICAgICAgICAgICAgbWFjaGluZXJ5LkV4dGVuc2lvbkZpbGVMb2FkZXIpCiAKIAogY2xhc3MgRXhlY3V0aW9uTG9hZGVyKEluc3BlY3RMb2FkZXIpOgpAQCAtMTA0LDYgKzExMywxNSBAQAogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKIAorY2xhc3MgRmlsZUxvYWRlcihfYm9vdHN0cmFwLkZpbGVMb2FkZXIsIFJlc291cmNlTG9hZGVyLCBFeGVjdXRpb25Mb2FkZXIpOgorCisgICAgIiIiQWJzdHJhY3QgYmFzZSBjbGFzcyBwYXJ0aWFsbHkgaW1wbGVtZW50aW5nIHRoZSBSZXNvdXJjZUxvYWRlciBhbmQKKyAgICBFeGVjdXRpb25Mb2FkZXIgQUJDcy4iIiIKKworX3JlZ2lzdGVyKEZpbGVMb2FkZXIsIG1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyLAorICAgICAgICAgICAgbWFjaGluZXJ5LlNvdXJjZWxlc3NGaWxlTG9hZGVyKQorCisKIGNsYXNzIFNvdXJjZUxvYWRlcihfYm9vdHN0cmFwLlNvdXJjZUxvYWRlciwgUmVzb3VyY2VMb2FkZXIsIEV4ZWN1dGlvbkxvYWRlcik6CiAKICAgICAiIiJBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBsb2FkaW5nIHNvdXJjZSBjb2RlIChhbmQgb3B0aW9uYWxseSBhbnkKQEAgLTEyMyw3ICsxNDEsMjAgQEAKIAogICAgIGRlZiBwYXRoX210aW1lKHNlbGYsIHBhdGgpOgogICAgICAgICAiIiJSZXR1cm4gdGhlIChpbnQpIG1vZGlmaWNhdGlvbiB0aW1lIGZvciB0aGUgcGF0aCAoc3RyKS4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorICAgICAgICBpZiBzZWxmLnBhdGhfc3RhdHMuX19mdW5jX18gaXMgU291cmNlTG9hZGVyLnBhdGhfc3RhdHM6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAgIHJldHVybiBpbnQoc2VsZi5wYXRoX3N0YXRzKHBhdGgpWydtdGltZSddKQorCisgICAgZGVmIHBhdGhfc3RhdHMoc2VsZiwgcGF0aCk6CisgICAgICAgICIiIlJldHVybiBhIG1ldGFkYXRhIGRpY3QgZm9yIHRoZSBzb3VyY2UgcG9pbnRlZCB0byBieSB0aGUgcGF0aCAoc3RyKS4KKyAgICAgICAgUG9zc2libGUga2V5czoKKyAgICAgICAgLSAnbXRpbWUnIChtYW5kYXRvcnkpIGlzIHRoZSBudW1lcmljIHRpbWVzdGFtcCBvZiBsYXN0IHNvdXJjZQorICAgICAgICAgIGNvZGUgbW9kaWZpY2F0aW9uOworICAgICAgICAtICdzaXplJyAob3B0aW9uYWwpIGlzIHRoZSBzaXplIGluIGJ5dGVzIG9mIHRoZSBzb3VyY2UgY29kZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYucGF0aF9tdGltZS5fX2Z1bmNfXyBpcyBTb3VyY2VMb2FkZXIucGF0aF9tdGltZToKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAgICAgICAgcmV0dXJuIHsnbXRpbWUnOiBzZWxmLnBhdGhfbXRpbWUocGF0aCl9CiAKICAgICBkZWYgc2V0X2RhdGEoc2VsZiwgcGF0aCwgZGF0YSk6CiAgICAgICAgICIiIldyaXRlIHRoZSBieXRlcyB0byB0aGUgcGF0aCAoaWYgcG9zc2libGUpLgpAQCAtMTM3LDYgKzE2OCw3IEBACiAgICAgICAgICIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKK19yZWdpc3RlcihTb3VyY2VMb2FkZXIsIG1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyKQogCiBjbGFzcyBQeUxvYWRlcihTb3VyY2VMb2FkZXIpOgogCkBAIC0xOTUsMTAgKzIyNywxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2UgU291cmNlTG9hZGVyIGluc3RlYWQuICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2VlIHRoZSBpbXBvcnRsaWIgZG9jdW1lbnRhdGlvbiBvbiBob3cgdG8gYmUgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21wYXRpYmxlIHdpdGggUHl0aG9uIDMuMSBvbndhcmRzLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nKQogICAgICAgICBwYXRoID0gc2VsZi5zb3VyY2VfcGF0aChmdWxsbmFtZSkKICAgICAgICAgaWYgcGF0aCBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IKKyAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKG5hbWU9ZnVsbG5hbWUpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gcGF0aAogCkBAIC0yMjYsNyArMjU4LDcgQEAKICAgICAgICAgaWYgcGF0aCBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHJldHVybiBwYXRoCiAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJubyBzb3VyY2Ugb3IgYnl0ZWNvZGUgcGF0aCBhdmFpbGFibGUgZm9yICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiezAhcn0iLmZvcm1hdChmdWxsbmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInswIXJ9Ii5mb3JtYXQoZnVsbG5hbWUpLCBuYW1lPWZ1bGxuYW1lKQogCiAgICAgZGVmIGdldF9jb2RlKHNlbGYsIGZ1bGxuYW1lKToKICAgICAgICAgIiIiR2V0IGEgY29kZSBvYmplY3QgZnJvbSBzb3VyY2Ugb3IgYnl0ZWNvZGUuIiIiCkBAIC0yMzQsNyArMjY2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVtb3ZhbCBpbiBQeXRob24gMy40OyB1c2UgU291cmNlTG9hZGVyIGluc3RlYWQuICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSWYgUHl0aG9uIDMuMSBjb21wYXRpYmlsaXR5IGlzIHJlcXVpcmVkLCBzZWUgdGhlICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGF0ZXN0IGRvY3VtZW50YXRpb24gZm9yIFB5TG9hZGVyLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nKQogICAgICAgICBzb3VyY2VfdGltZXN0YW1wID0gc2VsZi5zb3VyY2VfbXRpbWUoZnVsbG5hbWUpCiAgICAgICAgICMgVHJ5IHRvIHVzZSBieXRlY29kZSBpZiBpdCBpcyBhdmFpbGFibGUuCiAgICAgICAgIGJ5dGVjb2RlX3BhdGggPSBzZWxmLmJ5dGVjb2RlX3BhdGgoZnVsbG5hbWUpCkBAIC0yNDMsMjAgKzI3NSwzMCBAQAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG1hZ2ljID0gZGF0YVs6NF0KICAgICAgICAgICAgICAgICBpZiBsZW4obWFnaWMpIDwgNDoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoImJhZCBtYWdpYyBudW1iZXIgaW4ge30iLmZvcm1hdChmdWxsbmFtZSkpCisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgImJhZCBtYWdpYyBudW1iZXIgaW4ge30iLmZvcm1hdChmdWxsbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPWZ1bGxuYW1lLCBwYXRoPWJ5dGVjb2RlX3BhdGgpCiAgICAgICAgICAgICAgICAgcmF3X3RpbWVzdGFtcCA9IGRhdGFbNDo4XQogICAgICAgICAgICAgICAgIGlmIGxlbihyYXdfdGltZXN0YW1wKSA8IDQ6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yKCJiYWQgdGltZXN0YW1wIGluIHt9Ii5mb3JtYXQoZnVsbG5hbWUpKQotICAgICAgICAgICAgICAgIHB5Y190aW1lc3RhbXAgPSBtYXJzaGFsLl9yX2xvbmcocmF3X3RpbWVzdGFtcCkKLSAgICAgICAgICAgICAgICBieXRlY29kZSA9IGRhdGFbODpdCisgICAgICAgICAgICAgICAgcHljX3RpbWVzdGFtcCA9IF9ib290c3RyYXAuX3JfbG9uZyhyYXdfdGltZXN0YW1wKQorICAgICAgICAgICAgICAgIHJhd19zb3VyY2Vfc2l6ZSA9IGRhdGFbODoxMl0KKyAgICAgICAgICAgICAgICBpZiBsZW4ocmF3X3NvdXJjZV9zaXplKSAhPSA0OgorICAgICAgICAgICAgICAgICAgICByYWlzZSBFT0ZFcnJvcigiYmFkIGZpbGUgc2l6ZSBpbiB7fSIuZm9ybWF0KGZ1bGxuYW1lKSkKKyAgICAgICAgICAgICAgICAjIFNvdXJjZSBzaXplIGlzIHVudXNlZCBhcyB0aGUgQUJDIGRvZXMgbm90IHByb3ZpZGUgYSB3YXkgdG8KKyAgICAgICAgICAgICAgICAjIGdldCB0aGUgc2l6ZSBvZiB0aGUgc291cmNlIGFoZWFkIG9mIHJlYWRpbmcgaXQuCisgICAgICAgICAgICAgICAgYnl0ZWNvZGUgPSBkYXRhWzEyOl0KICAgICAgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBtYWdpYyBudW1iZXIgaXMgdmFsaWQuCiAgICAgICAgICAgICAgICAgaWYgaW1wLmdldF9tYWdpYygpICE9IG1hZ2ljOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigiYmFkIG1hZ2ljIG51bWJlciBpbiB7fSIuZm9ybWF0KGZ1bGxuYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAiYmFkIG1hZ2ljIG51bWJlciBpbiB7fSIuZm9ybWF0KGZ1bGxuYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ZnVsbG5hbWUsIHBhdGg9Ynl0ZWNvZGVfcGF0aCkKICAgICAgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBieXRlY29kZSBpcyBub3Qgc3RhbGUgKG9ubHkgbWF0dGVycyB3aGVuCiAgICAgICAgICAgICAgICAgIyB0aGVyZSBpcyBzb3VyY2UgdG8gZmFsbCBiYWNrIG9uLgogICAgICAgICAgICAgICAgIGlmIHNvdXJjZV90aW1lc3RhbXA6CiAgICAgICAgICAgICAgICAgICAgIGlmIHB5Y190aW1lc3RhbXAgPCBzb3VyY2VfdGltZXN0YW1wOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IoImJ5dGVjb2RlIGlzIHN0YWxlIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJieXRlY29kZSBpcyBzdGFsZSIsIG5hbWU9ZnVsbG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPWJ5dGVjb2RlX3BhdGgpCiAgICAgICAgICAgICBleGNlcHQgKEltcG9ydEVycm9yLCBFT0ZFcnJvcik6CiAgICAgICAgICAgICAgICAgIyBJZiBzb3VyY2UgaXMgYXZhaWxhYmxlIGdpdmUgaXQgYSBzaG90LgogICAgICAgICAgICAgICAgIGlmIHNvdXJjZV90aW1lc3RhbXAgaXMgbm90IE5vbmU6CkBAIC0yNjgsMTggKzMxMCwyMCBAQAogICAgICAgICAgICAgICAgIHJldHVybiBtYXJzaGFsLmxvYWRzKGJ5dGVjb2RlKQogICAgICAgICBlbGlmIHNvdXJjZV90aW1lc3RhbXAgaXMgTm9uZToKICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yKCJubyBzb3VyY2Ugb3IgYnl0ZWNvZGUgYXZhaWxhYmxlIHRvIGNyZWF0ZSBjb2RlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9iamVjdCBmb3IgezAhcn0iLmZvcm1hdChmdWxsbmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2JqZWN0IGZvciB7MCFyfSIuZm9ybWF0KGZ1bGxuYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9ZnVsbG5hbWUpCiAgICAgICAgICMgVXNlIHRoZSBzb3VyY2UuCiAgICAgICAgIHNvdXJjZV9wYXRoID0gc2VsZi5zb3VyY2VfcGF0aChmdWxsbmFtZSkKICAgICAgICAgaWYgc291cmNlX3BhdGggaXMgTm9uZToKICAgICAgICAgICAgIG1lc3NhZ2UgPSAiYSBzb3VyY2UgcGF0aCBtdXN0IGV4aXN0IHRvIGxvYWQgezB9Ii5mb3JtYXQoZnVsbG5hbWUpCi0gICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcihtZXNzYWdlKQorICAgICAgICAgICAgcmFpc2UgSW1wb3J0RXJyb3IobWVzc2FnZSwgbmFtZT1mdWxsbmFtZSkKICAgICAgICAgc291cmNlID0gc2VsZi5nZXRfZGF0YShzb3VyY2VfcGF0aCkKICAgICAgICAgY29kZV9vYmplY3QgPSBjb21waWxlKHNvdXJjZSwgc291cmNlX3BhdGgsICdleGVjJywgZG9udF9pbmhlcml0PVRydWUpCiAgICAgICAgICMgR2VuZXJhdGUgYnl0ZWNvZGUgYW5kIHdyaXRlIGl0IG91dC4KICAgICAgICAgaWYgbm90IHN5cy5kb250X3dyaXRlX2J5dGVjb2RlOgogICAgICAgICAgICAgZGF0YSA9IGJ5dGVhcnJheShpbXAuZ2V0X21hZ2ljKCkpCi0gICAgICAgICAgICBkYXRhLmV4dGVuZChtYXJzaGFsLl93X2xvbmcoc291cmNlX3RpbWVzdGFtcCkpCisgICAgICAgICAgICBkYXRhLmV4dGVuZChfYm9vdHN0cmFwLl93X2xvbmcoc291cmNlX3RpbWVzdGFtcCkpCisgICAgICAgICAgICBkYXRhLmV4dGVuZChfYm9vdHN0cmFwLl93X2xvbmcobGVuKHNvdXJjZSkgJiAweEZGRkZGRkZGKSkKICAgICAgICAgICAgIGRhdGEuZXh0ZW5kKG1hcnNoYWwuZHVtcHMoY29kZV9vYmplY3QpKQogICAgICAgICAgICAgc2VsZi53cml0ZV9ieXRlY29kZShmdWxsbmFtZSwgZGF0YSkKICAgICAgICAgcmV0dXJuIGNvZGVfb2JqZWN0CmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL21hY2hpbmVyeS5weSBiL0xpYi9pbXBvcnRsaWIvbWFjaGluZXJ5LnB5CmluZGV4IDUxOTc3NDQuLmQ1ZTcyNTAgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvbWFjaGluZXJ5LnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvbWFjaGluZXJ5LnB5CkBAIC0xLDUgKzEsMTUgQEAKICIiIlRoZSBtYWNoaW5lcnkgb2YgaW1wb3J0bGliOiBmaW5kZXJzLCBsb2FkZXJzLCBob29rcywgZXRjLiIiIgogCitpbXBvcnQgX2ltcAorCitmcm9tIC5fYm9vdHN0cmFwIGltcG9ydCAoU09VUkNFX1NVRkZJWEVTLCBERUJVR19CWVRFQ09ERV9TVUZGSVhFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICBPUFRJTUlaRURfQllURUNPREVfU1VGRklYRVMsIEJZVEVDT0RFX1NVRkZJWEVTKQogZnJvbSAuX2Jvb3RzdHJhcCBpbXBvcnQgQnVpbHRpbkltcG9ydGVyCiBmcm9tIC5fYm9vdHN0cmFwIGltcG9ydCBGcm96ZW5JbXBvcnRlcgogZnJvbSAuX2Jvb3RzdHJhcCBpbXBvcnQgUGF0aEZpbmRlcgorZnJvbSAuX2Jvb3RzdHJhcCBpbXBvcnQgRmlsZUZpbmRlcgorZnJvbSAuX2Jvb3RzdHJhcCBpbXBvcnQgU291cmNlRmlsZUxvYWRlcgorZnJvbSAuX2Jvb3RzdHJhcCBpbXBvcnQgU291cmNlbGVzc0ZpbGVMb2FkZXIKK2Zyb20gLl9ib290c3RyYXAgaW1wb3J0IEV4dGVuc2lvbkZpbGVMb2FkZXIKKworRVhURU5TSU9OX1NVRkZJWEVTID0gX2ltcC5leHRlbnNpb25fc3VmZml4ZXMoKQpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L19faW5pdF9fLnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L19faW5pdF9fLnB5CmluZGV4IGU2OWRlMjkuLjgxNWE3MDYgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC9fX2luaXRfXy5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3QvX19pbml0X18ucHkKQEAgLTAsMCArMSwyNSBAQAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKKworZGVmIHRlc3Rfc3VpdGUocGFja2FnZT1fX3BhY2thZ2VfXywgZGlyZWN0b3J5PW9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpOgorICAgIHN1aXRlID0gdW5pdHRlc3QuVGVzdFN1aXRlKCkKKyAgICBmb3IgbmFtZSBpbiBvcy5saXN0ZGlyKGRpcmVjdG9yeSk6CisgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgoJy4nLCAnX18nKSk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKGRpcmVjdG9yeSwgbmFtZSkKKyAgICAgICAgaWYgKG9zLnBhdGguaXNmaWxlKHBhdGgpIGFuZCBuYW1lLnN0YXJ0c3dpdGgoJ3Rlc3RfJykgYW5kCisgICAgICAgICAgICAgICAgbmFtZS5lbmRzd2l0aCgnLnB5JykpOgorICAgICAgICAgICAgc3VibW9kdWxlX25hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KG5hbWUpWzBdCisgICAgICAgICAgICBtb2R1bGVfbmFtZSA9ICJ7MH0uezF9Ii5mb3JtYXQocGFja2FnZSwgc3VibW9kdWxlX25hbWUpCisgICAgICAgICAgICBfX2ltcG9ydF9fKG1vZHVsZV9uYW1lLCBsZXZlbD0wKQorICAgICAgICAgICAgbW9kdWxlX3Rlc3RzID0gdW5pdHRlc3QuZmluZFRlc3RDYXNlcyhzeXMubW9kdWxlc1ttb2R1bGVfbmFtZV0pCisgICAgICAgICAgICBzdWl0ZS5hZGRUZXN0KG1vZHVsZV90ZXN0cykKKyAgICAgICAgZWxpZiBvcy5wYXRoLmlzZGlyKHBhdGgpOgorICAgICAgICAgICAgcGFja2FnZV9uYW1lID0gInswfS57MX0iLmZvcm1hdChwYWNrYWdlLCBuYW1lKQorICAgICAgICAgICAgX19pbXBvcnRfXyhwYWNrYWdlX25hbWUsIGxldmVsPTApCisgICAgICAgICAgICBwYWNrYWdlX3Rlc3RzID0gZ2V0YXR0cihzeXMubW9kdWxlc1twYWNrYWdlX25hbWVdLCAndGVzdF9zdWl0ZScpKCkKKyAgICAgICAgICAgIHN1aXRlLmFkZFRlc3QocGFja2FnZV90ZXN0cykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgcmV0dXJuIHN1aXRlCmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3QvX19tYWluX18ucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3QvX19tYWluX18ucHkKaW5kZXggZGVjYzUzZC4uOTIxNzFiMiAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L19fbWFpbl9fLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC9fX21haW5fXy5weQpAQCAtNCwyNiArNCwyNyBAQAogYnVpbHRpbnMuX19pbXBvcnRfXyBpbnN0ZWFkIG9mIGltcG9ydGxpYi5fX2ltcG9ydF9fLgogCiAiIiIKLWltcG9ydCBpbXBvcnRsaWIKIGZyb20gaW1wb3J0bGliLnRlc3QuaW1wb3J0XyBpbXBvcnQgdXRpbAogaW1wb3J0IG9zLnBhdGgKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBydW5fdW5pdHRlc3QKLWltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAogCiAKIGRlZiB0ZXN0X21haW4oKToKLSAgICBpZiAnX19weWNhY2hlX18nIGluIF9fZmlsZV9fOgotICAgICAgICBwYXJ0cyA9IF9fZmlsZV9fLnNwbGl0KG9zLnBhdGguc2VwKQotICAgICAgICBzdGFydF9kaXIgPSBzZXAuam9pbihwYXJ0c1s6LTJdKQotICAgIGVsc2U6Ci0gICAgICAgIHN0YXJ0X2RpciA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKKyAgICBzdGFydF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCiAgICAgdG9wX2RpciA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoc3RhcnRfZGlyKSkKICAgICB0ZXN0X2xvYWRlciA9IHVuaXR0ZXN0LlRlc3RMb2FkZXIoKQotICAgIGlmICctLWJ1aWx0aW4nIGluIHN5cy5hcmd2OgotICAgICAgICB1dGlsLnVzaW5nX19faW1wb3J0X18gPSBUcnVlCiAgICAgcnVuX3VuaXR0ZXN0KHRlc3RfbG9hZGVyLmRpc2NvdmVyKHN0YXJ0X2RpciwgdG9wX2xldmVsX2Rpcj10b3BfZGlyKSkKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGltcG9ydCBhcmdwYXJzZQorCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0V4ZWN1dGUgdGhlIGltcG9ydGxpYiB0ZXN0ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1aXRlJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctYicsICctLWJ1aWx0aW4nLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ndXNlIGJ1aWx0aW5zLl9faW1wb3J0X18oKSBpbnN0ZWFkIG9mIGltcG9ydGxpYicpCisgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKyAgICBpZiBhcmdzLmJ1aWx0aW46CisgICAgICAgIHV0aWwudXNpbmdfX19pbXBvcnRfXyA9IFRydWUKICAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L2JlbmNobWFyay5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9iZW5jaG1hcmsucHkKaW5kZXggYjVkZTZjNi4uMTgzZTgxOCAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L2JlbmNobWFyay5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3QvYmVuY2htYXJrLnB5CkBAIC05LDkgKzksMTIgQEAKIGltcG9ydCBkZWNpbWFsCiBpbXBvcnQgaW1wCiBpbXBvcnQgaW1wb3J0bGliCitpbXBvcnQgaW1wb3J0bGliLm1hY2hpbmVyeQoraW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHB5X2NvbXBpbGUKIGltcG9ydCBzeXMKK2ltcG9ydCB0YWJuYW5ueQogaW1wb3J0IHRpbWVpdAogCiAKQEAgLTU5LDEzICs2MiwxNyBAQAogCiAKIGRlZiBzb3VyY2Vfd29fYnl0ZWNvZGUoc2Vjb25kcywgcmVwZWF0KToKLSAgICAiIiJTb3VyY2Ugdy9vIGJ5dGVjb2RlOiBzaW1wbGUiIiIKKyAgICAiIiJTb3VyY2Ugdy9vIGJ5dGVjb2RlOiBzbWFsbCIiIgogICAgIHN5cy5kb250X3dyaXRlX2J5dGVjb2RlID0gVHJ1ZQogICAgIHRyeToKICAgICAgICAgbmFtZSA9ICdfX2ltcG9ydGxpYl90ZXN0X2JlbmNobWFya19fJwogICAgICAgICAjIENsZWFycyBvdXQgc3lzLm1vZHVsZXMgYW5kIHB1dHMgYW4gZW50cnkgYXQgdGhlIGZyb250IG9mIHN5cy5wYXRoLgogICAgICAgICB3aXRoIHNvdXJjZV91dGlsLmNyZWF0ZV9tb2R1bGVzKG5hbWUpIGFzIG1hcHBpbmc6CiAgICAgICAgICAgICBhc3NlcnQgbm90IG9zLnBhdGguZXhpc3RzKGltcC5jYWNoZV9mcm9tX3NvdXJjZShtYXBwaW5nW25hbWVdKSkKKyAgICAgICAgICAgIHN5cy5tZXRhX3BhdGguYXBwZW5kKGltcG9ydGxpYi5tYWNoaW5lcnkuUGF0aEZpbmRlcikKKyAgICAgICAgICAgIGxvYWRlciA9IChpbXBvcnRsaWIubWFjaGluZXJ5LlNvdXJjZUZpbGVMb2FkZXIsCisgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0bGliLm1hY2hpbmVyeS5TT1VSQ0VfU1VGRklYRVMsIFRydWUpCisgICAgICAgICAgICBzeXMucGF0aF9ob29rcy5hcHBlbmQoaW1wb3J0bGliLm1hY2hpbmVyeS5GaWxlRmluZGVyLnBhdGhfaG9vayhsb2FkZXIpKQogICAgICAgICAgICAgZm9yIHJlc3VsdCBpbiBiZW5jaChuYW1lLCBsYW1iZGE6IHN5cy5tb2R1bGVzLnBvcChuYW1lKSwgcmVwZWF0PXJlcGVhdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kcz1zZWNvbmRzKToKICAgICAgICAgICAgICAgICB5aWVsZCByZXN1bHQKQEAgLTczLDI2ICs4MCwzNyBAQAogICAgICAgICBzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IEZhbHNlCiAKIAotZGVmIGRlY2ltYWxfd29fYnl0ZWNvZGUoc2Vjb25kcywgcmVwZWF0KToKLSAgICAiIiJTb3VyY2Ugdy9vIGJ5dGVjb2RlOiBkZWNpbWFsIiIiCi0gICAgbmFtZSA9ICdkZWNpbWFsJwotICAgIGRlY2ltYWxfYnl0ZWNvZGUgPSBpbXAuY2FjaGVfZnJvbV9zb3VyY2UoZGVjaW1hbC5fX2ZpbGVfXykKLSAgICBpZiBvcy5wYXRoLmV4aXN0cyhkZWNpbWFsX2J5dGVjb2RlKToKLSAgICAgICAgb3MudW5saW5rKGRlY2ltYWxfYnl0ZWNvZGUpCi0gICAgc3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUgPSBUcnVlCi0gICAgdHJ5OgotICAgICAgICBmb3IgcmVzdWx0IGluIGJlbmNoKG5hbWUsIGxhbWJkYTogc3lzLm1vZHVsZXMucG9wKG5hbWUpLCByZXBlYXQ9cmVwZWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHM9c2Vjb25kcyk6Ci0gICAgICAgICAgICB5aWVsZCByZXN1bHQKLSAgICBmaW5hbGx5OgotICAgICAgICBzeXMuZG9udF93cml0ZV9ieXRlY29kZSA9IEZhbHNlCitkZWYgX3dvX2J5dGVjb2RlKG1vZHVsZSk6CisgICAgbmFtZSA9IG1vZHVsZS5fX25hbWVfXworICAgIGRlZiBiZW5jaG1hcmtfd29fYnl0ZWNvZGUoc2Vjb25kcywgcmVwZWF0KToKKyAgICAgICAgIiIiU291cmNlIHcvbyBieXRlY29kZToge30iIiIKKyAgICAgICAgYnl0ZWNvZGVfcGF0aCA9IGltcC5jYWNoZV9mcm9tX3NvdXJjZShtb2R1bGUuX19maWxlX18pCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGJ5dGVjb2RlX3BhdGgpOgorICAgICAgICAgICAgb3MudW5saW5rKGJ5dGVjb2RlX3BhdGgpCisgICAgICAgIHN5cy5kb250X3dyaXRlX2J5dGVjb2RlID0gVHJ1ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBmb3IgcmVzdWx0IGluIGJlbmNoKG5hbWUsIGxhbWJkYTogc3lzLm1vZHVsZXMucG9wKG5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBlYXQ9cmVwZWF0LCBzZWNvbmRzPXNlY29uZHMpOgorICAgICAgICAgICAgICAgIHlpZWxkIHJlc3VsdAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUgPSBGYWxzZQorCisgICAgYmVuY2htYXJrX3dvX2J5dGVjb2RlLl9fZG9jX18gPSBiZW5jaG1hcmtfd29fYnl0ZWNvZGUuX19kb2NfXy5mb3JtYXQobmFtZSkKKyAgICByZXR1cm4gYmVuY2htYXJrX3dvX2J5dGVjb2RlCisKK3RhYm5hbm55X3dvX2J5dGVjb2RlID0gX3dvX2J5dGVjb2RlKHRhYm5hbm55KQorZGVjaW1hbF93b19ieXRlY29kZSA9IF93b19ieXRlY29kZShkZWNpbWFsKQogCiAKIGRlZiBzb3VyY2Vfd3JpdGluZ19ieXRlY29kZShzZWNvbmRzLCByZXBlYXQpOgotICAgICIiIlNvdXJjZSB3cml0aW5nIGJ5dGVjb2RlOiBzaW1wbGUiIiIKKyAgICAiIiJTb3VyY2Ugd3JpdGluZyBieXRlY29kZTogc21hbGwiIiIKICAgICBhc3NlcnQgbm90IHN5cy5kb250X3dyaXRlX2J5dGVjb2RlCiAgICAgbmFtZSA9ICdfX2ltcG9ydGxpYl90ZXN0X2JlbmNobWFya19fJwogICAgIHdpdGggc291cmNlX3V0aWwuY3JlYXRlX21vZHVsZXMobmFtZSkgYXMgbWFwcGluZzoKKyAgICAgICAgc3lzLm1ldGFfcGF0aC5hcHBlbmQoaW1wb3J0bGliLm1hY2hpbmVyeS5QYXRoRmluZGVyKQorICAgICAgICBsb2FkZXIgPSAoaW1wb3J0bGliLm1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyLAorICAgICAgICAgICAgICAgICAgaW1wb3J0bGliLm1hY2hpbmVyeS5TT1VSQ0VfU1VGRklYRVMsIFRydWUpCisgICAgICAgIHN5cy5wYXRoX2hvb2tzLmFwcGVuZChpbXBvcnRsaWIubWFjaGluZXJ5LkZpbGVGaW5kZXIucGF0aF9ob29rKGxvYWRlcikpCiAgICAgICAgIGRlZiBjbGVhbnVwKCk6CiAgICAgICAgICAgICBzeXMubW9kdWxlcy5wb3AobmFtZSkKICAgICAgICAgICAgIG9zLnVubGluayhpbXAuY2FjaGVfZnJvbV9zb3VyY2UobWFwcGluZ1tuYW1lXSkpCkBAIC0xMDEsMjEgKzExOSwzMyBAQAogICAgICAgICAgICAgeWllbGQgcmVzdWx0CiAKIAotZGVmIGRlY2ltYWxfd3JpdGluZ19ieXRlY29kZShzZWNvbmRzLCByZXBlYXQpOgotICAgICIiIlNvdXJjZSB3cml0aW5nIGJ5dGVjb2RlOiBkZWNpbWFsIiIiCi0gICAgYXNzZXJ0IG5vdCBzeXMuZG9udF93cml0ZV9ieXRlY29kZQotICAgIG5hbWUgPSAnZGVjaW1hbCcKLSAgICBkZWYgY2xlYW51cCgpOgotICAgICAgICBzeXMubW9kdWxlcy5wb3AobmFtZSkKLSAgICAgICAgb3MudW5saW5rKGltcC5jYWNoZV9mcm9tX3NvdXJjZShkZWNpbWFsLl9fZmlsZV9fKSkKLSAgICBmb3IgcmVzdWx0IGluIGJlbmNoKG5hbWUsIGNsZWFudXAsIHJlcGVhdD1yZXBlYXQsIHNlY29uZHM9c2Vjb25kcyk6Ci0gICAgICAgIHlpZWxkIHJlc3VsdAorZGVmIF93cml0aW5nX2J5dGVjb2RlKG1vZHVsZSk6CisgICAgbmFtZSA9IG1vZHVsZS5fX25hbWVfXworICAgIGRlZiB3cml0aW5nX2J5dGVjb2RlX2JlbmNobWFyayhzZWNvbmRzLCByZXBlYXQpOgorICAgICAgICAiIiJTb3VyY2Ugd3JpdGluZyBieXRlY29kZToge30iIiIKKyAgICAgICAgYXNzZXJ0IG5vdCBzeXMuZG9udF93cml0ZV9ieXRlY29kZQorICAgICAgICBkZWYgY2xlYW51cCgpOgorICAgICAgICAgICAgc3lzLm1vZHVsZXMucG9wKG5hbWUpCisgICAgICAgICAgICBvcy51bmxpbmsoaW1wLmNhY2hlX2Zyb21fc291cmNlKG1vZHVsZS5fX2ZpbGVfXykpCisgICAgICAgIGZvciByZXN1bHQgaW4gYmVuY2gobmFtZSwgY2xlYW51cCwgcmVwZWF0PXJlcGVhdCwgc2Vjb25kcz1zZWNvbmRzKToKKyAgICAgICAgICAgIHlpZWxkIHJlc3VsdAorCisgICAgd3JpdGluZ19ieXRlY29kZV9iZW5jaG1hcmsuX19kb2NfXyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGluZ19ieXRlY29kZV9iZW5jaG1hcmsuX19kb2NfXy5mb3JtYXQobmFtZSkpCisgICAgcmV0dXJuIHdyaXRpbmdfYnl0ZWNvZGVfYmVuY2htYXJrCisKK3RhYm5hbm55X3dyaXRpbmdfYnl0ZWNvZGUgPSBfd3JpdGluZ19ieXRlY29kZSh0YWJuYW5ueSkKK2RlY2ltYWxfd3JpdGluZ19ieXRlY29kZSA9IF93cml0aW5nX2J5dGVjb2RlKGRlY2ltYWwpCiAKIAogZGVmIHNvdXJjZV91c2luZ19ieXRlY29kZShzZWNvbmRzLCByZXBlYXQpOgotICAgICIiIkJ5dGVjb2RlIHcvIHNvdXJjZTogc2ltcGxlIiIiCisgICAgIiIiU291cmNlIHcvIGJ5dGVjb2RlOiBzbWFsbCIiIgogICAgIG5hbWUgPSAnX19pbXBvcnRsaWJfdGVzdF9iZW5jaG1hcmtfXycKICAgICB3aXRoIHNvdXJjZV91dGlsLmNyZWF0ZV9tb2R1bGVzKG5hbWUpIGFzIG1hcHBpbmc6CisgICAgICAgIHN5cy5tZXRhX3BhdGguYXBwZW5kKGltcG9ydGxpYi5tYWNoaW5lcnkuUGF0aEZpbmRlcikKKyAgICAgICAgbG9hZGVyID0gKGltcG9ydGxpYi5tYWNoaW5lcnkuU291cmNlRmlsZUxvYWRlciwKKyAgICAgICAgICAgICAgICBpbXBvcnRsaWIubWFjaGluZXJ5LlNPVVJDRV9TVUZGSVhFUywgVHJ1ZSkKKyAgICAgICAgc3lzLnBhdGhfaG9va3MuYXBwZW5kKGltcG9ydGxpYi5tYWNoaW5lcnkuRmlsZUZpbmRlci5wYXRoX2hvb2sobG9hZGVyKSkKICAgICAgICAgcHlfY29tcGlsZS5jb21waWxlKG1hcHBpbmdbbmFtZV0pCiAgICAgICAgIGFzc2VydCBvcy5wYXRoLmV4aXN0cyhpbXAuY2FjaGVfZnJvbV9zb3VyY2UobWFwcGluZ1tuYW1lXSkpCiAgICAgICAgIGZvciByZXN1bHQgaW4gYmVuY2gobmFtZSwgbGFtYmRhOiBzeXMubW9kdWxlcy5wb3AobmFtZSksIHJlcGVhdD1yZXBlYXQsCkBAIC0xMjMsMjcgKzE1Myw1NiBAQAogICAgICAgICAgICAgeWllbGQgcmVzdWx0CiAKIAotZGVmIGRlY2ltYWxfdXNpbmdfYnl0ZWNvZGUoc2Vjb25kcywgcmVwZWF0KToKLSAgICAiIiJCeXRlY29kZSB3LyBzb3VyY2U6IGRlY2ltYWwiIiIKLSAgICBuYW1lID0gJ2RlY2ltYWwnCi0gICAgcHlfY29tcGlsZS5jb21waWxlKGRlY2ltYWwuX19maWxlX18pCi0gICAgZm9yIHJlc3VsdCBpbiBiZW5jaChuYW1lLCBsYW1iZGE6IHN5cy5tb2R1bGVzLnBvcChuYW1lKSwgcmVwZWF0PXJlcGVhdCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlY29uZHM9c2Vjb25kcyk6Ci0gICAgICAgIHlpZWxkIHJlc3VsdAorZGVmIF91c2luZ19ieXRlY29kZShtb2R1bGUpOgorICAgIG5hbWUgPSBtb2R1bGUuX19uYW1lX18KKyAgICBkZWYgdXNpbmdfYnl0ZWNvZGVfYmVuY2htYXJrKHNlY29uZHMsIHJlcGVhdCk6CisgICAgICAgICIiIlNvdXJjZSB3LyBieXRlY29kZToge30iIiIKKyAgICAgICAgcHlfY29tcGlsZS5jb21waWxlKG1vZHVsZS5fX2ZpbGVfXykKKyAgICAgICAgZm9yIHJlc3VsdCBpbiBiZW5jaChuYW1lLCBsYW1iZGE6IHN5cy5tb2R1bGVzLnBvcChuYW1lKSwgcmVwZWF0PXJlcGVhdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRzPXNlY29uZHMpOgorICAgICAgICAgICAgeWllbGQgcmVzdWx0CisKKyAgICB1c2luZ19ieXRlY29kZV9iZW5jaG1hcmsuX19kb2NfXyA9ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNpbmdfYnl0ZWNvZGVfYmVuY2htYXJrLl9fZG9jX18uZm9ybWF0KG5hbWUpKQorICAgIHJldHVybiB1c2luZ19ieXRlY29kZV9iZW5jaG1hcmsKKwordGFibmFubnlfdXNpbmdfYnl0ZWNvZGUgPSBfdXNpbmdfYnl0ZWNvZGUodGFibmFubnkpCitkZWNpbWFsX3VzaW5nX2J5dGVjb2RlID0gX3VzaW5nX2J5dGVjb2RlKGRlY2ltYWwpCiAKIAotZGVmIG1haW4oaW1wb3J0Xyk6CitkZWYgbWFpbihpbXBvcnRfLCBvcHRpb25zKToKKyAgICBpZiBvcHRpb25zLnNvdXJjZV9maWxlOgorICAgICAgICB3aXRoIG9wdGlvbnMuc291cmNlX2ZpbGU6CisgICAgICAgICAgICBwcmV2X3Jlc3VsdHMgPSBqc29uLmxvYWQob3B0aW9ucy5zb3VyY2VfZmlsZSkKKyAgICBlbHNlOgorICAgICAgICBwcmV2X3Jlc3VsdHMgPSB7fQogICAgIF9fYnVpbHRpbnNfXy5fX2ltcG9ydF9fID0gaW1wb3J0XwogICAgIGJlbmNobWFya3MgPSAoZnJvbV9jYWNoZSwgYnVpbHRpbl9tb2QsCi0gICAgICAgICAgICAgICAgICBzb3VyY2VfdXNpbmdfYnl0ZWNvZGUsIHNvdXJjZV93b19ieXRlY29kZSwKICAgICAgICAgICAgICAgICAgIHNvdXJjZV93cml0aW5nX2J5dGVjb2RlLAotICAgICAgICAgICAgICAgICAgZGVjaW1hbF91c2luZ19ieXRlY29kZSwgZGVjaW1hbF93cml0aW5nX2J5dGVjb2RlLAotICAgICAgICAgICAgICAgICAgZGVjaW1hbF93b19ieXRlY29kZSwpCisgICAgICAgICAgICAgICAgICBzb3VyY2Vfd29fYnl0ZWNvZGUsIHNvdXJjZV91c2luZ19ieXRlY29kZSwKKyAgICAgICAgICAgICAgICAgIHRhYm5hbm55X3dyaXRpbmdfYnl0ZWNvZGUsCisgICAgICAgICAgICAgICAgICB0YWJuYW5ueV93b19ieXRlY29kZSwgdGFibmFubnlfdXNpbmdfYnl0ZWNvZGUsCisgICAgICAgICAgICAgICAgICBkZWNpbWFsX3dyaXRpbmdfYnl0ZWNvZGUsCisgICAgICAgICAgICAgICAgICBkZWNpbWFsX3dvX2J5dGVjb2RlLCBkZWNpbWFsX3VzaW5nX2J5dGVjb2RlLAorICAgICAgICAgICAgICAgICkKKyAgICBpZiBvcHRpb25zLmJlbmNobWFyazoKKyAgICAgICAgZm9yIGIgaW4gYmVuY2htYXJrczoKKyAgICAgICAgICAgIGlmIGIuX19kb2NfXyA9PSBvcHRpb25zLmJlbmNobWFyazoKKyAgICAgICAgICAgICAgICBiZW5jaG1hcmtzID0gW2JdCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50KCdVbmtub3duIGJlbmNobWFyazogeyFyfScuZm9ybWF0KG9wdGlvbnMuYmVuY2htYXJrLAorICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKSkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCiAgICAgc2Vjb25kcyA9IDEKICAgICBzZWNvbmRzX3BsdXJhbCA9ICdzJyBpZiBzZWNvbmRzID4gMSBlbHNlICcnCiAgICAgcmVwZWF0ID0gMwotICAgIGhlYWRlciA9ICJNZWFzdXJpbmcgaW1wb3J0cy9zZWNvbmQgb3ZlciB7fSBzZWNvbmR7fSwgYmVzdCBvdXQgb2Yge31cbiIKLSAgICBwcmludChoZWFkZXIuZm9ybWF0KHNlY29uZHMsIHNlY29uZHNfcGx1cmFsLCByZXBlYXQpKQorICAgIGhlYWRlciA9ICgnTWVhc3VyaW5nIGltcG9ydHMvc2Vjb25kIG92ZXIge30gc2Vjb25ke30sIGJlc3Qgb3V0IG9mIHt9XG4nCisgICAgICAgICAgICAgICdFbnRpcmUgYmVuY2htYXJrIHJ1biBzaG91bGQgdGFrZSBhYm91dCB7fSBzZWNvbmRzXG4nCisgICAgICAgICAgICAgICdVc2luZyB7IXJ9IGFzIF9faW1wb3J0X19cbicpCisgICAgcHJpbnQoaGVhZGVyLmZvcm1hdChzZWNvbmRzLCBzZWNvbmRzX3BsdXJhbCwgcmVwZWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGJlbmNobWFya3MpICogc2Vjb25kcyAqIHJlcGVhdCwgX19pbXBvcnRfXykpCisgICAgbmV3X3Jlc3VsdHMgPSB7fQogICAgIGZvciBiZW5jaG1hcmsgaW4gYmVuY2htYXJrczoKICAgICAgICAgcHJpbnQoYmVuY2htYXJrLl9fZG9jX18sICJbIiwgZW5kPScgJykKICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCkBAIC0xNTQsMTkgKzIxMyw0MCBAQAogICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCiAgICAgICAgIGFzc2VydCBub3Qgc3lzLmRvbnRfd3JpdGVfYnl0ZWNvZGUKICAgICAgICAgcHJpbnQoIl0iLCAiYmVzdCBpcyIsIGZvcm1hdChtYXgocmVzdWx0cyksICcsZCcpKQorICAgICAgICBuZXdfcmVzdWx0c1tiZW5jaG1hcmsuX19kb2NfX10gPSByZXN1bHRzCisgICAgaWYgcHJldl9yZXN1bHRzOgorICAgICAgICBwcmludCgnXG5cbkNvbXBhcmluZyBuZXcgdnMuIG9sZFxuJykKKyAgICAgICAgZm9yIGJlbmNobWFyayBpbiBiZW5jaG1hcmtzOgorICAgICAgICAgICAgYmVuY2htYXJrX25hbWUgPSBiZW5jaG1hcmsuX19kb2NfXworICAgICAgICAgICAgb2xkX3Jlc3VsdCA9IG1heChwcmV2X3Jlc3VsdHNbYmVuY2htYXJrX25hbWVdKQorICAgICAgICAgICAgbmV3X3Jlc3VsdCA9IG1heChuZXdfcmVzdWx0c1tiZW5jaG1hcmtfbmFtZV0pCisgICAgICAgICAgICByZXN1bHQgPSAnezosZH0gdnMuIHs6LGR9ICh7OiV9KScuZm9ybWF0KG5ld19yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9yZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3Jlc3VsdC9vbGRfcmVzdWx0KQorICAgICAgICAgICAgcHJpbnQoYmVuY2htYXJrX25hbWUsICc6JywgcmVzdWx0KQorICAgIGlmIG9wdGlvbnMuZGVzdF9maWxlOgorICAgICAgICB3aXRoIG9wdGlvbnMuZGVzdF9maWxlOgorICAgICAgICAgICAganNvbi5kdW1wKG5ld19yZXN1bHRzLCBvcHRpb25zLmRlc3RfZmlsZSwgaW5kZW50PTIpCiAKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBpbXBvcnQgb3B0cGFyc2UKKyAgICBpbXBvcnQgYXJncGFyc2UKIAotICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1iJywgJy0tYnVpbHRpbicsIGRlc3Q9J2J1aWx0aW4nLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctYicsICctLWJ1aWx0aW4nLCBkZXN0PSdidWlsdGluJywgYWN0aW9uPSdzdG9yZV90cnVlJywKICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9InVzZSB0aGUgYnVpbHQtaW4gX19pbXBvcnRfXyIpCi0gICAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLSAgICBpZiBhcmdzOgotICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoInVucmVjb2duaXplZCBhcmdzOiB7fSIuZm9ybWF0KGFyZ3MpKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1yJywgJy0tcmVhZCcsIGRlc3Q9J3NvdXJjZV9maWxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9YXJncGFyc2UuRmlsZVR5cGUoJ3InKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J2ZpbGUgdG8gcmVhZCBiZW5jaG1hcmsgZGF0YSBmcm9tIHRvIGNvbXBhcmUgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWdhaW5zdCcpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLXcnLCAnLS13cml0ZScsIGRlc3Q9J2Rlc3RfZmlsZScsCisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPWFyZ3BhcnNlLkZpbGVUeXBlKCd3JyksCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdmaWxlIHRvIHdyaXRlIGJlbmNobWFyayBkYXRhIHRvJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWJlbmNobWFyaycsIGRlc3Q9J2JlbmNobWFyaycsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdzcGVjaWZpYyBiZW5jaG1hcmsgdG8gcnVuJykKKyAgICBvcHRpb25zID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQogICAgIGltcG9ydF8gPSBfX2ltcG9ydF9fCiAgICAgaWYgbm90IG9wdGlvbnMuYnVpbHRpbjoKICAgICAgICAgaW1wb3J0XyA9IGltcG9ydGxpYi5fX2ltcG9ydF9fCiAKLSAgICBtYWluKGltcG9ydF8pCisgICAgbWFpbihpbXBvcnRfLCBvcHRpb25zKQpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L2J1aWx0aW4vdGVzdF9maW5kZXIucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3QvYnVpbHRpbi90ZXN0X2ZpbmRlci5weQppbmRleCA0MGY2OTBlLi4xNDY1MzhkIDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3QvYnVpbHRpbi90ZXN0X2ZpbmRlci5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3QvYnVpbHRpbi90ZXN0X2ZpbmRlci5weQpAQCAtMzUsMTQgKzM1LDE0IEBACiAgICAgZGVmIHRlc3RfZmFpbHVyZShzZWxmKToKICAgICAgICAgYXNzZXJ0ICdpbXBvcnRsaWInIG5vdCBpbiBzeXMuYnVpbHRpbl9tb2R1bGVfbmFtZXMKICAgICAgICAgbG9hZGVyID0gbWFjaGluZXJ5LkJ1aWx0aW5JbXBvcnRlci5maW5kX21vZHVsZSgnaW1wb3J0bGliJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvYWRlciBpcyBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShsb2FkZXIpCiAKICAgICBkZWYgdGVzdF9pZ25vcmVfcGF0aChzZWxmKToKICAgICAgICAgIyBUaGUgdmFsdWUgZm9yICdwYXRoJyBzaG91bGQgYWx3YXlzIHRyaWdnZXIgYSBmYWlsZWQgaW1wb3J0LgogICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShidWlsdGluX3V0aWwuTkFNRSk6CiAgICAgICAgICAgICBsb2FkZXIgPSBtYWNoaW5lcnkuQnVpbHRpbkltcG9ydGVyLmZpbmRfbW9kdWxlKGJ1aWx0aW5fdXRpbC5OQU1FLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydwa2cnXSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsb2FkZXIgaXMgTm9uZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGxvYWRlcikKIAogCiAKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC9idWlsdGluL3Rlc3RfbG9hZGVyLnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L2J1aWx0aW4vdGVzdF9sb2FkZXIucHkKaW5kZXggMWE4NTM5Yi4uOGUxODZlNyAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L2J1aWx0aW4vdGVzdF9sb2FkZXIucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L2J1aWx0aW4vdGVzdF9sb2FkZXIucHkKQEAgLTE4LDEwICsxOCwxMCBAQAogCiAgICAgZGVmIHZlcmlmeShzZWxmLCBtb2R1bGUpOgogICAgICAgICAiIiJWZXJpZnkgdGhhdCB0aGUgbW9kdWxlIG1hdGNoZXMgYWdhaW5zdCB3aGF0IGl0IHNob3VsZCBoYXZlLiIiIgotICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShtb2R1bGUsIHR5cGVzLk1vZHVsZVR5cGUpKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobW9kdWxlLCB0eXBlcy5Nb2R1bGVUeXBlKQogICAgICAgICBmb3IgYXR0ciwgdmFsdWUgaW4gc2VsZi52ZXJpZmljYXRpb24uaXRlbXMoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0YXR0cihtb2R1bGUsIGF0dHIpLCB2YWx1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1vZHVsZS5fX25hbWVfXyBpbiBzeXMubW9kdWxlcykKKyAgICAgICAgc2VsZi5hc3NlcnRJbihtb2R1bGUuX19uYW1lX18sIHN5cy5tb2R1bGVzKQogCiAgICAgbG9hZF9tb2R1bGUgPSBzdGF0aWNtZXRob2QobGFtYmRhIG5hbWU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVyeS5CdWlsdGluSW1wb3J0ZXIubG9hZF9tb2R1bGUobmFtZSkpCkBAIC00OSwyMCArNDksMjIgQEAKICAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUoYnVpbHRpbl91dGlsLk5BTUUpOgogICAgICAgICAgICAgbW9kdWxlMSA9IHNlbGYubG9hZF9tb2R1bGUoYnVpbHRpbl91dGlsLk5BTUUpCiAgICAgICAgICAgICBtb2R1bGUyID0gc2VsZi5sb2FkX21vZHVsZShidWlsdGluX3V0aWwuTkFNRSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtb2R1bGUxIGlzIG1vZHVsZTIpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKG1vZHVsZTEsIG1vZHVsZTIpCiAKICAgICBkZWYgdGVzdF91bmxvYWRhYmxlKHNlbGYpOgogICAgICAgICBuYW1lID0gJ2Rzc2RzZGZmZicKICAgICAgICAgYXNzZXJ0IG5hbWUgbm90IGluIHN5cy5idWlsdGluX21vZHVsZV9uYW1lcwotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcikgYXMgY206CiAgICAgICAgICAgICBzZWxmLmxvYWRfbW9kdWxlKG5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsIG5hbWUpCiAKICAgICBkZWYgdGVzdF9hbHJlYWR5X2ltcG9ydGVkKHNlbGYpOgogICAgICAgICAjIFVzaW5nIHRoZSBuYW1lIG9mIGEgbW9kdWxlIGFscmVhZHkgaW1wb3J0ZWQgYnV0IG5vdCBhIGJ1aWx0LWluIHNob3VsZAogICAgICAgICAjIHN0aWxsIGZhaWwuCiAgICAgICAgIGFzc2VydCBoYXNhdHRyKGltcG9ydGxpYiwgJ19fZmlsZV9fJykgICMgTm90IGEgYnVpbHQtaW4uCi0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKSBhcyBjbToKICAgICAgICAgICAgIHNlbGYubG9hZF9tb2R1bGUoJ2ltcG9ydGxpYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsICdpbXBvcnRsaWInKQogCiAKIGNsYXNzIEluc3BlY3RMb2FkZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC03MiwxMiArNzQsMTIgQEAKICAgICBkZWYgdGVzdF9nZXRfY29kZShzZWxmKToKICAgICAgICAgIyBUaGVyZSBpcyBubyBjb2RlIG9iamVjdC4KICAgICAgICAgcmVzdWx0ID0gbWFjaGluZXJ5LkJ1aWx0aW5JbXBvcnRlci5nZXRfY29kZShidWlsdGluX3V0aWwuTkFNRSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3VsdCBpcyBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZXN1bHQpCiAKICAgICBkZWYgdGVzdF9nZXRfc291cmNlKHNlbGYpOgogICAgICAgICAjIFRoZXJlIGlzIG5vIHNvdXJjZS4KICAgICAgICAgcmVzdWx0ID0gbWFjaGluZXJ5LkJ1aWx0aW5JbXBvcnRlci5nZXRfc291cmNlKGJ1aWx0aW5fdXRpbC5OQU1FKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzdWx0IGlzIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHJlc3VsdCkKIAogICAgIGRlZiB0ZXN0X2lzX3BhY2thZ2Uoc2VsZik6CiAgICAgICAgICMgQ2Fubm90IGJlIGEgcGFja2FnZS4KQEAgLTg4LDggKzkwLDkgQEAKICAgICAgICAgIyBNb2R1bGVzIG5vdCBidWlsdC1pbiBzaG91bGQgcmFpc2UgSW1wb3J0RXJyb3IuCiAgICAgICAgIGZvciBtZXRoX25hbWUgaW4gKCdnZXRfY29kZScsICdnZXRfc291cmNlJywgJ2lzX3BhY2thZ2UnKToKICAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIobWFjaGluZXJ5LkJ1aWx0aW5JbXBvcnRlciwgbWV0aF9uYW1lKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcikgYXMgY206CiAgICAgICAgICAgICBtZXRob2QoYnVpbHRpbl91dGlsLkJBRF9OQU1FKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhidWlsdGluX3V0aWwuQkFEX05BTUUpCiAKIAogCmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3QvZXh0ZW5zaW9uL3Rlc3RfY2FzZV9zZW5zaXRpdml0eS5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9leHRlbnNpb24vdGVzdF9jYXNlX3NlbnNpdGl2aXR5LnB5CmluZGV4IGUwNjJmYjYuLmJkYzIxZTcgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC9leHRlbnNpb24vdGVzdF9jYXNlX3NlbnNpdGl2aXR5LnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC9leHRlbnNpb24vdGVzdF9jYXNlX3NlbnNpdGl2aXR5LnB5CkBAIC0xLDMgKzEsNCBAQAoraW1wb3J0IGltcAogaW1wb3J0IHN5cwogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBpbXBvcnQgdW5pdHRlc3QKQEAgLTEzLDE5ICsxNCwyNyBAQAogICAgICAgICBnb29kX25hbWUgPSBleHRfdXRpbC5OQU1FCiAgICAgICAgIGJhZF9uYW1lID0gZ29vZF9uYW1lLnVwcGVyKCkKICAgICAgICAgYXNzZXJ0IGdvb2RfbmFtZSAhPSBiYWRfbmFtZQotICAgICAgICBmaW5kZXIgPSBfYm9vdHN0cmFwLl9GaWxlRmluZGVyKGV4dF91dGlsLlBBVEgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Jvb3RzdHJhcC5fRXh0ZW5zaW9uRmluZGVyRGV0YWlscygpKQorICAgICAgICBmaW5kZXIgPSBfYm9vdHN0cmFwLkZpbGVGaW5kZXIoZXh0X3V0aWwuUEFUSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2Jvb3RzdHJhcC5FeHRlbnNpb25GaWxlTG9hZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXAuZXh0ZW5zaW9uX3N1ZmZpeGVzKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlKSkKICAgICAgICAgcmV0dXJuIGZpbmRlci5maW5kX21vZHVsZShiYWRfbmFtZSkKIAogICAgIGRlZiB0ZXN0X2Nhc2Vfc2Vuc2l0aXZlKHNlbGYpOgogICAgICAgICB3aXRoIHN1cHBvcnQuRW52aXJvbm1lbnRWYXJHdWFyZCgpIGFzIGVudjoKICAgICAgICAgICAgIGVudi51bnNldCgnUFlUSE9OQ0FTRU9LJykKKyAgICAgICAgICAgIGlmIGInUFlUSE9OQ0FTRU9LJyBpbiBfYm9vdHN0cmFwLl9vcy5lbnZpcm9uOgorICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoJ29zLmVudmlyb24gY2hhbmdlcyBub3QgcmVmbGVjdGVkIGluICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfb3MuZW52aXJvbicpCiAgICAgICAgICAgICBsb2FkZXIgPSBzZWxmLmZpbmRfbW9kdWxlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGxvYWRlcikKIAogICAgIGRlZiB0ZXN0X2Nhc2VfaW5zZW5zaXRpdml0eShzZWxmKToKICAgICAgICAgd2l0aCBzdXBwb3J0LkVudmlyb25tZW50VmFyR3VhcmQoKSBhcyBlbnY6CiAgICAgICAgICAgICBlbnYuc2V0KCdQWVRIT05DQVNFT0snLCAnMScpCisgICAgICAgICAgICBpZiBiJ1BZVEhPTkNBU0VPSycgbm90IGluIF9ib290c3RyYXAuX29zLmVudmlyb246CisgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgnb3MuZW52aXJvbiBjaGFuZ2VzIG5vdCByZWZsZWN0ZWQgaW4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19vcy5lbnZpcm9uJykKICAgICAgICAgICAgIGxvYWRlciA9IHNlbGYuZmluZF9tb2R1bGUoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIobG9hZGVyLCAnbG9hZF9tb2R1bGUnKSkKIApkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L2V4dGVuc2lvbi90ZXN0X2ZpbmRlci5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9leHRlbnNpb24vdGVzdF9maW5kZXIucHkKaW5kZXggZWE5NzQ4My4uMWM2MDI5MiAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L2V4dGVuc2lvbi90ZXN0X2ZpbmRlci5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3QvZXh0ZW5zaW9uL3Rlc3RfZmluZGVyLnB5CkBAIC0yLDYgKzIsNyBAQAogZnJvbSAuLiBpbXBvcnQgYWJjCiBmcm9tIC4gaW1wb3J0IHV0aWwKIAoraW1wb3J0IGltcAogaW1wb3J0IHVuaXR0ZXN0CiAKIGNsYXNzIEZpbmRlclRlc3RzKGFiYy5GaW5kZXJUZXN0cyk6CkBAIC05LDggKzEwLDEwIEBACiAgICAgIiIiVGVzdCB0aGUgZmluZGVyIGZvciBleHRlbnNpb24gbW9kdWxlcy4iIiIKIAogICAgIGRlZiBmaW5kX21vZHVsZShzZWxmLCBmdWxsbmFtZSk6Ci0gICAgICAgIGltcG9ydGVyID0gX2Jvb3RzdHJhcC5fRmlsZUZpbmRlcih1dGlsLlBBVEgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYm9vdHN0cmFwLl9FeHRlbnNpb25GaW5kZXJEZXRhaWxzKCkpCisgICAgICAgIGltcG9ydGVyID0gX2Jvb3RzdHJhcC5GaWxlRmluZGVyKHV0aWwuUEFUSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfYm9vdHN0cmFwLkV4dGVuc2lvbkZpbGVMb2FkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wLmV4dGVuc2lvbl9zdWZmaXhlcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlKSkKICAgICAgICAgcmV0dXJuIGltcG9ydGVyLmZpbmRfbW9kdWxlKGZ1bGxuYW1lKQogCiAgICAgZGVmIHRlc3RfbW9kdWxlKHNlbGYpOgpAQCAtMzMsNyArMzYsNyBAQAogICAgICAgICBwYXNzCiAKICAgICBkZWYgdGVzdF9mYWlsdXJlKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5maW5kX21vZHVsZSgnYXNkZmprbDsnKSBpcyBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzZWxmLmZpbmRfbW9kdWxlKCdhc2RmamtsOycpKQogCiAgICAgIyBYWFggUmFpc2UgYW4gZXhjZXB0aW9uIGlmIHNvbWVvbmUgdHJpZXMgdG8gdXNlIHRoZSAncGF0aCcgYXJndW1lbnQ/CiAKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC9leHRlbnNpb24vdGVzdF9sb2FkZXIucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3QvZXh0ZW5zaW9uL3Rlc3RfbG9hZGVyLnB5CmluZGV4IDRhNzgzZGIuLjkxNzg0M2YgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC9leHRlbnNpb24vdGVzdF9sb2FkZXIucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L2V4dGVuc2lvbi90ZXN0X2xvYWRlci5weQpAQCAtMSw0ICsxLDQgQEAKLWZyb20gaW1wb3J0bGliIGltcG9ydCBfYm9vdHN0cmFwCitmcm9tIGltcG9ydGxpYiBpbXBvcnQgbWFjaGluZXJ5CiBmcm9tIC4gaW1wb3J0IHV0aWwgYXMgZXh0X3V0aWwKIGZyb20gLi4gaW1wb3J0IGFiYwogZnJvbSAuLiBpbXBvcnQgdXRpbApAQCAtMTEsMTAgKzExLDIwIEBACiAKICAgICAiIiJUZXN0IGxvYWRfbW9kdWxlKCkgZm9yIGV4dGVuc2lvbiBtb2R1bGVzLiIiIgogCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmxvYWRlciA9IG1hY2hpbmVyeS5FeHRlbnNpb25GaWxlTG9hZGVyKGV4dF91dGlsLk5BTUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dF91dGlsLkZJTEVQQVRIKQorCiAgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIGZ1bGxuYW1lKToKLSAgICAgICAgbG9hZGVyID0gX2Jvb3RzdHJhcC5fRXh0ZW5zaW9uRmlsZUxvYWRlcihleHRfdXRpbC5OQU1FLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0X3V0aWwuRklMRVBBVEgpCi0gICAgICAgIHJldHVybiBsb2FkZXIubG9hZF9tb2R1bGUoZnVsbG5hbWUpCisgICAgICAgIHJldHVybiBzZWxmLmxvYWRlci5sb2FkX21vZHVsZShmdWxsbmFtZSkKKworICAgIGRlZiB0ZXN0X2xvYWRfbW9kdWxlX0FQSShzZWxmKToKKyAgICAgICAgIyBUZXN0IHRoZSBkZWZhdWx0IGFyZ3VtZW50IGZvciBsb2FkX21vZHVsZSgpLgorICAgICAgICBzZWxmLmxvYWRlci5sb2FkX21vZHVsZSgpCisgICAgICAgIHNlbGYubG9hZGVyLmxvYWRfbW9kdWxlKE5vbmUpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICAgICAgc2VsZi5sb2FkX21vZHVsZSgnWFhYJykKKwogCiAgICAgZGVmIHRlc3RfbW9kdWxlKHNlbGYpOgogICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShleHRfdXRpbC5OQU1FKToKQEAgLTIzLDkgKzMzLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdfX2ZpbGVfXycsIGV4dF91dGlsLkZJTEVQQVRIKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdfX3BhY2thZ2VfXycsICcnKV06CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRhdHRyKG1vZHVsZSwgYXR0ciksIHZhbHVlKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4dF91dGlsLk5BTUUgaW4gc3lzLm1vZHVsZXMpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShtb2R1bGUuX19sb2FkZXJfXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ib290c3RyYXAuX0V4dGVuc2lvbkZpbGVMb2FkZXIpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihleHRfdXRpbC5OQU1FLCBzeXMubW9kdWxlcykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2R1bGUuX19sb2FkZXJfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lcnkuRXh0ZW5zaW9uRmlsZUxvYWRlcikKIAogICAgIGRlZiB0ZXN0X3BhY2thZ2Uoc2VsZik6CiAgICAgICAgICMgRXh0ZW5zaW9ucyBhcmUgbm90IGZvdW5kIGluIHBhY2thZ2VzLgpAQCAtMzksMTUgKzQ5LDE3IEBACiAgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKGV4dF91dGlsLk5BTUUpOgogICAgICAgICAgICAgbW9kdWxlMSA9IHNlbGYubG9hZF9tb2R1bGUoZXh0X3V0aWwuTkFNRSkKICAgICAgICAgICAgIG1vZHVsZTIgPSBzZWxmLmxvYWRfbW9kdWxlKGV4dF91dGlsLk5BTUUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobW9kdWxlMSBpcyBtb2R1bGUyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhtb2R1bGUxLCBtb2R1bGUyKQogCiAgICAgZGVmIHRlc3Rfc3RhdGVfYWZ0ZXJfZmFpbHVyZShzZWxmKToKICAgICAgICAgIyBObyBlYXN5IHdheSB0byB0cmlnZ2VyIGEgZmFpbHVyZSBhZnRlciBhIHN1Y2Nlc3NmdWwgaW1wb3J0LgogICAgICAgICBwYXNzCiAKICAgICBkZWYgdGVzdF91bmxvYWRhYmxlKHNlbGYpOgotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKLSAgICAgICAgICAgIHNlbGYubG9hZF9tb2R1bGUoJ2FzZGZqa2w7JykKKyAgICAgICAgbmFtZSA9ICdhc2RmamtsOycKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcikgYXMgY206CisgICAgICAgICAgICBzZWxmLmxvYWRfbW9kdWxlKG5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsIG5hbWUpCiAKIAogZGVmIHRlc3RfbWFpbigpOgpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L2V4dGVuc2lvbi90ZXN0X3BhdGhfaG9vay5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9leHRlbnNpb24vdGVzdF9wYXRoX2hvb2sucHkKaW5kZXggNDYxMDQyMC4uMTI5ZTZlMiAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L2V4dGVuc2lvbi90ZXN0X3BhdGhfaG9vay5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3QvZXh0ZW5zaW9uL3Rlc3RfcGF0aF9ob29rLnB5CkBAIC0xNCw3ICsxNCw4IEBACiAgICAgIyBYWFggU2hvdWxkIGl0IG9ubHkgd29yayBmb3IgZGlyZWN0b3JpZXMgY29udGFpbmluZyBhbiBleHRlbnNpb24gbW9kdWxlPwogCiAgICAgZGVmIGhvb2soc2VsZiwgZW50cnkpOgotICAgICAgICByZXR1cm4gX2Jvb3RzdHJhcC5fZmlsZV9wYXRoX2hvb2soZW50cnkpCisgICAgICAgIHJldHVybiBfYm9vdHN0cmFwLkZpbGVGaW5kZXIucGF0aF9ob29rKChfYm9vdHN0cmFwLkV4dGVuc2lvbkZpbGVMb2FkZXIsCisgICAgICAgICAgICBpbXAuZXh0ZW5zaW9uX3N1ZmZpeGVzKCksIEZhbHNlKSkoZW50cnkpCiAKICAgICBkZWYgdGVzdF9zdWNjZXNzKHNlbGYpOgogICAgICAgICAjIFBhdGggaG9vayBzaG91bGQgaGFuZGxlIGEgZGlyZWN0b3J5IHdoZXJlIGEga25vd24gZXh0ZW5zaW9uIG1vZHVsZQpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L2V4dGVuc2lvbi91dGlsLnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L2V4dGVuc2lvbi91dGlsLnB5CmluZGV4IGQxNDkxNjkuLmEyNjZkZDkgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC9leHRlbnNpb24vdXRpbC5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3QvZXh0ZW5zaW9uL3V0aWwucHkKQEAgLTEsNCArMSw1IEBACiBpbXBvcnQgaW1wCitmcm9tIGltcG9ydGxpYiBpbXBvcnQgbWFjaGluZXJ5CiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIApAQCAtNiwxMCArNyw5IEBACiBFWFQgPSBOb25lCiBGSUxFTkFNRSA9IE5vbmUKIE5BTUUgPSAnX3Rlc3RjYXBpJwotX2ZpbGVfZXh0cyA9IFt4WzBdIGZvciB4IGluIGltcC5nZXRfc3VmZml4ZXMoKSBpZiB4WzJdID09IGltcC5DX0VYVEVOU0lPTl0KIHRyeToKICAgICBmb3IgUEFUSCBpbiBzeXMucGF0aDoKLSAgICAgICAgZm9yIEVYVCBpbiBfZmlsZV9leHRzOgorICAgICAgICBmb3IgRVhUIGluIG1hY2hpbmVyeS5FWFRFTlNJT05fU1VGRklYRVM6CiAgICAgICAgICAgICBGSUxFTkFNRSA9IE5BTUUgKyBFWFQKICAgICAgICAgICAgIEZJTEVQQVRIID0gb3MucGF0aC5qb2luKFBBVEgsIEZJTEVOQU1FKQogICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKFBBVEgsIEZJTEVOQU1FKSk6CkBAIC0xOCw0ICsxOCwzIEBACiAgICAgICAgIFBBVEggPSBFWFQgPSBGSUxFTkFNRSA9IEZJTEVQQVRIID0gTm9uZQogZXhjZXB0IFN0b3BJdGVyYXRpb246CiAgICAgcGFzcwotZGVsIF9maWxlX2V4dHMKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC9mcm96ZW4vdGVzdF9maW5kZXIucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3QvZnJvemVuL3Rlc3RfZmluZGVyLnB5CmluZGV4IGRiODgzNzkuLjU0YzBjOTAgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC9mcm96ZW4vdGVzdF9maW5kZXIucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L2Zyb3plbi90ZXN0X2ZpbmRlci5weQpAQCAtMzUsNyArMzUsNyBAQAogCiAgICAgZGVmIHRlc3RfZmFpbHVyZShzZWxmKToKICAgICAgICAgbG9hZGVyID0gc2VsZi5maW5kKCc8bm90IHJlYWw+JykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvYWRlciBpcyBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShsb2FkZXIpCiAKIAogZGVmIHRlc3RfbWFpbigpOgpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L2Zyb3plbi90ZXN0X2xvYWRlci5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9mcm96ZW4vdGVzdF9sb2FkZXIucHkKaW5kZXggYjY4NWVmNS4uNGI4ZWMxNSAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L2Zyb3plbi90ZXN0X2xvYWRlci5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3QvZnJvemVuL3Rlc3RfbG9hZGVyLnB5CkBAIC0xMCw1NSArMTAsNzAgQEAKICAgICBkZWYgdGVzdF9tb2R1bGUoc2VsZik6CiAgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKCdfX2hlbGxvX18nKSwgY2FwdHVyZWRfc3Rkb3V0KCkgYXMgc3Rkb3V0OgogICAgICAgICAgICAgbW9kdWxlID0gbWFjaGluZXJ5LkZyb3plbkltcG9ydGVyLmxvYWRfbW9kdWxlKCdfX2hlbGxvX18nKQotICAgICAgICAgICAgY2hlY2sgPSB7J19fbmFtZV9fJzogJ19faGVsbG9fXycsICdfX2ZpbGVfXyc6ICc8ZnJvemVuPicsCi0gICAgICAgICAgICAgICAgICAgICdfX3BhY2thZ2VfXyc6ICcnLCAnX19sb2FkZXJfXyc6IG1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlcn0KKyAgICAgICAgICAgIGNoZWNrID0geydfX25hbWVfXyc6ICdfX2hlbGxvX18nLAorICAgICAgICAgICAgICAgICAgICAnX19wYWNrYWdlX18nOiAnJywKKyAgICAgICAgICAgICAgICAgICAgJ19fbG9hZGVyX18nOiBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIsCisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciBhdHRyLCB2YWx1ZSBpbiBjaGVjay5pdGVtcygpOgogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0YXR0cihtb2R1bGUsIGF0dHIpLCB2YWx1ZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LmdldHZhbHVlKCksICdIZWxsbyB3b3JsZCFcbicpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIobW9kdWxlLCAnX19maWxlX18nKSkKIAogICAgIGRlZiB0ZXN0X3BhY2thZ2Uoc2VsZik6CiAgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKCdfX3BoZWxsb19fJyksICBjYXB0dXJlZF9zdGRvdXQoKSBhcyBzdGRvdXQ6CiAgICAgICAgICAgICBtb2R1bGUgPSBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIubG9hZF9tb2R1bGUoJ19fcGhlbGxvX18nKQotICAgICAgICAgICAgY2hlY2sgPSB7J19fbmFtZV9fJzogJ19fcGhlbGxvX18nLCAnX19maWxlX18nOiAnPGZyb3plbj4nLAotICAgICAgICAgICAgICAgICAgICAgJ19fcGFja2FnZV9fJzogJ19fcGhlbGxvX18nLCAnX19wYXRoX18nOiBbJ19fcGhlbGxvX18nXSwKLSAgICAgICAgICAgICAgICAgICAgICdfX2xvYWRlcl9fJzogbWFjaGluZXJ5LkZyb3plbkltcG9ydGVyfQorICAgICAgICAgICAgY2hlY2sgPSB7J19fbmFtZV9fJzogJ19fcGhlbGxvX18nLAorICAgICAgICAgICAgICAgICAgICAgJ19fcGFja2FnZV9fJzogJ19fcGhlbGxvX18nLAorICAgICAgICAgICAgICAgICAgICAgJ19fcGF0aF9fJzogWydfX3BoZWxsb19fJ10sCisgICAgICAgICAgICAgICAgICAgICAnX19sb2FkZXJfXyc6IG1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlciwKKyAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGZvciBhdHRyLCB2YWx1ZSBpbiBjaGVjay5pdGVtcygpOgogICAgICAgICAgICAgICAgIGF0dHJfdmFsdWUgPSBnZXRhdHRyKG1vZHVsZSwgYXR0cikKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGF0dHJfdmFsdWUsIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciBfX3BoZWxsb19fLiVzLCAlciAhPSAlciIgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGF0dHIsIGF0dHJfdmFsdWUsIHZhbHVlKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LmdldHZhbHVlKCksICdIZWxsbyB3b3JsZCFcbicpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIobW9kdWxlLCAnX19maWxlX18nKSkKIAogICAgIGRlZiB0ZXN0X2xhY2tpbmdfcGFyZW50KHNlbGYpOgogICAgICAgICB3aXRoIHV0aWwudW5jYWNoZSgnX19waGVsbG9fXycsICdfX3BoZWxsb19fLnNwYW0nKSwgXAogICAgICAgICAgICAgIGNhcHR1cmVkX3N0ZG91dCgpIGFzIHN0ZG91dDoKICAgICAgICAgICAgIG1vZHVsZSA9IG1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlci5sb2FkX21vZHVsZSgnX19waGVsbG9fXy5zcGFtJykKLSAgICAgICAgICAgIGNoZWNrID0geydfX25hbWVfXyc6ICdfX3BoZWxsb19fLnNwYW0nLCAnX19maWxlX18nOiAnPGZyb3plbj4nLAorICAgICAgICAgICAgY2hlY2sgPSB7J19fbmFtZV9fJzogJ19fcGhlbGxvX18uc3BhbScsCiAgICAgICAgICAgICAgICAgICAgICdfX3BhY2thZ2VfXyc6ICdfX3BoZWxsb19fJywKLSAgICAgICAgICAgICAgICAgICAgJ19fbG9hZGVyX18nOiBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXJ9CisgICAgICAgICAgICAgICAgICAgICdfX2xvYWRlcl9fJzogbWFjaGluZXJ5LkZyb3plbkltcG9ydGVyLAorICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICBmb3IgYXR0ciwgdmFsdWUgaW4gY2hlY2suaXRlbXMoKToKICAgICAgICAgICAgICAgICBhdHRyX3ZhbHVlID0gZ2V0YXR0cihtb2R1bGUsIGF0dHIpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhdHRyX3ZhbHVlLCB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3IgX19waGVsbG9fXy5zcGFtLiVzLCAlciAhPSAlciIgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGF0dHIsIGF0dHJfdmFsdWUsIHZhbHVlKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LmdldHZhbHVlKCksICdIZWxsbyB3b3JsZCFcbicpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIobW9kdWxlLCAnX19maWxlX18nKSkKIAogICAgIGRlZiB0ZXN0X21vZHVsZV9yZXVzZShzZWxmKToKICAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUoJ19faGVsbG9fXycpLCBjYXB0dXJlZF9zdGRvdXQoKSBhcyBzdGRvdXQ6CiAgICAgICAgICAgICBtb2R1bGUxID0gbWFjaGluZXJ5LkZyb3plbkltcG9ydGVyLmxvYWRfbW9kdWxlKCdfX2hlbGxvX18nKQogICAgICAgICAgICAgbW9kdWxlMiA9IG1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlci5sb2FkX21vZHVsZSgnX19oZWxsb19fJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtb2R1bGUxIGlzIG1vZHVsZTIpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKG1vZHVsZTEsIG1vZHVsZTIpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0ZG91dC5nZXR2YWx1ZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSGVsbG8gd29ybGQhXG5IZWxsbyB3b3JsZCFcbicpCiAKKyAgICBkZWYgdGVzdF9tb2R1bGVfcmVwcihzZWxmKToKKyAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUoJ19faGVsbG9fXycpLCBjYXB0dXJlZF9zdGRvdXQoKToKKyAgICAgICAgICAgIG1vZHVsZSA9IG1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlci5sb2FkX21vZHVsZSgnX19oZWxsb19fJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihtb2R1bGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPG1vZHVsZSAnX19oZWxsb19fJyAoZnJvemVuKT4iKQorCiAgICAgZGVmIHRlc3Rfc3RhdGVfYWZ0ZXJfZmFpbHVyZShzZWxmKToKICAgICAgICAgIyBObyB3YXkgdG8gdHJpZ2dlciBhbiBlcnJvciBpbiBhIGZyb3plbiBtb2R1bGUuCiAgICAgICAgIHBhc3MKIAogICAgIGRlZiB0ZXN0X3VubG9hZGFibGUoc2VsZik6CiAgICAgICAgIGFzc2VydCBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIuZmluZF9tb2R1bGUoJ19ub3RfcmVhbCcpIGlzIE5vbmUKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgbWFjaGluZXJ5LkZyb3plbkltcG9ydGVyLmxvYWRfbW9kdWxlKCdfbm90X3JlYWwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5uYW1lLCAnX25vdF9yZWFsJykKIAogCiBjbGFzcyBJbnNwZWN0TG9hZGVyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtNzgsNyArOTMsNyBAQAogICAgIGRlZiB0ZXN0X2dldF9zb3VyY2Uoc2VsZik6CiAgICAgICAgICMgU2hvdWxkIGFsd2F5cyByZXR1cm4gTm9uZS4KICAgICAgICAgcmVzdWx0ID0gbWFjaGluZXJ5LkZyb3plbkltcG9ydGVyLmdldF9zb3VyY2UoJ19faGVsbG9fXycpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXN1bHQgaXMgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocmVzdWx0KQogCiAgICAgZGVmIHRlc3RfaXNfcGFja2FnZShzZWxmKToKICAgICAgICAgIyBTaG91bGQgYmUgYWJsZSB0byB0ZWxsIHdoYXQgaXMgYSBwYWNrYWdlLgpAQCAtODYsMTQgKzEwMSwxNSBAQAogICAgICAgICAgICAgICAgICAgICAoJ19fcGhlbGxvX18uc3BhbScsIEZhbHNlKSkKICAgICAgICAgZm9yIG5hbWUsIGlzX3BhY2thZ2UgaW4gdGVzdF9mb3I6CiAgICAgICAgICAgICByZXN1bHQgPSBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIuaXNfcGFja2FnZShuYW1lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJvb2wocmVzdWx0KSA9PSBpc19wYWNrYWdlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChib29sKHJlc3VsdCksIGlzX3BhY2thZ2UpCiAKICAgICBkZWYgdGVzdF9mYWlsdXJlKHNlbGYpOgogICAgICAgICAjIFJhaXNlIEltcG9ydEVycm9yIGZvciBtb2R1bGVzIHRoYXQgYXJlIG5vdCBmcm96ZW4uCiAgICAgICAgIGZvciBtZXRoX25hbWUgaW4gKCdnZXRfY29kZScsICdnZXRfc291cmNlJywgJ2lzX3BhY2thZ2UnKToKICAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIobWFjaGluZXJ5LkZyb3plbkltcG9ydGVyLCBtZXRoX25hbWUpCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgICAgIG1ldGhvZCgnaW1wb3J0bGliJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsICdpbXBvcnRsaWInKQogCiAKIGRlZiB0ZXN0X21haW4oKToKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfX19wYWNrYWdlX18ucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy90ZXN0X19fcGFja2FnZV9fLnB5CmluZGV4IDUwNTZhZTUuLjc4M2NkZTEgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfX19wYWNrYWdlX18ucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9fX3BhY2thZ2VfXy5weQpAQCAtNjcsNyArNjcsNyBAQAogCiAgICAgZGVmIHRlc3RfYnVua19fcGFja2FnZV9fKHNlbGYpOgogICAgICAgICBnbG9iYWxzID0geydfX3BhY2thZ2VfXyc6IDQyfQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CiAgICAgICAgICAgICBpbXBvcnRfdXRpbC5pbXBvcnRfKCcnLCBnbG9iYWxzLCB7fSwgWydyZWxpbXBvcnQnXSwgMSkKIAogCmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy90ZXN0X2FwaS5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfYXBpLnB5CmluZGV4IDkwNzVkNDIuLjJmYTFmOTAgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfYXBpLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfYXBpLnB5CkBAIC0xMiw2ICsxMiwxMyBAQAogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CiAgICAgICAgICAgICB1dGlsLmltcG9ydF8oNDIpCiAKKyAgICBkZWYgdGVzdF9uZWdhdGl2ZV9sZXZlbChzZWxmKToKKyAgICAgICAgIyBSYWlzZSBWYWx1ZUVycm9yIHdoZW4gYSBuZWdhdGl2ZSBsZXZlbCBpcyBzcGVjaWZpZWQuCisgICAgICAgICMgUEVQIDMyOCBkaWQgYXdheSB3aXRoIHN5cy5tb2R1bGUgTm9uZSBlbnRyaWVzIGFuZCB0aGUgYW1iaWd1aXR5IG9mCisgICAgICAgICMgYWJzb2x1dGUvcmVsYXRpdmUgaW1wb3J0cy4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIHV0aWwuaW1wb3J0Xygnb3MnLCBnbG9iYWxzKCksIGxldmVsPS0xKQorCiAKIGRlZiB0ZXN0X21haW4oKToKICAgICBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0CmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy90ZXN0X2NhY2hpbmcucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy90ZXN0X2NhY2hpbmcucHkKaW5kZXggNDhkYzY0My4uYmY2ODAyNyAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9jYWNoaW5nLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfY2FjaGluZy5weQpAQCAtMzQsOCArMzQsOSBAQAogICAgICAgICBuYW1lID0gJ3VzaW5nX05vbmUnCiAgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpOgogICAgICAgICAgICAgc3lzLm1vZHVsZXNbbmFtZV0gPSBOb25lCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgICAgIGltcG9ydF91dGlsLmltcG9ydF8obmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsIG5hbWUpCiAKICAgICBkZWYgY3JlYXRlX21vY2soc2VsZiwgKm5hbWVzLCByZXR1cm5fPU5vbmUpOgogICAgICAgICBtb2NrID0gdXRpbC5tb2NrX21vZHVsZXMoKm5hbWVzKQpAQCAtNjQsNyArNjUsOCBAQAogICAgICAgICAgICAgd2l0aCB1dGlsLmltcG9ydF9zdGF0ZShtZXRhX3BhdGg9W2ltcG9ydGVyXSk6CiAgICAgICAgICAgICAgICAgbW9kdWxlID0gaW1wb3J0X3V0aWwuaW1wb3J0XygncGtnLm1vZHVsZScpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIobW9kdWxlLCAnbW9kdWxlJykpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlkKG1vZHVsZS5tb2R1bGUpLCBpZChzeXMubW9kdWxlc1sncGtnLm1vZHVsZSddKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlkKG1vZHVsZS5tb2R1bGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQoc3lzLm1vZHVsZXNbJ3BrZy5tb2R1bGUnXSkpCiAKICAgICAjIFNlZSB0ZXN0X3VzaW5nX2NhY2hlX2FmdGVyX2xvYWRlcigpIGZvciByZWFzb25pbmcuCiAgICAgQGltcG9ydF91dGlsLmltcG9ydGxpYl9vbmx5CmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy90ZXN0X2Zyb21saXN0LnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9mcm9tbGlzdC5weQppbmRleCBiOTAzZThlLi40ZmY1ZjVlIDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy90ZXN0X2Zyb21saXN0LnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfZnJvbWxpc3QucHkKQEAgLTEsNiArMSw3IEBACiAiIiJUZXN0IHRoYXQgdGhlIHNlbWFudGljcyByZWxhdGluZyB0byB0aGUgJ2Zyb21saXN0JyBhcmd1bWVudCBhcmUgY29ycmVjdC4iIiIKIGZyb20gLi4gaW1wb3J0IHV0aWwKIGZyb20gLiBpbXBvcnQgdXRpbCBhcyBpbXBvcnRfdXRpbAoraW1wb3J0IGltcAogaW1wb3J0IHVuaXR0ZXN0CiAKIGNsYXNzIFJldHVyblZhbHVlKHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTczLDcgKzc0LDggQEAKICAgICBkZWYgdGVzdF9ub19tb2R1bGVfZnJvbV9wYWNrYWdlKHNlbGYpOgogICAgICAgICAjIFtubyBtb2R1bGVdCiAgICAgICAgIHdpdGggdXRpbC5tb2NrX21vZHVsZXMoJ3BrZy5fX2luaXRfXycpIGFzIGltcG9ydGVyOgotICAgICAgICAgICAgd2l0aCB1dGlsLmltcG9ydF9zdGF0ZShtZXRhX3BhdGg9W2ltcG9ydGVyXSk6CisgICAgICAgICAgICB3aXRoIHV0aWwuaW1wb3J0X3N0YXRlKG1ldGFfcGF0aD1baW1wb3J0ZXJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2hvb2tzPVtpbXAuTnVsbEltcG9ydGVyXSk6CiAgICAgICAgICAgICAgICAgbW9kdWxlID0gaW1wb3J0X3V0aWwuaW1wb3J0XygncGtnJywgZnJvbWxpc3Q9J25vbl9leGlzdGVudCcpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19uYW1lX18sICdwa2cnKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3QgaGFzYXR0cihtb2R1bGUsICdub25fZXhpc3RlbnQnKSkKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfbWV0YV9wYXRoLnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9tZXRhX3BhdGgucHkKaW5kZXggM2IxMzBjOS4uNGQ4NWY4MCAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9tZXRhX3BhdGgucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9tZXRhX3BhdGgucHkKQEAgLTEsNyArMSwxMCBAQAogZnJvbSAuLiBpbXBvcnQgdXRpbAogZnJvbSAuIGltcG9ydCB1dGlsIGFzIGltcG9ydF91dGlsCitpbXBvcnQgaW1wb3J0bGliLl9ib290c3RyYXAKK2ltcG9ydCBzeXMKIGZyb20gdHlwZXMgaW1wb3J0IE1ldGhvZFR5cGUKIGltcG9ydCB1bml0dGVzdAoraW1wb3J0IHdhcm5pbmdzCiAKIAogY2xhc3MgQ2FsbGluZ09yZGVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTMzLDYgKzM2LDIxIEBACiAgICAgICAgICAgICB3aXRoIHV0aWwuaW1wb3J0X3N0YXRlKG1ldGFfcGF0aD1bZmlyc3QsIHNlY29uZF0pOgogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1wb3J0X3V0aWwuaW1wb3J0Xyhtb2RfbmFtZSksIDQyKQogCisgICAgZGVmIHRlc3RfZW1wdHkoc2VsZik6CisgICAgICAgICMgUmFpc2UgYW4gSW1wb3J0V2FybmluZyBpZiBzeXMubWV0YV9wYXRoIGlzIGVtcHR5LgorICAgICAgICBtb2R1bGVfbmFtZSA9ICdub3RoaW5nJworICAgICAgICB0cnk6CisgICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbbW9kdWxlX25hbWVdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgd2l0aCB1dGlsLmltcG9ydF9zdGF0ZShtZXRhX3BhdGg9W10pOgorICAgICAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncyhyZWNvcmQ9VHJ1ZSkgYXMgdzoKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2Fsd2F5cycpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoaW1wb3J0bGliLl9ib290c3RyYXAuX2ZpbmRfbW9kdWxlKCdub3RoaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odyksIDEpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3Mod1stMV0uY2F0ZWdvcnksIEltcG9ydFdhcm5pbmcpKQorCiAKIGNsYXNzIENhbGxTaWduYXR1cmUodW5pdHRlc3QuVGVzdENhc2UpOgogCkBAIC02NCw3ICs4Miw3IEBACiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYXJncyksIDIpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oa3dhcmdzKSwgMCkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZ3NbMF0sIG1vZF9uYW1lKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhcmdzWzFdIGlzIE5vbmUpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoYXJnc1sxXSkKIAogICAgIGRlZiB0ZXN0X3dpdGhfcGF0aChzZWxmKToKICAgICAgICAgIyBbcGF0aCBzZXRdCkBAIC04NCw3ICsxMDIsNyBAQAogICAgICAgICAgICAgICAgICMgQXNzdW1pbmcgYWxsIGFyZ3VtZW50cyBhcmUgcG9zaXRpb25hbC4KICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGt3YXJncykKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZ3NbMF0sIG1vZF9uYW1lKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhcmdzWzFdIGlzIHBhdGgpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhhcmdzWzFdLCBwYXRoKQogCiAKIApkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9wYWNrYWdlcy5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfcGFja2FnZXMucHkKaW5kZXggZmFhZGMzMi4uYmZhMThkYyAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9wYWNrYWdlcy5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy90ZXN0X3BhY2thZ2VzLnB5CkBAIC0zLDYgKzMsNyBAQAogaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgaW1wb3J0bGliCitmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIAogCiBjbGFzcyBQYXJlbnRNb2R1bGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0xMywxOSArMTQsOTMgQEAKICAgICAgICAgd2l0aCB1dGlsLm1vY2tfbW9kdWxlcygncGtnLl9faW5pdF9fJywgJ3BrZy5tb2R1bGUnKSBhcyBtb2NrOgogICAgICAgICAgICAgd2l0aCB1dGlsLmltcG9ydF9zdGF0ZShtZXRhX3BhdGg9W21vY2tdKToKICAgICAgICAgICAgICAgICBtb2R1bGUgPSBpbXBvcnRfdXRpbC5pbXBvcnRfKCdwa2cubW9kdWxlJykKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3BrZycgaW4gc3lzLm1vZHVsZXMpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigncGtnJywgc3lzLm1vZHVsZXMpCiAKICAgICBkZWYgdGVzdF9iYWRfcGFyZW50KHNlbGYpOgogICAgICAgICB3aXRoIHV0aWwubW9ja19tb2R1bGVzKCdwa2cubW9kdWxlJykgYXMgbW9jazoKICAgICAgICAgICAgIHdpdGggdXRpbC5pbXBvcnRfc3RhdGUobWV0YV9wYXRoPVttb2NrXSk6Ci0gICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcikgYXMgY206CiAgICAgICAgICAgICAgICAgICAgIGltcG9ydF91dGlsLmltcG9ydF8oJ3BrZy5tb2R1bGUnKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsICdwa2cnKQorCisgICAgZGVmIHRlc3RfcmFpc2luZ19wYXJlbnRfYWZ0ZXJfaW1wb3J0aW5nX2NoaWxkKHNlbGYpOgorICAgICAgICBkZWYgX19pbml0X18oKToKKyAgICAgICAgICAgIGltcG9ydCBwa2cubW9kdWxlCisgICAgICAgICAgICAxLzAKKyAgICAgICAgbW9jayA9IHV0aWwubW9ja19tb2R1bGVzKCdwa2cuX19pbml0X18nLCAncGtnLm1vZHVsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVfY29kZT17J3BrZyc6IF9faW5pdF9ffSkKKyAgICAgICAgd2l0aCBtb2NrOgorICAgICAgICAgICAgd2l0aCB1dGlsLmltcG9ydF9zdGF0ZShtZXRhX3BhdGg9W21vY2tdKToKKyAgICAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKToKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0X3V0aWwuaW1wb3J0XygncGtnJykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdwa2cnLCBzeXMubW9kdWxlcykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdwa2cubW9kdWxlJywgc3lzLm1vZHVsZXMpCisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CisgICAgICAgICAgICAgICAgICAgIGltcG9ydF91dGlsLmltcG9ydF8oJ3BrZy5tb2R1bGUnKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ3BrZycsIHN5cy5tb2R1bGVzKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3BrZy5tb2R1bGUnLCBzeXMubW9kdWxlcykKKworICAgIGRlZiB0ZXN0X3JhaXNpbmdfcGFyZW50X2FmdGVyX3JlbGF0aXZlX2ltcG9ydGluZ19jaGlsZChzZWxmKToKKyAgICAgICAgZGVmIF9faW5pdF9fKCk6CisgICAgICAgICAgICBmcm9tIC4gaW1wb3J0IG1vZHVsZQorICAgICAgICAgICAgMS8wCisgICAgICAgIG1vY2sgPSB1dGlsLm1vY2tfbW9kdWxlcygncGtnLl9faW5pdF9fJywgJ3BrZy5tb2R1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlX2NvZGU9eydwa2cnOiBfX2luaXRfX30pCisgICAgICAgIHdpdGggbW9jazoKKyAgICAgICAgICAgIHdpdGggdXRpbC5pbXBvcnRfc3RhdGUobWV0YV9wYXRoPVttb2NrXSk6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcygoWmVyb0RpdmlzaW9uRXJyb3IsIEltcG9ydEVycm9yKSk6CisgICAgICAgICAgICAgICAgICAgICMgVGhpcyByYWlzZXMgSW1wb3J0RXJyb3Igb24gdGhlICJmcm9tIC4gaW1wb3J0IG1vZHVsZSIKKyAgICAgICAgICAgICAgICAgICAgIyBsaW5lLCBub3Qgc3VyZSB3aHkuCisgICAgICAgICAgICAgICAgICAgIGltcG9ydF91dGlsLmltcG9ydF8oJ3BrZycpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbigncGtnJywgc3lzLm1vZHVsZXMpCisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcygoWmVyb0RpdmlzaW9uRXJyb3IsIEltcG9ydEVycm9yKSk6CisgICAgICAgICAgICAgICAgICAgIGltcG9ydF91dGlsLmltcG9ydF8oJ3BrZy5tb2R1bGUnKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ3BrZycsIHN5cy5tb2R1bGVzKQorICAgICAgICAgICAgICAgICMgWFhYIEZhbHNlCisgICAgICAgICAgICAgICAgI3NlbGYuYXNzZXJ0SW4oJ3BrZy5tb2R1bGUnLCBzeXMubW9kdWxlcykKKworICAgIGRlZiB0ZXN0X3JhaXNpbmdfcGFyZW50X2FmdGVyX2RvdWJsZV9yZWxhdGl2ZV9pbXBvcnRpbmdfY2hpbGQoc2VsZik6CisgICAgICAgIGRlZiBfX2luaXRfXygpOgorICAgICAgICAgICAgZnJvbSAuLnN1YnBrZyBpbXBvcnQgbW9kdWxlCisgICAgICAgICAgICAxLzAKKyAgICAgICAgbW9jayA9IHV0aWwubW9ja19tb2R1bGVzKCdwa2cuX19pbml0X18nLCAncGtnLnN1YnBrZy5fX2luaXRfXycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGtnLnN1YnBrZy5tb2R1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlX2NvZGU9eydwa2cuc3VicGtnJzogX19pbml0X199KQorICAgICAgICB3aXRoIG1vY2s6CisgICAgICAgICAgICB3aXRoIHV0aWwuaW1wb3J0X3N0YXRlKG1ldGFfcGF0aD1bbW9ja10pOgorICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoKFplcm9EaXZpc2lvbkVycm9yLCBJbXBvcnRFcnJvcikpOgorICAgICAgICAgICAgICAgICAgICAjIFRoaXMgcmFpc2VzIEltcG9ydEVycm9yIG9uIHRoZSAiZnJvbSAuLnN1YnBrZyBpbXBvcnQgbW9kdWxlIgorICAgICAgICAgICAgICAgICAgICAjIGxpbmUsIG5vdCBzdXJlIHdoeS4KKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0X3V0aWwuaW1wb3J0XygncGtnLnN1YnBrZycpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbigncGtnLnN1YnBrZycsIHN5cy5tb2R1bGVzKQorICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoKFplcm9EaXZpc2lvbkVycm9yLCBJbXBvcnRFcnJvcikpOgorICAgICAgICAgICAgICAgICAgICBpbXBvcnRfdXRpbC5pbXBvcnRfKCdwa2cuc3VicGtnLm1vZHVsZScpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbigncGtnLnN1YnBrZycsIHN5cy5tb2R1bGVzKQorICAgICAgICAgICAgICAgICMgWFhYIEZhbHNlCisgICAgICAgICAgICAgICAgI3NlbGYuYXNzZXJ0SW4oJ3BrZy5zdWJwa2cubW9kdWxlJywgc3lzLm1vZHVsZXMpCiAKICAgICBkZWYgdGVzdF9tb2R1bGVfbm90X3BhY2thZ2Uoc2VsZik6CiAgICAgICAgICMgVHJ5IHRvIGltcG9ydCBhIHN1Ym1vZHVsZSBmcm9tIGEgbm9uLXBhY2thZ2Ugc2hvdWxkIHJhaXNlIEltcG9ydEVycm9yLgogICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc3lzLCAnX19wYXRoX18nKQotICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcikgYXMgY206CiAgICAgICAgICAgICBpbXBvcnRfdXRpbC5pbXBvcnRfKCdzeXMubm9fc3VibW9kdWxlc19oZXJlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ubmFtZSwgJ3N5cy5ub19zdWJtb2R1bGVzX2hlcmUnKQorCisgICAgZGVmIHRlc3RfbW9kdWxlX25vdF9wYWNrYWdlX2J1dF9zaWRlX2VmZmVjdHMoc2VsZik6CisgICAgICAgICMgSWYgYSBtb2R1bGUgaW5qZWN0cyBzb21ldGhpbmcgaW50byBzeXMubW9kdWxlcyBhcyBhIHNpZGUtZWZmZWN0LCB0aGVuCisgICAgICAgICMgcGljayB1cCBvbiB0aGF0IGZhY3QuCisgICAgICAgIG5hbWUgPSAnbW9kJworICAgICAgICBzdWJuYW1lID0gbmFtZSArICcuYicKKyAgICAgICAgZGVmIG1vZHVsZV9pbmplY3Rpb24oKToKKyAgICAgICAgICAgIHN5cy5tb2R1bGVzW3N1Ym5hbWVdID0gJ3RvdGFsIGJ1bmsnCisgICAgICAgIG1vY2tfbW9kdWxlcyA9IHV0aWwubW9ja19tb2R1bGVzKCdtb2QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVfY29kZT17J21vZCc6IG1vZHVsZV9pbmplY3Rpb259KQorICAgICAgICB3aXRoIG1vY2tfbW9kdWxlcyBhcyBtb2NrOgorICAgICAgICAgICAgd2l0aCB1dGlsLmltcG9ydF9zdGF0ZShtZXRhX3BhdGg9W21vY2tdKToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZHVsZSA9IGltcG9ydF91dGlsLmltcG9ydF8oc3VibmFtZSkKKyAgICAgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICAgICBzdXBwb3J0LnVubG9hZChzdWJuYW1lKQogCiAKIGRlZiB0ZXN0X21haW4oKToKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfcGF0aC5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfcGF0aC5weQppbmRleCAyZmFhMjMxLi4wYzA4NmNlIDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy90ZXN0X3BhdGgucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9wYXRoLnB5CkBAIC05LDYgKzksNyBAQAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBmcm9tIHR5cGVzIGltcG9ydCBNZXRob2RUeXBlCiBpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB3YXJuaW5ncwogCiAKIGNsYXNzIEZpbmRlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTE5LDcgKzIwLDcgQEAKICAgICAgICAgIyBUZXN0IE5vbmUgcmV0dXJuZWQgdXBvbiBub3QgZmluZGluZyBhIHN1aXRhYmxlIGZpbmRlci4KICAgICAgICAgbW9kdWxlID0gJzx0ZXN0IG1vZHVsZT4nCiAgICAgICAgIHdpdGggdXRpbC5pbXBvcnRfc3RhdGUoKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYWNoaW5lcnkuUGF0aEZpbmRlci5maW5kX21vZHVsZShtb2R1bGUpIGlzIE5vbmUpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtYWNoaW5lcnkuUGF0aEZpbmRlci5maW5kX21vZHVsZShtb2R1bGUpKQogCiAgICAgZGVmIHRlc3Rfc3lzX3BhdGgoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0IHN5cy5wYXRoIGlzIHVzZWQgd2hlbiAncGF0aCcgaXMgTm9uZS4KQEAgLTMwLDcgKzMxLDcgQEAKICAgICAgICAgd2l0aCB1dGlsLmltcG9ydF9zdGF0ZShwYXRoX2ltcG9ydGVyX2NhY2hlPXtwYXRoOiBpbXBvcnRlcn0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD1bcGF0aF0pOgogICAgICAgICAgICAgbG9hZGVyID0gbWFjaGluZXJ5LlBhdGhGaW5kZXIuZmluZF9tb2R1bGUobW9kdWxlKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvYWRlciBpcyBpbXBvcnRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMobG9hZGVyLCBpbXBvcnRlcikKIAogICAgIGRlZiB0ZXN0X3BhdGgoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0ICdwYXRoJyBpcyB1c2VkIHdoZW4gc2V0LgpAQCAtNDAsNyArNDEsMTYgQEAKICAgICAgICAgaW1wb3J0ZXIgPSB1dGlsLm1vY2tfbW9kdWxlcyhtb2R1bGUpCiAgICAgICAgIHdpdGggdXRpbC5pbXBvcnRfc3RhdGUocGF0aF9pbXBvcnRlcl9jYWNoZT17cGF0aDogaW1wb3J0ZXJ9KToKICAgICAgICAgICAgIGxvYWRlciA9IG1hY2hpbmVyeS5QYXRoRmluZGVyLmZpbmRfbW9kdWxlKG1vZHVsZSwgW3BhdGhdKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxvYWRlciBpcyBpbXBvcnRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMobG9hZGVyLCBpbXBvcnRlcikKKworICAgIGRlZiB0ZXN0X2VtcHR5X2xpc3Qoc2VsZik6CisgICAgICAgICMgQW4gZW1wdHkgbGlzdCBzaG91bGQgbm90IGNvdW50IGFzIGFza2luZyBmb3Igc3lzLnBhdGguCisgICAgICAgIG1vZHVsZSA9ICdtb2R1bGUnCisgICAgICAgIHBhdGggPSAnPHRlc3QgcGF0aD4nCisgICAgICAgIGltcG9ydGVyID0gdXRpbC5tb2NrX21vZHVsZXMobW9kdWxlKQorICAgICAgICB3aXRoIHV0aWwuaW1wb3J0X3N0YXRlKHBhdGhfaW1wb3J0ZXJfY2FjaGU9e3BhdGg6IGltcG9ydGVyfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPVtwYXRoXSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtYWNoaW5lcnkuUGF0aEZpbmRlci5maW5kX21vZHVsZSgnbW9kdWxlJywgW10pKQogCiAgICAgZGVmIHRlc3RfcGF0aF9ob29rcyhzZWxmKToKICAgICAgICAgIyBUZXN0IHRoYXQgc3lzLnBhdGhfaG9va3MgaXMgdXNlZC4KQEAgLTUxLDgxICs2MSwzOCBAQAogICAgICAgICBob29rID0gaW1wb3J0X3V0aWwubW9ja19wYXRoX2hvb2socGF0aCwgaW1wb3J0ZXI9aW1wb3J0ZXIpCiAgICAgICAgIHdpdGggdXRpbC5pbXBvcnRfc3RhdGUocGF0aF9ob29rcz1baG9va10pOgogICAgICAgICAgICAgbG9hZGVyID0gbWFjaGluZXJ5LlBhdGhGaW5kZXIuZmluZF9tb2R1bGUobW9kdWxlLCBbcGF0aF0pCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobG9hZGVyIGlzIGltcG9ydGVyKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBhdGggaW4gc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGVbcGF0aF0gaXMgaW1wb3J0ZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKGxvYWRlciwgaW1wb3J0ZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKHBhdGgsIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhzeXMucGF0aF9pbXBvcnRlcl9jYWNoZVtwYXRoXSwgaW1wb3J0ZXIpCiAKLSAgICBkZWYgdGVzdF9wYXRoX2ltcG9ydGVyX2NhY2hlX2hhc19Ob25lKHNlbGYpOgotICAgICAgICAjIFRlc3QgdGhhdCBpZiBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZSBoYXMgTm9uZSB0aGF0IE5vbmUgaXMgcmV0dXJuZWQuCi0gICAgICAgIGNsZWFyX2NhY2hlID0ge3BhdGg6IE5vbmUgZm9yIHBhdGggaW4gc3lzLnBhdGh9Ci0gICAgICAgIHdpdGggdXRpbC5pbXBvcnRfc3RhdGUocGF0aF9pbXBvcnRlcl9jYWNoZT1jbGVhcl9jYWNoZSk6Ci0gICAgICAgICAgICBmb3IgbmFtZSBpbiAoJ2FzeW5jaGF0JywgJ3N5cycsICc8dGVzdCBtb2R1bGU+Jyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hY2hpbmVyeS5QYXRoRmluZGVyLmZpbmRfbW9kdWxlKG5hbWUpIGlzIE5vbmUpCisgICAgZGVmIHRlc3RfZW1wdHlfcGF0aF9ob29rcyhzZWxmKToKKyAgICAgICAgIyBUZXN0IHRoYXQgaWYgc3lzLnBhdGhfaG9va3MgaXMgZW1wdHkgYSB3YXJuaW5nIGlzIHJhaXNlZCwKKyAgICAgICAgIyBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZSBnZXRzIE5vbmUgc2V0LCBhbmQgUGF0aEZpbmRlciByZXR1cm5zIE5vbmUuCisgICAgICAgIHBhdGhfZW50cnkgPSAnYm9ndXNfcGF0aCcKKyAgICAgICAgd2l0aCB1dGlsLmltcG9ydF9zdGF0ZShwYXRoX2ltcG9ydGVyX2NhY2hlPXt9LCBwYXRoX2hvb2tzPVtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9W3BhdGhfZW50cnldKToKKyAgICAgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MocmVjb3JkPVRydWUpIGFzIHc6CisgICAgICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdhbHdheXMnKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKG1hY2hpbmVyeS5QYXRoRmluZGVyLmZpbmRfbW9kdWxlKCdvcycpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlW3BhdGhfZW50cnldKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHcpLCAxKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKHdbLTFdLmNhdGVnb3J5LCBJbXBvcnRXYXJuaW5nKSkKIAotICAgIGRlZiB0ZXN0X3BhdGhfaW1wb3J0ZXJfY2FjaGVfaGFzX05vbmVfY29udGludWVzKHNlbGYpOgotICAgICAgICAjIFRlc3QgdGhhdCBoYXZpbmcgTm9uZSBpbiBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZSBjYXVzZXMgdGhlIHNlYXJjaCB0bwotICAgICAgICAjIGNvbnRpbnVlLgotICAgICAgICBwYXRoID0gJzx0ZXN0IHBhdGg+JworICAgIGRlZiB0ZXN0X3BhdGhfaW1wb3J0ZXJfY2FjaGVfZW1wdHlfc3RyaW5nKHNlbGYpOgorICAgICAgICAjIFRoZSBlbXB0eSBzdHJpbmcgc2hvdWxkIGNyZWF0ZSBhIGZpbmRlciB1c2luZyB0aGUgY3dkLgorICAgICAgICBwYXRoID0gJycKICAgICAgICAgbW9kdWxlID0gJzx0ZXN0IG1vZHVsZT4nCiAgICAgICAgIGltcG9ydGVyID0gdXRpbC5tb2NrX21vZHVsZXMobW9kdWxlKQotICAgICAgICB3aXRoIHV0aWwuaW1wb3J0X3N0YXRlKHBhdGg9WycxJywgJzInXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2ltcG9ydGVyX2NhY2hlPXsnMSc6IE5vbmUsICcyJzogaW1wb3J0ZXJ9KToKKyAgICAgICAgaG9vayA9IGltcG9ydF91dGlsLm1vY2tfcGF0aF9ob29rKG9zLmN1cmRpciwgaW1wb3J0ZXI9aW1wb3J0ZXIpCisgICAgICAgIHdpdGggdXRpbC5pbXBvcnRfc3RhdGUocGF0aD1bcGF0aF0sIHBhdGhfaG9va3M9W2hvb2tdKToKICAgICAgICAgICAgIGxvYWRlciA9IG1hY2hpbmVyeS5QYXRoRmluZGVyLmZpbmRfbW9kdWxlKG1vZHVsZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsb2FkZXIgaXMgaW1wb3J0ZXIpCi0KLQotCi1jbGFzcyBEZWZhdWx0UGF0aEZpbmRlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgICIiIlRlc3QgaW1wb3J0bGliLl9ib290c3RyYXAuX0RlZmF1bHRQYXRoRmluZGVyLiIiIgotCi0gICAgZGVmIHRlc3RfaW1wbGljaXRfaG9va3Moc2VsZik6Ci0gICAgICAgICMgVGVzdCB0aGF0IHRoZSBpbXBsaWNpdCBwYXRoIGhvb2tzIGFyZSB1c2VkLgotICAgICAgICBiYWRfcGF0aCA9ICc8cGF0aD4nCi0gICAgICAgIG1vZHVsZSA9ICc8bW9kdWxlPicKLSAgICAgICAgYXNzZXJ0IG5vdCBvcy5wYXRoLmV4aXN0cyhiYWRfcGF0aCkKLSAgICAgICAgZXhpc3RpbmdfcGF0aCA9IHRlbXBmaWxlLm1rZHRlbXAoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aXRoIHV0aWwuaW1wb3J0X3N0YXRlKCk6Ci0gICAgICAgICAgICAgICAgbm90aGluZyA9IF9ib290c3RyYXAuX0RlZmF1bHRQYXRoRmluZGVyLmZpbmRfbW9kdWxlKG1vZHVsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD1bZXhpc3RpbmdfcGF0aF0pCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdGhpbmcgaXMgTm9uZSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhpc3RpbmdfcGF0aCBpbiBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZSkKLSAgICAgICAgICAgICAgICByZXN1bHQgPSBpc2luc3RhbmNlKHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlW2V4aXN0aW5nX3BhdGhdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wLk51bGxJbXBvcnRlcikKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlc3VsdCkKLSAgICAgICAgICAgICAgICBub3RoaW5nID0gX2Jvb3RzdHJhcC5fRGVmYXVsdFBhdGhGaW5kZXIuZmluZF9tb2R1bGUobW9kdWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD1bYmFkX3BhdGhdKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3RoaW5nIGlzIE5vbmUpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJhZF9wYXRoIGluIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlW2JhZF9wYXRoXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXAuTnVsbEltcG9ydGVyKSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIG9zLnJtZGlyKGV4aXN0aW5nX3BhdGgpCi0KLQotICAgIGRlZiB0ZXN0X3BhdGhfaW1wb3J0ZXJfY2FjaGVfaGFzX05vbmUoc2VsZik6Ci0gICAgICAgICMgVGVzdCB0aGF0IHRoZSBkZWZhdWx0IGhvb2sgaXMgdXNlZCB3aGVuIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlCi0gICAgICAgICMgY29udGFpbnMgTm9uZSBmb3IgYSBwYXRoLgotICAgICAgICBtb2R1bGUgPSAnPHRlc3QgbW9kdWxlPicKLSAgICAgICAgaW1wb3J0ZXIgPSB1dGlsLm1vY2tfbW9kdWxlcyhtb2R1bGUpCi0gICAgICAgIHBhdGggPSAnPHRlc3QgcGF0aD4nCi0gICAgICAgICMgWFhYIE5vdCBibGFja2JveC4KLSAgICAgICAgb3JpZ2luYWxfaG9vayA9IF9ib290c3RyYXAuX0RFRkFVTFRfUEFUSF9IT09LCi0gICAgICAgIG1vY2tfaG9vayA9IGltcG9ydF91dGlsLm1vY2tfcGF0aF9ob29rKHBhdGgsIGltcG9ydGVyPWltcG9ydGVyKQotICAgICAgICBfYm9vdHN0cmFwLl9ERUZBVUxUX1BBVEhfSE9PSyA9IG1vY2tfaG9vawotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aXRoIHV0aWwuaW1wb3J0X3N0YXRlKHBhdGhfaW1wb3J0ZXJfY2FjaGU9e3BhdGg6IE5vbmV9KToKLSAgICAgICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLl9EZWZhdWx0UGF0aEZpbmRlci5maW5kX21vZHVsZShtb2R1bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9W3BhdGhdKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsb2FkZXIgaXMgaW1wb3J0ZXIpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBfYm9vdHN0cmFwLl9ERUZBVUxUX1BBVEhfSE9PSyA9IG9yaWdpbmFsX2hvb2sKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMobG9hZGVyLCBpbXBvcnRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4ob3MuY3VyZGlyLCBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZSkKIAogCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHJ1bl91bml0dGVzdAotICAgIHJ1bl91bml0dGVzdChGaW5kZXJUZXN0cywgRGVmYXVsdFBhdGhGaW5kZXJUZXN0cykKKyAgICBydW5fdW5pdHRlc3QoRmluZGVyVGVzdHMpCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgdGVzdF9tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfcmVsYXRpdmVfaW1wb3J0cy5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3Rlc3RfcmVsYXRpdmVfaW1wb3J0cy5weQppbmRleCBhMGY2YjJkLi40NTY5YzI2IDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy90ZXN0X3JlbGF0aXZlX2ltcG9ydHMucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdGVzdF9yZWxhdGl2ZV9pbXBvcnRzLnB5CkBAIC0xOTMsNiArMTkzLDIwIEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX25hbWVfXywgJ19fcnVucHlfcGtnX18udW5jbGUuY291c2luJykKICAgICAgICAgc2VsZi5yZWxhdGl2ZV9pbXBvcnRfdGVzdChjcmVhdGUsIGdsb2JhbHNfLCBjYWxsYmFjaykKIAorICAgIGRlZiB0ZXN0X2ltcG9ydF9yZWxhdGl2ZV9pbXBvcnRfbm9fZnJvbWxpc3Qoc2VsZik6CisgICAgICAgICMgSW1wb3J0IGEgcmVsYXRpdmUgbW9kdWxlIHcvIG5vIGZyb21saXN0LgorICAgICAgICBjcmVhdGUgPSBbJ2NyYXNoLl9faW5pdF9fJywgJ2NyYXNoLm1vZCddCisgICAgICAgIGdsb2JhbHNfID0gW3snX19wYWNrYWdlX18nOiAnY3Jhc2gnLCAnX19uYW1lX18nOiAnY3Jhc2gnfV0KKyAgICAgICAgZGVmIGNhbGxiYWNrKGdsb2JhbF8pOgorICAgICAgICAgICAgaW1wb3J0X3V0aWwuaW1wb3J0XygnY3Jhc2gnKQorICAgICAgICAgICAgbW9kID0gaW1wb3J0X3V0aWwuaW1wb3J0XygnbW9kJywgZ2xvYmFsXywge30sIFtdLCAxKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2QuX19uYW1lX18sICdjcmFzaC5tb2QnKQorICAgICAgICBzZWxmLnJlbGF0aXZlX2ltcG9ydF90ZXN0KGNyZWF0ZSwgZ2xvYmFsc18sIGNhbGxiYWNrKQorCisgICAgZGVmIHRlc3RfcmVsYXRpdmVfaW1wb3J0X25vX2dsb2JhbHMoc2VsZik6CisgICAgICAgICMgTm8gZ2xvYmFscyBmb3IgYSByZWxhdGl2ZSBpbXBvcnQgaXMgYW4gZXJyb3IuCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IpOgorICAgICAgICAgICAgaW1wb3J0X3V0aWwuaW1wb3J0Xygnc3lzJywgbGV2ZWw9MSkKIAogCiBkZWYgdGVzdF9tYWluKCk6CmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy91dGlsLnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L2ltcG9ydF8vdXRpbC5weQppbmRleCA2NDljNWVkLi44NmFjMDY1IDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3QvaW1wb3J0Xy91dGlsLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC9pbXBvcnRfL3V0aWwucHkKQEAgLTEsNiArMSw1IEBACiBpbXBvcnQgZnVuY3Rvb2xzCiBpbXBvcnQgaW1wb3J0bGliCi1pbXBvcnQgaW1wb3J0bGliLl9ib290c3RyYXAKIGltcG9ydCB1bml0dGVzdAogCiAKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC9yZWdydGVzdC5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9yZWdydGVzdC5weQppbmRleCBiMTAzYWU3Li5hNWJlMTFmIDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3QvcmVncnRlc3QucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L3JlZ3J0ZXN0LnB5CkBAIC01LDEzICs1LDYgQEAKIE90aGVyd2lzZSBhbGwgY29tbWFuZC1saW5lIG9wdGlvbnMgdmFsaWQgZm9yIHRlc3QucmVncnRlc3QgYXJlIGFsc28gdmFsaWQgZm9yCiB0aGlzIHNjcmlwdC4KIAotWFhYIEZBSUxJTkcKLSAgKiB0ZXN0X2ltcG9ydAotICAgIC0gdGVzdF9pbmNvcnJlY3RfY29kZV9uYW1lCi0gICAgICAgIGZpbGUgbmFtZSBkaWZmZXJpbmcgYmV0d2VlbiBfX2ZpbGVfXyBhbmQgY29fZmlsZW5hbWUgKHI2ODM2MCBvbiB0cnVuaykKLSAgICAtIHRlc3RfaW1wb3J0X2J5X2ZpbGVuYW1lCi0gICAgICAgIGV4Y2VwdGlvbiBmb3IgdHJ5aW5nIHRvIGltcG9ydCBieSBmaWxlIG5hbWUgZG9lcyBub3QgbWF0Y2gKLQogIiIiCiBpbXBvcnQgaW1wb3J0bGliCiBpbXBvcnQgc3lzCkBAIC0xOSwxNyArMTIsNiBAQAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIF9fYnVpbHRpbnNfXy5fX2ltcG9ydF9fID0gaW1wb3J0bGliLl9faW1wb3J0X18KLQotICAgIGV4Y2x1ZGUgPSBbJy0tZXhjbHVkZScsCi0gICAgICAgICAgICAgICAgJ3Rlc3RfZnJvemVuJywgIyBEb2VzIG5vdCBleHBlY3QgX19sb2FkZXJfXyBhdHRyaWJ1dGUKLSAgICAgICAgICAgICAgICAndGVzdF9wa2cnLCAgIyBEb2VzIG5vdCBleHBlY3QgX19sb2FkZXJfXyBhdHRyaWJ1dGUKLSAgICAgICAgICAgICAgICAndGVzdF9weWRvYycsICMgRG9lcyBub3QgZXhwZWN0IF9fbG9hZGVyX18gYXR0cmlidXRlCi0gICAgICAgICAgICAgIF0KLQotICAgICMgU3dpdGNoaW5nIG9uIC0tZXhjbHVkZSBpbXBsaWVzIHJ1bm5pbmcgYWxsIHRlc3QgYnV0IHRoZSBvbmVzIGxpc3RlZCwgc28KLSAgICAjIG9ubHkgdXNlIGl0IHdoZW4gb25lIGlzIG5vdCBydW5uaW5nIGFuIGV4cGxpY2l0IHRlc3QKLSAgICBpZiBsZW4oc3lzLmFyZ3YpID09IDE6Ci0gICAgICAgICMgTm8gcHJvZ3JhbW1hdGljIHdheSB0byBzcGVjaWZ5IHRlc3RzIHRvIGV4Y2x1ZGUKLSAgICAgICAgc3lzLmFyZ3YuZXh0ZW5kKGV4Y2x1ZGUpCisgICAgc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGUuY2xlYXIoKQogCiAgICAgcmVncnRlc3QubWFpbihxdWlldD1UcnVlLCB2ZXJib3NlMj1UcnVlKQpkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L3NvdXJjZS90ZXN0X2FiY19sb2FkZXIucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfYWJjX2xvYWRlci5weQppbmRleCAzMjQ1OTA3Li5hZmNhYWQwIDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfYWJjX2xvYWRlci5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfYWJjX2xvYWRlci5weQpAQCAtNDAsOCArNDAsMTAgQEAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCwgbWFnaWM9aW1wLmdldF9tYWdpYygpKToKICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhwYXRoKQogICAgICAgICBzZWxmLmJ5dGVjb2RlX3BhdGggPSBpbXAuY2FjaGVfZnJvbV9zb3VyY2Uoc2VsZi5wYXRoKQorICAgICAgICBzZWxmLnNvdXJjZV9zaXplID0gbGVuKHNlbGYuc291cmNlKQogICAgICAgICBkYXRhID0gYnl0ZWFycmF5KG1hZ2ljKQotICAgICAgICBkYXRhLmV4dGVuZChtYXJzaGFsLl93X2xvbmcoc2VsZi5zb3VyY2VfbXRpbWUpKQorICAgICAgICBkYXRhLmV4dGVuZChpbXBvcnRsaWIuX3dfbG9uZyhzZWxmLnNvdXJjZV9tdGltZSkpCisgICAgICAgIGRhdGEuZXh0ZW5kKGltcG9ydGxpYi5fd19sb25nKHNlbGYuc291cmNlX3NpemUpKQogICAgICAgICBjb2RlX29iamVjdCA9IGNvbXBpbGUoc2VsZi5zb3VyY2UsIHNlbGYucGF0aCwgJ2V4ZWMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb250X2luaGVyaXQ9VHJ1ZSkKICAgICAgICAgZGF0YS5leHRlbmQobWFyc2hhbC5kdW1wcyhjb2RlX29iamVjdCkpCkBAIC01Niw5ICs1OCw5IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByYWlzZSBJT0Vycm9yCiAKLSAgICBkZWYgcGF0aF9tdGltZShzZWxmLCBwYXRoKToKKyAgICBkZWYgcGF0aF9zdGF0cyhzZWxmLCBwYXRoKToKICAgICAgICAgYXNzZXJ0IHBhdGggPT0gc2VsZi5wYXRoCi0gICAgICAgIHJldHVybiBzZWxmLnNvdXJjZV9tdGltZQorICAgICAgICByZXR1cm4geydtdGltZSc6IHNlbGYuc291cmNlX210aW1lLCAnc2l6ZSc6IHNlbGYuc291cmNlX3NpemV9CiAKICAgICBkZWYgc2V0X2RhdGEoc2VsZiwgcGF0aCwgZGF0YSk6CiAgICAgICAgIHNlbGYud3JpdHRlbltwYXRoXSA9IGJ5dGVzKGRhdGEpCkBAIC0xMDIsNyArMTA0LDcgQEAKICAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiYWx3YXlzIikKICAgICAgICAgICAgIHBhdGggPSBzdXBlcigpLmdldF9maWxlbmFtZShuYW1lKQogICAgICAgICAgICAgYXNzZXJ0IGxlbih3KSA9PSAxCi0gICAgICAgICAgICBhc3NlcnQgaXNzdWJjbGFzcyh3WzBdLmNhdGVnb3J5LCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgYXNzZXJ0IGlzc3ViY2xhc3Mod1swXS5jYXRlZ29yeSwgRGVwcmVjYXRpb25XYXJuaW5nKQogICAgICAgICAgICAgcmV0dXJuIHBhdGgKIAogCkBAIC0xNDYsMTEgKzE0OCwxMiBAQAogICAgICAgICAgICAgc2VsZi5ieXRlY29kZV90b19wYXRoW25hbWVdID0gZGF0YVsncGF0aCddCiAgICAgICAgICAgICBtYWdpYyA9IGRhdGEuZ2V0KCdtYWdpYycsIGltcC5nZXRfbWFnaWMoKSkKICAgICAgICAgICAgIG10aW1lID0gaW1wb3J0bGliLl93X2xvbmcoZGF0YS5nZXQoJ210aW1lJywgc2VsZi5kZWZhdWx0X210aW1lKSkKKyAgICAgICAgICAgIHNvdXJjZV9zaXplID0gaW1wb3J0bGliLl93X2xvbmcobGVuKHNlbGYuc291cmNlKSAmIDB4RkZGRkZGRkYpCiAgICAgICAgICAgICBpZiAnYmMnIGluIGRhdGE6CiAgICAgICAgICAgICAgICAgYmMgPSBkYXRhWydiYyddCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGJjID0gc2VsZi5jb21waWxlX2JjKG5hbWUpCi0gICAgICAgICAgICBzZWxmLm1vZHVsZV9ieXRlY29kZVtuYW1lXSA9IG1hZ2ljICsgbXRpbWUgKyBiYworICAgICAgICAgICAgc2VsZi5tb2R1bGVfYnl0ZWNvZGVbbmFtZV0gPSBtYWdpYyArIG10aW1lICsgc291cmNlX3NpemUgKyBiYwogCiAgICAgZGVmIGNvbXBpbGVfYmMoc2VsZiwgbmFtZSk6CiAgICAgICAgIHNvdXJjZV9wYXRoID0gc2VsZi5tb2R1bGVfcGF0aHMuZ2V0KG5hbWUsICc8dGVzdD4nKSBvciAnPHRlc3Q+JwpAQCAtMTk4LDcgKzIwMSw3IEBACiAgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImFsd2F5cyIpCiAgICAgICAgICAgICBjb2RlX29iamVjdCA9IHN1cGVyKCkuZ2V0X2NvZGUobmFtZSkKICAgICAgICAgICAgIGFzc2VydCBsZW4odykgPT0gMQotICAgICAgICAgICAgYXNzZXJ0IGlzc3ViY2xhc3Mod1swXS5jYXRlZ29yeSwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHdbMF0uY2F0ZWdvcnksIERlcHJlY2F0aW9uV2FybmluZykKICAgICAgICAgICAgIHJldHVybiBjb2RlX29iamVjdAogCiBjbGFzcyBQeUxvYWRlclRlc3RzKHRlc3RpbmdfYWJjLkxvYWRlclRlc3RzKToKQEAgLTIxOSw3ICsyMjIsNyBAQAogICAgICAgICBtb2NrID0gc2VsZi5tb2NrZXIoe25hbWU6IHBhdGh9KQogICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKICAgICAgICAgICAgIG1vZHVsZSA9IG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuYW1lIGluIHN5cy5tb2R1bGVzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihuYW1lLCBzeXMubW9kdWxlcykKICAgICAgICAgc2VsZi5lcV9hdHRycyhtb2R1bGUsIF9fbmFtZV9fPW5hbWUsIF9fZmlsZV9fPXBhdGgsIF9fcGFja2FnZV9fPScnLAogICAgICAgICAgICAgICAgICAgICAgICAgX19sb2FkZXJfXz1tb2NrKQogICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGhhc2F0dHIobW9kdWxlLCAnX19wYXRoX18nKSkKQEAgLTIzMSw3ICsyMzQsNyBAQAogICAgICAgICBtb2NrID0gc2VsZi5tb2NrZXIoe25hbWU6IHBhdGh9KQogICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKICAgICAgICAgICAgIG1vZHVsZSA9IG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuYW1lIGluIHN5cy5tb2R1bGVzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihuYW1lLCBzeXMubW9kdWxlcykKICAgICAgICAgc2VsZi5lcV9hdHRycyhtb2R1bGUsIF9fbmFtZV9fPW5hbWUsIF9fZmlsZV9fPXBhdGgsCiAgICAgICAgICAgICAgICAgX19wYXRoX189W29zLnBhdGguZGlybmFtZShwYXRoKV0sIF9fcGFja2FnZV9fPW5hbWUsCiAgICAgICAgICAgICAgICAgX19sb2FkZXJfXz1tb2NrKQpAQCAtMjU3LDggKzI2MCw4IEBACiAgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpOgogICAgICAgICAgICAgc3lzLm1vZHVsZXNbbmFtZV0gPSBtb2R1bGUKICAgICAgICAgICAgIGxvYWRlZF9tb2R1bGUgPSBtb2NrLmxvYWRfbW9kdWxlKG5hbWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobG9hZGVkX21vZHVsZSBpcyBtb2R1bGUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc3lzLm1vZHVsZXNbbmFtZV0gaXMgbW9kdWxlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhsb2FkZWRfbW9kdWxlLCBtb2R1bGUpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHN5cy5tb2R1bGVzW25hbWVdLCBtb2R1bGUpCiAgICAgICAgIHJldHVybiBtb2NrLCBuYW1lCiAKICAgICBkZWYgdGVzdF9zdGF0ZV9hZnRlcl9mYWlsdXJlKHNlbGYpOgpAQCAtMjcxLDcgKzI3NCw3IEBACiAgICAgICAgICAgICBzeXMubW9kdWxlc1tuYW1lXSA9IG1vZHVsZQogICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CiAgICAgICAgICAgICAgICAgbW9jay5sb2FkX21vZHVsZShuYW1lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN5cy5tb2R1bGVzW25hbWVdIGlzIG1vZHVsZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoc3lzLm1vZHVsZXNbbmFtZV0sIG1vZHVsZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKG1vZHVsZSwgJ2JsYWgnKSkKICAgICAgICAgcmV0dXJuIG1vY2sKIApAQCAtMjgyLDcgKzI4NSw3IEBACiAgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpOgogICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CiAgICAgICAgICAgICAgICAgbW9jay5sb2FkX21vZHVsZShuYW1lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5hbWUgbm90IGluIHN5cy5tb2R1bGVzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbihuYW1lLCBzeXMubW9kdWxlcykKICAgICAgICAgcmV0dXJuIG1vY2sKIAogCkBAIC0zNDIsNyArMzQ1LDEwIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFnaWMsIGltcC5nZXRfbWFnaWMoKSkKICAgICAgICAgbXRpbWUgPSBpbXBvcnRsaWIuX3JfbG9uZyhtb2NrLm1vZHVsZV9ieXRlY29kZVtuYW1lXVs0OjhdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG10aW1lLCAxKQotICAgICAgICBiYyA9IG1vY2subW9kdWxlX2J5dGVjb2RlW25hbWVdWzg6XQorICAgICAgICBzb3VyY2Vfc2l6ZSA9IG1vY2subW9kdWxlX2J5dGVjb2RlW25hbWVdWzg6MTJdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1vY2suc291cmNlKSAmIDB4RkZGRkZGRkYsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW1wb3J0bGliLl9yX2xvbmcoc291cmNlX3NpemUpKQorICAgICAgICBiYyA9IG1vY2subW9kdWxlX2J5dGVjb2RlW25hbWVdWzEyOl0KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYywgbW9jay5jb21waWxlX2JjKG5hbWUpKQogCiAgICAgZGVmIHRlc3RfbW9kdWxlKHNlbGYpOgpAQCAtNDEyLDggKzQxOCw3IEBACiAgICAgICAgIHN5cy5kb250X3dyaXRlX2J5dGVjb2RlID0gZG9udF93cml0ZV9ieXRlY29kZQogICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKICAgICAgICAgICAgIG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKChuYW1lIGluIG1vY2subW9kdWxlX2J5dGVjb2RlKSBpcyBub3QKLSAgICAgICAgICAgICAgICAgICAgICAgIGRvbnRfd3JpdGVfYnl0ZWNvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QobmFtZSBpbiBtb2NrLm1vZHVsZV9ieXRlY29kZSwgZG9udF93cml0ZV9ieXRlY29kZSkKIAogICAgIGRlZiB0ZXN0X25vX2J5dGVjb2RlX3dyaXR0ZW4oc2VsZik6CiAgICAgICAgIHNlbGYucnVuX3Rlc3QoVHJ1ZSkKQEAgLTQzOCw3ICs0NDMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWdpYyc6IGJhZF9tYWdpY319KQogICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKICAgICAgICAgICAgIG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5hbWUgaW4gbW9jay5tb2R1bGVfYnl0ZWNvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4obmFtZSwgbW9jay5tb2R1bGVfYnl0ZWNvZGUpCiAgICAgICAgIG1hZ2ljID0gbW9jay5tb2R1bGVfYnl0ZWNvZGVbbmFtZV1bOjRdCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFnaWMsIGltcC5nZXRfbWFnaWMoKSkKIApAQCAtNDUxLDcgKzQ1Niw3IEBACiAgICAgICAgICAgICAgICAge25hbWU6IHsncGF0aCc6ICdwYXRoL3RvL21vZC5ieXRlY29kZScsICdtdGltZSc6IG9sZF9tdGltZX19KQogICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKICAgICAgICAgICAgIG1vY2subG9hZF9tb2R1bGUobmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5hbWUgaW4gbW9jay5tb2R1bGVfYnl0ZWNvZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4obmFtZSwgbW9jay5tb2R1bGVfYnl0ZWNvZGUpCiAgICAgICAgIG10aW1lID0gaW1wb3J0bGliLl9yX2xvbmcobW9jay5tb2R1bGVfYnl0ZWNvZGVbbmFtZV1bNDo4XSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdGltZSwgUHlQeWNMb2FkZXJNb2NrLmRlZmF1bHRfbXRpbWUpCiAKQEAgLTQ2OSw4ICs0NzQsOSBAQAogICAgICAgICAgICAgICAgIHsncGF0aCc6IG9zLnBhdGguam9pbigncGF0aCcsICd0bycsICdtb2QnKSwKICAgICAgICAgICAgICAgICAgJ21hZ2ljJzogYmFkX21hZ2ljfX0KICAgICAgICAgbW9jayA9IFB5UHljTG9hZGVyTW9jayh7bmFtZTogTm9uZX0sIGJjKQotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKSwgc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKSwgc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgbW9jay5sb2FkX21vZHVsZShuYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5uYW1lLCBuYW1lKQogCiAgICAgZGVmIHRlc3Rfbm9fYnl0ZWNvZGUoc2VsZik6CiAgICAgICAgICMgTWlzc2luZyBjb2RlIG9iamVjdCBieXRlY29kZSBzaG91bGQgbGVhZCB0byBhbiBFT0ZFcnJvci4KQEAgLTUxNCw4ICs1MjAsOSBAQAogICAgICAgICAjIElmIGFsbCAqX3BhdGggbWV0aG9kcyByZXR1cm4gTm9uZSwgcmFpc2UgSW1wb3J0RXJyb3IuCiAgICAgICAgIG5hbWUgPSAnbW9kJwogICAgICAgICBtb2NrID0gUHlQeWNMb2FkZXJNb2NrKHtuYW1lOiBOb25lfSkKLSAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSksIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgd2l0aCB1dGlsLnVuY2FjaGUobmFtZSksIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKSBhcyBjbToKICAgICAgICAgICAgIG1vY2subG9hZF9tb2R1bGUobmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ubmFtZSwgbmFtZSkKIAogICAgIGRlZiB0ZXN0X3NvdXJjZV9wYXRoX0ltcG9ydEVycm9yKHNlbGYpOgogICAgICAgICAjIEFuIEltcG9ydEVycm9yIGZyb20gc291cmNlX3BhdGggc2hvdWxkIHRyaWdnZXIgYW4gSW1wb3J0RXJyb3IuCkBAIC01MzEsNyArNTM4LDcgQEAKICAgICAgICAgbW9jayA9IFB5UHljTG9hZGVyTW9jayh7bmFtZTogb3MucGF0aC5qb2luKCdwYXRoJywgJ3RvJywgJ21vZCcpfSkKICAgICAgICAgYmFkX21ldGggPSB0eXBlcy5NZXRob2RUeXBlKHJhaXNlX0ltcG9ydEVycm9yLCBtb2NrKQogICAgICAgICBtb2NrLmJ5dGVjb2RlX3BhdGggPSBiYWRfbWV0aAotICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKSwgc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKSwgc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgbW9jay5sb2FkX21vZHVsZShuYW1lKQogCiAKQEAgLTU5MiwxNSArNTk5LDE3IEBACiAgICAgICAgIGRlZiByYWlzZV9JT0Vycm9yKHBhdGgpOgogICAgICAgICAgICAgcmFpc2UgSU9FcnJvcgogICAgICAgICBzZWxmLmxvYWRlci5nZXRfZGF0YSA9IHJhaXNlX0lPRXJyb3IKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgc2VsZi5sb2FkZXIuZ2V0X3NvdXJjZShzZWxmLm5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsIHNlbGYubmFtZSkKIAogICAgIGRlZiB0ZXN0X2lzX3BhY2thZ2Uoc2VsZik6CiAgICAgICAgICMgUHJvcGVybHkgZGV0ZWN0IHdoZW4gbG9hZGluZyBhIHBhY2thZ2UuCi0gICAgICAgIHNlbGYuc2V0VXAoaXNfcGFja2FnZT1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5sb2FkZXIuaXNfcGFja2FnZShzZWxmLm5hbWUpKQogICAgICAgICBzZWxmLnNldFVwKGlzX3BhY2thZ2U9RmFsc2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5sb2FkZXIuaXNfcGFja2FnZShzZWxmLm5hbWUpKQorICAgICAgICBzZWxmLnNldFVwKGlzX3BhY2thZ2U9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubG9hZGVyLmlzX3BhY2thZ2Uoc2VsZi5uYW1lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLmxvYWRlci5pc19wYWNrYWdlKHNlbGYubmFtZSArICcuX19pbml0X18nKSkKIAogICAgIGRlZiB0ZXN0X2dldF9jb2RlKHNlbGYpOgogICAgICAgICAjIFZlcmlmeSB0aGUgY29kZSBvYmplY3QgaXMgY3JlYXRlZC4KQEAgLTYxNSw3ICs2MjQsNyBAQAogICAgICAgICAgICAgbW9kdWxlID0gc2VsZi5sb2FkZXIubG9hZF9tb2R1bGUoc2VsZi5uYW1lKQogICAgICAgICAgICAgc2VsZi52ZXJpZnlfbW9kdWxlKG1vZHVsZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fcGF0aF9fLCBbb3MucGF0aC5kaXJuYW1lKHNlbGYucGF0aCldKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubmFtZSBpbiBzeXMubW9kdWxlcykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5uYW1lLCBzeXMubW9kdWxlcykKIAogICAgIGRlZiB0ZXN0X3BhY2thZ2Vfc2V0dGluZ3Moc2VsZik6CiAgICAgICAgICMgX19wYWNrYWdlX18gbmVlZHMgdG8gYmUgc2V0LCB3aGlsZSBfX3BhdGhfXyBpcyBzZXQgb24gaWYgdGhlIG1vZHVsZQpAQCAtNjU2LDcgKzY2NSw4IEBACiAgICAgICAgIGlmIGJ5dGVjb2RlX3dyaXR0ZW46CiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYuY2FjaGVkLCBzZWxmLmxvYWRlci53cml0dGVuKQogICAgICAgICAgICAgZGF0YSA9IGJ5dGVhcnJheShpbXAuZ2V0X21hZ2ljKCkpCi0gICAgICAgICAgICBkYXRhLmV4dGVuZChtYXJzaGFsLl93X2xvbmcoc2VsZi5sb2FkZXIuc291cmNlX210aW1lKSkKKyAgICAgICAgICAgIGRhdGEuZXh0ZW5kKGltcG9ydGxpYi5fd19sb25nKHNlbGYubG9hZGVyLnNvdXJjZV9tdGltZSkpCisgICAgICAgICAgICBkYXRhLmV4dGVuZChpbXBvcnRsaWIuX3dfbG9uZyhzZWxmLmxvYWRlci5zb3VyY2Vfc2l6ZSkpCiAgICAgICAgICAgICBkYXRhLmV4dGVuZChtYXJzaGFsLmR1bXBzKGNvZGVfb2JqZWN0KSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5sb2FkZXIud3JpdHRlbltzZWxmLmNhY2hlZF0sIGJ5dGVzKGRhdGEpKQogCkBAIC04NDcsNyArODU3LDcgQEAKICAgICAgICAgIyBSZXF1aXJlZCBhYnN0cmFjdG1ldGhvZHMuCiAgICAgICAgIHNlbGYucmFpc2VzX05vdEltcGxlbWVudGVkRXJyb3IoaW5zLCAnZ2V0X2ZpbGVuYW1lJywgJ2dldF9kYXRhJykKICAgICAgICAgIyBPcHRpb25hbCBhYnN0cmFjdG1ldGhvZHMuCi0gICAgICAgIHNlbGYucmFpc2VzX05vdEltcGxlbWVudGVkRXJyb3IoaW5zLCdwYXRoX210aW1lJywgJ3NldF9kYXRhJykKKyAgICAgICAgc2VsZi5yYWlzZXNfTm90SW1wbGVtZW50ZWRFcnJvcihpbnMsJ3BhdGhfc3RhdHMnLCAnc2V0X2RhdGEnKQogCiAgICAgZGVmIHRlc3RfUHlMb2FkZXIoc2VsZik6CiAgICAgICAgIHNlbGYucmFpc2VzX05vdEltcGxlbWVudGVkRXJyb3Ioc2VsZi5QeUxvYWRlcigpLCAnc291cmNlX3BhdGgnLApkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L3NvdXJjZS90ZXN0X2Nhc2Vfc2Vuc2l0aXZpdHkucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfY2FzZV9zZW5zaXRpdml0eS5weQppbmRleCA3Mzc3N2RlLi4yMWE0Mzc4IDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfY2FzZV9zZW5zaXRpdml0eS5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfY2FzZV9zZW5zaXRpdml0eS5weQpAQCAtMSw3ICsxLDkgQEAKICIiIlRlc3QgY2FzZS1zZW5zaXRpdml0eSAoUEVQIDIzNSkuIiIiCiBmcm9tIGltcG9ydGxpYiBpbXBvcnQgX2Jvb3RzdHJhcAorZnJvbSBpbXBvcnRsaWIgaW1wb3J0IG1hY2hpbmVyeQogZnJvbSAuLiBpbXBvcnQgdXRpbAogZnJvbSAuIGltcG9ydCB1dGlsIGFzIHNvdXJjZV91dGlsCitpbXBvcnQgaW1wCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydCBhcyB0ZXN0X3N1cHBvcnQKQEAgLTE5LDkgKzIxLDEzIEBACiAgICAgYXNzZXJ0IG5hbWUgIT0gbmFtZS5sb3dlcigpCiAKICAgICBkZWYgZmluZChzZWxmLCBwYXRoKToKLSAgICAgICAgZmluZGVyID0gX2Jvb3RzdHJhcC5fRmlsZUZpbmRlcihwYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ib290c3RyYXAuX1NvdXJjZUZpbmRlckRldGFpbHMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfYm9vdHN0cmFwLl9Tb3VyY2VsZXNzRmluZGVyRGV0YWlscygpKQorICAgICAgICBmaW5kZXIgPSBtYWNoaW5lcnkuRmlsZUZpbmRlcihwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFjaGluZXJ5LlNvdXJjZUZpbGVMb2FkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVyeS5TT1VSQ0VfU1VGRklYRVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYWNoaW5lcnkuU291cmNlbGVzc0ZpbGVMb2FkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVyeS5CWVRFQ09ERV9TVUZGSVhFUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkpCiAgICAgICAgIHJldHVybiBmaW5kZXIuZmluZF9tb2R1bGUoc2VsZi5uYW1lKQogCiAgICAgZGVmIHNlbnNpdGl2aXR5X3Rlc3Qoc2VsZik6CkBAIC0zNyw2ICs0Myw5IEBACiAgICAgZGVmIHRlc3Rfc2Vuc2l0aXZlKHNlbGYpOgogICAgICAgICB3aXRoIHRlc3Rfc3VwcG9ydC5FbnZpcm9ubWVudFZhckd1YXJkKCkgYXMgZW52OgogICAgICAgICAgICAgZW52LnVuc2V0KCdQWVRIT05DQVNFT0snKQorICAgICAgICAgICAgaWYgYidQWVRIT05DQVNFT0snIGluIF9ib290c3RyYXAuX29zLmVudmlyb246CisgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgnb3MuZW52aXJvbiBjaGFuZ2VzIG5vdCByZWZsZWN0ZWQgaW4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19vcy5lbnZpcm9uJykKICAgICAgICAgICAgIHNlbnNpdGl2ZSwgaW5zZW5zaXRpdmUgPSBzZWxmLnNlbnNpdGl2aXR5X3Rlc3QoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoc2Vuc2l0aXZlLCAnbG9hZF9tb2R1bGUnKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5uYW1lLCBzZW5zaXRpdmUuZ2V0X2ZpbGVuYW1lKHNlbGYubmFtZSkpCkBAIC00NSw2ICs1NCw5IEBACiAgICAgZGVmIHRlc3RfaW5zZW5zaXRpdmUoc2VsZik6CiAgICAgICAgIHdpdGggdGVzdF9zdXBwb3J0LkVudmlyb25tZW50VmFyR3VhcmQoKSBhcyBlbnY6CiAgICAgICAgICAgICBlbnYuc2V0KCdQWVRIT05DQVNFT0snLCAnMScpCisgICAgICAgICAgICBpZiBiJ1BZVEhPTkNBU0VPSycgbm90IGluIF9ib290c3RyYXAuX29zLmVudmlyb246CisgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgnb3MuZW52aXJvbiBjaGFuZ2VzIG5vdCByZWZsZWN0ZWQgaW4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19vcy5lbnZpcm9uJykKICAgICAgICAgICAgIHNlbnNpdGl2ZSwgaW5zZW5zaXRpdmUgPSBzZWxmLnNlbnNpdGl2aXR5X3Rlc3QoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoc2Vuc2l0aXZlLCAnbG9hZF9tb2R1bGUnKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5uYW1lLCBzZW5zaXRpdmUuZ2V0X2ZpbGVuYW1lKHNlbGYubmFtZSkpCmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfZmlsZV9sb2FkZXIucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfZmlsZV9sb2FkZXIucHkKaW5kZXggYzdhN2Q4Zi4uMjM2YWJmYiAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L3NvdXJjZS90ZXN0X2ZpbGVfbG9hZGVyLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC9zb3VyY2UvdGVzdF9maWxlX2xvYWRlci5weQpAQCAtMSw1ICsxLDYgQEAKK2Zyb20gLi4uIGltcG9ydCBfYm9vdHN0cmFwCiBpbXBvcnQgaW1wb3J0bGliCi1mcm9tIGltcG9ydGxpYiBpbXBvcnQgX2Jvb3RzdHJhcAoraW1wb3J0IGltcG9ydGxpYi5hYmMKIGZyb20gLi4gaW1wb3J0IGFiYwogZnJvbSAuLiBpbXBvcnQgdXRpbAogZnJvbSAuIGltcG9ydCB1dGlsIGFzIHNvdXJjZV91dGlsCkBAIC0yNCwxMiArMjUsNDYgQEAKIAogICAgICIiIgogCisgICAgZGVmIHRlc3RfbG9hZF9tb2R1bGVfQVBJKHNlbGYpOgorICAgICAgICAjIElmIGZ1bGxuYW1lIGlzIG5vdCBzcGVjaWZpZWQgdGhhdCBhc3N1bWUgc2VsZi5uYW1lIGlzIGRlc2lyZWQuCisgICAgICAgIGNsYXNzIFRlc3Rlck1peGluKGltcG9ydGxpYi5hYmMuTG9hZGVyKToKKyAgICAgICAgICAgIGRlZiBsb2FkX21vZHVsZShzZWxmLCBmdWxsbmFtZSk6IHJldHVybiBmdWxsbmFtZQorCisgICAgICAgIGNsYXNzIFRlc3RlcihpbXBvcnRsaWIuYWJjLkZpbGVMb2FkZXIsIFRlc3Rlck1peGluKToKKyAgICAgICAgICAgIGRlZiBnZXRfY29kZShzZWxmLCBfKTogcGFzcworICAgICAgICAgICAgZGVmIGdldF9zb3VyY2Uoc2VsZiwgXyk6IHBhc3MKKyAgICAgICAgICAgIGRlZiBpc19wYWNrYWdlKHNlbGYsIF8pOiBwYXNzCisKKyAgICAgICAgbmFtZSA9ICdtb2RfbmFtZScKKyAgICAgICAgbG9hZGVyID0gVGVzdGVyKG5hbWUsICdzb21lX3BhdGgnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWUsIGxvYWRlci5sb2FkX21vZHVsZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWUsIGxvYWRlci5sb2FkX21vZHVsZShOb25lKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lLCBsb2FkZXIubG9hZF9tb2R1bGUobmFtZSkpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICAgICAgbG9hZGVyLmxvYWRfbW9kdWxlKGxvYWRlci5uYW1lICsgJ1hYWCcpCisKKyAgICBkZWYgdGVzdF9nZXRfZmlsZW5hbWVfQVBJKHNlbGYpOgorICAgICAgICAjIElmIGZ1bGxuYW1lIGlzIG5vdCBzZXQgdGhlbiBhc3N1bWUgc2VsZi5wYXRoIGlzIGRlc2lyZWQuCisgICAgICAgIGNsYXNzIFRlc3RlcihpbXBvcnRsaWIuYWJjLkZpbGVMb2FkZXIpOgorICAgICAgICAgICAgZGVmIGdldF9jb2RlKHNlbGYsIF8pOiBwYXNzCisgICAgICAgICAgICBkZWYgZ2V0X3NvdXJjZShzZWxmLCBfKTogcGFzcworICAgICAgICAgICAgZGVmIGlzX3BhY2thZ2Uoc2VsZiwgXyk6IHBhc3MKKworICAgICAgICBwYXRoID0gJ3NvbWVfcGF0aCcKKyAgICAgICAgbmFtZSA9ICdzb21lX25hbWUnCisgICAgICAgIGxvYWRlciA9IFRlc3RlcihuYW1lLCBwYXRoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhdGgsIGxvYWRlci5nZXRfZmlsZW5hbWUobmFtZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF0aCwgbG9hZGVyLmdldF9maWxlbmFtZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhdGgsIGxvYWRlci5nZXRfZmlsZW5hbWUoTm9uZSkpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICAgICAgbG9hZGVyLmdldF9maWxlbmFtZShuYW1lICsgJ1hYWCcpCisKICAgICAjIFtiYXNpY10KICAgICBkZWYgdGVzdF9tb2R1bGUoc2VsZik6CiAgICAgICAgIHdpdGggc291cmNlX3V0aWwuY3JlYXRlX21vZHVsZXMoJ190ZW1wJykgYXMgbWFwcGluZzoKLSAgICAgICAgICAgIGxvYWRlciA9IF9ib290c3RyYXAuX1NvdXJjZUZpbGVMb2FkZXIoJ190ZW1wJywgbWFwcGluZ1snX3RlbXAnXSkKKyAgICAgICAgICAgIGxvYWRlciA9IF9ib290c3RyYXAuU291cmNlRmlsZUxvYWRlcignX3RlbXAnLCBtYXBwaW5nWydfdGVtcCddKQogICAgICAgICAgICAgbW9kdWxlID0gbG9hZGVyLmxvYWRfbW9kdWxlKCdfdGVtcCcpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoJ190ZW1wJyBpbiBzeXMubW9kdWxlcykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ190ZW1wJywgc3lzLm1vZHVsZXMpCiAgICAgICAgICAgICBjaGVjayA9IHsnX19uYW1lX18nOiAnX3RlbXAnLCAnX19maWxlX18nOiBtYXBwaW5nWydfdGVtcCddLAogICAgICAgICAgICAgICAgICAgICAgJ19fcGFja2FnZV9fJzogJyd9CiAgICAgICAgICAgICBmb3IgYXR0ciwgdmFsdWUgaW4gY2hlY2suaXRlbXMoKToKQEAgLTM3LDEwICs3MiwxMCBAQAogCiAgICAgZGVmIHRlc3RfcGFja2FnZShzZWxmKToKICAgICAgICAgd2l0aCBzb3VyY2VfdXRpbC5jcmVhdGVfbW9kdWxlcygnX3BrZy5fX2luaXRfXycpIGFzIG1hcHBpbmc6Ci0gICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLl9Tb3VyY2VGaWxlTG9hZGVyKCdfcGtnJywKKyAgICAgICAgICAgIGxvYWRlciA9IF9ib290c3RyYXAuU291cmNlRmlsZUxvYWRlcignX3BrZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZ1snX3BrZy5fX2luaXRfXyddKQogICAgICAgICAgICAgbW9kdWxlID0gbG9hZGVyLmxvYWRfbW9kdWxlKCdfcGtnJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnX3BrZycgaW4gc3lzLm1vZHVsZXMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdfcGtnJywgc3lzLm1vZHVsZXMpCiAgICAgICAgICAgICBjaGVjayA9IHsnX19uYW1lX18nOiAnX3BrZycsICdfX2ZpbGVfXyc6IG1hcHBpbmdbJ19wa2cuX19pbml0X18nXSwKICAgICAgICAgICAgICAgICAgICAgICdfX3BhdGhfXyc6IFtvcy5wYXRoLmRpcm5hbWUobWFwcGluZ1snX3BrZy5fX2luaXRfXyddKV0sCiAgICAgICAgICAgICAgICAgICAgICAnX19wYWNrYWdlX18nOiAnX3BrZyd9CkBAIC01MCwxMCArODUsMTAgQEAKIAogICAgIGRlZiB0ZXN0X2xhY2tpbmdfcGFyZW50KHNlbGYpOgogICAgICAgICB3aXRoIHNvdXJjZV91dGlsLmNyZWF0ZV9tb2R1bGVzKCdfcGtnLl9faW5pdF9fJywgJ19wa2cubW9kJylhcyBtYXBwaW5nOgotICAgICAgICAgICAgbG9hZGVyID0gX2Jvb3RzdHJhcC5fU291cmNlRmlsZUxvYWRlcignX3BrZy5tb2QnLAorICAgICAgICAgICAgbG9hZGVyID0gX2Jvb3RzdHJhcC5Tb3VyY2VGaWxlTG9hZGVyKCdfcGtnLm1vZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZ1snX3BrZy5tb2QnXSkKICAgICAgICAgICAgIG1vZHVsZSA9IGxvYWRlci5sb2FkX21vZHVsZSgnX3BrZy5tb2QnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdfcGtnLm1vZCcgaW4gc3lzLm1vZHVsZXMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdfcGtnLm1vZCcsIHN5cy5tb2R1bGVzKQogICAgICAgICAgICAgY2hlY2sgPSB7J19fbmFtZV9fJzogJ19wa2cubW9kJywgJ19fZmlsZV9fJzogbWFwcGluZ1snX3BrZy5tb2QnXSwKICAgICAgICAgICAgICAgICAgICAgICdfX3BhY2thZ2VfXyc6ICdfcGtnJ30KICAgICAgICAgICAgIGZvciBhdHRyLCB2YWx1ZSBpbiBjaGVjay5pdGVtcygpOgpAQCAtNjUsMTkgKzEwMCwxNCBAQAogCiAgICAgZGVmIHRlc3RfbW9kdWxlX3JldXNlKHNlbGYpOgogICAgICAgICB3aXRoIHNvdXJjZV91dGlsLmNyZWF0ZV9tb2R1bGVzKCdfdGVtcCcpIGFzIG1hcHBpbmc6Ci0gICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLl9Tb3VyY2VGaWxlTG9hZGVyKCdfdGVtcCcsIG1hcHBpbmdbJ190ZW1wJ10pCisgICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLlNvdXJjZUZpbGVMb2FkZXIoJ190ZW1wJywgbWFwcGluZ1snX3RlbXAnXSkKICAgICAgICAgICAgIG1vZHVsZSA9IGxvYWRlci5sb2FkX21vZHVsZSgnX3RlbXAnKQogICAgICAgICAgICAgbW9kdWxlX2lkID0gaWQobW9kdWxlKQogICAgICAgICAgICAgbW9kdWxlX2RpY3RfaWQgPSBpZChtb2R1bGUuX19kaWN0X18pCiAgICAgICAgICAgICB3aXRoIG9wZW4obWFwcGluZ1snX3RlbXAnXSwgJ3cnKSBhcyBmaWxlOgogICAgICAgICAgICAgICAgIGZpbGUud3JpdGUoInRlc3RpbmdfdmFyID0gNDJcbiIpCi0gICAgICAgICAgICAjIEZvciBmaWxlc3lzdGVtcyB3aGVyZSB0aGUgbXRpbWUgaXMgb25seSB0byBhIHNlY29uZCBncmFudWxhcml0eSwKLSAgICAgICAgICAgICMgZXZlcnl0aGluZyB0aGF0IGhhcyBoYXBwZW5lZCBhYm92ZSBjYW4gYmUgdG9vIGZhc3Q7Ci0gICAgICAgICAgICAjIGZvcmNlIGFuIG10aW1lIG9uIHRoZSBzb3VyY2UgdGhhdCBpcyBndWFyYW50ZWVkIHRvIGJlIGRpZmZlcmVudAotICAgICAgICAgICAgIyB0aGFuIHRoZSBvcmlnaW5hbCBtdGltZS4KLSAgICAgICAgICAgIGxvYWRlci5wYXRoX210aW1lID0gc2VsZi5mYWtlX210aW1lKGxvYWRlci5wYXRoX210aW1lKQogICAgICAgICAgICAgbW9kdWxlID0gbG9hZGVyLmxvYWRfbW9kdWxlKCdfdGVtcCcpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3Rlc3RpbmdfdmFyJyBpbiBtb2R1bGUuX19kaWN0X18sCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCd0ZXN0aW5nX3ZhcicsIG1vZHVsZS5fX2RpY3RfXywKICAgICAgICAgICAgICAgICAgICAgICAgICAiJ3Rlc3RpbmdfdmFyJyBub3QgaW4gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ7MH0iLmZvcm1hdChsaXN0KG1vZHVsZS5fX2RpY3RfXy5rZXlzKCkpKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLCBzeXMubW9kdWxlc1snX3RlbXAnXSkKQEAgLTk1LDcgKzEyNSw3IEBACiAgICAgICAgICAgICAgICAgc2V0YXR0cihvcmlnX21vZHVsZSwgYXR0ciwgdmFsdWUpCiAgICAgICAgICAgICB3aXRoIG9wZW4obWFwcGluZ1tuYW1lXSwgJ3cnKSBhcyBmaWxlOgogICAgICAgICAgICAgICAgIGZpbGUud3JpdGUoJysrKyBiYWQgc3ludGF4ICsrKycpCi0gICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLl9Tb3VyY2VGaWxlTG9hZGVyKCdfdGVtcCcsIG1hcHBpbmdbJ190ZW1wJ10pCisgICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLlNvdXJjZUZpbGVMb2FkZXIoJ190ZW1wJywgbWFwcGluZ1snX3RlbXAnXSkKICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IpOgogICAgICAgICAgICAgICAgIGxvYWRlci5sb2FkX21vZHVsZShuYW1lKQogICAgICAgICAgICAgZm9yIGF0dHIgaW4gYXR0cmlidXRlczoKQEAgLTEwNiwxMCArMTM2LDEwIEBACiAgICAgICAgIHdpdGggc291cmNlX3V0aWwuY3JlYXRlX21vZHVsZXMoJ190ZW1wJykgYXMgbWFwcGluZzoKICAgICAgICAgICAgIHdpdGggb3BlbihtYXBwaW5nWydfdGVtcCddLCAndycpIGFzIGZpbGU6CiAgICAgICAgICAgICAgICAgZmlsZS53cml0ZSgnPScpCi0gICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLl9Tb3VyY2VGaWxlTG9hZGVyKCdfdGVtcCcsIG1hcHBpbmdbJ190ZW1wJ10pCisgICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLlNvdXJjZUZpbGVMb2FkZXIoJ190ZW1wJywgbWFwcGluZ1snX3RlbXAnXSkKICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IpOgogICAgICAgICAgICAgICAgIGxvYWRlci5sb2FkX21vZHVsZSgnX3RlbXAnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdfdGVtcCcgbm90IGluIHN5cy5tb2R1bGVzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbignX3RlbXAnLCBzeXMubW9kdWxlcykKIAogICAgIGRlZiB0ZXN0X2ZpbGVfZnJvbV9lbXB0eV9zdHJpbmdfZGlyKHNlbGYpOgogICAgICAgICAjIExvYWRpbmcgYSBtb2R1bGUgZm91bmQgZnJvbSBhbiBlbXB0eSBzdHJpbmcgZW50cnkgb24gc3lzLnBhdGggc2hvdWxkCkBAIC0xMTksNyArMTQ5LDcgQEAKICAgICAgICAgICAgIGZpbGUud3JpdGUoIiMgdGVzdCBmaWxlIGZvciBpbXBvcnRsaWIiKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICB3aXRoIHV0aWwudW5jYWNoZSgnX3RlbXAnKToKLSAgICAgICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLl9Tb3VyY2VGaWxlTG9hZGVyKCdfdGVtcCcsIGZpbGVfcGF0aCkKKyAgICAgICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLlNvdXJjZUZpbGVMb2FkZXIoJ190ZW1wJywgZmlsZV9wYXRoKQogICAgICAgICAgICAgICAgIG1vZCA9IGxvYWRlci5sb2FkX21vZHVsZSgnX3RlbXAnKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9wYXRoLCBtb2QuX19maWxlX18pCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbXAuY2FjaGVfZnJvbV9zb3VyY2UoZmlsZV9wYXRoKSwKQEAgLTE0NSw3ICsxNzUsNyBAQAogICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZ2V0YXR0cihlcnJubywgJ0VPVkVSRkxPVycsIE5vbmUpOgogICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoImNhbm5vdCBzZXQgbW9kaWZpY2F0aW9uIHRpbWUgdG8gbGFyZ2UgaW50ZWdlciAoe30pIi5mb3JtYXQoZSkpCi0gICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLl9Tb3VyY2VGaWxlTG9hZGVyKCdfdGVtcCcsIG1hcHBpbmdbJ190ZW1wJ10pCisgICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLlNvdXJjZUZpbGVMb2FkZXIoJ190ZW1wJywgbWFwcGluZ1snX3RlbXAnXSkKICAgICAgICAgICAgIG1vZCA9IGxvYWRlci5sb2FkX21vZHVsZSgnX3RlbXAnKQogICAgICAgICAgICAgIyBTYW5pdHkgY2hlY2tzLgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2QuX19jYWNoZWRfXywgY29tcGlsZWQpCkBAIC0xNTksNyArMTg5LDcgQEAKICAgICBkZWYgaW1wb3J0XyhzZWxmLCBmaWxlLCBtb2R1bGVfbmFtZSk6CiAgICAgICAgIGxvYWRlciA9IHNlbGYubG9hZGVyKG1vZHVsZV9uYW1lLCBmaWxlKQogICAgICAgICBtb2R1bGUgPSBsb2FkZXIubG9hZF9tb2R1bGUobW9kdWxlX25hbWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtb2R1bGVfbmFtZSBpbiBzeXMubW9kdWxlcykKKyAgICAgICAgc2VsZi5hc3NlcnRJbihtb2R1bGVfbmFtZSwgc3lzLm1vZHVsZXMpCiAKICAgICBkZWYgbWFuaXB1bGF0ZV9ieXRlY29kZShzZWxmLCBuYW1lLCBtYXBwaW5nLCBtYW5pcHVsYXRvciwgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxfc291cmNlPUZhbHNlKToKQEAgLTIxNSwxMCArMjQ1LDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxfc291cmNlPWRlbF9zb3VyY2UpCiAgICAgICAgICAgICB0ZXN0KCdfdGVtcCcsIG1hcHBpbmcsIGJjX3BhdGgpCiAKKyAgICBkZWYgX3Rlc3RfcGFydGlhbF9zaXplKHNlbGYsIHRlc3QsICosIGRlbF9zb3VyY2U9RmFsc2UpOgorICAgICAgICB3aXRoIHNvdXJjZV91dGlsLmNyZWF0ZV9tb2R1bGVzKCdfdGVtcCcpIGFzIG1hcHBpbmc6CisgICAgICAgICAgICBiY19wYXRoID0gc2VsZi5tYW5pcHVsYXRlX2J5dGVjb2RlKCdfdGVtcCcsIG1hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgYmM6IGJjWzoxMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxfc291cmNlPWRlbF9zb3VyY2UpCisgICAgICAgICAgICB0ZXN0KCdfdGVtcCcsIG1hcHBpbmcsIGJjX3BhdGgpCisKICAgICBkZWYgX3Rlc3Rfbm9fbWFyc2hhbChzZWxmLCAqLCBkZWxfc291cmNlPUZhbHNlKToKICAgICAgICAgd2l0aCBzb3VyY2VfdXRpbC5jcmVhdGVfbW9kdWxlcygnX3RlbXAnKSBhcyBtYXBwaW5nOgogICAgICAgICAgICAgYmNfcGF0aCA9IHNlbGYubWFuaXB1bGF0ZV9ieXRlY29kZSgnX3RlbXAnLCBtYXBwaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIGJjOiBiY1s6OF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgYmM6IGJjWzoxMl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxfc291cmNlPWRlbF9zb3VyY2UpCiAgICAgICAgICAgICBmaWxlX3BhdGggPSBtYXBwaW5nWydfdGVtcCddIGlmIG5vdCBkZWxfc291cmNlIGVsc2UgYmNfcGF0aAogICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFT0ZFcnJvcik6CkBAIC0yMjcsMTYgKzI2NCwxOCBAQAogICAgIGRlZiBfdGVzdF9ub25fY29kZV9tYXJzaGFsKHNlbGYsICosIGRlbF9zb3VyY2U9RmFsc2UpOgogICAgICAgICB3aXRoIHNvdXJjZV91dGlsLmNyZWF0ZV9tb2R1bGVzKCdfdGVtcCcpIGFzIG1hcHBpbmc6CiAgICAgICAgICAgICBieXRlY29kZV9wYXRoID0gc2VsZi5tYW5pcHVsYXRlX2J5dGVjb2RlKCdfdGVtcCcsIG1hcHBpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgYmM6IGJjWzo4XSArIG1hcnNoYWwuZHVtcHMoYidhYmNkJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgYmM6IGJjWzoxMl0gKyBtYXJzaGFsLmR1bXBzKGInYWJjZCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsX3NvdXJjZT1kZWxfc291cmNlKQogICAgICAgICAgICAgZmlsZV9wYXRoID0gbWFwcGluZ1snX3RlbXAnXSBpZiBub3QgZGVsX3NvdXJjZSBlbHNlIGJ5dGVjb2RlX3BhdGgKLSAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcikgYXMgY206CiAgICAgICAgICAgICAgICAgc2VsZi5pbXBvcnRfKGZpbGVfcGF0aCwgJ190ZW1wJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsICdfdGVtcCcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5wYXRoLCBieXRlY29kZV9wYXRoKQogCiAgICAgZGVmIF90ZXN0X2JhZF9tYXJzaGFsKHNlbGYsICosIGRlbF9zb3VyY2U9RmFsc2UpOgogICAgICAgICB3aXRoIHNvdXJjZV91dGlsLmNyZWF0ZV9tb2R1bGVzKCdfdGVtcCcpIGFzIG1hcHBpbmc6CiAgICAgICAgICAgICBieXRlY29kZV9wYXRoID0gc2VsZi5tYW5pcHVsYXRlX2J5dGVjb2RlKCdfdGVtcCcsIG1hcHBpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgYmM6IGJjWzo4XSArIGInPHRlc3Q+JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBiYzogYmNbOjEyXSArIGInPHRlc3Q+JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbF9zb3VyY2U9ZGVsX3NvdXJjZSkKICAgICAgICAgICAgIGZpbGVfcGF0aCA9IG1hcHBpbmdbJ190ZW1wJ10gaWYgbm90IGRlbF9zb3VyY2UgZWxzZSBieXRlY29kZV9wYXRoCiAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEVPRkVycm9yKToKQEAgLTI1MSw3ICsyOTAsNyBAQAogCiBjbGFzcyBTb3VyY2VMb2FkZXJCYWRCeXRlY29kZVRlc3QoQmFkQnl0ZWNvZGVUZXN0KToKIAotICAgIGxvYWRlciA9IF9ib290c3RyYXAuX1NvdXJjZUZpbGVMb2FkZXIKKyAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLlNvdXJjZUZpbGVMb2FkZXIKIAogICAgIEBzb3VyY2VfdXRpbC53cml0ZXNfYnl0ZWNvZGVfZmlsZXMKICAgICBkZWYgdGVzdF9lbXB0eV9maWxlKHNlbGYpOgpAQCAtMjYwLDcgKzI5OSw3IEBACiAgICAgICAgIGRlZiB0ZXN0KG5hbWUsIG1hcHBpbmcsIGJ5dGVjb2RlX3BhdGgpOgogICAgICAgICAgICAgc2VsZi5pbXBvcnRfKG1hcHBpbmdbbmFtZV0sIG5hbWUpCiAgICAgICAgICAgICB3aXRoIG9wZW4oYnl0ZWNvZGVfcGF0aCwgJ3JiJykgYXMgZmlsZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIobGVuKGZpbGUucmVhZCgpKSwgOCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIobGVuKGZpbGUucmVhZCgpKSwgMTIpCiAKICAgICAgICAgc2VsZi5fdGVzdF9lbXB0eV9maWxlKHRlc3QpCiAKQEAgLTI2OCw3ICszMDcsNyBAQAogICAgICAgICBkZWYgdGVzdChuYW1lLCBtYXBwaW5nLCBieXRlY29kZV9wYXRoKToKICAgICAgICAgICAgIHNlbGYuaW1wb3J0XyhtYXBwaW5nW25hbWVdLCBuYW1lKQogICAgICAgICAgICAgd2l0aCBvcGVuKGJ5dGVjb2RlX3BhdGgsICdyYicpIGFzIGZpbGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGxlbihmaWxlLnJlYWQoKSksIDgpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGxlbihmaWxlLnJlYWQoKSksIDEyKQogCiAgICAgICAgIHNlbGYuX3Rlc3RfcGFydGlhbF9tYWdpYyh0ZXN0KQogCkBAIC0yNzksNyArMzE4LDcgQEAKICAgICAgICAgZGVmIHRlc3QobmFtZSwgbWFwcGluZywgYnl0ZWNvZGVfcGF0aCk6CiAgICAgICAgICAgICBzZWxmLmltcG9ydF8obWFwcGluZ1tuYW1lXSwgbmFtZSkKICAgICAgICAgICAgIHdpdGggb3BlbihieXRlY29kZV9wYXRoLCAncmInKSBhcyBmaWxlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihsZW4oZmlsZS5yZWFkKCkpLCA4KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihsZW4oZmlsZS5yZWFkKCkpLCAxMikKIAogICAgICAgICBzZWxmLl90ZXN0X21hZ2ljX29ubHkodGVzdCkKIApAQCAtMzAxLDExICszNDAsMjIgQEAKICAgICAgICAgZGVmIHRlc3QobmFtZSwgbWFwcGluZywgYmNfcGF0aCk6CiAgICAgICAgICAgICBzZWxmLmltcG9ydF8obWFwcGluZ1tuYW1lXSwgbmFtZSkKICAgICAgICAgICAgIHdpdGggb3BlbihiY19wYXRoLCAncmInKSBhcyBmaWxlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihsZW4oZmlsZS5yZWFkKCkpLCA4KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihsZW4oZmlsZS5yZWFkKCkpLCAxMikKIAogICAgICAgICBzZWxmLl90ZXN0X3BhcnRpYWxfdGltZXN0YW1wKHRlc3QpCiAKICAgICBAc291cmNlX3V0aWwud3JpdGVzX2J5dGVjb2RlX2ZpbGVzCisgICAgZGVmIHRlc3RfcGFydGlhbF9zaXplKHNlbGYpOgorICAgICAgICAjIFdoZW4gdGhlIHNpemUgaXMgcGFydGlhbCwgcmVnZW5lcmF0ZSB0aGUgLnB5YywgZWxzZQorICAgICAgICAjIHJhaXNlIEVPRkVycm9yLgorICAgICAgICBkZWYgdGVzdChuYW1lLCBtYXBwaW5nLCBiY19wYXRoKToKKyAgICAgICAgICAgIHNlbGYuaW1wb3J0XyhtYXBwaW5nW25hbWVdLCBuYW1lKQorICAgICAgICAgICAgd2l0aCBvcGVuKGJjX3BhdGgsICdyYicpIGFzIGZpbGU6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGxlbihmaWxlLnJlYWQoKSksIDEyKQorCisgICAgICAgIHNlbGYuX3Rlc3RfcGFydGlhbF9zaXplKHRlc3QpCisKKyAgICBAc291cmNlX3V0aWwud3JpdGVzX2J5dGVjb2RlX2ZpbGVzCiAgICAgZGVmIHRlc3Rfbm9fbWFyc2hhbChzZWxmKToKICAgICAgICAgIyBXaGVuIHRoZXJlIGlzIG9ubHkgdGhlIG1hZ2ljIG51bWJlciBhbmQgdGltZXN0YW1wLCByYWlzZSBFT0ZFcnJvci4KICAgICAgICAgc2VsZi5fdGVzdF9ub19tYXJzaGFsKCkKQEAgLTM2NCwxOSArNDE0LDIzIEBACiAKIGNsYXNzIFNvdXJjZWxlc3NMb2FkZXJCYWRCeXRlY29kZVRlc3QoQmFkQnl0ZWNvZGVUZXN0KToKIAotICAgIGxvYWRlciA9IF9ib290c3RyYXAuX1NvdXJjZWxlc3NGaWxlTG9hZGVyCisgICAgbG9hZGVyID0gX2Jvb3RzdHJhcC5Tb3VyY2VsZXNzRmlsZUxvYWRlcgogCiAgICAgZGVmIHRlc3RfZW1wdHlfZmlsZShzZWxmKToKICAgICAgICAgZGVmIHRlc3QobmFtZSwgbWFwcGluZywgYnl0ZWNvZGVfcGF0aCk6Ci0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgICAgIHNlbGYuaW1wb3J0XyhieXRlY29kZV9wYXRoLCBuYW1lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ubmFtZSwgbmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnBhdGgsIGJ5dGVjb2RlX3BhdGgpCiAKICAgICAgICAgc2VsZi5fdGVzdF9lbXB0eV9maWxlKHRlc3QsIGRlbF9zb3VyY2U9VHJ1ZSkKIAogICAgIGRlZiB0ZXN0X3BhcnRpYWxfbWFnaWMoc2VsZik6CiAgICAgICAgIGRlZiB0ZXN0KG5hbWUsIG1hcHBpbmcsIGJ5dGVjb2RlX3BhdGgpOgotICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKSBhcyBjbToKICAgICAgICAgICAgICAgICBzZWxmLmltcG9ydF8oYnl0ZWNvZGVfcGF0aCwgbmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLm5hbWUsIG5hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5wYXRoLCBieXRlY29kZV9wYXRoKQogICAgICAgICBzZWxmLl90ZXN0X3BhcnRpYWxfbWFnaWModGVzdCwgZGVsX3NvdXJjZT1UcnVlKQogCiAgICAgZGVmIHRlc3RfbWFnaWNfb25seShzZWxmKToKQEAgLTM4OCw4ICs0NDIsMTAgQEAKIAogICAgIGRlZiB0ZXN0X2JhZF9tYWdpYyhzZWxmKToKICAgICAgICAgZGVmIHRlc3QobmFtZSwgbWFwcGluZywgYnl0ZWNvZGVfcGF0aCk6Ci0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpIGFzIGNtOgogICAgICAgICAgICAgICAgIHNlbGYuaW1wb3J0XyhieXRlY29kZV9wYXRoLCBuYW1lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ubmFtZSwgbmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnBhdGgsIGJ5dGVjb2RlX3BhdGgpCiAKICAgICAgICAgc2VsZi5fdGVzdF9iYWRfbWFnaWModGVzdCwgZGVsX3NvdXJjZT1UcnVlKQogCkBAIC00MDAsNiArNDU2LDEzIEBACiAKICAgICAgICAgc2VsZi5fdGVzdF9wYXJ0aWFsX3RpbWVzdGFtcCh0ZXN0LCBkZWxfc291cmNlPVRydWUpCiAKKyAgICBkZWYgdGVzdF9wYXJ0aWFsX3NpemUoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KG5hbWUsIG1hcHBpbmcsIGJ5dGVjb2RlX3BhdGgpOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhFT0ZFcnJvcik6CisgICAgICAgICAgICAgICAgc2VsZi5pbXBvcnRfKGJ5dGVjb2RlX3BhdGgsIG5hbWUpCisKKyAgICAgICAgc2VsZi5fdGVzdF9wYXJ0aWFsX3NpemUodGVzdCwgZGVsX3NvdXJjZT1UcnVlKQorCiAgICAgZGVmIHRlc3Rfbm9fbWFyc2hhbChzZWxmKToKICAgICAgICAgc2VsZi5fdGVzdF9ub19tYXJzaGFsKGRlbF9zb3VyY2U9VHJ1ZSkKIApkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L3NvdXJjZS90ZXN0X2ZpbmRlci5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC9zb3VyY2UvdGVzdF9maW5kZXIucHkKaW5kZXggN2I5MDg4ZC4uZmE1ZDM1NiAxMDA2NDQKLS0tIGEvTGliL2ltcG9ydGxpYi90ZXN0L3NvdXJjZS90ZXN0X2ZpbmRlci5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfZmluZGVyLnB5CkBAIC0xLDEwICsxLDEyIEBACi1mcm9tIGltcG9ydGxpYiBpbXBvcnQgX2Jvb3RzdHJhcAogZnJvbSAuLiBpbXBvcnQgYWJjCiBmcm9tIC4gaW1wb3J0IHV0aWwgYXMgc291cmNlX3V0aWwKLWZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBtYWtlX2xlZ2FjeV9weWMKLWltcG9ydCBvcworCitmcm9tIGltcG9ydGxpYiBpbXBvcnQgbWFjaGluZXJ5CiBpbXBvcnQgZXJybm8KK2ltcG9ydCBpbXAKK2ltcG9ydCBvcwogaW1wb3J0IHB5X2NvbXBpbGUKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBtYWtlX2xlZ2FjeV9weWMKIGltcG9ydCB1bml0dGVzdAogaW1wb3J0IHdhcm5pbmdzCiAKQEAgLTM0LDkgKzM2LDExIEBACiAgICAgIiIiCiAKICAgICBkZWYgaW1wb3J0XyhzZWxmLCByb290LCBtb2R1bGUpOgotICAgICAgICBmaW5kZXIgPSBfYm9vdHN0cmFwLl9GaWxlRmluZGVyKHJvb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2Jvb3RzdHJhcC5fU291cmNlRmluZGVyRGV0YWlscygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ib290c3RyYXAuX1NvdXJjZWxlc3NGaW5kZXJEZXRhaWxzKCkpCisgICAgICAgIGxvYWRlcl9kZXRhaWxzID0gWyhtYWNoaW5lcnkuU291cmNlRmlsZUxvYWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lcnkuU09VUkNFX1NVRkZJWEVTLCBUcnVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hY2hpbmVyeS5Tb3VyY2VsZXNzRmlsZUxvYWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lcnkuQllURUNPREVfU1VGRklYRVMsIFRydWUpXQorICAgICAgICBmaW5kZXIgPSBtYWNoaW5lcnkuRmlsZUZpbmRlcihyb290LCAqbG9hZGVyX2RldGFpbHMpCiAgICAgICAgIHJldHVybiBmaW5kZXIuZmluZF9tb2R1bGUobW9kdWxlKQogCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIHRlc3QsIGNyZWF0ZT1Ob25lLCAqLCBjb21waWxlXz1Ob25lLCB1bmxpbms9Tm9uZSk6CkBAIC0xMDIsMzkgKzEwNiwyMSBAQAogICAgICAgICAgICAgbG9hZGVyID0gc2VsZi5pbXBvcnRfKHBrZ19kaXIsICdwa2cuc3ViJykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKGxvYWRlciwgJ2xvYWRfbW9kdWxlJykpCiAKLSAgICAjIFtzdWIgZW1wdHldCi0gICAgZGVmIHRlc3RfZW1wdHlfc3ViX2RpcmVjdG9yeShzZWxmKToKLSAgICAgICAgY29udGV4dCA9IHNvdXJjZV91dGlsLmNyZWF0ZV9tb2R1bGVzKCdwa2cuX19pbml0X18nLCAncGtnLnN1Yi5fX2luaXRfXycpCi0gICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKLSAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiZXJyb3IiLCBJbXBvcnRXYXJuaW5nKQotICAgICAgICAgICAgd2l0aCBjb250ZXh0IGFzIG1hcHBpbmc6Ci0gICAgICAgICAgICAgICAgb3MudW5saW5rKG1hcHBpbmdbJ3BrZy5zdWIuX19pbml0X18nXSkKLSAgICAgICAgICAgICAgICBwa2dfZGlyID0gb3MucGF0aC5kaXJuYW1lKG1hcHBpbmdbJ3BrZy5fX2luaXRfXyddKQotICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0V2FybmluZyk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuaW1wb3J0Xyhwa2dfZGlyLCAncGtnLnN1YicpCi0KICAgICAjIFtwYWNrYWdlIG92ZXIgbW9kdWxlc10KICAgICBkZWYgdGVzdF9wYWNrYWdlX292ZXJfbW9kdWxlKHNlbGYpOgogICAgICAgICBuYW1lID0gJ190ZW1wJwogICAgICAgICBsb2FkZXIgPSBzZWxmLnJ1bl90ZXN0KG5hbWUsIHsnezB9Ll9faW5pdF9fJy5mb3JtYXQobmFtZSksIG5hbWV9KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ19faW5pdF9fJyBpbiBsb2FkZXIuZ2V0X2ZpbGVuYW1lKG5hbWUpKQotCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ19faW5pdF9fJywgbG9hZGVyLmdldF9maWxlbmFtZShuYW1lKSkKIAogICAgIGRlZiB0ZXN0X2ZhaWx1cmUoc2VsZik6CiAgICAgICAgIHdpdGggc291cmNlX3V0aWwuY3JlYXRlX21vZHVsZXMoJ2JsYWgnKSBhcyBtYXBwaW5nOgogICAgICAgICAgICAgbm90aGluZyA9IHNlbGYuaW1wb3J0XyhtYXBwaW5nWycucm9vdCddLCAnc2Rmc2Fkc2FkZicpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobm90aGluZyBpcyBOb25lKQotCi0gICAgIyBbZW1wdHkgZGlyXQotICAgIGRlZiB0ZXN0X2VtcHR5X2RpcihzZWxmKToKLSAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgotICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJlcnJvciIsIEltcG9ydFdhcm5pbmcpCi0gICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydFdhcm5pbmcpOgotICAgICAgICAgICAgICAgIHNlbGYucnVuX3Rlc3QoJ3BrZycsIHsncGtnLl9faW5pdF9fJ30sIHVubGluaz17J3BrZy5fX2luaXRfXyd9KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobm90aGluZykKIAogICAgIGRlZiB0ZXN0X2VtcHR5X3N0cmluZ19mb3JfZGlyKHNlbGYpOgogICAgICAgICAjIFRoZSBlbXB0eSBzdHJpbmcgZnJvbSBzeXMucGF0aCBtZWFucyB0byBzZWFyY2ggaW4gdGhlIGN3ZC4KLSAgICAgICAgZmluZGVyID0gX2Jvb3RzdHJhcC5fRmlsZUZpbmRlcignJywgX2Jvb3RzdHJhcC5fU291cmNlRmluZGVyRGV0YWlscygpKQorICAgICAgICBmaW5kZXIgPSBtYWNoaW5lcnkuRmlsZUZpbmRlcignJywgKG1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyLAorICAgICAgICAgICAgbWFjaGluZXJ5LlNPVVJDRV9TVUZGSVhFUywgVHJ1ZSkpCiAgICAgICAgIHdpdGggb3BlbignbW9kLnB5JywgJ3cnKSBhcyBmaWxlOgogICAgICAgICAgICAgZmlsZS53cml0ZSgiIyB0ZXN0IGZpbGUgZm9yIGltcG9ydGxpYiIpCiAgICAgICAgIHRyeToKQEAgLTE0Myw2ICsxMjksMTQgQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIG9zLnVubGluaygnbW9kLnB5JykKIAorICAgIGRlZiB0ZXN0X2ludmFsaWRhdGVfY2FjaGVzKHNlbGYpOgorICAgICAgICAjIGludmFsaWRhdGVfY2FjaGVzKCkgc2hvdWxkIHJlc2V0IHRoZSBtdGltZS4KKyAgICAgICAgZmluZGVyID0gbWFjaGluZXJ5LkZpbGVGaW5kZXIoJycsIChtYWNoaW5lcnkuU291cmNlRmlsZUxvYWRlciwKKyAgICAgICAgICAgIG1hY2hpbmVyeS5TT1VSQ0VfU1VGRklYRVMsIFRydWUpKQorICAgICAgICBmaW5kZXIuX3BhdGhfbXRpbWUgPSA0MgorICAgICAgICBmaW5kZXIuaW52YWxpZGF0ZV9jYWNoZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbmRlci5fcGF0aF9tdGltZSwgLTEpCisKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBydW5fdW5pdHRlc3QKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC9zb3VyY2UvdGVzdF9wYXRoX2hvb2sucHkgYi9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3RfcGF0aF9ob29rLnB5CmluZGV4IDM3NGY3YjYuLjU0YzA2OTkgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC9zb3VyY2UvdGVzdF9wYXRoX2hvb2sucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L3NvdXJjZS90ZXN0X3BhdGhfaG9vay5weQpAQCAtMSw1ICsxLDcgQEAKLWZyb20gaW1wb3J0bGliIGltcG9ydCBfYm9vdHN0cmFwCiBmcm9tIC4gaW1wb3J0IHV0aWwgYXMgc291cmNlX3V0aWwKKworZnJvbSBpbXBvcnRsaWIgaW1wb3J0IG1hY2hpbmVyeQoraW1wb3J0IGltcAogaW1wb3J0IHVuaXR0ZXN0CiAKIApAQCAtNywxNCArOSwxOCBAQAogCiAgICAgIiIiVGVzdCB0aGUgcGF0aCBob29rIGZvciBzb3VyY2UuIiIiCiAKKyAgICBkZWYgcGF0aF9ob29rKHNlbGYpOgorICAgICAgICByZXR1cm4gbWFjaGluZXJ5LkZpbGVGaW5kZXIucGF0aF9ob29rKChtYWNoaW5lcnkuU291cmNlRmlsZUxvYWRlciwKKyAgICAgICAgICAgIG1hY2hpbmVyeS5TT1VSQ0VfU1VGRklYRVMsIFRydWUpKQorCiAgICAgZGVmIHRlc3Rfc3VjY2VzcyhzZWxmKToKICAgICAgICAgd2l0aCBzb3VyY2VfdXRpbC5jcmVhdGVfbW9kdWxlcygnZHVtbXknKSBhcyBtYXBwaW5nOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoX2Jvb3RzdHJhcC5fZmlsZV9wYXRoX2hvb2sobWFwcGluZ1snLnJvb3QnXSksCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihzZWxmLnBhdGhfaG9vaygpKG1hcHBpbmdbJy5yb290J10pLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpbmRfbW9kdWxlJykpCiAKICAgICBkZWYgdGVzdF9lbXB0eV9zdHJpbmcoc2VsZik6CiAgICAgICAgICMgVGhlIGVtcHR5IHN0cmluZyByZXByZXNlbnRzIHRoZSBjd2QuCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKF9ib290c3RyYXAuX2ZpbGVfcGF0aF9ob29rKCcnKSwgJ2ZpbmRfbW9kdWxlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKHNlbGYucGF0aF9ob29rKCkoJycpLCAnZmluZF9tb2R1bGUnKSkKIAogCiBkZWYgdGVzdF9tYWluKCk6CmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3Rfc291cmNlX2VuY29kaW5nLnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L3NvdXJjZS90ZXN0X3NvdXJjZV9lbmNvZGluZy5weQppbmRleCA3OTRhM2RmLi4wY2E1MTk1IDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3Qvc291cmNlL3Rlc3Rfc291cmNlX2VuY29kaW5nLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC9zb3VyY2UvdGVzdF9zb3VyY2VfZW5jb2RpbmcucHkKQEAgLTEsNiArMSw2IEBACi1mcm9tIGltcG9ydGxpYiBpbXBvcnQgX2Jvb3RzdHJhcAogZnJvbSAuIGltcG9ydCB1dGlsIGFzIHNvdXJjZV91dGlsCiAKK2Zyb20gaW1wb3J0bGliIGltcG9ydCBfYm9vdHN0cmFwCiBpbXBvcnQgY29kZWNzCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKQEAgLTM1LDggKzM1LDggQEAKICAgICAgICAgd2l0aCBzb3VyY2VfdXRpbC5jcmVhdGVfbW9kdWxlcyhzZWxmLm1vZHVsZV9uYW1lKSBhcyBtYXBwaW5nOgogICAgICAgICAgICAgd2l0aCBvcGVuKG1hcHBpbmdbc2VsZi5tb2R1bGVfbmFtZV0sICd3YicpIGFzIGZpbGU6CiAgICAgICAgICAgICAgICAgZmlsZS53cml0ZShzb3VyY2UpCi0gICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLl9Tb3VyY2VGaWxlTG9hZGVyKHNlbGYubW9kdWxlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nW3NlbGYubW9kdWxlX25hbWVdKQorICAgICAgICAgICAgbG9hZGVyID0gX2Jvb3RzdHJhcC5Tb3VyY2VGaWxlTG9hZGVyKHNlbGYubW9kdWxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdbc2VsZi5tb2R1bGVfbmFtZV0pCiAgICAgICAgICAgICByZXR1cm4gbG9hZGVyLmxvYWRfbW9kdWxlKHNlbGYubW9kdWxlX25hbWUpCiAKICAgICBkZWYgY3JlYXRlX3NvdXJjZShzZWxmLCBlbmNvZGluZyk6CkBAIC05Nyw3ICs5Nyw3IEBACiAgICAgICAgIHdpdGggc291cmNlX3V0aWwuY3JlYXRlX21vZHVsZXMobW9kdWxlX25hbWUpIGFzIG1hcHBpbmc6CiAgICAgICAgICAgICB3aXRoIG9wZW4obWFwcGluZ1ttb2R1bGVfbmFtZV0sICd3YicpIGFzIGZpbGU6CiAgICAgICAgICAgICAgICAgZmlsZS53cml0ZShzb3VyY2UpCi0gICAgICAgICAgICBsb2FkZXIgPSBfYm9vdHN0cmFwLl9Tb3VyY2VGaWxlTG9hZGVyKG1vZHVsZV9uYW1lLAorICAgICAgICAgICAgbG9hZGVyID0gX2Jvb3RzdHJhcC5Tb3VyY2VGaWxlTG9hZGVyKG1vZHVsZV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmdbbW9kdWxlX25hbWVdKQogICAgICAgICAgICAgcmV0dXJuIGxvYWRlci5sb2FkX21vZHVsZShtb2R1bGVfbmFtZSkKIApkaWZmIC0tZ2l0IGEvTGliL2ltcG9ydGxpYi90ZXN0L3Rlc3RfYWJjLnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L3Rlc3RfYWJjLnB5CmluZGV4IDBlY2JlMzkuLjAwOGJkMjEgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC90ZXN0X2FiYy5weQorKysgYi9MaWIvaW1wb3J0bGliL3Rlc3QvdGVzdF9hYmMucHkKQEAgLTUwLDcgKzUwLDcgQEAKIAogICAgIHN1cGVyY2xhc3NlcyA9IFthYmMuTG9hZGVyXQogICAgIHN1YmNsYXNzZXMgPSBbYWJjLlB5TG9hZGVyLCBtYWNoaW5lcnkuQnVpbHRpbkltcG9ydGVyLAotICAgICAgICAgICAgICAgICAgICBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXJdCisgICAgICAgICAgICAgICAgICAgIG1hY2hpbmVyeS5Gcm96ZW5JbXBvcnRlciwgbWFjaGluZXJ5LkV4dGVuc2lvbkZpbGVMb2FkZXJdCiAKIAogY2xhc3MgRXhlY3V0aW9uTG9hZGVyKEluaGVyaXRhbmNlVGVzdHMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTU5LDkgKzU5LDE2IEBACiAgICAgc3ViY2xhc3NlcyA9IFthYmMuUHlMb2FkZXJdCiAKIAorY2xhc3MgRmlsZUxvYWRlcihJbmhlcml0YW5jZVRlc3RzLCB1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBzdXBlcmNsYXNzZXMgPSBbYWJjLlJlc291cmNlTG9hZGVyLCBhYmMuRXhlY3V0aW9uTG9hZGVyXQorICAgIHN1YmNsYXNzZXMgPSBbbWFjaGluZXJ5LlNvdXJjZUZpbGVMb2FkZXIsIG1hY2hpbmVyeS5Tb3VyY2VsZXNzRmlsZUxvYWRlcl0KKworCiBjbGFzcyBTb3VyY2VMb2FkZXIoSW5oZXJpdGFuY2VUZXN0cywgdW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgc3VwZXJjbGFzc2VzID0gW2FiYy5SZXNvdXJjZUxvYWRlciwgYWJjLkV4ZWN1dGlvbkxvYWRlcl0KKyAgICBzdWJjbGFzc2VzID0gW21hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyXQogCiAKIGNsYXNzIFB5TG9hZGVyKEluaGVyaXRhbmNlVGVzdHMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC90ZXN0X2FwaS5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC90ZXN0X2FwaS5weQppbmRleCBhMTUxNjI2Li5iYTJhNzIxIDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3QvdGVzdF9hcGkucHkKKysrIGIvTGliL2ltcG9ydGxpYi90ZXN0L3Rlc3RfYXBpLnB5CkBAIC0xLDcgKzEsOSBAQAogZnJvbSAuIGltcG9ydCB1dGlsCiBpbXBvcnQgaW1wCiBpbXBvcnQgaW1wb3J0bGliCitmcm9tIGltcG9ydGxpYiBpbXBvcnQgbWFjaGluZXJ5CiBpbXBvcnQgc3lzCitmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIGltcG9ydCB1bml0dGVzdAogCiAKQEAgLTg0LDkgKzg2LDk3IEBACiAgICAgICAgICAgICAgICAgaW1wb3J0bGliLmltcG9ydF9tb2R1bGUoJ2EuYicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYl9sb2FkX2NvdW50LCAxKQogCisKK2NsYXNzIEZpbmRMb2FkZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBjbGFzcyBGYWtlTWV0YUZpbmRlcjoKKyAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICBkZWYgZmluZF9tb2R1bGUobmFtZSwgcGF0aD1Ob25lKTogcmV0dXJuIG5hbWUsIHBhdGgKKworICAgIGRlZiB0ZXN0X3N5c19tb2R1bGVzKHNlbGYpOgorICAgICAgICAjIElmIGEgbW9kdWxlIHdpdGggX19sb2FkZXJfXyBpcyBpbiBzeXMubW9kdWxlcywgdGhlbiByZXR1cm4gaXQuCisgICAgICAgIG5hbWUgPSAnc29tZV9tb2QnCisgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpOgorICAgICAgICAgICAgbW9kdWxlID0gaW1wLm5ld19tb2R1bGUobmFtZSkKKyAgICAgICAgICAgIGxvYWRlciA9ICdhIGxvYWRlciEnCisgICAgICAgICAgICBtb2R1bGUuX19sb2FkZXJfXyA9IGxvYWRlcgorICAgICAgICAgICAgc3lzLm1vZHVsZXNbbmFtZV0gPSBtb2R1bGUKKyAgICAgICAgICAgIGZvdW5kID0gaW1wb3J0bGliLmZpbmRfbG9hZGVyKG5hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvYWRlciwgZm91bmQpCisKKyAgICBkZWYgdGVzdF9zeXNfbW9kdWxlc19sb2FkZXJfaXNfTm9uZShzZWxmKToKKyAgICAgICAgIyBJZiBzeXMubW9kdWxlc1tuYW1lXS5fX2xvYWRlcl9fIGlzIE5vbmUsIHJhaXNlIFZhbHVlRXJyb3IuCisgICAgICAgIG5hbWUgPSAnc29tZV9tb2QnCisgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpOgorICAgICAgICAgICAgbW9kdWxlID0gaW1wLm5ld19tb2R1bGUobmFtZSkKKyAgICAgICAgICAgIG1vZHVsZS5fX2xvYWRlcl9fID0gTm9uZQorICAgICAgICAgICAgc3lzLm1vZHVsZXNbbmFtZV0gPSBtb2R1bGUKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgaW1wb3J0bGliLmZpbmRfbG9hZGVyKG5hbWUpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzKHNlbGYpOgorICAgICAgICAjIFJldHVybiB0aGUgbG9hZGVyIGZvdW5kIG9uIHN5cy5tZXRhX3BhdGguCisgICAgICAgIG5hbWUgPSAnc29tZV9tb2QnCisgICAgICAgIHdpdGggdXRpbC51bmNhY2hlKG5hbWUpOgorICAgICAgICAgICAgd2l0aCB1dGlsLmltcG9ydF9zdGF0ZShtZXRhX3BhdGg9W3NlbGYuRmFrZU1ldGFGaW5kZXJdKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChuYW1lLCBOb25lKSwgaW1wb3J0bGliLmZpbmRfbG9hZGVyKG5hbWUpKQorCisgICAgZGVmIHRlc3Rfc3VjY2Vzc19wYXRoKHNlbGYpOgorICAgICAgICAjIFNlYXJjaGluZyBvbiBhIHBhdGggc2hvdWxkIHdvcmsuCisgICAgICAgIG5hbWUgPSAnc29tZV9tb2QnCisgICAgICAgIHBhdGggPSAncGF0aCB0byBzb21lIHBsYWNlJworICAgICAgICB3aXRoIHV0aWwudW5jYWNoZShuYW1lKToKKyAgICAgICAgICAgIHdpdGggdXRpbC5pbXBvcnRfc3RhdGUobWV0YV9wYXRoPVtzZWxmLkZha2VNZXRhRmluZGVyXSk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgobmFtZSwgcGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRsaWIuZmluZF9sb2FkZXIobmFtZSwgcGF0aCkpCisKKyAgICBkZWYgdGVzdF9ub3RoaW5nKHNlbGYpOgorICAgICAgICAjIE5vbmUgaXMgcmV0dXJuZWQgdXBvbiBmYWlsdXJlIHRvIGZpbmQgYSBsb2FkZXIuCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGltcG9ydGxpYi5maW5kX2xvYWRlcignbmV2ZXJnb2luZ3RvZmluZHRoaXNtb2R1bGUnKSkKKworCitjbGFzcyBJbnZhbGlkYXRlQ2FjaGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9tZXRob2RfY2FsbGVkKHNlbGYpOgorICAgICAgICAjIElmIGRlZmluZWQgdGhlIG1ldGhvZCBzaG91bGQgYmUgY2FsbGVkLgorICAgICAgICBjbGFzcyBJbnZhbGlkYXRpbmdOdWxsRmluZGVyOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICppZ25vcmVkKToKKyAgICAgICAgICAgICAgICBzZWxmLmNhbGxlZCA9IEZhbHNlCisgICAgICAgICAgICBkZWYgZmluZF9tb2R1bGUoc2VsZiwgKmFyZ3MpOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICBkZWYgaW52YWxpZGF0ZV9jYWNoZXMoc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5jYWxsZWQgPSBUcnVlCisKKyAgICAgICAga2V5ID0gJ2dvYmxlZGVlZ29vaycKKyAgICAgICAgaW5zID0gSW52YWxpZGF0aW5nTnVsbEZpbmRlcigpCisgICAgICAgIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlW2tleV0gPSBpbnMKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGxhbWJkYTogc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGUuX19kZWxpdGVtX18oa2V5KSkKKyAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlucy5jYWxsZWQpCisKKyAgICBkZWYgdGVzdF9tZXRob2RfbGFja2luZyhzZWxmKToKKyAgICAgICAgIyBUaGVyZSBzaG91bGQgYmUgbm8gaXNzdWVzIGlmIHRoZSBtZXRob2QgaXMgbm90IGRlZmluZWQuCisgICAgICAgIGtleSA9ICdnb2JibGVkZWVnb29rJworICAgICAgICBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZVtrZXldID0gaW1wLk51bGxJbXBvcnRlcignYWJjJykKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGxhbWJkYTogc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGUuX19kZWxpdGVtX18oa2V5KSkKKyAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkgICMgU2hvdWxkbid0IHRyaWdnZXIgYW4gZXhjZXB0aW9uLgorCisKK2NsYXNzIEZyb3plbkltcG9ydGxpYlRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X25vX2Zyb3plbl9pbXBvcnRsaWIoc2VsZik6CisgICAgICAgICMgU2hvdWxkIGJlIGFibGUgdG8gaW1wb3J0IHcvbyBfZnJvemVuX2ltcG9ydGxpYiBiZWluZyBkZWZpbmVkLgorICAgICAgICBtb2R1bGUgPSBzdXBwb3J0LmltcG9ydF9mcmVzaF9tb2R1bGUoJ2ltcG9ydGxpYicsIGJsb2NrZWQ9WydfZnJvemVuX2ltcG9ydGxpYiddKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlzaW5zdGFuY2UobW9kdWxlLl9fbG9hZGVyX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWNoaW5lcnkuRnJvemVuSW1wb3J0ZXIpKQorCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0Ci0gICAgcnVuX3VuaXR0ZXN0KEltcG9ydE1vZHVsZVRlc3RzKQorICAgIHJ1bl91bml0dGVzdChJbXBvcnRNb2R1bGVUZXN0cywKKyAgICAgICAgICAgICAgICAgRmluZExvYWRlclRlc3RzLAorICAgICAgICAgICAgICAgICBJbnZhbGlkYXRlQ2FjaGVUZXN0cywKKyAgICAgICAgICAgICAgICAgRnJvemVuSW1wb3J0bGliVGVzdHMpCiAKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdGVzdC90ZXN0X2xvY2tzLnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L3Rlc3RfbG9ja3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDM2YjcxZQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC90ZXN0X2xvY2tzLnB5CkBAIC0wLDAgKzEsMTE1IEBACitmcm9tIGltcG9ydGxpYiBpbXBvcnQgX2Jvb3RzdHJhcAoraW1wb3J0IHRpbWUKK2ltcG9ydCB1bml0dGVzdAoraW1wb3J0IHdlYWtyZWYKKworZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CisKK3RyeToKKyAgICBpbXBvcnQgdGhyZWFkaW5nCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgdGhyZWFkaW5nID0gTm9uZQorZWxzZToKKyAgICBmcm9tIHRlc3QgaW1wb3J0IGxvY2tfdGVzdHMKKworCitMb2NrVHlwZSA9IF9ib290c3RyYXAuX01vZHVsZUxvY2sKK0RlYWRsb2NrRXJyb3IgPSBfYm9vdHN0cmFwLl9EZWFkbG9ja0Vycm9yCisKKworaWYgdGhyZWFkaW5nIGlzIG5vdCBOb25lOgorICAgIGNsYXNzIE1vZHVsZUxvY2tBc1JMb2NrVGVzdHMobG9ja190ZXN0cy5STG9ja1Rlc3RzKToKKyAgICAgICAgbG9ja3R5cGUgPSBzdGF0aWNtZXRob2QobGFtYmRhOiBMb2NrVHlwZSgic29tZV9sb2NrIikpCisKKyAgICAgICAgIyBfaXNfb3duZWQoKSB1bnN1cHBvcnRlZAorICAgICAgICB0ZXN0X19pc19vd25lZCA9IE5vbmUKKyAgICAgICAgIyBhY3F1aXJlKGJsb2NraW5nPUZhbHNlKSB1bnN1cHBvcnRlZAorICAgICAgICB0ZXN0X3RyeV9hY3F1aXJlID0gTm9uZQorICAgICAgICB0ZXN0X3RyeV9hY3F1aXJlX2NvbnRlbmRlZCA9IE5vbmUKKyAgICAgICAgIyBgd2l0aGAgdW5zdXBwb3J0ZWQKKyAgICAgICAgdGVzdF93aXRoID0gTm9uZQorICAgICAgICAjIGFjcXVpcmUodGltZW91dD0uLi4pIHVuc3VwcG9ydGVkCisgICAgICAgIHRlc3RfdGltZW91dCA9IE5vbmUKKyAgICAgICAgIyBfcmVsZWFzZV9zYXZlKCkgdW5zdXBwb3J0ZWQKKyAgICAgICAgdGVzdF9yZWxlYXNlX3NhdmVfdW5hY3F1aXJlZCA9IE5vbmUKKworZWxzZToKKyAgICBjbGFzcyBNb2R1bGVMb2NrQXNSTG9ja1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgcGFzcworCisKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZGluZywgInRocmVhZHMgbmVlZGVkIGZvciB0aGlzIHRlc3QiKQorY2xhc3MgRGVhZGxvY2tBdm9pZGFuY2VUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgcnVuX2RlYWRsb2NrX2F2b2lkYW5jZV90ZXN0KHNlbGYsIGNyZWF0ZV9kZWFkbG9jayk6CisgICAgICAgIE5MT0NLUyA9IDEwCisgICAgICAgIGxvY2tzID0gW0xvY2tUeXBlKHN0cihpKSkgZm9yIGkgaW4gcmFuZ2UoTkxPQ0tTKV0KKyAgICAgICAgcGFpcnMgPSBbKGxvY2tzW2ldLCBsb2Nrc1soaSsxKSVOTE9DS1NdKSBmb3IgaSBpbiByYW5nZShOTE9DS1MpXQorICAgICAgICBpZiBjcmVhdGVfZGVhZGxvY2s6CisgICAgICAgICAgICBOVEhSRUFEUyA9IE5MT0NLUworICAgICAgICBlbHNlOgorICAgICAgICAgICAgTlRIUkVBRFMgPSBOTE9DS1MgLSAxCisgICAgICAgIGJhcnJpZXIgPSB0aHJlYWRpbmcuQmFycmllcihOVEhSRUFEUykKKyAgICAgICAgcmVzdWx0cyA9IFtdCisgICAgICAgIGRlZiBfYWNxdWlyZShsb2NrKToKKyAgICAgICAgICAgICIiIlRyeSB0byBhY3F1aXJlIHRoZSBsb2NrLiBSZXR1cm4gVHJ1ZSBvbiBzdWNjZXNzLCBGYWxzZSBvbiBkZWFkbG9jay4iIiIKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBsb2NrLmFjcXVpcmUoKQorICAgICAgICAgICAgZXhjZXB0IERlYWRsb2NrRXJyb3I6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICBhLCBiID0gcGFpcnMucG9wKCkKKyAgICAgICAgICAgIHJhID0gX2FjcXVpcmUoYSkKKyAgICAgICAgICAgIGJhcnJpZXIud2FpdCgpCisgICAgICAgICAgICByYiA9IF9hY3F1aXJlKGIpCisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZCgocmEsIHJiKSkKKyAgICAgICAgICAgIGlmIHJiOgorICAgICAgICAgICAgICAgIGIucmVsZWFzZSgpCisgICAgICAgICAgICBpZiByYToKKyAgICAgICAgICAgICAgICBhLnJlbGVhc2UoKQorICAgICAgICBsb2NrX3Rlc3RzLkJ1bmNoKGYsIE5USFJFQURTKS53YWl0X2Zvcl9maW5pc2hlZCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlc3VsdHMpLCBOVEhSRUFEUykKKyAgICAgICAgcmV0dXJuIHJlc3VsdHMKKworICAgIGRlZiB0ZXN0X2RlYWRsb2NrKHNlbGYpOgorICAgICAgICByZXN1bHRzID0gc2VsZi5ydW5fZGVhZGxvY2tfYXZvaWRhbmNlX3Rlc3QoVHJ1ZSkKKyAgICAgICAgIyBPbmUgb2YgdGhlIHRocmVhZHMgZGV0ZWN0ZWQgYSBwb3RlbnRpYWwgZGVhZGxvY2sgb24gaXRzIHNlY29uZAorICAgICAgICAjIGFjcXVpcmUoKSBjYWxsLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdHMuY291bnQoKFRydWUsIEZhbHNlKSksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0cy5jb3VudCgoVHJ1ZSwgVHJ1ZSkpLCBsZW4ocmVzdWx0cykgLSAxKQorCisgICAgZGVmIHRlc3Rfbm9fZGVhZGxvY2soc2VsZik6CisgICAgICAgIHJlc3VsdHMgPSBzZWxmLnJ1bl9kZWFkbG9ja19hdm9pZGFuY2VfdGVzdChGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRzLmNvdW50KChUcnVlLCBGYWxzZSkpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdHMuY291bnQoKFRydWUsIFRydWUpKSwgbGVuKHJlc3VsdHMpKQorCisKK2NsYXNzIExpZmV0aW1lVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfbG9ja19saWZldGltZShzZWxmKToKKyAgICAgICAgbmFtZSA9ICJ4eXp6eSIKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbihuYW1lLCBfYm9vdHN0cmFwLl9tb2R1bGVfbG9ja3MpCisgICAgICAgIGxvY2sgPSBfYm9vdHN0cmFwLl9nZXRfbW9kdWxlX2xvY2sobmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbihuYW1lLCBfYm9vdHN0cmFwLl9tb2R1bGVfbG9ja3MpCisgICAgICAgIHdyID0gd2Vha3JlZi5yZWYobG9jaykKKyAgICAgICAgZGVsIGxvY2sKKyAgICAgICAgc3VwcG9ydC5nY19jb2xsZWN0KCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbihuYW1lLCBfYm9vdHN0cmFwLl9tb2R1bGVfbG9ja3MpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHdyKCkpCisKKyAgICBkZWYgdGVzdF9hbGxfbG9ja3Moc2VsZik6CisgICAgICAgIHN1cHBvcnQuZ2NfY29sbGVjdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKF9ib290c3RyYXAuX21vZHVsZV9sb2NrcyksIF9ib290c3RyYXAuX21vZHVsZV9sb2NrcykKKworCitAc3VwcG9ydC5yZWFwX3RocmVhZHMKK2RlZiB0ZXN0X21haW4oKToKKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChNb2R1bGVMb2NrQXNSTG9ja1Rlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgIERlYWRsb2NrQXZvaWRhbmNlVGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgTGlmZXRpbWVUZXN0cykKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHRlc3RfbWFpbigpCmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3QvdGVzdF91dGlsLnB5IGIvTGliL2ltcG9ydGxpYi90ZXN0L3Rlc3RfdXRpbC5weQppbmRleCA2MDI0NDdmLi5lZmM4OTc3IDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3Rlc3QvdGVzdF91dGlsLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC90ZXN0X3V0aWwucHkKQEAgLTI5LDggKzI5LDggQEAKICAgICAgICAgbW9kdWxlX25hbWUgPSAnYS5iLmMnCiAgICAgICAgIHdpdGggdGVzdF91dGlsLnVuY2FjaGUobW9kdWxlX25hbWUpOgogICAgICAgICAgICAgbW9kdWxlID0gc2VsZi5yZXR1cm5fbW9kdWxlKG1vZHVsZV9uYW1lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1vZHVsZV9uYW1lIGluIHN5cy5tb2R1bGVzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShtb2R1bGUsIHR5cGVzLk1vZHVsZVR5cGUpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihtb2R1bGVfbmFtZSwgc3lzLm1vZHVsZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2R1bGUsIHR5cGVzLk1vZHVsZVR5cGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fbmFtZV9fLCBtb2R1bGVfbmFtZSkKIAogICAgIGRlZiB0ZXN0X3JlbG9hZChzZWxmKToKQEAgLTQ4LDcgKzQ4LDcgQEAKICAgICAgICAgbmFtZSA9ICdhLmIuYycKICAgICAgICAgd2l0aCB0ZXN0X3V0aWwudW5jYWNoZShuYW1lKToKICAgICAgICAgICAgIHNlbGYucmFpc2VfZXhjZXB0aW9uKG5hbWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobmFtZSBub3QgaW4gc3lzLm1vZHVsZXMpCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKG5hbWUsIHN5cy5tb2R1bGVzKQogCiAgICAgZGVmIHRlc3RfcmVsb2FkX2ZhaWx1cmUoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGF0IGEgZmFpbHVyZSBvbiByZWxvYWQgbGVhdmVzIHRoZSBtb2R1bGUgaW4tcGxhY2UuCkBAIC01OSwxMCArNTksNTcgQEAKICAgICAgICAgICAgIHNlbGYucmFpc2VfZXhjZXB0aW9uKG5hbWUpCiAgICAgICAgICAgICBzZWxmLmFzc2VydElzKG1vZHVsZSwgc3lzLm1vZHVsZXNbbmFtZV0pCiAKKyAgICBkZWYgdGVzdF9kZWNvcmF0b3JfYXR0cnMoc2VsZik6CisgICAgICAgIGRlZiBmeG4oc2VsZiwgbW9kdWxlKTogcGFzcworICAgICAgICB3cmFwcGVkID0gdXRpbC5tb2R1bGVfZm9yX2xvYWRlcihmeG4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlZC5fX25hbWVfXywgZnhuLl9fbmFtZV9fKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyYXBwZWQuX19xdWFsbmFtZV9fLCBmeG4uX19xdWFsbmFtZV9fKQorCisgICAgZGVmIHRlc3RfZmFsc2VfbW9kdWxlKHNlbGYpOgorICAgICAgICAjIElmIGZvciBzb21lIG9kZCByZWFzb24gYSBtb2R1bGUgaXMgY29uc2lkZXJlZCBmYWxzZSwgc3RpbGwgcmV0dXJuIGl0CisgICAgICAgICMgZnJvbSBzeXMubW9kdWxlcy4KKyAgICAgICAgY2xhc3MgRmFsc2VNb2R1bGUodHlwZXMuTW9kdWxlVHlwZSk6CisgICAgICAgICAgICBkZWYgX19ib29sX18oc2VsZik6IHJldHVybiBGYWxzZQorCisgICAgICAgIG5hbWUgPSAnbW9kJworICAgICAgICBtb2R1bGUgPSBGYWxzZU1vZHVsZShuYW1lKQorICAgICAgICB3aXRoIHRlc3RfdXRpbC51bmNhY2hlKG5hbWUpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb2R1bGUpCisgICAgICAgICAgICBzeXMubW9kdWxlc1tuYW1lXSA9IG1vZHVsZQorICAgICAgICAgICAgZ2l2ZW4gPSBzZWxmLnJldHVybl9tb2R1bGUobmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoZ2l2ZW4sIG1vZHVsZSkKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZXNfc2V0KHNlbGYpOgorICAgICAgICAjIF9fbmFtZV9fLCBfX2xvYWRlcl9fLCBhbmQgX19wYWNrYWdlX18gc2hvdWxkIGJlIHNldCAod2hlbgorICAgICAgICAjIGlzX3BhY2thZ2UoKSBpcyBkZWZpbmVkOyB1bmRlZmluZWQgaW1wbGljaXRseSB0ZXN0ZWQgZWxzZXdoZXJlKS4KKyAgICAgICAgY2xhc3MgRmFrZUxvYWRlcjoKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpc19wYWNrYWdlKToKKyAgICAgICAgICAgICAgICBzZWxmLl9wa2cgPSBpc19wYWNrYWdlCisgICAgICAgICAgICBkZWYgaXNfcGFja2FnZShzZWxmLCBuYW1lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcGtnCisgICAgICAgICAgICBAdXRpbC5tb2R1bGVfZm9yX2xvYWRlcgorICAgICAgICAgICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIG1vZHVsZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1vZHVsZQorCisgICAgICAgIG5hbWUgPSAncGtnLm1vZCcKKyAgICAgICAgd2l0aCB0ZXN0X3V0aWwudW5jYWNoZShuYW1lKToKKyAgICAgICAgICAgIGxvYWRlciA9IEZha2VMb2FkZXIoRmFsc2UpCisgICAgICAgICAgICBtb2R1bGUgPSBsb2FkZXIubG9hZF9tb2R1bGUobmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kdWxlLl9fbmFtZV9fLCBuYW1lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhtb2R1bGUuX19sb2FkZXJfXywgbG9hZGVyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19wYWNrYWdlX18sICdwa2cnKQorCisgICAgICAgIG5hbWUgPSAncGtnLnN1YicKKyAgICAgICAgd2l0aCB0ZXN0X3V0aWwudW5jYWNoZShuYW1lKToKKyAgICAgICAgICAgIGxvYWRlciA9IEZha2VMb2FkZXIoVHJ1ZSkKKyAgICAgICAgICAgIG1vZHVsZSA9IGxvYWRlci5sb2FkX21vZHVsZShuYW1lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2R1bGUuX19uYW1lX18sIG5hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKG1vZHVsZS5fX2xvYWRlcl9fLCBsb2FkZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZHVsZS5fX3BhY2thZ2VfXywgbmFtZSkKKwogCiBjbGFzcyBTZXRQYWNrYWdlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogCi0KICAgICAiIiJUZXN0cyBmb3IgaW1wb3J0bGliLnV0aWwuc2V0X3BhY2thZ2UuIiIiCiAKICAgICBkZWYgdmVyaWZ5KHNlbGYsIG1vZHVsZSwgZXhwZWN0KToKQEAgLTEwOCwxMCArMTU1LDUzIEBACiAgICAgICAgICAgICBtb2R1bGUuX19wYWNrYWdlX18gPSB2YWx1ZQogICAgICAgICAgICAgc2VsZi52ZXJpZnkobW9kdWxlLCB2YWx1ZSkKIAorICAgIGRlZiB0ZXN0X2RlY29yYXRvcl9hdHRycyhzZWxmKToKKyAgICAgICAgZGVmIGZ4bihtb2R1bGUpOiBwYXNzCisgICAgICAgIHdyYXBwZWQgPSB1dGlsLnNldF9wYWNrYWdlKGZ4bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVkLl9fbmFtZV9fLCBmeG4uX19uYW1lX18pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlZC5fX3F1YWxuYW1lX18sIGZ4bi5fX3F1YWxuYW1lX18pCisKKworY2xhc3MgUmVzb2x2ZU5hbWVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICAiIiJUZXN0cyBpbXBvcnRsaWIudXRpbC5yZXNvbHZlX25hbWUoKS4iIiIKKworICAgIGRlZiB0ZXN0X2Fic29sdXRlKHNlbGYpOgorICAgICAgICAjIGJhY29uCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2JhY29uJywgdXRpbC5yZXNvbHZlX25hbWUoJ2JhY29uJywgTm9uZSkpCisKKyAgICBkZWYgdGVzdF9hYm9zbHV0ZV93aXRoaW5fcGFja2FnZShzZWxmKToKKyAgICAgICAgIyBiYWNvbiBpbiBzcGFtCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2JhY29uJywgdXRpbC5yZXNvbHZlX25hbWUoJ2JhY29uJywgJ3NwYW0nKSkKKworICAgIGRlZiB0ZXN0X25vX3BhY2thZ2Uoc2VsZik6CisgICAgICAgICMgLmJhY29uIGluICcnCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICB1dGlsLnJlc29sdmVfbmFtZSgnLmJhY29uJywgJycpCisKKyAgICBkZWYgdGVzdF9pbl9wYWNrYWdlKHNlbGYpOgorICAgICAgICAjIC5iYWNvbiBpbiBzcGFtCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NwYW0uZWdncy5iYWNvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbC5yZXNvbHZlX25hbWUoJy5iYWNvbicsICdzcGFtLmVnZ3MnKSkKKworICAgIGRlZiB0ZXN0X290aGVyX3BhY2thZ2Uoc2VsZik6CisgICAgICAgICMgLi5iYWNvbiBpbiBzcGFtLmJhY29uCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NwYW0uYmFjb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWwucmVzb2x2ZV9uYW1lKCcuLmJhY29uJywgJ3NwYW0uZWdncycpKQorCisgICAgZGVmIHRlc3RfZXNjYXBlKHNlbGYpOgorICAgICAgICAjIC4uYmFjb24gaW4gc3BhbQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgdXRpbC5yZXNvbHZlX25hbWUoJy4uYmFjb24nLCAnc3BhbScpCisKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KE1vZHVsZUZvckxvYWRlclRlc3RzLCBTZXRQYWNrYWdlVGVzdHMpCisgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoCisgICAgICAgICAgICBNb2R1bGVGb3JMb2FkZXJUZXN0cywKKyAgICAgICAgICAgIFNldFBhY2thZ2VUZXN0cywKKyAgICAgICAgICAgIFJlc29sdmVOYW1lVGVzdHMKKyAgICAgICAgKQogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CmRpZmYgLS1naXQgYS9MaWIvaW1wb3J0bGliL3Rlc3QvdXRpbC5weSBiL0xpYi9pbXBvcnRsaWIvdGVzdC91dGlsLnB5CmluZGV4IDkzYjdjZDIuLmVmMzJmN2QgMTAwNjQ0Ci0tLSBhL0xpYi9pbXBvcnRsaWIvdGVzdC91dGlsLnB5CisrKyBiL0xpYi9pbXBvcnRsaWIvdGVzdC91dGlsLnB5CkBAIC0zNSw3ICszNSw3IEBACiAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CiAgICAgICAgIGlmIG5hbWUgaW4gKCdzeXMnLCAnbWFyc2hhbCcsICdpbXAnKToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgImNhbm5vdCB1bmNhY2hlIHswfSBhcyBpdCB3aWxsIGJyZWFrIF9pbXBvcnRsaWIiLmZvcm1hdChuYW1lKSkKKyAgICAgICAgICAgICAgICAiY2Fubm90IHVuY2FjaGUgezB9Ii5mb3JtYXQobmFtZSkpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGRlbCBzeXMubW9kdWxlc1tuYW1lXQogICAgICAgICBleGNlcHQgS2V5RXJyb3I6CkBAIC0xMjQsNyArMTI0LDExIEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzeXMubW9kdWxlc1tmdWxsbmFtZV0gPSBzZWxmLm1vZHVsZXNbZnVsbG5hbWVdCiAgICAgICAgICAgICBpZiBmdWxsbmFtZSBpbiBzZWxmLm1vZHVsZV9jb2RlOgotICAgICAgICAgICAgICAgIHNlbGYubW9kdWxlX2NvZGVbZnVsbG5hbWVdKCkKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubW9kdWxlX2NvZGVbZnVsbG5hbWVdKCkKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbZnVsbG5hbWVdCisgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICByZXR1cm4gc2VsZi5tb2R1bGVzW2Z1bGxuYW1lXQogCiAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKZGlmZiAtLWdpdCBhL0xpYi9pbXBvcnRsaWIvdXRpbC5weSBiL0xpYi9pbXBvcnRsaWIvdXRpbC5weQppbmRleCA3YjQ0ZmExLi4xMzE2NDM3IDEwMDY0NAotLS0gYS9MaWIvaW1wb3J0bGliL3V0aWwucHkKKysrIGIvTGliL2ltcG9ydGxpYi91dGlsLnB5CkBAIC0zLDMgKzMsMTkgQEAKIGZyb20gLl9ib290c3RyYXAgaW1wb3J0IG1vZHVsZV9mb3JfbG9hZGVyCiBmcm9tIC5fYm9vdHN0cmFwIGltcG9ydCBzZXRfbG9hZGVyCiBmcm9tIC5fYm9vdHN0cmFwIGltcG9ydCBzZXRfcGFja2FnZQorZnJvbSAuX2Jvb3RzdHJhcCBpbXBvcnQgX3Jlc29sdmVfbmFtZQorCisKK2RlZiByZXNvbHZlX25hbWUobmFtZSwgcGFja2FnZSk6CisgICAgIiIiUmVzb2x2ZSBhIHJlbGF0aXZlIG1vZHVsZSBuYW1lIHRvIGFuIGFic29sdXRlIG9uZS4iIiIKKyAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCcuJyk6CisgICAgICAgIHJldHVybiBuYW1lCisgICAgZWxpZiBub3QgcGFja2FnZToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigneyFyfSBpcyBub3QgYSByZWxhdGl2ZSBuYW1lICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAnKG5vIGxlYWRpbmcgZG90KScuZm9ybWF0KG5hbWUpKQorICAgIGxldmVsID0gMAorICAgIGZvciBjaGFyYWN0ZXIgaW4gbmFtZToKKyAgICAgICAgaWYgY2hhcmFjdGVyICE9ICcuJzoKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGxldmVsICs9IDEKKyAgICByZXR1cm4gX3Jlc29sdmVfbmFtZShuYW1lW2xldmVsOl0sIHBhY2thZ2UsIGxldmVsKQpkaWZmIC0tZ2l0IGEvTGliL2luc3BlY3QucHkgYi9MaWIvaW5zcGVjdC5weQppbmRleCAyMDMxNzU1Li4wNzRlMWI0IDEwMDY0NAotLS0gYS9MaWIvaW5zcGVjdC5weQorKysgYi9MaWIvaW5zcGVjdC5weQpAQCAtMjIsMjQgKzIyLDI5IEBACiAgICAgZ2V0b3V0ZXJmcmFtZXMoKSwgZ2V0aW5uZXJmcmFtZXMoKSAtIGdldCBpbmZvIGFib3V0IGZyYW1lcwogICAgIGN1cnJlbnRmcmFtZSgpIC0gZ2V0IHRoZSBjdXJyZW50IHN0YWNrIGZyYW1lCiAgICAgc3RhY2soKSwgdHJhY2UoKSAtIGdldCBpbmZvIGFib3V0IGZyYW1lcyBvbiB0aGUgc3RhY2sgb3IgaW4gYSB0cmFjZWJhY2sKKworICAgIHNpZ25hdHVyZSgpIC0gZ2V0IGEgU2lnbmF0dXJlIG9iamVjdCBmb3IgdGhlIGNhbGxhYmxlCiAiIiIKIAogIyBUaGlzIG1vZHVsZSBpcyBpbiB0aGUgcHVibGljIGRvbWFpbi4gIE5vIHdhcnJhbnRpZXMuCiAKLV9fYXV0aG9yX18gPSAnS2EtUGluZyBZZWUgPHBpbmdAbGZ3Lm9yZz4nCi1fX2RhdGVfXyA9ICcxIEphbiAyMDAxJworX19hdXRob3JfXyA9ICgnS2EtUGluZyBZZWUgPHBpbmdAbGZ3Lm9yZz4nLAorICAgICAgICAgICAgICAnWXVyeSBTZWxpdmFub3YgPHlzZWxpdmFub3ZAc3ByeW1peC5jb20+JykKIAotaW1wb3J0IHN5cwotaW1wb3J0IG9zCi1pbXBvcnQgdHlwZXMKLWltcG9ydCBpdGVydG9vbHMKLWltcG9ydCBzdHJpbmcKLWltcG9ydCByZQogaW1wb3J0IGltcAotaW1wb3J0IHRva2VuaXplCitpbXBvcnQgaW1wb3J0bGliLm1hY2hpbmVyeQoraW1wb3J0IGl0ZXJ0b29scwogaW1wb3J0IGxpbmVjYWNoZQoraW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKK2ltcG9ydCB0b2tlbml6ZQoraW1wb3J0IHR5cGVzCitpbXBvcnQgd2FybmluZ3MKK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCBidWlsdGlucwogZnJvbSBvcGVyYXRvciBpbXBvcnQgYXR0cmdldHRlcgotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZQorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZSwgT3JkZXJlZERpY3QKIAogIyBDcmVhdGUgY29uc3RhbnRzIGZvciB0aGUgY29tcGlsZXIgZmxhZ3MgaW4gSW5jbHVkZS9jb2RlLmgKICMgV2UgdHJ5IHRvIGdldCB0aGVtIGZyb20gZGlzIHRvIGF2b2lkIGR1cGxpY2F0aW9uLCBidXQgZmFsbApAQCAtNDMzLDYgKzQzOCw4IEBACiAKIGRlZiBnZXRtb2R1bGVpbmZvKHBhdGgpOgogICAgICIiIkdldCB0aGUgbW9kdWxlIG5hbWUsIHN1ZmZpeCwgbW9kZSwgYW5kIG1vZHVsZSB0eXBlIGZvciBhIGdpdmVuIGZpbGUuIiIiCisgICAgd2FybmluZ3Mud2FybignaW5zcGVjdC5nZXRtb2R1bGVpbmZvKCkgaXMgZGVwcmVjYXRlZCcsIERlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgICAgICAgICAgIDIpCiAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpCiAgICAgc3VmZml4ZXMgPSBbKC1sZW4oc3VmZml4KSwgc3VmZml4LCBtb2RlLCBtdHlwZSkKICAgICAgICAgICAgICAgICAgICAgZm9yIHN1ZmZpeCwgbW9kZSwgbXR5cGUgaW4gaW1wLmdldF9zdWZmaXhlcygpXQpAQCAtNDUxLDEyICs0NTgsMTQgQEAKICAgICBSZXR1cm4gTm9uZSBpZiBubyB3YXkgY2FuIGJlIGlkZW50aWZpZWQgdG8gZ2V0IHRoZSBzb3VyY2UuCiAgICAgIiIiCiAgICAgZmlsZW5hbWUgPSBnZXRmaWxlKG9iamVjdCkKLSAgICBpZiBmaWxlbmFtZVstNDpdLmxvd2VyKCkgaW4gKCcucHljJywgJy5weW8nKToKLSAgICAgICAgZmlsZW5hbWUgPSBmaWxlbmFtZVs6LTRdICsgJy5weScKLSAgICBmb3Igc3VmZml4LCBtb2RlLCBraW5kIGluIGltcC5nZXRfc3VmZml4ZXMoKToKLSAgICAgICAgaWYgJ2InIGluIG1vZGUgYW5kIGZpbGVuYW1lWy1sZW4oc3VmZml4KTpdLmxvd2VyKCkgPT0gc3VmZml4OgotICAgICAgICAgICAgIyBMb29rcyBsaWtlIGEgYmluYXJ5IGZpbGUuICBXZSB3YW50IHRvIG9ubHkgcmV0dXJuIGEgdGV4dCBmaWxlLgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICBhbGxfYnl0ZWNvZGVfc3VmZml4ZXMgPSBpbXBvcnRsaWIubWFjaGluZXJ5LkRFQlVHX0JZVEVDT0RFX1NVRkZJWEVTWzpdCisgICAgYWxsX2J5dGVjb2RlX3N1ZmZpeGVzICs9IGltcG9ydGxpYi5tYWNoaW5lcnkuT1BUSU1JWkVEX0JZVEVDT0RFX1NVRkZJWEVTWzpdCisgICAgaWYgYW55KGZpbGVuYW1lLmVuZHN3aXRoKHMpIGZvciBzIGluIGFsbF9ieXRlY29kZV9zdWZmaXhlcyk6CisgICAgICAgIGZpbGVuYW1lID0gKG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpWzBdICsKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0bGliLm1hY2hpbmVyeS5TT1VSQ0VfU1VGRklYRVNbMF0pCisgICAgZWxpZiBhbnkoZmlsZW5hbWUuZW5kc3dpdGgocykgZm9yIHMgaW4KKyAgICAgICAgICAgICAgICAgaW1wb3J0bGliLm1hY2hpbmVyeS5FWFRFTlNJT05fU1VGRklYRVMpOgorICAgICAgICByZXR1cm4gTm9uZQogICAgIGlmIG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lKToKICAgICAgICAgcmV0dXJuIGZpbGVuYW1lCiAgICAgIyBvbmx5IHJldHVybiBhIG5vbi1leGlzdGVudCBmaWxlbmFtZSBpZiB0aGUgbW9kdWxlIGhhcyBhIFBFUCAzMDIgbG9hZGVyCkBAIC05MzEsNiArOTQwLDQzIEBACiAgICAgICAgIHNwZWNzLmFwcGVuZChmb3JtYXR2YXJrdyh2YXJrdykgKyBmb3JtYXR2YWx1ZShsb2NhbHNbdmFya3ddKSkKICAgICByZXR1cm4gJygnICsgJywgJy5qb2luKHNwZWNzKSArICcpJwogCitkZWYgX21pc3NpbmdfYXJndW1lbnRzKGZfbmFtZSwgYXJnbmFtZXMsIHBvcywgdmFsdWVzKToKKyAgICBuYW1lcyA9IFtyZXByKG5hbWUpIGZvciBuYW1lIGluIGFyZ25hbWVzIGlmIG5hbWUgbm90IGluIHZhbHVlc10KKyAgICBtaXNzaW5nID0gbGVuKG5hbWVzKQorICAgIGlmIG1pc3NpbmcgPT0gMToKKyAgICAgICAgcyA9IG5hbWVzWzBdCisgICAgZWxpZiBtaXNzaW5nID09IDI6CisgICAgICAgIHMgPSAie30gYW5kIHt9Ii5mb3JtYXQoKm5hbWVzKQorICAgIGVsc2U6CisgICAgICAgIHRhaWwgPSAiLCB7fSBhbmQge30iLmZvcm1hdChuYW1lc1stMjpdKQorICAgICAgICBkZWwgbmFtZXNbLTI6XQorICAgICAgICBzID0gIiwgIi5qb2luKG5hbWVzKSArIHRhaWwKKyAgICByYWlzZSBUeXBlRXJyb3IoIiVzKCkgbWlzc2luZyAlaSByZXF1aXJlZCAlcyBhcmd1bWVudCVzOiAlcyIgJQorICAgICAgICAgICAgICAgICAgICAoZl9uYW1lLCBtaXNzaW5nLAorICAgICAgICAgICAgICAgICAgICAgICJwb3NpdGlvbmFsIiBpZiBwb3MgZWxzZSAia2V5d29yZC1vbmx5IiwKKyAgICAgICAgICAgICAgICAgICAgICAiIiBpZiBtaXNzaW5nID09IDEgZWxzZSAicyIsIHMpKQorCitkZWYgX3Rvb19tYW55KGZfbmFtZSwgYXJncywga3dvbmx5LCB2YXJhcmdzLCBkZWZjb3VudCwgZ2l2ZW4sIHZhbHVlcyk6CisgICAgYXRsZWFzdCA9IGxlbihhcmdzKSAtIGRlZmNvdW50CisgICAga3dvbmx5X2dpdmVuID0gbGVuKFthcmcgZm9yIGFyZyBpbiBrd29ubHkgaWYgYXJnIGluIHZhbHVlc10pCisgICAgaWYgdmFyYXJnczoKKyAgICAgICAgcGx1cmFsID0gYXRsZWFzdCAhPSAxCisgICAgICAgIHNpZyA9ICJhdCBsZWFzdCAlZCIgJSAoYXRsZWFzdCwpCisgICAgZWxpZiBkZWZjb3VudDoKKyAgICAgICAgcGx1cmFsID0gVHJ1ZQorICAgICAgICBzaWcgPSAiZnJvbSAlZCB0byAlZCIgJSAoYXRsZWFzdCwgbGVuKGFyZ3MpKQorICAgIGVsc2U6CisgICAgICAgIHBsdXJhbCA9IGxlbihhcmdzKSAhPSAxCisgICAgICAgIHNpZyA9IHN0cihsZW4oYXJncykpCisgICAga3dvbmx5X3NpZyA9ICIiCisgICAgaWYga3dvbmx5X2dpdmVuOgorICAgICAgICBtc2cgPSAiIHBvc2l0aW9uYWwgYXJndW1lbnQlcyAoYW5kICVkIGtleXdvcmQtb25seSBhcmd1bWVudCVzKSIKKyAgICAgICAga3dvbmx5X3NpZyA9IChtc2cgJSAoInMiIGlmIGdpdmVuICE9IDEgZWxzZSAiIiwga3dvbmx5X2dpdmVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgaWYga3dvbmx5X2dpdmVuICE9IDEgZWxzZSAiIikpCisgICAgcmFpc2UgVHlwZUVycm9yKCIlcygpIHRha2VzICVzIHBvc2l0aW9uYWwgYXJndW1lbnQlcyBidXQgJWQlcyAlcyBnaXZlbiIgJQorICAgICAgICAgICAgKGZfbmFtZSwgc2lnLCAicyIgaWYgcGx1cmFsIGVsc2UgIiIsIGdpdmVuLCBrd29ubHlfc2lnLAorICAgICAgICAgICAgICJ3YXMiIGlmIGdpdmVuID09IDEgYW5kIG5vdCBrd29ubHlfZ2l2ZW4gZWxzZSAid2VyZSIpKQorCiBkZWYgZ2V0Y2FsbGFyZ3MoZnVuYywgKnBvc2l0aW9uYWwsICoqbmFtZWQpOgogICAgICIiIkdldCB0aGUgbWFwcGluZyBvZiBhcmd1bWVudHMgdG8gdmFsdWVzLgogCkBAIC05NDIsNjYgKzk4OCwxMDggQEAKICAgICBmX25hbWUgPSBmdW5jLl9fbmFtZV9fCiAgICAgYXJnMnZhbHVlID0ge30KIAorCiAgICAgaWYgaXNtZXRob2QoZnVuYykgYW5kIGZ1bmMuX19zZWxmX18gaXMgbm90IE5vbmU6CiAgICAgICAgICMgaW1wbGljaXQgJ3NlbGYnIChvciAnY2xzJyBmb3IgY2xhc3NtZXRob2RzKSBhcmd1bWVudAogICAgICAgICBwb3NpdGlvbmFsID0gKGZ1bmMuX19zZWxmX18sKSArIHBvc2l0aW9uYWwKICAgICBudW1fcG9zID0gbGVuKHBvc2l0aW9uYWwpCi0gICAgbnVtX3RvdGFsID0gbnVtX3BvcyArIGxlbihuYW1lZCkKICAgICBudW1fYXJncyA9IGxlbihhcmdzKQogICAgIG51bV9kZWZhdWx0cyA9IGxlbihkZWZhdWx0cykgaWYgZGVmYXVsdHMgZWxzZSAwCi0gICAgZm9yIGFyZywgdmFsdWUgaW4gemlwKGFyZ3MsIHBvc2l0aW9uYWwpOgotICAgICAgICBhcmcydmFsdWVbYXJnXSA9IHZhbHVlCi0gICAgaWYgdmFyYXJnczoKLSAgICAgICAgaWYgbnVtX3BvcyA+IG51bV9hcmdzOgotICAgICAgICAgICAgYXJnMnZhbHVlW3ZhcmFyZ3NdID0gcG9zaXRpb25hbFstKG51bV9wb3MtbnVtX2FyZ3MpOl0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFyZzJ2YWx1ZVt2YXJhcmdzXSA9ICgpCi0gICAgZWxpZiAwIDwgbnVtX2FyZ3MgPCBudW1fcG9zOgotICAgICAgICByYWlzZSBUeXBlRXJyb3IoJyVzKCkgdGFrZXMgJXMgJWQgcG9zaXRpb25hbCAlcyAoJWQgZ2l2ZW4pJyAlICgKLSAgICAgICAgICAgIGZfbmFtZSwgJ2F0IG1vc3QnIGlmIGRlZmF1bHRzIGVsc2UgJ2V4YWN0bHknLCBudW1fYXJncywKLSAgICAgICAgICAgICdhcmd1bWVudHMnIGlmIG51bV9hcmdzID4gMSBlbHNlICdhcmd1bWVudCcsIG51bV90b3RhbCkpCi0gICAgZWxpZiBudW1fYXJncyA9PSAwIGFuZCBudW1fdG90YWw6Ci0gICAgICAgIGlmIHZhcmt3IG9yIGt3b25seWFyZ3M6Ci0gICAgICAgICAgICBpZiBudW1fcG9zOgotICAgICAgICAgICAgICAgICMgWFhYOiBXZSBzaG91bGQgdXNlIG51bV9wb3MsIGJ1dCBQeXRob24gYWxzbyB1c2VzIG51bV90b3RhbDoKLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJyVzKCkgdGFrZXMgZXhhY3RseSAwIHBvc2l0aW9uYWwgYXJndW1lbnRzICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyglZCBnaXZlbiknICUgKGZfbmFtZSwgbnVtX3RvdGFsKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignJXMoKSB0YWtlcyBubyBhcmd1bWVudHMgKCVkIGdpdmVuKScgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmX25hbWUsIG51bV90b3RhbCkpCiAKLSAgICBmb3IgYXJnIGluIGl0ZXJ0b29scy5jaGFpbihhcmdzLCBrd29ubHlhcmdzKToKLSAgICAgICAgaWYgYXJnIGluIG5hbWVkOgotICAgICAgICAgICAgaWYgYXJnIGluIGFyZzJ2YWx1ZToKLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzKCkgZ290IG11bHRpcGxlIHZhbHVlcyBmb3Iga2V5d29yZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCAnJXMnIiAlIChmX25hbWUsIGFyZykpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGFyZzJ2YWx1ZVthcmddID0gbmFtZWQucG9wKGFyZykKLSAgICBmb3Iga3dvbmx5YXJnIGluIGt3b25seWFyZ3M6Ci0gICAgICAgIGlmIGt3b25seWFyZyBub3QgaW4gYXJnMnZhbHVlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGFyZzJ2YWx1ZVtrd29ubHlhcmddID0ga3dvbmx5ZGVmYXVsdHNba3dvbmx5YXJnXQotICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiJXMoKSBuZWVkcyBrZXl3b3JkLW9ubHkgYXJndW1lbnQgJXMiICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZfbmFtZSwga3dvbmx5YXJnKSkKLSAgICBpZiBkZWZhdWx0czogICAgIyBmaWxsIGluIGFueSBtaXNzaW5nIHZhbHVlcyB3aXRoIHRoZSBkZWZhdWx0cwotICAgICAgICBmb3IgYXJnLCB2YWx1ZSBpbiB6aXAoYXJnc1stbnVtX2RlZmF1bHRzOl0sIGRlZmF1bHRzKToKLSAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gYXJnMnZhbHVlOgotICAgICAgICAgICAgICAgIGFyZzJ2YWx1ZVthcmddID0gdmFsdWUKKyAgICBuID0gbWluKG51bV9wb3MsIG51bV9hcmdzKQorICAgIGZvciBpIGluIHJhbmdlKG4pOgorICAgICAgICBhcmcydmFsdWVbYXJnc1tpXV0gPSBwb3NpdGlvbmFsW2ldCisgICAgaWYgdmFyYXJnczoKKyAgICAgICAgYXJnMnZhbHVlW3ZhcmFyZ3NdID0gdHVwbGUocG9zaXRpb25hbFtuOl0pCisgICAgcG9zc2libGVfa3dhcmdzID0gc2V0KGFyZ3MgKyBrd29ubHlhcmdzKQogICAgIGlmIHZhcmt3OgotICAgICAgICBhcmcydmFsdWVbdmFya3ddID0gbmFtZWQKLSAgICBlbGlmIG5hbWVkOgotICAgICAgICB1bmV4cGVjdGVkID0gbmV4dChpdGVyKG5hbWVkKSkKLSAgICAgICAgcmFpc2UgVHlwZUVycm9yKCIlcygpIGdvdCBhbiB1bmV4cGVjdGVkIGtleXdvcmQgYXJndW1lbnQgJyVzJyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgKGZfbmFtZSwgdW5leHBlY3RlZCkpCi0gICAgdW5hc3NpZ25lZCA9IG51bV9hcmdzIC0gbGVuKFthcmcgZm9yIGFyZyBpbiBhcmdzIGlmIGFyZyBpbiBhcmcydmFsdWVdKQotICAgIGlmIHVuYXNzaWduZWQ6Ci0gICAgICAgIG51bV9yZXF1aXJlZCA9IG51bV9hcmdzIC0gbnVtX2RlZmF1bHRzCi0gICAgICAgIHJhaXNlIFR5cGVFcnJvcignJXMoKSB0YWtlcyAlcyAlZCAlcyAoJWQgZ2l2ZW4pJyAlICgKLSAgICAgICAgICAgIGZfbmFtZSwgJ2F0IGxlYXN0JyBpZiBkZWZhdWx0cyBlbHNlICdleGFjdGx5JywgbnVtX3JlcXVpcmVkLAotICAgICAgICAgICAgJ2FyZ3VtZW50cycgaWYgbnVtX3JlcXVpcmVkID4gMSBlbHNlICdhcmd1bWVudCcsIG51bV90b3RhbCkpCisgICAgICAgIGFyZzJ2YWx1ZVt2YXJrd10gPSB7fQorICAgIGZvciBrdywgdmFsdWUgaW4gbmFtZWQuaXRlbXMoKToKKyAgICAgICAgaWYga3cgbm90IGluIHBvc3NpYmxlX2t3YXJnczoKKyAgICAgICAgICAgIGlmIG5vdCB2YXJrdzoKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzKCkgZ290IGFuIHVuZXhwZWN0ZWQga2V5d29yZCBhcmd1bWVudCAlciIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZl9uYW1lLCBrdykpCisgICAgICAgICAgICBhcmcydmFsdWVbdmFya3ddW2t3XSA9IHZhbHVlCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBrdyBpbiBhcmcydmFsdWU6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzKCkgZ290IG11bHRpcGxlIHZhbHVlcyBmb3IgYXJndW1lbnQgJXIiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZl9uYW1lLCBrdykpCisgICAgICAgIGFyZzJ2YWx1ZVtrd10gPSB2YWx1ZQorICAgIGlmIG51bV9wb3MgPiBudW1fYXJncyBhbmQgbm90IHZhcmFyZ3M6CisgICAgICAgIF90b29fbWFueShmX25hbWUsIGFyZ3MsIGt3b25seWFyZ3MsIHZhcmFyZ3MsIG51bV9kZWZhdWx0cywKKyAgICAgICAgICAgICAgICAgICBudW1fcG9zLCBhcmcydmFsdWUpCisgICAgaWYgbnVtX3BvcyA8IG51bV9hcmdzOgorICAgICAgICByZXEgPSBhcmdzWzpudW1fYXJncyAtIG51bV9kZWZhdWx0c10KKyAgICAgICAgZm9yIGFyZyBpbiByZXE6CisgICAgICAgICAgICBpZiBhcmcgbm90IGluIGFyZzJ2YWx1ZToKKyAgICAgICAgICAgICAgICBfbWlzc2luZ19hcmd1bWVudHMoZl9uYW1lLCByZXEsIFRydWUsIGFyZzJ2YWx1ZSkKKyAgICAgICAgZm9yIGksIGFyZyBpbiBlbnVtZXJhdGUoYXJnc1tudW1fYXJncyAtIG51bV9kZWZhdWx0czpdKToKKyAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gYXJnMnZhbHVlOgorICAgICAgICAgICAgICAgIGFyZzJ2YWx1ZVthcmddID0gZGVmYXVsdHNbaV0KKyAgICBtaXNzaW5nID0gMAorICAgIGZvciBrd2FyZyBpbiBrd29ubHlhcmdzOgorICAgICAgICBpZiBrd2FyZyBub3QgaW4gYXJnMnZhbHVlOgorICAgICAgICAgICAgaWYga3dhcmcgaW4ga3dvbmx5ZGVmYXVsdHM6CisgICAgICAgICAgICAgICAgYXJnMnZhbHVlW2t3YXJnXSA9IGt3b25seWRlZmF1bHRzW2t3YXJnXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtaXNzaW5nICs9IDEKKyAgICBpZiBtaXNzaW5nOgorICAgICAgICBfbWlzc2luZ19hcmd1bWVudHMoZl9uYW1lLCBrd29ubHlhcmdzLCBGYWxzZSwgYXJnMnZhbHVlKQogICAgIHJldHVybiBhcmcydmFsdWUKIAorQ2xvc3VyZVZhcnMgPSBuYW1lZHR1cGxlKCdDbG9zdXJlVmFycycsICdub25sb2NhbHMgZ2xvYmFscyBidWlsdGlucyB1bmJvdW5kJykKKworZGVmIGdldGNsb3N1cmV2YXJzKGZ1bmMpOgorICAgICIiIgorICAgIEdldCB0aGUgbWFwcGluZyBvZiBmcmVlIHZhcmlhYmxlcyB0byB0aGVpciBjdXJyZW50IHZhbHVlcy4KKworICAgIFJldHVybnMgYSBuYW1lZCB0dXBsZSBvZiBkaWNzIG1hcHBpbmcgdGhlIGN1cnJlbnQgbm9ubG9jYWwsIGdsb2JhbAorICAgIGFuZCBidWlsdGluIHJlZmVyZW5jZXMgYXMgc2VlbiBieSB0aGUgYm9keSBvZiB0aGUgZnVuY3Rpb24uIEEgZmluYWwKKyAgICBzZXQgb2YgdW5ib3VuZCBuYW1lcyB0aGF0IGNvdWxkIG5vdCBiZSByZXNvbHZlZCBpcyBhbHNvIHByb3ZpZGVkLgorICAgICIiIgorCisgICAgaWYgaXNtZXRob2QoZnVuYyk6CisgICAgICAgIGZ1bmMgPSBmdW5jLl9fZnVuY19fCisKKyAgICBpZiBub3QgaXNmdW5jdGlvbihmdW5jKToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCIneyFyfScgaXMgbm90IGEgUHl0aG9uIGZ1bmN0aW9uIi5mb3JtYXQoZnVuYykpCisKKyAgICBjb2RlID0gZnVuYy5fX2NvZGVfXworICAgICMgTm9ubG9jYWwgcmVmZXJlbmNlcyBhcmUgbmFtZWQgaW4gY29fZnJlZXZhcnMgYW5kIHJlc29sdmVkCisgICAgIyBieSBsb29raW5nIHRoZW0gdXAgaW4gX19jbG9zdXJlX18gYnkgcG9zaXRpb25hbCBpbmRleAorICAgIGlmIGZ1bmMuX19jbG9zdXJlX18gaXMgTm9uZToKKyAgICAgICAgbm9ubG9jYWxfdmFycyA9IHt9CisgICAgZWxzZToKKyAgICAgICAgbm9ubG9jYWxfdmFycyA9IHsKKyAgICAgICAgICAgIHZhciA6IGNlbGwuY2VsbF9jb250ZW50cworICAgICAgICAgICAgZm9yIHZhciwgY2VsbCBpbiB6aXAoY29kZS5jb19mcmVldmFycywgZnVuYy5fX2Nsb3N1cmVfXykKKyAgICAgICB9CisKKyAgICAjIEdsb2JhbCBhbmQgYnVpbHRpbiByZWZlcmVuY2VzIGFyZSBuYW1lZCBpbiBjb19uYW1lcyBhbmQgcmVzb2x2ZWQKKyAgICAjIGJ5IGxvb2tpbmcgdGhlbSB1cCBpbiBfX2dsb2JhbHNfXyBvciBfX2J1aWx0aW5zX18KKyAgICBnbG9iYWxfbnMgPSBmdW5jLl9fZ2xvYmFsc19fCisgICAgYnVpbHRpbl9ucyA9IGdsb2JhbF9ucy5nZXQoIl9fYnVpbHRpbnNfXyIsIGJ1aWx0aW5zLl9fZGljdF9fKQorICAgIGlmIGlzbW9kdWxlKGJ1aWx0aW5fbnMpOgorICAgICAgICBidWlsdGluX25zID0gYnVpbHRpbl9ucy5fX2RpY3RfXworICAgIGdsb2JhbF92YXJzID0ge30KKyAgICBidWlsdGluX3ZhcnMgPSB7fQorICAgIHVuYm91bmRfbmFtZXMgPSBzZXQoKQorICAgIGZvciBuYW1lIGluIGNvZGUuY29fbmFtZXM6CisgICAgICAgIGlmIG5hbWUgaW4gKCJOb25lIiwgIlRydWUiLCAiRmFsc2UiKToKKyAgICAgICAgICAgICMgQmVjYXVzZSB0aGVzZSB1c2VkIHRvIGJlIGJ1aWx0aW5zIGluc3RlYWQgb2Yga2V5d29yZHMsIHRoZXkKKyAgICAgICAgICAgICMgbWF5IHN0aWxsIHNob3cgdXAgYXMgbmFtZSByZWZlcmVuY2VzLiBXZSBpZ25vcmUgdGhlbS4KKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGdsb2JhbF92YXJzW25hbWVdID0gZ2xvYmFsX25zW25hbWVdCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBidWlsdGluX3ZhcnNbbmFtZV0gPSBidWlsdGluX25zW25hbWVdCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgdW5ib3VuZF9uYW1lcy5hZGQobmFtZSkKKworICAgIHJldHVybiBDbG9zdXJlVmFycyhub25sb2NhbF92YXJzLCBnbG9iYWxfdmFycywKKyAgICAgICAgICAgICAgICAgICAgICAgYnVpbHRpbl92YXJzLCB1bmJvdW5kX25hbWVzKQorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHN0YWNrIGZyYW1lIGV4dHJhY3Rpb24KIAogVHJhY2ViYWNrID0gbmFtZWR0dXBsZSgnVHJhY2ViYWNrJywgJ2ZpbGVuYW1lIGxpbmVubyBmdW5jdGlvbiBjb2RlX2NvbnRleHQgaW5kZXgnKQpAQCAtMTE3MSw2ICsxMjU5LDggQEAKICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihhdHRyKQogCiAKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIGdlbmVyYXRvciBpbnRyb3NwZWN0aW9uCisKIEdFTl9DUkVBVEVEID0gJ0dFTl9DUkVBVEVEJwogR0VOX1JVTk5JTkcgPSAnR0VOX1JVTk5JTkcnCiBHRU5fU1VTUEVOREVEID0gJ0dFTl9TVVNQRU5ERUQnCkBAIC0xMTkyLDMgKzEyODIsNzg1IEBACiAgICAgaWYgZ2VuZXJhdG9yLmdpX2ZyYW1lLmZfbGFzdGkgPT0gLTE6CiAgICAgICAgIHJldHVybiBHRU5fQ1JFQVRFRAogICAgIHJldHVybiBHRU5fU1VTUEVOREVECisKKworZGVmIGdldGdlbmVyYXRvcmxvY2FscyhnZW5lcmF0b3IpOgorICAgICIiIgorICAgIEdldCB0aGUgbWFwcGluZyBvZiBnZW5lcmF0b3IgbG9jYWwgdmFyaWFibGVzIHRvIHRoZWlyIGN1cnJlbnQgdmFsdWVzLgorCisgICAgQSBkaWN0IGlzIHJldHVybmVkLCB3aXRoIHRoZSBrZXlzIHRoZSBsb2NhbCB2YXJpYWJsZSBuYW1lcyBhbmQgdmFsdWVzIHRoZQorICAgIGJvdW5kIHZhbHVlcy4iIiIKKworICAgIGlmIG5vdCBpc2dlbmVyYXRvcihnZW5lcmF0b3IpOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoIid7IXJ9JyBpcyBub3QgYSBQeXRob24gZ2VuZXJhdG9yIi5mb3JtYXQoZ2VuZXJhdG9yKSkKKworICAgIGZyYW1lID0gZ2V0YXR0cihnZW5lcmF0b3IsICJnaV9mcmFtZSIsIE5vbmUpCisgICAgaWYgZnJhbWUgaXMgbm90IE5vbmU6CisgICAgICAgIHJldHVybiBnZW5lcmF0b3IuZ2lfZnJhbWUuZl9sb2NhbHMKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4ge30KKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyMjIEZ1bmN0aW9uIFNpZ25hdHVyZSBPYmplY3QgKFBFUCAzNjIpCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKworX1dyYXBwZXJEZXNjcmlwdG9yID0gdHlwZSh0eXBlLl9fY2FsbF9fKQorX01ldGhvZFdyYXBwZXIgPSB0eXBlKGFsbC5fX2NhbGxfXykKKworX05vblVzZXJEZWZpbmVkQ2FsbGFibGVzID0gKF9XcmFwcGVyRGVzY3JpcHRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBfTWV0aG9kV3JhcHBlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlcy5CdWlsdGluRnVuY3Rpb25UeXBlKQorCisKK2RlZiBfZ2V0X3VzZXJfZGVmaW5lZF9tZXRob2QoY2xzLCBtZXRob2RfbmFtZSk6CisgICAgdHJ5OgorICAgICAgICBtZXRoID0gZ2V0YXR0cihjbHMsIG1ldGhvZF9uYW1lKQorICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgcmV0dXJuCisgICAgZWxzZToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobWV0aCwgX05vblVzZXJEZWZpbmVkQ2FsbGFibGVzKToKKyAgICAgICAgICAgICMgT25jZSAnX19zaWduYXR1cmVfXycgd2lsbCBiZSBhZGRlZCB0byAnQyctbGV2ZWwKKyAgICAgICAgICAgICMgY2FsbGFibGVzLCB0aGlzIGNoZWNrIHdvbid0IGJlIG5lY2Vzc2FyeQorICAgICAgICAgICAgcmV0dXJuIG1ldGgKKworCitkZWYgc2lnbmF0dXJlKG9iaik6CisgICAgJycnR2V0IGEgc2lnbmF0dXJlIG9iamVjdCBmb3IgdGhlIHBhc3NlZCBjYWxsYWJsZS4nJycKKworICAgIGlmIG5vdCBjYWxsYWJsZShvYmopOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ3shcn0gaXMgbm90IGEgY2FsbGFibGUgb2JqZWN0Jy5mb3JtYXQob2JqKSkKKworICAgIGlmIGlzaW5zdGFuY2Uob2JqLCB0eXBlcy5NZXRob2RUeXBlKToKKyAgICAgICAgIyBJbiB0aGlzIGNhc2Ugd2Ugc2tpcCB0aGUgZmlyc3QgcGFyYW1ldGVyIG9mIHRoZSB1bmRlcmx5aW5nCisgICAgICAgICMgZnVuY3Rpb24gKHVzdWFsbHkgYHNlbGZgIG9yIGBjbHNgKS4KKyAgICAgICAgc2lnID0gc2lnbmF0dXJlKG9iai5fX2Z1bmNfXykKKyAgICAgICAgcmV0dXJuIHNpZy5yZXBsYWNlKHBhcmFtZXRlcnM9dHVwbGUoc2lnLnBhcmFtZXRlcnMudmFsdWVzKCkpWzE6XSkKKworICAgIHRyeToKKyAgICAgICAgc2lnID0gb2JqLl9fc2lnbmF0dXJlX18KKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgIHBhc3MKKyAgICBlbHNlOgorICAgICAgICBpZiBzaWcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2lnCisKKyAgICB0cnk6CisgICAgICAgICMgV2FzIHRoaXMgZnVuY3Rpb24gd3JhcHBlZCBieSBhIGRlY29yYXRvcj8KKyAgICAgICAgd3JhcHBlZCA9IG9iai5fX3dyYXBwZWRfXworICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIHJldHVybiBzaWduYXR1cmUod3JhcHBlZCkKKworICAgIGlmIGlzaW5zdGFuY2Uob2JqLCB0eXBlcy5GdW5jdGlvblR5cGUpOgorICAgICAgICByZXR1cm4gU2lnbmF0dXJlLmZyb21fZnVuY3Rpb24ob2JqKQorCisgICAgaWYgaXNpbnN0YW5jZShvYmosIGZ1bmN0b29scy5wYXJ0aWFsKToKKyAgICAgICAgc2lnID0gc2lnbmF0dXJlKG9iai5mdW5jKQorCisgICAgICAgIG5ld19wYXJhbXMgPSBPcmRlcmVkRGljdChzaWcucGFyYW1ldGVycy5pdGVtcygpKQorCisgICAgICAgIHBhcnRpYWxfYXJncyA9IG9iai5hcmdzIG9yICgpCisgICAgICAgIHBhcnRpYWxfa2V5d29yZHMgPSBvYmoua2V5d29yZHMgb3Ige30KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYmEgPSBzaWcuYmluZF9wYXJ0aWFsKCpwYXJ0aWFsX2FyZ3MsICoqcGFydGlhbF9rZXl3b3JkcykKKyAgICAgICAgZXhjZXB0IFR5cGVFcnJvciBhcyBleDoKKyAgICAgICAgICAgIG1zZyA9ICdwYXJ0aWFsIG9iamVjdCB7IXJ9IGhhcyBpbmNvcnJlY3QgYXJndW1lbnRzJy5mb3JtYXQob2JqKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihtc2cpIGZyb20gZXgKKworICAgICAgICBmb3IgYXJnX25hbWUsIGFyZ192YWx1ZSBpbiBiYS5hcmd1bWVudHMuaXRlbXMoKToKKyAgICAgICAgICAgIHBhcmFtID0gbmV3X3BhcmFtc1thcmdfbmFtZV0KKyAgICAgICAgICAgIGlmIGFyZ19uYW1lIGluIHBhcnRpYWxfa2V5d29yZHM6CisgICAgICAgICAgICAgICAgIyBXZSBzZXQgYSBuZXcgZGVmYXVsdCB2YWx1ZSwgYmVjYXVzZSB0aGUgZm9sbG93aW5nIGNvZGUKKyAgICAgICAgICAgICAgICAjIGlzIGNvcnJlY3Q6CisgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICMgICA+Pj4gZGVmIGZvbyhhKTogcHJpbnQoYSkKKyAgICAgICAgICAgICAgICAjICAgPj4+IHByaW50KHBhcnRpYWwocGFydGlhbChmb28sIGE9MTApLCBhPTIwKSgpKQorICAgICAgICAgICAgICAgICMgICAyMAorICAgICAgICAgICAgICAgICMgICA+Pj4gcHJpbnQocGFydGlhbChwYXJ0aWFsKGZvbywgYT0xMCksIGE9MjApKGE9MzApKQorICAgICAgICAgICAgICAgICMgICAzMAorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIFNvLCB3aXRoICdwYXJ0aWFsJyBvYmplY3RzLCBwYXNzaW5nIGEga2V5d29yZCBhcmd1bWVudCBpcworICAgICAgICAgICAgICAgICMgbGlrZSBzZXR0aW5nIGEgbmV3IGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgIyBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBXZSBhbHNvIG1hcmsgdGhpcyBwYXJhbWV0ZXIgd2l0aCAnX3BhcnRpYWxfa3dhcmcnCisgICAgICAgICAgICAgICAgIyBmbGFnLiAgTGF0ZXIsIGluICdfYmluZCcsIHRoZSAnZGVmYXVsdCcgdmFsdWUgb2YgdGhpcworICAgICAgICAgICAgICAgICMgcGFyYW1ldGVyIHdpbGwgYmUgYWRkZWQgdG8gJ2t3YXJncycsIHRvIHNpbXVsYXRlCisgICAgICAgICAgICAgICAgIyB0aGUgJ2Z1bmN0b29scy5wYXJ0aWFsJyByZWFsIGNhbGwuCisgICAgICAgICAgICAgICAgbmV3X3BhcmFtc1thcmdfbmFtZV0gPSBwYXJhbS5yZXBsYWNlKGRlZmF1bHQ9YXJnX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGFydGlhbF9rd2FyZz1UcnVlKQorCisgICAgICAgICAgICBlbGlmIChwYXJhbS5raW5kIG5vdCBpbiAoX1ZBUl9LRVlXT1JELCBfVkFSX1BPU0lUSU9OQUwpIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBwYXJhbS5fcGFydGlhbF9rd2FyZyk6CisgICAgICAgICAgICAgICAgbmV3X3BhcmFtcy5wb3AoYXJnX25hbWUpCisKKyAgICAgICAgcmV0dXJuIHNpZy5yZXBsYWNlKHBhcmFtZXRlcnM9bmV3X3BhcmFtcy52YWx1ZXMoKSkKKworICAgIHNpZyA9IE5vbmUKKyAgICBpZiBpc2luc3RhbmNlKG9iaiwgdHlwZSk6CisgICAgICAgICMgb2JqIGlzIGEgY2xhc3Mgb3IgYSBtZXRhY2xhc3MKKworICAgICAgICAjIEZpcnN0LCBsZXQncyBzZWUgaWYgaXQgaGFzIGFuIG92ZXJsb2FkZWQgX19jYWxsX18gZGVmaW5lZAorICAgICAgICAjIGluIGl0cyBtZXRhY2xhc3MKKyAgICAgICAgY2FsbCA9IF9nZXRfdXNlcl9kZWZpbmVkX21ldGhvZCh0eXBlKG9iaiksICdfX2NhbGxfXycpCisgICAgICAgIGlmIGNhbGwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzaWcgPSBzaWduYXR1cmUoY2FsbCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgTm93IHdlIGNoZWNrIGlmIHRoZSAnb2JqJyBjbGFzcyBoYXMgYSAnX19uZXdfXycgbWV0aG9kCisgICAgICAgICAgICBuZXcgPSBfZ2V0X3VzZXJfZGVmaW5lZF9tZXRob2Qob2JqLCAnX19uZXdfXycpCisgICAgICAgICAgICBpZiBuZXcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2lnID0gc2lnbmF0dXJlKG5ldykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBGaW5hbGx5LCB3ZSBzaG91bGQgaGF2ZSBhdCBsZWFzdCBfX2luaXRfXyBpbXBsZW1lbnRlZAorICAgICAgICAgICAgICAgIGluaXQgPSBfZ2V0X3VzZXJfZGVmaW5lZF9tZXRob2Qob2JqLCAnX19pbml0X18nKQorICAgICAgICAgICAgICAgIGlmIGluaXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHNpZyA9IHNpZ25hdHVyZShpbml0KQorICAgIGVsaWYgbm90IGlzaW5zdGFuY2Uob2JqLCBfTm9uVXNlckRlZmluZWRDYWxsYWJsZXMpOgorICAgICAgICAjIEFuIG9iamVjdCB3aXRoIF9fY2FsbF9fCisgICAgICAgICMgV2UgYWxzbyBjaGVjayB0aGF0IHRoZSAnb2JqJyBpcyBub3QgYW4gaW5zdGFuY2Ugb2YKKyAgICAgICAgIyBfV3JhcHBlckRlc2NyaXB0b3Igb3IgX01ldGhvZFdyYXBwZXIgdG8gYXZvaWQKKyAgICAgICAgIyBpbmZpbml0ZSByZWN1cnNpb24gKGFuZCBldmVuIHBvdGVudGlhbCBzZWdmYXVsdCkKKyAgICAgICAgY2FsbCA9IF9nZXRfdXNlcl9kZWZpbmVkX21ldGhvZCh0eXBlKG9iaiksICdfX2NhbGxfXycpCisgICAgICAgIGlmIGNhbGwgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzaWcgPSBzaWduYXR1cmUoY2FsbCkKKworICAgIGlmIHNpZyBpcyBub3QgTm9uZToKKyAgICAgICAgIyBGb3IgY2xhc3NlcyBhbmQgb2JqZWN0cyB3ZSBza2lwIHRoZSBmaXJzdCBwYXJhbWV0ZXIgb2YgdGhlaXIKKyAgICAgICAgIyBfX2NhbGxfXywgX19uZXdfXywgb3IgX19pbml0X18gbWV0aG9kcworICAgICAgICByZXR1cm4gc2lnLnJlcGxhY2UocGFyYW1ldGVycz10dXBsZShzaWcucGFyYW1ldGVycy52YWx1ZXMoKSlbMTpdKQorCisgICAgaWYgaXNpbnN0YW5jZShvYmosIHR5cGVzLkJ1aWx0aW5GdW5jdGlvblR5cGUpOgorICAgICAgICAjIFJhaXNlIGEgbmljZXIgZXJyb3IgbWVzc2FnZSBmb3IgYnVpbHRpbnMKKyAgICAgICAgbXNnID0gJ25vIHNpZ25hdHVyZSBmb3VuZCBmb3IgYnVpbHRpbiBmdW5jdGlvbiB7IXJ9Jy5mb3JtYXQob2JqKQorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZykKKworICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2NhbGxhYmxlIHshcn0gaXMgbm90IHN1cHBvcnRlZCBieSBzaWduYXR1cmUnLmZvcm1hdChvYmopKQorCisKK2NsYXNzIF92b2lkOgorICAgICcnJ0EgcHJpdmF0ZSBtYXJrZXIgLSB1c2VkIGluIFBhcmFtZXRlciAmIFNpZ25hdHVyZScnJworCisKK2NsYXNzIF9lbXB0eToKKyAgICBwYXNzCisKKworY2xhc3MgX1BhcmFtZXRlcktpbmQoaW50KToKKyAgICBkZWYgX19uZXdfXyhzZWxmLCAqYXJncywgbmFtZSk6CisgICAgICAgIG9iaiA9IGludC5fX25ld19fKHNlbGYsICphcmdzKQorICAgICAgICBvYmouX25hbWUgPSBuYW1lCisgICAgICAgIHJldHVybiBvYmoKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fbmFtZQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzxfUGFyYW1ldGVyS2luZDogeyFyfT4nLmZvcm1hdChzZWxmLl9uYW1lKQorCisKK19QT1NJVElPTkFMX09OTFkgICAgICAgID0gX1BhcmFtZXRlcktpbmQoMCwgbmFtZT0nUE9TSVRJT05BTF9PTkxZJykKK19QT1NJVElPTkFMX09SX0tFWVdPUkQgID0gX1BhcmFtZXRlcktpbmQoMSwgbmFtZT0nUE9TSVRJT05BTF9PUl9LRVlXT1JEJykKK19WQVJfUE9TSVRJT05BTCAgICAgICAgID0gX1BhcmFtZXRlcktpbmQoMiwgbmFtZT0nVkFSX1BPU0lUSU9OQUwnKQorX0tFWVdPUkRfT05MWSAgICAgICAgICAgPSBfUGFyYW1ldGVyS2luZCgzLCBuYW1lPSdLRVlXT1JEX09OTFknKQorX1ZBUl9LRVlXT1JEICAgICAgICAgICAgPSBfUGFyYW1ldGVyS2luZCg0LCBuYW1lPSdWQVJfS0VZV09SRCcpCisKKworY2xhc3MgUGFyYW1ldGVyOgorICAgICcnJ1JlcHJlc2VudHMgYSBwYXJhbWV0ZXIgaW4gYSBmdW5jdGlvbiBzaWduYXR1cmUuCisKKyAgICBIYXMgdGhlIGZvbGxvd2luZyBwdWJsaWMgYXR0cmlidXRlczoKKworICAgICogbmFtZSA6IHN0cgorICAgICAgICBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGFzIGEgc3RyaW5nLgorICAgICogZGVmYXVsdCA6IG9iamVjdAorICAgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHBhcmFtZXRlciBpZiBzcGVjaWZpZWQuICBJZiB0aGUKKyAgICAgICAgcGFyYW1ldGVyIGhhcyBubyBkZWZhdWx0IHZhbHVlLCB0aGlzIGF0dHJpYnV0ZSBpcyBub3Qgc2V0LgorICAgICogYW5ub3RhdGlvbgorICAgICAgICBUaGUgYW5ub3RhdGlvbiBmb3IgdGhlIHBhcmFtZXRlciBpZiBzcGVjaWZpZWQuICBJZiB0aGUKKyAgICAgICAgcGFyYW1ldGVyIGhhcyBubyBhbm5vdGF0aW9uLCB0aGlzIGF0dHJpYnV0ZSBpcyBub3Qgc2V0LgorICAgICoga2luZCA6IHN0cgorICAgICAgICBEZXNjcmliZXMgaG93IGFyZ3VtZW50IHZhbHVlcyBhcmUgYm91bmQgdG8gdGhlIHBhcmFtZXRlci4KKyAgICAgICAgUG9zc2libGUgdmFsdWVzOiBgUGFyYW1ldGVyLlBPU0lUSU9OQUxfT05MWWAsCisgICAgICAgIGBQYXJhbWV0ZXIuUE9TSVRJT05BTF9PUl9LRVlXT1JEYCwgYFBhcmFtZXRlci5WQVJfUE9TSVRJT05BTGAsCisgICAgICAgIGBQYXJhbWV0ZXIuS0VZV09SRF9PTkxZYCwgYFBhcmFtZXRlci5WQVJfS0VZV09SRGAuCisgICAgJycnCisKKyAgICBfX3Nsb3RzX18gPSAoJ19uYW1lJywgJ19raW5kJywgJ19kZWZhdWx0JywgJ19hbm5vdGF0aW9uJywgJ19wYXJ0aWFsX2t3YXJnJykKKworICAgIFBPU0lUSU9OQUxfT05MWSAgICAgICAgID0gX1BPU0lUSU9OQUxfT05MWQorICAgIFBPU0lUSU9OQUxfT1JfS0VZV09SRCAgID0gX1BPU0lUSU9OQUxfT1JfS0VZV09SRAorICAgIFZBUl9QT1NJVElPTkFMICAgICAgICAgID0gX1ZBUl9QT1NJVElPTkFMCisgICAgS0VZV09SRF9PTkxZICAgICAgICAgICAgPSBfS0VZV09SRF9PTkxZCisgICAgVkFSX0tFWVdPUkQgICAgICAgICAgICAgPSBfVkFSX0tFWVdPUkQKKworICAgIGVtcHR5ID0gX2VtcHR5CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwga2luZCwgKiwgZGVmYXVsdD1fZW1wdHksIGFubm90YXRpb249X2VtcHR5LAorICAgICAgICAgICAgICAgICBfcGFydGlhbF9rd2FyZz1GYWxzZSk6CisKKyAgICAgICAgaWYga2luZCBub3QgaW4gKF9QT1NJVElPTkFMX09OTFksIF9QT1NJVElPTkFMX09SX0tFWVdPUkQsCisgICAgICAgICAgICAgICAgICAgICAgICBfVkFSX1BPU0lUSU9OQUwsIF9LRVlXT1JEX09OTFksIF9WQVJfS0VZV09SRCk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIHZhbHVlIGZvciAnUGFyYW1ldGVyLmtpbmQnIGF0dHJpYnV0ZSIpCisgICAgICAgIHNlbGYuX2tpbmQgPSBraW5kCisKKyAgICAgICAgaWYgZGVmYXVsdCBpcyBub3QgX2VtcHR5OgorICAgICAgICAgICAgaWYga2luZCBpbiAoX1ZBUl9QT1NJVElPTkFMLCBfVkFSX0tFWVdPUkQpOgorICAgICAgICAgICAgICAgIG1zZyA9ICd7fSBwYXJhbWV0ZXJzIGNhbm5vdCBoYXZlIGRlZmF1bHQgdmFsdWVzJy5mb3JtYXQoa2luZCkKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZykKKyAgICAgICAgc2VsZi5fZGVmYXVsdCA9IGRlZmF1bHQKKyAgICAgICAgc2VsZi5fYW5ub3RhdGlvbiA9IGFubm90YXRpb24KKworICAgICAgICBpZiBuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICBpZiBraW5kICE9IF9QT1NJVElPTkFMX09OTFk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiTm9uZSBpcyBub3QgYSB2YWxpZCBuYW1lIGZvciBhICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub24tcG9zaXRpb25hbC1vbmx5IHBhcmFtZXRlciIpCisgICAgICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmFtZSA9IHN0cihuYW1lKQorICAgICAgICAgICAgaWYga2luZCAhPSBfUE9TSVRJT05BTF9PTkxZIGFuZCBub3QgbmFtZS5pc2lkZW50aWZpZXIoKToKKyAgICAgICAgICAgICAgICBtc2cgPSAneyFyfSBpcyBub3QgYSB2YWxpZCBwYXJhbWV0ZXIgbmFtZScuZm9ybWF0KG5hbWUpCisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihtc2cpCisgICAgICAgICAgICBzZWxmLl9uYW1lID0gbmFtZQorCisgICAgICAgIHNlbGYuX3BhcnRpYWxfa3dhcmcgPSBfcGFydGlhbF9rd2FyZworCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9uYW1lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZGVmYXVsdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2RlZmF1bHQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBhbm5vdGF0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYW5ub3RhdGlvbgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGtpbmQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9raW5kCisKKyAgICBkZWYgcmVwbGFjZShzZWxmLCAqLCBuYW1lPV92b2lkLCBraW5kPV92b2lkLCBhbm5vdGF0aW9uPV92b2lkLAorICAgICAgICAgICAgICAgIGRlZmF1bHQ9X3ZvaWQsIF9wYXJ0aWFsX2t3YXJnPV92b2lkKToKKyAgICAgICAgJycnQ3JlYXRlcyBhIGN1c3RvbWl6ZWQgY29weSBvZiB0aGUgUGFyYW1ldGVyLicnJworCisgICAgICAgIGlmIG5hbWUgaXMgX3ZvaWQ6CisgICAgICAgICAgICBuYW1lID0gc2VsZi5fbmFtZQorCisgICAgICAgIGlmIGtpbmQgaXMgX3ZvaWQ6CisgICAgICAgICAgICBraW5kID0gc2VsZi5fa2luZAorCisgICAgICAgIGlmIGFubm90YXRpb24gaXMgX3ZvaWQ6CisgICAgICAgICAgICBhbm5vdGF0aW9uID0gc2VsZi5fYW5ub3RhdGlvbgorCisgICAgICAgIGlmIGRlZmF1bHQgaXMgX3ZvaWQ6CisgICAgICAgICAgICBkZWZhdWx0ID0gc2VsZi5fZGVmYXVsdAorCisgICAgICAgIGlmIF9wYXJ0aWFsX2t3YXJnIGlzIF92b2lkOgorICAgICAgICAgICAgX3BhcnRpYWxfa3dhcmcgPSBzZWxmLl9wYXJ0aWFsX2t3YXJnCisKKyAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikobmFtZSwga2luZCwgZGVmYXVsdD1kZWZhdWx0LCBhbm5vdGF0aW9uPWFubm90YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgIF9wYXJ0aWFsX2t3YXJnPV9wYXJ0aWFsX2t3YXJnKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIGtpbmQgPSBzZWxmLmtpbmQKKworICAgICAgICBmb3JtYXR0ZWQgPSBzZWxmLl9uYW1lCisgICAgICAgIGlmIGtpbmQgPT0gX1BPU0lUSU9OQUxfT05MWToKKyAgICAgICAgICAgIGlmIGZvcm1hdHRlZCBpcyBOb25lOgorICAgICAgICAgICAgICAgIGZvcm1hdHRlZCA9ICcnCisgICAgICAgICAgICBmb3JtYXR0ZWQgPSAnPHt9PicuZm9ybWF0KGZvcm1hdHRlZCkKKworICAgICAgICAjIEFkZCBhbm5vdGF0aW9uIGFuZCBkZWZhdWx0IHZhbHVlCisgICAgICAgIGlmIHNlbGYuX2Fubm90YXRpb24gaXMgbm90IF9lbXB0eToKKyAgICAgICAgICAgIGZvcm1hdHRlZCA9ICd7fTp7fScuZm9ybWF0KGZvcm1hdHRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdGFubm90YXRpb24oc2VsZi5fYW5ub3RhdGlvbikpCisKKyAgICAgICAgaWYgc2VsZi5fZGVmYXVsdCBpcyBub3QgX2VtcHR5OgorICAgICAgICAgICAgZm9ybWF0dGVkID0gJ3t9PXt9Jy5mb3JtYXQoZm9ybWF0dGVkLCByZXByKHNlbGYuX2RlZmF1bHQpKQorCisgICAgICAgIGlmIGtpbmQgPT0gX1ZBUl9QT1NJVElPTkFMOgorICAgICAgICAgICAgZm9ybWF0dGVkID0gJyonICsgZm9ybWF0dGVkCisgICAgICAgIGVsaWYga2luZCA9PSBfVkFSX0tFWVdPUkQ6CisgICAgICAgICAgICBmb3JtYXR0ZWQgPSAnKionICsgZm9ybWF0dGVkCisKKyAgICAgICAgcmV0dXJuIGZvcm1hdHRlZAorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJzx7fSBhdCB7OiN4fSB7IXJ9PicuZm9ybWF0KHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkKHNlbGYpLCBzZWxmLm5hbWUpCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIChpc3N1YmNsYXNzKG90aGVyLl9fY2xhc3NfXywgUGFyYW1ldGVyKSBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLl9uYW1lID09IG90aGVyLl9uYW1lIGFuZAorICAgICAgICAgICAgICAgIHNlbGYuX2tpbmQgPT0gb3RoZXIuX2tpbmQgYW5kCisgICAgICAgICAgICAgICAgc2VsZi5fZGVmYXVsdCA9PSBvdGhlci5fZGVmYXVsdCBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLl9hbm5vdGF0aW9uID09IG90aGVyLl9hbm5vdGF0aW9uKQorCisgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3Qgc2VsZi5fX2VxX18ob3RoZXIpCisKKworY2xhc3MgQm91bmRBcmd1bWVudHM6CisgICAgJycnUmVzdWx0IG9mIGBTaWduYXR1cmUuYmluZGAgY2FsbC4gIEhvbGRzIHRoZSBtYXBwaW5nIG9mIGFyZ3VtZW50cworICAgIHRvIHRoZSBmdW5jdGlvbidzIHBhcmFtZXRlcnMuCisKKyAgICBIYXMgdGhlIGZvbGxvd2luZyBwdWJsaWMgYXR0cmlidXRlczoKKworICAgICogYXJndW1lbnRzIDogT3JkZXJlZERpY3QKKyAgICAgICAgQW4gb3JkZXJlZCBtdXRhYmxlIG1hcHBpbmcgb2YgcGFyYW1ldGVycycgbmFtZXMgdG8gYXJndW1lbnRzJyB2YWx1ZXMuCisgICAgICAgIERvZXMgbm90IGNvbnRhaW4gYXJndW1lbnRzJyBkZWZhdWx0IHZhbHVlcy4KKyAgICAqIHNpZ25hdHVyZSA6IFNpZ25hdHVyZQorICAgICAgICBUaGUgU2lnbmF0dXJlIG9iamVjdCB0aGF0IGNyZWF0ZWQgdGhpcyBpbnN0YW5jZS4KKyAgICAqIGFyZ3MgOiB0dXBsZQorICAgICAgICBUdXBsZSBvZiBwb3NpdGlvbmFsIGFyZ3VtZW50cyB2YWx1ZXMuCisgICAgKiBrd2FyZ3MgOiBkaWN0CisgICAgICAgIERpY3Qgb2Yga2V5d29yZCBhcmd1bWVudHMgdmFsdWVzLgorICAgICcnJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNpZ25hdHVyZSwgYXJndW1lbnRzKToKKyAgICAgICAgc2VsZi5hcmd1bWVudHMgPSBhcmd1bWVudHMKKyAgICAgICAgc2VsZi5fc2lnbmF0dXJlID0gc2lnbmF0dXJlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2lnbmF0dXJlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fc2lnbmF0dXJlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYXJncyhzZWxmKToKKyAgICAgICAgYXJncyA9IFtdCisgICAgICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbSBpbiBzZWxmLl9zaWduYXR1cmUucGFyYW1ldGVycy5pdGVtcygpOgorICAgICAgICAgICAgaWYgKHBhcmFtLmtpbmQgaW4gKF9WQVJfS0VZV09SRCwgX0tFWVdPUkRfT05MWSkgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbS5fcGFydGlhbF9rd2FyZyk6CisgICAgICAgICAgICAgICAgIyBLZXl3b3JkIGFyZ3VtZW50cyBtYXBwZWQgYnkgJ2Z1bmN0b29scy5wYXJ0aWFsJworICAgICAgICAgICAgICAgICMgKFBhcmFtZXRlci5fcGFydGlhbF9rd2FyZyBpcyBUcnVlKSBhcmUgbWFwcGVkCisgICAgICAgICAgICAgICAgIyBpbiAnQm91bmRBcmd1bWVudHMua3dhcmdzJywgYWxvbmcgd2l0aCBWQVJfS0VZV09SRCAmCisgICAgICAgICAgICAgICAgIyBLRVlXT1JEX09OTFkKKyAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYXJnID0gc2VsZi5hcmd1bWVudHNbcGFyYW1fbmFtZV0KKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAjIFdlJ3JlIGRvbmUgaGVyZS4gT3RoZXIgYXJndW1lbnRzCisgICAgICAgICAgICAgICAgIyB3aWxsIGJlIG1hcHBlZCBpbiAnQm91bmRBcmd1bWVudHMua3dhcmdzJworICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHBhcmFtLmtpbmQgPT0gX1ZBUl9QT1NJVElPTkFMOgorICAgICAgICAgICAgICAgICAgICAjICphcmdzCisgICAgICAgICAgICAgICAgICAgIGFyZ3MuZXh0ZW5kKGFyZykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIHBsYWluIGFyZ3VtZW50CisgICAgICAgICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKGFyZykKKworICAgICAgICByZXR1cm4gdHVwbGUoYXJncykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBrd2FyZ3Moc2VsZik6CisgICAgICAgIGt3YXJncyA9IHt9CisgICAgICAgIGt3YXJnc19zdGFydGVkID0gRmFsc2UKKyAgICAgICAgZm9yIHBhcmFtX25hbWUsIHBhcmFtIGluIHNlbGYuX3NpZ25hdHVyZS5wYXJhbWV0ZXJzLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBub3Qga3dhcmdzX3N0YXJ0ZWQ6CisgICAgICAgICAgICAgICAgaWYgKHBhcmFtLmtpbmQgaW4gKF9WQVJfS0VZV09SRCwgX0tFWVdPUkRfT05MWSkgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLl9wYXJ0aWFsX2t3YXJnKToKKyAgICAgICAgICAgICAgICAgICAga3dhcmdzX3N0YXJ0ZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW1fbmFtZSBub3QgaW4gc2VsZi5hcmd1bWVudHM6CisgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nfc3RhcnRlZCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGlmIG5vdCBrd2FyZ3Nfc3RhcnRlZDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYXJnID0gc2VsZi5hcmd1bWVudHNbcGFyYW1fbmFtZV0KKyAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHBhcmFtLmtpbmQgPT0gX1ZBUl9LRVlXT1JEOgorICAgICAgICAgICAgICAgICAgICAjICoqa3dhcmdzCisgICAgICAgICAgICAgICAgICAgIGt3YXJncy51cGRhdGUoYXJnKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgcGxhaW4ga2V5d29yZCBhcmd1bWVudAorICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbcGFyYW1fbmFtZV0gPSBhcmcKKworICAgICAgICByZXR1cm4ga3dhcmdzCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIChpc3N1YmNsYXNzKG90aGVyLl9fY2xhc3NfXywgQm91bmRBcmd1bWVudHMpIGFuZAorICAgICAgICAgICAgICAgIHNlbGYuc2lnbmF0dXJlID09IG90aGVyLnNpZ25hdHVyZSBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLmFyZ3VtZW50cyA9PSBvdGhlci5hcmd1bWVudHMpCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikKKworCitjbGFzcyBTaWduYXR1cmU6CisgICAgJycnQSBTaWduYXR1cmUgb2JqZWN0IHJlcHJlc2VudHMgdGhlIG92ZXJhbGwgc2lnbmF0dXJlIG9mIGEgZnVuY3Rpb24uCisgICAgSXQgc3RvcmVzIGEgUGFyYW1ldGVyIG9iamVjdCBmb3IgZWFjaCBwYXJhbWV0ZXIgYWNjZXB0ZWQgYnkgdGhlCisgICAgZnVuY3Rpb24sIGFzIHdlbGwgYXMgaW5mb3JtYXRpb24gc3BlY2lmaWMgdG8gdGhlIGZ1bmN0aW9uIGl0c2VsZi4KKworICAgIEEgU2lnbmF0dXJlIG9iamVjdCBoYXMgdGhlIGZvbGxvd2luZyBwdWJsaWMgYXR0cmlidXRlcyBhbmQgbWV0aG9kczoKKworICAgICogcGFyYW1ldGVycyA6IE9yZGVyZWREaWN0CisgICAgICAgIEFuIG9yZGVyZWQgbWFwcGluZyBvZiBwYXJhbWV0ZXJzJyBuYW1lcyB0byB0aGUgY29ycmVzcG9uZGluZworICAgICAgICBQYXJhbWV0ZXIgb2JqZWN0cyAoa2V5d29yZC1vbmx5IGFyZ3VtZW50cyBhcmUgaW4gdGhlIHNhbWUgb3JkZXIKKyAgICAgICAgYXMgbGlzdGVkIGluIGBjb2RlLmNvX3Zhcm5hbWVzYCkuCisgICAgKiByZXR1cm5fYW5ub3RhdGlvbiA6IG9iamVjdAorICAgICAgICBUaGUgYW5ub3RhdGlvbiBmb3IgdGhlIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvbiBpZiBzcGVjaWZpZWQuCisgICAgICAgIElmIHRoZSBmdW5jdGlvbiBoYXMgbm8gYW5ub3RhdGlvbiBmb3IgaXRzIHJldHVybiB0eXBlLCB0aGlzCisgICAgICAgIGF0dHJpYnV0ZSBpcyBub3Qgc2V0LgorICAgICogYmluZCgqYXJncywgKiprd2FyZ3MpIC0+IEJvdW5kQXJndW1lbnRzCisgICAgICAgIENyZWF0ZXMgYSBtYXBwaW5nIGZyb20gcG9zaXRpb25hbCBhbmQga2V5d29yZCBhcmd1bWVudHMgdG8KKyAgICAgICAgcGFyYW1ldGVycy4KKyAgICAqIGJpbmRfcGFydGlhbCgqYXJncywgKiprd2FyZ3MpIC0+IEJvdW5kQXJndW1lbnRzCisgICAgICAgIENyZWF0ZXMgYSBwYXJ0aWFsIG1hcHBpbmcgZnJvbSBwb3NpdGlvbmFsIGFuZCBrZXl3b3JkIGFyZ3VtZW50cworICAgICAgICB0byBwYXJhbWV0ZXJzIChzaW11bGF0aW5nICdmdW5jdG9vbHMucGFydGlhbCcgYmVoYXZpb3IuKQorICAgICcnJworCisgICAgX19zbG90c19fID0gKCdfcmV0dXJuX2Fubm90YXRpb24nLCAnX3BhcmFtZXRlcnMnKQorCisgICAgX3BhcmFtZXRlcl9jbHMgPSBQYXJhbWV0ZXIKKyAgICBfYm91bmRfYXJndW1lbnRzX2NscyA9IEJvdW5kQXJndW1lbnRzCisKKyAgICBlbXB0eSA9IF9lbXB0eQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmFtZXRlcnM9Tm9uZSwgKiwgcmV0dXJuX2Fubm90YXRpb249X2VtcHR5LAorICAgICAgICAgICAgICAgICBfX3ZhbGlkYXRlX3BhcmFtZXRlcnNfXz1UcnVlKToKKyAgICAgICAgJycnQ29uc3RydWN0cyBTaWduYXR1cmUgZnJvbSB0aGUgZ2l2ZW4gbGlzdCBvZiBQYXJhbWV0ZXIKKyAgICAgICAgb2JqZWN0cyBhbmQgJ3JldHVybl9hbm5vdGF0aW9uJy4gIEFsbCBhcmd1bWVudHMgYXJlIG9wdGlvbmFsLgorICAgICAgICAnJycKKworICAgICAgICBpZiBwYXJhbWV0ZXJzIGlzIE5vbmU6CisgICAgICAgICAgICBwYXJhbXMgPSBPcmRlcmVkRGljdCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBfX3ZhbGlkYXRlX3BhcmFtZXRlcnNfXzoKKyAgICAgICAgICAgICAgICBwYXJhbXMgPSBPcmRlcmVkRGljdCgpCisgICAgICAgICAgICAgICAgdG9wX2tpbmQgPSBfUE9TSVRJT05BTF9PTkxZCisKKyAgICAgICAgICAgICAgICBmb3IgaWR4LCBwYXJhbSBpbiBlbnVtZXJhdGUocGFyYW1ldGVycyk6CisgICAgICAgICAgICAgICAgICAgIGtpbmQgPSBwYXJhbS5raW5kCisgICAgICAgICAgICAgICAgICAgIGlmIGtpbmQgPCB0b3Bfa2luZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICd3cm9uZyBwYXJhbWV0ZXIgb3JkZXI6IHt9IGJlZm9yZSB7fScKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IG1zZy5mb3JtYXQodG9wX2tpbmQsIHBhcmFtLmtpbmQpCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZykKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHRvcF9raW5kID0ga2luZAorCisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBwYXJhbS5uYW1lCisgICAgICAgICAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzdHIoaWR4KQorICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW0gPSBwYXJhbS5yZXBsYWNlKG5hbWU9bmFtZSkKKworICAgICAgICAgICAgICAgICAgICBpZiBuYW1lIGluIHBhcmFtczoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICdkdXBsaWNhdGUgcGFyYW1ldGVyIG5hbWU6IHshcn0nLmZvcm1hdChuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihtc2cpCisgICAgICAgICAgICAgICAgICAgIHBhcmFtc1tuYW1lXSA9IHBhcmFtCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBhcmFtcyA9IE9yZGVyZWREaWN0KCgocGFyYW0ubmFtZSwgcGFyYW0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcGFyYW0gaW4gcGFyYW1ldGVycykpCisKKyAgICAgICAgc2VsZi5fcGFyYW1ldGVycyA9IHR5cGVzLk1hcHBpbmdQcm94eVR5cGUocGFyYW1zKQorICAgICAgICBzZWxmLl9yZXR1cm5fYW5ub3RhdGlvbiA9IHJldHVybl9hbm5vdGF0aW9uCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZnJvbV9mdW5jdGlvbihjbHMsIGZ1bmMpOgorICAgICAgICAnJydDb25zdHJ1Y3RzIFNpZ25hdHVyZSBmb3IgdGhlIGdpdmVuIHB5dGhvbiBmdW5jdGlvbicnJworCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGZ1bmMsIHR5cGVzLkZ1bmN0aW9uVHlwZSk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ3shcn0gaXMgbm90IGEgUHl0aG9uIGZ1bmN0aW9uJy5mb3JtYXQoZnVuYykpCisKKyAgICAgICAgUGFyYW1ldGVyID0gY2xzLl9wYXJhbWV0ZXJfY2xzCisKKyAgICAgICAgIyBQYXJhbWV0ZXIgaW5mb3JtYXRpb24uCisgICAgICAgIGZ1bmNfY29kZSA9IGZ1bmMuX19jb2RlX18KKyAgICAgICAgcG9zX2NvdW50ID0gZnVuY19jb2RlLmNvX2FyZ2NvdW50CisgICAgICAgIGFyZ19uYW1lcyA9IGZ1bmNfY29kZS5jb192YXJuYW1lcworICAgICAgICBwb3NpdGlvbmFsID0gdHVwbGUoYXJnX25hbWVzWzpwb3NfY291bnRdKQorICAgICAgICBrZXl3b3JkX29ubHlfY291bnQgPSBmdW5jX2NvZGUuY29fa3dvbmx5YXJnY291bnQKKyAgICAgICAga2V5d29yZF9vbmx5ID0gYXJnX25hbWVzW3Bvc19jb3VudDoocG9zX2NvdW50ICsga2V5d29yZF9vbmx5X2NvdW50KV0KKyAgICAgICAgYW5ub3RhdGlvbnMgPSBmdW5jLl9fYW5ub3RhdGlvbnNfXworICAgICAgICBkZWZhdWx0cyA9IGZ1bmMuX19kZWZhdWx0c19fCisgICAgICAgIGt3ZGVmYXVsdHMgPSBmdW5jLl9fa3dkZWZhdWx0c19fCisKKyAgICAgICAgaWYgZGVmYXVsdHM6CisgICAgICAgICAgICBwb3NfZGVmYXVsdF9jb3VudCA9IGxlbihkZWZhdWx0cykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBvc19kZWZhdWx0X2NvdW50ID0gMAorCisgICAgICAgIHBhcmFtZXRlcnMgPSBbXQorCisgICAgICAgICMgTm9uLWtleXdvcmQtb25seSBwYXJhbWV0ZXJzIHcvbyBkZWZhdWx0cy4KKyAgICAgICAgbm9uX2RlZmF1bHRfY291bnQgPSBwb3NfY291bnQgLSBwb3NfZGVmYXVsdF9jb3VudAorICAgICAgICBmb3IgbmFtZSBpbiBwb3NpdGlvbmFsWzpub25fZGVmYXVsdF9jb3VudF06CisgICAgICAgICAgICBhbm5vdGF0aW9uID0gYW5ub3RhdGlvbnMuZ2V0KG5hbWUsIF9lbXB0eSkKKyAgICAgICAgICAgIHBhcmFtZXRlcnMuYXBwZW5kKFBhcmFtZXRlcihuYW1lLCBhbm5vdGF0aW9uPWFubm90YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZD1fUE9TSVRJT05BTF9PUl9LRVlXT1JEKSkKKworICAgICAgICAjIC4uLiB3LyBkZWZhdWx0cy4KKyAgICAgICAgZm9yIG9mZnNldCwgbmFtZSBpbiBlbnVtZXJhdGUocG9zaXRpb25hbFtub25fZGVmYXVsdF9jb3VudDpdKToKKyAgICAgICAgICAgIGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5nZXQobmFtZSwgX2VtcHR5KQorICAgICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyKG5hbWUsIGFubm90YXRpb249YW5ub3RhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPV9QT1NJVElPTkFMX09SX0tFWVdPUkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1kZWZhdWx0c1tvZmZzZXRdKSkKKworICAgICAgICAjICphcmdzCisgICAgICAgIGlmIGZ1bmNfY29kZS5jb19mbGFncyAmIDB4MDQ6CisgICAgICAgICAgICBuYW1lID0gYXJnX25hbWVzW3Bvc19jb3VudCArIGtleXdvcmRfb25seV9jb3VudF0KKyAgICAgICAgICAgIGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5nZXQobmFtZSwgX2VtcHR5KQorICAgICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyKG5hbWUsIGFubm90YXRpb249YW5ub3RhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPV9WQVJfUE9TSVRJT05BTCkpCisKKyAgICAgICAgIyBLZXl3b3JkLW9ubHkgcGFyYW1ldGVycy4KKyAgICAgICAgZm9yIG5hbWUgaW4ga2V5d29yZF9vbmx5OgorICAgICAgICAgICAgZGVmYXVsdCA9IF9lbXB0eQorICAgICAgICAgICAgaWYga3dkZWZhdWx0cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBkZWZhdWx0ID0ga3dkZWZhdWx0cy5nZXQobmFtZSwgX2VtcHR5KQorCisgICAgICAgICAgICBhbm5vdGF0aW9uID0gYW5ub3RhdGlvbnMuZ2V0KG5hbWUsIF9lbXB0eSkKKyAgICAgICAgICAgIHBhcmFtZXRlcnMuYXBwZW5kKFBhcmFtZXRlcihuYW1lLCBhbm5vdGF0aW9uPWFubm90YXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZD1fS0VZV09SRF9PTkxZLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9ZGVmYXVsdCkpCisgICAgICAgICMgKiprd2FyZ3MKKyAgICAgICAgaWYgZnVuY19jb2RlLmNvX2ZsYWdzICYgMHgwODoKKyAgICAgICAgICAgIGluZGV4ID0gcG9zX2NvdW50ICsga2V5d29yZF9vbmx5X2NvdW50CisgICAgICAgICAgICBpZiBmdW5jX2NvZGUuY29fZmxhZ3MgJiAweDA0OgorICAgICAgICAgICAgICAgIGluZGV4ICs9IDEKKworICAgICAgICAgICAgbmFtZSA9IGFyZ19uYW1lc1tpbmRleF0KKyAgICAgICAgICAgIGFubm90YXRpb24gPSBhbm5vdGF0aW9ucy5nZXQobmFtZSwgX2VtcHR5KQorICAgICAgICAgICAgcGFyYW1ldGVycy5hcHBlbmQoUGFyYW1ldGVyKG5hbWUsIGFubm90YXRpb249YW5ub3RhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPV9WQVJfS0VZV09SRCkpCisKKyAgICAgICAgcmV0dXJuIGNscyhwYXJhbWV0ZXJzLAorICAgICAgICAgICAgICAgICAgIHJldHVybl9hbm5vdGF0aW9uPWFubm90YXRpb25zLmdldCgncmV0dXJuJywgX2VtcHR5KSwKKyAgICAgICAgICAgICAgICAgICBfX3ZhbGlkYXRlX3BhcmFtZXRlcnNfXz1GYWxzZSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYXJhbWV0ZXJzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcGFyYW1ldGVycworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJldHVybl9hbm5vdGF0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcmV0dXJuX2Fubm90YXRpb24KKworICAgIGRlZiByZXBsYWNlKHNlbGYsICosIHBhcmFtZXRlcnM9X3ZvaWQsIHJldHVybl9hbm5vdGF0aW9uPV92b2lkKToKKyAgICAgICAgJycnQ3JlYXRlcyBhIGN1c3RvbWl6ZWQgY29weSBvZiB0aGUgU2lnbmF0dXJlLgorICAgICAgICBQYXNzICdwYXJhbWV0ZXJzJyBhbmQvb3IgJ3JldHVybl9hbm5vdGF0aW9uJyBhcmd1bWVudHMKKyAgICAgICAgdG8gb3ZlcnJpZGUgdGhlbSBpbiB0aGUgbmV3IGNvcHkuCisgICAgICAgICcnJworCisgICAgICAgIGlmIHBhcmFtZXRlcnMgaXMgX3ZvaWQ6CisgICAgICAgICAgICBwYXJhbWV0ZXJzID0gc2VsZi5wYXJhbWV0ZXJzLnZhbHVlcygpCisKKyAgICAgICAgaWYgcmV0dXJuX2Fubm90YXRpb24gaXMgX3ZvaWQ6CisgICAgICAgICAgICByZXR1cm5fYW5ub3RhdGlvbiA9IHNlbGYuX3JldHVybl9hbm5vdGF0aW9uCisKKyAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikocGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX2Fubm90YXRpb249cmV0dXJuX2Fubm90YXRpb24pCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgKG5vdCBpc3N1YmNsYXNzKHR5cGUob3RoZXIpLCBTaWduYXR1cmUpIG9yCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmV0dXJuX2Fubm90YXRpb24gIT0gb3RoZXIucmV0dXJuX2Fubm90YXRpb24gb3IKKyAgICAgICAgICAgICAgICAgICAgbGVuKHNlbGYucGFyYW1ldGVycykgIT0gbGVuKG90aGVyLnBhcmFtZXRlcnMpKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIG90aGVyX3Bvc2l0aW9ucyA9IHtwYXJhbTogaWR4CisgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaWR4LCBwYXJhbSBpbiBlbnVtZXJhdGUob3RoZXIucGFyYW1ldGVycy5rZXlzKCkpfQorCisgICAgICAgIGZvciBpZHgsIChwYXJhbV9uYW1lLCBwYXJhbSkgaW4gZW51bWVyYXRlKHNlbGYucGFyYW1ldGVycy5pdGVtcygpKToKKyAgICAgICAgICAgIGlmIHBhcmFtLmtpbmQgPT0gX0tFWVdPUkRfT05MWToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG90aGVyX3BhcmFtID0gb3RoZXIucGFyYW1ldGVyc1twYXJhbV9uYW1lXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW0gIT0gb3RoZXJfcGFyYW06CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBvdGhlcl9pZHggPSBvdGhlcl9wb3NpdGlvbnNbcGFyYW1fbmFtZV0KKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGlmIChpZHggIT0gb3RoZXJfaWR4IG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbSAhPSBvdGhlci5wYXJhbWV0ZXJzW3BhcmFtX25hbWVdKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikKKworICAgIGRlZiBfYmluZChzZWxmLCBhcmdzLCBrd2FyZ3MsICosIHBhcnRpYWw9RmFsc2UpOgorICAgICAgICAnJydQcml2YXRlIG1ldGhvZC4gIERvbid0IHVzZSBkaXJlY3RseS4nJycKKworICAgICAgICBhcmd1bWVudHMgPSBPcmRlcmVkRGljdCgpCisKKyAgICAgICAgcGFyYW1ldGVycyA9IGl0ZXIoc2VsZi5wYXJhbWV0ZXJzLnZhbHVlcygpKQorICAgICAgICBwYXJhbWV0ZXJzX2V4ID0gKCkKKyAgICAgICAgYXJnX3ZhbHMgPSBpdGVyKGFyZ3MpCisKKyAgICAgICAgaWYgcGFydGlhbDoKKyAgICAgICAgICAgICMgU3VwcG9ydCBmb3IgYmluZGluZyBhcmd1bWVudHMgdG8gJ2Z1bmN0b29scy5wYXJ0aWFsJyBvYmplY3RzLgorICAgICAgICAgICAgIyBTZWUgJ2Z1bmN0b29scy5wYXJ0aWFsJyBjYXNlIGluICdzaWduYXR1cmUoKScgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICAgICMgZm9yIGRldGFpbHMuCisgICAgICAgICAgICBmb3IgcGFyYW1fbmFtZSwgcGFyYW0gaW4gc2VsZi5wYXJhbWV0ZXJzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgKHBhcmFtLl9wYXJ0aWFsX2t3YXJnIGFuZCBwYXJhbV9uYW1lIG5vdCBpbiBrd2FyZ3MpOgorICAgICAgICAgICAgICAgICAgICAjIFNpbXVsYXRpbmcgJ2Z1bmN0b29scy5wYXJ0aWFsJyBiZWhhdmlvcgorICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbcGFyYW1fbmFtZV0gPSBwYXJhbS5kZWZhdWx0CisKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICMgTGV0J3MgaXRlcmF0ZSB0aHJvdWdoIHRoZSBwb3NpdGlvbmFsIGFyZ3VtZW50cyBhbmQgY29ycmVzcG9uZGluZworICAgICAgICAgICAgIyBwYXJhbWV0ZXJzCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYXJnX3ZhbCA9IG5leHQoYXJnX3ZhbHMpCisgICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgICAgICAjIE5vIG1vcmUgcG9zaXRpb25hbCBhcmd1bWVudHMKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHBhcmFtID0gbmV4dChwYXJhbWV0ZXJzKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgICAgICAgICAjIE5vIG1vcmUgcGFyYW1ldGVycy4gVGhhdCdzIGl0LiBKdXN0IG5lZWQgdG8gY2hlY2sgdGhhdAorICAgICAgICAgICAgICAgICAgICAjIHdlIGhhdmUgbm8gYGt3YXJnc2AgYWZ0ZXIgdGhpcyB3aGlsZSBsb29wCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX1BPU0lUSU9OQUw6CisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoYXQncyBPSywganVzdCBlbXB0eSAqYXJncy4gIExldCdzIHN0YXJ0IHBhcnNpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICMga3dhcmdzCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICBlbGlmIHBhcmFtLm5hbWUgaW4ga3dhcmdzOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfUE9TSVRJT05BTF9PTkxZOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICd7YXJnIXJ9IHBhcmFtZXRlciBpcyBwb3NpdGlvbmFsIG9ubHksICcgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdidXQgd2FzIHBhc3NlZCBhcyBhIGtleXdvcmQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gbXNnLmZvcm1hdChhcmc9cGFyYW0ubmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKSBmcm9tIE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNfZXggPSAocGFyYW0sKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZWxpZiAocGFyYW0ua2luZCA9PSBfVkFSX0tFWVdPUkQgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtLmRlZmF1bHQgaXMgbm90IF9lbXB0eSk6CisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoYXQncyBmaW5lIHRvbyAtIHdlIGhhdmUgYSBkZWZhdWx0IHZhbHVlIGZvciB0aGlzCisgICAgICAgICAgICAgICAgICAgICAgICAjIHBhcmFtZXRlci4gIFNvLCBsZXRzIHN0YXJ0IHBhcnNpbmcgYGt3YXJnc2AsIHN0YXJ0aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAjIHdpdGggdGhlIGN1cnJlbnQgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzX2V4ID0gKHBhcmFtLCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBwYXJ0aWFsOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnNfZXggPSAocGFyYW0sKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9ICd7YXJnIXJ9IHBhcmFtZXRlciBsYWNraW5nIGRlZmF1bHQgdmFsdWUnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gbXNnLmZvcm1hdChhcmc9cGFyYW0ubmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnKSBmcm9tIE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBXZSBoYXZlIGEgcG9zaXRpb25hbCBhcmd1bWVudCB0byBwcm9jZXNzCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBwYXJhbSA9IG5leHQocGFyYW1ldGVycykKKyAgICAgICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpIGZyb20gTm9uZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGlmIHBhcmFtLmtpbmQgaW4gKF9WQVJfS0VZV09SRCwgX0tFWVdPUkRfT05MWSk6CisgICAgICAgICAgICAgICAgICAgICAgICAjIExvb2tzIGxpa2Ugd2UgaGF2ZSBubyBwYXJhbWV0ZXIgZm9yIHRoaXMgcG9zaXRpb25hbAorICAgICAgICAgICAgICAgICAgICAgICAgIyBhcmd1bWVudAorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpCisKKyAgICAgICAgICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX1BPU0lUSU9OQUw6CisgICAgICAgICAgICAgICAgICAgICAgICAjIFdlIGhhdmUgYW4gJyphcmdzJy1saWtlIGFyZ3VtZW50LCBsZXQncyBmaWxsIGl0IHdpdGgKKyAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsIHBvc2l0aW9uYWwgYXJndW1lbnRzIHdlIGhhdmUgbGVmdCBhbmQgbW92ZSBvbiB0bworICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGUgbmV4dCBwaGFzZQorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gW2FyZ192YWxdCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMuZXh0ZW5kKGFyZ192YWxzKQorICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzW3BhcmFtLm5hbWVdID0gdHVwbGUodmFsdWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBpZiBwYXJhbS5uYW1lIGluIGt3YXJnczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignbXVsdGlwbGUgdmFsdWVzIGZvciBhcmd1bWVudCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3thcmchcn0nLmZvcm1hdChhcmc9cGFyYW0ubmFtZSkpCisKKyAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzW3BhcmFtLm5hbWVdID0gYXJnX3ZhbAorCisgICAgICAgICMgTm93LCB3ZSBpdGVyYXRlIHRocm91Z2ggdGhlIHJlbWFpbmluZyBwYXJhbWV0ZXJzIHRvIHByb2Nlc3MKKyAgICAgICAgIyBrZXl3b3JkIGFyZ3VtZW50cworICAgICAgICBrd2FyZ3NfcGFyYW0gPSBOb25lCisgICAgICAgIGZvciBwYXJhbSBpbiBpdGVydG9vbHMuY2hhaW4ocGFyYW1ldGVyc19leCwgcGFyYW1ldGVycyk6CisgICAgICAgICAgICBpZiBwYXJhbS5raW5kID09IF9QT1NJVElPTkFMX09OTFk6CisgICAgICAgICAgICAgICAgIyBUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4gaW4gY2FzZSBvZiBhIHByb3Blcmx5IGJ1aWx0CisgICAgICAgICAgICAgICAgIyBTaWduYXR1cmUgb2JqZWN0IChidXQgbGV0J3MgaGF2ZSB0aGlzIGNoZWNrIGhlcmUKKyAgICAgICAgICAgICAgICAjIHRvIGVuc3VyZSBjb3JyZWN0IGJlaGF2aW91ciBqdXN0IGluIGNhc2UpCisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCd7YXJnIXJ9IHBhcmFtZXRlciBpcyBwb3NpdGlvbmFsIG9ubHksICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1dCB3YXMgcGFzc2VkIGFzIGEga2V5d29yZCcuIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KGFyZz1wYXJhbS5uYW1lKSkKKworICAgICAgICAgICAgaWYgcGFyYW0ua2luZCA9PSBfVkFSX0tFWVdPUkQ6CisgICAgICAgICAgICAgICAgIyBNZW1vcml6ZSB0aGF0IHdlIGhhdmUgYSAnKiprd2FyZ3MnLWxpa2UgcGFyYW1ldGVyCisgICAgICAgICAgICAgICAga3dhcmdzX3BhcmFtID0gcGFyYW0KKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBwYXJhbV9uYW1lID0gcGFyYW0ubmFtZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGFyZ192YWwgPSBrd2FyZ3MucG9wKHBhcmFtX25hbWUpCisgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgIyBXZSBoYXZlIG5vIHZhbHVlIGZvciB0aGlzIHBhcmFtZXRlci4gIEl0J3MgZmluZSB0aG91Z2gsCisgICAgICAgICAgICAgICAgIyBpZiBpdCBoYXMgYSBkZWZhdWx0IHZhbHVlLCBvciBpdCBpcyBhbiAnKmFyZ3MnLWxpa2UKKyAgICAgICAgICAgICAgICAjIHBhcmFtZXRlciwgbGVmdCBhbG9uZSBieSB0aGUgcHJvY2Vzc2luZyBvZiBwb3NpdGlvbmFsCisgICAgICAgICAgICAgICAgIyBhcmd1bWVudHMuCisgICAgICAgICAgICAgICAgaWYgKG5vdCBwYXJ0aWFsIGFuZCBwYXJhbS5raW5kICE9IF9WQVJfUE9TSVRJT05BTCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbS5kZWZhdWx0IGlzIF9lbXB0eSk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigne2FyZyFyfSBwYXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0IHZhbHVlJy4gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0KGFyZz1wYXJhbV9uYW1lKSkgZnJvbSBOb25lCisKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYXJndW1lbnRzW3BhcmFtX25hbWVdID0gYXJnX3ZhbAorCisgICAgICAgIGlmIGt3YXJnczoKKyAgICAgICAgICAgIGlmIGt3YXJnc19wYXJhbSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAjIFByb2Nlc3Mgb3VyICcqKmt3YXJncyctbGlrZSBwYXJhbWV0ZXIKKyAgICAgICAgICAgICAgICBhcmd1bWVudHNba3dhcmdzX3BhcmFtLm5hbWVdID0ga3dhcmdzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigndG9vIG1hbnkga2V5d29yZCBhcmd1bWVudHMnKQorCisgICAgICAgIHJldHVybiBzZWxmLl9ib3VuZF9hcmd1bWVudHNfY2xzKHNlbGYsIGFyZ3VtZW50cykKKworICAgIGRlZiBiaW5kKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICcnJ0dldCBhIEJvdW5kQXJndW1lbnRzIG9iamVjdCwgdGhhdCBtYXBzIHRoZSBwYXNzZWQgYGFyZ3NgCisgICAgICAgIGFuZCBga3dhcmdzYCB0byB0aGUgZnVuY3Rpb24ncyBzaWduYXR1cmUuICBSYWlzZXMgYFR5cGVFcnJvcmAKKyAgICAgICAgaWYgdGhlIHBhc3NlZCBhcmd1bWVudHMgY2FuIG5vdCBiZSBib3VuZC4KKyAgICAgICAgJycnCisgICAgICAgIHJldHVybiBzZWxmLl9iaW5kKGFyZ3MsIGt3YXJncykKKworICAgIGRlZiBiaW5kX3BhcnRpYWwoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgJycnR2V0IGEgQm91bmRBcmd1bWVudHMgb2JqZWN0LCB0aGF0IHBhcnRpYWxseSBtYXBzIHRoZQorICAgICAgICBwYXNzZWQgYGFyZ3NgIGFuZCBga3dhcmdzYCB0byB0aGUgZnVuY3Rpb24ncyBzaWduYXR1cmUuCisgICAgICAgIFJhaXNlcyBgVHlwZUVycm9yYCBpZiB0aGUgcGFzc2VkIGFyZ3VtZW50cyBjYW4gbm90IGJlIGJvdW5kLgorICAgICAgICAnJycKKyAgICAgICAgcmV0dXJuIHNlbGYuX2JpbmQoYXJncywga3dhcmdzLCBwYXJ0aWFsPVRydWUpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmVzdWx0ID0gW10KKyAgICAgICAgcmVuZGVyX2t3X29ubHlfc2VwYXJhdG9yID0gVHJ1ZQorICAgICAgICBmb3IgaWR4LCBwYXJhbSBpbiBlbnVtZXJhdGUoc2VsZi5wYXJhbWV0ZXJzLnZhbHVlcygpKToKKyAgICAgICAgICAgIGZvcm1hdHRlZCA9IHN0cihwYXJhbSkKKworICAgICAgICAgICAga2luZCA9IHBhcmFtLmtpbmQKKyAgICAgICAgICAgIGlmIGtpbmQgPT0gX1ZBUl9QT1NJVElPTkFMOgorICAgICAgICAgICAgICAgICMgT0ssIHdlIGhhdmUgYW4gJyphcmdzJy1saWtlIHBhcmFtZXRlciwgc28gd2Ugd29uJ3QgbmVlZAorICAgICAgICAgICAgICAgICMgYSAnKicgdG8gc2VwYXJhdGUga2V5d29yZC1vbmx5IGFyZ3VtZW50cworICAgICAgICAgICAgICAgIHJlbmRlcl9rd19vbmx5X3NlcGFyYXRvciA9IEZhbHNlCisgICAgICAgICAgICBlbGlmIGtpbmQgPT0gX0tFWVdPUkRfT05MWSBhbmQgcmVuZGVyX2t3X29ubHlfc2VwYXJhdG9yOgorICAgICAgICAgICAgICAgICMgV2UgaGF2ZSBhIGtleXdvcmQtb25seSBwYXJhbWV0ZXIgdG8gcmVuZGVyIGFuZCB3ZSBoYXZlbid0CisgICAgICAgICAgICAgICAgIyByZW5kZXJlZCBhbiAnKmFyZ3MnLWxpa2UgcGFyYW1ldGVyIGJlZm9yZSwgc28gYWRkIGEgJyonCisgICAgICAgICAgICAgICAgIyBzZXBhcmF0b3IgdG8gdGhlIHBhcmFtZXRlcnMgbGlzdCAoImZvbyhhcmcxLCAqLCBhcmcyKSIgY2FzZSkKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcqJykKKyAgICAgICAgICAgICAgICAjIFRoaXMgY29uZGl0aW9uIHNob3VsZCBiZSBvbmx5IHRyaWdnZXJlZCBvbmNlLCBzbworICAgICAgICAgICAgICAgICMgcmVzZXQgdGhlIGZsYWcKKyAgICAgICAgICAgICAgICByZW5kZXJfa3dfb25seV9zZXBhcmF0b3IgPSBGYWxzZQorCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGZvcm1hdHRlZCkKKworICAgICAgICByZW5kZXJlZCA9ICcoe30pJy5mb3JtYXQoJywgJy5qb2luKHJlc3VsdCkpCisKKyAgICAgICAgaWYgc2VsZi5yZXR1cm5fYW5ub3RhdGlvbiBpcyBub3QgX2VtcHR5OgorICAgICAgICAgICAgYW5ubyA9IGZvcm1hdGFubm90YXRpb24oc2VsZi5yZXR1cm5fYW5ub3RhdGlvbikKKyAgICAgICAgICAgIHJlbmRlcmVkICs9ICcgLT4ge30nLmZvcm1hdChhbm5vKQorCisgICAgICAgIHJldHVybiByZW5kZXJlZApkaWZmIC0tZ2l0IGEvTGliL2lvLnB5IGIvTGliL2lvLnB5CmluZGV4IGE1OWE3NWEuLmNmYjcwYWMgMTAwNjQ0Ci0tLSBhL0xpYi9pby5weQorKysgYi9MaWIvaW8ucHkKQEAgLTU4LDYgKzU4LDkgQEAKIAogT3BlbldyYXBwZXIgPSBfaW8ub3BlbiAjIGZvciBjb21wYXRpYmlsaXR5IHdpdGggX3B5aW8KIAorIyBQcmV0ZW5kIHRoaXMgZXhjZXB0aW9uIHdhcyBjcmVhdGVkIGhlcmUuCitVbnN1cHBvcnRlZE9wZXJhdGlvbi5fX21vZHVsZV9fID0gImlvIgorCiAjIGZvciBzZWVrKCkKIFNFRUtfU0VUID0gMAogU0VFS19DVVIgPSAxCmRpZmYgLS1naXQgYS9MaWIvaXBhZGRyZXNzLnB5IGIvTGliL2lwYWRkcmVzcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmVlYTdmCi0tLSAvZGV2L251bGwKKysrIGIvTGliL2lwYWRkcmVzcy5weQpAQCAtMCwwICsxLDIwNjIgQEAKKyMgQ29weXJpZ2h0IDIwMDcgR29vZ2xlIEluYy4KKyMgIExpY2Vuc2VkIHRvIFBTRiB1bmRlciBhIENvbnRyaWJ1dG9yIEFncmVlbWVudC4KKworIiIiQSBmYXN0LCBsaWdodHdlaWdodCBJUHY0L0lQdjYgbWFuaXB1bGF0aW9uIGxpYnJhcnkgaW4gUHl0aG9uLgorCitUaGlzIGxpYnJhcnkgaXMgdXNlZCB0byBjcmVhdGUvcG9rZS9tYW5pcHVsYXRlIElQdjQgYW5kIElQdjYgYWRkcmVzc2VzCithbmQgbmV0d29ya3MuCisKKyIiIgorCitfX3ZlcnNpb25fXyA9ICcxLjAnCisKKworaW1wb3J0IHN0cnVjdAoraW1wb3J0IGZ1bmN0b29scworCitJUFY0TEVOR1RIID0gMzIKK0lQVjZMRU5HVEggPSAxMjgKKworY2xhc3MgQWRkcmVzc1ZhbHVlRXJyb3IoVmFsdWVFcnJvcik6CisgICAgIiIiQSBWYWx1ZSBFcnJvciByZWxhdGVkIHRvIHRoZSBhZGRyZXNzLiIiIgorCisKK2NsYXNzIE5ldG1hc2tWYWx1ZUVycm9yKFZhbHVlRXJyb3IpOgorICAgICIiIkEgVmFsdWUgRXJyb3IgcmVsYXRlZCB0byB0aGUgbmV0bWFzay4iIiIKKworCitkZWYgaXBfYWRkcmVzcyhhZGRyZXNzKToKKyAgICAiIiJUYWtlIGFuIElQIHN0cmluZy9pbnQgYW5kIHJldHVybiBhbiBvYmplY3Qgb2YgdGhlIGNvcnJlY3QgdHlwZS4KKworICAgIEFyZ3M6CisgICAgICAgIGFkZHJlc3M6IEEgc3RyaW5nIG9yIGludGVnZXIsIHRoZSBJUCBhZGRyZXNzLiAgRWl0aGVyIElQdjQgb3IKKyAgICAgICAgICBJUHY2IGFkZHJlc3NlcyBtYXkgYmUgc3VwcGxpZWQ7IGludGVnZXJzIGxlc3MgdGhhbiAyKiozMiB3aWxsCisgICAgICAgICAgYmUgY29uc2lkZXJlZCB0byBiZSBJUHY0IGJ5IGRlZmF1bHQuCisKKyAgICBSZXR1cm5zOgorICAgICAgICBBbiBJUHY0QWRkcmVzcyBvciBJUHY2QWRkcmVzcyBvYmplY3QuCisKKyAgICBSYWlzZXM6CisgICAgICAgIFZhbHVlRXJyb3I6IGlmIHRoZSAqYWRkcmVzcyogcGFzc2VkIGlzbid0IGVpdGhlciBhIHY0IG9yIGEgdjYKKyAgICAgICAgICBhZGRyZXNzCisKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBJUHY0QWRkcmVzcyhhZGRyZXNzKQorICAgIGV4Y2VwdCAoQWRkcmVzc1ZhbHVlRXJyb3IsIE5ldG1hc2tWYWx1ZUVycm9yKToKKyAgICAgICAgcGFzcworCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gSVB2NkFkZHJlc3MoYWRkcmVzcykKKyAgICBleGNlcHQgKEFkZHJlc3NWYWx1ZUVycm9yLCBOZXRtYXNrVmFsdWVFcnJvcik6CisgICAgICAgIHBhc3MKKworICAgIHJhaXNlIFZhbHVlRXJyb3IoJyVyIGRvZXMgbm90IGFwcGVhciB0byBiZSBhbiBJUHY0IG9yIElQdjYgYWRkcmVzcycgJQorICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcykKKworCitkZWYgaXBfbmV0d29yayhhZGRyZXNzLCBzdHJpY3Q9VHJ1ZSk6CisgICAgIiIiVGFrZSBhbiBJUCBzdHJpbmcvaW50IGFuZCByZXR1cm4gYW4gb2JqZWN0IG9mIHRoZSBjb3JyZWN0IHR5cGUuCisKKyAgICBBcmdzOgorICAgICAgICBhZGRyZXNzOiBBIHN0cmluZyBvciBpbnRlZ2VyLCB0aGUgSVAgbmV0d29yay4gIEVpdGhlciBJUHY0IG9yCisgICAgICAgICAgSVB2NiBuZXR3b3JrcyBtYXkgYmUgc3VwcGxpZWQ7IGludGVnZXJzIGxlc3MgdGhhbiAyKiozMiB3aWxsCisgICAgICAgICAgYmUgY29uc2lkZXJlZCB0byBiZSBJUHY0IGJ5IGRlZmF1bHQuCisKKyAgICBSZXR1cm5zOgorICAgICAgICBBbiBJUHY0TmV0d29yayBvciBJUHY2TmV0d29yayBvYmplY3QuCisKKyAgICBSYWlzZXM6CisgICAgICAgIFZhbHVlRXJyb3I6IGlmIHRoZSBzdHJpbmcgcGFzc2VkIGlzbid0IGVpdGhlciBhIHY0IG9yIGEgdjYKKyAgICAgICAgICBhZGRyZXNzLiBPciBpZiB0aGUgbmV0d29yayBoYXMgaG9zdCBiaXRzIHNldC4KKworICAgICIiIgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIElQdjROZXR3b3JrKGFkZHJlc3MsIHN0cmljdCkKKyAgICBleGNlcHQgKEFkZHJlc3NWYWx1ZUVycm9yLCBOZXRtYXNrVmFsdWVFcnJvcik6CisgICAgICAgIHBhc3MKKworICAgIHRyeToKKyAgICAgICAgcmV0dXJuIElQdjZOZXR3b3JrKGFkZHJlc3MsIHN0cmljdCkKKyAgICBleGNlcHQgKEFkZHJlc3NWYWx1ZUVycm9yLCBOZXRtYXNrVmFsdWVFcnJvcik6CisgICAgICAgIHBhc3MKKworICAgIHJhaXNlIFZhbHVlRXJyb3IoJyVyIGRvZXMgbm90IGFwcGVhciB0byBiZSBhbiBJUHY0IG9yIElQdjYgbmV0d29yaycgJQorICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcykKKworCitkZWYgaXBfaW50ZXJmYWNlKGFkZHJlc3MpOgorICAgICIiIlRha2UgYW4gSVAgc3RyaW5nL2ludCBhbmQgcmV0dXJuIGFuIG9iamVjdCBvZiB0aGUgY29ycmVjdCB0eXBlLgorCisgICAgQXJnczoKKyAgICAgICAgYWRkcmVzczogQSBzdHJpbmcgb3IgaW50ZWdlciwgdGhlIElQIGFkZHJlc3MuICBFaXRoZXIgSVB2NCBvcgorICAgICAgICAgIElQdjYgYWRkcmVzc2VzIG1heSBiZSBzdXBwbGllZDsgaW50ZWdlcnMgbGVzcyB0aGFuIDIqKjMyIHdpbGwKKyAgICAgICAgICBiZSBjb25zaWRlcmVkIHRvIGJlIElQdjQgYnkgZGVmYXVsdC4KKworICAgIFJldHVybnM6CisgICAgICAgIEFuIElQdjRJbnRlcmZhY2Ugb3IgSVB2NkludGVyZmFjZSBvYmplY3QuCisKKyAgICBSYWlzZXM6CisgICAgICAgIFZhbHVlRXJyb3I6IGlmIHRoZSBzdHJpbmcgcGFzc2VkIGlzbid0IGVpdGhlciBhIHY0IG9yIGEgdjYKKyAgICAgICAgICBhZGRyZXNzLgorCisgICAgTm90ZXM6CisgICAgICAgIFRoZSBJUHY/SW50ZXJmYWNlIGNsYXNzZXMgZGVzY3JpYmUgYW4gQWRkcmVzcyBvbiBhIHBhcnRpY3VsYXIKKyAgICAgICAgTmV0d29yaywgc28gdGhleSdyZSBiYXNpY2FsbHkgYSBjb21iaW5hdGlvbiBvZiBib3RoIHRoZSBBZGRyZXNzCisgICAgICAgIGFuZCBOZXR3b3JrIGNsYXNzZXMuCisKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBJUHY0SW50ZXJmYWNlKGFkZHJlc3MpCisgICAgZXhjZXB0IChBZGRyZXNzVmFsdWVFcnJvciwgTmV0bWFza1ZhbHVlRXJyb3IpOgorICAgICAgICBwYXNzCisKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBJUHY2SW50ZXJmYWNlKGFkZHJlc3MpCisgICAgZXhjZXB0IChBZGRyZXNzVmFsdWVFcnJvciwgTmV0bWFza1ZhbHVlRXJyb3IpOgorICAgICAgICBwYXNzCisKKyAgICByYWlzZSBWYWx1ZUVycm9yKCclciBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYW4gSVB2NCBvciBJUHY2IGludGVyZmFjZScgJQorICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcykKKworCitkZWYgdjRfaW50X3RvX3BhY2tlZChhZGRyZXNzKToKKyAgICAiIiJSZXByZXNlbnQgYW4gYWRkcmVzcyBhcyA0IHBhY2tlZCBieXRlcyBpbiBuZXR3b3JrIChiaWctZW5kaWFuKSBvcmRlci4KKworICAgIEFyZ3M6CisgICAgICAgIGFkZHJlc3M6IEFuIGludGVnZXIgcmVwcmVzZW50YXRpb24gb2YgYW4gSVB2NCBJUCBhZGRyZXNzLgorCisgICAgUmV0dXJuczoKKyAgICAgICAgVGhlIGludGVnZXIgYWRkcmVzcyBwYWNrZWQgYXMgNCBieXRlcyBpbiBuZXR3b3JrIChiaWctZW5kaWFuKSBvcmRlci4KKworICAgIFJhaXNlczoKKyAgICAgICAgVmFsdWVFcnJvcjogSWYgdGhlIGludGVnZXIgaXMgbmVnYXRpdmUgb3IgdG9vIGxhcmdlIHRvIGJlIGFuCisgICAgICAgICAgSVB2NCBJUCBhZGRyZXNzLgorCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gc3RydWN0LnBhY2soJyFJJywgYWRkcmVzcykKKyAgICBleGNlcHQ6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkFkZHJlc3MgbmVnYXRpdmUgb3IgdG9vIGxhcmdlIGZvciBJUHY0IikKKworCitkZWYgdjZfaW50X3RvX3BhY2tlZChhZGRyZXNzKToKKyAgICAiIiJSZXByZXNlbnQgYW4gYWRkcmVzcyBhcyAxNiBwYWNrZWQgYnl0ZXMgaW4gbmV0d29yayAoYmlnLWVuZGlhbikgb3JkZXIuCisKKyAgICBBcmdzOgorICAgICAgICBhZGRyZXNzOiBBbiBpbnRlZ2VyIHJlcHJlc2VudGF0aW9uIG9mIGFuIElQdjYgSVAgYWRkcmVzcy4KKworICAgIFJldHVybnM6CisgICAgICAgIFRoZSBpbnRlZ2VyIGFkZHJlc3MgcGFja2VkIGFzIDE2IGJ5dGVzIGluIG5ldHdvcmsgKGJpZy1lbmRpYW4pIG9yZGVyLgorCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gc3RydWN0LnBhY2soJyFRUScsIGFkZHJlc3MgPj4gNjQsIGFkZHJlc3MgJiAoMioqNjQgLSAxKSkKKyAgICBleGNlcHQ6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkFkZHJlc3MgbmVnYXRpdmUgb3IgdG9vIGxhcmdlIGZvciBJUHY2IikKKworCitkZWYgX3NwbGl0X29wdGlvbmFsX25ldG1hc2soYWRkcmVzcyk6CisgICAgIiIiSGVscGVyIHRvIHNwbGl0IHRoZSBuZXRtYXNrIGFuZCByYWlzZSBBZGRyZXNzVmFsdWVFcnJvciBpZiBuZWVkZWQiIiIKKyAgICBhZGRyID0gc3RyKGFkZHJlc3MpLnNwbGl0KCcvJykKKyAgICBpZiBsZW4oYWRkcikgPiAyOgorICAgICAgICByYWlzZSBBZGRyZXNzVmFsdWVFcnJvcigiT25seSBvbmUgJy8nIHBlcm1pdHRlZCBpbiAlciIgJSBhZGRyZXNzKQorICAgIHJldHVybiBhZGRyCisKKworZGVmIF9maW5kX2FkZHJlc3NfcmFuZ2UoYWRkcmVzc2VzKToKKyAgICAiIiJGaW5kIGEgc2VxdWVuY2Ugb2YgSVB2I0FkZHJlc3MuCisKKyAgICBBcmdzOgorICAgICAgICBhZGRyZXNzZXM6IGEgbGlzdCBvZiBJUHYjQWRkcmVzcyBvYmplY3RzLgorCisgICAgUmV0dXJuczoKKyAgICAgICAgQSB0dXBsZSBjb250YWluaW5nIHRoZSBmaXJzdCBhbmQgbGFzdCBJUCBhZGRyZXNzZXMgaW4gdGhlIHNlcXVlbmNlLgorCisgICAgIiIiCisgICAgZmlyc3QgPSBsYXN0ID0gYWRkcmVzc2VzWzBdCisgICAgZm9yIGlwIGluIGFkZHJlc3Nlc1sxOl06CisgICAgICAgIGlmIGlwLl9pcCA9PSBsYXN0Ll9pcCArIDE6CisgICAgICAgICAgICBsYXN0ID0gaXAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGJyZWFrCisgICAgcmV0dXJuIChmaXJzdCwgbGFzdCkKKworCitkZWYgX2NvdW50X3JpZ2h0aGFuZF96ZXJvX2JpdHMobnVtYmVyLCBiaXRzKToKKyAgICAiIiJDb3VudCB0aGUgbnVtYmVyIG9mIHplcm8gYml0cyBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlLgorCisgICAgQXJnczoKKyAgICAgICAgbnVtYmVyOiBhbiBpbnRlZ2VyLgorICAgICAgICBiaXRzOiBtYXhpbXVtIG51bWJlciBvZiBiaXRzIHRvIGNvdW50LgorCisgICAgUmV0dXJuczoKKyAgICAgICAgVGhlIG51bWJlciBvZiB6ZXJvIGJpdHMgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZiB0aGUgbnVtYmVyLgorCisgICAgIiIiCisgICAgaWYgbnVtYmVyID09IDA6CisgICAgICAgIHJldHVybiBiaXRzCisgICAgZm9yIGkgaW4gcmFuZ2UoYml0cyk6CisgICAgICAgIGlmIChudW1iZXIgPj4gaSkgJiAxOgorICAgICAgICAgICAgcmV0dXJuIGkKKyAgICAjIEFsbCBiaXRzIG9mIGludGVyZXN0IHdlcmUgemVybywgZXZlbiBpZiB0aGVyZSBhcmUgbW9yZSBpbiB0aGUgbnVtYmVyCisgICAgcmV0dXJuIGJpdHMKKworCitkZWYgc3VtbWFyaXplX2FkZHJlc3NfcmFuZ2UoZmlyc3QsIGxhc3QpOgorICAgICIiIlN1bW1hcml6ZSBhIG5ldHdvcmsgcmFuZ2UgZ2l2ZW4gdGhlIGZpcnN0IGFuZCBsYXN0IElQIGFkZHJlc3Nlcy4KKworICAgIEV4YW1wbGU6CisgICAgICAgID4+PiBzdW1tYXJpemVfYWRkcmVzc19yYW5nZShJUHY0QWRkcmVzcygnMTkyLjAuMi4wJyksCisgICAgICAgICAgICBJUHY0QWRkcmVzcygnMTkyLjAuMi4xMzAnKSkKKyAgICAgICAgW0lQdjROZXR3b3JrKCcxOTIuMC4yLjAvMjUnKSwgSVB2NE5ldHdvcmsoJzE5Mi4wLjIuMTI4LzMxJyksCisgICAgICAgIElQdjROZXR3b3JrKCcxOTIuMC4yLjEzMC8zMicpXQorCisgICAgQXJnczoKKyAgICAgICAgZmlyc3Q6IHRoZSBmaXJzdCBJUHY0QWRkcmVzcyBvciBJUHY2QWRkcmVzcyBpbiB0aGUgcmFuZ2UuCisgICAgICAgIGxhc3Q6IHRoZSBsYXN0IElQdjRBZGRyZXNzIG9yIElQdjZBZGRyZXNzIGluIHRoZSByYW5nZS4KKworICAgIFJldHVybnM6CisgICAgICAgIEFuIGl0ZXJhdG9yIG9mIHRoZSBzdW1tYXJpemVkIElQdig0fDYpIG5ldHdvcmsgb2JqZWN0cy4KKworICAgIFJhaXNlOgorICAgICAgICBUeXBlRXJyb3I6CisgICAgICAgICAgICBJZiB0aGUgZmlyc3QgYW5kIGxhc3Qgb2JqZWN0cyBhcmUgbm90IElQIGFkZHJlc3Nlcy4KKyAgICAgICAgICAgIElmIHRoZSBmaXJzdCBhbmQgbGFzdCBvYmplY3RzIGFyZSBub3QgdGhlIHNhbWUgdmVyc2lvbi4KKyAgICAgICAgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIElmIHRoZSBsYXN0IG9iamVjdCBpcyBub3QgZ3JlYXRlciB0aGFuIHRoZSBmaXJzdC4KKyAgICAgICAgICAgIElmIHRoZSB2ZXJzaW9uIG9mIHRoZSBmaXJzdCBhZGRyZXNzIGlzIG5vdCA0IG9yIDYuCisKKyAgICAiIiIKKyAgICBpZiAobm90IChpc2luc3RhbmNlKGZpcnN0LCBfQmFzZUFkZHJlc3MpIGFuZAorICAgICAgICAgICAgIGlzaW5zdGFuY2UobGFzdCwgX0Jhc2VBZGRyZXNzKSkpOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ2ZpcnN0IGFuZCBsYXN0IG11c3QgYmUgSVAgYWRkcmVzc2VzLCBub3QgbmV0d29ya3MnKQorICAgIGlmIGZpcnN0LnZlcnNpb24gIT0gbGFzdC52ZXJzaW9uOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzIGFuZCAlcyBhcmUgbm90IG9mIHRoZSBzYW1lIHZlcnNpb24iICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LCBsYXN0KSkKKyAgICBpZiBmaXJzdCA+IGxhc3Q6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2xhc3QgSVAgYWRkcmVzcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBmaXJzdCcpCisKKyAgICBpZiBmaXJzdC52ZXJzaW9uID09IDQ6CisgICAgICAgIGlwID0gSVB2NE5ldHdvcmsKKyAgICBlbGlmIGZpcnN0LnZlcnNpb24gPT0gNjoKKyAgICAgICAgaXAgPSBJUHY2TmV0d29yaworICAgIGVsc2U6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3Vua25vd24gSVAgdmVyc2lvbicpCisKKyAgICBpcF9iaXRzID0gZmlyc3QuX21heF9wcmVmaXhsZW4KKyAgICBmaXJzdF9pbnQgPSBmaXJzdC5faXAKKyAgICBsYXN0X2ludCA9IGxhc3QuX2lwCisgICAgd2hpbGUgZmlyc3RfaW50IDw9IGxhc3RfaW50OgorICAgICAgICBuYml0cyA9IG1pbihfY291bnRfcmlnaHRoYW5kX3plcm9fYml0cyhmaXJzdF9pbnQsIGlwX2JpdHMpLAorICAgICAgICAgICAgICAgICAgICAobGFzdF9pbnQgLSBmaXJzdF9pbnQgKyAxKS5iaXRfbGVuZ3RoKCkgLSAxKQorICAgICAgICBuZXQgPSBpcCgnJXMvJWQnICUgKGZpcnN0LCBpcF9iaXRzIC0gbmJpdHMpKQorICAgICAgICB5aWVsZCBuZXQKKyAgICAgICAgZmlyc3RfaW50ICs9IDEgPDwgbmJpdHMKKyAgICAgICAgaWYgZmlyc3RfaW50IC0gMSA9PSBpcC5fQUxMX09ORVM6CisgICAgICAgICAgICBicmVhaworICAgICAgICBmaXJzdCA9IGZpcnN0Ll9fY2xhc3NfXyhmaXJzdF9pbnQpCisKKworZGVmIF9jb2xsYXBzZV9hZGRyZXNzZXNfcmVjdXJzaXZlKGFkZHJlc3Nlcyk6CisgICAgIiIiTG9vcHMgdGhyb3VnaCB0aGUgYWRkcmVzc2VzLCBjb2xsYXBzaW5nIGNvbmN1cnJlbnQgbmV0YmxvY2tzLgorCisgICAgRXhhbXBsZToKKworICAgICAgICBpcDEgPSBJUHY0TmV0d29yaygnMTkyLjAuMi4wLzI2JykKKyAgICAgICAgaXAyID0gSVB2NE5ldHdvcmsoJzE5Mi4wLjIuNjQvMjYnKQorICAgICAgICBpcDMgPSBJUHY0TmV0d29yaygnMTkyLjAuMi4xMjgvMjYnKQorICAgICAgICBpcDQgPSBJUHY0TmV0d29yaygnMTkyLjAuMi4xOTIvMjYnKQorCisgICAgICAgIF9jb2xsYXBzZV9hZGRyZXNzZXNfcmVjdXJzaXZlKFtpcDEsIGlwMiwgaXAzLCBpcDRdKSAtPgorICAgICAgICAgIFtJUHY0TmV0d29yaygnMTkyLjAuMi4wLzI0JyldCisKKyAgICAgICAgVGhpcyBzaG91bGRuJ3QgYmUgY2FsbGVkIGRpcmVjdGx5OyBpdCBpcyBjYWxsZWQgdmlhCisgICAgICAgICAgY29sbGFwc2VfYWRkcmVzc2VzKFtdKS4KKworICAgIEFyZ3M6CisgICAgICAgIGFkZHJlc3NlczogQSBsaXN0IG9mIElQdjROZXR3b3JrJ3Mgb3IgSVB2Nk5ldHdvcmsncworCisgICAgUmV0dXJuczoKKyAgICAgICAgQSBsaXN0IG9mIElQdjROZXR3b3JrJ3Mgb3IgSVB2Nk5ldHdvcmsncyBkZXBlbmRpbmcgb24gd2hhdCB3ZSB3ZXJlCisgICAgICAgIHBhc3NlZC4KKworICAgICIiIgorICAgIHdoaWxlIFRydWU6CisgICAgICAgIGxhc3RfYWRkciA9IE5vbmUKKyAgICAgICAgcmV0X2FycmF5ID0gW10KKyAgICAgICAgb3B0aW1pemVkID0gRmFsc2UKKworICAgICAgICBmb3IgY3VyX2FkZHIgaW4gYWRkcmVzc2VzOgorICAgICAgICAgICAgaWYgbm90IHJldF9hcnJheToKKyAgICAgICAgICAgICAgICBsYXN0X2FkZHIgPSBjdXJfYWRkcgorICAgICAgICAgICAgICAgIHJldF9hcnJheS5hcHBlbmQoY3VyX2FkZHIpCisgICAgICAgICAgICBlbGlmIChjdXJfYWRkci5uZXR3b3JrX2FkZHJlc3MgPj0gbGFzdF9hZGRyLm5ldHdvcmtfYWRkcmVzcyBhbmQKKyAgICAgICAgICAgICAgICBjdXJfYWRkci5icm9hZGNhc3RfYWRkcmVzcyA8PSBsYXN0X2FkZHIuYnJvYWRjYXN0X2FkZHJlc3MpOgorICAgICAgICAgICAgICAgIG9wdGltaXplZCA9IFRydWUKKyAgICAgICAgICAgIGVsaWYgY3VyX2FkZHIgPT0gbGlzdChsYXN0X2FkZHIuc3VwZXJuZXQoKS5zdWJuZXRzKCkpWzFdOgorICAgICAgICAgICAgICAgIHJldF9hcnJheVstMV0gPSBsYXN0X2FkZHIgPSBsYXN0X2FkZHIuc3VwZXJuZXQoKQorICAgICAgICAgICAgICAgIG9wdGltaXplZCA9IFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbGFzdF9hZGRyID0gY3VyX2FkZHIKKyAgICAgICAgICAgICAgICByZXRfYXJyYXkuYXBwZW5kKGN1cl9hZGRyKQorCisgICAgICAgIGFkZHJlc3NlcyA9IHJldF9hcnJheQorICAgICAgICBpZiBub3Qgb3B0aW1pemVkOgorICAgICAgICAgICAgcmV0dXJuIGFkZHJlc3NlcworCisKK2RlZiBjb2xsYXBzZV9hZGRyZXNzZXMoYWRkcmVzc2VzKToKKyAgICAiIiJDb2xsYXBzZSBhIGxpc3Qgb2YgSVAgb2JqZWN0cy4KKworICAgIEV4YW1wbGU6CisgICAgICAgIGNvbGxhcHNlX2FkZHJlc3NlcyhbSVB2NE5ldHdvcmsoJzE5Mi4wLjIuMC8yNScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQdjROZXR3b3JrKCcxOTIuMC4yLjEyOC8yNScpXSkgLT4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFtJUHY0TmV0d29yaygnMTkyLjAuMi4wLzI0JyldCisKKyAgICBBcmdzOgorICAgICAgICBhZGRyZXNzZXM6IEFuIGl0ZXJhdG9yIG9mIElQdjROZXR3b3JrIG9yIElQdjZOZXR3b3JrIG9iamVjdHMuCisKKyAgICBSZXR1cm5zOgorICAgICAgICBBbiBpdGVyYXRvciBvZiB0aGUgY29sbGFwc2VkIElQdig0fDYpTmV0d29yayBvYmplY3RzLgorCisgICAgUmFpc2VzOgorICAgICAgICBUeXBlRXJyb3I6IElmIHBhc3NlZCBhIGxpc3Qgb2YgbWl4ZWQgdmVyc2lvbiBvYmplY3RzLgorCisgICAgIiIiCisgICAgaSA9IDAKKyAgICBhZGRycyA9IFtdCisgICAgaXBzID0gW10KKyAgICBuZXRzID0gW10KKworICAgICMgc3BsaXQgSVAgYWRkcmVzc2VzIGFuZCBuZXR3b3JrcworICAgIGZvciBpcCBpbiBhZGRyZXNzZXM6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoaXAsIF9CYXNlQWRkcmVzcyk6CisgICAgICAgICAgICBpZiBpcHMgYW5kIGlwc1stMV0uX3ZlcnNpb24gIT0gaXAuX3ZlcnNpb246CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCIlcyBhbmQgJXMgYXJlIG5vdCBvZiB0aGUgc2FtZSB2ZXJzaW9uIiAlICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwLCBpcHNbLTFdKSkKKyAgICAgICAgICAgIGlwcy5hcHBlbmQoaXApCisgICAgICAgIGVsaWYgaXAuX3ByZWZpeGxlbiA9PSBpcC5fbWF4X3ByZWZpeGxlbjoKKyAgICAgICAgICAgIGlmIGlwcyBhbmQgaXBzWy0xXS5fdmVyc2lvbiAhPSBpcC5fdmVyc2lvbjoKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzIGFuZCAlcyBhcmUgbm90IG9mIHRoZSBzYW1lIHZlcnNpb24iICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXAsIGlwc1stMV0pKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlwcy5hcHBlbmQoaXAuaXApCisgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgaXBzLmFwcGVuZChpcC5uZXR3b3JrX2FkZHJlc3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBuZXRzIGFuZCBuZXRzWy0xXS5fdmVyc2lvbiAhPSBpcC5fdmVyc2lvbjoKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzIGFuZCAlcyBhcmUgbm90IG9mIHRoZSBzYW1lIHZlcnNpb24iICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXAsIG5ldHNbLTFdKSkKKyAgICAgICAgICAgIG5ldHMuYXBwZW5kKGlwKQorCisgICAgIyBzb3J0IGFuZCBkZWR1cAorICAgIGlwcyA9IHNvcnRlZChzZXQoaXBzKSkKKyAgICBuZXRzID0gc29ydGVkKHNldChuZXRzKSkKKworICAgIHdoaWxlIGkgPCBsZW4oaXBzKToKKyAgICAgICAgKGZpcnN0LCBsYXN0KSA9IF9maW5kX2FkZHJlc3NfcmFuZ2UoaXBzW2k6XSkKKyAgICAgICAgaSA9IGlwcy5pbmRleChsYXN0KSArIDEKKyAgICAgICAgYWRkcnMuZXh0ZW5kKHN1bW1hcml6ZV9hZGRyZXNzX3JhbmdlKGZpcnN0LCBsYXN0KSkKKworICAgIHJldHVybiBpdGVyKF9jb2xsYXBzZV9hZGRyZXNzZXNfcmVjdXJzaXZlKHNvcnRlZCgKKyAgICAgICAgYWRkcnMgKyBuZXRzLCBrZXk9X0Jhc2VOZXR3b3JrLl9nZXRfbmV0d29ya3Nfa2V5KSkpCisKKworZGVmIGdldF9taXhlZF90eXBlX2tleShvYmopOgorICAgICIiIlJldHVybiBhIGtleSBzdWl0YWJsZSBmb3Igc29ydGluZyBiZXR3ZWVuIG5ldHdvcmtzIGFuZCBhZGRyZXNzZXMuCisKKyAgICBBZGRyZXNzIGFuZCBOZXR3b3JrIG9iamVjdHMgYXJlIG5vdCBzb3J0YWJsZSBieSBkZWZhdWx0OyB0aGV5J3JlCisgICAgZnVuZGFtZW50YWxseSBkaWZmZXJlbnQgc28gdGhlIGV4cHJlc3Npb24KKworICAgICAgICBJUHY0QWRkcmVzcygnMTkyLjAuMi4wJykgPD0gSVB2NE5ldHdvcmsoJzE5Mi4wLjIuMC8yNCcpCisKKyAgICBkb2Vzbid0IG1ha2UgYW55IHNlbnNlLiAgVGhlcmUgYXJlIHNvbWUgdGltZXMgaG93ZXZlciwgd2hlcmUgeW91IG1heSB3aXNoCisgICAgdG8gaGF2ZSBpcGFkZHJlc3Mgc29ydCB0aGVzZSBmb3IgeW91IGFueXdheS4gSWYgeW91IG5lZWQgdG8gZG8gdGhpcywgeW91CisgICAgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uIGFzIHRoZSBrZXk9IGFyZ3VtZW50IHRvIHNvcnRlZCgpLgorCisgICAgQXJnczoKKyAgICAgIG9iajogZWl0aGVyIGEgTmV0d29yayBvciBBZGRyZXNzIG9iamVjdC4KKyAgICBSZXR1cm5zOgorICAgICAgYXBwcm9wcmlhdGUga2V5LgorCisgICAgIiIiCisgICAgaWYgaXNpbnN0YW5jZShvYmosIF9CYXNlTmV0d29yayk6CisgICAgICAgIHJldHVybiBvYmouX2dldF9uZXR3b3Jrc19rZXkoKQorICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIF9CYXNlQWRkcmVzcyk6CisgICAgICAgIHJldHVybiBvYmouX2dldF9hZGRyZXNzX2tleSgpCisgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKworY2xhc3MgX1RvdGFsT3JkZXJpbmdNaXhpbjoKKyAgICAjIEhlbHBlciB0aGF0IGRlcml2ZXMgdGhlIG90aGVyIGNvbXBhcmlzb24gb3BlcmF0aW9ucyBmcm9tCisgICAgIyBfX2x0X18gYW5kIF9fZXFfXworICAgICMgV2UgYXZvaWQgZnVuY3Rvb2xzLnRvdGFsX29yZGVyaW5nIGJlY2F1c2UgaXQgZG9lc24ndCBoYW5kbGUKKyAgICAjIE5vdEltcGxlbWVudGVkIGNvcnJlY3RseSB5ZXQgKGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUxMDA0MikKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICBlcXVhbCA9IHNlbGYuX19lcV9fKG90aGVyKQorICAgICAgICBpZiBlcXVhbCBpcyBOb3RJbXBsZW1lbnRlZDoKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgICAgICByZXR1cm4gbm90IGVxdWFsCisgICAgZGVmIF9fbHRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAgICBkZWYgX19sZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgbGVzcyA9IHNlbGYuX19sdF9fKG90aGVyKQorICAgICAgICBpZiBsZXNzIGlzIE5vdEltcGxlbWVudGVkIG9yIG5vdCBsZXNzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19lcV9fKG90aGVyKQorICAgICAgICByZXR1cm4gbGVzcworICAgIGRlZiBfX2d0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICBsZXNzID0gc2VsZi5fX2x0X18ob3RoZXIpCisgICAgICAgIGlmIGxlc3MgaXMgTm90SW1wbGVtZW50ZWQ6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgICAgICAgZXF1YWwgPSBzZWxmLl9fZXFfXyhvdGhlcikKKyAgICAgICAgaWYgZXF1YWwgaXMgTm90SW1wbGVtZW50ZWQ6CisgICAgICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKKyAgICAgICAgcmV0dXJuIG5vdCAobGVzcyBvciBlcXVhbCkKKyAgICBkZWYgX19nZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgbGVzcyA9IHNlbGYuX19sdF9fKG90aGVyKQorICAgICAgICBpZiBsZXNzIGlzIE5vdEltcGxlbWVudGVkOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgIHJldHVybiBub3QgbGVzcworCitjbGFzcyBfSVBBZGRyZXNzQmFzZShfVG90YWxPcmRlcmluZ01peGluKToKKworICAgICIiIlRoZSBtb3RoZXIgY2xhc3MuIiIiCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZXhwbG9kZWQoc2VsZik6CisgICAgICAgICIiIlJldHVybiB0aGUgbG9uZ2hhbmQgdmVyc2lvbiBvZiB0aGUgSVAgYWRkcmVzcyBhcyBhIHN0cmluZy4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2V4cGxvZGVfc2hvcnRoYW5kX2lwX3N0cmluZygpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY29tcHJlc3NlZChzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBzaG9ydGhhbmQgdmVyc2lvbiBvZiB0aGUgSVAgYWRkcmVzcyBhcyBhIHN0cmluZy4iIiIKKyAgICAgICAgcmV0dXJuIHN0cihzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHZlcnNpb24oc2VsZik6CisgICAgICAgIG1zZyA9ICclMjAwcyBoYXMgbm8gdmVyc2lvbiBzcGVjaWZpZWQnICUgKHR5cGUoc2VsZiksKQorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKG1zZykKKworICAgIGRlZiBfY2hlY2tfaW50X2FkZHJlc3Moc2VsZiwgYWRkcmVzcyk6CisgICAgICAgIGlmIGFkZHJlc3MgPCAwOgorICAgICAgICAgICAgbXNnID0gIiVkICg8IDApIGlzIG5vdCBwZXJtaXR0ZWQgYXMgYW4gSVB2JWQgYWRkcmVzcyIKKyAgICAgICAgICAgIHJhaXNlIEFkZHJlc3NWYWx1ZUVycm9yKG1zZyAlIChhZGRyZXNzLCBzZWxmLl92ZXJzaW9uKSkKKyAgICAgICAgaWYgYWRkcmVzcyA+IHNlbGYuX0FMTF9PTkVTOgorICAgICAgICAgICAgbXNnID0gIiVkICg+PSAyKiolZCkgaXMgbm90IHBlcm1pdHRlZCBhcyBhbiBJUHYlZCBhZGRyZXNzIgorICAgICAgICAgICAgcmFpc2UgQWRkcmVzc1ZhbHVlRXJyb3IobXNnICUgKGFkZHJlc3MsIHNlbGYuX21heF9wcmVmaXhsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fdmVyc2lvbikpCisKKyAgICBkZWYgX2NoZWNrX3BhY2tlZF9hZGRyZXNzKHNlbGYsIGFkZHJlc3MsIGV4cGVjdGVkX2xlbik6CisgICAgICAgIGFkZHJlc3NfbGVuID0gbGVuKGFkZHJlc3MpCisgICAgICAgIGlmIGFkZHJlc3NfbGVuICE9IGV4cGVjdGVkX2xlbjoKKyAgICAgICAgICAgIG1zZyA9ICIlciAobGVuICVkICE9ICVkKSBpcyBub3QgcGVybWl0dGVkIGFzIGFuIElQdiVkIGFkZHJlc3MiCisgICAgICAgICAgICByYWlzZSBBZGRyZXNzVmFsdWVFcnJvcihtc2cgJSAoYWRkcmVzcywgYWRkcmVzc19sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfbGVuLCBzZWxmLl92ZXJzaW9uKSkKKworICAgIGRlZiBfaXBfaW50X2Zyb21fcHJlZml4KHNlbGYsIHByZWZpeGxlbj1Ob25lKToKKyAgICAgICAgIiIiVHVybiB0aGUgcHJlZml4IGxlbmd0aCBuZXRtYXNrIGludG8gYSBpbnQgZm9yIGNvbXBhcmlzb24uCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHByZWZpeGxlbjogQW4gaW50ZWdlciwgdGhlIHByZWZpeCBsZW5ndGguCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEFuIGludGVnZXIuCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHByZWZpeGxlbiBpcyBOb25lOgorICAgICAgICAgICAgcHJlZml4bGVuID0gc2VsZi5fcHJlZml4bGVuCisgICAgICAgIHJldHVybiBzZWxmLl9BTExfT05FUyBeIChzZWxmLl9BTExfT05FUyA+PiBwcmVmaXhsZW4pCisKKyAgICBkZWYgX3ByZWZpeF9mcm9tX2lwX2ludChzZWxmLCBpcF9pbnQsIG1hc2s9MzIpOgorICAgICAgICAiIiJSZXR1cm4gcHJlZml4IGxlbmd0aCBmcm9tIHRoZSBkZWNpbWFsIG5ldG1hc2suCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGlwX2ludDogQW4gaW50ZWdlciwgdGhlIElQIGFkZHJlc3MuCisgICAgICAgICAgICBtYXNrOiBUaGUgbmV0bWFzay4gIERlZmF1bHRzIHRvIDMyLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBBbiBpbnRlZ2VyLCB0aGUgcHJlZml4IGxlbmd0aC4KKworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG1hc2sgLSBfY291bnRfcmlnaHRoYW5kX3plcm9fYml0cyhpcF9pbnQsIG1hc2spCisKKyAgICBkZWYgX2lwX3N0cmluZ19mcm9tX3ByZWZpeChzZWxmLCBwcmVmaXhsZW49Tm9uZSk6CisgICAgICAgICIiIlR1cm4gYSBwcmVmaXggbGVuZ3RoIGludG8gYSBkb3R0ZWQgZGVjaW1hbCBzdHJpbmcuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHByZWZpeGxlbjogQW4gaW50ZWdlciwgdGhlIG5ldG1hc2sgcHJlZml4IGxlbmd0aC4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQSBzdHJpbmcsIHRoZSBkb3R0ZWQgZGVjaW1hbCBuZXRtYXNrIHN0cmluZy4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHByZWZpeGxlbjoKKyAgICAgICAgICAgIHByZWZpeGxlbiA9IHNlbGYuX3ByZWZpeGxlbgorICAgICAgICByZXR1cm4gc2VsZi5fc3RyaW5nX2Zyb21faXBfaW50KHNlbGYuX2lwX2ludF9mcm9tX3ByZWZpeChwcmVmaXhsZW4pKQorCitjbGFzcyBfQmFzZUFkZHJlc3MoX0lQQWRkcmVzc0Jhc2UpOgorCisgICAgIiIiQSBnZW5lcmljIElQIG9iamVjdC4KKworICAgIFRoaXMgSVAgY2xhc3MgY29udGFpbnMgdGhlIHZlcnNpb24gaW5kZXBlbmRlbnQgbWV0aG9kcyB3aGljaCBhcmUKKyAgICB1c2VkIGJ5IHNpbmdsZSBJUCBhZGRyZXNzZXMuCisKKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzKToKKyAgICAgICAgaWYgKG5vdCBpc2luc3RhbmNlKGFkZHJlc3MsIGJ5dGVzKQorICAgICAgICAgICAgYW5kICcvJyBpbiBzdHIoYWRkcmVzcykpOgorICAgICAgICAgICAgcmFpc2UgQWRkcmVzc1ZhbHVlRXJyb3IoIlVuZXhwZWN0ZWQgJy8nIGluICVyIiAlIGFkZHJlc3MpCisKKyAgICBkZWYgX19pbmRleF9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5faXAKKworICAgIGRlZiBfX2ludF9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5faXAKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gKHNlbGYuX2lwID09IG90aGVyLl9pcAorICAgICAgICAgICAgICAgICAgICBhbmQgc2VsZi5fdmVyc2lvbiA9PSBvdGhlci5fdmVyc2lvbikKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgc2VsZi5fdmVyc2lvbiAhPSBvdGhlci5fdmVyc2lvbjoKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignJXMgYW5kICVzIGFyZSBub3Qgb2YgdGhlIHNhbWUgdmVyc2lvbicgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIG90aGVyKSkKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIF9CYXNlQWRkcmVzcyk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJyVzIGFuZCAlcyBhcmUgbm90IG9mIHRoZSBzYW1lIHR5cGUnICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLCBvdGhlcikpCisgICAgICAgIGlmIHNlbGYuX2lwICE9IG90aGVyLl9pcDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9pcCA8IG90aGVyLl9pcAorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICMgU2hvcnRoYW5kIGZvciBJbnRlZ2VyIGFkZGl0aW9uIGFuZCBzdWJ0cmFjdGlvbi4gVGhpcyBpcyBub3QKKyAgICAjIG1lYW50IHRvIGV2ZXIgc3VwcG9ydCBhZGRpdGlvbi9zdWJ0cmFjdGlvbiBvZiBhZGRyZXNzZXMuCisgICAgZGVmIF9fYWRkX18oc2VsZiwgb3RoZXIpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgaW50KToKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgICAgICByZXR1cm4gc2VsZi5fX2NsYXNzX18oaW50KHNlbGYpICsgb3RoZXIpCisKKyAgICBkZWYgX19zdWJfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCBpbnQpOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXyhpbnQoc2VsZikgLSBvdGhlcikKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICclcyglciknICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzdHIoc2VsZikpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHN0cihzZWxmLl9zdHJpbmdfZnJvbV9pcF9pbnQoc2VsZi5faXApKQorCisgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICByZXR1cm4gaGFzaChoZXgoaW50KHNlbGYuX2lwKSkpCisKKyAgICBkZWYgX2dldF9hZGRyZXNzX2tleShzZWxmKToKKyAgICAgICAgcmV0dXJuIChzZWxmLl92ZXJzaW9uLCBzZWxmKQorCisKK2NsYXNzIF9CYXNlTmV0d29yayhfSVBBZGRyZXNzQmFzZSk6CisKKyAgICAiIiJBIGdlbmVyaWMgSVAgbmV0d29yayBvYmplY3QuCisKKyAgICBUaGlzIElQIGNsYXNzIGNvbnRhaW5zIHRoZSB2ZXJzaW9uIGluZGVwZW5kZW50IG1ldGhvZHMgd2hpY2ggYXJlCisgICAgdXNlZCBieSBuZXR3b3Jrcy4KKworICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzKToKKyAgICAgICAgc2VsZi5fY2FjaGUgPSB7fQorCisgICAgZGVmIF9faW5kZXhfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGludChzZWxmLm5ldHdvcmtfYWRkcmVzcykgXiBzZWxmLnByZWZpeGxlbgorCisgICAgZGVmIF9faW50X18oc2VsZik6CisgICAgICAgIHJldHVybiBpbnQoc2VsZi5uZXR3b3JrX2FkZHJlc3MpCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnJXMoJXIpJyAlIChzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc3RyKHNlbGYpKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAnJXMvJWQnICUgKHNlbGYubmV0d29ya19hZGRyZXNzLCBzZWxmLnByZWZpeGxlbikKKworICAgIGRlZiBob3N0cyhzZWxmKToKKyAgICAgICAgIiIiR2VuZXJhdGUgSXRlcmF0b3Igb3ZlciB1c2FibGUgaG9zdHMgaW4gYSBuZXR3b3JrLgorCisgICAgICAgIFRoaXMgaXMgbGlrZSBfX2l0ZXJfXyBleGNlcHQgaXQgZG9lc24ndCByZXR1cm4gdGhlIG5ldHdvcmsKKyAgICAgICAgb3IgYnJvYWRjYXN0IGFkZHJlc3Nlcy4KKworICAgICAgICAiIiIKKyAgICAgICAgbmV0d29yayA9IGludChzZWxmLm5ldHdvcmtfYWRkcmVzcykKKyAgICAgICAgYnJvYWRjYXN0ID0gaW50KHNlbGYuYnJvYWRjYXN0X2FkZHJlc3MpCisgICAgICAgIGZvciB4IGluIHJhbmdlKG5ldHdvcmsgKyAxLCBicm9hZGNhc3QpOgorICAgICAgICAgICAgeWllbGQgc2VsZi5fYWRkcmVzc19jbGFzcyh4KQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICBuZXR3b3JrID0gaW50KHNlbGYubmV0d29ya19hZGRyZXNzKQorICAgICAgICBicm9hZGNhc3QgPSBpbnQoc2VsZi5icm9hZGNhc3RfYWRkcmVzcykKKyAgICAgICAgZm9yIHggaW4gcmFuZ2UobmV0d29yaywgYnJvYWRjYXN0ICsgMSk6CisgICAgICAgICAgICB5aWVsZCBzZWxmLl9hZGRyZXNzX2NsYXNzKHgpCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgbik6CisgICAgICAgIG5ldHdvcmsgPSBpbnQoc2VsZi5uZXR3b3JrX2FkZHJlc3MpCisgICAgICAgIGJyb2FkY2FzdCA9IGludChzZWxmLmJyb2FkY2FzdF9hZGRyZXNzKQorICAgICAgICBpZiBuID49IDA6CisgICAgICAgICAgICBpZiBuZXR3b3JrICsgbiA+IGJyb2FkY2FzdDoKKyAgICAgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yCisgICAgICAgICAgICByZXR1cm4gc2VsZi5fYWRkcmVzc19jbGFzcyhuZXR3b3JrICsgbikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG4gKz0gMQorICAgICAgICAgICAgaWYgYnJvYWRjYXN0ICsgbiA8IG5ldHdvcms6CisgICAgICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2FkZHJlc3NfY2xhc3MoYnJvYWRjYXN0ICsgbikKKworICAgIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICBpZiBzZWxmLl92ZXJzaW9uICE9IG90aGVyLl92ZXJzaW9uOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCclcyBhbmQgJXMgYXJlIG5vdCBvZiB0aGUgc2FtZSB2ZXJzaW9uJyAlICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwgb3RoZXIpKQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgX0Jhc2VOZXR3b3JrKToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignJXMgYW5kICVzIGFyZSBub3Qgb2YgdGhlIHNhbWUgdHlwZScgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIG90aGVyKSkKKyAgICAgICAgaWYgc2VsZi5uZXR3b3JrX2FkZHJlc3MgIT0gb3RoZXIubmV0d29ya19hZGRyZXNzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubmV0d29ya19hZGRyZXNzIDwgb3RoZXIubmV0d29ya19hZGRyZXNzCisgICAgICAgIGlmIHNlbGYubmV0bWFzayAhPSBvdGhlci5uZXRtYXNrOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubmV0bWFzayA8IG90aGVyLm5ldG1hc2sKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIChzZWxmLl92ZXJzaW9uID09IG90aGVyLl92ZXJzaW9uIGFuZAorICAgICAgICAgICAgICAgICAgICBzZWxmLm5ldHdvcmtfYWRkcmVzcyA9PSBvdGhlci5uZXR3b3JrX2FkZHJlc3MgYW5kCisgICAgICAgICAgICAgICAgICAgIGludChzZWxmLm5ldG1hc2spID09IGludChvdGhlci5uZXRtYXNrKSkKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgIHJldHVybiBoYXNoKGludChzZWxmLm5ldHdvcmtfYWRkcmVzcykgXiBpbnQoc2VsZi5uZXRtYXNrKSkKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAjIGFsd2F5cyBmYWxzZSBpZiBvbmUgaXMgdjQgYW5kIHRoZSBvdGhlciBpcyB2Ni4KKyAgICAgICAgaWYgc2VsZi5fdmVyc2lvbiAhPSBvdGhlci5fdmVyc2lvbjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAjIGRlYWxpbmcgd2l0aCBhbm90aGVyIG5ldHdvcmsuCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIF9CYXNlTmV0d29yayk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIyBkZWFsaW5nIHdpdGggYW5vdGhlciBhZGRyZXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIGFkZHJlc3MKKyAgICAgICAgICAgIHJldHVybiAoaW50KHNlbGYubmV0d29ya19hZGRyZXNzKSA8PSBpbnQob3RoZXIuX2lwKSA8PQorICAgICAgICAgICAgICAgICAgICBpbnQoc2VsZi5icm9hZGNhc3RfYWRkcmVzcykpCisKKyAgICBkZWYgb3ZlcmxhcHMoc2VsZiwgb3RoZXIpOgorICAgICAgICAiIiJUZWxsIGlmIHNlbGYgaXMgcGFydGx5IGNvbnRhaW5lZCBpbiBvdGhlci4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYubmV0d29ya19hZGRyZXNzIGluIG90aGVyIG9yICgKKyAgICAgICAgICAgIHNlbGYuYnJvYWRjYXN0X2FkZHJlc3MgaW4gb3RoZXIgb3IgKAorICAgICAgICAgICAgICAgIG90aGVyLm5ldHdvcmtfYWRkcmVzcyBpbiBzZWxmIG9yICgKKyAgICAgICAgICAgICAgICAgICAgb3RoZXIuYnJvYWRjYXN0X2FkZHJlc3MgaW4gc2VsZikpKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGJyb2FkY2FzdF9hZGRyZXNzKHNlbGYpOgorICAgICAgICB4ID0gc2VsZi5fY2FjaGUuZ2V0KCdicm9hZGNhc3RfYWRkcmVzcycpCisgICAgICAgIGlmIHggaXMgTm9uZToKKyAgICAgICAgICAgIHggPSBzZWxmLl9hZGRyZXNzX2NsYXNzKGludChzZWxmLm5ldHdvcmtfYWRkcmVzcykgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNlbGYuaG9zdG1hc2spKQorICAgICAgICAgICAgc2VsZi5fY2FjaGVbJ2Jyb2FkY2FzdF9hZGRyZXNzJ10gPSB4CisgICAgICAgIHJldHVybiB4CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaG9zdG1hc2soc2VsZik6CisgICAgICAgIHggPSBzZWxmLl9jYWNoZS5nZXQoJ2hvc3RtYXNrJykKKyAgICAgICAgaWYgeCBpcyBOb25lOgorICAgICAgICAgICAgeCA9IHNlbGYuX2FkZHJlc3NfY2xhc3MoaW50KHNlbGYubmV0bWFzaykgXiBzZWxmLl9BTExfT05FUykKKyAgICAgICAgICAgIHNlbGYuX2NhY2hlWydob3N0bWFzayddID0geAorICAgICAgICByZXR1cm4geAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHdpdGhfcHJlZml4bGVuKHNlbGYpOgorICAgICAgICByZXR1cm4gJyVzLyVkJyAlIChzZWxmLm5ldHdvcmtfYWRkcmVzcywgc2VsZi5fcHJlZml4bGVuKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHdpdGhfbmV0bWFzayhzZWxmKToKKyAgICAgICAgcmV0dXJuICclcy8lcycgJSAoc2VsZi5uZXR3b3JrX2FkZHJlc3MsIHNlbGYubmV0bWFzaykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB3aXRoX2hvc3RtYXNrKHNlbGYpOgorICAgICAgICByZXR1cm4gJyVzLyVzJyAlIChzZWxmLm5ldHdvcmtfYWRkcmVzcywgc2VsZi5ob3N0bWFzaykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBudW1fYWRkcmVzc2VzKHNlbGYpOgorICAgICAgICAiIiJOdW1iZXIgb2YgaG9zdHMgaW4gdGhlIGN1cnJlbnQgc3VibmV0LiIiIgorICAgICAgICByZXR1cm4gaW50KHNlbGYuYnJvYWRjYXN0X2FkZHJlc3MpIC0gaW50KHNlbGYubmV0d29ya19hZGRyZXNzKSArIDEKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBfYWRkcmVzc19jbGFzcyhzZWxmKToKKyAgICAgICAgIyBSZXR1cm5pbmcgYmFyZSBhZGRyZXNzIG9iamVjdHMgKHJhdGhlciB0aGFuIGludGVyZmFjZXMpIGFsbG93cyBmb3IKKyAgICAgICAgIyBtb3JlIGNvbnNpc3RlbnQgYmVoYXZpb3VyIGFjcm9zcyB0aGUgbmV0d29yayBhZGRyZXNzLCBicm9hZGNhc3QKKyAgICAgICAgIyBhZGRyZXNzIGFuZCBpbmRpdmlkdWFsIGhvc3QgYWRkcmVzc2VzLgorICAgICAgICBtc2cgPSAnJTIwMHMgaGFzIG5vIGFzc29jaWF0ZWQgYWRkcmVzcyBjbGFzcycgJSAodHlwZShzZWxmKSwpCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IobXNnKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHByZWZpeGxlbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ByZWZpeGxlbgorCisgICAgZGVmIGFkZHJlc3NfZXhjbHVkZShzZWxmLCBvdGhlcik6CisgICAgICAgICIiIlJlbW92ZSBhbiBhZGRyZXNzIGZyb20gYSBsYXJnZXIgYmxvY2suCisKKyAgICAgICAgRm9yIGV4YW1wbGU6CisKKyAgICAgICAgICAgIGFkZHIxID0gaXBfbmV0d29yaygnMTkyLjAuMi4wLzI4JykKKyAgICAgICAgICAgIGFkZHIyID0gaXBfbmV0d29yaygnMTkyLjAuMi4xLzMyJykKKyAgICAgICAgICAgIGFkZHIxLmFkZHJlc3NfZXhjbHVkZShhZGRyMikgPQorICAgICAgICAgICAgICAgIFtJUHY0TmV0d29yaygnMTkyLjAuMi4wLzMyJyksIElQdjROZXR3b3JrKCcxOTIuMC4yLjIvMzEnKSwKKyAgICAgICAgICAgICAgICBJUHY0TmV0d29yaygnMTkyLjAuMi40LzMwJyksIElQdjROZXR3b3JrKCcxOTIuMC4yLjgvMjknKV0KKworICAgICAgICBvciBJUHY2OgorCisgICAgICAgICAgICBhZGRyMSA9IGlwX25ldHdvcmsoJzIwMDE6ZGI4OjoxLzMyJykKKyAgICAgICAgICAgIGFkZHIyID0gaXBfbmV0d29yaygnMjAwMTpkYjg6OjEvMTI4JykKKyAgICAgICAgICAgIGFkZHIxLmFkZHJlc3NfZXhjbHVkZShhZGRyMikgPQorICAgICAgICAgICAgICAgIFtpcF9uZXR3b3JrKCcyMDAxOmRiODo6MS8xMjgnKSwKKyAgICAgICAgICAgICAgICBpcF9uZXR3b3JrKCcyMDAxOmRiODo6Mi8xMjcnKSwKKyAgICAgICAgICAgICAgICBpcF9uZXR3b3JrKCcyMDAxOmRiODo6NC8xMjYnKSwKKyAgICAgICAgICAgICAgICBpcF9uZXR3b3JrKCcyMDAxOmRiODo6OC8xMjUnKSwKKyAgICAgICAgICAgICAgICAuLi4KKyAgICAgICAgICAgICAgICBpcF9uZXR3b3JrKCcyMDAxOmRiODo4MDAwOjovMzMnKV0KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgb3RoZXI6IEFuIElQdjROZXR3b3JrIG9yIElQdjZOZXR3b3JrIG9iamVjdCBvZiB0aGUgc2FtZSB0eXBlLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBBbiBpdGVyYXRvciBvZiB0aGUgdGhlIElQdig0fDYpTmV0d29yayBvYmplY3RzIHdoaWNoIGlzIHNlbGYKKyAgICAgICAgICAgIG1pbnVzIG90aGVyLgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIFR5cGVFcnJvcjogSWYgc2VsZiBhbmQgb3RoZXIgYXJlIG9mIGRpZmZmZXJpbmcgYWRkcmVzcworICAgICAgICAgICAgICB2ZXJzaW9ucywgb3IgaWYgb3RoZXIgaXMgbm90IGEgbmV0d29yayBvYmplY3QuCisgICAgICAgICAgICBWYWx1ZUVycm9yOiBJZiBvdGhlciBpcyBub3QgY29tcGxldGVseSBjb250YWluZWQgYnkgc2VsZi4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuX3ZlcnNpb24gPT0gb3RoZXIuX3ZlcnNpb246CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzIGFuZCAlcyBhcmUgbm90IG9mIHRoZSBzYW1lIHZlcnNpb24iICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLCBvdGhlcikpCisKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIF9CYXNlTmV0d29yayk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoIiVzIGlzIG5vdCBhIG5ldHdvcmsgb2JqZWN0IiAlIG90aGVyKQorCisgICAgICAgIGlmIG5vdCAob3RoZXIubmV0d29ya19hZGRyZXNzID49IHNlbGYubmV0d29ya19hZGRyZXNzIGFuZAorICAgICAgICAgICAgICAgIG90aGVyLmJyb2FkY2FzdF9hZGRyZXNzIDw9IHNlbGYuYnJvYWRjYXN0X2FkZHJlc3MpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignJXMgbm90IGNvbnRhaW5lZCBpbiAlcycgJSAob3RoZXIsIHNlbGYpKQorICAgICAgICBpZiBvdGhlciA9PSBzZWxmOgorICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgorCisgICAgICAgICMgTWFrZSBzdXJlIHdlJ3JlIGNvbXBhcmluZyB0aGUgbmV0d29yayBvZiBvdGhlci4KKyAgICAgICAgb3RoZXIgPSBvdGhlci5fX2NsYXNzX18oJyVzLyVzJyAlIChvdGhlci5uZXR3b3JrX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXIucHJlZml4bGVuKSkKKworICAgICAgICBzMSwgczIgPSBzZWxmLnN1Ym5ldHMoKQorICAgICAgICB3aGlsZSBzMSAhPSBvdGhlciBhbmQgczIgIT0gb3RoZXI6CisgICAgICAgICAgICBpZiAob3RoZXIubmV0d29ya19hZGRyZXNzID49IHMxLm5ldHdvcmtfYWRkcmVzcyBhbmQKKyAgICAgICAgICAgICAgICBvdGhlci5icm9hZGNhc3RfYWRkcmVzcyA8PSBzMS5icm9hZGNhc3RfYWRkcmVzcyk6CisgICAgICAgICAgICAgICAgeWllbGQgczIKKyAgICAgICAgICAgICAgICBzMSwgczIgPSBzMS5zdWJuZXRzKCkKKyAgICAgICAgICAgIGVsaWYgKG90aGVyLm5ldHdvcmtfYWRkcmVzcyA+PSBzMi5uZXR3b3JrX2FkZHJlc3MgYW5kCisgICAgICAgICAgICAgICAgICBvdGhlci5icm9hZGNhc3RfYWRkcmVzcyA8PSBzMi5icm9hZGNhc3RfYWRkcmVzcyk6CisgICAgICAgICAgICAgICAgeWllbGQgczEKKyAgICAgICAgICAgICAgICBzMSwgczIgPSBzMi5zdWJuZXRzKCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBJZiB3ZSBnb3QgaGVyZSwgdGhlcmUncyBhIGJ1ZyBzb21ld2hlcmUuCisgICAgICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoJ0Vycm9yIHBlcmZvcm1pbmcgZXhjbHVzaW9uOiAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3MxOiAlcyBzMjogJXMgb3RoZXI6ICVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMxLCBzMiwgb3RoZXIpKQorICAgICAgICBpZiBzMSA9PSBvdGhlcjoKKyAgICAgICAgICAgIHlpZWxkIHMyCisgICAgICAgIGVsaWYgczIgPT0gb3RoZXI6CisgICAgICAgICAgICB5aWVsZCBzMQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBJZiB3ZSBnb3QgaGVyZSwgdGhlcmUncyBhIGJ1ZyBzb21ld2hlcmUuCisgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcignRXJyb3IgcGVyZm9ybWluZyBleGNsdXNpb246ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzMTogJXMgczI6ICVzIG90aGVyOiAlcycgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHMxLCBzMiwgb3RoZXIpKQorCisgICAgZGVmIGNvbXBhcmVfbmV0d29ya3Moc2VsZiwgb3RoZXIpOgorICAgICAgICAiIiJDb21wYXJlIHR3byBJUCBvYmplY3RzLgorCisgICAgICAgIFRoaXMgaXMgb25seSBjb25jZXJuZWQgYWJvdXQgdGhlIGNvbXBhcmlzb24gb2YgdGhlIGludGVnZXIKKyAgICAgICAgcmVwcmVzZW50YXRpb24gb2YgdGhlIG5ldHdvcmsgYWRkcmVzc2VzLiAgVGhpcyBtZWFucyB0aGF0IHRoZQorICAgICAgICBob3N0IGJpdHMgYXJlbid0IGNvbnNpZGVyZWQgYXQgYWxsIGluIHRoaXMgbWV0aG9kLiAgSWYgeW91IHdhbnQKKyAgICAgICAgdG8gY29tcGFyZSBob3N0IGJpdHMsIHlvdSBjYW4gZWFzaWx5IGVub3VnaCBkbyBhCisgICAgICAgICdIb3N0QS5faXAgPCBIb3N0Qi5faXAnCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIG90aGVyOiBBbiBJUCBvYmplY3QuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIElmIHRoZSBJUCB2ZXJzaW9ucyBvZiBzZWxmIGFuZCBvdGhlciBhcmUgdGhlIHNhbWUsIHJldHVybnM6CisKKyAgICAgICAgICAgIC0xIGlmIHNlbGYgPCBvdGhlcjoKKyAgICAgICAgICAgICAgZWc6IElQdjROZXR3b3JrKCcxOTIuMC4yLjAvMjUnKSA8IElQdjROZXR3b3JrKCcxOTIuMC4yLjEyOC8yNScpCisgICAgICAgICAgICAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6MTAwMC8xMjQnKSA8CisgICAgICAgICAgICAgICAgICBJUHY2TmV0d29yaygnMjAwMTpkYjg6OjIwMDAvMTI0JykKKyAgICAgICAgICAgIDAgaWYgc2VsZiA9PSBvdGhlcgorICAgICAgICAgICAgICBlZzogSVB2NE5ldHdvcmsoJzE5Mi4wLjIuMC8yNCcpID09IElQdjROZXR3b3JrKCcxOTIuMC4yLjAvMjQnKQorICAgICAgICAgICAgICBJUHY2TmV0d29yaygnMjAwMTpkYjg6OjEwMDAvMTI0JykgPT0KKyAgICAgICAgICAgICAgICAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6MTAwMC8xMjQnKQorICAgICAgICAgICAgMSBpZiBzZWxmID4gb3RoZXIKKyAgICAgICAgICAgICAgZWc6IElQdjROZXR3b3JrKCcxOTIuMC4yLjEyOC8yNScpID4gSVB2NE5ldHdvcmsoJzE5Mi4wLjIuMC8yNScpCisgICAgICAgICAgICAgICAgICBJUHY2TmV0d29yaygnMjAwMTpkYjg6OjIwMDAvMTI0JykgPgorICAgICAgICAgICAgICAgICAgICAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6MTAwMC8xMjQnKQorCisgICAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgICBUeXBlRXJyb3IgaWYgdGhlIElQIHZlcnNpb25zIGFyZSBkaWZmZXJlbnQuCisKKyAgICAgICAgIiIiCisgICAgICAgICMgZG9lcyB0aGlzIG5lZWQgdG8gcmFpc2UgYSBWYWx1ZUVycm9yPworICAgICAgICBpZiBzZWxmLl92ZXJzaW9uICE9IG90aGVyLl92ZXJzaW9uOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCclcyBhbmQgJXMgYXJlIG5vdCBvZiB0aGUgc2FtZSB0eXBlJyAlICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwgb3RoZXIpKQorICAgICAgICAjIHNlbGYuX3ZlcnNpb24gPT0gb3RoZXIuX3ZlcnNpb24gYmVsb3cgaGVyZToKKyAgICAgICAgaWYgc2VsZi5uZXR3b3JrX2FkZHJlc3MgPCBvdGhlci5uZXR3b3JrX2FkZHJlc3M6CisgICAgICAgICAgICByZXR1cm4gLTEKKyAgICAgICAgaWYgc2VsZi5uZXR3b3JrX2FkZHJlc3MgPiBvdGhlci5uZXR3b3JrX2FkZHJlc3M6CisgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICAjIHNlbGYubmV0d29ya19hZGRyZXNzID09IG90aGVyLm5ldHdvcmtfYWRkcmVzcyBiZWxvdyBoZXJlOgorICAgICAgICBpZiBzZWxmLm5ldG1hc2sgPCBvdGhlci5uZXRtYXNrOgorICAgICAgICAgICAgcmV0dXJuIC0xCisgICAgICAgIGlmIHNlbGYubmV0bWFzayA+IG90aGVyLm5ldG1hc2s6CisgICAgICAgICAgICByZXR1cm4gMQorICAgICAgICByZXR1cm4gMAorCisgICAgZGVmIF9nZXRfbmV0d29ya3Nfa2V5KHNlbGYpOgorICAgICAgICAiIiJOZXR3b3JrLW9ubHkga2V5IGZ1bmN0aW9uLgorCisgICAgICAgIFJldHVybnMgYW4gb2JqZWN0IHRoYXQgaWRlbnRpZmllcyB0aGlzIGFkZHJlc3MnIG5ldHdvcmsgYW5kCisgICAgICAgIG5ldG1hc2suIFRoaXMgZnVuY3Rpb24gaXMgYSBzdWl0YWJsZSAia2V5IiBhcmd1bWVudCBmb3Igc29ydGVkKCkKKyAgICAgICAgYW5kIGxpc3Quc29ydCgpLgorCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gKHNlbGYuX3ZlcnNpb24sIHNlbGYubmV0d29ya19hZGRyZXNzLCBzZWxmLm5ldG1hc2spCisKKyAgICBkZWYgc3VibmV0cyhzZWxmLCBwcmVmaXhsZW5fZGlmZj0xLCBuZXdfcHJlZml4PU5vbmUpOgorICAgICAgICAiIiJUaGUgc3VibmV0cyB3aGljaCBqb2luIHRvIG1ha2UgdGhlIGN1cnJlbnQgc3VibmV0LgorCisgICAgICAgIEluIHRoZSBjYXNlIHRoYXQgc2VsZiBjb250YWlucyBvbmx5IG9uZSBJUAorICAgICAgICAoc2VsZi5fcHJlZml4bGVuID09IDMyIGZvciBJUHY0IG9yIHNlbGYuX3ByZWZpeGxlbiA9PSAxMjgKKyAgICAgICAgZm9yIElQdjYpLCB5aWVsZCBhbiBpdGVyYXRvciB3aXRoIGp1c3Qgb3Vyc2VsZi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgcHJlZml4bGVuX2RpZmY6IEFuIGludGVnZXIsIHRoZSBhbW91bnQgdGhlIHByZWZpeCBsZW5ndGgKKyAgICAgICAgICAgICAgc2hvdWxkIGJlIGluY3JlYXNlZCBieS4gVGhpcyBzaG91bGQgbm90IGJlIHNldCBpZgorICAgICAgICAgICAgICBuZXdfcHJlZml4IGlzIGFsc28gc2V0LgorICAgICAgICAgICAgbmV3X3ByZWZpeDogVGhlIGRlc2lyZWQgbmV3IHByZWZpeCBsZW5ndGguIFRoaXMgbXVzdCBiZSBhCisgICAgICAgICAgICAgIGxhcmdlciBudW1iZXIgKHNtYWxsZXIgcHJlZml4KSB0aGFuIHRoZSBleGlzdGluZyBwcmVmaXguCisgICAgICAgICAgICAgIFRoaXMgc2hvdWxkIG5vdCBiZSBzZXQgaWYgcHJlZml4bGVuX2RpZmYgaXMgYWxzbyBzZXQuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEFuIGl0ZXJhdG9yIG9mIElQdig0fDYpIG9iamVjdHMuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgVmFsdWVFcnJvcjogVGhlIHByZWZpeGxlbl9kaWZmIGlzIHRvbyBzbWFsbCBvciB0b28gbGFyZ2UuCisgICAgICAgICAgICAgICAgT1IKKyAgICAgICAgICAgIHByZWZpeGxlbl9kaWZmIGFuZCBuZXdfcHJlZml4IGFyZSBib3RoIHNldCBvciBuZXdfcHJlZml4CisgICAgICAgICAgICAgIGlzIGEgc21hbGxlciBudW1iZXIgdGhhbiB0aGUgY3VycmVudCBwcmVmaXggKHNtYWxsZXIKKyAgICAgICAgICAgICAgbnVtYmVyIG1lYW5zIGEgbGFyZ2VyIG5ldHdvcmspCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX3ByZWZpeGxlbiA9PSBzZWxmLl9tYXhfcHJlZml4bGVuOgorICAgICAgICAgICAgeWllbGQgc2VsZgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYgbmV3X3ByZWZpeCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIG5ld19wcmVmaXggPCBzZWxmLl9wcmVmaXhsZW46CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignbmV3IHByZWZpeCBtdXN0IGJlIGxvbmdlcicpCisgICAgICAgICAgICBpZiBwcmVmaXhsZW5fZGlmZiAhPSAxOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2Nhbm5vdCBzZXQgcHJlZml4bGVuX2RpZmYgYW5kIG5ld19wcmVmaXgnKQorICAgICAgICAgICAgcHJlZml4bGVuX2RpZmYgPSBuZXdfcHJlZml4IC0gc2VsZi5fcHJlZml4bGVuCisKKyAgICAgICAgaWYgcHJlZml4bGVuX2RpZmYgPCAwOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigncHJlZml4IGxlbmd0aCBkaWZmIG11c3QgYmUgPiAwJykKKyAgICAgICAgbmV3X3ByZWZpeGxlbiA9IHNlbGYuX3ByZWZpeGxlbiArIHByZWZpeGxlbl9kaWZmCisKKyAgICAgICAgaWYgbm90IHNlbGYuX2lzX3ZhbGlkX25ldG1hc2soc3RyKG5ld19wcmVmaXhsZW4pKToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgJ3ByZWZpeCBsZW5ndGggZGlmZiAlZCBpcyBpbnZhbGlkIGZvciBuZXRibG9jayAlcycgJSAoCisgICAgICAgICAgICAgICAgICAgIG5ld19wcmVmaXhsZW4sIHNlbGYpKQorCisgICAgICAgIGZpcnN0ID0gc2VsZi5fX2NsYXNzX18oJyVzLyVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5uZXR3b3JrX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcHJlZml4bGVuICsgcHJlZml4bGVuX2RpZmYpKQorCisgICAgICAgIHlpZWxkIGZpcnN0CisgICAgICAgIGN1cnJlbnQgPSBmaXJzdAorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgYnJvYWRjYXN0ID0gY3VycmVudC5icm9hZGNhc3RfYWRkcmVzcworICAgICAgICAgICAgaWYgYnJvYWRjYXN0ID09IHNlbGYuYnJvYWRjYXN0X2FkZHJlc3M6CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBuZXdfYWRkciA9IHNlbGYuX2FkZHJlc3NfY2xhc3MoaW50KGJyb2FkY2FzdCkgKyAxKQorICAgICAgICAgICAgY3VycmVudCA9IHNlbGYuX19jbGFzc19fKCclcy8lcycgJSAobmV3X2FkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfcHJlZml4bGVuKSkKKworICAgICAgICAgICAgeWllbGQgY3VycmVudAorCisgICAgZGVmIHN1cGVybmV0KHNlbGYsIHByZWZpeGxlbl9kaWZmPTEsIG5ld19wcmVmaXg9Tm9uZSk6CisgICAgICAgICIiIlRoZSBzdXBlcm5ldCBjb250YWluaW5nIHRoZSBjdXJyZW50IG5ldHdvcmsuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHByZWZpeGxlbl9kaWZmOiBBbiBpbnRlZ2VyLCB0aGUgYW1vdW50IHRoZSBwcmVmaXggbGVuZ3RoIG9mCisgICAgICAgICAgICAgIHRoZSBuZXR3b3JrIHNob3VsZCBiZSBkZWNyZWFzZWQgYnkuICBGb3IgZXhhbXBsZSwgZ2l2ZW4gYQorICAgICAgICAgICAgICAvMjQgbmV0d29yayBhbmQgYSBwcmVmaXhsZW5fZGlmZiBvZiAzLCBhIHN1cGVybmV0IHdpdGggYQorICAgICAgICAgICAgICAvMjEgbmV0bWFzayBpcyByZXR1cm5lZC4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQW4gSVB2NCBuZXR3b3JrIG9iamVjdC4KKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBWYWx1ZUVycm9yOiBJZiBzZWxmLnByZWZpeGxlbiAtIHByZWZpeGxlbl9kaWZmIDwgMC4gSS5lLiwgeW91IGhhdmUKKyAgICAgICAgICAgICAgYSBuZWdhdGl2ZSBwcmVmaXggbGVuZ3RoLgorICAgICAgICAgICAgICAgIE9SCisgICAgICAgICAgICBJZiBwcmVmaXhsZW5fZGlmZiBhbmQgbmV3X3ByZWZpeCBhcmUgYm90aCBzZXQgb3IgbmV3X3ByZWZpeCBpcyBhCisgICAgICAgICAgICAgIGxhcmdlciBudW1iZXIgdGhhbiB0aGUgY3VycmVudCBwcmVmaXggKGxhcmdlciBudW1iZXIgbWVhbnMgYQorICAgICAgICAgICAgICBzbWFsbGVyIG5ldHdvcmspCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX3ByZWZpeGxlbiA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYKKworICAgICAgICBpZiBuZXdfcHJlZml4IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgbmV3X3ByZWZpeCA+IHNlbGYuX3ByZWZpeGxlbjoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCduZXcgcHJlZml4IG11c3QgYmUgc2hvcnRlcicpCisgICAgICAgICAgICBpZiBwcmVmaXhsZW5fZGlmZiAhPSAxOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2Nhbm5vdCBzZXQgcHJlZml4bGVuX2RpZmYgYW5kIG5ld19wcmVmaXgnKQorICAgICAgICAgICAgcHJlZml4bGVuX2RpZmYgPSBzZWxmLl9wcmVmaXhsZW4gLSBuZXdfcHJlZml4CisKKyAgICAgICAgaWYgc2VsZi5wcmVmaXhsZW4gLSBwcmVmaXhsZW5fZGlmZiA8IDA6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICdjdXJyZW50IHByZWZpeGxlbiBpcyAlZCwgY2Fubm90IGhhdmUgYSBwcmVmaXhsZW5fZGlmZiBvZiAlZCcgJQorICAgICAgICAgICAgICAgIChzZWxmLnByZWZpeGxlbiwgcHJlZml4bGVuX2RpZmYpKQorICAgICAgICAjIFRPRE8gKHBtb29keSk6IG9wdGltaXplIHRoaXMuCisgICAgICAgIHQgPSBzZWxmLl9fY2xhc3NfXygnJXMvJWQnICUgKHNlbGYubmV0d29ya19hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByZWZpeGxlbiAtIHByZWZpeGxlbl9kaWZmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpY3Q9RmFsc2UpCisgICAgICAgIHJldHVybiB0Ll9fY2xhc3NfXygnJXMvJWQnICUgKHQubmV0d29ya19hZGRyZXNzLCB0LnByZWZpeGxlbikpCisKKworY2xhc3MgX0Jhc2VWNDoKKworICAgICIiIkJhc2UgSVB2NCBvYmplY3QuCisKKyAgICBUaGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIHVzZWQgYnkgSVB2NCBvYmplY3RzIGluIGJvdGggc2luZ2xlIElQCisgICAgYWRkcmVzc2VzIGFuZCBuZXR3b3Jrcy4KKworICAgICIiIgorCisgICAgIyBFcXVpdmFsZW50IHRvIDI1NS4yNTUuMjU1LjI1NSBvciAzMiBiaXRzIG9mIDEncy4KKyAgICBfQUxMX09ORVMgPSAoMioqSVBWNExFTkdUSCkgLSAxCisgICAgX0RFQ0lNQUxfRElHSVRTID0gZnJvemVuc2V0KCcwMTIzNDU2Nzg5JykKKworICAgICMgdGhlIHZhbGlkIG9jdGV0cyBmb3IgaG9zdCBhbmQgbmV0bWFza3MuIG9ubHkgdXNlZnVsIGZvciBJUHY0LgorICAgIF92YWxpZF9tYXNrX29jdGV0cyA9IGZyb3plbnNldCgoMjU1LCAyNTQsIDI1MiwgMjQ4LCAyNDAsIDIyNCwgMTkyLCAxMjgsIDApKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHJlc3MpOgorICAgICAgICBzZWxmLl92ZXJzaW9uID0gNAorICAgICAgICBzZWxmLl9tYXhfcHJlZml4bGVuID0gSVBWNExFTkdUSAorCisgICAgZGVmIF9leHBsb2RlX3Nob3J0aGFuZF9pcF9zdHJpbmcoc2VsZik6CisgICAgICAgIHJldHVybiBzdHIoc2VsZikKKworICAgIGRlZiBfaXBfaW50X2Zyb21fc3RyaW5nKHNlbGYsIGlwX3N0cik6CisgICAgICAgICIiIlR1cm4gdGhlIGdpdmVuIElQIHN0cmluZyBpbnRvIGFuIGludGVnZXIgZm9yIGNvbXBhcmlzb24uCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGlwX3N0cjogQSBzdHJpbmcsIHRoZSBJUCBpcF9zdHIuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIFRoZSBJUCBpcF9zdHIgYXMgYW4gaW50ZWdlci4KKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBBZGRyZXNzVmFsdWVFcnJvcjogaWYgaXBfc3RyIGlzbid0IGEgdmFsaWQgSVB2NCBBZGRyZXNzLgorCisgICAgICAgICIiIgorICAgICAgICBpZiBub3QgaXBfc3RyOgorICAgICAgICAgICAgcmFpc2UgQWRkcmVzc1ZhbHVlRXJyb3IoJ0FkZHJlc3MgY2Fubm90IGJlIGVtcHR5JykKKworICAgICAgICBvY3RldHMgPSBpcF9zdHIuc3BsaXQoJy4nKQorICAgICAgICBpZiBsZW4ob2N0ZXRzKSAhPSA0OgorICAgICAgICAgICAgcmFpc2UgQWRkcmVzc1ZhbHVlRXJyb3IoIkV4cGVjdGVkIDQgb2N0ZXRzIGluICVyIiAlIGlwX3N0cikKKworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gaW50LmZyb21fYnl0ZXMobWFwKHNlbGYuX3BhcnNlX29jdGV0LCBvY3RldHMpLCAnYmlnJykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZXhjOgorICAgICAgICAgICAgcmFpc2UgQWRkcmVzc1ZhbHVlRXJyb3IoIiVzIGluICVyIiAlIChleGMsIGlwX3N0cikpIGZyb20gTm9uZQorCisgICAgZGVmIF9wYXJzZV9vY3RldChzZWxmLCBvY3RldF9zdHIpOgorICAgICAgICAiIiJDb252ZXJ0IGEgZGVjaW1hbCBvY3RldCBpbnRvIGFuIGludGVnZXIuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIG9jdGV0X3N0cjogQSBzdHJpbmcsIHRoZSBudW1iZXIgdG8gcGFyc2UuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIFRoZSBvY3RldCBhcyBhbiBpbnRlZ2VyLgorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIFZhbHVlRXJyb3I6IGlmIHRoZSBvY3RldCBpc24ndCBzdHJpY3RseSBhIGRlY2ltYWwgZnJvbSBbMC4uMjU1XS4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IG9jdGV0X3N0cjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkVtcHR5IG9jdGV0IG5vdCBwZXJtaXR0ZWQiKQorICAgICAgICAjIFdoaXRlbGlzdCB0aGUgY2hhcmFjdGVycywgc2luY2UgaW50KCkgYWxsb3dzIGEgbG90IG9mIGJpemFycmUgc3R1ZmYuCisgICAgICAgIGlmIG5vdCBzZWxmLl9ERUNJTUFMX0RJR0lUUy5pc3N1cGVyc2V0KG9jdGV0X3N0cik6CisgICAgICAgICAgICBtc2cgPSAiT25seSBkZWNpbWFsIGRpZ2l0cyBwZXJtaXR0ZWQgaW4gJXIiCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZyAlIG9jdGV0X3N0cikKKyAgICAgICAgIyBXZSBkbyB0aGUgbGVuZ3RoIGNoZWNrIHNlY29uZCwgc2luY2UgdGhlIGludmFsaWQgY2hhcmFjdGVyIGVycm9yCisgICAgICAgICMgaXMgbGlrZWx5IHRvIGJlIG1vcmUgaW5mb3JtYXRpdmUgZm9yIHRoZSB1c2VyCisgICAgICAgIGlmIGxlbihvY3RldF9zdHIpID4gMzoKKyAgICAgICAgICAgIG1zZyA9ICJBdCBtb3N0IDMgY2hhcmFjdGVycyBwZXJtaXR0ZWQgaW4gJXIiCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1zZyAlIG9jdGV0X3N0cikKKyAgICAgICAgIyBDb252ZXJ0IHRvIGludGVnZXIgKHdlIGtub3cgZGlnaXRzIGFyZSBsZWdhbCkKKyAgICAgICAgb2N0ZXRfaW50ID0gaW50KG9jdGV0X3N0ciwgMTApCisgICAgICAgICMgQW55IG9jdGV0cyB0aGF0IGxvb2sgbGlrZSB0aGV5ICptaWdodCogYmUgd3JpdHRlbiBpbiBvY3RhbCwKKyAgICAgICAgIyBhbmQgd2hpY2ggZG9uJ3QgbG9vayBleGFjdGx5IHRoZSBzYW1lIGluIGJvdGggb2N0YWwgYW5kCisgICAgICAgICMgZGVjaW1hbCBhcmUgcmVqZWN0ZWQgYXMgYW1iaWd1b3VzCisgICAgICAgIGlmIG9jdGV0X2ludCA+IDcgYW5kIG9jdGV0X3N0clswXSA9PSAnMCc6CisgICAgICAgICAgICBtc2cgPSAiQW1iaWd1b3VzIChvY3RhbC9kZWNpbWFsKSB2YWx1ZSBpbiAlciBub3QgcGVybWl0dGVkIgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihtc2cgJSBvY3RldF9zdHIpCisgICAgICAgIGlmIG9jdGV0X2ludCA+IDI1NToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk9jdGV0ICVkICg+IDI1NSkgbm90IHBlcm1pdHRlZCIgJSBvY3RldF9pbnQpCisgICAgICAgIHJldHVybiBvY3RldF9pbnQKKworICAgIGRlZiBfc3RyaW5nX2Zyb21faXBfaW50KHNlbGYsIGlwX2ludCk6CisgICAgICAgICIiIlR1cm5zIGEgMzItYml0IGludGVnZXIgaW50byBkb3R0ZWQgZGVjaW1hbCBub3RhdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgaXBfaW50OiBBbiBpbnRlZ2VyLCB0aGUgSVAgYWRkcmVzcy4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgVGhlIElQIGFkZHJlc3MgYXMgYSBzdHJpbmcgaW4gZG90dGVkIGRlY2ltYWwgbm90YXRpb24uCisKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiAnLicuam9pbihtYXAoc3RyLCBpcF9pbnQudG9fYnl0ZXMoNCwgJ2JpZycpKSkKKworICAgIGRlZiBfaXNfdmFsaWRfbmV0bWFzayhzZWxmLCBuZXRtYXNrKToKKyAgICAgICAgIiIiVmVyaWZ5IHRoYXQgdGhlIG5ldG1hc2sgaXMgdmFsaWQuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIG5ldG1hc2s6IEEgc3RyaW5nLCBlaXRoZXIgYSBwcmVmaXggb3IgZG90dGVkIGRlY2ltYWwKKyAgICAgICAgICAgICAgbmV0bWFzay4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoZSBwcmVmaXggcmVwcmVzZW50cyBhIHZhbGlkIElQdjQKKyAgICAgICAgICAgIG5ldG1hc2suCisKKyAgICAgICAgIiIiCisgICAgICAgIG1hc2sgPSBuZXRtYXNrLnNwbGl0KCcuJykKKyAgICAgICAgaWYgbGVuKG1hc2spID09IDQ6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZm9yIHggaW4gbWFzazoKKyAgICAgICAgICAgICAgICAgICAgaWYgaW50KHgpIG5vdCBpbiBzZWxmLl92YWxpZF9tYXNrX29jdGV0czoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgIyBGb3VuZCBzb21ldGhpbmcgdGhhdCBpc24ndCBhbiBpbnRlZ2VyIG9yIGlzbid0IHZhbGlkCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICBmb3IgaWR4LCB5IGluIGVudW1lcmF0ZShtYXNrKToKKyAgICAgICAgICAgICAgICBpZiBpZHggPiAwIGFuZCB5ID4gbWFza1tpZHggLSAxXToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBuZXRtYXNrID0gaW50KG5ldG1hc2spCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiAwIDw9IG5ldG1hc2sgPD0gc2VsZi5fbWF4X3ByZWZpeGxlbgorCisgICAgZGVmIF9pc19ob3N0bWFzayhzZWxmLCBpcF9zdHIpOgorICAgICAgICAiIiJUZXN0IGlmIHRoZSBJUCBzdHJpbmcgaXMgYSBob3N0bWFzayAocmF0aGVyIHRoYW4gYSBuZXRtYXNrKS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgaXBfc3RyOiBBIHN0cmluZywgdGhlIHBvdGVudGlhbCBob3N0bWFzay4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoZSBJUCBzdHJpbmcgaXMgYSBob3N0bWFzay4KKworICAgICAgICAiIiIKKyAgICAgICAgYml0cyA9IGlwX3N0ci5zcGxpdCgnLicpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBhcnRzID0gW3ggZm9yIHggaW4gbWFwKGludCwgYml0cykgaWYgeCBpbiBzZWxmLl92YWxpZF9tYXNrX29jdGV0c10KKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgbGVuKHBhcnRzKSAhPSBsZW4oYml0cyk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgcGFydHNbMF0gPCBwYXJ0c1stMV06CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtYXhfcHJlZml4bGVuKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fbWF4X3ByZWZpeGxlbgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHZlcnNpb24oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl92ZXJzaW9uCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgICIiIlRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgb3RoZXJ3aXNlIElFVEYgcmVzZXJ2ZWQuCisKKyAgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoZSBhZGRyZXNzIGlzIHdpdGhpbiB0aGUKKyAgICAgICAgICAgICByZXNlcnZlZCBJUHY0IE5ldHdvcmsgcmFuZ2UuCisKKyAgICAgICAgIiIiCisgICAgICAgIHJlc2VydmVkX25ldHdvcmsgPSBJUHY0TmV0d29yaygnMjQwLjAuMC4wLzQnKQorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYsIF9CYXNlQWRkcmVzcyk6CisgICAgICAgICAgICByZXR1cm4gc2VsZiBpbiByZXNlcnZlZF9uZXR3b3JrCisgICAgICAgIHJldHVybiAoc2VsZi5uZXR3b3JrX2FkZHJlc3MgaW4gcmVzZXJ2ZWRfbmV0d29yayBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLmJyb2FkY2FzdF9hZGRyZXNzIGluIHJlc2VydmVkX25ldHdvcmspCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfcHJpdmF0ZShzZWxmKToKKyAgICAgICAgIiIiVGVzdCBpZiB0aGlzIGFkZHJlc3MgaXMgYWxsb2NhdGVkIGZvciBwcml2YXRlIG5ldHdvcmtzLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhlIGFkZHJlc3MgaXMgcmVzZXJ2ZWQgcGVyIFJGQyAxOTE4LgorCisgICAgICAgICIiIgorICAgICAgICBwcml2YXRlXzEwID0gSVB2NE5ldHdvcmsoJzEwLjAuMC4wLzgnKQorICAgICAgICBwcml2YXRlXzE3MiA9IElQdjROZXR3b3JrKCcxNzIuMTYuMC4wLzEyJykKKyAgICAgICAgcHJpdmF0ZV8xOTIgPSBJUHY0TmV0d29yaygnMTkyLjE2OC4wLjAvMTYnKQorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYsIF9CYXNlQWRkcmVzcyk6CisgICAgICAgICAgICByZXR1cm4gKHNlbGYgaW4gcHJpdmF0ZV8xMCBvciBzZWxmIGluIHByaXZhdGVfMTcyIG9yCisgICAgICAgICAgICAgICAgICAgIHNlbGYgaW4gcHJpdmF0ZV8xOTIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gKChzZWxmLm5ldHdvcmtfYWRkcmVzcyBpbiBwcml2YXRlXzEwIGFuZAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5icm9hZGNhc3RfYWRkcmVzcyBpbiBwcml2YXRlXzEwKSBvcgorICAgICAgICAgICAgICAgICAgICAoc2VsZi5uZXR3b3JrX2FkZHJlc3MgaW4gcHJpdmF0ZV8xNzIgYW5kCisgICAgICAgICAgICAgICAgICAgICBzZWxmLmJyb2FkY2FzdF9hZGRyZXNzIGluIHByaXZhdGVfMTcyKSBvcgorICAgICAgICAgICAgICAgICAgICAoc2VsZi5uZXR3b3JrX2FkZHJlc3MgaW4gcHJpdmF0ZV8xOTIgYW5kCisgICAgICAgICAgICAgICAgICAgICBzZWxmLmJyb2FkY2FzdF9hZGRyZXNzIGluIHByaXZhdGVfMTkyKSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19tdWx0aWNhc3Qoc2VsZik6CisgICAgICAgICIiIlRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgcmVzZXJ2ZWQgZm9yIG11bHRpY2FzdCB1c2UuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEEgYm9vbGVhbiwgVHJ1ZSBpZiB0aGUgYWRkcmVzcyBpcyBtdWx0aWNhc3QuCisgICAgICAgICAgICBTZWUgUkZDIDMxNzEgZm9yIGRldGFpbHMuCisKKyAgICAgICAgIiIiCisgICAgICAgIG11bHRpY2FzdF9uZXR3b3JrID0gSVB2NE5ldHdvcmsoJzIyNC4wLjAuMC80JykKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCBfQmFzZUFkZHJlc3MpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYgaW4gSVB2NE5ldHdvcmsoJzIyNC4wLjAuMC80JykKKyAgICAgICAgcmV0dXJuIChzZWxmLm5ldHdvcmtfYWRkcmVzcyBpbiBtdWx0aWNhc3RfbmV0d29yayBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLmJyb2FkY2FzdF9hZGRyZXNzIGluIG11bHRpY2FzdF9uZXR3b3JrKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX3Vuc3BlY2lmaWVkKHNlbGYpOgorICAgICAgICAiIiJUZXN0IGlmIHRoZSBhZGRyZXNzIGlzIHVuc3BlY2lmaWVkLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhpcyBpcyB0aGUgdW5zcGVjaWZpZWQgYWRkcmVzcyBhcyBkZWZpbmVkIGluCisgICAgICAgICAgICBSRkMgNTczNSAzLgorCisgICAgICAgICIiIgorICAgICAgICB1bnNwZWNpZmllZF9hZGRyZXNzID0gSVB2NEFkZHJlc3MoJzAuMC4wLjAnKQorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYsIF9CYXNlQWRkcmVzcyk6CisgICAgICAgICAgICByZXR1cm4gc2VsZiA9PSB1bnNwZWNpZmllZF9hZGRyZXNzCisgICAgICAgIHJldHVybiAoc2VsZi5uZXR3b3JrX2FkZHJlc3MgPT0gc2VsZi5icm9hZGNhc3RfYWRkcmVzcyA9PQorICAgICAgICAgICAgICAgIHVuc3BlY2lmaWVkX2FkZHJlc3MpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfbG9vcGJhY2soc2VsZik6CisgICAgICAgICIiIlRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgYSBsb29wYmFjayBhZGRyZXNzLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhlIGFkZHJlc3MgaXMgYSBsb29wYmFjayBwZXIgUkZDIDMzMzAuCisKKyAgICAgICAgIiIiCisgICAgICAgIGxvb3BiYWNrX2FkZHJlc3MgPSBJUHY0TmV0d29yaygnMTI3LjAuMC4wLzgnKQorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYsIF9CYXNlQWRkcmVzcyk6CisgICAgICAgICAgICByZXR1cm4gc2VsZiBpbiBsb29wYmFja19hZGRyZXNzCisKKyAgICAgICAgcmV0dXJuIChzZWxmLm5ldHdvcmtfYWRkcmVzcyBpbiBsb29wYmFja19hZGRyZXNzIGFuZAorICAgICAgICAgICAgICAgIHNlbGYuYnJvYWRjYXN0X2FkZHJlc3MgaW4gbG9vcGJhY2tfYWRkcmVzcykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19saW5rX2xvY2FsKHNlbGYpOgorICAgICAgICAiIiJUZXN0IGlmIHRoZSBhZGRyZXNzIGlzIHJlc2VydmVkIGZvciBsaW5rLWxvY2FsLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhlIGFkZHJlc3MgaXMgbGluay1sb2NhbCBwZXIgUkZDIDM5MjcuCisKKyAgICAgICAgIiIiCisgICAgICAgIGxpbmtsb2NhbF9uZXR3b3JrID0gSVB2NE5ldHdvcmsoJzE2OS4yNTQuMC4wLzE2JykKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCBfQmFzZUFkZHJlc3MpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYgaW4gbGlua2xvY2FsX25ldHdvcmsKKyAgICAgICAgcmV0dXJuIChzZWxmLm5ldHdvcmtfYWRkcmVzcyBpbiBsaW5rbG9jYWxfbmV0d29yayBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLmJyb2FkY2FzdF9hZGRyZXNzIGluIGxpbmtsb2NhbF9uZXR3b3JrKQorCisKK2NsYXNzIElQdjRBZGRyZXNzKF9CYXNlVjQsIF9CYXNlQWRkcmVzcyk6CisKKyAgICAiIiJSZXByZXNlbnQgYW5kIG1hbmlwdWxhdGUgc2luZ2xlIElQdjQgQWRkcmVzc2VzLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHJlc3MpOgorCisgICAgICAgICIiIgorICAgICAgICBBcmdzOgorICAgICAgICAgICAgYWRkcmVzczogQSBzdHJpbmcgb3IgaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIElQCisKKyAgICAgICAgICAgICAgQWRkaXRpb25hbGx5LCBhbiBpbnRlZ2VyIGNhbiBiZSBwYXNzZWQsIHNvCisgICAgICAgICAgICAgIElQdjRBZGRyZXNzKCcxOTIuMC4yLjEnKSA9PSBJUHY0QWRkcmVzcygzMjIxMjI1OTg1KS4KKyAgICAgICAgICAgICAgb3IsIG1vcmUgZ2VuZXJhbGx5CisgICAgICAgICAgICAgIElQdjRBZGRyZXNzKGludChJUHY0QWRkcmVzcygnMTkyLjAuMi4xJykpKSA9PQorICAgICAgICAgICAgICAgIElQdjRBZGRyZXNzKCcxOTIuMC4yLjEnKQorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEFkZHJlc3NWYWx1ZUVycm9yOiBJZiBpcGFkZHJlc3MgaXNuJ3QgYSB2YWxpZCBJUHY0IGFkZHJlc3MuCisKKyAgICAgICAgIiIiCisgICAgICAgIF9CYXNlQWRkcmVzcy5fX2luaXRfXyhzZWxmLCBhZGRyZXNzKQorICAgICAgICBfQmFzZVY0Ll9faW5pdF9fKHNlbGYsIGFkZHJlc3MpCisKKyAgICAgICAgIyBFZmZpY2llbnQgY29uc3RydWN0b3IgZnJvbSBpbnRlZ2VyLgorICAgICAgICBpZiBpc2luc3RhbmNlKGFkZHJlc3MsIGludCk6CisgICAgICAgICAgICBzZWxmLl9jaGVja19pbnRfYWRkcmVzcyhhZGRyZXNzKQorICAgICAgICAgICAgc2VsZi5faXAgPSBhZGRyZXNzCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIENvbnN0cnVjdGluZyBmcm9tIGEgcGFja2VkIGFkZHJlc3MKKyAgICAgICAgaWYgaXNpbnN0YW5jZShhZGRyZXNzLCBieXRlcyk6CisgICAgICAgICAgICBzZWxmLl9jaGVja19wYWNrZWRfYWRkcmVzcyhhZGRyZXNzLCA0KQorICAgICAgICAgICAgc2VsZi5faXAgPSBzdHJ1Y3QudW5wYWNrKCchSScsIGFkZHJlc3MpWzBdCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIEFzc3VtZSBpbnB1dCBhcmd1bWVudCB0byBiZSBzdHJpbmcgb3IgYW55IG9iamVjdCByZXByZXNlbnRhdGlvbgorICAgICAgICAjIHdoaWNoIGNvbnZlcnRzIGludG8gYSBmb3JtYXR0ZWQgSVAgc3RyaW5nLgorICAgICAgICBhZGRyX3N0ciA9IHN0cihhZGRyZXNzKQorICAgICAgICBzZWxmLl9pcCA9IHNlbGYuX2lwX2ludF9mcm9tX3N0cmluZyhhZGRyX3N0cikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBwYWNrZWQoc2VsZik6CisgICAgICAgICIiIlRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhpcyBhZGRyZXNzLiIiIgorICAgICAgICByZXR1cm4gdjRfaW50X3RvX3BhY2tlZChzZWxmLl9pcCkKKworCitjbGFzcyBJUHY0SW50ZXJmYWNlKElQdjRBZGRyZXNzKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShhZGRyZXNzLCAoYnl0ZXMsIGludCkpOgorICAgICAgICAgICAgSVB2NEFkZHJlc3MuX19pbml0X18oc2VsZiwgYWRkcmVzcykKKyAgICAgICAgICAgIHNlbGYubmV0d29yayA9IElQdjROZXR3b3JrKHNlbGYuX2lwKQorICAgICAgICAgICAgc2VsZi5fcHJlZml4bGVuID0gc2VsZi5fbWF4X3ByZWZpeGxlbgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgYWRkciA9IF9zcGxpdF9vcHRpb25hbF9uZXRtYXNrKGFkZHJlc3MpCisgICAgICAgIElQdjRBZGRyZXNzLl9faW5pdF9fKHNlbGYsIGFkZHJbMF0pCisKKyAgICAgICAgc2VsZi5uZXR3b3JrID0gSVB2NE5ldHdvcmsoYWRkcmVzcywgc3RyaWN0PUZhbHNlKQorICAgICAgICBzZWxmLl9wcmVmaXhsZW4gPSBzZWxmLm5ldHdvcmsuX3ByZWZpeGxlbgorCisgICAgICAgIHNlbGYubmV0bWFzayA9IHNlbGYubmV0d29yay5uZXRtYXNrCisgICAgICAgIHNlbGYuaG9zdG1hc2sgPSBzZWxmLm5ldHdvcmsuaG9zdG1hc2sKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gJyVzLyVkJyAlIChzZWxmLl9zdHJpbmdfZnJvbV9pcF9pbnQoc2VsZi5faXApLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5ldHdvcmsucHJlZml4bGVuKQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIGFkZHJlc3NfZXF1YWwgPSBJUHY0QWRkcmVzcy5fX2VxX18oc2VsZiwgb3RoZXIpCisgICAgICAgIGlmIG5vdCBhZGRyZXNzX2VxdWFsIG9yIGFkZHJlc3NfZXF1YWwgaXMgTm90SW1wbGVtZW50ZWQ6CisgICAgICAgICAgICByZXR1cm4gYWRkcmVzc19lcXVhbAorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5uZXR3b3JrID09IG90aGVyLm5ldHdvcmsKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIyBBbiBpbnRlcmZhY2Ugd2l0aCBhbiBhc3NvY2lhdGVkIG5ldHdvcmsgaXMgTk9UIHRoZQorICAgICAgICAgICAgIyBzYW1lIGFzIGFuIHVuYXNzb2NpYXRlZCBhZGRyZXNzLiBUaGF0J3Mgd2h5IHRoZSBoYXNoCisgICAgICAgICAgICAjIHRha2VzIHRoZSBleHRyYSBpbmZvIGludG8gYWNjb3VudC4KKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9fbHRfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIGFkZHJlc3NfbGVzcyA9IElQdjRBZGRyZXNzLl9fbHRfXyhzZWxmLCBvdGhlcikKKyAgICAgICAgaWYgYWRkcmVzc19sZXNzIGlzIE5vdEltcGxlbWVudGVkOgorICAgICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm5ldHdvcmsgPCBvdGhlci5uZXR3b3JrCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICMgV2UgKmRvKiBhbGxvdyBhZGRyZXNzZXMgYW5kIGludGVyZmFjZXMgdG8gYmUgc29ydGVkLiBUaGUKKyAgICAgICAgICAgICMgdW5hc3NvY2lhdGVkIGFkZHJlc3MgaXMgY29uc2lkZXJlZCBsZXNzIHRoYW4gYWxsIGludGVyZmFjZXMuCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2lwIF4gc2VsZi5fcHJlZml4bGVuIF4gaW50KHNlbGYubmV0d29yay5uZXR3b3JrX2FkZHJlc3MpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcHJlZml4bGVuKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fcHJlZml4bGVuCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXAoc2VsZik6CisgICAgICAgIHJldHVybiBJUHY0QWRkcmVzcyhzZWxmLl9pcCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB3aXRoX3ByZWZpeGxlbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB3aXRoX25ldG1hc2soc2VsZik6CisgICAgICAgIHJldHVybiAnJXMvJXMnICUgKHNlbGYuX3N0cmluZ19mcm9tX2lwX2ludChzZWxmLl9pcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubmV0bWFzaykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB3aXRoX2hvc3RtYXNrKHNlbGYpOgorICAgICAgICByZXR1cm4gJyVzLyVzJyAlIChzZWxmLl9zdHJpbmdfZnJvbV9pcF9pbnQoc2VsZi5faXApLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmhvc3RtYXNrKQorCisKK2NsYXNzIElQdjROZXR3b3JrKF9CYXNlVjQsIF9CYXNlTmV0d29yayk6CisKKyAgICAiIiJUaGlzIGNsYXNzIHJlcHJlc2VudHMgYW5kIG1hbmlwdWxhdGVzIDMyLWJpdCBJUHY0IG5ldHdvcmsgKyBhZGRyZXNzZXMuLgorCisgICAgQXR0cmlidXRlczogW2V4YW1wbGVzIGZvciBJUHY0TmV0d29yaygnMTkyLjAuMi4wLzI3JyldCisgICAgICAgIC5uZXR3b3JrX2FkZHJlc3M6IElQdjRBZGRyZXNzKCcxOTIuMC4yLjAnKQorICAgICAgICAuaG9zdG1hc2s6IElQdjRBZGRyZXNzKCcwLjAuMC4zMScpCisgICAgICAgIC5icm9hZGNhc3RfYWRkcmVzczogSVB2NEFkZHJlc3MoJzE5Mi4wLjIuMzInKQorICAgICAgICAubmV0bWFzazogSVB2NEFkZHJlc3MoJzI1NS4yNTUuMjU1LjIyNCcpCisgICAgICAgIC5wcmVmaXhsZW46IDI3CisKKyAgICAiIiIKKyAgICAjIENsYXNzIHRvIHVzZSB3aGVuIGNyZWF0aW5nIGFkZHJlc3Mgb2JqZWN0cworICAgIF9hZGRyZXNzX2NsYXNzID0gSVB2NEFkZHJlc3MKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzLCBzdHJpY3Q9VHJ1ZSk6CisKKyAgICAgICAgIiIiSW5zdGFudGlhdGUgYSBuZXcgSVB2NCBuZXR3b3JrIG9iamVjdC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgYWRkcmVzczogQSBzdHJpbmcgb3IgaW50ZWdlciByZXByZXNlbnRpbmcgdGhlIElQIFsmIG5ldHdvcmtdLgorICAgICAgICAgICAgICAnMTkyLjAuMi4wLzI0JworICAgICAgICAgICAgICAnMTkyLjAuMi4wLzI1NS4yNTUuMjU1LjAnCisgICAgICAgICAgICAgICcxOTIuMC4wLjIvMC4wLjAuMjU1JworICAgICAgICAgICAgICBhcmUgYWxsIGZ1bmN0aW9uYWxseSB0aGUgc2FtZSBpbiBJUHY0LiBTaW1pbGFybHksCisgICAgICAgICAgICAgICcxOTIuMC4yLjEnCisgICAgICAgICAgICAgICcxOTIuMC4yLjEvMjU1LjI1NS4yNTUuMjU1JworICAgICAgICAgICAgICAnMTkyLjAuMi4xLzMyJworICAgICAgICAgICAgICBhcmUgYWxzbyBmdW5jdGlvbmFseSBlcXVpdmFsZW50LiBUaGF0IGlzIHRvIHNheSwgZmFpbGluZyB0bworICAgICAgICAgICAgICBwcm92aWRlIGEgc3VibmV0bWFzayB3aWxsIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBhIG1hc2sgb2YgLzMyLgorCisgICAgICAgICAgICAgIElmIHRoZSBtYXNrIChwb3J0aW9uIGFmdGVyIHRoZSAvIGluIHRoZSBhcmd1bWVudCkgaXMgZ2l2ZW4gaW4KKyAgICAgICAgICAgICAgZG90dGVkIHF1YWQgZm9ybSwgaXQgaXMgdHJlYXRlZCBhcyBhIG5ldG1hc2sgaWYgaXQgc3RhcnRzIHdpdGggYQorICAgICAgICAgICAgICBub24temVybyBmaWVsZCAoZS5nLiAvMjU1LjAuMC4wID09IC84KSBhbmQgYXMgYSBob3N0bWFzayBpZiBpdAorICAgICAgICAgICAgICBzdGFydHMgd2l0aCBhIHplcm8gZmllbGQgKGUuZy4gMC4yNTUuMjU1LjI1NSA9PSAvOCksIHdpdGggdGhlCisgICAgICAgICAgICAgIHNpbmdsZSBleGNlcHRpb24gb2YgYW4gYWxsLXplcm8gbWFzayB3aGljaCBpcyB0cmVhdGVkIGFzIGEKKyAgICAgICAgICAgICAgbmV0bWFzayA9PSAvMC4gSWYgbm8gbWFzayBpcyBnaXZlbiwgYSBkZWZhdWx0IG9mIC8zMiBpcyB1c2VkLgorCisgICAgICAgICAgICAgIEFkZGl0aW9uYWxseSwgYW4gaW50ZWdlciBjYW4gYmUgcGFzc2VkLCBzbworICAgICAgICAgICAgICBJUHY0TmV0d29yaygnMTkyLjAuMi4xJykgPT0gSVB2NE5ldHdvcmsoMzIyMTIyNTk4NSkKKyAgICAgICAgICAgICAgb3IsIG1vcmUgZ2VuZXJhbGx5CisgICAgICAgICAgICAgIElQdjRJbnRlcmZhY2UoaW50KElQdjRJbnRlcmZhY2UoJzE5Mi4wLjIuMScpKSkgPT0KKyAgICAgICAgICAgICAgICBJUHY0SW50ZXJmYWNlKCcxOTIuMC4yLjEnKQorCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEFkZHJlc3NWYWx1ZUVycm9yOiBJZiBpcGFkZHJlc3MgaXNuJ3QgYSB2YWxpZCBJUHY0IGFkZHJlc3MuCisgICAgICAgICAgICBOZXRtYXNrVmFsdWVFcnJvcjogSWYgdGhlIG5ldG1hc2sgaXNuJ3QgdmFsaWQgZm9yCisgICAgICAgICAgICAgIGFuIElQdjQgYWRkcmVzcy4KKyAgICAgICAgICAgIFZhbHVlRXJyb3I6IElmIHN0cmljdCBpcyBUcnVlIGFuZCBhIG5ldHdvcmsgYWRkcmVzcyBpcyBub3QKKyAgICAgICAgICAgICAgc3VwcGxpZWQuCisKKyAgICAgICAgIiIiCisKKyAgICAgICAgX0Jhc2VWNC5fX2luaXRfXyhzZWxmLCBhZGRyZXNzKQorICAgICAgICBfQmFzZU5ldHdvcmsuX19pbml0X18oc2VsZiwgYWRkcmVzcykKKworICAgICAgICAjIENvbnN0cnVjdGluZyBmcm9tIGEgcGFja2VkIGFkZHJlc3MKKyAgICAgICAgaWYgaXNpbnN0YW5jZShhZGRyZXNzLCBieXRlcyk6CisgICAgICAgICAgICBzZWxmLm5ldHdvcmtfYWRkcmVzcyA9IElQdjRBZGRyZXNzKGFkZHJlc3MpCisgICAgICAgICAgICBzZWxmLl9wcmVmaXhsZW4gPSBzZWxmLl9tYXhfcHJlZml4bGVuCisgICAgICAgICAgICBzZWxmLm5ldG1hc2sgPSBJUHY0QWRkcmVzcyhzZWxmLl9BTExfT05FUykKKyAgICAgICAgICAgICNmaXhtZTogYWRkcmVzcy9uZXR3b3JrIHRlc3QgaGVyZQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBFZmZpY2llbnQgY29uc3RydWN0b3IgZnJvbSBpbnRlZ2VyLgorICAgICAgICBpZiBpc2luc3RhbmNlKGFkZHJlc3MsIGludCk6CisgICAgICAgICAgICBzZWxmLm5ldHdvcmtfYWRkcmVzcyA9IElQdjRBZGRyZXNzKGFkZHJlc3MpCisgICAgICAgICAgICBzZWxmLl9wcmVmaXhsZW4gPSBzZWxmLl9tYXhfcHJlZml4bGVuCisgICAgICAgICAgICBzZWxmLm5ldG1hc2sgPSBJUHY0QWRkcmVzcyhzZWxmLl9BTExfT05FUykKKyAgICAgICAgICAgICNmaXhtZTogYWRkcmVzcy9uZXR3b3JrIHRlc3QgaGVyZS4KKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgQXNzdW1lIGlucHV0IGFyZ3VtZW50IHRvIGJlIHN0cmluZyBvciBhbnkgb2JqZWN0IHJlcHJlc2VudGF0aW9uCisgICAgICAgICMgd2hpY2ggY29udmVydHMgaW50byBhIGZvcm1hdHRlZCBJUCBwcmVmaXggc3RyaW5nLgorICAgICAgICBhZGRyID0gX3NwbGl0X29wdGlvbmFsX25ldG1hc2soYWRkcmVzcykKKyAgICAgICAgc2VsZi5uZXR3b3JrX2FkZHJlc3MgPSBJUHY0QWRkcmVzcyhzZWxmLl9pcF9pbnRfZnJvbV9zdHJpbmcoYWRkclswXSkpCisKKyAgICAgICAgaWYgbGVuKGFkZHIpID09IDI6CisgICAgICAgICAgICBtYXNrID0gYWRkclsxXS5zcGxpdCgnLicpCisKKyAgICAgICAgICAgIGlmIGxlbihtYXNrKSA9PSA0OgorICAgICAgICAgICAgICAgICMgV2UgaGF2ZSBkb3R0ZWQgZGVjaW1hbCBuZXRtYXNrLgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX2lzX3ZhbGlkX25ldG1hc2soYWRkclsxXSk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubmV0bWFzayA9IElQdjRBZGRyZXNzKHNlbGYuX2lwX2ludF9mcm9tX3N0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyWzFdKSkKKyAgICAgICAgICAgICAgICBlbGlmIHNlbGYuX2lzX2hvc3RtYXNrKGFkZHJbMV0pOgorICAgICAgICAgICAgICAgICAgICBzZWxmLm5ldG1hc2sgPSBJUHY0QWRkcmVzcygKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2lwX2ludF9mcm9tX3N0cmluZyhhZGRyWzFdKSBeIHNlbGYuX0FMTF9PTkVTKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIE5ldG1hc2tWYWx1ZUVycm9yKCclciBpcyBub3QgYSB2YWxpZCBuZXRtYXNrJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGFkZHJbMV0pCisKKyAgICAgICAgICAgICAgICBzZWxmLl9wcmVmaXhsZW4gPSBzZWxmLl9wcmVmaXhfZnJvbV9pcF9pbnQoaW50KHNlbGYubmV0bWFzaykpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgV2UgaGF2ZSBhIG5ldG1hc2sgaW4gcHJlZml4IGxlbmd0aCBmb3JtLgorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9pc192YWxpZF9uZXRtYXNrKGFkZHJbMV0pOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBOZXRtYXNrVmFsdWVFcnJvcignJXIgaXMgbm90IGEgdmFsaWQgbmV0bWFzaycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBhZGRyWzFdKQorICAgICAgICAgICAgICAgIHNlbGYuX3ByZWZpeGxlbiA9IGludChhZGRyWzFdKQorICAgICAgICAgICAgICAgIHNlbGYubmV0bWFzayA9IElQdjRBZGRyZXNzKHNlbGYuX2lwX2ludF9mcm9tX3ByZWZpeCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcHJlZml4bGVuKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX3ByZWZpeGxlbiA9IHNlbGYuX21heF9wcmVmaXhsZW4KKyAgICAgICAgICAgIHNlbGYubmV0bWFzayA9IElQdjRBZGRyZXNzKHNlbGYuX2lwX2ludF9mcm9tX3ByZWZpeCgKKyAgICAgICAgICAgICAgICBzZWxmLl9wcmVmaXhsZW4pKQorCisgICAgICAgIGlmIHN0cmljdDoKKyAgICAgICAgICAgIGlmIChJUHY0QWRkcmVzcyhpbnQoc2VsZi5uZXR3b3JrX2FkZHJlc3MpICYgaW50KHNlbGYubmV0bWFzaykpICE9CisgICAgICAgICAgICAgICAgc2VsZi5uZXR3b3JrX2FkZHJlc3MpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJyVzIGhhcyBob3N0IGJpdHMgc2V0JyAlIHNlbGYpCisgICAgICAgIHNlbGYubmV0d29ya19hZGRyZXNzID0gSVB2NEFkZHJlc3MoaW50KHNlbGYubmV0d29ya19hZGRyZXNzKSAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNlbGYubmV0bWFzaykpCisKKyAgICAgICAgaWYgc2VsZi5fcHJlZml4bGVuID09IChzZWxmLl9tYXhfcHJlZml4bGVuIC0gMSk6CisgICAgICAgICAgICBzZWxmLmhvc3RzID0gc2VsZi5fX2l0ZXJfXworCisKK2NsYXNzIF9CYXNlVjY6CisKKyAgICAiIiJCYXNlIElQdjYgb2JqZWN0LgorCisgICAgVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIGJ5IElQdjYgb2JqZWN0cyBpbiBib3RoIHNpbmdsZSBJUAorICAgIGFkZHJlc3NlcyBhbmQgbmV0d29ya3MuCisKKyAgICAiIiIKKworICAgIF9BTExfT05FUyA9ICgyKipJUFY2TEVOR1RIKSAtIDEKKyAgICBfSEVYVEVUX0NPVU5UID0gOAorICAgIF9IRVhfRElHSVRTID0gZnJvemVuc2V0KCcwMTIzNDU2Nzg5QUJDREVGYWJjZGVmJykKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzKToKKyAgICAgICAgc2VsZi5fdmVyc2lvbiA9IDYKKyAgICAgICAgc2VsZi5fbWF4X3ByZWZpeGxlbiA9IElQVjZMRU5HVEgKKworICAgIGRlZiBfaXBfaW50X2Zyb21fc3RyaW5nKHNlbGYsIGlwX3N0cik6CisgICAgICAgICIiIlR1cm4gYW4gSVB2NiBpcF9zdHIgaW50byBhbiBpbnRlZ2VyLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBpcF9zdHI6IEEgc3RyaW5nLCB0aGUgSVB2NiBpcF9zdHIuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEFuIGludCwgdGhlIElQdjYgYWRkcmVzcworCisgICAgICAgIFJhaXNlczoKKyAgICAgICAgICAgIEFkZHJlc3NWYWx1ZUVycm9yOiBpZiBpcF9zdHIgaXNuJ3QgYSB2YWxpZCBJUHY2IEFkZHJlc3MuCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBpcF9zdHI6CisgICAgICAgICAgICByYWlzZSBBZGRyZXNzVmFsdWVFcnJvcignQWRkcmVzcyBjYW5ub3QgYmUgZW1wdHknKQorCisgICAgICAgIHBhcnRzID0gaXBfc3RyLnNwbGl0KCc6JykKKworICAgICAgICAjIEFuIElQdjYgYWRkcmVzcyBuZWVkcyBhdCBsZWFzdCAyIGNvbG9ucyAoMyBwYXJ0cykuCisgICAgICAgIF9taW5fcGFydHMgPSAzCisgICAgICAgIGlmIGxlbihwYXJ0cykgPCBfbWluX3BhcnRzOgorICAgICAgICAgICAgbXNnID0gIkF0IGxlYXN0ICVkIHBhcnRzIGV4cGVjdGVkIGluICVyIiAlIChfbWluX3BhcnRzLCBpcF9zdHIpCisgICAgICAgICAgICByYWlzZSBBZGRyZXNzVmFsdWVFcnJvcihtc2cpCisKKyAgICAgICAgIyBJZiB0aGUgYWRkcmVzcyBoYXMgYW4gSVB2NC1zdHlsZSBzdWZmaXgsIGNvbnZlcnQgaXQgdG8gaGV4YWRlY2ltYWwuCisgICAgICAgIGlmICcuJyBpbiBwYXJ0c1stMV06CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaXB2NF9pbnQgPSBJUHY0QWRkcmVzcyhwYXJ0cy5wb3AoKSkuX2lwCisgICAgICAgICAgICBleGNlcHQgQWRkcmVzc1ZhbHVlRXJyb3IgYXMgZXhjOgorICAgICAgICAgICAgICAgIHJhaXNlIEFkZHJlc3NWYWx1ZUVycm9yKCIlcyBpbiAlciIgJSAoZXhjLCBpcF9zdHIpKSBmcm9tIE5vbmUKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgnJXgnICUgKChpcHY0X2ludCA+PiAxNikgJiAweEZGRkYpKQorICAgICAgICAgICAgcGFydHMuYXBwZW5kKCcleCcgJSAoaXB2NF9pbnQgJiAweEZGRkYpKQorCisgICAgICAgICMgQW4gSVB2NiBhZGRyZXNzIGNhbid0IGhhdmUgbW9yZSB0aGFuIDggY29sb25zICg5IHBhcnRzKS4KKyAgICAgICAgIyBUaGUgZXh0cmEgY29sb24gY29tZXMgZnJvbSB1c2luZyB0aGUgIjo6IiBub3RhdGlvbiBmb3IgYSBzaW5nbGUKKyAgICAgICAgIyBsZWFkaW5nIG9yIHRyYWlsaW5nIHplcm8gcGFydC4KKyAgICAgICAgX21heF9wYXJ0cyA9IHNlbGYuX0hFWFRFVF9DT1VOVCArIDEKKyAgICAgICAgaWYgbGVuKHBhcnRzKSA+IF9tYXhfcGFydHM6CisgICAgICAgICAgICBtc2cgPSAiQXQgbW9zdCAlZCBjb2xvbnMgcGVybWl0dGVkIGluICVyIiAlIChfbWF4X3BhcnRzLTEsIGlwX3N0cikKKyAgICAgICAgICAgIHJhaXNlIEFkZHJlc3NWYWx1ZUVycm9yKG1zZykKKworICAgICAgICAjIERpc3JlZ2FyZGluZyB0aGUgZW5kcG9pbnRzLCBmaW5kICc6Oicgd2l0aCBub3RoaW5nIGluIGJldHdlZW4uCisgICAgICAgICMgVGhpcyBpbmRpY2F0ZXMgdGhhdCBhIHJ1biBvZiB6ZXJvZXMgaGFzIGJlZW4gc2tpcHBlZC4KKyAgICAgICAgc2tpcF9pbmRleCA9IE5vbmUKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwgbGVuKHBhcnRzKSAtIDEpOgorICAgICAgICAgICAgaWYgbm90IHBhcnRzW2ldOgorICAgICAgICAgICAgICAgIGlmIHNraXBfaW5kZXggaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICMgQ2FuJ3QgaGF2ZSBtb3JlIHRoYW4gb25lICc6OicKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gIkF0IG1vc3Qgb25lICc6OicgcGVybWl0dGVkIGluICVyIiAlIGlwX3N0cgorICAgICAgICAgICAgICAgICAgICByYWlzZSBBZGRyZXNzVmFsdWVFcnJvcihtc2cpCisgICAgICAgICAgICAgICAgc2tpcF9pbmRleCA9IGkKKworICAgICAgICAjIHBhcnRzX2hpIGlzIHRoZSBudW1iZXIgb2YgcGFydHMgdG8gY29weSBmcm9tIGFib3ZlL2JlZm9yZSB0aGUgJzo6JworICAgICAgICAjIHBhcnRzX2xvIGlzIHRoZSBudW1iZXIgb2YgcGFydHMgdG8gY29weSBmcm9tIGJlbG93L2FmdGVyIHRoZSAnOjonCisgICAgICAgIGlmIHNraXBfaW5kZXggaXMgbm90IE5vbmU6CisgICAgICAgICAgICAjIElmIHdlIGZvdW5kIGEgJzo6JywgdGhlbiBjaGVjayBpZiBpdCBhbHNvIGNvdmVycyB0aGUgZW5kcG9pbnRzLgorICAgICAgICAgICAgcGFydHNfaGkgPSBza2lwX2luZGV4CisgICAgICAgICAgICBwYXJ0c19sbyA9IGxlbihwYXJ0cykgLSBza2lwX2luZGV4IC0gMQorICAgICAgICAgICAgaWYgbm90IHBhcnRzWzBdOgorICAgICAgICAgICAgICAgIHBhcnRzX2hpIC09IDEKKyAgICAgICAgICAgICAgICBpZiBwYXJ0c19oaToKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gIkxlYWRpbmcgJzonIG9ubHkgcGVybWl0dGVkIGFzIHBhcnQgb2YgJzo6JyBpbiAlciIKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgQWRkcmVzc1ZhbHVlRXJyb3IobXNnICUgaXBfc3RyKSAgIyBeOiByZXF1aXJlcyBeOjoKKyAgICAgICAgICAgIGlmIG5vdCBwYXJ0c1stMV06CisgICAgICAgICAgICAgICAgcGFydHNfbG8gLT0gMQorICAgICAgICAgICAgICAgIGlmIHBhcnRzX2xvOgorICAgICAgICAgICAgICAgICAgICBtc2cgPSAiVHJhaWxpbmcgJzonIG9ubHkgcGVybWl0dGVkIGFzIHBhcnQgb2YgJzo6JyBpbiAlciIKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgQWRkcmVzc1ZhbHVlRXJyb3IobXNnICUgaXBfc3RyKSAgIyA6JCByZXF1aXJlcyA6OiQKKyAgICAgICAgICAgIHBhcnRzX3NraXBwZWQgPSBzZWxmLl9IRVhURVRfQ09VTlQgLSAocGFydHNfaGkgKyBwYXJ0c19sbykKKyAgICAgICAgICAgIGlmIHBhcnRzX3NraXBwZWQgPCAxOgorICAgICAgICAgICAgICAgIG1zZyA9ICJFeHBlY3RlZCBhdCBtb3N0ICVkIG90aGVyIHBhcnRzIHdpdGggJzo6JyBpbiAlciIKKyAgICAgICAgICAgICAgICByYWlzZSBBZGRyZXNzVmFsdWVFcnJvcihtc2cgJSAoc2VsZi5fSEVYVEVUX0NPVU5ULTEsIGlwX3N0cikpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIE90aGVyd2lzZSwgYWxsb2NhdGUgdGhlIGVudGlyZSBhZGRyZXNzIHRvIHBhcnRzX2hpLiAgVGhlCisgICAgICAgICAgICAjIGVuZHBvaW50cyBjb3VsZCBzdGlsbCBiZSBlbXB0eSwgYnV0IF9wYXJzZV9oZXh0ZXQoKSB3aWxsIGNoZWNrCisgICAgICAgICAgICAjIGZvciB0aGF0LgorICAgICAgICAgICAgaWYgbGVuKHBhcnRzKSAhPSBzZWxmLl9IRVhURVRfQ09VTlQ6CisgICAgICAgICAgICAgICAgbXNnID0gIkV4YWN0bHkgJWQgcGFydHMgZXhwZWN0ZWQgd2l0aG91dCAnOjonIGluICVyIgorICAgICAgICAgICAgICAgIHJhaXNlIEFkZHJlc3NWYWx1ZUVycm9yKG1zZyAlIChzZWxmLl9IRVhURVRfQ09VTlQsIGlwX3N0cikpCisgICAgICAgICAgICBpZiBub3QgcGFydHNbMF06CisgICAgICAgICAgICAgICAgbXNnID0gIkxlYWRpbmcgJzonIG9ubHkgcGVybWl0dGVkIGFzIHBhcnQgb2YgJzo6JyBpbiAlciIKKyAgICAgICAgICAgICAgICByYWlzZSBBZGRyZXNzVmFsdWVFcnJvcihtc2cgJSBpcF9zdHIpICAjIF46IHJlcXVpcmVzIF46OgorICAgICAgICAgICAgaWYgbm90IHBhcnRzWy0xXToKKyAgICAgICAgICAgICAgICBtc2cgPSAiVHJhaWxpbmcgJzonIG9ubHkgcGVybWl0dGVkIGFzIHBhcnQgb2YgJzo6JyBpbiAlciIKKyAgICAgICAgICAgICAgICByYWlzZSBBZGRyZXNzVmFsdWVFcnJvcihtc2cgJSBpcF9zdHIpICAjIDokIHJlcXVpcmVzIDo6JAorICAgICAgICAgICAgcGFydHNfaGkgPSBsZW4ocGFydHMpCisgICAgICAgICAgICBwYXJ0c19sbyA9IDAKKyAgICAgICAgICAgIHBhcnRzX3NraXBwZWQgPSAwCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBOb3csIHBhcnNlIHRoZSBoZXh0ZXRzIGludG8gYSAxMjgtYml0IGludGVnZXIuCisgICAgICAgICAgICBpcF9pbnQgPSAwCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShwYXJ0c19oaSk6CisgICAgICAgICAgICAgICAgaXBfaW50IDw8PSAxNgorICAgICAgICAgICAgICAgIGlwX2ludCB8PSBzZWxmLl9wYXJzZV9oZXh0ZXQocGFydHNbaV0pCisgICAgICAgICAgICBpcF9pbnQgPDw9IDE2ICogcGFydHNfc2tpcHBlZAorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoLXBhcnRzX2xvLCAwKToKKyAgICAgICAgICAgICAgICBpcF9pbnQgPDw9IDE2CisgICAgICAgICAgICAgICAgaXBfaW50IHw9IHNlbGYuX3BhcnNlX2hleHRldChwYXJ0c1tpXSkKKyAgICAgICAgICAgIHJldHVybiBpcF9pbnQKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZXhjOgorICAgICAgICAgICAgcmFpc2UgQWRkcmVzc1ZhbHVlRXJyb3IoIiVzIGluICVyIiAlIChleGMsIGlwX3N0cikpIGZyb20gTm9uZQorCisgICAgZGVmIF9wYXJzZV9oZXh0ZXQoc2VsZiwgaGV4dGV0X3N0cik6CisgICAgICAgICIiIkNvbnZlcnQgYW4gSVB2NiBoZXh0ZXQgc3RyaW5nIGludG8gYW4gaW50ZWdlci4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgaGV4dGV0X3N0cjogQSBzdHJpbmcsIHRoZSBudW1iZXIgdG8gcGFyc2UuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIFRoZSBoZXh0ZXQgYXMgYW4gaW50ZWdlci4KKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBWYWx1ZUVycm9yOiBpZiB0aGUgaW5wdXQgaXNuJ3Qgc3RyaWN0bHkgYSBoZXggbnVtYmVyIGZyb20KKyAgICAgICAgICAgICAgWzAuLkZGRkZdLgorCisgICAgICAgICIiIgorICAgICAgICAjIFdoaXRlbGlzdCB0aGUgY2hhcmFjdGVycywgc2luY2UgaW50KCkgYWxsb3dzIGEgbG90IG9mIGJpemFycmUgc3R1ZmYuCisgICAgICAgIGlmIG5vdCBzZWxmLl9IRVhfRElHSVRTLmlzc3VwZXJzZXQoaGV4dGV0X3N0cik6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJPbmx5IGhleCBkaWdpdHMgcGVybWl0dGVkIGluICVyIiAlIGhleHRldF9zdHIpCisgICAgICAgICMgV2UgZG8gdGhlIGxlbmd0aCBjaGVjayBzZWNvbmQsIHNpbmNlIHRoZSBpbnZhbGlkIGNoYXJhY3RlciBlcnJvcgorICAgICAgICAjIGlzIGxpa2VseSB0byBiZSBtb3JlIGluZm9ybWF0aXZlIGZvciB0aGUgdXNlcgorICAgICAgICBpZiBsZW4oaGV4dGV0X3N0cikgPiA0OgorICAgICAgICAgICAgbXNnID0gIkF0IG1vc3QgNCBjaGFyYWN0ZXJzIHBlcm1pdHRlZCBpbiAlciIKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IobXNnICUgaGV4dGV0X3N0cikKKyAgICAgICAgIyBMZW5ndGggY2hlY2sgbWVhbnMgd2UgY2FuIHNraXAgY2hlY2tpbmcgdGhlIGludGVnZXIgdmFsdWUKKyAgICAgICAgcmV0dXJuIGludChoZXh0ZXRfc3RyLCAxNikKKworICAgIGRlZiBfY29tcHJlc3NfaGV4dGV0cyhzZWxmLCBoZXh0ZXRzKToKKyAgICAgICAgIiIiQ29tcHJlc3NlcyBhIGxpc3Qgb2YgaGV4dGV0cy4KKworICAgICAgICBDb21wcmVzc2VzIGEgbGlzdCBvZiBzdHJpbmdzLCByZXBsYWNpbmcgdGhlIGxvbmdlc3QgY29udGludW91cworICAgICAgICBzZXF1ZW5jZSBvZiAiMCIgaW4gdGhlIGxpc3Qgd2l0aCAiIiBhbmQgYWRkaW5nIGVtcHR5IHN0cmluZ3MgYXQKKyAgICAgICAgdGhlIGJlZ2lubmluZyBvciBhdCB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgc3VjaCB0aGF0IHN1YnNlcXVlbnRseQorICAgICAgICBjYWxsaW5nICI6Ii5qb2luKGhleHRldHMpIHdpbGwgcHJvZHVjZSB0aGUgY29tcHJlc3NlZCB2ZXJzaW9uIG9mCisgICAgICAgIHRoZSBJUHY2IGFkZHJlc3MuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGhleHRldHM6IEEgbGlzdCBvZiBzdHJpbmdzLCB0aGUgaGV4dGV0cyB0byBjb21wcmVzcy4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQSBsaXN0IG9mIHN0cmluZ3MuCisKKyAgICAgICAgIiIiCisgICAgICAgIGJlc3RfZG91YmxlY29sb25fc3RhcnQgPSAtMQorICAgICAgICBiZXN0X2RvdWJsZWNvbG9uX2xlbiA9IDAKKyAgICAgICAgZG91YmxlY29sb25fc3RhcnQgPSAtMQorICAgICAgICBkb3VibGVjb2xvbl9sZW4gPSAwCisgICAgICAgIGZvciBpbmRleCBpbiByYW5nZShsZW4oaGV4dGV0cykpOgorICAgICAgICAgICAgaWYgaGV4dGV0c1tpbmRleF0gPT0gJzAnOgorICAgICAgICAgICAgICAgIGRvdWJsZWNvbG9uX2xlbiArPSAxCisgICAgICAgICAgICAgICAgaWYgZG91YmxlY29sb25fc3RhcnQgPT0gLTE6CisgICAgICAgICAgICAgICAgICAgICMgU3RhcnQgb2YgYSBzZXF1ZW5jZSBvZiB6ZXJvcy4KKyAgICAgICAgICAgICAgICAgICAgZG91YmxlY29sb25fc3RhcnQgPSBpbmRleAorICAgICAgICAgICAgICAgIGlmIGRvdWJsZWNvbG9uX2xlbiA+IGJlc3RfZG91YmxlY29sb25fbGVuOgorICAgICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgdGhlIGxvbmdlc3Qgc2VxdWVuY2Ugb2YgemVyb3Mgc28gZmFyLgorICAgICAgICAgICAgICAgICAgICBiZXN0X2RvdWJsZWNvbG9uX2xlbiA9IGRvdWJsZWNvbG9uX2xlbgorICAgICAgICAgICAgICAgICAgICBiZXN0X2RvdWJsZWNvbG9uX3N0YXJ0ID0gZG91YmxlY29sb25fc3RhcnQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZG91YmxlY29sb25fbGVuID0gMAorICAgICAgICAgICAgICAgIGRvdWJsZWNvbG9uX3N0YXJ0ID0gLTEKKworICAgICAgICBpZiBiZXN0X2RvdWJsZWNvbG9uX2xlbiA+IDE6CisgICAgICAgICAgICBiZXN0X2RvdWJsZWNvbG9uX2VuZCA9IChiZXN0X2RvdWJsZWNvbG9uX3N0YXJ0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlc3RfZG91YmxlY29sb25fbGVuKQorICAgICAgICAgICAgIyBGb3IgemVyb3MgYXQgdGhlIGVuZCBvZiB0aGUgYWRkcmVzcy4KKyAgICAgICAgICAgIGlmIGJlc3RfZG91YmxlY29sb25fZW5kID09IGxlbihoZXh0ZXRzKToKKyAgICAgICAgICAgICAgICBoZXh0ZXRzICs9IFsnJ10KKyAgICAgICAgICAgIGhleHRldHNbYmVzdF9kb3VibGVjb2xvbl9zdGFydDpiZXN0X2RvdWJsZWNvbG9uX2VuZF0gPSBbJyddCisgICAgICAgICAgICAjIEZvciB6ZXJvcyBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBhZGRyZXNzLgorICAgICAgICAgICAgaWYgYmVzdF9kb3VibGVjb2xvbl9zdGFydCA9PSAwOgorICAgICAgICAgICAgICAgIGhleHRldHMgPSBbJyddICsgaGV4dGV0cworCisgICAgICAgIHJldHVybiBoZXh0ZXRzCisKKyAgICBkZWYgX3N0cmluZ19mcm9tX2lwX2ludChzZWxmLCBpcF9pbnQ9Tm9uZSk6CisgICAgICAgICIiIlR1cm5zIGEgMTI4LWJpdCBpbnRlZ2VyIGludG8gaGV4YWRlY2ltYWwgbm90YXRpb24uCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGlwX2ludDogQW4gaW50ZWdlciwgdGhlIElQIGFkZHJlc3MuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEEgc3RyaW5nLCB0aGUgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFkZHJlc3MuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgVmFsdWVFcnJvcjogVGhlIGFkZHJlc3MgaXMgYmlnZ2VyIHRoYW4gMTI4IGJpdHMgb2YgYWxsIG9uZXMuCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGlwX2ludCBpcyBOb25lOgorICAgICAgICAgICAgaXBfaW50ID0gaW50KHNlbGYuX2lwKQorCisgICAgICAgIGlmIGlwX2ludCA+IHNlbGYuX0FMTF9PTkVTOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSVB2NiBhZGRyZXNzIGlzIHRvbyBsYXJnZScpCisKKyAgICAgICAgaGV4X3N0ciA9ICclMDMyeCcgJSBpcF9pbnQKKyAgICAgICAgaGV4dGV0cyA9IFsnJXgnICUgaW50KGhleF9zdHJbeDp4KzRdLCAxNikgZm9yIHggaW4gcmFuZ2UoMCwgMzIsIDQpXQorCisgICAgICAgIGhleHRldHMgPSBzZWxmLl9jb21wcmVzc19oZXh0ZXRzKGhleHRldHMpCisgICAgICAgIHJldHVybiAnOicuam9pbihoZXh0ZXRzKQorCisgICAgZGVmIF9leHBsb2RlX3Nob3J0aGFuZF9pcF9zdHJpbmcoc2VsZik6CisgICAgICAgICIiIkV4cGFuZCBhIHNob3J0ZW5lZCBJUHY2IGFkZHJlc3MuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGlwX3N0cjogQSBzdHJpbmcsIHRoZSBJUHY2IGFkZHJlc3MuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEEgc3RyaW5nLCB0aGUgZXhwYW5kZWQgSVB2NiBhZGRyZXNzLgorCisgICAgICAgICIiIgorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYsIElQdjZOZXR3b3JrKToKKyAgICAgICAgICAgIGlwX3N0ciA9IHN0cihzZWxmLm5ldHdvcmtfYWRkcmVzcykKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHNlbGYsIElQdjZJbnRlcmZhY2UpOgorICAgICAgICAgICAgaXBfc3RyID0gc3RyKHNlbGYuaXApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpcF9zdHIgPSBzdHIoc2VsZikKKworICAgICAgICBpcF9pbnQgPSBzZWxmLl9pcF9pbnRfZnJvbV9zdHJpbmcoaXBfc3RyKQorICAgICAgICBoZXhfc3RyID0gJyUwMzJ4JyAlIGlwX2ludAorICAgICAgICBwYXJ0cyA9IFtoZXhfc3RyW3g6eCs0XSBmb3IgeCBpbiByYW5nZSgwLCAzMiwgNCldCisgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZiwgKF9CYXNlTmV0d29yaywgSVB2NkludGVyZmFjZSkpOgorICAgICAgICAgICAgcmV0dXJuICclcy8lZCcgJSAoJzonLmpvaW4ocGFydHMpLCBzZWxmLnByZWZpeGxlbikKKyAgICAgICAgcmV0dXJuICc6Jy5qb2luKHBhcnRzKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1heF9wcmVmaXhsZW4oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9tYXhfcHJlZml4bGVuCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmVyc2lvbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ZlcnNpb24KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBpc19tdWx0aWNhc3Qoc2VsZik6CisgICAgICAgICIiIlRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgcmVzZXJ2ZWQgZm9yIG11bHRpY2FzdCB1c2UuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEEgYm9vbGVhbiwgVHJ1ZSBpZiB0aGUgYWRkcmVzcyBpcyBhIG11bHRpY2FzdCBhZGRyZXNzLgorICAgICAgICAgICAgU2VlIFJGQyAyMzczIDIuNyBmb3IgZGV0YWlscy4KKworICAgICAgICAiIiIKKyAgICAgICAgbXVsdGljYXN0X25ldHdvcmsgPSBJUHY2TmV0d29yaygnZmYwMDo6LzgnKQorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYsIF9CYXNlQWRkcmVzcyk6CisgICAgICAgICAgICByZXR1cm4gc2VsZiBpbiBtdWx0aWNhc3RfbmV0d29yaworICAgICAgICByZXR1cm4gKHNlbGYubmV0d29ya19hZGRyZXNzIGluIG11bHRpY2FzdF9uZXR3b3JrIGFuZAorICAgICAgICAgICAgICAgIHNlbGYuYnJvYWRjYXN0X2FkZHJlc3MgaW4gbXVsdGljYXN0X25ldHdvcmspCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgICIiIlRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgb3RoZXJ3aXNlIElFVEYgcmVzZXJ2ZWQuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEEgYm9vbGVhbiwgVHJ1ZSBpZiB0aGUgYWRkcmVzcyBpcyB3aXRoaW4gb25lIG9mIHRoZQorICAgICAgICAgICAgcmVzZXJ2ZWQgSVB2NiBOZXR3b3JrIHJhbmdlcy4KKworICAgICAgICAiIiIKKyAgICAgICAgcmVzZXJ2ZWRfbmV0d29ya3MgPSBbSVB2Nk5ldHdvcmsoJzo6LzgnKSwgSVB2Nk5ldHdvcmsoJzEwMDo6LzgnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVB2Nk5ldHdvcmsoJzIwMDo6LzcnKSwgSVB2Nk5ldHdvcmsoJzQwMDo6LzYnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVB2Nk5ldHdvcmsoJzgwMDo6LzUnKSwgSVB2Nk5ldHdvcmsoJzEwMDA6Oi80JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQdjZOZXR3b3JrKCc0MDAwOjovMycpLCBJUHY2TmV0d29yaygnNjAwMDo6LzMnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVB2Nk5ldHdvcmsoJzgwMDA6Oi8zJyksIElQdjZOZXR3b3JrKCdBMDAwOjovMycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJUHY2TmV0d29yaygnQzAwMDo6LzMnKSwgSVB2Nk5ldHdvcmsoJ0UwMDA6Oi80JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElQdjZOZXR3b3JrKCdGMDAwOjovNScpLCBJUHY2TmV0d29yaygnRjgwMDo6LzYnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSVB2Nk5ldHdvcmsoJ0ZFMDA6Oi85JyldCisKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCBfQmFzZUFkZHJlc3MpOgorICAgICAgICAgICAgcmV0dXJuIGFueShzZWxmIGluIHggZm9yIHggaW4gcmVzZXJ2ZWRfbmV0d29ya3MpCisgICAgICAgIHJldHVybiBhbnkoc2VsZi5uZXR3b3JrX2FkZHJlc3MgaW4geCBhbmQgc2VsZi5icm9hZGNhc3RfYWRkcmVzcyBpbiB4CisgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gcmVzZXJ2ZWRfbmV0d29ya3MpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaXNfbGlua19sb2NhbChzZWxmKToKKyAgICAgICAgIiIiVGVzdCBpZiB0aGUgYWRkcmVzcyBpcyByZXNlcnZlZCBmb3IgbGluay1sb2NhbC4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoZSBhZGRyZXNzIGlzIHJlc2VydmVkIHBlciBSRkMgNDI5MS4KKworICAgICAgICAiIiIKKyAgICAgICAgbGlua2xvY2FsX25ldHdvcmsgPSBJUHY2TmV0d29yaygnZmU4MDo6LzEwJykKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCBfQmFzZUFkZHJlc3MpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYgaW4gbGlua2xvY2FsX25ldHdvcmsKKyAgICAgICAgcmV0dXJuIChzZWxmLm5ldHdvcmtfYWRkcmVzcyBpbiBsaW5rbG9jYWxfbmV0d29yayBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLmJyb2FkY2FzdF9hZGRyZXNzIGluIGxpbmtsb2NhbF9uZXR3b3JrKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX3NpdGVfbG9jYWwoc2VsZik6CisgICAgICAgICIiIlRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgcmVzZXJ2ZWQgZm9yIHNpdGUtbG9jYWwuCisKKyAgICAgICAgTm90ZSB0aGF0IHRoZSBzaXRlLWxvY2FsIGFkZHJlc3Mgc3BhY2UgaGFzIGJlZW4gZGVwcmVjYXRlZCBieSBSRkMgMzg3OS4KKyAgICAgICAgVXNlIGlzX3ByaXZhdGUgdG8gdGVzdCBpZiB0aGlzIGFkZHJlc3MgaXMgaW4gdGhlIHNwYWNlIG9mIHVuaXF1ZSBsb2NhbAorICAgICAgICBhZGRyZXNzZXMgYXMgZGVmaW5lZCBieSBSRkMgNDE5My4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoZSBhZGRyZXNzIGlzIHJlc2VydmVkIHBlciBSRkMgMzUxMyAyLjUuNi4KKworICAgICAgICAiIiIKKyAgICAgICAgc2l0ZWxvY2FsX25ldHdvcmsgPSBJUHY2TmV0d29yaygnZmVjMDo6LzEwJykKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCBfQmFzZUFkZHJlc3MpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYgaW4gc2l0ZWxvY2FsX25ldHdvcmsKKyAgICAgICAgcmV0dXJuIChzZWxmLm5ldHdvcmtfYWRkcmVzcyBpbiBzaXRlbG9jYWxfbmV0d29yayBhbmQKKyAgICAgICAgICAgICAgICBzZWxmLmJyb2FkY2FzdF9hZGRyZXNzIGluIHNpdGVsb2NhbF9uZXR3b3JrKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX3ByaXZhdGUoc2VsZik6CisgICAgICAgICIiIlRlc3QgaWYgdGhpcyBhZGRyZXNzIGlzIGFsbG9jYXRlZCBmb3IgcHJpdmF0ZSBuZXR3b3Jrcy4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoZSBhZGRyZXNzIGlzIHJlc2VydmVkIHBlciBSRkMgNDE5My4KKworICAgICAgICAiIiIKKyAgICAgICAgcHJpdmF0ZV9uZXR3b3JrID0gSVB2Nk5ldHdvcmsoJ2ZjMDA6Oi83JykKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCBfQmFzZUFkZHJlc3MpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYgaW4gcHJpdmF0ZV9uZXR3b3JrCisgICAgICAgIHJldHVybiAoc2VsZi5uZXR3b3JrX2FkZHJlc3MgaW4gcHJpdmF0ZV9uZXR3b3JrIGFuZAorICAgICAgICAgICAgICAgIHNlbGYuYnJvYWRjYXN0X2FkZHJlc3MgaW4gcHJpdmF0ZV9uZXR3b3JrKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlwdjRfbWFwcGVkKHNlbGYpOgorICAgICAgICAiIiJSZXR1cm4gdGhlIElQdjQgbWFwcGVkIGFkZHJlc3MuCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIElmIHRoZSBJUHY2IGFkZHJlc3MgaXMgYSB2NCBtYXBwZWQgYWRkcmVzcywgcmV0dXJuIHRoZQorICAgICAgICAgICAgSVB2NCBtYXBwZWQgYWRkcmVzcy4gUmV0dXJuIE5vbmUgb3RoZXJ3aXNlLgorCisgICAgICAgICIiIgorICAgICAgICBpZiAoc2VsZi5faXAgPj4gMzIpICE9IDB4RkZGRjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBJUHY0QWRkcmVzcyhzZWxmLl9pcCAmIDB4RkZGRkZGRkYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGVyZWRvKHNlbGYpOgorICAgICAgICAiIiJUdXBsZSBvZiBlbWJlZGRlZCB0ZXJlZG8gSVBzLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBUdXBsZSBvZiB0aGUgKHNlcnZlciwgY2xpZW50KSBJUHMgb3IgTm9uZSBpZiB0aGUgYWRkcmVzcworICAgICAgICAgICAgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB0ZXJlZG8gYWRkcmVzcyAoZG9lc24ndCBzdGFydCB3aXRoCisgICAgICAgICAgICAyMDAxOjovMzIpCisKKyAgICAgICAgIiIiCisgICAgICAgIGlmIChzZWxmLl9pcCA+PiA5NikgIT0gMHgyMDAxMDAwMDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiAoSVB2NEFkZHJlc3MoKHNlbGYuX2lwID4+IDY0KSAmIDB4RkZGRkZGRkYpLAorICAgICAgICAgICAgICAgIElQdjRBZGRyZXNzKH5zZWxmLl9pcCAmIDB4RkZGRkZGRkYpKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNpeHRvZm91cihzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHRoZSBJUHY0IDZ0bzQgZW1iZWRkZWQgYWRkcmVzcy4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgVGhlIElQdjQgNnRvNC1lbWJlZGRlZCBhZGRyZXNzIGlmIHByZXNlbnQgb3IgTm9uZSBpZiB0aGUKKyAgICAgICAgICAgIGFkZHJlc3MgZG9lc24ndCBhcHBlYXIgdG8gY29udGFpbiBhIDZ0bzQgZW1iZWRkZWQgYWRkcmVzcy4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgKHNlbGYuX2lwID4+IDExMikgIT0gMHgyMDAyOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIElQdjRBZGRyZXNzKChzZWxmLl9pcCA+PiA4MCkgJiAweEZGRkZGRkZGKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX3Vuc3BlY2lmaWVkKHNlbGYpOgorICAgICAgICAiIiJUZXN0IGlmIHRoZSBhZGRyZXNzIGlzIHVuc3BlY2lmaWVkLgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhpcyBpcyB0aGUgdW5zcGVjaWZpZWQgYWRkcmVzcyBhcyBkZWZpbmVkIGluCisgICAgICAgICAgICBSRkMgMjM3MyAyLjUuMi4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCAoSVB2Nk5ldHdvcmssIElQdjZJbnRlcmZhY2UpKToKKyAgICAgICAgICAgIHJldHVybiBpbnQoc2VsZi5uZXR3b3JrX2FkZHJlc3MpID09IDAgYW5kIGdldGF0dHIoCisgICAgICAgICAgICAgICAgc2VsZiwgJ19wcmVmaXhsZW4nLCAxMjgpID09IDEyOAorICAgICAgICByZXR1cm4gc2VsZi5faXAgPT0gMAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2xvb3BiYWNrKHNlbGYpOgorICAgICAgICAiIiJUZXN0IGlmIHRoZSBhZGRyZXNzIGlzIGEgbG9vcGJhY2sgYWRkcmVzcy4KKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoZSBhZGRyZXNzIGlzIGEgbG9vcGJhY2sgYWRkcmVzcyBhcyBkZWZpbmVkIGluCisgICAgICAgICAgICBSRkMgMjM3MyAyLjUuMy4KKworICAgICAgICAiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCBJUHY2TmV0d29yayk6CisgICAgICAgICAgICByZXR1cm4gaW50KHNlbGYpID09IDEgYW5kIGdldGF0dHIoCisgICAgICAgICAgICAgICAgc2VsZiwgJ19wcmVmaXhsZW4nLCAxMjgpID09IDEyOAorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoc2VsZiwgSVB2NkludGVyZmFjZSk6CisgICAgICAgICAgICByZXR1cm4gaW50KHNlbGYubmV0d29yay5uZXR3b3JrX2FkZHJlc3MpID09IDEgYW5kIGdldGF0dHIoCisgICAgICAgICAgICAgICAgc2VsZiwgJ19wcmVmaXhsZW4nLCAxMjgpID09IDEyOAorICAgICAgICByZXR1cm4gc2VsZi5faXAgPT0gMQorCisKK2NsYXNzIElQdjZBZGRyZXNzKF9CYXNlVjYsIF9CYXNlQWRkcmVzcyk6CisKKyAgICAiIiJSZXByZXNlbnQgYW5kIG1hbmlwdWxhdGUgc2luZ2xlIElQdjYgQWRkcmVzc2VzLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHJlc3MpOgorICAgICAgICAiIiJJbnN0YW50aWF0ZSBhIG5ldyBJUHY2IGFkZHJlc3Mgb2JqZWN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBhZGRyZXNzOiBBIHN0cmluZyBvciBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgSVAKKworICAgICAgICAgICAgICBBZGRpdGlvbmFsbHksIGFuIGludGVnZXIgY2FuIGJlIHBhc3NlZCwgc28KKyAgICAgICAgICAgICAgSVB2NkFkZHJlc3MoJzIwMDE6ZGI4OjonKSA9PQorICAgICAgICAgICAgICAgIElQdjZBZGRyZXNzKDQyNTQwNzY2NDExMjgyNTkyODU2OTAzOTg0OTUxNjUzODI2NTYwKQorICAgICAgICAgICAgICBvciwgbW9yZSBnZW5lcmFsbHkKKyAgICAgICAgICAgICAgSVB2NkFkZHJlc3MoaW50KElQdjZBZGRyZXNzKCcyMDAxOmRiODo6JykpKSA9PQorICAgICAgICAgICAgICAgIElQdjZBZGRyZXNzKCcyMDAxOmRiODo6JykKKworICAgICAgICBSYWlzZXM6CisgICAgICAgICAgICBBZGRyZXNzVmFsdWVFcnJvcjogSWYgYWRkcmVzcyBpc24ndCBhIHZhbGlkIElQdjYgYWRkcmVzcy4KKworICAgICAgICAiIiIKKyAgICAgICAgX0Jhc2VBZGRyZXNzLl9faW5pdF9fKHNlbGYsIGFkZHJlc3MpCisgICAgICAgIF9CYXNlVjYuX19pbml0X18oc2VsZiwgYWRkcmVzcykKKworICAgICAgICAjIEVmZmljaWVudCBjb25zdHJ1Y3RvciBmcm9tIGludGVnZXIuCisgICAgICAgIGlmIGlzaW5zdGFuY2UoYWRkcmVzcywgaW50KToKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX2ludF9hZGRyZXNzKGFkZHJlc3MpCisgICAgICAgICAgICBzZWxmLl9pcCA9IGFkZHJlc3MKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgQ29uc3RydWN0aW5nIGZyb20gYSBwYWNrZWQgYWRkcmVzcworICAgICAgICBpZiBpc2luc3RhbmNlKGFkZHJlc3MsIGJ5dGVzKToKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX3BhY2tlZF9hZGRyZXNzKGFkZHJlc3MsIDE2KQorICAgICAgICAgICAgdG1wID0gc3RydWN0LnVucGFjaygnIVFRJywgYWRkcmVzcykKKyAgICAgICAgICAgIHNlbGYuX2lwID0gKHRtcFswXSA8PCA2NCkgfCB0bXBbMV0KKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgQXNzdW1lIGlucHV0IGFyZ3VtZW50IHRvIGJlIHN0cmluZyBvciBhbnkgb2JqZWN0IHJlcHJlc2VudGF0aW9uCisgICAgICAgICMgd2hpY2ggY29udmVydHMgaW50byBhIGZvcm1hdHRlZCBJUCBzdHJpbmcuCisgICAgICAgIGFkZHJfc3RyID0gc3RyKGFkZHJlc3MpCisgICAgICAgIHNlbGYuX2lwID0gc2VsZi5faXBfaW50X2Zyb21fc3RyaW5nKGFkZHJfc3RyKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHBhY2tlZChzZWxmKToKKyAgICAgICAgIiIiVGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGFkZHJlc3MuIiIiCisgICAgICAgIHJldHVybiB2Nl9pbnRfdG9fcGFja2VkKHNlbGYuX2lwKQorCisKK2NsYXNzIElQdjZJbnRlcmZhY2UoSVB2NkFkZHJlc3MpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHJlc3MpOgorICAgICAgICBpZiBpc2luc3RhbmNlKGFkZHJlc3MsIChieXRlcywgaW50KSk6CisgICAgICAgICAgICBJUHY2QWRkcmVzcy5fX2luaXRfXyhzZWxmLCBhZGRyZXNzKQorICAgICAgICAgICAgc2VsZi5uZXR3b3JrID0gSVB2Nk5ldHdvcmsoc2VsZi5faXApCisgICAgICAgICAgICBzZWxmLl9wcmVmaXhsZW4gPSBzZWxmLl9tYXhfcHJlZml4bGVuCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBhZGRyID0gX3NwbGl0X29wdGlvbmFsX25ldG1hc2soYWRkcmVzcykKKyAgICAgICAgSVB2NkFkZHJlc3MuX19pbml0X18oc2VsZiwgYWRkclswXSkKKyAgICAgICAgc2VsZi5uZXR3b3JrID0gSVB2Nk5ldHdvcmsoYWRkcmVzcywgc3RyaWN0PUZhbHNlKQorICAgICAgICBzZWxmLm5ldG1hc2sgPSBzZWxmLm5ldHdvcmsubmV0bWFzaworICAgICAgICBzZWxmLl9wcmVmaXhsZW4gPSBzZWxmLm5ldHdvcmsuX3ByZWZpeGxlbgorICAgICAgICBzZWxmLmhvc3RtYXNrID0gc2VsZi5uZXR3b3JrLmhvc3RtYXNrCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICclcy8lZCcgJSAoc2VsZi5fc3RyaW5nX2Zyb21faXBfaW50KHNlbGYuX2lwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5uZXR3b3JrLnByZWZpeGxlbikKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICBhZGRyZXNzX2VxdWFsID0gSVB2NkFkZHJlc3MuX19lcV9fKHNlbGYsIG90aGVyKQorICAgICAgICBpZiBub3QgYWRkcmVzc19lcXVhbCBvciBhZGRyZXNzX2VxdWFsIGlzIE5vdEltcGxlbWVudGVkOgorICAgICAgICAgICAgcmV0dXJuIGFkZHJlc3NfZXF1YWwKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYubmV0d29yayA9PSBvdGhlci5uZXR3b3JrCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICMgQW4gaW50ZXJmYWNlIHdpdGggYW4gYXNzb2NpYXRlZCBuZXR3b3JrIGlzIE5PVCB0aGUKKyAgICAgICAgICAgICMgc2FtZSBhcyBhbiB1bmFzc29jaWF0ZWQgYWRkcmVzcy4gVGhhdCdzIHdoeSB0aGUgaGFzaAorICAgICAgICAgICAgIyB0YWtlcyB0aGUgZXh0cmEgaW5mbyBpbnRvIGFjY291bnQuCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfX2x0X18oc2VsZiwgb3RoZXIpOgorICAgICAgICBhZGRyZXNzX2xlc3MgPSBJUHY2QWRkcmVzcy5fX2x0X18oc2VsZiwgb3RoZXIpCisgICAgICAgIGlmIGFkZHJlc3NfbGVzcyBpcyBOb3RJbXBsZW1lbnRlZDoKKyAgICAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5uZXR3b3JrIDwgb3RoZXIubmV0d29yaworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAjIFdlICpkbyogYWxsb3cgYWRkcmVzc2VzIGFuZCBpbnRlcmZhY2VzIHRvIGJlIHNvcnRlZC4gVGhlCisgICAgICAgICAgICAjIHVuYXNzb2NpYXRlZCBhZGRyZXNzIGlzIGNvbnNpZGVyZWQgbGVzcyB0aGFuIGFsbCBpbnRlcmZhY2VzLgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9pcCBeIHNlbGYuX3ByZWZpeGxlbiBeIGludChzZWxmLm5ldHdvcmsubmV0d29ya19hZGRyZXNzKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHByZWZpeGxlbihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ByZWZpeGxlbgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGlwKHNlbGYpOgorICAgICAgICByZXR1cm4gSVB2NkFkZHJlc3Moc2VsZi5faXApCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgd2l0aF9wcmVmaXhsZW4oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgd2l0aF9uZXRtYXNrKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi53aXRoX3ByZWZpeGxlbgorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHdpdGhfaG9zdG1hc2soc2VsZik6CisgICAgICAgIHJldHVybiAnJXMvJXMnICUgKHNlbGYuX3N0cmluZ19mcm9tX2lwX2ludChzZWxmLl9pcCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaG9zdG1hc2spCisKKworY2xhc3MgSVB2Nk5ldHdvcmsoX0Jhc2VWNiwgX0Jhc2VOZXR3b3JrKToKKworICAgICIiIlRoaXMgY2xhc3MgcmVwcmVzZW50cyBhbmQgbWFuaXB1bGF0ZXMgMTI4LWJpdCBJUHY2IG5ldHdvcmtzLgorCisgICAgQXR0cmlidXRlczogW2V4YW1wbGVzIGZvciBJUHY2KCcyMDAxOmRiODo6MTAwMC8xMjQnKV0KKyAgICAgICAgLm5ldHdvcmtfYWRkcmVzczogSVB2NkFkZHJlc3MoJzIwMDE6ZGI4OjoxMDAwJykKKyAgICAgICAgLmhvc3RtYXNrOiBJUHY2QWRkcmVzcygnOjpmJykKKyAgICAgICAgLmJyb2FkY2FzdF9hZGRyZXNzOiBJUHY2QWRkcmVzcygnMjAwMTpkYjg6OjEwMGYnKQorICAgICAgICAubmV0bWFzazogSVB2NkFkZHJlc3MoJ2ZmZmY6ZmZmZjpmZmZmOmZmZmY6ZmZmZjpmZmZmOmZmZmY6ZmZmMCcpCisgICAgICAgIC5wcmVmaXhsZW46IDEyNAorCisgICAgIiIiCisKKyAgICAjIENsYXNzIHRvIHVzZSB3aGVuIGNyZWF0aW5nIGFkZHJlc3Mgb2JqZWN0cworICAgIF9hZGRyZXNzX2NsYXNzID0gSVB2NkFkZHJlc3MKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzLCBzdHJpY3Q9VHJ1ZSk6CisgICAgICAgICIiIkluc3RhbnRpYXRlIGEgbmV3IElQdjYgTmV0d29yayBvYmplY3QuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGFkZHJlc3M6IEEgc3RyaW5nIG9yIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZSBJUHY2IG5ldHdvcmsgb3IgdGhlCisgICAgICAgICAgICAgIElQIGFuZCBwcmVmaXgvbmV0bWFzay4KKyAgICAgICAgICAgICAgJzIwMDE6ZGI4OjovMTI4JworICAgICAgICAgICAgICAnMjAwMTpkYjg6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDAvMTI4JworICAgICAgICAgICAgICAnMjAwMTpkYjg6OicKKyAgICAgICAgICAgICAgYXJlIGFsbCBmdW5jdGlvbmFsbHkgdGhlIHNhbWUgaW4gSVB2Ni4gIFRoYXQgaXMgdG8gc2F5LAorICAgICAgICAgICAgICBmYWlsaW5nIHRvIHByb3ZpZGUgYSBzdWJuZXRtYXNrIHdpbGwgY3JlYXRlIGFuIG9iamVjdCB3aXRoCisgICAgICAgICAgICAgIGEgbWFzayBvZiAvMTI4LgorCisgICAgICAgICAgICAgIEFkZGl0aW9uYWxseSwgYW4gaW50ZWdlciBjYW4gYmUgcGFzc2VkLCBzbworICAgICAgICAgICAgICBJUHY2TmV0d29yaygnMjAwMTpkYjg6OicpID09CisgICAgICAgICAgICAgICAgSVB2Nk5ldHdvcmsoNDI1NDA3NjY0MTEyODI1OTI4NTY5MDM5ODQ5NTE2NTM4MjY1NjApCisgICAgICAgICAgICAgIG9yLCBtb3JlIGdlbmVyYWxseQorICAgICAgICAgICAgICBJUHY2TmV0d29yayhpbnQoSVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjonKSkpID09CisgICAgICAgICAgICAgICAgSVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjonKQorCisgICAgICAgICAgICBzdHJpY3Q6IEEgYm9vbGVhbi4gSWYgdHJ1ZSwgZW5zdXJlIHRoYXQgd2UgaGF2ZSBiZWVuIHBhc3NlZAorICAgICAgICAgICAgICBBIHRydWUgbmV0d29yayBhZGRyZXNzLCBlZywgMjAwMTpkYjg6OjEwMDAvMTI0IGFuZCBub3QgYW4KKyAgICAgICAgICAgICAgSVAgYWRkcmVzcyBvbiBhIG5ldHdvcmssIGVnLCAyMDAxOmRiODo6MS8xMjQuCisKKyAgICAgICAgUmFpc2VzOgorICAgICAgICAgICAgQWRkcmVzc1ZhbHVlRXJyb3I6IElmIGFkZHJlc3MgaXNuJ3QgYSB2YWxpZCBJUHY2IGFkZHJlc3MuCisgICAgICAgICAgICBOZXRtYXNrVmFsdWVFcnJvcjogSWYgdGhlIG5ldG1hc2sgaXNuJ3QgdmFsaWQgZm9yCisgICAgICAgICAgICAgIGFuIElQdjYgYWRkcmVzcy4KKyAgICAgICAgICAgIFZhbHVlRXJyb3I6IElmIHN0cmljdCB3YXMgVHJ1ZSBhbmQgYSBuZXR3b3JrIGFkZHJlc3Mgd2FzIG5vdAorICAgICAgICAgICAgICBzdXBwbGllZC4KKworICAgICAgICAiIiIKKyAgICAgICAgX0Jhc2VWNi5fX2luaXRfXyhzZWxmLCBhZGRyZXNzKQorICAgICAgICBfQmFzZU5ldHdvcmsuX19pbml0X18oc2VsZiwgYWRkcmVzcykKKworICAgICAgICAjIEVmZmljaWVudCBjb25zdHJ1Y3RvciBmcm9tIGludGVnZXIuCisgICAgICAgIGlmIGlzaW5zdGFuY2UoYWRkcmVzcywgaW50KToKKyAgICAgICAgICAgIHNlbGYubmV0d29ya19hZGRyZXNzID0gSVB2NkFkZHJlc3MoYWRkcmVzcykKKyAgICAgICAgICAgIHNlbGYuX3ByZWZpeGxlbiA9IHNlbGYuX21heF9wcmVmaXhsZW4KKyAgICAgICAgICAgIHNlbGYubmV0bWFzayA9IElQdjZBZGRyZXNzKHNlbGYuX0FMTF9PTkVTKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBDb25zdHJ1Y3RpbmcgZnJvbSBhIHBhY2tlZCBhZGRyZXNzCisgICAgICAgIGlmIGlzaW5zdGFuY2UoYWRkcmVzcywgYnl0ZXMpOgorICAgICAgICAgICAgc2VsZi5uZXR3b3JrX2FkZHJlc3MgPSBJUHY2QWRkcmVzcyhhZGRyZXNzKQorICAgICAgICAgICAgc2VsZi5fcHJlZml4bGVuID0gc2VsZi5fbWF4X3ByZWZpeGxlbgorICAgICAgICAgICAgc2VsZi5uZXRtYXNrID0gSVB2NkFkZHJlc3Moc2VsZi5fQUxMX09ORVMpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIEFzc3VtZSBpbnB1dCBhcmd1bWVudCB0byBiZSBzdHJpbmcgb3IgYW55IG9iamVjdCByZXByZXNlbnRhdGlvbgorICAgICAgICAjIHdoaWNoIGNvbnZlcnRzIGludG8gYSBmb3JtYXR0ZWQgSVAgcHJlZml4IHN0cmluZy4KKyAgICAgICAgYWRkciA9IF9zcGxpdF9vcHRpb25hbF9uZXRtYXNrKGFkZHJlc3MpCisKKyAgICAgICAgc2VsZi5uZXR3b3JrX2FkZHJlc3MgPSBJUHY2QWRkcmVzcyhzZWxmLl9pcF9pbnRfZnJvbV9zdHJpbmcoYWRkclswXSkpCisKKyAgICAgICAgaWYgbGVuKGFkZHIpID09IDI6CisgICAgICAgICAgICBpZiBzZWxmLl9pc192YWxpZF9uZXRtYXNrKGFkZHJbMV0pOgorICAgICAgICAgICAgICAgIHNlbGYuX3ByZWZpeGxlbiA9IGludChhZGRyWzFdKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBOZXRtYXNrVmFsdWVFcnJvcignJXIgaXMgbm90IGEgdmFsaWQgbmV0bWFzaycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSBhZGRyWzFdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5fcHJlZml4bGVuID0gc2VsZi5fbWF4X3ByZWZpeGxlbgorCisgICAgICAgIHNlbGYubmV0bWFzayA9IElQdjZBZGRyZXNzKHNlbGYuX2lwX2ludF9mcm9tX3ByZWZpeChzZWxmLl9wcmVmaXhsZW4pKQorICAgICAgICBpZiBzdHJpY3Q6CisgICAgICAgICAgICBpZiAoSVB2NkFkZHJlc3MoaW50KHNlbGYubmV0d29ya19hZGRyZXNzKSAmIGludChzZWxmLm5ldG1hc2spKSAhPQorICAgICAgICAgICAgICAgIHNlbGYubmV0d29ya19hZGRyZXNzKToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCclcyBoYXMgaG9zdCBiaXRzIHNldCcgJSBzZWxmKQorICAgICAgICBzZWxmLm5ldHdvcmtfYWRkcmVzcyA9IElQdjZBZGRyZXNzKGludChzZWxmLm5ldHdvcmtfYWRkcmVzcykgJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChzZWxmLm5ldG1hc2spKQorCisgICAgICAgIGlmIHNlbGYuX3ByZWZpeGxlbiA9PSAoc2VsZi5fbWF4X3ByZWZpeGxlbiAtIDEpOgorICAgICAgICAgICAgc2VsZi5ob3N0cyA9IHNlbGYuX19pdGVyX18KKworICAgIGRlZiBfaXNfdmFsaWRfbmV0bWFzayhzZWxmLCBwcmVmaXhsZW4pOgorICAgICAgICAiIiJWZXJpZnkgdGhhdCB0aGUgbmV0bWFzay9wcmVmaXhsZW4gaXMgdmFsaWQuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIHByZWZpeGxlbjogQSBzdHJpbmcsIHRoZSBuZXRtYXNrIGluIHByZWZpeCBsZW5ndGggZm9ybWF0LgorCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhlIHByZWZpeCByZXByZXNlbnRzIGEgdmFsaWQgSVB2NgorICAgICAgICAgICAgbmV0bWFzay4KKworICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcHJlZml4bGVuID0gaW50KHByZWZpeGxlbikKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIDAgPD0gcHJlZml4bGVuIDw9IHNlbGYuX21heF9wcmVmaXhsZW4KZGlmZiAtLWdpdCBhL0xpYi9qc29uL2RlY29kZXIucHkgYi9MaWIvanNvbi9kZWNvZGVyLnB5CmluZGV4IGRjMTE1NWIuLjA3ZmQ2OTYgMTAwNjQ0Ci0tLSBhL0xpYi9qc29uL2RlY29kZXIucHkKKysrIGIvTGliL2pzb24vZGVjb2Rlci5weQpAQCAtMTIxLDggKzEyMSw3IEBACiAgICAgICAgICAgICAgICAgbXNnID0gIkludmFsaWQgXFx1WFhYWCBlc2NhcGUiCiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcihlcnJtc2cobXNnLCBzLCBlbmQpKQogICAgICAgICAgICAgdW5pID0gaW50KGVzYywgMTYpCi0gICAgICAgICAgICAjIENoZWNrIGZvciBzdXJyb2dhdGUgcGFpciBvbiBVQ1MtNCBzeXN0ZW1zCi0gICAgICAgICAgICBpZiAweGQ4MDAgPD0gdW5pIDw9IDB4ZGJmZiBhbmQgc3lzLm1heHVuaWNvZGUgPiA2NTUzNToKKyAgICAgICAgICAgIGlmIDB4ZDgwMCA8PSB1bmkgPD0gMHhkYmZmOgogICAgICAgICAgICAgICAgIG1zZyA9ICJJbnZhbGlkIFxcdVhYWFhcXHVYWFhYIHN1cnJvZ2F0ZSBwYWlyIgogICAgICAgICAgICAgICAgIGlmIG5vdCBzW2VuZCArIDU6ZW5kICsgN10gPT0gJ1xcdSc6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoZXJybXNnKG1zZywgcywgZW5kKSkKZGlmZiAtLWdpdCBhL0xpYi9saWIydG8zL19fbWFpbl9fLnB5IGIvTGliL2xpYjJ0bzMvX19tYWluX18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODA2ODhiYQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi9saWIydG8zL19fbWFpbl9fLnB5CkBAIC0wLDAgKzEsNCBAQAoraW1wb3J0IHN5cworZnJvbSAubWFpbiBpbXBvcnQgbWFpbgorCitzeXMuZXhpdChtYWluKCJsaWIydG8zLmZpeGVzIikpCmRpZmYgLS1naXQgYS9MaWIvbGliMnRvMy9maXhlcl9iYXNlLnB5IGIvTGliL2xpYjJ0bzMvZml4ZXJfYmFzZS5weQppbmRleCBhZmMwNDY3Li5iMTc2MDU2IDEwMDY0NAotLS0gYS9MaWIvbGliMnRvMy9maXhlcl9iYXNlLnB5CisrKyBiL0xpYi9saWIydG8zL2ZpeGVyX2Jhc2UucHkKQEAgLTI3LDcgKzI3LDYgQEAKICAgICBwYXR0ZXJuX3RyZWUgPSBOb25lICMgVHJlZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgcGF0dGVybgogICAgIG9wdGlvbnMgPSBOb25lICAjIE9wdGlvbnMgb2JqZWN0IHBhc3NlZCB0byBpbml0aWFsaXplcgogICAgIGZpbGVuYW1lID0gTm9uZSAjIFRoZSBmaWxlbmFtZSAoc2V0IGJ5IHNldF9maWxlbmFtZSkKLSAgICBsb2dnZXIgPSBOb25lICAgIyBBIGxvZ2dlciAoc2V0IGJ5IHNldF9maWxlbmFtZSkKICAgICBudW1iZXJzID0gaXRlcnRvb2xzLmNvdW50KDEpICMgRm9yIG5ld19uYW1lKCkKICAgICB1c2VkX25hbWVzID0gc2V0KCkgIyBBIHNldCBvZiBhbGwgdXNlZCBOQU1FcwogICAgIG9yZGVyID0gInBvc3QiICMgRG9lcyB0aGUgZml4ZXIgcHJlZmVyIHByZS0gb3IgcG9zdC1vcmRlciB0cmF2ZXJzYWwKQEAgLTcwLDEyICs2OSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoX3RyZWU9VHJ1ZSkKIAogICAgIGRlZiBzZXRfZmlsZW5hbWUoc2VsZiwgZmlsZW5hbWUpOgotICAgICAgICAiIiJTZXQgdGhlIGZpbGVuYW1lLCBhbmQgYSBsb2dnZXIgZGVyaXZlZCBmcm9tIGl0LgorICAgICAgICAiIiJTZXQgdGhlIGZpbGVuYW1lLgogCiAgICAgICAgIFRoZSBtYWluIHJlZmFjdG9yaW5nIHRvb2wgc2hvdWxkIGNhbGwgdGhpcy4KICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQotICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKGZpbGVuYW1lKQogCiAgICAgZGVmIG1hdGNoKHNlbGYsIG5vZGUpOgogICAgICAgICAiIiJSZXR1cm5zIG1hdGNoIGZvciBhIGdpdmVuIHBhcnNlIHRyZWUgbm9kZS4KZGlmZiAtLWdpdCBhL0xpYi9saWIydG8zL3B5dHJlZS5weSBiL0xpYi9saWIydG8zL3B5dHJlZS5weQppbmRleCBmYTQ5NDJmLi4xN2NiZjBhIDEwMDY0NAotLS0gYS9MaWIvbGliMnRvMy9weXRyZWUucHkKKysrIGIvTGliL2xpYjJ0bzMvcHl0cmVlLnB5CkBAIC0xMDksMjYgKzEwOSw2IEBACiAgICAgICAgICIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgc2V0X3ByZWZpeChzZWxmLCBwcmVmaXgpOgotICAgICAgICAiIiIKLSAgICAgICAgU2V0IHRoZSBwcmVmaXggZm9yIHRoZSBub2RlIChzZWUgTGVhZiBjbGFzcykuCi0KLSAgICAgICAgREVQUkVDQVRFRDsgdXNlIHRoZSBwcmVmaXggcHJvcGVydHkgZGlyZWN0bHkuCi0gICAgICAgICIiIgotICAgICAgICB3YXJuaW5ncy53YXJuKCJzZXRfcHJlZml4KCkgaXMgZGVwcmVjYXRlZDsgdXNlIHRoZSBwcmVmaXggcHJvcGVydHkiLAotICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQotICAgICAgICBzZWxmLnByZWZpeCA9IHByZWZpeAotCi0gICAgZGVmIGdldF9wcmVmaXgoc2VsZik6Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm4gdGhlIHByZWZpeCBmb3IgdGhlIG5vZGUgKHNlZSBMZWFmIGNsYXNzKS4KLQotICAgICAgICBERVBSRUNBVEVEOyB1c2UgdGhlIHByZWZpeCBwcm9wZXJ0eSBkaXJlY3RseS4KLSAgICAgICAgIiIiCi0gICAgICAgIHdhcm5pbmdzLndhcm4oImdldF9wcmVmaXgoKSBpcyBkZXByZWNhdGVkOyB1c2UgdGhlIHByZWZpeCBwcm9wZXJ0eSIsCi0gICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCi0gICAgICAgIHJldHVybiBzZWxmLnByZWZpeAotCiAgICAgZGVmIHJlcGxhY2Uoc2VsZiwgbmV3KToKICAgICAgICAgIiIiUmVwbGFjZSB0aGlzIG5vZGUgd2l0aCBhIG5ldyBvbmUgaW4gdGhlIHBhcmVudC4iIiIKICAgICAgICAgYXNzZXJ0IHNlbGYucGFyZW50IGlzIG5vdCBOb25lLCBzdHIoc2VsZikKZGlmZiAtLWdpdCBhL0xpYi9saWIydG8zL3JlZmFjdG9yLnB5IGIvTGliL2xpYjJ0bzMvcmVmYWN0b3IucHkKaW5kZXggN2NkMDM0YS4uMWU4NTgxMCAxMDA2NDQKLS0tIGEvTGliL2xpYjJ0bzMvcmVmYWN0b3IucHkKKysrIGIvTGliL2xpYjJ0bzMvcmVmYWN0b3IucHkKQEAgLTU2Niw3ICs1NjYsNyBAQAogICAgICAgICBibG9ja19saW5lbm8gPSBOb25lCiAgICAgICAgIGluZGVudCA9IE5vbmUKICAgICAgICAgbGluZW5vID0gMAotICAgICAgICBmb3IgbGluZSBpbiBpbnB1dC5zcGxpdGxpbmVzKFRydWUpOgorICAgICAgICBmb3IgbGluZSBpbiBpbnB1dC5zcGxpdGxpbmVzKGtlZXBlbmRzPVRydWUpOgogICAgICAgICAgICAgbGluZW5vICs9IDEKICAgICAgICAgICAgIGlmIGxpbmUubHN0cmlwKCkuc3RhcnRzd2l0aChzZWxmLlBTMSk6CiAgICAgICAgICAgICAgICAgaWYgYmxvY2sgaXMgbm90IE5vbmU6CkBAIC02MTAsNyArNjEwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBsaW5lbm8sIGVyci5fX2NsYXNzX18uX19uYW1lX18sIGVycikKICAgICAgICAgICAgIHJldHVybiBibG9jawogICAgICAgICBpZiBzZWxmLnJlZmFjdG9yX3RyZWUodHJlZSwgZmlsZW5hbWUpOgotICAgICAgICAgICAgbmV3ID0gc3RyKHRyZWUpLnNwbGl0bGluZXMoVHJ1ZSkKKyAgICAgICAgICAgIG5ldyA9IHN0cih0cmVlKS5zcGxpdGxpbmVzKGtlZXBlbmRzPVRydWUpCiAgICAgICAgICAgICAjIFVuZG8gdGhlIGFkanVzdG1lbnQgb2YgdGhlIGxpbmUgbnVtYmVycyBpbiB3cmFwX3Rva3MoKSBiZWxvdy4KICAgICAgICAgICAgIGNsaXBwZWQsIG5ldyA9IG5ld1s6bGluZW5vLTFdLCBuZXdbbGluZW5vLTE6XQogICAgICAgICAgICAgYXNzZXJ0IGNsaXBwZWQgPT0gWyJcbiJdICogKGxpbmVuby0xKSwgY2xpcHBlZApkaWZmIC0tZ2l0IGEvTGliL2xpYjJ0bzMvdGVzdHMvdGVzdF9weXRyZWUucHkgYi9MaWIvbGliMnRvMy90ZXN0cy90ZXN0X3B5dHJlZS5weQppbmRleCBhYzdkOTAwLi5hMmFiMWYzIDEwMDY0NAotLS0gYS9MaWIvbGliMnRvMy90ZXN0cy90ZXN0X3B5dHJlZS5weQorKysgYi9MaWIvbGliMnRvMy90ZXN0cy90ZXN0X3B5dHJlZS5weQpAQCAtMzEsMjMgKzMxLDYgQEAKIAogICAgICIiIlVuaXQgdGVzdHMgZm9yIG5vZGVzIChCYXNlLCBMZWFmLCBOb2RlKS4iIiIKIAotICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDIsNik6Ci0gICAgICAgICMgd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MgaXMgbmV3IGluIDIuNi4KLSAgICAgICAgZGVmIHRlc3RfZGVwcmVjYXRlZF9wcmVmaXhfbWV0aG9kcyhzZWxmKToKLSAgICAgICAgICAgIGwgPSBweXRyZWUuTGVhZigxMDAsICJmb28iKQotICAgICAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncyhyZWNvcmQ9VHJ1ZSkgYXMgdzoKLSAgICAgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImFsd2F5cyIsIERlcHJlY2F0aW9uV2FybmluZykKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGwuZ2V0X3ByZWZpeCgpLCAiIikKLSAgICAgICAgICAgICAgICBsLnNldF9wcmVmaXgoImhpIikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobC5wcmVmaXgsICJoaSIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih3KSwgMikKLSAgICAgICAgICAgIGZvciB3YXJuaW5nIGluIHc6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHdhcm5pbmcuY2F0ZWdvcnkgaXMgRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIod1swXS5tZXNzYWdlKSwgImdldF9wcmVmaXgoKSBpcyBkZXByZWNhdGVkOyAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1c2UgdGhlIHByZWZpeCBwcm9wZXJ0eSIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cih3WzFdLm1lc3NhZ2UpLCAic2V0X3ByZWZpeCgpIGlzIGRlcHJlY2F0ZWQ7ICIgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVzZSB0aGUgcHJlZml4IHByb3BlcnR5IikKLQogICAgIGRlZiB0ZXN0X2luc3RhbnRpYXRlX2Jhc2Uoc2VsZik6CiAgICAgICAgIGlmIF9fZGVidWdfXzoKICAgICAgICAgICAgICMgVGVzdCB0aGF0IGluc3RhbnRpYXRpbmcgQmFzZSgpIHJhaXNlcyBhbiBBc3NlcnRpb25FcnJvcgpkaWZmIC0tZ2l0IGEvTGliL2xvZ2dpbmcvX19pbml0X18ucHkgYi9MaWIvbG9nZ2luZy9fX2luaXRfXy5weQppbmRleCA0MTkxYjIyLi5lNzkwMThmIDEwMDY0NAotLS0gYS9MaWIvbG9nZ2luZy9fX2luaXRfXy5weQorKysgYi9MaWIvbG9nZ2luZy9fX2luaXRfXy5weQpAQCAtMzYsMTUgKzM2LDkgQEAKICAgICAgICAgICAgJ2dldExvZ1JlY29yZEZhY3RvcnknLCAnc2V0TG9nUmVjb3JkRmFjdG9yeScsICdsYXN0UmVzb3J0J10KIAogdHJ5OgotICAgIGltcG9ydCBjb2RlY3MKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBjb2RlY3MgPSBOb25lCi0KLXRyeToKLSAgICBpbXBvcnQgX3RocmVhZCBhcyB0aHJlYWQKICAgICBpbXBvcnQgdGhyZWFkaW5nCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgdGhyZWFkID0gTm9uZQorZXhjZXB0IEltcG9ydEVycm9yOiAjcHJhZ21hOiBubyBjb3ZlcgorICAgIHRocmVhZGluZyA9IE5vbmUKIAogX19hdXRob3JfXyAgPSAiVmluYXkgU2FqaXAgPHZpbmF5X3NhamlwQHJlZC1kb3ZlLmNvbT4iCiBfX3N0YXR1c19fICA9ICJwcm9kdWN0aW9uIgpAQCAtNjUsMTYgKzU5LDE2IEBACiAgICAgX3NyY2ZpbGUgPSBfX2ZpbGVfXwogX3NyY2ZpbGUgPSBvcy5wYXRoLm5vcm1jYXNlKF9zcmNmaWxlKQogCi0jIG5leHQgYml0IGZpbGNoZWQgZnJvbSAxLjUuMidzIGluc3BlY3QucHkKLWRlZiBjdXJyZW50ZnJhbWUoKToKLSAgICAiIiJSZXR1cm4gdGhlIGZyYW1lIG9iamVjdCBmb3IgdGhlIGNhbGxlcidzIHN0YWNrIGZyYW1lLiIiIgotICAgIHRyeToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uCi0gICAgZXhjZXB0OgotICAgICAgICByZXR1cm4gc3lzLmV4Y19pbmZvKClbMl0udGJfZnJhbWUuZl9iYWNrCiAKLWlmIGhhc2F0dHIoc3lzLCAnX2dldGZyYW1lJyk6IGN1cnJlbnRmcmFtZSA9IGxhbWJkYTogc3lzLl9nZXRmcmFtZSgzKQotIyBkb25lIGZpbGNoaW5nCitpZiBoYXNhdHRyKHN5cywgJ19nZXRmcmFtZScpOgorICAgIGN1cnJlbnRmcmFtZSA9IGxhbWJkYTogc3lzLl9nZXRmcmFtZSgzKQorZWxzZTogI3ByYWdtYTogbm8gY292ZXIKKyAgICBkZWYgY3VycmVudGZyYW1lKCk6CisgICAgICAgICIiIlJldHVybiB0aGUgZnJhbWUgb2JqZWN0IGZvciB0aGUgY2FsbGVyJ3Mgc3RhY2sgZnJhbWUuIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbgorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICByZXR1cm4gc3lzLmV4Y19pbmZvKClbMl0udGJfZnJhbWUuZl9iYWNrCiAKICMgX3NyY2ZpbGUgaXMgb25seSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggc3lzLl9nZXRmcmFtZSgpLgogIyBUbyBwcm92aWRlIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlciB2ZXJzaW9ucyBvZiBQeXRob24sIHNldCBfc3JjZmlsZQpAQCAtOTIsMjIgKzg2LDIyIEBACiAjcmFpc2VFeGNlcHRpb25zIGlzIHVzZWQgdG8gc2VlIGlmIGV4Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHNob3VsZCBiZQogI3Byb3BhZ2F0ZWQKICMKLXJhaXNlRXhjZXB0aW9ucyA9IDEKK3JhaXNlRXhjZXB0aW9ucyA9IFRydWUKIAogIwogIyBJZiB5b3UgZG9uJ3Qgd2FudCB0aHJlYWRpbmcgaW5mb3JtYXRpb24gaW4gdGhlIGxvZywgc2V0IHRoaXMgdG8gemVybwogIwotbG9nVGhyZWFkcyA9IDEKK2xvZ1RocmVhZHMgPSBUcnVlCiAKICMKICMgSWYgeW91IGRvbid0IHdhbnQgbXVsdGlwcm9jZXNzaW5nIGluZm9ybWF0aW9uIGluIHRoZSBsb2csIHNldCB0aGlzIHRvIHplcm8KICMKLWxvZ011bHRpcHJvY2Vzc2luZyA9IDEKK2xvZ011bHRpcHJvY2Vzc2luZyA9IFRydWUKIAogIwogIyBJZiB5b3UgZG9uJ3Qgd2FudCBwcm9jZXNzIGluZm9ybWF0aW9uIGluIHRoZSBsb2csIHNldCB0aGlzIHRvIHplcm8KICMKLWxvZ1Byb2Nlc3NlcyA9IDEKK2xvZ1Byb2Nlc3NlcyA9IFRydWUKIAogIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyAgIExldmVsIHJlbGF0ZWQgc3R1ZmYKQEAgLTE5Nyw5ICsxOTEsOSBAQAogI3RoZSBsb2NrIHdvdWxkIGFscmVhZHkgaGF2ZSBiZWVuIGFjcXVpcmVkIC0gc28gd2UgbmVlZCBhbiBSTG9jay4KICNUaGUgc2FtZSBhcmd1bWVudCBhcHBsaWVzIHRvIExvZ2dlcnMgYW5kIE1hbmFnZXIubG9nZ2VyRGljdC4KICMKLWlmIHRocmVhZDoKK2lmIHRocmVhZGluZzoKICAgICBfbG9jayA9IHRocmVhZGluZy5STG9jaygpCi1lbHNlOgorZWxzZTogI3ByYWdtYTogbm8gY292ZXIKICAgICBfbG9jayA9IE5vbmUKIAogCkBAIC0yNTIsNyArMjQ2LDcgQEAKICAgICAgICAgIyBkdXJpbmcgZm9ybWF0dGluZywgd2UgdGVzdCB0byBzZWUgaWYgdGhlIGFyZyBpcyBwcmVzZW50IHVzaW5nCiAgICAgICAgICMgJ2lmIHNlbGYuYXJnczonLiBJZiB0aGUgZXZlbnQgYmVpbmcgbG9nZ2VkIGlzIGUuZy4gJ1ZhbHVlIGlzICVkJwogICAgICAgICAjIGFuZCBpZiB0aGUgcGFzc2VkIGFyZyBmYWlscyAnaWYgc2VsZi5hcmdzOicgdGhlbiBubyBmb3JtYXR0aW5nCi0gICAgICAgICMgaXMgZG9uZS4gRm9yIGV4YW1wbGUsIGxvZ2dlci53YXJuKCdWYWx1ZSBpcyAlZCcsIDApIHdvdWxkIGxvZworICAgICAgICAjIGlzIGRvbmUuIEZvciBleGFtcGxlLCBsb2dnZXIud2FybmluZygnVmFsdWUgaXMgJWQnLCAwKSB3b3VsZCBsb2cKICAgICAgICAgIyAnVmFsdWUgaXMgJWQnIGluc3RlYWQgb2YgJ1ZhbHVlIGlzIDAnLgogICAgICAgICAjIEZvciB0aGUgdXNlIGNhc2Ugb2YgcGFzc2luZyBhIGRpY3Rpb25hcnksIHRoaXMgc2hvdWxkIG5vdCBiZSBhCiAgICAgICAgICMgcHJvYmxlbS4KQEAgLTI3NiwxMyArMjcwLDEzIEBACiAgICAgICAgIHNlbGYuY3JlYXRlZCA9IGN0CiAgICAgICAgIHNlbGYubXNlY3MgPSAoY3QgLSBpbnQoY3QpKSAqIDEwMDAKICAgICAgICAgc2VsZi5yZWxhdGl2ZUNyZWF0ZWQgPSAoc2VsZi5jcmVhdGVkIC0gX3N0YXJ0VGltZSkgKiAxMDAwCi0gICAgICAgIGlmIGxvZ1RocmVhZHMgYW5kIHRocmVhZDoKLSAgICAgICAgICAgIHNlbGYudGhyZWFkID0gdGhyZWFkLmdldF9pZGVudCgpCisgICAgICAgIGlmIGxvZ1RocmVhZHMgYW5kIHRocmVhZGluZzoKKyAgICAgICAgICAgIHNlbGYudGhyZWFkID0gdGhyZWFkaW5nLmdldF9pZGVudCgpCiAgICAgICAgICAgICBzZWxmLnRocmVhZE5hbWUgPSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5uYW1lCi0gICAgICAgIGVsc2U6CisgICAgICAgIGVsc2U6ICMgcHJhZ21hOiBubyBjb3ZlcgogICAgICAgICAgICAgc2VsZi50aHJlYWQgPSBOb25lCiAgICAgICAgICAgICBzZWxmLnRocmVhZE5hbWUgPSBOb25lCi0gICAgICAgIGlmIG5vdCBsb2dNdWx0aXByb2Nlc3Npbmc6CisgICAgICAgIGlmIG5vdCBsb2dNdWx0aXByb2Nlc3Npbmc6ICMgcHJhZ21hOiBubyBjb3ZlcgogICAgICAgICAgICAgc2VsZi5wcm9jZXNzTmFtZSA9IE5vbmUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYucHJvY2Vzc05hbWUgPSAnTWFpblByb2Nlc3MnCkBAIC0yOTQsNyArMjg4LDcgQEAKICAgICAgICAgICAgICAgICAjIGZvciBhbiBleGFtcGxlCiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBzZWxmLnByb2Nlc3NOYW1lID0gbXAuY3VycmVudF9wcm9jZXNzKCkubmFtZQotICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjogI3ByYWdtYTogbm8gY292ZXIKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICBpZiBsb2dQcm9jZXNzZXMgYW5kIGhhc2F0dHIob3MsICdnZXRwaWQnKToKICAgICAgICAgICAgIHNlbGYucHJvY2VzcyA9IG9zLmdldHBpZCgpCkBAIC00NjYsNiArNDYwLDkgQEAKICAgICAgICAgc2VsZi5fZm10ID0gc2VsZi5fc3R5bGUuX2ZtdAogICAgICAgICBzZWxmLmRhdGVmbXQgPSBkYXRlZm10CiAKKyAgICBkZWZhdWx0X3RpbWVfZm9ybWF0ID0gJyVZLSVtLSVkICVIOiVNOiVTJworICAgIGRlZmF1bHRfbXNlY19mb3JtYXQgPSAnJXMsJTAzZCcKKwogICAgIGRlZiBmb3JtYXRUaW1lKHNlbGYsIHJlY29yZCwgZGF0ZWZtdD1Ob25lKToKICAgICAgICAgIiIiCiAgICAgICAgIFJldHVybiB0aGUgY3JlYXRpb24gdGltZSBvZiB0aGUgc3BlY2lmaWVkIExvZ1JlY29yZCBhcyBmb3JtYXR0ZWQgdGV4dC4KQEAgLTQ4OCw4ICs0ODUsOCBAQAogICAgICAgICBpZiBkYXRlZm10OgogICAgICAgICAgICAgcyA9IHRpbWUuc3RyZnRpbWUoZGF0ZWZtdCwgY3QpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0ID0gdGltZS5zdHJmdGltZSgiJVktJW0tJWQgJUg6JU06JVMiLCBjdCkKLSAgICAgICAgICAgIHMgPSAiJXMsJTAzZCIgJSAodCwgcmVjb3JkLm1zZWNzKSAjIHRoZSB1c2Ugb2YgJSBoZXJlIGlzIGludGVybmFsCisgICAgICAgICAgICB0ID0gdGltZS5zdHJmdGltZShzZWxmLmRlZmF1bHRfdGltZV9mb3JtYXQsIGN0KQorICAgICAgICAgICAgcyA9IHNlbGYuZGVmYXVsdF9tc2VjX2Zvcm1hdCAlICh0LCByZWNvcmQubXNlY3MpCiAgICAgICAgIHJldHVybiBzCiAKICAgICBkZWYgZm9ybWF0RXhjZXB0aW9uKHNlbGYsIGVpKToKQEAgLTY0MiwxMSArNjM5LDExIEBACiAgICAgICAgIHllcy4gSWYgZGVlbWVkIGFwcHJvcHJpYXRlLCB0aGUgcmVjb3JkIG1heSBiZSBtb2RpZmllZCBpbi1wbGFjZS4KICAgICAgICAgIiIiCiAgICAgICAgIGlmIHNlbGYubmxlbiA9PSAwOgotICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIGVsaWYgc2VsZi5uYW1lID09IHJlY29yZC5uYW1lOgotICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIGVsaWYgcmVjb3JkLm5hbWUuZmluZChzZWxmLm5hbWUsIDAsIHNlbGYubmxlbikgIT0gMDoKLSAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgcmV0dXJuIChyZWNvcmQubmFtZVtzZWxmLm5sZW5dID09ICIuIikKIAogY2xhc3MgRmlsdGVyZXIob2JqZWN0KToKQEAgLTY4NiwxNCArNjgzLDE0IEBACiAKICAgICAgICAgICAgQWxsb3cgZmlsdGVycyB0byBiZSBqdXN0IGNhbGxhYmxlcy4KICAgICAgICAgIiIiCi0gICAgICAgIHJ2ID0gMQorICAgICAgICBydiA9IFRydWUKICAgICAgICAgZm9yIGYgaW4gc2VsZi5maWx0ZXJzOgogICAgICAgICAgICAgaWYgaGFzYXR0cihmLCAnZmlsdGVyJyk6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZi5maWx0ZXIocmVjb3JkKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXN1bHQgPSBmKHJlY29yZCkgIyBhc3N1bWUgY2FsbGFibGUgLSB3aWxsIHJhaXNlIGlmIG5vdAogICAgICAgICAgICAgaWYgbm90IHJlc3VsdDoKLSAgICAgICAgICAgICAgICBydiA9IDAKKyAgICAgICAgICAgICAgICBydiA9IEZhbHNlCiAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgcmV0dXJuIHJ2CiAKQEAgLTc3MSw5ICs3NjgsOSBAQAogICAgICAgICAiIiIKICAgICAgICAgQWNxdWlyZSBhIHRocmVhZCBsb2NrIGZvciBzZXJpYWxpemluZyBhY2Nlc3MgdG8gdGhlIHVuZGVybHlpbmcgSS9PLgogICAgICAgICAiIiIKLSAgICAgICAgaWYgdGhyZWFkOgorICAgICAgICBpZiB0aHJlYWRpbmc6CiAgICAgICAgICAgICBzZWxmLmxvY2sgPSB0aHJlYWRpbmcuUkxvY2soKQotICAgICAgICBlbHNlOgorICAgICAgICBlbHNlOiAjcHJhZ21hOiBubyBjb3ZlcgogICAgICAgICAgICAgc2VsZi5sb2NrID0gTm9uZQogCiAgICAgZGVmIGFjcXVpcmUoc2VsZik6CkBAIC03OTIsNyArNzg5LDcgQEAKIAogICAgIGRlZiBzZXRMZXZlbChzZWxmLCBsZXZlbCk6CiAgICAgICAgICIiIgotICAgICAgICBTZXQgdGhlIGxvZ2dpbmcgbGV2ZWwgb2YgdGhpcyBoYW5kbGVyLgorICAgICAgICBTZXQgdGhlIGxvZ2dpbmcgbGV2ZWwgb2YgdGhpcyBoYW5kbGVyLiAgbGV2ZWwgbXVzdCBiZSBhbiBpbnQgb3IgYSBzdHIuCiAgICAgICAgICIiIgogICAgICAgICBzZWxmLmxldmVsID0gX2NoZWNrTGV2ZWwobGV2ZWwpCiAKQEAgLTg4OCw3ICs4ODUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwgc3lzLnN0ZGVycikKICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdMb2dnZWQgZnJvbSBmaWxlICVzLCBsaW5lICVzXG4nICUgKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmZpbGVuYW1lLCByZWNvcmQubGluZW5vKSkKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6ICNwcmFnbWE6IG5vIGNvdmVyCiAgICAgICAgICAgICAgICAgcGFzcyAgICAjIHNlZSBpc3N1ZSA1OTcxCiAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgIGRlbCBlaQpAQCAtOTQxLDcgKzkzOCw3IEBACiAgICAgICAgICAgICBzdHJlYW0ud3JpdGUobXNnKQogICAgICAgICAgICAgc3RyZWFtLndyaXRlKHNlbGYudGVybWluYXRvcikKICAgICAgICAgICAgIHNlbGYuZmx1c2goKQotICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KToKKyAgICAgICAgZXhjZXB0IChLZXlib2FyZEludGVycnVwdCwgU3lzdGVtRXhpdCk6ICNwcmFnbWE6IG5vIGNvdmVyCiAgICAgICAgICAgICByYWlzZQogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBzZWxmLmhhbmRsZUVycm9yKHJlY29yZCkKQEAgLTk1MCwxNCArOTQ3LDEyIEBACiAgICAgIiIiCiAgICAgQSBoYW5kbGVyIGNsYXNzIHdoaWNoIHdyaXRlcyBmb3JtYXR0ZWQgbG9nZ2luZyByZWNvcmRzIHRvIGRpc2sgZmlsZXMuCiAgICAgIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBtb2RlPSdhJywgZW5jb2Rpbmc9Tm9uZSwgZGVsYXk9MCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBtb2RlPSdhJywgZW5jb2Rpbmc9Tm9uZSwgZGVsYXk9RmFsc2UpOgogICAgICAgICAiIiIKICAgICAgICAgT3BlbiB0aGUgc3BlY2lmaWVkIGZpbGUgYW5kIHVzZSBpdCBhcyB0aGUgc3RyZWFtIGZvciBsb2dnaW5nLgogICAgICAgICAiIiIKICAgICAgICAgI2tlZXAgdGhlIGFic29sdXRlIHBhdGgsIG90aGVyd2lzZSBkZXJpdmVkIGNsYXNzZXMgd2hpY2ggdXNlIHRoaXMKICAgICAgICAgI21heSBjb21lIGEgY3JvcHBlciB3aGVuIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBjaGFuZ2VzCi0gICAgICAgIGlmIGNvZGVjcyBpcyBOb25lOgotICAgICAgICAgICAgZW5jb2RpbmcgPSBOb25lCiAgICAgICAgIHNlbGYuYmFzZUZpbGVuYW1lID0gb3MucGF0aC5hYnNwYXRoKGZpbGVuYW1lKQogICAgICAgICBzZWxmLm1vZGUgPSBtb2RlCiAgICAgICAgIHNlbGYuZW5jb2RpbmcgPSBlbmNvZGluZwpAQCAtOTg5LDExICs5ODQsNyBAQAogICAgICAgICBPcGVuIHRoZSBjdXJyZW50IGJhc2UgZmlsZSB3aXRoIHRoZSAob3JpZ2luYWwpIG1vZGUgYW5kIGVuY29kaW5nLgogICAgICAgICBSZXR1cm4gdGhlIHJlc3VsdGluZyBzdHJlYW0uCiAgICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLmVuY29kaW5nIGlzIE5vbmU6Ci0gICAgICAgICAgICBzdHJlYW0gPSBvcGVuKHNlbGYuYmFzZUZpbGVuYW1lLCBzZWxmLm1vZGUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzdHJlYW0gPSBjb2RlY3Mub3BlbihzZWxmLmJhc2VGaWxlbmFtZSwgc2VsZi5tb2RlLCBzZWxmLmVuY29kaW5nKQotICAgICAgICByZXR1cm4gc3RyZWFtCisgICAgICAgIHJldHVybiBvcGVuKHNlbGYuYmFzZUZpbGVuYW1lLCBzZWxmLm1vZGUsIGVuY29kaW5nPXNlbGYuZW5jb2RpbmcpCiAKICAgICBkZWYgZW1pdChzZWxmLCByZWNvcmQpOgogICAgICAgICAiIiIKQEAgLTEyMDUsMTMgKzExOTYsMTMgQEAKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAgICAgICBzZWxmLmxldmVsID0gX2NoZWNrTGV2ZWwobGV2ZWwpCiAgICAgICAgIHNlbGYucGFyZW50ID0gTm9uZQotICAgICAgICBzZWxmLnByb3BhZ2F0ZSA9IDEKKyAgICAgICAgc2VsZi5wcm9wYWdhdGUgPSBUcnVlCiAgICAgICAgIHNlbGYuaGFuZGxlcnMgPSBbXQotICAgICAgICBzZWxmLmRpc2FibGVkID0gMAorICAgICAgICBzZWxmLmRpc2FibGVkID0gRmFsc2UKIAogICAgIGRlZiBzZXRMZXZlbChzZWxmLCBsZXZlbCk6CiAgICAgICAgICIiIgotICAgICAgICBTZXQgdGhlIGxvZ2dpbmcgbGV2ZWwgb2YgdGhpcyBsb2dnZXIuCisgICAgICAgIFNldCB0aGUgbG9nZ2luZyBsZXZlbCBvZiB0aGlzIGxvZ2dlci4gIGxldmVsIG11c3QgYmUgYW4gaW50IG9yIGEgc3RyLgogICAgICAgICAiIiIKICAgICAgICAgc2VsZi5sZXZlbCA9IF9jaGVja0xldmVsKGxldmVsKQogCkBAIC0xMjUxLDcgKzEyNDIsMTAgQEAKICAgICAgICAgaWYgc2VsZi5pc0VuYWJsZWRGb3IoV0FSTklORyk6CiAgICAgICAgICAgICBzZWxmLl9sb2coV0FSTklORywgbXNnLCBhcmdzLCAqKmt3YXJncykKIAotICAgIHdhcm4gPSB3YXJuaW5nCisgICAgZGVmIHdhcm4oc2VsZiwgbXNnLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICB3YXJuaW5ncy53YXJuKCJUaGUgJ3dhcm4nIG1ldGhvZCBpcyBkZXByZWNhdGVkLCAiCisgICAgICAgICAgICAidXNlICd3YXJuaW5nJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICBzZWxmLndhcm5pbmcobXNnLCAqYXJncywgKiprd2FyZ3MpCiAKICAgICBkZWYgZXJyb3Ioc2VsZiwgbXNnLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICAiIiIKQEAgLTEzNjAsOSArMTM1NCw5IEBACiAgICAgICAgICAgICAjSXJvblB5dGhvbiBjYW4gdXNlIGxvZ2dpbmcuCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZm4sIGxubywgZnVuYywgc2luZm8gPSBzZWxmLmZpbmRDYWxsZXIoc3RhY2tfaW5mbykKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6ICMgcHJhZ21hOiBubyBjb3ZlcgogICAgICAgICAgICAgICAgIGZuLCBsbm8sIGZ1bmMgPSAiKHVua25vd24gZmlsZSkiLCAwLCAiKHVua25vd24gZnVuY3Rpb24pIgotICAgICAgICBlbHNlOgorICAgICAgICBlbHNlOiAjIHByYWdtYTogbm8gY292ZXIKICAgICAgICAgICAgIGZuLCBsbm8sIGZ1bmMgPSAiKHVua25vd24gZmlsZSkiLCAwLCAiKHVua25vd24gZnVuY3Rpb24pIgogICAgICAgICBpZiBleGNfaW5mbzoKICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4Y19pbmZvLCB0dXBsZSk6CkBAIC0xNDc0LDcgKzE0NjgsNyBAQAogICAgICAgICBJcyB0aGlzIGxvZ2dlciBlbmFibGVkIGZvciBsZXZlbCAnbGV2ZWwnPwogICAgICAgICAiIiIKICAgICAgICAgaWYgc2VsZi5tYW5hZ2VyLmRpc2FibGUgPj0gbGV2ZWw6Ci0gICAgICAgICAgICByZXR1cm4gMAorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHJldHVybiBsZXZlbCA+PSBzZWxmLmdldEVmZmVjdGl2ZUxldmVsKCkKIAogICAgIGRlZiBnZXRDaGlsZChzZWxmLCBzdWZmaXgpOgpAQCAtMTU2NCw3ICsxNTU4LDEwIEBACiAgICAgICAgICIiIgogICAgICAgICBzZWxmLmxvZyhXQVJOSU5HLCBtc2csICphcmdzLCAqKmt3YXJncykKIAotICAgIHdhcm4gPSB3YXJuaW5nCisgICAgZGVmIHdhcm4oc2VsZiwgbXNnLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICB3YXJuaW5ncy53YXJuKCJUaGUgJ3dhcm4nIG1ldGhvZCBpcyBkZXByZWNhdGVkLCAiCisgICAgICAgICAgICAidXNlICd3YXJuaW5nJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICBzZWxmLndhcm5pbmcobXNnLCAqYXJncywgKiprd2FyZ3MpCiAKICAgICBkZWYgZXJyb3Ioc2VsZiwgbXNnLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICAiIiIKQEAgLTE1NzYsNyArMTU3Myw3IEBACiAgICAgICAgICIiIgogICAgICAgICBEZWxlZ2F0ZSBhbiBleGNlcHRpb24gY2FsbCB0byB0aGUgdW5kZXJseWluZyBsb2dnZXIuCiAgICAgICAgICIiIgotICAgICAgICBrd2FyZ3NbImV4Y19pbmZvIl0gPSAxCisgICAgICAgIGt3YXJnc1siZXhjX2luZm8iXSA9IFRydWUKICAgICAgICAgc2VsZi5sb2coRVJST1IsIG1zZywgKmFyZ3MsICoqa3dhcmdzKQogCiAgICAgZGVmIGNyaXRpY2FsKHNlbGYsIG1zZywgKmFyZ3MsICoqa3dhcmdzKToKQEAgLTE2NTksNiArMTY1NiwxMCBAQAogICAgIHN0cmVhbSAgICBVc2UgdGhlIHNwZWNpZmllZCBzdHJlYW0gdG8gaW5pdGlhbGl6ZSB0aGUgU3RyZWFtSGFuZGxlci4gTm90ZQogICAgICAgICAgICAgICB0aGF0IHRoaXMgYXJndW1lbnQgaXMgaW5jb21wYXRpYmxlIHdpdGggJ2ZpbGVuYW1lJyAtIGlmIGJvdGgKICAgICAgICAgICAgICAgYXJlIHByZXNlbnQsICdzdHJlYW0nIGlzIGlnbm9yZWQuCisgICAgaGFuZGxlcnMgIElmIHNwZWNpZmllZCwgdGhpcyBzaG91bGQgYmUgYW4gaXRlcmFibGUgb2YgYWxyZWFkeSBjcmVhdGVkCisgICAgICAgICAgICAgIGhhbmRsZXJzLCB3aGljaCB3aWxsIGJlIGFkZGVkIHRvIHRoZSByb290IGhhbmRsZXIuIEFueSBoYW5kbGVyCisgICAgICAgICAgICAgIGluIHRoZSBsaXN0IHdoaWNoIGRvZXMgbm90IGhhdmUgYSBmb3JtYXR0ZXIgYXNzaWduZWQgd2lsbCBiZQorICAgICAgICAgICAgICBhc3NpZ25lZCB0aGUgZm9ybWF0dGVyIGNyZWF0ZWQgaW4gdGhpcyBmdW5jdGlvbi4KIAogICAgIE5vdGUgdGhhdCB5b3UgY291bGQgc3BlY2lmeSBhIHN0cmVhbSBjcmVhdGVkIHVzaW5nIG9wZW4oZmlsZW5hbWUsIG1vZGUpCiAgICAgcmF0aGVyIHRoYW4gcGFzc2luZyB0aGUgZmlsZW5hbWUgYW5kIG1vZGUgaW4uIEhvd2V2ZXIsIGl0IHNob3VsZCBiZQpAQCAtMTY2NiwyNyArMTY2Nyw0NyBAQAogICAgIHVzaW5nIHN5cy5zdGRvdXQgb3Igc3lzLnN0ZGVyciksIHdoZXJlYXMgRmlsZUhhbmRsZXIgY2xvc2VzIGl0cyBzdHJlYW0KICAgICB3aGVuIHRoZSBoYW5kbGVyIGlzIGNsb3NlZC4KIAotICAgIC4uIHZlcnNpb25jaGFuZ2VkOiAzLjIKKyAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDMuMgogICAgICAgIEFkZGVkIHRoZSBgYHN0eWxlYGAgcGFyYW1ldGVyLgorCisgICAgLi4gdmVyc2lvbmNoYW5nZWQ6OiAzLjMKKyAgICAgICBBZGRlZCB0aGUgYGBoYW5kbGVyc2BgIHBhcmFtZXRlci4gQSBgYFZhbHVlRXJyb3JgYCBpcyBub3cgdGhyb3duIGZvcgorICAgICAgIGluY29tcGF0aWJsZSBhcmd1bWVudHMgKGUuZy4gYGBoYW5kbGVyc2BgIHNwZWNpZmllZCB0b2dldGhlciB3aXRoCisgICAgICAgYGBmaWxlbmFtZWBgL2BgZmlsZW1vZGVgYCwgb3IgYGBmaWxlbmFtZWBgL2BgZmlsZW1vZGVgYCBzcGVjaWZpZWQKKyAgICAgICB0b2dldGhlciB3aXRoIGBgc3RyZWFtYGAsIG9yIGBgaGFuZGxlcnNgYCBzcGVjaWZpZWQgdG9nZXRoZXIgd2l0aAorICAgICAgIGBgc3RyZWFtYGAuCiAgICAgIiIiCiAgICAgIyBBZGQgdGhyZWFkIHNhZmV0eSBpbiBjYXNlIHNvbWVvbmUgbWlzdGFrZW5seSBjYWxscwogICAgICMgYmFzaWNDb25maWcoKSBmcm9tIG11bHRpcGxlIHRocmVhZHMKICAgICBfYWNxdWlyZUxvY2soKQogICAgIHRyeToKICAgICAgICAgaWYgbGVuKHJvb3QuaGFuZGxlcnMpID09IDA6Ci0gICAgICAgICAgICBmaWxlbmFtZSA9IGt3YXJncy5nZXQoImZpbGVuYW1lIikKLSAgICAgICAgICAgIGlmIGZpbGVuYW1lOgotICAgICAgICAgICAgICAgIG1vZGUgPSBrd2FyZ3MuZ2V0KCJmaWxlbW9kZSIsICdhJykKLSAgICAgICAgICAgICAgICBoZGxyID0gRmlsZUhhbmRsZXIoZmlsZW5hbWUsIG1vZGUpCisgICAgICAgICAgICBoYW5kbGVycyA9IGt3YXJncy5nZXQoImhhbmRsZXJzIikKKyAgICAgICAgICAgIGlmIGhhbmRsZXJzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgaWYgInN0cmVhbSIgaW4ga3dhcmdzIGFuZCAiZmlsZW5hbWUiIGluIGt3YXJnczoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJ3N0cmVhbScgYW5kICdmaWxlbmFtZScgc2hvdWxkIG5vdCBiZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNwZWNpZmllZCB0b2dldGhlciIpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHN0cmVhbSA9IGt3YXJncy5nZXQoInN0cmVhbSIpCi0gICAgICAgICAgICAgICAgaGRsciA9IFN0cmVhbUhhbmRsZXIoc3RyZWFtKQorICAgICAgICAgICAgICAgIGlmICJzdHJlYW0iIGluIGt3YXJncyBvciAiZmlsZW5hbWUiIGluIGt3YXJnczoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJ3N0cmVhbScgb3IgJ2ZpbGVuYW1lJyBzaG91bGQgbm90IGJlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BlY2lmaWVkIHRvZ2V0aGVyIHdpdGggJ2hhbmRsZXJzJyIpCisgICAgICAgICAgICBpZiBoYW5kbGVycyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0ga3dhcmdzLmdldCgiZmlsZW5hbWUiKQorICAgICAgICAgICAgICAgIGlmIGZpbGVuYW1lOgorICAgICAgICAgICAgICAgICAgICBtb2RlID0ga3dhcmdzLmdldCgiZmlsZW1vZGUiLCAnYScpCisgICAgICAgICAgICAgICAgICAgIGggPSBGaWxlSGFuZGxlcihmaWxlbmFtZSwgbW9kZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzdHJlYW0gPSBrd2FyZ3MuZ2V0KCJzdHJlYW0iKQorICAgICAgICAgICAgICAgICAgICBoID0gU3RyZWFtSGFuZGxlcihzdHJlYW0pCisgICAgICAgICAgICAgICAgaGFuZGxlcnMgPSBbaF0KICAgICAgICAgICAgIGZzID0ga3dhcmdzLmdldCgiZm9ybWF0IiwgQkFTSUNfRk9STUFUKQogICAgICAgICAgICAgZGZzID0ga3dhcmdzLmdldCgiZGF0ZWZtdCIsIE5vbmUpCiAgICAgICAgICAgICBzdHlsZSA9IGt3YXJncy5nZXQoInN0eWxlIiwgJyUnKQogICAgICAgICAgICAgZm10ID0gRm9ybWF0dGVyKGZzLCBkZnMsIHN0eWxlKQotICAgICAgICAgICAgaGRsci5zZXRGb3JtYXR0ZXIoZm10KQotICAgICAgICAgICAgcm9vdC5hZGRIYW5kbGVyKGhkbHIpCisgICAgICAgICAgICBmb3IgaCBpbiBoYW5kbGVyczoKKyAgICAgICAgICAgICAgICBpZiBoLmZvcm1hdHRlciBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICBoLnNldEZvcm1hdHRlcihmbXQpCisgICAgICAgICAgICAgICAgcm9vdC5hZGRIYW5kbGVyKGgpCiAgICAgICAgICAgICBsZXZlbCA9IGt3YXJncy5nZXQoImxldmVsIikKICAgICAgICAgICAgIGlmIGxldmVsIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIHJvb3Quc2V0TGV2ZWwobGV2ZWwpCkBAIC0xNzUwLDcgKzE3NzEsMTAgQEAKICAgICAgICAgYmFzaWNDb25maWcoKQogICAgIHJvb3Qud2FybmluZyhtc2csICphcmdzLCAqKmt3YXJncykKIAotd2FybiA9IHdhcm5pbmcKK2RlZiB3YXJuKG1zZywgKmFyZ3MsICoqa3dhcmdzKToKKyAgICB3YXJuaW5ncy53YXJuKCJUaGUgJ3dhcm4nIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQsICIKKyAgICAgICAgInVzZSAnd2FybmluZycgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICB3YXJuaW5nKG1zZywgKmFyZ3MsICoqa3dhcmdzKQogCiBkZWYgaW5mbyhtc2csICphcmdzLCAqKmt3YXJncyk6CiAgICAgIiIiCkBAIC0xODM1LDEwICsxODU5LDEwIEBACiAgICAgcGFja2FnZS4KICAgICAiIiIKICAgICBkZWYgaGFuZGxlKHNlbGYsIHJlY29yZCk6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgIiIiU3R1Yi4iIiIKIAogICAgIGRlZiBlbWl0KHNlbGYsIHJlY29yZCk6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgIiIiU3R1Yi4iIiIKIAogICAgIGRlZiBjcmVhdGVMb2NrKHNlbGYpOgogICAgICAgICBzZWxmLmxvY2sgPSBOb25lCmRpZmYgLS1naXQgYS9MaWIvbG9nZ2luZy9jb25maWcucHkgYi9MaWIvbG9nZ2luZy9jb25maWcucHkKaW5kZXggMzczZGEyYi4uNWVmNWM5MSAxMDA2NDQKLS0tIGEvTGliL2xvZ2dpbmcvY29uZmlnLnB5CisrKyBiL0xpYi9sb2dnaW5nL2NvbmZpZy5weQpAQCAtMjQsMTMgKzI0LDEzIEBACiBUbyB1c2UsIHNpbXBseSAnaW1wb3J0IGxvZ2dpbmcnIGFuZCBsb2cgYXdheSEKICIiIgogCi1pbXBvcnQgc3lzLCBsb2dnaW5nLCBsb2dnaW5nLmhhbmRsZXJzLCBzb2NrZXQsIHN0cnVjdCwgb3MsIHRyYWNlYmFjaywgcmUKLWltcG9ydCB0eXBlcywgaW8KK2ltcG9ydCBzeXMsIGxvZ2dpbmcsIGxvZ2dpbmcuaGFuZGxlcnMsIHNvY2tldCwgc3RydWN0LCB0cmFjZWJhY2ssIHJlCitpbXBvcnQgaW8KIAogdHJ5OgogICAgIGltcG9ydCBfdGhyZWFkIGFzIHRocmVhZAogICAgIGltcG9ydCB0aHJlYWRpbmcKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKK2V4Y2VwdCBJbXBvcnRFcnJvcjogI3ByYWdtYTogbm8gY292ZXIKICAgICB0aHJlYWQgPSBOb25lCiAKIGZyb20gc29ja2V0c2VydmVyIGltcG9ydCBUaHJlYWRpbmdUQ1BTZXJ2ZXIsIFN0cmVhbVJlcXVlc3RIYW5kbGVyCkBAIC05OCw5ICs5OCw2IEBACiBkZWYgX3N0cmlwX3NwYWNlcyhhbGlzdCk6CiAgICAgcmV0dXJuIG1hcChsYW1iZGEgeDogeC5zdHJpcCgpLCBhbGlzdCkKIAotZGVmIF9lbmNvZGVkKHMpOgotICAgIHJldHVybiBzIGlmIGlzaW5zdGFuY2Uocywgc3RyKSBlbHNlIHMuZW5jb2RlKCd1dGYtOCcpCi0KIGRlZiBfY3JlYXRlX2Zvcm1hdHRlcnMoY3ApOgogICAgICIiIkNyZWF0ZSBhbmQgcmV0dXJuIGZvcm1hdHRlcnMiIiIKICAgICBmbGlzdCA9IGNwWyJmb3JtYXR0ZXJzIl1bImtleXMiXQpAQCAtMjE1LDcgKzIxMiw3IEBACiAgICAgI2F2b2lkIGRpc2FibGluZyBjaGlsZCBsb2dnZXJzIG9mIGV4cGxpY2l0bHkKICAgICAjbmFtZWQgbG9nZ2Vycy4gV2l0aCBhIHNvcnRlZCBsaXN0IGl0IGlzIGVhc2llcgogICAgICN0byBmaW5kIHRoZSBjaGlsZCBsb2dnZXJzLgotICAgIGV4aXN0aW5nLnNvcnQoa2V5PV9lbmNvZGVkKQorICAgIGV4aXN0aW5nLnNvcnQoKQogICAgICNXZSdsbCBrZWVwIHRoZSBsaXN0IG9mIGV4aXN0aW5nIGxvZ2dlcnMKICAgICAjd2hpY2ggYXJlIGNoaWxkcmVuIG9mIG5hbWVkIGxvZ2dlcnMgaGVyZS4uLgogICAgIGNoaWxkX2xvZ2dlcnMgPSBbXQpAQCAtNTg4LDcgKzU4NSw3IEBACiAgICAgICAgICAgICAgICAgI2F2b2lkIGRpc2FibGluZyBjaGlsZCBsb2dnZXJzIG9mIGV4cGxpY2l0bHkKICAgICAgICAgICAgICAgICAjbmFtZWQgbG9nZ2Vycy4gV2l0aCBhIHNvcnRlZCBsaXN0IGl0IGlzIGVhc2llcgogICAgICAgICAgICAgICAgICN0byBmaW5kIHRoZSBjaGlsZCBsb2dnZXJzLgotICAgICAgICAgICAgICAgIGV4aXN0aW5nLnNvcnQoa2V5PV9lbmNvZGVkKQorICAgICAgICAgICAgICAgIGV4aXN0aW5nLnNvcnQoKQogICAgICAgICAgICAgICAgICNXZSdsbCBrZWVwIHRoZSBsaXN0IG9mIGV4aXN0aW5nIGxvZ2dlcnMKICAgICAgICAgICAgICAgICAjd2hpY2ggYXJlIGNoaWxkcmVuIG9mIG5hbWVkIGxvZ2dlcnMgaGVyZS4uLgogICAgICAgICAgICAgICAgIGNoaWxkX2xvZ2dlcnMgPSBbXQpAQCAtNzg2LDcgKzc4Myw3IEBACiAgICAgYW5kIHdoaWNoIHlvdSBjYW4gam9pbigpIHdoZW4gYXBwcm9wcmlhdGUuIFRvIHN0b3AgdGhlIHNlcnZlciwgY2FsbAogICAgIHN0b3BMaXN0ZW5pbmcoKS4KICAgICAiIiIKLSAgICBpZiBub3QgdGhyZWFkOgorICAgIGlmIG5vdCB0aHJlYWQ6ICNwcmFnbWE6IG5vIGNvdmVyCiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImxpc3RlbigpIG5lZWRzIHRocmVhZGluZyB0byB3b3JrIikKIAogICAgIGNsYXNzIENvbmZpZ1N0cmVhbUhhbmRsZXIoU3RyZWFtUmVxdWVzdEhhbmRsZXIpOgpAQCAtODA0LDcgKzgwMSw2IEBACiAgICAgICAgICAgICBzdHJ1Y3QucGFjaygiPkwiLCBuKSwgZm9sbG93ZWQgYnkgdGhlIGNvbmZpZyBmaWxlLgogICAgICAgICAgICAgVXNlcyBmaWxlQ29uZmlnKCkgdG8gZG8gdGhlIGdydW50IHdvcmsuCiAgICAgICAgICAgICAiIiIKLSAgICAgICAgICAgIGltcG9ydCB0ZW1wZmlsZQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGNvbm4gPSBzZWxmLmNvbm5lY3Rpb24KICAgICAgICAgICAgICAgICBjaHVuayA9IGNvbm4ucmVjdig0KQpAQCAtODI1LDcgKzgyMSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlID0gaW8uU3RyaW5nSU8oY2h1bmspCiAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZUNvbmZpZyhmaWxlKQotICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IChLZXlib2FyZEludGVycnVwdCwgU3lzdGVtRXhpdCk6CisgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KTogI3ByYWdtYTogbm8gY292ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQogICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQpkaWZmIC0tZ2l0IGEvTGliL2xvZ2dpbmcvaGFuZGxlcnMucHkgYi9MaWIvbG9nZ2luZy9oYW5kbGVycy5weQppbmRleCBkNGRmNWM2Li4xYmFkODU2IDEwMDY0NAotLS0gYS9MaWIvbG9nZ2luZy9oYW5kbGVycy5weQorKysgYi9MaWIvbG9nZ2luZy9oYW5kbGVycy5weQpAQCAtMjQsMTggKzI0LDE0IEBACiAiIiIKIAogaW1wb3J0IGVycm5vLCBsb2dnaW5nLCBzb2NrZXQsIG9zLCBwaWNrbGUsIHN0cnVjdCwgdGltZSwgcmUKK2Zyb20gY29kZWNzIGltcG9ydCBCT01fVVRGOAogZnJvbSBzdGF0IGltcG9ydCBTVF9ERVYsIFNUX0lOTywgU1RfTVRJTUUKIGltcG9ydCBxdWV1ZQogdHJ5OgogICAgIGltcG9ydCB0aHJlYWRpbmcKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKK2V4Y2VwdCBJbXBvcnRFcnJvcjogI3ByYWdtYTogbm8gY292ZXIKICAgICB0aHJlYWRpbmcgPSBOb25lCiAKLXRyeToKLSAgICBpbXBvcnQgY29kZWNzCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgY29kZWNzID0gTm9uZQotCiAjCiAjIFNvbWUgY29uc3RhbnRzLi4uCiAjCkBAIC01NSwxNSArNTEsMTUgQEAKICAgICBOb3QgbWVhbnQgdG8gYmUgaW5zdGFudGlhdGVkIGRpcmVjdGx5LiAgSW5zdGVhZCwgdXNlIFJvdGF0aW5nRmlsZUhhbmRsZXIKICAgICBvciBUaW1lZFJvdGF0aW5nRmlsZUhhbmRsZXIuCiAgICAgIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBtb2RlLCBlbmNvZGluZz1Ob25lLCBkZWxheT0wKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUsIG1vZGUsIGVuY29kaW5nPU5vbmUsIGRlbGF5PUZhbHNlKToKICAgICAgICAgIiIiCiAgICAgICAgIFVzZSB0aGUgc3BlY2lmaWVkIGZpbGVuYW1lIGZvciBzdHJlYW1lZCBsb2dnaW5nCiAgICAgICAgICIiIgotICAgICAgICBpZiBjb2RlY3MgaXMgTm9uZToKLSAgICAgICAgICAgIGVuY29kaW5nID0gTm9uZQogICAgICAgICBsb2dnaW5nLkZpbGVIYW5kbGVyLl9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBtb2RlLCBlbmNvZGluZywgZGVsYXkpCiAgICAgICAgIHNlbGYubW9kZSA9IG1vZGUKICAgICAgICAgc2VsZi5lbmNvZGluZyA9IGVuY29kaW5nCisgICAgICAgIHNlbGYubmFtZXIgPSBOb25lCisgICAgICAgIHNlbGYucm90YXRvciA9IE5vbmUKIAogICAgIGRlZiBlbWl0KHNlbGYsIHJlY29yZCk6CiAgICAgICAgICIiIgpAQCAtNzYsMTcgKzcyLDU1IEBACiAgICAgICAgICAgICBpZiBzZWxmLnNob3VsZFJvbGxvdmVyKHJlY29yZCk6CiAgICAgICAgICAgICAgICAgc2VsZi5kb1JvbGxvdmVyKCkKICAgICAgICAgICAgIGxvZ2dpbmcuRmlsZUhhbmRsZXIuZW1pdChzZWxmLCByZWNvcmQpCi0gICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOgorICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KTogI3ByYWdtYTogbm8gY292ZXIKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgIHNlbGYuaGFuZGxlRXJyb3IocmVjb3JkKQogCisgICAgZGVmIHJvdGF0aW9uX2ZpbGVuYW1lKHNlbGYsIGRlZmF1bHRfbmFtZSk6CisgICAgICAgICIiIgorICAgICAgICBNb2RpZnkgdGhlIGZpbGVuYW1lIG9mIGEgbG9nIGZpbGUgd2hlbiByb3RhdGluZy4KKworICAgICAgICBUaGlzIGlzIHByb3ZpZGVkIHNvIHRoYXQgYSBjdXN0b20gZmlsZW5hbWUgY2FuIGJlIHByb3ZpZGVkLgorCisgICAgICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGNhbGxzIHRoZSAnbmFtZXInIGF0dHJpYnV0ZSBvZiB0aGUKKyAgICAgICAgaGFuZGxlciwgaWYgaXQncyBjYWxsYWJsZSwgcGFzc2luZyB0aGUgZGVmYXVsdCBuYW1lIHRvCisgICAgICAgIGl0LiBJZiB0aGUgYXR0cmlidXRlIGlzbid0IGNhbGxhYmxlICh0aGUgZGVmYXVsdCBpcyBOb25lKSwgdGhlIG5hbWUKKyAgICAgICAgaXMgcmV0dXJuZWQgdW5jaGFuZ2VkLgorCisgICAgICAgIDpwYXJhbSBkZWZhdWx0X25hbWU6IFRoZSBkZWZhdWx0IG5hbWUgZm9yIHRoZSBsb2cgZmlsZS4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBjYWxsYWJsZShzZWxmLm5hbWVyKToKKyAgICAgICAgICAgIHJlc3VsdCA9IGRlZmF1bHRfbmFtZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5uYW1lcihkZWZhdWx0X25hbWUpCisgICAgICAgIHJldHVybiByZXN1bHQKKworICAgIGRlZiByb3RhdGUoc2VsZiwgc291cmNlLCBkZXN0KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcm90YXRpbmcsIHJvdGF0ZSB0aGUgY3VycmVudCBsb2cuCisKKyAgICAgICAgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gY2FsbHMgdGhlICdyb3RhdG9yJyBhdHRyaWJ1dGUgb2YgdGhlCisgICAgICAgIGhhbmRsZXIsIGlmIGl0J3MgY2FsbGFibGUsIHBhc3NpbmcgdGhlIHNvdXJjZSBhbmQgZGVzdCBhcmd1bWVudHMgdG8KKyAgICAgICAgaXQuIElmIHRoZSBhdHRyaWJ1dGUgaXNuJ3QgY2FsbGFibGUgKHRoZSBkZWZhdWx0IGlzIE5vbmUpLCB0aGUgc291cmNlCisgICAgICAgIGlzIHNpbXBseSByZW5hbWVkIHRvIHRoZSBkZXN0aW5hdGlvbi4KKworICAgICAgICA6cGFyYW0gc291cmNlOiBUaGUgc291cmNlIGZpbGVuYW1lLiBUaGlzIGlzIG5vcm1hbGx5IHRoZSBiYXNlCisgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBlLmcuICd0ZXN0LmxvZycKKyAgICAgICAgOnBhcmFtIGRlc3Q6ICAgVGhlIGRlc3RpbmF0aW9uIGZpbGVuYW1lLiBUaGlzIGlzIG5vcm1hbGx5CisgICAgICAgICAgICAgICAgICAgICAgIHdoYXQgdGhlIHNvdXJjZSBpcyByb3RhdGVkIHRvLCBlLmcuICd0ZXN0LmxvZy4xJy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBjYWxsYWJsZShzZWxmLnJvdGF0b3IpOgorICAgICAgICAgICAgb3MucmVuYW1lKHNvdXJjZSwgZGVzdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYucm90YXRvcihzb3VyY2UsIGRlc3QpCisKIGNsYXNzIFJvdGF0aW5nRmlsZUhhbmRsZXIoQmFzZVJvdGF0aW5nSGFuZGxlcik6CiAgICAgIiIiCiAgICAgSGFuZGxlciBmb3IgbG9nZ2luZyB0byBhIHNldCBvZiBmaWxlcywgd2hpY2ggc3dpdGNoZXMgZnJvbSBvbmUgZmlsZQogICAgIHRvIHRoZSBuZXh0IHdoZW4gdGhlIGN1cnJlbnQgZmlsZSByZWFjaGVzIGEgY2VydGFpbiBzaXplLgogICAgICIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgbW9kZT0nYScsIG1heEJ5dGVzPTAsIGJhY2t1cENvdW50PTAsIGVuY29kaW5nPU5vbmUsIGRlbGF5PTApOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgbW9kZT0nYScsIG1heEJ5dGVzPTAsIGJhY2t1cENvdW50PTAsIGVuY29kaW5nPU5vbmUsIGRlbGF5PUZhbHNlKToKICAgICAgICAgIiIiCiAgICAgICAgIE9wZW4gdGhlIHNwZWNpZmllZCBmaWxlIGFuZCB1c2UgaXQgYXMgdGhlIHN0cmVhbSBmb3IgbG9nZ2luZy4KIApAQCAtMTI3LDE2ICsxNjEsMTcgQEAKICAgICAgICAgICAgIHNlbGYuc3RyZWFtID0gTm9uZQogICAgICAgICBpZiBzZWxmLmJhY2t1cENvdW50ID4gMDoKICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNlbGYuYmFja3VwQ291bnQgLSAxLCAwLCAtMSk6Ci0gICAgICAgICAgICAgICAgc2ZuID0gIiVzLiVkIiAlIChzZWxmLmJhc2VGaWxlbmFtZSwgaSkKLSAgICAgICAgICAgICAgICBkZm4gPSAiJXMuJWQiICUgKHNlbGYuYmFzZUZpbGVuYW1lLCBpICsgMSkKKyAgICAgICAgICAgICAgICBzZm4gPSBzZWxmLnJvdGF0aW9uX2ZpbGVuYW1lKCIlcy4lZCIgJSAoc2VsZi5iYXNlRmlsZW5hbWUsIGkpKQorICAgICAgICAgICAgICAgIGRmbiA9IHNlbGYucm90YXRpb25fZmlsZW5hbWUoIiVzLiVkIiAlIChzZWxmLmJhc2VGaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSArIDEpKQogICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNmbik6CiAgICAgICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGRmbik6CiAgICAgICAgICAgICAgICAgICAgICAgICBvcy5yZW1vdmUoZGZuKQogICAgICAgICAgICAgICAgICAgICBvcy5yZW5hbWUoc2ZuLCBkZm4pCi0gICAgICAgICAgICBkZm4gPSBzZWxmLmJhc2VGaWxlbmFtZSArICIuMSIKKyAgICAgICAgICAgIGRmbiA9IHNlbGYucm90YXRpb25fZmlsZW5hbWUoc2VsZi5iYXNlRmlsZW5hbWUgKyAiLjEiKQogICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoZGZuKToKICAgICAgICAgICAgICAgICBvcy5yZW1vdmUoZGZuKQotICAgICAgICAgICAgb3MucmVuYW1lKHNlbGYuYmFzZUZpbGVuYW1lLCBkZm4pCisgICAgICAgICAgICBzZWxmLnJvdGF0ZShzZWxmLmJhc2VGaWxlbmFtZSwgZGZuKQogICAgICAgICBzZWxmLm1vZGUgPSAndycKICAgICAgICAgc2VsZi5zdHJlYW0gPSBzZWxmLl9vcGVuKCkKIApAQCAtMTg0LDE5ICsyMTksMTkgQEAKICAgICAgICAgaWYgc2VsZi53aGVuID09ICdTJzoKICAgICAgICAgICAgIHNlbGYuaW50ZXJ2YWwgPSAxICMgb25lIHNlY29uZAogICAgICAgICAgICAgc2VsZi5zdWZmaXggPSAiJVktJW0tJWRfJUgtJU0tJVMiCi0gICAgICAgICAgICBzZWxmLmV4dE1hdGNoID0gciJeXGR7NH0tXGR7Mn0tXGR7Mn1fXGR7Mn0tXGR7Mn0tXGR7Mn0kIgorICAgICAgICAgICAgc2VsZi5leHRNYXRjaCA9IHIiXlxkezR9LVxkezJ9LVxkezJ9X1xkezJ9LVxkezJ9LVxkezJ9KFwuXHcrKT8kIgogICAgICAgICBlbGlmIHNlbGYud2hlbiA9PSAnTSc6CiAgICAgICAgICAgICBzZWxmLmludGVydmFsID0gNjAgIyBvbmUgbWludXRlCiAgICAgICAgICAgICBzZWxmLnN1ZmZpeCA9ICIlWS0lbS0lZF8lSC0lTSIKLSAgICAgICAgICAgIHNlbGYuZXh0TWF0Y2ggPSByIl5cZHs0fS1cZHsyfS1cZHsyfV9cZHsyfS1cZHsyfSQiCisgICAgICAgICAgICBzZWxmLmV4dE1hdGNoID0gciJeXGR7NH0tXGR7Mn0tXGR7Mn1fXGR7Mn0tXGR7Mn0oXC5cdyspPyQiCiAgICAgICAgIGVsaWYgc2VsZi53aGVuID09ICdIJzoKICAgICAgICAgICAgIHNlbGYuaW50ZXJ2YWwgPSA2MCAqIDYwICMgb25lIGhvdXIKICAgICAgICAgICAgIHNlbGYuc3VmZml4ID0gIiVZLSVtLSVkXyVIIgotICAgICAgICAgICAgc2VsZi5leHRNYXRjaCA9IHIiXlxkezR9LVxkezJ9LVxkezJ9X1xkezJ9JCIKKyAgICAgICAgICAgIHNlbGYuZXh0TWF0Y2ggPSByIl5cZHs0fS1cZHsyfS1cZHsyfV9cZHsyfShcLlx3Kyk/JCIKICAgICAgICAgZWxpZiBzZWxmLndoZW4gPT0gJ0QnIG9yIHNlbGYud2hlbiA9PSAnTUlETklHSFQnOgogICAgICAgICAgICAgc2VsZi5pbnRlcnZhbCA9IDYwICogNjAgKiAyNCAjIG9uZSBkYXkKICAgICAgICAgICAgIHNlbGYuc3VmZml4ID0gIiVZLSVtLSVkIgotICAgICAgICAgICAgc2VsZi5leHRNYXRjaCA9IHIiXlxkezR9LVxkezJ9LVxkezJ9JCIKKyAgICAgICAgICAgIHNlbGYuZXh0TWF0Y2ggPSByIl5cZHs0fS1cZHsyfS1cZHsyfShcLlx3Kyk/JCIKICAgICAgICAgZWxpZiBzZWxmLndoZW4uc3RhcnRzd2l0aCgnVycpOgogICAgICAgICAgICAgc2VsZi5pbnRlcnZhbCA9IDYwICogNjAgKiAyNCAqIDcgIyBvbmUgd2VlawogICAgICAgICAgICAgaWYgbGVuKHNlbGYud2hlbikgIT0gMjoKQEAgLTIwNSw3ICsyNDAsNyBAQAogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkludmFsaWQgZGF5IHNwZWNpZmllZCBmb3Igd2Vla2x5IHJvbGxvdmVyOiAlcyIgJSBzZWxmLndoZW4pCiAgICAgICAgICAgICBzZWxmLmRheU9mV2VlayA9IGludChzZWxmLndoZW5bMV0pCiAgICAgICAgICAgICBzZWxmLnN1ZmZpeCA9ICIlWS0lbS0lZCIKLSAgICAgICAgICAgIHNlbGYuZXh0TWF0Y2ggPSByIl5cZHs0fS1cZHsyfS1cZHsyfSQiCisgICAgICAgICAgICBzZWxmLmV4dE1hdGNoID0gciJeXGR7NH0tXGR7Mn0tXGR7Mn0oXC5cdyspPyQiCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIHJvbGxvdmVyIGludGVydmFsIHNwZWNpZmllZDogJXMiICUgc2VsZi53aGVuKQogCkBAIC0zMzgsMTAgKzM3MywxMSBAQAogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIGFkZGVuZCA9IC0zNjAwCiAgICAgICAgICAgICAgICAgdGltZVR1cGxlID0gdGltZS5sb2NhbHRpbWUodCArIGFkZGVuZCkKLSAgICAgICAgZGZuID0gc2VsZi5iYXNlRmlsZW5hbWUgKyAiLiIgKyB0aW1lLnN0cmZ0aW1lKHNlbGYuc3VmZml4LCB0aW1lVHVwbGUpCisgICAgICAgIGRmbiA9IHNlbGYucm90YXRpb25fZmlsZW5hbWUoc2VsZi5iYXNlRmlsZW5hbWUgKyAiLiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUuc3RyZnRpbWUoc2VsZi5zdWZmaXgsIHRpbWVUdXBsZSkpCiAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGRmbik6CiAgICAgICAgICAgICBvcy5yZW1vdmUoZGZuKQotICAgICAgICBvcy5yZW5hbWUoc2VsZi5iYXNlRmlsZW5hbWUsIGRmbikKKyAgICAgICAgc2VsZi5yb3RhdGUoc2VsZi5iYXNlRmlsZW5hbWUsIGRmbikKICAgICAgICAgaWYgc2VsZi5iYWNrdXBDb3VudCA+IDA6CiAgICAgICAgICAgICBmb3IgcyBpbiBzZWxmLmdldEZpbGVzVG9EZWxldGUoKToKICAgICAgICAgICAgICAgICBvcy5yZW1vdmUocykKQEAgLTM4MSw3ICs0MTcsNyBAQAogICAgIFRoaXMgaGFuZGxlciBpcyBiYXNlZCBvbiBhIHN1Z2dlc3Rpb24gYW5kIHBhdGNoIGJ5IENoYWQgSi4KICAgICBTY2hyb2VkZXIuCiAgICAgIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBtb2RlPSdhJywgZW5jb2Rpbmc9Tm9uZSwgZGVsYXk9MCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBtb2RlPSdhJywgZW5jb2Rpbmc9Tm9uZSwgZGVsYXk9RmFsc2UpOgogICAgICAgICBsb2dnaW5nLkZpbGVIYW5kbGVyLl9faW5pdF9fKHNlbGYsIGZpbGVuYW1lLCBtb2RlLCBlbmNvZGluZywgZGVsYXkpCiAgICAgICAgIHNlbGYuZGV2LCBzZWxmLmlubyA9IC0xLCAtMQogICAgICAgICBzZWxmLl9zdGF0c3RyZWFtKCkKQEAgLTQ0MCwxNSArNDc2LDE1IEBACiAgICAgICAgICIiIgogICAgICAgICBJbml0aWFsaXplcyB0aGUgaGFuZGxlciB3aXRoIGEgc3BlY2lmaWMgaG9zdCBhZGRyZXNzIGFuZCBwb3J0LgogCi0gICAgICAgIFRoZSBhdHRyaWJ1dGUgJ2Nsb3NlT25FcnJvcicgaXMgc2V0IHRvIDEgLSB3aGljaCBtZWFucyB0aGF0IGlmCi0gICAgICAgIGEgc29ja2V0IGVycm9yIG9jY3VycywgdGhlIHNvY2tldCBpcyBzaWxlbnRseSBjbG9zZWQgYW5kIHRoZW4KLSAgICAgICAgcmVvcGVuZWQgb24gdGhlIG5leHQgbG9nZ2luZyBjYWxsLgorICAgICAgICBXaGVuIHRoZSBhdHRyaWJ1dGUgKmNsb3NlT25FcnJvciogaXMgc2V0IHRvIFRydWUgLSBpZiBhIHNvY2tldCBlcnJvcgorICAgICAgICBvY2N1cnMsIHRoZSBzb2NrZXQgaXMgc2lsZW50bHkgY2xvc2VkIGFuZCB0aGVuIHJlb3BlbmVkIG9uIHRoZSBuZXh0CisgICAgICAgIGxvZ2dpbmcgY2FsbC4KICAgICAgICAgIiIiCiAgICAgICAgIGxvZ2dpbmcuSGFuZGxlci5fX2luaXRfXyhzZWxmKQogICAgICAgICBzZWxmLmhvc3QgPSBob3N0CiAgICAgICAgIHNlbGYucG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5zb2NrID0gTm9uZQotICAgICAgICBzZWxmLmNsb3NlT25FcnJvciA9IDAKKyAgICAgICAgc2VsZi5jbG9zZU9uRXJyb3IgPSBGYWxzZQogICAgICAgICBzZWxmLnJldHJ5VGltZSA9IE5vbmUKICAgICAgICAgIwogICAgICAgICAjIEV4cG9uZW50aWFsIGJhY2tvZmYgcGFyYW1ldGVycy4KQEAgLTQ2NSw4ICs1MDEsMTIgQEAKICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKICAgICAgICAgaWYgaGFzYXR0cihzLCAnc2V0dGltZW91dCcpOgogICAgICAgICAgICAgcy5zZXR0aW1lb3V0KHRpbWVvdXQpCi0gICAgICAgIHMuY29ubmVjdCgoc2VsZi5ob3N0LCBzZWxmLnBvcnQpKQotICAgICAgICByZXR1cm4gcworICAgICAgICB0cnk6CisgICAgICAgICAgICBzLmNvbm5lY3QoKHNlbGYuaG9zdCwgc2VsZi5wb3J0KSkKKyAgICAgICAgICAgIHJldHVybiBzCisgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgICAgICBzLmNsb3NlKCkKKyAgICAgICAgICAgIHJhaXNlCiAKICAgICBkZWYgY3JlYXRlU29ja2V0KHNlbGYpOgogICAgICAgICAiIiIKQEAgLTQ3OSw3ICs1MTksNyBAQAogICAgICAgICAjIGlzIHRoZSBmaXJzdCB0aW1lIGJhY2sgYWZ0ZXIgYSBkaXNjb25uZWN0LCBvcgogICAgICAgICAjIHdlJ3ZlIHdhaXRlZCBsb25nIGVub3VnaC4KICAgICAgICAgaWYgc2VsZi5yZXRyeVRpbWUgaXMgTm9uZToKLSAgICAgICAgICAgIGF0dGVtcHQgPSAxCisgICAgICAgICAgICBhdHRlbXB0ID0gVHJ1ZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgYXR0ZW1wdCA9IChub3cgPj0gc2VsZi5yZXRyeVRpbWUpCiAgICAgICAgIGlmIGF0dGVtcHQ6CkBAIC01MTIsMTQgKzU1MiwxNCBAQAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZi5zb2NrLCAic2VuZGFsbCIpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLnNvY2suc2VuZGFsbChzKQotICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZWxzZTogI3ByYWdtYTogbm8gY292ZXIKICAgICAgICAgICAgICAgICAgICAgc2VudHNvZmFyID0gMAogICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbGVuKHMpCiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIGxlZnQgPiAwOgogICAgICAgICAgICAgICAgICAgICAgICAgc2VudCA9IHNlbGYuc29jay5zZW5kKHNbc2VudHNvZmFyOl0pCiAgICAgICAgICAgICAgICAgICAgICAgICBzZW50c29mYXIgPSBzZW50c29mYXIgKyBzZW50CiAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gbGVmdCAtIHNlbnQKLSAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOiAjcHJhZ21hOiBubyBjb3ZlcgogICAgICAgICAgICAgICAgIHNlbGYuc29jay5jbG9zZSgpCiAgICAgICAgICAgICAgICAgc2VsZi5zb2NrID0gTm9uZSAgIyBzbyB3ZSBjYW4gY2FsbCBjcmVhdGVTb2NrZXQgbmV4dCB0aW1lCiAKQEAgLTU2OSw3ICs2MDksNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzID0gc2VsZi5tYWtlUGlja2xlKHJlY29yZCkKICAgICAgICAgICAgIHNlbGYuc2VuZChzKQotICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KToKKyAgICAgICAgZXhjZXB0IChLZXlib2FyZEludGVycnVwdCwgU3lzdGVtRXhpdCk6ICNwcmFnbWE6IG5vIGNvdmVyCiAgICAgICAgICAgICByYWlzZQogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBzZWxmLmhhbmRsZUVycm9yKHJlY29yZCkKQEAgLTYwMyw3ICs2NDMsNyBAQAogICAgICAgICBJbml0aWFsaXplcyB0aGUgaGFuZGxlciB3aXRoIGEgc3BlY2lmaWMgaG9zdCBhZGRyZXNzIGFuZCBwb3J0LgogICAgICAgICAiIiIKICAgICAgICAgU29ja2V0SGFuZGxlci5fX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0KQotICAgICAgICBzZWxmLmNsb3NlT25FcnJvciA9IDAKKyAgICAgICAgc2VsZi5jbG9zZU9uRXJyb3IgPSBGYWxzZQogCiAgICAgZGVmIG1ha2VTb2NrZXQoc2VsZik6CiAgICAgICAgICIiIgpAQCAtNzQ0LDEwICs3ODQsMTAgQEAKICAgICAgICAgc2VsZi5zb2NrdHlwZSA9IHNvY2t0eXBlCiAKICAgICAgICAgaWYgaXNpbnN0YW5jZShhZGRyZXNzLCBzdHIpOgotICAgICAgICAgICAgc2VsZi51bml4c29ja2V0ID0gMQorICAgICAgICAgICAgc2VsZi51bml4c29ja2V0ID0gVHJ1ZQogICAgICAgICAgICAgc2VsZi5fY29ubmVjdF91bml4c29ja2V0KGFkZHJlc3MpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLnVuaXhzb2NrZXQgPSAwCisgICAgICAgICAgICBzZWxmLnVuaXhzb2NrZXQgPSBGYWxzZQogICAgICAgICAgICAgc2VsZi5zb2NrZXQgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrdHlwZSkKICAgICAgICAgICAgIGlmIHNvY2t0eXBlID09IHNvY2tldC5TT0NLX1NUUkVBTToKICAgICAgICAgICAgICAgICBzZWxmLnNvY2tldC5jb25uZWN0KGFkZHJlc3MpCkBAIC03ODYsOCArODI2LDcgQEAKICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYuYWNxdWlyZSgpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmIHNlbGYudW5peHNvY2tldDoKLSAgICAgICAgICAgICAgICBzZWxmLnNvY2tldC5jbG9zZSgpCisgICAgICAgICAgICBzZWxmLnNvY2tldC5jbG9zZSgpCiAgICAgICAgICAgICBsb2dnaW5nLkhhbmRsZXIuY2xvc2Uoc2VsZikKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNlbGYucmVsZWFzZSgpCkBAIC04MDIsNiArODQxLDcgQEAKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLnByaW9yaXR5X21hcC5nZXQobGV2ZWxOYW1lLCAid2FybmluZyIpCiAKKyAgICBpZGVudCA9ICcnICAgICAgICAgICMgcHJlcGVuZGVkIHRvIGFsbCBtZXNzYWdlcwogICAgIGFwcGVuZF9udWwgPSBUcnVlICAgIyBzb21lIG9sZCBzeXNsb2cgZGFlbW9ucyBleHBlY3QgYSBOVUwgdGVybWluYXRvcgogCiAgICAgZGVmIGVtaXQoc2VsZiwgcmVjb3JkKToKQEAgLTgxMiw2ICs4NTIsOCBAQAogICAgICAgICBleGNlcHRpb24gaW5mb3JtYXRpb24gaXMgcHJlc2VudCwgaXQgaXMgTk9UIHNlbnQgdG8gdGhlIHNlcnZlci4KICAgICAgICAgIiIiCiAgICAgICAgIG1zZyA9IHNlbGYuZm9ybWF0KHJlY29yZCkKKyAgICAgICAgaWYgc2VsZi5pZGVudDoKKyAgICAgICAgICAgIG1zZyA9IHNlbGYuaWRlbnQgKyBtc2cKICAgICAgICAgaWYgc2VsZi5hcHBlbmRfbnVsOgogICAgICAgICAgICAgbXNnICs9ICdcMDAwJwogICAgICAgICAiIiIKQEAgLTgzNSw3ICs4NzcsNyBAQAogICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0LnNlbmR0byhtc2csIHNlbGYuYWRkcmVzcykKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc2VsZi5zb2NrZXQuc2VuZGFsbChtc2cpCi0gICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOgorICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KTogI3ByYWdtYTogbm8gY292ZXIKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgIHNlbGYuaGFuZGxlRXJyb3IocmVjb3JkKQpAQCAtODQ1LDcgKzg4Nyw3IEBACiAgICAgQSBoYW5kbGVyIGNsYXNzIHdoaWNoIHNlbmRzIGFuIFNNVFAgZW1haWwgZm9yIGVhY2ggbG9nZ2luZyBldmVudC4KICAgICAiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgbWFpbGhvc3QsIGZyb21hZGRyLCB0b2FkZHJzLCBzdWJqZWN0LAotICAgICAgICAgICAgICAgICBjcmVkZW50aWFscz1Ob25lLCBzZWN1cmU9Tm9uZSk6CisgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzPU5vbmUsIHNlY3VyZT1Ob25lLCB0aW1lb3V0PTUuMCk6CiAgICAgICAgICIiIgogICAgICAgICBJbml0aWFsaXplIHRoZSBoYW5kbGVyLgogCkBAIC04NTksNiArOTAxLDggQEAKICAgICAgICAgd2lsbCBiZSBlaXRoZXIgYW4gZW1wdHkgdHVwbGUsIG9yIGEgc2luZ2xlLXZhbHVlIHR1cGxlIHdpdGggdGhlIG5hbWUKICAgICAgICAgb2YgYSBrZXlmaWxlLCBvciBhIDItdmFsdWUgdHVwbGUgd2l0aCB0aGUgbmFtZXMgb2YgdGhlIGtleWZpbGUgYW5kCiAgICAgICAgIGNlcnRpZmljYXRlIGZpbGUuIChUaGlzIHR1cGxlIGlzIHBhc3NlZCB0byB0aGUgYHN0YXJ0dGxzYCBtZXRob2QpLgorICAgICAgICBBIHRpbWVvdXQgaW4gc2Vjb25kcyBjYW4gYmUgc3BlY2lmaWVkIGZvciB0aGUgU01UUCBjb25uZWN0aW9uICh0aGUKKyAgICAgICAgZGVmYXVsdCBpcyBvbmUgc2Vjb25kKS4KICAgICAgICAgIiIiCiAgICAgICAgIGxvZ2dpbmcuSGFuZGxlci5fX2luaXRfXyhzZWxmKQogICAgICAgICBpZiBpc2luc3RhbmNlKG1haWxob3N0LCB0dXBsZSk6CkBAIC04NzUsNyArOTE5LDcgQEAKICAgICAgICAgc2VsZi50b2FkZHJzID0gdG9hZGRycwogICAgICAgICBzZWxmLnN1YmplY3QgPSBzdWJqZWN0CiAgICAgICAgIHNlbGYuc2VjdXJlID0gc2VjdXJlCi0gICAgICAgIHNlbGYuX3RpbWVvdXQgPSA1LjAKKyAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAogCiAgICAgZGVmIGdldFN1YmplY3Qoc2VsZiwgcmVjb3JkKToKICAgICAgICAgIiIiCkBAIC04OTgsNyArOTQyLDcgQEAKICAgICAgICAgICAgIHBvcnQgPSBzZWxmLm1haWxwb3J0CiAgICAgICAgICAgICBpZiBub3QgcG9ydDoKICAgICAgICAgICAgICAgICBwb3J0ID0gc210cGxpYi5TTVRQX1BPUlQKLSAgICAgICAgICAgIHNtdHAgPSBzbXRwbGliLlNNVFAoc2VsZi5tYWlsaG9zdCwgcG9ydCwgdGltZW91dD1zZWxmLl90aW1lb3V0KQorICAgICAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUChzZWxmLm1haWxob3N0LCBwb3J0LCB0aW1lb3V0PXNlbGYudGltZW91dCkKICAgICAgICAgICAgIG1zZyA9IHNlbGYuZm9ybWF0KHJlY29yZCkKICAgICAgICAgICAgIG1zZyA9ICJGcm9tOiAlc1xyXG5UbzogJXNcclxuU3ViamVjdDogJXNcclxuRGF0ZTogJXNcclxuXHJcbiVzIiAlICgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZyb21hZGRyLApAQCAtOTEzLDcgKzk1Nyw3IEBACiAgICAgICAgICAgICAgICAgc210cC5sb2dpbihzZWxmLnVzZXJuYW1lLCBzZWxmLnBhc3N3b3JkKQogICAgICAgICAgICAgc210cC5zZW5kbWFpbChzZWxmLmZyb21hZGRyLCBzZWxmLnRvYWRkcnMsIG1zZykKICAgICAgICAgICAgIHNtdHAucXVpdCgpCi0gICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOgorICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KTogI3ByYWdtYTogbm8gY292ZXIKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAgIHNlbGYuaGFuZGxlRXJyb3IocmVjb3JkKQpAQCAtMTAwMCw3ICsxMDQ0LDcgQEAKICAgICAgICAgICAgICAgICB0eXBlID0gc2VsZi5nZXRFdmVudFR5cGUocmVjb3JkKQogICAgICAgICAgICAgICAgIG1zZyA9IHNlbGYuZm9ybWF0KHJlY29yZCkKICAgICAgICAgICAgICAgICBzZWxmLl93ZWx1LlJlcG9ydEV2ZW50KHNlbGYuYXBwbmFtZSwgaWQsIGNhdCwgdHlwZSwgW21zZ10pCi0gICAgICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KToKKyAgICAgICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOiAjcHJhZ21hOiBubyBjb3ZlcgogICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVFcnJvcihyZWNvcmQpCkBAIC0xMDgzLDkgKzExMjcsMTEgQEAKICAgICAgICAgICAgICAgICBzID0gKCd1JXM6JXMnICUgc2VsZi5jcmVkZW50aWFscykuZW5jb2RlKCd1dGYtOCcpCiAgICAgICAgICAgICAgICAgcyA9ICdCYXNpYyAnICsgYmFzZTY0LmI2NGVuY29kZShzKS5zdHJpcCgpCiAgICAgICAgICAgICAgICAgaC5wdXRoZWFkZXIoJ0F1dGhvcml6YXRpb24nLCBzKQotICAgICAgICAgICAgaC5lbmRoZWFkZXJzKGRhdGEgaWYgc2VsZi5tZXRob2QgPT0gIlBPU1QiIGVsc2UgTm9uZSkKKyAgICAgICAgICAgIGguZW5kaGVhZGVycygpCisgICAgICAgICAgICBpZiBzZWxmLm1ldGhvZCA9PSAiUE9TVCI6CisgICAgICAgICAgICAgICAgaC5zZW5kKGRhdGEuZW5jb2RlKCd1dGYtOCcpKQogICAgICAgICAgICAgaC5nZXRyZXNwb25zZSgpICAgICNjYW4ndCBkbyBhbnl0aGluZyB3aXRoIHRoZSByZXN1bHQKLSAgICAgICAgZXhjZXB0IChLZXlib2FyZEludGVycnVwdCwgU3lzdGVtRXhpdCk6CisgICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOiAjcHJhZ21hOiBubyBjb3ZlcgogICAgICAgICAgICAgcmFpc2UKICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgc2VsZi5oYW5kbGVFcnJvcihyZWNvcmQpCkBAIC0xMjY3LDcgKzEzMTMsNyBAQAogICAgICAgICAiIiIKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5lbnF1ZXVlKHNlbGYucHJlcGFyZShyZWNvcmQpKQotICAgICAgICBleGNlcHQgKEtleWJvYXJkSW50ZXJydXB0LCBTeXN0ZW1FeGl0KToKKyAgICAgICAgZXhjZXB0IChLZXlib2FyZEludGVycnVwdCwgU3lzdGVtRXhpdCk6ICNwcmFnbWE6IG5vIGNvdmVyCiAgICAgICAgICAgICByYWlzZQogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBzZWxmLmhhbmRsZUVycm9yKHJlY29yZCkKQEAgLTEzNjQsNiArMTQxMCwxNiBAQAogICAgICAgICAgICAgICAgIGV4Y2VwdCBxdWV1ZS5FbXB0eToKICAgICAgICAgICAgICAgICAgICAgYnJlYWsKIAorICAgICAgICBkZWYgZW5xdWV1ZV9zZW50aW5lbChzZWxmKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgVGhpcyBpcyB1c2VkIHRvIGVucXVldWUgdGhlIHNlbnRpbmVsIHJlY29yZC4KKworICAgICAgICAgICAgVGhlIGJhc2UgaW1wbGVtZW50YXRpb24gdXNlcyBwdXRfbm93YWl0LiBZb3UgbWF5IHdhbnQgdG8gb3ZlcnJpZGUgdGhpcworICAgICAgICAgICAgbWV0aG9kIGlmIHlvdSB3YW50IHRvIHVzZSB0aW1lb3V0cyBvciB3b3JrIHdpdGggY3VzdG9tIHF1ZXVlCisgICAgICAgICAgICBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHNlbGYucXVldWUucHV0X25vd2FpdChzZWxmLl9zZW50aW5lbCkKKwogICAgICAgICBkZWYgc3RvcChzZWxmKToKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgU3RvcCB0aGUgbGlzdGVuZXIuCkBAIC0xMzczLDYgKzE0MjksNiBAQAogICAgICAgICAgICAgbWF5IGJlIHNvbWUgcmVjb3JkcyBzdGlsbCBsZWZ0IG9uIHRoZSBxdWV1ZSwgd2hpY2ggd29uJ3QgYmUgcHJvY2Vzc2VkLgogICAgICAgICAgICAgIiIiCiAgICAgICAgICAgICBzZWxmLl9zdG9wLnNldCgpCi0gICAgICAgICAgICBzZWxmLnF1ZXVlLnB1dF9ub3dhaXQoc2VsZi5fc2VudGluZWwpCisgICAgICAgICAgICBzZWxmLmVucXVldWVfc2VudGluZWwoKQogICAgICAgICAgICAgc2VsZi5fdGhyZWFkLmpvaW4oKQogICAgICAgICAgICAgc2VsZi5fdGhyZWFkID0gTm9uZQpkaWZmIC0tZ2l0IGEvTGliL2x6bWEucHkgYi9MaWIvbHptYS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZmNmODEyCi0tLSAvZGV2L251bGwKKysrIGIvTGliL2x6bWEucHkKQEAgLTAsMCArMSw0NDkgQEAKKyIiIkludGVyZmFjZSB0byB0aGUgbGlibHptYSBjb21wcmVzc2lvbiBsaWJyYXJ5LgorCitUaGlzIG1vZHVsZSBwcm92aWRlcyBhIGNsYXNzIGZvciByZWFkaW5nIGFuZCB3cml0aW5nIGNvbXByZXNzZWQgZmlsZXMsCitjbGFzc2VzIGZvciBpbmNyZW1lbnRhbCAoZGUpY29tcHJlc3Npb24sIGFuZCBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yCitvbmUtc2hvdCAoZGUpY29tcHJlc3Npb24uCisKK1RoZXNlIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyBzdXBwb3J0IGJvdGggdGhlIFhaIGFuZCBsZWdhY3kgTFpNQQorY29udGFpbmVyIGZvcm1hdHMsIGFzIHdlbGwgYXMgcmF3IGNvbXByZXNzZWQgZGF0YSBzdHJlYW1zLgorIiIiCisKK19fYWxsX18gPSBbCisgICAgIkNIRUNLX05PTkUiLCAiQ0hFQ0tfQ1JDMzIiLCAiQ0hFQ0tfQ1JDNjQiLCAiQ0hFQ0tfU0hBMjU2IiwKKyAgICAiQ0hFQ0tfSURfTUFYIiwgIkNIRUNLX1VOS05PV04iLAorICAgICJGSUxURVJfTFpNQTEiLCAiRklMVEVSX0xaTUEyIiwgIkZJTFRFUl9ERUxUQSIsICJGSUxURVJfWDg2IiwgIkZJTFRFUl9JQTY0IiwKKyAgICAiRklMVEVSX0FSTSIsICJGSUxURVJfQVJNVEhVTUIiLCAiRklMVEVSX1BPV0VSUEMiLCAiRklMVEVSX1NQQVJDIiwKKyAgICAiRk9STUFUX0FVVE8iLCAiRk9STUFUX1haIiwgIkZPUk1BVF9BTE9ORSIsICJGT1JNQVRfUkFXIiwKKyAgICAiTUZfSEMzIiwgIk1GX0hDNCIsICJNRl9CVDIiLCAiTUZfQlQzIiwgIk1GX0JUNCIsCisgICAgIk1PREVfRkFTVCIsICJNT0RFX05PUk1BTCIsICJQUkVTRVRfREVGQVVMVCIsICJQUkVTRVRfRVhUUkVNRSIsCisKKyAgICAiTFpNQUNvbXByZXNzb3IiLCAiTFpNQURlY29tcHJlc3NvciIsICJMWk1BRmlsZSIsICJMWk1BRXJyb3IiLAorICAgICJvcGVuIiwgImNvbXByZXNzIiwgImRlY29tcHJlc3MiLCAiaXNfY2hlY2tfc3VwcG9ydGVkIiwKK10KKworaW1wb3J0IGJ1aWx0aW5zCitpbXBvcnQgaW8KK2Zyb20gX2x6bWEgaW1wb3J0ICoKK2Zyb20gX2x6bWEgaW1wb3J0IF9lbmNvZGVfZmlsdGVyX3Byb3BlcnRpZXMsIF9kZWNvZGVfZmlsdGVyX3Byb3BlcnRpZXMKKworCitfTU9ERV9DTE9TRUQgICA9IDAKK19NT0RFX1JFQUQgICAgID0gMQorX01PREVfUkVBRF9FT0YgPSAyCitfTU9ERV9XUklURSAgICA9IDMKKworX0JVRkZFUl9TSVpFID0gODE5MgorCisKK2NsYXNzIExaTUFGaWxlKGlvLkJ1ZmZlcmVkSU9CYXNlKToKKworICAgICIiIkEgZmlsZSBvYmplY3QgcHJvdmlkaW5nIHRyYW5zcGFyZW50IExaTUEgKGRlKWNvbXByZXNzaW9uLgorCisgICAgQW4gTFpNQUZpbGUgY2FuIGFjdCBhcyBhIHdyYXBwZXIgZm9yIGFuIGV4aXN0aW5nIGZpbGUgb2JqZWN0LCBvcgorICAgIHJlZmVyIGRpcmVjdGx5IHRvIGEgbmFtZWQgZmlsZSBvbiBkaXNrLgorCisgICAgTm90ZSB0aGF0IExaTUFGaWxlIHByb3ZpZGVzIGEgKmJpbmFyeSogZmlsZSBpbnRlcmZhY2UgLSBkYXRhIHJlYWQKKyAgICBpcyByZXR1cm5lZCBhcyBieXRlcywgYW5kIGRhdGEgdG8gYmUgd3JpdHRlbiBtdXN0IGJlIGdpdmVuIGFzIGJ5dGVzLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVuYW1lPU5vbmUsIG1vZGU9InIiLCAqLAorICAgICAgICAgICAgICAgICBmb3JtYXQ9Tm9uZSwgY2hlY2s9LTEsIHByZXNldD1Ob25lLCBmaWx0ZXJzPU5vbmUpOgorICAgICAgICAiIiJPcGVuIGFuIExaTUEtY29tcHJlc3NlZCBmaWxlIGluIGJpbmFyeSBtb2RlLgorCisgICAgICAgIGZpbGVuYW1lIGNhbiBiZSBlaXRoZXIgYW4gYWN0dWFsIGZpbGUgbmFtZSAoZ2l2ZW4gYXMgYSBzdHIgb3IKKyAgICAgICAgYnl0ZXMgb2JqZWN0KSwgaW4gd2hpY2ggY2FzZSB0aGUgbmFtZWQgZmlsZSBpcyBvcGVuZWQsIG9yIGl0IGNhbgorICAgICAgICBiZSBhbiBleGlzdGluZyBmaWxlIG9iamVjdCB0byByZWFkIGZyb20gb3Igd3JpdGUgdG8uCisKKyAgICAgICAgbW9kZSBjYW4gYmUgInIiIGZvciByZWFkaW5nIChkZWZhdWx0KSwgInciIGZvciAob3Zlcil3cml0aW5nLCBvcgorICAgICAgICAiYSIgZm9yIGFwcGVuZGluZy4gVGhlc2UgY2FuIGVxdWl2YWxlbnRseSBiZSBnaXZlbiBhcyAicmIiLCAid2IiLAorICAgICAgICBhbmQgImFiIiByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgZm9ybWF0IHNwZWNpZmllcyB0aGUgY29udGFpbmVyIGZvcm1hdCB0byB1c2UgZm9yIHRoZSBmaWxlLgorICAgICAgICBJZiBtb2RlIGlzICJyIiwgdGhpcyBkZWZhdWx0cyB0byBGT1JNQVRfQVVUTy4gT3RoZXJ3aXNlLCB0aGUKKyAgICAgICAgZGVmYXVsdCBpcyBGT1JNQVRfWFouCisKKyAgICAgICAgY2hlY2sgc3BlY2lmaWVzIHRoZSBpbnRlZ3JpdHkgY2hlY2sgdG8gdXNlLiBUaGlzIGFyZ3VtZW50IGNhbgorICAgICAgICBvbmx5IGJlIHVzZWQgd2hlbiBvcGVuaW5nIGEgZmlsZSBmb3Igd3JpdGluZy4gRm9yIEZPUk1BVF9YWiwKKyAgICAgICAgdGhlIGRlZmF1bHQgaXMgQ0hFQ0tfQ1JDNjQuIEZPUk1BVF9BTE9ORSBhbmQgRk9STUFUX1JBVyBkbyBub3QKKyAgICAgICAgc3VwcG9ydCBpbnRlZ3JpdHkgY2hlY2tzIC0gZm9yIHRoZXNlIGZvcm1hdHMsIGNoZWNrIG11c3QgYmUKKyAgICAgICAgb21pdHRlZCwgb3IgYmUgQ0hFQ0tfTk9ORS4KKworICAgICAgICBXaGVuIG9wZW5pbmcgYSBmaWxlIGZvciByZWFkaW5nLCB0aGUgKnByZXNldCogYXJndW1lbnQgaXMgbm90CisgICAgICAgIG1lYW5pbmdmdWwsIGFuZCBzaG91bGQgYmUgb21pdHRlZC4gVGhlICpmaWx0ZXJzKiBhcmd1bWVudCBzaG91bGQKKyAgICAgICAgYWxzbyBiZSBvbWl0dGVkLCBleGNlcHQgd2hlbiBmb3JtYXQgaXMgRk9STUFUX1JBVyAoaW4gd2hpY2ggY2FzZQorICAgICAgICBpdCBpcyByZXF1aXJlZCkuCisKKyAgICAgICAgV2hlbiBvcGVuaW5nIGEgZmlsZSBmb3Igd3JpdGluZywgdGhlIHNldHRpbmdzIHVzZWQgYnkgdGhlCisgICAgICAgIGNvbXByZXNzb3IgY2FuIGJlIHNwZWNpZmllZCBlaXRoZXIgYXMgYSBwcmVzZXQgY29tcHJlc3Npb24KKyAgICAgICAgbGV2ZWwgKHdpdGggdGhlICpwcmVzZXQqIGFyZ3VtZW50KSwgb3IgaW4gZGV0YWlsIGFzIGEgY3VzdG9tCisgICAgICAgIGZpbHRlciBjaGFpbiAod2l0aCB0aGUgKmZpbHRlcnMqIGFyZ3VtZW50KS4gRm9yIEZPUk1BVF9YWiBhbmQKKyAgICAgICAgRk9STUFUX0FMT05FLCB0aGUgZGVmYXVsdCBpcyB0byB1c2UgdGhlIFBSRVNFVF9ERUZBVUxUIHByZXNldAorICAgICAgICBsZXZlbC4gRm9yIEZPUk1BVF9SQVcsIHRoZSBjYWxsZXIgbXVzdCBhbHdheXMgc3BlY2lmeSBhIGZpbHRlcgorICAgICAgICBjaGFpbjsgdGhlIHJhdyBjb21wcmVzc29yIGRvZXMgbm90IHN1cHBvcnQgcHJlc2V0IGNvbXByZXNzaW9uCisgICAgICAgIGxldmVscy4KKworICAgICAgICBwcmVzZXQgKGlmIHByb3ZpZGVkKSBzaG91bGQgYmUgYW4gaW50ZWdlciBpbiB0aGUgcmFuZ2UgMC05LAorICAgICAgICBvcHRpb25hbGx5IE9SLWVkIHdpdGggdGhlIGNvbnN0YW50IFBSRVNFVF9FWFRSRU1FLgorCisgICAgICAgIGZpbHRlcnMgKGlmIHByb3ZpZGVkKSBzaG91bGQgYmUgYSBzZXF1ZW5jZSBvZiBkaWN0cy4gRWFjaCBkaWN0CisgICAgICAgIHNob3VsZCBoYXZlIGFuIGVudHJ5IGZvciAiaWQiIGluZGljYXRpbmcgSUQgb2YgdGhlIGZpbHRlciwgcGx1cworICAgICAgICBhZGRpdGlvbmFsIGVudHJpZXMgZm9yIG9wdGlvbnMgdG8gdGhlIGZpbHRlci4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2ZwID0gTm9uZQorICAgICAgICBzZWxmLl9jbG9zZWZwID0gRmFsc2UKKyAgICAgICAgc2VsZi5fbW9kZSA9IF9NT0RFX0NMT1NFRAorICAgICAgICBzZWxmLl9wb3MgPSAwCisgICAgICAgIHNlbGYuX3NpemUgPSAtMQorCisgICAgICAgIGlmIG1vZGUgaW4gKCJyIiwgInJiIik6CisgICAgICAgICAgICBpZiBjaGVjayAhPSAtMToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDYW5ub3Qgc3BlY2lmeSBhbiBpbnRlZ3JpdHkgY2hlY2sgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndoZW4gb3BlbmluZyBhIGZpbGUgZm9yIHJlYWRpbmciKQorICAgICAgICAgICAgaWYgcHJlc2V0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkNhbm5vdCBzcGVjaWZ5IGEgcHJlc2V0IGNvbXByZXNzaW9uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsZXZlbCB3aGVuIG9wZW5pbmcgYSBmaWxlIGZvciByZWFkaW5nIikKKyAgICAgICAgICAgIGlmIGZvcm1hdCBpcyBOb25lOgorICAgICAgICAgICAgICAgIGZvcm1hdCA9IEZPUk1BVF9BVVRPCisgICAgICAgICAgICBtb2RlX2NvZGUgPSBfTU9ERV9SRUFECisgICAgICAgICAgICAjIFNhdmUgdGhlIGFyZ3MgdG8gcGFzcyB0byB0aGUgTFpNQURlY29tcHJlc3NvciBpbml0aWFsaXplci4KKyAgICAgICAgICAgICMgSWYgdGhlIGZpbGUgY29udGFpbnMgbXVsdGlwbGUgY29tcHJlc3NlZCBzdHJlYW1zLCBlYWNoCisgICAgICAgICAgICAjIHN0cmVhbSB3aWxsIG5lZWQgYSBzZXBhcmF0ZSBkZWNvbXByZXNzb3Igb2JqZWN0LgorICAgICAgICAgICAgc2VsZi5faW5pdF9hcmdzID0geyJmb3JtYXQiOmZvcm1hdCwgImZpbHRlcnMiOmZpbHRlcnN9CisgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzb3IgPSBMWk1BRGVjb21wcmVzc29yKCoqc2VsZi5faW5pdF9hcmdzKQorICAgICAgICAgICAgc2VsZi5fYnVmZmVyID0gTm9uZQorICAgICAgICBlbGlmIG1vZGUgaW4gKCJ3IiwgIndiIiwgImEiLCAiYWIiKToKKyAgICAgICAgICAgIGlmIGZvcm1hdCBpcyBOb25lOgorICAgICAgICAgICAgICAgIGZvcm1hdCA9IEZPUk1BVF9YWgorICAgICAgICAgICAgbW9kZV9jb2RlID0gX01PREVfV1JJVEUKKyAgICAgICAgICAgIHNlbGYuX2NvbXByZXNzb3IgPSBMWk1BQ29tcHJlc3Nvcihmb3JtYXQ9Zm9ybWF0LCBjaGVjaz1jaGVjaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzZXQ9cHJlc2V0LCBmaWx0ZXJzPWZpbHRlcnMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIG1vZGU6IHshcn0iLmZvcm1hdChtb2RlKSkKKworICAgICAgICBpZiBpc2luc3RhbmNlKGZpbGVuYW1lLCAoc3RyLCBieXRlcykpOgorICAgICAgICAgICAgaWYgImIiIG5vdCBpbiBtb2RlOgorICAgICAgICAgICAgICAgIG1vZGUgKz0gImIiCisgICAgICAgICAgICBzZWxmLl9mcCA9IGJ1aWx0aW5zLm9wZW4oZmlsZW5hbWUsIG1vZGUpCisgICAgICAgICAgICBzZWxmLl9jbG9zZWZwID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5fbW9kZSA9IG1vZGVfY29kZQorICAgICAgICBlbGlmIGhhc2F0dHIoZmlsZW5hbWUsICJyZWFkIikgb3IgaGFzYXR0cihmaWxlbmFtZSwgIndyaXRlIik6CisgICAgICAgICAgICBzZWxmLl9mcCA9IGZpbGVuYW1lCisgICAgICAgICAgICBzZWxmLl9tb2RlID0gbW9kZV9jb2RlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImZpbGVuYW1lIG11c3QgYmUgYSBzdHIgb3IgYnl0ZXMgb2JqZWN0LCBvciBhIGZpbGUiKQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICAiIiJGbHVzaCBhbmQgY2xvc2UgdGhlIGZpbGUuCisKKyAgICAgICAgTWF5IGJlIGNhbGxlZCBtb3JlIHRoYW4gb25jZSB3aXRob3V0IGVycm9yLiBPbmNlIHRoZSBmaWxlIGlzCisgICAgICAgIGNsb3NlZCwgYW55IG90aGVyIG9wZXJhdGlvbiBvbiBpdCB3aWxsIHJhaXNlIGEgVmFsdWVFcnJvci4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIHNlbGYuX21vZGUgPT0gX01PREVfQ0xPU0VEOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNlbGYuX21vZGUgaW4gKF9NT0RFX1JFQUQsIF9NT0RFX1JFQURfRU9GKToKKyAgICAgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzb3IgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5fYnVmZmVyID0gTm9uZQorICAgICAgICAgICAgZWxpZiBzZWxmLl9tb2RlID09IF9NT0RFX1dSSVRFOgorICAgICAgICAgICAgICAgIHNlbGYuX2ZwLndyaXRlKHNlbGYuX2NvbXByZXNzb3IuZmx1c2goKSkKKyAgICAgICAgICAgICAgICBzZWxmLl9jb21wcmVzc29yID0gTm9uZQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX2Nsb3NlZnA6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZwLmNsb3NlKCkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgc2VsZi5fZnAgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5fY2xvc2VmcCA9IEZhbHNlCisgICAgICAgICAgICAgICAgc2VsZi5fbW9kZSA9IF9NT0RFX0NMT1NFRAorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNsb3NlZChzZWxmKToKKyAgICAgICAgIiIiVHJ1ZSBpZiB0aGlzIGZpbGUgaXMgY2xvc2VkLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5fbW9kZSA9PSBfTU9ERV9DTE9TRUQKKworICAgIGRlZiBmaWxlbm8oc2VsZik6CisgICAgICAgICIiIlJldHVybiB0aGUgZmlsZSBkZXNjcmlwdG9yIGZvciB0aGUgdW5kZXJseWluZyBmaWxlLiIiIgorICAgICAgICBzZWxmLl9jaGVja19ub3RfY2xvc2VkKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX2ZwLmZpbGVubygpCisKKyAgICBkZWYgc2Vla2FibGUoc2VsZik6CisgICAgICAgICIiIlJldHVybiB3aGV0aGVyIHRoZSBmaWxlIHN1cHBvcnRzIHNlZWtpbmcuIiIiCisgICAgICAgIHJldHVybiBzZWxmLnJlYWRhYmxlKCkgYW5kIHNlbGYuX2ZwLnNlZWthYmxlKCkKKworICAgIGRlZiByZWFkYWJsZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhlIGZpbGUgd2FzIG9wZW5lZCBmb3IgcmVhZGluZy4iIiIKKyAgICAgICAgc2VsZi5fY2hlY2tfbm90X2Nsb3NlZCgpCisgICAgICAgIHJldHVybiBzZWxmLl9tb2RlIGluIChfTU9ERV9SRUFELCBfTU9ERV9SRUFEX0VPRikKKworICAgIGRlZiB3cml0YWJsZShzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIHdoZXRoZXIgdGhlIGZpbGUgd2FzIG9wZW5lZCBmb3Igd3JpdGluZy4iIiIKKyAgICAgICAgc2VsZi5fY2hlY2tfbm90X2Nsb3NlZCgpCisgICAgICAgIHJldHVybiBzZWxmLl9tb2RlID09IF9NT0RFX1dSSVRFCisKKyAgICAjIE1vZGUtY2hlY2tpbmcgaGVscGVyIGZ1bmN0aW9ucy4KKworICAgIGRlZiBfY2hlY2tfbm90X2Nsb3NlZChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5jbG9zZWQ6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIikKKworICAgIGRlZiBfY2hlY2tfY2FuX3JlYWQoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLnJlYWRhYmxlKCk6CisgICAgICAgICAgICByYWlzZSBpby5VbnN1cHBvcnRlZE9wZXJhdGlvbigiRmlsZSBub3Qgb3BlbiBmb3IgcmVhZGluZyIpCisKKyAgICBkZWYgX2NoZWNrX2Nhbl93cml0ZShzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYud3JpdGFibGUoKToKKyAgICAgICAgICAgIHJhaXNlIGlvLlVuc3VwcG9ydGVkT3BlcmF0aW9uKCJGaWxlIG5vdCBvcGVuIGZvciB3cml0aW5nIikKKworICAgIGRlZiBfY2hlY2tfY2FuX3NlZWsoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLnJlYWRhYmxlKCk6CisgICAgICAgICAgICByYWlzZSBpby5VbnN1cHBvcnRlZE9wZXJhdGlvbigiU2Vla2luZyBpcyBvbmx5IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib24gZmlsZXMgb3BlbiBmb3IgcmVhZGluZyIpCisgICAgICAgIGlmIG5vdCBzZWxmLl9mcC5zZWVrYWJsZSgpOgorICAgICAgICAgICAgcmFpc2UgaW8uVW5zdXBwb3J0ZWRPcGVyYXRpb24oIlRoZSB1bmRlcmx5aW5nIGZpbGUgb2JqZWN0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb2VzIG5vdCBzdXBwb3J0IHNlZWtpbmciKQorCisgICAgIyBGaWxsIHRoZSByZWFkYWhlYWQgYnVmZmVyIGlmIGl0IGlzIGVtcHR5LiBSZXR1cm5zIEZhbHNlIG9uIEVPRi4KKyAgICBkZWYgX2ZpbGxfYnVmZmVyKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9idWZmZXI6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIGlmIHNlbGYuX2RlY29tcHJlc3Nvci51bnVzZWRfZGF0YToKKyAgICAgICAgICAgIHJhd2Jsb2NrID0gc2VsZi5fZGVjb21wcmVzc29yLnVudXNlZF9kYXRhCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYXdibG9jayA9IHNlbGYuX2ZwLnJlYWQoX0JVRkZFUl9TSVpFKQorCisgICAgICAgIGlmIG5vdCByYXdibG9jazoKKyAgICAgICAgICAgIGlmIHNlbGYuX2RlY29tcHJlc3Nvci5lb2Y6CisgICAgICAgICAgICAgICAgc2VsZi5fbW9kZSA9IF9NT0RFX1JFQURfRU9GCisgICAgICAgICAgICAgICAgc2VsZi5fc2l6ZSA9IHNlbGYuX3BvcworICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBFT0ZFcnJvcigiQ29tcHJlc3NlZCBmaWxlIGVuZGVkIGJlZm9yZSB0aGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmQtb2Ytc3RyZWFtIG1hcmtlciB3YXMgcmVhY2hlZCIpCisKKyAgICAgICAgIyBDb250aW51ZSB0byBuZXh0IHN0cmVhbS4KKyAgICAgICAgaWYgc2VsZi5fZGVjb21wcmVzc29yLmVvZjoKKyAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NvciA9IExaTUFEZWNvbXByZXNzb3IoKipzZWxmLl9pbml0X2FyZ3MpCisKKyAgICAgICAgc2VsZi5fYnVmZmVyID0gc2VsZi5fZGVjb21wcmVzc29yLmRlY29tcHJlc3MocmF3YmxvY2spCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAjIFJlYWQgZGF0YSB1bnRpbCBFT0YuCisgICAgIyBJZiByZXR1cm5fZGF0YSBpcyBmYWxzZSwgY29uc3VtZSB0aGUgZGF0YSB3aXRob3V0IHJldHVybmluZyBpdC4KKyAgICBkZWYgX3JlYWRfYWxsKHNlbGYsIHJldHVybl9kYXRhPVRydWUpOgorICAgICAgICBibG9ja3MgPSBbXQorICAgICAgICB3aGlsZSBzZWxmLl9maWxsX2J1ZmZlcigpOgorICAgICAgICAgICAgaWYgcmV0dXJuX2RhdGE6CisgICAgICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChzZWxmLl9idWZmZXIpCisgICAgICAgICAgICBzZWxmLl9wb3MgKz0gbGVuKHNlbGYuX2J1ZmZlcikKKyAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IE5vbmUKKyAgICAgICAgaWYgcmV0dXJuX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gYiIiLmpvaW4oYmxvY2tzKQorCisgICAgIyBSZWFkIGEgYmxvY2sgb2YgdXAgdG8gbiBieXRlcy4KKyAgICAjIElmIHJldHVybl9kYXRhIGlzIGZhbHNlLCBjb25zdW1lIHRoZSBkYXRhIHdpdGhvdXQgcmV0dXJuaW5nIGl0LgorICAgIGRlZiBfcmVhZF9ibG9jayhzZWxmLCBuLCByZXR1cm5fZGF0YT1UcnVlKToKKyAgICAgICAgYmxvY2tzID0gW10KKyAgICAgICAgd2hpbGUgbiA+IDAgYW5kIHNlbGYuX2ZpbGxfYnVmZmVyKCk6CisgICAgICAgICAgICBpZiBuIDwgbGVuKHNlbGYuX2J1ZmZlcik6CisgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2J1ZmZlcls6bl0KKyAgICAgICAgICAgICAgICBzZWxmLl9idWZmZXIgPSBzZWxmLl9idWZmZXJbbjpdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9idWZmZXIKKyAgICAgICAgICAgICAgICBzZWxmLl9idWZmZXIgPSBOb25lCisgICAgICAgICAgICBpZiByZXR1cm5fZGF0YToKKyAgICAgICAgICAgICAgICBibG9ja3MuYXBwZW5kKGRhdGEpCisgICAgICAgICAgICBzZWxmLl9wb3MgKz0gbGVuKGRhdGEpCisgICAgICAgICAgICBuIC09IGxlbihkYXRhKQorICAgICAgICBpZiByZXR1cm5fZGF0YToKKyAgICAgICAgICAgIHJldHVybiBiIiIuam9pbihibG9ja3MpCisKKyAgICBkZWYgcGVlayhzZWxmLCBzaXplPS0xKToKKyAgICAgICAgIiIiUmV0dXJuIGJ1ZmZlcmVkIGRhdGEgd2l0aG91dCBhZHZhbmNpbmcgdGhlIGZpbGUgcG9zaXRpb24uCisKKyAgICAgICAgQWx3YXlzIHJldHVybnMgYXQgbGVhc3Qgb25lIGJ5dGUgb2YgZGF0YSwgdW5sZXNzIGF0IEVPRi4KKyAgICAgICAgVGhlIGV4YWN0IG51bWJlciBvZiBieXRlcyByZXR1cm5lZCBpcyB1bnNwZWNpZmllZC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2NoZWNrX2Nhbl9yZWFkKCkKKyAgICAgICAgaWYgc2VsZi5fbW9kZSA9PSBfTU9ERV9SRUFEX0VPRiBvciBub3Qgc2VsZi5fZmlsbF9idWZmZXIoKToKKyAgICAgICAgICAgIHJldHVybiBiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1ZmZlcgorCisgICAgZGVmIHJlYWQoc2VsZiwgc2l6ZT0tMSk6CisgICAgICAgICIiIlJlYWQgdXAgdG8gc2l6ZSB1bmNvbXByZXNzZWQgYnl0ZXMgZnJvbSB0aGUgZmlsZS4KKworICAgICAgICBJZiBzaXplIGlzIG5lZ2F0aXZlIG9yIG9taXR0ZWQsIHJlYWQgdW50aWwgRU9GIGlzIHJlYWNoZWQuCisgICAgICAgIFJldHVybnMgYiIiIGlmIHRoZSBmaWxlIGlzIGFscmVhZHkgYXQgRU9GLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fY2hlY2tfY2FuX3JlYWQoKQorICAgICAgICBpZiBzZWxmLl9tb2RlID09IF9NT0RFX1JFQURfRU9GIG9yIHNpemUgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBiIiIKKyAgICAgICAgZWxpZiBzaXplIDwgMDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9yZWFkX2FsbCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fcmVhZF9ibG9jayhzaXplKQorCisgICAgZGVmIHJlYWQxKHNlbGYsIHNpemU9LTEpOgorICAgICAgICAiIiJSZWFkIHVwIHRvIHNpemUgdW5jb21wcmVzc2VkIGJ5dGVzIHdpdGggYXQgbW9zdCBvbmUgcmVhZAorICAgICAgICBmcm9tIHRoZSB1bmRlcmx5aW5nIHN0cmVhbS4KKworICAgICAgICBSZXR1cm5zIGIiIiBpZiB0aGUgZmlsZSBpcyBhdCBFT0YuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9jaGVja19jYW5fcmVhZCgpCisgICAgICAgIGlmIChzaXplID09IDAgb3Igc2VsZi5fbW9kZSA9PSBfTU9ERV9SRUFEX0VPRiBvcgorICAgICAgICAgICAgbm90IHNlbGYuX2ZpbGxfYnVmZmVyKCkpOgorICAgICAgICAgICAgcmV0dXJuIGIiIgorICAgICAgICBpZiAwIDwgc2l6ZSA8IGxlbihzZWxmLl9idWZmZXIpOgorICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2J1ZmZlcls6c2l6ZV0KKyAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IHNlbGYuX2J1ZmZlcltzaXplOl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9idWZmZXIKKyAgICAgICAgICAgIHNlbGYuX2J1ZmZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5fcG9zICs9IGxlbihkYXRhKQorICAgICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgorICAgICAgICAiIiJXcml0ZSBhIGJ5dGVzIG9iamVjdCB0byB0aGUgZmlsZS4KKworICAgICAgICBSZXR1cm5zIHRoZSBudW1iZXIgb2YgdW5jb21wcmVzc2VkIGJ5dGVzIHdyaXR0ZW4sIHdoaWNoIGlzCisgICAgICAgIGFsd2F5cyBsZW4oZGF0YSkuIE5vdGUgdGhhdCBkdWUgdG8gYnVmZmVyaW5nLCB0aGUgZmlsZSBvbiBkaXNrCisgICAgICAgIG1heSBub3QgcmVmbGVjdCB0aGUgZGF0YSB3cml0dGVuIHVudGlsIGNsb3NlKCkgaXMgY2FsbGVkLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fY2hlY2tfY2FuX3dyaXRlKCkKKyAgICAgICAgY29tcHJlc3NlZCA9IHNlbGYuX2NvbXByZXNzb3IuY29tcHJlc3MoZGF0YSkKKyAgICAgICAgc2VsZi5fZnAud3JpdGUoY29tcHJlc3NlZCkKKyAgICAgICAgc2VsZi5fcG9zICs9IGxlbihkYXRhKQorICAgICAgICByZXR1cm4gbGVuKGRhdGEpCisKKyAgICAjIFJld2luZCB0aGUgZmlsZSB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkYXRhIHN0cmVhbS4KKyAgICBkZWYgX3Jld2luZChzZWxmKToKKyAgICAgICAgc2VsZi5fZnAuc2VlaygwLCAwKQorICAgICAgICBzZWxmLl9tb2RlID0gX01PREVfUkVBRAorICAgICAgICBzZWxmLl9wb3MgPSAwCisgICAgICAgIHNlbGYuX2RlY29tcHJlc3NvciA9IExaTUFEZWNvbXByZXNzb3IoKipzZWxmLl9pbml0X2FyZ3MpCisgICAgICAgIHNlbGYuX2J1ZmZlciA9IE5vbmUKKworICAgIGRlZiBzZWVrKHNlbGYsIG9mZnNldCwgd2hlbmNlPTApOgorICAgICAgICAiIiJDaGFuZ2UgdGhlIGZpbGUgcG9zaXRpb24uCisKKyAgICAgICAgVGhlIG5ldyBwb3NpdGlvbiBpcyBzcGVjaWZpZWQgYnkgb2Zmc2V0LCByZWxhdGl2ZSB0byB0aGUKKyAgICAgICAgcG9zaXRpb24gaW5kaWNhdGVkIGJ5IHdoZW5jZS4gUG9zc2libGUgdmFsdWVzIGZvciB3aGVuY2UgYXJlOgorCisgICAgICAgICAgICAwOiBzdGFydCBvZiBzdHJlYW0gKGRlZmF1bHQpOiBvZmZzZXQgbXVzdCBub3QgYmUgbmVnYXRpdmUKKyAgICAgICAgICAgIDE6IGN1cnJlbnQgc3RyZWFtIHBvc2l0aW9uCisgICAgICAgICAgICAyOiBlbmQgb2Ygc3RyZWFtOyBvZmZzZXQgbXVzdCBub3QgYmUgcG9zaXRpdmUKKworICAgICAgICBSZXR1cm5zIHRoZSBuZXcgZmlsZSBwb3NpdGlvbi4KKworICAgICAgICBOb3RlIHRoYXQgc2Vla2luZyBpcyBlbXVsYXRlZCwgc3AgZGVwZW5kaW5nIG9uIHRoZSBwYXJhbWV0ZXJzLAorICAgICAgICB0aGlzIG9wZXJhdGlvbiBtYXkgYmUgZXh0cmVtZWx5IHNsb3cuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLl9jaGVja19jYW5fc2VlaygpCisKKyAgICAgICAgIyBSZWNhbGN1bGF0ZSBvZmZzZXQgYXMgYW4gYWJzb2x1dGUgZmlsZSBwb3NpdGlvbi4KKyAgICAgICAgaWYgd2hlbmNlID09IDA6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgd2hlbmNlID09IDE6CisgICAgICAgICAgICBvZmZzZXQgPSBzZWxmLl9wb3MgKyBvZmZzZXQKKyAgICAgICAgZWxpZiB3aGVuY2UgPT0gMjoKKyAgICAgICAgICAgICMgU2Vla2luZyByZWxhdGl2ZSB0byBFT0YgLSB3ZSBuZWVkIHRvIGtub3cgdGhlIGZpbGUncyBzaXplLgorICAgICAgICAgICAgaWYgc2VsZi5fc2l6ZSA8IDA6CisgICAgICAgICAgICAgICAgc2VsZi5fcmVhZF9hbGwocmV0dXJuX2RhdGE9RmFsc2UpCisgICAgICAgICAgICBvZmZzZXQgPSBzZWxmLl9zaXplICsgb2Zmc2V0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIHZhbHVlIGZvciB3aGVuY2U6IHt9Ii5mb3JtYXQod2hlbmNlKSkKKworICAgICAgICAjIE1ha2UgaXQgc28gdGhhdCBvZmZzZXQgaXMgdGhlIG51bWJlciBvZiBieXRlcyB0byBza2lwIGZvcndhcmQuCisgICAgICAgIGlmIG9mZnNldCA8IHNlbGYuX3BvczoKKyAgICAgICAgICAgIHNlbGYuX3Jld2luZCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvZmZzZXQgLT0gc2VsZi5fcG9zCisKKyAgICAgICAgIyBSZWFkIGFuZCBkaXNjYXJkIGRhdGEgdW50aWwgd2UgcmVhY2ggdGhlIGRlc2lyZWQgcG9zaXRpb24uCisgICAgICAgIGlmIHNlbGYuX21vZGUgIT0gX01PREVfUkVBRF9FT0Y6CisgICAgICAgICAgICBzZWxmLl9yZWFkX2Jsb2NrKG9mZnNldCwgcmV0dXJuX2RhdGE9RmFsc2UpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BvcworCisgICAgZGVmIHRlbGwoc2VsZik6CisgICAgICAgICIiIlJldHVybiB0aGUgY3VycmVudCBmaWxlIHBvc2l0aW9uLiIiIgorICAgICAgICBzZWxmLl9jaGVja19ub3RfY2xvc2VkKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3BvcworCisKK2RlZiBvcGVuKGZpbGVuYW1lLCBtb2RlPSJyYiIsICosCisgICAgICAgICBmb3JtYXQ9Tm9uZSwgY2hlY2s9LTEsIHByZXNldD1Ob25lLCBmaWx0ZXJzPU5vbmUsCisgICAgICAgICBlbmNvZGluZz1Ob25lLCBlcnJvcnM9Tm9uZSwgbmV3bGluZT1Ob25lKToKKyAgICAiIiJPcGVuIGFuIExaTUEtY29tcHJlc3NlZCBmaWxlIGluIGJpbmFyeSBvciB0ZXh0IG1vZGUuCisKKyAgICBmaWxlbmFtZSBjYW4gYmUgZWl0aGVyIGFuIGFjdHVhbCBmaWxlIG5hbWUgKGdpdmVuIGFzIGEgc3RyIG9yIGJ5dGVzIG9iamVjdCksCisgICAgaW4gd2hpY2ggY2FzZSB0aGUgbmFtZWQgZmlsZSBpcyBvcGVuZWQsIG9yIGl0IGNhbiBiZSBhbiBleGlzdGluZyBmaWxlIG9iamVjdAorICAgIHRvIHJlYWQgZnJvbSBvciB3cml0ZSB0by4KKworICAgIFRoZSBtb2RlIGFyZ3VtZW50IGNhbiBiZSAiciIsICJyYiIgKGRlZmF1bHQpLCAidyIsICJ3YiIsICJhIiwgb3IgImFiIiBmb3IKKyAgICBiaW5hcnkgbW9kZSwgb3IgInJ0IiwgInd0IiBvciAiYXQiIGZvciB0ZXh0IG1vZGUuCisKKyAgICBUaGUgZm9ybWF0LCBjaGVjaywgcHJlc2V0IGFuZCBmaWx0ZXJzIGFyZ3VtZW50cyBzcGVjaWZ5IHRoZSBjb21wcmVzc2lvbgorICAgIHNldHRpbmdzLCBhcyBmb3IgTFpNQUNvbXByZXNzb3IsIExaTUFEZWNvbXByZXNzb3IgYW5kIExaTUFGaWxlLgorCisgICAgRm9yIGJpbmFyeSBtb2RlLCB0aGlzIGZ1bmN0aW9uIGlzIGVxdWl2YWxlbnQgdG8gdGhlIExaTUFGaWxlIGNvbnN0cnVjdG9yOgorICAgIExaTUFGaWxlKGZpbGVuYW1lLCBtb2RlLCAuLi4pLiBJbiB0aGlzIGNhc2UsIHRoZSBlbmNvZGluZywgZXJyb3JzIGFuZAorICAgIG5ld2xpbmUgYXJndW1lbnRzIG11c3Qgbm90IGJlIHByb3ZpZGVkLgorCisgICAgRm9yIHRleHQgbW9kZSwgYSBMWk1BRmlsZSBvYmplY3QgaXMgY3JlYXRlZCwgYW5kIHdyYXBwZWQgaW4gYW4KKyAgICBpby5UZXh0SU9XcmFwcGVyIGluc3RhbmNlIHdpdGggdGhlIHNwZWNpZmllZCBlbmNvZGluZywgZXJyb3IgaGFuZGxpbmcKKyAgICBiZWhhdmlvciwgYW5kIGxpbmUgZW5kaW5nKHMpLgorCisgICAgIiIiCisgICAgaWYgInQiIGluIG1vZGU6CisgICAgICAgIGlmICJiIiBpbiBtb2RlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCBtb2RlOiAlciIgJSAobW9kZSwpKQorICAgIGVsc2U6CisgICAgICAgIGlmIGVuY29kaW5nIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQXJndW1lbnQgJ2VuY29kaW5nJyBub3Qgc3VwcG9ydGVkIGluIGJpbmFyeSBtb2RlIikKKyAgICAgICAgaWYgZXJyb3JzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQXJndW1lbnQgJ2Vycm9ycycgbm90IHN1cHBvcnRlZCBpbiBiaW5hcnkgbW9kZSIpCisgICAgICAgIGlmIG5ld2xpbmUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJBcmd1bWVudCAnbmV3bGluZScgbm90IHN1cHBvcnRlZCBpbiBiaW5hcnkgbW9kZSIpCisKKyAgICBsel9tb2RlID0gbW9kZS5yZXBsYWNlKCJ0IiwgIiIpCisgICAgYmluYXJ5X2ZpbGUgPSBMWk1BRmlsZShmaWxlbmFtZSwgbHpfbW9kZSwgZm9ybWF0PWZvcm1hdCwgY2hlY2s9Y2hlY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzZXQ9cHJlc2V0LCBmaWx0ZXJzPWZpbHRlcnMpCisKKyAgICBpZiAidCIgaW4gbW9kZToKKyAgICAgICAgcmV0dXJuIGlvLlRleHRJT1dyYXBwZXIoYmluYXJ5X2ZpbGUsIGVuY29kaW5nLCBlcnJvcnMsIG5ld2xpbmUpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGJpbmFyeV9maWxlCisKKworZGVmIGNvbXByZXNzKGRhdGEsIGZvcm1hdD1GT1JNQVRfWFosIGNoZWNrPS0xLCBwcmVzZXQ9Tm9uZSwgZmlsdGVycz1Ob25lKToKKyAgICAiIiJDb21wcmVzcyBhIGJsb2NrIG9mIGRhdGEuCisKKyAgICBSZWZlciB0byBMWk1BQ29tcHJlc3NvcidzIGRvY3N0cmluZyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKKyAgICBvcHRpb25hbCBhcmd1bWVudHMgKmZvcm1hdCosICpjaGVjayosICpwcmVzZXQqIGFuZCAqZmlsdGVycyouCisKKyAgICBGb3IgaW5jcmVtZW50YWwgY29tcHJlc3Npb24sIHVzZSBhbiBMWk1BQ29tcHJlc3NvciBvYmplY3QgaW5zdGVhZC4KKyAgICAiIiIKKyAgICBjb21wID0gTFpNQUNvbXByZXNzb3IoZm9ybWF0LCBjaGVjaywgcHJlc2V0LCBmaWx0ZXJzKQorICAgIHJldHVybiBjb21wLmNvbXByZXNzKGRhdGEpICsgY29tcC5mbHVzaCgpCisKKworZGVmIGRlY29tcHJlc3MoZGF0YSwgZm9ybWF0PUZPUk1BVF9BVVRPLCBtZW1saW1pdD1Ob25lLCBmaWx0ZXJzPU5vbmUpOgorICAgICIiIkRlY29tcHJlc3MgYSBibG9jayBvZiBkYXRhLgorCisgICAgUmVmZXIgdG8gTFpNQURlY29tcHJlc3NvcidzIGRvY3N0cmluZyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUKKyAgICBvcHRpb25hbCBhcmd1bWVudHMgKmZvcm1hdCosICpjaGVjayogYW5kICpmaWx0ZXJzKi4KKworICAgIEZvciBpbmNyZW1lbnRhbCBkZWNvbXByZXNzaW9uLCB1c2UgYSBMWk1BRGVjb21wcmVzc29yIG9iamVjdCBpbnN0ZWFkLgorICAgICIiIgorICAgIHJlc3VsdHMgPSBbXQorICAgIHdoaWxlIFRydWU6CisgICAgICAgIGRlY29tcCA9IExaTUFEZWNvbXByZXNzb3IoZm9ybWF0LCBtZW1saW1pdCwgZmlsdGVycykKKyAgICAgICAgcmVzdWx0cy5hcHBlbmQoZGVjb21wLmRlY29tcHJlc3MoZGF0YSkpCisgICAgICAgIGlmIG5vdCBkZWNvbXAuZW9mOgorICAgICAgICAgICAgcmFpc2UgTFpNQUVycm9yKCJDb21wcmVzc2VkIGRhdGEgZW5kZWQgYmVmb3JlIHRoZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVuZC1vZi1zdHJlYW0gbWFya2VyIHdhcyByZWFjaGVkIikKKyAgICAgICAgaWYgbm90IGRlY29tcC51bnVzZWRfZGF0YToKKyAgICAgICAgICAgIHJldHVybiBiIiIuam9pbihyZXN1bHRzKQorICAgICAgICAjIFRoZXJlIGlzIHVudXNlZCBkYXRhIGxlZnQgb3Zlci4gUHJvY2VlZCB0byBuZXh0IHN0cmVhbS4KKyAgICAgICAgZGF0YSA9IGRlY29tcC51bnVzZWRfZGF0YQpkaWZmIC0tZ2l0IGEvTGliL21haWxib3gucHkgYi9MaWIvbWFpbGJveC5weQppbmRleCA4YjAwNDYwLi4zYWIzMzk2IDEwMDY0NAotLS0gYS9MaWIvbWFpbGJveC5weQorKysgYi9MaWIvbWFpbGJveC5weQpAQCAtMTEyNSw4ICsxMTI1LDcgQEAKICAgICBkZWYgZ2V0X3NlcXVlbmNlcyhzZWxmKToKICAgICAgICAgIiIiUmV0dXJuIGEgbmFtZS10by1rZXktbGlzdCBkaWN0aW9uYXJ5IHRvIGRlZmluZSBlYWNoIHNlcXVlbmNlLiIiIgogICAgICAgICByZXN1bHRzID0ge30KLSAgICAgICAgZiA9IG9wZW4ob3MucGF0aC5qb2luKHNlbGYuX3BhdGgsICcubWhfc2VxdWVuY2VzJyksICdyJykKLSAgICAgICAgdHJ5OgorICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHNlbGYuX3BhdGgsICcubWhfc2VxdWVuY2VzJyksICdyJywgZW5jb2Rpbmc9J0FTQ0lJJykgYXMgZjoKICAgICAgICAgICAgIGFsbF9rZXlzID0gc2V0KHNlbGYua2V5cygpKQogICAgICAgICAgICAgZm9yIGxpbmUgaW4gZjoKICAgICAgICAgICAgICAgICB0cnk6CkBAIC0xMTQ1LDEzICsxMTQ0LDExIEBACiAgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEZvcm1hdEVycm9yKCdJbnZhbGlkIHNlcXVlbmNlIHNwZWNpZmljYXRpb246ICVzJyAlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUucnN0cmlwKCkpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgcmV0dXJuIHJlc3VsdHMKIAogICAgIGRlZiBzZXRfc2VxdWVuY2VzKHNlbGYsIHNlcXVlbmNlcyk6CiAgICAgICAgICIiIlNldCBzZXF1ZW5jZXMgdXNpbmcgdGhlIGdpdmVuIG5hbWUtdG8ta2V5LWxpc3QgZGljdGlvbmFyeS4iIiIKLSAgICAgICAgZiA9IG9wZW4ob3MucGF0aC5qb2luKHNlbGYuX3BhdGgsICcubWhfc2VxdWVuY2VzJyksICdyKycpCisgICAgICAgIGYgPSBvcGVuKG9zLnBhdGguam9pbihzZWxmLl9wYXRoLCAnLm1oX3NlcXVlbmNlcycpLCAncisnLCBlbmNvZGluZz0nQVNDSUknKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy5jbG9zZShvcy5vcGVuKGYubmFtZSwgb3MuT19XUk9OTFkgfCBvcy5PX1RSVU5DKSkKICAgICAgICAgICAgIGZvciBuYW1lLCBrZXlzIGluIHNlcXVlbmNlcy5pdGVtcygpOgpAQCAtMTQ4NCw5ICsxNDgxLDEwIEBACiAKICAgICBkZWYgX2JlY29tZV9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgogICAgICAgICAiIiJBc3N1bWUgdGhlIG5vbi1mb3JtYXQtc3BlY2lmaWMgc3RhdGUgb2YgbWVzc2FnZS4iIiIKLSAgICAgICAgZm9yIG5hbWUgaW4gKCdfaGVhZGVycycsICdfdW5peGZyb20nLCAnX3BheWxvYWQnLCAnX2NoYXJzZXQnLAotICAgICAgICAgICAgICAgICAgICAgJ3ByZWFtYmxlJywgJ2VwaWxvZ3VlJywgJ2RlZmVjdHMnLCAnX2RlZmF1bHRfdHlwZScpOgotICAgICAgICAgICAgc2VsZi5fX2RpY3RfX1tuYW1lXSA9IG1lc3NhZ2UuX19kaWN0X19bbmFtZV0KKyAgICAgICAgdHlwZV9zcGVjaWZpYyA9IGdldGF0dHIobWVzc2FnZSwgJ190eXBlX3NwZWNpZmljX2F0dHJpYnV0ZXMnLCBbXSkKKyAgICAgICAgZm9yIG5hbWUgaW4gbWVzc2FnZS5fX2RpY3RfXzoKKyAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIHR5cGVfc3BlY2lmaWM6CisgICAgICAgICAgICAgICAgc2VsZi5fX2RpY3RfX1tuYW1lXSA9IG1lc3NhZ2UuX19kaWN0X19bbmFtZV0KIAogICAgIGRlZiBfZXhwbGFpbl90byhzZWxmLCBtZXNzYWdlKToKICAgICAgICAgIiIiQ29weSBmb3JtYXQtc3BlY2lmaWMgc3RhdGUgdG8gbWVzc2FnZSBpbnNvZmFyIGFzIHBvc3NpYmxlLiIiIgpAQCAtMTQ5OSw2ICsxNDk3LDggQEAKIGNsYXNzIE1haWxkaXJNZXNzYWdlKE1lc3NhZ2UpOgogICAgICIiIk1lc3NhZ2Ugd2l0aCBNYWlsZGlyLXNwZWNpZmljIHByb3BlcnRpZXMuIiIiCiAKKyAgICBfdHlwZV9zcGVjaWZpY19hdHRyaWJ1dGVzID0gWydfc3ViZGlyJywgJ19pbmZvJywgJ19kYXRlJ10KKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlPU5vbmUpOgogICAgICAgICAiIiJJbml0aWFsaXplIGEgTWFpbGRpck1lc3NhZ2UgaW5zdGFuY2UuIiIiCiAgICAgICAgIHNlbGYuX3N1YmRpciA9ICduZXcnCkBAIC0xNjA2LDYgKzE2MDYsOCBAQAogY2xhc3MgX21ib3hNTURGTWVzc2FnZShNZXNzYWdlKToKICAgICAiIiJNZXNzYWdlIHdpdGggbWJveC0gb3IgTU1ERi1zcGVjaWZpYyBwcm9wZXJ0aWVzLiIiIgogCisgICAgX3R5cGVfc3BlY2lmaWNfYXR0cmlidXRlcyA9IFsnX2Zyb20nXQorCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2U9Tm9uZSk6CiAgICAgICAgICIiIkluaXRpYWxpemUgYW4gbWJveE1NREZNZXNzYWdlIGluc3RhbmNlLiIiIgogICAgICAgICBzZWxmLnNldF9mcm9tKCdNQUlMRVItREFFTU9OJywgVHJ1ZSkKQEAgLTE3MjEsNiArMTcyMyw4IEBACiBjbGFzcyBNSE1lc3NhZ2UoTWVzc2FnZSk6CiAgICAgIiIiTWVzc2FnZSB3aXRoIE1ILXNwZWNpZmljIHByb3BlcnRpZXMuIiIiCiAKKyAgICBfdHlwZV9zcGVjaWZpY19hdHRyaWJ1dGVzID0gWydfc2VxdWVuY2VzJ10KKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlPU5vbmUpOgogICAgICAgICAiIiJJbml0aWFsaXplIGFuIE1ITWVzc2FnZSBpbnN0YW5jZS4iIiIKICAgICAgICAgc2VsZi5fc2VxdWVuY2VzID0gW10KQEAgLTE3OTEsNiArMTc5NSw4IEBACiBjbGFzcyBCYWJ5bE1lc3NhZ2UoTWVzc2FnZSk6CiAgICAgIiIiTWVzc2FnZSB3aXRoIEJhYnlsLXNwZWNpZmljIHByb3BlcnRpZXMuIiIiCiAKKyAgICBfdHlwZV9zcGVjaWZpY19hdHRyaWJ1dGVzID0gWydfbGFiZWxzJywgJ192aXNpYmxlJ10KKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlPU5vbmUpOgogICAgICAgICAiIiJJbml0aWFsaXplIGFuIEJhYnlsTWVzc2FnZSBpbnN0YW5jZS4iIiIKICAgICAgICAgc2VsZi5fbGFiZWxzID0gW10KZGlmZiAtLWdpdCBhL0xpYi9tYWlsY2FwLnB5IGIvTGliL21haWxjYXAucHkKaW5kZXggNGFlMTNkNy4uOTlmNDk1OCAxMDA2NDQKLS0tIGEvTGliL21haWxjYXAucHkKKysrIGIvTGliL21haWxjYXAucHkKQEAgLTMzLDEwICszMywxMCBAQAogCiBkZWYgbGlzdG1haWxjYXBmaWxlcygpOgogICAgICIiIlJldHVybiBhIGxpc3Qgb2YgYWxsIG1haWxjYXAgZmlsZXMgZm91bmQgb24gdGhlIHN5c3RlbS4iIiIKLSAgICAjIFhYWCBBY3R1YWxseSwgdGhpcyBpcyBVbml4LXNwZWNpZmljCisgICAgIyBUaGlzIGlzIG1vc3RseSBhIFVuaXggdGhpbmcsIGJ1dCB3ZSB1c2UgdGhlIE9TIHBhdGggc2VwYXJhdG9yIGFueXdheQogICAgIGlmICdNQUlMQ0FQUycgaW4gb3MuZW52aXJvbjoKLSAgICAgICAgc3RyID0gb3MuZW52aXJvblsnTUFJTENBUFMnXQotICAgICAgICBtYWlsY2FwcyA9IHN0ci5zcGxpdCgnOicpCisgICAgICAgIHBhdGhzdHIgPSBvcy5lbnZpcm9uWydNQUlMQ0FQUyddCisgICAgICAgIG1haWxjYXBzID0gcGF0aHN0ci5zcGxpdChvcy5wYXRoc2VwKQogICAgIGVsc2U6CiAgICAgICAgIGlmICdIT01FJyBpbiBvcy5lbnZpcm9uOgogICAgICAgICAgICAgaG9tZSA9IG9zLmVudmlyb25bJ0hPTUUnXQpkaWZmIC0tZ2l0IGEvTGliL21pbWV0eXBlcy5weSBiL0xpYi9taW1ldHlwZXMucHkKaW5kZXggNGIxZTJmOS4uZmE2MjMyNiAxMDA2NDQKLS0tIGEvTGliL21pbWV0eXBlcy5weQorKysgYi9MaWIvbWltZXR5cGVzLnB5CkBAIC0yNDksNyArMjQ5LDYgQEAKICAgICAgICAgICAgICAgICAgICAgeWllbGQgY3R5cGUKICAgICAgICAgICAgICAgICBpICs9IDEKIAotICAgICAgICBkZWZhdWx0X2VuY29kaW5nID0gc3lzLmdldGRlZmF1bHRlbmNvZGluZygpCiAgICAgICAgIHdpdGggX3dpbnJlZy5PcGVuS2V5KF93aW5yZWcuSEtFWV9DTEFTU0VTX1JPT1QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHInTUlNRVxEYXRhYmFzZVxDb250ZW50IFR5cGUnKSBhcyBtaW1lZGI6CiAgICAgICAgICAgICBmb3IgY3R5cGUgaW4gZW51bV90eXBlcyhtaW1lZGIpOgpAQCAtNDM0LDYgKzQzMyw4IEBACiAgICAgICAgICcua3NoJyAgICA6ICd0ZXh0L3BsYWluJywKICAgICAgICAgJy5sYXRleCcgIDogJ2FwcGxpY2F0aW9uL3gtbGF0ZXgnLAogICAgICAgICAnLm0xdicgICAgOiAndmlkZW8vbXBlZycsCisgICAgICAgICcubTN1JyAgICA6ICdhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCcsCisgICAgICAgICcubTN1OCcgICA6ICdhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCcsCiAgICAgICAgICcubWFuJyAgICA6ICdhcHBsaWNhdGlvbi94LXRyb2ZmLW1hbicsCiAgICAgICAgICcubWUnICAgICA6ICdhcHBsaWNhdGlvbi94LXRyb2ZmLW1lJywKICAgICAgICAgJy5taHQnICAgIDogJ21lc3NhZ2UvcmZjODIyJywKZGlmZiAtLWdpdCBhL0xpYi9tb2R1bGVmaW5kZXIucHkgYi9MaWIvbW9kdWxlZmluZGVyLnB5CmluZGV4IGYwMzNiYTkuLjY4M2UzMDUgMTAwNjQ0Ci0tLSBhL0xpYi9tb2R1bGVmaW5kZXIucHkKKysrIGIvTGliL21vZHVsZWZpbmRlci5weQpAQCAtMSw2ICsxLDUgQEAKICIiIkZpbmQgbW9kdWxlcyB1c2VkIGJ5IGEgc2NyaXB0LCB1c2luZyBpbnRyb3NwZWN0aW9uLiIiIgogCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGdlbmVyYXRvcnMKIGltcG9ydCBkaXMKIGltcG9ydCBpbXAKIGltcG9ydCBtYXJzaGFsCkBAIC05LDggKzgsNiBAQAogaW1wb3J0IHR5cGVzCiBpbXBvcnQgc3RydWN0CiAKLVJFQURfTU9ERSA9ICJyVSIKLQogIyBYWFggQ2xlYW4gdXAgb25jZSBzdHI4J3MgY3N0b3IgbWF0Y2hlcyBieXRlcy4KIExPQURfQ09OU1QgPSBieXRlcyhbZGlzLm9wbmFtZS5pbmRleCgnTE9BRF9DT05TVCcpXSkKIElNUE9SVF9OQU1FID0gYnl0ZXMoW2Rpcy5vcG5hbWUuaW5kZXgoJ0lNUE9SVF9OQU1FJyldKQpAQCAtMjksOSArMjYsNyBAQAogCiAjIEEgUHVibGljIGludGVyZmFjZQogZGVmIEFkZFBhY2thZ2VQYXRoKHBhY2thZ2VuYW1lLCBwYXRoKToKLSAgICBwYXRocyA9IHBhY2thZ2VQYXRoTWFwLmdldChwYWNrYWdlbmFtZSwgW10pCi0gICAgcGF0aHMuYXBwZW5kKHBhdGgpCi0gICAgcGFja2FnZVBhdGhNYXBbcGFja2FnZW5hbWVdID0gcGF0aHMKKyAgICBwYWNrYWdlUGF0aE1hcC5zZXRkZWZhdWx0KHBhY2thZ2VuYW1lLCBbXSkuYXBwZW5kKHBhdGgpCiAKIHJlcGxhY2VQYWNrYWdlTWFwID0ge30KIApAQCAtMTA2LDE0ICsxMDEsMTQgQEAKIAogICAgIGRlZiBydW5fc2NyaXB0KHNlbGYsIHBhdGhuYW1lKToKICAgICAgICAgc2VsZi5tc2coMiwgInJ1bl9zY3JpcHQiLCBwYXRobmFtZSkKLSAgICAgICAgd2l0aCBvcGVuKHBhdGhuYW1lLCBSRUFEX01PREUpIGFzIGZwOgorICAgICAgICB3aXRoIG9wZW4ocGF0aG5hbWUpIGFzIGZwOgogICAgICAgICAgICAgc3R1ZmYgPSAoIiIsICJyIiwgaW1wLlBZX1NPVVJDRSkKICAgICAgICAgICAgIHNlbGYubG9hZF9tb2R1bGUoJ19fbWFpbl9fJywgZnAsIHBhdGhuYW1lLCBzdHVmZikKIAogICAgIGRlZiBsb2FkX2ZpbGUoc2VsZiwgcGF0aG5hbWUpOgogICAgICAgICBkaXIsIG5hbWUgPSBvcy5wYXRoLnNwbGl0KHBhdGhuYW1lKQogICAgICAgICBuYW1lLCBleHQgPSBvcy5wYXRoLnNwbGl0ZXh0KG5hbWUpCi0gICAgICAgIHdpdGggb3BlbihwYXRobmFtZSwgUkVBRF9NT0RFKSBhcyBmcDoKKyAgICAgICAgd2l0aCBvcGVuKHBhdGhuYW1lKSBhcyBmcDoKICAgICAgICAgICAgIHN0dWZmID0gKGV4dCwgInIiLCBpbXAuUFlfU09VUkNFKQogICAgICAgICAgICAgc2VsZi5sb2FkX21vZHVsZShuYW1lLCBmcCwgcGF0aG5hbWUsIHN0dWZmKQogCkBAIC0yMjcsOCArMjIyLDkgQEAKICAgICAgICAgIyBCdXQgd2UgbXVzdCBhbHNvIGNvbGxlY3QgUHl0aG9uIGV4dGVuc2lvbiBtb2R1bGVzIC0gYWx0aG91Z2gKICAgICAgICAgIyB3ZSBjYW5ub3Qgc2VwYXJhdGUgbm9ybWFsIGRsbHMgZnJvbSBQeXRob24gZXh0ZW5zaW9ucy4KICAgICAgICAgc3VmZml4ZXMgPSBbXQotICAgICAgICBmb3IgdHJpcGxlIGluIGltcC5nZXRfc3VmZml4ZXMoKToKLSAgICAgICAgICAgIHN1ZmZpeGVzLmFwcGVuZCh0cmlwbGVbMF0pCisgICAgICAgIHN1ZmZpeGVzICs9IGltcG9ydGxpYi5tYWNoaW5lcnkuRVhURU5TSU9OX1NVRkZJWEVTWzpdCisgICAgICAgIHN1ZmZpeGVzICs9IGltcG9ydGxpYi5tYWNoaW5lcnkuU09VUkNFX1NVRkZJWEVTWzpdCisgICAgICAgIHN1ZmZpeGVzICs9IGltcG9ydGxpYi5tYWNoaW5lcnkuQllURUNPREVfU1VGRklYRVNbOl0KICAgICAgICAgZm9yIGRpciBpbiBtLl9fcGF0aF9fOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIG5hbWVzID0gb3MubGlzdGRpcihkaXIpCkBAIC0yNzAsNyArMjY2LDggQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgbSA9IHNlbGYubG9hZF9tb2R1bGUoZnFuYW1lLCBmcCwgcGF0aG5hbWUsIHN0dWZmKQogICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgaWYgZnA6IGZwLmNsb3NlKCkKKyAgICAgICAgICAgIGlmIGZwOgorICAgICAgICAgICAgICAgIGZwLmNsb3NlKCkKICAgICAgICAgaWYgcGFyZW50OgogICAgICAgICAgICAgc2V0YXR0cihwYXJlbnQsIHBhcnRuYW1lLCBtKQogICAgICAgICBzZWxmLm1zZ291dCgzLCAiaW1wb3J0X21vZHVsZSAtPiIsIG0pCkBAIC02NjIsNCArNjU5LDQgQEAKICAgICB0cnk6CiAgICAgICAgIG1mID0gdGVzdCgpCiAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICBwcmludCgiXG5baW50ZXJydXB0XSIpCisgICAgICAgIHByaW50KCJcbltpbnRlcnJ1cHRlZF0iKQpkaWZmIC0tZ2l0IGEvTGliL211bHRpcHJvY2Vzc2luZy9fX2luaXRfXy5weSBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvX19pbml0X18ucHkKaW5kZXggZTZlMTZjOC4uMWYzZTY3YyAxMDA2NDQKLS0tIGEvTGliL211bHRpcHJvY2Vzc2luZy9fX2luaXRfXy5weQorKysgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL19faW5pdF9fLnB5CkBAIC0xMywzMiArMTMsNyBAQAogIwogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgYW55IGNvbnRyaWJ1dG9ycyBtYXkgYmUKLSMgICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLSMgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotIyBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotIyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0jIFNVQ0ggREFNQUdFLgorIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCiAjCiAKIF9fdmVyc2lvbl9fID0gJzAuNzBhMScKQEAgLTQ4LDggKzIzLDggQEAKICAgICAnTWFuYWdlcicsICdQaXBlJywgJ2NwdV9jb3VudCcsICdsb2dfdG9fc3RkZXJyJywgJ2dldF9sb2dnZXInLAogICAgICdhbGxvd19jb25uZWN0aW9uX3BpY2tsaW5nJywgJ0J1ZmZlclRvb1Nob3J0JywgJ1RpbWVvdXRFcnJvcicsCiAgICAgJ0xvY2snLCAnUkxvY2snLCAnU2VtYXBob3JlJywgJ0JvdW5kZWRTZW1hcGhvcmUnLCAnQ29uZGl0aW9uJywKLSAgICAnRXZlbnQnLCAnUXVldWUnLCAnSm9pbmFibGVRdWV1ZScsICdQb29sJywgJ1ZhbHVlJywgJ0FycmF5JywKLSAgICAnUmF3VmFsdWUnLCAnUmF3QXJyYXknLCAnU1VCREVCVUcnLCAnU1VCV0FSTklORycsCisgICAgJ0V2ZW50JywgJ0JhcnJpZXInLCAnUXVldWUnLCAnU2ltcGxlUXVldWUnLCAnSm9pbmFibGVRdWV1ZScsICdQb29sJywKKyAgICAnVmFsdWUnLCAnQXJyYXknLCAnUmF3VmFsdWUnLCAnUmF3QXJyYXknLCAnU1VCREVCVUcnLCAnU1VCV0FSTklORycsCiAgICAgXQogCiBfX2F1dGhvcl9fID0gJ1IuIE91ZGtlcmsgKHIubS5vdWRrZXJrQGdtYWlsLmNvbSknCkBAIC0xNjEsNyArMTM2LDkgQEAKICAgICAnJycKICAgICBJbnN0YWxsIHN1cHBvcnQgZm9yIHNlbmRpbmcgY29ubmVjdGlvbnMgYW5kIHNvY2tldHMgYmV0d2VlbiBwcm9jZXNzZXMKICAgICAnJycKLSAgICBmcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgcmVkdWN0aW9uCisgICAgIyBUaGlzIGlzIHVuZG9jdW1lbnRlZC4gIEluIHByZXZpb3VzIHZlcnNpb25zIG9mIG11bHRpcHJvY2Vzc2luZworICAgICMgaXRzIG9ubHkgZWZmZWN0IHdhcyB0byBtYWtlIHNvY2tldCBvYmplY3RzIGluaGVyaXRhYmxlIG9uIFdpbmRvd3MuCisgICAgaW1wb3J0IG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uCiAKICMKICMgRGVmaW5pdGlvbnMgZGVwZW5kaW5nIG9uIG5hdGl2ZSBzZW1hcGhvcmVzCkBAIC0yMDksNiArMTg2LDEzIEBACiAgICAgZnJvbSBtdWx0aXByb2Nlc3Npbmcuc3luY2hyb25pemUgaW1wb3J0IEV2ZW50CiAgICAgcmV0dXJuIEV2ZW50KCkKIAorZGVmIEJhcnJpZXIocGFydGllcywgYWN0aW9uPU5vbmUsIHRpbWVvdXQ9Tm9uZSk6CisgICAgJycnCisgICAgUmV0dXJucyBhIGJhcnJpZXIgb2JqZWN0CisgICAgJycnCisgICAgZnJvbSBtdWx0aXByb2Nlc3Npbmcuc3luY2hyb25pemUgaW1wb3J0IEJhcnJpZXIKKyAgICByZXR1cm4gQmFycmllcihwYXJ0aWVzLCBhY3Rpb24sIHRpbWVvdXQpCisKIGRlZiBRdWV1ZShtYXhzaXplPTApOgogICAgICcnJwogICAgIFJldHVybnMgYSBxdWV1ZSBvYmplY3QKQEAgLTIyMyw2ICsyMDcsMTMgQEAKICAgICBmcm9tIG11bHRpcHJvY2Vzc2luZy5xdWV1ZXMgaW1wb3J0IEpvaW5hYmxlUXVldWUKICAgICByZXR1cm4gSm9pbmFibGVRdWV1ZShtYXhzaXplKQogCitkZWYgU2ltcGxlUXVldWUoKToKKyAgICAnJycKKyAgICBSZXR1cm5zIGEgcXVldWUgb2JqZWN0CisgICAgJycnCisgICAgZnJvbSBtdWx0aXByb2Nlc3NpbmcucXVldWVzIGltcG9ydCBTaW1wbGVRdWV1ZQorICAgIHJldHVybiBTaW1wbGVRdWV1ZSgpCisKIGRlZiBQb29sKHByb2Nlc3Nlcz1Ob25lLCBpbml0aWFsaXplcj1Ob25lLCBpbml0YXJncz0oKSwgbWF4dGFza3NwZXJjaGlsZD1Ob25lKToKICAgICAnJycKICAgICBSZXR1cm5zIGEgcHJvY2VzcyBwb29sIG9iamVjdApAQCAtMjQ0LDE5ICsyMzUsMTkgQEAKICAgICBmcm9tIG11bHRpcHJvY2Vzc2luZy5zaGFyZWRjdHlwZXMgaW1wb3J0IFJhd0FycmF5CiAgICAgcmV0dXJuIFJhd0FycmF5KHR5cGVjb2RlX29yX3R5cGUsIHNpemVfb3JfaW5pdGlhbGl6ZXIpCiAKLWRlZiBWYWx1ZSh0eXBlY29kZV9vcl90eXBlLCAqYXJncywgKiprd2RzKToKK2RlZiBWYWx1ZSh0eXBlY29kZV9vcl90eXBlLCAqYXJncywgbG9jaz1UcnVlKToKICAgICAnJycKICAgICBSZXR1cm5zIGEgc3luY2hyb25pemVkIHNoYXJlZCBvYmplY3QKICAgICAnJycKICAgICBmcm9tIG11bHRpcHJvY2Vzc2luZy5zaGFyZWRjdHlwZXMgaW1wb3J0IFZhbHVlCi0gICAgcmV0dXJuIFZhbHVlKHR5cGVjb2RlX29yX3R5cGUsICphcmdzLCAqKmt3ZHMpCisgICAgcmV0dXJuIFZhbHVlKHR5cGVjb2RlX29yX3R5cGUsICphcmdzLCBsb2NrPWxvY2spCiAKLWRlZiBBcnJheSh0eXBlY29kZV9vcl90eXBlLCBzaXplX29yX2luaXRpYWxpemVyLCAqKmt3ZHMpOgorZGVmIEFycmF5KHR5cGVjb2RlX29yX3R5cGUsIHNpemVfb3JfaW5pdGlhbGl6ZXIsICosIGxvY2s9VHJ1ZSk6CiAgICAgJycnCiAgICAgUmV0dXJucyBhIHN5bmNocm9uaXplZCBzaGFyZWQgYXJyYXkKICAgICAnJycKICAgICBmcm9tIG11bHRpcHJvY2Vzc2luZy5zaGFyZWRjdHlwZXMgaW1wb3J0IEFycmF5Ci0gICAgcmV0dXJuIEFycmF5KHR5cGVjb2RlX29yX3R5cGUsIHNpemVfb3JfaW5pdGlhbGl6ZXIsICoqa3dkcykKKyAgICByZXR1cm4gQXJyYXkodHlwZWNvZGVfb3JfdHlwZSwgc2l6ZV9vcl9pbml0aWFsaXplciwgbG9jaz1sb2NrKQogCiAjCiAjCmRpZmYgLS1naXQgYS9MaWIvbXVsdGlwcm9jZXNzaW5nL2Nvbm5lY3Rpb24ucHkgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL2Nvbm5lY3Rpb24ucHkKaW5kZXggZjUzN2EzNi4uZTU2OTRlMyAxMDA2NDQKLS0tIGEvTGliL211bHRpcHJvY2Vzc2luZy9jb25uZWN0aW9uLnB5CisrKyBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvY29ubmVjdGlvbi5weQpAQCAtNCw0OSArNCwzNCBAQAogIyBtdWx0aXByb2Nlc3NpbmcvY29ubmVjdGlvbi5weQogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgYW55IGNvbnRyaWJ1dG9ycyBtYXkgYmUKLSMgICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLSMgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotIyBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotIyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0jIFNVQ0ggREFNQUdFLgorIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCiAjCiAKLV9fYWxsX18gPSBbICdDbGllbnQnLCAnTGlzdGVuZXInLCAnUGlwZScgXQorX19hbGxfXyA9IFsgJ0NsaWVudCcsICdMaXN0ZW5lcicsICdQaXBlJywgJ3dhaXQnIF0KIAoraW1wb3J0IGlvCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCBzZWxlY3QKIGltcG9ydCBzb2NrZXQKK2ltcG9ydCBzdHJ1Y3QKIGltcG9ydCBlcnJubwogaW1wb3J0IHRpbWUKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IGl0ZXJ0b29scwogCiBpbXBvcnQgX211bHRpcHJvY2Vzc2luZwotZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IGN1cnJlbnRfcHJvY2VzcywgQXV0aGVudGljYXRpb25FcnJvcgorZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IGN1cnJlbnRfcHJvY2VzcywgQXV0aGVudGljYXRpb25FcnJvciwgQnVmZmVyVG9vU2hvcnQKIGZyb20gbXVsdGlwcm9jZXNzaW5nLnV0aWwgaW1wb3J0IGdldF90ZW1wX2RpciwgRmluYWxpemUsIHN1Yl9kZWJ1ZywgZGVidWcKLWZyb20gbXVsdGlwcm9jZXNzaW5nLmZvcmtpbmcgaW1wb3J0IGR1cGxpY2F0ZSwgY2xvc2UKLQorZnJvbSBtdWx0aXByb2Nlc3NpbmcuZm9ya2luZyBpbXBvcnQgRm9ya2luZ1BpY2tsZXIKK3RyeToKKyAgICBpbXBvcnQgX3dpbmFwaQorICAgIGZyb20gX3dpbmFwaSBpbXBvcnQgV0FJVF9PQkpFQ1RfMCwgV0FJVF9USU1FT1VULCBJTkZJTklURQorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgorICAgICAgICByYWlzZQorICAgIF93aW5hcGkgPSBOb25lCiAKICMKICMKQEAgLTEyMiw2ICsxMDcsMzA5IEBACiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ2FkZHJlc3MgdHlwZSBvZiAlciB1bnJlY29nbml6ZWQnICUgYWRkcmVzcykKIAogIworIyBDb25uZWN0aW9uIGNsYXNzZXMKKyMKKworY2xhc3MgX0Nvbm5lY3Rpb25CYXNlOgorICAgIF9oYW5kbGUgPSBOb25lCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaGFuZGxlLCByZWFkYWJsZT1UcnVlLCB3cml0YWJsZT1UcnVlKToKKyAgICAgICAgaGFuZGxlID0gaGFuZGxlLl9faW5kZXhfXygpCisgICAgICAgIGlmIGhhbmRsZSA8IDA6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIGhhbmRsZSIpCisgICAgICAgIGlmIG5vdCByZWFkYWJsZSBhbmQgbm90IHdyaXRhYmxlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAiYXQgbGVhc3Qgb25lIG9mIGByZWFkYWJsZWAgYW5kIGB3cml0YWJsZWAgbXVzdCBiZSBUcnVlIikKKyAgICAgICAgc2VsZi5faGFuZGxlID0gaGFuZGxlCisgICAgICAgIHNlbGYuX3JlYWRhYmxlID0gcmVhZGFibGUKKyAgICAgICAgc2VsZi5fd3JpdGFibGUgPSB3cml0YWJsZQorCisgICAgIyBYWFggc2hvdWxkIHdlIHVzZSB1dGlsLkZpbmFsaXplIGluc3RlYWQgb2YgYSBfX2RlbF9fPworCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2hhbmRsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2Nsb3NlKCkKKworICAgIGRlZiBfY2hlY2tfY2xvc2VkKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9oYW5kbGUgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoImhhbmRsZSBpcyBjbG9zZWQiKQorCisgICAgZGVmIF9jaGVja19yZWFkYWJsZShzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuX3JlYWRhYmxlOgorICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiY29ubmVjdGlvbiBpcyB3cml0ZS1vbmx5IikKKworICAgIGRlZiBfY2hlY2tfd3JpdGFibGUoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLl93cml0YWJsZToKKyAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoImNvbm5lY3Rpb24gaXMgcmVhZC1vbmx5IikKKworICAgIGRlZiBfYmFkX21lc3NhZ2VfbGVuZ3RoKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl93cml0YWJsZToKKyAgICAgICAgICAgIHNlbGYuX3JlYWRhYmxlID0gRmFsc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuY2xvc2UoKQorICAgICAgICByYWlzZSBJT0Vycm9yKCJiYWQgbWVzc2FnZSBsZW5ndGgiKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNsb3NlZChzZWxmKToKKyAgICAgICAgIiIiVHJ1ZSBpZiB0aGUgY29ubmVjdGlvbiBpcyBjbG9zZWQiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX2hhbmRsZSBpcyBOb25lCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmVhZGFibGUoc2VsZik6CisgICAgICAgICIiIlRydWUgaWYgdGhlIGNvbm5lY3Rpb24gaXMgcmVhZGFibGUiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX3JlYWRhYmxlCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgd3JpdGFibGUoc2VsZik6CisgICAgICAgICIiIlRydWUgaWYgdGhlIGNvbm5lY3Rpb24gaXMgd3JpdGFibGUiIiIKKyAgICAgICAgcmV0dXJuIHNlbGYuX3dyaXRhYmxlCisKKyAgICBkZWYgZmlsZW5vKHNlbGYpOgorICAgICAgICAiIiJGaWxlIGRlc2NyaXB0b3Igb3IgaGFuZGxlIG9mIHRoZSBjb25uZWN0aW9uIiIiCisgICAgICAgIHNlbGYuX2NoZWNrX2Nsb3NlZCgpCisgICAgICAgIHJldHVybiBzZWxmLl9oYW5kbGUKKworICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgIiIiQ2xvc2UgdGhlIGNvbm5lY3Rpb24iIiIKKyAgICAgICAgaWYgc2VsZi5faGFuZGxlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuX2Nsb3NlKCkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlID0gTm9uZQorCisgICAgZGVmIHNlbmRfYnl0ZXMoc2VsZiwgYnVmLCBvZmZzZXQ9MCwgc2l6ZT1Ob25lKToKKyAgICAgICAgIiIiU2VuZCB0aGUgYnl0ZXMgZGF0YSBmcm9tIGEgYnl0ZXMtbGlrZSBvYmplY3QiIiIKKyAgICAgICAgc2VsZi5fY2hlY2tfY2xvc2VkKCkKKyAgICAgICAgc2VsZi5fY2hlY2tfd3JpdGFibGUoKQorICAgICAgICBtID0gbWVtb3J5dmlldyhidWYpCisgICAgICAgICMgSEFDSyBmb3IgYnl0ZS1pbmRleGluZyBvZiBub24tYnl0ZXdpc2UgYnVmZmVycyAoZS5nLiBhcnJheS5hcnJheSkKKyAgICAgICAgaWYgbS5pdGVtc2l6ZSA+IDE6CisgICAgICAgICAgICBtID0gbWVtb3J5dmlldyhieXRlcyhtKSkKKyAgICAgICAgbiA9IGxlbihtKQorICAgICAgICBpZiBvZmZzZXQgPCAwOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigib2Zmc2V0IGlzIG5lZ2F0aXZlIikKKyAgICAgICAgaWYgbiA8IG9mZnNldDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImJ1ZmZlciBsZW5ndGggPCBvZmZzZXQiKQorICAgICAgICBpZiBzaXplIGlzIE5vbmU6CisgICAgICAgICAgICBzaXplID0gbiAtIG9mZnNldAorICAgICAgICBlbGlmIHNpemUgPCAwOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigic2l6ZSBpcyBuZWdhdGl2ZSIpCisgICAgICAgIGVsaWYgb2Zmc2V0ICsgc2l6ZSA+IG46CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJidWZmZXIgbGVuZ3RoIDwgb2Zmc2V0ICsgc2l6ZSIpCisgICAgICAgIHNlbGYuX3NlbmRfYnl0ZXMobVtvZmZzZXQ6b2Zmc2V0ICsgc2l6ZV0pCisKKyAgICBkZWYgc2VuZChzZWxmLCBvYmopOgorICAgICAgICAiIiJTZW5kIGEgKHBpY2tsYWJsZSkgb2JqZWN0IiIiCisgICAgICAgIHNlbGYuX2NoZWNrX2Nsb3NlZCgpCisgICAgICAgIHNlbGYuX2NoZWNrX3dyaXRhYmxlKCkKKyAgICAgICAgYnVmID0gaW8uQnl0ZXNJTygpCisgICAgICAgIEZvcmtpbmdQaWNrbGVyKGJ1ZiwgcGlja2xlLkhJR0hFU1RfUFJPVE9DT0wpLmR1bXAob2JqKQorICAgICAgICBzZWxmLl9zZW5kX2J5dGVzKGJ1Zi5nZXRidWZmZXIoKSkKKworICAgIGRlZiByZWN2X2J5dGVzKHNlbGYsIG1heGxlbmd0aD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJlY2VpdmUgYnl0ZXMgZGF0YSBhcyBhIGJ5dGVzIG9iamVjdC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuX2NoZWNrX2Nsb3NlZCgpCisgICAgICAgIHNlbGYuX2NoZWNrX3JlYWRhYmxlKCkKKyAgICAgICAgaWYgbWF4bGVuZ3RoIGlzIG5vdCBOb25lIGFuZCBtYXhsZW5ndGggPCAwOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibmVnYXRpdmUgbWF4bGVuZ3RoIikKKyAgICAgICAgYnVmID0gc2VsZi5fcmVjdl9ieXRlcyhtYXhsZW5ndGgpCisgICAgICAgIGlmIGJ1ZiBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fYmFkX21lc3NhZ2VfbGVuZ3RoKCkKKyAgICAgICAgcmV0dXJuIGJ1Zi5nZXR2YWx1ZSgpCisKKyAgICBkZWYgcmVjdl9ieXRlc19pbnRvKHNlbGYsIGJ1Ziwgb2Zmc2V0PTApOgorICAgICAgICAiIiIKKyAgICAgICAgUmVjZWl2ZSBieXRlcyBkYXRhIGludG8gYSB3cml0ZWFibGUgYnVmZmVyLWxpa2Ugb2JqZWN0LgorICAgICAgICBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyByZWFkLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fY2hlY2tfY2xvc2VkKCkKKyAgICAgICAgc2VsZi5fY2hlY2tfcmVhZGFibGUoKQorICAgICAgICB3aXRoIG1lbW9yeXZpZXcoYnVmKSBhcyBtOgorICAgICAgICAgICAgIyBHZXQgYnl0ZXNpemUgb2YgYXJiaXRyYXJ5IGJ1ZmZlcgorICAgICAgICAgICAgaXRlbXNpemUgPSBtLml0ZW1zaXplCisgICAgICAgICAgICBieXRlc2l6ZSA9IGl0ZW1zaXplICogbGVuKG0pCisgICAgICAgICAgICBpZiBvZmZzZXQgPCAwOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5lZ2F0aXZlIG9mZnNldCIpCisgICAgICAgICAgICBlbGlmIG9mZnNldCA+IGJ5dGVzaXplOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm9mZnNldCB0b28gbGFyZ2UiKQorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5fcmVjdl9ieXRlcygpCisgICAgICAgICAgICBzaXplID0gcmVzdWx0LnRlbGwoKQorICAgICAgICAgICAgaWYgYnl0ZXNpemUgPCBvZmZzZXQgKyBzaXplOgorICAgICAgICAgICAgICAgIHJhaXNlIEJ1ZmZlclRvb1Nob3J0KHJlc3VsdC5nZXR2YWx1ZSgpKQorICAgICAgICAgICAgIyBNZXNzYWdlIGNhbiBmaXQgaW4gZGVzdAorICAgICAgICAgICAgcmVzdWx0LnNlZWsoMCkKKyAgICAgICAgICAgIHJlc3VsdC5yZWFkaW50byhtW29mZnNldCAvLyBpdGVtc2l6ZSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2Zmc2V0ICsgc2l6ZSkgLy8gaXRlbXNpemVdKQorICAgICAgICAgICAgcmV0dXJuIHNpemUKKworICAgIGRlZiByZWN2KHNlbGYpOgorICAgICAgICAiIiJSZWNlaXZlIGEgKHBpY2tsYWJsZSkgb2JqZWN0IiIiCisgICAgICAgIHNlbGYuX2NoZWNrX2Nsb3NlZCgpCisgICAgICAgIHNlbGYuX2NoZWNrX3JlYWRhYmxlKCkKKyAgICAgICAgYnVmID0gc2VsZi5fcmVjdl9ieXRlcygpCisgICAgICAgIHJldHVybiBwaWNrbGUubG9hZHMoYnVmLmdldGJ1ZmZlcigpKQorCisgICAgZGVmIHBvbGwoc2VsZiwgdGltZW91dD0wLjApOgorICAgICAgICAiIiJXaGV0aGVyIHRoZXJlIGlzIGFueSBpbnB1dCBhdmFpbGFibGUgdG8gYmUgcmVhZCIiIgorICAgICAgICBzZWxmLl9jaGVja19jbG9zZWQoKQorICAgICAgICBzZWxmLl9jaGVja19yZWFkYWJsZSgpCisgICAgICAgIHJldHVybiBzZWxmLl9wb2xsKHRpbWVvdXQpCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190Yik6CisgICAgICAgIHNlbGYuY2xvc2UoKQorCisKK2lmIF93aW5hcGk6CisKKyAgICBjbGFzcyBQaXBlQ29ubmVjdGlvbihfQ29ubmVjdGlvbkJhc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgQ29ubmVjdGlvbiBjbGFzcyBiYXNlZCBvbiBhIFdpbmRvd3MgbmFtZWQgcGlwZS4KKyAgICAgICAgT3ZlcmxhcHBlZCBJL08gaXMgdXNlZCwgc28gdGhlIGhhbmRsZXMgbXVzdCBoYXZlIGJlZW4gY3JlYXRlZAorICAgICAgICB3aXRoIEZJTEVfRkxBR19PVkVSTEFQUEVELgorICAgICAgICAiIiIKKyAgICAgICAgX2dvdF9lbXB0eV9tZXNzYWdlID0gRmFsc2UKKworICAgICAgICBkZWYgX2Nsb3NlKHNlbGYsIF9DbG9zZUhhbmRsZT1fd2luYXBpLkNsb3NlSGFuZGxlKToKKyAgICAgICAgICAgIF9DbG9zZUhhbmRsZShzZWxmLl9oYW5kbGUpCisKKyAgICAgICAgZGVmIF9zZW5kX2J5dGVzKHNlbGYsIGJ1Zik6CisgICAgICAgICAgICBvdiwgZXJyID0gX3dpbmFwaS5Xcml0ZUZpbGUoc2VsZi5faGFuZGxlLCBidWYsIG92ZXJsYXBwZWQ9VHJ1ZSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBlcnIgPT0gX3dpbmFwaS5FUlJPUl9JT19QRU5ESU5HOgorICAgICAgICAgICAgICAgICAgICB3YWl0cmVzID0gX3dpbmFwaS5XYWl0Rm9yTXVsdGlwbGVPYmplY3RzKAorICAgICAgICAgICAgICAgICAgICAgICAgW292LmV2ZW50XSwgRmFsc2UsIElORklOSVRFKQorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgd2FpdHJlcyA9PSBXQUlUX09CSkVDVF8wCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgb3YuY2FuY2VsKCkKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBud3JpdHRlbiwgZXJyID0gb3YuR2V0T3ZlcmxhcHBlZFJlc3VsdChUcnVlKQorICAgICAgICAgICAgYXNzZXJ0IGVyciA9PSAwCisgICAgICAgICAgICBhc3NlcnQgbndyaXR0ZW4gPT0gbGVuKGJ1ZikKKworICAgICAgICBkZWYgX3JlY3ZfYnl0ZXMoc2VsZiwgbWF4c2l6ZT1Ob25lKToKKyAgICAgICAgICAgIGlmIHNlbGYuX2dvdF9lbXB0eV9tZXNzYWdlOgorICAgICAgICAgICAgICAgIHNlbGYuX2dvdF9lbXB0eV9tZXNzYWdlID0gRmFsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gaW8uQnl0ZXNJTygpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGJzaXplID0gMTI4IGlmIG1heHNpemUgaXMgTm9uZSBlbHNlIG1pbihtYXhzaXplLCAxMjgpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBvdiwgZXJyID0gX3dpbmFwaS5SZWFkRmlsZShzZWxmLl9oYW5kbGUsIGJzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxhcHBlZD1UcnVlKQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBlcnIgPT0gX3dpbmFwaS5FUlJPUl9JT19QRU5ESU5HOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRyZXMgPSBfd2luYXBpLldhaXRGb3JNdWx0aXBsZU9iamVjdHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvdi5ldmVudF0sIEZhbHNlLCBJTkZJTklURSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQgd2FpdHJlcyA9PSBXQUlUX09CSkVDVF8wCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG92LmNhbmNlbCgpCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICAgICAgICAgbnJlYWQsIGVyciA9IG92LkdldE92ZXJsYXBwZWRSZXN1bHQoVHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGVyciA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGYgPSBpby5CeXRlc0lPKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKG92LmdldGJ1ZmZlcigpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGVyciA9PSBfd2luYXBpLkVSUk9SX01PUkVfREFUQToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZ2V0X21vcmVfZGF0YShvdiwgbWF4c2l6ZSkKKyAgICAgICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOgorICAgICAgICAgICAgICAgICAgICBpZiBlLndpbmVycm9yID09IF93aW5hcGkuRVJST1JfQlJPS0VOX1BJUEU6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFT0ZFcnJvcgorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigic2hvdWxkbid0IGdldCBoZXJlOyBleHBlY3RlZCBLZXlib2FyZEludGVycnVwdCIpCisKKyAgICAgICAgZGVmIF9wb2xsKHNlbGYsIHRpbWVvdXQpOgorICAgICAgICAgICAgaWYgKHNlbGYuX2dvdF9lbXB0eV9tZXNzYWdlIG9yCisgICAgICAgICAgICAgICAgICAgICAgICBfd2luYXBpLlBlZWtOYW1lZFBpcGUoc2VsZi5faGFuZGxlKVswXSAhPSAwKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgcmV0dXJuIGJvb2wod2FpdChbc2VsZl0sIHRpbWVvdXQpKQorCisgICAgICAgIGRlZiBfZ2V0X21vcmVfZGF0YShzZWxmLCBvdiwgbWF4c2l6ZSk6CisgICAgICAgICAgICBidWYgPSBvdi5nZXRidWZmZXIoKQorICAgICAgICAgICAgZiA9IGlvLkJ5dGVzSU8oKQorICAgICAgICAgICAgZi53cml0ZShidWYpCisgICAgICAgICAgICBsZWZ0ID0gX3dpbmFwaS5QZWVrTmFtZWRQaXBlKHNlbGYuX2hhbmRsZSlbMV0KKyAgICAgICAgICAgIGFzc2VydCBsZWZ0ID4gMAorICAgICAgICAgICAgaWYgbWF4c2l6ZSBpcyBub3QgTm9uZSBhbmQgbGVuKGJ1ZikgKyBsZWZ0ID4gbWF4c2l6ZToKKyAgICAgICAgICAgICAgICBzZWxmLl9iYWRfbWVzc2FnZV9sZW5ndGgoKQorICAgICAgICAgICAgb3YsIGVyciA9IF93aW5hcGkuUmVhZEZpbGUoc2VsZi5faGFuZGxlLCBsZWZ0LCBvdmVybGFwcGVkPVRydWUpCisgICAgICAgICAgICByYnl0ZXMsIGVyciA9IG92LkdldE92ZXJsYXBwZWRSZXN1bHQoVHJ1ZSkKKyAgICAgICAgICAgIGFzc2VydCBlcnIgPT0gMAorICAgICAgICAgICAgYXNzZXJ0IHJieXRlcyA9PSBsZWZ0CisgICAgICAgICAgICBmLndyaXRlKG92LmdldGJ1ZmZlcigpKQorICAgICAgICAgICAgcmV0dXJuIGYKKworCitjbGFzcyBDb25uZWN0aW9uKF9Db25uZWN0aW9uQmFzZSk6CisgICAgIiIiCisgICAgQ29ubmVjdGlvbiBjbGFzcyBiYXNlZCBvbiBhbiBhcmJpdHJhcnkgZmlsZSBkZXNjcmlwdG9yIChVbml4IG9ubHkpLCBvcgorICAgIGEgc29ja2V0IGhhbmRsZSAoV2luZG93cykuCisgICAgIiIiCisKKyAgICBpZiBfd2luYXBpOgorICAgICAgICBkZWYgX2Nsb3NlKHNlbGYsIF9jbG9zZT1fbXVsdGlwcm9jZXNzaW5nLmNsb3Nlc29ja2V0KToKKyAgICAgICAgICAgIF9jbG9zZShzZWxmLl9oYW5kbGUpCisgICAgICAgIF93cml0ZSA9IF9tdWx0aXByb2Nlc3Npbmcuc2VuZAorICAgICAgICBfcmVhZCA9IF9tdWx0aXByb2Nlc3NpbmcucmVjdgorICAgIGVsc2U6CisgICAgICAgIGRlZiBfY2xvc2Uoc2VsZiwgX2Nsb3NlPW9zLmNsb3NlKToKKyAgICAgICAgICAgIF9jbG9zZShzZWxmLl9oYW5kbGUpCisgICAgICAgIF93cml0ZSA9IG9zLndyaXRlCisgICAgICAgIF9yZWFkID0gb3MucmVhZAorCisgICAgZGVmIF9zZW5kKHNlbGYsIGJ1Ziwgd3JpdGU9X3dyaXRlKToKKyAgICAgICAgcmVtYWluaW5nID0gbGVuKGJ1ZikKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIG4gPSB3cml0ZShzZWxmLl9oYW5kbGUsIGJ1ZikKKyAgICAgICAgICAgIHJlbWFpbmluZyAtPSBuCisgICAgICAgICAgICBpZiByZW1haW5pbmcgPT0gMDoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgYnVmID0gYnVmW246XQorCisgICAgZGVmIF9yZWN2KHNlbGYsIHNpemUsIHJlYWQ9X3JlYWQpOgorICAgICAgICBidWYgPSBpby5CeXRlc0lPKCkKKyAgICAgICAgaGFuZGxlID0gc2VsZi5faGFuZGxlCisgICAgICAgIHJlbWFpbmluZyA9IHNpemUKKyAgICAgICAgd2hpbGUgcmVtYWluaW5nID4gMDoKKyAgICAgICAgICAgIGNodW5rID0gcmVhZChoYW5kbGUsIHJlbWFpbmluZykKKyAgICAgICAgICAgIG4gPSBsZW4oY2h1bmspCisgICAgICAgICAgICBpZiBuID09IDA6CisgICAgICAgICAgICAgICAgaWYgcmVtYWluaW5nID09IHNpemU6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigiZ290IGVuZCBvZiBmaWxlIGR1cmluZyBtZXNzYWdlIikKKyAgICAgICAgICAgIGJ1Zi53cml0ZShjaHVuaykKKyAgICAgICAgICAgIHJlbWFpbmluZyAtPSBuCisgICAgICAgIHJldHVybiBidWYKKworICAgIGRlZiBfc2VuZF9ieXRlcyhzZWxmLCBidWYpOgorICAgICAgICAjIEZvciB3aXJlIGNvbXBhdGliaWxpdHkgd2l0aCAzLjIgYW5kIGxvd2VyCisgICAgICAgIG4gPSBsZW4oYnVmKQorICAgICAgICBzZWxmLl9zZW5kKHN0cnVjdC5wYWNrKCIhaSIsIG4pKQorICAgICAgICAjIFRoZSBjb25kaXRpb24gaXMgbmVjZXNzYXJ5IHRvIGF2b2lkICJicm9rZW4gcGlwZSIgZXJyb3JzCisgICAgICAgICMgd2hlbiBzZW5kaW5nIGEgMC1sZW5ndGggYnVmZmVyIGlmIHRoZSBvdGhlciBlbmQgY2xvc2VkIHRoZSBwaXBlLgorICAgICAgICBpZiBuID4gMDoKKyAgICAgICAgICAgIHNlbGYuX3NlbmQoYnVmKQorCisgICAgZGVmIF9yZWN2X2J5dGVzKHNlbGYsIG1heHNpemU9Tm9uZSk6CisgICAgICAgIGJ1ZiA9IHNlbGYuX3JlY3YoNCkKKyAgICAgICAgc2l6ZSwgPSBzdHJ1Y3QudW5wYWNrKCIhaSIsIGJ1Zi5nZXR2YWx1ZSgpKQorICAgICAgICBpZiBtYXhzaXplIGlzIG5vdCBOb25lIGFuZCBzaXplID4gbWF4c2l6ZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBzZWxmLl9yZWN2KHNpemUpCisKKyAgICBkZWYgX3BvbGwoc2VsZiwgdGltZW91dCk6CisgICAgICAgIHIgPSB3YWl0KFtzZWxmLl9oYW5kbGVdLCB0aW1lb3V0KQorICAgICAgICByZXR1cm4gYm9vbChyKQorCisKKyMKICMgUHVibGljIGZ1bmN0aW9ucwogIwogCkBAIC0xNTQsNiArNDQyLDggQEAKIAogICAgICAgICBSZXR1cm5zIGEgYENvbm5lY3Rpb25gIG9iamVjdC4KICAgICAgICAgJycnCisgICAgICAgIGlmIHNlbGYuX2xpc3RlbmVyIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBJT0Vycm9yKCdsaXN0ZW5lciBpcyBjbG9zZWQnKQogICAgICAgICBjID0gc2VsZi5fbGlzdGVuZXIuYWNjZXB0KCkKICAgICAgICAgaWYgc2VsZi5fYXV0aGtleToKICAgICAgICAgICAgIGRlbGl2ZXJfY2hhbGxlbmdlKGMsIHNlbGYuX2F1dGhrZXkpCkBAIC0xNjQsMTEgKzQ1NCwxOSBAQAogICAgICAgICAnJycKICAgICAgICAgQ2xvc2UgdGhlIGJvdW5kIHNvY2tldCBvciBuYW1lZCBwaXBlIG9mIGBzZWxmYC4KICAgICAgICAgJycnCi0gICAgICAgIHJldHVybiBzZWxmLl9saXN0ZW5lci5jbG9zZSgpCisgICAgICAgIGlmIHNlbGYuX2xpc3RlbmVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5fbGlzdGVuZXIuY2xvc2UoKQorICAgICAgICAgICAgc2VsZi5fbGlzdGVuZXIgPSBOb25lCiAKICAgICBhZGRyZXNzID0gcHJvcGVydHkobGFtYmRhIHNlbGY6IHNlbGYuX2xpc3RlbmVyLl9hZGRyZXNzKQogICAgIGxhc3RfYWNjZXB0ZWQgPSBwcm9wZXJ0eShsYW1iZGEgc2VsZjogc2VsZi5fbGlzdGVuZXIuX2xhc3RfYWNjZXB0ZWQpCiAKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190Yik6CisgICAgICAgIHNlbGYuY2xvc2UoKQorCiAKIGRlZiBDbGllbnQoYWRkcmVzcywgZmFtaWx5PU5vbmUsIGF1dGhrZXk9Tm9uZSk6CiAgICAgJycnCkBAIC0xOTksNTYgKzQ5Nyw1MiBAQAogICAgICAgICAnJycKICAgICAgICAgaWYgZHVwbGV4OgogICAgICAgICAgICAgczEsIHMyID0gc29ja2V0LnNvY2tldHBhaXIoKQotICAgICAgICAgICAgYzEgPSBfbXVsdGlwcm9jZXNzaW5nLkNvbm5lY3Rpb24ob3MuZHVwKHMxLmZpbGVubygpKSkKLSAgICAgICAgICAgIGMyID0gX211bHRpcHJvY2Vzc2luZy5Db25uZWN0aW9uKG9zLmR1cChzMi5maWxlbm8oKSkpCi0gICAgICAgICAgICBzMS5jbG9zZSgpCi0gICAgICAgICAgICBzMi5jbG9zZSgpCisgICAgICAgICAgICBjMSA9IENvbm5lY3Rpb24oczEuZGV0YWNoKCkpCisgICAgICAgICAgICBjMiA9IENvbm5lY3Rpb24oczIuZGV0YWNoKCkpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBmZDEsIGZkMiA9IG9zLnBpcGUoKQotICAgICAgICAgICAgYzEgPSBfbXVsdGlwcm9jZXNzaW5nLkNvbm5lY3Rpb24oZmQxLCB3cml0YWJsZT1GYWxzZSkKLSAgICAgICAgICAgIGMyID0gX211bHRpcHJvY2Vzc2luZy5Db25uZWN0aW9uKGZkMiwgcmVhZGFibGU9RmFsc2UpCisgICAgICAgICAgICBjMSA9IENvbm5lY3Rpb24oZmQxLCB3cml0YWJsZT1GYWxzZSkKKyAgICAgICAgICAgIGMyID0gQ29ubmVjdGlvbihmZDIsIHJlYWRhYmxlPUZhbHNlKQogCiAgICAgICAgIHJldHVybiBjMSwgYzIKIAogZWxzZToKIAotICAgIGZyb20gX211bHRpcHJvY2Vzc2luZyBpbXBvcnQgd2luMzIKLQogICAgIGRlZiBQaXBlKGR1cGxleD1UcnVlKToKICAgICAgICAgJycnCiAgICAgICAgIFJldHVybnMgcGFpciBvZiBjb25uZWN0aW9uIG9iamVjdHMgYXQgZWl0aGVyIGVuZCBvZiBhIHBpcGUKICAgICAgICAgJycnCiAgICAgICAgIGFkZHJlc3MgPSBhcmJpdHJhcnlfYWRkcmVzcygnQUZfUElQRScpCiAgICAgICAgIGlmIGR1cGxleDoKLSAgICAgICAgICAgIG9wZW5tb2RlID0gd2luMzIuUElQRV9BQ0NFU1NfRFVQTEVYCi0gICAgICAgICAgICBhY2Nlc3MgPSB3aW4zMi5HRU5FUklDX1JFQUQgfCB3aW4zMi5HRU5FUklDX1dSSVRFCisgICAgICAgICAgICBvcGVubW9kZSA9IF93aW5hcGkuUElQRV9BQ0NFU1NfRFVQTEVYCisgICAgICAgICAgICBhY2Nlc3MgPSBfd2luYXBpLkdFTkVSSUNfUkVBRCB8IF93aW5hcGkuR0VORVJJQ19XUklURQogICAgICAgICAgICAgb2JzaXplLCBpYnNpemUgPSBCVUZTSVpFLCBCVUZTSVpFCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcGVubW9kZSA9IHdpbjMyLlBJUEVfQUNDRVNTX0lOQk9VTkQKLSAgICAgICAgICAgIGFjY2VzcyA9IHdpbjMyLkdFTkVSSUNfV1JJVEUKKyAgICAgICAgICAgIG9wZW5tb2RlID0gX3dpbmFwaS5QSVBFX0FDQ0VTU19JTkJPVU5ECisgICAgICAgICAgICBhY2Nlc3MgPSBfd2luYXBpLkdFTkVSSUNfV1JJVEUKICAgICAgICAgICAgIG9ic2l6ZSwgaWJzaXplID0gMCwgQlVGU0laRQogCi0gICAgICAgIGgxID0gd2luMzIuQ3JlYXRlTmFtZWRQaXBlKAotICAgICAgICAgICAgYWRkcmVzcywgb3Blbm1vZGUsCi0gICAgICAgICAgICB3aW4zMi5QSVBFX1RZUEVfTUVTU0FHRSB8IHdpbjMyLlBJUEVfUkVBRE1PREVfTUVTU0FHRSB8Ci0gICAgICAgICAgICB3aW4zMi5QSVBFX1dBSVQsCi0gICAgICAgICAgICAxLCBvYnNpemUsIGlic2l6ZSwgd2luMzIuTk1QV0FJVF9XQUlUX0ZPUkVWRVIsIHdpbjMyLk5VTEwKKyAgICAgICAgaDEgPSBfd2luYXBpLkNyZWF0ZU5hbWVkUGlwZSgKKyAgICAgICAgICAgIGFkZHJlc3MsIG9wZW5tb2RlIHwgX3dpbmFwaS5GSUxFX0ZMQUdfT1ZFUkxBUFBFRCB8CisgICAgICAgICAgICBfd2luYXBpLkZJTEVfRkxBR19GSVJTVF9QSVBFX0lOU1RBTkNFLAorICAgICAgICAgICAgX3dpbmFwaS5QSVBFX1RZUEVfTUVTU0FHRSB8IF93aW5hcGkuUElQRV9SRUFETU9ERV9NRVNTQUdFIHwKKyAgICAgICAgICAgIF93aW5hcGkuUElQRV9XQUlULAorICAgICAgICAgICAgMSwgb2JzaXplLCBpYnNpemUsIF93aW5hcGkuTk1QV0FJVF9XQUlUX0ZPUkVWRVIsIF93aW5hcGkuTlVMTAogICAgICAgICAgICAgKQotICAgICAgICBoMiA9IHdpbjMyLkNyZWF0ZUZpbGUoCi0gICAgICAgICAgICBhZGRyZXNzLCBhY2Nlc3MsIDAsIHdpbjMyLk5VTEwsIHdpbjMyLk9QRU5fRVhJU1RJTkcsIDAsIHdpbjMyLk5VTEwKKyAgICAgICAgaDIgPSBfd2luYXBpLkNyZWF0ZUZpbGUoCisgICAgICAgICAgICBhZGRyZXNzLCBhY2Nlc3MsIDAsIF93aW5hcGkuTlVMTCwgX3dpbmFwaS5PUEVOX0VYSVNUSU5HLAorICAgICAgICAgICAgX3dpbmFwaS5GSUxFX0ZMQUdfT1ZFUkxBUFBFRCwgX3dpbmFwaS5OVUxMCiAgICAgICAgICAgICApCi0gICAgICAgIHdpbjMyLlNldE5hbWVkUGlwZUhhbmRsZVN0YXRlKAotICAgICAgICAgICAgaDIsIHdpbjMyLlBJUEVfUkVBRE1PREVfTUVTU0FHRSwgTm9uZSwgTm9uZQorICAgICAgICBfd2luYXBpLlNldE5hbWVkUGlwZUhhbmRsZVN0YXRlKAorICAgICAgICAgICAgaDIsIF93aW5hcGkuUElQRV9SRUFETU9ERV9NRVNTQUdFLCBOb25lLCBOb25lCiAgICAgICAgICAgICApCiAKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2luMzIuQ29ubmVjdE5hbWVkUGlwZShoMSwgd2luMzIuTlVMTCkKLSAgICAgICAgZXhjZXB0IFdpbmRvd3NFcnJvciBhcyBlOgotICAgICAgICAgICAgaWYgZS5hcmdzWzBdICE9IHdpbjMyLkVSUk9SX1BJUEVfQ09OTkVDVEVEOgotICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgIG92ZXJsYXBwZWQgPSBfd2luYXBpLkNvbm5lY3ROYW1lZFBpcGUoaDEsIG92ZXJsYXBwZWQ9VHJ1ZSkKKyAgICAgICAgXywgZXJyID0gb3ZlcmxhcHBlZC5HZXRPdmVybGFwcGVkUmVzdWx0KFRydWUpCisgICAgICAgIGFzc2VydCBlcnIgPT0gMAogCi0gICAgICAgIGMxID0gX211bHRpcHJvY2Vzc2luZy5QaXBlQ29ubmVjdGlvbihoMSwgd3JpdGFibGU9ZHVwbGV4KQotICAgICAgICBjMiA9IF9tdWx0aXByb2Nlc3NpbmcuUGlwZUNvbm5lY3Rpb24oaDIsIHJlYWRhYmxlPWR1cGxleCkKKyAgICAgICAgYzEgPSBQaXBlQ29ubmVjdGlvbihoMSwgd3JpdGFibGU9ZHVwbGV4KQorICAgICAgICBjMiA9IFBpcGVDb25uZWN0aW9uKGgyLCByZWFkYWJsZT1kdXBsZXgpCiAKICAgICAgICAgcmV0dXJuIGMxLCBjMgogCkBAIC0yNjMsMTEgKzU1NywxNCBAQAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzLCBmYW1pbHksIGJhY2tsb2c9MSk6CiAgICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldC5zb2NrZXQoZ2V0YXR0cihzb2NrZXQsIGZhbWlseSkpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3NvY2tldC5zZXRzb2Nrb3B0KHNvY2tldC5TT0xfU09DS0VULCBzb2NrZXQuU09fUkVVU0VBRERSLCAxKQorICAgICAgICAgICAgIyBTT19SRVVTRUFERFIgaGFzIGRpZmZlcmVudCBzZW1hbnRpY3Mgb24gV2luZG93cyAoaXNzdWUgIzI1NTApLgorICAgICAgICAgICAgaWYgb3MubmFtZSA9PSAncG9zaXgnOgorICAgICAgICAgICAgICAgIHNlbGYuX3NvY2tldC5zZXRzb2Nrb3B0KHNvY2tldC5TT0xfU09DS0VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5TT19SRVVTRUFERFIsIDEpCiAgICAgICAgICAgICBzZWxmLl9zb2NrZXQuYmluZChhZGRyZXNzKQogICAgICAgICAgICAgc2VsZi5fc29ja2V0Lmxpc3RlbihiYWNrbG9nKQogICAgICAgICAgICAgc2VsZi5fYWRkcmVzcyA9IHNlbGYuX3NvY2tldC5nZXRzb2NrbmFtZSgpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgc2VsZi5fc29ja2V0LmNsb3NlKCkKICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgIHNlbGYuX2ZhbWlseSA9IGZhbWlseQpAQCAtMjgyLDEwICs1NzksNyBAQAogCiAgICAgZGVmIGFjY2VwdChzZWxmKToKICAgICAgICAgcywgc2VsZi5fbGFzdF9hY2NlcHRlZCA9IHNlbGYuX3NvY2tldC5hY2NlcHQoKQotICAgICAgICBmZCA9IGR1cGxpY2F0ZShzLmZpbGVubygpKQotICAgICAgICBjb25uID0gX211bHRpcHJvY2Vzc2luZy5Db25uZWN0aW9uKGZkKQotICAgICAgICBzLmNsb3NlKCkKLSAgICAgICAgcmV0dXJuIGNvbm4KKyAgICAgICAgcmV0dXJuIENvbm5lY3Rpb24ocy5kZXRhY2goKSkKIAogICAgIGRlZiBjbG9zZShzZWxmKToKICAgICAgICAgc2VsZi5fc29ja2V0LmNsb3NlKCkKQEAgLTI5OSwyNCArNTkzLDggQEAKICAgICAnJycKICAgICBmYW1pbHkgPSBhZGRyZXNzX3R5cGUoYWRkcmVzcykKICAgICB3aXRoIHNvY2tldC5zb2NrZXQoIGdldGF0dHIoc29ja2V0LCBmYW1pbHkpICkgYXMgczoKLSAgICAgICAgdCA9IF9pbml0X3RpbWVvdXQoKQotCi0gICAgICAgIHdoaWxlIDE6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcy5jb25uZWN0KGFkZHJlc3MpCi0gICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgaWYgZS5hcmdzWzBdICE9IGVycm5vLkVDT05OUkVGVVNFRCBvciBfY2hlY2tfdGltZW91dCh0KToKLSAgICAgICAgICAgICAgICAgICAgZGVidWcoJ2ZhaWxlZCB0byBjb25uZWN0IHRvIGFkZHJlc3MgJXMnLCBhZGRyZXNzKQotICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4wMSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlCi0KLSAgICAgICAgZmQgPSBkdXBsaWNhdGUocy5maWxlbm8oKSkKLSAgICBjb25uID0gX211bHRpcHJvY2Vzc2luZy5Db25uZWN0aW9uKGZkKQotICAgIHJldHVybiBjb25uCisgICAgICAgIHMuY29ubmVjdChhZGRyZXNzKQorICAgICAgICByZXR1cm4gQ29ubmVjdGlvbihzLmRldGFjaCgpKQogCiAjCiAjIERlZmluaXRpb25zIGZvciBjb25uZWN0aW9ucyBiYXNlZCBvbiBuYW1lZCBwaXBlcwpAQCAtMzMwLDQ4ICs2MDgsNTUgQEAKICAgICAgICAgJycnCiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzLCBiYWNrbG9nPU5vbmUpOgogICAgICAgICAgICAgc2VsZi5fYWRkcmVzcyA9IGFkZHJlc3MKLSAgICAgICAgICAgIGhhbmRsZSA9IHdpbjMyLkNyZWF0ZU5hbWVkUGlwZSgKLSAgICAgICAgICAgICAgICBhZGRyZXNzLCB3aW4zMi5QSVBFX0FDQ0VTU19EVVBMRVgsCi0gICAgICAgICAgICAgICAgd2luMzIuUElQRV9UWVBFX01FU1NBR0UgfCB3aW4zMi5QSVBFX1JFQURNT0RFX01FU1NBR0UgfAotICAgICAgICAgICAgICAgIHdpbjMyLlBJUEVfV0FJVCwKLSAgICAgICAgICAgICAgICB3aW4zMi5QSVBFX1VOTElNSVRFRF9JTlNUQU5DRVMsIEJVRlNJWkUsIEJVRlNJWkUsCi0gICAgICAgICAgICAgICAgd2luMzIuTk1QV0FJVF9XQUlUX0ZPUkVWRVIsIHdpbjMyLk5VTEwKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLl9oYW5kbGVfcXVldWUgPSBbaGFuZGxlXQorICAgICAgICAgICAgc2VsZi5faGFuZGxlX3F1ZXVlID0gW3NlbGYuX25ld19oYW5kbGUoZmlyc3Q9VHJ1ZSldCisKICAgICAgICAgICAgIHNlbGYuX2xhc3RfYWNjZXB0ZWQgPSBOb25lCi0KICAgICAgICAgICAgIHN1Yl9kZWJ1ZygnbGlzdGVuZXIgY3JlYXRlZCB3aXRoIGFkZHJlc3M9JXInLCBzZWxmLl9hZGRyZXNzKQotCiAgICAgICAgICAgICBzZWxmLmNsb3NlID0gRmluYWxpemUoCiAgICAgICAgICAgICAgICAgc2VsZiwgUGlwZUxpc3RlbmVyLl9maW5hbGl6ZV9waXBlX2xpc3RlbmVyLAogICAgICAgICAgICAgICAgIGFyZ3M9KHNlbGYuX2hhbmRsZV9xdWV1ZSwgc2VsZi5fYWRkcmVzcyksIGV4aXRwcmlvcml0eT0wCiAgICAgICAgICAgICAgICAgKQogCi0gICAgICAgIGRlZiBhY2NlcHQoc2VsZik6Ci0gICAgICAgICAgICBuZXdoYW5kbGUgPSB3aW4zMi5DcmVhdGVOYW1lZFBpcGUoCi0gICAgICAgICAgICAgICAgc2VsZi5fYWRkcmVzcywgd2luMzIuUElQRV9BQ0NFU1NfRFVQTEVYLAotICAgICAgICAgICAgICAgIHdpbjMyLlBJUEVfVFlQRV9NRVNTQUdFIHwgd2luMzIuUElQRV9SRUFETU9ERV9NRVNTQUdFIHwKLSAgICAgICAgICAgICAgICB3aW4zMi5QSVBFX1dBSVQsCi0gICAgICAgICAgICAgICAgd2luMzIuUElQRV9VTkxJTUlURURfSU5TVEFOQ0VTLCBCVUZTSVpFLCBCVUZTSVpFLAotICAgICAgICAgICAgICAgIHdpbjMyLk5NUFdBSVRfV0FJVF9GT1JFVkVSLCB3aW4zMi5OVUxMCisgICAgICAgIGRlZiBfbmV3X2hhbmRsZShzZWxmLCBmaXJzdD1GYWxzZSk6CisgICAgICAgICAgICBmbGFncyA9IF93aW5hcGkuUElQRV9BQ0NFU1NfRFVQTEVYIHwgX3dpbmFwaS5GSUxFX0ZMQUdfT1ZFUkxBUFBFRAorICAgICAgICAgICAgaWYgZmlyc3Q6CisgICAgICAgICAgICAgICAgZmxhZ3MgfD0gX3dpbmFwaS5GSUxFX0ZMQUdfRklSU1RfUElQRV9JTlNUQU5DRQorICAgICAgICAgICAgcmV0dXJuIF93aW5hcGkuQ3JlYXRlTmFtZWRQaXBlKAorICAgICAgICAgICAgICAgIHNlbGYuX2FkZHJlc3MsIGZsYWdzLAorICAgICAgICAgICAgICAgIF93aW5hcGkuUElQRV9UWVBFX01FU1NBR0UgfCBfd2luYXBpLlBJUEVfUkVBRE1PREVfTUVTU0FHRSB8CisgICAgICAgICAgICAgICAgX3dpbmFwaS5QSVBFX1dBSVQsCisgICAgICAgICAgICAgICAgX3dpbmFwaS5QSVBFX1VOTElNSVRFRF9JTlNUQU5DRVMsIEJVRlNJWkUsIEJVRlNJWkUsCisgICAgICAgICAgICAgICAgX3dpbmFwaS5OTVBXQUlUX1dBSVRfRk9SRVZFUiwgX3dpbmFwaS5OVUxMCiAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5faGFuZGxlX3F1ZXVlLmFwcGVuZChuZXdoYW5kbGUpCisKKyAgICAgICAgZGVmIGFjY2VwdChzZWxmKToKKyAgICAgICAgICAgIHNlbGYuX2hhbmRsZV9xdWV1ZS5hcHBlbmQoc2VsZi5fbmV3X2hhbmRsZSgpKQogICAgICAgICAgICAgaGFuZGxlID0gc2VsZi5faGFuZGxlX3F1ZXVlLnBvcCgwKQogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHdpbjMyLkNvbm5lY3ROYW1lZFBpcGUoaGFuZGxlLCB3aW4zMi5OVUxMKQotICAgICAgICAgICAgZXhjZXB0IFdpbmRvd3NFcnJvciBhcyBlOgorICAgICAgICAgICAgICAgIG92ID0gX3dpbmFwaS5Db25uZWN0TmFtZWRQaXBlKGhhbmRsZSwgb3ZlcmxhcHBlZD1UcnVlKQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBpZiBlLndpbmVycm9yICE9IF93aW5hcGkuRVJST1JfTk9fREFUQToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgICAgICAjIEVSUk9SX05PX0RBVEEgY2FuIG9jY3VyIGlmIGEgY2xpZW50IGhhcyBhbHJlYWR5IGNvbm5lY3RlZCwKICAgICAgICAgICAgICAgICAjIHdyaXR0ZW4gZGF0YSBhbmQgdGhlbiBkaXNjb25uZWN0ZWQgLS0gc2VlIElzc3VlIDE0NzI1LgotICAgICAgICAgICAgICAgIGlmIGUuYXJnc1swXSBub3QgaW4gKHdpbjMyLkVSUk9SX1BJUEVfQ09OTkVDVEVELAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbjMyLkVSUk9SX05PX0RBVEEpOgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHJlcyA9IF93aW5hcGkuV2FpdEZvck11bHRpcGxlT2JqZWN0cygKKyAgICAgICAgICAgICAgICAgICAgICAgIFtvdi5ldmVudF0sIEZhbHNlLCBJTkZJTklURSkKKyAgICAgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgICAgIG92LmNhbmNlbCgpCisgICAgICAgICAgICAgICAgICAgIF93aW5hcGkuQ2xvc2VIYW5kbGUoaGFuZGxlKQogICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgcmV0dXJuIF9tdWx0aXByb2Nlc3NpbmcuUGlwZUNvbm5lY3Rpb24oaGFuZGxlKQorICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgIF8sIGVyciA9IG92LkdldE92ZXJsYXBwZWRSZXN1bHQoVHJ1ZSkKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGVyciA9PSAwCisgICAgICAgICAgICByZXR1cm4gUGlwZUNvbm5lY3Rpb24oaGFuZGxlKQogCiAgICAgICAgIEBzdGF0aWNtZXRob2QKICAgICAgICAgZGVmIF9maW5hbGl6ZV9waXBlX2xpc3RlbmVyKHF1ZXVlLCBhZGRyZXNzKToKICAgICAgICAgICAgIHN1Yl9kZWJ1ZygnY2xvc2luZyBsaXN0ZW5lciB3aXRoIGFkZHJlc3M9JXInLCBhZGRyZXNzKQogICAgICAgICAgICAgZm9yIGhhbmRsZSBpbiBxdWV1ZToKLSAgICAgICAgICAgICAgICBjbG9zZShoYW5kbGUpCisgICAgICAgICAgICAgICAgX3dpbmFwaS5DbG9zZUhhbmRsZShoYW5kbGUpCiAKICAgICBkZWYgUGlwZUNsaWVudChhZGRyZXNzKToKICAgICAgICAgJycnCkBAIC0zODAsMjQgKzY2NSwyNSBAQAogICAgICAgICB0ID0gX2luaXRfdGltZW91dCgpCiAgICAgICAgIHdoaWxlIDE6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgd2luMzIuV2FpdE5hbWVkUGlwZShhZGRyZXNzLCAxMDAwKQotICAgICAgICAgICAgICAgIGggPSB3aW4zMi5DcmVhdGVGaWxlKAotICAgICAgICAgICAgICAgICAgICBhZGRyZXNzLCB3aW4zMi5HRU5FUklDX1JFQUQgfCB3aW4zMi5HRU5FUklDX1dSSVRFLAotICAgICAgICAgICAgICAgICAgICAwLCB3aW4zMi5OVUxMLCB3aW4zMi5PUEVOX0VYSVNUSU5HLCAwLCB3aW4zMi5OVUxMCisgICAgICAgICAgICAgICAgX3dpbmFwaS5XYWl0TmFtZWRQaXBlKGFkZHJlc3MsIDEwMDApCisgICAgICAgICAgICAgICAgaCA9IF93aW5hcGkuQ3JlYXRlRmlsZSgKKyAgICAgICAgICAgICAgICAgICAgYWRkcmVzcywgX3dpbmFwaS5HRU5FUklDX1JFQUQgfCBfd2luYXBpLkdFTkVSSUNfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgIDAsIF93aW5hcGkuTlVMTCwgX3dpbmFwaS5PUEVOX0VYSVNUSU5HLAorICAgICAgICAgICAgICAgICAgICBfd2luYXBpLkZJTEVfRkxBR19PVkVSTEFQUEVELCBfd2luYXBpLk5VTEwKICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgZXhjZXB0IFdpbmRvd3NFcnJvciBhcyBlOgotICAgICAgICAgICAgICAgIGlmIGUuYXJnc1swXSBub3QgaW4gKHdpbjMyLkVSUk9SX1NFTV9USU1FT1VULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbjMyLkVSUk9SX1BJUEVfQlVTWSkgb3IgX2NoZWNrX3RpbWVvdXQodCk6CisgICAgICAgICAgICAgICAgaWYgZS53aW5lcnJvciBub3QgaW4gKF93aW5hcGkuRVJST1JfU0VNX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF93aW5hcGkuRVJST1JfUElQRV9CVVNZKSBvciBfY2hlY2tfdGltZW91dCh0KToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlCiAKLSAgICAgICAgd2luMzIuU2V0TmFtZWRQaXBlSGFuZGxlU3RhdGUoCi0gICAgICAgICAgICBoLCB3aW4zMi5QSVBFX1JFQURNT0RFX01FU1NBR0UsIE5vbmUsIE5vbmUKKyAgICAgICAgX3dpbmFwaS5TZXROYW1lZFBpcGVIYW5kbGVTdGF0ZSgKKyAgICAgICAgICAgIGgsIF93aW5hcGkuUElQRV9SRUFETU9ERV9NRVNTQUdFLCBOb25lLCBOb25lCiAgICAgICAgICAgICApCi0gICAgICAgIHJldHVybiBfbXVsdGlwcm9jZXNzaW5nLlBpcGVDb25uZWN0aW9uKGgpCisgICAgICAgIHJldHVybiBQaXBlQ29ubmVjdGlvbihoKQogCiAjCiAjIEF1dGhlbnRpY2F0aW9uIHN0dWZmCkBAIC00NTQsMTAgKzc0MCwxMCBAQAogICAgICAgICByZXR1cm4gc2VsZi5fbG9hZHMocykKIAogZGVmIF94bWxfZHVtcHMob2JqKToKLSAgICByZXR1cm4geG1scnBjbGliLmR1bXBzKChvYmosKSwgTm9uZSwgTm9uZSwgTm9uZSwgMSkuZW5jb2RlKCd1dGY4JykKKyAgICByZXR1cm4geG1scnBjbGliLmR1bXBzKChvYmosKSwgTm9uZSwgTm9uZSwgTm9uZSwgMSkuZW5jb2RlKCd1dGYtOCcpCiAKIGRlZiBfeG1sX2xvYWRzKHMpOgotICAgIChvYmosKSwgbWV0aG9kID0geG1scnBjbGliLmxvYWRzKHMuZGVjb2RlKCd1dGY4JykpCisgICAgKG9iaiwpLCBtZXRob2QgPSB4bWxycGNsaWIubG9hZHMocy5kZWNvZGUoJ3V0Zi04JykpCiAgICAgcmV0dXJuIG9iagogCiBjbGFzcyBYbWxMaXN0ZW5lcihMaXN0ZW5lcik6CkBAIC00NzEsMyArNzU3LDE0MCBAQAogICAgIGdsb2JhbCB4bWxycGNsaWIKICAgICBpbXBvcnQgeG1scnBjLmNsaWVudCBhcyB4bWxycGNsaWIKICAgICByZXR1cm4gQ29ubmVjdGlvbldyYXBwZXIoQ2xpZW50KCphcmdzLCAqKmt3ZHMpLCBfeG1sX2R1bXBzLCBfeG1sX2xvYWRzKQorCisjCisjIFdhaXQKKyMKKworaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CisKKyAgICBkZWYgX2V4aGF1c3RpdmVfd2FpdChoYW5kbGVzLCB0aW1lb3V0KToKKyAgICAgICAgIyBSZXR1cm4gQUxMIGhhbmRsZXMgd2hpY2ggYXJlIGN1cnJlbnRseSBzaWduYWxsZWQuICAoT25seQorICAgICAgICAjIHJldHVybmluZyB0aGUgZmlyc3Qgc2lnbmFsbGVkIG1pZ2h0IGNyZWF0ZSBzdGFydmF0aW9uIGlzc3Vlcy4pCisgICAgICAgIEwgPSBsaXN0KGhhbmRsZXMpCisgICAgICAgIHJlYWR5ID0gW10KKyAgICAgICAgd2hpbGUgTDoKKyAgICAgICAgICAgIHJlcyA9IF93aW5hcGkuV2FpdEZvck11bHRpcGxlT2JqZWN0cyhMLCBGYWxzZSwgdGltZW91dCkKKyAgICAgICAgICAgIGlmIHJlcyA9PSBXQUlUX1RJTUVPVVQ6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgV0FJVF9PQkpFQ1RfMCA8PSByZXMgPCBXQUlUX09CSkVDVF8wICsgbGVuKEwpOgorICAgICAgICAgICAgICAgIHJlcyAtPSBXQUlUX09CSkVDVF8wCisgICAgICAgICAgICBlbGlmIFdBSVRfQUJBTkRPTkVEXzAgPD0gcmVzIDwgV0FJVF9BQkFORE9ORURfMCArIGxlbihMKToKKyAgICAgICAgICAgICAgICByZXMgLT0gV0FJVF9BQkFORE9ORURfMAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ1Nob3VsZCBub3QgZ2V0IGhlcmUnKQorICAgICAgICAgICAgcmVhZHkuYXBwZW5kKExbcmVzXSkKKyAgICAgICAgICAgIEwgPSBMW3JlcysxOl0KKyAgICAgICAgICAgIHRpbWVvdXQgPSAwCisgICAgICAgIHJldHVybiByZWFkeQorCisgICAgX3JlYWR5X2Vycm9ycyA9IHtfd2luYXBpLkVSUk9SX0JST0tFTl9QSVBFLCBfd2luYXBpLkVSUk9SX05FVE5BTUVfREVMRVRFRH0KKworICAgIGRlZiB3YWl0KG9iamVjdF9saXN0LCB0aW1lb3V0PU5vbmUpOgorICAgICAgICAnJycKKyAgICAgICAgV2FpdCB0aWxsIGFuIG9iamVjdCBpbiBvYmplY3RfbGlzdCBpcyByZWFkeS9yZWFkYWJsZS4KKworICAgICAgICBSZXR1cm5zIGxpc3Qgb2YgdGhvc2Ugb2JqZWN0cyBpbiBvYmplY3RfbGlzdCB3aGljaCBhcmUgcmVhZHkvcmVhZGFibGUuCisgICAgICAgICcnJworICAgICAgICBpZiB0aW1lb3V0IGlzIE5vbmU6CisgICAgICAgICAgICB0aW1lb3V0ID0gSU5GSU5JVEUKKyAgICAgICAgZWxpZiB0aW1lb3V0IDwgMDoKKyAgICAgICAgICAgIHRpbWVvdXQgPSAwCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0aW1lb3V0ID0gaW50KHRpbWVvdXQgKiAxMDAwICsgMC41KQorCisgICAgICAgIG9iamVjdF9saXN0ID0gbGlzdChvYmplY3RfbGlzdCkKKyAgICAgICAgd2FpdGhhbmRsZV90b19vYmogPSB7fQorICAgICAgICBvdl9saXN0ID0gW10KKyAgICAgICAgcmVhZHlfb2JqZWN0cyA9IHNldCgpCisgICAgICAgIHJlYWR5X2hhbmRsZXMgPSBzZXQoKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBvIGluIG9iamVjdF9saXN0OgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5vID0gZ2V0YXR0cihvLCAnZmlsZW5vJykKKyAgICAgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHdhaXRoYW5kbGVfdG9fb2JqW28uX19pbmRleF9fKCldID0gbworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgc3RhcnQgYW4gb3ZlcmxhcHBlZCByZWFkIG9mIGxlbmd0aCB6ZXJvCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIG92LCBlcnIgPSBfd2luYXBpLlJlYWRGaWxlKGZpbGVubygpLCAwLCBUcnVlKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgICAgICAgICAgICAgZXJyID0gZS53aW5lcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgZXJyIG5vdCBpbiBfcmVhZHlfZXJyb3JzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgICAgIGlmIGVyciA9PSBfd2luYXBpLkVSUk9SX0lPX1BFTkRJTkc6CisgICAgICAgICAgICAgICAgICAgICAgICBvdl9saXN0LmFwcGVuZChvdikKKyAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRoYW5kbGVfdG9fb2JqW292LmV2ZW50XSA9IG8KKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgSWYgby5maWxlbm8oKSBpcyBhbiBvdmVybGFwcGVkIHBpcGUgaGFuZGxlIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgIyBlcnIgPT0gMCB0aGVuIHRoZXJlIGlzIGEgemVybyBsZW5ndGggbWVzc2FnZQorICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiB0aGUgcGlwZSwgYnV0IGl0IEhBUyBOT1QgYmVlbiBjb25zdW1lZC4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlYWR5X29iamVjdHMuYWRkKG8pCisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gMAorCisgICAgICAgICAgICByZWFkeV9oYW5kbGVzID0gX2V4aGF1c3RpdmVfd2FpdCh3YWl0aGFuZGxlX3RvX29iai5rZXlzKCksIHRpbWVvdXQpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAjIHJlcXVlc3QgdGhhdCBvdmVybGFwcGVkIHJlYWRzIHN0b3AKKyAgICAgICAgICAgIGZvciBvdiBpbiBvdl9saXN0OgorICAgICAgICAgICAgICAgIG92LmNhbmNlbCgpCisKKyAgICAgICAgICAgICMgd2FpdCBmb3IgYWxsIG92ZXJsYXBwZWQgcmVhZHMgdG8gc3RvcAorICAgICAgICAgICAgZm9yIG92IGluIG92X2xpc3Q6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBfLCBlcnIgPSBvdi5HZXRPdmVybGFwcGVkUmVzdWx0KFRydWUpCisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICAgICAgZXJyID0gZS53aW5lcnJvcgorICAgICAgICAgICAgICAgICAgICBpZiBlcnIgbm90IGluIF9yZWFkeV9lcnJvcnM6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIGlmIGVyciAhPSBfd2luYXBpLkVSUk9SX09QRVJBVElPTl9BQk9SVEVEOgorICAgICAgICAgICAgICAgICAgICBvID0gd2FpdGhhbmRsZV90b19vYmpbb3YuZXZlbnRdCisgICAgICAgICAgICAgICAgICAgIHJlYWR5X29iamVjdHMuYWRkKG8pCisgICAgICAgICAgICAgICAgICAgIGlmIGVyciA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBJZiBvLmZpbGVubygpIGlzIGFuIG92ZXJsYXBwZWQgcGlwZSBoYW5kbGUgdGhlbgorICAgICAgICAgICAgICAgICAgICAgICAgIyBhIHplcm8gbGVuZ3RoIG1lc3NhZ2UgSEFTIGJlZW4gY29uc3VtZWQuCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKG8sICdfZ290X2VtcHR5X21lc3NhZ2UnKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvLl9nb3RfZW1wdHlfbWVzc2FnZSA9IFRydWUKKworICAgICAgICByZWFkeV9vYmplY3RzLnVwZGF0ZSh3YWl0aGFuZGxlX3RvX29ialtoXSBmb3IgaCBpbiByZWFkeV9oYW5kbGVzKQorICAgICAgICByZXR1cm4gW28gZm9yIG8gaW4gb2JqZWN0X2xpc3QgaWYgbyBpbiByZWFkeV9vYmplY3RzXQorCitlbHNlOgorCisgICAgZGVmIHdhaXQob2JqZWN0X2xpc3QsIHRpbWVvdXQ9Tm9uZSk6CisgICAgICAgICcnJworICAgICAgICBXYWl0IHRpbGwgYW4gb2JqZWN0IGluIG9iamVjdF9saXN0IGlzIHJlYWR5L3JlYWRhYmxlLgorCisgICAgICAgIFJldHVybnMgbGlzdCBvZiB0aG9zZSBvYmplY3RzIGluIG9iamVjdF9saXN0IHdoaWNoIGFyZSByZWFkeS9yZWFkYWJsZS4KKyAgICAgICAgJycnCisgICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiB0aW1lb3V0IDw9IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdC5zZWxlY3Qob2JqZWN0X2xpc3QsIFtdLCBbXSwgMClbMF0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZGVhZGxpbmUgPSB0aW1lLnRpbWUoKSArIHRpbWVvdXQKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0LnNlbGVjdChvYmplY3RfbGlzdCwgW10sIFtdLCB0aW1lb3V0KVswXQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVJTlRSOgorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgaWYgdGltZW91dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICB0aW1lb3V0ID0gZGVhZGxpbmUgLSB0aW1lLnRpbWUoKQorCisjCisjIE1ha2UgY29ubmVjdGlvbiBhbmQgc29ja2V0IG9iamVjdHMgc2hhcmFibGUgaWYgcG9zc2libGUKKyMKKworaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CisgICAgZnJvbSAuIGltcG9ydCByZWR1Y3Rpb24KKyAgICBGb3JraW5nUGlja2xlci5yZWdpc3Rlcihzb2NrZXQuc29ja2V0LCByZWR1Y3Rpb24ucmVkdWNlX3NvY2tldCkKKyAgICBGb3JraW5nUGlja2xlci5yZWdpc3RlcihDb25uZWN0aW9uLCByZWR1Y3Rpb24ucmVkdWNlX2Nvbm5lY3Rpb24pCisgICAgRm9ya2luZ1BpY2tsZXIucmVnaXN0ZXIoUGlwZUNvbm5lY3Rpb24sIHJlZHVjdGlvbi5yZWR1Y2VfcGlwZV9jb25uZWN0aW9uKQorZWxzZToKKyAgICB0cnk6CisgICAgICAgIGZyb20gLiBpbXBvcnQgcmVkdWN0aW9uCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBwYXNzCisgICAgZWxzZToKKyAgICAgICAgRm9ya2luZ1BpY2tsZXIucmVnaXN0ZXIoc29ja2V0LnNvY2tldCwgcmVkdWN0aW9uLnJlZHVjZV9zb2NrZXQpCisgICAgICAgIEZvcmtpbmdQaWNrbGVyLnJlZ2lzdGVyKENvbm5lY3Rpb24sIHJlZHVjdGlvbi5yZWR1Y2VfY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvZHVtbXkvX19pbml0X18ucHkgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL2R1bW15L19faW5pdF9fLnB5CmluZGV4IDEwMWMzY2IuLmUzMWZjNjEgMTAwNjQ0Ci0tLSBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvZHVtbXkvX19pbml0X18ucHkKKysrIGIvTGliL211bHRpcHJvY2Vzc2luZy9kdW1teS9fX2luaXRfXy5weQpAQCAtMzUsNyArMzUsNyBAQAogX19hbGxfXyA9IFsKICAgICAnUHJvY2VzcycsICdjdXJyZW50X3Byb2Nlc3MnLCAnYWN0aXZlX2NoaWxkcmVuJywgJ2ZyZWV6ZV9zdXBwb3J0JywKICAgICAnTG9jaycsICdSTG9jaycsICdTZW1hcGhvcmUnLCAnQm91bmRlZFNlbWFwaG9yZScsICdDb25kaXRpb24nLAotICAgICdFdmVudCcsICdRdWV1ZScsICdNYW5hZ2VyJywgJ1BpcGUnLCAnUG9vbCcsICdKb2luYWJsZVF1ZXVlJworICAgICdFdmVudCcsICdCYXJyaWVyJywgJ1F1ZXVlJywgJ01hbmFnZXInLCAnUGlwZScsICdQb29sJywgJ0pvaW5hYmxlUXVldWUnCiAgICAgXQogCiAjCkBAIC00NiwxMiArNDYsMTAgQEAKIGltcG9ydCBzeXMKIGltcG9ydCB3ZWFrcmVmCiBpbXBvcnQgYXJyYXkKLWltcG9ydCBpdGVydG9vbHMKIAotZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IFRpbWVvdXRFcnJvciwgY3B1X2NvdW50CiBmcm9tIG11bHRpcHJvY2Vzc2luZy5kdW1teS5jb25uZWN0aW9uIGltcG9ydCBQaXBlCiBmcm9tIHRocmVhZGluZyBpbXBvcnQgTG9jaywgUkxvY2ssIFNlbWFwaG9yZSwgQm91bmRlZFNlbWFwaG9yZQotZnJvbSB0aHJlYWRpbmcgaW1wb3J0IEV2ZW50Citmcm9tIHRocmVhZGluZyBpbXBvcnQgRXZlbnQsIENvbmRpdGlvbiwgQmFycmllcgogZnJvbSBxdWV1ZSBpbXBvcnQgUXVldWUKIAogIwpAQCAtODUsMTcgKzgzLDYgQEAKICMKICMKIAotY2xhc3MgQ29uZGl0aW9uKHRocmVhZGluZy5fQ29uZGl0aW9uKToKLSAgICAjIFhYWAotICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMCk6Ci0gICAgICAgIG5vdGlmeV9hbGwgPSB0aHJlYWRpbmcuX0NvbmRpdGlvbi5ub3RpZnlfYWxsLl9fZnVuY19fCi0gICAgZWxzZToKLSAgICAgICAgbm90aWZ5X2FsbCA9IHRocmVhZGluZy5fQ29uZGl0aW9uLm5vdGlmeV9hbGwKLQotIwotIwotIwotCiBQcm9jZXNzID0gRHVtbXlQcm9jZXNzCiBjdXJyZW50X3Byb2Nlc3MgPSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQKIGN1cnJlbnRfcHJvY2VzcygpLl9jaGlsZHJlbiA9IHdlYWtyZWYuV2Vha0tleURpY3Rpb25hcnkoKQpkaWZmIC0tZ2l0IGEvTGliL211bHRpcHJvY2Vzc2luZy9kdW1teS9jb25uZWN0aW9uLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9kdW1teS9jb25uZWN0aW9uLnB5CmluZGV4IGFmMTA1NzkuLjg3NGVjOGUgMTAwNjQ0Ci0tLSBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvZHVtbXkvY29ubmVjdGlvbi5weQorKysgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL2R1bW15L2Nvbm5lY3Rpb24ucHkKQEAgLTUzLDYgKzUzLDEyIEBACiAKICAgICBhZGRyZXNzID0gcHJvcGVydHkobGFtYmRhIHNlbGY6IHNlbGYuX2JhY2tsb2dfcXVldWUpCiAKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190Yik6CisgICAgICAgIHNlbGYuY2xvc2UoKQorCiAKIGRlZiBDbGllbnQoYWRkcmVzcyk6CiAgICAgX2luLCBfb3V0ID0gUXVldWUoKSwgUXVldWUoKQpAQCAtODUsMyArOTEsOSBAQAogCiAgICAgZGVmIGNsb3NlKHNlbGYpOgogICAgICAgICBwYXNzCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190Yik6CisgICAgICAgIHNlbGYuY2xvc2UoKQpkaWZmIC0tZ2l0IGEvTGliL211bHRpcHJvY2Vzc2luZy9mb3JraW5nLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9mb3JraW5nLnB5CmluZGV4IDRlMjRkNmEuLjRiYWY1NDggMTAwNjQ0Ci0tLSBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvZm9ya2luZy5weQorKysgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL2ZvcmtpbmcucHkKQEAgLTQsMzIgKzQsNyBAQAogIyBtdWx0aXByb2Nlc3NpbmcvZm9ya2luZy5weQogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgYW55IGNvbnRyaWJ1dG9ycyBtYXkgYmUKLSMgICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLSMgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotIyBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotIyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0jIFNVQ0ggREFNQUdFLgorIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCiAjCiAKIGltcG9ydCBvcwpAQCAtMzgsNyArMTMsNyBAQAogCiBmcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgdXRpbCwgcHJvY2VzcwogCi1fX2FsbF9fID0gWydQb3BlbicsICdhc3NlcnRfc3Bhd25pbmcnLCAnZXhpdCcsICdkdXBsaWNhdGUnLCAnY2xvc2UnLCAnRm9ya2luZ1BpY2tsZXInXQorX19hbGxfXyA9IFsnUG9wZW4nLCAnYXNzZXJ0X3NwYXduaW5nJywgJ2R1cGxpY2F0ZScsICdjbG9zZScsICdGb3JraW5nUGlja2xlciddCiAKICMKICMgQ2hlY2sgdGhhdCB0aGUgY3VycmVudCB0aHJlYWQgaXMgc3Bhd25pbmcgYSBjaGlsZCBwcm9jZXNzCkBAIC01NSwxOCArMzAsMTggQEAKICMgVHJ5IG1ha2luZyBzb21lIGNhbGxhYmxlIHR5cGVzIHBpY2tsYWJsZQogIwogCi1mcm9tIHBpY2tsZSBpbXBvcnQgX1BpY2tsZXIgYXMgUGlja2xlcgorZnJvbSBwaWNrbGUgaW1wb3J0IFBpY2tsZXIKK2Zyb20gY29weXJlZyBpbXBvcnQgZGlzcGF0Y2hfdGFibGUKKwogY2xhc3MgRm9ya2luZ1BpY2tsZXIoUGlja2xlcik6Ci0gICAgZGlzcGF0Y2ggPSBQaWNrbGVyLmRpc3BhdGNoLmNvcHkoKQorICAgIF9leHRyYV9yZWR1Y2VycyA9IHt9CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgUGlja2xlci5fX2luaXRfXyhzZWxmLCAqYXJncykKKyAgICAgICAgc2VsZi5kaXNwYXRjaF90YWJsZSA9IGRpc3BhdGNoX3RhYmxlLmNvcHkoKQorICAgICAgICBzZWxmLmRpc3BhdGNoX3RhYmxlLnVwZGF0ZShzZWxmLl9leHRyYV9yZWR1Y2VycykKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgcmVnaXN0ZXIoY2xzLCB0eXBlLCByZWR1Y2UpOgotICAgICAgICBkZWYgZGlzcGF0Y2hlcihzZWxmLCBvYmopOgotICAgICAgICAgICAgcnYgPSByZWR1Y2Uob2JqKQotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShydiwgc3RyKToKLSAgICAgICAgICAgICAgICBzZWxmLnNhdmVfZ2xvYmFsKG9iaiwgcnYpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuc2F2ZV9yZWR1Y2Uob2JqPW9iaiwgKnJ2KQotICAgICAgICBjbHMuZGlzcGF0Y2hbdHlwZV0gPSBkaXNwYXRjaGVyCisgICAgICAgIGNscy5fZXh0cmFfcmVkdWNlcnNbdHlwZV0gPSByZWR1Y2UKIAogZGVmIF9yZWR1Y2VfbWV0aG9kKG0pOgogICAgIGlmIG0uX19zZWxmX18gaXMgTm9uZToKQEAgLTEwMCw5ICs3NSw2IEBACiAjCiAKIGlmIHN5cy5wbGF0Zm9ybSAhPSAnd2luMzInOgotICAgIGltcG9ydCB0aW1lCi0KLSAgICBleGl0ID0gb3MuX2V4aXQKICAgICBkdXBsaWNhdGUgPSBvcy5kdXAKICAgICBjbG9zZSA9IG9zLmNsb3NlCiAKQEAgLTExOCwxNCArOTAsMjMgQEAKICAgICAgICAgICAgIHN5cy5zdGRlcnIuZmx1c2goKQogICAgICAgICAgICAgc2VsZi5yZXR1cm5jb2RlID0gTm9uZQogCisgICAgICAgICAgICByLCB3ID0gb3MucGlwZSgpCisgICAgICAgICAgICBzZWxmLnNlbnRpbmVsID0gcgorCiAgICAgICAgICAgICBzZWxmLnBpZCA9IG9zLmZvcmsoKQogICAgICAgICAgICAgaWYgc2VsZi5waWQgPT0gMDoKKyAgICAgICAgICAgICAgICBvcy5jbG9zZShyKQogICAgICAgICAgICAgICAgIGlmICdyYW5kb20nIGluIHN5cy5tb2R1bGVzOgogICAgICAgICAgICAgICAgICAgICBpbXBvcnQgcmFuZG9tCiAgICAgICAgICAgICAgICAgICAgIHJhbmRvbS5zZWVkKCkKICAgICAgICAgICAgICAgICBjb2RlID0gcHJvY2Vzc19vYmouX2Jvb3RzdHJhcCgpCiAgICAgICAgICAgICAgICAgb3MuX2V4aXQoY29kZSkKIAorICAgICAgICAgICAgIyBgd2Agd2lsbCBiZSBjbG9zZWQgd2hlbiB0aGUgY2hpbGQgZXhpdHMsIGF0IHdoaWNoIHBvaW50IGByYAorICAgICAgICAgICAgIyB3aWxsIGJlY29tZSByZWFkeSBmb3IgcmVhZGluZyAodXNpbmcgZS5nLiBzZWxlY3QoKSkuCisgICAgICAgICAgICBvcy5jbG9zZSh3KQorICAgICAgICAgICAgdXRpbC5GaW5hbGl6ZShzZWxmLCBvcy5jbG9zZSwgKHIsKSkKKwogICAgICAgICBkZWYgcG9sbChzZWxmLCBmbGFnPW9zLldOT0hBTkcpOgogICAgICAgICAgICAgaWYgc2VsZi5yZXR1cm5jb2RlIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgdHJ5OgpAQCAtMTQzLDI2ICsxMjQsMjAgQEAKICAgICAgICAgICAgIHJldHVybiBzZWxmLnJldHVybmNvZGUKIAogICAgICAgICBkZWYgd2FpdChzZWxmLCB0aW1lb3V0PU5vbmUpOgotICAgICAgICAgICAgaWYgdGltZW91dCBpcyBOb25lOgotICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnBvbGwoMCkKLSAgICAgICAgICAgIGRlYWRsaW5lID0gdGltZS50aW1lKCkgKyB0aW1lb3V0Ci0gICAgICAgICAgICBkZWxheSA9IDAuMDAwNQotICAgICAgICAgICAgd2hpbGUgMToKLSAgICAgICAgICAgICAgICByZXMgPSBzZWxmLnBvbGwoKQotICAgICAgICAgICAgICAgIGlmIHJlcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICByZW1haW5pbmcgPSBkZWFkbGluZSAtIHRpbWUudGltZSgpCi0gICAgICAgICAgICAgICAgaWYgcmVtYWluaW5nIDw9IDA6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgZGVsYXkgPSBtaW4oZGVsYXkgKiAyLCByZW1haW5pbmcsIDAuMDUpCi0gICAgICAgICAgICAgICAgdGltZS5zbGVlcChkZWxheSkKLSAgICAgICAgICAgIHJldHVybiByZXMKKyAgICAgICAgICAgIGlmIHNlbGYucmV0dXJuY29kZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGZyb20gLmNvbm5lY3Rpb24gaW1wb3J0IHdhaXQKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHdhaXQoW3NlbGYuc2VudGluZWxdLCB0aW1lb3V0KToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICAgICAgIyBUaGlzIHNob3VsZG4ndCBibG9jayBpZiB3YWl0KCkgcmV0dXJuZWQgc3VjY2Vzc2Z1bGx5LgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnBvbGwob3MuV05PSEFORyBpZiB0aW1lb3V0ID09IDAuMCBlbHNlIDApCisgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXR1cm5jb2RlCiAKICAgICAgICAgZGVmIHRlcm1pbmF0ZShzZWxmKToKICAgICAgICAgICAgIGlmIHNlbGYucmV0dXJuY29kZSBpcyBOb25lOgogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgb3Mua2lsbChzZWxmLnBpZCwgc2lnbmFsLlNJR1RFUk0pCi0gICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi53YWl0KHRpbWVvdXQ9MC4xKSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKIApAQCAtMTc3LDEyICsxNTIsOSBAQAogZWxzZToKICAgICBpbXBvcnQgX3RocmVhZAogICAgIGltcG9ydCBtc3ZjcnQKLSAgICBpbXBvcnQgX3N1YnByb2Nlc3MKLSAgICBpbXBvcnQgdGltZQorICAgIGltcG9ydCBfd2luYXBpCiAKLSAgICBmcm9tIHBpY2tsZSBpbXBvcnQgZHVtcCwgbG9hZCwgSElHSEVTVF9QUk9UT0NPTAotICAgIGZyb20gX211bHRpcHJvY2Vzc2luZyBpbXBvcnQgd2luMzIsIENvbm5lY3Rpb24sIFBpcGVDb25uZWN0aW9uCi0gICAgZnJvbSAudXRpbCBpbXBvcnQgRmluYWxpemUKKyAgICBmcm9tIHBpY2tsZSBpbXBvcnQgbG9hZCwgSElHSEVTVF9QUk9UT0NPTAogCiAgICAgZGVmIGR1bXAob2JqLCBmaWxlLCBwcm90b2NvbD1Ob25lKToKICAgICAgICAgRm9ya2luZ1BpY2tsZXIoZmlsZSwgcHJvdG9jb2wpLmR1bXAob2JqKQpAQCAtMTk1LDggKzE2Nyw3IEBACiAgICAgV0lORVhFID0gKHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIGFuZCBnZXRhdHRyKHN5cywgJ2Zyb3plbicsIEZhbHNlKSkKICAgICBXSU5TRVJWSUNFID0gc3lzLmV4ZWN1dGFibGUubG93ZXIoKS5lbmRzd2l0aCgicHl0aG9uc2VydmljZS5leGUiKQogCi0gICAgZXhpdCA9IHdpbjMyLkV4aXRQcm9jZXNzCi0gICAgY2xvc2UgPSB3aW4zMi5DbG9zZUhhbmRsZQorICAgIGNsb3NlID0gX3dpbmFwaS5DbG9zZUhhbmRsZQogCiAgICAgIwogICAgICMgX3B5dGhvbl9leGUgaXMgdGhlIGFzc3VtZWQgcGF0aCB0byB0aGUgcHl0aG9uIGV4ZWN1dGFibGUuCkBAIC0yMTgsMTEgKzE4OSwxMSBAQAogCiAgICAgZGVmIGR1cGxpY2F0ZShoYW5kbGUsIHRhcmdldF9wcm9jZXNzPU5vbmUsIGluaGVyaXRhYmxlPUZhbHNlKToKICAgICAgICAgaWYgdGFyZ2V0X3Byb2Nlc3MgaXMgTm9uZToKLSAgICAgICAgICAgIHRhcmdldF9wcm9jZXNzID0gX3N1YnByb2Nlc3MuR2V0Q3VycmVudFByb2Nlc3MoKQotICAgICAgICByZXR1cm4gX3N1YnByb2Nlc3MuRHVwbGljYXRlSGFuZGxlKAotICAgICAgICAgICAgX3N1YnByb2Nlc3MuR2V0Q3VycmVudFByb2Nlc3MoKSwgaGFuZGxlLCB0YXJnZXRfcHJvY2VzcywKLSAgICAgICAgICAgIDAsIGluaGVyaXRhYmxlLCBfc3VicHJvY2Vzcy5EVVBMSUNBVEVfU0FNRV9BQ0NFU1MKLSAgICAgICAgICAgICkuRGV0YWNoKCkKKyAgICAgICAgICAgIHRhcmdldF9wcm9jZXNzID0gX3dpbmFwaS5HZXRDdXJyZW50UHJvY2VzcygpCisgICAgICAgIHJldHVybiBfd2luYXBpLkR1cGxpY2F0ZUhhbmRsZSgKKyAgICAgICAgICAgIF93aW5hcGkuR2V0Q3VycmVudFByb2Nlc3MoKSwgaGFuZGxlLCB0YXJnZXRfcHJvY2VzcywKKyAgICAgICAgICAgIDAsIGluaGVyaXRhYmxlLCBfd2luYXBpLkRVUExJQ0FURV9TQU1FX0FDQ0VTUworICAgICAgICAgICAgKQogCiAgICAgIwogICAgICMgV2UgZGVmaW5lIGEgUG9wZW4gY2xhc3Mgc2ltaWxhciB0byB0aGUgb25lIGZyb20gc3VicHJvY2VzcywgYnV0CkBAIC0yMzYsNiArMjA3LDkgQEAKICAgICAgICAgX3RscyA9IF90aHJlYWQuX2xvY2FsKCkKIAogICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcHJvY2Vzc19vYmopOgorICAgICAgICAgICAgY21kID0gJyAnLmpvaW4oJyIlcyInICUgeCBmb3IgeCBpbiBnZXRfY29tbWFuZF9saW5lKCkpCisgICAgICAgICAgICBwcmVwX2RhdGEgPSBnZXRfcHJlcGFyYXRpb25fZGF0YShwcm9jZXNzX29iai5fbmFtZSkKKwogICAgICAgICAgICAgIyBjcmVhdGUgcGlwZSBmb3IgY29tbXVuaWNhdGlvbiB3aXRoIGNoaWxkCiAgICAgICAgICAgICByZmQsIHdmZCA9IG9zLnBpcGUoKQogCkBAIC0yNDMsMzAgKzIxNywzMCBAQAogICAgICAgICAgICAgcmhhbmRsZSA9IGR1cGxpY2F0ZShtc3ZjcnQuZ2V0X29zZmhhbmRsZShyZmQpLCBpbmhlcml0YWJsZT1UcnVlKQogICAgICAgICAgICAgb3MuY2xvc2UocmZkKQogCi0gICAgICAgICAgICAjIHN0YXJ0IHByb2Nlc3MKLSAgICAgICAgICAgIGNtZCA9IGdldF9jb21tYW5kX2xpbmUoKSArIFtyaGFuZGxlXQotICAgICAgICAgICAgY21kID0gJyAnLmpvaW4oJyIlcyInICUgeCBmb3IgeCBpbiBjbWQpCi0gICAgICAgICAgICBocCwgaHQsIHBpZCwgdGlkID0gX3N1YnByb2Nlc3MuQ3JlYXRlUHJvY2VzcygKLSAgICAgICAgICAgICAgICBfcHl0aG9uX2V4ZSwgY21kLCBOb25lLCBOb25lLCAxLCAwLCBOb25lLCBOb25lLCBOb25lCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgaHQuQ2xvc2UoKQotICAgICAgICAgICAgY2xvc2UocmhhbmRsZSkKKyAgICAgICAgICAgIHdpdGggb3Blbih3ZmQsICd3YicsIGNsb3NlZmQ9VHJ1ZSkgYXMgdG9fY2hpbGQ6CisgICAgICAgICAgICAgICAgIyBzdGFydCBwcm9jZXNzCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBocCwgaHQsIHBpZCwgdGlkID0gX3dpbmFwaS5DcmVhdGVQcm9jZXNzKAorICAgICAgICAgICAgICAgICAgICAgICAgX3B5dGhvbl9leGUsIGNtZCArICgnICVzJyAlIHJoYW5kbGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwgTm9uZSwgMSwgMCwgTm9uZSwgTm9uZSwgTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICBfd2luYXBpLkNsb3NlSGFuZGxlKGh0KQorICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgIGNsb3NlKHJoYW5kbGUpCiAKLSAgICAgICAgICAgICMgc2V0IGF0dHJpYnV0ZXMgb2Ygc2VsZgotICAgICAgICAgICAgc2VsZi5waWQgPSBwaWQKLSAgICAgICAgICAgIHNlbGYucmV0dXJuY29kZSA9IE5vbmUKLSAgICAgICAgICAgIHNlbGYuX2hhbmRsZSA9IGhwCisgICAgICAgICAgICAgICAgIyBzZXQgYXR0cmlidXRlcyBvZiBzZWxmCisgICAgICAgICAgICAgICAgc2VsZi5waWQgPSBwaWQKKyAgICAgICAgICAgICAgICBzZWxmLnJldHVybmNvZGUgPSBOb25lCisgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlID0gaHAKKyAgICAgICAgICAgICAgICBzZWxmLnNlbnRpbmVsID0gaW50KGhwKQogCi0gICAgICAgICAgICAjIHNlbmQgaW5mb3JtYXRpb24gdG8gY2hpbGQKLSAgICAgICAgICAgIHByZXBfZGF0YSA9IGdldF9wcmVwYXJhdGlvbl9kYXRhKHByb2Nlc3Nfb2JqLl9uYW1lKQotICAgICAgICAgICAgdG9fY2hpbGQgPSBvcy5mZG9wZW4od2ZkLCAnd2InKQotICAgICAgICAgICAgUG9wZW4uX3Rscy5wcm9jZXNzX2hhbmRsZSA9IGludChocCkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBkdW1wKHByZXBfZGF0YSwgdG9fY2hpbGQsIEhJR0hFU1RfUFJPVE9DT0wpCi0gICAgICAgICAgICAgICAgZHVtcChwcm9jZXNzX29iaiwgdG9fY2hpbGQsIEhJR0hFU1RfUFJPVE9DT0wpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGRlbCBQb3Blbi5fdGxzLnByb2Nlc3NfaGFuZGxlCi0gICAgICAgICAgICAgICAgdG9fY2hpbGQuY2xvc2UoKQorICAgICAgICAgICAgICAgICMgc2VuZCBpbmZvcm1hdGlvbiB0byBjaGlsZAorICAgICAgICAgICAgICAgIFBvcGVuLl90bHMucHJvY2Vzc19oYW5kbGUgPSBpbnQoaHApCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBkdW1wKHByZXBfZGF0YSwgdG9fY2hpbGQsIEhJR0hFU1RfUFJPVE9DT0wpCisgICAgICAgICAgICAgICAgICAgIGR1bXAocHJvY2Vzc19vYmosIHRvX2NoaWxkLCBISUdIRVNUX1BST1RPQ09MKQorICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgIGRlbCBQb3Blbi5fdGxzLnByb2Nlc3NfaGFuZGxlCiAKICAgICAgICAgQHN0YXRpY21ldGhvZAogICAgICAgICBkZWYgdGhyZWFkX2lzX3NwYXduaW5nKCk6CkBAIC0yNzksMTMgKzI1MywxMyBAQAogICAgICAgICBkZWYgd2FpdChzZWxmLCB0aW1lb3V0PU5vbmUpOgogICAgICAgICAgICAgaWYgc2VsZi5yZXR1cm5jb2RlIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgaWYgdGltZW91dCBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBtc2VjcyA9IF9zdWJwcm9jZXNzLklORklOSVRFCisgICAgICAgICAgICAgICAgICAgIG1zZWNzID0gX3dpbmFwaS5JTkZJTklURQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIG1zZWNzID0gbWF4KDAsIGludCh0aW1lb3V0ICogMTAwMCArIDAuNSkpCiAKLSAgICAgICAgICAgICAgICByZXMgPSBfc3VicHJvY2Vzcy5XYWl0Rm9yU2luZ2xlT2JqZWN0KGludChzZWxmLl9oYW5kbGUpLCBtc2VjcykKLSAgICAgICAgICAgICAgICBpZiByZXMgPT0gX3N1YnByb2Nlc3MuV0FJVF9PQkpFQ1RfMDoKLSAgICAgICAgICAgICAgICAgICAgY29kZSA9IF9zdWJwcm9jZXNzLkdldEV4aXRDb2RlUHJvY2VzcyhzZWxmLl9oYW5kbGUpCisgICAgICAgICAgICAgICAgcmVzID0gX3dpbmFwaS5XYWl0Rm9yU2luZ2xlT2JqZWN0KGludChzZWxmLl9oYW5kbGUpLCBtc2VjcykKKyAgICAgICAgICAgICAgICBpZiByZXMgPT0gX3dpbmFwaS5XQUlUX09CSkVDVF8wOgorICAgICAgICAgICAgICAgICAgICBjb2RlID0gX3dpbmFwaS5HZXRFeGl0Q29kZVByb2Nlc3Moc2VsZi5faGFuZGxlKQogICAgICAgICAgICAgICAgICAgICBpZiBjb2RlID09IFRFUk1JTkFURToKICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgPSAtc2lnbmFsLlNJR1RFUk0KICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXR1cm5jb2RlID0gY29kZQpAQCAtMjk4LDcgKzI3Miw3IEBACiAgICAgICAgIGRlZiB0ZXJtaW5hdGUoc2VsZik6CiAgICAgICAgICAgICBpZiBzZWxmLnJldHVybmNvZGUgaXMgTm9uZToKICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIF9zdWJwcm9jZXNzLlRlcm1pbmF0ZVByb2Nlc3MoaW50KHNlbGYuX2hhbmRsZSksIFRFUk1JTkFURSkKKyAgICAgICAgICAgICAgICAgICAgX3dpbmFwaS5UZXJtaW5hdGVQcm9jZXNzKGludChzZWxmLl9oYW5kbGUpLCBURVJNSU5BVEUpCiAgICAgICAgICAgICAgICAgZXhjZXB0IFdpbmRvd3NFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi53YWl0KHRpbWVvdXQ9MC4xKSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKQEAgLTM1MCw3ICszMjQsOCBAQAogICAgICAgICAgICAgcmV0dXJuIFtzeXMuZXhlY3V0YWJsZSwgJy0tbXVsdGlwcm9jZXNzaW5nLWZvcmsnXQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcHJvZyA9ICdmcm9tIG11bHRpcHJvY2Vzc2luZy5mb3JraW5nIGltcG9ydCBtYWluOyBtYWluKCknCi0gICAgICAgICAgICByZXR1cm4gW19weXRob25fZXhlLCAnLWMnLCBwcm9nLCAnLS1tdWx0aXByb2Nlc3NpbmctZm9yayddCisgICAgICAgICAgICBvcHRzID0gdXRpbC5fYXJnc19mcm9tX2ludGVycHJldGVyX2ZsYWdzKCkKKyAgICAgICAgICAgIHJldHVybiBbX3B5dGhvbl9leGVdICsgb3B0cyArIFsnLWMnLCBwcm9nLCAnLS1tdWx0aXByb2Nlc3NpbmctZm9yayddCiAKIAogICAgIGRlZiBtYWluKCk6CkBAIC0zNzIsNyArMzQ3LDcgQEAKICAgICAgICAgZnJvbV9wYXJlbnQuY2xvc2UoKQogCiAgICAgICAgIGV4aXRjb2RlID0gc2VsZi5fYm9vdHN0cmFwKCkKLSAgICAgICAgZXhpdChleGl0Y29kZSkKKyAgICAgICAgc3lzLmV4aXQoZXhpdGNvZGUpCiAKIAogICAgIGRlZiBnZXRfcHJlcGFyYXRpb25fZGF0YShuYW1lKToKQEAgLTQwNSwyMiArMzgwLDYgQEAKIAogICAgICAgICByZXR1cm4gZAogCi0gICAgIwotICAgICMgTWFrZSAoUGlwZSlDb25uZWN0aW9uIHBpY2tsYWJsZQotICAgICMKLQotICAgIGRlZiByZWR1Y2VfY29ubmVjdGlvbihjb25uKToKLSAgICAgICAgaWYgbm90IFBvcGVuLnRocmVhZF9pc19zcGF3bmluZygpOgotICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKAotICAgICAgICAgICAgICAgICdCeSBkZWZhdWx0ICVzIG9iamVjdHMgY2FuIG9ubHkgYmUgc2hhcmVkIGJldHdlZW4gcHJvY2Vzc2VzXG4nCi0gICAgICAgICAgICAgICAgJ3VzaW5nIGluaGVyaXRhbmNlJyAlIHR5cGUoY29ubikuX19uYW1lX18KLSAgICAgICAgICAgICAgICApCi0gICAgICAgIHJldHVybiB0eXBlKGNvbm4pLCAoUG9wZW4uZHVwbGljYXRlX2Zvcl9jaGlsZChjb25uLmZpbGVubygpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uLnJlYWRhYmxlLCBjb25uLndyaXRhYmxlKQotCi0gICAgRm9ya2luZ1BpY2tsZXIucmVnaXN0ZXIoQ29ubmVjdGlvbiwgcmVkdWNlX2Nvbm5lY3Rpb24pCi0gICAgRm9ya2luZ1BpY2tsZXIucmVnaXN0ZXIoUGlwZUNvbm5lY3Rpb24sIHJlZHVjZV9jb25uZWN0aW9uKQotCiAjCiAjIFByZXBhcmUgY3VycmVudCBwcm9jZXNzCiAjCmRpZmYgLS1naXQgYS9MaWIvbXVsdGlwcm9jZXNzaW5nL2hlYXAucHkgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL2hlYXAucHkKaW5kZXggMGEyNWVmMC4uNGU5M2MxMiAxMDA2NDQKLS0tIGEvTGliL211bHRpcHJvY2Vzc2luZy9oZWFwLnB5CisrKyBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvaGVhcC5weQpAQCAtNCwzNyArNCwxMSBAQAogIyBtdWx0aXByb2Nlc3NpbmcvaGVhcC5weQogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgYW55IGNvbnRyaWJ1dG9ycyBtYXkgYmUKLSMgICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLSMgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotIyBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotIyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0jIFNVQ0ggREFNQUdFLgorIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCiAjCiAKIGltcG9ydCBiaXNlY3QKIGltcG9ydCBtbWFwCi1pbXBvcnQgdGVtcGZpbGUKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHRocmVhZGluZwpAQCAtNTIsNyArMjYsNyBAQAogCiBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKIAotICAgIGZyb20gX211bHRpcHJvY2Vzc2luZyBpbXBvcnQgd2luMzIKKyAgICBpbXBvcnQgX3dpbmFwaQogCiAgICAgY2xhc3MgQXJlbmEob2JqZWN0KToKIApAQCAtNjIsNyArMzYsNyBAQAogICAgICAgICAgICAgc2VsZi5zaXplID0gc2l6ZQogICAgICAgICAgICAgc2VsZi5uYW1lID0gJ3B5bS0lZC0lZCcgJSAob3MuZ2V0cGlkKCksIG5leHQoQXJlbmEuX2NvdW50ZXIpKQogICAgICAgICAgICAgc2VsZi5idWZmZXIgPSBtbWFwLm1tYXAoLTEsIHNlbGYuc2l6ZSwgdGFnbmFtZT1zZWxmLm5hbWUpCi0gICAgICAgICAgICBhc3NlcnQgd2luMzIuR2V0TGFzdEVycm9yKCkgPT0gMCwgJ3RhZ25hbWUgYWxyZWFkeSBpbiB1c2UnCisgICAgICAgICAgICBhc3NlcnQgX3dpbmFwaS5HZXRMYXN0RXJyb3IoKSA9PSAwLCAndGFnbmFtZSBhbHJlYWR5IGluIHVzZScKICAgICAgICAgICAgIHNlbGYuX3N0YXRlID0gKHNlbGYuc2l6ZSwgc2VsZi5uYW1lKQogCiAgICAgICAgIGRlZiBfX2dldHN0YXRlX18oc2VsZik6CkBAIC03Miw3ICs0Niw3IEBACiAgICAgICAgIGRlZiBfX3NldHN0YXRlX18oc2VsZiwgc3RhdGUpOgogICAgICAgICAgICAgc2VsZi5zaXplLCBzZWxmLm5hbWUgPSBzZWxmLl9zdGF0ZSA9IHN0YXRlCiAgICAgICAgICAgICBzZWxmLmJ1ZmZlciA9IG1tYXAubW1hcCgtMSwgc2VsZi5zaXplLCB0YWduYW1lPXNlbGYubmFtZSkKLSAgICAgICAgICAgIGFzc2VydCB3aW4zMi5HZXRMYXN0RXJyb3IoKSA9PSB3aW4zMi5FUlJPUl9BTFJFQURZX0VYSVNUUworICAgICAgICAgICAgYXNzZXJ0IF93aW5hcGkuR2V0TGFzdEVycm9yKCkgPT0gX3dpbmFwaS5FUlJPUl9BTFJFQURZX0VYSVNUUwogCiBlbHNlOgogCkBAIC0yMzEsNyArMjA1LDcgQEAKICAgICAgICAgICAgIHNlbGYuX2xvY2sucmVsZWFzZSgpCiAKICMKLSMgQ2xhc3MgcmVwcmVzZW50aW5nIGEgY2h1bmsgb2YgYW4gbW1hcCAtLSBjYW4gYmUgaW5oZXJpdGVkCisjIENsYXNzIHJlcHJlc2VudGluZyBhIGNodW5rIG9mIGFuIG1tYXAgLS0gY2FuIGJlIGluaGVyaXRlZCBieSBjaGlsZCBwcm9jZXNzCiAjCiAKIGNsYXNzIEJ1ZmZlcldyYXBwZXIob2JqZWN0KToKQEAgLTI0NCwxMSArMjE4LDYgQEAKICAgICAgICAgc2VsZi5fc3RhdGUgPSAoYmxvY2ssIHNpemUpCiAgICAgICAgIEZpbmFsaXplKHNlbGYsIEJ1ZmZlcldyYXBwZXIuX2hlYXAuZnJlZSwgYXJncz0oYmxvY2ssKSkKIAotICAgIGRlZiBnZXRfYWRkcmVzcyhzZWxmKToKKyAgICBkZWYgY3JlYXRlX21lbW9yeXZpZXcoc2VsZik6CiAgICAgICAgIChhcmVuYSwgc3RhcnQsIHN0b3ApLCBzaXplID0gc2VsZi5fc3RhdGUKLSAgICAgICAgYWRkcmVzcywgbGVuZ3RoID0gX211bHRpcHJvY2Vzc2luZy5hZGRyZXNzX29mX2J1ZmZlcihhcmVuYS5idWZmZXIpCi0gICAgICAgIGFzc2VydCBzaXplIDw9IGxlbmd0aAotICAgICAgICByZXR1cm4gYWRkcmVzcyArIHN0YXJ0Ci0KLSAgICBkZWYgZ2V0X3NpemUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9zdGF0ZVsxXQorICAgICAgICByZXR1cm4gbWVtb3J5dmlldyhhcmVuYS5idWZmZXIpW3N0YXJ0OnN0YXJ0K3NpemVdCmRpZmYgLS1naXQgYS9MaWIvbXVsdGlwcm9jZXNzaW5nL21hbmFnZXJzLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9tYW5hZ2Vycy5weQppbmRleCA1NTg4ZWFkLi4xYWIxNDdlIDEwMDY0NAotLS0gYS9MaWIvbXVsdGlwcm9jZXNzaW5nL21hbmFnZXJzLnB5CisrKyBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvbWFuYWdlcnMucHkKQEAgLTUsMzIgKzUsNyBAQAogIyBtdWx0aXByb2Nlc3NpbmcvbWFuYWdlcnMucHkKICMKICMgQ29weXJpZ2h0IChjKSAyMDA2LTIwMDgsIFIgT3Vka2VyawotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jCi0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIyAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIGF1dGhvciBub3IgdGhlIG5hbWVzIG9mIGFueSBjb250cmlidXRvcnMgbWF5IGJlCi0jICAgIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCi0jICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLSMgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLSMgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKLSMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0jIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSMgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotIyBTVUNIIERBTUFHRS4KKyMgTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50LgogIwogCiBfX2FsbF9fID0gWyAnQmFzZU1hbmFnZXInLCAnU3luY01hbmFnZXInLCAnQmFzZVByb3h5JywgJ1Rva2VuJyBdCkBAIC0zOSwxOSArMTQsMTYgQEAKICMgSW1wb3J0cwogIwogCi1pbXBvcnQgb3MKIGltcG9ydCBzeXMKLWltcG9ydCB3ZWFrcmVmCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgYXJyYXkKIGltcG9ydCBxdWV1ZQogCiBmcm9tIHRyYWNlYmFjayBpbXBvcnQgZm9ybWF0X2V4YwotZnJvbSBwaWNrbGUgaW1wb3J0IFBpY2tsaW5nRXJyb3IKIGZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBQcm9jZXNzLCBjdXJyZW50X3Byb2Nlc3MsIGFjdGl2ZV9jaGlsZHJlbiwgUG9vbCwgdXRpbCwgY29ubmVjdGlvbgogZnJvbSBtdWx0aXByb2Nlc3NpbmcucHJvY2VzcyBpbXBvcnQgQXV0aGVudGljYXRpb25TdHJpbmcKLWZyb20gbXVsdGlwcm9jZXNzaW5nLmZvcmtpbmcgaW1wb3J0IGV4aXQsIFBvcGVuLCBhc3NlcnRfc3Bhd25pbmcsIEZvcmtpbmdQaWNrbGVyCi1mcm9tIG11bHRpcHJvY2Vzc2luZy51dGlsIGltcG9ydCBGaW5hbGl6ZSwgaW5mbworZnJvbSBtdWx0aXByb2Nlc3NpbmcuZm9ya2luZyBpbXBvcnQgUG9wZW4sIEZvcmtpbmdQaWNrbGVyCitmcm9tIHRpbWUgaW1wb3J0IHRpbWUgYXMgX3RpbWUKIAogIwogIyBSZWdpc3RlciBzb21lIHRoaW5ncyBmb3IgcGlja2xpbmcKQEAgLTE2OCwyOCArMTQwLDM4IEBACiAgICAgICAgIHNlbGYuaWRfdG9fb2JqID0geycwJzogKE5vbmUsICgpKX0KICAgICAgICAgc2VsZi5pZF90b19yZWZjb3VudCA9IHt9CiAgICAgICAgIHNlbGYubXV0ZXggPSB0aHJlYWRpbmcuUkxvY2soKQotICAgICAgICBzZWxmLnN0b3AgPSAwCiAKICAgICBkZWYgc2VydmVfZm9yZXZlcihzZWxmKToKICAgICAgICAgJycnCiAgICAgICAgIFJ1biB0aGUgc2VydmVyIGZvcmV2ZXIKICAgICAgICAgJycnCisgICAgICAgIHNlbGYuc3RvcF9ldmVudCA9IHRocmVhZGluZy5FdmVudCgpCiAgICAgICAgIGN1cnJlbnRfcHJvY2VzcygpLl9tYW5hZ2VyX3NlcnZlciA9IHNlbGYKICAgICAgICAgdHJ5OgorICAgICAgICAgICAgYWNjZXB0ZXIgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLmFjY2VwdGVyKQorICAgICAgICAgICAgYWNjZXB0ZXIuZGFlbW9uID0gVHJ1ZQorICAgICAgICAgICAgYWNjZXB0ZXIuc3RhcnQoKQogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHdoaWxlIDE6Ci0gICAgICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBzZWxmLmxpc3RlbmVyLmFjY2VwdCgpCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgSU9FcnJvcik6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5oYW5kbGVfcmVxdWVzdCwgYXJncz0oYywpKQotICAgICAgICAgICAgICAgICAgICB0LmRhZW1vbiA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgdC5zdGFydCgpCisgICAgICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuc3RvcF9ldmVudC5pc19zZXQoKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdG9wX2V2ZW50LndhaXQoMSkKICAgICAgICAgICAgIGV4Y2VwdCAoS2V5Ym9hcmRJbnRlcnJ1cHQsIFN5c3RlbUV4aXQpOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuc3RvcCA9IDk5OQotICAgICAgICAgICAgc2VsZi5saXN0ZW5lci5jbG9zZSgpCisgICAgICAgICAgICBpZiBzeXMuc3Rkb3V0ICE9IHN5cy5fX3N0ZG91dF9fOgorICAgICAgICAgICAgICAgIHV0aWwuZGVidWcoJ3Jlc2V0dGluZyBzdGRvdXQsIHN0ZGVycicpCisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dCA9IHN5cy5fX3N0ZG91dF9fCisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyciA9IHN5cy5fX3N0ZGVycl9fCisgICAgICAgICAgICBzeXMuZXhpdCgwKQorCisgICAgZGVmIGFjY2VwdGVyKHNlbGYpOgorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGMgPSBzZWxmLmxpc3RlbmVyLmFjY2VwdCgpCisgICAgICAgICAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5oYW5kbGVfcmVxdWVzdCwgYXJncz0oYywpKQorICAgICAgICAgICAgdC5kYWVtb24gPSBUcnVlCisgICAgICAgICAgICB0LnN0YXJ0KCkKIAogICAgIGRlZiBoYW5kbGVfcmVxdWVzdChzZWxmLCBjKToKICAgICAgICAgJycnCkBAIC0yMzYsNyArMjE4LDcgQEAKICAgICAgICAgc2VuZCA9IGNvbm4uc2VuZAogICAgICAgICBpZF90b19vYmogPSBzZWxmLmlkX3RvX29iagogCi0gICAgICAgIHdoaWxlIG5vdCBzZWxmLnN0b3A6CisgICAgICAgIHdoaWxlIG5vdCBzZWxmLnN0b3BfZXZlbnQuaXNfc2V0KCk6CiAKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBtZXRob2RuYW1lID0gb2JqID0gTm9uZQpAQCAtMzQ2LDMyICszMjgsMTMgQEAKICAgICAgICAgU2h1dGRvd24gdGhpcyBwcm9jZXNzCiAgICAgICAgICcnJwogICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdXRpbC5kZWJ1ZygnbWFuYWdlciByZWNlaXZlZCBzaHV0ZG93biBtZXNzYWdlJykKLSAgICAgICAgICAgICAgICBjLnNlbmQoKCcjUkVUVVJOJywgTm9uZSkpCi0KLSAgICAgICAgICAgICAgICBpZiBzeXMuc3Rkb3V0ICE9IHN5cy5fX3N0ZG91dF9fOgotICAgICAgICAgICAgICAgICAgICB1dGlsLmRlYnVnKCdyZXNldHRpbmcgc3Rkb3V0LCBzdGRlcnInKQotICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0ID0gc3lzLl9fc3Rkb3V0X18KLSAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZGVyciA9IHN5cy5fX3N0ZGVycl9fCi0KLSAgICAgICAgICAgICAgICB1dGlsLl9ydW5fZmluYWxpemVycygwKQotCi0gICAgICAgICAgICAgICAgZm9yIHAgaW4gYWN0aXZlX2NoaWxkcmVuKCk6Ci0gICAgICAgICAgICAgICAgICAgIHV0aWwuZGVidWcoJ3Rlcm1pbmF0aW5nIGEgY2hpbGQgcHJvY2VzcyBvZiBtYW5hZ2VyJykKLSAgICAgICAgICAgICAgICAgICAgcC50ZXJtaW5hdGUoKQotCi0gICAgICAgICAgICAgICAgZm9yIHAgaW4gYWN0aXZlX2NoaWxkcmVuKCk6Ci0gICAgICAgICAgICAgICAgICAgIHV0aWwuZGVidWcoJ3Rlcm1pbmF0aW5nIGEgY2hpbGQgcHJvY2VzcyBvZiBtYW5hZ2VyJykKLSAgICAgICAgICAgICAgICAgICAgcC5qb2luKCkKLQotICAgICAgICAgICAgICAgIHV0aWwuX3J1bl9maW5hbGl6ZXJzKCkKLSAgICAgICAgICAgICAgICB1dGlsLmluZm8oJ21hbmFnZXIgZXhpdGluZyB3aXRoIGV4aXRjb2RlIDAnKQotICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKLSAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAgICAgICAgIHV0aWwuZGVidWcoJ21hbmFnZXIgcmVjZWl2ZWQgc2h1dGRvd24gbWVzc2FnZScpCisgICAgICAgICAgICBjLnNlbmQoKCcjUkVUVVJOJywgTm9uZSkpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKKyAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQogICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZXhpdCgwKQorICAgICAgICAgICAgc2VsZi5zdG9wX2V2ZW50LnNldCgpCiAKICAgICBkZWYgY3JlYXRlKHNlbGYsIGMsIHR5cGVpZCwgKmFyZ3MsICoqa3dkcyk6CiAgICAgICAgICcnJwpAQCAtNDgzLDEwICs0NDYsNiBAQAogICAgICAgICBzZWxmLl9zZXJpYWxpemVyID0gc2VyaWFsaXplcgogICAgICAgICBzZWxmLl9MaXN0ZW5lciwgc2VsZi5fQ2xpZW50ID0gbGlzdGVuZXJfY2xpZW50W3NlcmlhbGl6ZXJdCiAKLSAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikuZnJvbV9hZGRyZXNzLCBcCi0gICAgICAgICAgICAgICAoc2VsZi5fYWRkcmVzcywgc2VsZi5fYXV0aGtleSwgc2VsZi5fc2VyaWFsaXplcikKLQogICAgIGRlZiBnZXRfc2VydmVyKHNlbGYpOgogICAgICAgICAnJycKICAgICAgICAgUmV0dXJuIHNlcnZlciBvYmplY3Qgd2l0aCBzZXJ2ZV9mb3JldmVyKCkgbWV0aG9kIGFuZCBhZGRyZXNzIGF0dHJpYnV0ZQpAQCAtNTc2LDcgKzUzNSwxMCBAQAogICAgICAgICAnJycKICAgICAgICAgSm9pbiB0aGUgbWFuYWdlciBwcm9jZXNzIChpZiBpdCBoYXMgYmVlbiBzcGF3bmVkKQogICAgICAgICAnJycKLSAgICAgICAgc2VsZi5fcHJvY2Vzcy5qb2luKHRpbWVvdXQpCisgICAgICAgIGlmIHNlbGYuX3Byb2Nlc3MgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLl9wcm9jZXNzLmpvaW4odGltZW91dCkKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9wcm9jZXNzLmlzX2FsaXZlKCk6CisgICAgICAgICAgICAgICAgc2VsZi5fcHJvY2VzcyA9IE5vbmUKIAogICAgIGRlZiBfZGVidWdfaW5mbyhzZWxmKToKICAgICAgICAgJycnCkBAIC01OTksNiArNTYxLDkgQEAKICAgICAgICAgICAgIGNvbm4uY2xvc2UoKQogCiAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fc3RhdGUudmFsdWUgPT0gU3RhdGUuSU5JVElBTDoKKyAgICAgICAgICAgIHNlbGYuc3RhcnQoKQorICAgICAgICBhc3NlcnQgc2VsZi5fc3RhdGUudmFsdWUgPT0gU3RhdGUuU1RBUlRFRAogICAgICAgICByZXR1cm4gc2VsZgogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsLCBleGNfdGIpOgpAQCAtNjIwLDcgKzU4NSw3IEBACiAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHBhc3MKIAotICAgICAgICAgICAgcHJvY2Vzcy5qb2luKHRpbWVvdXQ9MC4yKQorICAgICAgICAgICAgcHJvY2Vzcy5qb2luKHRpbWVvdXQ9MS4wKQogICAgICAgICAgICAgaWYgcHJvY2Vzcy5pc19hbGl2ZSgpOgogICAgICAgICAgICAgICAgIHV0aWwuaW5mbygnbWFuYWdlciBzdGlsbCBhbGl2ZScpCiAgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihwcm9jZXNzLCAndGVybWluYXRlJyk6CkBAIC05ODIsOCArOTQ3LDkgQEAKIAogY2xhc3MgQWNxdWlyZXJQcm94eShCYXNlUHJveHkpOgogICAgIF9leHBvc2VkXyA9ICgnYWNxdWlyZScsICdyZWxlYXNlJykKLSAgICBkZWYgYWNxdWlyZShzZWxmLCBibG9ja2luZz1UcnVlKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGxtZXRob2QoJ2FjcXVpcmUnLCAoYmxvY2tpbmcsKSkKKyAgICBkZWYgYWNxdWlyZShzZWxmLCBibG9ja2luZz1UcnVlLCB0aW1lb3V0PU5vbmUpOgorICAgICAgICBhcmdzID0gKGJsb2NraW5nLCkgaWYgdGltZW91dCBpcyBOb25lIGVsc2UgKGJsb2NraW5nLCB0aW1lb3V0KQorICAgICAgICByZXR1cm4gc2VsZi5fY2FsbG1ldGhvZCgnYWNxdWlyZScsIGFyZ3MpCiAgICAgZGVmIHJlbGVhc2Uoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9jYWxsbWV0aG9kKCdyZWxlYXNlJykKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgpAQCAtMTAwMCw2ICs5NjYsMjQgQEAKICAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGxtZXRob2QoJ25vdGlmeScpCiAgICAgZGVmIG5vdGlmeV9hbGwoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9jYWxsbWV0aG9kKCdub3RpZnlfYWxsJykKKyAgICBkZWYgd2FpdF9mb3Ioc2VsZiwgcHJlZGljYXRlLCB0aW1lb3V0PU5vbmUpOgorICAgICAgICByZXN1bHQgPSBwcmVkaWNhdGUoKQorICAgICAgICBpZiByZXN1bHQ6CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBlbmR0aW1lID0gX3RpbWUoKSArIHRpbWVvdXQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVuZHRpbWUgPSBOb25lCisgICAgICAgICAgICB3YWl0dGltZSA9IE5vbmUKKyAgICAgICAgd2hpbGUgbm90IHJlc3VsdDoKKyAgICAgICAgICAgIGlmIGVuZHRpbWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgd2FpdHRpbWUgPSBlbmR0aW1lIC0gX3RpbWUoKQorICAgICAgICAgICAgICAgIGlmIHdhaXR0aW1lIDw9IDA6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBzZWxmLndhaXQod2FpdHRpbWUpCisgICAgICAgICAgICByZXN1bHQgPSBwcmVkaWNhdGUoKQorICAgICAgICByZXR1cm4gcmVzdWx0CisKIAogY2xhc3MgRXZlbnRQcm94eShCYXNlUHJveHkpOgogICAgIF9leHBvc2VkXyA9ICgnaXNfc2V0JywgJ3NldCcsICdjbGVhcicsICd3YWl0JykKQEAgLTEwMTIsNiArOTk2LDI2IEBACiAgICAgZGVmIHdhaXQoc2VsZiwgdGltZW91dD1Ob25lKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGxtZXRob2QoJ3dhaXQnLCAodGltZW91dCwpKQogCisKK2NsYXNzIEJhcnJpZXJQcm94eShCYXNlUHJveHkpOgorICAgIF9leHBvc2VkXyA9ICgnX19nZXRhdHRyaWJ1dGVfXycsICd3YWl0JywgJ2Fib3J0JywgJ3Jlc2V0JykKKyAgICBkZWYgd2FpdChzZWxmLCB0aW1lb3V0PU5vbmUpOgorICAgICAgICByZXR1cm4gc2VsZi5fY2FsbG1ldGhvZCgnd2FpdCcsICh0aW1lb3V0LCkpCisgICAgZGVmIGFib3J0KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY2FsbG1ldGhvZCgnYWJvcnQnKQorICAgIGRlZiByZXNldChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGxtZXRob2QoJ3Jlc2V0JykKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcGFydGllcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGxtZXRob2QoJ19fZ2V0YXR0cmlidXRlX18nLCAoJ3BhcnRpZXMnLCkpCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5fd2FpdGluZyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGxtZXRob2QoJ19fZ2V0YXR0cmlidXRlX18nLCAoJ25fd2FpdGluZycsKSkKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgYnJva2VuKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fY2FsbG1ldGhvZCgnX19nZXRhdHRyaWJ1dGVfXycsICgnYnJva2VuJywpKQorCisKIGNsYXNzIE5hbWVzcGFjZVByb3h5KEJhc2VQcm94eSk6CiAgICAgX2V4cG9zZWRfID0gKCdfX2dldGF0dHJpYnV0ZV9fJywgJ19fc2V0YXR0cl9fJywgJ19fZGVsYXR0cl9fJykKICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwga2V5KToKQEAgLTEwNDEsMTIgKzEwNDUsMTEgQEAKIAogCiBCYXNlTGlzdFByb3h5ID0gTWFrZVByb3h5VHlwZSgnQmFzZUxpc3RQcm94eScsICgKLSAgICAnX19hZGRfXycsICdfX2NvbnRhaW5zX18nLCAnX19kZWxpdGVtX18nLCAnX19kZWxzbGljZV9fJywKLSAgICAnX19nZXRpdGVtX18nLCAnX19nZXRzbGljZV9fJywgJ19fbGVuX18nLCAnX19tdWxfXycsCi0gICAgJ19fcmV2ZXJzZWRfXycsICdfX3JtdWxfXycsICdfX3NldGl0ZW1fXycsICdfX3NldHNsaWNlX18nLAorICAgICdfX2FkZF9fJywgJ19fY29udGFpbnNfXycsICdfX2RlbGl0ZW1fXycsICdfX2dldGl0ZW1fXycsICdfX2xlbl9fJywKKyAgICAnX19tdWxfXycsICdfX3JldmVyc2VkX18nLCAnX19ybXVsX18nLCAnX19zZXRpdGVtX18nLAogICAgICdhcHBlbmQnLCAnY291bnQnLCAnZXh0ZW5kJywgJ2luZGV4JywgJ2luc2VydCcsICdwb3AnLCAncmVtb3ZlJywKICAgICAncmV2ZXJzZScsICdzb3J0JywgJ19faW11bF9fJwotICAgICkpICAgICAgICAgICAgICAgICAgIyBYWFggX19nZXRzbGljZV9fIGFuZCBfX3NldHNsaWNlX18gdW5uZWVkZWQgaW4gUHkzLjAKKyAgICApKQogY2xhc3MgTGlzdFByb3h5KEJhc2VMaXN0UHJveHkpOgogICAgIGRlZiBfX2lhZGRfXyhzZWxmLCB2YWx1ZSk6CiAgICAgICAgIHNlbGYuX2NhbGxtZXRob2QoJ2V4dGVuZCcsICh2YWx1ZSwpKQpAQCAtMTA2NCwxNyArMTA2NywxOCBAQAogCiAKIEFycmF5UHJveHkgPSBNYWtlUHJveHlUeXBlKCdBcnJheVByb3h5JywgKAotICAgICdfX2xlbl9fJywgJ19fZ2V0aXRlbV9fJywgJ19fc2V0aXRlbV9fJywgJ19fZ2V0c2xpY2VfXycsICdfX3NldHNsaWNlX18nCi0gICAgKSkgICAgICAgICAgICAgICAgICAjIFhYWCBfX2dldHNsaWNlX18gYW5kIF9fc2V0c2xpY2VfXyB1bm5lZWRlZCBpbiBQeTMuMAorICAgICdfX2xlbl9fJywgJ19fZ2V0aXRlbV9fJywgJ19fc2V0aXRlbV9fJworICAgICkpCiAKIAogUG9vbFByb3h5ID0gTWFrZVByb3h5VHlwZSgnUG9vbFByb3h5JywgKAogICAgICdhcHBseScsICdhcHBseV9hc3luYycsICdjbG9zZScsICdpbWFwJywgJ2ltYXBfdW5vcmRlcmVkJywgJ2pvaW4nLAotICAgICdtYXAnLCAnbWFwX2FzeW5jJywgJ3Rlcm1pbmF0ZScKKyAgICAnbWFwJywgJ21hcF9hc3luYycsICdzdGFybWFwJywgJ3N0YXJtYXBfYXN5bmMnLCAndGVybWluYXRlJwogICAgICkpCiBQb29sUHJveHkuX21ldGhvZF90b190eXBlaWRfID0gewogICAgICdhcHBseV9hc3luYyc6ICdBc3luY1Jlc3VsdCcsCiAgICAgJ21hcF9hc3luYyc6ICdBc3luY1Jlc3VsdCcsCisgICAgJ3N0YXJtYXBfYXN5bmMnOiAnQXN5bmNSZXN1bHQnLAogICAgICdpbWFwJzogJ0l0ZXJhdG9yJywKICAgICAnaW1hcF91bm9yZGVyZWQnOiAnSXRlcmF0b3InCiAgICAgfQpAQCAtMTEwMyw2ICsxMTA3LDcgQEAKIFN5bmNNYW5hZ2VyLnJlZ2lzdGVyKCdCb3VuZGVkU2VtYXBob3JlJywgdGhyZWFkaW5nLkJvdW5kZWRTZW1hcGhvcmUsCiAgICAgICAgICAgICAgICAgICAgICBBY3F1aXJlclByb3h5KQogU3luY01hbmFnZXIucmVnaXN0ZXIoJ0NvbmRpdGlvbicsIHRocmVhZGluZy5Db25kaXRpb24sIENvbmRpdGlvblByb3h5KQorU3luY01hbmFnZXIucmVnaXN0ZXIoJ0JhcnJpZXInLCB0aHJlYWRpbmcuQmFycmllciwgQmFycmllclByb3h5KQogU3luY01hbmFnZXIucmVnaXN0ZXIoJ1Bvb2wnLCBQb29sLCBQb29sUHJveHkpCiBTeW5jTWFuYWdlci5yZWdpc3RlcignbGlzdCcsIGxpc3QsIExpc3RQcm94eSkKIFN5bmNNYW5hZ2VyLnJlZ2lzdGVyKCdkaWN0JywgZGljdCwgRGljdFByb3h5KQpkaWZmIC0tZ2l0IGEvTGliL211bHRpcHJvY2Vzc2luZy9wb29sLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9wb29sLnB5CmluZGV4IDc1MDJmZjguLjllMDdlMzIgMTAwNjQ0Ci0tLSBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvcG9vbC5weQorKysgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL3Bvb2wucHkKQEAgLTQsMzIgKzQsNyBAQAogIyBtdWx0aXByb2Nlc3NpbmcvcG9vbC5weQogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgYW55IGNvbnRyaWJ1dG9ycyBtYXkgYmUKLSMgICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLSMgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotIyBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotIyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0jIFNVQ0ggREFNQUdFLgorIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCiAjCiAKIF9fYWxsX18gPSBbJ1Bvb2wnXQpAQCAtNjQsNiArMzksOSBAQAogZGVmIG1hcHN0YXIoYXJncyk6CiAgICAgcmV0dXJuIGxpc3QobWFwKCphcmdzKSkKIAorZGVmIHN0YXJtYXBzdGFyKGFyZ3MpOgorICAgIHJldHVybiBsaXN0KGl0ZXJ0b29scy5zdGFybWFwKGFyZ3NbMF0sIGFyZ3NbMV0pKQorCiAjCiAjIENvZGUgcnVuIGJ5IHdvcmtlciBwcm9jZXNzZXMKICMKQEAgLTI0OCw3ICsyMjYsMjUgQEAKICAgICAgICAgaW4gYSBsaXN0IHRoYXQgaXMgcmV0dXJuZWQuCiAgICAgICAgICcnJwogICAgICAgICBhc3NlcnQgc2VsZi5fc3RhdGUgPT0gUlVOCi0gICAgICAgIHJldHVybiBzZWxmLm1hcF9hc3luYyhmdW5jLCBpdGVyYWJsZSwgY2h1bmtzaXplKS5nZXQoKQorICAgICAgICByZXR1cm4gc2VsZi5fbWFwX2FzeW5jKGZ1bmMsIGl0ZXJhYmxlLCBtYXBzdGFyLCBjaHVua3NpemUpLmdldCgpCisKKyAgICBkZWYgc3Rhcm1hcChzZWxmLCBmdW5jLCBpdGVyYWJsZSwgY2h1bmtzaXplPU5vbmUpOgorICAgICAgICAnJycKKyAgICAgICAgTGlrZSBgbWFwKClgIG1ldGhvZCBidXQgdGhlIGVsZW1lbnRzIG9mIHRoZSBgaXRlcmFibGVgIGFyZSBleHBlY3RlZCB0bworICAgICAgICBiZSBpdGVyYWJsZXMgYXMgd2VsbCBhbmQgd2lsbCBiZSB1bnBhY2tlZCBhcyBhcmd1bWVudHMuIEhlbmNlCisgICAgICAgIGBmdW5jYCBhbmQgKGEsIGIpIGJlY29tZXMgZnVuYyhhLCBiKS4KKyAgICAgICAgJycnCisgICAgICAgIGFzc2VydCBzZWxmLl9zdGF0ZSA9PSBSVU4KKyAgICAgICAgcmV0dXJuIHNlbGYuX21hcF9hc3luYyhmdW5jLCBpdGVyYWJsZSwgc3Rhcm1hcHN0YXIsIGNodW5rc2l6ZSkuZ2V0KCkKKworICAgIGRlZiBzdGFybWFwX2FzeW5jKHNlbGYsIGZ1bmMsIGl0ZXJhYmxlLCBjaHVua3NpemU9Tm9uZSwgY2FsbGJhY2s9Tm9uZSwKKyAgICAgICAgICAgIGVycm9yX2NhbGxiYWNrPU5vbmUpOgorICAgICAgICAnJycKKyAgICAgICAgQXN5bmNocm9ub3VzIHZlcnNpb24gb2YgYHN0YXJtYXAoKWAgbWV0aG9kLgorICAgICAgICAnJycKKyAgICAgICAgYXNzZXJ0IHNlbGYuX3N0YXRlID09IFJVTgorICAgICAgICByZXR1cm4gc2VsZi5fbWFwX2FzeW5jKGZ1bmMsIGl0ZXJhYmxlLCBzdGFybWFwc3RhciwgY2h1bmtzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBlcnJvcl9jYWxsYmFjaykKIAogICAgIGRlZiBpbWFwKHNlbGYsIGZ1bmMsIGl0ZXJhYmxlLCBjaHVua3NpemU9MSk6CiAgICAgICAgICcnJwpAQCAtMzAyLDYgKzI5OCwxMyBAQAogICAgICAgICBBc3luY2hyb25vdXMgdmVyc2lvbiBvZiBgbWFwKClgIG1ldGhvZC4KICAgICAgICAgJycnCiAgICAgICAgIGFzc2VydCBzZWxmLl9zdGF0ZSA9PSBSVU4KKyAgICAgICAgcmV0dXJuIHNlbGYuX21hcF9hc3luYyhmdW5jLCBpdGVyYWJsZSwgbWFwc3RhciwgY2h1bmtzaXplKQorCisgICAgZGVmIF9tYXBfYXN5bmMoc2VsZiwgZnVuYywgaXRlcmFibGUsIG1hcHBlciwgY2h1bmtzaXplPU5vbmUsIGNhbGxiYWNrPU5vbmUsCisgICAgICAgICAgICBlcnJvcl9jYWxsYmFjaz1Ob25lKToKKyAgICAgICAgJycnCisgICAgICAgIEhlbHBlciBmdW5jdGlvbiB0byBpbXBsZW1lbnQgbWFwLCBzdGFybWFwIGFuZCB0aGVpciBhc3luYyBjb3VudGVycGFydHMuCisgICAgICAgICcnJwogICAgICAgICBpZiBub3QgaGFzYXR0cihpdGVyYWJsZSwgJ19fbGVuX18nKToKICAgICAgICAgICAgIGl0ZXJhYmxlID0gbGlzdChpdGVyYWJsZSkKIApAQCAtMzE1LDcgKzMxOCw3IEBACiAgICAgICAgIHRhc2tfYmF0Y2hlcyA9IFBvb2wuX2dldF90YXNrcyhmdW5jLCBpdGVyYWJsZSwgY2h1bmtzaXplKQogICAgICAgICByZXN1bHQgPSBNYXBSZXN1bHQoc2VsZi5fY2FjaGUsIGNodW5rc2l6ZSwgbGVuKGl0ZXJhYmxlKSwgY2FsbGJhY2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jYWxsYmFjaz1lcnJvcl9jYWxsYmFjaykKLSAgICAgICAgc2VsZi5fdGFza3F1ZXVlLnB1dCgoKChyZXN1bHQuX2pvYiwgaSwgbWFwc3RhciwgKHgsKSwge30pCisgICAgICAgIHNlbGYuX3Rhc2txdWV1ZS5wdXQoKCgocmVzdWx0Ll9qb2IsIGksIG1hcHBlciwgKHgsKSwge30pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSwgeCBpbiBlbnVtZXJhdGUodGFza19iYXRjaGVzKSksIE5vbmUpKQogICAgICAgICByZXR1cm4gcmVzdWx0CiAKQEAgLTUxOSw2ICs1MjIsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgZGVidWcoJ2NsZWFuaW5nIHVwIHdvcmtlciAlZCcgJSBwLnBpZCkKICAgICAgICAgICAgICAgICAgICAgcC5qb2luKCkKIAorICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWwsIGV4Y190Yik6CisgICAgICAgIHNlbGYudGVybWluYXRlKCkKKwogIwogIyBDbGFzcyB3aG9zZSBpbnN0YW5jZXMgYXJlIHJldHVybmVkIGJ5IGBQb29sLmFwcGx5X2FzeW5jKClgCiAjCkBAIC01MjYsMzIgKzUzNSwyNiBAQAogY2xhc3MgQXBwbHlSZXN1bHQob2JqZWN0KToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYWNoZSwgY2FsbGJhY2ssIGVycm9yX2NhbGxiYWNrKToKLSAgICAgICAgc2VsZi5fY29uZCA9IHRocmVhZGluZy5Db25kaXRpb24odGhyZWFkaW5nLkxvY2soKSkKKyAgICAgICAgc2VsZi5fZXZlbnQgPSB0aHJlYWRpbmcuRXZlbnQoKQogICAgICAgICBzZWxmLl9qb2IgPSBuZXh0KGpvYl9jb3VudGVyKQogICAgICAgICBzZWxmLl9jYWNoZSA9IGNhY2hlCi0gICAgICAgIHNlbGYuX3JlYWR5ID0gRmFsc2UKICAgICAgICAgc2VsZi5fY2FsbGJhY2sgPSBjYWxsYmFjawogICAgICAgICBzZWxmLl9lcnJvcl9jYWxsYmFjayA9IGVycm9yX2NhbGxiYWNrCiAgICAgICAgIGNhY2hlW3NlbGYuX2pvYl0gPSBzZWxmCiAKICAgICBkZWYgcmVhZHkoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9yZWFkeQorICAgICAgICByZXR1cm4gc2VsZi5fZXZlbnQuaXNfc2V0KCkKIAogICAgIGRlZiBzdWNjZXNzZnVsKHNlbGYpOgotICAgICAgICBhc3NlcnQgc2VsZi5fcmVhZHkKKyAgICAgICAgYXNzZXJ0IHNlbGYucmVhZHkoKQogICAgICAgICByZXR1cm4gc2VsZi5fc3VjY2VzcwogCiAgICAgZGVmIHdhaXQoc2VsZiwgdGltZW91dD1Ob25lKToKLSAgICAgICAgc2VsZi5fY29uZC5hY3F1aXJlKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYgbm90IHNlbGYuX3JlYWR5OgotICAgICAgICAgICAgICAgIHNlbGYuX2NvbmQud2FpdCh0aW1lb3V0KQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fY29uZC5yZWxlYXNlKCkKKyAgICAgICAgc2VsZi5fZXZlbnQud2FpdCh0aW1lb3V0KQogCiAgICAgZGVmIGdldChzZWxmLCB0aW1lb3V0PU5vbmUpOgogICAgICAgICBzZWxmLndhaXQodGltZW91dCkKLSAgICAgICAgaWYgbm90IHNlbGYuX3JlYWR5OgorICAgICAgICBpZiBub3Qgc2VsZi5yZWFkeSgpOgogICAgICAgICAgICAgcmFpc2UgVGltZW91dEVycm9yCiAgICAgICAgIGlmIHNlbGYuX3N1Y2Nlc3M6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fdmFsdWUKQEAgLTU2NCwxMiArNTY3LDcgQEAKICAgICAgICAgICAgIHNlbGYuX2NhbGxiYWNrKHNlbGYuX3ZhbHVlKQogICAgICAgICBpZiBzZWxmLl9lcnJvcl9jYWxsYmFjayBhbmQgbm90IHNlbGYuX3N1Y2Nlc3M6CiAgICAgICAgICAgICBzZWxmLl9lcnJvcl9jYWxsYmFjayhzZWxmLl92YWx1ZSkKLSAgICAgICAgc2VsZi5fY29uZC5hY3F1aXJlKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fcmVhZHkgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLl9jb25kLm5vdGlmeSgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9jb25kLnJlbGVhc2UoKQorICAgICAgICBzZWxmLl9ldmVudC5zZXQoKQogICAgICAgICBkZWwgc2VsZi5fY2FjaGVbc2VsZi5fam9iXQogCiAjCkBAIC01ODYsNyArNTg0LDcgQEAKICAgICAgICAgc2VsZi5fY2h1bmtzaXplID0gY2h1bmtzaXplCiAgICAgICAgIGlmIGNodW5rc2l6ZSA8PSAwOgogICAgICAgICAgICAgc2VsZi5fbnVtYmVyX2xlZnQgPSAwCi0gICAgICAgICAgICBzZWxmLl9yZWFkeSA9IFRydWUKKyAgICAgICAgICAgIHNlbGYuX2V2ZW50LnNldCgpCiAgICAgICAgICAgICBkZWwgY2FjaGVbc2VsZi5fam9iXQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5fbnVtYmVyX2xlZnQgPSBsZW5ndGgvL2NodW5rc2l6ZSArIGJvb2wobGVuZ3RoICUgY2h1bmtzaXplKQpAQCAtNjAwLDI0ICs1OTgsMTQgQEAKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9jYWxsYmFjazoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2FsbGJhY2soc2VsZi5fdmFsdWUpCiAgICAgICAgICAgICAgICAgZGVsIHNlbGYuX2NhY2hlW3NlbGYuX2pvYl0KLSAgICAgICAgICAgICAgICBzZWxmLl9jb25kLmFjcXVpcmUoKQotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVhZHkgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2NvbmQubm90aWZ5KCkKLSAgICAgICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jb25kLnJlbGVhc2UoKQorICAgICAgICAgICAgICAgIHNlbGYuX2V2ZW50LnNldCgpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl9zdWNjZXNzID0gRmFsc2UKICAgICAgICAgICAgIHNlbGYuX3ZhbHVlID0gcmVzdWx0CiAgICAgICAgICAgICBpZiBzZWxmLl9lcnJvcl9jYWxsYmFjazoKICAgICAgICAgICAgICAgICBzZWxmLl9lcnJvcl9jYWxsYmFjayhzZWxmLl92YWx1ZSkKICAgICAgICAgICAgIGRlbCBzZWxmLl9jYWNoZVtzZWxmLl9qb2JdCi0gICAgICAgICAgICBzZWxmLl9jb25kLmFjcXVpcmUoKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX3JlYWR5ID0gVHJ1ZQotICAgICAgICAgICAgICAgIHNlbGYuX2NvbmQubm90aWZ5KCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fY29uZC5yZWxlYXNlKCkKKyAgICAgICAgICAgIHNlbGYuX2V2ZW50LnNldCgpCiAKICMKICMgQ2xhc3Mgd2hvc2UgaW5zdGFuY2VzIGFyZSByZXR1cm5lZCBieSBgUG9vbC5pbWFwKClgCmRpZmYgLS1naXQgYS9MaWIvbXVsdGlwcm9jZXNzaW5nL3Byb2Nlc3MucHkgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL3Byb2Nlc3MucHkKaW5kZXggMzI2MmI1MC4uODkzNTA3YiAxMDA2NDQKLS0tIGEvTGliL211bHRpcHJvY2Vzc2luZy9wcm9jZXNzLnB5CisrKyBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvcHJvY2Vzcy5weQpAQCAtNCwzMiArNCw3IEBACiAjIG11bHRpcHJvY2Vzc2luZy9wcm9jZXNzLnB5CiAjCiAjIENvcHlyaWdodCAoYykgMjAwNi0yMDA4LCBSIE91ZGtlcmsKLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIwotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMgMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBhdXRob3Igbm9yIHRoZSBuYW1lcyBvZiBhbnkgY29udHJpYnV0b3JzIG1heSBiZQotIyAgICB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotIyAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0jIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0jIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0jIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotIyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotIyBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0jIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSMgU1VDSCBEQU1BR0UuCisjIExpY2Vuc2VkIHRvIFBTRiB1bmRlciBhIENvbnRyaWJ1dG9yIEFncmVlbWVudC4KICMKIAogX19hbGxfXyA9IFsnUHJvY2VzcycsICdjdXJyZW50X3Byb2Nlc3MnLCAnYWN0aXZlX2NoaWxkcmVuJ10KQEAgLTkyLDEyICs2NywxNiBAQAogICAgICcnJwogICAgIF9Qb3BlbiA9IE5vbmUKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBncm91cD1Ob25lLCB0YXJnZXQ9Tm9uZSwgbmFtZT1Ob25lLCBhcmdzPSgpLCBrd2FyZ3M9e30pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBncm91cD1Ob25lLCB0YXJnZXQ9Tm9uZSwgbmFtZT1Ob25lLCBhcmdzPSgpLCBrd2FyZ3M9e30sCisgICAgICAgICAgICAgICAgICosIGRhZW1vbj1Ob25lKToKICAgICAgICAgYXNzZXJ0IGdyb3VwIGlzIE5vbmUsICdncm91cCBhcmd1bWVudCBtdXN0IGJlIE5vbmUgZm9yIG5vdycKICAgICAgICAgY291bnQgPSBuZXh0KF9jdXJyZW50X3Byb2Nlc3MuX2NvdW50ZXIpCiAgICAgICAgIHNlbGYuX2lkZW50aXR5ID0gX2N1cnJlbnRfcHJvY2Vzcy5faWRlbnRpdHkgKyAoY291bnQsKQogICAgICAgICBzZWxmLl9hdXRoa2V5ID0gX2N1cnJlbnRfcHJvY2Vzcy5fYXV0aGtleQotICAgICAgICBzZWxmLl9kYWVtb25pYyA9IF9jdXJyZW50X3Byb2Nlc3MuX2RhZW1vbmljCisgICAgICAgIGlmIGRhZW1vbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2RhZW1vbmljID0gZGFlbW9uCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9kYWVtb25pYyA9IF9jdXJyZW50X3Byb2Nlc3MuX2RhZW1vbmljCiAgICAgICAgIHNlbGYuX3RlbXBkaXIgPSBfY3VycmVudF9wcm9jZXNzLl90ZW1wZGlyCiAgICAgICAgIHNlbGYuX3BhcmVudF9waWQgPSBvcy5nZXRwaWQoKQogICAgICAgICBzZWxmLl9wb3BlbiA9IE5vbmUKQEAgLTEzMCw2ICsxMDksNyBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZnJvbSAuZm9ya2luZyBpbXBvcnQgUG9wZW4KICAgICAgICAgc2VsZi5fcG9wZW4gPSBQb3BlbihzZWxmKQorICAgICAgICBzZWxmLl9zZW50aW5lbCA9IHNlbGYuX3BvcGVuLnNlbnRpbmVsCiAgICAgICAgIF9jdXJyZW50X3Byb2Nlc3MuX2NoaWxkcmVuLmFkZChzZWxmKQogCiAgICAgZGVmIHRlcm1pbmF0ZShzZWxmKToKQEAgLTIxNiw2ICsxOTYsMTcgQEAKIAogICAgIHBpZCA9IGlkZW50CiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2VudGluZWwoc2VsZik6CisgICAgICAgICcnJworICAgICAgICBSZXR1cm4gYSBmaWxlIGRlc2NyaXB0b3IgKFVuaXgpIG9yIGhhbmRsZSAoV2luZG93cykgc3VpdGFibGUgZm9yCisgICAgICAgIHdhaXRpbmcgZm9yIHByb2Nlc3MgdGVybWluYXRpb24uCisgICAgICAgICcnJworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fc2VudGluZWwKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicHJvY2VzcyBub3Qgc3RhcnRlZCIpCisKICAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgIGlmIHNlbGYgaXMgX2N1cnJlbnRfcHJvY2VzczoKICAgICAgICAgICAgIHN0YXR1cyA9ICdzdGFydGVkJwpkaWZmIC0tZ2l0IGEvTGliL211bHRpcHJvY2Vzc2luZy9xdWV1ZXMucHkgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL3F1ZXVlcy5weQppbmRleCA1MWQ5OTEyLi4zNzI3MWZiIDEwMDY0NAotLS0gYS9MaWIvbXVsdGlwcm9jZXNzaW5nL3F1ZXVlcy5weQorKysgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL3F1ZXVlcy5weQpAQCAtNCwzMiArNCw3IEBACiAjIG11bHRpcHJvY2Vzc2luZy9xdWV1ZXMucHkKICMKICMgQ29weXJpZ2h0IChjKSAyMDA2LTIwMDgsIFIgT3Vka2VyawotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0jIGFyZSBtZXQ6Ci0jCi0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIyAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIGF1dGhvciBub3IgdGhlIG5hbWVzIG9mIGFueSBjb250cmlidXRvcnMgbWF5IGJlCi0jICAgIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNvZnR3YXJlCi0jICAgIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLSMgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKLSMgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKLSMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCi0jIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCi0jIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLSMgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotIyBTVUNIIERBTUFHRS4KKyMgTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50LgogIwogCiBfX2FsbF9fID0gWydRdWV1ZScsICdTaW1wbGVRdWV1ZScsICdKb2luYWJsZVF1ZXVlJ10KQEAgLTM5LDEyICsxNCwxMiBAQAogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQgdGltZQotaW1wb3J0IGF0ZXhpdAogaW1wb3J0IHdlYWtyZWYKK2ltcG9ydCBlcnJubwogCiBmcm9tIHF1ZXVlIGltcG9ydCBFbXB0eSwgRnVsbAogaW1wb3J0IF9tdWx0aXByb2Nlc3NpbmcKLWZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBQaXBlCitmcm9tIG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uIGltcG9ydCBQaXBlCiBmcm9tIG11bHRpcHJvY2Vzc2luZy5zeW5jaHJvbml6ZSBpbXBvcnQgTG9jaywgQm91bmRlZFNlbWFwaG9yZSwgU2VtYXBob3JlLCBDb25kaXRpb24KIGZyb20gbXVsdGlwcm9jZXNzaW5nLnV0aWwgaW1wb3J0IGRlYnVnLCBpbmZvLCBGaW5hbGl6ZSwgcmVnaXN0ZXJfYWZ0ZXJfZm9yawogZnJvbSBtdWx0aXByb2Nlc3NpbmcuZm9ya2luZyBpbXBvcnQgYXNzZXJ0X3NwYXduaW5nCkBAIC02Nyw2ICs0Miw4IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl93bG9jayA9IExvY2soKQogICAgICAgICBzZWxmLl9zZW0gPSBCb3VuZGVkU2VtYXBob3JlKG1heHNpemUpCisgICAgICAgICMgRm9yIHVzZSBieSBjb25jdXJyZW50LmZ1dHVyZXMKKyAgICAgICAgc2VsZi5faWdub3JlX2VwaXBlID0gRmFsc2UKIAogICAgICAgICBzZWxmLl9hZnRlcl9mb3JrKCkKIApAQCAtNzUsMTEgKzUyLDExIEBACiAKICAgICBkZWYgX19nZXRzdGF0ZV9fKHNlbGYpOgogICAgICAgICBhc3NlcnRfc3Bhd25pbmcoc2VsZikKLSAgICAgICAgcmV0dXJuIChzZWxmLl9tYXhzaXplLCBzZWxmLl9yZWFkZXIsIHNlbGYuX3dyaXRlciwKKyAgICAgICAgcmV0dXJuIChzZWxmLl9pZ25vcmVfZXBpcGUsIHNlbGYuX21heHNpemUsIHNlbGYuX3JlYWRlciwgc2VsZi5fd3JpdGVyLAogICAgICAgICAgICAgICAgIHNlbGYuX3Jsb2NrLCBzZWxmLl93bG9jaywgc2VsZi5fc2VtLCBzZWxmLl9vcGlkKQogCiAgICAgZGVmIF9fc2V0c3RhdGVfXyhzZWxmLCBzdGF0ZSk6Ci0gICAgICAgIChzZWxmLl9tYXhzaXplLCBzZWxmLl9yZWFkZXIsIHNlbGYuX3dyaXRlciwKKyAgICAgICAgKHNlbGYuX2lnbm9yZV9lcGlwZSwgc2VsZi5fbWF4c2l6ZSwgc2VsZi5fcmVhZGVyLCBzZWxmLl93cml0ZXIsCiAgICAgICAgICBzZWxmLl9ybG9jaywgc2VsZi5fd2xvY2ssIHNlbGYuX3NlbSwgc2VsZi5fb3BpZCkgPSBzdGF0ZQogICAgICAgICBzZWxmLl9hZnRlcl9mb3JrKCkKIApAQCAtMTgyLDcgKzE1OSw3IEBACiAgICAgICAgIHNlbGYuX3RocmVhZCA9IHRocmVhZGluZy5UaHJlYWQoCiAgICAgICAgICAgICB0YXJnZXQ9UXVldWUuX2ZlZWQsCiAgICAgICAgICAgICBhcmdzPShzZWxmLl9idWZmZXIsIHNlbGYuX25vdGVtcHR5LCBzZWxmLl9zZW5kLAotICAgICAgICAgICAgICAgICAgc2VsZi5fd2xvY2ssIHNlbGYuX3dyaXRlci5jbG9zZSksCisgICAgICAgICAgICAgICAgICBzZWxmLl93bG9jaywgc2VsZi5fd3JpdGVyLmNsb3NlLCBzZWxmLl9pZ25vcmVfZXBpcGUpLAogICAgICAgICAgICAgbmFtZT0nUXVldWVGZWVkZXJUaHJlYWQnCiAgICAgICAgICAgICApCiAgICAgICAgIHNlbGYuX3RocmVhZC5kYWVtb24gPSBUcnVlCkBAIC0yMzMsNyArMjEwLDcgQEAKICAgICAgICAgICAgIG5vdGVtcHR5LnJlbGVhc2UoKQogCiAgICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBfZmVlZChidWZmZXIsIG5vdGVtcHR5LCBzZW5kLCB3cml0ZWxvY2ssIGNsb3NlKToKKyAgICBkZWYgX2ZlZWQoYnVmZmVyLCBub3RlbXB0eSwgc2VuZCwgd3JpdGVsb2NrLCBjbG9zZSwgaWdub3JlX2VwaXBlKToKICAgICAgICAgZGVidWcoJ3N0YXJ0aW5nIHRocmVhZCB0byBmZWVkIGRhdGEgdG8gcGlwZScpCiAgICAgICAgIGZyb20gLnV0aWwgaW1wb3J0IGlzX2V4aXRpbmcKIApAQCAtMjc1LDYgKzI1Miw4IEBACiAgICAgICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgaWYgaWdub3JlX2VwaXBlIGFuZCBnZXRhdHRyKGUsICdlcnJubycsIDApID09IGVycm5vLkVQSVBFOgorICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgIyBTaW5jZSB0aGlzIHJ1bnMgaW4gYSBkYWVtb24gdGhyZWFkIHRoZSByZXNvdXJjZXMgaXQgdXNlcwogICAgICAgICAgICAgIyBtYXkgYmUgYmVjb21lIHVudXNhYmxlIHdoaWxlIHRoZSBwcm9jZXNzIGlzIGNsZWFuaW5nIHVwLgogICAgICAgICAgICAgIyBXZSBpZ25vcmUgZXJyb3JzIHdoaWNoIGhhcHBlbiBhZnRlciB0aGUgcHJvY2VzcyBoYXMKQEAgLTM1Niw2ICszMzUsNyBAQAogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgc2VsZi5fcmVhZGVyLCBzZWxmLl93cml0ZXIgPSBQaXBlKGR1cGxleD1GYWxzZSkKICAgICAgICAgc2VsZi5fcmxvY2sgPSBMb2NrKCkKKyAgICAgICAgc2VsZi5fcG9sbCA9IHNlbGYuX3JlYWRlci5wb2xsCiAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgogICAgICAgICAgICAgc2VsZi5fd2xvY2sgPSBOb25lCiAgICAgICAgIGVsc2U6CkBAIC0zNjMsNyArMzQzLDcgQEAKICAgICAgICAgc2VsZi5fbWFrZV9tZXRob2RzKCkKIAogICAgIGRlZiBlbXB0eShzZWxmKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9yZWFkZXIucG9sbCgpCisgICAgICAgIHJldHVybiBub3Qgc2VsZi5fcG9sbCgpCiAKICAgICBkZWYgX19nZXRzdGF0ZV9fKHNlbGYpOgogICAgICAgICBhc3NlcnRfc3Bhd25pbmcoc2VsZikKZGlmZiAtLWdpdCBhL0xpYi9tdWx0aXByb2Nlc3NpbmcvcmVkdWN0aW9uLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9yZWR1Y3Rpb24ucHkKaW5kZXggNmU1ZTViYy4uODRkMmZlOSAxMDA2NDQKLS0tIGEvTGliL211bHRpcHJvY2Vzc2luZy9yZWR1Y3Rpb24ucHkKKysrIGIvTGliL211bHRpcHJvY2Vzc2luZy9yZWR1Y3Rpb24ucHkKQEAgLTUsNTMgKzUsMjkgQEAKICMgbXVsdGlwcm9jZXNzaW5nL3JlZHVjdGlvbi5weQogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgYW55IGNvbnRyaWJ1dG9ycyBtYXkgYmUKLSMgICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLSMgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotIyBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotIyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0jIFNVQ0ggREFNQUdFLgorIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCiAjCiAKLV9fYWxsX18gPSBbXQorX19hbGxfXyA9IFsncmVkdWNlX3NvY2tldCcsICdyZWR1Y2VfY29ubmVjdGlvbicsICdzZW5kX2hhbmRsZScsICdyZWN2X2hhbmRsZSddCiAKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogaW1wb3J0IHNvY2tldAogaW1wb3J0IHRocmVhZGluZworaW1wb3J0IHN0cnVjdAoraW1wb3J0IHNpZ25hbAogCi1pbXBvcnQgX211bHRpcHJvY2Vzc2luZwogZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IGN1cnJlbnRfcHJvY2VzcwotZnJvbSBtdWx0aXByb2Nlc3NpbmcuZm9ya2luZyBpbXBvcnQgUG9wZW4sIGR1cGxpY2F0ZSwgY2xvc2UsIEZvcmtpbmdQaWNrbGVyCiBmcm9tIG11bHRpcHJvY2Vzc2luZy51dGlsIGltcG9ydCByZWdpc3Rlcl9hZnRlcl9mb3JrLCBkZWJ1Zywgc3ViX2RlYnVnCi1mcm9tIG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uIGltcG9ydCBDbGllbnQsIExpc3RlbmVyCitmcm9tIG11bHRpcHJvY2Vzc2luZy51dGlsIGltcG9ydCBpc19leGl0aW5nLCBzdWJfd2FybmluZwogCiAKICMKICMKICMKIAotaWYgbm90KHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInIG9yIGhhc2F0dHIoX211bHRpcHJvY2Vzc2luZywgJ3JlY3ZmZCcpKToKK2lmIG5vdChzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJyBvciAoaGFzYXR0cihzb2NrZXQsICdDTVNHX0xFTicpIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNhdHRyKHNvY2tldCwgJ1NDTV9SSUdIVFMnKSkpOgogICAgIHJhaXNlIEltcG9ydEVycm9yKCdwaWNrbGluZyBvZiBjb25uZWN0aW9ucyBub3Qgc3VwcG9ydGVkJykKIAogIwpAQCAtNTksMTU3ICszNSwyMzggQEAKICMKIAogaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6Ci0gICAgaW1wb3J0IF9zdWJwcm9jZXNzCi0gICAgZnJvbSBfbXVsdGlwcm9jZXNzaW5nIGltcG9ydCB3aW4zMgorICAgICMgV2luZG93cworICAgIF9fYWxsX18gKz0gWydyZWR1Y2VfcGlwZV9jb25uZWN0aW9uJ10KKyAgICBpbXBvcnQgX3dpbmFwaQogCiAgICAgZGVmIHNlbmRfaGFuZGxlKGNvbm4sIGhhbmRsZSwgZGVzdGluYXRpb25fcGlkKToKLSAgICAgICAgcHJvY2Vzc19oYW5kbGUgPSB3aW4zMi5PcGVuUHJvY2VzcygKLSAgICAgICAgICAgIHdpbjMyLlBST0NFU1NfQUxMX0FDQ0VTUywgRmFsc2UsIGRlc3RpbmF0aW9uX3BpZAotICAgICAgICAgICAgKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBuZXdfaGFuZGxlID0gZHVwbGljYXRlKGhhbmRsZSwgcHJvY2Vzc19oYW5kbGUpCi0gICAgICAgICAgICBjb25uLnNlbmQobmV3X2hhbmRsZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGNsb3NlKHByb2Nlc3NfaGFuZGxlKQorICAgICAgICBkaCA9IER1cEhhbmRsZShoYW5kbGUsIF93aW5hcGkuRFVQTElDQVRFX1NBTUVfQUNDRVNTLCBkZXN0aW5hdGlvbl9waWQpCisgICAgICAgIGNvbm4uc2VuZChkaCkKIAogICAgIGRlZiByZWN2X2hhbmRsZShjb25uKToKLSAgICAgICAgcmV0dXJuIGNvbm4ucmVjdigpCisgICAgICAgIHJldHVybiBjb25uLnJlY3YoKS5kZXRhY2goKQogCi1lbHNlOgotICAgIGRlZiBzZW5kX2hhbmRsZShjb25uLCBoYW5kbGUsIGRlc3RpbmF0aW9uX3BpZCk6Ci0gICAgICAgIF9tdWx0aXByb2Nlc3Npbmcuc2VuZGZkKGNvbm4uZmlsZW5vKCksIGhhbmRsZSkKKyAgICBjbGFzcyBEdXBIYW5kbGUob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhhbmRsZSwgYWNjZXNzLCBwaWQ9Tm9uZSk6CisgICAgICAgICAgICAjIGR1cGxpY2F0ZSBoYW5kbGUgZm9yIHByb2Nlc3Mgd2l0aCBnaXZlbiBwaWQKKyAgICAgICAgICAgIGlmIHBpZCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHBpZCA9IG9zLmdldHBpZCgpCisgICAgICAgICAgICBwcm9jID0gX3dpbmFwaS5PcGVuUHJvY2Vzcyhfd2luYXBpLlBST0NFU1NfRFVQX0hBTkRMRSwgRmFsc2UsIHBpZCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGUgPSBfd2luYXBpLkR1cGxpY2F0ZUhhbmRsZSgKKyAgICAgICAgICAgICAgICAgICAgX3dpbmFwaS5HZXRDdXJyZW50UHJvY2VzcygpLAorICAgICAgICAgICAgICAgICAgICBoYW5kbGUsIHByb2MsIGFjY2VzcywgRmFsc2UsIDApCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIF93aW5hcGkuQ2xvc2VIYW5kbGUocHJvYykKKyAgICAgICAgICAgIHNlbGYuX2FjY2VzcyA9IGFjY2VzcworICAgICAgICAgICAgc2VsZi5fcGlkID0gcGlkCiAKLSAgICBkZWYgcmVjdl9oYW5kbGUoY29ubik6Ci0gICAgICAgIHJldHVybiBfbXVsdGlwcm9jZXNzaW5nLnJlY3ZmZChjb25uLmZpbGVubygpKQorICAgICAgICBkZWYgZGV0YWNoKHNlbGYpOgorICAgICAgICAgICAgIyByZXRyaWV2ZSBoYW5kbGUgZnJvbSBwcm9jZXNzIHdoaWNoIGN1cnJlbnRseSBvd25zIGl0CisgICAgICAgICAgICBpZiBzZWxmLl9waWQgPT0gb3MuZ2V0cGlkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2hhbmRsZQorICAgICAgICAgICAgcHJvYyA9IF93aW5hcGkuT3BlblByb2Nlc3MoX3dpbmFwaS5QUk9DRVNTX0RVUF9IQU5ETEUsIEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGlkKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBfd2luYXBpLkR1cGxpY2F0ZUhhbmRsZSgKKyAgICAgICAgICAgICAgICAgICAgcHJvYywgc2VsZi5faGFuZGxlLCBfd2luYXBpLkdldEN1cnJlbnRQcm9jZXNzKCksCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2FjY2VzcywgRmFsc2UsIF93aW5hcGkuRFVQTElDQVRFX0NMT1NFX1NPVVJDRSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgX3dpbmFwaS5DbG9zZUhhbmRsZShwcm9jKQogCi0jCi0jIFN1cHBvcnQgZm9yIGEgcGVyLXByb2Nlc3Mgc2VydmVyIHRocmVhZCB3aGljaCBjYWNoZXMgcGlja2xlZCBoYW5kbGVzCi0jCisgICAgY2xhc3MgRHVwU29ja2V0KG9iamVjdCk6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb2NrKToKKyAgICAgICAgICAgIG5ld19zb2NrID0gc29jay5kdXAoKQorICAgICAgICAgICAgZGVmIHNlbmQoY29ubiwgcGlkKToKKyAgICAgICAgICAgICAgICBzaGFyZSA9IG5ld19zb2NrLnNoYXJlKHBpZCkKKyAgICAgICAgICAgICAgICBjb25uLnNlbmRfYnl0ZXMoc2hhcmUpCisgICAgICAgICAgICBzZWxmLl9pZCA9IHJlc291cmNlX3NoYXJlci5yZWdpc3RlcihzZW5kLCBuZXdfc29jay5jbG9zZSkKIAotX2NhY2hlID0gc2V0KCkKKyAgICAgICAgZGVmIGRldGFjaChzZWxmKToKKyAgICAgICAgICAgIGNvbm4gPSByZXNvdXJjZV9zaGFyZXIuZ2V0X2Nvbm5lY3Rpb24oc2VsZi5faWQpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2hhcmUgPSBjb25uLnJlY3ZfYnl0ZXMoKQorICAgICAgICAgICAgICAgIHJldHVybiBzb2NrZXQuZnJvbXNoYXJlKHNoYXJlKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBjb25uLmNsb3NlKCkKIAotZGVmIF9yZXNldChvYmopOgotICAgIGdsb2JhbCBfbG9jaywgX2xpc3RlbmVyLCBfY2FjaGUKLSAgICBmb3IgaCBpbiBfY2FjaGU6Ci0gICAgICAgIGNsb3NlKGgpCi0gICAgX2NhY2hlLmNsZWFyKCkKLSAgICBfbG9jayA9IHRocmVhZGluZy5Mb2NrKCkKLSAgICBfbGlzdGVuZXIgPSBOb25lCisgICAgZGVmIHJlZHVjZV9zb2NrZXQocyk6CisgICAgICAgIHJldHVybiByZWJ1aWxkX3NvY2tldCwgKER1cFNvY2tldChzKSwpCiAKLV9yZXNldChOb25lKQotcmVnaXN0ZXJfYWZ0ZXJfZm9yayhfcmVzZXQsIF9yZXNldCkKKyAgICBkZWYgcmVidWlsZF9zb2NrZXQoZHMpOgorICAgICAgICByZXR1cm4gZHMuZGV0YWNoKCkKIAotZGVmIF9nZXRfbGlzdGVuZXIoKToKLSAgICBnbG9iYWwgX2xpc3RlbmVyCisgICAgZGVmIHJlZHVjZV9jb25uZWN0aW9uKGNvbm4pOgorICAgICAgICBoYW5kbGUgPSBjb25uLmZpbGVubygpCisgICAgICAgIHdpdGggc29ja2V0LmZyb21mZChoYW5kbGUsIHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pIGFzIHM6CisgICAgICAgICAgICBkcyA9IER1cFNvY2tldChzKQorICAgICAgICAgICAgcmV0dXJuIHJlYnVpbGRfY29ubmVjdGlvbiwgKGRzLCBjb25uLnJlYWRhYmxlLCBjb25uLndyaXRhYmxlKQogCi0gICAgaWYgX2xpc3RlbmVyIGlzIE5vbmU6Ci0gICAgICAgIF9sb2NrLmFjcXVpcmUoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpZiBfbGlzdGVuZXIgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBkZWJ1Zygnc3RhcnRpbmcgbGlzdGVuZXIgYW5kIHRocmVhZCBmb3Igc2VuZGluZyBoYW5kbGVzJykKLSAgICAgICAgICAgICAgICBfbGlzdGVuZXIgPSBMaXN0ZW5lcihhdXRoa2V5PWN1cnJlbnRfcHJvY2VzcygpLmF1dGhrZXkpCi0gICAgICAgICAgICAgICAgdCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PV9zZXJ2ZSkKLSAgICAgICAgICAgICAgICB0LmRhZW1vbiA9IFRydWUKLSAgICAgICAgICAgICAgICB0LnN0YXJ0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIF9sb2NrLnJlbGVhc2UoKQotCi0gICAgcmV0dXJuIF9saXN0ZW5lcgotCi1kZWYgX3NlcnZlKCk6Ci0gICAgZnJvbSAudXRpbCBpbXBvcnQgaXNfZXhpdGluZywgc3ViX3dhcm5pbmcKLQotICAgIHdoaWxlIDE6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbm4gPSBfbGlzdGVuZXIuYWNjZXB0KCkKLSAgICAgICAgICAgIGhhbmRsZV93YW50ZWQsIGRlc3RpbmF0aW9uX3BpZCA9IGNvbm4ucmVjdigpCi0gICAgICAgICAgICBfY2FjaGUucmVtb3ZlKGhhbmRsZV93YW50ZWQpCi0gICAgICAgICAgICBzZW5kX2hhbmRsZShjb25uLCBoYW5kbGVfd2FudGVkLCBkZXN0aW5hdGlvbl9waWQpCi0gICAgICAgICAgICBjbG9zZShoYW5kbGVfd2FudGVkKQotICAgICAgICAgICAgY29ubi5jbG9zZSgpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIGlmIG5vdCBpc19leGl0aW5nKCk6Ci0gICAgICAgICAgICAgICAgaW1wb3J0IHRyYWNlYmFjawotICAgICAgICAgICAgICAgIHN1Yl93YXJuaW5nKAotICAgICAgICAgICAgICAgICAgICAndGhyZWFkIGZvciBzaGFyaW5nIGhhbmRsZXMgcmFpc2VkIGV4Y2VwdGlvbiA6XG4nICsKLSAgICAgICAgICAgICAgICAgICAgJy0nKjc5ICsgJ1xuJyArIHRyYWNlYmFjay5mb3JtYXRfZXhjKCkgKyAnLScqNzkKLSAgICAgICAgICAgICAgICAgICAgKQotCi0jCi0jIEZ1bmN0aW9ucyB0byBiZSB1c2VkIGZvciBwaWNrbGluZy91bnBpY2tsaW5nIG9iamVjdHMgd2l0aCBoYW5kbGVzCi0jCi0KLWRlZiByZWR1Y2VfaGFuZGxlKGhhbmRsZSk6Ci0gICAgaWYgUG9wZW4udGhyZWFkX2lzX3NwYXduaW5nKCk6Ci0gICAgICAgIHJldHVybiAoTm9uZSwgUG9wZW4uZHVwbGljYXRlX2Zvcl9jaGlsZChoYW5kbGUpLCBUcnVlKQotICAgIGR1cF9oYW5kbGUgPSBkdXBsaWNhdGUoaGFuZGxlKQotICAgIF9jYWNoZS5hZGQoZHVwX2hhbmRsZSkKLSAgICBzdWJfZGVidWcoJ3JlZHVjaW5nIGhhbmRsZSAlZCcsIGhhbmRsZSkKLSAgICByZXR1cm4gKF9nZXRfbGlzdGVuZXIoKS5hZGRyZXNzLCBkdXBfaGFuZGxlLCBGYWxzZSkKLQotZGVmIHJlYnVpbGRfaGFuZGxlKHBpY2tsZWRfZGF0YSk6Ci0gICAgYWRkcmVzcywgaGFuZGxlLCBpbmhlcml0ZWQgPSBwaWNrbGVkX2RhdGEKLSAgICBpZiBpbmhlcml0ZWQ6Ci0gICAgICAgIHJldHVybiBoYW5kbGUKLSAgICBzdWJfZGVidWcoJ3JlYnVpbGRpbmcgaGFuZGxlICVkJywgaGFuZGxlKQotICAgIGNvbm4gPSBDbGllbnQoYWRkcmVzcywgYXV0aGtleT1jdXJyZW50X3Byb2Nlc3MoKS5hdXRoa2V5KQotICAgIGNvbm4uc2VuZCgoaGFuZGxlLCBvcy5nZXRwaWQoKSkpCi0gICAgbmV3X2hhbmRsZSA9IHJlY3ZfaGFuZGxlKGNvbm4pCi0gICAgY29ubi5jbG9zZSgpCi0gICAgcmV0dXJuIG5ld19oYW5kbGUKLQotIwotIyBSZWdpc3RlciBgX211bHRpcHJvY2Vzc2luZy5Db25uZWN0aW9uYCB3aXRoIGBGb3JraW5nUGlja2xlcmAKLSMKLQotZGVmIHJlZHVjZV9jb25uZWN0aW9uKGNvbm4pOgotICAgIHJoID0gcmVkdWNlX2hhbmRsZShjb25uLmZpbGVubygpKQotICAgIHJldHVybiByZWJ1aWxkX2Nvbm5lY3Rpb24sIChyaCwgY29ubi5yZWFkYWJsZSwgY29ubi53cml0YWJsZSkKLQotZGVmIHJlYnVpbGRfY29ubmVjdGlvbihyZWR1Y2VkX2hhbmRsZSwgcmVhZGFibGUsIHdyaXRhYmxlKToKLSAgICBoYW5kbGUgPSByZWJ1aWxkX2hhbmRsZShyZWR1Y2VkX2hhbmRsZSkKLSAgICByZXR1cm4gX211bHRpcHJvY2Vzc2luZy5Db25uZWN0aW9uKAotICAgICAgICBoYW5kbGUsIHJlYWRhYmxlPXJlYWRhYmxlLCB3cml0YWJsZT13cml0YWJsZQotICAgICAgICApCi0KLUZvcmtpbmdQaWNrbGVyLnJlZ2lzdGVyKF9tdWx0aXByb2Nlc3NpbmcuQ29ubmVjdGlvbiwgcmVkdWNlX2Nvbm5lY3Rpb24pCi0KLSMKLSMgUmVnaXN0ZXIgYHNvY2tldC5zb2NrZXRgIHdpdGggYEZvcmtpbmdQaWNrbGVyYAotIwotCi1kZWYgZnJvbWZkKGZkLCBmYW1pbHksIHR5cGVfLCBwcm90bz0wKToKLSAgICBzID0gc29ja2V0LmZyb21mZChmZCwgZmFtaWx5LCB0eXBlXywgcHJvdG8pCi0gICAgaWYgcy5fX2NsYXNzX18gaXMgbm90IHNvY2tldC5zb2NrZXQ6Ci0gICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KF9zb2NrPXMpCi0gICAgcmV0dXJuIHMKLQotZGVmIHJlZHVjZV9zb2NrZXQocyk6Ci0gICAgcmVkdWNlZF9oYW5kbGUgPSByZWR1Y2VfaGFuZGxlKHMuZmlsZW5vKCkpCi0gICAgcmV0dXJuIHJlYnVpbGRfc29ja2V0LCAocmVkdWNlZF9oYW5kbGUsIHMuZmFtaWx5LCBzLnR5cGUsIHMucHJvdG8pCi0KLWRlZiByZWJ1aWxkX3NvY2tldChyZWR1Y2VkX2hhbmRsZSwgZmFtaWx5LCB0eXBlXywgcHJvdG8pOgotICAgIGZkID0gcmVidWlsZF9oYW5kbGUocmVkdWNlZF9oYW5kbGUpCi0gICAgX3NvY2sgPSBmcm9tZmQoZmQsIGZhbWlseSwgdHlwZV8sIHByb3RvKQotICAgIGNsb3NlKGZkKQotICAgIHJldHVybiBfc29jawotCi1Gb3JraW5nUGlja2xlci5yZWdpc3Rlcihzb2NrZXQuc29ja2V0LCByZWR1Y2Vfc29ja2V0KQotCi0jCi0jIFJlZ2lzdGVyIGBfbXVsdGlwcm9jZXNzaW5nLlBpcGVDb25uZWN0aW9uYCB3aXRoIGBGb3JraW5nUGlja2xlcmAKLSMKLQotaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CisgICAgZGVmIHJlYnVpbGRfY29ubmVjdGlvbihkcywgcmVhZGFibGUsIHdyaXRhYmxlKToKKyAgICAgICAgZnJvbSAuY29ubmVjdGlvbiBpbXBvcnQgQ29ubmVjdGlvbgorICAgICAgICBzb2NrID0gZHMuZGV0YWNoKCkKKyAgICAgICAgcmV0dXJuIENvbm5lY3Rpb24oc29jay5kZXRhY2goKSwgcmVhZGFibGUsIHdyaXRhYmxlKQogCiAgICAgZGVmIHJlZHVjZV9waXBlX2Nvbm5lY3Rpb24oY29ubik6Ci0gICAgICAgIHJoID0gcmVkdWNlX2hhbmRsZShjb25uLmZpbGVubygpKQotICAgICAgICByZXR1cm4gcmVidWlsZF9waXBlX2Nvbm5lY3Rpb24sIChyaCwgY29ubi5yZWFkYWJsZSwgY29ubi53cml0YWJsZSkKKyAgICAgICAgYWNjZXNzID0gKChfd2luYXBpLkZJTEVfR0VORVJJQ19SRUFEIGlmIGNvbm4ucmVhZGFibGUgZWxzZSAwKSB8CisgICAgICAgICAgICAgICAgICAoX3dpbmFwaS5GSUxFX0dFTkVSSUNfV1JJVEUgaWYgY29ubi53cml0YWJsZSBlbHNlIDApKQorICAgICAgICBkaCA9IER1cEhhbmRsZShjb25uLmZpbGVubygpLCBhY2Nlc3MpCisgICAgICAgIHJldHVybiByZWJ1aWxkX3BpcGVfY29ubmVjdGlvbiwgKGRoLCBjb25uLnJlYWRhYmxlLCBjb25uLndyaXRhYmxlKQogCi0gICAgZGVmIHJlYnVpbGRfcGlwZV9jb25uZWN0aW9uKHJlZHVjZWRfaGFuZGxlLCByZWFkYWJsZSwgd3JpdGFibGUpOgotICAgICAgICBoYW5kbGUgPSByZWJ1aWxkX2hhbmRsZShyZWR1Y2VkX2hhbmRsZSkKLSAgICAgICAgcmV0dXJuIF9tdWx0aXByb2Nlc3NpbmcuUGlwZUNvbm5lY3Rpb24oCi0gICAgICAgICAgICBoYW5kbGUsIHJlYWRhYmxlPXJlYWRhYmxlLCB3cml0YWJsZT13cml0YWJsZQotICAgICAgICAgICAgKQorICAgIGRlZiByZWJ1aWxkX3BpcGVfY29ubmVjdGlvbihkaCwgcmVhZGFibGUsIHdyaXRhYmxlKToKKyAgICAgICAgZnJvbSAuY29ubmVjdGlvbiBpbXBvcnQgUGlwZUNvbm5lY3Rpb24KKyAgICAgICAgaGFuZGxlID0gZGguZGV0YWNoKCkKKyAgICAgICAgcmV0dXJuIFBpcGVDb25uZWN0aW9uKGhhbmRsZSwgcmVhZGFibGUsIHdyaXRhYmxlKQogCi0gICAgRm9ya2luZ1BpY2tsZXIucmVnaXN0ZXIoX211bHRpcHJvY2Vzc2luZy5QaXBlQ29ubmVjdGlvbiwgcmVkdWNlX3BpcGVfY29ubmVjdGlvbikKK2Vsc2U6CisgICAgIyBVbml4CisgICAgZGVmIHNlbmRfaGFuZGxlKGNvbm4sIGhhbmRsZSwgZGVzdGluYXRpb25fcGlkKToKKyAgICAgICAgd2l0aCBzb2NrZXQuZnJvbWZkKGNvbm4uZmlsZW5vKCksIHNvY2tldC5BRl9VTklYLCBzb2NrZXQuU09DS19TVFJFQU0pIGFzIHM6CisgICAgICAgICAgICBzLnNlbmRtc2coW2IneCddLCBbKHNvY2tldC5TT0xfU09DS0VULCBzb2NrZXQuU0NNX1JJR0hUUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0LnBhY2soIkBpIiwgaGFuZGxlKSldKQorCisgICAgZGVmIHJlY3ZfaGFuZGxlKGNvbm4pOgorICAgICAgICBzaXplID0gc3RydWN0LmNhbGNzaXplKCJAaSIpCisgICAgICAgIHdpdGggc29ja2V0LmZyb21mZChjb25uLmZpbGVubygpLCBzb2NrZXQuQUZfVU5JWCwgc29ja2V0LlNPQ0tfU1RSRUFNKSBhcyBzOgorICAgICAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHMucmVjdm1zZygxLCBzb2NrZXQuQ01TR19MRU4oc2l6ZSkpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgY21zZ19sZXZlbCwgY21zZ190eXBlLCBjbXNnX2RhdGEgPSBhbmNkYXRhWzBdCisgICAgICAgICAgICAgICAgaWYgKGNtc2dfbGV2ZWwgPT0gc29ja2V0LlNPTF9TT0NLRVQgYW5kCisgICAgICAgICAgICAgICAgICAgIGNtc2dfdHlwZSA9PSBzb2NrZXQuU0NNX1JJR0hUUyk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHJ1Y3QudW5wYWNrKCJAaSIsIGNtc2dfZGF0YVs6c2l6ZV0pWzBdCisgICAgICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIEluZGV4RXJyb3IsIHN0cnVjdC5lcnJvcik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdJbnZhbGlkIGRhdGEgcmVjZWl2ZWQnKQorCisgICAgY2xhc3MgRHVwRmQob2JqZWN0KToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZkKToKKyAgICAgICAgICAgIG5ld19mZCA9IG9zLmR1cChmZCkKKyAgICAgICAgICAgIGRlZiBzZW5kKGNvbm4sIHBpZCk6CisgICAgICAgICAgICAgICAgc2VuZF9oYW5kbGUoY29ubiwgbmV3X2ZkLCBwaWQpCisgICAgICAgICAgICBkZWYgY2xvc2UoKToKKyAgICAgICAgICAgICAgICBvcy5jbG9zZShuZXdfZmQpCisgICAgICAgICAgICBzZWxmLl9pZCA9IHJlc291cmNlX3NoYXJlci5yZWdpc3RlcihzZW5kLCBjbG9zZSkKKworICAgICAgICBkZWYgZGV0YWNoKHNlbGYpOgorICAgICAgICAgICAgY29ubiA9IHJlc291cmNlX3NoYXJlci5nZXRfY29ubmVjdGlvbihzZWxmLl9pZCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVjdl9oYW5kbGUoY29ubikKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgY29ubi5jbG9zZSgpCisKKyAgICBkZWYgcmVkdWNlX3NvY2tldChzKToKKyAgICAgICAgZGYgPSBEdXBGZChzLmZpbGVubygpKQorICAgICAgICByZXR1cm4gcmVidWlsZF9zb2NrZXQsIChkZiwgcy5mYW1pbHksIHMudHlwZSwgcy5wcm90bykKKworICAgIGRlZiByZWJ1aWxkX3NvY2tldChkZiwgZmFtaWx5LCB0eXBlLCBwcm90byk6CisgICAgICAgIGZkID0gZGYuZGV0YWNoKCkKKyAgICAgICAgcyA9IHNvY2tldC5mcm9tZmQoZmQsIGZhbWlseSwgdHlwZSwgcHJvdG8pCisgICAgICAgIG9zLmNsb3NlKGZkKQorICAgICAgICByZXR1cm4gcworCisgICAgZGVmIHJlZHVjZV9jb25uZWN0aW9uKGNvbm4pOgorICAgICAgICBkZiA9IER1cEZkKGNvbm4uZmlsZW5vKCkpCisgICAgICAgIHJldHVybiByZWJ1aWxkX2Nvbm5lY3Rpb24sIChkZiwgY29ubi5yZWFkYWJsZSwgY29ubi53cml0YWJsZSkKKworICAgIGRlZiByZWJ1aWxkX2Nvbm5lY3Rpb24oZGYsIHJlYWRhYmxlLCB3cml0YWJsZSk6CisgICAgICAgIGZyb20gLmNvbm5lY3Rpb24gaW1wb3J0IENvbm5lY3Rpb24KKyAgICAgICAgZmQgPSBkZi5kZXRhY2goKQorICAgICAgICByZXR1cm4gQ29ubmVjdGlvbihmZCwgcmVhZGFibGUsIHdyaXRhYmxlKQorCisjCisjIFNlcnZlciB3aGljaCBzaGFyZXMgcmVnaXN0ZXJlZCByZXNvdXJjZXMgd2l0aCBjbGllbnRzCisjCisKK2NsYXNzIFJlc291cmNlU2hhcmVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLl9rZXkgPSAwCisgICAgICAgIHNlbGYuX2NhY2hlID0ge30KKyAgICAgICAgc2VsZi5fb2xkX2xvY2tzID0gW10KKyAgICAgICAgc2VsZi5fbG9jayA9IHRocmVhZGluZy5Mb2NrKCkKKyAgICAgICAgc2VsZi5fbGlzdGVuZXIgPSBOb25lCisgICAgICAgIHNlbGYuX2FkZHJlc3MgPSBOb25lCisgICAgICAgIHNlbGYuX3RocmVhZCA9IE5vbmUKKyAgICAgICAgcmVnaXN0ZXJfYWZ0ZXJfZm9yayhzZWxmLCBSZXNvdXJjZVNoYXJlci5fYWZ0ZXJmb3JrKQorCisgICAgZGVmIHJlZ2lzdGVyKHNlbGYsIHNlbmQsIGNsb3NlKToKKyAgICAgICAgd2l0aCBzZWxmLl9sb2NrOgorICAgICAgICAgICAgaWYgc2VsZi5fYWRkcmVzcyBpcyBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuX3N0YXJ0KCkKKyAgICAgICAgICAgIHNlbGYuX2tleSArPSAxCisgICAgICAgICAgICBzZWxmLl9jYWNoZVtzZWxmLl9rZXldID0gKHNlbmQsIGNsb3NlKQorICAgICAgICAgICAgcmV0dXJuIChzZWxmLl9hZGRyZXNzLCBzZWxmLl9rZXkpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGdldF9jb25uZWN0aW9uKGlkZW50KToKKyAgICAgICAgZnJvbSAuY29ubmVjdGlvbiBpbXBvcnQgQ2xpZW50CisgICAgICAgIGFkZHJlc3MsIGtleSA9IGlkZW50CisgICAgICAgIGMgPSBDbGllbnQoYWRkcmVzcywgYXV0aGtleT1jdXJyZW50X3Byb2Nlc3MoKS5hdXRoa2V5KQorICAgICAgICBjLnNlbmQoKGtleSwgb3MuZ2V0cGlkKCkpKQorICAgICAgICByZXR1cm4gYworCisgICAgZGVmIHN0b3Aoc2VsZiwgdGltZW91dD1Ob25lKToKKyAgICAgICAgZnJvbSAuY29ubmVjdGlvbiBpbXBvcnQgQ2xpZW50CisgICAgICAgIHdpdGggc2VsZi5fbG9jazoKKyAgICAgICAgICAgIGlmIHNlbGYuX2FkZHJlc3MgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgYyA9IENsaWVudChzZWxmLl9hZGRyZXNzLCBhdXRoa2V5PWN1cnJlbnRfcHJvY2VzcygpLmF1dGhrZXkpCisgICAgICAgICAgICAgICAgYy5zZW5kKE5vbmUpCisgICAgICAgICAgICAgICAgYy5jbG9zZSgpCisgICAgICAgICAgICAgICAgc2VsZi5fdGhyZWFkLmpvaW4odGltZW91dCkKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl90aHJlYWQuaXNfYWxpdmUoKToKKyAgICAgICAgICAgICAgICAgICAgc3ViX3dhcm4oJ1Jlc291cmNlU2hhcmVyIHRocmVhZCBkaWQgbm90IHN0b3Agd2hlbiBhc2tlZCcpCisgICAgICAgICAgICAgICAgc2VsZi5fbGlzdGVuZXIuY2xvc2UoKQorICAgICAgICAgICAgICAgIHNlbGYuX3RocmVhZCA9IE5vbmUKKyAgICAgICAgICAgICAgICBzZWxmLl9hZGRyZXNzID0gTm9uZQorICAgICAgICAgICAgICAgIHNlbGYuX2xpc3RlbmVyID0gTm9uZQorICAgICAgICAgICAgICAgIGZvciBrZXksIChzZW5kLCBjbG9zZSkgaW4gc2VsZi5fY2FjaGUuaXRlbXMoKToKKyAgICAgICAgICAgICAgICAgICAgY2xvc2UoKQorICAgICAgICAgICAgICAgIHNlbGYuX2NhY2hlLmNsZWFyKCkKKworICAgIGRlZiBfYWZ0ZXJmb3JrKHNlbGYpOgorICAgICAgICBmb3Iga2V5LCAoc2VuZCwgY2xvc2UpIGluIHNlbGYuX2NhY2hlLml0ZW1zKCk6CisgICAgICAgICAgICBjbG9zZSgpCisgICAgICAgIHNlbGYuX2NhY2hlLmNsZWFyKCkKKyAgICAgICAgIyBJZiBzZWxmLl9sb2NrIHdhcyBsb2NrZWQgYXQgdGhlIHRpbWUgb2YgdGhlIGZvcmssIGl0IG1heSBiZSBicm9rZW4KKyAgICAgICAgIyAtLSBzZWUgaXNzdWUgNjcyMS4gIFJlcGxhY2UgaXQgd2l0aG91dCBsZXR0aW5nIGl0IGJlIGdjJ2VkLgorICAgICAgICBzZWxmLl9vbGRfbG9ja3MuYXBwZW5kKHNlbGYuX2xvY2spCisgICAgICAgIHNlbGYuX2xvY2sgPSB0aHJlYWRpbmcuTG9jaygpCisgICAgICAgIGlmIHNlbGYuX2xpc3RlbmVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5fbGlzdGVuZXIuY2xvc2UoKQorICAgICAgICBzZWxmLl9saXN0ZW5lciA9IE5vbmUKKyAgICAgICAgc2VsZi5fYWRkcmVzcyA9IE5vbmUKKyAgICAgICAgc2VsZi5fdGhyZWFkID0gTm9uZQorCisgICAgZGVmIF9zdGFydChzZWxmKToKKyAgICAgICAgZnJvbSAuY29ubmVjdGlvbiBpbXBvcnQgTGlzdGVuZXIKKyAgICAgICAgYXNzZXJ0IHNlbGYuX2xpc3RlbmVyIGlzIE5vbmUKKyAgICAgICAgZGVidWcoJ3N0YXJ0aW5nIGxpc3RlbmVyIGFuZCB0aHJlYWQgZm9yIHNlbmRpbmcgaGFuZGxlcycpCisgICAgICAgIHNlbGYuX2xpc3RlbmVyID0gTGlzdGVuZXIoYXV0aGtleT1jdXJyZW50X3Byb2Nlc3MoKS5hdXRoa2V5KQorICAgICAgICBzZWxmLl9hZGRyZXNzID0gc2VsZi5fbGlzdGVuZXIuYWRkcmVzcworICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5fc2VydmUpCisgICAgICAgIHQuZGFlbW9uID0gVHJ1ZQorICAgICAgICB0LnN0YXJ0KCkKKyAgICAgICAgc2VsZi5fdGhyZWFkID0gdAorCisgICAgZGVmIF9zZXJ2ZShzZWxmKToKKyAgICAgICAgaWYgaGFzYXR0cihzaWduYWwsICdwdGhyZWFkX3NpZ21hc2snKToKKyAgICAgICAgICAgIHNpZ25hbC5wdGhyZWFkX3NpZ21hc2soc2lnbmFsLlNJR19CTE9DSywgcmFuZ2UoMSwgc2lnbmFsLk5TSUcpKQorICAgICAgICB3aGlsZSAxOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNvbm4gPSBzZWxmLl9saXN0ZW5lci5hY2NlcHQoKQorICAgICAgICAgICAgICAgIG1zZyA9IGNvbm4ucmVjdigpCisgICAgICAgICAgICAgICAgaWYgbXNnIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAga2V5LCBkZXN0aW5hdGlvbl9waWQgPSBtc2cKKyAgICAgICAgICAgICAgICBzZW5kLCBjbG9zZSA9IHNlbGYuX2NhY2hlLnBvcChrZXkpCisgICAgICAgICAgICAgICAgc2VuZChjb25uLCBkZXN0aW5hdGlvbl9waWQpCisgICAgICAgICAgICAgICAgY2xvc2UoKQorICAgICAgICAgICAgICAgIGNvbm4uY2xvc2UoKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIGlmIG5vdCBpc19leGl0aW5nKCk6CisgICAgICAgICAgICAgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKKyAgICAgICAgICAgICAgICAgICAgc3ViX3dhcm5pbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAndGhyZWFkIGZvciBzaGFyaW5nIGhhbmRsZXMgcmFpc2VkIGV4Y2VwdGlvbiA6XG4nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICctJyo3OSArICdcbicgKyB0cmFjZWJhY2suZm9ybWF0X2V4YygpICsgJy0nKjc5CisgICAgICAgICAgICAgICAgICAgICAgICApCisKK3Jlc291cmNlX3NoYXJlciA9IFJlc291cmNlU2hhcmVyKCkKZGlmZiAtLWdpdCBhL0xpYi9tdWx0aXByb2Nlc3Npbmcvc2hhcmVkY3R5cGVzLnB5IGIvTGliL211bHRpcHJvY2Vzc2luZy9zaGFyZWRjdHlwZXMucHkKaW5kZXggMWU2OTRkYS4uYTM1OGVkNCAxMDA2NDQKLS0tIGEvTGliL211bHRpcHJvY2Vzc2luZy9zaGFyZWRjdHlwZXMucHkKKysrIGIvTGliL211bHRpcHJvY2Vzc2luZy9zaGFyZWRjdHlwZXMucHkKQEAgLTQsMzUgKzQsOSBAQAogIyBtdWx0aXByb2Nlc3Npbmcvc2hhcmVkY3R5cGVzLnB5CiAjCiAjIENvcHlyaWdodCAoYykgMjAwNi0yMDA4LCBSIE91ZGtlcmsKLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIwotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMgMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBhdXRob3Igbm9yIHRoZSBuYW1lcyBvZiBhbnkgY29udHJpYnV0b3JzIG1heSBiZQotIyAgICB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotIyAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0jIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0jIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0jIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotIyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotIyBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0jIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSMgU1VDSCBEQU1BR0UuCisjIExpY2Vuc2VkIHRvIFBTRiB1bmRlciBhIENvbnRyaWJ1dG9yIEFncmVlbWVudC4KICMKIAotaW1wb3J0IHN5cwogaW1wb3J0IGN0eXBlcwogaW1wb3J0IHdlYWtyZWYKIApAQCAtODksNyArNjMsNyBAQAogICAgICAgICByZXN1bHQuX19pbml0X18oKnNpemVfb3JfaW5pdGlhbGl6ZXIpCiAgICAgICAgIHJldHVybiByZXN1bHQKIAotZGVmIFZhbHVlKHR5cGVjb2RlX29yX3R5cGUsICphcmdzLCBsb2NrPU5vbmUpOgorZGVmIFZhbHVlKHR5cGVjb2RlX29yX3R5cGUsICphcmdzLCBsb2NrPVRydWUpOgogICAgICcnJwogICAgIFJldHVybiBhIHN5bmNocm9uaXphdGlvbiB3cmFwcGVyIGZvciBhIFZhbHVlCiAgICAgJycnCkBAIC0xMDIsMTMgKzc2LDEwIEBACiAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCInJXInIGhhcyBubyBtZXRob2QgJ2FjcXVpcmUnIiAlIGxvY2spCiAgICAgcmV0dXJuIHN5bmNocm9uaXplZChvYmosIGxvY2spCiAKLWRlZiBBcnJheSh0eXBlY29kZV9vcl90eXBlLCBzaXplX29yX2luaXRpYWxpemVyLCAqKmt3ZHMpOgorZGVmIEFycmF5KHR5cGVjb2RlX29yX3R5cGUsIHNpemVfb3JfaW5pdGlhbGl6ZXIsICosIGxvY2s9VHJ1ZSk6CiAgICAgJycnCiAgICAgUmV0dXJuIGEgc3luY2hyb25pemF0aW9uIHdyYXBwZXIgZm9yIGEgUmF3QXJyYXkKICAgICAnJycKLSAgICBsb2NrID0ga3dkcy5wb3AoJ2xvY2snLCBOb25lKQotICAgIGlmIGt3ZHM6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3VucmVjb2duaXplZCBrZXl3b3JkIGFyZ3VtZW50KHMpOiAlcycgJSBsaXN0KGt3ZHMua2V5cygpKSkKICAgICBvYmogPSBSYXdBcnJheSh0eXBlY29kZV9vcl90eXBlLCBzaXplX29yX2luaXRpYWxpemVyKQogICAgIGlmIGxvY2sgaXMgRmFsc2U6CiAgICAgICAgIHJldHVybiBvYmoKQEAgLTE1OCw3ICsxMjksOCBAQAogICAgIGlmIGxlbmd0aCBpcyBub3QgTm9uZToKICAgICAgICAgdHlwZV8gPSB0eXBlXyAqIGxlbmd0aAogICAgIEZvcmtpbmdQaWNrbGVyLnJlZ2lzdGVyKHR5cGVfLCByZWR1Y2VfY3R5cGUpCi0gICAgb2JqID0gdHlwZV8uZnJvbV9hZGRyZXNzKHdyYXBwZXIuZ2V0X2FkZHJlc3MoKSkKKyAgICBidWYgPSB3cmFwcGVyLmNyZWF0ZV9tZW1vcnl2aWV3KCkKKyAgICBvYmogPSB0eXBlXy5mcm9tX2J1ZmZlcihidWYpCiAgICAgb2JqLl93cmFwcGVyID0gd3JhcHBlcgogICAgIHJldHVybiBvYmoKIApkaWZmIC0tZ2l0IGEvTGliL211bHRpcHJvY2Vzc2luZy9zeW5jaHJvbml6ZS5weSBiL0xpYi9tdWx0aXByb2Nlc3Npbmcvc3luY2hyb25pemUucHkKaW5kZXggNzBhZTgyNS4uMjJlYWJlNSAxMDA2NDQKLS0tIGEvTGliL211bHRpcHJvY2Vzc2luZy9zeW5jaHJvbml6ZS5weQorKysgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL3N5bmNocm9uaXplLnB5CkBAIC00LDMyICs0LDcgQEAKICMgbXVsdGlwcm9jZXNzaW5nL3N5bmNocm9uaXplLnB5CiAjCiAjIENvcHlyaWdodCAoYykgMjAwNi0yMDA4LCBSIE91ZGtlcmsKLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIwotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMgMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBhdXRob3Igbm9yIHRoZSBuYW1lcyBvZiBhbnkgY29udHJpYnV0b3JzIG1heSBiZQotIyAgICB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQotIyAgICB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0jIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi0jIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCi0jIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCi0jIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQotIyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAotIyBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCi0jIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSMgU1VDSCBEQU1BR0UuCisjIExpY2Vuc2VkIHRvIFBTRiB1bmRlciBhIENvbnRyaWJ1dG9yIEFncmVlbWVudC4KICMKIAogX19hbGxfXyA9IFsKQEAgLTM3LDE1ICsxMiwxMyBAQAogICAgIF0KIAogaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAKLWZyb20gdGltZSBpbXBvcnQgdGltZSBhcyBfdGltZSwgc2xlZXAgYXMgX3NsZWVwCi0KIGltcG9ydCBfbXVsdGlwcm9jZXNzaW5nCiBmcm9tIG11bHRpcHJvY2Vzc2luZy5wcm9jZXNzIGltcG9ydCBjdXJyZW50X3Byb2Nlc3MKLWZyb20gbXVsdGlwcm9jZXNzaW5nLnV0aWwgaW1wb3J0IEZpbmFsaXplLCByZWdpc3Rlcl9hZnRlcl9mb3JrLCBkZWJ1ZworZnJvbSBtdWx0aXByb2Nlc3NpbmcudXRpbCBpbXBvcnQgcmVnaXN0ZXJfYWZ0ZXJfZm9yaywgZGVidWcKIGZyb20gbXVsdGlwcm9jZXNzaW5nLmZvcmtpbmcgaW1wb3J0IGFzc2VydF9zcGF3bmluZywgUG9wZW4KK2Zyb20gdGltZSBpbXBvcnQgdGltZSBhcyBfdGltZQogCiAjIFRyeSB0byBpbXBvcnQgdGhlIG1wLnN5bmNocm9uaXplIG1vZHVsZSBjbGVhbmx5LCBpZiBpdCBmYWlscwogIyByYWlzZSBJbXBvcnRFcnJvciBmb3IgcGxhdGZvcm1zIGxhY2tpbmcgYSB3b3JraW5nIHNlbV9vcGVuIGltcGxlbWVudGF0aW9uLgpAQCAtMjQzLDcgKzIxNiw3IEBACiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgIyB3YWl0IGZvciBub3RpZmljYXRpb24gb3IgdGltZW91dAotICAgICAgICAgICAgcmV0ID0gc2VsZi5fd2FpdF9zZW1hcGhvcmUuYWNxdWlyZShUcnVlLCB0aW1lb3V0KQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3dhaXRfc2VtYXBob3JlLmFjcXVpcmUoVHJ1ZSwgdGltZW91dCkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICMgaW5kaWNhdGUgdGhhdCB0aGlzIHRocmVhZCBoYXMgd29rZW4KICAgICAgICAgICAgIHNlbGYuX3dva2VuX2NvdW50LnJlbGVhc2UoKQpAQCAtMjUxLDcgKzIyNCw2IEBACiAgICAgICAgICAgICAjIHJlYWNxdWlyZSBsb2NrCiAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShjb3VudCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fbG9jay5hY3F1aXJlKCkKLSAgICAgICAgICAgIHJldHVybiByZXQKIAogICAgIGRlZiBub3RpZnkoc2VsZik6CiAgICAgICAgIGFzc2VydCBzZWxmLl9sb2NrLl9zZW1sb2NrLl9pc19taW5lKCksICdsb2NrIGlzIG5vdCBvd25lZCcKQEAgLTI5Myw2ICsyNjUsMjQgQEAKICAgICAgICAgICAgIHdoaWxlIHNlbGYuX3dhaXRfc2VtYXBob3JlLmFjcXVpcmUoRmFsc2UpOgogICAgICAgICAgICAgICAgIHBhc3MKIAorICAgIGRlZiB3YWl0X2ZvcihzZWxmLCBwcmVkaWNhdGUsIHRpbWVvdXQ9Tm9uZSk6CisgICAgICAgIHJlc3VsdCA9IHByZWRpY2F0ZSgpCisgICAgICAgIGlmIHJlc3VsdDoKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAgICAgaWYgdGltZW91dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGVuZHRpbWUgPSBfdGltZSgpICsgdGltZW91dAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZW5kdGltZSA9IE5vbmUKKyAgICAgICAgICAgIHdhaXR0aW1lID0gTm9uZQorICAgICAgICB3aGlsZSBub3QgcmVzdWx0OgorICAgICAgICAgICAgaWYgZW5kdGltZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICB3YWl0dGltZSA9IGVuZHRpbWUgLSBfdGltZSgpCisgICAgICAgICAgICAgICAgaWYgd2FpdHRpbWUgPD0gMDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHNlbGYud2FpdCh3YWl0dGltZSkKKyAgICAgICAgICAgIHJlc3VsdCA9IHByZWRpY2F0ZSgpCisgICAgICAgIHJldHVybiByZXN1bHQKKwogIwogIyBFdmVudAogIwpAQCAtMzQzLDMgKzMzMyw0MyBAQAogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLl9jb25kLnJlbGVhc2UoKQorCisjCisjIEJhcnJpZXIKKyMKKworY2xhc3MgQmFycmllcih0aHJlYWRpbmcuQmFycmllcik6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGFydGllcywgYWN0aW9uPU5vbmUsIHRpbWVvdXQ9Tm9uZSk6CisgICAgICAgIGltcG9ydCBzdHJ1Y3QKKyAgICAgICAgZnJvbSBtdWx0aXByb2Nlc3NpbmcuaGVhcCBpbXBvcnQgQnVmZmVyV3JhcHBlcgorICAgICAgICB3cmFwcGVyID0gQnVmZmVyV3JhcHBlcihzdHJ1Y3QuY2FsY3NpemUoJ2knKSAqIDIpCisgICAgICAgIGNvbmQgPSBDb25kaXRpb24oKQorICAgICAgICBzZWxmLl9fc2V0c3RhdGVfXygocGFydGllcywgYWN0aW9uLCB0aW1lb3V0LCBjb25kLCB3cmFwcGVyKSkKKyAgICAgICAgc2VsZi5fc3RhdGUgPSAwCisgICAgICAgIHNlbGYuX2NvdW50ID0gMAorCisgICAgZGVmIF9fc2V0c3RhdGVfXyhzZWxmLCBzdGF0ZSk6CisgICAgICAgIChzZWxmLl9wYXJ0aWVzLCBzZWxmLl9hY3Rpb24sIHNlbGYuX3RpbWVvdXQsCisgICAgICAgICBzZWxmLl9jb25kLCBzZWxmLl93cmFwcGVyKSA9IHN0YXRlCisgICAgICAgIHNlbGYuX2FycmF5ID0gc2VsZi5fd3JhcHBlci5jcmVhdGVfbWVtb3J5dmlldygpLmNhc3QoJ2knKQorCisgICAgZGVmIF9fZ2V0c3RhdGVfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIChzZWxmLl9wYXJ0aWVzLCBzZWxmLl9hY3Rpb24sIHNlbGYuX3RpbWVvdXQsCisgICAgICAgICAgICAgICAgc2VsZi5fY29uZCwgc2VsZi5fd3JhcHBlcikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBfc3RhdGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hcnJheVswXQorCisgICAgQF9zdGF0ZS5zZXR0ZXIKKyAgICBkZWYgX3N0YXRlKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5fYXJyYXlbMF0gPSB2YWx1ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIF9jb3VudChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FycmF5WzFdCisKKyAgICBAX2NvdW50LnNldHRlcgorICAgIGRlZiBfY291bnQoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl9hcnJheVsxXSA9IHZhbHVlCmRpZmYgLS1naXQgYS9MaWIvbXVsdGlwcm9jZXNzaW5nL3V0aWwucHkgYi9MaWIvbXVsdGlwcm9jZXNzaW5nL3V0aWwucHkKaW5kZXggMzBiN2E4NS4uOGE2YWVkZSAxMDA2NDQKLS0tIGEvTGliL211bHRpcHJvY2Vzc2luZy91dGlsLnB5CisrKyBiL0xpYi9tdWx0aXByb2Nlc3NpbmcvdXRpbC5weQpAQCAtNCwzOSArNCwxOCBAQAogIyBtdWx0aXByb2Nlc3NpbmcvdXRpbC5weQogIwogIyBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMKLSMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0jIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgYXV0aG9yIG5vciB0aGUgbmFtZXMgb2YgYW55IGNvbnRyaWJ1dG9ycyBtYXkgYmUKLSMgICAgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMgc29mdHdhcmUKLSMgICAgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECi0jIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotIyBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQotIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAotIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUwotIyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKLSMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKLSMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0jIFNVQ0ggREFNQUdFLgorIyBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBDb250cmlidXRvciBBZ3JlZW1lbnQuCiAjCiAKK2ltcG9ydCBzeXMKK2ltcG9ydCBmdW5jdG9vbHMKK2ltcG9ydCBvcwogaW1wb3J0IGl0ZXJ0b29scwogaW1wb3J0IHdlYWtyZWYKIGltcG9ydCBhdGV4aXQKIGltcG9ydCB0aHJlYWRpbmcgICAgICAgICMgd2Ugd2FudCB0aHJlYWRpbmcgdG8gaW5zdGFsbCBpdCdzCiAgICAgICAgICAgICAgICAgICAgICAgICAjIGNsZWFudXAgZnVuY3Rpb24gYmVmb3JlIG11bHRpcHJvY2Vzc2luZyBkb2VzCitmcm9tIHN1YnByb2Nlc3MgaW1wb3J0IF9hcmdzX2Zyb21faW50ZXJwcmV0ZXJfZmxhZ3MKIAogZnJvbSBtdWx0aXByb2Nlc3NpbmcucHJvY2VzcyBpbXBvcnQgY3VycmVudF9wcm9jZXNzLCBhY3RpdmVfY2hpbGRyZW4KIApAQCAtODQsNyArNjMsNyBAQAogICAgIFJldHVybnMgbG9nZ2VyIHVzZWQgYnkgbXVsdGlwcm9jZXNzaW5nCiAgICAgJycnCiAgICAgZ2xvYmFsIF9sb2dnZXIKLSAgICBpbXBvcnQgbG9nZ2luZywgYXRleGl0CisgICAgaW1wb3J0IGxvZ2dpbmcKIAogICAgIGxvZ2dpbmcuX2FjcXVpcmVMb2NrKCkKICAgICB0cnk6CkBAIC0xODMsMTAgKzE2MiwxNSBAQAogICAgICAgICBzZWxmLl9hcmdzID0gYXJncwogICAgICAgICBzZWxmLl9rd2FyZ3MgPSBrd2FyZ3Mgb3Ige30KICAgICAgICAgc2VsZi5fa2V5ID0gKGV4aXRwcmlvcml0eSwgbmV4dChfZmluYWxpemVyX2NvdW50ZXIpKQorICAgICAgICBzZWxmLl9waWQgPSBvcy5nZXRwaWQoKQogCiAgICAgICAgIF9maW5hbGl6ZXJfcmVnaXN0cnlbc2VsZi5fa2V5XSA9IHNlbGYKIAotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB3cj1Ob25lKToKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgd3I9Tm9uZSwKKyAgICAgICAgICAgICAgICAgIyBOZWVkIHRvIGJpbmQgdGhlc2UgbG9jYWxseSBiZWNhdXNlIHRoZSBnbG9iYWxzIGNhbiBoYXZlCisgICAgICAgICAgICAgICAgICMgYmVlbiBjbGVhcmVkIGF0IHNodXRkb3duCisgICAgICAgICAgICAgICAgIF9maW5hbGl6ZXJfcmVnaXN0cnk9X2ZpbmFsaXplcl9yZWdpc3RyeSwKKyAgICAgICAgICAgICAgICAgc3ViX2RlYnVnPXN1Yl9kZWJ1ZywgZ2V0cGlkPW9zLmdldHBpZCk6CiAgICAgICAgICcnJwogICAgICAgICBSdW4gdGhlIGNhbGxiYWNrIHVubGVzcyBpdCBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZCBvciBjYW5jZWxsZWQKICAgICAgICAgJycnCkBAIC0xOTUsOSArMTc5LDEzIEBACiAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKICAgICAgICAgICAgIHN1Yl9kZWJ1ZygnZmluYWxpemVyIG5vIGxvbmdlciByZWdpc3RlcmVkJykKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN1Yl9kZWJ1ZygnZmluYWxpemVyIGNhbGxpbmcgJXMgd2l0aCBhcmdzICVzIGFuZCBrd2FyZ3MgJXMnLAotICAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2FsbGJhY2ssIHNlbGYuX2FyZ3MsIHNlbGYuX2t3YXJncykKLSAgICAgICAgICAgIHJlcyA9IHNlbGYuX2NhbGxiYWNrKCpzZWxmLl9hcmdzLCAqKnNlbGYuX2t3YXJncykKKyAgICAgICAgICAgIGlmIHNlbGYuX3BpZCAhPSBnZXRwaWQoKToKKyAgICAgICAgICAgICAgICBzdWJfZGVidWcoJ2ZpbmFsaXplciBpZ25vcmVkIGJlY2F1c2UgZGlmZmVyZW50IHByb2Nlc3MnKQorICAgICAgICAgICAgICAgIHJlcyA9IE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc3ViX2RlYnVnKCdmaW5hbGl6ZXIgY2FsbGluZyAlcyB3aXRoIGFyZ3MgJXMgYW5kIGt3YXJncyAlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NhbGxiYWNrLCBzZWxmLl9hcmdzLCBzZWxmLl9rd2FyZ3MpCisgICAgICAgICAgICAgICAgcmVzID0gc2VsZi5fY2FsbGJhY2soKnNlbGYuX2FyZ3MsICoqc2VsZi5fa3dhcmdzKQogICAgICAgICAgICAgc2VsZi5fd2Vha3JlZiA9IHNlbGYuX2NhbGxiYWNrID0gc2VsZi5fYXJncyA9IFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9rd2FyZ3MgPSBzZWxmLl9rZXkgPSBOb25lCiAgICAgICAgICAgICByZXR1cm4gcmVzCkBAIC0yODEsMjEgKzI2OSwyNCBAQAogZGVmIF9leGl0X2Z1bmN0aW9uKCk6CiAgICAgZ2xvYmFsIF9leGl0aW5nCiAKLSAgICBpbmZvKCdwcm9jZXNzIHNodXR0aW5nIGRvd24nKQotICAgIGRlYnVnKCdydW5uaW5nIGFsbCAiYXRleGl0IiBmaW5hbGl6ZXJzIHdpdGggcHJpb3JpdHkgPj0gMCcpCi0gICAgX3J1bl9maW5hbGl6ZXJzKDApCisgICAgaWYgbm90IF9leGl0aW5nOgorICAgICAgICBfZXhpdGluZyA9IFRydWUKIAotICAgIGZvciBwIGluIGFjdGl2ZV9jaGlsZHJlbigpOgotICAgICAgICBpZiBwLl9kYWVtb25pYzoKLSAgICAgICAgICAgIGluZm8oJ2NhbGxpbmcgdGVybWluYXRlKCkgZm9yIGRhZW1vbiAlcycsIHAubmFtZSkKLSAgICAgICAgICAgIHAuX3BvcGVuLnRlcm1pbmF0ZSgpCisgICAgICAgIGluZm8oJ3Byb2Nlc3Mgc2h1dHRpbmcgZG93bicpCisgICAgICAgIGRlYnVnKCdydW5uaW5nIGFsbCAiYXRleGl0IiBmaW5hbGl6ZXJzIHdpdGggcHJpb3JpdHkgPj0gMCcpCisgICAgICAgIF9ydW5fZmluYWxpemVycygwKQogCi0gICAgZm9yIHAgaW4gYWN0aXZlX2NoaWxkcmVuKCk6Ci0gICAgICAgIGluZm8oJ2NhbGxpbmcgam9pbigpIGZvciBwcm9jZXNzICVzJywgcC5uYW1lKQotICAgICAgICBwLmpvaW4oKQorICAgICAgICBmb3IgcCBpbiBhY3RpdmVfY2hpbGRyZW4oKToKKyAgICAgICAgICAgIGlmIHAuX2RhZW1vbmljOgorICAgICAgICAgICAgICAgIGluZm8oJ2NhbGxpbmcgdGVybWluYXRlKCkgZm9yIGRhZW1vbiAlcycsIHAubmFtZSkKKyAgICAgICAgICAgICAgICBwLl9wb3Blbi50ZXJtaW5hdGUoKQogCi0gICAgZGVidWcoJ3J1bm5pbmcgdGhlIHJlbWFpbmluZyAiYXRleGl0IiBmaW5hbGl6ZXJzJykKLSAgICBfcnVuX2ZpbmFsaXplcnMoKQorICAgICAgICBmb3IgcCBpbiBhY3RpdmVfY2hpbGRyZW4oKToKKyAgICAgICAgICAgIGluZm8oJ2NhbGxpbmcgam9pbigpIGZvciBwcm9jZXNzICVzJywgcC5uYW1lKQorICAgICAgICAgICAgcC5qb2luKCkKKworICAgICAgICBkZWJ1ZygncnVubmluZyB0aGUgcmVtYWluaW5nICJhdGV4aXQiIGZpbmFsaXplcnMnKQorICAgICAgICBfcnVuX2ZpbmFsaXplcnMoKQogCiBhdGV4aXQucmVnaXN0ZXIoX2V4aXRfZnVuY3Rpb24pCiAKZGlmZiAtLWdpdCBhL0xpYi9ubnRwbGliLnB5IGIvTGliL25udHBsaWIucHkKaW5kZXggMzJiZmZkOC4uMmRlNmViZCAxMDA2NDQKLS0tIGEvTGliL25udHBsaWIucHkKKysrIGIvTGliL25udHBsaWIucHkKQEAgLTE2Niw3ICsxNjYsNyBAQAogICAgICAgICAgICAgcGFydHMuYXBwZW5kKHYuZGVjb2RlKGVuYyBvciAnYXNjaWknKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHBhcnRzLmFwcGVuZCh2KQotICAgIHJldHVybiAnICcuam9pbihwYXJ0cykKKyAgICByZXR1cm4gJycuam9pbihwYXJ0cykKIAogZGVmIF9wYXJzZV9vdmVydmlld19mbXQobGluZXMpOgogICAgICIiIlBhcnNlIGEgbGlzdCBvZiBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSByZXNwb25zZSB0byBMSVNUIE9WRVJWSUVXLkZNVApAQCAtMzUxLDYgKzM1MSwyMCBAQAogICAgICAgICAjIExvZyBpbiBhbmQgZW5jcnlwdGlvbiBzZXR1cCBvcmRlciBpcyBsZWZ0IHRvIHN1YmNsYXNzZXMuCiAgICAgICAgIHNlbGYuYXV0aGVudGljYXRlZCA9IEZhbHNlCiAKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgaXNfY29ubmVjdGVkID0gbGFtYmRhOiBoYXNhdHRyKHNlbGYsICJmaWxlIikKKyAgICAgICAgaWYgaXNfY29ubmVjdGVkKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5xdWl0KCkKKyAgICAgICAgICAgIGV4Y2VwdCAoc29ja2V0LmVycm9yLCBFT0ZFcnJvcik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBpZiBpc19jb25uZWN0ZWQoKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fY2xvc2UoKQorCiAgICAgZGVmIGdldHdlbGNvbWUoc2VsZik6CiAgICAgICAgICIiIkdldCB0aGUgd2VsY29tZSBtZXNzYWdlIGZyb20gdGhlIHNlcnZlcgogICAgICAgICAodGhpcyBpcyByZWFkIGFuZCBzcXVpcnJlbGVkIGF3YXkgYnkgX19pbml0X18oKSkuCkBAIC04MTksNyArODMzLDcgQEAKICAgICAgICAgLSBsaXN0OiBsaXN0IG9mIChuYW1lLHRpdGxlKSBzdHJpbmdzIiIiCiAgICAgICAgIHdhcm5pbmdzLndhcm4oIlRoZSBYR1RJVExFIGV4dGVuc2lvbiBpcyBub3QgYWN0aXZlbHkgdXNlZCwgIgogICAgICAgICAgICAgICAgICAgICAgICJ1c2UgZGVzY3JpcHRpb25zKCkgaW5zdGVhZCIsCi0gICAgICAgICAgICAgICAgICAgICAgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCiAgICAgICAgIGxpbmVfcGF0ID0gcmUuY29tcGlsZSgnXihbXiBcdF0rKVsgXHRdKyguKikkJykKICAgICAgICAgcmVzcCwgcmF3X2xpbmVzID0gc2VsZi5fbG9uZ2NtZHN0cmluZygnWEdUSVRMRSAnICsgZ3JvdXAsIGZpbGUpCiAgICAgICAgIGxpbmVzID0gW10KQEAgLTgzNyw3ICs4NTEsNyBAQAogICAgICAgICBwYXRoOiBkaXJlY3RvcnkgcGF0aCB0byBhcnRpY2xlCiAgICAgICAgICIiIgogICAgICAgICB3YXJuaW5ncy53YXJuKCJUaGUgWFBBVEggZXh0ZW5zaW9uIGlzIG5vdCBhY3RpdmVseSB1c2VkIiwKLSAgICAgICAgICAgICAgICAgICAgICBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywgMikKIAogICAgICAgICByZXNwID0gc2VsZi5fc2hvcnRjbWQoJ1hQQVRIIHswfScuZm9ybWF0KGlkKSkKICAgICAgICAgaWYgbm90IHJlc3Auc3RhcnRzd2l0aCgnMjIzJyk6CmRpZmYgLS1naXQgYS9MaWIvbnVtYmVycy5weSBiL0xpYi9udW1iZXJzLnB5CmluZGV4IGVjZmFkN2MuLmIyMDY0NTcgMTAwNjQ0Ci0tLSBhL0xpYi9udW1iZXJzLnB5CisrKyBiL0xpYi9udW1iZXJzLnB5CkBAIC01LDcgKzUsNyBAQAogCiBUT0RPOiBGaWxsIG91dCBtb3JlIGRldGFpbGVkIGRvY3VtZW50YXRpb24gb24gdGhlIG9wZXJhdG9ycy4iIiIKIAotZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kLCBhYnN0cmFjdHByb3BlcnR5Citmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QKIAogX19hbGxfXyA9IFsiTnVtYmVyIiwgIkNvbXBsZXgiLCAiUmVhbCIsICJSYXRpb25hbCIsICJJbnRlZ3JhbCJdCiAKQEAgLTUwLDcgKzUwLDggQEAKICAgICAgICAgIiIiVHJ1ZSBpZiBzZWxmICE9IDAuIENhbGxlZCBmb3IgYm9vbChzZWxmKS4iIiIKICAgICAgICAgcmV0dXJuIHNlbGYgIT0gMAogCi0gICAgQGFic3RyYWN0cHJvcGVydHkKKyAgICBAcHJvcGVydHkKKyAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgcmVhbChzZWxmKToKICAgICAgICAgIiIiUmV0cmlldmUgdGhlIHJlYWwgY29tcG9uZW50IG9mIHRoaXMgbnVtYmVyLgogCkBAIC01OCw3ICs1OSw4IEBACiAgICAgICAgICIiIgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBAYWJzdHJhY3Rwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eQorICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBpbWFnKHNlbGYpOgogICAgICAgICAiIiJSZXRyaWV2ZSB0aGUgaW1hZ2luYXJ5IGNvbXBvbmVudCBvZiB0aGlzIG51bWJlci4KIApAQCAtMjcyLDExICsyNzQsMTMgQEAKIAogICAgIF9fc2xvdHNfXyA9ICgpCiAKLSAgICBAYWJzdHJhY3Rwcm9wZXJ0eQorICAgIEBwcm9wZXJ0eQorICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBudW1lcmF0b3Ioc2VsZik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIEBhYnN0cmFjdHByb3BlcnR5CisgICAgQHByb3BlcnR5CisgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVmIGRlbm9taW5hdG9yKHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKZGlmZiAtLWdpdCBhL0xpYi9vcGNvZGUucHkgYi9MaWIvb3Bjb2RlLnB5CmluZGV4IDhlMTVkMTMuLmE2MzlmZTMgMTAwNjQ0Ci0tLSBhL0xpYi9vcGNvZGUucHkKKysrIGIvTGliL29wY29kZS5weQpAQCAtNiw3ICs2LDcgQEAKIAogX19hbGxfXyA9IFsiY21wX29wIiwgImhhc2NvbnN0IiwgImhhc25hbWUiLCAiaGFzanJlbCIsICJoYXNqYWJzIiwKICAgICAgICAgICAgImhhc2xvY2FsIiwgImhhc2NvbXBhcmUiLCAiaGFzZnJlZSIsICJvcG5hbWUiLCAib3BtYXAiLAotICAgICAgICAgICAiSEFWRV9BUkdVTUVOVCIsICJFWFRFTkRFRF9BUkciXQorICAgICAgICAgICAiSEFWRV9BUkdVTUVOVCIsICJFWFRFTkRFRF9BUkciLCAiaGFzbmFyZ3MiXQogCiBjbXBfb3AgPSAoJzwnLCAnPD0nLCAnPT0nLCAnIT0nLCAnPicsICc+PScsICdpbicsICdub3QgaW4nLCAnaXMnLAogICAgICAgICAnaXMgbm90JywgJ2V4Y2VwdGlvbiBtYXRjaCcsICdCQUQnKQpAQCAtMTgsNiArMTgsNyBAQAogaGFzbG9jYWwgPSBbXQogaGFzY29tcGFyZSA9IFtdCiBoYXNmcmVlID0gW10KK2hhc25hcmdzID0gW10KIAogb3BtYXAgPSB7fQogb3BuYW1lID0gWycnXSAqIDI1NgpAQCAtNDMsNyArNDQsNiBAQAogIyBJbnN0cnVjdGlvbiBvcGNvZGVzIGZvciBjb21waWxlZCBjb2RlCiAjIEJsYW5rIGxpbmVzIGNvcnJlc3BvbmQgdG8gYXZhaWxhYmxlIG9wY29kZXMKIAotZGVmX29wKCdTVE9QX0NPREUnLCAwKQogZGVmX29wKCdQT1BfVE9QJywgMSkKIGRlZl9vcCgnUk9UX1RXTycsIDIpCiBkZWZfb3AoJ1JPVF9USFJFRScsIDMpCkBAIC04OCw2ICs4OCw3IEBACiAKIGRlZl9vcCgnUFJJTlRfRVhQUicsIDcwKQogZGVmX29wKCdMT0FEX0JVSUxEX0NMQVNTJywgNzEpCitkZWZfb3AoJ1lJRUxEX0ZST00nLCA3MikKIAogZGVmX29wKCdJTlBMQUNFX0xTSElGVCcsIDc1KQogZGVmX29wKCdJTlBMQUNFX1JTSElGVCcsIDc2KQpAQCAtMTUyLDYgKzE1Myw3IEBACiAKIGRlZl9vcCgnUkFJU0VfVkFSQVJHUycsIDEzMCkgICAgIyBOdW1iZXIgb2YgcmFpc2UgYXJndW1lbnRzICgxLCAyLCBvciAzKQogZGVmX29wKCdDQUxMX0ZVTkNUSU9OJywgMTMxKSAgICAjICNhcmdzICsgKCNrd2FyZ3MgPDwgOCkKK2hhc25hcmdzLmFwcGVuZCgxMzEpCiBkZWZfb3AoJ01BS0VfRlVOQ1RJT04nLCAxMzIpICAgICMgTnVtYmVyIG9mIGFyZ3Mgd2l0aCBkZWZhdWx0IHZhbHVlcwogZGVmX29wKCdCVUlMRF9TTElDRScsIDEzMykgICAgICAjIE51bWJlciBvZiBpdGVtcwogZGVmX29wKCdNQUtFX0NMT1NVUkUnLCAxMzQpCkBAIC0xNjUsOCArMTY3LDExIEBACiBoYXNmcmVlLmFwcGVuZCgxMzgpCiAKIGRlZl9vcCgnQ0FMTF9GVU5DVElPTl9WQVInLCAxNDApICAgICAjICNhcmdzICsgKCNrd2FyZ3MgPDwgOCkKK2hhc25hcmdzLmFwcGVuZCgxNDApCiBkZWZfb3AoJ0NBTExfRlVOQ1RJT05fS1cnLCAxNDEpICAgICAgIyAjYXJncyArICgja3dhcmdzIDw8IDgpCitoYXNuYXJncy5hcHBlbmQoMTQxKQogZGVmX29wKCdDQUxMX0ZVTkNUSU9OX1ZBUl9LVycsIDE0MikgICMgI2FyZ3MgKyAoI2t3YXJncyA8PCA4KQoraGFzbmFyZ3MuYXBwZW5kKDE0MikKIAoganJlbF9vcCgnU0VUVVBfV0lUSCcsIDE0MykKIApkaWZmIC0tZ2l0IGEvTGliL29wdHBhcnNlLnB5IGIvTGliL29wdHBhcnNlLnB5CmluZGV4IGQ5N2ExZjcuLjM3NzY0ZDMgMTAwNjQ0Ci0tLSBhL0xpYi9vcHRwYXJzZS5weQorKysgYi9MaWIvb3B0cGFyc2UucHkKQEAgLTg2LDEwICs4NiwxNiBAQAogIyAgIElkOiBlcnJvcnMucHkgNTA5IDIwMDYtMDQtMjAgMDA6NTg6MjRaIGd3YXJkCiAKIHRyeToKLSAgICBmcm9tIGdldHRleHQgaW1wb3J0IGdldHRleHQKKyAgICBmcm9tIGdldHRleHQgaW1wb3J0IGdldHRleHQsIG5nZXR0ZXh0CiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgZGVmIGdldHRleHQobWVzc2FnZSk6CiAgICAgICAgIHJldHVybiBtZXNzYWdlCisKKyAgICBkZWYgbmdldHRleHQoc2luZ3VsYXIsIHBsdXJhbCwgbik6CisgICAgICAgIGlmIG4gPT0gMToKKyAgICAgICAgICAgIHJldHVybiBzaW5ndWxhcgorICAgICAgICByZXR1cm4gcGx1cmFsCisKIF8gPSBnZXR0ZXh0CiAKIApAQCAtNDExLDExICs0MTcsOCBAQAogZGVmIF9wYXJzZV9pbnQodmFsKToKICAgICByZXR1cm4gX3BhcnNlX251bSh2YWwsIGludCkKIAotZGVmIF9wYXJzZV9sb25nKHZhbCk6Ci0gICAgcmV0dXJuIF9wYXJzZV9udW0odmFsLCBpbnQpCi0KIF9idWlsdGluX2N2dCA9IHsgImludCIgOiAoX3BhcnNlX2ludCwgXygiaW50ZWdlciIpKSwKLSAgICAgICAgICAgICAgICAgImxvbmciIDogKF9wYXJzZV9sb25nLCBfKCJsb25nIGludGVnZXIiKSksCisgICAgICAgICAgICAgICAgICJsb25nIiA6IChfcGFyc2VfaW50LCBfKCJpbnRlZ2VyIikpLAogICAgICAgICAgICAgICAgICAiZmxvYXQiIDogKGZsb2F0LCBfKCJmbG9hdGluZy1wb2ludCIpKSwKICAgICAgICAgICAgICAgICAgImNvbXBsZXgiIDogKGNvbXBsZXgsIF8oImNvbXBsZXgiKSkgfQogCkBAIC0xNDgzLDExICsxNDg2LDEwIEBACiAgICAgICAgIGlmIG9wdGlvbi50YWtlc192YWx1ZSgpOgogICAgICAgICAgICAgbmFyZ3MgPSBvcHRpb24ubmFyZ3MKICAgICAgICAgICAgIGlmIGxlbihyYXJncykgPCBuYXJnczoKLSAgICAgICAgICAgICAgICBpZiBuYXJncyA9PSAxOgotICAgICAgICAgICAgICAgICAgICBzZWxmLmVycm9yKF8oIiVzIG9wdGlvbiByZXF1aXJlcyBhbiBhcmd1bWVudCIpICUgb3B0KQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyb3IoXygiJXMgb3B0aW9uIHJlcXVpcmVzICVkIGFyZ3VtZW50cyIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAob3B0LCBuYXJncykpCisgICAgICAgICAgICAgICAgc2VsZi5lcnJvcihuZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgIiUob3B0aW9uKXMgb3B0aW9uIHJlcXVpcmVzICUobnVtYmVyKWQgYXJndW1lbnQiLAorICAgICAgICAgICAgICAgICAgICAiJShvcHRpb24pcyBvcHRpb24gcmVxdWlyZXMgJShudW1iZXIpZCBhcmd1bWVudHMiLAorICAgICAgICAgICAgICAgICAgICBuYXJncykgJSB7Im9wdGlvbiI6IG9wdCwgIm51bWJlciI6IG5hcmdzfSkKICAgICAgICAgICAgIGVsaWYgbmFyZ3MgPT0gMToKICAgICAgICAgICAgICAgICB2YWx1ZSA9IHJhcmdzLnBvcCgwKQogICAgICAgICAgICAgZWxzZToKQEAgLTE1MjIsMTEgKzE1MjQsMTAgQEAKIAogICAgICAgICAgICAgICAgIG5hcmdzID0gb3B0aW9uLm5hcmdzCiAgICAgICAgICAgICAgICAgaWYgbGVuKHJhcmdzKSA8IG5hcmdzOgotICAgICAgICAgICAgICAgICAgICBpZiBuYXJncyA9PSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5lcnJvcihfKCIlcyBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQiKSAlIG9wdCkKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyb3IoXygiJXMgb3B0aW9uIHJlcXVpcmVzICVkIGFyZ3VtZW50cyIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG9wdCwgbmFyZ3MpKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmVycm9yKG5nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgIiUob3B0aW9uKXMgb3B0aW9uIHJlcXVpcmVzICUobnVtYmVyKWQgYXJndW1lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIiUob3B0aW9uKXMgb3B0aW9uIHJlcXVpcmVzICUobnVtYmVyKWQgYXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hcmdzKSAlIHsib3B0aW9uIjogb3B0LCAibnVtYmVyIjogbmFyZ3N9KQogICAgICAgICAgICAgICAgIGVsaWYgbmFyZ3MgPT0gMToKICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSByYXJncy5wb3AoMCkKICAgICAgICAgICAgICAgICBlbHNlOgpkaWZmIC0tZ2l0IGEvTGliL29zLnB5IGIvTGliL29zLnB5CmluZGV4IGQxMTAxYTIuLjM4MTczN2YgMTAwNjQ0Ci0tLSBhL0xpYi9vcy5weQorKysgYi9MaWIvb3MucHkKQEAgLTI0LDEzICsyNCwxOCBAQAogIycKIAogaW1wb3J0IHN5cywgZXJybm8KK2ltcG9ydCBzdGF0IGFzIHN0CiAKIF9uYW1lcyA9IHN5cy5idWlsdGluX21vZHVsZV9uYW1lcwogCiAjIE5vdGU6ICBtb3JlIG5hbWVzIGFyZSBhZGRlZCB0byBfX2FsbF9fIGxhdGVyLgogX19hbGxfXyA9IFsiYWx0c2VwIiwgImN1cmRpciIsICJwYXJkaXIiLCAic2VwIiwgInBhdGhzZXAiLCAibGluZXNlcCIsCi0gICAgICAgICAgICJkZWZwYXRoIiwgIm5hbWUiLCAicGF0aCIsICJkZXZudWxsIiwKLSAgICAgICAgICAgIlNFRUtfU0VUIiwgIlNFRUtfQ1VSIiwgIlNFRUtfRU5EIl0KKyAgICAgICAgICAgImRlZnBhdGgiLCAibmFtZSIsICJwYXRoIiwgImRldm51bGwiLCAiU0VFS19TRVQiLCAiU0VFS19DVVIiLAorICAgICAgICAgICAiU0VFS19FTkQiLCAiZnNlbmNvZGUiLCAiZnNkZWNvZGUiLCAiZ2V0X2V4ZWNfcGF0aCIsICJmZG9wZW4iLAorICAgICAgICAgICAicG9wZW4iLCAiZXh0c2VwIl0KKworZGVmIF9leGlzdHMobmFtZSk6CisgICAgcmV0dXJuIG5hbWUgaW4gZ2xvYmFscygpCiAKIGRlZiBfZ2V0X2V4cG9ydHNfbGlzdChtb2R1bGUpOgogICAgIHRyeToKQEAgLTM4LDE5ICs0MywyMyBAQAogICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKICAgICAgICAgcmV0dXJuIFtuIGZvciBuIGluIGRpcihtb2R1bGUpIGlmIG5bMF0gIT0gJ18nXQogCisjIEFueSBuZXcgZGVwZW5kZW5jaWVzIG9mIHRoZSBvcyBtb2R1bGUgYW5kL29yIGNoYW5nZXMgaW4gcGF0aCBzZXBhcmF0b3IKKyMgcmVxdWlyZXMgdXBkYXRpbmcgaW1wb3J0bGliIGFzIHdlbGwuCiBpZiAncG9zaXgnIGluIF9uYW1lczoKICAgICBuYW1lID0gJ3Bvc2l4JwogICAgIGxpbmVzZXAgPSAnXG4nCiAgICAgZnJvbSBwb3NpeCBpbXBvcnQgKgogICAgIHRyeToKICAgICAgICAgZnJvbSBwb3NpeCBpbXBvcnQgX2V4aXQKKyAgICAgICAgX19hbGxfXy5hcHBlbmQoJ19leGl0JykKICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgIHBhc3MKICAgICBpbXBvcnQgcG9zaXhwYXRoIGFzIHBhdGgKIAotICAgIGltcG9ydCBwb3NpeAotICAgIF9fYWxsX18uZXh0ZW5kKF9nZXRfZXhwb3J0c19saXN0KHBvc2l4KSkKLSAgICBkZWwgcG9zaXgKKyAgICB0cnk6CisgICAgICAgIGZyb20gcG9zaXggaW1wb3J0IF9oYXZlX2Z1bmN0aW9ucworICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgcGFzcwogCiBlbGlmICdudCcgaW4gX25hbWVzOgogICAgIG5hbWUgPSAnbnQnCkBAIC01OCw2ICs2Nyw3IEBACiAgICAgZnJvbSBudCBpbXBvcnQgKgogICAgIHRyeToKICAgICAgICAgZnJvbSBudCBpbXBvcnQgX2V4aXQKKyAgICAgICAgX19hbGxfXy5hcHBlbmQoJ19leGl0JykKICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgIHBhc3MKICAgICBpbXBvcnQgbnRwYXRoIGFzIHBhdGgKQEAgLTY2LDEyICs3NiwxOCBAQAogICAgIF9fYWxsX18uZXh0ZW5kKF9nZXRfZXhwb3J0c19saXN0KG50KSkKICAgICBkZWwgbnQKIAorICAgIHRyeToKKyAgICAgICAgZnJvbSBudCBpbXBvcnQgX2hhdmVfZnVuY3Rpb25zCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBwYXNzCisKIGVsaWYgJ29zMicgaW4gX25hbWVzOgogICAgIG5hbWUgPSAnb3MyJwogICAgIGxpbmVzZXAgPSAnXHJcbicKICAgICBmcm9tIG9zMiBpbXBvcnQgKgogICAgIHRyeToKICAgICAgICAgZnJvbSBvczIgaW1wb3J0IF9leGl0CisgICAgICAgIF9fYWxsX18uYXBwZW5kKCdfZXhpdCcpCiAgICAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICBwYXNzCiAgICAgaWYgc3lzLnZlcnNpb24uZmluZCgnRU1YIEdDQycpID09IC0xOgpAQCAtODQsMTIgKzEwMCwxOCBAQAogICAgIF9fYWxsX18uZXh0ZW5kKF9nZXRfZXhwb3J0c19saXN0KG9zMikpCiAgICAgZGVsIG9zMgogCisgICAgdHJ5OgorICAgICAgICBmcm9tIG9zMiBpbXBvcnQgX2hhdmVfZnVuY3Rpb25zCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBwYXNzCisKIGVsaWYgJ2NlJyBpbiBfbmFtZXM6CiAgICAgbmFtZSA9ICdjZScKICAgICBsaW5lc2VwID0gJ1xyXG4nCiAgICAgZnJvbSBjZSBpbXBvcnQgKgogICAgIHRyeToKICAgICAgICAgZnJvbSBjZSBpbXBvcnQgX2V4aXQKKyAgICAgICAgX19hbGxfXy5hcHBlbmQoJ19leGl0JykKICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgIHBhc3MKICAgICAjIFdlIGNhbiB1c2UgdGhlIHN0YW5kYXJkIFdpbmRvd3MgcGF0aC4KQEAgLTk5LDYgKzEyMSwxMSBAQAogICAgIF9fYWxsX18uZXh0ZW5kKF9nZXRfZXhwb3J0c19saXN0KGNlKSkKICAgICBkZWwgY2UKIAorICAgIHRyeToKKyAgICAgICAgZnJvbSBjZSBpbXBvcnQgX2hhdmVfZnVuY3Rpb25zCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBwYXNzCisKIGVsc2U6CiAgICAgcmFpc2UgSW1wb3J0RXJyb3IoJ25vIG9zIHNwZWNpZmljIG1vZHVsZSBmb3VuZCcpCiAKQEAgLTEwOCw4ICsxMzUsOTcgQEAKIAogZGVsIF9uYW1lcwogCisKK2lmIF9leGlzdHMoIl9oYXZlX2Z1bmN0aW9ucyIpOgorICAgIF9nbG9iYWxzID0gZ2xvYmFscygpCisgICAgZGVmIF9hZGQoc3RyLCBmbik6CisgICAgICAgIGlmIChmbiBpbiBfZ2xvYmFscykgYW5kIChzdHIgaW4gX2hhdmVfZnVuY3Rpb25zKToKKyAgICAgICAgICAgIF9zZXQuYWRkKF9nbG9iYWxzW2ZuXSkKKworICAgIF9zZXQgPSBzZXQoKQorICAgIF9hZGQoIkhBVkVfRkFDQ0VTU0FUIiwgICJhY2Nlc3MiKQorICAgIF9hZGQoIkhBVkVfRkNITU9EQVQiLCAgICJjaG1vZCIpCisgICAgX2FkZCgiSEFWRV9GQ0hPV05BVCIsICAgImNob3duIikKKyAgICBfYWRkKCJIQVZFX0ZTVEFUQVQiLCAgICAic3RhdCIpCisgICAgX2FkZCgiSEFWRV9GVVRJTUVTQVQiLCAgInV0aW1lIikKKyAgICBfYWRkKCJIQVZFX0xJTktBVCIsICAgICAibGluayIpCisgICAgX2FkZCgiSEFWRV9NS0RJUkFUIiwgICAgIm1rZGlyIikKKyAgICBfYWRkKCJIQVZFX01LRklGT0FUIiwgICAibWtmaWZvIikKKyAgICBfYWRkKCJIQVZFX01LTk9EQVQiLCAgICAibWtub2QiKQorICAgIF9hZGQoIkhBVkVfT1BFTkFUIiwgICAgICJvcGVuIikKKyAgICBfYWRkKCJIQVZFX1JFQURMSU5LQVQiLCAicmVhZGxpbmsiKQorICAgIF9hZGQoIkhBVkVfUkVOQU1FQVQiLCAgICJyZW5hbWUiKQorICAgIF9hZGQoIkhBVkVfU1lNTElOS0FUIiwgICJzeW1saW5rIikKKyAgICBfYWRkKCJIQVZFX1VOTElOS0FUIiwgICAidW5saW5rIikKKyAgICBfYWRkKCJIQVZFX1VOTElOS0FUIiwgICAicm1kaXIiKQorICAgIF9hZGQoIkhBVkVfVVRJTUVOU0FUIiwgICJ1dGltZSIpCisgICAgc3VwcG9ydHNfZGlyX2ZkID0gX3NldAorCisgICAgX3NldCA9IHNldCgpCisgICAgX2FkZCgiSEFWRV9GQUNDRVNTQVQiLCAgImFjY2VzcyIpCisgICAgc3VwcG9ydHNfZWZmZWN0aXZlX2lkcyA9IF9zZXQKKworICAgIF9zZXQgPSBzZXQoKQorICAgIF9hZGQoIkhBVkVfRkNIRElSIiwgICAgICJjaGRpciIpCisgICAgX2FkZCgiSEFWRV9GQ0hNT0QiLCAgICAgImNobW9kIikKKyAgICBfYWRkKCJIQVZFX0ZDSE9XTiIsICAgICAiY2hvd24iKQorICAgIF9hZGQoIkhBVkVfRkRPUEVORElSIiwgICJsaXN0ZGlyIikKKyAgICBfYWRkKCJIQVZFX0ZFWEVDVkUiLCAgICAiZXhlY3ZlIikKKyAgICBfc2V0LmFkZChzdGF0KSAjIGZzdGF0IGFsd2F5cyB3b3JrcworICAgIF9hZGQoIkhBVkVfRlRSVU5DQVRFIiwgICJ0cnVuY2F0ZSIpCisgICAgX2FkZCgiSEFWRV9GVVRJTUVOUyIsICAgInV0aW1lIikKKyAgICBfYWRkKCJIQVZFX0ZVVElNRVMiLCAgICAidXRpbWUiKQorICAgIF9hZGQoIkhBVkVfRlBBVEhDT05GIiwgICJwYXRoY29uZiIpCisgICAgaWYgX2V4aXN0cygic3RhdHZmcyIpIGFuZCBfZXhpc3RzKCJmc3RhdHZmcyIpOiAjIG1hYyBvcyB4MTAuMworICAgICAgICBfYWRkKCJIQVZFX0ZTVEFUVkZTIiwgInN0YXR2ZnMiKQorICAgIHN1cHBvcnRzX2ZkID0gX3NldAorCisgICAgX3NldCA9IHNldCgpCisgICAgX2FkZCgiSEFWRV9GQUNDRVNTQVQiLCAgImFjY2VzcyIpCisgICAgIyBTb21lIHBsYXRmb3JtcyBkb24ndCBzdXBwb3J0IGxjaG1vZCgpLiAgT2Z0ZW4gdGhlIGZ1bmN0aW9uIGV4aXN0cworICAgICMgYW55d2F5LCBhcyBhIHN0dWIgdGhhdCBhbHdheXMgcmV0dXJucyBFTk9TVVAgb3IgcGVyaGFwcyBFT1BOT1RTVVBQLgorICAgICMgKE5vLCBJIGRvbid0IGtub3cgd2h5IHRoYXQncyBhIGdvb2QgZGVzaWduLikgIC4vY29uZmlndXJlIHdpbGwgZGV0ZWN0CisgICAgIyB0aGlzIGFuZCByZWplY3QgaXQtLXNvIEhBVkVfTENITU9EIHN0aWxsIHdvbid0IGJlIGRlZmluZWQgb24gc3VjaAorICAgICMgcGxhdGZvcm1zLiAgVGhpcyBpcyBWZXJ5IEhlbHBmdWwuCisgICAgIworICAgICMgSG93ZXZlciwgc29tZXRpbWVzIHBsYXRmb3JtcyB3aXRob3V0IGEgd29ya2luZyBsY2htb2QoKSAqZG8qIGhhdmUKKyAgICAjIGZjaG1vZGF0KCkuICAoRXhhbXBsZXM6IExpbnV4IGtlcm5lbCAzLjIgd2l0aCBnbGliYyAyLjE1LAorICAgICMgT3BlbkluZGlhbmEgMy54LikgIEFuZCBmY2htb2RhdCgpIGhhcyBhIGZsYWcgdGhhdCB0aGVvcmV0aWNhbGx5IG1ha2VzCisgICAgIyBpdCBiZWhhdmUgbGlrZSBsY2htb2QoKS4gIFNvIGluIHRoZW9yeSBpdCB3b3VsZCBiZSBhIHN1aXRhYmxlCisgICAgIyByZXBsYWNlbWVudCBmb3IgbGNobW9kKCkuICBCdXQgd2hlbiBsY2htb2QoKSBkb2Vzbid0IHdvcmssIGZjaG1vZGF0KCkncworICAgICMgZmxhZyBkb2Vzbid0IHdvcmsgKmVpdGhlciouICBTYWRseSAuL2NvbmZpZ3VyZSBpc24ndCBzb3BoaXN0aWNhdGVkCisgICAgIyBlbm91Z2ggdG8gZGV0ZWN0IHRoaXMgY29uZGl0aW9uLS1pdCBvbmx5IGRldGVybWluZXMgd2hldGhlciBvciBub3QKKyAgICAjIGZjaG1vZGF0KCkgbWluaW1hbGx5IHdvcmtzLgorICAgICMKKyAgICAjIFRoZXJlZm9yZSB3ZSBzaW1wbHkgaWdub3JlIGZjaG1vZGF0KCkgd2hlbiBkZWNpZGluZyB3aGV0aGVyIG9yIG5vdAorICAgICMgb3MuY2htb2Qgc3VwcG9ydHMgZm9sbG93X3N5bWxpbmtzLiAgSnVzdCBjaGVja2luZyBsY2htb2QoKSBpcworICAgICMgc3VmZmljaWVudC4gIEFmdGVyIGFsbC0taWYgeW91IGhhdmUgYSB3b3JraW5nIGZjaG1vZGF0KCksIHlvdXIKKyAgICAjIGxjaG1vZCgpIGFsbW9zdCBjZXJ0YWlubHkgd29ya3MgdG9vLgorICAgICMKKyAgICAjIF9hZGQoIkhBVkVfRkNITU9EQVQiLCAgICJjaG1vZCIpCisgICAgX2FkZCgiSEFWRV9GQ0hPV05BVCIsICAgImNob3duIikKKyAgICBfYWRkKCJIQVZFX0ZTVEFUQVQiLCAgICAic3RhdCIpCisgICAgX2FkZCgiSEFWRV9MQ0hGTEFHUyIsICAgImNoZmxhZ3MiKQorICAgIF9hZGQoIkhBVkVfTENITU9EIiwgICAgICJjaG1vZCIpCisgICAgaWYgX2V4aXN0cygibGNob3duIik6ICMgbWFjIG9zIHgxMC4zCisgICAgICAgIF9hZGQoIkhBVkVfTENIT1dOIiwgImNob3duIikKKyAgICBfYWRkKCJIQVZFX0xJTktBVCIsICAgICAibGluayIpCisgICAgX2FkZCgiSEFWRV9MVVRJTUVTIiwgICAgInV0aW1lIikKKyAgICBfYWRkKCJIQVZFX0xTVEFUIiwgICAgICAic3RhdCIpCisgICAgX2FkZCgiSEFWRV9GU1RBVEFUIiwgICAgInN0YXQiKQorICAgIF9hZGQoIkhBVkVfVVRJTUVOU0FUIiwgICJ1dGltZSIpCisgICAgX2FkZCgiTVNfV0lORE9XUyIsICAgICAgInN0YXQiKQorICAgIHN1cHBvcnRzX2ZvbGxvd19zeW1saW5rcyA9IF9zZXQKKworICAgIGRlbCBfc2V0CisgICAgZGVsIF9oYXZlX2Z1bmN0aW9ucworICAgIGRlbCBfZ2xvYmFscworICAgIGRlbCBfYWRkCisKKwogIyBQeXRob24gdXNlcyBmaXhlZCB2YWx1ZXMgZm9yIHRoZSBTRUVLXyBjb25zdGFudHM7IHRoZXkgYXJlIG1hcHBlZAogIyB0byBuYXRpdmUgY29uc3RhbnRzIGlmIG5lY2Vzc2FyeSBpbiBwb3NpeG1vZHVsZS5jCisjIE90aGVyIHBvc3NpYmxlIFNFRUsgdmFsdWVzIGFyZSBkaXJlY3RseSBpbXBvcnRlZCBmcm9tIHBvc2l4bW9kdWxlLmMKIFNFRUtfU0VUID0gMAogU0VFS19DVVIgPSAxCiBTRUVLX0VORCA9IDIKQEAgLTEyMCw4ICsyMzYsNiBAQAogICAgIHVtYXNrKG1hc2spCiAgICAgcmV0dXJuIG1vZGUgJiB+bWFzawogCi0jJwotCiAjIFN1cGVyIGRpcmVjdG9yeSB1dGlsaXRpZXMuCiAjIChJbnNwaXJlZCBieSBFcmljIFJheW1vbmQ7IHRoZSBkb2Mgc3RyaW5ncyBhcmUgbW9zdGx5IGhpcykKIApAQCAtMTUxLDcgKzI2NSw2IEBACiAgICAgdHJ5OgogICAgICAgICBta2RpcihuYW1lLCBtb2RlKQogICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgIGltcG9ydCBzdGF0IGFzIHN0CiAgICAgICAgIGRpcl9leGlzdHMgPSBwYXRoLmlzZGlyKG5hbWUpCiAgICAgICAgIGV4cGVjdGVkX21vZGUgPSBfZ2V0X21hc2tlZF9tb2RlKG1vZGUpCiAgICAgICAgIGlmIGRpcl9leGlzdHM6CkBAIC0xNjMsNiArMjc2LDkgQEAKICAgICAgICAgICAgIGFjdHVhbF9tb2RlID0gLTEKICAgICAgICAgaWYgbm90IChlLmVycm5vID09IGVycm5vLkVFWElTVCBhbmQgZXhpc3Rfb2sgYW5kIGRpcl9leGlzdHMgYW5kCiAgICAgICAgICAgICAgICAgYWN0dWFsX21vZGUgPT0gZXhwZWN0ZWRfbW9kZSk6CisgICAgICAgICAgICBpZiBkaXJfZXhpc3RzIGFuZCBhY3R1YWxfbW9kZSAhPSBleHBlY3RlZF9tb2RlOgorICAgICAgICAgICAgICAgIGUuc3RyZXJyb3IgKz0gJyAobW9kZSAlbyAhPSBleHBlY3RlZCBtb2RlICVvKScgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxfbW9kZSwgZXhwZWN0ZWRfbW9kZSkKICAgICAgICAgICAgIHJhaXNlCiAKIGRlZiByZW1vdmVkaXJzKG5hbWUpOgpAQCAtMzAwLDEzICs0MTYsMTA3IEBACiAgICAgZm9yIG5hbWUgaW4gZGlyczoKICAgICAgICAgbmV3X3BhdGggPSBqb2luKHRvcCwgbmFtZSkKICAgICAgICAgaWYgZm9sbG93bGlua3Mgb3Igbm90IGlzbGluayhuZXdfcGF0aCk6Ci0gICAgICAgICAgICBmb3IgeCBpbiB3YWxrKG5ld19wYXRoLCB0b3Bkb3duLCBvbmVycm9yLCBmb2xsb3dsaW5rcyk6Ci0gICAgICAgICAgICAgICAgeWllbGQgeAorICAgICAgICAgICAgeWllbGQgZnJvbSB3YWxrKG5ld19wYXRoLCB0b3Bkb3duLCBvbmVycm9yLCBmb2xsb3dsaW5rcykKICAgICBpZiBub3QgdG9wZG93bjoKICAgICAgICAgeWllbGQgdG9wLCBkaXJzLCBub25kaXJzCiAKIF9fYWxsX18uYXBwZW5kKCJ3YWxrIikKIAoraWYge29wZW4sIHN0YXR9IDw9IHN1cHBvcnRzX2Rpcl9mZCBhbmQge2xpc3RkaXIsIHN0YXR9IDw9IHN1cHBvcnRzX2ZkOgorCisgICAgZGVmIGZ3YWxrKHRvcD0iLiIsIHRvcGRvd249VHJ1ZSwgb25lcnJvcj1Ob25lLCBmb2xsb3dsaW5rcz1GYWxzZSwgKiwgZGlyX2ZkPU5vbmUpOgorICAgICAgICAiIiJEaXJlY3RvcnkgdHJlZSBnZW5lcmF0b3IuCisKKyAgICAgICAgVGhpcyBiZWhhdmVzIGV4YWN0bHkgbGlrZSB3YWxrKCksIGV4Y2VwdCB0aGF0IGl0IHlpZWxkcyBhIDQtdHVwbGUKKworICAgICAgICAgICAgZGlycGF0aCwgZGlybmFtZXMsIGZpbGVuYW1lcywgZGlyZmQKKworICAgICAgICBgZGlycGF0aGAsIGBkaXJuYW1lc2AgYW5kIGBmaWxlbmFtZXNgIGFyZSBpZGVudGljYWwgdG8gd2FsaygpIG91dHB1dCwKKyAgICAgICAgYW5kIGBkaXJmZGAgaXMgYSBmaWxlIGRlc2NyaXB0b3IgcmVmZXJyaW5nIHRvIHRoZSBkaXJlY3RvcnkgYGRpcnBhdGhgLgorCisgICAgICAgIFRoZSBhZHZhbnRhZ2Ugb2YgZndhbGsoKSBvdmVyIHdhbGsoKSBpcyB0aGF0IGl0J3Mgc2FmZSBhZ2FpbnN0IHN5bWxpbmsKKyAgICAgICAgcmFjZXMgKHdoZW4gZm9sbG93bGlua3MgaXMgRmFsc2UpLgorCisgICAgICAgIElmIGRpcl9mZCBpcyBub3QgTm9uZSwgaXQgc2hvdWxkIGJlIGEgZmlsZSBkZXNjcmlwdG9yIG9wZW4gdG8gYSBkaXJlY3RvcnksCisgICAgICAgICAgYW5kIHRvcCBzaG91bGQgYmUgcmVsYXRpdmU7IHRvcCB3aWxsIHRoZW4gYmUgcmVsYXRpdmUgdG8gdGhhdCBkaXJlY3RvcnkuCisgICAgICAgICAgKGRpcl9mZCBpcyBhbHdheXMgc3VwcG9ydGVkIGZvciBmd2Fsay4pCisKKyAgICAgICAgQ2F1dGlvbjoKKyAgICAgICAgU2luY2UgZndhbGsoKSB5aWVsZHMgZmlsZSBkZXNjcmlwdG9ycywgdGhvc2UgYXJlIG9ubHkgdmFsaWQgdW50aWwgdGhlCisgICAgICAgIG5leHQgaXRlcmF0aW9uIHN0ZXAsIHNvIHlvdSBzaG91bGQgZHVwKCkgdGhlbSBpZiB5b3Ugd2FudCB0byBrZWVwIHRoZW0KKyAgICAgICAgZm9yIGEgbG9uZ2VyIHBlcmlvZC4KKworICAgICAgICBFeGFtcGxlOgorCisgICAgICAgIGltcG9ydCBvcworICAgICAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMsIHJvb3RmZCBpbiBvcy5md2FsaygncHl0aG9uL0xpYi9lbWFpbCcpOgorICAgICAgICAgICAgcHJpbnQocm9vdCwgImNvbnN1bWVzIiwgZW5kPSIiKQorICAgICAgICAgICAgcHJpbnQoc3VtKFtvcy5zdGF0KG5hbWUsIGRpcl9mZD1yb290ZmQpLnN0X3NpemUgZm9yIG5hbWUgaW4gZmlsZXNdKSwKKyAgICAgICAgICAgICAgICAgIGVuZD0iIikKKyAgICAgICAgICAgIHByaW50KCJieXRlcyBpbiIsIGxlbihmaWxlcyksICJub24tZGlyZWN0b3J5IGZpbGVzIikKKyAgICAgICAgICAgIGlmICdDVlMnIGluIGRpcnM6CisgICAgICAgICAgICAgICAgZGlycy5yZW1vdmUoJ0NWUycpICAjIGRvbid0IHZpc2l0IENWUyBkaXJlY3RvcmllcworICAgICAgICAiIiIKKyAgICAgICAgIyBOb3RlOiBUbyBndWFyZCBhZ2FpbnN0IHN5bWxpbmsgcmFjZXMsIHdlIHVzZSB0aGUgc3RhbmRhcmQKKyAgICAgICAgIyBsc3RhdCgpL29wZW4oKS9mc3RhdCgpIHRyaWNrLgorICAgICAgICBvcmlnX3N0ID0gc3RhdCh0b3AsIGZvbGxvd19zeW1saW5rcz1GYWxzZSwgZGlyX2ZkPWRpcl9mZCkKKyAgICAgICAgdG9wZmQgPSBvcGVuKHRvcCwgT19SRE9OTFksIGRpcl9mZD1kaXJfZmQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIChmb2xsb3dsaW5rcyBvciAoc3QuU19JU0RJUihvcmlnX3N0LnN0X21vZGUpIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLnNhbWVzdGF0KG9yaWdfc3QsIHN0YXQodG9wZmQpKSkpOgorICAgICAgICAgICAgICAgIHlpZWxkIGZyb20gX2Z3YWxrKHRvcGZkLCB0b3AsIHRvcGRvd24sIG9uZXJyb3IsIGZvbGxvd2xpbmtzKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgY2xvc2UodG9wZmQpCisKKyAgICBkZWYgX2Z3YWxrKHRvcGZkLCB0b3BwYXRoLCB0b3Bkb3duLCBvbmVycm9yLCBmb2xsb3dsaW5rcyk6CisgICAgICAgICMgTm90ZTogVGhpcyB1c2VzIE8oZGVwdGggb2YgdGhlIGRpcmVjdG9yeSB0cmVlKSBmaWxlIGRlc2NyaXB0b3JzOiBpZgorICAgICAgICAjIG5lY2Vzc2FyeSwgaXQgY2FuIGJlIGFkYXB0ZWQgdG8gb25seSByZXF1aXJlIE8oMSkgRkRzLCBzZWUgaXNzdWUKKyAgICAgICAgIyAjMTM3MzQuCisKKyAgICAgICAgbmFtZXMgPSBsaXN0ZGlyKHRvcGZkKQorICAgICAgICBkaXJzLCBub25kaXJzID0gW10sIFtdCisgICAgICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICMgSGVyZSwgd2UgZG9uJ3QgdXNlIEFUX1NZTUxJTktfTk9GT0xMT1cgdG8gYmUgY29uc2lzdGVudCB3aXRoCisgICAgICAgICAgICAgICAgIyB3YWxrKCkgd2hpY2ggcmVwb3J0cyBzeW1saW5rcyB0byBkaXJlY3RvcmllcyBhcyBkaXJlY3Rvcmllcy4KKyAgICAgICAgICAgICAgICAjIFdlIGRvIGhvd2V2ZXIgY2hlY2sgZm9yIHN5bWxpbmtzIGJlZm9yZSByZWN1cnNpbmcgaW50bworICAgICAgICAgICAgICAgICMgYSBzdWJkaXJlY3RvcnkuCisgICAgICAgICAgICAgICAgaWYgc3QuU19JU0RJUihzdGF0KG5hbWUsIGRpcl9mZD10b3BmZCkuc3RfbW9kZSk6CisgICAgICAgICAgICAgICAgICAgIGRpcnMuYXBwZW5kKG5hbWUpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbm9uZGlycy5hcHBlbmQobmFtZSkKKyAgICAgICAgICAgIGV4Y2VwdCBGaWxlTm90Rm91bmRFcnJvcjoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICMgQWRkIGRhbmdsaW5nIHN5bWxpbmtzLCBpZ25vcmUgZGlzYXBwZWFyZWQgZmlsZXMKKyAgICAgICAgICAgICAgICAgICAgaWYgc3QuU19JU0xOSyhzdGF0KG5hbWUsIGRpcl9mZD10b3BmZCwgZm9sbG93X3N5bWxpbmtzPUZhbHNlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3RfbW9kZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBub25kaXJzLmFwcGVuZChuYW1lKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBGaWxlTm90Rm91bmRFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBpZiB0b3Bkb3duOgorICAgICAgICAgICAgeWllbGQgdG9wcGF0aCwgZGlycywgbm9uZGlycywgdG9wZmQKKworICAgICAgICBmb3IgbmFtZSBpbiBkaXJzOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG9yaWdfc3QgPSBzdGF0KG5hbWUsIGRpcl9mZD10b3BmZCwgZm9sbG93X3N5bWxpbmtzPWZvbGxvd2xpbmtzKQorICAgICAgICAgICAgICAgIGRpcmZkID0gb3BlbihuYW1lLCBPX1JET05MWSwgZGlyX2ZkPXRvcGZkKQorICAgICAgICAgICAgZXhjZXB0IGVycm9yIGFzIGVycjoKKyAgICAgICAgICAgICAgICBpZiBvbmVycm9yIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBvbmVycm9yKGVycikKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBmb2xsb3dsaW5rcyBvciBwYXRoLnNhbWVzdGF0KG9yaWdfc3QsIHN0YXQoZGlyZmQpKToKKyAgICAgICAgICAgICAgICAgICAgZGlycGF0aCA9IHBhdGguam9pbih0b3BwYXRoLCBuYW1lKQorICAgICAgICAgICAgICAgICAgICB5aWVsZCBmcm9tIF9md2FsayhkaXJmZCwgZGlycGF0aCwgdG9wZG93biwgb25lcnJvciwgZm9sbG93bGlua3MpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGNsb3NlKGRpcmZkKQorCisgICAgICAgIGlmIG5vdCB0b3Bkb3duOgorICAgICAgICAgICAgeWllbGQgdG9wcGF0aCwgZGlycywgbm9uZGlycywgdG9wZmQKKworICAgIF9fYWxsX18uYXBwZW5kKCJmd2FsayIpCisKICMgTWFrZSBzdXJlIG9zLmVudmlyb24gZXhpc3RzLCBhdCBsZWFzdAogdHJ5OgogICAgIGVudmlyb24KQEAgLTQ0Myw3ICs2NTMsNyBAQAogCiAKICMgQ2hhbmdlIGVudmlyb24gdG8gYXV0b21hdGljYWxseSBjYWxsIHB1dGVudigpLCB1bnNldGVudiBpZiB0aGV5IGV4aXN0LgotZnJvbSBfYWJjb2xsIGltcG9ydCBNdXRhYmxlTWFwcGluZyAgIyBDYW4ndCB1c2UgY29sbGVjdGlvbnMgKGJvb3RzdHJhcCkKK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBNdXRhYmxlTWFwcGluZwogCiBjbGFzcyBfRW52aXJvbihNdXRhYmxlTWFwcGluZyk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEsIGVuY29kZWtleSwgZGVjb2Rla2V5LCBlbmNvZGV2YWx1ZSwgZGVjb2RldmFsdWUsIHB1dGVudiwgdW5zZXRlbnYpOgpAQCAtNjA3LDE1ICs4MTcsMTQgQEAKIGZzZW5jb2RlLCBmc2RlY29kZSA9IF9mc2NvZGVjKCkKIGRlbCBfZnNjb2RlYwogCi1kZWYgX2V4aXN0cyhuYW1lKToKLSAgICByZXR1cm4gbmFtZSBpbiBnbG9iYWxzKCkKLQogIyBTdXBwbHkgc3Bhd24qKCkgKHByb2JhYmx5IG9ubHkgZm9yIFVuaXgpCiBpZiBfZXhpc3RzKCJmb3JrIikgYW5kIG5vdCBfZXhpc3RzKCJzcGF3bnYiKSBhbmQgX2V4aXN0cygiZXhlY3YiKToKIAogICAgIFBfV0FJVCA9IDAKICAgICBQX05PV0FJVCA9IFBfTk9XQUlUTyA9IDEKIAorICAgIF9fYWxsX18uZXh0ZW5kKFsiUF9XQUlUIiwgIlBfTk9XQUlUIiwgIlBfTk9XQUlUTyJdKQorCiAgICAgIyBYWFggU2hvdWxkIHdlIHN1cHBvcnQgUF9ERVRBQ0g/ICBJIHN1cHBvc2UgaXQgY291bGQgZm9yaygpKioyCiAgICAgIyBhbmQgY2xvc2UgdGhlIHN0ZCBJL08gc3RyZWFtcy4gIEFsc28sIFBfT1ZFUkxBWSBpcyB0aGUgc2FtZQogICAgICMgYXMgZXhlY3YqKCk/CmRpZmYgLS1naXQgYS9MaWIvcGRiLnB5IGIvTGliL3BkYi5weQppbmRleCA2Nzc2YTNmLi4zMDQzMzkxIDEwMDc1NQotLS0gYS9MaWIvcGRiLnB5CisrKyBiL0xpYi9wZGIucHkKQEAgLTczLDYgKzczLDcgQEAKIGltcG9ydCBiZGIKIGltcG9ydCBkaXMKIGltcG9ydCBjb2RlCitpbXBvcnQgZ2xvYgogaW1wb3J0IHBwcmludAogaW1wb3J0IHNpZ25hbAogaW1wb3J0IGluc3BlY3QKQEAgLTE1NSw2ICsxNTYsOCBAQAogICAgICAgICAjIFRyeSB0byBsb2FkIHJlYWRsaW5lIGlmIGl0IGV4aXN0cwogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpbXBvcnQgcmVhZGxpbmUKKyAgICAgICAgICAgICMgcmVtb3ZlIHNvbWUgY29tbW9uIGZpbGUgbmFtZSBkZWxpbWl0ZXJzCisgICAgICAgICAgICByZWFkbGluZS5zZXRfY29tcGxldGVyX2RlbGltcygnIFx0XG5gQCMkJV4mKigpPStbe119XFx8OzpcJyIsPD4/JykKICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxmLmFsbG93X2tiZGludCA9IEZhbHNlCkBAIC00NDUsNiArNDQ4LDYxIEBACiAgICAgZGVmIGVycm9yKHNlbGYsIG1zZyk6CiAgICAgICAgIHByaW50KCcqKionLCBtc2csIGZpbGU9c2VsZi5zdGRvdXQpCiAKKyAgICAjIEdlbmVyaWMgY29tcGxldGlvbiBmdW5jdGlvbnMuICBJbmRpdmlkdWFsIGNvbXBsZXRlX2ZvbyBtZXRob2RzIGNhbiBiZQorICAgICMgYXNzaWduZWQgYmVsb3cgdG8gb25lIG9mIHRoZXNlIGZ1bmN0aW9ucy4KKworICAgIGRlZiBfY29tcGxldGVfbG9jYXRpb24oc2VsZiwgdGV4dCwgbGluZSwgYmVnaWR4LCBlbmRpZHgpOgorICAgICAgICAjIENvbXBsZXRlIGEgZmlsZS9tb2R1bGUvZnVuY3Rpb24gbG9jYXRpb24gZm9yIGJyZWFrL3RicmVhay9jbGVhci4KKyAgICAgICAgaWYgbGluZS5zdHJpcCgpLmVuZHN3aXRoKCgnOicsICcsJykpOgorICAgICAgICAgICAgIyBIZXJlIGNvbWVzIGEgbGluZSBudW1iZXIgb3IgYSBjb25kaXRpb24gd2hpY2ggd2UgY2FuJ3QgY29tcGxldGUuCisgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgIyBGaXJzdCwgdHJ5IHRvIGZpbmQgbWF0Y2hpbmcgZnVuY3Rpb25zIChpLmUuIGV4cHJlc3Npb25zKS4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0ID0gc2VsZi5fY29tcGxldGVfZXhwcmVzc2lvbih0ZXh0LCBsaW5lLCBiZWdpZHgsIGVuZGlkeCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHJldCA9IFtdCisgICAgICAgICMgVGhlbiwgdHJ5IHRvIGNvbXBsZXRlIGZpbGUgbmFtZXMgYXMgd2VsbC4KKyAgICAgICAgZ2xvYnMgPSBnbG9iLmdsb2IodGV4dCArICcqJykKKyAgICAgICAgZm9yIGZuIGluIGdsb2JzOgorICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rpcihmbik6CisgICAgICAgICAgICAgICAgcmV0LmFwcGVuZChmbiArICcvJykKKyAgICAgICAgICAgIGVsaWYgb3MucGF0aC5pc2ZpbGUoZm4pIGFuZCBmbi5sb3dlcigpLmVuZHN3aXRoKCgnLnB5JywgJy5weXcnKSk6CisgICAgICAgICAgICAgICAgcmV0LmFwcGVuZChmbiArICc6JykKKyAgICAgICAgcmV0dXJuIHJldAorCisgICAgZGVmIF9jb21wbGV0ZV9icG51bWJlcihzZWxmLCB0ZXh0LCBsaW5lLCBiZWdpZHgsIGVuZGlkeCk6CisgICAgICAgICMgQ29tcGxldGUgYSBicmVha3BvaW50IG51bWJlci4gIChUaGlzIHdvdWxkIGJlIG1vcmUgaGVscGZ1bCBpZiB3ZSBjb3VsZAorICAgICAgICAjIGRpc3BsYXkgYWRkaXRpb25hbCBpbmZvIGFsb25nIHdpdGggdGhlIGNvbXBsZXRpb25zLCBzdWNoIGFzIGZpbGUvbGluZQorICAgICAgICAjIG9mIHRoZSBicmVha3BvaW50LikKKyAgICAgICAgcmV0dXJuIFtzdHIoaSkgZm9yIGksIGJwIGluIGVudW1lcmF0ZShiZGIuQnJlYWtwb2ludC5icGJ5bnVtYmVyKQorICAgICAgICAgICAgICAgIGlmIGJwIGlzIG5vdCBOb25lIGFuZCBzdHIoaSkuc3RhcnRzd2l0aCh0ZXh0KV0KKworICAgIGRlZiBfY29tcGxldGVfZXhwcmVzc2lvbihzZWxmLCB0ZXh0LCBsaW5lLCBiZWdpZHgsIGVuZGlkeCk6CisgICAgICAgICMgQ29tcGxldGUgYW4gYXJiaXRyYXJ5IGV4cHJlc3Npb24uCisgICAgICAgIGlmIG5vdCBzZWxmLmN1cmZyYW1lOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgICMgQ29sbGVjdCBnbG9iYWxzIGFuZCBsb2NhbHMuICBJdCBpcyB1c3VhbGx5IG5vdCByZWFsbHkgc2Vuc2libGUgdG8gYWxzbworICAgICAgICAjIGNvbXBsZXRlIGJ1aWx0aW5zLCBhbmQgdGhleSBjbHV0dGVyIHRoZSBuYW1lc3BhY2UgcXVpdGUgaGVhdmlseSwgc28gd2UKKyAgICAgICAgIyBsZWF2ZSB0aGVtIG91dC4KKyAgICAgICAgbnMgPSBzZWxmLmN1cmZyYW1lLmZfZ2xvYmFscy5jb3B5KCkKKyAgICAgICAgbnMudXBkYXRlKHNlbGYuY3VyZnJhbWVfbG9jYWxzKQorICAgICAgICBpZiAnLicgaW4gdGV4dDoKKyAgICAgICAgICAgICMgV2FsayBhbiBhdHRyaWJ1dGUgY2hhaW4gdXAgdG8gdGhlIGxhc3QgcGFydCwgc2ltaWxhciB0byB3aGF0CisgICAgICAgICAgICAjIHJsY29tcGxldGVyIGRvZXMuICBUaGlzIHdpbGwgYmFpbCBpZiBhbnkgb2YgdGhlIHBhcnRzIGFyZSBub3QKKyAgICAgICAgICAgICMgc2ltcGxlIGF0dHJpYnV0ZSBhY2Nlc3MsIHdoaWNoIGlzIHdoYXQgd2Ugd2FudC4KKyAgICAgICAgICAgIGRvdHRlZCA9IHRleHQuc3BsaXQoJy4nKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG9iaiA9IG5zW2RvdHRlZFswXV0KKyAgICAgICAgICAgICAgICBmb3IgcGFydCBpbiBkb3R0ZWRbMTotMV06CisgICAgICAgICAgICAgICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCBwYXJ0KQorICAgICAgICAgICAgZXhjZXB0IChLZXlFcnJvciwgQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICAgICAgcHJlZml4ID0gJy4nLmpvaW4oZG90dGVkWzotMV0pICsgJy4nCisgICAgICAgICAgICByZXR1cm4gW3ByZWZpeCArIG4gZm9yIG4gaW4gZGlyKG9iaikgaWYgbi5zdGFydHN3aXRoKGRvdHRlZFstMV0pXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBDb21wbGV0ZSBhIHNpbXBsZSBuYW1lLgorICAgICAgICAgICAgcmV0dXJuIFtuIGZvciBuIGluIG5zLmtleXMoKSBpZiBuLnN0YXJ0c3dpdGgodGV4dCldCisKICAgICAjIENvbW1hbmQgZGVmaW5pdGlvbnMsIGNhbGxlZCBieSBjbWRsb29wKCkKICAgICAjIFRoZSBhcmd1bWVudCBpcyB0aGUgcmVtYWluaW5nIHN0cmluZyBvbiB0aGUgY29tbWFuZCBsaW5lCiAgICAgIyBSZXR1cm4gdHJ1ZSB0byBleGl0IGZyb20gdGhlIGNvbW1hbmQgbG9vcApAQCAtNTI2LDYgKzU4NCw4IEBACiAgICAgICAgICAgICBzZWxmLmNvbW1hbmRzX2RlZmluaW5nID0gRmFsc2UKICAgICAgICAgICAgIHNlbGYucHJvbXB0ID0gcHJvbXB0X2JhY2sKIAorICAgIGNvbXBsZXRlX2NvbW1hbmRzID0gX2NvbXBsZXRlX2JwbnVtYmVyCisKICAgICBkZWYgZG9fYnJlYWsoc2VsZiwgYXJnLCB0ZW1wb3JhcnkgPSAwKToKICAgICAgICAgIiIiYihyZWFrKSBbIChbZmlsZW5hbWU6XWxpbmVubyB8IGZ1bmN0aW9uKSBbLCBjb25kaXRpb25dIF0KICAgICAgICAgV2l0aG91dCBhcmd1bWVudCwgbGlzdCBhbGwgYnJlYWtzLgpAQCAtNjI4LDYgKzY4OCw5IEBACiAKICAgICBkb19iID0gZG9fYnJlYWsKIAorICAgIGNvbXBsZXRlX2JyZWFrID0gX2NvbXBsZXRlX2xvY2F0aW9uCisgICAgY29tcGxldGVfYiA9IF9jb21wbGV0ZV9sb2NhdGlvbgorCiAgICAgZGVmIGRvX3RicmVhayhzZWxmLCBhcmcpOgogICAgICAgICAiIiJ0YnJlYWsgWyAoW2ZpbGVuYW1lOl1saW5lbm8gfCBmdW5jdGlvbikgWywgY29uZGl0aW9uXSBdCiAgICAgICAgIFNhbWUgYXJndW1lbnRzIGFzIGJyZWFrLCBidXQgc2V0cyBhIHRlbXBvcmFyeSBicmVha3BvaW50OiBpdApAQCAtNjM1LDYgKzY5OCw4IEBACiAgICAgICAgICIiIgogICAgICAgICBzZWxmLmRvX2JyZWFrKGFyZywgMSkKIAorICAgIGNvbXBsZXRlX3RicmVhayA9IF9jb21wbGV0ZV9sb2NhdGlvbgorCiAgICAgZGVmIGxpbmVpbmZvKHNlbGYsIGlkZW50aWZpZXIpOgogICAgICAgICBmYWlsZWQgPSAoTm9uZSwgTm9uZSwgTm9uZSkKICAgICAgICAgIyBJbnB1dCBpcyBpZGVudGlmaWVyLCBtYXkgYmUgaW4gc2luZ2xlIHF1b3RlcwpAQCAtNzA0LDYgKzc2OSw4IEBACiAgICAgICAgICAgICAgICAgYnAuZW5hYmxlKCkKICAgICAgICAgICAgICAgICBzZWxmLm1lc3NhZ2UoJ0VuYWJsZWQgJXMnICUgYnApCiAKKyAgICBjb21wbGV0ZV9lbmFibGUgPSBfY29tcGxldGVfYnBudW1iZXIKKwogICAgIGRlZiBkb19kaXNhYmxlKHNlbGYsIGFyZyk6CiAgICAgICAgICIiImRpc2FibGUgYnBudW1iZXIgW2JwbnVtYmVyIC4uLl0KICAgICAgICAgRGlzYWJsZXMgdGhlIGJyZWFrcG9pbnRzIGdpdmVuIGFzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2YKQEAgLTcyMiw2ICs3ODksOCBAQAogICAgICAgICAgICAgICAgIGJwLmRpc2FibGUoKQogICAgICAgICAgICAgICAgIHNlbGYubWVzc2FnZSgnRGlzYWJsZWQgJXMnICUgYnApCiAKKyAgICBjb21wbGV0ZV9kaXNhYmxlID0gX2NvbXBsZXRlX2JwbnVtYmVyCisKICAgICBkZWYgZG9fY29uZGl0aW9uKHNlbGYsIGFyZyk6CiAgICAgICAgICIiImNvbmRpdGlvbiBicG51bWJlciBbY29uZGl0aW9uXQogICAgICAgICBTZXQgYSBuZXcgY29uZGl0aW9uIGZvciB0aGUgYnJlYWtwb2ludCwgYW4gZXhwcmVzc2lvbiB3aGljaApAQCAtNzQ1LDYgKzgxNCw4IEBACiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHNlbGYubWVzc2FnZSgnTmV3IGNvbmRpdGlvbiBzZXQgZm9yIGJyZWFrcG9pbnQgJWQuJyAlIGJwLm51bWJlcikKIAorICAgIGNvbXBsZXRlX2NvbmRpdGlvbiA9IF9jb21wbGV0ZV9icG51bWJlcgorCiAgICAgZGVmIGRvX2lnbm9yZShzZWxmLCBhcmcpOgogICAgICAgICAiIiJpZ25vcmUgYnBudW1iZXIgW2NvdW50XQogICAgICAgICBTZXQgdGhlIGlnbm9yZSBjb3VudCBmb3IgdGhlIGdpdmVuIGJyZWFrcG9pbnQgbnVtYmVyLiAgSWYKQEAgLTc3Niw2ICs4NDcsOCBAQAogICAgICAgICAgICAgICAgIHNlbGYubWVzc2FnZSgnV2lsbCBzdG9wIG5leHQgdGltZSBicmVha3BvaW50ICVkIGlzIHJlYWNoZWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGJwLm51bWJlcikKIAorICAgIGNvbXBsZXRlX2lnbm9yZSA9IF9jb21wbGV0ZV9icG51bWJlcgorCiAgICAgZGVmIGRvX2NsZWFyKHNlbGYsIGFyZyk6CiAgICAgICAgICIiImNsKGVhcikgZmlsZW5hbWU6bGluZW5vXG5jbChlYXIpIFticG51bWJlciBbYnBudW1iZXIuLi5dXQogICAgICAgICBXaXRoIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2YgYnJlYWtwb2ludCBudW1iZXJzLCBjbGVhcgpAQCAtODI0LDYgKzg5Nyw5IEBACiAgICAgICAgICAgICAgICAgc2VsZi5tZXNzYWdlKCdEZWxldGVkICVzJyAlIGJwKQogICAgIGRvX2NsID0gZG9fY2xlYXIgIyAnYycgaXMgYWxyZWFkeSBhbiBhYmJyZXZpYXRpb24gZm9yICdjb250aW51ZScKIAorICAgIGNvbXBsZXRlX2NsZWFyID0gX2NvbXBsZXRlX2xvY2F0aW9uCisgICAgY29tcGxldGVfY2wgPSBfY29tcGxldGVfbG9jYXRpb24KKwogICAgIGRlZiBkb193aGVyZShzZWxmLCBhcmcpOgogICAgICAgICAiIiJ3KGhlcmUpCiAgICAgICAgIFByaW50IGEgc3RhY2sgdHJhY2UsIHdpdGggdGhlIG1vc3QgcmVjZW50IGZyYW1lIGF0IHRoZSBib3R0b20uCkBAIC0xMDA3LDYgKzEwODMsOCBAQAogICAgICAgICBzeXMuc2V0dHJhY2Uoc2VsZi50cmFjZV9kaXNwYXRjaCkKICAgICAgICAgc2VsZi5sYXN0Y21kID0gcC5sYXN0Y21kCiAKKyAgICBjb21wbGV0ZV9kZWJ1ZyA9IF9jb21wbGV0ZV9leHByZXNzaW9uCisKICAgICBkZWYgZG9fcXVpdChzZWxmLCBhcmcpOgogICAgICAgICAiIiJxKHVpdClcbmV4aXQKICAgICAgICAgUXVpdCBmcm9tIHRoZSBkZWJ1Z2dlci4gVGhlIHByb2dyYW0gYmVpbmcgZXhlY3V0ZWQgaXMgYWJvcnRlZC4KQEAgLTEwOTMsNiArMTE3MSwxMCBAQAogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBwYXNzCiAKKyAgICBjb21wbGV0ZV9wcmludCA9IF9jb21wbGV0ZV9leHByZXNzaW9uCisgICAgY29tcGxldGVfcCA9IF9jb21wbGV0ZV9leHByZXNzaW9uCisgICAgY29tcGxldGVfcHAgPSBfY29tcGxldGVfZXhwcmVzc2lvbgorCiAgICAgZGVmIGRvX2xpc3Qoc2VsZiwgYXJnKToKICAgICAgICAgIiIibChpc3QpIFtmaXJzdCBbLGxhc3RdIHwgLl0KIApAQCAtMTE3Myw2ICsxMjU1LDggQEAKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBzZWxmLl9wcmludF9saW5lcyhsaW5lcywgbGluZW5vKQogCisgICAgY29tcGxldGVfc291cmNlID0gX2NvbXBsZXRlX2V4cHJlc3Npb24KKwogICAgIGRlZiBfcHJpbnRfbGluZXMoc2VsZiwgbGluZXMsIHN0YXJ0LCBicmVha3M9KCksIGZyYW1lPU5vbmUpOgogICAgICAgICAiIiJQcmludCBhIHJhbmdlIG9mIGxpbmVzLiIiIgogICAgICAgICBpZiBmcmFtZToKQEAgLTEyMjcsNiArMTMxMSw4IEBACiAgICAgICAgICMgTm9uZSBvZiB0aGUgYWJvdmUuLi4KICAgICAgICAgc2VsZi5tZXNzYWdlKHR5cGUodmFsdWUpKQogCisgICAgY29tcGxldGVfd2hhdGlzID0gX2NvbXBsZXRlX2V4cHJlc3Npb24KKwogICAgIGRlZiBkb19kaXNwbGF5KHNlbGYsIGFyZyk6CiAgICAgICAgICIiImRpc3BsYXkgW2V4cHJlc3Npb25dCiAKQEAgLTEyNDQsNiArMTMzMCw4IEBACiAgICAgICAgICAgICBzZWxmLmRpc3BsYXlpbmcuc2V0ZGVmYXVsdChzZWxmLmN1cmZyYW1lLCB7fSlbYXJnXSA9IHZhbAogICAgICAgICAgICAgc2VsZi5tZXNzYWdlKCdkaXNwbGF5ICVzOiAlcicgJSAoYXJnLCB2YWwpKQogCisgICAgY29tcGxldGVfZGlzcGxheSA9IF9jb21wbGV0ZV9leHByZXNzaW9uCisKICAgICBkZWYgZG9fdW5kaXNwbGF5KHNlbGYsIGFyZyk6CiAgICAgICAgICIiInVuZGlzcGxheSBbZXhwcmVzc2lvbl0KIApAQCAtMTI1OSw2ICsxMzQ3LDEwIEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmRpc3BsYXlpbmcucG9wKHNlbGYuY3VyZnJhbWUsIE5vbmUpCiAKKyAgICBkZWYgY29tcGxldGVfdW5kaXNwbGF5KHNlbGYsIHRleHQsIGxpbmUsIGJlZ2lkeCwgZW5kaWR4KToKKyAgICAgICAgcmV0dXJuIFtlIGZvciBlIGluIHNlbGYuZGlzcGxheWluZy5nZXQoc2VsZi5jdXJmcmFtZSwge30pCisgICAgICAgICAgICAgICAgaWYgZS5zdGFydHN3aXRoKHRleHQpXQorCiAgICAgZGVmIGRvX2ludGVyYWN0KHNlbGYsIGFyZyk6CiAgICAgICAgICIiImludGVyYWN0CiAKQEAgLTEzMTMsNiArMTQwNSw5IEBACiAgICAgICAgIGlmIGFyZ3NbMF0gaW4gc2VsZi5hbGlhc2VzOgogICAgICAgICAgICAgZGVsIHNlbGYuYWxpYXNlc1thcmdzWzBdXQogCisgICAgZGVmIGNvbXBsZXRlX3VuYWxpYXMoc2VsZiwgdGV4dCwgbGluZSwgYmVnaWR4LCBlbmRpZHgpOgorICAgICAgICByZXR1cm4gW2EgZm9yIGEgaW4gc2VsZi5hbGlhc2VzIGlmIGEuc3RhcnRzd2l0aCh0ZXh0KV0KKwogICAgICMgTGlzdCBvZiBhbGwgdGhlIGNvbW1hbmRzIG1ha2luZyB0aGUgcHJvZ3JhbSByZXN1bWUgZXhlY3V0aW9uLgogICAgIGNvbW1hbmRzX3Jlc3VtaW5nID0gWydkb19jb250aW51ZScsICdkb19zdGVwJywgJ2RvX25leHQnLCAnZG9fcmV0dXJuJywKICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9fcXVpdCcsICdkb19qdW1wJ10KZGlmZiAtLWdpdCBhL0xpYi9waWNrbGUucHkgYi9MaWIvcGlja2xlLnB5CmluZGV4IGQxMGFjNzc2Li45ZTY1MzY4IDEwMDY0NAotLS0gYS9MaWIvcGlja2xlLnB5CisrKyBiL0xpYi9waWNrbGUucHkKQEAgLTIzLDggKzIzLDYgQEAKIAogIiIiCiAKLV9fdmVyc2lvbl9fID0gIiRSZXZpc2lvbiQiICAgICAgICMgQ29kZSB2ZXJzaW9uCi0KIGZyb20gdHlwZXMgaW1wb3J0IEZ1bmN0aW9uVHlwZSwgQnVpbHRpbkZ1bmN0aW9uVHlwZQogZnJvbSBjb3B5cmVnIGltcG9ydCBkaXNwYXRjaF90YWJsZQogZnJvbSBjb3B5cmVnIGltcG9ydCBfZXh0ZW5zaW9uX3JlZ2lzdHJ5LCBfaW52ZXJ0ZWRfcmVnaXN0cnksIF9leHRlbnNpb25fY2FjaGUKQEAgLTI5OSw4ICsyOTcsOCBAQAogICAgICAgICAgICAgZihzZWxmLCBvYmopICMgQ2FsbCB1bmJvdW5kIG1ldGhvZCB3aXRoIGV4cGxpY2l0IHNlbGYKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgICMgQ2hlY2sgY29weXJlZy5kaXNwYXRjaF90YWJsZQotICAgICAgICByZWR1Y2UgPSBkaXNwYXRjaF90YWJsZS5nZXQodCkKKyAgICAgICAgIyBDaGVjayBwcml2YXRlIGRpc3BhdGNoIHRhYmxlIGlmIGFueSwgb3IgZWxzZSBjb3B5cmVnLmRpc3BhdGNoX3RhYmxlCisgICAgICAgIHJlZHVjZSA9IGdldGF0dHIoc2VsZiwgJ2Rpc3BhdGNoX3RhYmxlJywgZGlzcGF0Y2hfdGFibGUpLmdldCh0KQogICAgICAgICBpZiByZWR1Y2U6CiAgICAgICAgICAgICBydiA9IHJlZHVjZShvYmopCiAgICAgICAgIGVsc2U6CkBAIC0zNzcsNyArMzc1LDcgQEAKICAgICAgICAgICAgICMgYWxsb3dpbmcgcHJvdG9jb2wgMCBhbmQgMSB0byB3b3JrIG5vcm1hbGx5LiAgRm9yIHRoaXMgdG8KICAgICAgICAgICAgICMgd29yaywgdGhlIGZ1bmN0aW9uIHJldHVybmVkIGJ5IF9fcmVkdWNlX18gc2hvdWxkIGJlCiAgICAgICAgICAgICAjIGNhbGxlZCBfX25ld29ial9fLCBhbmQgaXRzIGZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhCi0gICAgICAgICAgICAjIG5ldy1zdHlsZSBjbGFzcy4gIFRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgX19uZXdvYmpfXworICAgICAgICAgICAgIyBjbGFzcy4gIFRoZSBpbXBsZW1lbnRhdGlvbiBmb3IgX19uZXdvYmpfXwogICAgICAgICAgICAgIyBzaG91bGQgYmUgYXMgZm9sbG93cywgYWx0aG91Z2ggcGlja2xlIGhhcyBubyB3YXkgdG8KICAgICAgICAgICAgICMgdmVyaWZ5IHRoaXM6CiAgICAgICAgICAgICAjCkBAIC00NDAsNiArNDM4LDE0IEBACiAgICAgICAgIHNlbGYud3JpdGUoTk9ORSkKICAgICBkaXNwYXRjaFt0eXBlKE5vbmUpXSA9IHNhdmVfbm9uZQogCisgICAgZGVmIHNhdmVfZWxsaXBzaXMoc2VsZiwgb2JqKToKKyAgICAgICAgc2VsZi5zYXZlX2dsb2JhbChFbGxpcHNpcywgJ0VsbGlwc2lzJykKKyAgICBkaXNwYXRjaFt0eXBlKEVsbGlwc2lzKV0gPSBzYXZlX2VsbGlwc2lzCisKKyAgICBkZWYgc2F2ZV9ub3RpbXBsZW1lbnRlZChzZWxmLCBvYmopOgorICAgICAgICBzZWxmLnNhdmVfZ2xvYmFsKE5vdEltcGxlbWVudGVkLCAnTm90SW1wbGVtZW50ZWQnKQorICAgIGRpc3BhdGNoW3R5cGUoTm90SW1wbGVtZW50ZWQpXSA9IHNhdmVfbm90aW1wbGVtZW50ZWQKKwogICAgIGRlZiBzYXZlX2Jvb2woc2VsZiwgb2JqKToKICAgICAgICAgaWYgc2VsZi5wcm90byA+PSAyOgogICAgICAgICAgICAgc2VsZi53cml0ZShvYmogYW5kIE5FV1RSVUUgb3IgTkVXRkFMU0UpCkBAIC0xMzMyLDcgKzEzMzgsNyBAQAogICAgIHJldHVybiBkb2N0ZXN0LnRlc3Rtb2QoKQogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgIGltcG9ydCBzeXMsIGFyZ3BhcnNlCisgICAgaW1wb3J0IGFyZ3BhcnNlCiAgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoCiAgICAgICAgIGRlc2NyaXB0aW9uPSdkaXNwbGF5IGNvbnRlbnRzIG9mIHRoZSBwaWNrbGUgZmlsZXMnKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCmRpZmYgLS1naXQgYS9MaWIvcGlja2xldG9vbHMucHkgYi9MaWIvcGlja2xldG9vbHMucHkKaW5kZXggZWM2Y2M1My4uNjZmNGVkZCAxMDA2NDQKLS0tIGEvTGliL3BpY2tsZXRvb2xzLnB5CisrKyBiL0xpYi9waWNrbGV0b29scy5weQpAQCAtNTEwLDEwICs1MTAsNyBAQAogICAgIGVsaWYgcyA9PSBiIjAxIjoKICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIGludChzKQotICAgIGV4Y2VwdCBPdmVyZmxvd0Vycm9yOgotICAgICAgICByZXR1cm4gaW50KHMpCisgICAgcmV0dXJuIGludChzKQogCiBkZWYgcmVhZF9kZWNpbWFsbmxfbG9uZyhmKToKICAgICByIiIiCkBAIC0xNjQyLDYgKzE2MzksOCBAQAogICAgICAgaXMgcHVzaGVkIG9uIHRoZSBzdGFjay4KIAogICAgICAgTk9URTogIGNoZWNrcyBmb3IgX19zYWZlX2Zvcl91bnBpY2tsaW5nX18gd2VudCBhd2F5IGluIFB5dGhvbiAyLjMuCisgICAgICBOT1RFOiAgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gb2xkLXN0eWxlIGFuZCBuZXctc3R5bGUgY2xhc3NlcyBkb2VzCisgICAgICAgICAgICAgbm90IG1ha2Ugc2Vuc2UgaW4gUHl0aG9uIDMuCiAgICAgICAiIiIpLAogCiAgICAgSShuYW1lPSdPQkonLApkaWZmIC0tZ2l0IGEvTGliL3BpcGVzLnB5IGIvTGliL3BpcGVzLnB5CmluZGV4IDQyOTcwNTMuLmYxYTE2ZjYgMTAwNjQ0Ci0tLSBhL0xpYi9waXBlcy5weQorKysgYi9MaWIvcGlwZXMucHkKQEAgLTYwLDcgKzYwLDkgQEAKIGltcG9ydCByZQogaW1wb3J0IG9zCiBpbXBvcnQgdGVtcGZpbGUKLWltcG9ydCBzdHJpbmcKKyMgd2UgaW1wb3J0IHRoZSBxdW90ZSBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgbW9kdWxlIGZvciBiYWNrd2FyZCBjb21wYXQKKyMgKHF1b3RlIHVzZWQgdG8gYmUgYW4gdW5kb2N1bWVudGVkIGJ1dCB1c2VkIGZ1bmN0aW9uIGluIHBpcGVzKQorZnJvbSBzaGxleCBpbXBvcnQgcXVvdGUKIAogX19hbGxfXyA9IFsiVGVtcGxhdGUiXQogCkBAIC0yNDMsMjIgKzI0NSwzIEBACiAgICAgICAgIGNtZGxpc3QgPSB0cmFwY21kICsgJ1xuJyArIGNtZGxpc3QgKyAnXG4nICsgcm1jbWQKICAgICAjCiAgICAgcmV0dXJuIGNtZGxpc3QKLQotCi0jIFJlbGlhYmx5IHF1b3RlIGEgc3RyaW5nIGFzIGEgc2luZ2xlIGFyZ3VtZW50IGZvciAvYmluL3NoCi0KLSMgU2FmZSB1bnF1b3RlZAotX3NhZmVjaGFycyA9IGZyb3plbnNldChzdHJpbmcuYXNjaWlfbGV0dGVycyArIHN0cmluZy5kaWdpdHMgKyAnQCVfLSs9OiwuLycpCi0KLWRlZiBxdW90ZShmaWxlKToKLSAgICAiIiJSZXR1cm4gYSBzaGVsbC1lc2NhcGVkIHZlcnNpb24gb2YgdGhlIGZpbGUgc3RyaW5nLiIiIgotICAgIGZvciBjIGluIGZpbGU6Ci0gICAgICAgIGlmIGMgbm90IGluIF9zYWZlY2hhcnM6Ci0gICAgICAgICAgICBicmVhawotICAgIGVsc2U6Ci0gICAgICAgIGlmIG5vdCBmaWxlOgotICAgICAgICAgICAgcmV0dXJuICInJyIKLSAgICAgICAgcmV0dXJuIGZpbGUKLSAgICAjIHVzZSBzaW5nbGUgcXVvdGVzLCBhbmQgcHV0IHNpbmdsZSBxdW90ZXMgaW50byBkb3VibGUgcXVvdGVzCi0gICAgIyB0aGUgc3RyaW5nICQnYiBpcyB0aGVuIHF1b3RlZCBhcyAnJCciJyInYicKLSAgICByZXR1cm4gIiciICsgZmlsZS5yZXBsYWNlKCInIiwgIidcIidcIiciKSArICInIgpkaWZmIC0tZ2l0IGEvTGliL3BrZ3V0aWwucHkgYi9MaWIvcGtndXRpbC5weQppbmRleCA1MWRhMGIxLi5jNWIwYzRkIDEwMDY0NAotLS0gYS9MaWIvcGtndXRpbC5weQorKysgYi9MaWIvcGtndXRpbC5weQpAQCAtMjEsNyArMjEsNyBAQAogICAgIGlmIG1hZ2ljICE9IGltcC5nZXRfbWFnaWMoKToKICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgIHN0cmVhbS5yZWFkKDQpICMgU2tpcCB0aW1lc3RhbXAKKyAgICBzdHJlYW0ucmVhZCg4KSAjIFNraXAgdGltZXN0YW1wIGFuZCBzaXplCiAgICAgcmV0dXJuIG1hcnNoYWwubG9hZChzdHJlYW0pCiAKIApAQCAtMjU2LDcgKzI1Niw3IEBACiAgICAgICAgIGlmIHNlbGYuZmlsZSBhbmQgc2VsZi5maWxlLmNsb3NlZDoKICAgICAgICAgICAgIG1vZF90eXBlID0gc2VsZi5ldGNbMl0KICAgICAgICAgICAgIGlmIG1vZF90eXBlPT1pbXAuUFlfU09VUkNFOgotICAgICAgICAgICAgICAgIHNlbGYuZmlsZSA9IG9wZW4oc2VsZi5maWxlbmFtZSwgJ3JVJykKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGUgPSBvcGVuKHNlbGYuZmlsZW5hbWUsICdyJykKICAgICAgICAgICAgIGVsaWYgbW9kX3R5cGUgaW4gKGltcC5QWV9DT01QSUxFRCwgaW1wLkNfRVhURU5TSU9OKToKICAgICAgICAgICAgICAgICBzZWxmLmZpbGUgPSBvcGVuKHNlbGYuZmlsZW5hbWUsICdyYicpCiAKQEAgLTMwMSw3ICszMDEsNyBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLmZpbGUuY2xvc2UoKQogICAgICAgICAgICAgZWxpZiBtb2RfdHlwZT09aW1wLlBZX0NPTVBJTEVEOgogICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNlbGYuZmlsZW5hbWVbOi0xXSk6Ci0gICAgICAgICAgICAgICAgICAgIGYgPSBvcGVuKHNlbGYuZmlsZW5hbWVbOi0xXSwgJ3JVJykKKyAgICAgICAgICAgICAgICAgICAgZiA9IG9wZW4oc2VsZi5maWxlbmFtZVs6LTFdLCAncicpCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc291cmNlID0gZi5yZWFkKCkKICAgICAgICAgICAgICAgICAgICAgZi5jbG9zZSgpCiAgICAgICAgICAgICBlbGlmIG1vZF90eXBlPT1pbXAuUEtHX0RJUkVDVE9SWToKQEAgLTMxNSw5ICszMTUsOSBAQAogICAgIGRlZiBnZXRfZmlsZW5hbWUoc2VsZiwgZnVsbG5hbWU9Tm9uZSk6CiAgICAgICAgIGZ1bGxuYW1lID0gc2VsZi5fZml4X25hbWUoZnVsbG5hbWUpCiAgICAgICAgIG1vZF90eXBlID0gc2VsZi5ldGNbMl0KLSAgICAgICAgaWYgc2VsZi5ldGNbMl09PWltcC5QS0dfRElSRUNUT1JZOgorICAgICAgICBpZiBtb2RfdHlwZT09aW1wLlBLR19ESVJFQ1RPUlk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fZ2V0X2RlbGVnYXRlKCkuZ2V0X2ZpbGVuYW1lKCkKLSAgICAgICAgZWxpZiBzZWxmLmV0Y1syXSBpbiAoaW1wLlBZX1NPVVJDRSwgaW1wLlBZX0NPTVBJTEVELCBpbXAuQ19FWFRFTlNJT04pOgorICAgICAgICBlbGlmIG1vZF90eXBlIGluIChpbXAuUFlfU09VUkNFLCBpbXAuUFlfQ09NUElMRUQsIGltcC5DX0VYVEVOU0lPTik6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5maWxlbmFtZQogICAgICAgICByZXR1cm4gTm9uZQogCkBAIC0zNzksMTggKzM3OSwxNSBAQAogICAgICAgICBmb3IgcGF0aF9ob29rIGluIHN5cy5wYXRoX2hvb2tzOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGltcG9ydGVyID0gcGF0aF9ob29rKHBhdGhfaXRlbSkKKyAgICAgICAgICAgICAgICBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZS5zZXRkZWZhdWx0KHBhdGhfaXRlbSwgaW1wb3J0ZXIpCiAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpbXBvcnRlciA9IE5vbmUKLSAgICAgICAgc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGUuc2V0ZGVmYXVsdChwYXRoX2l0ZW0sIGltcG9ydGVyKQotCi0gICAgaWYgaW1wb3J0ZXIgaXMgTm9uZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW1wb3J0ZXIgPSBJbXBJbXBvcnRlcihwYXRoX2l0ZW0pCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIGltcG9ydGVyID0gTm9uZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGltcG9ydGVyID0gSW1wSW1wb3J0ZXIocGF0aF9pdGVtKQorICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICAgICAgICAgIGltcG9ydGVyID0gTm9uZQogICAgIHJldHVybiBpbXBvcnRlcgogCiAKQEAgLTQ2OSw2ICs0NjYsOCBAQAogICAgIHBsYXRmb3JtLXNwZWNpZmljIHNwZWNpYWwgaW1wb3J0IGxvY2F0aW9ucyBzdWNoIGFzIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LgogICAgICIiIgogICAgIGZvciBpbXBvcnRlciBpbiBpdGVyX2ltcG9ydGVycyhmdWxsbmFtZSk6CisgICAgICAgIGlmIGltcG9ydGVyIGlzIE5vbmU6CisgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBsb2FkZXIgPSBpbXBvcnRlci5maW5kX21vZHVsZShmdWxsbmFtZSkKICAgICAgICAgaWYgbG9hZGVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgcmV0dXJuIGxvYWRlcgpAQCAtNTE2LDE5ICs1MTUsMjkgQEAKIAogICAgIHBuYW1lID0gb3MucGF0aC5qb2luKCpuYW1lLnNwbGl0KCcuJykpICMgUmVjb25zdGl0dXRlIGFzIHJlbGF0aXZlIHBhdGgKICAgICBzbmFtZV9wa2cgPSBuYW1lICsgIi5wa2ciCi0gICAgaW5pdF9weSA9ICJfX2luaXRfXy5weSIKIAogICAgIHBhdGggPSBwYXRoWzpdICMgU3RhcnQgd2l0aCBhIGNvcHkgb2YgdGhlIGV4aXN0aW5nIHBhdGgKIAogICAgIGZvciBkaXIgaW4gc3lzLnBhdGg6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRpciwgc3RyKSBvciBub3Qgb3MucGF0aC5pc2RpcihkaXIpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShkaXIsIHN0cik6CiAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICBzdWJkaXIgPSBvcy5wYXRoLmpvaW4oZGlyLCBwbmFtZSkKLSAgICAgICAgIyBYWFggVGhpcyBtYXkgc3RpbGwgYWRkIGR1cGxpY2F0ZSBlbnRyaWVzIHRvIHBhdGggb24KLSAgICAgICAgIyBjYXNlLWluc2Vuc2l0aXZlIGZpbGVzeXN0ZW1zCi0gICAgICAgIGluaXRmaWxlID0gb3MucGF0aC5qb2luKHN1YmRpciwgaW5pdF9weSkKLSAgICAgICAgaWYgc3ViZGlyIG5vdCBpbiBwYXRoIGFuZCBvcy5wYXRoLmlzZmlsZShpbml0ZmlsZSk6Ci0gICAgICAgICAgICBwYXRoLmFwcGVuZChzdWJkaXIpCisKKyAgICAgICAgZmluZGVyID0gZ2V0X2ltcG9ydGVyKGRpcikKKyAgICAgICAgaWYgZmluZGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyBJcyB0aGlzIGZpbmRlciBQRVAgNDIwIGNvbXBsaWFudD8KKyAgICAgICAgICAgIGlmIGhhc2F0dHIoZmluZGVyLCAnZmluZF9sb2FkZXInKToKKyAgICAgICAgICAgICAgICBsb2FkZXIsIHBvcnRpb25zID0gZmluZGVyLmZpbmRfbG9hZGVyKG5hbWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgTm8sIG5vIG5lZWQgdG8gY2FsbCBpdAorICAgICAgICAgICAgICAgIGxvYWRlciA9IE5vbmUKKyAgICAgICAgICAgICAgICBwb3J0aW9ucyA9IFtdCisKKyAgICAgICAgICAgIGZvciBwb3J0aW9uIGluIHBvcnRpb25zOgorICAgICAgICAgICAgICAgICMgWFhYIFRoaXMgbWF5IHN0aWxsIGFkZCBkdXBsaWNhdGUgZW50cmllcyB0byBwYXRoIG9uCisgICAgICAgICAgICAgICAgIyBjYXNlLWluc2Vuc2l0aXZlIGZpbGVzeXN0ZW1zCisgICAgICAgICAgICAgICAgaWYgcG9ydGlvbiBub3QgaW4gcGF0aDoKKyAgICAgICAgICAgICAgICAgICAgcGF0aC5hcHBlbmQocG9ydGlvbikKKwogICAgICAgICAjIFhYWCBJcyB0aGlzIHRoZSByaWdodCB0aGluZyBmb3Igc3VicGFja2FnZXMgbGlrZSB6b3BlLmFwcD8KICAgICAgICAgIyBJdCBsb29rcyBmb3IgYSBmaWxlIG5hbWVkICJ6b3BlLmFwcC5wa2ciCiAgICAgICAgIHBrZ2ZpbGUgPSBvcy5wYXRoLmpvaW4oZGlyLCBzbmFtZV9wa2cpCmRpZmYgLS1naXQgYS9MaWIvcGxhdC1saW51eDIvQ0RST00ucHkgYi9MaWIvcGxhdC1saW51eC9DRFJPTS5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL3BsYXQtbGludXgyL0NEUk9NLnB5CnJlbmFtZSB0byBMaWIvcGxhdC1saW51eC9DRFJPTS5weQpkaWZmIC0tZ2l0IGEvTGliL3BsYXQtbGludXgyL0RMRkNOLnB5IGIvTGliL3BsYXQtbGludXgvRExGQ04ucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9wbGF0LWxpbnV4Mi9ETEZDTi5weQpyZW5hbWUgdG8gTGliL3BsYXQtbGludXgvRExGQ04ucHkKZGlmZiAtLWdpdCBhL0xpYi9wbGF0LWxpbnV4Mi9JTi5weSBiL0xpYi9wbGF0LWxpbnV4L0lOLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvcGxhdC1saW51eDIvSU4ucHkKcmVuYW1lIHRvIExpYi9wbGF0LWxpbnV4L0lOLnB5CmRpZmYgLS1naXQgYS9MaWIvcGxhdC1saW51eDIvVFlQRVMucHkgYi9MaWIvcGxhdC1saW51eC9UWVBFUy5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL3BsYXQtbGludXgyL1RZUEVTLnB5CnJlbmFtZSB0byBMaWIvcGxhdC1saW51eC9UWVBFUy5weQpkaWZmIC0tZ2l0IGEvTGliL3BsYXQtbGludXgyL3JlZ2VuIGIvTGliL3BsYXQtbGludXgvcmVnZW4Kc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9wbGF0LWxpbnV4Mi9yZWdlbgpyZW5hbWUgdG8gTGliL3BsYXQtbGludXgvcmVnZW4KZGlmZiAtLWdpdCBhL0xpYi9wbGF0Zm9ybS5weSBiL0xpYi9wbGF0Zm9ybS5weQppbmRleCA5ODVhOWY4Li5iNjUzODIyIDEwMDc1NQotLS0gYS9MaWIvcGxhdGZvcm0ucHkKKysrIGIvTGliL3BsYXRmb3JtLnB5CkBAIC0xMTEsNiArMTExLDcgQEAKIAogX192ZXJzaW9uX18gPSAnMS4wLjcnCiAKK2ltcG9ydCBjb2xsZWN0aW9ucwogaW1wb3J0IHN5cywgb3MsIHJlCiAKICMjIyBHbG9iYWxzICYgQ29uc3RhbnRzCkBAIC0xMzAsMTUgKzEzMSwxNSBAQAogCiAjIyMgUGxhdGZvcm0gc3BlY2lmaWMgQVBJcwogCi1fbGliY19zZWFyY2ggPSByZS5jb21waWxlKHInKF9fbGliY19pbml0KScKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3wnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcoR0xJQkNfKFswLTkuXSspKScKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3wnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcobGliYyhfXHcrKT9cLnNvKD86XC4oXGRbMC05Ll0qKSk/KScsIHJlLkFTQ0lJKQorX2xpYmNfc2VhcmNoID0gcmUuY29tcGlsZShiJyhfX2xpYmNfaW5pdCknCisgICAgICAgICAgICAgICAgICAgICAgICAgIGInfCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYicoR0xJQkNfKFswLTkuXSspKScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYid8JworICAgICAgICAgICAgICAgICAgICAgICAgICBicicobGliYyhfXHcrKT9cLnNvKD86XC4oXGRbMC05Ll0qKSk/KScsIHJlLkFTQ0lJKQogCiBkZWYgbGliY192ZXIoZXhlY3V0YWJsZT1zeXMuZXhlY3V0YWJsZSxsaWI9JycsdmVyc2lvbj0nJywKIAotICAgICAgICAgICAgIGNodW5rc2l6ZT0yMDQ4KToKKyAgICAgICAgICAgICBjaHVua3NpemU9MTYzODQpOgogCiAgICAgIiIiIFRyaWVzIHRvIGRldGVybWluZSB0aGUgbGliYyB2ZXJzaW9uIHRoYXQgdGhlIGZpbGUgZXhlY3V0YWJsZQogICAgICAgICAod2hpY2ggZGVmYXVsdHMgdG8gdGhlIFB5dGhvbiBpbnRlcnByZXRlcikgaXMgbGlua2VkIGFnYWluc3QuCkBAIC0xNTksMTcgKzE2MCwyMiBAQAogICAgICAgICAjIGFibGUgdG8gb3BlbiBzeW1saW5rcyBmb3IgcmVhZGluZwogICAgICAgICBleGVjdXRhYmxlID0gb3MucGF0aC5yZWFscGF0aChleGVjdXRhYmxlKQogICAgIGYgPSBvcGVuKGV4ZWN1dGFibGUsJ3JiJykKLSAgICBiaW5hcnkgPSBmLnJlYWQoY2h1bmtzaXplKS5kZWNvZGUoJ2xhdGluLTEnKQorICAgIGJpbmFyeSA9IGYucmVhZChjaHVua3NpemUpCiAgICAgcG9zID0gMAogICAgIHdoaWxlIDE6Ci0gICAgICAgIG0gPSBfbGliY19zZWFyY2guc2VhcmNoKGJpbmFyeSxwb3MpCisgICAgICAgIGlmIGInbGliYycgaW4gYmluYXJ5IG9yIGInR0xJQkMnIGluIGJpbmFyeToKKyAgICAgICAgICAgIG0gPSBfbGliY19zZWFyY2guc2VhcmNoKGJpbmFyeSxwb3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtID0gTm9uZQogICAgICAgICBpZiBub3QgbToKLSAgICAgICAgICAgIGJpbmFyeSA9IGYucmVhZChjaHVua3NpemUpLmRlY29kZSgnbGF0aW4tMScpCisgICAgICAgICAgICBiaW5hcnkgPSBmLnJlYWQoY2h1bmtzaXplKQogICAgICAgICAgICAgaWYgbm90IGJpbmFyeToKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgcG9zID0gMAogICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgbGliY2luaXQsZ2xpYmMsZ2xpYmN2ZXJzaW9uLHNvLHRocmVhZHMsc292ZXJzaW9uID0gbS5ncm91cHMoKQorICAgICAgICBsaWJjaW5pdCxnbGliYyxnbGliY3ZlcnNpb24sc28sdGhyZWFkcyxzb3ZlcnNpb24gPSBbCisgICAgICAgICAgICBzLmRlY29kZSgnbGF0aW4xJykgaWYgcyBpcyBub3QgTm9uZSBlbHNlIHMKKyAgICAgICAgICAgIGZvciBzIGluIG0uZ3JvdXBzKCldCiAgICAgICAgIGlmIGxpYmNpbml0IGFuZCBub3QgbGliOgogICAgICAgICAgICAgbGliID0gJ2xpYmMnCiAgICAgICAgIGVsaWYgZ2xpYmM6CkBAIC0yNTUsNyArMjYxLDcgQEAKIF9zdXBwb3J0ZWRfZGlzdHMgPSAoCiAgICAgJ1N1U0UnLCAnZGViaWFuJywgJ2ZlZG9yYScsICdyZWRoYXQnLCAnY2VudG9zJywKICAgICAnbWFuZHJha2UnLCAnbWFuZHJpdmEnLCAncm9ja3MnLCAnc2xhY2t3YXJlJywgJ3llbGxvd2RvZycsICdnZW50b28nLAotICAgICdVbml0ZWRMaW51eCcsICd0dXJib2xpbnV4JykKKyAgICAnVW5pdGVkTGludXgnLCAndHVyYm9saW51eCcsICdhcmNoJywgJ21hZ2VpYScpCiAKIGRlZiBfcGFyc2VfcmVsZWFzZV9maWxlKGZpcnN0bGluZSk6CiAKQEAgLTM1Nyw5MiArMzYzLDEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRfZGlzdHM9c3VwcG9ydGVkX2Rpc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbF9kaXN0cmlidXRpb25fbmFtZT0wKQogCi1jbGFzcyBfcG9wZW46Ci0KLSAgICAiIiIgRmFpcmx5IHBvcnRhYmxlIChhbHRlcm5hdGl2ZSkgcG9wZW4gaW1wbGVtZW50YXRpb24uCi0KLSAgICAgICAgVGhpcyBpcyBtb3N0bHkgbmVlZGVkIGluIGNhc2Ugb3MucG9wZW4oKSBpcyBub3QgYXZhaWxhYmxlLCBvcgotICAgICAgICBkb2Vzbid0IHdvcmsgYXMgYWR2ZXJ0aXNlZCwgZS5nLiBpbiBXaW45WCBHVUkgcHJvZ3JhbXMgbGlrZQotICAgICAgICBQeXRob25XaW4gb3IgSURMRS4KLQotICAgICAgICBXcml0aW5nIHRvIHRoZSBwaXBlIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkLgotCi0gICAgIiIiCi0gICAgdG1wZmlsZSA9ICcnCi0gICAgcGlwZSA9IE5vbmUKLSAgICBidWZzaXplID0gTm9uZQotICAgIG1vZGUgPSAncicKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLGNtZCxtb2RlPSdyJyxidWZzaXplPU5vbmUpOgotCi0gICAgICAgIGlmIG1vZGUgIT0gJ3InOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigncG9wZW4oKS1lbXVsYXRpb24gb25seSBzdXBwb3J0cyByZWFkIG1vZGUnKQotICAgICAgICBpbXBvcnQgdGVtcGZpbGUKLSAgICAgICAgc2VsZi50bXBmaWxlID0gdG1wZmlsZSA9IHRlbXBmaWxlLm1rdGVtcCgpCi0gICAgICAgIG9zLnN5c3RlbShjbWQgKyAnID4gJXMnICUgdG1wZmlsZSkKLSAgICAgICAgc2VsZi5waXBlID0gb3Blbih0bXBmaWxlLCdyYicpCi0gICAgICAgIHNlbGYuYnVmc2l6ZSA9IGJ1ZnNpemUKLSAgICAgICAgc2VsZi5tb2RlID0gbW9kZQotCi0gICAgZGVmIHJlYWQoc2VsZik6Ci0KLSAgICAgICAgcmV0dXJuIHNlbGYucGlwZS5yZWFkKCkKLQotICAgIGRlZiByZWFkbGluZXMoc2VsZik6Ci0KLSAgICAgICAgaWYgc2VsZi5idWZzaXplIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYucGlwZS5yZWFkbGluZXMoKQotCi0gICAgZGVmIGNsb3NlKHNlbGYsCi0KLSAgICAgICAgICAgICAgcmVtb3ZlPW9zLnVubGluayxlcnJvcj1vcy5lcnJvcik6Ci0KLSAgICAgICAgaWYgc2VsZi5waXBlOgotICAgICAgICAgICAgcmMgPSBzZWxmLnBpcGUuY2xvc2UoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmMgPSAyNTUKLSAgICAgICAgaWYgc2VsZi50bXBmaWxlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJlbW92ZShzZWxmLnRtcGZpbGUpCi0gICAgICAgICAgICBleGNlcHQgZXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAgICAgICByZXR1cm4gcmMKLQotICAgICMgQWxpYXMKLSAgICBfX2RlbF9fID0gY2xvc2UKLQogZGVmIHBvcGVuKGNtZCwgbW9kZT0ncicsIGJ1ZnNpemU9LTEpOgogCiAgICAgIiIiIFBvcnRhYmxlIHBvcGVuKCkgaW50ZXJmYWNlLgogICAgICIiIgotICAgICMgRmluZCBhIHdvcmtpbmcgcG9wZW4gaW1wbGVtZW50YXRpb24gcHJlZmVycmluZyB3aW4zMnBpcGUucG9wZW4KLSAgICAjIG92ZXIgb3MucG9wZW4gb3ZlciBfcG9wZW4KLSAgICBwb3BlbiA9IE5vbmUKLSAgICBpZiBvcy5lbnZpcm9uLmdldCgnT1MnLCcnKSA9PSAnV2luZG93c19OVCc6Ci0gICAgICAgICMgT24gTlQgd2luMzJwaXBlIHNob3VsZCB3b3JrOyBvbiBXaW45eCBpdCBoYW5ncyBkdWUgdG8gYnVncwotICAgICAgICAjIGluIHRoZSBNUyBDIGxpYiAoc2VlIE1TIEtub3dsZWRnZUJhc2UgYXJ0aWNsZSBRMTUwOTU2KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbXBvcnQgd2luMzJwaXBlCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHBvcGVuID0gd2luMzJwaXBlLnBvcGVuCi0gICAgaWYgcG9wZW4gaXMgTm9uZToKLSAgICAgICAgaWYgaGFzYXR0cihvcywncG9wZW4nKToKLSAgICAgICAgICAgIHBvcGVuID0gb3MucG9wZW4KLSAgICAgICAgICAgICMgQ2hlY2sgd2hldGhlciBpdCB3b3Jrcy4uLiBpdCBkb2Vzbid0IGluIEdVSSBwcm9ncmFtcwotICAgICAgICAgICAgIyBvbiBXaW5kb3dzIHBsYXRmb3JtcwotICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6ICMgWFhYIE90aGVycyB0b28gPwotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgcG9wZW4oJycpCi0gICAgICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgotICAgICAgICAgICAgICAgICAgICBwb3BlbiA9IF9wb3BlbgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcG9wZW4gPSBfcG9wZW4KLSAgICBpZiBidWZzaXplIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBwb3BlbihjbWQsbW9kZSkKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gcG9wZW4oY21kLG1vZGUsYnVmc2l6ZSkKKyAgICBpbXBvcnQgd2FybmluZ3MKKyAgICB3YXJuaW5ncy53YXJuKCd1c2Ugb3MucG9wZW4gaW5zdGVhZCcsIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQorICAgIHJldHVybiBvcy5wb3BlbihjbWQsIG1vZGUsIGJ1ZnNpemUpCiAKIGRlZiBfbm9ybV92ZXJzaW9uKHZlcnNpb24sIGJ1aWxkPScnKToKIApAQCAtNzc0LDcgKzcwMSw3IEBACiAgICAgcGwgPSBwbGlzdGxpYi5yZWFkUGxpc3QoZm4pCiAgICAgcmVsZWFzZSA9IHBsWydQcm9kdWN0VmVyc2lvbiddCiAgICAgdmVyc2lvbmluZm89KCcnLCAnJywgJycpCi0gICAgbWFjaGluZSA9IG9zLnVuYW1lKClbNF0KKyAgICBtYWNoaW5lID0gb3MudW5hbWUoKS5tYWNoaW5lCiAgICAgaWYgbWFjaGluZSBpbiAoJ3BwYycsICdQb3dlciBNYWNpbnRvc2gnKToKICAgICAgICAgIyBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBnZXN0YWx0IGJhc2VkIGNvZGUKICAgICAgICAgbWFjaGluZSA9ICdQb3dlclBDJwpAQCAtMTEwMSw2ICsxMDI4LDkgQEAKIAogIyMjIFBvcnRhYmxlIHVuYW1lKCkgaW50ZXJmYWNlCiAKK3VuYW1lX3Jlc3VsdCA9IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoInVuYW1lX3Jlc3VsdCIsCisgICAgICAgICAgICAgICAgICAgICJzeXN0ZW0gbm9kZSByZWxlYXNlIHZlcnNpb24gbWFjaGluZSBwcm9jZXNzb3IiKQorCiBfdW5hbWVfY2FjaGUgPSBOb25lCiAKIGRlZiB1bmFtZSgpOgpAQCAtMTIzNSw3ICsxMTY1LDcgQEAKICAgICAgICAgc3lzdGVtID0gJ1dpbmRvd3MnCiAgICAgICAgIHJlbGVhc2UgPSAnVmlzdGEnCiAKLSAgICBfdW5hbWVfY2FjaGUgPSBzeXN0ZW0sbm9kZSxyZWxlYXNlLHZlcnNpb24sbWFjaGluZSxwcm9jZXNzb3IKKyAgICBfdW5hbWVfY2FjaGUgPSB1bmFtZV9yZXN1bHQoc3lzdGVtLG5vZGUscmVsZWFzZSx2ZXJzaW9uLG1hY2hpbmUscHJvY2Vzc29yKQogICAgIHJldHVybiBfdW5hbWVfY2FjaGUKIAogIyMjIERpcmVjdCBpbnRlcmZhY2VzIHRvIHNvbWUgb2YgdGhlIHVuYW1lKCkgcmV0dXJuIHZhbHVlcwpAQCAtMTI0Nyw3ICsxMTc3LDcgQEAKICAgICAgICAgQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGlmIHRoZSB2YWx1ZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZC4KIAogICAgICIiIgotICAgIHJldHVybiB1bmFtZSgpWzBdCisgICAgcmV0dXJuIHVuYW1lKCkuc3lzdGVtCiAKIGRlZiBub2RlKCk6CiAKQEAgLTEyNTcsNyArMTE4Nyw3IEBACiAgICAgICAgIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIGRldGVybWluZWQuCiAKICAgICAiIiIKLSAgICByZXR1cm4gdW5hbWUoKVsxXQorICAgIHJldHVybiB1bmFtZSgpLm5vZGUKIAogZGVmIHJlbGVhc2UoKToKIApAQCAtMTI2Niw3ICsxMTk2LDcgQEAKICAgICAgICAgQW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkIGlmIHRoZSB2YWx1ZSBjYW5ub3QgYmUgZGV0ZXJtaW5lZC4KIAogICAgICIiIgotICAgIHJldHVybiB1bmFtZSgpWzJdCisgICAgcmV0dXJuIHVuYW1lKCkucmVsZWFzZQogCiBkZWYgdmVyc2lvbigpOgogCkBAIC0xMjc1LDcgKzEyMDUsNyBAQAogICAgICAgICBBbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSBkZXRlcm1pbmVkLgogCiAgICAgIiIiCi0gICAgcmV0dXJuIHVuYW1lKClbM10KKyAgICByZXR1cm4gdW5hbWUoKS52ZXJzaW9uCiAKIGRlZiBtYWNoaW5lKCk6CiAKQEAgLTEyODQsNyArMTIxNCw3IEBACiAgICAgICAgIEFuIGVtcHR5IHN0cmluZyBpcyByZXR1cm5lZCBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIGRldGVybWluZWQuCiAKICAgICAiIiIKLSAgICByZXR1cm4gdW5hbWUoKVs0XQorICAgIHJldHVybiB1bmFtZSgpLm1hY2hpbmUKIAogZGVmIHByb2Nlc3NvcigpOgogCkBAIC0xMjk2LDcgKzEyMjYsNyBAQAogICAgICAgICBlLmcuICBOZXRCU0QgZG9lcyB0aGlzLgogCiAgICAgIiIiCi0gICAgcmV0dXJuIHVuYW1lKClbNV0KKyAgICByZXR1cm4gdW5hbWUoKS5wcm9jZXNzb3IKIAogIyMjIFZhcmlvdXMgQVBJcyBmb3IgZXh0cmFjdGluZyBpbmZvcm1hdGlvbiBmcm9tIHN5cy52ZXJzaW9uCiAKZGlmZiAtLWdpdCBhL0xpYi9wbGlzdGxpYi5weSBiL0xpYi9wbGlzdGxpYi5weQppbmRleCAyZTdlNTEyLi40MWZkOGYyIDEwMDY0NAotLS0gYS9MaWIvcGxpc3RsaWIucHkKKysrIGIvTGliL3BsaXN0bGliLnB5CkBAIC0yMzcsMjAgKzIzNywyNiBAQAogICAgICAgICBzZWxmLmVuZEVsZW1lbnQoImRhdGEiKQogCiAgICAgZGVmIHdyaXRlRGljdChzZWxmLCBkKToKLSAgICAgICAgc2VsZi5iZWdpbkVsZW1lbnQoImRpY3QiKQotICAgICAgICBpdGVtcyA9IHNvcnRlZChkLml0ZW1zKCkpCi0gICAgICAgIGZvciBrZXksIHZhbHVlIGluIGl0ZW1zOgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoa2V5LCBzdHIpOgotICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigia2V5cyBtdXN0IGJlIHN0cmluZ3MiKQotICAgICAgICAgICAgc2VsZi5zaW1wbGVFbGVtZW50KCJrZXkiLCBrZXkpCi0gICAgICAgICAgICBzZWxmLndyaXRlVmFsdWUodmFsdWUpCi0gICAgICAgIHNlbGYuZW5kRWxlbWVudCgiZGljdCIpCisgICAgICAgIGlmIGQ6CisgICAgICAgICAgICBzZWxmLmJlZ2luRWxlbWVudCgiZGljdCIpCisgICAgICAgICAgICBpdGVtcyA9IHNvcnRlZChkLml0ZW1zKCkpCisgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBpdGVtczoKKyAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShrZXksIHN0cik6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigia2V5cyBtdXN0IGJlIHN0cmluZ3MiKQorICAgICAgICAgICAgICAgIHNlbGYuc2ltcGxlRWxlbWVudCgia2V5Iiwga2V5KQorICAgICAgICAgICAgICAgIHNlbGYud3JpdGVWYWx1ZSh2YWx1ZSkKKyAgICAgICAgICAgIHNlbGYuZW5kRWxlbWVudCgiZGljdCIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnNpbXBsZUVsZW1lbnQoImRpY3QiKQogCiAgICAgZGVmIHdyaXRlQXJyYXkoc2VsZiwgYXJyYXkpOgotICAgICAgICBzZWxmLmJlZ2luRWxlbWVudCgiYXJyYXkiKQotICAgICAgICBmb3IgdmFsdWUgaW4gYXJyYXk6Ci0gICAgICAgICAgICBzZWxmLndyaXRlVmFsdWUodmFsdWUpCi0gICAgICAgIHNlbGYuZW5kRWxlbWVudCgiYXJyYXkiKQorICAgICAgICBpZiBhcnJheToKKyAgICAgICAgICAgIHNlbGYuYmVnaW5FbGVtZW50KCJhcnJheSIpCisgICAgICAgICAgICBmb3IgdmFsdWUgaW4gYXJyYXk6CisgICAgICAgICAgICAgICAgc2VsZi53cml0ZVZhbHVlKHZhbHVlKQorICAgICAgICAgICAgc2VsZi5lbmRFbGVtZW50KCJhcnJheSIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnNpbXBsZUVsZW1lbnQoImFycmF5IikKIAogCiBjbGFzcyBfSW50ZXJuYWxEaWN0KGRpY3QpOgpAQCAtMjY2LDEzICsyNzIsMTMgQEAKICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKGF0dHIpCiAgICAgICAgIGZyb20gd2FybmluZ3MgaW1wb3J0IHdhcm4KICAgICAgICAgd2FybigiQXR0cmlidXRlIGFjY2VzcyBmcm9tIHBsaXN0IGRpY3RzIGlzIGRlcHJlY2F0ZWQsIHVzZSBkW2tleV0gIgotICAgICAgICAgICAgICJub3RhdGlvbiBpbnN0ZWFkIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgICAgICAibm90YXRpb24gaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgcmV0dXJuIHZhbHVlCiAKICAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgYXR0ciwgdmFsdWUpOgogICAgICAgICBmcm9tIHdhcm5pbmdzIGltcG9ydCB3YXJuCiAgICAgICAgIHdhcm4oIkF0dHJpYnV0ZSBhY2Nlc3MgZnJvbSBwbGlzdCBkaWN0cyBpcyBkZXByZWNhdGVkLCB1c2UgZFtrZXldICIKLSAgICAgICAgICAgICAibm90YXRpb24gaW5zdGVhZCIsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICAgIm5vdGF0aW9uIGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCiAgICAgICAgIHNlbGZbYXR0cl0gPSB2YWx1ZQogCiAgICAgZGVmIF9fZGVsYXR0cl9fKHNlbGYsIGF0dHIpOgpAQCAtMjgyLDE0ICsyODgsMTQgQEAKICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKGF0dHIpCiAgICAgICAgIGZyb20gd2FybmluZ3MgaW1wb3J0IHdhcm4KICAgICAgICAgd2FybigiQXR0cmlidXRlIGFjY2VzcyBmcm9tIHBsaXN0IGRpY3RzIGlzIGRlcHJlY2F0ZWQsIHVzZSBkW2tleV0gIgotICAgICAgICAgICAgICJub3RhdGlvbiBpbnN0ZWFkIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgICAgICAibm90YXRpb24gaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKIAogY2xhc3MgRGljdChfSW50ZXJuYWxEaWN0KToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIGZyb20gd2FybmluZ3MgaW1wb3J0IHdhcm4KICAgICAgICAgd2FybigiVGhlIHBsaXN0bGliLkRpY3QgY2xhc3MgaXMgZGVwcmVjYXRlZCwgdXNlIGJ1aWx0aW4gZGljdCBpbnN0ZWFkIiwKLSAgICAgICAgICAgICBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKIAogCkBAIC0zMDIsNyArMzA4LDcgQEAKICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBmcm9tIHdhcm5pbmdzIGltcG9ydCB3YXJuCiAgICAgICAgIHdhcm4oIlRoZSBQbGlzdCBjbGFzcyBpcyBkZXByZWNhdGVkLCB1c2UgdGhlIHJlYWRQbGlzdCgpIGFuZCAiCi0gICAgICAgICAgICAgIndyaXRlUGxpc3QoKSBmdW5jdGlvbnMgaW5zdGVhZCIsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICAgIndyaXRlUGxpc3QoKSBmdW5jdGlvbnMgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqKmt3YXJncykKIAogICAgIGRlZiBmcm9tRmlsZShjbHMsIHBhdGhPckZpbGUpOgpkaWZmIC0tZ2l0IGEvTGliL3BvcGxpYi5weSBiL0xpYi9wb3BsaWIucHkKaW5kZXggODRlYTg4ZC4uZDQyZDlkZCAxMDA2NDQKLS0tIGEvTGliL3BvcGxpYi5weQorKysgYi9MaWIvcG9wbGliLnB5CkBAIC0yNTAsMTUgKzI1MCwxOCBAQAogCiAgICAgZGVmIHF1aXQoc2VsZik6CiAgICAgICAgICIiIlNpZ25vZmY6IGNvbW1pdCBjaGFuZ2VzIG9uIHNlcnZlciwgdW5sb2NrIG1haWxib3gsIGNsb3NlIGNvbm5lY3Rpb24uIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlc3AgPSBzZWxmLl9zaG9ydGNtZCgnUVVJVCcpCi0gICAgICAgIGV4Y2VwdCBlcnJvcl9wcm90byBhcyB2YWw6Ci0gICAgICAgICAgICByZXNwID0gdmFsCi0gICAgICAgIHNlbGYuZmlsZS5jbG9zZSgpCi0gICAgICAgIHNlbGYuc29jay5jbG9zZSgpCi0gICAgICAgIGRlbCBzZWxmLmZpbGUsIHNlbGYuc29jaworICAgICAgICByZXNwID0gc2VsZi5fc2hvcnRjbWQoJ1FVSVQnKQorICAgICAgICBzZWxmLmNsb3NlKCkKICAgICAgICAgcmV0dXJuIHJlc3AKIAorICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgIiIiQ2xvc2UgdGhlIGNvbm5lY3Rpb24gd2l0aG91dCBhc3N1bWluZyBhbnl0aGluZyBhYm91dCBpdC4iIiIKKyAgICAgICAgaWYgc2VsZi5maWxlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5maWxlLmNsb3NlKCkKKyAgICAgICAgaWYgc2VsZi5zb2NrIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5zb2NrLmNsb3NlKCkKKyAgICAgICAgc2VsZi5maWxlID0gc2VsZi5zb2NrID0gTm9uZQorCiAgICAgI19fZGVsX18gPSBxdWl0CiAKIApkaWZmIC0tZ2l0IGEvTGliL3Byb2ZpbGUucHkgYi9MaWIvcHJvZmlsZS5weQppbmRleCAyOTdlMzJkLi43NDNlNzdkIDEwMDc1NQotLS0gYS9MaWIvcHJvZmlsZS5weQorKysgYi9MaWIvcHJvZmlsZS5weQpAQCAtODMsMjYgKzgzLDYgQEAKICAgICBlbHNlOgogICAgICAgICByZXR1cm4gcHJvZi5wcmludF9zdGF0cyhzb3J0KQogCi1pZiBoYXNhdHRyKG9zLCAidGltZXMiKToKLSAgICBkZWYgX2dldF90aW1lX3RpbWVzKHRpbWVyPW9zLnRpbWVzKToKLSAgICAgICAgdCA9IHRpbWVyKCkKLSAgICAgICAgcmV0dXJuIHRbMF0gKyB0WzFdCi0KLSMgVXNpbmcgZ2V0cnVzYWdlKDMpIGlzIGJldHRlciB0aGFuIGNsb2NrKDMpIGlmIGF2YWlsYWJsZToKLSMgb24gc29tZSBzeXN0ZW1zIChlLmcuIEZyZWVCU0QpLCBnZXRydXNhZ2UgaGFzIGEgaGlnaGVyIHJlc29sdXRpb24KLSMgRnVydGhlcm1vcmUsIG9uIGEgUE9TSVggc3lzdGVtLCByZXR1cm5zIG1pY3Jvc2Vjb25kcywgd2hpY2gKLSMgd3JhcCBhcm91bmQgYWZ0ZXIgMzZtaW4uCi1faGFzX3JlcyA9IDAKLXRyeToKLSAgICBpbXBvcnQgcmVzb3VyY2UKLSAgICByZXNnZXRydXNhZ2UgPSBsYW1iZGE6IHJlc291cmNlLmdldHJ1c2FnZShyZXNvdXJjZS5SVVNBR0VfU0VMRikKLSAgICBkZWYgX2dldF90aW1lX3Jlc291cmNlKHRpbWVyPXJlc2dldHJ1c2FnZSk6Ci0gICAgICAgIHQgPSB0aW1lcigpCi0gICAgICAgIHJldHVybiB0WzBdICsgdFsxXQotICAgIF9oYXNfcmVzID0gMQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHBhc3MKLQogY2xhc3MgUHJvZmlsZToKICAgICAiIiJQcm9maWxlciBjbGFzcy4KIApAQCAtMTU1LDIwICsxMzUsOCBAQAogICAgICAgICBzZWxmLmJpYXMgPSBiaWFzICAgICAjIE1hdGVyaWFsaXplIGluIGxvY2FsIGRpY3QgZm9yIGxvb2t1cCBzcGVlZC4KIAogICAgICAgICBpZiBub3QgdGltZXI6Ci0gICAgICAgICAgICBpZiBfaGFzX3JlczoKLSAgICAgICAgICAgICAgICBzZWxmLnRpbWVyID0gcmVzZ2V0cnVzYWdlCi0gICAgICAgICAgICAgICAgc2VsZi5kaXNwYXRjaGVyID0gc2VsZi50cmFjZV9kaXNwYXRjaAotICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3RpbWUgPSBfZ2V0X3RpbWVfcmVzb3VyY2UKLSAgICAgICAgICAgIGVsaWYgaGFzYXR0cih0aW1lLCAnY2xvY2snKToKLSAgICAgICAgICAgICAgICBzZWxmLnRpbWVyID0gc2VsZi5nZXRfdGltZSA9IHRpbWUuY2xvY2sKLSAgICAgICAgICAgICAgICBzZWxmLmRpc3BhdGNoZXIgPSBzZWxmLnRyYWNlX2Rpc3BhdGNoX2kKLSAgICAgICAgICAgIGVsaWYgaGFzYXR0cihvcywgJ3RpbWVzJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi50aW1lciA9IG9zLnRpbWVzCi0gICAgICAgICAgICAgICAgc2VsZi5kaXNwYXRjaGVyID0gc2VsZi50cmFjZV9kaXNwYXRjaAotICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3RpbWUgPSBfZ2V0X3RpbWVfdGltZXMKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi50aW1lciA9IHNlbGYuZ2V0X3RpbWUgPSB0aW1lLnRpbWUKLSAgICAgICAgICAgICAgICBzZWxmLmRpc3BhdGNoZXIgPSBzZWxmLnRyYWNlX2Rpc3BhdGNoX2kKKyAgICAgICAgICAgIHNlbGYudGltZXIgPSBzZWxmLmdldF90aW1lID0gdGltZS5wcm9jZXNzX3RpbWUKKyAgICAgICAgICAgIHNlbGYuZGlzcGF0Y2hlciA9IHNlbGYudHJhY2VfZGlzcGF0Y2hfaQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi50aW1lciA9IHRpbWVyCiAgICAgICAgICAgICB0ID0gc2VsZi50aW1lcigpICMgdGVzdCBvdXQgdGltZXIgZnVuY3Rpb24KZGlmZiAtLWdpdCBhL0xpYi9wc3RhdHMucHkgYi9MaWIvcHN0YXRzLnB5CmluZGV4IDNmMGFkZDIuLjEzZDk0NGMgMTAwNjQ0Ci0tLSBhL0xpYi9wc3RhdHMucHkKKysrIGIvTGliL3BzdGF0cy5weQpAQCAtNjc0LDEzICs2NzQsMTQgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gc3RvcAogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgIGltcG9ydCBzeXMKICAgICBpZiBsZW4oc3lzLmFyZ3YpID4gMToKICAgICAgICAgaW5pdHByb2ZpbGUgPSBzeXMuYXJndlsxXQogICAgIGVsc2U6CiAgICAgICAgIGluaXRwcm9maWxlID0gTm9uZQogICAgIHRyeToKICAgICAgICAgYnJvd3NlciA9IFByb2ZpbGVCcm93c2VyKGluaXRwcm9maWxlKQorICAgICAgICBmb3IgcHJvZmlsZSBpbiBzeXMuYXJndlsyOl06CisgICAgICAgICAgICBicm93c2VyLmRvX2FkZChwcm9maWxlKQogICAgICAgICBwcmludCgiV2VsY29tZSB0byB0aGUgcHJvZmlsZSBzdGF0aXN0aWNzIGJyb3dzZXIuIiwgZmlsZT1icm93c2VyLnN0cmVhbSkKICAgICAgICAgYnJvd3Nlci5jbWRsb29wKCkKICAgICAgICAgcHJpbnQoIkdvb2RieWUuIiwgZmlsZT1icm93c2VyLnN0cmVhbSkKZGlmZiAtLWdpdCBhL0xpYi9weV9jb21waWxlLnB5IGIvTGliL3B5X2NvbXBpbGUucHkKaW5kZXggNWFkYjcwYS4uNjJkNjlhZCAxMDA2NDQKLS0tIGEvTGliL3B5X2NvbXBpbGUucHkKKysrIGIvTGliL3B5X2NvbXBpbGUucHkKQEAgLTExMCw5ICsxMTAsMTEgQEAKICAgICAiIiIKICAgICB3aXRoIHRva2VuaXplLm9wZW4oZmlsZSkgYXMgZjoKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZXN0YW1wID0gaW50KG9zLmZzdGF0KGYuZmlsZW5vKCkpLnN0X210aW1lKQorICAgICAgICAgICAgc3QgPSBvcy5mc3RhdChmLmZpbGVubygpKQogICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICB0aW1lc3RhbXAgPSBpbnQob3Muc3RhdChmaWxlKS5zdF9tdGltZSkKKyAgICAgICAgICAgIHN0ID0gb3Muc3RhdChmaWxlKQorICAgICAgICB0aW1lc3RhbXAgPSBpbnQoc3Quc3RfbXRpbWUpCisgICAgICAgIHNpemUgPSBzdC5zdF9zaXplICYgMHhGRkZGRkZGRgogICAgICAgICBjb2Rlc3RyaW5nID0gZi5yZWFkKCkKICAgICB0cnk6CiAgICAgICAgIGNvZGVvYmplY3QgPSBidWlsdGlucy5jb21waWxlKGNvZGVzdHJpbmcsIGRmaWxlIG9yIGZpbGUsICdleGVjJywKQEAgLTEzOSw2ICsxNDEsNyBAQAogICAgIHdpdGggb3BlbihjZmlsZSwgJ3diJykgYXMgZmM6CiAgICAgICAgIGZjLndyaXRlKGInXDBcMFwwXDAnKQogICAgICAgICB3cl9sb25nKGZjLCB0aW1lc3RhbXApCisgICAgICAgIHdyX2xvbmcoZmMsIHNpemUpCiAgICAgICAgIG1hcnNoYWwuZHVtcChjb2Rlb2JqZWN0LCBmYykKICAgICAgICAgZmMuZmx1c2goKQogICAgICAgICBmYy5zZWVrKDAsIDApCmRpZmYgLS1naXQgYS9MaWIvcHljbGJyLnB5IGIvTGliL3B5Y2xici5weQppbmRleCA2NWU5ZmJlLi45ZWMwNWVlIDEwMDY0NAotLS0gYS9MaWIvcHljbGJyLnB5CisrKyBiL0xpYi9weWNsYnIucHkKQEAgLTM5LDggKzM5LDEwIEBACiAgICAgICAgIGxpbmVubyAtLSB0aGUgbGluZSBpbiB0aGUgZmlsZSBvbiB3aGljaCB0aGUgY2xhc3Mgc3RhdGVtZW50IG9jY3VycmVkCiAiIiIKIAoraW1wb3J0IGlvCitpbXBvcnQgb3MKIGltcG9ydCBzeXMKLWltcG9ydCBpbXAKK2ltcG9ydCBpbXBvcnRsaWIKIGltcG9ydCB0b2tlbml6ZQogZnJvbSB0b2tlbiBpbXBvcnQgTkFNRSwgREVERU5ULCBPUAogZnJvbSBvcGVyYXRvciBpbXBvcnQgaXRlbWdldHRlcgpAQCAtMTM1LDE5ICsxMzcsMjQgQEAKICAgICAjIFNlYXJjaCB0aGUgcGF0aCBmb3IgdGhlIG1vZHVsZQogICAgIGYgPSBOb25lCiAgICAgaWYgaW5wYWNrYWdlIGlzIG5vdCBOb25lOgotICAgICAgICBmLCBmbmFtZSwgKF9zLCBfbSwgdHkpID0gaW1wLmZpbmRfbW9kdWxlKG1vZHVsZSwgcGF0aCkKKyAgICAgICAgc2VhcmNoX3BhdGggPSBwYXRoCiAgICAgZWxzZToKLSAgICAgICAgZiwgZm5hbWUsIChfcywgX20sIHR5KSA9IGltcC5maW5kX21vZHVsZShtb2R1bGUsIHBhdGggKyBzeXMucGF0aCkKLSAgICBpZiB0eSA9PSBpbXAuUEtHX0RJUkVDVE9SWToKLSAgICAgICAgZGljdFsnX19wYXRoX18nXSA9IFtmbmFtZV0KLSAgICAgICAgcGF0aCA9IFtmbmFtZV0gKyBwYXRoCi0gICAgICAgIGYsIGZuYW1lLCAoX3MsIF9tLCB0eSkgPSBpbXAuZmluZF9tb2R1bGUoJ19faW5pdF9fJywgW2ZuYW1lXSkKKyAgICAgICAgc2VhcmNoX3BhdGggPSBwYXRoICsgc3lzLnBhdGgKKyAgICBsb2FkZXIgPSBpbXBvcnRsaWIuZmluZF9sb2FkZXIoZnVsbG1vZHVsZSwgc2VhcmNoX3BhdGgpCisgICAgZm5hbWUgPSBsb2FkZXIuZ2V0X2ZpbGVuYW1lKGZ1bGxtb2R1bGUpCiAgICAgX21vZHVsZXNbZnVsbG1vZHVsZV0gPSBkaWN0Ci0gICAgaWYgdHkgIT0gaW1wLlBZX1NPVVJDRToKKyAgICBpZiBsb2FkZXIuaXNfcGFja2FnZShmdWxsbW9kdWxlKToKKyAgICAgICAgZGljdFsnX19wYXRoX18nXSA9IFtvcy5wYXRoLmRpcm5hbWUoZm5hbWUpXQorICAgIHRyeToKKyAgICAgICAgc291cmNlID0gbG9hZGVyLmdldF9zb3VyY2UoZnVsbG1vZHVsZSkKKyAgICAgICAgaWYgc291cmNlIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gZGljdAorICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIEltcG9ydEVycm9yKToKICAgICAgICAgIyBub3QgUHl0aG9uIHNvdXJjZSwgY2FuJ3QgZG8gYW55dGhpbmcgd2l0aCB0aGlzIG1vZHVsZQotICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgcmV0dXJuIGRpY3QKIAorICAgIGYgPSBpby5TdHJpbmdJTyhzb3VyY2UpCisKICAgICBzdGFjayA9IFtdICMgc3RhY2sgb2YgKGNsYXNzLCBpbmRlbnQpIHBhaXJzCiAKICAgICBnID0gdG9rZW5pemUuZ2VuZXJhdGVfdG9rZW5zKGYucmVhZGxpbmUpCmRpZmYgLS1naXQgYS9MaWIvcHlkb2MucHkgYi9MaWIvcHlkb2MucHkKaW5kZXggMzc2MTZmYi4uNGFhNDhlNSAxMDA3NTUKLS0tIGEvTGliL3B5ZG9jLnB5CisrKyBiL0xpYi9weWRvYy5weQpAQCAtMSw3ICsxLDcgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhvbjMKICIiIkdlbmVyYXRlIFB5dGhvbiBkb2N1bWVudGF0aW9uIGluIEhUTUwgb3IgdGV4dCBmb3IgaW50ZXJhY3RpdmUgdXNlLgogCi1JbiB0aGUgUHl0aG9uIGludGVycHJldGVyLCBkbyAiZnJvbSBweWRvYyBpbXBvcnQgaGVscCIgdG8gcHJvdmlkZSBvbmxpbmUKK0luIHRoZSBQeXRob24gaW50ZXJwcmV0ZXIsIGRvICJmcm9tIHB5ZG9jIGltcG9ydCBoZWxwIiB0byBwcm92aWRlCiBoZWxwLiAgQ2FsbGluZyBoZWxwKHRoaW5nKSBvbiBhIFB5dGhvbiBvYmplY3QgZG9jdW1lbnRzIHRoZSBvYmplY3QuCiAKIE9yLCBhdCB0aGUgc2hlbGwgY29tbWFuZCBsaW5lIG91dHNpZGUgb2YgUHl0aG9uOgpAQCAtMjIsMTEgKzIyLDYgQEAKIG9wZW4gYSBXZWIgYnJvd3NlciB0byBpbnRlcmFjdGl2ZWx5IGJyb3dzZSBkb2N1bWVudGF0aW9uLiAgVGhlIC1wIG9wdGlvbgogY2FuIGJlIHVzZWQgd2l0aCB0aGUgLWIgb3B0aW9uIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSB0aGUgc2VydmVyIHBvcnQuCiAKLUZvciBwbGF0Zm9ybXMgd2l0aG91dCBhIGNvbW1hbmQgbGluZSwgInB5ZG9jIC1nIiBzdGFydHMgdGhlIEhUVFAgc2VydmVyCi1hbmQgYWxzbyBwb3BzIHVwIGEgbGl0dGxlIHdpbmRvdyBmb3IgY29udHJvbGxpbmcgaXQuICBUaGlzIG9wdGlvbiBpcwotZGVwcmVjYXRlZCwgc2luY2UgdGhlIHNlcnZlciBjYW4gbm93IGJlIGNvbnRyb2xsZWQgZGlyZWN0bHkgZnJvbSBIVFRQCi1jbGllbnRzLgotCiBSdW4gInB5ZG9jIC13IDxuYW1lPiIgdG8gd3JpdGUgb3V0IHRoZSBIVE1MIGRvY3VtZW50YXRpb24gZm9yIGEgbW9kdWxlCiB0byBhIGZpbGUgbmFtZWQgIjxuYW1lPi5odG1sIi4KIApAQCAtNDIsNyArMzcsNiBAQAogX19hdXRob3JfXyA9ICJLYS1QaW5nIFllZSA8cGluZ0BsZncub3JnPiIKIF9fZGF0ZV9fID0gIjI2IEZlYnJ1YXJ5IDIwMDEiCiAKLV9fdmVyc2lvbl9fID0gIiRSZXZpc2lvbiQiCiBfX2NyZWRpdHNfXyA9ICIiIkd1aWRvIHZhbiBSb3NzdW0sIGZvciBhbiBleGNlbGxlbnQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UuCiBUb21teSBCdXJuZXR0ZSwgdGhlIG9yaWdpbmFsIGNyZWF0b3Igb2YgbWFucHkuCiBQYXVsIFByZXNjb2QsIGZvciBhbGwgaGlzIHdvcmsgb24gb25saW5laGVscC4KQEAgLTU5LDYgKzUzLDcgQEAKIAogaW1wb3J0IGJ1aWx0aW5zCiBpbXBvcnQgaW1wCitpbXBvcnQgaW1wb3J0bGliLm1hY2hpbmVyeQogaW1wb3J0IGluc3BlY3QKIGltcG9ydCBpbwogaW1wb3J0IG9zCkBAIC0xNjksMTEgKzE2NCwxMSBAQAogZGVmIHZpc2libGVuYW1lKG5hbWUsIGFsbD1Ob25lLCBvYmo9Tm9uZSk6CiAgICAgIiIiRGVjaWRlIHdoZXRoZXIgdG8gc2hvdyBkb2N1bWVudGF0aW9uIG9uIGEgdmFyaWFibGUuIiIiCiAgICAgIyBDZXJ0YWluIHNwZWNpYWwgbmFtZXMgYXJlIHJlZHVuZGFudC4KLSAgICBfaGlkZGVuX25hbWVzID0gKCdfX2J1aWx0aW5zX18nLCAnX19kb2NfXycsICdfX2ZpbGVfXycsICdfX3BhdGhfXycsCisgICAgaWYgbmFtZSBpbiB7J19fYnVpbHRpbnNfXycsICdfX2RvY19fJywgJ19fZmlsZV9fJywgJ19fcGF0aF9fJywKICAgICAgICAgICAgICAgICAgICAgICdfX21vZHVsZV9fJywgJ19fbmFtZV9fJywgJ19fc2xvdHNfXycsICdfX3BhY2thZ2VfXycsCiAgICAgICAgICAgICAgICAgICAgICAnX19jYWNoZWRfXycsICdfX2F1dGhvcl9fJywgJ19fY3JlZGl0c19fJywgJ19fZGF0ZV9fJywKLSAgICAgICAgICAgICAgICAgICAgICdfX3ZlcnNpb25fXycpCi0gICAgaWYgbmFtZSBpbiBfaGlkZGVuX25hbWVzOiByZXR1cm4gMAorICAgICAgICAgICAgICAgICAgICAgJ19fdmVyc2lvbl9fJywgJ19fcXVhbG5hbWVfXycsICdfX2luaXRpYWxpemluZ19fJ306CisgICAgICAgIHJldHVybiAwCiAgICAgIyBQcml2YXRlIG5hbWVzIGFyZSBoaWRkZW4sIGJ1dCBzcGVjaWFsIG5hbWVzIGFyZSBkaXNwbGF5ZWQuCiAgICAgaWYgbmFtZS5zdGFydHN3aXRoKCdfXycpIGFuZCBuYW1lLmVuZHN3aXRoKCdfXycpOiByZXR1cm4gMQogICAgICMgTmFtZWR0dXBsZXMgaGF2ZSBwdWJsaWMgZmllbGRzIGFuZCBtZXRob2RzIHdpdGggYSBzaW5nbGUgbGVhZGluZyB1bmRlcnNjb3JlCkBAIC0yMjYsMjAgKzIyMSwzNCBAQAogICAgIG10aW1lID0gb3Muc3RhdChmaWxlbmFtZSkuc3RfbXRpbWUKICAgICBsYXN0dXBkYXRlLCByZXN1bHQgPSBjYWNoZS5nZXQoZmlsZW5hbWUsIChOb25lLCBOb25lKSkKICAgICBpZiBsYXN0dXBkYXRlIGlzIE5vbmUgb3IgbGFzdHVwZGF0ZSA8IG10aW1lOgotICAgICAgICBpbmZvID0gaW5zcGVjdC5nZXRtb2R1bGVpbmZvKGZpbGVuYW1lKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmaWxlID0gdG9rZW5pemUub3BlbihmaWxlbmFtZSkKICAgICAgICAgZXhjZXB0IElPRXJyb3I6CiAgICAgICAgICAgICAjIG1vZHVsZSBjYW4ndCBiZSBvcGVuZWQsIHNvIHNraXAgaXQKICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGlmIGluZm8gYW5kICdiJyBpbiBpbmZvWzJdOiAjIGJpbmFyeSBtb2R1bGVzIGhhdmUgdG8gYmUgaW1wb3J0ZWQKLSAgICAgICAgICAgIHRyeTogbW9kdWxlID0gaW1wLmxvYWRfbW9kdWxlKCdfX3RlbXBfXycsIGZpbGUsIGZpbGVuYW1lLCBpbmZvWzE6XSkKLSAgICAgICAgICAgIGV4Y2VwdDogcmV0dXJuIE5vbmUKKyAgICAgICAgYmluYXJ5X3N1ZmZpeGVzID0gaW1wb3J0bGliLm1hY2hpbmVyeS5CWVRFQ09ERV9TVUZGSVhFU1s6XQorICAgICAgICBiaW5hcnlfc3VmZml4ZXMgKz0gaW1wb3J0bGliLm1hY2hpbmVyeS5FWFRFTlNJT05fU1VGRklYRVNbOl0KKyAgICAgICAgaWYgYW55KGZpbGVuYW1lLmVuZHN3aXRoKHgpIGZvciB4IGluIGJpbmFyeV9zdWZmaXhlcyk6CisgICAgICAgICAgICAjIGJpbmFyeSBtb2R1bGVzIGhhdmUgdG8gYmUgaW1wb3J0ZWQKKyAgICAgICAgICAgIGZpbGUuY2xvc2UoKQorICAgICAgICAgICAgaWYgYW55KGZpbGVuYW1lLmVuZHN3aXRoKHgpIGZvciB4IGluCisgICAgICAgICAgICAgICAgICAgIGltcG9ydGxpYi5tYWNoaW5lcnkuQllURUNPREVfU1VGRklYRVMpOgorICAgICAgICAgICAgICAgIGxvYWRlciA9IGltcG9ydGxpYi5tYWNoaW5lcnkuU291cmNlbGVzc0ZpbGVMb2FkZXIoJ19fdGVtcF9fJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBsb2FkZXIgPSBpbXBvcnRsaWIubWFjaGluZXJ5LkV4dGVuc2lvbkZpbGVMb2FkZXIoJ19fdGVtcF9fJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgbW9kdWxlID0gbG9hZGVyLmxvYWRfbW9kdWxlKCdfX3RlbXBfXycpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgICAgIHJlc3VsdCA9IChtb2R1bGUuX19kb2NfXyBvciAnJykuc3BsaXRsaW5lcygpWzBdCiAgICAgICAgICAgICBkZWwgc3lzLm1vZHVsZXNbJ19fdGVtcF9fJ10KLSAgICAgICAgZWxzZTogIyB0ZXh0IG1vZHVsZXMgY2FuIGJlIGRpcmVjdGx5IGV4YW1pbmVkCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIHRleHQgbW9kdWxlcyBjYW4gYmUgZGlyZWN0bHkgZXhhbWluZWQKICAgICAgICAgICAgIHJlc3VsdCA9IHNvdXJjZV9zeW5vcHNpcyhmaWxlKQogICAgICAgICAgICAgZmlsZS5jbG9zZSgpCisKICAgICAgICAgY2FjaGVbZmlsZW5hbWVdID0gKG10aW1lLCByZXN1bHQpCiAgICAgcmV0dXJuIHJlc3VsdAogCkBAIC0zMDUsOSArMzE0LDggQEAKICAgICAgICAgZWxpZiBleGMgaXMgU3ludGF4RXJyb3I6CiAgICAgICAgICAgICAjIEEgU3ludGF4RXJyb3Igb2NjdXJyZWQgYmVmb3JlIHdlIGNvdWxkIGV4ZWN1dGUgdGhlIG1vZHVsZS4KICAgICAgICAgICAgIHJhaXNlIEVycm9yRHVyaW5nSW1wb3J0KHZhbHVlLmZpbGVuYW1lLCBpbmZvKQotICAgICAgICBlbGlmIGV4YyBpcyBJbXBvcnRFcnJvciBhbmQgZXh0cmFjdF90Yih0YilbLTFdWzJdPT0nc2FmZWltcG9ydCc6Ci0gICAgICAgICAgICAjIFRoZSBpbXBvcnQgZXJyb3Igb2NjdXJyZWQgZGlyZWN0bHkgaW4gdGhpcyBmdW5jdGlvbiwKLSAgICAgICAgICAgICMgd2hpY2ggbWVhbnMgdGhlcmUgaXMgbm8gc3VjaCBtb2R1bGUgaW4gdGhlIHBhdGguCisgICAgICAgIGVsaWYgZXhjIGlzIEltcG9ydEVycm9yIGFuZCB2YWx1ZS5uYW1lID09IHBhdGg6CisgICAgICAgICAgICAjIE5vIHN1Y2ggbW9kdWxlIGluIHRoZSBwYXRoLgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgU29tZSBvdGhlciBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGhlIGltcG9ydGluZyBwcm9jZXNzLgpAQCAtMzYxLDcgKzM2OSw3IEBACiAKICAgICAgICAgZG9jbG9jID0gb3MuZW52aXJvbi5nZXQoIlBZVEhPTkRPQ1MiLCBzZWxmLlBZVEhPTkRPQ1MpCiAKLSAgICAgICAgYmFzZWRpciA9IG9zLnBhdGguam9pbihzeXMuZXhlY19wcmVmaXgsICJsaWIiLAorICAgICAgICBiYXNlZGlyID0gb3MucGF0aC5qb2luKHN5cy5iYXNlX2V4ZWNfcHJlZml4LCAibGliIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHl0aG9uJWQuJWQiICUgIHN5cy52ZXJzaW9uX2luZm9bOjJdKQogICAgICAgICBpZiAoaXNpbnN0YW5jZShvYmplY3QsIHR5cGUob3MpKSBhbmQKICAgICAgICAgICAgIChvYmplY3QuX19uYW1lX18gaW4gKCdlcnJubycsICdleGNlcHRpb25zJywgJ2djJywgJ2ltcCcsCkBAIC05NjMsNiArOTcxLDkgQEAKICAgICAgICAgbW9kcGtncyA9IFtdCiAgICAgICAgIGlmIHNoYWRvd2VkIGlzIE5vbmU6IHNoYWRvd2VkID0ge30KICAgICAgICAgZm9yIGltcG9ydGVyLCBuYW1lLCBpc3BrZyBpbiBwa2d1dGlsLml0ZXJfbW9kdWxlcyhbZGlyXSk6CisgICAgICAgICAgICBpZiBhbnkoKDB4RDgwMCA8PSBvcmQoY2gpIDw9IDB4REZGRikgZm9yIGNoIGluIG5hbWUpOgorICAgICAgICAgICAgICAgICMgaWdub3JlIGEgbW9kdWxlIGlmIGl0cyBuYW1lIGNvbnRhaW5zIGEgc3Vycm9nYXRlIGNoYXJhY3RlcgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBtb2Rwa2dzLmFwcGVuZCgobmFtZSwgJycsIGlzcGtnLCBuYW1lIGluIHNoYWRvd2VkKSkKICAgICAgICAgICAgIHNoYWRvd2VkW25hbWVdID0gMQogCkBAIC0xODI3LDcgKzE4MzgsNyBAQAogCiAgICAgZGVmIGludHJvKHNlbGYpOgogICAgICAgICBzZWxmLm91dHB1dC53cml0ZSgnJycKLVdlbGNvbWUgdG8gUHl0aG9uICVzISAgVGhpcyBpcyB0aGUgb25saW5lIGhlbHAgdXRpbGl0eS4KK1dlbGNvbWUgdG8gUHl0aG9uICVzISAgVGhpcyBpcyB0aGUgaW50ZXJhY3RpdmUgaGVscCB1dGlsaXR5LgogCiBJZiB0aGlzIGlzIHlvdXIgZmlyc3QgdGltZSB1c2luZyBQeXRob24sIHlvdSBzaG91bGQgZGVmaW5pdGVseSBjaGVjayBvdXQKIHRoZSB0dXRvcmlhbCBvbiB0aGUgSW50ZXJuZXQgYXQgaHR0cDovL2RvY3MucHl0aG9uLm9yZy8lcy90dXRvcmlhbC8uCkBAIC0yMDc0LDI3MiArMjA4NSw2IEBACiAgICAgICAgIHdhcm5pbmdzLmZpbHRlcndhcm5pbmdzKCdpZ25vcmUnKSAjIGlnbm9yZSBwcm9ibGVtcyBkdXJpbmcgaW1wb3J0CiAgICAgICAgIE1vZHVsZVNjYW5uZXIoKS5ydW4oY2FsbGJhY2ssIGtleSwgb25lcnJvcj1vbmVycm9yKQogCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBXZWIgYnJvd3NlciBpbnRlcmZhY2UKLQotZGVmIHNlcnZlKHBvcnQsIGNhbGxiYWNrPU5vbmUsIGNvbXBsZXRlcj1Ob25lKToKLSAgICBpbXBvcnQgaHR0cC5zZXJ2ZXIsIGVtYWlsLm1lc3NhZ2UsIHNlbGVjdAotCi0gICAgbXNnID0gJ3RoZSBweWRvYy5zZXJ2ZSgpIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQnCi0gICAgd2FybmluZ3Mud2Fybihtc2csIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQotCi0gICAgY2xhc3MgRG9jSGFuZGxlcihodHRwLnNlcnZlci5CYXNlSFRUUFJlcXVlc3RIYW5kbGVyKToKLSAgICAgICAgZGVmIHNlbmRfZG9jdW1lbnQoc2VsZiwgdGl0bGUsIGNvbnRlbnRzKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoMjAwKQotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoJ0NvbnRlbnQtVHlwZScsICd0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgnKQotICAgICAgICAgICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQotICAgICAgICAgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoaHRtbC5wYWdlKHRpdGxlLCBjb250ZW50cykuZW5jb2RlKCd1dGYtOCcpKQotICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6IHBhc3MKLQotICAgICAgICBkZWYgZG9fR0VUKHNlbGYpOgotICAgICAgICAgICAgcGF0aCA9IHNlbGYucGF0aAotICAgICAgICAgICAgaWYgcGF0aFstNTpdID09ICcuaHRtbCc6IHBhdGggPSBwYXRoWzotNV0KLSAgICAgICAgICAgIGlmIHBhdGhbOjFdID09ICcvJzogcGF0aCA9IHBhdGhbMTpdCi0gICAgICAgICAgICBpZiBwYXRoIGFuZCBwYXRoICE9ICcuJzoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIG9iaiA9IGxvY2F0ZShwYXRoLCBmb3JjZWxvYWQ9MSkKLSAgICAgICAgICAgICAgICBleGNlcHQgRXJyb3JEdXJpbmdJbXBvcnQgYXMgdmFsdWU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9kb2N1bWVudChwYXRoLCBodG1sLmVzY2FwZShzdHIodmFsdWUpKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICAgICAgaWYgb2JqOgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNlbmRfZG9jdW1lbnQoZGVzY3JpYmUob2JqKSwgaHRtbC5kb2N1bWVudChvYmosIHBhdGgpKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9kb2N1bWVudChwYXRoLAotJ25vIFB5dGhvbiBkb2N1bWVudGF0aW9uIGZvdW5kIGZvciAlcycgJSByZXByKHBhdGgpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBoZWFkaW5nID0gaHRtbC5oZWFkaW5nKAotJzxiaWc+PGJpZz48c3Ryb25nPlB5dGhvbjogSW5kZXggb2YgTW9kdWxlczwvc3Ryb25nPjwvYmlnPjwvYmlnPicsCi0nI2ZmZmZmZicsICcjNzc5OWVlJykKLSAgICAgICAgICAgICAgICBkZWYgYmx0aW5saW5rKG5hbWUpOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gJzxhIGhyZWY9IiVzLmh0bWwiPiVzPC9hPicgJSAobmFtZSwgbmFtZSkKLSAgICAgICAgICAgICAgICBuYW1lcyA9IFt4IGZvciB4IGluIHN5cy5idWlsdGluX21vZHVsZV9uYW1lcyBpZiB4ICE9ICdfX21haW5fXyddCi0gICAgICAgICAgICAgICAgY29udGVudHMgPSBodG1sLm11bHRpY29sdW1uKG5hbWVzLCBibHRpbmxpbmspCi0gICAgICAgICAgICAgICAgaW5kaWNlcyA9IFsnPHA+JyArIGh0bWwuYmlnc2VjdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ0J1aWx0LWluIE1vZHVsZXMnLCAnI2ZmZmZmZicsICcjZWU3N2FhJywgY29udGVudHMpXQotCi0gICAgICAgICAgICAgICAgc2VlbiA9IHt9Ci0gICAgICAgICAgICAgICAgZm9yIGRpciBpbiBzeXMucGF0aDoKLSAgICAgICAgICAgICAgICAgICAgaW5kaWNlcy5hcHBlbmQoaHRtbC5pbmRleChkaXIsIHNlZW4pKQotICAgICAgICAgICAgICAgIGNvbnRlbnRzID0gaGVhZGluZyArICcgJy5qb2luKGluZGljZXMpICsgJycnPHAgYWxpZ249cmlnaHQ+Ci08Zm9udCBjb2xvcj0iIzkwOTA5MCIgZmFjZT0iaGVsdmV0aWNhLCBhcmlhbCI+PHN0cm9uZz4KLXB5ZG9jPC9zdHJvbmc+IGJ5IEthLVBpbmcgWWVlICZsdDtwaW5nQGxmdy5vcmcmZ3Q7PC9mb250PicnJwotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9kb2N1bWVudCgnSW5kZXggb2YgTW9kdWxlcycsIGNvbnRlbnRzKQotCi0gICAgICAgIGRlZiBsb2dfbWVzc2FnZShzZWxmLCAqYXJncyk6IHBhc3MKLQotICAgIGNsYXNzIERvY1NlcnZlcihodHRwLnNlcnZlci5IVFRQU2VydmVyKToKLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQsIGNhbGxiYWNrKToKLSAgICAgICAgICAgIGhvc3QgPSAnbG9jYWxob3N0JwotICAgICAgICAgICAgc2VsZi5hZGRyZXNzID0gKGhvc3QsIHBvcnQpCi0gICAgICAgICAgICBzZWxmLnVybCA9ICdodHRwOi8vJXM6JWQvJyAlIChob3N0LCBwb3J0KQotICAgICAgICAgICAgc2VsZi5jYWxsYmFjayA9IGNhbGxiYWNrCi0gICAgICAgICAgICBzZWxmLmJhc2UuX19pbml0X18oc2VsZiwgc2VsZi5hZGRyZXNzLCBzZWxmLmhhbmRsZXIpCi0KLSAgICAgICAgZGVmIHNlcnZlX3VudGlsX3F1aXQoc2VsZik6Ci0gICAgICAgICAgICBpbXBvcnQgc2VsZWN0Ci0gICAgICAgICAgICBzZWxmLnF1aXQgPSBGYWxzZQotICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYucXVpdDoKLSAgICAgICAgICAgICAgICByZCwgd3IsIGV4ID0gc2VsZWN0LnNlbGVjdChbc2VsZi5zb2NrZXQuZmlsZW5vKCldLCBbXSwgW10sIDEpCi0gICAgICAgICAgICAgICAgaWYgcmQ6IHNlbGYuaGFuZGxlX3JlcXVlc3QoKQotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfY2xvc2UoKQotCi0gICAgICAgIGRlZiBzZXJ2ZXJfYWN0aXZhdGUoc2VsZik6Ci0gICAgICAgICAgICBzZWxmLmJhc2Uuc2VydmVyX2FjdGl2YXRlKHNlbGYpCi0gICAgICAgICAgICBpZiBzZWxmLmNhbGxiYWNrOiBzZWxmLmNhbGxiYWNrKHNlbGYpCi0KLSAgICBEb2NTZXJ2ZXIuYmFzZSA9IGh0dHAuc2VydmVyLkhUVFBTZXJ2ZXIKLSAgICBEb2NTZXJ2ZXIuaGFuZGxlciA9IERvY0hhbmRsZXIKLSAgICBEb2NIYW5kbGVyLk1lc3NhZ2VDbGFzcyA9IGVtYWlsLm1lc3NhZ2UuTWVzc2FnZQotICAgIHRyeToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgRG9jU2VydmVyKHBvcnQsIGNhbGxiYWNrKS5zZXJ2ZV91bnRpbF9xdWl0KCkKLSAgICAgICAgZXhjZXB0IChLZXlib2FyZEludGVycnVwdCwgc2VsZWN0LmVycm9yKToKLSAgICAgICAgICAgIHBhc3MKLSAgICBmaW5hbGx5OgotICAgICAgICBpZiBjb21wbGV0ZXI6IGNvbXBsZXRlcigpCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gZ3JhcGhpY2FsIGludGVyZmFjZQotCi1kZWYgZ3VpKCk6Ci0gICAgIiIiR3JhcGhpY2FsIGludGVyZmFjZSAoc3RhcnRzIFdlYiBzZXJ2ZXIgYW5kIHBvcHMgdXAgYSBjb250cm9sIHdpbmRvdykuIiIiCi0KLSAgICBtc2cgPSAoJ3RoZSBweWRvYy5ndWkoKSBmdW5jdGlvbiBhbmQgInB5ZG9jIC1nIiBvcHRpb24gYXJlIGRlcHJlY2F0ZWRcbicsCi0gICAgICAgICAgICd1c2UgInB5ZG9jLmJyb3dzZSgpIGZ1bmN0aW9uIGFuZCAicHlkb2MgLWIiIG9wdGlvbiBpbnN0ZWFkLicpCi0gICAgd2FybmluZ3Mud2Fybihtc2csIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0yKQotCi0gICAgY2xhc3MgR1VJOgotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93LCBwb3J0PTc0NjQpOgotICAgICAgICAgICAgc2VsZi53aW5kb3cgPSB3aW5kb3cKLSAgICAgICAgICAgIHNlbGYuc2VydmVyID0gTm9uZQotICAgICAgICAgICAgc2VsZi5zY2FubmVyID0gTm9uZQotCi0gICAgICAgICAgICBpbXBvcnQgdGtpbnRlcgotICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfZnJtID0gdGtpbnRlci5GcmFtZSh3aW5kb3cpCi0gICAgICAgICAgICBzZWxmLnRpdGxlX2xibCA9IHRraW50ZXIuTGFiZWwoc2VsZi5zZXJ2ZXJfZnJtLAotICAgICAgICAgICAgICAgIHRleHQ9J1N0YXJ0aW5nIHNlcnZlci4uLlxuICcpCi0gICAgICAgICAgICBzZWxmLm9wZW5fYnRuID0gdGtpbnRlci5CdXR0b24oc2VsZi5zZXJ2ZXJfZnJtLAotICAgICAgICAgICAgICAgIHRleHQ9J29wZW4gYnJvd3NlcicsIGNvbW1hbmQ9c2VsZi5vcGVuLCBzdGF0ZT0nZGlzYWJsZWQnKQotICAgICAgICAgICAgc2VsZi5xdWl0X2J0biA9IHRraW50ZXIuQnV0dG9uKHNlbGYuc2VydmVyX2ZybSwKLSAgICAgICAgICAgICAgICB0ZXh0PSdxdWl0IHNlcnZpbmcnLCBjb21tYW5kPXNlbGYucXVpdCwgc3RhdGU9J2Rpc2FibGVkJykKLQotICAgICAgICAgICAgc2VsZi5zZWFyY2hfZnJtID0gdGtpbnRlci5GcmFtZSh3aW5kb3cpCi0gICAgICAgICAgICBzZWxmLnNlYXJjaF9sYmwgPSB0a2ludGVyLkxhYmVsKHNlbGYuc2VhcmNoX2ZybSwgdGV4dD0nU2VhcmNoIGZvcicpCi0gICAgICAgICAgICBzZWxmLnNlYXJjaF9lbnQgPSB0a2ludGVyLkVudHJ5KHNlbGYuc2VhcmNoX2ZybSkKLSAgICAgICAgICAgIHNlbGYuc2VhcmNoX2VudC5iaW5kKCc8UmV0dXJuPicsIHNlbGYuc2VhcmNoKQotICAgICAgICAgICAgc2VsZi5zdG9wX2J0biA9IHRraW50ZXIuQnV0dG9uKHNlbGYuc2VhcmNoX2ZybSwKLSAgICAgICAgICAgICAgICB0ZXh0PSdzdG9wJywgcGFkeT0wLCBjb21tYW5kPXNlbGYuc3RvcCwgc3RhdGU9J2Rpc2FibGVkJykKLSAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgotICAgICAgICAgICAgICAgICMgVHJ5aW5nIHRvIGhpZGUgYW5kIHNob3cgdGhpcyBidXR0b24gY3Jhc2hlcyB1bmRlciBXaW5kb3dzLgotICAgICAgICAgICAgICAgIHNlbGYuc3RvcF9idG4ucGFjayhzaWRlPSdyaWdodCcpCi0KLSAgICAgICAgICAgIHNlbGYud2luZG93LnRpdGxlKCdweWRvYycpCi0gICAgICAgICAgICBzZWxmLndpbmRvdy5wcm90b2NvbCgnV01fREVMRVRFX1dJTkRPVycsIHNlbGYucXVpdCkKLSAgICAgICAgICAgIHNlbGYudGl0bGVfbGJsLnBhY2soc2lkZT0ndG9wJywgZmlsbD0neCcpCi0gICAgICAgICAgICBzZWxmLm9wZW5fYnRuLnBhY2soc2lkZT0nbGVmdCcsIGZpbGw9J3gnLCBleHBhbmQ9MSkKLSAgICAgICAgICAgIHNlbGYucXVpdF9idG4ucGFjayhzaWRlPSdyaWdodCcsIGZpbGw9J3gnLCBleHBhbmQ9MSkKLSAgICAgICAgICAgIHNlbGYuc2VydmVyX2ZybS5wYWNrKHNpZGU9J3RvcCcsIGZpbGw9J3gnKQotCi0gICAgICAgICAgICBzZWxmLnNlYXJjaF9sYmwucGFjayhzaWRlPSdsZWZ0JykKLSAgICAgICAgICAgIHNlbGYuc2VhcmNoX2VudC5wYWNrKHNpZGU9J3JpZ2h0JywgZmlsbD0neCcsIGV4cGFuZD0xKQotICAgICAgICAgICAgc2VsZi5zZWFyY2hfZnJtLnBhY2soc2lkZT0ndG9wJywgZmlsbD0neCcpCi0gICAgICAgICAgICBzZWxmLnNlYXJjaF9lbnQuZm9jdXNfc2V0KCkKLQotICAgICAgICAgICAgZm9udCA9ICgnaGVsdmV0aWNhJywgc3lzLnBsYXRmb3JtID09ICd3aW4zMicgYW5kIDggb3IgMTApCi0gICAgICAgICAgICBzZWxmLnJlc3VsdF9sc3QgPSB0a2ludGVyLkxpc3Rib3god2luZG93LCBmb250PWZvbnQsIGhlaWdodD02KQotICAgICAgICAgICAgc2VsZi5yZXN1bHRfbHN0LmJpbmQoJzxCdXR0b24tMT4nLCBzZWxmLnNlbGVjdCkKLSAgICAgICAgICAgIHNlbGYucmVzdWx0X2xzdC5iaW5kKCc8RG91YmxlLUJ1dHRvbi0xPicsIHNlbGYuZ290bykKLSAgICAgICAgICAgIHNlbGYucmVzdWx0X3NjciA9IHRraW50ZXIuU2Nyb2xsYmFyKHdpbmRvdywKLSAgICAgICAgICAgICAgICBvcmllbnQ9J3ZlcnRpY2FsJywgY29tbWFuZD1zZWxmLnJlc3VsdF9sc3QueXZpZXcpCi0gICAgICAgICAgICBzZWxmLnJlc3VsdF9sc3QuY29uZmlnKHlzY3JvbGxjb21tYW5kPXNlbGYucmVzdWx0X3Njci5zZXQpCi0KLSAgICAgICAgICAgIHNlbGYucmVzdWx0X2ZybSA9IHRraW50ZXIuRnJhbWUod2luZG93KQotICAgICAgICAgICAgc2VsZi5nb3RvX2J0biA9IHRraW50ZXIuQnV0dG9uKHNlbGYucmVzdWx0X2ZybSwKLSAgICAgICAgICAgICAgICB0ZXh0PSdnbyB0byBzZWxlY3RlZCcsIGNvbW1hbmQ9c2VsZi5nb3RvKQotICAgICAgICAgICAgc2VsZi5oaWRlX2J0biA9IHRraW50ZXIuQnV0dG9uKHNlbGYucmVzdWx0X2ZybSwKLSAgICAgICAgICAgICAgICB0ZXh0PSdoaWRlIHJlc3VsdHMnLCBjb21tYW5kPXNlbGYuaGlkZSkKLSAgICAgICAgICAgIHNlbGYuZ290b19idG4ucGFjayhzaWRlPSdsZWZ0JywgZmlsbD0neCcsIGV4cGFuZD0xKQotICAgICAgICAgICAgc2VsZi5oaWRlX2J0bi5wYWNrKHNpZGU9J3JpZ2h0JywgZmlsbD0neCcsIGV4cGFuZD0xKQotCi0gICAgICAgICAgICBzZWxmLndpbmRvdy51cGRhdGUoKQotICAgICAgICAgICAgc2VsZi5taW53aWR0aCA9IHNlbGYud2luZG93LndpbmZvX3dpZHRoKCkKLSAgICAgICAgICAgIHNlbGYubWluaGVpZ2h0ID0gc2VsZi53aW5kb3cud2luZm9faGVpZ2h0KCkKLSAgICAgICAgICAgIHNlbGYuYmlnbWluaGVpZ2h0ID0gKHNlbGYuc2VydmVyX2ZybS53aW5mb19yZXFoZWlnaHQoKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlYXJjaF9mcm0ud2luZm9fcmVxaGVpZ2h0KCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHRfbHN0LndpbmZvX3JlcWhlaWdodCgpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0X2ZybS53aW5mb19yZXFoZWlnaHQoKSkKLSAgICAgICAgICAgIHNlbGYuYmlnd2lkdGgsIHNlbGYuYmlnaGVpZ2h0ID0gc2VsZi5taW53aWR0aCwgc2VsZi5iaWdtaW5oZWlnaHQKLSAgICAgICAgICAgIHNlbGYuZXhwYW5kZWQgPSAwCi0gICAgICAgICAgICBzZWxmLndpbmRvdy53bV9nZW9tZXRyeSgnJWR4JWQnICUgKHNlbGYubWlud2lkdGgsIHNlbGYubWluaGVpZ2h0KSkKLSAgICAgICAgICAgIHNlbGYud2luZG93LndtX21pbnNpemUoc2VsZi5taW53aWR0aCwgc2VsZi5taW5oZWlnaHQpCi0gICAgICAgICAgICBzZWxmLndpbmRvdy50ay53aWxsZGlzcGF0Y2goKQotCi0gICAgICAgICAgICBpbXBvcnQgdGhyZWFkaW5nCi0gICAgICAgICAgICB0aHJlYWRpbmcuVGhyZWFkKAotICAgICAgICAgICAgICAgIHRhcmdldD1zZXJ2ZSwgYXJncz0ocG9ydCwgc2VsZi5yZWFkeSwgc2VsZi5xdWl0KSkuc3RhcnQoKQotCi0gICAgICAgIGRlZiByZWFkeShzZWxmLCBzZXJ2ZXIpOgotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBzZXJ2ZXIKLSAgICAgICAgICAgIHNlbGYudGl0bGVfbGJsLmNvbmZpZygKLSAgICAgICAgICAgICAgICB0ZXh0PSdQeXRob24gZG9jdW1lbnRhdGlvbiBzZXJ2ZXIgYXRcbicgKyBzZXJ2ZXIudXJsKQotICAgICAgICAgICAgc2VsZi5vcGVuX2J0bi5jb25maWcoc3RhdGU9J25vcm1hbCcpCi0gICAgICAgICAgICBzZWxmLnF1aXRfYnRuLmNvbmZpZyhzdGF0ZT0nbm9ybWFsJykKLQotICAgICAgICBkZWYgb3BlbihzZWxmLCBldmVudD1Ob25lLCB1cmw9Tm9uZSk6Ci0gICAgICAgICAgICB1cmwgPSB1cmwgb3Igc2VsZi5zZXJ2ZXIudXJsCi0gICAgICAgICAgICBpbXBvcnQgd2ViYnJvd3NlcgotICAgICAgICAgICAgd2ViYnJvd3Nlci5vcGVuKHVybCkKLQotICAgICAgICBkZWYgcXVpdChzZWxmLCBldmVudD1Ob25lKToKLSAgICAgICAgICAgIGlmIHNlbGYuc2VydmVyOgotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLnF1aXQgPSAxCi0gICAgICAgICAgICBzZWxmLndpbmRvdy5xdWl0KCkKLQotICAgICAgICBkZWYgc2VhcmNoKHNlbGYsIGV2ZW50PU5vbmUpOgotICAgICAgICAgICAga2V5ID0gc2VsZi5zZWFyY2hfZW50LmdldCgpCi0gICAgICAgICAgICBzZWxmLnN0b3BfYnRuLnBhY2soc2lkZT0ncmlnaHQnKQotICAgICAgICAgICAgc2VsZi5zdG9wX2J0bi5jb25maWcoc3RhdGU9J25vcm1hbCcpCi0gICAgICAgICAgICBzZWxmLnNlYXJjaF9sYmwuY29uZmlnKHRleHQ9J1NlYXJjaGluZyBmb3IgIiVzIi4uLicgJSBrZXkpCi0gICAgICAgICAgICBzZWxmLnNlYXJjaF9lbnQuZm9yZ2V0KCkKLSAgICAgICAgICAgIHNlbGYuc2VhcmNoX2xibC5wYWNrKHNpZGU9J2xlZnQnKQotICAgICAgICAgICAgc2VsZi5yZXN1bHRfbHN0LmRlbGV0ZSgwLCAnZW5kJykKLSAgICAgICAgICAgIHNlbGYuZ290b19idG4uY29uZmlnKHN0YXRlPSdkaXNhYmxlZCcpCi0gICAgICAgICAgICBzZWxmLmV4cGFuZCgpCi0KLSAgICAgICAgICAgIGltcG9ydCB0aHJlYWRpbmcKLSAgICAgICAgICAgIGlmIHNlbGYuc2Nhbm5lcjoKLSAgICAgICAgICAgICAgICBzZWxmLnNjYW5uZXIucXVpdCA9IDEKLSAgICAgICAgICAgIHNlbGYuc2Nhbm5lciA9IE1vZHVsZVNjYW5uZXIoKQotICAgICAgICAgICAgdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5zY2FubmVyLnJ1biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oc2VsZi51cGRhdGUsIGtleSwgc2VsZi5kb25lKSkuc3RhcnQoKQotCi0gICAgICAgIGRlZiB1cGRhdGUoc2VsZiwgcGF0aCwgbW9kbmFtZSwgZGVzYyk6Ci0gICAgICAgICAgICBpZiBtb2RuYW1lWy05Ol0gPT0gJy5fX2luaXRfXyc6Ci0gICAgICAgICAgICAgICAgbW9kbmFtZSA9IG1vZG5hbWVbOi05XSArICcgKHBhY2thZ2UpJwotICAgICAgICAgICAgc2VsZi5yZXN1bHRfbHN0Lmluc2VydCgnZW5kJywKLSAgICAgICAgICAgICAgICBtb2RuYW1lICsgJyAtICcgKyAoZGVzYyBvciAnKG5vIGRlc2NyaXB0aW9uKScpKQotCi0gICAgICAgIGRlZiBzdG9wKHNlbGYsIGV2ZW50PU5vbmUpOgotICAgICAgICAgICAgaWYgc2VsZi5zY2FubmVyOgotICAgICAgICAgICAgICAgIHNlbGYuc2Nhbm5lci5xdWl0ID0gMQotICAgICAgICAgICAgICAgIHNlbGYuc2Nhbm5lciA9IE5vbmUKLQotICAgICAgICBkZWYgZG9uZShzZWxmKToKLSAgICAgICAgICAgIHNlbGYuc2Nhbm5lciA9IE5vbmUKLSAgICAgICAgICAgIHNlbGYuc2VhcmNoX2xibC5jb25maWcodGV4dD0nU2VhcmNoIGZvcicpCi0gICAgICAgICAgICBzZWxmLnNlYXJjaF9sYmwucGFjayhzaWRlPSdsZWZ0JykKLSAgICAgICAgICAgIHNlbGYuc2VhcmNoX2VudC5wYWNrKHNpZGU9J3JpZ2h0JywgZmlsbD0neCcsIGV4cGFuZD0xKQotICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICd3aW4zMic6IHNlbGYuc3RvcF9idG4uZm9yZ2V0KCkKLSAgICAgICAgICAgIHNlbGYuc3RvcF9idG4uY29uZmlnKHN0YXRlPSdkaXNhYmxlZCcpCi0KLSAgICAgICAgZGVmIHNlbGVjdChzZWxmLCBldmVudD1Ob25lKToKLSAgICAgICAgICAgIHNlbGYuZ290b19idG4uY29uZmlnKHN0YXRlPSdub3JtYWwnKQotCi0gICAgICAgIGRlZiBnb3RvKHNlbGYsIGV2ZW50PU5vbmUpOgotICAgICAgICAgICAgc2VsZWN0aW9uID0gc2VsZi5yZXN1bHRfbHN0LmN1cnNlbGVjdGlvbigpCi0gICAgICAgICAgICBpZiBzZWxlY3Rpb246Ci0gICAgICAgICAgICAgICAgbW9kbmFtZSA9IHNlbGYucmVzdWx0X2xzdC5nZXQoc2VsZWN0aW9uWzBdKS5zcGxpdCgpWzBdCi0gICAgICAgICAgICAgICAgc2VsZi5vcGVuKHVybD1zZWxmLnNlcnZlci51cmwgKyBtb2RuYW1lICsgJy5odG1sJykKLQotICAgICAgICBkZWYgY29sbGFwc2Uoc2VsZik6Ci0gICAgICAgICAgICBpZiBub3Qgc2VsZi5leHBhbmRlZDogcmV0dXJuCi0gICAgICAgICAgICBzZWxmLnJlc3VsdF9mcm0uZm9yZ2V0KCkKLSAgICAgICAgICAgIHNlbGYucmVzdWx0X3Njci5mb3JnZXQoKQotICAgICAgICAgICAgc2VsZi5yZXN1bHRfbHN0LmZvcmdldCgpCi0gICAgICAgICAgICBzZWxmLmJpZ3dpZHRoID0gc2VsZi53aW5kb3cud2luZm9fd2lkdGgoKQotICAgICAgICAgICAgc2VsZi5iaWdoZWlnaHQgPSBzZWxmLndpbmRvdy53aW5mb19oZWlnaHQoKQotICAgICAgICAgICAgc2VsZi53aW5kb3cud21fZ2VvbWV0cnkoJyVkeCVkJyAlIChzZWxmLm1pbndpZHRoLCBzZWxmLm1pbmhlaWdodCkpCi0gICAgICAgICAgICBzZWxmLndpbmRvdy53bV9taW5zaXplKHNlbGYubWlud2lkdGgsIHNlbGYubWluaGVpZ2h0KQotICAgICAgICAgICAgc2VsZi5leHBhbmRlZCA9IDAKLQotICAgICAgICBkZWYgZXhwYW5kKHNlbGYpOgotICAgICAgICAgICAgaWYgc2VsZi5leHBhbmRlZDogcmV0dXJuCi0gICAgICAgICAgICBzZWxmLnJlc3VsdF9mcm0ucGFjayhzaWRlPSdib3R0b20nLCBmaWxsPSd4JykKLSAgICAgICAgICAgIHNlbGYucmVzdWx0X3Njci5wYWNrKHNpZGU9J3JpZ2h0JywgZmlsbD0neScpCi0gICAgICAgICAgICBzZWxmLnJlc3VsdF9sc3QucGFjayhzaWRlPSd0b3AnLCBmaWxsPSdib3RoJywgZXhwYW5kPTEpCi0gICAgICAgICAgICBzZWxmLndpbmRvdy53bV9nZW9tZXRyeSgnJWR4JWQnICUgKHNlbGYuYmlnd2lkdGgsIHNlbGYuYmlnaGVpZ2h0KSkKLSAgICAgICAgICAgIHNlbGYud2luZG93LndtX21pbnNpemUoc2VsZi5taW53aWR0aCwgc2VsZi5iaWdtaW5oZWlnaHQpCi0gICAgICAgICAgICBzZWxmLmV4cGFuZGVkID0gMQotCi0gICAgICAgIGRlZiBoaWRlKHNlbGYsIGV2ZW50PU5vbmUpOgotICAgICAgICAgICAgc2VsZi5zdG9wKCkKLSAgICAgICAgICAgIHNlbGYuY29sbGFwc2UoKQotCi0gICAgaW1wb3J0IHRraW50ZXIKLSAgICB0cnk6Ci0gICAgICAgIHJvb3QgPSB0a2ludGVyLlRrKCkKLSAgICAgICAgIyBUayB3aWxsIGNyYXNoIGlmIHB5dGhvbncuZXhlIGhhcyBhbiBYUCAubWFuaWZlc3QKLSAgICAgICAgIyBmaWxlIGFuZCB0aGUgcm9vdCBoYXMgaXMgbm90IGRlc3Ryb3llZCBleHBsaWNpdGx5LgotICAgICAgICAjIElmIHRoZSBwcm9ibGVtIGlzIGV2ZXIgZml4ZWQgaW4gVGssIHRoZSBleHBsaWNpdAotICAgICAgICAjIGRlc3Ryb3kgY2FuIGdvLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBndWkgPSBHVUkocm9vdCkKLSAgICAgICAgICAgIHJvb3QubWFpbmxvb3AoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgcm9vdC5kZXN0cm95KCkKLSAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgIHBhc3MKLQotCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBlbmhhbmNlZCBXZWIgYnJvd3NlciBpbnRlcmZhY2UKIAogZGVmIF9zdGFydF9zZXJ2ZXIodXJsaGFuZGxlciwgcG9ydCk6CkBAIC0yNzk2LDE1ICsyNTQxLDEyIEBACiAgICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCAnLicpCiAKICAgICB0cnk6Ci0gICAgICAgIG9wdHMsIGFyZ3MgPSBnZXRvcHQuZ2V0b3B0KHN5cy5hcmd2WzE6XSwgJ2JnazpwOncnKQorICAgICAgICBvcHRzLCBhcmdzID0gZ2V0b3B0LmdldG9wdChzeXMuYXJndlsxOl0sICdiazpwOncnKQogICAgICAgICB3cml0aW5nID0gRmFsc2UKICAgICAgICAgc3RhcnRfc2VydmVyID0gRmFsc2UKICAgICAgICAgb3Blbl9icm93c2VyID0gRmFsc2UKICAgICAgICAgcG9ydCA9IE5vbmUKICAgICAgICAgZm9yIG9wdCwgdmFsIGluIG9wdHM6Ci0gICAgICAgICAgICBpZiBvcHQgPT0gJy1nJzoKLSAgICAgICAgICAgICAgICBndWkoKQotICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgaWYgb3B0ID09ICctYic6CiAgICAgICAgICAgICAgICAgc3RhcnRfc2VydmVyID0gVHJ1ZQogICAgICAgICAgICAgICAgIG9wZW5fYnJvd3NlciA9IFRydWUKQEAgLTI4NjUsOSArMjYwNyw2IEBACiAgICAgdG8gaW50ZXJhY3RpdmVseSBicm93c2UgZG9jdW1lbnRhdGlvbi4gIFRoZSAtcCBvcHRpb24gY2FuIGJlIHVzZWQgd2l0aAogICAgIHRoZSAtYiBvcHRpb24gdG8gZXhwbGljaXRseSBzcGVjaWZ5IHRoZSBzZXJ2ZXIgcG9ydC4KIAote2NtZH0gLWcKLSAgICBEZXByZWNhdGVkLgotCiB7Y21kfSAtdyA8bmFtZT4gLi4uCiAgICAgV3JpdGUgb3V0IHRoZSBIVE1MIGRvY3VtZW50YXRpb24gZm9yIGEgbW9kdWxlIHRvIGEgZmlsZSBpbiB0aGUgY3VycmVudAogICAgIGRpcmVjdG9yeS4gIElmIDxuYW1lPiBjb250YWlucyBhICd7c2VwfScsIGl0IGlzIHRyZWF0ZWQgYXMgYSBmaWxlbmFtZTsgaWYKZGlmZiAtLWdpdCBhL0xpYi9weWRvY19kYXRhL3RvcGljcy5weSBiL0xpYi9weWRvY19kYXRhL3RvcGljcy5weQppbmRleCAwOGE5ZTdjLi41NWUzMTIxIDEwMDY0NAotLS0gYS9MaWIvcHlkb2NfZGF0YS90b3BpY3MucHkKKysrIGIvTGliL3B5ZG9jX2RhdGEvdG9waWNzLnB5CkBAIC0xLDE2ICsxLDE3IEBACi0jIEF1dG9nZW5lcmF0ZWQgYnkgU3BoaW54IG9uIFRodSBGZWIgMjMgMTg6Mzc6NTQgMjAxMgorIyAtKi0gY29kaW5nOiB1dGYtOCAtKi0KKyMgQXV0b2dlbmVyYXRlZCBieSBTcGhpbnggb24gVHVlIEp1biAyNiAwOToxMDo1MiAyMDEyCiB0b3BpY3MgPSB7J2Fzc2VydCc6ICdcblRoZSBgYGFzc2VydGBgIHN0YXRlbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqXG5cbkFzc2VydCBzdGF0ZW1lbnRzIGFyZSBhIGNvbnZlbmllbnQgd2F5IHRvIGluc2VydCBkZWJ1Z2dpbmcgYXNzZXJ0aW9uc1xuaW50byBhIHByb2dyYW06XG5cbiAgIGFzc2VydF9zdG10IDo6PSAiYXNzZXJ0IiBleHByZXNzaW9uIFsiLCIgZXhwcmVzc2lvbl1cblxuVGhlIHNpbXBsZSBmb3JtLCBgYGFzc2VydCBleHByZXNzaW9uYGAsIGlzIGVxdWl2YWxlbnQgdG9cblxuICAgaWYgX19kZWJ1Z19fOlxuICAgICAgaWYgbm90IGV4cHJlc3Npb246IHJhaXNlIEFzc2VydGlvbkVycm9yXG5cblRoZSBleHRlbmRlZCBmb3JtLCBgYGFzc2VydCBleHByZXNzaW9uMSwgZXhwcmVzc2lvbjJgYCwgaXMgZXF1aXZhbGVudFxudG9cblxuICAgaWYgX19kZWJ1Z19fOlxuICAgICAgaWYgbm90IGV4cHJlc3Npb24xOiByYWlzZSBBc3NlcnRpb25FcnJvcihleHByZXNzaW9uMilcblxuVGhlc2UgZXF1aXZhbGVuY2VzIGFzc3VtZSB0aGF0IGBgX19kZWJ1Z19fYGAgYW5kIGBgQXNzZXJ0aW9uRXJyb3JgYFxucmVmZXIgdG8gdGhlIGJ1aWx0LWluIHZhcmlhYmxlcyB3aXRoIHRob3NlIG5hbWVzLiAgSW4gdGhlIGN1cnJlbnRcbmltcGxlbWVudGF0aW9uLCB0aGUgYnVpbHQtaW4gdmFyaWFibGUgYGBfX2RlYnVnX19gYCBpcyBgYFRydWVgYCB1bmRlclxubm9ybWFsIGNpcmN1bXN0YW5jZXMsIGBgRmFsc2VgYCB3aGVuIG9wdGltaXphdGlvbiBpcyByZXF1ZXN0ZWRcbihjb21tYW5kIGxpbmUgb3B0aW9uIC1PKS4gIFRoZSBjdXJyZW50IGNvZGUgZ2VuZXJhdG9yIGVtaXRzIG5vIGNvZGVcbmZvciBhbiBhc3NlcnQgc3RhdGVtZW50IHdoZW4gb3B0aW1pemF0aW9uIGlzIHJlcXVlc3RlZCBhdCBjb21waWxlXG50aW1lLiAgTm90ZSB0aGF0IGl0IGlzIHVubmVjZXNzYXJ5IHRvIGluY2x1ZGUgdGhlIHNvdXJjZSBjb2RlIGZvciB0aGVcbmV4cHJlc3Npb24gdGhhdCBmYWlsZWQgaW4gdGhlIGVycm9yIG1lc3NhZ2U7IGl0IHdpbGwgYmUgZGlzcGxheWVkIGFzXG5wYXJ0IG9mIHRoZSBzdGFjayB0cmFjZS5cblxuQXNzaWdubWVudHMgdG8gYGBfX2RlYnVnX19gYCBhcmUgaWxsZWdhbC4gIFRoZSB2YWx1ZSBmb3IgdGhlIGJ1aWx0LWluXG52YXJpYWJsZSBpcyBkZXRlcm1pbmVkIHdoZW4gdGhlIGludGVycHJldGVyIHN0YXJ0cy5cbicsCiAgJ2Fzc2lnbm1lbnQnOiAnXG5Bc3NpZ25tZW50IHN0YXRlbWVudHNcbioqKioqKioqKioqKioqKioqKioqKlxuXG5Bc3NpZ25tZW50IHN0YXRlbWVudHMgYXJlIHVzZWQgdG8gKHJlKWJpbmQgbmFtZXMgdG8gdmFsdWVzIGFuZCB0b1xubW9kaWZ5IGF0dHJpYnV0ZXMgb3IgaXRlbXMgb2YgbXV0YWJsZSBvYmplY3RzOlxuXG4gICBhc3NpZ25tZW50X3N0bXQgOjo9ICh0YXJnZXRfbGlzdCAiPSIpKyAoZXhwcmVzc2lvbl9saXN0IHwgeWllbGRfZXhwcmVzc2lvbilcbiAgIHRhcmdldF9saXN0ICAgICA6Oj0gdGFyZ2V0ICgiLCIgdGFyZ2V0KSogWyIsIl1cbiAgIHRhcmdldCAgICAgICAgICA6Oj0gaWRlbnRpZmllclxuICAgICAgICAgICAgICB8ICIoIiB0YXJnZXRfbGlzdCAiKSJcbiAgICAgICAgICAgICAgfCAiWyIgdGFyZ2V0X2xpc3QgIl0iXG4gICAgICAgICAgICAgIHwgYXR0cmlidXRlcmVmXG4gICAgICAgICAgICAgIHwgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgICAgIHwgc2xpY2luZ1xuICAgICAgICAgICAgICB8ICIqIiB0YXJnZXRcblxuKFNlZSBzZWN0aW9uICpQcmltYXJpZXMqIGZvciB0aGUgc3ludGF4IGRlZmluaXRpb25zIGZvciB0aGUgbGFzdCB0aHJlZVxuc3ltYm9scy4pXG5cbkFuIGFzc2lnbm1lbnQgc3RhdGVtZW50IGV2YWx1YXRlcyB0aGUgZXhwcmVzc2lvbiBsaXN0IChyZW1lbWJlciB0aGF0XG50aGlzIGNhbiBiZSBhIHNpbmdsZSBleHByZXNzaW9uIG9yIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHRoZSBsYXR0ZXJcbnlpZWxkaW5nIGEgdHVwbGUpIGFuZCBhc3NpZ25zIHRoZSBzaW5nbGUgcmVzdWx0aW5nIG9iamVjdCB0byBlYWNoIG9mXG50aGUgdGFyZ2V0IGxpc3RzLCBmcm9tIGxlZnQgdG8gcmlnaHQuXG5cbkFzc2lnbm1lbnQgaXMgZGVmaW5lZCByZWN1cnNpdmVseSBkZXBlbmRpbmcgb24gdGhlIGZvcm0gb2YgdGhlIHRhcmdldFxuKGxpc3QpLiBXaGVuIGEgdGFyZ2V0IGlzIHBhcnQgb2YgYSBtdXRhYmxlIG9iamVjdCAoYW4gYXR0cmlidXRlXG5yZWZlcmVuY2UsIHN1YnNjcmlwdGlvbiBvciBzbGljaW5nKSwgdGhlIG11dGFibGUgb2JqZWN0IG11c3RcbnVsdGltYXRlbHkgcGVyZm9ybSB0aGUgYXNzaWdubWVudCBhbmQgZGVjaWRlIGFib3V0IGl0cyB2YWxpZGl0eSwgYW5kXG5tYXkgcmFpc2UgYW4gZXhjZXB0aW9uIGlmIHRoZSBhc3NpZ25tZW50IGlzIHVuYWNjZXB0YWJsZS4gIFRoZSBydWxlc1xub2JzZXJ2ZWQgYnkgdmFyaW91cyB0eXBlcyBhbmQgdGhlIGV4Y2VwdGlvbnMgcmFpc2VkIGFyZSBnaXZlbiB3aXRoIHRoZVxuZGVmaW5pdGlvbiBvZiB0aGUgb2JqZWN0IHR5cGVzIChzZWUgc2VjdGlvbiAqVGhlIHN0YW5kYXJkIHR5cGVcbmhpZXJhcmNoeSopLlxuXG5Bc3NpZ25tZW50IG9mIGFuIG9iamVjdCB0byBhIHRhcmdldCBsaXN0LCBvcHRpb25hbGx5IGVuY2xvc2VkIGluXG5wYXJlbnRoZXNlcyBvciBzcXVhcmUgYnJhY2tldHMsIGlzIHJlY3Vyc2l2ZWx5IGRlZmluZWQgYXMgZm9sbG93cy5cblxuKiBJZiB0aGUgdGFyZ2V0IGxpc3QgaXMgYSBzaW5nbGUgdGFyZ2V0OiBUaGUgb2JqZWN0IGlzIGFzc2lnbmVkIHRvXG4gIHRoYXQgdGFyZ2V0LlxuXG4qIElmIHRoZSB0YXJnZXQgbGlzdCBpcyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRhcmdldHM6IFRoZSBvYmplY3RcbiAgbXVzdCBiZSBhbiBpdGVyYWJsZSB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBpdGVtcyBhcyB0aGVyZSBhcmVcbiAgdGFyZ2V0cyBpbiB0aGUgdGFyZ2V0IGxpc3QsIGFuZCB0aGUgaXRlbXMgYXJlIGFzc2lnbmVkLCBmcm9tIGxlZnQgdG9cbiAgcmlnaHQsIHRvIHRoZSBjb3JyZXNwb25kaW5nIHRhcmdldHMuXG5cbiAgKiBJZiB0aGUgdGFyZ2V0IGxpc3QgY29udGFpbnMgb25lIHRhcmdldCBwcmVmaXhlZCB3aXRoIGFuIGFzdGVyaXNrLFxuICAgIGNhbGxlZCBhICJzdGFycmVkIiB0YXJnZXQ6IFRoZSBvYmplY3QgbXVzdCBiZSBhIHNlcXVlbmNlIHdpdGggYXRcbiAgICBsZWFzdCBhcyBtYW55IGl0ZW1zIGFzIHRoZXJlIGFyZSB0YXJnZXRzIGluIHRoZSB0YXJnZXQgbGlzdCwgbWludXNcbiAgICBvbmUuICBUaGUgZmlyc3QgaXRlbXMgb2YgdGhlIHNlcXVlbmNlIGFyZSBhc3NpZ25lZCwgZnJvbSBsZWZ0IHRvXG4gICAgcmlnaHQsIHRvIHRoZSB0YXJnZXRzIGJlZm9yZSB0aGUgc3RhcnJlZCB0YXJnZXQuICBUaGUgZmluYWwgaXRlbXNcbiAgICBvZiB0aGUgc2VxdWVuY2UgYXJlIGFzc2lnbmVkIHRvIHRoZSB0YXJnZXRzIGFmdGVyIHRoZSBzdGFycmVkXG4gICAgdGFyZ2V0LiAgQSBsaXN0IG9mIHRoZSByZW1haW5pbmcgaXRlbXMgaW4gdGhlIHNlcXVlbmNlIGlzIHRoZW5cbiAgICBhc3NpZ25lZCB0byB0aGUgc3RhcnJlZCB0YXJnZXQgKHRoZSBsaXN0IGNhbiBiZSBlbXB0eSkuXG5cbiAgKiBFbHNlOiBUaGUgb2JqZWN0IG11c3QgYmUgYSBzZXF1ZW5jZSB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBpdGVtc1xuICAgIGFzIHRoZXJlIGFyZSB0YXJnZXRzIGluIHRoZSB0YXJnZXQgbGlzdCwgYW5kIHRoZSBpdGVtcyBhcmVcbiAgICBhc3NpZ25lZCwgZnJvbSBsZWZ0IHRvIHJpZ2h0LCB0byB0aGUgY29ycmVzcG9uZGluZyB0YXJnZXRzLlxuXG5Bc3NpZ25tZW50IG9mIGFuIG9iamVjdCB0byBhIHNpbmdsZSB0YXJnZXQgaXMgcmVjdXJzaXZlbHkgZGVmaW5lZCBhc1xuZm9sbG93cy5cblxuKiBJZiB0aGUgdGFyZ2V0IGlzIGFuIGlkZW50aWZpZXIgKG5hbWUpOlxuXG4gICogSWYgdGhlIG5hbWUgZG9lcyBub3Qgb2NjdXIgaW4gYSBgYGdsb2JhbGBgIG9yIGBgbm9ubG9jYWxgYFxuICAgIHN0YXRlbWVudCBpbiB0aGUgY3VycmVudCBjb2RlIGJsb2NrOiB0aGUgbmFtZSBpcyBib3VuZCB0byB0aGVcbiAgICBvYmplY3QgaW4gdGhlIGN1cnJlbnQgbG9jYWwgbmFtZXNwYWNlLlxuXG4gICogT3RoZXJ3aXNlOiB0aGUgbmFtZSBpcyBib3VuZCB0byB0aGUgb2JqZWN0IGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlXG4gICAgb3IgdGhlIG91dGVyIG5hbWVzcGFjZSBkZXRlcm1pbmVkIGJ5IGBgbm9ubG9jYWxgYCwgcmVzcGVjdGl2ZWx5LlxuXG4gIFRoZSBuYW1lIGlzIHJlYm91bmQgaWYgaXQgd2FzIGFscmVhZHkgYm91bmQuICBUaGlzIG1heSBjYXVzZSB0aGVcbiAgcmVmZXJlbmNlIGNvdW50IGZvciB0aGUgb2JqZWN0IHByZXZpb3VzbHkgYm91bmQgdG8gdGhlIG5hbWUgdG8gcmVhY2hcbiAgemVybywgY2F1c2luZyB0aGUgb2JqZWN0IHRvIGJlIGRlYWxsb2NhdGVkIGFuZCBpdHMgZGVzdHJ1Y3RvciAoaWYgaXRcbiAgaGFzIG9uZSkgdG8gYmUgY2FsbGVkLlxuXG4qIElmIHRoZSB0YXJnZXQgaXMgYSB0YXJnZXQgbGlzdCBlbmNsb3NlZCBpbiBwYXJlbnRoZXNlcyBvciBpbiBzcXVhcmVcbiAgYnJhY2tldHM6IFRoZSBvYmplY3QgbXVzdCBiZSBhbiBpdGVyYWJsZSB3aXRoIHRoZSBzYW1lIG51bWJlciBvZlxuICBpdGVtcyBhcyB0aGVyZSBhcmUgdGFyZ2V0cyBpbiB0aGUgdGFyZ2V0IGxpc3QsIGFuZCBpdHMgaXRlbXMgYXJlXG4gIGFzc2lnbmVkLCBmcm9tIGxlZnQgdG8gcmlnaHQsIHRvIHRoZSBjb3JyZXNwb25kaW5nIHRhcmdldHMuXG5cbiogSWYgdGhlIHRhcmdldCBpcyBhbiBhdHRyaWJ1dGUgcmVmZXJlbmNlOiBUaGUgcHJpbWFyeSBleHByZXNzaW9uIGluXG4gIHRoZSByZWZlcmVuY2UgaXMgZXZhbHVhdGVkLiAgSXQgc2hvdWxkIHlpZWxkIGFuIG9iamVjdCB3aXRoXG4gIGFzc2lnbmFibGUgYXR0cmlidXRlczsgaWYgdGhpcyBpcyBub3QgdGhlIGNhc2UsIGBgVHlwZUVycm9yYGAgaXNcbiAgcmFpc2VkLiAgVGhhdCBvYmplY3QgaXMgdGhlbiBhc2tlZCB0byBhc3NpZ24gdGhlIGFzc2lnbmVkIG9iamVjdCB0b1xuICB0aGUgZ2l2ZW4gYXR0cmlidXRlOyBpZiBpdCBjYW5ub3QgcGVyZm9ybSB0aGUgYXNzaWdubWVudCwgaXQgcmFpc2VzXG4gIGFuIGV4Y2VwdGlvbiAodXN1YWxseSBidXQgbm90IG5lY2Vzc2FyaWx5IGBgQXR0cmlidXRlRXJyb3JgYCkuXG5cbiAgTm90ZTogSWYgdGhlIG9iamVjdCBpcyBhIGNsYXNzIGluc3RhbmNlIGFuZCB0aGUgYXR0cmlidXRlIHJlZmVyZW5jZVxuICBvY2N1cnMgb24gYm90aCBzaWRlcyBvZiB0aGUgYXNzaWdubWVudCBvcGVyYXRvciwgdGhlIFJIUyBleHByZXNzaW9uLFxuICBgYGEueGBgIGNhbiBhY2Nlc3MgZWl0aGVyIGFuIGluc3RhbmNlIGF0dHJpYnV0ZSBvciAoaWYgbm8gaW5zdGFuY2VcbiAgYXR0cmlidXRlIGV4aXN0cykgYSBjbGFzcyBhdHRyaWJ1dGUuICBUaGUgTEhTIHRhcmdldCBgYGEueGBgIGlzXG4gIGFsd2F5cyBzZXQgYXMgYW4gaW5zdGFuY2UgYXR0cmlidXRlLCBjcmVhdGluZyBpdCBpZiBuZWNlc3NhcnkuXG4gIFRodXMsIHRoZSB0d28gb2NjdXJyZW5jZXMgb2YgYGBhLnhgYCBkbyBub3QgbmVjZXNzYXJpbHkgcmVmZXIgdG8gdGhlXG4gIHNhbWUgYXR0cmlidXRlOiBpZiB0aGUgUkhTIGV4cHJlc3Npb24gcmVmZXJzIHRvIGEgY2xhc3MgYXR0cmlidXRlLFxuICB0aGUgTEhTIGNyZWF0ZXMgYSBuZXcgaW5zdGFuY2UgYXR0cmlidXRlIGFzIHRoZSB0YXJnZXQgb2YgdGhlXG4gIGFzc2lnbm1lbnQ6XG5cbiAgICAgY2xhc3MgQ2xzOlxuICAgICAgICAgeCA9IDMgICAgICAgICAgICAgIyBjbGFzcyB2YXJpYWJsZVxuICAgICBpbnN0ID0gQ2xzKClcbiAgICAgaW5zdC54ID0gaW5zdC54ICsgMSAgICMgd3JpdGVzIGluc3QueCBhcyA0IGxlYXZpbmcgQ2xzLnggYXMgM1xuXG4gIFRoaXMgZGVzY3JpcHRpb24gZG9lcyBub3QgbmVjZXNzYXJpbHkgYXBwbHkgdG8gZGVzY3JpcHRvclxuICBhdHRyaWJ1dGVzLCBzdWNoIGFzIHByb3BlcnRpZXMgY3JlYXRlZCB3aXRoIGBgcHJvcGVydHkoKWBgLlxuXG4qIElmIHRoZSB0YXJnZXQgaXMgYSBzdWJzY3JpcHRpb246IFRoZSBwcmltYXJ5IGV4cHJlc3Npb24gaW4gdGhlXG4gIHJlZmVyZW5jZSBpcyBldmFsdWF0ZWQuICBJdCBzaG91bGQgeWllbGQgZWl0aGVyIGEgbXV0YWJsZSBzZXF1ZW5jZVxuICBvYmplY3QgKHN1Y2ggYXMgYSBsaXN0KSBvciBhIG1hcHBpbmcgb2JqZWN0IChzdWNoIGFzIGEgZGljdGlvbmFyeSkuXG4gIE5leHQsIHRoZSBzdWJzY3JpcHQgZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQuXG5cbiAgSWYgdGhlIHByaW1hcnkgaXMgYSBtdXRhYmxlIHNlcXVlbmNlIG9iamVjdCAoc3VjaCBhcyBhIGxpc3QpLCB0aGVcbiAgc3Vic2NyaXB0IG11c3QgeWllbGQgYW4gaW50ZWdlci4gIElmIGl0IGlzIG5lZ2F0aXZlLCB0aGUgc2VxdWVuY2VcJ3NcbiAgbGVuZ3RoIGlzIGFkZGVkIHRvIGl0LiAgVGhlIHJlc3VsdGluZyB2YWx1ZSBtdXN0IGJlIGEgbm9ubmVnYXRpdmVcbiAgaW50ZWdlciBsZXNzIHRoYW4gdGhlIHNlcXVlbmNlXCdzIGxlbmd0aCwgYW5kIHRoZSBzZXF1ZW5jZSBpcyBhc2tlZFxuICB0byBhc3NpZ24gdGhlIGFzc2lnbmVkIG9iamVjdCB0byBpdHMgaXRlbSB3aXRoIHRoYXQgaW5kZXguICBJZiB0aGVcbiAgaW5kZXggaXMgb3V0IG9mIHJhbmdlLCBgYEluZGV4RXJyb3JgYCBpcyByYWlzZWQgKGFzc2lnbm1lbnQgdG8gYVxuICBzdWJzY3JpcHRlZCBzZXF1ZW5jZSBjYW5ub3QgYWRkIG5ldyBpdGVtcyB0byBhIGxpc3QpLlxuXG4gIElmIHRoZSBwcmltYXJ5IGlzIGEgbWFwcGluZyBvYmplY3QgKHN1Y2ggYXMgYSBkaWN0aW9uYXJ5KSwgdGhlXG4gIHN1YnNjcmlwdCBtdXN0IGhhdmUgYSB0eXBlIGNvbXBhdGlibGUgd2l0aCB0aGUgbWFwcGluZ1wncyBrZXkgdHlwZSxcbiAgYW5kIHRoZSBtYXBwaW5nIGlzIHRoZW4gYXNrZWQgdG8gY3JlYXRlIGEga2V5L2RhdHVtIHBhaXIgd2hpY2ggbWFwc1xuICB0aGUgc3Vic2NyaXB0IHRvIHRoZSBhc3NpZ25lZCBvYmplY3QuICBUaGlzIGNhbiBlaXRoZXIgcmVwbGFjZSBhblxuICBleGlzdGluZyBrZXkvdmFsdWUgcGFpciB3aXRoIHRoZSBzYW1lIGtleSB2YWx1ZSwgb3IgaW5zZXJ0IGEgbmV3XG4gIGtleS92YWx1ZSBwYWlyIChpZiBubyBrZXkgd2l0aCB0aGUgc2FtZSB2YWx1ZSBleGlzdGVkKS5cblxuICBGb3IgdXNlci1kZWZpbmVkIG9iamVjdHMsIHRoZSBgYF9fc2V0aXRlbV9fKClgYCBtZXRob2QgaXMgY2FsbGVkXG4gIHdpdGggYXBwcm9wcmlhdGUgYXJndW1lbnRzLlxuXG4qIElmIHRoZSB0YXJnZXQgaXMgYSBzbGljaW5nOiBUaGUgcHJpbWFyeSBleHByZXNzaW9uIGluIHRoZSByZWZlcmVuY2VcbiAgaXMgZXZhbHVhdGVkLiAgSXQgc2hvdWxkIHlpZWxkIGEgbXV0YWJsZSBzZXF1ZW5jZSBvYmplY3QgKHN1Y2ggYXMgYVxuICBsaXN0KS4gIFRoZSBhc3NpZ25lZCBvYmplY3Qgc2hvdWxkIGJlIGEgc2VxdWVuY2Ugb2JqZWN0IG9mIHRoZSBzYW1lXG4gIHR5cGUuICBOZXh0LCB0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kIGV4cHJlc3Npb25zIGFyZSBldmFsdWF0ZWQsXG4gIGluc29mYXIgdGhleSBhcmUgcHJlc2VudDsgZGVmYXVsdHMgYXJlIHplcm8gYW5kIHRoZSBzZXF1ZW5jZVwnc1xuICBsZW5ndGguICBUaGUgYm91bmRzIHNob3VsZCBldmFsdWF0ZSB0byBpbnRlZ2Vycy4gSWYgZWl0aGVyIGJvdW5kIGlzXG4gIG5lZ2F0aXZlLCB0aGUgc2VxdWVuY2VcJ3MgbGVuZ3RoIGlzIGFkZGVkIHRvIGl0LiAgVGhlIHJlc3VsdGluZ1xuICBib3VuZHMgYXJlIGNsaXBwZWQgdG8gbGllIGJldHdlZW4gemVybyBhbmQgdGhlIHNlcXVlbmNlXCdzIGxlbmd0aCxcbiAgaW5jbHVzaXZlLiAgRmluYWxseSwgdGhlIHNlcXVlbmNlIG9iamVjdCBpcyBhc2tlZCB0byByZXBsYWNlIHRoZVxuICBzbGljZSB3aXRoIHRoZSBpdGVtcyBvZiB0aGUgYXNzaWduZWQgc2VxdWVuY2UuICBUaGUgbGVuZ3RoIG9mIHRoZVxuICBzbGljZSBtYXkgYmUgZGlmZmVyZW50IGZyb20gdGhlIGxlbmd0aCBvZiB0aGUgYXNzaWduZWQgc2VxdWVuY2UsXG4gIHRodXMgY2hhbmdpbmcgdGhlIGxlbmd0aCBvZiB0aGUgdGFyZ2V0IHNlcXVlbmNlLCBpZiB0aGUgb2JqZWN0XG4gIGFsbG93cyBpdC5cblxuKipDUHl0aG9uIGltcGxlbWVudGF0aW9uIGRldGFpbDoqKiBJbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiwgdGhlXG5zeW50YXggZm9yIHRhcmdldHMgaXMgdGFrZW4gdG8gYmUgdGhlIHNhbWUgYXMgZm9yIGV4cHJlc3Npb25zLCBhbmRcbmludmFsaWQgc3ludGF4IGlzIHJlamVjdGVkIGR1cmluZyB0aGUgY29kZSBnZW5lcmF0aW9uIHBoYXNlLCBjYXVzaW5nXG5sZXNzIGRldGFpbGVkIGVycm9yIG1lc3NhZ2VzLlxuXG5XQVJOSU5HOiBBbHRob3VnaCB0aGUgZGVmaW5pdGlvbiBvZiBhc3NpZ25tZW50IGltcGxpZXMgdGhhdCBvdmVybGFwc1xuYmV0d2VlbiB0aGUgbGVmdC1oYW5kIHNpZGUgYW5kIHRoZSByaWdodC1oYW5kIHNpZGUgYXJlIFwnc2FmZVwnIChmb3JcbmV4YW1wbGUgYGBhLCBiID0gYiwgYWBgIHN3YXBzIHR3byB2YXJpYWJsZXMpLCBvdmVybGFwcyAqd2l0aGluKiB0aGVcbmNvbGxlY3Rpb24gb2YgYXNzaWduZWQtdG8gdmFyaWFibGVzIGFyZSBub3Qgc2FmZSEgIEZvciBpbnN0YW5jZSwgdGhlXG5mb2xsb3dpbmcgcHJvZ3JhbSBwcmludHMgYGBbMCwgMl1gYDpcblxuICAgeCA9IFswLCAxXVxuICAgaSA9IDBcbiAgIGksIHhbaV0gPSAxLCAyXG4gICBwcmludCh4KVxuXG5TZWUgYWxzbzpcblxuICAgKipQRVAgMzEzMioqIC0gRXh0ZW5kZWQgSXRlcmFibGUgVW5wYWNraW5nXG4gICAgICBUaGUgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGBgKnRhcmdldGBgIGZlYXR1cmUuXG5cblxuQXVnbWVudGVkIGFzc2lnbm1lbnQgc3RhdGVtZW50c1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5BdWdtZW50ZWQgYXNzaWdubWVudCBpcyB0aGUgY29tYmluYXRpb24sIGluIGEgc2luZ2xlIHN0YXRlbWVudCwgb2YgYVxuYmluYXJ5IG9wZXJhdGlvbiBhbmQgYW4gYXNzaWdubWVudCBzdGF0ZW1lbnQ6XG5cbiAgIGF1Z21lbnRlZF9hc3NpZ25tZW50X3N0bXQgOjo9IGF1Z3RhcmdldCBhdWdvcCAoZXhwcmVzc2lvbl9saXN0IHwgeWllbGRfZXhwcmVzc2lvbilcbiAgIGF1Z3RhcmdldCAgICAgICAgICAgICAgICAgOjo9IGlkZW50aWZpZXIgfCBhdHRyaWJ1dGVyZWYgfCBzdWJzY3JpcHRpb24gfCBzbGljaW5nXG4gICBhdWdvcCAgICAgICAgICAgICAgICAgICAgIDo6PSAiKz0iIHwgIi09IiB8ICIqPSIgfCAiLz0iIHwgIi8vPSIgfCAiJT0iIHwgIioqPSJcbiAgICAgICAgICAgICB8ICI+Pj0iIHwgIjw8PSIgfCAiJj0iIHwgIl49IiB8ICJ8PSJcblxuKFNlZSBzZWN0aW9uICpQcmltYXJpZXMqIGZvciB0aGUgc3ludGF4IGRlZmluaXRpb25zIGZvciB0aGUgbGFzdCB0aHJlZVxuc3ltYm9scy4pXG5cbkFuIGF1Z21lbnRlZCBhc3NpZ25tZW50IGV2YWx1YXRlcyB0aGUgdGFyZ2V0ICh3aGljaCwgdW5saWtlIG5vcm1hbFxuYXNzaWdubWVudCBzdGF0ZW1lbnRzLCBjYW5ub3QgYmUgYW4gdW5wYWNraW5nKSBhbmQgdGhlIGV4cHJlc3Npb25cbmxpc3QsIHBlcmZvcm1zIHRoZSBiaW5hcnkgb3BlcmF0aW9uIHNwZWNpZmljIHRvIHRoZSB0eXBlIG9mIGFzc2lnbm1lbnRcbm9uIHRoZSB0d28gb3BlcmFuZHMsIGFuZCBhc3NpZ25zIHRoZSByZXN1bHQgdG8gdGhlIG9yaWdpbmFsIHRhcmdldC5cblRoZSB0YXJnZXQgaXMgb25seSBldmFsdWF0ZWQgb25jZS5cblxuQW4gYXVnbWVudGVkIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiBsaWtlIGBgeCArPSAxYGAgY2FuIGJlIHJld3JpdHRlbiBhc1xuYGB4ID0geCArIDFgYCB0byBhY2hpZXZlIGEgc2ltaWxhciwgYnV0IG5vdCBleGFjdGx5IGVxdWFsIGVmZmVjdC4gSW5cbnRoZSBhdWdtZW50ZWQgdmVyc2lvbiwgYGB4YGAgaXMgb25seSBldmFsdWF0ZWQgb25jZS4gQWxzbywgd2hlblxucG9zc2libGUsIHRoZSBhY3R1YWwgb3BlcmF0aW9uIGlzIHBlcmZvcm1lZCAqaW4tcGxhY2UqLCBtZWFuaW5nIHRoYXRcbnJhdGhlciB0aGFuIGNyZWF0aW5nIGEgbmV3IG9iamVjdCBhbmQgYXNzaWduaW5nIHRoYXQgdG8gdGhlIHRhcmdldCxcbnRoZSBvbGQgb2JqZWN0IGlzIG1vZGlmaWVkIGluc3RlYWQuXG5cbldpdGggdGhlIGV4Y2VwdGlvbiBvZiBhc3NpZ25pbmcgdG8gdHVwbGVzIGFuZCBtdWx0aXBsZSB0YXJnZXRzIGluIGFcbnNpbmdsZSBzdGF0ZW1lbnQsIHRoZSBhc3NpZ25tZW50IGRvbmUgYnkgYXVnbWVudGVkIGFzc2lnbm1lbnRcbnN0YXRlbWVudHMgaXMgaGFuZGxlZCB0aGUgc2FtZSB3YXkgYXMgbm9ybWFsIGFzc2lnbm1lbnRzLiBTaW1pbGFybHksXG53aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIHBvc3NpYmxlICppbi1wbGFjZSogYmVoYXZpb3IsIHRoZSBiaW5hcnlcbm9wZXJhdGlvbiBwZXJmb3JtZWQgYnkgYXVnbWVudGVkIGFzc2lnbm1lbnQgaXMgdGhlIHNhbWUgYXMgdGhlIG5vcm1hbFxuYmluYXJ5IG9wZXJhdGlvbnMuXG5cbkZvciB0YXJnZXRzIHdoaWNoIGFyZSBhdHRyaWJ1dGUgcmVmZXJlbmNlcywgdGhlIHNhbWUgKmNhdmVhdCBhYm91dFxuY2xhc3MgYW5kIGluc3RhbmNlIGF0dHJpYnV0ZXMqIGFwcGxpZXMgYXMgZm9yIHJlZ3VsYXIgYXNzaWdubWVudHMuXG4nLAogICdhdG9tLWlkZW50aWZpZXJzJzogJ1xuSWRlbnRpZmllcnMgKE5hbWVzKVxuKioqKioqKioqKioqKioqKioqKlxuXG5BbiBpZGVudGlmaWVyIG9jY3VycmluZyBhcyBhbiBhdG9tIGlzIGEgbmFtZS4gIFNlZSBzZWN0aW9uXG4qSWRlbnRpZmllcnMgYW5kIGtleXdvcmRzKiBmb3IgbGV4aWNhbCBkZWZpbml0aW9uIGFuZCBzZWN0aW9uICpOYW1pbmdcbmFuZCBiaW5kaW5nKiBmb3IgZG9jdW1lbnRhdGlvbiBvZiBuYW1pbmcgYW5kIGJpbmRpbmcuXG5cbldoZW4gdGhlIG5hbWUgaXMgYm91bmQgdG8gYW4gb2JqZWN0LCBldmFsdWF0aW9uIG9mIHRoZSBhdG9tIHlpZWxkc1xudGhhdCBvYmplY3QuIFdoZW4gYSBuYW1lIGlzIG5vdCBib3VuZCwgYW4gYXR0ZW1wdCB0byBldmFsdWF0ZSBpdFxucmFpc2VzIGEgYGBOYW1lRXJyb3JgYCBleGNlcHRpb24uXG5cbioqUHJpdmF0ZSBuYW1lIG1hbmdsaW5nOioqIFdoZW4gYW4gaWRlbnRpZmllciB0aGF0IHRleHR1YWxseSBvY2N1cnMgaW5cbmEgY2xhc3MgZGVmaW5pdGlvbiBiZWdpbnMgd2l0aCB0d28gb3IgbW9yZSB1bmRlcnNjb3JlIGNoYXJhY3RlcnMgYW5kXG5kb2VzIG5vdCBlbmQgaW4gdHdvIG9yIG1vcmUgdW5kZXJzY29yZXMsIGl0IGlzIGNvbnNpZGVyZWQgYSAqcHJpdmF0ZVxubmFtZSogb2YgdGhhdCBjbGFzcy4gUHJpdmF0ZSBuYW1lcyBhcmUgdHJhbnNmb3JtZWQgdG8gYSBsb25nZXIgZm9ybVxuYmVmb3JlIGNvZGUgaXMgZ2VuZXJhdGVkIGZvciB0aGVtLiAgVGhlIHRyYW5zZm9ybWF0aW9uIGluc2VydHMgdGhlXG5jbGFzcyBuYW1lIGluIGZyb250IG9mIHRoZSBuYW1lLCB3aXRoIGxlYWRpbmcgdW5kZXJzY29yZXMgcmVtb3ZlZCwgYW5kXG5hIHNpbmdsZSB1bmRlcnNjb3JlIGluc2VydGVkIGluIGZyb250IG9mIHRoZSBjbGFzcyBuYW1lLiAgRm9yIGV4YW1wbGUsXG50aGUgaWRlbnRpZmllciBgYF9fc3BhbWBgIG9jY3VycmluZyBpbiBhIGNsYXNzIG5hbWVkIGBgSGFtYGAgd2lsbCBiZVxudHJhbnNmb3JtZWQgdG8gYGBfSGFtX19zcGFtYGAuICBUaGlzIHRyYW5zZm9ybWF0aW9uIGlzIGluZGVwZW5kZW50IG9mXG50aGUgc3ludGFjdGljYWwgY29udGV4dCBpbiB3aGljaCB0aGUgaWRlbnRpZmllciBpcyB1c2VkLiAgSWYgdGhlXG50cmFuc2Zvcm1lZCBuYW1lIGlzIGV4dHJlbWVseSBsb25nIChsb25nZXIgdGhhbiAyNTUgY2hhcmFjdGVycyksXG5pbXBsZW1lbnRhdGlvbiBkZWZpbmVkIHRydW5jYXRpb24gbWF5IGhhcHBlbi4gIElmIHRoZSBjbGFzcyBuYW1lXG5jb25zaXN0cyBvbmx5IG9mIHVuZGVyc2NvcmVzLCBubyB0cmFuc2Zvcm1hdGlvbiBpcyBkb25lLlxuJywKICAnYXRvbS1saXRlcmFscyc6ICJcbkxpdGVyYWxzXG4qKioqKioqKlxuXG5QeXRob24gc3VwcG9ydHMgc3RyaW5nIGFuZCBieXRlcyBsaXRlcmFscyBhbmQgdmFyaW91cyBudW1lcmljXG5saXRlcmFsczpcblxuICAgbGl0ZXJhbCA6Oj0gc3RyaW5nbGl0ZXJhbCB8IGJ5dGVzbGl0ZXJhbFxuICAgICAgICAgICAgICAgfCBpbnRlZ2VyIHwgZmxvYXRudW1iZXIgfCBpbWFnbnVtYmVyXG5cbkV2YWx1YXRpb24gb2YgYSBsaXRlcmFsIHlpZWxkcyBhbiBvYmplY3Qgb2YgdGhlIGdpdmVuIHR5cGUgKHN0cmluZyxcbmJ5dGVzLCBpbnRlZ2VyLCBmbG9hdGluZyBwb2ludCBudW1iZXIsIGNvbXBsZXggbnVtYmVyKSB3aXRoIHRoZSBnaXZlblxudmFsdWUuICBUaGUgdmFsdWUgbWF5IGJlIGFwcHJveGltYXRlZCBpbiB0aGUgY2FzZSBvZiBmbG9hdGluZyBwb2ludFxuYW5kIGltYWdpbmFyeSAoY29tcGxleCkgbGl0ZXJhbHMuICBTZWUgc2VjdGlvbiAqTGl0ZXJhbHMqIGZvciBkZXRhaWxzLlxuXG5BbGwgbGl0ZXJhbHMgY29ycmVzcG9uZCB0byBpbW11dGFibGUgZGF0YSB0eXBlcywgYW5kIGhlbmNlIHRoZVxub2JqZWN0J3MgaWRlbnRpdHkgaXMgbGVzcyBpbXBvcnRhbnQgdGhhbiBpdHMgdmFsdWUuICBNdWx0aXBsZVxuZXZhbHVhdGlvbnMgb2YgbGl0ZXJhbHMgd2l0aCB0aGUgc2FtZSB2YWx1ZSAoZWl0aGVyIHRoZSBzYW1lXG5vY2N1cnJlbmNlIGluIHRoZSBwcm9ncmFtIHRleHQgb3IgYSBkaWZmZXJlbnQgb2NjdXJyZW5jZSkgbWF5IG9idGFpblxudGhlIHNhbWUgb2JqZWN0IG9yIGEgZGlmZmVyZW50IG9iamVjdCB3aXRoIHRoZSBzYW1lIHZhbHVlLlxuIiwKLSAnYXR0cmlidXRlLWFjY2Vzcyc6ICdcbkN1c3RvbWl6aW5nIGF0dHJpYnV0ZSBhY2Nlc3NcbioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuVGhlIGZvbGxvd2luZyBtZXRob2RzIGNhbiBiZSBkZWZpbmVkIHRvIGN1c3RvbWl6ZSB0aGUgbWVhbmluZyBvZlxuYXR0cmlidXRlIGFjY2VzcyAodXNlIG9mLCBhc3NpZ25tZW50IHRvLCBvciBkZWxldGlvbiBvZiBgYHgubmFtZWBgKVxuZm9yIGNsYXNzIGluc3RhbmNlcy5cblxub2JqZWN0Ll9fZ2V0YXR0cl9fKHNlbGYsIG5hbWUpXG5cbiAgIENhbGxlZCB3aGVuIGFuIGF0dHJpYnV0ZSBsb29rdXAgaGFzIG5vdCBmb3VuZCB0aGUgYXR0cmlidXRlIGluIHRoZVxuICAgdXN1YWwgcGxhY2VzIChpLmUuIGl0IGlzIG5vdCBhbiBpbnN0YW5jZSBhdHRyaWJ1dGUgbm9yIGlzIGl0IGZvdW5kXG4gICBpbiB0aGUgY2xhc3MgdHJlZSBmb3IgYGBzZWxmYGApLiAgYGBuYW1lYGAgaXMgdGhlIGF0dHJpYnV0ZSBuYW1lLlxuICAgVGhpcyBtZXRob2Qgc2hvdWxkIHJldHVybiB0aGUgKGNvbXB1dGVkKSBhdHRyaWJ1dGUgdmFsdWUgb3IgcmFpc2VcbiAgIGFuIGBgQXR0cmlidXRlRXJyb3JgYCBleGNlcHRpb24uXG5cbiAgIE5vdGUgdGhhdCBpZiB0aGUgYXR0cmlidXRlIGlzIGZvdW5kIHRocm91Z2ggdGhlIG5vcm1hbCBtZWNoYW5pc20sXG4gICBgYF9fZ2V0YXR0cl9fKClgYCBpcyBub3QgY2FsbGVkLiAgKFRoaXMgaXMgYW4gaW50ZW50aW9uYWwgYXN5bW1ldHJ5XG4gICBiZXR3ZWVuIGBgX19nZXRhdHRyX18oKWBgIGFuZCBgYF9fc2V0YXR0cl9fKClgYC4pIFRoaXMgaXMgZG9uZSBib3RoXG4gICBmb3IgZWZmaWNpZW5jeSByZWFzb25zIGFuZCBiZWNhdXNlIG90aGVyd2lzZSBgYF9fZ2V0YXR0cl9fKClgYFxuICAgd291bGQgaGF2ZSBubyB3YXkgdG8gYWNjZXNzIG90aGVyIGF0dHJpYnV0ZXMgb2YgdGhlIGluc3RhbmNlLiAgTm90ZVxuICAgdGhhdCBhdCBsZWFzdCBmb3IgaW5zdGFuY2UgdmFyaWFibGVzLCB5b3UgY2FuIGZha2UgdG90YWwgY29udHJvbCBieVxuICAgbm90IGluc2VydGluZyBhbnkgdmFsdWVzIGluIHRoZSBpbnN0YW5jZSBhdHRyaWJ1dGUgZGljdGlvbmFyeSAoYnV0XG4gICBpbnN0ZWFkIGluc2VydGluZyB0aGVtIGluIGFub3RoZXIgb2JqZWN0KS4gIFNlZSB0aGVcbiAgIGBgX19nZXRhdHRyaWJ1dGVfXygpYGAgbWV0aG9kIGJlbG93IGZvciBhIHdheSB0byBhY3R1YWxseSBnZXQgdG90YWxcbiAgIGNvbnRyb2wgb3ZlciBhdHRyaWJ1dGUgYWNjZXNzLlxuXG5vYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKVxuXG4gICBDYWxsZWQgdW5jb25kaXRpb25hbGx5IHRvIGltcGxlbWVudCBhdHRyaWJ1dGUgYWNjZXNzZXMgZm9yXG4gICBpbnN0YW5jZXMgb2YgdGhlIGNsYXNzLiBJZiB0aGUgY2xhc3MgYWxzbyBkZWZpbmVzXG4gICBgYF9fZ2V0YXR0cl9fKClgYCwgdGhlIGxhdHRlciB3aWxsIG5vdCBiZSBjYWxsZWQgdW5sZXNzXG4gICBgYF9fZ2V0YXR0cmlidXRlX18oKWBgIGVpdGhlciBjYWxscyBpdCBleHBsaWNpdGx5IG9yIHJhaXNlcyBhblxuICAgYGBBdHRyaWJ1dGVFcnJvcmBgLiBUaGlzIG1ldGhvZCBzaG91bGQgcmV0dXJuIHRoZSAoY29tcHV0ZWQpXG4gICBhdHRyaWJ1dGUgdmFsdWUgb3IgcmFpc2UgYW4gYGBBdHRyaWJ1dGVFcnJvcmBgIGV4Y2VwdGlvbi4gSW4gb3JkZXJcbiAgIHRvIGF2b2lkIGluZmluaXRlIHJlY3Vyc2lvbiBpbiB0aGlzIG1ldGhvZCwgaXRzIGltcGxlbWVudGF0aW9uXG4gICBzaG91bGQgYWx3YXlzIGNhbGwgdGhlIGJhc2UgY2xhc3MgbWV0aG9kIHdpdGggdGhlIHNhbWUgbmFtZSB0b1xuICAgYWNjZXNzIGFueSBhdHRyaWJ1dGVzIGl0IG5lZWRzLCBmb3IgZXhhbXBsZSxcbiAgIGBgb2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwgbmFtZSlgYC5cblxuICAgTm90ZTogVGhpcyBtZXRob2QgbWF5IHN0aWxsIGJlIGJ5cGFzc2VkIHdoZW4gbG9va2luZyB1cCBzcGVjaWFsIG1ldGhvZHNcbiAgICAgYXMgdGhlIHJlc3VsdCBvZiBpbXBsaWNpdCBpbnZvY2F0aW9uIHZpYSBsYW5ndWFnZSBzeW50YXggb3JcbiAgICAgYnVpbHQtaW4gZnVuY3Rpb25zLiBTZWUgKlNwZWNpYWwgbWV0aG9kIGxvb2t1cCouXG5cbm9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSlcblxuICAgQ2FsbGVkIHdoZW4gYW4gYXR0cmlidXRlIGFzc2lnbm1lbnQgaXMgYXR0ZW1wdGVkLiAgVGhpcyBpcyBjYWxsZWRcbiAgIGluc3RlYWQgb2YgdGhlIG5vcm1hbCBtZWNoYW5pc20gKGkuZS4gc3RvcmUgdGhlIHZhbHVlIGluIHRoZVxuICAgaW5zdGFuY2UgZGljdGlvbmFyeSkuICpuYW1lKiBpcyB0aGUgYXR0cmlidXRlIG5hbWUsICp2YWx1ZSogaXMgdGhlXG4gICB2YWx1ZSB0byBiZSBhc3NpZ25lZCB0byBpdC5cblxuICAgSWYgYGBfX3NldGF0dHJfXygpYGAgd2FudHMgdG8gYXNzaWduIHRvIGFuIGluc3RhbmNlIGF0dHJpYnV0ZSwgaXRcbiAgIHNob3VsZCBjYWxsIHRoZSBiYXNlIGNsYXNzIG1ldGhvZCB3aXRoIHRoZSBzYW1lIG5hbWUsIGZvciBleGFtcGxlLFxuICAgYGBvYmplY3QuX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpYGAuXG5cbm9iamVjdC5fX2RlbGF0dHJfXyhzZWxmLCBuYW1lKVxuXG4gICBMaWtlIGBgX19zZXRhdHRyX18oKWBgIGJ1dCBmb3IgYXR0cmlidXRlIGRlbGV0aW9uIGluc3RlYWQgb2ZcbiAgIGFzc2lnbm1lbnQuICBUaGlzIHNob3VsZCBvbmx5IGJlIGltcGxlbWVudGVkIGlmIGBgZGVsIG9iai5uYW1lYGAgaXNcbiAgIG1lYW5pbmdmdWwgZm9yIHRoZSBvYmplY3QuXG5cbm9iamVjdC5fX2Rpcl9fKHNlbGYpXG5cbiAgIENhbGxlZCB3aGVuIGBgZGlyKClgYCBpcyBjYWxsZWQgb24gdGhlIG9iamVjdC4gIEEgbGlzdCBtdXN0IGJlXG4gICByZXR1cm5lZC5cblxuXG5JbXBsZW1lbnRpbmcgRGVzY3JpcHRvcnNcbj09PT09PT09PT09PT09PT09PT09PT09PVxuXG5UaGUgZm9sbG93aW5nIG1ldGhvZHMgb25seSBhcHBseSB3aGVuIGFuIGluc3RhbmNlIG9mIHRoZSBjbGFzc1xuY29udGFpbmluZyB0aGUgbWV0aG9kIChhIHNvLWNhbGxlZCAqZGVzY3JpcHRvciogY2xhc3MpIGFwcGVhcnMgaW4gYW5cbipvd25lciogY2xhc3MgKHRoZSBkZXNjcmlwdG9yIG11c3QgYmUgaW4gZWl0aGVyIHRoZSBvd25lclwncyBjbGFzc1xuZGljdGlvbmFyeSBvciBpbiB0aGUgY2xhc3MgZGljdGlvbmFyeSBmb3Igb25lIG9mIGl0cyBwYXJlbnRzKS4gIEluIHRoZVxuZXhhbXBsZXMgYmVsb3csICJ0aGUgYXR0cmlidXRlIiByZWZlcnMgdG8gdGhlIGF0dHJpYnV0ZSB3aG9zZSBuYW1lIGlzXG50aGUga2V5IG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgb3duZXIgY2xhc3NcJyBgYF9fZGljdF9fYGAuXG5cbm9iamVjdC5fX2dldF9fKHNlbGYsIGluc3RhbmNlLCBvd25lcilcblxuICAgQ2FsbGVkIHRvIGdldCB0aGUgYXR0cmlidXRlIG9mIHRoZSBvd25lciBjbGFzcyAoY2xhc3MgYXR0cmlidXRlXG4gICBhY2Nlc3MpIG9yIG9mIGFuIGluc3RhbmNlIG9mIHRoYXQgY2xhc3MgKGluc3RhbmNlIGF0dHJpYnV0ZVxuICAgYWNjZXNzKS4gKm93bmVyKiBpcyBhbHdheXMgdGhlIG93bmVyIGNsYXNzLCB3aGlsZSAqaW5zdGFuY2UqIGlzIHRoZVxuICAgaW5zdGFuY2UgdGhhdCB0aGUgYXR0cmlidXRlIHdhcyBhY2Nlc3NlZCB0aHJvdWdoLCBvciBgYE5vbmVgYCB3aGVuXG4gICB0aGUgYXR0cmlidXRlIGlzIGFjY2Vzc2VkIHRocm91Z2ggdGhlICpvd25lciouICBUaGlzIG1ldGhvZCBzaG91bGRcbiAgIHJldHVybiB0aGUgKGNvbXB1dGVkKSBhdHRyaWJ1dGUgdmFsdWUgb3IgcmFpc2UgYW5cbiAgIGBgQXR0cmlidXRlRXJyb3JgYCBleGNlcHRpb24uXG5cbm9iamVjdC5fX3NldF9fKHNlbGYsIGluc3RhbmNlLCB2YWx1ZSlcblxuICAgQ2FsbGVkIHRvIHNldCB0aGUgYXR0cmlidXRlIG9uIGFuIGluc3RhbmNlICppbnN0YW5jZSogb2YgdGhlIG93bmVyXG4gICBjbGFzcyB0byBhIG5ldyB2YWx1ZSwgKnZhbHVlKi5cblxub2JqZWN0Ll9fZGVsZXRlX18oc2VsZiwgaW5zdGFuY2UpXG5cbiAgIENhbGxlZCB0byBkZWxldGUgdGhlIGF0dHJpYnV0ZSBvbiBhbiBpbnN0YW5jZSAqaW5zdGFuY2UqIG9mIHRoZVxuICAgb3duZXIgY2xhc3MuXG5cblxuSW52b2tpbmcgRGVzY3JpcHRvcnNcbj09PT09PT09PT09PT09PT09PT09XG5cbkluIGdlbmVyYWwsIGEgZGVzY3JpcHRvciBpcyBhbiBvYmplY3QgYXR0cmlidXRlIHdpdGggImJpbmRpbmdcbmJlaGF2aW9yIiwgb25lIHdob3NlIGF0dHJpYnV0ZSBhY2Nlc3MgaGFzIGJlZW4gb3ZlcnJpZGRlbiBieSBtZXRob2RzXG5pbiB0aGUgZGVzY3JpcHRvciBwcm90b2NvbDogIGBgX19nZXRfXygpYGAsIGBgX19zZXRfXygpYGAsIGFuZFxuYGBfX2RlbGV0ZV9fKClgYC4gSWYgYW55IG9mIHRob3NlIG1ldGhvZHMgYXJlIGRlZmluZWQgZm9yIGFuIG9iamVjdCxcbml0IGlzIHNhaWQgdG8gYmUgYSBkZXNjcmlwdG9yLlxuXG5UaGUgZGVmYXVsdCBiZWhhdmlvciBmb3IgYXR0cmlidXRlIGFjY2VzcyBpcyB0byBnZXQsIHNldCwgb3IgZGVsZXRlXG50aGUgYXR0cmlidXRlIGZyb20gYW4gb2JqZWN0XCdzIGRpY3Rpb25hcnkuIEZvciBpbnN0YW5jZSwgYGBhLnhgYCBoYXMgYVxubG9va3VwIGNoYWluIHN0YXJ0aW5nIHdpdGggYGBhLl9fZGljdF9fW1wneFwnXWBgLCB0aGVuXG5gYHR5cGUoYSkuX19kaWN0X19bXCd4XCddYGAsIGFuZCBjb250aW51aW5nIHRocm91Z2ggdGhlIGJhc2UgY2xhc3NlcyBvZlxuYGB0eXBlKGEpYGAgZXhjbHVkaW5nIG1ldGFjbGFzc2VzLlxuXG5Ib3dldmVyLCBpZiB0aGUgbG9va2VkLXVwIHZhbHVlIGlzIGFuIG9iamVjdCBkZWZpbmluZyBvbmUgb2YgdGhlXG5kZXNjcmlwdG9yIG1ldGhvZHMsIHRoZW4gUHl0aG9uIG1heSBvdmVycmlkZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBhbmRcbmludm9rZSB0aGUgZGVzY3JpcHRvciBtZXRob2QgaW5zdGVhZC4gIFdoZXJlIHRoaXMgb2NjdXJzIGluIHRoZVxucHJlY2VkZW5jZSBjaGFpbiBkZXBlbmRzIG9uIHdoaWNoIGRlc2NyaXB0b3IgbWV0aG9kcyB3ZXJlIGRlZmluZWQgYW5kXG5ob3cgdGhleSB3ZXJlIGNhbGxlZC5cblxuVGhlIHN0YXJ0aW5nIHBvaW50IGZvciBkZXNjcmlwdG9yIGludm9jYXRpb24gaXMgYSBiaW5kaW5nLCBgYGEueGBgLlxuSG93IHRoZSBhcmd1bWVudHMgYXJlIGFzc2VtYmxlZCBkZXBlbmRzIG9uIGBgYWBgOlxuXG5EaXJlY3QgQ2FsbFxuICAgVGhlIHNpbXBsZXN0IGFuZCBsZWFzdCBjb21tb24gY2FsbCBpcyB3aGVuIHVzZXIgY29kZSBkaXJlY3RseVxuICAgaW52b2tlcyBhIGRlc2NyaXB0b3IgbWV0aG9kOiAgICBgYHguX19nZXRfXyhhKWBgLlxuXG5JbnN0YW5jZSBCaW5kaW5nXG4gICBJZiBiaW5kaW5nIHRvIGFuIG9iamVjdCBpbnN0YW5jZSwgYGBhLnhgYCBpcyB0cmFuc2Zvcm1lZCBpbnRvIHRoZVxuICAgY2FsbDogYGB0eXBlKGEpLl9fZGljdF9fW1wneFwnXS5fX2dldF9fKGEsIHR5cGUoYSkpYGAuXG5cbkNsYXNzIEJpbmRpbmdcbiAgIElmIGJpbmRpbmcgdG8gYSBjbGFzcywgYGBBLnhgYCBpcyB0cmFuc2Zvcm1lZCBpbnRvIHRoZSBjYWxsOlxuICAgYGBBLl9fZGljdF9fW1wneFwnXS5fX2dldF9fKE5vbmUsIEEpYGAuXG5cblN1cGVyIEJpbmRpbmdcbiAgIElmIGBgYWBgIGlzIGFuIGluc3RhbmNlIG9mIGBgc3VwZXJgYCwgdGhlbiB0aGUgYmluZGluZyBgYHN1cGVyKEIsXG4gICBvYmopLm0oKWBgIHNlYXJjaGVzIGBgb2JqLl9fY2xhc3NfXy5fX21yb19fYGAgZm9yIHRoZSBiYXNlIGNsYXNzXG4gICBgYEFgYCBpbW1lZGlhdGVseSBwcmVjZWRpbmcgYGBCYGAgYW5kIHRoZW4gaW52b2tlcyB0aGUgZGVzY3JpcHRvclxuICAgd2l0aCB0aGUgY2FsbDogYGBBLl9fZGljdF9fW1wnbVwnXS5fX2dldF9fKG9iaiwgb2JqLl9fY2xhc3NfXylgYC5cblxuRm9yIGluc3RhbmNlIGJpbmRpbmdzLCB0aGUgcHJlY2VkZW5jZSBvZiBkZXNjcmlwdG9yIGludm9jYXRpb24gZGVwZW5kc1xub24gdGhlIHdoaWNoIGRlc2NyaXB0b3IgbWV0aG9kcyBhcmUgZGVmaW5lZC4gIEEgZGVzY3JpcHRvciBjYW4gZGVmaW5lXG5hbnkgY29tYmluYXRpb24gb2YgYGBfX2dldF9fKClgYCwgYGBfX3NldF9fKClgYCBhbmQgYGBfX2RlbGV0ZV9fKClgYC5cbklmIGl0IGRvZXMgbm90IGRlZmluZSBgYF9fZ2V0X18oKWBgLCB0aGVuIGFjY2Vzc2luZyB0aGUgYXR0cmlidXRlIHdpbGxcbnJldHVybiB0aGUgZGVzY3JpcHRvciBvYmplY3QgaXRzZWxmIHVubGVzcyB0aGVyZSBpcyBhIHZhbHVlIGluIHRoZVxub2JqZWN0XCdzIGluc3RhbmNlIGRpY3Rpb25hcnkuICBJZiB0aGUgZGVzY3JpcHRvciBkZWZpbmVzIGBgX19zZXRfXygpYGBcbmFuZC9vciBgYF9fZGVsZXRlX18oKWBgLCBpdCBpcyBhIGRhdGEgZGVzY3JpcHRvcjsgaWYgaXQgZGVmaW5lc1xubmVpdGhlciwgaXQgaXMgYSBub24tZGF0YSBkZXNjcmlwdG9yLiAgTm9ybWFsbHksIGRhdGEgZGVzY3JpcHRvcnNcbmRlZmluZSBib3RoIGBgX19nZXRfXygpYGAgYW5kIGBgX19zZXRfXygpYGAsIHdoaWxlIG5vbi1kYXRhXG5kZXNjcmlwdG9ycyBoYXZlIGp1c3QgdGhlIGBgX19nZXRfXygpYGAgbWV0aG9kLiAgRGF0YSBkZXNjcmlwdG9ycyB3aXRoXG5gYF9fc2V0X18oKWBgIGFuZCBgYF9fZ2V0X18oKWBgIGRlZmluZWQgYWx3YXlzIG92ZXJyaWRlIGEgcmVkZWZpbml0aW9uXG5pbiBhbiBpbnN0YW5jZSBkaWN0aW9uYXJ5LiAgSW4gY29udHJhc3QsIG5vbi1kYXRhIGRlc2NyaXB0b3JzIGNhbiBiZVxub3ZlcnJpZGRlbiBieSBpbnN0YW5jZXMuXG5cblB5dGhvbiBtZXRob2RzIChpbmNsdWRpbmcgYGBzdGF0aWNtZXRob2QoKWBgIGFuZCBgYGNsYXNzbWV0aG9kKClgYClcbmFyZSBpbXBsZW1lbnRlZCBhcyBub24tZGF0YSBkZXNjcmlwdG9ycy4gIEFjY29yZGluZ2x5LCBpbnN0YW5jZXMgY2FuXG5yZWRlZmluZSBhbmQgb3ZlcnJpZGUgbWV0aG9kcy4gIFRoaXMgYWxsb3dzIGluZGl2aWR1YWwgaW5zdGFuY2VzIHRvXG5hY3F1aXJlIGJlaGF2aW9ycyB0aGF0IGRpZmZlciBmcm9tIG90aGVyIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBjbGFzcy5cblxuVGhlIGBgcHJvcGVydHkoKWBgIGZ1bmN0aW9uIGlzIGltcGxlbWVudGVkIGFzIGEgZGF0YSBkZXNjcmlwdG9yLlxuQWNjb3JkaW5nbHksIGluc3RhbmNlcyBjYW5ub3Qgb3ZlcnJpZGUgdGhlIGJlaGF2aW9yIG9mIGEgcHJvcGVydHkuXG5cblxuX19zbG90c19fXG49PT09PT09PT1cblxuQnkgZGVmYXVsdCwgaW5zdGFuY2VzIG9mIGNsYXNzZXMgaGF2ZSBhIGRpY3Rpb25hcnkgZm9yIGF0dHJpYnV0ZVxuc3RvcmFnZS4gIFRoaXMgd2FzdGVzIHNwYWNlIGZvciBvYmplY3RzIGhhdmluZyB2ZXJ5IGZldyBpbnN0YW5jZVxudmFyaWFibGVzLiAgVGhlIHNwYWNlIGNvbnN1bXB0aW9uIGNhbiBiZWNvbWUgYWN1dGUgd2hlbiBjcmVhdGluZyBsYXJnZVxubnVtYmVycyBvZiBpbnN0YW5jZXMuXG5cblRoZSBkZWZhdWx0IGNhbiBiZSBvdmVycmlkZGVuIGJ5IGRlZmluaW5nICpfX3Nsb3RzX18qIGluIGEgY2xhc3NcbmRlZmluaXRpb24uIFRoZSAqX19zbG90c19fKiBkZWNsYXJhdGlvbiB0YWtlcyBhIHNlcXVlbmNlIG9mIGluc3RhbmNlXG52YXJpYWJsZXMgYW5kIHJlc2VydmVzIGp1c3QgZW5vdWdoIHNwYWNlIGluIGVhY2ggaW5zdGFuY2UgdG8gaG9sZCBhXG52YWx1ZSBmb3IgZWFjaCB2YXJpYWJsZS4gIFNwYWNlIGlzIHNhdmVkIGJlY2F1c2UgKl9fZGljdF9fKiBpcyBub3RcbmNyZWF0ZWQgZm9yIGVhY2ggaW5zdGFuY2UuXG5cbm9iamVjdC5fX3Nsb3RzX19cblxuICAgVGhpcyBjbGFzcyB2YXJpYWJsZSBjYW4gYmUgYXNzaWduZWQgYSBzdHJpbmcsIGl0ZXJhYmxlLCBvciBzZXF1ZW5jZVxuICAgb2Ygc3RyaW5ncyB3aXRoIHZhcmlhYmxlIG5hbWVzIHVzZWQgYnkgaW5zdGFuY2VzLiAgSWYgZGVmaW5lZCBpbiBhXG4gICBjbGFzcywgKl9fc2xvdHNfXyogcmVzZXJ2ZXMgc3BhY2UgZm9yIHRoZSBkZWNsYXJlZCB2YXJpYWJsZXMgYW5kXG4gICBwcmV2ZW50cyB0aGUgYXV0b21hdGljIGNyZWF0aW9uIG9mICpfX2RpY3RfXyogYW5kICpfX3dlYWtyZWZfXyogZm9yXG4gICBlYWNoIGluc3RhbmNlLlxuXG5cbk5vdGVzIG9uIHVzaW5nICpfX3Nsb3RzX18qXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4qIFdoZW4gaW5oZXJpdGluZyBmcm9tIGEgY2xhc3Mgd2l0aG91dCAqX19zbG90c19fKiwgdGhlICpfX2RpY3RfXypcbiAgYXR0cmlidXRlIG9mIHRoYXQgY2xhc3Mgd2lsbCBhbHdheXMgYmUgYWNjZXNzaWJsZSwgc28gYSAqX19zbG90c19fKlxuICBkZWZpbml0aW9uIGluIHRoZSBzdWJjbGFzcyBpcyBtZWFuaW5nbGVzcy5cblxuKiBXaXRob3V0IGEgKl9fZGljdF9fKiB2YXJpYWJsZSwgaW5zdGFuY2VzIGNhbm5vdCBiZSBhc3NpZ25lZCBuZXdcbiAgdmFyaWFibGVzIG5vdCBsaXN0ZWQgaW4gdGhlICpfX3Nsb3RzX18qIGRlZmluaXRpb24uICBBdHRlbXB0cyB0b1xuICBhc3NpZ24gdG8gYW4gdW5saXN0ZWQgdmFyaWFibGUgbmFtZSByYWlzZXMgYGBBdHRyaWJ1dGVFcnJvcmBgLiBJZlxuICBkeW5hbWljIGFzc2lnbm1lbnQgb2YgbmV3IHZhcmlhYmxlcyBpcyBkZXNpcmVkLCB0aGVuIGFkZFxuICBgYFwnX19kaWN0X19cJ2BgIHRvIHRoZSBzZXF1ZW5jZSBvZiBzdHJpbmdzIGluIHRoZSAqX19zbG90c19fKlxuICBkZWNsYXJhdGlvbi5cblxuKiBXaXRob3V0IGEgKl9fd2Vha3JlZl9fKiB2YXJpYWJsZSBmb3IgZWFjaCBpbnN0YW5jZSwgY2xhc3NlcyBkZWZpbmluZ1xuICAqX19zbG90c19fKiBkbyBub3Qgc3VwcG9ydCB3ZWFrIHJlZmVyZW5jZXMgdG8gaXRzIGluc3RhbmNlcy4gSWYgd2Vha1xuICByZWZlcmVuY2Ugc3VwcG9ydCBpcyBuZWVkZWQsIHRoZW4gYWRkIGBgXCdfX3dlYWtyZWZfX1wnYGAgdG8gdGhlXG4gIHNlcXVlbmNlIG9mIHN0cmluZ3MgaW4gdGhlICpfX3Nsb3RzX18qIGRlY2xhcmF0aW9uLlxuXG4qICpfX3Nsb3RzX18qIGFyZSBpbXBsZW1lbnRlZCBhdCB0aGUgY2xhc3MgbGV2ZWwgYnkgY3JlYXRpbmdcbiAgZGVzY3JpcHRvcnMgKCpJbXBsZW1lbnRpbmcgRGVzY3JpcHRvcnMqKSBmb3IgZWFjaCB2YXJpYWJsZSBuYW1lLiAgQXNcbiAgYSByZXN1bHQsIGNsYXNzIGF0dHJpYnV0ZXMgY2Fubm90IGJlIHVzZWQgdG8gc2V0IGRlZmF1bHQgdmFsdWVzIGZvclxuICBpbnN0YW5jZSB2YXJpYWJsZXMgZGVmaW5lZCBieSAqX19zbG90c19fKjsgb3RoZXJ3aXNlLCB0aGUgY2xhc3NcbiAgYXR0cmlidXRlIHdvdWxkIG92ZXJ3cml0ZSB0aGUgZGVzY3JpcHRvciBhc3NpZ25tZW50LlxuXG4qIFRoZSBhY3Rpb24gb2YgYSAqX19zbG90c19fKiBkZWNsYXJhdGlvbiBpcyBsaW1pdGVkIHRvIHRoZSBjbGFzc1xuICB3aGVyZSBpdCBpcyBkZWZpbmVkLiAgQXMgYSByZXN1bHQsIHN1YmNsYXNzZXMgd2lsbCBoYXZlIGEgKl9fZGljdF9fKlxuICB1bmxlc3MgdGhleSBhbHNvIGRlZmluZSAqX19zbG90c19fKiAod2hpY2ggbXVzdCBvbmx5IGNvbnRhaW4gbmFtZXNcbiAgb2YgYW55ICphZGRpdGlvbmFsKiBzbG90cykuXG5cbiogSWYgYSBjbGFzcyBkZWZpbmVzIGEgc2xvdCBhbHNvIGRlZmluZWQgaW4gYSBiYXNlIGNsYXNzLCB0aGUgaW5zdGFuY2VcbiAgdmFyaWFibGUgZGVmaW5lZCBieSB0aGUgYmFzZSBjbGFzcyBzbG90IGlzIGluYWNjZXNzaWJsZSAoZXhjZXB0IGJ5XG4gIHJldHJpZXZpbmcgaXRzIGRlc2NyaXB0b3IgZGlyZWN0bHkgZnJvbSB0aGUgYmFzZSBjbGFzcykuIFRoaXNcbiAgcmVuZGVycyB0aGUgbWVhbmluZyBvZiB0aGUgcHJvZ3JhbSB1bmRlZmluZWQuICBJbiB0aGUgZnV0dXJlLCBhXG4gIGNoZWNrIG1heSBiZSBhZGRlZCB0byBwcmV2ZW50IHRoaXMuXG5cbiogTm9uZW1wdHkgKl9fc2xvdHNfXyogZG9lcyBub3Qgd29yayBmb3IgY2xhc3NlcyBkZXJpdmVkIGZyb21cbiAgInZhcmlhYmxlLWxlbmd0aCIgYnVpbHQtaW4gdHlwZXMgc3VjaCBhcyBgYGludGBgLCBgYHN0cmBgIGFuZFxuICBgYHR1cGxlYGAuXG5cbiogQW55IG5vbi1zdHJpbmcgaXRlcmFibGUgbWF5IGJlIGFzc2lnbmVkIHRvICpfX3Nsb3RzX18qLiBNYXBwaW5ncyBtYXlcbiAgYWxzbyBiZSB1c2VkOyBob3dldmVyLCBpbiB0aGUgZnV0dXJlLCBzcGVjaWFsIG1lYW5pbmcgbWF5IGJlXG4gIGFzc2lnbmVkIHRvIHRoZSB2YWx1ZXMgY29ycmVzcG9uZGluZyB0byBlYWNoIGtleS5cblxuKiAqX19jbGFzc19fKiBhc3NpZ25tZW50IHdvcmtzIG9ubHkgaWYgYm90aCBjbGFzc2VzIGhhdmUgdGhlIHNhbWVcbiAgKl9fc2xvdHNfXyouXG4nLAorICdhdHRyaWJ1dGUtYWNjZXNzJzogJ1xuQ3VzdG9taXppbmcgYXR0cmlidXRlIGFjY2Vzc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5UaGUgZm9sbG93aW5nIG1ldGhvZHMgY2FuIGJlIGRlZmluZWQgdG8gY3VzdG9taXplIHRoZSBtZWFuaW5nIG9mXG5hdHRyaWJ1dGUgYWNjZXNzICh1c2Ugb2YsIGFzc2lnbm1lbnQgdG8sIG9yIGRlbGV0aW9uIG9mIGBgeC5uYW1lYGApXG5mb3IgY2xhc3MgaW5zdGFuY2VzLlxuXG5vYmplY3QuX19nZXRhdHRyX18oc2VsZiwgbmFtZSlcblxuICAgQ2FsbGVkIHdoZW4gYW4gYXR0cmlidXRlIGxvb2t1cCBoYXMgbm90IGZvdW5kIHRoZSBhdHRyaWJ1dGUgaW4gdGhlXG4gICB1c3VhbCBwbGFjZXMgKGkuZS4gaXQgaXMgbm90IGFuIGluc3RhbmNlIGF0dHJpYnV0ZSBub3IgaXMgaXQgZm91bmRcbiAgIGluIHRoZSBjbGFzcyB0cmVlIGZvciBgYHNlbGZgYCkuICBgYG5hbWVgYCBpcyB0aGUgYXR0cmlidXRlIG5hbWUuXG4gICBUaGlzIG1ldGhvZCBzaG91bGQgcmV0dXJuIHRoZSAoY29tcHV0ZWQpIGF0dHJpYnV0ZSB2YWx1ZSBvciByYWlzZVxuICAgYW4gYGBBdHRyaWJ1dGVFcnJvcmBgIGV4Y2VwdGlvbi5cblxuICAgTm90ZSB0aGF0IGlmIHRoZSBhdHRyaWJ1dGUgaXMgZm91bmQgdGhyb3VnaCB0aGUgbm9ybWFsIG1lY2hhbmlzbSxcbiAgIGBgX19nZXRhdHRyX18oKWBgIGlzIG5vdCBjYWxsZWQuICAoVGhpcyBpcyBhbiBpbnRlbnRpb25hbCBhc3ltbWV0cnlcbiAgIGJldHdlZW4gYGBfX2dldGF0dHJfXygpYGAgYW5kIGBgX19zZXRhdHRyX18oKWBgLikgVGhpcyBpcyBkb25lIGJvdGhcbiAgIGZvciBlZmZpY2llbmN5IHJlYXNvbnMgYW5kIGJlY2F1c2Ugb3RoZXJ3aXNlIGBgX19nZXRhdHRyX18oKWBgXG4gICB3b3VsZCBoYXZlIG5vIHdheSB0byBhY2Nlc3Mgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGUgaW5zdGFuY2UuICBOb3RlXG4gICB0aGF0IGF0IGxlYXN0IGZvciBpbnN0YW5jZSB2YXJpYWJsZXMsIHlvdSBjYW4gZmFrZSB0b3RhbCBjb250cm9sIGJ5XG4gICBub3QgaW5zZXJ0aW5nIGFueSB2YWx1ZXMgaW4gdGhlIGluc3RhbmNlIGF0dHJpYnV0ZSBkaWN0aW9uYXJ5IChidXRcbiAgIGluc3RlYWQgaW5zZXJ0aW5nIHRoZW0gaW4gYW5vdGhlciBvYmplY3QpLiAgU2VlIHRoZVxuICAgYGBfX2dldGF0dHJpYnV0ZV9fKClgYCBtZXRob2QgYmVsb3cgZm9yIGEgd2F5IHRvIGFjdHVhbGx5IGdldCB0b3RhbFxuICAgY29udHJvbCBvdmVyIGF0dHJpYnV0ZSBhY2Nlc3MuXG5cbm9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpXG5cbiAgIENhbGxlZCB1bmNvbmRpdGlvbmFsbHkgdG8gaW1wbGVtZW50IGF0dHJpYnV0ZSBhY2Nlc3NlcyBmb3JcbiAgIGluc3RhbmNlcyBvZiB0aGUgY2xhc3MuIElmIHRoZSBjbGFzcyBhbHNvIGRlZmluZXNcbiAgIGBgX19nZXRhdHRyX18oKWBgLCB0aGUgbGF0dGVyIHdpbGwgbm90IGJlIGNhbGxlZCB1bmxlc3NcbiAgIGBgX19nZXRhdHRyaWJ1dGVfXygpYGAgZWl0aGVyIGNhbGxzIGl0IGV4cGxpY2l0bHkgb3IgcmFpc2VzIGFuXG4gICBgYEF0dHJpYnV0ZUVycm9yYGAuIFRoaXMgbWV0aG9kIHNob3VsZCByZXR1cm4gdGhlIChjb21wdXRlZClcbiAgIGF0dHJpYnV0ZSB2YWx1ZSBvciByYWlzZSBhbiBgYEF0dHJpYnV0ZUVycm9yYGAgZXhjZXB0aW9uLiBJbiBvcmRlclxuICAgdG8gYXZvaWQgaW5maW5pdGUgcmVjdXJzaW9uIGluIHRoaXMgbWV0aG9kLCBpdHMgaW1wbGVtZW50YXRpb25cbiAgIHNob3VsZCBhbHdheXMgY2FsbCB0aGUgYmFzZSBjbGFzcyBtZXRob2Qgd2l0aCB0aGUgc2FtZSBuYW1lIHRvXG4gICBhY2Nlc3MgYW55IGF0dHJpYnV0ZXMgaXQgbmVlZHMsIGZvciBleGFtcGxlLFxuICAgYGBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKWBgLlxuXG4gICBOb3RlOiBUaGlzIG1ldGhvZCBtYXkgc3RpbGwgYmUgYnlwYXNzZWQgd2hlbiBsb29raW5nIHVwIHNwZWNpYWwgbWV0aG9kc1xuICAgICBhcyB0aGUgcmVzdWx0IG9mIGltcGxpY2l0IGludm9jYXRpb24gdmlhIGxhbmd1YWdlIHN5bnRheCBvclxuICAgICBidWlsdC1pbiBmdW5jdGlvbnMuIFNlZSAqU3BlY2lhbCBtZXRob2QgbG9va3VwKi5cblxub2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKVxuXG4gICBDYWxsZWQgd2hlbiBhbiBhdHRyaWJ1dGUgYXNzaWdubWVudCBpcyBhdHRlbXB0ZWQuICBUaGlzIGlzIGNhbGxlZFxuICAgaW5zdGVhZCBvZiB0aGUgbm9ybWFsIG1lY2hhbmlzbSAoaS5lLiBzdG9yZSB0aGUgdmFsdWUgaW4gdGhlXG4gICBpbnN0YW5jZSBkaWN0aW9uYXJ5KS4gKm5hbWUqIGlzIHRoZSBhdHRyaWJ1dGUgbmFtZSwgKnZhbHVlKiBpcyB0aGVcbiAgIHZhbHVlIHRvIGJlIGFzc2lnbmVkIHRvIGl0LlxuXG4gICBJZiBgYF9fc2V0YXR0cl9fKClgYCB3YW50cyB0byBhc3NpZ24gdG8gYW4gaW5zdGFuY2UgYXR0cmlidXRlLCBpdFxuICAgc2hvdWxkIGNhbGwgdGhlIGJhc2UgY2xhc3MgbWV0aG9kIHdpdGggdGhlIHNhbWUgbmFtZSwgZm9yIGV4YW1wbGUsXG4gICBgYG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSlgYC5cblxub2JqZWN0Ll9fZGVsYXR0cl9fKHNlbGYsIG5hbWUpXG5cbiAgIExpa2UgYGBfX3NldGF0dHJfXygpYGAgYnV0IGZvciBhdHRyaWJ1dGUgZGVsZXRpb24gaW5zdGVhZCBvZlxuICAgYXNzaWdubWVudC4gIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW1wbGVtZW50ZWQgaWYgYGBkZWwgb2JqLm5hbWVgYCBpc1xuICAgbWVhbmluZ2Z1bCBmb3IgdGhlIG9iamVjdC5cblxub2JqZWN0Ll9fZGlyX18oc2VsZilcblxuICAgQ2FsbGVkIHdoZW4gYGBkaXIoKWBgIGlzIGNhbGxlZCBvbiB0aGUgb2JqZWN0LiBBIHNlcXVlbmNlIG11c3QgYmVcbiAgIHJldHVybmVkLiBgYGRpcigpYGAgY29udmVydHMgdGhlIHJldHVybmVkIHNlcXVlbmNlIHRvIGEgbGlzdCBhbmRcbiAgIHNvcnRzIGl0LlxuXG5cbkltcGxlbWVudGluZyBEZXNjcmlwdG9yc1xuPT09PT09PT09PT09PT09PT09PT09PT09XG5cblRoZSBmb2xsb3dpbmcgbWV0aG9kcyBvbmx5IGFwcGx5IHdoZW4gYW4gaW5zdGFuY2Ugb2YgdGhlIGNsYXNzXG5jb250YWluaW5nIHRoZSBtZXRob2QgKGEgc28tY2FsbGVkICpkZXNjcmlwdG9yKiBjbGFzcykgYXBwZWFycyBpbiBhblxuKm93bmVyKiBjbGFzcyAodGhlIGRlc2NyaXB0b3IgbXVzdCBiZSBpbiBlaXRoZXIgdGhlIG93bmVyXCdzIGNsYXNzXG5kaWN0aW9uYXJ5IG9yIGluIHRoZSBjbGFzcyBkaWN0aW9uYXJ5IGZvciBvbmUgb2YgaXRzIHBhcmVudHMpLiAgSW4gdGhlXG5leGFtcGxlcyBiZWxvdywgInRoZSBhdHRyaWJ1dGUiIHJlZmVycyB0byB0aGUgYXR0cmlidXRlIHdob3NlIG5hbWUgaXNcbnRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IGluIHRoZSBvd25lciBjbGFzc1wnIGBgX19kaWN0X19gYC5cblxub2JqZWN0Ll9fZ2V0X18oc2VsZiwgaW5zdGFuY2UsIG93bmVyKVxuXG4gICBDYWxsZWQgdG8gZ2V0IHRoZSBhdHRyaWJ1dGUgb2YgdGhlIG93bmVyIGNsYXNzIChjbGFzcyBhdHRyaWJ1dGVcbiAgIGFjY2Vzcykgb3Igb2YgYW4gaW5zdGFuY2Ugb2YgdGhhdCBjbGFzcyAoaW5zdGFuY2UgYXR0cmlidXRlXG4gICBhY2Nlc3MpLiAqb3duZXIqIGlzIGFsd2F5cyB0aGUgb3duZXIgY2xhc3MsIHdoaWxlICppbnN0YW5jZSogaXMgdGhlXG4gICBpbnN0YW5jZSB0aGF0IHRoZSBhdHRyaWJ1dGUgd2FzIGFjY2Vzc2VkIHRocm91Z2gsIG9yIGBgTm9uZWBgIHdoZW5cbiAgIHRoZSBhdHRyaWJ1dGUgaXMgYWNjZXNzZWQgdGhyb3VnaCB0aGUgKm93bmVyKi4gIFRoaXMgbWV0aG9kIHNob3VsZFxuICAgcmV0dXJuIHRoZSAoY29tcHV0ZWQpIGF0dHJpYnV0ZSB2YWx1ZSBvciByYWlzZSBhblxuICAgYGBBdHRyaWJ1dGVFcnJvcmBgIGV4Y2VwdGlvbi5cblxub2JqZWN0Ll9fc2V0X18oc2VsZiwgaW5zdGFuY2UsIHZhbHVlKVxuXG4gICBDYWxsZWQgdG8gc2V0IHRoZSBhdHRyaWJ1dGUgb24gYW4gaW5zdGFuY2UgKmluc3RhbmNlKiBvZiB0aGUgb3duZXJcbiAgIGNsYXNzIHRvIGEgbmV3IHZhbHVlLCAqdmFsdWUqLlxuXG5vYmplY3QuX19kZWxldGVfXyhzZWxmLCBpbnN0YW5jZSlcblxuICAgQ2FsbGVkIHRvIGRlbGV0ZSB0aGUgYXR0cmlidXRlIG9uIGFuIGluc3RhbmNlICppbnN0YW5jZSogb2YgdGhlXG4gICBvd25lciBjbGFzcy5cblxuXG5JbnZva2luZyBEZXNjcmlwdG9yc1xuPT09PT09PT09PT09PT09PT09PT1cblxuSW4gZ2VuZXJhbCwgYSBkZXNjcmlwdG9yIGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgd2l0aCAiYmluZGluZ1xuYmVoYXZpb3IiLCBvbmUgd2hvc2UgYXR0cmlidXRlIGFjY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuIGJ5IG1ldGhvZHNcbmluIHRoZSBkZXNjcmlwdG9yIHByb3RvY29sOiAgYGBfX2dldF9fKClgYCwgYGBfX3NldF9fKClgYCwgYW5kXG5gYF9fZGVsZXRlX18oKWBgLiBJZiBhbnkgb2YgdGhvc2UgbWV0aG9kcyBhcmUgZGVmaW5lZCBmb3IgYW4gb2JqZWN0LFxuaXQgaXMgc2FpZCB0byBiZSBhIGRlc2NyaXB0b3IuXG5cblRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBhdHRyaWJ1dGUgYWNjZXNzIGlzIHRvIGdldCwgc2V0LCBvciBkZWxldGVcbnRoZSBhdHRyaWJ1dGUgZnJvbSBhbiBvYmplY3RcJ3MgZGljdGlvbmFyeS4gRm9yIGluc3RhbmNlLCBgYGEueGBgIGhhcyBhXG5sb29rdXAgY2hhaW4gc3RhcnRpbmcgd2l0aCBgYGEuX19kaWN0X19bXCd4XCddYGAsIHRoZW5cbmBgdHlwZShhKS5fX2RpY3RfX1tcJ3hcJ11gYCwgYW5kIGNvbnRpbnVpbmcgdGhyb3VnaCB0aGUgYmFzZSBjbGFzc2VzIG9mXG5gYHR5cGUoYSlgYCBleGNsdWRpbmcgbWV0YWNsYXNzZXMuXG5cbkhvd2V2ZXIsIGlmIHRoZSBsb29rZWQtdXAgdmFsdWUgaXMgYW4gb2JqZWN0IGRlZmluaW5nIG9uZSBvZiB0aGVcbmRlc2NyaXB0b3IgbWV0aG9kcywgdGhlbiBQeXRob24gbWF5IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGFuZFxuaW52b2tlIHRoZSBkZXNjcmlwdG9yIG1ldGhvZCBpbnN0ZWFkLiAgV2hlcmUgdGhpcyBvY2N1cnMgaW4gdGhlXG5wcmVjZWRlbmNlIGNoYWluIGRlcGVuZHMgb24gd2hpY2ggZGVzY3JpcHRvciBtZXRob2RzIHdlcmUgZGVmaW5lZCBhbmRcbmhvdyB0aGV5IHdlcmUgY2FsbGVkLlxuXG5UaGUgc3RhcnRpbmcgcG9pbnQgZm9yIGRlc2NyaXB0b3IgaW52b2NhdGlvbiBpcyBhIGJpbmRpbmcsIGBgYS54YGAuXG5Ib3cgdGhlIGFyZ3VtZW50cyBhcmUgYXNzZW1ibGVkIGRlcGVuZHMgb24gYGBhYGA6XG5cbkRpcmVjdCBDYWxsXG4gICBUaGUgc2ltcGxlc3QgYW5kIGxlYXN0IGNvbW1vbiBjYWxsIGlzIHdoZW4gdXNlciBjb2RlIGRpcmVjdGx5XG4gICBpbnZva2VzIGEgZGVzY3JpcHRvciBtZXRob2Q6ICAgIGBgeC5fX2dldF9fKGEpYGAuXG5cbkluc3RhbmNlIEJpbmRpbmdcbiAgIElmIGJpbmRpbmcgdG8gYW4gb2JqZWN0IGluc3RhbmNlLCBgYGEueGBgIGlzIHRyYW5zZm9ybWVkIGludG8gdGhlXG4gICBjYWxsOiBgYHR5cGUoYSkuX19kaWN0X19bXCd4XCddLl9fZ2V0X18oYSwgdHlwZShhKSlgYC5cblxuQ2xhc3MgQmluZGluZ1xuICAgSWYgYmluZGluZyB0byBhIGNsYXNzLCBgYEEueGBgIGlzIHRyYW5zZm9ybWVkIGludG8gdGhlIGNhbGw6XG4gICBgYEEuX19kaWN0X19bXCd4XCddLl9fZ2V0X18oTm9uZSwgQSlgYC5cblxuU3VwZXIgQmluZGluZ1xuICAgSWYgYGBhYGAgaXMgYW4gaW5zdGFuY2Ugb2YgYGBzdXBlcmBgLCB0aGVuIHRoZSBiaW5kaW5nIGBgc3VwZXIoQixcbiAgIG9iaikubSgpYGAgc2VhcmNoZXMgYGBvYmouX19jbGFzc19fLl9fbXJvX19gYCBmb3IgdGhlIGJhc2UgY2xhc3NcbiAgIGBgQWBgIGltbWVkaWF0ZWx5IHByZWNlZGluZyBgYEJgYCBhbmQgdGhlbiBpbnZva2VzIHRoZSBkZXNjcmlwdG9yXG4gICB3aXRoIHRoZSBjYWxsOiBgYEEuX19kaWN0X19bXCdtXCddLl9fZ2V0X18ob2JqLCBvYmouX19jbGFzc19fKWBgLlxuXG5Gb3IgaW5zdGFuY2UgYmluZGluZ3MsIHRoZSBwcmVjZWRlbmNlIG9mIGRlc2NyaXB0b3IgaW52b2NhdGlvbiBkZXBlbmRzXG5vbiB0aGUgd2hpY2ggZGVzY3JpcHRvciBtZXRob2RzIGFyZSBkZWZpbmVkLiAgQSBkZXNjcmlwdG9yIGNhbiBkZWZpbmVcbmFueSBjb21iaW5hdGlvbiBvZiBgYF9fZ2V0X18oKWBgLCBgYF9fc2V0X18oKWBgIGFuZCBgYF9fZGVsZXRlX18oKWBgLlxuSWYgaXQgZG9lcyBub3QgZGVmaW5lIGBgX19nZXRfXygpYGAsIHRoZW4gYWNjZXNzaW5nIHRoZSBhdHRyaWJ1dGUgd2lsbFxucmV0dXJuIHRoZSBkZXNjcmlwdG9yIG9iamVjdCBpdHNlbGYgdW5sZXNzIHRoZXJlIGlzIGEgdmFsdWUgaW4gdGhlXG5vYmplY3RcJ3MgaW5zdGFuY2UgZGljdGlvbmFyeS4gIElmIHRoZSBkZXNjcmlwdG9yIGRlZmluZXMgYGBfX3NldF9fKClgYFxuYW5kL29yIGBgX19kZWxldGVfXygpYGAsIGl0IGlzIGEgZGF0YSBkZXNjcmlwdG9yOyBpZiBpdCBkZWZpbmVzXG5uZWl0aGVyLCBpdCBpcyBhIG5vbi1kYXRhIGRlc2NyaXB0b3IuICBOb3JtYWxseSwgZGF0YSBkZXNjcmlwdG9yc1xuZGVmaW5lIGJvdGggYGBfX2dldF9fKClgYCBhbmQgYGBfX3NldF9fKClgYCwgd2hpbGUgbm9uLWRhdGFcbmRlc2NyaXB0b3JzIGhhdmUganVzdCB0aGUgYGBfX2dldF9fKClgYCBtZXRob2QuICBEYXRhIGRlc2NyaXB0b3JzIHdpdGhcbmBgX19zZXRfXygpYGAgYW5kIGBgX19nZXRfXygpYGAgZGVmaW5lZCBhbHdheXMgb3ZlcnJpZGUgYSByZWRlZmluaXRpb25cbmluIGFuIGluc3RhbmNlIGRpY3Rpb25hcnkuICBJbiBjb250cmFzdCwgbm9uLWRhdGEgZGVzY3JpcHRvcnMgY2FuIGJlXG5vdmVycmlkZGVuIGJ5IGluc3RhbmNlcy5cblxuUHl0aG9uIG1ldGhvZHMgKGluY2x1ZGluZyBgYHN0YXRpY21ldGhvZCgpYGAgYW5kIGBgY2xhc3NtZXRob2QoKWBgKVxuYXJlIGltcGxlbWVudGVkIGFzIG5vbi1kYXRhIGRlc2NyaXB0b3JzLiAgQWNjb3JkaW5nbHksIGluc3RhbmNlcyBjYW5cbnJlZGVmaW5lIGFuZCBvdmVycmlkZSBtZXRob2RzLiAgVGhpcyBhbGxvd3MgaW5kaXZpZHVhbCBpbnN0YW5jZXMgdG9cbmFjcXVpcmUgYmVoYXZpb3JzIHRoYXQgZGlmZmVyIGZyb20gb3RoZXIgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIGNsYXNzLlxuXG5UaGUgYGBwcm9wZXJ0eSgpYGAgZnVuY3Rpb24gaXMgaW1wbGVtZW50ZWQgYXMgYSBkYXRhIGRlc2NyaXB0b3IuXG5BY2NvcmRpbmdseSwgaW5zdGFuY2VzIGNhbm5vdCBvdmVycmlkZSB0aGUgYmVoYXZpb3Igb2YgYSBwcm9wZXJ0eS5cblxuXG5fX3Nsb3RzX19cbj09PT09PT09PVxuXG5CeSBkZWZhdWx0LCBpbnN0YW5jZXMgb2YgY2xhc3NlcyBoYXZlIGEgZGljdGlvbmFyeSBmb3IgYXR0cmlidXRlXG5zdG9yYWdlLiAgVGhpcyB3YXN0ZXMgc3BhY2UgZm9yIG9iamVjdHMgaGF2aW5nIHZlcnkgZmV3IGluc3RhbmNlXG52YXJpYWJsZXMuICBUaGUgc3BhY2UgY29uc3VtcHRpb24gY2FuIGJlY29tZSBhY3V0ZSB3aGVuIGNyZWF0aW5nIGxhcmdlXG5udW1iZXJzIG9mIGluc3RhbmNlcy5cblxuVGhlIGRlZmF1bHQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgKl9fc2xvdHNfXyogaW4gYSBjbGFzc1xuZGVmaW5pdGlvbi4gVGhlICpfX3Nsb3RzX18qIGRlY2xhcmF0aW9uIHRha2VzIGEgc2VxdWVuY2Ugb2YgaW5zdGFuY2VcbnZhcmlhYmxlcyBhbmQgcmVzZXJ2ZXMganVzdCBlbm91Z2ggc3BhY2UgaW4gZWFjaCBpbnN0YW5jZSB0byBob2xkIGFcbnZhbHVlIGZvciBlYWNoIHZhcmlhYmxlLiAgU3BhY2UgaXMgc2F2ZWQgYmVjYXVzZSAqX19kaWN0X18qIGlzIG5vdFxuY3JlYXRlZCBmb3IgZWFjaCBpbnN0YW5jZS5cblxub2JqZWN0Ll9fc2xvdHNfX1xuXG4gICBUaGlzIGNsYXNzIHZhcmlhYmxlIGNhbiBiZSBhc3NpZ25lZCBhIHN0cmluZywgaXRlcmFibGUsIG9yIHNlcXVlbmNlXG4gICBvZiBzdHJpbmdzIHdpdGggdmFyaWFibGUgbmFtZXMgdXNlZCBieSBpbnN0YW5jZXMuICBJZiBkZWZpbmVkIGluIGFcbiAgIGNsYXNzLCAqX19zbG90c19fKiByZXNlcnZlcyBzcGFjZSBmb3IgdGhlIGRlY2xhcmVkIHZhcmlhYmxlcyBhbmRcbiAgIHByZXZlbnRzIHRoZSBhdXRvbWF0aWMgY3JlYXRpb24gb2YgKl9fZGljdF9fKiBhbmQgKl9fd2Vha3JlZl9fKiBmb3JcbiAgIGVhY2ggaW5zdGFuY2UuXG5cblxuTm90ZXMgb24gdXNpbmcgKl9fc2xvdHNfXypcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiogV2hlbiBpbmhlcml0aW5nIGZyb20gYSBjbGFzcyB3aXRob3V0ICpfX3Nsb3RzX18qLCB0aGUgKl9fZGljdF9fKlxuICBhdHRyaWJ1dGUgb2YgdGhhdCBjbGFzcyB3aWxsIGFsd2F5cyBiZSBhY2Nlc3NpYmxlLCBzbyBhICpfX3Nsb3RzX18qXG4gIGRlZmluaXRpb24gaW4gdGhlIHN1YmNsYXNzIGlzIG1lYW5pbmdsZXNzLlxuXG4qIFdpdGhvdXQgYSAqX19kaWN0X18qIHZhcmlhYmxlLCBpbnN0YW5jZXMgY2Fubm90IGJlIGFzc2lnbmVkIG5ld1xuICB2YXJpYWJsZXMgbm90IGxpc3RlZCBpbiB0aGUgKl9fc2xvdHNfXyogZGVmaW5pdGlvbi4gIEF0dGVtcHRzIHRvXG4gIGFzc2lnbiB0byBhbiB1bmxpc3RlZCB2YXJpYWJsZSBuYW1lIHJhaXNlcyBgYEF0dHJpYnV0ZUVycm9yYGAuIElmXG4gIGR5bmFtaWMgYXNzaWdubWVudCBvZiBuZXcgdmFyaWFibGVzIGlzIGRlc2lyZWQsIHRoZW4gYWRkXG4gIGBgXCdfX2RpY3RfX1wnYGAgdG8gdGhlIHNlcXVlbmNlIG9mIHN0cmluZ3MgaW4gdGhlICpfX3Nsb3RzX18qXG4gIGRlY2xhcmF0aW9uLlxuXG4qIFdpdGhvdXQgYSAqX193ZWFrcmVmX18qIHZhcmlhYmxlIGZvciBlYWNoIGluc3RhbmNlLCBjbGFzc2VzIGRlZmluaW5nXG4gICpfX3Nsb3RzX18qIGRvIG5vdCBzdXBwb3J0IHdlYWsgcmVmZXJlbmNlcyB0byBpdHMgaW5zdGFuY2VzLiBJZiB3ZWFrXG4gIHJlZmVyZW5jZSBzdXBwb3J0IGlzIG5lZWRlZCwgdGhlbiBhZGQgYGBcJ19fd2Vha3JlZl9fXCdgYCB0byB0aGVcbiAgc2VxdWVuY2Ugb2Ygc3RyaW5ncyBpbiB0aGUgKl9fc2xvdHNfXyogZGVjbGFyYXRpb24uXG5cbiogKl9fc2xvdHNfXyogYXJlIGltcGxlbWVudGVkIGF0IHRoZSBjbGFzcyBsZXZlbCBieSBjcmVhdGluZ1xuICBkZXNjcmlwdG9ycyAoKkltcGxlbWVudGluZyBEZXNjcmlwdG9ycyopIGZvciBlYWNoIHZhcmlhYmxlIG5hbWUuICBBc1xuICBhIHJlc3VsdCwgY2xhc3MgYXR0cmlidXRlcyBjYW5ub3QgYmUgdXNlZCB0byBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yXG4gIGluc3RhbmNlIHZhcmlhYmxlcyBkZWZpbmVkIGJ5ICpfX3Nsb3RzX18qOyBvdGhlcndpc2UsIHRoZSBjbGFzc1xuICBhdHRyaWJ1dGUgd291bGQgb3ZlcndyaXRlIHRoZSBkZXNjcmlwdG9yIGFzc2lnbm1lbnQuXG5cbiogVGhlIGFjdGlvbiBvZiBhICpfX3Nsb3RzX18qIGRlY2xhcmF0aW9uIGlzIGxpbWl0ZWQgdG8gdGhlIGNsYXNzXG4gIHdoZXJlIGl0IGlzIGRlZmluZWQuICBBcyBhIHJlc3VsdCwgc3ViY2xhc3NlcyB3aWxsIGhhdmUgYSAqX19kaWN0X18qXG4gIHVubGVzcyB0aGV5IGFsc28gZGVmaW5lICpfX3Nsb3RzX18qICh3aGljaCBtdXN0IG9ubHkgY29udGFpbiBuYW1lc1xuICBvZiBhbnkgKmFkZGl0aW9uYWwqIHNsb3RzKS5cblxuKiBJZiBhIGNsYXNzIGRlZmluZXMgYSBzbG90IGFsc28gZGVmaW5lZCBpbiBhIGJhc2UgY2xhc3MsIHRoZSBpbnN0YW5jZVxuICB2YXJpYWJsZSBkZWZpbmVkIGJ5IHRoZSBiYXNlIGNsYXNzIHNsb3QgaXMgaW5hY2Nlc3NpYmxlIChleGNlcHQgYnlcbiAgcmV0cmlldmluZyBpdHMgZGVzY3JpcHRvciBkaXJlY3RseSBmcm9tIHRoZSBiYXNlIGNsYXNzKS4gVGhpc1xuICByZW5kZXJzIHRoZSBtZWFuaW5nIG9mIHRoZSBwcm9ncmFtIHVuZGVmaW5lZC4gIEluIHRoZSBmdXR1cmUsIGFcbiAgY2hlY2sgbWF5IGJlIGFkZGVkIHRvIHByZXZlbnQgdGhpcy5cblxuKiBOb25lbXB0eSAqX19zbG90c19fKiBkb2VzIG5vdCB3b3JrIGZvciBjbGFzc2VzIGRlcml2ZWQgZnJvbVxuICAidmFyaWFibGUtbGVuZ3RoIiBidWlsdC1pbiB0eXBlcyBzdWNoIGFzIGBgaW50YGAsIGBgc3RyYGAgYW5kXG4gIGBgdHVwbGVgYC5cblxuKiBBbnkgbm9uLXN0cmluZyBpdGVyYWJsZSBtYXkgYmUgYXNzaWduZWQgdG8gKl9fc2xvdHNfXyouIE1hcHBpbmdzIG1heVxuICBhbHNvIGJlIHVzZWQ7IGhvd2V2ZXIsIGluIHRoZSBmdXR1cmUsIHNwZWNpYWwgbWVhbmluZyBtYXkgYmVcbiAgYXNzaWduZWQgdG8gdGhlIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2gga2V5LlxuXG4qICpfX2NsYXNzX18qIGFzc2lnbm1lbnQgd29ya3Mgb25seSBpZiBib3RoIGNsYXNzZXMgaGF2ZSB0aGUgc2FtZVxuICAqX19zbG90c19fKi5cbicsCiAgJ2F0dHJpYnV0ZS1yZWZlcmVuY2VzJzogJ1xuQXR0cmlidXRlIHJlZmVyZW5jZXNcbioqKioqKioqKioqKioqKioqKioqXG5cbkFuIGF0dHJpYnV0ZSByZWZlcmVuY2UgaXMgYSBwcmltYXJ5IGZvbGxvd2VkIGJ5IGEgcGVyaW9kIGFuZCBhIG5hbWU6XG5cbiAgIGF0dHJpYnV0ZXJlZiA6Oj0gcHJpbWFyeSAiLiIgaWRlbnRpZmllclxuXG5UaGUgcHJpbWFyeSBtdXN0IGV2YWx1YXRlIHRvIGFuIG9iamVjdCBvZiBhIHR5cGUgdGhhdCBzdXBwb3J0c1xuYXR0cmlidXRlIHJlZmVyZW5jZXMsIHdoaWNoIG1vc3Qgb2JqZWN0cyBkby4gIFRoaXMgb2JqZWN0IGlzIHRoZW5cbmFza2VkIHRvIHByb2R1Y2UgdGhlIGF0dHJpYnV0ZSB3aG9zZSBuYW1lIGlzIHRoZSBpZGVudGlmaWVyICh3aGljaCBjYW5cbmJlIGN1c3RvbWl6ZWQgYnkgb3ZlcnJpZGluZyB0aGUgYGBfX2dldGF0dHJfXygpYGAgbWV0aG9kKS4gIElmIHRoaXNcbmF0dHJpYnV0ZSBpcyBub3QgYXZhaWxhYmxlLCB0aGUgZXhjZXB0aW9uIGBgQXR0cmlidXRlRXJyb3JgYCBpc1xucmFpc2VkLiAgT3RoZXJ3aXNlLCB0aGUgdHlwZSBhbmQgdmFsdWUgb2YgdGhlIG9iamVjdCBwcm9kdWNlZCBpc1xuZGV0ZXJtaW5lZCBieSB0aGUgb2JqZWN0LiAgTXVsdGlwbGUgZXZhbHVhdGlvbnMgb2YgdGhlIHNhbWUgYXR0cmlidXRlXG5yZWZlcmVuY2UgbWF5IHlpZWxkIGRpZmZlcmVudCBvYmplY3RzLlxuJywKICAnYXVnYXNzaWduJzogJ1xuQXVnbWVudGVkIGFzc2lnbm1lbnQgc3RhdGVtZW50c1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5BdWdtZW50ZWQgYXNzaWdubWVudCBpcyB0aGUgY29tYmluYXRpb24sIGluIGEgc2luZ2xlIHN0YXRlbWVudCwgb2YgYVxuYmluYXJ5IG9wZXJhdGlvbiBhbmQgYW4gYXNzaWdubWVudCBzdGF0ZW1lbnQ6XG5cbiAgIGF1Z21lbnRlZF9hc3NpZ25tZW50X3N0bXQgOjo9IGF1Z3RhcmdldCBhdWdvcCAoZXhwcmVzc2lvbl9saXN0IHwgeWllbGRfZXhwcmVzc2lvbilcbiAgIGF1Z3RhcmdldCAgICAgICAgICAgICAgICAgOjo9IGlkZW50aWZpZXIgfCBhdHRyaWJ1dGVyZWYgfCBzdWJzY3JpcHRpb24gfCBzbGljaW5nXG4gICBhdWdvcCAgICAgICAgICAgICAgICAgICAgIDo6PSAiKz0iIHwgIi09IiB8ICIqPSIgfCAiLz0iIHwgIi8vPSIgfCAiJT0iIHwgIioqPSJcbiAgICAgICAgICAgICB8ICI+Pj0iIHwgIjw8PSIgfCAiJj0iIHwgIl49IiB8ICJ8PSJcblxuKFNlZSBzZWN0aW9uICpQcmltYXJpZXMqIGZvciB0aGUgc3ludGF4IGRlZmluaXRpb25zIGZvciB0aGUgbGFzdCB0aHJlZVxuc3ltYm9scy4pXG5cbkFuIGF1Z21lbnRlZCBhc3NpZ25tZW50IGV2YWx1YXRlcyB0aGUgdGFyZ2V0ICh3aGljaCwgdW5saWtlIG5vcm1hbFxuYXNzaWdubWVudCBzdGF0ZW1lbnRzLCBjYW5ub3QgYmUgYW4gdW5wYWNraW5nKSBhbmQgdGhlIGV4cHJlc3Npb25cbmxpc3QsIHBlcmZvcm1zIHRoZSBiaW5hcnkgb3BlcmF0aW9uIHNwZWNpZmljIHRvIHRoZSB0eXBlIG9mIGFzc2lnbm1lbnRcbm9uIHRoZSB0d28gb3BlcmFuZHMsIGFuZCBhc3NpZ25zIHRoZSByZXN1bHQgdG8gdGhlIG9yaWdpbmFsIHRhcmdldC5cblRoZSB0YXJnZXQgaXMgb25seSBldmFsdWF0ZWQgb25jZS5cblxuQW4gYXVnbWVudGVkIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiBsaWtlIGBgeCArPSAxYGAgY2FuIGJlIHJld3JpdHRlbiBhc1xuYGB4ID0geCArIDFgYCB0byBhY2hpZXZlIGEgc2ltaWxhciwgYnV0IG5vdCBleGFjdGx5IGVxdWFsIGVmZmVjdC4gSW5cbnRoZSBhdWdtZW50ZWQgdmVyc2lvbiwgYGB4YGAgaXMgb25seSBldmFsdWF0ZWQgb25jZS4gQWxzbywgd2hlblxucG9zc2libGUsIHRoZSBhY3R1YWwgb3BlcmF0aW9uIGlzIHBlcmZvcm1lZCAqaW4tcGxhY2UqLCBtZWFuaW5nIHRoYXRcbnJhdGhlciB0aGFuIGNyZWF0aW5nIGEgbmV3IG9iamVjdCBhbmQgYXNzaWduaW5nIHRoYXQgdG8gdGhlIHRhcmdldCxcbnRoZSBvbGQgb2JqZWN0IGlzIG1vZGlmaWVkIGluc3RlYWQuXG5cbldpdGggdGhlIGV4Y2VwdGlvbiBvZiBhc3NpZ25pbmcgdG8gdHVwbGVzIGFuZCBtdWx0aXBsZSB0YXJnZXRzIGluIGFcbnNpbmdsZSBzdGF0ZW1lbnQsIHRoZSBhc3NpZ25tZW50IGRvbmUgYnkgYXVnbWVudGVkIGFzc2lnbm1lbnRcbnN0YXRlbWVudHMgaXMgaGFuZGxlZCB0aGUgc2FtZSB3YXkgYXMgbm9ybWFsIGFzc2lnbm1lbnRzLiBTaW1pbGFybHksXG53aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIHBvc3NpYmxlICppbi1wbGFjZSogYmVoYXZpb3IsIHRoZSBiaW5hcnlcbm9wZXJhdGlvbiBwZXJmb3JtZWQgYnkgYXVnbWVudGVkIGFzc2lnbm1lbnQgaXMgdGhlIHNhbWUgYXMgdGhlIG5vcm1hbFxuYmluYXJ5IG9wZXJhdGlvbnMuXG5cbkZvciB0YXJnZXRzIHdoaWNoIGFyZSBhdHRyaWJ1dGUgcmVmZXJlbmNlcywgdGhlIHNhbWUgKmNhdmVhdCBhYm91dFxuY2xhc3MgYW5kIGluc3RhbmNlIGF0dHJpYnV0ZXMqIGFwcGxpZXMgYXMgZm9yIHJlZ3VsYXIgYXNzaWdubWVudHMuXG4nLAogICdiaW5hcnknOiAnXG5CaW5hcnkgYXJpdGhtZXRpYyBvcGVyYXRpb25zXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblRoZSBiaW5hcnkgYXJpdGhtZXRpYyBvcGVyYXRpb25zIGhhdmUgdGhlIGNvbnZlbnRpb25hbCBwcmlvcml0eVxubGV2ZWxzLiAgTm90ZSB0aGF0IHNvbWUgb2YgdGhlc2Ugb3BlcmF0aW9ucyBhbHNvIGFwcGx5IHRvIGNlcnRhaW4gbm9uLVxubnVtZXJpYyB0eXBlcy4gIEFwYXJ0IGZyb20gdGhlIHBvd2VyIG9wZXJhdG9yLCB0aGVyZSBhcmUgb25seSB0d29cbmxldmVscywgb25lIGZvciBtdWx0aXBsaWNhdGl2ZSBvcGVyYXRvcnMgYW5kIG9uZSBmb3IgYWRkaXRpdmVcbm9wZXJhdG9yczpcblxuICAgbV9leHByIDo6PSB1X2V4cHIgfCBtX2V4cHIgIioiIHVfZXhwciB8IG1fZXhwciAiLy8iIHVfZXhwciB8IG1fZXhwciAiLyIgdV9leHByXG4gICAgICAgICAgICAgIHwgbV9leHByICIlIiB1X2V4cHJcbiAgIGFfZXhwciA6Oj0gbV9leHByIHwgYV9leHByICIrIiBtX2V4cHIgfCBhX2V4cHIgIi0iIG1fZXhwclxuXG5UaGUgYGAqYGAgKG11bHRpcGxpY2F0aW9uKSBvcGVyYXRvciB5aWVsZHMgdGhlIHByb2R1Y3Qgb2YgaXRzXG5hcmd1bWVudHMuICBUaGUgYXJndW1lbnRzIG11c3QgZWl0aGVyIGJvdGggYmUgbnVtYmVycywgb3Igb25lIGFyZ3VtZW50XG5tdXN0IGJlIGFuIGludGVnZXIgYW5kIHRoZSBvdGhlciBtdXN0IGJlIGEgc2VxdWVuY2UuIEluIHRoZSBmb3JtZXJcbmNhc2UsIHRoZSBudW1iZXJzIGFyZSBjb252ZXJ0ZWQgdG8gYSBjb21tb24gdHlwZSBhbmQgdGhlbiBtdWx0aXBsaWVkXG50b2dldGhlci4gIEluIHRoZSBsYXR0ZXIgY2FzZSwgc2VxdWVuY2UgcmVwZXRpdGlvbiBpcyBwZXJmb3JtZWQ7IGFcbm5lZ2F0aXZlIHJlcGV0aXRpb24gZmFjdG9yIHlpZWxkcyBhbiBlbXB0eSBzZXF1ZW5jZS5cblxuVGhlIGBgL2BgIChkaXZpc2lvbikgYW5kIGBgLy9gYCAoZmxvb3IgZGl2aXNpb24pIG9wZXJhdG9ycyB5aWVsZCB0aGVcbnF1b3RpZW50IG9mIHRoZWlyIGFyZ3VtZW50cy4gIFRoZSBudW1lcmljIGFyZ3VtZW50cyBhcmUgZmlyc3RcbmNvbnZlcnRlZCB0byBhIGNvbW1vbiB0eXBlLiBJbnRlZ2VyIGRpdmlzaW9uIHlpZWxkcyBhIGZsb2F0LCB3aGlsZVxuZmxvb3IgZGl2aXNpb24gb2YgaW50ZWdlcnMgcmVzdWx0cyBpbiBhbiBpbnRlZ2VyOyB0aGUgcmVzdWx0IGlzIHRoYXRcbm9mIG1hdGhlbWF0aWNhbCBkaXZpc2lvbiB3aXRoIHRoZSBcJ2Zsb29yXCcgZnVuY3Rpb24gYXBwbGllZCB0byB0aGVcbnJlc3VsdC4gIERpdmlzaW9uIGJ5IHplcm8gcmFpc2VzIHRoZSBgYFplcm9EaXZpc2lvbkVycm9yYGAgZXhjZXB0aW9uLlxuXG5UaGUgYGAlYGAgKG1vZHVsbykgb3BlcmF0b3IgeWllbGRzIHRoZSByZW1haW5kZXIgZnJvbSB0aGUgZGl2aXNpb24gb2ZcbnRoZSBmaXJzdCBhcmd1bWVudCBieSB0aGUgc2Vjb25kLiAgVGhlIG51bWVyaWMgYXJndW1lbnRzIGFyZSBmaXJzdFxuY29udmVydGVkIHRvIGEgY29tbW9uIHR5cGUuICBBIHplcm8gcmlnaHQgYXJndW1lbnQgcmFpc2VzIHRoZVxuYGBaZXJvRGl2aXNpb25FcnJvcmBgIGV4Y2VwdGlvbi4gIFRoZSBhcmd1bWVudHMgbWF5IGJlIGZsb2F0aW5nIHBvaW50XG5udW1iZXJzLCBlLmcuLCBgYDMuMTQlMC43YGAgZXF1YWxzIGBgMC4zNGBgIChzaW5jZSBgYDMuMTRgYCBlcXVhbHNcbmBgNCowLjcgKyAwLjM0YGAuKSAgVGhlIG1vZHVsbyBvcGVyYXRvciBhbHdheXMgeWllbGRzIGEgcmVzdWx0IHdpdGhcbnRoZSBzYW1lIHNpZ24gYXMgaXRzIHNlY29uZCBvcGVyYW5kIChvciB6ZXJvKTsgdGhlIGFic29sdXRlIHZhbHVlIG9mXG50aGUgcmVzdWx0IGlzIHN0cmljdGx5IHNtYWxsZXIgdGhhbiB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgdGhlIHNlY29uZFxub3BlcmFuZCBbMV0uXG5cblRoZSBmbG9vciBkaXZpc2lvbiBhbmQgbW9kdWxvIG9wZXJhdG9ycyBhcmUgY29ubmVjdGVkIGJ5IHRoZSBmb2xsb3dpbmdcbmlkZW50aXR5OiBgYHggPT0gKHgvL3kpKnkgKyAoeCV5KWBgLiAgRmxvb3IgZGl2aXNpb24gYW5kIG1vZHVsbyBhcmVcbmFsc28gY29ubmVjdGVkIHdpdGggdGhlIGJ1aWx0LWluIGZ1bmN0aW9uIGBgZGl2bW9kKClgYDogYGBkaXZtb2QoeCwgeSlcbj09ICh4Ly95LCB4JXkpYGAuIFsyXS5cblxuSW4gYWRkaXRpb24gdG8gcGVyZm9ybWluZyB0aGUgbW9kdWxvIG9wZXJhdGlvbiBvbiBudW1iZXJzLCB0aGUgYGAlYGBcbm9wZXJhdG9yIGlzIGFsc28gb3ZlcmxvYWRlZCBieSBzdHJpbmcgb2JqZWN0cyB0byBwZXJmb3JtIG9sZC1zdHlsZVxuc3RyaW5nIGZvcm1hdHRpbmcgKGFsc28ga25vd24gYXMgaW50ZXJwb2xhdGlvbikuICBUaGUgc3ludGF4IGZvclxuc3RyaW5nIGZvcm1hdHRpbmcgaXMgZGVzY3JpYmVkIGluIHRoZSBQeXRob24gTGlicmFyeSBSZWZlcmVuY2UsXG5zZWN0aW9uICpPbGQgU3RyaW5nIEZvcm1hdHRpbmcgT3BlcmF0aW9ucyouXG5cblRoZSBmbG9vciBkaXZpc2lvbiBvcGVyYXRvciwgdGhlIG1vZHVsbyBvcGVyYXRvciwgYW5kIHRoZSBgYGRpdm1vZCgpYGBcbmZ1bmN0aW9uIGFyZSBub3QgZGVmaW5lZCBmb3IgY29tcGxleCBudW1iZXJzLiAgSW5zdGVhZCwgY29udmVydCB0byBhXG5mbG9hdGluZyBwb2ludCBudW1iZXIgdXNpbmcgdGhlIGBgYWJzKClgYCBmdW5jdGlvbiBpZiBhcHByb3ByaWF0ZS5cblxuVGhlIGBgK2BgIChhZGRpdGlvbikgb3BlcmF0b3IgeWllbGRzIHRoZSBzdW0gb2YgaXRzIGFyZ3VtZW50cy4gIFRoZVxuYXJndW1lbnRzIG11c3QgZWl0aGVyIGJvdGggYmUgbnVtYmVycyBvciBib3RoIHNlcXVlbmNlcyBvZiB0aGUgc2FtZVxudHlwZS4gIEluIHRoZSBmb3JtZXIgY2FzZSwgdGhlIG51bWJlcnMgYXJlIGNvbnZlcnRlZCB0byBhIGNvbW1vbiB0eXBlXG5hbmQgdGhlbiBhZGRlZCB0b2dldGhlci4gIEluIHRoZSBsYXR0ZXIgY2FzZSwgdGhlIHNlcXVlbmNlcyBhcmVcbmNvbmNhdGVuYXRlZC5cblxuVGhlIGBgLWBgIChzdWJ0cmFjdGlvbikgb3BlcmF0b3IgeWllbGRzIHRoZSBkaWZmZXJlbmNlIG9mIGl0c1xuYXJndW1lbnRzLiAgVGhlIG51bWVyaWMgYXJndW1lbnRzIGFyZSBmaXJzdCBjb252ZXJ0ZWQgdG8gYSBjb21tb25cbnR5cGUuXG4nLAogICdiaXR3aXNlJzogJ1xuQmluYXJ5IGJpdHdpc2Ugb3BlcmF0aW9uc1xuKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5FYWNoIG9mIHRoZSB0aHJlZSBiaXR3aXNlIG9wZXJhdGlvbnMgaGFzIGEgZGlmZmVyZW50IHByaW9yaXR5IGxldmVsOlxuXG4gICBhbmRfZXhwciA6Oj0gc2hpZnRfZXhwciB8IGFuZF9leHByICImIiBzaGlmdF9leHByXG4gICB4b3JfZXhwciA6Oj0gYW5kX2V4cHIgfCB4b3JfZXhwciAiXiIgYW5kX2V4cHJcbiAgIG9yX2V4cHIgIDo6PSB4b3JfZXhwciB8IG9yX2V4cHIgInwiIHhvcl9leHByXG5cblRoZSBgYCZgYCBvcGVyYXRvciB5aWVsZHMgdGhlIGJpdHdpc2UgQU5EIG9mIGl0cyBhcmd1bWVudHMsIHdoaWNoIG11c3RcbmJlIGludGVnZXJzLlxuXG5UaGUgYGBeYGAgb3BlcmF0b3IgeWllbGRzIHRoZSBiaXR3aXNlIFhPUiAoZXhjbHVzaXZlIE9SKSBvZiBpdHNcbmFyZ3VtZW50cywgd2hpY2ggbXVzdCBiZSBpbnRlZ2Vycy5cblxuVGhlIGBgfGBgIG9wZXJhdG9yIHlpZWxkcyB0aGUgYml0d2lzZSAoaW5jbHVzaXZlKSBPUiBvZiBpdHMgYXJndW1lbnRzLFxud2hpY2ggbXVzdCBiZSBpbnRlZ2Vycy5cbicsCiAgJ2JsdGluLWNvZGUtb2JqZWN0cyc6ICdcbkNvZGUgT2JqZWN0c1xuKioqKioqKioqKioqXG5cbkNvZGUgb2JqZWN0cyBhcmUgdXNlZCBieSB0aGUgaW1wbGVtZW50YXRpb24gdG8gcmVwcmVzZW50ICJwc2V1ZG8tXG5jb21waWxlZCIgZXhlY3V0YWJsZSBQeXRob24gY29kZSBzdWNoIGFzIGEgZnVuY3Rpb24gYm9keS4gVGhleSBkaWZmZXJcbmZyb20gZnVuY3Rpb24gb2JqZWN0cyBiZWNhdXNlIHRoZXkgZG9uXCd0IGNvbnRhaW4gYSByZWZlcmVuY2UgdG8gdGhlaXJcbmdsb2JhbCBleGVjdXRpb24gZW52aXJvbm1lbnQuICBDb2RlIG9iamVjdHMgYXJlIHJldHVybmVkIGJ5IHRoZSBidWlsdC1cbmluIGBgY29tcGlsZSgpYGAgZnVuY3Rpb24gYW5kIGNhbiBiZSBleHRyYWN0ZWQgZnJvbSBmdW5jdGlvbiBvYmplY3RzXG50aHJvdWdoIHRoZWlyIGBgX19jb2RlX19gYCBhdHRyaWJ1dGUuIFNlZSBhbHNvIHRoZSBgYGNvZGVgYCBtb2R1bGUuXG5cbkEgY29kZSBvYmplY3QgY2FuIGJlIGV4ZWN1dGVkIG9yIGV2YWx1YXRlZCBieSBwYXNzaW5nIGl0IChpbnN0ZWFkIG9mIGFcbnNvdXJjZSBzdHJpbmcpIHRvIHRoZSBgYGV4ZWMoKWBgIG9yIGBgZXZhbCgpYGAgIGJ1aWx0LWluIGZ1bmN0aW9ucy5cblxuU2VlICpUaGUgc3RhbmRhcmQgdHlwZSBoaWVyYXJjaHkqIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuJywKLSAnYmx0aW4tZWxsaXBzaXMtb2JqZWN0JzogJ1xuVGhlIEVsbGlwc2lzIE9iamVjdFxuKioqKioqKioqKioqKioqKioqKlxuXG5UaGlzIG9iamVjdCBpcyBjb21tb25seSB1c2VkIGJ5IHNsaWNpbmcgKHNlZSAqU2xpY2luZ3MqKS4gIEl0IHN1cHBvcnRzXG5ubyBzcGVjaWFsIG9wZXJhdGlvbnMuICBUaGVyZSBpcyBleGFjdGx5IG9uZSBlbGxpcHNpcyBvYmplY3QsIG5hbWVkXG5gYEVsbGlwc2lzYGAgKGEgYnVpbHQtaW4gbmFtZSkuXG5cbkl0IGlzIHdyaXR0ZW4gYXMgYGBFbGxpcHNpc2BgIG9yIGBgLi4uYGAuXG4nLAotICdibHRpbi1udWxsLW9iamVjdCc6ICJcblRoZSBOdWxsIE9iamVjdFxuKioqKioqKioqKioqKioqXG5cblRoaXMgb2JqZWN0IGlzIHJldHVybmVkIGJ5IGZ1bmN0aW9ucyB0aGF0IGRvbid0IGV4cGxpY2l0bHkgcmV0dXJuIGFcbnZhbHVlLiAgSXQgc3VwcG9ydHMgbm8gc3BlY2lhbCBvcGVyYXRpb25zLiAgVGhlcmUgaXMgZXhhY3RseSBvbmUgbnVsbFxub2JqZWN0LCBuYW1lZCBgYE5vbmVgYCAoYSBidWlsdC1pbiBuYW1lKS5cblxuSXQgaXMgd3JpdHRlbiBhcyBgYE5vbmVgYC5cbiIsCisgJ2JsdGluLWVsbGlwc2lzLW9iamVjdCc6ICdcblRoZSBFbGxpcHNpcyBPYmplY3RcbioqKioqKioqKioqKioqKioqKipcblxuVGhpcyBvYmplY3QgaXMgY29tbW9ubHkgdXNlZCBieSBzbGljaW5nIChzZWUgKlNsaWNpbmdzKikuICBJdCBzdXBwb3J0c1xubm8gc3BlY2lhbCBvcGVyYXRpb25zLiAgVGhlcmUgaXMgZXhhY3RseSBvbmUgZWxsaXBzaXMgb2JqZWN0LCBuYW1lZFxuYGBFbGxpcHNpc2BgIChhIGJ1aWx0LWluIG5hbWUpLiAgYGB0eXBlKEVsbGlwc2lzKSgpYGAgcHJvZHVjZXMgdGhlXG5gYEVsbGlwc2lzYGAgc2luZ2xldG9uLlxuXG5JdCBpcyB3cml0dGVuIGFzIGBgRWxsaXBzaXNgYCBvciBgYC4uLmBgLlxuJywKKyAnYmx0aW4tbnVsbC1vYmplY3QnOiAiXG5UaGUgTnVsbCBPYmplY3RcbioqKioqKioqKioqKioqKlxuXG5UaGlzIG9iamVjdCBpcyByZXR1cm5lZCBieSBmdW5jdGlvbnMgdGhhdCBkb24ndCBleHBsaWNpdGx5IHJldHVybiBhXG52YWx1ZS4gIEl0IHN1cHBvcnRzIG5vIHNwZWNpYWwgb3BlcmF0aW9ucy4gIFRoZXJlIGlzIGV4YWN0bHkgb25lIG51bGxcbm9iamVjdCwgbmFtZWQgYGBOb25lYGAgKGEgYnVpbHQtaW4gbmFtZSkuICBgYHR5cGUoTm9uZSkoKWBgIHByb2R1Y2VzXG50aGUgc2FtZSBzaW5nbGV0b24uXG5cbkl0IGlzIHdyaXR0ZW4gYXMgYGBOb25lYGAuXG4iLAogICdibHRpbi10eXBlLW9iamVjdHMnOiAiXG5UeXBlIE9iamVjdHNcbioqKioqKioqKioqKlxuXG5UeXBlIG9iamVjdHMgcmVwcmVzZW50IHRoZSB2YXJpb3VzIG9iamVjdCB0eXBlcy4gIEFuIG9iamVjdCdzIHR5cGUgaXNcbmFjY2Vzc2VkIGJ5IHRoZSBidWlsdC1pbiBmdW5jdGlvbiBgYHR5cGUoKWBgLiAgVGhlcmUgYXJlIG5vIHNwZWNpYWxcbm9wZXJhdGlvbnMgb24gdHlwZXMuICBUaGUgc3RhbmRhcmQgbW9kdWxlIGBgdHlwZXNgYCBkZWZpbmVzIG5hbWVzIGZvclxuYWxsIHN0YW5kYXJkIGJ1aWx0LWluIHR5cGVzLlxuXG5UeXBlcyBhcmUgd3JpdHRlbiBsaWtlIHRoaXM6IGBgPGNsYXNzICdpbnQnPmBgLlxuIiwKICAnYm9vbGVhbnMnOiAnXG5Cb29sZWFuIG9wZXJhdGlvbnNcbioqKioqKioqKioqKioqKioqKlxuXG4gICBvcl90ZXN0ICA6Oj0gYW5kX3Rlc3QgfCBvcl90ZXN0ICJvciIgYW5kX3Rlc3RcbiAgIGFuZF90ZXN0IDo6PSBub3RfdGVzdCB8IGFuZF90ZXN0ICJhbmQiIG5vdF90ZXN0XG4gICBub3RfdGVzdCA6Oj0gY29tcGFyaXNvbiB8ICJub3QiIG5vdF90ZXN0XG5cbkluIHRoZSBjb250ZXh0IG9mIEJvb2xlYW4gb3BlcmF0aW9ucywgYW5kIGFsc28gd2hlbiBleHByZXNzaW9ucyBhcmVcbnVzZWQgYnkgY29udHJvbCBmbG93IHN0YXRlbWVudHMsIHRoZSBmb2xsb3dpbmcgdmFsdWVzIGFyZSBpbnRlcnByZXRlZFxuYXMgZmFsc2U6IGBgRmFsc2VgYCwgYGBOb25lYGAsIG51bWVyaWMgemVybyBvZiBhbGwgdHlwZXMsIGFuZCBlbXB0eVxuc3RyaW5ncyBhbmQgY29udGFpbmVycyAoaW5jbHVkaW5nIHN0cmluZ3MsIHR1cGxlcywgbGlzdHMsXG5kaWN0aW9uYXJpZXMsIHNldHMgYW5kIGZyb3plbnNldHMpLiAgQWxsIG90aGVyIHZhbHVlcyBhcmUgaW50ZXJwcmV0ZWRcbmFzIHRydWUuICBVc2VyLWRlZmluZWQgb2JqZWN0cyBjYW4gY3VzdG9taXplIHRoZWlyIHRydXRoIHZhbHVlIGJ5XG5wcm92aWRpbmcgYSBgYF9fYm9vbF9fKClgYCBtZXRob2QuXG5cblRoZSBvcGVyYXRvciBgYG5vdGBgIHlpZWxkcyBgYFRydWVgYCBpZiBpdHMgYXJndW1lbnQgaXMgZmFsc2UsXG5gYEZhbHNlYGAgb3RoZXJ3aXNlLlxuXG5UaGUgZXhwcmVzc2lvbiBgYHggYW5kIHlgYCBmaXJzdCBldmFsdWF0ZXMgKngqOyBpZiAqeCogaXMgZmFsc2UsIGl0c1xudmFsdWUgaXMgcmV0dXJuZWQ7IG90aGVyd2lzZSwgKnkqIGlzIGV2YWx1YXRlZCBhbmQgdGhlIHJlc3VsdGluZyB2YWx1ZVxuaXMgcmV0dXJuZWQuXG5cblRoZSBleHByZXNzaW9uIGBgeCBvciB5YGAgZmlyc3QgZXZhbHVhdGVzICp4KjsgaWYgKngqIGlzIHRydWUsIGl0c1xudmFsdWUgaXMgcmV0dXJuZWQ7IG90aGVyd2lzZSwgKnkqIGlzIGV2YWx1YXRlZCBhbmQgdGhlIHJlc3VsdGluZyB2YWx1ZVxuaXMgcmV0dXJuZWQuXG5cbihOb3RlIHRoYXQgbmVpdGhlciBgYGFuZGBgIG5vciBgYG9yYGAgcmVzdHJpY3QgdGhlIHZhbHVlIGFuZCB0eXBlIHRoZXlcbnJldHVybiB0byBgYEZhbHNlYGAgYW5kIGBgVHJ1ZWBgLCBidXQgcmF0aGVyIHJldHVybiB0aGUgbGFzdCBldmFsdWF0ZWRcbmFyZ3VtZW50LiAgVGhpcyBpcyBzb21ldGltZXMgdXNlZnVsLCBlLmcuLCBpZiBgYHNgYCBpcyBhIHN0cmluZyB0aGF0XG5zaG91bGQgYmUgcmVwbGFjZWQgYnkgYSBkZWZhdWx0IHZhbHVlIGlmIGl0IGlzIGVtcHR5LCB0aGUgZXhwcmVzc2lvblxuYGBzIG9yIFwnZm9vXCdgYCB5aWVsZHMgdGhlIGRlc2lyZWQgdmFsdWUuICBCZWNhdXNlIGBgbm90YGAgaGFzIHRvXG5pbnZlbnQgYSB2YWx1ZSBhbnl3YXksIGl0IGRvZXMgbm90IGJvdGhlciB0byByZXR1cm4gYSB2YWx1ZSBvZiB0aGVcbnNhbWUgdHlwZSBhcyBpdHMgYXJndW1lbnQsIHNvIGUuZy4sIGBgbm90IFwnZm9vXCdgYCB5aWVsZHMgYGBGYWxzZWBgLFxubm90IGBgXCdcJ2BgLilcbicsCiAgJ2JyZWFrJzogJ1xuVGhlIGBgYnJlYWtgYCBzdGF0ZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgIGJyZWFrX3N0bXQgOjo9ICJicmVhayJcblxuYGBicmVha2BgIG1heSBvbmx5IG9jY3VyIHN5bnRhY3RpY2FsbHkgbmVzdGVkIGluIGEgYGBmb3JgYCBvclxuYGB3aGlsZWBgIGxvb3AsIGJ1dCBub3QgbmVzdGVkIGluIGEgZnVuY3Rpb24gb3IgY2xhc3MgZGVmaW5pdGlvblxud2l0aGluIHRoYXQgbG9vcC5cblxuSXQgdGVybWluYXRlcyB0aGUgbmVhcmVzdCBlbmNsb3NpbmcgbG9vcCwgc2tpcHBpbmcgdGhlIG9wdGlvbmFsXG5gYGVsc2VgYCBjbGF1c2UgaWYgdGhlIGxvb3AgaGFzIG9uZS5cblxuSWYgYSBgYGZvcmBgIGxvb3AgaXMgdGVybWluYXRlZCBieSBgYGJyZWFrYGAsIHRoZSBsb29wIGNvbnRyb2wgdGFyZ2V0XG5rZWVwcyBpdHMgY3VycmVudCB2YWx1ZS5cblxuV2hlbiBgYGJyZWFrYGAgcGFzc2VzIGNvbnRyb2wgb3V0IG9mIGEgYGB0cnlgYCBzdGF0ZW1lbnQgd2l0aCBhXG5gYGZpbmFsbHlgYCBjbGF1c2UsIHRoYXQgYGBmaW5hbGx5YGAgY2xhdXNlIGlzIGV4ZWN1dGVkIGJlZm9yZSByZWFsbHlcbmxlYXZpbmcgdGhlIGxvb3AuXG4nLApAQCAtMTgsMTMgKzE5LDEzIEBACiAgJ2NhbGxzJzogJ1xuQ2FsbHNcbioqKioqXG5cbkEgY2FsbCBjYWxscyBhIGNhbGxhYmxlIG9iamVjdCAoZS5nLiwgYSBmdW5jdGlvbikgd2l0aCBhIHBvc3NpYmx5XG5lbXB0eSBzZXJpZXMgb2YgYXJndW1lbnRzOlxuXG4gICBjYWxsICAgICAgICAgICAgICAgICA6Oj0gcHJpbWFyeSAiKCIgW2FyZ3VtZW50X2xpc3QgWyIsIl0gfCBjb21wcmVoZW5zaW9uXSAiKSJcbiAgIGFyZ3VtZW50X2xpc3QgICAgICAgIDo6PSBwb3NpdGlvbmFsX2FyZ3VtZW50cyBbIiwiIGtleXdvcmRfYXJndW1lbnRzXVxuICAgICAgICAgICAgICAgICAgICAgICBbIiwiICIqIiBleHByZXNzaW9uXSBbIiwiIGtleXdvcmRfYXJndW1lbnRzXVxuICAgICAgICAgICAgICAgICAgICAgICBbIiwiICIqKiIgZXhwcmVzc2lvbl1cbiAgICAgICAgICAgICAgICAgICAgIHwga2V5d29yZF9hcmd1bWVudHMgWyIsIiAiKiIgZXhwcmVzc2lvbl1cbiAgICAgICAgICAgICAgICAgICAgICAgWyIsIiBrZXl3b3JkX2FyZ3VtZW50c10gWyIsIiAiKioiIGV4cHJlc3Npb25dXG4gICAgICAgICAgICAgICAgICAgICB8ICIqIiBleHByZXNzaW9uIFsiLCIga2V5d29yZF9hcmd1bWVudHNdIFsiLCIgIioqIiBleHByZXNzaW9uXVxuICAgICAgICAgICAgICAgICAgICAgfCAiKioiIGV4cHJlc3Npb25cbiAgIHBvc2l0aW9uYWxfYXJndW1lbnRzIDo6PSBleHByZXNzaW9uICgiLCIgZXhwcmVzc2lvbikqXG4gICBrZXl3b3JkX2FyZ3VtZW50cyAgICA6Oj0ga2V5d29yZF9pdGVtICgiLCIga2V5d29yZF9pdGVtKSpcbiAgIGtleXdvcmRfaXRlbSAgICAgICAgIDo6PSBpZGVudGlmaWVyICI9IiBleHByZXNzaW9uXG5cbkEgdHJhaWxpbmcgY29tbWEgbWF5IGJlIHByZXNlbnQgYWZ0ZXIgdGhlIHBvc2l0aW9uYWwgYW5kIGtleXdvcmRcbmFyZ3VtZW50cyBidXQgZG9lcyBub3QgYWZmZWN0IHRoZSBzZW1hbnRpY3MuXG5cblRoZSBwcmltYXJ5IG11c3QgZXZhbHVhdGUgdG8gYSBjYWxsYWJsZSBvYmplY3QgKHVzZXItZGVmaW5lZFxuZnVuY3Rpb25zLCBidWlsdC1pbiBmdW5jdGlvbnMsIG1ldGhvZHMgb2YgYnVpbHQtaW4gb2JqZWN0cywgY2xhc3Ncbm9iamVjdHMsIG1ldGhvZHMgb2YgY2xhc3MgaW5zdGFuY2VzLCBhbmQgYWxsIG9iamVjdHMgaGF2aW5nIGFcbmBgX19jYWxsX18oKWBgIG1ldGhvZCBhcmUgY2FsbGFibGUpLiAgQWxsIGFyZ3VtZW50IGV4cHJlc3Npb25zIGFyZVxuZXZhbHVhdGVkIGJlZm9yZSB0aGUgY2FsbCBpcyBhdHRlbXB0ZWQuICBQbGVhc2UgcmVmZXIgdG8gc2VjdGlvblxuKkZ1bmN0aW9uIGRlZmluaXRpb25zKiBmb3IgdGhlIHN5bnRheCBvZiBmb3JtYWwgcGFyYW1ldGVyIGxpc3RzLlxuXG5JZiBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgcHJlc2VudCwgdGhleSBhcmUgZmlyc3QgY29udmVydGVkIHRvXG5wb3NpdGlvbmFsIGFyZ3VtZW50cywgYXMgZm9sbG93cy4gIEZpcnN0LCBhIGxpc3Qgb2YgdW5maWxsZWQgc2xvdHMgaXNcbmNyZWF0ZWQgZm9yIHRoZSBmb3JtYWwgcGFyYW1ldGVycy4gIElmIHRoZXJlIGFyZSBOIHBvc2l0aW9uYWxcbmFyZ3VtZW50cywgdGhleSBhcmUgcGxhY2VkIGluIHRoZSBmaXJzdCBOIHNsb3RzLiAgTmV4dCwgZm9yIGVhY2hcbmtleXdvcmQgYXJndW1lbnQsIHRoZSBpZGVudGlmaWVyIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZVxuY29ycmVzcG9uZGluZyBzbG90IChpZiB0aGUgaWRlbnRpZmllciBpcyB0aGUgc2FtZSBhcyB0aGUgZmlyc3QgZm9ybWFsXG5wYXJhbWV0ZXIgbmFtZSwgdGhlIGZpcnN0IHNsb3QgaXMgdXNlZCwgYW5kIHNvIG9uKS4gIElmIHRoZSBzbG90IGlzXG5hbHJlYWR5IGZpbGxlZCwgYSBgYFR5cGVFcnJvcmBgIGV4Y2VwdGlvbiBpcyByYWlzZWQuIE90aGVyd2lzZSwgdGhlXG52YWx1ZSBvZiB0aGUgYXJndW1lbnQgaXMgcGxhY2VkIGluIHRoZSBzbG90LCBmaWxsaW5nIGl0IChldmVuIGlmIHRoZVxuZXhwcmVzc2lvbiBpcyBgYE5vbmVgYCwgaXQgZmlsbHMgdGhlIHNsb3QpLiAgV2hlbiBhbGwgYXJndW1lbnRzIGhhdmVcbmJlZW4gcHJvY2Vzc2VkLCB0aGUgc2xvdHMgdGhhdCBhcmUgc3RpbGwgdW5maWxsZWQgYXJlIGZpbGxlZCB3aXRoIHRoZVxuY29ycmVzcG9uZGluZyBkZWZhdWx0IHZhbHVlIGZyb20gdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24uICAoRGVmYXVsdFxudmFsdWVzIGFyZSBjYWxjdWxhdGVkLCBvbmNlLCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBkZWZpbmVkOyB0aHVzLCBhXG5tdXRhYmxlIG9iamVjdCBzdWNoIGFzIGEgbGlzdCBvciBkaWN0aW9uYXJ5IHVzZWQgYXMgZGVmYXVsdCB2YWx1ZSB3aWxsXG5iZSBzaGFyZWQgYnkgYWxsIGNhbGxzIHRoYXQgZG9uXCd0IHNwZWNpZnkgYW4gYXJndW1lbnQgdmFsdWUgZm9yIHRoZVxuY29ycmVzcG9uZGluZyBzbG90OyB0aGlzIHNob3VsZCB1c3VhbGx5IGJlIGF2b2lkZWQuKSAgSWYgdGhlcmUgYXJlIGFueVxudW5maWxsZWQgc2xvdHMgZm9yIHdoaWNoIG5vIGRlZmF1bHQgdmFsdWUgaXMgc3BlY2lmaWVkLCBhXG5gYFR5cGVFcnJvcmBgIGV4Y2VwdGlvbiBpcyByYWlzZWQuICBPdGhlcndpc2UsIHRoZSBsaXN0IG9mIGZpbGxlZFxuc2xvdHMgaXMgdXNlZCBhcyB0aGUgYXJndW1lbnQgbGlzdCBmb3IgdGhlIGNhbGwuXG5cbioqQ1B5dGhvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWw6KiogQW4gaW1wbGVtZW50YXRpb24gbWF5IHByb3ZpZGVcbmJ1aWx0LWluIGZ1bmN0aW9ucyB3aG9zZSBwb3NpdGlvbmFsIHBhcmFtZXRlcnMgZG8gbm90IGhhdmUgbmFtZXMsIGV2ZW5cbmlmIHRoZXkgYXJlIFwnbmFtZWRcJyBmb3IgdGhlIHB1cnBvc2Ugb2YgZG9jdW1lbnRhdGlvbiwgYW5kIHdoaWNoXG50aGVyZWZvcmUgY2Fubm90IGJlIHN1cHBsaWVkIGJ5IGtleXdvcmQuICBJbiBDUHl0aG9uLCB0aGlzIGlzIHRoZSBjYXNlXG5mb3IgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluIEMgdGhhdCB1c2UgYGBQeUFyZ19QYXJzZVR1cGxlKClgYCB0b1xucGFyc2UgdGhlaXIgYXJndW1lbnRzLlxuXG5JZiB0aGVyZSBhcmUgbW9yZSBwb3NpdGlvbmFsIGFyZ3VtZW50cyB0aGFuIHRoZXJlIGFyZSBmb3JtYWwgcGFyYW1ldGVyXG5zbG90cywgYSBgYFR5cGVFcnJvcmBgIGV4Y2VwdGlvbiBpcyByYWlzZWQsIHVubGVzcyBhIGZvcm1hbCBwYXJhbWV0ZXJcbnVzaW5nIHRoZSBzeW50YXggYGAqaWRlbnRpZmllcmBgIGlzIHByZXNlbnQ7IGluIHRoaXMgY2FzZSwgdGhhdCBmb3JtYWxcbnBhcmFtZXRlciByZWNlaXZlcyBhIHR1cGxlIGNvbnRhaW5pbmcgdGhlIGV4Y2VzcyBwb3NpdGlvbmFsIGFyZ3VtZW50c1xuKG9yIGFuIGVtcHR5IHR1cGxlIGlmIHRoZXJlIHdlcmUgbm8gZXhjZXNzIHBvc2l0aW9uYWwgYXJndW1lbnRzKS5cblxuSWYgYW55IGtleXdvcmQgYXJndW1lbnQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhIGZvcm1hbCBwYXJhbWV0ZXJcbm5hbWUsIGEgYGBUeXBlRXJyb3JgYCBleGNlcHRpb24gaXMgcmFpc2VkLCB1bmxlc3MgYSBmb3JtYWwgcGFyYW1ldGVyXG51c2luZyB0aGUgc3ludGF4IGBgKippZGVudGlmaWVyYGAgaXMgcHJlc2VudDsgaW4gdGhpcyBjYXNlLCB0aGF0XG5mb3JtYWwgcGFyYW1ldGVyIHJlY2VpdmVzIGEgZGljdGlvbmFyeSBjb250YWluaW5nIHRoZSBleGNlc3Mga2V5d29yZFxuYXJndW1lbnRzICh1c2luZyB0aGUga2V5d29yZHMgYXMga2V5cyBhbmQgdGhlIGFyZ3VtZW50IHZhbHVlcyBhc1xuY29ycmVzcG9uZGluZyB2YWx1ZXMpLCBvciBhIChuZXcpIGVtcHR5IGRpY3Rpb25hcnkgaWYgdGhlcmUgd2VyZSBub1xuZXhjZXNzIGtleXdvcmQgYXJndW1lbnRzLlxuXG5JZiB0aGUgc3ludGF4IGBgKmV4cHJlc3Npb25gYCBhcHBlYXJzIGluIHRoZSBmdW5jdGlvbiBjYWxsLFxuYGBleHByZXNzaW9uYGAgbXVzdCBldmFsdWF0ZSB0byBhbiBpdGVyYWJsZS4gIEVsZW1lbnRzIGZyb20gdGhpc1xuaXRlcmFibGUgYXJlIHRyZWF0ZWQgYXMgaWYgdGhleSB3ZXJlIGFkZGl0aW9uYWwgcG9zaXRpb25hbCBhcmd1bWVudHM7XG5pZiB0aGVyZSBhcmUgcG9zaXRpb25hbCBhcmd1bWVudHMgKngxKiwgLi4uLCAqeE4qLCBhbmQgYGBleHByZXNzaW9uYGBcbmV2YWx1YXRlcyB0byBhIHNlcXVlbmNlICp5MSosIC4uLiwgKnlNKiwgdGhpcyBpcyBlcXVpdmFsZW50IHRvIGEgY2FsbFxud2l0aCBNK04gcG9zaXRpb25hbCBhcmd1bWVudHMgKngxKiwgLi4uLCAqeE4qLCAqeTEqLCAuLi4sICp5TSouXG5cbkEgY29uc2VxdWVuY2Ugb2YgdGhpcyBpcyB0aGF0IGFsdGhvdWdoIHRoZSBgYCpleHByZXNzaW9uYGAgc3ludGF4IG1heVxuYXBwZWFyICphZnRlciogc29tZSBrZXl3b3JkIGFyZ3VtZW50cywgaXQgaXMgcHJvY2Vzc2VkICpiZWZvcmUqIHRoZVxua2V5d29yZCBhcmd1bWVudHMgKGFuZCB0aGUgYGAqKmV4cHJlc3Npb25gYCBhcmd1bWVudCwgaWYgYW55IC0tIHNlZVxuYmVsb3cpLiAgU286XG5cbiAgID4+PiBkZWYgZihhLCBiKTpcbiAgIC4uLiAgcHJpbnQoYSwgYilcbiAgIC4uLlxuICAgPj4+IGYoYj0xLCAqKDIsKSlcbiAgIDIgMVxuICAgPj4+IGYoYT0xLCAqKDIsKSlcbiAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTpcbiAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMSwgaW4gP1xuICAgVHlwZUVycm9yOiBmKCkgZ290IG11bHRpcGxlIHZhbHVlcyBmb3Iga2V5d29yZCBhcmd1bWVudCBcJ2FcJ1xuICAgPj4+IGYoMSwgKigyLCkpXG4gICAxIDJcblxuSXQgaXMgdW51c3VhbCBmb3IgYm90aCBrZXl3b3JkIGFyZ3VtZW50cyBhbmQgdGhlIGBgKmV4cHJlc3Npb25gYFxuc3ludGF4IHRvIGJlIHVzZWQgaW4gdGhlIHNhbWUgY2FsbCwgc28gaW4gcHJhY3RpY2UgdGhpcyBjb25mdXNpb24gZG9lc1xubm90IGFyaXNlLlxuXG5JZiB0aGUgc3ludGF4IGBgKipleHByZXNzaW9uYGAgYXBwZWFycyBpbiB0aGUgZnVuY3Rpb24gY2FsbCxcbmBgZXhwcmVzc2lvbmBgIG11c3QgZXZhbHVhdGUgdG8gYSBtYXBwaW5nLCB0aGUgY29udGVudHMgb2Ygd2hpY2ggYXJlXG50cmVhdGVkIGFzIGFkZGl0aW9uYWwga2V5d29yZCBhcmd1bWVudHMuICBJbiB0aGUgY2FzZSBvZiBhIGtleXdvcmRcbmFwcGVhcmluZyBpbiBib3RoIGBgZXhwcmVzc2lvbmBgIGFuZCBhcyBhbiBleHBsaWNpdCBrZXl3b3JkIGFyZ3VtZW50LFxuYSBgYFR5cGVFcnJvcmBgIGV4Y2VwdGlvbiBpcyByYWlzZWQuXG5cbkZvcm1hbCBwYXJhbWV0ZXJzIHVzaW5nIHRoZSBzeW50YXggYGAqaWRlbnRpZmllcmBgIG9yIGBgKippZGVudGlmaWVyYGBcbmNhbm5vdCBiZSB1c2VkIGFzIHBvc2l0aW9uYWwgYXJndW1lbnQgc2xvdHMgb3IgYXMga2V5d29yZCBhcmd1bWVudFxubmFtZXMuXG5cbkEgY2FsbCBhbHdheXMgcmV0dXJucyBzb21lIHZhbHVlLCBwb3NzaWJseSBgYE5vbmVgYCwgdW5sZXNzIGl0IHJhaXNlc1xuYW4gZXhjZXB0aW9uLiAgSG93IHRoaXMgdmFsdWUgaXMgY29tcHV0ZWQgZGVwZW5kcyBvbiB0aGUgdHlwZSBvZiB0aGVcbmNhbGxhYmxlIG9iamVjdC5cblxuSWYgaXQgaXMtLS1cblxuYSB1c2VyLWRlZmluZWQgZnVuY3Rpb246XG4gICBUaGUgY29kZSBibG9jayBmb3IgdGhlIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkLCBwYXNzaW5nIGl0IHRoZVxuICAgYXJndW1lbnQgbGlzdC4gIFRoZSBmaXJzdCB0aGluZyB0aGUgY29kZSBibG9jayB3aWxsIGRvIGlzIGJpbmQgdGhlXG4gICBmb3JtYWwgcGFyYW1ldGVycyB0byB0aGUgYXJndW1lbnRzOyB0aGlzIGlzIGRlc2NyaWJlZCBpbiBzZWN0aW9uXG4gICAqRnVuY3Rpb24gZGVmaW5pdGlvbnMqLiAgV2hlbiB0aGUgY29kZSBibG9jayBleGVjdXRlcyBhIGBgcmV0dXJuYGBcbiAgIHN0YXRlbWVudCwgdGhpcyBzcGVjaWZpZXMgdGhlIHJldHVybiB2YWx1ZSBvZiB0aGUgZnVuY3Rpb24gY2FsbC5cblxuYSBidWlsdC1pbiBmdW5jdGlvbiBvciBtZXRob2Q6XG4gICBUaGUgcmVzdWx0IGlzIHVwIHRvIHRoZSBpbnRlcnByZXRlcjsgc2VlICpCdWlsdC1pbiBGdW5jdGlvbnMqIGZvclxuICAgdGhlIGRlc2NyaXB0aW9ucyBvZiBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIG1ldGhvZHMuXG5cbmEgY2xhc3Mgb2JqZWN0OlxuICAgQSBuZXcgaW5zdGFuY2Ugb2YgdGhhdCBjbGFzcyBpcyByZXR1cm5lZC5cblxuYSBjbGFzcyBpbnN0YW5jZSBtZXRob2Q6XG4gICBUaGUgY29ycmVzcG9uZGluZyB1c2VyLWRlZmluZWQgZnVuY3Rpb24gaXMgY2FsbGVkLCB3aXRoIGFuIGFyZ3VtZW50XG4gICBsaXN0IHRoYXQgaXMgb25lIGxvbmdlciB0aGFuIHRoZSBhcmd1bWVudCBsaXN0IG9mIHRoZSBjYWxsOiB0aGVcbiAgIGluc3RhbmNlIGJlY29tZXMgdGhlIGZpcnN0IGFyZ3VtZW50LlxuXG5hIGNsYXNzIGluc3RhbmNlOlxuICAgVGhlIGNsYXNzIG11c3QgZGVmaW5lIGEgYGBfX2NhbGxfXygpYGAgbWV0aG9kOyB0aGUgZWZmZWN0IGlzIHRoZW5cbiAgIHRoZSBzYW1lIGFzIGlmIHRoYXQgbWV0aG9kIHdhcyBjYWxsZWQuXG4nLAogICdjbGFzcyc6ICdcbkNsYXNzIGRlZmluaXRpb25zXG4qKioqKioqKioqKioqKioqKlxuXG5BIGNsYXNzIGRlZmluaXRpb24gZGVmaW5lcyBhIGNsYXNzIG9iamVjdCAoc2VlIHNlY3Rpb24gKlRoZSBzdGFuZGFyZFxudHlwZSBoaWVyYXJjaHkqKTpcblxuICAgY2xhc3NkZWYgICAgOjo9IFtkZWNvcmF0b3JzXSAiY2xhc3MiIGNsYXNzbmFtZSBbaW5oZXJpdGFuY2VdICI6IiBzdWl0ZVxuICAgaW5oZXJpdGFuY2UgOjo9ICIoIiBbcGFyYW1ldGVyX2xpc3RdICIpIlxuICAgY2xhc3NuYW1lICAgOjo9IGlkZW50aWZpZXJcblxuQSBjbGFzcyBkZWZpbml0aW9uIGlzIGFuIGV4ZWN1dGFibGUgc3RhdGVtZW50LiAgVGhlIGluaGVyaXRhbmNlIGxpc3RcbnVzdWFsbHkgZ2l2ZXMgYSBsaXN0IG9mIGJhc2UgY2xhc3NlcyAoc2VlICpDdXN0b21pemluZyBjbGFzcyBjcmVhdGlvbipcbmZvciBtb3JlIGFkdmFuY2VkIHVzZXMpLCBzbyBlYWNoIGl0ZW0gaW4gdGhlIGxpc3Qgc2hvdWxkIGV2YWx1YXRlIHRvIGFcbmNsYXNzIG9iamVjdCB3aGljaCBhbGxvd3Mgc3ViY2xhc3NpbmcuICBDbGFzc2VzIHdpdGhvdXQgYW4gaW5oZXJpdGFuY2Vcbmxpc3QgaW5oZXJpdCwgYnkgZGVmYXVsdCwgZnJvbSB0aGUgYmFzZSBjbGFzcyBgYG9iamVjdGBgOyBoZW5jZSxcblxuICAgY2xhc3MgRm9vOlxuICAgICAgIHBhc3NcblxuaXMgZXF1aXZhbGVudCB0b1xuXG4gICBjbGFzcyBGb28ob2JqZWN0KTpcbiAgICAgICBwYXNzXG5cblRoZSBjbGFzc1wncyBzdWl0ZSBpcyB0aGVuIGV4ZWN1dGVkIGluIGEgbmV3IGV4ZWN1dGlvbiBmcmFtZSAoc2VlXG4qTmFtaW5nIGFuZCBiaW5kaW5nKiksIHVzaW5nIGEgbmV3bHkgY3JlYXRlZCBsb2NhbCBuYW1lc3BhY2UgYW5kIHRoZVxub3JpZ2luYWwgZ2xvYmFsIG5hbWVzcGFjZS4gKFVzdWFsbHksIHRoZSBzdWl0ZSBjb250YWlucyBtb3N0bHlcbmZ1bmN0aW9uIGRlZmluaXRpb25zLikgIFdoZW4gdGhlIGNsYXNzXCdzIHN1aXRlIGZpbmlzaGVzIGV4ZWN1dGlvbiwgaXRzXG5leGVjdXRpb24gZnJhbWUgaXMgZGlzY2FyZGVkIGJ1dCBpdHMgbG9jYWwgbmFtZXNwYWNlIGlzIHNhdmVkLiBbNF0gQVxuY2xhc3Mgb2JqZWN0IGlzIHRoZW4gY3JlYXRlZCB1c2luZyB0aGUgaW5oZXJpdGFuY2UgbGlzdCBmb3IgdGhlIGJhc2VcbmNsYXNzZXMgYW5kIHRoZSBzYXZlZCBsb2NhbCBuYW1lc3BhY2UgZm9yIHRoZSBhdHRyaWJ1dGUgZGljdGlvbmFyeS5cblRoZSBjbGFzcyBuYW1lIGlzIGJvdW5kIHRvIHRoaXMgY2xhc3Mgb2JqZWN0IGluIHRoZSBvcmlnaW5hbCBsb2NhbFxubmFtZXNwYWNlLlxuXG5DbGFzcyBjcmVhdGlvbiBjYW4gYmUgY3VzdG9taXplZCBoZWF2aWx5IHVzaW5nICptZXRhY2xhc3NlcyouXG5cbkNsYXNzZXMgY2FuIGFsc28gYmUgZGVjb3JhdGVkOiBqdXN0IGxpa2Ugd2hlbiBkZWNvcmF0aW5nIGZ1bmN0aW9ucyxcblxuICAgQGYxKGFyZylcbiAgIEBmMlxuICAgY2xhc3MgRm9vOiBwYXNzXG5cbmlzIGVxdWl2YWxlbnQgdG9cblxuICAgY2xhc3MgRm9vOiBwYXNzXG4gICBGb28gPSBmMShhcmcpKGYyKEZvbykpXG5cblRoZSBldmFsdWF0aW9uIHJ1bGVzIGZvciB0aGUgZGVjb3JhdG9yIGV4cHJlc3Npb25zIGFyZSB0aGUgc2FtZSBhcyBmb3JcbmZ1bmN0aW9uIGRlY29yYXRvcnMuICBUaGUgcmVzdWx0IG11c3QgYmUgYSBjbGFzcyBvYmplY3QsIHdoaWNoIGlzIHRoZW5cbmJvdW5kIHRvIHRoZSBjbGFzcyBuYW1lLlxuXG4qKlByb2dyYW1tZXJcJ3Mgbm90ZToqKiBWYXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbiBhcmVcbmNsYXNzIGF0dHJpYnV0ZXM7IHRoZXkgYXJlIHNoYXJlZCBieSBpbnN0YW5jZXMuICBJbnN0YW5jZSBhdHRyaWJ1dGVzXG5jYW4gYmUgc2V0IGluIGEgbWV0aG9kIHdpdGggYGBzZWxmLm5hbWUgPSB2YWx1ZWBgLiAgQm90aCBjbGFzcyBhbmRcbmluc3RhbmNlIGF0dHJpYnV0ZXMgYXJlIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgbm90YXRpb25cbiJgYHNlbGYubmFtZWBgIiwgYW5kIGFuIGluc3RhbmNlIGF0dHJpYnV0ZSBoaWRlcyBhIGNsYXNzIGF0dHJpYnV0ZVxud2l0aCB0aGUgc2FtZSBuYW1lIHdoZW4gYWNjZXNzZWQgaW4gdGhpcyB3YXkuICBDbGFzcyBhdHRyaWJ1dGVzIGNhbiBiZVxudXNlZCBhcyBkZWZhdWx0cyBmb3IgaW5zdGFuY2UgYXR0cmlidXRlcywgYnV0IHVzaW5nIG11dGFibGUgdmFsdWVzXG50aGVyZSBjYW4gbGVhZCB0byB1bmV4cGVjdGVkIHJlc3VsdHMuICAqRGVzY3JpcHRvcnMqIGNhbiBiZSB1c2VkIHRvXG5jcmVhdGUgaW5zdGFuY2UgdmFyaWFibGVzIHdpdGggZGlmZmVyZW50IGltcGxlbWVudGF0aW9uIGRldGFpbHMuXG5cblNlZSBhbHNvOlxuXG4gICAqKlBFUCAzMTE1KiogLSBNZXRhY2xhc3NlcyBpbiBQeXRob24gMyAqKlBFUCAzMTI5KiogLSBDbGFzc1xuICAgRGVjb3JhdG9yc1xuXG4tWyBGb290bm90ZXMgXS1cblxuWzFdIFRoZSBleGNlcHRpb24gaXMgcHJvcGFnYXRlZCB0byB0aGUgaW52b2NhdGlvbiBzdGFjayB1bmxlc3MgdGhlcmVcbiAgICBpcyBhIGBgZmluYWxseWBgIGNsYXVzZSB3aGljaCBoYXBwZW5zIHRvIHJhaXNlIGFub3RoZXIgZXhjZXB0aW9uLlxuICAgIFRoYXQgbmV3IGV4Y2VwdGlvbiBjYXVzZXMgdGhlIG9sZCBvbmUgdG8gYmUgbG9zdC5cblxuWzJdIEN1cnJlbnRseSwgY29udHJvbCAiZmxvd3Mgb2ZmIHRoZSBlbmQiIGV4Y2VwdCBpbiB0aGUgY2FzZSBvZiBhblxuICAgIGV4Y2VwdGlvbiBvciB0aGUgZXhlY3V0aW9uIG9mIGEgYGByZXR1cm5gYCwgYGBjb250aW51ZWBgLCBvclxuICAgIGBgYnJlYWtgYCBzdGF0ZW1lbnQuXG5cblszXSBBIHN0cmluZyBsaXRlcmFsIGFwcGVhcmluZyBhcyB0aGUgZmlyc3Qgc3RhdGVtZW50IGluIHRoZSBmdW5jdGlvblxuICAgIGJvZHkgaXMgdHJhbnNmb3JtZWQgaW50byB0aGUgZnVuY3Rpb25cJ3MgYGBfX2RvY19fYGAgYXR0cmlidXRlIGFuZFxuICAgIHRoZXJlZm9yZSB0aGUgZnVuY3Rpb25cJ3MgKmRvY3N0cmluZyouXG5cbls0XSBBIHN0cmluZyBsaXRlcmFsIGFwcGVhcmluZyBhcyB0aGUgZmlyc3Qgc3RhdGVtZW50IGluIHRoZSBjbGFzc1xuICAgIGJvZHkgaXMgdHJhbnNmb3JtZWQgaW50byB0aGUgbmFtZXNwYWNlXCdzIGBgX19kb2NfX2BgIGl0ZW0gYW5kXG4gICAgdGhlcmVmb3JlIHRoZSBjbGFzc1wncyAqZG9jc3RyaW5nKi5cbicsCiAgJ2NvbXBhcmlzb25zJzogJ1xuQ29tcGFyaXNvbnNcbioqKioqKioqKioqXG5cblVubGlrZSBDLCBhbGwgY29tcGFyaXNvbiBvcGVyYXRpb25zIGluIFB5dGhvbiBoYXZlIHRoZSBzYW1lIHByaW9yaXR5LFxud2hpY2ggaXMgbG93ZXIgdGhhbiB0aGF0IG9mIGFueSBhcml0aG1ldGljLCBzaGlmdGluZyBvciBiaXR3aXNlXG5vcGVyYXRpb24uICBBbHNvIHVubGlrZSBDLCBleHByZXNzaW9ucyBsaWtlIGBgYSA8IGIgPCBjYGAgaGF2ZSB0aGVcbmludGVycHJldGF0aW9uIHRoYXQgaXMgY29udmVudGlvbmFsIGluIG1hdGhlbWF0aWNzOlxuXG4gICBjb21wYXJpc29uICAgIDo6PSBvcl9leHByICggY29tcF9vcGVyYXRvciBvcl9leHByICkqXG4gICBjb21wX29wZXJhdG9yIDo6PSAiPCIgfCAiPiIgfCAiPT0iIHwgIj49IiB8ICI8PSIgfCAiIT0iXG4gICAgICAgICAgICAgICAgICAgICB8ICJpcyIgWyJub3QiXSB8IFsibm90Il0gImluIlxuXG5Db21wYXJpc29ucyB5aWVsZCBib29sZWFuIHZhbHVlczogYGBUcnVlYGAgb3IgYGBGYWxzZWBgLlxuXG5Db21wYXJpc29ucyBjYW4gYmUgY2hhaW5lZCBhcmJpdHJhcmlseSwgZS5nLiwgYGB4IDwgeSA8PSB6YGAgaXNcbmVxdWl2YWxlbnQgdG8gYGB4IDwgeSBhbmQgeSA8PSB6YGAsIGV4Y2VwdCB0aGF0IGBgeWBgIGlzIGV2YWx1YXRlZFxub25seSBvbmNlIChidXQgaW4gYm90aCBjYXNlcyBgYHpgYCBpcyBub3QgZXZhbHVhdGVkIGF0IGFsbCB3aGVuIGBgeCA8XG55YGAgaXMgZm91bmQgdG8gYmUgZmFsc2UpLlxuXG5Gb3JtYWxseSwgaWYgKmEqLCAqYiosICpjKiwgLi4uLCAqeSosICp6KiBhcmUgZXhwcmVzc2lvbnMgYW5kICpvcDEqLFxuKm9wMiosIC4uLiwgKm9wTiogYXJlIGNvbXBhcmlzb24gb3BlcmF0b3JzLCB0aGVuIGBgYSBvcDEgYiBvcDIgYyAuLi4geVxub3BOIHpgYCBpcyBlcXVpdmFsZW50IHRvIGBgYSBvcDEgYiBhbmQgYiBvcDIgYyBhbmQgLi4uIHkgb3BOIHpgYCxcbmV4Y2VwdCB0aGF0IGVhY2ggZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgYXQgbW9zdCBvbmNlLlxuXG5Ob3RlIHRoYXQgYGBhIG9wMSBiIG9wMiBjYGAgZG9lc25cJ3QgaW1wbHkgYW55IGtpbmQgb2YgY29tcGFyaXNvblxuYmV0d2VlbiAqYSogYW5kICpjKiwgc28gdGhhdCwgZS5nLiwgYGB4IDwgeSA+IHpgYCBpcyBwZXJmZWN0bHkgbGVnYWxcbih0aG91Z2ggcGVyaGFwcyBub3QgcHJldHR5KS5cblxuVGhlIG9wZXJhdG9ycyBgYDxgYCwgYGA+YGAsIGBgPT1gYCwgYGA+PWBgLCBgYDw9YGAsIGFuZCBgYCE9YGAgY29tcGFyZVxudGhlIHZhbHVlcyBvZiB0d28gb2JqZWN0cy4gIFRoZSBvYmplY3RzIG5lZWQgbm90IGhhdmUgdGhlIHNhbWUgdHlwZS5cbklmIGJvdGggYXJlIG51bWJlcnMsIHRoZXkgYXJlIGNvbnZlcnRlZCB0byBhIGNvbW1vbiB0eXBlLiAgT3RoZXJ3aXNlLFxudGhlIGBgPT1gYCBhbmQgYGAhPWBgIG9wZXJhdG9ycyAqYWx3YXlzKiBjb25zaWRlciBvYmplY3RzIG9mIGRpZmZlcmVudFxudHlwZXMgdG8gYmUgdW5lcXVhbCwgd2hpbGUgdGhlIGBgPGBgLCBgYD5gYCwgYGA+PWBgIGFuZCBgYDw9YGBcbm9wZXJhdG9ycyByYWlzZSBhIGBgVHlwZUVycm9yYGAgd2hlbiBjb21wYXJpbmcgb2JqZWN0cyBvZiBkaWZmZXJlbnRcbnR5cGVzIHRoYXQgZG8gbm90IGltcGxlbWVudCB0aGVzZSBvcGVyYXRvcnMgZm9yIHRoZSBnaXZlbiBwYWlyIG9mXG50eXBlcy4gIFlvdSBjYW4gY29udHJvbCBjb21wYXJpc29uIGJlaGF2aW9yIG9mIG9iamVjdHMgb2Ygbm9uLWJ1aWx0LWluXG50eXBlcyBieSBkZWZpbmluZyByaWNoIGNvbXBhcmlzb24gbWV0aG9kcyBsaWtlIGBgX19ndF9fKClgYCwgZGVzY3JpYmVkXG5pbiBzZWN0aW9uICpCYXNpYyBjdXN0b21pemF0aW9uKi5cblxuQ29tcGFyaXNvbiBvZiBvYmplY3RzIG9mIHRoZSBzYW1lIHR5cGUgZGVwZW5kcyBvbiB0aGUgdHlwZTpcblxuKiBOdW1iZXJzIGFyZSBjb21wYXJlZCBhcml0aG1ldGljYWxseS5cblxuKiBUaGUgdmFsdWVzIGBgZmxvYXQoXCdOYU5cJylgYCBhbmQgYGBEZWNpbWFsKFwnTmFOXCcpYGAgYXJlIHNwZWNpYWwuIFRoZVxuICBhcmUgaWRlbnRpY2FsIHRvIHRoZW1zZWx2ZXMsIGBgeCBpcyB4YGAgYnV0IGFyZSBub3QgZXF1YWwgdG9cbiAgdGhlbXNlbHZlcywgYGB4ICE9IHhgYC4gIEFkZGl0aW9uYWxseSwgY29tcGFyaW5nIGFueSB2YWx1ZSB0byBhXG4gIG5vdC1hLW51bWJlciB2YWx1ZSB3aWxsIHJldHVybiBgYEZhbHNlYGAuICBGb3IgZXhhbXBsZSwgYm90aCBgYDMgPFxuICBmbG9hdChcJ05hTlwnKWBgIGFuZCBgYGZsb2F0KFwnTmFOXCcpIDwgM2BgIHdpbGwgcmV0dXJuIGBgRmFsc2VgYC5cblxuKiBCeXRlcyBvYmplY3RzIGFyZSBjb21wYXJlZCBsZXhpY29ncmFwaGljYWxseSB1c2luZyB0aGUgbnVtZXJpY1xuICB2YWx1ZXMgb2YgdGhlaXIgZWxlbWVudHMuXG5cbiogU3RyaW5ncyBhcmUgY29tcGFyZWQgbGV4aWNvZ3JhcGhpY2FsbHkgdXNpbmcgdGhlIG51bWVyaWMgZXF1aXZhbGVudHNcbiAgKHRoZSByZXN1bHQgb2YgdGhlIGJ1aWx0LWluIGZ1bmN0aW9uIGBgb3JkKClgYCkgb2YgdGhlaXIgY2hhcmFjdGVycy5cbiAgWzNdIFN0cmluZyBhbmQgYnl0ZXMgb2JqZWN0IGNhblwndCBiZSBjb21wYXJlZCFcblxuKiBUdXBsZXMgYW5kIGxpc3RzIGFyZSBjb21wYXJlZCBsZXhpY29ncmFwaGljYWxseSB1c2luZyBjb21wYXJpc29uIG9mXG4gIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMuICBUaGlzIG1lYW5zIHRoYXQgdG8gY29tcGFyZSBlcXVhbCwgZWFjaFxuICBlbGVtZW50IG11c3QgY29tcGFyZSBlcXVhbCBhbmQgdGhlIHR3byBzZXF1ZW5jZXMgbXVzdCBiZSBvZiB0aGUgc2FtZVxuICB0eXBlIGFuZCBoYXZlIHRoZSBzYW1lIGxlbmd0aC5cblxuICBJZiBub3QgZXF1YWwsIHRoZSBzZXF1ZW5jZXMgYXJlIG9yZGVyZWQgdGhlIHNhbWUgYXMgdGhlaXIgZmlyc3RcbiAgZGlmZmVyaW5nIGVsZW1lbnRzLiAgRm9yIGV4YW1wbGUsIGBgWzEsMix4XSA8PSBbMSwyLHldYGAgaGFzIHRoZVxuICBzYW1lIHZhbHVlIGFzIGBgeCA8PSB5YGAuICBJZiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGRvZXMgbm90XG4gIGV4aXN0LCB0aGUgc2hvcnRlciBzZXF1ZW5jZSBpcyBvcmRlcmVkIGZpcnN0IChmb3IgZXhhbXBsZSwgYGBbMSwyXSA8XG4gIFsxLDIsM11gYCkuXG5cbiogTWFwcGluZ3MgKGRpY3Rpb25hcmllcykgY29tcGFyZSBlcXVhbCBpZiBhbmQgb25seSBpZiB0aGV5IGhhdmUgdGhlXG4gIHNhbWUgYGAoa2V5LCB2YWx1ZSlgYCBwYWlycy4gT3JkZXIgY29tcGFyaXNvbnMgYGAoXCc8XCcsIFwnPD1cJywgXCc+PVwnLFxuICBcJz5cJylgYCByYWlzZSBgYFR5cGVFcnJvcmBgLlxuXG4qIFNldHMgYW5kIGZyb3plbnNldHMgZGVmaW5lIGNvbXBhcmlzb24gb3BlcmF0b3JzIHRvIG1lYW4gc3Vic2V0IGFuZFxuICBzdXBlcnNldCB0ZXN0cy4gIFRob3NlIHJlbGF0aW9ucyBkbyBub3QgZGVmaW5lIHRvdGFsIG9yZGVyaW5ncyAodGhlXG4gIHR3byBzZXRzIGBgezEsMn1gYCBhbmQgezIsM30gYXJlIG5vdCBlcXVhbCwgbm9yIHN1YnNldHMgb2Ygb25lXG4gIGFub3RoZXIsIG5vciBzdXBlcnNldHMgb2Ygb25lIGFub3RoZXIpLiAgQWNjb3JkaW5nbHksIHNldHMgYXJlIG5vdFxuICBhcHByb3ByaWF0ZSBhcmd1bWVudHMgZm9yIGZ1bmN0aW9ucyB3aGljaCBkZXBlbmQgb24gdG90YWwgb3JkZXJpbmcuXG4gIEZvciBleGFtcGxlLCBgYG1pbigpYGAsIGBgbWF4KClgYCwgYW5kIGBgc29ydGVkKClgYCBwcm9kdWNlXG4gIHVuZGVmaW5lZCByZXN1bHRzIGdpdmVuIGEgbGlzdCBvZiBzZXRzIGFzIGlucHV0cy5cblxuKiBNb3N0IG90aGVyIG9iamVjdHMgb2YgYnVpbHQtaW4gdHlwZXMgY29tcGFyZSB1bmVxdWFsIHVubGVzcyB0aGV5IGFyZVxuICB0aGUgc2FtZSBvYmplY3Q7IHRoZSBjaG9pY2Ugd2hldGhlciBvbmUgb2JqZWN0IGlzIGNvbnNpZGVyZWQgc21hbGxlclxuICBvciBsYXJnZXIgdGhhbiBhbm90aGVyIG9uZSBpcyBtYWRlIGFyYml0cmFyaWx5IGJ1dCBjb25zaXN0ZW50bHlcbiAgd2l0aGluIG9uZSBleGVjdXRpb24gb2YgYSBwcm9ncmFtLlxuXG5Db21wYXJpc29uIG9mIG9iamVjdHMgb2YgdGhlIGRpZmZlcmluZyB0eXBlcyBkZXBlbmRzIG9uIHdoZXRoZXIgZWl0aGVyXG5vZiB0aGUgdHlwZXMgcHJvdmlkZSBleHBsaWNpdCBzdXBwb3J0IGZvciB0aGUgY29tcGFyaXNvbi4gIE1vc3Rcbm51bWVyaWMgdHlwZXMgY2FuIGJlIGNvbXBhcmVkIHdpdGggb25lIGFub3RoZXIsIGJ1dCBjb21wYXJpc29ucyBvZlxuYGBmbG9hdGBgIGFuZCBgYERlY2ltYWxgYCBhcmUgbm90IHN1cHBvcnRlZCB0byBhdm9pZCB0aGUgaW5ldml0YWJsZVxuY29uZnVzaW9uIGFyaXNpbmcgZnJvbSByZXByZXNlbnRhdGlvbiBpc3N1ZXMgc3VjaCBhcyBgYGZsb2F0KFwnMS4xXCcpYGBcbmJlaW5nIGluZXhhY3RseSByZXByZXNlbnRlZCBhbmQgdGhlcmVmb3JlIG5vdCBleGFjdGx5IGVxdWFsIHRvXG5gYERlY2ltYWwoXCcxLjFcJylgYCB3aGljaCBpcy4gIFdoZW4gY3Jvc3MtdHlwZSBjb21wYXJpc29uIGlzIG5vdFxuc3VwcG9ydGVkLCB0aGUgY29tcGFyaXNvbiBtZXRob2QgcmV0dXJucyBgYE5vdEltcGxlbWVudGVkYGAuICBUaGlzIGNhblxuY3JlYXRlIHRoZSBpbGx1c2lvbiBvZiBub24tdHJhbnNpdGl2aXR5IGJldHdlZW4gc3VwcG9ydGVkIGNyb3NzLXR5cGVcbmNvbXBhcmlzb25zIGFuZCB1bnN1cHBvcnRlZCBjb21wYXJpc29ucy4gIEZvciBleGFtcGxlLCBgYERlY2ltYWwoMikgPT1cbjJgYCBhbmQgYGAyID09IGZsb2F0KDIpYGAgYnV0IGBgRGVjaW1hbCgyKSAhPSBmbG9hdCgyKWBgLlxuXG5UaGUgb3BlcmF0b3JzIGBgaW5gYCBhbmQgYGBub3QgaW5gYCB0ZXN0IGZvciBtZW1iZXJzaGlwLiAgYGB4IGluIHNgYFxuZXZhbHVhdGVzIHRvIHRydWUgaWYgKngqIGlzIGEgbWVtYmVyIG9mICpzKiwgYW5kIGZhbHNlIG90aGVyd2lzZS4gIGBgeFxubm90IGluIHNgYCByZXR1cm5zIHRoZSBuZWdhdGlvbiBvZiBgYHggaW4gc2BgLiAgQWxsIGJ1aWx0LWluIHNlcXVlbmNlc1xuYW5kIHNldCB0eXBlcyBzdXBwb3J0IHRoaXMgYXMgd2VsbCBhcyBkaWN0aW9uYXJ5LCBmb3Igd2hpY2ggYGBpbmBgXG50ZXN0cyB3aGV0aGVyIGEgdGhlIGRpY3Rpb25hcnkgaGFzIGEgZ2l2ZW4ga2V5LiBGb3IgY29udGFpbmVyIHR5cGVzXG5zdWNoIGFzIGxpc3QsIHR1cGxlLCBzZXQsIGZyb3plbnNldCwgZGljdCwgb3IgY29sbGVjdGlvbnMuZGVxdWUsIHRoZVxuZXhwcmVzc2lvbiBgYHggaW4geWBgIGlzIGVxdWl2YWxlbnQgdG8gYGBhbnkoeCBpcyBlIG9yIHggPT0gZSBmb3IgZSBpblxueSlgYC5cblxuRm9yIHRoZSBzdHJpbmcgYW5kIGJ5dGVzIHR5cGVzLCBgYHggaW4geWBgIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgKngqXG5pcyBhIHN1YnN0cmluZyBvZiAqeSouICBBbiBlcXVpdmFsZW50IHRlc3QgaXMgYGB5LmZpbmQoeCkgIT0gLTFgYC5cbkVtcHR5IHN0cmluZ3MgYXJlIGFsd2F5cyBjb25zaWRlcmVkIHRvIGJlIGEgc3Vic3RyaW5nIG9mIGFueSBvdGhlclxuc3RyaW5nLCBzbyBgYCIiIGluICJhYmMiYGAgd2lsbCByZXR1cm4gYGBUcnVlYGAuXG5cbkZvciB1c2VyLWRlZmluZWQgY2xhc3NlcyB3aGljaCBkZWZpbmUgdGhlIGBgX19jb250YWluc19fKClgYCBtZXRob2QsXG5gYHggaW4geWBgIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgYGB5Ll9fY29udGFpbnNfXyh4KWBgIGlzIHRydWUuXG5cbkZvciB1c2VyLWRlZmluZWQgY2xhc3NlcyB3aGljaCBkbyBub3QgZGVmaW5lIGBgX19jb250YWluc19fKClgYCBidXQgZG9cbmRlZmluZSBgYF9faXRlcl9fKClgYCwgYGB4IGluIHlgYCBpcyB0cnVlIGlmIHNvbWUgdmFsdWUgYGB6YGAgd2l0aCBgYHhcbj09IHpgYCBpcyBwcm9kdWNlZCB3aGlsZSBpdGVyYXRpbmcgb3ZlciBgYHlgYC4gIElmIGFuIGV4Y2VwdGlvbiBpc1xucmFpc2VkIGR1cmluZyB0aGUgaXRlcmF0aW9uLCBpdCBpcyBhcyBpZiBgYGluYGAgcmFpc2VkIHRoYXQgZXhjZXB0aW9uLlxuXG5MYXN0bHksIHRoZSBvbGQtc3R5bGUgaXRlcmF0aW9uIHByb3RvY29sIGlzIHRyaWVkOiBpZiBhIGNsYXNzIGRlZmluZXNcbmBgX19nZXRpdGVtX18oKWBgLCBgYHggaW4geWBgIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgYSBub24tXG5uZWdhdGl2ZSBpbnRlZ2VyIGluZGV4ICppKiBzdWNoIHRoYXQgYGB4ID09IHlbaV1gYCwgYW5kIGFsbCBsb3dlclxuaW50ZWdlciBpbmRpY2VzIGRvIG5vdCByYWlzZSBgYEluZGV4RXJyb3JgYCBleGNlcHRpb24uICAoSWYgYW55IG90aGVyXG5leGNlcHRpb24gaXMgcmFpc2VkLCBpdCBpcyBhcyBpZiBgYGluYGAgcmFpc2VkIHRoYXQgZXhjZXB0aW9uKS5cblxuVGhlIG9wZXJhdG9yIGBgbm90IGluYGAgaXMgZGVmaW5lZCB0byBoYXZlIHRoZSBpbnZlcnNlIHRydWUgdmFsdWUgb2ZcbmBgaW5gYC5cblxuVGhlIG9wZXJhdG9ycyBgYGlzYGAgYW5kIGBgaXMgbm90YGAgdGVzdCBmb3Igb2JqZWN0IGlkZW50aXR5OiBgYHggaXNcbnlgYCBpcyB0cnVlIGlmIGFuZCBvbmx5IGlmICp4KiBhbmQgKnkqIGFyZSB0aGUgc2FtZSBvYmplY3QuICBgYHggaXNcbm5vdCB5YGAgeWllbGRzIHRoZSBpbnZlcnNlIHRydXRoIHZhbHVlLiBbNF1cbicsCi0gJ2NvbXBvdW5kJzogJ1xuQ29tcG91bmQgc3RhdGVtZW50c1xuKioqKioqKioqKioqKioqKioqKlxuXG5Db21wb3VuZCBzdGF0ZW1lbnRzIGNvbnRhaW4gKGdyb3VwcyBvZikgb3RoZXIgc3RhdGVtZW50czsgdGhleSBhZmZlY3Rcbm9yIGNvbnRyb2wgdGhlIGV4ZWN1dGlvbiBvZiB0aG9zZSBvdGhlciBzdGF0ZW1lbnRzIGluIHNvbWUgd2F5LiAgSW5cbmdlbmVyYWwsIGNvbXBvdW5kIHN0YXRlbWVudHMgc3BhbiBtdWx0aXBsZSBsaW5lcywgYWx0aG91Z2ggaW4gc2ltcGxlXG5pbmNhcm5hdGlvbnMgYSB3aG9sZSBjb21wb3VuZCBzdGF0ZW1lbnQgbWF5IGJlIGNvbnRhaW5lZCBpbiBvbmUgbGluZS5cblxuVGhlIGBgaWZgYCwgYGB3aGlsZWBgIGFuZCBgYGZvcmBgIHN0YXRlbWVudHMgaW1wbGVtZW50IHRyYWRpdGlvbmFsXG5jb250cm9sIGZsb3cgY29uc3RydWN0cy4gIGBgdHJ5YGAgc3BlY2lmaWVzIGV4Y2VwdGlvbiBoYW5kbGVycyBhbmQvb3JcbmNsZWFudXAgY29kZSBmb3IgYSBncm91cCBvZiBzdGF0ZW1lbnRzLCB3aGlsZSB0aGUgYGB3aXRoYGAgc3RhdGVtZW50XG5hbGxvd3MgdGhlIGV4ZWN1dGlvbiBvZiBpbml0aWFsaXphdGlvbiBhbmQgZmluYWxpemF0aW9uIGNvZGUgYXJvdW5kIGFcbmJsb2NrIG9mIGNvZGUuICBGdW5jdGlvbiBhbmQgY2xhc3MgZGVmaW5pdGlvbnMgYXJlIGFsc28gc3ludGFjdGljYWxseVxuY29tcG91bmQgc3RhdGVtZW50cy5cblxuQ29tcG91bmQgc3RhdGVtZW50cyBjb25zaXN0IG9mIG9uZSBvciBtb3JlIFwnY2xhdXNlcy5cJyAgQSBjbGF1c2VcbmNvbnNpc3RzIG9mIGEgaGVhZGVyIGFuZCBhIFwnc3VpdGUuXCcgIFRoZSBjbGF1c2UgaGVhZGVycyBvZiBhXG5wYXJ0aWN1bGFyIGNvbXBvdW5kIHN0YXRlbWVudCBhcmUgYWxsIGF0IHRoZSBzYW1lIGluZGVudGF0aW9uIGxldmVsLlxuRWFjaCBjbGF1c2UgaGVhZGVyIGJlZ2lucyB3aXRoIGEgdW5pcXVlbHkgaWRlbnRpZnlpbmcga2V5d29yZCBhbmQgZW5kc1xud2l0aCBhIGNvbG9uLiAgQSBzdWl0ZSBpcyBhIGdyb3VwIG9mIHN0YXRlbWVudHMgY29udHJvbGxlZCBieSBhXG5jbGF1c2UuICBBIHN1aXRlIGNhbiBiZSBvbmUgb3IgbW9yZSBzZW1pY29sb24tc2VwYXJhdGVkIHNpbXBsZVxuc3RhdGVtZW50cyBvbiB0aGUgc2FtZSBsaW5lIGFzIHRoZSBoZWFkZXIsIGZvbGxvd2luZyB0aGUgaGVhZGVyXCdzXG5jb2xvbiwgb3IgaXQgY2FuIGJlIG9uZSBvciBtb3JlIGluZGVudGVkIHN0YXRlbWVudHMgb24gc3Vic2VxdWVudFxubGluZXMuICBPbmx5IHRoZSBsYXR0ZXIgZm9ybSBvZiBzdWl0ZSBjYW4gY29udGFpbiBuZXN0ZWQgY29tcG91bmRcbnN0YXRlbWVudHM7IHRoZSBmb2xsb3dpbmcgaXMgaWxsZWdhbCwgbW9zdGx5IGJlY2F1c2UgaXQgd291bGRuXCd0IGJlXG5jbGVhciB0byB3aGljaCBgYGlmYGAgY2xhdXNlIGEgZm9sbG93aW5nIGBgZWxzZWBgIGNsYXVzZSB3b3VsZCBiZWxvbmc6XG5cbiAgIGlmIHRlc3QxOiBpZiB0ZXN0MjogcHJpbnQoeClcblxuQWxzbyBub3RlIHRoYXQgdGhlIHNlbWljb2xvbiBiaW5kcyB0aWdodGVyIHRoYW4gdGhlIGNvbG9uIGluIHRoaXNcbmNvbnRleHQsIHNvIHRoYXQgaW4gdGhlIGZvbGxvd2luZyBleGFtcGxlLCBlaXRoZXIgYWxsIG9yIG5vbmUgb2YgdGhlXG5gYHByaW50KClgYCBjYWxscyBhcmUgZXhlY3V0ZWQ6XG5cbiAgIGlmIHggPCB5IDwgejogcHJpbnQoeCk7IHByaW50KHkpOyBwcmludCh6KVxuXG5TdW1tYXJpemluZzpcblxuICAgY29tcG91bmRfc3RtdCA6Oj0gaWZfc3RtdFxuICAgICAgICAgICAgICAgICAgICAgfCB3aGlsZV9zdG10XG4gICAgICAgICAgICAgICAgICAgICB8IGZvcl9zdG10XG4gICAgICAgICAgICAgICAgICAgICB8IHRyeV9zdG10XG4gICAgICAgICAgICAgICAgICAgICB8IHdpdGhfc3RtdFxuICAgICAgICAgICAgICAgICAgICAgfCBmdW5jZGVmXG4gICAgICAgICAgICAgICAgICAgICB8IGNsYXNzZGVmXG4gICBzdWl0ZSAgICAgICAgIDo6PSBzdG10X2xpc3QgTkVXTElORSB8IE5FV0xJTkUgSU5ERU5UIHN0YXRlbWVudCsgREVERU5UXG4gICBzdGF0ZW1lbnQgICAgIDo6PSBzdG10X2xpc3QgTkVXTElORSB8IGNvbXBvdW5kX3N0bXRcbiAgIHN0bXRfbGlzdCAgICAgOjo9IHNpbXBsZV9zdG10ICgiOyIgc2ltcGxlX3N0bXQpKiBbIjsiXVxuXG5Ob3RlIHRoYXQgc3RhdGVtZW50cyBhbHdheXMgZW5kIGluIGEgYGBORVdMSU5FYGAgcG9zc2libHkgZm9sbG93ZWQgYnlcbmEgYGBERURFTlRgYC4gIEFsc28gbm90ZSB0aGF0IG9wdGlvbmFsIGNvbnRpbnVhdGlvbiBjbGF1c2VzIGFsd2F5c1xuYmVnaW4gd2l0aCBhIGtleXdvcmQgdGhhdCBjYW5ub3Qgc3RhcnQgYSBzdGF0ZW1lbnQsIHRodXMgdGhlcmUgYXJlIG5vXG5hbWJpZ3VpdGllcyAodGhlIFwnZGFuZ2xpbmcgYGBlbHNlYGBcJyBwcm9ibGVtIGlzIHNvbHZlZCBpbiBQeXRob24gYnlcbnJlcXVpcmluZyBuZXN0ZWQgYGBpZmBgIHN0YXRlbWVudHMgdG8gYmUgaW5kZW50ZWQpLlxuXG5UaGUgZm9ybWF0dGluZyBvZiB0aGUgZ3JhbW1hciBydWxlcyBpbiB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIHBsYWNlc1xuZWFjaCBjbGF1c2Ugb24gYSBzZXBhcmF0ZSBsaW5lIGZvciBjbGFyaXR5LlxuXG5cblRoZSBgYGlmYGAgc3RhdGVtZW50XG49PT09PT09PT09PT09PT09PT09PVxuXG5UaGUgYGBpZmBgIHN0YXRlbWVudCBpcyB1c2VkIGZvciBjb25kaXRpb25hbCBleGVjdXRpb246XG5cbiAgIGlmX3N0bXQgOjo9ICJpZiIgZXhwcmVzc2lvbiAiOiIgc3VpdGVcbiAgICAgICAgICAgICAgICggImVsaWYiIGV4cHJlc3Npb24gIjoiIHN1aXRlICkqXG4gICAgICAgICAgICAgICBbImVsc2UiICI6IiBzdWl0ZV1cblxuSXQgc2VsZWN0cyBleGFjdGx5IG9uZSBvZiB0aGUgc3VpdGVzIGJ5IGV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb25zIG9uZVxuYnkgb25lIHVudGlsIG9uZSBpcyBmb3VuZCB0byBiZSB0cnVlIChzZWUgc2VjdGlvbiAqQm9vbGVhbiBvcGVyYXRpb25zKlxuZm9yIHRoZSBkZWZpbml0aW9uIG9mIHRydWUgYW5kIGZhbHNlKTsgdGhlbiB0aGF0IHN1aXRlIGlzIGV4ZWN1dGVkXG4oYW5kIG5vIG90aGVyIHBhcnQgb2YgdGhlIGBgaWZgYCBzdGF0ZW1lbnQgaXMgZXhlY3V0ZWQgb3IgZXZhbHVhdGVkKS5cbklmIGFsbCBleHByZXNzaW9ucyBhcmUgZmFsc2UsIHRoZSBzdWl0ZSBvZiB0aGUgYGBlbHNlYGAgY2xhdXNlLCBpZlxucHJlc2VudCwgaXMgZXhlY3V0ZWQuXG5cblxuVGhlIGBgd2hpbGVgYCBzdGF0ZW1lbnRcbj09PT09PT09PT09PT09PT09PT09PT09XG5cblRoZSBgYHdoaWxlYGAgc3RhdGVtZW50IGlzIHVzZWQgZm9yIHJlcGVhdGVkIGV4ZWN1dGlvbiBhcyBsb25nIGFzIGFuXG5leHByZXNzaW9uIGlzIHRydWU6XG5cbiAgIHdoaWxlX3N0bXQgOjo9ICJ3aGlsZSIgZXhwcmVzc2lvbiAiOiIgc3VpdGVcbiAgICAgICAgICAgICAgICAgIFsiZWxzZSIgIjoiIHN1aXRlXVxuXG5UaGlzIHJlcGVhdGVkbHkgdGVzdHMgdGhlIGV4cHJlc3Npb24gYW5kLCBpZiBpdCBpcyB0cnVlLCBleGVjdXRlcyB0aGVcbmZpcnN0IHN1aXRlOyBpZiB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZSAod2hpY2ggbWF5IGJlIHRoZSBmaXJzdCB0aW1lXG5pdCBpcyB0ZXN0ZWQpIHRoZSBzdWl0ZSBvZiB0aGUgYGBlbHNlYGAgY2xhdXNlLCBpZiBwcmVzZW50LCBpc1xuZXhlY3V0ZWQgYW5kIHRoZSBsb29wIHRlcm1pbmF0ZXMuXG5cbkEgYGBicmVha2BgIHN0YXRlbWVudCBleGVjdXRlZCBpbiB0aGUgZmlyc3Qgc3VpdGUgdGVybWluYXRlcyB0aGUgbG9vcFxud2l0aG91dCBleGVjdXRpbmcgdGhlIGBgZWxzZWBgIGNsYXVzZVwncyBzdWl0ZS4gIEEgYGBjb250aW51ZWBgXG5zdGF0ZW1lbnQgZXhlY3V0ZWQgaW4gdGhlIGZpcnN0IHN1aXRlIHNraXBzIHRoZSByZXN0IG9mIHRoZSBzdWl0ZSBhbmRcbmdvZXMgYmFjayB0byB0ZXN0aW5nIHRoZSBleHByZXNzaW9uLlxuXG5cblRoZSBgYGZvcmBgIHN0YXRlbWVudFxuPT09PT09PT09PT09PT09PT09PT09XG5cblRoZSBgYGZvcmBgIHN0YXRlbWVudCBpcyB1c2VkIHRvIGl0ZXJhdGUgb3ZlciB0aGUgZWxlbWVudHMgb2YgYVxuc2VxdWVuY2UgKHN1Y2ggYXMgYSBzdHJpbmcsIHR1cGxlIG9yIGxpc3QpIG9yIG90aGVyIGl0ZXJhYmxlIG9iamVjdDpcblxuICAgZm9yX3N0bXQgOjo9ICJmb3IiIHRhcmdldF9saXN0ICJpbiIgZXhwcmVzc2lvbl9saXN0ICI6IiBzdWl0ZVxuICAgICAgICAgICAgICAgIFsiZWxzZSIgIjoiIHN1aXRlXVxuXG5UaGUgZXhwcmVzc2lvbiBsaXN0IGlzIGV2YWx1YXRlZCBvbmNlOyBpdCBzaG91bGQgeWllbGQgYW4gaXRlcmFibGVcbm9iamVjdC4gIEFuIGl0ZXJhdG9yIGlzIGNyZWF0ZWQgZm9yIHRoZSByZXN1bHQgb2YgdGhlXG5gYGV4cHJlc3Npb25fbGlzdGBgLiAgVGhlIHN1aXRlIGlzIHRoZW4gZXhlY3V0ZWQgb25jZSBmb3IgZWFjaCBpdGVtXG5wcm92aWRlZCBieSB0aGUgaXRlcmF0b3IsIGluIHRoZSBvcmRlciBvZiBhc2NlbmRpbmcgaW5kaWNlcy4gIEVhY2hcbml0ZW0gaW4gdHVybiBpcyBhc3NpZ25lZCB0byB0aGUgdGFyZ2V0IGxpc3QgdXNpbmcgdGhlIHN0YW5kYXJkIHJ1bGVzXG5mb3IgYXNzaWdubWVudHMgKHNlZSAqQXNzaWdubWVudCBzdGF0ZW1lbnRzKiksIGFuZCB0aGVuIHRoZSBzdWl0ZSBpc1xuZXhlY3V0ZWQuICBXaGVuIHRoZSBpdGVtcyBhcmUgZXhoYXVzdGVkICh3aGljaCBpcyBpbW1lZGlhdGVseSB3aGVuIHRoZVxuc2VxdWVuY2UgaXMgZW1wdHkgb3IgYW4gaXRlcmF0b3IgcmFpc2VzIGEgYGBTdG9wSXRlcmF0aW9uYGBcbmV4Y2VwdGlvbiksIHRoZSBzdWl0ZSBpbiB0aGUgYGBlbHNlYGAgY2xhdXNlLCBpZiBwcmVzZW50LCBpcyBleGVjdXRlZCxcbmFuZCB0aGUgbG9vcCB0ZXJtaW5hdGVzLlxuXG5BIGBgYnJlYWtgYCBzdGF0ZW1lbnQgZXhlY3V0ZWQgaW4gdGhlIGZpcnN0IHN1aXRlIHRlcm1pbmF0ZXMgdGhlIGxvb3BcbndpdGhvdXQgZXhlY3V0aW5nIHRoZSBgYGVsc2VgYCBjbGF1c2VcJ3Mgc3VpdGUuICBBIGBgY29udGludWVgYFxuc3RhdGVtZW50IGV4ZWN1dGVkIGluIHRoZSBmaXJzdCBzdWl0ZSBza2lwcyB0aGUgcmVzdCBvZiB0aGUgc3VpdGUgYW5kXG5jb250aW51ZXMgd2l0aCB0aGUgbmV4dCBpdGVtLCBvciB3aXRoIHRoZSBgYGVsc2VgYCBjbGF1c2UgaWYgdGhlcmUgd2FzXG5ubyBuZXh0IGl0ZW0uXG5cblRoZSBzdWl0ZSBtYXkgYXNzaWduIHRvIHRoZSB2YXJpYWJsZShzKSBpbiB0aGUgdGFyZ2V0IGxpc3Q7IHRoaXMgZG9lc1xubm90IGFmZmVjdCB0aGUgbmV4dCBpdGVtIGFzc2lnbmVkIHRvIGl0LlxuXG5OYW1lcyBpbiB0aGUgdGFyZ2V0IGxpc3QgYXJlIG5vdCBkZWxldGVkIHdoZW4gdGhlIGxvb3AgaXMgZmluaXNoZWQsXG5idXQgaWYgdGhlIHNlcXVlbmNlIGlzIGVtcHR5LCBpdCB3aWxsIG5vdCBoYXZlIGJlZW4gYXNzaWduZWQgdG8gYXQgYWxsXG5ieSB0aGUgbG9vcC4gIEhpbnQ6IHRoZSBidWlsdC1pbiBmdW5jdGlvbiBgYHJhbmdlKClgYCByZXR1cm5zIGFuXG5pdGVyYXRvciBvZiBpbnRlZ2VycyBzdWl0YWJsZSB0byBlbXVsYXRlIHRoZSBlZmZlY3Qgb2YgUGFzY2FsXCdzIGBgZm9yXG5pIDo9IGEgdG8gYiBkb2BgOyBlLmcuLCBgYGxpc3QocmFuZ2UoMykpYGAgcmV0dXJucyB0aGUgbGlzdCBgYFswLCAxLFxuMl1gYC5cblxuTm90ZTogVGhlcmUgaXMgYSBzdWJ0bGV0eSB3aGVuIHRoZSBzZXF1ZW5jZSBpcyBiZWluZyBtb2RpZmllZCBieSB0aGUgbG9vcFxuICAodGhpcyBjYW4gb25seSBvY2N1ciBmb3IgbXV0YWJsZSBzZXF1ZW5jZXMsIGkuZS4gbGlzdHMpLiAgQW5cbiAgaW50ZXJuYWwgY291bnRlciBpcyB1c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hpY2ggaXRlbSBpcyB1c2VkIG5leHQsXG4gIGFuZCB0aGlzIGlzIGluY3JlbWVudGVkIG9uIGVhY2ggaXRlcmF0aW9uLiAgV2hlbiB0aGlzIGNvdW50ZXIgaGFzXG4gIHJlYWNoZWQgdGhlIGxlbmd0aCBvZiB0aGUgc2VxdWVuY2UgdGhlIGxvb3AgdGVybWluYXRlcy4gIFRoaXMgbWVhbnNcbiAgdGhhdCBpZiB0aGUgc3VpdGUgZGVsZXRlcyB0aGUgY3VycmVudCAob3IgYSBwcmV2aW91cykgaXRlbSBmcm9tIHRoZVxuICBzZXF1ZW5jZSwgdGhlIG5leHQgaXRlbSB3aWxsIGJlIHNraXBwZWQgKHNpbmNlIGl0IGdldHMgdGhlIGluZGV4IG9mXG4gIHRoZSBjdXJyZW50IGl0ZW0gd2hpY2ggaGFzIGFscmVhZHkgYmVlbiB0cmVhdGVkKS4gIExpa2V3aXNlLCBpZiB0aGVcbiAgc3VpdGUgaW5zZXJ0cyBhbiBpdGVtIGluIHRoZSBzZXF1ZW5jZSBiZWZvcmUgdGhlIGN1cnJlbnQgaXRlbSwgdGhlXG4gIGN1cnJlbnQgaXRlbSB3aWxsIGJlIHRyZWF0ZWQgYWdhaW4gdGhlIG5leHQgdGltZSB0aHJvdWdoIHRoZSBsb29wLlxuICBUaGlzIGNhbiBsZWFkIHRvIG5hc3R5IGJ1Z3MgdGhhdCBjYW4gYmUgYXZvaWRlZCBieSBtYWtpbmcgYVxuICB0ZW1wb3JhcnkgY29weSB1c2luZyBhIHNsaWNlIG9mIHRoZSB3aG9sZSBzZXF1ZW5jZSwgZS5nLixcblxuICAgICBmb3IgeCBpbiBhWzpdOlxuICAgICAgICAgaWYgeCA8IDA6IGEucmVtb3ZlKHgpXG5cblxuVGhlIGBgdHJ5YGAgc3RhdGVtZW50XG49PT09PT09PT09PT09PT09PT09PT1cblxuVGhlIGBgdHJ5YGAgc3RhdGVtZW50IHNwZWNpZmllcyBleGNlcHRpb24gaGFuZGxlcnMgYW5kL29yIGNsZWFudXAgY29kZVxuZm9yIGEgZ3JvdXAgb2Ygc3RhdGVtZW50czpcblxuICAgdHJ5X3N0bXQgIDo6PSB0cnkxX3N0bXQgfCB0cnkyX3N0bXRcbiAgIHRyeTFfc3RtdCA6Oj0gInRyeSIgIjoiIHN1aXRlXG4gICAgICAgICAgICAgICAgICgiZXhjZXB0IiBbZXhwcmVzc2lvbiBbImFzIiB0YXJnZXRdXSAiOiIgc3VpdGUpK1xuICAgICAgICAgICAgICAgICBbImVsc2UiICI6IiBzdWl0ZV1cbiAgICAgICAgICAgICAgICAgWyJmaW5hbGx5IiAiOiIgc3VpdGVdXG4gICB0cnkyX3N0bXQgOjo9ICJ0cnkiICI6IiBzdWl0ZVxuICAgICAgICAgICAgICAgICAiZmluYWxseSIgIjoiIHN1aXRlXG5cblRoZSBgYGV4Y2VwdGBgIGNsYXVzZShzKSBzcGVjaWZ5IG9uZSBvciBtb3JlIGV4Y2VwdGlvbiBoYW5kbGVycy4gV2hlblxubm8gZXhjZXB0aW9uIG9jY3VycyBpbiB0aGUgYGB0cnlgYCBjbGF1c2UsIG5vIGV4Y2VwdGlvbiBoYW5kbGVyIGlzXG5leGVjdXRlZC4gV2hlbiBhbiBleGNlcHRpb24gb2NjdXJzIGluIHRoZSBgYHRyeWBgIHN1aXRlLCBhIHNlYXJjaCBmb3JcbmFuIGV4Y2VwdGlvbiBoYW5kbGVyIGlzIHN0YXJ0ZWQuICBUaGlzIHNlYXJjaCBpbnNwZWN0cyB0aGUgZXhjZXB0XG5jbGF1c2VzIGluIHR1cm4gdW50aWwgb25lIGlzIGZvdW5kIHRoYXQgbWF0Y2hlcyB0aGUgZXhjZXB0aW9uLiAgQW5cbmV4cHJlc3Npb24tbGVzcyBleGNlcHQgY2xhdXNlLCBpZiBwcmVzZW50LCBtdXN0IGJlIGxhc3Q7IGl0IG1hdGNoZXNcbmFueSBleGNlcHRpb24uICBGb3IgYW4gZXhjZXB0IGNsYXVzZSB3aXRoIGFuIGV4cHJlc3Npb24sIHRoYXRcbmV4cHJlc3Npb24gaXMgZXZhbHVhdGVkLCBhbmQgdGhlIGNsYXVzZSBtYXRjaGVzIHRoZSBleGNlcHRpb24gaWYgdGhlXG5yZXN1bHRpbmcgb2JqZWN0IGlzICJjb21wYXRpYmxlIiB3aXRoIHRoZSBleGNlcHRpb24uICBBbiBvYmplY3QgaXNcbmNvbXBhdGlibGUgd2l0aCBhbiBleGNlcHRpb24gaWYgaXQgaXMgdGhlIGNsYXNzIG9yIGEgYmFzZSBjbGFzcyBvZiB0aGVcbmV4Y2VwdGlvbiBvYmplY3Qgb3IgYSB0dXBsZSBjb250YWluaW5nIGFuIGl0ZW0gY29tcGF0aWJsZSB3aXRoIHRoZVxuZXhjZXB0aW9uLlxuXG5JZiBubyBleGNlcHQgY2xhdXNlIG1hdGNoZXMgdGhlIGV4Y2VwdGlvbiwgdGhlIHNlYXJjaCBmb3IgYW4gZXhjZXB0aW9uXG5oYW5kbGVyIGNvbnRpbnVlcyBpbiB0aGUgc3Vycm91bmRpbmcgY29kZSBhbmQgb24gdGhlIGludm9jYXRpb24gc3RhY2suXG5bMV1cblxuSWYgdGhlIGV2YWx1YXRpb24gb2YgYW4gZXhwcmVzc2lvbiBpbiB0aGUgaGVhZGVyIG9mIGFuIGV4Y2VwdCBjbGF1c2VcbnJhaXNlcyBhbiBleGNlcHRpb24sIHRoZSBvcmlnaW5hbCBzZWFyY2ggZm9yIGEgaGFuZGxlciBpcyBjYW5jZWxlZCBhbmRcbmEgc2VhcmNoIHN0YXJ0cyBmb3IgdGhlIG5ldyBleGNlcHRpb24gaW4gdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIG9uXG50aGUgY2FsbCBzdGFjayAoaXQgaXMgdHJlYXRlZCBhcyBpZiB0aGUgZW50aXJlIGBgdHJ5YGAgc3RhdGVtZW50XG5yYWlzZWQgdGhlIGV4Y2VwdGlvbikuXG5cbldoZW4gYSBtYXRjaGluZyBleGNlcHQgY2xhdXNlIGlzIGZvdW5kLCB0aGUgZXhjZXB0aW9uIGlzIGFzc2lnbmVkIHRvXG50aGUgdGFyZ2V0IHNwZWNpZmllZCBhZnRlciB0aGUgYGBhc2BgIGtleXdvcmQgaW4gdGhhdCBleGNlcHQgY2xhdXNlLFxuaWYgcHJlc2VudCwgYW5kIHRoZSBleGNlcHQgY2xhdXNlXCdzIHN1aXRlIGlzIGV4ZWN1dGVkLiAgQWxsIGV4Y2VwdFxuY2xhdXNlcyBtdXN0IGhhdmUgYW4gZXhlY3V0YWJsZSBibG9jay4gIFdoZW4gdGhlIGVuZCBvZiB0aGlzIGJsb2NrIGlzXG5yZWFjaGVkLCBleGVjdXRpb24gY29udGludWVzIG5vcm1hbGx5IGFmdGVyIHRoZSBlbnRpcmUgdHJ5IHN0YXRlbWVudC5cbihUaGlzIG1lYW5zIHRoYXQgaWYgdHdvIG5lc3RlZCBoYW5kbGVycyBleGlzdCBmb3IgdGhlIHNhbWUgZXhjZXB0aW9uLFxuYW5kIHRoZSBleGNlcHRpb24gb2NjdXJzIGluIHRoZSB0cnkgY2xhdXNlIG9mIHRoZSBpbm5lciBoYW5kbGVyLCB0aGVcbm91dGVyIGhhbmRsZXIgd2lsbCBub3QgaGFuZGxlIHRoZSBleGNlcHRpb24uKVxuXG5XaGVuIGFuIGV4Y2VwdGlvbiBoYXMgYmVlbiBhc3NpZ25lZCB1c2luZyBgYGFzIHRhcmdldGBgLCBpdCBpcyBjbGVhcmVkXG5hdCB0aGUgZW5kIG9mIHRoZSBleGNlcHQgY2xhdXNlLiAgVGhpcyBpcyBhcyBpZlxuXG4gICBleGNlcHQgRSBhcyBOOlxuICAgICAgIGZvb1xuXG53YXMgdHJhbnNsYXRlZCB0b1xuXG4gICBleGNlcHQgRSBhcyBOOlxuICAgICAgIHRyeTpcbiAgICAgICAgICAgZm9vXG4gICAgICAgZmluYWxseTpcbiAgICAgICAgICAgZGVsIE5cblxuVGhpcyBtZWFucyB0aGUgZXhjZXB0aW9uIG11c3QgYmUgYXNzaWduZWQgdG8gYSBkaWZmZXJlbnQgbmFtZSB0byBiZVxuYWJsZSB0byByZWZlciB0byBpdCBhZnRlciB0aGUgZXhjZXB0IGNsYXVzZS4gIEV4Y2VwdGlvbnMgYXJlIGNsZWFyZWRcbmJlY2F1c2Ugd2l0aCB0aGUgdHJhY2ViYWNrIGF0dGFjaGVkIHRvIHRoZW0sIHRoZXkgZm9ybSBhIHJlZmVyZW5jZVxuY3ljbGUgd2l0aCB0aGUgc3RhY2sgZnJhbWUsIGtlZXBpbmcgYWxsIGxvY2FscyBpbiB0aGF0IGZyYW1lIGFsaXZlXG51bnRpbCB0aGUgbmV4dCBnYXJiYWdlIGNvbGxlY3Rpb24gb2NjdXJzLlxuXG5CZWZvcmUgYW4gZXhjZXB0IGNsYXVzZVwncyBzdWl0ZSBpcyBleGVjdXRlZCwgZGV0YWlscyBhYm91dCB0aGVcbmV4Y2VwdGlvbiBhcmUgc3RvcmVkIGluIHRoZSBgYHN5c2BgIG1vZHVsZSBhbmQgY2FuIGJlIGFjY2VzcyB2aWFcbmBgc3lzLmV4Y19pbmZvKClgYC4gYGBzeXMuZXhjX2luZm8oKWBgIHJldHVybnMgYSAzLXR1cGxlIGNvbnNpc3Rpbmcgb2ZcbnRoZSBleGNlcHRpb24gY2xhc3MsIHRoZSBleGNlcHRpb24gaW5zdGFuY2UgYW5kIGEgdHJhY2ViYWNrIG9iamVjdFxuKHNlZSBzZWN0aW9uICpUaGUgc3RhbmRhcmQgdHlwZSBoaWVyYXJjaHkqKSBpZGVudGlmeWluZyB0aGUgcG9pbnQgaW5cbnRoZSBwcm9ncmFtIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJyZWQuICBgYHN5cy5leGNfaW5mbygpYGAgdmFsdWVzXG5hcmUgcmVzdG9yZWQgdG8gdGhlaXIgcHJldmlvdXMgdmFsdWVzIChiZWZvcmUgdGhlIGNhbGwpIHdoZW4gcmV0dXJuaW5nXG5mcm9tIGEgZnVuY3Rpb24gdGhhdCBoYW5kbGVkIGFuIGV4Y2VwdGlvbi5cblxuVGhlIG9wdGlvbmFsIGBgZWxzZWBgIGNsYXVzZSBpcyBleGVjdXRlZCBpZiBhbmQgd2hlbiBjb250cm9sIGZsb3dzIG9mZlxudGhlIGVuZCBvZiB0aGUgYGB0cnlgYCBjbGF1c2UuIFsyXSBFeGNlcHRpb25zIGluIHRoZSBgYGVsc2VgYCBjbGF1c2VcbmFyZSBub3QgaGFuZGxlZCBieSB0aGUgcHJlY2VkaW5nIGBgZXhjZXB0YGAgY2xhdXNlcy5cblxuSWYgYGBmaW5hbGx5YGAgaXMgcHJlc2VudCwgaXQgc3BlY2lmaWVzIGEgXCdjbGVhbnVwXCcgaGFuZGxlci4gIFRoZVxuYGB0cnlgYCBjbGF1c2UgaXMgZXhlY3V0ZWQsIGluY2x1ZGluZyBhbnkgYGBleGNlcHRgYCBhbmQgYGBlbHNlYGBcbmNsYXVzZXMuICBJZiBhbiBleGNlcHRpb24gb2NjdXJzIGluIGFueSBvZiB0aGUgY2xhdXNlcyBhbmQgaXMgbm90XG5oYW5kbGVkLCB0aGUgZXhjZXB0aW9uIGlzIHRlbXBvcmFyaWx5IHNhdmVkLiBUaGUgYGBmaW5hbGx5YGAgY2xhdXNlIGlzXG5leGVjdXRlZC4gIElmIHRoZXJlIGlzIGEgc2F2ZWQgZXhjZXB0aW9uLCBpdCBpcyByZS1yYWlzZWQgYXQgdGhlIGVuZFxub2YgdGhlIGBgZmluYWxseWBgIGNsYXVzZS4gSWYgdGhlIGBgZmluYWxseWBgIGNsYXVzZSByYWlzZXMgYW5vdGhlclxuZXhjZXB0aW9uIG9yIGV4ZWN1dGVzIGEgYGByZXR1cm5gYCBvciBgYGJyZWFrYGAgc3RhdGVtZW50LCB0aGUgc2F2ZWRcbmV4Y2VwdGlvbiBpcyBzZXQgYXMgdGhlIGNvbnRleHQgb2YgdGhlIG5ldyBleGNlcHRpb24uICBUaGUgZXhjZXB0aW9uXG5pbmZvcm1hdGlvbiBpcyBub3QgYXZhaWxhYmxlIHRvIHRoZSBwcm9ncmFtIGR1cmluZyBleGVjdXRpb24gb2YgdGhlXG5gYGZpbmFsbHlgYCBjbGF1c2UuXG5cbldoZW4gYSBgYHJldHVybmBgLCBgYGJyZWFrYGAgb3IgYGBjb250aW51ZWBgIHN0YXRlbWVudCBpcyBleGVjdXRlZCBpblxudGhlIGBgdHJ5YGAgc3VpdGUgb2YgYSBgYHRyeWBgLi4uYGBmaW5hbGx5YGAgc3RhdGVtZW50LCB0aGVcbmBgZmluYWxseWBgIGNsYXVzZSBpcyBhbHNvIGV4ZWN1dGVkIFwnb24gdGhlIHdheSBvdXQuXCcgQSBgYGNvbnRpbnVlYGBcbnN0YXRlbWVudCBpcyBpbGxlZ2FsIGluIHRoZSBgYGZpbmFsbHlgYCBjbGF1c2UuIChUaGUgcmVhc29uIGlzIGFcbnByb2JsZW0gd2l0aCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiAtLS0gdGhpcyByZXN0cmljdGlvbiBtYXkgYmVcbmxpZnRlZCBpbiB0aGUgZnV0dXJlKS5cblxuQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiBleGNlcHRpb25zIGNhbiBiZSBmb3VuZCBpbiBzZWN0aW9uXG4qRXhjZXB0aW9ucyosIGFuZCBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGUgYGByYWlzZWBgIHN0YXRlbWVudCB0b1xuZ2VuZXJhdGUgZXhjZXB0aW9ucyBtYXkgYmUgZm91bmQgaW4gc2VjdGlvbiAqVGhlIHJhaXNlIHN0YXRlbWVudCouXG5cblxuVGhlIGBgd2l0aGBgIHN0YXRlbWVudFxuPT09PT09PT09PT09PT09PT09PT09PVxuXG5UaGUgYGB3aXRoYGAgc3RhdGVtZW50IGlzIHVzZWQgdG8gd3JhcCB0aGUgZXhlY3V0aW9uIG9mIGEgYmxvY2sgd2l0aFxubWV0aG9kcyBkZWZpbmVkIGJ5IGEgY29udGV4dCBtYW5hZ2VyIChzZWUgc2VjdGlvbiAqV2l0aCBTdGF0ZW1lbnRcbkNvbnRleHQgTWFuYWdlcnMqKS4gVGhpcyBhbGxvd3MgY29tbW9uXG5gYHRyeWBgLi4uYGBleGNlcHRgYC4uLmBgZmluYWxseWBgIHVzYWdlIHBhdHRlcm5zIHRvIGJlIGVuY2Fwc3VsYXRlZFxuZm9yIGNvbnZlbmllbnQgcmV1c2UuXG5cbiAgIHdpdGhfc3RtdCA6Oj0gIndpdGgiIHdpdGhfaXRlbSAoIiwiIHdpdGhfaXRlbSkqICI6IiBzdWl0ZVxuICAgd2l0aF9pdGVtIDo6PSBleHByZXNzaW9uIFsiYXMiIHRhcmdldF1cblxuVGhlIGV4ZWN1dGlvbiBvZiB0aGUgYGB3aXRoYGAgc3RhdGVtZW50IHdpdGggb25lICJpdGVtIiBwcm9jZWVkcyBhc1xuZm9sbG93czpcblxuMS4gVGhlIGNvbnRleHQgZXhwcmVzc2lvbiAodGhlIGV4cHJlc3Npb24gZ2l2ZW4gaW4gdGhlIGBgd2l0aF9pdGVtYGApXG4gICBpcyBldmFsdWF0ZWQgdG8gb2J0YWluIGEgY29udGV4dCBtYW5hZ2VyLlxuXG4yLiBUaGUgY29udGV4dCBtYW5hZ2VyXCdzIGBgX19leGl0X18oKWBgIGlzIGxvYWRlZCBmb3IgbGF0ZXIgdXNlLlxuXG4zLiBUaGUgY29udGV4dCBtYW5hZ2VyXCdzIGBgX19lbnRlcl9fKClgYCBtZXRob2QgaXMgaW52b2tlZC5cblxuNC4gSWYgYSB0YXJnZXQgd2FzIGluY2x1ZGVkIGluIHRoZSBgYHdpdGhgYCBzdGF0ZW1lbnQsIHRoZSByZXR1cm5cbiAgIHZhbHVlIGZyb20gYGBfX2VudGVyX18oKWBgIGlzIGFzc2lnbmVkIHRvIGl0LlxuXG4gICBOb3RlOiBUaGUgYGB3aXRoYGAgc3RhdGVtZW50IGd1YXJhbnRlZXMgdGhhdCBpZiB0aGUgYGBfX2VudGVyX18oKWBgXG4gICAgIG1ldGhvZCByZXR1cm5zIHdpdGhvdXQgYW4gZXJyb3IsIHRoZW4gYGBfX2V4aXRfXygpYGAgd2lsbCBhbHdheXNcbiAgICAgYmUgY2FsbGVkLiBUaHVzLCBpZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBhc3NpZ25tZW50IHRvIHRoZVxuICAgICB0YXJnZXQgbGlzdCwgaXQgd2lsbCBiZSB0cmVhdGVkIHRoZSBzYW1lIGFzIGFuIGVycm9yIG9jY3VycmluZ1xuICAgICB3aXRoaW4gdGhlIHN1aXRlIHdvdWxkIGJlLiBTZWUgc3RlcCA2IGJlbG93LlxuXG41LiBUaGUgc3VpdGUgaXMgZXhlY3V0ZWQuXG5cbjYuIFRoZSBjb250ZXh0IG1hbmFnZXJcJ3MgYGBfX2V4aXRfXygpYGAgbWV0aG9kIGlzIGludm9rZWQuICBJZiBhblxuICAgZXhjZXB0aW9uIGNhdXNlZCB0aGUgc3VpdGUgdG8gYmUgZXhpdGVkLCBpdHMgdHlwZSwgdmFsdWUsIGFuZFxuICAgdHJhY2ViYWNrIGFyZSBwYXNzZWQgYXMgYXJndW1lbnRzIHRvIGBgX19leGl0X18oKWBgLiBPdGhlcndpc2UsXG4gICB0aHJlZSBgYE5vbmVgYCBhcmd1bWVudHMgYXJlIHN1cHBsaWVkLlxuXG4gICBJZiB0aGUgc3VpdGUgd2FzIGV4aXRlZCBkdWUgdG8gYW4gZXhjZXB0aW9uLCBhbmQgdGhlIHJldHVybiB2YWx1ZVxuICAgZnJvbSB0aGUgYGBfX2V4aXRfXygpYGAgbWV0aG9kIHdhcyBmYWxzZSwgdGhlIGV4Y2VwdGlvbiBpc1xuICAgcmVyYWlzZWQuICBJZiB0aGUgcmV0dXJuIHZhbHVlIHdhcyB0cnVlLCB0aGUgZXhjZXB0aW9uIGlzXG4gICBzdXBwcmVzc2VkLCBhbmQgZXhlY3V0aW9uIGNvbnRpbnVlcyB3aXRoIHRoZSBzdGF0ZW1lbnQgZm9sbG93aW5nXG4gICB0aGUgYGB3aXRoYGAgc3RhdGVtZW50LlxuXG4gICBJZiB0aGUgc3VpdGUgd2FzIGV4aXRlZCBmb3IgYW55IHJlYXNvbiBvdGhlciB0aGFuIGFuIGV4Y2VwdGlvbiwgdGhlXG4gICByZXR1cm4gdmFsdWUgZnJvbSBgYF9fZXhpdF9fKClgYCBpcyBpZ25vcmVkLCBhbmQgZXhlY3V0aW9uIHByb2NlZWRzXG4gICBhdCB0aGUgbm9ybWFsIGxvY2F0aW9uIGZvciB0aGUga2luZCBvZiBleGl0IHRoYXQgd2FzIHRha2VuLlxuXG5XaXRoIG1vcmUgdGhhbiBvbmUgaXRlbSwgdGhlIGNvbnRleHQgbWFuYWdlcnMgYXJlIHByb2Nlc3NlZCBhcyBpZlxubXVsdGlwbGUgYGB3aXRoYGAgc3RhdGVtZW50cyB3ZXJlIG5lc3RlZDpcblxuICAgd2l0aCBBKCkgYXMgYSwgQigpIGFzIGI6XG4gICAgICAgc3VpdGVcblxuaXMgZXF1aXZhbGVudCB0b1xuXG4gICB3aXRoIEEoKSBhcyBhOlxuICAgICAgIHdpdGggQigpIGFzIGI6XG4gICAgICAgICAgIHN1aXRlXG5cbkNoYW5nZWQgaW4gdmVyc2lvbiAzLjE6IFN1cHBvcnQgZm9yIG11bHRpcGxlIGNvbnRleHQgZXhwcmVzc2lvbnMuXG5cblNlZSBhbHNvOlxuXG4gICAqKlBFUCAwMzQzKiogLSBUaGUgIndpdGgiIHN0YXRlbWVudFxuICAgICAgVGhlIHNwZWNpZmljYXRpb24sIGJhY2tncm91bmQsIGFuZCBleGFtcGxlcyBmb3IgdGhlIFB5dGhvblxuICAgICAgYGB3aXRoYGAgc3RhdGVtZW50LlxuXG5cbkZ1bmN0aW9uIGRlZmluaXRpb25zXG49PT09PT09PT09PT09PT09PT09PVxuXG5BIGZ1bmN0aW9uIGRlZmluaXRpb24gZGVmaW5lcyBhIHVzZXItZGVmaW5lZCBmdW5jdGlvbiBvYmplY3QgKHNlZVxuc2VjdGlvbiAqVGhlIHN0YW5kYXJkIHR5cGUgaGllcmFyY2h5Kik6XG5cbiAgIGZ1bmNkZWYgICAgICAgIDo6PSBbZGVjb3JhdG9yc10gImRlZiIgZnVuY25hbWUgIigiIFtwYXJhbWV0ZXJfbGlzdF0gIikiIFsiLT4iIGV4cHJlc3Npb25dICI6IiBzdWl0ZVxuICAgZGVjb3JhdG9ycyAgICAgOjo9IGRlY29yYXRvcitcbiAgIGRlY29yYXRvciAgICAgIDo6PSAiQCIgZG90dGVkX25hbWUgWyIoIiBbcGFyYW1ldGVyX2xpc3QgWyIsIl1dICIpIl0gTkVXTElORVxuICAgZG90dGVkX25hbWUgICAgOjo9IGlkZW50aWZpZXIgKCIuIiBpZGVudGlmaWVyKSpcbiAgIHBhcmFtZXRlcl9saXN0IDo6PSAoZGVmcGFyYW1ldGVyICIsIikqXG4gICAgICAgICAgICAgICAgICAgICAgKCAgIioiIFtwYXJhbWV0ZXJdICgiLCIgZGVmcGFyYW1ldGVyKSpcbiAgICAgICAgICAgICAgICAgICAgICBbLCAiKioiIHBhcmFtZXRlcl1cbiAgICAgICAgICAgICAgICAgICAgICB8ICIqKiIgcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgICAgICAgfCBkZWZwYXJhbWV0ZXIgWyIsIl0gKVxuICAgcGFyYW1ldGVyICAgICAgOjo9IGlkZW50aWZpZXIgWyI6IiBleHByZXNzaW9uXVxuICAgZGVmcGFyYW1ldGVyICAgOjo9IHBhcmFtZXRlciBbIj0iIGV4cHJlc3Npb25dXG4gICBmdW5jbmFtZSAgICAgICA6Oj0gaWRlbnRpZmllclxuXG5BIGZ1bmN0aW9uIGRlZmluaXRpb24gaXMgYW4gZXhlY3V0YWJsZSBzdGF0ZW1lbnQuICBJdHMgZXhlY3V0aW9uIGJpbmRzXG50aGUgZnVuY3Rpb24gbmFtZSBpbiB0aGUgY3VycmVudCBsb2NhbCBuYW1lc3BhY2UgdG8gYSBmdW5jdGlvbiBvYmplY3RcbihhIHdyYXBwZXIgYXJvdW5kIHRoZSBleGVjdXRhYmxlIGNvZGUgZm9yIHRoZSBmdW5jdGlvbikuICBUaGlzXG5mdW5jdGlvbiBvYmplY3QgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgZ2xvYmFsIG5hbWVzcGFjZVxuYXMgdGhlIGdsb2JhbCBuYW1lc3BhY2UgdG8gYmUgdXNlZCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQuXG5cblRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGRvZXMgbm90IGV4ZWN1dGUgdGhlIGZ1bmN0aW9uIGJvZHk7IHRoaXMgZ2V0c1xuZXhlY3V0ZWQgb25seSB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQuIFszXVxuXG5BIGZ1bmN0aW9uIGRlZmluaXRpb24gbWF5IGJlIHdyYXBwZWQgYnkgb25lIG9yIG1vcmUgKmRlY29yYXRvcipcbmV4cHJlc3Npb25zLiBEZWNvcmF0b3IgZXhwcmVzc2lvbnMgYXJlIGV2YWx1YXRlZCB3aGVuIHRoZSBmdW5jdGlvbiBpc1xuZGVmaW5lZCwgaW4gdGhlIHNjb3BlIHRoYXQgY29udGFpbnMgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24uICBUaGVcbnJlc3VsdCBtdXN0IGJlIGEgY2FsbGFibGUsIHdoaWNoIGlzIGludm9rZWQgd2l0aCB0aGUgZnVuY3Rpb24gb2JqZWN0XG5hcyB0aGUgb25seSBhcmd1bWVudC4gVGhlIHJldHVybmVkIHZhbHVlIGlzIGJvdW5kIHRvIHRoZSBmdW5jdGlvbiBuYW1lXG5pbnN0ZWFkIG9mIHRoZSBmdW5jdGlvbiBvYmplY3QuICBNdWx0aXBsZSBkZWNvcmF0b3JzIGFyZSBhcHBsaWVkIGluXG5uZXN0ZWQgZmFzaGlvbi4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgY29kZVxuXG4gICBAZjEoYXJnKVxuICAgQGYyXG4gICBkZWYgZnVuYygpOiBwYXNzXG5cbmlzIGVxdWl2YWxlbnQgdG9cblxuICAgZGVmIGZ1bmMoKTogcGFzc1xuICAgZnVuYyA9IGYxKGFyZykoZjIoZnVuYykpXG5cbldoZW4gb25lIG9yIG1vcmUgcGFyYW1ldGVycyBoYXZlIHRoZSBmb3JtICpwYXJhbWV0ZXIqIGBgPWBgXG4qZXhwcmVzc2lvbiosIHRoZSBmdW5jdGlvbiBpcyBzYWlkIHRvIGhhdmUgImRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlcy4iXG5Gb3IgYSBwYXJhbWV0ZXIgd2l0aCBhIGRlZmF1bHQgdmFsdWUsIHRoZSBjb3JyZXNwb25kaW5nIGFyZ3VtZW50IG1heVxuYmUgb21pdHRlZCBmcm9tIGEgY2FsbCwgaW4gd2hpY2ggY2FzZSB0aGUgcGFyYW1ldGVyXCdzIGRlZmF1bHQgdmFsdWUgaXNcbnN1YnN0aXR1dGVkLiAgSWYgYSBwYXJhbWV0ZXIgaGFzIGEgZGVmYXVsdCB2YWx1ZSwgYWxsIGZvbGxvd2luZ1xucGFyYW1ldGVycyB1cCB1bnRpbCB0aGUgImBgKmBgIiBtdXN0IGFsc28gaGF2ZSBhIGRlZmF1bHQgdmFsdWUgLS0tXG50aGlzIGlzIGEgc3ludGFjdGljIHJlc3RyaWN0aW9uIHRoYXQgaXMgbm90IGV4cHJlc3NlZCBieSB0aGUgZ3JhbW1hci5cblxuKipEZWZhdWx0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIGV2YWx1YXRlZCB3aGVuIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uXG5pcyBleGVjdXRlZC4qKiBUaGlzIG1lYW5zIHRoYXQgdGhlIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkIG9uY2UsIHdoZW5cbnRoZSBmdW5jdGlvbiBpcyBkZWZpbmVkLCBhbmQgdGhhdCB0aGUgc2FtZSAicHJlLWNvbXB1dGVkIiB2YWx1ZSBpc1xudXNlZCBmb3IgZWFjaCBjYWxsLiAgVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHdoZW4gYVxuZGVmYXVsdCBwYXJhbWV0ZXIgaXMgYSBtdXRhYmxlIG9iamVjdCwgc3VjaCBhcyBhIGxpc3Qgb3IgYSBkaWN0aW9uYXJ5OlxuaWYgdGhlIGZ1bmN0aW9uIG1vZGlmaWVzIHRoZSBvYmplY3QgKGUuZy4gYnkgYXBwZW5kaW5nIGFuIGl0ZW0gdG8gYVxubGlzdCksIHRoZSBkZWZhdWx0IHZhbHVlIGlzIGluIGVmZmVjdCBtb2RpZmllZC4gVGhpcyBpcyBnZW5lcmFsbHkgbm90XG53aGF0IHdhcyBpbnRlbmRlZC4gIEEgd2F5IGFyb3VuZCB0aGlzIGlzIHRvIHVzZSBgYE5vbmVgYCBhcyB0aGVcbmRlZmF1bHQsIGFuZCBleHBsaWNpdGx5IHRlc3QgZm9yIGl0IGluIHRoZSBib2R5IG9mIHRoZSBmdW5jdGlvbiwgZS5nLjpcblxuICAgZGVmIHdoYXRzX29uX3RoZV90ZWxseShwZW5ndWluPU5vbmUpOlxuICAgICAgIGlmIHBlbmd1aW4gaXMgTm9uZTpcbiAgICAgICAgICAgcGVuZ3VpbiA9IFtdXG4gICAgICAgcGVuZ3Vpbi5hcHBlbmQoInByb3BlcnR5IG9mIHRoZSB6b28iKVxuICAgICAgIHJldHVybiBwZW5ndWluXG5cbkZ1bmN0aW9uIGNhbGwgc2VtYW50aWNzIGFyZSBkZXNjcmliZWQgaW4gbW9yZSBkZXRhaWwgaW4gc2VjdGlvblxuKkNhbGxzKi4gQSBmdW5jdGlvbiBjYWxsIGFsd2F5cyBhc3NpZ25zIHZhbHVlcyB0byBhbGwgcGFyYW1ldGVyc1xubWVudGlvbmVkIGluIHRoZSBwYXJhbWV0ZXIgbGlzdCwgZWl0aGVyIGZyb20gcG9zaXRpb24gYXJndW1lbnRzLCBmcm9tXG5rZXl3b3JkIGFyZ3VtZW50cywgb3IgZnJvbSBkZWZhdWx0IHZhbHVlcy4gIElmIHRoZSBmb3JtXG4iYGAqaWRlbnRpZmllcmBgIiBpcyBwcmVzZW50LCBpdCBpcyBpbml0aWFsaXplZCB0byBhIHR1cGxlIHJlY2VpdmluZ1xuYW55IGV4Y2VzcyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIGRlZmF1bHRpbmcgdG8gdGhlIGVtcHR5IHR1cGxlLiAgSWZcbnRoZSBmb3JtICJgYCoqaWRlbnRpZmllcmBgIiBpcyBwcmVzZW50LCBpdCBpcyBpbml0aWFsaXplZCB0byBhIG5ld1xuZGljdGlvbmFyeSByZWNlaXZpbmcgYW55IGV4Y2VzcyBrZXl3b3JkIGFyZ3VtZW50cywgZGVmYXVsdGluZyB0byBhIG5ld1xuZW1wdHkgZGljdGlvbmFyeS4gUGFyYW1ldGVycyBhZnRlciAiYGAqYGAiIG9yICJgYCppZGVudGlmaWVyYGAiIGFyZVxua2V5d29yZC1vbmx5IHBhcmFtZXRlcnMgYW5kIG1heSBvbmx5IGJlIHBhc3NlZCB1c2VkIGtleXdvcmQgYXJndW1lbnRzLlxuXG5QYXJhbWV0ZXJzIG1heSBoYXZlIGFubm90YXRpb25zIG9mIHRoZSBmb3JtICJgYDogZXhwcmVzc2lvbmBgIlxuZm9sbG93aW5nIHRoZSBwYXJhbWV0ZXIgbmFtZS4gIEFueSBwYXJhbWV0ZXIgbWF5IGhhdmUgYW4gYW5ub3RhdGlvblxuZXZlbiB0aG9zZSBvZiB0aGUgZm9ybSBgYCppZGVudGlmaWVyYGAgb3IgYGAqKmlkZW50aWZpZXJgYC4gIEZ1bmN0aW9uc1xubWF5IGhhdmUgInJldHVybiIgYW5ub3RhdGlvbiBvZiB0aGUgZm9ybSAiYGAtPiBleHByZXNzaW9uYGAiIGFmdGVyIHRoZVxucGFyYW1ldGVyIGxpc3QuICBUaGVzZSBhbm5vdGF0aW9ucyBjYW4gYmUgYW55IHZhbGlkIFB5dGhvbiBleHByZXNzaW9uXG5hbmQgYXJlIGV2YWx1YXRlZCB3aGVuIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIGV4ZWN1dGVkLlxuQW5ub3RhdGlvbnMgbWF5IGJlIGV2YWx1YXRlZCBpbiBhIGRpZmZlcmVudCBvcmRlciB0aGFuIHRoZXkgYXBwZWFyIGluXG50aGUgc291cmNlIGNvZGUuICBUaGUgcHJlc2VuY2Ugb2YgYW5ub3RhdGlvbnMgZG9lcyBub3QgY2hhbmdlIHRoZVxuc2VtYW50aWNzIG9mIGEgZnVuY3Rpb24uICBUaGUgYW5ub3RhdGlvbiB2YWx1ZXMgYXJlIGF2YWlsYWJsZSBhc1xudmFsdWVzIG9mIGEgZGljdGlvbmFyeSBrZXllZCBieSB0aGUgcGFyYW1ldGVyc1wnIG5hbWVzIGluIHRoZVxuYGBfX2Fubm90YXRpb25zX19gYCBhdHRyaWJ1dGUgb2YgdGhlIGZ1bmN0aW9uIG9iamVjdC5cblxuSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBjcmVhdGUgYW5vbnltb3VzIGZ1bmN0aW9ucyAoZnVuY3Rpb25zIG5vdCBib3VuZFxudG8gYSBuYW1lKSwgZm9yIGltbWVkaWF0ZSB1c2UgaW4gZXhwcmVzc2lvbnMuICBUaGlzIHVzZXMgbGFtYmRhIGZvcm1zLFxuZGVzY3JpYmVkIGluIHNlY3Rpb24gKkxhbWJkYXMqLiAgTm90ZSB0aGF0IHRoZSBsYW1iZGEgZm9ybSBpcyBtZXJlbHkgYVxuc2hvcnRoYW5kIGZvciBhIHNpbXBsaWZpZWQgZnVuY3Rpb24gZGVmaW5pdGlvbjsgYSBmdW5jdGlvbiBkZWZpbmVkIGluXG5hICJgYGRlZmBgIiBzdGF0ZW1lbnQgY2FuIGJlIHBhc3NlZCBhcm91bmQgb3IgYXNzaWduZWQgdG8gYW5vdGhlciBuYW1lXG5qdXN0IGxpa2UgYSBmdW5jdGlvbiBkZWZpbmVkIGJ5IGEgbGFtYmRhIGZvcm0uICBUaGUgImBgZGVmYGAiIGZvcm0gaXNcbmFjdHVhbGx5IG1vcmUgcG93ZXJmdWwgc2luY2UgaXQgYWxsb3dzIHRoZSBleGVjdXRpb24gb2YgbXVsdGlwbGVcbnN0YXRlbWVudHMgYW5kIGFubm90YXRpb25zLlxuXG4qKlByb2dyYW1tZXJcJ3Mgbm90ZToqKiBGdW5jdGlvbnMgYXJlIGZpcnN0LWNsYXNzIG9iamVjdHMuICBBICJgYGRlZmBgIlxuZm9ybSBleGVjdXRlZCBpbnNpZGUgYSBmdW5jdGlvbiBkZWZpbml0aW9uIGRlZmluZXMgYSBsb2NhbCBmdW5jdGlvblxudGhhdCBjYW4gYmUgcmV0dXJuZWQgb3IgcGFzc2VkIGFyb3VuZC4gIEZyZWUgdmFyaWFibGVzIHVzZWQgaW4gdGhlXG5uZXN0ZWQgZnVuY3Rpb24gY2FuIGFjY2VzcyB0aGUgbG9jYWwgdmFyaWFibGVzIG9mIHRoZSBmdW5jdGlvblxuY29udGFpbmluZyB0aGUgZGVmLiAgU2VlIHNlY3Rpb24gKk5hbWluZyBhbmQgYmluZGluZyogZm9yIGRldGFpbHMuXG5cblxuQ2xhc3MgZGVmaW5pdGlvbnNcbj09PT09PT09PT09PT09PT09XG5cbkEgY2xhc3MgZGVmaW5pdGlvbiBkZWZpbmVzIGEgY2xhc3Mgb2JqZWN0IChzZWUgc2VjdGlvbiAqVGhlIHN0YW5kYXJkXG50eXBlIGhpZXJhcmNoeSopOlxuXG4gICBjbGFzc2RlZiAgICA6Oj0gW2RlY29yYXRvcnNdICJjbGFzcyIgY2xhc3NuYW1lIFtpbmhlcml0YW5jZV0gIjoiIHN1aXRlXG4gICBpbmhlcml0YW5jZSA6Oj0gIigiIFtwYXJhbWV0ZXJfbGlzdF0gIikiXG4gICBjbGFzc25hbWUgICA6Oj0gaWRlbnRpZmllclxuXG5BIGNsYXNzIGRlZmluaXRpb24gaXMgYW4gZXhlY3V0YWJsZSBzdGF0ZW1lbnQuICBUaGUgaW5oZXJpdGFuY2UgbGlzdFxudXN1YWxseSBnaXZlcyBhIGxpc3Qgb2YgYmFzZSBjbGFzc2VzIChzZWUgKkN1c3RvbWl6aW5nIGNsYXNzIGNyZWF0aW9uKlxuZm9yIG1vcmUgYWR2YW5jZWQgdXNlcyksIHNvIGVhY2ggaXRlbSBpbiB0aGUgbGlzdCBzaG91bGQgZXZhbHVhdGUgdG8gYVxuY2xhc3Mgb2JqZWN0IHdoaWNoIGFsbG93cyBzdWJjbGFzc2luZy4gIENsYXNzZXMgd2l0aG91dCBhbiBpbmhlcml0YW5jZVxubGlzdCBpbmhlcml0LCBieSBkZWZhdWx0LCBmcm9tIHRoZSBiYXNlIGNsYXNzIGBgb2JqZWN0YGA7IGhlbmNlLFxuXG4gICBjbGFzcyBGb286XG4gICAgICAgcGFzc1xuXG5pcyBlcXVpdmFsZW50IHRvXG5cbiAgIGNsYXNzIEZvbyhvYmplY3QpOlxuICAgICAgIHBhc3NcblxuVGhlIGNsYXNzXCdzIHN1aXRlIGlzIHRoZW4gZXhlY3V0ZWQgaW4gYSBuZXcgZXhlY3V0aW9uIGZyYW1lIChzZWVcbipOYW1pbmcgYW5kIGJpbmRpbmcqKSwgdXNpbmcgYSBuZXdseSBjcmVhdGVkIGxvY2FsIG5hbWVzcGFjZSBhbmQgdGhlXG5vcmlnaW5hbCBnbG9iYWwgbmFtZXNwYWNlLiAoVXN1YWxseSwgdGhlIHN1aXRlIGNvbnRhaW5zIG1vc3RseVxuZnVuY3Rpb24gZGVmaW5pdGlvbnMuKSAgV2hlbiB0aGUgY2xhc3NcJ3Mgc3VpdGUgZmluaXNoZXMgZXhlY3V0aW9uLCBpdHNcbmV4ZWN1dGlvbiBmcmFtZSBpcyBkaXNjYXJkZWQgYnV0IGl0cyBsb2NhbCBuYW1lc3BhY2UgaXMgc2F2ZWQuIFs0XSBBXG5jbGFzcyBvYmplY3QgaXMgdGhlbiBjcmVhdGVkIHVzaW5nIHRoZSBpbmhlcml0YW5jZSBsaXN0IGZvciB0aGUgYmFzZVxuY2xhc3NlcyBhbmQgdGhlIHNhdmVkIGxvY2FsIG5hbWVzcGFjZSBmb3IgdGhlIGF0dHJpYnV0ZSBkaWN0aW9uYXJ5LlxuVGhlIGNsYXNzIG5hbWUgaXMgYm91bmQgdG8gdGhpcyBjbGFzcyBvYmplY3QgaW4gdGhlIG9yaWdpbmFsIGxvY2FsXG5uYW1lc3BhY2UuXG5cbkNsYXNzIGNyZWF0aW9uIGNhbiBiZSBjdXN0b21pemVkIGhlYXZpbHkgdXNpbmcgKm1ldGFjbGFzc2VzKi5cblxuQ2xhc3NlcyBjYW4gYWxzbyBiZSBkZWNvcmF0ZWQ6IGp1c3QgbGlrZSB3aGVuIGRlY29yYXRpbmcgZnVuY3Rpb25zLFxuXG4gICBAZjEoYXJnKVxuICAgQGYyXG4gICBjbGFzcyBGb286IHBhc3NcblxuaXMgZXF1aXZhbGVudCB0b1xuXG4gICBjbGFzcyBGb286IHBhc3NcbiAgIEZvbyA9IGYxKGFyZykoZjIoRm9vKSlcblxuVGhlIGV2YWx1YXRpb24gcnVsZXMgZm9yIHRoZSBkZWNvcmF0b3IgZXhwcmVzc2lvbnMgYXJlIHRoZSBzYW1lIGFzIGZvclxuZnVuY3Rpb24gZGVjb3JhdG9ycy4gIFRoZSByZXN1bHQgbXVzdCBiZSBhIGNsYXNzIG9iamVjdCwgd2hpY2ggaXMgdGhlblxuYm91bmQgdG8gdGhlIGNsYXNzIG5hbWUuXG5cbioqUHJvZ3JhbW1lclwncyBub3RlOioqIFZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBjbGFzcyBkZWZpbml0aW9uIGFyZVxuY2xhc3MgYXR0cmlidXRlczsgdGhleSBhcmUgc2hhcmVkIGJ5IGluc3RhbmNlcy4gIEluc3RhbmNlIGF0dHJpYnV0ZXNcbmNhbiBiZSBzZXQgaW4gYSBtZXRob2Qgd2l0aCBgYHNlbGYubmFtZSA9IHZhbHVlYGAuICBCb3RoIGNsYXNzIGFuZFxuaW5zdGFuY2UgYXR0cmlidXRlcyBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBub3RhdGlvblxuImBgc2VsZi5uYW1lYGAiLCBhbmQgYW4gaW5zdGFuY2UgYXR0cmlidXRlIGhpZGVzIGEgY2xhc3MgYXR0cmlidXRlXG53aXRoIHRoZSBzYW1lIG5hbWUgd2hlbiBhY2Nlc3NlZCBpbiB0aGlzIHdheS4gIENsYXNzIGF0dHJpYnV0ZXMgY2FuIGJlXG51c2VkIGFzIGRlZmF1bHRzIGZvciBpbnN0YW5jZSBhdHRyaWJ1dGVzLCBidXQgdXNpbmcgbXV0YWJsZSB2YWx1ZXNcbnRoZXJlIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgcmVzdWx0cy4gICpEZXNjcmlwdG9ycyogY2FuIGJlIHVzZWQgdG9cbmNyZWF0ZSBpbnN0YW5jZSB2YXJpYWJsZXMgd2l0aCBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24gZGV0YWlscy5cblxuU2VlIGFsc286XG5cbiAgICoqUEVQIDMxMTUqKiAtIE1ldGFjbGFzc2VzIGluIFB5dGhvbiAzICoqUEVQIDMxMjkqKiAtIENsYXNzXG4gICBEZWNvcmF0b3JzXG5cbi1bIEZvb3Rub3RlcyBdLVxuXG5bMV0gVGhlIGV4Y2VwdGlvbiBpcyBwcm9wYWdhdGVkIHRvIHRoZSBpbnZvY2F0aW9uIHN0YWNrIHVubGVzcyB0aGVyZVxuICAgIGlzIGEgYGBmaW5hbGx5YGAgY2xhdXNlIHdoaWNoIGhhcHBlbnMgdG8gcmFpc2UgYW5vdGhlciBleGNlcHRpb24uXG4gICAgVGhhdCBuZXcgZXhjZXB0aW9uIGNhdXNlcyB0aGUgb2xkIG9uZSB0byBiZSBsb3N0LlxuXG5bMl0gQ3VycmVudGx5LCBjb250cm9sICJmbG93cyBvZmYgdGhlIGVuZCIgZXhjZXB0IGluIHRoZSBjYXNlIG9mIGFuXG4gICAgZXhjZXB0aW9uIG9yIHRoZSBleGVjdXRpb24gb2YgYSBgYHJldHVybmBgLCBgYGNvbnRpbnVlYGAsIG9yXG4gICAgYGBicmVha2BgIHN0YXRlbWVudC5cblxuWzNdIEEgc3RyaW5nIGxpdGVyYWwgYXBwZWFyaW5nIGFzIHRoZSBmaXJzdCBzdGF0ZW1lbnQgaW4gdGhlIGZ1bmN0aW9uXG4gICAgYm9keSBpcyB0cmFuc2Zvcm1lZCBpbnRvIHRoZSBmdW5jdGlvblwncyBgYF9fZG9jX19gYCBhdHRyaWJ1dGUgYW5kXG4gICAgdGhlcmVmb3JlIHRoZSBmdW5jdGlvblwncyAqZG9jc3RyaW5nKi5cblxuWzRdIEEgc3RyaW5nIGxpdGVyYWwgYXBwZWFyaW5nIGFzIHRoZSBmaXJzdCBzdGF0ZW1lbnQgaW4gdGhlIGNsYXNzXG4gICAgYm9keSBpcyB0cmFuc2Zvcm1lZCBpbnRvIHRoZSBuYW1lc3BhY2VcJ3MgYGBfX2RvY19fYGAgaXRlbSBhbmRcbiAgICB0aGVyZWZvcmUgdGhlIGNsYXNzXCdzICpkb2NzdHJpbmcqLlxuJywKKyAnY29tcG91bmQnOiAnXG5Db21wb3VuZCBzdGF0ZW1lbnRzXG4qKioqKioqKioqKioqKioqKioqXG5cbkNvbXBvdW5kIHN0YXRlbWVudHMgY29udGFpbiAoZ3JvdXBzIG9mKSBvdGhlciBzdGF0ZW1lbnRzOyB0aGV5IGFmZmVjdFxub3IgY29udHJvbCB0aGUgZXhlY3V0aW9uIG9mIHRob3NlIG90aGVyIHN0YXRlbWVudHMgaW4gc29tZSB3YXkuICBJblxuZ2VuZXJhbCwgY29tcG91bmQgc3RhdGVtZW50cyBzcGFuIG11bHRpcGxlIGxpbmVzLCBhbHRob3VnaCBpbiBzaW1wbGVcbmluY2FybmF0aW9ucyBhIHdob2xlIGNvbXBvdW5kIHN0YXRlbWVudCBtYXkgYmUgY29udGFpbmVkIGluIG9uZSBsaW5lLlxuXG5UaGUgYGBpZmBgLCBgYHdoaWxlYGAgYW5kIGBgZm9yYGAgc3RhdGVtZW50cyBpbXBsZW1lbnQgdHJhZGl0aW9uYWxcbmNvbnRyb2wgZmxvdyBjb25zdHJ1Y3RzLiAgYGB0cnlgYCBzcGVjaWZpZXMgZXhjZXB0aW9uIGhhbmRsZXJzIGFuZC9vclxuY2xlYW51cCBjb2RlIGZvciBhIGdyb3VwIG9mIHN0YXRlbWVudHMsIHdoaWxlIHRoZSBgYHdpdGhgYCBzdGF0ZW1lbnRcbmFsbG93cyB0aGUgZXhlY3V0aW9uIG9mIGluaXRpYWxpemF0aW9uIGFuZCBmaW5hbGl6YXRpb24gY29kZSBhcm91bmQgYVxuYmxvY2sgb2YgY29kZS4gIEZ1bmN0aW9uIGFuZCBjbGFzcyBkZWZpbml0aW9ucyBhcmUgYWxzbyBzeW50YWN0aWNhbGx5XG5jb21wb3VuZCBzdGF0ZW1lbnRzLlxuXG5Db21wb3VuZCBzdGF0ZW1lbnRzIGNvbnNpc3Qgb2Ygb25lIG9yIG1vcmUgXCdjbGF1c2VzLlwnICBBIGNsYXVzZVxuY29uc2lzdHMgb2YgYSBoZWFkZXIgYW5kIGEgXCdzdWl0ZS5cJyAgVGhlIGNsYXVzZSBoZWFkZXJzIG9mIGFcbnBhcnRpY3VsYXIgY29tcG91bmQgc3RhdGVtZW50IGFyZSBhbGwgYXQgdGhlIHNhbWUgaW5kZW50YXRpb24gbGV2ZWwuXG5FYWNoIGNsYXVzZSBoZWFkZXIgYmVnaW5zIHdpdGggYSB1bmlxdWVseSBpZGVudGlmeWluZyBrZXl3b3JkIGFuZCBlbmRzXG53aXRoIGEgY29sb24uICBBIHN1aXRlIGlzIGEgZ3JvdXAgb2Ygc3RhdGVtZW50cyBjb250cm9sbGVkIGJ5IGFcbmNsYXVzZS4gIEEgc3VpdGUgY2FuIGJlIG9uZSBvciBtb3JlIHNlbWljb2xvbi1zZXBhcmF0ZWQgc2ltcGxlXG5zdGF0ZW1lbnRzIG9uIHRoZSBzYW1lIGxpbmUgYXMgdGhlIGhlYWRlciwgZm9sbG93aW5nIHRoZSBoZWFkZXJcJ3NcbmNvbG9uLCBvciBpdCBjYW4gYmUgb25lIG9yIG1vcmUgaW5kZW50ZWQgc3RhdGVtZW50cyBvbiBzdWJzZXF1ZW50XG5saW5lcy4gIE9ubHkgdGhlIGxhdHRlciBmb3JtIG9mIHN1aXRlIGNhbiBjb250YWluIG5lc3RlZCBjb21wb3VuZFxuc3RhdGVtZW50czsgdGhlIGZvbGxvd2luZyBpcyBpbGxlZ2FsLCBtb3N0bHkgYmVjYXVzZSBpdCB3b3VsZG5cJ3QgYmVcbmNsZWFyIHRvIHdoaWNoIGBgaWZgYCBjbGF1c2UgYSBmb2xsb3dpbmcgYGBlbHNlYGAgY2xhdXNlIHdvdWxkIGJlbG9uZzpcblxuICAgaWYgdGVzdDE6IGlmIHRlc3QyOiBwcmludCh4KVxuXG5BbHNvIG5vdGUgdGhhdCB0aGUgc2VtaWNvbG9uIGJpbmRzIHRpZ2h0ZXIgdGhhbiB0aGUgY29sb24gaW4gdGhpc1xuY29udGV4dCwgc28gdGhhdCBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUsIGVpdGhlciBhbGwgb3Igbm9uZSBvZiB0aGVcbmBgcHJpbnQoKWBgIGNhbGxzIGFyZSBleGVjdXRlZDpcblxuICAgaWYgeCA8IHkgPCB6OiBwcmludCh4KTsgcHJpbnQoeSk7IHByaW50KHopXG5cblN1bW1hcml6aW5nOlxuXG4gICBjb21wb3VuZF9zdG10IDo6PSBpZl9zdG10XG4gICAgICAgICAgICAgICAgICAgICB8IHdoaWxlX3N0bXRcbiAgICAgICAgICAgICAgICAgICAgIHwgZm9yX3N0bXRcbiAgICAgICAgICAgICAgICAgICAgIHwgdHJ5X3N0bXRcbiAgICAgICAgICAgICAgICAgICAgIHwgd2l0aF9zdG10XG4gICAgICAgICAgICAgICAgICAgICB8IGZ1bmNkZWZcbiAgICAgICAgICAgICAgICAgICAgIHwgY2xhc3NkZWZcbiAgIHN1aXRlICAgICAgICAgOjo9IHN0bXRfbGlzdCBORVdMSU5FIHwgTkVXTElORSBJTkRFTlQgc3RhdGVtZW50KyBERURFTlRcbiAgIHN0YXRlbWVudCAgICAgOjo9IHN0bXRfbGlzdCBORVdMSU5FIHwgY29tcG91bmRfc3RtdFxuICAgc3RtdF9saXN0ICAgICA6Oj0gc2ltcGxlX3N0bXQgKCI7IiBzaW1wbGVfc3RtdCkqIFsiOyJdXG5cbk5vdGUgdGhhdCBzdGF0ZW1lbnRzIGFsd2F5cyBlbmQgaW4gYSBgYE5FV0xJTkVgYCBwb3NzaWJseSBmb2xsb3dlZCBieVxuYSBgYERFREVOVGBgLiAgQWxzbyBub3RlIHRoYXQgb3B0aW9uYWwgY29udGludWF0aW9uIGNsYXVzZXMgYWx3YXlzXG5iZWdpbiB3aXRoIGEga2V5d29yZCB0aGF0IGNhbm5vdCBzdGFydCBhIHN0YXRlbWVudCwgdGh1cyB0aGVyZSBhcmUgbm9cbmFtYmlndWl0aWVzICh0aGUgXCdkYW5nbGluZyBgYGVsc2VgYFwnIHByb2JsZW0gaXMgc29sdmVkIGluIFB5dGhvbiBieVxucmVxdWlyaW5nIG5lc3RlZCBgYGlmYGAgc3RhdGVtZW50cyB0byBiZSBpbmRlbnRlZCkuXG5cblRoZSBmb3JtYXR0aW5nIG9mIHRoZSBncmFtbWFyIHJ1bGVzIGluIHRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgcGxhY2VzXG5lYWNoIGNsYXVzZSBvbiBhIHNlcGFyYXRlIGxpbmUgZm9yIGNsYXJpdHkuXG5cblxuVGhlIGBgaWZgYCBzdGF0ZW1lbnRcbj09PT09PT09PT09PT09PT09PT09XG5cblRoZSBgYGlmYGAgc3RhdGVtZW50IGlzIHVzZWQgZm9yIGNvbmRpdGlvbmFsIGV4ZWN1dGlvbjpcblxuICAgaWZfc3RtdCA6Oj0gImlmIiBleHByZXNzaW9uICI6IiBzdWl0ZVxuICAgICAgICAgICAgICAgKCAiZWxpZiIgZXhwcmVzc2lvbiAiOiIgc3VpdGUgKSpcbiAgICAgICAgICAgICAgIFsiZWxzZSIgIjoiIHN1aXRlXVxuXG5JdCBzZWxlY3RzIGV4YWN0bHkgb25lIG9mIHRoZSBzdWl0ZXMgYnkgZXZhbHVhdGluZyB0aGUgZXhwcmVzc2lvbnMgb25lXG5ieSBvbmUgdW50aWwgb25lIGlzIGZvdW5kIHRvIGJlIHRydWUgKHNlZSBzZWN0aW9uICpCb29sZWFuIG9wZXJhdGlvbnMqXG5mb3IgdGhlIGRlZmluaXRpb24gb2YgdHJ1ZSBhbmQgZmFsc2UpOyB0aGVuIHRoYXQgc3VpdGUgaXMgZXhlY3V0ZWRcbihhbmQgbm8gb3RoZXIgcGFydCBvZiB0aGUgYGBpZmBgIHN0YXRlbWVudCBpcyBleGVjdXRlZCBvciBldmFsdWF0ZWQpLlxuSWYgYWxsIGV4cHJlc3Npb25zIGFyZSBmYWxzZSwgdGhlIHN1aXRlIG9mIHRoZSBgYGVsc2VgYCBjbGF1c2UsIGlmXG5wcmVzZW50LCBpcyBleGVjdXRlZC5cblxuXG5UaGUgYGB3aGlsZWBgIHN0YXRlbWVudFxuPT09PT09PT09PT09PT09PT09PT09PT1cblxuVGhlIGBgd2hpbGVgYCBzdGF0ZW1lbnQgaXMgdXNlZCBmb3IgcmVwZWF0ZWQgZXhlY3V0aW9uIGFzIGxvbmcgYXMgYW5cbmV4cHJlc3Npb24gaXMgdHJ1ZTpcblxuICAgd2hpbGVfc3RtdCA6Oj0gIndoaWxlIiBleHByZXNzaW9uICI6IiBzdWl0ZVxuICAgICAgICAgICAgICAgICAgWyJlbHNlIiAiOiIgc3VpdGVdXG5cblRoaXMgcmVwZWF0ZWRseSB0ZXN0cyB0aGUgZXhwcmVzc2lvbiBhbmQsIGlmIGl0IGlzIHRydWUsIGV4ZWN1dGVzIHRoZVxuZmlyc3Qgc3VpdGU7IGlmIHRoZSBleHByZXNzaW9uIGlzIGZhbHNlICh3aGljaCBtYXkgYmUgdGhlIGZpcnN0IHRpbWVcbml0IGlzIHRlc3RlZCkgdGhlIHN1aXRlIG9mIHRoZSBgYGVsc2VgYCBjbGF1c2UsIGlmIHByZXNlbnQsIGlzXG5leGVjdXRlZCBhbmQgdGhlIGxvb3AgdGVybWluYXRlcy5cblxuQSBgYGJyZWFrYGAgc3RhdGVtZW50IGV4ZWN1dGVkIGluIHRoZSBmaXJzdCBzdWl0ZSB0ZXJtaW5hdGVzIHRoZSBsb29wXG53aXRob3V0IGV4ZWN1dGluZyB0aGUgYGBlbHNlYGAgY2xhdXNlXCdzIHN1aXRlLiAgQSBgYGNvbnRpbnVlYGBcbnN0YXRlbWVudCBleGVjdXRlZCBpbiB0aGUgZmlyc3Qgc3VpdGUgc2tpcHMgdGhlIHJlc3Qgb2YgdGhlIHN1aXRlIGFuZFxuZ29lcyBiYWNrIHRvIHRlc3RpbmcgdGhlIGV4cHJlc3Npb24uXG5cblxuVGhlIGBgZm9yYGAgc3RhdGVtZW50XG49PT09PT09PT09PT09PT09PT09PT1cblxuVGhlIGBgZm9yYGAgc3RhdGVtZW50IGlzIHVzZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBlbGVtZW50cyBvZiBhXG5zZXF1ZW5jZSAoc3VjaCBhcyBhIHN0cmluZywgdHVwbGUgb3IgbGlzdCkgb3Igb3RoZXIgaXRlcmFibGUgb2JqZWN0OlxuXG4gICBmb3Jfc3RtdCA6Oj0gImZvciIgdGFyZ2V0X2xpc3QgImluIiBleHByZXNzaW9uX2xpc3QgIjoiIHN1aXRlXG4gICAgICAgICAgICAgICAgWyJlbHNlIiAiOiIgc3VpdGVdXG5cblRoZSBleHByZXNzaW9uIGxpc3QgaXMgZXZhbHVhdGVkIG9uY2U7IGl0IHNob3VsZCB5aWVsZCBhbiBpdGVyYWJsZVxub2JqZWN0LiAgQW4gaXRlcmF0b3IgaXMgY3JlYXRlZCBmb3IgdGhlIHJlc3VsdCBvZiB0aGVcbmBgZXhwcmVzc2lvbl9saXN0YGAuICBUaGUgc3VpdGUgaXMgdGhlbiBleGVjdXRlZCBvbmNlIGZvciBlYWNoIGl0ZW1cbnByb3ZpZGVkIGJ5IHRoZSBpdGVyYXRvciwgaW4gdGhlIG9yZGVyIG9mIGFzY2VuZGluZyBpbmRpY2VzLiAgRWFjaFxuaXRlbSBpbiB0dXJuIGlzIGFzc2lnbmVkIHRvIHRoZSB0YXJnZXQgbGlzdCB1c2luZyB0aGUgc3RhbmRhcmQgcnVsZXNcbmZvciBhc3NpZ25tZW50cyAoc2VlICpBc3NpZ25tZW50IHN0YXRlbWVudHMqKSwgYW5kIHRoZW4gdGhlIHN1aXRlIGlzXG5leGVjdXRlZC4gIFdoZW4gdGhlIGl0ZW1zIGFyZSBleGhhdXN0ZWQgKHdoaWNoIGlzIGltbWVkaWF0ZWx5IHdoZW4gdGhlXG5zZXF1ZW5jZSBpcyBlbXB0eSBvciBhbiBpdGVyYXRvciByYWlzZXMgYSBgYFN0b3BJdGVyYXRpb25gYFxuZXhjZXB0aW9uKSwgdGhlIHN1aXRlIGluIHRoZSBgYGVsc2VgYCBjbGF1c2UsIGlmIHByZXNlbnQsIGlzIGV4ZWN1dGVkLFxuYW5kIHRoZSBsb29wIHRlcm1pbmF0ZXMuXG5cbkEgYGBicmVha2BgIHN0YXRlbWVudCBleGVjdXRlZCBpbiB0aGUgZmlyc3Qgc3VpdGUgdGVybWluYXRlcyB0aGUgbG9vcFxud2l0aG91dCBleGVjdXRpbmcgdGhlIGBgZWxzZWBgIGNsYXVzZVwncyBzdWl0ZS4gIEEgYGBjb250aW51ZWBgXG5zdGF0ZW1lbnQgZXhlY3V0ZWQgaW4gdGhlIGZpcnN0IHN1aXRlIHNraXBzIHRoZSByZXN0IG9mIHRoZSBzdWl0ZSBhbmRcbmNvbnRpbnVlcyB3aXRoIHRoZSBuZXh0IGl0ZW0sIG9yIHdpdGggdGhlIGBgZWxzZWBgIGNsYXVzZSBpZiB0aGVyZSB3YXNcbm5vIG5leHQgaXRlbS5cblxuVGhlIHN1aXRlIG1heSBhc3NpZ24gdG8gdGhlIHZhcmlhYmxlKHMpIGluIHRoZSB0YXJnZXQgbGlzdDsgdGhpcyBkb2VzXG5ub3QgYWZmZWN0IHRoZSBuZXh0IGl0ZW0gYXNzaWduZWQgdG8gaXQuXG5cbk5hbWVzIGluIHRoZSB0YXJnZXQgbGlzdCBhcmUgbm90IGRlbGV0ZWQgd2hlbiB0aGUgbG9vcCBpcyBmaW5pc2hlZCxcbmJ1dCBpZiB0aGUgc2VxdWVuY2UgaXMgZW1wdHksIGl0IHdpbGwgbm90IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBhdCBhbGxcbmJ5IHRoZSBsb29wLiAgSGludDogdGhlIGJ1aWx0LWluIGZ1bmN0aW9uIGBgcmFuZ2UoKWBgIHJldHVybnMgYW5cbml0ZXJhdG9yIG9mIGludGVnZXJzIHN1aXRhYmxlIHRvIGVtdWxhdGUgdGhlIGVmZmVjdCBvZiBQYXNjYWxcJ3MgYGBmb3JcbmkgOj0gYSB0byBiIGRvYGA7IGUuZy4sIGBgbGlzdChyYW5nZSgzKSlgYCByZXR1cm5zIHRoZSBsaXN0IGBgWzAsIDEsXG4yXWBgLlxuXG5Ob3RlOiBUaGVyZSBpcyBhIHN1YnRsZXR5IHdoZW4gdGhlIHNlcXVlbmNlIGlzIGJlaW5nIG1vZGlmaWVkIGJ5IHRoZSBsb29wXG4gICh0aGlzIGNhbiBvbmx5IG9jY3VyIGZvciBtdXRhYmxlIHNlcXVlbmNlcywgaS5lLiBsaXN0cykuICBBblxuICBpbnRlcm5hbCBjb3VudGVyIGlzIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGljaCBpdGVtIGlzIHVzZWQgbmV4dCxcbiAgYW5kIHRoaXMgaXMgaW5jcmVtZW50ZWQgb24gZWFjaCBpdGVyYXRpb24uICBXaGVuIHRoaXMgY291bnRlciBoYXNcbiAgcmVhY2hlZCB0aGUgbGVuZ3RoIG9mIHRoZSBzZXF1ZW5jZSB0aGUgbG9vcCB0ZXJtaW5hdGVzLiAgVGhpcyBtZWFuc1xuICB0aGF0IGlmIHRoZSBzdWl0ZSBkZWxldGVzIHRoZSBjdXJyZW50IChvciBhIHByZXZpb3VzKSBpdGVtIGZyb20gdGhlXG4gIHNlcXVlbmNlLCB0aGUgbmV4dCBpdGVtIHdpbGwgYmUgc2tpcHBlZCAoc2luY2UgaXQgZ2V0cyB0aGUgaW5kZXggb2ZcbiAgdGhlIGN1cnJlbnQgaXRlbSB3aGljaCBoYXMgYWxyZWFkeSBiZWVuIHRyZWF0ZWQpLiAgTGlrZXdpc2UsIGlmIHRoZVxuICBzdWl0ZSBpbnNlcnRzIGFuIGl0ZW0gaW4gdGhlIHNlcXVlbmNlIGJlZm9yZSB0aGUgY3VycmVudCBpdGVtLCB0aGVcbiAgY3VycmVudCBpdGVtIHdpbGwgYmUgdHJlYXRlZCBhZ2FpbiB0aGUgbmV4dCB0aW1lIHRocm91Z2ggdGhlIGxvb3AuXG4gIFRoaXMgY2FuIGxlYWQgdG8gbmFzdHkgYnVncyB0aGF0IGNhbiBiZSBhdm9pZGVkIGJ5IG1ha2luZyBhXG4gIHRlbXBvcmFyeSBjb3B5IHVzaW5nIGEgc2xpY2Ugb2YgdGhlIHdob2xlIHNlcXVlbmNlLCBlLmcuLFxuXG4gICAgIGZvciB4IGluIGFbOl06XG4gICAgICAgICBpZiB4IDwgMDogYS5yZW1vdmUoeClcblxuXG5UaGUgYGB0cnlgYCBzdGF0ZW1lbnRcbj09PT09PT09PT09PT09PT09PT09PVxuXG5UaGUgYGB0cnlgYCBzdGF0ZW1lbnQgc3BlY2lmaWVzIGV4Y2VwdGlvbiBoYW5kbGVycyBhbmQvb3IgY2xlYW51cCBjb2RlXG5mb3IgYSBncm91cCBvZiBzdGF0ZW1lbnRzOlxuXG4gICB0cnlfc3RtdCAgOjo9IHRyeTFfc3RtdCB8IHRyeTJfc3RtdFxuICAgdHJ5MV9zdG10IDo6PSAidHJ5IiAiOiIgc3VpdGVcbiAgICAgICAgICAgICAgICAgKCJleGNlcHQiIFtleHByZXNzaW9uIFsiYXMiIHRhcmdldF1dICI6IiBzdWl0ZSkrXG4gICAgICAgICAgICAgICAgIFsiZWxzZSIgIjoiIHN1aXRlXVxuICAgICAgICAgICAgICAgICBbImZpbmFsbHkiICI6IiBzdWl0ZV1cbiAgIHRyeTJfc3RtdCA6Oj0gInRyeSIgIjoiIHN1aXRlXG4gICAgICAgICAgICAgICAgICJmaW5hbGx5IiAiOiIgc3VpdGVcblxuVGhlIGBgZXhjZXB0YGAgY2xhdXNlKHMpIHNwZWNpZnkgb25lIG9yIG1vcmUgZXhjZXB0aW9uIGhhbmRsZXJzLiBXaGVuXG5ubyBleGNlcHRpb24gb2NjdXJzIGluIHRoZSBgYHRyeWBgIGNsYXVzZSwgbm8gZXhjZXB0aW9uIGhhbmRsZXIgaXNcbmV4ZWN1dGVkLiBXaGVuIGFuIGV4Y2VwdGlvbiBvY2N1cnMgaW4gdGhlIGBgdHJ5YGAgc3VpdGUsIGEgc2VhcmNoIGZvclxuYW4gZXhjZXB0aW9uIGhhbmRsZXIgaXMgc3RhcnRlZC4gIFRoaXMgc2VhcmNoIGluc3BlY3RzIHRoZSBleGNlcHRcbmNsYXVzZXMgaW4gdHVybiB1bnRpbCBvbmUgaXMgZm91bmQgdGhhdCBtYXRjaGVzIHRoZSBleGNlcHRpb24uICBBblxuZXhwcmVzc2lvbi1sZXNzIGV4Y2VwdCBjbGF1c2UsIGlmIHByZXNlbnQsIG11c3QgYmUgbGFzdDsgaXQgbWF0Y2hlc1xuYW55IGV4Y2VwdGlvbi4gIEZvciBhbiBleGNlcHQgY2xhdXNlIHdpdGggYW4gZXhwcmVzc2lvbiwgdGhhdFxuZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQsIGFuZCB0aGUgY2xhdXNlIG1hdGNoZXMgdGhlIGV4Y2VwdGlvbiBpZiB0aGVcbnJlc3VsdGluZyBvYmplY3QgaXMgImNvbXBhdGlibGUiIHdpdGggdGhlIGV4Y2VwdGlvbi4gIEFuIG9iamVjdCBpc1xuY29tcGF0aWJsZSB3aXRoIGFuIGV4Y2VwdGlvbiBpZiBpdCBpcyB0aGUgY2xhc3Mgb3IgYSBiYXNlIGNsYXNzIG9mIHRoZVxuZXhjZXB0aW9uIG9iamVjdCBvciBhIHR1cGxlIGNvbnRhaW5pbmcgYW4gaXRlbSBjb21wYXRpYmxlIHdpdGggdGhlXG5leGNlcHRpb24uXG5cbklmIG5vIGV4Y2VwdCBjbGF1c2UgbWF0Y2hlcyB0aGUgZXhjZXB0aW9uLCB0aGUgc2VhcmNoIGZvciBhbiBleGNlcHRpb25cbmhhbmRsZXIgY29udGludWVzIGluIHRoZSBzdXJyb3VuZGluZyBjb2RlIGFuZCBvbiB0aGUgaW52b2NhdGlvbiBzdGFjay5cblsxXVxuXG5JZiB0aGUgZXZhbHVhdGlvbiBvZiBhbiBleHByZXNzaW9uIGluIHRoZSBoZWFkZXIgb2YgYW4gZXhjZXB0IGNsYXVzZVxucmFpc2VzIGFuIGV4Y2VwdGlvbiwgdGhlIG9yaWdpbmFsIHNlYXJjaCBmb3IgYSBoYW5kbGVyIGlzIGNhbmNlbGVkIGFuZFxuYSBzZWFyY2ggc3RhcnRzIGZvciB0aGUgbmV3IGV4Y2VwdGlvbiBpbiB0aGUgc3Vycm91bmRpbmcgY29kZSBhbmQgb25cbnRoZSBjYWxsIHN0YWNrIChpdCBpcyB0cmVhdGVkIGFzIGlmIHRoZSBlbnRpcmUgYGB0cnlgYCBzdGF0ZW1lbnRcbnJhaXNlZCB0aGUgZXhjZXB0aW9uKS5cblxuV2hlbiBhIG1hdGNoaW5nIGV4Y2VwdCBjbGF1c2UgaXMgZm91bmQsIHRoZSBleGNlcHRpb24gaXMgYXNzaWduZWQgdG9cbnRoZSB0YXJnZXQgc3BlY2lmaWVkIGFmdGVyIHRoZSBgYGFzYGAga2V5d29yZCBpbiB0aGF0IGV4Y2VwdCBjbGF1c2UsXG5pZiBwcmVzZW50LCBhbmQgdGhlIGV4Y2VwdCBjbGF1c2VcJ3Mgc3VpdGUgaXMgZXhlY3V0ZWQuICBBbGwgZXhjZXB0XG5jbGF1c2VzIG11c3QgaGF2ZSBhbiBleGVjdXRhYmxlIGJsb2NrLiAgV2hlbiB0aGUgZW5kIG9mIHRoaXMgYmxvY2sgaXNcbnJlYWNoZWQsIGV4ZWN1dGlvbiBjb250aW51ZXMgbm9ybWFsbHkgYWZ0ZXIgdGhlIGVudGlyZSB0cnkgc3RhdGVtZW50LlxuKFRoaXMgbWVhbnMgdGhhdCBpZiB0d28gbmVzdGVkIGhhbmRsZXJzIGV4aXN0IGZvciB0aGUgc2FtZSBleGNlcHRpb24sXG5hbmQgdGhlIGV4Y2VwdGlvbiBvY2N1cnMgaW4gdGhlIHRyeSBjbGF1c2Ugb2YgdGhlIGlubmVyIGhhbmRsZXIsIHRoZVxub3V0ZXIgaGFuZGxlciB3aWxsIG5vdCBoYW5kbGUgdGhlIGV4Y2VwdGlvbi4pXG5cbldoZW4gYW4gZXhjZXB0aW9uIGhhcyBiZWVuIGFzc2lnbmVkIHVzaW5nIGBgYXMgdGFyZ2V0YGAsIGl0IGlzIGNsZWFyZWRcbmF0IHRoZSBlbmQgb2YgdGhlIGV4Y2VwdCBjbGF1c2UuICBUaGlzIGlzIGFzIGlmXG5cbiAgIGV4Y2VwdCBFIGFzIE46XG4gICAgICAgZm9vXG5cbndhcyB0cmFuc2xhdGVkIHRvXG5cbiAgIGV4Y2VwdCBFIGFzIE46XG4gICAgICAgdHJ5OlxuICAgICAgICAgICBmb29cbiAgICAgICBmaW5hbGx5OlxuICAgICAgICAgICBkZWwgTlxuXG5UaGlzIG1lYW5zIHRoZSBleGNlcHRpb24gbXVzdCBiZSBhc3NpZ25lZCB0byBhIGRpZmZlcmVudCBuYW1lIHRvIGJlXG5hYmxlIHRvIHJlZmVyIHRvIGl0IGFmdGVyIHRoZSBleGNlcHQgY2xhdXNlLiAgRXhjZXB0aW9ucyBhcmUgY2xlYXJlZFxuYmVjYXVzZSB3aXRoIHRoZSB0cmFjZWJhY2sgYXR0YWNoZWQgdG8gdGhlbSwgdGhleSBmb3JtIGEgcmVmZXJlbmNlXG5jeWNsZSB3aXRoIHRoZSBzdGFjayBmcmFtZSwga2VlcGluZyBhbGwgbG9jYWxzIGluIHRoYXQgZnJhbWUgYWxpdmVcbnVudGlsIHRoZSBuZXh0IGdhcmJhZ2UgY29sbGVjdGlvbiBvY2N1cnMuXG5cbkJlZm9yZSBhbiBleGNlcHQgY2xhdXNlXCdzIHN1aXRlIGlzIGV4ZWN1dGVkLCBkZXRhaWxzIGFib3V0IHRoZVxuZXhjZXB0aW9uIGFyZSBzdG9yZWQgaW4gdGhlIGBgc3lzYGAgbW9kdWxlIGFuZCBjYW4gYmUgYWNjZXNzIHZpYVxuYGBzeXMuZXhjX2luZm8oKWBgLiBgYHN5cy5leGNfaW5mbygpYGAgcmV0dXJucyBhIDMtdHVwbGUgY29uc2lzdGluZyBvZlxudGhlIGV4Y2VwdGlvbiBjbGFzcywgdGhlIGV4Y2VwdGlvbiBpbnN0YW5jZSBhbmQgYSB0cmFjZWJhY2sgb2JqZWN0XG4oc2VlIHNlY3Rpb24gKlRoZSBzdGFuZGFyZCB0eXBlIGhpZXJhcmNoeSopIGlkZW50aWZ5aW5nIHRoZSBwb2ludCBpblxudGhlIHByb2dyYW0gd2hlcmUgdGhlIGV4Y2VwdGlvbiBvY2N1cnJlZC4gIGBgc3lzLmV4Y19pbmZvKClgYCB2YWx1ZXNcbmFyZSByZXN0b3JlZCB0byB0aGVpciBwcmV2aW91cyB2YWx1ZXMgKGJlZm9yZSB0aGUgY2FsbCkgd2hlbiByZXR1cm5pbmdcbmZyb20gYSBmdW5jdGlvbiB0aGF0IGhhbmRsZWQgYW4gZXhjZXB0aW9uLlxuXG5UaGUgb3B0aW9uYWwgYGBlbHNlYGAgY2xhdXNlIGlzIGV4ZWN1dGVkIGlmIGFuZCB3aGVuIGNvbnRyb2wgZmxvd3Mgb2ZmXG50aGUgZW5kIG9mIHRoZSBgYHRyeWBgIGNsYXVzZS4gWzJdIEV4Y2VwdGlvbnMgaW4gdGhlIGBgZWxzZWBgIGNsYXVzZVxuYXJlIG5vdCBoYW5kbGVkIGJ5IHRoZSBwcmVjZWRpbmcgYGBleGNlcHRgYCBjbGF1c2VzLlxuXG5JZiBgYGZpbmFsbHlgYCBpcyBwcmVzZW50LCBpdCBzcGVjaWZpZXMgYSBcJ2NsZWFudXBcJyBoYW5kbGVyLiAgVGhlXG5gYHRyeWBgIGNsYXVzZSBpcyBleGVjdXRlZCwgaW5jbHVkaW5nIGFueSBgYGV4Y2VwdGBgIGFuZCBgYGVsc2VgYFxuY2xhdXNlcy4gIElmIGFuIGV4Y2VwdGlvbiBvY2N1cnMgaW4gYW55IG9mIHRoZSBjbGF1c2VzIGFuZCBpcyBub3RcbmhhbmRsZWQsIHRoZSBleGNlcHRpb24gaXMgdGVtcG9yYXJpbHkgc2F2ZWQuIFRoZSBgYGZpbmFsbHlgYCBjbGF1c2UgaXNcbmV4ZWN1dGVkLiAgSWYgdGhlcmUgaXMgYSBzYXZlZCBleGNlcHRpb24sIGl0IGlzIHJlLXJhaXNlZCBhdCB0aGUgZW5kXG5vZiB0aGUgYGBmaW5hbGx5YGAgY2xhdXNlLiBJZiB0aGUgYGBmaW5hbGx5YGAgY2xhdXNlIHJhaXNlcyBhbm90aGVyXG5leGNlcHRpb24gb3IgZXhlY3V0ZXMgYSBgYHJldHVybmBgIG9yIGBgYnJlYWtgYCBzdGF0ZW1lbnQsIHRoZSBzYXZlZFxuZXhjZXB0aW9uIGlzIHNldCBhcyB0aGUgY29udGV4dCBvZiB0aGUgbmV3IGV4Y2VwdGlvbi4gIFRoZSBleGNlcHRpb25cbmluZm9ybWF0aW9uIGlzIG5vdCBhdmFpbGFibGUgdG8gdGhlIHByb2dyYW0gZHVyaW5nIGV4ZWN1dGlvbiBvZiB0aGVcbmBgZmluYWxseWBgIGNsYXVzZS5cblxuV2hlbiBhIGBgcmV0dXJuYGAsIGBgYnJlYWtgYCBvciBgYGNvbnRpbnVlYGAgc3RhdGVtZW50IGlzIGV4ZWN1dGVkIGluXG50aGUgYGB0cnlgYCBzdWl0ZSBvZiBhIGBgdHJ5YGAuLi5gYGZpbmFsbHlgYCBzdGF0ZW1lbnQsIHRoZVxuYGBmaW5hbGx5YGAgY2xhdXNlIGlzIGFsc28gZXhlY3V0ZWQgXCdvbiB0aGUgd2F5IG91dC5cJyBBIGBgY29udGludWVgYFxuc3RhdGVtZW50IGlzIGlsbGVnYWwgaW4gdGhlIGBgZmluYWxseWBgIGNsYXVzZS4gKFRoZSByZWFzb24gaXMgYVxucHJvYmxlbSB3aXRoIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIC0tLSB0aGlzIHJlc3RyaWN0aW9uIG1heSBiZVxubGlmdGVkIGluIHRoZSBmdXR1cmUpLlxuXG5BZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIGV4Y2VwdGlvbnMgY2FuIGJlIGZvdW5kIGluIHNlY3Rpb25cbipFeGNlcHRpb25zKiwgYW5kIGluZm9ybWF0aW9uIG9uIHVzaW5nIHRoZSBgYHJhaXNlYGAgc3RhdGVtZW50IHRvXG5nZW5lcmF0ZSBleGNlcHRpb25zIG1heSBiZSBmb3VuZCBpbiBzZWN0aW9uICpUaGUgcmFpc2Ugc3RhdGVtZW50Ki5cblxuXG5UaGUgYGB3aXRoYGAgc3RhdGVtZW50XG49PT09PT09PT09PT09PT09PT09PT09XG5cblRoZSBgYHdpdGhgYCBzdGF0ZW1lbnQgaXMgdXNlZCB0byB3cmFwIHRoZSBleGVjdXRpb24gb2YgYSBibG9jayB3aXRoXG5tZXRob2RzIGRlZmluZWQgYnkgYSBjb250ZXh0IG1hbmFnZXIgKHNlZSBzZWN0aW9uICpXaXRoIFN0YXRlbWVudFxuQ29udGV4dCBNYW5hZ2VycyopLiBUaGlzIGFsbG93cyBjb21tb25cbmBgdHJ5YGAuLi5gYGV4Y2VwdGBgLi4uYGBmaW5hbGx5YGAgdXNhZ2UgcGF0dGVybnMgdG8gYmUgZW5jYXBzdWxhdGVkXG5mb3IgY29udmVuaWVudCByZXVzZS5cblxuICAgd2l0aF9zdG10IDo6PSAid2l0aCIgd2l0aF9pdGVtICgiLCIgd2l0aF9pdGVtKSogIjoiIHN1aXRlXG4gICB3aXRoX2l0ZW0gOjo9IGV4cHJlc3Npb24gWyJhcyIgdGFyZ2V0XVxuXG5UaGUgZXhlY3V0aW9uIG9mIHRoZSBgYHdpdGhgYCBzdGF0ZW1lbnQgd2l0aCBvbmUgIml0ZW0iIHByb2NlZWRzIGFzXG5mb2xsb3dzOlxuXG4xLiBUaGUgY29udGV4dCBleHByZXNzaW9uICh0aGUgZXhwcmVzc2lvbiBnaXZlbiBpbiB0aGUgYGB3aXRoX2l0ZW1gYClcbiAgIGlzIGV2YWx1YXRlZCB0byBvYnRhaW4gYSBjb250ZXh0IG1hbmFnZXIuXG5cbjIuIFRoZSBjb250ZXh0IG1hbmFnZXJcJ3MgYGBfX2V4aXRfXygpYGAgaXMgbG9hZGVkIGZvciBsYXRlciB1c2UuXG5cbjMuIFRoZSBjb250ZXh0IG1hbmFnZXJcJ3MgYGBfX2VudGVyX18oKWBgIG1ldGhvZCBpcyBpbnZva2VkLlxuXG40LiBJZiBhIHRhcmdldCB3YXMgaW5jbHVkZWQgaW4gdGhlIGBgd2l0aGBgIHN0YXRlbWVudCwgdGhlIHJldHVyblxuICAgdmFsdWUgZnJvbSBgYF9fZW50ZXJfXygpYGAgaXMgYXNzaWduZWQgdG8gaXQuXG5cbiAgIE5vdGU6IFRoZSBgYHdpdGhgYCBzdGF0ZW1lbnQgZ3VhcmFudGVlcyB0aGF0IGlmIHRoZSBgYF9fZW50ZXJfXygpYGBcbiAgICAgbWV0aG9kIHJldHVybnMgd2l0aG91dCBhbiBlcnJvciwgdGhlbiBgYF9fZXhpdF9fKClgYCB3aWxsIGFsd2F5c1xuICAgICBiZSBjYWxsZWQuIFRodXMsIGlmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgdGhlIGFzc2lnbm1lbnQgdG8gdGhlXG4gICAgIHRhcmdldCBsaXN0LCBpdCB3aWxsIGJlIHRyZWF0ZWQgdGhlIHNhbWUgYXMgYW4gZXJyb3Igb2NjdXJyaW5nXG4gICAgIHdpdGhpbiB0aGUgc3VpdGUgd291bGQgYmUuIFNlZSBzdGVwIDYgYmVsb3cuXG5cbjUuIFRoZSBzdWl0ZSBpcyBleGVjdXRlZC5cblxuNi4gVGhlIGNvbnRleHQgbWFuYWdlclwncyBgYF9fZXhpdF9fKClgYCBtZXRob2QgaXMgaW52b2tlZC4gIElmIGFuXG4gICBleGNlcHRpb24gY2F1c2VkIHRoZSBzdWl0ZSB0byBiZSBleGl0ZWQsIGl0cyB0eXBlLCB2YWx1ZSwgYW5kXG4gICB0cmFjZWJhY2sgYXJlIHBhc3NlZCBhcyBhcmd1bWVudHMgdG8gYGBfX2V4aXRfXygpYGAuIE90aGVyd2lzZSxcbiAgIHRocmVlIGBgTm9uZWBgIGFyZ3VtZW50cyBhcmUgc3VwcGxpZWQuXG5cbiAgIElmIHRoZSBzdWl0ZSB3YXMgZXhpdGVkIGR1ZSB0byBhbiBleGNlcHRpb24sIGFuZCB0aGUgcmV0dXJuIHZhbHVlXG4gICBmcm9tIHRoZSBgYF9fZXhpdF9fKClgYCBtZXRob2Qgd2FzIGZhbHNlLCB0aGUgZXhjZXB0aW9uIGlzXG4gICByZXJhaXNlZC4gIElmIHRoZSByZXR1cm4gdmFsdWUgd2FzIHRydWUsIHRoZSBleGNlcHRpb24gaXNcbiAgIHN1cHByZXNzZWQsIGFuZCBleGVjdXRpb24gY29udGludWVzIHdpdGggdGhlIHN0YXRlbWVudCBmb2xsb3dpbmdcbiAgIHRoZSBgYHdpdGhgYCBzdGF0ZW1lbnQuXG5cbiAgIElmIHRoZSBzdWl0ZSB3YXMgZXhpdGVkIGZvciBhbnkgcmVhc29uIG90aGVyIHRoYW4gYW4gZXhjZXB0aW9uLCB0aGVcbiAgIHJldHVybiB2YWx1ZSBmcm9tIGBgX19leGl0X18oKWBgIGlzIGlnbm9yZWQsIGFuZCBleGVjdXRpb24gcHJvY2VlZHNcbiAgIGF0IHRoZSBub3JtYWwgbG9jYXRpb24gZm9yIHRoZSBraW5kIG9mIGV4aXQgdGhhdCB3YXMgdGFrZW4uXG5cbldpdGggbW9yZSB0aGFuIG9uZSBpdGVtLCB0aGUgY29udGV4dCBtYW5hZ2VycyBhcmUgcHJvY2Vzc2VkIGFzIGlmXG5tdWx0aXBsZSBgYHdpdGhgYCBzdGF0ZW1lbnRzIHdlcmUgbmVzdGVkOlxuXG4gICB3aXRoIEEoKSBhcyBhLCBCKCkgYXMgYjpcbiAgICAgICBzdWl0ZVxuXG5pcyBlcXVpdmFsZW50IHRvXG5cbiAgIHdpdGggQSgpIGFzIGE6XG4gICAgICAgd2l0aCBCKCkgYXMgYjpcbiAgICAgICAgICAgc3VpdGVcblxuQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMTogU3VwcG9ydCBmb3IgbXVsdGlwbGUgY29udGV4dCBleHByZXNzaW9ucy5cblxuU2VlIGFsc286XG5cbiAgICoqUEVQIDAzNDMqKiAtIFRoZSAid2l0aCIgc3RhdGVtZW50XG4gICAgICBUaGUgc3BlY2lmaWNhdGlvbiwgYmFja2dyb3VuZCwgYW5kIGV4YW1wbGVzIGZvciB0aGUgUHl0aG9uXG4gICAgICBgYHdpdGhgYCBzdGF0ZW1lbnQuXG5cblxuRnVuY3Rpb24gZGVmaW5pdGlvbnNcbj09PT09PT09PT09PT09PT09PT09XG5cbkEgZnVuY3Rpb24gZGVmaW5pdGlvbiBkZWZpbmVzIGEgdXNlci1kZWZpbmVkIGZ1bmN0aW9uIG9iamVjdCAoc2VlXG5zZWN0aW9uICpUaGUgc3RhbmRhcmQgdHlwZSBoaWVyYXJjaHkqKTpcblxuICAgZnVuY2RlZiAgICAgICAgOjo9IFtkZWNvcmF0b3JzXSAiZGVmIiBmdW5jbmFtZSAiKCIgW3BhcmFtZXRlcl9saXN0XSAiKSIgWyItPiIgZXhwcmVzc2lvbl0gIjoiIHN1aXRlXG4gICBkZWNvcmF0b3JzICAgICA6Oj0gZGVjb3JhdG9yK1xuICAgZGVjb3JhdG9yICAgICAgOjo9ICJAIiBkb3R0ZWRfbmFtZSBbIigiIFtwYXJhbWV0ZXJfbGlzdCBbIiwiXV0gIikiXSBORVdMSU5FXG4gICBkb3R0ZWRfbmFtZSAgICA6Oj0gaWRlbnRpZmllciAoIi4iIGlkZW50aWZpZXIpKlxuICAgcGFyYW1ldGVyX2xpc3QgOjo9IChkZWZwYXJhbWV0ZXIgIiwiKSpcbiAgICAgICAgICAgICAgICAgICAgICAoICAiKiIgW3BhcmFtZXRlcl0gKCIsIiBkZWZwYXJhbWV0ZXIpKlxuICAgICAgICAgICAgICAgICAgICAgIFssICIqKiIgcGFyYW1ldGVyXVxuICAgICAgICAgICAgICAgICAgICAgIHwgIioqIiBwYXJhbWV0ZXJcbiAgICAgICAgICAgICAgICAgICAgICB8IGRlZnBhcmFtZXRlciBbIiwiXSApXG4gICBwYXJhbWV0ZXIgICAgICA6Oj0gaWRlbnRpZmllciBbIjoiIGV4cHJlc3Npb25dXG4gICBkZWZwYXJhbWV0ZXIgICA6Oj0gcGFyYW1ldGVyIFsiPSIgZXhwcmVzc2lvbl1cbiAgIGZ1bmNuYW1lICAgICAgIDo6PSBpZGVudGlmaWVyXG5cbkEgZnVuY3Rpb24gZGVmaW5pdGlvbiBpcyBhbiBleGVjdXRhYmxlIHN0YXRlbWVudC4gIEl0cyBleGVjdXRpb24gYmluZHNcbnRoZSBmdW5jdGlvbiBuYW1lIGluIHRoZSBjdXJyZW50IGxvY2FsIG5hbWVzcGFjZSB0byBhIGZ1bmN0aW9uIG9iamVjdFxuKGEgd3JhcHBlciBhcm91bmQgdGhlIGV4ZWN1dGFibGUgY29kZSBmb3IgdGhlIGZ1bmN0aW9uKS4gIFRoaXNcbmZ1bmN0aW9uIG9iamVjdCBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBnbG9iYWwgbmFtZXNwYWNlXG5hcyB0aGUgZ2xvYmFsIG5hbWVzcGFjZSB0byBiZSB1c2VkIHdoZW4gdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZC5cblxuVGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gZG9lcyBub3QgZXhlY3V0ZSB0aGUgZnVuY3Rpb24gYm9keTsgdGhpcyBnZXRzXG5leGVjdXRlZCBvbmx5IHdoZW4gdGhlIGZ1bmN0aW9uIGlzIGNhbGxlZC4gWzNdXG5cbkEgZnVuY3Rpb24gZGVmaW5pdGlvbiBtYXkgYmUgd3JhcHBlZCBieSBvbmUgb3IgbW9yZSAqZGVjb3JhdG9yKlxuZXhwcmVzc2lvbnMuIERlY29yYXRvciBleHByZXNzaW9ucyBhcmUgZXZhbHVhdGVkIHdoZW4gdGhlIGZ1bmN0aW9uIGlzXG5kZWZpbmVkLCBpbiB0aGUgc2NvcGUgdGhhdCBjb250YWlucyB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbi4gIFRoZVxucmVzdWx0IG11c3QgYmUgYSBjYWxsYWJsZSwgd2hpY2ggaXMgaW52b2tlZCB3aXRoIHRoZSBmdW5jdGlvbiBvYmplY3RcbmFzIHRoZSBvbmx5IGFyZ3VtZW50LiBUaGUgcmV0dXJuZWQgdmFsdWUgaXMgYm91bmQgdG8gdGhlIGZ1bmN0aW9uIG5hbWVcbmluc3RlYWQgb2YgdGhlIGZ1bmN0aW9uIG9iamVjdC4gIE11bHRpcGxlIGRlY29yYXRvcnMgYXJlIGFwcGxpZWQgaW5cbm5lc3RlZCBmYXNoaW9uLiBGb3IgZXhhbXBsZSwgdGhlIGZvbGxvd2luZyBjb2RlXG5cbiAgIEBmMShhcmcpXG4gICBAZjJcbiAgIGRlZiBmdW5jKCk6IHBhc3NcblxuaXMgZXF1aXZhbGVudCB0b1xuXG4gICBkZWYgZnVuYygpOiBwYXNzXG4gICBmdW5jID0gZjEoYXJnKShmMihmdW5jKSlcblxuV2hlbiBvbmUgb3IgbW9yZSBwYXJhbWV0ZXJzIGhhdmUgdGhlIGZvcm0gKnBhcmFtZXRlciogYGA9YGBcbipleHByZXNzaW9uKiwgdGhlIGZ1bmN0aW9uIGlzIHNhaWQgdG8gaGF2ZSAiZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzLiJcbkZvciBhIHBhcmFtZXRlciB3aXRoIGEgZGVmYXVsdCB2YWx1ZSwgdGhlIGNvcnJlc3BvbmRpbmcgYXJndW1lbnQgbWF5XG5iZSBvbWl0dGVkIGZyb20gYSBjYWxsLCBpbiB3aGljaCBjYXNlIHRoZSBwYXJhbWV0ZXJcJ3MgZGVmYXVsdCB2YWx1ZSBpc1xuc3Vic3RpdHV0ZWQuICBJZiBhIHBhcmFtZXRlciBoYXMgYSBkZWZhdWx0IHZhbHVlLCBhbGwgZm9sbG93aW5nXG5wYXJhbWV0ZXJzIHVwIHVudGlsIHRoZSAiYGAqYGAiIG11c3QgYWxzbyBoYXZlIGEgZGVmYXVsdCB2YWx1ZSAtLS1cbnRoaXMgaXMgYSBzeW50YWN0aWMgcmVzdHJpY3Rpb24gdGhhdCBpcyBub3QgZXhwcmVzc2VkIGJ5IHRoZSBncmFtbWFyLlxuXG4qKkRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlcyBhcmUgZXZhbHVhdGVkIHdoZW4gdGhlIGZ1bmN0aW9uIGRlZmluaXRpb25cbmlzIGV4ZWN1dGVkLioqIFRoaXMgbWVhbnMgdGhhdCB0aGUgZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgb25jZSwgd2hlblxudGhlIGZ1bmN0aW9uIGlzIGRlZmluZWQsIGFuZCB0aGF0IHRoZSBzYW1lICJwcmUtY29tcHV0ZWQiIHZhbHVlIGlzXG51c2VkIGZvciBlYWNoIGNhbGwuICBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgd2hlbiBhXG5kZWZhdWx0IHBhcmFtZXRlciBpcyBhIG11dGFibGUgb2JqZWN0LCBzdWNoIGFzIGEgbGlzdCBvciBhIGRpY3Rpb25hcnk6XG5pZiB0aGUgZnVuY3Rpb24gbW9kaWZpZXMgdGhlIG9iamVjdCAoZS5nLiBieSBhcHBlbmRpbmcgYW4gaXRlbSB0byBhXG5saXN0KSwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgaW4gZWZmZWN0IG1vZGlmaWVkLiBUaGlzIGlzIGdlbmVyYWxseSBub3RcbndoYXQgd2FzIGludGVuZGVkLiAgQSB3YXkgYXJvdW5kIHRoaXMgaXMgdG8gdXNlIGBgTm9uZWBgIGFzIHRoZVxuZGVmYXVsdCwgYW5kIGV4cGxpY2l0bHkgdGVzdCBmb3IgaXQgaW4gdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uLCBlLmcuOlxuXG4gICBkZWYgd2hhdHNfb25fdGhlX3RlbGx5KHBlbmd1aW49Tm9uZSk6XG4gICAgICAgaWYgcGVuZ3VpbiBpcyBOb25lOlxuICAgICAgICAgICBwZW5ndWluID0gW11cbiAgICAgICBwZW5ndWluLmFwcGVuZCgicHJvcGVydHkgb2YgdGhlIHpvbyIpXG4gICAgICAgcmV0dXJuIHBlbmd1aW5cblxuRnVuY3Rpb24gY2FsbCBzZW1hbnRpY3MgYXJlIGRlc2NyaWJlZCBpbiBtb3JlIGRldGFpbCBpbiBzZWN0aW9uXG4qQ2FsbHMqLiBBIGZ1bmN0aW9uIGNhbGwgYWx3YXlzIGFzc2lnbnMgdmFsdWVzIHRvIGFsbCBwYXJhbWV0ZXJzXG5tZW50aW9uZWQgaW4gdGhlIHBhcmFtZXRlciBsaXN0LCBlaXRoZXIgZnJvbSBwb3NpdGlvbiBhcmd1bWVudHMsIGZyb21cbmtleXdvcmQgYXJndW1lbnRzLCBvciBmcm9tIGRlZmF1bHQgdmFsdWVzLiAgSWYgdGhlIGZvcm1cbiJgYCppZGVudGlmaWVyYGAiIGlzIHByZXNlbnQsIGl0IGlzIGluaXRpYWxpemVkIHRvIGEgdHVwbGUgcmVjZWl2aW5nXG5hbnkgZXhjZXNzIHBvc2l0aW9uYWwgcGFyYW1ldGVycywgZGVmYXVsdGluZyB0byB0aGUgZW1wdHkgdHVwbGUuICBJZlxudGhlIGZvcm0gImBgKippZGVudGlmaWVyYGAiIGlzIHByZXNlbnQsIGl0IGlzIGluaXRpYWxpemVkIHRvIGEgbmV3XG5kaWN0aW9uYXJ5IHJlY2VpdmluZyBhbnkgZXhjZXNzIGtleXdvcmQgYXJndW1lbnRzLCBkZWZhdWx0aW5nIHRvIGEgbmV3XG5lbXB0eSBkaWN0aW9uYXJ5LiBQYXJhbWV0ZXJzIGFmdGVyICJgYCpgYCIgb3IgImBgKmlkZW50aWZpZXJgYCIgYXJlXG5rZXl3b3JkLW9ubHkgcGFyYW1ldGVycyBhbmQgbWF5IG9ubHkgYmUgcGFzc2VkIHVzZWQga2V5d29yZCBhcmd1bWVudHMuXG5cblBhcmFtZXRlcnMgbWF5IGhhdmUgYW5ub3RhdGlvbnMgb2YgdGhlIGZvcm0gImBgOiBleHByZXNzaW9uYGAiXG5mb2xsb3dpbmcgdGhlIHBhcmFtZXRlciBuYW1lLiAgQW55IHBhcmFtZXRlciBtYXkgaGF2ZSBhbiBhbm5vdGF0aW9uXG5ldmVuIHRob3NlIG9mIHRoZSBmb3JtIGBgKmlkZW50aWZpZXJgYCBvciBgYCoqaWRlbnRpZmllcmBgLiAgRnVuY3Rpb25zXG5tYXkgaGF2ZSAicmV0dXJuIiBhbm5vdGF0aW9uIG9mIHRoZSBmb3JtICJgYC0+IGV4cHJlc3Npb25gYCIgYWZ0ZXIgdGhlXG5wYXJhbWV0ZXIgbGlzdC4gIFRoZXNlIGFubm90YXRpb25zIGNhbiBiZSBhbnkgdmFsaWQgUHl0aG9uIGV4cHJlc3Npb25cbmFuZCBhcmUgZXZhbHVhdGVkIHdoZW4gdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gaXMgZXhlY3V0ZWQuXG5Bbm5vdGF0aW9ucyBtYXkgYmUgZXZhbHVhdGVkIGluIGEgZGlmZmVyZW50IG9yZGVyIHRoYW4gdGhleSBhcHBlYXIgaW5cbnRoZSBzb3VyY2UgY29kZS4gIFRoZSBwcmVzZW5jZSBvZiBhbm5vdGF0aW9ucyBkb2VzIG5vdCBjaGFuZ2UgdGhlXG5zZW1hbnRpY3Mgb2YgYSBmdW5jdGlvbi4gIFRoZSBhbm5vdGF0aW9uIHZhbHVlcyBhcmUgYXZhaWxhYmxlIGFzXG52YWx1ZXMgb2YgYSBkaWN0aW9uYXJ5IGtleWVkIGJ5IHRoZSBwYXJhbWV0ZXJzXCcgbmFtZXMgaW4gdGhlXG5gYF9fYW5ub3RhdGlvbnNfX2BgIGF0dHJpYnV0ZSBvZiB0aGUgZnVuY3Rpb24gb2JqZWN0LlxuXG5JdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGNyZWF0ZSBhbm9ueW1vdXMgZnVuY3Rpb25zIChmdW5jdGlvbnMgbm90IGJvdW5kXG50byBhIG5hbWUpLCBmb3IgaW1tZWRpYXRlIHVzZSBpbiBleHByZXNzaW9ucy4gIFRoaXMgdXNlcyBsYW1iZGEgZm9ybXMsXG5kZXNjcmliZWQgaW4gc2VjdGlvbiAqTGFtYmRhcyouICBOb3RlIHRoYXQgdGhlIGxhbWJkYSBmb3JtIGlzIG1lcmVseSBhXG5zaG9ydGhhbmQgZm9yIGEgc2ltcGxpZmllZCBmdW5jdGlvbiBkZWZpbml0aW9uOyBhIGZ1bmN0aW9uIGRlZmluZWQgaW5cbmEgImBgZGVmYGAiIHN0YXRlbWVudCBjYW4gYmUgcGFzc2VkIGFyb3VuZCBvciBhc3NpZ25lZCB0byBhbm90aGVyIG5hbWVcbmp1c3QgbGlrZSBhIGZ1bmN0aW9uIGRlZmluZWQgYnkgYSBsYW1iZGEgZm9ybS4gIFRoZSAiYGBkZWZgYCIgZm9ybSBpc1xuYWN0dWFsbHkgbW9yZSBwb3dlcmZ1bCBzaW5jZSBpdCBhbGxvd3MgdGhlIGV4ZWN1dGlvbiBvZiBtdWx0aXBsZVxuc3RhdGVtZW50cyBhbmQgYW5ub3RhdGlvbnMuXG5cbioqUHJvZ3JhbW1lclwncyBub3RlOioqIEZ1bmN0aW9ucyBhcmUgZmlyc3QtY2xhc3Mgb2JqZWN0cy4gIEEgImBgZGVmYGAiXG5mb3JtIGV4ZWN1dGVkIGluc2lkZSBhIGZ1bmN0aW9uIGRlZmluaXRpb24gZGVmaW5lcyBhIGxvY2FsIGZ1bmN0aW9uXG50aGF0IGNhbiBiZSByZXR1cm5lZCBvciBwYXNzZWQgYXJvdW5kLiAgRnJlZSB2YXJpYWJsZXMgdXNlZCBpbiB0aGVcbm5lc3RlZCBmdW5jdGlvbiBjYW4gYWNjZXNzIHRoZSBsb2NhbCB2YXJpYWJsZXMgb2YgdGhlIGZ1bmN0aW9uXG5jb250YWluaW5nIHRoZSBkZWYuICBTZWUgc2VjdGlvbiAqTmFtaW5nIGFuZCBiaW5kaW5nKiBmb3IgZGV0YWlscy5cblxuU2VlIGFsc286XG5cbiAgICoqUEVQIDMxMDcqKiAtIEZ1bmN0aW9uIEFubm90YXRpb25zXG4gICAgICBUaGUgb3JpZ2luYWwgc3BlY2lmaWNhdGlvbiBmb3IgZnVuY3Rpb24gYW5ub3RhdGlvbnMuXG5cblxuQ2xhc3MgZGVmaW5pdGlvbnNcbj09PT09PT09PT09PT09PT09XG5cbkEgY2xhc3MgZGVmaW5pdGlvbiBkZWZpbmVzIGEgY2xhc3Mgb2JqZWN0IChzZWUgc2VjdGlvbiAqVGhlIHN0YW5kYXJkXG50eXBlIGhpZXJhcmNoeSopOlxuXG4gICBjbGFzc2RlZiAgICA6Oj0gW2RlY29yYXRvcnNdICJjbGFzcyIgY2xhc3NuYW1lIFtpbmhlcml0YW5jZV0gIjoiIHN1aXRlXG4gICBpbmhlcml0YW5jZSA6Oj0gIigiIFtwYXJhbWV0ZXJfbGlzdF0gIikiXG4gICBjbGFzc25hbWUgICA6Oj0gaWRlbnRpZmllclxuXG5BIGNsYXNzIGRlZmluaXRpb24gaXMgYW4gZXhlY3V0YWJsZSBzdGF0ZW1lbnQuICBUaGUgaW5oZXJpdGFuY2UgbGlzdFxudXN1YWxseSBnaXZlcyBhIGxpc3Qgb2YgYmFzZSBjbGFzc2VzIChzZWUgKkN1c3RvbWl6aW5nIGNsYXNzIGNyZWF0aW9uKlxuZm9yIG1vcmUgYWR2YW5jZWQgdXNlcyksIHNvIGVhY2ggaXRlbSBpbiB0aGUgbGlzdCBzaG91bGQgZXZhbHVhdGUgdG8gYVxuY2xhc3Mgb2JqZWN0IHdoaWNoIGFsbG93cyBzdWJjbGFzc2luZy4gIENsYXNzZXMgd2l0aG91dCBhbiBpbmhlcml0YW5jZVxubGlzdCBpbmhlcml0LCBieSBkZWZhdWx0LCBmcm9tIHRoZSBiYXNlIGNsYXNzIGBgb2JqZWN0YGA7IGhlbmNlLFxuXG4gICBjbGFzcyBGb286XG4gICAgICAgcGFzc1xuXG5pcyBlcXVpdmFsZW50IHRvXG5cbiAgIGNsYXNzIEZvbyhvYmplY3QpOlxuICAgICAgIHBhc3NcblxuVGhlIGNsYXNzXCdzIHN1aXRlIGlzIHRoZW4gZXhlY3V0ZWQgaW4gYSBuZXcgZXhlY3V0aW9uIGZyYW1lIChzZWVcbipOYW1pbmcgYW5kIGJpbmRpbmcqKSwgdXNpbmcgYSBuZXdseSBjcmVhdGVkIGxvY2FsIG5hbWVzcGFjZSBhbmQgdGhlXG5vcmlnaW5hbCBnbG9iYWwgbmFtZXNwYWNlLiAoVXN1YWxseSwgdGhlIHN1aXRlIGNvbnRhaW5zIG1vc3RseVxuZnVuY3Rpb24gZGVmaW5pdGlvbnMuKSAgV2hlbiB0aGUgY2xhc3NcJ3Mgc3VpdGUgZmluaXNoZXMgZXhlY3V0aW9uLCBpdHNcbmV4ZWN1dGlvbiBmcmFtZSBpcyBkaXNjYXJkZWQgYnV0IGl0cyBsb2NhbCBuYW1lc3BhY2UgaXMgc2F2ZWQuIFs0XSBBXG5jbGFzcyBvYmplY3QgaXMgdGhlbiBjcmVhdGVkIHVzaW5nIHRoZSBpbmhlcml0YW5jZSBsaXN0IGZvciB0aGUgYmFzZVxuY2xhc3NlcyBhbmQgdGhlIHNhdmVkIGxvY2FsIG5hbWVzcGFjZSBmb3IgdGhlIGF0dHJpYnV0ZSBkaWN0aW9uYXJ5LlxuVGhlIGNsYXNzIG5hbWUgaXMgYm91bmQgdG8gdGhpcyBjbGFzcyBvYmplY3QgaW4gdGhlIG9yaWdpbmFsIGxvY2FsXG5uYW1lc3BhY2UuXG5cbkNsYXNzIGNyZWF0aW9uIGNhbiBiZSBjdXN0b21pemVkIGhlYXZpbHkgdXNpbmcgKm1ldGFjbGFzc2VzKi5cblxuQ2xhc3NlcyBjYW4gYWxzbyBiZSBkZWNvcmF0ZWQ6IGp1c3QgbGlrZSB3aGVuIGRlY29yYXRpbmcgZnVuY3Rpb25zLFxuXG4gICBAZjEoYXJnKVxuICAgQGYyXG4gICBjbGFzcyBGb286IHBhc3NcblxuaXMgZXF1aXZhbGVudCB0b1xuXG4gICBjbGFzcyBGb286IHBhc3NcbiAgIEZvbyA9IGYxKGFyZykoZjIoRm9vKSlcblxuVGhlIGV2YWx1YXRpb24gcnVsZXMgZm9yIHRoZSBkZWNvcmF0b3IgZXhwcmVzc2lvbnMgYXJlIHRoZSBzYW1lIGFzIGZvclxuZnVuY3Rpb24gZGVjb3JhdG9ycy4gIFRoZSByZXN1bHQgbXVzdCBiZSBhIGNsYXNzIG9iamVjdCwgd2hpY2ggaXMgdGhlblxuYm91bmQgdG8gdGhlIGNsYXNzIG5hbWUuXG5cbioqUHJvZ3JhbW1lclwncyBub3RlOioqIFZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBjbGFzcyBkZWZpbml0aW9uIGFyZVxuY2xhc3MgYXR0cmlidXRlczsgdGhleSBhcmUgc2hhcmVkIGJ5IGluc3RhbmNlcy4gIEluc3RhbmNlIGF0dHJpYnV0ZXNcbmNhbiBiZSBzZXQgaW4gYSBtZXRob2Qgd2l0aCBgYHNlbGYubmFtZSA9IHZhbHVlYGAuICBCb3RoIGNsYXNzIGFuZFxuaW5zdGFuY2UgYXR0cmlidXRlcyBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIHRoZSBub3RhdGlvblxuImBgc2VsZi5uYW1lYGAiLCBhbmQgYW4gaW5zdGFuY2UgYXR0cmlidXRlIGhpZGVzIGEgY2xhc3MgYXR0cmlidXRlXG53aXRoIHRoZSBzYW1lIG5hbWUgd2hlbiBhY2Nlc3NlZCBpbiB0aGlzIHdheS4gIENsYXNzIGF0dHJpYnV0ZXMgY2FuIGJlXG51c2VkIGFzIGRlZmF1bHRzIGZvciBpbnN0YW5jZSBhdHRyaWJ1dGVzLCBidXQgdXNpbmcgbXV0YWJsZSB2YWx1ZXNcbnRoZXJlIGNhbiBsZWFkIHRvIHVuZXhwZWN0ZWQgcmVzdWx0cy4gICpEZXNjcmlwdG9ycyogY2FuIGJlIHVzZWQgdG9cbmNyZWF0ZSBpbnN0YW5jZSB2YXJpYWJsZXMgd2l0aCBkaWZmZXJlbnQgaW1wbGVtZW50YXRpb24gZGV0YWlscy5cblxuU2VlIGFsc286XG5cbiAgICoqUEVQIDMxMTUqKiAtIE1ldGFjbGFzc2VzIGluIFB5dGhvbiAzICoqUEVQIDMxMjkqKiAtIENsYXNzXG4gICBEZWNvcmF0b3JzXG5cbi1bIEZvb3Rub3RlcyBdLVxuXG5bMV0gVGhlIGV4Y2VwdGlvbiBpcyBwcm9wYWdhdGVkIHRvIHRoZSBpbnZvY2F0aW9uIHN0YWNrIHVubGVzcyB0aGVyZVxuICAgIGlzIGEgYGBmaW5hbGx5YGAgY2xhdXNlIHdoaWNoIGhhcHBlbnMgdG8gcmFpc2UgYW5vdGhlciBleGNlcHRpb24uXG4gICAgVGhhdCBuZXcgZXhjZXB0aW9uIGNhdXNlcyB0aGUgb2xkIG9uZSB0byBiZSBsb3N0LlxuXG5bMl0gQ3VycmVudGx5LCBjb250cm9sICJmbG93cyBvZmYgdGhlIGVuZCIgZXhjZXB0IGluIHRoZSBjYXNlIG9mIGFuXG4gICAgZXhjZXB0aW9uIG9yIHRoZSBleGVjdXRpb24gb2YgYSBgYHJldHVybmBgLCBgYGNvbnRpbnVlYGAsIG9yXG4gICAgYGBicmVha2BgIHN0YXRlbWVudC5cblxuWzNdIEEgc3RyaW5nIGxpdGVyYWwgYXBwZWFyaW5nIGFzIHRoZSBmaXJzdCBzdGF0ZW1lbnQgaW4gdGhlIGZ1bmN0aW9uXG4gICAgYm9keSBpcyB0cmFuc2Zvcm1lZCBpbnRvIHRoZSBmdW5jdGlvblwncyBgYF9fZG9jX19gYCBhdHRyaWJ1dGUgYW5kXG4gICAgdGhlcmVmb3JlIHRoZSBmdW5jdGlvblwncyAqZG9jc3RyaW5nKi5cblxuWzRdIEEgc3RyaW5nIGxpdGVyYWwgYXBwZWFyaW5nIGFzIHRoZSBmaXJzdCBzdGF0ZW1lbnQgaW4gdGhlIGNsYXNzXG4gICAgYm9keSBpcyB0cmFuc2Zvcm1lZCBpbnRvIHRoZSBuYW1lc3BhY2VcJ3MgYGBfX2RvY19fYGAgaXRlbSBhbmRcbiAgICB0aGVyZWZvcmUgdGhlIGNsYXNzXCdzICpkb2NzdHJpbmcqLlxuJywKICAnY29udGV4dC1tYW5hZ2Vycyc6ICdcbldpdGggU3RhdGVtZW50IENvbnRleHQgTWFuYWdlcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQSAqY29udGV4dCBtYW5hZ2VyKiBpcyBhbiBvYmplY3QgdGhhdCBkZWZpbmVzIHRoZSBydW50aW1lIGNvbnRleHQgdG9cbmJlIGVzdGFibGlzaGVkIHdoZW4gZXhlY3V0aW5nIGEgYGB3aXRoYGAgc3RhdGVtZW50LiBUaGUgY29udGV4dFxubWFuYWdlciBoYW5kbGVzIHRoZSBlbnRyeSBpbnRvLCBhbmQgdGhlIGV4aXQgZnJvbSwgdGhlIGRlc2lyZWQgcnVudGltZVxuY29udGV4dCBmb3IgdGhlIGV4ZWN1dGlvbiBvZiB0aGUgYmxvY2sgb2YgY29kZS4gIENvbnRleHQgbWFuYWdlcnMgYXJlXG5ub3JtYWxseSBpbnZva2VkIHVzaW5nIHRoZSBgYHdpdGhgYCBzdGF0ZW1lbnQgKGRlc2NyaWJlZCBpbiBzZWN0aW9uXG4qVGhlIHdpdGggc3RhdGVtZW50KiksIGJ1dCBjYW4gYWxzbyBiZSB1c2VkIGJ5IGRpcmVjdGx5IGludm9raW5nIHRoZWlyXG5tZXRob2RzLlxuXG5UeXBpY2FsIHVzZXMgb2YgY29udGV4dCBtYW5hZ2VycyBpbmNsdWRlIHNhdmluZyBhbmQgcmVzdG9yaW5nIHZhcmlvdXNcbmtpbmRzIG9mIGdsb2JhbCBzdGF0ZSwgbG9ja2luZyBhbmQgdW5sb2NraW5nIHJlc291cmNlcywgY2xvc2luZyBvcGVuZWRcbmZpbGVzLCBldGMuXG5cbkZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGNvbnRleHQgbWFuYWdlcnMsIHNlZSAqQ29udGV4dCBNYW5hZ2VyIFR5cGVzKi5cblxub2JqZWN0Ll9fZW50ZXJfXyhzZWxmKVxuXG4gICBFbnRlciB0aGUgcnVudGltZSBjb250ZXh0IHJlbGF0ZWQgdG8gdGhpcyBvYmplY3QuIFRoZSBgYHdpdGhgYFxuICAgc3RhdGVtZW50IHdpbGwgYmluZCB0aGlzIG1ldGhvZFwncyByZXR1cm4gdmFsdWUgdG8gdGhlIHRhcmdldChzKVxuICAgc3BlY2lmaWVkIGluIHRoZSBgYGFzYGAgY2xhdXNlIG9mIHRoZSBzdGF0ZW1lbnQsIGlmIGFueS5cblxub2JqZWN0Ll9fZXhpdF9fKHNlbGYsIGV4Y190eXBlLCBleGNfdmFsdWUsIHRyYWNlYmFjaylcblxuICAgRXhpdCB0aGUgcnVudGltZSBjb250ZXh0IHJlbGF0ZWQgdG8gdGhpcyBvYmplY3QuIFRoZSBwYXJhbWV0ZXJzXG4gICBkZXNjcmliZSB0aGUgZXhjZXB0aW9uIHRoYXQgY2F1c2VkIHRoZSBjb250ZXh0IHRvIGJlIGV4aXRlZC4gSWYgdGhlXG4gICBjb250ZXh0IHdhcyBleGl0ZWQgd2l0aG91dCBhbiBleGNlcHRpb24sIGFsbCB0aHJlZSBhcmd1bWVudHMgd2lsbFxuICAgYmUgYGBOb25lYGAuXG5cbiAgIElmIGFuIGV4Y2VwdGlvbiBpcyBzdXBwbGllZCwgYW5kIHRoZSBtZXRob2Qgd2lzaGVzIHRvIHN1cHByZXNzIHRoZVxuICAgZXhjZXB0aW9uIChpLmUuLCBwcmV2ZW50IGl0IGZyb20gYmVpbmcgcHJvcGFnYXRlZCksIGl0IHNob3VsZFxuICAgcmV0dXJuIGEgdHJ1ZSB2YWx1ZS4gT3RoZXJ3aXNlLCB0aGUgZXhjZXB0aW9uIHdpbGwgYmUgcHJvY2Vzc2VkXG4gICBub3JtYWxseSB1cG9uIGV4aXQgZnJvbSB0aGlzIG1ldGhvZC5cblxuICAgTm90ZSB0aGF0IGBgX19leGl0X18oKWBgIG1ldGhvZHMgc2hvdWxkIG5vdCByZXJhaXNlIHRoZSBwYXNzZWQtaW5cbiAgIGV4Y2VwdGlvbjsgdGhpcyBpcyB0aGUgY2FsbGVyXCdzIHJlc3BvbnNpYmlsaXR5LlxuXG5TZWUgYWxzbzpcblxuICAgKipQRVAgMDM0MyoqIC0gVGhlICJ3aXRoIiBzdGF0ZW1lbnRcbiAgICAgIFRoZSBzcGVjaWZpY2F0aW9uLCBiYWNrZ3JvdW5kLCBhbmQgZXhhbXBsZXMgZm9yIHRoZSBQeXRob25cbiAgICAgIGBgd2l0aGBgIHN0YXRlbWVudC5cbicsCiAgJ2NvbnRpbnVlJzogJ1xuVGhlIGBgY29udGludWVgYCBzdGF0ZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgIGNvbnRpbnVlX3N0bXQgOjo9ICJjb250aW51ZSJcblxuYGBjb250aW51ZWBgIG1heSBvbmx5IG9jY3VyIHN5bnRhY3RpY2FsbHkgbmVzdGVkIGluIGEgYGBmb3JgYCBvclxuYGB3aGlsZWBgIGxvb3AsIGJ1dCBub3QgbmVzdGVkIGluIGEgZnVuY3Rpb24gb3IgY2xhc3MgZGVmaW5pdGlvbiBvclxuYGBmaW5hbGx5YGAgY2xhdXNlIHdpdGhpbiB0aGF0IGxvb3AuICBJdCBjb250aW51ZXMgd2l0aCB0aGUgbmV4dCBjeWNsZVxub2YgdGhlIG5lYXJlc3QgZW5jbG9zaW5nIGxvb3AuXG5cbldoZW4gYGBjb250aW51ZWBgIHBhc3NlcyBjb250cm9sIG91dCBvZiBhIGBgdHJ5YGAgc3RhdGVtZW50IHdpdGggYVxuYGBmaW5hbGx5YGAgY2xhdXNlLCB0aGF0IGBgZmluYWxseWBgIGNsYXVzZSBpcyBleGVjdXRlZCBiZWZvcmUgcmVhbGx5XG5zdGFydGluZyB0aGUgbmV4dCBsb29wIGN5Y2xlLlxuJywKICAnY29udmVyc2lvbnMnOiAnXG5Bcml0aG1ldGljIGNvbnZlcnNpb25zXG4qKioqKioqKioqKioqKioqKioqKioqXG5cbldoZW4gYSBkZXNjcmlwdGlvbiBvZiBhbiBhcml0aG1ldGljIG9wZXJhdG9yIGJlbG93IHVzZXMgdGhlIHBocmFzZVxuInRoZSBudW1lcmljIGFyZ3VtZW50cyBhcmUgY29udmVydGVkIHRvIGEgY29tbW9uIHR5cGUsIiB0aGlzIG1lYW5zXG50aGF0IHRoZSBvcGVyYXRvciBpbXBsZW1lbnRhdGlvbiBmb3IgYnVpbHQtaW4gdHlwZXMgd29ya3MgdGhhdCB3YXk6XG5cbiogSWYgZWl0aGVyIGFyZ3VtZW50IGlzIGEgY29tcGxleCBudW1iZXIsIHRoZSBvdGhlciBpcyBjb252ZXJ0ZWQgdG9cbiAgY29tcGxleDtcblxuKiBvdGhlcndpc2UsIGlmIGVpdGhlciBhcmd1bWVudCBpcyBhIGZsb2F0aW5nIHBvaW50IG51bWJlciwgdGhlIG90aGVyXG4gIGlzIGNvbnZlcnRlZCB0byBmbG9hdGluZyBwb2ludDtcblxuKiBvdGhlcndpc2UsIGJvdGggbXVzdCBiZSBpbnRlZ2VycyBhbmQgbm8gY29udmVyc2lvbiBpcyBuZWNlc3NhcnkuXG5cblNvbWUgYWRkaXRpb25hbCBydWxlcyBhcHBseSBmb3IgY2VydGFpbiBvcGVyYXRvcnMgKGUuZy4sIGEgc3RyaW5nIGxlZnRcbmFyZ3VtZW50IHRvIHRoZSBcJyVcJyBvcGVyYXRvcikuICBFeHRlbnNpb25zIG11c3QgZGVmaW5lIHRoZWlyIG93blxuY29udmVyc2lvbiBiZWhhdmlvci5cbicsCi0gJ2N1c3RvbWl6YXRpb24nOiAnXG5CYXNpYyBjdXN0b21pemF0aW9uXG4qKioqKioqKioqKioqKioqKioqXG5cbm9iamVjdC5fX25ld19fKGNsc1ssIC4uLl0pXG5cbiAgIENhbGxlZCB0byBjcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgY2xhc3MgKmNscyouICBgYF9fbmV3X18oKWBgIGlzIGFcbiAgIHN0YXRpYyBtZXRob2QgKHNwZWNpYWwtY2FzZWQgc28geW91IG5lZWQgbm90IGRlY2xhcmUgaXQgYXMgc3VjaClcbiAgIHRoYXQgdGFrZXMgdGhlIGNsYXNzIG9mIHdoaWNoIGFuIGluc3RhbmNlIHdhcyByZXF1ZXN0ZWQgYXMgaXRzXG4gICBmaXJzdCBhcmd1bWVudC4gIFRoZSByZW1haW5pbmcgYXJndW1lbnRzIGFyZSB0aG9zZSBwYXNzZWQgdG8gdGhlXG4gICBvYmplY3QgY29uc3RydWN0b3IgZXhwcmVzc2lvbiAodGhlIGNhbGwgdG8gdGhlIGNsYXNzKS4gIFRoZSByZXR1cm5cbiAgIHZhbHVlIG9mIGBgX19uZXdfXygpYGAgc2hvdWxkIGJlIHRoZSBuZXcgb2JqZWN0IGluc3RhbmNlICh1c3VhbGx5XG4gICBhbiBpbnN0YW5jZSBvZiAqY2xzKikuXG5cbiAgIFR5cGljYWwgaW1wbGVtZW50YXRpb25zIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgYnlcbiAgIGludm9raW5nIHRoZSBzdXBlcmNsYXNzXCdzIGBgX19uZXdfXygpYGAgbWV0aG9kIHVzaW5nXG4gICBgYHN1cGVyKGN1cnJlbnRjbGFzcywgY2xzKS5fX25ld19fKGNsc1ssIC4uLl0pYGAgd2l0aCBhcHByb3ByaWF0ZVxuICAgYXJndW1lbnRzIGFuZCB0aGVuIG1vZGlmeWluZyB0aGUgbmV3bHktY3JlYXRlZCBpbnN0YW5jZSBhc1xuICAgbmVjZXNzYXJ5IGJlZm9yZSByZXR1cm5pbmcgaXQuXG5cbiAgIElmIGBgX19uZXdfXygpYGAgcmV0dXJucyBhbiBpbnN0YW5jZSBvZiAqY2xzKiwgdGhlbiB0aGUgbmV3XG4gICBpbnN0YW5jZVwncyBgYF9faW5pdF9fKClgYCBtZXRob2Qgd2lsbCBiZSBpbnZva2VkIGxpa2VcbiAgIGBgX19pbml0X18oc2VsZlssIC4uLl0pYGAsIHdoZXJlICpzZWxmKiBpcyB0aGUgbmV3IGluc3RhbmNlIGFuZCB0aGVcbiAgIHJlbWFpbmluZyBhcmd1bWVudHMgYXJlIHRoZSBzYW1lIGFzIHdlcmUgcGFzc2VkIHRvIGBgX19uZXdfXygpYGAuXG5cbiAgIElmIGBgX19uZXdfXygpYGAgZG9lcyBub3QgcmV0dXJuIGFuIGluc3RhbmNlIG9mICpjbHMqLCB0aGVuIHRoZSBuZXdcbiAgIGluc3RhbmNlXCdzIGBgX19pbml0X18oKWBgIG1ldGhvZCB3aWxsIG5vdCBiZSBpbnZva2VkLlxuXG4gICBgYF9fbmV3X18oKWBgIGlzIGludGVuZGVkIG1haW5seSB0byBhbGxvdyBzdWJjbGFzc2VzIG9mIGltbXV0YWJsZVxuICAgdHlwZXMgKGxpa2UgaW50LCBzdHIsIG9yIHR1cGxlKSB0byBjdXN0b21pemUgaW5zdGFuY2UgY3JlYXRpb24uICBJdFxuICAgaXMgYWxzbyBjb21tb25seSBvdmVycmlkZGVuIGluIGN1c3RvbSBtZXRhY2xhc3NlcyBpbiBvcmRlciB0b1xuICAgY3VzdG9taXplIGNsYXNzIGNyZWF0aW9uLlxuXG5vYmplY3QuX19pbml0X18oc2VsZlssIC4uLl0pXG5cbiAgIENhbGxlZCB3aGVuIHRoZSBpbnN0YW5jZSBpcyBjcmVhdGVkLiAgVGhlIGFyZ3VtZW50cyBhcmUgdGhvc2VcbiAgIHBhc3NlZCB0byB0aGUgY2xhc3MgY29uc3RydWN0b3IgZXhwcmVzc2lvbi4gIElmIGEgYmFzZSBjbGFzcyBoYXMgYW5cbiAgIGBgX19pbml0X18oKWBgIG1ldGhvZCwgdGhlIGRlcml2ZWQgY2xhc3NcJ3MgYGBfX2luaXRfXygpYGAgbWV0aG9kLFxuICAgaWYgYW55LCBtdXN0IGV4cGxpY2l0bHkgY2FsbCBpdCB0byBlbnN1cmUgcHJvcGVyIGluaXRpYWxpemF0aW9uIG9mXG4gICB0aGUgYmFzZSBjbGFzcyBwYXJ0IG9mIHRoZSBpbnN0YW5jZTsgZm9yIGV4YW1wbGU6XG4gICBgYEJhc2VDbGFzcy5fX2luaXRfXyhzZWxmLCBbYXJncy4uLl0pYGAuICBBcyBhIHNwZWNpYWwgY29uc3RyYWludFxuICAgb24gY29uc3RydWN0b3JzLCBubyB2YWx1ZSBtYXkgYmUgcmV0dXJuZWQ7IGRvaW5nIHNvIHdpbGwgY2F1c2UgYVxuICAgYGBUeXBlRXJyb3JgYCB0byBiZSByYWlzZWQgYXQgcnVudGltZS5cblxub2JqZWN0Ll9fZGVsX18oc2VsZilcblxuICAgQ2FsbGVkIHdoZW4gdGhlIGluc3RhbmNlIGlzIGFib3V0IHRvIGJlIGRlc3Ryb3llZC4gIFRoaXMgaXMgYWxzb1xuICAgY2FsbGVkIGEgZGVzdHJ1Y3Rvci4gIElmIGEgYmFzZSBjbGFzcyBoYXMgYSBgYF9fZGVsX18oKWBgIG1ldGhvZCxcbiAgIHRoZSBkZXJpdmVkIGNsYXNzXCdzIGBgX19kZWxfXygpYGAgbWV0aG9kLCBpZiBhbnksIG11c3QgZXhwbGljaXRseVxuICAgY2FsbCBpdCB0byBlbnN1cmUgcHJvcGVyIGRlbGV0aW9uIG9mIHRoZSBiYXNlIGNsYXNzIHBhcnQgb2YgdGhlXG4gICBpbnN0YW5jZS4gIE5vdGUgdGhhdCBpdCBpcyBwb3NzaWJsZSAodGhvdWdoIG5vdCByZWNvbW1lbmRlZCEpIGZvclxuICAgdGhlIGBgX19kZWxfXygpYGAgbWV0aG9kIHRvIHBvc3Rwb25lIGRlc3RydWN0aW9uIG9mIHRoZSBpbnN0YW5jZSBieVxuICAgY3JlYXRpbmcgYSBuZXcgcmVmZXJlbmNlIHRvIGl0LiAgSXQgbWF5IHRoZW4gYmUgY2FsbGVkIGF0IGEgbGF0ZXJcbiAgIHRpbWUgd2hlbiB0aGlzIG5ldyByZWZlcmVuY2UgaXMgZGVsZXRlZC4gIEl0IGlzIG5vdCBndWFyYW50ZWVkIHRoYXRcbiAgIGBgX19kZWxfXygpYGAgbWV0aG9kcyBhcmUgY2FsbGVkIGZvciBvYmplY3RzIHRoYXQgc3RpbGwgZXhpc3Qgd2hlblxuICAgdGhlIGludGVycHJldGVyIGV4aXRzLlxuXG4gICBOb3RlOiBgYGRlbCB4YGAgZG9lc25cJ3QgZGlyZWN0bHkgY2FsbCBgYHguX19kZWxfXygpYGAgLS0tIHRoZSBmb3JtZXJcbiAgICAgZGVjcmVtZW50cyB0aGUgcmVmZXJlbmNlIGNvdW50IGZvciBgYHhgYCBieSBvbmUsIGFuZCB0aGUgbGF0dGVyXG4gICAgIGlzIG9ubHkgY2FsbGVkIHdoZW4gYGB4YGBcJ3MgcmVmZXJlbmNlIGNvdW50IHJlYWNoZXMgemVyby4gIFNvbWVcbiAgICAgY29tbW9uIHNpdHVhdGlvbnMgdGhhdCBtYXkgcHJldmVudCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIGFuXG4gICAgIG9iamVjdCBmcm9tIGdvaW5nIHRvIHplcm8gaW5jbHVkZTogY2lyY3VsYXIgcmVmZXJlbmNlcyBiZXR3ZWVuXG4gICAgIG9iamVjdHMgKGUuZy4sIGEgZG91Ymx5LWxpbmtlZCBsaXN0IG9yIGEgdHJlZSBkYXRhIHN0cnVjdHVyZSB3aXRoXG4gICAgIHBhcmVudCBhbmQgY2hpbGQgcG9pbnRlcnMpOyBhIHJlZmVyZW5jZSB0byB0aGUgb2JqZWN0IG9uIHRoZVxuICAgICBzdGFjayBmcmFtZSBvZiBhIGZ1bmN0aW9uIHRoYXQgY2F1Z2h0IGFuIGV4Y2VwdGlvbiAodGhlIHRyYWNlYmFja1xuICAgICBzdG9yZWQgaW4gYGBzeXMuZXhjX2luZm8oKVsyXWBgIGtlZXBzIHRoZSBzdGFjayBmcmFtZSBhbGl2ZSk7IG9yXG4gICAgIGEgcmVmZXJlbmNlIHRvIHRoZSBvYmplY3Qgb24gdGhlIHN0YWNrIGZyYW1lIHRoYXQgcmFpc2VkIGFuXG4gICAgIHVuaGFuZGxlZCBleGNlcHRpb24gaW4gaW50ZXJhY3RpdmUgbW9kZSAodGhlIHRyYWNlYmFjayBzdG9yZWQgaW5cbiAgICAgYGBzeXMubGFzdF90cmFjZWJhY2tgYCBrZWVwcyB0aGUgc3RhY2sgZnJhbWUgYWxpdmUpLiAgVGhlIGZpcnN0XG4gICAgIHNpdHVhdGlvbiBjYW4gb25seSBiZSByZW1lZGllZCBieSBleHBsaWNpdGx5IGJyZWFraW5nIHRoZSBjeWNsZXM7XG4gICAgIHRoZSBsYXR0ZXIgdHdvIHNpdHVhdGlvbnMgY2FuIGJlIHJlc29sdmVkIGJ5IHN0b3JpbmcgYGBOb25lYGAgaW5cbiAgICAgYGBzeXMubGFzdF90cmFjZWJhY2tgYC4gQ2lyY3VsYXIgcmVmZXJlbmNlcyB3aGljaCBhcmUgZ2FyYmFnZSBhcmVcbiAgICAgZGV0ZWN0ZWQgd2hlbiB0aGUgb3B0aW9uIGN5Y2xlIGRldGVjdG9yIGlzIGVuYWJsZWQgKGl0XCdzIG9uIGJ5XG4gICAgIGRlZmF1bHQpLCBidXQgY2FuIG9ubHkgYmUgY2xlYW5lZCB1cCBpZiB0aGVyZSBhcmUgbm8gUHl0aG9uLVxuICAgICBsZXZlbCBgYF9fZGVsX18oKWBgIG1ldGhvZHMgaW52b2x2ZWQuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uXG4gICAgIGZvciB0aGUgYGBnY2BgIG1vZHVsZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3dcbiAgICAgYGBfX2RlbF9fKClgYCBtZXRob2RzIGFyZSBoYW5kbGVkIGJ5IHRoZSBjeWNsZSBkZXRlY3RvcixcbiAgICAgcGFydGljdWxhcmx5IHRoZSBkZXNjcmlwdGlvbiBvZiB0aGUgYGBnYXJiYWdlYGAgdmFsdWUuXG5cbiAgIFdhcm5pbmc6IER1ZSB0byB0aGUgcHJlY2FyaW91cyBjaXJjdW1zdGFuY2VzIHVuZGVyIHdoaWNoIGBgX19kZWxfXygpYGBcbiAgICAgbWV0aG9kcyBhcmUgaW52b2tlZCwgZXhjZXB0aW9ucyB0aGF0IG9jY3VyIGR1cmluZyB0aGVpciBleGVjdXRpb25cbiAgICAgYXJlIGlnbm9yZWQsIGFuZCBhIHdhcm5pbmcgaXMgcHJpbnRlZCB0byBgYHN5cy5zdGRlcnJgYCBpbnN0ZWFkLlxuICAgICBBbHNvLCB3aGVuIGBgX19kZWxfXygpYGAgaXMgaW52b2tlZCBpbiByZXNwb25zZSB0byBhIG1vZHVsZSBiZWluZ1xuICAgICBkZWxldGVkIChlLmcuLCB3aGVuIGV4ZWN1dGlvbiBvZiB0aGUgcHJvZ3JhbSBpcyBkb25lKSwgb3RoZXJcbiAgICAgZ2xvYmFscyByZWZlcmVuY2VkIGJ5IHRoZSBgYF9fZGVsX18oKWBgIG1ldGhvZCBtYXkgYWxyZWFkeSBoYXZlXG4gICAgIGJlZW4gZGVsZXRlZCBvciBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyB0b3JuIGRvd24gKGUuZy4gdGhlXG4gICAgIGltcG9ydCBtYWNoaW5lcnkgc2h1dHRpbmcgZG93bikuICBGb3IgdGhpcyByZWFzb24sIGBgX19kZWxfXygpYGBcbiAgICAgbWV0aG9kcyBzaG91bGQgZG8gdGhlIGFic29sdXRlIG1pbmltdW0gbmVlZGVkIHRvIG1haW50YWluXG4gICAgIGV4dGVybmFsIGludmFyaWFudHMuICBTdGFydGluZyB3aXRoIHZlcnNpb24gMS41LCBQeXRob25cbiAgICAgZ3VhcmFudGVlcyB0aGF0IGdsb2JhbHMgd2hvc2UgbmFtZSBiZWdpbnMgd2l0aCBhIHNpbmdsZVxuICAgICB1bmRlcnNjb3JlIGFyZSBkZWxldGVkIGZyb20gdGhlaXIgbW9kdWxlIGJlZm9yZSBvdGhlciBnbG9iYWxzIGFyZVxuICAgICBkZWxldGVkOyBpZiBubyBvdGhlciByZWZlcmVuY2VzIHRvIHN1Y2ggZ2xvYmFscyBleGlzdCwgdGhpcyBtYXlcbiAgICAgaGVscCBpbiBhc3N1cmluZyB0aGF0IGltcG9ydGVkIG1vZHVsZXMgYXJlIHN0aWxsIGF2YWlsYWJsZSBhdCB0aGVcbiAgICAgdGltZSB3aGVuIHRoZSBgYF9fZGVsX18oKWBgIG1ldGhvZCBpcyBjYWxsZWQuXG5cbm9iamVjdC5fX3JlcHJfXyhzZWxmKVxuXG4gICBDYWxsZWQgYnkgdGhlIGBgcmVwcigpYGAgYnVpbHQtaW4gZnVuY3Rpb24gdG8gY29tcHV0ZSB0aGVcbiAgICJvZmZpY2lhbCIgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gIElmIGF0IGFsbCBwb3NzaWJsZSxcbiAgIHRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhIHZhbGlkIFB5dGhvbiBleHByZXNzaW9uIHRoYXQgY291bGQgYmUgdXNlZFxuICAgdG8gcmVjcmVhdGUgYW4gb2JqZWN0IHdpdGggdGhlIHNhbWUgdmFsdWUgKGdpdmVuIGFuIGFwcHJvcHJpYXRlXG4gICBlbnZpcm9ubWVudCkuICBJZiB0aGlzIGlzIG5vdCBwb3NzaWJsZSwgYSBzdHJpbmcgb2YgdGhlIGZvcm1cbiAgIGBgPC4uLnNvbWUgdXNlZnVsIGRlc2NyaXB0aW9uLi4uPmBgIHNob3VsZCBiZSByZXR1cm5lZC4gVGhlIHJldHVyblxuICAgdmFsdWUgbXVzdCBiZSBhIHN0cmluZyBvYmplY3QuIElmIGEgY2xhc3MgZGVmaW5lcyBgYF9fcmVwcl9fKClgYFxuICAgYnV0IG5vdCBgYF9fc3RyX18oKWBgLCB0aGVuIGBgX19yZXByX18oKWBgIGlzIGFsc28gdXNlZCB3aGVuIGFuXG4gICAiaW5mb3JtYWwiIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBpbnN0YW5jZXMgb2YgdGhhdCBjbGFzcyBpc1xuICAgcmVxdWlyZWQuXG5cbiAgIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgZm9yIGRlYnVnZ2luZywgc28gaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhlXG4gICByZXByZXNlbnRhdGlvbiBpcyBpbmZvcm1hdGlvbi1yaWNoIGFuZCB1bmFtYmlndW91cy5cblxub2JqZWN0Ll9fc3RyX18oc2VsZilcblxuICAgQ2FsbGVkIGJ5IHRoZSBgYHN0cigpYGAgYnVpbHQtaW4gZnVuY3Rpb24gYW5kIGJ5IHRoZSBgYHByaW50KClgYFxuICAgZnVuY3Rpb24gdG8gY29tcHV0ZSB0aGUgImluZm9ybWFsIiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW5cbiAgIG9iamVjdC4gIFRoaXMgZGlmZmVycyBmcm9tIGBgX19yZXByX18oKWBgIGluIHRoYXQgaXQgZG9lcyBub3QgaGF2ZVxuICAgdG8gYmUgYSB2YWxpZCBQeXRob24gZXhwcmVzc2lvbjogYSBtb3JlIGNvbnZlbmllbnQgb3IgY29uY2lzZVxuICAgcmVwcmVzZW50YXRpb24gbWF5IGJlIHVzZWQgaW5zdGVhZC4gVGhlIHJldHVybiB2YWx1ZSBtdXN0IGJlIGFcbiAgIHN0cmluZyBvYmplY3QuXG5cbm9iamVjdC5fX2J5dGVzX18oc2VsZilcblxuICAgQ2FsbGVkIGJ5IGBgYnl0ZXMoKWBgIHRvIGNvbXB1dGUgYSBieXRlLXN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhblxuICAgb2JqZWN0LiBUaGlzIHNob3VsZCByZXR1cm4gYSBgYGJ5dGVzYGAgb2JqZWN0LlxuXG5vYmplY3QuX19mb3JtYXRfXyhzZWxmLCBmb3JtYXRfc3BlYylcblxuICAgQ2FsbGVkIGJ5IHRoZSBgYGZvcm1hdCgpYGAgYnVpbHQtaW4gZnVuY3Rpb24gKGFuZCBieSBleHRlbnNpb24sIHRoZVxuICAgYGBmb3JtYXQoKWBgIG1ldGhvZCBvZiBjbGFzcyBgYHN0cmBgKSB0byBwcm9kdWNlIGEgImZvcm1hdHRlZCJcbiAgIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFRoZSBgYGZvcm1hdF9zcGVjYGAgYXJndW1lbnQgaXNcbiAgIGEgc3RyaW5nIHRoYXQgY29udGFpbnMgYSBkZXNjcmlwdGlvbiBvZiB0aGUgZm9ybWF0dGluZyBvcHRpb25zXG4gICBkZXNpcmVkLiBUaGUgaW50ZXJwcmV0YXRpb24gb2YgdGhlIGBgZm9ybWF0X3NwZWNgYCBhcmd1bWVudCBpcyB1cFxuICAgdG8gdGhlIHR5cGUgaW1wbGVtZW50aW5nIGBgX19mb3JtYXRfXygpYGAsIGhvd2V2ZXIgbW9zdCBjbGFzc2VzXG4gICB3aWxsIGVpdGhlciBkZWxlZ2F0ZSBmb3JtYXR0aW5nIHRvIG9uZSBvZiB0aGUgYnVpbHQtaW4gdHlwZXMsIG9yXG4gICB1c2UgYSBzaW1pbGFyIGZvcm1hdHRpbmcgb3B0aW9uIHN5bnRheC5cblxuICAgU2VlICpGb3JtYXQgU3BlY2lmaWNhdGlvbiBNaW5pLUxhbmd1YWdlKiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGVcbiAgIHN0YW5kYXJkIGZvcm1hdHRpbmcgc3ludGF4LlxuXG4gICBUaGUgcmV0dXJuIHZhbHVlIG11c3QgYmUgYSBzdHJpbmcgb2JqZWN0LlxuXG5vYmplY3QuX19sdF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fbGVfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2VxX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19uZV9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fZ3RfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2dlX18oc2VsZiwgb3RoZXIpXG5cbiAgIFRoZXNlIGFyZSB0aGUgc28tY2FsbGVkICJyaWNoIGNvbXBhcmlzb24iIG1ldGhvZHMuIFRoZVxuICAgY29ycmVzcG9uZGVuY2UgYmV0d2VlbiBvcGVyYXRvciBzeW1ib2xzIGFuZCBtZXRob2QgbmFtZXMgaXMgYXNcbiAgIGZvbGxvd3M6IGBgeDx5YGAgY2FsbHMgYGB4Ll9fbHRfXyh5KWBgLCBgYHg8PXlgYCBjYWxsc1xuICAgYGB4Ll9fbGVfXyh5KWBgLCBgYHg9PXlgYCBjYWxscyBgYHguX19lcV9fKHkpYGAsIGBgeCE9eWBgIGNhbGxzXG4gICBgYHguX19uZV9fKHkpYGAsIGBgeD55YGAgY2FsbHMgYGB4Ll9fZ3RfXyh5KWBgLCBhbmQgYGB4Pj15YGAgY2FsbHNcbiAgIGBgeC5fX2dlX18oeSlgYC5cblxuICAgQSByaWNoIGNvbXBhcmlzb24gbWV0aG9kIG1heSByZXR1cm4gdGhlIHNpbmdsZXRvblxuICAgYGBOb3RJbXBsZW1lbnRlZGBgIGlmIGl0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgb3BlcmF0aW9uIGZvciBhXG4gICBnaXZlbiBwYWlyIG9mIGFyZ3VtZW50cy4gQnkgY29udmVudGlvbiwgYGBGYWxzZWBgIGFuZCBgYFRydWVgYCBhcmVcbiAgIHJldHVybmVkIGZvciBhIHN1Y2Nlc3NmdWwgY29tcGFyaXNvbi4gSG93ZXZlciwgdGhlc2UgbWV0aG9kcyBjYW5cbiAgIHJldHVybiBhbnkgdmFsdWUsIHNvIGlmIHRoZSBjb21wYXJpc29uIG9wZXJhdG9yIGlzIHVzZWQgaW4gYVxuICAgQm9vbGVhbiBjb250ZXh0IChlLmcuLCBpbiB0aGUgY29uZGl0aW9uIG9mIGFuIGBgaWZgYCBzdGF0ZW1lbnQpLFxuICAgUHl0aG9uIHdpbGwgY2FsbCBgYGJvb2woKWBgIG9uIHRoZSB2YWx1ZSB0byBkZXRlcm1pbmUgaWYgdGhlIHJlc3VsdFxuICAgaXMgdHJ1ZSBvciBmYWxzZS5cblxuICAgVGhlcmUgYXJlIG5vIGltcGxpZWQgcmVsYXRpb25zaGlwcyBhbW9uZyB0aGUgY29tcGFyaXNvbiBvcGVyYXRvcnMuXG4gICBUaGUgdHJ1dGggb2YgYGB4PT15YGAgZG9lcyBub3QgaW1wbHkgdGhhdCBgYHghPXlgYCBpcyBmYWxzZS5cbiAgIEFjY29yZGluZ2x5LCB3aGVuIGRlZmluaW5nIGBgX19lcV9fKClgYCwgb25lIHNob3VsZCBhbHNvIGRlZmluZVxuICAgYGBfX25lX18oKWBgIHNvIHRoYXQgdGhlIG9wZXJhdG9ycyB3aWxsIGJlaGF2ZSBhcyBleHBlY3RlZC4gIFNlZVxuICAgdGhlIHBhcmFncmFwaCBvbiBgYF9faGFzaF9fKClgYCBmb3Igc29tZSBpbXBvcnRhbnQgbm90ZXMgb25cbiAgIGNyZWF0aW5nICpoYXNoYWJsZSogb2JqZWN0cyB3aGljaCBzdXBwb3J0IGN1c3RvbSBjb21wYXJpc29uXG4gICBvcGVyYXRpb25zIGFuZCBhcmUgdXNhYmxlIGFzIGRpY3Rpb25hcnkga2V5cy5cblxuICAgVGhlcmUgYXJlIG5vIHN3YXBwZWQtYXJndW1lbnQgdmVyc2lvbnMgb2YgdGhlc2UgbWV0aG9kcyAodG8gYmUgdXNlZFxuICAgd2hlbiB0aGUgbGVmdCBhcmd1bWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBvcGVyYXRpb24gYnV0IHRoZSByaWdodFxuICAgYXJndW1lbnQgZG9lcyk7IHJhdGhlciwgYGBfX2x0X18oKWBgIGFuZCBgYF9fZ3RfXygpYGAgYXJlIGVhY2hcbiAgIG90aGVyXCdzIHJlZmxlY3Rpb24sIGBgX19sZV9fKClgYCBhbmQgYGBfX2dlX18oKWBgIGFyZSBlYWNoIG90aGVyXCdzXG4gICByZWZsZWN0aW9uLCBhbmQgYGBfX2VxX18oKWBgIGFuZCBgYF9fbmVfXygpYGAgYXJlIHRoZWlyIG93blxuICAgcmVmbGVjdGlvbi5cblxuICAgQXJndW1lbnRzIHRvIHJpY2ggY29tcGFyaXNvbiBtZXRob2RzIGFyZSBuZXZlciBjb2VyY2VkLlxuXG4gICBUbyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIG9yZGVyaW5nIG9wZXJhdGlvbnMgZnJvbSBhIHNpbmdsZSByb290XG4gICBvcGVyYXRpb24sIHNlZSBgYGZ1bmN0b29scy50b3RhbF9vcmRlcmluZygpYGAuXG5cbm9iamVjdC5fX2hhc2hfXyhzZWxmKVxuXG4gICBDYWxsZWQgYnkgYnVpbHQtaW4gZnVuY3Rpb24gYGBoYXNoKClgYCBhbmQgZm9yIG9wZXJhdGlvbnMgb25cbiAgIG1lbWJlcnMgb2YgaGFzaGVkIGNvbGxlY3Rpb25zIGluY2x1ZGluZyBgYHNldGBgLCBgYGZyb3plbnNldGBgLCBhbmRcbiAgIGBgZGljdGBgLiAgYGBfX2hhc2hfXygpYGAgc2hvdWxkIHJldHVybiBhbiBpbnRlZ2VyLiAgVGhlIG9ubHlcbiAgIHJlcXVpcmVkIHByb3BlcnR5IGlzIHRoYXQgb2JqZWN0cyB3aGljaCBjb21wYXJlIGVxdWFsIGhhdmUgdGhlIHNhbWVcbiAgIGhhc2ggdmFsdWU7IGl0IGlzIGFkdmlzZWQgdG8gc29tZWhvdyBtaXggdG9nZXRoZXIgKGUuZy4gdXNpbmdcbiAgIGV4Y2x1c2l2ZSBvcikgdGhlIGhhc2ggdmFsdWVzIGZvciB0aGUgY29tcG9uZW50cyBvZiB0aGUgb2JqZWN0IHRoYXRcbiAgIGFsc28gcGxheSBhIHBhcnQgaW4gY29tcGFyaXNvbiBvZiBvYmplY3RzLlxuXG4gICBJZiBhIGNsYXNzIGRvZXMgbm90IGRlZmluZSBhbiBgYF9fZXFfXygpYGAgbWV0aG9kIGl0IHNob3VsZCBub3RcbiAgIGRlZmluZSBhIGBgX19oYXNoX18oKWBgIG9wZXJhdGlvbiBlaXRoZXI7IGlmIGl0IGRlZmluZXNcbiAgIGBgX19lcV9fKClgYCBidXQgbm90IGBgX19oYXNoX18oKWBgLCBpdHMgaW5zdGFuY2VzIHdpbGwgbm90IGJlXG4gICB1c2FibGUgYXMgaXRlbXMgaW4gaGFzaGFibGUgY29sbGVjdGlvbnMuICBJZiBhIGNsYXNzIGRlZmluZXNcbiAgIG11dGFibGUgb2JqZWN0cyBhbmQgaW1wbGVtZW50cyBhbiBgYF9fZXFfXygpYGAgbWV0aG9kLCBpdCBzaG91bGRcbiAgIG5vdCBpbXBsZW1lbnQgYGBfX2hhc2hfXygpYGAsIHNpbmNlIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBoYXNoYWJsZVxuICAgY29sbGVjdGlvbnMgcmVxdWlyZXMgdGhhdCBhIGtleVwncyBoYXNoIHZhbHVlIGlzIGltbXV0YWJsZSAoaWYgdGhlXG4gICBvYmplY3RcJ3MgaGFzaCB2YWx1ZSBjaGFuZ2VzLCBpdCB3aWxsIGJlIGluIHRoZSB3cm9uZyBoYXNoIGJ1Y2tldCkuXG5cbiAgIFVzZXItZGVmaW5lZCBjbGFzc2VzIGhhdmUgYGBfX2VxX18oKWBgIGFuZCBgYF9faGFzaF9fKClgYCBtZXRob2RzXG4gICBieSBkZWZhdWx0OyB3aXRoIHRoZW0sIGFsbCBvYmplY3RzIGNvbXBhcmUgdW5lcXVhbCAoZXhjZXB0IHdpdGhcbiAgIHRoZW1zZWx2ZXMpIGFuZCBgYHguX19oYXNoX18oKWBgIHJldHVybnMgYGBpZCh4KWBgLlxuXG4gICBDbGFzc2VzIHdoaWNoIGluaGVyaXQgYSBgYF9faGFzaF9fKClgYCBtZXRob2QgZnJvbSBhIHBhcmVudCBjbGFzc1xuICAgYnV0IGNoYW5nZSB0aGUgbWVhbmluZyBvZiBgYF9fZXFfXygpYGAgc3VjaCB0aGF0IHRoZSBoYXNoIHZhbHVlXG4gICByZXR1cm5lZCBpcyBubyBsb25nZXIgYXBwcm9wcmlhdGUgKGUuZy4gYnkgc3dpdGNoaW5nIHRvIGEgdmFsdWUtXG4gICBiYXNlZCBjb25jZXB0IG9mIGVxdWFsaXR5IGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgaWRlbnRpdHkgYmFzZWRcbiAgIGVxdWFsaXR5KSBjYW4gZXhwbGljaXRseSBmbGFnIHRoZW1zZWx2ZXMgYXMgYmVpbmcgdW5oYXNoYWJsZSBieVxuICAgc2V0dGluZyBgYF9faGFzaF9fID0gTm9uZWBgIGluIHRoZSBjbGFzcyBkZWZpbml0aW9uLiBEb2luZyBzbyBtZWFuc1xuICAgdGhhdCBub3Qgb25seSB3aWxsIGluc3RhbmNlcyBvZiB0aGUgY2xhc3MgcmFpc2UgYW4gYXBwcm9wcmlhdGVcbiAgIGBgVHlwZUVycm9yYGAgd2hlbiBhIHByb2dyYW0gYXR0ZW1wdHMgdG8gcmV0cmlldmUgdGhlaXIgaGFzaCB2YWx1ZSxcbiAgIGJ1dCB0aGV5IHdpbGwgYWxzbyBiZSBjb3JyZWN0bHkgaWRlbnRpZmllZCBhcyB1bmhhc2hhYmxlIHdoZW5cbiAgIGNoZWNraW5nIGBgaXNpbnN0YW5jZShvYmosIGNvbGxlY3Rpb25zLkhhc2hhYmxlKWBgICh1bmxpa2UgY2xhc3Nlc1xuICAgd2hpY2ggZGVmaW5lIHRoZWlyIG93biBgYF9faGFzaF9fKClgYCB0byBleHBsaWNpdGx5IHJhaXNlXG4gICBgYFR5cGVFcnJvcmBgKS5cblxuICAgSWYgYSBjbGFzcyB0aGF0IG92ZXJyaWRlcyBgYF9fZXFfXygpYGAgbmVlZHMgdG8gcmV0YWluIHRoZVxuICAgaW1wbGVtZW50YXRpb24gb2YgYGBfX2hhc2hfXygpYGAgZnJvbSBhIHBhcmVudCBjbGFzcywgdGhlXG4gICBpbnRlcnByZXRlciBtdXN0IGJlIHRvbGQgdGhpcyBleHBsaWNpdGx5IGJ5IHNldHRpbmcgYGBfX2hhc2hfXyA9XG4gICA8UGFyZW50Q2xhc3M+Ll9faGFzaF9fYGAuIE90aGVyd2lzZSB0aGUgaW5oZXJpdGFuY2Ugb2ZcbiAgIGBgX19oYXNoX18oKWBgIHdpbGwgYmUgYmxvY2tlZCwganVzdCBhcyBpZiBgYF9faGFzaF9fYGAgaGFkIGJlZW5cbiAgIGV4cGxpY2l0bHkgc2V0IHRvIGBgTm9uZWBgLlxuXG4gICBTZWUgYWxzbyB0aGUgKi1SKiBjb21tYW5kLWxpbmUgb3B0aW9uLlxuXG5vYmplY3QuX19ib29sX18oc2VsZilcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCB0cnV0aCB2YWx1ZSB0ZXN0aW5nIGFuZCB0aGUgYnVpbHQtaW4gb3BlcmF0aW9uXG4gICBgYGJvb2woKWBgOyBzaG91bGQgcmV0dXJuIGBgRmFsc2VgYCBvciBgYFRydWVgYC4gIFdoZW4gdGhpcyBtZXRob2RcbiAgIGlzIG5vdCBkZWZpbmVkLCBgYF9fbGVuX18oKWBgIGlzIGNhbGxlZCwgaWYgaXQgaXMgZGVmaW5lZCwgYW5kIHRoZVxuICAgb2JqZWN0IGlzIGNvbnNpZGVyZWQgdHJ1ZSBpZiBpdHMgcmVzdWx0IGlzIG5vbnplcm8uICBJZiBhIGNsYXNzXG4gICBkZWZpbmVzIG5laXRoZXIgYGBfX2xlbl9fKClgYCBub3IgYGBfX2Jvb2xfXygpYGAsIGFsbCBpdHMgaW5zdGFuY2VzXG4gICBhcmUgY29uc2lkZXJlZCB0cnVlLlxuJywKLSAnZGVidWdnZXInOiAnXG5gYHBkYmBgIC0tLSBUaGUgUHl0aG9uIERlYnVnZ2VyXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblRoZSBtb2R1bGUgYGBwZGJgYCBkZWZpbmVzIGFuIGludGVyYWN0aXZlIHNvdXJjZSBjb2RlIGRlYnVnZ2VyIGZvclxuUHl0aG9uIHByb2dyYW1zLiAgSXQgc3VwcG9ydHMgc2V0dGluZyAoY29uZGl0aW9uYWwpIGJyZWFrcG9pbnRzIGFuZFxuc2luZ2xlIHN0ZXBwaW5nIGF0IHRoZSBzb3VyY2UgbGluZSBsZXZlbCwgaW5zcGVjdGlvbiBvZiBzdGFjayBmcmFtZXMsXG5zb3VyY2UgY29kZSBsaXN0aW5nLCBhbmQgZXZhbHVhdGlvbiBvZiBhcmJpdHJhcnkgUHl0aG9uIGNvZGUgaW4gdGhlXG5jb250ZXh0IG9mIGFueSBzdGFjayBmcmFtZS4gIEl0IGFsc28gc3VwcG9ydHMgcG9zdC1tb3J0ZW0gZGVidWdnaW5nXG5hbmQgY2FuIGJlIGNhbGxlZCB1bmRlciBwcm9ncmFtIGNvbnRyb2wuXG5cblRoZSBkZWJ1Z2dlciBpcyBleHRlbnNpYmxlIC0tIGl0IGlzIGFjdHVhbGx5IGRlZmluZWQgYXMgdGhlIGNsYXNzXG5gYFBkYmBgLiBUaGlzIGlzIGN1cnJlbnRseSB1bmRvY3VtZW50ZWQgYnV0IGVhc2lseSB1bmRlcnN0b29kIGJ5XG5yZWFkaW5nIHRoZSBzb3VyY2UuICBUaGUgZXh0ZW5zaW9uIGludGVyZmFjZSB1c2VzIHRoZSBtb2R1bGVzIGBgYmRiYGBcbmFuZCBgYGNtZGBgLlxuXG5UaGUgZGVidWdnZXJcJ3MgcHJvbXB0IGlzIGBgKFBkYilgYC4gVHlwaWNhbCB1c2FnZSB0byBydW4gYSBwcm9ncmFtXG51bmRlciBjb250cm9sIG9mIHRoZSBkZWJ1Z2dlciBpczpcblxuICAgPj4+IGltcG9ydCBwZGJcbiAgID4+PiBpbXBvcnQgbXltb2R1bGVcbiAgID4+PiBwZGIucnVuKFwnbXltb2R1bGUudGVzdCgpXCcpXG4gICA+IDxzdHJpbmc+KDApPygpXG4gICAoUGRiKSBjb250aW51ZVxuICAgPiA8c3RyaW5nPigxKT8oKVxuICAgKFBkYikgY29udGludWVcbiAgIE5hbWVFcnJvcjogXCdzcGFtXCdcbiAgID4gPHN0cmluZz4oMSk/KClcbiAgIChQZGIpXG5cbmBgcGRiLnB5YGAgY2FuIGFsc28gYmUgaW52b2tlZCBhcyBhIHNjcmlwdCB0byBkZWJ1ZyBvdGhlciBzY3JpcHRzLlxuRm9yIGV4YW1wbGU6XG5cbiAgIHB5dGhvbjMgLW0gcGRiIG15c2NyaXB0LnB5XG5cbldoZW4gaW52b2tlZCBhcyBhIHNjcmlwdCwgcGRiIHdpbGwgYXV0b21hdGljYWxseSBlbnRlciBwb3N0LW1vcnRlbVxuZGVidWdnaW5nIGlmIHRoZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkIGV4aXRzIGFibm9ybWFsbHkuICBBZnRlciBwb3N0LVxubW9ydGVtIGRlYnVnZ2luZyAob3IgYWZ0ZXIgbm9ybWFsIGV4aXQgb2YgdGhlIHByb2dyYW0pLCBwZGIgd2lsbFxucmVzdGFydCB0aGUgcHJvZ3JhbS4gIEF1dG9tYXRpYyByZXN0YXJ0aW5nIHByZXNlcnZlcyBwZGJcJ3Mgc3RhdGUgKHN1Y2hcbmFzIGJyZWFrcG9pbnRzKSBhbmQgaW4gbW9zdCBjYXNlcyBpcyBtb3JlIHVzZWZ1bCB0aGFuIHF1aXR0aW5nIHRoZVxuZGVidWdnZXIgdXBvbiBwcm9ncmFtXCdzIGV4aXQuXG5cbk5ldyBpbiB2ZXJzaW9uIDMuMjogYGBwZGIucHlgYCBub3cgYWNjZXB0cyBhIGBgLWNgYCBvcHRpb24gdGhhdFxuZXhlY3V0ZXMgY29tbWFuZHMgYXMgaWYgZ2l2ZW4gaW4gYSBgYC5wZGJyY2BgIGZpbGUsIHNlZSAqRGVidWdnZXJcbkNvbW1hbmRzKi5cblxuVGhlIHR5cGljYWwgdXNhZ2UgdG8gYnJlYWsgaW50byB0aGUgZGVidWdnZXIgZnJvbSBhIHJ1bm5pbmcgcHJvZ3JhbSBpc1xudG8gaW5zZXJ0XG5cbiAgIGltcG9ydCBwZGI7IHBkYi5zZXRfdHJhY2UoKVxuXG5hdCB0aGUgbG9jYXRpb24geW91IHdhbnQgdG8gYnJlYWsgaW50byB0aGUgZGVidWdnZXIuICBZb3UgY2FuIHRoZW5cbnN0ZXAgdGhyb3VnaCB0aGUgY29kZSBmb2xsb3dpbmcgdGhpcyBzdGF0ZW1lbnQsIGFuZCBjb250aW51ZSBydW5uaW5nXG53aXRob3V0IHRoZSBkZWJ1Z2dlciB1c2luZyB0aGUgYGBjb250aW51ZWBgIGNvbW1hbmQuXG5cblRoZSB0eXBpY2FsIHVzYWdlIHRvIGluc3BlY3QgYSBjcmFzaGVkIHByb2dyYW0gaXM6XG5cbiAgID4+PiBpbXBvcnQgcGRiXG4gICA+Pj4gaW1wb3J0IG15bW9kdWxlXG4gICA+Pj4gbXltb2R1bGUudGVzdCgpXG4gICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDEsIGluID9cbiAgICAgRmlsZSAiLi9teW1vZHVsZS5weSIsIGxpbmUgNCwgaW4gdGVzdFxuICAgICAgIHRlc3QyKClcbiAgICAgRmlsZSAiLi9teW1vZHVsZS5weSIsIGxpbmUgMywgaW4gdGVzdDJcbiAgICAgICBwcmludChzcGFtKVxuICAgTmFtZUVycm9yOiBzcGFtXG4gICA+Pj4gcGRiLnBtKClcbiAgID4gLi9teW1vZHVsZS5weSgzKXRlc3QyKClcbiAgIC0+IHByaW50KHNwYW0pXG4gICAoUGRiKVxuXG5UaGUgbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM7IGVhY2ggZW50ZXJzIHRoZSBkZWJ1Z2dlclxuaW4gYSBzbGlnaHRseSBkaWZmZXJlbnQgd2F5OlxuXG5wZGIucnVuKHN0YXRlbWVudCwgZ2xvYmFscz1Ob25lLCBsb2NhbHM9Tm9uZSlcblxuICAgRXhlY3V0ZSB0aGUgKnN0YXRlbWVudCogKGdpdmVuIGFzIGEgc3RyaW5nIG9yIGEgY29kZSBvYmplY3QpIHVuZGVyXG4gICBkZWJ1Z2dlciBjb250cm9sLiAgVGhlIGRlYnVnZ2VyIHByb21wdCBhcHBlYXJzIGJlZm9yZSBhbnkgY29kZSBpc1xuICAgZXhlY3V0ZWQ7IHlvdSBjYW4gc2V0IGJyZWFrcG9pbnRzIGFuZCB0eXBlIGBgY29udGludWVgYCwgb3IgeW91IGNhblxuICAgc3RlcCB0aHJvdWdoIHRoZSBzdGF0ZW1lbnQgdXNpbmcgYGBzdGVwYGAgb3IgYGBuZXh0YGAgKGFsbCB0aGVzZVxuICAgY29tbWFuZHMgYXJlIGV4cGxhaW5lZCBiZWxvdykuICBUaGUgb3B0aW9uYWwgKmdsb2JhbHMqIGFuZCAqbG9jYWxzKlxuICAgYXJndW1lbnRzIHNwZWNpZnkgdGhlIGVudmlyb25tZW50IGluIHdoaWNoIHRoZSBjb2RlIGlzIGV4ZWN1dGVkOyBieVxuICAgZGVmYXVsdCB0aGUgZGljdGlvbmFyeSBvZiB0aGUgbW9kdWxlIGBgX19tYWluX19gYCBpcyB1c2VkLiAgKFNlZVxuICAgdGhlIGV4cGxhbmF0aW9uIG9mIHRoZSBidWlsdC1pbiBgYGV4ZWMoKWBgIG9yIGBgZXZhbCgpYGBcbiAgIGZ1bmN0aW9ucy4pXG5cbnBkYi5ydW5ldmFsKGV4cHJlc3Npb24sIGdsb2JhbHM9Tm9uZSwgbG9jYWxzPU5vbmUpXG5cbiAgIEV2YWx1YXRlIHRoZSAqZXhwcmVzc2lvbiogKGdpdmVuIGFzIGEgc3RyaW5nIG9yIGEgY29kZSBvYmplY3QpXG4gICB1bmRlciBkZWJ1Z2dlciBjb250cm9sLiAgV2hlbiBgYHJ1bmV2YWwoKWBgIHJldHVybnMsIGl0IHJldHVybnMgdGhlXG4gICB2YWx1ZSBvZiB0aGUgZXhwcmVzc2lvbi4gIE90aGVyd2lzZSB0aGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG9cbiAgIGBgcnVuKClgYC5cblxucGRiLnJ1bmNhbGwoZnVuY3Rpb24sICphcmdzLCAqKmt3ZHMpXG5cbiAgIENhbGwgdGhlICpmdW5jdGlvbiogKGEgZnVuY3Rpb24gb3IgbWV0aG9kIG9iamVjdCwgbm90IGEgc3RyaW5nKVxuICAgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiAgV2hlbiBgYHJ1bmNhbGwoKWBgIHJldHVybnMsIGl0IHJldHVybnNcbiAgIHdoYXRldmVyIHRoZSBmdW5jdGlvbiBjYWxsIHJldHVybmVkLiAgVGhlIGRlYnVnZ2VyIHByb21wdCBhcHBlYXJzXG4gICBhcyBzb29uIGFzIHRoZSBmdW5jdGlvbiBpcyBlbnRlcmVkLlxuXG5wZGIuc2V0X3RyYWNlKClcblxuICAgRW50ZXIgdGhlIGRlYnVnZ2VyIGF0IHRoZSBjYWxsaW5nIHN0YWNrIGZyYW1lLiAgVGhpcyBpcyB1c2VmdWwgdG9cbiAgIGhhcmQtY29kZSBhIGJyZWFrcG9pbnQgYXQgYSBnaXZlbiBwb2ludCBpbiBhIHByb2dyYW0sIGV2ZW4gaWYgdGhlXG4gICBjb2RlIGlzIG5vdCBvdGhlcndpc2UgYmVpbmcgZGVidWdnZWQgKGUuZy4gd2hlbiBhbiBhc3NlcnRpb25cbiAgIGZhaWxzKS5cblxucGRiLnBvc3RfbW9ydGVtKHRyYWNlYmFjaz1Ob25lKVxuXG4gICBFbnRlciBwb3N0LW1vcnRlbSBkZWJ1Z2dpbmcgb2YgdGhlIGdpdmVuICp0cmFjZWJhY2sqIG9iamVjdC4gIElmIG5vXG4gICAqdHJhY2ViYWNrKiBpcyBnaXZlbiwgaXQgdXNlcyB0aGUgb25lIG9mIHRoZSBleGNlcHRpb24gdGhhdCBpc1xuICAgY3VycmVudGx5IGJlaW5nIGhhbmRsZWQgKGFuIGV4Y2VwdGlvbiBtdXN0IGJlIGJlaW5nIGhhbmRsZWQgaWYgdGhlXG4gICBkZWZhdWx0IGlzIHRvIGJlIHVzZWQpLlxuXG5wZGIucG0oKVxuXG4gICBFbnRlciBwb3N0LW1vcnRlbSBkZWJ1Z2dpbmcgb2YgdGhlIHRyYWNlYmFjayBmb3VuZCBpblxuICAgYGBzeXMubGFzdF90cmFjZWJhY2tgYC5cblxuVGhlIGBgcnVuKmBgIGZ1bmN0aW9ucyBhbmQgYGBzZXRfdHJhY2UoKWBgIGFyZSBhbGlhc2VzIGZvclxuaW5zdGFudGlhdGluZyB0aGUgYGBQZGJgYCBjbGFzcyBhbmQgY2FsbGluZyB0aGUgbWV0aG9kIG9mIHRoZSBzYW1lXG5uYW1lLiAgSWYgeW91IHdhbnQgdG8gYWNjZXNzIGZ1cnRoZXIgZmVhdHVyZXMsIHlvdSBoYXZlIHRvIGRvIHRoaXNcbnlvdXJzZWxmOlxuXG5jbGFzcyBjbGFzcyBwZGIuUGRiKGNvbXBsZXRla2V5PVwndGFiXCcsIHN0ZGluPU5vbmUsIHN0ZG91dD1Ob25lLCBza2lwPU5vbmUsIG5vc2lnaW50PUZhbHNlKVxuXG4gICBgYFBkYmBgIGlzIHRoZSBkZWJ1Z2dlciBjbGFzcy5cblxuICAgVGhlICpjb21wbGV0ZWtleSosICpzdGRpbiogYW5kICpzdGRvdXQqIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZVxuICAgdW5kZXJseWluZyBgYGNtZC5DbWRgYCBjbGFzczsgc2VlIHRoZSBkZXNjcmlwdGlvbiB0aGVyZS5cblxuICAgVGhlICpza2lwKiBhcmd1bWVudCwgaWYgZ2l2ZW4sIG11c3QgYmUgYW4gaXRlcmFibGUgb2YgZ2xvYi1zdHlsZVxuICAgbW9kdWxlIG5hbWUgcGF0dGVybnMuICBUaGUgZGVidWdnZXIgd2lsbCBub3Qgc3RlcCBpbnRvIGZyYW1lcyB0aGF0XG4gICBvcmlnaW5hdGUgaW4gYSBtb2R1bGUgdGhhdCBtYXRjaGVzIG9uZSBvZiB0aGVzZSBwYXR0ZXJucy4gWzFdXG5cbiAgIEJ5IGRlZmF1bHQsIFBkYiBzZXRzIGEgaGFuZGxlciBmb3IgdGhlIFNJR0lOVCBzaWduYWwgKHdoaWNoIGlzIHNlbnRcbiAgIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyBDdHJsLUMgb24gdGhlIGNvbnNvbGUpIHdoZW4geW91IGdpdmUgYVxuICAgYGBjb250aW51ZWBgIGNvbW1hbmQuIFRoaXMgYWxsb3dzIHlvdSB0byBicmVhayBpbnRvIHRoZSBkZWJ1Z2dlclxuICAgYWdhaW4gYnkgcHJlc3NpbmcgQ3RybC1DLiAgSWYgeW91IHdhbnQgUGRiIG5vdCB0byB0b3VjaCB0aGUgU0lHSU5UXG4gICBoYW5kbGVyLCBzZXQgKm5vc2lnaW50KiB0b3QgdHJ1ZS5cblxuICAgRXhhbXBsZSBjYWxsIHRvIGVuYWJsZSB0cmFjaW5nIHdpdGggKnNraXAqOlxuXG4gICAgICBpbXBvcnQgcGRiOyBwZGIuUGRiKHNraXA9W1wnZGphbmdvLipcJ10pLnNldF90cmFjZSgpXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMTogVGhlICpza2lwKiBhcmd1bWVudC5cblxuICAgTmV3IGluIHZlcnNpb24gMy4yOiBUaGUgKm5vc2lnaW50KiBhcmd1bWVudC4gIFByZXZpb3VzbHksIGEgU0lHSU5UXG4gICBoYW5kbGVyIHdhcyBuZXZlciBzZXQgYnkgUGRiLlxuXG4gICBydW4oc3RhdGVtZW50LCBnbG9iYWxzPU5vbmUsIGxvY2Fscz1Ob25lKVxuICAgcnVuZXZhbChleHByZXNzaW9uLCBnbG9iYWxzPU5vbmUsIGxvY2Fscz1Ob25lKVxuICAgcnVuY2FsbChmdW5jdGlvbiwgKmFyZ3MsICoqa3dkcylcbiAgIHNldF90cmFjZSgpXG5cbiAgICAgIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZ1bmN0aW9ucyBleHBsYWluZWQgYWJvdmUuXG5cblxuRGVidWdnZXIgQ29tbWFuZHNcbj09PT09PT09PT09PT09PT09XG5cblRoZSBjb21tYW5kcyByZWNvZ25pemVkIGJ5IHRoZSBkZWJ1Z2dlciBhcmUgbGlzdGVkIGJlbG93LiAgTW9zdFxuY29tbWFuZHMgY2FuIGJlIGFiYnJldmlhdGVkIHRvIG9uZSBvciB0d28gbGV0dGVycyBhcyBpbmRpY2F0ZWQ7IGUuZy5cbmBgaChlbHApYGAgbWVhbnMgdGhhdCBlaXRoZXIgYGBoYGAgb3IgYGBoZWxwYGAgY2FuIGJlIHVzZWQgdG8gZW50ZXJcbnRoZSBoZWxwIGNvbW1hbmQgKGJ1dCBub3QgYGBoZWBgIG9yIGBgaGVsYGAsIG5vciBgYEhgYCBvciBgYEhlbHBgYCBvclxuYGBIRUxQYGApLiAgQXJndW1lbnRzIHRvIGNvbW1hbmRzIG11c3QgYmUgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2VcbihzcGFjZXMgb3IgdGFicykuICBPcHRpb25hbCBhcmd1bWVudHMgYXJlIGVuY2xvc2VkIGluIHNxdWFyZSBicmFja2V0c1xuKGBgW11gYCkgaW4gdGhlIGNvbW1hbmQgc3ludGF4OyB0aGUgc3F1YXJlIGJyYWNrZXRzIG11c3Qgbm90IGJlIHR5cGVkLlxuQWx0ZXJuYXRpdmVzIGluIHRoZSBjb21tYW5kIHN5bnRheCBhcmUgc2VwYXJhdGVkIGJ5IGEgdmVydGljYWwgYmFyXG4oYGB8YGApLlxuXG5FbnRlcmluZyBhIGJsYW5rIGxpbmUgcmVwZWF0cyB0aGUgbGFzdCBjb21tYW5kIGVudGVyZWQuICBFeGNlcHRpb246IGlmXG50aGUgbGFzdCBjb21tYW5kIHdhcyBhIGBgbGlzdGBgIGNvbW1hbmQsIHRoZSBuZXh0IDExIGxpbmVzIGFyZSBsaXN0ZWQuXG5cbkNvbW1hbmRzIHRoYXQgdGhlIGRlYnVnZ2VyIGRvZXNuXCd0IHJlY29nbml6ZSBhcmUgYXNzdW1lZCB0byBiZSBQeXRob25cbnN0YXRlbWVudHMgYW5kIGFyZSBleGVjdXRlZCBpbiB0aGUgY29udGV4dCBvZiB0aGUgcHJvZ3JhbSBiZWluZ1xuZGVidWdnZWQuICBQeXRob24gc3RhdGVtZW50cyBjYW4gYWxzbyBiZSBwcmVmaXhlZCB3aXRoIGFuIGV4Y2xhbWF0aW9uXG5wb2ludCAoYGAhYGApLiAgVGhpcyBpcyBhIHBvd2VyZnVsIHdheSB0byBpbnNwZWN0IHRoZSBwcm9ncmFtIGJlaW5nXG5kZWJ1Z2dlZDsgaXQgaXMgZXZlbiBwb3NzaWJsZSB0byBjaGFuZ2UgYSB2YXJpYWJsZSBvciBjYWxsIGEgZnVuY3Rpb24uXG5XaGVuIGFuIGV4Y2VwdGlvbiBvY2N1cnMgaW4gc3VjaCBhIHN0YXRlbWVudCwgdGhlIGV4Y2VwdGlvbiBuYW1lIGlzXG5wcmludGVkIGJ1dCB0aGUgZGVidWdnZXJcJ3Mgc3RhdGUgaXMgbm90IGNoYW5nZWQuXG5cblRoZSBkZWJ1Z2dlciBzdXBwb3J0cyAqYWxpYXNlcyouICBBbGlhc2VzIGNhbiBoYXZlIHBhcmFtZXRlcnMgd2hpY2hcbmFsbG93cyBvbmUgYSBjZXJ0YWluIGxldmVsIG9mIGFkYXB0YWJpbGl0eSB0byB0aGUgY29udGV4dCB1bmRlclxuZXhhbWluYXRpb24uXG5cbk11bHRpcGxlIGNvbW1hbmRzIG1heSBiZSBlbnRlcmVkIG9uIGEgc2luZ2xlIGxpbmUsIHNlcGFyYXRlZCBieVxuYGA7O2BgLiAgKEEgc2luZ2xlIGBgO2BgIGlzIG5vdCB1c2VkIGFzIGl0IGlzIHRoZSBzZXBhcmF0b3IgZm9yXG5tdWx0aXBsZSBjb21tYW5kcyBpbiBhIGxpbmUgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIFB5dGhvbiBwYXJzZXIuKSAgTm9cbmludGVsbGlnZW5jZSBpcyBhcHBsaWVkIHRvIHNlcGFyYXRpbmcgdGhlIGNvbW1hbmRzOyB0aGUgaW5wdXQgaXMgc3BsaXRcbmF0IHRoZSBmaXJzdCBgYDs7YGAgcGFpciwgZXZlbiBpZiBpdCBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgcXVvdGVkXG5zdHJpbmcuXG5cbklmIGEgZmlsZSBgYC5wZGJyY2BgIGV4aXN0cyBpbiB0aGUgdXNlclwncyBob21lIGRpcmVjdG9yeSBvciBpbiB0aGVcbmN1cnJlbnQgZGlyZWN0b3J5LCBpdCBpcyByZWFkIGluIGFuZCBleGVjdXRlZCBhcyBpZiBpdCBoYWQgYmVlbiB0eXBlZFxuYXQgdGhlIGRlYnVnZ2VyIHByb21wdC4gIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgYWxpYXNlcy4gIElmXG5ib3RoIGZpbGVzIGV4aXN0LCB0aGUgb25lIGluIHRoZSBob21lIGRpcmVjdG9yeSBpcyByZWFkIGZpcnN0IGFuZFxuYWxpYXNlcyBkZWZpbmVkIHRoZXJlIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBsb2NhbCBmaWxlLlxuXG5DaGFuZ2VkIGluIHZlcnNpb24gMy4yOiBgYC5wZGJyY2BgIGNhbiBub3cgY29udGFpbiBjb21tYW5kcyB0aGF0XG5jb250aW51ZSBkZWJ1Z2dpbmcsIHN1Y2ggYXMgYGBjb250aW51ZWBgIG9yIGBgbmV4dGBgLiAgUHJldmlvdXNseSxcbnRoZXNlIGNvbW1hbmRzIGhhZCBubyBlZmZlY3QuXG5cbmgoZWxwKSBbY29tbWFuZF1cblxuICAgV2l0aG91dCBhcmd1bWVudCwgcHJpbnQgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGNvbW1hbmRzLiAgV2l0aCBhXG4gICAqY29tbWFuZCogYXMgYXJndW1lbnQsIHByaW50IGhlbHAgYWJvdXQgdGhhdCBjb21tYW5kLiAgYGBoZWxwIHBkYmBgXG4gICBkaXNwbGF5cyB0aGUgZnVsbCBkb2N1bWVudGF0aW9uICh0aGUgZG9jc3RyaW5nIG9mIHRoZSBgYHBkYmBgXG4gICBtb2R1bGUpLiAgU2luY2UgdGhlICpjb21tYW5kKiBhcmd1bWVudCBtdXN0IGJlIGFuIGlkZW50aWZpZXIsXG4gICBgYGhlbHAgZXhlY2BgIG11c3QgYmUgZW50ZXJlZCB0byBnZXQgaGVscCBvbiB0aGUgYGAhYGAgY29tbWFuZC5cblxudyhoZXJlKVxuXG4gICBQcmludCBhIHN0YWNrIHRyYWNlLCB3aXRoIHRoZSBtb3N0IHJlY2VudCBmcmFtZSBhdCB0aGUgYm90dG9tLiAgQW5cbiAgIGFycm93IGluZGljYXRlcyB0aGUgY3VycmVudCBmcmFtZSwgd2hpY2ggZGV0ZXJtaW5lcyB0aGUgY29udGV4dCBvZlxuICAgbW9zdCBjb21tYW5kcy5cblxuZChvd24pIFtjb3VudF1cblxuICAgTW92ZSB0aGUgY3VycmVudCBmcmFtZSAqY291bnQqIChkZWZhdWx0IG9uZSkgbGV2ZWxzIGRvd24gaW4gdGhlXG4gICBzdGFjayB0cmFjZSAodG8gYSBuZXdlciBmcmFtZSkuXG5cbnUocCkgW2NvdW50XVxuXG4gICBNb3ZlIHRoZSBjdXJyZW50IGZyYW1lICpjb3VudCogKGRlZmF1bHQgb25lKSBsZXZlbHMgdXAgaW4gdGhlIHN0YWNrXG4gICB0cmFjZSAodG8gYW4gb2xkZXIgZnJhbWUpLlxuXG5iKHJlYWspIFsoW2ZpbGVuYW1lOl1saW5lbm8gfCBmdW5jdGlvbikgWywgY29uZGl0aW9uXV1cblxuICAgV2l0aCBhICpsaW5lbm8qIGFyZ3VtZW50LCBzZXQgYSBicmVhayB0aGVyZSBpbiB0aGUgY3VycmVudCBmaWxlLlxuICAgV2l0aCBhICpmdW5jdGlvbiogYXJndW1lbnQsIHNldCBhIGJyZWFrIGF0IHRoZSBmaXJzdCBleGVjdXRhYmxlXG4gICBzdGF0ZW1lbnQgd2l0aGluIHRoYXQgZnVuY3Rpb24uICBUaGUgbGluZSBudW1iZXIgbWF5IGJlIHByZWZpeGVkXG4gICB3aXRoIGEgZmlsZW5hbWUgYW5kIGEgY29sb24sIHRvIHNwZWNpZnkgYSBicmVha3BvaW50IGluIGFub3RoZXJcbiAgIGZpbGUgKHByb2JhYmx5IG9uZSB0aGF0IGhhc25cJ3QgYmVlbiBsb2FkZWQgeWV0KS4gIFRoZSBmaWxlIGlzXG4gICBzZWFyY2hlZCBvbiBgYHN5cy5wYXRoYGAuICBOb3RlIHRoYXQgZWFjaCBicmVha3BvaW50IGlzIGFzc2lnbmVkIGFcbiAgIG51bWJlciB0byB3aGljaCBhbGwgdGhlIG90aGVyIGJyZWFrcG9pbnQgY29tbWFuZHMgcmVmZXIuXG5cbiAgIElmIGEgc2Vjb25kIGFyZ3VtZW50IGlzIHByZXNlbnQsIGl0IGlzIGFuIGV4cHJlc3Npb24gd2hpY2ggbXVzdFxuICAgZXZhbHVhdGUgdG8gdHJ1ZSBiZWZvcmUgdGhlIGJyZWFrcG9pbnQgaXMgaG9ub3JlZC5cblxuICAgV2l0aG91dCBhcmd1bWVudCwgbGlzdCBhbGwgYnJlYWtzLCBpbmNsdWRpbmcgZm9yIGVhY2ggYnJlYWtwb2ludCxcbiAgIHRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCBicmVha3BvaW50IGhhcyBiZWVuIGhpdCwgdGhlIGN1cnJlbnRcbiAgIGlnbm9yZSBjb3VudCwgYW5kIHRoZSBhc3NvY2lhdGVkIGNvbmRpdGlvbiBpZiBhbnkuXG5cbnRicmVhayBbKFtmaWxlbmFtZTpdbGluZW5vIHwgZnVuY3Rpb24pIFssIGNvbmRpdGlvbl1dXG5cbiAgIFRlbXBvcmFyeSBicmVha3BvaW50LCB3aGljaCBpcyByZW1vdmVkIGF1dG9tYXRpY2FsbHkgd2hlbiBpdCBpc1xuICAgZmlyc3QgaGl0LiBUaGUgYXJndW1lbnRzIGFyZSB0aGUgc2FtZSBhcyBmb3IgYGBicmVha2BgLlxuXG5jbChlYXIpIFtmaWxlbmFtZTpsaW5lbm8gfCBicG51bWJlciBbYnBudW1iZXIgLi4uXV1cblxuICAgV2l0aCBhICpmaWxlbmFtZTpsaW5lbm8qIGFyZ3VtZW50LCBjbGVhciBhbGwgdGhlIGJyZWFrcG9pbnRzIGF0XG4gICB0aGlzIGxpbmUuIFdpdGggYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBicmVha3BvaW50IG51bWJlcnMsIGNsZWFyXG4gICB0aG9zZSBicmVha3BvaW50cy4gV2l0aG91dCBhcmd1bWVudCwgY2xlYXIgYWxsIGJyZWFrcyAoYnV0IGZpcnN0XG4gICBhc2sgY29uZmlybWF0aW9uKS5cblxuZGlzYWJsZSBbYnBudW1iZXIgW2JwbnVtYmVyIC4uLl1dXG5cbiAgIERpc2FibGUgdGhlIGJyZWFrcG9pbnRzIGdpdmVuIGFzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2ZcbiAgIGJyZWFrcG9pbnQgbnVtYmVycy4gIERpc2FibGluZyBhIGJyZWFrcG9pbnQgbWVhbnMgaXQgY2Fubm90IGNhdXNlXG4gICB0aGUgcHJvZ3JhbSB0byBzdG9wIGV4ZWN1dGlvbiwgYnV0IHVubGlrZSBjbGVhcmluZyBhIGJyZWFrcG9pbnQsIGl0XG4gICByZW1haW5zIGluIHRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIGFuZCBjYW4gYmUgKHJlLSllbmFibGVkLlxuXG5lbmFibGUgW2JwbnVtYmVyIFticG51bWJlciAuLi5dXVxuXG4gICBFbmFibGUgdGhlIGJyZWFrcG9pbnRzIHNwZWNpZmllZC5cblxuaWdub3JlIGJwbnVtYmVyIFtjb3VudF1cblxuICAgU2V0IHRoZSBpZ25vcmUgY291bnQgZm9yIHRoZSBnaXZlbiBicmVha3BvaW50IG51bWJlci4gIElmIGNvdW50IGlzXG4gICBvbWl0dGVkLCB0aGUgaWdub3JlIGNvdW50IGlzIHNldCB0byAwLiAgQSBicmVha3BvaW50IGJlY29tZXMgYWN0aXZlXG4gICB3aGVuIHRoZSBpZ25vcmUgY291bnQgaXMgemVyby4gIFdoZW4gbm9uLXplcm8sIHRoZSBjb3VudCBpc1xuICAgZGVjcmVtZW50ZWQgZWFjaCB0aW1lIHRoZSBicmVha3BvaW50IGlzIHJlYWNoZWQgYW5kIHRoZSBicmVha3BvaW50XG4gICBpcyBub3QgZGlzYWJsZWQgYW5kIGFueSBhc3NvY2lhdGVkIGNvbmRpdGlvbiBldmFsdWF0ZXMgdG8gdHJ1ZS5cblxuY29uZGl0aW9uIGJwbnVtYmVyIFtjb25kaXRpb25dXG5cbiAgIFNldCBhIG5ldyAqY29uZGl0aW9uKiBmb3IgdGhlIGJyZWFrcG9pbnQsIGFuIGV4cHJlc3Npb24gd2hpY2ggbXVzdFxuICAgZXZhbHVhdGUgdG8gdHJ1ZSBiZWZvcmUgdGhlIGJyZWFrcG9pbnQgaXMgaG9ub3JlZC4gIElmICpjb25kaXRpb24qXG4gICBpcyBhYnNlbnQsIGFueSBleGlzdGluZyBjb25kaXRpb24gaXMgcmVtb3ZlZDsgaS5lLiwgdGhlIGJyZWFrcG9pbnRcbiAgIGlzIG1hZGUgdW5jb25kaXRpb25hbC5cblxuY29tbWFuZHMgW2JwbnVtYmVyXVxuXG4gICBTcGVjaWZ5IGEgbGlzdCBvZiBjb21tYW5kcyBmb3IgYnJlYWtwb2ludCBudW1iZXIgKmJwbnVtYmVyKi4gIFRoZVxuICAgY29tbWFuZHMgdGhlbXNlbHZlcyBhcHBlYXIgb24gdGhlIGZvbGxvd2luZyBsaW5lcy4gIFR5cGUgYSBsaW5lXG4gICBjb250YWluaW5nIGp1c3QgYGBlbmRgYCB0byB0ZXJtaW5hdGUgdGhlIGNvbW1hbmRzLiBBbiBleGFtcGxlOlxuXG4gICAgICAoUGRiKSBjb21tYW5kcyAxXG4gICAgICAoY29tKSBwcmludCBzb21lX3ZhcmlhYmxlXG4gICAgICAoY29tKSBlbmRcbiAgICAgIChQZGIpXG5cbiAgIFRvIHJlbW92ZSBhbGwgY29tbWFuZHMgZnJvbSBhIGJyZWFrcG9pbnQsIHR5cGUgY29tbWFuZHMgYW5kIGZvbGxvd1xuICAgaXQgaW1tZWRpYXRlbHkgd2l0aCBgYGVuZGBgOyB0aGF0IGlzLCBnaXZlIG5vIGNvbW1hbmRzLlxuXG4gICBXaXRoIG5vICpicG51bWJlciogYXJndW1lbnQsIGNvbW1hbmRzIHJlZmVycyB0byB0aGUgbGFzdCBicmVha3BvaW50XG4gICBzZXQuXG5cbiAgIFlvdSBjYW4gdXNlIGJyZWFrcG9pbnQgY29tbWFuZHMgdG8gc3RhcnQgeW91ciBwcm9ncmFtIHVwIGFnYWluLlxuICAgU2ltcGx5IHVzZSB0aGUgY29udGludWUgY29tbWFuZCwgb3Igc3RlcCwgb3IgYW55IG90aGVyIGNvbW1hbmQgdGhhdFxuICAgcmVzdW1lcyBleGVjdXRpb24uXG5cbiAgIFNwZWNpZnlpbmcgYW55IGNvbW1hbmQgcmVzdW1pbmcgZXhlY3V0aW9uIChjdXJyZW50bHkgY29udGludWUsXG4gICBzdGVwLCBuZXh0LCByZXR1cm4sIGp1bXAsIHF1aXQgYW5kIHRoZWlyIGFiYnJldmlhdGlvbnMpIHRlcm1pbmF0ZXNcbiAgIHRoZSBjb21tYW5kIGxpc3QgKGFzIGlmIHRoYXQgY29tbWFuZCB3YXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnlcbiAgIGVuZCkuIFRoaXMgaXMgYmVjYXVzZSBhbnkgdGltZSB5b3UgcmVzdW1lIGV4ZWN1dGlvbiAoZXZlbiB3aXRoIGFcbiAgIHNpbXBsZSBuZXh0IG9yIHN0ZXApLCB5b3UgbWF5IGVuY291bnRlciBhbm90aGVyIGJyZWFrcG9pbnQtLXdoaWNoXG4gICBjb3VsZCBoYXZlIGl0cyBvd24gY29tbWFuZCBsaXN0LCBsZWFkaW5nIHRvIGFtYmlndWl0aWVzIGFib3V0IHdoaWNoXG4gICBsaXN0IHRvIGV4ZWN1dGUuXG5cbiAgIElmIHlvdSB1c2UgdGhlIFwnc2lsZW50XCcgY29tbWFuZCBpbiB0aGUgY29tbWFuZCBsaXN0LCB0aGUgdXN1YWxcbiAgIG1lc3NhZ2UgYWJvdXQgc3RvcHBpbmcgYXQgYSBicmVha3BvaW50IGlzIG5vdCBwcmludGVkLiAgVGhpcyBtYXkgYmVcbiAgIGRlc2lyYWJsZSBmb3IgYnJlYWtwb2ludHMgdGhhdCBhcmUgdG8gcHJpbnQgYSBzcGVjaWZpYyBtZXNzYWdlIGFuZFxuICAgdGhlbiBjb250aW51ZS4gIElmIG5vbmUgb2YgdGhlIG90aGVyIGNvbW1hbmRzIHByaW50IGFueXRoaW5nLCB5b3VcbiAgIHNlZSBubyBzaWduIHRoYXQgdGhlIGJyZWFrcG9pbnQgd2FzIHJlYWNoZWQuXG5cbnModGVwKVxuXG4gICBFeGVjdXRlIHRoZSBjdXJyZW50IGxpbmUsIHN0b3AgYXQgdGhlIGZpcnN0IHBvc3NpYmxlIG9jY2FzaW9uXG4gICAoZWl0aGVyIGluIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgb3Igb24gdGhlIG5leHQgbGluZSBpbiB0aGVcbiAgIGN1cnJlbnQgZnVuY3Rpb24pLlxuXG5uKGV4dClcblxuICAgQ29udGludWUgZXhlY3V0aW9uIHVudGlsIHRoZSBuZXh0IGxpbmUgaW4gdGhlIGN1cnJlbnQgZnVuY3Rpb24gaXNcbiAgIHJlYWNoZWQgb3IgaXQgcmV0dXJucy4gIChUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGBgbmV4dGBgIGFuZFxuICAgYGBzdGVwYGAgaXMgdGhhdCBgYHN0ZXBgYCBzdG9wcyBpbnNpZGUgYSBjYWxsZWQgZnVuY3Rpb24sIHdoaWxlXG4gICBgYG5leHRgYCBleGVjdXRlcyBjYWxsZWQgZnVuY3Rpb25zIGF0IChuZWFybHkpIGZ1bGwgc3BlZWQsIG9ubHlcbiAgIHN0b3BwaW5nIGF0IHRoZSBuZXh0IGxpbmUgaW4gdGhlIGN1cnJlbnQgZnVuY3Rpb24uKVxuXG51bnQoaWwpIFtsaW5lbm9dXG5cbiAgIFdpdGhvdXQgYXJndW1lbnQsIGNvbnRpbnVlIGV4ZWN1dGlvbiB1bnRpbCB0aGUgbGluZSB3aXRoIGEgbnVtYmVyXG4gICBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgb25lIGlzIHJlYWNoZWQuXG5cbiAgIFdpdGggYSBsaW5lIG51bWJlciwgY29udGludWUgZXhlY3V0aW9uIHVudGlsIGEgbGluZSB3aXRoIGEgbnVtYmVyXG4gICBncmVhdGVyIG9yIGVxdWFsIHRvIHRoYXQgaXMgcmVhY2hlZC4gIEluIGJvdGggY2FzZXMsIGFsc28gc3RvcCB3aGVuXG4gICB0aGUgY3VycmVudCBmcmFtZSByZXR1cm5zLlxuXG4gICBDaGFuZ2VkIGluIHZlcnNpb24gMy4yOiBBbGxvdyBnaXZpbmcgYW4gZXhwbGljaXQgbGluZSBudW1iZXIuXG5cbnIoZXR1cm4pXG5cbiAgIENvbnRpbnVlIGV4ZWN1dGlvbiB1bnRpbCB0aGUgY3VycmVudCBmdW5jdGlvbiByZXR1cm5zLlxuXG5jKG9udChpbnVlKSlcblxuICAgQ29udGludWUgZXhlY3V0aW9uLCBvbmx5IHN0b3Agd2hlbiBhIGJyZWFrcG9pbnQgaXMgZW5jb3VudGVyZWQuXG5cbmoodW1wKSBsaW5lbm9cblxuICAgU2V0IHRoZSBuZXh0IGxpbmUgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkLiAgT25seSBhdmFpbGFibGUgaW4gdGhlXG4gICBib3R0b20tbW9zdCBmcmFtZS4gIFRoaXMgbGV0cyB5b3UganVtcCBiYWNrIGFuZCBleGVjdXRlIGNvZGUgYWdhaW4sXG4gICBvciBqdW1wIGZvcndhcmQgdG8gc2tpcCBjb2RlIHRoYXQgeW91IGRvblwndCB3YW50IHRvIHJ1bi5cblxuICAgSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgbm90IGFsbCBqdW1wcyBhcmUgYWxsb3dlZCAtLSBmb3IgaW5zdGFuY2VcbiAgIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBqdW1wIGludG8gdGhlIG1pZGRsZSBvZiBhIGBgZm9yYGAgbG9vcCBvciBvdXRcbiAgIG9mIGEgYGBmaW5hbGx5YGAgY2xhdXNlLlxuXG5sKGlzdCkgW2ZpcnN0WywgbGFzdF1dXG5cbiAgIExpc3Qgc291cmNlIGNvZGUgZm9yIHRoZSBjdXJyZW50IGZpbGUuICBXaXRob3V0IGFyZ3VtZW50cywgbGlzdCAxMVxuICAgbGluZXMgYXJvdW5kIHRoZSBjdXJyZW50IGxpbmUgb3IgY29udGludWUgdGhlIHByZXZpb3VzIGxpc3RpbmcuXG4gICBXaXRoIGBgLmBgIGFzIGFyZ3VtZW50LCBsaXN0IDExIGxpbmVzIGFyb3VuZCB0aGUgY3VycmVudCBsaW5lLlxuICAgV2l0aCBvbmUgYXJndW1lbnQsIGxpc3QgMTEgbGluZXMgYXJvdW5kIGF0IHRoYXQgbGluZS4gIFdpdGggdHdvXG4gICBhcmd1bWVudHMsIGxpc3QgdGhlIGdpdmVuIHJhbmdlOyBpZiB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIGxlc3NcbiAgIHRoYW4gdGhlIGZpcnN0LCBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIGNvdW50LlxuXG4gICBUaGUgY3VycmVudCBsaW5lIGluIHRoZSBjdXJyZW50IGZyYW1lIGlzIGluZGljYXRlZCBieSBgYC0+YGAuICBJZlxuICAgYW4gZXhjZXB0aW9uIGlzIGJlaW5nIGRlYnVnZ2VkLCB0aGUgbGluZSB3aGVyZSB0aGUgZXhjZXB0aW9uIHdhc1xuICAgb3JpZ2luYWxseSByYWlzZWQgb3IgcHJvcGFnYXRlZCBpcyBpbmRpY2F0ZWQgYnkgYGA+PmBgLCBpZiBpdFxuICAgZGlmZmVycyBmcm9tIHRoZSBjdXJyZW50IGxpbmUuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMjogVGhlIGBgPj5gYCBtYXJrZXIuXG5cbmxsIHwgbG9uZ2xpc3RcblxuICAgTGlzdCBhbGwgc291cmNlIGNvZGUgZm9yIHRoZSBjdXJyZW50IGZ1bmN0aW9uIG9yIGZyYW1lLlxuICAgSW50ZXJlc3RpbmcgbGluZXMgYXJlIG1hcmtlZCBhcyBmb3IgYGBsaXN0YGAuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuYShyZ3MpXG5cbiAgIFByaW50IHRoZSBhcmd1bWVudCBsaXN0IG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9uLlxuXG5wKHJpbnQpIGV4cHJlc3Npb25cblxuICAgRXZhbHVhdGUgdGhlICpleHByZXNzaW9uKiBpbiB0aGUgY3VycmVudCBjb250ZXh0IGFuZCBwcmludCBpdHNcbiAgIHZhbHVlLlxuXG5wcCBleHByZXNzaW9uXG5cbiAgIExpa2UgdGhlIGBgcHJpbnRgYCBjb21tYW5kLCBleGNlcHQgdGhlIHZhbHVlIG9mIHRoZSBleHByZXNzaW9uIGlzXG4gICBwcmV0dHktcHJpbnRlZCB1c2luZyB0aGUgYGBwcHJpbnRgYCBtb2R1bGUuXG5cbndoYXRpcyBleHByZXNzaW9uXG5cbiAgIFByaW50IHRoZSB0eXBlIG9mIHRoZSAqZXhwcmVzc2lvbiouXG5cbnNvdXJjZSBleHByZXNzaW9uXG5cbiAgIFRyeSB0byBnZXQgc291cmNlIGNvZGUgZm9yIHRoZSBnaXZlbiBvYmplY3QgYW5kIGRpc3BsYXkgaXQuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuZGlzcGxheSBbZXhwcmVzc2lvbl1cblxuICAgRGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlIGV4cHJlc3Npb24gaWYgaXQgY2hhbmdlZCwgZWFjaCB0aW1lXG4gICBleGVjdXRpb24gc3RvcHMgaW4gdGhlIGN1cnJlbnQgZnJhbWUuXG5cbiAgIFdpdGhvdXQgZXhwcmVzc2lvbiwgbGlzdCBhbGwgZGlzcGxheSBleHByZXNzaW9ucyBmb3IgdGhlIGN1cnJlbnRcbiAgIGZyYW1lLlxuXG4gICBOZXcgaW4gdmVyc2lvbiAzLjIuXG5cbnVuZGlzcGxheSBbZXhwcmVzc2lvbl1cblxuICAgRG8gbm90IGRpc3BsYXkgdGhlIGV4cHJlc3Npb24gYW55IG1vcmUgaW4gdGhlIGN1cnJlbnQgZnJhbWUuXG4gICBXaXRob3V0IGV4cHJlc3Npb24sIGNsZWFyIGFsbCBkaXNwbGF5IGV4cHJlc3Npb25zIGZvciB0aGUgY3VycmVudFxuICAgZnJhbWUuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuaW50ZXJhY3RcblxuICAgU3RhcnQgYW4gaW50ZXJhdGl2ZSBpbnRlcnByZXRlciAodXNpbmcgdGhlIGBgY29kZWBgIG1vZHVsZSkgd2hvc2VcbiAgIGdsb2JhbCBuYW1lc3BhY2UgY29udGFpbnMgYWxsIHRoZSAoZ2xvYmFsIGFuZCBsb2NhbCkgbmFtZXMgZm91bmQgaW5cbiAgIHRoZSBjdXJyZW50IHNjb3BlLlxuXG4gICBOZXcgaW4gdmVyc2lvbiAzLjIuXG5cbmFsaWFzIFtuYW1lIFtjb21tYW5kXV1cblxuICAgQ3JlYXRlIGFuIGFsaWFzIGNhbGxlZCAqbmFtZSogdGhhdCBleGVjdXRlcyAqY29tbWFuZCouICBUaGUgY29tbWFuZFxuICAgbXVzdCAqbm90KiBiZSBlbmNsb3NlZCBpbiBxdW90ZXMuICBSZXBsYWNlYWJsZSBwYXJhbWV0ZXJzIGNhbiBiZVxuICAgaW5kaWNhdGVkIGJ5IGBgJTFgYCwgYGAlMmBgLCBhbmQgc28gb24sIHdoaWxlIGBgJSpgYCBpcyByZXBsYWNlZCBieVxuICAgYWxsIHRoZSBwYXJhbWV0ZXJzLiBJZiBubyBjb21tYW5kIGlzIGdpdmVuLCB0aGUgY3VycmVudCBhbGlhcyBmb3JcbiAgICpuYW1lKiBpcyBzaG93bi4gSWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiwgYWxsIGFsaWFzZXMgYXJlIGxpc3RlZC5cblxuICAgQWxpYXNlcyBtYXkgYmUgbmVzdGVkIGFuZCBjYW4gY29udGFpbiBhbnl0aGluZyB0aGF0IGNhbiBiZSBsZWdhbGx5XG4gICB0eXBlZCBhdCB0aGUgcGRiIHByb21wdC4gIE5vdGUgdGhhdCBpbnRlcm5hbCBwZGIgY29tbWFuZHMgKmNhbiogYmVcbiAgIG92ZXJyaWRkZW4gYnkgYWxpYXNlcy4gIFN1Y2ggYSBjb21tYW5kIGlzIHRoZW4gaGlkZGVuIHVudGlsIHRoZVxuICAgYWxpYXMgaXMgcmVtb3ZlZC4gIEFsaWFzaW5nIGlzIHJlY3Vyc2l2ZWx5IGFwcGxpZWQgdG8gdGhlIGZpcnN0XG4gICB3b3JkIG9mIHRoZSBjb21tYW5kIGxpbmU7IGFsbCBvdGhlciB3b3JkcyBpbiB0aGUgbGluZSBhcmUgbGVmdFxuICAgYWxvbmUuXG5cbiAgIEFzIGFuIGV4YW1wbGUsIGhlcmUgYXJlIHR3byB1c2VmdWwgYWxpYXNlcyAoZXNwZWNpYWxseSB3aGVuIHBsYWNlZFxuICAgaW4gdGhlIGBgLnBkYnJjYGAgZmlsZSk6XG5cbiAgICAgICMgUHJpbnQgaW5zdGFuY2UgdmFyaWFibGVzICh1c2FnZSAicGkgY2xhc3NJbnN0IilcbiAgICAgIGFsaWFzIHBpIGZvciBrIGluICUxLl9fZGljdF9fLmtleXMoKTogcHJpbnQoIiUxLiIsaywiPSIsJTEuX19kaWN0X19ba10pXG4gICAgICAjIFByaW50IGluc3RhbmNlIHZhcmlhYmxlcyBpbiBzZWxmXG4gICAgICBhbGlhcyBwcyBwaSBzZWxmXG5cbnVuYWxpYXMgbmFtZVxuXG4gICBEZWxldGUgdGhlIHNwZWNpZmllZCBhbGlhcy5cblxuISBzdGF0ZW1lbnRcblxuICAgRXhlY3V0ZSB0aGUgKG9uZS1saW5lKSAqc3RhdGVtZW50KiBpbiB0aGUgY29udGV4dCBvZiB0aGUgY3VycmVudFxuICAgc3RhY2sgZnJhbWUuIFRoZSBleGNsYW1hdGlvbiBwb2ludCBjYW4gYmUgb21pdHRlZCB1bmxlc3MgdGhlIGZpcnN0XG4gICB3b3JkIG9mIHRoZSBzdGF0ZW1lbnQgcmVzZW1ibGVzIGEgZGVidWdnZXIgY29tbWFuZC4gIFRvIHNldCBhXG4gICBnbG9iYWwgdmFyaWFibGUsIHlvdSBjYW4gcHJlZml4IHRoZSBhc3NpZ25tZW50IGNvbW1hbmQgd2l0aCBhXG4gICBgYGdsb2JhbGBgIHN0YXRlbWVudCBvbiB0aGUgc2FtZSBsaW5lLCBlLmcuOlxuXG4gICAgICAoUGRiKSBnbG9iYWwgbGlzdF9vcHRpb25zOyBsaXN0X29wdGlvbnMgPSBbXCctbFwnXVxuICAgICAgKFBkYilcblxucnVuIFthcmdzIC4uLl1cbnJlc3RhcnQgW2FyZ3MgLi4uXVxuXG4gICBSZXN0YXJ0IHRoZSBkZWJ1Z2dlZCBQeXRob24gcHJvZ3JhbS4gIElmIGFuIGFyZ3VtZW50IGlzIHN1cHBsaWVkLFxuICAgaXQgaXMgc3BsaXQgd2l0aCBgYHNobGV4YGAgYW5kIHRoZSByZXN1bHQgaXMgdXNlZCBhcyB0aGUgbmV3XG4gICBgYHN5cy5hcmd2YGAuIEhpc3RvcnksIGJyZWFrcG9pbnRzLCBhY3Rpb25zIGFuZCBkZWJ1Z2dlciBvcHRpb25zXG4gICBhcmUgcHJlc2VydmVkLiBgYHJlc3RhcnRgYCBpcyBhbiBhbGlhcyBmb3IgYGBydW5gYC5cblxucSh1aXQpXG5cbiAgIFF1aXQgZnJvbSB0aGUgZGVidWdnZXIuICBUaGUgcHJvZ3JhbSBiZWluZyBleGVjdXRlZCBpcyBhYm9ydGVkLlxuXG4tWyBGb290bm90ZXMgXS1cblxuWzFdIFdoZXRoZXIgYSBmcmFtZSBpcyBjb25zaWRlcmVkIHRvIG9yaWdpbmF0ZSBpbiBhIGNlcnRhaW4gbW9kdWxlIGlzXG4gICAgZGV0ZXJtaW5lZCBieSB0aGUgYGBfX25hbWVfX2BgIGluIHRoZSBmcmFtZSBnbG9iYWxzLlxuJywKLSAnZGVsJzogJ1xuVGhlIGBgZGVsYGAgc3RhdGVtZW50XG4qKioqKioqKioqKioqKioqKioqKipcblxuICAgZGVsX3N0bXQgOjo9ICJkZWwiIHRhcmdldF9saXN0XG5cbkRlbGV0aW9uIGlzIHJlY3Vyc2l2ZWx5IGRlZmluZWQgdmVyeSBzaW1pbGFyIHRvIHRoZSB3YXkgYXNzaWdubWVudCBpc1xuZGVmaW5lZC4gUmF0aGVyIHRoYW4gc3BlbGxpbmcgaXQgb3V0IGluIGZ1bGwgZGV0YWlscywgaGVyZSBhcmUgc29tZVxuaGludHMuXG5cbkRlbGV0aW9uIG9mIGEgdGFyZ2V0IGxpc3QgcmVjdXJzaXZlbHkgZGVsZXRlcyBlYWNoIHRhcmdldCwgZnJvbSBsZWZ0XG50byByaWdodC5cblxuRGVsZXRpb24gb2YgYSBuYW1lIHJlbW92ZXMgdGhlIGJpbmRpbmcgb2YgdGhhdCBuYW1lIGZyb20gdGhlIGxvY2FsIG9yXG5nbG9iYWwgbmFtZXNwYWNlLCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgbmFtZSBvY2N1cnMgaW4gYSBgYGdsb2JhbGBgXG5zdGF0ZW1lbnQgaW4gdGhlIHNhbWUgY29kZSBibG9jay4gIElmIHRoZSBuYW1lIGlzIHVuYm91bmQsIGFcbmBgTmFtZUVycm9yYGAgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkLlxuXG5EZWxldGlvbiBvZiBhdHRyaWJ1dGUgcmVmZXJlbmNlcywgc3Vic2NyaXB0aW9ucyBhbmQgc2xpY2luZ3MgaXMgcGFzc2VkXG50byB0aGUgcHJpbWFyeSBvYmplY3QgaW52b2x2ZWQ7IGRlbGV0aW9uIG9mIGEgc2xpY2luZyBpcyBpbiBnZW5lcmFsXG5lcXVpdmFsZW50IHRvIGFzc2lnbm1lbnQgb2YgYW4gZW1wdHkgc2xpY2Ugb2YgdGhlIHJpZ2h0IHR5cGUgKGJ1dCBldmVuXG50aGlzIGlzIGRldGVybWluZWQgYnkgdGhlIHNsaWNlZCBvYmplY3QpLlxuXG5DaGFuZ2VkIGluIHZlcnNpb24gMy4yLlxuJywKKyAnY3VzdG9taXphdGlvbic6ICdcbkJhc2ljIGN1c3RvbWl6YXRpb25cbioqKioqKioqKioqKioqKioqKipcblxub2JqZWN0Ll9fbmV3X18oY2xzWywgLi4uXSlcblxuICAgQ2FsbGVkIHRvIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBjbGFzcyAqY2xzKi4gIGBgX19uZXdfXygpYGAgaXMgYVxuICAgc3RhdGljIG1ldGhvZCAoc3BlY2lhbC1jYXNlZCBzbyB5b3UgbmVlZCBub3QgZGVjbGFyZSBpdCBhcyBzdWNoKVxuICAgdGhhdCB0YWtlcyB0aGUgY2xhc3Mgb2Ygd2hpY2ggYW4gaW5zdGFuY2Ugd2FzIHJlcXVlc3RlZCBhcyBpdHNcbiAgIGZpcnN0IGFyZ3VtZW50LiAgVGhlIHJlbWFpbmluZyBhcmd1bWVudHMgYXJlIHRob3NlIHBhc3NlZCB0byB0aGVcbiAgIG9iamVjdCBjb25zdHJ1Y3RvciBleHByZXNzaW9uICh0aGUgY2FsbCB0byB0aGUgY2xhc3MpLiAgVGhlIHJldHVyblxuICAgdmFsdWUgb2YgYGBfX25ld19fKClgYCBzaG91bGQgYmUgdGhlIG5ldyBvYmplY3QgaW5zdGFuY2UgKHVzdWFsbHlcbiAgIGFuIGluc3RhbmNlIG9mICpjbHMqKS5cblxuICAgVHlwaWNhbCBpbXBsZW1lbnRhdGlvbnMgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBjbGFzcyBieVxuICAgaW52b2tpbmcgdGhlIHN1cGVyY2xhc3NcJ3MgYGBfX25ld19fKClgYCBtZXRob2QgdXNpbmdcbiAgIGBgc3VwZXIoY3VycmVudGNsYXNzLCBjbHMpLl9fbmV3X18oY2xzWywgLi4uXSlgYCB3aXRoIGFwcHJvcHJpYXRlXG4gICBhcmd1bWVudHMgYW5kIHRoZW4gbW9kaWZ5aW5nIHRoZSBuZXdseS1jcmVhdGVkIGluc3RhbmNlIGFzXG4gICBuZWNlc3NhcnkgYmVmb3JlIHJldHVybmluZyBpdC5cblxuICAgSWYgYGBfX25ld19fKClgYCByZXR1cm5zIGFuIGluc3RhbmNlIG9mICpjbHMqLCB0aGVuIHRoZSBuZXdcbiAgIGluc3RhbmNlXCdzIGBgX19pbml0X18oKWBgIG1ldGhvZCB3aWxsIGJlIGludm9rZWQgbGlrZVxuICAgYGBfX2luaXRfXyhzZWxmWywgLi4uXSlgYCwgd2hlcmUgKnNlbGYqIGlzIHRoZSBuZXcgaW5zdGFuY2UgYW5kIHRoZVxuICAgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgdGhlIHNhbWUgYXMgd2VyZSBwYXNzZWQgdG8gYGBfX25ld19fKClgYC5cblxuICAgSWYgYGBfX25ld19fKClgYCBkb2VzIG5vdCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgKmNscyosIHRoZW4gdGhlIG5ld1xuICAgaW5zdGFuY2VcJ3MgYGBfX2luaXRfXygpYGAgbWV0aG9kIHdpbGwgbm90IGJlIGludm9rZWQuXG5cbiAgIGBgX19uZXdfXygpYGAgaXMgaW50ZW5kZWQgbWFpbmx5IHRvIGFsbG93IHN1YmNsYXNzZXMgb2YgaW1tdXRhYmxlXG4gICB0eXBlcyAobGlrZSBpbnQsIHN0ciwgb3IgdHVwbGUpIHRvIGN1c3RvbWl6ZSBpbnN0YW5jZSBjcmVhdGlvbi4gIEl0XG4gICBpcyBhbHNvIGNvbW1vbmx5IG92ZXJyaWRkZW4gaW4gY3VzdG9tIG1ldGFjbGFzc2VzIGluIG9yZGVyIHRvXG4gICBjdXN0b21pemUgY2xhc3MgY3JlYXRpb24uXG5cbm9iamVjdC5fX2luaXRfXyhzZWxmWywgLi4uXSlcblxuICAgQ2FsbGVkIHdoZW4gdGhlIGluc3RhbmNlIGlzIGNyZWF0ZWQuICBUaGUgYXJndW1lbnRzIGFyZSB0aG9zZVxuICAgcGFzc2VkIHRvIHRoZSBjbGFzcyBjb25zdHJ1Y3RvciBleHByZXNzaW9uLiAgSWYgYSBiYXNlIGNsYXNzIGhhcyBhblxuICAgYGBfX2luaXRfXygpYGAgbWV0aG9kLCB0aGUgZGVyaXZlZCBjbGFzc1wncyBgYF9faW5pdF9fKClgYCBtZXRob2QsXG4gICBpZiBhbnksIG11c3QgZXhwbGljaXRseSBjYWxsIGl0IHRvIGVuc3VyZSBwcm9wZXIgaW5pdGlhbGl6YXRpb24gb2ZcbiAgIHRoZSBiYXNlIGNsYXNzIHBhcnQgb2YgdGhlIGluc3RhbmNlOyBmb3IgZXhhbXBsZTpcbiAgIGBgQmFzZUNsYXNzLl9faW5pdF9fKHNlbGYsIFthcmdzLi4uXSlgYC4gIEFzIGEgc3BlY2lhbCBjb25zdHJhaW50XG4gICBvbiBjb25zdHJ1Y3RvcnMsIG5vIHZhbHVlIG1heSBiZSByZXR1cm5lZDsgZG9pbmcgc28gd2lsbCBjYXVzZSBhXG4gICBgYFR5cGVFcnJvcmBgIHRvIGJlIHJhaXNlZCBhdCBydW50aW1lLlxuXG5vYmplY3QuX19kZWxfXyhzZWxmKVxuXG4gICBDYWxsZWQgd2hlbiB0aGUgaW5zdGFuY2UgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiAgVGhpcyBpcyBhbHNvXG4gICBjYWxsZWQgYSBkZXN0cnVjdG9yLiAgSWYgYSBiYXNlIGNsYXNzIGhhcyBhIGBgX19kZWxfXygpYGAgbWV0aG9kLFxuICAgdGhlIGRlcml2ZWQgY2xhc3NcJ3MgYGBfX2RlbF9fKClgYCBtZXRob2QsIGlmIGFueSwgbXVzdCBleHBsaWNpdGx5XG4gICBjYWxsIGl0IHRvIGVuc3VyZSBwcm9wZXIgZGVsZXRpb24gb2YgdGhlIGJhc2UgY2xhc3MgcGFydCBvZiB0aGVcbiAgIGluc3RhbmNlLiAgTm90ZSB0aGF0IGl0IGlzIHBvc3NpYmxlICh0aG91Z2ggbm90IHJlY29tbWVuZGVkISkgZm9yXG4gICB0aGUgYGBfX2RlbF9fKClgYCBtZXRob2QgdG8gcG9zdHBvbmUgZGVzdHJ1Y3Rpb24gb2YgdGhlIGluc3RhbmNlIGJ5XG4gICBjcmVhdGluZyBhIG5ldyByZWZlcmVuY2UgdG8gaXQuICBJdCBtYXkgdGhlbiBiZSBjYWxsZWQgYXQgYSBsYXRlclxuICAgdGltZSB3aGVuIHRoaXMgbmV3IHJlZmVyZW5jZSBpcyBkZWxldGVkLiAgSXQgaXMgbm90IGd1YXJhbnRlZWQgdGhhdFxuICAgYGBfX2RlbF9fKClgYCBtZXRob2RzIGFyZSBjYWxsZWQgZm9yIG9iamVjdHMgdGhhdCBzdGlsbCBleGlzdCB3aGVuXG4gICB0aGUgaW50ZXJwcmV0ZXIgZXhpdHMuXG5cbiAgIE5vdGU6IGBgZGVsIHhgYCBkb2VzblwndCBkaXJlY3RseSBjYWxsIGBgeC5fX2RlbF9fKClgYCAtLS0gdGhlIGZvcm1lclxuICAgICBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgZm9yIGBgeGBgIGJ5IG9uZSwgYW5kIHRoZSBsYXR0ZXJcbiAgICAgaXMgb25seSBjYWxsZWQgd2hlbiBgYHhgYFwncyByZWZlcmVuY2UgY291bnQgcmVhY2hlcyB6ZXJvLiAgU29tZVxuICAgICBjb21tb24gc2l0dWF0aW9ucyB0aGF0IG1heSBwcmV2ZW50IHRoZSByZWZlcmVuY2UgY291bnQgb2YgYW5cbiAgICAgb2JqZWN0IGZyb20gZ29pbmcgdG8gemVybyBpbmNsdWRlOiBjaXJjdWxhciByZWZlcmVuY2VzIGJldHdlZW5cbiAgICAgb2JqZWN0cyAoZS5nLiwgYSBkb3VibHktbGlua2VkIGxpc3Qgb3IgYSB0cmVlIGRhdGEgc3RydWN0dXJlIHdpdGhcbiAgICAgcGFyZW50IGFuZCBjaGlsZCBwb2ludGVycyk7IGEgcmVmZXJlbmNlIHRvIHRoZSBvYmplY3Qgb24gdGhlXG4gICAgIHN0YWNrIGZyYW1lIG9mIGEgZnVuY3Rpb24gdGhhdCBjYXVnaHQgYW4gZXhjZXB0aW9uICh0aGUgdHJhY2ViYWNrXG4gICAgIHN0b3JlZCBpbiBgYHN5cy5leGNfaW5mbygpWzJdYGAga2VlcHMgdGhlIHN0YWNrIGZyYW1lIGFsaXZlKTsgb3JcbiAgICAgYSByZWZlcmVuY2UgdG8gdGhlIG9iamVjdCBvbiB0aGUgc3RhY2sgZnJhbWUgdGhhdCByYWlzZWQgYW5cbiAgICAgdW5oYW5kbGVkIGV4Y2VwdGlvbiBpbiBpbnRlcmFjdGl2ZSBtb2RlICh0aGUgdHJhY2ViYWNrIHN0b3JlZCBpblxuICAgICBgYHN5cy5sYXN0X3RyYWNlYmFja2BgIGtlZXBzIHRoZSBzdGFjayBmcmFtZSBhbGl2ZSkuICBUaGUgZmlyc3RcbiAgICAgc2l0dWF0aW9uIGNhbiBvbmx5IGJlIHJlbWVkaWVkIGJ5IGV4cGxpY2l0bHkgYnJlYWtpbmcgdGhlIGN5Y2xlcztcbiAgICAgdGhlIGxhdHRlciB0d28gc2l0dWF0aW9ucyBjYW4gYmUgcmVzb2x2ZWQgYnkgc3RvcmluZyBgYE5vbmVgYCBpblxuICAgICBgYHN5cy5sYXN0X3RyYWNlYmFja2BgLiBDaXJjdWxhciByZWZlcmVuY2VzIHdoaWNoIGFyZSBnYXJiYWdlIGFyZVxuICAgICBkZXRlY3RlZCB3aGVuIHRoZSBvcHRpb24gY3ljbGUgZGV0ZWN0b3IgaXMgZW5hYmxlZCAoaXRcJ3Mgb24gYnlcbiAgICAgZGVmYXVsdCksIGJ1dCBjYW4gb25seSBiZSBjbGVhbmVkIHVwIGlmIHRoZXJlIGFyZSBubyBQeXRob24tXG4gICAgIGxldmVsIGBgX19kZWxfXygpYGAgbWV0aG9kcyBpbnZvbHZlZC4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb25cbiAgICAgZm9yIHRoZSBgYGdjYGAgbW9kdWxlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvd1xuICAgICBgYF9fZGVsX18oKWBgIG1ldGhvZHMgYXJlIGhhbmRsZWQgYnkgdGhlIGN5Y2xlIGRldGVjdG9yLFxuICAgICBwYXJ0aWN1bGFybHkgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBgYGdhcmJhZ2VgYCB2YWx1ZS5cblxuICAgV2FybmluZzogRHVlIHRvIHRoZSBwcmVjYXJpb3VzIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggYGBfX2RlbF9fKClgYFxuICAgICBtZXRob2RzIGFyZSBpbnZva2VkLCBleGNlcHRpb25zIHRoYXQgb2NjdXIgZHVyaW5nIHRoZWlyIGV4ZWN1dGlvblxuICAgICBhcmUgaWdub3JlZCwgYW5kIGEgd2FybmluZyBpcyBwcmludGVkIHRvIGBgc3lzLnN0ZGVycmBgIGluc3RlYWQuXG4gICAgIEFsc28sIHdoZW4gYGBfX2RlbF9fKClgYCBpcyBpbnZva2VkIGluIHJlc3BvbnNlIHRvIGEgbW9kdWxlIGJlaW5nXG4gICAgIGRlbGV0ZWQgKGUuZy4sIHdoZW4gZXhlY3V0aW9uIG9mIHRoZSBwcm9ncmFtIGlzIGRvbmUpLCBvdGhlclxuICAgICBnbG9iYWxzIHJlZmVyZW5jZWQgYnkgdGhlIGBgX19kZWxfXygpYGAgbWV0aG9kIG1heSBhbHJlYWR5IGhhdmVcbiAgICAgYmVlbiBkZWxldGVkIG9yIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIHRvcm4gZG93biAoZS5nLiB0aGVcbiAgICAgaW1wb3J0IG1hY2hpbmVyeSBzaHV0dGluZyBkb3duKS4gIEZvciB0aGlzIHJlYXNvbiwgYGBfX2RlbF9fKClgYFxuICAgICBtZXRob2RzIHNob3VsZCBkbyB0aGUgYWJzb2x1dGUgbWluaW11bSBuZWVkZWQgdG8gbWFpbnRhaW5cbiAgICAgZXh0ZXJuYWwgaW52YXJpYW50cy4gIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiAxLjUsIFB5dGhvblxuICAgICBndWFyYW50ZWVzIHRoYXQgZ2xvYmFscyB3aG9zZSBuYW1lIGJlZ2lucyB3aXRoIGEgc2luZ2xlXG4gICAgIHVuZGVyc2NvcmUgYXJlIGRlbGV0ZWQgZnJvbSB0aGVpciBtb2R1bGUgYmVmb3JlIG90aGVyIGdsb2JhbHMgYXJlXG4gICAgIGRlbGV0ZWQ7IGlmIG5vIG90aGVyIHJlZmVyZW5jZXMgdG8gc3VjaCBnbG9iYWxzIGV4aXN0LCB0aGlzIG1heVxuICAgICBoZWxwIGluIGFzc3VyaW5nIHRoYXQgaW1wb3J0ZWQgbW9kdWxlcyBhcmUgc3RpbGwgYXZhaWxhYmxlIGF0IHRoZVxuICAgICB0aW1lIHdoZW4gdGhlIGBgX19kZWxfXygpYGAgbWV0aG9kIGlzIGNhbGxlZC5cblxub2JqZWN0Ll9fcmVwcl9fKHNlbGYpXG5cbiAgIENhbGxlZCBieSB0aGUgYGByZXByKClgYCBidWlsdC1pbiBmdW5jdGlvbiB0byBjb21wdXRlIHRoZVxuICAgIm9mZmljaWFsIiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiAgSWYgYXQgYWxsIHBvc3NpYmxlLFxuICAgdGhpcyBzaG91bGQgbG9vayBsaWtlIGEgdmFsaWQgUHl0aG9uIGV4cHJlc3Npb24gdGhhdCBjb3VsZCBiZSB1c2VkXG4gICB0byByZWNyZWF0ZSBhbiBvYmplY3Qgd2l0aCB0aGUgc2FtZSB2YWx1ZSAoZ2l2ZW4gYW4gYXBwcm9wcmlhdGVcbiAgIGVudmlyb25tZW50KS4gIElmIHRoaXMgaXMgbm90IHBvc3NpYmxlLCBhIHN0cmluZyBvZiB0aGUgZm9ybVxuICAgYGA8Li4uc29tZSB1c2VmdWwgZGVzY3JpcHRpb24uLi4+YGAgc2hvdWxkIGJlIHJldHVybmVkLiBUaGUgcmV0dXJuXG4gICB2YWx1ZSBtdXN0IGJlIGEgc3RyaW5nIG9iamVjdC4gSWYgYSBjbGFzcyBkZWZpbmVzIGBgX19yZXByX18oKWBgXG4gICBidXQgbm90IGBgX19zdHJfXygpYGAsIHRoZW4gYGBfX3JlcHJfXygpYGAgaXMgYWxzbyB1c2VkIHdoZW4gYW5cbiAgICJpbmZvcm1hbCIgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGluc3RhbmNlcyBvZiB0aGF0IGNsYXNzIGlzXG4gICByZXF1aXJlZC5cblxuICAgVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCBmb3IgZGVidWdnaW5nLCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGVcbiAgIHJlcHJlc2VudGF0aW9uIGlzIGluZm9ybWF0aW9uLXJpY2ggYW5kIHVuYW1iaWd1b3VzLlxuXG5vYmplY3QuX19zdHJfXyhzZWxmKVxuXG4gICBDYWxsZWQgYnkgdGhlIGBgc3RyKClgYCBidWlsdC1pbiBmdW5jdGlvbiBhbmQgYnkgdGhlIGBgcHJpbnQoKWBgXG4gICBmdW5jdGlvbiB0byBjb21wdXRlIHRoZSAiaW5mb3JtYWwiIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhblxuICAgb2JqZWN0LiAgVGhpcyBkaWZmZXJzIGZyb20gYGBfX3JlcHJfXygpYGAgaW4gdGhhdCBpdCBkb2VzIG5vdCBoYXZlXG4gICB0byBiZSBhIHZhbGlkIFB5dGhvbiBleHByZXNzaW9uOiBhIG1vcmUgY29udmVuaWVudCBvciBjb25jaXNlXG4gICByZXByZXNlbnRhdGlvbiBtYXkgYmUgdXNlZCBpbnN0ZWFkLiBUaGUgcmV0dXJuIHZhbHVlIG11c3QgYmUgYVxuICAgc3RyaW5nIG9iamVjdC5cblxub2JqZWN0Ll9fYnl0ZXNfXyhzZWxmKVxuXG4gICBDYWxsZWQgYnkgYGBieXRlcygpYGAgdG8gY29tcHV0ZSBhIGJ5dGUtc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuXG4gICBvYmplY3QuIFRoaXMgc2hvdWxkIHJldHVybiBhIGBgYnl0ZXNgYCBvYmplY3QuXG5cbm9iamVjdC5fX2Zvcm1hdF9fKHNlbGYsIGZvcm1hdF9zcGVjKVxuXG4gICBDYWxsZWQgYnkgdGhlIGBgZm9ybWF0KClgYCBidWlsdC1pbiBmdW5jdGlvbiAoYW5kIGJ5IGV4dGVuc2lvbiwgdGhlXG4gICBgYGZvcm1hdCgpYGAgbWV0aG9kIG9mIGNsYXNzIGBgc3RyYGApIHRvIHByb2R1Y2UgYSAiZm9ybWF0dGVkIlxuICAgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gVGhlIGBgZm9ybWF0X3NwZWNgYCBhcmd1bWVudCBpc1xuICAgYSBzdHJpbmcgdGhhdCBjb250YWlucyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnNcbiAgIGRlc2lyZWQuIFRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgYGBmb3JtYXRfc3BlY2BgIGFyZ3VtZW50IGlzIHVwXG4gICB0byB0aGUgdHlwZSBpbXBsZW1lbnRpbmcgYGBfX2Zvcm1hdF9fKClgYCwgaG93ZXZlciBtb3N0IGNsYXNzZXNcbiAgIHdpbGwgZWl0aGVyIGRlbGVnYXRlIGZvcm1hdHRpbmcgdG8gb25lIG9mIHRoZSBidWlsdC1pbiB0eXBlcywgb3JcbiAgIHVzZSBhIHNpbWlsYXIgZm9ybWF0dGluZyBvcHRpb24gc3ludGF4LlxuXG4gICBTZWUgKkZvcm1hdCBTcGVjaWZpY2F0aW9uIE1pbmktTGFuZ3VhZ2UqIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZVxuICAgc3RhbmRhcmQgZm9ybWF0dGluZyBzeW50YXguXG5cbiAgIFRoZSByZXR1cm4gdmFsdWUgbXVzdCBiZSBhIHN0cmluZyBvYmplY3QuXG5cbm9iamVjdC5fX2x0X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19sZV9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fZXFfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX25lX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19ndF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fZ2VfXyhzZWxmLCBvdGhlcilcblxuICAgVGhlc2UgYXJlIHRoZSBzby1jYWxsZWQgInJpY2ggY29tcGFyaXNvbiIgbWV0aG9kcy4gVGhlXG4gICBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuIG9wZXJhdG9yIHN5bWJvbHMgYW5kIG1ldGhvZCBuYW1lcyBpcyBhc1xuICAgZm9sbG93czogYGB4PHlgYCBjYWxscyBgYHguX19sdF9fKHkpYGAsIGBgeDw9eWBgIGNhbGxzXG4gICBgYHguX19sZV9fKHkpYGAsIGBgeD09eWBgIGNhbGxzIGBgeC5fX2VxX18oeSlgYCwgYGB4IT15YGAgY2FsbHNcbiAgIGBgeC5fX25lX18oeSlgYCwgYGB4PnlgYCBjYWxscyBgYHguX19ndF9fKHkpYGAsIGFuZCBgYHg+PXlgYCBjYWxsc1xuICAgYGB4Ll9fZ2VfXyh5KWBgLlxuXG4gICBBIHJpY2ggY29tcGFyaXNvbiBtZXRob2QgbWF5IHJldHVybiB0aGUgc2luZ2xldG9uXG4gICBgYE5vdEltcGxlbWVudGVkYGAgaWYgaXQgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBvcGVyYXRpb24gZm9yIGFcbiAgIGdpdmVuIHBhaXIgb2YgYXJndW1lbnRzLiBCeSBjb252ZW50aW9uLCBgYEZhbHNlYGAgYW5kIGBgVHJ1ZWBgIGFyZVxuICAgcmV0dXJuZWQgZm9yIGEgc3VjY2Vzc2Z1bCBjb21wYXJpc29uLiBIb3dldmVyLCB0aGVzZSBtZXRob2RzIGNhblxuICAgcmV0dXJuIGFueSB2YWx1ZSwgc28gaWYgdGhlIGNvbXBhcmlzb24gb3BlcmF0b3IgaXMgdXNlZCBpbiBhXG4gICBCb29sZWFuIGNvbnRleHQgKGUuZy4sIGluIHRoZSBjb25kaXRpb24gb2YgYW4gYGBpZmBgIHN0YXRlbWVudCksXG4gICBQeXRob24gd2lsbCBjYWxsIGBgYm9vbCgpYGAgb24gdGhlIHZhbHVlIHRvIGRldGVybWluZSBpZiB0aGUgcmVzdWx0XG4gICBpcyB0cnVlIG9yIGZhbHNlLlxuXG4gICBUaGVyZSBhcmUgbm8gaW1wbGllZCByZWxhdGlvbnNoaXBzIGFtb25nIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycy5cbiAgIFRoZSB0cnV0aCBvZiBgYHg9PXlgYCBkb2VzIG5vdCBpbXBseSB0aGF0IGBgeCE9eWBgIGlzIGZhbHNlLlxuICAgQWNjb3JkaW5nbHksIHdoZW4gZGVmaW5pbmcgYGBfX2VxX18oKWBgLCBvbmUgc2hvdWxkIGFsc28gZGVmaW5lXG4gICBgYF9fbmVfXygpYGAgc28gdGhhdCB0aGUgb3BlcmF0b3JzIHdpbGwgYmVoYXZlIGFzIGV4cGVjdGVkLiAgU2VlXG4gICB0aGUgcGFyYWdyYXBoIG9uIGBgX19oYXNoX18oKWBgIGZvciBzb21lIGltcG9ydGFudCBub3RlcyBvblxuICAgY3JlYXRpbmcgKmhhc2hhYmxlKiBvYmplY3RzIHdoaWNoIHN1cHBvcnQgY3VzdG9tIGNvbXBhcmlzb25cbiAgIG9wZXJhdGlvbnMgYW5kIGFyZSB1c2FibGUgYXMgZGljdGlvbmFyeSBrZXlzLlxuXG4gICBUaGVyZSBhcmUgbm8gc3dhcHBlZC1hcmd1bWVudCB2ZXJzaW9ucyBvZiB0aGVzZSBtZXRob2RzICh0byBiZSB1c2VkXG4gICB3aGVuIHRoZSBsZWZ0IGFyZ3VtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIG9wZXJhdGlvbiBidXQgdGhlIHJpZ2h0XG4gICBhcmd1bWVudCBkb2VzKTsgcmF0aGVyLCBgYF9fbHRfXygpYGAgYW5kIGBgX19ndF9fKClgYCBhcmUgZWFjaFxuICAgb3RoZXJcJ3MgcmVmbGVjdGlvbiwgYGBfX2xlX18oKWBgIGFuZCBgYF9fZ2VfXygpYGAgYXJlIGVhY2ggb3RoZXJcJ3NcbiAgIHJlZmxlY3Rpb24sIGFuZCBgYF9fZXFfXygpYGAgYW5kIGBgX19uZV9fKClgYCBhcmUgdGhlaXIgb3duXG4gICByZWZsZWN0aW9uLlxuXG4gICBBcmd1bWVudHMgdG8gcmljaCBjb21wYXJpc29uIG1ldGhvZHMgYXJlIG5ldmVyIGNvZXJjZWQuXG5cbiAgIFRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgb3JkZXJpbmcgb3BlcmF0aW9ucyBmcm9tIGEgc2luZ2xlIHJvb3RcbiAgIG9wZXJhdGlvbiwgc2VlIGBgZnVuY3Rvb2xzLnRvdGFsX29yZGVyaW5nKClgYC5cblxub2JqZWN0Ll9faGFzaF9fKHNlbGYpXG5cbiAgIENhbGxlZCBieSBidWlsdC1pbiBmdW5jdGlvbiBgYGhhc2goKWBgIGFuZCBmb3Igb3BlcmF0aW9ucyBvblxuICAgbWVtYmVycyBvZiBoYXNoZWQgY29sbGVjdGlvbnMgaW5jbHVkaW5nIGBgc2V0YGAsIGBgZnJvemVuc2V0YGAsIGFuZFxuICAgYGBkaWN0YGAuICBgYF9faGFzaF9fKClgYCBzaG91bGQgcmV0dXJuIGFuIGludGVnZXIuICBUaGUgb25seVxuICAgcmVxdWlyZWQgcHJvcGVydHkgaXMgdGhhdCBvYmplY3RzIHdoaWNoIGNvbXBhcmUgZXF1YWwgaGF2ZSB0aGUgc2FtZVxuICAgaGFzaCB2YWx1ZTsgaXQgaXMgYWR2aXNlZCB0byBzb21laG93IG1peCB0b2dldGhlciAoZS5nLiB1c2luZ1xuICAgZXhjbHVzaXZlIG9yKSB0aGUgaGFzaCB2YWx1ZXMgZm9yIHRoZSBjb21wb25lbnRzIG9mIHRoZSBvYmplY3QgdGhhdFxuICAgYWxzbyBwbGF5IGEgcGFydCBpbiBjb21wYXJpc29uIG9mIG9iamVjdHMuXG5cbiAgIElmIGEgY2xhc3MgZG9lcyBub3QgZGVmaW5lIGFuIGBgX19lcV9fKClgYCBtZXRob2QgaXQgc2hvdWxkIG5vdFxuICAgZGVmaW5lIGEgYGBfX2hhc2hfXygpYGAgb3BlcmF0aW9uIGVpdGhlcjsgaWYgaXQgZGVmaW5lc1xuICAgYGBfX2VxX18oKWBgIGJ1dCBub3QgYGBfX2hhc2hfXygpYGAsIGl0cyBpbnN0YW5jZXMgd2lsbCBub3QgYmVcbiAgIHVzYWJsZSBhcyBpdGVtcyBpbiBoYXNoYWJsZSBjb2xsZWN0aW9ucy4gIElmIGEgY2xhc3MgZGVmaW5lc1xuICAgbXV0YWJsZSBvYmplY3RzIGFuZCBpbXBsZW1lbnRzIGFuIGBgX19lcV9fKClgYCBtZXRob2QsIGl0IHNob3VsZFxuICAgbm90IGltcGxlbWVudCBgYF9faGFzaF9fKClgYCwgc2luY2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIGhhc2hhYmxlXG4gICBjb2xsZWN0aW9ucyByZXF1aXJlcyB0aGF0IGEga2V5XCdzIGhhc2ggdmFsdWUgaXMgaW1tdXRhYmxlIChpZiB0aGVcbiAgIG9iamVjdFwncyBoYXNoIHZhbHVlIGNoYW5nZXMsIGl0IHdpbGwgYmUgaW4gdGhlIHdyb25nIGhhc2ggYnVja2V0KS5cblxuICAgVXNlci1kZWZpbmVkIGNsYXNzZXMgaGF2ZSBgYF9fZXFfXygpYGAgYW5kIGBgX19oYXNoX18oKWBgIG1ldGhvZHNcbiAgIGJ5IGRlZmF1bHQ7IHdpdGggdGhlbSwgYWxsIG9iamVjdHMgY29tcGFyZSB1bmVxdWFsIChleGNlcHQgd2l0aFxuICAgdGhlbXNlbHZlcykgYW5kIGBgeC5fX2hhc2hfXygpYGAgcmV0dXJucyBhbiBhcHByb3ByaWF0ZSB2YWx1ZSBzdWNoXG4gICB0aGF0IGBgeCA9PSB5YGAgaW1wbGllcyBib3RoIHRoYXQgYGB4IGlzIHlgYCBhbmQgYGBoYXNoKHgpID09XG4gICBoYXNoKHkpYGAuXG5cbiAgIENsYXNzZXMgd2hpY2ggaW5oZXJpdCBhIGBgX19oYXNoX18oKWBgIG1ldGhvZCBmcm9tIGEgcGFyZW50IGNsYXNzXG4gICBidXQgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIGBgX19lcV9fKClgYCBzdWNoIHRoYXQgdGhlIGhhc2ggdmFsdWVcbiAgIHJldHVybmVkIGlzIG5vIGxvbmdlciBhcHByb3ByaWF0ZSAoZS5nLiBieSBzd2l0Y2hpbmcgdG8gYSB2YWx1ZS1cbiAgIGJhc2VkIGNvbmNlcHQgb2YgZXF1YWxpdHkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBpZGVudGl0eSBiYXNlZFxuICAgZXF1YWxpdHkpIGNhbiBleHBsaWNpdGx5IGZsYWcgdGhlbXNlbHZlcyBhcyBiZWluZyB1bmhhc2hhYmxlIGJ5XG4gICBzZXR0aW5nIGBgX19oYXNoX18gPSBOb25lYGAgaW4gdGhlIGNsYXNzIGRlZmluaXRpb24uIERvaW5nIHNvIG1lYW5zXG4gICB0aGF0IG5vdCBvbmx5IHdpbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcyByYWlzZSBhbiBhcHByb3ByaWF0ZVxuICAgYGBUeXBlRXJyb3JgYCB3aGVuIGEgcHJvZ3JhbSBhdHRlbXB0cyB0byByZXRyaWV2ZSB0aGVpciBoYXNoIHZhbHVlLFxuICAgYnV0IHRoZXkgd2lsbCBhbHNvIGJlIGNvcnJlY3RseSBpZGVudGlmaWVkIGFzIHVuaGFzaGFibGUgd2hlblxuICAgY2hlY2tpbmcgYGBpc2luc3RhbmNlKG9iaiwgY29sbGVjdGlvbnMuSGFzaGFibGUpYGAgKHVubGlrZSBjbGFzc2VzXG4gICB3aGljaCBkZWZpbmUgdGhlaXIgb3duIGBgX19oYXNoX18oKWBgIHRvIGV4cGxpY2l0bHkgcmFpc2VcbiAgIGBgVHlwZUVycm9yYGApLlxuXG4gICBJZiBhIGNsYXNzIHRoYXQgb3ZlcnJpZGVzIGBgX19lcV9fKClgYCBuZWVkcyB0byByZXRhaW4gdGhlXG4gICBpbXBsZW1lbnRhdGlvbiBvZiBgYF9faGFzaF9fKClgYCBmcm9tIGEgcGFyZW50IGNsYXNzLCB0aGVcbiAgIGludGVycHJldGVyIG11c3QgYmUgdG9sZCB0aGlzIGV4cGxpY2l0bHkgYnkgc2V0dGluZyBgYF9faGFzaF9fID1cbiAgIDxQYXJlbnRDbGFzcz4uX19oYXNoX19gYC4gT3RoZXJ3aXNlIHRoZSBpbmhlcml0YW5jZSBvZlxuICAgYGBfX2hhc2hfXygpYGAgd2lsbCBiZSBibG9ja2VkLCBqdXN0IGFzIGlmIGBgX19oYXNoX19gYCBoYWQgYmVlblxuICAgZXhwbGljaXRseSBzZXQgdG8gYGBOb25lYGAuXG5cbiAgIE5vdGU6IE5vdGUgYnkgZGVmYXVsdCB0aGUgYGBfX2hhc2hfXygpYGAgdmFsdWVzIG9mIHN0ciwgYnl0ZXMgYW5kXG4gICAgIGRhdGV0aW1lIG9iamVjdHMgYXJlICJzYWx0ZWQiIHdpdGggYW4gdW5wcmVkaWN0YWJsZSByYW5kb20gdmFsdWUuXG4gICAgIEFsdGhvdWdoIHRoZXkgcmVtYWluIGNvbnN0YW50IHdpdGhpbiBhbiBpbmRpdmlkdWFsIFB5dGhvblxuICAgICBwcm9jZXNzLCB0aGV5IGFyZSBub3QgcHJlZGljdGFibGUgYmV0d2VlbiByZXBlYXRlZCBpbnZvY2F0aW9ucyBvZlxuICAgICBQeXRob24uVGhpcyBpcyBpbnRlbmRlZCB0byBwcm92aWRlIHByb3RlY3Rpb24gYWdhaW5zdCBhIGRlbmlhbC1cbiAgICAgb2Ytc2VydmljZSBjYXVzZWQgYnkgY2FyZWZ1bGx5LWNob3NlbiBpbnB1dHMgdGhhdCBleHBsb2l0IHRoZVxuICAgICB3b3JzdCBjYXNlIHBlcmZvcm1hbmNlIG9mIGEgZGljdCBpbnNlcnRpb24sIE8obl4yKSBjb21wbGV4aXR5LlxuICAgICBTZWUgaHR0cDovL3d3dy5vY2VydC5vcmcvYWR2aXNvcmllcy9vY2VydC0yMDExLTAwMy5odG1sIGZvclxuICAgICBkZXRhaWxzLkNoYW5naW5nIGhhc2ggdmFsdWVzIGFmZmVjdHMgdGhlIG9yZGVyIGluIHdoaWNoIGtleXMgYXJlXG4gICAgIHJldHJpZXZlZCBmcm9tIGEgZGljdC4gIE5vdGUgUHl0aG9uIGhhcyBuZXZlciBtYWRlIGd1YXJhbnRlZXNcbiAgICAgYWJvdXQgdGhpcyBvcmRlcmluZyAoYW5kIGl0IHR5cGljYWxseSB2YXJpZXMgYmV0d2VlbiAzMi1iaXQgYW5kXG4gICAgIDY0LWJpdCBidWlsZHMpLlNlZSBhbHNvIGBgUFlUSE9OSEFTSFNFRURgYC5cblxuICAgQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMzogSGFzaCByYW5kb21pemF0aW9uIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC5cblxub2JqZWN0Ll9fYm9vbF9fKHNlbGYpXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgdHJ1dGggdmFsdWUgdGVzdGluZyBhbmQgdGhlIGJ1aWx0LWluIG9wZXJhdGlvblxuICAgYGBib29sKClgYDsgc2hvdWxkIHJldHVybiBgYEZhbHNlYGAgb3IgYGBUcnVlYGAuICBXaGVuIHRoaXMgbWV0aG9kXG4gICBpcyBub3QgZGVmaW5lZCwgYGBfX2xlbl9fKClgYCBpcyBjYWxsZWQsIGlmIGl0IGlzIGRlZmluZWQsIGFuZCB0aGVcbiAgIG9iamVjdCBpcyBjb25zaWRlcmVkIHRydWUgaWYgaXRzIHJlc3VsdCBpcyBub256ZXJvLiAgSWYgYSBjbGFzc1xuICAgZGVmaW5lcyBuZWl0aGVyIGBgX19sZW5fXygpYGAgbm9yIGBgX19ib29sX18oKWBgLCBhbGwgaXRzIGluc3RhbmNlc1xuICAgYXJlIGNvbnNpZGVyZWQgdHJ1ZS5cbicsCisgJ2RlYnVnZ2VyJzogJ1xuYGBwZGJgYCAtLS0gVGhlIFB5dGhvbiBEZWJ1Z2dlclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5UaGUgbW9kdWxlIGBgcGRiYGAgZGVmaW5lcyBhbiBpbnRlcmFjdGl2ZSBzb3VyY2UgY29kZSBkZWJ1Z2dlciBmb3JcblB5dGhvbiBwcm9ncmFtcy4gIEl0IHN1cHBvcnRzIHNldHRpbmcgKGNvbmRpdGlvbmFsKSBicmVha3BvaW50cyBhbmRcbnNpbmdsZSBzdGVwcGluZyBhdCB0aGUgc291cmNlIGxpbmUgbGV2ZWwsIGluc3BlY3Rpb24gb2Ygc3RhY2sgZnJhbWVzLFxuc291cmNlIGNvZGUgbGlzdGluZywgYW5kIGV2YWx1YXRpb24gb2YgYXJiaXRyYXJ5IFB5dGhvbiBjb2RlIGluIHRoZVxuY29udGV4dCBvZiBhbnkgc3RhY2sgZnJhbWUuICBJdCBhbHNvIHN1cHBvcnRzIHBvc3QtbW9ydGVtIGRlYnVnZ2luZ1xuYW5kIGNhbiBiZSBjYWxsZWQgdW5kZXIgcHJvZ3JhbSBjb250cm9sLlxuXG5UaGUgZGVidWdnZXIgaXMgZXh0ZW5zaWJsZSAtLSBpdCBpcyBhY3R1YWxseSBkZWZpbmVkIGFzIHRoZSBjbGFzc1xuYGBQZGJgYC4gVGhpcyBpcyBjdXJyZW50bHkgdW5kb2N1bWVudGVkIGJ1dCBlYXNpbHkgdW5kZXJzdG9vZCBieVxucmVhZGluZyB0aGUgc291cmNlLiAgVGhlIGV4dGVuc2lvbiBpbnRlcmZhY2UgdXNlcyB0aGUgbW9kdWxlcyBgYGJkYmBgXG5hbmQgYGBjbWRgYC5cblxuVGhlIGRlYnVnZ2VyXCdzIHByb21wdCBpcyBgYChQZGIpYGAuIFR5cGljYWwgdXNhZ2UgdG8gcnVuIGEgcHJvZ3JhbVxudW5kZXIgY29udHJvbCBvZiB0aGUgZGVidWdnZXIgaXM6XG5cbiAgID4+PiBpbXBvcnQgcGRiXG4gICA+Pj4gaW1wb3J0IG15bW9kdWxlXG4gICA+Pj4gcGRiLnJ1bihcJ215bW9kdWxlLnRlc3QoKVwnKVxuICAgPiA8c3RyaW5nPigwKT8oKVxuICAgKFBkYikgY29udGludWVcbiAgID4gPHN0cmluZz4oMSk/KClcbiAgIChQZGIpIGNvbnRpbnVlXG4gICBOYW1lRXJyb3I6IFwnc3BhbVwnXG4gICA+IDxzdHJpbmc+KDEpPygpXG4gICAoUGRiKVxuXG5DaGFuZ2VkIGluIHZlcnNpb24gMy4zOiBUYWItY29tcGxldGlvbiB2aWEgdGhlIGBgcmVhZGxpbmVgYCBtb2R1bGUgaXNcbmF2YWlsYWJsZSBmb3IgY29tbWFuZHMgYW5kIGNvbW1hbmQgYXJndW1lbnRzLCBlLmcuIHRoZSBjdXJyZW50IGdsb2JhbFxuYW5kIGxvY2FsIG5hbWVzIGFyZSBvZmZlcmVkIGFzIGFyZ3VtZW50cyBvZiB0aGUgYGBwcmludGBgIGNvbW1hbmQuXG5cbmBgcGRiLnB5YGAgY2FuIGFsc28gYmUgaW52b2tlZCBhcyBhIHNjcmlwdCB0byBkZWJ1ZyBvdGhlciBzY3JpcHRzLlxuRm9yIGV4YW1wbGU6XG5cbiAgIHB5dGhvbjMgLW0gcGRiIG15c2NyaXB0LnB5XG5cbldoZW4gaW52b2tlZCBhcyBhIHNjcmlwdCwgcGRiIHdpbGwgYXV0b21hdGljYWxseSBlbnRlciBwb3N0LW1vcnRlbVxuZGVidWdnaW5nIGlmIHRoZSBwcm9ncmFtIGJlaW5nIGRlYnVnZ2VkIGV4aXRzIGFibm9ybWFsbHkuICBBZnRlciBwb3N0LVxubW9ydGVtIGRlYnVnZ2luZyAob3IgYWZ0ZXIgbm9ybWFsIGV4aXQgb2YgdGhlIHByb2dyYW0pLCBwZGIgd2lsbFxucmVzdGFydCB0aGUgcHJvZ3JhbS4gIEF1dG9tYXRpYyByZXN0YXJ0aW5nIHByZXNlcnZlcyBwZGJcJ3Mgc3RhdGUgKHN1Y2hcbmFzIGJyZWFrcG9pbnRzKSBhbmQgaW4gbW9zdCBjYXNlcyBpcyBtb3JlIHVzZWZ1bCB0aGFuIHF1aXR0aW5nIHRoZVxuZGVidWdnZXIgdXBvbiBwcm9ncmFtXCdzIGV4aXQuXG5cbk5ldyBpbiB2ZXJzaW9uIDMuMjogYGBwZGIucHlgYCBub3cgYWNjZXB0cyBhIGBgLWNgYCBvcHRpb24gdGhhdFxuZXhlY3V0ZXMgY29tbWFuZHMgYXMgaWYgZ2l2ZW4gaW4gYSBgYC5wZGJyY2BgIGZpbGUsIHNlZSAqRGVidWdnZXJcbkNvbW1hbmRzKi5cblxuVGhlIHR5cGljYWwgdXNhZ2UgdG8gYnJlYWsgaW50byB0aGUgZGVidWdnZXIgZnJvbSBhIHJ1bm5pbmcgcHJvZ3JhbSBpc1xudG8gaW5zZXJ0XG5cbiAgIGltcG9ydCBwZGI7IHBkYi5zZXRfdHJhY2UoKVxuXG5hdCB0aGUgbG9jYXRpb24geW91IHdhbnQgdG8gYnJlYWsgaW50byB0aGUgZGVidWdnZXIuICBZb3UgY2FuIHRoZW5cbnN0ZXAgdGhyb3VnaCB0aGUgY29kZSBmb2xsb3dpbmcgdGhpcyBzdGF0ZW1lbnQsIGFuZCBjb250aW51ZSBydW5uaW5nXG53aXRob3V0IHRoZSBkZWJ1Z2dlciB1c2luZyB0aGUgYGBjb250aW51ZWBgIGNvbW1hbmQuXG5cblRoZSB0eXBpY2FsIHVzYWdlIHRvIGluc3BlY3QgYSBjcmFzaGVkIHByb2dyYW0gaXM6XG5cbiAgID4+PiBpbXBvcnQgcGRiXG4gICA+Pj4gaW1wb3J0IG15bW9kdWxlXG4gICA+Pj4gbXltb2R1bGUudGVzdCgpXG4gICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDEsIGluID9cbiAgICAgRmlsZSAiLi9teW1vZHVsZS5weSIsIGxpbmUgNCwgaW4gdGVzdFxuICAgICAgIHRlc3QyKClcbiAgICAgRmlsZSAiLi9teW1vZHVsZS5weSIsIGxpbmUgMywgaW4gdGVzdDJcbiAgICAgICBwcmludChzcGFtKVxuICAgTmFtZUVycm9yOiBzcGFtXG4gICA+Pj4gcGRiLnBtKClcbiAgID4gLi9teW1vZHVsZS5weSgzKXRlc3QyKClcbiAgIC0+IHByaW50KHNwYW0pXG4gICAoUGRiKVxuXG5UaGUgbW9kdWxlIGRlZmluZXMgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM7IGVhY2ggZW50ZXJzIHRoZSBkZWJ1Z2dlclxuaW4gYSBzbGlnaHRseSBkaWZmZXJlbnQgd2F5OlxuXG5wZGIucnVuKHN0YXRlbWVudCwgZ2xvYmFscz1Ob25lLCBsb2NhbHM9Tm9uZSlcblxuICAgRXhlY3V0ZSB0aGUgKnN0YXRlbWVudCogKGdpdmVuIGFzIGEgc3RyaW5nIG9yIGEgY29kZSBvYmplY3QpIHVuZGVyXG4gICBkZWJ1Z2dlciBjb250cm9sLiAgVGhlIGRlYnVnZ2VyIHByb21wdCBhcHBlYXJzIGJlZm9yZSBhbnkgY29kZSBpc1xuICAgZXhlY3V0ZWQ7IHlvdSBjYW4gc2V0IGJyZWFrcG9pbnRzIGFuZCB0eXBlIGBgY29udGludWVgYCwgb3IgeW91IGNhblxuICAgc3RlcCB0aHJvdWdoIHRoZSBzdGF0ZW1lbnQgdXNpbmcgYGBzdGVwYGAgb3IgYGBuZXh0YGAgKGFsbCB0aGVzZVxuICAgY29tbWFuZHMgYXJlIGV4cGxhaW5lZCBiZWxvdykuICBUaGUgb3B0aW9uYWwgKmdsb2JhbHMqIGFuZCAqbG9jYWxzKlxuICAgYXJndW1lbnRzIHNwZWNpZnkgdGhlIGVudmlyb25tZW50IGluIHdoaWNoIHRoZSBjb2RlIGlzIGV4ZWN1dGVkOyBieVxuICAgZGVmYXVsdCB0aGUgZGljdGlvbmFyeSBvZiB0aGUgbW9kdWxlIGBgX19tYWluX19gYCBpcyB1c2VkLiAgKFNlZVxuICAgdGhlIGV4cGxhbmF0aW9uIG9mIHRoZSBidWlsdC1pbiBgYGV4ZWMoKWBgIG9yIGBgZXZhbCgpYGBcbiAgIGZ1bmN0aW9ucy4pXG5cbnBkYi5ydW5ldmFsKGV4cHJlc3Npb24sIGdsb2JhbHM9Tm9uZSwgbG9jYWxzPU5vbmUpXG5cbiAgIEV2YWx1YXRlIHRoZSAqZXhwcmVzc2lvbiogKGdpdmVuIGFzIGEgc3RyaW5nIG9yIGEgY29kZSBvYmplY3QpXG4gICB1bmRlciBkZWJ1Z2dlciBjb250cm9sLiAgV2hlbiBgYHJ1bmV2YWwoKWBgIHJldHVybnMsIGl0IHJldHVybnMgdGhlXG4gICB2YWx1ZSBvZiB0aGUgZXhwcmVzc2lvbi4gIE90aGVyd2lzZSB0aGlzIGZ1bmN0aW9uIGlzIHNpbWlsYXIgdG9cbiAgIGBgcnVuKClgYC5cblxucGRiLnJ1bmNhbGwoZnVuY3Rpb24sICphcmdzLCAqKmt3ZHMpXG5cbiAgIENhbGwgdGhlICpmdW5jdGlvbiogKGEgZnVuY3Rpb24gb3IgbWV0aG9kIG9iamVjdCwgbm90IGEgc3RyaW5nKVxuICAgd2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiAgV2hlbiBgYHJ1bmNhbGwoKWBgIHJldHVybnMsIGl0IHJldHVybnNcbiAgIHdoYXRldmVyIHRoZSBmdW5jdGlvbiBjYWxsIHJldHVybmVkLiAgVGhlIGRlYnVnZ2VyIHByb21wdCBhcHBlYXJzXG4gICBhcyBzb29uIGFzIHRoZSBmdW5jdGlvbiBpcyBlbnRlcmVkLlxuXG5wZGIuc2V0X3RyYWNlKClcblxuICAgRW50ZXIgdGhlIGRlYnVnZ2VyIGF0IHRoZSBjYWxsaW5nIHN0YWNrIGZyYW1lLiAgVGhpcyBpcyB1c2VmdWwgdG9cbiAgIGhhcmQtY29kZSBhIGJyZWFrcG9pbnQgYXQgYSBnaXZlbiBwb2ludCBpbiBhIHByb2dyYW0sIGV2ZW4gaWYgdGhlXG4gICBjb2RlIGlzIG5vdCBvdGhlcndpc2UgYmVpbmcgZGVidWdnZWQgKGUuZy4gd2hlbiBhbiBhc3NlcnRpb25cbiAgIGZhaWxzKS5cblxucGRiLnBvc3RfbW9ydGVtKHRyYWNlYmFjaz1Ob25lKVxuXG4gICBFbnRlciBwb3N0LW1vcnRlbSBkZWJ1Z2dpbmcgb2YgdGhlIGdpdmVuICp0cmFjZWJhY2sqIG9iamVjdC4gIElmIG5vXG4gICAqdHJhY2ViYWNrKiBpcyBnaXZlbiwgaXQgdXNlcyB0aGUgb25lIG9mIHRoZSBleGNlcHRpb24gdGhhdCBpc1xuICAgY3VycmVudGx5IGJlaW5nIGhhbmRsZWQgKGFuIGV4Y2VwdGlvbiBtdXN0IGJlIGJlaW5nIGhhbmRsZWQgaWYgdGhlXG4gICBkZWZhdWx0IGlzIHRvIGJlIHVzZWQpLlxuXG5wZGIucG0oKVxuXG4gICBFbnRlciBwb3N0LW1vcnRlbSBkZWJ1Z2dpbmcgb2YgdGhlIHRyYWNlYmFjayBmb3VuZCBpblxuICAgYGBzeXMubGFzdF90cmFjZWJhY2tgYC5cblxuVGhlIGBgcnVuKmBgIGZ1bmN0aW9ucyBhbmQgYGBzZXRfdHJhY2UoKWBgIGFyZSBhbGlhc2VzIGZvclxuaW5zdGFudGlhdGluZyB0aGUgYGBQZGJgYCBjbGFzcyBhbmQgY2FsbGluZyB0aGUgbWV0aG9kIG9mIHRoZSBzYW1lXG5uYW1lLiAgSWYgeW91IHdhbnQgdG8gYWNjZXNzIGZ1cnRoZXIgZmVhdHVyZXMsIHlvdSBoYXZlIHRvIGRvIHRoaXNcbnlvdXJzZWxmOlxuXG5jbGFzcyBjbGFzcyBwZGIuUGRiKGNvbXBsZXRla2V5PVwndGFiXCcsIHN0ZGluPU5vbmUsIHN0ZG91dD1Ob25lLCBza2lwPU5vbmUsIG5vc2lnaW50PUZhbHNlKVxuXG4gICBgYFBkYmBgIGlzIHRoZSBkZWJ1Z2dlciBjbGFzcy5cblxuICAgVGhlICpjb21wbGV0ZWtleSosICpzdGRpbiogYW5kICpzdGRvdXQqIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZVxuICAgdW5kZXJseWluZyBgYGNtZC5DbWRgYCBjbGFzczsgc2VlIHRoZSBkZXNjcmlwdGlvbiB0aGVyZS5cblxuICAgVGhlICpza2lwKiBhcmd1bWVudCwgaWYgZ2l2ZW4sIG11c3QgYmUgYW4gaXRlcmFibGUgb2YgZ2xvYi1zdHlsZVxuICAgbW9kdWxlIG5hbWUgcGF0dGVybnMuICBUaGUgZGVidWdnZXIgd2lsbCBub3Qgc3RlcCBpbnRvIGZyYW1lcyB0aGF0XG4gICBvcmlnaW5hdGUgaW4gYSBtb2R1bGUgdGhhdCBtYXRjaGVzIG9uZSBvZiB0aGVzZSBwYXR0ZXJucy4gWzFdXG5cbiAgIEJ5IGRlZmF1bHQsIFBkYiBzZXRzIGEgaGFuZGxlciBmb3IgdGhlIFNJR0lOVCBzaWduYWwgKHdoaWNoIGlzIHNlbnRcbiAgIHdoZW4gdGhlIHVzZXIgcHJlc3NlcyBDdHJsLUMgb24gdGhlIGNvbnNvbGUpIHdoZW4geW91IGdpdmUgYVxuICAgYGBjb250aW51ZWBgIGNvbW1hbmQuIFRoaXMgYWxsb3dzIHlvdSB0byBicmVhayBpbnRvIHRoZSBkZWJ1Z2dlclxuICAgYWdhaW4gYnkgcHJlc3NpbmcgQ3RybC1DLiAgSWYgeW91IHdhbnQgUGRiIG5vdCB0byB0b3VjaCB0aGUgU0lHSU5UXG4gICBoYW5kbGVyLCBzZXQgKm5vc2lnaW50KiB0b3QgdHJ1ZS5cblxuICAgRXhhbXBsZSBjYWxsIHRvIGVuYWJsZSB0cmFjaW5nIHdpdGggKnNraXAqOlxuXG4gICAgICBpbXBvcnQgcGRiOyBwZGIuUGRiKHNraXA9W1wnZGphbmdvLipcJ10pLnNldF90cmFjZSgpXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMTogVGhlICpza2lwKiBhcmd1bWVudC5cblxuICAgTmV3IGluIHZlcnNpb24gMy4yOiBUaGUgKm5vc2lnaW50KiBhcmd1bWVudC4gIFByZXZpb3VzbHksIGEgU0lHSU5UXG4gICBoYW5kbGVyIHdhcyBuZXZlciBzZXQgYnkgUGRiLlxuXG4gICBydW4oc3RhdGVtZW50LCBnbG9iYWxzPU5vbmUsIGxvY2Fscz1Ob25lKVxuICAgcnVuZXZhbChleHByZXNzaW9uLCBnbG9iYWxzPU5vbmUsIGxvY2Fscz1Ob25lKVxuICAgcnVuY2FsbChmdW5jdGlvbiwgKmFyZ3MsICoqa3dkcylcbiAgIHNldF90cmFjZSgpXG5cbiAgICAgIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGZ1bmN0aW9ucyBleHBsYWluZWQgYWJvdmUuXG5cblxuRGVidWdnZXIgQ29tbWFuZHNcbj09PT09PT09PT09PT09PT09XG5cblRoZSBjb21tYW5kcyByZWNvZ25pemVkIGJ5IHRoZSBkZWJ1Z2dlciBhcmUgbGlzdGVkIGJlbG93LiAgTW9zdFxuY29tbWFuZHMgY2FuIGJlIGFiYnJldmlhdGVkIHRvIG9uZSBvciB0d28gbGV0dGVycyBhcyBpbmRpY2F0ZWQ7IGUuZy5cbmBgaChlbHApYGAgbWVhbnMgdGhhdCBlaXRoZXIgYGBoYGAgb3IgYGBoZWxwYGAgY2FuIGJlIHVzZWQgdG8gZW50ZXJcbnRoZSBoZWxwIGNvbW1hbmQgKGJ1dCBub3QgYGBoZWBgIG9yIGBgaGVsYGAsIG5vciBgYEhgYCBvciBgYEhlbHBgYCBvclxuYGBIRUxQYGApLiAgQXJndW1lbnRzIHRvIGNvbW1hbmRzIG11c3QgYmUgc2VwYXJhdGVkIGJ5IHdoaXRlc3BhY2VcbihzcGFjZXMgb3IgdGFicykuICBPcHRpb25hbCBhcmd1bWVudHMgYXJlIGVuY2xvc2VkIGluIHNxdWFyZSBicmFja2V0c1xuKGBgW11gYCkgaW4gdGhlIGNvbW1hbmQgc3ludGF4OyB0aGUgc3F1YXJlIGJyYWNrZXRzIG11c3Qgbm90IGJlIHR5cGVkLlxuQWx0ZXJuYXRpdmVzIGluIHRoZSBjb21tYW5kIHN5bnRheCBhcmUgc2VwYXJhdGVkIGJ5IGEgdmVydGljYWwgYmFyXG4oYGB8YGApLlxuXG5FbnRlcmluZyBhIGJsYW5rIGxpbmUgcmVwZWF0cyB0aGUgbGFzdCBjb21tYW5kIGVudGVyZWQuICBFeGNlcHRpb246IGlmXG50aGUgbGFzdCBjb21tYW5kIHdhcyBhIGBgbGlzdGBgIGNvbW1hbmQsIHRoZSBuZXh0IDExIGxpbmVzIGFyZSBsaXN0ZWQuXG5cbkNvbW1hbmRzIHRoYXQgdGhlIGRlYnVnZ2VyIGRvZXNuXCd0IHJlY29nbml6ZSBhcmUgYXNzdW1lZCB0byBiZSBQeXRob25cbnN0YXRlbWVudHMgYW5kIGFyZSBleGVjdXRlZCBpbiB0aGUgY29udGV4dCBvZiB0aGUgcHJvZ3JhbSBiZWluZ1xuZGVidWdnZWQuICBQeXRob24gc3RhdGVtZW50cyBjYW4gYWxzbyBiZSBwcmVmaXhlZCB3aXRoIGFuIGV4Y2xhbWF0aW9uXG5wb2ludCAoYGAhYGApLiAgVGhpcyBpcyBhIHBvd2VyZnVsIHdheSB0byBpbnNwZWN0IHRoZSBwcm9ncmFtIGJlaW5nXG5kZWJ1Z2dlZDsgaXQgaXMgZXZlbiBwb3NzaWJsZSB0byBjaGFuZ2UgYSB2YXJpYWJsZSBvciBjYWxsIGEgZnVuY3Rpb24uXG5XaGVuIGFuIGV4Y2VwdGlvbiBvY2N1cnMgaW4gc3VjaCBhIHN0YXRlbWVudCwgdGhlIGV4Y2VwdGlvbiBuYW1lIGlzXG5wcmludGVkIGJ1dCB0aGUgZGVidWdnZXJcJ3Mgc3RhdGUgaXMgbm90IGNoYW5nZWQuXG5cblRoZSBkZWJ1Z2dlciBzdXBwb3J0cyAqYWxpYXNlcyouICBBbGlhc2VzIGNhbiBoYXZlIHBhcmFtZXRlcnMgd2hpY2hcbmFsbG93cyBvbmUgYSBjZXJ0YWluIGxldmVsIG9mIGFkYXB0YWJpbGl0eSB0byB0aGUgY29udGV4dCB1bmRlclxuZXhhbWluYXRpb24uXG5cbk11bHRpcGxlIGNvbW1hbmRzIG1heSBiZSBlbnRlcmVkIG9uIGEgc2luZ2xlIGxpbmUsIHNlcGFyYXRlZCBieVxuYGA7O2BgLiAgKEEgc2luZ2xlIGBgO2BgIGlzIG5vdCB1c2VkIGFzIGl0IGlzIHRoZSBzZXBhcmF0b3IgZm9yXG5tdWx0aXBsZSBjb21tYW5kcyBpbiBhIGxpbmUgdGhhdCBpcyBwYXNzZWQgdG8gdGhlIFB5dGhvbiBwYXJzZXIuKSAgTm9cbmludGVsbGlnZW5jZSBpcyBhcHBsaWVkIHRvIHNlcGFyYXRpbmcgdGhlIGNvbW1hbmRzOyB0aGUgaW5wdXQgaXMgc3BsaXRcbmF0IHRoZSBmaXJzdCBgYDs7YGAgcGFpciwgZXZlbiBpZiBpdCBpcyBpbiB0aGUgbWlkZGxlIG9mIGEgcXVvdGVkXG5zdHJpbmcuXG5cbklmIGEgZmlsZSBgYC5wZGJyY2BgIGV4aXN0cyBpbiB0aGUgdXNlclwncyBob21lIGRpcmVjdG9yeSBvciBpbiB0aGVcbmN1cnJlbnQgZGlyZWN0b3J5LCBpdCBpcyByZWFkIGluIGFuZCBleGVjdXRlZCBhcyBpZiBpdCBoYWQgYmVlbiB0eXBlZFxuYXQgdGhlIGRlYnVnZ2VyIHByb21wdC4gIFRoaXMgaXMgcGFydGljdWxhcmx5IHVzZWZ1bCBmb3IgYWxpYXNlcy4gIElmXG5ib3RoIGZpbGVzIGV4aXN0LCB0aGUgb25lIGluIHRoZSBob21lIGRpcmVjdG9yeSBpcyByZWFkIGZpcnN0IGFuZFxuYWxpYXNlcyBkZWZpbmVkIHRoZXJlIGNhbiBiZSBvdmVycmlkZGVuIGJ5IHRoZSBsb2NhbCBmaWxlLlxuXG5DaGFuZ2VkIGluIHZlcnNpb24gMy4yOiBgYC5wZGJyY2BgIGNhbiBub3cgY29udGFpbiBjb21tYW5kcyB0aGF0XG5jb250aW51ZSBkZWJ1Z2dpbmcsIHN1Y2ggYXMgYGBjb250aW51ZWBgIG9yIGBgbmV4dGBgLiAgUHJldmlvdXNseSxcbnRoZXNlIGNvbW1hbmRzIGhhZCBubyBlZmZlY3QuXG5cbmgoZWxwKSBbY29tbWFuZF1cblxuICAgV2l0aG91dCBhcmd1bWVudCwgcHJpbnQgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGNvbW1hbmRzLiAgV2l0aCBhXG4gICAqY29tbWFuZCogYXMgYXJndW1lbnQsIHByaW50IGhlbHAgYWJvdXQgdGhhdCBjb21tYW5kLiAgYGBoZWxwIHBkYmBgXG4gICBkaXNwbGF5cyB0aGUgZnVsbCBkb2N1bWVudGF0aW9uICh0aGUgZG9jc3RyaW5nIG9mIHRoZSBgYHBkYmBgXG4gICBtb2R1bGUpLiAgU2luY2UgdGhlICpjb21tYW5kKiBhcmd1bWVudCBtdXN0IGJlIGFuIGlkZW50aWZpZXIsXG4gICBgYGhlbHAgZXhlY2BgIG11c3QgYmUgZW50ZXJlZCB0byBnZXQgaGVscCBvbiB0aGUgYGAhYGAgY29tbWFuZC5cblxudyhoZXJlKVxuXG4gICBQcmludCBhIHN0YWNrIHRyYWNlLCB3aXRoIHRoZSBtb3N0IHJlY2VudCBmcmFtZSBhdCB0aGUgYm90dG9tLiAgQW5cbiAgIGFycm93IGluZGljYXRlcyB0aGUgY3VycmVudCBmcmFtZSwgd2hpY2ggZGV0ZXJtaW5lcyB0aGUgY29udGV4dCBvZlxuICAgbW9zdCBjb21tYW5kcy5cblxuZChvd24pIFtjb3VudF1cblxuICAgTW92ZSB0aGUgY3VycmVudCBmcmFtZSAqY291bnQqIChkZWZhdWx0IG9uZSkgbGV2ZWxzIGRvd24gaW4gdGhlXG4gICBzdGFjayB0cmFjZSAodG8gYSBuZXdlciBmcmFtZSkuXG5cbnUocCkgW2NvdW50XVxuXG4gICBNb3ZlIHRoZSBjdXJyZW50IGZyYW1lICpjb3VudCogKGRlZmF1bHQgb25lKSBsZXZlbHMgdXAgaW4gdGhlIHN0YWNrXG4gICB0cmFjZSAodG8gYW4gb2xkZXIgZnJhbWUpLlxuXG5iKHJlYWspIFsoW2ZpbGVuYW1lOl1saW5lbm8gfCBmdW5jdGlvbikgWywgY29uZGl0aW9uXV1cblxuICAgV2l0aCBhICpsaW5lbm8qIGFyZ3VtZW50LCBzZXQgYSBicmVhayB0aGVyZSBpbiB0aGUgY3VycmVudCBmaWxlLlxuICAgV2l0aCBhICpmdW5jdGlvbiogYXJndW1lbnQsIHNldCBhIGJyZWFrIGF0IHRoZSBmaXJzdCBleGVjdXRhYmxlXG4gICBzdGF0ZW1lbnQgd2l0aGluIHRoYXQgZnVuY3Rpb24uICBUaGUgbGluZSBudW1iZXIgbWF5IGJlIHByZWZpeGVkXG4gICB3aXRoIGEgZmlsZW5hbWUgYW5kIGEgY29sb24sIHRvIHNwZWNpZnkgYSBicmVha3BvaW50IGluIGFub3RoZXJcbiAgIGZpbGUgKHByb2JhYmx5IG9uZSB0aGF0IGhhc25cJ3QgYmVlbiBsb2FkZWQgeWV0KS4gIFRoZSBmaWxlIGlzXG4gICBzZWFyY2hlZCBvbiBgYHN5cy5wYXRoYGAuICBOb3RlIHRoYXQgZWFjaCBicmVha3BvaW50IGlzIGFzc2lnbmVkIGFcbiAgIG51bWJlciB0byB3aGljaCBhbGwgdGhlIG90aGVyIGJyZWFrcG9pbnQgY29tbWFuZHMgcmVmZXIuXG5cbiAgIElmIGEgc2Vjb25kIGFyZ3VtZW50IGlzIHByZXNlbnQsIGl0IGlzIGFuIGV4cHJlc3Npb24gd2hpY2ggbXVzdFxuICAgZXZhbHVhdGUgdG8gdHJ1ZSBiZWZvcmUgdGhlIGJyZWFrcG9pbnQgaXMgaG9ub3JlZC5cblxuICAgV2l0aG91dCBhcmd1bWVudCwgbGlzdCBhbGwgYnJlYWtzLCBpbmNsdWRpbmcgZm9yIGVhY2ggYnJlYWtwb2ludCxcbiAgIHRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCBicmVha3BvaW50IGhhcyBiZWVuIGhpdCwgdGhlIGN1cnJlbnRcbiAgIGlnbm9yZSBjb3VudCwgYW5kIHRoZSBhc3NvY2lhdGVkIGNvbmRpdGlvbiBpZiBhbnkuXG5cbnRicmVhayBbKFtmaWxlbmFtZTpdbGluZW5vIHwgZnVuY3Rpb24pIFssIGNvbmRpdGlvbl1dXG5cbiAgIFRlbXBvcmFyeSBicmVha3BvaW50LCB3aGljaCBpcyByZW1vdmVkIGF1dG9tYXRpY2FsbHkgd2hlbiBpdCBpc1xuICAgZmlyc3QgaGl0LiBUaGUgYXJndW1lbnRzIGFyZSB0aGUgc2FtZSBhcyBmb3IgYGBicmVha2BgLlxuXG5jbChlYXIpIFtmaWxlbmFtZTpsaW5lbm8gfCBicG51bWJlciBbYnBudW1iZXIgLi4uXV1cblxuICAgV2l0aCBhICpmaWxlbmFtZTpsaW5lbm8qIGFyZ3VtZW50LCBjbGVhciBhbGwgdGhlIGJyZWFrcG9pbnRzIGF0XG4gICB0aGlzIGxpbmUuIFdpdGggYSBzcGFjZSBzZXBhcmF0ZWQgbGlzdCBvZiBicmVha3BvaW50IG51bWJlcnMsIGNsZWFyXG4gICB0aG9zZSBicmVha3BvaW50cy4gV2l0aG91dCBhcmd1bWVudCwgY2xlYXIgYWxsIGJyZWFrcyAoYnV0IGZpcnN0XG4gICBhc2sgY29uZmlybWF0aW9uKS5cblxuZGlzYWJsZSBbYnBudW1iZXIgW2JwbnVtYmVyIC4uLl1dXG5cbiAgIERpc2FibGUgdGhlIGJyZWFrcG9pbnRzIGdpdmVuIGFzIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3Qgb2ZcbiAgIGJyZWFrcG9pbnQgbnVtYmVycy4gIERpc2FibGluZyBhIGJyZWFrcG9pbnQgbWVhbnMgaXQgY2Fubm90IGNhdXNlXG4gICB0aGUgcHJvZ3JhbSB0byBzdG9wIGV4ZWN1dGlvbiwgYnV0IHVubGlrZSBjbGVhcmluZyBhIGJyZWFrcG9pbnQsIGl0XG4gICByZW1haW5zIGluIHRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIGFuZCBjYW4gYmUgKHJlLSllbmFibGVkLlxuXG5lbmFibGUgW2JwbnVtYmVyIFticG51bWJlciAuLi5dXVxuXG4gICBFbmFibGUgdGhlIGJyZWFrcG9pbnRzIHNwZWNpZmllZC5cblxuaWdub3JlIGJwbnVtYmVyIFtjb3VudF1cblxuICAgU2V0IHRoZSBpZ25vcmUgY291bnQgZm9yIHRoZSBnaXZlbiBicmVha3BvaW50IG51bWJlci4gIElmIGNvdW50IGlzXG4gICBvbWl0dGVkLCB0aGUgaWdub3JlIGNvdW50IGlzIHNldCB0byAwLiAgQSBicmVha3BvaW50IGJlY29tZXMgYWN0aXZlXG4gICB3aGVuIHRoZSBpZ25vcmUgY291bnQgaXMgemVyby4gIFdoZW4gbm9uLXplcm8sIHRoZSBjb3VudCBpc1xuICAgZGVjcmVtZW50ZWQgZWFjaCB0aW1lIHRoZSBicmVha3BvaW50IGlzIHJlYWNoZWQgYW5kIHRoZSBicmVha3BvaW50XG4gICBpcyBub3QgZGlzYWJsZWQgYW5kIGFueSBhc3NvY2lhdGVkIGNvbmRpdGlvbiBldmFsdWF0ZXMgdG8gdHJ1ZS5cblxuY29uZGl0aW9uIGJwbnVtYmVyIFtjb25kaXRpb25dXG5cbiAgIFNldCBhIG5ldyAqY29uZGl0aW9uKiBmb3IgdGhlIGJyZWFrcG9pbnQsIGFuIGV4cHJlc3Npb24gd2hpY2ggbXVzdFxuICAgZXZhbHVhdGUgdG8gdHJ1ZSBiZWZvcmUgdGhlIGJyZWFrcG9pbnQgaXMgaG9ub3JlZC4gIElmICpjb25kaXRpb24qXG4gICBpcyBhYnNlbnQsIGFueSBleGlzdGluZyBjb25kaXRpb24gaXMgcmVtb3ZlZDsgaS5lLiwgdGhlIGJyZWFrcG9pbnRcbiAgIGlzIG1hZGUgdW5jb25kaXRpb25hbC5cblxuY29tbWFuZHMgW2JwbnVtYmVyXVxuXG4gICBTcGVjaWZ5IGEgbGlzdCBvZiBjb21tYW5kcyBmb3IgYnJlYWtwb2ludCBudW1iZXIgKmJwbnVtYmVyKi4gIFRoZVxuICAgY29tbWFuZHMgdGhlbXNlbHZlcyBhcHBlYXIgb24gdGhlIGZvbGxvd2luZyBsaW5lcy4gIFR5cGUgYSBsaW5lXG4gICBjb250YWluaW5nIGp1c3QgYGBlbmRgYCB0byB0ZXJtaW5hdGUgdGhlIGNvbW1hbmRzLiBBbiBleGFtcGxlOlxuXG4gICAgICAoUGRiKSBjb21tYW5kcyAxXG4gICAgICAoY29tKSBwcmludCBzb21lX3ZhcmlhYmxlXG4gICAgICAoY29tKSBlbmRcbiAgICAgIChQZGIpXG5cbiAgIFRvIHJlbW92ZSBhbGwgY29tbWFuZHMgZnJvbSBhIGJyZWFrcG9pbnQsIHR5cGUgY29tbWFuZHMgYW5kIGZvbGxvd1xuICAgaXQgaW1tZWRpYXRlbHkgd2l0aCBgYGVuZGBgOyB0aGF0IGlzLCBnaXZlIG5vIGNvbW1hbmRzLlxuXG4gICBXaXRoIG5vICpicG51bWJlciogYXJndW1lbnQsIGNvbW1hbmRzIHJlZmVycyB0byB0aGUgbGFzdCBicmVha3BvaW50XG4gICBzZXQuXG5cbiAgIFlvdSBjYW4gdXNlIGJyZWFrcG9pbnQgY29tbWFuZHMgdG8gc3RhcnQgeW91ciBwcm9ncmFtIHVwIGFnYWluLlxuICAgU2ltcGx5IHVzZSB0aGUgY29udGludWUgY29tbWFuZCwgb3Igc3RlcCwgb3IgYW55IG90aGVyIGNvbW1hbmQgdGhhdFxuICAgcmVzdW1lcyBleGVjdXRpb24uXG5cbiAgIFNwZWNpZnlpbmcgYW55IGNvbW1hbmQgcmVzdW1pbmcgZXhlY3V0aW9uIChjdXJyZW50bHkgY29udGludWUsXG4gICBzdGVwLCBuZXh0LCByZXR1cm4sIGp1bXAsIHF1aXQgYW5kIHRoZWlyIGFiYnJldmlhdGlvbnMpIHRlcm1pbmF0ZXNcbiAgIHRoZSBjb21tYW5kIGxpc3QgKGFzIGlmIHRoYXQgY29tbWFuZCB3YXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnlcbiAgIGVuZCkuIFRoaXMgaXMgYmVjYXVzZSBhbnkgdGltZSB5b3UgcmVzdW1lIGV4ZWN1dGlvbiAoZXZlbiB3aXRoIGFcbiAgIHNpbXBsZSBuZXh0IG9yIHN0ZXApLCB5b3UgbWF5IGVuY291bnRlciBhbm90aGVyIGJyZWFrcG9pbnQtLXdoaWNoXG4gICBjb3VsZCBoYXZlIGl0cyBvd24gY29tbWFuZCBsaXN0LCBsZWFkaW5nIHRvIGFtYmlndWl0aWVzIGFib3V0IHdoaWNoXG4gICBsaXN0IHRvIGV4ZWN1dGUuXG5cbiAgIElmIHlvdSB1c2UgdGhlIFwnc2lsZW50XCcgY29tbWFuZCBpbiB0aGUgY29tbWFuZCBsaXN0LCB0aGUgdXN1YWxcbiAgIG1lc3NhZ2UgYWJvdXQgc3RvcHBpbmcgYXQgYSBicmVha3BvaW50IGlzIG5vdCBwcmludGVkLiAgVGhpcyBtYXkgYmVcbiAgIGRlc2lyYWJsZSBmb3IgYnJlYWtwb2ludHMgdGhhdCBhcmUgdG8gcHJpbnQgYSBzcGVjaWZpYyBtZXNzYWdlIGFuZFxuICAgdGhlbiBjb250aW51ZS4gIElmIG5vbmUgb2YgdGhlIG90aGVyIGNvbW1hbmRzIHByaW50IGFueXRoaW5nLCB5b3VcbiAgIHNlZSBubyBzaWduIHRoYXQgdGhlIGJyZWFrcG9pbnQgd2FzIHJlYWNoZWQuXG5cbnModGVwKVxuXG4gICBFeGVjdXRlIHRoZSBjdXJyZW50IGxpbmUsIHN0b3AgYXQgdGhlIGZpcnN0IHBvc3NpYmxlIG9jY2FzaW9uXG4gICAoZWl0aGVyIGluIGEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgb3Igb24gdGhlIG5leHQgbGluZSBpbiB0aGVcbiAgIGN1cnJlbnQgZnVuY3Rpb24pLlxuXG5uKGV4dClcblxuICAgQ29udGludWUgZXhlY3V0aW9uIHVudGlsIHRoZSBuZXh0IGxpbmUgaW4gdGhlIGN1cnJlbnQgZnVuY3Rpb24gaXNcbiAgIHJlYWNoZWQgb3IgaXQgcmV0dXJucy4gIChUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGBgbmV4dGBgIGFuZFxuICAgYGBzdGVwYGAgaXMgdGhhdCBgYHN0ZXBgYCBzdG9wcyBpbnNpZGUgYSBjYWxsZWQgZnVuY3Rpb24sIHdoaWxlXG4gICBgYG5leHRgYCBleGVjdXRlcyBjYWxsZWQgZnVuY3Rpb25zIGF0IChuZWFybHkpIGZ1bGwgc3BlZWQsIG9ubHlcbiAgIHN0b3BwaW5nIGF0IHRoZSBuZXh0IGxpbmUgaW4gdGhlIGN1cnJlbnQgZnVuY3Rpb24uKVxuXG51bnQoaWwpIFtsaW5lbm9dXG5cbiAgIFdpdGhvdXQgYXJndW1lbnQsIGNvbnRpbnVlIGV4ZWN1dGlvbiB1bnRpbCB0aGUgbGluZSB3aXRoIGEgbnVtYmVyXG4gICBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgb25lIGlzIHJlYWNoZWQuXG5cbiAgIFdpdGggYSBsaW5lIG51bWJlciwgY29udGludWUgZXhlY3V0aW9uIHVudGlsIGEgbGluZSB3aXRoIGEgbnVtYmVyXG4gICBncmVhdGVyIG9yIGVxdWFsIHRvIHRoYXQgaXMgcmVhY2hlZC4gIEluIGJvdGggY2FzZXMsIGFsc28gc3RvcCB3aGVuXG4gICB0aGUgY3VycmVudCBmcmFtZSByZXR1cm5zLlxuXG4gICBDaGFuZ2VkIGluIHZlcnNpb24gMy4yOiBBbGxvdyBnaXZpbmcgYW4gZXhwbGljaXQgbGluZSBudW1iZXIuXG5cbnIoZXR1cm4pXG5cbiAgIENvbnRpbnVlIGV4ZWN1dGlvbiB1bnRpbCB0aGUgY3VycmVudCBmdW5jdGlvbiByZXR1cm5zLlxuXG5jKG9udChpbnVlKSlcblxuICAgQ29udGludWUgZXhlY3V0aW9uLCBvbmx5IHN0b3Agd2hlbiBhIGJyZWFrcG9pbnQgaXMgZW5jb3VudGVyZWQuXG5cbmoodW1wKSBsaW5lbm9cblxuICAgU2V0IHRoZSBuZXh0IGxpbmUgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkLiAgT25seSBhdmFpbGFibGUgaW4gdGhlXG4gICBib3R0b20tbW9zdCBmcmFtZS4gIFRoaXMgbGV0cyB5b3UganVtcCBiYWNrIGFuZCBleGVjdXRlIGNvZGUgYWdhaW4sXG4gICBvciBqdW1wIGZvcndhcmQgdG8gc2tpcCBjb2RlIHRoYXQgeW91IGRvblwndCB3YW50IHRvIHJ1bi5cblxuICAgSXQgc2hvdWxkIGJlIG5vdGVkIHRoYXQgbm90IGFsbCBqdW1wcyBhcmUgYWxsb3dlZCAtLSBmb3IgaW5zdGFuY2VcbiAgIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBqdW1wIGludG8gdGhlIG1pZGRsZSBvZiBhIGBgZm9yYGAgbG9vcCBvciBvdXRcbiAgIG9mIGEgYGBmaW5hbGx5YGAgY2xhdXNlLlxuXG5sKGlzdCkgW2ZpcnN0WywgbGFzdF1dXG5cbiAgIExpc3Qgc291cmNlIGNvZGUgZm9yIHRoZSBjdXJyZW50IGZpbGUuICBXaXRob3V0IGFyZ3VtZW50cywgbGlzdCAxMVxuICAgbGluZXMgYXJvdW5kIHRoZSBjdXJyZW50IGxpbmUgb3IgY29udGludWUgdGhlIHByZXZpb3VzIGxpc3RpbmcuXG4gICBXaXRoIGBgLmBgIGFzIGFyZ3VtZW50LCBsaXN0IDExIGxpbmVzIGFyb3VuZCB0aGUgY3VycmVudCBsaW5lLlxuICAgV2l0aCBvbmUgYXJndW1lbnQsIGxpc3QgMTEgbGluZXMgYXJvdW5kIGF0IHRoYXQgbGluZS4gIFdpdGggdHdvXG4gICBhcmd1bWVudHMsIGxpc3QgdGhlIGdpdmVuIHJhbmdlOyBpZiB0aGUgc2Vjb25kIGFyZ3VtZW50IGlzIGxlc3NcbiAgIHRoYW4gdGhlIGZpcnN0LCBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIGNvdW50LlxuXG4gICBUaGUgY3VycmVudCBsaW5lIGluIHRoZSBjdXJyZW50IGZyYW1lIGlzIGluZGljYXRlZCBieSBgYC0+YGAuICBJZlxuICAgYW4gZXhjZXB0aW9uIGlzIGJlaW5nIGRlYnVnZ2VkLCB0aGUgbGluZSB3aGVyZSB0aGUgZXhjZXB0aW9uIHdhc1xuICAgb3JpZ2luYWxseSByYWlzZWQgb3IgcHJvcGFnYXRlZCBpcyBpbmRpY2F0ZWQgYnkgYGA+PmBgLCBpZiBpdFxuICAgZGlmZmVycyBmcm9tIHRoZSBjdXJyZW50IGxpbmUuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMjogVGhlIGBgPj5gYCBtYXJrZXIuXG5cbmxsIHwgbG9uZ2xpc3RcblxuICAgTGlzdCBhbGwgc291cmNlIGNvZGUgZm9yIHRoZSBjdXJyZW50IGZ1bmN0aW9uIG9yIGZyYW1lLlxuICAgSW50ZXJlc3RpbmcgbGluZXMgYXJlIG1hcmtlZCBhcyBmb3IgYGBsaXN0YGAuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuYShyZ3MpXG5cbiAgIFByaW50IHRoZSBhcmd1bWVudCBsaXN0IG9mIHRoZSBjdXJyZW50IGZ1bmN0aW9uLlxuXG5wKHJpbnQpIGV4cHJlc3Npb25cblxuICAgRXZhbHVhdGUgdGhlICpleHByZXNzaW9uKiBpbiB0aGUgY3VycmVudCBjb250ZXh0IGFuZCBwcmludCBpdHNcbiAgIHZhbHVlLlxuXG5wcCBleHByZXNzaW9uXG5cbiAgIExpa2UgdGhlIGBgcHJpbnRgYCBjb21tYW5kLCBleGNlcHQgdGhlIHZhbHVlIG9mIHRoZSBleHByZXNzaW9uIGlzXG4gICBwcmV0dHktcHJpbnRlZCB1c2luZyB0aGUgYGBwcHJpbnRgYCBtb2R1bGUuXG5cbndoYXRpcyBleHByZXNzaW9uXG5cbiAgIFByaW50IHRoZSB0eXBlIG9mIHRoZSAqZXhwcmVzc2lvbiouXG5cbnNvdXJjZSBleHByZXNzaW9uXG5cbiAgIFRyeSB0byBnZXQgc291cmNlIGNvZGUgZm9yIHRoZSBnaXZlbiBvYmplY3QgYW5kIGRpc3BsYXkgaXQuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuZGlzcGxheSBbZXhwcmVzc2lvbl1cblxuICAgRGlzcGxheSB0aGUgdmFsdWUgb2YgdGhlIGV4cHJlc3Npb24gaWYgaXQgY2hhbmdlZCwgZWFjaCB0aW1lXG4gICBleGVjdXRpb24gc3RvcHMgaW4gdGhlIGN1cnJlbnQgZnJhbWUuXG5cbiAgIFdpdGhvdXQgZXhwcmVzc2lvbiwgbGlzdCBhbGwgZGlzcGxheSBleHByZXNzaW9ucyBmb3IgdGhlIGN1cnJlbnRcbiAgIGZyYW1lLlxuXG4gICBOZXcgaW4gdmVyc2lvbiAzLjIuXG5cbnVuZGlzcGxheSBbZXhwcmVzc2lvbl1cblxuICAgRG8gbm90IGRpc3BsYXkgdGhlIGV4cHJlc3Npb24gYW55IG1vcmUgaW4gdGhlIGN1cnJlbnQgZnJhbWUuXG4gICBXaXRob3V0IGV4cHJlc3Npb24sIGNsZWFyIGFsbCBkaXNwbGF5IGV4cHJlc3Npb25zIGZvciB0aGUgY3VycmVudFxuICAgZnJhbWUuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuaW50ZXJhY3RcblxuICAgU3RhcnQgYW4gaW50ZXJhdGl2ZSBpbnRlcnByZXRlciAodXNpbmcgdGhlIGBgY29kZWBgIG1vZHVsZSkgd2hvc2VcbiAgIGdsb2JhbCBuYW1lc3BhY2UgY29udGFpbnMgYWxsIHRoZSAoZ2xvYmFsIGFuZCBsb2NhbCkgbmFtZXMgZm91bmQgaW5cbiAgIHRoZSBjdXJyZW50IHNjb3BlLlxuXG4gICBOZXcgaW4gdmVyc2lvbiAzLjIuXG5cbmFsaWFzIFtuYW1lIFtjb21tYW5kXV1cblxuICAgQ3JlYXRlIGFuIGFsaWFzIGNhbGxlZCAqbmFtZSogdGhhdCBleGVjdXRlcyAqY29tbWFuZCouICBUaGUgY29tbWFuZFxuICAgbXVzdCAqbm90KiBiZSBlbmNsb3NlZCBpbiBxdW90ZXMuICBSZXBsYWNlYWJsZSBwYXJhbWV0ZXJzIGNhbiBiZVxuICAgaW5kaWNhdGVkIGJ5IGBgJTFgYCwgYGAlMmBgLCBhbmQgc28gb24sIHdoaWxlIGBgJSpgYCBpcyByZXBsYWNlZCBieVxuICAgYWxsIHRoZSBwYXJhbWV0ZXJzLiBJZiBubyBjb21tYW5kIGlzIGdpdmVuLCB0aGUgY3VycmVudCBhbGlhcyBmb3JcbiAgICpuYW1lKiBpcyBzaG93bi4gSWYgbm8gYXJndW1lbnRzIGFyZSBnaXZlbiwgYWxsIGFsaWFzZXMgYXJlIGxpc3RlZC5cblxuICAgQWxpYXNlcyBtYXkgYmUgbmVzdGVkIGFuZCBjYW4gY29udGFpbiBhbnl0aGluZyB0aGF0IGNhbiBiZSBsZWdhbGx5XG4gICB0eXBlZCBhdCB0aGUgcGRiIHByb21wdC4gIE5vdGUgdGhhdCBpbnRlcm5hbCBwZGIgY29tbWFuZHMgKmNhbiogYmVcbiAgIG92ZXJyaWRkZW4gYnkgYWxpYXNlcy4gIFN1Y2ggYSBjb21tYW5kIGlzIHRoZW4gaGlkZGVuIHVudGlsIHRoZVxuICAgYWxpYXMgaXMgcmVtb3ZlZC4gIEFsaWFzaW5nIGlzIHJlY3Vyc2l2ZWx5IGFwcGxpZWQgdG8gdGhlIGZpcnN0XG4gICB3b3JkIG9mIHRoZSBjb21tYW5kIGxpbmU7IGFsbCBvdGhlciB3b3JkcyBpbiB0aGUgbGluZSBhcmUgbGVmdFxuICAgYWxvbmUuXG5cbiAgIEFzIGFuIGV4YW1wbGUsIGhlcmUgYXJlIHR3byB1c2VmdWwgYWxpYXNlcyAoZXNwZWNpYWxseSB3aGVuIHBsYWNlZFxuICAgaW4gdGhlIGBgLnBkYnJjYGAgZmlsZSk6XG5cbiAgICAgICMgUHJpbnQgaW5zdGFuY2UgdmFyaWFibGVzICh1c2FnZSAicGkgY2xhc3NJbnN0IilcbiAgICAgIGFsaWFzIHBpIGZvciBrIGluICUxLl9fZGljdF9fLmtleXMoKTogcHJpbnQoIiUxLiIsaywiPSIsJTEuX19kaWN0X19ba10pXG4gICAgICAjIFByaW50IGluc3RhbmNlIHZhcmlhYmxlcyBpbiBzZWxmXG4gICAgICBhbGlhcyBwcyBwaSBzZWxmXG5cbnVuYWxpYXMgbmFtZVxuXG4gICBEZWxldGUgdGhlIHNwZWNpZmllZCBhbGlhcy5cblxuISBzdGF0ZW1lbnRcblxuICAgRXhlY3V0ZSB0aGUgKG9uZS1saW5lKSAqc3RhdGVtZW50KiBpbiB0aGUgY29udGV4dCBvZiB0aGUgY3VycmVudFxuICAgc3RhY2sgZnJhbWUuIFRoZSBleGNsYW1hdGlvbiBwb2ludCBjYW4gYmUgb21pdHRlZCB1bmxlc3MgdGhlIGZpcnN0XG4gICB3b3JkIG9mIHRoZSBzdGF0ZW1lbnQgcmVzZW1ibGVzIGEgZGVidWdnZXIgY29tbWFuZC4gIFRvIHNldCBhXG4gICBnbG9iYWwgdmFyaWFibGUsIHlvdSBjYW4gcHJlZml4IHRoZSBhc3NpZ25tZW50IGNvbW1hbmQgd2l0aCBhXG4gICBgYGdsb2JhbGBgIHN0YXRlbWVudCBvbiB0aGUgc2FtZSBsaW5lLCBlLmcuOlxuXG4gICAgICAoUGRiKSBnbG9iYWwgbGlzdF9vcHRpb25zOyBsaXN0X29wdGlvbnMgPSBbXCctbFwnXVxuICAgICAgKFBkYilcblxucnVuIFthcmdzIC4uLl1cbnJlc3RhcnQgW2FyZ3MgLi4uXVxuXG4gICBSZXN0YXJ0IHRoZSBkZWJ1Z2dlZCBQeXRob24gcHJvZ3JhbS4gIElmIGFuIGFyZ3VtZW50IGlzIHN1cHBsaWVkLFxuICAgaXQgaXMgc3BsaXQgd2l0aCBgYHNobGV4YGAgYW5kIHRoZSByZXN1bHQgaXMgdXNlZCBhcyB0aGUgbmV3XG4gICBgYHN5cy5hcmd2YGAuIEhpc3RvcnksIGJyZWFrcG9pbnRzLCBhY3Rpb25zIGFuZCBkZWJ1Z2dlciBvcHRpb25zXG4gICBhcmUgcHJlc2VydmVkLiBgYHJlc3RhcnRgYCBpcyBhbiBhbGlhcyBmb3IgYGBydW5gYC5cblxucSh1aXQpXG5cbiAgIFF1aXQgZnJvbSB0aGUgZGVidWdnZXIuICBUaGUgcHJvZ3JhbSBiZWluZyBleGVjdXRlZCBpcyBhYm9ydGVkLlxuXG4tWyBGb290bm90ZXMgXS1cblxuWzFdIFdoZXRoZXIgYSBmcmFtZSBpcyBjb25zaWRlcmVkIHRvIG9yaWdpbmF0ZSBpbiBhIGNlcnRhaW4gbW9kdWxlIGlzXG4gICAgZGV0ZXJtaW5lZCBieSB0aGUgYGBfX25hbWVfX2BgIGluIHRoZSBmcmFtZSBnbG9iYWxzLlxuJywKKyAnZGVsJzogJ1xuVGhlIGBgZGVsYGAgc3RhdGVtZW50XG4qKioqKioqKioqKioqKioqKioqKipcblxuICAgZGVsX3N0bXQgOjo9ICJkZWwiIHRhcmdldF9saXN0XG5cbkRlbGV0aW9uIGlzIHJlY3Vyc2l2ZWx5IGRlZmluZWQgdmVyeSBzaW1pbGFyIHRvIHRoZSB3YXkgYXNzaWdubWVudCBpc1xuZGVmaW5lZC4gUmF0aGVyIHRoYW4gc3BlbGxpbmcgaXQgb3V0IGluIGZ1bGwgZGV0YWlscywgaGVyZSBhcmUgc29tZVxuaGludHMuXG5cbkRlbGV0aW9uIG9mIGEgdGFyZ2V0IGxpc3QgcmVjdXJzaXZlbHkgZGVsZXRlcyBlYWNoIHRhcmdldCwgZnJvbSBsZWZ0XG50byByaWdodC5cblxuRGVsZXRpb24gb2YgYSBuYW1lIHJlbW92ZXMgdGhlIGJpbmRpbmcgb2YgdGhhdCBuYW1lIGZyb20gdGhlIGxvY2FsIG9yXG5nbG9iYWwgbmFtZXNwYWNlLCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgbmFtZSBvY2N1cnMgaW4gYSBgYGdsb2JhbGBgXG5zdGF0ZW1lbnQgaW4gdGhlIHNhbWUgY29kZSBibG9jay4gIElmIHRoZSBuYW1lIGlzIHVuYm91bmQsIGFcbmBgTmFtZUVycm9yYGAgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkLlxuXG5EZWxldGlvbiBvZiBhdHRyaWJ1dGUgcmVmZXJlbmNlcywgc3Vic2NyaXB0aW9ucyBhbmQgc2xpY2luZ3MgaXMgcGFzc2VkXG50byB0aGUgcHJpbWFyeSBvYmplY3QgaW52b2x2ZWQ7IGRlbGV0aW9uIG9mIGEgc2xpY2luZyBpcyBpbiBnZW5lcmFsXG5lcXVpdmFsZW50IHRvIGFzc2lnbm1lbnQgb2YgYW4gZW1wdHkgc2xpY2Ugb2YgdGhlIHJpZ2h0IHR5cGUgKGJ1dCBldmVuXG50aGlzIGlzIGRldGVybWluZWQgYnkgdGhlIHNsaWNlZCBvYmplY3QpLlxuXG5DaGFuZ2VkIGluIHZlcnNpb24gMy4yOiBQcmV2aW91c2x5IGl0IHdhcyBpbGxlZ2FsIHRvIGRlbGV0ZSBhIG5hbWVcbmZyb20gdGhlIGxvY2FsIG5hbWVzcGFjZSBpZiBpdCBvY2N1cnMgYXMgYSBmcmVlIHZhcmlhYmxlIGluIGEgbmVzdGVkXG5ibG9jay5cbicsCiAgJ2RpY3QnOiAnXG5EaWN0aW9uYXJ5IGRpc3BsYXlzXG4qKioqKioqKioqKioqKioqKioqXG5cbkEgZGljdGlvbmFyeSBkaXNwbGF5IGlzIGEgcG9zc2libHkgZW1wdHkgc2VyaWVzIG9mIGtleS9kYXR1bSBwYWlyc1xuZW5jbG9zZWQgaW4gY3VybHkgYnJhY2VzOlxuXG4gICBkaWN0X2Rpc3BsYXkgICAgICAgOjo9ICJ7IiBba2V5X2RhdHVtX2xpc3QgfCBkaWN0X2NvbXByZWhlbnNpb25dICJ9IlxuICAga2V5X2RhdHVtX2xpc3QgICAgIDo6PSBrZXlfZGF0dW0gKCIsIiBrZXlfZGF0dW0pKiBbIiwiXVxuICAga2V5X2RhdHVtICAgICAgICAgIDo6PSBleHByZXNzaW9uICI6IiBleHByZXNzaW9uXG4gICBkaWN0X2NvbXByZWhlbnNpb24gOjo9IGV4cHJlc3Npb24gIjoiIGV4cHJlc3Npb24gY29tcF9mb3JcblxuQSBkaWN0aW9uYXJ5IGRpc3BsYXkgeWllbGRzIGEgbmV3IGRpY3Rpb25hcnkgb2JqZWN0LlxuXG5JZiBhIGNvbW1hLXNlcGFyYXRlZCBzZXF1ZW5jZSBvZiBrZXkvZGF0dW0gcGFpcnMgaXMgZ2l2ZW4sIHRoZXkgYXJlXG5ldmFsdWF0ZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0IHRvIGRlZmluZSB0aGUgZW50cmllcyBvZiB0aGUgZGljdGlvbmFyeTpcbmVhY2gga2V5IG9iamVjdCBpcyB1c2VkIGFzIGEga2V5IGludG8gdGhlIGRpY3Rpb25hcnkgdG8gc3RvcmUgdGhlXG5jb3JyZXNwb25kaW5nIGRhdHVtLiAgVGhpcyBtZWFucyB0aGF0IHlvdSBjYW4gc3BlY2lmeSB0aGUgc2FtZSBrZXlcbm11bHRpcGxlIHRpbWVzIGluIHRoZSBrZXkvZGF0dW0gbGlzdCwgYW5kIHRoZSBmaW5hbCBkaWN0aW9uYXJ5XCdzIHZhbHVlXG5mb3IgdGhhdCBrZXkgd2lsbCBiZSB0aGUgbGFzdCBvbmUgZ2l2ZW4uXG5cbkEgZGljdCBjb21wcmVoZW5zaW9uLCBpbiBjb250cmFzdCB0byBsaXN0IGFuZCBzZXQgY29tcHJlaGVuc2lvbnMsXG5uZWVkcyB0d28gZXhwcmVzc2lvbnMgc2VwYXJhdGVkIHdpdGggYSBjb2xvbiBmb2xsb3dlZCBieSB0aGUgdXN1YWxcbiJmb3IiIGFuZCAiaWYiIGNsYXVzZXMuIFdoZW4gdGhlIGNvbXByZWhlbnNpb24gaXMgcnVuLCB0aGUgcmVzdWx0aW5nXG5rZXkgYW5kIHZhbHVlIGVsZW1lbnRzIGFyZSBpbnNlcnRlZCBpbiB0aGUgbmV3IGRpY3Rpb25hcnkgaW4gdGhlIG9yZGVyXG50aGV5IGFyZSBwcm9kdWNlZC5cblxuUmVzdHJpY3Rpb25zIG9uIHRoZSB0eXBlcyBvZiB0aGUga2V5IHZhbHVlcyBhcmUgbGlzdGVkIGVhcmxpZXIgaW5cbnNlY3Rpb24gKlRoZSBzdGFuZGFyZCB0eXBlIGhpZXJhcmNoeSouICAoVG8gc3VtbWFyaXplLCB0aGUga2V5IHR5cGVcbnNob3VsZCBiZSAqaGFzaGFibGUqLCB3aGljaCBleGNsdWRlcyBhbGwgbXV0YWJsZSBvYmplY3RzLikgIENsYXNoZXNcbmJldHdlZW4gZHVwbGljYXRlIGtleXMgYXJlIG5vdCBkZXRlY3RlZDsgdGhlIGxhc3QgZGF0dW0gKHRleHR1YWxseVxucmlnaHRtb3N0IGluIHRoZSBkaXNwbGF5KSBzdG9yZWQgZm9yIGEgZ2l2ZW4ga2V5IHZhbHVlIHByZXZhaWxzLlxuJywKICAnZHluYW1pYy1mZWF0dXJlcyc6ICdcbkludGVyYWN0aW9uIHdpdGggZHluYW1pYyBmZWF0dXJlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cblRoZXJlIGFyZSBzZXZlcmFsIGNhc2VzIHdoZXJlIFB5dGhvbiBzdGF0ZW1lbnRzIGFyZSBpbGxlZ2FsIHdoZW4gdXNlZFxuaW4gY29uanVuY3Rpb24gd2l0aCBuZXN0ZWQgc2NvcGVzIHRoYXQgY29udGFpbiBmcmVlIHZhcmlhYmxlcy5cblxuSWYgYSB2YXJpYWJsZSBpcyByZWZlcmVuY2VkIGluIGFuIGVuY2xvc2luZyBzY29wZSwgaXQgaXMgaWxsZWdhbCB0b1xuZGVsZXRlIHRoZSBuYW1lLiAgQW4gZXJyb3Igd2lsbCBiZSByZXBvcnRlZCBhdCBjb21waWxlIHRpbWUuXG5cbklmIHRoZSB3aWxkIGNhcmQgZm9ybSBvZiBpbXBvcnQgLS0tIGBgaW1wb3J0ICpgYCAtLS0gaXMgdXNlZCBpbiBhXG5mdW5jdGlvbiBhbmQgdGhlIGZ1bmN0aW9uIGNvbnRhaW5zIG9yIGlzIGEgbmVzdGVkIGJsb2NrIHdpdGggZnJlZVxudmFyaWFibGVzLCB0aGUgY29tcGlsZXIgd2lsbCByYWlzZSBhIGBgU3ludGF4RXJyb3JgYC5cblxuVGhlIGBgZXZhbCgpYGAgYW5kIGBgZXhlYygpYGAgZnVuY3Rpb25zIGRvIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgZnVsbFxuZW52aXJvbm1lbnQgZm9yIHJlc29sdmluZyBuYW1lcy4gIE5hbWVzIG1heSBiZSByZXNvbHZlZCBpbiB0aGUgbG9jYWxcbmFuZCBnbG9iYWwgbmFtZXNwYWNlcyBvZiB0aGUgY2FsbGVyLiAgRnJlZSB2YXJpYWJsZXMgYXJlIG5vdCByZXNvbHZlZFxuaW4gdGhlIG5lYXJlc3QgZW5jbG9zaW5nIG5hbWVzcGFjZSwgYnV0IGluIHRoZSBnbG9iYWwgbmFtZXNwYWNlLiAgWzFdXG5UaGUgYGBleGVjKClgYCBhbmQgYGBldmFsKClgYCBmdW5jdGlvbnMgaGF2ZSBvcHRpb25hbCBhcmd1bWVudHMgdG9cbm92ZXJyaWRlIHRoZSBnbG9iYWwgYW5kIGxvY2FsIG5hbWVzcGFjZS4gIElmIG9ubHkgb25lIG5hbWVzcGFjZSBpc1xuc3BlY2lmaWVkLCBpdCBpcyB1c2VkIGZvciBib3RoLlxuJywKICAnZWxzZSc6ICdcblRoZSBgYGlmYGAgc3RhdGVtZW50XG4qKioqKioqKioqKioqKioqKioqKlxuXG5UaGUgYGBpZmBgIHN0YXRlbWVudCBpcyB1c2VkIGZvciBjb25kaXRpb25hbCBleGVjdXRpb246XG5cbiAgIGlmX3N0bXQgOjo9ICJpZiIgZXhwcmVzc2lvbiAiOiIgc3VpdGVcbiAgICAgICAgICAgICAgICggImVsaWYiIGV4cHJlc3Npb24gIjoiIHN1aXRlICkqXG4gICAgICAgICAgICAgICBbImVsc2UiICI6IiBzdWl0ZV1cblxuSXQgc2VsZWN0cyBleGFjdGx5IG9uZSBvZiB0aGUgc3VpdGVzIGJ5IGV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb25zIG9uZVxuYnkgb25lIHVudGlsIG9uZSBpcyBmb3VuZCB0byBiZSB0cnVlIChzZWUgc2VjdGlvbiAqQm9vbGVhbiBvcGVyYXRpb25zKlxuZm9yIHRoZSBkZWZpbml0aW9uIG9mIHRydWUgYW5kIGZhbHNlKTsgdGhlbiB0aGF0IHN1aXRlIGlzIGV4ZWN1dGVkXG4oYW5kIG5vIG90aGVyIHBhcnQgb2YgdGhlIGBgaWZgYCBzdGF0ZW1lbnQgaXMgZXhlY3V0ZWQgb3IgZXZhbHVhdGVkKS5cbklmIGFsbCBleHByZXNzaW9ucyBhcmUgZmFsc2UsIHRoZSBzdWl0ZSBvZiB0aGUgYGBlbHNlYGAgY2xhdXNlLCBpZlxucHJlc2VudCwgaXMgZXhlY3V0ZWQuXG4nLApAQCAtMzMsMTQgKzM0LDE0IEBACiAgJ2V4cHJsaXN0cyc6ICdcbkV4cHJlc3Npb24gbGlzdHNcbioqKioqKioqKioqKioqKipcblxuICAgZXhwcmVzc2lvbl9saXN0IDo6PSBleHByZXNzaW9uICggIiwiIGV4cHJlc3Npb24gKSogWyIsIl1cblxuQW4gZXhwcmVzc2lvbiBsaXN0IGNvbnRhaW5pbmcgYXQgbGVhc3Qgb25lIGNvbW1hIHlpZWxkcyBhIHR1cGxlLiAgVGhlXG5sZW5ndGggb2YgdGhlIHR1cGxlIGlzIHRoZSBudW1iZXIgb2YgZXhwcmVzc2lvbnMgaW4gdGhlIGxpc3QuICBUaGVcbmV4cHJlc3Npb25zIGFyZSBldmFsdWF0ZWQgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxuXG5UaGUgdHJhaWxpbmcgY29tbWEgaXMgcmVxdWlyZWQgb25seSB0byBjcmVhdGUgYSBzaW5nbGUgdHVwbGUgKGEuay5hLiBhXG4qc2luZ2xldG9uKik7IGl0IGlzIG9wdGlvbmFsIGluIGFsbCBvdGhlciBjYXNlcy4gIEEgc2luZ2xlIGV4cHJlc3Npb25cbndpdGhvdXQgYSB0cmFpbGluZyBjb21tYSBkb2VzblwndCBjcmVhdGUgYSB0dXBsZSwgYnV0IHJhdGhlciB5aWVsZHMgdGhlXG52YWx1ZSBvZiB0aGF0IGV4cHJlc3Npb24uIChUbyBjcmVhdGUgYW4gZW1wdHkgdHVwbGUsIHVzZSBhbiBlbXB0eSBwYWlyXG5vZiBwYXJlbnRoZXNlczogYGAoKWBgLilcbicsCiAgJ2Zsb2F0aW5nJzogJ1xuRmxvYXRpbmcgcG9pbnQgbGl0ZXJhbHNcbioqKioqKioqKioqKioqKioqKioqKioqXG5cbkZsb2F0aW5nIHBvaW50IGxpdGVyYWxzIGFyZSBkZXNjcmliZWQgYnkgdGhlIGZvbGxvd2luZyBsZXhpY2FsXG5kZWZpbml0aW9uczpcblxuICAgZmxvYXRudW1iZXIgICA6Oj0gcG9pbnRmbG9hdCB8IGV4cG9uZW50ZmxvYXRcbiAgIHBvaW50ZmxvYXQgICAgOjo9IFtpbnRwYXJ0XSBmcmFjdGlvbiB8IGludHBhcnQgIi4iXG4gICBleHBvbmVudGZsb2F0IDo6PSAoaW50cGFydCB8IHBvaW50ZmxvYXQpIGV4cG9uZW50XG4gICBpbnRwYXJ0ICAgICAgIDo6PSBkaWdpdCtcbiAgIGZyYWN0aW9uICAgICAgOjo9ICIuIiBkaWdpdCtcbiAgIGV4cG9uZW50ICAgICAgOjo9ICgiZSIgfCAiRSIpIFsiKyIgfCAiLSJdIGRpZ2l0K1xuXG5Ob3RlIHRoYXQgdGhlIGludGVnZXIgYW5kIGV4cG9uZW50IHBhcnRzIGFyZSBhbHdheXMgaW50ZXJwcmV0ZWQgdXNpbmdcbnJhZGl4IDEwLiBGb3IgZXhhbXBsZSwgYGAwNzdlMDEwYGAgaXMgbGVnYWwsIGFuZCBkZW5vdGVzIHRoZSBzYW1lXG5udW1iZXIgYXMgYGA3N2UxMGBgLiBUaGUgYWxsb3dlZCByYW5nZSBvZiBmbG9hdGluZyBwb2ludCBsaXRlcmFscyBpc1xuaW1wbGVtZW50YXRpb24tZGVwZW5kZW50LiBTb21lIGV4YW1wbGVzIG9mIGZsb2F0aW5nIHBvaW50IGxpdGVyYWxzOlxuXG4gICAzLjE0ICAgIDEwLiAgICAuMDAxICAgIDFlMTAwICAgIDMuMTRlLTEwICAgIDBlMFxuXG5Ob3RlIHRoYXQgbnVtZXJpYyBsaXRlcmFscyBkbyBub3QgaW5jbHVkZSBhIHNpZ247IGEgcGhyYXNlIGxpa2UgYGAtMWBgXG5pcyBhY3R1YWxseSBhbiBleHByZXNzaW9uIGNvbXBvc2VkIG9mIHRoZSB1bmFyeSBvcGVyYXRvciBgYC1gYCBhbmQgdGhlXG5saXRlcmFsIGBgMWBgLlxuJywKICAnZm9yJzogJ1xuVGhlIGBgZm9yYGAgc3RhdGVtZW50XG4qKioqKioqKioqKioqKioqKioqKipcblxuVGhlIGBgZm9yYGAgc3RhdGVtZW50IGlzIHVzZWQgdG8gaXRlcmF0ZSBvdmVyIHRoZSBlbGVtZW50cyBvZiBhXG5zZXF1ZW5jZSAoc3VjaCBhcyBhIHN0cmluZywgdHVwbGUgb3IgbGlzdCkgb3Igb3RoZXIgaXRlcmFibGUgb2JqZWN0OlxuXG4gICBmb3Jfc3RtdCA6Oj0gImZvciIgdGFyZ2V0X2xpc3QgImluIiBleHByZXNzaW9uX2xpc3QgIjoiIHN1aXRlXG4gICAgICAgICAgICAgICAgWyJlbHNlIiAiOiIgc3VpdGVdXG5cblRoZSBleHByZXNzaW9uIGxpc3QgaXMgZXZhbHVhdGVkIG9uY2U7IGl0IHNob3VsZCB5aWVsZCBhbiBpdGVyYWJsZVxub2JqZWN0LiAgQW4gaXRlcmF0b3IgaXMgY3JlYXRlZCBmb3IgdGhlIHJlc3VsdCBvZiB0aGVcbmBgZXhwcmVzc2lvbl9saXN0YGAuICBUaGUgc3VpdGUgaXMgdGhlbiBleGVjdXRlZCBvbmNlIGZvciBlYWNoIGl0ZW1cbnByb3ZpZGVkIGJ5IHRoZSBpdGVyYXRvciwgaW4gdGhlIG9yZGVyIG9mIGFzY2VuZGluZyBpbmRpY2VzLiAgRWFjaFxuaXRlbSBpbiB0dXJuIGlzIGFzc2lnbmVkIHRvIHRoZSB0YXJnZXQgbGlzdCB1c2luZyB0aGUgc3RhbmRhcmQgcnVsZXNcbmZvciBhc3NpZ25tZW50cyAoc2VlICpBc3NpZ25tZW50IHN0YXRlbWVudHMqKSwgYW5kIHRoZW4gdGhlIHN1aXRlIGlzXG5leGVjdXRlZC4gIFdoZW4gdGhlIGl0ZW1zIGFyZSBleGhhdXN0ZWQgKHdoaWNoIGlzIGltbWVkaWF0ZWx5IHdoZW4gdGhlXG5zZXF1ZW5jZSBpcyBlbXB0eSBvciBhbiBpdGVyYXRvciByYWlzZXMgYSBgYFN0b3BJdGVyYXRpb25gYFxuZXhjZXB0aW9uKSwgdGhlIHN1aXRlIGluIHRoZSBgYGVsc2VgYCBjbGF1c2UsIGlmIHByZXNlbnQsIGlzIGV4ZWN1dGVkLFxuYW5kIHRoZSBsb29wIHRlcm1pbmF0ZXMuXG5cbkEgYGBicmVha2BgIHN0YXRlbWVudCBleGVjdXRlZCBpbiB0aGUgZmlyc3Qgc3VpdGUgdGVybWluYXRlcyB0aGUgbG9vcFxud2l0aG91dCBleGVjdXRpbmcgdGhlIGBgZWxzZWBgIGNsYXVzZVwncyBzdWl0ZS4gIEEgYGBjb250aW51ZWBgXG5zdGF0ZW1lbnQgZXhlY3V0ZWQgaW4gdGhlIGZpcnN0IHN1aXRlIHNraXBzIHRoZSByZXN0IG9mIHRoZSBzdWl0ZSBhbmRcbmNvbnRpbnVlcyB3aXRoIHRoZSBuZXh0IGl0ZW0sIG9yIHdpdGggdGhlIGBgZWxzZWBgIGNsYXVzZSBpZiB0aGVyZSB3YXNcbm5vIG5leHQgaXRlbS5cblxuVGhlIHN1aXRlIG1heSBhc3NpZ24gdG8gdGhlIHZhcmlhYmxlKHMpIGluIHRoZSB0YXJnZXQgbGlzdDsgdGhpcyBkb2VzXG5ub3QgYWZmZWN0IHRoZSBuZXh0IGl0ZW0gYXNzaWduZWQgdG8gaXQuXG5cbk5hbWVzIGluIHRoZSB0YXJnZXQgbGlzdCBhcmUgbm90IGRlbGV0ZWQgd2hlbiB0aGUgbG9vcCBpcyBmaW5pc2hlZCxcbmJ1dCBpZiB0aGUgc2VxdWVuY2UgaXMgZW1wdHksIGl0IHdpbGwgbm90IGhhdmUgYmVlbiBhc3NpZ25lZCB0byBhdCBhbGxcbmJ5IHRoZSBsb29wLiAgSGludDogdGhlIGJ1aWx0LWluIGZ1bmN0aW9uIGBgcmFuZ2UoKWBgIHJldHVybnMgYW5cbml0ZXJhdG9yIG9mIGludGVnZXJzIHN1aXRhYmxlIHRvIGVtdWxhdGUgdGhlIGVmZmVjdCBvZiBQYXNjYWxcJ3MgYGBmb3JcbmkgOj0gYSB0byBiIGRvYGA7IGUuZy4sIGBgbGlzdChyYW5nZSgzKSlgYCByZXR1cm5zIHRoZSBsaXN0IGBgWzAsIDEsXG4yXWBgLlxuXG5Ob3RlOiBUaGVyZSBpcyBhIHN1YnRsZXR5IHdoZW4gdGhlIHNlcXVlbmNlIGlzIGJlaW5nIG1vZGlmaWVkIGJ5IHRoZSBsb29wXG4gICh0aGlzIGNhbiBvbmx5IG9jY3VyIGZvciBtdXRhYmxlIHNlcXVlbmNlcywgaS5lLiBsaXN0cykuICBBblxuICBpbnRlcm5hbCBjb3VudGVyIGlzIHVzZWQgdG8ga2VlcCB0cmFjayBvZiB3aGljaCBpdGVtIGlzIHVzZWQgbmV4dCxcbiAgYW5kIHRoaXMgaXMgaW5jcmVtZW50ZWQgb24gZWFjaCBpdGVyYXRpb24uICBXaGVuIHRoaXMgY291bnRlciBoYXNcbiAgcmVhY2hlZCB0aGUgbGVuZ3RoIG9mIHRoZSBzZXF1ZW5jZSB0aGUgbG9vcCB0ZXJtaW5hdGVzLiAgVGhpcyBtZWFuc1xuICB0aGF0IGlmIHRoZSBzdWl0ZSBkZWxldGVzIHRoZSBjdXJyZW50IChvciBhIHByZXZpb3VzKSBpdGVtIGZyb20gdGhlXG4gIHNlcXVlbmNlLCB0aGUgbmV4dCBpdGVtIHdpbGwgYmUgc2tpcHBlZCAoc2luY2UgaXQgZ2V0cyB0aGUgaW5kZXggb2ZcbiAgdGhlIGN1cnJlbnQgaXRlbSB3aGljaCBoYXMgYWxyZWFkeSBiZWVuIHRyZWF0ZWQpLiAgTGlrZXdpc2UsIGlmIHRoZVxuICBzdWl0ZSBpbnNlcnRzIGFuIGl0ZW0gaW4gdGhlIHNlcXVlbmNlIGJlZm9yZSB0aGUgY3VycmVudCBpdGVtLCB0aGVcbiAgY3VycmVudCBpdGVtIHdpbGwgYmUgdHJlYXRlZCBhZ2FpbiB0aGUgbmV4dCB0aW1lIHRocm91Z2ggdGhlIGxvb3AuXG4gIFRoaXMgY2FuIGxlYWQgdG8gbmFzdHkgYnVncyB0aGF0IGNhbiBiZSBhdm9pZGVkIGJ5IG1ha2luZyBhXG4gIHRlbXBvcmFyeSBjb3B5IHVzaW5nIGEgc2xpY2Ugb2YgdGhlIHdob2xlIHNlcXVlbmNlLCBlLmcuLFxuXG4gICAgIGZvciB4IGluIGFbOl06XG4gICAgICAgICBpZiB4IDwgMDogYS5yZW1vdmUoeClcbicsCi0gJ2Zvcm1hdHN0cmluZ3MnOiAnXG5Gb3JtYXQgU3RyaW5nIFN5bnRheFxuKioqKioqKioqKioqKioqKioqKipcblxuVGhlIGBgc3RyLmZvcm1hdCgpYGAgbWV0aG9kIGFuZCB0aGUgYGBGb3JtYXR0ZXJgYCBjbGFzcyBzaGFyZSB0aGUgc2FtZVxuc3ludGF4IGZvciBmb3JtYXQgc3RyaW5ncyAoYWx0aG91Z2ggaW4gdGhlIGNhc2Ugb2YgYGBGb3JtYXR0ZXJgYCxcbnN1YmNsYXNzZXMgY2FuIGRlZmluZSB0aGVpciBvd24gZm9ybWF0IHN0cmluZyBzeW50YXgpLlxuXG5Gb3JtYXQgc3RyaW5ncyBjb250YWluICJyZXBsYWNlbWVudCBmaWVsZHMiIHN1cnJvdW5kZWQgYnkgY3VybHkgYnJhY2VzXG5gYHt9YGAuIEFueXRoaW5nIHRoYXQgaXMgbm90IGNvbnRhaW5lZCBpbiBicmFjZXMgaXMgY29uc2lkZXJlZCBsaXRlcmFsXG50ZXh0LCB3aGljaCBpcyBjb3BpZWQgdW5jaGFuZ2VkIHRvIHRoZSBvdXRwdXQuICBJZiB5b3UgbmVlZCB0byBpbmNsdWRlXG5hIGJyYWNlIGNoYXJhY3RlciBpbiB0aGUgbGl0ZXJhbCB0ZXh0LCBpdCBjYW4gYmUgZXNjYXBlZCBieSBkb3VibGluZzpcbmBge3tgYCBhbmQgYGB9fWBgLlxuXG5UaGUgZ3JhbW1hciBmb3IgYSByZXBsYWNlbWVudCBmaWVsZCBpcyBhcyBmb2xsb3dzOlxuXG4gICAgICByZXBsYWNlbWVudF9maWVsZCA6Oj0gInsiIFtmaWVsZF9uYW1lXSBbIiEiIGNvbnZlcnNpb25dIFsiOiIgZm9ybWF0X3NwZWNdICJ9IlxuICAgICAgZmllbGRfbmFtZSAgICAgICAgOjo9IGFyZ19uYW1lICgiLiIgYXR0cmlidXRlX25hbWUgfCAiWyIgZWxlbWVudF9pbmRleCAiXSIpKlxuICAgICAgYXJnX25hbWUgICAgICAgICAgOjo9IFtpZGVudGlmaWVyIHwgaW50ZWdlcl1cbiAgICAgIGF0dHJpYnV0ZV9uYW1lICAgIDo6PSBpZGVudGlmaWVyXG4gICAgICBlbGVtZW50X2luZGV4ICAgICA6Oj0gaW50ZWdlciB8IGluZGV4X3N0cmluZ1xuICAgICAgaW5kZXhfc3RyaW5nICAgICAgOjo9IDxhbnkgc291cmNlIGNoYXJhY3RlciBleGNlcHQgIl0iPiArXG4gICAgICBjb252ZXJzaW9uICAgICAgICA6Oj0gInIiIHwgInMiIHwgImEiXG4gICAgICBmb3JtYXRfc3BlYyAgICAgICA6Oj0gPGRlc2NyaWJlZCBpbiB0aGUgbmV4dCBzZWN0aW9uPlxuXG5JbiBsZXNzIGZvcm1hbCB0ZXJtcywgdGhlIHJlcGxhY2VtZW50IGZpZWxkIGNhbiBzdGFydCB3aXRoIGFcbipmaWVsZF9uYW1lKiB0aGF0IHNwZWNpZmllcyB0aGUgb2JqZWN0IHdob3NlIHZhbHVlIGlzIHRvIGJlIGZvcm1hdHRlZFxuYW5kIGluc2VydGVkIGludG8gdGhlIG91dHB1dCBpbnN0ZWFkIG9mIHRoZSByZXBsYWNlbWVudCBmaWVsZC4gVGhlXG4qZmllbGRfbmFtZSogaXMgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhICAqY29udmVyc2lvbiogZmllbGQsIHdoaWNoIGlzXG5wcmVjZWRlZCBieSBhbiBleGNsYW1hdGlvbiBwb2ludCBgYFwnIVwnYGAsIGFuZCBhICpmb3JtYXRfc3BlYyosIHdoaWNoXG5pcyBwcmVjZWRlZCBieSBhIGNvbG9uIGBgXCc6XCdgYC4gIFRoZXNlIHNwZWNpZnkgYSBub24tZGVmYXVsdCBmb3JtYXRcbmZvciB0aGUgcmVwbGFjZW1lbnQgdmFsdWUuXG5cblNlZSBhbHNvIHRoZSAqRm9ybWF0IFNwZWNpZmljYXRpb24gTWluaS1MYW5ndWFnZSogc2VjdGlvbi5cblxuVGhlICpmaWVsZF9uYW1lKiBpdHNlbGYgYmVnaW5zIHdpdGggYW4gKmFyZ19uYW1lKiB0aGF0IGlzIGVpdGhlciBhXG5udW1iZXIgb3IgYSBrZXl3b3JkLiAgSWYgaXRcJ3MgYSBudW1iZXIsIGl0IHJlZmVycyB0byBhIHBvc2l0aW9uYWxcbmFyZ3VtZW50LCBhbmQgaWYgaXRcJ3MgYSBrZXl3b3JkLCBpdCByZWZlcnMgdG8gYSBuYW1lZCBrZXl3b3JkXG5hcmd1bWVudC4gIElmIHRoZSBudW1lcmljYWwgYXJnX25hbWVzIGluIGEgZm9ybWF0IHN0cmluZyBhcmUgMCwgMSwgMixcbi4uLiBpbiBzZXF1ZW5jZSwgdGhleSBjYW4gYWxsIGJlIG9taXR0ZWQgKG5vdCBqdXN0IHNvbWUpIGFuZCB0aGVcbm51bWJlcnMgMCwgMSwgMiwgLi4uIHdpbGwgYmUgYXV0b21hdGljYWxseSBpbnNlcnRlZCBpbiB0aGF0IG9yZGVyLlxuQmVjYXVzZSAqYXJnX25hbWUqIGlzIG5vdCBxdW90ZS1kZWxpbWl0ZWQsIGl0IGlzIG5vdCBwb3NzaWJsZSB0b1xuc3BlY2lmeSBhcmJpdHJhcnkgZGljdGlvbmFyeSBrZXlzIChlLmcuLCB0aGUgc3RyaW5ncyBgYFwnMTBcJ2BgIG9yXG5gYFwnOi1dXCdgYCkgd2l0aGluIGEgZm9ybWF0IHN0cmluZy4gVGhlICphcmdfbmFtZSogY2FuIGJlIGZvbGxvd2VkIGJ5XG5hbnkgbnVtYmVyIG9mIGluZGV4IG9yIGF0dHJpYnV0ZSBleHByZXNzaW9ucy4gQW4gZXhwcmVzc2lvbiBvZiB0aGVcbmZvcm0gYGBcJy5uYW1lXCdgYCBzZWxlY3RzIHRoZSBuYW1lZCBhdHRyaWJ1dGUgdXNpbmcgYGBnZXRhdHRyKClgYCxcbndoaWxlIGFuIGV4cHJlc3Npb24gb2YgdGhlIGZvcm0gYGBcJ1tpbmRleF1cJ2BgIGRvZXMgYW4gaW5kZXggbG9va3VwXG51c2luZyBgYF9fZ2V0aXRlbV9fKClgYC5cblxuQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMTogVGhlIHBvc2l0aW9uYWwgYXJndW1lbnQgc3BlY2lmaWVycyBjYW4gYmVcbm9taXR0ZWQsIHNvIGBgXCd7fSB7fVwnYGAgaXMgZXF1aXZhbGVudCB0byBgYFwnezB9IHsxfVwnYGAuXG5cblNvbWUgc2ltcGxlIGZvcm1hdCBzdHJpbmcgZXhhbXBsZXM6XG5cbiAgICJGaXJzdCwgdGhvdSBzaGFsdCBjb3VudCB0byB7MH0iICMgUmVmZXJlbmNlcyBmaXJzdCBwb3NpdGlvbmFsIGFyZ3VtZW50XG4gICAiQnJpbmcgbWUgYSB7fSIgICAgICAgICAgICAgICAgICAjIEltcGxpY2l0bHkgcmVmZXJlbmNlcyB0aGUgZmlyc3QgcG9zaXRpb25hbCBhcmd1bWVudFxuICAgIkZyb20ge30gdG8ge30iICAgICAgICAgICAgICAgICAgIyBTYW1lIGFzICJGcm9tIHswfSB0byB7MX0iXG4gICAiTXkgcXVlc3QgaXMge25hbWV9IiAgICAgICAgICAgICAjIFJlZmVyZW5jZXMga2V5d29yZCBhcmd1bWVudCBcJ25hbWVcJ1xuICAgIldlaWdodCBpbiB0b25zIHswLndlaWdodH0iICAgICAgIyBcJ3dlaWdodFwnIGF0dHJpYnV0ZSBvZiBmaXJzdCBwb3NpdGlvbmFsIGFyZ1xuICAgIlVuaXRzIGRlc3Ryb3llZDoge3BsYXllcnNbMF19IiAgIyBGaXJzdCBlbGVtZW50IG9mIGtleXdvcmQgYXJndW1lbnQgXCdwbGF5ZXJzXCcuXG5cblRoZSAqY29udmVyc2lvbiogZmllbGQgY2F1c2VzIGEgdHlwZSBjb2VyY2lvbiBiZWZvcmUgZm9ybWF0dGluZy5cbk5vcm1hbGx5LCB0aGUgam9iIG9mIGZvcm1hdHRpbmcgYSB2YWx1ZSBpcyBkb25lIGJ5IHRoZVxuYGBfX2Zvcm1hdF9fKClgYCBtZXRob2Qgb2YgdGhlIHZhbHVlIGl0c2VsZi4gIEhvd2V2ZXIsIGluIHNvbWUgY2FzZXNcbml0IGlzIGRlc2lyYWJsZSB0byBmb3JjZSBhIHR5cGUgdG8gYmUgZm9ybWF0dGVkIGFzIGEgc3RyaW5nLFxub3ZlcnJpZGluZyBpdHMgb3duIGRlZmluaXRpb24gb2YgZm9ybWF0dGluZy4gIEJ5IGNvbnZlcnRpbmcgdGhlIHZhbHVlXG50byBhIHN0cmluZyBiZWZvcmUgY2FsbGluZyBgYF9fZm9ybWF0X18oKWBgLCB0aGUgbm9ybWFsIGZvcm1hdHRpbmdcbmxvZ2ljIGlzIGJ5cGFzc2VkLlxuXG5UaHJlZSBjb252ZXJzaW9uIGZsYWdzIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkOiBgYFwnIXNcJ2BgIHdoaWNoIGNhbGxzXG5gYHN0cigpYGAgb24gdGhlIHZhbHVlLCBgYFwnIXJcJ2BgIHdoaWNoIGNhbGxzIGBgcmVwcigpYGAgYW5kIGBgXCchYVwnYGBcbndoaWNoIGNhbGxzIGBgYXNjaWkoKWBgLlxuXG5Tb21lIGV4YW1wbGVzOlxuXG4gICAiSGFyb2xkXCdzIGEgY2xldmVyIHswIXN9IiAgICAgICAgIyBDYWxscyBzdHIoKSBvbiB0aGUgYXJndW1lbnQgZmlyc3RcbiAgICJCcmluZyBvdXQgdGhlIGhvbHkge25hbWUhcn0iICAgICMgQ2FsbHMgcmVwcigpIG9uIHRoZSBhcmd1bWVudCBmaXJzdFxuICAgIk1vcmUgeyFhfSIgICAgICAgICAgICAgICAgICAgICAgIyBDYWxscyBhc2NpaSgpIG9uIHRoZSBhcmd1bWVudCBmaXJzdFxuXG5UaGUgKmZvcm1hdF9zcGVjKiBmaWVsZCBjb250YWlucyBhIHNwZWNpZmljYXRpb24gb2YgaG93IHRoZSB2YWx1ZVxuc2hvdWxkIGJlIHByZXNlbnRlZCwgaW5jbHVkaW5nIHN1Y2ggZGV0YWlscyBhcyBmaWVsZCB3aWR0aCwgYWxpZ25tZW50LFxucGFkZGluZywgZGVjaW1hbCBwcmVjaXNpb24gYW5kIHNvIG9uLiAgRWFjaCB2YWx1ZSB0eXBlIGNhbiBkZWZpbmUgaXRzXG5vd24gImZvcm1hdHRpbmcgbWluaS1sYW5ndWFnZSIgb3IgaW50ZXJwcmV0YXRpb24gb2YgdGhlICpmb3JtYXRfc3BlYyouXG5cbk1vc3QgYnVpbHQtaW4gdHlwZXMgc3VwcG9ydCBhIGNvbW1vbiBmb3JtYXR0aW5nIG1pbmktbGFuZ3VhZ2UsIHdoaWNoXG5pcyBkZXNjcmliZWQgaW4gdGhlIG5leHQgc2VjdGlvbi5cblxuQSAqZm9ybWF0X3NwZWMqIGZpZWxkIGNhbiBhbHNvIGluY2x1ZGUgbmVzdGVkIHJlcGxhY2VtZW50IGZpZWxkc1xud2l0aGluIGl0LiBUaGVzZSBuZXN0ZWQgcmVwbGFjZW1lbnQgZmllbGRzIGNhbiBjb250YWluIG9ubHkgYSBmaWVsZFxubmFtZTsgY29udmVyc2lvbiBmbGFncyBhbmQgZm9ybWF0IHNwZWNpZmljYXRpb25zIGFyZSBub3QgYWxsb3dlZC4gIFRoZVxucmVwbGFjZW1lbnQgZmllbGRzIHdpdGhpbiB0aGUgZm9ybWF0X3NwZWMgYXJlIHN1YnN0aXR1dGVkIGJlZm9yZSB0aGVcbipmb3JtYXRfc3BlYyogc3RyaW5nIGlzIGludGVycHJldGVkLiBUaGlzIGFsbG93cyB0aGUgZm9ybWF0dGluZyBvZiBhXG52YWx1ZSB0byBiZSBkeW5hbWljYWxseSBzcGVjaWZpZWQuXG5cblNlZSB0aGUgKkZvcm1hdCBleGFtcGxlcyogc2VjdGlvbiBmb3Igc29tZSBleGFtcGxlcy5cblxuXG5Gb3JtYXQgU3BlY2lmaWNhdGlvbiBNaW5pLUxhbmd1YWdlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiJGb3JtYXQgc3BlY2lmaWNhdGlvbnMiIGFyZSB1c2VkIHdpdGhpbiByZXBsYWNlbWVudCBmaWVsZHMgY29udGFpbmVkXG53aXRoaW4gYSBmb3JtYXQgc3RyaW5nIHRvIGRlZmluZSBob3cgaW5kaXZpZHVhbCB2YWx1ZXMgYXJlIHByZXNlbnRlZFxuKHNlZSAqRm9ybWF0IFN0cmluZyBTeW50YXgqKS4gIFRoZXkgY2FuIGFsc28gYmUgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZVxuYnVpbHQtaW4gYGBmb3JtYXQoKWBgIGZ1bmN0aW9uLiAgRWFjaCBmb3JtYXR0YWJsZSB0eXBlIG1heSBkZWZpbmUgaG93XG50aGUgZm9ybWF0IHNwZWNpZmljYXRpb24gaXMgdG8gYmUgaW50ZXJwcmV0ZWQuXG5cbk1vc3QgYnVpbHQtaW4gdHlwZXMgaW1wbGVtZW50IHRoZSBmb2xsb3dpbmcgb3B0aW9ucyBmb3IgZm9ybWF0XG5zcGVjaWZpY2F0aW9ucywgYWx0aG91Z2ggc29tZSBvZiB0aGUgZm9ybWF0dGluZyBvcHRpb25zIGFyZSBvbmx5XG5zdXBwb3J0ZWQgYnkgdGhlIG51bWVyaWMgdHlwZXMuXG5cbkEgZ2VuZXJhbCBjb252ZW50aW9uIGlzIHRoYXQgYW4gZW1wdHkgZm9ybWF0IHN0cmluZyAoYGAiImBgKSBwcm9kdWNlc1xudGhlIHNhbWUgcmVzdWx0IGFzIGlmIHlvdSBoYWQgY2FsbGVkIGBgc3RyKClgYCBvbiB0aGUgdmFsdWUuIEEgbm9uLVxuZW1wdHkgZm9ybWF0IHN0cmluZyB0eXBpY2FsbHkgbW9kaWZpZXMgdGhlIHJlc3VsdC5cblxuVGhlIGdlbmVyYWwgZm9ybSBvZiBhICpzdGFuZGFyZCBmb3JtYXQgc3BlY2lmaWVyKiBpczpcblxuICAgZm9ybWF0X3NwZWMgOjo9IFtbZmlsbF1hbGlnbl1bc2lnbl1bI11bMF1bd2lkdGhdWyxdWy5wcmVjaXNpb25dW3R5cGVdXG4gICBmaWxsICAgICAgICA6Oj0gPGEgY2hhcmFjdGVyIG90aGVyIHRoYW4gXCd9XCc+XG4gICBhbGlnbiAgICAgICA6Oj0gIjwiIHwgIj4iIHwgIj0iIHwgIl4iXG4gICBzaWduICAgICAgICA6Oj0gIisiIHwgIi0iIHwgIiAiXG4gICB3aWR0aCAgICAgICA6Oj0gaW50ZWdlclxuICAgcHJlY2lzaW9uICAgOjo9IGludGVnZXJcbiAgIHR5cGUgICAgICAgIDo6PSAiYiIgfCAiYyIgfCAiZCIgfCAiZSIgfCAiRSIgfCAiZiIgfCAiRiIgfCAiZyIgfCAiRyIgfCAibiIgfCAibyIgfCAicyIgfCAieCIgfCAiWCIgfCAiJSJcblxuVGhlICpmaWxsKiBjaGFyYWN0ZXIgY2FuIGJlIGFueSBjaGFyYWN0ZXIgb3RoZXIgdGhhbiBcJ3tcJyBvciBcJ31cJy4gIFRoZVxucHJlc2VuY2Ugb2YgYSBmaWxsIGNoYXJhY3RlciBpcyBzaWduYWxlZCBieSB0aGUgY2hhcmFjdGVyIGZvbGxvd2luZ1xuaXQsIHdoaWNoIG11c3QgYmUgb25lIG9mIHRoZSBhbGlnbm1lbnQgb3B0aW9ucy4gIElmIHRoZSBzZWNvbmRcbmNoYXJhY3RlciBvZiAqZm9ybWF0X3NwZWMqIGlzIG5vdCBhIHZhbGlkIGFsaWdubWVudCBvcHRpb24sIHRoZW4gaXQgaXNcbmFzc3VtZWQgdGhhdCBib3RoIHRoZSBmaWxsIGNoYXJhY3RlciBhbmQgdGhlIGFsaWdubWVudCBvcHRpb24gYXJlXG5hYnNlbnQuXG5cblRoZSBtZWFuaW5nIG9mIHRoZSB2YXJpb3VzIGFsaWdubWVudCBvcHRpb25zIGlzIGFzIGZvbGxvd3M6XG5cbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IE9wdGlvbiAgICB8IE1lYW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKz09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PStcbiAgIHwgYGBcJzxcJ2BgICAgfCBGb3JjZXMgdGhlIGZpZWxkIHRvIGJlIGxlZnQtYWxpZ25lZCB3aXRoaW4gdGhlIGF2YWlsYWJsZSAgIHxcbiAgIHwgICAgICAgICAgIHwgc3BhY2UgKHRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yIG1vc3Qgb2JqZWN0cykuICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnPlwnYGAgICB8IEZvcmNlcyB0aGUgZmllbGQgdG8gYmUgcmlnaHQtYWxpZ25lZCB3aXRoaW4gdGhlIGF2YWlsYWJsZSAgfFxuICAgfCAgICAgICAgICAgfCBzcGFjZSAodGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgbnVtYmVycykuICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCc9XCdgYCAgIHwgRm9yY2VzIHRoZSBwYWRkaW5nIHRvIGJlIHBsYWNlZCBhZnRlciB0aGUgc2lnbiAoaWYgYW55KSAgICB8XG4gICB8ICAgICAgICAgICB8IGJ1dCBiZWZvcmUgdGhlIGRpZ2l0cy4gIFRoaXMgaXMgdXNlZCBmb3IgcHJpbnRpbmcgZmllbGRzICAgfFxuICAgfCAgICAgICAgICAgfCBpbiB0aGUgZm9ybSBcJyswMDAwMDAxMjBcJy4gVGhpcyBhbGlnbm1lbnQgb3B0aW9uIGlzIG9ubHkgICAgfFxuICAgfCAgICAgICAgICAgfCB2YWxpZCBmb3IgbnVtZXJpYyB0eXBlcy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCdeXCdgYCAgIHwgRm9yY2VzIHRoZSBmaWVsZCB0byBiZSBjZW50ZXJlZCB3aXRoaW4gdGhlIGF2YWlsYWJsZSAgICAgICB8XG4gICB8ICAgICAgICAgICB8IHNwYWNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcblxuTm90ZSB0aGF0IHVubGVzcyBhIG1pbmltdW0gZmllbGQgd2lkdGggaXMgZGVmaW5lZCwgdGhlIGZpZWxkIHdpZHRoXG53aWxsIGFsd2F5cyBiZSB0aGUgc2FtZSBzaXplIGFzIHRoZSBkYXRhIHRvIGZpbGwgaXQsIHNvIHRoYXQgdGhlXG5hbGlnbm1lbnQgb3B0aW9uIGhhcyBubyBtZWFuaW5nIGluIHRoaXMgY2FzZS5cblxuVGhlICpzaWduKiBvcHRpb24gaXMgb25seSB2YWxpZCBmb3IgbnVtYmVyIHR5cGVzLCBhbmQgY2FuIGJlIG9uZSBvZlxudGhlIGZvbGxvd2luZzpcblxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgT3B0aW9uICAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArPT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09K1xuICAgfCBgYFwnK1wnYGAgICB8IGluZGljYXRlcyB0aGF0IGEgc2lnbiBzaG91bGQgYmUgdXNlZCBmb3IgYm90aCBwb3NpdGl2ZSBhcyAgfFxuICAgfCAgICAgICAgICAgfCB3ZWxsIGFzIG5lZ2F0aXZlIG51bWJlcnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCctXCdgYCAgIHwgaW5kaWNhdGVzIHRoYXQgYSBzaWduIHNob3VsZCBiZSB1c2VkIG9ubHkgZm9yIG5lZ2F0aXZlICAgICB8XG4gICB8ICAgICAgICAgICB8IG51bWJlcnMgKHRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IpLiAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgc3BhY2UgICAgIHwgaW5kaWNhdGVzIHRoYXQgYSBsZWFkaW5nIHNwYWNlIHNob3VsZCBiZSB1c2VkIG9uIHBvc2l0aXZlICB8XG4gICB8ICAgICAgICAgICB8IG51bWJlcnMsIGFuZCBhIG1pbnVzIHNpZ24gb24gbmVnYXRpdmUgbnVtYmVycy4gICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcblxuVGhlIGBgXCcjXCdgYCBvcHRpb24gY2F1c2VzIHRoZSAiYWx0ZXJuYXRlIGZvcm0iIHRvIGJlIHVzZWQgZm9yIHRoZVxuY29udmVyc2lvbi4gIFRoZSBhbHRlcm5hdGUgZm9ybSBpcyBkZWZpbmVkIGRpZmZlcmVudGx5IGZvciBkaWZmZXJlbnRcbnR5cGVzLiAgVGhpcyBvcHRpb24gaXMgb25seSB2YWxpZCBmb3IgaW50ZWdlciwgZmxvYXQsIGNvbXBsZXggYW5kXG5EZWNpbWFsIHR5cGVzLiBGb3IgaW50ZWdlcnMsIHdoZW4gYmluYXJ5LCBvY3RhbCwgb3IgaGV4YWRlY2ltYWwgb3V0cHV0XG5pcyB1c2VkLCB0aGlzIG9wdGlvbiBhZGRzIHRoZSBwcmVmaXggcmVzcGVjdGl2ZSBgYFwnMGJcJ2BgLCBgYFwnMG9cJ2BgLCBvclxuYGBcJzB4XCdgYCB0byB0aGUgb3V0cHV0IHZhbHVlLiBGb3IgZmxvYXRzLCBjb21wbGV4IGFuZCBEZWNpbWFsIHRoZVxuYWx0ZXJuYXRlIGZvcm0gY2F1c2VzIHRoZSByZXN1bHQgb2YgdGhlIGNvbnZlcnNpb24gdG8gYWx3YXlzIGNvbnRhaW4gYVxuZGVjaW1hbC1wb2ludCBjaGFyYWN0ZXIsIGV2ZW4gaWYgbm8gZGlnaXRzIGZvbGxvdyBpdC4gTm9ybWFsbHksIGFcbmRlY2ltYWwtcG9pbnQgY2hhcmFjdGVyIGFwcGVhcnMgaW4gdGhlIHJlc3VsdCBvZiB0aGVzZSBjb252ZXJzaW9uc1xub25seSBpZiBhIGRpZ2l0IGZvbGxvd3MgaXQuIEluIGFkZGl0aW9uLCBmb3IgYGBcJ2dcJ2BgIGFuZCBgYFwnR1wnYGBcbmNvbnZlcnNpb25zLCB0cmFpbGluZyB6ZXJvcyBhcmUgbm90IHJlbW92ZWQgZnJvbSB0aGUgcmVzdWx0LlxuXG5UaGUgYGBcJyxcJ2BgIG9wdGlvbiBzaWduYWxzIHRoZSB1c2Ugb2YgYSBjb21tYSBmb3IgYSB0aG91c2FuZHNcbnNlcGFyYXRvci4gRm9yIGEgbG9jYWxlIGF3YXJlIHNlcGFyYXRvciwgdXNlIHRoZSBgYFwnblwnYGAgaW50ZWdlclxucHJlc2VudGF0aW9uIHR5cGUgaW5zdGVhZC5cblxuQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMTogQWRkZWQgdGhlIGBgXCcsXCdgYCBvcHRpb24gKHNlZSBhbHNvICoqUEVQXG4zNzgqKikuXG5cbip3aWR0aCogaXMgYSBkZWNpbWFsIGludGVnZXIgZGVmaW5pbmcgdGhlIG1pbmltdW0gZmllbGQgd2lkdGguICBJZiBub3RcbnNwZWNpZmllZCwgdGhlbiB0aGUgZmllbGQgd2lkdGggd2lsbCBiZSBkZXRlcm1pbmVkIGJ5IHRoZSBjb250ZW50LlxuXG5JZiB0aGUgKndpZHRoKiBmaWVsZCBpcyBwcmVjZWRlZCBieSBhIHplcm8gKGBgXCcwXCdgYCkgY2hhcmFjdGVyLCB0aGlzXG5lbmFibGVzIHplcm8tcGFkZGluZy4gIFRoaXMgaXMgZXF1aXZhbGVudCB0byBhbiAqYWxpZ25tZW50KiB0eXBlIG9mXG5gYFwnPVwnYGAgYW5kIGEgKmZpbGwqIGNoYXJhY3RlciBvZiBgYFwnMFwnYGAuXG5cblRoZSAqcHJlY2lzaW9uKiBpcyBhIGRlY2ltYWwgbnVtYmVyIGluZGljYXRpbmcgaG93IG1hbnkgZGlnaXRzIHNob3VsZFxuYmUgZGlzcGxheWVkIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IGZvciBhIGZsb2F0aW5nIHBvaW50IHZhbHVlXG5mb3JtYXR0ZWQgd2l0aCBgYFwnZlwnYGAgYW5kIGBgXCdGXCdgYCwgb3IgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjaW1hbFxucG9pbnQgZm9yIGEgZmxvYXRpbmcgcG9pbnQgdmFsdWUgZm9ybWF0dGVkIHdpdGggYGBcJ2dcJ2BgIG9yIGBgXCdHXCdgYC5cbkZvciBub24tbnVtYmVyIHR5cGVzIHRoZSBmaWVsZCBpbmRpY2F0ZXMgdGhlIG1heGltdW0gZmllbGQgc2l6ZSAtIGluXG5vdGhlciB3b3JkcywgaG93IG1hbnkgY2hhcmFjdGVycyB3aWxsIGJlIHVzZWQgZnJvbSB0aGUgZmllbGQgY29udGVudC5cblRoZSAqcHJlY2lzaW9uKiBpcyBub3QgYWxsb3dlZCBmb3IgaW50ZWdlciB2YWx1ZXMuXG5cbkZpbmFsbHksIHRoZSAqdHlwZSogZGV0ZXJtaW5lcyBob3cgdGhlIGRhdGEgc2hvdWxkIGJlIHByZXNlbnRlZC5cblxuVGhlIGF2YWlsYWJsZSBzdHJpbmcgcHJlc2VudGF0aW9uIHR5cGVzIGFyZTpcblxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgVHlwZSAgICAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArPT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09K1xuICAgfCBgYFwnc1wnYGAgICB8IFN0cmluZyBmb3JtYXQuIFRoaXMgaXMgdGhlIGRlZmF1bHQgdHlwZSBmb3Igc3RyaW5ncyBhbmQgICAgfFxuICAgfCAgICAgICAgICAgfCBtYXkgYmUgb21pdHRlZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IE5vbmUgICAgICB8IFRoZSBzYW1lIGFzIGBgXCdzXCdgYC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuXG5UaGUgYXZhaWxhYmxlIGludGVnZXIgcHJlc2VudGF0aW9uIHR5cGVzIGFyZTpcblxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgVHlwZSAgICAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArPT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09K1xuICAgfCBgYFwnYlwnYGAgICB8IEJpbmFyeSBmb3JtYXQuIE91dHB1dHMgdGhlIG51bWJlciBpbiBiYXNlIDIuICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ2NcJ2BgICAgfCBDaGFyYWN0ZXIuIENvbnZlcnRzIHRoZSBpbnRlZ2VyIHRvIHRoZSBjb3JyZXNwb25kaW5nICAgICAgIHxcbiAgIHwgICAgICAgICAgIHwgdW5pY29kZSBjaGFyYWN0ZXIgYmVmb3JlIHByaW50aW5nLiAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnZFwnYGAgICB8IERlY2ltYWwgSW50ZWdlci4gT3V0cHV0cyB0aGUgbnVtYmVyIGluIGJhc2UgMTAuICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ29cJ2BgICAgfCBPY3RhbCBmb3JtYXQuIE91dHB1dHMgdGhlIG51bWJlciBpbiBiYXNlIDguICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCd4XCdgYCAgIHwgSGV4IGZvcm1hdC4gT3V0cHV0cyB0aGUgbnVtYmVyIGluIGJhc2UgMTYsIHVzaW5nIGxvd2VyLSAgICB8XG4gICB8ICAgICAgICAgICB8IGNhc2UgbGV0dGVycyBmb3IgdGhlIGRpZ2l0cyBhYm92ZSA5LiAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ1hcJ2BgICAgfCBIZXggZm9ybWF0LiBPdXRwdXRzIHRoZSBudW1iZXIgaW4gYmFzZSAxNiwgdXNpbmcgdXBwZXItICAgIHxcbiAgIHwgICAgICAgICAgIHwgY2FzZSBsZXR0ZXJzIGZvciB0aGUgZGlnaXRzIGFib3ZlIDkuICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnblwnYGAgICB8IE51bWJlci4gVGhpcyBpcyB0aGUgc2FtZSBhcyBgYFwnZFwnYGAsIGV4Y2VwdCB0aGF0IGl0IHVzZXMgICB8XG4gICB8ICAgICAgICAgICB8IHRoZSBjdXJyZW50IGxvY2FsZSBzZXR0aW5nIHRvIGluc2VydCB0aGUgYXBwcm9wcmlhdGUgICAgICAgfFxuICAgfCAgICAgICAgICAgfCBudW1iZXIgc2VwYXJhdG9yIGNoYXJhY3RlcnMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IE5vbmUgICAgICB8IFRoZSBzYW1lIGFzIGBgXCdkXCdgYC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuXG5JbiBhZGRpdGlvbiB0byB0aGUgYWJvdmUgcHJlc2VudGF0aW9uIHR5cGVzLCBpbnRlZ2VycyBjYW4gYmUgZm9ybWF0dGVkXG53aXRoIHRoZSBmbG9hdGluZyBwb2ludCBwcmVzZW50YXRpb24gdHlwZXMgbGlzdGVkIGJlbG93IChleGNlcHRcbmBgXCduXCdgYCBhbmQgTm9uZSkuIFdoZW4gZG9pbmcgc28sIGBgZmxvYXQoKWBgIGlzIHVzZWQgdG8gY29udmVydCB0aGVcbmludGVnZXIgdG8gYSBmbG9hdGluZyBwb2ludCBudW1iZXIgYmVmb3JlIGZvcm1hdHRpbmcuXG5cblRoZSBhdmFpbGFibGUgcHJlc2VudGF0aW9uIHR5cGVzIGZvciBmbG9hdGluZyBwb2ludCBhbmQgZGVjaW1hbCB2YWx1ZXNcbmFyZTpcblxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgVHlwZSAgICAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArPT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09K1xuICAgfCBgYFwnZVwnYGAgICB8IEV4cG9uZW50IG5vdGF0aW9uLiBQcmludHMgdGhlIG51bWJlciBpbiBzY2llbnRpZmljICAgICAgICAgfFxuICAgfCAgICAgICAgICAgfCBub3RhdGlvbiB1c2luZyB0aGUgbGV0dGVyIFwnZVwnIHRvIGluZGljYXRlIHRoZSBleHBvbmVudC4gICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ0VcJ2BgICAgfCBFeHBvbmVudCBub3RhdGlvbi4gU2FtZSBhcyBgYFwnZVwnYGAgZXhjZXB0IGl0IHVzZXMgYW4gdXBwZXIgfFxuICAgfCAgICAgICAgICAgfCBjYXNlIFwnRVwnIGFzIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyLiAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ2ZcJ2BgICAgfCBGaXhlZCBwb2ludC4gRGlzcGxheXMgdGhlIG51bWJlciBhcyBhIGZpeGVkLXBvaW50IG51bWJlci4gIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCdGXCdgYCAgIHwgRml4ZWQgcG9pbnQuIFNhbWUgYXMgYGBcJ2ZcJ2BgLCBidXQgY29udmVydHMgYGBuYW5gYCB0byAgICAgIHxcbiAgIHwgICAgICAgICAgIHwgYGBOQU5gYCBhbmQgYGBpbmZgYCB0byBgYElORmBgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnZ1wnYGAgICB8IEdlbmVyYWwgZm9ybWF0LiAgRm9yIGEgZ2l2ZW4gcHJlY2lzaW9uIGBgcCA+PSAxYGAsIHRoaXMgICAgfFxuICAgfCAgICAgICAgICAgfCByb3VuZHMgdGhlIG51bWJlciB0byBgYHBgYCBzaWduaWZpY2FudCBkaWdpdHMgYW5kIHRoZW4gICAgIHxcbiAgIHwgICAgICAgICAgIHwgZm9ybWF0cyB0aGUgcmVzdWx0IGluIGVpdGhlciBmaXhlZC1wb2ludCBmb3JtYXQgb3IgaW4gICAgICB8XG4gICB8ICAgICAgICAgICB8IHNjaWVudGlmaWMgbm90YXRpb24sIGRlcGVuZGluZyBvbiBpdHMgbWFnbml0dWRlLiAgVGhlICAgICAgfFxuICAgfCAgICAgICAgICAgfCBwcmVjaXNlIHJ1bGVzIGFyZSBhcyBmb2xsb3dzOiBzdXBwb3NlIHRoYXQgdGhlIHJlc3VsdCAgICAgIHxcbiAgIHwgICAgICAgICAgIHwgZm9ybWF0dGVkIHdpdGggcHJlc2VudGF0aW9uIHR5cGUgYGBcJ2VcJ2BgIGFuZCBwcmVjaXNpb24gICAgIHxcbiAgIHwgICAgICAgICAgIHwgYGBwLTFgYCB3b3VsZCBoYXZlIGV4cG9uZW50IGBgZXhwYGAuICBUaGVuIGlmIGBgLTQgPD0gZXhwICB8XG4gICB8ICAgICAgICAgICB8IDwgcGBgLCB0aGUgbnVtYmVyIGlzIGZvcm1hdHRlZCB3aXRoIHByZXNlbnRhdGlvbiB0eXBlICAgICAgfFxuICAgfCAgICAgICAgICAgfCBgYFwnZlwnYGAgYW5kIHByZWNpc2lvbiBgYHAtMS1leHBgYC4gT3RoZXJ3aXNlLCB0aGUgbnVtYmVyICAgfFxuICAgfCAgICAgICAgICAgfCBpcyBmb3JtYXR0ZWQgd2l0aCBwcmVzZW50YXRpb24gdHlwZSBgYFwnZVwnYGAgYW5kIHByZWNpc2lvbiAgfFxuICAgfCAgICAgICAgICAgfCBgYHAtMWBgLiBJbiBib3RoIGNhc2VzIGluc2lnbmlmaWNhbnQgdHJhaWxpbmcgemVyb3MgYXJlICAgIHxcbiAgIHwgICAgICAgICAgIHwgcmVtb3ZlZCBmcm9tIHRoZSBzaWduaWZpY2FuZCwgYW5kIHRoZSBkZWNpbWFsIHBvaW50IGlzICAgICB8XG4gICB8ICAgICAgICAgICB8IGFsc28gcmVtb3ZlZCBpZiB0aGVyZSBhcmUgbm8gcmVtYWluaW5nIGRpZ2l0cyBmb2xsb3dpbmcgICAgfFxuICAgfCAgICAgICAgICAgfCBpdC4gIFBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBpbmZpbml0eSwgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHxcbiAgIHwgICAgICAgICAgIHwgemVybywgYW5kIG5hbnMsIGFyZSBmb3JtYXR0ZWQgYXMgYGBpbmZgYCwgYGAtaW5mYGAsIGBgMGBgLCB8XG4gICB8ICAgICAgICAgICB8IGBgLTBgYCBhbmQgYGBuYW5gYCByZXNwZWN0aXZlbHksIHJlZ2FyZGxlc3Mgb2YgdGhlICAgICAgICAgfFxuICAgfCAgICAgICAgICAgfCBwcmVjaXNpb24uICBBIHByZWNpc2lvbiBvZiBgYDBgYCBpcyB0cmVhdGVkIGFzIGVxdWl2YWxlbnQgIHxcbiAgIHwgICAgICAgICAgIHwgdG8gYSBwcmVjaXNpb24gb2YgYGAxYGAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnR1wnYGAgICB8IEdlbmVyYWwgZm9ybWF0LiBTYW1lIGFzIGBgXCdnXCdgYCBleGNlcHQgc3dpdGNoZXMgdG8gYGBcJ0VcJ2BgIHxcbiAgIHwgICAgICAgICAgIHwgaWYgdGhlIG51bWJlciBnZXRzIHRvbyBsYXJnZS4gVGhlIHJlcHJlc2VudGF0aW9ucyBvZiAgICAgICB8XG4gICB8ICAgICAgICAgICB8IGluZmluaXR5IGFuZCBOYU4gYXJlIHVwcGVyY2FzZWQsIHRvby4gICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ25cJ2BgICAgfCBOdW1iZXIuIFRoaXMgaXMgdGhlIHNhbWUgYXMgYGBcJ2dcJ2BgLCBleGNlcHQgdGhhdCBpdCB1c2VzICAgfFxuICAgfCAgICAgICAgICAgfCB0aGUgY3VycmVudCBsb2NhbGUgc2V0dGluZyB0byBpbnNlcnQgdGhlIGFwcHJvcHJpYXRlICAgICAgIHxcbiAgIHwgICAgICAgICAgIHwgbnVtYmVyIHNlcGFyYXRvciBjaGFyYWN0ZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnJVwnYGAgICB8IFBlcmNlbnRhZ2UuIE11bHRpcGxpZXMgdGhlIG51bWJlciBieSAxMDAgYW5kIGRpc3BsYXlzIGluICAgfFxuICAgfCAgICAgICAgICAgfCBmaXhlZCAoYGBcJ2ZcJ2BgKSBmb3JtYXQsIGZvbGxvd2VkIGJ5IGEgcGVyY2VudCBzaWduLiAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgTm9uZSAgICAgIHwgU2ltaWxhciB0byBgYFwnZ1wnYGAsIGV4Y2VwdCB3aXRoIGF0IGxlYXN0IG9uZSBkaWdpdCBwYXN0ICAgIHxcbiAgIHwgICAgICAgICAgIHwgdGhlIGRlY2ltYWwgcG9pbnQgYW5kIGEgZGVmYXVsdCBwcmVjaXNpb24gb2YgMTIuIFRoaXMgaXMgICB8XG4gICB8ICAgICAgICAgICB8IGludGVuZGVkIHRvIG1hdGNoIGBgc3RyKClgYCwgZXhjZXB0IHlvdSBjYW4gYWRkIHRoZSBvdGhlciAgfFxuICAgfCAgICAgICAgICAgfCBmb3JtYXQgbW9kaWZpZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG5cblxuRm9ybWF0IGV4YW1wbGVzXG49PT09PT09PT09PT09PT1cblxuVGhpcyBzZWN0aW9uIGNvbnRhaW5zIGV4YW1wbGVzIG9mIHRoZSBuZXcgZm9ybWF0IHN5bnRheCBhbmQgY29tcGFyaXNvblxud2l0aCB0aGUgb2xkIGBgJWBgLWZvcm1hdHRpbmcuXG5cbkluIG1vc3Qgb2YgdGhlIGNhc2VzIHRoZSBzeW50YXggaXMgc2ltaWxhciB0byB0aGUgb2xkXG5gYCVgYC1mb3JtYXR0aW5nLCB3aXRoIHRoZSBhZGRpdGlvbiBvZiB0aGUgYGB7fWBgIGFuZCB3aXRoIGBgOmBgIHVzZWRcbmluc3RlYWQgb2YgYGAlYGAuIEZvciBleGFtcGxlLCBgYFwnJTAzLjJmXCdgYCBjYW4gYmUgdHJhbnNsYXRlZCB0b1xuYGBcJ3s6MDMuMmZ9XCdgYC5cblxuVGhlIG5ldyBmb3JtYXQgc3ludGF4IGFsc28gc3VwcG9ydHMgbmV3IGFuZCBkaWZmZXJlbnQgb3B0aW9ucywgc2hvd25cbmluIHRoZSBmb2xsb3cgZXhhbXBsZXMuXG5cbkFjY2Vzc2luZyBhcmd1bWVudHMgYnkgcG9zaXRpb246XG5cbiAgID4+PiBcJ3swfSwgezF9LCB7Mn1cJy5mb3JtYXQoXCdhXCcsIFwnYlwnLCBcJ2NcJylcbiAgIFwnYSwgYiwgY1wnXG4gICA+Pj4gXCd7fSwge30sIHt9XCcuZm9ybWF0KFwnYVwnLCBcJ2JcJywgXCdjXCcpICAjIDMuMSsgb25seVxuICAgXCdhLCBiLCBjXCdcbiAgID4+PiBcJ3syfSwgezF9LCB7MH1cJy5mb3JtYXQoXCdhXCcsIFwnYlwnLCBcJ2NcJylcbiAgIFwnYywgYiwgYVwnXG4gICA+Pj4gXCd7Mn0sIHsxfSwgezB9XCcuZm9ybWF0KCpcJ2FiY1wnKSAgICAgICMgdW5wYWNraW5nIGFyZ3VtZW50IHNlcXVlbmNlXG4gICBcJ2MsIGIsIGFcJ1xuICAgPj4+IFwnezB9ezF9ezB9XCcuZm9ybWF0KFwnYWJyYVwnLCBcJ2NhZFwnKSAgICMgYXJndW1lbnRzXCcgaW5kaWNlcyBjYW4gYmUgcmVwZWF0ZWRcbiAgIFwnYWJyYWNhZGFicmFcJ1xuXG5BY2Nlc3NpbmcgYXJndW1lbnRzIGJ5IG5hbWU6XG5cbiAgID4+PiBcJ0Nvb3JkaW5hdGVzOiB7bGF0aXR1ZGV9LCB7bG9uZ2l0dWRlfVwnLmZvcm1hdChsYXRpdHVkZT1cJzM3LjI0TlwnLCBsb25naXR1ZGU9XCctMTE1LjgxV1wnKVxuICAgXCdDb29yZGluYXRlczogMzcuMjROLCAtMTE1LjgxV1wnXG4gICA+Pj4gY29vcmQgPSB7XCdsYXRpdHVkZVwnOiBcJzM3LjI0TlwnLCBcJ2xvbmdpdHVkZVwnOiBcJy0xMTUuODFXXCd9XG4gICA+Pj4gXCdDb29yZGluYXRlczoge2xhdGl0dWRlfSwge2xvbmdpdHVkZX1cJy5mb3JtYXQoKipjb29yZClcbiAgIFwnQ29vcmRpbmF0ZXM6IDM3LjI0TiwgLTExNS44MVdcJ1xuXG5BY2Nlc3NpbmcgYXJndW1lbnRzXCcgYXR0cmlidXRlczpcblxuICAgPj4+IGMgPSAzLTVqXG4gICA+Pj4gKFwnVGhlIGNvbXBsZXggbnVtYmVyIHswfSBpcyBmb3JtZWQgZnJvbSB0aGUgcmVhbCBwYXJ0IHswLnJlYWx9IFwnXG4gICAuLi4gIFwnYW5kIHRoZSBpbWFnaW5hcnkgcGFydCB7MC5pbWFnfS5cJykuZm9ybWF0KGMpXG4gICBcJ1RoZSBjb21wbGV4IG51bWJlciAoMy01aikgaXMgZm9ybWVkIGZyb20gdGhlIHJlYWwgcGFydCAzLjAgYW5kIHRoZSBpbWFnaW5hcnkgcGFydCAtNS4wLlwnXG4gICA+Pj4gY2xhc3MgUG9pbnQ6XG4gICAuLi4gICAgIGRlZiBfX2luaXRfXyhzZWxmLCB4LCB5KTpcbiAgIC4uLiAgICAgICAgIHNlbGYueCwgc2VsZi55ID0geCwgeVxuICAgLi4uICAgICBkZWYgX19zdHJfXyhzZWxmKTpcbiAgIC4uLiAgICAgICAgIHJldHVybiBcJ1BvaW50KHtzZWxmLnh9LCB7c2VsZi55fSlcJy5mb3JtYXQoc2VsZj1zZWxmKVxuICAgLi4uXG4gICA+Pj4gc3RyKFBvaW50KDQsIDIpKVxuICAgXCdQb2ludCg0LCAyKVwnXG5cbkFjY2Vzc2luZyBhcmd1bWVudHNcJyBpdGVtczpcblxuICAgPj4+IGNvb3JkID0gKDMsIDUpXG4gICA+Pj4gXCdYOiB7MFswXX07ICBZOiB7MFsxXX1cJy5mb3JtYXQoY29vcmQpXG4gICBcJ1g6IDM7ICBZOiA1XCdcblxuUmVwbGFjaW5nIGBgJXNgYCBhbmQgYGAlcmBgOlxuXG4gICA+Pj4gInJlcHIoKSBzaG93cyBxdW90ZXM6IHshcn07IHN0cigpIGRvZXNuXCd0OiB7IXN9Ii5mb3JtYXQoXCd0ZXN0MVwnLCBcJ3Rlc3QyXCcpXG4gICAicmVwcigpIHNob3dzIHF1b3RlczogXCd0ZXN0MVwnOyBzdHIoKSBkb2VzblwndDogdGVzdDIiXG5cbkFsaWduaW5nIHRoZSB0ZXh0IGFuZCBzcGVjaWZ5aW5nIGEgd2lkdGg6XG5cbiAgID4+PiBcJ3s6PDMwfVwnLmZvcm1hdChcJ2xlZnQgYWxpZ25lZFwnKVxuICAgXCdsZWZ0IGFsaWduZWQgICAgICAgICAgICAgICAgICBcJ1xuICAgPj4+IFwnezo+MzB9XCcuZm9ybWF0KFwncmlnaHQgYWxpZ25lZFwnKVxuICAgXCcgICAgICAgICAgICAgICAgIHJpZ2h0IGFsaWduZWRcJ1xuICAgPj4+IFwnezpeMzB9XCcuZm9ybWF0KFwnY2VudGVyZWRcJylcbiAgIFwnICAgICAgICAgICBjZW50ZXJlZCAgICAgICAgICAgXCdcbiAgID4+PiBcJ3s6Kl4zMH1cJy5mb3JtYXQoXCdjZW50ZXJlZFwnKSAgIyB1c2UgXCcqXCcgYXMgYSBmaWxsIGNoYXJcbiAgIFwnKioqKioqKioqKipjZW50ZXJlZCoqKioqKioqKioqXCdcblxuUmVwbGFjaW5nIGBgJStmYGAsIGBgJS1mYGAsIGFuZCBgYCUgZmBgIGFuZCBzcGVjaWZ5aW5nIGEgc2lnbjpcblxuICAgPj4+IFwnezorZn07IHs6K2Z9XCcuZm9ybWF0KDMuMTQsIC0zLjE0KSAgIyBzaG93IGl0IGFsd2F5c1xuICAgXCcrMy4xNDAwMDA7IC0zLjE0MDAwMFwnXG4gICA+Pj4gXCd7OiBmfTsgezogZn1cJy5mb3JtYXQoMy4xNCwgLTMuMTQpICAjIHNob3cgYSBzcGFjZSBmb3IgcG9zaXRpdmUgbnVtYmVyc1xuICAgXCcgMy4xNDAwMDA7IC0zLjE0MDAwMFwnXG4gICA+Pj4gXCd7Oi1mfTsgezotZn1cJy5mb3JtYXQoMy4xNCwgLTMuMTQpICAjIHNob3cgb25seSB0aGUgbWludXMgLS0gc2FtZSBhcyBcJ3s6Zn07IHs6Zn1cJ1xuICAgXCczLjE0MDAwMDsgLTMuMTQwMDAwXCdcblxuUmVwbGFjaW5nIGBgJXhgYCBhbmQgYGAlb2BgIGFuZCBjb252ZXJ0aW5nIHRoZSB2YWx1ZSB0byBkaWZmZXJlbnRcbmJhc2VzOlxuXG4gICA+Pj4gIyBmb3JtYXQgYWxzbyBzdXBwb3J0cyBiaW5hcnkgbnVtYmVyc1xuICAgPj4+ICJpbnQ6IHswOmR9OyAgaGV4OiB7MDp4fTsgIG9jdDogezA6b307ICBiaW46IHswOmJ9Ii5mb3JtYXQoNDIpXG4gICBcJ2ludDogNDI7ICBoZXg6IDJhOyAgb2N0OiA1MjsgIGJpbjogMTAxMDEwXCdcbiAgID4+PiAjIHdpdGggMHgsIDBvLCBvciAwYiBhcyBwcmVmaXg6XG4gICA+Pj4gImludDogezA6ZH07ICBoZXg6IHswOiN4fTsgIG9jdDogezA6I299OyAgYmluOiB7MDojYn0iLmZvcm1hdCg0MilcbiAgIFwnaW50OiA0MjsgIGhleDogMHgyYTsgIG9jdDogMG81MjsgIGJpbjogMGIxMDEwMTBcJ1xuXG5Vc2luZyB0aGUgY29tbWEgYXMgYSB0aG91c2FuZHMgc2VwYXJhdG9yOlxuXG4gICA+Pj4gXCd7Oix9XCcuZm9ybWF0KDEyMzQ1Njc4OTApXG4gICBcJzEsMjM0LDU2Nyw4OTBcJ1xuXG5FeHByZXNzaW5nIGEgcGVyY2VudGFnZTpcblxuICAgPj4+IHBvaW50cyA9IDE5XG4gICA+Pj4gdG90YWwgPSAyMlxuICAgPj4+IFwnQ29ycmVjdCBhbnN3ZXJzOiB7Oi4yJX1cJy5mb3JtYXQocG9pbnRzL3RvdGFsKVxuICAgXCdDb3JyZWN0IGFuc3dlcnM6IDg2LjM2JVwnXG5cblVzaW5nIHR5cGUtc3BlY2lmaWMgZm9ybWF0dGluZzpcblxuICAgPj4+IGltcG9ydCBkYXRldGltZVxuICAgPj4+IGQgPSBkYXRldGltZS5kYXRldGltZSgyMDEwLCA3LCA0LCAxMiwgMTUsIDU4KVxuICAgPj4+IFwnezolWS0lbS0lZCAlSDolTTolU31cJy5mb3JtYXQoZClcbiAgIFwnMjAxMC0wNy0wNCAxMjoxNTo1OFwnXG5cbk5lc3RpbmcgYXJndW1lbnRzIGFuZCBtb3JlIGNvbXBsZXggZXhhbXBsZXM6XG5cbiAgID4+PiBmb3IgYWxpZ24sIHRleHQgaW4gemlwKFwnPF4+XCcsIFtcJ2xlZnRcJywgXCdjZW50ZXJcJywgXCdyaWdodFwnXSk6XG4gICAuLi4gICAgIFwnezA6e2ZpbGx9e2FsaWdufTE2fVwnLmZvcm1hdCh0ZXh0LCBmaWxsPWFsaWduLCBhbGlnbj1hbGlnbilcbiAgIC4uLlxuICAgXCdsZWZ0PDw8PDw8PDw8PDw8XCdcbiAgIFwnXl5eXl5jZW50ZXJeXl5eXlwnXG4gICBcJz4+Pj4+Pj4+Pj4+cmlnaHRcJ1xuICAgPj4+XG4gICA+Pj4gb2N0ZXRzID0gWzE5MiwgMTY4LCAwLCAxXVxuICAgPj4+IFwnezowMlh9ezowMlh9ezowMlh9ezowMlh9XCcuZm9ybWF0KCpvY3RldHMpXG4gICBcJ0MwQTgwMDAxXCdcbiAgID4+PiBpbnQoXywgMTYpXG4gICAzMjMyMjM1NTIxXG4gICA+Pj5cbiAgID4+PiB3aWR0aCA9IDVcbiAgID4+PiBmb3IgbnVtIGluIHJhbmdlKDUsMTIpOlxuICAgLi4uICAgICBmb3IgYmFzZSBpbiBcJ2RYb2JcJzpcbiAgIC4uLiAgICAgICAgIHByaW50KFwnezA6e3dpZHRofXtiYXNlfX1cJy5mb3JtYXQobnVtLCBiYXNlPWJhc2UsIHdpZHRoPXdpZHRoKSwgZW5kPVwnIFwnKVxuICAgLi4uICAgICBwcmludCgpXG4gICAuLi5cbiAgICAgICA1ICAgICA1ICAgICA1ICAgMTAxXG4gICAgICAgNiAgICAgNiAgICAgNiAgIDExMFxuICAgICAgIDcgICAgIDcgICAgIDcgICAxMTFcbiAgICAgICA4ICAgICA4ICAgIDEwICAxMDAwXG4gICAgICAgOSAgICAgOSAgICAxMSAgMTAwMVxuICAgICAgMTAgICAgIEEgICAgMTIgIDEwMTBcbiAgICAgIDExICAgICBCICAgIDEzICAxMDExXG4nLAotICdmdW5jdGlvbic6ICdcbkZ1bmN0aW9uIGRlZmluaXRpb25zXG4qKioqKioqKioqKioqKioqKioqKlxuXG5BIGZ1bmN0aW9uIGRlZmluaXRpb24gZGVmaW5lcyBhIHVzZXItZGVmaW5lZCBmdW5jdGlvbiBvYmplY3QgKHNlZVxuc2VjdGlvbiAqVGhlIHN0YW5kYXJkIHR5cGUgaGllcmFyY2h5Kik6XG5cbiAgIGZ1bmNkZWYgICAgICAgIDo6PSBbZGVjb3JhdG9yc10gImRlZiIgZnVuY25hbWUgIigiIFtwYXJhbWV0ZXJfbGlzdF0gIikiIFsiLT4iIGV4cHJlc3Npb25dICI6IiBzdWl0ZVxuICAgZGVjb3JhdG9ycyAgICAgOjo9IGRlY29yYXRvcitcbiAgIGRlY29yYXRvciAgICAgIDo6PSAiQCIgZG90dGVkX25hbWUgWyIoIiBbcGFyYW1ldGVyX2xpc3QgWyIsIl1dICIpIl0gTkVXTElORVxuICAgZG90dGVkX25hbWUgICAgOjo9IGlkZW50aWZpZXIgKCIuIiBpZGVudGlmaWVyKSpcbiAgIHBhcmFtZXRlcl9saXN0IDo6PSAoZGVmcGFyYW1ldGVyICIsIikqXG4gICAgICAgICAgICAgICAgICAgICAgKCAgIioiIFtwYXJhbWV0ZXJdICgiLCIgZGVmcGFyYW1ldGVyKSpcbiAgICAgICAgICAgICAgICAgICAgICBbLCAiKioiIHBhcmFtZXRlcl1cbiAgICAgICAgICAgICAgICAgICAgICB8ICIqKiIgcGFyYW1ldGVyXG4gICAgICAgICAgICAgICAgICAgICAgfCBkZWZwYXJhbWV0ZXIgWyIsIl0gKVxuICAgcGFyYW1ldGVyICAgICAgOjo9IGlkZW50aWZpZXIgWyI6IiBleHByZXNzaW9uXVxuICAgZGVmcGFyYW1ldGVyICAgOjo9IHBhcmFtZXRlciBbIj0iIGV4cHJlc3Npb25dXG4gICBmdW5jbmFtZSAgICAgICA6Oj0gaWRlbnRpZmllclxuXG5BIGZ1bmN0aW9uIGRlZmluaXRpb24gaXMgYW4gZXhlY3V0YWJsZSBzdGF0ZW1lbnQuICBJdHMgZXhlY3V0aW9uIGJpbmRzXG50aGUgZnVuY3Rpb24gbmFtZSBpbiB0aGUgY3VycmVudCBsb2NhbCBuYW1lc3BhY2UgdG8gYSBmdW5jdGlvbiBvYmplY3RcbihhIHdyYXBwZXIgYXJvdW5kIHRoZSBleGVjdXRhYmxlIGNvZGUgZm9yIHRoZSBmdW5jdGlvbikuICBUaGlzXG5mdW5jdGlvbiBvYmplY3QgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnQgZ2xvYmFsIG5hbWVzcGFjZVxuYXMgdGhlIGdsb2JhbCBuYW1lc3BhY2UgdG8gYmUgdXNlZCB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQuXG5cblRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGRvZXMgbm90IGV4ZWN1dGUgdGhlIGZ1bmN0aW9uIGJvZHk7IHRoaXMgZ2V0c1xuZXhlY3V0ZWQgb25seSB3aGVuIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQuIFszXVxuXG5BIGZ1bmN0aW9uIGRlZmluaXRpb24gbWF5IGJlIHdyYXBwZWQgYnkgb25lIG9yIG1vcmUgKmRlY29yYXRvcipcbmV4cHJlc3Npb25zLiBEZWNvcmF0b3IgZXhwcmVzc2lvbnMgYXJlIGV2YWx1YXRlZCB3aGVuIHRoZSBmdW5jdGlvbiBpc1xuZGVmaW5lZCwgaW4gdGhlIHNjb3BlIHRoYXQgY29udGFpbnMgdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24uICBUaGVcbnJlc3VsdCBtdXN0IGJlIGEgY2FsbGFibGUsIHdoaWNoIGlzIGludm9rZWQgd2l0aCB0aGUgZnVuY3Rpb24gb2JqZWN0XG5hcyB0aGUgb25seSBhcmd1bWVudC4gVGhlIHJldHVybmVkIHZhbHVlIGlzIGJvdW5kIHRvIHRoZSBmdW5jdGlvbiBuYW1lXG5pbnN0ZWFkIG9mIHRoZSBmdW5jdGlvbiBvYmplY3QuICBNdWx0aXBsZSBkZWNvcmF0b3JzIGFyZSBhcHBsaWVkIGluXG5uZXN0ZWQgZmFzaGlvbi4gRm9yIGV4YW1wbGUsIHRoZSBmb2xsb3dpbmcgY29kZVxuXG4gICBAZjEoYXJnKVxuICAgQGYyXG4gICBkZWYgZnVuYygpOiBwYXNzXG5cbmlzIGVxdWl2YWxlbnQgdG9cblxuICAgZGVmIGZ1bmMoKTogcGFzc1xuICAgZnVuYyA9IGYxKGFyZykoZjIoZnVuYykpXG5cbldoZW4gb25lIG9yIG1vcmUgcGFyYW1ldGVycyBoYXZlIHRoZSBmb3JtICpwYXJhbWV0ZXIqIGBgPWBgXG4qZXhwcmVzc2lvbiosIHRoZSBmdW5jdGlvbiBpcyBzYWlkIHRvIGhhdmUgImRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlcy4iXG5Gb3IgYSBwYXJhbWV0ZXIgd2l0aCBhIGRlZmF1bHQgdmFsdWUsIHRoZSBjb3JyZXNwb25kaW5nIGFyZ3VtZW50IG1heVxuYmUgb21pdHRlZCBmcm9tIGEgY2FsbCwgaW4gd2hpY2ggY2FzZSB0aGUgcGFyYW1ldGVyXCdzIGRlZmF1bHQgdmFsdWUgaXNcbnN1YnN0aXR1dGVkLiAgSWYgYSBwYXJhbWV0ZXIgaGFzIGEgZGVmYXVsdCB2YWx1ZSwgYWxsIGZvbGxvd2luZ1xucGFyYW1ldGVycyB1cCB1bnRpbCB0aGUgImBgKmBgIiBtdXN0IGFsc28gaGF2ZSBhIGRlZmF1bHQgdmFsdWUgLS0tXG50aGlzIGlzIGEgc3ludGFjdGljIHJlc3RyaWN0aW9uIHRoYXQgaXMgbm90IGV4cHJlc3NlZCBieSB0aGUgZ3JhbW1hci5cblxuKipEZWZhdWx0IHBhcmFtZXRlciB2YWx1ZXMgYXJlIGV2YWx1YXRlZCB3aGVuIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uXG5pcyBleGVjdXRlZC4qKiBUaGlzIG1lYW5zIHRoYXQgdGhlIGV4cHJlc3Npb24gaXMgZXZhbHVhdGVkIG9uY2UsIHdoZW5cbnRoZSBmdW5jdGlvbiBpcyBkZWZpbmVkLCBhbmQgdGhhdCB0aGUgc2FtZSAicHJlLWNvbXB1dGVkIiB2YWx1ZSBpc1xudXNlZCBmb3IgZWFjaCBjYWxsLiAgVGhpcyBpcyBlc3BlY2lhbGx5IGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHdoZW4gYVxuZGVmYXVsdCBwYXJhbWV0ZXIgaXMgYSBtdXRhYmxlIG9iamVjdCwgc3VjaCBhcyBhIGxpc3Qgb3IgYSBkaWN0aW9uYXJ5OlxuaWYgdGhlIGZ1bmN0aW9uIG1vZGlmaWVzIHRoZSBvYmplY3QgKGUuZy4gYnkgYXBwZW5kaW5nIGFuIGl0ZW0gdG8gYVxubGlzdCksIHRoZSBkZWZhdWx0IHZhbHVlIGlzIGluIGVmZmVjdCBtb2RpZmllZC4gVGhpcyBpcyBnZW5lcmFsbHkgbm90XG53aGF0IHdhcyBpbnRlbmRlZC4gIEEgd2F5IGFyb3VuZCB0aGlzIGlzIHRvIHVzZSBgYE5vbmVgYCBhcyB0aGVcbmRlZmF1bHQsIGFuZCBleHBsaWNpdGx5IHRlc3QgZm9yIGl0IGluIHRoZSBib2R5IG9mIHRoZSBmdW5jdGlvbiwgZS5nLjpcblxuICAgZGVmIHdoYXRzX29uX3RoZV90ZWxseShwZW5ndWluPU5vbmUpOlxuICAgICAgIGlmIHBlbmd1aW4gaXMgTm9uZTpcbiAgICAgICAgICAgcGVuZ3VpbiA9IFtdXG4gICAgICAgcGVuZ3Vpbi5hcHBlbmQoInByb3BlcnR5IG9mIHRoZSB6b28iKVxuICAgICAgIHJldHVybiBwZW5ndWluXG5cbkZ1bmN0aW9uIGNhbGwgc2VtYW50aWNzIGFyZSBkZXNjcmliZWQgaW4gbW9yZSBkZXRhaWwgaW4gc2VjdGlvblxuKkNhbGxzKi4gQSBmdW5jdGlvbiBjYWxsIGFsd2F5cyBhc3NpZ25zIHZhbHVlcyB0byBhbGwgcGFyYW1ldGVyc1xubWVudGlvbmVkIGluIHRoZSBwYXJhbWV0ZXIgbGlzdCwgZWl0aGVyIGZyb20gcG9zaXRpb24gYXJndW1lbnRzLCBmcm9tXG5rZXl3b3JkIGFyZ3VtZW50cywgb3IgZnJvbSBkZWZhdWx0IHZhbHVlcy4gIElmIHRoZSBmb3JtXG4iYGAqaWRlbnRpZmllcmBgIiBpcyBwcmVzZW50LCBpdCBpcyBpbml0aWFsaXplZCB0byBhIHR1cGxlIHJlY2VpdmluZ1xuYW55IGV4Y2VzcyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIGRlZmF1bHRpbmcgdG8gdGhlIGVtcHR5IHR1cGxlLiAgSWZcbnRoZSBmb3JtICJgYCoqaWRlbnRpZmllcmBgIiBpcyBwcmVzZW50LCBpdCBpcyBpbml0aWFsaXplZCB0byBhIG5ld1xuZGljdGlvbmFyeSByZWNlaXZpbmcgYW55IGV4Y2VzcyBrZXl3b3JkIGFyZ3VtZW50cywgZGVmYXVsdGluZyB0byBhIG5ld1xuZW1wdHkgZGljdGlvbmFyeS4gUGFyYW1ldGVycyBhZnRlciAiYGAqYGAiIG9yICJgYCppZGVudGlmaWVyYGAiIGFyZVxua2V5d29yZC1vbmx5IHBhcmFtZXRlcnMgYW5kIG1heSBvbmx5IGJlIHBhc3NlZCB1c2VkIGtleXdvcmQgYXJndW1lbnRzLlxuXG5QYXJhbWV0ZXJzIG1heSBoYXZlIGFubm90YXRpb25zIG9mIHRoZSBmb3JtICJgYDogZXhwcmVzc2lvbmBgIlxuZm9sbG93aW5nIHRoZSBwYXJhbWV0ZXIgbmFtZS4gIEFueSBwYXJhbWV0ZXIgbWF5IGhhdmUgYW4gYW5ub3RhdGlvblxuZXZlbiB0aG9zZSBvZiB0aGUgZm9ybSBgYCppZGVudGlmaWVyYGAgb3IgYGAqKmlkZW50aWZpZXJgYC4gIEZ1bmN0aW9uc1xubWF5IGhhdmUgInJldHVybiIgYW5ub3RhdGlvbiBvZiB0aGUgZm9ybSAiYGAtPiBleHByZXNzaW9uYGAiIGFmdGVyIHRoZVxucGFyYW1ldGVyIGxpc3QuICBUaGVzZSBhbm5vdGF0aW9ucyBjYW4gYmUgYW55IHZhbGlkIFB5dGhvbiBleHByZXNzaW9uXG5hbmQgYXJlIGV2YWx1YXRlZCB3aGVuIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIGV4ZWN1dGVkLlxuQW5ub3RhdGlvbnMgbWF5IGJlIGV2YWx1YXRlZCBpbiBhIGRpZmZlcmVudCBvcmRlciB0aGFuIHRoZXkgYXBwZWFyIGluXG50aGUgc291cmNlIGNvZGUuICBUaGUgcHJlc2VuY2Ugb2YgYW5ub3RhdGlvbnMgZG9lcyBub3QgY2hhbmdlIHRoZVxuc2VtYW50aWNzIG9mIGEgZnVuY3Rpb24uICBUaGUgYW5ub3RhdGlvbiB2YWx1ZXMgYXJlIGF2YWlsYWJsZSBhc1xudmFsdWVzIG9mIGEgZGljdGlvbmFyeSBrZXllZCBieSB0aGUgcGFyYW1ldGVyc1wnIG5hbWVzIGluIHRoZVxuYGBfX2Fubm90YXRpb25zX19gYCBhdHRyaWJ1dGUgb2YgdGhlIGZ1bmN0aW9uIG9iamVjdC5cblxuSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBjcmVhdGUgYW5vbnltb3VzIGZ1bmN0aW9ucyAoZnVuY3Rpb25zIG5vdCBib3VuZFxudG8gYSBuYW1lKSwgZm9yIGltbWVkaWF0ZSB1c2UgaW4gZXhwcmVzc2lvbnMuICBUaGlzIHVzZXMgbGFtYmRhIGZvcm1zLFxuZGVzY3JpYmVkIGluIHNlY3Rpb24gKkxhbWJkYXMqLiAgTm90ZSB0aGF0IHRoZSBsYW1iZGEgZm9ybSBpcyBtZXJlbHkgYVxuc2hvcnRoYW5kIGZvciBhIHNpbXBsaWZpZWQgZnVuY3Rpb24gZGVmaW5pdGlvbjsgYSBmdW5jdGlvbiBkZWZpbmVkIGluXG5hICJgYGRlZmBgIiBzdGF0ZW1lbnQgY2FuIGJlIHBhc3NlZCBhcm91bmQgb3IgYXNzaWduZWQgdG8gYW5vdGhlciBuYW1lXG5qdXN0IGxpa2UgYSBmdW5jdGlvbiBkZWZpbmVkIGJ5IGEgbGFtYmRhIGZvcm0uICBUaGUgImBgZGVmYGAiIGZvcm0gaXNcbmFjdHVhbGx5IG1vcmUgcG93ZXJmdWwgc2luY2UgaXQgYWxsb3dzIHRoZSBleGVjdXRpb24gb2YgbXVsdGlwbGVcbnN0YXRlbWVudHMgYW5kIGFubm90YXRpb25zLlxuXG4qKlByb2dyYW1tZXJcJ3Mgbm90ZToqKiBGdW5jdGlvbnMgYXJlIGZpcnN0LWNsYXNzIG9iamVjdHMuICBBICJgYGRlZmBgIlxuZm9ybSBleGVjdXRlZCBpbnNpZGUgYSBmdW5jdGlvbiBkZWZpbml0aW9uIGRlZmluZXMgYSBsb2NhbCBmdW5jdGlvblxudGhhdCBjYW4gYmUgcmV0dXJuZWQgb3IgcGFzc2VkIGFyb3VuZC4gIEZyZWUgdmFyaWFibGVzIHVzZWQgaW4gdGhlXG5uZXN0ZWQgZnVuY3Rpb24gY2FuIGFjY2VzcyB0aGUgbG9jYWwgdmFyaWFibGVzIG9mIHRoZSBmdW5jdGlvblxuY29udGFpbmluZyB0aGUgZGVmLiAgU2VlIHNlY3Rpb24gKk5hbWluZyBhbmQgYmluZGluZyogZm9yIGRldGFpbHMuXG4nLAorICdmb3JtYXRzdHJpbmdzJzogJ1xuRm9ybWF0IFN0cmluZyBTeW50YXhcbioqKioqKioqKioqKioqKioqKioqXG5cblRoZSBgYHN0ci5mb3JtYXQoKWBgIG1ldGhvZCBhbmQgdGhlIGBgRm9ybWF0dGVyYGAgY2xhc3Mgc2hhcmUgdGhlIHNhbWVcbnN5bnRheCBmb3IgZm9ybWF0IHN0cmluZ3MgKGFsdGhvdWdoIGluIHRoZSBjYXNlIG9mIGBgRm9ybWF0dGVyYGAsXG5zdWJjbGFzc2VzIGNhbiBkZWZpbmUgdGhlaXIgb3duIGZvcm1hdCBzdHJpbmcgc3ludGF4KS5cblxuRm9ybWF0IHN0cmluZ3MgY29udGFpbiAicmVwbGFjZW1lbnQgZmllbGRzIiBzdXJyb3VuZGVkIGJ5IGN1cmx5IGJyYWNlc1xuYGB7fWBgLiBBbnl0aGluZyB0aGF0IGlzIG5vdCBjb250YWluZWQgaW4gYnJhY2VzIGlzIGNvbnNpZGVyZWQgbGl0ZXJhbFxudGV4dCwgd2hpY2ggaXMgY29waWVkIHVuY2hhbmdlZCB0byB0aGUgb3V0cHV0LiAgSWYgeW91IG5lZWQgdG8gaW5jbHVkZVxuYSBicmFjZSBjaGFyYWN0ZXIgaW4gdGhlIGxpdGVyYWwgdGV4dCwgaXQgY2FuIGJlIGVzY2FwZWQgYnkgZG91Ymxpbmc6XG5gYHt7YGAgYW5kIGBgfX1gYC5cblxuVGhlIGdyYW1tYXIgZm9yIGEgcmVwbGFjZW1lbnQgZmllbGQgaXMgYXMgZm9sbG93czpcblxuICAgICAgcmVwbGFjZW1lbnRfZmllbGQgOjo9ICJ7IiBbZmllbGRfbmFtZV0gWyIhIiBjb252ZXJzaW9uXSBbIjoiIGZvcm1hdF9zcGVjXSAifSJcbiAgICAgIGZpZWxkX25hbWUgICAgICAgIDo6PSBhcmdfbmFtZSAoIi4iIGF0dHJpYnV0ZV9uYW1lIHwgIlsiIGVsZW1lbnRfaW5kZXggIl0iKSpcbiAgICAgIGFyZ19uYW1lICAgICAgICAgIDo6PSBbaWRlbnRpZmllciB8IGludGVnZXJdXG4gICAgICBhdHRyaWJ1dGVfbmFtZSAgICA6Oj0gaWRlbnRpZmllclxuICAgICAgZWxlbWVudF9pbmRleCAgICAgOjo9IGludGVnZXIgfCBpbmRleF9zdHJpbmdcbiAgICAgIGluZGV4X3N0cmluZyAgICAgIDo6PSA8YW55IHNvdXJjZSBjaGFyYWN0ZXIgZXhjZXB0ICJdIj4gK1xuICAgICAgY29udmVyc2lvbiAgICAgICAgOjo9ICJyIiB8ICJzIiB8ICJhIlxuICAgICAgZm9ybWF0X3NwZWMgICAgICAgOjo9IDxkZXNjcmliZWQgaW4gdGhlIG5leHQgc2VjdGlvbj5cblxuSW4gbGVzcyBmb3JtYWwgdGVybXMsIHRoZSByZXBsYWNlbWVudCBmaWVsZCBjYW4gc3RhcnQgd2l0aCBhXG4qZmllbGRfbmFtZSogdGhhdCBzcGVjaWZpZXMgdGhlIG9iamVjdCB3aG9zZSB2YWx1ZSBpcyB0byBiZSBmb3JtYXR0ZWRcbmFuZCBpbnNlcnRlZCBpbnRvIHRoZSBvdXRwdXQgaW5zdGVhZCBvZiB0aGUgcmVwbGFjZW1lbnQgZmllbGQuIFRoZVxuKmZpZWxkX25hbWUqIGlzIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgYSAgKmNvbnZlcnNpb24qIGZpZWxkLCB3aGljaCBpc1xucHJlY2VkZWQgYnkgYW4gZXhjbGFtYXRpb24gcG9pbnQgYGBcJyFcJ2BgLCBhbmQgYSAqZm9ybWF0X3NwZWMqLCB3aGljaFxuaXMgcHJlY2VkZWQgYnkgYSBjb2xvbiBgYFwnOlwnYGAuICBUaGVzZSBzcGVjaWZ5IGEgbm9uLWRlZmF1bHQgZm9ybWF0XG5mb3IgdGhlIHJlcGxhY2VtZW50IHZhbHVlLlxuXG5TZWUgYWxzbyB0aGUgKkZvcm1hdCBTcGVjaWZpY2F0aW9uIE1pbmktTGFuZ3VhZ2UqIHNlY3Rpb24uXG5cblRoZSAqZmllbGRfbmFtZSogaXRzZWxmIGJlZ2lucyB3aXRoIGFuICphcmdfbmFtZSogdGhhdCBpcyBlaXRoZXIgYVxubnVtYmVyIG9yIGEga2V5d29yZC4gIElmIGl0XCdzIGEgbnVtYmVyLCBpdCByZWZlcnMgdG8gYSBwb3NpdGlvbmFsXG5hcmd1bWVudCwgYW5kIGlmIGl0XCdzIGEga2V5d29yZCwgaXQgcmVmZXJzIHRvIGEgbmFtZWQga2V5d29yZFxuYXJndW1lbnQuICBJZiB0aGUgbnVtZXJpY2FsIGFyZ19uYW1lcyBpbiBhIGZvcm1hdCBzdHJpbmcgYXJlIDAsIDEsIDIsXG4uLi4gaW4gc2VxdWVuY2UsIHRoZXkgY2FuIGFsbCBiZSBvbWl0dGVkIChub3QganVzdCBzb21lKSBhbmQgdGhlXG5udW1iZXJzIDAsIDEsIDIsIC4uLiB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgaW5zZXJ0ZWQgaW4gdGhhdCBvcmRlci5cbkJlY2F1c2UgKmFyZ19uYW1lKiBpcyBub3QgcXVvdGUtZGVsaW1pdGVkLCBpdCBpcyBub3QgcG9zc2libGUgdG9cbnNwZWNpZnkgYXJiaXRyYXJ5IGRpY3Rpb25hcnkga2V5cyAoZS5nLiwgdGhlIHN0cmluZ3MgYGBcJzEwXCdgYCBvclxuYGBcJzotXVwnYGApIHdpdGhpbiBhIGZvcm1hdCBzdHJpbmcuIFRoZSAqYXJnX25hbWUqIGNhbiBiZSBmb2xsb3dlZCBieVxuYW55IG51bWJlciBvZiBpbmRleCBvciBhdHRyaWJ1dGUgZXhwcmVzc2lvbnMuIEFuIGV4cHJlc3Npb24gb2YgdGhlXG5mb3JtIGBgXCcubmFtZVwnYGAgc2VsZWN0cyB0aGUgbmFtZWQgYXR0cmlidXRlIHVzaW5nIGBgZ2V0YXR0cigpYGAsXG53aGlsZSBhbiBleHByZXNzaW9uIG9mIHRoZSBmb3JtIGBgXCdbaW5kZXhdXCdgYCBkb2VzIGFuIGluZGV4IGxvb2t1cFxudXNpbmcgYGBfX2dldGl0ZW1fXygpYGAuXG5cbkNoYW5nZWQgaW4gdmVyc2lvbiAzLjE6IFRoZSBwb3NpdGlvbmFsIGFyZ3VtZW50IHNwZWNpZmllcnMgY2FuIGJlXG5vbWl0dGVkLCBzbyBgYFwne30ge31cJ2BgIGlzIGVxdWl2YWxlbnQgdG8gYGBcJ3swfSB7MX1cJ2BgLlxuXG5Tb21lIHNpbXBsZSBmb3JtYXQgc3RyaW5nIGV4YW1wbGVzOlxuXG4gICAiRmlyc3QsIHRob3Ugc2hhbHQgY291bnQgdG8gezB9IiAjIFJlZmVyZW5jZXMgZmlyc3QgcG9zaXRpb25hbCBhcmd1bWVudFxuICAgIkJyaW5nIG1lIGEge30iICAgICAgICAgICAgICAgICAgIyBJbXBsaWNpdGx5IHJlZmVyZW5jZXMgdGhlIGZpcnN0IHBvc2l0aW9uYWwgYXJndW1lbnRcbiAgICJGcm9tIHt9IHRvIHt9IiAgICAgICAgICAgICAgICAgICMgU2FtZSBhcyAiRnJvbSB7MH0gdG8gezF9IlxuICAgIk15IHF1ZXN0IGlzIHtuYW1lfSIgICAgICAgICAgICAgIyBSZWZlcmVuY2VzIGtleXdvcmQgYXJndW1lbnQgXCduYW1lXCdcbiAgICJXZWlnaHQgaW4gdG9ucyB7MC53ZWlnaHR9IiAgICAgICMgXCd3ZWlnaHRcJyBhdHRyaWJ1dGUgb2YgZmlyc3QgcG9zaXRpb25hbCBhcmdcbiAgICJVbml0cyBkZXN0cm95ZWQ6IHtwbGF5ZXJzWzBdfSIgICMgRmlyc3QgZWxlbWVudCBvZiBrZXl3b3JkIGFyZ3VtZW50IFwncGxheWVyc1wnLlxuXG5UaGUgKmNvbnZlcnNpb24qIGZpZWxkIGNhdXNlcyBhIHR5cGUgY29lcmNpb24gYmVmb3JlIGZvcm1hdHRpbmcuXG5Ob3JtYWxseSwgdGhlIGpvYiBvZiBmb3JtYXR0aW5nIGEgdmFsdWUgaXMgZG9uZSBieSB0aGVcbmBgX19mb3JtYXRfXygpYGAgbWV0aG9kIG9mIHRoZSB2YWx1ZSBpdHNlbGYuICBIb3dldmVyLCBpbiBzb21lIGNhc2VzXG5pdCBpcyBkZXNpcmFibGUgdG8gZm9yY2UgYSB0eXBlIHRvIGJlIGZvcm1hdHRlZCBhcyBhIHN0cmluZyxcbm92ZXJyaWRpbmcgaXRzIG93biBkZWZpbml0aW9uIG9mIGZvcm1hdHRpbmcuICBCeSBjb252ZXJ0aW5nIHRoZSB2YWx1ZVxudG8gYSBzdHJpbmcgYmVmb3JlIGNhbGxpbmcgYGBfX2Zvcm1hdF9fKClgYCwgdGhlIG5vcm1hbCBmb3JtYXR0aW5nXG5sb2dpYyBpcyBieXBhc3NlZC5cblxuVGhyZWUgY29udmVyc2lvbiBmbGFncyBhcmUgY3VycmVudGx5IHN1cHBvcnRlZDogYGBcJyFzXCdgYCB3aGljaCBjYWxsc1xuYGBzdHIoKWBgIG9uIHRoZSB2YWx1ZSwgYGBcJyFyXCdgYCB3aGljaCBjYWxscyBgYHJlcHIoKWBgIGFuZCBgYFwnIWFcJ2BgXG53aGljaCBjYWxscyBgYGFzY2lpKClgYC5cblxuU29tZSBleGFtcGxlczpcblxuICAgIkhhcm9sZFwncyBhIGNsZXZlciB7MCFzfSIgICAgICAgICMgQ2FsbHMgc3RyKCkgb24gdGhlIGFyZ3VtZW50IGZpcnN0XG4gICAiQnJpbmcgb3V0IHRoZSBob2x5IHtuYW1lIXJ9IiAgICAjIENhbGxzIHJlcHIoKSBvbiB0aGUgYXJndW1lbnQgZmlyc3RcbiAgICJNb3JlIHshYX0iICAgICAgICAgICAgICAgICAgICAgICMgQ2FsbHMgYXNjaWkoKSBvbiB0aGUgYXJndW1lbnQgZmlyc3RcblxuVGhlICpmb3JtYXRfc3BlYyogZmllbGQgY29udGFpbnMgYSBzcGVjaWZpY2F0aW9uIG9mIGhvdyB0aGUgdmFsdWVcbnNob3VsZCBiZSBwcmVzZW50ZWQsIGluY2x1ZGluZyBzdWNoIGRldGFpbHMgYXMgZmllbGQgd2lkdGgsIGFsaWdubWVudCxcbnBhZGRpbmcsIGRlY2ltYWwgcHJlY2lzaW9uIGFuZCBzbyBvbi4gIEVhY2ggdmFsdWUgdHlwZSBjYW4gZGVmaW5lIGl0c1xub3duICJmb3JtYXR0aW5nIG1pbmktbGFuZ3VhZ2UiIG9yIGludGVycHJldGF0aW9uIG9mIHRoZSAqZm9ybWF0X3NwZWMqLlxuXG5Nb3N0IGJ1aWx0LWluIHR5cGVzIHN1cHBvcnQgYSBjb21tb24gZm9ybWF0dGluZyBtaW5pLWxhbmd1YWdlLCB3aGljaFxuaXMgZGVzY3JpYmVkIGluIHRoZSBuZXh0IHNlY3Rpb24uXG5cbkEgKmZvcm1hdF9zcGVjKiBmaWVsZCBjYW4gYWxzbyBpbmNsdWRlIG5lc3RlZCByZXBsYWNlbWVudCBmaWVsZHNcbndpdGhpbiBpdC4gVGhlc2UgbmVzdGVkIHJlcGxhY2VtZW50IGZpZWxkcyBjYW4gY29udGFpbiBvbmx5IGEgZmllbGRcbm5hbWU7IGNvbnZlcnNpb24gZmxhZ3MgYW5kIGZvcm1hdCBzcGVjaWZpY2F0aW9ucyBhcmUgbm90IGFsbG93ZWQuICBUaGVcbnJlcGxhY2VtZW50IGZpZWxkcyB3aXRoaW4gdGhlIGZvcm1hdF9zcGVjIGFyZSBzdWJzdGl0dXRlZCBiZWZvcmUgdGhlXG4qZm9ybWF0X3NwZWMqIHN0cmluZyBpcyBpbnRlcnByZXRlZC4gVGhpcyBhbGxvd3MgdGhlIGZvcm1hdHRpbmcgb2YgYVxudmFsdWUgdG8gYmUgZHluYW1pY2FsbHkgc3BlY2lmaWVkLlxuXG5TZWUgdGhlICpGb3JtYXQgZXhhbXBsZXMqIHNlY3Rpb24gZm9yIHNvbWUgZXhhbXBsZXMuXG5cblxuRm9ybWF0IFNwZWNpZmljYXRpb24gTWluaS1MYW5ndWFnZVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4iRm9ybWF0IHNwZWNpZmljYXRpb25zIiBhcmUgdXNlZCB3aXRoaW4gcmVwbGFjZW1lbnQgZmllbGRzIGNvbnRhaW5lZFxud2l0aGluIGEgZm9ybWF0IHN0cmluZyB0byBkZWZpbmUgaG93IGluZGl2aWR1YWwgdmFsdWVzIGFyZSBwcmVzZW50ZWRcbihzZWUgKkZvcm1hdCBTdHJpbmcgU3ludGF4KikuICBUaGV5IGNhbiBhbHNvIGJlIHBhc3NlZCBkaXJlY3RseSB0byB0aGVcbmJ1aWx0LWluIGBgZm9ybWF0KClgYCBmdW5jdGlvbi4gIEVhY2ggZm9ybWF0dGFibGUgdHlwZSBtYXkgZGVmaW5lIGhvd1xudGhlIGZvcm1hdCBzcGVjaWZpY2F0aW9uIGlzIHRvIGJlIGludGVycHJldGVkLlxuXG5Nb3N0IGJ1aWx0LWluIHR5cGVzIGltcGxlbWVudCB0aGUgZm9sbG93aW5nIG9wdGlvbnMgZm9yIGZvcm1hdFxuc3BlY2lmaWNhdGlvbnMsIGFsdGhvdWdoIHNvbWUgb2YgdGhlIGZvcm1hdHRpbmcgb3B0aW9ucyBhcmUgb25seVxuc3VwcG9ydGVkIGJ5IHRoZSBudW1lcmljIHR5cGVzLlxuXG5BIGdlbmVyYWwgY29udmVudGlvbiBpcyB0aGF0IGFuIGVtcHR5IGZvcm1hdCBzdHJpbmcgKGBgIiJgYCkgcHJvZHVjZXNcbnRoZSBzYW1lIHJlc3VsdCBhcyBpZiB5b3UgaGFkIGNhbGxlZCBgYHN0cigpYGAgb24gdGhlIHZhbHVlLiBBIG5vbi1cbmVtcHR5IGZvcm1hdCBzdHJpbmcgdHlwaWNhbGx5IG1vZGlmaWVzIHRoZSByZXN1bHQuXG5cblRoZSBnZW5lcmFsIGZvcm0gb2YgYSAqc3RhbmRhcmQgZm9ybWF0IHNwZWNpZmllciogaXM6XG5cbiAgIGZvcm1hdF9zcGVjIDo6PSBbW2ZpbGxdYWxpZ25dW3NpZ25dWyNdWzBdW3dpZHRoXVssXVsucHJlY2lzaW9uXVt0eXBlXVxuICAgZmlsbCAgICAgICAgOjo9IDxhIGNoYXJhY3RlciBvdGhlciB0aGFuIFwne1wnIG9yIFwnfVwnPlxuICAgYWxpZ24gICAgICAgOjo9ICI8IiB8ICI+IiB8ICI9IiB8ICJeIlxuICAgc2lnbiAgICAgICAgOjo9ICIrIiB8ICItIiB8ICIgIlxuICAgd2lkdGggICAgICAgOjo9IGludGVnZXJcbiAgIHByZWNpc2lvbiAgIDo6PSBpbnRlZ2VyXG4gICB0eXBlICAgICAgICA6Oj0gImIiIHwgImMiIHwgImQiIHwgImUiIHwgIkUiIHwgImYiIHwgIkYiIHwgImciIHwgIkciIHwgIm4iIHwgIm8iIHwgInMiIHwgIngiIHwgIlgiIHwgIiUiXG5cblRoZSAqZmlsbCogY2hhcmFjdGVyIGNhbiBiZSBhbnkgY2hhcmFjdGVyIG90aGVyIHRoYW4gXCd7XCcgb3IgXCd9XCcuICBUaGVcbnByZXNlbmNlIG9mIGEgZmlsbCBjaGFyYWN0ZXIgaXMgc2lnbmFsZWQgYnkgdGhlIGNoYXJhY3RlciBmb2xsb3dpbmdcbml0LCB3aGljaCBtdXN0IGJlIG9uZSBvZiB0aGUgYWxpZ25tZW50IG9wdGlvbnMuICBJZiB0aGUgc2Vjb25kXG5jaGFyYWN0ZXIgb2YgKmZvcm1hdF9zcGVjKiBpcyBub3QgYSB2YWxpZCBhbGlnbm1lbnQgb3B0aW9uLCB0aGVuIGl0IGlzXG5hc3N1bWVkIHRoYXQgYm90aCB0aGUgZmlsbCBjaGFyYWN0ZXIgYW5kIHRoZSBhbGlnbm1lbnQgb3B0aW9uIGFyZVxuYWJzZW50LlxuXG5UaGUgbWVhbmluZyBvZiB0aGUgdmFyaW91cyBhbGlnbm1lbnQgb3B0aW9ucyBpcyBhcyBmb2xsb3dzOlxuXG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBPcHRpb24gICAgfCBNZWFuaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICs9PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rXG4gICB8IGBgXCc8XCdgYCAgIHwgRm9yY2VzIHRoZSBmaWVsZCB0byBiZSBsZWZ0LWFsaWduZWQgd2l0aGluIHRoZSBhdmFpbGFibGUgICB8XG4gICB8ICAgICAgICAgICB8IHNwYWNlICh0aGlzIGlzIHRoZSBkZWZhdWx0IGZvciBtb3N0IG9iamVjdHMpLiAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJz5cJ2BgICAgfCBGb3JjZXMgdGhlIGZpZWxkIHRvIGJlIHJpZ2h0LWFsaWduZWQgd2l0aGluIHRoZSBhdmFpbGFibGUgIHxcbiAgIHwgICAgICAgICAgIHwgc3BhY2UgKHRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yIG51bWJlcnMpLiAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnPVwnYGAgICB8IEZvcmNlcyB0aGUgcGFkZGluZyB0byBiZSBwbGFjZWQgYWZ0ZXIgdGhlIHNpZ24gKGlmIGFueSkgICAgfFxuICAgfCAgICAgICAgICAgfCBidXQgYmVmb3JlIHRoZSBkaWdpdHMuICBUaGlzIGlzIHVzZWQgZm9yIHByaW50aW5nIGZpZWxkcyAgIHxcbiAgIHwgICAgICAgICAgIHwgaW4gdGhlIGZvcm0gXCcrMDAwMDAwMTIwXCcuIFRoaXMgYWxpZ25tZW50IG9wdGlvbiBpcyBvbmx5ICAgIHxcbiAgIHwgICAgICAgICAgIHwgdmFsaWQgZm9yIG51bWVyaWMgdHlwZXMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnXlwnYGAgICB8IEZvcmNlcyB0aGUgZmllbGQgdG8gYmUgY2VudGVyZWQgd2l0aGluIHRoZSBhdmFpbGFibGUgICAgICAgfFxuICAgfCAgICAgICAgICAgfCBzcGFjZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG5cbk5vdGUgdGhhdCB1bmxlc3MgYSBtaW5pbXVtIGZpZWxkIHdpZHRoIGlzIGRlZmluZWQsIHRoZSBmaWVsZCB3aWR0aFxud2lsbCBhbHdheXMgYmUgdGhlIHNhbWUgc2l6ZSBhcyB0aGUgZGF0YSB0byBmaWxsIGl0LCBzbyB0aGF0IHRoZVxuYWxpZ25tZW50IG9wdGlvbiBoYXMgbm8gbWVhbmluZyBpbiB0aGlzIGNhc2UuXG5cblRoZSAqc2lnbiogb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIG51bWJlciB0eXBlcywgYW5kIGNhbiBiZSBvbmUgb2ZcbnRoZSBmb2xsb3dpbmc6XG5cbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IE9wdGlvbiAgICB8IE1lYW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKz09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PStcbiAgIHwgYGBcJytcJ2BgICAgfCBpbmRpY2F0ZXMgdGhhdCBhIHNpZ24gc2hvdWxkIGJlIHVzZWQgZm9yIGJvdGggcG9zaXRpdmUgYXMgIHxcbiAgIHwgICAgICAgICAgIHwgd2VsbCBhcyBuZWdhdGl2ZSBudW1iZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnLVwnYGAgICB8IGluZGljYXRlcyB0aGF0IGEgc2lnbiBzaG91bGQgYmUgdXNlZCBvbmx5IGZvciBuZWdhdGl2ZSAgICAgfFxuICAgfCAgICAgICAgICAgfCBudW1iZXJzICh0aGlzIGlzIHRoZSBkZWZhdWx0IGJlaGF2aW9yKS4gICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IHNwYWNlICAgICB8IGluZGljYXRlcyB0aGF0IGEgbGVhZGluZyBzcGFjZSBzaG91bGQgYmUgdXNlZCBvbiBwb3NpdGl2ZSAgfFxuICAgfCAgICAgICAgICAgfCBudW1iZXJzLCBhbmQgYSBtaW51cyBzaWduIG9uIG5lZ2F0aXZlIG51bWJlcnMuICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG5cblRoZSBgYFwnI1wnYGAgb3B0aW9uIGNhdXNlcyB0aGUgImFsdGVybmF0ZSBmb3JtIiB0byBiZSB1c2VkIGZvciB0aGVcbmNvbnZlcnNpb24uICBUaGUgYWx0ZXJuYXRlIGZvcm0gaXMgZGVmaW5lZCBkaWZmZXJlbnRseSBmb3IgZGlmZmVyZW50XG50eXBlcy4gIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIGludGVnZXIsIGZsb2F0LCBjb21wbGV4IGFuZFxuRGVjaW1hbCB0eXBlcy4gRm9yIGludGVnZXJzLCB3aGVuIGJpbmFyeSwgb2N0YWwsIG9yIGhleGFkZWNpbWFsIG91dHB1dFxuaXMgdXNlZCwgdGhpcyBvcHRpb24gYWRkcyB0aGUgcHJlZml4IHJlc3BlY3RpdmUgYGBcJzBiXCdgYCwgYGBcJzBvXCdgYCwgb3JcbmBgXCcweFwnYGAgdG8gdGhlIG91dHB1dCB2YWx1ZS4gRm9yIGZsb2F0cywgY29tcGxleCBhbmQgRGVjaW1hbCB0aGVcbmFsdGVybmF0ZSBmb3JtIGNhdXNlcyB0aGUgcmVzdWx0IG9mIHRoZSBjb252ZXJzaW9uIHRvIGFsd2F5cyBjb250YWluIGFcbmRlY2ltYWwtcG9pbnQgY2hhcmFjdGVyLCBldmVuIGlmIG5vIGRpZ2l0cyBmb2xsb3cgaXQuIE5vcm1hbGx5LCBhXG5kZWNpbWFsLXBvaW50IGNoYXJhY3RlciBhcHBlYXJzIGluIHRoZSByZXN1bHQgb2YgdGhlc2UgY29udmVyc2lvbnNcbm9ubHkgaWYgYSBkaWdpdCBmb2xsb3dzIGl0LiBJbiBhZGRpdGlvbiwgZm9yIGBgXCdnXCdgYCBhbmQgYGBcJ0dcJ2BgXG5jb252ZXJzaW9ucywgdHJhaWxpbmcgemVyb3MgYXJlIG5vdCByZW1vdmVkIGZyb20gdGhlIHJlc3VsdC5cblxuVGhlIGBgXCcsXCdgYCBvcHRpb24gc2lnbmFscyB0aGUgdXNlIG9mIGEgY29tbWEgZm9yIGEgdGhvdXNhbmRzXG5zZXBhcmF0b3IuIEZvciBhIGxvY2FsZSBhd2FyZSBzZXBhcmF0b3IsIHVzZSB0aGUgYGBcJ25cJ2BgIGludGVnZXJcbnByZXNlbnRhdGlvbiB0eXBlIGluc3RlYWQuXG5cbkNoYW5nZWQgaW4gdmVyc2lvbiAzLjE6IEFkZGVkIHRoZSBgYFwnLFwnYGAgb3B0aW9uIChzZWUgYWxzbyAqKlBFUFxuMzc4KiopLlxuXG4qd2lkdGgqIGlzIGEgZGVjaW1hbCBpbnRlZ2VyIGRlZmluaW5nIHRoZSBtaW5pbXVtIGZpZWxkIHdpZHRoLiAgSWYgbm90XG5zcGVjaWZpZWQsIHRoZW4gdGhlIGZpZWxkIHdpZHRoIHdpbGwgYmUgZGV0ZXJtaW5lZCBieSB0aGUgY29udGVudC5cblxuSWYgdGhlICp3aWR0aCogZmllbGQgaXMgcHJlY2VkZWQgYnkgYSB6ZXJvIChgYFwnMFwnYGApIGNoYXJhY3RlciwgdGhpc1xuZW5hYmxlcyB6ZXJvLXBhZGRpbmcuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gYW4gKmFsaWdubWVudCogdHlwZSBvZlxuYGBcJz1cJ2BgIGFuZCBhICpmaWxsKiBjaGFyYWN0ZXIgb2YgYGBcJzBcJ2BgLlxuXG5UaGUgKnByZWNpc2lvbiogaXMgYSBkZWNpbWFsIG51bWJlciBpbmRpY2F0aW5nIGhvdyBtYW55IGRpZ2l0cyBzaG91bGRcbmJlIGRpc3BsYXllZCBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCBmb3IgYSBmbG9hdGluZyBwb2ludCB2YWx1ZVxuZm9ybWF0dGVkIHdpdGggYGBcJ2ZcJ2BgIGFuZCBgYFwnRlwnYGAsIG9yIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGRlY2ltYWxcbnBvaW50IGZvciBhIGZsb2F0aW5nIHBvaW50IHZhbHVlIGZvcm1hdHRlZCB3aXRoIGBgXCdnXCdgYCBvciBgYFwnR1wnYGAuXG5Gb3Igbm9uLW51bWJlciB0eXBlcyB0aGUgZmllbGQgaW5kaWNhdGVzIHRoZSBtYXhpbXVtIGZpZWxkIHNpemUgLSBpblxub3RoZXIgd29yZHMsIGhvdyBtYW55IGNoYXJhY3RlcnMgd2lsbCBiZSB1c2VkIGZyb20gdGhlIGZpZWxkIGNvbnRlbnQuXG5UaGUgKnByZWNpc2lvbiogaXMgbm90IGFsbG93ZWQgZm9yIGludGVnZXIgdmFsdWVzLlxuXG5GaW5hbGx5LCB0aGUgKnR5cGUqIGRldGVybWluZXMgaG93IHRoZSBkYXRhIHNob3VsZCBiZSBwcmVzZW50ZWQuXG5cblRoZSBhdmFpbGFibGUgc3RyaW5nIHByZXNlbnRhdGlvbiB0eXBlcyBhcmU6XG5cbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IFR5cGUgICAgICB8IE1lYW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKz09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PStcbiAgIHwgYGBcJ3NcJ2BgICAgfCBTdHJpbmcgZm9ybWF0LiBUaGlzIGlzIHRoZSBkZWZhdWx0IHR5cGUgZm9yIHN0cmluZ3MgYW5kICAgIHxcbiAgIHwgICAgICAgICAgIHwgbWF5IGJlIG9taXR0ZWQuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBOb25lICAgICAgfCBUaGUgc2FtZSBhcyBgYFwnc1wnYGAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcblxuVGhlIGF2YWlsYWJsZSBpbnRlZ2VyIHByZXNlbnRhdGlvbiB0eXBlcyBhcmU6XG5cbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IFR5cGUgICAgICB8IE1lYW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKz09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PStcbiAgIHwgYGBcJ2JcJ2BgICAgfCBCaW5hcnkgZm9ybWF0LiBPdXRwdXRzIHRoZSBudW1iZXIgaW4gYmFzZSAyLiAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCdjXCdgYCAgIHwgQ2hhcmFjdGVyLiBDb252ZXJ0cyB0aGUgaW50ZWdlciB0byB0aGUgY29ycmVzcG9uZGluZyAgICAgICB8XG4gICB8ICAgICAgICAgICB8IHVuaWNvZGUgY2hhcmFjdGVyIGJlZm9yZSBwcmludGluZy4gICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ2RcJ2BgICAgfCBEZWNpbWFsIEludGVnZXIuIE91dHB1dHMgdGhlIG51bWJlciBpbiBiYXNlIDEwLiAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCdvXCdgYCAgIHwgT2N0YWwgZm9ybWF0LiBPdXRwdXRzIHRoZSBudW1iZXIgaW4gYmFzZSA4LiAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwneFwnYGAgICB8IEhleCBmb3JtYXQuIE91dHB1dHMgdGhlIG51bWJlciBpbiBiYXNlIDE2LCB1c2luZyBsb3dlci0gICAgfFxuICAgfCAgICAgICAgICAgfCBjYXNlIGxldHRlcnMgZm9yIHRoZSBkaWdpdHMgYWJvdmUgOS4gICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCdYXCdgYCAgIHwgSGV4IGZvcm1hdC4gT3V0cHV0cyB0aGUgbnVtYmVyIGluIGJhc2UgMTYsIHVzaW5nIHVwcGVyLSAgICB8XG4gICB8ICAgICAgICAgICB8IGNhc2UgbGV0dGVycyBmb3IgdGhlIGRpZ2l0cyBhYm92ZSA5LiAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ25cJ2BgICAgfCBOdW1iZXIuIFRoaXMgaXMgdGhlIHNhbWUgYXMgYGBcJ2RcJ2BgLCBleGNlcHQgdGhhdCBpdCB1c2VzICAgfFxuICAgfCAgICAgICAgICAgfCB0aGUgY3VycmVudCBsb2NhbGUgc2V0dGluZyB0byBpbnNlcnQgdGhlIGFwcHJvcHJpYXRlICAgICAgIHxcbiAgIHwgICAgICAgICAgIHwgbnVtYmVyIHNlcGFyYXRvciBjaGFyYWN0ZXJzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBOb25lICAgICAgfCBUaGUgc2FtZSBhcyBgYFwnZFwnYGAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcblxuSW4gYWRkaXRpb24gdG8gdGhlIGFib3ZlIHByZXNlbnRhdGlvbiB0eXBlcywgaW50ZWdlcnMgY2FuIGJlIGZvcm1hdHRlZFxud2l0aCB0aGUgZmxvYXRpbmcgcG9pbnQgcHJlc2VudGF0aW9uIHR5cGVzIGxpc3RlZCBiZWxvdyAoZXhjZXB0XG5gYFwnblwnYGAgYW5kIE5vbmUpLiBXaGVuIGRvaW5nIHNvLCBgYGZsb2F0KClgYCBpcyB1c2VkIHRvIGNvbnZlcnQgdGhlXG5pbnRlZ2VyIHRvIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIGJlZm9yZSBmb3JtYXR0aW5nLlxuXG5UaGUgYXZhaWxhYmxlIHByZXNlbnRhdGlvbiB0eXBlcyBmb3IgZmxvYXRpbmcgcG9pbnQgYW5kIGRlY2ltYWwgdmFsdWVzXG5hcmU6XG5cbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IFR5cGUgICAgICB8IE1lYW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKz09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PStcbiAgIHwgYGBcJ2VcJ2BgICAgfCBFeHBvbmVudCBub3RhdGlvbi4gUHJpbnRzIHRoZSBudW1iZXIgaW4gc2NpZW50aWZpYyAgICAgICAgIHxcbiAgIHwgICAgICAgICAgIHwgbm90YXRpb24gdXNpbmcgdGhlIGxldHRlciBcJ2VcJyB0byBpbmRpY2F0ZSB0aGUgZXhwb25lbnQuICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCdFXCdgYCAgIHwgRXhwb25lbnQgbm90YXRpb24uIFNhbWUgYXMgYGBcJ2VcJ2BgIGV4Y2VwdCBpdCB1c2VzIGFuIHVwcGVyIHxcbiAgIHwgICAgICAgICAgIHwgY2FzZSBcJ0VcJyBhcyB0aGUgc2VwYXJhdG9yIGNoYXJhY3Rlci4gICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCdmXCdgYCAgIHwgRml4ZWQgcG9pbnQuIERpc3BsYXlzIHRoZSBudW1iZXIgYXMgYSBmaXhlZC1wb2ludCBudW1iZXIuICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuICAgfCBgYFwnRlwnYGAgICB8IEZpeGVkIHBvaW50LiBTYW1lIGFzIGBgXCdmXCdgYCwgYnV0IGNvbnZlcnRzIGBgbmFuYGAgdG8gICAgICB8XG4gICB8ICAgICAgICAgICB8IGBgTkFOYGAgYW5kIGBgaW5mYGAgdG8gYGBJTkZgYC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ2dcJ2BgICAgfCBHZW5lcmFsIGZvcm1hdC4gIEZvciBhIGdpdmVuIHByZWNpc2lvbiBgYHAgPj0gMWBgLCB0aGlzICAgIHxcbiAgIHwgICAgICAgICAgIHwgcm91bmRzIHRoZSBudW1iZXIgdG8gYGBwYGAgc2lnbmlmaWNhbnQgZGlnaXRzIGFuZCB0aGVuICAgICB8XG4gICB8ICAgICAgICAgICB8IGZvcm1hdHMgdGhlIHJlc3VsdCBpbiBlaXRoZXIgZml4ZWQtcG9pbnQgZm9ybWF0IG9yIGluICAgICAgfFxuICAgfCAgICAgICAgICAgfCBzY2llbnRpZmljIG5vdGF0aW9uLCBkZXBlbmRpbmcgb24gaXRzIG1hZ25pdHVkZS4gIFRoZSAgICAgIHxcbiAgIHwgICAgICAgICAgIHwgcHJlY2lzZSBydWxlcyBhcmUgYXMgZm9sbG93czogc3VwcG9zZSB0aGF0IHRoZSByZXN1bHQgICAgICB8XG4gICB8ICAgICAgICAgICB8IGZvcm1hdHRlZCB3aXRoIHByZXNlbnRhdGlvbiB0eXBlIGBgXCdlXCdgYCBhbmQgcHJlY2lzaW9uICAgICB8XG4gICB8ICAgICAgICAgICB8IGBgcC0xYGAgd291bGQgaGF2ZSBleHBvbmVudCBgYGV4cGBgLiAgVGhlbiBpZiBgYC00IDw9IGV4cCAgfFxuICAgfCAgICAgICAgICAgfCA8IHBgYCwgdGhlIG51bWJlciBpcyBmb3JtYXR0ZWQgd2l0aCBwcmVzZW50YXRpb24gdHlwZSAgICAgIHxcbiAgIHwgICAgICAgICAgIHwgYGBcJ2ZcJ2BgIGFuZCBwcmVjaXNpb24gYGBwLTEtZXhwYGAuIE90aGVyd2lzZSwgdGhlIG51bWJlciAgIHxcbiAgIHwgICAgICAgICAgIHwgaXMgZm9ybWF0dGVkIHdpdGggcHJlc2VudGF0aW9uIHR5cGUgYGBcJ2VcJ2BgIGFuZCBwcmVjaXNpb24gIHxcbiAgIHwgICAgICAgICAgIHwgYGBwLTFgYC4gSW4gYm90aCBjYXNlcyBpbnNpZ25pZmljYW50IHRyYWlsaW5nIHplcm9zIGFyZSAgICB8XG4gICB8ICAgICAgICAgICB8IHJlbW92ZWQgZnJvbSB0aGUgc2lnbmlmaWNhbmQsIGFuZCB0aGUgZGVjaW1hbCBwb2ludCBpcyAgICAgfFxuICAgfCAgICAgICAgICAgfCBhbHNvIHJlbW92ZWQgaWYgdGhlcmUgYXJlIG5vIHJlbWFpbmluZyBkaWdpdHMgZm9sbG93aW5nICAgIHxcbiAgIHwgICAgICAgICAgIHwgaXQuICBQb3NpdGl2ZSBhbmQgbmVnYXRpdmUgaW5maW5pdHksIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSB8XG4gICB8ICAgICAgICAgICB8IHplcm8sIGFuZCBuYW5zLCBhcmUgZm9ybWF0dGVkIGFzIGBgaW5mYGAsIGBgLWluZmBgLCBgYDBgYCwgfFxuICAgfCAgICAgICAgICAgfCBgYC0wYGAgYW5kIGBgbmFuYGAgcmVzcGVjdGl2ZWx5LCByZWdhcmRsZXNzIG9mIHRoZSAgICAgICAgIHxcbiAgIHwgICAgICAgICAgIHwgcHJlY2lzaW9uLiAgQSBwcmVjaXNpb24gb2YgYGAwYGAgaXMgdHJlYXRlZCBhcyBlcXVpdmFsZW50ICB8XG4gICB8ICAgICAgICAgICB8IHRvIGEgcHJlY2lzaW9uIG9mIGBgMWBgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJ0dcJ2BgICAgfCBHZW5lcmFsIGZvcm1hdC4gU2FtZSBhcyBgYFwnZ1wnYGAgZXhjZXB0IHN3aXRjaGVzIHRvIGBgXCdFXCdgYCB8XG4gICB8ICAgICAgICAgICB8IGlmIHRoZSBudW1iZXIgZ2V0cyB0b28gbGFyZ2UuIFRoZSByZXByZXNlbnRhdGlvbnMgb2YgICAgICAgfFxuICAgfCAgICAgICAgICAgfCBpbmZpbml0eSBhbmQgTmFOIGFyZSB1cHBlcmNhc2VkLCB0b28uICAgICAgICAgICAgICAgICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IGBgXCduXCdgYCAgIHwgTnVtYmVyLiBUaGlzIGlzIHRoZSBzYW1lIGFzIGBgXCdnXCdgYCwgZXhjZXB0IHRoYXQgaXQgdXNlcyAgIHxcbiAgIHwgICAgICAgICAgIHwgdGhlIGN1cnJlbnQgbG9jYWxlIHNldHRpbmcgdG8gaW5zZXJ0IHRoZSBhcHByb3ByaWF0ZSAgICAgICB8XG4gICB8ICAgICAgICAgICB8IG51bWJlciBzZXBhcmF0b3IgY2hhcmFjdGVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICAgKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbiAgIHwgYGBcJyVcJ2BgICAgfCBQZXJjZW50YWdlLiBNdWx0aXBsaWVzIHRoZSBudW1iZXIgYnkgMTAwIGFuZCBkaXNwbGF5cyBpbiAgIHxcbiAgIHwgICAgICAgICAgIHwgZml4ZWQgKGBgXCdmXCdgYCkgZm9ybWF0LCBmb2xsb3dlZCBieSBhIHBlcmNlbnQgc2lnbi4gICAgICAgIHxcbiAgICstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG4gICB8IE5vbmUgICAgICB8IFNpbWlsYXIgdG8gYGBcJ2dcJ2BgLCBleGNlcHQgd2l0aCBhdCBsZWFzdCBvbmUgZGlnaXQgcGFzdCAgICB8XG4gICB8ICAgICAgICAgICB8IHRoZSBkZWNpbWFsIHBvaW50IGFuZCBhIGRlZmF1bHQgcHJlY2lzaW9uIG9mIDEyLiBUaGlzIGlzICAgfFxuICAgfCAgICAgICAgICAgfCBpbnRlbmRlZCB0byBtYXRjaCBgYHN0cigpYGAsIGV4Y2VwdCB5b3UgY2FuIGFkZCB0aGUgb3RoZXIgIHxcbiAgIHwgICAgICAgICAgIHwgZm9ybWF0IG1vZGlmaWVycy4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gICArLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuXG5cbkZvcm1hdCBleGFtcGxlc1xuPT09PT09PT09PT09PT09XG5cblRoaXMgc2VjdGlvbiBjb250YWlucyBleGFtcGxlcyBvZiB0aGUgbmV3IGZvcm1hdCBzeW50YXggYW5kIGNvbXBhcmlzb25cbndpdGggdGhlIG9sZCBgYCVgYC1mb3JtYXR0aW5nLlxuXG5JbiBtb3N0IG9mIHRoZSBjYXNlcyB0aGUgc3ludGF4IGlzIHNpbWlsYXIgdG8gdGhlIG9sZFxuYGAlYGAtZm9ybWF0dGluZywgd2l0aCB0aGUgYWRkaXRpb24gb2YgdGhlIGBge31gYCBhbmQgd2l0aCBgYDpgYCB1c2VkXG5pbnN0ZWFkIG9mIGBgJWBgLiBGb3IgZXhhbXBsZSwgYGBcJyUwMy4yZlwnYGAgY2FuIGJlIHRyYW5zbGF0ZWQgdG9cbmBgXCd7OjAzLjJmfVwnYGAuXG5cblRoZSBuZXcgZm9ybWF0IHN5bnRheCBhbHNvIHN1cHBvcnRzIG5ldyBhbmQgZGlmZmVyZW50IG9wdGlvbnMsIHNob3duXG5pbiB0aGUgZm9sbG93IGV4YW1wbGVzLlxuXG5BY2Nlc3NpbmcgYXJndW1lbnRzIGJ5IHBvc2l0aW9uOlxuXG4gICA+Pj4gXCd7MH0sIHsxfSwgezJ9XCcuZm9ybWF0KFwnYVwnLCBcJ2JcJywgXCdjXCcpXG4gICBcJ2EsIGIsIGNcJ1xuICAgPj4+IFwne30sIHt9LCB7fVwnLmZvcm1hdChcJ2FcJywgXCdiXCcsIFwnY1wnKSAgIyAzLjErIG9ubHlcbiAgIFwnYSwgYiwgY1wnXG4gICA+Pj4gXCd7Mn0sIHsxfSwgezB9XCcuZm9ybWF0KFwnYVwnLCBcJ2JcJywgXCdjXCcpXG4gICBcJ2MsIGIsIGFcJ1xuICAgPj4+IFwnezJ9LCB7MX0sIHswfVwnLmZvcm1hdCgqXCdhYmNcJykgICAgICAjIHVucGFja2luZyBhcmd1bWVudCBzZXF1ZW5jZVxuICAgXCdjLCBiLCBhXCdcbiAgID4+PiBcJ3swfXsxfXswfVwnLmZvcm1hdChcJ2FicmFcJywgXCdjYWRcJykgICAjIGFyZ3VtZW50c1wnIGluZGljZXMgY2FuIGJlIHJlcGVhdGVkXG4gICBcJ2FicmFjYWRhYnJhXCdcblxuQWNjZXNzaW5nIGFyZ3VtZW50cyBieSBuYW1lOlxuXG4gICA+Pj4gXCdDb29yZGluYXRlczoge2xhdGl0dWRlfSwge2xvbmdpdHVkZX1cJy5mb3JtYXQobGF0aXR1ZGU9XCczNy4yNE5cJywgbG9uZ2l0dWRlPVwnLTExNS44MVdcJylcbiAgIFwnQ29vcmRpbmF0ZXM6IDM3LjI0TiwgLTExNS44MVdcJ1xuICAgPj4+IGNvb3JkID0ge1wnbGF0aXR1ZGVcJzogXCczNy4yNE5cJywgXCdsb25naXR1ZGVcJzogXCctMTE1LjgxV1wnfVxuICAgPj4+IFwnQ29vcmRpbmF0ZXM6IHtsYXRpdHVkZX0sIHtsb25naXR1ZGV9XCcuZm9ybWF0KCoqY29vcmQpXG4gICBcJ0Nvb3JkaW5hdGVzOiAzNy4yNE4sIC0xMTUuODFXXCdcblxuQWNjZXNzaW5nIGFyZ3VtZW50c1wnIGF0dHJpYnV0ZXM6XG5cbiAgID4+PiBjID0gMy01alxuICAgPj4+IChcJ1RoZSBjb21wbGV4IG51bWJlciB7MH0gaXMgZm9ybWVkIGZyb20gdGhlIHJlYWwgcGFydCB7MC5yZWFsfSBcJ1xuICAgLi4uICBcJ2FuZCB0aGUgaW1hZ2luYXJ5IHBhcnQgezAuaW1hZ30uXCcpLmZvcm1hdChjKVxuICAgXCdUaGUgY29tcGxleCBudW1iZXIgKDMtNWopIGlzIGZvcm1lZCBmcm9tIHRoZSByZWFsIHBhcnQgMy4wIGFuZCB0aGUgaW1hZ2luYXJ5IHBhcnQgLTUuMC5cJ1xuICAgPj4+IGNsYXNzIFBvaW50OlxuICAgLi4uICAgICBkZWYgX19pbml0X18oc2VsZiwgeCwgeSk6XG4gICAuLi4gICAgICAgICBzZWxmLngsIHNlbGYueSA9IHgsIHlcbiAgIC4uLiAgICAgZGVmIF9fc3RyX18oc2VsZik6XG4gICAuLi4gICAgICAgICByZXR1cm4gXCdQb2ludCh7c2VsZi54fSwge3NlbGYueX0pXCcuZm9ybWF0KHNlbGY9c2VsZilcbiAgIC4uLlxuICAgPj4+IHN0cihQb2ludCg0LCAyKSlcbiAgIFwnUG9pbnQoNCwgMilcJ1xuXG5BY2Nlc3NpbmcgYXJndW1lbnRzXCcgaXRlbXM6XG5cbiAgID4+PiBjb29yZCA9ICgzLCA1KVxuICAgPj4+IFwnWDogezBbMF19OyAgWTogezBbMV19XCcuZm9ybWF0KGNvb3JkKVxuICAgXCdYOiAzOyAgWTogNVwnXG5cblJlcGxhY2luZyBgYCVzYGAgYW5kIGBgJXJgYDpcblxuICAgPj4+ICJyZXByKCkgc2hvd3MgcXVvdGVzOiB7IXJ9OyBzdHIoKSBkb2VzblwndDogeyFzfSIuZm9ybWF0KFwndGVzdDFcJywgXCd0ZXN0MlwnKVxuICAgInJlcHIoKSBzaG93cyBxdW90ZXM6IFwndGVzdDFcJzsgc3RyKCkgZG9lc25cJ3Q6IHRlc3QyIlxuXG5BbGlnbmluZyB0aGUgdGV4dCBhbmQgc3BlY2lmeWluZyBhIHdpZHRoOlxuXG4gICA+Pj4gXCd7OjwzMH1cJy5mb3JtYXQoXCdsZWZ0IGFsaWduZWRcJylcbiAgIFwnbGVmdCBhbGlnbmVkICAgICAgICAgICAgICAgICAgXCdcbiAgID4+PiBcJ3s6PjMwfVwnLmZvcm1hdChcJ3JpZ2h0IGFsaWduZWRcJylcbiAgIFwnICAgICAgICAgICAgICAgICByaWdodCBhbGlnbmVkXCdcbiAgID4+PiBcJ3s6XjMwfVwnLmZvcm1hdChcJ2NlbnRlcmVkXCcpXG4gICBcJyAgICAgICAgICAgY2VudGVyZWQgICAgICAgICAgIFwnXG4gICA+Pj4gXCd7OipeMzB9XCcuZm9ybWF0KFwnY2VudGVyZWRcJykgICMgdXNlIFwnKlwnIGFzIGEgZmlsbCBjaGFyXG4gICBcJyoqKioqKioqKioqY2VudGVyZWQqKioqKioqKioqKlwnXG5cblJlcGxhY2luZyBgYCUrZmBgLCBgYCUtZmBgLCBhbmQgYGAlIGZgYCBhbmQgc3BlY2lmeWluZyBhIHNpZ246XG5cbiAgID4+PiBcJ3s6K2Z9OyB7OitmfVwnLmZvcm1hdCgzLjE0LCAtMy4xNCkgICMgc2hvdyBpdCBhbHdheXNcbiAgIFwnKzMuMTQwMDAwOyAtMy4xNDAwMDBcJ1xuICAgPj4+IFwnezogZn07IHs6IGZ9XCcuZm9ybWF0KDMuMTQsIC0zLjE0KSAgIyBzaG93IGEgc3BhY2UgZm9yIHBvc2l0aXZlIG51bWJlcnNcbiAgIFwnIDMuMTQwMDAwOyAtMy4xNDAwMDBcJ1xuICAgPj4+IFwnezotZn07IHs6LWZ9XCcuZm9ybWF0KDMuMTQsIC0zLjE0KSAgIyBzaG93IG9ubHkgdGhlIG1pbnVzIC0tIHNhbWUgYXMgXCd7OmZ9OyB7OmZ9XCdcbiAgIFwnMy4xNDAwMDA7IC0zLjE0MDAwMFwnXG5cblJlcGxhY2luZyBgYCV4YGAgYW5kIGBgJW9gYCBhbmQgY29udmVydGluZyB0aGUgdmFsdWUgdG8gZGlmZmVyZW50XG5iYXNlczpcblxuICAgPj4+ICMgZm9ybWF0IGFsc28gc3VwcG9ydHMgYmluYXJ5IG51bWJlcnNcbiAgID4+PiAiaW50OiB7MDpkfTsgIGhleDogezA6eH07ICBvY3Q6IHswOm99OyAgYmluOiB7MDpifSIuZm9ybWF0KDQyKVxuICAgXCdpbnQ6IDQyOyAgaGV4OiAyYTsgIG9jdDogNTI7ICBiaW46IDEwMTAxMFwnXG4gICA+Pj4gIyB3aXRoIDB4LCAwbywgb3IgMGIgYXMgcHJlZml4OlxuICAgPj4+ICJpbnQ6IHswOmR9OyAgaGV4OiB7MDojeH07ICBvY3Q6IHswOiNvfTsgIGJpbjogezA6I2J9Ii5mb3JtYXQoNDIpXG4gICBcJ2ludDogNDI7ICBoZXg6IDB4MmE7ICBvY3Q6IDBvNTI7ICBiaW46IDBiMTAxMDEwXCdcblxuVXNpbmcgdGhlIGNvbW1hIGFzIGEgdGhvdXNhbmRzIHNlcGFyYXRvcjpcblxuICAgPj4+IFwnezosfVwnLmZvcm1hdCgxMjM0NTY3ODkwKVxuICAgXCcxLDIzNCw1NjcsODkwXCdcblxuRXhwcmVzc2luZyBhIHBlcmNlbnRhZ2U6XG5cbiAgID4+PiBwb2ludHMgPSAxOVxuICAgPj4+IHRvdGFsID0gMjJcbiAgID4+PiBcJ0NvcnJlY3QgYW5zd2VyczogezouMiV9XCcuZm9ybWF0KHBvaW50cy90b3RhbClcbiAgIFwnQ29ycmVjdCBhbnN3ZXJzOiA4Ni4zNiVcJ1xuXG5Vc2luZyB0eXBlLXNwZWNpZmljIGZvcm1hdHRpbmc6XG5cbiAgID4+PiBpbXBvcnQgZGF0ZXRpbWVcbiAgID4+PiBkID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAxMCwgNywgNCwgMTIsIDE1LCA1OClcbiAgID4+PiBcJ3s6JVktJW0tJWQgJUg6JU06JVN9XCcuZm9ybWF0KGQpXG4gICBcJzIwMTAtMDctMDQgMTI6MTU6NThcJ1xuXG5OZXN0aW5nIGFyZ3VtZW50cyBhbmQgbW9yZSBjb21wbGV4IGV4YW1wbGVzOlxuXG4gICA+Pj4gZm9yIGFsaWduLCB0ZXh0IGluIHppcChcJzxePlwnLCBbXCdsZWZ0XCcsIFwnY2VudGVyXCcsIFwncmlnaHRcJ10pOlxuICAgLi4uICAgICBcJ3swOntmaWxsfXthbGlnbn0xNn1cJy5mb3JtYXQodGV4dCwgZmlsbD1hbGlnbiwgYWxpZ249YWxpZ24pXG4gICAuLi5cbiAgIFwnbGVmdDw8PDw8PDw8PDw8PFwnXG4gICBcJ15eXl5eY2VudGVyXl5eXl5cJ1xuICAgXCc+Pj4+Pj4+Pj4+PnJpZ2h0XCdcbiAgID4+PlxuICAgPj4+IG9jdGV0cyA9IFsxOTIsIDE2OCwgMCwgMV1cbiAgID4+PiBcJ3s6MDJYfXs6MDJYfXs6MDJYfXs6MDJYfVwnLmZvcm1hdCgqb2N0ZXRzKVxuICAgXCdDMEE4MDAwMVwnXG4gICA+Pj4gaW50KF8sIDE2KVxuICAgMzIzMjIzNTUyMVxuICAgPj4+XG4gICA+Pj4gd2lkdGggPSA1XG4gICA+Pj4gZm9yIG51bSBpbiByYW5nZSg1LDEyKTpcbiAgIC4uLiAgICAgZm9yIGJhc2UgaW4gXCdkWG9iXCc6XG4gICAuLi4gICAgICAgICBwcmludChcJ3swOnt3aWR0aH17YmFzZX19XCcuZm9ybWF0KG51bSwgYmFzZT1iYXNlLCB3aWR0aD13aWR0aCksIGVuZD1cJyBcJylcbiAgIC4uLiAgICAgcHJpbnQoKVxuICAgLi4uXG4gICAgICAgNSAgICAgNSAgICAgNSAgIDEwMVxuICAgICAgIDYgICAgIDYgICAgIDYgICAxMTBcbiAgICAgICA3ICAgICA3ICAgICA3ICAgMTExXG4gICAgICAgOCAgICAgOCAgICAxMCAgMTAwMFxuICAgICAgIDkgICAgIDkgICAgMTEgIDEwMDFcbiAgICAgIDEwICAgICBBICAgIDEyICAxMDEwXG4gICAgICAxMSAgICAgQiAgICAxMyAgMTAxMVxuJywKKyAnZnVuY3Rpb24nOiAnXG5GdW5jdGlvbiBkZWZpbml0aW9uc1xuKioqKioqKioqKioqKioqKioqKipcblxuQSBmdW5jdGlvbiBkZWZpbml0aW9uIGRlZmluZXMgYSB1c2VyLWRlZmluZWQgZnVuY3Rpb24gb2JqZWN0IChzZWVcbnNlY3Rpb24gKlRoZSBzdGFuZGFyZCB0eXBlIGhpZXJhcmNoeSopOlxuXG4gICBmdW5jZGVmICAgICAgICA6Oj0gW2RlY29yYXRvcnNdICJkZWYiIGZ1bmNuYW1lICIoIiBbcGFyYW1ldGVyX2xpc3RdICIpIiBbIi0+IiBleHByZXNzaW9uXSAiOiIgc3VpdGVcbiAgIGRlY29yYXRvcnMgICAgIDo6PSBkZWNvcmF0b3IrXG4gICBkZWNvcmF0b3IgICAgICA6Oj0gIkAiIGRvdHRlZF9uYW1lIFsiKCIgW3BhcmFtZXRlcl9saXN0IFsiLCJdXSAiKSJdIE5FV0xJTkVcbiAgIGRvdHRlZF9uYW1lICAgIDo6PSBpZGVudGlmaWVyICgiLiIgaWRlbnRpZmllcikqXG4gICBwYXJhbWV0ZXJfbGlzdCA6Oj0gKGRlZnBhcmFtZXRlciAiLCIpKlxuICAgICAgICAgICAgICAgICAgICAgICggICIqIiBbcGFyYW1ldGVyXSAoIiwiIGRlZnBhcmFtZXRlcikqXG4gICAgICAgICAgICAgICAgICAgICAgWywgIioqIiBwYXJhbWV0ZXJdXG4gICAgICAgICAgICAgICAgICAgICAgfCAiKioiIHBhcmFtZXRlclxuICAgICAgICAgICAgICAgICAgICAgIHwgZGVmcGFyYW1ldGVyIFsiLCJdIClcbiAgIHBhcmFtZXRlciAgICAgIDo6PSBpZGVudGlmaWVyIFsiOiIgZXhwcmVzc2lvbl1cbiAgIGRlZnBhcmFtZXRlciAgIDo6PSBwYXJhbWV0ZXIgWyI9IiBleHByZXNzaW9uXVxuICAgZnVuY25hbWUgICAgICAgOjo9IGlkZW50aWZpZXJcblxuQSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIGFuIGV4ZWN1dGFibGUgc3RhdGVtZW50LiAgSXRzIGV4ZWN1dGlvbiBiaW5kc1xudGhlIGZ1bmN0aW9uIG5hbWUgaW4gdGhlIGN1cnJlbnQgbG9jYWwgbmFtZXNwYWNlIHRvIGEgZnVuY3Rpb24gb2JqZWN0XG4oYSB3cmFwcGVyIGFyb3VuZCB0aGUgZXhlY3V0YWJsZSBjb2RlIGZvciB0aGUgZnVuY3Rpb24pLiAgVGhpc1xuZnVuY3Rpb24gb2JqZWN0IGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGdsb2JhbCBuYW1lc3BhY2VcbmFzIHRoZSBnbG9iYWwgbmFtZXNwYWNlIHRvIGJlIHVzZWQgd2hlbiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkLlxuXG5UaGUgZnVuY3Rpb24gZGVmaW5pdGlvbiBkb2VzIG5vdCBleGVjdXRlIHRoZSBmdW5jdGlvbiBib2R5OyB0aGlzIGdldHNcbmV4ZWN1dGVkIG9ubHkgd2hlbiB0aGUgZnVuY3Rpb24gaXMgY2FsbGVkLiBbM11cblxuQSBmdW5jdGlvbiBkZWZpbml0aW9uIG1heSBiZSB3cmFwcGVkIGJ5IG9uZSBvciBtb3JlICpkZWNvcmF0b3IqXG5leHByZXNzaW9ucy4gRGVjb3JhdG9yIGV4cHJlc3Npb25zIGFyZSBldmFsdWF0ZWQgd2hlbiB0aGUgZnVuY3Rpb24gaXNcbmRlZmluZWQsIGluIHRoZSBzY29wZSB0aGF0IGNvbnRhaW5zIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9uLiAgVGhlXG5yZXN1bHQgbXVzdCBiZSBhIGNhbGxhYmxlLCB3aGljaCBpcyBpbnZva2VkIHdpdGggdGhlIGZ1bmN0aW9uIG9iamVjdFxuYXMgdGhlIG9ubHkgYXJndW1lbnQuIFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBib3VuZCB0byB0aGUgZnVuY3Rpb24gbmFtZVxuaW5zdGVhZCBvZiB0aGUgZnVuY3Rpb24gb2JqZWN0LiAgTXVsdGlwbGUgZGVjb3JhdG9ycyBhcmUgYXBwbGllZCBpblxubmVzdGVkIGZhc2hpb24uIEZvciBleGFtcGxlLCB0aGUgZm9sbG93aW5nIGNvZGVcblxuICAgQGYxKGFyZylcbiAgIEBmMlxuICAgZGVmIGZ1bmMoKTogcGFzc1xuXG5pcyBlcXVpdmFsZW50IHRvXG5cbiAgIGRlZiBmdW5jKCk6IHBhc3NcbiAgIGZ1bmMgPSBmMShhcmcpKGYyKGZ1bmMpKVxuXG5XaGVuIG9uZSBvciBtb3JlIHBhcmFtZXRlcnMgaGF2ZSB0aGUgZm9ybSAqcGFyYW1ldGVyKiBgYD1gYFxuKmV4cHJlc3Npb24qLCB0aGUgZnVuY3Rpb24gaXMgc2FpZCB0byBoYXZlICJkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZXMuIlxuRm9yIGEgcGFyYW1ldGVyIHdpdGggYSBkZWZhdWx0IHZhbHVlLCB0aGUgY29ycmVzcG9uZGluZyBhcmd1bWVudCBtYXlcbmJlIG9taXR0ZWQgZnJvbSBhIGNhbGwsIGluIHdoaWNoIGNhc2UgdGhlIHBhcmFtZXRlclwncyBkZWZhdWx0IHZhbHVlIGlzXG5zdWJzdGl0dXRlZC4gIElmIGEgcGFyYW1ldGVyIGhhcyBhIGRlZmF1bHQgdmFsdWUsIGFsbCBmb2xsb3dpbmdcbnBhcmFtZXRlcnMgdXAgdW50aWwgdGhlICJgYCpgYCIgbXVzdCBhbHNvIGhhdmUgYSBkZWZhdWx0IHZhbHVlIC0tLVxudGhpcyBpcyBhIHN5bnRhY3RpYyByZXN0cmljdGlvbiB0aGF0IGlzIG5vdCBleHByZXNzZWQgYnkgdGhlIGdyYW1tYXIuXG5cbioqRGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWVzIGFyZSBldmFsdWF0ZWQgd2hlbiB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvblxuaXMgZXhlY3V0ZWQuKiogVGhpcyBtZWFucyB0aGF0IHRoZSBleHByZXNzaW9uIGlzIGV2YWx1YXRlZCBvbmNlLCB3aGVuXG50aGUgZnVuY3Rpb24gaXMgZGVmaW5lZCwgYW5kIHRoYXQgdGhlIHNhbWUgInByZS1jb21wdXRlZCIgdmFsdWUgaXNcbnVzZWQgZm9yIGVhY2ggY2FsbC4gIFRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCB3aGVuIGFcbmRlZmF1bHQgcGFyYW1ldGVyIGlzIGEgbXV0YWJsZSBvYmplY3QsIHN1Y2ggYXMgYSBsaXN0IG9yIGEgZGljdGlvbmFyeTpcbmlmIHRoZSBmdW5jdGlvbiBtb2RpZmllcyB0aGUgb2JqZWN0IChlLmcuIGJ5IGFwcGVuZGluZyBhbiBpdGVtIHRvIGFcbmxpc3QpLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBpbiBlZmZlY3QgbW9kaWZpZWQuIFRoaXMgaXMgZ2VuZXJhbGx5IG5vdFxud2hhdCB3YXMgaW50ZW5kZWQuICBBIHdheSBhcm91bmQgdGhpcyBpcyB0byB1c2UgYGBOb25lYGAgYXMgdGhlXG5kZWZhdWx0LCBhbmQgZXhwbGljaXRseSB0ZXN0IGZvciBpdCBpbiB0aGUgYm9keSBvZiB0aGUgZnVuY3Rpb24sIGUuZy46XG5cbiAgIGRlZiB3aGF0c19vbl90aGVfdGVsbHkocGVuZ3Vpbj1Ob25lKTpcbiAgICAgICBpZiBwZW5ndWluIGlzIE5vbmU6XG4gICAgICAgICAgIHBlbmd1aW4gPSBbXVxuICAgICAgIHBlbmd1aW4uYXBwZW5kKCJwcm9wZXJ0eSBvZiB0aGUgem9vIilcbiAgICAgICByZXR1cm4gcGVuZ3VpblxuXG5GdW5jdGlvbiBjYWxsIHNlbWFudGljcyBhcmUgZGVzY3JpYmVkIGluIG1vcmUgZGV0YWlsIGluIHNlY3Rpb25cbipDYWxscyouIEEgZnVuY3Rpb24gY2FsbCBhbHdheXMgYXNzaWducyB2YWx1ZXMgdG8gYWxsIHBhcmFtZXRlcnNcbm1lbnRpb25lZCBpbiB0aGUgcGFyYW1ldGVyIGxpc3QsIGVpdGhlciBmcm9tIHBvc2l0aW9uIGFyZ3VtZW50cywgZnJvbVxua2V5d29yZCBhcmd1bWVudHMsIG9yIGZyb20gZGVmYXVsdCB2YWx1ZXMuICBJZiB0aGUgZm9ybVxuImBgKmlkZW50aWZpZXJgYCIgaXMgcHJlc2VudCwgaXQgaXMgaW5pdGlhbGl6ZWQgdG8gYSB0dXBsZSByZWNlaXZpbmdcbmFueSBleGNlc3MgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBkZWZhdWx0aW5nIHRvIHRoZSBlbXB0eSB0dXBsZS4gIElmXG50aGUgZm9ybSAiYGAqKmlkZW50aWZpZXJgYCIgaXMgcHJlc2VudCwgaXQgaXMgaW5pdGlhbGl6ZWQgdG8gYSBuZXdcbmRpY3Rpb25hcnkgcmVjZWl2aW5nIGFueSBleGNlc3Mga2V5d29yZCBhcmd1bWVudHMsIGRlZmF1bHRpbmcgdG8gYSBuZXdcbmVtcHR5IGRpY3Rpb25hcnkuIFBhcmFtZXRlcnMgYWZ0ZXIgImBgKmBgIiBvciAiYGAqaWRlbnRpZmllcmBgIiBhcmVcbmtleXdvcmQtb25seSBwYXJhbWV0ZXJzIGFuZCBtYXkgb25seSBiZSBwYXNzZWQgdXNlZCBrZXl3b3JkIGFyZ3VtZW50cy5cblxuUGFyYW1ldGVycyBtYXkgaGF2ZSBhbm5vdGF0aW9ucyBvZiB0aGUgZm9ybSAiYGA6IGV4cHJlc3Npb25gYCJcbmZvbGxvd2luZyB0aGUgcGFyYW1ldGVyIG5hbWUuICBBbnkgcGFyYW1ldGVyIG1heSBoYXZlIGFuIGFubm90YXRpb25cbmV2ZW4gdGhvc2Ugb2YgdGhlIGZvcm0gYGAqaWRlbnRpZmllcmBgIG9yIGBgKippZGVudGlmaWVyYGAuICBGdW5jdGlvbnNcbm1heSBoYXZlICJyZXR1cm4iIGFubm90YXRpb24gb2YgdGhlIGZvcm0gImBgLT4gZXhwcmVzc2lvbmBgIiBhZnRlciB0aGVcbnBhcmFtZXRlciBsaXN0LiAgVGhlc2UgYW5ub3RhdGlvbnMgY2FuIGJlIGFueSB2YWxpZCBQeXRob24gZXhwcmVzc2lvblxuYW5kIGFyZSBldmFsdWF0ZWQgd2hlbiB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiBpcyBleGVjdXRlZC5cbkFubm90YXRpb25zIG1heSBiZSBldmFsdWF0ZWQgaW4gYSBkaWZmZXJlbnQgb3JkZXIgdGhhbiB0aGV5IGFwcGVhciBpblxudGhlIHNvdXJjZSBjb2RlLiAgVGhlIHByZXNlbmNlIG9mIGFubm90YXRpb25zIGRvZXMgbm90IGNoYW5nZSB0aGVcbnNlbWFudGljcyBvZiBhIGZ1bmN0aW9uLiAgVGhlIGFubm90YXRpb24gdmFsdWVzIGFyZSBhdmFpbGFibGUgYXNcbnZhbHVlcyBvZiBhIGRpY3Rpb25hcnkga2V5ZWQgYnkgdGhlIHBhcmFtZXRlcnNcJyBuYW1lcyBpbiB0aGVcbmBgX19hbm5vdGF0aW9uc19fYGAgYXR0cmlidXRlIG9mIHRoZSBmdW5jdGlvbiBvYmplY3QuXG5cbkl0IGlzIGFsc28gcG9zc2libGUgdG8gY3JlYXRlIGFub255bW91cyBmdW5jdGlvbnMgKGZ1bmN0aW9ucyBub3QgYm91bmRcbnRvIGEgbmFtZSksIGZvciBpbW1lZGlhdGUgdXNlIGluIGV4cHJlc3Npb25zLiAgVGhpcyB1c2VzIGxhbWJkYSBmb3JtcyxcbmRlc2NyaWJlZCBpbiBzZWN0aW9uICpMYW1iZGFzKi4gIE5vdGUgdGhhdCB0aGUgbGFtYmRhIGZvcm0gaXMgbWVyZWx5IGFcbnNob3J0aGFuZCBmb3IgYSBzaW1wbGlmaWVkIGZ1bmN0aW9uIGRlZmluaXRpb247IGEgZnVuY3Rpb24gZGVmaW5lZCBpblxuYSAiYGBkZWZgYCIgc3RhdGVtZW50IGNhbiBiZSBwYXNzZWQgYXJvdW5kIG9yIGFzc2lnbmVkIHRvIGFub3RoZXIgbmFtZVxuanVzdCBsaWtlIGEgZnVuY3Rpb24gZGVmaW5lZCBieSBhIGxhbWJkYSBmb3JtLiAgVGhlICJgYGRlZmBgIiBmb3JtIGlzXG5hY3R1YWxseSBtb3JlIHBvd2VyZnVsIHNpbmNlIGl0IGFsbG93cyB0aGUgZXhlY3V0aW9uIG9mIG11bHRpcGxlXG5zdGF0ZW1lbnRzIGFuZCBhbm5vdGF0aW9ucy5cblxuKipQcm9ncmFtbWVyXCdzIG5vdGU6KiogRnVuY3Rpb25zIGFyZSBmaXJzdC1jbGFzcyBvYmplY3RzLiAgQSAiYGBkZWZgYCJcbmZvcm0gZXhlY3V0ZWQgaW5zaWRlIGEgZnVuY3Rpb24gZGVmaW5pdGlvbiBkZWZpbmVzIGEgbG9jYWwgZnVuY3Rpb25cbnRoYXQgY2FuIGJlIHJldHVybmVkIG9yIHBhc3NlZCBhcm91bmQuICBGcmVlIHZhcmlhYmxlcyB1c2VkIGluIHRoZVxubmVzdGVkIGZ1bmN0aW9uIGNhbiBhY2Nlc3MgdGhlIGxvY2FsIHZhcmlhYmxlcyBvZiB0aGUgZnVuY3Rpb25cbmNvbnRhaW5pbmcgdGhlIGRlZi4gIFNlZSBzZWN0aW9uICpOYW1pbmcgYW5kIGJpbmRpbmcqIGZvciBkZXRhaWxzLlxuXG5TZWUgYWxzbzpcblxuICAgKipQRVAgMzEwNyoqIC0gRnVuY3Rpb24gQW5ub3RhdGlvbnNcbiAgICAgIFRoZSBvcmlnaW5hbCBzcGVjaWZpY2F0aW9uIGZvciBmdW5jdGlvbiBhbm5vdGF0aW9ucy5cbicsCiAgJ2dsb2JhbCc6ICdcblRoZSBgYGdsb2JhbGBgIHN0YXRlbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgIGdsb2JhbF9zdG10IDo6PSAiZ2xvYmFsIiBpZGVudGlmaWVyICgiLCIgaWRlbnRpZmllcikqXG5cblRoZSBgYGdsb2JhbGBgIHN0YXRlbWVudCBpcyBhIGRlY2xhcmF0aW9uIHdoaWNoIGhvbGRzIGZvciB0aGUgZW50aXJlXG5jdXJyZW50IGNvZGUgYmxvY2suICBJdCBtZWFucyB0aGF0IHRoZSBsaXN0ZWQgaWRlbnRpZmllcnMgYXJlIHRvIGJlXG5pbnRlcnByZXRlZCBhcyBnbG9iYWxzLiAgSXQgd291bGQgYmUgaW1wb3NzaWJsZSB0byBhc3NpZ24gdG8gYSBnbG9iYWxcbnZhcmlhYmxlIHdpdGhvdXQgYGBnbG9iYWxgYCwgYWx0aG91Z2ggZnJlZSB2YXJpYWJsZXMgbWF5IHJlZmVyIHRvXG5nbG9iYWxzIHdpdGhvdXQgYmVpbmcgZGVjbGFyZWQgZ2xvYmFsLlxuXG5OYW1lcyBsaXN0ZWQgaW4gYSBgYGdsb2JhbGBgIHN0YXRlbWVudCBtdXN0IG5vdCBiZSB1c2VkIGluIHRoZSBzYW1lXG5jb2RlIGJsb2NrIHRleHR1YWxseSBwcmVjZWRpbmcgdGhhdCBgYGdsb2JhbGBgIHN0YXRlbWVudC5cblxuTmFtZXMgbGlzdGVkIGluIGEgYGBnbG9iYWxgYCBzdGF0ZW1lbnQgbXVzdCBub3QgYmUgZGVmaW5lZCBhcyBmb3JtYWxcbnBhcmFtZXRlcnMgb3IgaW4gYSBgYGZvcmBgIGxvb3AgY29udHJvbCB0YXJnZXQsIGBgY2xhc3NgYCBkZWZpbml0aW9uLFxuZnVuY3Rpb24gZGVmaW5pdGlvbiwgb3IgYGBpbXBvcnRgYCBzdGF0ZW1lbnQuXG5cbioqQ1B5dGhvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWw6KiogVGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lcyBub3RcbmVuZm9yY2UgdGhlIGxhdHRlciB0d28gcmVzdHJpY3Rpb25zLCBidXQgcHJvZ3JhbXMgc2hvdWxkIG5vdCBhYnVzZVxudGhpcyBmcmVlZG9tLCBhcyBmdXR1cmUgaW1wbGVtZW50YXRpb25zIG1heSBlbmZvcmNlIHRoZW0gb3Igc2lsZW50bHlcbmNoYW5nZSB0aGUgbWVhbmluZyBvZiB0aGUgcHJvZ3JhbS5cblxuKipQcm9ncmFtbWVyXCdzIG5vdGU6KiogdGhlIGBgZ2xvYmFsYGAgaXMgYSBkaXJlY3RpdmUgdG8gdGhlIHBhcnNlci5cbkl0IGFwcGxpZXMgb25seSB0byBjb2RlIHBhcnNlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSBgYGdsb2JhbGBgXG5zdGF0ZW1lbnQuIEluIHBhcnRpY3VsYXIsIGEgYGBnbG9iYWxgYCBzdGF0ZW1lbnQgY29udGFpbmVkIGluIGEgc3RyaW5nXG5vciBjb2RlIG9iamVjdCBzdXBwbGllZCB0byB0aGUgYnVpbHQtaW4gYGBleGVjKClgYCBmdW5jdGlvbiBkb2VzIG5vdFxuYWZmZWN0IHRoZSBjb2RlIGJsb2NrICpjb250YWluaW5nKiB0aGUgZnVuY3Rpb24gY2FsbCwgYW5kIGNvZGVcbmNvbnRhaW5lZCBpbiBzdWNoIGEgc3RyaW5nIGlzIHVuYWZmZWN0ZWQgYnkgYGBnbG9iYWxgYCBzdGF0ZW1lbnRzIGluXG50aGUgY29kZSBjb250YWluaW5nIHRoZSBmdW5jdGlvbiBjYWxsLiAgVGhlIHNhbWUgYXBwbGllcyB0byB0aGVcbmBgZXZhbCgpYGAgYW5kIGBgY29tcGlsZSgpYGAgZnVuY3Rpb25zLlxuJywKICAnaWQtY2xhc3Nlcyc6ICdcblJlc2VydmVkIGNsYXNzZXMgb2YgaWRlbnRpZmllcnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQ2VydGFpbiBjbGFzc2VzIG9mIGlkZW50aWZpZXJzIChiZXNpZGVzIGtleXdvcmRzKSBoYXZlIHNwZWNpYWxcbm1lYW5pbmdzLiAgVGhlc2UgY2xhc3NlcyBhcmUgaWRlbnRpZmllZCBieSB0aGUgcGF0dGVybnMgb2YgbGVhZGluZyBhbmRcbnRyYWlsaW5nIHVuZGVyc2NvcmUgY2hhcmFjdGVyczpcblxuYGBfKmBgXG4gICBOb3QgaW1wb3J0ZWQgYnkgYGBmcm9tIG1vZHVsZSBpbXBvcnQgKmBgLiAgVGhlIHNwZWNpYWwgaWRlbnRpZmllclxuICAgYGBfYGAgaXMgdXNlZCBpbiB0aGUgaW50ZXJhY3RpdmUgaW50ZXJwcmV0ZXIgdG8gc3RvcmUgdGhlIHJlc3VsdCBvZlxuICAgdGhlIGxhc3QgZXZhbHVhdGlvbjsgaXQgaXMgc3RvcmVkIGluIHRoZSBgYGJ1aWx0aW5zYGAgbW9kdWxlLiAgV2hlblxuICAgbm90IGluIGludGVyYWN0aXZlIG1vZGUsIGBgX2BgIGhhcyBubyBzcGVjaWFsIG1lYW5pbmcgYW5kIGlzIG5vdFxuICAgZGVmaW5lZC4gU2VlIHNlY3Rpb24gKlRoZSBpbXBvcnQgc3RhdGVtZW50Ki5cblxuICAgTm90ZTogVGhlIG5hbWUgYGBfYGAgaXMgb2Z0ZW4gdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoXG4gICAgIGludGVybmF0aW9uYWxpemF0aW9uOyByZWZlciB0byB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlXG4gICAgIGBgZ2V0dGV4dGBgIG1vZHVsZSBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGNvbnZlbnRpb24uXG5cbmBgX18qX19gYFxuICAgU3lzdGVtLWRlZmluZWQgbmFtZXMuIFRoZXNlIG5hbWVzIGFyZSBkZWZpbmVkIGJ5IHRoZSBpbnRlcnByZXRlclxuICAgYW5kIGl0cyBpbXBsZW1lbnRhdGlvbiAoaW5jbHVkaW5nIHRoZSBzdGFuZGFyZCBsaWJyYXJ5KS4gIEN1cnJlbnRcbiAgIHN5c3RlbSBuYW1lcyBhcmUgZGlzY3Vzc2VkIGluIHRoZSAqU3BlY2lhbCBtZXRob2QgbmFtZXMqIHNlY3Rpb25cbiAgIGFuZCBlbHNld2hlcmUuICBNb3JlIHdpbGwgbGlrZWx5IGJlIGRlZmluZWQgaW4gZnV0dXJlIHZlcnNpb25zIG9mXG4gICBQeXRob24uICAqQW55KiB1c2Ugb2YgYGBfXypfX2BgIG5hbWVzLCBpbiBhbnkgY29udGV4dCwgdGhhdCBkb2VzXG4gICBub3QgZm9sbG93IGV4cGxpY2l0bHkgZG9jdW1lbnRlZCB1c2UsIGlzIHN1YmplY3QgdG8gYnJlYWthZ2VcbiAgIHdpdGhvdXQgd2FybmluZy5cblxuYGBfXypgYFxuICAgQ2xhc3MtcHJpdmF0ZSBuYW1lcy4gIE5hbWVzIGluIHRoaXMgY2F0ZWdvcnksIHdoZW4gdXNlZCB3aXRoaW4gdGhlXG4gICBjb250ZXh0IG9mIGEgY2xhc3MgZGVmaW5pdGlvbiwgYXJlIHJlLXdyaXR0ZW4gdG8gdXNlIGEgbWFuZ2xlZCBmb3JtXG4gICB0byBoZWxwIGF2b2lkIG5hbWUgY2xhc2hlcyBiZXR3ZWVuICJwcml2YXRlIiBhdHRyaWJ1dGVzIG9mIGJhc2UgYW5kXG4gICBkZXJpdmVkIGNsYXNzZXMuIFNlZSBzZWN0aW9uICpJZGVudGlmaWVycyAoTmFtZXMpKi5cbicsCiAgJ2lkZW50aWZpZXJzJzogJ1xuSWRlbnRpZmllcnMgYW5kIGtleXdvcmRzXG4qKioqKioqKioqKioqKioqKioqKioqKipcblxuSWRlbnRpZmllcnMgKGFsc28gcmVmZXJyZWQgdG8gYXMgKm5hbWVzKikgYXJlIGRlc2NyaWJlZCBieSB0aGVcbmZvbGxvd2luZyBsZXhpY2FsIGRlZmluaXRpb25zLlxuXG5UaGUgc3ludGF4IG9mIGlkZW50aWZpZXJzIGluIFB5dGhvbiBpcyBiYXNlZCBvbiB0aGUgVW5pY29kZSBzdGFuZGFyZFxuYW5uZXggVUFYLTMxLCB3aXRoIGVsYWJvcmF0aW9uIGFuZCBjaGFuZ2VzIGFzIGRlZmluZWQgYmVsb3c7IHNlZSBhbHNvXG4qKlBFUCAzMTMxKiogZm9yIGZ1cnRoZXIgZGV0YWlscy5cblxuV2l0aGluIHRoZSBBU0NJSSByYW5nZSAoVSswMDAxLi5VKzAwN0YpLCB0aGUgdmFsaWQgY2hhcmFjdGVycyBmb3JcbmlkZW50aWZpZXJzIGFyZSB0aGUgc2FtZSBhcyBpbiBQeXRob24gMi54OiB0aGUgdXBwZXJjYXNlIGFuZCBsb3dlcmNhc2VcbmxldHRlcnMgYGBBYGAgdGhyb3VnaCBgYFpgYCwgdGhlIHVuZGVyc2NvcmUgYGBfYGAgYW5kLCBleGNlcHQgZm9yIHRoZVxuZmlyc3QgY2hhcmFjdGVyLCB0aGUgZGlnaXRzIGBgMGBgIHRocm91Z2ggYGA5YGAuXG5cblB5dGhvbiAzLjAgaW50cm9kdWNlcyBhZGRpdGlvbmFsIGNoYXJhY3RlcnMgZnJvbSBvdXRzaWRlIHRoZSBBU0NJSVxucmFuZ2UgKHNlZSAqKlBFUCAzMTMxKiopLiAgRm9yIHRoZXNlIGNoYXJhY3RlcnMsIHRoZSBjbGFzc2lmaWNhdGlvblxudXNlcyB0aGUgdmVyc2lvbiBvZiB0aGUgVW5pY29kZSBDaGFyYWN0ZXIgRGF0YWJhc2UgYXMgaW5jbHVkZWQgaW4gdGhlXG5gYHVuaWNvZGVkYXRhYGAgbW9kdWxlLlxuXG5JZGVudGlmaWVycyBhcmUgdW5saW1pdGVkIGluIGxlbmd0aC4gIENhc2UgaXMgc2lnbmlmaWNhbnQuXG5cbiAgIGlkZW50aWZpZXIgICA6Oj0geGlkX3N0YXJ0IHhpZF9jb250aW51ZSpcbiAgIGlkX3N0YXJ0ICAgICA6Oj0gPGFsbCBjaGFyYWN0ZXJzIGluIGdlbmVyYWwgY2F0ZWdvcmllcyBMdSwgTGwsIEx0LCBMbSwgTG8sIE5sLCB0aGUgdW5kZXJzY29yZSwgYW5kIGNoYXJhY3RlcnMgd2l0aCB0aGUgT3RoZXJfSURfU3RhcnQgcHJvcGVydHk+XG4gICBpZF9jb250aW51ZSAgOjo9IDxhbGwgY2hhcmFjdGVycyBpbiBpZF9zdGFydCwgcGx1cyBjaGFyYWN0ZXJzIGluIHRoZSBjYXRlZ29yaWVzIE1uLCBNYywgTmQsIFBjIGFuZCBvdGhlcnMgd2l0aCB0aGUgT3RoZXJfSURfQ29udGludWUgcHJvcGVydHk+XG4gICB4aWRfc3RhcnQgICAgOjo9IDxhbGwgY2hhcmFjdGVycyBpbiBpZF9zdGFydCB3aG9zZSBORktDIG5vcm1hbGl6YXRpb24gaXMgaW4gImlkX3N0YXJ0IHhpZF9jb250aW51ZSoiPlxuICAgeGlkX2NvbnRpbnVlIDo6PSA8YWxsIGNoYXJhY3RlcnMgaW4gaWRfY29udGludWUgd2hvc2UgTkZLQyBub3JtYWxpemF0aW9uIGlzIGluICJpZF9jb250aW51ZSoiPlxuXG5UaGUgVW5pY29kZSBjYXRlZ29yeSBjb2RlcyBtZW50aW9uZWQgYWJvdmUgc3RhbmQgZm9yOlxuXG4qICpMdSogLSB1cHBlcmNhc2UgbGV0dGVyc1xuXG4qICpMbCogLSBsb3dlcmNhc2UgbGV0dGVyc1xuXG4qICpMdCogLSB0aXRsZWNhc2UgbGV0dGVyc1xuXG4qICpMbSogLSBtb2RpZmllciBsZXR0ZXJzXG5cbiogKkxvKiAtIG90aGVyIGxldHRlcnNcblxuKiAqTmwqIC0gbGV0dGVyIG51bWJlcnNcblxuKiAqTW4qIC0gbm9uc3BhY2luZyBtYXJrc1xuXG4qICpNYyogLSBzcGFjaW5nIGNvbWJpbmluZyBtYXJrc1xuXG4qICpOZCogLSBkZWNpbWFsIG51bWJlcnNcblxuKiAqUGMqIC0gY29ubmVjdG9yIHB1bmN0dWF0aW9uc1xuXG4qICpPdGhlcl9JRF9TdGFydCogLSBleHBsaWNpdCBsaXN0IG9mIGNoYXJhY3RlcnMgaW4gUHJvcExpc3QudHh0IHRvXG4gIHN1cHBvcnQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcblxuKiAqT3RoZXJfSURfQ29udGludWUqIC0gbGlrZXdpc2VcblxuQWxsIGlkZW50aWZpZXJzIGFyZSBjb252ZXJ0ZWQgaW50byB0aGUgbm9ybWFsIGZvcm0gTkZLQyB3aGlsZSBwYXJzaW5nO1xuY29tcGFyaXNvbiBvZiBpZGVudGlmaWVycyBpcyBiYXNlZCBvbiBORktDLlxuXG5BIG5vbi1ub3JtYXRpdmUgSFRNTCBmaWxlIGxpc3RpbmcgYWxsIHZhbGlkIGlkZW50aWZpZXIgY2hhcmFjdGVycyBmb3JcblVuaWNvZGUgNC4xIGNhbiBiZSBmb3VuZCBhdCBodHRwOi8vd3d3LmRjbC5ocGkudW5pLVxucG90c2RhbS5kZS9ob21lL2xvZXdpcy90YWJsZS0zMTMxLmh0bWwuXG5cblxuS2V5d29yZHNcbj09PT09PT09XG5cblRoZSBmb2xsb3dpbmcgaWRlbnRpZmllcnMgYXJlIHVzZWQgYXMgcmVzZXJ2ZWQgd29yZHMsIG9yICprZXl3b3Jkcyogb2ZcbnRoZSBsYW5ndWFnZSwgYW5kIGNhbm5vdCBiZSB1c2VkIGFzIG9yZGluYXJ5IGlkZW50aWZpZXJzLiAgVGhleSBtdXN0XG5iZSBzcGVsbGVkIGV4YWN0bHkgYXMgd3JpdHRlbiBoZXJlOlxuXG4gICBGYWxzZSAgICAgIGNsYXNzICAgICAgZmluYWxseSAgICBpcyAgICAgICAgIHJldHVyblxuICAgTm9uZSAgICAgICBjb250aW51ZSAgIGZvciAgICAgICAgbGFtYmRhICAgICB0cnlcbiAgIFRydWUgICAgICAgZGVmICAgICAgICBmcm9tICAgICAgIG5vbmxvY2FsICAgd2hpbGVcbiAgIGFuZCAgICAgICAgZGVsICAgICAgICBnbG9iYWwgICAgIG5vdCAgICAgICAgd2l0aFxuICAgYXMgICAgICAgICBlbGlmICAgICAgIGlmICAgICAgICAgb3IgICAgICAgICB5aWVsZFxuICAgYXNzZXJ0ICAgICBlbHNlICAgICAgIGltcG9ydCAgICAgcGFzc1xuICAgYnJlYWsgICAgICBleGNlcHQgICAgIGluICAgICAgICAgcmFpc2VcblxuXG5SZXNlcnZlZCBjbGFzc2VzIG9mIGlkZW50aWZpZXJzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkNlcnRhaW4gY2xhc3NlcyBvZiBpZGVudGlmaWVycyAoYmVzaWRlcyBrZXl3b3JkcykgaGF2ZSBzcGVjaWFsXG5tZWFuaW5ncy4gIFRoZXNlIGNsYXNzZXMgYXJlIGlkZW50aWZpZWQgYnkgdGhlIHBhdHRlcm5zIG9mIGxlYWRpbmcgYW5kXG50cmFpbGluZyB1bmRlcnNjb3JlIGNoYXJhY3RlcnM6XG5cbmBgXypgYFxuICAgTm90IGltcG9ydGVkIGJ5IGBgZnJvbSBtb2R1bGUgaW1wb3J0ICpgYC4gIFRoZSBzcGVjaWFsIGlkZW50aWZpZXJcbiAgIGBgX2BgIGlzIHVzZWQgaW4gdGhlIGludGVyYWN0aXZlIGludGVycHJldGVyIHRvIHN0b3JlIHRoZSByZXN1bHQgb2ZcbiAgIHRoZSBsYXN0IGV2YWx1YXRpb247IGl0IGlzIHN0b3JlZCBpbiB0aGUgYGBidWlsdGluc2BgIG1vZHVsZS4gIFdoZW5cbiAgIG5vdCBpbiBpbnRlcmFjdGl2ZSBtb2RlLCBgYF9gYCBoYXMgbm8gc3BlY2lhbCBtZWFuaW5nIGFuZCBpcyBub3RcbiAgIGRlZmluZWQuIFNlZSBzZWN0aW9uICpUaGUgaW1wb3J0IHN0YXRlbWVudCouXG5cbiAgIE5vdGU6IFRoZSBuYW1lIGBgX2BgIGlzIG9mdGVuIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aFxuICAgICBpbnRlcm5hdGlvbmFsaXphdGlvbjsgcmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZVxuICAgICBgYGdldHRleHRgYCBtb2R1bGUgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhpcyBjb252ZW50aW9uLlxuXG5gYF9fKl9fYGBcbiAgIFN5c3RlbS1kZWZpbmVkIG5hbWVzLiBUaGVzZSBuYW1lcyBhcmUgZGVmaW5lZCBieSB0aGUgaW50ZXJwcmV0ZXJcbiAgIGFuZCBpdHMgaW1wbGVtZW50YXRpb24gKGluY2x1ZGluZyB0aGUgc3RhbmRhcmQgbGlicmFyeSkuICBDdXJyZW50XG4gICBzeXN0ZW0gbmFtZXMgYXJlIGRpc2N1c3NlZCBpbiB0aGUgKlNwZWNpYWwgbWV0aG9kIG5hbWVzKiBzZWN0aW9uXG4gICBhbmQgZWxzZXdoZXJlLiAgTW9yZSB3aWxsIGxpa2VseSBiZSBkZWZpbmVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBvZlxuICAgUHl0aG9uLiAgKkFueSogdXNlIG9mIGBgX18qX19gYCBuYW1lcywgaW4gYW55IGNvbnRleHQsIHRoYXQgZG9lc1xuICAgbm90IGZvbGxvdyBleHBsaWNpdGx5IGRvY3VtZW50ZWQgdXNlLCBpcyBzdWJqZWN0IHRvIGJyZWFrYWdlXG4gICB3aXRob3V0IHdhcm5pbmcuXG5cbmBgX18qYGBcbiAgIENsYXNzLXByaXZhdGUgbmFtZXMuICBOYW1lcyBpbiB0aGlzIGNhdGVnb3J5LCB3aGVuIHVzZWQgd2l0aGluIHRoZVxuICAgY29udGV4dCBvZiBhIGNsYXNzIGRlZmluaXRpb24sIGFyZSByZS13cml0dGVuIHRvIHVzZSBhIG1hbmdsZWQgZm9ybVxuICAgdG8gaGVscCBhdm9pZCBuYW1lIGNsYXNoZXMgYmV0d2VlbiAicHJpdmF0ZSIgYXR0cmlidXRlcyBvZiBiYXNlIGFuZFxuICAgZGVyaXZlZCBjbGFzc2VzLiBTZWUgc2VjdGlvbiAqSWRlbnRpZmllcnMgKE5hbWVzKSouXG4nLAogICdpZic6ICdcblRoZSBgYGlmYGAgc3RhdGVtZW50XG4qKioqKioqKioqKioqKioqKioqKlxuXG5UaGUgYGBpZmBgIHN0YXRlbWVudCBpcyB1c2VkIGZvciBjb25kaXRpb25hbCBleGVjdXRpb246XG5cbiAgIGlmX3N0bXQgOjo9ICJpZiIgZXhwcmVzc2lvbiAiOiIgc3VpdGVcbiAgICAgICAgICAgICAgICggImVsaWYiIGV4cHJlc3Npb24gIjoiIHN1aXRlICkqXG4gICAgICAgICAgICAgICBbImVsc2UiICI6IiBzdWl0ZV1cblxuSXQgc2VsZWN0cyBleGFjdGx5IG9uZSBvZiB0aGUgc3VpdGVzIGJ5IGV2YWx1YXRpbmcgdGhlIGV4cHJlc3Npb25zIG9uZVxuYnkgb25lIHVudGlsIG9uZSBpcyBmb3VuZCB0byBiZSB0cnVlIChzZWUgc2VjdGlvbiAqQm9vbGVhbiBvcGVyYXRpb25zKlxuZm9yIHRoZSBkZWZpbml0aW9uIG9mIHRydWUgYW5kIGZhbHNlKTsgdGhlbiB0aGF0IHN1aXRlIGlzIGV4ZWN1dGVkXG4oYW5kIG5vIG90aGVyIHBhcnQgb2YgdGhlIGBgaWZgYCBzdGF0ZW1lbnQgaXMgZXhlY3V0ZWQgb3IgZXZhbHVhdGVkKS5cbklmIGFsbCBleHByZXNzaW9ucyBhcmUgZmFsc2UsIHRoZSBzdWl0ZSBvZiB0aGUgYGBlbHNlYGAgY2xhdXNlLCBpZlxucHJlc2VudCwgaXMgZXhlY3V0ZWQuXG4nLAogICdpbWFnaW5hcnknOiAnXG5JbWFnaW5hcnkgbGl0ZXJhbHNcbioqKioqKioqKioqKioqKioqKlxuXG5JbWFnaW5hcnkgbGl0ZXJhbHMgYXJlIGRlc2NyaWJlZCBieSB0aGUgZm9sbG93aW5nIGxleGljYWwgZGVmaW5pdGlvbnM6XG5cbiAgIGltYWdudW1iZXIgOjo9IChmbG9hdG51bWJlciB8IGludHBhcnQpICgiaiIgfCAiSiIpXG5cbkFuIGltYWdpbmFyeSBsaXRlcmFsIHlpZWxkcyBhIGNvbXBsZXggbnVtYmVyIHdpdGggYSByZWFsIHBhcnQgb2YgMC4wLlxuQ29tcGxleCBudW1iZXJzIGFyZSByZXByZXNlbnRlZCBhcyBhIHBhaXIgb2YgZmxvYXRpbmcgcG9pbnQgbnVtYmVyc1xuYW5kIGhhdmUgdGhlIHNhbWUgcmVzdHJpY3Rpb25zIG9uIHRoZWlyIHJhbmdlLiAgVG8gY3JlYXRlIGEgY29tcGxleFxubnVtYmVyIHdpdGggYSBub256ZXJvIHJlYWwgcGFydCwgYWRkIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyIHRvIGl0LFxuZS5nLiwgYGAoMys0ailgYC4gIFNvbWUgZXhhbXBsZXMgb2YgaW1hZ2luYXJ5IGxpdGVyYWxzOlxuXG4gICAzLjE0aiAgIDEwLmogICAgMTBqICAgICAuMDAxaiAgIDFlMTAwaiAgMy4xNGUtMTBqXG4nLAotICdpbXBvcnQnOiAnXG5UaGUgYGBpbXBvcnRgYCBzdGF0ZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICBpbXBvcnRfc3RtdCAgICAgOjo9ICJpbXBvcnQiIG1vZHVsZSBbImFzIiBuYW1lXSAoICIsIiBtb2R1bGUgWyJhcyIgbmFtZV0gKSpcbiAgICAgICAgICAgICAgICAgICB8ICJmcm9tIiByZWxhdGl2ZV9tb2R1bGUgImltcG9ydCIgaWRlbnRpZmllciBbImFzIiBuYW1lXVxuICAgICAgICAgICAgICAgICAgICggIiwiIGlkZW50aWZpZXIgWyJhcyIgbmFtZV0gKSpcbiAgICAgICAgICAgICAgICAgICB8ICJmcm9tIiByZWxhdGl2ZV9tb2R1bGUgImltcG9ydCIgIigiIGlkZW50aWZpZXIgWyJhcyIgbmFtZV1cbiAgICAgICAgICAgICAgICAgICAoICIsIiBpZGVudGlmaWVyIFsiYXMiIG5hbWVdICkqIFsiLCJdICIpIlxuICAgICAgICAgICAgICAgICAgIHwgImZyb20iIG1vZHVsZSAiaW1wb3J0IiAiKiJcbiAgIG1vZHVsZSAgICAgICAgICA6Oj0gKGlkZW50aWZpZXIgIi4iKSogaWRlbnRpZmllclxuICAgcmVsYXRpdmVfbW9kdWxlIDo6PSAiLiIqIG1vZHVsZSB8ICIuIitcbiAgIG5hbWUgICAgICAgICAgICA6Oj0gaWRlbnRpZmllclxuXG5JbXBvcnQgc3RhdGVtZW50cyBhcmUgZXhlY3V0ZWQgaW4gdHdvIHN0ZXBzOiAoMSkgZmluZCBhIG1vZHVsZSwgYW5kXG5pbml0aWFsaXplIGl0IGlmIG5lY2Vzc2FyeTsgKDIpIGRlZmluZSBhIG5hbWUgb3IgbmFtZXMgaW4gdGhlIGxvY2FsXG5uYW1lc3BhY2UgKG9mIHRoZSBzY29wZSB3aGVyZSB0aGUgYGBpbXBvcnRgYCBzdGF0ZW1lbnQgb2NjdXJzKS4gVGhlXG5zdGF0ZW1lbnQgY29tZXMgaW4gdHdvIGZvcm1zIGRpZmZlcmluZyBvbiB3aGV0aGVyIGl0IHVzZXMgdGhlIGBgZnJvbWBgXG5rZXl3b3JkLiBUaGUgZmlyc3QgZm9ybSAod2l0aG91dCBgYGZyb21gYCkgcmVwZWF0cyB0aGVzZSBzdGVwcyBmb3JcbmVhY2ggaWRlbnRpZmllciBpbiB0aGUgbGlzdC4gVGhlIGZvcm0gd2l0aCBgYGZyb21gYCBwZXJmb3JtcyBzdGVwICgxKVxub25jZSwgYW5kIHRoZW4gcGVyZm9ybXMgc3RlcCAoMikgcmVwZWF0ZWRseS4gRm9yIGEgcmVmZXJlbmNlXG5pbXBsZW1lbnRhdGlvbiBvZiBzdGVwICgxKSwgc2VlIHRoZSBgYGltcG9ydGxpYmBgIG1vZHVsZS5cblxuVG8gdW5kZXJzdGFuZCBob3cgc3RlcCAoMSkgb2NjdXJzLCBvbmUgbXVzdCBmaXJzdCB1bmRlcnN0YW5kIGhvd1xuUHl0aG9uIGhhbmRsZXMgaGllcmFyY2hpY2FsIG5hbWluZyBvZiBtb2R1bGVzLiBUbyBoZWxwIG9yZ2FuaXplXG5tb2R1bGVzIGFuZCBwcm92aWRlIGEgaGllcmFyY2h5IGluIG5hbWluZywgUHl0aG9uIGhhcyBhIGNvbmNlcHQgb2ZcbnBhY2thZ2VzLiBBIHBhY2thZ2UgY2FuIGNvbnRhaW4gb3RoZXIgcGFja2FnZXMgYW5kIG1vZHVsZXMgd2hpbGVcbm1vZHVsZXMgY2Fubm90IGNvbnRhaW4gb3RoZXIgbW9kdWxlcyBvciBwYWNrYWdlcy4gRnJvbSBhIGZpbGUgc3lzdGVtXG5wZXJzcGVjdGl2ZSwgcGFja2FnZXMgYXJlIGRpcmVjdG9yaWVzIGFuZCBtb2R1bGVzIGFyZSBmaWxlcy4gVGhlXG5vcmlnaW5hbCBzcGVjaWZpY2F0aW9uIGZvciBwYWNrYWdlcyBpcyBzdGlsbCBhdmFpbGFibGUgdG8gcmVhZCxcbmFsdGhvdWdoIG1pbm9yIGRldGFpbHMgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSB3cml0aW5nIG9mIHRoYXRcbmRvY3VtZW50LlxuXG5PbmNlIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgaXMga25vd24gKHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLCB0aGVcbnRlcm0gIm1vZHVsZSIgd2lsbCByZWZlciB0byBib3RoIHBhY2thZ2VzIGFuZCBtb2R1bGVzKSwgc2VhcmNoaW5nIGZvclxudGhlIG1vZHVsZSBvciBwYWNrYWdlIGNhbiBiZWdpbi4gVGhlIGZpcnN0IHBsYWNlIGNoZWNrZWQgaXNcbmBgc3lzLm1vZHVsZXNgYCwgdGhlIGNhY2hlIG9mIGFsbCBtb2R1bGVzIHRoYXQgaGF2ZSBiZWVuIGltcG9ydGVkXG5wcmV2aW91c2x5LiBJZiB0aGUgbW9kdWxlIGlzIGZvdW5kIHRoZXJlIHRoZW4gaXQgaXMgdXNlZCBpbiBzdGVwICgyKVxub2YgaW1wb3J0IHVubGVzcyBgYE5vbmVgYCBpcyBmb3VuZCBpbiBgYHN5cy5tb2R1bGVzYGAsIGluIHdoaWNoIGNhc2VcbmBgSW1wb3J0RXJyb3JgYCBpcyByYWlzZWQuXG5cbklmIHRoZSBtb2R1bGUgaXMgbm90IGZvdW5kIGluIHRoZSBjYWNoZSwgdGhlbiBgYHN5cy5tZXRhX3BhdGhgYCBpc1xuc2VhcmNoZWQgKHRoZSBzcGVjaWZpY2F0aW9uIGZvciBgYHN5cy5tZXRhX3BhdGhgYCBjYW4gYmUgZm91bmQgaW5cbioqUEVQIDMwMioqKS4gVGhlIG9iamVjdCBpcyBhIGxpc3Qgb2YgKmZpbmRlciogb2JqZWN0cyB3aGljaCBhcmVcbnF1ZXJpZWQgaW4gb3JkZXIgYXMgdG8gd2hldGhlciB0aGV5IGtub3cgaG93IHRvIGxvYWQgdGhlIG1vZHVsZSBieVxuY2FsbGluZyB0aGVpciBgYGZpbmRfbW9kdWxlKClgYCBtZXRob2Qgd2l0aCB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlLiBJZlxudGhlIG1vZHVsZSBoYXBwZW5zIHRvIGJlIGNvbnRhaW5lZCB3aXRoaW4gYSBwYWNrYWdlIChhcyBkZW5vdGVkIGJ5IHRoZVxuZXhpc3RlbmNlIG9mIGEgZG90IGluIHRoZSBuYW1lKSwgdGhlbiBhIHNlY29uZCBhcmd1bWVudCB0b1xuYGBmaW5kX21vZHVsZSgpYGAgaXMgZ2l2ZW4gYXMgdGhlIHZhbHVlIG9mIHRoZSBgYF9fcGF0aF9fYGAgYXR0cmlidXRlXG5mcm9tIHRoZSBwYXJlbnQgcGFja2FnZSAoZXZlcnl0aGluZyB1cCB0byB0aGUgbGFzdCBkb3QgaW4gdGhlIG5hbWUgb2ZcbnRoZSBtb2R1bGUgYmVpbmcgaW1wb3J0ZWQpLiBJZiBhIGZpbmRlciBjYW4gZmluZCB0aGUgbW9kdWxlIGl0IHJldHVybnNcbmEgKmxvYWRlciogKGRpc2N1c3NlZCBsYXRlcikgb3IgcmV0dXJucyBgYE5vbmVgYC5cblxuSWYgbm9uZSBvZiB0aGUgZmluZGVycyBvbiBgYHN5cy5tZXRhX3BhdGhgYCBhcmUgYWJsZSB0byBmaW5kIHRoZVxubW9kdWxlIHRoZW4gc29tZSBpbXBsaWNpdGx5IGRlZmluZWQgZmluZGVycyBhcmUgcXVlcmllZC5cbkltcGxlbWVudGF0aW9ucyBvZiBQeXRob24gdmFyeSBpbiB3aGF0IGltcGxpY2l0IG1ldGEgcGF0aCBmaW5kZXJzIGFyZVxuZGVmaW5lZC4gVGhlIG9uZSB0aGV5IGFsbCBkbyBkZWZpbmUsIHRob3VnaCwgaXMgb25lIHRoYXQgaGFuZGxlc1xuYGBzeXMucGF0aF9ob29rc2BgLCBgYHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlYGAsIGFuZCBgYHN5cy5wYXRoYGAuXG5cblRoZSBpbXBsaWNpdCBmaW5kZXIgc2VhcmNoZXMgZm9yIHRoZSByZXF1ZXN0ZWQgbW9kdWxlIGluIHRoZSAicGF0aHMiXG5zcGVjaWZpZWQgaW4gb25lIG9mIHR3byBwbGFjZXMgKCJwYXRocyIgZG8gbm90IGhhdmUgdG8gYmUgZmlsZSBzeXN0ZW1cbnBhdGhzKS4gSWYgdGhlIG1vZHVsZSBiZWluZyBpbXBvcnRlZCBpcyBzdXBwb3NlZCB0byBiZSBjb250YWluZWRcbndpdGhpbiBhIHBhY2thZ2UgdGhlbiB0aGUgc2Vjb25kIGFyZ3VtZW50IHBhc3NlZCB0byBgYGZpbmRfbW9kdWxlKClgYCxcbmBgX19wYXRoX19gYCBvbiB0aGUgcGFyZW50IHBhY2thZ2UsIGlzIHVzZWQgYXMgdGhlIHNvdXJjZSBvZiBwYXRocy4gSWZcbnRoZSBtb2R1bGUgaXMgbm90IGNvbnRhaW5lZCBpbiBhIHBhY2thZ2UgdGhlbiBgYHN5cy5wYXRoYGAgaXMgdXNlZCBhc1xudGhlIHNvdXJjZSBvZiBwYXRocy5cblxuT25jZSB0aGUgc291cmNlIG9mIHBhdGhzIGlzIGNob3NlbiBpdCBpcyBpdGVyYXRlZCBvdmVyIHRvIGZpbmQgYVxuZmluZGVyIHRoYXQgY2FuIGhhbmRsZSB0aGF0IHBhdGguIFRoZSBkaWN0IGF0XG5gYHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlYGAgY2FjaGVzIGZpbmRlcnMgZm9yIHBhdGhzIGFuZCBpcyBjaGVja2VkXG5mb3IgYSBmaW5kZXIuIElmIHRoZSBwYXRoIGRvZXMgbm90IGhhdmUgYSBmaW5kZXIgY2FjaGVkIHRoZW5cbmBgc3lzLnBhdGhfaG9va3NgYCBpcyBzZWFyY2hlZCBieSBjYWxsaW5nIGVhY2ggb2JqZWN0IGluIHRoZSBsaXN0IHdpdGhcbmEgc2luZ2xlIGFyZ3VtZW50IG9mIHRoZSBwYXRoLCByZXR1cm5pbmcgYSBmaW5kZXIgb3IgcmFpc2VzXG5gYEltcG9ydEVycm9yYGAuIElmIGEgZmluZGVyIGlzIHJldHVybmVkIHRoZW4gaXQgaXMgY2FjaGVkIGluXG5gYHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlYGAgYW5kIHRoZW4gdXNlZCBmb3IgdGhhdCBwYXRoIGVudHJ5LiBJZiBub1xuZmluZGVyIGNhbiBiZSBmb3VuZCBidXQgdGhlIHBhdGggZXhpc3RzIHRoZW4gYSB2YWx1ZSBvZiBgYE5vbmVgYCBpc1xuc3RvcmVkIGluIGBgc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGVgYCB0byBzaWduaWZ5IHRoYXQgYW4gaW1wbGljaXQsXG5maWxlLWJhc2VkIGZpbmRlciB0aGF0IGhhbmRsZXMgbW9kdWxlcyBzdG9yZWQgYXMgaW5kaXZpZHVhbCBmaWxlc1xuc2hvdWxkIGJlIHVzZWQgZm9yIHRoYXQgcGF0aC4gSWYgdGhlIHBhdGggZG9lcyBub3QgZXhpc3QgdGhlbiBhIGZpbmRlclxud2hpY2ggYWx3YXlzIHJldHVybnMgYGBOb25lYGAgaXMgcGxhY2VkIGluIHRoZSBjYWNoZSBmb3IgdGhlIHBhdGguXG5cbklmIG5vIGZpbmRlciBjYW4gZmluZCB0aGUgbW9kdWxlIHRoZW4gYGBJbXBvcnRFcnJvcmBgIGlzIHJhaXNlZC5cbk90aGVyd2lzZSBzb21lIGZpbmRlciByZXR1cm5lZCBhIGxvYWRlciB3aG9zZSBgYGxvYWRfbW9kdWxlKClgYCBtZXRob2RcbmlzIGNhbGxlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdG8gbG9hZCAoc2VlICoqUEVQIDMwMioqIGZvciB0aGVcbm9yaWdpbmFsIGRlZmluaXRpb24gb2YgbG9hZGVycykuIEEgbG9hZGVyIGhhcyBzZXZlcmFsIHJlc3BvbnNpYmlsaXRpZXNcbnRvIHBlcmZvcm0gb24gYSBtb2R1bGUgaXQgbG9hZHMuIEZpcnN0LCBpZiB0aGUgbW9kdWxlIGFscmVhZHkgZXhpc3RzXG5pbiBgYHN5cy5tb2R1bGVzYGAgKGEgcG9zc2liaWxpdHkgaWYgdGhlIGxvYWRlciBpcyBjYWxsZWQgb3V0c2lkZSBvZlxudGhlIGltcG9ydCBtYWNoaW5lcnkpIHRoZW4gaXQgaXMgdG8gdXNlIHRoYXQgbW9kdWxlIGZvciBpbml0aWFsaXphdGlvblxuYW5kIG5vdCBhIG5ldyBtb2R1bGUuIEJ1dCBpZiB0aGUgbW9kdWxlIGRvZXMgbm90IGV4aXN0IGluXG5gYHN5cy5tb2R1bGVzYGAgdGhlbiBpdCBpcyB0byBiZSBhZGRlZCB0byB0aGF0IGRpY3QgYmVmb3JlXG5pbml0aWFsaXphdGlvbiBiZWdpbnMuIElmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgbG9hZGluZyBvZiB0aGUgbW9kdWxlXG5hbmQgaXQgd2FzIGFkZGVkIHRvIGBgc3lzLm1vZHVsZXNgYCBpdCBpcyB0byBiZSByZW1vdmVkIGZyb20gdGhlIGRpY3QuXG5JZiBhbiBlcnJvciBvY2N1cnMgYnV0IHRoZSBtb2R1bGUgd2FzIGFscmVhZHkgaW4gYGBzeXMubW9kdWxlc2BgIGl0IGlzXG5sZWZ0IGluIHRoZSBkaWN0LlxuXG5UaGUgbG9hZGVyIG11c3Qgc2V0IHNldmVyYWwgYXR0cmlidXRlcyBvbiB0aGUgbW9kdWxlLiBgYF9fbmFtZV9fYGAgaXNcbnRvIGJlIHNldCB0byB0aGUgbmFtZSBvZiB0aGUgbW9kdWxlLiBgYF9fZmlsZV9fYGAgaXMgdG8gYmUgdGhlICJwYXRoIlxudG8gdGhlIGZpbGUgdW5sZXNzIHRoZSBtb2R1bGUgaXMgYnVpbHQtaW4gKGFuZCB0aHVzIGxpc3RlZCBpblxuYGBzeXMuYnVpbHRpbl9tb2R1bGVfbmFtZXNgYCkgaW4gd2hpY2ggY2FzZSB0aGUgYXR0cmlidXRlIGlzIG5vdCBzZXQuXG5JZiB3aGF0IGlzIGJlaW5nIGltcG9ydGVkIGlzIGEgcGFja2FnZSB0aGVuIGBgX19wYXRoX19gYCBpcyB0byBiZSBzZXRcbnRvIGEgbGlzdCBvZiBwYXRocyB0byBiZSBzZWFyY2hlZCB3aGVuIGxvb2tpbmcgZm9yIG1vZHVsZXMgYW5kXG5wYWNrYWdlcyBjb250YWluZWQgd2l0aGluIHRoZSBwYWNrYWdlIGJlaW5nIGltcG9ydGVkLiBgYF9fcGFja2FnZV9fYGBcbmlzIG9wdGlvbmFsIGJ1dCBzaG91bGQgYmUgc2V0IHRvIHRoZSBuYW1lIG9mIHBhY2thZ2UgdGhhdCBjb250YWlucyB0aGVcbm1vZHVsZSBvciBwYWNrYWdlICh0aGUgZW1wdHkgc3RyaW5nIGlzIHVzZWQgZm9yIG1vZHVsZSBub3QgY29udGFpbmVkXG5pbiBhIHBhY2thZ2UpLiBgYF9fbG9hZGVyX19gYCBpcyBhbHNvIG9wdGlvbmFsIGJ1dCBzaG91bGQgYmUgc2V0IHRvXG50aGUgbG9hZGVyIG9iamVjdCB0aGF0IGlzIGxvYWRpbmcgdGhlIG1vZHVsZS5cblxuSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBsb2FkaW5nIHRoZW4gdGhlIGxvYWRlciByYWlzZXNcbmBgSW1wb3J0RXJyb3JgYCBpZiBzb21lIG90aGVyIGV4Y2VwdGlvbiBpcyBub3QgYWxyZWFkeSBiZWluZ1xucHJvcGFnYXRlZC4gT3RoZXJ3aXNlIHRoZSBsb2FkZXIgcmV0dXJucyB0aGUgbW9kdWxlIHRoYXQgd2FzIGxvYWRlZFxuYW5kIGluaXRpYWxpemVkLlxuXG5XaGVuIHN0ZXAgKDEpIGZpbmlzaGVzIHdpdGhvdXQgcmFpc2luZyBhbiBleGNlcHRpb24sIHN0ZXAgKDIpIGNhblxuYmVnaW4uXG5cblRoZSBmaXJzdCBmb3JtIG9mIGBgaW1wb3J0YGAgc3RhdGVtZW50IGJpbmRzIHRoZSBtb2R1bGUgbmFtZSBpbiB0aGVcbmxvY2FsIG5hbWVzcGFjZSB0byB0aGUgbW9kdWxlIG9iamVjdCwgYW5kIHRoZW4gZ29lcyBvbiB0byBpbXBvcnQgdGhlXG5uZXh0IGlkZW50aWZpZXIsIGlmIGFueS4gIElmIHRoZSBtb2R1bGUgbmFtZSBpcyBmb2xsb3dlZCBieSBgYGFzYGAsXG50aGUgbmFtZSBmb2xsb3dpbmcgYGBhc2BgIGlzIHVzZWQgYXMgdGhlIGxvY2FsIG5hbWUgZm9yIHRoZSBtb2R1bGUuXG5cblRoZSBgYGZyb21gYCBmb3JtIGRvZXMgbm90IGJpbmQgdGhlIG1vZHVsZSBuYW1lOiBpdCBnb2VzIHRocm91Z2ggdGhlXG5saXN0IG9mIGlkZW50aWZpZXJzLCBsb29rcyBlYWNoIG9uZSBvZiB0aGVtIHVwIGluIHRoZSBtb2R1bGUgZm91bmQgaW5cbnN0ZXAgKDEpLCBhbmQgYmluZHMgdGhlIG5hbWUgaW4gdGhlIGxvY2FsIG5hbWVzcGFjZSB0byB0aGUgb2JqZWN0IHRodXNcbmZvdW5kLiAgQXMgd2l0aCB0aGUgZmlyc3QgZm9ybSBvZiBgYGltcG9ydGBgLCBhbiBhbHRlcm5hdGUgbG9jYWwgbmFtZVxuY2FuIGJlIHN1cHBsaWVkIGJ5IHNwZWNpZnlpbmcgImBgYXNgYCBsb2NhbG5hbWUiLiAgSWYgYSBuYW1lIGlzIG5vdFxuZm91bmQsIGBgSW1wb3J0RXJyb3JgYCBpcyByYWlzZWQuICBJZiB0aGUgbGlzdCBvZiBpZGVudGlmaWVycyBpc1xucmVwbGFjZWQgYnkgYSBzdGFyIChgYFwnKlwnYGApLCBhbGwgcHVibGljIG5hbWVzIGRlZmluZWQgaW4gdGhlIG1vZHVsZVxuYXJlIGJvdW5kIGluIHRoZSBsb2NhbCBuYW1lc3BhY2Ugb2YgdGhlIGBgaW1wb3J0YGAgc3RhdGVtZW50LlxuXG5UaGUgKnB1YmxpYyBuYW1lcyogZGVmaW5lZCBieSBhIG1vZHVsZSBhcmUgZGV0ZXJtaW5lZCBieSBjaGVja2luZyB0aGVcbm1vZHVsZVwncyBuYW1lc3BhY2UgZm9yIGEgdmFyaWFibGUgbmFtZWQgYGBfX2FsbF9fYGA7IGlmIGRlZmluZWQsIGl0XG5tdXN0IGJlIGEgc2VxdWVuY2Ugb2Ygc3RyaW5ncyB3aGljaCBhcmUgbmFtZXMgZGVmaW5lZCBvciBpbXBvcnRlZCBieVxudGhhdCBtb2R1bGUuICBUaGUgbmFtZXMgZ2l2ZW4gaW4gYGBfX2FsbF9fYGAgYXJlIGFsbCBjb25zaWRlcmVkIHB1YmxpY1xuYW5kIGFyZSByZXF1aXJlZCB0byBleGlzdC4gIElmIGBgX19hbGxfX2BgIGlzIG5vdCBkZWZpbmVkLCB0aGUgc2V0IG9mXG5wdWJsaWMgbmFtZXMgaW5jbHVkZXMgYWxsIG5hbWVzIGZvdW5kIGluIHRoZSBtb2R1bGVcJ3MgbmFtZXNwYWNlIHdoaWNoXG5kbyBub3QgYmVnaW4gd2l0aCBhbiB1bmRlcnNjb3JlIGNoYXJhY3RlciAoYGBcJ19cJ2BgKS4gYGBfX2FsbF9fYGBcbnNob3VsZCBjb250YWluIHRoZSBlbnRpcmUgcHVibGljIEFQSS4gSXQgaXMgaW50ZW5kZWQgdG8gYXZvaWRcbmFjY2lkZW50YWxseSBleHBvcnRpbmcgaXRlbXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIEFQSSAoc3VjaCBhc1xubGlicmFyeSBtb2R1bGVzIHdoaWNoIHdlcmUgaW1wb3J0ZWQgYW5kIHVzZWQgd2l0aGluIHRoZSBtb2R1bGUpLlxuXG5UaGUgYGBmcm9tYGAgZm9ybSB3aXRoIGBgKmBgIG1heSBvbmx5IG9jY3VyIGluIGEgbW9kdWxlIHNjb3BlLiAgVGhlXG53aWxkIGNhcmQgZm9ybSBvZiBpbXBvcnQgLS0tIGBgaW1wb3J0ICpgYCAtLS0gaXMgb25seSBhbGxvd2VkIGF0IHRoZVxubW9kdWxlIGxldmVsLiBBdHRlbXB0aW5nIHRvIHVzZSBpdCBpbiBjbGFzcyBvciBmdW5jdGlvbiBkZWZpbml0aW9uc1xud2lsbCByYWlzZSBhIGBgU3ludGF4RXJyb3JgYC5cblxuV2hlbiBzcGVjaWZ5aW5nIHdoYXQgbW9kdWxlIHRvIGltcG9ydCB5b3UgZG8gbm90IGhhdmUgdG8gc3BlY2lmeSB0aGVcbmFic29sdXRlIG5hbWUgb2YgdGhlIG1vZHVsZS4gV2hlbiBhIG1vZHVsZSBvciBwYWNrYWdlIGlzIGNvbnRhaW5lZFxud2l0aGluIGFub3RoZXIgcGFja2FnZSBpdCBpcyBwb3NzaWJsZSB0byBtYWtlIGEgcmVsYXRpdmUgaW1wb3J0IHdpdGhpblxudGhlIHNhbWUgdG9wIHBhY2thZ2Ugd2l0aG91dCBoYXZpbmcgdG8gbWVudGlvbiB0aGUgcGFja2FnZSBuYW1lLiBCeVxudXNpbmcgbGVhZGluZyBkb3RzIGluIHRoZSBzcGVjaWZpZWQgbW9kdWxlIG9yIHBhY2thZ2UgYWZ0ZXIgYGBmcm9tYGBcbnlvdSBjYW4gc3BlY2lmeSBob3cgaGlnaCB0byB0cmF2ZXJzZSB1cCB0aGUgY3VycmVudCBwYWNrYWdlIGhpZXJhcmNoeVxud2l0aG91dCBzcGVjaWZ5aW5nIGV4YWN0IG5hbWVzLiBPbmUgbGVhZGluZyBkb3QgbWVhbnMgdGhlIGN1cnJlbnRcbnBhY2thZ2Ugd2hlcmUgdGhlIG1vZHVsZSBtYWtpbmcgdGhlIGltcG9ydCBleGlzdHMuIFR3byBkb3RzIG1lYW5zIHVwXG5vbmUgcGFja2FnZSBsZXZlbC4gVGhyZWUgZG90cyBpcyB1cCB0d28gbGV2ZWxzLCBldGMuIFNvIGlmIHlvdSBleGVjdXRlXG5gYGZyb20gLiBpbXBvcnQgbW9kYGAgZnJvbSBhIG1vZHVsZSBpbiB0aGUgYGBwa2dgYCBwYWNrYWdlIHRoZW4geW91XG53aWxsIGVuZCB1cCBpbXBvcnRpbmcgYGBwa2cubW9kYGAuIElmIHlvdSBleGVjdXRlIGBgZnJvbSAuLnN1YnBrZzJcbmltcG9ydCBtb2RgYCBmcm9tIHdpdGhpbiBgYHBrZy5zdWJwa2cxYGAgeW91IHdpbGwgaW1wb3J0XG5gYHBrZy5zdWJwa2cyLm1vZGBgLiBUaGUgc3BlY2lmaWNhdGlvbiBmb3IgcmVsYXRpdmUgaW1wb3J0cyBpc1xuY29udGFpbmVkIHdpdGhpbiAqKlBFUCAzMjgqKi5cblxuYGBpbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgpYGAgaXMgcHJvdmlkZWQgdG8gc3VwcG9ydCBhcHBsaWNhdGlvbnMgdGhhdFxuZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZXMgbmVlZCB0byBiZSBsb2FkZWQgZHluYW1pY2FsbHkuXG5cblxuRnV0dXJlIHN0YXRlbWVudHNcbj09PT09PT09PT09PT09PT09XG5cbkEgKmZ1dHVyZSBzdGF0ZW1lbnQqIGlzIGEgZGlyZWN0aXZlIHRvIHRoZSBjb21waWxlciB0aGF0IGEgcGFydGljdWxhclxubW9kdWxlIHNob3VsZCBiZSBjb21waWxlZCB1c2luZyBzeW50YXggb3Igc2VtYW50aWNzIHRoYXQgd2lsbCBiZVxuYXZhaWxhYmxlIGluIGEgc3BlY2lmaWVkIGZ1dHVyZSByZWxlYXNlIG9mIFB5dGhvbi4gIFRoZSBmdXR1cmVcbnN0YXRlbWVudCBpcyBpbnRlbmRlZCB0byBlYXNlIG1pZ3JhdGlvbiB0byBmdXR1cmUgdmVyc2lvbnMgb2YgUHl0aG9uXG50aGF0IGludHJvZHVjZSBpbmNvbXBhdGlibGUgY2hhbmdlcyB0byB0aGUgbGFuZ3VhZ2UuICBJdCBhbGxvd3MgdXNlIG9mXG50aGUgbmV3IGZlYXR1cmVzIG9uIGEgcGVyLW1vZHVsZSBiYXNpcyBiZWZvcmUgdGhlIHJlbGVhc2UgaW4gd2hpY2ggdGhlXG5mZWF0dXJlIGJlY29tZXMgc3RhbmRhcmQuXG5cbiAgIGZ1dHVyZV9zdGF0ZW1lbnQgOjo9ICJmcm9tIiAiX19mdXR1cmVfXyIgImltcG9ydCIgZmVhdHVyZSBbImFzIiBuYW1lXVxuICAgICAgICAgICAgICAgICAgICAgICAgKCIsIiBmZWF0dXJlIFsiYXMiIG5hbWVdKSpcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgImZyb20iICJfX2Z1dHVyZV9fIiAiaW1wb3J0IiAiKCIgZmVhdHVyZSBbImFzIiBuYW1lXVxuICAgICAgICAgICAgICAgICAgICAgICAgKCIsIiBmZWF0dXJlIFsiYXMiIG5hbWVdKSogWyIsIl0gIikiXG4gICBmZWF0dXJlICAgICAgICAgIDo6PSBpZGVudGlmaWVyXG4gICBuYW1lICAgICAgICAgICAgIDo6PSBpZGVudGlmaWVyXG5cbkEgZnV0dXJlIHN0YXRlbWVudCBtdXN0IGFwcGVhciBuZWFyIHRoZSB0b3Agb2YgdGhlIG1vZHVsZS4gIFRoZSBvbmx5XG5saW5lcyB0aGF0IGNhbiBhcHBlYXIgYmVmb3JlIGEgZnV0dXJlIHN0YXRlbWVudCBhcmU6XG5cbiogdGhlIG1vZHVsZSBkb2NzdHJpbmcgKGlmIGFueSksXG5cbiogY29tbWVudHMsXG5cbiogYmxhbmsgbGluZXMsIGFuZFxuXG4qIG90aGVyIGZ1dHVyZSBzdGF0ZW1lbnRzLlxuXG5UaGUgZmVhdHVyZXMgcmVjb2duaXplZCBieSBQeXRob24gMy4wIGFyZSBgYGFic29sdXRlX2ltcG9ydGBgLFxuYGBkaXZpc2lvbmBgLCBgYGdlbmVyYXRvcnNgYCwgYGB1bmljb2RlX2xpdGVyYWxzYGAsXG5gYHByaW50X2Z1bmN0aW9uYGAsIGBgbmVzdGVkX3Njb3Blc2BgIGFuZCBgYHdpdGhfc3RhdGVtZW50YGAuICBUaGV5XG5hcmUgYWxsIHJlZHVuZGFudCBiZWNhdXNlIHRoZXkgYXJlIGFsd2F5cyBlbmFibGVkLCBhbmQgb25seSBrZXB0IGZvclxuYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG5cbkEgZnV0dXJlIHN0YXRlbWVudCBpcyByZWNvZ25pemVkIGFuZCB0cmVhdGVkIHNwZWNpYWxseSBhdCBjb21waWxlXG50aW1lOiBDaGFuZ2VzIHRvIHRoZSBzZW1hbnRpY3Mgb2YgY29yZSBjb25zdHJ1Y3RzIGFyZSBvZnRlblxuaW1wbGVtZW50ZWQgYnkgZ2VuZXJhdGluZyBkaWZmZXJlbnQgY29kZS4gIEl0IG1heSBldmVuIGJlIHRoZSBjYXNlXG50aGF0IGEgbmV3IGZlYXR1cmUgaW50cm9kdWNlcyBuZXcgaW5jb21wYXRpYmxlIHN5bnRheCAoc3VjaCBhcyBhIG5ld1xucmVzZXJ2ZWQgd29yZCksIGluIHdoaWNoIGNhc2UgdGhlIGNvbXBpbGVyIG1heSBuZWVkIHRvIHBhcnNlIHRoZVxubW9kdWxlIGRpZmZlcmVudGx5LiAgU3VjaCBkZWNpc2lvbnMgY2Fubm90IGJlIHB1c2hlZCBvZmYgdW50aWxcbnJ1bnRpbWUuXG5cbkZvciBhbnkgZ2l2ZW4gcmVsZWFzZSwgdGhlIGNvbXBpbGVyIGtub3dzIHdoaWNoIGZlYXR1cmUgbmFtZXMgaGF2ZVxuYmVlbiBkZWZpbmVkLCBhbmQgcmFpc2VzIGEgY29tcGlsZS10aW1lIGVycm9yIGlmIGEgZnV0dXJlIHN0YXRlbWVudFxuY29udGFpbnMgYSBmZWF0dXJlIG5vdCBrbm93biB0byBpdC5cblxuVGhlIGRpcmVjdCBydW50aW1lIHNlbWFudGljcyBhcmUgdGhlIHNhbWUgYXMgZm9yIGFueSBpbXBvcnQgc3RhdGVtZW50OlxudGhlcmUgaXMgYSBzdGFuZGFyZCBtb2R1bGUgYGBfX2Z1dHVyZV9fYGAsIGRlc2NyaWJlZCBsYXRlciwgYW5kIGl0XG53aWxsIGJlIGltcG9ydGVkIGluIHRoZSB1c3VhbCB3YXkgYXQgdGhlIHRpbWUgdGhlIGZ1dHVyZSBzdGF0ZW1lbnQgaXNcbmV4ZWN1dGVkLlxuXG5UaGUgaW50ZXJlc3RpbmcgcnVudGltZSBzZW1hbnRpY3MgZGVwZW5kIG9uIHRoZSBzcGVjaWZpYyBmZWF0dXJlXG5lbmFibGVkIGJ5IHRoZSBmdXR1cmUgc3RhdGVtZW50LlxuXG5Ob3RlIHRoYXQgdGhlcmUgaXMgbm90aGluZyBzcGVjaWFsIGFib3V0IHRoZSBzdGF0ZW1lbnQ6XG5cbiAgIGltcG9ydCBfX2Z1dHVyZV9fIFthcyBuYW1lXVxuXG5UaGF0IGlzIG5vdCBhIGZ1dHVyZSBzdGF0ZW1lbnQ7IGl0XCdzIGFuIG9yZGluYXJ5IGltcG9ydCBzdGF0ZW1lbnQgd2l0aFxubm8gc3BlY2lhbCBzZW1hbnRpY3Mgb3Igc3ludGF4IHJlc3RyaWN0aW9ucy5cblxuQ29kZSBjb21waWxlZCBieSBjYWxscyB0byB0aGUgYnVpbHQtaW4gZnVuY3Rpb25zIGBgZXhlYygpYGAgYW5kXG5gYGNvbXBpbGUoKWBgIHRoYXQgb2NjdXIgaW4gYSBtb2R1bGUgYGBNYGAgY29udGFpbmluZyBhIGZ1dHVyZVxuc3RhdGVtZW50IHdpbGwsIGJ5IGRlZmF1bHQsIHVzZSB0aGUgbmV3IHN5bnRheCBvciBzZW1hbnRpY3MgYXNzb2NpYXRlZFxud2l0aCB0aGUgZnV0dXJlIHN0YXRlbWVudC4gIFRoaXMgY2FuIGJlIGNvbnRyb2xsZWQgYnkgb3B0aW9uYWxcbmFyZ3VtZW50cyB0byBgYGNvbXBpbGUoKWBgIC0tLSBzZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhhdCBmdW5jdGlvblxuZm9yIGRldGFpbHMuXG5cbkEgZnV0dXJlIHN0YXRlbWVudCB0eXBlZCBhdCBhbiBpbnRlcmFjdGl2ZSBpbnRlcnByZXRlciBwcm9tcHQgd2lsbFxudGFrZSBlZmZlY3QgZm9yIHRoZSByZXN0IG9mIHRoZSBpbnRlcnByZXRlciBzZXNzaW9uLiAgSWYgYW5cbmludGVycHJldGVyIGlzIHN0YXJ0ZWQgd2l0aCB0aGUgKi1pKiBvcHRpb24sIGlzIHBhc3NlZCBhIHNjcmlwdCBuYW1lXG50byBleGVjdXRlLCBhbmQgdGhlIHNjcmlwdCBpbmNsdWRlcyBhIGZ1dHVyZSBzdGF0ZW1lbnQsIGl0IHdpbGwgYmUgaW5cbmVmZmVjdCBpbiB0aGUgaW50ZXJhY3RpdmUgc2Vzc2lvbiBzdGFydGVkIGFmdGVyIHRoZSBzY3JpcHQgaXNcbmV4ZWN1dGVkLlxuXG5TZWUgYWxzbzpcblxuICAgKipQRVAgMjM2KiogLSBCYWNrIHRvIHRoZSBfX2Z1dHVyZV9fXG4gICAgICBUaGUgb3JpZ2luYWwgcHJvcG9zYWwgZm9yIHRoZSBfX2Z1dHVyZV9fIG1lY2hhbmlzbS5cbicsCisgJ2ltcG9ydCc6ICdcblRoZSBgYGltcG9ydGBgIHN0YXRlbWVudFxuKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgIGltcG9ydF9zdG10ICAgICA6Oj0gImltcG9ydCIgbW9kdWxlIFsiYXMiIG5hbWVdICggIiwiIG1vZHVsZSBbImFzIiBuYW1lXSApKlxuICAgICAgICAgICAgICAgICAgIHwgImZyb20iIHJlbGF0aXZlX21vZHVsZSAiaW1wb3J0IiBpZGVudGlmaWVyIFsiYXMiIG5hbWVdXG4gICAgICAgICAgICAgICAgICAgKCAiLCIgaWRlbnRpZmllciBbImFzIiBuYW1lXSApKlxuICAgICAgICAgICAgICAgICAgIHwgImZyb20iIHJlbGF0aXZlX21vZHVsZSAiaW1wb3J0IiAiKCIgaWRlbnRpZmllciBbImFzIiBuYW1lXVxuICAgICAgICAgICAgICAgICAgICggIiwiIGlkZW50aWZpZXIgWyJhcyIgbmFtZV0gKSogWyIsIl0gIikiXG4gICAgICAgICAgICAgICAgICAgfCAiZnJvbSIgbW9kdWxlICJpbXBvcnQiICIqIlxuICAgbW9kdWxlICAgICAgICAgIDo6PSAoaWRlbnRpZmllciAiLiIpKiBpZGVudGlmaWVyXG4gICByZWxhdGl2ZV9tb2R1bGUgOjo9ICIuIiogbW9kdWxlIHwgIi4iK1xuICAgbmFtZSAgICAgICAgICAgIDo6PSBpZGVudGlmaWVyXG5cbkltcG9ydCBzdGF0ZW1lbnRzIGFyZSBleGVjdXRlZCBpbiB0d28gc3RlcHM6ICgxKSBmaW5kIGEgbW9kdWxlLCBhbmRcbmluaXRpYWxpemUgaXQgaWYgbmVjZXNzYXJ5OyAoMikgZGVmaW5lIGEgbmFtZSBvciBuYW1lcyBpbiB0aGUgbG9jYWxcbm5hbWVzcGFjZSAob2YgdGhlIHNjb3BlIHdoZXJlIHRoZSBgYGltcG9ydGBgIHN0YXRlbWVudCBvY2N1cnMpLiBUaGVcbnN0YXRlbWVudCBjb21lcyBpbiB0d28gZm9ybXMgZGlmZmVyaW5nIG9uIHdoZXRoZXIgaXQgdXNlcyB0aGUgYGBmcm9tYGBcbmtleXdvcmQuIFRoZSBmaXJzdCBmb3JtICh3aXRob3V0IGBgZnJvbWBgKSByZXBlYXRzIHRoZXNlIHN0ZXBzIGZvclxuZWFjaCBpZGVudGlmaWVyIGluIHRoZSBsaXN0LiBUaGUgZm9ybSB3aXRoIGBgZnJvbWBgIHBlcmZvcm1zIHN0ZXAgKDEpXG5vbmNlLCBhbmQgdGhlbiBwZXJmb3JtcyBzdGVwICgyKSByZXBlYXRlZGx5LiBGb3IgYSByZWZlcmVuY2VcbmltcGxlbWVudGF0aW9uIG9mIHN0ZXAgKDEpLCBzZWUgdGhlIGBgaW1wb3J0bGliYGAgbW9kdWxlLlxuXG5UbyB1bmRlcnN0YW5kIGhvdyBzdGVwICgxKSBvY2N1cnMsIG9uZSBtdXN0IGZpcnN0IHVuZGVyc3RhbmQgaG93XG5QeXRob24gaGFuZGxlcyBoaWVyYXJjaGljYWwgbmFtaW5nIG9mIG1vZHVsZXMuIFRvIGhlbHAgb3JnYW5pemVcbm1vZHVsZXMgYW5kIHByb3ZpZGUgYSBoaWVyYXJjaHkgaW4gbmFtaW5nLCBQeXRob24gaGFzIGEgY29uY2VwdCBvZlxucGFja2FnZXMuIEEgcGFja2FnZSBjYW4gY29udGFpbiBvdGhlciBwYWNrYWdlcyBhbmQgbW9kdWxlcyB3aGlsZVxubW9kdWxlcyBjYW5ub3QgY29udGFpbiBvdGhlciBtb2R1bGVzIG9yIHBhY2thZ2VzLiBGcm9tIGEgZmlsZSBzeXN0ZW1cbnBlcnNwZWN0aXZlLCBwYWNrYWdlcyBhcmUgZGlyZWN0b3JpZXMgYW5kIG1vZHVsZXMgYXJlIGZpbGVzLiBUaGVcbm9yaWdpbmFsIHNwZWNpZmljYXRpb24gZm9yIHBhY2thZ2VzIGlzIHN0aWxsIGF2YWlsYWJsZSB0byByZWFkLFxuYWx0aG91Z2ggbWlub3IgZGV0YWlscyBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIHdyaXRpbmcgb2YgdGhhdFxuZG9jdW1lbnQuXG5cbk9uY2UgdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSBpcyBrbm93biAodW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQsIHRoZVxudGVybSAibW9kdWxlIiB3aWxsIHJlZmVyIHRvIGJvdGggcGFja2FnZXMgYW5kIG1vZHVsZXMpLCBzZWFyY2hpbmcgZm9yXG50aGUgbW9kdWxlIG9yIHBhY2thZ2UgY2FuIGJlZ2luLiBUaGUgZmlyc3QgcGxhY2UgY2hlY2tlZCBpc1xuYGBzeXMubW9kdWxlc2BgLCB0aGUgY2FjaGUgb2YgYWxsIG1vZHVsZXMgdGhhdCBoYXZlIGJlZW4gaW1wb3J0ZWRcbnByZXZpb3VzbHkuIElmIHRoZSBtb2R1bGUgaXMgZm91bmQgdGhlcmUgdGhlbiBpdCBpcyB1c2VkIGluIHN0ZXAgKDIpXG5vZiBpbXBvcnQgdW5sZXNzIGBgTm9uZWBgIGlzIGZvdW5kIGluIGBgc3lzLm1vZHVsZXNgYCwgaW4gd2hpY2ggY2FzZVxuYGBJbXBvcnRFcnJvcmBgIGlzIHJhaXNlZC5cblxuSWYgdGhlIG1vZHVsZSBpcyBub3QgZm91bmQgaW4gdGhlIGNhY2hlLCB0aGVuIGBgc3lzLm1ldGFfcGF0aGBgIGlzXG5zZWFyY2hlZCAodGhlIHNwZWNpZmljYXRpb24gZm9yIGBgc3lzLm1ldGFfcGF0aGBgIGNhbiBiZSBmb3VuZCBpblxuKipQRVAgMzAyKiopLiBUaGUgb2JqZWN0IGlzIGEgbGlzdCBvZiAqZmluZGVyKiBvYmplY3RzIHdoaWNoIGFyZVxucXVlcmllZCBpbiBvcmRlciBhcyB0byB3aGV0aGVyIHRoZXkga25vdyBob3cgdG8gbG9hZCB0aGUgbW9kdWxlIGJ5XG5jYWxsaW5nIHRoZWlyIGBgZmluZF9tb2R1bGUoKWBgIG1ldGhvZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUuIElmXG50aGUgbW9kdWxlIGhhcHBlbnMgdG8gYmUgY29udGFpbmVkIHdpdGhpbiBhIHBhY2thZ2UgKGFzIGRlbm90ZWQgYnkgdGhlXG5leGlzdGVuY2Ugb2YgYSBkb3QgaW4gdGhlIG5hbWUpLCB0aGVuIGEgc2Vjb25kIGFyZ3VtZW50IHRvXG5gYGZpbmRfbW9kdWxlKClgYCBpcyBnaXZlbiBhcyB0aGUgdmFsdWUgb2YgdGhlIGBgX19wYXRoX19gYCBhdHRyaWJ1dGVcbmZyb20gdGhlIHBhcmVudCBwYWNrYWdlIChldmVyeXRoaW5nIHVwIHRvIHRoZSBsYXN0IGRvdCBpbiB0aGUgbmFtZSBvZlxudGhlIG1vZHVsZSBiZWluZyBpbXBvcnRlZCkuIElmIGEgZmluZGVyIGNhbiBmaW5kIHRoZSBtb2R1bGUgaXQgcmV0dXJuc1xuYSAqbG9hZGVyKiAoZGlzY3Vzc2VkIGxhdGVyKSBvciByZXR1cm5zIGBgTm9uZWBgLlxuXG5JZiBub25lIG9mIHRoZSBmaW5kZXJzIG9uIGBgc3lzLm1ldGFfcGF0aGBgIGFyZSBhYmxlIHRvIGZpbmQgdGhlXG5tb2R1bGUgdGhlbiBzb21lIGltcGxpY2l0bHkgZGVmaW5lZCBmaW5kZXJzIGFyZSBxdWVyaWVkLlxuSW1wbGVtZW50YXRpb25zIG9mIFB5dGhvbiB2YXJ5IGluIHdoYXQgaW1wbGljaXQgbWV0YSBwYXRoIGZpbmRlcnMgYXJlXG5kZWZpbmVkLiBUaGUgb25lIHRoZXkgYWxsIGRvIGRlZmluZSwgdGhvdWdoLCBpcyBvbmUgdGhhdCBoYW5kbGVzXG5gYHN5cy5wYXRoX2hvb2tzYGAsIGBgc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGVgYCwgYW5kIGBgc3lzLnBhdGhgYC5cblxuVGhlIGltcGxpY2l0IGZpbmRlciBzZWFyY2hlcyBmb3IgdGhlIHJlcXVlc3RlZCBtb2R1bGUgaW4gdGhlICJwYXRocyJcbnNwZWNpZmllZCBpbiBvbmUgb2YgdHdvIHBsYWNlcyAoInBhdGhzIiBkbyBub3QgaGF2ZSB0byBiZSBmaWxlIHN5c3RlbVxucGF0aHMpLiBJZiB0aGUgbW9kdWxlIGJlaW5nIGltcG9ydGVkIGlzIHN1cHBvc2VkIHRvIGJlIGNvbnRhaW5lZFxud2l0aGluIGEgcGFja2FnZSB0aGVuIHRoZSBzZWNvbmQgYXJndW1lbnQgcGFzc2VkIHRvIGBgZmluZF9tb2R1bGUoKWBgLFxuYGBfX3BhdGhfX2BgIG9uIHRoZSBwYXJlbnQgcGFja2FnZSwgaXMgdXNlZCBhcyB0aGUgc291cmNlIG9mIHBhdGhzLiBJZlxudGhlIG1vZHVsZSBpcyBub3QgY29udGFpbmVkIGluIGEgcGFja2FnZSB0aGVuIGBgc3lzLnBhdGhgYCBpcyB1c2VkIGFzXG50aGUgc291cmNlIG9mIHBhdGhzLlxuXG5PbmNlIHRoZSBzb3VyY2Ugb2YgcGF0aHMgaXMgY2hvc2VuIGl0IGlzIGl0ZXJhdGVkIG92ZXIgdG8gZmluZCBhXG5maW5kZXIgdGhhdCBjYW4gaGFuZGxlIHRoYXQgcGF0aC4gVGhlIGRpY3QgYXRcbmBgc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGVgYCBjYWNoZXMgZmluZGVycyBmb3IgcGF0aHMgYW5kIGlzIGNoZWNrZWRcbmZvciBhIGZpbmRlci4gSWYgdGhlIHBhdGggZG9lcyBub3QgaGF2ZSBhIGZpbmRlciBjYWNoZWQgdGhlblxuYGBzeXMucGF0aF9ob29rc2BgIGlzIHNlYXJjaGVkIGJ5IGNhbGxpbmcgZWFjaCBvYmplY3QgaW4gdGhlIGxpc3Qgd2l0aFxuYSBzaW5nbGUgYXJndW1lbnQgb2YgdGhlIHBhdGgsIHJldHVybmluZyBhIGZpbmRlciBvciByYWlzZXNcbmBgSW1wb3J0RXJyb3JgYC4gSWYgYSBmaW5kZXIgaXMgcmV0dXJuZWQgdGhlbiBpdCBpcyBjYWNoZWQgaW5cbmBgc3lzLnBhdGhfaW1wb3J0ZXJfY2FjaGVgYCBhbmQgdGhlbiB1c2VkIGZvciB0aGF0IHBhdGggZW50cnkuIElmIG5vXG5maW5kZXIgY2FuIGJlIGZvdW5kIGJ1dCB0aGUgcGF0aCBleGlzdHMgdGhlbiBhIHZhbHVlIG9mIGBgTm9uZWBgIGlzXG5zdG9yZWQgaW4gYGBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZWBgIHRvIHNpZ25pZnkgdGhhdCBhbiBpbXBsaWNpdCxcbmZpbGUtYmFzZWQgZmluZGVyIHRoYXQgaGFuZGxlcyBtb2R1bGVzIHN0b3JlZCBhcyBpbmRpdmlkdWFsIGZpbGVzXG5zaG91bGQgYmUgdXNlZCBmb3IgdGhhdCBwYXRoLiBJZiB0aGUgcGF0aCBkb2VzIG5vdCBleGlzdCB0aGVuIGEgZmluZGVyXG53aGljaCBhbHdheXMgcmV0dXJucyBgYE5vbmVgYCBpcyBwbGFjZWQgaW4gdGhlIGNhY2hlIGZvciB0aGUgcGF0aC5cblxuSWYgbm8gZmluZGVyIGNhbiBmaW5kIHRoZSBtb2R1bGUgdGhlbiBgYEltcG9ydEVycm9yYGAgaXMgcmFpc2VkLlxuT3RoZXJ3aXNlIHNvbWUgZmluZGVyIHJldHVybmVkIGEgbG9hZGVyIHdob3NlIGBgbG9hZF9tb2R1bGUoKWBgIG1ldGhvZFxuaXMgY2FsbGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIG1vZHVsZSB0byBsb2FkIChzZWUgKipQRVAgMzAyKiogZm9yIHRoZVxub3JpZ2luYWwgZGVmaW5pdGlvbiBvZiBsb2FkZXJzKS4gQSBsb2FkZXIgaGFzIHNldmVyYWwgcmVzcG9uc2liaWxpdGllc1xudG8gcGVyZm9ybSBvbiBhIG1vZHVsZSBpdCBsb2Fkcy4gRmlyc3QsIGlmIHRoZSBtb2R1bGUgYWxyZWFkeSBleGlzdHNcbmluIGBgc3lzLm1vZHVsZXNgYCAoYSBwb3NzaWJpbGl0eSBpZiB0aGUgbG9hZGVyIGlzIGNhbGxlZCBvdXRzaWRlIG9mXG50aGUgaW1wb3J0IG1hY2hpbmVyeSkgdGhlbiBpdCBpcyB0byB1c2UgdGhhdCBtb2R1bGUgZm9yIGluaXRpYWxpemF0aW9uXG5hbmQgbm90IGEgbmV3IG1vZHVsZS4gQnV0IGlmIHRoZSBtb2R1bGUgZG9lcyBub3QgZXhpc3QgaW5cbmBgc3lzLm1vZHVsZXNgYCB0aGVuIGl0IGlzIHRvIGJlIGFkZGVkIHRvIHRoYXQgZGljdCBiZWZvcmVcbmluaXRpYWxpemF0aW9uIGJlZ2lucy4gSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBsb2FkaW5nIG9mIHRoZSBtb2R1bGVcbmFuZCBpdCB3YXMgYWRkZWQgdG8gYGBzeXMubW9kdWxlc2BgIGl0IGlzIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZGljdC5cbklmIGFuIGVycm9yIG9jY3VycyBidXQgdGhlIG1vZHVsZSB3YXMgYWxyZWFkeSBpbiBgYHN5cy5tb2R1bGVzYGAgaXQgaXNcbmxlZnQgaW4gdGhlIGRpY3QuXG5cblRoZSBsb2FkZXIgbXVzdCBzZXQgc2V2ZXJhbCBhdHRyaWJ1dGVzIG9uIHRoZSBtb2R1bGUuIGBgX19uYW1lX19gYCBpc1xudG8gYmUgc2V0IHRvIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUuIGBgX19maWxlX19gYCBpcyB0byBiZSB0aGUgInBhdGgiXG50byB0aGUgZmlsZSB1bmxlc3MgdGhlIG1vZHVsZSBpcyBidWlsdC1pbiAoYW5kIHRodXMgbGlzdGVkIGluXG5gYHN5cy5idWlsdGluX21vZHVsZV9uYW1lc2BgKSBpbiB3aGljaCBjYXNlIHRoZSBhdHRyaWJ1dGUgaXMgbm90IHNldC5cbklmIHdoYXQgaXMgYmVpbmcgaW1wb3J0ZWQgaXMgYSBwYWNrYWdlIHRoZW4gYGBfX3BhdGhfX2BgIGlzIHRvIGJlIHNldFxudG8gYSBsaXN0IG9mIHBhdGhzIHRvIGJlIHNlYXJjaGVkIHdoZW4gbG9va2luZyBmb3IgbW9kdWxlcyBhbmRcbnBhY2thZ2VzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHBhY2thZ2UgYmVpbmcgaW1wb3J0ZWQuIGBgX19wYWNrYWdlX19gYFxuaXMgb3B0aW9uYWwgYnV0IHNob3VsZCBiZSBzZXQgdG8gdGhlIG5hbWUgb2YgcGFja2FnZSB0aGF0IGNvbnRhaW5zIHRoZVxubW9kdWxlIG9yIHBhY2thZ2UgKHRoZSBlbXB0eSBzdHJpbmcgaXMgdXNlZCBmb3IgbW9kdWxlIG5vdCBjb250YWluZWRcbmluIGEgcGFja2FnZSkuIGBgX19sb2FkZXJfX2BgIGlzIGFsc28gb3B0aW9uYWwgYnV0IHNob3VsZCBiZSBzZXQgdG9cbnRoZSBsb2FkZXIgb2JqZWN0IHRoYXQgaXMgbG9hZGluZyB0aGUgbW9kdWxlLiBXaGlsZSBsb2FkZXJzIGFyZVxucmVxdWlyZWQgdG8gcmV0dXJuIHRoZSBtb2R1bGUgdGhleSBsb2FkZWQsIGltcG9ydCBpdHNlbGYgYWx3YXlzXG5yZXRyaWV2ZXMgYW55IG1vZHVsZXMgaXQgcmV0dXJucyBmcm9tIGBgc3lzLm1vZHVsZXNgYC5cblxuSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBsb2FkaW5nIHRoZW4gdGhlIGxvYWRlciByYWlzZXNcbmBgSW1wb3J0RXJyb3JgYCBpZiBzb21lIG90aGVyIGV4Y2VwdGlvbiBpcyBub3QgYWxyZWFkeSBiZWluZ1xucHJvcGFnYXRlZC4gT3RoZXJ3aXNlIHRoZSBsb2FkZXIgcmV0dXJucyB0aGUgbW9kdWxlIHRoYXQgd2FzIGxvYWRlZFxuYW5kIGluaXRpYWxpemVkLlxuXG5XaGVuIHN0ZXAgKDEpIGZpbmlzaGVzIHdpdGhvdXQgcmFpc2luZyBhbiBleGNlcHRpb24sIHN0ZXAgKDIpIGNhblxuYmVnaW4uXG5cblRoZSBmaXJzdCBmb3JtIG9mIGBgaW1wb3J0YGAgc3RhdGVtZW50IGJpbmRzIHRoZSBtb2R1bGUgbmFtZSBpbiB0aGVcbmxvY2FsIG5hbWVzcGFjZSB0byB0aGUgbW9kdWxlIG9iamVjdCwgYW5kIHRoZW4gZ29lcyBvbiB0byBpbXBvcnQgdGhlXG5uZXh0IGlkZW50aWZpZXIsIGlmIGFueS4gIElmIHRoZSBtb2R1bGUgbmFtZSBpcyBmb2xsb3dlZCBieSBgYGFzYGAsXG50aGUgbmFtZSBmb2xsb3dpbmcgYGBhc2BgIGlzIHVzZWQgYXMgdGhlIGxvY2FsIG5hbWUgZm9yIHRoZSBtb2R1bGUuXG5cblRoZSBgYGZyb21gYCBmb3JtIGRvZXMgbm90IGJpbmQgdGhlIG1vZHVsZSBuYW1lOiBpdCBnb2VzIHRocm91Z2ggdGhlXG5saXN0IG9mIGlkZW50aWZpZXJzLCBsb29rcyBlYWNoIG9uZSBvZiB0aGVtIHVwIGluIHRoZSBtb2R1bGUgZm91bmQgaW5cbnN0ZXAgKDEpLCBhbmQgYmluZHMgdGhlIG5hbWUgaW4gdGhlIGxvY2FsIG5hbWVzcGFjZSB0byB0aGUgb2JqZWN0IHRodXNcbmZvdW5kLiAgQXMgd2l0aCB0aGUgZmlyc3QgZm9ybSBvZiBgYGltcG9ydGBgLCBhbiBhbHRlcm5hdGUgbG9jYWwgbmFtZVxuY2FuIGJlIHN1cHBsaWVkIGJ5IHNwZWNpZnlpbmcgImBgYXNgYCBsb2NhbG5hbWUiLiAgSWYgYSBuYW1lIGlzIG5vdFxuZm91bmQsIGBgSW1wb3J0RXJyb3JgYCBpcyByYWlzZWQuICBJZiB0aGUgbGlzdCBvZiBpZGVudGlmaWVycyBpc1xucmVwbGFjZWQgYnkgYSBzdGFyIChgYFwnKlwnYGApLCBhbGwgcHVibGljIG5hbWVzIGRlZmluZWQgaW4gdGhlIG1vZHVsZVxuYXJlIGJvdW5kIGluIHRoZSBsb2NhbCBuYW1lc3BhY2Ugb2YgdGhlIGBgaW1wb3J0YGAgc3RhdGVtZW50LlxuXG5UaGUgKnB1YmxpYyBuYW1lcyogZGVmaW5lZCBieSBhIG1vZHVsZSBhcmUgZGV0ZXJtaW5lZCBieSBjaGVja2luZyB0aGVcbm1vZHVsZVwncyBuYW1lc3BhY2UgZm9yIGEgdmFyaWFibGUgbmFtZWQgYGBfX2FsbF9fYGA7IGlmIGRlZmluZWQsIGl0XG5tdXN0IGJlIGEgc2VxdWVuY2Ugb2Ygc3RyaW5ncyB3aGljaCBhcmUgbmFtZXMgZGVmaW5lZCBvciBpbXBvcnRlZCBieVxudGhhdCBtb2R1bGUuICBUaGUgbmFtZXMgZ2l2ZW4gaW4gYGBfX2FsbF9fYGAgYXJlIGFsbCBjb25zaWRlcmVkIHB1YmxpY1xuYW5kIGFyZSByZXF1aXJlZCB0byBleGlzdC4gIElmIGBgX19hbGxfX2BgIGlzIG5vdCBkZWZpbmVkLCB0aGUgc2V0IG9mXG5wdWJsaWMgbmFtZXMgaW5jbHVkZXMgYWxsIG5hbWVzIGZvdW5kIGluIHRoZSBtb2R1bGVcJ3MgbmFtZXNwYWNlIHdoaWNoXG5kbyBub3QgYmVnaW4gd2l0aCBhbiB1bmRlcnNjb3JlIGNoYXJhY3RlciAoYGBcJ19cJ2BgKS4gYGBfX2FsbF9fYGBcbnNob3VsZCBjb250YWluIHRoZSBlbnRpcmUgcHVibGljIEFQSS4gSXQgaXMgaW50ZW5kZWQgdG8gYXZvaWRcbmFjY2lkZW50YWxseSBleHBvcnRpbmcgaXRlbXMgdGhhdCBhcmUgbm90IHBhcnQgb2YgdGhlIEFQSSAoc3VjaCBhc1xubGlicmFyeSBtb2R1bGVzIHdoaWNoIHdlcmUgaW1wb3J0ZWQgYW5kIHVzZWQgd2l0aGluIHRoZSBtb2R1bGUpLlxuXG5UaGUgYGBmcm9tYGAgZm9ybSB3aXRoIGBgKmBgIG1heSBvbmx5IG9jY3VyIGluIGEgbW9kdWxlIHNjb3BlLiAgVGhlXG53aWxkIGNhcmQgZm9ybSBvZiBpbXBvcnQgLS0tIGBgaW1wb3J0ICpgYCAtLS0gaXMgb25seSBhbGxvd2VkIGF0IHRoZVxubW9kdWxlIGxldmVsLiBBdHRlbXB0aW5nIHRvIHVzZSBpdCBpbiBjbGFzcyBvciBmdW5jdGlvbiBkZWZpbml0aW9uc1xud2lsbCByYWlzZSBhIGBgU3ludGF4RXJyb3JgYC5cblxuV2hlbiBzcGVjaWZ5aW5nIHdoYXQgbW9kdWxlIHRvIGltcG9ydCB5b3UgZG8gbm90IGhhdmUgdG8gc3BlY2lmeSB0aGVcbmFic29sdXRlIG5hbWUgb2YgdGhlIG1vZHVsZS4gV2hlbiBhIG1vZHVsZSBvciBwYWNrYWdlIGlzIGNvbnRhaW5lZFxud2l0aGluIGFub3RoZXIgcGFja2FnZSBpdCBpcyBwb3NzaWJsZSB0byBtYWtlIGEgcmVsYXRpdmUgaW1wb3J0IHdpdGhpblxudGhlIHNhbWUgdG9wIHBhY2thZ2Ugd2l0aG91dCBoYXZpbmcgdG8gbWVudGlvbiB0aGUgcGFja2FnZSBuYW1lLiBCeVxudXNpbmcgbGVhZGluZyBkb3RzIGluIHRoZSBzcGVjaWZpZWQgbW9kdWxlIG9yIHBhY2thZ2UgYWZ0ZXIgYGBmcm9tYGBcbnlvdSBjYW4gc3BlY2lmeSBob3cgaGlnaCB0byB0cmF2ZXJzZSB1cCB0aGUgY3VycmVudCBwYWNrYWdlIGhpZXJhcmNoeVxud2l0aG91dCBzcGVjaWZ5aW5nIGV4YWN0IG5hbWVzLiBPbmUgbGVhZGluZyBkb3QgbWVhbnMgdGhlIGN1cnJlbnRcbnBhY2thZ2Ugd2hlcmUgdGhlIG1vZHVsZSBtYWtpbmcgdGhlIGltcG9ydCBleGlzdHMuIFR3byBkb3RzIG1lYW5zIHVwXG5vbmUgcGFja2FnZSBsZXZlbC4gVGhyZWUgZG90cyBpcyB1cCB0d28gbGV2ZWxzLCBldGMuIFNvIGlmIHlvdSBleGVjdXRlXG5gYGZyb20gLiBpbXBvcnQgbW9kYGAgZnJvbSBhIG1vZHVsZSBpbiB0aGUgYGBwa2dgYCBwYWNrYWdlIHRoZW4geW91XG53aWxsIGVuZCB1cCBpbXBvcnRpbmcgYGBwa2cubW9kYGAuIElmIHlvdSBleGVjdXRlIGBgZnJvbSAuLnN1YnBrZzJcbmltcG9ydCBtb2RgYCBmcm9tIHdpdGhpbiBgYHBrZy5zdWJwa2cxYGAgeW91IHdpbGwgaW1wb3J0XG5gYHBrZy5zdWJwa2cyLm1vZGBgLiBUaGUgc3BlY2lmaWNhdGlvbiBmb3IgcmVsYXRpdmUgaW1wb3J0cyBpc1xuY29udGFpbmVkIHdpdGhpbiAqKlBFUCAzMjgqKi5cblxuYGBpbXBvcnRsaWIuaW1wb3J0X21vZHVsZSgpYGAgaXMgcHJvdmlkZWQgdG8gc3VwcG9ydCBhcHBsaWNhdGlvbnMgdGhhdFxuZGV0ZXJtaW5lIHdoaWNoIG1vZHVsZXMgbmVlZCB0byBiZSBsb2FkZWQgZHluYW1pY2FsbHkuXG5cblxuRnV0dXJlIHN0YXRlbWVudHNcbj09PT09PT09PT09PT09PT09XG5cbkEgKmZ1dHVyZSBzdGF0ZW1lbnQqIGlzIGEgZGlyZWN0aXZlIHRvIHRoZSBjb21waWxlciB0aGF0IGEgcGFydGljdWxhclxubW9kdWxlIHNob3VsZCBiZSBjb21waWxlZCB1c2luZyBzeW50YXggb3Igc2VtYW50aWNzIHRoYXQgd2lsbCBiZVxuYXZhaWxhYmxlIGluIGEgc3BlY2lmaWVkIGZ1dHVyZSByZWxlYXNlIG9mIFB5dGhvbi4gIFRoZSBmdXR1cmVcbnN0YXRlbWVudCBpcyBpbnRlbmRlZCB0byBlYXNlIG1pZ3JhdGlvbiB0byBmdXR1cmUgdmVyc2lvbnMgb2YgUHl0aG9uXG50aGF0IGludHJvZHVjZSBpbmNvbXBhdGlibGUgY2hhbmdlcyB0byB0aGUgbGFuZ3VhZ2UuICBJdCBhbGxvd3MgdXNlIG9mXG50aGUgbmV3IGZlYXR1cmVzIG9uIGEgcGVyLW1vZHVsZSBiYXNpcyBiZWZvcmUgdGhlIHJlbGVhc2UgaW4gd2hpY2ggdGhlXG5mZWF0dXJlIGJlY29tZXMgc3RhbmRhcmQuXG5cbiAgIGZ1dHVyZV9zdGF0ZW1lbnQgOjo9ICJmcm9tIiAiX19mdXR1cmVfXyIgImltcG9ydCIgZmVhdHVyZSBbImFzIiBuYW1lXVxuICAgICAgICAgICAgICAgICAgICAgICAgKCIsIiBmZWF0dXJlIFsiYXMiIG5hbWVdKSpcbiAgICAgICAgICAgICAgICAgICAgICAgIHwgImZyb20iICJfX2Z1dHVyZV9fIiAiaW1wb3J0IiAiKCIgZmVhdHVyZSBbImFzIiBuYW1lXVxuICAgICAgICAgICAgICAgICAgICAgICAgKCIsIiBmZWF0dXJlIFsiYXMiIG5hbWVdKSogWyIsIl0gIikiXG4gICBmZWF0dXJlICAgICAgICAgIDo6PSBpZGVudGlmaWVyXG4gICBuYW1lICAgICAgICAgICAgIDo6PSBpZGVudGlmaWVyXG5cbkEgZnV0dXJlIHN0YXRlbWVudCBtdXN0IGFwcGVhciBuZWFyIHRoZSB0b3Agb2YgdGhlIG1vZHVsZS4gIFRoZSBvbmx5XG5saW5lcyB0aGF0IGNhbiBhcHBlYXIgYmVmb3JlIGEgZnV0dXJlIHN0YXRlbWVudCBhcmU6XG5cbiogdGhlIG1vZHVsZSBkb2NzdHJpbmcgKGlmIGFueSksXG5cbiogY29tbWVudHMsXG5cbiogYmxhbmsgbGluZXMsIGFuZFxuXG4qIG90aGVyIGZ1dHVyZSBzdGF0ZW1lbnRzLlxuXG5UaGUgZmVhdHVyZXMgcmVjb2duaXplZCBieSBQeXRob24gMy4wIGFyZSBgYGFic29sdXRlX2ltcG9ydGBgLFxuYGBkaXZpc2lvbmBgLCBgYGdlbmVyYXRvcnNgYCwgYGB1bmljb2RlX2xpdGVyYWxzYGAsXG5gYHByaW50X2Z1bmN0aW9uYGAsIGBgbmVzdGVkX3Njb3Blc2BgIGFuZCBgYHdpdGhfc3RhdGVtZW50YGAuICBUaGV5XG5hcmUgYWxsIHJlZHVuZGFudCBiZWNhdXNlIHRoZXkgYXJlIGFsd2F5cyBlbmFibGVkLCBhbmQgb25seSBrZXB0IGZvclxuYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuXG5cbkEgZnV0dXJlIHN0YXRlbWVudCBpcyByZWNvZ25pemVkIGFuZCB0cmVhdGVkIHNwZWNpYWxseSBhdCBjb21waWxlXG50aW1lOiBDaGFuZ2VzIHRvIHRoZSBzZW1hbnRpY3Mgb2YgY29yZSBjb25zdHJ1Y3RzIGFyZSBvZnRlblxuaW1wbGVtZW50ZWQgYnkgZ2VuZXJhdGluZyBkaWZmZXJlbnQgY29kZS4gIEl0IG1heSBldmVuIGJlIHRoZSBjYXNlXG50aGF0IGEgbmV3IGZlYXR1cmUgaW50cm9kdWNlcyBuZXcgaW5jb21wYXRpYmxlIHN5bnRheCAoc3VjaCBhcyBhIG5ld1xucmVzZXJ2ZWQgd29yZCksIGluIHdoaWNoIGNhc2UgdGhlIGNvbXBpbGVyIG1heSBuZWVkIHRvIHBhcnNlIHRoZVxubW9kdWxlIGRpZmZlcmVudGx5LiAgU3VjaCBkZWNpc2lvbnMgY2Fubm90IGJlIHB1c2hlZCBvZmYgdW50aWxcbnJ1bnRpbWUuXG5cbkZvciBhbnkgZ2l2ZW4gcmVsZWFzZSwgdGhlIGNvbXBpbGVyIGtub3dzIHdoaWNoIGZlYXR1cmUgbmFtZXMgaGF2ZVxuYmVlbiBkZWZpbmVkLCBhbmQgcmFpc2VzIGEgY29tcGlsZS10aW1lIGVycm9yIGlmIGEgZnV0dXJlIHN0YXRlbWVudFxuY29udGFpbnMgYSBmZWF0dXJlIG5vdCBrbm93biB0byBpdC5cblxuVGhlIGRpcmVjdCBydW50aW1lIHNlbWFudGljcyBhcmUgdGhlIHNhbWUgYXMgZm9yIGFueSBpbXBvcnQgc3RhdGVtZW50OlxudGhlcmUgaXMgYSBzdGFuZGFyZCBtb2R1bGUgYGBfX2Z1dHVyZV9fYGAsIGRlc2NyaWJlZCBsYXRlciwgYW5kIGl0XG53aWxsIGJlIGltcG9ydGVkIGluIHRoZSB1c3VhbCB3YXkgYXQgdGhlIHRpbWUgdGhlIGZ1dHVyZSBzdGF0ZW1lbnQgaXNcbmV4ZWN1dGVkLlxuXG5UaGUgaW50ZXJlc3RpbmcgcnVudGltZSBzZW1hbnRpY3MgZGVwZW5kIG9uIHRoZSBzcGVjaWZpYyBmZWF0dXJlXG5lbmFibGVkIGJ5IHRoZSBmdXR1cmUgc3RhdGVtZW50LlxuXG5Ob3RlIHRoYXQgdGhlcmUgaXMgbm90aGluZyBzcGVjaWFsIGFib3V0IHRoZSBzdGF0ZW1lbnQ6XG5cbiAgIGltcG9ydCBfX2Z1dHVyZV9fIFthcyBuYW1lXVxuXG5UaGF0IGlzIG5vdCBhIGZ1dHVyZSBzdGF0ZW1lbnQ7IGl0XCdzIGFuIG9yZGluYXJ5IGltcG9ydCBzdGF0ZW1lbnQgd2l0aFxubm8gc3BlY2lhbCBzZW1hbnRpY3Mgb3Igc3ludGF4IHJlc3RyaWN0aW9ucy5cblxuQ29kZSBjb21waWxlZCBieSBjYWxscyB0byB0aGUgYnVpbHQtaW4gZnVuY3Rpb25zIGBgZXhlYygpYGAgYW5kXG5gYGNvbXBpbGUoKWBgIHRoYXQgb2NjdXIgaW4gYSBtb2R1bGUgYGBNYGAgY29udGFpbmluZyBhIGZ1dHVyZVxuc3RhdGVtZW50IHdpbGwsIGJ5IGRlZmF1bHQsIHVzZSB0aGUgbmV3IHN5bnRheCBvciBzZW1hbnRpY3MgYXNzb2NpYXRlZFxud2l0aCB0aGUgZnV0dXJlIHN0YXRlbWVudC4gIFRoaXMgY2FuIGJlIGNvbnRyb2xsZWQgYnkgb3B0aW9uYWxcbmFyZ3VtZW50cyB0byBgYGNvbXBpbGUoKWBgIC0tLSBzZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhhdCBmdW5jdGlvblxuZm9yIGRldGFpbHMuXG5cbkEgZnV0dXJlIHN0YXRlbWVudCB0eXBlZCBhdCBhbiBpbnRlcmFjdGl2ZSBpbnRlcnByZXRlciBwcm9tcHQgd2lsbFxudGFrZSBlZmZlY3QgZm9yIHRoZSByZXN0IG9mIHRoZSBpbnRlcnByZXRlciBzZXNzaW9uLiAgSWYgYW5cbmludGVycHJldGVyIGlzIHN0YXJ0ZWQgd2l0aCB0aGUgKi1pKiBvcHRpb24sIGlzIHBhc3NlZCBhIHNjcmlwdCBuYW1lXG50byBleGVjdXRlLCBhbmQgdGhlIHNjcmlwdCBpbmNsdWRlcyBhIGZ1dHVyZSBzdGF0ZW1lbnQsIGl0IHdpbGwgYmUgaW5cbmVmZmVjdCBpbiB0aGUgaW50ZXJhY3RpdmUgc2Vzc2lvbiBzdGFydGVkIGFmdGVyIHRoZSBzY3JpcHQgaXNcbmV4ZWN1dGVkLlxuXG5TZWUgYWxzbzpcblxuICAgKipQRVAgMjM2KiogLSBCYWNrIHRvIHRoZSBfX2Z1dHVyZV9fXG4gICAgICBUaGUgb3JpZ2luYWwgcHJvcG9zYWwgZm9yIHRoZSBfX2Z1dHVyZV9fIG1lY2hhbmlzbS5cbicsCiAgJ2luJzogJ1xuQ29tcGFyaXNvbnNcbioqKioqKioqKioqXG5cblVubGlrZSBDLCBhbGwgY29tcGFyaXNvbiBvcGVyYXRpb25zIGluIFB5dGhvbiBoYXZlIHRoZSBzYW1lIHByaW9yaXR5LFxud2hpY2ggaXMgbG93ZXIgdGhhbiB0aGF0IG9mIGFueSBhcml0aG1ldGljLCBzaGlmdGluZyBvciBiaXR3aXNlXG5vcGVyYXRpb24uICBBbHNvIHVubGlrZSBDLCBleHByZXNzaW9ucyBsaWtlIGBgYSA8IGIgPCBjYGAgaGF2ZSB0aGVcbmludGVycHJldGF0aW9uIHRoYXQgaXMgY29udmVudGlvbmFsIGluIG1hdGhlbWF0aWNzOlxuXG4gICBjb21wYXJpc29uICAgIDo6PSBvcl9leHByICggY29tcF9vcGVyYXRvciBvcl9leHByICkqXG4gICBjb21wX29wZXJhdG9yIDo6PSAiPCIgfCAiPiIgfCAiPT0iIHwgIj49IiB8ICI8PSIgfCAiIT0iXG4gICAgICAgICAgICAgICAgICAgICB8ICJpcyIgWyJub3QiXSB8IFsibm90Il0gImluIlxuXG5Db21wYXJpc29ucyB5aWVsZCBib29sZWFuIHZhbHVlczogYGBUcnVlYGAgb3IgYGBGYWxzZWBgLlxuXG5Db21wYXJpc29ucyBjYW4gYmUgY2hhaW5lZCBhcmJpdHJhcmlseSwgZS5nLiwgYGB4IDwgeSA8PSB6YGAgaXNcbmVxdWl2YWxlbnQgdG8gYGB4IDwgeSBhbmQgeSA8PSB6YGAsIGV4Y2VwdCB0aGF0IGBgeWBgIGlzIGV2YWx1YXRlZFxub25seSBvbmNlIChidXQgaW4gYm90aCBjYXNlcyBgYHpgYCBpcyBub3QgZXZhbHVhdGVkIGF0IGFsbCB3aGVuIGBgeCA8XG55YGAgaXMgZm91bmQgdG8gYmUgZmFsc2UpLlxuXG5Gb3JtYWxseSwgaWYgKmEqLCAqYiosICpjKiwgLi4uLCAqeSosICp6KiBhcmUgZXhwcmVzc2lvbnMgYW5kICpvcDEqLFxuKm9wMiosIC4uLiwgKm9wTiogYXJlIGNvbXBhcmlzb24gb3BlcmF0b3JzLCB0aGVuIGBgYSBvcDEgYiBvcDIgYyAuLi4geVxub3BOIHpgYCBpcyBlcXVpdmFsZW50IHRvIGBgYSBvcDEgYiBhbmQgYiBvcDIgYyBhbmQgLi4uIHkgb3BOIHpgYCxcbmV4Y2VwdCB0aGF0IGVhY2ggZXhwcmVzc2lvbiBpcyBldmFsdWF0ZWQgYXQgbW9zdCBvbmNlLlxuXG5Ob3RlIHRoYXQgYGBhIG9wMSBiIG9wMiBjYGAgZG9lc25cJ3QgaW1wbHkgYW55IGtpbmQgb2YgY29tcGFyaXNvblxuYmV0d2VlbiAqYSogYW5kICpjKiwgc28gdGhhdCwgZS5nLiwgYGB4IDwgeSA+IHpgYCBpcyBwZXJmZWN0bHkgbGVnYWxcbih0aG91Z2ggcGVyaGFwcyBub3QgcHJldHR5KS5cblxuVGhlIG9wZXJhdG9ycyBgYDxgYCwgYGA+YGAsIGBgPT1gYCwgYGA+PWBgLCBgYDw9YGAsIGFuZCBgYCE9YGAgY29tcGFyZVxudGhlIHZhbHVlcyBvZiB0d28gb2JqZWN0cy4gIFRoZSBvYmplY3RzIG5lZWQgbm90IGhhdmUgdGhlIHNhbWUgdHlwZS5cbklmIGJvdGggYXJlIG51bWJlcnMsIHRoZXkgYXJlIGNvbnZlcnRlZCB0byBhIGNvbW1vbiB0eXBlLiAgT3RoZXJ3aXNlLFxudGhlIGBgPT1gYCBhbmQgYGAhPWBgIG9wZXJhdG9ycyAqYWx3YXlzKiBjb25zaWRlciBvYmplY3RzIG9mIGRpZmZlcmVudFxudHlwZXMgdG8gYmUgdW5lcXVhbCwgd2hpbGUgdGhlIGBgPGBgLCBgYD5gYCwgYGA+PWBgIGFuZCBgYDw9YGBcbm9wZXJhdG9ycyByYWlzZSBhIGBgVHlwZUVycm9yYGAgd2hlbiBjb21wYXJpbmcgb2JqZWN0cyBvZiBkaWZmZXJlbnRcbnR5cGVzIHRoYXQgZG8gbm90IGltcGxlbWVudCB0aGVzZSBvcGVyYXRvcnMgZm9yIHRoZSBnaXZlbiBwYWlyIG9mXG50eXBlcy4gIFlvdSBjYW4gY29udHJvbCBjb21wYXJpc29uIGJlaGF2aW9yIG9mIG9iamVjdHMgb2Ygbm9uLWJ1aWx0LWluXG50eXBlcyBieSBkZWZpbmluZyByaWNoIGNvbXBhcmlzb24gbWV0aG9kcyBsaWtlIGBgX19ndF9fKClgYCwgZGVzY3JpYmVkXG5pbiBzZWN0aW9uICpCYXNpYyBjdXN0b21pemF0aW9uKi5cblxuQ29tcGFyaXNvbiBvZiBvYmplY3RzIG9mIHRoZSBzYW1lIHR5cGUgZGVwZW5kcyBvbiB0aGUgdHlwZTpcblxuKiBOdW1iZXJzIGFyZSBjb21wYXJlZCBhcml0aG1ldGljYWxseS5cblxuKiBUaGUgdmFsdWVzIGBgZmxvYXQoXCdOYU5cJylgYCBhbmQgYGBEZWNpbWFsKFwnTmFOXCcpYGAgYXJlIHNwZWNpYWwuIFRoZVxuICBhcmUgaWRlbnRpY2FsIHRvIHRoZW1zZWx2ZXMsIGBgeCBpcyB4YGAgYnV0IGFyZSBub3QgZXF1YWwgdG9cbiAgdGhlbXNlbHZlcywgYGB4ICE9IHhgYC4gIEFkZGl0aW9uYWxseSwgY29tcGFyaW5nIGFueSB2YWx1ZSB0byBhXG4gIG5vdC1hLW51bWJlciB2YWx1ZSB3aWxsIHJldHVybiBgYEZhbHNlYGAuICBGb3IgZXhhbXBsZSwgYm90aCBgYDMgPFxuICBmbG9hdChcJ05hTlwnKWBgIGFuZCBgYGZsb2F0KFwnTmFOXCcpIDwgM2BgIHdpbGwgcmV0dXJuIGBgRmFsc2VgYC5cblxuKiBCeXRlcyBvYmplY3RzIGFyZSBjb21wYXJlZCBsZXhpY29ncmFwaGljYWxseSB1c2luZyB0aGUgbnVtZXJpY1xuICB2YWx1ZXMgb2YgdGhlaXIgZWxlbWVudHMuXG5cbiogU3RyaW5ncyBhcmUgY29tcGFyZWQgbGV4aWNvZ3JhcGhpY2FsbHkgdXNpbmcgdGhlIG51bWVyaWMgZXF1aXZhbGVudHNcbiAgKHRoZSByZXN1bHQgb2YgdGhlIGJ1aWx0LWluIGZ1bmN0aW9uIGBgb3JkKClgYCkgb2YgdGhlaXIgY2hhcmFjdGVycy5cbiAgWzNdIFN0cmluZyBhbmQgYnl0ZXMgb2JqZWN0IGNhblwndCBiZSBjb21wYXJlZCFcblxuKiBUdXBsZXMgYW5kIGxpc3RzIGFyZSBjb21wYXJlZCBsZXhpY29ncmFwaGljYWxseSB1c2luZyBjb21wYXJpc29uIG9mXG4gIGNvcnJlc3BvbmRpbmcgZWxlbWVudHMuICBUaGlzIG1lYW5zIHRoYXQgdG8gY29tcGFyZSBlcXVhbCwgZWFjaFxuICBlbGVtZW50IG11c3QgY29tcGFyZSBlcXVhbCBhbmQgdGhlIHR3byBzZXF1ZW5jZXMgbXVzdCBiZSBvZiB0aGUgc2FtZVxuICB0eXBlIGFuZCBoYXZlIHRoZSBzYW1lIGxlbmd0aC5cblxuICBJZiBub3QgZXF1YWwsIHRoZSBzZXF1ZW5jZXMgYXJlIG9yZGVyZWQgdGhlIHNhbWUgYXMgdGhlaXIgZmlyc3RcbiAgZGlmZmVyaW5nIGVsZW1lbnRzLiAgRm9yIGV4YW1wbGUsIGBgWzEsMix4XSA8PSBbMSwyLHldYGAgaGFzIHRoZVxuICBzYW1lIHZhbHVlIGFzIGBgeCA8PSB5YGAuICBJZiB0aGUgY29ycmVzcG9uZGluZyBlbGVtZW50IGRvZXMgbm90XG4gIGV4aXN0LCB0aGUgc2hvcnRlciBzZXF1ZW5jZSBpcyBvcmRlcmVkIGZpcnN0IChmb3IgZXhhbXBsZSwgYGBbMSwyXSA8XG4gIFsxLDIsM11gYCkuXG5cbiogTWFwcGluZ3MgKGRpY3Rpb25hcmllcykgY29tcGFyZSBlcXVhbCBpZiBhbmQgb25seSBpZiB0aGV5IGhhdmUgdGhlXG4gIHNhbWUgYGAoa2V5LCB2YWx1ZSlgYCBwYWlycy4gT3JkZXIgY29tcGFyaXNvbnMgYGAoXCc8XCcsIFwnPD1cJywgXCc+PVwnLFxuICBcJz5cJylgYCByYWlzZSBgYFR5cGVFcnJvcmBgLlxuXG4qIFNldHMgYW5kIGZyb3plbnNldHMgZGVmaW5lIGNvbXBhcmlzb24gb3BlcmF0b3JzIHRvIG1lYW4gc3Vic2V0IGFuZFxuICBzdXBlcnNldCB0ZXN0cy4gIFRob3NlIHJlbGF0aW9ucyBkbyBub3QgZGVmaW5lIHRvdGFsIG9yZGVyaW5ncyAodGhlXG4gIHR3byBzZXRzIGBgezEsMn1gYCBhbmQgezIsM30gYXJlIG5vdCBlcXVhbCwgbm9yIHN1YnNldHMgb2Ygb25lXG4gIGFub3RoZXIsIG5vciBzdXBlcnNldHMgb2Ygb25lIGFub3RoZXIpLiAgQWNjb3JkaW5nbHksIHNldHMgYXJlIG5vdFxuICBhcHByb3ByaWF0ZSBhcmd1bWVudHMgZm9yIGZ1bmN0aW9ucyB3aGljaCBkZXBlbmQgb24gdG90YWwgb3JkZXJpbmcuXG4gIEZvciBleGFtcGxlLCBgYG1pbigpYGAsIGBgbWF4KClgYCwgYW5kIGBgc29ydGVkKClgYCBwcm9kdWNlXG4gIHVuZGVmaW5lZCByZXN1bHRzIGdpdmVuIGEgbGlzdCBvZiBzZXRzIGFzIGlucHV0cy5cblxuKiBNb3N0IG90aGVyIG9iamVjdHMgb2YgYnVpbHQtaW4gdHlwZXMgY29tcGFyZSB1bmVxdWFsIHVubGVzcyB0aGV5IGFyZVxuICB0aGUgc2FtZSBvYmplY3Q7IHRoZSBjaG9pY2Ugd2hldGhlciBvbmUgb2JqZWN0IGlzIGNvbnNpZGVyZWQgc21hbGxlclxuICBvciBsYXJnZXIgdGhhbiBhbm90aGVyIG9uZSBpcyBtYWRlIGFyYml0cmFyaWx5IGJ1dCBjb25zaXN0ZW50bHlcbiAgd2l0aGluIG9uZSBleGVjdXRpb24gb2YgYSBwcm9ncmFtLlxuXG5Db21wYXJpc29uIG9mIG9iamVjdHMgb2YgdGhlIGRpZmZlcmluZyB0eXBlcyBkZXBlbmRzIG9uIHdoZXRoZXIgZWl0aGVyXG5vZiB0aGUgdHlwZXMgcHJvdmlkZSBleHBsaWNpdCBzdXBwb3J0IGZvciB0aGUgY29tcGFyaXNvbi4gIE1vc3Rcbm51bWVyaWMgdHlwZXMgY2FuIGJlIGNvbXBhcmVkIHdpdGggb25lIGFub3RoZXIsIGJ1dCBjb21wYXJpc29ucyBvZlxuYGBmbG9hdGBgIGFuZCBgYERlY2ltYWxgYCBhcmUgbm90IHN1cHBvcnRlZCB0byBhdm9pZCB0aGUgaW5ldml0YWJsZVxuY29uZnVzaW9uIGFyaXNpbmcgZnJvbSByZXByZXNlbnRhdGlvbiBpc3N1ZXMgc3VjaCBhcyBgYGZsb2F0KFwnMS4xXCcpYGBcbmJlaW5nIGluZXhhY3RseSByZXByZXNlbnRlZCBhbmQgdGhlcmVmb3JlIG5vdCBleGFjdGx5IGVxdWFsIHRvXG5gYERlY2ltYWwoXCcxLjFcJylgYCB3aGljaCBpcy4gIFdoZW4gY3Jvc3MtdHlwZSBjb21wYXJpc29uIGlzIG5vdFxuc3VwcG9ydGVkLCB0aGUgY29tcGFyaXNvbiBtZXRob2QgcmV0dXJucyBgYE5vdEltcGxlbWVudGVkYGAuICBUaGlzIGNhblxuY3JlYXRlIHRoZSBpbGx1c2lvbiBvZiBub24tdHJhbnNpdGl2aXR5IGJldHdlZW4gc3VwcG9ydGVkIGNyb3NzLXR5cGVcbmNvbXBhcmlzb25zIGFuZCB1bnN1cHBvcnRlZCBjb21wYXJpc29ucy4gIEZvciBleGFtcGxlLCBgYERlY2ltYWwoMikgPT1cbjJgYCBhbmQgYGAyID09IGZsb2F0KDIpYGAgYnV0IGBgRGVjaW1hbCgyKSAhPSBmbG9hdCgyKWBgLlxuXG5UaGUgb3BlcmF0b3JzIGBgaW5gYCBhbmQgYGBub3QgaW5gYCB0ZXN0IGZvciBtZW1iZXJzaGlwLiAgYGB4IGluIHNgYFxuZXZhbHVhdGVzIHRvIHRydWUgaWYgKngqIGlzIGEgbWVtYmVyIG9mICpzKiwgYW5kIGZhbHNlIG90aGVyd2lzZS4gIGBgeFxubm90IGluIHNgYCByZXR1cm5zIHRoZSBuZWdhdGlvbiBvZiBgYHggaW4gc2BgLiAgQWxsIGJ1aWx0LWluIHNlcXVlbmNlc1xuYW5kIHNldCB0eXBlcyBzdXBwb3J0IHRoaXMgYXMgd2VsbCBhcyBkaWN0aW9uYXJ5LCBmb3Igd2hpY2ggYGBpbmBgXG50ZXN0cyB3aGV0aGVyIGEgdGhlIGRpY3Rpb25hcnkgaGFzIGEgZ2l2ZW4ga2V5LiBGb3IgY29udGFpbmVyIHR5cGVzXG5zdWNoIGFzIGxpc3QsIHR1cGxlLCBzZXQsIGZyb3plbnNldCwgZGljdCwgb3IgY29sbGVjdGlvbnMuZGVxdWUsIHRoZVxuZXhwcmVzc2lvbiBgYHggaW4geWBgIGlzIGVxdWl2YWxlbnQgdG8gYGBhbnkoeCBpcyBlIG9yIHggPT0gZSBmb3IgZSBpblxueSlgYC5cblxuRm9yIHRoZSBzdHJpbmcgYW5kIGJ5dGVzIHR5cGVzLCBgYHggaW4geWBgIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgKngqXG5pcyBhIHN1YnN0cmluZyBvZiAqeSouICBBbiBlcXVpdmFsZW50IHRlc3QgaXMgYGB5LmZpbmQoeCkgIT0gLTFgYC5cbkVtcHR5IHN0cmluZ3MgYXJlIGFsd2F5cyBjb25zaWRlcmVkIHRvIGJlIGEgc3Vic3RyaW5nIG9mIGFueSBvdGhlclxuc3RyaW5nLCBzbyBgYCIiIGluICJhYmMiYGAgd2lsbCByZXR1cm4gYGBUcnVlYGAuXG5cbkZvciB1c2VyLWRlZmluZWQgY2xhc3NlcyB3aGljaCBkZWZpbmUgdGhlIGBgX19jb250YWluc19fKClgYCBtZXRob2QsXG5gYHggaW4geWBgIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgYGB5Ll9fY29udGFpbnNfXyh4KWBgIGlzIHRydWUuXG5cbkZvciB1c2VyLWRlZmluZWQgY2xhc3NlcyB3aGljaCBkbyBub3QgZGVmaW5lIGBgX19jb250YWluc19fKClgYCBidXQgZG9cbmRlZmluZSBgYF9faXRlcl9fKClgYCwgYGB4IGluIHlgYCBpcyB0cnVlIGlmIHNvbWUgdmFsdWUgYGB6YGAgd2l0aCBgYHhcbj09IHpgYCBpcyBwcm9kdWNlZCB3aGlsZSBpdGVyYXRpbmcgb3ZlciBgYHlgYC4gIElmIGFuIGV4Y2VwdGlvbiBpc1xucmFpc2VkIGR1cmluZyB0aGUgaXRlcmF0aW9uLCBpdCBpcyBhcyBpZiBgYGluYGAgcmFpc2VkIHRoYXQgZXhjZXB0aW9uLlxuXG5MYXN0bHksIHRoZSBvbGQtc3R5bGUgaXRlcmF0aW9uIHByb3RvY29sIGlzIHRyaWVkOiBpZiBhIGNsYXNzIGRlZmluZXNcbmBgX19nZXRpdGVtX18oKWBgLCBgYHggaW4geWBgIGlzIHRydWUgaWYgYW5kIG9ubHkgaWYgdGhlcmUgaXMgYSBub24tXG5uZWdhdGl2ZSBpbnRlZ2VyIGluZGV4ICppKiBzdWNoIHRoYXQgYGB4ID09IHlbaV1gYCwgYW5kIGFsbCBsb3dlclxuaW50ZWdlciBpbmRpY2VzIGRvIG5vdCByYWlzZSBgYEluZGV4RXJyb3JgYCBleGNlcHRpb24uICAoSWYgYW55IG90aGVyXG5leGNlcHRpb24gaXMgcmFpc2VkLCBpdCBpcyBhcyBpZiBgYGluYGAgcmFpc2VkIHRoYXQgZXhjZXB0aW9uKS5cblxuVGhlIG9wZXJhdG9yIGBgbm90IGluYGAgaXMgZGVmaW5lZCB0byBoYXZlIHRoZSBpbnZlcnNlIHRydWUgdmFsdWUgb2ZcbmBgaW5gYC5cblxuVGhlIG9wZXJhdG9ycyBgYGlzYGAgYW5kIGBgaXMgbm90YGAgdGVzdCBmb3Igb2JqZWN0IGlkZW50aXR5OiBgYHggaXNcbnlgYCBpcyB0cnVlIGlmIGFuZCBvbmx5IGlmICp4KiBhbmQgKnkqIGFyZSB0aGUgc2FtZSBvYmplY3QuICBgYHggaXNcbm5vdCB5YGAgeWllbGRzIHRoZSBpbnZlcnNlIHRydXRoIHZhbHVlLiBbNF1cbicsCiAgJ2ludGVnZXJzJzogJ1xuSW50ZWdlciBsaXRlcmFsc1xuKioqKioqKioqKioqKioqKlxuXG5JbnRlZ2VyIGxpdGVyYWxzIGFyZSBkZXNjcmliZWQgYnkgdGhlIGZvbGxvd2luZyBsZXhpY2FsIGRlZmluaXRpb25zOlxuXG4gICBpbnRlZ2VyICAgICAgICA6Oj0gZGVjaW1hbGludGVnZXIgfCBvY3RpbnRlZ2VyIHwgaGV4aW50ZWdlciB8IGJpbmludGVnZXJcbiAgIGRlY2ltYWxpbnRlZ2VyIDo6PSBub256ZXJvZGlnaXQgZGlnaXQqIHwgIjAiK1xuICAgbm9uemVyb2RpZ2l0ICAgOjo9ICIxIi4uLiI5IlxuICAgZGlnaXQgICAgICAgICAgOjo9ICIwIi4uLiI5IlxuICAgb2N0aW50ZWdlciAgICAgOjo9ICIwIiAoIm8iIHwgIk8iKSBvY3RkaWdpdCtcbiAgIGhleGludGVnZXIgICAgIDo6PSAiMCIgKCJ4IiB8ICJYIikgaGV4ZGlnaXQrXG4gICBiaW5pbnRlZ2VyICAgICA6Oj0gIjAiICgiYiIgfCAiQiIpIGJpbmRpZ2l0K1xuICAgb2N0ZGlnaXQgICAgICAgOjo9ICIwIi4uLiI3IlxuICAgaGV4ZGlnaXQgICAgICAgOjo9IGRpZ2l0IHwgImEiLi4uImYiIHwgIkEiLi4uIkYiXG4gICBiaW5kaWdpdCAgICAgICA6Oj0gIjAiIHwgIjEiXG5cblRoZXJlIGlzIG5vIGxpbWl0IGZvciB0aGUgbGVuZ3RoIG9mIGludGVnZXIgbGl0ZXJhbHMgYXBhcnQgZnJvbSB3aGF0XG5jYW4gYmUgc3RvcmVkIGluIGF2YWlsYWJsZSBtZW1vcnkuXG5cbk5vdGUgdGhhdCBsZWFkaW5nIHplcm9zIGluIGEgbm9uLXplcm8gZGVjaW1hbCBudW1iZXIgYXJlIG5vdCBhbGxvd2VkLlxuVGhpcyBpcyBmb3IgZGlzYW1iaWd1YXRpb24gd2l0aCBDLXN0eWxlIG9jdGFsIGxpdGVyYWxzLCB3aGljaCBQeXRob25cbnVzZWQgYmVmb3JlIHZlcnNpb24gMy4wLlxuXG5Tb21lIGV4YW1wbGVzIG9mIGludGVnZXIgbGl0ZXJhbHM6XG5cbiAgIDcgICAgIDIxNDc0ODM2NDcgICAgICAgICAgICAgICAgICAgICAgICAwbzE3NyAgICAwYjEwMDExMDExMVxuICAgMyAgICAgNzkyMjgxNjI1MTQyNjQzMzc1OTM1NDM5NTAzMzYgICAgIDBvMzc3ICAgIDB4MTAwMDAwMDAwXG4gICAgICAgICA3OTIyODE2MjUxNDI2NDMzNzU5MzU0Mzk1MDMzNiAgICAgICAgICAgICAgMHhkZWFkYmVlZlxuJywKICAnbGFtYmRhJzogJ1xuTGFtYmRhc1xuKioqKioqKlxuXG4gICBsYW1iZGFfZm9ybSAgICAgICAgOjo9ICJsYW1iZGEiIFtwYXJhbWV0ZXJfbGlzdF06IGV4cHJlc3Npb25cbiAgIGxhbWJkYV9mb3JtX25vY29uZCA6Oj0gImxhbWJkYSIgW3BhcmFtZXRlcl9saXN0XTogZXhwcmVzc2lvbl9ub2NvbmRcblxuTGFtYmRhIGZvcm1zIChsYW1iZGEgZXhwcmVzc2lvbnMpIGhhdmUgdGhlIHNhbWUgc3ludGFjdGljIHBvc2l0aW9uIGFzXG5leHByZXNzaW9ucy4gIFRoZXkgYXJlIGEgc2hvcnRoYW5kIHRvIGNyZWF0ZSBhbm9ueW1vdXMgZnVuY3Rpb25zOyB0aGVcbmV4cHJlc3Npb24gYGBsYW1iZGEgYXJndW1lbnRzOiBleHByZXNzaW9uYGAgeWllbGRzIGEgZnVuY3Rpb24gb2JqZWN0LlxuVGhlIHVubmFtZWQgb2JqZWN0IGJlaGF2ZXMgbGlrZSBhIGZ1bmN0aW9uIG9iamVjdCBkZWZpbmVkIHdpdGhcblxuICAgZGVmIDxsYW1iZGE+KGFyZ3VtZW50cyk6XG4gICAgICAgcmV0dXJuIGV4cHJlc3Npb25cblxuU2VlIHNlY3Rpb24gKkZ1bmN0aW9uIGRlZmluaXRpb25zKiBmb3IgdGhlIHN5bnRheCBvZiBwYXJhbWV0ZXIgbGlzdHMuXG5Ob3RlIHRoYXQgZnVuY3Rpb25zIGNyZWF0ZWQgd2l0aCBsYW1iZGEgZm9ybXMgY2Fubm90IGNvbnRhaW5cbnN0YXRlbWVudHMgb3IgYW5ub3RhdGlvbnMuXG4nLApAQCAtNDksMzAgKzUwLDMwIEBACiAgJ25vbmxvY2FsJzogJ1xuVGhlIGBgbm9ubG9jYWxgYCBzdGF0ZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgIG5vbmxvY2FsX3N0bXQgOjo9ICJub25sb2NhbCIgaWRlbnRpZmllciAoIiwiIGlkZW50aWZpZXIpKlxuXG5UaGUgYGBub25sb2NhbGBgIHN0YXRlbWVudCBjYXVzZXMgdGhlIGxpc3RlZCBpZGVudGlmaWVycyB0byByZWZlciB0b1xucHJldmlvdXNseSBib3VuZCB2YXJpYWJsZXMgaW4gdGhlIG5lYXJlc3QgZW5jbG9zaW5nIHNjb3BlLiAgVGhpcyBpc1xuaW1wb3J0YW50IGJlY2F1c2UgdGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGJpbmRpbmcgaXMgdG8gc2VhcmNoIHRoZVxubG9jYWwgbmFtZXNwYWNlIGZpcnN0LiAgVGhlIHN0YXRlbWVudCBhbGxvd3MgZW5jYXBzdWxhdGVkIGNvZGUgdG9cbnJlYmluZCB2YXJpYWJsZXMgb3V0c2lkZSBvZiB0aGUgbG9jYWwgc2NvcGUgYmVzaWRlcyB0aGUgZ2xvYmFsXG4obW9kdWxlKSBzY29wZS5cblxuTmFtZXMgbGlzdGVkIGluIGEgYGBub25sb2NhbGBgIHN0YXRlbWVudCwgdW5saWtlIHRvIHRob3NlIGxpc3RlZCBpbiBhXG5gYGdsb2JhbGBgIHN0YXRlbWVudCwgbXVzdCByZWZlciB0byBwcmUtZXhpc3RpbmcgYmluZGluZ3MgaW4gYW5cbmVuY2xvc2luZyBzY29wZSAodGhlIHNjb3BlIGluIHdoaWNoIGEgbmV3IGJpbmRpbmcgc2hvdWxkIGJlIGNyZWF0ZWRcbmNhbm5vdCBiZSBkZXRlcm1pbmVkIHVuYW1iaWd1b3VzbHkpLlxuXG5OYW1lcyBsaXN0ZWQgaW4gYSBgYG5vbmxvY2FsYGAgc3RhdGVtZW50IG11c3Qgbm90IGNvbGxpZGUgd2l0aCBwcmUtXG5leGlzdGluZyBiaW5kaW5ncyBpbiB0aGUgbG9jYWwgc2NvcGUuXG5cblNlZSBhbHNvOlxuXG4gICAqKlBFUCAzMTA0KiogLSBBY2Nlc3MgdG8gTmFtZXMgaW4gT3V0ZXIgU2NvcGVzXG4gICAgICBUaGUgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGBgbm9ubG9jYWxgYCBzdGF0ZW1lbnQuXG4nLAogICdudW1iZXJzJzogIlxuTnVtZXJpYyBsaXRlcmFsc1xuKioqKioqKioqKioqKioqKlxuXG5UaGVyZSBhcmUgdGhyZWUgdHlwZXMgb2YgbnVtZXJpYyBsaXRlcmFsczogaW50ZWdlcnMsIGZsb2F0aW5nIHBvaW50XG5udW1iZXJzLCBhbmQgaW1hZ2luYXJ5IG51bWJlcnMuICBUaGVyZSBhcmUgbm8gY29tcGxleCBsaXRlcmFsc1xuKGNvbXBsZXggbnVtYmVycyBjYW4gYmUgZm9ybWVkIGJ5IGFkZGluZyBhIHJlYWwgbnVtYmVyIGFuZCBhblxuaW1hZ2luYXJ5IG51bWJlcikuXG5cbk5vdGUgdGhhdCBudW1lcmljIGxpdGVyYWxzIGRvIG5vdCBpbmNsdWRlIGEgc2lnbjsgYSBwaHJhc2UgbGlrZSBgYC0xYGBcbmlzIGFjdHVhbGx5IGFuIGV4cHJlc3Npb24gY29tcG9zZWQgb2YgdGhlIHVuYXJ5IG9wZXJhdG9yICdgYC1gYCcgYW5kXG50aGUgbGl0ZXJhbCBgYDFgYC5cbiIsCiAgJ251bWVyaWMtdHlwZXMnOiAiXG5FbXVsYXRpbmcgbnVtZXJpYyB0eXBlc1xuKioqKioqKioqKioqKioqKioqKioqKipcblxuVGhlIGZvbGxvd2luZyBtZXRob2RzIGNhbiBiZSBkZWZpbmVkIHRvIGVtdWxhdGUgbnVtZXJpYyBvYmplY3RzLlxuTWV0aG9kcyBjb3JyZXNwb25kaW5nIHRvIG9wZXJhdGlvbnMgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGVcbnBhcnRpY3VsYXIga2luZCBvZiBudW1iZXIgaW1wbGVtZW50ZWQgKGUuZy4sIGJpdHdpc2Ugb3BlcmF0aW9ucyBmb3Jcbm5vbi1pbnRlZ3JhbCBudW1iZXJzKSBzaG91bGQgYmUgbGVmdCB1bmRlZmluZWQuXG5cbm9iamVjdC5fX2FkZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fc3ViX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19tdWxfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3RydWVkaXZfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2Zsb29yZGl2X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19tb2RfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2Rpdm1vZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcG93X18oc2VsZiwgb3RoZXJbLCBtb2R1bG9dKVxub2JqZWN0Ll9fbHNoaWZ0X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19yc2hpZnRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2FuZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9feG9yX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19vcl9fKHNlbGYsIG90aGVyKVxuXG4gICBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQgdG8gaW1wbGVtZW50IHRoZSBiaW5hcnkgYXJpdGhtZXRpY1xuICAgb3BlcmF0aW9ucyAoYGArYGAsIGBgLWBgLCBgYCpgYCwgYGAvYGAsIGBgLy9gYCwgYGAlYGAsXG4gICBgYGRpdm1vZCgpYGAsIGBgcG93KClgYCwgYGAqKmBgLCBgYDw8YGAsIGBgPj5gYCwgYGAmYGAsIGBgXmBgLFxuICAgYGB8YGApLiAgRm9yIGluc3RhbmNlLCB0byBldmFsdWF0ZSB0aGUgZXhwcmVzc2lvbiBgYHggKyB5YGAsIHdoZXJlXG4gICAqeCogaXMgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcyB0aGF0IGhhcyBhbiBgYF9fYWRkX18oKWBgIG1ldGhvZCxcbiAgIGBgeC5fX2FkZF9fKHkpYGAgaXMgY2FsbGVkLiAgVGhlIGBgX19kaXZtb2RfXygpYGAgbWV0aG9kIHNob3VsZCBiZVxuICAgdGhlIGVxdWl2YWxlbnQgdG8gdXNpbmcgYGBfX2Zsb29yZGl2X18oKWBgIGFuZCBgYF9fbW9kX18oKWBgOyBpdFxuICAgc2hvdWxkIG5vdCBiZSByZWxhdGVkIHRvIGBgX190cnVlZGl2X18oKWBgLiAgTm90ZSB0aGF0XG4gICBgYF9fcG93X18oKWBgIHNob3VsZCBiZSBkZWZpbmVkIHRvIGFjY2VwdCBhbiBvcHRpb25hbCB0aGlyZFxuICAgYXJndW1lbnQgaWYgdGhlIHRlcm5hcnkgdmVyc2lvbiBvZiB0aGUgYnVpbHQtaW4gYGBwb3coKWBgIGZ1bmN0aW9uXG4gICBpcyB0byBiZSBzdXBwb3J0ZWQuXG5cbiAgIElmIG9uZSBvZiB0aG9zZSBtZXRob2RzIGRvZXMgbm90IHN1cHBvcnQgdGhlIG9wZXJhdGlvbiB3aXRoIHRoZVxuICAgc3VwcGxpZWQgYXJndW1lbnRzLCBpdCBzaG91bGQgcmV0dXJuIGBgTm90SW1wbGVtZW50ZWRgYC5cblxub2JqZWN0Ll9fcmFkZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnN1Yl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcm11bF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnRydWVkaXZfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3JmbG9vcmRpdl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcm1vZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcmRpdm1vZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnBvd19fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcmxzaGlmdF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnJzaGlmdF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcmFuZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnhvcl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcm9yX18oc2VsZiwgb3RoZXIpXG5cbiAgIFRoZXNlIG1ldGhvZHMgYXJlIGNhbGxlZCB0byBpbXBsZW1lbnQgdGhlIGJpbmFyeSBhcml0aG1ldGljXG4gICBvcGVyYXRpb25zIChgYCtgYCwgYGAtYGAsIGBgKmBgLCBgYC9gYCwgYGAvL2BgLCBgYCVgYCxcbiAgIGBgZGl2bW9kKClgYCwgYGBwb3coKWBgLCBgYCoqYGAsIGBgPDxgYCwgYGA+PmBgLCBgYCZgYCwgYGBeYGAsXG4gICBgYHxgYCkgd2l0aCByZWZsZWN0ZWQgKHN3YXBwZWQpIG9wZXJhbmRzLiBUaGVzZSBmdW5jdGlvbnMgYXJlIG9ubHlcbiAgIGNhbGxlZCBpZiB0aGUgbGVmdCBvcGVyYW5kIGRvZXMgbm90IHN1cHBvcnQgdGhlIGNvcnJlc3BvbmRpbmdcbiAgIG9wZXJhdGlvbiBhbmQgdGhlIG9wZXJhbmRzIGFyZSBvZiBkaWZmZXJlbnQgdHlwZXMuIFsyXSAgRm9yXG4gICBpbnN0YW5jZSwgdG8gZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24gYGB4IC0geWBgLCB3aGVyZSAqeSogaXMgYW5cbiAgIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBoYXMgYW4gYGBfX3JzdWJfXygpYGAgbWV0aG9kLFxuICAgYGB5Ll9fcnN1Yl9fKHgpYGAgaXMgY2FsbGVkIGlmIGBgeC5fX3N1Yl9fKHkpYGAgcmV0dXJuc1xuICAgKk5vdEltcGxlbWVudGVkKi5cblxuICAgTm90ZSB0aGF0IHRlcm5hcnkgYGBwb3coKWBgIHdpbGwgbm90IHRyeSBjYWxsaW5nIGBgX19ycG93X18oKWBgXG4gICAodGhlIGNvZXJjaW9uIHJ1bGVzIHdvdWxkIGJlY29tZSB0b28gY29tcGxpY2F0ZWQpLlxuXG4gICBOb3RlOiBJZiB0aGUgcmlnaHQgb3BlcmFuZCdzIHR5cGUgaXMgYSBzdWJjbGFzcyBvZiB0aGUgbGVmdCBvcGVyYW5kJ3NcbiAgICAgdHlwZSBhbmQgdGhhdCBzdWJjbGFzcyBwcm92aWRlcyB0aGUgcmVmbGVjdGVkIG1ldGhvZCBmb3IgdGhlXG4gICAgIG9wZXJhdGlvbiwgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBsZWZ0IG9wZXJhbmQnc1xuICAgICBub24tcmVmbGVjdGVkIG1ldGhvZC4gIFRoaXMgYmVoYXZpb3IgYWxsb3dzIHN1YmNsYXNzZXMgdG9cbiAgICAgb3ZlcnJpZGUgdGhlaXIgYW5jZXN0b3JzJyBvcGVyYXRpb25zLlxuXG5vYmplY3QuX19pYWRkX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19pc3ViX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19pbXVsX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19pdHJ1ZWRpdl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faWZsb29yZGl2X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19pbW9kX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19pcG93X18oc2VsZiwgb3RoZXJbLCBtb2R1bG9dKVxub2JqZWN0Ll9faWxzaGlmdF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faXJzaGlmdF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faWFuZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faXhvcl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faW9yX18oc2VsZiwgb3RoZXIpXG5cbiAgIFRoZXNlIG1ldGhvZHMgYXJlIGNhbGxlZCB0byBpbXBsZW1lbnQgdGhlIGF1Z21lbnRlZCBhcml0aG1ldGljXG4gICBhc3NpZ25tZW50cyAoYGArPWBgLCBgYC09YGAsIGBgKj1gYCwgYGAvPWBgLCBgYC8vPWBgLCBgYCU9YGAsXG4gICBgYCoqPWBgLCBgYDw8PWBgLCBgYD4+PWBgLCBgYCY9YGAsIGBgXj1gYCwgYGB8PWBgKS4gIFRoZXNlIG1ldGhvZHNcbiAgIHNob3VsZCBhdHRlbXB0IHRvIGRvIHRoZSBvcGVyYXRpb24gaW4tcGxhY2UgKG1vZGlmeWluZyAqc2VsZiopIGFuZFxuICAgcmV0dXJuIHRoZSByZXN1bHQgKHdoaWNoIGNvdWxkIGJlLCBidXQgZG9lcyBub3QgaGF2ZSB0byBiZSxcbiAgICpzZWxmKikuICBJZiBhIHNwZWNpZmljIG1ldGhvZCBpcyBub3QgZGVmaW5lZCwgdGhlIGF1Z21lbnRlZFxuICAgYXNzaWdubWVudCBmYWxscyBiYWNrIHRvIHRoZSBub3JtYWwgbWV0aG9kcy4gIEZvciBpbnN0YW5jZSwgdG9cbiAgIGV4ZWN1dGUgdGhlIHN0YXRlbWVudCBgYHggKz0geWBgLCB3aGVyZSAqeCogaXMgYW4gaW5zdGFuY2Ugb2YgYVxuICAgY2xhc3MgdGhhdCBoYXMgYW4gYGBfX2lhZGRfXygpYGAgbWV0aG9kLCBgYHguX19pYWRkX18oeSlgYCBpc1xuICAgY2FsbGVkLiAgSWYgKngqIGlzIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBkb2VzIG5vdCBkZWZpbmUgYVxuICAgYGBfX2lhZGRfXygpYGAgbWV0aG9kLCBgYHguX19hZGRfXyh5KWBgIGFuZCBgYHkuX19yYWRkX18oeClgYCBhcmVcbiAgIGNvbnNpZGVyZWQsIGFzIHdpdGggdGhlIGV2YWx1YXRpb24gb2YgYGB4ICsgeWBgLlxuXG5vYmplY3QuX19uZWdfXyhzZWxmKVxub2JqZWN0Ll9fcG9zX18oc2VsZilcbm9iamVjdC5fX2Fic19fKHNlbGYpXG5vYmplY3QuX19pbnZlcnRfXyhzZWxmKVxuXG4gICBDYWxsZWQgdG8gaW1wbGVtZW50IHRoZSB1bmFyeSBhcml0aG1ldGljIG9wZXJhdGlvbnMgKGBgLWBgLCBgYCtgYCxcbiAgIGBgYWJzKClgYCBhbmQgYGB+YGApLlxuXG5vYmplY3QuX19jb21wbGV4X18oc2VsZilcbm9iamVjdC5fX2ludF9fKHNlbGYpXG5vYmplY3QuX19mbG9hdF9fKHNlbGYpXG5vYmplY3QuX19yb3VuZF9fKHNlbGZbLCBuXSlcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCB0aGUgYnVpbHQtaW4gZnVuY3Rpb25zIGBgY29tcGxleCgpYGAsXG4gICBgYGludCgpYGAsIGBgZmxvYXQoKWBgIGFuZCBgYHJvdW5kKClgYC4gIFNob3VsZCByZXR1cm4gYSB2YWx1ZSBvZlxuICAgdGhlIGFwcHJvcHJpYXRlIHR5cGUuXG5cbm9iamVjdC5fX2luZGV4X18oc2VsZilcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCBgYG9wZXJhdG9yLmluZGV4KClgYC4gIEFsc28gY2FsbGVkIHdoZW5ldmVyXG4gICBQeXRob24gbmVlZHMgYW4gaW50ZWdlciBvYmplY3QgKHN1Y2ggYXMgaW4gc2xpY2luZywgb3IgaW4gdGhlXG4gICBidWlsdC1pbiBgYGJpbigpYGAsIGBgaGV4KClgYCBhbmQgYGBvY3QoKWBgIGZ1bmN0aW9ucykuIE11c3QgcmV0dXJuXG4gICBhbiBpbnRlZ2VyLlxuIiwKLSAnb2JqZWN0cyc6ICdcbk9iamVjdHMsIHZhbHVlcyBhbmQgdHlwZXNcbioqKioqKioqKioqKioqKioqKioqKioqKipcblxuKk9iamVjdHMqIGFyZSBQeXRob25cJ3MgYWJzdHJhY3Rpb24gZm9yIGRhdGEuICBBbGwgZGF0YSBpbiBhIFB5dGhvblxucHJvZ3JhbSBpcyByZXByZXNlbnRlZCBieSBvYmplY3RzIG9yIGJ5IHJlbGF0aW9ucyBiZXR3ZWVuIG9iamVjdHMuIChJblxuYSBzZW5zZSwgYW5kIGluIGNvbmZvcm1hbmNlIHRvIFZvbiBOZXVtYW5uXCdzIG1vZGVsIG9mIGEgInN0b3JlZFxucHJvZ3JhbSBjb21wdXRlciwiIGNvZGUgaXMgYWxzbyByZXByZXNlbnRlZCBieSBvYmplY3RzLilcblxuRXZlcnkgb2JqZWN0IGhhcyBhbiBpZGVudGl0eSwgYSB0eXBlIGFuZCBhIHZhbHVlLiAgQW4gb2JqZWN0XCdzXG4qaWRlbnRpdHkqIG5ldmVyIGNoYW5nZXMgb25jZSBpdCBoYXMgYmVlbiBjcmVhdGVkOyB5b3UgbWF5IHRoaW5rIG9mIGl0XG5hcyB0aGUgb2JqZWN0XCdzIGFkZHJlc3MgaW4gbWVtb3J5LiAgVGhlIFwnYGBpc2BgXCcgb3BlcmF0b3IgY29tcGFyZXMgdGhlXG5pZGVudGl0eSBvZiB0d28gb2JqZWN0czsgdGhlIGBgaWQoKWBgIGZ1bmN0aW9uIHJldHVybnMgYW4gaW50ZWdlclxucmVwcmVzZW50aW5nIGl0cyBpZGVudGl0eSAoY3VycmVudGx5IGltcGxlbWVudGVkIGFzIGl0cyBhZGRyZXNzKS4gQW5cbm9iamVjdFwncyAqdHlwZSogaXMgYWxzbyB1bmNoYW5nZWFibGUuIFsxXSBBbiBvYmplY3RcJ3MgdHlwZSBkZXRlcm1pbmVzXG50aGUgb3BlcmF0aW9ucyB0aGF0IHRoZSBvYmplY3Qgc3VwcG9ydHMgKGUuZy4sICJkb2VzIGl0IGhhdmUgYVxubGVuZ3RoPyIpIGFuZCBhbHNvIGRlZmluZXMgdGhlIHBvc3NpYmxlIHZhbHVlcyBmb3Igb2JqZWN0cyBvZiB0aGF0XG50eXBlLiAgVGhlIGBgdHlwZSgpYGAgZnVuY3Rpb24gcmV0dXJucyBhbiBvYmplY3RcJ3MgdHlwZSAod2hpY2ggaXMgYW5cbm9iamVjdCBpdHNlbGYpLiAgVGhlICp2YWx1ZSogb2Ygc29tZSBvYmplY3RzIGNhbiBjaGFuZ2UuICBPYmplY3RzXG53aG9zZSB2YWx1ZSBjYW4gY2hhbmdlIGFyZSBzYWlkIHRvIGJlICptdXRhYmxlKjsgb2JqZWN0cyB3aG9zZSB2YWx1ZVxuaXMgdW5jaGFuZ2VhYmxlIG9uY2UgdGhleSBhcmUgY3JlYXRlZCBhcmUgY2FsbGVkICppbW11dGFibGUqLiAoVGhlXG52YWx1ZSBvZiBhbiBpbW11dGFibGUgY29udGFpbmVyIG9iamVjdCB0aGF0IGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIGFcbm11dGFibGUgb2JqZWN0IGNhbiBjaGFuZ2Ugd2hlbiB0aGUgbGF0dGVyXCdzIHZhbHVlIGlzIGNoYW5nZWQ7IGhvd2V2ZXJcbnRoZSBjb250YWluZXIgaXMgc3RpbGwgY29uc2lkZXJlZCBpbW11dGFibGUsIGJlY2F1c2UgdGhlIGNvbGxlY3Rpb24gb2Zcbm9iamVjdHMgaXQgY29udGFpbnMgY2Fubm90IGJlIGNoYW5nZWQuICBTbywgaW1tdXRhYmlsaXR5IGlzIG5vdFxuc3RyaWN0bHkgdGhlIHNhbWUgYXMgaGF2aW5nIGFuIHVuY2hhbmdlYWJsZSB2YWx1ZSwgaXQgaXMgbW9yZSBzdWJ0bGUuKVxuQW4gb2JqZWN0XCdzIG11dGFiaWxpdHkgaXMgZGV0ZXJtaW5lZCBieSBpdHMgdHlwZTsgZm9yIGluc3RhbmNlLFxubnVtYmVycywgc3RyaW5ncyBhbmQgdHVwbGVzIGFyZSBpbW11dGFibGUsIHdoaWxlIGRpY3Rpb25hcmllcyBhbmRcbmxpc3RzIGFyZSBtdXRhYmxlLlxuXG5PYmplY3RzIGFyZSBuZXZlciBleHBsaWNpdGx5IGRlc3Ryb3llZDsgaG93ZXZlciwgd2hlbiB0aGV5IGJlY29tZVxudW5yZWFjaGFibGUgdGhleSBtYXkgYmUgZ2FyYmFnZS1jb2xsZWN0ZWQuICBBbiBpbXBsZW1lbnRhdGlvbiBpc1xuYWxsb3dlZCB0byBwb3N0cG9uZSBnYXJiYWdlIGNvbGxlY3Rpb24gb3Igb21pdCBpdCBhbHRvZ2V0aGVyIC0tLSBpdCBpc1xuYSBtYXR0ZXIgb2YgaW1wbGVtZW50YXRpb24gcXVhbGl0eSBob3cgZ2FyYmFnZSBjb2xsZWN0aW9uIGlzXG5pbXBsZW1lbnRlZCwgYXMgbG9uZyBhcyBubyBvYmplY3RzIGFyZSBjb2xsZWN0ZWQgdGhhdCBhcmUgc3RpbGxcbnJlYWNoYWJsZS5cblxuKipDUHl0aG9uIGltcGxlbWVudGF0aW9uIGRldGFpbDoqKiBDUHl0aG9uIGN1cnJlbnRseSB1c2VzIGEgcmVmZXJlbmNlLVxuY291bnRpbmcgc2NoZW1lIHdpdGggKG9wdGlvbmFsKSBkZWxheWVkIGRldGVjdGlvbiBvZiBjeWNsaWNhbGx5IGxpbmtlZFxuZ2FyYmFnZSwgd2hpY2ggY29sbGVjdHMgbW9zdCBvYmplY3RzIGFzIHNvb24gYXMgdGhleSBiZWNvbWVcbnVucmVhY2hhYmxlLCBidXQgaXMgbm90IGd1YXJhbnRlZWQgdG8gY29sbGVjdCBnYXJiYWdlIGNvbnRhaW5pbmdcbmNpcmN1bGFyIHJlZmVyZW5jZXMuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGBgZ2NgYCBtb2R1bGUgZm9yXG5pbmZvcm1hdGlvbiBvbiBjb250cm9sbGluZyB0aGUgY29sbGVjdGlvbiBvZiBjeWNsaWMgZ2FyYmFnZS4gT3RoZXJcbmltcGxlbWVudGF0aW9ucyBhY3QgZGlmZmVyZW50bHkgYW5kIENQeXRob24gbWF5IGNoYW5nZS4gRG8gbm90IGRlcGVuZFxub24gaW1tZWRpYXRlIGZpbmFsaXphdGlvbiBvZiBvYmplY3RzIHdoZW4gdGhleSBiZWNvbWUgdW5yZWFjaGFibGUgKGV4OlxuYWx3YXlzIGNsb3NlIGZpbGVzKS5cblxuTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlIGltcGxlbWVudGF0aW9uXCdzIHRyYWNpbmcgb3IgZGVidWdnaW5nXG5mYWNpbGl0aWVzIG1heSBrZWVwIG9iamVjdHMgYWxpdmUgdGhhdCB3b3VsZCBub3JtYWxseSBiZSBjb2xsZWN0YWJsZS5cbkFsc28gbm90ZSB0aGF0IGNhdGNoaW5nIGFuIGV4Y2VwdGlvbiB3aXRoIGEgXCdgYHRyeWBgLi4uYGBleGNlcHRgYFwnXG5zdGF0ZW1lbnQgbWF5IGtlZXAgb2JqZWN0cyBhbGl2ZS5cblxuU29tZSBvYmplY3RzIGNvbnRhaW4gcmVmZXJlbmNlcyB0byAiZXh0ZXJuYWwiIHJlc291cmNlcyBzdWNoIGFzIG9wZW5cbmZpbGVzIG9yIHdpbmRvd3MuICBJdCBpcyB1bmRlcnN0b29kIHRoYXQgdGhlc2UgcmVzb3VyY2VzIGFyZSBmcmVlZFxud2hlbiB0aGUgb2JqZWN0IGlzIGdhcmJhZ2UtY29sbGVjdGVkLCBidXQgc2luY2UgZ2FyYmFnZSBjb2xsZWN0aW9uIGlzXG5ub3QgZ3VhcmFudGVlZCB0byBoYXBwZW4sIHN1Y2ggb2JqZWN0cyBhbHNvIHByb3ZpZGUgYW4gZXhwbGljaXQgd2F5IHRvXG5yZWxlYXNlIHRoZSBleHRlcm5hbCByZXNvdXJjZSwgdXN1YWxseSBhIGBgY2xvc2UoKWBgIG1ldGhvZC4gUHJvZ3JhbXNcbmFyZSBzdHJvbmdseSByZWNvbW1lbmRlZCB0byBleHBsaWNpdGx5IGNsb3NlIHN1Y2ggb2JqZWN0cy4gIFRoZVxuXCdgYHRyeWBgLi4uYGBmaW5hbGx5YGBcJyBzdGF0ZW1lbnQgYW5kIHRoZSBcJ2Bgd2l0aGBgXCcgc3RhdGVtZW50IHByb3ZpZGVcbmNvbnZlbmllbnQgd2F5cyB0byBkbyB0aGlzLlxuXG5Tb21lIG9iamVjdHMgY29udGFpbiByZWZlcmVuY2VzIHRvIG90aGVyIG9iamVjdHM7IHRoZXNlIGFyZSBjYWxsZWRcbipjb250YWluZXJzKi4gRXhhbXBsZXMgb2YgY29udGFpbmVycyBhcmUgdHVwbGVzLCBsaXN0cyBhbmRcbmRpY3Rpb25hcmllcy4gIFRoZSByZWZlcmVuY2VzIGFyZSBwYXJ0IG9mIGEgY29udGFpbmVyXCdzIHZhbHVlLiAgSW5cbm1vc3QgY2FzZXMsIHdoZW4gd2UgdGFsayBhYm91dCB0aGUgdmFsdWUgb2YgYSBjb250YWluZXIsIHdlIGltcGx5IHRoZVxudmFsdWVzLCBub3QgdGhlIGlkZW50aXRpZXMgb2YgdGhlIGNvbnRhaW5lZCBvYmplY3RzOyBob3dldmVyLCB3aGVuIHdlXG50YWxrIGFib3V0IHRoZSBtdXRhYmlsaXR5IG9mIGEgY29udGFpbmVyLCBvbmx5IHRoZSBpZGVudGl0aWVzIG9mIHRoZVxuaW1tZWRpYXRlbHkgY29udGFpbmVkIG9iamVjdHMgYXJlIGltcGxpZWQuICBTbywgaWYgYW4gaW1tdXRhYmxlXG5jb250YWluZXIgKGxpa2UgYSB0dXBsZSkgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gYSBtdXRhYmxlIG9iamVjdCwgaXRzXG52YWx1ZSBjaGFuZ2VzIGlmIHRoYXQgbXV0YWJsZSBvYmplY3QgaXMgY2hhbmdlZC5cblxuVHlwZXMgYWZmZWN0IGFsbW9zdCBhbGwgYXNwZWN0cyBvZiBvYmplY3QgYmVoYXZpb3IuICBFdmVuIHRoZVxuaW1wb3J0YW5jZSBvZiBvYmplY3QgaWRlbnRpdHkgaXMgYWZmZWN0ZWQgaW4gc29tZSBzZW5zZTogZm9yIGltbXV0YWJsZVxudHlwZXMsIG9wZXJhdGlvbnMgdGhhdCBjb21wdXRlIG5ldyB2YWx1ZXMgbWF5IGFjdHVhbGx5IHJldHVybiBhXG5yZWZlcmVuY2UgdG8gYW55IGV4aXN0aW5nIG9iamVjdCB3aXRoIHRoZSBzYW1lIHR5cGUgYW5kIHZhbHVlLCB3aGlsZVxuZm9yIG11dGFibGUgb2JqZWN0cyB0aGlzIGlzIG5vdCBhbGxvd2VkLiAgRS5nLiwgYWZ0ZXIgYGBhID0gMTsgYiA9XG4xYGAsIGBgYWBgIGFuZCBgYGJgYCBtYXkgb3IgbWF5IG5vdCByZWZlciB0byB0aGUgc2FtZSBvYmplY3Qgd2l0aCB0aGVcbnZhbHVlIG9uZSwgZGVwZW5kaW5nIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiwgYnV0IGFmdGVyIGBgYyA9IFtdOyBkID1cbltdYGAsIGBgY2BgIGFuZCBgYGRgYCBhcmUgZ3VhcmFudGVlZCB0byByZWZlciB0byB0d28gZGlmZmVyZW50LFxudW5pcXVlLCBuZXdseSBjcmVhdGVkIGVtcHR5IGxpc3RzLiAoTm90ZSB0aGF0IGBgYyA9IGQgPSBbXWBgIGFzc2lnbnNcbnRoZSBzYW1lIG9iamVjdCB0byBib3RoIGBgY2BgIGFuZCBgYGRgYC4pXG4nLAorICdvYmplY3RzJzogJ1xuT2JqZWN0cywgdmFsdWVzIGFuZCB0eXBlc1xuKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4qT2JqZWN0cyogYXJlIFB5dGhvblwncyBhYnN0cmFjdGlvbiBmb3IgZGF0YS4gIEFsbCBkYXRhIGluIGEgUHl0aG9uXG5wcm9ncmFtIGlzIHJlcHJlc2VudGVkIGJ5IG9iamVjdHMgb3IgYnkgcmVsYXRpb25zIGJldHdlZW4gb2JqZWN0cy4gKEluXG5hIHNlbnNlLCBhbmQgaW4gY29uZm9ybWFuY2UgdG8gVm9uIE5ldW1hbm5cJ3MgbW9kZWwgb2YgYSAic3RvcmVkXG5wcm9ncmFtIGNvbXB1dGVyLCIgY29kZSBpcyBhbHNvIHJlcHJlc2VudGVkIGJ5IG9iamVjdHMuKVxuXG5FdmVyeSBvYmplY3QgaGFzIGFuIGlkZW50aXR5LCBhIHR5cGUgYW5kIGEgdmFsdWUuICBBbiBvYmplY3RcJ3NcbippZGVudGl0eSogbmV2ZXIgY2hhbmdlcyBvbmNlIGl0IGhhcyBiZWVuIGNyZWF0ZWQ7IHlvdSBtYXkgdGhpbmsgb2YgaXRcbmFzIHRoZSBvYmplY3RcJ3MgYWRkcmVzcyBpbiBtZW1vcnkuICBUaGUgXCdgYGlzYGBcJyBvcGVyYXRvciBjb21wYXJlcyB0aGVcbmlkZW50aXR5IG9mIHR3byBvYmplY3RzOyB0aGUgYGBpZCgpYGAgZnVuY3Rpb24gcmV0dXJucyBhbiBpbnRlZ2VyXG5yZXByZXNlbnRpbmcgaXRzIGlkZW50aXR5LlxuXG4qKkNQeXRob24gaW1wbGVtZW50YXRpb24gZGV0YWlsOioqIEZvciBDUHl0aG9uLCBgYGlkKHgpYGAgaXMgdGhlXG5tZW1vcnkgYWRkcmVzcyB3aGVyZSBgYHhgYCBpcyBzdG9yZWQuXG5cbkFuIG9iamVjdFwncyB0eXBlIGRldGVybWluZXMgdGhlIG9wZXJhdGlvbnMgdGhhdCB0aGUgb2JqZWN0IHN1cHBvcnRzXG4oZS5nLiwgImRvZXMgaXQgaGF2ZSBhIGxlbmd0aD8iKSBhbmQgYWxzbyBkZWZpbmVzIHRoZSBwb3NzaWJsZSB2YWx1ZXNcbmZvciBvYmplY3RzIG9mIHRoYXQgdHlwZS4gIFRoZSBgYHR5cGUoKWBgIGZ1bmN0aW9uIHJldHVybnMgYW4gb2JqZWN0XCdzXG50eXBlICh3aGljaCBpcyBhbiBvYmplY3QgaXRzZWxmKS4gIExpa2UgaXRzIGlkZW50aXR5LCBhbiBvYmplY3RcJ3Ncbip0eXBlKiBpcyBhbHNvIHVuY2hhbmdlYWJsZS4gWzFdXG5cblRoZSAqdmFsdWUqIG9mIHNvbWUgb2JqZWN0cyBjYW4gY2hhbmdlLiAgT2JqZWN0cyB3aG9zZSB2YWx1ZSBjYW5cbmNoYW5nZSBhcmUgc2FpZCB0byBiZSAqbXV0YWJsZSo7IG9iamVjdHMgd2hvc2UgdmFsdWUgaXMgdW5jaGFuZ2VhYmxlXG5vbmNlIHRoZXkgYXJlIGNyZWF0ZWQgYXJlIGNhbGxlZCAqaW1tdXRhYmxlKi4gKFRoZSB2YWx1ZSBvZiBhblxuaW1tdXRhYmxlIGNvbnRhaW5lciBvYmplY3QgdGhhdCBjb250YWlucyBhIHJlZmVyZW5jZSB0byBhIG11dGFibGVcbm9iamVjdCBjYW4gY2hhbmdlIHdoZW4gdGhlIGxhdHRlclwncyB2YWx1ZSBpcyBjaGFuZ2VkOyBob3dldmVyIHRoZVxuY29udGFpbmVyIGlzIHN0aWxsIGNvbnNpZGVyZWQgaW1tdXRhYmxlLCBiZWNhdXNlIHRoZSBjb2xsZWN0aW9uIG9mXG5vYmplY3RzIGl0IGNvbnRhaW5zIGNhbm5vdCBiZSBjaGFuZ2VkLiAgU28sIGltbXV0YWJpbGl0eSBpcyBub3RcbnN0cmljdGx5IHRoZSBzYW1lIGFzIGhhdmluZyBhbiB1bmNoYW5nZWFibGUgdmFsdWUsIGl0IGlzIG1vcmUgc3VidGxlLilcbkFuIG9iamVjdFwncyBtdXRhYmlsaXR5IGlzIGRldGVybWluZWQgYnkgaXRzIHR5cGU7IGZvciBpbnN0YW5jZSxcbm51bWJlcnMsIHN0cmluZ3MgYW5kIHR1cGxlcyBhcmUgaW1tdXRhYmxlLCB3aGlsZSBkaWN0aW9uYXJpZXMgYW5kXG5saXN0cyBhcmUgbXV0YWJsZS5cblxuT2JqZWN0cyBhcmUgbmV2ZXIgZXhwbGljaXRseSBkZXN0cm95ZWQ7IGhvd2V2ZXIsIHdoZW4gdGhleSBiZWNvbWVcbnVucmVhY2hhYmxlIHRoZXkgbWF5IGJlIGdhcmJhZ2UtY29sbGVjdGVkLiAgQW4gaW1wbGVtZW50YXRpb24gaXNcbmFsbG93ZWQgdG8gcG9zdHBvbmUgZ2FyYmFnZSBjb2xsZWN0aW9uIG9yIG9taXQgaXQgYWx0b2dldGhlciAtLS0gaXQgaXNcbmEgbWF0dGVyIG9mIGltcGxlbWVudGF0aW9uIHF1YWxpdHkgaG93IGdhcmJhZ2UgY29sbGVjdGlvbiBpc1xuaW1wbGVtZW50ZWQsIGFzIGxvbmcgYXMgbm8gb2JqZWN0cyBhcmUgY29sbGVjdGVkIHRoYXQgYXJlIHN0aWxsXG5yZWFjaGFibGUuXG5cbioqQ1B5dGhvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWw6KiogQ1B5dGhvbiBjdXJyZW50bHkgdXNlcyBhIHJlZmVyZW5jZS1cbmNvdW50aW5nIHNjaGVtZSB3aXRoIChvcHRpb25hbCkgZGVsYXllZCBkZXRlY3Rpb24gb2YgY3ljbGljYWxseSBsaW5rZWRcbmdhcmJhZ2UsIHdoaWNoIGNvbGxlY3RzIG1vc3Qgb2JqZWN0cyBhcyBzb29uIGFzIHRoZXkgYmVjb21lXG51bnJlYWNoYWJsZSwgYnV0IGlzIG5vdCBndWFyYW50ZWVkIHRvIGNvbGxlY3QgZ2FyYmFnZSBjb250YWluaW5nXG5jaXJjdWxhciByZWZlcmVuY2VzLiAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBgYGdjYGAgbW9kdWxlIGZvclxuaW5mb3JtYXRpb24gb24gY29udHJvbGxpbmcgdGhlIGNvbGxlY3Rpb24gb2YgY3ljbGljIGdhcmJhZ2UuIE90aGVyXG5pbXBsZW1lbnRhdGlvbnMgYWN0IGRpZmZlcmVudGx5IGFuZCBDUHl0aG9uIG1heSBjaGFuZ2UuIERvIG5vdCBkZXBlbmRcbm9uIGltbWVkaWF0ZSBmaW5hbGl6YXRpb24gb2Ygb2JqZWN0cyB3aGVuIHRoZXkgYmVjb21lIHVucmVhY2hhYmxlIChleDpcbmFsd2F5cyBjbG9zZSBmaWxlcykuXG5cbk5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoZSBpbXBsZW1lbnRhdGlvblwncyB0cmFjaW5nIG9yIGRlYnVnZ2luZ1xuZmFjaWxpdGllcyBtYXkga2VlcCBvYmplY3RzIGFsaXZlIHRoYXQgd291bGQgbm9ybWFsbHkgYmUgY29sbGVjdGFibGUuXG5BbHNvIG5vdGUgdGhhdCBjYXRjaGluZyBhbiBleGNlcHRpb24gd2l0aCBhIFwnYGB0cnlgYC4uLmBgZXhjZXB0YGBcJ1xuc3RhdGVtZW50IG1heSBrZWVwIG9iamVjdHMgYWxpdmUuXG5cblNvbWUgb2JqZWN0cyBjb250YWluIHJlZmVyZW5jZXMgdG8gImV4dGVybmFsIiByZXNvdXJjZXMgc3VjaCBhcyBvcGVuXG5maWxlcyBvciB3aW5kb3dzLiAgSXQgaXMgdW5kZXJzdG9vZCB0aGF0IHRoZXNlIHJlc291cmNlcyBhcmUgZnJlZWRcbndoZW4gdGhlIG9iamVjdCBpcyBnYXJiYWdlLWNvbGxlY3RlZCwgYnV0IHNpbmNlIGdhcmJhZ2UgY29sbGVjdGlvbiBpc1xubm90IGd1YXJhbnRlZWQgdG8gaGFwcGVuLCBzdWNoIG9iamVjdHMgYWxzbyBwcm92aWRlIGFuIGV4cGxpY2l0IHdheSB0b1xucmVsZWFzZSB0aGUgZXh0ZXJuYWwgcmVzb3VyY2UsIHVzdWFsbHkgYSBgYGNsb3NlKClgYCBtZXRob2QuIFByb2dyYW1zXG5hcmUgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gZXhwbGljaXRseSBjbG9zZSBzdWNoIG9iamVjdHMuICBUaGVcblwnYGB0cnlgYC4uLmBgZmluYWxseWBgXCcgc3RhdGVtZW50IGFuZCB0aGUgXCdgYHdpdGhgYFwnIHN0YXRlbWVudCBwcm92aWRlXG5jb252ZW5pZW50IHdheXMgdG8gZG8gdGhpcy5cblxuU29tZSBvYmplY3RzIGNvbnRhaW4gcmVmZXJlbmNlcyB0byBvdGhlciBvYmplY3RzOyB0aGVzZSBhcmUgY2FsbGVkXG4qY29udGFpbmVycyouIEV4YW1wbGVzIG9mIGNvbnRhaW5lcnMgYXJlIHR1cGxlcywgbGlzdHMgYW5kXG5kaWN0aW9uYXJpZXMuICBUaGUgcmVmZXJlbmNlcyBhcmUgcGFydCBvZiBhIGNvbnRhaW5lclwncyB2YWx1ZS4gIEluXG5tb3N0IGNhc2VzLCB3aGVuIHdlIHRhbGsgYWJvdXQgdGhlIHZhbHVlIG9mIGEgY29udGFpbmVyLCB3ZSBpbXBseSB0aGVcbnZhbHVlcywgbm90IHRoZSBpZGVudGl0aWVzIG9mIHRoZSBjb250YWluZWQgb2JqZWN0czsgaG93ZXZlciwgd2hlbiB3ZVxudGFsayBhYm91dCB0aGUgbXV0YWJpbGl0eSBvZiBhIGNvbnRhaW5lciwgb25seSB0aGUgaWRlbnRpdGllcyBvZiB0aGVcbmltbWVkaWF0ZWx5IGNvbnRhaW5lZCBvYmplY3RzIGFyZSBpbXBsaWVkLiAgU28sIGlmIGFuIGltbXV0YWJsZVxuY29udGFpbmVyIChsaWtlIGEgdHVwbGUpIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIGEgbXV0YWJsZSBvYmplY3QsIGl0c1xudmFsdWUgY2hhbmdlcyBpZiB0aGF0IG11dGFibGUgb2JqZWN0IGlzIGNoYW5nZWQuXG5cblR5cGVzIGFmZmVjdCBhbG1vc3QgYWxsIGFzcGVjdHMgb2Ygb2JqZWN0IGJlaGF2aW9yLiAgRXZlbiB0aGVcbmltcG9ydGFuY2Ugb2Ygb2JqZWN0IGlkZW50aXR5IGlzIGFmZmVjdGVkIGluIHNvbWUgc2Vuc2U6IGZvciBpbW11dGFibGVcbnR5cGVzLCBvcGVyYXRpb25zIHRoYXQgY29tcHV0ZSBuZXcgdmFsdWVzIG1heSBhY3R1YWxseSByZXR1cm4gYVxucmVmZXJlbmNlIHRvIGFueSBleGlzdGluZyBvYmplY3Qgd2l0aCB0aGUgc2FtZSB0eXBlIGFuZCB2YWx1ZSwgd2hpbGVcbmZvciBtdXRhYmxlIG9iamVjdHMgdGhpcyBpcyBub3QgYWxsb3dlZC4gIEUuZy4sIGFmdGVyIGBgYSA9IDE7IGIgPVxuMWBgLCBgYGFgYCBhbmQgYGBiYGAgbWF5IG9yIG1heSBub3QgcmVmZXIgdG8gdGhlIHNhbWUgb2JqZWN0IHdpdGggdGhlXG52YWx1ZSBvbmUsIGRlcGVuZGluZyBvbiB0aGUgaW1wbGVtZW50YXRpb24sIGJ1dCBhZnRlciBgYGMgPSBbXTsgZCA9XG5bXWBgLCBgYGNgYCBhbmQgYGBkYGAgYXJlIGd1YXJhbnRlZWQgdG8gcmVmZXIgdG8gdHdvIGRpZmZlcmVudCxcbnVuaXF1ZSwgbmV3bHkgY3JlYXRlZCBlbXB0eSBsaXN0cy4gKE5vdGUgdGhhdCBgYGMgPSBkID0gW11gYCBhc3NpZ25zXG50aGUgc2FtZSBvYmplY3QgdG8gYm90aCBgYGNgYCBhbmQgYGBkYGAuKVxuJywKICAnb3BlcmF0b3Itc3VtbWFyeSc6ICdcblN1bW1hcnlcbioqKioqKipcblxuVGhlIGZvbGxvd2luZyB0YWJsZSBzdW1tYXJpemVzIHRoZSBvcGVyYXRvciBwcmVjZWRlbmNlcyBpbiBQeXRob24sXG5mcm9tIGxvd2VzdCBwcmVjZWRlbmNlIChsZWFzdCBiaW5kaW5nKSB0byBoaWdoZXN0IHByZWNlZGVuY2UgKG1vc3RcbmJpbmRpbmcpLiAgT3BlcmF0b3JzIGluIHRoZSBzYW1lIGJveCBoYXZlIHRoZSBzYW1lIHByZWNlZGVuY2UuICBVbmxlc3NcbnRoZSBzeW50YXggaXMgZXhwbGljaXRseSBnaXZlbiwgb3BlcmF0b3JzIGFyZSBiaW5hcnkuICBPcGVyYXRvcnMgaW5cbnRoZSBzYW1lIGJveCBncm91cCBsZWZ0IHRvIHJpZ2h0IChleGNlcHQgZm9yIGNvbXBhcmlzb25zLCBpbmNsdWRpbmdcbnRlc3RzLCB3aGljaCBhbGwgaGF2ZSB0aGUgc2FtZSBwcmVjZWRlbmNlIGFuZCBjaGFpbiBmcm9tIGxlZnQgdG8gcmlnaHRcbi0tLSBzZWUgc2VjdGlvbiAqQ29tcGFyaXNvbnMqIC0tLSBhbmQgZXhwb25lbnRpYXRpb24sIHdoaWNoIGdyb3Vwc1xuZnJvbSByaWdodCB0byBsZWZ0KS5cblxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBPcGVyYXRvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09K1xufCBgYGxhbWJkYWBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IExhbWJkYSBleHByZXNzaW9uICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYGlmYGAgLS0gYGBlbHNlYGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENvbmRpdGlvbmFsIGV4cHJlc3Npb24gICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYG9yYGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJvb2xlYW4gT1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYGFuZGBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJvb2xlYW4gQU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYG5vdGBgICp4KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJvb2xlYW4gTk9UICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYGluYGAsIGBgbm90YGAgYGBpbmBgLCBgYGlzYGAsIGBgaXMgbm90YGAsICAgICB8IENvbXBhcmlzb25zLCBpbmNsdWRpbmcgbWVtYmVyc2hpcCAgICAgfFxufCBgYDxgYCwgYGA8PWBgLCBgYD5gYCwgYGA+PWBgLCBgYCE9YGAsIGBgPT1gYCAgICB8IHRlc3RzIGFuZCBpZGVudGl0eSB0ZXN0cywgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHxgYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJpdHdpc2UgT1IgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYF5gYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJpdHdpc2UgWE9SICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYCZgYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEJpdHdpc2UgQU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYDw8YGAsIGBgPj5gYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFNoaWZ0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYCtgYCwgYGAtYGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEFkZGl0aW9uIGFuZCBzdWJ0cmFjdGlvbiAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYCpgYCwgYGAvYGAsIGBgLy9gYCwgYGAlYGAgICAgICAgICAgICAgICAgICAgICB8IE11bHRpcGxpY2F0aW9uLCBkaXZpc2lvbiwgcmVtYWluZGVyICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFs1XSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYCt4YGAsIGBgLXhgYCwgYGB+eGBgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFBvc2l0aXZlLCBuZWdhdGl2ZSwgYml0d2lzZSBOT1QgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYCoqYGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IEV4cG9uZW50aWF0aW9uIFs2XSAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHhbaW5kZXhdYGAsIGBgeFtpbmRleDppbmRleF1gYCwgICAgICAgICAgICAgICB8IFN1YnNjcmlwdGlvbiwgc2xpY2luZywgY2FsbCwgICAgICAgICAgfFxufCBgYHgoYXJndW1lbnRzLi4uKWBgLCBgYHguYXR0cmlidXRlYGAgICAgICAgICAgICB8IGF0dHJpYnV0ZSByZWZlcmVuY2UgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYChleHByZXNzaW9ucy4uLilgYCwgYGBbZXhwcmVzc2lvbnMuLi5dYGAsICAgICB8IEJpbmRpbmcgb3IgdHVwbGUgZGlzcGxheSwgbGlzdCAgICAgICAgfFxufCBgYHtrZXk6ZGF0dW0uLi59YGAsIGBge2V4cHJlc3Npb25zLi4ufWBgICAgICAgICB8IGRpc3BsYXksIGRpY3Rpb25hcnkgZGlzcGxheSwgc2V0ICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGRpc3BsYXkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuXG4tWyBGb290bm90ZXMgXS1cblxuWzFdIFdoaWxlIGBgYWJzKHgleSkgPCBhYnMoeSlgYCBpcyB0cnVlIG1hdGhlbWF0aWNhbGx5LCBmb3IgZmxvYXRzIGl0XG4gICAgbWF5IG5vdCBiZSB0cnVlIG51bWVyaWNhbGx5IGR1ZSB0byByb3VuZG9mZi4gIEZvciBleGFtcGxlLCBhbmRcbiAgICBhc3N1bWluZyBhIHBsYXRmb3JtIG9uIHdoaWNoIGEgUHl0aG9uIGZsb2F0IGlzIGFuIElFRUUgNzU0IGRvdWJsZS1cbiAgICBwcmVjaXNpb24gbnVtYmVyLCBpbiBvcmRlciB0aGF0IGBgLTFlLTEwMCAlIDFlMTAwYGAgaGF2ZSB0aGUgc2FtZVxuICAgIHNpZ24gYXMgYGAxZTEwMGBgLCB0aGUgY29tcHV0ZWQgcmVzdWx0IGlzIGBgLTFlLTEwMCArIDFlMTAwYGAsXG4gICAgd2hpY2ggaXMgbnVtZXJpY2FsbHkgZXhhY3RseSBlcXVhbCB0byBgYDFlMTAwYGAuICBUaGUgZnVuY3Rpb25cbiAgICBgYG1hdGguZm1vZCgpYGAgcmV0dXJucyBhIHJlc3VsdCB3aG9zZSBzaWduIG1hdGNoZXMgdGhlIHNpZ24gb2ZcbiAgICB0aGUgZmlyc3QgYXJndW1lbnQgaW5zdGVhZCwgYW5kIHNvIHJldHVybnMgYGAtMWUtMTAwYGAgaW4gdGhpc1xuICAgIGNhc2UuIFdoaWNoIGFwcHJvYWNoIGlzIG1vcmUgYXBwcm9wcmlhdGUgZGVwZW5kcyBvbiB0aGVcbiAgICBhcHBsaWNhdGlvbi5cblxuWzJdIElmIHggaXMgdmVyeSBjbG9zZSB0byBhbiBleGFjdCBpbnRlZ2VyIG11bHRpcGxlIG9mIHksIGl0XCdzXG4gICAgcG9zc2libGUgZm9yIGBgeC8veWBgIHRvIGJlIG9uZSBsYXJnZXIgdGhhbiBgYCh4LXgleSkvL3lgYCBkdWUgdG9cbiAgICByb3VuZGluZy4gIEluIHN1Y2ggY2FzZXMsIFB5dGhvbiByZXR1cm5zIHRoZSBsYXR0ZXIgcmVzdWx0LCBpblxuICAgIG9yZGVyIHRvIHByZXNlcnZlIHRoYXQgYGBkaXZtb2QoeCx5KVswXSAqIHkgKyB4ICUgeWBgIGJlIHZlcnlcbiAgICBjbG9zZSB0byBgYHhgYC5cblxuWzNdIFdoaWxlIGNvbXBhcmlzb25zIGJldHdlZW4gc3RyaW5ncyBtYWtlIHNlbnNlIGF0IHRoZSBieXRlIGxldmVsLFxuICAgIHRoZXkgbWF5IGJlIGNvdW50ZXItaW50dWl0aXZlIHRvIHVzZXJzLiAgRm9yIGV4YW1wbGUsIHRoZSBzdHJpbmdzXG4gICAgYGAiXFx1MDBDNyJgYCBhbmQgYGAiXFx1MDMyN1xcdTAwNDMiYGAgY29tcGFyZSBkaWZmZXJlbnRseSwgZXZlblxuICAgIHRob3VnaCB0aGV5IGJvdGggcmVwcmVzZW50IHRoZSBzYW1lIHVuaWNvZGUgY2hhcmFjdGVyIChMQVRJTlxuICAgIENBUElUQUwgTEVUVEVSIEMgV0lUSCBDRURJTExBKS4gIFRvIGNvbXBhcmUgc3RyaW5ncyBpbiBhIGh1bWFuXG4gICAgcmVjb2duaXphYmxlIHdheSwgY29tcGFyZSB1c2luZyBgYHVuaWNvZGVkYXRhLm5vcm1hbGl6ZSgpYGAuXG5cbls0XSBEdWUgdG8gYXV0b21hdGljIGdhcmJhZ2UtY29sbGVjdGlvbiwgZnJlZSBsaXN0cywgYW5kIHRoZSBkeW5hbWljXG4gICAgbmF0dXJlIG9mIGRlc2NyaXB0b3JzLCB5b3UgbWF5IG5vdGljZSBzZWVtaW5nbHkgdW51c3VhbCBiZWhhdmlvdXJcbiAgICBpbiBjZXJ0YWluIHVzZXMgb2YgdGhlIGBgaXNgYCBvcGVyYXRvciwgbGlrZSB0aG9zZSBpbnZvbHZpbmdcbiAgICBjb21wYXJpc29ucyBiZXR3ZWVuIGluc3RhbmNlIG1ldGhvZHMsIG9yIGNvbnN0YW50cy4gIENoZWNrIHRoZWlyXG4gICAgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvLlxuXG5bNV0gVGhlIGBgJWBgIG9wZXJhdG9yIGlzIGFsc28gdXNlZCBmb3Igc3RyaW5nIGZvcm1hdHRpbmc7IHRoZSBzYW1lXG4gICAgcHJlY2VkZW5jZSBhcHBsaWVzLlxuXG5bNl0gVGhlIHBvd2VyIG9wZXJhdG9yIGBgKipgYCBiaW5kcyBsZXNzIHRpZ2h0bHkgdGhhbiBhbiBhcml0aG1ldGljIG9yXG4gICAgYml0d2lzZSB1bmFyeSBvcGVyYXRvciBvbiBpdHMgcmlnaHQsIHRoYXQgaXMsIGBgMioqLTFgYCBpc1xuICAgIGBgMC41YGAuXG4nLAogICdwYXNzJzogJ1xuVGhlIGBgcGFzc2BgIHN0YXRlbWVudFxuKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICBwYXNzX3N0bXQgOjo9ICJwYXNzIlxuXG5gYHBhc3NgYCBpcyBhIG51bGwgb3BlcmF0aW9uIC0tLSB3aGVuIGl0IGlzIGV4ZWN1dGVkLCBub3RoaW5nIGhhcHBlbnMuXG5JdCBpcyB1c2VmdWwgYXMgYSBwbGFjZWhvbGRlciB3aGVuIGEgc3RhdGVtZW50IGlzIHJlcXVpcmVkXG5zeW50YWN0aWNhbGx5LCBidXQgbm8gY29kZSBuZWVkcyB0byBiZSBleGVjdXRlZCwgZm9yIGV4YW1wbGU6XG5cbiAgIGRlZiBmKGFyZyk6IHBhc3MgICAgIyBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3RoaW5nICh5ZXQpXG5cbiAgIGNsYXNzIEM6IHBhc3MgICAgICAgIyBhIGNsYXNzIHdpdGggbm8gbWV0aG9kcyAoeWV0KVxuJywKICAncG93ZXInOiAnXG5UaGUgcG93ZXIgb3BlcmF0b3JcbioqKioqKioqKioqKioqKioqKlxuXG5UaGUgcG93ZXIgb3BlcmF0b3IgYmluZHMgbW9yZSB0aWdodGx5IHRoYW4gdW5hcnkgb3BlcmF0b3JzIG9uIGl0c1xubGVmdDsgaXQgYmluZHMgbGVzcyB0aWdodGx5IHRoYW4gdW5hcnkgb3BlcmF0b3JzIG9uIGl0cyByaWdodC4gIFRoZVxuc3ludGF4IGlzOlxuXG4gICBwb3dlciA6Oj0gcHJpbWFyeSBbIioqIiB1X2V4cHJdXG5cblRodXMsIGluIGFuIHVucGFyZW50aGVzaXplZCBzZXF1ZW5jZSBvZiBwb3dlciBhbmQgdW5hcnkgb3BlcmF0b3JzLCB0aGVcbm9wZXJhdG9ycyBhcmUgZXZhbHVhdGVkIGZyb20gcmlnaHQgdG8gbGVmdCAodGhpcyBkb2VzIG5vdCBjb25zdHJhaW5cbnRoZSBldmFsdWF0aW9uIG9yZGVyIGZvciB0aGUgb3BlcmFuZHMpOiBgYC0xKioyYGAgcmVzdWx0cyBpbiBgYC0xYGAuXG5cblRoZSBwb3dlciBvcGVyYXRvciBoYXMgdGhlIHNhbWUgc2VtYW50aWNzIGFzIHRoZSBidWlsdC1pbiBgYHBvdygpYGBcbmZ1bmN0aW9uLCB3aGVuIGNhbGxlZCB3aXRoIHR3byBhcmd1bWVudHM6IGl0IHlpZWxkcyBpdHMgbGVmdCBhcmd1bWVudFxucmFpc2VkIHRvIHRoZSBwb3dlciBvZiBpdHMgcmlnaHQgYXJndW1lbnQuICBUaGUgbnVtZXJpYyBhcmd1bWVudHMgYXJlXG5maXJzdCBjb252ZXJ0ZWQgdG8gYSBjb21tb24gdHlwZSwgYW5kIHRoZSByZXN1bHQgaXMgb2YgdGhhdCB0eXBlLlxuXG5Gb3IgaW50IG9wZXJhbmRzLCB0aGUgcmVzdWx0IGhhcyB0aGUgc2FtZSB0eXBlIGFzIHRoZSBvcGVyYW5kcyB1bmxlc3NcbnRoZSBzZWNvbmQgYXJndW1lbnQgaXMgbmVnYXRpdmU7IGluIHRoYXQgY2FzZSwgYWxsIGFyZ3VtZW50cyBhcmVcbmNvbnZlcnRlZCB0byBmbG9hdCBhbmQgYSBmbG9hdCByZXN1bHQgaXMgZGVsaXZlcmVkLiBGb3IgZXhhbXBsZSxcbmBgMTAqKjJgYCByZXR1cm5zIGBgMTAwYGAsIGJ1dCBgYDEwKiotMmBgIHJldHVybnMgYGAwLjAxYGAuXG5cblJhaXNpbmcgYGAwLjBgYCB0byBhIG5lZ2F0aXZlIHBvd2VyIHJlc3VsdHMgaW4gYVxuYGBaZXJvRGl2aXNpb25FcnJvcmBgLiBSYWlzaW5nIGEgbmVnYXRpdmUgbnVtYmVyIHRvIGEgZnJhY3Rpb25hbCBwb3dlclxucmVzdWx0cyBpbiBhIGBgY29tcGxleGBgIG51bWJlci4gKEluIGVhcmxpZXIgdmVyc2lvbnMgaXQgcmFpc2VkIGFcbmBgVmFsdWVFcnJvcmBgLilcbicsCiAgJ3JhaXNlJzogJ1xuVGhlIGBgcmFpc2VgYCBzdGF0ZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgIHJhaXNlX3N0bXQgOjo9ICJyYWlzZSIgW2V4cHJlc3Npb24gWyJmcm9tIiBleHByZXNzaW9uXV1cblxuSWYgbm8gZXhwcmVzc2lvbnMgYXJlIHByZXNlbnQsIGBgcmFpc2VgYCByZS1yYWlzZXMgdGhlIGxhc3QgZXhjZXB0aW9uXG50aGF0IHdhcyBhY3RpdmUgaW4gdGhlIGN1cnJlbnQgc2NvcGUuICBJZiBubyBleGNlcHRpb24gaXMgYWN0aXZlIGluXG50aGUgY3VycmVudCBzY29wZSwgYSBgYFJ1bnRpbWVFcnJvcmBgIGV4Y2VwdGlvbiBpcyByYWlzZWQgaW5kaWNhdGluZ1xudGhhdCB0aGlzIGlzIGFuIGVycm9yLlxuXG5PdGhlcndpc2UsIGBgcmFpc2VgYCBldmFsdWF0ZXMgdGhlIGZpcnN0IGV4cHJlc3Npb24gYXMgdGhlIGV4Y2VwdGlvblxub2JqZWN0LiAgSXQgbXVzdCBiZSBlaXRoZXIgYSBzdWJjbGFzcyBvciBhbiBpbnN0YW5jZSBvZlxuYGBCYXNlRXhjZXB0aW9uYGAuIElmIGl0IGlzIGEgY2xhc3MsIHRoZSBleGNlcHRpb24gaW5zdGFuY2Ugd2lsbCBiZVxub2J0YWluZWQgd2hlbiBuZWVkZWQgYnkgaW5zdGFudGlhdGluZyB0aGUgY2xhc3Mgd2l0aCBubyBhcmd1bWVudHMuXG5cblRoZSAqdHlwZSogb2YgdGhlIGV4Y2VwdGlvbiBpcyB0aGUgZXhjZXB0aW9uIGluc3RhbmNlXCdzIGNsYXNzLCB0aGVcbip2YWx1ZSogaXMgdGhlIGluc3RhbmNlIGl0c2VsZi5cblxuQSB0cmFjZWJhY2sgb2JqZWN0IGlzIG5vcm1hbGx5IGNyZWF0ZWQgYXV0b21hdGljYWxseSB3aGVuIGFuIGV4Y2VwdGlvblxuaXMgcmFpc2VkIGFuZCBhdHRhY2hlZCB0byBpdCBhcyB0aGUgYGBfX3RyYWNlYmFja19fYGAgYXR0cmlidXRlLCB3aGljaFxuaXMgd3JpdGFibGUuIFlvdSBjYW4gY3JlYXRlIGFuIGV4Y2VwdGlvbiBhbmQgc2V0IHlvdXIgb3duIHRyYWNlYmFjayBpblxub25lIHN0ZXAgdXNpbmcgdGhlIGBgd2l0aF90cmFjZWJhY2soKWBgIGV4Y2VwdGlvbiBtZXRob2QgKHdoaWNoXG5yZXR1cm5zIHRoZSBzYW1lIGV4Y2VwdGlvbiBpbnN0YW5jZSwgd2l0aCBpdHMgdHJhY2ViYWNrIHNldCB0byBpdHNcbmFyZ3VtZW50KSwgbGlrZSBzbzpcblxuICAgcmFpc2UgRXhjZXB0aW9uKCJmb28gb2NjdXJyZWQiKS53aXRoX3RyYWNlYmFjayh0cmFjZWJhY2tvYmopXG5cblRoZSBgYGZyb21gYCBjbGF1c2UgaXMgdXNlZCBmb3IgZXhjZXB0aW9uIGNoYWluaW5nOiBpZiBnaXZlbiwgdGhlXG5zZWNvbmQgKmV4cHJlc3Npb24qIG11c3QgYmUgYW5vdGhlciBleGNlcHRpb24gY2xhc3Mgb3IgaW5zdGFuY2UsIHdoaWNoXG53aWxsIHRoZW4gYmUgYXR0YWNoZWQgdG8gdGhlIHJhaXNlZCBleGNlcHRpb24gYXMgdGhlIGBgX19jYXVzZV9fYGBcbmF0dHJpYnV0ZSAod2hpY2ggaXMgd3JpdGFibGUpLiAgSWYgdGhlIHJhaXNlZCBleGNlcHRpb24gaXMgbm90XG5oYW5kbGVkLCBib3RoIGV4Y2VwdGlvbnMgd2lsbCBiZSBwcmludGVkOlxuXG4gICA+Pj4gdHJ5OlxuICAgLi4uICAgICBwcmludCgxIC8gMClcbiAgIC4uLiBleGNlcHQgRXhjZXB0aW9uIGFzIGV4YzpcbiAgIC4uLiAgICAgcmFpc2UgUnVudGltZUVycm9yKCJTb21ldGhpbmcgYmFkIGhhcHBlbmVkIikgZnJvbSBleGNcbiAgIC4uLlxuICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOlxuICAgICBGaWxlICI8c3RkaW4+IiwgbGluZSAyLCBpbiA8bW9kdWxlPlxuICAgWmVyb0RpdmlzaW9uRXJyb3I6IGludCBkaXZpc2lvbiBvciBtb2R1bG8gYnkgemVyb1xuXG4gICBUaGUgYWJvdmUgZXhjZXB0aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOlxuXG4gICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDQsIGluIDxtb2R1bGU+XG4gICBSdW50aW1lRXJyb3I6IFNvbWV0aGluZyBiYWQgaGFwcGVuZWRcblxuQSBzaW1pbGFyIG1lY2hhbmlzbSB3b3JrcyBpbXBsaWNpdGx5IGlmIGFuIGV4Y2VwdGlvbiBpcyByYWlzZWQgaW5zaWRlXG5hbiBleGNlcHRpb24gaGFuZGxlcjogdGhlIHByZXZpb3VzIGV4Y2VwdGlvbiBpcyB0aGVuIGF0dGFjaGVkIGFzIHRoZVxubmV3IGV4Y2VwdGlvblwncyBgYF9fY29udGV4dF9fYGAgYXR0cmlidXRlOlxuXG4gICA+Pj4gdHJ5OlxuICAgLi4uICAgICBwcmludCgxIC8gMClcbiAgIC4uLiBleGNlcHQ6XG4gICAuLi4gICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiU29tZXRoaW5nIGJhZCBoYXBwZW5lZCIpXG4gICAuLi5cbiAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTpcbiAgICAgRmlsZSAiPHN0ZGluPiIsIGxpbmUgMiwgaW4gPG1vZHVsZT5cbiAgIFplcm9EaXZpc2lvbkVycm9yOiBpbnQgZGl2aXNpb24gb3IgbW9kdWxvIGJ5IHplcm9cblxuICAgRHVyaW5nIGhhbmRsaW5nIG9mIHRoZSBhYm92ZSBleGNlcHRpb24sIGFub3RoZXIgZXhjZXB0aW9uIG9jY3VycmVkOlxuXG4gICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDQsIGluIDxtb2R1bGU+XG4gICBSdW50aW1lRXJyb3I6IFNvbWV0aGluZyBiYWQgaGFwcGVuZWRcblxuQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiBleGNlcHRpb25zIGNhbiBiZSBmb3VuZCBpbiBzZWN0aW9uXG4qRXhjZXB0aW9ucyosIGFuZCBpbmZvcm1hdGlvbiBhYm91dCBoYW5kbGluZyBleGNlcHRpb25zIGlzIGluIHNlY3Rpb25cbipUaGUgdHJ5IHN0YXRlbWVudCouXG4nLAotICdyZXR1cm4nOiAnXG5UaGUgYGByZXR1cm5gYCBzdGF0ZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICByZXR1cm5fc3RtdCA6Oj0gInJldHVybiIgW2V4cHJlc3Npb25fbGlzdF1cblxuYGByZXR1cm5gYCBtYXkgb25seSBvY2N1ciBzeW50YWN0aWNhbGx5IG5lc3RlZCBpbiBhIGZ1bmN0aW9uXG5kZWZpbml0aW9uLCBub3Qgd2l0aGluIGEgbmVzdGVkIGNsYXNzIGRlZmluaXRpb24uXG5cbklmIGFuIGV4cHJlc3Npb24gbGlzdCBpcyBwcmVzZW50LCBpdCBpcyBldmFsdWF0ZWQsIGVsc2UgYGBOb25lYGAgaXNcbnN1YnN0aXR1dGVkLlxuXG5gYHJldHVybmBgIGxlYXZlcyB0aGUgY3VycmVudCBmdW5jdGlvbiBjYWxsIHdpdGggdGhlIGV4cHJlc3Npb24gbGlzdFxuKG9yIGBgTm9uZWBgKSBhcyByZXR1cm4gdmFsdWUuXG5cbldoZW4gYGByZXR1cm5gYCBwYXNzZXMgY29udHJvbCBvdXQgb2YgYSBgYHRyeWBgIHN0YXRlbWVudCB3aXRoIGFcbmBgZmluYWxseWBgIGNsYXVzZSwgdGhhdCBgYGZpbmFsbHlgYCBjbGF1c2UgaXMgZXhlY3V0ZWQgYmVmb3JlIHJlYWxseVxubGVhdmluZyB0aGUgZnVuY3Rpb24uXG5cbkluIGEgZ2VuZXJhdG9yIGZ1bmN0aW9uLCB0aGUgYGByZXR1cm5gYCBzdGF0ZW1lbnQgaXMgbm90IGFsbG93ZWQgdG9cbmluY2x1ZGUgYW4gYGBleHByZXNzaW9uX2xpc3RgYC4gIEluIHRoYXQgY29udGV4dCwgYSBiYXJlIGBgcmV0dXJuYGBcbmluZGljYXRlcyB0aGF0IHRoZSBnZW5lcmF0b3IgaXMgZG9uZSBhbmQgd2lsbCBjYXVzZSBgYFN0b3BJdGVyYXRpb25gYFxudG8gYmUgcmFpc2VkLlxuJywKKyAncmV0dXJuJzogJ1xuVGhlIGBgcmV0dXJuYGAgc3RhdGVtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKipcblxuICAgcmV0dXJuX3N0bXQgOjo9ICJyZXR1cm4iIFtleHByZXNzaW9uX2xpc3RdXG5cbmBgcmV0dXJuYGAgbWF5IG9ubHkgb2NjdXIgc3ludGFjdGljYWxseSBuZXN0ZWQgaW4gYSBmdW5jdGlvblxuZGVmaW5pdGlvbiwgbm90IHdpdGhpbiBhIG5lc3RlZCBjbGFzcyBkZWZpbml0aW9uLlxuXG5JZiBhbiBleHByZXNzaW9uIGxpc3QgaXMgcHJlc2VudCwgaXQgaXMgZXZhbHVhdGVkLCBlbHNlIGBgTm9uZWBgIGlzXG5zdWJzdGl0dXRlZC5cblxuYGByZXR1cm5gYCBsZWF2ZXMgdGhlIGN1cnJlbnQgZnVuY3Rpb24gY2FsbCB3aXRoIHRoZSBleHByZXNzaW9uIGxpc3RcbihvciBgYE5vbmVgYCkgYXMgcmV0dXJuIHZhbHVlLlxuXG5XaGVuIGBgcmV0dXJuYGAgcGFzc2VzIGNvbnRyb2wgb3V0IG9mIGEgYGB0cnlgYCBzdGF0ZW1lbnQgd2l0aCBhXG5gYGZpbmFsbHlgYCBjbGF1c2UsIHRoYXQgYGBmaW5hbGx5YGAgY2xhdXNlIGlzIGV4ZWN1dGVkIGJlZm9yZSByZWFsbHlcbmxlYXZpbmcgdGhlIGZ1bmN0aW9uLlxuXG5JbiBhIGdlbmVyYXRvciBmdW5jdGlvbiwgdGhlIGBgcmV0dXJuYGAgc3RhdGVtZW50IGluZGljYXRlcyB0aGF0IHRoZVxuZ2VuZXJhdG9yIGlzIGRvbmUgYW5kIHdpbGwgY2F1c2UgYGBTdG9wSXRlcmF0aW9uYGAgdG8gYmUgcmFpc2VkLiBUaGVcbnJldHVybmVkIHZhbHVlIChpZiBhbnkpIGlzIHVzZWQgYXMgYW4gYXJndW1lbnQgdG8gY29uc3RydWN0XG5gYFN0b3BJdGVyYXRpb25gYCBhbmQgYmVjb21lcyB0aGUgYGBTdG9wSXRlcmF0aW9uLnZhbHVlYGAgYXR0cmlidXRlLlxuJywKICAnc2VxdWVuY2UtdHlwZXMnOiAiXG5FbXVsYXRpbmcgY29udGFpbmVyIHR5cGVzXG4qKioqKioqKioqKioqKioqKioqKioqKioqXG5cblRoZSBmb2xsb3dpbmcgbWV0aG9kcyBjYW4gYmUgZGVmaW5lZCB0byBpbXBsZW1lbnQgY29udGFpbmVyIG9iamVjdHMuXG5Db250YWluZXJzIHVzdWFsbHkgYXJlIHNlcXVlbmNlcyAoc3VjaCBhcyBsaXN0cyBvciB0dXBsZXMpIG9yIG1hcHBpbmdzXG4obGlrZSBkaWN0aW9uYXJpZXMpLCBidXQgY2FuIHJlcHJlc2VudCBvdGhlciBjb250YWluZXJzIGFzIHdlbGwuICBUaGVcbmZpcnN0IHNldCBvZiBtZXRob2RzIGlzIHVzZWQgZWl0aGVyIHRvIGVtdWxhdGUgYSBzZXF1ZW5jZSBvciB0b1xuZW11bGF0ZSBhIG1hcHBpbmc7IHRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgZm9yIGEgc2VxdWVuY2UsIHRoZVxuYWxsb3dhYmxlIGtleXMgc2hvdWxkIGJlIHRoZSBpbnRlZ2VycyAqayogZm9yIHdoaWNoIGBgMCA8PSBrIDwgTmBgXG53aGVyZSAqTiogaXMgdGhlIGxlbmd0aCBvZiB0aGUgc2VxdWVuY2UsIG9yIHNsaWNlIG9iamVjdHMsIHdoaWNoXG5kZWZpbmUgYSByYW5nZSBvZiBpdGVtcy4gIEl0IGlzIGFsc28gcmVjb21tZW5kZWQgdGhhdCBtYXBwaW5ncyBwcm92aWRlXG50aGUgbWV0aG9kcyBgYGtleXMoKWBgLCBgYHZhbHVlcygpYGAsIGBgaXRlbXMoKWBgLCBgYGdldCgpYGAsXG5gYGNsZWFyKClgYCwgYGBzZXRkZWZhdWx0KClgYCwgYGBwb3AoKWBgLCBgYHBvcGl0ZW0oKWBgLCBgYGNvcHkoKWBgLFxuYW5kIGBgdXBkYXRlKClgYCBiZWhhdmluZyBzaW1pbGFyIHRvIHRob3NlIGZvciBQeXRob24ncyBzdGFuZGFyZFxuZGljdGlvbmFyeSBvYmplY3RzLiAgVGhlIGBgY29sbGVjdGlvbnNgYCBtb2R1bGUgcHJvdmlkZXMgYVxuYGBNdXRhYmxlTWFwcGluZ2BgIGFic3RyYWN0IGJhc2UgY2xhc3MgdG8gaGVscCBjcmVhdGUgdGhvc2UgbWV0aG9kc1xuZnJvbSBhIGJhc2Ugc2V0IG9mIGBgX19nZXRpdGVtX18oKWBgLCBgYF9fc2V0aXRlbV9fKClgYCxcbmBgX19kZWxpdGVtX18oKWBgLCBhbmQgYGBrZXlzKClgYC4gTXV0YWJsZSBzZXF1ZW5jZXMgc2hvdWxkIHByb3ZpZGVcbm1ldGhvZHMgYGBhcHBlbmQoKWBgLCBgYGNvdW50KClgYCwgYGBpbmRleCgpYGAsIGBgZXh0ZW5kKClgYCxcbmBgaW5zZXJ0KClgYCwgYGBwb3AoKWBgLCBgYHJlbW92ZSgpYGAsIGBgcmV2ZXJzZSgpYGAgYW5kIGBgc29ydCgpYGAsXG5saWtlIFB5dGhvbiBzdGFuZGFyZCBsaXN0IG9iamVjdHMuICBGaW5hbGx5LCBzZXF1ZW5jZSB0eXBlcyBzaG91bGRcbmltcGxlbWVudCBhZGRpdGlvbiAobWVhbmluZyBjb25jYXRlbmF0aW9uKSBhbmQgbXVsdGlwbGljYXRpb24gKG1lYW5pbmdcbnJlcGV0aXRpb24pIGJ5IGRlZmluaW5nIHRoZSBtZXRob2RzIGBgX19hZGRfXygpYGAsIGBgX19yYWRkX18oKWBgLFxuYGBfX2lhZGRfXygpYGAsIGBgX19tdWxfXygpYGAsIGBgX19ybXVsX18oKWBgIGFuZCBgYF9faW11bF9fKClgYFxuZGVzY3JpYmVkIGJlbG93OyB0aGV5IHNob3VsZCBub3QgZGVmaW5lIG90aGVyIG51bWVyaWNhbCBvcGVyYXRvcnMuICBJdFxuaXMgcmVjb21tZW5kZWQgdGhhdCBib3RoIG1hcHBpbmdzIGFuZCBzZXF1ZW5jZXMgaW1wbGVtZW50IHRoZVxuYGBfX2NvbnRhaW5zX18oKWBgIG1ldGhvZCB0byBhbGxvdyBlZmZpY2llbnQgdXNlIG9mIHRoZSBgYGluYGBcbm9wZXJhdG9yOyBmb3IgbWFwcGluZ3MsIGBgaW5gYCBzaG91bGQgc2VhcmNoIHRoZSBtYXBwaW5nJ3Mga2V5czsgZm9yXG5zZXF1ZW5jZXMsIGl0IHNob3VsZCBzZWFyY2ggdGhyb3VnaCB0aGUgdmFsdWVzLiAgSXQgaXMgZnVydGhlclxucmVjb21tZW5kZWQgdGhhdCBib3RoIG1hcHBpbmdzIGFuZCBzZXF1ZW5jZXMgaW1wbGVtZW50IHRoZVxuYGBfX2l0ZXJfXygpYGAgbWV0aG9kIHRvIGFsbG93IGVmZmljaWVudCBpdGVyYXRpb24gdGhyb3VnaCB0aGVcbmNvbnRhaW5lcjsgZm9yIG1hcHBpbmdzLCBgYF9faXRlcl9fKClgYCBzaG91bGQgYmUgdGhlIHNhbWUgYXNcbmBga2V5cygpYGA7IGZvciBzZXF1ZW5jZXMsIGl0IHNob3VsZCBpdGVyYXRlIHRocm91Z2ggdGhlIHZhbHVlcy5cblxub2JqZWN0Ll9fbGVuX18oc2VsZilcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCB0aGUgYnVpbHQtaW4gZnVuY3Rpb24gYGBsZW4oKWBgLiAgU2hvdWxkIHJldHVyblxuICAgdGhlIGxlbmd0aCBvZiB0aGUgb2JqZWN0LCBhbiBpbnRlZ2VyIGBgPj1gYCAwLiAgQWxzbywgYW4gb2JqZWN0XG4gICB0aGF0IGRvZXNuJ3QgZGVmaW5lIGEgYGBfX2Jvb2xfXygpYGAgbWV0aG9kIGFuZCB3aG9zZSBgYF9fbGVuX18oKWBgXG4gICBtZXRob2QgcmV0dXJucyB6ZXJvIGlzIGNvbnNpZGVyZWQgdG8gYmUgZmFsc2UgaW4gYSBCb29sZWFuIGNvbnRleHQuXG5cbk5vdGU6IFNsaWNpbmcgaXMgZG9uZSBleGNsdXNpdmVseSB3aXRoIHRoZSBmb2xsb3dpbmcgdGhyZWUgbWV0aG9kcy4gIEFcbiAgY2FsbCBsaWtlXG5cbiAgICAgYVsxOjJdID0gYlxuXG4gIGlzIHRyYW5zbGF0ZWQgdG9cblxuICAgICBhW3NsaWNlKDEsIDIsIE5vbmUpXSA9IGJcblxuICBhbmQgc28gZm9ydGguICBNaXNzaW5nIHNsaWNlIGl0ZW1zIGFyZSBhbHdheXMgZmlsbGVkIGluIHdpdGhcbiAgYGBOb25lYGAuXG5cbm9iamVjdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkpXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgZXZhbHVhdGlvbiBvZiBgYHNlbGZba2V5XWBgLiBGb3Igc2VxdWVuY2VcbiAgIHR5cGVzLCB0aGUgYWNjZXB0ZWQga2V5cyBzaG91bGQgYmUgaW50ZWdlcnMgYW5kIHNsaWNlIG9iamVjdHMuXG4gICBOb3RlIHRoYXQgdGhlIHNwZWNpYWwgaW50ZXJwcmV0YXRpb24gb2YgbmVnYXRpdmUgaW5kZXhlcyAoaWYgdGhlXG4gICBjbGFzcyB3aXNoZXMgdG8gZW11bGF0ZSBhIHNlcXVlbmNlIHR5cGUpIGlzIHVwIHRvIHRoZVxuICAgYGBfX2dldGl0ZW1fXygpYGAgbWV0aG9kLiBJZiAqa2V5KiBpcyBvZiBhbiBpbmFwcHJvcHJpYXRlIHR5cGUsXG4gICBgYFR5cGVFcnJvcmBgIG1heSBiZSByYWlzZWQ7IGlmIG9mIGEgdmFsdWUgb3V0c2lkZSB0aGUgc2V0IG9mXG4gICBpbmRleGVzIGZvciB0aGUgc2VxdWVuY2UgKGFmdGVyIGFueSBzcGVjaWFsIGludGVycHJldGF0aW9uIG9mXG4gICBuZWdhdGl2ZSB2YWx1ZXMpLCBgYEluZGV4RXJyb3JgYCBzaG91bGQgYmUgcmFpc2VkLiBGb3IgbWFwcGluZ1xuICAgdHlwZXMsIGlmICprZXkqIGlzIG1pc3NpbmcgKG5vdCBpbiB0aGUgY29udGFpbmVyKSwgYGBLZXlFcnJvcmBgXG4gICBzaG91bGQgYmUgcmFpc2VkLlxuXG4gICBOb3RlOiBgYGZvcmBgIGxvb3BzIGV4cGVjdCB0aGF0IGFuIGBgSW5kZXhFcnJvcmBgIHdpbGwgYmUgcmFpc2VkIGZvclxuICAgICBpbGxlZ2FsIGluZGV4ZXMgdG8gYWxsb3cgcHJvcGVyIGRldGVjdGlvbiBvZiB0aGUgZW5kIG9mIHRoZVxuICAgICBzZXF1ZW5jZS5cblxub2JqZWN0Ll9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgYXNzaWdubWVudCB0byBgYHNlbGZba2V5XWBgLiAgU2FtZSBub3RlIGFzIGZvclxuICAgYGBfX2dldGl0ZW1fXygpYGAuICBUaGlzIHNob3VsZCBvbmx5IGJlIGltcGxlbWVudGVkIGZvciBtYXBwaW5ncyBpZlxuICAgdGhlIG9iamVjdHMgc3VwcG9ydCBjaGFuZ2VzIHRvIHRoZSB2YWx1ZXMgZm9yIGtleXMsIG9yIGlmIG5ldyBrZXlzXG4gICBjYW4gYmUgYWRkZWQsIG9yIGZvciBzZXF1ZW5jZXMgaWYgZWxlbWVudHMgY2FuIGJlIHJlcGxhY2VkLiAgVGhlXG4gICBzYW1lIGV4Y2VwdGlvbnMgc2hvdWxkIGJlIHJhaXNlZCBmb3IgaW1wcm9wZXIgKmtleSogdmFsdWVzIGFzIGZvclxuICAgdGhlIGBgX19nZXRpdGVtX18oKWBgIG1ldGhvZC5cblxub2JqZWN0Ll9fZGVsaXRlbV9fKHNlbGYsIGtleSlcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCBkZWxldGlvbiBvZiBgYHNlbGZba2V5XWBgLiAgU2FtZSBub3RlIGFzIGZvclxuICAgYGBfX2dldGl0ZW1fXygpYGAuICBUaGlzIHNob3VsZCBvbmx5IGJlIGltcGxlbWVudGVkIGZvciBtYXBwaW5ncyBpZlxuICAgdGhlIG9iamVjdHMgc3VwcG9ydCByZW1vdmFsIG9mIGtleXMsIG9yIGZvciBzZXF1ZW5jZXMgaWYgZWxlbWVudHNcbiAgIGNhbiBiZSByZW1vdmVkIGZyb20gdGhlIHNlcXVlbmNlLiAgVGhlIHNhbWUgZXhjZXB0aW9ucyBzaG91bGQgYmVcbiAgIHJhaXNlZCBmb3IgaW1wcm9wZXIgKmtleSogdmFsdWVzIGFzIGZvciB0aGUgYGBfX2dldGl0ZW1fXygpYGBcbiAgIG1ldGhvZC5cblxub2JqZWN0Ll9faXRlcl9fKHNlbGYpXG5cbiAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGFuIGl0ZXJhdG9yIGlzIHJlcXVpcmVkIGZvciBhIGNvbnRhaW5lci5cbiAgIFRoaXMgbWV0aG9kIHNob3VsZCByZXR1cm4gYSBuZXcgaXRlcmF0b3Igb2JqZWN0IHRoYXQgY2FuIGl0ZXJhdGVcbiAgIG92ZXIgYWxsIHRoZSBvYmplY3RzIGluIHRoZSBjb250YWluZXIuICBGb3IgbWFwcGluZ3MsIGl0IHNob3VsZFxuICAgaXRlcmF0ZSBvdmVyIHRoZSBrZXlzIG9mIHRoZSBjb250YWluZXIsIGFuZCBzaG91bGQgYWxzbyBiZSBtYWRlXG4gICBhdmFpbGFibGUgYXMgdGhlIG1ldGhvZCBgYGtleXMoKWBgLlxuXG4gICBJdGVyYXRvciBvYmplY3RzIGFsc28gbmVlZCB0byBpbXBsZW1lbnQgdGhpcyBtZXRob2Q7IHRoZXkgYXJlXG4gICByZXF1aXJlZCB0byByZXR1cm4gdGhlbXNlbHZlcy4gIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGl0ZXJhdG9yXG4gICBvYmplY3RzLCBzZWUgKkl0ZXJhdG9yIFR5cGVzKi5cblxub2JqZWN0Ll9fcmV2ZXJzZWRfXyhzZWxmKVxuXG4gICBDYWxsZWQgKGlmIHByZXNlbnQpIGJ5IHRoZSBgYHJldmVyc2VkKClgYCBidWlsdC1pbiB0byBpbXBsZW1lbnRcbiAgIHJldmVyc2UgaXRlcmF0aW9uLiAgSXQgc2hvdWxkIHJldHVybiBhIG5ldyBpdGVyYXRvciBvYmplY3QgdGhhdFxuICAgaXRlcmF0ZXMgb3ZlciBhbGwgdGhlIG9iamVjdHMgaW4gdGhlIGNvbnRhaW5lciBpbiByZXZlcnNlIG9yZGVyLlxuXG4gICBJZiB0aGUgYGBfX3JldmVyc2VkX18oKWBgIG1ldGhvZCBpcyBub3QgcHJvdmlkZWQsIHRoZVxuICAgYGByZXZlcnNlZCgpYGAgYnVpbHQtaW4gd2lsbCBmYWxsIGJhY2sgdG8gdXNpbmcgdGhlIHNlcXVlbmNlXG4gICBwcm90b2NvbCAoYGBfX2xlbl9fKClgYCBhbmQgYGBfX2dldGl0ZW1fXygpYGApLiAgT2JqZWN0cyB0aGF0XG4gICBzdXBwb3J0IHRoZSBzZXF1ZW5jZSBwcm90b2NvbCBzaG91bGQgb25seSBwcm92aWRlXG4gICBgYF9fcmV2ZXJzZWRfXygpYGAgaWYgdGhleSBjYW4gcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiB0aGF0IGlzXG4gICBtb3JlIGVmZmljaWVudCB0aGFuIHRoZSBvbmUgcHJvdmlkZWQgYnkgYGByZXZlcnNlZCgpYGAuXG5cblRoZSBtZW1iZXJzaGlwIHRlc3Qgb3BlcmF0b3JzIChgYGluYGAgYW5kIGBgbm90IGluYGApIGFyZSBub3JtYWxseVxuaW1wbGVtZW50ZWQgYXMgYW4gaXRlcmF0aW9uIHRocm91Z2ggYSBzZXF1ZW5jZS4gIEhvd2V2ZXIsIGNvbnRhaW5lclxub2JqZWN0cyBjYW4gc3VwcGx5IHRoZSBmb2xsb3dpbmcgc3BlY2lhbCBtZXRob2Qgd2l0aCBhIG1vcmUgZWZmaWNpZW50XG5pbXBsZW1lbnRhdGlvbiwgd2hpY2ggYWxzbyBkb2VzIG5vdCByZXF1aXJlIHRoZSBvYmplY3QgYmUgYSBzZXF1ZW5jZS5cblxub2JqZWN0Ll9fY29udGFpbnNfXyhzZWxmLCBpdGVtKVxuXG4gICBDYWxsZWQgdG8gaW1wbGVtZW50IG1lbWJlcnNoaXAgdGVzdCBvcGVyYXRvcnMuICBTaG91bGQgcmV0dXJuIHRydWVcbiAgIGlmICppdGVtKiBpcyBpbiAqc2VsZiosIGZhbHNlIG90aGVyd2lzZS4gIEZvciBtYXBwaW5nIG9iamVjdHMsIHRoaXNcbiAgIHNob3VsZCBjb25zaWRlciB0aGUga2V5cyBvZiB0aGUgbWFwcGluZyByYXRoZXIgdGhhbiB0aGUgdmFsdWVzIG9yXG4gICB0aGUga2V5LWl0ZW0gcGFpcnMuXG5cbiAgIEZvciBvYmplY3RzIHRoYXQgZG9uJ3QgZGVmaW5lIGBgX19jb250YWluc19fKClgYCwgdGhlIG1lbWJlcnNoaXBcbiAgIHRlc3QgZmlyc3QgdHJpZXMgaXRlcmF0aW9uIHZpYSBgYF9faXRlcl9fKClgYCwgdGhlbiB0aGUgb2xkXG4gICBzZXF1ZW5jZSBpdGVyYXRpb24gcHJvdG9jb2wgdmlhIGBgX19nZXRpdGVtX18oKWBgLCBzZWUgKnRoaXNcbiAgIHNlY3Rpb24gaW4gdGhlIGxhbmd1YWdlIHJlZmVyZW5jZSouXG4iLAogICdzaGlmdGluZyc6ICdcblNoaWZ0aW5nIG9wZXJhdGlvbnNcbioqKioqKioqKioqKioqKioqKipcblxuVGhlIHNoaWZ0aW5nIG9wZXJhdGlvbnMgaGF2ZSBsb3dlciBwcmlvcml0eSB0aGFuIHRoZSBhcml0aG1ldGljXG5vcGVyYXRpb25zOlxuXG4gICBzaGlmdF9leHByIDo6PSBhX2V4cHIgfCBzaGlmdF9leHByICggIjw8IiB8ICI+PiIgKSBhX2V4cHJcblxuVGhlc2Ugb3BlcmF0b3JzIGFjY2VwdCBpbnRlZ2VycyBhcyBhcmd1bWVudHMuICBUaGV5IHNoaWZ0IHRoZSBmaXJzdFxuYXJndW1lbnQgdG8gdGhlIGxlZnQgb3IgcmlnaHQgYnkgdGhlIG51bWJlciBvZiBiaXRzIGdpdmVuIGJ5IHRoZVxuc2Vjb25kIGFyZ3VtZW50LlxuXG5BIHJpZ2h0IHNoaWZ0IGJ5ICpuKiBiaXRzIGlzIGRlZmluZWQgYXMgZGl2aXNpb24gYnkgYGBwb3coMixuKWBgLiAgQVxubGVmdCBzaGlmdCBieSAqbiogYml0cyBpcyBkZWZpbmVkIGFzIG11bHRpcGxpY2F0aW9uIHdpdGggYGBwb3coMixuKWBgLlxuXG5Ob3RlOiBJbiB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiwgdGhlIHJpZ2h0LWhhbmQgb3BlcmFuZCBpcyByZXF1aXJlZCB0b1xuICBiZSBhdCBtb3N0IGBgc3lzLm1heHNpemVgYC4gIElmIHRoZSByaWdodC1oYW5kIG9wZXJhbmQgaXMgbGFyZ2VyXG4gIHRoYW4gYGBzeXMubWF4c2l6ZWBgIGFuIGBgT3ZlcmZsb3dFcnJvcmBgIGV4Y2VwdGlvbiBpcyByYWlzZWQuXG4nLAogICdzbGljaW5ncyc6ICdcblNsaWNpbmdzXG4qKioqKioqKlxuXG5BIHNsaWNpbmcgc2VsZWN0cyBhIHJhbmdlIG9mIGl0ZW1zIGluIGEgc2VxdWVuY2Ugb2JqZWN0IChlLmcuLCBhXG5zdHJpbmcsIHR1cGxlIG9yIGxpc3QpLiAgU2xpY2luZ3MgbWF5IGJlIHVzZWQgYXMgZXhwcmVzc2lvbnMgb3IgYXNcbnRhcmdldHMgaW4gYXNzaWdubWVudCBvciBgYGRlbGBgIHN0YXRlbWVudHMuICBUaGUgc3ludGF4IGZvciBhXG5zbGljaW5nOlxuXG4gICBzbGljaW5nICAgICAgOjo9IHByaW1hcnkgIlsiIHNsaWNlX2xpc3QgIl0iXG4gICBzbGljZV9saXN0ICAgOjo9IHNsaWNlX2l0ZW0gKCIsIiBzbGljZV9pdGVtKSogWyIsIl1cbiAgIHNsaWNlX2l0ZW0gICA6Oj0gZXhwcmVzc2lvbiB8IHByb3Blcl9zbGljZVxuICAgcHJvcGVyX3NsaWNlIDo6PSBbbG93ZXJfYm91bmRdICI6IiBbdXBwZXJfYm91bmRdIFsgIjoiIFtzdHJpZGVdIF1cbiAgIGxvd2VyX2JvdW5kICA6Oj0gZXhwcmVzc2lvblxuICAgdXBwZXJfYm91bmQgIDo6PSBleHByZXNzaW9uXG4gICBzdHJpZGUgICAgICAgOjo9IGV4cHJlc3Npb25cblxuVGhlcmUgaXMgYW1iaWd1aXR5IGluIHRoZSBmb3JtYWwgc3ludGF4IGhlcmU6IGFueXRoaW5nIHRoYXQgbG9va3MgbGlrZVxuYW4gZXhwcmVzc2lvbiBsaXN0IGFsc28gbG9va3MgbGlrZSBhIHNsaWNlIGxpc3QsIHNvIGFueSBzdWJzY3JpcHRpb25cbmNhbiBiZSBpbnRlcnByZXRlZCBhcyBhIHNsaWNpbmcuICBSYXRoZXIgdGhhbiBmdXJ0aGVyIGNvbXBsaWNhdGluZyB0aGVcbnN5bnRheCwgdGhpcyBpcyBkaXNhbWJpZ3VhdGVkIGJ5IGRlZmluaW5nIHRoYXQgaW4gdGhpcyBjYXNlIHRoZVxuaW50ZXJwcmV0YXRpb24gYXMgYSBzdWJzY3JpcHRpb24gdGFrZXMgcHJpb3JpdHkgb3ZlciB0aGVcbmludGVycHJldGF0aW9uIGFzIGEgc2xpY2luZyAodGhpcyBpcyB0aGUgY2FzZSBpZiB0aGUgc2xpY2UgbGlzdFxuY29udGFpbnMgbm8gcHJvcGVyIHNsaWNlKS5cblxuVGhlIHNlbWFudGljcyBmb3IgYSBzbGljaW5nIGFyZSBhcyBmb2xsb3dzLiAgVGhlIHByaW1hcnkgbXVzdCBldmFsdWF0ZVxudG8gYSBtYXBwaW5nIG9iamVjdCwgYW5kIGl0IGlzIGluZGV4ZWQgKHVzaW5nIHRoZSBzYW1lXG5gYF9fZ2V0aXRlbV9fKClgYCBtZXRob2QgYXMgbm9ybWFsIHN1YnNjcmlwdGlvbikgd2l0aCBhIGtleSB0aGF0IGlzXG5jb25zdHJ1Y3RlZCBmcm9tIHRoZSBzbGljZSBsaXN0LCBhcyBmb2xsb3dzLiAgSWYgdGhlIHNsaWNlIGxpc3RcbmNvbnRhaW5zIGF0IGxlYXN0IG9uZSBjb21tYSwgdGhlIGtleSBpcyBhIHR1cGxlIGNvbnRhaW5pbmcgdGhlXG5jb252ZXJzaW9uIG9mIHRoZSBzbGljZSBpdGVtczsgb3RoZXJ3aXNlLCB0aGUgY29udmVyc2lvbiBvZiB0aGUgbG9uZVxuc2xpY2UgaXRlbSBpcyB0aGUga2V5LiAgVGhlIGNvbnZlcnNpb24gb2YgYSBzbGljZSBpdGVtIHRoYXQgaXMgYW5cbmV4cHJlc3Npb24gaXMgdGhhdCBleHByZXNzaW9uLiAgVGhlIGNvbnZlcnNpb24gb2YgYSBwcm9wZXIgc2xpY2UgaXMgYVxuc2xpY2Ugb2JqZWN0IChzZWUgc2VjdGlvbiAqVGhlIHN0YW5kYXJkIHR5cGUgaGllcmFyY2h5Kikgd2hvc2VcbmBgc3RhcnRgYCwgYGBzdG9wYGAgYW5kIGBgc3RlcGBgIGF0dHJpYnV0ZXMgYXJlIHRoZSB2YWx1ZXMgb2YgdGhlXG5leHByZXNzaW9ucyBnaXZlbiBhcyBsb3dlciBib3VuZCwgdXBwZXIgYm91bmQgYW5kIHN0cmlkZSxcbnJlc3BlY3RpdmVseSwgc3Vic3RpdHV0aW5nIGBgTm9uZWBgIGZvciBtaXNzaW5nIGV4cHJlc3Npb25zLlxuJywKLSAnc3BlY2lhbGF0dHJzJzogJ1xuU3BlY2lhbCBBdHRyaWJ1dGVzXG4qKioqKioqKioqKioqKioqKipcblxuVGhlIGltcGxlbWVudGF0aW9uIGFkZHMgYSBmZXcgc3BlY2lhbCByZWFkLW9ubHkgYXR0cmlidXRlcyB0byBzZXZlcmFsXG5vYmplY3QgdHlwZXMsIHdoZXJlIHRoZXkgYXJlIHJlbGV2YW50LiAgU29tZSBvZiB0aGVzZSBhcmUgbm90IHJlcG9ydGVkXG5ieSB0aGUgYGBkaXIoKWBgIGJ1aWx0LWluIGZ1bmN0aW9uLlxuXG5vYmplY3QuX19kaWN0X19cblxuICAgQSBkaWN0aW9uYXJ5IG9yIG90aGVyIG1hcHBpbmcgb2JqZWN0IHVzZWQgdG8gc3RvcmUgYW4gb2JqZWN0XCdzXG4gICAod3JpdGFibGUpIGF0dHJpYnV0ZXMuXG5cbmluc3RhbmNlLl9fY2xhc3NfX1xuXG4gICBUaGUgY2xhc3MgdG8gd2hpY2ggYSBjbGFzcyBpbnN0YW5jZSBiZWxvbmdzLlxuXG5jbGFzcy5fX2Jhc2VzX19cblxuICAgVGhlIHR1cGxlIG9mIGJhc2UgY2xhc3NlcyBvZiBhIGNsYXNzIG9iamVjdC5cblxuY2xhc3MuX19uYW1lX19cblxuICAgVGhlIG5hbWUgb2YgdGhlIGNsYXNzIG9yIHR5cGUuXG5cbmNsYXNzLl9fbXJvX19cblxuICAgVGhpcyBhdHRyaWJ1dGUgaXMgYSB0dXBsZSBvZiBjbGFzc2VzIHRoYXQgYXJlIGNvbnNpZGVyZWQgd2hlblxuICAgbG9va2luZyBmb3IgYmFzZSBjbGFzc2VzIGR1cmluZyBtZXRob2QgcmVzb2x1dGlvbi5cblxuY2xhc3MubXJvKClcblxuICAgVGhpcyBtZXRob2QgY2FuIGJlIG92ZXJyaWRkZW4gYnkgYSBtZXRhY2xhc3MgdG8gY3VzdG9taXplIHRoZVxuICAgbWV0aG9kIHJlc29sdXRpb24gb3JkZXIgZm9yIGl0cyBpbnN0YW5jZXMuICBJdCBpcyBjYWxsZWQgYXQgY2xhc3NcbiAgIGluc3RhbnRpYXRpb24sIGFuZCBpdHMgcmVzdWx0IGlzIHN0b3JlZCBpbiBgYF9fbXJvX19gYC5cblxuY2xhc3MuX19zdWJjbGFzc2VzX18oKVxuXG4gICBFYWNoIGNsYXNzIGtlZXBzIGEgbGlzdCBvZiB3ZWFrIHJlZmVyZW5jZXMgdG8gaXRzIGltbWVkaWF0ZVxuICAgc3ViY2xhc3Nlcy4gIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIGFsbCB0aG9zZSByZWZlcmVuY2VzXG4gICBzdGlsbCBhbGl2ZS4gRXhhbXBsZTpcblxuICAgICAgPj4+IGludC5fX3N1YmNsYXNzZXNfXygpXG4gICAgICBbPGNsYXNzIFwnYm9vbFwnPl1cblxuLVsgRm9vdG5vdGVzIF0tXG5cblsxXSBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIHRoZXNlIHNwZWNpYWwgbWV0aG9kcyBtYXkgYmUgZm91bmQgaW5cbiAgICB0aGUgUHl0aG9uIFJlZmVyZW5jZSBNYW51YWwgKCpCYXNpYyBjdXN0b21pemF0aW9uKikuXG5cblsyXSBBcyBhIGNvbnNlcXVlbmNlLCB0aGUgbGlzdCBgYFsxLCAyXWBgIGlzIGNvbnNpZGVyZWQgZXF1YWwgdG9cbiAgICBgYFsxLjAsIDIuMF1gYCwgYW5kIHNpbWlsYXJseSBmb3IgdHVwbGVzLlxuXG5bM10gVGhleSBtdXN0IGhhdmUgc2luY2UgdGhlIHBhcnNlciBjYW5cJ3QgdGVsbCB0aGUgdHlwZSBvZiB0aGVcbiAgICBvcGVyYW5kcy5cblxuWzRdIENhc2VkIGNoYXJhY3RlcnMgYXJlIHRob3NlIHdpdGggZ2VuZXJhbCBjYXRlZ29yeSBwcm9wZXJ0eSBiZWluZ1xuICAgIG9uZSBvZiAiTHUiIChMZXR0ZXIsIHVwcGVyY2FzZSksICJMbCIgKExldHRlciwgbG93ZXJjYXNlKSwgb3IgIkx0IlxuICAgIChMZXR0ZXIsIHRpdGxlY2FzZSkuXG5cbls1XSBUbyBmb3JtYXQgb25seSBhIHR1cGxlIHlvdSBzaG91bGQgdGhlcmVmb3JlIHByb3ZpZGUgYSBzaW5nbGV0b25cbiAgICB0dXBsZSB3aG9zZSBvbmx5IGVsZW1lbnQgaXMgdGhlIHR1cGxlIHRvIGJlIGZvcm1hdHRlZC5cbicsCi0gJ3NwZWNpYWxuYW1lcyc6ICdcblNwZWNpYWwgbWV0aG9kIG5hbWVzXG4qKioqKioqKioqKioqKioqKioqKlxuXG5BIGNsYXNzIGNhbiBpbXBsZW1lbnQgY2VydGFpbiBvcGVyYXRpb25zIHRoYXQgYXJlIGludm9rZWQgYnkgc3BlY2lhbFxuc3ludGF4IChzdWNoIGFzIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBvciBzdWJzY3JpcHRpbmcgYW5kIHNsaWNpbmcpIGJ5XG5kZWZpbmluZyBtZXRob2RzIHdpdGggc3BlY2lhbCBuYW1lcy4gVGhpcyBpcyBQeXRob25cJ3MgYXBwcm9hY2ggdG9cbipvcGVyYXRvciBvdmVybG9hZGluZyosIGFsbG93aW5nIGNsYXNzZXMgdG8gZGVmaW5lIHRoZWlyIG93biBiZWhhdmlvclxud2l0aCByZXNwZWN0IHRvIGxhbmd1YWdlIG9wZXJhdG9ycy4gIEZvciBpbnN0YW5jZSwgaWYgYSBjbGFzcyBkZWZpbmVzXG5hIG1ldGhvZCBuYW1lZCBgYF9fZ2V0aXRlbV9fKClgYCwgYW5kIGBgeGBgIGlzIGFuIGluc3RhbmNlIG9mIHRoaXNcbmNsYXNzLCB0aGVuIGBgeFtpXWBgIGlzIHJvdWdobHkgZXF1aXZhbGVudCB0byBgYHR5cGUoeCkuX19nZXRpdGVtX18oeCxcbmkpYGAuICBFeGNlcHQgd2hlcmUgbWVudGlvbmVkLCBhdHRlbXB0cyB0byBleGVjdXRlIGFuIG9wZXJhdGlvbiByYWlzZVxuYW4gZXhjZXB0aW9uIHdoZW4gbm8gYXBwcm9wcmlhdGUgbWV0aG9kIGlzIGRlZmluZWQgKHR5cGljYWxseVxuYGBBdHRyaWJ1dGVFcnJvcmBgIG9yIGBgVHlwZUVycm9yYGApLlxuXG5XaGVuIGltcGxlbWVudGluZyBhIGNsYXNzIHRoYXQgZW11bGF0ZXMgYW55IGJ1aWx0LWluIHR5cGUsIGl0IGlzXG5pbXBvcnRhbnQgdGhhdCB0aGUgZW11bGF0aW9uIG9ubHkgYmUgaW1wbGVtZW50ZWQgdG8gdGhlIGRlZ3JlZSB0aGF0IGl0XG5tYWtlcyBzZW5zZSBmb3IgdGhlIG9iamVjdCBiZWluZyBtb2RlbGxlZC4gIEZvciBleGFtcGxlLCBzb21lXG5zZXF1ZW5jZXMgbWF5IHdvcmsgd2VsbCB3aXRoIHJldHJpZXZhbCBvZiBpbmRpdmlkdWFsIGVsZW1lbnRzLCBidXRcbmV4dHJhY3RpbmcgYSBzbGljZSBtYXkgbm90IG1ha2Ugc2Vuc2UuICAoT25lIGV4YW1wbGUgb2YgdGhpcyBpcyB0aGVcbmBgTm9kZUxpc3RgYCBpbnRlcmZhY2UgaW4gdGhlIFczQ1wncyBEb2N1bWVudCBPYmplY3QgTW9kZWwuKVxuXG5cbkJhc2ljIGN1c3RvbWl6YXRpb25cbj09PT09PT09PT09PT09PT09PT1cblxub2JqZWN0Ll9fbmV3X18oY2xzWywgLi4uXSlcblxuICAgQ2FsbGVkIHRvIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBjbGFzcyAqY2xzKi4gIGBgX19uZXdfXygpYGAgaXMgYVxuICAgc3RhdGljIG1ldGhvZCAoc3BlY2lhbC1jYXNlZCBzbyB5b3UgbmVlZCBub3QgZGVjbGFyZSBpdCBhcyBzdWNoKVxuICAgdGhhdCB0YWtlcyB0aGUgY2xhc3Mgb2Ygd2hpY2ggYW4gaW5zdGFuY2Ugd2FzIHJlcXVlc3RlZCBhcyBpdHNcbiAgIGZpcnN0IGFyZ3VtZW50LiAgVGhlIHJlbWFpbmluZyBhcmd1bWVudHMgYXJlIHRob3NlIHBhc3NlZCB0byB0aGVcbiAgIG9iamVjdCBjb25zdHJ1Y3RvciBleHByZXNzaW9uICh0aGUgY2FsbCB0byB0aGUgY2xhc3MpLiAgVGhlIHJldHVyblxuICAgdmFsdWUgb2YgYGBfX25ld19fKClgYCBzaG91bGQgYmUgdGhlIG5ldyBvYmplY3QgaW5zdGFuY2UgKHVzdWFsbHlcbiAgIGFuIGluc3RhbmNlIG9mICpjbHMqKS5cblxuICAgVHlwaWNhbCBpbXBsZW1lbnRhdGlvbnMgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBjbGFzcyBieVxuICAgaW52b2tpbmcgdGhlIHN1cGVyY2xhc3NcJ3MgYGBfX25ld19fKClgYCBtZXRob2QgdXNpbmdcbiAgIGBgc3VwZXIoY3VycmVudGNsYXNzLCBjbHMpLl9fbmV3X18oY2xzWywgLi4uXSlgYCB3aXRoIGFwcHJvcHJpYXRlXG4gICBhcmd1bWVudHMgYW5kIHRoZW4gbW9kaWZ5aW5nIHRoZSBuZXdseS1jcmVhdGVkIGluc3RhbmNlIGFzXG4gICBuZWNlc3NhcnkgYmVmb3JlIHJldHVybmluZyBpdC5cblxuICAgSWYgYGBfX25ld19fKClgYCByZXR1cm5zIGFuIGluc3RhbmNlIG9mICpjbHMqLCB0aGVuIHRoZSBuZXdcbiAgIGluc3RhbmNlXCdzIGBgX19pbml0X18oKWBgIG1ldGhvZCB3aWxsIGJlIGludm9rZWQgbGlrZVxuICAgYGBfX2luaXRfXyhzZWxmWywgLi4uXSlgYCwgd2hlcmUgKnNlbGYqIGlzIHRoZSBuZXcgaW5zdGFuY2UgYW5kIHRoZVxuICAgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgdGhlIHNhbWUgYXMgd2VyZSBwYXNzZWQgdG8gYGBfX25ld19fKClgYC5cblxuICAgSWYgYGBfX25ld19fKClgYCBkb2VzIG5vdCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgKmNscyosIHRoZW4gdGhlIG5ld1xuICAgaW5zdGFuY2VcJ3MgYGBfX2luaXRfXygpYGAgbWV0aG9kIHdpbGwgbm90IGJlIGludm9rZWQuXG5cbiAgIGBgX19uZXdfXygpYGAgaXMgaW50ZW5kZWQgbWFpbmx5IHRvIGFsbG93IHN1YmNsYXNzZXMgb2YgaW1tdXRhYmxlXG4gICB0eXBlcyAobGlrZSBpbnQsIHN0ciwgb3IgdHVwbGUpIHRvIGN1c3RvbWl6ZSBpbnN0YW5jZSBjcmVhdGlvbi4gIEl0XG4gICBpcyBhbHNvIGNvbW1vbmx5IG92ZXJyaWRkZW4gaW4gY3VzdG9tIG1ldGFjbGFzc2VzIGluIG9yZGVyIHRvXG4gICBjdXN0b21pemUgY2xhc3MgY3JlYXRpb24uXG5cbm9iamVjdC5fX2luaXRfXyhzZWxmWywgLi4uXSlcblxuICAgQ2FsbGVkIHdoZW4gdGhlIGluc3RhbmNlIGlzIGNyZWF0ZWQuICBUaGUgYXJndW1lbnRzIGFyZSB0aG9zZVxuICAgcGFzc2VkIHRvIHRoZSBjbGFzcyBjb25zdHJ1Y3RvciBleHByZXNzaW9uLiAgSWYgYSBiYXNlIGNsYXNzIGhhcyBhblxuICAgYGBfX2luaXRfXygpYGAgbWV0aG9kLCB0aGUgZGVyaXZlZCBjbGFzc1wncyBgYF9faW5pdF9fKClgYCBtZXRob2QsXG4gICBpZiBhbnksIG11c3QgZXhwbGljaXRseSBjYWxsIGl0IHRvIGVuc3VyZSBwcm9wZXIgaW5pdGlhbGl6YXRpb24gb2ZcbiAgIHRoZSBiYXNlIGNsYXNzIHBhcnQgb2YgdGhlIGluc3RhbmNlOyBmb3IgZXhhbXBsZTpcbiAgIGBgQmFzZUNsYXNzLl9faW5pdF9fKHNlbGYsIFthcmdzLi4uXSlgYC4gIEFzIGEgc3BlY2lhbCBjb25zdHJhaW50XG4gICBvbiBjb25zdHJ1Y3RvcnMsIG5vIHZhbHVlIG1heSBiZSByZXR1cm5lZDsgZG9pbmcgc28gd2lsbCBjYXVzZSBhXG4gICBgYFR5cGVFcnJvcmBgIHRvIGJlIHJhaXNlZCBhdCBydW50aW1lLlxuXG5vYmplY3QuX19kZWxfXyhzZWxmKVxuXG4gICBDYWxsZWQgd2hlbiB0aGUgaW5zdGFuY2UgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiAgVGhpcyBpcyBhbHNvXG4gICBjYWxsZWQgYSBkZXN0cnVjdG9yLiAgSWYgYSBiYXNlIGNsYXNzIGhhcyBhIGBgX19kZWxfXygpYGAgbWV0aG9kLFxuICAgdGhlIGRlcml2ZWQgY2xhc3NcJ3MgYGBfX2RlbF9fKClgYCBtZXRob2QsIGlmIGFueSwgbXVzdCBleHBsaWNpdGx5XG4gICBjYWxsIGl0IHRvIGVuc3VyZSBwcm9wZXIgZGVsZXRpb24gb2YgdGhlIGJhc2UgY2xhc3MgcGFydCBvZiB0aGVcbiAgIGluc3RhbmNlLiAgTm90ZSB0aGF0IGl0IGlzIHBvc3NpYmxlICh0aG91Z2ggbm90IHJlY29tbWVuZGVkISkgZm9yXG4gICB0aGUgYGBfX2RlbF9fKClgYCBtZXRob2QgdG8gcG9zdHBvbmUgZGVzdHJ1Y3Rpb24gb2YgdGhlIGluc3RhbmNlIGJ5XG4gICBjcmVhdGluZyBhIG5ldyByZWZlcmVuY2UgdG8gaXQuICBJdCBtYXkgdGhlbiBiZSBjYWxsZWQgYXQgYSBsYXRlclxuICAgdGltZSB3aGVuIHRoaXMgbmV3IHJlZmVyZW5jZSBpcyBkZWxldGVkLiAgSXQgaXMgbm90IGd1YXJhbnRlZWQgdGhhdFxuICAgYGBfX2RlbF9fKClgYCBtZXRob2RzIGFyZSBjYWxsZWQgZm9yIG9iamVjdHMgdGhhdCBzdGlsbCBleGlzdCB3aGVuXG4gICB0aGUgaW50ZXJwcmV0ZXIgZXhpdHMuXG5cbiAgIE5vdGU6IGBgZGVsIHhgYCBkb2VzblwndCBkaXJlY3RseSBjYWxsIGBgeC5fX2RlbF9fKClgYCAtLS0gdGhlIGZvcm1lclxuICAgICBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgZm9yIGBgeGBgIGJ5IG9uZSwgYW5kIHRoZSBsYXR0ZXJcbiAgICAgaXMgb25seSBjYWxsZWQgd2hlbiBgYHhgYFwncyByZWZlcmVuY2UgY291bnQgcmVhY2hlcyB6ZXJvLiAgU29tZVxuICAgICBjb21tb24gc2l0dWF0aW9ucyB0aGF0IG1heSBwcmV2ZW50IHRoZSByZWZlcmVuY2UgY291bnQgb2YgYW5cbiAgICAgb2JqZWN0IGZyb20gZ29pbmcgdG8gemVybyBpbmNsdWRlOiBjaXJjdWxhciByZWZlcmVuY2VzIGJldHdlZW5cbiAgICAgb2JqZWN0cyAoZS5nLiwgYSBkb3VibHktbGlua2VkIGxpc3Qgb3IgYSB0cmVlIGRhdGEgc3RydWN0dXJlIHdpdGhcbiAgICAgcGFyZW50IGFuZCBjaGlsZCBwb2ludGVycyk7IGEgcmVmZXJlbmNlIHRvIHRoZSBvYmplY3Qgb24gdGhlXG4gICAgIHN0YWNrIGZyYW1lIG9mIGEgZnVuY3Rpb24gdGhhdCBjYXVnaHQgYW4gZXhjZXB0aW9uICh0aGUgdHJhY2ViYWNrXG4gICAgIHN0b3JlZCBpbiBgYHN5cy5leGNfaW5mbygpWzJdYGAga2VlcHMgdGhlIHN0YWNrIGZyYW1lIGFsaXZlKTsgb3JcbiAgICAgYSByZWZlcmVuY2UgdG8gdGhlIG9iamVjdCBvbiB0aGUgc3RhY2sgZnJhbWUgdGhhdCByYWlzZWQgYW5cbiAgICAgdW5oYW5kbGVkIGV4Y2VwdGlvbiBpbiBpbnRlcmFjdGl2ZSBtb2RlICh0aGUgdHJhY2ViYWNrIHN0b3JlZCBpblxuICAgICBgYHN5cy5sYXN0X3RyYWNlYmFja2BgIGtlZXBzIHRoZSBzdGFjayBmcmFtZSBhbGl2ZSkuICBUaGUgZmlyc3RcbiAgICAgc2l0dWF0aW9uIGNhbiBvbmx5IGJlIHJlbWVkaWVkIGJ5IGV4cGxpY2l0bHkgYnJlYWtpbmcgdGhlIGN5Y2xlcztcbiAgICAgdGhlIGxhdHRlciB0d28gc2l0dWF0aW9ucyBjYW4gYmUgcmVzb2x2ZWQgYnkgc3RvcmluZyBgYE5vbmVgYCBpblxuICAgICBgYHN5cy5sYXN0X3RyYWNlYmFja2BgLiBDaXJjdWxhciByZWZlcmVuY2VzIHdoaWNoIGFyZSBnYXJiYWdlIGFyZVxuICAgICBkZXRlY3RlZCB3aGVuIHRoZSBvcHRpb24gY3ljbGUgZGV0ZWN0b3IgaXMgZW5hYmxlZCAoaXRcJ3Mgb24gYnlcbiAgICAgZGVmYXVsdCksIGJ1dCBjYW4gb25seSBiZSBjbGVhbmVkIHVwIGlmIHRoZXJlIGFyZSBubyBQeXRob24tXG4gICAgIGxldmVsIGBgX19kZWxfXygpYGAgbWV0aG9kcyBpbnZvbHZlZC4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb25cbiAgICAgZm9yIHRoZSBgYGdjYGAgbW9kdWxlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvd1xuICAgICBgYF9fZGVsX18oKWBgIG1ldGhvZHMgYXJlIGhhbmRsZWQgYnkgdGhlIGN5Y2xlIGRldGVjdG9yLFxuICAgICBwYXJ0aWN1bGFybHkgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBgYGdhcmJhZ2VgYCB2YWx1ZS5cblxuICAgV2FybmluZzogRHVlIHRvIHRoZSBwcmVjYXJpb3VzIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggYGBfX2RlbF9fKClgYFxuICAgICBtZXRob2RzIGFyZSBpbnZva2VkLCBleGNlcHRpb25zIHRoYXQgb2NjdXIgZHVyaW5nIHRoZWlyIGV4ZWN1dGlvblxuICAgICBhcmUgaWdub3JlZCwgYW5kIGEgd2FybmluZyBpcyBwcmludGVkIHRvIGBgc3lzLnN0ZGVycmBgIGluc3RlYWQuXG4gICAgIEFsc28sIHdoZW4gYGBfX2RlbF9fKClgYCBpcyBpbnZva2VkIGluIHJlc3BvbnNlIHRvIGEgbW9kdWxlIGJlaW5nXG4gICAgIGRlbGV0ZWQgKGUuZy4sIHdoZW4gZXhlY3V0aW9uIG9mIHRoZSBwcm9ncmFtIGlzIGRvbmUpLCBvdGhlclxuICAgICBnbG9iYWxzIHJlZmVyZW5jZWQgYnkgdGhlIGBgX19kZWxfXygpYGAgbWV0aG9kIG1heSBhbHJlYWR5IGhhdmVcbiAgICAgYmVlbiBkZWxldGVkIG9yIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIHRvcm4gZG93biAoZS5nLiB0aGVcbiAgICAgaW1wb3J0IG1hY2hpbmVyeSBzaHV0dGluZyBkb3duKS4gIEZvciB0aGlzIHJlYXNvbiwgYGBfX2RlbF9fKClgYFxuICAgICBtZXRob2RzIHNob3VsZCBkbyB0aGUgYWJzb2x1dGUgbWluaW11bSBuZWVkZWQgdG8gbWFpbnRhaW5cbiAgICAgZXh0ZXJuYWwgaW52YXJpYW50cy4gIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiAxLjUsIFB5dGhvblxuICAgICBndWFyYW50ZWVzIHRoYXQgZ2xvYmFscyB3aG9zZSBuYW1lIGJlZ2lucyB3aXRoIGEgc2luZ2xlXG4gICAgIHVuZGVyc2NvcmUgYXJlIGRlbGV0ZWQgZnJvbSB0aGVpciBtb2R1bGUgYmVmb3JlIG90aGVyIGdsb2JhbHMgYXJlXG4gICAgIGRlbGV0ZWQ7IGlmIG5vIG90aGVyIHJlZmVyZW5jZXMgdG8gc3VjaCBnbG9iYWxzIGV4aXN0LCB0aGlzIG1heVxuICAgICBoZWxwIGluIGFzc3VyaW5nIHRoYXQgaW1wb3J0ZWQgbW9kdWxlcyBhcmUgc3RpbGwgYXZhaWxhYmxlIGF0IHRoZVxuICAgICB0aW1lIHdoZW4gdGhlIGBgX19kZWxfXygpYGAgbWV0aG9kIGlzIGNhbGxlZC5cblxub2JqZWN0Ll9fcmVwcl9fKHNlbGYpXG5cbiAgIENhbGxlZCBieSB0aGUgYGByZXByKClgYCBidWlsdC1pbiBmdW5jdGlvbiB0byBjb21wdXRlIHRoZVxuICAgIm9mZmljaWFsIiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiAgSWYgYXQgYWxsIHBvc3NpYmxlLFxuICAgdGhpcyBzaG91bGQgbG9vayBsaWtlIGEgdmFsaWQgUHl0aG9uIGV4cHJlc3Npb24gdGhhdCBjb3VsZCBiZSB1c2VkXG4gICB0byByZWNyZWF0ZSBhbiBvYmplY3Qgd2l0aCB0aGUgc2FtZSB2YWx1ZSAoZ2l2ZW4gYW4gYXBwcm9wcmlhdGVcbiAgIGVudmlyb25tZW50KS4gIElmIHRoaXMgaXMgbm90IHBvc3NpYmxlLCBhIHN0cmluZyBvZiB0aGUgZm9ybVxuICAgYGA8Li4uc29tZSB1c2VmdWwgZGVzY3JpcHRpb24uLi4+YGAgc2hvdWxkIGJlIHJldHVybmVkLiBUaGUgcmV0dXJuXG4gICB2YWx1ZSBtdXN0IGJlIGEgc3RyaW5nIG9iamVjdC4gSWYgYSBjbGFzcyBkZWZpbmVzIGBgX19yZXByX18oKWBgXG4gICBidXQgbm90IGBgX19zdHJfXygpYGAsIHRoZW4gYGBfX3JlcHJfXygpYGAgaXMgYWxzbyB1c2VkIHdoZW4gYW5cbiAgICJpbmZvcm1hbCIgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGluc3RhbmNlcyBvZiB0aGF0IGNsYXNzIGlzXG4gICByZXF1aXJlZC5cblxuICAgVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCBmb3IgZGVidWdnaW5nLCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGVcbiAgIHJlcHJlc2VudGF0aW9uIGlzIGluZm9ybWF0aW9uLXJpY2ggYW5kIHVuYW1iaWd1b3VzLlxuXG5vYmplY3QuX19zdHJfXyhzZWxmKVxuXG4gICBDYWxsZWQgYnkgdGhlIGBgc3RyKClgYCBidWlsdC1pbiBmdW5jdGlvbiBhbmQgYnkgdGhlIGBgcHJpbnQoKWBgXG4gICBmdW5jdGlvbiB0byBjb21wdXRlIHRoZSAiaW5mb3JtYWwiIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhblxuICAgb2JqZWN0LiAgVGhpcyBkaWZmZXJzIGZyb20gYGBfX3JlcHJfXygpYGAgaW4gdGhhdCBpdCBkb2VzIG5vdCBoYXZlXG4gICB0byBiZSBhIHZhbGlkIFB5dGhvbiBleHByZXNzaW9uOiBhIG1vcmUgY29udmVuaWVudCBvciBjb25jaXNlXG4gICByZXByZXNlbnRhdGlvbiBtYXkgYmUgdXNlZCBpbnN0ZWFkLiBUaGUgcmV0dXJuIHZhbHVlIG11c3QgYmUgYVxuICAgc3RyaW5nIG9iamVjdC5cblxub2JqZWN0Ll9fYnl0ZXNfXyhzZWxmKVxuXG4gICBDYWxsZWQgYnkgYGBieXRlcygpYGAgdG8gY29tcHV0ZSBhIGJ5dGUtc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuXG4gICBvYmplY3QuIFRoaXMgc2hvdWxkIHJldHVybiBhIGBgYnl0ZXNgYCBvYmplY3QuXG5cbm9iamVjdC5fX2Zvcm1hdF9fKHNlbGYsIGZvcm1hdF9zcGVjKVxuXG4gICBDYWxsZWQgYnkgdGhlIGBgZm9ybWF0KClgYCBidWlsdC1pbiBmdW5jdGlvbiAoYW5kIGJ5IGV4dGVuc2lvbiwgdGhlXG4gICBgYGZvcm1hdCgpYGAgbWV0aG9kIG9mIGNsYXNzIGBgc3RyYGApIHRvIHByb2R1Y2UgYSAiZm9ybWF0dGVkIlxuICAgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gVGhlIGBgZm9ybWF0X3NwZWNgYCBhcmd1bWVudCBpc1xuICAgYSBzdHJpbmcgdGhhdCBjb250YWlucyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnNcbiAgIGRlc2lyZWQuIFRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgYGBmb3JtYXRfc3BlY2BgIGFyZ3VtZW50IGlzIHVwXG4gICB0byB0aGUgdHlwZSBpbXBsZW1lbnRpbmcgYGBfX2Zvcm1hdF9fKClgYCwgaG93ZXZlciBtb3N0IGNsYXNzZXNcbiAgIHdpbGwgZWl0aGVyIGRlbGVnYXRlIGZvcm1hdHRpbmcgdG8gb25lIG9mIHRoZSBidWlsdC1pbiB0eXBlcywgb3JcbiAgIHVzZSBhIHNpbWlsYXIgZm9ybWF0dGluZyBvcHRpb24gc3ludGF4LlxuXG4gICBTZWUgKkZvcm1hdCBTcGVjaWZpY2F0aW9uIE1pbmktTGFuZ3VhZ2UqIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZVxuICAgc3RhbmRhcmQgZm9ybWF0dGluZyBzeW50YXguXG5cbiAgIFRoZSByZXR1cm4gdmFsdWUgbXVzdCBiZSBhIHN0cmluZyBvYmplY3QuXG5cbm9iamVjdC5fX2x0X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19sZV9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fZXFfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX25lX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19ndF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fZ2VfXyhzZWxmLCBvdGhlcilcblxuICAgVGhlc2UgYXJlIHRoZSBzby1jYWxsZWQgInJpY2ggY29tcGFyaXNvbiIgbWV0aG9kcy4gVGhlXG4gICBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuIG9wZXJhdG9yIHN5bWJvbHMgYW5kIG1ldGhvZCBuYW1lcyBpcyBhc1xuICAgZm9sbG93czogYGB4PHlgYCBjYWxscyBgYHguX19sdF9fKHkpYGAsIGBgeDw9eWBgIGNhbGxzXG4gICBgYHguX19sZV9fKHkpYGAsIGBgeD09eWBgIGNhbGxzIGBgeC5fX2VxX18oeSlgYCwgYGB4IT15YGAgY2FsbHNcbiAgIGBgeC5fX25lX18oeSlgYCwgYGB4PnlgYCBjYWxscyBgYHguX19ndF9fKHkpYGAsIGFuZCBgYHg+PXlgYCBjYWxsc1xuICAgYGB4Ll9fZ2VfXyh5KWBgLlxuXG4gICBBIHJpY2ggY29tcGFyaXNvbiBtZXRob2QgbWF5IHJldHVybiB0aGUgc2luZ2xldG9uXG4gICBgYE5vdEltcGxlbWVudGVkYGAgaWYgaXQgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBvcGVyYXRpb24gZm9yIGFcbiAgIGdpdmVuIHBhaXIgb2YgYXJndW1lbnRzLiBCeSBjb252ZW50aW9uLCBgYEZhbHNlYGAgYW5kIGBgVHJ1ZWBgIGFyZVxuICAgcmV0dXJuZWQgZm9yIGEgc3VjY2Vzc2Z1bCBjb21wYXJpc29uLiBIb3dldmVyLCB0aGVzZSBtZXRob2RzIGNhblxuICAgcmV0dXJuIGFueSB2YWx1ZSwgc28gaWYgdGhlIGNvbXBhcmlzb24gb3BlcmF0b3IgaXMgdXNlZCBpbiBhXG4gICBCb29sZWFuIGNvbnRleHQgKGUuZy4sIGluIHRoZSBjb25kaXRpb24gb2YgYW4gYGBpZmBgIHN0YXRlbWVudCksXG4gICBQeXRob24gd2lsbCBjYWxsIGBgYm9vbCgpYGAgb24gdGhlIHZhbHVlIHRvIGRldGVybWluZSBpZiB0aGUgcmVzdWx0XG4gICBpcyB0cnVlIG9yIGZhbHNlLlxuXG4gICBUaGVyZSBhcmUgbm8gaW1wbGllZCByZWxhdGlvbnNoaXBzIGFtb25nIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycy5cbiAgIFRoZSB0cnV0aCBvZiBgYHg9PXlgYCBkb2VzIG5vdCBpbXBseSB0aGF0IGBgeCE9eWBgIGlzIGZhbHNlLlxuICAgQWNjb3JkaW5nbHksIHdoZW4gZGVmaW5pbmcgYGBfX2VxX18oKWBgLCBvbmUgc2hvdWxkIGFsc28gZGVmaW5lXG4gICBgYF9fbmVfXygpYGAgc28gdGhhdCB0aGUgb3BlcmF0b3JzIHdpbGwgYmVoYXZlIGFzIGV4cGVjdGVkLiAgU2VlXG4gICB0aGUgcGFyYWdyYXBoIG9uIGBgX19oYXNoX18oKWBgIGZvciBzb21lIGltcG9ydGFudCBub3RlcyBvblxuICAgY3JlYXRpbmcgKmhhc2hhYmxlKiBvYmplY3RzIHdoaWNoIHN1cHBvcnQgY3VzdG9tIGNvbXBhcmlzb25cbiAgIG9wZXJhdGlvbnMgYW5kIGFyZSB1c2FibGUgYXMgZGljdGlvbmFyeSBrZXlzLlxuXG4gICBUaGVyZSBhcmUgbm8gc3dhcHBlZC1hcmd1bWVudCB2ZXJzaW9ucyBvZiB0aGVzZSBtZXRob2RzICh0byBiZSB1c2VkXG4gICB3aGVuIHRoZSBsZWZ0IGFyZ3VtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIG9wZXJhdGlvbiBidXQgdGhlIHJpZ2h0XG4gICBhcmd1bWVudCBkb2VzKTsgcmF0aGVyLCBgYF9fbHRfXygpYGAgYW5kIGBgX19ndF9fKClgYCBhcmUgZWFjaFxuICAgb3RoZXJcJ3MgcmVmbGVjdGlvbiwgYGBfX2xlX18oKWBgIGFuZCBgYF9fZ2VfXygpYGAgYXJlIGVhY2ggb3RoZXJcJ3NcbiAgIHJlZmxlY3Rpb24sIGFuZCBgYF9fZXFfXygpYGAgYW5kIGBgX19uZV9fKClgYCBhcmUgdGhlaXIgb3duXG4gICByZWZsZWN0aW9uLlxuXG4gICBBcmd1bWVudHMgdG8gcmljaCBjb21wYXJpc29uIG1ldGhvZHMgYXJlIG5ldmVyIGNvZXJjZWQuXG5cbiAgIFRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgb3JkZXJpbmcgb3BlcmF0aW9ucyBmcm9tIGEgc2luZ2xlIHJvb3RcbiAgIG9wZXJhdGlvbiwgc2VlIGBgZnVuY3Rvb2xzLnRvdGFsX29yZGVyaW5nKClgYC5cblxub2JqZWN0Ll9faGFzaF9fKHNlbGYpXG5cbiAgIENhbGxlZCBieSBidWlsdC1pbiBmdW5jdGlvbiBgYGhhc2goKWBgIGFuZCBmb3Igb3BlcmF0aW9ucyBvblxuICAgbWVtYmVycyBvZiBoYXNoZWQgY29sbGVjdGlvbnMgaW5jbHVkaW5nIGBgc2V0YGAsIGBgZnJvemVuc2V0YGAsIGFuZFxuICAgYGBkaWN0YGAuICBgYF9faGFzaF9fKClgYCBzaG91bGQgcmV0dXJuIGFuIGludGVnZXIuICBUaGUgb25seVxuICAgcmVxdWlyZWQgcHJvcGVydHkgaXMgdGhhdCBvYmplY3RzIHdoaWNoIGNvbXBhcmUgZXF1YWwgaGF2ZSB0aGUgc2FtZVxuICAgaGFzaCB2YWx1ZTsgaXQgaXMgYWR2aXNlZCB0byBzb21laG93IG1peCB0b2dldGhlciAoZS5nLiB1c2luZ1xuICAgZXhjbHVzaXZlIG9yKSB0aGUgaGFzaCB2YWx1ZXMgZm9yIHRoZSBjb21wb25lbnRzIG9mIHRoZSBvYmplY3QgdGhhdFxuICAgYWxzbyBwbGF5IGEgcGFydCBpbiBjb21wYXJpc29uIG9mIG9iamVjdHMuXG5cbiAgIElmIGEgY2xhc3MgZG9lcyBub3QgZGVmaW5lIGFuIGBgX19lcV9fKClgYCBtZXRob2QgaXQgc2hvdWxkIG5vdFxuICAgZGVmaW5lIGEgYGBfX2hhc2hfXygpYGAgb3BlcmF0aW9uIGVpdGhlcjsgaWYgaXQgZGVmaW5lc1xuICAgYGBfX2VxX18oKWBgIGJ1dCBub3QgYGBfX2hhc2hfXygpYGAsIGl0cyBpbnN0YW5jZXMgd2lsbCBub3QgYmVcbiAgIHVzYWJsZSBhcyBpdGVtcyBpbiBoYXNoYWJsZSBjb2xsZWN0aW9ucy4gIElmIGEgY2xhc3MgZGVmaW5lc1xuICAgbXV0YWJsZSBvYmplY3RzIGFuZCBpbXBsZW1lbnRzIGFuIGBgX19lcV9fKClgYCBtZXRob2QsIGl0IHNob3VsZFxuICAgbm90IGltcGxlbWVudCBgYF9faGFzaF9fKClgYCwgc2luY2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIGhhc2hhYmxlXG4gICBjb2xsZWN0aW9ucyByZXF1aXJlcyB0aGF0IGEga2V5XCdzIGhhc2ggdmFsdWUgaXMgaW1tdXRhYmxlIChpZiB0aGVcbiAgIG9iamVjdFwncyBoYXNoIHZhbHVlIGNoYW5nZXMsIGl0IHdpbGwgYmUgaW4gdGhlIHdyb25nIGhhc2ggYnVja2V0KS5cblxuICAgVXNlci1kZWZpbmVkIGNsYXNzZXMgaGF2ZSBgYF9fZXFfXygpYGAgYW5kIGBgX19oYXNoX18oKWBgIG1ldGhvZHNcbiAgIGJ5IGRlZmF1bHQ7IHdpdGggdGhlbSwgYWxsIG9iamVjdHMgY29tcGFyZSB1bmVxdWFsIChleGNlcHQgd2l0aFxuICAgdGhlbXNlbHZlcykgYW5kIGBgeC5fX2hhc2hfXygpYGAgcmV0dXJucyBgYGlkKHgpYGAuXG5cbiAgIENsYXNzZXMgd2hpY2ggaW5oZXJpdCBhIGBgX19oYXNoX18oKWBgIG1ldGhvZCBmcm9tIGEgcGFyZW50IGNsYXNzXG4gICBidXQgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIGBgX19lcV9fKClgYCBzdWNoIHRoYXQgdGhlIGhhc2ggdmFsdWVcbiAgIHJldHVybmVkIGlzIG5vIGxvbmdlciBhcHByb3ByaWF0ZSAoZS5nLiBieSBzd2l0Y2hpbmcgdG8gYSB2YWx1ZS1cbiAgIGJhc2VkIGNvbmNlcHQgb2YgZXF1YWxpdHkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBpZGVudGl0eSBiYXNlZFxuICAgZXF1YWxpdHkpIGNhbiBleHBsaWNpdGx5IGZsYWcgdGhlbXNlbHZlcyBhcyBiZWluZyB1bmhhc2hhYmxlIGJ5XG4gICBzZXR0aW5nIGBgX19oYXNoX18gPSBOb25lYGAgaW4gdGhlIGNsYXNzIGRlZmluaXRpb24uIERvaW5nIHNvIG1lYW5zXG4gICB0aGF0IG5vdCBvbmx5IHdpbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcyByYWlzZSBhbiBhcHByb3ByaWF0ZVxuICAgYGBUeXBlRXJyb3JgYCB3aGVuIGEgcHJvZ3JhbSBhdHRlbXB0cyB0byByZXRyaWV2ZSB0aGVpciBoYXNoIHZhbHVlLFxuICAgYnV0IHRoZXkgd2lsbCBhbHNvIGJlIGNvcnJlY3RseSBpZGVudGlmaWVkIGFzIHVuaGFzaGFibGUgd2hlblxuICAgY2hlY2tpbmcgYGBpc2luc3RhbmNlKG9iaiwgY29sbGVjdGlvbnMuSGFzaGFibGUpYGAgKHVubGlrZSBjbGFzc2VzXG4gICB3aGljaCBkZWZpbmUgdGhlaXIgb3duIGBgX19oYXNoX18oKWBgIHRvIGV4cGxpY2l0bHkgcmFpc2VcbiAgIGBgVHlwZUVycm9yYGApLlxuXG4gICBJZiBhIGNsYXNzIHRoYXQgb3ZlcnJpZGVzIGBgX19lcV9fKClgYCBuZWVkcyB0byByZXRhaW4gdGhlXG4gICBpbXBsZW1lbnRhdGlvbiBvZiBgYF9faGFzaF9fKClgYCBmcm9tIGEgcGFyZW50IGNsYXNzLCB0aGVcbiAgIGludGVycHJldGVyIG11c3QgYmUgdG9sZCB0aGlzIGV4cGxpY2l0bHkgYnkgc2V0dGluZyBgYF9faGFzaF9fID1cbiAgIDxQYXJlbnRDbGFzcz4uX19oYXNoX19gYC4gT3RoZXJ3aXNlIHRoZSBpbmhlcml0YW5jZSBvZlxuICAgYGBfX2hhc2hfXygpYGAgd2lsbCBiZSBibG9ja2VkLCBqdXN0IGFzIGlmIGBgX19oYXNoX19gYCBoYWQgYmVlblxuICAgZXhwbGljaXRseSBzZXQgdG8gYGBOb25lYGAuXG5cbiAgIFNlZSBhbHNvIHRoZSAqLVIqIGNvbW1hbmQtbGluZSBvcHRpb24uXG5cbm9iamVjdC5fX2Jvb2xfXyhzZWxmKVxuXG4gICBDYWxsZWQgdG8gaW1wbGVtZW50IHRydXRoIHZhbHVlIHRlc3RpbmcgYW5kIHRoZSBidWlsdC1pbiBvcGVyYXRpb25cbiAgIGBgYm9vbCgpYGA7IHNob3VsZCByZXR1cm4gYGBGYWxzZWBgIG9yIGBgVHJ1ZWBgLiAgV2hlbiB0aGlzIG1ldGhvZFxuICAgaXMgbm90IGRlZmluZWQsIGBgX19sZW5fXygpYGAgaXMgY2FsbGVkLCBpZiBpdCBpcyBkZWZpbmVkLCBhbmQgdGhlXG4gICBvYmplY3QgaXMgY29uc2lkZXJlZCB0cnVlIGlmIGl0cyByZXN1bHQgaXMgbm9uemVyby4gIElmIGEgY2xhc3NcbiAgIGRlZmluZXMgbmVpdGhlciBgYF9fbGVuX18oKWBgIG5vciBgYF9fYm9vbF9fKClgYCwgYWxsIGl0cyBpbnN0YW5jZXNcbiAgIGFyZSBjb25zaWRlcmVkIHRydWUuXG5cblxuQ3VzdG9taXppbmcgYXR0cmlidXRlIGFjY2Vzc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5UaGUgZm9sbG93aW5nIG1ldGhvZHMgY2FuIGJlIGRlZmluZWQgdG8gY3VzdG9taXplIHRoZSBtZWFuaW5nIG9mXG5hdHRyaWJ1dGUgYWNjZXNzICh1c2Ugb2YsIGFzc2lnbm1lbnQgdG8sIG9yIGRlbGV0aW9uIG9mIGBgeC5uYW1lYGApXG5mb3IgY2xhc3MgaW5zdGFuY2VzLlxuXG5vYmplY3QuX19nZXRhdHRyX18oc2VsZiwgbmFtZSlcblxuICAgQ2FsbGVkIHdoZW4gYW4gYXR0cmlidXRlIGxvb2t1cCBoYXMgbm90IGZvdW5kIHRoZSBhdHRyaWJ1dGUgaW4gdGhlXG4gICB1c3VhbCBwbGFjZXMgKGkuZS4gaXQgaXMgbm90IGFuIGluc3RhbmNlIGF0dHJpYnV0ZSBub3IgaXMgaXQgZm91bmRcbiAgIGluIHRoZSBjbGFzcyB0cmVlIGZvciBgYHNlbGZgYCkuICBgYG5hbWVgYCBpcyB0aGUgYXR0cmlidXRlIG5hbWUuXG4gICBUaGlzIG1ldGhvZCBzaG91bGQgcmV0dXJuIHRoZSAoY29tcHV0ZWQpIGF0dHJpYnV0ZSB2YWx1ZSBvciByYWlzZVxuICAgYW4gYGBBdHRyaWJ1dGVFcnJvcmBgIGV4Y2VwdGlvbi5cblxuICAgTm90ZSB0aGF0IGlmIHRoZSBhdHRyaWJ1dGUgaXMgZm91bmQgdGhyb3VnaCB0aGUgbm9ybWFsIG1lY2hhbmlzbSxcbiAgIGBgX19nZXRhdHRyX18oKWBgIGlzIG5vdCBjYWxsZWQuICAoVGhpcyBpcyBhbiBpbnRlbnRpb25hbCBhc3ltbWV0cnlcbiAgIGJldHdlZW4gYGBfX2dldGF0dHJfXygpYGAgYW5kIGBgX19zZXRhdHRyX18oKWBgLikgVGhpcyBpcyBkb25lIGJvdGhcbiAgIGZvciBlZmZpY2llbmN5IHJlYXNvbnMgYW5kIGJlY2F1c2Ugb3RoZXJ3aXNlIGBgX19nZXRhdHRyX18oKWBgXG4gICB3b3VsZCBoYXZlIG5vIHdheSB0byBhY2Nlc3Mgb3RoZXIgYXR0cmlidXRlcyBvZiB0aGUgaW5zdGFuY2UuICBOb3RlXG4gICB0aGF0IGF0IGxlYXN0IGZvciBpbnN0YW5jZSB2YXJpYWJsZXMsIHlvdSBjYW4gZmFrZSB0b3RhbCBjb250cm9sIGJ5XG4gICBub3QgaW5zZXJ0aW5nIGFueSB2YWx1ZXMgaW4gdGhlIGluc3RhbmNlIGF0dHJpYnV0ZSBkaWN0aW9uYXJ5IChidXRcbiAgIGluc3RlYWQgaW5zZXJ0aW5nIHRoZW0gaW4gYW5vdGhlciBvYmplY3QpLiAgU2VlIHRoZVxuICAgYGBfX2dldGF0dHJpYnV0ZV9fKClgYCBtZXRob2QgYmVsb3cgZm9yIGEgd2F5IHRvIGFjdHVhbGx5IGdldCB0b3RhbFxuICAgY29udHJvbCBvdmVyIGF0dHJpYnV0ZSBhY2Nlc3MuXG5cbm9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpXG5cbiAgIENhbGxlZCB1bmNvbmRpdGlvbmFsbHkgdG8gaW1wbGVtZW50IGF0dHJpYnV0ZSBhY2Nlc3NlcyBmb3JcbiAgIGluc3RhbmNlcyBvZiB0aGUgY2xhc3MuIElmIHRoZSBjbGFzcyBhbHNvIGRlZmluZXNcbiAgIGBgX19nZXRhdHRyX18oKWBgLCB0aGUgbGF0dGVyIHdpbGwgbm90IGJlIGNhbGxlZCB1bmxlc3NcbiAgIGBgX19nZXRhdHRyaWJ1dGVfXygpYGAgZWl0aGVyIGNhbGxzIGl0IGV4cGxpY2l0bHkgb3IgcmFpc2VzIGFuXG4gICBgYEF0dHJpYnV0ZUVycm9yYGAuIFRoaXMgbWV0aG9kIHNob3VsZCByZXR1cm4gdGhlIChjb21wdXRlZClcbiAgIGF0dHJpYnV0ZSB2YWx1ZSBvciByYWlzZSBhbiBgYEF0dHJpYnV0ZUVycm9yYGAgZXhjZXB0aW9uLiBJbiBvcmRlclxuICAgdG8gYXZvaWQgaW5maW5pdGUgcmVjdXJzaW9uIGluIHRoaXMgbWV0aG9kLCBpdHMgaW1wbGVtZW50YXRpb25cbiAgIHNob3VsZCBhbHdheXMgY2FsbCB0aGUgYmFzZSBjbGFzcyBtZXRob2Qgd2l0aCB0aGUgc2FtZSBuYW1lIHRvXG4gICBhY2Nlc3MgYW55IGF0dHJpYnV0ZXMgaXQgbmVlZHMsIGZvciBleGFtcGxlLFxuICAgYGBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKWBgLlxuXG4gICBOb3RlOiBUaGlzIG1ldGhvZCBtYXkgc3RpbGwgYmUgYnlwYXNzZWQgd2hlbiBsb29raW5nIHVwIHNwZWNpYWwgbWV0aG9kc1xuICAgICBhcyB0aGUgcmVzdWx0IG9mIGltcGxpY2l0IGludm9jYXRpb24gdmlhIGxhbmd1YWdlIHN5bnRheCBvclxuICAgICBidWlsdC1pbiBmdW5jdGlvbnMuIFNlZSAqU3BlY2lhbCBtZXRob2QgbG9va3VwKi5cblxub2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKVxuXG4gICBDYWxsZWQgd2hlbiBhbiBhdHRyaWJ1dGUgYXNzaWdubWVudCBpcyBhdHRlbXB0ZWQuICBUaGlzIGlzIGNhbGxlZFxuICAgaW5zdGVhZCBvZiB0aGUgbm9ybWFsIG1lY2hhbmlzbSAoaS5lLiBzdG9yZSB0aGUgdmFsdWUgaW4gdGhlXG4gICBpbnN0YW5jZSBkaWN0aW9uYXJ5KS4gKm5hbWUqIGlzIHRoZSBhdHRyaWJ1dGUgbmFtZSwgKnZhbHVlKiBpcyB0aGVcbiAgIHZhbHVlIHRvIGJlIGFzc2lnbmVkIHRvIGl0LlxuXG4gICBJZiBgYF9fc2V0YXR0cl9fKClgYCB3YW50cyB0byBhc3NpZ24gdG8gYW4gaW5zdGFuY2UgYXR0cmlidXRlLCBpdFxuICAgc2hvdWxkIGNhbGwgdGhlIGJhc2UgY2xhc3MgbWV0aG9kIHdpdGggdGhlIHNhbWUgbmFtZSwgZm9yIGV4YW1wbGUsXG4gICBgYG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSlgYC5cblxub2JqZWN0Ll9fZGVsYXR0cl9fKHNlbGYsIG5hbWUpXG5cbiAgIExpa2UgYGBfX3NldGF0dHJfXygpYGAgYnV0IGZvciBhdHRyaWJ1dGUgZGVsZXRpb24gaW5zdGVhZCBvZlxuICAgYXNzaWdubWVudC4gIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW1wbGVtZW50ZWQgaWYgYGBkZWwgb2JqLm5hbWVgYCBpc1xuICAgbWVhbmluZ2Z1bCBmb3IgdGhlIG9iamVjdC5cblxub2JqZWN0Ll9fZGlyX18oc2VsZilcblxuICAgQ2FsbGVkIHdoZW4gYGBkaXIoKWBgIGlzIGNhbGxlZCBvbiB0aGUgb2JqZWN0LiAgQSBsaXN0IG11c3QgYmVcbiAgIHJldHVybmVkLlxuXG5cbkltcGxlbWVudGluZyBEZXNjcmlwdG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRoZSBmb2xsb3dpbmcgbWV0aG9kcyBvbmx5IGFwcGx5IHdoZW4gYW4gaW5zdGFuY2Ugb2YgdGhlIGNsYXNzXG5jb250YWluaW5nIHRoZSBtZXRob2QgKGEgc28tY2FsbGVkICpkZXNjcmlwdG9yKiBjbGFzcykgYXBwZWFycyBpbiBhblxuKm93bmVyKiBjbGFzcyAodGhlIGRlc2NyaXB0b3IgbXVzdCBiZSBpbiBlaXRoZXIgdGhlIG93bmVyXCdzIGNsYXNzXG5kaWN0aW9uYXJ5IG9yIGluIHRoZSBjbGFzcyBkaWN0aW9uYXJ5IGZvciBvbmUgb2YgaXRzIHBhcmVudHMpLiAgSW4gdGhlXG5leGFtcGxlcyBiZWxvdywgInRoZSBhdHRyaWJ1dGUiIHJlZmVycyB0byB0aGUgYXR0cmlidXRlIHdob3NlIG5hbWUgaXNcbnRoZSBrZXkgb2YgdGhlIHByb3BlcnR5IGluIHRoZSBvd25lciBjbGFzc1wnIGBgX19kaWN0X19gYC5cblxub2JqZWN0Ll9fZ2V0X18oc2VsZiwgaW5zdGFuY2UsIG93bmVyKVxuXG4gICBDYWxsZWQgdG8gZ2V0IHRoZSBhdHRyaWJ1dGUgb2YgdGhlIG93bmVyIGNsYXNzIChjbGFzcyBhdHRyaWJ1dGVcbiAgIGFjY2Vzcykgb3Igb2YgYW4gaW5zdGFuY2Ugb2YgdGhhdCBjbGFzcyAoaW5zdGFuY2UgYXR0cmlidXRlXG4gICBhY2Nlc3MpLiAqb3duZXIqIGlzIGFsd2F5cyB0aGUgb3duZXIgY2xhc3MsIHdoaWxlICppbnN0YW5jZSogaXMgdGhlXG4gICBpbnN0YW5jZSB0aGF0IHRoZSBhdHRyaWJ1dGUgd2FzIGFjY2Vzc2VkIHRocm91Z2gsIG9yIGBgTm9uZWBgIHdoZW5cbiAgIHRoZSBhdHRyaWJ1dGUgaXMgYWNjZXNzZWQgdGhyb3VnaCB0aGUgKm93bmVyKi4gIFRoaXMgbWV0aG9kIHNob3VsZFxuICAgcmV0dXJuIHRoZSAoY29tcHV0ZWQpIGF0dHJpYnV0ZSB2YWx1ZSBvciByYWlzZSBhblxuICAgYGBBdHRyaWJ1dGVFcnJvcmBgIGV4Y2VwdGlvbi5cblxub2JqZWN0Ll9fc2V0X18oc2VsZiwgaW5zdGFuY2UsIHZhbHVlKVxuXG4gICBDYWxsZWQgdG8gc2V0IHRoZSBhdHRyaWJ1dGUgb24gYW4gaW5zdGFuY2UgKmluc3RhbmNlKiBvZiB0aGUgb3duZXJcbiAgIGNsYXNzIHRvIGEgbmV3IHZhbHVlLCAqdmFsdWUqLlxuXG5vYmplY3QuX19kZWxldGVfXyhzZWxmLCBpbnN0YW5jZSlcblxuICAgQ2FsbGVkIHRvIGRlbGV0ZSB0aGUgYXR0cmlidXRlIG9uIGFuIGluc3RhbmNlICppbnN0YW5jZSogb2YgdGhlXG4gICBvd25lciBjbGFzcy5cblxuXG5JbnZva2luZyBEZXNjcmlwdG9yc1xuLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuSW4gZ2VuZXJhbCwgYSBkZXNjcmlwdG9yIGlzIGFuIG9iamVjdCBhdHRyaWJ1dGUgd2l0aCAiYmluZGluZ1xuYmVoYXZpb3IiLCBvbmUgd2hvc2UgYXR0cmlidXRlIGFjY2VzcyBoYXMgYmVlbiBvdmVycmlkZGVuIGJ5IG1ldGhvZHNcbmluIHRoZSBkZXNjcmlwdG9yIHByb3RvY29sOiAgYGBfX2dldF9fKClgYCwgYGBfX3NldF9fKClgYCwgYW5kXG5gYF9fZGVsZXRlX18oKWBgLiBJZiBhbnkgb2YgdGhvc2UgbWV0aG9kcyBhcmUgZGVmaW5lZCBmb3IgYW4gb2JqZWN0LFxuaXQgaXMgc2FpZCB0byBiZSBhIGRlc2NyaXB0b3IuXG5cblRoZSBkZWZhdWx0IGJlaGF2aW9yIGZvciBhdHRyaWJ1dGUgYWNjZXNzIGlzIHRvIGdldCwgc2V0LCBvciBkZWxldGVcbnRoZSBhdHRyaWJ1dGUgZnJvbSBhbiBvYmplY3RcJ3MgZGljdGlvbmFyeS4gRm9yIGluc3RhbmNlLCBgYGEueGBgIGhhcyBhXG5sb29rdXAgY2hhaW4gc3RhcnRpbmcgd2l0aCBgYGEuX19kaWN0X19bXCd4XCddYGAsIHRoZW5cbmBgdHlwZShhKS5fX2RpY3RfX1tcJ3hcJ11gYCwgYW5kIGNvbnRpbnVpbmcgdGhyb3VnaCB0aGUgYmFzZSBjbGFzc2VzIG9mXG5gYHR5cGUoYSlgYCBleGNsdWRpbmcgbWV0YWNsYXNzZXMuXG5cbkhvd2V2ZXIsIGlmIHRoZSBsb29rZWQtdXAgdmFsdWUgaXMgYW4gb2JqZWN0IGRlZmluaW5nIG9uZSBvZiB0aGVcbmRlc2NyaXB0b3IgbWV0aG9kcywgdGhlbiBQeXRob24gbWF5IG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGFuZFxuaW52b2tlIHRoZSBkZXNjcmlwdG9yIG1ldGhvZCBpbnN0ZWFkLiAgV2hlcmUgdGhpcyBvY2N1cnMgaW4gdGhlXG5wcmVjZWRlbmNlIGNoYWluIGRlcGVuZHMgb24gd2hpY2ggZGVzY3JpcHRvciBtZXRob2RzIHdlcmUgZGVmaW5lZCBhbmRcbmhvdyB0aGV5IHdlcmUgY2FsbGVkLlxuXG5UaGUgc3RhcnRpbmcgcG9pbnQgZm9yIGRlc2NyaXB0b3IgaW52b2NhdGlvbiBpcyBhIGJpbmRpbmcsIGBgYS54YGAuXG5Ib3cgdGhlIGFyZ3VtZW50cyBhcmUgYXNzZW1ibGVkIGRlcGVuZHMgb24gYGBhYGA6XG5cbkRpcmVjdCBDYWxsXG4gICBUaGUgc2ltcGxlc3QgYW5kIGxlYXN0IGNvbW1vbiBjYWxsIGlzIHdoZW4gdXNlciBjb2RlIGRpcmVjdGx5XG4gICBpbnZva2VzIGEgZGVzY3JpcHRvciBtZXRob2Q6ICAgIGBgeC5fX2dldF9fKGEpYGAuXG5cbkluc3RhbmNlIEJpbmRpbmdcbiAgIElmIGJpbmRpbmcgdG8gYW4gb2JqZWN0IGluc3RhbmNlLCBgYGEueGBgIGlzIHRyYW5zZm9ybWVkIGludG8gdGhlXG4gICBjYWxsOiBgYHR5cGUoYSkuX19kaWN0X19bXCd4XCddLl9fZ2V0X18oYSwgdHlwZShhKSlgYC5cblxuQ2xhc3MgQmluZGluZ1xuICAgSWYgYmluZGluZyB0byBhIGNsYXNzLCBgYEEueGBgIGlzIHRyYW5zZm9ybWVkIGludG8gdGhlIGNhbGw6XG4gICBgYEEuX19kaWN0X19bXCd4XCddLl9fZ2V0X18oTm9uZSwgQSlgYC5cblxuU3VwZXIgQmluZGluZ1xuICAgSWYgYGBhYGAgaXMgYW4gaW5zdGFuY2Ugb2YgYGBzdXBlcmBgLCB0aGVuIHRoZSBiaW5kaW5nIGBgc3VwZXIoQixcbiAgIG9iaikubSgpYGAgc2VhcmNoZXMgYGBvYmouX19jbGFzc19fLl9fbXJvX19gYCBmb3IgdGhlIGJhc2UgY2xhc3NcbiAgIGBgQWBgIGltbWVkaWF0ZWx5IHByZWNlZGluZyBgYEJgYCBhbmQgdGhlbiBpbnZva2VzIHRoZSBkZXNjcmlwdG9yXG4gICB3aXRoIHRoZSBjYWxsOiBgYEEuX19kaWN0X19bXCdtXCddLl9fZ2V0X18ob2JqLCBvYmouX19jbGFzc19fKWBgLlxuXG5Gb3IgaW5zdGFuY2UgYmluZGluZ3MsIHRoZSBwcmVjZWRlbmNlIG9mIGRlc2NyaXB0b3IgaW52b2NhdGlvbiBkZXBlbmRzXG5vbiB0aGUgd2hpY2ggZGVzY3JpcHRvciBtZXRob2RzIGFyZSBkZWZpbmVkLiAgQSBkZXNjcmlwdG9yIGNhbiBkZWZpbmVcbmFueSBjb21iaW5hdGlvbiBvZiBgYF9fZ2V0X18oKWBgLCBgYF9fc2V0X18oKWBgIGFuZCBgYF9fZGVsZXRlX18oKWBgLlxuSWYgaXQgZG9lcyBub3QgZGVmaW5lIGBgX19nZXRfXygpYGAsIHRoZW4gYWNjZXNzaW5nIHRoZSBhdHRyaWJ1dGUgd2lsbFxucmV0dXJuIHRoZSBkZXNjcmlwdG9yIG9iamVjdCBpdHNlbGYgdW5sZXNzIHRoZXJlIGlzIGEgdmFsdWUgaW4gdGhlXG5vYmplY3RcJ3MgaW5zdGFuY2UgZGljdGlvbmFyeS4gIElmIHRoZSBkZXNjcmlwdG9yIGRlZmluZXMgYGBfX3NldF9fKClgYFxuYW5kL29yIGBgX19kZWxldGVfXygpYGAsIGl0IGlzIGEgZGF0YSBkZXNjcmlwdG9yOyBpZiBpdCBkZWZpbmVzXG5uZWl0aGVyLCBpdCBpcyBhIG5vbi1kYXRhIGRlc2NyaXB0b3IuICBOb3JtYWxseSwgZGF0YSBkZXNjcmlwdG9yc1xuZGVmaW5lIGJvdGggYGBfX2dldF9fKClgYCBhbmQgYGBfX3NldF9fKClgYCwgd2hpbGUgbm9uLWRhdGFcbmRlc2NyaXB0b3JzIGhhdmUganVzdCB0aGUgYGBfX2dldF9fKClgYCBtZXRob2QuICBEYXRhIGRlc2NyaXB0b3JzIHdpdGhcbmBgX19zZXRfXygpYGAgYW5kIGBgX19nZXRfXygpYGAgZGVmaW5lZCBhbHdheXMgb3ZlcnJpZGUgYSByZWRlZmluaXRpb25cbmluIGFuIGluc3RhbmNlIGRpY3Rpb25hcnkuICBJbiBjb250cmFzdCwgbm9uLWRhdGEgZGVzY3JpcHRvcnMgY2FuIGJlXG5vdmVycmlkZGVuIGJ5IGluc3RhbmNlcy5cblxuUHl0aG9uIG1ldGhvZHMgKGluY2x1ZGluZyBgYHN0YXRpY21ldGhvZCgpYGAgYW5kIGBgY2xhc3NtZXRob2QoKWBgKVxuYXJlIGltcGxlbWVudGVkIGFzIG5vbi1kYXRhIGRlc2NyaXB0b3JzLiAgQWNjb3JkaW5nbHksIGluc3RhbmNlcyBjYW5cbnJlZGVmaW5lIGFuZCBvdmVycmlkZSBtZXRob2RzLiAgVGhpcyBhbGxvd3MgaW5kaXZpZHVhbCBpbnN0YW5jZXMgdG9cbmFjcXVpcmUgYmVoYXZpb3JzIHRoYXQgZGlmZmVyIGZyb20gb3RoZXIgaW5zdGFuY2VzIG9mIHRoZSBzYW1lIGNsYXNzLlxuXG5UaGUgYGBwcm9wZXJ0eSgpYGAgZnVuY3Rpb24gaXMgaW1wbGVtZW50ZWQgYXMgYSBkYXRhIGRlc2NyaXB0b3IuXG5BY2NvcmRpbmdseSwgaW5zdGFuY2VzIGNhbm5vdCBvdmVycmlkZSB0aGUgYmVoYXZpb3Igb2YgYSBwcm9wZXJ0eS5cblxuXG5fX3Nsb3RzX19cbi0tLS0tLS0tLVxuXG5CeSBkZWZhdWx0LCBpbnN0YW5jZXMgb2YgY2xhc3NlcyBoYXZlIGEgZGljdGlvbmFyeSBmb3IgYXR0cmlidXRlXG5zdG9yYWdlLiAgVGhpcyB3YXN0ZXMgc3BhY2UgZm9yIG9iamVjdHMgaGF2aW5nIHZlcnkgZmV3IGluc3RhbmNlXG52YXJpYWJsZXMuICBUaGUgc3BhY2UgY29uc3VtcHRpb24gY2FuIGJlY29tZSBhY3V0ZSB3aGVuIGNyZWF0aW5nIGxhcmdlXG5udW1iZXJzIG9mIGluc3RhbmNlcy5cblxuVGhlIGRlZmF1bHQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgZGVmaW5pbmcgKl9fc2xvdHNfXyogaW4gYSBjbGFzc1xuZGVmaW5pdGlvbi4gVGhlICpfX3Nsb3RzX18qIGRlY2xhcmF0aW9uIHRha2VzIGEgc2VxdWVuY2Ugb2YgaW5zdGFuY2VcbnZhcmlhYmxlcyBhbmQgcmVzZXJ2ZXMganVzdCBlbm91Z2ggc3BhY2UgaW4gZWFjaCBpbnN0YW5jZSB0byBob2xkIGFcbnZhbHVlIGZvciBlYWNoIHZhcmlhYmxlLiAgU3BhY2UgaXMgc2F2ZWQgYmVjYXVzZSAqX19kaWN0X18qIGlzIG5vdFxuY3JlYXRlZCBmb3IgZWFjaCBpbnN0YW5jZS5cblxub2JqZWN0Ll9fc2xvdHNfX1xuXG4gICBUaGlzIGNsYXNzIHZhcmlhYmxlIGNhbiBiZSBhc3NpZ25lZCBhIHN0cmluZywgaXRlcmFibGUsIG9yIHNlcXVlbmNlXG4gICBvZiBzdHJpbmdzIHdpdGggdmFyaWFibGUgbmFtZXMgdXNlZCBieSBpbnN0YW5jZXMuICBJZiBkZWZpbmVkIGluIGFcbiAgIGNsYXNzLCAqX19zbG90c19fKiByZXNlcnZlcyBzcGFjZSBmb3IgdGhlIGRlY2xhcmVkIHZhcmlhYmxlcyBhbmRcbiAgIHByZXZlbnRzIHRoZSBhdXRvbWF0aWMgY3JlYXRpb24gb2YgKl9fZGljdF9fKiBhbmQgKl9fd2Vha3JlZl9fKiBmb3JcbiAgIGVhY2ggaW5zdGFuY2UuXG5cblxuTm90ZXMgb24gdXNpbmcgKl9fc2xvdHNfXypcbn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+XG5cbiogV2hlbiBpbmhlcml0aW5nIGZyb20gYSBjbGFzcyB3aXRob3V0ICpfX3Nsb3RzX18qLCB0aGUgKl9fZGljdF9fKlxuICBhdHRyaWJ1dGUgb2YgdGhhdCBjbGFzcyB3aWxsIGFsd2F5cyBiZSBhY2Nlc3NpYmxlLCBzbyBhICpfX3Nsb3RzX18qXG4gIGRlZmluaXRpb24gaW4gdGhlIHN1YmNsYXNzIGlzIG1lYW5pbmdsZXNzLlxuXG4qIFdpdGhvdXQgYSAqX19kaWN0X18qIHZhcmlhYmxlLCBpbnN0YW5jZXMgY2Fubm90IGJlIGFzc2lnbmVkIG5ld1xuICB2YXJpYWJsZXMgbm90IGxpc3RlZCBpbiB0aGUgKl9fc2xvdHNfXyogZGVmaW5pdGlvbi4gIEF0dGVtcHRzIHRvXG4gIGFzc2lnbiB0byBhbiB1bmxpc3RlZCB2YXJpYWJsZSBuYW1lIHJhaXNlcyBgYEF0dHJpYnV0ZUVycm9yYGAuIElmXG4gIGR5bmFtaWMgYXNzaWdubWVudCBvZiBuZXcgdmFyaWFibGVzIGlzIGRlc2lyZWQsIHRoZW4gYWRkXG4gIGBgXCdfX2RpY3RfX1wnYGAgdG8gdGhlIHNlcXVlbmNlIG9mIHN0cmluZ3MgaW4gdGhlICpfX3Nsb3RzX18qXG4gIGRlY2xhcmF0aW9uLlxuXG4qIFdpdGhvdXQgYSAqX193ZWFrcmVmX18qIHZhcmlhYmxlIGZvciBlYWNoIGluc3RhbmNlLCBjbGFzc2VzIGRlZmluaW5nXG4gICpfX3Nsb3RzX18qIGRvIG5vdCBzdXBwb3J0IHdlYWsgcmVmZXJlbmNlcyB0byBpdHMgaW5zdGFuY2VzLiBJZiB3ZWFrXG4gIHJlZmVyZW5jZSBzdXBwb3J0IGlzIG5lZWRlZCwgdGhlbiBhZGQgYGBcJ19fd2Vha3JlZl9fXCdgYCB0byB0aGVcbiAgc2VxdWVuY2Ugb2Ygc3RyaW5ncyBpbiB0aGUgKl9fc2xvdHNfXyogZGVjbGFyYXRpb24uXG5cbiogKl9fc2xvdHNfXyogYXJlIGltcGxlbWVudGVkIGF0IHRoZSBjbGFzcyBsZXZlbCBieSBjcmVhdGluZ1xuICBkZXNjcmlwdG9ycyAoKkltcGxlbWVudGluZyBEZXNjcmlwdG9ycyopIGZvciBlYWNoIHZhcmlhYmxlIG5hbWUuICBBc1xuICBhIHJlc3VsdCwgY2xhc3MgYXR0cmlidXRlcyBjYW5ub3QgYmUgdXNlZCB0byBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yXG4gIGluc3RhbmNlIHZhcmlhYmxlcyBkZWZpbmVkIGJ5ICpfX3Nsb3RzX18qOyBvdGhlcndpc2UsIHRoZSBjbGFzc1xuICBhdHRyaWJ1dGUgd291bGQgb3ZlcndyaXRlIHRoZSBkZXNjcmlwdG9yIGFzc2lnbm1lbnQuXG5cbiogVGhlIGFjdGlvbiBvZiBhICpfX3Nsb3RzX18qIGRlY2xhcmF0aW9uIGlzIGxpbWl0ZWQgdG8gdGhlIGNsYXNzXG4gIHdoZXJlIGl0IGlzIGRlZmluZWQuICBBcyBhIHJlc3VsdCwgc3ViY2xhc3NlcyB3aWxsIGhhdmUgYSAqX19kaWN0X18qXG4gIHVubGVzcyB0aGV5IGFsc28gZGVmaW5lICpfX3Nsb3RzX18qICh3aGljaCBtdXN0IG9ubHkgY29udGFpbiBuYW1lc1xuICBvZiBhbnkgKmFkZGl0aW9uYWwqIHNsb3RzKS5cblxuKiBJZiBhIGNsYXNzIGRlZmluZXMgYSBzbG90IGFsc28gZGVmaW5lZCBpbiBhIGJhc2UgY2xhc3MsIHRoZSBpbnN0YW5jZVxuICB2YXJpYWJsZSBkZWZpbmVkIGJ5IHRoZSBiYXNlIGNsYXNzIHNsb3QgaXMgaW5hY2Nlc3NpYmxlIChleGNlcHQgYnlcbiAgcmV0cmlldmluZyBpdHMgZGVzY3JpcHRvciBkaXJlY3RseSBmcm9tIHRoZSBiYXNlIGNsYXNzKS4gVGhpc1xuICByZW5kZXJzIHRoZSBtZWFuaW5nIG9mIHRoZSBwcm9ncmFtIHVuZGVmaW5lZC4gIEluIHRoZSBmdXR1cmUsIGFcbiAgY2hlY2sgbWF5IGJlIGFkZGVkIHRvIHByZXZlbnQgdGhpcy5cblxuKiBOb25lbXB0eSAqX19zbG90c19fKiBkb2VzIG5vdCB3b3JrIGZvciBjbGFzc2VzIGRlcml2ZWQgZnJvbVxuICAidmFyaWFibGUtbGVuZ3RoIiBidWlsdC1pbiB0eXBlcyBzdWNoIGFzIGBgaW50YGAsIGBgc3RyYGAgYW5kXG4gIGBgdHVwbGVgYC5cblxuKiBBbnkgbm9uLXN0cmluZyBpdGVyYWJsZSBtYXkgYmUgYXNzaWduZWQgdG8gKl9fc2xvdHNfXyouIE1hcHBpbmdzIG1heVxuICBhbHNvIGJlIHVzZWQ7IGhvd2V2ZXIsIGluIHRoZSBmdXR1cmUsIHNwZWNpYWwgbWVhbmluZyBtYXkgYmVcbiAgYXNzaWduZWQgdG8gdGhlIHZhbHVlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2gga2V5LlxuXG4qICpfX2NsYXNzX18qIGFzc2lnbm1lbnQgd29ya3Mgb25seSBpZiBib3RoIGNsYXNzZXMgaGF2ZSB0aGUgc2FtZVxuICAqX19zbG90c19fKi5cblxuXG5DdXN0b21pemluZyBjbGFzcyBjcmVhdGlvblxuPT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQnkgZGVmYXVsdCwgY2xhc3NlcyBhcmUgY29uc3RydWN0ZWQgdXNpbmcgYGB0eXBlKClgYC4gQSBjbGFzc1xuZGVmaW5pdGlvbiBpcyByZWFkIGludG8gYSBzZXBhcmF0ZSBuYW1lc3BhY2UgYW5kIHRoZSB2YWx1ZSBvZiBjbGFzc1xubmFtZSBpcyBib3VuZCB0byB0aGUgcmVzdWx0IG9mIGBgdHlwZShuYW1lLCBiYXNlcywgZGljdClgYC5cblxuV2hlbiB0aGUgY2xhc3MgZGVmaW5pdGlvbiBpcyByZWFkLCBpZiBhIGNhbGxhYmxlIGBgbWV0YWNsYXNzYGAga2V5d29yZFxuYXJndW1lbnQgaXMgcGFzc2VkIGFmdGVyIHRoZSBiYXNlcyBpbiB0aGUgY2xhc3MgZGVmaW5pdGlvbiwgdGhlXG5jYWxsYWJsZSBnaXZlbiB3aWxsIGJlIGNhbGxlZCBpbnN0ZWFkIG9mIGBgdHlwZSgpYGAuICBJZiBvdGhlciBrZXl3b3JkXG5hcmd1bWVudHMgYXJlIHBhc3NlZCwgdGhleSB3aWxsIGFsc28gYmUgcGFzc2VkIHRvIHRoZSBtZXRhY2xhc3MuICBUaGlzXG5hbGxvd3MgY2xhc3NlcyBvciBmdW5jdGlvbnMgdG8gYmUgd3JpdHRlbiB3aGljaCBtb25pdG9yIG9yIGFsdGVyIHRoZVxuY2xhc3MgY3JlYXRpb24gcHJvY2VzczpcblxuKiBNb2RpZnlpbmcgdGhlIGNsYXNzIGRpY3Rpb25hcnkgcHJpb3IgdG8gdGhlIGNsYXNzIGJlaW5nIGNyZWF0ZWQuXG5cbiogUmV0dXJuaW5nIGFuIGluc3RhbmNlIG9mIGFub3RoZXIgY2xhc3MgLS0gZXNzZW50aWFsbHkgcGVyZm9ybWluZyB0aGVcbiAgcm9sZSBvZiBhIGZhY3RvcnkgZnVuY3Rpb24uXG5cblRoZXNlIHN0ZXBzIHdpbGwgaGF2ZSB0byBiZSBwZXJmb3JtZWQgaW4gdGhlIG1ldGFjbGFzc1wncyBgYF9fbmV3X18oKWBgXG5tZXRob2QgLS0gYGB0eXBlLl9fbmV3X18oKWBgIGNhbiB0aGVuIGJlIGNhbGxlZCBmcm9tIHRoaXMgbWV0aG9kIHRvXG5jcmVhdGUgYSBjbGFzcyB3aXRoIGRpZmZlcmVudCBwcm9wZXJ0aWVzLiAgVGhpcyBleGFtcGxlIGFkZHMgYSBuZXdcbmVsZW1lbnQgdG8gdGhlIGNsYXNzIGRpY3Rpb25hcnkgYmVmb3JlIGNyZWF0aW5nIHRoZSBjbGFzczpcblxuICAgY2xhc3MgbWV0YWNscyh0eXBlKTpcbiAgICAgICBkZWYgX19uZXdfXyhtY3MsIG5hbWUsIGJhc2VzLCBkaWN0KTpcbiAgICAgICAgICAgZGljdFtcJ2Zvb1wnXSA9IFwnbWV0YWNscyB3YXMgaGVyZVwnXG4gICAgICAgICAgIHJldHVybiB0eXBlLl9fbmV3X18obWNzLCBuYW1lLCBiYXNlcywgZGljdClcblxuWW91IGNhbiBvZiBjb3Vyc2UgYWxzbyBvdmVycmlkZSBvdGhlciBjbGFzcyBtZXRob2RzIChvciBhZGQgbmV3XG5tZXRob2RzKTsgZm9yIGV4YW1wbGUgZGVmaW5pbmcgYSBjdXN0b20gYGBfX2NhbGxfXygpYGAgbWV0aG9kIGluIHRoZVxubWV0YWNsYXNzIGFsbG93cyBjdXN0b20gYmVoYXZpb3Igd2hlbiB0aGUgY2xhc3MgaXMgY2FsbGVkLCBlLmcuIG5vdFxuYWx3YXlzIGNyZWF0aW5nIGEgbmV3IGluc3RhbmNlLlxuXG5JZiB0aGUgbWV0YWNsYXNzIGhhcyBhIGBgX19wcmVwYXJlX18oKWBgIGF0dHJpYnV0ZSAodXN1YWxseVxuaW1wbGVtZW50ZWQgYXMgYSBjbGFzcyBvciBzdGF0aWMgbWV0aG9kKSwgaXQgaXMgY2FsbGVkIGJlZm9yZSB0aGVcbmNsYXNzIGJvZHkgaXMgZXZhbHVhdGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIGNsYXNzIGFuZCBhIHR1cGxlIG9mIGl0c1xuYmFzZXMgZm9yIGFyZ3VtZW50cy4gIEl0IHNob3VsZCByZXR1cm4gYW4gb2JqZWN0IHRoYXQgc3VwcG9ydHMgdGhlXG5tYXBwaW5nIGludGVyZmFjZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBzdG9yZSB0aGUgbmFtZXNwYWNlIG9mIHRoZVxuY2xhc3MuICBUaGUgZGVmYXVsdCBpcyBhIHBsYWluIGRpY3Rpb25hcnkuICBUaGlzIGNvdWxkIGJlIHVzZWQsIGZvclxuZXhhbXBsZSwgdG8ga2VlcCB0cmFjayBvZiB0aGUgb3JkZXIgdGhhdCBjbGFzcyBhdHRyaWJ1dGVzIGFyZSBkZWNsYXJlZFxuaW4gYnkgcmV0dXJuaW5nIGFuIG9yZGVyZWQgZGljdGlvbmFyeS5cblxuVGhlIGFwcHJvcHJpYXRlIG1ldGFjbGFzcyBpcyBkZXRlcm1pbmVkIGJ5IHRoZSBmb2xsb3dpbmcgcHJlY2VkZW5jZVxucnVsZXM6XG5cbiogSWYgdGhlIGBgbWV0YWNsYXNzYGAga2V5d29yZCBhcmd1bWVudCBpcyBwYXNzZWQgd2l0aCB0aGUgYmFzZXMsIGl0XG4gIGlzIHVzZWQuXG5cbiogT3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgYmFzZSBjbGFzcywgaXRzIG1ldGFjbGFzcyBpc1xuICB1c2VkLlxuXG4qIE90aGVyd2lzZSwgdGhlIGRlZmF1bHQgbWV0YWNsYXNzIChgYHR5cGVgYCkgaXMgdXNlZC5cblxuVGhlIHBvdGVudGlhbCB1c2VzIGZvciBtZXRhY2xhc3NlcyBhcmUgYm91bmRsZXNzLiBTb21lIGlkZWFzIHRoYXQgaGF2ZVxuYmVlbiBleHBsb3JlZCBpbmNsdWRpbmcgbG9nZ2luZywgaW50ZXJmYWNlIGNoZWNraW5nLCBhdXRvbWF0aWNcbmRlbGVnYXRpb24sIGF1dG9tYXRpYyBwcm9wZXJ0eSBjcmVhdGlvbiwgcHJveGllcywgZnJhbWV3b3JrcywgYW5kXG5hdXRvbWF0aWMgcmVzb3VyY2UgbG9ja2luZy9zeW5jaHJvbml6YXRpb24uXG5cbkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBhIG1ldGFjbGFzcyB0aGF0IHVzZXMgYW5cbmBgY29sbGVjdGlvbnMuT3JkZXJlZERpY3RgYCB0byByZW1lbWJlciB0aGUgb3JkZXIgdGhhdCBjbGFzcyBtZW1iZXJzXG53ZXJlIGRlZmluZWQ6XG5cbiAgIGNsYXNzIE9yZGVyZWRDbGFzcyh0eXBlKTpcblxuICAgICAgICBAY2xhc3NtZXRob2RcbiAgICAgICAgZGVmIF9fcHJlcGFyZV9fKG1ldGFjbHMsIG5hbWUsIGJhc2VzLCAqKmt3ZHMpOlxuICAgICAgICAgICByZXR1cm4gY29sbGVjdGlvbnMuT3JkZXJlZERpY3QoKVxuXG4gICAgICAgIGRlZiBfX25ld19fKGNscywgbmFtZSwgYmFzZXMsIGNsYXNzZGljdCk6XG4gICAgICAgICAgIHJlc3VsdCA9IHR5cGUuX19uZXdfXyhjbHMsIG5hbWUsIGJhc2VzLCBkaWN0KGNsYXNzZGljdCkpXG4gICAgICAgICAgIHJlc3VsdC5tZW1iZXJzID0gdHVwbGUoY2xhc3NkaWN0KVxuICAgICAgICAgICByZXR1cm4gcmVzdWx0XG5cbiAgIGNsYXNzIEEobWV0YWNsYXNzPU9yZGVyZWRDbGFzcyk6XG4gICAgICAgZGVmIG9uZShzZWxmKTogcGFzc1xuICAgICAgIGRlZiB0d28oc2VsZik6IHBhc3NcbiAgICAgICBkZWYgdGhyZWUoc2VsZik6IHBhc3NcbiAgICAgICBkZWYgZm91cihzZWxmKTogcGFzc1xuXG4gICA+Pj4gQS5tZW1iZXJzXG4gICAoXCdfX21vZHVsZV9fXCcsIFwnb25lXCcsIFwndHdvXCcsIFwndGhyZWVcJywgXCdmb3VyXCcpXG5cbldoZW4gdGhlIGNsYXNzIGRlZmluaXRpb24gZm9yICpBKiBnZXRzIGV4ZWN1dGVkLCB0aGUgcHJvY2VzcyBiZWdpbnNcbndpdGggY2FsbGluZyB0aGUgbWV0YWNsYXNzXCdzIGBgX19wcmVwYXJlX18oKWBgIG1ldGhvZCB3aGljaCByZXR1cm5zIGFuXG5lbXB0eSBgYGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0YGAuICBUaGF0IG1hcHBpbmcgcmVjb3JkcyB0aGUgbWV0aG9kc1xuYW5kIGF0dHJpYnV0ZXMgb2YgKkEqIGFzIHRoZXkgYXJlIGRlZmluZWQgd2l0aGluIHRoZSBib2R5IG9mIHRoZSBjbGFzc1xuc3RhdGVtZW50LiBPbmNlIHRob3NlIGRlZmluaXRpb25zIGFyZSBleGVjdXRlZCwgdGhlIG9yZGVyZWQgZGljdGlvbmFyeVxuaXMgZnVsbHkgcG9wdWxhdGVkIGFuZCB0aGUgbWV0YWNsYXNzXCdzIGBgX19uZXdfXygpYGAgbWV0aG9kIGdldHNcbmludm9rZWQuICBUaGF0IG1ldGhvZCBidWlsZHMgdGhlIG5ldyB0eXBlIGFuZCBpdCBzYXZlcyB0aGUgb3JkZXJlZFxuZGljdGlvbmFyeSBrZXlzIGluIGFuIGF0dHJpYnV0ZSBjYWxsZWQgYGBtZW1iZXJzYGAuXG5cblxuQ3VzdG9taXppbmcgaW5zdGFuY2UgYW5kIHN1YmNsYXNzIGNoZWNrc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5UaGUgZm9sbG93aW5nIG1ldGhvZHMgYXJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlXG5gYGlzaW5zdGFuY2UoKWBgIGFuZCBgYGlzc3ViY2xhc3MoKWBgIGJ1aWx0LWluIGZ1bmN0aW9ucy5cblxuSW4gcGFydGljdWxhciwgdGhlIG1ldGFjbGFzcyBgYGFiYy5BQkNNZXRhYGAgaW1wbGVtZW50cyB0aGVzZSBtZXRob2RzXG5pbiBvcmRlciB0byBhbGxvdyB0aGUgYWRkaXRpb24gb2YgQWJzdHJhY3QgQmFzZSBDbGFzc2VzIChBQkNzKSBhc1xuInZpcnR1YWwgYmFzZSBjbGFzc2VzIiB0byBhbnkgY2xhc3Mgb3IgdHlwZSAoaW5jbHVkaW5nIGJ1aWx0LWluXG50eXBlcyksIGluY2x1ZGluZyBvdGhlciBBQkNzLlxuXG5jbGFzcy5fX2luc3RhbmNlY2hlY2tfXyhzZWxmLCBpbnN0YW5jZSlcblxuICAgUmV0dXJuIHRydWUgaWYgKmluc3RhbmNlKiBzaG91bGQgYmUgY29uc2lkZXJlZCBhIChkaXJlY3Qgb3JcbiAgIGluZGlyZWN0KSBpbnN0YW5jZSBvZiAqY2xhc3MqLiBJZiBkZWZpbmVkLCBjYWxsZWQgdG8gaW1wbGVtZW50XG4gICBgYGlzaW5zdGFuY2UoaW5zdGFuY2UsIGNsYXNzKWBgLlxuXG5jbGFzcy5fX3N1YmNsYXNzY2hlY2tfXyhzZWxmLCBzdWJjbGFzcylcblxuICAgUmV0dXJuIHRydWUgaWYgKnN1YmNsYXNzKiBzaG91bGQgYmUgY29uc2lkZXJlZCBhIChkaXJlY3Qgb3JcbiAgIGluZGlyZWN0KSBzdWJjbGFzcyBvZiAqY2xhc3MqLiAgSWYgZGVmaW5lZCwgY2FsbGVkIHRvIGltcGxlbWVudFxuICAgYGBpc3N1YmNsYXNzKHN1YmNsYXNzLCBjbGFzcylgYC5cblxuTm90ZSB0aGF0IHRoZXNlIG1ldGhvZHMgYXJlIGxvb2tlZCB1cCBvbiB0aGUgdHlwZSAobWV0YWNsYXNzKSBvZiBhXG5jbGFzcy4gIFRoZXkgY2Fubm90IGJlIGRlZmluZWQgYXMgY2xhc3MgbWV0aG9kcyBpbiB0aGUgYWN0dWFsIGNsYXNzLlxuVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGxvb2t1cCBvZiBzcGVjaWFsIG1ldGhvZHMgdGhhdCBhcmUgY2FsbGVkXG5vbiBpbnN0YW5jZXMsIG9ubHkgaW4gdGhpcyBjYXNlIHRoZSBpbnN0YW5jZSBpcyBpdHNlbGYgYSBjbGFzcy5cblxuU2VlIGFsc286XG5cbiAgICoqUEVQIDMxMTkqKiAtIEludHJvZHVjaW5nIEFic3RyYWN0IEJhc2UgQ2xhc3Nlc1xuICAgICAgSW5jbHVkZXMgdGhlIHNwZWNpZmljYXRpb24gZm9yIGN1c3RvbWl6aW5nIGBgaXNpbnN0YW5jZSgpYGAgYW5kXG4gICAgICBgYGlzc3ViY2xhc3MoKWBgIGJlaGF2aW9yIHRocm91Z2ggYGBfX2luc3RhbmNlY2hlY2tfXygpYGAgYW5kXG4gICAgICBgYF9fc3ViY2xhc3NjaGVja19fKClgYCwgd2l0aCBtb3RpdmF0aW9uIGZvciB0aGlzIGZ1bmN0aW9uYWxpdHlcbiAgICAgIGluIHRoZSBjb250ZXh0IG9mIGFkZGluZyBBYnN0cmFjdCBCYXNlIENsYXNzZXMgKHNlZSB0aGUgYGBhYmNgYFxuICAgICAgbW9kdWxlKSB0byB0aGUgbGFuZ3VhZ2UuXG5cblxuRW11bGF0aW5nIGNhbGxhYmxlIG9iamVjdHNcbj09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbm9iamVjdC5fX2NhbGxfXyhzZWxmWywgYXJncy4uLl0pXG5cbiAgIENhbGxlZCB3aGVuIHRoZSBpbnN0YW5jZSBpcyAiY2FsbGVkIiBhcyBhIGZ1bmN0aW9uOyBpZiB0aGlzIG1ldGhvZFxuICAgaXMgZGVmaW5lZCwgYGB4KGFyZzEsIGFyZzIsIC4uLilgYCBpcyBhIHNob3J0aGFuZCBmb3JcbiAgIGBgeC5fX2NhbGxfXyhhcmcxLCBhcmcyLCAuLi4pYGAuXG5cblxuRW11bGF0aW5nIGNvbnRhaW5lciB0eXBlc1xuPT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5UaGUgZm9sbG93aW5nIG1ldGhvZHMgY2FuIGJlIGRlZmluZWQgdG8gaW1wbGVtZW50IGNvbnRhaW5lciBvYmplY3RzLlxuQ29udGFpbmVycyB1c3VhbGx5IGFyZSBzZXF1ZW5jZXMgKHN1Y2ggYXMgbGlzdHMgb3IgdHVwbGVzKSBvciBtYXBwaW5nc1xuKGxpa2UgZGljdGlvbmFyaWVzKSwgYnV0IGNhbiByZXByZXNlbnQgb3RoZXIgY29udGFpbmVycyBhcyB3ZWxsLiAgVGhlXG5maXJzdCBzZXQgb2YgbWV0aG9kcyBpcyB1c2VkIGVpdGhlciB0byBlbXVsYXRlIGEgc2VxdWVuY2Ugb3IgdG9cbmVtdWxhdGUgYSBtYXBwaW5nOyB0aGUgZGlmZmVyZW5jZSBpcyB0aGF0IGZvciBhIHNlcXVlbmNlLCB0aGVcbmFsbG93YWJsZSBrZXlzIHNob3VsZCBiZSB0aGUgaW50ZWdlcnMgKmsqIGZvciB3aGljaCBgYDAgPD0gayA8IE5gYFxud2hlcmUgKk4qIGlzIHRoZSBsZW5ndGggb2YgdGhlIHNlcXVlbmNlLCBvciBzbGljZSBvYmplY3RzLCB3aGljaFxuZGVmaW5lIGEgcmFuZ2Ugb2YgaXRlbXMuICBJdCBpcyBhbHNvIHJlY29tbWVuZGVkIHRoYXQgbWFwcGluZ3MgcHJvdmlkZVxudGhlIG1ldGhvZHMgYGBrZXlzKClgYCwgYGB2YWx1ZXMoKWBgLCBgYGl0ZW1zKClgYCwgYGBnZXQoKWBgLFxuYGBjbGVhcigpYGAsIGBgc2V0ZGVmYXVsdCgpYGAsIGBgcG9wKClgYCwgYGBwb3BpdGVtKClgYCwgYGBjb3B5KClgYCxcbmFuZCBgYHVwZGF0ZSgpYGAgYmVoYXZpbmcgc2ltaWxhciB0byB0aG9zZSBmb3IgUHl0aG9uXCdzIHN0YW5kYXJkXG5kaWN0aW9uYXJ5IG9iamVjdHMuICBUaGUgYGBjb2xsZWN0aW9uc2BgIG1vZHVsZSBwcm92aWRlcyBhXG5gYE11dGFibGVNYXBwaW5nYGAgYWJzdHJhY3QgYmFzZSBjbGFzcyB0byBoZWxwIGNyZWF0ZSB0aG9zZSBtZXRob2RzXG5mcm9tIGEgYmFzZSBzZXQgb2YgYGBfX2dldGl0ZW1fXygpYGAsIGBgX19zZXRpdGVtX18oKWBgLFxuYGBfX2RlbGl0ZW1fXygpYGAsIGFuZCBgYGtleXMoKWBgLiBNdXRhYmxlIHNlcXVlbmNlcyBzaG91bGQgcHJvdmlkZVxubWV0aG9kcyBgYGFwcGVuZCgpYGAsIGBgY291bnQoKWBgLCBgYGluZGV4KClgYCwgYGBleHRlbmQoKWBgLFxuYGBpbnNlcnQoKWBgLCBgYHBvcCgpYGAsIGBgcmVtb3ZlKClgYCwgYGByZXZlcnNlKClgYCBhbmQgYGBzb3J0KClgYCxcbmxpa2UgUHl0aG9uIHN0YW5kYXJkIGxpc3Qgb2JqZWN0cy4gIEZpbmFsbHksIHNlcXVlbmNlIHR5cGVzIHNob3VsZFxuaW1wbGVtZW50IGFkZGl0aW9uIChtZWFuaW5nIGNvbmNhdGVuYXRpb24pIGFuZCBtdWx0aXBsaWNhdGlvbiAobWVhbmluZ1xucmVwZXRpdGlvbikgYnkgZGVmaW5pbmcgdGhlIG1ldGhvZHMgYGBfX2FkZF9fKClgYCwgYGBfX3JhZGRfXygpYGAsXG5gYF9faWFkZF9fKClgYCwgYGBfX211bF9fKClgYCwgYGBfX3JtdWxfXygpYGAgYW5kIGBgX19pbXVsX18oKWBgXG5kZXNjcmliZWQgYmVsb3c7IHRoZXkgc2hvdWxkIG5vdCBkZWZpbmUgb3RoZXIgbnVtZXJpY2FsIG9wZXJhdG9ycy4gIEl0XG5pcyByZWNvbW1lbmRlZCB0aGF0IGJvdGggbWFwcGluZ3MgYW5kIHNlcXVlbmNlcyBpbXBsZW1lbnQgdGhlXG5gYF9fY29udGFpbnNfXygpYGAgbWV0aG9kIHRvIGFsbG93IGVmZmljaWVudCB1c2Ugb2YgdGhlIGBgaW5gYFxub3BlcmF0b3I7IGZvciBtYXBwaW5ncywgYGBpbmBgIHNob3VsZCBzZWFyY2ggdGhlIG1hcHBpbmdcJ3Mga2V5czsgZm9yXG5zZXF1ZW5jZXMsIGl0IHNob3VsZCBzZWFyY2ggdGhyb3VnaCB0aGUgdmFsdWVzLiAgSXQgaXMgZnVydGhlclxucmVjb21tZW5kZWQgdGhhdCBib3RoIG1hcHBpbmdzIGFuZCBzZXF1ZW5jZXMgaW1wbGVtZW50IHRoZVxuYGBfX2l0ZXJfXygpYGAgbWV0aG9kIHRvIGFsbG93IGVmZmljaWVudCBpdGVyYXRpb24gdGhyb3VnaCB0aGVcbmNvbnRhaW5lcjsgZm9yIG1hcHBpbmdzLCBgYF9faXRlcl9fKClgYCBzaG91bGQgYmUgdGhlIHNhbWUgYXNcbmBga2V5cygpYGA7IGZvciBzZXF1ZW5jZXMsIGl0IHNob3VsZCBpdGVyYXRlIHRocm91Z2ggdGhlIHZhbHVlcy5cblxub2JqZWN0Ll9fbGVuX18oc2VsZilcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCB0aGUgYnVpbHQtaW4gZnVuY3Rpb24gYGBsZW4oKWBgLiAgU2hvdWxkIHJldHVyblxuICAgdGhlIGxlbmd0aCBvZiB0aGUgb2JqZWN0LCBhbiBpbnRlZ2VyIGBgPj1gYCAwLiAgQWxzbywgYW4gb2JqZWN0XG4gICB0aGF0IGRvZXNuXCd0IGRlZmluZSBhIGBgX19ib29sX18oKWBgIG1ldGhvZCBhbmQgd2hvc2UgYGBfX2xlbl9fKClgYFxuICAgbWV0aG9kIHJldHVybnMgemVybyBpcyBjb25zaWRlcmVkIHRvIGJlIGZhbHNlIGluIGEgQm9vbGVhbiBjb250ZXh0LlxuXG5Ob3RlOiBTbGljaW5nIGlzIGRvbmUgZXhjbHVzaXZlbHkgd2l0aCB0aGUgZm9sbG93aW5nIHRocmVlIG1ldGhvZHMuICBBXG4gIGNhbGwgbGlrZVxuXG4gICAgIGFbMToyXSA9IGJcblxuICBpcyB0cmFuc2xhdGVkIHRvXG5cbiAgICAgYVtzbGljZSgxLCAyLCBOb25lKV0gPSBiXG5cbiAgYW5kIHNvIGZvcnRoLiAgTWlzc2luZyBzbGljZSBpdGVtcyBhcmUgYWx3YXlzIGZpbGxlZCBpbiB3aXRoXG4gIGBgTm9uZWBgLlxuXG5vYmplY3QuX19nZXRpdGVtX18oc2VsZiwga2V5KVxuXG4gICBDYWxsZWQgdG8gaW1wbGVtZW50IGV2YWx1YXRpb24gb2YgYGBzZWxmW2tleV1gYC4gRm9yIHNlcXVlbmNlXG4gICB0eXBlcywgdGhlIGFjY2VwdGVkIGtleXMgc2hvdWxkIGJlIGludGVnZXJzIGFuZCBzbGljZSBvYmplY3RzLlxuICAgTm90ZSB0aGF0IHRoZSBzcGVjaWFsIGludGVycHJldGF0aW9uIG9mIG5lZ2F0aXZlIGluZGV4ZXMgKGlmIHRoZVxuICAgY2xhc3Mgd2lzaGVzIHRvIGVtdWxhdGUgYSBzZXF1ZW5jZSB0eXBlKSBpcyB1cCB0byB0aGVcbiAgIGBgX19nZXRpdGVtX18oKWBgIG1ldGhvZC4gSWYgKmtleSogaXMgb2YgYW4gaW5hcHByb3ByaWF0ZSB0eXBlLFxuICAgYGBUeXBlRXJyb3JgYCBtYXkgYmUgcmFpc2VkOyBpZiBvZiBhIHZhbHVlIG91dHNpZGUgdGhlIHNldCBvZlxuICAgaW5kZXhlcyBmb3IgdGhlIHNlcXVlbmNlIChhZnRlciBhbnkgc3BlY2lhbCBpbnRlcnByZXRhdGlvbiBvZlxuICAgbmVnYXRpdmUgdmFsdWVzKSwgYGBJbmRleEVycm9yYGAgc2hvdWxkIGJlIHJhaXNlZC4gRm9yIG1hcHBpbmdcbiAgIHR5cGVzLCBpZiAqa2V5KiBpcyBtaXNzaW5nIChub3QgaW4gdGhlIGNvbnRhaW5lciksIGBgS2V5RXJyb3JgYFxuICAgc2hvdWxkIGJlIHJhaXNlZC5cblxuICAgTm90ZTogYGBmb3JgYCBsb29wcyBleHBlY3QgdGhhdCBhbiBgYEluZGV4RXJyb3JgYCB3aWxsIGJlIHJhaXNlZCBmb3JcbiAgICAgaWxsZWdhbCBpbmRleGVzIHRvIGFsbG93IHByb3BlciBkZXRlY3Rpb24gb2YgdGhlIGVuZCBvZiB0aGVcbiAgICAgc2VxdWVuY2UuXG5cbm9iamVjdC5fX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKVxuXG4gICBDYWxsZWQgdG8gaW1wbGVtZW50IGFzc2lnbm1lbnQgdG8gYGBzZWxmW2tleV1gYC4gIFNhbWUgbm90ZSBhcyBmb3JcbiAgIGBgX19nZXRpdGVtX18oKWBgLiAgVGhpcyBzaG91bGQgb25seSBiZSBpbXBsZW1lbnRlZCBmb3IgbWFwcGluZ3MgaWZcbiAgIHRoZSBvYmplY3RzIHN1cHBvcnQgY2hhbmdlcyB0byB0aGUgdmFsdWVzIGZvciBrZXlzLCBvciBpZiBuZXcga2V5c1xuICAgY2FuIGJlIGFkZGVkLCBvciBmb3Igc2VxdWVuY2VzIGlmIGVsZW1lbnRzIGNhbiBiZSByZXBsYWNlZC4gIFRoZVxuICAgc2FtZSBleGNlcHRpb25zIHNob3VsZCBiZSByYWlzZWQgZm9yIGltcHJvcGVyICprZXkqIHZhbHVlcyBhcyBmb3JcbiAgIHRoZSBgYF9fZ2V0aXRlbV9fKClgYCBtZXRob2QuXG5cbm9iamVjdC5fX2RlbGl0ZW1fXyhzZWxmLCBrZXkpXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgZGVsZXRpb24gb2YgYGBzZWxmW2tleV1gYC4gIFNhbWUgbm90ZSBhcyBmb3JcbiAgIGBgX19nZXRpdGVtX18oKWBgLiAgVGhpcyBzaG91bGQgb25seSBiZSBpbXBsZW1lbnRlZCBmb3IgbWFwcGluZ3MgaWZcbiAgIHRoZSBvYmplY3RzIHN1cHBvcnQgcmVtb3ZhbCBvZiBrZXlzLCBvciBmb3Igc2VxdWVuY2VzIGlmIGVsZW1lbnRzXG4gICBjYW4gYmUgcmVtb3ZlZCBmcm9tIHRoZSBzZXF1ZW5jZS4gIFRoZSBzYW1lIGV4Y2VwdGlvbnMgc2hvdWxkIGJlXG4gICByYWlzZWQgZm9yIGltcHJvcGVyICprZXkqIHZhbHVlcyBhcyBmb3IgdGhlIGBgX19nZXRpdGVtX18oKWBgXG4gICBtZXRob2QuXG5cbm9iamVjdC5fX2l0ZXJfXyhzZWxmKVxuXG4gICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiBhbiBpdGVyYXRvciBpcyByZXF1aXJlZCBmb3IgYSBjb250YWluZXIuXG4gICBUaGlzIG1ldGhvZCBzaG91bGQgcmV0dXJuIGEgbmV3IGl0ZXJhdG9yIG9iamVjdCB0aGF0IGNhbiBpdGVyYXRlXG4gICBvdmVyIGFsbCB0aGUgb2JqZWN0cyBpbiB0aGUgY29udGFpbmVyLiAgRm9yIG1hcHBpbmdzLCBpdCBzaG91bGRcbiAgIGl0ZXJhdGUgb3ZlciB0aGUga2V5cyBvZiB0aGUgY29udGFpbmVyLCBhbmQgc2hvdWxkIGFsc28gYmUgbWFkZVxuICAgYXZhaWxhYmxlIGFzIHRoZSBtZXRob2QgYGBrZXlzKClgYC5cblxuICAgSXRlcmF0b3Igb2JqZWN0cyBhbHNvIG5lZWQgdG8gaW1wbGVtZW50IHRoaXMgbWV0aG9kOyB0aGV5IGFyZVxuICAgcmVxdWlyZWQgdG8gcmV0dXJuIHRoZW1zZWx2ZXMuICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBpdGVyYXRvclxuICAgb2JqZWN0cywgc2VlICpJdGVyYXRvciBUeXBlcyouXG5cbm9iamVjdC5fX3JldmVyc2VkX18oc2VsZilcblxuICAgQ2FsbGVkIChpZiBwcmVzZW50KSBieSB0aGUgYGByZXZlcnNlZCgpYGAgYnVpbHQtaW4gdG8gaW1wbGVtZW50XG4gICByZXZlcnNlIGl0ZXJhdGlvbi4gIEl0IHNob3VsZCByZXR1cm4gYSBuZXcgaXRlcmF0b3Igb2JqZWN0IHRoYXRcbiAgIGl0ZXJhdGVzIG92ZXIgYWxsIHRoZSBvYmplY3RzIGluIHRoZSBjb250YWluZXIgaW4gcmV2ZXJzZSBvcmRlci5cblxuICAgSWYgdGhlIGBgX19yZXZlcnNlZF9fKClgYCBtZXRob2QgaXMgbm90IHByb3ZpZGVkLCB0aGVcbiAgIGBgcmV2ZXJzZWQoKWBgIGJ1aWx0LWluIHdpbGwgZmFsbCBiYWNrIHRvIHVzaW5nIHRoZSBzZXF1ZW5jZVxuICAgcHJvdG9jb2wgKGBgX19sZW5fXygpYGAgYW5kIGBgX19nZXRpdGVtX18oKWBgKS4gIE9iamVjdHMgdGhhdFxuICAgc3VwcG9ydCB0aGUgc2VxdWVuY2UgcHJvdG9jb2wgc2hvdWxkIG9ubHkgcHJvdmlkZVxuICAgYGBfX3JldmVyc2VkX18oKWBgIGlmIHRoZXkgY2FuIHByb3ZpZGUgYW4gaW1wbGVtZW50YXRpb24gdGhhdCBpc1xuICAgbW9yZSBlZmZpY2llbnQgdGhhbiB0aGUgb25lIHByb3ZpZGVkIGJ5IGBgcmV2ZXJzZWQoKWBgLlxuXG5UaGUgbWVtYmVyc2hpcCB0ZXN0IG9wZXJhdG9ycyAoYGBpbmBgIGFuZCBgYG5vdCBpbmBgKSBhcmUgbm9ybWFsbHlcbmltcGxlbWVudGVkIGFzIGFuIGl0ZXJhdGlvbiB0aHJvdWdoIGEgc2VxdWVuY2UuICBIb3dldmVyLCBjb250YWluZXJcbm9iamVjdHMgY2FuIHN1cHBseSB0aGUgZm9sbG93aW5nIHNwZWNpYWwgbWV0aG9kIHdpdGggYSBtb3JlIGVmZmljaWVudFxuaW1wbGVtZW50YXRpb24sIHdoaWNoIGFsc28gZG9lcyBub3QgcmVxdWlyZSB0aGUgb2JqZWN0IGJlIGEgc2VxdWVuY2UuXG5cbm9iamVjdC5fX2NvbnRhaW5zX18oc2VsZiwgaXRlbSlcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCBtZW1iZXJzaGlwIHRlc3Qgb3BlcmF0b3JzLiAgU2hvdWxkIHJldHVybiB0cnVlXG4gICBpZiAqaXRlbSogaXMgaW4gKnNlbGYqLCBmYWxzZSBvdGhlcndpc2UuICBGb3IgbWFwcGluZyBvYmplY3RzLCB0aGlzXG4gICBzaG91bGQgY29uc2lkZXIgdGhlIGtleXMgb2YgdGhlIG1hcHBpbmcgcmF0aGVyIHRoYW4gdGhlIHZhbHVlcyBvclxuICAgdGhlIGtleS1pdGVtIHBhaXJzLlxuXG4gICBGb3Igb2JqZWN0cyB0aGF0IGRvblwndCBkZWZpbmUgYGBfX2NvbnRhaW5zX18oKWBgLCB0aGUgbWVtYmVyc2hpcFxuICAgdGVzdCBmaXJzdCB0cmllcyBpdGVyYXRpb24gdmlhIGBgX19pdGVyX18oKWBgLCB0aGVuIHRoZSBvbGRcbiAgIHNlcXVlbmNlIGl0ZXJhdGlvbiBwcm90b2NvbCB2aWEgYGBfX2dldGl0ZW1fXygpYGAsIHNlZSAqdGhpc1xuICAgc2VjdGlvbiBpbiB0aGUgbGFuZ3VhZ2UgcmVmZXJlbmNlKi5cblxuXG5FbXVsYXRpbmcgbnVtZXJpYyB0eXBlc1xuPT09PT09PT09PT09PT09PT09PT09PT1cblxuVGhlIGZvbGxvd2luZyBtZXRob2RzIGNhbiBiZSBkZWZpbmVkIHRvIGVtdWxhdGUgbnVtZXJpYyBvYmplY3RzLlxuTWV0aG9kcyBjb3JyZXNwb25kaW5nIHRvIG9wZXJhdGlvbnMgdGhhdCBhcmUgbm90IHN1cHBvcnRlZCBieSB0aGVcbnBhcnRpY3VsYXIga2luZCBvZiBudW1iZXIgaW1wbGVtZW50ZWQgKGUuZy4sIGJpdHdpc2Ugb3BlcmF0aW9ucyBmb3Jcbm5vbi1pbnRlZ3JhbCBudW1iZXJzKSBzaG91bGQgYmUgbGVmdCB1bmRlZmluZWQuXG5cbm9iamVjdC5fX2FkZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fc3ViX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19tdWxfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3RydWVkaXZfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2Zsb29yZGl2X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19tb2RfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2Rpdm1vZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcG93X18oc2VsZiwgb3RoZXJbLCBtb2R1bG9dKVxub2JqZWN0Ll9fbHNoaWZ0X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19yc2hpZnRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2FuZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9feG9yX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19vcl9fKHNlbGYsIG90aGVyKVxuXG4gICBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQgdG8gaW1wbGVtZW50IHRoZSBiaW5hcnkgYXJpdGhtZXRpY1xuICAgb3BlcmF0aW9ucyAoYGArYGAsIGBgLWBgLCBgYCpgYCwgYGAvYGAsIGBgLy9gYCwgYGAlYGAsXG4gICBgYGRpdm1vZCgpYGAsIGBgcG93KClgYCwgYGAqKmBgLCBgYDw8YGAsIGBgPj5gYCwgYGAmYGAsIGBgXmBgLFxuICAgYGB8YGApLiAgRm9yIGluc3RhbmNlLCB0byBldmFsdWF0ZSB0aGUgZXhwcmVzc2lvbiBgYHggKyB5YGAsIHdoZXJlXG4gICAqeCogaXMgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcyB0aGF0IGhhcyBhbiBgYF9fYWRkX18oKWBgIG1ldGhvZCxcbiAgIGBgeC5fX2FkZF9fKHkpYGAgaXMgY2FsbGVkLiAgVGhlIGBgX19kaXZtb2RfXygpYGAgbWV0aG9kIHNob3VsZCBiZVxuICAgdGhlIGVxdWl2YWxlbnQgdG8gdXNpbmcgYGBfX2Zsb29yZGl2X18oKWBgIGFuZCBgYF9fbW9kX18oKWBgOyBpdFxuICAgc2hvdWxkIG5vdCBiZSByZWxhdGVkIHRvIGBgX190cnVlZGl2X18oKWBgLiAgTm90ZSB0aGF0XG4gICBgYF9fcG93X18oKWBgIHNob3VsZCBiZSBkZWZpbmVkIHRvIGFjY2VwdCBhbiBvcHRpb25hbCB0aGlyZFxuICAgYXJndW1lbnQgaWYgdGhlIHRlcm5hcnkgdmVyc2lvbiBvZiB0aGUgYnVpbHQtaW4gYGBwb3coKWBgIGZ1bmN0aW9uXG4gICBpcyB0byBiZSBzdXBwb3J0ZWQuXG5cbiAgIElmIG9uZSBvZiB0aG9zZSBtZXRob2RzIGRvZXMgbm90IHN1cHBvcnQgdGhlIG9wZXJhdGlvbiB3aXRoIHRoZVxuICAgc3VwcGxpZWQgYXJndW1lbnRzLCBpdCBzaG91bGQgcmV0dXJuIGBgTm90SW1wbGVtZW50ZWRgYC5cblxub2JqZWN0Ll9fcmFkZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnN1Yl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcm11bF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnRydWVkaXZfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3JmbG9vcmRpdl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcm1vZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcmRpdm1vZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnBvd19fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcmxzaGlmdF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnJzaGlmdF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcmFuZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnhvcl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcm9yX18oc2VsZiwgb3RoZXIpXG5cbiAgIFRoZXNlIG1ldGhvZHMgYXJlIGNhbGxlZCB0byBpbXBsZW1lbnQgdGhlIGJpbmFyeSBhcml0aG1ldGljXG4gICBvcGVyYXRpb25zIChgYCtgYCwgYGAtYGAsIGBgKmBgLCBgYC9gYCwgYGAvL2BgLCBgYCVgYCxcbiAgIGBgZGl2bW9kKClgYCwgYGBwb3coKWBgLCBgYCoqYGAsIGBgPDxgYCwgYGA+PmBgLCBgYCZgYCwgYGBeYGAsXG4gICBgYHxgYCkgd2l0aCByZWZsZWN0ZWQgKHN3YXBwZWQpIG9wZXJhbmRzLiBUaGVzZSBmdW5jdGlvbnMgYXJlIG9ubHlcbiAgIGNhbGxlZCBpZiB0aGUgbGVmdCBvcGVyYW5kIGRvZXMgbm90IHN1cHBvcnQgdGhlIGNvcnJlc3BvbmRpbmdcbiAgIG9wZXJhdGlvbiBhbmQgdGhlIG9wZXJhbmRzIGFyZSBvZiBkaWZmZXJlbnQgdHlwZXMuIFsyXSAgRm9yXG4gICBpbnN0YW5jZSwgdG8gZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24gYGB4IC0geWBgLCB3aGVyZSAqeSogaXMgYW5cbiAgIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBoYXMgYW4gYGBfX3JzdWJfXygpYGAgbWV0aG9kLFxuICAgYGB5Ll9fcnN1Yl9fKHgpYGAgaXMgY2FsbGVkIGlmIGBgeC5fX3N1Yl9fKHkpYGAgcmV0dXJuc1xuICAgKk5vdEltcGxlbWVudGVkKi5cblxuICAgTm90ZSB0aGF0IHRlcm5hcnkgYGBwb3coKWBgIHdpbGwgbm90IHRyeSBjYWxsaW5nIGBgX19ycG93X18oKWBgXG4gICAodGhlIGNvZXJjaW9uIHJ1bGVzIHdvdWxkIGJlY29tZSB0b28gY29tcGxpY2F0ZWQpLlxuXG4gICBOb3RlOiBJZiB0aGUgcmlnaHQgb3BlcmFuZFwncyB0eXBlIGlzIGEgc3ViY2xhc3Mgb2YgdGhlIGxlZnQgb3BlcmFuZFwnc1xuICAgICB0eXBlIGFuZCB0aGF0IHN1YmNsYXNzIHByb3ZpZGVzIHRoZSByZWZsZWN0ZWQgbWV0aG9kIGZvciB0aGVcbiAgICAgb3BlcmF0aW9uLCB0aGlzIG1ldGhvZCB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgdGhlIGxlZnQgb3BlcmFuZFwnc1xuICAgICBub24tcmVmbGVjdGVkIG1ldGhvZC4gIFRoaXMgYmVoYXZpb3IgYWxsb3dzIHN1YmNsYXNzZXMgdG9cbiAgICAgb3ZlcnJpZGUgdGhlaXIgYW5jZXN0b3JzXCcgb3BlcmF0aW9ucy5cblxub2JqZWN0Ll9faWFkZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faXN1Yl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faW11bF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faXRydWVkaXZfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2lmbG9vcmRpdl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faW1vZF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9faXBvd19fKHNlbGYsIG90aGVyWywgbW9kdWxvXSlcbm9iamVjdC5fX2lsc2hpZnRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2lyc2hpZnRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2lhbmRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2l4b3JfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2lvcl9fKHNlbGYsIG90aGVyKVxuXG4gICBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQgdG8gaW1wbGVtZW50IHRoZSBhdWdtZW50ZWQgYXJpdGhtZXRpY1xuICAgYXNzaWdubWVudHMgKGBgKz1gYCwgYGAtPWBgLCBgYCo9YGAsIGBgLz1gYCwgYGAvLz1gYCwgYGAlPWBgLFxuICAgYGAqKj1gYCwgYGA8PD1gYCwgYGA+Pj1gYCwgYGAmPWBgLCBgYF49YGAsIGBgfD1gYCkuICBUaGVzZSBtZXRob2RzXG4gICBzaG91bGQgYXR0ZW1wdCB0byBkbyB0aGUgb3BlcmF0aW9uIGluLXBsYWNlIChtb2RpZnlpbmcgKnNlbGYqKSBhbmRcbiAgIHJldHVybiB0aGUgcmVzdWx0ICh3aGljaCBjb3VsZCBiZSwgYnV0IGRvZXMgbm90IGhhdmUgdG8gYmUsXG4gICAqc2VsZiopLiAgSWYgYSBzcGVjaWZpYyBtZXRob2QgaXMgbm90IGRlZmluZWQsIHRoZSBhdWdtZW50ZWRcbiAgIGFzc2lnbm1lbnQgZmFsbHMgYmFjayB0byB0aGUgbm9ybWFsIG1ldGhvZHMuICBGb3IgaW5zdGFuY2UsIHRvXG4gICBleGVjdXRlIHRoZSBzdGF0ZW1lbnQgYGB4ICs9IHlgYCwgd2hlcmUgKngqIGlzIGFuIGluc3RhbmNlIG9mIGFcbiAgIGNsYXNzIHRoYXQgaGFzIGFuIGBgX19pYWRkX18oKWBgIG1ldGhvZCwgYGB4Ll9faWFkZF9fKHkpYGAgaXNcbiAgIGNhbGxlZC4gIElmICp4KiBpcyBhbiBpbnN0YW5jZSBvZiBhIGNsYXNzIHRoYXQgZG9lcyBub3QgZGVmaW5lIGFcbiAgIGBgX19pYWRkX18oKWBgIG1ldGhvZCwgYGB4Ll9fYWRkX18oeSlgYCBhbmQgYGB5Ll9fcmFkZF9fKHgpYGAgYXJlXG4gICBjb25zaWRlcmVkLCBhcyB3aXRoIHRoZSBldmFsdWF0aW9uIG9mIGBgeCArIHlgYC5cblxub2JqZWN0Ll9fbmVnX18oc2VsZilcbm9iamVjdC5fX3Bvc19fKHNlbGYpXG5vYmplY3QuX19hYnNfXyhzZWxmKVxub2JqZWN0Ll9faW52ZXJ0X18oc2VsZilcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCB0aGUgdW5hcnkgYXJpdGhtZXRpYyBvcGVyYXRpb25zIChgYC1gYCwgYGArYGAsXG4gICBgYGFicygpYGAgYW5kIGBgfmBgKS5cblxub2JqZWN0Ll9fY29tcGxleF9fKHNlbGYpXG5vYmplY3QuX19pbnRfXyhzZWxmKVxub2JqZWN0Ll9fZmxvYXRfXyhzZWxmKVxub2JqZWN0Ll9fcm91bmRfXyhzZWxmWywgbl0pXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgdGhlIGJ1aWx0LWluIGZ1bmN0aW9ucyBgYGNvbXBsZXgoKWBgLFxuICAgYGBpbnQoKWBgLCBgYGZsb2F0KClgYCBhbmQgYGByb3VuZCgpYGAuICBTaG91bGQgcmV0dXJuIGEgdmFsdWUgb2ZcbiAgIHRoZSBhcHByb3ByaWF0ZSB0eXBlLlxuXG5vYmplY3QuX19pbmRleF9fKHNlbGYpXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgYGBvcGVyYXRvci5pbmRleCgpYGAuICBBbHNvIGNhbGxlZCB3aGVuZXZlclxuICAgUHl0aG9uIG5lZWRzIGFuIGludGVnZXIgb2JqZWN0IChzdWNoIGFzIGluIHNsaWNpbmcsIG9yIGluIHRoZVxuICAgYnVpbHQtaW4gYGBiaW4oKWBgLCBgYGhleCgpYGAgYW5kIGBgb2N0KClgYCBmdW5jdGlvbnMpLiBNdXN0IHJldHVyblxuICAgYW4gaW50ZWdlci5cblxuXG5XaXRoIFN0YXRlbWVudCBDb250ZXh0IE1hbmFnZXJzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkEgKmNvbnRleHQgbWFuYWdlciogaXMgYW4gb2JqZWN0IHRoYXQgZGVmaW5lcyB0aGUgcnVudGltZSBjb250ZXh0IHRvXG5iZSBlc3RhYmxpc2hlZCB3aGVuIGV4ZWN1dGluZyBhIGBgd2l0aGBgIHN0YXRlbWVudC4gVGhlIGNvbnRleHRcbm1hbmFnZXIgaGFuZGxlcyB0aGUgZW50cnkgaW50bywgYW5kIHRoZSBleGl0IGZyb20sIHRoZSBkZXNpcmVkIHJ1bnRpbWVcbmNvbnRleHQgZm9yIHRoZSBleGVjdXRpb24gb2YgdGhlIGJsb2NrIG9mIGNvZGUuICBDb250ZXh0IG1hbmFnZXJzIGFyZVxubm9ybWFsbHkgaW52b2tlZCB1c2luZyB0aGUgYGB3aXRoYGAgc3RhdGVtZW50IChkZXNjcmliZWQgaW4gc2VjdGlvblxuKlRoZSB3aXRoIHN0YXRlbWVudCopLCBidXQgY2FuIGFsc28gYmUgdXNlZCBieSBkaXJlY3RseSBpbnZva2luZyB0aGVpclxubWV0aG9kcy5cblxuVHlwaWNhbCB1c2VzIG9mIGNvbnRleHQgbWFuYWdlcnMgaW5jbHVkZSBzYXZpbmcgYW5kIHJlc3RvcmluZyB2YXJpb3VzXG5raW5kcyBvZiBnbG9iYWwgc3RhdGUsIGxvY2tpbmcgYW5kIHVubG9ja2luZyByZXNvdXJjZXMsIGNsb3Npbmcgb3BlbmVkXG5maWxlcywgZXRjLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiBjb250ZXh0IG1hbmFnZXJzLCBzZWUgKkNvbnRleHQgTWFuYWdlciBUeXBlcyouXG5cbm9iamVjdC5fX2VudGVyX18oc2VsZilcblxuICAgRW50ZXIgdGhlIHJ1bnRpbWUgY29udGV4dCByZWxhdGVkIHRvIHRoaXMgb2JqZWN0LiBUaGUgYGB3aXRoYGBcbiAgIHN0YXRlbWVudCB3aWxsIGJpbmQgdGhpcyBtZXRob2RcJ3MgcmV0dXJuIHZhbHVlIHRvIHRoZSB0YXJnZXQocylcbiAgIHNwZWNpZmllZCBpbiB0aGUgYGBhc2BgIGNsYXVzZSBvZiB0aGUgc3RhdGVtZW50LCBpZiBhbnkuXG5cbm9iamVjdC5fX2V4aXRfXyhzZWxmLCBleGNfdHlwZSwgZXhjX3ZhbHVlLCB0cmFjZWJhY2spXG5cbiAgIEV4aXQgdGhlIHJ1bnRpbWUgY29udGV4dCByZWxhdGVkIHRvIHRoaXMgb2JqZWN0LiBUaGUgcGFyYW1ldGVyc1xuICAgZGVzY3JpYmUgdGhlIGV4Y2VwdGlvbiB0aGF0IGNhdXNlZCB0aGUgY29udGV4dCB0byBiZSBleGl0ZWQuIElmIHRoZVxuICAgY29udGV4dCB3YXMgZXhpdGVkIHdpdGhvdXQgYW4gZXhjZXB0aW9uLCBhbGwgdGhyZWUgYXJndW1lbnRzIHdpbGxcbiAgIGJlIGBgTm9uZWBgLlxuXG4gICBJZiBhbiBleGNlcHRpb24gaXMgc3VwcGxpZWQsIGFuZCB0aGUgbWV0aG9kIHdpc2hlcyB0byBzdXBwcmVzcyB0aGVcbiAgIGV4Y2VwdGlvbiAoaS5lLiwgcHJldmVudCBpdCBmcm9tIGJlaW5nIHByb3BhZ2F0ZWQpLCBpdCBzaG91bGRcbiAgIHJldHVybiBhIHRydWUgdmFsdWUuIE90aGVyd2lzZSwgdGhlIGV4Y2VwdGlvbiB3aWxsIGJlIHByb2Nlc3NlZFxuICAgbm9ybWFsbHkgdXBvbiBleGl0IGZyb20gdGhpcyBtZXRob2QuXG5cbiAgIE5vdGUgdGhhdCBgYF9fZXhpdF9fKClgYCBtZXRob2RzIHNob3VsZCBub3QgcmVyYWlzZSB0aGUgcGFzc2VkLWluXG4gICBleGNlcHRpb247IHRoaXMgaXMgdGhlIGNhbGxlclwncyByZXNwb25zaWJpbGl0eS5cblxuU2VlIGFsc286XG5cbiAgICoqUEVQIDAzNDMqKiAtIFRoZSAid2l0aCIgc3RhdGVtZW50XG4gICAgICBUaGUgc3BlY2lmaWNhdGlvbiwgYmFja2dyb3VuZCwgYW5kIGV4YW1wbGVzIGZvciB0aGUgUHl0aG9uXG4gICAgICBgYHdpdGhgYCBzdGF0ZW1lbnQuXG5cblxuU3BlY2lhbCBtZXRob2QgbG9va3VwXG49PT09PT09PT09PT09PT09PT09PT1cblxuRm9yIGN1c3RvbSBjbGFzc2VzLCBpbXBsaWNpdCBpbnZvY2F0aW9ucyBvZiBzcGVjaWFsIG1ldGhvZHMgYXJlIG9ubHlcbmd1YXJhbnRlZWQgdG8gd29yayBjb3JyZWN0bHkgaWYgZGVmaW5lZCBvbiBhbiBvYmplY3RcJ3MgdHlwZSwgbm90IGluXG50aGUgb2JqZWN0XCdzIGluc3RhbmNlIGRpY3Rpb25hcnkuICBUaGF0IGJlaGF2aW91ciBpcyB0aGUgcmVhc29uIHdoeVxudGhlIGZvbGxvd2luZyBjb2RlIHJhaXNlcyBhbiBleGNlcHRpb246XG5cbiAgID4+PiBjbGFzcyBDOlxuICAgLi4uICAgICBwYXNzXG4gICAuLi5cbiAgID4+PiBjID0gQygpXG4gICA+Pj4gYy5fX2xlbl9fID0gbGFtYmRhOiA1XG4gICA+Pj4gbGVuKGMpXG4gICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDEsIGluIDxtb2R1bGU+XG4gICBUeXBlRXJyb3I6IG9iamVjdCBvZiB0eXBlIFwnQ1wnIGhhcyBubyBsZW4oKVxuXG5UaGUgcmF0aW9uYWxlIGJlaGluZCB0aGlzIGJlaGF2aW91ciBsaWVzIHdpdGggYSBudW1iZXIgb2Ygc3BlY2lhbFxubWV0aG9kcyBzdWNoIGFzIGBgX19oYXNoX18oKWBgIGFuZCBgYF9fcmVwcl9fKClgYCB0aGF0IGFyZSBpbXBsZW1lbnRlZFxuYnkgYWxsIG9iamVjdHMsIGluY2x1ZGluZyB0eXBlIG9iamVjdHMuIElmIHRoZSBpbXBsaWNpdCBsb29rdXAgb2ZcbnRoZXNlIG1ldGhvZHMgdXNlZCB0aGUgY29udmVudGlvbmFsIGxvb2t1cCBwcm9jZXNzLCB0aGV5IHdvdWxkIGZhaWxcbndoZW4gaW52b2tlZCBvbiB0aGUgdHlwZSBvYmplY3QgaXRzZWxmOlxuXG4gICA+Pj4gMSAuX19oYXNoX18oKSA9PSBoYXNoKDEpXG4gICBUcnVlXG4gICA+Pj4gaW50Ll9faGFzaF9fKCkgPT0gaGFzaChpbnQpXG4gICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6XG4gICAgIEZpbGUgIjxzdGRpbj4iLCBsaW5lIDEsIGluIDxtb2R1bGU+XG4gICBUeXBlRXJyb3I6IGRlc2NyaXB0b3IgXCdfX2hhc2hfX1wnIG9mIFwnaW50XCcgb2JqZWN0IG5lZWRzIGFuIGFyZ3VtZW50XG5cbkluY29ycmVjdGx5IGF0dGVtcHRpbmcgdG8gaW52b2tlIGFuIHVuYm91bmQgbWV0aG9kIG9mIGEgY2xhc3MgaW4gdGhpc1xud2F5IGlzIHNvbWV0aW1lcyByZWZlcnJlZCB0byBhcyBcJ21ldGFjbGFzcyBjb25mdXNpb25cJywgYW5kIGlzIGF2b2lkZWRcbmJ5IGJ5cGFzc2luZyB0aGUgaW5zdGFuY2Ugd2hlbiBsb29raW5nIHVwIHNwZWNpYWwgbWV0aG9kczpcblxuICAgPj4+IHR5cGUoMSkuX19oYXNoX18oMSkgPT0gaGFzaCgxKVxuICAgVHJ1ZVxuICAgPj4+IHR5cGUoaW50KS5fX2hhc2hfXyhpbnQpID09IGhhc2goaW50KVxuICAgVHJ1ZVxuXG5JbiBhZGRpdGlvbiB0byBieXBhc3NpbmcgYW55IGluc3RhbmNlIGF0dHJpYnV0ZXMgaW4gdGhlIGludGVyZXN0IG9mXG5jb3JyZWN0bmVzcywgaW1wbGljaXQgc3BlY2lhbCBtZXRob2QgbG9va3VwIGdlbmVyYWxseSBhbHNvIGJ5cGFzc2VzXG50aGUgYGBfX2dldGF0dHJpYnV0ZV9fKClgYCBtZXRob2QgZXZlbiBvZiB0aGUgb2JqZWN0XCdzIG1ldGFjbGFzczpcblxuICAgPj4+IGNsYXNzIE1ldGEodHlwZSk6XG4gICAuLi4gICAgZGVmIF9fZ2V0YXR0cmlidXRlX18oKmFyZ3MpOlxuICAgLi4uICAgICAgIHByaW50KCJNZXRhY2xhc3MgZ2V0YXR0cmlidXRlIGludm9rZWQiKVxuICAgLi4uICAgICAgIHJldHVybiB0eXBlLl9fZ2V0YXR0cmlidXRlX18oKmFyZ3MpXG4gICAuLi5cbiAgID4+PiBjbGFzcyBDKG9iamVjdCwgbWV0YWNsYXNzPU1ldGEpOlxuICAgLi4uICAgICBkZWYgX19sZW5fXyhzZWxmKTpcbiAgIC4uLiAgICAgICAgIHJldHVybiAxMFxuICAgLi4uICAgICBkZWYgX19nZXRhdHRyaWJ1dGVfXygqYXJncyk6XG4gICAuLi4gICAgICAgICBwcmludCgiQ2xhc3MgZ2V0YXR0cmlidXRlIGludm9rZWQiKVxuICAgLi4uICAgICAgICAgcmV0dXJuIG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKCphcmdzKVxuICAgLi4uXG4gICA+Pj4gYyA9IEMoKVxuICAgPj4+IGMuX19sZW5fXygpICAgICAgICAgICAgICAgICAjIEV4cGxpY2l0IGxvb2t1cCB2aWEgaW5zdGFuY2VcbiAgIENsYXNzIGdldGF0dHJpYnV0ZSBpbnZva2VkXG4gICAxMFxuICAgPj4+IHR5cGUoYykuX19sZW5fXyhjKSAgICAgICAgICAjIEV4cGxpY2l0IGxvb2t1cCB2aWEgdHlwZVxuICAgTWV0YWNsYXNzIGdldGF0dHJpYnV0ZSBpbnZva2VkXG4gICAxMFxuICAgPj4+IGxlbihjKSAgICAgICAgICAgICAgICAgICAgICAjIEltcGxpY2l0IGxvb2t1cFxuICAgMTBcblxuQnlwYXNzaW5nIHRoZSBgYF9fZ2V0YXR0cmlidXRlX18oKWBgIG1hY2hpbmVyeSBpbiB0aGlzIGZhc2hpb25cbnByb3ZpZGVzIHNpZ25pZmljYW50IHNjb3BlIGZvciBzcGVlZCBvcHRpbWlzYXRpb25zIHdpdGhpbiB0aGVcbmludGVycHJldGVyLCBhdCB0aGUgY29zdCBvZiBzb21lIGZsZXhpYmlsaXR5IGluIHRoZSBoYW5kbGluZyBvZlxuc3BlY2lhbCBtZXRob2RzICh0aGUgc3BlY2lhbCBtZXRob2QgKm11c3QqIGJlIHNldCBvbiB0aGUgY2xhc3Mgb2JqZWN0XG5pdHNlbGYgaW4gb3JkZXIgdG8gYmUgY29uc2lzdGVudGx5IGludm9rZWQgYnkgdGhlIGludGVycHJldGVyKS5cblxuLVsgRm9vdG5vdGVzIF0tXG5cblsxXSBJdCAqaXMqIHBvc3NpYmxlIGluIHNvbWUgY2FzZXMgdG8gY2hhbmdlIGFuIG9iamVjdFwncyB0eXBlLCB1bmRlclxuICAgIGNlcnRhaW4gY29udHJvbGxlZCBjb25kaXRpb25zLiBJdCBnZW5lcmFsbHkgaXNuXCd0IGEgZ29vZCBpZGVhXG4gICAgdGhvdWdoLCBzaW5jZSBpdCBjYW4gbGVhZCB0byBzb21lIHZlcnkgc3RyYW5nZSBiZWhhdmlvdXIgaWYgaXQgaXNcbiAgICBoYW5kbGVkIGluY29ycmVjdGx5LlxuXG5bMl0gRm9yIG9wZXJhbmRzIG9mIHRoZSBzYW1lIHR5cGUsIGl0IGlzIGFzc3VtZWQgdGhhdCBpZiB0aGUgbm9uLVxuICAgIHJlZmxlY3RlZCBtZXRob2QgKHN1Y2ggYXMgYGBfX2FkZF9fKClgYCkgZmFpbHMgdGhlIG9wZXJhdGlvbiBpc1xuICAgIG5vdCBzdXBwb3J0ZWQsIHdoaWNoIGlzIHdoeSB0aGUgcmVmbGVjdGVkIG1ldGhvZCBpcyBub3QgY2FsbGVkLlxuJywKLSAnc3RyaW5nLW1ldGhvZHMnOiAnXG5TdHJpbmcgTWV0aG9kc1xuKioqKioqKioqKioqKipcblxuU3RyaW5nIG9iamVjdHMgc3VwcG9ydCB0aGUgbWV0aG9kcyBsaXN0ZWQgYmVsb3cuXG5cbkluIGFkZGl0aW9uLCBQeXRob25cJ3Mgc3RyaW5ncyBzdXBwb3J0IHRoZSBzZXF1ZW5jZSB0eXBlIG1ldGhvZHNcbmRlc2NyaWJlZCBpbiB0aGUgKlNlcXVlbmNlIFR5cGVzIC0tLSBzdHIsIGJ5dGVzLCBieXRlYXJyYXksIGxpc3QsXG50dXBsZSwgcmFuZ2UqIHNlY3Rpb24uIFRvIG91dHB1dCBmb3JtYXR0ZWQgc3RyaW5ncywgc2VlIHRoZSAqU3RyaW5nXG5Gb3JtYXR0aW5nKiBzZWN0aW9uLiBBbHNvLCBzZWUgdGhlIGBgcmVgYCBtb2R1bGUgZm9yIHN0cmluZyBmdW5jdGlvbnNcbmJhc2VkIG9uIHJlZ3VsYXIgZXhwcmVzc2lvbnMuXG5cbnN0ci5jYXBpdGFsaXplKClcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggaXRzIGZpcnN0IGNoYXJhY3RlciBjYXBpdGFsaXplZFxuICAgYW5kIHRoZSByZXN0IGxvd2VyY2FzZWQuXG5cbnN0ci5jZW50ZXIod2lkdGhbLCBmaWxsY2hhcl0pXG5cbiAgIFJldHVybiBjZW50ZXJlZCBpbiBhIHN0cmluZyBvZiBsZW5ndGggKndpZHRoKi4gUGFkZGluZyBpcyBkb25lXG4gICB1c2luZyB0aGUgc3BlY2lmaWVkICpmaWxsY2hhciogKGRlZmF1bHQgaXMgYSBzcGFjZSkuXG5cbnN0ci5jb3VudChzdWJbLCBzdGFydFssIGVuZF1dKVxuXG4gICBSZXR1cm4gdGhlIG51bWJlciBvZiBub24tb3ZlcmxhcHBpbmcgb2NjdXJyZW5jZXMgb2Ygc3Vic3RyaW5nICpzdWIqXG4gICBpbiB0aGUgcmFuZ2UgWypzdGFydCosICplbmQqXS4gIE9wdGlvbmFsIGFyZ3VtZW50cyAqc3RhcnQqIGFuZFxuICAgKmVuZCogYXJlIGludGVycHJldGVkIGFzIGluIHNsaWNlIG5vdGF0aW9uLlxuXG5zdHIuZW5jb2RlKGVuY29kaW5nPSJ1dGYtOCIsIGVycm9ycz0ic3RyaWN0IilcblxuICAgUmV0dXJuIGFuIGVuY29kZWQgdmVyc2lvbiBvZiB0aGUgc3RyaW5nIGFzIGEgYnl0ZXMgb2JqZWN0LiBEZWZhdWx0XG4gICBlbmNvZGluZyBpcyBgYFwndXRmLThcJ2BgLiAqZXJyb3JzKiBtYXkgYmUgZ2l2ZW4gdG8gc2V0IGEgZGlmZmVyZW50XG4gICBlcnJvciBoYW5kbGluZyBzY2hlbWUuIFRoZSBkZWZhdWx0IGZvciAqZXJyb3JzKiBpcyBgYFwnc3RyaWN0XCdgYCxcbiAgIG1lYW5pbmcgdGhhdCBlbmNvZGluZyBlcnJvcnMgcmFpc2UgYSBgYFVuaWNvZGVFcnJvcmBgLiBPdGhlclxuICAgcG9zc2libGUgdmFsdWVzIGFyZSBgYFwnaWdub3JlXCdgYCwgYGBcJ3JlcGxhY2VcJ2BgLFxuICAgYGBcJ3htbGNoYXJyZWZyZXBsYWNlXCdgYCwgYGBcJ2JhY2tzbGFzaHJlcGxhY2VcJ2BgIGFuZCBhbnkgb3RoZXIgbmFtZVxuICAgcmVnaXN0ZXJlZCB2aWEgYGBjb2RlY3MucmVnaXN0ZXJfZXJyb3IoKWBgLCBzZWUgc2VjdGlvbiAqQ29kZWMgQmFzZVxuICAgQ2xhc3NlcyouIEZvciBhIGxpc3Qgb2YgcG9zc2libGUgZW5jb2RpbmdzLCBzZWUgc2VjdGlvbiAqU3RhbmRhcmRcbiAgIEVuY29kaW5ncyouXG5cbiAgIENoYW5nZWQgaW4gdmVyc2lvbiAzLjE6IFN1cHBvcnQgZm9yIGtleXdvcmQgYXJndW1lbnRzIGFkZGVkLlxuXG5zdHIuZW5kc3dpdGgoc3VmZml4Wywgc3RhcnRbLCBlbmRdXSlcblxuICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSBzdHJpbmcgZW5kcyB3aXRoIHRoZSBzcGVjaWZpZWQgKnN1ZmZpeCosXG4gICBvdGhlcndpc2UgcmV0dXJuIGBgRmFsc2VgYC4gICpzdWZmaXgqIGNhbiBhbHNvIGJlIGEgdHVwbGUgb2ZcbiAgIHN1ZmZpeGVzIHRvIGxvb2sgZm9yLiAgV2l0aCBvcHRpb25hbCAqc3RhcnQqLCB0ZXN0IGJlZ2lubmluZyBhdFxuICAgdGhhdCBwb3NpdGlvbi4gIFdpdGggb3B0aW9uYWwgKmVuZCosIHN0b3AgY29tcGFyaW5nIGF0IHRoYXRcbiAgIHBvc2l0aW9uLlxuXG5zdHIuZXhwYW5kdGFicyhbdGFic2l6ZV0pXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aGVyZSBhbGwgdGFiIGNoYXJhY3RlcnMgYXJlIHJlcGxhY2VkXG4gICBieSB6ZXJvIG9yIG1vcmUgc3BhY2VzLCBkZXBlbmRpbmcgb24gdGhlIGN1cnJlbnQgY29sdW1uIGFuZCB0aGVcbiAgIGdpdmVuIHRhYiBzaXplLiAgVGhlIGNvbHVtbiBudW1iZXIgaXMgcmVzZXQgdG8gemVybyBhZnRlciBlYWNoXG4gICBuZXdsaW5lIG9jY3VycmluZyBpbiB0aGUgc3RyaW5nLiBJZiAqdGFic2l6ZSogaXMgbm90IGdpdmVuLCBhIHRhYlxuICAgc2l6ZSBvZiBgYDhgYCBjaGFyYWN0ZXJzIGlzIGFzc3VtZWQuICBUaGlzIGRvZXNuXCd0IHVuZGVyc3RhbmQgb3RoZXJcbiAgIG5vbi1wcmludGluZyBjaGFyYWN0ZXJzIG9yIGVzY2FwZSBzZXF1ZW5jZXMuXG5cbnN0ci5maW5kKHN1YlssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIFJldHVybiB0aGUgbG93ZXN0IGluZGV4IGluIHRoZSBzdHJpbmcgd2hlcmUgc3Vic3RyaW5nICpzdWIqIGlzXG4gICBmb3VuZCwgc3VjaCB0aGF0ICpzdWIqIGlzIGNvbnRhaW5lZCBpbiB0aGUgc2xpY2UgYGBzW3N0YXJ0OmVuZF1gYC5cbiAgIE9wdGlvbmFsIGFyZ3VtZW50cyAqc3RhcnQqIGFuZCAqZW5kKiBhcmUgaW50ZXJwcmV0ZWQgYXMgaW4gc2xpY2VcbiAgIG5vdGF0aW9uLiAgUmV0dXJuIGBgLTFgYCBpZiAqc3ViKiBpcyBub3QgZm91bmQuXG5cbiAgIE5vdGU6IFRoZSBgYGZpbmQoKWBgIG1ldGhvZCBzaG91bGQgYmUgdXNlZCBvbmx5IGlmIHlvdSBuZWVkIHRvIGtub3cgdGhlXG4gICAgIHBvc2l0aW9uIG9mICpzdWIqLiAgVG8gY2hlY2sgaWYgKnN1YiogaXMgYSBzdWJzdHJpbmcgb3Igbm90LCB1c2VcbiAgICAgdGhlIGBgaW5gYCBvcGVyYXRvcjpcblxuICAgICAgICA+Pj4gXCdQeVwnIGluIFwnUHl0aG9uXCdcbiAgICAgICAgVHJ1ZVxuXG5zdHIuZm9ybWF0KCphcmdzLCAqKmt3YXJncylcblxuICAgUGVyZm9ybSBhIHN0cmluZyBmb3JtYXR0aW5nIG9wZXJhdGlvbi4gIFRoZSBzdHJpbmcgb24gd2hpY2ggdGhpc1xuICAgbWV0aG9kIGlzIGNhbGxlZCBjYW4gY29udGFpbiBsaXRlcmFsIHRleHQgb3IgcmVwbGFjZW1lbnQgZmllbGRzXG4gICBkZWxpbWl0ZWQgYnkgYnJhY2VzIGBge31gYC4gIEVhY2ggcmVwbGFjZW1lbnQgZmllbGQgY29udGFpbnMgZWl0aGVyXG4gICB0aGUgbnVtZXJpYyBpbmRleCBvZiBhIHBvc2l0aW9uYWwgYXJndW1lbnQsIG9yIHRoZSBuYW1lIG9mIGFcbiAgIGtleXdvcmQgYXJndW1lbnQuICBSZXR1cm5zIGEgY29weSBvZiB0aGUgc3RyaW5nIHdoZXJlIGVhY2hcbiAgIHJlcGxhY2VtZW50IGZpZWxkIGlzIHJlcGxhY2VkIHdpdGggdGhlIHN0cmluZyB2YWx1ZSBvZiB0aGVcbiAgIGNvcnJlc3BvbmRpbmcgYXJndW1lbnQuXG5cbiAgID4+PiAiVGhlIHN1bSBvZiAxICsgMiBpcyB7MH0iLmZvcm1hdCgxKzIpXG4gICBcJ1RoZSBzdW0gb2YgMSArIDIgaXMgM1wnXG5cbiAgIFNlZSAqRm9ybWF0IFN0cmluZyBTeW50YXgqIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSB2YXJpb3VzXG4gICBmb3JtYXR0aW5nIG9wdGlvbnMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkIGluIGZvcm1hdCBzdHJpbmdzLlxuXG5zdHIuZm9ybWF0X21hcChtYXBwaW5nKVxuXG4gICBTaW1pbGFyIHRvIGBgc3RyLmZvcm1hdCgqKm1hcHBpbmcpYGAsIGV4Y2VwdCB0aGF0IGBgbWFwcGluZ2BgIGlzXG4gICB1c2VkIGRpcmVjdGx5IGFuZCBub3QgY29waWVkIHRvIGEgYGBkaWN0YGAgLiAgVGhpcyBpcyB1c2VmdWwgaWYgZm9yXG4gICBleGFtcGxlIGBgbWFwcGluZ2BgIGlzIGEgZGljdCBzdWJjbGFzczpcblxuICAgPj4+IGNsYXNzIERlZmF1bHQoZGljdCk6XG4gICAuLi4gICAgIGRlZiBfX21pc3NpbmdfXyhzZWxmLCBrZXkpOlxuICAgLi4uICAgICAgICAgcmV0dXJuIGtleVxuICAgLi4uXG4gICA+Pj4gXCd7bmFtZX0gd2FzIGJvcm4gaW4ge2NvdW50cnl9XCcuZm9ybWF0X21hcChEZWZhdWx0KG5hbWU9XCdHdWlkb1wnKSlcbiAgIFwnR3VpZG8gd2FzIGJvcm4gaW4gY291bnRyeVwnXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuc3RyLmluZGV4KHN1YlssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIExpa2UgYGBmaW5kKClgYCwgYnV0IHJhaXNlIGBgVmFsdWVFcnJvcmBgIHdoZW4gdGhlIHN1YnN0cmluZyBpcyBub3RcbiAgIGZvdW5kLlxuXG5zdHIuaXNhbG51bSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcgYXJlIGFscGhhbnVtZXJpYyBhbmRcbiAgIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIsIGZhbHNlIG90aGVyd2lzZS4gIEEgY2hhcmFjdGVyXG4gICBgYGNgYCBpcyBhbHBoYW51bWVyaWMgaWYgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmV0dXJucyBgYFRydWVgYDpcbiAgIGBgYy5pc2FscGhhKClgYCwgYGBjLmlzZGVjaW1hbCgpYGAsIGBgYy5pc2RpZ2l0KClgYCwgb3JcbiAgIGBgYy5pc251bWVyaWMoKWBgLlxuXG5zdHIuaXNhbHBoYSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcgYXJlIGFscGhhYmV0aWMgYW5kXG4gICB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuICBBbHBoYWJldGljXG4gICBjaGFyYWN0ZXJzIGFyZSB0aG9zZSBjaGFyYWN0ZXJzIGRlZmluZWQgaW4gdGhlIFVuaWNvZGUgY2hhcmFjdGVyXG4gICBkYXRhYmFzZSBhcyAiTGV0dGVyIiwgaS5lLiwgdGhvc2Ugd2l0aCBnZW5lcmFsIGNhdGVnb3J5IHByb3BlcnR5XG4gICBiZWluZyBvbmUgb2YgIkxtIiwgIkx0IiwgIkx1IiwgIkxsIiwgb3IgIkxvIi4gIE5vdGUgdGhhdCB0aGlzIGlzXG4gICBkaWZmZXJlbnQgZnJvbSB0aGUgIkFscGhhYmV0aWMiIHByb3BlcnR5IGRlZmluZWQgaW4gdGhlIFVuaWNvZGVcbiAgIFN0YW5kYXJkLlxuXG5zdHIuaXNkZWNpbWFsKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZyBhcmUgZGVjaW1hbCBjaGFyYWN0ZXJzXG4gICBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiBEZWNpbWFsXG4gICBjaGFyYWN0ZXJzIGFyZSB0aG9zZSBmcm9tIGdlbmVyYWwgY2F0ZWdvcnkgIk5kIi4gVGhpcyBjYXRlZ29yeVxuICAgaW5jbHVkZXMgZGlnaXQgY2hhcmFjdGVycywgYW5kIGFsbCBjaGFyYWN0ZXJzIHRoYXQgY2FuIGJlIHVzZWQgdG9cbiAgIGZvcm0gZGVjaW1hbC1yYWRpeCBudW1iZXJzLCBlLmcuIFUrMDY2MCwgQVJBQklDLUlORElDIERJR0lUIFpFUk8uXG5cbnN0ci5pc2RpZ2l0KClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZyBhcmUgZGlnaXRzIGFuZCB0aGVyZSBpc1xuICAgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiAgRGlnaXRzIGluY2x1ZGUgZGVjaW1hbFxuICAgY2hhcmFjdGVycyBhbmQgZGlnaXRzIHRoYXQgbmVlZCBzcGVjaWFsIGhhbmRsaW5nLCBzdWNoIGFzIHRoZVxuICAgY29tcGF0aWJpbGl0eSBzdXBlcnNjcmlwdCBkaWdpdHMuICBGb3JtYWxseSwgYSBkaWdpdCBpcyBhIGNoYXJhY3RlclxuICAgdGhhdCBoYXMgdGhlIHByb3BlcnR5IHZhbHVlIE51bWVyaWNfVHlwZT1EaWdpdCBvclxuICAgTnVtZXJpY19UeXBlPURlY2ltYWwuXG5cbnN0ci5pc2lkZW50aWZpZXIoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgaWRlbnRpZmllciBhY2NvcmRpbmcgdG8gdGhlXG4gICBsYW5ndWFnZSBkZWZpbml0aW9uLCBzZWN0aW9uICpJZGVudGlmaWVycyBhbmQga2V5d29yZHMqLlxuXG5zdHIuaXNsb3dlcigpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjYXNlZCBjaGFyYWN0ZXJzIFs0XSBpbiB0aGUgc3RyaW5nIGFyZSBsb3dlcmNhc2VcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2FzZWQgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuXG5cbnN0ci5pc251bWVyaWMoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIGFyZSBudW1lcmljIGNoYXJhY3RlcnMsXG4gICBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiBOdW1lcmljXG4gICBjaGFyYWN0ZXJzIGluY2x1ZGUgZGlnaXQgY2hhcmFjdGVycywgYW5kIGFsbCBjaGFyYWN0ZXJzIHRoYXQgaGF2ZVxuICAgdGhlIFVuaWNvZGUgbnVtZXJpYyB2YWx1ZSBwcm9wZXJ0eSwgZS5nLiBVKzIxNTUsIFZVTEdBUiBGUkFDVElPTlxuICAgT05FIEZJRlRILiAgRm9ybWFsbHksIG51bWVyaWMgY2hhcmFjdGVycyBhcmUgdGhvc2Ugd2l0aCB0aGVcbiAgIHByb3BlcnR5IHZhbHVlIE51bWVyaWNfVHlwZT1EaWdpdCwgTnVtZXJpY19UeXBlPURlY2ltYWwgb3JcbiAgIE51bWVyaWNfVHlwZT1OdW1lcmljLlxuXG5zdHIuaXNwcmludGFibGUoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIGFyZSBwcmludGFibGUgb3IgdGhlXG4gICBzdHJpbmcgaXMgZW1wdHksIGZhbHNlIG90aGVyd2lzZS4gIE5vbnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZVxuICAgdGhvc2UgY2hhcmFjdGVycyBkZWZpbmVkIGluIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSBhc1xuICAgIk90aGVyIiBvciAiU2VwYXJhdG9yIiwgZXhjZXB0aW5nIHRoZSBBU0NJSSBzcGFjZSAoMHgyMCkgd2hpY2ggaXNcbiAgIGNvbnNpZGVyZWQgcHJpbnRhYmxlLiAgKE5vdGUgdGhhdCBwcmludGFibGUgY2hhcmFjdGVycyBpbiB0aGlzXG4gICBjb250ZXh0IGFyZSB0aG9zZSB3aGljaCBzaG91bGQgbm90IGJlIGVzY2FwZWQgd2hlbiBgYHJlcHIoKWBgIGlzXG4gICBpbnZva2VkIG9uIGEgc3RyaW5nLiAgSXQgaGFzIG5vIGJlYXJpbmcgb24gdGhlIGhhbmRsaW5nIG9mIHN0cmluZ3NcbiAgIHdyaXR0ZW4gdG8gYGBzeXMuc3Rkb3V0YGAgb3IgYGBzeXMuc3RkZXJyYGAuKVxuXG5zdHIuaXNzcGFjZSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIHRoZXJlIGFyZSBvbmx5IHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nXG4gICBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiAgV2hpdGVzcGFjZVxuICAgY2hhcmFjdGVycyAgYXJlIHRob3NlIGNoYXJhY3RlcnMgZGVmaW5lZCBpbiB0aGUgVW5pY29kZSBjaGFyYWN0ZXJcbiAgIGRhdGFiYXNlIGFzICJPdGhlciIgb3IgIlNlcGFyYXRvciIgYW5kIHRob3NlIHdpdGggYmlkaXJlY3Rpb25hbFxuICAgcHJvcGVydHkgYmVpbmcgb25lIG9mICJXUyIsICJCIiwgb3IgIlMiLlxuXG5zdHIuaXN0aXRsZSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmcgaXMgYSB0aXRsZWNhc2VkIHN0cmluZyBhbmQgdGhlcmUgaXMgYXRcbiAgIGxlYXN0IG9uZSBjaGFyYWN0ZXIsIGZvciBleGFtcGxlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIG1heSBvbmx5XG4gICBmb2xsb3cgdW5jYXNlZCBjaGFyYWN0ZXJzIGFuZCBsb3dlcmNhc2UgY2hhcmFjdGVycyBvbmx5IGNhc2VkIG9uZXMuXG4gICBSZXR1cm4gZmFsc2Ugb3RoZXJ3aXNlLlxuXG5zdHIuaXN1cHBlcigpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjYXNlZCBjaGFyYWN0ZXJzIFs0XSBpbiB0aGUgc3RyaW5nIGFyZSB1cHBlcmNhc2VcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2FzZWQgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuXG5cbnN0ci5qb2luKGl0ZXJhYmxlKVxuXG4gICBSZXR1cm4gYSBzdHJpbmcgd2hpY2ggaXMgdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZ3MgaW4gdGhlXG4gICAqaXRlcmFibGUqICppdGVyYWJsZSouICBBIGBgVHlwZUVycm9yYGAgd2lsbCBiZSByYWlzZWQgaWYgdGhlcmUgYXJlXG4gICBhbnkgbm9uLXN0cmluZyB2YWx1ZXMgaW4gKml0ZXJhYmxlKiwgaW5jbHVkaW5nIGBgYnl0ZXNgYCBvYmplY3RzLlxuICAgVGhlIHNlcGFyYXRvciBiZXR3ZWVuIGVsZW1lbnRzIGlzIHRoZSBzdHJpbmcgcHJvdmlkaW5nIHRoaXMgbWV0aG9kLlxuXG5zdHIubGp1c3Qod2lkdGhbLCBmaWxsY2hhcl0pXG5cbiAgIFJldHVybiB0aGUgc3RyaW5nIGxlZnQganVzdGlmaWVkIGluIGEgc3RyaW5nIG9mIGxlbmd0aCAqd2lkdGgqLlxuICAgUGFkZGluZyBpcyBkb25lIHVzaW5nIHRoZSBzcGVjaWZpZWQgKmZpbGxjaGFyKiAoZGVmYXVsdCBpcyBhXG4gICBzcGFjZSkuICBUaGUgb3JpZ2luYWwgc3RyaW5nIGlzIHJldHVybmVkIGlmICp3aWR0aCogaXMgbGVzcyB0aGFuIG9yXG4gICBlcXVhbCB0byBgYGxlbihzKWBgLlxuXG5zdHIubG93ZXIoKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCBhbGwgdGhlIGNhc2VkIGNoYXJhY3RlcnMgWzRdXG4gICBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlLlxuXG5zdHIubHN0cmlwKFtjaGFyc10pXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aXRoIGxlYWRpbmcgY2hhcmFjdGVycyByZW1vdmVkLiAgVGhlXG4gICAqY2hhcnMqIGFyZ3VtZW50IGlzIGEgc3RyaW5nIHNwZWNpZnlpbmcgdGhlIHNldCBvZiBjaGFyYWN0ZXJzIHRvIGJlXG4gICByZW1vdmVkLiAgSWYgb21pdHRlZCBvciBgYE5vbmVgYCwgdGhlICpjaGFycyogYXJndW1lbnQgZGVmYXVsdHMgdG9cbiAgIHJlbW92aW5nIHdoaXRlc3BhY2UuICBUaGUgKmNoYXJzKiBhcmd1bWVudCBpcyBub3QgYSBwcmVmaXg7IHJhdGhlcixcbiAgIGFsbCBjb21iaW5hdGlvbnMgb2YgaXRzIHZhbHVlcyBhcmUgc3RyaXBwZWQ6XG5cbiAgID4+PiBcJyAgIHNwYWNpb3VzICAgXCcubHN0cmlwKClcbiAgIFwnc3BhY2lvdXMgICBcJ1xuICAgPj4+IFwnd3d3LmV4YW1wbGUuY29tXCcubHN0cmlwKFwnY21vd3ouXCcpXG4gICBcJ2V4YW1wbGUuY29tXCdcblxuc3RhdGljIHN0ci5tYWtldHJhbnMoeFssIHlbLCB6XV0pXG5cbiAgIFRoaXMgc3RhdGljIG1ldGhvZCByZXR1cm5zIGEgdHJhbnNsYXRpb24gdGFibGUgdXNhYmxlIGZvclxuICAgYGBzdHIudHJhbnNsYXRlKClgYC5cblxuICAgSWYgdGhlcmUgaXMgb25seSBvbmUgYXJndW1lbnQsIGl0IG11c3QgYmUgYSBkaWN0aW9uYXJ5IG1hcHBpbmdcbiAgIFVuaWNvZGUgb3JkaW5hbHMgKGludGVnZXJzKSBvciBjaGFyYWN0ZXJzIChzdHJpbmdzIG9mIGxlbmd0aCAxKSB0b1xuICAgVW5pY29kZSBvcmRpbmFscywgc3RyaW5ncyAob2YgYXJiaXRyYXJ5IGxlbmd0aHMpIG9yIE5vbmUuXG4gICBDaGFyYWN0ZXIga2V5cyB3aWxsIHRoZW4gYmUgY29udmVydGVkIHRvIG9yZGluYWxzLlxuXG4gICBJZiB0aGVyZSBhcmUgdHdvIGFyZ3VtZW50cywgdGhleSBtdXN0IGJlIHN0cmluZ3Mgb2YgZXF1YWwgbGVuZ3RoLFxuICAgYW5kIGluIHRoZSByZXN1bHRpbmcgZGljdGlvbmFyeSwgZWFjaCBjaGFyYWN0ZXIgaW4geCB3aWxsIGJlIG1hcHBlZFxuICAgdG8gdGhlIGNoYXJhY3RlciBhdCB0aGUgc2FtZSBwb3NpdGlvbiBpbiB5LiAgSWYgdGhlcmUgaXMgYSB0aGlyZFxuICAgYXJndW1lbnQsIGl0IG11c3QgYmUgYSBzdHJpbmcsIHdob3NlIGNoYXJhY3RlcnMgd2lsbCBiZSBtYXBwZWQgdG9cbiAgIE5vbmUgaW4gdGhlIHJlc3VsdC5cblxuc3RyLnBhcnRpdGlvbihzZXApXG5cbiAgIFNwbGl0IHRoZSBzdHJpbmcgYXQgdGhlIGZpcnN0IG9jY3VycmVuY2Ugb2YgKnNlcCosIGFuZCByZXR1cm4gYVxuICAgMy10dXBsZSBjb250YWluaW5nIHRoZSBwYXJ0IGJlZm9yZSB0aGUgc2VwYXJhdG9yLCB0aGUgc2VwYXJhdG9yXG4gICBpdHNlbGYsIGFuZCB0aGUgcGFydCBhZnRlciB0aGUgc2VwYXJhdG9yLiAgSWYgdGhlIHNlcGFyYXRvciBpcyBub3RcbiAgIGZvdW5kLCByZXR1cm4gYSAzLXR1cGxlIGNvbnRhaW5pbmcgdGhlIHN0cmluZyBpdHNlbGYsIGZvbGxvd2VkIGJ5XG4gICB0d28gZW1wdHkgc3RyaW5ncy5cblxuc3RyLnJlcGxhY2Uob2xkLCBuZXdbLCBjb3VudF0pXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aXRoIGFsbCBvY2N1cnJlbmNlcyBvZiBzdWJzdHJpbmcgKm9sZCpcbiAgIHJlcGxhY2VkIGJ5ICpuZXcqLiAgSWYgdGhlIG9wdGlvbmFsIGFyZ3VtZW50ICpjb3VudCogaXMgZ2l2ZW4sIG9ubHlcbiAgIHRoZSBmaXJzdCAqY291bnQqIG9jY3VycmVuY2VzIGFyZSByZXBsYWNlZC5cblxuc3RyLnJmaW5kKHN1YlssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIFJldHVybiB0aGUgaGlnaGVzdCBpbmRleCBpbiB0aGUgc3RyaW5nIHdoZXJlIHN1YnN0cmluZyAqc3ViKiBpc1xuICAgZm91bmQsIHN1Y2ggdGhhdCAqc3ViKiBpcyBjb250YWluZWQgd2l0aGluIGBgc1tzdGFydDplbmRdYGAuXG4gICBPcHRpb25hbCBhcmd1bWVudHMgKnN0YXJ0KiBhbmQgKmVuZCogYXJlIGludGVycHJldGVkIGFzIGluIHNsaWNlXG4gICBub3RhdGlvbi4gIFJldHVybiBgYC0xYGAgb24gZmFpbHVyZS5cblxuc3RyLnJpbmRleChzdWJbLCBzdGFydFssIGVuZF1dKVxuXG4gICBMaWtlIGBgcmZpbmQoKWBgIGJ1dCByYWlzZXMgYGBWYWx1ZUVycm9yYGAgd2hlbiB0aGUgc3Vic3RyaW5nICpzdWIqXG4gICBpcyBub3QgZm91bmQuXG5cbnN0ci5yanVzdCh3aWR0aFssIGZpbGxjaGFyXSlcblxuICAgUmV0dXJuIHRoZSBzdHJpbmcgcmlnaHQganVzdGlmaWVkIGluIGEgc3RyaW5nIG9mIGxlbmd0aCAqd2lkdGgqLlxuICAgUGFkZGluZyBpcyBkb25lIHVzaW5nIHRoZSBzcGVjaWZpZWQgKmZpbGxjaGFyKiAoZGVmYXVsdCBpcyBhXG4gICBzcGFjZSkuIFRoZSBvcmlnaW5hbCBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgKndpZHRoKiBpcyBsZXNzIHRoYW4gb3JcbiAgIGVxdWFsIHRvIGBgbGVuKHMpYGAuXG5cbnN0ci5ycGFydGl0aW9uKHNlcClcblxuICAgU3BsaXQgdGhlIHN0cmluZyBhdCB0aGUgbGFzdCBvY2N1cnJlbmNlIG9mICpzZXAqLCBhbmQgcmV0dXJuIGFcbiAgIDMtdHVwbGUgY29udGFpbmluZyB0aGUgcGFydCBiZWZvcmUgdGhlIHNlcGFyYXRvciwgdGhlIHNlcGFyYXRvclxuICAgaXRzZWxmLCBhbmQgdGhlIHBhcnQgYWZ0ZXIgdGhlIHNlcGFyYXRvci4gIElmIHRoZSBzZXBhcmF0b3IgaXMgbm90XG4gICBmb3VuZCwgcmV0dXJuIGEgMy10dXBsZSBjb250YWluaW5nIHR3byBlbXB0eSBzdHJpbmdzLCBmb2xsb3dlZCBieVxuICAgdGhlIHN0cmluZyBpdHNlbGYuXG5cbnN0ci5yc3BsaXQoW3NlcFssIG1heHNwbGl0XV0pXG5cbiAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIHdvcmRzIGluIHRoZSBzdHJpbmcsIHVzaW5nICpzZXAqIGFzIHRoZVxuICAgZGVsaW1pdGVyIHN0cmluZy4gSWYgKm1heHNwbGl0KiBpcyBnaXZlbiwgYXQgbW9zdCAqbWF4c3BsaXQqIHNwbGl0c1xuICAgYXJlIGRvbmUsIHRoZSAqcmlnaHRtb3N0KiBvbmVzLiAgSWYgKnNlcCogaXMgbm90IHNwZWNpZmllZCBvclxuICAgYGBOb25lYGAsIGFueSB3aGl0ZXNwYWNlIHN0cmluZyBpcyBhIHNlcGFyYXRvci4gIEV4Y2VwdCBmb3JcbiAgIHNwbGl0dGluZyBmcm9tIHRoZSByaWdodCwgYGByc3BsaXQoKWBgIGJlaGF2ZXMgbGlrZSBgYHNwbGl0KClgYFxuICAgd2hpY2ggaXMgZGVzY3JpYmVkIGluIGRldGFpbCBiZWxvdy5cblxuc3RyLnJzdHJpcChbY2hhcnNdKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCB0cmFpbGluZyBjaGFyYWN0ZXJzIHJlbW92ZWQuICBUaGVcbiAgICpjaGFycyogYXJndW1lbnQgaXMgYSBzdHJpbmcgc3BlY2lmeWluZyB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgdG8gYmVcbiAgIHJlbW92ZWQuICBJZiBvbWl0dGVkIG9yIGBgTm9uZWBgLCB0aGUgKmNoYXJzKiBhcmd1bWVudCBkZWZhdWx0cyB0b1xuICAgcmVtb3Zpbmcgd2hpdGVzcGFjZS4gIFRoZSAqY2hhcnMqIGFyZ3VtZW50IGlzIG5vdCBhIHN1ZmZpeDsgcmF0aGVyLFxuICAgYWxsIGNvbWJpbmF0aW9ucyBvZiBpdHMgdmFsdWVzIGFyZSBzdHJpcHBlZDpcblxuICAgPj4+IFwnICAgc3BhY2lvdXMgICBcJy5yc3RyaXAoKVxuICAgXCcgICBzcGFjaW91c1wnXG4gICA+Pj4gXCdtaXNzaXNzaXBwaVwnLnJzdHJpcChcJ2lwelwnKVxuICAgXCdtaXNzaXNzXCdcblxuc3RyLnNwbGl0KFtzZXBbLCBtYXhzcGxpdF1dKVxuXG4gICBSZXR1cm4gYSBsaXN0IG9mIHRoZSB3b3JkcyBpbiB0aGUgc3RyaW5nLCB1c2luZyAqc2VwKiBhcyB0aGVcbiAgIGRlbGltaXRlciBzdHJpbmcuICBJZiAqbWF4c3BsaXQqIGlzIGdpdmVuLCBhdCBtb3N0ICptYXhzcGxpdCpcbiAgIHNwbGl0cyBhcmUgZG9uZSAodGh1cywgdGhlIGxpc3Qgd2lsbCBoYXZlIGF0IG1vc3QgYGBtYXhzcGxpdCsxYGBcbiAgIGVsZW1lbnRzKS4gIElmICptYXhzcGxpdCogaXMgbm90IHNwZWNpZmllZCwgdGhlbiB0aGVyZSBpcyBubyBsaW1pdFxuICAgb24gdGhlIG51bWJlciBvZiBzcGxpdHMgKGFsbCBwb3NzaWJsZSBzcGxpdHMgYXJlIG1hZGUpLlxuXG4gICBJZiAqc2VwKiBpcyBnaXZlbiwgY29uc2VjdXRpdmUgZGVsaW1pdGVycyBhcmUgbm90IGdyb3VwZWQgdG9nZXRoZXJcbiAgIGFuZCBhcmUgZGVlbWVkIHRvIGRlbGltaXQgZW1wdHkgc3RyaW5ncyAoZm9yIGV4YW1wbGUsXG4gICBgYFwnMSwsMlwnLnNwbGl0KFwnLFwnKWBgIHJldHVybnMgYGBbXCcxXCcsIFwnXCcsIFwnMlwnXWBgKS4gIFRoZSAqc2VwKlxuICAgYXJndW1lbnQgbWF5IGNvbnNpc3Qgb2YgbXVsdGlwbGUgY2hhcmFjdGVycyAoZm9yIGV4YW1wbGUsXG4gICBgYFwnMTw+Mjw+M1wnLnNwbGl0KFwnPD5cJylgYCByZXR1cm5zIGBgW1wnMVwnLCBcJzJcJywgXCczXCddYGApLiBTcGxpdHRpbmdcbiAgIGFuIGVtcHR5IHN0cmluZyB3aXRoIGEgc3BlY2lmaWVkIHNlcGFyYXRvciByZXR1cm5zIGBgW1wnXCddYGAuXG5cbiAgIElmICpzZXAqIGlzIG5vdCBzcGVjaWZpZWQgb3IgaXMgYGBOb25lYGAsIGEgZGlmZmVyZW50IHNwbGl0dGluZ1xuICAgYWxnb3JpdGhtIGlzIGFwcGxpZWQ6IHJ1bnMgb2YgY29uc2VjdXRpdmUgd2hpdGVzcGFjZSBhcmUgcmVnYXJkZWRcbiAgIGFzIGEgc2luZ2xlIHNlcGFyYXRvciwgYW5kIHRoZSByZXN1bHQgd2lsbCBjb250YWluIG5vIGVtcHR5IHN0cmluZ3NcbiAgIGF0IHRoZSBzdGFydCBvciBlbmQgaWYgdGhlIHN0cmluZyBoYXMgbGVhZGluZyBvciB0cmFpbGluZ1xuICAgd2hpdGVzcGFjZS4gIENvbnNlcXVlbnRseSwgc3BsaXR0aW5nIGFuIGVtcHR5IHN0cmluZyBvciBhIHN0cmluZ1xuICAgY29uc2lzdGluZyBvZiBqdXN0IHdoaXRlc3BhY2Ugd2l0aCBhIGBgTm9uZWBgIHNlcGFyYXRvciByZXR1cm5zXG4gICBgYFtdYGAuXG5cbiAgIEZvciBleGFtcGxlLCBgYFwnIDEgIDIgICAzICBcJy5zcGxpdCgpYGAgcmV0dXJucyBgYFtcJzFcJywgXCcyXCcsIFwnM1wnXWBgLFxuICAgYW5kIGBgXCcgIDEgIDIgICAzICBcJy5zcGxpdChOb25lLCAxKWBgIHJldHVybnMgYGBbXCcxXCcsIFwnMiAgIDMgIFwnXWBgLlxuXG5zdHIuc3BsaXRsaW5lcyhba2VlcGVuZHNdKVxuXG4gICBSZXR1cm4gYSBsaXN0IG9mIHRoZSBsaW5lcyBpbiB0aGUgc3RyaW5nLCBicmVha2luZyBhdCBsaW5lXG4gICBib3VuZGFyaWVzLiAgTGluZSBicmVha3MgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgcmVzdWx0aW5nIGxpc3RcbiAgIHVubGVzcyAqa2VlcGVuZHMqIGlzIGdpdmVuIGFuZCB0cnVlLlxuXG5zdHIuc3RhcnRzd2l0aChwcmVmaXhbLCBzdGFydFssIGVuZF1dKVxuXG4gICBSZXR1cm4gYGBUcnVlYGAgaWYgc3RyaW5nIHN0YXJ0cyB3aXRoIHRoZSAqcHJlZml4Kiwgb3RoZXJ3aXNlXG4gICByZXR1cm4gYGBGYWxzZWBgLiAqcHJlZml4KiBjYW4gYWxzbyBiZSBhIHR1cGxlIG9mIHByZWZpeGVzIHRvIGxvb2tcbiAgIGZvci4gIFdpdGggb3B0aW9uYWwgKnN0YXJ0KiwgdGVzdCBzdHJpbmcgYmVnaW5uaW5nIGF0IHRoYXRcbiAgIHBvc2l0aW9uLiAgV2l0aCBvcHRpb25hbCAqZW5kKiwgc3RvcCBjb21wYXJpbmcgc3RyaW5nIGF0IHRoYXRcbiAgIHBvc2l0aW9uLlxuXG5zdHIuc3RyaXAoW2NoYXJzXSlcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nXG4gICBjaGFyYWN0ZXJzIHJlbW92ZWQuIFRoZSAqY2hhcnMqIGFyZ3VtZW50IGlzIGEgc3RyaW5nIHNwZWNpZnlpbmcgdGhlXG4gICBzZXQgb2YgY2hhcmFjdGVycyB0byBiZSByZW1vdmVkLiBJZiBvbWl0dGVkIG9yIGBgTm9uZWBgLCB0aGVcbiAgICpjaGFycyogYXJndW1lbnQgZGVmYXVsdHMgdG8gcmVtb3Zpbmcgd2hpdGVzcGFjZS4gVGhlICpjaGFycypcbiAgIGFyZ3VtZW50IGlzIG5vdCBhIHByZWZpeCBvciBzdWZmaXg7IHJhdGhlciwgYWxsIGNvbWJpbmF0aW9ucyBvZiBpdHNcbiAgIHZhbHVlcyBhcmUgc3RyaXBwZWQ6XG5cbiAgID4+PiBcJyAgIHNwYWNpb3VzICAgXCcuc3RyaXAoKVxuICAgXCdzcGFjaW91c1wnXG4gICA+Pj4gXCd3d3cuZXhhbXBsZS5jb21cJy5zdHJpcChcJ2Ntb3d6LlwnKVxuICAgXCdleGFtcGxlXCdcblxuc3RyLnN3YXBjYXNlKClcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggdXBwZXJjYXNlIGNoYXJhY3RlcnMgY29udmVydGVkIHRvXG4gICBsb3dlcmNhc2UgYW5kIHZpY2UgdmVyc2EuXG5cbnN0ci50aXRsZSgpXG5cbiAgIFJldHVybiBhIHRpdGxlY2FzZWQgdmVyc2lvbiBvZiB0aGUgc3RyaW5nIHdoZXJlIHdvcmRzIHN0YXJ0IHdpdGggYW5cbiAgIHVwcGVyY2FzZSBjaGFyYWN0ZXIgYW5kIHRoZSByZW1haW5pbmcgY2hhcmFjdGVycyBhcmUgbG93ZXJjYXNlLlxuXG4gICBUaGUgYWxnb3JpdGhtIHVzZXMgYSBzaW1wbGUgbGFuZ3VhZ2UtaW5kZXBlbmRlbnQgZGVmaW5pdGlvbiBvZiBhXG4gICB3b3JkIGFzIGdyb3VwcyBvZiBjb25zZWN1dGl2ZSBsZXR0ZXJzLiAgVGhlIGRlZmluaXRpb24gd29ya3MgaW5cbiAgIG1hbnkgY29udGV4dHMgYnV0IGl0IG1lYW5zIHRoYXQgYXBvc3Ryb3BoZXMgaW4gY29udHJhY3Rpb25zIGFuZFxuICAgcG9zc2Vzc2l2ZXMgZm9ybSB3b3JkIGJvdW5kYXJpZXMsIHdoaWNoIG1heSBub3QgYmUgdGhlIGRlc2lyZWRcbiAgIHJlc3VsdDpcblxuICAgICAgPj4+ICJ0aGV5XCdyZSBiaWxsXCdzIGZyaWVuZHMgZnJvbSB0aGUgVUsiLnRpdGxlKClcbiAgICAgICJUaGV5XCdSZSBCaWxsXCdTIEZyaWVuZHMgRnJvbSBUaGUgVWsiXG5cbiAgIEEgd29ya2Fyb3VuZCBmb3IgYXBvc3Ryb3BoZXMgY2FuIGJlIGNvbnN0cnVjdGVkIHVzaW5nIHJlZ3VsYXJcbiAgIGV4cHJlc3Npb25zOlxuXG4gICAgICA+Pj4gaW1wb3J0IHJlXG4gICAgICA+Pj4gZGVmIHRpdGxlY2FzZShzKTpcbiAgICAgICAgICAgICAgcmV0dXJuIHJlLnN1YihyIltBLVphLXpdKyhcJ1tBLVphLXpdKyk/IixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGEgbW86IG1vLmdyb3VwKDApWzBdLnVwcGVyKCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW8uZ3JvdXAoMClbMTpdLmxvd2VyKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcylcblxuICAgICAgPj4+IHRpdGxlY2FzZSgidGhleVwncmUgYmlsbFwncyBmcmllbmRzLiIpXG4gICAgICAiVGhleVwncmUgQmlsbFwncyBGcmllbmRzLiJcblxuc3RyLnRyYW5zbGF0ZShtYXApXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlICpzKiB3aGVyZSBhbGwgY2hhcmFjdGVycyBoYXZlIGJlZW4gbWFwcGVkXG4gICB0aHJvdWdoIHRoZSAqbWFwKiB3aGljaCBtdXN0IGJlIGEgZGljdGlvbmFyeSBvZiBVbmljb2RlIG9yZGluYWxzXG4gICAoaW50ZWdlcnMpIHRvIFVuaWNvZGUgb3JkaW5hbHMsIHN0cmluZ3Mgb3IgYGBOb25lYGAuICBVbm1hcHBlZFxuICAgY2hhcmFjdGVycyBhcmUgbGVmdCB1bnRvdWNoZWQuIENoYXJhY3RlcnMgbWFwcGVkIHRvIGBgTm9uZWBgIGFyZVxuICAgZGVsZXRlZC5cblxuICAgWW91IGNhbiB1c2UgYGBzdHIubWFrZXRyYW5zKClgYCB0byBjcmVhdGUgYSB0cmFuc2xhdGlvbiBtYXAgZnJvbVxuICAgY2hhcmFjdGVyLXRvLWNoYXJhY3RlciBtYXBwaW5ncyBpbiBkaWZmZXJlbnQgZm9ybWF0cy5cblxuICAgTm90ZTogQW4gZXZlbiBtb3JlIGZsZXhpYmxlIGFwcHJvYWNoIGlzIHRvIGNyZWF0ZSBhIGN1c3RvbSBjaGFyYWN0ZXJcbiAgICAgbWFwcGluZyBjb2RlYyB1c2luZyB0aGUgYGBjb2RlY3NgYCBtb2R1bGUgKHNlZVxuICAgICBgYGVuY29kaW5ncy5jcDEyNTFgYCBmb3IgYW4gZXhhbXBsZSkuXG5cbnN0ci51cHBlcigpXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aXRoIGFsbCB0aGUgY2FzZWQgY2hhcmFjdGVycyBbNF1cbiAgIGNvbnZlcnRlZCB0byB1cHBlcmNhc2UuICBOb3RlIHRoYXQgYGBzdHIudXBwZXIoKS5pc3VwcGVyKClgYCBtaWdodFxuICAgYmUgYGBGYWxzZWBgIGlmIGBgc2BgIGNvbnRhaW5zIHVuY2FzZWQgY2hhcmFjdGVycyBvciBpZiB0aGUgVW5pY29kZVxuICAgY2F0ZWdvcnkgb2YgdGhlIHJlc3VsdGluZyBjaGFyYWN0ZXIocykgaXMgbm90ICJMdSIgKExldHRlcixcbiAgIHVwcGVyY2FzZSksIGJ1dCBlLmcuICJMdCIgKExldHRlciwgdGl0bGVjYXNlKS5cblxuc3RyLnpmaWxsKHdpZHRoKVxuXG4gICBSZXR1cm4gdGhlIG51bWVyaWMgc3RyaW5nIGxlZnQgZmlsbGVkIHdpdGggemVyb3MgaW4gYSBzdHJpbmcgb2ZcbiAgIGxlbmd0aCAqd2lkdGgqLiAgQSBzaWduIHByZWZpeCBpcyBoYW5kbGVkIGNvcnJlY3RseS4gIFRoZSBvcmlnaW5hbFxuICAgc3RyaW5nIGlzIHJldHVybmVkIGlmICp3aWR0aCogaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGBgbGVuKHMpYGAuXG4nLAotICdzdHJpbmdzJzogJ1xuU3RyaW5nIGFuZCBCeXRlcyBsaXRlcmFsc1xuKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5TdHJpbmcgbGl0ZXJhbHMgYXJlIGRlc2NyaWJlZCBieSB0aGUgZm9sbG93aW5nIGxleGljYWwgZGVmaW5pdGlvbnM6XG5cbiAgIHN0cmluZ2xpdGVyYWwgICA6Oj0gW3N0cmluZ3ByZWZpeF0oc2hvcnRzdHJpbmcgfCBsb25nc3RyaW5nKVxuICAgc3RyaW5ncHJlZml4ICAgIDo6PSAiciIgfCAiUiJcbiAgIHNob3J0c3RyaW5nICAgICA6Oj0gIlwnIiBzaG9ydHN0cmluZ2l0ZW0qICJcJyIgfCBcJyJcJyBzaG9ydHN0cmluZ2l0ZW0qIFwnIlwnXG4gICBsb25nc3RyaW5nICAgICAgOjo9ICJcJ1wnXCciIGxvbmdzdHJpbmdpdGVtKiAiXCdcJ1wnIiB8IFwnIiIiXCcgbG9uZ3N0cmluZ2l0ZW0qIFwnIiIiXCdcbiAgIHNob3J0c3RyaW5naXRlbSA6Oj0gc2hvcnRzdHJpbmdjaGFyIHwgc3RyaW5nZXNjYXBlc2VxXG4gICBsb25nc3RyaW5naXRlbSAgOjo9IGxvbmdzdHJpbmdjaGFyIHwgc3RyaW5nZXNjYXBlc2VxXG4gICBzaG9ydHN0cmluZ2NoYXIgOjo9IDxhbnkgc291cmNlIGNoYXJhY3RlciBleGNlcHQgIlxcIiBvciBuZXdsaW5lIG9yIHRoZSBxdW90ZT5cbiAgIGxvbmdzdHJpbmdjaGFyICA6Oj0gPGFueSBzb3VyY2UgY2hhcmFjdGVyIGV4Y2VwdCAiXFwiPlxuICAgc3RyaW5nZXNjYXBlc2VxIDo6PSAiXFwiIDxhbnkgc291cmNlIGNoYXJhY3Rlcj5cblxuICAgYnl0ZXNsaXRlcmFsICAgOjo9IGJ5dGVzcHJlZml4KHNob3J0Ynl0ZXMgfCBsb25nYnl0ZXMpXG4gICBieXRlc3ByZWZpeCAgICA6Oj0gImIiIHwgIkIiIHwgImJyIiB8ICJCciIgfCAiYlIiIHwgIkJSIlxuICAgc2hvcnRieXRlcyAgICAgOjo9ICJcJyIgc2hvcnRieXRlc2l0ZW0qICJcJyIgfCBcJyJcJyBzaG9ydGJ5dGVzaXRlbSogXCciXCdcbiAgIGxvbmdieXRlcyAgICAgIDo6PSAiXCdcJ1wnIiBsb25nYnl0ZXNpdGVtKiAiXCdcJ1wnIiB8IFwnIiIiXCcgbG9uZ2J5dGVzaXRlbSogXCciIiJcJ1xuICAgc2hvcnRieXRlc2l0ZW0gOjo9IHNob3J0Ynl0ZXNjaGFyIHwgYnl0ZXNlc2NhcGVzZXFcbiAgIGxvbmdieXRlc2l0ZW0gIDo6PSBsb25nYnl0ZXNjaGFyIHwgYnl0ZXNlc2NhcGVzZXFcbiAgIHNob3J0Ynl0ZXNjaGFyIDo6PSA8YW55IEFTQ0lJIGNoYXJhY3RlciBleGNlcHQgIlxcIiBvciBuZXdsaW5lIG9yIHRoZSBxdW90ZT5cbiAgIGxvbmdieXRlc2NoYXIgIDo6PSA8YW55IEFTQ0lJIGNoYXJhY3RlciBleGNlcHQgIlxcIj5cbiAgIGJ5dGVzZXNjYXBlc2VxIDo6PSAiXFwiIDxhbnkgQVNDSUkgY2hhcmFjdGVyPlxuXG5PbmUgc3ludGFjdGljIHJlc3RyaWN0aW9uIG5vdCBpbmRpY2F0ZWQgYnkgdGhlc2UgcHJvZHVjdGlvbnMgaXMgdGhhdFxud2hpdGVzcGFjZSBpcyBub3QgYWxsb3dlZCBiZXR3ZWVuIHRoZSBgYHN0cmluZ3ByZWZpeGBgIG9yXG5gYGJ5dGVzcHJlZml4YGAgYW5kIHRoZSByZXN0IG9mIHRoZSBsaXRlcmFsLiBUaGUgc291cmNlIGNoYXJhY3RlciBzZXRcbmlzIGRlZmluZWQgYnkgdGhlIGVuY29kaW5nIGRlY2xhcmF0aW9uOyBpdCBpcyBVVEYtOCBpZiBubyBlbmNvZGluZ1xuZGVjbGFyYXRpb24gaXMgZ2l2ZW4gaW4gdGhlIHNvdXJjZSBmaWxlOyBzZWUgc2VjdGlvbiAqRW5jb2RpbmdcbmRlY2xhcmF0aW9ucyouXG5cbkluIHBsYWluIEVuZ2xpc2g6IEJvdGggdHlwZXMgb2YgbGl0ZXJhbHMgY2FuIGJlIGVuY2xvc2VkIGluIG1hdGNoaW5nXG5zaW5nbGUgcXVvdGVzIChgYFwnYGApIG9yIGRvdWJsZSBxdW90ZXMgKGBgImBgKS4gIFRoZXkgY2FuIGFsc28gYmVcbmVuY2xvc2VkIGluIG1hdGNoaW5nIGdyb3VwcyBvZiB0aHJlZSBzaW5nbGUgb3IgZG91YmxlIHF1b3RlcyAodGhlc2VcbmFyZSBnZW5lcmFsbHkgcmVmZXJyZWQgdG8gYXMgKnRyaXBsZS1xdW90ZWQgc3RyaW5ncyopLiAgVGhlIGJhY2tzbGFzaFxuKGBgXFxgYCkgY2hhcmFjdGVyIGlzIHVzZWQgdG8gZXNjYXBlIGNoYXJhY3RlcnMgdGhhdCBvdGhlcndpc2UgaGF2ZSBhXG5zcGVjaWFsIG1lYW5pbmcsIHN1Y2ggYXMgbmV3bGluZSwgYmFja3NsYXNoIGl0c2VsZiwgb3IgdGhlIHF1b3RlXG5jaGFyYWN0ZXIuXG5cbkJ5dGVzIGxpdGVyYWxzIGFyZSBhbHdheXMgcHJlZml4ZWQgd2l0aCBgYFwnYlwnYGAgb3IgYGBcJ0JcJ2BgOyB0aGV5XG5wcm9kdWNlIGFuIGluc3RhbmNlIG9mIHRoZSBgYGJ5dGVzYGAgdHlwZSBpbnN0ZWFkIG9mIHRoZSBgYHN0cmBgIHR5cGUuXG5UaGV5IG1heSBvbmx5IGNvbnRhaW4gQVNDSUkgY2hhcmFjdGVyczsgYnl0ZXMgd2l0aCBhIG51bWVyaWMgdmFsdWUgb2ZcbjEyOCBvciBncmVhdGVyIG11c3QgYmUgZXhwcmVzc2VkIHdpdGggZXNjYXBlcy5cblxuQm90aCBzdHJpbmcgYW5kIGJ5dGVzIGxpdGVyYWxzIG1heSBvcHRpb25hbGx5IGJlIHByZWZpeGVkIHdpdGggYVxubGV0dGVyIGBgXCdyXCdgYCBvciBgYFwnUlwnYGA7IHN1Y2ggc3RyaW5ncyBhcmUgY2FsbGVkICpyYXcgc3RyaW5ncyogYW5kXG50cmVhdCBiYWNrc2xhc2hlcyBhcyBsaXRlcmFsIGNoYXJhY3RlcnMuICBBcyBhIHJlc3VsdCwgaW4gc3RyaW5nXG5saXRlcmFscywgYGBcJ1xcVVwnYGAgYW5kIGBgXCdcXHVcJ2BgIGVzY2FwZXMgaW4gcmF3IHN0cmluZ3MgYXJlIG5vdCB0cmVhdGVkXG5zcGVjaWFsbHkuXG5cbkluIHRyaXBsZS1xdW90ZWQgc3RyaW5ncywgdW5lc2NhcGVkIG5ld2xpbmVzIGFuZCBxdW90ZXMgYXJlIGFsbG93ZWRcbihhbmQgYXJlIHJldGFpbmVkKSwgZXhjZXB0IHRoYXQgdGhyZWUgdW5lc2NhcGVkIHF1b3RlcyBpbiBhIHJvd1xudGVybWluYXRlIHRoZSBzdHJpbmcuICAoQSAicXVvdGUiIGlzIHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBvcGVuIHRoZVxuc3RyaW5nLCBpLmUuIGVpdGhlciBgYFwnYGAgb3IgYGAiYGAuKVxuXG5Vbmxlc3MgYW4gYGBcJ3JcJ2BgIG9yIGBgXCdSXCdgYCBwcmVmaXggaXMgcHJlc2VudCwgZXNjYXBlIHNlcXVlbmNlcyBpblxuc3RyaW5ncyBhcmUgaW50ZXJwcmV0ZWQgYWNjb3JkaW5nIHRvIHJ1bGVzIHNpbWlsYXIgdG8gdGhvc2UgdXNlZCBieVxuU3RhbmRhcmQgQy4gIFRoZSByZWNvZ25pemVkIGVzY2FwZSBzZXF1ZW5jZXMgYXJlOlxuXG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IEVzY2FwZSBTZXF1ZW5jZSAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTm90ZXMgICB8XG4rPT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT0rXG58IGBgXFxuZXdsaW5lYGAgICAgICB8IEJhY2tzbGFzaCBhbmQgbmV3bGluZSBpZ25vcmVkICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcXFxgYCAgICAgICAgICAgIHwgQmFja3NsYXNoIChgYFxcYGApICAgICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcXCdgYCAgICAgICAgICAgIHwgU2luZ2xlIHF1b3RlIChgYFwnYGApICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcImBgICAgICAgICAgICAgfCBEb3VibGUgcXVvdGUgKGBgImBgKSAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcXGFgYCAgICAgICAgICAgIHwgQVNDSUkgQmVsbCAoQkVMKSAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXFxiYGAgICAgICAgICAgICB8IEFTQ0lJIEJhY2tzcGFjZSAoQlMpICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcZmBgICAgICAgICAgICAgfCBBU0NJSSBGb3JtZmVlZCAoRkYpICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcXG5gYCAgICAgICAgICAgIHwgQVNDSUkgTGluZWZlZWQgKExGKSAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXFxyYGAgICAgICAgICAgICB8IEFTQ0lJIENhcnJpYWdlIFJldHVybiAoQ1IpICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcdGBgICAgICAgICAgICAgfCBBU0NJSSBIb3Jpem9udGFsIFRhYiAoVEFCKSAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcXHZgYCAgICAgICAgICAgIHwgQVNDSUkgVmVydGljYWwgVGFiIChWVCkgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXFxvb29gYCAgICAgICAgICB8IENoYXJhY3RlciB3aXRoIG9jdGFsIHZhbHVlICpvb28qICB8ICgxLDMpICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxceGhoYGAgICAgICAgICAgfCBDaGFyYWN0ZXIgd2l0aCBoZXggdmFsdWUgKmhoKiAgICAgfCAoMiwzKSAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcblxuRXNjYXBlIHNlcXVlbmNlcyBvbmx5IHJlY29nbml6ZWQgaW4gc3RyaW5nIGxpdGVyYWxzIGFyZTpcblxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBFc2NhcGUgU2VxdWVuY2UgICB8IE1lYW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vdGVzICAgfFxuKz09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09K1xufCBgYFxcTntuYW1lfWBgICAgICAgfCBDaGFyYWN0ZXIgbmFtZWQgKm5hbWUqIGluIHRoZSAgICAgfCAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgfCBVbmljb2RlIGRhdGFiYXNlICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcXHV4eHh4YGAgICAgICAgIHwgQ2hhcmFjdGVyIHdpdGggMTYtYml0IGhleCB2YWx1ZSAgIHwgKDQpICAgICB8XG58ICAgICAgICAgICAgICAgICAgIHwgKnh4eHgqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXFxVeHh4eHh4eHhgYCAgICB8IENoYXJhY3RlciB3aXRoIDMyLWJpdCBoZXggdmFsdWUgICB8ICg1KSAgICAgfFxufCAgICAgICAgICAgICAgICAgICB8ICp4eHh4eHh4eCogICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xuXG5Ob3RlczpcblxuMS4gQXMgaW4gU3RhbmRhcmQgQywgdXAgdG8gdGhyZWUgb2N0YWwgZGlnaXRzIGFyZSBhY2NlcHRlZC5cblxuMi4gVW5saWtlIGluIFN0YW5kYXJkIEMsIGV4YWN0bHkgdHdvIGhleCBkaWdpdHMgYXJlIHJlcXVpcmVkLlxuXG4zLiBJbiBhIGJ5dGVzIGxpdGVyYWwsIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBlc2NhcGVzIGRlbm90ZSB0aGUgYnl0ZVxuICAgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUuIEluIGEgc3RyaW5nIGxpdGVyYWwsIHRoZXNlIGVzY2FwZXMgZGVub3RlIGFcbiAgIFVuaWNvZGUgY2hhcmFjdGVyIHdpdGggdGhlIGdpdmVuIHZhbHVlLlxuXG40LiBJbmRpdmlkdWFsIGNvZGUgdW5pdHMgd2hpY2ggZm9ybSBwYXJ0cyBvZiBhIHN1cnJvZ2F0ZSBwYWlyIGNhbiBiZVxuICAgZW5jb2RlZCB1c2luZyB0aGlzIGVzY2FwZSBzZXF1ZW5jZS4gIEV4YWN0bHkgZm91ciBoZXggZGlnaXRzIGFyZVxuICAgcmVxdWlyZWQuXG5cbjUuIEFueSBVbmljb2RlIGNoYXJhY3RlciBjYW4gYmUgZW5jb2RlZCB0aGlzIHdheSwgYnV0IGNoYXJhY3RlcnNcbiAgIG91dHNpZGUgdGhlIEJhc2ljIE11bHRpbGluZ3VhbCBQbGFuZSAoQk1QKSB3aWxsIGJlIGVuY29kZWQgdXNpbmcgYVxuICAgc3Vycm9nYXRlIHBhaXIgaWYgUHl0aG9uIGlzIGNvbXBpbGVkIHRvIHVzZSAxNi1iaXQgY29kZSB1bml0cyAodGhlXG4gICBkZWZhdWx0KS4gIEV4YWN0bHkgZWlnaHQgaGV4IGRpZ2l0cyBhcmUgcmVxdWlyZWQuXG5cblVubGlrZSBTdGFuZGFyZCBDLCBhbGwgdW5yZWNvZ25pemVkIGVzY2FwZSBzZXF1ZW5jZXMgYXJlIGxlZnQgaW4gdGhlXG5zdHJpbmcgdW5jaGFuZ2VkLCBpLmUuLCAqdGhlIGJhY2tzbGFzaCBpcyBsZWZ0IGluIHRoZSBzdHJpbmcqLiAgKFRoaXNcbmJlaGF2aW9yIGlzIHVzZWZ1bCB3aGVuIGRlYnVnZ2luZzogaWYgYW4gZXNjYXBlIHNlcXVlbmNlIGlzIG1pc3R5cGVkLFxudGhlIHJlc3VsdGluZyBvdXRwdXQgaXMgbW9yZSBlYXNpbHkgcmVjb2duaXplZCBhcyBicm9rZW4uKSAgSXQgaXMgYWxzb1xuaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGUgZXNjYXBlIHNlcXVlbmNlcyBvbmx5IHJlY29nbml6ZWQgaW4gc3RyaW5nXG5saXRlcmFscyBmYWxsIGludG8gdGhlIGNhdGVnb3J5IG9mIHVucmVjb2duaXplZCBlc2NhcGVzIGZvciBieXRlc1xubGl0ZXJhbHMuXG5cbkV2ZW4gaW4gYSByYXcgc3RyaW5nLCBzdHJpbmcgcXVvdGVzIGNhbiBiZSBlc2NhcGVkIHdpdGggYSBiYWNrc2xhc2gsXG5idXQgdGhlIGJhY2tzbGFzaCByZW1haW5zIGluIHRoZSBzdHJpbmc7IGZvciBleGFtcGxlLCBgYHIiXFwiImBgIGlzIGFcbnZhbGlkIHN0cmluZyBsaXRlcmFsIGNvbnNpc3Rpbmcgb2YgdHdvIGNoYXJhY3RlcnM6IGEgYmFja3NsYXNoIGFuZCBhXG5kb3VibGUgcXVvdGU7IGBgciJcXCJgYCBpcyBub3QgYSB2YWxpZCBzdHJpbmcgbGl0ZXJhbCAoZXZlbiBhIHJhd1xuc3RyaW5nIGNhbm5vdCBlbmQgaW4gYW4gb2RkIG51bWJlciBvZiBiYWNrc2xhc2hlcykuICBTcGVjaWZpY2FsbHksICphXG5yYXcgc3RyaW5nIGNhbm5vdCBlbmQgaW4gYSBzaW5nbGUgYmFja3NsYXNoKiAoc2luY2UgdGhlIGJhY2tzbGFzaFxud291bGQgZXNjYXBlIHRoZSBmb2xsb3dpbmcgcXVvdGUgY2hhcmFjdGVyKS4gIE5vdGUgYWxzbyB0aGF0IGEgc2luZ2xlXG5iYWNrc2xhc2ggZm9sbG93ZWQgYnkgYSBuZXdsaW5lIGlzIGludGVycHJldGVkIGFzIHRob3NlIHR3byBjaGFyYWN0ZXJzXG5hcyBwYXJ0IG9mIHRoZSBzdHJpbmcsICpub3QqIGFzIGEgbGluZSBjb250aW51YXRpb24uXG4nLAorICdzcGVjaWFsYXR0cnMnOiAnXG5TcGVjaWFsIEF0dHJpYnV0ZXNcbioqKioqKioqKioqKioqKioqKlxuXG5UaGUgaW1wbGVtZW50YXRpb24gYWRkcyBhIGZldyBzcGVjaWFsIHJlYWQtb25seSBhdHRyaWJ1dGVzIHRvIHNldmVyYWxcbm9iamVjdCB0eXBlcywgd2hlcmUgdGhleSBhcmUgcmVsZXZhbnQuICBTb21lIG9mIHRoZXNlIGFyZSBub3QgcmVwb3J0ZWRcbmJ5IHRoZSBgYGRpcigpYGAgYnVpbHQtaW4gZnVuY3Rpb24uXG5cbm9iamVjdC5fX2RpY3RfX1xuXG4gICBBIGRpY3Rpb25hcnkgb3Igb3RoZXIgbWFwcGluZyBvYmplY3QgdXNlZCB0byBzdG9yZSBhbiBvYmplY3RcJ3NcbiAgICh3cml0YWJsZSkgYXR0cmlidXRlcy5cblxuaW5zdGFuY2UuX19jbGFzc19fXG5cbiAgIFRoZSBjbGFzcyB0byB3aGljaCBhIGNsYXNzIGluc3RhbmNlIGJlbG9uZ3MuXG5cbmNsYXNzLl9fYmFzZXNfX1xuXG4gICBUaGUgdHVwbGUgb2YgYmFzZSBjbGFzc2VzIG9mIGEgY2xhc3Mgb2JqZWN0LlxuXG5jbGFzcy5fX25hbWVfX1xuXG4gICBUaGUgbmFtZSBvZiB0aGUgY2xhc3Mgb3IgdHlwZS5cblxuY2xhc3MuX19xdWFsbmFtZV9fXG5cbiAgIFRoZSAqcXVhbGlmaWVkIG5hbWUqIG9mIHRoZSBjbGFzcyBvciB0eXBlLlxuXG4gICBOZXcgaW4gdmVyc2lvbiAzLjMuXG5cbmNsYXNzLl9fbXJvX19cblxuICAgVGhpcyBhdHRyaWJ1dGUgaXMgYSB0dXBsZSBvZiBjbGFzc2VzIHRoYXQgYXJlIGNvbnNpZGVyZWQgd2hlblxuICAgbG9va2luZyBmb3IgYmFzZSBjbGFzc2VzIGR1cmluZyBtZXRob2QgcmVzb2x1dGlvbi5cblxuY2xhc3MubXJvKClcblxuICAgVGhpcyBtZXRob2QgY2FuIGJlIG92ZXJyaWRkZW4gYnkgYSBtZXRhY2xhc3MgdG8gY3VzdG9taXplIHRoZVxuICAgbWV0aG9kIHJlc29sdXRpb24gb3JkZXIgZm9yIGl0cyBpbnN0YW5jZXMuICBJdCBpcyBjYWxsZWQgYXQgY2xhc3NcbiAgIGluc3RhbnRpYXRpb24sIGFuZCBpdHMgcmVzdWx0IGlzIHN0b3JlZCBpbiBgYF9fbXJvX19gYC5cblxuY2xhc3MuX19zdWJjbGFzc2VzX18oKVxuXG4gICBFYWNoIGNsYXNzIGtlZXBzIGEgbGlzdCBvZiB3ZWFrIHJlZmVyZW5jZXMgdG8gaXRzIGltbWVkaWF0ZVxuICAgc3ViY2xhc3Nlcy4gIFRoaXMgbWV0aG9kIHJldHVybnMgYSBsaXN0IG9mIGFsbCB0aG9zZSByZWZlcmVuY2VzXG4gICBzdGlsbCBhbGl2ZS4gRXhhbXBsZTpcblxuICAgICAgPj4+IGludC5fX3N1YmNsYXNzZXNfXygpXG4gICAgICBbPGNsYXNzIFwnYm9vbFwnPl1cblxuLVsgRm9vdG5vdGVzIF0tXG5cblsxXSBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIHRoZXNlIHNwZWNpYWwgbWV0aG9kcyBtYXkgYmUgZm91bmQgaW5cbiAgICB0aGUgUHl0aG9uIFJlZmVyZW5jZSBNYW51YWwgKCpCYXNpYyBjdXN0b21pemF0aW9uKikuXG5cblsyXSBBcyBhIGNvbnNlcXVlbmNlLCB0aGUgbGlzdCBgYFsxLCAyXWBgIGlzIGNvbnNpZGVyZWQgZXF1YWwgdG9cbiAgICBgYFsxLjAsIDIuMF1gYCwgYW5kIHNpbWlsYXJseSBmb3IgdHVwbGVzLlxuXG5bM10gVGhleSBtdXN0IGhhdmUgc2luY2UgdGhlIHBhcnNlciBjYW5cJ3QgdGVsbCB0aGUgdHlwZSBvZiB0aGVcbiAgICBvcGVyYW5kcy5cblxuWzRdIENhc2VkIGNoYXJhY3RlcnMgYXJlIHRob3NlIHdpdGggZ2VuZXJhbCBjYXRlZ29yeSBwcm9wZXJ0eSBiZWluZ1xuICAgIG9uZSBvZiAiTHUiIChMZXR0ZXIsIHVwcGVyY2FzZSksICJMbCIgKExldHRlciwgbG93ZXJjYXNlKSwgb3IgIkx0IlxuICAgIChMZXR0ZXIsIHRpdGxlY2FzZSkuXG5cbls1XSBUbyBmb3JtYXQgb25seSBhIHR1cGxlIHlvdSBzaG91bGQgdGhlcmVmb3JlIHByb3ZpZGUgYSBzaW5nbGV0b25cbiAgICB0dXBsZSB3aG9zZSBvbmx5IGVsZW1lbnQgaXMgdGhlIHR1cGxlIHRvIGJlIGZvcm1hdHRlZC5cbicsCisgJ3NwZWNpYWxuYW1lcyc6ICdcblNwZWNpYWwgbWV0aG9kIG5hbWVzXG4qKioqKioqKioqKioqKioqKioqKlxuXG5BIGNsYXNzIGNhbiBpbXBsZW1lbnQgY2VydGFpbiBvcGVyYXRpb25zIHRoYXQgYXJlIGludm9rZWQgYnkgc3BlY2lhbFxuc3ludGF4IChzdWNoIGFzIGFyaXRobWV0aWMgb3BlcmF0aW9ucyBvciBzdWJzY3JpcHRpbmcgYW5kIHNsaWNpbmcpIGJ5XG5kZWZpbmluZyBtZXRob2RzIHdpdGggc3BlY2lhbCBuYW1lcy4gVGhpcyBpcyBQeXRob25cJ3MgYXBwcm9hY2ggdG9cbipvcGVyYXRvciBvdmVybG9hZGluZyosIGFsbG93aW5nIGNsYXNzZXMgdG8gZGVmaW5lIHRoZWlyIG93biBiZWhhdmlvclxud2l0aCByZXNwZWN0IHRvIGxhbmd1YWdlIG9wZXJhdG9ycy4gIEZvciBpbnN0YW5jZSwgaWYgYSBjbGFzcyBkZWZpbmVzXG5hIG1ldGhvZCBuYW1lZCBgYF9fZ2V0aXRlbV9fKClgYCwgYW5kIGBgeGBgIGlzIGFuIGluc3RhbmNlIG9mIHRoaXNcbmNsYXNzLCB0aGVuIGBgeFtpXWBgIGlzIHJvdWdobHkgZXF1aXZhbGVudCB0byBgYHR5cGUoeCkuX19nZXRpdGVtX18oeCxcbmkpYGAuICBFeGNlcHQgd2hlcmUgbWVudGlvbmVkLCBhdHRlbXB0cyB0byBleGVjdXRlIGFuIG9wZXJhdGlvbiByYWlzZVxuYW4gZXhjZXB0aW9uIHdoZW4gbm8gYXBwcm9wcmlhdGUgbWV0aG9kIGlzIGRlZmluZWQgKHR5cGljYWxseVxuYGBBdHRyaWJ1dGVFcnJvcmBgIG9yIGBgVHlwZUVycm9yYGApLlxuXG5XaGVuIGltcGxlbWVudGluZyBhIGNsYXNzIHRoYXQgZW11bGF0ZXMgYW55IGJ1aWx0LWluIHR5cGUsIGl0IGlzXG5pbXBvcnRhbnQgdGhhdCB0aGUgZW11bGF0aW9uIG9ubHkgYmUgaW1wbGVtZW50ZWQgdG8gdGhlIGRlZ3JlZSB0aGF0IGl0XG5tYWtlcyBzZW5zZSBmb3IgdGhlIG9iamVjdCBiZWluZyBtb2RlbGxlZC4gIEZvciBleGFtcGxlLCBzb21lXG5zZXF1ZW5jZXMgbWF5IHdvcmsgd2VsbCB3aXRoIHJldHJpZXZhbCBvZiBpbmRpdmlkdWFsIGVsZW1lbnRzLCBidXRcbmV4dHJhY3RpbmcgYSBzbGljZSBtYXkgbm90IG1ha2Ugc2Vuc2UuICAoT25lIGV4YW1wbGUgb2YgdGhpcyBpcyB0aGVcbmBgTm9kZUxpc3RgYCBpbnRlcmZhY2UgaW4gdGhlIFczQ1wncyBEb2N1bWVudCBPYmplY3QgTW9kZWwuKVxuXG5cbkJhc2ljIGN1c3RvbWl6YXRpb25cbj09PT09PT09PT09PT09PT09PT1cblxub2JqZWN0Ll9fbmV3X18oY2xzWywgLi4uXSlcblxuICAgQ2FsbGVkIHRvIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBjbGFzcyAqY2xzKi4gIGBgX19uZXdfXygpYGAgaXMgYVxuICAgc3RhdGljIG1ldGhvZCAoc3BlY2lhbC1jYXNlZCBzbyB5b3UgbmVlZCBub3QgZGVjbGFyZSBpdCBhcyBzdWNoKVxuICAgdGhhdCB0YWtlcyB0aGUgY2xhc3Mgb2Ygd2hpY2ggYW4gaW5zdGFuY2Ugd2FzIHJlcXVlc3RlZCBhcyBpdHNcbiAgIGZpcnN0IGFyZ3VtZW50LiAgVGhlIHJlbWFpbmluZyBhcmd1bWVudHMgYXJlIHRob3NlIHBhc3NlZCB0byB0aGVcbiAgIG9iamVjdCBjb25zdHJ1Y3RvciBleHByZXNzaW9uICh0aGUgY2FsbCB0byB0aGUgY2xhc3MpLiAgVGhlIHJldHVyblxuICAgdmFsdWUgb2YgYGBfX25ld19fKClgYCBzaG91bGQgYmUgdGhlIG5ldyBvYmplY3QgaW5zdGFuY2UgKHVzdWFsbHlcbiAgIGFuIGluc3RhbmNlIG9mICpjbHMqKS5cblxuICAgVHlwaWNhbCBpbXBsZW1lbnRhdGlvbnMgY3JlYXRlIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBjbGFzcyBieVxuICAgaW52b2tpbmcgdGhlIHN1cGVyY2xhc3NcJ3MgYGBfX25ld19fKClgYCBtZXRob2QgdXNpbmdcbiAgIGBgc3VwZXIoY3VycmVudGNsYXNzLCBjbHMpLl9fbmV3X18oY2xzWywgLi4uXSlgYCB3aXRoIGFwcHJvcHJpYXRlXG4gICBhcmd1bWVudHMgYW5kIHRoZW4gbW9kaWZ5aW5nIHRoZSBuZXdseS1jcmVhdGVkIGluc3RhbmNlIGFzXG4gICBuZWNlc3NhcnkgYmVmb3JlIHJldHVybmluZyBpdC5cblxuICAgSWYgYGBfX25ld19fKClgYCByZXR1cm5zIGFuIGluc3RhbmNlIG9mICpjbHMqLCB0aGVuIHRoZSBuZXdcbiAgIGluc3RhbmNlXCdzIGBgX19pbml0X18oKWBgIG1ldGhvZCB3aWxsIGJlIGludm9rZWQgbGlrZVxuICAgYGBfX2luaXRfXyhzZWxmWywgLi4uXSlgYCwgd2hlcmUgKnNlbGYqIGlzIHRoZSBuZXcgaW5zdGFuY2UgYW5kIHRoZVxuICAgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgdGhlIHNhbWUgYXMgd2VyZSBwYXNzZWQgdG8gYGBfX25ld19fKClgYC5cblxuICAgSWYgYGBfX25ld19fKClgYCBkb2VzIG5vdCByZXR1cm4gYW4gaW5zdGFuY2Ugb2YgKmNscyosIHRoZW4gdGhlIG5ld1xuICAgaW5zdGFuY2VcJ3MgYGBfX2luaXRfXygpYGAgbWV0aG9kIHdpbGwgbm90IGJlIGludm9rZWQuXG5cbiAgIGBgX19uZXdfXygpYGAgaXMgaW50ZW5kZWQgbWFpbmx5IHRvIGFsbG93IHN1YmNsYXNzZXMgb2YgaW1tdXRhYmxlXG4gICB0eXBlcyAobGlrZSBpbnQsIHN0ciwgb3IgdHVwbGUpIHRvIGN1c3RvbWl6ZSBpbnN0YW5jZSBjcmVhdGlvbi4gIEl0XG4gICBpcyBhbHNvIGNvbW1vbmx5IG92ZXJyaWRkZW4gaW4gY3VzdG9tIG1ldGFjbGFzc2VzIGluIG9yZGVyIHRvXG4gICBjdXN0b21pemUgY2xhc3MgY3JlYXRpb24uXG5cbm9iamVjdC5fX2luaXRfXyhzZWxmWywgLi4uXSlcblxuICAgQ2FsbGVkIHdoZW4gdGhlIGluc3RhbmNlIGlzIGNyZWF0ZWQuICBUaGUgYXJndW1lbnRzIGFyZSB0aG9zZVxuICAgcGFzc2VkIHRvIHRoZSBjbGFzcyBjb25zdHJ1Y3RvciBleHByZXNzaW9uLiAgSWYgYSBiYXNlIGNsYXNzIGhhcyBhblxuICAgYGBfX2luaXRfXygpYGAgbWV0aG9kLCB0aGUgZGVyaXZlZCBjbGFzc1wncyBgYF9faW5pdF9fKClgYCBtZXRob2QsXG4gICBpZiBhbnksIG11c3QgZXhwbGljaXRseSBjYWxsIGl0IHRvIGVuc3VyZSBwcm9wZXIgaW5pdGlhbGl6YXRpb24gb2ZcbiAgIHRoZSBiYXNlIGNsYXNzIHBhcnQgb2YgdGhlIGluc3RhbmNlOyBmb3IgZXhhbXBsZTpcbiAgIGBgQmFzZUNsYXNzLl9faW5pdF9fKHNlbGYsIFthcmdzLi4uXSlgYC4gIEFzIGEgc3BlY2lhbCBjb25zdHJhaW50XG4gICBvbiBjb25zdHJ1Y3RvcnMsIG5vIHZhbHVlIG1heSBiZSByZXR1cm5lZDsgZG9pbmcgc28gd2lsbCBjYXVzZSBhXG4gICBgYFR5cGVFcnJvcmBgIHRvIGJlIHJhaXNlZCBhdCBydW50aW1lLlxuXG5vYmplY3QuX19kZWxfXyhzZWxmKVxuXG4gICBDYWxsZWQgd2hlbiB0aGUgaW5zdGFuY2UgaXMgYWJvdXQgdG8gYmUgZGVzdHJveWVkLiAgVGhpcyBpcyBhbHNvXG4gICBjYWxsZWQgYSBkZXN0cnVjdG9yLiAgSWYgYSBiYXNlIGNsYXNzIGhhcyBhIGBgX19kZWxfXygpYGAgbWV0aG9kLFxuICAgdGhlIGRlcml2ZWQgY2xhc3NcJ3MgYGBfX2RlbF9fKClgYCBtZXRob2QsIGlmIGFueSwgbXVzdCBleHBsaWNpdGx5XG4gICBjYWxsIGl0IHRvIGVuc3VyZSBwcm9wZXIgZGVsZXRpb24gb2YgdGhlIGJhc2UgY2xhc3MgcGFydCBvZiB0aGVcbiAgIGluc3RhbmNlLiAgTm90ZSB0aGF0IGl0IGlzIHBvc3NpYmxlICh0aG91Z2ggbm90IHJlY29tbWVuZGVkISkgZm9yXG4gICB0aGUgYGBfX2RlbF9fKClgYCBtZXRob2QgdG8gcG9zdHBvbmUgZGVzdHJ1Y3Rpb24gb2YgdGhlIGluc3RhbmNlIGJ5XG4gICBjcmVhdGluZyBhIG5ldyByZWZlcmVuY2UgdG8gaXQuICBJdCBtYXkgdGhlbiBiZSBjYWxsZWQgYXQgYSBsYXRlclxuICAgdGltZSB3aGVuIHRoaXMgbmV3IHJlZmVyZW5jZSBpcyBkZWxldGVkLiAgSXQgaXMgbm90IGd1YXJhbnRlZWQgdGhhdFxuICAgYGBfX2RlbF9fKClgYCBtZXRob2RzIGFyZSBjYWxsZWQgZm9yIG9iamVjdHMgdGhhdCBzdGlsbCBleGlzdCB3aGVuXG4gICB0aGUgaW50ZXJwcmV0ZXIgZXhpdHMuXG5cbiAgIE5vdGU6IGBgZGVsIHhgYCBkb2VzblwndCBkaXJlY3RseSBjYWxsIGBgeC5fX2RlbF9fKClgYCAtLS0gdGhlIGZvcm1lclxuICAgICBkZWNyZW1lbnRzIHRoZSByZWZlcmVuY2UgY291bnQgZm9yIGBgeGBgIGJ5IG9uZSwgYW5kIHRoZSBsYXR0ZXJcbiAgICAgaXMgb25seSBjYWxsZWQgd2hlbiBgYHhgYFwncyByZWZlcmVuY2UgY291bnQgcmVhY2hlcyB6ZXJvLiAgU29tZVxuICAgICBjb21tb24gc2l0dWF0aW9ucyB0aGF0IG1heSBwcmV2ZW50IHRoZSByZWZlcmVuY2UgY291bnQgb2YgYW5cbiAgICAgb2JqZWN0IGZyb20gZ29pbmcgdG8gemVybyBpbmNsdWRlOiBjaXJjdWxhciByZWZlcmVuY2VzIGJldHdlZW5cbiAgICAgb2JqZWN0cyAoZS5nLiwgYSBkb3VibHktbGlua2VkIGxpc3Qgb3IgYSB0cmVlIGRhdGEgc3RydWN0dXJlIHdpdGhcbiAgICAgcGFyZW50IGFuZCBjaGlsZCBwb2ludGVycyk7IGEgcmVmZXJlbmNlIHRvIHRoZSBvYmplY3Qgb24gdGhlXG4gICAgIHN0YWNrIGZyYW1lIG9mIGEgZnVuY3Rpb24gdGhhdCBjYXVnaHQgYW4gZXhjZXB0aW9uICh0aGUgdHJhY2ViYWNrXG4gICAgIHN0b3JlZCBpbiBgYHN5cy5leGNfaW5mbygpWzJdYGAga2VlcHMgdGhlIHN0YWNrIGZyYW1lIGFsaXZlKTsgb3JcbiAgICAgYSByZWZlcmVuY2UgdG8gdGhlIG9iamVjdCBvbiB0aGUgc3RhY2sgZnJhbWUgdGhhdCByYWlzZWQgYW5cbiAgICAgdW5oYW5kbGVkIGV4Y2VwdGlvbiBpbiBpbnRlcmFjdGl2ZSBtb2RlICh0aGUgdHJhY2ViYWNrIHN0b3JlZCBpblxuICAgICBgYHN5cy5sYXN0X3RyYWNlYmFja2BgIGtlZXBzIHRoZSBzdGFjayBmcmFtZSBhbGl2ZSkuICBUaGUgZmlyc3RcbiAgICAgc2l0dWF0aW9uIGNhbiBvbmx5IGJlIHJlbWVkaWVkIGJ5IGV4cGxpY2l0bHkgYnJlYWtpbmcgdGhlIGN5Y2xlcztcbiAgICAgdGhlIGxhdHRlciB0d28gc2l0dWF0aW9ucyBjYW4gYmUgcmVzb2x2ZWQgYnkgc3RvcmluZyBgYE5vbmVgYCBpblxuICAgICBgYHN5cy5sYXN0X3RyYWNlYmFja2BgLiBDaXJjdWxhciByZWZlcmVuY2VzIHdoaWNoIGFyZSBnYXJiYWdlIGFyZVxuICAgICBkZXRlY3RlZCB3aGVuIHRoZSBvcHRpb24gY3ljbGUgZGV0ZWN0b3IgaXMgZW5hYmxlZCAoaXRcJ3Mgb24gYnlcbiAgICAgZGVmYXVsdCksIGJ1dCBjYW4gb25seSBiZSBjbGVhbmVkIHVwIGlmIHRoZXJlIGFyZSBubyBQeXRob24tXG4gICAgIGxldmVsIGBgX19kZWxfXygpYGAgbWV0aG9kcyBpbnZvbHZlZC4gUmVmZXIgdG8gdGhlIGRvY3VtZW50YXRpb25cbiAgICAgZm9yIHRoZSBgYGdjYGAgbW9kdWxlIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvd1xuICAgICBgYF9fZGVsX18oKWBgIG1ldGhvZHMgYXJlIGhhbmRsZWQgYnkgdGhlIGN5Y2xlIGRldGVjdG9yLFxuICAgICBwYXJ0aWN1bGFybHkgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBgYGdhcmJhZ2VgYCB2YWx1ZS5cblxuICAgV2FybmluZzogRHVlIHRvIHRoZSBwcmVjYXJpb3VzIGNpcmN1bXN0YW5jZXMgdW5kZXIgd2hpY2ggYGBfX2RlbF9fKClgYFxuICAgICBtZXRob2RzIGFyZSBpbnZva2VkLCBleGNlcHRpb25zIHRoYXQgb2NjdXIgZHVyaW5nIHRoZWlyIGV4ZWN1dGlvblxuICAgICBhcmUgaWdub3JlZCwgYW5kIGEgd2FybmluZyBpcyBwcmludGVkIHRvIGBgc3lzLnN0ZGVycmBgIGluc3RlYWQuXG4gICAgIEFsc28sIHdoZW4gYGBfX2RlbF9fKClgYCBpcyBpbnZva2VkIGluIHJlc3BvbnNlIHRvIGEgbW9kdWxlIGJlaW5nXG4gICAgIGRlbGV0ZWQgKGUuZy4sIHdoZW4gZXhlY3V0aW9uIG9mIHRoZSBwcm9ncmFtIGlzIGRvbmUpLCBvdGhlclxuICAgICBnbG9iYWxzIHJlZmVyZW5jZWQgYnkgdGhlIGBgX19kZWxfXygpYGAgbWV0aG9kIG1heSBhbHJlYWR5IGhhdmVcbiAgICAgYmVlbiBkZWxldGVkIG9yIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIHRvcm4gZG93biAoZS5nLiB0aGVcbiAgICAgaW1wb3J0IG1hY2hpbmVyeSBzaHV0dGluZyBkb3duKS4gIEZvciB0aGlzIHJlYXNvbiwgYGBfX2RlbF9fKClgYFxuICAgICBtZXRob2RzIHNob3VsZCBkbyB0aGUgYWJzb2x1dGUgbWluaW11bSBuZWVkZWQgdG8gbWFpbnRhaW5cbiAgICAgZXh0ZXJuYWwgaW52YXJpYW50cy4gIFN0YXJ0aW5nIHdpdGggdmVyc2lvbiAxLjUsIFB5dGhvblxuICAgICBndWFyYW50ZWVzIHRoYXQgZ2xvYmFscyB3aG9zZSBuYW1lIGJlZ2lucyB3aXRoIGEgc2luZ2xlXG4gICAgIHVuZGVyc2NvcmUgYXJlIGRlbGV0ZWQgZnJvbSB0aGVpciBtb2R1bGUgYmVmb3JlIG90aGVyIGdsb2JhbHMgYXJlXG4gICAgIGRlbGV0ZWQ7IGlmIG5vIG90aGVyIHJlZmVyZW5jZXMgdG8gc3VjaCBnbG9iYWxzIGV4aXN0LCB0aGlzIG1heVxuICAgICBoZWxwIGluIGFzc3VyaW5nIHRoYXQgaW1wb3J0ZWQgbW9kdWxlcyBhcmUgc3RpbGwgYXZhaWxhYmxlIGF0IHRoZVxuICAgICB0aW1lIHdoZW4gdGhlIGBgX19kZWxfXygpYGAgbWV0aG9kIGlzIGNhbGxlZC5cblxub2JqZWN0Ll9fcmVwcl9fKHNlbGYpXG5cbiAgIENhbGxlZCBieSB0aGUgYGByZXByKClgYCBidWlsdC1pbiBmdW5jdGlvbiB0byBjb21wdXRlIHRoZVxuICAgIm9mZmljaWFsIiBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiAgSWYgYXQgYWxsIHBvc3NpYmxlLFxuICAgdGhpcyBzaG91bGQgbG9vayBsaWtlIGEgdmFsaWQgUHl0aG9uIGV4cHJlc3Npb24gdGhhdCBjb3VsZCBiZSB1c2VkXG4gICB0byByZWNyZWF0ZSBhbiBvYmplY3Qgd2l0aCB0aGUgc2FtZSB2YWx1ZSAoZ2l2ZW4gYW4gYXBwcm9wcmlhdGVcbiAgIGVudmlyb25tZW50KS4gIElmIHRoaXMgaXMgbm90IHBvc3NpYmxlLCBhIHN0cmluZyBvZiB0aGUgZm9ybVxuICAgYGA8Li4uc29tZSB1c2VmdWwgZGVzY3JpcHRpb24uLi4+YGAgc2hvdWxkIGJlIHJldHVybmVkLiBUaGUgcmV0dXJuXG4gICB2YWx1ZSBtdXN0IGJlIGEgc3RyaW5nIG9iamVjdC4gSWYgYSBjbGFzcyBkZWZpbmVzIGBgX19yZXByX18oKWBgXG4gICBidXQgbm90IGBgX19zdHJfXygpYGAsIHRoZW4gYGBfX3JlcHJfXygpYGAgaXMgYWxzbyB1c2VkIHdoZW4gYW5cbiAgICJpbmZvcm1hbCIgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGluc3RhbmNlcyBvZiB0aGF0IGNsYXNzIGlzXG4gICByZXF1aXJlZC5cblxuICAgVGhpcyBpcyB0eXBpY2FsbHkgdXNlZCBmb3IgZGVidWdnaW5nLCBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCB0aGVcbiAgIHJlcHJlc2VudGF0aW9uIGlzIGluZm9ybWF0aW9uLXJpY2ggYW5kIHVuYW1iaWd1b3VzLlxuXG5vYmplY3QuX19zdHJfXyhzZWxmKVxuXG4gICBDYWxsZWQgYnkgdGhlIGBgc3RyKClgYCBidWlsdC1pbiBmdW5jdGlvbiBhbmQgYnkgdGhlIGBgcHJpbnQoKWBgXG4gICBmdW5jdGlvbiB0byBjb21wdXRlIHRoZSAiaW5mb3JtYWwiIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhblxuICAgb2JqZWN0LiAgVGhpcyBkaWZmZXJzIGZyb20gYGBfX3JlcHJfXygpYGAgaW4gdGhhdCBpdCBkb2VzIG5vdCBoYXZlXG4gICB0byBiZSBhIHZhbGlkIFB5dGhvbiBleHByZXNzaW9uOiBhIG1vcmUgY29udmVuaWVudCBvciBjb25jaXNlXG4gICByZXByZXNlbnRhdGlvbiBtYXkgYmUgdXNlZCBpbnN0ZWFkLiBUaGUgcmV0dXJuIHZhbHVlIG11c3QgYmUgYVxuICAgc3RyaW5nIG9iamVjdC5cblxub2JqZWN0Ll9fYnl0ZXNfXyhzZWxmKVxuXG4gICBDYWxsZWQgYnkgYGBieXRlcygpYGAgdG8gY29tcHV0ZSBhIGJ5dGUtc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuXG4gICBvYmplY3QuIFRoaXMgc2hvdWxkIHJldHVybiBhIGBgYnl0ZXNgYCBvYmplY3QuXG5cbm9iamVjdC5fX2Zvcm1hdF9fKHNlbGYsIGZvcm1hdF9zcGVjKVxuXG4gICBDYWxsZWQgYnkgdGhlIGBgZm9ybWF0KClgYCBidWlsdC1pbiBmdW5jdGlvbiAoYW5kIGJ5IGV4dGVuc2lvbiwgdGhlXG4gICBgYGZvcm1hdCgpYGAgbWV0aG9kIG9mIGNsYXNzIGBgc3RyYGApIHRvIHByb2R1Y2UgYSAiZm9ybWF0dGVkIlxuICAgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gVGhlIGBgZm9ybWF0X3NwZWNgYCBhcmd1bWVudCBpc1xuICAgYSBzdHJpbmcgdGhhdCBjb250YWlucyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBmb3JtYXR0aW5nIG9wdGlvbnNcbiAgIGRlc2lyZWQuIFRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgYGBmb3JtYXRfc3BlY2BgIGFyZ3VtZW50IGlzIHVwXG4gICB0byB0aGUgdHlwZSBpbXBsZW1lbnRpbmcgYGBfX2Zvcm1hdF9fKClgYCwgaG93ZXZlciBtb3N0IGNsYXNzZXNcbiAgIHdpbGwgZWl0aGVyIGRlbGVnYXRlIGZvcm1hdHRpbmcgdG8gb25lIG9mIHRoZSBidWlsdC1pbiB0eXBlcywgb3JcbiAgIHVzZSBhIHNpbWlsYXIgZm9ybWF0dGluZyBvcHRpb24gc3ludGF4LlxuXG4gICBTZWUgKkZvcm1hdCBTcGVjaWZpY2F0aW9uIE1pbmktTGFuZ3VhZ2UqIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZVxuICAgc3RhbmRhcmQgZm9ybWF0dGluZyBzeW50YXguXG5cbiAgIFRoZSByZXR1cm4gdmFsdWUgbXVzdCBiZSBhIHN0cmluZyBvYmplY3QuXG5cbm9iamVjdC5fX2x0X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19sZV9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fZXFfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX25lX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19ndF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fZ2VfXyhzZWxmLCBvdGhlcilcblxuICAgVGhlc2UgYXJlIHRoZSBzby1jYWxsZWQgInJpY2ggY29tcGFyaXNvbiIgbWV0aG9kcy4gVGhlXG4gICBjb3JyZXNwb25kZW5jZSBiZXR3ZWVuIG9wZXJhdG9yIHN5bWJvbHMgYW5kIG1ldGhvZCBuYW1lcyBpcyBhc1xuICAgZm9sbG93czogYGB4PHlgYCBjYWxscyBgYHguX19sdF9fKHkpYGAsIGBgeDw9eWBgIGNhbGxzXG4gICBgYHguX19sZV9fKHkpYGAsIGBgeD09eWBgIGNhbGxzIGBgeC5fX2VxX18oeSlgYCwgYGB4IT15YGAgY2FsbHNcbiAgIGBgeC5fX25lX18oeSlgYCwgYGB4PnlgYCBjYWxscyBgYHguX19ndF9fKHkpYGAsIGFuZCBgYHg+PXlgYCBjYWxsc1xuICAgYGB4Ll9fZ2VfXyh5KWBgLlxuXG4gICBBIHJpY2ggY29tcGFyaXNvbiBtZXRob2QgbWF5IHJldHVybiB0aGUgc2luZ2xldG9uXG4gICBgYE5vdEltcGxlbWVudGVkYGAgaWYgaXQgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBvcGVyYXRpb24gZm9yIGFcbiAgIGdpdmVuIHBhaXIgb2YgYXJndW1lbnRzLiBCeSBjb252ZW50aW9uLCBgYEZhbHNlYGAgYW5kIGBgVHJ1ZWBgIGFyZVxuICAgcmV0dXJuZWQgZm9yIGEgc3VjY2Vzc2Z1bCBjb21wYXJpc29uLiBIb3dldmVyLCB0aGVzZSBtZXRob2RzIGNhblxuICAgcmV0dXJuIGFueSB2YWx1ZSwgc28gaWYgdGhlIGNvbXBhcmlzb24gb3BlcmF0b3IgaXMgdXNlZCBpbiBhXG4gICBCb29sZWFuIGNvbnRleHQgKGUuZy4sIGluIHRoZSBjb25kaXRpb24gb2YgYW4gYGBpZmBgIHN0YXRlbWVudCksXG4gICBQeXRob24gd2lsbCBjYWxsIGBgYm9vbCgpYGAgb24gdGhlIHZhbHVlIHRvIGRldGVybWluZSBpZiB0aGUgcmVzdWx0XG4gICBpcyB0cnVlIG9yIGZhbHNlLlxuXG4gICBUaGVyZSBhcmUgbm8gaW1wbGllZCByZWxhdGlvbnNoaXBzIGFtb25nIHRoZSBjb21wYXJpc29uIG9wZXJhdG9ycy5cbiAgIFRoZSB0cnV0aCBvZiBgYHg9PXlgYCBkb2VzIG5vdCBpbXBseSB0aGF0IGBgeCE9eWBgIGlzIGZhbHNlLlxuICAgQWNjb3JkaW5nbHksIHdoZW4gZGVmaW5pbmcgYGBfX2VxX18oKWBgLCBvbmUgc2hvdWxkIGFsc28gZGVmaW5lXG4gICBgYF9fbmVfXygpYGAgc28gdGhhdCB0aGUgb3BlcmF0b3JzIHdpbGwgYmVoYXZlIGFzIGV4cGVjdGVkLiAgU2VlXG4gICB0aGUgcGFyYWdyYXBoIG9uIGBgX19oYXNoX18oKWBgIGZvciBzb21lIGltcG9ydGFudCBub3RlcyBvblxuICAgY3JlYXRpbmcgKmhhc2hhYmxlKiBvYmplY3RzIHdoaWNoIHN1cHBvcnQgY3VzdG9tIGNvbXBhcmlzb25cbiAgIG9wZXJhdGlvbnMgYW5kIGFyZSB1c2FibGUgYXMgZGljdGlvbmFyeSBrZXlzLlxuXG4gICBUaGVyZSBhcmUgbm8gc3dhcHBlZC1hcmd1bWVudCB2ZXJzaW9ucyBvZiB0aGVzZSBtZXRob2RzICh0byBiZSB1c2VkXG4gICB3aGVuIHRoZSBsZWZ0IGFyZ3VtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIG9wZXJhdGlvbiBidXQgdGhlIHJpZ2h0XG4gICBhcmd1bWVudCBkb2VzKTsgcmF0aGVyLCBgYF9fbHRfXygpYGAgYW5kIGBgX19ndF9fKClgYCBhcmUgZWFjaFxuICAgb3RoZXJcJ3MgcmVmbGVjdGlvbiwgYGBfX2xlX18oKWBgIGFuZCBgYF9fZ2VfXygpYGAgYXJlIGVhY2ggb3RoZXJcJ3NcbiAgIHJlZmxlY3Rpb24sIGFuZCBgYF9fZXFfXygpYGAgYW5kIGBgX19uZV9fKClgYCBhcmUgdGhlaXIgb3duXG4gICByZWZsZWN0aW9uLlxuXG4gICBBcmd1bWVudHMgdG8gcmljaCBjb21wYXJpc29uIG1ldGhvZHMgYXJlIG5ldmVyIGNvZXJjZWQuXG5cbiAgIFRvIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgb3JkZXJpbmcgb3BlcmF0aW9ucyBmcm9tIGEgc2luZ2xlIHJvb3RcbiAgIG9wZXJhdGlvbiwgc2VlIGBgZnVuY3Rvb2xzLnRvdGFsX29yZGVyaW5nKClgYC5cblxub2JqZWN0Ll9faGFzaF9fKHNlbGYpXG5cbiAgIENhbGxlZCBieSBidWlsdC1pbiBmdW5jdGlvbiBgYGhhc2goKWBgIGFuZCBmb3Igb3BlcmF0aW9ucyBvblxuICAgbWVtYmVycyBvZiBoYXNoZWQgY29sbGVjdGlvbnMgaW5jbHVkaW5nIGBgc2V0YGAsIGBgZnJvemVuc2V0YGAsIGFuZFxuICAgYGBkaWN0YGAuICBgYF9faGFzaF9fKClgYCBzaG91bGQgcmV0dXJuIGFuIGludGVnZXIuICBUaGUgb25seVxuICAgcmVxdWlyZWQgcHJvcGVydHkgaXMgdGhhdCBvYmplY3RzIHdoaWNoIGNvbXBhcmUgZXF1YWwgaGF2ZSB0aGUgc2FtZVxuICAgaGFzaCB2YWx1ZTsgaXQgaXMgYWR2aXNlZCB0byBzb21laG93IG1peCB0b2dldGhlciAoZS5nLiB1c2luZ1xuICAgZXhjbHVzaXZlIG9yKSB0aGUgaGFzaCB2YWx1ZXMgZm9yIHRoZSBjb21wb25lbnRzIG9mIHRoZSBvYmplY3QgdGhhdFxuICAgYWxzbyBwbGF5IGEgcGFydCBpbiBjb21wYXJpc29uIG9mIG9iamVjdHMuXG5cbiAgIElmIGEgY2xhc3MgZG9lcyBub3QgZGVmaW5lIGFuIGBgX19lcV9fKClgYCBtZXRob2QgaXQgc2hvdWxkIG5vdFxuICAgZGVmaW5lIGEgYGBfX2hhc2hfXygpYGAgb3BlcmF0aW9uIGVpdGhlcjsgaWYgaXQgZGVmaW5lc1xuICAgYGBfX2VxX18oKWBgIGJ1dCBub3QgYGBfX2hhc2hfXygpYGAsIGl0cyBpbnN0YW5jZXMgd2lsbCBub3QgYmVcbiAgIHVzYWJsZSBhcyBpdGVtcyBpbiBoYXNoYWJsZSBjb2xsZWN0aW9ucy4gIElmIGEgY2xhc3MgZGVmaW5lc1xuICAgbXV0YWJsZSBvYmplY3RzIGFuZCBpbXBsZW1lbnRzIGFuIGBgX19lcV9fKClgYCBtZXRob2QsIGl0IHNob3VsZFxuICAgbm90IGltcGxlbWVudCBgYF9faGFzaF9fKClgYCwgc2luY2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIGhhc2hhYmxlXG4gICBjb2xsZWN0aW9ucyByZXF1aXJlcyB0aGF0IGEga2V5XCdzIGhhc2ggdmFsdWUgaXMgaW1tdXRhYmxlIChpZiB0aGVcbiAgIG9iamVjdFwncyBoYXNoIHZhbHVlIGNoYW5nZXMsIGl0IHdpbGwgYmUgaW4gdGhlIHdyb25nIGhhc2ggYnVja2V0KS5cblxuICAgVXNlci1kZWZpbmVkIGNsYXNzZXMgaGF2ZSBgYF9fZXFfXygpYGAgYW5kIGBgX19oYXNoX18oKWBgIG1ldGhvZHNcbiAgIGJ5IGRlZmF1bHQ7IHdpdGggdGhlbSwgYWxsIG9iamVjdHMgY29tcGFyZSB1bmVxdWFsIChleGNlcHQgd2l0aFxuICAgdGhlbXNlbHZlcykgYW5kIGBgeC5fX2hhc2hfXygpYGAgcmV0dXJucyBhbiBhcHByb3ByaWF0ZSB2YWx1ZSBzdWNoXG4gICB0aGF0IGBgeCA9PSB5YGAgaW1wbGllcyBib3RoIHRoYXQgYGB4IGlzIHlgYCBhbmQgYGBoYXNoKHgpID09XG4gICBoYXNoKHkpYGAuXG5cbiAgIENsYXNzZXMgd2hpY2ggaW5oZXJpdCBhIGBgX19oYXNoX18oKWBgIG1ldGhvZCBmcm9tIGEgcGFyZW50IGNsYXNzXG4gICBidXQgY2hhbmdlIHRoZSBtZWFuaW5nIG9mIGBgX19lcV9fKClgYCBzdWNoIHRoYXQgdGhlIGhhc2ggdmFsdWVcbiAgIHJldHVybmVkIGlzIG5vIGxvbmdlciBhcHByb3ByaWF0ZSAoZS5nLiBieSBzd2l0Y2hpbmcgdG8gYSB2YWx1ZS1cbiAgIGJhc2VkIGNvbmNlcHQgb2YgZXF1YWxpdHkgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBpZGVudGl0eSBiYXNlZFxuICAgZXF1YWxpdHkpIGNhbiBleHBsaWNpdGx5IGZsYWcgdGhlbXNlbHZlcyBhcyBiZWluZyB1bmhhc2hhYmxlIGJ5XG4gICBzZXR0aW5nIGBgX19oYXNoX18gPSBOb25lYGAgaW4gdGhlIGNsYXNzIGRlZmluaXRpb24uIERvaW5nIHNvIG1lYW5zXG4gICB0aGF0IG5vdCBvbmx5IHdpbGwgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcyByYWlzZSBhbiBhcHByb3ByaWF0ZVxuICAgYGBUeXBlRXJyb3JgYCB3aGVuIGEgcHJvZ3JhbSBhdHRlbXB0cyB0byByZXRyaWV2ZSB0aGVpciBoYXNoIHZhbHVlLFxuICAgYnV0IHRoZXkgd2lsbCBhbHNvIGJlIGNvcnJlY3RseSBpZGVudGlmaWVkIGFzIHVuaGFzaGFibGUgd2hlblxuICAgY2hlY2tpbmcgYGBpc2luc3RhbmNlKG9iaiwgY29sbGVjdGlvbnMuSGFzaGFibGUpYGAgKHVubGlrZSBjbGFzc2VzXG4gICB3aGljaCBkZWZpbmUgdGhlaXIgb3duIGBgX19oYXNoX18oKWBgIHRvIGV4cGxpY2l0bHkgcmFpc2VcbiAgIGBgVHlwZUVycm9yYGApLlxuXG4gICBJZiBhIGNsYXNzIHRoYXQgb3ZlcnJpZGVzIGBgX19lcV9fKClgYCBuZWVkcyB0byByZXRhaW4gdGhlXG4gICBpbXBsZW1lbnRhdGlvbiBvZiBgYF9faGFzaF9fKClgYCBmcm9tIGEgcGFyZW50IGNsYXNzLCB0aGVcbiAgIGludGVycHJldGVyIG11c3QgYmUgdG9sZCB0aGlzIGV4cGxpY2l0bHkgYnkgc2V0dGluZyBgYF9faGFzaF9fID1cbiAgIDxQYXJlbnRDbGFzcz4uX19oYXNoX19gYC4gT3RoZXJ3aXNlIHRoZSBpbmhlcml0YW5jZSBvZlxuICAgYGBfX2hhc2hfXygpYGAgd2lsbCBiZSBibG9ja2VkLCBqdXN0IGFzIGlmIGBgX19oYXNoX19gYCBoYWQgYmVlblxuICAgZXhwbGljaXRseSBzZXQgdG8gYGBOb25lYGAuXG5cbiAgIE5vdGU6IE5vdGUgYnkgZGVmYXVsdCB0aGUgYGBfX2hhc2hfXygpYGAgdmFsdWVzIG9mIHN0ciwgYnl0ZXMgYW5kXG4gICAgIGRhdGV0aW1lIG9iamVjdHMgYXJlICJzYWx0ZWQiIHdpdGggYW4gdW5wcmVkaWN0YWJsZSByYW5kb20gdmFsdWUuXG4gICAgIEFsdGhvdWdoIHRoZXkgcmVtYWluIGNvbnN0YW50IHdpdGhpbiBhbiBpbmRpdmlkdWFsIFB5dGhvblxuICAgICBwcm9jZXNzLCB0aGV5IGFyZSBub3QgcHJlZGljdGFibGUgYmV0d2VlbiByZXBlYXRlZCBpbnZvY2F0aW9ucyBvZlxuICAgICBQeXRob24uVGhpcyBpcyBpbnRlbmRlZCB0byBwcm92aWRlIHByb3RlY3Rpb24gYWdhaW5zdCBhIGRlbmlhbC1cbiAgICAgb2Ytc2VydmljZSBjYXVzZWQgYnkgY2FyZWZ1bGx5LWNob3NlbiBpbnB1dHMgdGhhdCBleHBsb2l0IHRoZVxuICAgICB3b3JzdCBjYXNlIHBlcmZvcm1hbmNlIG9mIGEgZGljdCBpbnNlcnRpb24sIE8obl4yKSBjb21wbGV4aXR5LlxuICAgICBTZWUgaHR0cDovL3d3dy5vY2VydC5vcmcvYWR2aXNvcmllcy9vY2VydC0yMDExLTAwMy5odG1sIGZvclxuICAgICBkZXRhaWxzLkNoYW5naW5nIGhhc2ggdmFsdWVzIGFmZmVjdHMgdGhlIG9yZGVyIGluIHdoaWNoIGtleXMgYXJlXG4gICAgIHJldHJpZXZlZCBmcm9tIGEgZGljdC4gIE5vdGUgUHl0aG9uIGhhcyBuZXZlciBtYWRlIGd1YXJhbnRlZXNcbiAgICAgYWJvdXQgdGhpcyBvcmRlcmluZyAoYW5kIGl0IHR5cGljYWxseSB2YXJpZXMgYmV0d2VlbiAzMi1iaXQgYW5kXG4gICAgIDY0LWJpdCBidWlsZHMpLlNlZSBhbHNvIGBgUFlUSE9OSEFTSFNFRURgYC5cblxuICAgQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMzogSGFzaCByYW5kb21pemF0aW9uIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC5cblxub2JqZWN0Ll9fYm9vbF9fKHNlbGYpXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgdHJ1dGggdmFsdWUgdGVzdGluZyBhbmQgdGhlIGJ1aWx0LWluIG9wZXJhdGlvblxuICAgYGBib29sKClgYDsgc2hvdWxkIHJldHVybiBgYEZhbHNlYGAgb3IgYGBUcnVlYGAuICBXaGVuIHRoaXMgbWV0aG9kXG4gICBpcyBub3QgZGVmaW5lZCwgYGBfX2xlbl9fKClgYCBpcyBjYWxsZWQsIGlmIGl0IGlzIGRlZmluZWQsIGFuZCB0aGVcbiAgIG9iamVjdCBpcyBjb25zaWRlcmVkIHRydWUgaWYgaXRzIHJlc3VsdCBpcyBub256ZXJvLiAgSWYgYSBjbGFzc1xuICAgZGVmaW5lcyBuZWl0aGVyIGBgX19sZW5fXygpYGAgbm9yIGBgX19ib29sX18oKWBgLCBhbGwgaXRzIGluc3RhbmNlc1xuICAgYXJlIGNvbnNpZGVyZWQgdHJ1ZS5cblxuXG5DdXN0b21pemluZyBhdHRyaWJ1dGUgYWNjZXNzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cblRoZSBmb2xsb3dpbmcgbWV0aG9kcyBjYW4gYmUgZGVmaW5lZCB0byBjdXN0b21pemUgdGhlIG1lYW5pbmcgb2ZcbmF0dHJpYnV0ZSBhY2Nlc3MgKHVzZSBvZiwgYXNzaWdubWVudCB0bywgb3IgZGVsZXRpb24gb2YgYGB4Lm5hbWVgYClcbmZvciBjbGFzcyBpbnN0YW5jZXMuXG5cbm9iamVjdC5fX2dldGF0dHJfXyhzZWxmLCBuYW1lKVxuXG4gICBDYWxsZWQgd2hlbiBhbiBhdHRyaWJ1dGUgbG9va3VwIGhhcyBub3QgZm91bmQgdGhlIGF0dHJpYnV0ZSBpbiB0aGVcbiAgIHVzdWFsIHBsYWNlcyAoaS5lLiBpdCBpcyBub3QgYW4gaW5zdGFuY2UgYXR0cmlidXRlIG5vciBpcyBpdCBmb3VuZFxuICAgaW4gdGhlIGNsYXNzIHRyZWUgZm9yIGBgc2VsZmBgKS4gIGBgbmFtZWBgIGlzIHRoZSBhdHRyaWJ1dGUgbmFtZS5cbiAgIFRoaXMgbWV0aG9kIHNob3VsZCByZXR1cm4gdGhlIChjb21wdXRlZCkgYXR0cmlidXRlIHZhbHVlIG9yIHJhaXNlXG4gICBhbiBgYEF0dHJpYnV0ZUVycm9yYGAgZXhjZXB0aW9uLlxuXG4gICBOb3RlIHRoYXQgaWYgdGhlIGF0dHJpYnV0ZSBpcyBmb3VuZCB0aHJvdWdoIHRoZSBub3JtYWwgbWVjaGFuaXNtLFxuICAgYGBfX2dldGF0dHJfXygpYGAgaXMgbm90IGNhbGxlZC4gIChUaGlzIGlzIGFuIGludGVudGlvbmFsIGFzeW1tZXRyeVxuICAgYmV0d2VlbiBgYF9fZ2V0YXR0cl9fKClgYCBhbmQgYGBfX3NldGF0dHJfXygpYGAuKSBUaGlzIGlzIGRvbmUgYm90aFxuICAgZm9yIGVmZmljaWVuY3kgcmVhc29ucyBhbmQgYmVjYXVzZSBvdGhlcndpc2UgYGBfX2dldGF0dHJfXygpYGBcbiAgIHdvdWxkIGhhdmUgbm8gd2F5IHRvIGFjY2VzcyBvdGhlciBhdHRyaWJ1dGVzIG9mIHRoZSBpbnN0YW5jZS4gIE5vdGVcbiAgIHRoYXQgYXQgbGVhc3QgZm9yIGluc3RhbmNlIHZhcmlhYmxlcywgeW91IGNhbiBmYWtlIHRvdGFsIGNvbnRyb2wgYnlcbiAgIG5vdCBpbnNlcnRpbmcgYW55IHZhbHVlcyBpbiB0aGUgaW5zdGFuY2UgYXR0cmlidXRlIGRpY3Rpb25hcnkgKGJ1dFxuICAgaW5zdGVhZCBpbnNlcnRpbmcgdGhlbSBpbiBhbm90aGVyIG9iamVjdCkuICBTZWUgdGhlXG4gICBgYF9fZ2V0YXR0cmlidXRlX18oKWBgIG1ldGhvZCBiZWxvdyBmb3IgYSB3YXkgdG8gYWN0dWFsbHkgZ2V0IHRvdGFsXG4gICBjb250cm9sIG92ZXIgYXR0cmlidXRlIGFjY2Vzcy5cblxub2JqZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwgbmFtZSlcblxuICAgQ2FsbGVkIHVuY29uZGl0aW9uYWxseSB0byBpbXBsZW1lbnQgYXR0cmlidXRlIGFjY2Vzc2VzIGZvclxuICAgaW5zdGFuY2VzIG9mIHRoZSBjbGFzcy4gSWYgdGhlIGNsYXNzIGFsc28gZGVmaW5lc1xuICAgYGBfX2dldGF0dHJfXygpYGAsIHRoZSBsYXR0ZXIgd2lsbCBub3QgYmUgY2FsbGVkIHVubGVzc1xuICAgYGBfX2dldGF0dHJpYnV0ZV9fKClgYCBlaXRoZXIgY2FsbHMgaXQgZXhwbGljaXRseSBvciByYWlzZXMgYW5cbiAgIGBgQXR0cmlidXRlRXJyb3JgYC4gVGhpcyBtZXRob2Qgc2hvdWxkIHJldHVybiB0aGUgKGNvbXB1dGVkKVxuICAgYXR0cmlidXRlIHZhbHVlIG9yIHJhaXNlIGFuIGBgQXR0cmlidXRlRXJyb3JgYCBleGNlcHRpb24uIEluIG9yZGVyXG4gICB0byBhdm9pZCBpbmZpbml0ZSByZWN1cnNpb24gaW4gdGhpcyBtZXRob2QsIGl0cyBpbXBsZW1lbnRhdGlvblxuICAgc2hvdWxkIGFsd2F5cyBjYWxsIHRoZSBiYXNlIGNsYXNzIG1ldGhvZCB3aXRoIHRoZSBzYW1lIG5hbWUgdG9cbiAgIGFjY2VzcyBhbnkgYXR0cmlidXRlcyBpdCBuZWVkcywgZm9yIGV4YW1wbGUsXG4gICBgYG9iamVjdC5fX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpYGAuXG5cbiAgIE5vdGU6IFRoaXMgbWV0aG9kIG1heSBzdGlsbCBiZSBieXBhc3NlZCB3aGVuIGxvb2tpbmcgdXAgc3BlY2lhbCBtZXRob2RzXG4gICAgIGFzIHRoZSByZXN1bHQgb2YgaW1wbGljaXQgaW52b2NhdGlvbiB2aWEgbGFuZ3VhZ2Ugc3ludGF4IG9yXG4gICAgIGJ1aWx0LWluIGZ1bmN0aW9ucy4gU2VlICpTcGVjaWFsIG1ldGhvZCBsb29rdXAqLlxuXG5vYmplY3QuX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpXG5cbiAgIENhbGxlZCB3aGVuIGFuIGF0dHJpYnV0ZSBhc3NpZ25tZW50IGlzIGF0dGVtcHRlZC4gIFRoaXMgaXMgY2FsbGVkXG4gICBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgbWVjaGFuaXNtIChpLmUuIHN0b3JlIHRoZSB2YWx1ZSBpbiB0aGVcbiAgIGluc3RhbmNlIGRpY3Rpb25hcnkpLiAqbmFtZSogaXMgdGhlIGF0dHJpYnV0ZSBuYW1lLCAqdmFsdWUqIGlzIHRoZVxuICAgdmFsdWUgdG8gYmUgYXNzaWduZWQgdG8gaXQuXG5cbiAgIElmIGBgX19zZXRhdHRyX18oKWBgIHdhbnRzIHRvIGFzc2lnbiB0byBhbiBpbnN0YW5jZSBhdHRyaWJ1dGUsIGl0XG4gICBzaG91bGQgY2FsbCB0aGUgYmFzZSBjbGFzcyBtZXRob2Qgd2l0aCB0aGUgc2FtZSBuYW1lLCBmb3IgZXhhbXBsZSxcbiAgIGBgb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKWBgLlxuXG5vYmplY3QuX19kZWxhdHRyX18oc2VsZiwgbmFtZSlcblxuICAgTGlrZSBgYF9fc2V0YXR0cl9fKClgYCBidXQgZm9yIGF0dHJpYnV0ZSBkZWxldGlvbiBpbnN0ZWFkIG9mXG4gICBhc3NpZ25tZW50LiAgVGhpcyBzaG91bGQgb25seSBiZSBpbXBsZW1lbnRlZCBpZiBgYGRlbCBvYmoubmFtZWBgIGlzXG4gICBtZWFuaW5nZnVsIGZvciB0aGUgb2JqZWN0LlxuXG5vYmplY3QuX19kaXJfXyhzZWxmKVxuXG4gICBDYWxsZWQgd2hlbiBgYGRpcigpYGAgaXMgY2FsbGVkIG9uIHRoZSBvYmplY3QuIEEgc2VxdWVuY2UgbXVzdCBiZVxuICAgcmV0dXJuZWQuIGBgZGlyKClgYCBjb252ZXJ0cyB0aGUgcmV0dXJuZWQgc2VxdWVuY2UgdG8gYSBsaXN0IGFuZFxuICAgc29ydHMgaXQuXG5cblxuSW1wbGVtZW50aW5nIERlc2NyaXB0b3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuVGhlIGZvbGxvd2luZyBtZXRob2RzIG9ubHkgYXBwbHkgd2hlbiBhbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3NcbmNvbnRhaW5pbmcgdGhlIG1ldGhvZCAoYSBzby1jYWxsZWQgKmRlc2NyaXB0b3IqIGNsYXNzKSBhcHBlYXJzIGluIGFuXG4qb3duZXIqIGNsYXNzICh0aGUgZGVzY3JpcHRvciBtdXN0IGJlIGluIGVpdGhlciB0aGUgb3duZXJcJ3MgY2xhc3NcbmRpY3Rpb25hcnkgb3IgaW4gdGhlIGNsYXNzIGRpY3Rpb25hcnkgZm9yIG9uZSBvZiBpdHMgcGFyZW50cykuICBJbiB0aGVcbmV4YW1wbGVzIGJlbG93LCAidGhlIGF0dHJpYnV0ZSIgcmVmZXJzIHRvIHRoZSBhdHRyaWJ1dGUgd2hvc2UgbmFtZSBpc1xudGhlIGtleSBvZiB0aGUgcHJvcGVydHkgaW4gdGhlIG93bmVyIGNsYXNzXCcgYGBfX2RpY3RfX2BgLlxuXG5vYmplY3QuX19nZXRfXyhzZWxmLCBpbnN0YW5jZSwgb3duZXIpXG5cbiAgIENhbGxlZCB0byBnZXQgdGhlIGF0dHJpYnV0ZSBvZiB0aGUgb3duZXIgY2xhc3MgKGNsYXNzIGF0dHJpYnV0ZVxuICAgYWNjZXNzKSBvciBvZiBhbiBpbnN0YW5jZSBvZiB0aGF0IGNsYXNzIChpbnN0YW5jZSBhdHRyaWJ1dGVcbiAgIGFjY2VzcykuICpvd25lciogaXMgYWx3YXlzIHRoZSBvd25lciBjbGFzcywgd2hpbGUgKmluc3RhbmNlKiBpcyB0aGVcbiAgIGluc3RhbmNlIHRoYXQgdGhlIGF0dHJpYnV0ZSB3YXMgYWNjZXNzZWQgdGhyb3VnaCwgb3IgYGBOb25lYGAgd2hlblxuICAgdGhlIGF0dHJpYnV0ZSBpcyBhY2Nlc3NlZCB0aHJvdWdoIHRoZSAqb3duZXIqLiAgVGhpcyBtZXRob2Qgc2hvdWxkXG4gICByZXR1cm4gdGhlIChjb21wdXRlZCkgYXR0cmlidXRlIHZhbHVlIG9yIHJhaXNlIGFuXG4gICBgYEF0dHJpYnV0ZUVycm9yYGAgZXhjZXB0aW9uLlxuXG5vYmplY3QuX19zZXRfXyhzZWxmLCBpbnN0YW5jZSwgdmFsdWUpXG5cbiAgIENhbGxlZCB0byBzZXQgdGhlIGF0dHJpYnV0ZSBvbiBhbiBpbnN0YW5jZSAqaW5zdGFuY2UqIG9mIHRoZSBvd25lclxuICAgY2xhc3MgdG8gYSBuZXcgdmFsdWUsICp2YWx1ZSouXG5cbm9iamVjdC5fX2RlbGV0ZV9fKHNlbGYsIGluc3RhbmNlKVxuXG4gICBDYWxsZWQgdG8gZGVsZXRlIHRoZSBhdHRyaWJ1dGUgb24gYW4gaW5zdGFuY2UgKmluc3RhbmNlKiBvZiB0aGVcbiAgIG93bmVyIGNsYXNzLlxuXG5cbkludm9raW5nIERlc2NyaXB0b3JzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5JbiBnZW5lcmFsLCBhIGRlc2NyaXB0b3IgaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSB3aXRoICJiaW5kaW5nXG5iZWhhdmlvciIsIG9uZSB3aG9zZSBhdHRyaWJ1dGUgYWNjZXNzIGhhcyBiZWVuIG92ZXJyaWRkZW4gYnkgbWV0aG9kc1xuaW4gdGhlIGRlc2NyaXB0b3IgcHJvdG9jb2w6ICBgYF9fZ2V0X18oKWBgLCBgYF9fc2V0X18oKWBgLCBhbmRcbmBgX19kZWxldGVfXygpYGAuIElmIGFueSBvZiB0aG9zZSBtZXRob2RzIGFyZSBkZWZpbmVkIGZvciBhbiBvYmplY3QsXG5pdCBpcyBzYWlkIHRvIGJlIGEgZGVzY3JpcHRvci5cblxuVGhlIGRlZmF1bHQgYmVoYXZpb3IgZm9yIGF0dHJpYnV0ZSBhY2Nlc3MgaXMgdG8gZ2V0LCBzZXQsIG9yIGRlbGV0ZVxudGhlIGF0dHJpYnV0ZSBmcm9tIGFuIG9iamVjdFwncyBkaWN0aW9uYXJ5LiBGb3IgaW5zdGFuY2UsIGBgYS54YGAgaGFzIGFcbmxvb2t1cCBjaGFpbiBzdGFydGluZyB3aXRoIGBgYS5fX2RpY3RfX1tcJ3hcJ11gYCwgdGhlblxuYGB0eXBlKGEpLl9fZGljdF9fW1wneFwnXWBgLCBhbmQgY29udGludWluZyB0aHJvdWdoIHRoZSBiYXNlIGNsYXNzZXMgb2ZcbmBgdHlwZShhKWBgIGV4Y2x1ZGluZyBtZXRhY2xhc3Nlcy5cblxuSG93ZXZlciwgaWYgdGhlIGxvb2tlZC11cCB2YWx1ZSBpcyBhbiBvYmplY3QgZGVmaW5pbmcgb25lIG9mIHRoZVxuZGVzY3JpcHRvciBtZXRob2RzLCB0aGVuIFB5dGhvbiBtYXkgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgYmVoYXZpb3IgYW5kXG5pbnZva2UgdGhlIGRlc2NyaXB0b3IgbWV0aG9kIGluc3RlYWQuICBXaGVyZSB0aGlzIG9jY3VycyBpbiB0aGVcbnByZWNlZGVuY2UgY2hhaW4gZGVwZW5kcyBvbiB3aGljaCBkZXNjcmlwdG9yIG1ldGhvZHMgd2VyZSBkZWZpbmVkIGFuZFxuaG93IHRoZXkgd2VyZSBjYWxsZWQuXG5cblRoZSBzdGFydGluZyBwb2ludCBmb3IgZGVzY3JpcHRvciBpbnZvY2F0aW9uIGlzIGEgYmluZGluZywgYGBhLnhgYC5cbkhvdyB0aGUgYXJndW1lbnRzIGFyZSBhc3NlbWJsZWQgZGVwZW5kcyBvbiBgYGFgYDpcblxuRGlyZWN0IENhbGxcbiAgIFRoZSBzaW1wbGVzdCBhbmQgbGVhc3QgY29tbW9uIGNhbGwgaXMgd2hlbiB1c2VyIGNvZGUgZGlyZWN0bHlcbiAgIGludm9rZXMgYSBkZXNjcmlwdG9yIG1ldGhvZDogICAgYGB4Ll9fZ2V0X18oYSlgYC5cblxuSW5zdGFuY2UgQmluZGluZ1xuICAgSWYgYmluZGluZyB0byBhbiBvYmplY3QgaW5zdGFuY2UsIGBgYS54YGAgaXMgdHJhbnNmb3JtZWQgaW50byB0aGVcbiAgIGNhbGw6IGBgdHlwZShhKS5fX2RpY3RfX1tcJ3hcJ10uX19nZXRfXyhhLCB0eXBlKGEpKWBgLlxuXG5DbGFzcyBCaW5kaW5nXG4gICBJZiBiaW5kaW5nIHRvIGEgY2xhc3MsIGBgQS54YGAgaXMgdHJhbnNmb3JtZWQgaW50byB0aGUgY2FsbDpcbiAgIGBgQS5fX2RpY3RfX1tcJ3hcJ10uX19nZXRfXyhOb25lLCBBKWBgLlxuXG5TdXBlciBCaW5kaW5nXG4gICBJZiBgYGFgYCBpcyBhbiBpbnN0YW5jZSBvZiBgYHN1cGVyYGAsIHRoZW4gdGhlIGJpbmRpbmcgYGBzdXBlcihCLFxuICAgb2JqKS5tKClgYCBzZWFyY2hlcyBgYG9iai5fX2NsYXNzX18uX19tcm9fX2BgIGZvciB0aGUgYmFzZSBjbGFzc1xuICAgYGBBYGAgaW1tZWRpYXRlbHkgcHJlY2VkaW5nIGBgQmBgIGFuZCB0aGVuIGludm9rZXMgdGhlIGRlc2NyaXB0b3JcbiAgIHdpdGggdGhlIGNhbGw6IGBgQS5fX2RpY3RfX1tcJ21cJ10uX19nZXRfXyhvYmosIG9iai5fX2NsYXNzX18pYGAuXG5cbkZvciBpbnN0YW5jZSBiaW5kaW5ncywgdGhlIHByZWNlZGVuY2Ugb2YgZGVzY3JpcHRvciBpbnZvY2F0aW9uIGRlcGVuZHNcbm9uIHRoZSB3aGljaCBkZXNjcmlwdG9yIG1ldGhvZHMgYXJlIGRlZmluZWQuICBBIGRlc2NyaXB0b3IgY2FuIGRlZmluZVxuYW55IGNvbWJpbmF0aW9uIG9mIGBgX19nZXRfXygpYGAsIGBgX19zZXRfXygpYGAgYW5kIGBgX19kZWxldGVfXygpYGAuXG5JZiBpdCBkb2VzIG5vdCBkZWZpbmUgYGBfX2dldF9fKClgYCwgdGhlbiBhY2Nlc3NpbmcgdGhlIGF0dHJpYnV0ZSB3aWxsXG5yZXR1cm4gdGhlIGRlc2NyaXB0b3Igb2JqZWN0IGl0c2VsZiB1bmxlc3MgdGhlcmUgaXMgYSB2YWx1ZSBpbiB0aGVcbm9iamVjdFwncyBpbnN0YW5jZSBkaWN0aW9uYXJ5LiAgSWYgdGhlIGRlc2NyaXB0b3IgZGVmaW5lcyBgYF9fc2V0X18oKWBgXG5hbmQvb3IgYGBfX2RlbGV0ZV9fKClgYCwgaXQgaXMgYSBkYXRhIGRlc2NyaXB0b3I7IGlmIGl0IGRlZmluZXNcbm5laXRoZXIsIGl0IGlzIGEgbm9uLWRhdGEgZGVzY3JpcHRvci4gIE5vcm1hbGx5LCBkYXRhIGRlc2NyaXB0b3JzXG5kZWZpbmUgYm90aCBgYF9fZ2V0X18oKWBgIGFuZCBgYF9fc2V0X18oKWBgLCB3aGlsZSBub24tZGF0YVxuZGVzY3JpcHRvcnMgaGF2ZSBqdXN0IHRoZSBgYF9fZ2V0X18oKWBgIG1ldGhvZC4gIERhdGEgZGVzY3JpcHRvcnMgd2l0aFxuYGBfX3NldF9fKClgYCBhbmQgYGBfX2dldF9fKClgYCBkZWZpbmVkIGFsd2F5cyBvdmVycmlkZSBhIHJlZGVmaW5pdGlvblxuaW4gYW4gaW5zdGFuY2UgZGljdGlvbmFyeS4gIEluIGNvbnRyYXN0LCBub24tZGF0YSBkZXNjcmlwdG9ycyBjYW4gYmVcbm92ZXJyaWRkZW4gYnkgaW5zdGFuY2VzLlxuXG5QeXRob24gbWV0aG9kcyAoaW5jbHVkaW5nIGBgc3RhdGljbWV0aG9kKClgYCBhbmQgYGBjbGFzc21ldGhvZCgpYGApXG5hcmUgaW1wbGVtZW50ZWQgYXMgbm9uLWRhdGEgZGVzY3JpcHRvcnMuICBBY2NvcmRpbmdseSwgaW5zdGFuY2VzIGNhblxucmVkZWZpbmUgYW5kIG92ZXJyaWRlIG1ldGhvZHMuICBUaGlzIGFsbG93cyBpbmRpdmlkdWFsIGluc3RhbmNlcyB0b1xuYWNxdWlyZSBiZWhhdmlvcnMgdGhhdCBkaWZmZXIgZnJvbSBvdGhlciBpbnN0YW5jZXMgb2YgdGhlIHNhbWUgY2xhc3MuXG5cblRoZSBgYHByb3BlcnR5KClgYCBmdW5jdGlvbiBpcyBpbXBsZW1lbnRlZCBhcyBhIGRhdGEgZGVzY3JpcHRvci5cbkFjY29yZGluZ2x5LCBpbnN0YW5jZXMgY2Fubm90IG92ZXJyaWRlIHRoZSBiZWhhdmlvciBvZiBhIHByb3BlcnR5LlxuXG5cbl9fc2xvdHNfX1xuLS0tLS0tLS0tXG5cbkJ5IGRlZmF1bHQsIGluc3RhbmNlcyBvZiBjbGFzc2VzIGhhdmUgYSBkaWN0aW9uYXJ5IGZvciBhdHRyaWJ1dGVcbnN0b3JhZ2UuICBUaGlzIHdhc3RlcyBzcGFjZSBmb3Igb2JqZWN0cyBoYXZpbmcgdmVyeSBmZXcgaW5zdGFuY2VcbnZhcmlhYmxlcy4gIFRoZSBzcGFjZSBjb25zdW1wdGlvbiBjYW4gYmVjb21lIGFjdXRlIHdoZW4gY3JlYXRpbmcgbGFyZ2Vcbm51bWJlcnMgb2YgaW5zdGFuY2VzLlxuXG5UaGUgZGVmYXVsdCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBkZWZpbmluZyAqX19zbG90c19fKiBpbiBhIGNsYXNzXG5kZWZpbml0aW9uLiBUaGUgKl9fc2xvdHNfXyogZGVjbGFyYXRpb24gdGFrZXMgYSBzZXF1ZW5jZSBvZiBpbnN0YW5jZVxudmFyaWFibGVzIGFuZCByZXNlcnZlcyBqdXN0IGVub3VnaCBzcGFjZSBpbiBlYWNoIGluc3RhbmNlIHRvIGhvbGQgYVxudmFsdWUgZm9yIGVhY2ggdmFyaWFibGUuICBTcGFjZSBpcyBzYXZlZCBiZWNhdXNlICpfX2RpY3RfXyogaXMgbm90XG5jcmVhdGVkIGZvciBlYWNoIGluc3RhbmNlLlxuXG5vYmplY3QuX19zbG90c19fXG5cbiAgIFRoaXMgY2xhc3MgdmFyaWFibGUgY2FuIGJlIGFzc2lnbmVkIGEgc3RyaW5nLCBpdGVyYWJsZSwgb3Igc2VxdWVuY2VcbiAgIG9mIHN0cmluZ3Mgd2l0aCB2YXJpYWJsZSBuYW1lcyB1c2VkIGJ5IGluc3RhbmNlcy4gIElmIGRlZmluZWQgaW4gYVxuICAgY2xhc3MsICpfX3Nsb3RzX18qIHJlc2VydmVzIHNwYWNlIGZvciB0aGUgZGVjbGFyZWQgdmFyaWFibGVzIGFuZFxuICAgcHJldmVudHMgdGhlIGF1dG9tYXRpYyBjcmVhdGlvbiBvZiAqX19kaWN0X18qIGFuZCAqX193ZWFrcmVmX18qIGZvclxuICAgZWFjaCBpbnN0YW5jZS5cblxuXG5Ob3RlcyBvbiB1c2luZyAqX19zbG90c19fKlxufn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5cblxuKiBXaGVuIGluaGVyaXRpbmcgZnJvbSBhIGNsYXNzIHdpdGhvdXQgKl9fc2xvdHNfXyosIHRoZSAqX19kaWN0X18qXG4gIGF0dHJpYnV0ZSBvZiB0aGF0IGNsYXNzIHdpbGwgYWx3YXlzIGJlIGFjY2Vzc2libGUsIHNvIGEgKl9fc2xvdHNfXypcbiAgZGVmaW5pdGlvbiBpbiB0aGUgc3ViY2xhc3MgaXMgbWVhbmluZ2xlc3MuXG5cbiogV2l0aG91dCBhICpfX2RpY3RfXyogdmFyaWFibGUsIGluc3RhbmNlcyBjYW5ub3QgYmUgYXNzaWduZWQgbmV3XG4gIHZhcmlhYmxlcyBub3QgbGlzdGVkIGluIHRoZSAqX19zbG90c19fKiBkZWZpbml0aW9uLiAgQXR0ZW1wdHMgdG9cbiAgYXNzaWduIHRvIGFuIHVubGlzdGVkIHZhcmlhYmxlIG5hbWUgcmFpc2VzIGBgQXR0cmlidXRlRXJyb3JgYC4gSWZcbiAgZHluYW1pYyBhc3NpZ25tZW50IG9mIG5ldyB2YXJpYWJsZXMgaXMgZGVzaXJlZCwgdGhlbiBhZGRcbiAgYGBcJ19fZGljdF9fXCdgYCB0byB0aGUgc2VxdWVuY2Ugb2Ygc3RyaW5ncyBpbiB0aGUgKl9fc2xvdHNfXypcbiAgZGVjbGFyYXRpb24uXG5cbiogV2l0aG91dCBhICpfX3dlYWtyZWZfXyogdmFyaWFibGUgZm9yIGVhY2ggaW5zdGFuY2UsIGNsYXNzZXMgZGVmaW5pbmdcbiAgKl9fc2xvdHNfXyogZG8gbm90IHN1cHBvcnQgd2VhayByZWZlcmVuY2VzIHRvIGl0cyBpbnN0YW5jZXMuIElmIHdlYWtcbiAgcmVmZXJlbmNlIHN1cHBvcnQgaXMgbmVlZGVkLCB0aGVuIGFkZCBgYFwnX193ZWFrcmVmX19cJ2BgIHRvIHRoZVxuICBzZXF1ZW5jZSBvZiBzdHJpbmdzIGluIHRoZSAqX19zbG90c19fKiBkZWNsYXJhdGlvbi5cblxuKiAqX19zbG90c19fKiBhcmUgaW1wbGVtZW50ZWQgYXQgdGhlIGNsYXNzIGxldmVsIGJ5IGNyZWF0aW5nXG4gIGRlc2NyaXB0b3JzICgqSW1wbGVtZW50aW5nIERlc2NyaXB0b3JzKikgZm9yIGVhY2ggdmFyaWFibGUgbmFtZS4gIEFzXG4gIGEgcmVzdWx0LCBjbGFzcyBhdHRyaWJ1dGVzIGNhbm5vdCBiZSB1c2VkIHRvIHNldCBkZWZhdWx0IHZhbHVlcyBmb3JcbiAgaW5zdGFuY2UgdmFyaWFibGVzIGRlZmluZWQgYnkgKl9fc2xvdHNfXyo7IG90aGVyd2lzZSwgdGhlIGNsYXNzXG4gIGF0dHJpYnV0ZSB3b3VsZCBvdmVyd3JpdGUgdGhlIGRlc2NyaXB0b3IgYXNzaWdubWVudC5cblxuKiBUaGUgYWN0aW9uIG9mIGEgKl9fc2xvdHNfXyogZGVjbGFyYXRpb24gaXMgbGltaXRlZCB0byB0aGUgY2xhc3NcbiAgd2hlcmUgaXQgaXMgZGVmaW5lZC4gIEFzIGEgcmVzdWx0LCBzdWJjbGFzc2VzIHdpbGwgaGF2ZSBhICpfX2RpY3RfXypcbiAgdW5sZXNzIHRoZXkgYWxzbyBkZWZpbmUgKl9fc2xvdHNfXyogKHdoaWNoIG11c3Qgb25seSBjb250YWluIG5hbWVzXG4gIG9mIGFueSAqYWRkaXRpb25hbCogc2xvdHMpLlxuXG4qIElmIGEgY2xhc3MgZGVmaW5lcyBhIHNsb3QgYWxzbyBkZWZpbmVkIGluIGEgYmFzZSBjbGFzcywgdGhlIGluc3RhbmNlXG4gIHZhcmlhYmxlIGRlZmluZWQgYnkgdGhlIGJhc2UgY2xhc3Mgc2xvdCBpcyBpbmFjY2Vzc2libGUgKGV4Y2VwdCBieVxuICByZXRyaWV2aW5nIGl0cyBkZXNjcmlwdG9yIGRpcmVjdGx5IGZyb20gdGhlIGJhc2UgY2xhc3MpLiBUaGlzXG4gIHJlbmRlcnMgdGhlIG1lYW5pbmcgb2YgdGhlIHByb2dyYW0gdW5kZWZpbmVkLiAgSW4gdGhlIGZ1dHVyZSwgYVxuICBjaGVjayBtYXkgYmUgYWRkZWQgdG8gcHJldmVudCB0aGlzLlxuXG4qIE5vbmVtcHR5ICpfX3Nsb3RzX18qIGRvZXMgbm90IHdvcmsgZm9yIGNsYXNzZXMgZGVyaXZlZCBmcm9tXG4gICJ2YXJpYWJsZS1sZW5ndGgiIGJ1aWx0LWluIHR5cGVzIHN1Y2ggYXMgYGBpbnRgYCwgYGBzdHJgYCBhbmRcbiAgYGB0dXBsZWBgLlxuXG4qIEFueSBub24tc3RyaW5nIGl0ZXJhYmxlIG1heSBiZSBhc3NpZ25lZCB0byAqX19zbG90c19fKi4gTWFwcGluZ3MgbWF5XG4gIGFsc28gYmUgdXNlZDsgaG93ZXZlciwgaW4gdGhlIGZ1dHVyZSwgc3BlY2lhbCBtZWFuaW5nIG1heSBiZVxuICBhc3NpZ25lZCB0byB0aGUgdmFsdWVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBrZXkuXG5cbiogKl9fY2xhc3NfXyogYXNzaWdubWVudCB3b3JrcyBvbmx5IGlmIGJvdGggY2xhc3NlcyBoYXZlIHRoZSBzYW1lXG4gICpfX3Nsb3RzX18qLlxuXG5cbkN1c3RvbWl6aW5nIGNsYXNzIGNyZWF0aW9uXG49PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5CeSBkZWZhdWx0LCBjbGFzc2VzIGFyZSBjb25zdHJ1Y3RlZCB1c2luZyBgYHR5cGUoKWBgLiBUaGUgY2xhc3MgYm9keVxuaXMgZXhlY3V0ZWQgaW4gYSBuZXcgbmFtZXNwYWNlIGFuZCB0aGUgY2xhc3MgbmFtZSBpcyBib3VuZCBsb2NhbGx5IHRvXG50aGUgcmVzdWx0IG9mIGBgdHlwZShuYW1lLCBiYXNlcywgbmFtZXNwYWNlKWBgLlxuXG5UaGUgY2xhc3MgY3JlYXRpb24gcHJvY2VzcyBjYW4gYmUgY3VzdG9taXNlZCBieSBwYXNzaW5nIHRoZVxuYGBtZXRhY2xhc3NgYCBrZXl3b3JkIGFyZ3VtZW50IGluIHRoZSBjbGFzcyBkZWZpbml0aW9uIGxpbmUsIG9yIGJ5XG5pbmhlcml0aW5nIGZyb20gYW4gZXhpc3RpbmcgY2xhc3MgdGhhdCBpbmNsdWRlZCBzdWNoIGFuIGFyZ3VtZW50LiBJblxudGhlIGZvbGxvd2luZyBleGFtcGxlLCBib3RoIGBgTXlDbGFzc2BgIGFuZCBgYE15U3ViY2xhc3NgYCBhcmVcbmluc3RhbmNlcyBvZiBgYE1ldGFgYDpcblxuICAgY2xhc3MgTWV0YSh0eXBlKTpcbiAgICAgICBwYXNzXG5cbiAgIGNsYXNzIE15Q2xhc3MobWV0YWNsYXNzPU1ldGEpOlxuICAgICAgIHBhc3NcblxuICAgY2xhc3MgTXlTdWJjbGFzcyhNeUNsYXNzKTpcbiAgICAgICBwYXNzXG5cbkFueSBvdGhlciBrZXl3b3JkIGFyZ3VtZW50cyB0aGF0IGFyZSBzcGVjaWZpZWQgaW4gdGhlIGNsYXNzIGRlZmluaXRpb25cbmFyZSBwYXNzZWQgdGhyb3VnaCB0byBhbGwgbWV0YWNsYXNzIG9wZXJhdGlvbnMgZGVzY3JpYmVkIGJlbG93LlxuXG5XaGVuIGEgY2xhc3MgZGVmaW5pdGlvbiBpcyBleGVjdXRlZCwgdGhlIGZvbGxvd2luZyBzdGVwcyBvY2N1cjpcblxuKiB0aGUgYXBwcm9wcmlhdGUgbWV0YWNsYXNzIGlzIGRldGVybWluZWRcblxuKiB0aGUgY2xhc3MgbmFtZXNwYWNlIGlzIHByZXBhcmVkXG5cbiogdGhlIGNsYXNzIGJvZHkgaXMgZXhlY3V0ZWRcblxuKiB0aGUgY2xhc3Mgb2JqZWN0IGlzIGNyZWF0ZWRcblxuXG5EZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgbWV0YWNsYXNzXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRoZSBhcHByb3ByaWF0ZSBtZXRhY2xhc3MgZm9yIGEgY2xhc3MgZGVmaW5pdGlvbiBpcyBkZXRlcm1pbmVkIGFzXG5mb2xsb3dzOlxuXG4qIGlmIG5vIGJhc2VzIGFuZCBubyBleHBsaWNpdCBtZXRhY2xhc3MgYXJlIGdpdmVuLCB0aGVuIGBgdHlwZSgpYGAgaXNcbiAgdXNlZFxuXG4qIGlmIGFuIGV4cGxpY2l0IG1ldGFjbGFzcyBpcyBnaXZlbiBhbmQgaXQgaXMgKm5vdCogYW4gaW5zdGFuY2Ugb2ZcbiAgYGB0eXBlKClgYCwgdGhlbiBpdCBpcyB1c2VkIGRpcmVjdGx5IGFzIHRoZSBtZXRhY2xhc3NcblxuKiBpZiBhbiBpbnN0YW5jZSBvZiBgYHR5cGUoKWBgIGlzIGdpdmVuIGFzIHRoZSBleHBsaWNpdCBtZXRhY2xhc3MsIG9yXG4gIGJhc2VzIGFyZSBkZWZpbmVkLCB0aGVuIHRoZSBtb3N0IGRlcml2ZWQgbWV0YWNsYXNzIGlzIHVzZWRcblxuVGhlIG1vc3QgZGVyaXZlZCBtZXRhY2xhc3MgaXMgc2VsZWN0ZWQgZnJvbSB0aGUgZXhwbGljaXRseSBzcGVjaWZpZWRcbm1ldGFjbGFzcyAoaWYgYW55KSBhbmQgdGhlIG1ldGFjbGFzc2VzIChpLmUuIGBgdHlwZShjbHMpYGApIG9mIGFsbFxuc3BlY2lmaWVkIGJhc2UgY2xhc3Nlcy4gVGhlIG1vc3QgZGVyaXZlZCBtZXRhY2xhc3MgaXMgb25lIHdoaWNoIGlzIGFcbnN1YnR5cGUgb2YgKmFsbCogb2YgdGhlc2UgY2FuZGlkYXRlIG1ldGFjbGFzc2VzLiBJZiBub25lIG9mIHRoZVxuY2FuZGlkYXRlIG1ldGFjbGFzc2VzIG1lZXRzIHRoYXQgY3JpdGVyaW9uLCB0aGVuIHRoZSBjbGFzcyBkZWZpbml0aW9uXG53aWxsIGZhaWwgd2l0aCBgYFR5cGVFcnJvcmBgLlxuXG5cblByZXBhcmluZyB0aGUgY2xhc3MgbmFtZXNwYWNlXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5PbmNlIHRoZSBhcHByb3ByaWF0ZSBtZXRhY2xhc3MgaGFzIGJlZW4gaWRlbnRpZmllZCwgdGhlbiB0aGUgY2xhc3Ncbm5hbWVzcGFjZSBpcyBwcmVwYXJlZC4gSWYgdGhlIG1ldGFjbGFzcyBoYXMgYSBgYF9fcHJlcGFyZV9fYGBcbmF0dHJpYnV0ZSwgaXQgaXMgY2FsbGVkIGFzIGBgbmFtZXNwYWNlID0gbWV0YWNsYXNzLl9fcHJlcGFyZV9fKG5hbWUsXG5iYXNlcywgKiprd2RzKWBgICh3aGVyZSB0aGUgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cywgaWYgYW55LCBjb21lXG5mcm9tIHRoZSBjbGFzcyBkZWZpbml0aW9uKS5cblxuSWYgdGhlIG1ldGFjbGFzcyBoYXMgbm8gYGBfX3ByZXBhcmVfX2BgIGF0dHJpYnV0ZSwgdGhlbiB0aGUgY2xhc3Ncbm5hbWVzcGFjZSBpcyBpbml0aWFsaXNlZCBhcyBhbiBlbXB0eSBgYGRpY3QoKWBgIGluc3RhbmNlLlxuXG5TZWUgYWxzbzpcblxuICAgKipQRVAgMzExNSoqIC0gTWV0YWNsYXNzZXMgaW4gUHl0aG9uIDMwMDBcbiAgICAgIEludHJvZHVjZWQgdGhlIGBgX19wcmVwYXJlX19gYCBuYW1lc3BhY2UgaG9va1xuXG5cbkV4ZWN1dGluZyB0aGUgY2xhc3MgYm9keVxuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRoZSBjbGFzcyBib2R5IGlzIGV4ZWN1dGVkIChhcHByb3hpbWF0ZWx5KSBhcyBgYGV4ZWMoYm9keSwgZ2xvYmFscygpLFxubmFtZXNwYWNlKWBgLiBUaGUga2V5IGRpZmZlcmVuY2UgZnJvbSBhIG5vcm1hbCBjYWxsIHRvIGBgZXhlYygpYGAgaXNcbnRoYXQgbGV4aWNhbCBzY29waW5nIGFsbG93cyB0aGUgY2xhc3MgYm9keSAoaW5jbHVkaW5nIGFueSBtZXRob2RzKSB0b1xucmVmZXJlbmNlIG5hbWVzIGZyb20gdGhlIGN1cnJlbnQgYW5kIG91dGVyIHNjb3BlcyB3aGVuIHRoZSBjbGFzc1xuZGVmaW5pdGlvbiBvY2N1cnMgaW5zaWRlIGEgZnVuY3Rpb24uXG5cbkhvd2V2ZXIsIGV2ZW4gd2hlbiB0aGUgY2xhc3MgZGVmaW5pdGlvbiBvY2N1cnMgaW5zaWRlIHRoZSBmdW5jdGlvbixcbm1ldGhvZHMgZGVmaW5lZCBpbnNpZGUgdGhlIGNsYXNzIHN0aWxsIGNhbm5vdCBzZWUgbmFtZXMgZGVmaW5lZCBhdCB0aGVcbmNsYXNzIHNjb3BlLiBDbGFzcyB2YXJpYWJsZXMgbXVzdCBiZSBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBmaXJzdFxucGFyYW1ldGVyIG9mIGluc3RhbmNlIG9yIGNsYXNzIG1ldGhvZHMsIGFuZCBjYW5ub3QgYmUgYWNjZXNzZWQgYXQgYWxsXG5mcm9tIHN0YXRpYyBtZXRob2RzLlxuXG5cbkNyZWF0aW5nIHRoZSBjbGFzcyBvYmplY3Rcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuT25jZSB0aGUgY2xhc3MgbmFtZXNwYWNlIGhhcyBiZWVuIHBvcHVsYXRlZCBieSBleGVjdXRpbmcgdGhlIGNsYXNzXG5ib2R5LCB0aGUgY2xhc3Mgb2JqZWN0IGlzIGNyZWF0ZWQgYnkgY2FsbGluZyBgYG1ldGFjbGFzcyhuYW1lLCBiYXNlcyxcbm5hbWVzcGFjZSwgKiprd2RzKWBgICh0aGUgYWRkaXRpb25hbCBrZXl3b3JkcyBwYXNzZWQgaGVyZSBhcmUgdGhlIHNhbWVcbmFzIHRob3NlIHBhc3NlZCB0byBgYF9fcHJlcGFyZV9fYGApLlxuXG5UaGlzIGNsYXNzIG9iamVjdCBpcyB0aGUgb25lIHRoYXQgd2lsbCBiZSByZWZlcmVuY2VkIGJ5IHRoZSB6ZXJvLVxuYXJndW1lbnQgZm9ybSBvZiBgYHN1cGVyKClgYC4gYGBfX2NsYXNzX19gYCBpcyBhbiBpbXBsaWNpdCBjbG9zdXJlXG5yZWZlcmVuY2UgY3JlYXRlZCBieSB0aGUgY29tcGlsZXIgaWYgYW55IG1ldGhvZHMgaW4gYSBjbGFzcyBib2R5IHJlZmVyXG50byBlaXRoZXIgYGBfX2NsYXNzX19gYCBvciBgYHN1cGVyYGAuIFRoaXMgYWxsb3dzIHRoZSB6ZXJvIGFyZ3VtZW50XG5mb3JtIG9mIGBgc3VwZXIoKWBgIHRvIGNvcnJlY3RseSBpZGVudGlmeSB0aGUgY2xhc3MgYmVpbmcgZGVmaW5lZFxuYmFzZWQgb24gbGV4aWNhbCBzY29waW5nLCB3aGlsZSB0aGUgY2xhc3Mgb3IgaW5zdGFuY2UgdGhhdCB3YXMgdXNlZCB0b1xubWFrZSB0aGUgY3VycmVudCBjYWxsIGlzIGlkZW50aWZpZWQgYmFzZWQgb24gdGhlIGZpcnN0IGFyZ3VtZW50IHBhc3NlZFxudG8gdGhlIG1ldGhvZC5cblxuQWZ0ZXIgdGhlIGNsYXNzIG9iamVjdCBpcyBjcmVhdGVkLCBpdCBpcyBwYXNzZWQgdG8gdGhlIGNsYXNzXG5kZWNvcmF0b3JzIGluY2x1ZGVkIGluIHRoZSBjbGFzcyBkZWZpbml0aW9uIChpZiBhbnkpIGFuZCB0aGUgcmVzdWx0aW5nXG5vYmplY3QgaXMgYm91bmQgaW4gdGhlIGxvY2FsIG5hbWVzcGFjZSBhcyB0aGUgZGVmaW5lZCBjbGFzcy5cblxuU2VlIGFsc286XG5cbiAgICoqUEVQIDMxMzUqKiAtIE5ldyBzdXBlclxuICAgICAgRGVzY3JpYmVzIHRoZSBpbXBsaWNpdCBgYF9fY2xhc3NfX2BgIGNsb3N1cmUgcmVmZXJlbmNlXG5cblxuTWV0YWNsYXNzIGV4YW1wbGVcbi0tLS0tLS0tLS0tLS0tLS0tXG5cblRoZSBwb3RlbnRpYWwgdXNlcyBmb3IgbWV0YWNsYXNzZXMgYXJlIGJvdW5kbGVzcy4gU29tZSBpZGVhcyB0aGF0IGhhdmVcbmJlZW4gZXhwbG9yZWQgaW5jbHVkZSBsb2dnaW5nLCBpbnRlcmZhY2UgY2hlY2tpbmcsIGF1dG9tYXRpY1xuZGVsZWdhdGlvbiwgYXV0b21hdGljIHByb3BlcnR5IGNyZWF0aW9uLCBwcm94aWVzLCBmcmFtZXdvcmtzLCBhbmRcbmF1dG9tYXRpYyByZXNvdXJjZSBsb2NraW5nL3N5bmNocm9uaXphdGlvbi5cblxuSGVyZSBpcyBhbiBleGFtcGxlIG9mIGEgbWV0YWNsYXNzIHRoYXQgdXNlcyBhblxuYGBjb2xsZWN0aW9ucy5PcmRlcmVkRGljdGBgIHRvIHJlbWVtYmVyIHRoZSBvcmRlciB0aGF0IGNsYXNzIG1lbWJlcnNcbndlcmUgZGVmaW5lZDpcblxuICAgY2xhc3MgT3JkZXJlZENsYXNzKHR5cGUpOlxuXG4gICAgICAgIEBjbGFzc21ldGhvZFxuICAgICAgICBkZWYgX19wcmVwYXJlX18obWV0YWNscywgbmFtZSwgYmFzZXMsICoqa3dkcyk6XG4gICAgICAgICAgIHJldHVybiBjb2xsZWN0aW9ucy5PcmRlcmVkRGljdCgpXG5cbiAgICAgICAgZGVmIF9fbmV3X18oY2xzLCBuYW1lLCBiYXNlcywgbmFtZXNwYWNlLCAqKmt3ZHMpOlxuICAgICAgICAgICByZXN1bHQgPSB0eXBlLl9fbmV3X18oY2xzLCBuYW1lLCBiYXNlcywgZGljdChuYW1lc3BhY2UpKVxuICAgICAgICAgICByZXN1bHQubWVtYmVycyA9IHR1cGxlKG5hbWVzcGFjZSlcbiAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuXG4gICBjbGFzcyBBKG1ldGFjbGFzcz1PcmRlcmVkQ2xhc3MpOlxuICAgICAgIGRlZiBvbmUoc2VsZik6IHBhc3NcbiAgICAgICBkZWYgdHdvKHNlbGYpOiBwYXNzXG4gICAgICAgZGVmIHRocmVlKHNlbGYpOiBwYXNzXG4gICAgICAgZGVmIGZvdXIoc2VsZik6IHBhc3NcblxuICAgPj4+IEEubWVtYmVyc1xuICAgKFwnX19tb2R1bGVfX1wnLCBcJ29uZVwnLCBcJ3R3b1wnLCBcJ3RocmVlXCcsIFwnZm91clwnKVxuXG5XaGVuIHRoZSBjbGFzcyBkZWZpbml0aW9uIGZvciAqQSogZ2V0cyBleGVjdXRlZCwgdGhlIHByb2Nlc3MgYmVnaW5zXG53aXRoIGNhbGxpbmcgdGhlIG1ldGFjbGFzc1wncyBgYF9fcHJlcGFyZV9fKClgYCBtZXRob2Qgd2hpY2ggcmV0dXJucyBhblxuZW1wdHkgYGBjb2xsZWN0aW9ucy5PcmRlcmVkRGljdGBgLiAgVGhhdCBtYXBwaW5nIHJlY29yZHMgdGhlIG1ldGhvZHNcbmFuZCBhdHRyaWJ1dGVzIG9mICpBKiBhcyB0aGV5IGFyZSBkZWZpbmVkIHdpdGhpbiB0aGUgYm9keSBvZiB0aGUgY2xhc3NcbnN0YXRlbWVudC4gT25jZSB0aG9zZSBkZWZpbml0aW9ucyBhcmUgZXhlY3V0ZWQsIHRoZSBvcmRlcmVkIGRpY3Rpb25hcnlcbmlzIGZ1bGx5IHBvcHVsYXRlZCBhbmQgdGhlIG1ldGFjbGFzc1wncyBgYF9fbmV3X18oKWBgIG1ldGhvZCBnZXRzXG5pbnZva2VkLiAgVGhhdCBtZXRob2QgYnVpbGRzIHRoZSBuZXcgdHlwZSBhbmQgaXQgc2F2ZXMgdGhlIG9yZGVyZWRcbmRpY3Rpb25hcnkga2V5cyBpbiBhbiBhdHRyaWJ1dGUgY2FsbGVkIGBgbWVtYmVyc2BgLlxuXG5cbkN1c3RvbWl6aW5nIGluc3RhbmNlIGFuZCBzdWJjbGFzcyBjaGVja3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIHRoZVxuYGBpc2luc3RhbmNlKClgYCBhbmQgYGBpc3N1YmNsYXNzKClgYCBidWlsdC1pbiBmdW5jdGlvbnMuXG5cbkluIHBhcnRpY3VsYXIsIHRoZSBtZXRhY2xhc3MgYGBhYmMuQUJDTWV0YWBgIGltcGxlbWVudHMgdGhlc2UgbWV0aG9kc1xuaW4gb3JkZXIgdG8gYWxsb3cgdGhlIGFkZGl0aW9uIG9mIEFic3RyYWN0IEJhc2UgQ2xhc3NlcyAoQUJDcykgYXNcbiJ2aXJ0dWFsIGJhc2UgY2xhc3NlcyIgdG8gYW55IGNsYXNzIG9yIHR5cGUgKGluY2x1ZGluZyBidWlsdC1pblxudHlwZXMpLCBpbmNsdWRpbmcgb3RoZXIgQUJDcy5cblxuY2xhc3MuX19pbnN0YW5jZWNoZWNrX18oc2VsZiwgaW5zdGFuY2UpXG5cbiAgIFJldHVybiB0cnVlIGlmICppbnN0YW5jZSogc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSAoZGlyZWN0IG9yXG4gICBpbmRpcmVjdCkgaW5zdGFuY2Ugb2YgKmNsYXNzKi4gSWYgZGVmaW5lZCwgY2FsbGVkIHRvIGltcGxlbWVudFxuICAgYGBpc2luc3RhbmNlKGluc3RhbmNlLCBjbGFzcylgYC5cblxuY2xhc3MuX19zdWJjbGFzc2NoZWNrX18oc2VsZiwgc3ViY2xhc3MpXG5cbiAgIFJldHVybiB0cnVlIGlmICpzdWJjbGFzcyogc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSAoZGlyZWN0IG9yXG4gICBpbmRpcmVjdCkgc3ViY2xhc3Mgb2YgKmNsYXNzKi4gIElmIGRlZmluZWQsIGNhbGxlZCB0byBpbXBsZW1lbnRcbiAgIGBgaXNzdWJjbGFzcyhzdWJjbGFzcywgY2xhc3MpYGAuXG5cbk5vdGUgdGhhdCB0aGVzZSBtZXRob2RzIGFyZSBsb29rZWQgdXAgb24gdGhlIHR5cGUgKG1ldGFjbGFzcykgb2YgYVxuY2xhc3MuICBUaGV5IGNhbm5vdCBiZSBkZWZpbmVkIGFzIGNsYXNzIG1ldGhvZHMgaW4gdGhlIGFjdHVhbCBjbGFzcy5cblRoaXMgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBsb29rdXAgb2Ygc3BlY2lhbCBtZXRob2RzIHRoYXQgYXJlIGNhbGxlZFxub24gaW5zdGFuY2VzLCBvbmx5IGluIHRoaXMgY2FzZSB0aGUgaW5zdGFuY2UgaXMgaXRzZWxmIGEgY2xhc3MuXG5cblNlZSBhbHNvOlxuXG4gICAqKlBFUCAzMTE5KiogLSBJbnRyb2R1Y2luZyBBYnN0cmFjdCBCYXNlIENsYXNzZXNcbiAgICAgIEluY2x1ZGVzIHRoZSBzcGVjaWZpY2F0aW9uIGZvciBjdXN0b21pemluZyBgYGlzaW5zdGFuY2UoKWBgIGFuZFxuICAgICAgYGBpc3N1YmNsYXNzKClgYCBiZWhhdmlvciB0aHJvdWdoIGBgX19pbnN0YW5jZWNoZWNrX18oKWBgIGFuZFxuICAgICAgYGBfX3N1YmNsYXNzY2hlY2tfXygpYGAsIHdpdGggbW90aXZhdGlvbiBmb3IgdGhpcyBmdW5jdGlvbmFsaXR5XG4gICAgICBpbiB0aGUgY29udGV4dCBvZiBhZGRpbmcgQWJzdHJhY3QgQmFzZSBDbGFzc2VzIChzZWUgdGhlIGBgYWJjYGBcbiAgICAgIG1vZHVsZSkgdG8gdGhlIGxhbmd1YWdlLlxuXG5cbkVtdWxhdGluZyBjYWxsYWJsZSBvYmplY3RzXG49PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5vYmplY3QuX19jYWxsX18oc2VsZlssIGFyZ3MuLi5dKVxuXG4gICBDYWxsZWQgd2hlbiB0aGUgaW5zdGFuY2UgaXMgImNhbGxlZCIgYXMgYSBmdW5jdGlvbjsgaWYgdGhpcyBtZXRob2RcbiAgIGlzIGRlZmluZWQsIGBgeChhcmcxLCBhcmcyLCAuLi4pYGAgaXMgYSBzaG9ydGhhbmQgZm9yXG4gICBgYHguX19jYWxsX18oYXJnMSwgYXJnMiwgLi4uKWBgLlxuXG5cbkVtdWxhdGluZyBjb250YWluZXIgdHlwZXNcbj09PT09PT09PT09PT09PT09PT09PT09PT1cblxuVGhlIGZvbGxvd2luZyBtZXRob2RzIGNhbiBiZSBkZWZpbmVkIHRvIGltcGxlbWVudCBjb250YWluZXIgb2JqZWN0cy5cbkNvbnRhaW5lcnMgdXN1YWxseSBhcmUgc2VxdWVuY2VzIChzdWNoIGFzIGxpc3RzIG9yIHR1cGxlcykgb3IgbWFwcGluZ3NcbihsaWtlIGRpY3Rpb25hcmllcyksIGJ1dCBjYW4gcmVwcmVzZW50IG90aGVyIGNvbnRhaW5lcnMgYXMgd2VsbC4gIFRoZVxuZmlyc3Qgc2V0IG9mIG1ldGhvZHMgaXMgdXNlZCBlaXRoZXIgdG8gZW11bGF0ZSBhIHNlcXVlbmNlIG9yIHRvXG5lbXVsYXRlIGEgbWFwcGluZzsgdGhlIGRpZmZlcmVuY2UgaXMgdGhhdCBmb3IgYSBzZXF1ZW5jZSwgdGhlXG5hbGxvd2FibGUga2V5cyBzaG91bGQgYmUgdGhlIGludGVnZXJzICprKiBmb3Igd2hpY2ggYGAwIDw9IGsgPCBOYGBcbndoZXJlICpOKiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBzZXF1ZW5jZSwgb3Igc2xpY2Ugb2JqZWN0cywgd2hpY2hcbmRlZmluZSBhIHJhbmdlIG9mIGl0ZW1zLiAgSXQgaXMgYWxzbyByZWNvbW1lbmRlZCB0aGF0IG1hcHBpbmdzIHByb3ZpZGVcbnRoZSBtZXRob2RzIGBga2V5cygpYGAsIGBgdmFsdWVzKClgYCwgYGBpdGVtcygpYGAsIGBgZ2V0KClgYCxcbmBgY2xlYXIoKWBgLCBgYHNldGRlZmF1bHQoKWBgLCBgYHBvcCgpYGAsIGBgcG9waXRlbSgpYGAsIGBgY29weSgpYGAsXG5hbmQgYGB1cGRhdGUoKWBgIGJlaGF2aW5nIHNpbWlsYXIgdG8gdGhvc2UgZm9yIFB5dGhvblwncyBzdGFuZGFyZFxuZGljdGlvbmFyeSBvYmplY3RzLiAgVGhlIGBgY29sbGVjdGlvbnNgYCBtb2R1bGUgcHJvdmlkZXMgYVxuYGBNdXRhYmxlTWFwcGluZ2BgIGFic3RyYWN0IGJhc2UgY2xhc3MgdG8gaGVscCBjcmVhdGUgdGhvc2UgbWV0aG9kc1xuZnJvbSBhIGJhc2Ugc2V0IG9mIGBgX19nZXRpdGVtX18oKWBgLCBgYF9fc2V0aXRlbV9fKClgYCxcbmBgX19kZWxpdGVtX18oKWBgLCBhbmQgYGBrZXlzKClgYC4gTXV0YWJsZSBzZXF1ZW5jZXMgc2hvdWxkIHByb3ZpZGVcbm1ldGhvZHMgYGBhcHBlbmQoKWBgLCBgYGNvdW50KClgYCwgYGBpbmRleCgpYGAsIGBgZXh0ZW5kKClgYCxcbmBgaW5zZXJ0KClgYCwgYGBwb3AoKWBgLCBgYHJlbW92ZSgpYGAsIGBgcmV2ZXJzZSgpYGAgYW5kIGBgc29ydCgpYGAsXG5saWtlIFB5dGhvbiBzdGFuZGFyZCBsaXN0IG9iamVjdHMuICBGaW5hbGx5LCBzZXF1ZW5jZSB0eXBlcyBzaG91bGRcbmltcGxlbWVudCBhZGRpdGlvbiAobWVhbmluZyBjb25jYXRlbmF0aW9uKSBhbmQgbXVsdGlwbGljYXRpb24gKG1lYW5pbmdcbnJlcGV0aXRpb24pIGJ5IGRlZmluaW5nIHRoZSBtZXRob2RzIGBgX19hZGRfXygpYGAsIGBgX19yYWRkX18oKWBgLFxuYGBfX2lhZGRfXygpYGAsIGBgX19tdWxfXygpYGAsIGBgX19ybXVsX18oKWBgIGFuZCBgYF9faW11bF9fKClgYFxuZGVzY3JpYmVkIGJlbG93OyB0aGV5IHNob3VsZCBub3QgZGVmaW5lIG90aGVyIG51bWVyaWNhbCBvcGVyYXRvcnMuICBJdFxuaXMgcmVjb21tZW5kZWQgdGhhdCBib3RoIG1hcHBpbmdzIGFuZCBzZXF1ZW5jZXMgaW1wbGVtZW50IHRoZVxuYGBfX2NvbnRhaW5zX18oKWBgIG1ldGhvZCB0byBhbGxvdyBlZmZpY2llbnQgdXNlIG9mIHRoZSBgYGluYGBcbm9wZXJhdG9yOyBmb3IgbWFwcGluZ3MsIGBgaW5gYCBzaG91bGQgc2VhcmNoIHRoZSBtYXBwaW5nXCdzIGtleXM7IGZvclxuc2VxdWVuY2VzLCBpdCBzaG91bGQgc2VhcmNoIHRocm91Z2ggdGhlIHZhbHVlcy4gIEl0IGlzIGZ1cnRoZXJcbnJlY29tbWVuZGVkIHRoYXQgYm90aCBtYXBwaW5ncyBhbmQgc2VxdWVuY2VzIGltcGxlbWVudCB0aGVcbmBgX19pdGVyX18oKWBgIG1ldGhvZCB0byBhbGxvdyBlZmZpY2llbnQgaXRlcmF0aW9uIHRocm91Z2ggdGhlXG5jb250YWluZXI7IGZvciBtYXBwaW5ncywgYGBfX2l0ZXJfXygpYGAgc2hvdWxkIGJlIHRoZSBzYW1lIGFzXG5gYGtleXMoKWBgOyBmb3Igc2VxdWVuY2VzLCBpdCBzaG91bGQgaXRlcmF0ZSB0aHJvdWdoIHRoZSB2YWx1ZXMuXG5cbm9iamVjdC5fX2xlbl9fKHNlbGYpXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgdGhlIGJ1aWx0LWluIGZ1bmN0aW9uIGBgbGVuKClgYC4gIFNob3VsZCByZXR1cm5cbiAgIHRoZSBsZW5ndGggb2YgdGhlIG9iamVjdCwgYW4gaW50ZWdlciBgYD49YGAgMC4gIEFsc28sIGFuIG9iamVjdFxuICAgdGhhdCBkb2VzblwndCBkZWZpbmUgYSBgYF9fYm9vbF9fKClgYCBtZXRob2QgYW5kIHdob3NlIGBgX19sZW5fXygpYGBcbiAgIG1ldGhvZCByZXR1cm5zIHplcm8gaXMgY29uc2lkZXJlZCB0byBiZSBmYWxzZSBpbiBhIEJvb2xlYW4gY29udGV4dC5cblxuTm90ZTogU2xpY2luZyBpcyBkb25lIGV4Y2x1c2l2ZWx5IHdpdGggdGhlIGZvbGxvd2luZyB0aHJlZSBtZXRob2RzLiAgQVxuICBjYWxsIGxpa2VcblxuICAgICBhWzE6Ml0gPSBiXG5cbiAgaXMgdHJhbnNsYXRlZCB0b1xuXG4gICAgIGFbc2xpY2UoMSwgMiwgTm9uZSldID0gYlxuXG4gIGFuZCBzbyBmb3J0aC4gIE1pc3Npbmcgc2xpY2UgaXRlbXMgYXJlIGFsd2F5cyBmaWxsZWQgaW4gd2l0aFxuICBgYE5vbmVgYC5cblxub2JqZWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleSlcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCBldmFsdWF0aW9uIG9mIGBgc2VsZltrZXldYGAuIEZvciBzZXF1ZW5jZVxuICAgdHlwZXMsIHRoZSBhY2NlcHRlZCBrZXlzIHNob3VsZCBiZSBpbnRlZ2VycyBhbmQgc2xpY2Ugb2JqZWN0cy5cbiAgIE5vdGUgdGhhdCB0aGUgc3BlY2lhbCBpbnRlcnByZXRhdGlvbiBvZiBuZWdhdGl2ZSBpbmRleGVzIChpZiB0aGVcbiAgIGNsYXNzIHdpc2hlcyB0byBlbXVsYXRlIGEgc2VxdWVuY2UgdHlwZSkgaXMgdXAgdG8gdGhlXG4gICBgYF9fZ2V0aXRlbV9fKClgYCBtZXRob2QuIElmICprZXkqIGlzIG9mIGFuIGluYXBwcm9wcmlhdGUgdHlwZSxcbiAgIGBgVHlwZUVycm9yYGAgbWF5IGJlIHJhaXNlZDsgaWYgb2YgYSB2YWx1ZSBvdXRzaWRlIHRoZSBzZXQgb2ZcbiAgIGluZGV4ZXMgZm9yIHRoZSBzZXF1ZW5jZSAoYWZ0ZXIgYW55IHNwZWNpYWwgaW50ZXJwcmV0YXRpb24gb2ZcbiAgIG5lZ2F0aXZlIHZhbHVlcyksIGBgSW5kZXhFcnJvcmBgIHNob3VsZCBiZSByYWlzZWQuIEZvciBtYXBwaW5nXG4gICB0eXBlcywgaWYgKmtleSogaXMgbWlzc2luZyAobm90IGluIHRoZSBjb250YWluZXIpLCBgYEtleUVycm9yYGBcbiAgIHNob3VsZCBiZSByYWlzZWQuXG5cbiAgIE5vdGU6IGBgZm9yYGAgbG9vcHMgZXhwZWN0IHRoYXQgYW4gYGBJbmRleEVycm9yYGAgd2lsbCBiZSByYWlzZWQgZm9yXG4gICAgIGlsbGVnYWwgaW5kZXhlcyB0byBhbGxvdyBwcm9wZXIgZGV0ZWN0aW9uIG9mIHRoZSBlbmQgb2YgdGhlXG4gICAgIHNlcXVlbmNlLlxuXG5vYmplY3QuX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSlcblxuICAgQ2FsbGVkIHRvIGltcGxlbWVudCBhc3NpZ25tZW50IHRvIGBgc2VsZltrZXldYGAuICBTYW1lIG5vdGUgYXMgZm9yXG4gICBgYF9fZ2V0aXRlbV9fKClgYC4gIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW1wbGVtZW50ZWQgZm9yIG1hcHBpbmdzIGlmXG4gICB0aGUgb2JqZWN0cyBzdXBwb3J0IGNoYW5nZXMgdG8gdGhlIHZhbHVlcyBmb3Iga2V5cywgb3IgaWYgbmV3IGtleXNcbiAgIGNhbiBiZSBhZGRlZCwgb3IgZm9yIHNlcXVlbmNlcyBpZiBlbGVtZW50cyBjYW4gYmUgcmVwbGFjZWQuICBUaGVcbiAgIHNhbWUgZXhjZXB0aW9ucyBzaG91bGQgYmUgcmFpc2VkIGZvciBpbXByb3BlciAqa2V5KiB2YWx1ZXMgYXMgZm9yXG4gICB0aGUgYGBfX2dldGl0ZW1fXygpYGAgbWV0aG9kLlxuXG5vYmplY3QuX19kZWxpdGVtX18oc2VsZiwga2V5KVxuXG4gICBDYWxsZWQgdG8gaW1wbGVtZW50IGRlbGV0aW9uIG9mIGBgc2VsZltrZXldYGAuICBTYW1lIG5vdGUgYXMgZm9yXG4gICBgYF9fZ2V0aXRlbV9fKClgYC4gIFRoaXMgc2hvdWxkIG9ubHkgYmUgaW1wbGVtZW50ZWQgZm9yIG1hcHBpbmdzIGlmXG4gICB0aGUgb2JqZWN0cyBzdXBwb3J0IHJlbW92YWwgb2Yga2V5cywgb3IgZm9yIHNlcXVlbmNlcyBpZiBlbGVtZW50c1xuICAgY2FuIGJlIHJlbW92ZWQgZnJvbSB0aGUgc2VxdWVuY2UuICBUaGUgc2FtZSBleGNlcHRpb25zIHNob3VsZCBiZVxuICAgcmFpc2VkIGZvciBpbXByb3BlciAqa2V5KiB2YWx1ZXMgYXMgZm9yIHRoZSBgYF9fZ2V0aXRlbV9fKClgYFxuICAgbWV0aG9kLlxuXG5vYmplY3QuX19pdGVyX18oc2VsZilcblxuICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4gaXRlcmF0b3IgaXMgcmVxdWlyZWQgZm9yIGEgY29udGFpbmVyLlxuICAgVGhpcyBtZXRob2Qgc2hvdWxkIHJldHVybiBhIG5ldyBpdGVyYXRvciBvYmplY3QgdGhhdCBjYW4gaXRlcmF0ZVxuICAgb3ZlciBhbGwgdGhlIG9iamVjdHMgaW4gdGhlIGNvbnRhaW5lci4gIEZvciBtYXBwaW5ncywgaXQgc2hvdWxkXG4gICBpdGVyYXRlIG92ZXIgdGhlIGtleXMgb2YgdGhlIGNvbnRhaW5lciwgYW5kIHNob3VsZCBhbHNvIGJlIG1hZGVcbiAgIGF2YWlsYWJsZSBhcyB0aGUgbWV0aG9kIGBga2V5cygpYGAuXG5cbiAgIEl0ZXJhdG9yIG9iamVjdHMgYWxzbyBuZWVkIHRvIGltcGxlbWVudCB0aGlzIG1ldGhvZDsgdGhleSBhcmVcbiAgIHJlcXVpcmVkIHRvIHJldHVybiB0aGVtc2VsdmVzLiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gaXRlcmF0b3JcbiAgIG9iamVjdHMsIHNlZSAqSXRlcmF0b3IgVHlwZXMqLlxuXG5vYmplY3QuX19yZXZlcnNlZF9fKHNlbGYpXG5cbiAgIENhbGxlZCAoaWYgcHJlc2VudCkgYnkgdGhlIGBgcmV2ZXJzZWQoKWBgIGJ1aWx0LWluIHRvIGltcGxlbWVudFxuICAgcmV2ZXJzZSBpdGVyYXRpb24uICBJdCBzaG91bGQgcmV0dXJuIGEgbmV3IGl0ZXJhdG9yIG9iamVjdCB0aGF0XG4gICBpdGVyYXRlcyBvdmVyIGFsbCB0aGUgb2JqZWN0cyBpbiB0aGUgY29udGFpbmVyIGluIHJldmVyc2Ugb3JkZXIuXG5cbiAgIElmIHRoZSBgYF9fcmV2ZXJzZWRfXygpYGAgbWV0aG9kIGlzIG5vdCBwcm92aWRlZCwgdGhlXG4gICBgYHJldmVyc2VkKClgYCBidWlsdC1pbiB3aWxsIGZhbGwgYmFjayB0byB1c2luZyB0aGUgc2VxdWVuY2VcbiAgIHByb3RvY29sIChgYF9fbGVuX18oKWBgIGFuZCBgYF9fZ2V0aXRlbV9fKClgYCkuICBPYmplY3RzIHRoYXRcbiAgIHN1cHBvcnQgdGhlIHNlcXVlbmNlIHByb3RvY29sIHNob3VsZCBvbmx5IHByb3ZpZGVcbiAgIGBgX19yZXZlcnNlZF9fKClgYCBpZiB0aGV5IGNhbiBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIHRoYXQgaXNcbiAgIG1vcmUgZWZmaWNpZW50IHRoYW4gdGhlIG9uZSBwcm92aWRlZCBieSBgYHJldmVyc2VkKClgYC5cblxuVGhlIG1lbWJlcnNoaXAgdGVzdCBvcGVyYXRvcnMgKGBgaW5gYCBhbmQgYGBub3QgaW5gYCkgYXJlIG5vcm1hbGx5XG5pbXBsZW1lbnRlZCBhcyBhbiBpdGVyYXRpb24gdGhyb3VnaCBhIHNlcXVlbmNlLiAgSG93ZXZlciwgY29udGFpbmVyXG5vYmplY3RzIGNhbiBzdXBwbHkgdGhlIGZvbGxvd2luZyBzcGVjaWFsIG1ldGhvZCB3aXRoIGEgbW9yZSBlZmZpY2llbnRcbmltcGxlbWVudGF0aW9uLCB3aGljaCBhbHNvIGRvZXMgbm90IHJlcXVpcmUgdGhlIG9iamVjdCBiZSBhIHNlcXVlbmNlLlxuXG5vYmplY3QuX19jb250YWluc19fKHNlbGYsIGl0ZW0pXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgbWVtYmVyc2hpcCB0ZXN0IG9wZXJhdG9ycy4gIFNob3VsZCByZXR1cm4gdHJ1ZVxuICAgaWYgKml0ZW0qIGlzIGluICpzZWxmKiwgZmFsc2Ugb3RoZXJ3aXNlLiAgRm9yIG1hcHBpbmcgb2JqZWN0cywgdGhpc1xuICAgc2hvdWxkIGNvbnNpZGVyIHRoZSBrZXlzIG9mIHRoZSBtYXBwaW5nIHJhdGhlciB0aGFuIHRoZSB2YWx1ZXMgb3JcbiAgIHRoZSBrZXktaXRlbSBwYWlycy5cblxuICAgRm9yIG9iamVjdHMgdGhhdCBkb25cJ3QgZGVmaW5lIGBgX19jb250YWluc19fKClgYCwgdGhlIG1lbWJlcnNoaXBcbiAgIHRlc3QgZmlyc3QgdHJpZXMgaXRlcmF0aW9uIHZpYSBgYF9faXRlcl9fKClgYCwgdGhlbiB0aGUgb2xkXG4gICBzZXF1ZW5jZSBpdGVyYXRpb24gcHJvdG9jb2wgdmlhIGBgX19nZXRpdGVtX18oKWBgLCBzZWUgKnRoaXNcbiAgIHNlY3Rpb24gaW4gdGhlIGxhbmd1YWdlIHJlZmVyZW5jZSouXG5cblxuRW11bGF0aW5nIG51bWVyaWMgdHlwZXNcbj09PT09PT09PT09PT09PT09PT09PT09XG5cblRoZSBmb2xsb3dpbmcgbWV0aG9kcyBjYW4gYmUgZGVmaW5lZCB0byBlbXVsYXRlIG51bWVyaWMgb2JqZWN0cy5cbk1ldGhvZHMgY29ycmVzcG9uZGluZyB0byBvcGVyYXRpb25zIHRoYXQgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlXG5wYXJ0aWN1bGFyIGtpbmQgb2YgbnVtYmVyIGltcGxlbWVudGVkIChlLmcuLCBiaXR3aXNlIG9wZXJhdGlvbnMgZm9yXG5ub24taW50ZWdyYWwgbnVtYmVycykgc2hvdWxkIGJlIGxlZnQgdW5kZWZpbmVkLlxuXG5vYmplY3QuX19hZGRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3N1Yl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fbXVsX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX190cnVlZGl2X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19mbG9vcmRpdl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fbW9kX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19kaXZtb2RfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3Bvd19fKHNlbGYsIG90aGVyWywgbW9kdWxvXSlcbm9iamVjdC5fX2xzaGlmdF9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fcnNoaWZ0X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19hbmRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3hvcl9fKHNlbGYsIG90aGVyKVxub2JqZWN0Ll9fb3JfXyhzZWxmLCBvdGhlcilcblxuICAgVGhlc2UgbWV0aG9kcyBhcmUgY2FsbGVkIHRvIGltcGxlbWVudCB0aGUgYmluYXJ5IGFyaXRobWV0aWNcbiAgIG9wZXJhdGlvbnMgKGBgK2BgLCBgYC1gYCwgYGAqYGAsIGBgL2BgLCBgYC8vYGAsIGBgJWBgLFxuICAgYGBkaXZtb2QoKWBgLCBgYHBvdygpYGAsIGBgKipgYCwgYGA8PGBgLCBgYD4+YGAsIGBgJmBgLCBgYF5gYCxcbiAgIGBgfGBgKS4gIEZvciBpbnN0YW5jZSwgdG8gZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24gYGB4ICsgeWBgLCB3aGVyZVxuICAgKngqIGlzIGFuIGluc3RhbmNlIG9mIGEgY2xhc3MgdGhhdCBoYXMgYW4gYGBfX2FkZF9fKClgYCBtZXRob2QsXG4gICBgYHguX19hZGRfXyh5KWBgIGlzIGNhbGxlZC4gIFRoZSBgYF9fZGl2bW9kX18oKWBgIG1ldGhvZCBzaG91bGQgYmVcbiAgIHRoZSBlcXVpdmFsZW50IHRvIHVzaW5nIGBgX19mbG9vcmRpdl9fKClgYCBhbmQgYGBfX21vZF9fKClgYDsgaXRcbiAgIHNob3VsZCBub3QgYmUgcmVsYXRlZCB0byBgYF9fdHJ1ZWRpdl9fKClgYC4gIE5vdGUgdGhhdFxuICAgYGBfX3Bvd19fKClgYCBzaG91bGQgYmUgZGVmaW5lZCB0byBhY2NlcHQgYW4gb3B0aW9uYWwgdGhpcmRcbiAgIGFyZ3VtZW50IGlmIHRoZSB0ZXJuYXJ5IHZlcnNpb24gb2YgdGhlIGJ1aWx0LWluIGBgcG93KClgYCBmdW5jdGlvblxuICAgaXMgdG8gYmUgc3VwcG9ydGVkLlxuXG4gICBJZiBvbmUgb2YgdGhvc2UgbWV0aG9kcyBkb2VzIG5vdCBzdXBwb3J0IHRoZSBvcGVyYXRpb24gd2l0aCB0aGVcbiAgIHN1cHBsaWVkIGFyZ3VtZW50cywgaXQgc2hvdWxkIHJldHVybiBgYE5vdEltcGxlbWVudGVkYGAuXG5cbm9iamVjdC5fX3JhZGRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3JzdWJfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3JtdWxfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3J0cnVlZGl2X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19yZmxvb3JkaXZfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3Jtb2RfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3JkaXZtb2RfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3Jwb3dfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3Jsc2hpZnRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3Jyc2hpZnRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3JhbmRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3J4b3JfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX3Jvcl9fKHNlbGYsIG90aGVyKVxuXG4gICBUaGVzZSBtZXRob2RzIGFyZSBjYWxsZWQgdG8gaW1wbGVtZW50IHRoZSBiaW5hcnkgYXJpdGhtZXRpY1xuICAgb3BlcmF0aW9ucyAoYGArYGAsIGBgLWBgLCBgYCpgYCwgYGAvYGAsIGBgLy9gYCwgYGAlYGAsXG4gICBgYGRpdm1vZCgpYGAsIGBgcG93KClgYCwgYGAqKmBgLCBgYDw8YGAsIGBgPj5gYCwgYGAmYGAsIGBgXmBgLFxuICAgYGB8YGApIHdpdGggcmVmbGVjdGVkIChzd2FwcGVkKSBvcGVyYW5kcy4gVGhlc2UgZnVuY3Rpb25zIGFyZSBvbmx5XG4gICBjYWxsZWQgaWYgdGhlIGxlZnQgb3BlcmFuZCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBjb3JyZXNwb25kaW5nXG4gICBvcGVyYXRpb24gYW5kIHRoZSBvcGVyYW5kcyBhcmUgb2YgZGlmZmVyZW50IHR5cGVzLiBbMl0gIEZvclxuICAgaW5zdGFuY2UsIHRvIGV2YWx1YXRlIHRoZSBleHByZXNzaW9uIGBgeCAtIHlgYCwgd2hlcmUgKnkqIGlzIGFuXG4gICBpbnN0YW5jZSBvZiBhIGNsYXNzIHRoYXQgaGFzIGFuIGBgX19yc3ViX18oKWBgIG1ldGhvZCxcbiAgIGBgeS5fX3JzdWJfXyh4KWBgIGlzIGNhbGxlZCBpZiBgYHguX19zdWJfXyh5KWBgIHJldHVybnNcbiAgICpOb3RJbXBsZW1lbnRlZCouXG5cbiAgIE5vdGUgdGhhdCB0ZXJuYXJ5IGBgcG93KClgYCB3aWxsIG5vdCB0cnkgY2FsbGluZyBgYF9fcnBvd19fKClgYFxuICAgKHRoZSBjb2VyY2lvbiBydWxlcyB3b3VsZCBiZWNvbWUgdG9vIGNvbXBsaWNhdGVkKS5cblxuICAgTm90ZTogSWYgdGhlIHJpZ2h0IG9wZXJhbmRcJ3MgdHlwZSBpcyBhIHN1YmNsYXNzIG9mIHRoZSBsZWZ0IG9wZXJhbmRcJ3NcbiAgICAgdHlwZSBhbmQgdGhhdCBzdWJjbGFzcyBwcm92aWRlcyB0aGUgcmVmbGVjdGVkIG1ldGhvZCBmb3IgdGhlXG4gICAgIG9wZXJhdGlvbiwgdGhpcyBtZXRob2Qgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBsZWZ0IG9wZXJhbmRcJ3NcbiAgICAgbm9uLXJlZmxlY3RlZCBtZXRob2QuICBUaGlzIGJlaGF2aW9yIGFsbG93cyBzdWJjbGFzc2VzIHRvXG4gICAgIG92ZXJyaWRlIHRoZWlyIGFuY2VzdG9yc1wnIG9wZXJhdGlvbnMuXG5cbm9iamVjdC5fX2lhZGRfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2lzdWJfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2ltdWxfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2l0cnVlZGl2X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19pZmxvb3JkaXZfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2ltb2RfXyhzZWxmLCBvdGhlcilcbm9iamVjdC5fX2lwb3dfXyhzZWxmLCBvdGhlclssIG1vZHVsb10pXG5vYmplY3QuX19pbHNoaWZ0X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19pcnNoaWZ0X18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19pYW5kX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19peG9yX18oc2VsZiwgb3RoZXIpXG5vYmplY3QuX19pb3JfXyhzZWxmLCBvdGhlcilcblxuICAgVGhlc2UgbWV0aG9kcyBhcmUgY2FsbGVkIHRvIGltcGxlbWVudCB0aGUgYXVnbWVudGVkIGFyaXRobWV0aWNcbiAgIGFzc2lnbm1lbnRzIChgYCs9YGAsIGBgLT1gYCwgYGAqPWBgLCBgYC89YGAsIGBgLy89YGAsIGBgJT1gYCxcbiAgIGBgKio9YGAsIGBgPDw9YGAsIGBgPj49YGAsIGBgJj1gYCwgYGBePWBgLCBgYHw9YGApLiAgVGhlc2UgbWV0aG9kc1xuICAgc2hvdWxkIGF0dGVtcHQgdG8gZG8gdGhlIG9wZXJhdGlvbiBpbi1wbGFjZSAobW9kaWZ5aW5nICpzZWxmKikgYW5kXG4gICByZXR1cm4gdGhlIHJlc3VsdCAod2hpY2ggY291bGQgYmUsIGJ1dCBkb2VzIG5vdCBoYXZlIHRvIGJlLFxuICAgKnNlbGYqKS4gIElmIGEgc3BlY2lmaWMgbWV0aG9kIGlzIG5vdCBkZWZpbmVkLCB0aGUgYXVnbWVudGVkXG4gICBhc3NpZ25tZW50IGZhbGxzIGJhY2sgdG8gdGhlIG5vcm1hbCBtZXRob2RzLiAgRm9yIGluc3RhbmNlLCB0b1xuICAgZXhlY3V0ZSB0aGUgc3RhdGVtZW50IGBgeCArPSB5YGAsIHdoZXJlICp4KiBpcyBhbiBpbnN0YW5jZSBvZiBhXG4gICBjbGFzcyB0aGF0IGhhcyBhbiBgYF9faWFkZF9fKClgYCBtZXRob2QsIGBgeC5fX2lhZGRfXyh5KWBgIGlzXG4gICBjYWxsZWQuICBJZiAqeCogaXMgYW4gaW5zdGFuY2Ugb2YgYSBjbGFzcyB0aGF0IGRvZXMgbm90IGRlZmluZSBhXG4gICBgYF9faWFkZF9fKClgYCBtZXRob2QsIGBgeC5fX2FkZF9fKHkpYGAgYW5kIGBgeS5fX3JhZGRfXyh4KWBgIGFyZVxuICAgY29uc2lkZXJlZCwgYXMgd2l0aCB0aGUgZXZhbHVhdGlvbiBvZiBgYHggKyB5YGAuXG5cbm9iamVjdC5fX25lZ19fKHNlbGYpXG5vYmplY3QuX19wb3NfXyhzZWxmKVxub2JqZWN0Ll9fYWJzX18oc2VsZilcbm9iamVjdC5fX2ludmVydF9fKHNlbGYpXG5cbiAgIENhbGxlZCB0byBpbXBsZW1lbnQgdGhlIHVuYXJ5IGFyaXRobWV0aWMgb3BlcmF0aW9ucyAoYGAtYGAsIGBgK2BgLFxuICAgYGBhYnMoKWBgIGFuZCBgYH5gYCkuXG5cbm9iamVjdC5fX2NvbXBsZXhfXyhzZWxmKVxub2JqZWN0Ll9faW50X18oc2VsZilcbm9iamVjdC5fX2Zsb2F0X18oc2VsZilcbm9iamVjdC5fX3JvdW5kX18oc2VsZlssIG5dKVxuXG4gICBDYWxsZWQgdG8gaW1wbGVtZW50IHRoZSBidWlsdC1pbiBmdW5jdGlvbnMgYGBjb21wbGV4KClgYCxcbiAgIGBgaW50KClgYCwgYGBmbG9hdCgpYGAgYW5kIGBgcm91bmQoKWBgLiAgU2hvdWxkIHJldHVybiBhIHZhbHVlIG9mXG4gICB0aGUgYXBwcm9wcmlhdGUgdHlwZS5cblxub2JqZWN0Ll9faW5kZXhfXyhzZWxmKVxuXG4gICBDYWxsZWQgdG8gaW1wbGVtZW50IGBgb3BlcmF0b3IuaW5kZXgoKWBgLiAgQWxzbyBjYWxsZWQgd2hlbmV2ZXJcbiAgIFB5dGhvbiBuZWVkcyBhbiBpbnRlZ2VyIG9iamVjdCAoc3VjaCBhcyBpbiBzbGljaW5nLCBvciBpbiB0aGVcbiAgIGJ1aWx0LWluIGBgYmluKClgYCwgYGBoZXgoKWBgIGFuZCBgYG9jdCgpYGAgZnVuY3Rpb25zKS4gTXVzdCByZXR1cm5cbiAgIGFuIGludGVnZXIuXG5cblxuV2l0aCBTdGF0ZW1lbnQgQ29udGV4dCBNYW5hZ2Vyc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5BICpjb250ZXh0IG1hbmFnZXIqIGlzIGFuIG9iamVjdCB0aGF0IGRlZmluZXMgdGhlIHJ1bnRpbWUgY29udGV4dCB0b1xuYmUgZXN0YWJsaXNoZWQgd2hlbiBleGVjdXRpbmcgYSBgYHdpdGhgYCBzdGF0ZW1lbnQuIFRoZSBjb250ZXh0XG5tYW5hZ2VyIGhhbmRsZXMgdGhlIGVudHJ5IGludG8sIGFuZCB0aGUgZXhpdCBmcm9tLCB0aGUgZGVzaXJlZCBydW50aW1lXG5jb250ZXh0IGZvciB0aGUgZXhlY3V0aW9uIG9mIHRoZSBibG9jayBvZiBjb2RlLiAgQ29udGV4dCBtYW5hZ2VycyBhcmVcbm5vcm1hbGx5IGludm9rZWQgdXNpbmcgdGhlIGBgd2l0aGBgIHN0YXRlbWVudCAoZGVzY3JpYmVkIGluIHNlY3Rpb25cbipUaGUgd2l0aCBzdGF0ZW1lbnQqKSwgYnV0IGNhbiBhbHNvIGJlIHVzZWQgYnkgZGlyZWN0bHkgaW52b2tpbmcgdGhlaXJcbm1ldGhvZHMuXG5cblR5cGljYWwgdXNlcyBvZiBjb250ZXh0IG1hbmFnZXJzIGluY2x1ZGUgc2F2aW5nIGFuZCByZXN0b3JpbmcgdmFyaW91c1xua2luZHMgb2YgZ2xvYmFsIHN0YXRlLCBsb2NraW5nIGFuZCB1bmxvY2tpbmcgcmVzb3VyY2VzLCBjbG9zaW5nIG9wZW5lZFxuZmlsZXMsIGV0Yy5cblxuRm9yIG1vcmUgaW5mb3JtYXRpb24gb24gY29udGV4dCBtYW5hZ2Vycywgc2VlICpDb250ZXh0IE1hbmFnZXIgVHlwZXMqLlxuXG5vYmplY3QuX19lbnRlcl9fKHNlbGYpXG5cbiAgIEVudGVyIHRoZSBydW50aW1lIGNvbnRleHQgcmVsYXRlZCB0byB0aGlzIG9iamVjdC4gVGhlIGBgd2l0aGBgXG4gICBzdGF0ZW1lbnQgd2lsbCBiaW5kIHRoaXMgbWV0aG9kXCdzIHJldHVybiB2YWx1ZSB0byB0aGUgdGFyZ2V0KHMpXG4gICBzcGVjaWZpZWQgaW4gdGhlIGBgYXNgYCBjbGF1c2Ugb2YgdGhlIHN0YXRlbWVudCwgaWYgYW55LlxuXG5vYmplY3QuX19leGl0X18oc2VsZiwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgdHJhY2ViYWNrKVxuXG4gICBFeGl0IHRoZSBydW50aW1lIGNvbnRleHQgcmVsYXRlZCB0byB0aGlzIG9iamVjdC4gVGhlIHBhcmFtZXRlcnNcbiAgIGRlc2NyaWJlIHRoZSBleGNlcHRpb24gdGhhdCBjYXVzZWQgdGhlIGNvbnRleHQgdG8gYmUgZXhpdGVkLiBJZiB0aGVcbiAgIGNvbnRleHQgd2FzIGV4aXRlZCB3aXRob3V0IGFuIGV4Y2VwdGlvbiwgYWxsIHRocmVlIGFyZ3VtZW50cyB3aWxsXG4gICBiZSBgYE5vbmVgYC5cblxuICAgSWYgYW4gZXhjZXB0aW9uIGlzIHN1cHBsaWVkLCBhbmQgdGhlIG1ldGhvZCB3aXNoZXMgdG8gc3VwcHJlc3MgdGhlXG4gICBleGNlcHRpb24gKGkuZS4sIHByZXZlbnQgaXQgZnJvbSBiZWluZyBwcm9wYWdhdGVkKSwgaXQgc2hvdWxkXG4gICByZXR1cm4gYSB0cnVlIHZhbHVlLiBPdGhlcndpc2UsIHRoZSBleGNlcHRpb24gd2lsbCBiZSBwcm9jZXNzZWRcbiAgIG5vcm1hbGx5IHVwb24gZXhpdCBmcm9tIHRoaXMgbWV0aG9kLlxuXG4gICBOb3RlIHRoYXQgYGBfX2V4aXRfXygpYGAgbWV0aG9kcyBzaG91bGQgbm90IHJlcmFpc2UgdGhlIHBhc3NlZC1pblxuICAgZXhjZXB0aW9uOyB0aGlzIGlzIHRoZSBjYWxsZXJcJ3MgcmVzcG9uc2liaWxpdHkuXG5cblNlZSBhbHNvOlxuXG4gICAqKlBFUCAwMzQzKiogLSBUaGUgIndpdGgiIHN0YXRlbWVudFxuICAgICAgVGhlIHNwZWNpZmljYXRpb24sIGJhY2tncm91bmQsIGFuZCBleGFtcGxlcyBmb3IgdGhlIFB5dGhvblxuICAgICAgYGB3aXRoYGAgc3RhdGVtZW50LlxuXG5cblNwZWNpYWwgbWV0aG9kIGxvb2t1cFxuPT09PT09PT09PT09PT09PT09PT09XG5cbkZvciBjdXN0b20gY2xhc3NlcywgaW1wbGljaXQgaW52b2NhdGlvbnMgb2Ygc3BlY2lhbCBtZXRob2RzIGFyZSBvbmx5XG5ndWFyYW50ZWVkIHRvIHdvcmsgY29ycmVjdGx5IGlmIGRlZmluZWQgb24gYW4gb2JqZWN0XCdzIHR5cGUsIG5vdCBpblxudGhlIG9iamVjdFwncyBpbnN0YW5jZSBkaWN0aW9uYXJ5LiAgVGhhdCBiZWhhdmlvdXIgaXMgdGhlIHJlYXNvbiB3aHlcbnRoZSBmb2xsb3dpbmcgY29kZSByYWlzZXMgYW4gZXhjZXB0aW9uOlxuXG4gICA+Pj4gY2xhc3MgQzpcbiAgIC4uLiAgICAgcGFzc1xuICAgLi4uXG4gICA+Pj4gYyA9IEMoKVxuICAgPj4+IGMuX19sZW5fXyA9IGxhbWJkYTogNVxuICAgPj4+IGxlbihjKVxuICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOlxuICAgICBGaWxlICI8c3RkaW4+IiwgbGluZSAxLCBpbiA8bW9kdWxlPlxuICAgVHlwZUVycm9yOiBvYmplY3Qgb2YgdHlwZSBcJ0NcJyBoYXMgbm8gbGVuKClcblxuVGhlIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBiZWhhdmlvdXIgbGllcyB3aXRoIGEgbnVtYmVyIG9mIHNwZWNpYWxcbm1ldGhvZHMgc3VjaCBhcyBgYF9faGFzaF9fKClgYCBhbmQgYGBfX3JlcHJfXygpYGAgdGhhdCBhcmUgaW1wbGVtZW50ZWRcbmJ5IGFsbCBvYmplY3RzLCBpbmNsdWRpbmcgdHlwZSBvYmplY3RzLiBJZiB0aGUgaW1wbGljaXQgbG9va3VwIG9mXG50aGVzZSBtZXRob2RzIHVzZWQgdGhlIGNvbnZlbnRpb25hbCBsb29rdXAgcHJvY2VzcywgdGhleSB3b3VsZCBmYWlsXG53aGVuIGludm9rZWQgb24gdGhlIHR5cGUgb2JqZWN0IGl0c2VsZjpcblxuICAgPj4+IDEgLl9faGFzaF9fKCkgPT0gaGFzaCgxKVxuICAgVHJ1ZVxuICAgPj4+IGludC5fX2hhc2hfXygpID09IGhhc2goaW50KVxuICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOlxuICAgICBGaWxlICI8c3RkaW4+IiwgbGluZSAxLCBpbiA8bW9kdWxlPlxuICAgVHlwZUVycm9yOiBkZXNjcmlwdG9yIFwnX19oYXNoX19cJyBvZiBcJ2ludFwnIG9iamVjdCBuZWVkcyBhbiBhcmd1bWVudFxuXG5JbmNvcnJlY3RseSBhdHRlbXB0aW5nIHRvIGludm9rZSBhbiB1bmJvdW5kIG1ldGhvZCBvZiBhIGNsYXNzIGluIHRoaXNcbndheSBpcyBzb21ldGltZXMgcmVmZXJyZWQgdG8gYXMgXCdtZXRhY2xhc3MgY29uZnVzaW9uXCcsIGFuZCBpcyBhdm9pZGVkXG5ieSBieXBhc3NpbmcgdGhlIGluc3RhbmNlIHdoZW4gbG9va2luZyB1cCBzcGVjaWFsIG1ldGhvZHM6XG5cbiAgID4+PiB0eXBlKDEpLl9faGFzaF9fKDEpID09IGhhc2goMSlcbiAgIFRydWVcbiAgID4+PiB0eXBlKGludCkuX19oYXNoX18oaW50KSA9PSBoYXNoKGludClcbiAgIFRydWVcblxuSW4gYWRkaXRpb24gdG8gYnlwYXNzaW5nIGFueSBpbnN0YW5jZSBhdHRyaWJ1dGVzIGluIHRoZSBpbnRlcmVzdCBvZlxuY29ycmVjdG5lc3MsIGltcGxpY2l0IHNwZWNpYWwgbWV0aG9kIGxvb2t1cCBnZW5lcmFsbHkgYWxzbyBieXBhc3Nlc1xudGhlIGBgX19nZXRhdHRyaWJ1dGVfXygpYGAgbWV0aG9kIGV2ZW4gb2YgdGhlIG9iamVjdFwncyBtZXRhY2xhc3M6XG5cbiAgID4+PiBjbGFzcyBNZXRhKHR5cGUpOlxuICAgLi4uICAgIGRlZiBfX2dldGF0dHJpYnV0ZV9fKCphcmdzKTpcbiAgIC4uLiAgICAgICBwcmludCgiTWV0YWNsYXNzIGdldGF0dHJpYnV0ZSBpbnZva2VkIilcbiAgIC4uLiAgICAgICByZXR1cm4gdHlwZS5fX2dldGF0dHJpYnV0ZV9fKCphcmdzKVxuICAgLi4uXG4gICA+Pj4gY2xhc3MgQyhvYmplY3QsIG1ldGFjbGFzcz1NZXRhKTpcbiAgIC4uLiAgICAgZGVmIF9fbGVuX18oc2VsZik6XG4gICAuLi4gICAgICAgICByZXR1cm4gMTBcbiAgIC4uLiAgICAgZGVmIF9fZ2V0YXR0cmlidXRlX18oKmFyZ3MpOlxuICAgLi4uICAgICAgICAgcHJpbnQoIkNsYXNzIGdldGF0dHJpYnV0ZSBpbnZva2VkIilcbiAgIC4uLiAgICAgICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXygqYXJncylcbiAgIC4uLlxuICAgPj4+IGMgPSBDKClcbiAgID4+PiBjLl9fbGVuX18oKSAgICAgICAgICAgICAgICAgIyBFeHBsaWNpdCBsb29rdXAgdmlhIGluc3RhbmNlXG4gICBDbGFzcyBnZXRhdHRyaWJ1dGUgaW52b2tlZFxuICAgMTBcbiAgID4+PiB0eXBlKGMpLl9fbGVuX18oYykgICAgICAgICAgIyBFeHBsaWNpdCBsb29rdXAgdmlhIHR5cGVcbiAgIE1ldGFjbGFzcyBnZXRhdHRyaWJ1dGUgaW52b2tlZFxuICAgMTBcbiAgID4+PiBsZW4oYykgICAgICAgICAgICAgICAgICAgICAgIyBJbXBsaWNpdCBsb29rdXBcbiAgIDEwXG5cbkJ5cGFzc2luZyB0aGUgYGBfX2dldGF0dHJpYnV0ZV9fKClgYCBtYWNoaW5lcnkgaW4gdGhpcyBmYXNoaW9uXG5wcm92aWRlcyBzaWduaWZpY2FudCBzY29wZSBmb3Igc3BlZWQgb3B0aW1pc2F0aW9ucyB3aXRoaW4gdGhlXG5pbnRlcnByZXRlciwgYXQgdGhlIGNvc3Qgb2Ygc29tZSBmbGV4aWJpbGl0eSBpbiB0aGUgaGFuZGxpbmcgb2ZcbnNwZWNpYWwgbWV0aG9kcyAodGhlIHNwZWNpYWwgbWV0aG9kICptdXN0KiBiZSBzZXQgb24gdGhlIGNsYXNzIG9iamVjdFxuaXRzZWxmIGluIG9yZGVyIHRvIGJlIGNvbnNpc3RlbnRseSBpbnZva2VkIGJ5IHRoZSBpbnRlcnByZXRlcikuXG5cbi1bIEZvb3Rub3RlcyBdLVxuXG5bMV0gSXQgKmlzKiBwb3NzaWJsZSBpbiBzb21lIGNhc2VzIHRvIGNoYW5nZSBhbiBvYmplY3RcJ3MgdHlwZSwgdW5kZXJcbiAgICBjZXJ0YWluIGNvbnRyb2xsZWQgY29uZGl0aW9ucy4gSXQgZ2VuZXJhbGx5IGlzblwndCBhIGdvb2QgaWRlYVxuICAgIHRob3VnaCwgc2luY2UgaXQgY2FuIGxlYWQgdG8gc29tZSB2ZXJ5IHN0cmFuZ2UgYmVoYXZpb3VyIGlmIGl0IGlzXG4gICAgaGFuZGxlZCBpbmNvcnJlY3RseS5cblxuWzJdIEZvciBvcGVyYW5kcyBvZiB0aGUgc2FtZSB0eXBlLCBpdCBpcyBhc3N1bWVkIHRoYXQgaWYgdGhlIG5vbi1cbiAgICByZWZsZWN0ZWQgbWV0aG9kIChzdWNoIGFzIGBgX19hZGRfXygpYGApIGZhaWxzIHRoZSBvcGVyYXRpb24gaXNcbiAgICBub3Qgc3VwcG9ydGVkLCB3aGljaCBpcyB3aHkgdGhlIHJlZmxlY3RlZCBtZXRob2QgaXMgbm90IGNhbGxlZC5cbicsCisgJ3N0cmluZy1tZXRob2RzJzogJ1xuU3RyaW5nIE1ldGhvZHNcbioqKioqKioqKioqKioqXG5cblN0cmluZyBvYmplY3RzIHN1cHBvcnQgdGhlIG1ldGhvZHMgbGlzdGVkIGJlbG93LlxuXG5JbiBhZGRpdGlvbiwgUHl0aG9uXCdzIHN0cmluZ3Mgc3VwcG9ydCB0aGUgc2VxdWVuY2UgdHlwZSBtZXRob2RzXG5kZXNjcmliZWQgaW4gdGhlICpTZXF1ZW5jZSBUeXBlcyAtLS0gc3RyLCBieXRlcywgYnl0ZWFycmF5LCBsaXN0LFxudHVwbGUsIHJhbmdlKiBzZWN0aW9uLiBUbyBvdXRwdXQgZm9ybWF0dGVkIHN0cmluZ3MsIHNlZSB0aGUgKlN0cmluZ1xuRm9ybWF0dGluZyogc2VjdGlvbi4gQWxzbywgc2VlIHRoZSBgYHJlYGAgbW9kdWxlIGZvciBzdHJpbmcgZnVuY3Rpb25zXG5iYXNlZCBvbiByZWd1bGFyIGV4cHJlc3Npb25zLlxuXG5zdHIuY2FwaXRhbGl6ZSgpXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aXRoIGl0cyBmaXJzdCBjaGFyYWN0ZXIgY2FwaXRhbGl6ZWRcbiAgIGFuZCB0aGUgcmVzdCBsb3dlcmNhc2VkLlxuXG5zdHIuY2FzZWZvbGQoKVxuXG4gICBSZXR1cm4gYSBjYXNlZm9sZGVkIGNvcHkgb2YgdGhlIHN0cmluZy4gQ2FzZWZvbGRlZCBzdHJpbmdzIG1heSBiZVxuICAgdXNlZCBmb3IgY2FzZWxlc3MgbWF0Y2hpbmcuXG5cbiAgIENhc2Vmb2xkaW5nIGlzIHNpbWlsYXIgdG8gbG93ZXJjYXNpbmcgYnV0IG1vcmUgYWdncmVzc2l2ZSBiZWNhdXNlXG4gICBpdCBpcyBpbnRlbmRlZCB0byByZW1vdmUgYWxsIGNhc2UgZGlzdGluY3Rpb25zIGluIGEgc3RyaW5nLiBGb3JcbiAgIGV4YW1wbGUsIHRoZSBHZXJtYW4gbG93ZXJjYXNlIGxldHRlciBgYFwnXHhjM1x4OWZcJ2BgIGlzIGVxdWl2YWxlbnQgdG9cbiAgIGBgInNzImBgLiBTaW5jZSBpdCBpcyBhbHJlYWR5IGxvd2VyY2FzZSwgYGBsb3dlcigpYGAgd291bGQgZG9cbiAgIG5vdGhpbmcgdG8gYGBcJ1x4YzNceDlmXCdgYDsgYGBjYXNlZm9sZCgpYGAgY29udmVydHMgaXQgdG8gYGAic3MiYGAuXG5cbiAgIFRoZSBjYXNlZm9sZGluZyBhbGdvcml0aG0gaXMgZGVzY3JpYmVkIGluIHNlY3Rpb24gMy4xMyBvZiB0aGVcbiAgIFVuaWNvZGUgU3RhbmRhcmQuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMy5cblxuc3RyLmNlbnRlcih3aWR0aFssIGZpbGxjaGFyXSlcblxuICAgUmV0dXJuIGNlbnRlcmVkIGluIGEgc3RyaW5nIG9mIGxlbmd0aCAqd2lkdGgqLiBQYWRkaW5nIGlzIGRvbmVcbiAgIHVzaW5nIHRoZSBzcGVjaWZpZWQgKmZpbGxjaGFyKiAoZGVmYXVsdCBpcyBhIHNwYWNlKS5cblxuc3RyLmNvdW50KHN1YlssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIFJldHVybiB0aGUgbnVtYmVyIG9mIG5vbi1vdmVybGFwcGluZyBvY2N1cnJlbmNlcyBvZiBzdWJzdHJpbmcgKnN1YipcbiAgIGluIHRoZSByYW5nZSBbKnN0YXJ0KiwgKmVuZCpdLiAgT3B0aW9uYWwgYXJndW1lbnRzICpzdGFydCogYW5kXG4gICAqZW5kKiBhcmUgaW50ZXJwcmV0ZWQgYXMgaW4gc2xpY2Ugbm90YXRpb24uXG5cbnN0ci5lbmNvZGUoZW5jb2Rpbmc9InV0Zi04IiwgZXJyb3JzPSJzdHJpY3QiKVxuXG4gICBSZXR1cm4gYW4gZW5jb2RlZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcgYXMgYSBieXRlcyBvYmplY3QuIERlZmF1bHRcbiAgIGVuY29kaW5nIGlzIGBgXCd1dGYtOFwnYGAuICplcnJvcnMqIG1heSBiZSBnaXZlbiB0byBzZXQgYSBkaWZmZXJlbnRcbiAgIGVycm9yIGhhbmRsaW5nIHNjaGVtZS4gVGhlIGRlZmF1bHQgZm9yICplcnJvcnMqIGlzIGBgXCdzdHJpY3RcJ2BgLFxuICAgbWVhbmluZyB0aGF0IGVuY29kaW5nIGVycm9ycyByYWlzZSBhIGBgVW5pY29kZUVycm9yYGAuIE90aGVyXG4gICBwb3NzaWJsZSB2YWx1ZXMgYXJlIGBgXCdpZ25vcmVcJ2BgLCBgYFwncmVwbGFjZVwnYGAsXG4gICBgYFwneG1sY2hhcnJlZnJlcGxhY2VcJ2BgLCBgYFwnYmFja3NsYXNocmVwbGFjZVwnYGAgYW5kIGFueSBvdGhlciBuYW1lXG4gICByZWdpc3RlcmVkIHZpYSBgYGNvZGVjcy5yZWdpc3Rlcl9lcnJvcigpYGAsIHNlZSBzZWN0aW9uICpDb2RlYyBCYXNlXG4gICBDbGFzc2VzKi4gRm9yIGEgbGlzdCBvZiBwb3NzaWJsZSBlbmNvZGluZ3MsIHNlZSBzZWN0aW9uICpTdGFuZGFyZFxuICAgRW5jb2RpbmdzKi5cblxuICAgQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMTogU3VwcG9ydCBmb3Iga2V5d29yZCBhcmd1bWVudHMgYWRkZWQuXG5cbnN0ci5lbmRzd2l0aChzdWZmaXhbLCBzdGFydFssIGVuZF1dKVxuXG4gICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhlIHN0cmluZyBlbmRzIHdpdGggdGhlIHNwZWNpZmllZCAqc3VmZml4KixcbiAgIG90aGVyd2lzZSByZXR1cm4gYGBGYWxzZWBgLiAgKnN1ZmZpeCogY2FuIGFsc28gYmUgYSB0dXBsZSBvZlxuICAgc3VmZml4ZXMgdG8gbG9vayBmb3IuICBXaXRoIG9wdGlvbmFsICpzdGFydCosIHRlc3QgYmVnaW5uaW5nIGF0XG4gICB0aGF0IHBvc2l0aW9uLiAgV2l0aCBvcHRpb25hbCAqZW5kKiwgc3RvcCBjb21wYXJpbmcgYXQgdGhhdFxuICAgcG9zaXRpb24uXG5cbnN0ci5leHBhbmR0YWJzKFt0YWJzaXplXSlcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdoZXJlIGFsbCB0YWIgY2hhcmFjdGVycyBhcmUgcmVwbGFjZWRcbiAgIGJ5IHplcm8gb3IgbW9yZSBzcGFjZXMsIGRlcGVuZGluZyBvbiB0aGUgY3VycmVudCBjb2x1bW4gYW5kIHRoZVxuICAgZ2l2ZW4gdGFiIHNpemUuICBUaGUgY29sdW1uIG51bWJlciBpcyByZXNldCB0byB6ZXJvIGFmdGVyIGVhY2hcbiAgIG5ld2xpbmUgb2NjdXJyaW5nIGluIHRoZSBzdHJpbmcuIElmICp0YWJzaXplKiBpcyBub3QgZ2l2ZW4sIGEgdGFiXG4gICBzaXplIG9mIGBgOGBgIGNoYXJhY3RlcnMgaXMgYXNzdW1lZC4gIFRoaXMgZG9lc25cJ3QgdW5kZXJzdGFuZCBvdGhlclxuICAgbm9uLXByaW50aW5nIGNoYXJhY3RlcnMgb3IgZXNjYXBlIHNlcXVlbmNlcy5cblxuc3RyLmZpbmQoc3ViWywgc3RhcnRbLCBlbmRdXSlcblxuICAgUmV0dXJuIHRoZSBsb3dlc3QgaW5kZXggaW4gdGhlIHN0cmluZyB3aGVyZSBzdWJzdHJpbmcgKnN1YiogaXNcbiAgIGZvdW5kLCBzdWNoIHRoYXQgKnN1YiogaXMgY29udGFpbmVkIGluIHRoZSBzbGljZSBgYHNbc3RhcnQ6ZW5kXWBgLlxuICAgT3B0aW9uYWwgYXJndW1lbnRzICpzdGFydCogYW5kICplbmQqIGFyZSBpbnRlcnByZXRlZCBhcyBpbiBzbGljZVxuICAgbm90YXRpb24uICBSZXR1cm4gYGAtMWBgIGlmICpzdWIqIGlzIG5vdCBmb3VuZC5cblxuICAgTm90ZTogVGhlIGBgZmluZCgpYGAgbWV0aG9kIHNob3VsZCBiZSB1c2VkIG9ubHkgaWYgeW91IG5lZWQgdG8ga25vdyB0aGVcbiAgICAgcG9zaXRpb24gb2YgKnN1YiouICBUbyBjaGVjayBpZiAqc3ViKiBpcyBhIHN1YnN0cmluZyBvciBub3QsIHVzZVxuICAgICB0aGUgYGBpbmBgIG9wZXJhdG9yOlxuXG4gICAgICAgID4+PiBcJ1B5XCcgaW4gXCdQeXRob25cJ1xuICAgICAgICBUcnVlXG5cbnN0ci5mb3JtYXQoKmFyZ3MsICoqa3dhcmdzKVxuXG4gICBQZXJmb3JtIGEgc3RyaW5nIGZvcm1hdHRpbmcgb3BlcmF0aW9uLiAgVGhlIHN0cmluZyBvbiB3aGljaCB0aGlzXG4gICBtZXRob2QgaXMgY2FsbGVkIGNhbiBjb250YWluIGxpdGVyYWwgdGV4dCBvciByZXBsYWNlbWVudCBmaWVsZHNcbiAgIGRlbGltaXRlZCBieSBicmFjZXMgYGB7fWBgLiAgRWFjaCByZXBsYWNlbWVudCBmaWVsZCBjb250YWlucyBlaXRoZXJcbiAgIHRoZSBudW1lcmljIGluZGV4IG9mIGEgcG9zaXRpb25hbCBhcmd1bWVudCwgb3IgdGhlIG5hbWUgb2YgYVxuICAga2V5d29yZCBhcmd1bWVudC4gIFJldHVybnMgYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2hlcmUgZWFjaFxuICAgcmVwbGFjZW1lbnQgZmllbGQgaXMgcmVwbGFjZWQgd2l0aCB0aGUgc3RyaW5nIHZhbHVlIG9mIHRoZVxuICAgY29ycmVzcG9uZGluZyBhcmd1bWVudC5cblxuICAgPj4+ICJUaGUgc3VtIG9mIDEgKyAyIGlzIHswfSIuZm9ybWF0KDErMilcbiAgIFwnVGhlIHN1bSBvZiAxICsgMiBpcyAzXCdcblxuICAgU2VlICpGb3JtYXQgU3RyaW5nIFN5bnRheCogZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIHZhcmlvdXNcbiAgIGZvcm1hdHRpbmcgb3B0aW9ucyB0aGF0IGNhbiBiZSBzcGVjaWZpZWQgaW4gZm9ybWF0IHN0cmluZ3MuXG5cbnN0ci5mb3JtYXRfbWFwKG1hcHBpbmcpXG5cbiAgIFNpbWlsYXIgdG8gYGBzdHIuZm9ybWF0KCoqbWFwcGluZylgYCwgZXhjZXB0IHRoYXQgYGBtYXBwaW5nYGAgaXNcbiAgIHVzZWQgZGlyZWN0bHkgYW5kIG5vdCBjb3BpZWQgdG8gYSBgYGRpY3RgYCAuICBUaGlzIGlzIHVzZWZ1bCBpZiBmb3JcbiAgIGV4YW1wbGUgYGBtYXBwaW5nYGAgaXMgYSBkaWN0IHN1YmNsYXNzOlxuXG4gICA+Pj4gY2xhc3MgRGVmYXVsdChkaWN0KTpcbiAgIC4uLiAgICAgZGVmIF9fbWlzc2luZ19fKHNlbGYsIGtleSk6XG4gICAuLi4gICAgICAgICByZXR1cm4ga2V5XG4gICAuLi5cbiAgID4+PiBcJ3tuYW1lfSB3YXMgYm9ybiBpbiB7Y291bnRyeX1cJy5mb3JtYXRfbWFwKERlZmF1bHQobmFtZT1cJ0d1aWRvXCcpKVxuICAgXCdHdWlkbyB3YXMgYm9ybiBpbiBjb3VudHJ5XCdcblxuICAgTmV3IGluIHZlcnNpb24gMy4yLlxuXG5zdHIuaW5kZXgoc3ViWywgc3RhcnRbLCBlbmRdXSlcblxuICAgTGlrZSBgYGZpbmQoKWBgLCBidXQgcmFpc2UgYGBWYWx1ZUVycm9yYGAgd2hlbiB0aGUgc3Vic3RyaW5nIGlzIG5vdFxuICAgZm91bmQuXG5cbnN0ci5pc2FsbnVtKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZyBhcmUgYWxwaGFudW1lcmljIGFuZFxuICAgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiAgQSBjaGFyYWN0ZXJcbiAgIGBgY2BgIGlzIGFscGhhbnVtZXJpYyBpZiBvbmUgb2YgdGhlIGZvbGxvd2luZyByZXR1cm5zIGBgVHJ1ZWBgOlxuICAgYGBjLmlzYWxwaGEoKWBgLCBgYGMuaXNkZWNpbWFsKClgYCwgYGBjLmlzZGlnaXQoKWBgLCBvclxuICAgYGBjLmlzbnVtZXJpYygpYGAuXG5cbnN0ci5pc2FscGhhKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZyBhcmUgYWxwaGFiZXRpYyBhbmRcbiAgIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIsIGZhbHNlIG90aGVyd2lzZS4gIEFscGhhYmV0aWNcbiAgIGNoYXJhY3RlcnMgYXJlIHRob3NlIGNoYXJhY3RlcnMgZGVmaW5lZCBpbiB0aGUgVW5pY29kZSBjaGFyYWN0ZXJcbiAgIGRhdGFiYXNlIGFzICJMZXR0ZXIiLCBpLmUuLCB0aG9zZSB3aXRoIGdlbmVyYWwgY2F0ZWdvcnkgcHJvcGVydHlcbiAgIGJlaW5nIG9uZSBvZiAiTG0iLCAiTHQiLCAiTHUiLCAiTGwiLCBvciAiTG8iLiAgTm90ZSB0aGF0IHRoaXMgaXNcbiAgIGRpZmZlcmVudCBmcm9tIHRoZSAiQWxwaGFiZXRpYyIgcHJvcGVydHkgZGVmaW5lZCBpbiB0aGUgVW5pY29kZVxuICAgU3RhbmRhcmQuXG5cbnN0ci5pc2RlY2ltYWwoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIGFyZSBkZWNpbWFsIGNoYXJhY3RlcnNcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuIERlY2ltYWxcbiAgIGNoYXJhY3RlcnMgYXJlIHRob3NlIGZyb20gZ2VuZXJhbCBjYXRlZ29yeSAiTmQiLiBUaGlzIGNhdGVnb3J5XG4gICBpbmNsdWRlcyBkaWdpdCBjaGFyYWN0ZXJzLCBhbmQgYWxsIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgdXNlZCB0b1xuICAgZm9ybSBkZWNpbWFsLXJhZGl4IG51bWJlcnMsIGUuZy4gVSswNjYwLCBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTy5cblxuc3RyLmlzZGlnaXQoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIGFyZSBkaWdpdHMgYW5kIHRoZXJlIGlzXG4gICBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuICBEaWdpdHMgaW5jbHVkZSBkZWNpbWFsXG4gICBjaGFyYWN0ZXJzIGFuZCBkaWdpdHMgdGhhdCBuZWVkIHNwZWNpYWwgaGFuZGxpbmcsIHN1Y2ggYXMgdGhlXG4gICBjb21wYXRpYmlsaXR5IHN1cGVyc2NyaXB0IGRpZ2l0cy4gIEZvcm1hbGx5LCBhIGRpZ2l0IGlzIGEgY2hhcmFjdGVyXG4gICB0aGF0IGhhcyB0aGUgcHJvcGVydHkgdmFsdWUgTnVtZXJpY19UeXBlPURpZ2l0IG9yXG4gICBOdW1lcmljX1R5cGU9RGVjaW1hbC5cblxuc3RyLmlzaWRlbnRpZmllcigpXG5cbiAgIFJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBpZGVudGlmaWVyIGFjY29yZGluZyB0byB0aGVcbiAgIGxhbmd1YWdlIGRlZmluaXRpb24sIHNlY3Rpb24gKklkZW50aWZpZXJzIGFuZCBrZXl3b3JkcyouXG5cbnN0ci5pc2xvd2VyKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNhc2VkIGNoYXJhY3RlcnMgWzRdIGluIHRoZSBzdHJpbmcgYXJlIGxvd2VyY2FzZVxuICAgYW5kIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjYXNlZCBjaGFyYWN0ZXIsIGZhbHNlIG90aGVyd2lzZS5cblxuc3RyLmlzbnVtZXJpYygpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcgYXJlIG51bWVyaWMgY2hhcmFjdGVycyxcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuIE51bWVyaWNcbiAgIGNoYXJhY3RlcnMgaW5jbHVkZSBkaWdpdCBjaGFyYWN0ZXJzLCBhbmQgYWxsIGNoYXJhY3RlcnMgdGhhdCBoYXZlXG4gICB0aGUgVW5pY29kZSBudW1lcmljIHZhbHVlIHByb3BlcnR5LCBlLmcuIFUrMjE1NSwgVlVMR0FSIEZSQUNUSU9OXG4gICBPTkUgRklGVEguICBGb3JtYWxseSwgbnVtZXJpYyBjaGFyYWN0ZXJzIGFyZSB0aG9zZSB3aXRoIHRoZVxuICAgcHJvcGVydHkgdmFsdWUgTnVtZXJpY19UeXBlPURpZ2l0LCBOdW1lcmljX1R5cGU9RGVjaW1hbCBvclxuICAgTnVtZXJpY19UeXBlPU51bWVyaWMuXG5cbnN0ci5pc3ByaW50YWJsZSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcgYXJlIHByaW50YWJsZSBvciB0aGVcbiAgIHN0cmluZyBpcyBlbXB0eSwgZmFsc2Ugb3RoZXJ3aXNlLiAgTm9ucHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlXG4gICB0aG9zZSBjaGFyYWN0ZXJzIGRlZmluZWQgaW4gdGhlIFVuaWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlIGFzXG4gICAiT3RoZXIiIG9yICJTZXBhcmF0b3IiLCBleGNlcHRpbmcgdGhlIEFTQ0lJIHNwYWNlICgweDIwKSB3aGljaCBpc1xuICAgY29uc2lkZXJlZCBwcmludGFibGUuICAoTm90ZSB0aGF0IHByaW50YWJsZSBjaGFyYWN0ZXJzIGluIHRoaXNcbiAgIGNvbnRleHQgYXJlIHRob3NlIHdoaWNoIHNob3VsZCBub3QgYmUgZXNjYXBlZCB3aGVuIGBgcmVwcigpYGAgaXNcbiAgIGludm9rZWQgb24gYSBzdHJpbmcuICBJdCBoYXMgbm8gYmVhcmluZyBvbiB0aGUgaGFuZGxpbmcgb2Ygc3RyaW5nc1xuICAgd3JpdHRlbiB0byBgYHN5cy5zdGRvdXRgYCBvciBgYHN5cy5zdGRlcnJgYC4pXG5cbnN0ci5pc3NwYWNlKClcblxuICAgUmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIG9ubHkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmdcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuICBXaGl0ZXNwYWNlXG4gICBjaGFyYWN0ZXJzICBhcmUgdGhvc2UgY2hhcmFjdGVycyBkZWZpbmVkIGluIHRoZSBVbmljb2RlIGNoYXJhY3RlclxuICAgZGF0YWJhc2UgYXMgIk90aGVyIiBvciAiU2VwYXJhdG9yIiBhbmQgdGhvc2Ugd2l0aCBiaWRpcmVjdGlvbmFsXG4gICBwcm9wZXJ0eSBiZWluZyBvbmUgb2YgIldTIiwgIkIiLCBvciAiUyIuXG5cbnN0ci5pc3RpdGxlKClcblxuICAgUmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZyBpcyBhIHRpdGxlY2FzZWQgc3RyaW5nIGFuZCB0aGVyZSBpcyBhdFxuICAgbGVhc3Qgb25lIGNoYXJhY3RlciwgZm9yIGV4YW1wbGUgdXBwZXJjYXNlIGNoYXJhY3RlcnMgbWF5IG9ubHlcbiAgIGZvbGxvdyB1bmNhc2VkIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIG9ubHkgY2FzZWQgb25lcy5cbiAgIFJldHVybiBmYWxzZSBvdGhlcndpc2UuXG5cbnN0ci5pc3VwcGVyKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNhc2VkIGNoYXJhY3RlcnMgWzRdIGluIHRoZSBzdHJpbmcgYXJlIHVwcGVyY2FzZVxuICAgYW5kIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjYXNlZCBjaGFyYWN0ZXIsIGZhbHNlIG90aGVyd2lzZS5cblxuc3RyLmpvaW4oaXRlcmFibGUpXG5cbiAgIFJldHVybiBhIHN0cmluZyB3aGljaCBpcyB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5ncyBpbiB0aGVcbiAgICppdGVyYWJsZSogKml0ZXJhYmxlKi4gIEEgYGBUeXBlRXJyb3JgYCB3aWxsIGJlIHJhaXNlZCBpZiB0aGVyZSBhcmVcbiAgIGFueSBub24tc3RyaW5nIHZhbHVlcyBpbiAqaXRlcmFibGUqLCBpbmNsdWRpbmcgYGBieXRlc2BgIG9iamVjdHMuXG4gICBUaGUgc2VwYXJhdG9yIGJldHdlZW4gZWxlbWVudHMgaXMgdGhlIHN0cmluZyBwcm92aWRpbmcgdGhpcyBtZXRob2QuXG5cbnN0ci5sanVzdCh3aWR0aFssIGZpbGxjaGFyXSlcblxuICAgUmV0dXJuIHRoZSBzdHJpbmcgbGVmdCBqdXN0aWZpZWQgaW4gYSBzdHJpbmcgb2YgbGVuZ3RoICp3aWR0aCouXG4gICBQYWRkaW5nIGlzIGRvbmUgdXNpbmcgdGhlIHNwZWNpZmllZCAqZmlsbGNoYXIqIChkZWZhdWx0IGlzIGFcbiAgIHNwYWNlKS4gIFRoZSBvcmlnaW5hbCBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgKndpZHRoKiBpcyBsZXNzIHRoYW4gb3JcbiAgIGVxdWFsIHRvIGBgbGVuKHMpYGAuXG5cbnN0ci5sb3dlcigpXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aXRoIGFsbCB0aGUgY2FzZWQgY2hhcmFjdGVycyBbNF1cbiAgIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UuXG5cbiAgIFRoZSBsb3dlcmNhc2luZyBhbGdvcml0aG0gdXNlZCBpcyBkZXNjcmliZWQgaW4gc2VjdGlvbiAzLjEzIG9mIHRoZVxuICAgVW5pY29kZSBTdGFuZGFyZC5cblxuc3RyLmxzdHJpcChbY2hhcnNdKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCBsZWFkaW5nIGNoYXJhY3RlcnMgcmVtb3ZlZC4gIFRoZVxuICAgKmNoYXJzKiBhcmd1bWVudCBpcyBhIHN0cmluZyBzcGVjaWZ5aW5nIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB0byBiZVxuICAgcmVtb3ZlZC4gIElmIG9taXR0ZWQgb3IgYGBOb25lYGAsIHRoZSAqY2hhcnMqIGFyZ3VtZW50IGRlZmF1bHRzIHRvXG4gICByZW1vdmluZyB3aGl0ZXNwYWNlLiAgVGhlICpjaGFycyogYXJndW1lbnQgaXMgbm90IGEgcHJlZml4OyByYXRoZXIsXG4gICBhbGwgY29tYmluYXRpb25zIG9mIGl0cyB2YWx1ZXMgYXJlIHN0cmlwcGVkOlxuXG4gICA+Pj4gXCcgICBzcGFjaW91cyAgIFwnLmxzdHJpcCgpXG4gICBcJ3NwYWNpb3VzICAgXCdcbiAgID4+PiBcJ3d3dy5leGFtcGxlLmNvbVwnLmxzdHJpcChcJ2Ntb3d6LlwnKVxuICAgXCdleGFtcGxlLmNvbVwnXG5cbnN0YXRpYyBzdHIubWFrZXRyYW5zKHhbLCB5Wywgel1dKVxuXG4gICBUaGlzIHN0YXRpYyBtZXRob2QgcmV0dXJucyBhIHRyYW5zbGF0aW9uIHRhYmxlIHVzYWJsZSBmb3JcbiAgIGBgc3RyLnRyYW5zbGF0ZSgpYGAuXG5cbiAgIElmIHRoZXJlIGlzIG9ubHkgb25lIGFyZ3VtZW50LCBpdCBtdXN0IGJlIGEgZGljdGlvbmFyeSBtYXBwaW5nXG4gICBVbmljb2RlIG9yZGluYWxzIChpbnRlZ2Vycykgb3IgY2hhcmFjdGVycyAoc3RyaW5ncyBvZiBsZW5ndGggMSkgdG9cbiAgIFVuaWNvZGUgb3JkaW5hbHMsIHN0cmluZ3MgKG9mIGFyYml0cmFyeSBsZW5ndGhzKSBvciBOb25lLlxuICAgQ2hhcmFjdGVyIGtleXMgd2lsbCB0aGVuIGJlIGNvbnZlcnRlZCB0byBvcmRpbmFscy5cblxuICAgSWYgdGhlcmUgYXJlIHR3byBhcmd1bWVudHMsIHRoZXkgbXVzdCBiZSBzdHJpbmdzIG9mIGVxdWFsIGxlbmd0aCxcbiAgIGFuZCBpbiB0aGUgcmVzdWx0aW5nIGRpY3Rpb25hcnksIGVhY2ggY2hhcmFjdGVyIGluIHggd2lsbCBiZSBtYXBwZWRcbiAgIHRvIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNhbWUgcG9zaXRpb24gaW4geS4gIElmIHRoZXJlIGlzIGEgdGhpcmRcbiAgIGFyZ3VtZW50LCBpdCBtdXN0IGJlIGEgc3RyaW5nLCB3aG9zZSBjaGFyYWN0ZXJzIHdpbGwgYmUgbWFwcGVkIHRvXG4gICBOb25lIGluIHRoZSByZXN1bHQuXG5cbnN0ci5wYXJ0aXRpb24oc2VwKVxuXG4gICBTcGxpdCB0aGUgc3RyaW5nIGF0IHRoZSBmaXJzdCBvY2N1cnJlbmNlIG9mICpzZXAqLCBhbmQgcmV0dXJuIGFcbiAgIDMtdHVwbGUgY29udGFpbmluZyB0aGUgcGFydCBiZWZvcmUgdGhlIHNlcGFyYXRvciwgdGhlIHNlcGFyYXRvclxuICAgaXRzZWxmLCBhbmQgdGhlIHBhcnQgYWZ0ZXIgdGhlIHNlcGFyYXRvci4gIElmIHRoZSBzZXBhcmF0b3IgaXMgbm90XG4gICBmb3VuZCwgcmV0dXJuIGEgMy10dXBsZSBjb250YWluaW5nIHRoZSBzdHJpbmcgaXRzZWxmLCBmb2xsb3dlZCBieVxuICAgdHdvIGVtcHR5IHN0cmluZ3MuXG5cbnN0ci5yZXBsYWNlKG9sZCwgbmV3WywgY291bnRdKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCBhbGwgb2NjdXJyZW5jZXMgb2Ygc3Vic3RyaW5nICpvbGQqXG4gICByZXBsYWNlZCBieSAqbmV3Ki4gIElmIHRoZSBvcHRpb25hbCBhcmd1bWVudCAqY291bnQqIGlzIGdpdmVuLCBvbmx5XG4gICB0aGUgZmlyc3QgKmNvdW50KiBvY2N1cnJlbmNlcyBhcmUgcmVwbGFjZWQuXG5cbnN0ci5yZmluZChzdWJbLCBzdGFydFssIGVuZF1dKVxuXG4gICBSZXR1cm4gdGhlIGhpZ2hlc3QgaW5kZXggaW4gdGhlIHN0cmluZyB3aGVyZSBzdWJzdHJpbmcgKnN1YiogaXNcbiAgIGZvdW5kLCBzdWNoIHRoYXQgKnN1YiogaXMgY29udGFpbmVkIHdpdGhpbiBgYHNbc3RhcnQ6ZW5kXWBgLlxuICAgT3B0aW9uYWwgYXJndW1lbnRzICpzdGFydCogYW5kICplbmQqIGFyZSBpbnRlcnByZXRlZCBhcyBpbiBzbGljZVxuICAgbm90YXRpb24uICBSZXR1cm4gYGAtMWBgIG9uIGZhaWx1cmUuXG5cbnN0ci5yaW5kZXgoc3ViWywgc3RhcnRbLCBlbmRdXSlcblxuICAgTGlrZSBgYHJmaW5kKClgYCBidXQgcmFpc2VzIGBgVmFsdWVFcnJvcmBgIHdoZW4gdGhlIHN1YnN0cmluZyAqc3ViKlxuICAgaXMgbm90IGZvdW5kLlxuXG5zdHIucmp1c3Qod2lkdGhbLCBmaWxsY2hhcl0pXG5cbiAgIFJldHVybiB0aGUgc3RyaW5nIHJpZ2h0IGp1c3RpZmllZCBpbiBhIHN0cmluZyBvZiBsZW5ndGggKndpZHRoKi5cbiAgIFBhZGRpbmcgaXMgZG9uZSB1c2luZyB0aGUgc3BlY2lmaWVkICpmaWxsY2hhciogKGRlZmF1bHQgaXMgYVxuICAgc3BhY2UpLiBUaGUgb3JpZ2luYWwgc3RyaW5nIGlzIHJldHVybmVkIGlmICp3aWR0aCogaXMgbGVzcyB0aGFuIG9yXG4gICBlcXVhbCB0byBgYGxlbihzKWBgLlxuXG5zdHIucnBhcnRpdGlvbihzZXApXG5cbiAgIFNwbGl0IHRoZSBzdHJpbmcgYXQgdGhlIGxhc3Qgb2NjdXJyZW5jZSBvZiAqc2VwKiwgYW5kIHJldHVybiBhXG4gICAzLXR1cGxlIGNvbnRhaW5pbmcgdGhlIHBhcnQgYmVmb3JlIHRoZSBzZXBhcmF0b3IsIHRoZSBzZXBhcmF0b3JcbiAgIGl0c2VsZiwgYW5kIHRoZSBwYXJ0IGFmdGVyIHRoZSBzZXBhcmF0b3IuICBJZiB0aGUgc2VwYXJhdG9yIGlzIG5vdFxuICAgZm91bmQsIHJldHVybiBhIDMtdHVwbGUgY29udGFpbmluZyB0d28gZW1wdHkgc3RyaW5ncywgZm9sbG93ZWQgYnlcbiAgIHRoZSBzdHJpbmcgaXRzZWxmLlxuXG5zdHIucnNwbGl0KHNlcD1Ob25lLCBtYXhzcGxpdD0tMSlcblxuICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgd29yZHMgaW4gdGhlIHN0cmluZywgdXNpbmcgKnNlcCogYXMgdGhlXG4gICBkZWxpbWl0ZXIgc3RyaW5nLiBJZiAqbWF4c3BsaXQqIGlzIGdpdmVuLCBhdCBtb3N0ICptYXhzcGxpdCogc3BsaXRzXG4gICBhcmUgZG9uZSwgdGhlICpyaWdodG1vc3QqIG9uZXMuICBJZiAqc2VwKiBpcyBub3Qgc3BlY2lmaWVkIG9yXG4gICBgYE5vbmVgYCwgYW55IHdoaXRlc3BhY2Ugc3RyaW5nIGlzIGEgc2VwYXJhdG9yLiAgRXhjZXB0IGZvclxuICAgc3BsaXR0aW5nIGZyb20gdGhlIHJpZ2h0LCBgYHJzcGxpdCgpYGAgYmVoYXZlcyBsaWtlIGBgc3BsaXQoKWBgXG4gICB3aGljaCBpcyBkZXNjcmliZWQgaW4gZGV0YWlsIGJlbG93LlxuXG5zdHIucnN0cmlwKFtjaGFyc10pXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aXRoIHRyYWlsaW5nIGNoYXJhY3RlcnMgcmVtb3ZlZC4gIFRoZVxuICAgKmNoYXJzKiBhcmd1bWVudCBpcyBhIHN0cmluZyBzcGVjaWZ5aW5nIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB0byBiZVxuICAgcmVtb3ZlZC4gIElmIG9taXR0ZWQgb3IgYGBOb25lYGAsIHRoZSAqY2hhcnMqIGFyZ3VtZW50IGRlZmF1bHRzIHRvXG4gICByZW1vdmluZyB3aGl0ZXNwYWNlLiAgVGhlICpjaGFycyogYXJndW1lbnQgaXMgbm90IGEgc3VmZml4OyByYXRoZXIsXG4gICBhbGwgY29tYmluYXRpb25zIG9mIGl0cyB2YWx1ZXMgYXJlIHN0cmlwcGVkOlxuXG4gICA+Pj4gXCcgICBzcGFjaW91cyAgIFwnLnJzdHJpcCgpXG4gICBcJyAgIHNwYWNpb3VzXCdcbiAgID4+PiBcJ21pc3Npc3NpcHBpXCcucnN0cmlwKFwnaXB6XCcpXG4gICBcJ21pc3Npc3NcJ1xuXG5zdHIuc3BsaXQoc2VwPU5vbmUsIG1heHNwbGl0PS0xKVxuXG4gICBSZXR1cm4gYSBsaXN0IG9mIHRoZSB3b3JkcyBpbiB0aGUgc3RyaW5nLCB1c2luZyAqc2VwKiBhcyB0aGVcbiAgIGRlbGltaXRlciBzdHJpbmcuICBJZiAqbWF4c3BsaXQqIGlzIGdpdmVuLCBhdCBtb3N0ICptYXhzcGxpdCpcbiAgIHNwbGl0cyBhcmUgZG9uZSAodGh1cywgdGhlIGxpc3Qgd2lsbCBoYXZlIGF0IG1vc3QgYGBtYXhzcGxpdCsxYGBcbiAgIGVsZW1lbnRzKS4gIElmICptYXhzcGxpdCogaXMgbm90IHNwZWNpZmllZCBvciBgYC0xYGAsIHRoZW4gdGhlcmUgaXNcbiAgIG5vIGxpbWl0IG9uIHRoZSBudW1iZXIgb2Ygc3BsaXRzIChhbGwgcG9zc2libGUgc3BsaXRzIGFyZSBtYWRlKS5cblxuICAgSWYgKnNlcCogaXMgZ2l2ZW4sIGNvbnNlY3V0aXZlIGRlbGltaXRlcnMgYXJlIG5vdCBncm91cGVkIHRvZ2V0aGVyXG4gICBhbmQgYXJlIGRlZW1lZCB0byBkZWxpbWl0IGVtcHR5IHN0cmluZ3MgKGZvciBleGFtcGxlLFxuICAgYGBcJzEsLDJcJy5zcGxpdChcJyxcJylgYCByZXR1cm5zIGBgW1wnMVwnLCBcJ1wnLCBcJzJcJ11gYCkuICBUaGUgKnNlcCpcbiAgIGFyZ3VtZW50IG1heSBjb25zaXN0IG9mIG11bHRpcGxlIGNoYXJhY3RlcnMgKGZvciBleGFtcGxlLFxuICAgYGBcJzE8PjI8PjNcJy5zcGxpdChcJzw+XCcpYGAgcmV0dXJucyBgYFtcJzFcJywgXCcyXCcsIFwnM1wnXWBgKS4gU3BsaXR0aW5nXG4gICBhbiBlbXB0eSBzdHJpbmcgd2l0aCBhIHNwZWNpZmllZCBzZXBhcmF0b3IgcmV0dXJucyBgYFtcJ1wnXWBgLlxuXG4gICBJZiAqc2VwKiBpcyBub3Qgc3BlY2lmaWVkIG9yIGlzIGBgTm9uZWBgLCBhIGRpZmZlcmVudCBzcGxpdHRpbmdcbiAgIGFsZ29yaXRobSBpcyBhcHBsaWVkOiBydW5zIG9mIGNvbnNlY3V0aXZlIHdoaXRlc3BhY2UgYXJlIHJlZ2FyZGVkXG4gICBhcyBhIHNpbmdsZSBzZXBhcmF0b3IsIGFuZCB0aGUgcmVzdWx0IHdpbGwgY29udGFpbiBubyBlbXB0eSBzdHJpbmdzXG4gICBhdCB0aGUgc3RhcnQgb3IgZW5kIGlmIHRoZSBzdHJpbmcgaGFzIGxlYWRpbmcgb3IgdHJhaWxpbmdcbiAgIHdoaXRlc3BhY2UuICBDb25zZXF1ZW50bHksIHNwbGl0dGluZyBhbiBlbXB0eSBzdHJpbmcgb3IgYSBzdHJpbmdcbiAgIGNvbnNpc3Rpbmcgb2YganVzdCB3aGl0ZXNwYWNlIHdpdGggYSBgYE5vbmVgYCBzZXBhcmF0b3IgcmV0dXJuc1xuICAgYGBbXWBgLlxuXG4gICBGb3IgZXhhbXBsZSwgYGBcJyAxICAyICAgMyAgXCcuc3BsaXQoKWBgIHJldHVybnMgYGBbXCcxXCcsIFwnMlwnLCBcJzNcJ11gYCxcbiAgIGFuZCBgYFwnICAxICAyICAgMyAgXCcuc3BsaXQoTm9uZSwgMSlgYCByZXR1cm5zIGBgW1wnMVwnLCBcJzIgICAzICBcJ11gYC5cblxuc3RyLnNwbGl0bGluZXMoW2tlZXBlbmRzXSlcblxuICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgbGluZXMgaW4gdGhlIHN0cmluZywgYnJlYWtpbmcgYXQgbGluZVxuICAgYm91bmRhcmllcy4gIExpbmUgYnJlYWtzIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBsaXN0XG4gICB1bmxlc3MgKmtlZXBlbmRzKiBpcyBnaXZlbiBhbmQgdHJ1ZS4gVGhpcyBtZXRob2QgdXNlcyB0aGUgdW5pdmVyc2FsXG4gICBuZXdsaW5lcyBhcHByb2FjaCB0byBzcGxpdHRpbmcgbGluZXMuIFVubGlrZSBgYHNwbGl0KClgYCwgaWYgdGhlXG4gICBzdHJpbmcgZW5kcyB3aXRoIGxpbmUgYm91bmRhcnkgY2hhcmFjdGVycyB0aGUgcmV0dXJuZWQgbGlzdCBkb2VzXG4gICBgYG5vdGBgIGhhdmUgYW4gZW1wdHkgbGFzdCBlbGVtZW50LlxuXG4gICBGb3IgZXhhbXBsZSwgYGBcJ2FiIGNcXG5cXG5kZSBmZ1xccmtsXFxyXFxuXCcuc3BsaXRsaW5lcygpYGAgcmV0dXJuc1xuICAgYGBbXCdhYiBjXCcsIFwnXCcsIFwnZGUgZmdcJywgXCdrbFwnXWBgLCB3aGlsZSB0aGUgc2FtZSBjYWxsIHdpdGhcbiAgIGBgc3BsaXRsaW5lcyhUcnVlKWBgIHJldHVybnMgYGBbXCdhYiBjXFxuXCcsIFwnXFxuLCBcJ2RlIGZnXFxyXCcsXG4gICBcJ2tsXFxyXFxuXCddYGAuXG5cbnN0ci5zdGFydHN3aXRoKHByZWZpeFssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIFJldHVybiBgYFRydWVgYCBpZiBzdHJpbmcgc3RhcnRzIHdpdGggdGhlICpwcmVmaXgqLCBvdGhlcndpc2VcbiAgIHJldHVybiBgYEZhbHNlYGAuICpwcmVmaXgqIGNhbiBhbHNvIGJlIGEgdHVwbGUgb2YgcHJlZml4ZXMgdG8gbG9va1xuICAgZm9yLiAgV2l0aCBvcHRpb25hbCAqc3RhcnQqLCB0ZXN0IHN0cmluZyBiZWdpbm5pbmcgYXQgdGhhdFxuICAgcG9zaXRpb24uICBXaXRoIG9wdGlvbmFsICplbmQqLCBzdG9wIGNvbXBhcmluZyBzdHJpbmcgYXQgdGhhdFxuICAgcG9zaXRpb24uXG5cbnN0ci5zdHJpcChbY2hhcnNdKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmdcbiAgIGNoYXJhY3RlcnMgcmVtb3ZlZC4gVGhlICpjaGFycyogYXJndW1lbnQgaXMgYSBzdHJpbmcgc3BlY2lmeWluZyB0aGVcbiAgIHNldCBvZiBjaGFyYWN0ZXJzIHRvIGJlIHJlbW92ZWQuIElmIG9taXR0ZWQgb3IgYGBOb25lYGAsIHRoZVxuICAgKmNoYXJzKiBhcmd1bWVudCBkZWZhdWx0cyB0byByZW1vdmluZyB3aGl0ZXNwYWNlLiBUaGUgKmNoYXJzKlxuICAgYXJndW1lbnQgaXMgbm90IGEgcHJlZml4IG9yIHN1ZmZpeDsgcmF0aGVyLCBhbGwgY29tYmluYXRpb25zIG9mIGl0c1xuICAgdmFsdWVzIGFyZSBzdHJpcHBlZDpcblxuICAgPj4+IFwnICAgc3BhY2lvdXMgICBcJy5zdHJpcCgpXG4gICBcJ3NwYWNpb3VzXCdcbiAgID4+PiBcJ3d3dy5leGFtcGxlLmNvbVwnLnN0cmlwKFwnY21vd3ouXCcpXG4gICBcJ2V4YW1wbGVcJ1xuXG5zdHIuc3dhcGNhc2UoKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCB1cHBlcmNhc2UgY2hhcmFjdGVycyBjb252ZXJ0ZWQgdG9cbiAgIGxvd2VyY2FzZSBhbmQgdmljZSB2ZXJzYS4gTm90ZSB0aGF0IGl0IGlzIG5vdCBuZWNlc3NhcmlseSB0cnVlIHRoYXRcbiAgIGBgcy5zd2FwY2FzZSgpLnN3YXBjYXNlKCkgPT0gc2BgLlxuXG5zdHIudGl0bGUoKVxuXG4gICBSZXR1cm4gYSB0aXRsZWNhc2VkIHZlcnNpb24gb2YgdGhlIHN0cmluZyB3aGVyZSB3b3JkcyBzdGFydCB3aXRoIGFuXG4gICB1cHBlcmNhc2UgY2hhcmFjdGVyIGFuZCB0aGUgcmVtYWluaW5nIGNoYXJhY3RlcnMgYXJlIGxvd2VyY2FzZS5cblxuICAgVGhlIGFsZ29yaXRobSB1c2VzIGEgc2ltcGxlIGxhbmd1YWdlLWluZGVwZW5kZW50IGRlZmluaXRpb24gb2YgYVxuICAgd29yZCBhcyBncm91cHMgb2YgY29uc2VjdXRpdmUgbGV0dGVycy4gIFRoZSBkZWZpbml0aW9uIHdvcmtzIGluXG4gICBtYW55IGNvbnRleHRzIGJ1dCBpdCBtZWFucyB0aGF0IGFwb3N0cm9waGVzIGluIGNvbnRyYWN0aW9ucyBhbmRcbiAgIHBvc3Nlc3NpdmVzIGZvcm0gd29yZCBib3VuZGFyaWVzLCB3aGljaCBtYXkgbm90IGJlIHRoZSBkZXNpcmVkXG4gICByZXN1bHQ6XG5cbiAgICAgID4+PiAidGhleVwncmUgYmlsbFwncyBmcmllbmRzIGZyb20gdGhlIFVLIi50aXRsZSgpXG4gICAgICAiVGhleVwnUmUgQmlsbFwnUyBGcmllbmRzIEZyb20gVGhlIFVrIlxuXG4gICBBIHdvcmthcm91bmQgZm9yIGFwb3N0cm9waGVzIGNhbiBiZSBjb25zdHJ1Y3RlZCB1c2luZyByZWd1bGFyXG4gICBleHByZXNzaW9uczpcblxuICAgICAgPj4+IGltcG9ydCByZVxuICAgICAgPj4+IGRlZiB0aXRsZWNhc2Uocyk6XG4gICAgICAgICAgICAgIHJldHVybiByZS5zdWIociJbQS1aYS16XSsoXCdbQS1aYS16XSspPyIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIG1vOiBtby5ncm91cCgwKVswXS51cHBlcigpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vLmdyb3VwKDApWzE6XS5sb3dlcigpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMpXG5cbiAgICAgID4+PiB0aXRsZWNhc2UoInRoZXlcJ3JlIGJpbGxcJ3MgZnJpZW5kcy4iKVxuICAgICAgIlRoZXlcJ3JlIEJpbGxcJ3MgRnJpZW5kcy4iXG5cbnN0ci50cmFuc2xhdGUobWFwKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSAqcyogd2hlcmUgYWxsIGNoYXJhY3RlcnMgaGF2ZSBiZWVuIG1hcHBlZFxuICAgdGhyb3VnaCB0aGUgKm1hcCogd2hpY2ggbXVzdCBiZSBhIGRpY3Rpb25hcnkgb2YgVW5pY29kZSBvcmRpbmFsc1xuICAgKGludGVnZXJzKSB0byBVbmljb2RlIG9yZGluYWxzLCBzdHJpbmdzIG9yIGBgTm9uZWBgLiAgVW5tYXBwZWRcbiAgIGNoYXJhY3RlcnMgYXJlIGxlZnQgdW50b3VjaGVkLiBDaGFyYWN0ZXJzIG1hcHBlZCB0byBgYE5vbmVgYCBhcmVcbiAgIGRlbGV0ZWQuXG5cbiAgIFlvdSBjYW4gdXNlIGBgc3RyLm1ha2V0cmFucygpYGAgdG8gY3JlYXRlIGEgdHJhbnNsYXRpb24gbWFwIGZyb21cbiAgIGNoYXJhY3Rlci10by1jaGFyYWN0ZXIgbWFwcGluZ3MgaW4gZGlmZmVyZW50IGZvcm1hdHMuXG5cbiAgIE5vdGU6IEFuIGV2ZW4gbW9yZSBmbGV4aWJsZSBhcHByb2FjaCBpcyB0byBjcmVhdGUgYSBjdXN0b20gY2hhcmFjdGVyXG4gICAgIG1hcHBpbmcgY29kZWMgdXNpbmcgdGhlIGBgY29kZWNzYGAgbW9kdWxlIChzZWVcbiAgICAgYGBlbmNvZGluZ3MuY3AxMjUxYGAgZm9yIGFuIGV4YW1wbGUpLlxuXG5zdHIudXBwZXIoKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCBhbGwgdGhlIGNhc2VkIGNoYXJhY3RlcnMgWzRdXG4gICBjb252ZXJ0ZWQgdG8gdXBwZXJjYXNlLiAgTm90ZSB0aGF0IGBgc3RyLnVwcGVyKCkuaXN1cHBlcigpYGAgbWlnaHRcbiAgIGJlIGBgRmFsc2VgYCBpZiBgYHNgYCBjb250YWlucyB1bmNhc2VkIGNoYXJhY3RlcnMgb3IgaWYgdGhlIFVuaWNvZGVcbiAgIGNhdGVnb3J5IG9mIHRoZSByZXN1bHRpbmcgY2hhcmFjdGVyKHMpIGlzIG5vdCAiTHUiIChMZXR0ZXIsXG4gICB1cHBlcmNhc2UpLCBidXQgZS5nLiAiTHQiIChMZXR0ZXIsIHRpdGxlY2FzZSkuXG5cbiAgIFRoZSB1cHBlcmNhc2luZyBhbGdvcml0aG0gdXNlZCBpcyBkZXNjcmliZWQgaW4gc2VjdGlvbiAzLjEzIG9mIHRoZVxuICAgVW5pY29kZSBTdGFuZGFyZC5cblxuc3RyLnpmaWxsKHdpZHRoKVxuXG4gICBSZXR1cm4gdGhlIG51bWVyaWMgc3RyaW5nIGxlZnQgZmlsbGVkIHdpdGggemVyb3MgaW4gYSBzdHJpbmcgb2ZcbiAgIGxlbmd0aCAqd2lkdGgqLiAgQSBzaWduIHByZWZpeCBpcyBoYW5kbGVkIGNvcnJlY3RseS4gIFRoZSBvcmlnaW5hbFxuICAgc3RyaW5nIGlzIHJldHVybmVkIGlmICp3aWR0aCogaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIGBgbGVuKHMpYGAuXG4nLAorICdzdHJpbmdzJzogJ1xuU3RyaW5nIGFuZCBCeXRlcyBsaXRlcmFsc1xuKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5TdHJpbmcgbGl0ZXJhbHMgYXJlIGRlc2NyaWJlZCBieSB0aGUgZm9sbG93aW5nIGxleGljYWwgZGVmaW5pdGlvbnM6XG5cbiAgIHN0cmluZ2xpdGVyYWwgICA6Oj0gW3N0cmluZ3ByZWZpeF0oc2hvcnRzdHJpbmcgfCBsb25nc3RyaW5nKVxuICAgc3RyaW5ncHJlZml4ICAgIDo6PSAiciIgfCAidSIgfCAiUiIgfCAiVSJcbiAgIHNob3J0c3RyaW5nICAgICA6Oj0gIlwnIiBzaG9ydHN0cmluZ2l0ZW0qICJcJyIgfCBcJyJcJyBzaG9ydHN0cmluZ2l0ZW0qIFwnIlwnXG4gICBsb25nc3RyaW5nICAgICAgOjo9ICJcJ1wnXCciIGxvbmdzdHJpbmdpdGVtKiAiXCdcJ1wnIiB8IFwnIiIiXCcgbG9uZ3N0cmluZ2l0ZW0qIFwnIiIiXCdcbiAgIHNob3J0c3RyaW5naXRlbSA6Oj0gc2hvcnRzdHJpbmdjaGFyIHwgc3RyaW5nZXNjYXBlc2VxXG4gICBsb25nc3RyaW5naXRlbSAgOjo9IGxvbmdzdHJpbmdjaGFyIHwgc3RyaW5nZXNjYXBlc2VxXG4gICBzaG9ydHN0cmluZ2NoYXIgOjo9IDxhbnkgc291cmNlIGNoYXJhY3RlciBleGNlcHQgIlxcIiBvciBuZXdsaW5lIG9yIHRoZSBxdW90ZT5cbiAgIGxvbmdzdHJpbmdjaGFyICA6Oj0gPGFueSBzb3VyY2UgY2hhcmFjdGVyIGV4Y2VwdCAiXFwiPlxuICAgc3RyaW5nZXNjYXBlc2VxIDo6PSAiXFwiIDxhbnkgc291cmNlIGNoYXJhY3Rlcj5cblxuICAgYnl0ZXNsaXRlcmFsICAgOjo9IGJ5dGVzcHJlZml4KHNob3J0Ynl0ZXMgfCBsb25nYnl0ZXMpXG4gICBieXRlc3ByZWZpeCAgICA6Oj0gImIiIHwgIkIiIHwgImJyIiB8ICJCciIgfCAiYlIiIHwgIkJSIiB8ICJyYiIgfCAickIiIHwgIlJiIiB8ICJSQiJcbiAgIHNob3J0Ynl0ZXMgICAgIDo6PSAiXCciIHNob3J0Ynl0ZXNpdGVtKiAiXCciIHwgXCciXCcgc2hvcnRieXRlc2l0ZW0qIFwnIlwnXG4gICBsb25nYnl0ZXMgICAgICA6Oj0gIlwnXCdcJyIgbG9uZ2J5dGVzaXRlbSogIlwnXCdcJyIgfCBcJyIiIlwnIGxvbmdieXRlc2l0ZW0qIFwnIiIiXCdcbiAgIHNob3J0Ynl0ZXNpdGVtIDo6PSBzaG9ydGJ5dGVzY2hhciB8IGJ5dGVzZXNjYXBlc2VxXG4gICBsb25nYnl0ZXNpdGVtICA6Oj0gbG9uZ2J5dGVzY2hhciB8IGJ5dGVzZXNjYXBlc2VxXG4gICBzaG9ydGJ5dGVzY2hhciA6Oj0gPGFueSBBU0NJSSBjaGFyYWN0ZXIgZXhjZXB0ICJcXCIgb3IgbmV3bGluZSBvciB0aGUgcXVvdGU+XG4gICBsb25nYnl0ZXNjaGFyICA6Oj0gPGFueSBBU0NJSSBjaGFyYWN0ZXIgZXhjZXB0ICJcXCI+XG4gICBieXRlc2VzY2FwZXNlcSA6Oj0gIlxcIiA8YW55IEFTQ0lJIGNoYXJhY3Rlcj5cblxuT25lIHN5bnRhY3RpYyByZXN0cmljdGlvbiBub3QgaW5kaWNhdGVkIGJ5IHRoZXNlIHByb2R1Y3Rpb25zIGlzIHRoYXRcbndoaXRlc3BhY2UgaXMgbm90IGFsbG93ZWQgYmV0d2VlbiB0aGUgYGBzdHJpbmdwcmVmaXhgYCBvclxuYGBieXRlc3ByZWZpeGBgIGFuZCB0aGUgcmVzdCBvZiB0aGUgbGl0ZXJhbC4gVGhlIHNvdXJjZSBjaGFyYWN0ZXIgc2V0XG5pcyBkZWZpbmVkIGJ5IHRoZSBlbmNvZGluZyBkZWNsYXJhdGlvbjsgaXQgaXMgVVRGLTggaWYgbm8gZW5jb2RpbmdcbmRlY2xhcmF0aW9uIGlzIGdpdmVuIGluIHRoZSBzb3VyY2UgZmlsZTsgc2VlIHNlY3Rpb24gKkVuY29kaW5nXG5kZWNsYXJhdGlvbnMqLlxuXG5JbiBwbGFpbiBFbmdsaXNoOiBCb3RoIHR5cGVzIG9mIGxpdGVyYWxzIGNhbiBiZSBlbmNsb3NlZCBpbiBtYXRjaGluZ1xuc2luZ2xlIHF1b3RlcyAoYGBcJ2BgKSBvciBkb3VibGUgcXVvdGVzIChgYCJgYCkuICBUaGV5IGNhbiBhbHNvIGJlXG5lbmNsb3NlZCBpbiBtYXRjaGluZyBncm91cHMgb2YgdGhyZWUgc2luZ2xlIG9yIGRvdWJsZSBxdW90ZXMgKHRoZXNlXG5hcmUgZ2VuZXJhbGx5IHJlZmVycmVkIHRvIGFzICp0cmlwbGUtcXVvdGVkIHN0cmluZ3MqKS4gIFRoZSBiYWNrc2xhc2hcbihgYFxcYGApIGNoYXJhY3RlciBpcyB1c2VkIHRvIGVzY2FwZSBjaGFyYWN0ZXJzIHRoYXQgb3RoZXJ3aXNlIGhhdmUgYVxuc3BlY2lhbCBtZWFuaW5nLCBzdWNoIGFzIG5ld2xpbmUsIGJhY2tzbGFzaCBpdHNlbGYsIG9yIHRoZSBxdW90ZVxuY2hhcmFjdGVyLlxuXG5CeXRlcyBsaXRlcmFscyBhcmUgYWx3YXlzIHByZWZpeGVkIHdpdGggYGBcJ2JcJ2BgIG9yIGBgXCdCXCdgYDsgdGhleVxucHJvZHVjZSBhbiBpbnN0YW5jZSBvZiB0aGUgYGBieXRlc2BgIHR5cGUgaW5zdGVhZCBvZiB0aGUgYGBzdHJgYCB0eXBlLlxuVGhleSBtYXkgb25seSBjb250YWluIEFTQ0lJIGNoYXJhY3RlcnM7IGJ5dGVzIHdpdGggYSBudW1lcmljIHZhbHVlIG9mXG4xMjggb3IgZ3JlYXRlciBtdXN0IGJlIGV4cHJlc3NlZCB3aXRoIGVzY2FwZXMuXG5cbkFzIG9mIFB5dGhvbiAzLjMgaXQgaXMgcG9zc2libGUgYWdhaW4gdG8gcHJlZml4IHVuaWNvZGUgc3RyaW5ncyB3aXRoIGFcbmBgdWBgIHByZWZpeCB0byBzaW1wbGlmeSBtYWludGVuYW5jZSBvZiBkdWFsIDIueCBhbmQgMy54IGNvZGViYXNlcy5cblxuQm90aCBzdHJpbmcgYW5kIGJ5dGVzIGxpdGVyYWxzIG1heSBvcHRpb25hbGx5IGJlIHByZWZpeGVkIHdpdGggYVxubGV0dGVyIGBgXCdyXCdgYCBvciBgYFwnUlwnYGA7IHN1Y2ggc3RyaW5ncyBhcmUgY2FsbGVkICpyYXcgc3RyaW5ncyogYW5kXG50cmVhdCBiYWNrc2xhc2hlcyBhcyBsaXRlcmFsIGNoYXJhY3RlcnMuICBBcyBhIHJlc3VsdCwgaW4gc3RyaW5nXG5saXRlcmFscywgYGBcJ1xcVVwnYGAgYW5kIGBgXCdcXHVcJ2BgIGVzY2FwZXMgaW4gcmF3IHN0cmluZ3MgYXJlIG5vdCB0cmVhdGVkXG5zcGVjaWFsbHkuIEdpdmVuIHRoYXQgUHl0aG9uIDIueFwncyByYXcgdW5pY29kZSBsaXRlcmFscyBiZWhhdmVcbmRpZmZlcmVudGx5IHRoYW4gUHl0aG9uIDMueFwncyB0aGUgYGBcJ3VyXCdgYCBzeW50YXggaXMgbm90IHN1cHBvcnRlZC5cblxuICAgTmV3IGluIHZlcnNpb24gMy4zOiBUaGUgYGBcJ3JiXCdgYCBwcmVmaXggb2YgcmF3IGJ5dGVzIGxpdGVyYWxzIGhhc1xuICAgYmVlbiBhZGRlZCBhcyBhIHN5bm9ueW0gb2YgYGBcJ2JyXCdgYC5cblxuICAgTmV3IGluIHZlcnNpb24gMy4zOiBTdXBwb3J0IGZvciB0aGUgdW5pY29kZSBsZWdhY3kgbGl0ZXJhbFxuICAgKGBgdVwndmFsdWVcJ2BgKSB3YXMgcmVpbnRyb2R1Y2VkIHRvIHNpbXBsaWZ5IHRoZSBtYWludGVuYW5jZSBvZiBkdWFsXG4gICBQeXRob24gMi54IGFuZCAzLnggY29kZWJhc2VzLiBTZWUgKipQRVAgNDE0KiogZm9yIG1vcmUgaW5mb3JtYXRpb24uXG5cbkluIHRyaXBsZS1xdW90ZWQgc3RyaW5ncywgdW5lc2NhcGVkIG5ld2xpbmVzIGFuZCBxdW90ZXMgYXJlIGFsbG93ZWRcbihhbmQgYXJlIHJldGFpbmVkKSwgZXhjZXB0IHRoYXQgdGhyZWUgdW5lc2NhcGVkIHF1b3RlcyBpbiBhIHJvd1xudGVybWluYXRlIHRoZSBzdHJpbmcuICAoQSAicXVvdGUiIGlzIHRoZSBjaGFyYWN0ZXIgdXNlZCB0byBvcGVuIHRoZVxuc3RyaW5nLCBpLmUuIGVpdGhlciBgYFwnYGAgb3IgYGAiYGAuKVxuXG5Vbmxlc3MgYW4gYGBcJ3JcJ2BgIG9yIGBgXCdSXCdgYCBwcmVmaXggaXMgcHJlc2VudCwgZXNjYXBlIHNlcXVlbmNlcyBpblxuc3RyaW5ncyBhcmUgaW50ZXJwcmV0ZWQgYWNjb3JkaW5nIHRvIHJ1bGVzIHNpbWlsYXIgdG8gdGhvc2UgdXNlZCBieVxuU3RhbmRhcmQgQy4gIFRoZSByZWNvZ25pemVkIGVzY2FwZSBzZXF1ZW5jZXMgYXJlOlxuXG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IEVzY2FwZSBTZXF1ZW5jZSAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTm90ZXMgICB8XG4rPT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT0rXG58IGBgXFxuZXdsaW5lYGAgICAgICB8IEJhY2tzbGFzaCBhbmQgbmV3bGluZSBpZ25vcmVkICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcXFxgYCAgICAgICAgICAgIHwgQmFja3NsYXNoIChgYFxcYGApICAgICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcXCdgYCAgICAgICAgICAgIHwgU2luZ2xlIHF1b3RlIChgYFwnYGApICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcImBgICAgICAgICAgICAgfCBEb3VibGUgcXVvdGUgKGBgImBgKSAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcXGFgYCAgICAgICAgICAgIHwgQVNDSUkgQmVsbCAoQkVMKSAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXFxiYGAgICAgICAgICAgICB8IEFTQ0lJIEJhY2tzcGFjZSAoQlMpICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcZmBgICAgICAgICAgICAgfCBBU0NJSSBGb3JtZmVlZCAoRkYpICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcXG5gYCAgICAgICAgICAgIHwgQVNDSUkgTGluZWZlZWQgKExGKSAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXFxyYGAgICAgICAgICAgICB8IEFTQ0lJIENhcnJpYWdlIFJldHVybiAoQ1IpICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxcdGBgICAgICAgICAgICAgfCBBU0NJSSBIb3Jpem9udGFsIFRhYiAoVEFCKSAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcXHZgYCAgICAgICAgICAgIHwgQVNDSUkgVmVydGljYWwgVGFiIChWVCkgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXFxvb29gYCAgICAgICAgICB8IENoYXJhY3RlciB3aXRoIG9jdGFsIHZhbHVlICpvb28qICB8ICgxLDMpICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFxceGhoYGAgICAgICAgICAgfCBDaGFyYWN0ZXIgd2l0aCBoZXggdmFsdWUgKmhoKiAgICAgfCAoMiwzKSAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcblxuRXNjYXBlIHNlcXVlbmNlcyBvbmx5IHJlY29nbml6ZWQgaW4gc3RyaW5nIGxpdGVyYWxzIGFyZTpcblxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBFc2NhcGUgU2VxdWVuY2UgICB8IE1lYW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vdGVzICAgfFxuKz09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09K1xufCBgYFxcTntuYW1lfWBgICAgICAgfCBDaGFyYWN0ZXIgbmFtZWQgKm5hbWUqIGluIHRoZSAgICAgfCAoNCkgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgfCBVbmljb2RlIGRhdGFiYXNlICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcXHV4eHh4YGAgICAgICAgIHwgQ2hhcmFjdGVyIHdpdGggMTYtYml0IGhleCB2YWx1ZSAgIHwgKDUpICAgICB8XG58ICAgICAgICAgICAgICAgICAgIHwgKnh4eHgqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXFxVeHh4eHh4eHhgYCAgICB8IENoYXJhY3RlciB3aXRoIDMyLWJpdCBoZXggdmFsdWUgICB8ICg2KSAgICAgfFxufCAgICAgICAgICAgICAgICAgICB8ICp4eHh4eHh4eCogICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xuXG5Ob3RlczpcblxuMS4gQXMgaW4gU3RhbmRhcmQgQywgdXAgdG8gdGhyZWUgb2N0YWwgZGlnaXRzIGFyZSBhY2NlcHRlZC5cblxuMi4gVW5saWtlIGluIFN0YW5kYXJkIEMsIGV4YWN0bHkgdHdvIGhleCBkaWdpdHMgYXJlIHJlcXVpcmVkLlxuXG4zLiBJbiBhIGJ5dGVzIGxpdGVyYWwsIGhleGFkZWNpbWFsIGFuZCBvY3RhbCBlc2NhcGVzIGRlbm90ZSB0aGUgYnl0ZVxuICAgd2l0aCB0aGUgZ2l2ZW4gdmFsdWUuIEluIGEgc3RyaW5nIGxpdGVyYWwsIHRoZXNlIGVzY2FwZXMgZGVub3RlIGFcbiAgIFVuaWNvZGUgY2hhcmFjdGVyIHdpdGggdGhlIGdpdmVuIHZhbHVlLlxuXG40LiBDaGFuZ2VkIGluIHZlcnNpb24gMy4zOiBTdXBwb3J0IGZvciBuYW1lIGFsaWFzZXMgWzFdIGhhcyBiZWVuXG4gICBhZGRlZC5cblxuNS4gSW5kaXZpZHVhbCBjb2RlIHVuaXRzIHdoaWNoIGZvcm0gcGFydHMgb2YgYSBzdXJyb2dhdGUgcGFpciBjYW4gYmVcbiAgIGVuY29kZWQgdXNpbmcgdGhpcyBlc2NhcGUgc2VxdWVuY2UuICBFeGFjdGx5IGZvdXIgaGV4IGRpZ2l0cyBhcmVcbiAgIHJlcXVpcmVkLlxuXG42LiBBbnkgVW5pY29kZSBjaGFyYWN0ZXIgY2FuIGJlIGVuY29kZWQgdGhpcyB3YXksIGJ1dCBjaGFyYWN0ZXJzXG4gICBvdXRzaWRlIHRoZSBCYXNpYyBNdWx0aWxpbmd1YWwgUGxhbmUgKEJNUCkgd2lsbCBiZSBlbmNvZGVkIHVzaW5nIGFcbiAgIHN1cnJvZ2F0ZSBwYWlyIGlmIFB5dGhvbiBpcyBjb21waWxlZCB0byB1c2UgMTYtYml0IGNvZGUgdW5pdHMgKHRoZVxuICAgZGVmYXVsdCkuICBFeGFjdGx5IGVpZ2h0IGhleCBkaWdpdHMgYXJlIHJlcXVpcmVkLlxuXG5Vbmxpa2UgU3RhbmRhcmQgQywgYWxsIHVucmVjb2duaXplZCBlc2NhcGUgc2VxdWVuY2VzIGFyZSBsZWZ0IGluIHRoZVxuc3RyaW5nIHVuY2hhbmdlZCwgaS5lLiwgKnRoZSBiYWNrc2xhc2ggaXMgbGVmdCBpbiB0aGUgc3RyaW5nKi4gIChUaGlzXG5iZWhhdmlvciBpcyB1c2VmdWwgd2hlbiBkZWJ1Z2dpbmc6IGlmIGFuIGVzY2FwZSBzZXF1ZW5jZSBpcyBtaXN0eXBlZCxcbnRoZSByZXN1bHRpbmcgb3V0cHV0IGlzIG1vcmUgZWFzaWx5IHJlY29nbml6ZWQgYXMgYnJva2VuLikgIEl0IGlzIGFsc29cbmltcG9ydGFudCB0byBub3RlIHRoYXQgdGhlIGVzY2FwZSBzZXF1ZW5jZXMgb25seSByZWNvZ25pemVkIGluIHN0cmluZ1xubGl0ZXJhbHMgZmFsbCBpbnRvIHRoZSBjYXRlZ29yeSBvZiB1bnJlY29nbml6ZWQgZXNjYXBlcyBmb3IgYnl0ZXNcbmxpdGVyYWxzLlxuXG5FdmVuIGluIGEgcmF3IHN0cmluZywgc3RyaW5nIHF1b3RlcyBjYW4gYmUgZXNjYXBlZCB3aXRoIGEgYmFja3NsYXNoLFxuYnV0IHRoZSBiYWNrc2xhc2ggcmVtYWlucyBpbiB0aGUgc3RyaW5nOyBmb3IgZXhhbXBsZSwgYGByIlxcIiJgYCBpcyBhXG52YWxpZCBzdHJpbmcgbGl0ZXJhbCBjb25zaXN0aW5nIG9mIHR3byBjaGFyYWN0ZXJzOiBhIGJhY2tzbGFzaCBhbmQgYVxuZG91YmxlIHF1b3RlOyBgYHIiXFwiYGAgaXMgbm90IGEgdmFsaWQgc3RyaW5nIGxpdGVyYWwgKGV2ZW4gYSByYXdcbnN0cmluZyBjYW5ub3QgZW5kIGluIGFuIG9kZCBudW1iZXIgb2YgYmFja3NsYXNoZXMpLiAgU3BlY2lmaWNhbGx5LCAqYVxucmF3IHN0cmluZyBjYW5ub3QgZW5kIGluIGEgc2luZ2xlIGJhY2tzbGFzaCogKHNpbmNlIHRoZSBiYWNrc2xhc2hcbndvdWxkIGVzY2FwZSB0aGUgZm9sbG93aW5nIHF1b3RlIGNoYXJhY3RlcikuICBOb3RlIGFsc28gdGhhdCBhIHNpbmdsZVxuYmFja3NsYXNoIGZvbGxvd2VkIGJ5IGEgbmV3bGluZSBpcyBpbnRlcnByZXRlZCBhcyB0aG9zZSB0d28gY2hhcmFjdGVyc1xuYXMgcGFydCBvZiB0aGUgc3RyaW5nLCAqbm90KiBhcyBhIGxpbmUgY29udGludWF0aW9uLlxuJywKICAnc3Vic2NyaXB0aW9ucyc6ICdcblN1YnNjcmlwdGlvbnNcbioqKioqKioqKioqKipcblxuQSBzdWJzY3JpcHRpb24gc2VsZWN0cyBhbiBpdGVtIG9mIGEgc2VxdWVuY2UgKHN0cmluZywgdHVwbGUgb3IgbGlzdClcbm9yIG1hcHBpbmcgKGRpY3Rpb25hcnkpIG9iamVjdDpcblxuICAgc3Vic2NyaXB0aW9uIDo6PSBwcmltYXJ5ICJbIiBleHByZXNzaW9uX2xpc3QgIl0iXG5cblRoZSBwcmltYXJ5IG11c3QgZXZhbHVhdGUgdG8gYW4gb2JqZWN0IHRoYXQgc3VwcG9ydHMgc3Vic2NyaXB0aW9uLFxuZS5nLiBhIGxpc3Qgb3IgZGljdGlvbmFyeS4gIFVzZXItZGVmaW5lZCBvYmplY3RzIGNhbiBzdXBwb3J0XG5zdWJzY3JpcHRpb24gYnkgZGVmaW5pbmcgYSBgYF9fZ2V0aXRlbV9fKClgYCBtZXRob2QuXG5cbkZvciBidWlsdC1pbiBvYmplY3RzLCB0aGVyZSBhcmUgdHdvIHR5cGVzIG9mIG9iamVjdHMgdGhhdCBzdXBwb3J0XG5zdWJzY3JpcHRpb246XG5cbklmIHRoZSBwcmltYXJ5IGlzIGEgbWFwcGluZywgdGhlIGV4cHJlc3Npb24gbGlzdCBtdXN0IGV2YWx1YXRlIHRvIGFuXG5vYmplY3Qgd2hvc2UgdmFsdWUgaXMgb25lIG9mIHRoZSBrZXlzIG9mIHRoZSBtYXBwaW5nLCBhbmQgdGhlXG5zdWJzY3JpcHRpb24gc2VsZWN0cyB0aGUgdmFsdWUgaW4gdGhlIG1hcHBpbmcgdGhhdCBjb3JyZXNwb25kcyB0byB0aGF0XG5rZXkuICAoVGhlIGV4cHJlc3Npb24gbGlzdCBpcyBhIHR1cGxlIGV4Y2VwdCBpZiBpdCBoYXMgZXhhY3RseSBvbmVcbml0ZW0uKVxuXG5JZiB0aGUgcHJpbWFyeSBpcyBhIHNlcXVlbmNlLCB0aGUgZXhwcmVzc2lvbiAobGlzdCkgbXVzdCBldmFsdWF0ZSB0b1xuYW4gaW50ZWdlciBvciBhIHNsaWNlIChhcyBkaXNjdXNzZWQgaW4gdGhlIGZvbGxvd2luZyBzZWN0aW9uKS5cblxuVGhlIGZvcm1hbCBzeW50YXggbWFrZXMgbm8gc3BlY2lhbCBwcm92aXNpb24gZm9yIG5lZ2F0aXZlIGluZGljZXMgaW5cbnNlcXVlbmNlczsgaG93ZXZlciwgYnVpbHQtaW4gc2VxdWVuY2VzIGFsbCBwcm92aWRlIGEgYGBfX2dldGl0ZW1fXygpYGBcbm1ldGhvZCB0aGF0IGludGVycHJldHMgbmVnYXRpdmUgaW5kaWNlcyBieSBhZGRpbmcgdGhlIGxlbmd0aCBvZiB0aGVcbnNlcXVlbmNlIHRvIHRoZSBpbmRleCAoc28gdGhhdCBgYHhbLTFdYGAgc2VsZWN0cyB0aGUgbGFzdCBpdGVtIG9mXG5gYHhgYCkuICBUaGUgcmVzdWx0aW5nIHZhbHVlIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIGxlc3MgdGhhblxudGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgc2VxdWVuY2UsIGFuZCB0aGUgc3Vic2NyaXB0aW9uIHNlbGVjdHMgdGhlXG5pdGVtIHdob3NlIGluZGV4IGlzIHRoYXQgdmFsdWUgKGNvdW50aW5nIGZyb20gemVybykuIFNpbmNlIHRoZSBzdXBwb3J0XG5mb3IgbmVnYXRpdmUgaW5kaWNlcyBhbmQgc2xpY2luZyBvY2N1cnMgaW4gdGhlIG9iamVjdFwnc1xuYGBfX2dldGl0ZW1fXygpYGAgbWV0aG9kLCBzdWJjbGFzc2VzIG92ZXJyaWRpbmcgdGhpcyBtZXRob2Qgd2lsbCBuZWVkXG50byBleHBsaWNpdGx5IGFkZCB0aGF0IHN1cHBvcnQuXG5cbkEgc3RyaW5nXCdzIGl0ZW1zIGFyZSBjaGFyYWN0ZXJzLiAgQSBjaGFyYWN0ZXIgaXMgbm90IGEgc2VwYXJhdGUgZGF0YVxudHlwZSBidXQgYSBzdHJpbmcgb2YgZXhhY3RseSBvbmUgY2hhcmFjdGVyLlxuJywKICAndHJ1dGgnOiAiXG5UcnV0aCBWYWx1ZSBUZXN0aW5nXG4qKioqKioqKioqKioqKioqKioqXG5cbkFueSBvYmplY3QgY2FuIGJlIHRlc3RlZCBmb3IgdHJ1dGggdmFsdWUsIGZvciB1c2UgaW4gYW4gYGBpZmBgIG9yXG5gYHdoaWxlYGAgY29uZGl0aW9uIG9yIGFzIG9wZXJhbmQgb2YgdGhlIEJvb2xlYW4gb3BlcmF0aW9ucyBiZWxvdy4gVGhlXG5mb2xsb3dpbmcgdmFsdWVzIGFyZSBjb25zaWRlcmVkIGZhbHNlOlxuXG4qIGBgTm9uZWBgXG5cbiogYGBGYWxzZWBgXG5cbiogemVybyBvZiBhbnkgbnVtZXJpYyB0eXBlLCBmb3IgZXhhbXBsZSwgYGAwYGAsIGBgMC4wYGAsIGBgMGpgYC5cblxuKiBhbnkgZW1wdHkgc2VxdWVuY2UsIGZvciBleGFtcGxlLCBgYCcnYGAsIGBgKClgYCwgYGBbXWBgLlxuXG4qIGFueSBlbXB0eSBtYXBwaW5nLCBmb3IgZXhhbXBsZSwgYGB7fWBgLlxuXG4qIGluc3RhbmNlcyBvZiB1c2VyLWRlZmluZWQgY2xhc3NlcywgaWYgdGhlIGNsYXNzIGRlZmluZXMgYVxuICBgYF9fYm9vbF9fKClgYCBvciBgYF9fbGVuX18oKWBgIG1ldGhvZCwgd2hlbiB0aGF0IG1ldGhvZCByZXR1cm5zIHRoZVxuICBpbnRlZ2VyIHplcm8gb3IgYGBib29sYGAgdmFsdWUgYGBGYWxzZWBgLiBbMV1cblxuQWxsIG90aGVyIHZhbHVlcyBhcmUgY29uc2lkZXJlZCB0cnVlIC0tLSBzbyBvYmplY3RzIG9mIG1hbnkgdHlwZXMgYXJlXG5hbHdheXMgdHJ1ZS5cblxuT3BlcmF0aW9ucyBhbmQgYnVpbHQtaW4gZnVuY3Rpb25zIHRoYXQgaGF2ZSBhIEJvb2xlYW4gcmVzdWx0IGFsd2F5c1xucmV0dXJuIGBgMGBgIG9yIGBgRmFsc2VgYCBmb3IgZmFsc2UgYW5kIGBgMWBgIG9yIGBgVHJ1ZWBgIGZvciB0cnVlLFxudW5sZXNzIG90aGVyd2lzZSBzdGF0ZWQuIChJbXBvcnRhbnQgZXhjZXB0aW9uOiB0aGUgQm9vbGVhbiBvcGVyYXRpb25zXG5gYG9yYGAgYW5kIGBgYW5kYGAgYWx3YXlzIHJldHVybiBvbmUgb2YgdGhlaXIgb3BlcmFuZHMuKVxuIiwKICAndHJ5JzogJ1xuVGhlIGBgdHJ5YGAgc3RhdGVtZW50XG4qKioqKioqKioqKioqKioqKioqKipcblxuVGhlIGBgdHJ5YGAgc3RhdGVtZW50IHNwZWNpZmllcyBleGNlcHRpb24gaGFuZGxlcnMgYW5kL29yIGNsZWFudXAgY29kZVxuZm9yIGEgZ3JvdXAgb2Ygc3RhdGVtZW50czpcblxuICAgdHJ5X3N0bXQgIDo6PSB0cnkxX3N0bXQgfCB0cnkyX3N0bXRcbiAgIHRyeTFfc3RtdCA6Oj0gInRyeSIgIjoiIHN1aXRlXG4gICAgICAgICAgICAgICAgICgiZXhjZXB0IiBbZXhwcmVzc2lvbiBbImFzIiB0YXJnZXRdXSAiOiIgc3VpdGUpK1xuICAgICAgICAgICAgICAgICBbImVsc2UiICI6IiBzdWl0ZV1cbiAgICAgICAgICAgICAgICAgWyJmaW5hbGx5IiAiOiIgc3VpdGVdXG4gICB0cnkyX3N0bXQgOjo9ICJ0cnkiICI6IiBzdWl0ZVxuICAgICAgICAgICAgICAgICAiZmluYWxseSIgIjoiIHN1aXRlXG5cblRoZSBgYGV4Y2VwdGBgIGNsYXVzZShzKSBzcGVjaWZ5IG9uZSBvciBtb3JlIGV4Y2VwdGlvbiBoYW5kbGVycy4gV2hlblxubm8gZXhjZXB0aW9uIG9jY3VycyBpbiB0aGUgYGB0cnlgYCBjbGF1c2UsIG5vIGV4Y2VwdGlvbiBoYW5kbGVyIGlzXG5leGVjdXRlZC4gV2hlbiBhbiBleGNlcHRpb24gb2NjdXJzIGluIHRoZSBgYHRyeWBgIHN1aXRlLCBhIHNlYXJjaCBmb3JcbmFuIGV4Y2VwdGlvbiBoYW5kbGVyIGlzIHN0YXJ0ZWQuICBUaGlzIHNlYXJjaCBpbnNwZWN0cyB0aGUgZXhjZXB0XG5jbGF1c2VzIGluIHR1cm4gdW50aWwgb25lIGlzIGZvdW5kIHRoYXQgbWF0Y2hlcyB0aGUgZXhjZXB0aW9uLiAgQW5cbmV4cHJlc3Npb24tbGVzcyBleGNlcHQgY2xhdXNlLCBpZiBwcmVzZW50LCBtdXN0IGJlIGxhc3Q7IGl0IG1hdGNoZXNcbmFueSBleGNlcHRpb24uICBGb3IgYW4gZXhjZXB0IGNsYXVzZSB3aXRoIGFuIGV4cHJlc3Npb24sIHRoYXRcbmV4cHJlc3Npb24gaXMgZXZhbHVhdGVkLCBhbmQgdGhlIGNsYXVzZSBtYXRjaGVzIHRoZSBleGNlcHRpb24gaWYgdGhlXG5yZXN1bHRpbmcgb2JqZWN0IGlzICJjb21wYXRpYmxlIiB3aXRoIHRoZSBleGNlcHRpb24uICBBbiBvYmplY3QgaXNcbmNvbXBhdGlibGUgd2l0aCBhbiBleGNlcHRpb24gaWYgaXQgaXMgdGhlIGNsYXNzIG9yIGEgYmFzZSBjbGFzcyBvZiB0aGVcbmV4Y2VwdGlvbiBvYmplY3Qgb3IgYSB0dXBsZSBjb250YWluaW5nIGFuIGl0ZW0gY29tcGF0aWJsZSB3aXRoIHRoZVxuZXhjZXB0aW9uLlxuXG5JZiBubyBleGNlcHQgY2xhdXNlIG1hdGNoZXMgdGhlIGV4Y2VwdGlvbiwgdGhlIHNlYXJjaCBmb3IgYW4gZXhjZXB0aW9uXG5oYW5kbGVyIGNvbnRpbnVlcyBpbiB0aGUgc3Vycm91bmRpbmcgY29kZSBhbmQgb24gdGhlIGludm9jYXRpb24gc3RhY2suXG5bMV1cblxuSWYgdGhlIGV2YWx1YXRpb24gb2YgYW4gZXhwcmVzc2lvbiBpbiB0aGUgaGVhZGVyIG9mIGFuIGV4Y2VwdCBjbGF1c2VcbnJhaXNlcyBhbiBleGNlcHRpb24sIHRoZSBvcmlnaW5hbCBzZWFyY2ggZm9yIGEgaGFuZGxlciBpcyBjYW5jZWxlZCBhbmRcbmEgc2VhcmNoIHN0YXJ0cyBmb3IgdGhlIG5ldyBleGNlcHRpb24gaW4gdGhlIHN1cnJvdW5kaW5nIGNvZGUgYW5kIG9uXG50aGUgY2FsbCBzdGFjayAoaXQgaXMgdHJlYXRlZCBhcyBpZiB0aGUgZW50aXJlIGBgdHJ5YGAgc3RhdGVtZW50XG5yYWlzZWQgdGhlIGV4Y2VwdGlvbikuXG5cbldoZW4gYSBtYXRjaGluZyBleGNlcHQgY2xhdXNlIGlzIGZvdW5kLCB0aGUgZXhjZXB0aW9uIGlzIGFzc2lnbmVkIHRvXG50aGUgdGFyZ2V0IHNwZWNpZmllZCBhZnRlciB0aGUgYGBhc2BgIGtleXdvcmQgaW4gdGhhdCBleGNlcHQgY2xhdXNlLFxuaWYgcHJlc2VudCwgYW5kIHRoZSBleGNlcHQgY2xhdXNlXCdzIHN1aXRlIGlzIGV4ZWN1dGVkLiAgQWxsIGV4Y2VwdFxuY2xhdXNlcyBtdXN0IGhhdmUgYW4gZXhlY3V0YWJsZSBibG9jay4gIFdoZW4gdGhlIGVuZCBvZiB0aGlzIGJsb2NrIGlzXG5yZWFjaGVkLCBleGVjdXRpb24gY29udGludWVzIG5vcm1hbGx5IGFmdGVyIHRoZSBlbnRpcmUgdHJ5IHN0YXRlbWVudC5cbihUaGlzIG1lYW5zIHRoYXQgaWYgdHdvIG5lc3RlZCBoYW5kbGVycyBleGlzdCBmb3IgdGhlIHNhbWUgZXhjZXB0aW9uLFxuYW5kIHRoZSBleGNlcHRpb24gb2NjdXJzIGluIHRoZSB0cnkgY2xhdXNlIG9mIHRoZSBpbm5lciBoYW5kbGVyLCB0aGVcbm91dGVyIGhhbmRsZXIgd2lsbCBub3QgaGFuZGxlIHRoZSBleGNlcHRpb24uKVxuXG5XaGVuIGFuIGV4Y2VwdGlvbiBoYXMgYmVlbiBhc3NpZ25lZCB1c2luZyBgYGFzIHRhcmdldGBgLCBpdCBpcyBjbGVhcmVkXG5hdCB0aGUgZW5kIG9mIHRoZSBleGNlcHQgY2xhdXNlLiAgVGhpcyBpcyBhcyBpZlxuXG4gICBleGNlcHQgRSBhcyBOOlxuICAgICAgIGZvb1xuXG53YXMgdHJhbnNsYXRlZCB0b1xuXG4gICBleGNlcHQgRSBhcyBOOlxuICAgICAgIHRyeTpcbiAgICAgICAgICAgZm9vXG4gICAgICAgZmluYWxseTpcbiAgICAgICAgICAgZGVsIE5cblxuVGhpcyBtZWFucyB0aGUgZXhjZXB0aW9uIG11c3QgYmUgYXNzaWduZWQgdG8gYSBkaWZmZXJlbnQgbmFtZSB0byBiZVxuYWJsZSB0byByZWZlciB0byBpdCBhZnRlciB0aGUgZXhjZXB0IGNsYXVzZS4gIEV4Y2VwdGlvbnMgYXJlIGNsZWFyZWRcbmJlY2F1c2Ugd2l0aCB0aGUgdHJhY2ViYWNrIGF0dGFjaGVkIHRvIHRoZW0sIHRoZXkgZm9ybSBhIHJlZmVyZW5jZVxuY3ljbGUgd2l0aCB0aGUgc3RhY2sgZnJhbWUsIGtlZXBpbmcgYWxsIGxvY2FscyBpbiB0aGF0IGZyYW1lIGFsaXZlXG51bnRpbCB0aGUgbmV4dCBnYXJiYWdlIGNvbGxlY3Rpb24gb2NjdXJzLlxuXG5CZWZvcmUgYW4gZXhjZXB0IGNsYXVzZVwncyBzdWl0ZSBpcyBleGVjdXRlZCwgZGV0YWlscyBhYm91dCB0aGVcbmV4Y2VwdGlvbiBhcmUgc3RvcmVkIGluIHRoZSBgYHN5c2BgIG1vZHVsZSBhbmQgY2FuIGJlIGFjY2VzcyB2aWFcbmBgc3lzLmV4Y19pbmZvKClgYC4gYGBzeXMuZXhjX2luZm8oKWBgIHJldHVybnMgYSAzLXR1cGxlIGNvbnNpc3Rpbmcgb2ZcbnRoZSBleGNlcHRpb24gY2xhc3MsIHRoZSBleGNlcHRpb24gaW5zdGFuY2UgYW5kIGEgdHJhY2ViYWNrIG9iamVjdFxuKHNlZSBzZWN0aW9uICpUaGUgc3RhbmRhcmQgdHlwZSBoaWVyYXJjaHkqKSBpZGVudGlmeWluZyB0aGUgcG9pbnQgaW5cbnRoZSBwcm9ncmFtIHdoZXJlIHRoZSBleGNlcHRpb24gb2NjdXJyZWQuICBgYHN5cy5leGNfaW5mbygpYGAgdmFsdWVzXG5hcmUgcmVzdG9yZWQgdG8gdGhlaXIgcHJldmlvdXMgdmFsdWVzIChiZWZvcmUgdGhlIGNhbGwpIHdoZW4gcmV0dXJuaW5nXG5mcm9tIGEgZnVuY3Rpb24gdGhhdCBoYW5kbGVkIGFuIGV4Y2VwdGlvbi5cblxuVGhlIG9wdGlvbmFsIGBgZWxzZWBgIGNsYXVzZSBpcyBleGVjdXRlZCBpZiBhbmQgd2hlbiBjb250cm9sIGZsb3dzIG9mZlxudGhlIGVuZCBvZiB0aGUgYGB0cnlgYCBjbGF1c2UuIFsyXSBFeGNlcHRpb25zIGluIHRoZSBgYGVsc2VgYCBjbGF1c2VcbmFyZSBub3QgaGFuZGxlZCBieSB0aGUgcHJlY2VkaW5nIGBgZXhjZXB0YGAgY2xhdXNlcy5cblxuSWYgYGBmaW5hbGx5YGAgaXMgcHJlc2VudCwgaXQgc3BlY2lmaWVzIGEgXCdjbGVhbnVwXCcgaGFuZGxlci4gIFRoZVxuYGB0cnlgYCBjbGF1c2UgaXMgZXhlY3V0ZWQsIGluY2x1ZGluZyBhbnkgYGBleGNlcHRgYCBhbmQgYGBlbHNlYGBcbmNsYXVzZXMuICBJZiBhbiBleGNlcHRpb24gb2NjdXJzIGluIGFueSBvZiB0aGUgY2xhdXNlcyBhbmQgaXMgbm90XG5oYW5kbGVkLCB0aGUgZXhjZXB0aW9uIGlzIHRlbXBvcmFyaWx5IHNhdmVkLiBUaGUgYGBmaW5hbGx5YGAgY2xhdXNlIGlzXG5leGVjdXRlZC4gIElmIHRoZXJlIGlzIGEgc2F2ZWQgZXhjZXB0aW9uLCBpdCBpcyByZS1yYWlzZWQgYXQgdGhlIGVuZFxub2YgdGhlIGBgZmluYWxseWBgIGNsYXVzZS4gSWYgdGhlIGBgZmluYWxseWBgIGNsYXVzZSByYWlzZXMgYW5vdGhlclxuZXhjZXB0aW9uIG9yIGV4ZWN1dGVzIGEgYGByZXR1cm5gYCBvciBgYGJyZWFrYGAgc3RhdGVtZW50LCB0aGUgc2F2ZWRcbmV4Y2VwdGlvbiBpcyBzZXQgYXMgdGhlIGNvbnRleHQgb2YgdGhlIG5ldyBleGNlcHRpb24uICBUaGUgZXhjZXB0aW9uXG5pbmZvcm1hdGlvbiBpcyBub3QgYXZhaWxhYmxlIHRvIHRoZSBwcm9ncmFtIGR1cmluZyBleGVjdXRpb24gb2YgdGhlXG5gYGZpbmFsbHlgYCBjbGF1c2UuXG5cbldoZW4gYSBgYHJldHVybmBgLCBgYGJyZWFrYGAgb3IgYGBjb250aW51ZWBgIHN0YXRlbWVudCBpcyBleGVjdXRlZCBpblxudGhlIGBgdHJ5YGAgc3VpdGUgb2YgYSBgYHRyeWBgLi4uYGBmaW5hbGx5YGAgc3RhdGVtZW50LCB0aGVcbmBgZmluYWxseWBgIGNsYXVzZSBpcyBhbHNvIGV4ZWN1dGVkIFwnb24gdGhlIHdheSBvdXQuXCcgQSBgYGNvbnRpbnVlYGBcbnN0YXRlbWVudCBpcyBpbGxlZ2FsIGluIHRoZSBgYGZpbmFsbHlgYCBjbGF1c2UuIChUaGUgcmVhc29uIGlzIGFcbnByb2JsZW0gd2l0aCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiAtLS0gdGhpcyByZXN0cmljdGlvbiBtYXkgYmVcbmxpZnRlZCBpbiB0aGUgZnV0dXJlKS5cblxuQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiBleGNlcHRpb25zIGNhbiBiZSBmb3VuZCBpbiBzZWN0aW9uXG4qRXhjZXB0aW9ucyosIGFuZCBpbmZvcm1hdGlvbiBvbiB1c2luZyB0aGUgYGByYWlzZWBgIHN0YXRlbWVudCB0b1xuZ2VuZXJhdGUgZXhjZXB0aW9ucyBtYXkgYmUgZm91bmQgaW4gc2VjdGlvbiAqVGhlIHJhaXNlIHN0YXRlbWVudCouXG4nLAotICd0eXBlcyc6ICdcblRoZSBzdGFuZGFyZCB0eXBlIGhpZXJhcmNoeVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbkJlbG93IGlzIGEgbGlzdCBvZiB0aGUgdHlwZXMgdGhhdCBhcmUgYnVpbHQgaW50byBQeXRob24uICBFeHRlbnNpb25cbm1vZHVsZXMgKHdyaXR0ZW4gaW4gQywgSmF2YSwgb3Igb3RoZXIgbGFuZ3VhZ2VzLCBkZXBlbmRpbmcgb24gdGhlXG5pbXBsZW1lbnRhdGlvbikgY2FuIGRlZmluZSBhZGRpdGlvbmFsIHR5cGVzLiAgRnV0dXJlIHZlcnNpb25zIG9mXG5QeXRob24gbWF5IGFkZCB0eXBlcyB0byB0aGUgdHlwZSBoaWVyYXJjaHkgKGUuZy4sIHJhdGlvbmFsIG51bWJlcnMsXG5lZmZpY2llbnRseSBzdG9yZWQgYXJyYXlzIG9mIGludGVnZXJzLCBldGMuKSwgYWx0aG91Z2ggc3VjaCBhZGRpdGlvbnNcbndpbGwgb2Z0ZW4gYmUgcHJvdmlkZWQgdmlhIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGluc3RlYWQuXG5cblNvbWUgb2YgdGhlIHR5cGUgZGVzY3JpcHRpb25zIGJlbG93IGNvbnRhaW4gYSBwYXJhZ3JhcGggbGlzdGluZ1xuXCdzcGVjaWFsIGF0dHJpYnV0ZXMuXCcgIFRoZXNlIGFyZSBhdHRyaWJ1dGVzIHRoYXQgcHJvdmlkZSBhY2Nlc3MgdG8gdGhlXG5pbXBsZW1lbnRhdGlvbiBhbmQgYXJlIG5vdCBpbnRlbmRlZCBmb3IgZ2VuZXJhbCB1c2UuICBUaGVpciBkZWZpbml0aW9uXG5tYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuXG5cbk5vbmVcbiAgIFRoaXMgdHlwZSBoYXMgYSBzaW5nbGUgdmFsdWUuICBUaGVyZSBpcyBhIHNpbmdsZSBvYmplY3Qgd2l0aCB0aGlzXG4gICB2YWx1ZS4gVGhpcyBvYmplY3QgaXMgYWNjZXNzZWQgdGhyb3VnaCB0aGUgYnVpbHQtaW4gbmFtZSBgYE5vbmVgYC5cbiAgIEl0IGlzIHVzZWQgdG8gc2lnbmlmeSB0aGUgYWJzZW5jZSBvZiBhIHZhbHVlIGluIG1hbnkgc2l0dWF0aW9ucyxcbiAgIGUuZy4sIGl0IGlzIHJldHVybmVkIGZyb20gZnVuY3Rpb25zIHRoYXQgZG9uXCd0IGV4cGxpY2l0bHkgcmV0dXJuXG4gICBhbnl0aGluZy4gSXRzIHRydXRoIHZhbHVlIGlzIGZhbHNlLlxuXG5Ob3RJbXBsZW1lbnRlZFxuICAgVGhpcyB0eXBlIGhhcyBhIHNpbmdsZSB2YWx1ZS4gIFRoZXJlIGlzIGEgc2luZ2xlIG9iamVjdCB3aXRoIHRoaXNcbiAgIHZhbHVlLiBUaGlzIG9iamVjdCBpcyBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBidWlsdC1pbiBuYW1lXG4gICBgYE5vdEltcGxlbWVudGVkYGAuIE51bWVyaWMgbWV0aG9kcyBhbmQgcmljaCBjb21wYXJpc29uIG1ldGhvZHMgbWF5XG4gICByZXR1cm4gdGhpcyB2YWx1ZSBpZiB0aGV5IGRvIG5vdCBpbXBsZW1lbnQgdGhlIG9wZXJhdGlvbiBmb3IgdGhlXG4gICBvcGVyYW5kcyBwcm92aWRlZC4gIChUaGUgaW50ZXJwcmV0ZXIgd2lsbCB0aGVuIHRyeSB0aGUgcmVmbGVjdGVkXG4gICBvcGVyYXRpb24sIG9yIHNvbWUgb3RoZXIgZmFsbGJhY2ssIGRlcGVuZGluZyBvbiB0aGUgb3BlcmF0b3IuKSAgSXRzXG4gICB0cnV0aCB2YWx1ZSBpcyB0cnVlLlxuXG5FbGxpcHNpc1xuICAgVGhpcyB0eXBlIGhhcyBhIHNpbmdsZSB2YWx1ZS4gIFRoZXJlIGlzIGEgc2luZ2xlIG9iamVjdCB3aXRoIHRoaXNcbiAgIHZhbHVlLiBUaGlzIG9iamVjdCBpcyBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBsaXRlcmFsIGBgLi4uYGAgb3IgdGhlXG4gICBidWlsdC1pbiBuYW1lIGBgRWxsaXBzaXNgYC4gIEl0cyB0cnV0aCB2YWx1ZSBpcyB0cnVlLlxuXG5gYG51bWJlcnMuTnVtYmVyYGBcbiAgIFRoZXNlIGFyZSBjcmVhdGVkIGJ5IG51bWVyaWMgbGl0ZXJhbHMgYW5kIHJldHVybmVkIGFzIHJlc3VsdHMgYnlcbiAgIGFyaXRobWV0aWMgb3BlcmF0b3JzIGFuZCBhcml0aG1ldGljIGJ1aWx0LWluIGZ1bmN0aW9ucy4gIE51bWVyaWNcbiAgIG9iamVjdHMgYXJlIGltbXV0YWJsZTsgb25jZSBjcmVhdGVkIHRoZWlyIHZhbHVlIG5ldmVyIGNoYW5nZXMuXG4gICBQeXRob24gbnVtYmVycyBhcmUgb2YgY291cnNlIHN0cm9uZ2x5IHJlbGF0ZWQgdG8gbWF0aGVtYXRpY2FsXG4gICBudW1iZXJzLCBidXQgc3ViamVjdCB0byB0aGUgbGltaXRhdGlvbnMgb2YgbnVtZXJpY2FsIHJlcHJlc2VudGF0aW9uXG4gICBpbiBjb21wdXRlcnMuXG5cbiAgIFB5dGhvbiBkaXN0aW5ndWlzaGVzIGJldHdlZW4gaW50ZWdlcnMsIGZsb2F0aW5nIHBvaW50IG51bWJlcnMsIGFuZFxuICAgY29tcGxleCBudW1iZXJzOlxuXG4gICBgYG51bWJlcnMuSW50ZWdyYWxgYFxuICAgICAgVGhlc2UgcmVwcmVzZW50IGVsZW1lbnRzIGZyb20gdGhlIG1hdGhlbWF0aWNhbCBzZXQgb2YgaW50ZWdlcnNcbiAgICAgIChwb3NpdGl2ZSBhbmQgbmVnYXRpdmUpLlxuXG4gICAgICBUaGVyZSBhcmUgdHdvIHR5cGVzIG9mIGludGVnZXJzOlxuXG4gICAgICBJbnRlZ2VycyAoYGBpbnRgYClcblxuICAgICAgICAgVGhlc2UgcmVwcmVzZW50IG51bWJlcnMgaW4gYW4gdW5saW1pdGVkIHJhbmdlLCBzdWJqZWN0IHRvXG4gICAgICAgICBhdmFpbGFibGUgKHZpcnR1YWwpIG1lbW9yeSBvbmx5LiAgRm9yIHRoZSBwdXJwb3NlIG9mIHNoaWZ0XG4gICAgICAgICBhbmQgbWFzayBvcGVyYXRpb25zLCBhIGJpbmFyeSByZXByZXNlbnRhdGlvbiBpcyBhc3N1bWVkLCBhbmRcbiAgICAgICAgIG5lZ2F0aXZlIG51bWJlcnMgYXJlIHJlcHJlc2VudGVkIGluIGEgdmFyaWFudCBvZiAyXCdzXG4gICAgICAgICBjb21wbGVtZW50IHdoaWNoIGdpdmVzIHRoZSBpbGx1c2lvbiBvZiBhbiBpbmZpbml0ZSBzdHJpbmcgb2ZcbiAgICAgICAgIHNpZ24gYml0cyBleHRlbmRpbmcgdG8gdGhlIGxlZnQuXG5cbiAgICAgIEJvb2xlYW5zIChgYGJvb2xgYClcbiAgICAgICAgIFRoZXNlIHJlcHJlc2VudCB0aGUgdHJ1dGggdmFsdWVzIEZhbHNlIGFuZCBUcnVlLiAgVGhlIHR3b1xuICAgICAgICAgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIHZhbHVlcyBGYWxzZSBhbmQgVHJ1ZSBhcmUgdGhlIG9ubHlcbiAgICAgICAgIEJvb2xlYW4gb2JqZWN0cy4gVGhlIEJvb2xlYW4gdHlwZSBpcyBhIHN1YnR5cGUgb2YgdGhlIGludGVnZXJcbiAgICAgICAgIHR5cGUsIGFuZCBCb29sZWFuIHZhbHVlcyBiZWhhdmUgbGlrZSB0aGUgdmFsdWVzIDAgYW5kIDEsXG4gICAgICAgICByZXNwZWN0aXZlbHksIGluIGFsbW9zdCBhbGwgY29udGV4dHMsIHRoZSBleGNlcHRpb24gYmVpbmdcbiAgICAgICAgIHRoYXQgd2hlbiBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcsIHRoZSBzdHJpbmdzIGBgIkZhbHNlImBgIG9yXG4gICAgICAgICBgYCJUcnVlImBgIGFyZSByZXR1cm5lZCwgcmVzcGVjdGl2ZWx5LlxuXG4gICAgICBUaGUgcnVsZXMgZm9yIGludGVnZXIgcmVwcmVzZW50YXRpb24gYXJlIGludGVuZGVkIHRvIGdpdmUgdGhlXG4gICAgICBtb3N0IG1lYW5pbmdmdWwgaW50ZXJwcmV0YXRpb24gb2Ygc2hpZnQgYW5kIG1hc2sgb3BlcmF0aW9uc1xuICAgICAgaW52b2x2aW5nIG5lZ2F0aXZlIGludGVnZXJzLlxuXG4gICBgYG51bWJlcnMuUmVhbGBgIChgYGZsb2F0YGApXG4gICAgICBUaGVzZSByZXByZXNlbnQgbWFjaGluZS1sZXZlbCBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50XG4gICAgICBudW1iZXJzLiBZb3UgYXJlIGF0IHRoZSBtZXJjeSBvZiB0aGUgdW5kZXJseWluZyBtYWNoaW5lXG4gICAgICBhcmNoaXRlY3R1cmUgKGFuZCBDIG9yIEphdmEgaW1wbGVtZW50YXRpb24pIGZvciB0aGUgYWNjZXB0ZWRcbiAgICAgIHJhbmdlIGFuZCBoYW5kbGluZyBvZiBvdmVyZmxvdy4gUHl0aG9uIGRvZXMgbm90IHN1cHBvcnQgc2luZ2xlLVxuICAgICAgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IG51bWJlcnM7IHRoZSBzYXZpbmdzIGluIHByb2Nlc3NvciBhbmRcbiAgICAgIG1lbW9yeSB1c2FnZSB0aGF0IGFyZSB1c3VhbGx5IHRoZSByZWFzb24gZm9yIHVzaW5nIHRoZXNlIGlzXG4gICAgICBkd2FyZmVkIGJ5IHRoZSBvdmVyaGVhZCBvZiB1c2luZyBvYmplY3RzIGluIFB5dGhvbiwgc28gdGhlcmUgaXNcbiAgICAgIG5vIHJlYXNvbiB0byBjb21wbGljYXRlIHRoZSBsYW5ndWFnZSB3aXRoIHR3byBraW5kcyBvZiBmbG9hdGluZ1xuICAgICAgcG9pbnQgbnVtYmVycy5cblxuICAgYGBudW1iZXJzLkNvbXBsZXhgYCAoYGBjb21wbGV4YGApXG4gICAgICBUaGVzZSByZXByZXNlbnQgY29tcGxleCBudW1iZXJzIGFzIGEgcGFpciBvZiBtYWNoaW5lLWxldmVsXG4gICAgICBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IG51bWJlcnMuICBUaGUgc2FtZSBjYXZlYXRzIGFwcGx5XG4gICAgICBhcyBmb3IgZmxvYXRpbmcgcG9pbnQgbnVtYmVycy4gVGhlIHJlYWwgYW5kIGltYWdpbmFyeSBwYXJ0cyBvZiBhXG4gICAgICBjb21wbGV4IG51bWJlciBgYHpgYCBjYW4gYmUgcmV0cmlldmVkIHRocm91Z2ggdGhlIHJlYWQtb25seVxuICAgICAgYXR0cmlidXRlcyBgYHoucmVhbGBgIGFuZCBgYHouaW1hZ2BgLlxuXG5TZXF1ZW5jZXNcbiAgIFRoZXNlIHJlcHJlc2VudCBmaW5pdGUgb3JkZXJlZCBzZXRzIGluZGV4ZWQgYnkgbm9uLW5lZ2F0aXZlXG4gICBudW1iZXJzLiBUaGUgYnVpbHQtaW4gZnVuY3Rpb24gYGBsZW4oKWBgIHJldHVybnMgdGhlIG51bWJlciBvZlxuICAgaXRlbXMgb2YgYSBzZXF1ZW5jZS4gV2hlbiB0aGUgbGVuZ3RoIG9mIGEgc2VxdWVuY2UgaXMgKm4qLCB0aGVcbiAgIGluZGV4IHNldCBjb250YWlucyB0aGUgbnVtYmVycyAwLCAxLCAuLi4sICpuKi0xLiAgSXRlbSAqaSogb2ZcbiAgIHNlcXVlbmNlICphKiBpcyBzZWxlY3RlZCBieSBgYGFbaV1gYC5cblxuICAgU2VxdWVuY2VzIGFsc28gc3VwcG9ydCBzbGljaW5nOiBgYGFbaTpqXWBgIHNlbGVjdHMgYWxsIGl0ZW1zIHdpdGhcbiAgIGluZGV4ICprKiBzdWNoIHRoYXQgKmkqIGBgPD1gYCAqayogYGA8YGAgKmoqLiAgV2hlbiB1c2VkIGFzIGFuXG4gICBleHByZXNzaW9uLCBhIHNsaWNlIGlzIGEgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgdHlwZS4gIFRoaXMgaW1wbGllc1xuICAgdGhhdCB0aGUgaW5kZXggc2V0IGlzIHJlbnVtYmVyZWQgc28gdGhhdCBpdCBzdGFydHMgYXQgMC5cblxuICAgU29tZSBzZXF1ZW5jZXMgYWxzbyBzdXBwb3J0ICJleHRlbmRlZCBzbGljaW5nIiB3aXRoIGEgdGhpcmQgInN0ZXAiXG4gICBwYXJhbWV0ZXI6IGBgYVtpOmo6a11gYCBzZWxlY3RzIGFsbCBpdGVtcyBvZiAqYSogd2l0aCBpbmRleCAqeCpcbiAgIHdoZXJlIGBgeCA9IGkgKyBuKmtgYCwgKm4qIGBgPj1gYCBgYDBgYCBhbmQgKmkqIGBgPD1gYCAqeCogYGA8YGBcbiAgICpqKi5cblxuICAgU2VxdWVuY2VzIGFyZSBkaXN0aW5ndWlzaGVkIGFjY29yZGluZyB0byB0aGVpciBtdXRhYmlsaXR5OlxuXG4gICBJbW11dGFibGUgc2VxdWVuY2VzXG4gICAgICBBbiBvYmplY3Qgb2YgYW4gaW1tdXRhYmxlIHNlcXVlbmNlIHR5cGUgY2Fubm90IGNoYW5nZSBvbmNlIGl0IGlzXG4gICAgICBjcmVhdGVkLiAgKElmIHRoZSBvYmplY3QgY29udGFpbnMgcmVmZXJlbmNlcyB0byBvdGhlciBvYmplY3RzLFxuICAgICAgdGhlc2Ugb3RoZXIgb2JqZWN0cyBtYXkgYmUgbXV0YWJsZSBhbmQgbWF5IGJlIGNoYW5nZWQ7IGhvd2V2ZXIsXG4gICAgICB0aGUgY29sbGVjdGlvbiBvZiBvYmplY3RzIGRpcmVjdGx5IHJlZmVyZW5jZWQgYnkgYW4gaW1tdXRhYmxlXG4gICAgICBvYmplY3QgY2Fubm90IGNoYW5nZS4pXG5cbiAgICAgIFRoZSBmb2xsb3dpbmcgdHlwZXMgYXJlIGltbXV0YWJsZSBzZXF1ZW5jZXM6XG5cbiAgICAgIFN0cmluZ3NcbiAgICAgICAgIFRoZSBpdGVtcyBvZiBhIHN0cmluZyBvYmplY3QgYXJlIFVuaWNvZGUgY29kZSB1bml0cy4gIEFcbiAgICAgICAgIFVuaWNvZGUgY29kZSB1bml0IGlzIHJlcHJlc2VudGVkIGJ5IGEgc3RyaW5nIG9iamVjdCBvZiBvbmVcbiAgICAgICAgIGl0ZW0gYW5kIGNhbiBob2xkIGVpdGhlciBhIDE2LWJpdCBvciAzMi1iaXQgdmFsdWVcbiAgICAgICAgIHJlcHJlc2VudGluZyBhIFVuaWNvZGUgb3JkaW5hbCAodGhlIG1heGltdW0gdmFsdWUgZm9yIHRoZVxuICAgICAgICAgb3JkaW5hbCBpcyBnaXZlbiBpbiBgYHN5cy5tYXh1bmljb2RlYGAsIGFuZCBkZXBlbmRzIG9uIGhvd1xuICAgICAgICAgUHl0aG9uIGlzIGNvbmZpZ3VyZWQgYXQgY29tcGlsZSB0aW1lKS4gIFN1cnJvZ2F0ZSBwYWlycyBtYXlcbiAgICAgICAgIGJlIHByZXNlbnQgaW4gdGhlIFVuaWNvZGUgb2JqZWN0LCBhbmQgd2lsbCBiZSByZXBvcnRlZCBhcyB0d29cbiAgICAgICAgIHNlcGFyYXRlIGl0ZW1zLiAgVGhlIGJ1aWx0LWluIGZ1bmN0aW9ucyBgYGNocigpYGAgYW5kXG4gICAgICAgICBgYG9yZCgpYGAgY29udmVydCBiZXR3ZWVuIGNvZGUgdW5pdHMgYW5kIG5vbm5lZ2F0aXZlIGludGVnZXJzXG4gICAgICAgICByZXByZXNlbnRpbmcgdGhlIFVuaWNvZGUgb3JkaW5hbHMgYXMgZGVmaW5lZCBpbiB0aGUgVW5pY29kZVxuICAgICAgICAgU3RhbmRhcmQgMy4wLiBDb252ZXJzaW9uIGZyb20gYW5kIHRvIG90aGVyIGVuY29kaW5ncyBhcmVcbiAgICAgICAgIHBvc3NpYmxlIHRocm91Z2ggdGhlIHN0cmluZyBtZXRob2QgYGBlbmNvZGUoKWBgLlxuXG4gICAgICBUdXBsZXNcbiAgICAgICAgIFRoZSBpdGVtcyBvZiBhIHR1cGxlIGFyZSBhcmJpdHJhcnkgUHl0aG9uIG9iamVjdHMuIFR1cGxlcyBvZlxuICAgICAgICAgdHdvIG9yIG1vcmUgaXRlbXMgYXJlIGZvcm1lZCBieSBjb21tYS1zZXBhcmF0ZWQgbGlzdHMgb2ZcbiAgICAgICAgIGV4cHJlc3Npb25zLiAgQSB0dXBsZSBvZiBvbmUgaXRlbSAoYSBcJ3NpbmdsZXRvblwnKSBjYW4gYmVcbiAgICAgICAgIGZvcm1lZCBieSBhZmZpeGluZyBhIGNvbW1hIHRvIGFuIGV4cHJlc3Npb24gKGFuIGV4cHJlc3Npb24gYnlcbiAgICAgICAgIGl0c2VsZiBkb2VzIG5vdCBjcmVhdGUgYSB0dXBsZSwgc2luY2UgcGFyZW50aGVzZXMgbXVzdCBiZVxuICAgICAgICAgdXNhYmxlIGZvciBncm91cGluZyBvZiBleHByZXNzaW9ucykuICBBbiBlbXB0eSB0dXBsZSBjYW4gYmVcbiAgICAgICAgIGZvcm1lZCBieSBhbiBlbXB0eSBwYWlyIG9mIHBhcmVudGhlc2VzLlxuXG4gICAgICBCeXRlc1xuICAgICAgICAgQSBieXRlcyBvYmplY3QgaXMgYW4gaW1tdXRhYmxlIGFycmF5LiAgVGhlIGl0ZW1zIGFyZSA4LWJpdFxuICAgICAgICAgYnl0ZXMsIHJlcHJlc2VudGVkIGJ5IGludGVnZXJzIGluIHRoZSByYW5nZSAwIDw9IHggPCAyNTYuXG4gICAgICAgICBCeXRlcyBsaXRlcmFscyAobGlrZSBgYGJcJ2FiY1wnYGAgYW5kIHRoZSBidWlsdC1pbiBmdW5jdGlvblxuICAgICAgICAgYGBieXRlcygpYGAgY2FuIGJlIHVzZWQgdG8gY29uc3RydWN0IGJ5dGVzIG9iamVjdHMuICBBbHNvLFxuICAgICAgICAgYnl0ZXMgb2JqZWN0cyBjYW4gYmUgZGVjb2RlZCB0byBzdHJpbmdzIHZpYSB0aGUgYGBkZWNvZGUoKWBgXG4gICAgICAgICBtZXRob2QuXG5cbiAgIE11dGFibGUgc2VxdWVuY2VzXG4gICAgICBNdXRhYmxlIHNlcXVlbmNlcyBjYW4gYmUgY2hhbmdlZCBhZnRlciB0aGV5IGFyZSBjcmVhdGVkLiAgVGhlXG4gICAgICBzdWJzY3JpcHRpb24gYW5kIHNsaWNpbmcgbm90YXRpb25zIGNhbiBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgb2ZcbiAgICAgIGFzc2lnbm1lbnQgYW5kIGBgZGVsYGAgKGRlbGV0ZSkgc3RhdGVtZW50cy5cblxuICAgICAgVGhlcmUgYXJlIGN1cnJlbnRseSB0d28gaW50cmluc2ljIG11dGFibGUgc2VxdWVuY2UgdHlwZXM6XG5cbiAgICAgIExpc3RzXG4gICAgICAgICBUaGUgaXRlbXMgb2YgYSBsaXN0IGFyZSBhcmJpdHJhcnkgUHl0aG9uIG9iamVjdHMuICBMaXN0cyBhcmVcbiAgICAgICAgIGZvcm1lZCBieSBwbGFjaW5nIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgaW5cbiAgICAgICAgIHNxdWFyZSBicmFja2V0cy4gKE5vdGUgdGhhdCB0aGVyZSBhcmUgbm8gc3BlY2lhbCBjYXNlcyBuZWVkZWRcbiAgICAgICAgIHRvIGZvcm0gbGlzdHMgb2YgbGVuZ3RoIDAgb3IgMS4pXG5cbiAgICAgIEJ5dGUgQXJyYXlzXG4gICAgICAgICBBIGJ5dGVhcnJheSBvYmplY3QgaXMgYSBtdXRhYmxlIGFycmF5LiBUaGV5IGFyZSBjcmVhdGVkIGJ5XG4gICAgICAgICB0aGUgYnVpbHQtaW4gYGBieXRlYXJyYXkoKWBgIGNvbnN0cnVjdG9yLiAgQXNpZGUgZnJvbSBiZWluZ1xuICAgICAgICAgbXV0YWJsZSAoYW5kIGhlbmNlIHVuaGFzaGFibGUpLCBieXRlIGFycmF5cyBvdGhlcndpc2UgcHJvdmlkZVxuICAgICAgICAgdGhlIHNhbWUgaW50ZXJmYWNlIGFuZCBmdW5jdGlvbmFsaXR5IGFzIGltbXV0YWJsZSBieXRlc1xuICAgICAgICAgb2JqZWN0cy5cblxuICAgICAgVGhlIGV4dGVuc2lvbiBtb2R1bGUgYGBhcnJheWBgIHByb3ZpZGVzIGFuIGFkZGl0aW9uYWwgZXhhbXBsZSBvZlxuICAgICAgYSBtdXRhYmxlIHNlcXVlbmNlIHR5cGUsIGFzIGRvZXMgdGhlIGBgY29sbGVjdGlvbnNgYCBtb2R1bGUuXG5cblNldCB0eXBlc1xuICAgVGhlc2UgcmVwcmVzZW50IHVub3JkZXJlZCwgZmluaXRlIHNldHMgb2YgdW5pcXVlLCBpbW11dGFibGVcbiAgIG9iamVjdHMuIEFzIHN1Y2gsIHRoZXkgY2Fubm90IGJlIGluZGV4ZWQgYnkgYW55IHN1YnNjcmlwdC4gSG93ZXZlcixcbiAgIHRoZXkgY2FuIGJlIGl0ZXJhdGVkIG92ZXIsIGFuZCB0aGUgYnVpbHQtaW4gZnVuY3Rpb24gYGBsZW4oKWBgXG4gICByZXR1cm5zIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gYSBzZXQuIENvbW1vbiB1c2VzIGZvciBzZXRzIGFyZSBmYXN0XG4gICBtZW1iZXJzaGlwIHRlc3RpbmcsIHJlbW92aW5nIGR1cGxpY2F0ZXMgZnJvbSBhIHNlcXVlbmNlLCBhbmRcbiAgIGNvbXB1dGluZyBtYXRoZW1hdGljYWwgb3BlcmF0aW9ucyBzdWNoIGFzIGludGVyc2VjdGlvbiwgdW5pb24sXG4gICBkaWZmZXJlbmNlLCBhbmQgc3ltbWV0cmljIGRpZmZlcmVuY2UuXG5cbiAgIEZvciBzZXQgZWxlbWVudHMsIHRoZSBzYW1lIGltbXV0YWJpbGl0eSBydWxlcyBhcHBseSBhcyBmb3JcbiAgIGRpY3Rpb25hcnkga2V5cy4gTm90ZSB0aGF0IG51bWVyaWMgdHlwZXMgb2JleSB0aGUgbm9ybWFsIHJ1bGVzIGZvclxuICAgbnVtZXJpYyBjb21wYXJpc29uOiBpZiB0d28gbnVtYmVycyBjb21wYXJlIGVxdWFsIChlLmcuLCBgYDFgYCBhbmRcbiAgIGBgMS4wYGApLCBvbmx5IG9uZSBvZiB0aGVtIGNhbiBiZSBjb250YWluZWQgaW4gYSBzZXQuXG5cbiAgIFRoZXJlIGFyZSBjdXJyZW50bHkgdHdvIGludHJpbnNpYyBzZXQgdHlwZXM6XG5cbiAgIFNldHNcbiAgICAgIFRoZXNlIHJlcHJlc2VudCBhIG11dGFibGUgc2V0LiBUaGV5IGFyZSBjcmVhdGVkIGJ5IHRoZSBidWlsdC1pblxuICAgICAgYGBzZXQoKWBgIGNvbnN0cnVjdG9yIGFuZCBjYW4gYmUgbW9kaWZpZWQgYWZ0ZXJ3YXJkcyBieSBzZXZlcmFsXG4gICAgICBtZXRob2RzLCBzdWNoIGFzIGBgYWRkKClgYC5cblxuICAgRnJvemVuIHNldHNcbiAgICAgIFRoZXNlIHJlcHJlc2VudCBhbiBpbW11dGFibGUgc2V0LiAgVGhleSBhcmUgY3JlYXRlZCBieSB0aGVcbiAgICAgIGJ1aWx0LWluIGBgZnJvemVuc2V0KClgYCBjb25zdHJ1Y3Rvci4gIEFzIGEgZnJvemVuc2V0IGlzXG4gICAgICBpbW11dGFibGUgYW5kICpoYXNoYWJsZSosIGl0IGNhbiBiZSB1c2VkIGFnYWluIGFzIGFuIGVsZW1lbnQgb2ZcbiAgICAgIGFub3RoZXIgc2V0LCBvciBhcyBhIGRpY3Rpb25hcnkga2V5LlxuXG5NYXBwaW5nc1xuICAgVGhlc2UgcmVwcmVzZW50IGZpbml0ZSBzZXRzIG9mIG9iamVjdHMgaW5kZXhlZCBieSBhcmJpdHJhcnkgaW5kZXhcbiAgIHNldHMuIFRoZSBzdWJzY3JpcHQgbm90YXRpb24gYGBhW2tdYGAgc2VsZWN0cyB0aGUgaXRlbSBpbmRleGVkIGJ5XG4gICBgYGtgYCBmcm9tIHRoZSBtYXBwaW5nIGBgYWBgOyB0aGlzIGNhbiBiZSB1c2VkIGluIGV4cHJlc3Npb25zIGFuZFxuICAgYXMgdGhlIHRhcmdldCBvZiBhc3NpZ25tZW50cyBvciBgYGRlbGBgIHN0YXRlbWVudHMuIFRoZSBidWlsdC1pblxuICAgZnVuY3Rpb24gYGBsZW4oKWBgIHJldHVybnMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiBhIG1hcHBpbmcuXG5cbiAgIFRoZXJlIGlzIGN1cnJlbnRseSBhIHNpbmdsZSBpbnRyaW5zaWMgbWFwcGluZyB0eXBlOlxuXG4gICBEaWN0aW9uYXJpZXNcbiAgICAgIFRoZXNlIHJlcHJlc2VudCBmaW5pdGUgc2V0cyBvZiBvYmplY3RzIGluZGV4ZWQgYnkgbmVhcmx5XG4gICAgICBhcmJpdHJhcnkgdmFsdWVzLiAgVGhlIG9ubHkgdHlwZXMgb2YgdmFsdWVzIG5vdCBhY2NlcHRhYmxlIGFzXG4gICAgICBrZXlzIGFyZSB2YWx1ZXMgY29udGFpbmluZyBsaXN0cyBvciBkaWN0aW9uYXJpZXMgb3Igb3RoZXJcbiAgICAgIG11dGFibGUgdHlwZXMgdGhhdCBhcmUgY29tcGFyZWQgYnkgdmFsdWUgcmF0aGVyIHRoYW4gYnkgb2JqZWN0XG4gICAgICBpZGVudGl0eSwgdGhlIHJlYXNvbiBiZWluZyB0aGF0IHRoZSBlZmZpY2llbnQgaW1wbGVtZW50YXRpb24gb2ZcbiAgICAgIGRpY3Rpb25hcmllcyByZXF1aXJlcyBhIGtleVwncyBoYXNoIHZhbHVlIHRvIHJlbWFpbiBjb25zdGFudC5cbiAgICAgIE51bWVyaWMgdHlwZXMgdXNlZCBmb3Iga2V5cyBvYmV5IHRoZSBub3JtYWwgcnVsZXMgZm9yIG51bWVyaWNcbiAgICAgIGNvbXBhcmlzb246IGlmIHR3byBudW1iZXJzIGNvbXBhcmUgZXF1YWwgKGUuZy4sIGBgMWBgIGFuZFxuICAgICAgYGAxLjBgYCkgdGhlbiB0aGV5IGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSB0byBpbmRleCB0aGUgc2FtZVxuICAgICAgZGljdGlvbmFyeSBlbnRyeS5cblxuICAgICAgRGljdGlvbmFyaWVzIGFyZSBtdXRhYmxlOyB0aGV5IGNhbiBiZSBjcmVhdGVkIGJ5IHRoZSBgYHsuLi59YGBcbiAgICAgIG5vdGF0aW9uIChzZWUgc2VjdGlvbiAqRGljdGlvbmFyeSBkaXNwbGF5cyopLlxuXG4gICAgICBUaGUgZXh0ZW5zaW9uIG1vZHVsZXMgYGBkYm0ubmRibWBgIGFuZCBgYGRibS5nbnVgYCBwcm92aWRlXG4gICAgICBhZGRpdGlvbmFsIGV4YW1wbGVzIG9mIG1hcHBpbmcgdHlwZXMsIGFzIGRvZXMgdGhlXG4gICAgICBgYGNvbGxlY3Rpb25zYGAgbW9kdWxlLlxuXG5DYWxsYWJsZSB0eXBlc1xuICAgVGhlc2UgYXJlIHRoZSB0eXBlcyB0byB3aGljaCB0aGUgZnVuY3Rpb24gY2FsbCBvcGVyYXRpb24gKHNlZVxuICAgc2VjdGlvbiAqQ2FsbHMqKSBjYW4gYmUgYXBwbGllZDpcblxuICAgVXNlci1kZWZpbmVkIGZ1bmN0aW9uc1xuICAgICAgQSB1c2VyLWRlZmluZWQgZnVuY3Rpb24gb2JqZWN0IGlzIGNyZWF0ZWQgYnkgYSBmdW5jdGlvblxuICAgICAgZGVmaW5pdGlvbiAoc2VlIHNlY3Rpb24gKkZ1bmN0aW9uIGRlZmluaXRpb25zKikuICBJdCBzaG91bGQgYmVcbiAgICAgIGNhbGxlZCB3aXRoIGFuIGFyZ3VtZW50IGxpc3QgY29udGFpbmluZyB0aGUgc2FtZSBudW1iZXIgb2YgaXRlbXNcbiAgICAgIGFzIHRoZSBmdW5jdGlvblwncyBmb3JtYWwgcGFyYW1ldGVyIGxpc3QuXG5cbiAgICAgIFNwZWNpYWwgYXR0cmlidXRlczpcblxuICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLStcbiAgICAgIHwgQXR0cmlidXRlICAgICAgICAgICAgICAgICB8IE1lYW5pbmcgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICArPT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09K1xuICAgICAgfCBgYF9fZG9jX19gYCAgICAgICAgICAgICAgIHwgVGhlIGZ1bmN0aW9uXCdzIGRvY3VtZW50YXRpb24gICAgfCBXcml0YWJsZSAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzdHJpbmcsIG9yIGBgTm9uZWBgIGlmICAgICAgICAgIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdW5hdmFpbGFibGUgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rXG4gICAgICB8IGBgX19uYW1lX19gYCAgICAgICAgICAgICAgfCBUaGUgZnVuY3Rpb25cJ3MgbmFtZSAgICAgICAgICAgICB8IFdyaXRhYmxlICAgIHxcbiAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rXG4gICAgICB8IGBgX19tb2R1bGVfX2BgICAgICAgICAgICAgfCBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoZSAgICAgIHwgV3JpdGFibGUgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb24gd2FzIGRlZmluZWQgaW4sIG9yICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBgTm9uZWBgIGlmIHVuYXZhaWxhYmxlLiAgICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tK1xuICAgICAgfCBgYF9fZGVmYXVsdHNfX2BgICAgICAgICAgIHwgQSB0dXBsZSBjb250YWluaW5nIGRlZmF1bHQgICAgICB8IFdyaXRhYmxlICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFyZ3VtZW50IHZhbHVlcyBmb3IgdGhvc2UgICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhcmd1bWVudHMgdGhhdCBoYXZlIGRlZmF1bHRzLCAgIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3IgYGBOb25lYGAgaWYgbm8gYXJndW1lbnRzICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGhhdmUgYSBkZWZhdWx0IHZhbHVlICAgICAgICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tK1xuICAgICAgfCBgYF9fY29kZV9fYGAgICAgICAgICAgICAgIHwgVGhlIGNvZGUgb2JqZWN0IHJlcHJlc2VudGluZyAgICB8IFdyaXRhYmxlICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRoZSBjb21waWxlZCBmdW5jdGlvbiBib2R5LiAgICAgfCAgICAgICAgICAgICB8XG4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tK1xuICAgICAgfCBgYF9fZ2xvYmFsc19fYGAgICAgICAgICAgIHwgQSByZWZlcmVuY2UgdG8gdGhlIGRpY3Rpb25hcnkgICB8IFJlYWQtb25seSAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRoYXQgaG9sZHMgdGhlIGZ1bmN0aW9uXCdzICAgICAgIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ2xvYmFsIHZhcmlhYmxlcyAtLS0gdGhlIGdsb2JhbCB8ICAgICAgICAgICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG5hbWVzcGFjZSBvZiB0aGUgbW9kdWxlIGluICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB3aGljaCB0aGUgZnVuY3Rpb24gd2FzIGRlZmluZWQuIHwgICAgICAgICAgICAgfFxuICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLStcbiAgICAgIHwgYGBfX2RpY3RfX2BgICAgICAgICAgICAgICB8IFRoZSBuYW1lc3BhY2Ugc3VwcG9ydGluZyAgICAgICAgfCBXcml0YWJsZSAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhcmJpdHJhcnkgZnVuY3Rpb24gYXR0cmlidXRlcy4gIHwgICAgICAgICAgICAgfFxuICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLStcbiAgICAgIHwgYGBfX2Nsb3N1cmVfX2BgICAgICAgICAgICB8IGBgTm9uZWBgIG9yIGEgdHVwbGUgb2YgY2VsbHMgICAgfCBSZWFkLW9ubHkgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0aGF0IGNvbnRhaW4gYmluZGluZ3MgZm9yIHRoZSAgIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25cJ3MgZnJlZSB2YXJpYWJsZXMuICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tK1xuICAgICAgfCBgYF9fYW5ub3RhdGlvbnNfX2BgICAgICAgIHwgQSBkaWN0IGNvbnRhaW5pbmcgYW5ub3RhdGlvbnMgICB8IFdyaXRhYmxlICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG9mIHBhcmFtZXRlcnMuICBUaGUga2V5cyBvZiB0aGUgfCAgICAgICAgICAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkaWN0IGFyZSB0aGUgcGFyYW1ldGVyIG5hbWVzLCAgIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3IgYGBcJ3JldHVyblwnYGAgZm9yIHRoZSByZXR1cm4gIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYW5ub3RhdGlvbiwgaWYgcHJvdmlkZWQuICAgICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rXG4gICAgICB8IGBgX19rd2RlZmF1bHRzX19gYCAgICAgICAgfCBBIGRpY3QgY29udGFpbmluZyBkZWZhdWx0cyBmb3IgIHwgV3JpdGFibGUgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwga2V5d29yZC1vbmx5IHBhcmFtZXRlcnMuICAgICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rXG5cbiAgICAgIE1vc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgbGFiZWxsZWQgIldyaXRhYmxlIiBjaGVjayB0aGUgdHlwZSBvZiB0aGVcbiAgICAgIGFzc2lnbmVkIHZhbHVlLlxuXG4gICAgICBGdW5jdGlvbiBvYmplY3RzIGFsc28gc3VwcG9ydCBnZXR0aW5nIGFuZCBzZXR0aW5nIGFyYml0cmFyeVxuICAgICAgYXR0cmlidXRlcywgd2hpY2ggY2FuIGJlIHVzZWQsIGZvciBleGFtcGxlLCB0byBhdHRhY2ggbWV0YWRhdGFcbiAgICAgIHRvIGZ1bmN0aW9ucy4gIFJlZ3VsYXIgYXR0cmlidXRlIGRvdC1ub3RhdGlvbiBpcyB1c2VkIHRvIGdldCBhbmRcbiAgICAgIHNldCBzdWNoIGF0dHJpYnV0ZXMuICpOb3RlIHRoYXQgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb25seVxuICAgICAgc3VwcG9ydHMgZnVuY3Rpb24gYXR0cmlidXRlcyBvbiB1c2VyLWRlZmluZWQgZnVuY3Rpb25zLiBGdW5jdGlvblxuICAgICAgYXR0cmlidXRlcyBvbiBidWlsdC1pbiBmdW5jdGlvbnMgbWF5IGJlIHN1cHBvcnRlZCBpbiB0aGVcbiAgICAgIGZ1dHVyZS4qXG5cbiAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgYSBmdW5jdGlvblwncyBkZWZpbml0aW9uIGNhbiBiZVxuICAgICAgcmV0cmlldmVkIGZyb20gaXRzIGNvZGUgb2JqZWN0OyBzZWUgdGhlIGRlc2NyaXB0aW9uIG9mIGludGVybmFsXG4gICAgICB0eXBlcyBiZWxvdy5cblxuICAgSW5zdGFuY2UgbWV0aG9kc1xuICAgICAgQW4gaW5zdGFuY2UgbWV0aG9kIG9iamVjdCBjb21iaW5lcyBhIGNsYXNzLCBhIGNsYXNzIGluc3RhbmNlIGFuZFxuICAgICAgYW55IGNhbGxhYmxlIG9iamVjdCAobm9ybWFsbHkgYSB1c2VyLWRlZmluZWQgZnVuY3Rpb24pLlxuXG4gICAgICBTcGVjaWFsIHJlYWQtb25seSBhdHRyaWJ1dGVzOiBgYF9fc2VsZl9fYGAgaXMgdGhlIGNsYXNzIGluc3RhbmNlXG4gICAgICBvYmplY3QsIGBgX19mdW5jX19gYCBpcyB0aGUgZnVuY3Rpb24gb2JqZWN0OyBgYF9fZG9jX19gYCBpcyB0aGVcbiAgICAgIG1ldGhvZFwncyBkb2N1bWVudGF0aW9uIChzYW1lIGFzIGBgX19mdW5jX18uX19kb2NfX2BgKTtcbiAgICAgIGBgX19uYW1lX19gYCBpcyB0aGUgbWV0aG9kIG5hbWUgKHNhbWUgYXMgYGBfX2Z1bmNfXy5fX25hbWVfX2BgKTtcbiAgICAgIGBgX19tb2R1bGVfX2BgIGlzIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhlIG1ldGhvZCB3YXMgZGVmaW5lZFxuICAgICAgaW4sIG9yIGBgTm9uZWBgIGlmIHVuYXZhaWxhYmxlLlxuXG4gICAgICBNZXRob2RzIGFsc28gc3VwcG9ydCBhY2Nlc3NpbmcgKGJ1dCBub3Qgc2V0dGluZykgdGhlIGFyYml0cmFyeVxuICAgICAgZnVuY3Rpb24gYXR0cmlidXRlcyBvbiB0aGUgdW5kZXJseWluZyBmdW5jdGlvbiBvYmplY3QuXG5cbiAgICAgIFVzZXItZGVmaW5lZCBtZXRob2Qgb2JqZWN0cyBtYXkgYmUgY3JlYXRlZCB3aGVuIGdldHRpbmcgYW5cbiAgICAgIGF0dHJpYnV0ZSBvZiBhIGNsYXNzIChwZXJoYXBzIHZpYSBhbiBpbnN0YW5jZSBvZiB0aGF0IGNsYXNzKSwgaWZcbiAgICAgIHRoYXQgYXR0cmlidXRlIGlzIGEgdXNlci1kZWZpbmVkIGZ1bmN0aW9uIG9iamVjdCBvciBhIGNsYXNzXG4gICAgICBtZXRob2Qgb2JqZWN0LlxuXG4gICAgICBXaGVuIGFuIGluc3RhbmNlIG1ldGhvZCBvYmplY3QgaXMgY3JlYXRlZCBieSByZXRyaWV2aW5nIGEgdXNlci1cbiAgICAgIGRlZmluZWQgZnVuY3Rpb24gb2JqZWN0IGZyb20gYSBjbGFzcyB2aWEgb25lIG9mIGl0cyBpbnN0YW5jZXMsXG4gICAgICBpdHMgYGBfX3NlbGZfX2BgIGF0dHJpYnV0ZSBpcyB0aGUgaW5zdGFuY2UsIGFuZCB0aGUgbWV0aG9kXG4gICAgICBvYmplY3QgaXMgc2FpZCB0byBiZSBib3VuZC4gIFRoZSBuZXcgbWV0aG9kXCdzIGBgX19mdW5jX19gYFxuICAgICAgYXR0cmlidXRlIGlzIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBvYmplY3QuXG5cbiAgICAgIFdoZW4gYSB1c2VyLWRlZmluZWQgbWV0aG9kIG9iamVjdCBpcyBjcmVhdGVkIGJ5IHJldHJpZXZpbmdcbiAgICAgIGFub3RoZXIgbWV0aG9kIG9iamVjdCBmcm9tIGEgY2xhc3Mgb3IgaW5zdGFuY2UsIHRoZSBiZWhhdmlvdXIgaXNcbiAgICAgIHRoZSBzYW1lIGFzIGZvciBhIGZ1bmN0aW9uIG9iamVjdCwgZXhjZXB0IHRoYXQgdGhlIGBgX19mdW5jX19gYFxuICAgICAgYXR0cmlidXRlIG9mIHRoZSBuZXcgaW5zdGFuY2UgaXMgbm90IHRoZSBvcmlnaW5hbCBtZXRob2Qgb2JqZWN0XG4gICAgICBidXQgaXRzIGBgX19mdW5jX19gYCBhdHRyaWJ1dGUuXG5cbiAgICAgIFdoZW4gYW4gaW5zdGFuY2UgbWV0aG9kIG9iamVjdCBpcyBjcmVhdGVkIGJ5IHJldHJpZXZpbmcgYSBjbGFzc1xuICAgICAgbWV0aG9kIG9iamVjdCBmcm9tIGEgY2xhc3Mgb3IgaW5zdGFuY2UsIGl0cyBgYF9fc2VsZl9fYGBcbiAgICAgIGF0dHJpYnV0ZSBpcyB0aGUgY2xhc3MgaXRzZWxmLCBhbmQgaXRzIGBgX19mdW5jX19gYCBhdHRyaWJ1dGUgaXNcbiAgICAgIHRoZSBmdW5jdGlvbiBvYmplY3QgdW5kZXJseWluZyB0aGUgY2xhc3MgbWV0aG9kLlxuXG4gICAgICBXaGVuIGFuIGluc3RhbmNlIG1ldGhvZCBvYmplY3QgaXMgY2FsbGVkLCB0aGUgdW5kZXJseWluZ1xuICAgICAgZnVuY3Rpb24gKGBgX19mdW5jX19gYCkgaXMgY2FsbGVkLCBpbnNlcnRpbmcgdGhlIGNsYXNzIGluc3RhbmNlXG4gICAgICAoYGBfX3NlbGZfX2BgKSBpbiBmcm9udCBvZiB0aGUgYXJndW1lbnQgbGlzdC4gIEZvciBpbnN0YW5jZSxcbiAgICAgIHdoZW4gYGBDYGAgaXMgYSBjbGFzcyB3aGljaCBjb250YWlucyBhIGRlZmluaXRpb24gZm9yIGEgZnVuY3Rpb25cbiAgICAgIGBgZigpYGAsIGFuZCBgYHhgYCBpcyBhbiBpbnN0YW5jZSBvZiBgYENgYCwgY2FsbGluZyBgYHguZigxKWBgXG4gICAgICBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgYGBDLmYoeCwgMSlgYC5cblxuICAgICAgV2hlbiBhbiBpbnN0YW5jZSBtZXRob2Qgb2JqZWN0IGlzIGRlcml2ZWQgZnJvbSBhIGNsYXNzIG1ldGhvZFxuICAgICAgb2JqZWN0LCB0aGUgImNsYXNzIGluc3RhbmNlIiBzdG9yZWQgaW4gYGBfX3NlbGZfX2BgIHdpbGxcbiAgICAgIGFjdHVhbGx5IGJlIHRoZSBjbGFzcyBpdHNlbGYsIHNvIHRoYXQgY2FsbGluZyBlaXRoZXIgYGB4LmYoMSlgYFxuICAgICAgb3IgYGBDLmYoMSlgYCBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgYGBmKEMsMSlgYCB3aGVyZSBgYGZgYCBpc1xuICAgICAgdGhlIHVuZGVybHlpbmcgZnVuY3Rpb24uXG5cbiAgICAgIE5vdGUgdGhhdCB0aGUgdHJhbnNmb3JtYXRpb24gZnJvbSBmdW5jdGlvbiBvYmplY3QgdG8gaW5zdGFuY2VcbiAgICAgIG1ldGhvZCBvYmplY3QgaGFwcGVucyBlYWNoIHRpbWUgdGhlIGF0dHJpYnV0ZSBpcyByZXRyaWV2ZWQgZnJvbVxuICAgICAgdGhlIGluc3RhbmNlLiAgSW4gc29tZSBjYXNlcywgYSBmcnVpdGZ1bCBvcHRpbWl6YXRpb24gaXMgdG9cbiAgICAgIGFzc2lnbiB0aGUgYXR0cmlidXRlIHRvIGEgbG9jYWwgdmFyaWFibGUgYW5kIGNhbGwgdGhhdCBsb2NhbFxuICAgICAgdmFyaWFibGUuIEFsc28gbm90aWNlIHRoYXQgdGhpcyB0cmFuc2Zvcm1hdGlvbiBvbmx5IGhhcHBlbnMgZm9yXG4gICAgICB1c2VyLWRlZmluZWQgZnVuY3Rpb25zOyBvdGhlciBjYWxsYWJsZSBvYmplY3RzIChhbmQgYWxsIG5vbi1cbiAgICAgIGNhbGxhYmxlIG9iamVjdHMpIGFyZSByZXRyaWV2ZWQgd2l0aG91dCB0cmFuc2Zvcm1hdGlvbi4gIEl0IGlzXG4gICAgICBhbHNvIGltcG9ydGFudCB0byBub3RlIHRoYXQgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyB3aGljaCBhcmVcbiAgICAgIGF0dHJpYnV0ZXMgb2YgYSBjbGFzcyBpbnN0YW5jZSBhcmUgbm90IGNvbnZlcnRlZCB0byBib3VuZFxuICAgICAgbWV0aG9kczsgdGhpcyAqb25seSogaGFwcGVucyB3aGVuIHRoZSBmdW5jdGlvbiBpcyBhbiBhdHRyaWJ1dGVcbiAgICAgIG9mIHRoZSBjbGFzcy5cblxuICAgR2VuZXJhdG9yIGZ1bmN0aW9uc1xuICAgICAgQSBmdW5jdGlvbiBvciBtZXRob2Qgd2hpY2ggdXNlcyB0aGUgYGB5aWVsZGBgIHN0YXRlbWVudCAoc2VlXG4gICAgICBzZWN0aW9uICpUaGUgeWllbGQgc3RhdGVtZW50KikgaXMgY2FsbGVkIGEgKmdlbmVyYXRvciBmdW5jdGlvbiouXG4gICAgICBTdWNoIGEgZnVuY3Rpb24sIHdoZW4gY2FsbGVkLCBhbHdheXMgcmV0dXJucyBhbiBpdGVyYXRvciBvYmplY3RcbiAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGV4ZWN1dGUgdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uOiAgY2FsbGluZ1xuICAgICAgdGhlIGl0ZXJhdG9yXCdzIGBgX19uZXh0X18oKWBgIG1ldGhvZCB3aWxsIGNhdXNlIHRoZSBmdW5jdGlvbiB0b1xuICAgICAgZXhlY3V0ZSB1bnRpbCBpdCBwcm92aWRlcyBhIHZhbHVlIHVzaW5nIHRoZSBgYHlpZWxkYGAgc3RhdGVtZW50LlxuICAgICAgV2hlbiB0aGUgZnVuY3Rpb24gZXhlY3V0ZXMgYSBgYHJldHVybmBgIHN0YXRlbWVudCBvciBmYWxscyBvZmZcbiAgICAgIHRoZSBlbmQsIGEgYGBTdG9wSXRlcmF0aW9uYGAgZXhjZXB0aW9uIGlzIHJhaXNlZCBhbmQgdGhlXG4gICAgICBpdGVyYXRvciB3aWxsIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBzZXQgb2YgdmFsdWVzIHRvIGJlXG4gICAgICByZXR1cm5lZC5cblxuICAgQnVpbHQtaW4gZnVuY3Rpb25zXG4gICAgICBBIGJ1aWx0LWluIGZ1bmN0aW9uIG9iamVjdCBpcyBhIHdyYXBwZXIgYXJvdW5kIGEgQyBmdW5jdGlvbi5cbiAgICAgIEV4YW1wbGVzIG9mIGJ1aWx0LWluIGZ1bmN0aW9ucyBhcmUgYGBsZW4oKWBgIGFuZCBgYG1hdGguc2luKClgYFxuICAgICAgKGBgbWF0aGBgIGlzIGEgc3RhbmRhcmQgYnVpbHQtaW4gbW9kdWxlKS4gVGhlIG51bWJlciBhbmQgdHlwZSBvZlxuICAgICAgdGhlIGFyZ3VtZW50cyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgQyBmdW5jdGlvbi4gU3BlY2lhbCByZWFkLVxuICAgICAgb25seSBhdHRyaWJ1dGVzOiBgYF9fZG9jX19gYCBpcyB0aGUgZnVuY3Rpb25cJ3MgZG9jdW1lbnRhdGlvblxuICAgICAgc3RyaW5nLCBvciBgYE5vbmVgYCBpZiB1bmF2YWlsYWJsZTsgYGBfX25hbWVfX2BgIGlzIHRoZVxuICAgICAgZnVuY3Rpb25cJ3MgbmFtZTsgYGBfX3NlbGZfX2BgIGlzIHNldCB0byBgYE5vbmVgYCAoYnV0IHNlZSB0aGVcbiAgICAgIG5leHQgaXRlbSk7IGBgX19tb2R1bGVfX2BgIGlzIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhlXG4gICAgICBmdW5jdGlvbiB3YXMgZGVmaW5lZCBpbiBvciBgYE5vbmVgYCBpZiB1bmF2YWlsYWJsZS5cblxuICAgQnVpbHQtaW4gbWV0aG9kc1xuICAgICAgVGhpcyBpcyByZWFsbHkgYSBkaWZmZXJlbnQgZGlzZ3Vpc2Ugb2YgYSBidWlsdC1pbiBmdW5jdGlvbiwgdGhpc1xuICAgICAgdGltZSBjb250YWluaW5nIGFuIG9iamVjdCBwYXNzZWQgdG8gdGhlIEMgZnVuY3Rpb24gYXMgYW5cbiAgICAgIGltcGxpY2l0IGV4dHJhIGFyZ3VtZW50LiAgQW4gZXhhbXBsZSBvZiBhIGJ1aWx0LWluIG1ldGhvZCBpc1xuICAgICAgYGBhbGlzdC5hcHBlbmQoKWBgLCBhc3N1bWluZyAqYWxpc3QqIGlzIGEgbGlzdCBvYmplY3QuIEluIHRoaXNcbiAgICAgIGNhc2UsIHRoZSBzcGVjaWFsIHJlYWQtb25seSBhdHRyaWJ1dGUgYGBfX3NlbGZfX2BgIGlzIHNldCB0byB0aGVcbiAgICAgIG9iamVjdCBkZW5vdGVkIGJ5ICphbGlzdCouXG5cbiAgIENsYXNzZXNcbiAgICAgIENsYXNzZXMgYXJlIGNhbGxhYmxlLiAgVGhlc2Ugb2JqZWN0cyBub3JtYWxseSBhY3QgYXMgZmFjdG9yaWVzXG4gICAgICBmb3IgbmV3IGluc3RhbmNlcyBvZiB0aGVtc2VsdmVzLCBidXQgdmFyaWF0aW9ucyBhcmUgcG9zc2libGUgZm9yXG4gICAgICBjbGFzcyB0eXBlcyB0aGF0IG92ZXJyaWRlIGBgX19uZXdfXygpYGAuICBUaGUgYXJndW1lbnRzIG9mIHRoZVxuICAgICAgY2FsbCBhcmUgcGFzc2VkIHRvIGBgX19uZXdfXygpYGAgYW5kLCBpbiB0aGUgdHlwaWNhbCBjYXNlLCB0b1xuICAgICAgYGBfX2luaXRfXygpYGAgdG8gaW5pdGlhbGl6ZSB0aGUgbmV3IGluc3RhbmNlLlxuXG4gICBDbGFzcyBJbnN0YW5jZXNcbiAgICAgIEluc3RhbmNlcyBvZiBhcmJpdHJhcnkgY2xhc3NlcyBjYW4gYmUgbWFkZSBjYWxsYWJsZSBieSBkZWZpbmluZ1xuICAgICAgYSBgYF9fY2FsbF9fKClgYCBtZXRob2QgaW4gdGhlaXIgY2xhc3MuXG5cbk1vZHVsZXNcbiAgIE1vZHVsZXMgYXJlIGltcG9ydGVkIGJ5IHRoZSBgYGltcG9ydGBgIHN0YXRlbWVudCAoc2VlIHNlY3Rpb24gKlRoZVxuICAgaW1wb3J0IHN0YXRlbWVudCopLiBBIG1vZHVsZSBvYmplY3QgaGFzIGEgbmFtZXNwYWNlIGltcGxlbWVudGVkIGJ5XG4gICBhIGRpY3Rpb25hcnkgb2JqZWN0ICh0aGlzIGlzIHRoZSBkaWN0aW9uYXJ5IHJlZmVyZW5jZWQgYnkgdGhlXG4gICBfX2dsb2JhbHNfXyBhdHRyaWJ1dGUgb2YgZnVuY3Rpb25zIGRlZmluZWQgaW4gdGhlIG1vZHVsZSkuXG4gICBBdHRyaWJ1dGUgcmVmZXJlbmNlcyBhcmUgdHJhbnNsYXRlZCB0byBsb29rdXBzIGluIHRoaXMgZGljdGlvbmFyeSxcbiAgIGUuZy4sIGBgbS54YGAgaXMgZXF1aXZhbGVudCB0byBgYG0uX19kaWN0X19bIngiXWBgLiBBIG1vZHVsZSBvYmplY3RcbiAgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGNvZGUgb2JqZWN0IHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgbW9kdWxlXG4gICAoc2luY2UgaXQgaXNuXCd0IG5lZWRlZCBvbmNlIHRoZSBpbml0aWFsaXphdGlvbiBpcyBkb25lKS5cblxuICAgQXR0cmlidXRlIGFzc2lnbm1lbnQgdXBkYXRlcyB0aGUgbW9kdWxlXCdzIG5hbWVzcGFjZSBkaWN0aW9uYXJ5LFxuICAgZS5nLiwgYGBtLnggPSAxYGAgaXMgZXF1aXZhbGVudCB0byBgYG0uX19kaWN0X19bIngiXSA9IDFgYC5cblxuICAgU3BlY2lhbCByZWFkLW9ubHkgYXR0cmlidXRlOiBgYF9fZGljdF9fYGAgaXMgdGhlIG1vZHVsZVwncyBuYW1lc3BhY2VcbiAgIGFzIGEgZGljdGlvbmFyeSBvYmplY3QuXG5cbiAgICoqQ1B5dGhvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWw6KiogQmVjYXVzZSBvZiB0aGUgd2F5IENQeXRob25cbiAgIGNsZWFycyBtb2R1bGUgZGljdGlvbmFyaWVzLCB0aGUgbW9kdWxlIGRpY3Rpb25hcnkgd2lsbCBiZSBjbGVhcmVkXG4gICB3aGVuIHRoZSBtb2R1bGUgZmFsbHMgb3V0IG9mIHNjb3BlIGV2ZW4gaWYgdGhlIGRpY3Rpb25hcnkgc3RpbGwgaGFzXG4gICBsaXZlIHJlZmVyZW5jZXMuICBUbyBhdm9pZCB0aGlzLCBjb3B5IHRoZSBkaWN0aW9uYXJ5IG9yIGtlZXAgdGhlXG4gICBtb2R1bGUgYXJvdW5kIHdoaWxlIHVzaW5nIGl0cyBkaWN0aW9uYXJ5IGRpcmVjdGx5LlxuXG4gICBQcmVkZWZpbmVkICh3cml0YWJsZSkgYXR0cmlidXRlczogYGBfX25hbWVfX2BgIGlzIHRoZSBtb2R1bGVcJ3NcbiAgIG5hbWU7IGBgX19kb2NfX2BgIGlzIHRoZSBtb2R1bGVcJ3MgZG9jdW1lbnRhdGlvbiBzdHJpbmcsIG9yIGBgTm9uZWBgXG4gICBpZiB1bmF2YWlsYWJsZTsgYGBfX2ZpbGVfX2BgIGlzIHRoZSBwYXRobmFtZSBvZiB0aGUgZmlsZSBmcm9tIHdoaWNoXG4gICB0aGUgbW9kdWxlIHdhcyBsb2FkZWQsIGlmIGl0IHdhcyBsb2FkZWQgZnJvbSBhIGZpbGUuIFRoZVxuICAgYGBfX2ZpbGVfX2BgIGF0dHJpYnV0ZSBpcyBub3QgcHJlc2VudCBmb3IgQyBtb2R1bGVzIHRoYXQgYXJlXG4gICBzdGF0aWNhbGx5IGxpbmtlZCBpbnRvIHRoZSBpbnRlcnByZXRlcjsgZm9yIGV4dGVuc2lvbiBtb2R1bGVzXG4gICBsb2FkZWQgZHluYW1pY2FsbHkgZnJvbSBhIHNoYXJlZCBsaWJyYXJ5LCBpdCBpcyB0aGUgcGF0aG5hbWUgb2YgdGhlXG4gICBzaGFyZWQgbGlicmFyeSBmaWxlLlxuXG5DdXN0b20gY2xhc3Nlc1xuICAgQ3VzdG9tIGNsYXNzIHR5cGVzIGFyZSB0eXBpY2FsbHkgY3JlYXRlZCBieSBjbGFzcyBkZWZpbml0aW9ucyAoc2VlXG4gICBzZWN0aW9uICpDbGFzcyBkZWZpbml0aW9ucyopLiAgQSBjbGFzcyBoYXMgYSBuYW1lc3BhY2UgaW1wbGVtZW50ZWRcbiAgIGJ5IGEgZGljdGlvbmFyeSBvYmplY3QuIENsYXNzIGF0dHJpYnV0ZSByZWZlcmVuY2VzIGFyZSB0cmFuc2xhdGVkXG4gICB0byBsb29rdXBzIGluIHRoaXMgZGljdGlvbmFyeSwgZS5nLiwgYGBDLnhgYCBpcyB0cmFuc2xhdGVkIHRvXG4gICBgYEMuX19kaWN0X19bIngiXWBgIChhbHRob3VnaCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgaG9va3Mgd2hpY2hcbiAgIGFsbG93IGZvciBvdGhlciBtZWFucyBvZiBsb2NhdGluZyBhdHRyaWJ1dGVzKS4gV2hlbiB0aGUgYXR0cmlidXRlXG4gICBuYW1lIGlzIG5vdCBmb3VuZCB0aGVyZSwgdGhlIGF0dHJpYnV0ZSBzZWFyY2ggY29udGludWVzIGluIHRoZSBiYXNlXG4gICBjbGFzc2VzLiBUaGlzIHNlYXJjaCBvZiB0aGUgYmFzZSBjbGFzc2VzIHVzZXMgdGhlIEMzIG1ldGhvZFxuICAgcmVzb2x1dGlvbiBvcmRlciB3aGljaCBiZWhhdmVzIGNvcnJlY3RseSBldmVuIGluIHRoZSBwcmVzZW5jZSBvZlxuICAgXCdkaWFtb25kXCcgaW5oZXJpdGFuY2Ugc3RydWN0dXJlcyB3aGVyZSB0aGVyZSBhcmUgbXVsdGlwbGVcbiAgIGluaGVyaXRhbmNlIHBhdGhzIGxlYWRpbmcgYmFjayB0byBhIGNvbW1vbiBhbmNlc3Rvci4gQWRkaXRpb25hbFxuICAgZGV0YWlscyBvbiB0aGUgQzMgTVJPIHVzZWQgYnkgUHl0aG9uIGNhbiBiZSBmb3VuZCBpbiB0aGVcbiAgIGRvY3VtZW50YXRpb24gYWNjb21wYW55aW5nIHRoZSAyLjMgcmVsZWFzZSBhdFxuICAgaHR0cDovL3d3dy5weXRob24ub3JnL2Rvd25sb2FkL3JlbGVhc2VzLzIuMy9tcm8vLlxuXG4gICBXaGVuIGEgY2xhc3MgYXR0cmlidXRlIHJlZmVyZW5jZSAoZm9yIGNsYXNzIGBgQ2BgLCBzYXkpIHdvdWxkIHlpZWxkXG4gICBhIGNsYXNzIG1ldGhvZCBvYmplY3QsIGl0IGlzIHRyYW5zZm9ybWVkIGludG8gYW4gaW5zdGFuY2UgbWV0aG9kXG4gICBvYmplY3Qgd2hvc2UgYGBfX3NlbGZfX2BgIGF0dHJpYnV0ZXMgaXMgYGBDYGAuICBXaGVuIGl0IHdvdWxkIHlpZWxkXG4gICBhIHN0YXRpYyBtZXRob2Qgb2JqZWN0LCBpdCBpcyB0cmFuc2Zvcm1lZCBpbnRvIHRoZSBvYmplY3Qgd3JhcHBlZFxuICAgYnkgdGhlIHN0YXRpYyBtZXRob2Qgb2JqZWN0LiBTZWUgc2VjdGlvbiAqSW1wbGVtZW50aW5nIERlc2NyaXB0b3JzKlxuICAgZm9yIGFub3RoZXIgd2F5IGluIHdoaWNoIGF0dHJpYnV0ZXMgcmV0cmlldmVkIGZyb20gYSBjbGFzcyBtYXlcbiAgIGRpZmZlciBmcm9tIHRob3NlIGFjdHVhbGx5IGNvbnRhaW5lZCBpbiBpdHMgYGBfX2RpY3RfX2BgLlxuXG4gICBDbGFzcyBhdHRyaWJ1dGUgYXNzaWdubWVudHMgdXBkYXRlIHRoZSBjbGFzc1wncyBkaWN0aW9uYXJ5LCBuZXZlclxuICAgdGhlIGRpY3Rpb25hcnkgb2YgYSBiYXNlIGNsYXNzLlxuXG4gICBBIGNsYXNzIG9iamVjdCBjYW4gYmUgY2FsbGVkIChzZWUgYWJvdmUpIHRvIHlpZWxkIGEgY2xhc3MgaW5zdGFuY2VcbiAgIChzZWUgYmVsb3cpLlxuXG4gICBTcGVjaWFsIGF0dHJpYnV0ZXM6IGBgX19uYW1lX19gYCBpcyB0aGUgY2xhc3MgbmFtZTsgYGBfX21vZHVsZV9fYGBcbiAgIGlzIHRoZSBtb2R1bGUgbmFtZSBpbiB3aGljaCB0aGUgY2xhc3Mgd2FzIGRlZmluZWQ7IGBgX19kaWN0X19gYCBpc1xuICAgdGhlIGRpY3Rpb25hcnkgY29udGFpbmluZyB0aGUgY2xhc3NcJ3MgbmFtZXNwYWNlOyBgYF9fYmFzZXNfX2BgIGlzIGFcbiAgIHR1cGxlIChwb3NzaWJseSBlbXB0eSBvciBhIHNpbmdsZXRvbikgY29udGFpbmluZyB0aGUgYmFzZSBjbGFzc2VzLFxuICAgaW4gdGhlIG9yZGVyIG9mIHRoZWlyIG9jY3VycmVuY2UgaW4gdGhlIGJhc2UgY2xhc3MgbGlzdDtcbiAgIGBgX19kb2NfX2BgIGlzIHRoZSBjbGFzc1wncyBkb2N1bWVudGF0aW9uIHN0cmluZywgb3IgTm9uZSBpZlxuICAgdW5kZWZpbmVkLlxuXG5DbGFzcyBpbnN0YW5jZXNcbiAgIEEgY2xhc3MgaW5zdGFuY2UgaXMgY3JlYXRlZCBieSBjYWxsaW5nIGEgY2xhc3Mgb2JqZWN0IChzZWUgYWJvdmUpLlxuICAgQSBjbGFzcyBpbnN0YW5jZSBoYXMgYSBuYW1lc3BhY2UgaW1wbGVtZW50ZWQgYXMgYSBkaWN0aW9uYXJ5IHdoaWNoXG4gICBpcyB0aGUgZmlyc3QgcGxhY2UgaW4gd2hpY2ggYXR0cmlidXRlIHJlZmVyZW5jZXMgYXJlIHNlYXJjaGVkLlxuICAgV2hlbiBhbiBhdHRyaWJ1dGUgaXMgbm90IGZvdW5kIHRoZXJlLCBhbmQgdGhlIGluc3RhbmNlXCdzIGNsYXNzIGhhc1xuICAgYW4gYXR0cmlidXRlIGJ5IHRoYXQgbmFtZSwgdGhlIHNlYXJjaCBjb250aW51ZXMgd2l0aCB0aGUgY2xhc3NcbiAgIGF0dHJpYnV0ZXMuICBJZiBhIGNsYXNzIGF0dHJpYnV0ZSBpcyBmb3VuZCB0aGF0IGlzIGEgdXNlci1kZWZpbmVkXG4gICBmdW5jdGlvbiBvYmplY3QsIGl0IGlzIHRyYW5zZm9ybWVkIGludG8gYW4gaW5zdGFuY2UgbWV0aG9kIG9iamVjdFxuICAgd2hvc2UgYGBfX3NlbGZfX2BgIGF0dHJpYnV0ZSBpcyB0aGUgaW5zdGFuY2UuICBTdGF0aWMgbWV0aG9kIGFuZFxuICAgY2xhc3MgbWV0aG9kIG9iamVjdHMgYXJlIGFsc28gdHJhbnNmb3JtZWQ7IHNlZSBhYm92ZSB1bmRlclxuICAgIkNsYXNzZXMiLiAgU2VlIHNlY3Rpb24gKkltcGxlbWVudGluZyBEZXNjcmlwdG9ycyogZm9yIGFub3RoZXIgd2F5XG4gICBpbiB3aGljaCBhdHRyaWJ1dGVzIG9mIGEgY2xhc3MgcmV0cmlldmVkIHZpYSBpdHMgaW5zdGFuY2VzIG1heVxuICAgZGlmZmVyIGZyb20gdGhlIG9iamVjdHMgYWN0dWFsbHkgc3RvcmVkIGluIHRoZSBjbGFzc1wnc1xuICAgYGBfX2RpY3RfX2BgLiAgSWYgbm8gY2xhc3MgYXR0cmlidXRlIGlzIGZvdW5kLCBhbmQgdGhlIG9iamVjdFwnc1xuICAgY2xhc3MgaGFzIGEgYGBfX2dldGF0dHJfXygpYGAgbWV0aG9kLCB0aGF0IGlzIGNhbGxlZCB0byBzYXRpc2Z5IHRoZVxuICAgbG9va3VwLlxuXG4gICBBdHRyaWJ1dGUgYXNzaWdubWVudHMgYW5kIGRlbGV0aW9ucyB1cGRhdGUgdGhlIGluc3RhbmNlXCdzXG4gICBkaWN0aW9uYXJ5LCBuZXZlciBhIGNsYXNzXCdzIGRpY3Rpb25hcnkuICBJZiB0aGUgY2xhc3MgaGFzIGFcbiAgIGBgX19zZXRhdHRyX18oKWBgIG9yIGBgX19kZWxhdHRyX18oKWBgIG1ldGhvZCwgdGhpcyBpcyBjYWxsZWRcbiAgIGluc3RlYWQgb2YgdXBkYXRpbmcgdGhlIGluc3RhbmNlIGRpY3Rpb25hcnkgZGlyZWN0bHkuXG5cbiAgIENsYXNzIGluc3RhbmNlcyBjYW4gcHJldGVuZCB0byBiZSBudW1iZXJzLCBzZXF1ZW5jZXMsIG9yIG1hcHBpbmdzXG4gICBpZiB0aGV5IGhhdmUgbWV0aG9kcyB3aXRoIGNlcnRhaW4gc3BlY2lhbCBuYW1lcy4gIFNlZSBzZWN0aW9uXG4gICAqU3BlY2lhbCBtZXRob2QgbmFtZXMqLlxuXG4gICBTcGVjaWFsIGF0dHJpYnV0ZXM6IGBgX19kaWN0X19gYCBpcyB0aGUgYXR0cmlidXRlIGRpY3Rpb25hcnk7XG4gICBgYF9fY2xhc3NfX2BgIGlzIHRoZSBpbnN0YW5jZVwncyBjbGFzcy5cblxuSS9PIG9iamVjdHMgKGFsc28ga25vd24gYXMgZmlsZSBvYmplY3RzKVxuICAgQSAqZmlsZSBvYmplY3QqIHJlcHJlc2VudHMgYW4gb3BlbiBmaWxlLiAgVmFyaW91cyBzaG9ydGN1dHMgYXJlXG4gICBhdmFpbGFibGUgdG8gY3JlYXRlIGZpbGUgb2JqZWN0czogdGhlIGBgb3BlbigpYGAgYnVpbHQtaW4gZnVuY3Rpb24sXG4gICBhbmQgYWxzbyBgYG9zLnBvcGVuKClgYCwgYGBvcy5mZG9wZW4oKWBgLCBhbmQgdGhlIGBgbWFrZWZpbGUoKWBgXG4gICBtZXRob2Qgb2Ygc29ja2V0IG9iamVjdHMgKGFuZCBwZXJoYXBzIGJ5IG90aGVyIGZ1bmN0aW9ucyBvciBtZXRob2RzXG4gICBwcm92aWRlZCBieSBleHRlbnNpb24gbW9kdWxlcykuXG5cbiAgIFRoZSBvYmplY3RzIGBgc3lzLnN0ZGluYGAsIGBgc3lzLnN0ZG91dGBgIGFuZCBgYHN5cy5zdGRlcnJgYCBhcmVcbiAgIGluaXRpYWxpemVkIHRvIGZpbGUgb2JqZWN0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBpbnRlcnByZXRlclwnc1xuICAgc3RhbmRhcmQgaW5wdXQsIG91dHB1dCBhbmQgZXJyb3Igc3RyZWFtczsgdGhleSBhcmUgYWxsIG9wZW4gaW4gdGV4dFxuICAgbW9kZSBhbmQgdGhlcmVmb3JlIGZvbGxvdyB0aGUgaW50ZXJmYWNlIGRlZmluZWQgYnkgdGhlXG4gICBgYGlvLlRleHRJT0Jhc2VgYCBhYnN0cmFjdCBjbGFzcy5cblxuSW50ZXJuYWwgdHlwZXNcbiAgIEEgZmV3IHR5cGVzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgaW50ZXJwcmV0ZXIgYXJlIGV4cG9zZWQgdG8gdGhlXG4gICB1c2VyLiBUaGVpciBkZWZpbml0aW9ucyBtYXkgY2hhbmdlIHdpdGggZnV0dXJlIHZlcnNpb25zIG9mIHRoZVxuICAgaW50ZXJwcmV0ZXIsIGJ1dCB0aGV5IGFyZSBtZW50aW9uZWQgaGVyZSBmb3IgY29tcGxldGVuZXNzLlxuXG4gICBDb2RlIG9iamVjdHNcbiAgICAgIENvZGUgb2JqZWN0cyByZXByZXNlbnQgKmJ5dGUtY29tcGlsZWQqIGV4ZWN1dGFibGUgUHl0aG9uIGNvZGUsXG4gICAgICBvciAqYnl0ZWNvZGUqLiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgY29kZSBvYmplY3QgYW5kIGFcbiAgICAgIGZ1bmN0aW9uIG9iamVjdCBpcyB0aGF0IHRoZSBmdW5jdGlvbiBvYmplY3QgY29udGFpbnMgYW4gZXhwbGljaXRcbiAgICAgIHJlZmVyZW5jZSB0byB0aGUgZnVuY3Rpb25cJ3MgZ2xvYmFscyAodGhlIG1vZHVsZSBpbiB3aGljaCBpdCB3YXNcbiAgICAgIGRlZmluZWQpLCB3aGlsZSBhIGNvZGUgb2JqZWN0IGNvbnRhaW5zIG5vIGNvbnRleHQ7IGFsc28gdGhlXG4gICAgICBkZWZhdWx0IGFyZ3VtZW50IHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBmdW5jdGlvbiBvYmplY3QsIG5vdFxuICAgICAgaW4gdGhlIGNvZGUgb2JqZWN0IChiZWNhdXNlIHRoZXkgcmVwcmVzZW50IHZhbHVlcyBjYWxjdWxhdGVkIGF0XG4gICAgICBydW4tdGltZSkuICBVbmxpa2UgZnVuY3Rpb24gb2JqZWN0cywgY29kZSBvYmplY3RzIGFyZSBpbW11dGFibGVcbiAgICAgIGFuZCBjb250YWluIG5vIHJlZmVyZW5jZXMgKGRpcmVjdGx5IG9yIGluZGlyZWN0bHkpIHRvIG11dGFibGVcbiAgICAgIG9iamVjdHMuXG5cbiAgICAgIFNwZWNpYWwgcmVhZC1vbmx5IGF0dHJpYnV0ZXM6IGBgY29fbmFtZWBgIGdpdmVzIHRoZSBmdW5jdGlvblxuICAgICAgbmFtZTsgYGBjb19hcmdjb3VudGBgIGlzIHRoZSBudW1iZXIgb2YgcG9zaXRpb25hbCBhcmd1bWVudHNcbiAgICAgIChpbmNsdWRpbmcgYXJndW1lbnRzIHdpdGggZGVmYXVsdCB2YWx1ZXMpOyBgYGNvX25sb2NhbHNgYCBpcyB0aGVcbiAgICAgIG51bWJlciBvZiBsb2NhbCB2YXJpYWJsZXMgdXNlZCBieSB0aGUgZnVuY3Rpb24gKGluY2x1ZGluZ1xuICAgICAgYXJndW1lbnRzKTsgYGBjb192YXJuYW1lc2BgIGlzIGEgdHVwbGUgY29udGFpbmluZyB0aGUgbmFtZXMgb2ZcbiAgICAgIHRoZSBsb2NhbCB2YXJpYWJsZXMgKHN0YXJ0aW5nIHdpdGggdGhlIGFyZ3VtZW50IG5hbWVzKTtcbiAgICAgIGBgY29fY2VsbHZhcnNgYCBpcyBhIHR1cGxlIGNvbnRhaW5pbmcgdGhlIG5hbWVzIG9mIGxvY2FsXG4gICAgICB2YXJpYWJsZXMgdGhhdCBhcmUgcmVmZXJlbmNlZCBieSBuZXN0ZWQgZnVuY3Rpb25zO1xuICAgICAgYGBjb19mcmVldmFyc2BgIGlzIGEgdHVwbGUgY29udGFpbmluZyB0aGUgbmFtZXMgb2YgZnJlZVxuICAgICAgdmFyaWFibGVzOyBgYGNvX2NvZGVgYCBpcyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHNlcXVlbmNlIG9mXG4gICAgICBieXRlY29kZSBpbnN0cnVjdGlvbnM7IGBgY29fY29uc3RzYGAgaXMgYSB0dXBsZSBjb250YWluaW5nIHRoZVxuICAgICAgbGl0ZXJhbHMgdXNlZCBieSB0aGUgYnl0ZWNvZGU7IGBgY29fbmFtZXNgYCBpcyBhIHR1cGxlXG4gICAgICBjb250YWluaW5nIHRoZSBuYW1lcyB1c2VkIGJ5IHRoZSBieXRlY29kZTsgYGBjb19maWxlbmFtZWBgIGlzXG4gICAgICB0aGUgZmlsZW5hbWUgZnJvbSB3aGljaCB0aGUgY29kZSB3YXMgY29tcGlsZWQ7XG4gICAgICBgYGNvX2ZpcnN0bGluZW5vYGAgaXMgdGhlIGZpcnN0IGxpbmUgbnVtYmVyIG9mIHRoZSBmdW5jdGlvbjtcbiAgICAgIGBgY29fbG5vdGFiYGAgaXMgYSBzdHJpbmcgZW5jb2RpbmcgdGhlIG1hcHBpbmcgZnJvbSBieXRlY29kZVxuICAgICAgb2Zmc2V0cyB0byBsaW5lIG51bWJlcnMgKGZvciBkZXRhaWxzIHNlZSB0aGUgc291cmNlIGNvZGUgb2YgdGhlXG4gICAgICBpbnRlcnByZXRlcik7IGBgY29fc3RhY2tzaXplYGAgaXMgdGhlIHJlcXVpcmVkIHN0YWNrIHNpemVcbiAgICAgIChpbmNsdWRpbmcgbG9jYWwgdmFyaWFibGVzKTsgYGBjb19mbGFnc2BgIGlzIGFuIGludGVnZXIgZW5jb2RpbmdcbiAgICAgIGEgbnVtYmVyIG9mIGZsYWdzIGZvciB0aGUgaW50ZXJwcmV0ZXIuXG5cbiAgICAgIFRoZSBmb2xsb3dpbmcgZmxhZyBiaXRzIGFyZSBkZWZpbmVkIGZvciBgYGNvX2ZsYWdzYGA6IGJpdFxuICAgICAgYGAweDA0YGAgaXMgc2V0IGlmIHRoZSBmdW5jdGlvbiB1c2VzIHRoZSBgYCphcmd1bWVudHNgYCBzeW50YXhcbiAgICAgIHRvIGFjY2VwdCBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mIHBvc2l0aW9uYWwgYXJndW1lbnRzOyBiaXRcbiAgICAgIGBgMHgwOGBgIGlzIHNldCBpZiB0aGUgZnVuY3Rpb24gdXNlcyB0aGUgYGAqKmtleXdvcmRzYGAgc3ludGF4XG4gICAgICB0byBhY2NlcHQgYXJiaXRyYXJ5IGtleXdvcmQgYXJndW1lbnRzOyBiaXQgYGAweDIwYGAgaXMgc2V0IGlmXG4gICAgICB0aGUgZnVuY3Rpb24gaXMgYSBnZW5lcmF0b3IuXG5cbiAgICAgIEZ1dHVyZSBmZWF0dXJlIGRlY2xhcmF0aW9ucyAoYGBmcm9tIF9fZnV0dXJlX18gaW1wb3J0XG4gICAgICBkaXZpc2lvbmBgKSBhbHNvIHVzZSBiaXRzIGluIGBgY29fZmxhZ3NgYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGFcbiAgICAgIGNvZGUgb2JqZWN0IHdhcyBjb21waWxlZCB3aXRoIGEgcGFydGljdWxhciBmZWF0dXJlIGVuYWJsZWQ6IGJpdFxuICAgICAgYGAweDIwMDBgYCBpcyBzZXQgaWYgdGhlIGZ1bmN0aW9uIHdhcyBjb21waWxlZCB3aXRoIGZ1dHVyZVxuICAgICAgZGl2aXNpb24gZW5hYmxlZDsgYml0cyBgYDB4MTBgYCBhbmQgYGAweDEwMDBgYCB3ZXJlIHVzZWQgaW5cbiAgICAgIGVhcmxpZXIgdmVyc2lvbnMgb2YgUHl0aG9uLlxuXG4gICAgICBPdGhlciBiaXRzIGluIGBgY29fZmxhZ3NgYCBhcmUgcmVzZXJ2ZWQgZm9yIGludGVybmFsIHVzZS5cblxuICAgICAgSWYgYSBjb2RlIG9iamVjdCByZXByZXNlbnRzIGEgZnVuY3Rpb24sIHRoZSBmaXJzdCBpdGVtIGluXG4gICAgICBgYGNvX2NvbnN0c2BgIGlzIHRoZSBkb2N1bWVudGF0aW9uIHN0cmluZyBvZiB0aGUgZnVuY3Rpb24sIG9yXG4gICAgICBgYE5vbmVgYCBpZiB1bmRlZmluZWQuXG5cbiAgIEZyYW1lIG9iamVjdHNcbiAgICAgIEZyYW1lIG9iamVjdHMgcmVwcmVzZW50IGV4ZWN1dGlvbiBmcmFtZXMuICBUaGV5IG1heSBvY2N1ciBpblxuICAgICAgdHJhY2ViYWNrIG9iamVjdHMgKHNlZSBiZWxvdykuXG5cbiAgICAgIFNwZWNpYWwgcmVhZC1vbmx5IGF0dHJpYnV0ZXM6IGBgZl9iYWNrYGAgaXMgdG8gdGhlIHByZXZpb3VzXG4gICAgICBzdGFjayBmcmFtZSAodG93YXJkcyB0aGUgY2FsbGVyKSwgb3IgYGBOb25lYGAgaWYgdGhpcyBpcyB0aGVcbiAgICAgIGJvdHRvbSBzdGFjayBmcmFtZTsgYGBmX2NvZGVgYCBpcyB0aGUgY29kZSBvYmplY3QgYmVpbmcgZXhlY3V0ZWRcbiAgICAgIGluIHRoaXMgZnJhbWU7IGBgZl9sb2NhbHNgYCBpcyB0aGUgZGljdGlvbmFyeSB1c2VkIHRvIGxvb2sgdXBcbiAgICAgIGxvY2FsIHZhcmlhYmxlczsgYGBmX2dsb2JhbHNgYCBpcyB1c2VkIGZvciBnbG9iYWwgdmFyaWFibGVzO1xuICAgICAgYGBmX2J1aWx0aW5zYGAgaXMgdXNlZCBmb3IgYnVpbHQtaW4gKGludHJpbnNpYykgbmFtZXM7XG4gICAgICBgYGZfbGFzdGlgYCBnaXZlcyB0aGUgcHJlY2lzZSBpbnN0cnVjdGlvbiAodGhpcyBpcyBhbiBpbmRleCBpbnRvXG4gICAgICB0aGUgYnl0ZWNvZGUgc3RyaW5nIG9mIHRoZSBjb2RlIG9iamVjdCkuXG5cbiAgICAgIFNwZWNpYWwgd3JpdGFibGUgYXR0cmlidXRlczogYGBmX3RyYWNlYGAsIGlmIG5vdCBgYE5vbmVgYCwgaXMgYVxuICAgICAgZnVuY3Rpb24gY2FsbGVkIGF0IHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBjb2RlIGxpbmUgKHRoaXMgaXNcbiAgICAgIHVzZWQgYnkgdGhlIGRlYnVnZ2VyKTsgYGBmX2xpbmVub2BgIGlzIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyXG4gICAgICBvZiB0aGUgZnJhbWUgLS0tIHdyaXRpbmcgdG8gdGhpcyBmcm9tIHdpdGhpbiBhIHRyYWNlIGZ1bmN0aW9uXG4gICAgICBqdW1wcyB0byB0aGUgZ2l2ZW4gbGluZSAob25seSBmb3IgdGhlIGJvdHRvbS1tb3N0IGZyYW1lKS4gIEFcbiAgICAgIGRlYnVnZ2VyIGNhbiBpbXBsZW1lbnQgYSBKdW1wIGNvbW1hbmQgKGFrYSBTZXQgTmV4dCBTdGF0ZW1lbnQpXG4gICAgICBieSB3cml0aW5nIHRvIGZfbGluZW5vLlxuXG4gICBUcmFjZWJhY2sgb2JqZWN0c1xuICAgICAgVHJhY2ViYWNrIG9iamVjdHMgcmVwcmVzZW50IGEgc3RhY2sgdHJhY2Ugb2YgYW4gZXhjZXB0aW9uLiAgQVxuICAgICAgdHJhY2ViYWNrIG9iamVjdCBpcyBjcmVhdGVkIHdoZW4gYW4gZXhjZXB0aW9uIG9jY3Vycy4gIFdoZW4gdGhlXG4gICAgICBzZWFyY2ggZm9yIGFuIGV4Y2VwdGlvbiBoYW5kbGVyIHVud2luZHMgdGhlIGV4ZWN1dGlvbiBzdGFjaywgYXRcbiAgICAgIGVhY2ggdW53b3VuZCBsZXZlbCBhIHRyYWNlYmFjayBvYmplY3QgaXMgaW5zZXJ0ZWQgaW4gZnJvbnQgb2ZcbiAgICAgIHRoZSBjdXJyZW50IHRyYWNlYmFjay4gIFdoZW4gYW4gZXhjZXB0aW9uIGhhbmRsZXIgaXMgZW50ZXJlZCxcbiAgICAgIHRoZSBzdGFjayB0cmFjZSBpcyBtYWRlIGF2YWlsYWJsZSB0byB0aGUgcHJvZ3JhbS4gKFNlZSBzZWN0aW9uXG4gICAgICAqVGhlIHRyeSBzdGF0ZW1lbnQqLikgSXQgaXMgYWNjZXNzaWJsZSBhcyB0aGUgdGhpcmQgaXRlbSBvZiB0aGVcbiAgICAgIHR1cGxlIHJldHVybmVkIGJ5IGBgc3lzLmV4Y19pbmZvKClgYC4gV2hlbiB0aGUgcHJvZ3JhbSBjb250YWluc1xuICAgICAgbm8gc3VpdGFibGUgaGFuZGxlciwgdGhlIHN0YWNrIHRyYWNlIGlzIHdyaXR0ZW4gKG5pY2VseVxuICAgICAgZm9ybWF0dGVkKSB0byB0aGUgc3RhbmRhcmQgZXJyb3Igc3RyZWFtOyBpZiB0aGUgaW50ZXJwcmV0ZXIgaXNcbiAgICAgIGludGVyYWN0aXZlLCBpdCBpcyBhbHNvIG1hZGUgYXZhaWxhYmxlIHRvIHRoZSB1c2VyIGFzXG4gICAgICBgYHN5cy5sYXN0X3RyYWNlYmFja2BgLlxuXG4gICAgICBTcGVjaWFsIHJlYWQtb25seSBhdHRyaWJ1dGVzOiBgYHRiX25leHRgYCBpcyB0aGUgbmV4dCBsZXZlbCBpblxuICAgICAgdGhlIHN0YWNrIHRyYWNlICh0b3dhcmRzIHRoZSBmcmFtZSB3aGVyZSB0aGUgZXhjZXB0aW9uXG4gICAgICBvY2N1cnJlZCksIG9yIGBgTm9uZWBgIGlmIHRoZXJlIGlzIG5vIG5leHQgbGV2ZWw7IGBgdGJfZnJhbWVgYFxuICAgICAgcG9pbnRzIHRvIHRoZSBleGVjdXRpb24gZnJhbWUgb2YgdGhlIGN1cnJlbnQgbGV2ZWw7XG4gICAgICBgYHRiX2xpbmVub2BgIGdpdmVzIHRoZSBsaW5lIG51bWJlciB3aGVyZSB0aGUgZXhjZXB0aW9uXG4gICAgICBvY2N1cnJlZDsgYGB0Yl9sYXN0aWBgIGluZGljYXRlcyB0aGUgcHJlY2lzZSBpbnN0cnVjdGlvbi4gIFRoZVxuICAgICAgbGluZSBudW1iZXIgYW5kIGxhc3QgaW5zdHJ1Y3Rpb24gaW4gdGhlIHRyYWNlYmFjayBtYXkgZGlmZmVyXG4gICAgICBmcm9tIHRoZSBsaW5lIG51bWJlciBvZiBpdHMgZnJhbWUgb2JqZWN0IGlmIHRoZSBleGNlcHRpb25cbiAgICAgIG9jY3VycmVkIGluIGEgYGB0cnlgYCBzdGF0ZW1lbnQgd2l0aCBubyBtYXRjaGluZyBleGNlcHQgY2xhdXNlXG4gICAgICBvciB3aXRoIGEgZmluYWxseSBjbGF1c2UuXG5cbiAgIFNsaWNlIG9iamVjdHNcbiAgICAgIFNsaWNlIG9iamVjdHMgYXJlIHVzZWQgdG8gcmVwcmVzZW50IHNsaWNlcyBmb3IgYGBfX2dldGl0ZW1fXygpYGBcbiAgICAgIG1ldGhvZHMuICBUaGV5IGFyZSBhbHNvIGNyZWF0ZWQgYnkgdGhlIGJ1aWx0LWluIGBgc2xpY2UoKWBgXG4gICAgICBmdW5jdGlvbi5cblxuICAgICAgU3BlY2lhbCByZWFkLW9ubHkgYXR0cmlidXRlczogYGBzdGFydGBgIGlzIHRoZSBsb3dlciBib3VuZDtcbiAgICAgIGBgc3RvcGBgIGlzIHRoZSB1cHBlciBib3VuZDsgYGBzdGVwYGAgaXMgdGhlIHN0ZXAgdmFsdWU7IGVhY2ggaXNcbiAgICAgIGBgTm9uZWBgIGlmIG9taXR0ZWQuIFRoZXNlIGF0dHJpYnV0ZXMgY2FuIGhhdmUgYW55IHR5cGUuXG5cbiAgICAgIFNsaWNlIG9iamVjdHMgc3VwcG9ydCBvbmUgbWV0aG9kOlxuXG4gICAgICBzbGljZS5pbmRpY2VzKHNlbGYsIGxlbmd0aClcblxuICAgICAgICAgVGhpcyBtZXRob2QgdGFrZXMgYSBzaW5nbGUgaW50ZWdlciBhcmd1bWVudCAqbGVuZ3RoKiBhbmRcbiAgICAgICAgIGNvbXB1dGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzbGljZSB0aGF0IHRoZSBzbGljZSBvYmplY3RcbiAgICAgICAgIHdvdWxkIGRlc2NyaWJlIGlmIGFwcGxpZWQgdG8gYSBzZXF1ZW5jZSBvZiAqbGVuZ3RoKiBpdGVtcy5cbiAgICAgICAgIEl0IHJldHVybnMgYSB0dXBsZSBvZiB0aHJlZSBpbnRlZ2VyczsgcmVzcGVjdGl2ZWx5IHRoZXNlIGFyZVxuICAgICAgICAgdGhlICpzdGFydCogYW5kICpzdG9wKiBpbmRpY2VzIGFuZCB0aGUgKnN0ZXAqIG9yIHN0cmlkZVxuICAgICAgICAgbGVuZ3RoIG9mIHRoZSBzbGljZS4gTWlzc2luZyBvciBvdXQtb2YtYm91bmRzIGluZGljZXMgYXJlXG4gICAgICAgICBoYW5kbGVkIGluIGEgbWFubmVyIGNvbnNpc3RlbnQgd2l0aCByZWd1bGFyIHNsaWNlcy5cblxuICAgU3RhdGljIG1ldGhvZCBvYmplY3RzXG4gICAgICBTdGF0aWMgbWV0aG9kIG9iamVjdHMgcHJvdmlkZSBhIHdheSBvZiBkZWZlYXRpbmcgdGhlXG4gICAgICB0cmFuc2Zvcm1hdGlvbiBvZiBmdW5jdGlvbiBvYmplY3RzIHRvIG1ldGhvZCBvYmplY3RzIGRlc2NyaWJlZFxuICAgICAgYWJvdmUuIEEgc3RhdGljIG1ldGhvZCBvYmplY3QgaXMgYSB3cmFwcGVyIGFyb3VuZCBhbnkgb3RoZXJcbiAgICAgIG9iamVjdCwgdXN1YWxseSBhIHVzZXItZGVmaW5lZCBtZXRob2Qgb2JqZWN0LiBXaGVuIGEgc3RhdGljXG4gICAgICBtZXRob2Qgb2JqZWN0IGlzIHJldHJpZXZlZCBmcm9tIGEgY2xhc3Mgb3IgYSBjbGFzcyBpbnN0YW5jZSwgdGhlXG4gICAgICBvYmplY3QgYWN0dWFsbHkgcmV0dXJuZWQgaXMgdGhlIHdyYXBwZWQgb2JqZWN0LCB3aGljaCBpcyBub3RcbiAgICAgIHN1YmplY3QgdG8gYW55IGZ1cnRoZXIgdHJhbnNmb3JtYXRpb24uIFN0YXRpYyBtZXRob2Qgb2JqZWN0cyBhcmVcbiAgICAgIG5vdCB0aGVtc2VsdmVzIGNhbGxhYmxlLCBhbHRob3VnaCB0aGUgb2JqZWN0cyB0aGV5IHdyYXAgdXN1YWxseVxuICAgICAgYXJlLiBTdGF0aWMgbWV0aG9kIG9iamVjdHMgYXJlIGNyZWF0ZWQgYnkgdGhlIGJ1aWx0LWluXG4gICAgICBgYHN0YXRpY21ldGhvZCgpYGAgY29uc3RydWN0b3IuXG5cbiAgIENsYXNzIG1ldGhvZCBvYmplY3RzXG4gICAgICBBIGNsYXNzIG1ldGhvZCBvYmplY3QsIGxpa2UgYSBzdGF0aWMgbWV0aG9kIG9iamVjdCwgaXMgYSB3cmFwcGVyXG4gICAgICBhcm91bmQgYW5vdGhlciBvYmplY3QgdGhhdCBhbHRlcnMgdGhlIHdheSBpbiB3aGljaCB0aGF0IG9iamVjdFxuICAgICAgaXMgcmV0cmlldmVkIGZyb20gY2xhc3NlcyBhbmQgY2xhc3MgaW5zdGFuY2VzLiBUaGUgYmVoYXZpb3VyIG9mXG4gICAgICBjbGFzcyBtZXRob2Qgb2JqZWN0cyB1cG9uIHN1Y2ggcmV0cmlldmFsIGlzIGRlc2NyaWJlZCBhYm92ZSxcbiAgICAgIHVuZGVyICJVc2VyLWRlZmluZWQgbWV0aG9kcyIuIENsYXNzIG1ldGhvZCBvYmplY3RzIGFyZSBjcmVhdGVkXG4gICAgICBieSB0aGUgYnVpbHQtaW4gYGBjbGFzc21ldGhvZCgpYGAgY29uc3RydWN0b3IuXG4nLAorICd0eXBlcyc6ICdcblRoZSBzdGFuZGFyZCB0eXBlIGhpZXJhcmNoeVxuKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cbkJlbG93IGlzIGEgbGlzdCBvZiB0aGUgdHlwZXMgdGhhdCBhcmUgYnVpbHQgaW50byBQeXRob24uICBFeHRlbnNpb25cbm1vZHVsZXMgKHdyaXR0ZW4gaW4gQywgSmF2YSwgb3Igb3RoZXIgbGFuZ3VhZ2VzLCBkZXBlbmRpbmcgb24gdGhlXG5pbXBsZW1lbnRhdGlvbikgY2FuIGRlZmluZSBhZGRpdGlvbmFsIHR5cGVzLiAgRnV0dXJlIHZlcnNpb25zIG9mXG5QeXRob24gbWF5IGFkZCB0eXBlcyB0byB0aGUgdHlwZSBoaWVyYXJjaHkgKGUuZy4sIHJhdGlvbmFsIG51bWJlcnMsXG5lZmZpY2llbnRseSBzdG9yZWQgYXJyYXlzIG9mIGludGVnZXJzLCBldGMuKSwgYWx0aG91Z2ggc3VjaCBhZGRpdGlvbnNcbndpbGwgb2Z0ZW4gYmUgcHJvdmlkZWQgdmlhIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGluc3RlYWQuXG5cblNvbWUgb2YgdGhlIHR5cGUgZGVzY3JpcHRpb25zIGJlbG93IGNvbnRhaW4gYSBwYXJhZ3JhcGggbGlzdGluZ1xuXCdzcGVjaWFsIGF0dHJpYnV0ZXMuXCcgIFRoZXNlIGFyZSBhdHRyaWJ1dGVzIHRoYXQgcHJvdmlkZSBhY2Nlc3MgdG8gdGhlXG5pbXBsZW1lbnRhdGlvbiBhbmQgYXJlIG5vdCBpbnRlbmRlZCBmb3IgZ2VuZXJhbCB1c2UuICBUaGVpciBkZWZpbml0aW9uXG5tYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUuXG5cbk5vbmVcbiAgIFRoaXMgdHlwZSBoYXMgYSBzaW5nbGUgdmFsdWUuICBUaGVyZSBpcyBhIHNpbmdsZSBvYmplY3Qgd2l0aCB0aGlzXG4gICB2YWx1ZS4gVGhpcyBvYmplY3QgaXMgYWNjZXNzZWQgdGhyb3VnaCB0aGUgYnVpbHQtaW4gbmFtZSBgYE5vbmVgYC5cbiAgIEl0IGlzIHVzZWQgdG8gc2lnbmlmeSB0aGUgYWJzZW5jZSBvZiBhIHZhbHVlIGluIG1hbnkgc2l0dWF0aW9ucyxcbiAgIGUuZy4sIGl0IGlzIHJldHVybmVkIGZyb20gZnVuY3Rpb25zIHRoYXQgZG9uXCd0IGV4cGxpY2l0bHkgcmV0dXJuXG4gICBhbnl0aGluZy4gSXRzIHRydXRoIHZhbHVlIGlzIGZhbHNlLlxuXG5Ob3RJbXBsZW1lbnRlZFxuICAgVGhpcyB0eXBlIGhhcyBhIHNpbmdsZSB2YWx1ZS4gIFRoZXJlIGlzIGEgc2luZ2xlIG9iamVjdCB3aXRoIHRoaXNcbiAgIHZhbHVlLiBUaGlzIG9iamVjdCBpcyBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBidWlsdC1pbiBuYW1lXG4gICBgYE5vdEltcGxlbWVudGVkYGAuIE51bWVyaWMgbWV0aG9kcyBhbmQgcmljaCBjb21wYXJpc29uIG1ldGhvZHMgbWF5XG4gICByZXR1cm4gdGhpcyB2YWx1ZSBpZiB0aGV5IGRvIG5vdCBpbXBsZW1lbnQgdGhlIG9wZXJhdGlvbiBmb3IgdGhlXG4gICBvcGVyYW5kcyBwcm92aWRlZC4gIChUaGUgaW50ZXJwcmV0ZXIgd2lsbCB0aGVuIHRyeSB0aGUgcmVmbGVjdGVkXG4gICBvcGVyYXRpb24sIG9yIHNvbWUgb3RoZXIgZmFsbGJhY2ssIGRlcGVuZGluZyBvbiB0aGUgb3BlcmF0b3IuKSAgSXRzXG4gICB0cnV0aCB2YWx1ZSBpcyB0cnVlLlxuXG5FbGxpcHNpc1xuICAgVGhpcyB0eXBlIGhhcyBhIHNpbmdsZSB2YWx1ZS4gIFRoZXJlIGlzIGEgc2luZ2xlIG9iamVjdCB3aXRoIHRoaXNcbiAgIHZhbHVlLiBUaGlzIG9iamVjdCBpcyBhY2Nlc3NlZCB0aHJvdWdoIHRoZSBsaXRlcmFsIGBgLi4uYGAgb3IgdGhlXG4gICBidWlsdC1pbiBuYW1lIGBgRWxsaXBzaXNgYC4gIEl0cyB0cnV0aCB2YWx1ZSBpcyB0cnVlLlxuXG5gYG51bWJlcnMuTnVtYmVyYGBcbiAgIFRoZXNlIGFyZSBjcmVhdGVkIGJ5IG51bWVyaWMgbGl0ZXJhbHMgYW5kIHJldHVybmVkIGFzIHJlc3VsdHMgYnlcbiAgIGFyaXRobWV0aWMgb3BlcmF0b3JzIGFuZCBhcml0aG1ldGljIGJ1aWx0LWluIGZ1bmN0aW9ucy4gIE51bWVyaWNcbiAgIG9iamVjdHMgYXJlIGltbXV0YWJsZTsgb25jZSBjcmVhdGVkIHRoZWlyIHZhbHVlIG5ldmVyIGNoYW5nZXMuXG4gICBQeXRob24gbnVtYmVycyBhcmUgb2YgY291cnNlIHN0cm9uZ2x5IHJlbGF0ZWQgdG8gbWF0aGVtYXRpY2FsXG4gICBudW1iZXJzLCBidXQgc3ViamVjdCB0byB0aGUgbGltaXRhdGlvbnMgb2YgbnVtZXJpY2FsIHJlcHJlc2VudGF0aW9uXG4gICBpbiBjb21wdXRlcnMuXG5cbiAgIFB5dGhvbiBkaXN0aW5ndWlzaGVzIGJldHdlZW4gaW50ZWdlcnMsIGZsb2F0aW5nIHBvaW50IG51bWJlcnMsIGFuZFxuICAgY29tcGxleCBudW1iZXJzOlxuXG4gICBgYG51bWJlcnMuSW50ZWdyYWxgYFxuICAgICAgVGhlc2UgcmVwcmVzZW50IGVsZW1lbnRzIGZyb20gdGhlIG1hdGhlbWF0aWNhbCBzZXQgb2YgaW50ZWdlcnNcbiAgICAgIChwb3NpdGl2ZSBhbmQgbmVnYXRpdmUpLlxuXG4gICAgICBUaGVyZSBhcmUgdHdvIHR5cGVzIG9mIGludGVnZXJzOlxuXG4gICAgICBJbnRlZ2VycyAoYGBpbnRgYClcblxuICAgICAgICAgVGhlc2UgcmVwcmVzZW50IG51bWJlcnMgaW4gYW4gdW5saW1pdGVkIHJhbmdlLCBzdWJqZWN0IHRvXG4gICAgICAgICBhdmFpbGFibGUgKHZpcnR1YWwpIG1lbW9yeSBvbmx5LiAgRm9yIHRoZSBwdXJwb3NlIG9mIHNoaWZ0XG4gICAgICAgICBhbmQgbWFzayBvcGVyYXRpb25zLCBhIGJpbmFyeSByZXByZXNlbnRhdGlvbiBpcyBhc3N1bWVkLCBhbmRcbiAgICAgICAgIG5lZ2F0aXZlIG51bWJlcnMgYXJlIHJlcHJlc2VudGVkIGluIGEgdmFyaWFudCBvZiAyXCdzXG4gICAgICAgICBjb21wbGVtZW50IHdoaWNoIGdpdmVzIHRoZSBpbGx1c2lvbiBvZiBhbiBpbmZpbml0ZSBzdHJpbmcgb2ZcbiAgICAgICAgIHNpZ24gYml0cyBleHRlbmRpbmcgdG8gdGhlIGxlZnQuXG5cbiAgICAgIEJvb2xlYW5zIChgYGJvb2xgYClcbiAgICAgICAgIFRoZXNlIHJlcHJlc2VudCB0aGUgdHJ1dGggdmFsdWVzIEZhbHNlIGFuZCBUcnVlLiAgVGhlIHR3b1xuICAgICAgICAgb2JqZWN0cyByZXByZXNlbnRpbmcgdGhlIHZhbHVlcyBGYWxzZSBhbmQgVHJ1ZSBhcmUgdGhlIG9ubHlcbiAgICAgICAgIEJvb2xlYW4gb2JqZWN0cy4gVGhlIEJvb2xlYW4gdHlwZSBpcyBhIHN1YnR5cGUgb2YgdGhlIGludGVnZXJcbiAgICAgICAgIHR5cGUsIGFuZCBCb29sZWFuIHZhbHVlcyBiZWhhdmUgbGlrZSB0aGUgdmFsdWVzIDAgYW5kIDEsXG4gICAgICAgICByZXNwZWN0aXZlbHksIGluIGFsbW9zdCBhbGwgY29udGV4dHMsIHRoZSBleGNlcHRpb24gYmVpbmdcbiAgICAgICAgIHRoYXQgd2hlbiBjb252ZXJ0ZWQgdG8gYSBzdHJpbmcsIHRoZSBzdHJpbmdzIGBgIkZhbHNlImBgIG9yXG4gICAgICAgICBgYCJUcnVlImBgIGFyZSByZXR1cm5lZCwgcmVzcGVjdGl2ZWx5LlxuXG4gICAgICBUaGUgcnVsZXMgZm9yIGludGVnZXIgcmVwcmVzZW50YXRpb24gYXJlIGludGVuZGVkIHRvIGdpdmUgdGhlXG4gICAgICBtb3N0IG1lYW5pbmdmdWwgaW50ZXJwcmV0YXRpb24gb2Ygc2hpZnQgYW5kIG1hc2sgb3BlcmF0aW9uc1xuICAgICAgaW52b2x2aW5nIG5lZ2F0aXZlIGludGVnZXJzLlxuXG4gICBgYG51bWJlcnMuUmVhbGBgIChgYGZsb2F0YGApXG4gICAgICBUaGVzZSByZXByZXNlbnQgbWFjaGluZS1sZXZlbCBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50XG4gICAgICBudW1iZXJzLiBZb3UgYXJlIGF0IHRoZSBtZXJjeSBvZiB0aGUgdW5kZXJseWluZyBtYWNoaW5lXG4gICAgICBhcmNoaXRlY3R1cmUgKGFuZCBDIG9yIEphdmEgaW1wbGVtZW50YXRpb24pIGZvciB0aGUgYWNjZXB0ZWRcbiAgICAgIHJhbmdlIGFuZCBoYW5kbGluZyBvZiBvdmVyZmxvdy4gUHl0aG9uIGRvZXMgbm90IHN1cHBvcnQgc2luZ2xlLVxuICAgICAgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IG51bWJlcnM7IHRoZSBzYXZpbmdzIGluIHByb2Nlc3NvciBhbmRcbiAgICAgIG1lbW9yeSB1c2FnZSB0aGF0IGFyZSB1c3VhbGx5IHRoZSByZWFzb24gZm9yIHVzaW5nIHRoZXNlIGlzXG4gICAgICBkd2FyZmVkIGJ5IHRoZSBvdmVyaGVhZCBvZiB1c2luZyBvYmplY3RzIGluIFB5dGhvbiwgc28gdGhlcmUgaXNcbiAgICAgIG5vIHJlYXNvbiB0byBjb21wbGljYXRlIHRoZSBsYW5ndWFnZSB3aXRoIHR3byBraW5kcyBvZiBmbG9hdGluZ1xuICAgICAgcG9pbnQgbnVtYmVycy5cblxuICAgYGBudW1iZXJzLkNvbXBsZXhgYCAoYGBjb21wbGV4YGApXG4gICAgICBUaGVzZSByZXByZXNlbnQgY29tcGxleCBudW1iZXJzIGFzIGEgcGFpciBvZiBtYWNoaW5lLWxldmVsXG4gICAgICBkb3VibGUgcHJlY2lzaW9uIGZsb2F0aW5nIHBvaW50IG51bWJlcnMuICBUaGUgc2FtZSBjYXZlYXRzIGFwcGx5XG4gICAgICBhcyBmb3IgZmxvYXRpbmcgcG9pbnQgbnVtYmVycy4gVGhlIHJlYWwgYW5kIGltYWdpbmFyeSBwYXJ0cyBvZiBhXG4gICAgICBjb21wbGV4IG51bWJlciBgYHpgYCBjYW4gYmUgcmV0cmlldmVkIHRocm91Z2ggdGhlIHJlYWQtb25seVxuICAgICAgYXR0cmlidXRlcyBgYHoucmVhbGBgIGFuZCBgYHouaW1hZ2BgLlxuXG5TZXF1ZW5jZXNcbiAgIFRoZXNlIHJlcHJlc2VudCBmaW5pdGUgb3JkZXJlZCBzZXRzIGluZGV4ZWQgYnkgbm9uLW5lZ2F0aXZlXG4gICBudW1iZXJzLiBUaGUgYnVpbHQtaW4gZnVuY3Rpb24gYGBsZW4oKWBgIHJldHVybnMgdGhlIG51bWJlciBvZlxuICAgaXRlbXMgb2YgYSBzZXF1ZW5jZS4gV2hlbiB0aGUgbGVuZ3RoIG9mIGEgc2VxdWVuY2UgaXMgKm4qLCB0aGVcbiAgIGluZGV4IHNldCBjb250YWlucyB0aGUgbnVtYmVycyAwLCAxLCAuLi4sICpuKi0xLiAgSXRlbSAqaSogb2ZcbiAgIHNlcXVlbmNlICphKiBpcyBzZWxlY3RlZCBieSBgYGFbaV1gYC5cblxuICAgU2VxdWVuY2VzIGFsc28gc3VwcG9ydCBzbGljaW5nOiBgYGFbaTpqXWBgIHNlbGVjdHMgYWxsIGl0ZW1zIHdpdGhcbiAgIGluZGV4ICprKiBzdWNoIHRoYXQgKmkqIGBgPD1gYCAqayogYGA8YGAgKmoqLiAgV2hlbiB1c2VkIGFzIGFuXG4gICBleHByZXNzaW9uLCBhIHNsaWNlIGlzIGEgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgdHlwZS4gIFRoaXMgaW1wbGllc1xuICAgdGhhdCB0aGUgaW5kZXggc2V0IGlzIHJlbnVtYmVyZWQgc28gdGhhdCBpdCBzdGFydHMgYXQgMC5cblxuICAgU29tZSBzZXF1ZW5jZXMgYWxzbyBzdXBwb3J0ICJleHRlbmRlZCBzbGljaW5nIiB3aXRoIGEgdGhpcmQgInN0ZXAiXG4gICBwYXJhbWV0ZXI6IGBgYVtpOmo6a11gYCBzZWxlY3RzIGFsbCBpdGVtcyBvZiAqYSogd2l0aCBpbmRleCAqeCpcbiAgIHdoZXJlIGBgeCA9IGkgKyBuKmtgYCwgKm4qIGBgPj1gYCBgYDBgYCBhbmQgKmkqIGBgPD1gYCAqeCogYGA8YGBcbiAgICpqKi5cblxuICAgU2VxdWVuY2VzIGFyZSBkaXN0aW5ndWlzaGVkIGFjY29yZGluZyB0byB0aGVpciBtdXRhYmlsaXR5OlxuXG4gICBJbW11dGFibGUgc2VxdWVuY2VzXG4gICAgICBBbiBvYmplY3Qgb2YgYW4gaW1tdXRhYmxlIHNlcXVlbmNlIHR5cGUgY2Fubm90IGNoYW5nZSBvbmNlIGl0IGlzXG4gICAgICBjcmVhdGVkLiAgKElmIHRoZSBvYmplY3QgY29udGFpbnMgcmVmZXJlbmNlcyB0byBvdGhlciBvYmplY3RzLFxuICAgICAgdGhlc2Ugb3RoZXIgb2JqZWN0cyBtYXkgYmUgbXV0YWJsZSBhbmQgbWF5IGJlIGNoYW5nZWQ7IGhvd2V2ZXIsXG4gICAgICB0aGUgY29sbGVjdGlvbiBvZiBvYmplY3RzIGRpcmVjdGx5IHJlZmVyZW5jZWQgYnkgYW4gaW1tdXRhYmxlXG4gICAgICBvYmplY3QgY2Fubm90IGNoYW5nZS4pXG5cbiAgICAgIFRoZSBmb2xsb3dpbmcgdHlwZXMgYXJlIGltbXV0YWJsZSBzZXF1ZW5jZXM6XG5cbiAgICAgIFN0cmluZ3NcbiAgICAgICAgIEEgc3RyaW5nIGlzIGEgc2VxdWVuY2Ugb2YgdmFsdWVzIHRoYXQgcmVwcmVzZW50IFVuaWNvZGVcbiAgICAgICAgIGNvZGVwb2ludHMuIEFsbCB0aGUgY29kZXBvaW50cyBpbiByYW5nZSBgYFUrMDAwMCAtIFUrMTBGRkZGYGBcbiAgICAgICAgIGNhbiBiZSByZXByZXNlbnRlZCBpbiBhIHN0cmluZy4gIFB5dGhvbiBkb2VzblwndCBoYXZlIGFcbiAgICAgICAgIGBgY2hyYGAgdHlwZSwgYW5kIGV2ZXJ5IGNoYXJhY3RlciBpbiB0aGUgc3RyaW5nIGlzXG4gICAgICAgICByZXByZXNlbnRlZCBhcyBhIHN0cmluZyBvYmplY3Qgd2l0aCBsZW5ndGggYGAxYGAuICBUaGUgYnVpbHQtXG4gICAgICAgICBpbiBmdW5jdGlvbiBgYG9yZCgpYGAgY29udmVydHMgYSBjaGFyYWN0ZXIgdG8gaXRzIGNvZGVwb2ludFxuICAgICAgICAgKGFzIGFuIGludGVnZXIpOyBgYGNocigpYGAgY29udmVydHMgYW4gaW50ZWdlciBpbiByYW5nZSBgYDAgLVxuICAgICAgICAgMTBGRkZGYGAgdG8gdGhlIGNvcnJlc3BvbmRpbmcgY2hhcmFjdGVyLiBgYHN0ci5lbmNvZGUoKWBgIGNhblxuICAgICAgICAgYmUgdXNlZCB0byBjb252ZXJ0IGEgYGBzdHJgYCB0byBgYGJ5dGVzYGAgdXNpbmcgdGhlIGdpdmVuXG4gICAgICAgICBlbmNvZGluZywgYW5kIGBgYnl0ZXMuZGVjb2RlKClgYCBjYW4gYmUgdXNlZCB0byBhY2hpZXZlIHRoZVxuICAgICAgICAgb3Bwb3NpdGUuXG5cbiAgICAgIFR1cGxlc1xuICAgICAgICAgVGhlIGl0ZW1zIG9mIGEgdHVwbGUgYXJlIGFyYml0cmFyeSBQeXRob24gb2JqZWN0cy4gVHVwbGVzIG9mXG4gICAgICAgICB0d28gb3IgbW9yZSBpdGVtcyBhcmUgZm9ybWVkIGJ5IGNvbW1hLXNlcGFyYXRlZCBsaXN0cyBvZlxuICAgICAgICAgZXhwcmVzc2lvbnMuICBBIHR1cGxlIG9mIG9uZSBpdGVtIChhIFwnc2luZ2xldG9uXCcpIGNhbiBiZVxuICAgICAgICAgZm9ybWVkIGJ5IGFmZml4aW5nIGEgY29tbWEgdG8gYW4gZXhwcmVzc2lvbiAoYW4gZXhwcmVzc2lvbiBieVxuICAgICAgICAgaXRzZWxmIGRvZXMgbm90IGNyZWF0ZSBhIHR1cGxlLCBzaW5jZSBwYXJlbnRoZXNlcyBtdXN0IGJlXG4gICAgICAgICB1c2FibGUgZm9yIGdyb3VwaW5nIG9mIGV4cHJlc3Npb25zKS4gIEFuIGVtcHR5IHR1cGxlIGNhbiBiZVxuICAgICAgICAgZm9ybWVkIGJ5IGFuIGVtcHR5IHBhaXIgb2YgcGFyZW50aGVzZXMuXG5cbiAgICAgIEJ5dGVzXG4gICAgICAgICBBIGJ5dGVzIG9iamVjdCBpcyBhbiBpbW11dGFibGUgYXJyYXkuICBUaGUgaXRlbXMgYXJlIDgtYml0XG4gICAgICAgICBieXRlcywgcmVwcmVzZW50ZWQgYnkgaW50ZWdlcnMgaW4gdGhlIHJhbmdlIDAgPD0geCA8IDI1Ni5cbiAgICAgICAgIEJ5dGVzIGxpdGVyYWxzIChsaWtlIGBgYlwnYWJjXCdgYCBhbmQgdGhlIGJ1aWx0LWluIGZ1bmN0aW9uXG4gICAgICAgICBgYGJ5dGVzKClgYCBjYW4gYmUgdXNlZCB0byBjb25zdHJ1Y3QgYnl0ZXMgb2JqZWN0cy4gIEFsc28sXG4gICAgICAgICBieXRlcyBvYmplY3RzIGNhbiBiZSBkZWNvZGVkIHRvIHN0cmluZ3MgdmlhIHRoZSBgYGRlY29kZSgpYGBcbiAgICAgICAgIG1ldGhvZC5cblxuICAgTXV0YWJsZSBzZXF1ZW5jZXNcbiAgICAgIE11dGFibGUgc2VxdWVuY2VzIGNhbiBiZSBjaGFuZ2VkIGFmdGVyIHRoZXkgYXJlIGNyZWF0ZWQuICBUaGVcbiAgICAgIHN1YnNjcmlwdGlvbiBhbmQgc2xpY2luZyBub3RhdGlvbnMgY2FuIGJlIHVzZWQgYXMgdGhlIHRhcmdldCBvZlxuICAgICAgYXNzaWdubWVudCBhbmQgYGBkZWxgYCAoZGVsZXRlKSBzdGF0ZW1lbnRzLlxuXG4gICAgICBUaGVyZSBhcmUgY3VycmVudGx5IHR3byBpbnRyaW5zaWMgbXV0YWJsZSBzZXF1ZW5jZSB0eXBlczpcblxuICAgICAgTGlzdHNcbiAgICAgICAgIFRoZSBpdGVtcyBvZiBhIGxpc3QgYXJlIGFyYml0cmFyeSBQeXRob24gb2JqZWN0cy4gIExpc3RzIGFyZVxuICAgICAgICAgZm9ybWVkIGJ5IHBsYWNpbmcgYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBleHByZXNzaW9ucyBpblxuICAgICAgICAgc3F1YXJlIGJyYWNrZXRzLiAoTm90ZSB0aGF0IHRoZXJlIGFyZSBubyBzcGVjaWFsIGNhc2VzIG5lZWRlZFxuICAgICAgICAgdG8gZm9ybSBsaXN0cyBvZiBsZW5ndGggMCBvciAxLilcblxuICAgICAgQnl0ZSBBcnJheXNcbiAgICAgICAgIEEgYnl0ZWFycmF5IG9iamVjdCBpcyBhIG11dGFibGUgYXJyYXkuIFRoZXkgYXJlIGNyZWF0ZWQgYnlcbiAgICAgICAgIHRoZSBidWlsdC1pbiBgYGJ5dGVhcnJheSgpYGAgY29uc3RydWN0b3IuICBBc2lkZSBmcm9tIGJlaW5nXG4gICAgICAgICBtdXRhYmxlIChhbmQgaGVuY2UgdW5oYXNoYWJsZSksIGJ5dGUgYXJyYXlzIG90aGVyd2lzZSBwcm92aWRlXG4gICAgICAgICB0aGUgc2FtZSBpbnRlcmZhY2UgYW5kIGZ1bmN0aW9uYWxpdHkgYXMgaW1tdXRhYmxlIGJ5dGVzXG4gICAgICAgICBvYmplY3RzLlxuXG4gICAgICBUaGUgZXh0ZW5zaW9uIG1vZHVsZSBgYGFycmF5YGAgcHJvdmlkZXMgYW4gYWRkaXRpb25hbCBleGFtcGxlIG9mXG4gICAgICBhIG11dGFibGUgc2VxdWVuY2UgdHlwZSwgYXMgZG9lcyB0aGUgYGBjb2xsZWN0aW9uc2BgIG1vZHVsZS5cblxuU2V0IHR5cGVzXG4gICBUaGVzZSByZXByZXNlbnQgdW5vcmRlcmVkLCBmaW5pdGUgc2V0cyBvZiB1bmlxdWUsIGltbXV0YWJsZVxuICAgb2JqZWN0cy4gQXMgc3VjaCwgdGhleSBjYW5ub3QgYmUgaW5kZXhlZCBieSBhbnkgc3Vic2NyaXB0LiBIb3dldmVyLFxuICAgdGhleSBjYW4gYmUgaXRlcmF0ZWQgb3ZlciwgYW5kIHRoZSBidWlsdC1pbiBmdW5jdGlvbiBgYGxlbigpYGBcbiAgIHJldHVybnMgdGhlIG51bWJlciBvZiBpdGVtcyBpbiBhIHNldC4gQ29tbW9uIHVzZXMgZm9yIHNldHMgYXJlIGZhc3RcbiAgIG1lbWJlcnNoaXAgdGVzdGluZywgcmVtb3ZpbmcgZHVwbGljYXRlcyBmcm9tIGEgc2VxdWVuY2UsIGFuZFxuICAgY29tcHV0aW5nIG1hdGhlbWF0aWNhbCBvcGVyYXRpb25zIHN1Y2ggYXMgaW50ZXJzZWN0aW9uLCB1bmlvbixcbiAgIGRpZmZlcmVuY2UsIGFuZCBzeW1tZXRyaWMgZGlmZmVyZW5jZS5cblxuICAgRm9yIHNldCBlbGVtZW50cywgdGhlIHNhbWUgaW1tdXRhYmlsaXR5IHJ1bGVzIGFwcGx5IGFzIGZvclxuICAgZGljdGlvbmFyeSBrZXlzLiBOb3RlIHRoYXQgbnVtZXJpYyB0eXBlcyBvYmV5IHRoZSBub3JtYWwgcnVsZXMgZm9yXG4gICBudW1lcmljIGNvbXBhcmlzb246IGlmIHR3byBudW1iZXJzIGNvbXBhcmUgZXF1YWwgKGUuZy4sIGBgMWBgIGFuZFxuICAgYGAxLjBgYCksIG9ubHkgb25lIG9mIHRoZW0gY2FuIGJlIGNvbnRhaW5lZCBpbiBhIHNldC5cblxuICAgVGhlcmUgYXJlIGN1cnJlbnRseSB0d28gaW50cmluc2ljIHNldCB0eXBlczpcblxuICAgU2V0c1xuICAgICAgVGhlc2UgcmVwcmVzZW50IGEgbXV0YWJsZSBzZXQuIFRoZXkgYXJlIGNyZWF0ZWQgYnkgdGhlIGJ1aWx0LWluXG4gICAgICBgYHNldCgpYGAgY29uc3RydWN0b3IgYW5kIGNhbiBiZSBtb2RpZmllZCBhZnRlcndhcmRzIGJ5IHNldmVyYWxcbiAgICAgIG1ldGhvZHMsIHN1Y2ggYXMgYGBhZGQoKWBgLlxuXG4gICBGcm96ZW4gc2V0c1xuICAgICAgVGhlc2UgcmVwcmVzZW50IGFuIGltbXV0YWJsZSBzZXQuICBUaGV5IGFyZSBjcmVhdGVkIGJ5IHRoZVxuICAgICAgYnVpbHQtaW4gYGBmcm96ZW5zZXQoKWBgIGNvbnN0cnVjdG9yLiAgQXMgYSBmcm96ZW5zZXQgaXNcbiAgICAgIGltbXV0YWJsZSBhbmQgKmhhc2hhYmxlKiwgaXQgY2FuIGJlIHVzZWQgYWdhaW4gYXMgYW4gZWxlbWVudCBvZlxuICAgICAgYW5vdGhlciBzZXQsIG9yIGFzIGEgZGljdGlvbmFyeSBrZXkuXG5cbk1hcHBpbmdzXG4gICBUaGVzZSByZXByZXNlbnQgZmluaXRlIHNldHMgb2Ygb2JqZWN0cyBpbmRleGVkIGJ5IGFyYml0cmFyeSBpbmRleFxuICAgc2V0cy4gVGhlIHN1YnNjcmlwdCBub3RhdGlvbiBgYGFba11gYCBzZWxlY3RzIHRoZSBpdGVtIGluZGV4ZWQgYnlcbiAgIGBga2BgIGZyb20gdGhlIG1hcHBpbmcgYGBhYGA7IHRoaXMgY2FuIGJlIHVzZWQgaW4gZXhwcmVzc2lvbnMgYW5kXG4gICBhcyB0aGUgdGFyZ2V0IG9mIGFzc2lnbm1lbnRzIG9yIGBgZGVsYGAgc3RhdGVtZW50cy4gVGhlIGJ1aWx0LWluXG4gICBmdW5jdGlvbiBgYGxlbigpYGAgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIGEgbWFwcGluZy5cblxuICAgVGhlcmUgaXMgY3VycmVudGx5IGEgc2luZ2xlIGludHJpbnNpYyBtYXBwaW5nIHR5cGU6XG5cbiAgIERpY3Rpb25hcmllc1xuICAgICAgVGhlc2UgcmVwcmVzZW50IGZpbml0ZSBzZXRzIG9mIG9iamVjdHMgaW5kZXhlZCBieSBuZWFybHlcbiAgICAgIGFyYml0cmFyeSB2YWx1ZXMuICBUaGUgb25seSB0eXBlcyBvZiB2YWx1ZXMgbm90IGFjY2VwdGFibGUgYXNcbiAgICAgIGtleXMgYXJlIHZhbHVlcyBjb250YWluaW5nIGxpc3RzIG9yIGRpY3Rpb25hcmllcyBvciBvdGhlclxuICAgICAgbXV0YWJsZSB0eXBlcyB0aGF0IGFyZSBjb21wYXJlZCBieSB2YWx1ZSByYXRoZXIgdGhhbiBieSBvYmplY3RcbiAgICAgIGlkZW50aXR5LCB0aGUgcmVhc29uIGJlaW5nIHRoYXQgdGhlIGVmZmljaWVudCBpbXBsZW1lbnRhdGlvbiBvZlxuICAgICAgZGljdGlvbmFyaWVzIHJlcXVpcmVzIGEga2V5XCdzIGhhc2ggdmFsdWUgdG8gcmVtYWluIGNvbnN0YW50LlxuICAgICAgTnVtZXJpYyB0eXBlcyB1c2VkIGZvciBrZXlzIG9iZXkgdGhlIG5vcm1hbCBydWxlcyBmb3IgbnVtZXJpY1xuICAgICAgY29tcGFyaXNvbjogaWYgdHdvIG51bWJlcnMgY29tcGFyZSBlcXVhbCAoZS5nLiwgYGAxYGAgYW5kXG4gICAgICBgYDEuMGBgKSB0aGVuIHRoZXkgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IHRvIGluZGV4IHRoZSBzYW1lXG4gICAgICBkaWN0aW9uYXJ5IGVudHJ5LlxuXG4gICAgICBEaWN0aW9uYXJpZXMgYXJlIG11dGFibGU7IHRoZXkgY2FuIGJlIGNyZWF0ZWQgYnkgdGhlIGBgey4uLn1gYFxuICAgICAgbm90YXRpb24gKHNlZSBzZWN0aW9uICpEaWN0aW9uYXJ5IGRpc3BsYXlzKikuXG5cbiAgICAgIFRoZSBleHRlbnNpb24gbW9kdWxlcyBgYGRibS5uZGJtYGAgYW5kIGBgZGJtLmdudWBgIHByb3ZpZGVcbiAgICAgIGFkZGl0aW9uYWwgZXhhbXBsZXMgb2YgbWFwcGluZyB0eXBlcywgYXMgZG9lcyB0aGVcbiAgICAgIGBgY29sbGVjdGlvbnNgYCBtb2R1bGUuXG5cbkNhbGxhYmxlIHR5cGVzXG4gICBUaGVzZSBhcmUgdGhlIHR5cGVzIHRvIHdoaWNoIHRoZSBmdW5jdGlvbiBjYWxsIG9wZXJhdGlvbiAoc2VlXG4gICBzZWN0aW9uICpDYWxscyopIGNhbiBiZSBhcHBsaWVkOlxuXG4gICBVc2VyLWRlZmluZWQgZnVuY3Rpb25zXG4gICAgICBBIHVzZXItZGVmaW5lZCBmdW5jdGlvbiBvYmplY3QgaXMgY3JlYXRlZCBieSBhIGZ1bmN0aW9uXG4gICAgICBkZWZpbml0aW9uIChzZWUgc2VjdGlvbiAqRnVuY3Rpb24gZGVmaW5pdGlvbnMqKS4gIEl0IHNob3VsZCBiZVxuICAgICAgY2FsbGVkIHdpdGggYW4gYXJndW1lbnQgbGlzdCBjb250YWluaW5nIHRoZSBzYW1lIG51bWJlciBvZiBpdGVtc1xuICAgICAgYXMgdGhlIGZ1bmN0aW9uXCdzIGZvcm1hbCBwYXJhbWV0ZXIgbGlzdC5cblxuICAgICAgU3BlY2lhbCBhdHRyaWJ1dGVzOlxuXG4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tK1xuICAgICAgfCBBdHRyaWJ1dGUgICAgICAgICAgICAgICAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgICs9PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT0rXG4gICAgICB8IGBgX19kb2NfX2BgICAgICAgICAgICAgICAgfCBUaGUgZnVuY3Rpb25cJ3MgZG9jdW1lbnRhdGlvbiAgICB8IFdyaXRhYmxlICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHN0cmluZywgb3IgYGBOb25lYGAgaWYgICAgICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB1bmF2YWlsYWJsZSAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfFxuICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLStcbiAgICAgIHwgYGBfX25hbWVfX2BgICAgICAgICAgICAgICB8IFRoZSBmdW5jdGlvblwncyBuYW1lICAgICAgICAgICAgIHwgV3JpdGFibGUgICAgfFxuICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLStcbiAgICAgIHwgYGBfX3F1YWxuYW1lX19gYCAgICAgICAgICB8IFRoZSBmdW5jdGlvblwncyAqcXVhbGlmaWVkIG5hbWUqIHwgV3JpdGFibGUgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTmV3IGluIHZlcnNpb24gMy4zLiAgICAgICAgICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rXG4gICAgICB8IGBgX19tb2R1bGVfX2BgICAgICAgICAgICAgfCBUaGUgbmFtZSBvZiB0aGUgbW9kdWxlIHRoZSAgICAgIHwgV3JpdGFibGUgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb24gd2FzIGRlZmluZWQgaW4sIG9yICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBgTm9uZWBgIGlmIHVuYXZhaWxhYmxlLiAgICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tK1xuICAgICAgfCBgYF9fZGVmYXVsdHNfX2BgICAgICAgICAgIHwgQSB0dXBsZSBjb250YWluaW5nIGRlZmF1bHQgICAgICB8IFdyaXRhYmxlICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGFyZ3VtZW50IHZhbHVlcyBmb3IgdGhvc2UgICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhcmd1bWVudHMgdGhhdCBoYXZlIGRlZmF1bHRzLCAgIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3IgYGBOb25lYGAgaWYgbm8gYXJndW1lbnRzICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGhhdmUgYSBkZWZhdWx0IHZhbHVlICAgICAgICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tK1xuICAgICAgfCBgYF9fY29kZV9fYGAgICAgICAgICAgICAgIHwgVGhlIGNvZGUgb2JqZWN0IHJlcHJlc2VudGluZyAgICB8IFdyaXRhYmxlICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRoZSBjb21waWxlZCBmdW5jdGlvbiBib2R5LiAgICAgfCAgICAgICAgICAgICB8XG4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tK1xuICAgICAgfCBgYF9fZ2xvYmFsc19fYGAgICAgICAgICAgIHwgQSByZWZlcmVuY2UgdG8gdGhlIGRpY3Rpb25hcnkgICB8IFJlYWQtb25seSAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRoYXQgaG9sZHMgdGhlIGZ1bmN0aW9uXCdzICAgICAgIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZ2xvYmFsIHZhcmlhYmxlcyAtLS0gdGhlIGdsb2JhbCB8ICAgICAgICAgICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG5hbWVzcGFjZSBvZiB0aGUgbW9kdWxlIGluICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB3aGljaCB0aGUgZnVuY3Rpb24gd2FzIGRlZmluZWQuIHwgICAgICAgICAgICAgfFxuICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLStcbiAgICAgIHwgYGBfX2RpY3RfX2BgICAgICAgICAgICAgICB8IFRoZSBuYW1lc3BhY2Ugc3VwcG9ydGluZyAgICAgICAgfCBXcml0YWJsZSAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhcmJpdHJhcnkgZnVuY3Rpb24gYXR0cmlidXRlcy4gIHwgICAgICAgICAgICAgfFxuICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLStcbiAgICAgIHwgYGBfX2Nsb3N1cmVfX2BgICAgICAgICAgICB8IGBgTm9uZWBgIG9yIGEgdHVwbGUgb2YgY2VsbHMgICAgfCBSZWFkLW9ubHkgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCB0aGF0IGNvbnRhaW4gYmluZGluZ3MgZm9yIHRoZSAgIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZnVuY3Rpb25cJ3MgZnJlZSB2YXJpYWJsZXMuICAgICAgfCAgICAgICAgICAgICB8XG4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tK1xuICAgICAgfCBgYF9fYW5ub3RhdGlvbnNfX2BgICAgICAgIHwgQSBkaWN0IGNvbnRhaW5pbmcgYW5ub3RhdGlvbnMgICB8IFdyaXRhYmxlICAgIHxcbiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG9mIHBhcmFtZXRlcnMuICBUaGUga2V5cyBvZiB0aGUgfCAgICAgICAgICAgICB8XG4gICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBkaWN0IGFyZSB0aGUgcGFyYW1ldGVyIG5hbWVzLCAgIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgb3IgYGBcJ3JldHVyblwnYGAgZm9yIHRoZSByZXR1cm4gIHwgICAgICAgICAgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYW5ub3RhdGlvbiwgaWYgcHJvdmlkZWQuICAgICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rXG4gICAgICB8IGBgX19rd2RlZmF1bHRzX19gYCAgICAgICAgfCBBIGRpY3QgY29udGFpbmluZyBkZWZhdWx0cyBmb3IgIHwgV3JpdGFibGUgICAgfFxuICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwga2V5d29yZC1vbmx5IHBhcmFtZXRlcnMuICAgICAgICB8ICAgICAgICAgICAgIHxcbiAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rXG5cbiAgICAgIE1vc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgbGFiZWxsZWQgIldyaXRhYmxlIiBjaGVjayB0aGUgdHlwZSBvZiB0aGVcbiAgICAgIGFzc2lnbmVkIHZhbHVlLlxuXG4gICAgICBGdW5jdGlvbiBvYmplY3RzIGFsc28gc3VwcG9ydCBnZXR0aW5nIGFuZCBzZXR0aW5nIGFyYml0cmFyeVxuICAgICAgYXR0cmlidXRlcywgd2hpY2ggY2FuIGJlIHVzZWQsIGZvciBleGFtcGxlLCB0byBhdHRhY2ggbWV0YWRhdGFcbiAgICAgIHRvIGZ1bmN0aW9ucy4gIFJlZ3VsYXIgYXR0cmlidXRlIGRvdC1ub3RhdGlvbiBpcyB1c2VkIHRvIGdldCBhbmRcbiAgICAgIHNldCBzdWNoIGF0dHJpYnV0ZXMuICpOb3RlIHRoYXQgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb25seVxuICAgICAgc3VwcG9ydHMgZnVuY3Rpb24gYXR0cmlidXRlcyBvbiB1c2VyLWRlZmluZWQgZnVuY3Rpb25zLiBGdW5jdGlvblxuICAgICAgYXR0cmlidXRlcyBvbiBidWlsdC1pbiBmdW5jdGlvbnMgbWF5IGJlIHN1cHBvcnRlZCBpbiB0aGVcbiAgICAgIGZ1dHVyZS4qXG5cbiAgICAgIEFkZGl0aW9uYWwgaW5mb3JtYXRpb24gYWJvdXQgYSBmdW5jdGlvblwncyBkZWZpbml0aW9uIGNhbiBiZVxuICAgICAgcmV0cmlldmVkIGZyb20gaXRzIGNvZGUgb2JqZWN0OyBzZWUgdGhlIGRlc2NyaXB0aW9uIG9mIGludGVybmFsXG4gICAgICB0eXBlcyBiZWxvdy5cblxuICAgSW5zdGFuY2UgbWV0aG9kc1xuICAgICAgQW4gaW5zdGFuY2UgbWV0aG9kIG9iamVjdCBjb21iaW5lcyBhIGNsYXNzLCBhIGNsYXNzIGluc3RhbmNlIGFuZFxuICAgICAgYW55IGNhbGxhYmxlIG9iamVjdCAobm9ybWFsbHkgYSB1c2VyLWRlZmluZWQgZnVuY3Rpb24pLlxuXG4gICAgICBTcGVjaWFsIHJlYWQtb25seSBhdHRyaWJ1dGVzOiBgYF9fc2VsZl9fYGAgaXMgdGhlIGNsYXNzIGluc3RhbmNlXG4gICAgICBvYmplY3QsIGBgX19mdW5jX19gYCBpcyB0aGUgZnVuY3Rpb24gb2JqZWN0OyBgYF9fZG9jX19gYCBpcyB0aGVcbiAgICAgIG1ldGhvZFwncyBkb2N1bWVudGF0aW9uIChzYW1lIGFzIGBgX19mdW5jX18uX19kb2NfX2BgKTtcbiAgICAgIGBgX19uYW1lX19gYCBpcyB0aGUgbWV0aG9kIG5hbWUgKHNhbWUgYXMgYGBfX2Z1bmNfXy5fX25hbWVfX2BgKTtcbiAgICAgIGBgX19tb2R1bGVfX2BgIGlzIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhlIG1ldGhvZCB3YXMgZGVmaW5lZFxuICAgICAgaW4sIG9yIGBgTm9uZWBgIGlmIHVuYXZhaWxhYmxlLlxuXG4gICAgICBNZXRob2RzIGFsc28gc3VwcG9ydCBhY2Nlc3NpbmcgKGJ1dCBub3Qgc2V0dGluZykgdGhlIGFyYml0cmFyeVxuICAgICAgZnVuY3Rpb24gYXR0cmlidXRlcyBvbiB0aGUgdW5kZXJseWluZyBmdW5jdGlvbiBvYmplY3QuXG5cbiAgICAgIFVzZXItZGVmaW5lZCBtZXRob2Qgb2JqZWN0cyBtYXkgYmUgY3JlYXRlZCB3aGVuIGdldHRpbmcgYW5cbiAgICAgIGF0dHJpYnV0ZSBvZiBhIGNsYXNzIChwZXJoYXBzIHZpYSBhbiBpbnN0YW5jZSBvZiB0aGF0IGNsYXNzKSwgaWZcbiAgICAgIHRoYXQgYXR0cmlidXRlIGlzIGEgdXNlci1kZWZpbmVkIGZ1bmN0aW9uIG9iamVjdCBvciBhIGNsYXNzXG4gICAgICBtZXRob2Qgb2JqZWN0LlxuXG4gICAgICBXaGVuIGFuIGluc3RhbmNlIG1ldGhvZCBvYmplY3QgaXMgY3JlYXRlZCBieSByZXRyaWV2aW5nIGEgdXNlci1cbiAgICAgIGRlZmluZWQgZnVuY3Rpb24gb2JqZWN0IGZyb20gYSBjbGFzcyB2aWEgb25lIG9mIGl0cyBpbnN0YW5jZXMsXG4gICAgICBpdHMgYGBfX3NlbGZfX2BgIGF0dHJpYnV0ZSBpcyB0aGUgaW5zdGFuY2UsIGFuZCB0aGUgbWV0aG9kXG4gICAgICBvYmplY3QgaXMgc2FpZCB0byBiZSBib3VuZC4gIFRoZSBuZXcgbWV0aG9kXCdzIGBgX19mdW5jX19gYFxuICAgICAgYXR0cmlidXRlIGlzIHRoZSBvcmlnaW5hbCBmdW5jdGlvbiBvYmplY3QuXG5cbiAgICAgIFdoZW4gYSB1c2VyLWRlZmluZWQgbWV0aG9kIG9iamVjdCBpcyBjcmVhdGVkIGJ5IHJldHJpZXZpbmdcbiAgICAgIGFub3RoZXIgbWV0aG9kIG9iamVjdCBmcm9tIGEgY2xhc3Mgb3IgaW5zdGFuY2UsIHRoZSBiZWhhdmlvdXIgaXNcbiAgICAgIHRoZSBzYW1lIGFzIGZvciBhIGZ1bmN0aW9uIG9iamVjdCwgZXhjZXB0IHRoYXQgdGhlIGBgX19mdW5jX19gYFxuICAgICAgYXR0cmlidXRlIG9mIHRoZSBuZXcgaW5zdGFuY2UgaXMgbm90IHRoZSBvcmlnaW5hbCBtZXRob2Qgb2JqZWN0XG4gICAgICBidXQgaXRzIGBgX19mdW5jX19gYCBhdHRyaWJ1dGUuXG5cbiAgICAgIFdoZW4gYW4gaW5zdGFuY2UgbWV0aG9kIG9iamVjdCBpcyBjcmVhdGVkIGJ5IHJldHJpZXZpbmcgYSBjbGFzc1xuICAgICAgbWV0aG9kIG9iamVjdCBmcm9tIGEgY2xhc3Mgb3IgaW5zdGFuY2UsIGl0cyBgYF9fc2VsZl9fYGBcbiAgICAgIGF0dHJpYnV0ZSBpcyB0aGUgY2xhc3MgaXRzZWxmLCBhbmQgaXRzIGBgX19mdW5jX19gYCBhdHRyaWJ1dGUgaXNcbiAgICAgIHRoZSBmdW5jdGlvbiBvYmplY3QgdW5kZXJseWluZyB0aGUgY2xhc3MgbWV0aG9kLlxuXG4gICAgICBXaGVuIGFuIGluc3RhbmNlIG1ldGhvZCBvYmplY3QgaXMgY2FsbGVkLCB0aGUgdW5kZXJseWluZ1xuICAgICAgZnVuY3Rpb24gKGBgX19mdW5jX19gYCkgaXMgY2FsbGVkLCBpbnNlcnRpbmcgdGhlIGNsYXNzIGluc3RhbmNlXG4gICAgICAoYGBfX3NlbGZfX2BgKSBpbiBmcm9udCBvZiB0aGUgYXJndW1lbnQgbGlzdC4gIEZvciBpbnN0YW5jZSxcbiAgICAgIHdoZW4gYGBDYGAgaXMgYSBjbGFzcyB3aGljaCBjb250YWlucyBhIGRlZmluaXRpb24gZm9yIGEgZnVuY3Rpb25cbiAgICAgIGBgZigpYGAsIGFuZCBgYHhgYCBpcyBhbiBpbnN0YW5jZSBvZiBgYENgYCwgY2FsbGluZyBgYHguZigxKWBgXG4gICAgICBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgYGBDLmYoeCwgMSlgYC5cblxuICAgICAgV2hlbiBhbiBpbnN0YW5jZSBtZXRob2Qgb2JqZWN0IGlzIGRlcml2ZWQgZnJvbSBhIGNsYXNzIG1ldGhvZFxuICAgICAgb2JqZWN0LCB0aGUgImNsYXNzIGluc3RhbmNlIiBzdG9yZWQgaW4gYGBfX3NlbGZfX2BgIHdpbGxcbiAgICAgIGFjdHVhbGx5IGJlIHRoZSBjbGFzcyBpdHNlbGYsIHNvIHRoYXQgY2FsbGluZyBlaXRoZXIgYGB4LmYoMSlgYFxuICAgICAgb3IgYGBDLmYoMSlgYCBpcyBlcXVpdmFsZW50IHRvIGNhbGxpbmcgYGBmKEMsMSlgYCB3aGVyZSBgYGZgYCBpc1xuICAgICAgdGhlIHVuZGVybHlpbmcgZnVuY3Rpb24uXG5cbiAgICAgIE5vdGUgdGhhdCB0aGUgdHJhbnNmb3JtYXRpb24gZnJvbSBmdW5jdGlvbiBvYmplY3QgdG8gaW5zdGFuY2VcbiAgICAgIG1ldGhvZCBvYmplY3QgaGFwcGVucyBlYWNoIHRpbWUgdGhlIGF0dHJpYnV0ZSBpcyByZXRyaWV2ZWQgZnJvbVxuICAgICAgdGhlIGluc3RhbmNlLiAgSW4gc29tZSBjYXNlcywgYSBmcnVpdGZ1bCBvcHRpbWl6YXRpb24gaXMgdG9cbiAgICAgIGFzc2lnbiB0aGUgYXR0cmlidXRlIHRvIGEgbG9jYWwgdmFyaWFibGUgYW5kIGNhbGwgdGhhdCBsb2NhbFxuICAgICAgdmFyaWFibGUuIEFsc28gbm90aWNlIHRoYXQgdGhpcyB0cmFuc2Zvcm1hdGlvbiBvbmx5IGhhcHBlbnMgZm9yXG4gICAgICB1c2VyLWRlZmluZWQgZnVuY3Rpb25zOyBvdGhlciBjYWxsYWJsZSBvYmplY3RzIChhbmQgYWxsIG5vbi1cbiAgICAgIGNhbGxhYmxlIG9iamVjdHMpIGFyZSByZXRyaWV2ZWQgd2l0aG91dCB0cmFuc2Zvcm1hdGlvbi4gIEl0IGlzXG4gICAgICBhbHNvIGltcG9ydGFudCB0byBub3RlIHRoYXQgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyB3aGljaCBhcmVcbiAgICAgIGF0dHJpYnV0ZXMgb2YgYSBjbGFzcyBpbnN0YW5jZSBhcmUgbm90IGNvbnZlcnRlZCB0byBib3VuZFxuICAgICAgbWV0aG9kczsgdGhpcyAqb25seSogaGFwcGVucyB3aGVuIHRoZSBmdW5jdGlvbiBpcyBhbiBhdHRyaWJ1dGVcbiAgICAgIG9mIHRoZSBjbGFzcy5cblxuICAgR2VuZXJhdG9yIGZ1bmN0aW9uc1xuICAgICAgQSBmdW5jdGlvbiBvciBtZXRob2Qgd2hpY2ggdXNlcyB0aGUgYGB5aWVsZGBgIHN0YXRlbWVudCAoc2VlXG4gICAgICBzZWN0aW9uICpUaGUgeWllbGQgc3RhdGVtZW50KikgaXMgY2FsbGVkIGEgKmdlbmVyYXRvciBmdW5jdGlvbiouXG4gICAgICBTdWNoIGEgZnVuY3Rpb24sIHdoZW4gY2FsbGVkLCBhbHdheXMgcmV0dXJucyBhbiBpdGVyYXRvciBvYmplY3RcbiAgICAgIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGV4ZWN1dGUgdGhlIGJvZHkgb2YgdGhlIGZ1bmN0aW9uOiAgY2FsbGluZ1xuICAgICAgdGhlIGl0ZXJhdG9yXCdzIGBgX19uZXh0X18oKWBgIG1ldGhvZCB3aWxsIGNhdXNlIHRoZSBmdW5jdGlvbiB0b1xuICAgICAgZXhlY3V0ZSB1bnRpbCBpdCBwcm92aWRlcyBhIHZhbHVlIHVzaW5nIHRoZSBgYHlpZWxkYGAgc3RhdGVtZW50LlxuICAgICAgV2hlbiB0aGUgZnVuY3Rpb24gZXhlY3V0ZXMgYSBgYHJldHVybmBgIHN0YXRlbWVudCBvciBmYWxscyBvZmZcbiAgICAgIHRoZSBlbmQsIGEgYGBTdG9wSXRlcmF0aW9uYGAgZXhjZXB0aW9uIGlzIHJhaXNlZCBhbmQgdGhlXG4gICAgICBpdGVyYXRvciB3aWxsIGhhdmUgcmVhY2hlZCB0aGUgZW5kIG9mIHRoZSBzZXQgb2YgdmFsdWVzIHRvIGJlXG4gICAgICByZXR1cm5lZC5cblxuICAgQnVpbHQtaW4gZnVuY3Rpb25zXG4gICAgICBBIGJ1aWx0LWluIGZ1bmN0aW9uIG9iamVjdCBpcyBhIHdyYXBwZXIgYXJvdW5kIGEgQyBmdW5jdGlvbi5cbiAgICAgIEV4YW1wbGVzIG9mIGJ1aWx0LWluIGZ1bmN0aW9ucyBhcmUgYGBsZW4oKWBgIGFuZCBgYG1hdGguc2luKClgYFxuICAgICAgKGBgbWF0aGBgIGlzIGEgc3RhbmRhcmQgYnVpbHQtaW4gbW9kdWxlKS4gVGhlIG51bWJlciBhbmQgdHlwZSBvZlxuICAgICAgdGhlIGFyZ3VtZW50cyBhcmUgZGV0ZXJtaW5lZCBieSB0aGUgQyBmdW5jdGlvbi4gU3BlY2lhbCByZWFkLVxuICAgICAgb25seSBhdHRyaWJ1dGVzOiBgYF9fZG9jX19gYCBpcyB0aGUgZnVuY3Rpb25cJ3MgZG9jdW1lbnRhdGlvblxuICAgICAgc3RyaW5nLCBvciBgYE5vbmVgYCBpZiB1bmF2YWlsYWJsZTsgYGBfX25hbWVfX2BgIGlzIHRoZVxuICAgICAgZnVuY3Rpb25cJ3MgbmFtZTsgYGBfX3NlbGZfX2BgIGlzIHNldCB0byBgYE5vbmVgYCAoYnV0IHNlZSB0aGVcbiAgICAgIG5leHQgaXRlbSk7IGBgX19tb2R1bGVfX2BgIGlzIHRoZSBuYW1lIG9mIHRoZSBtb2R1bGUgdGhlXG4gICAgICBmdW5jdGlvbiB3YXMgZGVmaW5lZCBpbiBvciBgYE5vbmVgYCBpZiB1bmF2YWlsYWJsZS5cblxuICAgQnVpbHQtaW4gbWV0aG9kc1xuICAgICAgVGhpcyBpcyByZWFsbHkgYSBkaWZmZXJlbnQgZGlzZ3Vpc2Ugb2YgYSBidWlsdC1pbiBmdW5jdGlvbiwgdGhpc1xuICAgICAgdGltZSBjb250YWluaW5nIGFuIG9iamVjdCBwYXNzZWQgdG8gdGhlIEMgZnVuY3Rpb24gYXMgYW5cbiAgICAgIGltcGxpY2l0IGV4dHJhIGFyZ3VtZW50LiAgQW4gZXhhbXBsZSBvZiBhIGJ1aWx0LWluIG1ldGhvZCBpc1xuICAgICAgYGBhbGlzdC5hcHBlbmQoKWBgLCBhc3N1bWluZyAqYWxpc3QqIGlzIGEgbGlzdCBvYmplY3QuIEluIHRoaXNcbiAgICAgIGNhc2UsIHRoZSBzcGVjaWFsIHJlYWQtb25seSBhdHRyaWJ1dGUgYGBfX3NlbGZfX2BgIGlzIHNldCB0byB0aGVcbiAgICAgIG9iamVjdCBkZW5vdGVkIGJ5ICphbGlzdCouXG5cbiAgIENsYXNzZXNcbiAgICAgIENsYXNzZXMgYXJlIGNhbGxhYmxlLiAgVGhlc2Ugb2JqZWN0cyBub3JtYWxseSBhY3QgYXMgZmFjdG9yaWVzXG4gICAgICBmb3IgbmV3IGluc3RhbmNlcyBvZiB0aGVtc2VsdmVzLCBidXQgdmFyaWF0aW9ucyBhcmUgcG9zc2libGUgZm9yXG4gICAgICBjbGFzcyB0eXBlcyB0aGF0IG92ZXJyaWRlIGBgX19uZXdfXygpYGAuICBUaGUgYXJndW1lbnRzIG9mIHRoZVxuICAgICAgY2FsbCBhcmUgcGFzc2VkIHRvIGBgX19uZXdfXygpYGAgYW5kLCBpbiB0aGUgdHlwaWNhbCBjYXNlLCB0b1xuICAgICAgYGBfX2luaXRfXygpYGAgdG8gaW5pdGlhbGl6ZSB0aGUgbmV3IGluc3RhbmNlLlxuXG4gICBDbGFzcyBJbnN0YW5jZXNcbiAgICAgIEluc3RhbmNlcyBvZiBhcmJpdHJhcnkgY2xhc3NlcyBjYW4gYmUgbWFkZSBjYWxsYWJsZSBieSBkZWZpbmluZ1xuICAgICAgYSBgYF9fY2FsbF9fKClgYCBtZXRob2QgaW4gdGhlaXIgY2xhc3MuXG5cbk1vZHVsZXNcbiAgIE1vZHVsZXMgYXJlIGltcG9ydGVkIGJ5IHRoZSBgYGltcG9ydGBgIHN0YXRlbWVudCAoc2VlIHNlY3Rpb24gKlRoZVxuICAgaW1wb3J0IHN0YXRlbWVudCopLiBBIG1vZHVsZSBvYmplY3QgaGFzIGEgbmFtZXNwYWNlIGltcGxlbWVudGVkIGJ5XG4gICBhIGRpY3Rpb25hcnkgb2JqZWN0ICh0aGlzIGlzIHRoZSBkaWN0aW9uYXJ5IHJlZmVyZW5jZWQgYnkgdGhlXG4gICBfX2dsb2JhbHNfXyBhdHRyaWJ1dGUgb2YgZnVuY3Rpb25zIGRlZmluZWQgaW4gdGhlIG1vZHVsZSkuXG4gICBBdHRyaWJ1dGUgcmVmZXJlbmNlcyBhcmUgdHJhbnNsYXRlZCB0byBsb29rdXBzIGluIHRoaXMgZGljdGlvbmFyeSxcbiAgIGUuZy4sIGBgbS54YGAgaXMgZXF1aXZhbGVudCB0byBgYG0uX19kaWN0X19bIngiXWBgLiBBIG1vZHVsZSBvYmplY3RcbiAgIGRvZXMgbm90IGNvbnRhaW4gdGhlIGNvZGUgb2JqZWN0IHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgbW9kdWxlXG4gICAoc2luY2UgaXQgaXNuXCd0IG5lZWRlZCBvbmNlIHRoZSBpbml0aWFsaXphdGlvbiBpcyBkb25lKS5cblxuICAgQXR0cmlidXRlIGFzc2lnbm1lbnQgdXBkYXRlcyB0aGUgbW9kdWxlXCdzIG5hbWVzcGFjZSBkaWN0aW9uYXJ5LFxuICAgZS5nLiwgYGBtLnggPSAxYGAgaXMgZXF1aXZhbGVudCB0byBgYG0uX19kaWN0X19bIngiXSA9IDFgYC5cblxuICAgU3BlY2lhbCByZWFkLW9ubHkgYXR0cmlidXRlOiBgYF9fZGljdF9fYGAgaXMgdGhlIG1vZHVsZVwncyBuYW1lc3BhY2VcbiAgIGFzIGEgZGljdGlvbmFyeSBvYmplY3QuXG5cbiAgICoqQ1B5dGhvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWw6KiogQmVjYXVzZSBvZiB0aGUgd2F5IENQeXRob25cbiAgIGNsZWFycyBtb2R1bGUgZGljdGlvbmFyaWVzLCB0aGUgbW9kdWxlIGRpY3Rpb25hcnkgd2lsbCBiZSBjbGVhcmVkXG4gICB3aGVuIHRoZSBtb2R1bGUgZmFsbHMgb3V0IG9mIHNjb3BlIGV2ZW4gaWYgdGhlIGRpY3Rpb25hcnkgc3RpbGwgaGFzXG4gICBsaXZlIHJlZmVyZW5jZXMuICBUbyBhdm9pZCB0aGlzLCBjb3B5IHRoZSBkaWN0aW9uYXJ5IG9yIGtlZXAgdGhlXG4gICBtb2R1bGUgYXJvdW5kIHdoaWxlIHVzaW5nIGl0cyBkaWN0aW9uYXJ5IGRpcmVjdGx5LlxuXG4gICBQcmVkZWZpbmVkICh3cml0YWJsZSkgYXR0cmlidXRlczogYGBfX25hbWVfX2BgIGlzIHRoZSBtb2R1bGVcJ3NcbiAgIG5hbWU7IGBgX19kb2NfX2BgIGlzIHRoZSBtb2R1bGVcJ3MgZG9jdW1lbnRhdGlvbiBzdHJpbmcsIG9yIGBgTm9uZWBgXG4gICBpZiB1bmF2YWlsYWJsZTsgYGBfX2ZpbGVfX2BgIGlzIHRoZSBwYXRobmFtZSBvZiB0aGUgZmlsZSBmcm9tIHdoaWNoXG4gICB0aGUgbW9kdWxlIHdhcyBsb2FkZWQsIGlmIGl0IHdhcyBsb2FkZWQgZnJvbSBhIGZpbGUuIFRoZVxuICAgYGBfX2ZpbGVfX2BgIGF0dHJpYnV0ZSBpcyBub3QgcHJlc2VudCBmb3IgQyBtb2R1bGVzIHRoYXQgYXJlXG4gICBzdGF0aWNhbGx5IGxpbmtlZCBpbnRvIHRoZSBpbnRlcnByZXRlcjsgZm9yIGV4dGVuc2lvbiBtb2R1bGVzXG4gICBsb2FkZWQgZHluYW1pY2FsbHkgZnJvbSBhIHNoYXJlZCBsaWJyYXJ5LCBpdCBpcyB0aGUgcGF0aG5hbWUgb2YgdGhlXG4gICBzaGFyZWQgbGlicmFyeSBmaWxlLlxuXG5DdXN0b20gY2xhc3Nlc1xuICAgQ3VzdG9tIGNsYXNzIHR5cGVzIGFyZSB0eXBpY2FsbHkgY3JlYXRlZCBieSBjbGFzcyBkZWZpbml0aW9ucyAoc2VlXG4gICBzZWN0aW9uICpDbGFzcyBkZWZpbml0aW9ucyopLiAgQSBjbGFzcyBoYXMgYSBuYW1lc3BhY2UgaW1wbGVtZW50ZWRcbiAgIGJ5IGEgZGljdGlvbmFyeSBvYmplY3QuIENsYXNzIGF0dHJpYnV0ZSByZWZlcmVuY2VzIGFyZSB0cmFuc2xhdGVkXG4gICB0byBsb29rdXBzIGluIHRoaXMgZGljdGlvbmFyeSwgZS5nLiwgYGBDLnhgYCBpcyB0cmFuc2xhdGVkIHRvXG4gICBgYEMuX19kaWN0X19bIngiXWBgIChhbHRob3VnaCB0aGVyZSBhcmUgYSBudW1iZXIgb2YgaG9va3Mgd2hpY2hcbiAgIGFsbG93IGZvciBvdGhlciBtZWFucyBvZiBsb2NhdGluZyBhdHRyaWJ1dGVzKS4gV2hlbiB0aGUgYXR0cmlidXRlXG4gICBuYW1lIGlzIG5vdCBmb3VuZCB0aGVyZSwgdGhlIGF0dHJpYnV0ZSBzZWFyY2ggY29udGludWVzIGluIHRoZSBiYXNlXG4gICBjbGFzc2VzLiBUaGlzIHNlYXJjaCBvZiB0aGUgYmFzZSBjbGFzc2VzIHVzZXMgdGhlIEMzIG1ldGhvZFxuICAgcmVzb2x1dGlvbiBvcmRlciB3aGljaCBiZWhhdmVzIGNvcnJlY3RseSBldmVuIGluIHRoZSBwcmVzZW5jZSBvZlxuICAgXCdkaWFtb25kXCcgaW5oZXJpdGFuY2Ugc3RydWN0dXJlcyB3aGVyZSB0aGVyZSBhcmUgbXVsdGlwbGVcbiAgIGluaGVyaXRhbmNlIHBhdGhzIGxlYWRpbmcgYmFjayB0byBhIGNvbW1vbiBhbmNlc3Rvci4gQWRkaXRpb25hbFxuICAgZGV0YWlscyBvbiB0aGUgQzMgTVJPIHVzZWQgYnkgUHl0aG9uIGNhbiBiZSBmb3VuZCBpbiB0aGVcbiAgIGRvY3VtZW50YXRpb24gYWNjb21wYW55aW5nIHRoZSAyLjMgcmVsZWFzZSBhdFxuICAgaHR0cDovL3d3dy5weXRob24ub3JnL2Rvd25sb2FkL3JlbGVhc2VzLzIuMy9tcm8vLlxuXG4gICBXaGVuIGEgY2xhc3MgYXR0cmlidXRlIHJlZmVyZW5jZSAoZm9yIGNsYXNzIGBgQ2BgLCBzYXkpIHdvdWxkIHlpZWxkXG4gICBhIGNsYXNzIG1ldGhvZCBvYmplY3QsIGl0IGlzIHRyYW5zZm9ybWVkIGludG8gYW4gaW5zdGFuY2UgbWV0aG9kXG4gICBvYmplY3Qgd2hvc2UgYGBfX3NlbGZfX2BgIGF0dHJpYnV0ZXMgaXMgYGBDYGAuICBXaGVuIGl0IHdvdWxkIHlpZWxkXG4gICBhIHN0YXRpYyBtZXRob2Qgb2JqZWN0LCBpdCBpcyB0cmFuc2Zvcm1lZCBpbnRvIHRoZSBvYmplY3Qgd3JhcHBlZFxuICAgYnkgdGhlIHN0YXRpYyBtZXRob2Qgb2JqZWN0LiBTZWUgc2VjdGlvbiAqSW1wbGVtZW50aW5nIERlc2NyaXB0b3JzKlxuICAgZm9yIGFub3RoZXIgd2F5IGluIHdoaWNoIGF0dHJpYnV0ZXMgcmV0cmlldmVkIGZyb20gYSBjbGFzcyBtYXlcbiAgIGRpZmZlciBmcm9tIHRob3NlIGFjdHVhbGx5IGNvbnRhaW5lZCBpbiBpdHMgYGBfX2RpY3RfX2BgLlxuXG4gICBDbGFzcyBhdHRyaWJ1dGUgYXNzaWdubWVudHMgdXBkYXRlIHRoZSBjbGFzc1wncyBkaWN0aW9uYXJ5LCBuZXZlclxuICAgdGhlIGRpY3Rpb25hcnkgb2YgYSBiYXNlIGNsYXNzLlxuXG4gICBBIGNsYXNzIG9iamVjdCBjYW4gYmUgY2FsbGVkIChzZWUgYWJvdmUpIHRvIHlpZWxkIGEgY2xhc3MgaW5zdGFuY2VcbiAgIChzZWUgYmVsb3cpLlxuXG4gICBTcGVjaWFsIGF0dHJpYnV0ZXM6IGBgX19uYW1lX19gYCBpcyB0aGUgY2xhc3MgbmFtZTsgYGBfX21vZHVsZV9fYGBcbiAgIGlzIHRoZSBtb2R1bGUgbmFtZSBpbiB3aGljaCB0aGUgY2xhc3Mgd2FzIGRlZmluZWQ7IGBgX19kaWN0X19gYCBpc1xuICAgdGhlIGRpY3Rpb25hcnkgY29udGFpbmluZyB0aGUgY2xhc3NcJ3MgbmFtZXNwYWNlOyBgYF9fYmFzZXNfX2BgIGlzIGFcbiAgIHR1cGxlIChwb3NzaWJseSBlbXB0eSBvciBhIHNpbmdsZXRvbikgY29udGFpbmluZyB0aGUgYmFzZSBjbGFzc2VzLFxuICAgaW4gdGhlIG9yZGVyIG9mIHRoZWlyIG9jY3VycmVuY2UgaW4gdGhlIGJhc2UgY2xhc3MgbGlzdDtcbiAgIGBgX19kb2NfX2BgIGlzIHRoZSBjbGFzc1wncyBkb2N1bWVudGF0aW9uIHN0cmluZywgb3IgTm9uZSBpZlxuICAgdW5kZWZpbmVkLlxuXG5DbGFzcyBpbnN0YW5jZXNcbiAgIEEgY2xhc3MgaW5zdGFuY2UgaXMgY3JlYXRlZCBieSBjYWxsaW5nIGEgY2xhc3Mgb2JqZWN0IChzZWUgYWJvdmUpLlxuICAgQSBjbGFzcyBpbnN0YW5jZSBoYXMgYSBuYW1lc3BhY2UgaW1wbGVtZW50ZWQgYXMgYSBkaWN0aW9uYXJ5IHdoaWNoXG4gICBpcyB0aGUgZmlyc3QgcGxhY2UgaW4gd2hpY2ggYXR0cmlidXRlIHJlZmVyZW5jZXMgYXJlIHNlYXJjaGVkLlxuICAgV2hlbiBhbiBhdHRyaWJ1dGUgaXMgbm90IGZvdW5kIHRoZXJlLCBhbmQgdGhlIGluc3RhbmNlXCdzIGNsYXNzIGhhc1xuICAgYW4gYXR0cmlidXRlIGJ5IHRoYXQgbmFtZSwgdGhlIHNlYXJjaCBjb250aW51ZXMgd2l0aCB0aGUgY2xhc3NcbiAgIGF0dHJpYnV0ZXMuICBJZiBhIGNsYXNzIGF0dHJpYnV0ZSBpcyBmb3VuZCB0aGF0IGlzIGEgdXNlci1kZWZpbmVkXG4gICBmdW5jdGlvbiBvYmplY3QsIGl0IGlzIHRyYW5zZm9ybWVkIGludG8gYW4gaW5zdGFuY2UgbWV0aG9kIG9iamVjdFxuICAgd2hvc2UgYGBfX3NlbGZfX2BgIGF0dHJpYnV0ZSBpcyB0aGUgaW5zdGFuY2UuICBTdGF0aWMgbWV0aG9kIGFuZFxuICAgY2xhc3MgbWV0aG9kIG9iamVjdHMgYXJlIGFsc28gdHJhbnNmb3JtZWQ7IHNlZSBhYm92ZSB1bmRlclxuICAgIkNsYXNzZXMiLiAgU2VlIHNlY3Rpb24gKkltcGxlbWVudGluZyBEZXNjcmlwdG9ycyogZm9yIGFub3RoZXIgd2F5XG4gICBpbiB3aGljaCBhdHRyaWJ1dGVzIG9mIGEgY2xhc3MgcmV0cmlldmVkIHZpYSBpdHMgaW5zdGFuY2VzIG1heVxuICAgZGlmZmVyIGZyb20gdGhlIG9iamVjdHMgYWN0dWFsbHkgc3RvcmVkIGluIHRoZSBjbGFzc1wnc1xuICAgYGBfX2RpY3RfX2BgLiAgSWYgbm8gY2xhc3MgYXR0cmlidXRlIGlzIGZvdW5kLCBhbmQgdGhlIG9iamVjdFwnc1xuICAgY2xhc3MgaGFzIGEgYGBfX2dldGF0dHJfXygpYGAgbWV0aG9kLCB0aGF0IGlzIGNhbGxlZCB0byBzYXRpc2Z5IHRoZVxuICAgbG9va3VwLlxuXG4gICBBdHRyaWJ1dGUgYXNzaWdubWVudHMgYW5kIGRlbGV0aW9ucyB1cGRhdGUgdGhlIGluc3RhbmNlXCdzXG4gICBkaWN0aW9uYXJ5LCBuZXZlciBhIGNsYXNzXCdzIGRpY3Rpb25hcnkuICBJZiB0aGUgY2xhc3MgaGFzIGFcbiAgIGBgX19zZXRhdHRyX18oKWBgIG9yIGBgX19kZWxhdHRyX18oKWBgIG1ldGhvZCwgdGhpcyBpcyBjYWxsZWRcbiAgIGluc3RlYWQgb2YgdXBkYXRpbmcgdGhlIGluc3RhbmNlIGRpY3Rpb25hcnkgZGlyZWN0bHkuXG5cbiAgIENsYXNzIGluc3RhbmNlcyBjYW4gcHJldGVuZCB0byBiZSBudW1iZXJzLCBzZXF1ZW5jZXMsIG9yIG1hcHBpbmdzXG4gICBpZiB0aGV5IGhhdmUgbWV0aG9kcyB3aXRoIGNlcnRhaW4gc3BlY2lhbCBuYW1lcy4gIFNlZSBzZWN0aW9uXG4gICAqU3BlY2lhbCBtZXRob2QgbmFtZXMqLlxuXG4gICBTcGVjaWFsIGF0dHJpYnV0ZXM6IGBgX19kaWN0X19gYCBpcyB0aGUgYXR0cmlidXRlIGRpY3Rpb25hcnk7XG4gICBgYF9fY2xhc3NfX2BgIGlzIHRoZSBpbnN0YW5jZVwncyBjbGFzcy5cblxuSS9PIG9iamVjdHMgKGFsc28ga25vd24gYXMgZmlsZSBvYmplY3RzKVxuICAgQSAqZmlsZSBvYmplY3QqIHJlcHJlc2VudHMgYW4gb3BlbiBmaWxlLiAgVmFyaW91cyBzaG9ydGN1dHMgYXJlXG4gICBhdmFpbGFibGUgdG8gY3JlYXRlIGZpbGUgb2JqZWN0czogdGhlIGBgb3BlbigpYGAgYnVpbHQtaW4gZnVuY3Rpb24sXG4gICBhbmQgYWxzbyBgYG9zLnBvcGVuKClgYCwgYGBvcy5mZG9wZW4oKWBgLCBhbmQgdGhlIGBgbWFrZWZpbGUoKWBgXG4gICBtZXRob2Qgb2Ygc29ja2V0IG9iamVjdHMgKGFuZCBwZXJoYXBzIGJ5IG90aGVyIGZ1bmN0aW9ucyBvciBtZXRob2RzXG4gICBwcm92aWRlZCBieSBleHRlbnNpb24gbW9kdWxlcykuXG5cbiAgIFRoZSBvYmplY3RzIGBgc3lzLnN0ZGluYGAsIGBgc3lzLnN0ZG91dGBgIGFuZCBgYHN5cy5zdGRlcnJgYCBhcmVcbiAgIGluaXRpYWxpemVkIHRvIGZpbGUgb2JqZWN0cyBjb3JyZXNwb25kaW5nIHRvIHRoZSBpbnRlcnByZXRlclwnc1xuICAgc3RhbmRhcmQgaW5wdXQsIG91dHB1dCBhbmQgZXJyb3Igc3RyZWFtczsgdGhleSBhcmUgYWxsIG9wZW4gaW4gdGV4dFxuICAgbW9kZSBhbmQgdGhlcmVmb3JlIGZvbGxvdyB0aGUgaW50ZXJmYWNlIGRlZmluZWQgYnkgdGhlXG4gICBgYGlvLlRleHRJT0Jhc2VgYCBhYnN0cmFjdCBjbGFzcy5cblxuSW50ZXJuYWwgdHlwZXNcbiAgIEEgZmV3IHR5cGVzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgaW50ZXJwcmV0ZXIgYXJlIGV4cG9zZWQgdG8gdGhlXG4gICB1c2VyLiBUaGVpciBkZWZpbml0aW9ucyBtYXkgY2hhbmdlIHdpdGggZnV0dXJlIHZlcnNpb25zIG9mIHRoZVxuICAgaW50ZXJwcmV0ZXIsIGJ1dCB0aGV5IGFyZSBtZW50aW9uZWQgaGVyZSBmb3IgY29tcGxldGVuZXNzLlxuXG4gICBDb2RlIG9iamVjdHNcbiAgICAgIENvZGUgb2JqZWN0cyByZXByZXNlbnQgKmJ5dGUtY29tcGlsZWQqIGV4ZWN1dGFibGUgUHl0aG9uIGNvZGUsXG4gICAgICBvciAqYnl0ZWNvZGUqLiBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgY29kZSBvYmplY3QgYW5kIGFcbiAgICAgIGZ1bmN0aW9uIG9iamVjdCBpcyB0aGF0IHRoZSBmdW5jdGlvbiBvYmplY3QgY29udGFpbnMgYW4gZXhwbGljaXRcbiAgICAgIHJlZmVyZW5jZSB0byB0aGUgZnVuY3Rpb25cJ3MgZ2xvYmFscyAodGhlIG1vZHVsZSBpbiB3aGljaCBpdCB3YXNcbiAgICAgIGRlZmluZWQpLCB3aGlsZSBhIGNvZGUgb2JqZWN0IGNvbnRhaW5zIG5vIGNvbnRleHQ7IGFsc28gdGhlXG4gICAgICBkZWZhdWx0IGFyZ3VtZW50IHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSBmdW5jdGlvbiBvYmplY3QsIG5vdFxuICAgICAgaW4gdGhlIGNvZGUgb2JqZWN0IChiZWNhdXNlIHRoZXkgcmVwcmVzZW50IHZhbHVlcyBjYWxjdWxhdGVkIGF0XG4gICAgICBydW4tdGltZSkuICBVbmxpa2UgZnVuY3Rpb24gb2JqZWN0cywgY29kZSBvYmplY3RzIGFyZSBpbW11dGFibGVcbiAgICAgIGFuZCBjb250YWluIG5vIHJlZmVyZW5jZXMgKGRpcmVjdGx5IG9yIGluZGlyZWN0bHkpIHRvIG11dGFibGVcbiAgICAgIG9iamVjdHMuXG5cbiAgICAgIFNwZWNpYWwgcmVhZC1vbmx5IGF0dHJpYnV0ZXM6IGBgY29fbmFtZWBgIGdpdmVzIHRoZSBmdW5jdGlvblxuICAgICAgbmFtZTsgYGBjb19hcmdjb3VudGBgIGlzIHRoZSBudW1iZXIgb2YgcG9zaXRpb25hbCBhcmd1bWVudHNcbiAgICAgIChpbmNsdWRpbmcgYXJndW1lbnRzIHdpdGggZGVmYXVsdCB2YWx1ZXMpOyBgYGNvX25sb2NhbHNgYCBpcyB0aGVcbiAgICAgIG51bWJlciBvZiBsb2NhbCB2YXJpYWJsZXMgdXNlZCBieSB0aGUgZnVuY3Rpb24gKGluY2x1ZGluZ1xuICAgICAgYXJndW1lbnRzKTsgYGBjb192YXJuYW1lc2BgIGlzIGEgdHVwbGUgY29udGFpbmluZyB0aGUgbmFtZXMgb2ZcbiAgICAgIHRoZSBsb2NhbCB2YXJpYWJsZXMgKHN0YXJ0aW5nIHdpdGggdGhlIGFyZ3VtZW50IG5hbWVzKTtcbiAgICAgIGBgY29fY2VsbHZhcnNgYCBpcyBhIHR1cGxlIGNvbnRhaW5pbmcgdGhlIG5hbWVzIG9mIGxvY2FsXG4gICAgICB2YXJpYWJsZXMgdGhhdCBhcmUgcmVmZXJlbmNlZCBieSBuZXN0ZWQgZnVuY3Rpb25zO1xuICAgICAgYGBjb19mcmVldmFyc2BgIGlzIGEgdHVwbGUgY29udGFpbmluZyB0aGUgbmFtZXMgb2YgZnJlZVxuICAgICAgdmFyaWFibGVzOyBgYGNvX2NvZGVgYCBpcyBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHNlcXVlbmNlIG9mXG4gICAgICBieXRlY29kZSBpbnN0cnVjdGlvbnM7IGBgY29fY29uc3RzYGAgaXMgYSB0dXBsZSBjb250YWluaW5nIHRoZVxuICAgICAgbGl0ZXJhbHMgdXNlZCBieSB0aGUgYnl0ZWNvZGU7IGBgY29fbmFtZXNgYCBpcyBhIHR1cGxlXG4gICAgICBjb250YWluaW5nIHRoZSBuYW1lcyB1c2VkIGJ5IHRoZSBieXRlY29kZTsgYGBjb19maWxlbmFtZWBgIGlzXG4gICAgICB0aGUgZmlsZW5hbWUgZnJvbSB3aGljaCB0aGUgY29kZSB3YXMgY29tcGlsZWQ7XG4gICAgICBgYGNvX2ZpcnN0bGluZW5vYGAgaXMgdGhlIGZpcnN0IGxpbmUgbnVtYmVyIG9mIHRoZSBmdW5jdGlvbjtcbiAgICAgIGBgY29fbG5vdGFiYGAgaXMgYSBzdHJpbmcgZW5jb2RpbmcgdGhlIG1hcHBpbmcgZnJvbSBieXRlY29kZVxuICAgICAgb2Zmc2V0cyB0byBsaW5lIG51bWJlcnMgKGZvciBkZXRhaWxzIHNlZSB0aGUgc291cmNlIGNvZGUgb2YgdGhlXG4gICAgICBpbnRlcnByZXRlcik7IGBgY29fc3RhY2tzaXplYGAgaXMgdGhlIHJlcXVpcmVkIHN0YWNrIHNpemVcbiAgICAgIChpbmNsdWRpbmcgbG9jYWwgdmFyaWFibGVzKTsgYGBjb19mbGFnc2BgIGlzIGFuIGludGVnZXIgZW5jb2RpbmdcbiAgICAgIGEgbnVtYmVyIG9mIGZsYWdzIGZvciB0aGUgaW50ZXJwcmV0ZXIuXG5cbiAgICAgIFRoZSBmb2xsb3dpbmcgZmxhZyBiaXRzIGFyZSBkZWZpbmVkIGZvciBgYGNvX2ZsYWdzYGA6IGJpdFxuICAgICAgYGAweDA0YGAgaXMgc2V0IGlmIHRoZSBmdW5jdGlvbiB1c2VzIHRoZSBgYCphcmd1bWVudHNgYCBzeW50YXhcbiAgICAgIHRvIGFjY2VwdCBhbiBhcmJpdHJhcnkgbnVtYmVyIG9mIHBvc2l0aW9uYWwgYXJndW1lbnRzOyBiaXRcbiAgICAgIGBgMHgwOGBgIGlzIHNldCBpZiB0aGUgZnVuY3Rpb24gdXNlcyB0aGUgYGAqKmtleXdvcmRzYGAgc3ludGF4XG4gICAgICB0byBhY2NlcHQgYXJiaXRyYXJ5IGtleXdvcmQgYXJndW1lbnRzOyBiaXQgYGAweDIwYGAgaXMgc2V0IGlmXG4gICAgICB0aGUgZnVuY3Rpb24gaXMgYSBnZW5lcmF0b3IuXG5cbiAgICAgIEZ1dHVyZSBmZWF0dXJlIGRlY2xhcmF0aW9ucyAoYGBmcm9tIF9fZnV0dXJlX18gaW1wb3J0XG4gICAgICBkaXZpc2lvbmBgKSBhbHNvIHVzZSBiaXRzIGluIGBgY29fZmxhZ3NgYCB0byBpbmRpY2F0ZSB3aGV0aGVyIGFcbiAgICAgIGNvZGUgb2JqZWN0IHdhcyBjb21waWxlZCB3aXRoIGEgcGFydGljdWxhciBmZWF0dXJlIGVuYWJsZWQ6IGJpdFxuICAgICAgYGAweDIwMDBgYCBpcyBzZXQgaWYgdGhlIGZ1bmN0aW9uIHdhcyBjb21waWxlZCB3aXRoIGZ1dHVyZVxuICAgICAgZGl2aXNpb24gZW5hYmxlZDsgYml0cyBgYDB4MTBgYCBhbmQgYGAweDEwMDBgYCB3ZXJlIHVzZWQgaW5cbiAgICAgIGVhcmxpZXIgdmVyc2lvbnMgb2YgUHl0aG9uLlxuXG4gICAgICBPdGhlciBiaXRzIGluIGBgY29fZmxhZ3NgYCBhcmUgcmVzZXJ2ZWQgZm9yIGludGVybmFsIHVzZS5cblxuICAgICAgSWYgYSBjb2RlIG9iamVjdCByZXByZXNlbnRzIGEgZnVuY3Rpb24sIHRoZSBmaXJzdCBpdGVtIGluXG4gICAgICBgYGNvX2NvbnN0c2BgIGlzIHRoZSBkb2N1bWVudGF0aW9uIHN0cmluZyBvZiB0aGUgZnVuY3Rpb24sIG9yXG4gICAgICBgYE5vbmVgYCBpZiB1bmRlZmluZWQuXG5cbiAgIEZyYW1lIG9iamVjdHNcbiAgICAgIEZyYW1lIG9iamVjdHMgcmVwcmVzZW50IGV4ZWN1dGlvbiBmcmFtZXMuICBUaGV5IG1heSBvY2N1ciBpblxuICAgICAgdHJhY2ViYWNrIG9iamVjdHMgKHNlZSBiZWxvdykuXG5cbiAgICAgIFNwZWNpYWwgcmVhZC1vbmx5IGF0dHJpYnV0ZXM6IGBgZl9iYWNrYGAgaXMgdG8gdGhlIHByZXZpb3VzXG4gICAgICBzdGFjayBmcmFtZSAodG93YXJkcyB0aGUgY2FsbGVyKSwgb3IgYGBOb25lYGAgaWYgdGhpcyBpcyB0aGVcbiAgICAgIGJvdHRvbSBzdGFjayBmcmFtZTsgYGBmX2NvZGVgYCBpcyB0aGUgY29kZSBvYmplY3QgYmVpbmcgZXhlY3V0ZWRcbiAgICAgIGluIHRoaXMgZnJhbWU7IGBgZl9sb2NhbHNgYCBpcyB0aGUgZGljdGlvbmFyeSB1c2VkIHRvIGxvb2sgdXBcbiAgICAgIGxvY2FsIHZhcmlhYmxlczsgYGBmX2dsb2JhbHNgYCBpcyB1c2VkIGZvciBnbG9iYWwgdmFyaWFibGVzO1xuICAgICAgYGBmX2J1aWx0aW5zYGAgaXMgdXNlZCBmb3IgYnVpbHQtaW4gKGludHJpbnNpYykgbmFtZXM7XG4gICAgICBgYGZfbGFzdGlgYCBnaXZlcyB0aGUgcHJlY2lzZSBpbnN0cnVjdGlvbiAodGhpcyBpcyBhbiBpbmRleCBpbnRvXG4gICAgICB0aGUgYnl0ZWNvZGUgc3RyaW5nIG9mIHRoZSBjb2RlIG9iamVjdCkuXG5cbiAgICAgIFNwZWNpYWwgd3JpdGFibGUgYXR0cmlidXRlczogYGBmX3RyYWNlYGAsIGlmIG5vdCBgYE5vbmVgYCwgaXMgYVxuICAgICAgZnVuY3Rpb24gY2FsbGVkIGF0IHRoZSBzdGFydCBvZiBlYWNoIHNvdXJjZSBjb2RlIGxpbmUgKHRoaXMgaXNcbiAgICAgIHVzZWQgYnkgdGhlIGRlYnVnZ2VyKTsgYGBmX2xpbmVub2BgIGlzIHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyXG4gICAgICBvZiB0aGUgZnJhbWUgLS0tIHdyaXRpbmcgdG8gdGhpcyBmcm9tIHdpdGhpbiBhIHRyYWNlIGZ1bmN0aW9uXG4gICAgICBqdW1wcyB0byB0aGUgZ2l2ZW4gbGluZSAob25seSBmb3IgdGhlIGJvdHRvbS1tb3N0IGZyYW1lKS4gIEFcbiAgICAgIGRlYnVnZ2VyIGNhbiBpbXBsZW1lbnQgYSBKdW1wIGNvbW1hbmQgKGFrYSBTZXQgTmV4dCBTdGF0ZW1lbnQpXG4gICAgICBieSB3cml0aW5nIHRvIGZfbGluZW5vLlxuXG4gICBUcmFjZWJhY2sgb2JqZWN0c1xuICAgICAgVHJhY2ViYWNrIG9iamVjdHMgcmVwcmVzZW50IGEgc3RhY2sgdHJhY2Ugb2YgYW4gZXhjZXB0aW9uLiAgQVxuICAgICAgdHJhY2ViYWNrIG9iamVjdCBpcyBjcmVhdGVkIHdoZW4gYW4gZXhjZXB0aW9uIG9jY3Vycy4gIFdoZW4gdGhlXG4gICAgICBzZWFyY2ggZm9yIGFuIGV4Y2VwdGlvbiBoYW5kbGVyIHVud2luZHMgdGhlIGV4ZWN1dGlvbiBzdGFjaywgYXRcbiAgICAgIGVhY2ggdW53b3VuZCBsZXZlbCBhIHRyYWNlYmFjayBvYmplY3QgaXMgaW5zZXJ0ZWQgaW4gZnJvbnQgb2ZcbiAgICAgIHRoZSBjdXJyZW50IHRyYWNlYmFjay4gIFdoZW4gYW4gZXhjZXB0aW9uIGhhbmRsZXIgaXMgZW50ZXJlZCxcbiAgICAgIHRoZSBzdGFjayB0cmFjZSBpcyBtYWRlIGF2YWlsYWJsZSB0byB0aGUgcHJvZ3JhbS4gKFNlZSBzZWN0aW9uXG4gICAgICAqVGhlIHRyeSBzdGF0ZW1lbnQqLikgSXQgaXMgYWNjZXNzaWJsZSBhcyB0aGUgdGhpcmQgaXRlbSBvZiB0aGVcbiAgICAgIHR1cGxlIHJldHVybmVkIGJ5IGBgc3lzLmV4Y19pbmZvKClgYC4gV2hlbiB0aGUgcHJvZ3JhbSBjb250YWluc1xuICAgICAgbm8gc3VpdGFibGUgaGFuZGxlciwgdGhlIHN0YWNrIHRyYWNlIGlzIHdyaXR0ZW4gKG5pY2VseVxuICAgICAgZm9ybWF0dGVkKSB0byB0aGUgc3RhbmRhcmQgZXJyb3Igc3RyZWFtOyBpZiB0aGUgaW50ZXJwcmV0ZXIgaXNcbiAgICAgIGludGVyYWN0aXZlLCBpdCBpcyBhbHNvIG1hZGUgYXZhaWxhYmxlIHRvIHRoZSB1c2VyIGFzXG4gICAgICBgYHN5cy5sYXN0X3RyYWNlYmFja2BgLlxuXG4gICAgICBTcGVjaWFsIHJlYWQtb25seSBhdHRyaWJ1dGVzOiBgYHRiX25leHRgYCBpcyB0aGUgbmV4dCBsZXZlbCBpblxuICAgICAgdGhlIHN0YWNrIHRyYWNlICh0b3dhcmRzIHRoZSBmcmFtZSB3aGVyZSB0aGUgZXhjZXB0aW9uXG4gICAgICBvY2N1cnJlZCksIG9yIGBgTm9uZWBgIGlmIHRoZXJlIGlzIG5vIG5leHQgbGV2ZWw7IGBgdGJfZnJhbWVgYFxuICAgICAgcG9pbnRzIHRvIHRoZSBleGVjdXRpb24gZnJhbWUgb2YgdGhlIGN1cnJlbnQgbGV2ZWw7XG4gICAgICBgYHRiX2xpbmVub2BgIGdpdmVzIHRoZSBsaW5lIG51bWJlciB3aGVyZSB0aGUgZXhjZXB0aW9uXG4gICAgICBvY2N1cnJlZDsgYGB0Yl9sYXN0aWBgIGluZGljYXRlcyB0aGUgcHJlY2lzZSBpbnN0cnVjdGlvbi4gIFRoZVxuICAgICAgbGluZSBudW1iZXIgYW5kIGxhc3QgaW5zdHJ1Y3Rpb24gaW4gdGhlIHRyYWNlYmFjayBtYXkgZGlmZmVyXG4gICAgICBmcm9tIHRoZSBsaW5lIG51bWJlciBvZiBpdHMgZnJhbWUgb2JqZWN0IGlmIHRoZSBleGNlcHRpb25cbiAgICAgIG9jY3VycmVkIGluIGEgYGB0cnlgYCBzdGF0ZW1lbnQgd2l0aCBubyBtYXRjaGluZyBleGNlcHQgY2xhdXNlXG4gICAgICBvciB3aXRoIGEgZmluYWxseSBjbGF1c2UuXG5cbiAgIFNsaWNlIG9iamVjdHNcbiAgICAgIFNsaWNlIG9iamVjdHMgYXJlIHVzZWQgdG8gcmVwcmVzZW50IHNsaWNlcyBmb3IgYGBfX2dldGl0ZW1fXygpYGBcbiAgICAgIG1ldGhvZHMuICBUaGV5IGFyZSBhbHNvIGNyZWF0ZWQgYnkgdGhlIGJ1aWx0LWluIGBgc2xpY2UoKWBgXG4gICAgICBmdW5jdGlvbi5cblxuICAgICAgU3BlY2lhbCByZWFkLW9ubHkgYXR0cmlidXRlczogYGBzdGFydGBgIGlzIHRoZSBsb3dlciBib3VuZDtcbiAgICAgIGBgc3RvcGBgIGlzIHRoZSB1cHBlciBib3VuZDsgYGBzdGVwYGAgaXMgdGhlIHN0ZXAgdmFsdWU7IGVhY2ggaXNcbiAgICAgIGBgTm9uZWBgIGlmIG9taXR0ZWQuIFRoZXNlIGF0dHJpYnV0ZXMgY2FuIGhhdmUgYW55IHR5cGUuXG5cbiAgICAgIFNsaWNlIG9iamVjdHMgc3VwcG9ydCBvbmUgbWV0aG9kOlxuXG4gICAgICBzbGljZS5pbmRpY2VzKHNlbGYsIGxlbmd0aClcblxuICAgICAgICAgVGhpcyBtZXRob2QgdGFrZXMgYSBzaW5nbGUgaW50ZWdlciBhcmd1bWVudCAqbGVuZ3RoKiBhbmRcbiAgICAgICAgIGNvbXB1dGVzIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzbGljZSB0aGF0IHRoZSBzbGljZSBvYmplY3RcbiAgICAgICAgIHdvdWxkIGRlc2NyaWJlIGlmIGFwcGxpZWQgdG8gYSBzZXF1ZW5jZSBvZiAqbGVuZ3RoKiBpdGVtcy5cbiAgICAgICAgIEl0IHJldHVybnMgYSB0dXBsZSBvZiB0aHJlZSBpbnRlZ2VyczsgcmVzcGVjdGl2ZWx5IHRoZXNlIGFyZVxuICAgICAgICAgdGhlICpzdGFydCogYW5kICpzdG9wKiBpbmRpY2VzIGFuZCB0aGUgKnN0ZXAqIG9yIHN0cmlkZVxuICAgICAgICAgbGVuZ3RoIG9mIHRoZSBzbGljZS4gTWlzc2luZyBvciBvdXQtb2YtYm91bmRzIGluZGljZXMgYXJlXG4gICAgICAgICBoYW5kbGVkIGluIGEgbWFubmVyIGNvbnNpc3RlbnQgd2l0aCByZWd1bGFyIHNsaWNlcy5cblxuICAgU3RhdGljIG1ldGhvZCBvYmplY3RzXG4gICAgICBTdGF0aWMgbWV0aG9kIG9iamVjdHMgcHJvdmlkZSBhIHdheSBvZiBkZWZlYXRpbmcgdGhlXG4gICAgICB0cmFuc2Zvcm1hdGlvbiBvZiBmdW5jdGlvbiBvYmplY3RzIHRvIG1ldGhvZCBvYmplY3RzIGRlc2NyaWJlZFxuICAgICAgYWJvdmUuIEEgc3RhdGljIG1ldGhvZCBvYmplY3QgaXMgYSB3cmFwcGVyIGFyb3VuZCBhbnkgb3RoZXJcbiAgICAgIG9iamVjdCwgdXN1YWxseSBhIHVzZXItZGVmaW5lZCBtZXRob2Qgb2JqZWN0LiBXaGVuIGEgc3RhdGljXG4gICAgICBtZXRob2Qgb2JqZWN0IGlzIHJldHJpZXZlZCBmcm9tIGEgY2xhc3Mgb3IgYSBjbGFzcyBpbnN0YW5jZSwgdGhlXG4gICAgICBvYmplY3QgYWN0dWFsbHkgcmV0dXJuZWQgaXMgdGhlIHdyYXBwZWQgb2JqZWN0LCB3aGljaCBpcyBub3RcbiAgICAgIHN1YmplY3QgdG8gYW55IGZ1cnRoZXIgdHJhbnNmb3JtYXRpb24uIFN0YXRpYyBtZXRob2Qgb2JqZWN0cyBhcmVcbiAgICAgIG5vdCB0aGVtc2VsdmVzIGNhbGxhYmxlLCBhbHRob3VnaCB0aGUgb2JqZWN0cyB0aGV5IHdyYXAgdXN1YWxseVxuICAgICAgYXJlLiBTdGF0aWMgbWV0aG9kIG9iamVjdHMgYXJlIGNyZWF0ZWQgYnkgdGhlIGJ1aWx0LWluXG4gICAgICBgYHN0YXRpY21ldGhvZCgpYGAgY29uc3RydWN0b3IuXG5cbiAgIENsYXNzIG1ldGhvZCBvYmplY3RzXG4gICAgICBBIGNsYXNzIG1ldGhvZCBvYmplY3QsIGxpa2UgYSBzdGF0aWMgbWV0aG9kIG9iamVjdCwgaXMgYSB3cmFwcGVyXG4gICAgICBhcm91bmQgYW5vdGhlciBvYmplY3QgdGhhdCBhbHRlcnMgdGhlIHdheSBpbiB3aGljaCB0aGF0IG9iamVjdFxuICAgICAgaXMgcmV0cmlldmVkIGZyb20gY2xhc3NlcyBhbmQgY2xhc3MgaW5zdGFuY2VzLiBUaGUgYmVoYXZpb3VyIG9mXG4gICAgICBjbGFzcyBtZXRob2Qgb2JqZWN0cyB1cG9uIHN1Y2ggcmV0cmlldmFsIGlzIGRlc2NyaWJlZCBhYm92ZSxcbiAgICAgIHVuZGVyICJVc2VyLWRlZmluZWQgbWV0aG9kcyIuIENsYXNzIG1ldGhvZCBvYmplY3RzIGFyZSBjcmVhdGVkXG4gICAgICBieSB0aGUgYnVpbHQtaW4gYGBjbGFzc21ldGhvZCgpYGAgY29uc3RydWN0b3IuXG4nLAogICd0eXBlc2Z1bmN0aW9ucyc6ICdcbkZ1bmN0aW9uc1xuKioqKioqKioqXG5cbkZ1bmN0aW9uIG9iamVjdHMgYXJlIGNyZWF0ZWQgYnkgZnVuY3Rpb24gZGVmaW5pdGlvbnMuICBUaGUgb25seVxub3BlcmF0aW9uIG9uIGEgZnVuY3Rpb24gb2JqZWN0IGlzIHRvIGNhbGwgaXQ6IGBgZnVuYyhhcmd1bWVudC1saXN0KWBgLlxuXG5UaGVyZSBhcmUgcmVhbGx5IHR3byBmbGF2b3JzIG9mIGZ1bmN0aW9uIG9iamVjdHM6IGJ1aWx0LWluIGZ1bmN0aW9uc1xuYW5kIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMuICBCb3RoIHN1cHBvcnQgdGhlIHNhbWUgb3BlcmF0aW9uICh0byBjYWxsXG50aGUgZnVuY3Rpb24pLCBidXQgdGhlIGltcGxlbWVudGF0aW9uIGlzIGRpZmZlcmVudCwgaGVuY2UgdGhlXG5kaWZmZXJlbnQgb2JqZWN0IHR5cGVzLlxuXG5TZWUgKkZ1bmN0aW9uIGRlZmluaXRpb25zKiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbicsCi0gJ3R5cGVzbWFwcGluZyc6ICdcbk1hcHBpbmcgVHlwZXMgLS0tIGBgZGljdGBgXG4qKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5BICptYXBwaW5nKiBvYmplY3QgbWFwcyAqaGFzaGFibGUqIHZhbHVlcyB0byBhcmJpdHJhcnkgb2JqZWN0cy5cbk1hcHBpbmdzIGFyZSBtdXRhYmxlIG9iamVjdHMuICBUaGVyZSBpcyBjdXJyZW50bHkgb25seSBvbmUgc3RhbmRhcmRcbm1hcHBpbmcgdHlwZSwgdGhlICpkaWN0aW9uYXJ5Ki4gIChGb3Igb3RoZXIgY29udGFpbmVycyBzZWUgdGhlIGJ1aWx0XG5pbiBgYGxpc3RgYCwgYGBzZXRgYCwgYW5kIGBgdHVwbGVgYCBjbGFzc2VzLCBhbmQgdGhlIGBgY29sbGVjdGlvbnNgYFxubW9kdWxlLilcblxuQSBkaWN0aW9uYXJ5XCdzIGtleXMgYXJlICphbG1vc3QqIGFyYml0cmFyeSB2YWx1ZXMuICBWYWx1ZXMgdGhhdCBhcmVcbm5vdCAqaGFzaGFibGUqLCB0aGF0IGlzLCB2YWx1ZXMgY29udGFpbmluZyBsaXN0cywgZGljdGlvbmFyaWVzIG9yXG5vdGhlciBtdXRhYmxlIHR5cGVzICh0aGF0IGFyZSBjb21wYXJlZCBieSB2YWx1ZSByYXRoZXIgdGhhbiBieSBvYmplY3RcbmlkZW50aXR5KSBtYXkgbm90IGJlIHVzZWQgYXMga2V5cy4gIE51bWVyaWMgdHlwZXMgdXNlZCBmb3Iga2V5cyBvYmV5XG50aGUgbm9ybWFsIHJ1bGVzIGZvciBudW1lcmljIGNvbXBhcmlzb246IGlmIHR3byBudW1iZXJzIGNvbXBhcmUgZXF1YWxcbihzdWNoIGFzIGBgMWBgIGFuZCBgYDEuMGBgKSB0aGVuIHRoZXkgY2FuIGJlIHVzZWQgaW50ZXJjaGFuZ2VhYmx5IHRvXG5pbmRleCB0aGUgc2FtZSBkaWN0aW9uYXJ5IGVudHJ5LiAgKE5vdGUgaG93ZXZlciwgdGhhdCBzaW5jZSBjb21wdXRlcnNcbnN0b3JlIGZsb2F0aW5nLXBvaW50IG51bWJlcnMgYXMgYXBwcm94aW1hdGlvbnMgaXQgaXMgdXN1YWxseSB1bndpc2UgdG9cbnVzZSB0aGVtIGFzIGRpY3Rpb25hcnkga2V5cy4pXG5cbkRpY3Rpb25hcmllcyBjYW4gYmUgY3JlYXRlZCBieSBwbGFjaW5nIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2ZcbmBga2V5OiB2YWx1ZWBgIHBhaXJzIHdpdGhpbiBicmFjZXMsIGZvciBleGFtcGxlOiBgYHtcJ2phY2tcJzogNDA5OCxcblwnc2pvZXJkXCc6IDQxMjd9YGAgb3IgYGB7NDA5ODogXCdqYWNrXCcsIDQxMjc6IFwnc2pvZXJkXCd9YGAsIG9yIGJ5IHRoZVxuYGBkaWN0YGAgY29uc3RydWN0b3IuXG5cbmNsYXNzIGNsYXNzIGRpY3QoW2FyZ10pXG5cbiAgIFJldHVybiBhIG5ldyBkaWN0aW9uYXJ5IGluaXRpYWxpemVkIGZyb20gYW4gb3B0aW9uYWwgcG9zaXRpb25hbFxuICAgYXJndW1lbnQgb3IgZnJvbSBhIHNldCBvZiBrZXl3b3JkIGFyZ3VtZW50cy4gIElmIG5vIGFyZ3VtZW50cyBhcmVcbiAgIGdpdmVuLCByZXR1cm4gYSBuZXcgZW1wdHkgZGljdGlvbmFyeS4gIElmIHRoZSBwb3NpdGlvbmFsIGFyZ3VtZW50XG4gICAqYXJnKiBpcyBhIG1hcHBpbmcgb2JqZWN0LCByZXR1cm4gYSBkaWN0aW9uYXJ5IG1hcHBpbmcgdGhlIHNhbWVcbiAgIGtleXMgdG8gdGhlIHNhbWUgdmFsdWVzIGFzIGRvZXMgdGhlIG1hcHBpbmcgb2JqZWN0LiAgT3RoZXJ3aXNlIHRoZVxuICAgcG9zaXRpb25hbCBhcmd1bWVudCBtdXN0IGJlIGEgc2VxdWVuY2UsIGEgY29udGFpbmVyIHRoYXQgc3VwcG9ydHNcbiAgIGl0ZXJhdGlvbiwgb3IgYW4gaXRlcmF0b3Igb2JqZWN0LiAgVGhlIGVsZW1lbnRzIG9mIHRoZSBhcmd1bWVudFxuICAgbXVzdCBlYWNoIGFsc28gYmUgb2Ygb25lIG9mIHRob3NlIGtpbmRzLCBhbmQgZWFjaCBtdXN0IGluIHR1cm5cbiAgIGNvbnRhaW4gZXhhY3RseSB0d28gb2JqZWN0cy4gIFRoZSBmaXJzdCBpcyB1c2VkIGFzIGEga2V5IGluIHRoZSBuZXdcbiAgIGRpY3Rpb25hcnksIGFuZCB0aGUgc2Vjb25kIGFzIHRoZSBrZXlcJ3MgdmFsdWUuICBJZiBhIGdpdmVuIGtleSBpc1xuICAgc2VlbiBtb3JlIHRoYW4gb25jZSwgdGhlIGxhc3QgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIGl0IGlzIHJldGFpbmVkXG4gICBpbiB0aGUgbmV3IGRpY3Rpb25hcnkuXG5cbiAgIElmIGtleXdvcmQgYXJndW1lbnRzIGFyZSBnaXZlbiwgdGhlIGtleXdvcmRzIHRoZW1zZWx2ZXMgd2l0aCB0aGVpclxuICAgYXNzb2NpYXRlZCB2YWx1ZXMgYXJlIGFkZGVkIGFzIGl0ZW1zIHRvIHRoZSBkaWN0aW9uYXJ5LiAgSWYgYSBrZXlcbiAgIGlzIHNwZWNpZmllZCBib3RoIGluIHRoZSBwb3NpdGlvbmFsIGFyZ3VtZW50IGFuZCBhcyBhIGtleXdvcmRcbiAgIGFyZ3VtZW50LCB0aGUgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBrZXl3b3JkIGlzIHJldGFpbmVkIGluIHRoZVxuICAgZGljdGlvbmFyeS4gIEZvciBleGFtcGxlLCB0aGVzZSBhbGwgcmV0dXJuIGEgZGljdGlvbmFyeSBlcXVhbCB0b1xuICAgYGB7Im9uZSI6IDEsICJ0d28iOiAyfWBgOlxuXG4gICAqIGBgZGljdChvbmU9MSwgdHdvPTIpYGBcblxuICAgKiBgYGRpY3Qoe1wnb25lXCc6IDEsIFwndHdvXCc6IDJ9KWBgXG5cbiAgICogYGBkaWN0KHppcCgoXCdvbmVcJywgXCd0d29cJyksICgxLCAyKSkpYGBcblxuICAgKiBgYGRpY3QoW1tcJ3R3b1wnLCAyXSwgW1wnb25lXCcsIDFdXSlgYFxuXG4gICBUaGUgZmlyc3QgZXhhbXBsZSBvbmx5IHdvcmtzIGZvciBrZXlzIHRoYXQgYXJlIHZhbGlkIFB5dGhvblxuICAgaWRlbnRpZmllcnM7IHRoZSBvdGhlcnMgd29yayB3aXRoIGFueSB2YWxpZCBrZXlzLlxuXG4gICBUaGVzZSBhcmUgdGhlIG9wZXJhdGlvbnMgdGhhdCBkaWN0aW9uYXJpZXMgc3VwcG9ydCAoYW5kIHRoZXJlZm9yZSxcbiAgIGN1c3RvbSBtYXBwaW5nIHR5cGVzIHNob3VsZCBzdXBwb3J0IHRvbyk6XG5cbiAgIGxlbihkKVxuXG4gICAgICBSZXR1cm4gdGhlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgZGljdGlvbmFyeSAqZCouXG5cbiAgIGRba2V5XVxuXG4gICAgICBSZXR1cm4gdGhlIGl0ZW0gb2YgKmQqIHdpdGgga2V5ICprZXkqLiAgUmFpc2VzIGEgYGBLZXlFcnJvcmBgIGlmXG4gICAgICAqa2V5KiBpcyBub3QgaW4gdGhlIG1hcC5cblxuICAgICAgSWYgYSBzdWJjbGFzcyBvZiBkaWN0IGRlZmluZXMgYSBtZXRob2QgYGBfX21pc3NpbmdfXygpYGAsIGlmIHRoZVxuICAgICAga2V5ICprZXkqIGlzIG5vdCBwcmVzZW50LCB0aGUgYGBkW2tleV1gYCBvcGVyYXRpb24gY2FsbHMgdGhhdFxuICAgICAgbWV0aG9kIHdpdGggdGhlIGtleSAqa2V5KiBhcyBhcmd1bWVudC4gIFRoZSBgYGRba2V5XWBgIG9wZXJhdGlvblxuICAgICAgdGhlbiByZXR1cm5zIG9yIHJhaXNlcyB3aGF0ZXZlciBpcyByZXR1cm5lZCBvciByYWlzZWQgYnkgdGhlXG4gICAgICBgYF9fbWlzc2luZ19fKGtleSlgYCBjYWxsIGlmIHRoZSBrZXkgaXMgbm90IHByZXNlbnQuIE5vIG90aGVyXG4gICAgICBvcGVyYXRpb25zIG9yIG1ldGhvZHMgaW52b2tlIGBgX19taXNzaW5nX18oKWBgLiBJZlxuICAgICAgYGBfX21pc3NpbmdfXygpYGAgaXMgbm90IGRlZmluZWQsIGBgS2V5RXJyb3JgYCBpcyByYWlzZWQuXG4gICAgICBgYF9fbWlzc2luZ19fKClgYCBtdXN0IGJlIGEgbWV0aG9kOyBpdCBjYW5ub3QgYmUgYW4gaW5zdGFuY2VcbiAgICAgIHZhcmlhYmxlOlxuXG4gICAgICAgICA+Pj4gY2xhc3MgQ291bnRlcihkaWN0KTpcbiAgICAgICAgIC4uLiAgICAgZGVmIF9fbWlzc2luZ19fKHNlbGYsIGtleSk6XG4gICAgICAgICAuLi4gICAgICAgICByZXR1cm4gMFxuICAgICAgICAgPj4+IGMgPSBDb3VudGVyKClcbiAgICAgICAgID4+PiBjW1wncmVkXCddXG4gICAgICAgICAwXG4gICAgICAgICA+Pj4gY1tcJ3JlZFwnXSArPSAxXG4gICAgICAgICA+Pj4gY1tcJ3JlZFwnXVxuICAgICAgICAgMVxuXG4gICAgICBTZWUgYGBjb2xsZWN0aW9ucy5Db3VudGVyYGAgZm9yIGEgY29tcGxldGUgaW1wbGVtZW50YXRpb25cbiAgICAgIGluY2x1ZGluZyBvdGhlciBtZXRob2RzIGhlbHBmdWwgZm9yIGFjY3VtdWxhdGluZyBhbmQgbWFuYWdpbmdcbiAgICAgIHRhbGxpZXMuXG5cbiAgIGRba2V5XSA9IHZhbHVlXG5cbiAgICAgIFNldCBgYGRba2V5XWBgIHRvICp2YWx1ZSouXG5cbiAgIGRlbCBkW2tleV1cblxuICAgICAgUmVtb3ZlIGBgZFtrZXldYGAgZnJvbSAqZCouICBSYWlzZXMgYSBgYEtleUVycm9yYGAgaWYgKmtleSogaXNcbiAgICAgIG5vdCBpbiB0aGUgbWFwLlxuXG4gICBrZXkgaW4gZFxuXG4gICAgICBSZXR1cm4gYGBUcnVlYGAgaWYgKmQqIGhhcyBhIGtleSAqa2V5KiwgZWxzZSBgYEZhbHNlYGAuXG5cbiAgIGtleSBub3QgaW4gZFxuXG4gICAgICBFcXVpdmFsZW50IHRvIGBgbm90IGtleSBpbiBkYGAuXG5cbiAgIGl0ZXIoZClcblxuICAgICAgUmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGtleXMgb2YgdGhlIGRpY3Rpb25hcnkuICBUaGlzIGlzIGFcbiAgICAgIHNob3J0Y3V0IGZvciBgYGl0ZXIoZC5rZXlzKCkpYGAuXG5cbiAgIGNsZWFyKClcblxuICAgICAgUmVtb3ZlIGFsbCBpdGVtcyBmcm9tIHRoZSBkaWN0aW9uYXJ5LlxuXG4gICBjb3B5KClcblxuICAgICAgUmV0dXJuIGEgc2hhbGxvdyBjb3B5IG9mIHRoZSBkaWN0aW9uYXJ5LlxuXG4gICBjbGFzc21ldGhvZCBmcm9ta2V5cyhzZXFbLCB2YWx1ZV0pXG5cbiAgICAgIENyZWF0ZSBhIG5ldyBkaWN0aW9uYXJ5IHdpdGgga2V5cyBmcm9tICpzZXEqIGFuZCB2YWx1ZXMgc2V0IHRvXG4gICAgICAqdmFsdWUqLlxuXG4gICAgICBgYGZyb21rZXlzKClgYCBpcyBhIGNsYXNzIG1ldGhvZCB0aGF0IHJldHVybnMgYSBuZXcgZGljdGlvbmFyeS5cbiAgICAgICp2YWx1ZSogZGVmYXVsdHMgdG8gYGBOb25lYGAuXG5cbiAgIGdldChrZXlbLCBkZWZhdWx0XSlcblxuICAgICAgUmV0dXJuIHRoZSB2YWx1ZSBmb3IgKmtleSogaWYgKmtleSogaXMgaW4gdGhlIGRpY3Rpb25hcnksIGVsc2VcbiAgICAgICpkZWZhdWx0Ki4gSWYgKmRlZmF1bHQqIGlzIG5vdCBnaXZlbiwgaXQgZGVmYXVsdHMgdG8gYGBOb25lYGAsXG4gICAgICBzbyB0aGF0IHRoaXMgbWV0aG9kIG5ldmVyIHJhaXNlcyBhIGBgS2V5RXJyb3JgYC5cblxuICAgaXRlbXMoKVxuXG4gICAgICBSZXR1cm4gYSBuZXcgdmlldyBvZiB0aGUgZGljdGlvbmFyeVwncyBpdGVtcyAoYGAoa2V5LCB2YWx1ZSlgYFxuICAgICAgcGFpcnMpLiAgU2VlIGJlbG93IGZvciBkb2N1bWVudGF0aW9uIG9mIHZpZXcgb2JqZWN0cy5cblxuICAga2V5cygpXG5cbiAgICAgIFJldHVybiBhIG5ldyB2aWV3IG9mIHRoZSBkaWN0aW9uYXJ5XCdzIGtleXMuICBTZWUgYmVsb3cgZm9yXG4gICAgICBkb2N1bWVudGF0aW9uIG9mIHZpZXcgb2JqZWN0cy5cblxuICAgcG9wKGtleVssIGRlZmF1bHRdKVxuXG4gICAgICBJZiAqa2V5KiBpcyBpbiB0aGUgZGljdGlvbmFyeSwgcmVtb3ZlIGl0IGFuZCByZXR1cm4gaXRzIHZhbHVlLFxuICAgICAgZWxzZSByZXR1cm4gKmRlZmF1bHQqLiAgSWYgKmRlZmF1bHQqIGlzIG5vdCBnaXZlbiBhbmQgKmtleSogaXNcbiAgICAgIG5vdCBpbiB0aGUgZGljdGlvbmFyeSwgYSBgYEtleUVycm9yYGAgaXMgcmFpc2VkLlxuXG4gICBwb3BpdGVtKClcblxuICAgICAgUmVtb3ZlIGFuZCByZXR1cm4gYW4gYXJiaXRyYXJ5IGBgKGtleSwgdmFsdWUpYGAgcGFpciBmcm9tIHRoZVxuICAgICAgZGljdGlvbmFyeS5cblxuICAgICAgYGBwb3BpdGVtKClgYCBpcyB1c2VmdWwgdG8gZGVzdHJ1Y3RpdmVseSBpdGVyYXRlIG92ZXIgYVxuICAgICAgZGljdGlvbmFyeSwgYXMgb2Z0ZW4gdXNlZCBpbiBzZXQgYWxnb3JpdGhtcy4gIElmIHRoZSBkaWN0aW9uYXJ5XG4gICAgICBpcyBlbXB0eSwgY2FsbGluZyBgYHBvcGl0ZW0oKWBgIHJhaXNlcyBhIGBgS2V5RXJyb3JgYC5cblxuICAgc2V0ZGVmYXVsdChrZXlbLCBkZWZhdWx0XSlcblxuICAgICAgSWYgKmtleSogaXMgaW4gdGhlIGRpY3Rpb25hcnksIHJldHVybiBpdHMgdmFsdWUuICBJZiBub3QsIGluc2VydFxuICAgICAgKmtleSogd2l0aCBhIHZhbHVlIG9mICpkZWZhdWx0KiBhbmQgcmV0dXJuICpkZWZhdWx0Ki4gICpkZWZhdWx0KlxuICAgICAgZGVmYXVsdHMgdG8gYGBOb25lYGAuXG5cbiAgIHVwZGF0ZShbb3RoZXJdKVxuXG4gICAgICBVcGRhdGUgdGhlIGRpY3Rpb25hcnkgd2l0aCB0aGUga2V5L3ZhbHVlIHBhaXJzIGZyb20gKm90aGVyKixcbiAgICAgIG92ZXJ3cml0aW5nIGV4aXN0aW5nIGtleXMuICBSZXR1cm4gYGBOb25lYGAuXG5cbiAgICAgIGBgdXBkYXRlKClgYCBhY2NlcHRzIGVpdGhlciBhbm90aGVyIGRpY3Rpb25hcnkgb2JqZWN0IG9yIGFuXG4gICAgICBpdGVyYWJsZSBvZiBrZXkvdmFsdWUgcGFpcnMgKGFzIHR1cGxlcyBvciBvdGhlciBpdGVyYWJsZXMgb2ZcbiAgICAgIGxlbmd0aCB0d28pLiAgSWYga2V5d29yZCBhcmd1bWVudHMgYXJlIHNwZWNpZmllZCwgdGhlIGRpY3Rpb25hcnlcbiAgICAgIGlzIHRoZW4gdXBkYXRlZCB3aXRoIHRob3NlIGtleS92YWx1ZSBwYWlyczogYGBkLnVwZGF0ZShyZWQ9MSxcbiAgICAgIGJsdWU9MilgYC5cblxuICAgdmFsdWVzKClcblxuICAgICAgUmV0dXJuIGEgbmV3IHZpZXcgb2YgdGhlIGRpY3Rpb25hcnlcJ3MgdmFsdWVzLiAgU2VlIGJlbG93IGZvclxuICAgICAgZG9jdW1lbnRhdGlvbiBvZiB2aWV3IG9iamVjdHMuXG5cblxuRGljdGlvbmFyeSB2aWV3IG9iamVjdHNcbj09PT09PT09PT09PT09PT09PT09PT09XG5cblRoZSBvYmplY3RzIHJldHVybmVkIGJ5IGBgZGljdC5rZXlzKClgYCwgYGBkaWN0LnZhbHVlcygpYGAgYW5kXG5gYGRpY3QuaXRlbXMoKWBgIGFyZSAqdmlldyBvYmplY3RzKi4gIFRoZXkgcHJvdmlkZSBhIGR5bmFtaWMgdmlldyBvblxudGhlIGRpY3Rpb25hcnlcJ3MgZW50cmllcywgd2hpY2ggbWVhbnMgdGhhdCB3aGVuIHRoZSBkaWN0aW9uYXJ5XG5jaGFuZ2VzLCB0aGUgdmlldyByZWZsZWN0cyB0aGVzZSBjaGFuZ2VzLlxuXG5EaWN0aW9uYXJ5IHZpZXdzIGNhbiBiZSBpdGVyYXRlZCBvdmVyIHRvIHlpZWxkIHRoZWlyIHJlc3BlY3RpdmUgZGF0YSxcbmFuZCBzdXBwb3J0IG1lbWJlcnNoaXAgdGVzdHM6XG5cbmxlbihkaWN0dmlldylcblxuICAgUmV0dXJuIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgZGljdGlvbmFyeS5cblxuaXRlcihkaWN0dmlldylcblxuICAgUmV0dXJuIGFuIGl0ZXJhdG9yIG92ZXIgdGhlIGtleXMsIHZhbHVlcyBvciBpdGVtcyAocmVwcmVzZW50ZWQgYXNcbiAgIHR1cGxlcyBvZiBgYChrZXksIHZhbHVlKWBgKSBpbiB0aGUgZGljdGlvbmFyeS5cblxuICAgS2V5cyBhbmQgdmFsdWVzIGFyZSBpdGVyYXRlZCBvdmVyIGluIGFuIGFyYml0cmFyeSBvcmRlciB3aGljaCBpc1xuICAgbm9uLXJhbmRvbSwgdmFyaWVzIGFjcm9zcyBQeXRob24gaW1wbGVtZW50YXRpb25zLCBhbmQgZGVwZW5kcyBvblxuICAgdGhlIGRpY3Rpb25hcnlcJ3MgaGlzdG9yeSBvZiBpbnNlcnRpb25zIGFuZCBkZWxldGlvbnMuIElmIGtleXMsXG4gICB2YWx1ZXMgYW5kIGl0ZW1zIHZpZXdzIGFyZSBpdGVyYXRlZCBvdmVyIHdpdGggbm8gaW50ZXJ2ZW5pbmdcbiAgIG1vZGlmaWNhdGlvbnMgdG8gdGhlIGRpY3Rpb25hcnksIHRoZSBvcmRlciBvZiBpdGVtcyB3aWxsIGRpcmVjdGx5XG4gICBjb3JyZXNwb25kLiAgVGhpcyBhbGxvd3MgdGhlIGNyZWF0aW9uIG9mIGBgKHZhbHVlLCBrZXkpYGAgcGFpcnNcbiAgIHVzaW5nIGBgemlwKClgYDogYGBwYWlycyA9IHppcChkLnZhbHVlcygpLCBkLmtleXMoKSlgYC4gIEFub3RoZXJcbiAgIHdheSB0byBjcmVhdGUgdGhlIHNhbWUgbGlzdCBpcyBgYHBhaXJzID0gWyh2LCBrKSBmb3IgKGssIHYpIGluXG4gICBkLml0ZW1zKCldYGAuXG5cbiAgIEl0ZXJhdGluZyB2aWV3cyB3aGlsZSBhZGRpbmcgb3IgZGVsZXRpbmcgZW50cmllcyBpbiB0aGUgZGljdGlvbmFyeVxuICAgbWF5IHJhaXNlIGEgYGBSdW50aW1lRXJyb3JgYCBvciBmYWlsIHRvIGl0ZXJhdGUgb3ZlciBhbGwgZW50cmllcy5cblxueCBpbiBkaWN0dmlld1xuXG4gICBSZXR1cm4gYGBUcnVlYGAgaWYgKngqIGlzIGluIHRoZSB1bmRlcmx5aW5nIGRpY3Rpb25hcnlcJ3Mga2V5cyxcbiAgIHZhbHVlcyBvciBpdGVtcyAoaW4gdGhlIGxhdHRlciBjYXNlLCAqeCogc2hvdWxkIGJlIGEgYGAoa2V5LFxuICAgdmFsdWUpYGAgdHVwbGUpLlxuXG5LZXlzIHZpZXdzIGFyZSBzZXQtbGlrZSBzaW5jZSB0aGVpciBlbnRyaWVzIGFyZSB1bmlxdWUgYW5kIGhhc2hhYmxlLlxuSWYgYWxsIHZhbHVlcyBhcmUgaGFzaGFibGUsIHNvIHRoYXQgYGAoa2V5LCB2YWx1ZSlgYCBwYWlycyBhcmUgdW5pcXVlXG5hbmQgaGFzaGFibGUsIHRoZW4gdGhlIGl0ZW1zIHZpZXcgaXMgYWxzbyBzZXQtbGlrZS4gIChWYWx1ZXMgdmlld3MgYXJlXG5ub3QgdHJlYXRlZCBhcyBzZXQtbGlrZSBzaW5jZSB0aGUgZW50cmllcyBhcmUgZ2VuZXJhbGx5IG5vdCB1bmlxdWUuKVxuRm9yIHNldC1saWtlIHZpZXdzLCBhbGwgb2YgdGhlIG9wZXJhdGlvbnMgZGVmaW5lZCBmb3IgdGhlIGFic3RyYWN0XG5iYXNlIGNsYXNzIGBgY29sbGVjdGlvbnMuU2V0YGAgYXJlIGF2YWlsYWJsZSAoZm9yIGV4YW1wbGUsIGBgPT1gYCxcbmBgPGBgLCBvciBgYF5gYCkuXG5cbkFuIGV4YW1wbGUgb2YgZGljdGlvbmFyeSB2aWV3IHVzYWdlOlxuXG4gICA+Pj4gZGlzaGVzID0ge1wnZWdnc1wnOiAyLCBcJ3NhdXNhZ2VcJzogMSwgXCdiYWNvblwnOiAxLCBcJ3NwYW1cJzogNTAwfVxuICAgPj4+IGtleXMgPSBkaXNoZXMua2V5cygpXG4gICA+Pj4gdmFsdWVzID0gZGlzaGVzLnZhbHVlcygpXG5cbiAgID4+PiAjIGl0ZXJhdGlvblxuICAgPj4+IG4gPSAwXG4gICA+Pj4gZm9yIHZhbCBpbiB2YWx1ZXM6XG4gICAuLi4gICAgIG4gKz0gdmFsXG4gICA+Pj4gcHJpbnQobilcbiAgIDUwNFxuXG4gICA+Pj4gIyBrZXlzIGFuZCB2YWx1ZXMgYXJlIGl0ZXJhdGVkIG92ZXIgaW4gdGhlIHNhbWUgb3JkZXJcbiAgID4+PiBsaXN0KGtleXMpXG4gICBbXCdlZ2dzXCcsIFwnYmFjb25cJywgXCdzYXVzYWdlXCcsIFwnc3BhbVwnXVxuICAgPj4+IGxpc3QodmFsdWVzKVxuICAgWzIsIDEsIDEsIDUwMF1cblxuICAgPj4+ICMgdmlldyBvYmplY3RzIGFyZSBkeW5hbWljIGFuZCByZWZsZWN0IGRpY3QgY2hhbmdlc1xuICAgPj4+IGRlbCBkaXNoZXNbXCdlZ2dzXCddXG4gICA+Pj4gZGVsIGRpc2hlc1tcJ3NhdXNhZ2VcJ11cbiAgID4+PiBsaXN0KGtleXMpXG4gICBbXCdzcGFtXCcsIFwnYmFjb25cJ11cblxuICAgPj4+ICMgc2V0IG9wZXJhdGlvbnNcbiAgID4+PiBrZXlzICYge1wnZWdnc1wnLCBcJ2JhY29uXCcsIFwnc2FsYWRcJ31cbiAgIHtcJ2JhY29uXCd9XG4gICA+Pj4ga2V5cyBeIHtcJ3NhdXNhZ2VcJywgXCdqdWljZVwnfVxuICAge1wnanVpY2VcJywgXCdzYXVzYWdlXCcsIFwnYmFjb25cJywgXCdzcGFtXCd9XG4nLAorICd0eXBlc21hcHBpbmcnOiAnXG5NYXBwaW5nIFR5cGVzIC0tLSBgYGRpY3RgYFxuKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuQSAqbWFwcGluZyogb2JqZWN0IG1hcHMgKmhhc2hhYmxlKiB2YWx1ZXMgdG8gYXJiaXRyYXJ5IG9iamVjdHMuXG5NYXBwaW5ncyBhcmUgbXV0YWJsZSBvYmplY3RzLiAgVGhlcmUgaXMgY3VycmVudGx5IG9ubHkgb25lIHN0YW5kYXJkXG5tYXBwaW5nIHR5cGUsIHRoZSAqZGljdGlvbmFyeSouICAoRm9yIG90aGVyIGNvbnRhaW5lcnMgc2VlIHRoZSBidWlsdFxuaW4gYGBsaXN0YGAsIGBgc2V0YGAsIGFuZCBgYHR1cGxlYGAgY2xhc3NlcywgYW5kIHRoZSBgYGNvbGxlY3Rpb25zYGBcbm1vZHVsZS4pXG5cbkEgZGljdGlvbmFyeVwncyBrZXlzIGFyZSAqYWxtb3N0KiBhcmJpdHJhcnkgdmFsdWVzLiAgVmFsdWVzIHRoYXQgYXJlXG5ub3QgKmhhc2hhYmxlKiwgdGhhdCBpcywgdmFsdWVzIGNvbnRhaW5pbmcgbGlzdHMsIGRpY3Rpb25hcmllcyBvclxub3RoZXIgbXV0YWJsZSB0eXBlcyAodGhhdCBhcmUgY29tcGFyZWQgYnkgdmFsdWUgcmF0aGVyIHRoYW4gYnkgb2JqZWN0XG5pZGVudGl0eSkgbWF5IG5vdCBiZSB1c2VkIGFzIGtleXMuICBOdW1lcmljIHR5cGVzIHVzZWQgZm9yIGtleXMgb2JleVxudGhlIG5vcm1hbCBydWxlcyBmb3IgbnVtZXJpYyBjb21wYXJpc29uOiBpZiB0d28gbnVtYmVycyBjb21wYXJlIGVxdWFsXG4oc3VjaCBhcyBgYDFgYCBhbmQgYGAxLjBgYCkgdGhlbiB0aGV5IGNhbiBiZSB1c2VkIGludGVyY2hhbmdlYWJseSB0b1xuaW5kZXggdGhlIHNhbWUgZGljdGlvbmFyeSBlbnRyeS4gIChOb3RlIGhvd2V2ZXIsIHRoYXQgc2luY2UgY29tcHV0ZXJzXG5zdG9yZSBmbG9hdGluZy1wb2ludCBudW1iZXJzIGFzIGFwcHJveGltYXRpb25zIGl0IGlzIHVzdWFsbHkgdW53aXNlIHRvXG51c2UgdGhlbSBhcyBkaWN0aW9uYXJ5IGtleXMuKVxuXG5EaWN0aW9uYXJpZXMgY2FuIGJlIGNyZWF0ZWQgYnkgcGxhY2luZyBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mXG5gYGtleTogdmFsdWVgYCBwYWlycyB3aXRoaW4gYnJhY2VzLCBmb3IgZXhhbXBsZTogYGB7XCdqYWNrXCc6IDQwOTgsXG5cJ3Nqb2VyZFwnOiA0MTI3fWBgIG9yIGBgezQwOTg6IFwnamFja1wnLCA0MTI3OiBcJ3Nqb2VyZFwnfWBgLCBvciBieSB0aGVcbmBgZGljdGBgIGNvbnN0cnVjdG9yLlxuXG5jbGFzcyBjbGFzcyBkaWN0KFthcmddKVxuXG4gICBSZXR1cm4gYSBuZXcgZGljdGlvbmFyeSBpbml0aWFsaXplZCBmcm9tIGFuIG9wdGlvbmFsIHBvc2l0aW9uYWxcbiAgIGFyZ3VtZW50IG9yIGZyb20gYSBzZXQgb2Yga2V5d29yZCBhcmd1bWVudHMuICBJZiBubyBhcmd1bWVudHMgYXJlXG4gICBnaXZlbiwgcmV0dXJuIGEgbmV3IGVtcHR5IGRpY3Rpb25hcnkuICBJZiB0aGUgcG9zaXRpb25hbCBhcmd1bWVudFxuICAgKmFyZyogaXMgYSBtYXBwaW5nIG9iamVjdCwgcmV0dXJuIGEgZGljdGlvbmFyeSBtYXBwaW5nIHRoZSBzYW1lXG4gICBrZXlzIHRvIHRoZSBzYW1lIHZhbHVlcyBhcyBkb2VzIHRoZSBtYXBwaW5nIG9iamVjdC4gIE90aGVyd2lzZSB0aGVcbiAgIHBvc2l0aW9uYWwgYXJndW1lbnQgbXVzdCBiZSBhIHNlcXVlbmNlLCBhIGNvbnRhaW5lciB0aGF0IHN1cHBvcnRzXG4gICBpdGVyYXRpb24sIG9yIGFuIGl0ZXJhdG9yIG9iamVjdC4gIFRoZSBlbGVtZW50cyBvZiB0aGUgYXJndW1lbnRcbiAgIG11c3QgZWFjaCBhbHNvIGJlIG9mIG9uZSBvZiB0aG9zZSBraW5kcywgYW5kIGVhY2ggbXVzdCBpbiB0dXJuXG4gICBjb250YWluIGV4YWN0bHkgdHdvIG9iamVjdHMuICBUaGUgZmlyc3QgaXMgdXNlZCBhcyBhIGtleSBpbiB0aGUgbmV3XG4gICBkaWN0aW9uYXJ5LCBhbmQgdGhlIHNlY29uZCBhcyB0aGUga2V5XCdzIHZhbHVlLiAgSWYgYSBnaXZlbiBrZXkgaXNcbiAgIHNlZW4gbW9yZSB0aGFuIG9uY2UsIHRoZSBsYXN0IHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBpdCBpcyByZXRhaW5lZFxuICAgaW4gdGhlIG5ldyBkaWN0aW9uYXJ5LlxuXG4gICBJZiBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgZ2l2ZW4sIHRoZSBrZXl3b3JkcyB0aGVtc2VsdmVzIHdpdGggdGhlaXJcbiAgIGFzc29jaWF0ZWQgdmFsdWVzIGFyZSBhZGRlZCBhcyBpdGVtcyB0byB0aGUgZGljdGlvbmFyeS4gIElmIGEga2V5XG4gICBpcyBzcGVjaWZpZWQgYm90aCBpbiB0aGUgcG9zaXRpb25hbCBhcmd1bWVudCBhbmQgYXMgYSBrZXl3b3JkXG4gICBhcmd1bWVudCwgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUga2V5d29yZCBpcyByZXRhaW5lZCBpbiB0aGVcbiAgIGRpY3Rpb25hcnkuICBGb3IgZXhhbXBsZSwgdGhlc2UgYWxsIHJldHVybiBhIGRpY3Rpb25hcnkgZXF1YWwgdG9cbiAgIGBgeyJvbmUiOiAxLCAidHdvIjogMn1gYDpcblxuICAgKiBgYGRpY3Qob25lPTEsIHR3bz0yKWBgXG5cbiAgICogYGBkaWN0KHtcJ29uZVwnOiAxLCBcJ3R3b1wnOiAyfSlgYFxuXG4gICAqIGBgZGljdCh6aXAoKFwnb25lXCcsIFwndHdvXCcpLCAoMSwgMikpKWBgXG5cbiAgICogYGBkaWN0KFtbXCd0d29cJywgMl0sIFtcJ29uZVwnLCAxXV0pYGBcblxuICAgVGhlIGZpcnN0IGV4YW1wbGUgb25seSB3b3JrcyBmb3Iga2V5cyB0aGF0IGFyZSB2YWxpZCBQeXRob25cbiAgIGlkZW50aWZpZXJzOyB0aGUgb3RoZXJzIHdvcmsgd2l0aCBhbnkgdmFsaWQga2V5cy5cblxuICAgVGhlc2UgYXJlIHRoZSBvcGVyYXRpb25zIHRoYXQgZGljdGlvbmFyaWVzIHN1cHBvcnQgKGFuZCB0aGVyZWZvcmUsXG4gICBjdXN0b20gbWFwcGluZyB0eXBlcyBzaG91bGQgc3VwcG9ydCB0b28pOlxuXG4gICBsZW4oZClcblxuICAgICAgUmV0dXJuIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIGRpY3Rpb25hcnkgKmQqLlxuXG4gICBkW2tleV1cblxuICAgICAgUmV0dXJuIHRoZSBpdGVtIG9mICpkKiB3aXRoIGtleSAqa2V5Ki4gIFJhaXNlcyBhIGBgS2V5RXJyb3JgYCBpZlxuICAgICAgKmtleSogaXMgbm90IGluIHRoZSBtYXAuXG5cbiAgICAgIElmIGEgc3ViY2xhc3Mgb2YgZGljdCBkZWZpbmVzIGEgbWV0aG9kIGBgX19taXNzaW5nX18oKWBgLCBpZiB0aGVcbiAgICAgIGtleSAqa2V5KiBpcyBub3QgcHJlc2VudCwgdGhlIGBgZFtrZXldYGAgb3BlcmF0aW9uIGNhbGxzIHRoYXRcbiAgICAgIG1ldGhvZCB3aXRoIHRoZSBrZXkgKmtleSogYXMgYXJndW1lbnQuICBUaGUgYGBkW2tleV1gYCBvcGVyYXRpb25cbiAgICAgIHRoZW4gcmV0dXJucyBvciByYWlzZXMgd2hhdGV2ZXIgaXMgcmV0dXJuZWQgb3IgcmFpc2VkIGJ5IHRoZVxuICAgICAgYGBfX21pc3NpbmdfXyhrZXkpYGAgY2FsbCBpZiB0aGUga2V5IGlzIG5vdCBwcmVzZW50LiBObyBvdGhlclxuICAgICAgb3BlcmF0aW9ucyBvciBtZXRob2RzIGludm9rZSBgYF9fbWlzc2luZ19fKClgYC4gSWZcbiAgICAgIGBgX19taXNzaW5nX18oKWBgIGlzIG5vdCBkZWZpbmVkLCBgYEtleUVycm9yYGAgaXMgcmFpc2VkLlxuICAgICAgYGBfX21pc3NpbmdfXygpYGAgbXVzdCBiZSBhIG1ldGhvZDsgaXQgY2Fubm90IGJlIGFuIGluc3RhbmNlXG4gICAgICB2YXJpYWJsZTpcblxuICAgICAgICAgPj4+IGNsYXNzIENvdW50ZXIoZGljdCk6XG4gICAgICAgICAuLi4gICAgIGRlZiBfX21pc3NpbmdfXyhzZWxmLCBrZXkpOlxuICAgICAgICAgLi4uICAgICAgICAgcmV0dXJuIDBcbiAgICAgICAgID4+PiBjID0gQ291bnRlcigpXG4gICAgICAgICA+Pj4gY1tcJ3JlZFwnXVxuICAgICAgICAgMFxuICAgICAgICAgPj4+IGNbXCdyZWRcJ10gKz0gMVxuICAgICAgICAgPj4+IGNbXCdyZWRcJ11cbiAgICAgICAgIDFcblxuICAgICAgU2VlIGBgY29sbGVjdGlvbnMuQ291bnRlcmBgIGZvciBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uXG4gICAgICBpbmNsdWRpbmcgb3RoZXIgbWV0aG9kcyBoZWxwZnVsIGZvciBhY2N1bXVsYXRpbmcgYW5kIG1hbmFnaW5nXG4gICAgICB0YWxsaWVzLlxuXG4gICBkW2tleV0gPSB2YWx1ZVxuXG4gICAgICBTZXQgYGBkW2tleV1gYCB0byAqdmFsdWUqLlxuXG4gICBkZWwgZFtrZXldXG5cbiAgICAgIFJlbW92ZSBgYGRba2V5XWBgIGZyb20gKmQqLiAgUmFpc2VzIGEgYGBLZXlFcnJvcmBgIGlmICprZXkqIGlzXG4gICAgICBub3QgaW4gdGhlIG1hcC5cblxuICAga2V5IGluIGRcblxuICAgICAgUmV0dXJuIGBgVHJ1ZWBgIGlmICpkKiBoYXMgYSBrZXkgKmtleSosIGVsc2UgYGBGYWxzZWBgLlxuXG4gICBrZXkgbm90IGluIGRcblxuICAgICAgRXF1aXZhbGVudCB0byBgYG5vdCBrZXkgaW4gZGBgLlxuXG4gICBpdGVyKGQpXG5cbiAgICAgIFJldHVybiBhbiBpdGVyYXRvciBvdmVyIHRoZSBrZXlzIG9mIHRoZSBkaWN0aW9uYXJ5LiAgVGhpcyBpcyBhXG4gICAgICBzaG9ydGN1dCBmb3IgYGBpdGVyKGQua2V5cygpKWBgLlxuXG4gICBjbGVhcigpXG5cbiAgICAgIFJlbW92ZSBhbGwgaXRlbXMgZnJvbSB0aGUgZGljdGlvbmFyeS5cblxuICAgY29weSgpXG5cbiAgICAgIFJldHVybiBhIHNoYWxsb3cgY29weSBvZiB0aGUgZGljdGlvbmFyeS5cblxuICAgY2xhc3NtZXRob2QgZnJvbWtleXMoc2VxWywgdmFsdWVdKVxuXG4gICAgICBDcmVhdGUgYSBuZXcgZGljdGlvbmFyeSB3aXRoIGtleXMgZnJvbSAqc2VxKiBhbmQgdmFsdWVzIHNldCB0b1xuICAgICAgKnZhbHVlKi5cblxuICAgICAgYGBmcm9ta2V5cygpYGAgaXMgYSBjbGFzcyBtZXRob2QgdGhhdCByZXR1cm5zIGEgbmV3IGRpY3Rpb25hcnkuXG4gICAgICAqdmFsdWUqIGRlZmF1bHRzIHRvIGBgTm9uZWBgLlxuXG4gICBnZXQoa2V5WywgZGVmYXVsdF0pXG5cbiAgICAgIFJldHVybiB0aGUgdmFsdWUgZm9yICprZXkqIGlmICprZXkqIGlzIGluIHRoZSBkaWN0aW9uYXJ5LCBlbHNlXG4gICAgICAqZGVmYXVsdCouIElmICpkZWZhdWx0KiBpcyBub3QgZ2l2ZW4sIGl0IGRlZmF1bHRzIHRvIGBgTm9uZWBgLFxuICAgICAgc28gdGhhdCB0aGlzIG1ldGhvZCBuZXZlciByYWlzZXMgYSBgYEtleUVycm9yYGAuXG5cbiAgIGl0ZW1zKClcblxuICAgICAgUmV0dXJuIGEgbmV3IHZpZXcgb2YgdGhlIGRpY3Rpb25hcnlcJ3MgaXRlbXMgKGBgKGtleSwgdmFsdWUpYGBcbiAgICAgIHBhaXJzKS4gU2VlIHRoZSAqZG9jdW1lbnRhdGlvbiBvZiB2aWV3IG9iamVjdHMqLlxuXG4gICBrZXlzKClcblxuICAgICAgUmV0dXJuIGEgbmV3IHZpZXcgb2YgdGhlIGRpY3Rpb25hcnlcJ3Mga2V5cy4gIFNlZSB0aGVcbiAgICAgICpkb2N1bWVudGF0aW9uIG9mIHZpZXcgb2JqZWN0cyouXG5cbiAgIHBvcChrZXlbLCBkZWZhdWx0XSlcblxuICAgICAgSWYgKmtleSogaXMgaW4gdGhlIGRpY3Rpb25hcnksIHJlbW92ZSBpdCBhbmQgcmV0dXJuIGl0cyB2YWx1ZSxcbiAgICAgIGVsc2UgcmV0dXJuICpkZWZhdWx0Ki4gIElmICpkZWZhdWx0KiBpcyBub3QgZ2l2ZW4gYW5kICprZXkqIGlzXG4gICAgICBub3QgaW4gdGhlIGRpY3Rpb25hcnksIGEgYGBLZXlFcnJvcmBgIGlzIHJhaXNlZC5cblxuICAgcG9waXRlbSgpXG5cbiAgICAgIFJlbW92ZSBhbmQgcmV0dXJuIGFuIGFyYml0cmFyeSBgYChrZXksIHZhbHVlKWBgIHBhaXIgZnJvbSB0aGVcbiAgICAgIGRpY3Rpb25hcnkuXG5cbiAgICAgIGBgcG9waXRlbSgpYGAgaXMgdXNlZnVsIHRvIGRlc3RydWN0aXZlbHkgaXRlcmF0ZSBvdmVyIGFcbiAgICAgIGRpY3Rpb25hcnksIGFzIG9mdGVuIHVzZWQgaW4gc2V0IGFsZ29yaXRobXMuICBJZiB0aGUgZGljdGlvbmFyeVxuICAgICAgaXMgZW1wdHksIGNhbGxpbmcgYGBwb3BpdGVtKClgYCByYWlzZXMgYSBgYEtleUVycm9yYGAuXG5cbiAgIHNldGRlZmF1bHQoa2V5WywgZGVmYXVsdF0pXG5cbiAgICAgIElmICprZXkqIGlzIGluIHRoZSBkaWN0aW9uYXJ5LCByZXR1cm4gaXRzIHZhbHVlLiAgSWYgbm90LCBpbnNlcnRcbiAgICAgICprZXkqIHdpdGggYSB2YWx1ZSBvZiAqZGVmYXVsdCogYW5kIHJldHVybiAqZGVmYXVsdCouICAqZGVmYXVsdCpcbiAgICAgIGRlZmF1bHRzIHRvIGBgTm9uZWBgLlxuXG4gICB1cGRhdGUoW290aGVyXSlcblxuICAgICAgVXBkYXRlIHRoZSBkaWN0aW9uYXJ5IHdpdGggdGhlIGtleS92YWx1ZSBwYWlycyBmcm9tICpvdGhlciosXG4gICAgICBvdmVyd3JpdGluZyBleGlzdGluZyBrZXlzLiAgUmV0dXJuIGBgTm9uZWBgLlxuXG4gICAgICBgYHVwZGF0ZSgpYGAgYWNjZXB0cyBlaXRoZXIgYW5vdGhlciBkaWN0aW9uYXJ5IG9iamVjdCBvciBhblxuICAgICAgaXRlcmFibGUgb2Yga2V5L3ZhbHVlIHBhaXJzIChhcyB0dXBsZXMgb3Igb3RoZXIgaXRlcmFibGVzIG9mXG4gICAgICBsZW5ndGggdHdvKS4gIElmIGtleXdvcmQgYXJndW1lbnRzIGFyZSBzcGVjaWZpZWQsIHRoZSBkaWN0aW9uYXJ5XG4gICAgICBpcyB0aGVuIHVwZGF0ZWQgd2l0aCB0aG9zZSBrZXkvdmFsdWUgcGFpcnM6IGBgZC51cGRhdGUocmVkPTEsXG4gICAgICBibHVlPTIpYGAuXG5cbiAgIHZhbHVlcygpXG5cbiAgICAgIFJldHVybiBhIG5ldyB2aWV3IG9mIHRoZSBkaWN0aW9uYXJ5XCdzIHZhbHVlcy4gIFNlZSB0aGVcbiAgICAgICpkb2N1bWVudGF0aW9uIG9mIHZpZXcgb2JqZWN0cyouXG5cblNlZSBhbHNvOlxuXG4gICBgYHR5cGVzLk1hcHBpbmdQcm94eVR5cGVgYCBjYW4gYmUgdXNlZCB0byBjcmVhdGUgYSByZWFkLW9ubHkgdmlld1xuICAgb2YgYSBgYGRpY3RgYC5cblxuXG5EaWN0aW9uYXJ5IHZpZXcgb2JqZWN0c1xuPT09PT09PT09PT09PT09PT09PT09PT1cblxuVGhlIG9iamVjdHMgcmV0dXJuZWQgYnkgYGBkaWN0LmtleXMoKWBgLCBgYGRpY3QudmFsdWVzKClgYCBhbmRcbmBgZGljdC5pdGVtcygpYGAgYXJlICp2aWV3IG9iamVjdHMqLiAgVGhleSBwcm92aWRlIGEgZHluYW1pYyB2aWV3IG9uXG50aGUgZGljdGlvbmFyeVwncyBlbnRyaWVzLCB3aGljaCBtZWFucyB0aGF0IHdoZW4gdGhlIGRpY3Rpb25hcnlcbmNoYW5nZXMsIHRoZSB2aWV3IHJlZmxlY3RzIHRoZXNlIGNoYW5nZXMuXG5cbkRpY3Rpb25hcnkgdmlld3MgY2FuIGJlIGl0ZXJhdGVkIG92ZXIgdG8geWllbGQgdGhlaXIgcmVzcGVjdGl2ZSBkYXRhLFxuYW5kIHN1cHBvcnQgbWVtYmVyc2hpcCB0ZXN0czpcblxubGVuKGRpY3R2aWV3KVxuXG4gICBSZXR1cm4gdGhlIG51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBkaWN0aW9uYXJ5LlxuXG5pdGVyKGRpY3R2aWV3KVxuXG4gICBSZXR1cm4gYW4gaXRlcmF0b3Igb3ZlciB0aGUga2V5cywgdmFsdWVzIG9yIGl0ZW1zIChyZXByZXNlbnRlZCBhc1xuICAgdHVwbGVzIG9mIGBgKGtleSwgdmFsdWUpYGApIGluIHRoZSBkaWN0aW9uYXJ5LlxuXG4gICBLZXlzIGFuZCB2YWx1ZXMgYXJlIGl0ZXJhdGVkIG92ZXIgaW4gYW4gYXJiaXRyYXJ5IG9yZGVyIHdoaWNoIGlzXG4gICBub24tcmFuZG9tLCB2YXJpZXMgYWNyb3NzIFB5dGhvbiBpbXBsZW1lbnRhdGlvbnMsIGFuZCBkZXBlbmRzIG9uXG4gICB0aGUgZGljdGlvbmFyeVwncyBoaXN0b3J5IG9mIGluc2VydGlvbnMgYW5kIGRlbGV0aW9ucy4gSWYga2V5cyxcbiAgIHZhbHVlcyBhbmQgaXRlbXMgdmlld3MgYXJlIGl0ZXJhdGVkIG92ZXIgd2l0aCBubyBpbnRlcnZlbmluZ1xuICAgbW9kaWZpY2F0aW9ucyB0byB0aGUgZGljdGlvbmFyeSwgdGhlIG9yZGVyIG9mIGl0ZW1zIHdpbGwgZGlyZWN0bHlcbiAgIGNvcnJlc3BvbmQuICBUaGlzIGFsbG93cyB0aGUgY3JlYXRpb24gb2YgYGAodmFsdWUsIGtleSlgYCBwYWlyc1xuICAgdXNpbmcgYGB6aXAoKWBgOiBgYHBhaXJzID0gemlwKGQudmFsdWVzKCksIGQua2V5cygpKWBgLiAgQW5vdGhlclxuICAgd2F5IHRvIGNyZWF0ZSB0aGUgc2FtZSBsaXN0IGlzIGBgcGFpcnMgPSBbKHYsIGspIGZvciAoaywgdikgaW5cbiAgIGQuaXRlbXMoKV1gYC5cblxuICAgSXRlcmF0aW5nIHZpZXdzIHdoaWxlIGFkZGluZyBvciBkZWxldGluZyBlbnRyaWVzIGluIHRoZSBkaWN0aW9uYXJ5XG4gICBtYXkgcmFpc2UgYSBgYFJ1bnRpbWVFcnJvcmBgIG9yIGZhaWwgdG8gaXRlcmF0ZSBvdmVyIGFsbCBlbnRyaWVzLlxuXG54IGluIGRpY3R2aWV3XG5cbiAgIFJldHVybiBgYFRydWVgYCBpZiAqeCogaXMgaW4gdGhlIHVuZGVybHlpbmcgZGljdGlvbmFyeVwncyBrZXlzLFxuICAgdmFsdWVzIG9yIGl0ZW1zIChpbiB0aGUgbGF0dGVyIGNhc2UsICp4KiBzaG91bGQgYmUgYSBgYChrZXksXG4gICB2YWx1ZSlgYCB0dXBsZSkuXG5cbktleXMgdmlld3MgYXJlIHNldC1saWtlIHNpbmNlIHRoZWlyIGVudHJpZXMgYXJlIHVuaXF1ZSBhbmQgaGFzaGFibGUuXG5JZiBhbGwgdmFsdWVzIGFyZSBoYXNoYWJsZSwgc28gdGhhdCBgYChrZXksIHZhbHVlKWBgIHBhaXJzIGFyZSB1bmlxdWVcbmFuZCBoYXNoYWJsZSwgdGhlbiB0aGUgaXRlbXMgdmlldyBpcyBhbHNvIHNldC1saWtlLiAgKFZhbHVlcyB2aWV3cyBhcmVcbm5vdCB0cmVhdGVkIGFzIHNldC1saWtlIHNpbmNlIHRoZSBlbnRyaWVzIGFyZSBnZW5lcmFsbHkgbm90IHVuaXF1ZS4pXG5Gb3Igc2V0LWxpa2Ugdmlld3MsIGFsbCBvZiB0aGUgb3BlcmF0aW9ucyBkZWZpbmVkIGZvciB0aGUgYWJzdHJhY3RcbmJhc2UgY2xhc3MgYGBjb2xsZWN0aW9ucy5TZXRgYCBhcmUgYXZhaWxhYmxlIChmb3IgZXhhbXBsZSwgYGA9PWBgLFxuYGA8YGAsIG9yIGBgXmBgKS5cblxuQW4gZXhhbXBsZSBvZiBkaWN0aW9uYXJ5IHZpZXcgdXNhZ2U6XG5cbiAgID4+PiBkaXNoZXMgPSB7XCdlZ2dzXCc6IDIsIFwnc2F1c2FnZVwnOiAxLCBcJ2JhY29uXCc6IDEsIFwnc3BhbVwnOiA1MDB9XG4gICA+Pj4ga2V5cyA9IGRpc2hlcy5rZXlzKClcbiAgID4+PiB2YWx1ZXMgPSBkaXNoZXMudmFsdWVzKClcblxuICAgPj4+ICMgaXRlcmF0aW9uXG4gICA+Pj4gbiA9IDBcbiAgID4+PiBmb3IgdmFsIGluIHZhbHVlczpcbiAgIC4uLiAgICAgbiArPSB2YWxcbiAgID4+PiBwcmludChuKVxuICAgNTA0XG5cbiAgID4+PiAjIGtleXMgYW5kIHZhbHVlcyBhcmUgaXRlcmF0ZWQgb3ZlciBpbiB0aGUgc2FtZSBvcmRlclxuICAgPj4+IGxpc3Qoa2V5cylcbiAgIFtcJ2VnZ3NcJywgXCdiYWNvblwnLCBcJ3NhdXNhZ2VcJywgXCdzcGFtXCddXG4gICA+Pj4gbGlzdCh2YWx1ZXMpXG4gICBbMiwgMSwgMSwgNTAwXVxuXG4gICA+Pj4gIyB2aWV3IG9iamVjdHMgYXJlIGR5bmFtaWMgYW5kIHJlZmxlY3QgZGljdCBjaGFuZ2VzXG4gICA+Pj4gZGVsIGRpc2hlc1tcJ2VnZ3NcJ11cbiAgID4+PiBkZWwgZGlzaGVzW1wnc2F1c2FnZVwnXVxuICAgPj4+IGxpc3Qoa2V5cylcbiAgIFtcJ3NwYW1cJywgXCdiYWNvblwnXVxuXG4gICA+Pj4gIyBzZXQgb3BlcmF0aW9uc1xuICAgPj4+IGtleXMgJiB7XCdlZ2dzXCcsIFwnYmFjb25cJywgXCdzYWxhZFwnfVxuICAge1wnYmFjb25cJ31cbiAgID4+PiBrZXlzIF4ge1wnc2F1c2FnZVwnLCBcJ2p1aWNlXCd9XG4gICB7XCdqdWljZVwnLCBcJ3NhdXNhZ2VcJywgXCdiYWNvblwnLCBcJ3NwYW1cJ31cbicsCiAgJ3R5cGVzbWV0aG9kcyc6ICJcbk1ldGhvZHNcbioqKioqKipcblxuTWV0aG9kcyBhcmUgZnVuY3Rpb25zIHRoYXQgYXJlIGNhbGxlZCB1c2luZyB0aGUgYXR0cmlidXRlIG5vdGF0aW9uLlxuVGhlcmUgYXJlIHR3byBmbGF2b3JzOiBidWlsdC1pbiBtZXRob2RzIChzdWNoIGFzIGBgYXBwZW5kKClgYCBvblxubGlzdHMpIGFuZCBjbGFzcyBpbnN0YW5jZSBtZXRob2RzLiAgQnVpbHQtaW4gbWV0aG9kcyBhcmUgZGVzY3JpYmVkXG53aXRoIHRoZSB0eXBlcyB0aGF0IHN1cHBvcnQgdGhlbS5cblxuSWYgeW91IGFjY2VzcyBhIG1ldGhvZCAoYSBmdW5jdGlvbiBkZWZpbmVkIGluIGEgY2xhc3MgbmFtZXNwYWNlKVxudGhyb3VnaCBhbiBpbnN0YW5jZSwgeW91IGdldCBhIHNwZWNpYWwgb2JqZWN0OiBhICpib3VuZCBtZXRob2QqIChhbHNvXG5jYWxsZWQgKmluc3RhbmNlIG1ldGhvZCopIG9iamVjdC4gV2hlbiBjYWxsZWQsIGl0IHdpbGwgYWRkIHRoZVxuYGBzZWxmYGAgYXJndW1lbnQgdG8gdGhlIGFyZ3VtZW50IGxpc3QuICBCb3VuZCBtZXRob2RzIGhhdmUgdHdvXG5zcGVjaWFsIHJlYWQtb25seSBhdHRyaWJ1dGVzOiBgYG0uX19zZWxmX19gYCBpcyB0aGUgb2JqZWN0IG9uIHdoaWNoXG50aGUgbWV0aG9kIG9wZXJhdGVzLCBhbmQgYGBtLl9fZnVuY19fYGAgaXMgdGhlIGZ1bmN0aW9uIGltcGxlbWVudGluZ1xudGhlIG1ldGhvZC4gIENhbGxpbmcgYGBtKGFyZy0xLCBhcmctMiwgLi4uLCBhcmctbilgYCBpcyBjb21wbGV0ZWx5XG5lcXVpdmFsZW50IHRvIGNhbGxpbmcgYGBtLl9fZnVuY19fKG0uX19zZWxmX18sIGFyZy0xLCBhcmctMiwgLi4uLFxuYXJnLW4pYGAuXG5cbkxpa2UgZnVuY3Rpb24gb2JqZWN0cywgYm91bmQgbWV0aG9kIG9iamVjdHMgc3VwcG9ydCBnZXR0aW5nIGFyYml0cmFyeVxuYXR0cmlidXRlcy4gIEhvd2V2ZXIsIHNpbmNlIG1ldGhvZCBhdHRyaWJ1dGVzIGFyZSBhY3R1YWxseSBzdG9yZWQgb25cbnRoZSB1bmRlcmx5aW5nIGZ1bmN0aW9uIG9iamVjdCAoYGBtZXRoLl9fZnVuY19fYGApLCBzZXR0aW5nIG1ldGhvZFxuYXR0cmlidXRlcyBvbiBib3VuZCBtZXRob2RzIGlzIGRpc2FsbG93ZWQuICBBdHRlbXB0aW5nIHRvIHNldCBhIG1ldGhvZFxuYXR0cmlidXRlIHJlc3VsdHMgaW4gYSBgYFR5cGVFcnJvcmBgIGJlaW5nIHJhaXNlZC4gIEluIG9yZGVyIHRvIHNldCBhXG5tZXRob2QgYXR0cmlidXRlLCB5b3UgbmVlZCB0byBleHBsaWNpdGx5IHNldCBpdCBvbiB0aGUgdW5kZXJseWluZ1xuZnVuY3Rpb24gb2JqZWN0OlxuXG4gICBjbGFzcyBDOlxuICAgICAgIGRlZiBtZXRob2Qoc2VsZik6XG4gICAgICAgICAgIHBhc3NcblxuICAgYyA9IEMoKVxuICAgYy5tZXRob2QuX19mdW5jX18ud2hvYW1pID0gJ215IG5hbWUgaXMgYydcblxuU2VlICpUaGUgc3RhbmRhcmQgdHlwZSBoaWVyYXJjaHkqIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIiwKICAndHlwZXNtb2R1bGVzJzogIlxuTW9kdWxlc1xuKioqKioqKlxuXG5UaGUgb25seSBzcGVjaWFsIG9wZXJhdGlvbiBvbiBhIG1vZHVsZSBpcyBhdHRyaWJ1dGUgYWNjZXNzOlxuYGBtLm5hbWVgYCwgd2hlcmUgKm0qIGlzIGEgbW9kdWxlIGFuZCAqbmFtZSogYWNjZXNzZXMgYSBuYW1lIGRlZmluZWRcbmluICptKidzIHN5bWJvbCB0YWJsZS4gTW9kdWxlIGF0dHJpYnV0ZXMgY2FuIGJlIGFzc2lnbmVkIHRvLiAgKE5vdGVcbnRoYXQgdGhlIGBgaW1wb3J0YGAgc3RhdGVtZW50IGlzIG5vdCwgc3RyaWN0bHkgc3BlYWtpbmcsIGFuIG9wZXJhdGlvblxub24gYSBtb2R1bGUgb2JqZWN0OyBgYGltcG9ydCBmb29gYCBkb2VzIG5vdCByZXF1aXJlIGEgbW9kdWxlIG9iamVjdFxubmFtZWQgKmZvbyogdG8gZXhpc3QsIHJhdGhlciBpdCByZXF1aXJlcyBhbiAoZXh0ZXJuYWwpICpkZWZpbml0aW9uKlxuZm9yIGEgbW9kdWxlIG5hbWVkICpmb28qIHNvbWV3aGVyZS4pXG5cbkEgc3BlY2lhbCBhdHRyaWJ1dGUgb2YgZXZlcnkgbW9kdWxlIGlzIGBgX19kaWN0X19gYC4gVGhpcyBpcyB0aGVcbmRpY3Rpb25hcnkgY29udGFpbmluZyB0aGUgbW9kdWxlJ3Mgc3ltYm9sIHRhYmxlLiBNb2RpZnlpbmcgdGhpc1xuZGljdGlvbmFyeSB3aWxsIGFjdHVhbGx5IGNoYW5nZSB0aGUgbW9kdWxlJ3Mgc3ltYm9sIHRhYmxlLCBidXQgZGlyZWN0XG5hc3NpZ25tZW50IHRvIHRoZSBgYF9fZGljdF9fYGAgYXR0cmlidXRlIGlzIG5vdCBwb3NzaWJsZSAoeW91IGNhblxud3JpdGUgYGBtLl9fZGljdF9fWydhJ10gPSAxYGAsIHdoaWNoIGRlZmluZXMgYGBtLmFgYCB0byBiZSBgYDFgYCwgYnV0XG55b3UgY2FuJ3Qgd3JpdGUgYGBtLl9fZGljdF9fID0ge31gYCkuICBNb2RpZnlpbmcgYGBfX2RpY3RfX2BgIGRpcmVjdGx5XG5pcyBub3QgcmVjb21tZW5kZWQuXG5cbk1vZHVsZXMgYnVpbHQgaW50byB0aGUgaW50ZXJwcmV0ZXIgYXJlIHdyaXR0ZW4gbGlrZSB0aGlzOiBgYDxtb2R1bGVcbidzeXMnIChidWlsdC1pbik+YGAuICBJZiBsb2FkZWQgZnJvbSBhIGZpbGUsIHRoZXkgYXJlIHdyaXR0ZW4gYXNcbmBgPG1vZHVsZSAnb3MnIGZyb20gJy91c3IvbG9jYWwvbGliL3B5dGhvblguWS9vcy5weWMnPmBgLlxuIiwKLSAndHlwZXNzZXEnOiAnXG5TZXF1ZW5jZSBUeXBlcyAtLS0gYGBzdHJgYCwgYGBieXRlc2BgLCBgYGJ5dGVhcnJheWBgLCBgYGxpc3RgYCwgYGB0dXBsZWBgLCBgYHJhbmdlYGBcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5UaGVyZSBhcmUgc2l4IHNlcXVlbmNlIHR5cGVzOiBzdHJpbmdzLCBieXRlIHNlcXVlbmNlcyAoYGBieXRlc2BgXG5vYmplY3RzKSwgYnl0ZSBhcnJheXMgKGBgYnl0ZWFycmF5YGAgb2JqZWN0cyksIGxpc3RzLCB0dXBsZXMsIGFuZFxucmFuZ2Ugb2JqZWN0cy4gIEZvciBvdGhlciBjb250YWluZXJzIHNlZSB0aGUgYnVpbHQgaW4gYGBkaWN0YGAgYW5kXG5gYHNldGBgIGNsYXNzZXMsIGFuZCB0aGUgYGBjb2xsZWN0aW9uc2BgIG1vZHVsZS5cblxuU3RyaW5ncyBjb250YWluIFVuaWNvZGUgY2hhcmFjdGVycy4gIFRoZWlyIGxpdGVyYWxzIGFyZSB3cml0dGVuIGluXG5zaW5nbGUgb3IgZG91YmxlIHF1b3RlczogYGBcJ3h5enp5XCdgYCwgYGAiZnJvYm96eiJgYC4gIFNlZSAqU3RyaW5nIGFuZFxuQnl0ZXMgbGl0ZXJhbHMqIGZvciBtb3JlIGFib3V0IHN0cmluZyBsaXRlcmFscy4gIEluIGFkZGl0aW9uIHRvIHRoZVxuZnVuY3Rpb25hbGl0eSBkZXNjcmliZWQgaGVyZSwgdGhlcmUgYXJlIGFsc28gc3RyaW5nLXNwZWNpZmljIG1ldGhvZHNcbmRlc2NyaWJlZCBpbiB0aGUgKlN0cmluZyBNZXRob2RzKiBzZWN0aW9uLlxuXG5CeXRlcyBhbmQgYnl0ZWFycmF5IG9iamVjdHMgY29udGFpbiBzaW5nbGUgYnl0ZXMgLS0gdGhlIGZvcm1lciBpc1xuaW1tdXRhYmxlIHdoaWxlIHRoZSBsYXR0ZXIgaXMgYSBtdXRhYmxlIHNlcXVlbmNlLiAgQnl0ZXMgb2JqZWN0cyBjYW5cbmJlIGNvbnN0cnVjdGVkIHRoZSBjb25zdHJ1Y3RvciwgYGBieXRlcygpYGAsIGFuZCBmcm9tIGxpdGVyYWxzOyB1c2UgYVxuYGBiYGAgcHJlZml4IHdpdGggbm9ybWFsIHN0cmluZyBzeW50YXg6IGBgYlwneHl6enlcJ2BgLiAgVG8gY29uc3RydWN0XG5ieXRlIGFycmF5cywgdXNlIHRoZSBgYGJ5dGVhcnJheSgpYGAgZnVuY3Rpb24uXG5cbldoaWxlIHN0cmluZyBvYmplY3RzIGFyZSBzZXF1ZW5jZXMgb2YgY2hhcmFjdGVycyAocmVwcmVzZW50ZWQgYnlcbnN0cmluZ3Mgb2YgbGVuZ3RoIDEpLCBieXRlcyBhbmQgYnl0ZWFycmF5IG9iamVjdHMgYXJlIHNlcXVlbmNlcyBvZlxuKmludGVnZXJzKiAoYmV0d2VlbiAwIGFuZCAyNTUpLCByZXByZXNlbnRpbmcgdGhlIEFTQ0lJIHZhbHVlIG9mIHNpbmdsZVxuYnl0ZXMuICBUaGF0IG1lYW5zIHRoYXQgZm9yIGEgYnl0ZXMgb3IgYnl0ZWFycmF5IG9iamVjdCAqYiosIGBgYlswXWBgXG53aWxsIGJlIGFuIGludGVnZXIsIHdoaWxlIGBgYlswOjFdYGAgd2lsbCBiZSBhIGJ5dGVzIG9yIGJ5dGVhcnJheVxub2JqZWN0IG9mIGxlbmd0aCAxLiAgVGhlIHJlcHJlc2VudGF0aW9uIG9mIGJ5dGVzIG9iamVjdHMgdXNlcyB0aGVcbmxpdGVyYWwgZm9ybWF0IChgYGJcJy4uLlwnYGApIHNpbmNlIGl0IGlzIGdlbmVyYWxseSBtb3JlIHVzZWZ1bCB0aGFuXG5lLmcuIGBgYnl0ZXMoWzUwLCAxOSwgMTAwXSlgYC4gIFlvdSBjYW4gYWx3YXlzIGNvbnZlcnQgYSBieXRlcyBvYmplY3RcbmludG8gYSBsaXN0IG9mIGludGVnZXJzIHVzaW5nIGBgbGlzdChiKWBgLlxuXG5BbHNvLCB3aGlsZSBpbiBwcmV2aW91cyBQeXRob24gdmVyc2lvbnMsIGJ5dGUgc3RyaW5ncyBhbmQgVW5pY29kZVxuc3RyaW5ncyBjb3VsZCBiZSBleGNoYW5nZWQgZm9yIGVhY2ggb3RoZXIgcmF0aGVyIGZyZWVseSAoYmFycmluZ1xuZW5jb2RpbmcgaXNzdWVzKSwgc3RyaW5ncyBhbmQgYnl0ZXMgYXJlIG5vdyBjb21wbGV0ZWx5IHNlcGFyYXRlXG5jb25jZXB0cy4gIFRoZXJlXCdzIG5vIGltcGxpY2l0IGVuLS9kZWNvZGluZyBpZiB5b3UgcGFzcyBhbiBvYmplY3Qgb2ZcbnRoZSB3cm9uZyB0eXBlLiAgQSBzdHJpbmcgYWx3YXlzIGNvbXBhcmVzIHVuZXF1YWwgdG8gYSBieXRlcyBvclxuYnl0ZWFycmF5IG9iamVjdC5cblxuTGlzdHMgYXJlIGNvbnN0cnVjdGVkIHdpdGggc3F1YXJlIGJyYWNrZXRzLCBzZXBhcmF0aW5nIGl0ZW1zIHdpdGhcbmNvbW1hczogYGBbYSwgYiwgY11gYC4gIFR1cGxlcyBhcmUgY29uc3RydWN0ZWQgYnkgdGhlIGNvbW1hIG9wZXJhdG9yXG4obm90IHdpdGhpbiBzcXVhcmUgYnJhY2tldHMpLCB3aXRoIG9yIHdpdGhvdXQgZW5jbG9zaW5nIHBhcmVudGhlc2VzLFxuYnV0IGFuIGVtcHR5IHR1cGxlIG11c3QgaGF2ZSB0aGUgZW5jbG9zaW5nIHBhcmVudGhlc2VzLCBzdWNoIGFzIGBgYSxcbmIsIGNgYCBvciBgYCgpYGAuICBBIHNpbmdsZSBpdGVtIHR1cGxlIG11c3QgaGF2ZSBhIHRyYWlsaW5nIGNvbW1hLFxuc3VjaCBhcyBgYChkLClgYC5cblxuT2JqZWN0cyBvZiB0eXBlIHJhbmdlIGFyZSBjcmVhdGVkIHVzaW5nIHRoZSBgYHJhbmdlKClgYCBmdW5jdGlvbi5cblRoZXkgZG9uXCd0IHN1cHBvcnQgY29uY2F0ZW5hdGlvbiBvciByZXBldGl0aW9uLCBhbmQgdXNpbmcgYGBtaW4oKWBgIG9yXG5gYG1heCgpYGAgb24gdGhlbSBpcyBpbmVmZmljaWVudC5cblxuTW9zdCBzZXF1ZW5jZSB0eXBlcyBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucy4gIFRoZSBgYGluYGAgYW5kXG5gYG5vdCBpbmBgIG9wZXJhdGlvbnMgaGF2ZSB0aGUgc2FtZSBwcmlvcml0aWVzIGFzIHRoZSBjb21wYXJpc29uXG5vcGVyYXRpb25zLiAgVGhlIGBgK2BgIGFuZCBgYCpgYCBvcGVyYXRpb25zIGhhdmUgdGhlIHNhbWUgcHJpb3JpdHkgYXNcbnRoZSBjb3JyZXNwb25kaW5nIG51bWVyaWMgb3BlcmF0aW9ucy4gWzNdIEFkZGl0aW9uYWwgbWV0aG9kcyBhcmVcbnByb3ZpZGVkIGZvciAqTXV0YWJsZSBTZXF1ZW5jZSBUeXBlcyouXG5cblRoaXMgdGFibGUgbGlzdHMgdGhlIHNlcXVlbmNlIG9wZXJhdGlvbnMgc29ydGVkIGluIGFzY2VuZGluZyBwcmlvcml0eVxuKG9wZXJhdGlvbnMgaW4gdGhlIHNhbWUgYm94IGhhdmUgdGhlIHNhbWUgcHJpb3JpdHkpLiAgSW4gdGhlIHRhYmxlLFxuKnMqIGFuZCAqdCogYXJlIHNlcXVlbmNlcyBvZiB0aGUgc2FtZSB0eXBlOyAqbiosICppKiwgKmoqIGFuZCAqayogYXJlXG5pbnRlZ2Vycy5cblxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBPcGVyYXRpb24gICAgICAgICAgfCBSZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vdGVzICAgICAgfFxuKz09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09K1xufCBgYHggaW4gc2BgICAgICAgICAgfCBgYFRydWVgYCBpZiBhbiBpdGVtIG9mICpzKiBpcyAgICB8ICgxKSAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBlcXVhbCB0byAqeCosIGVsc2UgYGBGYWxzZWBgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHggbm90IGluIHNgYCAgICAgfCBgYEZhbHNlYGAgaWYgYW4gaXRlbSBvZiAqcyogaXMgICB8ICgxKSAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBlcXVhbCB0byAqeCosIGVsc2UgYGBUcnVlYGAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHMgKyB0YGAgICAgICAgICAgfCB0aGUgY29uY2F0ZW5hdGlvbiBvZiAqcyogYW5kICp0KiB8ICg2KSAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHMgKiBuLCBuICogc2BgICAgfCAqbiogc2hhbGxvdyBjb3BpZXMgb2YgKnMqICAgICAgICB8ICgyKSAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBjb25jYXRlbmF0ZWQgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHNbaV1gYCAgICAgICAgICAgfCAqaSp0aCBpdGVtIG9mICpzKiwgb3JpZ2luIDAgICAgICB8ICgzKSAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHNbaTpqXWBgICAgICAgICAgfCBzbGljZSBvZiAqcyogZnJvbSAqaSogdG8gKmoqICAgICB8ICgzKSg0KSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHNbaTpqOmtdYGAgICAgICAgfCBzbGljZSBvZiAqcyogZnJvbSAqaSogdG8gKmoqICAgICB8ICgzKSg1KSAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCB3aXRoIHN0ZXAgKmsqICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYGxlbihzKWBgICAgICAgICAgfCBsZW5ndGggb2YgKnMqICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYG1pbihzKWBgICAgICAgICAgfCBzbWFsbGVzdCBpdGVtIG9mICpzKiAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYG1heChzKWBgICAgICAgICAgfCBsYXJnZXN0IGl0ZW0gb2YgKnMqICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHMuaW5kZXgoaSlgYCAgICAgfCBpbmRleCBvZiB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mICB8ICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCAqaSogaW4gKnMqICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHMuY291bnQoaSlgYCAgICAgfCB0b3RhbCBudW1iZXIgb2Ygb2NjdXJlbmNlcyBvZiAgICB8ICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCAqaSogaW4gKnMqICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xuXG5TZXF1ZW5jZSB0eXBlcyBhbHNvIHN1cHBvcnQgY29tcGFyaXNvbnMuICBJbiBwYXJ0aWN1bGFyLCB0dXBsZXMgYW5kXG5saXN0cyBhcmUgY29tcGFyZWQgbGV4aWNvZ3JhcGhpY2FsbHkgYnkgY29tcGFyaW5nIGNvcnJlc3BvbmRpbmdcbmVsZW1lbnRzLiAgVGhpcyBtZWFucyB0aGF0IHRvIGNvbXBhcmUgZXF1YWwsIGV2ZXJ5IGVsZW1lbnQgbXVzdFxuY29tcGFyZSBlcXVhbCBhbmQgdGhlIHR3byBzZXF1ZW5jZXMgbXVzdCBiZSBvZiB0aGUgc2FtZSB0eXBlIGFuZCBoYXZlXG50aGUgc2FtZSBsZW5ndGguICAoRm9yIGZ1bGwgZGV0YWlscyBzZWUgKkNvbXBhcmlzb25zKiBpbiB0aGUgbGFuZ3VhZ2VcbnJlZmVyZW5jZS4pXG5cbk5vdGVzOlxuXG4xLiBXaGVuICpzKiBpcyBhIHN0cmluZyBvYmplY3QsIHRoZSBgYGluYGAgYW5kIGBgbm90IGluYGAgb3BlcmF0aW9uc1xuICAgYWN0IGxpa2UgYSBzdWJzdHJpbmcgdGVzdC5cblxuMi4gVmFsdWVzIG9mICpuKiBsZXNzIHRoYW4gYGAwYGAgYXJlIHRyZWF0ZWQgYXMgYGAwYGAgKHdoaWNoIHlpZWxkcyBhblxuICAgZW1wdHkgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgdHlwZSBhcyAqcyopLiAgTm90ZSBhbHNvIHRoYXQgdGhlIGNvcGllc1xuICAgYXJlIHNoYWxsb3c7IG5lc3RlZCBzdHJ1Y3R1cmVzIGFyZSBub3QgY29waWVkLiAgVGhpcyBvZnRlbiBoYXVudHNcbiAgIG5ldyBQeXRob24gcHJvZ3JhbW1lcnM7IGNvbnNpZGVyOlxuXG4gICA+Pj4gbGlzdHMgPSBbW11dICogM1xuICAgPj4+IGxpc3RzXG4gICBbW10sIFtdLCBbXV1cbiAgID4+PiBsaXN0c1swXS5hcHBlbmQoMylcbiAgID4+PiBsaXN0c1xuICAgW1szXSwgWzNdLCBbM11dXG5cbiAgIFdoYXQgaGFzIGhhcHBlbmVkIGlzIHRoYXQgYGBbW11dYGAgaXMgYSBvbmUtZWxlbWVudCBsaXN0IGNvbnRhaW5pbmdcbiAgIGFuIGVtcHR5IGxpc3QsIHNvIGFsbCB0aHJlZSBlbGVtZW50cyBvZiBgYFtbXV0gKiAzYGAgYXJlIChwb2ludGVyc1xuICAgdG8pIHRoaXMgc2luZ2xlIGVtcHR5IGxpc3QuICBNb2RpZnlpbmcgYW55IG9mIHRoZSBlbGVtZW50cyBvZlxuICAgYGBsaXN0c2BgIG1vZGlmaWVzIHRoaXMgc2luZ2xlIGxpc3QuIFlvdSBjYW4gY3JlYXRlIGEgbGlzdCBvZlxuICAgZGlmZmVyZW50IGxpc3RzIHRoaXMgd2F5OlxuXG4gICA+Pj4gbGlzdHMgPSBbW10gZm9yIGkgaW4gcmFuZ2UoMyldXG4gICA+Pj4gbGlzdHNbMF0uYXBwZW5kKDMpXG4gICA+Pj4gbGlzdHNbMV0uYXBwZW5kKDUpXG4gICA+Pj4gbGlzdHNbMl0uYXBwZW5kKDcpXG4gICA+Pj4gbGlzdHNcbiAgIFtbM10sIFs1XSwgWzddXVxuXG4zLiBJZiAqaSogb3IgKmoqIGlzIG5lZ2F0aXZlLCB0aGUgaW5kZXggaXMgcmVsYXRpdmUgdG8gdGhlIGVuZCBvZiB0aGVcbiAgIHN0cmluZzogYGBsZW4ocykgKyBpYGAgb3IgYGBsZW4ocykgKyBqYGAgaXMgc3Vic3RpdHV0ZWQuICBCdXQgbm90ZVxuICAgdGhhdCBgYC0wYGAgaXMgc3RpbGwgYGAwYGAuXG5cbjQuIFRoZSBzbGljZSBvZiAqcyogZnJvbSAqaSogdG8gKmoqIGlzIGRlZmluZWQgYXMgdGhlIHNlcXVlbmNlIG9mXG4gICBpdGVtcyB3aXRoIGluZGV4ICprKiBzdWNoIHRoYXQgYGBpIDw9IGsgPCBqYGAuICBJZiAqaSogb3IgKmoqIGlzXG4gICBncmVhdGVyIHRoYW4gYGBsZW4ocylgYCwgdXNlIGBgbGVuKHMpYGAuICBJZiAqaSogaXMgb21pdHRlZCBvclxuICAgYGBOb25lYGAsIHVzZSBgYDBgYC4gIElmICpqKiBpcyBvbWl0dGVkIG9yIGBgTm9uZWBgLCB1c2VcbiAgIGBgbGVuKHMpYGAuICBJZiAqaSogaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICpqKiwgdGhlIHNsaWNlIGlzXG4gICBlbXB0eS5cblxuNS4gVGhlIHNsaWNlIG9mICpzKiBmcm9tICppKiB0byAqaiogd2l0aCBzdGVwICprKiBpcyBkZWZpbmVkIGFzIHRoZVxuICAgc2VxdWVuY2Ugb2YgaXRlbXMgd2l0aCBpbmRleCAgYGB4ID0gaSArIG4qa2BgIHN1Y2ggdGhhdCBgYDAgPD0gbiA8XG4gICAoai1pKS9rYGAuICBJbiBvdGhlciB3b3JkcywgdGhlIGluZGljZXMgYXJlIGBgaWBgLCBgYGkra2BgLFxuICAgYGBpKzIqa2BgLCBgYGkrMyprYGAgYW5kIHNvIG9uLCBzdG9wcGluZyB3aGVuICpqKiBpcyByZWFjaGVkIChidXRcbiAgIG5ldmVyIGluY2x1ZGluZyAqaiopLiAgSWYgKmkqIG9yICpqKiBpcyBncmVhdGVyIHRoYW4gYGBsZW4ocylgYCxcbiAgIHVzZSBgYGxlbihzKWBgLiAgSWYgKmkqIG9yICpqKiBhcmUgb21pdHRlZCBvciBgYE5vbmVgYCwgdGhleSBiZWNvbWVcbiAgICJlbmQiIHZhbHVlcyAod2hpY2ggZW5kIGRlcGVuZHMgb24gdGhlIHNpZ24gb2YgKmsqKS4gIE5vdGUsICprKlxuICAgY2Fubm90IGJlIHplcm8uIElmICprKiBpcyBgYE5vbmVgYCwgaXQgaXMgdHJlYXRlZCBsaWtlIGBgMWBgLlxuXG42LiBDb25jYXRlbmF0aW5nIGltbXV0YWJsZSBzdHJpbmdzIGFsd2F5cyByZXN1bHRzIGluIGEgbmV3IG9iamVjdC5cbiAgIFRoaXMgbWVhbnMgdGhhdCBidWlsZGluZyB1cCBhIHN0cmluZyBieSByZXBlYXRlZCBjb25jYXRlbmF0aW9uIHdpbGxcbiAgIGhhdmUgYSBxdWFkcmF0aWMgcnVudGltZSBjb3N0IGluIHRoZSB0b3RhbCBzdHJpbmcgbGVuZ3RoLiAgVG8gZ2V0IGFcbiAgIGxpbmVhciBydW50aW1lIGNvc3QsIHlvdSBtdXN0IHN3aXRjaCB0byBvbmUgb2YgdGhlIGFsdGVybmF0aXZlc1xuICAgYmVsb3c6XG5cbiAgICogaWYgY29uY2F0ZW5hdGluZyBgYHN0cmBgIG9iamVjdHMsIHlvdSBjYW4gYnVpbGQgYSBsaXN0IGFuZCB1c2VcbiAgICAgYGBzdHIuam9pbigpYGAgYXQgdGhlIGVuZDtcblxuICAgKiBpZiBjb25jYXRlbmF0aW5nIGBgYnl0ZXNgYCBvYmplY3RzLCB5b3UgY2FuIHNpbWlsYXJseSB1c2VcbiAgICAgYGBieXRlcy5qb2luKClgYCwgb3IgeW91IGNhbiBkbyBpbi1wbGFjZSBjb25jYXRlbmF0aW9uIHdpdGggYVxuICAgICBgYGJ5dGVhcnJheWBgIG9iamVjdC4gIGBgYnl0ZWFycmF5YGAgb2JqZWN0cyBhcmUgbXV0YWJsZSBhbmQgaGF2ZVxuICAgICBhbiBlZmZpY2llbnQgb3ZlcmFsbG9jYXRpb24gbWVjaGFuaXNtLlxuXG5cblN0cmluZyBNZXRob2RzXG49PT09PT09PT09PT09PVxuXG5TdHJpbmcgb2JqZWN0cyBzdXBwb3J0IHRoZSBtZXRob2RzIGxpc3RlZCBiZWxvdy5cblxuSW4gYWRkaXRpb24sIFB5dGhvblwncyBzdHJpbmdzIHN1cHBvcnQgdGhlIHNlcXVlbmNlIHR5cGUgbWV0aG9kc1xuZGVzY3JpYmVkIGluIHRoZSAqU2VxdWVuY2UgVHlwZXMgLS0tIHN0ciwgYnl0ZXMsIGJ5dGVhcnJheSwgbGlzdCxcbnR1cGxlLCByYW5nZSogc2VjdGlvbi4gVG8gb3V0cHV0IGZvcm1hdHRlZCBzdHJpbmdzLCBzZWUgdGhlICpTdHJpbmdcbkZvcm1hdHRpbmcqIHNlY3Rpb24uIEFsc28sIHNlZSB0aGUgYGByZWBgIG1vZHVsZSBmb3Igc3RyaW5nIGZ1bmN0aW9uc1xuYmFzZWQgb24gcmVndWxhciBleHByZXNzaW9ucy5cblxuc3RyLmNhcGl0YWxpemUoKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCBpdHMgZmlyc3QgY2hhcmFjdGVyIGNhcGl0YWxpemVkXG4gICBhbmQgdGhlIHJlc3QgbG93ZXJjYXNlZC5cblxuc3RyLmNlbnRlcih3aWR0aFssIGZpbGxjaGFyXSlcblxuICAgUmV0dXJuIGNlbnRlcmVkIGluIGEgc3RyaW5nIG9mIGxlbmd0aCAqd2lkdGgqLiBQYWRkaW5nIGlzIGRvbmVcbiAgIHVzaW5nIHRoZSBzcGVjaWZpZWQgKmZpbGxjaGFyKiAoZGVmYXVsdCBpcyBhIHNwYWNlKS5cblxuc3RyLmNvdW50KHN1YlssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIFJldHVybiB0aGUgbnVtYmVyIG9mIG5vbi1vdmVybGFwcGluZyBvY2N1cnJlbmNlcyBvZiBzdWJzdHJpbmcgKnN1YipcbiAgIGluIHRoZSByYW5nZSBbKnN0YXJ0KiwgKmVuZCpdLiAgT3B0aW9uYWwgYXJndW1lbnRzICpzdGFydCogYW5kXG4gICAqZW5kKiBhcmUgaW50ZXJwcmV0ZWQgYXMgaW4gc2xpY2Ugbm90YXRpb24uXG5cbnN0ci5lbmNvZGUoZW5jb2Rpbmc9InV0Zi04IiwgZXJyb3JzPSJzdHJpY3QiKVxuXG4gICBSZXR1cm4gYW4gZW5jb2RlZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcgYXMgYSBieXRlcyBvYmplY3QuIERlZmF1bHRcbiAgIGVuY29kaW5nIGlzIGBgXCd1dGYtOFwnYGAuICplcnJvcnMqIG1heSBiZSBnaXZlbiB0byBzZXQgYSBkaWZmZXJlbnRcbiAgIGVycm9yIGhhbmRsaW5nIHNjaGVtZS4gVGhlIGRlZmF1bHQgZm9yICplcnJvcnMqIGlzIGBgXCdzdHJpY3RcJ2BgLFxuICAgbWVhbmluZyB0aGF0IGVuY29kaW5nIGVycm9ycyByYWlzZSBhIGBgVW5pY29kZUVycm9yYGAuIE90aGVyXG4gICBwb3NzaWJsZSB2YWx1ZXMgYXJlIGBgXCdpZ25vcmVcJ2BgLCBgYFwncmVwbGFjZVwnYGAsXG4gICBgYFwneG1sY2hhcnJlZnJlcGxhY2VcJ2BgLCBgYFwnYmFja3NsYXNocmVwbGFjZVwnYGAgYW5kIGFueSBvdGhlciBuYW1lXG4gICByZWdpc3RlcmVkIHZpYSBgYGNvZGVjcy5yZWdpc3Rlcl9lcnJvcigpYGAsIHNlZSBzZWN0aW9uICpDb2RlYyBCYXNlXG4gICBDbGFzc2VzKi4gRm9yIGEgbGlzdCBvZiBwb3NzaWJsZSBlbmNvZGluZ3MsIHNlZSBzZWN0aW9uICpTdGFuZGFyZFxuICAgRW5jb2RpbmdzKi5cblxuICAgQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMTogU3VwcG9ydCBmb3Iga2V5d29yZCBhcmd1bWVudHMgYWRkZWQuXG5cbnN0ci5lbmRzd2l0aChzdWZmaXhbLCBzdGFydFssIGVuZF1dKVxuXG4gICBSZXR1cm4gYGBUcnVlYGAgaWYgdGhlIHN0cmluZyBlbmRzIHdpdGggdGhlIHNwZWNpZmllZCAqc3VmZml4KixcbiAgIG90aGVyd2lzZSByZXR1cm4gYGBGYWxzZWBgLiAgKnN1ZmZpeCogY2FuIGFsc28gYmUgYSB0dXBsZSBvZlxuICAgc3VmZml4ZXMgdG8gbG9vayBmb3IuICBXaXRoIG9wdGlvbmFsICpzdGFydCosIHRlc3QgYmVnaW5uaW5nIGF0XG4gICB0aGF0IHBvc2l0aW9uLiAgV2l0aCBvcHRpb25hbCAqZW5kKiwgc3RvcCBjb21wYXJpbmcgYXQgdGhhdFxuICAgcG9zaXRpb24uXG5cbnN0ci5leHBhbmR0YWJzKFt0YWJzaXplXSlcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdoZXJlIGFsbCB0YWIgY2hhcmFjdGVycyBhcmUgcmVwbGFjZWRcbiAgIGJ5IHplcm8gb3IgbW9yZSBzcGFjZXMsIGRlcGVuZGluZyBvbiB0aGUgY3VycmVudCBjb2x1bW4gYW5kIHRoZVxuICAgZ2l2ZW4gdGFiIHNpemUuICBUaGUgY29sdW1uIG51bWJlciBpcyByZXNldCB0byB6ZXJvIGFmdGVyIGVhY2hcbiAgIG5ld2xpbmUgb2NjdXJyaW5nIGluIHRoZSBzdHJpbmcuIElmICp0YWJzaXplKiBpcyBub3QgZ2l2ZW4sIGEgdGFiXG4gICBzaXplIG9mIGBgOGBgIGNoYXJhY3RlcnMgaXMgYXNzdW1lZC4gIFRoaXMgZG9lc25cJ3QgdW5kZXJzdGFuZCBvdGhlclxuICAgbm9uLXByaW50aW5nIGNoYXJhY3RlcnMgb3IgZXNjYXBlIHNlcXVlbmNlcy5cblxuc3RyLmZpbmQoc3ViWywgc3RhcnRbLCBlbmRdXSlcblxuICAgUmV0dXJuIHRoZSBsb3dlc3QgaW5kZXggaW4gdGhlIHN0cmluZyB3aGVyZSBzdWJzdHJpbmcgKnN1YiogaXNcbiAgIGZvdW5kLCBzdWNoIHRoYXQgKnN1YiogaXMgY29udGFpbmVkIGluIHRoZSBzbGljZSBgYHNbc3RhcnQ6ZW5kXWBgLlxuICAgT3B0aW9uYWwgYXJndW1lbnRzICpzdGFydCogYW5kICplbmQqIGFyZSBpbnRlcnByZXRlZCBhcyBpbiBzbGljZVxuICAgbm90YXRpb24uICBSZXR1cm4gYGAtMWBgIGlmICpzdWIqIGlzIG5vdCBmb3VuZC5cblxuICAgTm90ZTogVGhlIGBgZmluZCgpYGAgbWV0aG9kIHNob3VsZCBiZSB1c2VkIG9ubHkgaWYgeW91IG5lZWQgdG8ga25vdyB0aGVcbiAgICAgcG9zaXRpb24gb2YgKnN1YiouICBUbyBjaGVjayBpZiAqc3ViKiBpcyBhIHN1YnN0cmluZyBvciBub3QsIHVzZVxuICAgICB0aGUgYGBpbmBgIG9wZXJhdG9yOlxuXG4gICAgICAgID4+PiBcJ1B5XCcgaW4gXCdQeXRob25cJ1xuICAgICAgICBUcnVlXG5cbnN0ci5mb3JtYXQoKmFyZ3MsICoqa3dhcmdzKVxuXG4gICBQZXJmb3JtIGEgc3RyaW5nIGZvcm1hdHRpbmcgb3BlcmF0aW9uLiAgVGhlIHN0cmluZyBvbiB3aGljaCB0aGlzXG4gICBtZXRob2QgaXMgY2FsbGVkIGNhbiBjb250YWluIGxpdGVyYWwgdGV4dCBvciByZXBsYWNlbWVudCBmaWVsZHNcbiAgIGRlbGltaXRlZCBieSBicmFjZXMgYGB7fWBgLiAgRWFjaCByZXBsYWNlbWVudCBmaWVsZCBjb250YWlucyBlaXRoZXJcbiAgIHRoZSBudW1lcmljIGluZGV4IG9mIGEgcG9zaXRpb25hbCBhcmd1bWVudCwgb3IgdGhlIG5hbWUgb2YgYVxuICAga2V5d29yZCBhcmd1bWVudC4gIFJldHVybnMgYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2hlcmUgZWFjaFxuICAgcmVwbGFjZW1lbnQgZmllbGQgaXMgcmVwbGFjZWQgd2l0aCB0aGUgc3RyaW5nIHZhbHVlIG9mIHRoZVxuICAgY29ycmVzcG9uZGluZyBhcmd1bWVudC5cblxuICAgPj4+ICJUaGUgc3VtIG9mIDEgKyAyIGlzIHswfSIuZm9ybWF0KDErMilcbiAgIFwnVGhlIHN1bSBvZiAxICsgMiBpcyAzXCdcblxuICAgU2VlICpGb3JtYXQgU3RyaW5nIFN5bnRheCogZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIHZhcmlvdXNcbiAgIGZvcm1hdHRpbmcgb3B0aW9ucyB0aGF0IGNhbiBiZSBzcGVjaWZpZWQgaW4gZm9ybWF0IHN0cmluZ3MuXG5cbnN0ci5mb3JtYXRfbWFwKG1hcHBpbmcpXG5cbiAgIFNpbWlsYXIgdG8gYGBzdHIuZm9ybWF0KCoqbWFwcGluZylgYCwgZXhjZXB0IHRoYXQgYGBtYXBwaW5nYGAgaXNcbiAgIHVzZWQgZGlyZWN0bHkgYW5kIG5vdCBjb3BpZWQgdG8gYSBgYGRpY3RgYCAuICBUaGlzIGlzIHVzZWZ1bCBpZiBmb3JcbiAgIGV4YW1wbGUgYGBtYXBwaW5nYGAgaXMgYSBkaWN0IHN1YmNsYXNzOlxuXG4gICA+Pj4gY2xhc3MgRGVmYXVsdChkaWN0KTpcbiAgIC4uLiAgICAgZGVmIF9fbWlzc2luZ19fKHNlbGYsIGtleSk6XG4gICAuLi4gICAgICAgICByZXR1cm4ga2V5XG4gICAuLi5cbiAgID4+PiBcJ3tuYW1lfSB3YXMgYm9ybiBpbiB7Y291bnRyeX1cJy5mb3JtYXRfbWFwKERlZmF1bHQobmFtZT1cJ0d1aWRvXCcpKVxuICAgXCdHdWlkbyB3YXMgYm9ybiBpbiBjb3VudHJ5XCdcblxuICAgTmV3IGluIHZlcnNpb24gMy4yLlxuXG5zdHIuaW5kZXgoc3ViWywgc3RhcnRbLCBlbmRdXSlcblxuICAgTGlrZSBgYGZpbmQoKWBgLCBidXQgcmFpc2UgYGBWYWx1ZUVycm9yYGAgd2hlbiB0aGUgc3Vic3RyaW5nIGlzIG5vdFxuICAgZm91bmQuXG5cbnN0ci5pc2FsbnVtKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZyBhcmUgYWxwaGFudW1lcmljIGFuZFxuICAgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiAgQSBjaGFyYWN0ZXJcbiAgIGBgY2BgIGlzIGFscGhhbnVtZXJpYyBpZiBvbmUgb2YgdGhlIGZvbGxvd2luZyByZXR1cm5zIGBgVHJ1ZWBgOlxuICAgYGBjLmlzYWxwaGEoKWBgLCBgYGMuaXNkZWNpbWFsKClgYCwgYGBjLmlzZGlnaXQoKWBgLCBvclxuICAgYGBjLmlzbnVtZXJpYygpYGAuXG5cbnN0ci5pc2FscGhhKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZyBhcmUgYWxwaGFiZXRpYyBhbmRcbiAgIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIsIGZhbHNlIG90aGVyd2lzZS4gIEFscGhhYmV0aWNcbiAgIGNoYXJhY3RlcnMgYXJlIHRob3NlIGNoYXJhY3RlcnMgZGVmaW5lZCBpbiB0aGUgVW5pY29kZSBjaGFyYWN0ZXJcbiAgIGRhdGFiYXNlIGFzICJMZXR0ZXIiLCBpLmUuLCB0aG9zZSB3aXRoIGdlbmVyYWwgY2F0ZWdvcnkgcHJvcGVydHlcbiAgIGJlaW5nIG9uZSBvZiAiTG0iLCAiTHQiLCAiTHUiLCAiTGwiLCBvciAiTG8iLiAgTm90ZSB0aGF0IHRoaXMgaXNcbiAgIGRpZmZlcmVudCBmcm9tIHRoZSAiQWxwaGFiZXRpYyIgcHJvcGVydHkgZGVmaW5lZCBpbiB0aGUgVW5pY29kZVxuICAgU3RhbmRhcmQuXG5cbnN0ci5pc2RlY2ltYWwoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIGFyZSBkZWNpbWFsIGNoYXJhY3RlcnNcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuIERlY2ltYWxcbiAgIGNoYXJhY3RlcnMgYXJlIHRob3NlIGZyb20gZ2VuZXJhbCBjYXRlZ29yeSAiTmQiLiBUaGlzIGNhdGVnb3J5XG4gICBpbmNsdWRlcyBkaWdpdCBjaGFyYWN0ZXJzLCBhbmQgYWxsIGNoYXJhY3RlcnMgdGhhdCBjYW4gYmUgdXNlZCB0b1xuICAgZm9ybSBkZWNpbWFsLXJhZGl4IG51bWJlcnMsIGUuZy4gVSswNjYwLCBBUkFCSUMtSU5ESUMgRElHSVQgWkVSTy5cblxuc3RyLmlzZGlnaXQoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIGFyZSBkaWdpdHMgYW5kIHRoZXJlIGlzXG4gICBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuICBEaWdpdHMgaW5jbHVkZSBkZWNpbWFsXG4gICBjaGFyYWN0ZXJzIGFuZCBkaWdpdHMgdGhhdCBuZWVkIHNwZWNpYWwgaGFuZGxpbmcsIHN1Y2ggYXMgdGhlXG4gICBjb21wYXRpYmlsaXR5IHN1cGVyc2NyaXB0IGRpZ2l0cy4gIEZvcm1hbGx5LCBhIGRpZ2l0IGlzIGEgY2hhcmFjdGVyXG4gICB0aGF0IGhhcyB0aGUgcHJvcGVydHkgdmFsdWUgTnVtZXJpY19UeXBlPURpZ2l0IG9yXG4gICBOdW1lcmljX1R5cGU9RGVjaW1hbC5cblxuc3RyLmlzaWRlbnRpZmllcigpXG5cbiAgIFJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBpZGVudGlmaWVyIGFjY29yZGluZyB0byB0aGVcbiAgIGxhbmd1YWdlIGRlZmluaXRpb24sIHNlY3Rpb24gKklkZW50aWZpZXJzIGFuZCBrZXl3b3JkcyouXG5cbnN0ci5pc2xvd2VyKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNhc2VkIGNoYXJhY3RlcnMgWzRdIGluIHRoZSBzdHJpbmcgYXJlIGxvd2VyY2FzZVxuICAgYW5kIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjYXNlZCBjaGFyYWN0ZXIsIGZhbHNlIG90aGVyd2lzZS5cblxuc3RyLmlzbnVtZXJpYygpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcgYXJlIG51bWVyaWMgY2hhcmFjdGVycyxcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuIE51bWVyaWNcbiAgIGNoYXJhY3RlcnMgaW5jbHVkZSBkaWdpdCBjaGFyYWN0ZXJzLCBhbmQgYWxsIGNoYXJhY3RlcnMgdGhhdCBoYXZlXG4gICB0aGUgVW5pY29kZSBudW1lcmljIHZhbHVlIHByb3BlcnR5LCBlLmcuIFUrMjE1NSwgVlVMR0FSIEZSQUNUSU9OXG4gICBPTkUgRklGVEguICBGb3JtYWxseSwgbnVtZXJpYyBjaGFyYWN0ZXJzIGFyZSB0aG9zZSB3aXRoIHRoZVxuICAgcHJvcGVydHkgdmFsdWUgTnVtZXJpY19UeXBlPURpZ2l0LCBOdW1lcmljX1R5cGU9RGVjaW1hbCBvclxuICAgTnVtZXJpY19UeXBlPU51bWVyaWMuXG5cbnN0ci5pc3ByaW50YWJsZSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcgYXJlIHByaW50YWJsZSBvciB0aGVcbiAgIHN0cmluZyBpcyBlbXB0eSwgZmFsc2Ugb3RoZXJ3aXNlLiAgTm9ucHJpbnRhYmxlIGNoYXJhY3RlcnMgYXJlXG4gICB0aG9zZSBjaGFyYWN0ZXJzIGRlZmluZWQgaW4gdGhlIFVuaWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlIGFzXG4gICAiT3RoZXIiIG9yICJTZXBhcmF0b3IiLCBleGNlcHRpbmcgdGhlIEFTQ0lJIHNwYWNlICgweDIwKSB3aGljaCBpc1xuICAgY29uc2lkZXJlZCBwcmludGFibGUuICAoTm90ZSB0aGF0IHByaW50YWJsZSBjaGFyYWN0ZXJzIGluIHRoaXNcbiAgIGNvbnRleHQgYXJlIHRob3NlIHdoaWNoIHNob3VsZCBub3QgYmUgZXNjYXBlZCB3aGVuIGBgcmVwcigpYGAgaXNcbiAgIGludm9rZWQgb24gYSBzdHJpbmcuICBJdCBoYXMgbm8gYmVhcmluZyBvbiB0aGUgaGFuZGxpbmcgb2Ygc3RyaW5nc1xuICAgd3JpdHRlbiB0byBgYHN5cy5zdGRvdXRgYCBvciBgYHN5cy5zdGRlcnJgYC4pXG5cbnN0ci5pc3NwYWNlKClcblxuICAgUmV0dXJuIHRydWUgaWYgdGhlcmUgYXJlIG9ubHkgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmdcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuICBXaGl0ZXNwYWNlXG4gICBjaGFyYWN0ZXJzICBhcmUgdGhvc2UgY2hhcmFjdGVycyBkZWZpbmVkIGluIHRoZSBVbmljb2RlIGNoYXJhY3RlclxuICAgZGF0YWJhc2UgYXMgIk90aGVyIiBvciAiU2VwYXJhdG9yIiBhbmQgdGhvc2Ugd2l0aCBiaWRpcmVjdGlvbmFsXG4gICBwcm9wZXJ0eSBiZWluZyBvbmUgb2YgIldTIiwgIkIiLCBvciAiUyIuXG5cbnN0ci5pc3RpdGxlKClcblxuICAgUmV0dXJuIHRydWUgaWYgdGhlIHN0cmluZyBpcyBhIHRpdGxlY2FzZWQgc3RyaW5nIGFuZCB0aGVyZSBpcyBhdFxuICAgbGVhc3Qgb25lIGNoYXJhY3RlciwgZm9yIGV4YW1wbGUgdXBwZXJjYXNlIGNoYXJhY3RlcnMgbWF5IG9ubHlcbiAgIGZvbGxvdyB1bmNhc2VkIGNoYXJhY3RlcnMgYW5kIGxvd2VyY2FzZSBjaGFyYWN0ZXJzIG9ubHkgY2FzZWQgb25lcy5cbiAgIFJldHVybiBmYWxzZSBvdGhlcndpc2UuXG5cbnN0ci5pc3VwcGVyKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNhc2VkIGNoYXJhY3RlcnMgWzRdIGluIHRoZSBzdHJpbmcgYXJlIHVwcGVyY2FzZVxuICAgYW5kIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjYXNlZCBjaGFyYWN0ZXIsIGZhbHNlIG90aGVyd2lzZS5cblxuc3RyLmpvaW4oaXRlcmFibGUpXG5cbiAgIFJldHVybiBhIHN0cmluZyB3aGljaCBpcyB0aGUgY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5ncyBpbiB0aGVcbiAgICppdGVyYWJsZSogKml0ZXJhYmxlKi4gIEEgYGBUeXBlRXJyb3JgYCB3aWxsIGJlIHJhaXNlZCBpZiB0aGVyZSBhcmVcbiAgIGFueSBub24tc3RyaW5nIHZhbHVlcyBpbiAqaXRlcmFibGUqLCBpbmNsdWRpbmcgYGBieXRlc2BgIG9iamVjdHMuXG4gICBUaGUgc2VwYXJhdG9yIGJldHdlZW4gZWxlbWVudHMgaXMgdGhlIHN0cmluZyBwcm92aWRpbmcgdGhpcyBtZXRob2QuXG5cbnN0ci5sanVzdCh3aWR0aFssIGZpbGxjaGFyXSlcblxuICAgUmV0dXJuIHRoZSBzdHJpbmcgbGVmdCBqdXN0aWZpZWQgaW4gYSBzdHJpbmcgb2YgbGVuZ3RoICp3aWR0aCouXG4gICBQYWRkaW5nIGlzIGRvbmUgdXNpbmcgdGhlIHNwZWNpZmllZCAqZmlsbGNoYXIqIChkZWZhdWx0IGlzIGFcbiAgIHNwYWNlKS4gIFRoZSBvcmlnaW5hbCBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgKndpZHRoKiBpcyBsZXNzIHRoYW4gb3JcbiAgIGVxdWFsIHRvIGBgbGVuKHMpYGAuXG5cbnN0ci5sb3dlcigpXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aXRoIGFsbCB0aGUgY2FzZWQgY2hhcmFjdGVycyBbNF1cbiAgIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UuXG5cbnN0ci5sc3RyaXAoW2NoYXJzXSlcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggbGVhZGluZyBjaGFyYWN0ZXJzIHJlbW92ZWQuICBUaGVcbiAgICpjaGFycyogYXJndW1lbnQgaXMgYSBzdHJpbmcgc3BlY2lmeWluZyB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgdG8gYmVcbiAgIHJlbW92ZWQuICBJZiBvbWl0dGVkIG9yIGBgTm9uZWBgLCB0aGUgKmNoYXJzKiBhcmd1bWVudCBkZWZhdWx0cyB0b1xuICAgcmVtb3Zpbmcgd2hpdGVzcGFjZS4gIFRoZSAqY2hhcnMqIGFyZ3VtZW50IGlzIG5vdCBhIHByZWZpeDsgcmF0aGVyLFxuICAgYWxsIGNvbWJpbmF0aW9ucyBvZiBpdHMgdmFsdWVzIGFyZSBzdHJpcHBlZDpcblxuICAgPj4+IFwnICAgc3BhY2lvdXMgICBcJy5sc3RyaXAoKVxuICAgXCdzcGFjaW91cyAgIFwnXG4gICA+Pj4gXCd3d3cuZXhhbXBsZS5jb21cJy5sc3RyaXAoXCdjbW93ei5cJylcbiAgIFwnZXhhbXBsZS5jb21cJ1xuXG5zdGF0aWMgc3RyLm1ha2V0cmFucyh4WywgeVssIHpdXSlcblxuICAgVGhpcyBzdGF0aWMgbWV0aG9kIHJldHVybnMgYSB0cmFuc2xhdGlvbiB0YWJsZSB1c2FibGUgZm9yXG4gICBgYHN0ci50cmFuc2xhdGUoKWBgLlxuXG4gICBJZiB0aGVyZSBpcyBvbmx5IG9uZSBhcmd1bWVudCwgaXQgbXVzdCBiZSBhIGRpY3Rpb25hcnkgbWFwcGluZ1xuICAgVW5pY29kZSBvcmRpbmFscyAoaW50ZWdlcnMpIG9yIGNoYXJhY3RlcnMgKHN0cmluZ3Mgb2YgbGVuZ3RoIDEpIHRvXG4gICBVbmljb2RlIG9yZGluYWxzLCBzdHJpbmdzIChvZiBhcmJpdHJhcnkgbGVuZ3Rocykgb3IgTm9uZS5cbiAgIENoYXJhY3RlciBrZXlzIHdpbGwgdGhlbiBiZSBjb252ZXJ0ZWQgdG8gb3JkaW5hbHMuXG5cbiAgIElmIHRoZXJlIGFyZSB0d28gYXJndW1lbnRzLCB0aGV5IG11c3QgYmUgc3RyaW5ncyBvZiBlcXVhbCBsZW5ndGgsXG4gICBhbmQgaW4gdGhlIHJlc3VsdGluZyBkaWN0aW9uYXJ5LCBlYWNoIGNoYXJhY3RlciBpbiB4IHdpbGwgYmUgbWFwcGVkXG4gICB0byB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHkuICBJZiB0aGVyZSBpcyBhIHRoaXJkXG4gICBhcmd1bWVudCwgaXQgbXVzdCBiZSBhIHN0cmluZywgd2hvc2UgY2hhcmFjdGVycyB3aWxsIGJlIG1hcHBlZCB0b1xuICAgTm9uZSBpbiB0aGUgcmVzdWx0LlxuXG5zdHIucGFydGl0aW9uKHNlcClcblxuICAgU3BsaXQgdGhlIHN0cmluZyBhdCB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiAqc2VwKiwgYW5kIHJldHVybiBhXG4gICAzLXR1cGxlIGNvbnRhaW5pbmcgdGhlIHBhcnQgYmVmb3JlIHRoZSBzZXBhcmF0b3IsIHRoZSBzZXBhcmF0b3JcbiAgIGl0c2VsZiwgYW5kIHRoZSBwYXJ0IGFmdGVyIHRoZSBzZXBhcmF0b3IuICBJZiB0aGUgc2VwYXJhdG9yIGlzIG5vdFxuICAgZm91bmQsIHJldHVybiBhIDMtdHVwbGUgY29udGFpbmluZyB0aGUgc3RyaW5nIGl0c2VsZiwgZm9sbG93ZWQgYnlcbiAgIHR3byBlbXB0eSBzdHJpbmdzLlxuXG5zdHIucmVwbGFjZShvbGQsIG5ld1ssIGNvdW50XSlcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggYWxsIG9jY3VycmVuY2VzIG9mIHN1YnN0cmluZyAqb2xkKlxuICAgcmVwbGFjZWQgYnkgKm5ldyouICBJZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgKmNvdW50KiBpcyBnaXZlbiwgb25seVxuICAgdGhlIGZpcnN0ICpjb3VudCogb2NjdXJyZW5jZXMgYXJlIHJlcGxhY2VkLlxuXG5zdHIucmZpbmQoc3ViWywgc3RhcnRbLCBlbmRdXSlcblxuICAgUmV0dXJuIHRoZSBoaWdoZXN0IGluZGV4IGluIHRoZSBzdHJpbmcgd2hlcmUgc3Vic3RyaW5nICpzdWIqIGlzXG4gICBmb3VuZCwgc3VjaCB0aGF0ICpzdWIqIGlzIGNvbnRhaW5lZCB3aXRoaW4gYGBzW3N0YXJ0OmVuZF1gYC5cbiAgIE9wdGlvbmFsIGFyZ3VtZW50cyAqc3RhcnQqIGFuZCAqZW5kKiBhcmUgaW50ZXJwcmV0ZWQgYXMgaW4gc2xpY2VcbiAgIG5vdGF0aW9uLiAgUmV0dXJuIGBgLTFgYCBvbiBmYWlsdXJlLlxuXG5zdHIucmluZGV4KHN1YlssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIExpa2UgYGByZmluZCgpYGAgYnV0IHJhaXNlcyBgYFZhbHVlRXJyb3JgYCB3aGVuIHRoZSBzdWJzdHJpbmcgKnN1YipcbiAgIGlzIG5vdCBmb3VuZC5cblxuc3RyLnJqdXN0KHdpZHRoWywgZmlsbGNoYXJdKVxuXG4gICBSZXR1cm4gdGhlIHN0cmluZyByaWdodCBqdXN0aWZpZWQgaW4gYSBzdHJpbmcgb2YgbGVuZ3RoICp3aWR0aCouXG4gICBQYWRkaW5nIGlzIGRvbmUgdXNpbmcgdGhlIHNwZWNpZmllZCAqZmlsbGNoYXIqIChkZWZhdWx0IGlzIGFcbiAgIHNwYWNlKS4gVGhlIG9yaWdpbmFsIHN0cmluZyBpcyByZXR1cm5lZCBpZiAqd2lkdGgqIGlzIGxlc3MgdGhhbiBvclxuICAgZXF1YWwgdG8gYGBsZW4ocylgYC5cblxuc3RyLnJwYXJ0aXRpb24oc2VwKVxuXG4gICBTcGxpdCB0aGUgc3RyaW5nIGF0IHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgKnNlcCosIGFuZCByZXR1cm4gYVxuICAgMy10dXBsZSBjb250YWluaW5nIHRoZSBwYXJ0IGJlZm9yZSB0aGUgc2VwYXJhdG9yLCB0aGUgc2VwYXJhdG9yXG4gICBpdHNlbGYsIGFuZCB0aGUgcGFydCBhZnRlciB0aGUgc2VwYXJhdG9yLiAgSWYgdGhlIHNlcGFyYXRvciBpcyBub3RcbiAgIGZvdW5kLCByZXR1cm4gYSAzLXR1cGxlIGNvbnRhaW5pbmcgdHdvIGVtcHR5IHN0cmluZ3MsIGZvbGxvd2VkIGJ5XG4gICB0aGUgc3RyaW5nIGl0c2VsZi5cblxuc3RyLnJzcGxpdChbc2VwWywgbWF4c3BsaXRdXSlcblxuICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgd29yZHMgaW4gdGhlIHN0cmluZywgdXNpbmcgKnNlcCogYXMgdGhlXG4gICBkZWxpbWl0ZXIgc3RyaW5nLiBJZiAqbWF4c3BsaXQqIGlzIGdpdmVuLCBhdCBtb3N0ICptYXhzcGxpdCogc3BsaXRzXG4gICBhcmUgZG9uZSwgdGhlICpyaWdodG1vc3QqIG9uZXMuICBJZiAqc2VwKiBpcyBub3Qgc3BlY2lmaWVkIG9yXG4gICBgYE5vbmVgYCwgYW55IHdoaXRlc3BhY2Ugc3RyaW5nIGlzIGEgc2VwYXJhdG9yLiAgRXhjZXB0IGZvclxuICAgc3BsaXR0aW5nIGZyb20gdGhlIHJpZ2h0LCBgYHJzcGxpdCgpYGAgYmVoYXZlcyBsaWtlIGBgc3BsaXQoKWBgXG4gICB3aGljaCBpcyBkZXNjcmliZWQgaW4gZGV0YWlsIGJlbG93LlxuXG5zdHIucnN0cmlwKFtjaGFyc10pXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aXRoIHRyYWlsaW5nIGNoYXJhY3RlcnMgcmVtb3ZlZC4gIFRoZVxuICAgKmNoYXJzKiBhcmd1bWVudCBpcyBhIHN0cmluZyBzcGVjaWZ5aW5nIHRoZSBzZXQgb2YgY2hhcmFjdGVycyB0byBiZVxuICAgcmVtb3ZlZC4gIElmIG9taXR0ZWQgb3IgYGBOb25lYGAsIHRoZSAqY2hhcnMqIGFyZ3VtZW50IGRlZmF1bHRzIHRvXG4gICByZW1vdmluZyB3aGl0ZXNwYWNlLiAgVGhlICpjaGFycyogYXJndW1lbnQgaXMgbm90IGEgc3VmZml4OyByYXRoZXIsXG4gICBhbGwgY29tYmluYXRpb25zIG9mIGl0cyB2YWx1ZXMgYXJlIHN0cmlwcGVkOlxuXG4gICA+Pj4gXCcgICBzcGFjaW91cyAgIFwnLnJzdHJpcCgpXG4gICBcJyAgIHNwYWNpb3VzXCdcbiAgID4+PiBcJ21pc3Npc3NpcHBpXCcucnN0cmlwKFwnaXB6XCcpXG4gICBcJ21pc3Npc3NcJ1xuXG5zdHIuc3BsaXQoW3NlcFssIG1heHNwbGl0XV0pXG5cbiAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIHdvcmRzIGluIHRoZSBzdHJpbmcsIHVzaW5nICpzZXAqIGFzIHRoZVxuICAgZGVsaW1pdGVyIHN0cmluZy4gIElmICptYXhzcGxpdCogaXMgZ2l2ZW4sIGF0IG1vc3QgKm1heHNwbGl0KlxuICAgc3BsaXRzIGFyZSBkb25lICh0aHVzLCB0aGUgbGlzdCB3aWxsIGhhdmUgYXQgbW9zdCBgYG1heHNwbGl0KzFgYFxuICAgZWxlbWVudHMpLiAgSWYgKm1heHNwbGl0KiBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIHRoZXJlIGlzIG5vIGxpbWl0XG4gICBvbiB0aGUgbnVtYmVyIG9mIHNwbGl0cyAoYWxsIHBvc3NpYmxlIHNwbGl0cyBhcmUgbWFkZSkuXG5cbiAgIElmICpzZXAqIGlzIGdpdmVuLCBjb25zZWN1dGl2ZSBkZWxpbWl0ZXJzIGFyZSBub3QgZ3JvdXBlZCB0b2dldGhlclxuICAgYW5kIGFyZSBkZWVtZWQgdG8gZGVsaW1pdCBlbXB0eSBzdHJpbmdzIChmb3IgZXhhbXBsZSxcbiAgIGBgXCcxLCwyXCcuc3BsaXQoXCcsXCcpYGAgcmV0dXJucyBgYFtcJzFcJywgXCdcJywgXCcyXCddYGApLiAgVGhlICpzZXAqXG4gICBhcmd1bWVudCBtYXkgY29uc2lzdCBvZiBtdWx0aXBsZSBjaGFyYWN0ZXJzIChmb3IgZXhhbXBsZSxcbiAgIGBgXCcxPD4yPD4zXCcuc3BsaXQoXCc8PlwnKWBgIHJldHVybnMgYGBbXCcxXCcsIFwnMlwnLCBcJzNcJ11gYCkuIFNwbGl0dGluZ1xuICAgYW4gZW1wdHkgc3RyaW5nIHdpdGggYSBzcGVjaWZpZWQgc2VwYXJhdG9yIHJldHVybnMgYGBbXCdcJ11gYC5cblxuICAgSWYgKnNlcCogaXMgbm90IHNwZWNpZmllZCBvciBpcyBgYE5vbmVgYCwgYSBkaWZmZXJlbnQgc3BsaXR0aW5nXG4gICBhbGdvcml0aG0gaXMgYXBwbGllZDogcnVucyBvZiBjb25zZWN1dGl2ZSB3aGl0ZXNwYWNlIGFyZSByZWdhcmRlZFxuICAgYXMgYSBzaW5nbGUgc2VwYXJhdG9yLCBhbmQgdGhlIHJlc3VsdCB3aWxsIGNvbnRhaW4gbm8gZW1wdHkgc3RyaW5nc1xuICAgYXQgdGhlIHN0YXJ0IG9yIGVuZCBpZiB0aGUgc3RyaW5nIGhhcyBsZWFkaW5nIG9yIHRyYWlsaW5nXG4gICB3aGl0ZXNwYWNlLiAgQ29uc2VxdWVudGx5LCBzcGxpdHRpbmcgYW4gZW1wdHkgc3RyaW5nIG9yIGEgc3RyaW5nXG4gICBjb25zaXN0aW5nIG9mIGp1c3Qgd2hpdGVzcGFjZSB3aXRoIGEgYGBOb25lYGAgc2VwYXJhdG9yIHJldHVybnNcbiAgIGBgW11gYC5cblxuICAgRm9yIGV4YW1wbGUsIGBgXCcgMSAgMiAgIDMgIFwnLnNwbGl0KClgYCByZXR1cm5zIGBgW1wnMVwnLCBcJzJcJywgXCczXCddYGAsXG4gICBhbmQgYGBcJyAgMSAgMiAgIDMgIFwnLnNwbGl0KE5vbmUsIDEpYGAgcmV0dXJucyBgYFtcJzFcJywgXCcyICAgMyAgXCddYGAuXG5cbnN0ci5zcGxpdGxpbmVzKFtrZWVwZW5kc10pXG5cbiAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIGxpbmVzIGluIHRoZSBzdHJpbmcsIGJyZWFraW5nIGF0IGxpbmVcbiAgIGJvdW5kYXJpZXMuICBMaW5lIGJyZWFrcyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSByZXN1bHRpbmcgbGlzdFxuICAgdW5sZXNzICprZWVwZW5kcyogaXMgZ2l2ZW4gYW5kIHRydWUuXG5cbnN0ci5zdGFydHN3aXRoKHByZWZpeFssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIFJldHVybiBgYFRydWVgYCBpZiBzdHJpbmcgc3RhcnRzIHdpdGggdGhlICpwcmVmaXgqLCBvdGhlcndpc2VcbiAgIHJldHVybiBgYEZhbHNlYGAuICpwcmVmaXgqIGNhbiBhbHNvIGJlIGEgdHVwbGUgb2YgcHJlZml4ZXMgdG8gbG9va1xuICAgZm9yLiAgV2l0aCBvcHRpb25hbCAqc3RhcnQqLCB0ZXN0IHN0cmluZyBiZWdpbm5pbmcgYXQgdGhhdFxuICAgcG9zaXRpb24uICBXaXRoIG9wdGlvbmFsICplbmQqLCBzdG9wIGNvbXBhcmluZyBzdHJpbmcgYXQgdGhhdFxuICAgcG9zaXRpb24uXG5cbnN0ci5zdHJpcChbY2hhcnNdKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCB0aGUgbGVhZGluZyBhbmQgdHJhaWxpbmdcbiAgIGNoYXJhY3RlcnMgcmVtb3ZlZC4gVGhlICpjaGFycyogYXJndW1lbnQgaXMgYSBzdHJpbmcgc3BlY2lmeWluZyB0aGVcbiAgIHNldCBvZiBjaGFyYWN0ZXJzIHRvIGJlIHJlbW92ZWQuIElmIG9taXR0ZWQgb3IgYGBOb25lYGAsIHRoZVxuICAgKmNoYXJzKiBhcmd1bWVudCBkZWZhdWx0cyB0byByZW1vdmluZyB3aGl0ZXNwYWNlLiBUaGUgKmNoYXJzKlxuICAgYXJndW1lbnQgaXMgbm90IGEgcHJlZml4IG9yIHN1ZmZpeDsgcmF0aGVyLCBhbGwgY29tYmluYXRpb25zIG9mIGl0c1xuICAgdmFsdWVzIGFyZSBzdHJpcHBlZDpcblxuICAgPj4+IFwnICAgc3BhY2lvdXMgICBcJy5zdHJpcCgpXG4gICBcJ3NwYWNpb3VzXCdcbiAgID4+PiBcJ3d3dy5leGFtcGxlLmNvbVwnLnN0cmlwKFwnY21vd3ouXCcpXG4gICBcJ2V4YW1wbGVcJ1xuXG5zdHIuc3dhcGNhc2UoKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCB1cHBlcmNhc2UgY2hhcmFjdGVycyBjb252ZXJ0ZWQgdG9cbiAgIGxvd2VyY2FzZSBhbmQgdmljZSB2ZXJzYS5cblxuc3RyLnRpdGxlKClcblxuICAgUmV0dXJuIGEgdGl0bGVjYXNlZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcgd2hlcmUgd29yZHMgc3RhcnQgd2l0aCBhblxuICAgdXBwZXJjYXNlIGNoYXJhY3RlciBhbmQgdGhlIHJlbWFpbmluZyBjaGFyYWN0ZXJzIGFyZSBsb3dlcmNhc2UuXG5cbiAgIFRoZSBhbGdvcml0aG0gdXNlcyBhIHNpbXBsZSBsYW5ndWFnZS1pbmRlcGVuZGVudCBkZWZpbml0aW9uIG9mIGFcbiAgIHdvcmQgYXMgZ3JvdXBzIG9mIGNvbnNlY3V0aXZlIGxldHRlcnMuICBUaGUgZGVmaW5pdGlvbiB3b3JrcyBpblxuICAgbWFueSBjb250ZXh0cyBidXQgaXQgbWVhbnMgdGhhdCBhcG9zdHJvcGhlcyBpbiBjb250cmFjdGlvbnMgYW5kXG4gICBwb3NzZXNzaXZlcyBmb3JtIHdvcmQgYm91bmRhcmllcywgd2hpY2ggbWF5IG5vdCBiZSB0aGUgZGVzaXJlZFxuICAgcmVzdWx0OlxuXG4gICAgICA+Pj4gInRoZXlcJ3JlIGJpbGxcJ3MgZnJpZW5kcyBmcm9tIHRoZSBVSyIudGl0bGUoKVxuICAgICAgIlRoZXlcJ1JlIEJpbGxcJ1MgRnJpZW5kcyBGcm9tIFRoZSBVayJcblxuICAgQSB3b3JrYXJvdW5kIGZvciBhcG9zdHJvcGhlcyBjYW4gYmUgY29uc3RydWN0ZWQgdXNpbmcgcmVndWxhclxuICAgZXhwcmVzc2lvbnM6XG5cbiAgICAgID4+PiBpbXBvcnQgcmVcbiAgICAgID4+PiBkZWYgdGl0bGVjYXNlKHMpOlxuICAgICAgICAgICAgICByZXR1cm4gcmUuc3ViKHIiW0EtWmEtel0rKFwnW0EtWmEtel0rKT8iLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBtbzogbW8uZ3JvdXAoMClbMF0udXBwZXIoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtby5ncm91cCgwKVsxOl0ubG93ZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKVxuXG4gICAgICA+Pj4gdGl0bGVjYXNlKCJ0aGV5XCdyZSBiaWxsXCdzIGZyaWVuZHMuIilcbiAgICAgICJUaGV5XCdyZSBCaWxsXCdzIEZyaWVuZHMuIlxuXG5zdHIudHJhbnNsYXRlKG1hcClcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgKnMqIHdoZXJlIGFsbCBjaGFyYWN0ZXJzIGhhdmUgYmVlbiBtYXBwZWRcbiAgIHRocm91Z2ggdGhlICptYXAqIHdoaWNoIG11c3QgYmUgYSBkaWN0aW9uYXJ5IG9mIFVuaWNvZGUgb3JkaW5hbHNcbiAgIChpbnRlZ2VycykgdG8gVW5pY29kZSBvcmRpbmFscywgc3RyaW5ncyBvciBgYE5vbmVgYC4gIFVubWFwcGVkXG4gICBjaGFyYWN0ZXJzIGFyZSBsZWZ0IHVudG91Y2hlZC4gQ2hhcmFjdGVycyBtYXBwZWQgdG8gYGBOb25lYGAgYXJlXG4gICBkZWxldGVkLlxuXG4gICBZb3UgY2FuIHVzZSBgYHN0ci5tYWtldHJhbnMoKWBgIHRvIGNyZWF0ZSBhIHRyYW5zbGF0aW9uIG1hcCBmcm9tXG4gICBjaGFyYWN0ZXItdG8tY2hhcmFjdGVyIG1hcHBpbmdzIGluIGRpZmZlcmVudCBmb3JtYXRzLlxuXG4gICBOb3RlOiBBbiBldmVuIG1vcmUgZmxleGlibGUgYXBwcm9hY2ggaXMgdG8gY3JlYXRlIGEgY3VzdG9tIGNoYXJhY3RlclxuICAgICBtYXBwaW5nIGNvZGVjIHVzaW5nIHRoZSBgYGNvZGVjc2BgIG1vZHVsZSAoc2VlXG4gICAgIGBgZW5jb2RpbmdzLmNwMTI1MWBgIGZvciBhbiBleGFtcGxlKS5cblxuc3RyLnVwcGVyKClcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggYWxsIHRoZSBjYXNlZCBjaGFyYWN0ZXJzIFs0XVxuICAgY29udmVydGVkIHRvIHVwcGVyY2FzZS4gIE5vdGUgdGhhdCBgYHN0ci51cHBlcigpLmlzdXBwZXIoKWBgIG1pZ2h0XG4gICBiZSBgYEZhbHNlYGAgaWYgYGBzYGAgY29udGFpbnMgdW5jYXNlZCBjaGFyYWN0ZXJzIG9yIGlmIHRoZSBVbmljb2RlXG4gICBjYXRlZ29yeSBvZiB0aGUgcmVzdWx0aW5nIGNoYXJhY3RlcihzKSBpcyBub3QgIkx1IiAoTGV0dGVyLFxuICAgdXBwZXJjYXNlKSwgYnV0IGUuZy4gIkx0IiAoTGV0dGVyLCB0aXRsZWNhc2UpLlxuXG5zdHIuemZpbGwod2lkdGgpXG5cbiAgIFJldHVybiB0aGUgbnVtZXJpYyBzdHJpbmcgbGVmdCBmaWxsZWQgd2l0aCB6ZXJvcyBpbiBhIHN0cmluZyBvZlxuICAgbGVuZ3RoICp3aWR0aCouICBBIHNpZ24gcHJlZml4IGlzIGhhbmRsZWQgY29ycmVjdGx5LiAgVGhlIG9yaWdpbmFsXG4gICBzdHJpbmcgaXMgcmV0dXJuZWQgaWYgKndpZHRoKiBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gYGBsZW4ocylgYC5cblxuXG5PbGQgU3RyaW5nIEZvcm1hdHRpbmcgT3BlcmF0aW9uc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuTm90ZTogVGhlIGZvcm1hdHRpbmcgb3BlcmF0aW9ucyBkZXNjcmliZWQgaGVyZSBhcmUgb2Jzb2xldGUgYW5kIG1heSBnb1xuICBhd2F5IGluIGZ1dHVyZSB2ZXJzaW9ucyBvZiBQeXRob24uICBVc2UgdGhlIG5ldyAqU3RyaW5nIEZvcm1hdHRpbmcqXG4gIGluIG5ldyBjb2RlLlxuXG5TdHJpbmcgb2JqZWN0cyBoYXZlIG9uZSB1bmlxdWUgYnVpbHQtaW4gb3BlcmF0aW9uOiB0aGUgYGAlYGAgb3BlcmF0b3Jcbihtb2R1bG8pLiBUaGlzIGlzIGFsc28ga25vd24gYXMgdGhlIHN0cmluZyAqZm9ybWF0dGluZyogb3JcbippbnRlcnBvbGF0aW9uKiBvcGVyYXRvci4gR2l2ZW4gYGBmb3JtYXQgJSB2YWx1ZXNgYCAod2hlcmUgKmZvcm1hdCogaXNcbmEgc3RyaW5nKSwgYGAlYGAgY29udmVyc2lvbiBzcGVjaWZpY2F0aW9ucyBpbiAqZm9ybWF0KiBhcmUgcmVwbGFjZWRcbndpdGggemVybyBvciBtb3JlIGVsZW1lbnRzIG9mICp2YWx1ZXMqLiBUaGUgZWZmZWN0IGlzIHNpbWlsYXIgdG8gdGhlXG51c2luZyBgYHNwcmludGYoKWBgIGluIHRoZSBDIGxhbmd1YWdlLlxuXG5JZiAqZm9ybWF0KiByZXF1aXJlcyBhIHNpbmdsZSBhcmd1bWVudCwgKnZhbHVlcyogbWF5IGJlIGEgc2luZ2xlIG5vbi1cbnR1cGxlIG9iamVjdC4gWzVdICBPdGhlcndpc2UsICp2YWx1ZXMqIG11c3QgYmUgYSB0dXBsZSB3aXRoIGV4YWN0bHlcbnRoZSBudW1iZXIgb2YgaXRlbXMgc3BlY2lmaWVkIGJ5IHRoZSBmb3JtYXQgc3RyaW5nLCBvciBhIHNpbmdsZVxubWFwcGluZyBvYmplY3QgKGZvciBleGFtcGxlLCBhIGRpY3Rpb25hcnkpLlxuXG5BIGNvbnZlcnNpb24gc3BlY2lmaWVyIGNvbnRhaW5zIHR3byBvciBtb3JlIGNoYXJhY3RlcnMgYW5kIGhhcyB0aGVcbmZvbGxvd2luZyBjb21wb25lbnRzLCB3aGljaCBtdXN0IG9jY3VyIGluIHRoaXMgb3JkZXI6XG5cbjEuIFRoZSBgYFwnJVwnYGAgY2hhcmFjdGVyLCB3aGljaCBtYXJrcyB0aGUgc3RhcnQgb2YgdGhlIHNwZWNpZmllci5cblxuMi4gTWFwcGluZyBrZXkgKG9wdGlvbmFsKSwgY29uc2lzdGluZyBvZiBhIHBhcmVudGhlc2lzZWQgc2VxdWVuY2Ugb2ZcbiAgIGNoYXJhY3RlcnMgKGZvciBleGFtcGxlLCBgYChzb21lbmFtZSlgYCkuXG5cbjMuIENvbnZlcnNpb24gZmxhZ3MgKG9wdGlvbmFsKSwgd2hpY2ggYWZmZWN0IHRoZSByZXN1bHQgb2Ygc29tZVxuICAgY29udmVyc2lvbiB0eXBlcy5cblxuNC4gTWluaW11bSBmaWVsZCB3aWR0aCAob3B0aW9uYWwpLiAgSWYgc3BlY2lmaWVkIGFzIGFuIGBgXCcqXCdgYFxuICAgKGFzdGVyaXNrKSwgdGhlIGFjdHVhbCB3aWR0aCBpcyByZWFkIGZyb20gdGhlIG5leHQgZWxlbWVudCBvZiB0aGVcbiAgIHR1cGxlIGluICp2YWx1ZXMqLCBhbmQgdGhlIG9iamVjdCB0byBjb252ZXJ0IGNvbWVzIGFmdGVyIHRoZVxuICAgbWluaW11bSBmaWVsZCB3aWR0aCBhbmQgb3B0aW9uYWwgcHJlY2lzaW9uLlxuXG41LiBQcmVjaXNpb24gKG9wdGlvbmFsKSwgZ2l2ZW4gYXMgYSBgYFwnLlwnYGAgKGRvdCkgZm9sbG93ZWQgYnkgdGhlXG4gICBwcmVjaXNpb24uICBJZiBzcGVjaWZpZWQgYXMgYGBcJypcJ2BgIChhbiBhc3RlcmlzayksIHRoZSBhY3R1YWxcbiAgIHByZWNpc2lvbiBpcyByZWFkIGZyb20gdGhlIG5leHQgZWxlbWVudCBvZiB0aGUgdHVwbGUgaW4gKnZhbHVlcyosXG4gICBhbmQgdGhlIHZhbHVlIHRvIGNvbnZlcnQgY29tZXMgYWZ0ZXIgdGhlIHByZWNpc2lvbi5cblxuNi4gTGVuZ3RoIG1vZGlmaWVyIChvcHRpb25hbCkuXG5cbjcuIENvbnZlcnNpb24gdHlwZS5cblxuV2hlbiB0aGUgcmlnaHQgYXJndW1lbnQgaXMgYSBkaWN0aW9uYXJ5IChvciBvdGhlciBtYXBwaW5nIHR5cGUpLCB0aGVuXG50aGUgZm9ybWF0cyBpbiB0aGUgc3RyaW5nICptdXN0KiBpbmNsdWRlIGEgcGFyZW50aGVzaXNlZCBtYXBwaW5nIGtleVxuaW50byB0aGF0IGRpY3Rpb25hcnkgaW5zZXJ0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGBgXCclXCdgYCBjaGFyYWN0ZXIuXG5UaGUgbWFwcGluZyBrZXkgc2VsZWN0cyB0aGUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkIGZyb20gdGhlIG1hcHBpbmcuXG5Gb3IgZXhhbXBsZTpcblxuPj4+IHByaW50KFwnJShsYW5ndWFnZSlzIGhhcyAlKG51bWJlcikwM2QgcXVvdGUgdHlwZXMuXCcgJVxuLi4uICAgICAgIHtcJ2xhbmd1YWdlXCc6ICJQeXRob24iLCAibnVtYmVyIjogMn0pXG5QeXRob24gaGFzIDAwMiBxdW90ZSB0eXBlcy5cblxuSW4gdGhpcyBjYXNlIG5vIGBgKmBgIHNwZWNpZmllcnMgbWF5IG9jY3VyIGluIGEgZm9ybWF0IChzaW5jZSB0aGV5XG5yZXF1aXJlIGEgc2VxdWVudGlhbCBwYXJhbWV0ZXIgbGlzdCkuXG5cblRoZSBjb252ZXJzaW9uIGZsYWcgY2hhcmFjdGVycyBhcmU6XG5cbistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgRmxhZyAgICAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbis9PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PStcbnwgYGBcJyNcJ2BgICAgfCBUaGUgdmFsdWUgY29udmVyc2lvbiB3aWxsIHVzZSB0aGUgImFsdGVybmF0ZSBmb3JtIiAod2hlcmUgZGVmaW5lZCAgICAgfFxufCAgICAgICAgICAgfCBiZWxvdykuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYFwnMFwnYGAgICB8IFRoZSBjb252ZXJzaW9uIHdpbGwgYmUgemVybyBwYWRkZWQgZm9yIG51bWVyaWMgdmFsdWVzLiAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgXCctXCdgYCAgIHwgVGhlIGNvbnZlcnRlZCB2YWx1ZSBpcyBsZWZ0IGFkanVzdGVkIChvdmVycmlkZXMgdGhlIGBgXCcwXCdgYCAgICAgICAgICAgfFxufCAgICAgICAgICAgfCBjb252ZXJzaW9uIGlmIGJvdGggYXJlIGdpdmVuKS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYFwnIFwnYGAgICB8IChhIHNwYWNlKSBBIGJsYW5rIHNob3VsZCBiZSBsZWZ0IGJlZm9yZSBhIHBvc2l0aXZlIG51bWJlciAob3IgZW1wdHkgICB8XG58ICAgICAgICAgICB8IHN0cmluZykgcHJvZHVjZWQgYnkgYSBzaWduZWQgY29udmVyc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgXCcrXCdgYCAgIHwgQSBzaWduIGNoYXJhY3RlciAoYGBcJytcJ2BgIG9yIGBgXCctXCdgYCkgd2lsbCBwcmVjZWRlIHRoZSBjb252ZXJzaW9uICAgICB8XG58ICAgICAgICAgICB8IChvdmVycmlkZXMgYSAic3BhY2UiIGZsYWcpLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG5cbkEgbGVuZ3RoIG1vZGlmaWVyIChgYGhgYCwgYGBsYGAsIG9yIGBgTGBgKSBtYXkgYmUgcHJlc2VudCwgYnV0IGlzXG5pZ25vcmVkIGFzIGl0IGlzIG5vdCBuZWNlc3NhcnkgZm9yIFB5dGhvbiAtLSBzbyBlLmcuIGBgJWxkYGAgaXNcbmlkZW50aWNhbCB0byBgYCVkYGAuXG5cblRoZSBjb252ZXJzaW9uIHR5cGVzIGFyZTpcblxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBDb252ZXJzaW9uICAgfCBNZWFuaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vdGVzICAgfFxuKz09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09K1xufCBgYFwnZFwnYGAgICAgICB8IFNpZ25lZCBpbnRlZ2VyIGRlY2ltYWwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdpXCdgYCAgICAgIHwgU2lnbmVkIGludGVnZXIgZGVjaW1hbC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ29cJ2BgICAgICAgfCBTaWduZWQgb2N0YWwgdmFsdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgxKSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwndVwnYGAgICAgICB8IE9ic29sZXRlIHR5cGUgLS0gaXQgaXMgaWRlbnRpY2FsIHRvIGBgXCdkXCdgYC4gICAgICAgICAgfCAoNykgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ3hcJ2BgICAgICAgfCBTaWduZWQgaGV4YWRlY2ltYWwgKGxvd2VyY2FzZSkuICAgICAgICAgICAgICAgICAgICAgICB8ICgyKSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwnWFwnYGAgICAgICB8IFNpZ25lZCBoZXhhZGVjaW1hbCAodXBwZXJjYXNlKS4gICAgICAgICAgICAgICAgICAgICAgIHwgKDIpICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdlXCdgYCAgICAgIHwgRmxvYXRpbmcgcG9pbnQgZXhwb25lbnRpYWwgZm9ybWF0IChsb3dlcmNhc2UpLiAgICAgICAgfCAoMykgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ0VcJ2BgICAgICAgfCBGbG9hdGluZyBwb2ludCBleHBvbmVudGlhbCBmb3JtYXQgKHVwcGVyY2FzZSkuICAgICAgICB8ICgzKSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwnZlwnYGAgICAgICB8IEZsb2F0aW5nIHBvaW50IGRlY2ltYWwgZm9ybWF0LiAgICAgICAgICAgICAgICAgICAgICAgIHwgKDMpICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdGXCdgYCAgICAgIHwgRmxvYXRpbmcgcG9pbnQgZGVjaW1hbCBmb3JtYXQuICAgICAgICAgICAgICAgICAgICAgICAgfCAoMykgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ2dcJ2BgICAgICAgfCBGbG9hdGluZyBwb2ludCBmb3JtYXQuIFVzZXMgbG93ZXJjYXNlIGV4cG9uZW50aWFsICAgICB8ICg0KSAgICAgfFxufCAgICAgICAgICAgICAgfCBmb3JtYXQgaWYgZXhwb25lbnQgaXMgbGVzcyB0aGFuIC00IG9yIG5vdCBsZXNzIHRoYW4gICB8ICAgICAgICAgfFxufCAgICAgICAgICAgICAgfCBwcmVjaXNpb24sIGRlY2ltYWwgZm9ybWF0IG90aGVyd2lzZS4gICAgICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwnR1wnYGAgICAgICB8IEZsb2F0aW5nIHBvaW50IGZvcm1hdC4gVXNlcyB1cHBlcmNhc2UgZXhwb25lbnRpYWwgICAgIHwgKDQpICAgICB8XG58ICAgICAgICAgICAgICB8IGZvcm1hdCBpZiBleHBvbmVudCBpcyBsZXNzIHRoYW4gLTQgb3Igbm90IGxlc3MgdGhhbiAgIHwgICAgICAgICB8XG58ICAgICAgICAgICAgICB8IHByZWNpc2lvbiwgZGVjaW1hbCBmb3JtYXQgb3RoZXJ3aXNlLiAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdjXCdgYCAgICAgIHwgU2luZ2xlIGNoYXJhY3RlciAoYWNjZXB0cyBpbnRlZ2VyIG9yIHNpbmdsZSBjaGFyYWN0ZXIgfCAgICAgICAgIHxcbnwgICAgICAgICAgICAgIHwgc3RyaW5nKS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ3JcJ2BgICAgICAgfCBTdHJpbmcgKGNvbnZlcnRzIGFueSBQeXRob24gb2JqZWN0IHVzaW5nIGBgcmVwcigpYGApLiB8ICg1KSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwnc1wnYGAgICAgICB8IFN0cmluZyAoY29udmVydHMgYW55IFB5dGhvbiBvYmplY3QgdXNpbmcgYGBzdHIoKWBgKS4gIHwgKDUpICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdhXCdgYCAgICAgIHwgU3RyaW5nIChjb252ZXJ0cyBhbnkgUHl0aG9uIG9iamVjdCB1c2luZyAgICAgICAgICAgICAgfCAoNSkgICAgIHxcbnwgICAgICAgICAgICAgIHwgYGBhc2NpaSgpYGApLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJyVcJ2BgICAgICAgfCBObyBhcmd1bWVudCBpcyBjb252ZXJ0ZWQsIHJlc3VsdHMgaW4gYSBgYFwnJVwnYGAgICAgICAgIHwgICAgICAgICB8XG58ICAgICAgICAgICAgICB8IGNoYXJhY3RlciBpbiB0aGUgcmVzdWx0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG5cbk5vdGVzOlxuXG4xLiBUaGUgYWx0ZXJuYXRlIGZvcm0gY2F1c2VzIGEgbGVhZGluZyB6ZXJvIChgYFwnMFwnYGApIHRvIGJlIGluc2VydGVkXG4gICBiZXR3ZWVuIGxlZnQtaGFuZCBwYWRkaW5nIGFuZCB0aGUgZm9ybWF0dGluZyBvZiB0aGUgbnVtYmVyIGlmIHRoZVxuICAgbGVhZGluZyBjaGFyYWN0ZXIgb2YgdGhlIHJlc3VsdCBpcyBub3QgYWxyZWFkeSBhIHplcm8uXG5cbjIuIFRoZSBhbHRlcm5hdGUgZm9ybSBjYXVzZXMgYSBsZWFkaW5nIGBgXCcweFwnYGAgb3IgYGBcJzBYXCdgYCAoZGVwZW5kaW5nXG4gICBvbiB3aGV0aGVyIHRoZSBgYFwneFwnYGAgb3IgYGBcJ1hcJ2BgIGZvcm1hdCB3YXMgdXNlZCkgdG8gYmUgaW5zZXJ0ZWRcbiAgIGJldHdlZW4gbGVmdC1oYW5kIHBhZGRpbmcgYW5kIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBudW1iZXIgaWYgdGhlXG4gICBsZWFkaW5nIGNoYXJhY3RlciBvZiB0aGUgcmVzdWx0IGlzIG5vdCBhbHJlYWR5IGEgemVyby5cblxuMy4gVGhlIGFsdGVybmF0ZSBmb3JtIGNhdXNlcyB0aGUgcmVzdWx0IHRvIGFsd2F5cyBjb250YWluIGEgZGVjaW1hbFxuICAgcG9pbnQsIGV2ZW4gaWYgbm8gZGlnaXRzIGZvbGxvdyBpdC5cblxuICAgVGhlIHByZWNpc2lvbiBkZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsXG4gICBwb2ludCBhbmQgZGVmYXVsdHMgdG8gNi5cblxuNC4gVGhlIGFsdGVybmF0ZSBmb3JtIGNhdXNlcyB0aGUgcmVzdWx0IHRvIGFsd2F5cyBjb250YWluIGEgZGVjaW1hbFxuICAgcG9pbnQsIGFuZCB0cmFpbGluZyB6ZXJvZXMgYXJlIG5vdCByZW1vdmVkIGFzIHRoZXkgd291bGQgb3RoZXJ3aXNlXG4gICBiZS5cblxuICAgVGhlIHByZWNpc2lvbiBkZXRlcm1pbmVzIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGJlZm9yZVxuICAgYW5kIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IGFuZCBkZWZhdWx0cyB0byA2LlxuXG41LiBJZiBwcmVjaXNpb24gaXMgYGBOYGAsIHRoZSBvdXRwdXQgaXMgdHJ1bmNhdGVkIHRvIGBgTmBgIGNoYXJhY3RlcnMuXG5cbjEuIFNlZSAqKlBFUCAyMzcqKi5cblxuU2luY2UgUHl0aG9uIHN0cmluZ3MgaGF2ZSBhbiBleHBsaWNpdCBsZW5ndGgsIGBgJXNgYCBjb252ZXJzaW9ucyBkb1xubm90IGFzc3VtZSB0aGF0IGBgXCdcXDBcJ2BgIGlzIHRoZSBlbmQgb2YgdGhlIHN0cmluZy5cblxuQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMTogYGAlZmBgIGNvbnZlcnNpb25zIGZvciBudW1iZXJzIHdob3NlIGFic29sdXRlXG52YWx1ZSBpcyBvdmVyIDFlNTAgYXJlIG5vIGxvbmdlciByZXBsYWNlZCBieSBgYCVnYGAgY29udmVyc2lvbnMuXG5cbkFkZGl0aW9uYWwgc3RyaW5nIG9wZXJhdGlvbnMgYXJlIGRlZmluZWQgaW4gc3RhbmRhcmQgbW9kdWxlc1xuYGBzdHJpbmdgYCBhbmQgYGByZWBgLlxuXG5cblJhbmdlIFR5cGVcbj09PT09PT09PT1cblxuVGhlIGBgcmFuZ2VgYCB0eXBlIGlzIGFuIGltbXV0YWJsZSBzZXF1ZW5jZSB3aGljaCBpcyBjb21tb25seSB1c2VkIGZvclxubG9vcGluZy4gIFRoZSBhZHZhbnRhZ2Ugb2YgdGhlIGBgcmFuZ2VgYCB0eXBlIGlzIHRoYXQgYW4gYGByYW5nZWBgXG5vYmplY3Qgd2lsbCBhbHdheXMgdGFrZSB0aGUgc2FtZSBhbW91bnQgb2YgbWVtb3J5LCBubyBtYXR0ZXIgdGhlIHNpemVcbm9mIHRoZSByYW5nZSBpdCByZXByZXNlbnRzLlxuXG5SYW5nZSBvYmplY3RzIGhhdmUgcmVsYXRpdmVseSBsaXR0bGUgYmVoYXZpb3I6IHRoZXkgc3VwcG9ydCBpbmRleGluZyxcbmNvbnRhaW5zLCBpdGVyYXRpb24sIHRoZSBgYGxlbigpYGAgZnVuY3Rpb24sIGFuZCB0aGUgZm9sbG93aW5nXG5tZXRob2RzOlxuXG5yYW5nZS5jb3VudCh4KVxuXG4gICBSZXR1cm4gdGhlIG51bWJlciBvZiAqaSpcJ3MgZm9yIHdoaWNoIGBgc1tpXSA9PSB4YGAuXG5cbiAgICAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxucmFuZ2UuaW5kZXgoeClcblxuICAgUmV0dXJuIHRoZSBzbWFsbGVzdCAqaSogc3VjaCB0aGF0IGBgc1tpXSA9PSB4YGAuICBSYWlzZXNcbiAgIGBgVmFsdWVFcnJvcmBgIHdoZW4gKngqIGlzIG5vdCBpbiB0aGUgcmFuZ2UuXG5cbiAgICAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuXG5NdXRhYmxlIFNlcXVlbmNlIFR5cGVzXG49PT09PT09PT09PT09PT09PT09PT09XG5cbkxpc3QgYW5kIGJ5dGVhcnJheSBvYmplY3RzIHN1cHBvcnQgYWRkaXRpb25hbCBvcGVyYXRpb25zIHRoYXQgYWxsb3dcbmluLXBsYWNlIG1vZGlmaWNhdGlvbiBvZiB0aGUgb2JqZWN0LiAgT3RoZXIgbXV0YWJsZSBzZXF1ZW5jZSB0eXBlc1xuKHdoZW4gYWRkZWQgdG8gdGhlIGxhbmd1YWdlKSBzaG91bGQgYWxzbyBzdXBwb3J0IHRoZXNlIG9wZXJhdGlvbnMuXG5TdHJpbmdzIGFuZCB0dXBsZXMgYXJlIGltbXV0YWJsZSBzZXF1ZW5jZSB0eXBlczogc3VjaCBvYmplY3RzIGNhbm5vdFxuYmUgbW9kaWZpZWQgb25jZSBjcmVhdGVkLiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgYXJlIGRlZmluZWQgb25cbm11dGFibGUgc2VxdWVuY2UgdHlwZXMgKHdoZXJlICp4KiBpcyBhbiBhcmJpdHJhcnkgb2JqZWN0KS5cblxuTm90ZSB0aGF0IHdoaWxlIGxpc3RzIGFsbG93IHRoZWlyIGl0ZW1zIHRvIGJlIG9mIGFueSB0eXBlLCBieXRlYXJyYXlcbm9iamVjdCAiaXRlbXMiIGFyZSBhbGwgaW50ZWdlcnMgaW4gdGhlIHJhbmdlIDAgPD0geCA8IDI1Ni5cblxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IE9wZXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICB8IFJlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTm90ZXMgICAgICAgICAgICAgICAgIHxcbis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09K1xufCBgYHNbaV0gPSB4YGAgICAgICAgICAgICAgICAgICAgfCBpdGVtICppKiBvZiAqcyogaXMgcmVwbGFjZWQgYnkgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICp4KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHNbaTpqXSA9IHRgYCAgICAgICAgICAgICAgICAgfCBzbGljZSBvZiAqcyogZnJvbSAqaSogdG8gKmoqIGlzICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlcGxhY2VkIGJ5IHRoZSBjb250ZW50cyBvZiB0aGUgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaXRlcmFibGUgKnQqICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgZGVsIHNbaTpqXWBgICAgICAgICAgICAgICAgICB8IHNhbWUgYXMgYGBzW2k6al0gPSBbXWBgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHNbaTpqOmtdID0gdGBgICAgICAgICAgICAgICAgfCB0aGUgZWxlbWVudHMgb2YgYGBzW2k6ajprXWBgIGFyZSB8ICgxKSAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlcGxhY2VkIGJ5IHRob3NlIG9mICp0KiAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYGRlbCBzW2k6ajprXWBgICAgICAgICAgICAgICAgfCByZW1vdmVzIHRoZSBlbGVtZW50cyBvZiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBgc1tpOmo6a11gYCBmcm9tIHRoZSBsaXN0ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuYXBwZW5kKHgpYGAgICAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgc1tsZW4ocyk6bGVuKHMpXSA9ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XWBgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuZXh0ZW5kKHgpYGAgICAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgc1tsZW4ocyk6bGVuKHMpXSA9IHhgYCB8ICgyKSAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLmNvdW50KHgpYGAgICAgICAgICAgICAgICAgIHwgcmV0dXJuIG51bWJlciBvZiAqaSpcJ3MgZm9yIHdoaWNoIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGBzW2ldID09IHhgYCAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5pbmRleCh4WywgaVssIGpdXSlgYCAgICAgICB8IHJldHVybiBzbWFsbGVzdCAqayogc3VjaCB0aGF0ICAgIHwgKDMpICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGBzW2tdID09IHhgYCBhbmQgYGBpIDw9IGsgPCBqYGAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5pbnNlcnQoaSwgeClgYCAgICAgICAgICAgICB8IHNhbWUgYXMgYGBzW2k6aV0gPSBbeF1gYCAgICAgICAgIHwgKDQpICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMucG9wKFtpXSlgYCAgICAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgeCA9IHNbaV07IGRlbCBzW2ldOyAgICB8ICg1KSAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJldHVybiB4YGAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMucmVtb3ZlKHgpYGAgICAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgZGVsIHNbcy5pbmRleCh4KV1gYCAgICB8ICgzKSAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLnJldmVyc2UoKWBgICAgICAgICAgICAgICAgIHwgcmV2ZXJzZXMgdGhlIGl0ZW1zIG9mICpzKiBpbiAgICAgfCAoNikgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLnNvcnQoW2tleVssIHJldmVyc2VdXSlgYCAgIHwgc29ydCB0aGUgaXRlbXMgb2YgKnMqIGluIHBsYWNlICAgfCAoNiksICg3KSwgKDgpICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG5cbk5vdGVzOlxuXG4xLiAqdCogbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgc2xpY2UgaXQgaXMgcmVwbGFjaW5nLlxuXG4yLiAqeCogY2FuIGJlIGFueSBpdGVyYWJsZSBvYmplY3QuXG5cbjMuIFJhaXNlcyBgYFZhbHVlRXJyb3JgYCB3aGVuICp4KiBpcyBub3QgZm91bmQgaW4gKnMqLiBXaGVuIGEgbmVnYXRpdmVcbiAgIGluZGV4IGlzIHBhc3NlZCBhcyB0aGUgc2Vjb25kIG9yIHRoaXJkIHBhcmFtZXRlciB0byB0aGUgYGBpbmRleCgpYGBcbiAgIG1ldGhvZCwgdGhlIHNlcXVlbmNlIGxlbmd0aCBpcyBhZGRlZCwgYXMgZm9yIHNsaWNlIGluZGljZXMuICBJZiBpdFxuICAgaXMgc3RpbGwgbmVnYXRpdmUsIGl0IGlzIHRydW5jYXRlZCB0byB6ZXJvLCBhcyBmb3Igc2xpY2UgaW5kaWNlcy5cblxuNC4gV2hlbiBhIG5lZ2F0aXZlIGluZGV4IGlzIHBhc3NlZCBhcyB0aGUgZmlyc3QgcGFyYW1ldGVyIHRvIHRoZVxuICAgYGBpbnNlcnQoKWBgIG1ldGhvZCwgdGhlIHNlcXVlbmNlIGxlbmd0aCBpcyBhZGRlZCwgYXMgZm9yIHNsaWNlXG4gICBpbmRpY2VzLiAgSWYgaXQgaXMgc3RpbGwgbmVnYXRpdmUsIGl0IGlzIHRydW5jYXRlZCB0byB6ZXJvLCBhcyBmb3JcbiAgIHNsaWNlIGluZGljZXMuXG5cbjUuIFRoZSBvcHRpb25hbCBhcmd1bWVudCAqaSogZGVmYXVsdHMgdG8gYGAtMWBgLCBzbyB0aGF0IGJ5IGRlZmF1bHRcbiAgIHRoZSBsYXN0IGl0ZW0gaXMgcmVtb3ZlZCBhbmQgcmV0dXJuZWQuXG5cbjYuIFRoZSBgYHNvcnQoKWBgIGFuZCBgYHJldmVyc2UoKWBgIG1ldGhvZHMgbW9kaWZ5IHRoZSBzZXF1ZW5jZSBpblxuICAgcGxhY2UgZm9yIGVjb25vbXkgb2Ygc3BhY2Ugd2hlbiBzb3J0aW5nIG9yIHJldmVyc2luZyBhIGxhcmdlXG4gICBzZXF1ZW5jZS4gIFRvIHJlbWluZCB5b3UgdGhhdCB0aGV5IG9wZXJhdGUgYnkgc2lkZSBlZmZlY3QsIHRoZXlcbiAgIGRvblwndCByZXR1cm4gdGhlIHNvcnRlZCBvciByZXZlcnNlZCBzZXF1ZW5jZS5cblxuNy4gVGhlIGBgc29ydCgpYGAgbWV0aG9kIHRha2VzIG9wdGlvbmFsIGFyZ3VtZW50cyBmb3IgY29udHJvbGxpbmcgdGhlXG4gICBjb21wYXJpc29ucy4gIEVhY2ggbXVzdCBiZSBzcGVjaWZpZWQgYXMgYSBrZXl3b3JkIGFyZ3VtZW50LlxuXG4gICAqa2V5KiBzcGVjaWZpZXMgYSBmdW5jdGlvbiBvZiBvbmUgYXJndW1lbnQgdGhhdCBpcyB1c2VkIHRvIGV4dHJhY3RcbiAgIGEgY29tcGFyaXNvbiBrZXkgZnJvbSBlYWNoIGxpc3QgZWxlbWVudDogYGBrZXk9c3RyLmxvd2VyYGAuICBUaGVcbiAgIGRlZmF1bHQgdmFsdWUgaXMgYGBOb25lYGAuIFVzZSBgYGZ1bmN0b29scy5jbXBfdG9fa2V5KClgYCB0b1xuICAgY29udmVydCBhbiBvbGQtc3R5bGUgKmNtcCogZnVuY3Rpb24gdG8gYSAqa2V5KiBmdW5jdGlvbi5cblxuICAgKnJldmVyc2UqIGlzIGEgYm9vbGVhbiB2YWx1ZS4gIElmIHNldCB0byBgYFRydWVgYCwgdGhlbiB0aGUgbGlzdFxuICAgZWxlbWVudHMgYXJlIHNvcnRlZCBhcyBpZiBlYWNoIGNvbXBhcmlzb24gd2VyZSByZXZlcnNlZC5cblxuICAgVGhlIGBgc29ydCgpYGAgbWV0aG9kIGlzIGd1YXJhbnRlZWQgdG8gYmUgc3RhYmxlLiAgQSBzb3J0IGlzIHN0YWJsZVxuICAgaWYgaXQgZ3VhcmFudGVlcyBub3QgdG8gY2hhbmdlIHRoZSByZWxhdGl2ZSBvcmRlciBvZiBlbGVtZW50cyB0aGF0XG4gICBjb21wYXJlIGVxdWFsIC0tLSB0aGlzIGlzIGhlbHBmdWwgZm9yIHNvcnRpbmcgaW4gbXVsdGlwbGUgcGFzc2VzXG4gICAoZm9yIGV4YW1wbGUsIHNvcnQgYnkgZGVwYXJ0bWVudCwgdGhlbiBieSBzYWxhcnkgZ3JhZGUpLlxuXG4gICAqKkNQeXRob24gaW1wbGVtZW50YXRpb24gZGV0YWlsOioqIFdoaWxlIGEgbGlzdCBpcyBiZWluZyBzb3J0ZWQsXG4gICB0aGUgZWZmZWN0IG9mIGF0dGVtcHRpbmcgdG8gbXV0YXRlLCBvciBldmVuIGluc3BlY3QsIHRoZSBsaXN0IGlzXG4gICB1bmRlZmluZWQuICBUaGUgQyBpbXBsZW1lbnRhdGlvbiBvZiBQeXRob24gbWFrZXMgdGhlIGxpc3QgYXBwZWFyXG4gICBlbXB0eSBmb3IgdGhlIGR1cmF0aW9uLCBhbmQgcmFpc2VzIGBgVmFsdWVFcnJvcmBgIGlmIGl0IGNhbiBkZXRlY3RcbiAgIHRoYXQgdGhlIGxpc3QgaGFzIGJlZW4gbXV0YXRlZCBkdXJpbmcgYSBzb3J0LlxuXG44LiBgYHNvcnQoKWBgIGlzIG5vdCBzdXBwb3J0ZWQgYnkgYGBieXRlYXJyYXlgYCBvYmplY3RzLlxuXG5cbkJ5dGVzIGFuZCBCeXRlIEFycmF5IE1ldGhvZHNcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuQnl0ZXMgYW5kIGJ5dGVhcnJheSBvYmplY3RzLCBiZWluZyAic3RyaW5ncyBvZiBieXRlcyIsIGhhdmUgYWxsXG5tZXRob2RzIGZvdW5kIG9uIHN0cmluZ3MsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBgYGVuY29kZSgpYGAsXG5gYGZvcm1hdCgpYGAgYW5kIGBgaXNpZGVudGlmaWVyKClgYCwgd2hpY2ggZG8gbm90IG1ha2Ugc2Vuc2Ugd2l0aFxudGhlc2UgdHlwZXMuICBGb3IgY29udmVydGluZyB0aGUgb2JqZWN0cyB0byBzdHJpbmdzLCB0aGV5IGhhdmUgYVxuYGBkZWNvZGUoKWBgIG1ldGhvZC5cblxuV2hlcmV2ZXIgb25lIG9mIHRoZXNlIG1ldGhvZHMgbmVlZHMgdG8gaW50ZXJwcmV0IHRoZSBieXRlcyBhc1xuY2hhcmFjdGVycyAoZS5nLiB0aGUgYGBpcy4uLigpYGAgbWV0aG9kcyksIHRoZSBBU0NJSSBjaGFyYWN0ZXIgc2V0IGlzXG5hc3N1bWVkLlxuXG5Ob3RlOiBUaGUgbWV0aG9kcyBvbiBieXRlcyBhbmQgYnl0ZWFycmF5IG9iamVjdHMgZG9uXCd0IGFjY2VwdCBzdHJpbmdzIGFzXG4gIHRoZWlyIGFyZ3VtZW50cywganVzdCBhcyB0aGUgbWV0aG9kcyBvbiBzdHJpbmdzIGRvblwndCBhY2NlcHQgYnl0ZXNcbiAgYXMgdGhlaXIgYXJndW1lbnRzLiAgRm9yIGV4YW1wbGUsIHlvdSBoYXZlIHRvIHdyaXRlXG5cbiAgICAgYSA9ICJhYmMiXG4gICAgIGIgPSBhLnJlcGxhY2UoImEiLCAiZiIpXG5cbiAgYW5kXG5cbiAgICAgYSA9IGIiYWJjIlxuICAgICBiID0gYS5yZXBsYWNlKGIiYSIsIGIiZiIpXG5cbmJ5dGVzLmRlY29kZShlbmNvZGluZz0idXRmLTgiLCBlcnJvcnM9InN0cmljdCIpXG5ieXRlYXJyYXkuZGVjb2RlKGVuY29kaW5nPSJ1dGYtOCIsIGVycm9ycz0ic3RyaWN0IilcblxuICAgUmV0dXJuIGEgc3RyaW5nIGRlY29kZWQgZnJvbSB0aGUgZ2l2ZW4gYnl0ZXMuICBEZWZhdWx0IGVuY29kaW5nIGlzXG4gICBgYFwndXRmLThcJ2BgLiAqZXJyb3JzKiBtYXkgYmUgZ2l2ZW4gdG8gc2V0IGEgZGlmZmVyZW50IGVycm9yXG4gICBoYW5kbGluZyBzY2hlbWUuICBUaGUgZGVmYXVsdCBmb3IgKmVycm9ycyogaXMgYGBcJ3N0cmljdFwnYGAsIG1lYW5pbmdcbiAgIHRoYXQgZW5jb2RpbmcgZXJyb3JzIHJhaXNlIGEgYGBVbmljb2RlRXJyb3JgYC4gIE90aGVyIHBvc3NpYmxlXG4gICB2YWx1ZXMgYXJlIGBgXCdpZ25vcmVcJ2BgLCBgYFwncmVwbGFjZVwnYGAgYW5kIGFueSBvdGhlciBuYW1lXG4gICByZWdpc3RlcmVkIHZpYSBgYGNvZGVjcy5yZWdpc3Rlcl9lcnJvcigpYGAsIHNlZSBzZWN0aW9uICpDb2RlYyBCYXNlXG4gICBDbGFzc2VzKi4gRm9yIGEgbGlzdCBvZiBwb3NzaWJsZSBlbmNvZGluZ3MsIHNlZSBzZWN0aW9uICpTdGFuZGFyZFxuICAgRW5jb2RpbmdzKi5cblxuICAgQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMTogQWRkZWQgc3VwcG9ydCBmb3Iga2V5d29yZCBhcmd1bWVudHMuXG5cblRoZSBieXRlcyBhbmQgYnl0ZWFycmF5IHR5cGVzIGhhdmUgYW4gYWRkaXRpb25hbCBjbGFzcyBtZXRob2Q6XG5cbmNsYXNzbWV0aG9kIGJ5dGVzLmZyb21oZXgoc3RyaW5nKVxuY2xhc3NtZXRob2QgYnl0ZWFycmF5LmZyb21oZXgoc3RyaW5nKVxuXG4gICBUaGlzIGBgYnl0ZXNgYCBjbGFzcyBtZXRob2QgcmV0dXJucyBhIGJ5dGVzIG9yIGJ5dGVhcnJheSBvYmplY3QsXG4gICBkZWNvZGluZyB0aGUgZ2l2ZW4gc3RyaW5nIG9iamVjdC4gIFRoZSBzdHJpbmcgbXVzdCBjb250YWluIHR3b1xuICAgaGV4YWRlY2ltYWwgZGlnaXRzIHBlciBieXRlLCBzcGFjZXMgYXJlIGlnbm9yZWQuXG5cbiAgID4+PiBieXRlcy5mcm9taGV4KFwnZjAgZjFmMiAgXCcpXG4gICBiXCdcXHhmMFxceGYxXFx4ZjJcJ1xuXG5UaGUgbWFrZXRyYW5zIGFuZCB0cmFuc2xhdGUgbWV0aG9kcyBkaWZmZXIgaW4gc2VtYW50aWNzIGZyb20gdGhlXG52ZXJzaW9ucyBhdmFpbGFibGUgb24gc3RyaW5nczpcblxuYnl0ZXMudHJhbnNsYXRlKHRhYmxlWywgZGVsZXRlXSlcbmJ5dGVhcnJheS50cmFuc2xhdGUodGFibGVbLCBkZWxldGVdKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBieXRlcyBvciBieXRlYXJyYXkgb2JqZWN0IHdoZXJlIGFsbCBieXRlc1xuICAgb2NjdXJyaW5nIGluIHRoZSBvcHRpb25hbCBhcmd1bWVudCAqZGVsZXRlKiBhcmUgcmVtb3ZlZCwgYW5kIHRoZVxuICAgcmVtYWluaW5nIGJ5dGVzIGhhdmUgYmVlbiBtYXBwZWQgdGhyb3VnaCB0aGUgZ2l2ZW4gdHJhbnNsYXRpb25cbiAgIHRhYmxlLCB3aGljaCBtdXN0IGJlIGEgYnl0ZXMgb2JqZWN0IG9mIGxlbmd0aCAyNTYuXG5cbiAgIFlvdSBjYW4gdXNlIHRoZSBgYGJ5dGVzLm1ha2V0cmFucygpYGAgbWV0aG9kIHRvIGNyZWF0ZSBhXG4gICB0cmFuc2xhdGlvbiB0YWJsZS5cblxuICAgU2V0IHRoZSAqdGFibGUqIGFyZ3VtZW50IHRvIGBgTm9uZWBgIGZvciB0cmFuc2xhdGlvbnMgdGhhdCBvbmx5XG4gICBkZWxldGUgY2hhcmFjdGVyczpcblxuICAgICAgPj4+IGJcJ3JlYWQgdGhpcyBzaG9ydCB0ZXh0XCcudHJhbnNsYXRlKE5vbmUsIGJcJ2FlaW91XCcpXG4gICAgICBiXCdyZCB0aHMgc2hydCB0eHRcJ1xuXG5zdGF0aWMgYnl0ZXMubWFrZXRyYW5zKGZyb20sIHRvKVxuc3RhdGljIGJ5dGVhcnJheS5tYWtldHJhbnMoZnJvbSwgdG8pXG5cbiAgIFRoaXMgc3RhdGljIG1ldGhvZCByZXR1cm5zIGEgdHJhbnNsYXRpb24gdGFibGUgdXNhYmxlIGZvclxuICAgYGBieXRlcy50cmFuc2xhdGUoKWBgIHRoYXQgd2lsbCBtYXAgZWFjaCBjaGFyYWN0ZXIgaW4gKmZyb20qIGludG9cbiAgIHRoZSBjaGFyYWN0ZXIgYXQgdGhlIHNhbWUgcG9zaXRpb24gaW4gKnRvKjsgKmZyb20qIGFuZCAqdG8qIG11c3QgYmVcbiAgIGJ5dGVzIG9iamVjdHMgYW5kIGhhdmUgdGhlIHNhbWUgbGVuZ3RoLlxuXG4gICBOZXcgaW4gdmVyc2lvbiAzLjEuXG4nLAotICd0eXBlc3NlcS1tdXRhYmxlJzogJ1xuTXV0YWJsZSBTZXF1ZW5jZSBUeXBlc1xuKioqKioqKioqKioqKioqKioqKioqKlxuXG5MaXN0IGFuZCBieXRlYXJyYXkgb2JqZWN0cyBzdXBwb3J0IGFkZGl0aW9uYWwgb3BlcmF0aW9ucyB0aGF0IGFsbG93XG5pbi1wbGFjZSBtb2RpZmljYXRpb24gb2YgdGhlIG9iamVjdC4gIE90aGVyIG11dGFibGUgc2VxdWVuY2UgdHlwZXNcbih3aGVuIGFkZGVkIHRvIHRoZSBsYW5ndWFnZSkgc2hvdWxkIGFsc28gc3VwcG9ydCB0aGVzZSBvcGVyYXRpb25zLlxuU3RyaW5ncyBhbmQgdHVwbGVzIGFyZSBpbW11dGFibGUgc2VxdWVuY2UgdHlwZXM6IHN1Y2ggb2JqZWN0cyBjYW5ub3RcbmJlIG1vZGlmaWVkIG9uY2UgY3JlYXRlZC4gVGhlIGZvbGxvd2luZyBvcGVyYXRpb25zIGFyZSBkZWZpbmVkIG9uXG5tdXRhYmxlIHNlcXVlbmNlIHR5cGVzICh3aGVyZSAqeCogaXMgYW4gYXJiaXRyYXJ5IG9iamVjdCkuXG5cbk5vdGUgdGhhdCB3aGlsZSBsaXN0cyBhbGxvdyB0aGVpciBpdGVtcyB0byBiZSBvZiBhbnkgdHlwZSwgYnl0ZWFycmF5XG5vYmplY3QgIml0ZW1zIiBhcmUgYWxsIGludGVnZXJzIGluIHRoZSByYW5nZSAwIDw9IHggPCAyNTYuXG5cbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBPcGVyYXRpb24gICAgICAgICAgICAgICAgICAgICAgfCBSZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vdGVzICAgICAgICAgICAgICAgICB8XG4rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PStcbnwgYGBzW2ldID0geGBgICAgICAgICAgICAgICAgICAgIHwgaXRlbSAqaSogb2YgKnMqIGlzIHJlcGxhY2VkIGJ5ICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAqeCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzW2k6al0gPSB0YGAgICAgICAgICAgICAgICAgIHwgc2xpY2Ugb2YgKnMqIGZyb20gKmkqIHRvICpqKiBpcyAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZXBsYWNlZCBieSB0aGUgY29udGVudHMgb2YgdGhlICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGl0ZXJhYmxlICp0KiAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYGRlbCBzW2k6al1gYCAgICAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgc1tpOmpdID0gW11gYCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzW2k6ajprXSA9IHRgYCAgICAgICAgICAgICAgIHwgdGhlIGVsZW1lbnRzIG9mIGBgc1tpOmo6a11gYCBhcmUgfCAoMSkgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZXBsYWNlZCBieSB0aG9zZSBvZiAqdCogICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBkZWwgc1tpOmo6a11gYCAgICAgICAgICAgICAgIHwgcmVtb3ZlcyB0aGUgZWxlbWVudHMgb2YgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgYHNbaTpqOmtdYGAgZnJvbSB0aGUgbGlzdCAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLmFwcGVuZCh4KWBgICAgICAgICAgICAgICAgIHwgc2FtZSBhcyBgYHNbbGVuKHMpOmxlbihzKV0gPSAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBbeF1gYCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLmV4dGVuZCh4KWBgICAgICAgICAgICAgICAgIHwgc2FtZSBhcyBgYHNbbGVuKHMpOmxlbihzKV0gPSB4YGAgfCAoMikgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5jb3VudCh4KWBgICAgICAgICAgICAgICAgICB8IHJldHVybiBudW1iZXIgb2YgKmkqXCdzIGZvciB3aGljaCB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBgc1tpXSA9PSB4YGAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuaW5kZXgoeFssIGlbLCBqXV0pYGAgICAgICAgfCByZXR1cm4gc21hbGxlc3QgKmsqIHN1Y2ggdGhhdCAgICB8ICgzKSAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBgc1trXSA9PSB4YGAgYW5kIGBgaSA8PSBrIDwgamBgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuaW5zZXJ0KGksIHgpYGAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgc1tpOmldID0gW3hdYGAgICAgICAgICB8ICg0KSAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLnBvcChbaV0pYGAgICAgICAgICAgICAgICAgIHwgc2FtZSBhcyBgYHggPSBzW2ldOyBkZWwgc1tpXTsgICAgfCAoNSkgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZXR1cm4geGBgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLnJlbW92ZSh4KWBgICAgICAgICAgICAgICAgIHwgc2FtZSBhcyBgYGRlbCBzW3MuaW5kZXgoeCldYGAgICAgfCAoMykgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5yZXZlcnNlKClgYCAgICAgICAgICAgICAgICB8IHJldmVyc2VzIHRoZSBpdGVtcyBvZiAqcyogaW4gICAgIHwgKDYpICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5zb3J0KFtrZXlbLCByZXZlcnNlXV0pYGAgICB8IHNvcnQgdGhlIGl0ZW1zIG9mICpzKiBpbiBwbGFjZSAgIHwgKDYpLCAoNyksICg4KSAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuXG5Ob3RlczpcblxuMS4gKnQqIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIHNsaWNlIGl0IGlzIHJlcGxhY2luZy5cblxuMi4gKngqIGNhbiBiZSBhbnkgaXRlcmFibGUgb2JqZWN0LlxuXG4zLiBSYWlzZXMgYGBWYWx1ZUVycm9yYGAgd2hlbiAqeCogaXMgbm90IGZvdW5kIGluICpzKi4gV2hlbiBhIG5lZ2F0aXZlXG4gICBpbmRleCBpcyBwYXNzZWQgYXMgdGhlIHNlY29uZCBvciB0aGlyZCBwYXJhbWV0ZXIgdG8gdGhlIGBgaW5kZXgoKWBgXG4gICBtZXRob2QsIHRoZSBzZXF1ZW5jZSBsZW5ndGggaXMgYWRkZWQsIGFzIGZvciBzbGljZSBpbmRpY2VzLiAgSWYgaXRcbiAgIGlzIHN0aWxsIG5lZ2F0aXZlLCBpdCBpcyB0cnVuY2F0ZWQgdG8gemVybywgYXMgZm9yIHNsaWNlIGluZGljZXMuXG5cbjQuIFdoZW4gYSBuZWdhdGl2ZSBpbmRleCBpcyBwYXNzZWQgYXMgdGhlIGZpcnN0IHBhcmFtZXRlciB0byB0aGVcbiAgIGBgaW5zZXJ0KClgYCBtZXRob2QsIHRoZSBzZXF1ZW5jZSBsZW5ndGggaXMgYWRkZWQsIGFzIGZvciBzbGljZVxuICAgaW5kaWNlcy4gIElmIGl0IGlzIHN0aWxsIG5lZ2F0aXZlLCBpdCBpcyB0cnVuY2F0ZWQgdG8gemVybywgYXMgZm9yXG4gICBzbGljZSBpbmRpY2VzLlxuXG41LiBUaGUgb3B0aW9uYWwgYXJndW1lbnQgKmkqIGRlZmF1bHRzIHRvIGBgLTFgYCwgc28gdGhhdCBieSBkZWZhdWx0XG4gICB0aGUgbGFzdCBpdGVtIGlzIHJlbW92ZWQgYW5kIHJldHVybmVkLlxuXG42LiBUaGUgYGBzb3J0KClgYCBhbmQgYGByZXZlcnNlKClgYCBtZXRob2RzIG1vZGlmeSB0aGUgc2VxdWVuY2UgaW5cbiAgIHBsYWNlIGZvciBlY29ub215IG9mIHNwYWNlIHdoZW4gc29ydGluZyBvciByZXZlcnNpbmcgYSBsYXJnZVxuICAgc2VxdWVuY2UuICBUbyByZW1pbmQgeW91IHRoYXQgdGhleSBvcGVyYXRlIGJ5IHNpZGUgZWZmZWN0LCB0aGV5XG4gICBkb25cJ3QgcmV0dXJuIHRoZSBzb3J0ZWQgb3IgcmV2ZXJzZWQgc2VxdWVuY2UuXG5cbjcuIFRoZSBgYHNvcnQoKWBgIG1ldGhvZCB0YWtlcyBvcHRpb25hbCBhcmd1bWVudHMgZm9yIGNvbnRyb2xsaW5nIHRoZVxuICAgY29tcGFyaXNvbnMuICBFYWNoIG11c3QgYmUgc3BlY2lmaWVkIGFzIGEga2V5d29yZCBhcmd1bWVudC5cblxuICAgKmtleSogc3BlY2lmaWVzIGEgZnVuY3Rpb24gb2Ygb25lIGFyZ3VtZW50IHRoYXQgaXMgdXNlZCB0byBleHRyYWN0XG4gICBhIGNvbXBhcmlzb24ga2V5IGZyb20gZWFjaCBsaXN0IGVsZW1lbnQ6IGBga2V5PXN0ci5sb3dlcmBgLiAgVGhlXG4gICBkZWZhdWx0IHZhbHVlIGlzIGBgTm9uZWBgLiBVc2UgYGBmdW5jdG9vbHMuY21wX3RvX2tleSgpYGAgdG9cbiAgIGNvbnZlcnQgYW4gb2xkLXN0eWxlICpjbXAqIGZ1bmN0aW9uIHRvIGEgKmtleSogZnVuY3Rpb24uXG5cbiAgICpyZXZlcnNlKiBpcyBhIGJvb2xlYW4gdmFsdWUuICBJZiBzZXQgdG8gYGBUcnVlYGAsIHRoZW4gdGhlIGxpc3RcbiAgIGVsZW1lbnRzIGFyZSBzb3J0ZWQgYXMgaWYgZWFjaCBjb21wYXJpc29uIHdlcmUgcmV2ZXJzZWQuXG5cbiAgIFRoZSBgYHNvcnQoKWBgIG1ldGhvZCBpcyBndWFyYW50ZWVkIHRvIGJlIHN0YWJsZS4gIEEgc29ydCBpcyBzdGFibGVcbiAgIGlmIGl0IGd1YXJhbnRlZXMgbm90IHRvIGNoYW5nZSB0aGUgcmVsYXRpdmUgb3JkZXIgb2YgZWxlbWVudHMgdGhhdFxuICAgY29tcGFyZSBlcXVhbCAtLS0gdGhpcyBpcyBoZWxwZnVsIGZvciBzb3J0aW5nIGluIG11bHRpcGxlIHBhc3Nlc1xuICAgKGZvciBleGFtcGxlLCBzb3J0IGJ5IGRlcGFydG1lbnQsIHRoZW4gYnkgc2FsYXJ5IGdyYWRlKS5cblxuICAgKipDUHl0aG9uIGltcGxlbWVudGF0aW9uIGRldGFpbDoqKiBXaGlsZSBhIGxpc3QgaXMgYmVpbmcgc29ydGVkLFxuICAgdGhlIGVmZmVjdCBvZiBhdHRlbXB0aW5nIHRvIG11dGF0ZSwgb3IgZXZlbiBpbnNwZWN0LCB0aGUgbGlzdCBpc1xuICAgdW5kZWZpbmVkLiAgVGhlIEMgaW1wbGVtZW50YXRpb24gb2YgUHl0aG9uIG1ha2VzIHRoZSBsaXN0IGFwcGVhclxuICAgZW1wdHkgZm9yIHRoZSBkdXJhdGlvbiwgYW5kIHJhaXNlcyBgYFZhbHVlRXJyb3JgYCBpZiBpdCBjYW4gZGV0ZWN0XG4gICB0aGF0IHRoZSBsaXN0IGhhcyBiZWVuIG11dGF0ZWQgZHVyaW5nIGEgc29ydC5cblxuOC4gYGBzb3J0KClgYCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGBgYnl0ZWFycmF5YGAgb2JqZWN0cy5cbicsCisgJ3R5cGVzc2VxJzogJ1xuU2VxdWVuY2UgVHlwZXMgLS0tIGBgc3RyYGAsIGBgYnl0ZXNgYCwgYGBieXRlYXJyYXlgYCwgYGBsaXN0YGAsIGBgdHVwbGVgYCwgYGByYW5nZWBgXG4qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblxuVGhlcmUgYXJlIHNpeCBzZXF1ZW5jZSB0eXBlczogc3RyaW5ncywgYnl0ZSBzZXF1ZW5jZXMgKGBgYnl0ZXNgYFxub2JqZWN0cyksIGJ5dGUgYXJyYXlzIChgYGJ5dGVhcnJheWBgIG9iamVjdHMpLCBsaXN0cywgdHVwbGVzLCBhbmRcbnJhbmdlIG9iamVjdHMuICBGb3Igb3RoZXIgY29udGFpbmVycyBzZWUgdGhlIGJ1aWx0IGluIGBgZGljdGBgIGFuZFxuYGBzZXRgYCBjbGFzc2VzLCBhbmQgdGhlIGBgY29sbGVjdGlvbnNgYCBtb2R1bGUuXG5cblN0cmluZ3MgY29udGFpbiBVbmljb2RlIGNoYXJhY3RlcnMuICBUaGVpciBsaXRlcmFscyBhcmUgd3JpdHRlbiBpblxuc2luZ2xlIG9yIGRvdWJsZSBxdW90ZXM6IGBgXCd4eXp6eVwnYGAsIGBgImZyb2JvenoiYGAuICBTZWUgKlN0cmluZyBhbmRcbkJ5dGVzIGxpdGVyYWxzKiBmb3IgbW9yZSBhYm91dCBzdHJpbmcgbGl0ZXJhbHMuICBJbiBhZGRpdGlvbiB0byB0aGVcbmZ1bmN0aW9uYWxpdHkgZGVzY3JpYmVkIGhlcmUsIHRoZXJlIGFyZSBhbHNvIHN0cmluZy1zcGVjaWZpYyBtZXRob2RzXG5kZXNjcmliZWQgaW4gdGhlICpTdHJpbmcgTWV0aG9kcyogc2VjdGlvbi5cblxuQnl0ZXMgYW5kIGJ5dGVhcnJheSBvYmplY3RzIGNvbnRhaW4gc2luZ2xlIGJ5dGVzIC0tIHRoZSBmb3JtZXIgaXNcbmltbXV0YWJsZSB3aGlsZSB0aGUgbGF0dGVyIGlzIGEgbXV0YWJsZSBzZXF1ZW5jZS4gQnl0ZXMgb2JqZWN0cyBjYW4gYmVcbmNvbnN0cnVjdGVkIGJ5IHVzaW5nIHRoZSBjb25zdHJ1Y3RvciwgYGBieXRlcygpYGAsIGFuZCBmcm9tIGxpdGVyYWxzO1xudXNlIGEgYGBiYGAgcHJlZml4IHdpdGggbm9ybWFsIHN0cmluZyBzeW50YXg6IGBgYlwneHl6enlcJ2BgLiAgVG9cbmNvbnN0cnVjdCBieXRlIGFycmF5cywgdXNlIHRoZSBgYGJ5dGVhcnJheSgpYGAgZnVuY3Rpb24uXG5cbldoaWxlIHN0cmluZyBvYmplY3RzIGFyZSBzZXF1ZW5jZXMgb2YgY2hhcmFjdGVycyAocmVwcmVzZW50ZWQgYnlcbnN0cmluZ3Mgb2YgbGVuZ3RoIDEpLCBieXRlcyBhbmQgYnl0ZWFycmF5IG9iamVjdHMgYXJlIHNlcXVlbmNlcyBvZlxuKmludGVnZXJzKiAoYmV0d2VlbiAwIGFuZCAyNTUpLCByZXByZXNlbnRpbmcgdGhlIEFTQ0lJIHZhbHVlIG9mIHNpbmdsZVxuYnl0ZXMuICBUaGF0IG1lYW5zIHRoYXQgZm9yIGEgYnl0ZXMgb3IgYnl0ZWFycmF5IG9iamVjdCAqYiosIGBgYlswXWBgXG53aWxsIGJlIGFuIGludGVnZXIsIHdoaWxlIGBgYlswOjFdYGAgd2lsbCBiZSBhIGJ5dGVzIG9yIGJ5dGVhcnJheVxub2JqZWN0IG9mIGxlbmd0aCAxLiAgVGhlIHJlcHJlc2VudGF0aW9uIG9mIGJ5dGVzIG9iamVjdHMgdXNlcyB0aGVcbmxpdGVyYWwgZm9ybWF0IChgYGJcJy4uLlwnYGApIHNpbmNlIGl0IGlzIGdlbmVyYWxseSBtb3JlIHVzZWZ1bCB0aGFuXG5lLmcuIGBgYnl0ZXMoWzUwLCAxOSwgMTAwXSlgYC4gIFlvdSBjYW4gYWx3YXlzIGNvbnZlcnQgYSBieXRlcyBvYmplY3RcbmludG8gYSBsaXN0IG9mIGludGVnZXJzIHVzaW5nIGBgbGlzdChiKWBgLlxuXG5BbHNvLCB3aGlsZSBpbiBwcmV2aW91cyBQeXRob24gdmVyc2lvbnMsIGJ5dGUgc3RyaW5ncyBhbmQgVW5pY29kZVxuc3RyaW5ncyBjb3VsZCBiZSBleGNoYW5nZWQgZm9yIGVhY2ggb3RoZXIgcmF0aGVyIGZyZWVseSAoYmFycmluZ1xuZW5jb2RpbmcgaXNzdWVzKSwgc3RyaW5ncyBhbmQgYnl0ZXMgYXJlIG5vdyBjb21wbGV0ZWx5IHNlcGFyYXRlXG5jb25jZXB0cy4gIFRoZXJlXCdzIG5vIGltcGxpY2l0IGVuLS9kZWNvZGluZyBpZiB5b3UgcGFzcyBhbiBvYmplY3Qgb2ZcbnRoZSB3cm9uZyB0eXBlLiAgQSBzdHJpbmcgYWx3YXlzIGNvbXBhcmVzIHVuZXF1YWwgdG8gYSBieXRlcyBvclxuYnl0ZWFycmF5IG9iamVjdC5cblxuTGlzdHMgYXJlIGNvbnN0cnVjdGVkIHdpdGggc3F1YXJlIGJyYWNrZXRzLCBzZXBhcmF0aW5nIGl0ZW1zIHdpdGhcbmNvbW1hczogYGBbYSwgYiwgY11gYC4gIFR1cGxlcyBhcmUgY29uc3RydWN0ZWQgYnkgdGhlIGNvbW1hIG9wZXJhdG9yXG4obm90IHdpdGhpbiBzcXVhcmUgYnJhY2tldHMpLCB3aXRoIG9yIHdpdGhvdXQgZW5jbG9zaW5nIHBhcmVudGhlc2VzLFxuYnV0IGFuIGVtcHR5IHR1cGxlIG11c3QgaGF2ZSB0aGUgZW5jbG9zaW5nIHBhcmVudGhlc2VzLCBzdWNoIGFzIGBgYSxcbmIsIGNgYCBvciBgYCgpYGAuICBBIHNpbmdsZSBpdGVtIHR1cGxlIG11c3QgaGF2ZSBhIHRyYWlsaW5nIGNvbW1hLFxuc3VjaCBhcyBgYChkLClgYC5cblxuT2JqZWN0cyBvZiB0eXBlIHJhbmdlIGFyZSBjcmVhdGVkIHVzaW5nIHRoZSBgYHJhbmdlKClgYCBmdW5jdGlvbi5cblRoZXkgZG9uXCd0IHN1cHBvcnQgY29uY2F0ZW5hdGlvbiBvciByZXBldGl0aW9uLCBhbmQgdXNpbmcgYGBtaW4oKWBgIG9yXG5gYG1heCgpYGAgb24gdGhlbSBpcyBpbmVmZmljaWVudC5cblxuTW9zdCBzZXF1ZW5jZSB0eXBlcyBzdXBwb3J0IHRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucy4gIFRoZSBgYGluYGAgYW5kXG5gYG5vdCBpbmBgIG9wZXJhdGlvbnMgaGF2ZSB0aGUgc2FtZSBwcmlvcml0aWVzIGFzIHRoZSBjb21wYXJpc29uXG5vcGVyYXRpb25zLiAgVGhlIGBgK2BgIGFuZCBgYCpgYCBvcGVyYXRpb25zIGhhdmUgdGhlIHNhbWUgcHJpb3JpdHkgYXNcbnRoZSBjb3JyZXNwb25kaW5nIG51bWVyaWMgb3BlcmF0aW9ucy4gWzNdIEFkZGl0aW9uYWwgbWV0aG9kcyBhcmVcbnByb3ZpZGVkIGZvciAqTXV0YWJsZSBTZXF1ZW5jZSBUeXBlcyouXG5cblRoaXMgdGFibGUgbGlzdHMgdGhlIHNlcXVlbmNlIG9wZXJhdGlvbnMgc29ydGVkIGluIGFzY2VuZGluZyBwcmlvcml0eVxuKG9wZXJhdGlvbnMgaW4gdGhlIHNhbWUgYm94IGhhdmUgdGhlIHNhbWUgcHJpb3JpdHkpLiAgSW4gdGhlIHRhYmxlLFxuKnMqIGFuZCAqdCogYXJlIHNlcXVlbmNlcyBvZiB0aGUgc2FtZSB0eXBlOyAqbiosICppKiwgKmoqIGFuZCAqayogYXJlXG5pbnRlZ2Vycy5cblxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBPcGVyYXRpb24gICAgICAgICAgfCBSZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vdGVzICAgICAgfFxuKz09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09K1xufCBgYHggaW4gc2BgICAgICAgICAgfCBgYFRydWVgYCBpZiBhbiBpdGVtIG9mICpzKiBpcyAgICB8ICgxKSAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBlcXVhbCB0byAqeCosIGVsc2UgYGBGYWxzZWBgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHggbm90IGluIHNgYCAgICAgfCBgYEZhbHNlYGAgaWYgYW4gaXRlbSBvZiAqcyogaXMgICB8ICgxKSAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBlcXVhbCB0byAqeCosIGVsc2UgYGBUcnVlYGAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHMgKyB0YGAgICAgICAgICAgfCB0aGUgY29uY2F0ZW5hdGlvbiBvZiAqcyogYW5kICp0KiB8ICg2KSAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHMgKiBuLCBuICogc2BgICAgfCAqbiogc2hhbGxvdyBjb3BpZXMgb2YgKnMqICAgICAgICB8ICgyKSAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCBjb25jYXRlbmF0ZWQgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHNbaV1gYCAgICAgICAgICAgfCAqaSp0aCBpdGVtIG9mICpzKiwgb3JpZ2luIDAgICAgICB8ICgzKSAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHNbaTpqXWBgICAgICAgICAgfCBzbGljZSBvZiAqcyogZnJvbSAqaSogdG8gKmoqICAgICB8ICgzKSg0KSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHNbaTpqOmtdYGAgICAgICAgfCBzbGljZSBvZiAqcyogZnJvbSAqaSogdG8gKmoqICAgICB8ICgzKSg1KSAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCB3aXRoIHN0ZXAgKmsqICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYGxlbihzKWBgICAgICAgICAgfCBsZW5ndGggb2YgKnMqICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYG1pbihzKWBgICAgICAgICAgfCBzbWFsbGVzdCBpdGVtIG9mICpzKiAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYG1heChzKWBgICAgICAgICAgfCBsYXJnZXN0IGl0ZW0gb2YgKnMqICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHMuaW5kZXgoaSlgYCAgICAgfCBpbmRleCBvZiB0aGUgZmlyc3Qgb2NjdXJlbmNlIG9mICB8ICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCAqaSogaW4gKnMqICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xufCBgYHMuY291bnQoaSlgYCAgICAgfCB0b3RhbCBudW1iZXIgb2Ygb2NjdXJlbmNlcyBvZiAgICB8ICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgfCAqaSogaW4gKnMqICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tK1xuXG5TZXF1ZW5jZSB0eXBlcyBhbHNvIHN1cHBvcnQgY29tcGFyaXNvbnMuICBJbiBwYXJ0aWN1bGFyLCB0dXBsZXMgYW5kXG5saXN0cyBhcmUgY29tcGFyZWQgbGV4aWNvZ3JhcGhpY2FsbHkgYnkgY29tcGFyaW5nIGNvcnJlc3BvbmRpbmdcbmVsZW1lbnRzLiAgVGhpcyBtZWFucyB0aGF0IHRvIGNvbXBhcmUgZXF1YWwsIGV2ZXJ5IGVsZW1lbnQgbXVzdFxuY29tcGFyZSBlcXVhbCBhbmQgdGhlIHR3byBzZXF1ZW5jZXMgbXVzdCBiZSBvZiB0aGUgc2FtZSB0eXBlIGFuZCBoYXZlXG50aGUgc2FtZSBsZW5ndGguICAoRm9yIGZ1bGwgZGV0YWlscyBzZWUgKkNvbXBhcmlzb25zKiBpbiB0aGUgbGFuZ3VhZ2VcbnJlZmVyZW5jZS4pXG5cbk5vdGVzOlxuXG4xLiBXaGVuICpzKiBpcyBhIHN0cmluZyBvYmplY3QsIHRoZSBgYGluYGAgYW5kIGBgbm90IGluYGAgb3BlcmF0aW9uc1xuICAgYWN0IGxpa2UgYSBzdWJzdHJpbmcgdGVzdC5cblxuMi4gVmFsdWVzIG9mICpuKiBsZXNzIHRoYW4gYGAwYGAgYXJlIHRyZWF0ZWQgYXMgYGAwYGAgKHdoaWNoIHlpZWxkcyBhblxuICAgZW1wdHkgc2VxdWVuY2Ugb2YgdGhlIHNhbWUgdHlwZSBhcyAqcyopLiAgTm90ZSBhbHNvIHRoYXQgdGhlIGNvcGllc1xuICAgYXJlIHNoYWxsb3c7IG5lc3RlZCBzdHJ1Y3R1cmVzIGFyZSBub3QgY29waWVkLiAgVGhpcyBvZnRlbiBoYXVudHNcbiAgIG5ldyBQeXRob24gcHJvZ3JhbW1lcnM7IGNvbnNpZGVyOlxuXG4gICA+Pj4gbGlzdHMgPSBbW11dICogM1xuICAgPj4+IGxpc3RzXG4gICBbW10sIFtdLCBbXV1cbiAgID4+PiBsaXN0c1swXS5hcHBlbmQoMylcbiAgID4+PiBsaXN0c1xuICAgW1szXSwgWzNdLCBbM11dXG5cbiAgIFdoYXQgaGFzIGhhcHBlbmVkIGlzIHRoYXQgYGBbW11dYGAgaXMgYSBvbmUtZWxlbWVudCBsaXN0IGNvbnRhaW5pbmdcbiAgIGFuIGVtcHR5IGxpc3QsIHNvIGFsbCB0aHJlZSBlbGVtZW50cyBvZiBgYFtbXV0gKiAzYGAgYXJlIChwb2ludGVyc1xuICAgdG8pIHRoaXMgc2luZ2xlIGVtcHR5IGxpc3QuICBNb2RpZnlpbmcgYW55IG9mIHRoZSBlbGVtZW50cyBvZlxuICAgYGBsaXN0c2BgIG1vZGlmaWVzIHRoaXMgc2luZ2xlIGxpc3QuIFlvdSBjYW4gY3JlYXRlIGEgbGlzdCBvZlxuICAgZGlmZmVyZW50IGxpc3RzIHRoaXMgd2F5OlxuXG4gICA+Pj4gbGlzdHMgPSBbW10gZm9yIGkgaW4gcmFuZ2UoMyldXG4gICA+Pj4gbGlzdHNbMF0uYXBwZW5kKDMpXG4gICA+Pj4gbGlzdHNbMV0uYXBwZW5kKDUpXG4gICA+Pj4gbGlzdHNbMl0uYXBwZW5kKDcpXG4gICA+Pj4gbGlzdHNcbiAgIFtbM10sIFs1XSwgWzddXVxuXG4zLiBJZiAqaSogb3IgKmoqIGlzIG5lZ2F0aXZlLCB0aGUgaW5kZXggaXMgcmVsYXRpdmUgdG8gdGhlIGVuZCBvZiB0aGVcbiAgIHN0cmluZzogYGBsZW4ocykgKyBpYGAgb3IgYGBsZW4ocykgKyBqYGAgaXMgc3Vic3RpdHV0ZWQuICBCdXQgbm90ZVxuICAgdGhhdCBgYC0wYGAgaXMgc3RpbGwgYGAwYGAuXG5cbjQuIFRoZSBzbGljZSBvZiAqcyogZnJvbSAqaSogdG8gKmoqIGlzIGRlZmluZWQgYXMgdGhlIHNlcXVlbmNlIG9mXG4gICBpdGVtcyB3aXRoIGluZGV4ICprKiBzdWNoIHRoYXQgYGBpIDw9IGsgPCBqYGAuICBJZiAqaSogb3IgKmoqIGlzXG4gICBncmVhdGVyIHRoYW4gYGBsZW4ocylgYCwgdXNlIGBgbGVuKHMpYGAuICBJZiAqaSogaXMgb21pdHRlZCBvclxuICAgYGBOb25lYGAsIHVzZSBgYDBgYC4gIElmICpqKiBpcyBvbWl0dGVkIG9yIGBgTm9uZWBgLCB1c2VcbiAgIGBgbGVuKHMpYGAuICBJZiAqaSogaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICpqKiwgdGhlIHNsaWNlIGlzXG4gICBlbXB0eS5cblxuNS4gVGhlIHNsaWNlIG9mICpzKiBmcm9tICppKiB0byAqaiogd2l0aCBzdGVwICprKiBpcyBkZWZpbmVkIGFzIHRoZVxuICAgc2VxdWVuY2Ugb2YgaXRlbXMgd2l0aCBpbmRleCAgYGB4ID0gaSArIG4qa2BgIHN1Y2ggdGhhdCBgYDAgPD0gbiA8XG4gICAoai1pKS9rYGAuICBJbiBvdGhlciB3b3JkcywgdGhlIGluZGljZXMgYXJlIGBgaWBgLCBgYGkra2BgLFxuICAgYGBpKzIqa2BgLCBgYGkrMyprYGAgYW5kIHNvIG9uLCBzdG9wcGluZyB3aGVuICpqKiBpcyByZWFjaGVkIChidXRcbiAgIG5ldmVyIGluY2x1ZGluZyAqaiopLiAgSWYgKmkqIG9yICpqKiBpcyBncmVhdGVyIHRoYW4gYGBsZW4ocylgYCxcbiAgIHVzZSBgYGxlbihzKWBgLiAgSWYgKmkqIG9yICpqKiBhcmUgb21pdHRlZCBvciBgYE5vbmVgYCwgdGhleSBiZWNvbWVcbiAgICJlbmQiIHZhbHVlcyAod2hpY2ggZW5kIGRlcGVuZHMgb24gdGhlIHNpZ24gb2YgKmsqKS4gIE5vdGUsICprKlxuICAgY2Fubm90IGJlIHplcm8uIElmICprKiBpcyBgYE5vbmVgYCwgaXQgaXMgdHJlYXRlZCBsaWtlIGBgMWBgLlxuXG42LiBDb25jYXRlbmF0aW5nIGltbXV0YWJsZSBzdHJpbmdzIGFsd2F5cyByZXN1bHRzIGluIGEgbmV3IG9iamVjdC5cbiAgIFRoaXMgbWVhbnMgdGhhdCBidWlsZGluZyB1cCBhIHN0cmluZyBieSByZXBlYXRlZCBjb25jYXRlbmF0aW9uIHdpbGxcbiAgIGhhdmUgYSBxdWFkcmF0aWMgcnVudGltZSBjb3N0IGluIHRoZSB0b3RhbCBzdHJpbmcgbGVuZ3RoLiAgVG8gZ2V0IGFcbiAgIGxpbmVhciBydW50aW1lIGNvc3QsIHlvdSBtdXN0IHN3aXRjaCB0byBvbmUgb2YgdGhlIGFsdGVybmF0aXZlc1xuICAgYmVsb3c6XG5cbiAgICogaWYgY29uY2F0ZW5hdGluZyBgYHN0cmBgIG9iamVjdHMsIHlvdSBjYW4gYnVpbGQgYSBsaXN0IGFuZCB1c2VcbiAgICAgYGBzdHIuam9pbigpYGAgYXQgdGhlIGVuZDtcblxuICAgKiBpZiBjb25jYXRlbmF0aW5nIGBgYnl0ZXNgYCBvYmplY3RzLCB5b3UgY2FuIHNpbWlsYXJseSB1c2VcbiAgICAgYGBieXRlcy5qb2luKClgYCwgb3IgeW91IGNhbiBkbyBpbi1wbGFjZSBjb25jYXRlbmF0aW9uIHdpdGggYVxuICAgICBgYGJ5dGVhcnJheWBgIG9iamVjdC4gIGBgYnl0ZWFycmF5YGAgb2JqZWN0cyBhcmUgbXV0YWJsZSBhbmQgaGF2ZVxuICAgICBhbiBlZmZpY2llbnQgb3ZlcmFsbG9jYXRpb24gbWVjaGFuaXNtLlxuXG5cblN0cmluZyBNZXRob2RzXG49PT09PT09PT09PT09PVxuXG5TdHJpbmcgb2JqZWN0cyBzdXBwb3J0IHRoZSBtZXRob2RzIGxpc3RlZCBiZWxvdy5cblxuSW4gYWRkaXRpb24sIFB5dGhvblwncyBzdHJpbmdzIHN1cHBvcnQgdGhlIHNlcXVlbmNlIHR5cGUgbWV0aG9kc1xuZGVzY3JpYmVkIGluIHRoZSAqU2VxdWVuY2UgVHlwZXMgLS0tIHN0ciwgYnl0ZXMsIGJ5dGVhcnJheSwgbGlzdCxcbnR1cGxlLCByYW5nZSogc2VjdGlvbi4gVG8gb3V0cHV0IGZvcm1hdHRlZCBzdHJpbmdzLCBzZWUgdGhlICpTdHJpbmdcbkZvcm1hdHRpbmcqIHNlY3Rpb24uIEFsc28sIHNlZSB0aGUgYGByZWBgIG1vZHVsZSBmb3Igc3RyaW5nIGZ1bmN0aW9uc1xuYmFzZWQgb24gcmVndWxhciBleHByZXNzaW9ucy5cblxuc3RyLmNhcGl0YWxpemUoKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCBpdHMgZmlyc3QgY2hhcmFjdGVyIGNhcGl0YWxpemVkXG4gICBhbmQgdGhlIHJlc3QgbG93ZXJjYXNlZC5cblxuc3RyLmNhc2Vmb2xkKClcblxuICAgUmV0dXJuIGEgY2FzZWZvbGRlZCBjb3B5IG9mIHRoZSBzdHJpbmcuIENhc2Vmb2xkZWQgc3RyaW5ncyBtYXkgYmVcbiAgIHVzZWQgZm9yIGNhc2VsZXNzIG1hdGNoaW5nLlxuXG4gICBDYXNlZm9sZGluZyBpcyBzaW1pbGFyIHRvIGxvd2VyY2FzaW5nIGJ1dCBtb3JlIGFnZ3Jlc3NpdmUgYmVjYXVzZVxuICAgaXQgaXMgaW50ZW5kZWQgdG8gcmVtb3ZlIGFsbCBjYXNlIGRpc3RpbmN0aW9ucyBpbiBhIHN0cmluZy4gRm9yXG4gICBleGFtcGxlLCB0aGUgR2VybWFuIGxvd2VyY2FzZSBsZXR0ZXIgYGBcJ1x4YzNceDlmXCdgYCBpcyBlcXVpdmFsZW50IHRvXG4gICBgYCJzcyJgYC4gU2luY2UgaXQgaXMgYWxyZWFkeSBsb3dlcmNhc2UsIGBgbG93ZXIoKWBgIHdvdWxkIGRvXG4gICBub3RoaW5nIHRvIGBgXCdceGMzXHg5ZlwnYGA7IGBgY2FzZWZvbGQoKWBgIGNvbnZlcnRzIGl0IHRvIGBgInNzImBgLlxuXG4gICBUaGUgY2FzZWZvbGRpbmcgYWxnb3JpdGhtIGlzIGRlc2NyaWJlZCBpbiBzZWN0aW9uIDMuMTMgb2YgdGhlXG4gICBVbmljb2RlIFN0YW5kYXJkLlxuXG4gICBOZXcgaW4gdmVyc2lvbiAzLjMuXG5cbnN0ci5jZW50ZXIod2lkdGhbLCBmaWxsY2hhcl0pXG5cbiAgIFJldHVybiBjZW50ZXJlZCBpbiBhIHN0cmluZyBvZiBsZW5ndGggKndpZHRoKi4gUGFkZGluZyBpcyBkb25lXG4gICB1c2luZyB0aGUgc3BlY2lmaWVkICpmaWxsY2hhciogKGRlZmF1bHQgaXMgYSBzcGFjZSkuXG5cbnN0ci5jb3VudChzdWJbLCBzdGFydFssIGVuZF1dKVxuXG4gICBSZXR1cm4gdGhlIG51bWJlciBvZiBub24tb3ZlcmxhcHBpbmcgb2NjdXJyZW5jZXMgb2Ygc3Vic3RyaW5nICpzdWIqXG4gICBpbiB0aGUgcmFuZ2UgWypzdGFydCosICplbmQqXS4gIE9wdGlvbmFsIGFyZ3VtZW50cyAqc3RhcnQqIGFuZFxuICAgKmVuZCogYXJlIGludGVycHJldGVkIGFzIGluIHNsaWNlIG5vdGF0aW9uLlxuXG5zdHIuZW5jb2RlKGVuY29kaW5nPSJ1dGYtOCIsIGVycm9ycz0ic3RyaWN0IilcblxuICAgUmV0dXJuIGFuIGVuY29kZWQgdmVyc2lvbiBvZiB0aGUgc3RyaW5nIGFzIGEgYnl0ZXMgb2JqZWN0LiBEZWZhdWx0XG4gICBlbmNvZGluZyBpcyBgYFwndXRmLThcJ2BgLiAqZXJyb3JzKiBtYXkgYmUgZ2l2ZW4gdG8gc2V0IGEgZGlmZmVyZW50XG4gICBlcnJvciBoYW5kbGluZyBzY2hlbWUuIFRoZSBkZWZhdWx0IGZvciAqZXJyb3JzKiBpcyBgYFwnc3RyaWN0XCdgYCxcbiAgIG1lYW5pbmcgdGhhdCBlbmNvZGluZyBlcnJvcnMgcmFpc2UgYSBgYFVuaWNvZGVFcnJvcmBgLiBPdGhlclxuICAgcG9zc2libGUgdmFsdWVzIGFyZSBgYFwnaWdub3JlXCdgYCwgYGBcJ3JlcGxhY2VcJ2BgLFxuICAgYGBcJ3htbGNoYXJyZWZyZXBsYWNlXCdgYCwgYGBcJ2JhY2tzbGFzaHJlcGxhY2VcJ2BgIGFuZCBhbnkgb3RoZXIgbmFtZVxuICAgcmVnaXN0ZXJlZCB2aWEgYGBjb2RlY3MucmVnaXN0ZXJfZXJyb3IoKWBgLCBzZWUgc2VjdGlvbiAqQ29kZWMgQmFzZVxuICAgQ2xhc3NlcyouIEZvciBhIGxpc3Qgb2YgcG9zc2libGUgZW5jb2RpbmdzLCBzZWUgc2VjdGlvbiAqU3RhbmRhcmRcbiAgIEVuY29kaW5ncyouXG5cbiAgIENoYW5nZWQgaW4gdmVyc2lvbiAzLjE6IFN1cHBvcnQgZm9yIGtleXdvcmQgYXJndW1lbnRzIGFkZGVkLlxuXG5zdHIuZW5kc3dpdGgoc3VmZml4Wywgc3RhcnRbLCBlbmRdXSlcblxuICAgUmV0dXJuIGBgVHJ1ZWBgIGlmIHRoZSBzdHJpbmcgZW5kcyB3aXRoIHRoZSBzcGVjaWZpZWQgKnN1ZmZpeCosXG4gICBvdGhlcndpc2UgcmV0dXJuIGBgRmFsc2VgYC4gICpzdWZmaXgqIGNhbiBhbHNvIGJlIGEgdHVwbGUgb2ZcbiAgIHN1ZmZpeGVzIHRvIGxvb2sgZm9yLiAgV2l0aCBvcHRpb25hbCAqc3RhcnQqLCB0ZXN0IGJlZ2lubmluZyBhdFxuICAgdGhhdCBwb3NpdGlvbi4gIFdpdGggb3B0aW9uYWwgKmVuZCosIHN0b3AgY29tcGFyaW5nIGF0IHRoYXRcbiAgIHBvc2l0aW9uLlxuXG5zdHIuZXhwYW5kdGFicyhbdGFic2l6ZV0pXG5cbiAgIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyB3aGVyZSBhbGwgdGFiIGNoYXJhY3RlcnMgYXJlIHJlcGxhY2VkXG4gICBieSB6ZXJvIG9yIG1vcmUgc3BhY2VzLCBkZXBlbmRpbmcgb24gdGhlIGN1cnJlbnQgY29sdW1uIGFuZCB0aGVcbiAgIGdpdmVuIHRhYiBzaXplLiAgVGhlIGNvbHVtbiBudW1iZXIgaXMgcmVzZXQgdG8gemVybyBhZnRlciBlYWNoXG4gICBuZXdsaW5lIG9jY3VycmluZyBpbiB0aGUgc3RyaW5nLiBJZiAqdGFic2l6ZSogaXMgbm90IGdpdmVuLCBhIHRhYlxuICAgc2l6ZSBvZiBgYDhgYCBjaGFyYWN0ZXJzIGlzIGFzc3VtZWQuICBUaGlzIGRvZXNuXCd0IHVuZGVyc3RhbmQgb3RoZXJcbiAgIG5vbi1wcmludGluZyBjaGFyYWN0ZXJzIG9yIGVzY2FwZSBzZXF1ZW5jZXMuXG5cbnN0ci5maW5kKHN1YlssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIFJldHVybiB0aGUgbG93ZXN0IGluZGV4IGluIHRoZSBzdHJpbmcgd2hlcmUgc3Vic3RyaW5nICpzdWIqIGlzXG4gICBmb3VuZCwgc3VjaCB0aGF0ICpzdWIqIGlzIGNvbnRhaW5lZCBpbiB0aGUgc2xpY2UgYGBzW3N0YXJ0OmVuZF1gYC5cbiAgIE9wdGlvbmFsIGFyZ3VtZW50cyAqc3RhcnQqIGFuZCAqZW5kKiBhcmUgaW50ZXJwcmV0ZWQgYXMgaW4gc2xpY2VcbiAgIG5vdGF0aW9uLiAgUmV0dXJuIGBgLTFgYCBpZiAqc3ViKiBpcyBub3QgZm91bmQuXG5cbiAgIE5vdGU6IFRoZSBgYGZpbmQoKWBgIG1ldGhvZCBzaG91bGQgYmUgdXNlZCBvbmx5IGlmIHlvdSBuZWVkIHRvIGtub3cgdGhlXG4gICAgIHBvc2l0aW9uIG9mICpzdWIqLiAgVG8gY2hlY2sgaWYgKnN1YiogaXMgYSBzdWJzdHJpbmcgb3Igbm90LCB1c2VcbiAgICAgdGhlIGBgaW5gYCBvcGVyYXRvcjpcblxuICAgICAgICA+Pj4gXCdQeVwnIGluIFwnUHl0aG9uXCdcbiAgICAgICAgVHJ1ZVxuXG5zdHIuZm9ybWF0KCphcmdzLCAqKmt3YXJncylcblxuICAgUGVyZm9ybSBhIHN0cmluZyBmb3JtYXR0aW5nIG9wZXJhdGlvbi4gIFRoZSBzdHJpbmcgb24gd2hpY2ggdGhpc1xuICAgbWV0aG9kIGlzIGNhbGxlZCBjYW4gY29udGFpbiBsaXRlcmFsIHRleHQgb3IgcmVwbGFjZW1lbnQgZmllbGRzXG4gICBkZWxpbWl0ZWQgYnkgYnJhY2VzIGBge31gYC4gIEVhY2ggcmVwbGFjZW1lbnQgZmllbGQgY29udGFpbnMgZWl0aGVyXG4gICB0aGUgbnVtZXJpYyBpbmRleCBvZiBhIHBvc2l0aW9uYWwgYXJndW1lbnQsIG9yIHRoZSBuYW1lIG9mIGFcbiAgIGtleXdvcmQgYXJndW1lbnQuICBSZXR1cm5zIGEgY29weSBvZiB0aGUgc3RyaW5nIHdoZXJlIGVhY2hcbiAgIHJlcGxhY2VtZW50IGZpZWxkIGlzIHJlcGxhY2VkIHdpdGggdGhlIHN0cmluZyB2YWx1ZSBvZiB0aGVcbiAgIGNvcnJlc3BvbmRpbmcgYXJndW1lbnQuXG5cbiAgID4+PiAiVGhlIHN1bSBvZiAxICsgMiBpcyB7MH0iLmZvcm1hdCgxKzIpXG4gICBcJ1RoZSBzdW0gb2YgMSArIDIgaXMgM1wnXG5cbiAgIFNlZSAqRm9ybWF0IFN0cmluZyBTeW50YXgqIGZvciBhIGRlc2NyaXB0aW9uIG9mIHRoZSB2YXJpb3VzXG4gICBmb3JtYXR0aW5nIG9wdGlvbnMgdGhhdCBjYW4gYmUgc3BlY2lmaWVkIGluIGZvcm1hdCBzdHJpbmdzLlxuXG5zdHIuZm9ybWF0X21hcChtYXBwaW5nKVxuXG4gICBTaW1pbGFyIHRvIGBgc3RyLmZvcm1hdCgqKm1hcHBpbmcpYGAsIGV4Y2VwdCB0aGF0IGBgbWFwcGluZ2BgIGlzXG4gICB1c2VkIGRpcmVjdGx5IGFuZCBub3QgY29waWVkIHRvIGEgYGBkaWN0YGAgLiAgVGhpcyBpcyB1c2VmdWwgaWYgZm9yXG4gICBleGFtcGxlIGBgbWFwcGluZ2BgIGlzIGEgZGljdCBzdWJjbGFzczpcblxuICAgPj4+IGNsYXNzIERlZmF1bHQoZGljdCk6XG4gICAuLi4gICAgIGRlZiBfX21pc3NpbmdfXyhzZWxmLCBrZXkpOlxuICAgLi4uICAgICAgICAgcmV0dXJuIGtleVxuICAgLi4uXG4gICA+Pj4gXCd7bmFtZX0gd2FzIGJvcm4gaW4ge2NvdW50cnl9XCcuZm9ybWF0X21hcChEZWZhdWx0KG5hbWU9XCdHdWlkb1wnKSlcbiAgIFwnR3VpZG8gd2FzIGJvcm4gaW4gY291bnRyeVwnXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuc3RyLmluZGV4KHN1YlssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIExpa2UgYGBmaW5kKClgYCwgYnV0IHJhaXNlIGBgVmFsdWVFcnJvcmBgIHdoZW4gdGhlIHN1YnN0cmluZyBpcyBub3RcbiAgIGZvdW5kLlxuXG5zdHIuaXNhbG51bSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcgYXJlIGFscGhhbnVtZXJpYyBhbmRcbiAgIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIsIGZhbHNlIG90aGVyd2lzZS4gIEEgY2hhcmFjdGVyXG4gICBgYGNgYCBpcyBhbHBoYW51bWVyaWMgaWYgb25lIG9mIHRoZSBmb2xsb3dpbmcgcmV0dXJucyBgYFRydWVgYDpcbiAgIGBgYy5pc2FscGhhKClgYCwgYGBjLmlzZGVjaW1hbCgpYGAsIGBgYy5pc2RpZ2l0KClgYCwgb3JcbiAgIGBgYy5pc251bWVyaWMoKWBgLlxuXG5zdHIuaXNhbHBoYSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjaGFyYWN0ZXJzIGluIHRoZSBzdHJpbmcgYXJlIGFscGhhYmV0aWMgYW5kXG4gICB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuICBBbHBoYWJldGljXG4gICBjaGFyYWN0ZXJzIGFyZSB0aG9zZSBjaGFyYWN0ZXJzIGRlZmluZWQgaW4gdGhlIFVuaWNvZGUgY2hhcmFjdGVyXG4gICBkYXRhYmFzZSBhcyAiTGV0dGVyIiwgaS5lLiwgdGhvc2Ugd2l0aCBnZW5lcmFsIGNhdGVnb3J5IHByb3BlcnR5XG4gICBiZWluZyBvbmUgb2YgIkxtIiwgIkx0IiwgIkx1IiwgIkxsIiwgb3IgIkxvIi4gIE5vdGUgdGhhdCB0aGlzIGlzXG4gICBkaWZmZXJlbnQgZnJvbSB0aGUgIkFscGhhYmV0aWMiIHByb3BlcnR5IGRlZmluZWQgaW4gdGhlIFVuaWNvZGVcbiAgIFN0YW5kYXJkLlxuXG5zdHIuaXNkZWNpbWFsKClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZyBhcmUgZGVjaW1hbCBjaGFyYWN0ZXJzXG4gICBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiBEZWNpbWFsXG4gICBjaGFyYWN0ZXJzIGFyZSB0aG9zZSBmcm9tIGdlbmVyYWwgY2F0ZWdvcnkgIk5kIi4gVGhpcyBjYXRlZ29yeVxuICAgaW5jbHVkZXMgZGlnaXQgY2hhcmFjdGVycywgYW5kIGFsbCBjaGFyYWN0ZXJzIHRoYXQgY2FuIGJlIHVzZWQgdG9cbiAgIGZvcm0gZGVjaW1hbC1yYWRpeCBudW1iZXJzLCBlLmcuIFUrMDY2MCwgQVJBQklDLUlORElDIERJR0lUIFpFUk8uXG5cbnN0ci5pc2RpZ2l0KClcblxuICAgUmV0dXJuIHRydWUgaWYgYWxsIGNoYXJhY3RlcnMgaW4gdGhlIHN0cmluZyBhcmUgZGlnaXRzIGFuZCB0aGVyZSBpc1xuICAgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiAgRGlnaXRzIGluY2x1ZGUgZGVjaW1hbFxuICAgY2hhcmFjdGVycyBhbmQgZGlnaXRzIHRoYXQgbmVlZCBzcGVjaWFsIGhhbmRsaW5nLCBzdWNoIGFzIHRoZVxuICAgY29tcGF0aWJpbGl0eSBzdXBlcnNjcmlwdCBkaWdpdHMuICBGb3JtYWxseSwgYSBkaWdpdCBpcyBhIGNoYXJhY3RlclxuICAgdGhhdCBoYXMgdGhlIHByb3BlcnR5IHZhbHVlIE51bWVyaWNfVHlwZT1EaWdpdCBvclxuICAgTnVtZXJpY19UeXBlPURlY2ltYWwuXG5cbnN0ci5pc2lkZW50aWZpZXIoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgaWRlbnRpZmllciBhY2NvcmRpbmcgdG8gdGhlXG4gICBsYW5ndWFnZSBkZWZpbml0aW9uLCBzZWN0aW9uICpJZGVudGlmaWVycyBhbmQga2V5d29yZHMqLlxuXG5zdHIuaXNsb3dlcigpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjYXNlZCBjaGFyYWN0ZXJzIFs0XSBpbiB0aGUgc3RyaW5nIGFyZSBsb3dlcmNhc2VcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2FzZWQgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuXG5cbnN0ci5pc251bWVyaWMoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIGFyZSBudW1lcmljIGNoYXJhY3RlcnMsXG4gICBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiBOdW1lcmljXG4gICBjaGFyYWN0ZXJzIGluY2x1ZGUgZGlnaXQgY2hhcmFjdGVycywgYW5kIGFsbCBjaGFyYWN0ZXJzIHRoYXQgaGF2ZVxuICAgdGhlIFVuaWNvZGUgbnVtZXJpYyB2YWx1ZSBwcm9wZXJ0eSwgZS5nLiBVKzIxNTUsIFZVTEdBUiBGUkFDVElPTlxuICAgT05FIEZJRlRILiAgRm9ybWFsbHksIG51bWVyaWMgY2hhcmFjdGVycyBhcmUgdGhvc2Ugd2l0aCB0aGVcbiAgIHByb3BlcnR5IHZhbHVlIE51bWVyaWNfVHlwZT1EaWdpdCwgTnVtZXJpY19UeXBlPURlY2ltYWwgb3JcbiAgIE51bWVyaWNfVHlwZT1OdW1lcmljLlxuXG5zdHIuaXNwcmludGFibGUoKVxuXG4gICBSZXR1cm4gdHJ1ZSBpZiBhbGwgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nIGFyZSBwcmludGFibGUgb3IgdGhlXG4gICBzdHJpbmcgaXMgZW1wdHksIGZhbHNlIG90aGVyd2lzZS4gIE5vbnByaW50YWJsZSBjaGFyYWN0ZXJzIGFyZVxuICAgdGhvc2UgY2hhcmFjdGVycyBkZWZpbmVkIGluIHRoZSBVbmljb2RlIGNoYXJhY3RlciBkYXRhYmFzZSBhc1xuICAgIk90aGVyIiBvciAiU2VwYXJhdG9yIiwgZXhjZXB0aW5nIHRoZSBBU0NJSSBzcGFjZSAoMHgyMCkgd2hpY2ggaXNcbiAgIGNvbnNpZGVyZWQgcHJpbnRhYmxlLiAgKE5vdGUgdGhhdCBwcmludGFibGUgY2hhcmFjdGVycyBpbiB0aGlzXG4gICBjb250ZXh0IGFyZSB0aG9zZSB3aGljaCBzaG91bGQgbm90IGJlIGVzY2FwZWQgd2hlbiBgYHJlcHIoKWBgIGlzXG4gICBpbnZva2VkIG9uIGEgc3RyaW5nLiAgSXQgaGFzIG5vIGJlYXJpbmcgb24gdGhlIGhhbmRsaW5nIG9mIHN0cmluZ3NcbiAgIHdyaXR0ZW4gdG8gYGBzeXMuc3Rkb3V0YGAgb3IgYGBzeXMuc3RkZXJyYGAuKVxuXG5zdHIuaXNzcGFjZSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIHRoZXJlIGFyZSBvbmx5IHdoaXRlc3BhY2UgY2hhcmFjdGVycyBpbiB0aGUgc3RyaW5nXG4gICBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciwgZmFsc2Ugb3RoZXJ3aXNlLiAgV2hpdGVzcGFjZVxuICAgY2hhcmFjdGVycyAgYXJlIHRob3NlIGNoYXJhY3RlcnMgZGVmaW5lZCBpbiB0aGUgVW5pY29kZSBjaGFyYWN0ZXJcbiAgIGRhdGFiYXNlIGFzICJPdGhlciIgb3IgIlNlcGFyYXRvciIgYW5kIHRob3NlIHdpdGggYmlkaXJlY3Rpb25hbFxuICAgcHJvcGVydHkgYmVpbmcgb25lIG9mICJXUyIsICJCIiwgb3IgIlMiLlxuXG5zdHIuaXN0aXRsZSgpXG5cbiAgIFJldHVybiB0cnVlIGlmIHRoZSBzdHJpbmcgaXMgYSB0aXRsZWNhc2VkIHN0cmluZyBhbmQgdGhlcmUgaXMgYXRcbiAgIGxlYXN0IG9uZSBjaGFyYWN0ZXIsIGZvciBleGFtcGxlIHVwcGVyY2FzZSBjaGFyYWN0ZXJzIG1heSBvbmx5XG4gICBmb2xsb3cgdW5jYXNlZCBjaGFyYWN0ZXJzIGFuZCBsb3dlcmNhc2UgY2hhcmFjdGVycyBvbmx5IGNhc2VkIG9uZXMuXG4gICBSZXR1cm4gZmFsc2Ugb3RoZXJ3aXNlLlxuXG5zdHIuaXN1cHBlcigpXG5cbiAgIFJldHVybiB0cnVlIGlmIGFsbCBjYXNlZCBjaGFyYWN0ZXJzIFs0XSBpbiB0aGUgc3RyaW5nIGFyZSB1cHBlcmNhc2VcbiAgIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2FzZWQgY2hhcmFjdGVyLCBmYWxzZSBvdGhlcndpc2UuXG5cbnN0ci5qb2luKGl0ZXJhYmxlKVxuXG4gICBSZXR1cm4gYSBzdHJpbmcgd2hpY2ggaXMgdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZ3MgaW4gdGhlXG4gICAqaXRlcmFibGUqICppdGVyYWJsZSouICBBIGBgVHlwZUVycm9yYGAgd2lsbCBiZSByYWlzZWQgaWYgdGhlcmUgYXJlXG4gICBhbnkgbm9uLXN0cmluZyB2YWx1ZXMgaW4gKml0ZXJhYmxlKiwgaW5jbHVkaW5nIGBgYnl0ZXNgYCBvYmplY3RzLlxuICAgVGhlIHNlcGFyYXRvciBiZXR3ZWVuIGVsZW1lbnRzIGlzIHRoZSBzdHJpbmcgcHJvdmlkaW5nIHRoaXMgbWV0aG9kLlxuXG5zdHIubGp1c3Qod2lkdGhbLCBmaWxsY2hhcl0pXG5cbiAgIFJldHVybiB0aGUgc3RyaW5nIGxlZnQganVzdGlmaWVkIGluIGEgc3RyaW5nIG9mIGxlbmd0aCAqd2lkdGgqLlxuICAgUGFkZGluZyBpcyBkb25lIHVzaW5nIHRoZSBzcGVjaWZpZWQgKmZpbGxjaGFyKiAoZGVmYXVsdCBpcyBhXG4gICBzcGFjZSkuICBUaGUgb3JpZ2luYWwgc3RyaW5nIGlzIHJldHVybmVkIGlmICp3aWR0aCogaXMgbGVzcyB0aGFuIG9yXG4gICBlcXVhbCB0byBgYGxlbihzKWBgLlxuXG5zdHIubG93ZXIoKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCBhbGwgdGhlIGNhc2VkIGNoYXJhY3RlcnMgWzRdXG4gICBjb252ZXJ0ZWQgdG8gbG93ZXJjYXNlLlxuXG4gICBUaGUgbG93ZXJjYXNpbmcgYWxnb3JpdGhtIHVzZWQgaXMgZGVzY3JpYmVkIGluIHNlY3Rpb24gMy4xMyBvZiB0aGVcbiAgIFVuaWNvZGUgU3RhbmRhcmQuXG5cbnN0ci5sc3RyaXAoW2NoYXJzXSlcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggbGVhZGluZyBjaGFyYWN0ZXJzIHJlbW92ZWQuICBUaGVcbiAgICpjaGFycyogYXJndW1lbnQgaXMgYSBzdHJpbmcgc3BlY2lmeWluZyB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgdG8gYmVcbiAgIHJlbW92ZWQuICBJZiBvbWl0dGVkIG9yIGBgTm9uZWBgLCB0aGUgKmNoYXJzKiBhcmd1bWVudCBkZWZhdWx0cyB0b1xuICAgcmVtb3Zpbmcgd2hpdGVzcGFjZS4gIFRoZSAqY2hhcnMqIGFyZ3VtZW50IGlzIG5vdCBhIHByZWZpeDsgcmF0aGVyLFxuICAgYWxsIGNvbWJpbmF0aW9ucyBvZiBpdHMgdmFsdWVzIGFyZSBzdHJpcHBlZDpcblxuICAgPj4+IFwnICAgc3BhY2lvdXMgICBcJy5sc3RyaXAoKVxuICAgXCdzcGFjaW91cyAgIFwnXG4gICA+Pj4gXCd3d3cuZXhhbXBsZS5jb21cJy5sc3RyaXAoXCdjbW93ei5cJylcbiAgIFwnZXhhbXBsZS5jb21cJ1xuXG5zdGF0aWMgc3RyLm1ha2V0cmFucyh4WywgeVssIHpdXSlcblxuICAgVGhpcyBzdGF0aWMgbWV0aG9kIHJldHVybnMgYSB0cmFuc2xhdGlvbiB0YWJsZSB1c2FibGUgZm9yXG4gICBgYHN0ci50cmFuc2xhdGUoKWBgLlxuXG4gICBJZiB0aGVyZSBpcyBvbmx5IG9uZSBhcmd1bWVudCwgaXQgbXVzdCBiZSBhIGRpY3Rpb25hcnkgbWFwcGluZ1xuICAgVW5pY29kZSBvcmRpbmFscyAoaW50ZWdlcnMpIG9yIGNoYXJhY3RlcnMgKHN0cmluZ3Mgb2YgbGVuZ3RoIDEpIHRvXG4gICBVbmljb2RlIG9yZGluYWxzLCBzdHJpbmdzIChvZiBhcmJpdHJhcnkgbGVuZ3Rocykgb3IgTm9uZS5cbiAgIENoYXJhY3RlciBrZXlzIHdpbGwgdGhlbiBiZSBjb252ZXJ0ZWQgdG8gb3JkaW5hbHMuXG5cbiAgIElmIHRoZXJlIGFyZSB0d28gYXJndW1lbnRzLCB0aGV5IG11c3QgYmUgc3RyaW5ncyBvZiBlcXVhbCBsZW5ndGgsXG4gICBhbmQgaW4gdGhlIHJlc3VsdGluZyBkaWN0aW9uYXJ5LCBlYWNoIGNoYXJhY3RlciBpbiB4IHdpbGwgYmUgbWFwcGVkXG4gICB0byB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluIHkuICBJZiB0aGVyZSBpcyBhIHRoaXJkXG4gICBhcmd1bWVudCwgaXQgbXVzdCBiZSBhIHN0cmluZywgd2hvc2UgY2hhcmFjdGVycyB3aWxsIGJlIG1hcHBlZCB0b1xuICAgTm9uZSBpbiB0aGUgcmVzdWx0LlxuXG5zdHIucGFydGl0aW9uKHNlcClcblxuICAgU3BsaXQgdGhlIHN0cmluZyBhdCB0aGUgZmlyc3Qgb2NjdXJyZW5jZSBvZiAqc2VwKiwgYW5kIHJldHVybiBhXG4gICAzLXR1cGxlIGNvbnRhaW5pbmcgdGhlIHBhcnQgYmVmb3JlIHRoZSBzZXBhcmF0b3IsIHRoZSBzZXBhcmF0b3JcbiAgIGl0c2VsZiwgYW5kIHRoZSBwYXJ0IGFmdGVyIHRoZSBzZXBhcmF0b3IuICBJZiB0aGUgc2VwYXJhdG9yIGlzIG5vdFxuICAgZm91bmQsIHJldHVybiBhIDMtdHVwbGUgY29udGFpbmluZyB0aGUgc3RyaW5nIGl0c2VsZiwgZm9sbG93ZWQgYnlcbiAgIHR3byBlbXB0eSBzdHJpbmdzLlxuXG5zdHIucmVwbGFjZShvbGQsIG5ld1ssIGNvdW50XSlcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggYWxsIG9jY3VycmVuY2VzIG9mIHN1YnN0cmluZyAqb2xkKlxuICAgcmVwbGFjZWQgYnkgKm5ldyouICBJZiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgKmNvdW50KiBpcyBnaXZlbiwgb25seVxuICAgdGhlIGZpcnN0ICpjb3VudCogb2NjdXJyZW5jZXMgYXJlIHJlcGxhY2VkLlxuXG5zdHIucmZpbmQoc3ViWywgc3RhcnRbLCBlbmRdXSlcblxuICAgUmV0dXJuIHRoZSBoaWdoZXN0IGluZGV4IGluIHRoZSBzdHJpbmcgd2hlcmUgc3Vic3RyaW5nICpzdWIqIGlzXG4gICBmb3VuZCwgc3VjaCB0aGF0ICpzdWIqIGlzIGNvbnRhaW5lZCB3aXRoaW4gYGBzW3N0YXJ0OmVuZF1gYC5cbiAgIE9wdGlvbmFsIGFyZ3VtZW50cyAqc3RhcnQqIGFuZCAqZW5kKiBhcmUgaW50ZXJwcmV0ZWQgYXMgaW4gc2xpY2VcbiAgIG5vdGF0aW9uLiAgUmV0dXJuIGBgLTFgYCBvbiBmYWlsdXJlLlxuXG5zdHIucmluZGV4KHN1YlssIHN0YXJ0WywgZW5kXV0pXG5cbiAgIExpa2UgYGByZmluZCgpYGAgYnV0IHJhaXNlcyBgYFZhbHVlRXJyb3JgYCB3aGVuIHRoZSBzdWJzdHJpbmcgKnN1YipcbiAgIGlzIG5vdCBmb3VuZC5cblxuc3RyLnJqdXN0KHdpZHRoWywgZmlsbGNoYXJdKVxuXG4gICBSZXR1cm4gdGhlIHN0cmluZyByaWdodCBqdXN0aWZpZWQgaW4gYSBzdHJpbmcgb2YgbGVuZ3RoICp3aWR0aCouXG4gICBQYWRkaW5nIGlzIGRvbmUgdXNpbmcgdGhlIHNwZWNpZmllZCAqZmlsbGNoYXIqIChkZWZhdWx0IGlzIGFcbiAgIHNwYWNlKS4gVGhlIG9yaWdpbmFsIHN0cmluZyBpcyByZXR1cm5lZCBpZiAqd2lkdGgqIGlzIGxlc3MgdGhhbiBvclxuICAgZXF1YWwgdG8gYGBsZW4ocylgYC5cblxuc3RyLnJwYXJ0aXRpb24oc2VwKVxuXG4gICBTcGxpdCB0aGUgc3RyaW5nIGF0IHRoZSBsYXN0IG9jY3VycmVuY2Ugb2YgKnNlcCosIGFuZCByZXR1cm4gYVxuICAgMy10dXBsZSBjb250YWluaW5nIHRoZSBwYXJ0IGJlZm9yZSB0aGUgc2VwYXJhdG9yLCB0aGUgc2VwYXJhdG9yXG4gICBpdHNlbGYsIGFuZCB0aGUgcGFydCBhZnRlciB0aGUgc2VwYXJhdG9yLiAgSWYgdGhlIHNlcGFyYXRvciBpcyBub3RcbiAgIGZvdW5kLCByZXR1cm4gYSAzLXR1cGxlIGNvbnRhaW5pbmcgdHdvIGVtcHR5IHN0cmluZ3MsIGZvbGxvd2VkIGJ5XG4gICB0aGUgc3RyaW5nIGl0c2VsZi5cblxuc3RyLnJzcGxpdChzZXA9Tm9uZSwgbWF4c3BsaXQ9LTEpXG5cbiAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIHdvcmRzIGluIHRoZSBzdHJpbmcsIHVzaW5nICpzZXAqIGFzIHRoZVxuICAgZGVsaW1pdGVyIHN0cmluZy4gSWYgKm1heHNwbGl0KiBpcyBnaXZlbiwgYXQgbW9zdCAqbWF4c3BsaXQqIHNwbGl0c1xuICAgYXJlIGRvbmUsIHRoZSAqcmlnaHRtb3N0KiBvbmVzLiAgSWYgKnNlcCogaXMgbm90IHNwZWNpZmllZCBvclxuICAgYGBOb25lYGAsIGFueSB3aGl0ZXNwYWNlIHN0cmluZyBpcyBhIHNlcGFyYXRvci4gIEV4Y2VwdCBmb3JcbiAgIHNwbGl0dGluZyBmcm9tIHRoZSByaWdodCwgYGByc3BsaXQoKWBgIGJlaGF2ZXMgbGlrZSBgYHNwbGl0KClgYFxuICAgd2hpY2ggaXMgZGVzY3JpYmVkIGluIGRldGFpbCBiZWxvdy5cblxuc3RyLnJzdHJpcChbY2hhcnNdKVxuXG4gICBSZXR1cm4gYSBjb3B5IG9mIHRoZSBzdHJpbmcgd2l0aCB0cmFpbGluZyBjaGFyYWN0ZXJzIHJlbW92ZWQuICBUaGVcbiAgICpjaGFycyogYXJndW1lbnQgaXMgYSBzdHJpbmcgc3BlY2lmeWluZyB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgdG8gYmVcbiAgIHJlbW92ZWQuICBJZiBvbWl0dGVkIG9yIGBgTm9uZWBgLCB0aGUgKmNoYXJzKiBhcmd1bWVudCBkZWZhdWx0cyB0b1xuICAgcmVtb3Zpbmcgd2hpdGVzcGFjZS4gIFRoZSAqY2hhcnMqIGFyZ3VtZW50IGlzIG5vdCBhIHN1ZmZpeDsgcmF0aGVyLFxuICAgYWxsIGNvbWJpbmF0aW9ucyBvZiBpdHMgdmFsdWVzIGFyZSBzdHJpcHBlZDpcblxuICAgPj4+IFwnICAgc3BhY2lvdXMgICBcJy5yc3RyaXAoKVxuICAgXCcgICBzcGFjaW91c1wnXG4gICA+Pj4gXCdtaXNzaXNzaXBwaVwnLnJzdHJpcChcJ2lwelwnKVxuICAgXCdtaXNzaXNzXCdcblxuc3RyLnNwbGl0KHNlcD1Ob25lLCBtYXhzcGxpdD0tMSlcblxuICAgUmV0dXJuIGEgbGlzdCBvZiB0aGUgd29yZHMgaW4gdGhlIHN0cmluZywgdXNpbmcgKnNlcCogYXMgdGhlXG4gICBkZWxpbWl0ZXIgc3RyaW5nLiAgSWYgKm1heHNwbGl0KiBpcyBnaXZlbiwgYXQgbW9zdCAqbWF4c3BsaXQqXG4gICBzcGxpdHMgYXJlIGRvbmUgKHRodXMsIHRoZSBsaXN0IHdpbGwgaGF2ZSBhdCBtb3N0IGBgbWF4c3BsaXQrMWBgXG4gICBlbGVtZW50cykuICBJZiAqbWF4c3BsaXQqIGlzIG5vdCBzcGVjaWZpZWQgb3IgYGAtMWBgLCB0aGVuIHRoZXJlIGlzXG4gICBubyBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHNwbGl0cyAoYWxsIHBvc3NpYmxlIHNwbGl0cyBhcmUgbWFkZSkuXG5cbiAgIElmICpzZXAqIGlzIGdpdmVuLCBjb25zZWN1dGl2ZSBkZWxpbWl0ZXJzIGFyZSBub3QgZ3JvdXBlZCB0b2dldGhlclxuICAgYW5kIGFyZSBkZWVtZWQgdG8gZGVsaW1pdCBlbXB0eSBzdHJpbmdzIChmb3IgZXhhbXBsZSxcbiAgIGBgXCcxLCwyXCcuc3BsaXQoXCcsXCcpYGAgcmV0dXJucyBgYFtcJzFcJywgXCdcJywgXCcyXCddYGApLiAgVGhlICpzZXAqXG4gICBhcmd1bWVudCBtYXkgY29uc2lzdCBvZiBtdWx0aXBsZSBjaGFyYWN0ZXJzIChmb3IgZXhhbXBsZSxcbiAgIGBgXCcxPD4yPD4zXCcuc3BsaXQoXCc8PlwnKWBgIHJldHVybnMgYGBbXCcxXCcsIFwnMlwnLCBcJzNcJ11gYCkuIFNwbGl0dGluZ1xuICAgYW4gZW1wdHkgc3RyaW5nIHdpdGggYSBzcGVjaWZpZWQgc2VwYXJhdG9yIHJldHVybnMgYGBbXCdcJ11gYC5cblxuICAgSWYgKnNlcCogaXMgbm90IHNwZWNpZmllZCBvciBpcyBgYE5vbmVgYCwgYSBkaWZmZXJlbnQgc3BsaXR0aW5nXG4gICBhbGdvcml0aG0gaXMgYXBwbGllZDogcnVucyBvZiBjb25zZWN1dGl2ZSB3aGl0ZXNwYWNlIGFyZSByZWdhcmRlZFxuICAgYXMgYSBzaW5nbGUgc2VwYXJhdG9yLCBhbmQgdGhlIHJlc3VsdCB3aWxsIGNvbnRhaW4gbm8gZW1wdHkgc3RyaW5nc1xuICAgYXQgdGhlIHN0YXJ0IG9yIGVuZCBpZiB0aGUgc3RyaW5nIGhhcyBsZWFkaW5nIG9yIHRyYWlsaW5nXG4gICB3aGl0ZXNwYWNlLiAgQ29uc2VxdWVudGx5LCBzcGxpdHRpbmcgYW4gZW1wdHkgc3RyaW5nIG9yIGEgc3RyaW5nXG4gICBjb25zaXN0aW5nIG9mIGp1c3Qgd2hpdGVzcGFjZSB3aXRoIGEgYGBOb25lYGAgc2VwYXJhdG9yIHJldHVybnNcbiAgIGBgW11gYC5cblxuICAgRm9yIGV4YW1wbGUsIGBgXCcgMSAgMiAgIDMgIFwnLnNwbGl0KClgYCByZXR1cm5zIGBgW1wnMVwnLCBcJzJcJywgXCczXCddYGAsXG4gICBhbmQgYGBcJyAgMSAgMiAgIDMgIFwnLnNwbGl0KE5vbmUsIDEpYGAgcmV0dXJucyBgYFtcJzFcJywgXCcyICAgMyAgXCddYGAuXG5cbnN0ci5zcGxpdGxpbmVzKFtrZWVwZW5kc10pXG5cbiAgIFJldHVybiBhIGxpc3Qgb2YgdGhlIGxpbmVzIGluIHRoZSBzdHJpbmcsIGJyZWFraW5nIGF0IGxpbmVcbiAgIGJvdW5kYXJpZXMuICBMaW5lIGJyZWFrcyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSByZXN1bHRpbmcgbGlzdFxuICAgdW5sZXNzICprZWVwZW5kcyogaXMgZ2l2ZW4gYW5kIHRydWUuIFRoaXMgbWV0aG9kIHVzZXMgdGhlIHVuaXZlcnNhbFxuICAgbmV3bGluZXMgYXBwcm9hY2ggdG8gc3BsaXR0aW5nIGxpbmVzLiBVbmxpa2UgYGBzcGxpdCgpYGAsIGlmIHRoZVxuICAgc3RyaW5nIGVuZHMgd2l0aCBsaW5lIGJvdW5kYXJ5IGNoYXJhY3RlcnMgdGhlIHJldHVybmVkIGxpc3QgZG9lc1xuICAgYGBub3RgYCBoYXZlIGFuIGVtcHR5IGxhc3QgZWxlbWVudC5cblxuICAgRm9yIGV4YW1wbGUsIGBgXCdhYiBjXFxuXFxuZGUgZmdcXHJrbFxcclxcblwnLnNwbGl0bGluZXMoKWBgIHJldHVybnNcbiAgIGBgW1wnYWIgY1wnLCBcJ1wnLCBcJ2RlIGZnXCcsIFwna2xcJ11gYCwgd2hpbGUgdGhlIHNhbWUgY2FsbCB3aXRoXG4gICBgYHNwbGl0bGluZXMoVHJ1ZSlgYCByZXR1cm5zIGBgW1wnYWIgY1xcblwnLCBcJ1xcbiwgXCdkZSBmZ1xcclwnLFxuICAgXCdrbFxcclxcblwnXWBgLlxuXG5zdHIuc3RhcnRzd2l0aChwcmVmaXhbLCBzdGFydFssIGVuZF1dKVxuXG4gICBSZXR1cm4gYGBUcnVlYGAgaWYgc3RyaW5nIHN0YXJ0cyB3aXRoIHRoZSAqcHJlZml4Kiwgb3RoZXJ3aXNlXG4gICByZXR1cm4gYGBGYWxzZWBgLiAqcHJlZml4KiBjYW4gYWxzbyBiZSBhIHR1cGxlIG9mIHByZWZpeGVzIHRvIGxvb2tcbiAgIGZvci4gIFdpdGggb3B0aW9uYWwgKnN0YXJ0KiwgdGVzdCBzdHJpbmcgYmVnaW5uaW5nIGF0IHRoYXRcbiAgIHBvc2l0aW9uLiAgV2l0aCBvcHRpb25hbCAqZW5kKiwgc3RvcCBjb21wYXJpbmcgc3RyaW5nIGF0IHRoYXRcbiAgIHBvc2l0aW9uLlxuXG5zdHIuc3RyaXAoW2NoYXJzXSlcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggdGhlIGxlYWRpbmcgYW5kIHRyYWlsaW5nXG4gICBjaGFyYWN0ZXJzIHJlbW92ZWQuIFRoZSAqY2hhcnMqIGFyZ3VtZW50IGlzIGEgc3RyaW5nIHNwZWNpZnlpbmcgdGhlXG4gICBzZXQgb2YgY2hhcmFjdGVycyB0byBiZSByZW1vdmVkLiBJZiBvbWl0dGVkIG9yIGBgTm9uZWBgLCB0aGVcbiAgICpjaGFycyogYXJndW1lbnQgZGVmYXVsdHMgdG8gcmVtb3Zpbmcgd2hpdGVzcGFjZS4gVGhlICpjaGFycypcbiAgIGFyZ3VtZW50IGlzIG5vdCBhIHByZWZpeCBvciBzdWZmaXg7IHJhdGhlciwgYWxsIGNvbWJpbmF0aW9ucyBvZiBpdHNcbiAgIHZhbHVlcyBhcmUgc3RyaXBwZWQ6XG5cbiAgID4+PiBcJyAgIHNwYWNpb3VzICAgXCcuc3RyaXAoKVxuICAgXCdzcGFjaW91c1wnXG4gICA+Pj4gXCd3d3cuZXhhbXBsZS5jb21cJy5zdHJpcChcJ2Ntb3d6LlwnKVxuICAgXCdleGFtcGxlXCdcblxuc3RyLnN3YXBjYXNlKClcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggdXBwZXJjYXNlIGNoYXJhY3RlcnMgY29udmVydGVkIHRvXG4gICBsb3dlcmNhc2UgYW5kIHZpY2UgdmVyc2EuIE5vdGUgdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJpbHkgdHJ1ZSB0aGF0XG4gICBgYHMuc3dhcGNhc2UoKS5zd2FwY2FzZSgpID09IHNgYC5cblxuc3RyLnRpdGxlKClcblxuICAgUmV0dXJuIGEgdGl0bGVjYXNlZCB2ZXJzaW9uIG9mIHRoZSBzdHJpbmcgd2hlcmUgd29yZHMgc3RhcnQgd2l0aCBhblxuICAgdXBwZXJjYXNlIGNoYXJhY3RlciBhbmQgdGhlIHJlbWFpbmluZyBjaGFyYWN0ZXJzIGFyZSBsb3dlcmNhc2UuXG5cbiAgIFRoZSBhbGdvcml0aG0gdXNlcyBhIHNpbXBsZSBsYW5ndWFnZS1pbmRlcGVuZGVudCBkZWZpbml0aW9uIG9mIGFcbiAgIHdvcmQgYXMgZ3JvdXBzIG9mIGNvbnNlY3V0aXZlIGxldHRlcnMuICBUaGUgZGVmaW5pdGlvbiB3b3JrcyBpblxuICAgbWFueSBjb250ZXh0cyBidXQgaXQgbWVhbnMgdGhhdCBhcG9zdHJvcGhlcyBpbiBjb250cmFjdGlvbnMgYW5kXG4gICBwb3NzZXNzaXZlcyBmb3JtIHdvcmQgYm91bmRhcmllcywgd2hpY2ggbWF5IG5vdCBiZSB0aGUgZGVzaXJlZFxuICAgcmVzdWx0OlxuXG4gICAgICA+Pj4gInRoZXlcJ3JlIGJpbGxcJ3MgZnJpZW5kcyBmcm9tIHRoZSBVSyIudGl0bGUoKVxuICAgICAgIlRoZXlcJ1JlIEJpbGxcJ1MgRnJpZW5kcyBGcm9tIFRoZSBVayJcblxuICAgQSB3b3JrYXJvdW5kIGZvciBhcG9zdHJvcGhlcyBjYW4gYmUgY29uc3RydWN0ZWQgdXNpbmcgcmVndWxhclxuICAgZXhwcmVzc2lvbnM6XG5cbiAgICAgID4+PiBpbXBvcnQgcmVcbiAgICAgID4+PiBkZWYgdGl0bGVjYXNlKHMpOlxuICAgICAgICAgICAgICByZXR1cm4gcmUuc3ViKHIiW0EtWmEtel0rKFwnW0EtWmEtel0rKT8iLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBtbzogbW8uZ3JvdXAoMClbMF0udXBwZXIoKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtby5ncm91cCgwKVsxOl0ubG93ZXIoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzKVxuXG4gICAgICA+Pj4gdGl0bGVjYXNlKCJ0aGV5XCdyZSBiaWxsXCdzIGZyaWVuZHMuIilcbiAgICAgICJUaGV5XCdyZSBCaWxsXCdzIEZyaWVuZHMuIlxuXG5zdHIudHJhbnNsYXRlKG1hcClcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgKnMqIHdoZXJlIGFsbCBjaGFyYWN0ZXJzIGhhdmUgYmVlbiBtYXBwZWRcbiAgIHRocm91Z2ggdGhlICptYXAqIHdoaWNoIG11c3QgYmUgYSBkaWN0aW9uYXJ5IG9mIFVuaWNvZGUgb3JkaW5hbHNcbiAgIChpbnRlZ2VycykgdG8gVW5pY29kZSBvcmRpbmFscywgc3RyaW5ncyBvciBgYE5vbmVgYC4gIFVubWFwcGVkXG4gICBjaGFyYWN0ZXJzIGFyZSBsZWZ0IHVudG91Y2hlZC4gQ2hhcmFjdGVycyBtYXBwZWQgdG8gYGBOb25lYGAgYXJlXG4gICBkZWxldGVkLlxuXG4gICBZb3UgY2FuIHVzZSBgYHN0ci5tYWtldHJhbnMoKWBgIHRvIGNyZWF0ZSBhIHRyYW5zbGF0aW9uIG1hcCBmcm9tXG4gICBjaGFyYWN0ZXItdG8tY2hhcmFjdGVyIG1hcHBpbmdzIGluIGRpZmZlcmVudCBmb3JtYXRzLlxuXG4gICBOb3RlOiBBbiBldmVuIG1vcmUgZmxleGlibGUgYXBwcm9hY2ggaXMgdG8gY3JlYXRlIGEgY3VzdG9tIGNoYXJhY3RlclxuICAgICBtYXBwaW5nIGNvZGVjIHVzaW5nIHRoZSBgYGNvZGVjc2BgIG1vZHVsZSAoc2VlXG4gICAgIGBgZW5jb2RpbmdzLmNwMTI1MWBgIGZvciBhbiBleGFtcGxlKS5cblxuc3RyLnVwcGVyKClcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgc3RyaW5nIHdpdGggYWxsIHRoZSBjYXNlZCBjaGFyYWN0ZXJzIFs0XVxuICAgY29udmVydGVkIHRvIHVwcGVyY2FzZS4gIE5vdGUgdGhhdCBgYHN0ci51cHBlcigpLmlzdXBwZXIoKWBgIG1pZ2h0XG4gICBiZSBgYEZhbHNlYGAgaWYgYGBzYGAgY29udGFpbnMgdW5jYXNlZCBjaGFyYWN0ZXJzIG9yIGlmIHRoZSBVbmljb2RlXG4gICBjYXRlZ29yeSBvZiB0aGUgcmVzdWx0aW5nIGNoYXJhY3RlcihzKSBpcyBub3QgIkx1IiAoTGV0dGVyLFxuICAgdXBwZXJjYXNlKSwgYnV0IGUuZy4gIkx0IiAoTGV0dGVyLCB0aXRsZWNhc2UpLlxuXG4gICBUaGUgdXBwZXJjYXNpbmcgYWxnb3JpdGhtIHVzZWQgaXMgZGVzY3JpYmVkIGluIHNlY3Rpb24gMy4xMyBvZiB0aGVcbiAgIFVuaWNvZGUgU3RhbmRhcmQuXG5cbnN0ci56ZmlsbCh3aWR0aClcblxuICAgUmV0dXJuIHRoZSBudW1lcmljIHN0cmluZyBsZWZ0IGZpbGxlZCB3aXRoIHplcm9zIGluIGEgc3RyaW5nIG9mXG4gICBsZW5ndGggKndpZHRoKi4gIEEgc2lnbiBwcmVmaXggaXMgaGFuZGxlZCBjb3JyZWN0bHkuICBUaGUgb3JpZ2luYWxcbiAgIHN0cmluZyBpcyByZXR1cm5lZCBpZiAqd2lkdGgqIGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byBgYGxlbihzKWBgLlxuXG5cbk9sZCBTdHJpbmcgRm9ybWF0dGluZyBPcGVyYXRpb25zXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5Ob3RlOiBUaGUgZm9ybWF0dGluZyBvcGVyYXRpb25zIGRlc2NyaWJlZCBoZXJlIGFyZSBtb2RlbGxlZCBvbiBDXCdzXG4gIHByaW50ZigpIHN5bnRheC4gIFRoZXkgb25seSBzdXBwb3J0IGZvcm1hdHRpbmcgb2YgY2VydGFpbiBidWlsdGluXG4gIHR5cGVzLiAgVGhlIHVzZSBvZiBhIGJpbmFyeSBvcGVyYXRvciBtZWFucyB0aGF0IGNhcmUgbWF5IGJlIG5lZWRlZFxuICBpbiBvcmRlciB0byBmb3JtYXQgdHVwbGVzIGFuZCBkaWN0aW9uYXJpZXMgY29ycmVjdGx5LiAgQXMgdGhlIG5ld1xuICAqU3RyaW5nIEZvcm1hdHRpbmcqIHN5bnRheCBpcyBtb3JlIGZsZXhpYmxlIGFuZCBoYW5kbGVzIHR1cGxlcyBhbmRcbiAgZGljdGlvbmFyaWVzIG5hdHVyYWxseSwgaXQgaXMgcmVjb21tZW5kZWQgZm9yIG5ldyBjb2RlLiAgSG93ZXZlcixcbiAgdGhlcmUgYXJlIG5vIGN1cnJlbnQgcGxhbnMgdG8gZGVwcmVjYXRlIHByaW50Zi1zdHlsZSBmb3JtYXR0aW5nLlxuXG5TdHJpbmcgb2JqZWN0cyBoYXZlIG9uZSB1bmlxdWUgYnVpbHQtaW4gb3BlcmF0aW9uOiB0aGUgYGAlYGAgb3BlcmF0b3Jcbihtb2R1bG8pLiBUaGlzIGlzIGFsc28ga25vd24gYXMgdGhlIHN0cmluZyAqZm9ybWF0dGluZyogb3JcbippbnRlcnBvbGF0aW9uKiBvcGVyYXRvci4gR2l2ZW4gYGBmb3JtYXQgJSB2YWx1ZXNgYCAod2hlcmUgKmZvcm1hdCogaXNcbmEgc3RyaW5nKSwgYGAlYGAgY29udmVyc2lvbiBzcGVjaWZpY2F0aW9ucyBpbiAqZm9ybWF0KiBhcmUgcmVwbGFjZWRcbndpdGggemVybyBvciBtb3JlIGVsZW1lbnRzIG9mICp2YWx1ZXMqLiBUaGUgZWZmZWN0IGlzIHNpbWlsYXIgdG8gdGhlXG51c2luZyBgYHNwcmludGYoKWBgIGluIHRoZSBDIGxhbmd1YWdlLlxuXG5JZiAqZm9ybWF0KiByZXF1aXJlcyBhIHNpbmdsZSBhcmd1bWVudCwgKnZhbHVlcyogbWF5IGJlIGEgc2luZ2xlIG5vbi1cbnR1cGxlIG9iamVjdC4gWzVdICBPdGhlcndpc2UsICp2YWx1ZXMqIG11c3QgYmUgYSB0dXBsZSB3aXRoIGV4YWN0bHlcbnRoZSBudW1iZXIgb2YgaXRlbXMgc3BlY2lmaWVkIGJ5IHRoZSBmb3JtYXQgc3RyaW5nLCBvciBhIHNpbmdsZVxubWFwcGluZyBvYmplY3QgKGZvciBleGFtcGxlLCBhIGRpY3Rpb25hcnkpLlxuXG5BIGNvbnZlcnNpb24gc3BlY2lmaWVyIGNvbnRhaW5zIHR3byBvciBtb3JlIGNoYXJhY3RlcnMgYW5kIGhhcyB0aGVcbmZvbGxvd2luZyBjb21wb25lbnRzLCB3aGljaCBtdXN0IG9jY3VyIGluIHRoaXMgb3JkZXI6XG5cbjEuIFRoZSBgYFwnJVwnYGAgY2hhcmFjdGVyLCB3aGljaCBtYXJrcyB0aGUgc3RhcnQgb2YgdGhlIHNwZWNpZmllci5cblxuMi4gTWFwcGluZyBrZXkgKG9wdGlvbmFsKSwgY29uc2lzdGluZyBvZiBhIHBhcmVudGhlc2lzZWQgc2VxdWVuY2Ugb2ZcbiAgIGNoYXJhY3RlcnMgKGZvciBleGFtcGxlLCBgYChzb21lbmFtZSlgYCkuXG5cbjMuIENvbnZlcnNpb24gZmxhZ3MgKG9wdGlvbmFsKSwgd2hpY2ggYWZmZWN0IHRoZSByZXN1bHQgb2Ygc29tZVxuICAgY29udmVyc2lvbiB0eXBlcy5cblxuNC4gTWluaW11bSBmaWVsZCB3aWR0aCAob3B0aW9uYWwpLiAgSWYgc3BlY2lmaWVkIGFzIGFuIGBgXCcqXCdgYFxuICAgKGFzdGVyaXNrKSwgdGhlIGFjdHVhbCB3aWR0aCBpcyByZWFkIGZyb20gdGhlIG5leHQgZWxlbWVudCBvZiB0aGVcbiAgIHR1cGxlIGluICp2YWx1ZXMqLCBhbmQgdGhlIG9iamVjdCB0byBjb252ZXJ0IGNvbWVzIGFmdGVyIHRoZVxuICAgbWluaW11bSBmaWVsZCB3aWR0aCBhbmQgb3B0aW9uYWwgcHJlY2lzaW9uLlxuXG41LiBQcmVjaXNpb24gKG9wdGlvbmFsKSwgZ2l2ZW4gYXMgYSBgYFwnLlwnYGAgKGRvdCkgZm9sbG93ZWQgYnkgdGhlXG4gICBwcmVjaXNpb24uICBJZiBzcGVjaWZpZWQgYXMgYGBcJypcJ2BgIChhbiBhc3RlcmlzayksIHRoZSBhY3R1YWxcbiAgIHByZWNpc2lvbiBpcyByZWFkIGZyb20gdGhlIG5leHQgZWxlbWVudCBvZiB0aGUgdHVwbGUgaW4gKnZhbHVlcyosXG4gICBhbmQgdGhlIHZhbHVlIHRvIGNvbnZlcnQgY29tZXMgYWZ0ZXIgdGhlIHByZWNpc2lvbi5cblxuNi4gTGVuZ3RoIG1vZGlmaWVyIChvcHRpb25hbCkuXG5cbjcuIENvbnZlcnNpb24gdHlwZS5cblxuV2hlbiB0aGUgcmlnaHQgYXJndW1lbnQgaXMgYSBkaWN0aW9uYXJ5IChvciBvdGhlciBtYXBwaW5nIHR5cGUpLCB0aGVuXG50aGUgZm9ybWF0cyBpbiB0aGUgc3RyaW5nICptdXN0KiBpbmNsdWRlIGEgcGFyZW50aGVzaXNlZCBtYXBwaW5nIGtleVxuaW50byB0aGF0IGRpY3Rpb25hcnkgaW5zZXJ0ZWQgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGBgXCclXCdgYCBjaGFyYWN0ZXIuXG5UaGUgbWFwcGluZyBrZXkgc2VsZWN0cyB0aGUgdmFsdWUgdG8gYmUgZm9ybWF0dGVkIGZyb20gdGhlIG1hcHBpbmcuXG5Gb3IgZXhhbXBsZTpcblxuPj4+IHByaW50KFwnJShsYW5ndWFnZSlzIGhhcyAlKG51bWJlcikwM2QgcXVvdGUgdHlwZXMuXCcgJVxuLi4uICAgICAgIHtcJ2xhbmd1YWdlXCc6ICJQeXRob24iLCAibnVtYmVyIjogMn0pXG5QeXRob24gaGFzIDAwMiBxdW90ZSB0eXBlcy5cblxuSW4gdGhpcyBjYXNlIG5vIGBgKmBgIHNwZWNpZmllcnMgbWF5IG9jY3VyIGluIGEgZm9ybWF0IChzaW5jZSB0aGV5XG5yZXF1aXJlIGEgc2VxdWVudGlhbCBwYXJhbWV0ZXIgbGlzdCkuXG5cblRoZSBjb252ZXJzaW9uIGZsYWcgY2hhcmFjdGVycyBhcmU6XG5cbistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgRmxhZyAgICAgIHwgTWVhbmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbis9PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PStcbnwgYGBcJyNcJ2BgICAgfCBUaGUgdmFsdWUgY29udmVyc2lvbiB3aWxsIHVzZSB0aGUgImFsdGVybmF0ZSBmb3JtIiAod2hlcmUgZGVmaW5lZCAgICAgfFxufCAgICAgICAgICAgfCBiZWxvdykuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYFwnMFwnYGAgICB8IFRoZSBjb252ZXJzaW9uIHdpbGwgYmUgemVybyBwYWRkZWQgZm9yIG51bWVyaWMgdmFsdWVzLiAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgXCctXCdgYCAgIHwgVGhlIGNvbnZlcnRlZCB2YWx1ZSBpcyBsZWZ0IGFkanVzdGVkIChvdmVycmlkZXMgdGhlIGBgXCcwXCdgYCAgICAgICAgICAgfFxufCAgICAgICAgICAgfCBjb252ZXJzaW9uIGlmIGJvdGggYXJlIGdpdmVuKS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYFwnIFwnYGAgICB8IChhIHNwYWNlKSBBIGJsYW5rIHNob3VsZCBiZSBsZWZ0IGJlZm9yZSBhIHBvc2l0aXZlIG51bWJlciAob3IgZW1wdHkgICB8XG58ICAgICAgICAgICB8IHN0cmluZykgcHJvZHVjZWQgYnkgYSBzaWduZWQgY29udmVyc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgXCcrXCdgYCAgIHwgQSBzaWduIGNoYXJhY3RlciAoYGBcJytcJ2BgIG9yIGBgXCctXCdgYCkgd2lsbCBwcmVjZWRlIHRoZSBjb252ZXJzaW9uICAgICB8XG58ICAgICAgICAgICB8IChvdmVycmlkZXMgYSAic3BhY2UiIGZsYWcpLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG5cbkEgbGVuZ3RoIG1vZGlmaWVyIChgYGhgYCwgYGBsYGAsIG9yIGBgTGBgKSBtYXkgYmUgcHJlc2VudCwgYnV0IGlzXG5pZ25vcmVkIGFzIGl0IGlzIG5vdCBuZWNlc3NhcnkgZm9yIFB5dGhvbiAtLSBzbyBlLmcuIGBgJWxkYGAgaXNcbmlkZW50aWNhbCB0byBgYCVkYGAuXG5cblRoZSBjb252ZXJzaW9uIHR5cGVzIGFyZTpcblxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBDb252ZXJzaW9uICAgfCBNZWFuaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IE5vdGVzICAgfFxuKz09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09K1xufCBgYFwnZFwnYGAgICAgICB8IFNpZ25lZCBpbnRlZ2VyIGRlY2ltYWwuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdpXCdgYCAgICAgIHwgU2lnbmVkIGludGVnZXIgZGVjaW1hbC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ29cJ2BgICAgICAgfCBTaWduZWQgb2N0YWwgdmFsdWUuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICgxKSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwndVwnYGAgICAgICB8IE9ic29sZXRlIHR5cGUgLS0gaXQgaXMgaWRlbnRpY2FsIHRvIGBgXCdkXCdgYC4gICAgICAgICAgfCAoNykgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ3hcJ2BgICAgICAgfCBTaWduZWQgaGV4YWRlY2ltYWwgKGxvd2VyY2FzZSkuICAgICAgICAgICAgICAgICAgICAgICB8ICgyKSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwnWFwnYGAgICAgICB8IFNpZ25lZCBoZXhhZGVjaW1hbCAodXBwZXJjYXNlKS4gICAgICAgICAgICAgICAgICAgICAgIHwgKDIpICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdlXCdgYCAgICAgIHwgRmxvYXRpbmcgcG9pbnQgZXhwb25lbnRpYWwgZm9ybWF0IChsb3dlcmNhc2UpLiAgICAgICAgfCAoMykgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ0VcJ2BgICAgICAgfCBGbG9hdGluZyBwb2ludCBleHBvbmVudGlhbCBmb3JtYXQgKHVwcGVyY2FzZSkuICAgICAgICB8ICgzKSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwnZlwnYGAgICAgICB8IEZsb2F0aW5nIHBvaW50IGRlY2ltYWwgZm9ybWF0LiAgICAgICAgICAgICAgICAgICAgICAgIHwgKDMpICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdGXCdgYCAgICAgIHwgRmxvYXRpbmcgcG9pbnQgZGVjaW1hbCBmb3JtYXQuICAgICAgICAgICAgICAgICAgICAgICAgfCAoMykgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ2dcJ2BgICAgICAgfCBGbG9hdGluZyBwb2ludCBmb3JtYXQuIFVzZXMgbG93ZXJjYXNlIGV4cG9uZW50aWFsICAgICB8ICg0KSAgICAgfFxufCAgICAgICAgICAgICAgfCBmb3JtYXQgaWYgZXhwb25lbnQgaXMgbGVzcyB0aGFuIC00IG9yIG5vdCBsZXNzIHRoYW4gICB8ICAgICAgICAgfFxufCAgICAgICAgICAgICAgfCBwcmVjaXNpb24sIGRlY2ltYWwgZm9ybWF0IG90aGVyd2lzZS4gICAgICAgICAgICAgICAgICB8ICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwnR1wnYGAgICAgICB8IEZsb2F0aW5nIHBvaW50IGZvcm1hdC4gVXNlcyB1cHBlcmNhc2UgZXhwb25lbnRpYWwgICAgIHwgKDQpICAgICB8XG58ICAgICAgICAgICAgICB8IGZvcm1hdCBpZiBleHBvbmVudCBpcyBsZXNzIHRoYW4gLTQgb3Igbm90IGxlc3MgdGhhbiAgIHwgICAgICAgICB8XG58ICAgICAgICAgICAgICB8IHByZWNpc2lvbiwgZGVjaW1hbCBmb3JtYXQgb3RoZXJ3aXNlLiAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdjXCdgYCAgICAgIHwgU2luZ2xlIGNoYXJhY3RlciAoYWNjZXB0cyBpbnRlZ2VyIG9yIHNpbmdsZSBjaGFyYWN0ZXIgfCAgICAgICAgIHxcbnwgICAgICAgICAgICAgIHwgc3RyaW5nKS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJ3JcJ2BgICAgICAgfCBTdHJpbmcgKGNvbnZlcnRzIGFueSBQeXRob24gb2JqZWN0IHVzaW5nIGBgcmVwcigpYGApLiB8ICg1KSAgICAgfFxuKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tK1xufCBgYFwnc1wnYGAgICAgICB8IFN0cmluZyAoY29udmVydHMgYW55IFB5dGhvbiBvYmplY3QgdXNpbmcgYGBzdHIoKWBgKS4gIHwgKDUpICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG58IGBgXCdhXCdgYCAgICAgIHwgU3RyaW5nIChjb252ZXJ0cyBhbnkgUHl0aG9uIG9iamVjdCB1c2luZyAgICAgICAgICAgICAgfCAoNSkgICAgIHxcbnwgICAgICAgICAgICAgIHwgYGBhc2NpaSgpYGApLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLStcbnwgYGBcJyVcJ2BgICAgICAgfCBObyBhcmd1bWVudCBpcyBjb252ZXJ0ZWQsIHJlc3VsdHMgaW4gYSBgYFwnJVwnYGAgICAgICAgIHwgICAgICAgICB8XG58ICAgICAgICAgICAgICB8IGNoYXJhY3RlciBpbiB0aGUgcmVzdWx0LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rXG5cbk5vdGVzOlxuXG4xLiBUaGUgYWx0ZXJuYXRlIGZvcm0gY2F1c2VzIGEgbGVhZGluZyB6ZXJvIChgYFwnMFwnYGApIHRvIGJlIGluc2VydGVkXG4gICBiZXR3ZWVuIGxlZnQtaGFuZCBwYWRkaW5nIGFuZCB0aGUgZm9ybWF0dGluZyBvZiB0aGUgbnVtYmVyIGlmIHRoZVxuICAgbGVhZGluZyBjaGFyYWN0ZXIgb2YgdGhlIHJlc3VsdCBpcyBub3QgYWxyZWFkeSBhIHplcm8uXG5cbjIuIFRoZSBhbHRlcm5hdGUgZm9ybSBjYXVzZXMgYSBsZWFkaW5nIGBgXCcweFwnYGAgb3IgYGBcJzBYXCdgYCAoZGVwZW5kaW5nXG4gICBvbiB3aGV0aGVyIHRoZSBgYFwneFwnYGAgb3IgYGBcJ1hcJ2BgIGZvcm1hdCB3YXMgdXNlZCkgdG8gYmUgaW5zZXJ0ZWRcbiAgIGJldHdlZW4gbGVmdC1oYW5kIHBhZGRpbmcgYW5kIHRoZSBmb3JtYXR0aW5nIG9mIHRoZSBudW1iZXIgaWYgdGhlXG4gICBsZWFkaW5nIGNoYXJhY3RlciBvZiB0aGUgcmVzdWx0IGlzIG5vdCBhbHJlYWR5IGEgemVyby5cblxuMy4gVGhlIGFsdGVybmF0ZSBmb3JtIGNhdXNlcyB0aGUgcmVzdWx0IHRvIGFsd2F5cyBjb250YWluIGEgZGVjaW1hbFxuICAgcG9pbnQsIGV2ZW4gaWYgbm8gZGlnaXRzIGZvbGxvdyBpdC5cblxuICAgVGhlIHByZWNpc2lvbiBkZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFsXG4gICBwb2ludCBhbmQgZGVmYXVsdHMgdG8gNi5cblxuNC4gVGhlIGFsdGVybmF0ZSBmb3JtIGNhdXNlcyB0aGUgcmVzdWx0IHRvIGFsd2F5cyBjb250YWluIGEgZGVjaW1hbFxuICAgcG9pbnQsIGFuZCB0cmFpbGluZyB6ZXJvZXMgYXJlIG5vdCByZW1vdmVkIGFzIHRoZXkgd291bGQgb3RoZXJ3aXNlXG4gICBiZS5cblxuICAgVGhlIHByZWNpc2lvbiBkZXRlcm1pbmVzIHRoZSBudW1iZXIgb2Ygc2lnbmlmaWNhbnQgZGlnaXRzIGJlZm9yZVxuICAgYW5kIGFmdGVyIHRoZSBkZWNpbWFsIHBvaW50IGFuZCBkZWZhdWx0cyB0byA2LlxuXG41LiBJZiBwcmVjaXNpb24gaXMgYGBOYGAsIHRoZSBvdXRwdXQgaXMgdHJ1bmNhdGVkIHRvIGBgTmBgIGNoYXJhY3RlcnMuXG5cbjEuIFNlZSAqKlBFUCAyMzcqKi5cblxuU2luY2UgUHl0aG9uIHN0cmluZ3MgaGF2ZSBhbiBleHBsaWNpdCBsZW5ndGgsIGBgJXNgYCBjb252ZXJzaW9ucyBkb1xubm90IGFzc3VtZSB0aGF0IGBgXCdcXDBcJ2BgIGlzIHRoZSBlbmQgb2YgdGhlIHN0cmluZy5cblxuQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMTogYGAlZmBgIGNvbnZlcnNpb25zIGZvciBudW1iZXJzIHdob3NlIGFic29sdXRlXG52YWx1ZSBpcyBvdmVyIDFlNTAgYXJlIG5vIGxvbmdlciByZXBsYWNlZCBieSBgYCVnYGAgY29udmVyc2lvbnMuXG5cbkFkZGl0aW9uYWwgc3RyaW5nIG9wZXJhdGlvbnMgYXJlIGRlZmluZWQgaW4gc3RhbmRhcmQgbW9kdWxlc1xuYGBzdHJpbmdgYCBhbmQgYGByZWBgLlxuXG5cblJhbmdlIFR5cGVcbj09PT09PT09PT1cblxuVGhlIGBgcmFuZ2VgYCB0eXBlIGlzIGFuIGltbXV0YWJsZSBzZXF1ZW5jZSB3aGljaCBpcyBjb21tb25seSB1c2VkIGZvclxubG9vcGluZy4gIFRoZSBhZHZhbnRhZ2Ugb2YgdGhlIGBgcmFuZ2VgYCB0eXBlIGlzIHRoYXQgYW4gYGByYW5nZWBgXG5vYmplY3Qgd2lsbCBhbHdheXMgdGFrZSB0aGUgc2FtZSBhbW91bnQgb2YgbWVtb3J5LCBubyBtYXR0ZXIgdGhlIHNpemVcbm9mIHRoZSByYW5nZSBpdCByZXByZXNlbnRzLlxuXG5SYW5nZSBvYmplY3RzIGhhdmUgcmVsYXRpdmVseSBsaXR0bGUgYmVoYXZpb3I6IHRoZXkgc3VwcG9ydCBpbmRleGluZyxcbmNvbnRhaW5zLCBpdGVyYXRpb24sIHRoZSBgYGxlbigpYGAgZnVuY3Rpb24sIGFuZCB0aGUgZm9sbG93aW5nXG5tZXRob2RzOlxuXG5yYW5nZS5jb3VudCh4KVxuXG4gICBSZXR1cm4gdGhlIG51bWJlciBvZiAqaSpcJ3MgZm9yIHdoaWNoIGBgc1tpXSA9PSB4YGAuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxucmFuZ2UuaW5kZXgoeClcblxuICAgUmV0dXJuIHRoZSBzbWFsbGVzdCAqaSogc3VjaCB0aGF0IGBgc1tpXSA9PSB4YGAuICBSYWlzZXNcbiAgIGBgVmFsdWVFcnJvcmBgIHdoZW4gKngqIGlzIG5vdCBpbiB0aGUgcmFuZ2UuXG5cbiAgIE5ldyBpbiB2ZXJzaW9uIDMuMi5cblxuXG5NdXRhYmxlIFNlcXVlbmNlIFR5cGVzXG49PT09PT09PT09PT09PT09PT09PT09XG5cbkxpc3QgYW5kIGJ5dGVhcnJheSBvYmplY3RzIHN1cHBvcnQgYWRkaXRpb25hbCBvcGVyYXRpb25zIHRoYXQgYWxsb3dcbmluLXBsYWNlIG1vZGlmaWNhdGlvbiBvZiB0aGUgb2JqZWN0LiAgT3RoZXIgbXV0YWJsZSBzZXF1ZW5jZSB0eXBlc1xuKHdoZW4gYWRkZWQgdG8gdGhlIGxhbmd1YWdlKSBzaG91bGQgYWxzbyBzdXBwb3J0IHRoZXNlIG9wZXJhdGlvbnMuXG5TdHJpbmdzIGFuZCB0dXBsZXMgYXJlIGltbXV0YWJsZSBzZXF1ZW5jZSB0eXBlczogc3VjaCBvYmplY3RzIGNhbm5vdFxuYmUgbW9kaWZpZWQgb25jZSBjcmVhdGVkLiBUaGUgZm9sbG93aW5nIG9wZXJhdGlvbnMgYXJlIGRlZmluZWQgb25cbm11dGFibGUgc2VxdWVuY2UgdHlwZXMgKHdoZXJlICp4KiBpcyBhbiBhcmJpdHJhcnkgb2JqZWN0KS5cblxuTm90ZSB0aGF0IHdoaWxlIGxpc3RzIGFsbG93IHRoZWlyIGl0ZW1zIHRvIGJlIG9mIGFueSB0eXBlLCBieXRlYXJyYXlcbm9iamVjdCAiaXRlbXMiIGFyZSBhbGwgaW50ZWdlcnMgaW4gdGhlIHJhbmdlIDAgPD0geCA8IDI1Ni5cblxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IE9wZXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICB8IFJlc3VsdCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgTm90ZXMgICAgICAgICAgICAgICAgIHxcbis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09K1xufCBgYHNbaV0gPSB4YGAgICAgICAgICAgICAgICAgICAgfCBpdGVtICppKiBvZiAqcyogaXMgcmVwbGFjZWQgYnkgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICp4KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHNbaTpqXSA9IHRgYCAgICAgICAgICAgICAgICAgfCBzbGljZSBvZiAqcyogZnJvbSAqaSogdG8gKmoqIGlzICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlcGxhY2VkIGJ5IHRoZSBjb250ZW50cyBvZiB0aGUgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgaXRlcmFibGUgKnQqICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgZGVsIHNbaTpqXWBgICAgICAgICAgICAgICAgICB8IHNhbWUgYXMgYGBzW2k6al0gPSBbXWBgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHNbaTpqOmtdID0gdGBgICAgICAgICAgICAgICAgfCB0aGUgZWxlbWVudHMgb2YgYGBzW2k6ajprXWBgIGFyZSB8ICgxKSAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlcGxhY2VkIGJ5IHRob3NlIG9mICp0KiAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYGRlbCBzW2k6ajprXWBgICAgICAgICAgICAgICAgfCByZW1vdmVzIHRoZSBlbGVtZW50cyBvZiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBgc1tpOmo6a11gYCBmcm9tIHRoZSBsaXN0ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuYXBwZW5kKHgpYGAgICAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgc1tsZW4ocyk6bGVuKHMpXSA9ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IFt4XWBgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuZXh0ZW5kKHgpYGAgICAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgc1tsZW4ocyk6bGVuKHMpXSA9IHhgYCB8ICgyKSAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLmNsZWFyKClgYCAgICAgICAgICAgICAgICAgIHwgcmVtb3ZlIGFsbCBpdGVtcyBmcm9tIGBgc2BgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5jb3B5KClgYCAgICAgICAgICAgICAgICAgICB8IHJldHVybiBhIHNoYWxsb3cgY29weSBvZiBgYHNgYCAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuY291bnQoeClgYCAgICAgICAgICAgICAgICAgfCByZXR1cm4gbnVtYmVyIG9mICppKlwncyBmb3Igd2hpY2ggfCAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgYHNbaV0gPT0geGBgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLmluZGV4KHhbLCBpWywgal1dKWBgICAgICAgIHwgcmV0dXJuIHNtYWxsZXN0ICprKiBzdWNoIHRoYXQgICAgfCAoMykgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgYHNba10gPT0geGBgIGFuZCBgYGkgPD0gayA8IGpgYCB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLmluc2VydChpLCB4KWBgICAgICAgICAgICAgIHwgc2FtZSBhcyBgYHNbaTppXSA9IFt4XWBgICAgICAgICAgfCAoNCkgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5wb3AoW2ldKWBgICAgICAgICAgICAgICAgICB8IHNhbWUgYXMgYGB4ID0gc1tpXTsgZGVsIHNbaV07ICAgIHwgKDUpICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmV0dXJuIHhgYCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5yZW1vdmUoeClgYCAgICAgICAgICAgICAgICB8IHNhbWUgYXMgYGBkZWwgc1tzLmluZGV4KHgpXWBgICAgIHwgKDMpICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMucmV2ZXJzZSgpYGAgICAgICAgICAgICAgICAgfCByZXZlcnNlcyB0aGUgaXRlbXMgb2YgKnMqIGluICAgICB8ICg2KSAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWNlICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuc29ydChba2V5WywgcmV2ZXJzZV1dKWBgICAgfCBzb3J0IHRoZSBpdGVtcyBvZiAqcyogaW4gcGxhY2UgICB8ICg2KSwgKDcpLCAoOCkgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcblxuTm90ZXM6XG5cbjEuICp0KiBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBzbGljZSBpdCBpcyByZXBsYWNpbmcuXG5cbjIuICp4KiBjYW4gYmUgYW55IGl0ZXJhYmxlIG9iamVjdC5cblxuMy4gUmFpc2VzIGBgVmFsdWVFcnJvcmBgIHdoZW4gKngqIGlzIG5vdCBmb3VuZCBpbiAqcyouIFdoZW4gYSBuZWdhdGl2ZVxuICAgaW5kZXggaXMgcGFzc2VkIGFzIHRoZSBzZWNvbmQgb3IgdGhpcmQgcGFyYW1ldGVyIHRvIHRoZSBgYGluZGV4KClgYFxuICAgbWV0aG9kLCB0aGUgc2VxdWVuY2UgbGVuZ3RoIGlzIGFkZGVkLCBhcyBmb3Igc2xpY2UgaW5kaWNlcy4gIElmIGl0XG4gICBpcyBzdGlsbCBuZWdhdGl2ZSwgaXQgaXMgdHJ1bmNhdGVkIHRvIHplcm8sIGFzIGZvciBzbGljZSBpbmRpY2VzLlxuXG40LiBXaGVuIGEgbmVnYXRpdmUgaW5kZXggaXMgcGFzc2VkIGFzIHRoZSBmaXJzdCBwYXJhbWV0ZXIgdG8gdGhlXG4gICBgYGluc2VydCgpYGAgbWV0aG9kLCB0aGUgc2VxdWVuY2UgbGVuZ3RoIGlzIGFkZGVkLCBhcyBmb3Igc2xpY2VcbiAgIGluZGljZXMuICBJZiBpdCBpcyBzdGlsbCBuZWdhdGl2ZSwgaXQgaXMgdHJ1bmNhdGVkIHRvIHplcm8sIGFzIGZvclxuICAgc2xpY2UgaW5kaWNlcy5cblxuNS4gVGhlIG9wdGlvbmFsIGFyZ3VtZW50ICppKiBkZWZhdWx0cyB0byBgYC0xYGAsIHNvIHRoYXQgYnkgZGVmYXVsdFxuICAgdGhlIGxhc3QgaXRlbSBpcyByZW1vdmVkIGFuZCByZXR1cm5lZC5cblxuNi4gVGhlIGBgc29ydCgpYGAgYW5kIGBgcmV2ZXJzZSgpYGAgbWV0aG9kcyBtb2RpZnkgdGhlIHNlcXVlbmNlIGluXG4gICBwbGFjZSBmb3IgZWNvbm9teSBvZiBzcGFjZSB3aGVuIHNvcnRpbmcgb3IgcmV2ZXJzaW5nIGEgbGFyZ2VcbiAgIHNlcXVlbmNlLiAgVG8gcmVtaW5kIHlvdSB0aGF0IHRoZXkgb3BlcmF0ZSBieSBzaWRlIGVmZmVjdCwgdGhleVxuICAgZG9uXCd0IHJldHVybiB0aGUgc29ydGVkIG9yIHJldmVyc2VkIHNlcXVlbmNlLlxuXG43LiBUaGUgYGBzb3J0KClgYCBtZXRob2QgdGFrZXMgb3B0aW9uYWwgYXJndW1lbnRzIGZvciBjb250cm9sbGluZyB0aGVcbiAgIGNvbXBhcmlzb25zLiAgRWFjaCBtdXN0IGJlIHNwZWNpZmllZCBhcyBhIGtleXdvcmQgYXJndW1lbnQuXG5cbiAgICprZXkqIHNwZWNpZmllcyBhIGZ1bmN0aW9uIG9mIG9uZSBhcmd1bWVudCB0aGF0IGlzIHVzZWQgdG8gZXh0cmFjdFxuICAgYSBjb21wYXJpc29uIGtleSBmcm9tIGVhY2ggbGlzdCBlbGVtZW50OiBgYGtleT1zdHIubG93ZXJgYC4gIFRoZVxuICAgZGVmYXVsdCB2YWx1ZSBpcyBgYE5vbmVgYC4gVXNlIGBgZnVuY3Rvb2xzLmNtcF90b19rZXkoKWBgIHRvXG4gICBjb252ZXJ0IGFuIG9sZC1zdHlsZSAqY21wKiBmdW5jdGlvbiB0byBhICprZXkqIGZ1bmN0aW9uLlxuXG4gICAqcmV2ZXJzZSogaXMgYSBib29sZWFuIHZhbHVlLiAgSWYgc2V0IHRvIGBgVHJ1ZWBgLCB0aGVuIHRoZSBsaXN0XG4gICBlbGVtZW50cyBhcmUgc29ydGVkIGFzIGlmIGVhY2ggY29tcGFyaXNvbiB3ZXJlIHJldmVyc2VkLlxuXG4gICBUaGUgYGBzb3J0KClgYCBtZXRob2QgaXMgZ3VhcmFudGVlZCB0byBiZSBzdGFibGUuICBBIHNvcnQgaXMgc3RhYmxlXG4gICBpZiBpdCBndWFyYW50ZWVzIG5vdCB0byBjaGFuZ2UgdGhlIHJlbGF0aXZlIG9yZGVyIG9mIGVsZW1lbnRzIHRoYXRcbiAgIGNvbXBhcmUgZXF1YWwgLS0tIHRoaXMgaXMgaGVscGZ1bCBmb3Igc29ydGluZyBpbiBtdWx0aXBsZSBwYXNzZXNcbiAgIChmb3IgZXhhbXBsZSwgc29ydCBieSBkZXBhcnRtZW50LCB0aGVuIGJ5IHNhbGFyeSBncmFkZSkuXG5cbiAgICoqQ1B5dGhvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWw6KiogV2hpbGUgYSBsaXN0IGlzIGJlaW5nIHNvcnRlZCxcbiAgIHRoZSBlZmZlY3Qgb2YgYXR0ZW1wdGluZyB0byBtdXRhdGUsIG9yIGV2ZW4gaW5zcGVjdCwgdGhlIGxpc3QgaXNcbiAgIHVuZGVmaW5lZC4gIFRoZSBDIGltcGxlbWVudGF0aW9uIG9mIFB5dGhvbiBtYWtlcyB0aGUgbGlzdCBhcHBlYXJcbiAgIGVtcHR5IGZvciB0aGUgZHVyYXRpb24sIGFuZCByYWlzZXMgYGBWYWx1ZUVycm9yYGAgaWYgaXQgY2FuIGRldGVjdFxuICAgdGhhdCB0aGUgbGlzdCBoYXMgYmVlbiBtdXRhdGVkIGR1cmluZyBhIHNvcnQuXG5cbjguIGBgc29ydCgpYGAgaXMgbm90IHN1cHBvcnRlZCBieSBgYGJ5dGVhcnJheWBgIG9iamVjdHMuXG5cbiAgICAgIE5ldyBpbiB2ZXJzaW9uIDMuMzogYGBjbGVhcigpYGAgYW5kIGBgY29weSgpYGAgbWV0aG9kcy5cblxuXG5CeXRlcyBhbmQgQnl0ZSBBcnJheSBNZXRob2RzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbkJ5dGVzIGFuZCBieXRlYXJyYXkgb2JqZWN0cywgYmVpbmcgInN0cmluZ3Mgb2YgYnl0ZXMiLCBoYXZlIGFsbFxubWV0aG9kcyBmb3VuZCBvbiBzdHJpbmdzLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgYGBlbmNvZGUoKWBgLFxuYGBmb3JtYXQoKWBgIGFuZCBgYGlzaWRlbnRpZmllcigpYGAsIHdoaWNoIGRvIG5vdCBtYWtlIHNlbnNlIHdpdGhcbnRoZXNlIHR5cGVzLiAgRm9yIGNvbnZlcnRpbmcgdGhlIG9iamVjdHMgdG8gc3RyaW5ncywgdGhleSBoYXZlIGFcbmBgZGVjb2RlKClgYCBtZXRob2QuXG5cbldoZXJldmVyIG9uZSBvZiB0aGVzZSBtZXRob2RzIG5lZWRzIHRvIGludGVycHJldCB0aGUgYnl0ZXMgYXNcbmNoYXJhY3RlcnMgKGUuZy4gdGhlIGBgaXMuLi4oKWBgIG1ldGhvZHMpLCB0aGUgQVNDSUkgY2hhcmFjdGVyIHNldCBpc1xuYXNzdW1lZC5cblxuTmV3IGluIHZlcnNpb24gMy4zOiBUaGUgZnVuY3Rpb25zIGBgY291bnQoKWBgLCBgYGZpbmQoKWBgLFxuYGBpbmRleCgpYGAsIGBgcmZpbmQoKWBgIGFuZCBgYHJpbmRleCgpYGAgaGF2ZSBhZGRpdGlvbmFsIHNlbWFudGljc1xuY29tcGFyZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgc3RyaW5nIGZ1bmN0aW9uczogVGhleSBhbHNvIGFjY2VwdCBhblxuaW50ZWdlciBpbiByYW5nZSAwIHRvIDI1NSAoYSBieXRlKSBhcyB0aGVpciBmaXJzdCBhcmd1bWVudC5cblxuTm90ZTogVGhlIG1ldGhvZHMgb24gYnl0ZXMgYW5kIGJ5dGVhcnJheSBvYmplY3RzIGRvblwndCBhY2NlcHQgc3RyaW5ncyBhc1xuICB0aGVpciBhcmd1bWVudHMsIGp1c3QgYXMgdGhlIG1ldGhvZHMgb24gc3RyaW5ncyBkb25cJ3QgYWNjZXB0IGJ5dGVzXG4gIGFzIHRoZWlyIGFyZ3VtZW50cy4gIEZvciBleGFtcGxlLCB5b3UgaGF2ZSB0byB3cml0ZVxuXG4gICAgIGEgPSAiYWJjIlxuICAgICBiID0gYS5yZXBsYWNlKCJhIiwgImYiKVxuXG4gIGFuZFxuXG4gICAgIGEgPSBiImFiYyJcbiAgICAgYiA9IGEucmVwbGFjZShiImEiLCBiImYiKVxuXG5ieXRlcy5kZWNvZGUoZW5jb2Rpbmc9InV0Zi04IiwgZXJyb3JzPSJzdHJpY3QiKVxuYnl0ZWFycmF5LmRlY29kZShlbmNvZGluZz0idXRmLTgiLCBlcnJvcnM9InN0cmljdCIpXG5cbiAgIFJldHVybiBhIHN0cmluZyBkZWNvZGVkIGZyb20gdGhlIGdpdmVuIGJ5dGVzLiAgRGVmYXVsdCBlbmNvZGluZyBpc1xuICAgYGBcJ3V0Zi04XCdgYC4gKmVycm9ycyogbWF5IGJlIGdpdmVuIHRvIHNldCBhIGRpZmZlcmVudCBlcnJvclxuICAgaGFuZGxpbmcgc2NoZW1lLiAgVGhlIGRlZmF1bHQgZm9yICplcnJvcnMqIGlzIGBgXCdzdHJpY3RcJ2BgLCBtZWFuaW5nXG4gICB0aGF0IGVuY29kaW5nIGVycm9ycyByYWlzZSBhIGBgVW5pY29kZUVycm9yYGAuICBPdGhlciBwb3NzaWJsZVxuICAgdmFsdWVzIGFyZSBgYFwnaWdub3JlXCdgYCwgYGBcJ3JlcGxhY2VcJ2BgIGFuZCBhbnkgb3RoZXIgbmFtZVxuICAgcmVnaXN0ZXJlZCB2aWEgYGBjb2RlY3MucmVnaXN0ZXJfZXJyb3IoKWBgLCBzZWUgc2VjdGlvbiAqQ29kZWMgQmFzZVxuICAgQ2xhc3NlcyouIEZvciBhIGxpc3Qgb2YgcG9zc2libGUgZW5jb2RpbmdzLCBzZWUgc2VjdGlvbiAqU3RhbmRhcmRcbiAgIEVuY29kaW5ncyouXG5cbiAgIENoYW5nZWQgaW4gdmVyc2lvbiAzLjE6IEFkZGVkIHN1cHBvcnQgZm9yIGtleXdvcmQgYXJndW1lbnRzLlxuXG5UaGUgYnl0ZXMgYW5kIGJ5dGVhcnJheSB0eXBlcyBoYXZlIGFuIGFkZGl0aW9uYWwgY2xhc3MgbWV0aG9kOlxuXG5jbGFzc21ldGhvZCBieXRlcy5mcm9taGV4KHN0cmluZylcbmNsYXNzbWV0aG9kIGJ5dGVhcnJheS5mcm9taGV4KHN0cmluZylcblxuICAgVGhpcyBgYGJ5dGVzYGAgY2xhc3MgbWV0aG9kIHJldHVybnMgYSBieXRlcyBvciBieXRlYXJyYXkgb2JqZWN0LFxuICAgZGVjb2RpbmcgdGhlIGdpdmVuIHN0cmluZyBvYmplY3QuICBUaGUgc3RyaW5nIG11c3QgY29udGFpbiB0d29cbiAgIGhleGFkZWNpbWFsIGRpZ2l0cyBwZXIgYnl0ZSwgc3BhY2VzIGFyZSBpZ25vcmVkLlxuXG4gICA+Pj4gYnl0ZXMuZnJvbWhleChcJ2YwIGYxZjIgIFwnKVxuICAgYlwnXFx4ZjBcXHhmMVxceGYyXCdcblxuVGhlIG1ha2V0cmFucyBhbmQgdHJhbnNsYXRlIG1ldGhvZHMgZGlmZmVyIGluIHNlbWFudGljcyBmcm9tIHRoZVxudmVyc2lvbnMgYXZhaWxhYmxlIG9uIHN0cmluZ3M6XG5cbmJ5dGVzLnRyYW5zbGF0ZSh0YWJsZVssIGRlbGV0ZV0pXG5ieXRlYXJyYXkudHJhbnNsYXRlKHRhYmxlWywgZGVsZXRlXSlcblxuICAgUmV0dXJuIGEgY29weSBvZiB0aGUgYnl0ZXMgb3IgYnl0ZWFycmF5IG9iamVjdCB3aGVyZSBhbGwgYnl0ZXNcbiAgIG9jY3VycmluZyBpbiB0aGUgb3B0aW9uYWwgYXJndW1lbnQgKmRlbGV0ZSogYXJlIHJlbW92ZWQsIGFuZCB0aGVcbiAgIHJlbWFpbmluZyBieXRlcyBoYXZlIGJlZW4gbWFwcGVkIHRocm91Z2ggdGhlIGdpdmVuIHRyYW5zbGF0aW9uXG4gICB0YWJsZSwgd2hpY2ggbXVzdCBiZSBhIGJ5dGVzIG9iamVjdCBvZiBsZW5ndGggMjU2LlxuXG4gICBZb3UgY2FuIHVzZSB0aGUgYGBieXRlcy5tYWtldHJhbnMoKWBgIG1ldGhvZCB0byBjcmVhdGUgYVxuICAgdHJhbnNsYXRpb24gdGFibGUuXG5cbiAgIFNldCB0aGUgKnRhYmxlKiBhcmd1bWVudCB0byBgYE5vbmVgYCBmb3IgdHJhbnNsYXRpb25zIHRoYXQgb25seVxuICAgZGVsZXRlIGNoYXJhY3RlcnM6XG5cbiAgICAgID4+PiBiXCdyZWFkIHRoaXMgc2hvcnQgdGV4dFwnLnRyYW5zbGF0ZShOb25lLCBiXCdhZWlvdVwnKVxuICAgICAgYlwncmQgdGhzIHNocnQgdHh0XCdcblxuc3RhdGljIGJ5dGVzLm1ha2V0cmFucyhmcm9tLCB0bylcbnN0YXRpYyBieXRlYXJyYXkubWFrZXRyYW5zKGZyb20sIHRvKVxuXG4gICBUaGlzIHN0YXRpYyBtZXRob2QgcmV0dXJucyBhIHRyYW5zbGF0aW9uIHRhYmxlIHVzYWJsZSBmb3JcbiAgIGBgYnl0ZXMudHJhbnNsYXRlKClgYCB0aGF0IHdpbGwgbWFwIGVhY2ggY2hhcmFjdGVyIGluICpmcm9tKiBpbnRvXG4gICB0aGUgY2hhcmFjdGVyIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGluICp0byo7ICpmcm9tKiBhbmQgKnRvKiBtdXN0IGJlXG4gICBieXRlcyBvYmplY3RzIGFuZCBoYXZlIHRoZSBzYW1lIGxlbmd0aC5cblxuICAgTmV3IGluIHZlcnNpb24gMy4xLlxuJywKKyAndHlwZXNzZXEtbXV0YWJsZSc6ICdcbk11dGFibGUgU2VxdWVuY2UgVHlwZXNcbioqKioqKioqKioqKioqKioqKioqKipcblxuTGlzdCBhbmQgYnl0ZWFycmF5IG9iamVjdHMgc3VwcG9ydCBhZGRpdGlvbmFsIG9wZXJhdGlvbnMgdGhhdCBhbGxvd1xuaW4tcGxhY2UgbW9kaWZpY2F0aW9uIG9mIHRoZSBvYmplY3QuICBPdGhlciBtdXRhYmxlIHNlcXVlbmNlIHR5cGVzXG4od2hlbiBhZGRlZCB0byB0aGUgbGFuZ3VhZ2UpIHNob3VsZCBhbHNvIHN1cHBvcnQgdGhlc2Ugb3BlcmF0aW9ucy5cblN0cmluZ3MgYW5kIHR1cGxlcyBhcmUgaW1tdXRhYmxlIHNlcXVlbmNlIHR5cGVzOiBzdWNoIG9iamVjdHMgY2Fubm90XG5iZSBtb2RpZmllZCBvbmNlIGNyZWF0ZWQuIFRoZSBmb2xsb3dpbmcgb3BlcmF0aW9ucyBhcmUgZGVmaW5lZCBvblxubXV0YWJsZSBzZXF1ZW5jZSB0eXBlcyAod2hlcmUgKngqIGlzIGFuIGFyYml0cmFyeSBvYmplY3QpLlxuXG5Ob3RlIHRoYXQgd2hpbGUgbGlzdHMgYWxsb3cgdGhlaXIgaXRlbXMgdG8gYmUgb2YgYW55IHR5cGUsIGJ5dGVhcnJheVxub2JqZWN0ICJpdGVtcyIgYXJlIGFsbCBpbnRlZ2VycyBpbiB0aGUgcmFuZ2UgMCA8PSB4IDwgMjU2LlxuXG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgT3BlcmF0aW9uICAgICAgICAgICAgICAgICAgICAgIHwgUmVzdWx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOb3RlcyAgICAgICAgICAgICAgICAgfFxuKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0rPT09PT09PT09PT09PT09PT09PT09PT0rXG58IGBgc1tpXSA9IHhgYCAgICAgICAgICAgICAgICAgICB8IGl0ZW0gKmkqIG9mICpzKiBpcyByZXBsYWNlZCBieSAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKngqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgc1tpOmpdID0gdGBgICAgICAgICAgICAgICAgICB8IHNsaWNlIG9mICpzKiBmcm9tICppKiB0byAqaiogaXMgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVwbGFjZWQgYnkgdGhlIGNvbnRlbnRzIG9mIHRoZSAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBpdGVyYWJsZSAqdCogICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBkZWwgc1tpOmpdYGAgICAgICAgICAgICAgICAgIHwgc2FtZSBhcyBgYHNbaTpqXSA9IFtdYGAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgc1tpOmo6a10gPSB0YGAgICAgICAgICAgICAgICB8IHRoZSBlbGVtZW50cyBvZiBgYHNbaTpqOmtdYGAgYXJlIHwgKDEpICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVwbGFjZWQgYnkgdGhvc2Ugb2YgKnQqICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgZGVsIHNbaTpqOmtdYGAgICAgICAgICAgICAgICB8IHJlbW92ZXMgdGhlIGVsZW1lbnRzIG9mICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGBzW2k6ajprXWBgIGZyb20gdGhlIGxpc3QgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5hcHBlbmQoeClgYCAgICAgICAgICAgICAgICB8IHNhbWUgYXMgYGBzW2xlbihzKTpsZW4ocyldID0gICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgW3hdYGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5leHRlbmQoeClgYCAgICAgICAgICAgICAgICB8IHNhbWUgYXMgYGBzW2xlbihzKTpsZW4ocyldID0geGBgIHwgKDIpICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuY2xlYXIoKWBgICAgICAgICAgICAgICAgICAgfCByZW1vdmUgYWxsIGl0ZW1zIGZyb20gYGBzYGAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLmNvcHkoKWBgICAgICAgICAgICAgICAgICAgIHwgcmV0dXJuIGEgc2hhbGxvdyBjb3B5IG9mIGBgc2BgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5jb3VudCh4KWBgICAgICAgICAgICAgICAgICB8IHJldHVybiBudW1iZXIgb2YgKmkqXCdzIGZvciB3aGljaCB8ICAgICAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBgc1tpXSA9PSB4YGAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuaW5kZXgoeFssIGlbLCBqXV0pYGAgICAgICAgfCByZXR1cm4gc21hbGxlc3QgKmsqIHN1Y2ggdGhhdCAgICB8ICgzKSAgICAgICAgICAgICAgICAgICB8XG58ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBgc1trXSA9PSB4YGAgYW5kIGBgaSA8PSBrIDwgamBgIHwgICAgICAgICAgICAgICAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xufCBgYHMuaW5zZXJ0KGksIHgpYGAgICAgICAgICAgICAgfCBzYW1lIGFzIGBgc1tpOmldID0gW3hdYGAgICAgICAgICB8ICg0KSAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLnBvcChbaV0pYGAgICAgICAgICAgICAgICAgIHwgc2FtZSBhcyBgYHggPSBzW2ldOyBkZWwgc1tpXTsgICAgfCAoNSkgICAgICAgICAgICAgICAgICAgfFxufCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZXR1cm4geGBgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8XG4rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLStcbnwgYGBzLnJlbW92ZSh4KWBgICAgICAgICAgICAgICAgIHwgc2FtZSBhcyBgYGRlbCBzW3MuaW5kZXgoeCldYGAgICAgfCAoMykgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5yZXZlcnNlKClgYCAgICAgICAgICAgICAgICB8IHJldmVyc2VzIHRoZSBpdGVtcyBvZiAqcyogaW4gICAgIHwgKDYpICAgICAgICAgICAgICAgICAgIHxcbnwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxhY2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfFxuKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rXG58IGBgcy5zb3J0KFtrZXlbLCByZXZlcnNlXV0pYGAgICB8IHNvcnQgdGhlIGl0ZW1zIG9mICpzKiBpbiBwbGFjZSAgIHwgKDYpLCAoNyksICg4KSAgICAgICAgIHxcbistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tK1xuXG5Ob3RlczpcblxuMS4gKnQqIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGggYXMgdGhlIHNsaWNlIGl0IGlzIHJlcGxhY2luZy5cblxuMi4gKngqIGNhbiBiZSBhbnkgaXRlcmFibGUgb2JqZWN0LlxuXG4zLiBSYWlzZXMgYGBWYWx1ZUVycm9yYGAgd2hlbiAqeCogaXMgbm90IGZvdW5kIGluICpzKi4gV2hlbiBhIG5lZ2F0aXZlXG4gICBpbmRleCBpcyBwYXNzZWQgYXMgdGhlIHNlY29uZCBvciB0aGlyZCBwYXJhbWV0ZXIgdG8gdGhlIGBgaW5kZXgoKWBgXG4gICBtZXRob2QsIHRoZSBzZXF1ZW5jZSBsZW5ndGggaXMgYWRkZWQsIGFzIGZvciBzbGljZSBpbmRpY2VzLiAgSWYgaXRcbiAgIGlzIHN0aWxsIG5lZ2F0aXZlLCBpdCBpcyB0cnVuY2F0ZWQgdG8gemVybywgYXMgZm9yIHNsaWNlIGluZGljZXMuXG5cbjQuIFdoZW4gYSBuZWdhdGl2ZSBpbmRleCBpcyBwYXNzZWQgYXMgdGhlIGZpcnN0IHBhcmFtZXRlciB0byB0aGVcbiAgIGBgaW5zZXJ0KClgYCBtZXRob2QsIHRoZSBzZXF1ZW5jZSBsZW5ndGggaXMgYWRkZWQsIGFzIGZvciBzbGljZVxuICAgaW5kaWNlcy4gIElmIGl0IGlzIHN0aWxsIG5lZ2F0aXZlLCBpdCBpcyB0cnVuY2F0ZWQgdG8gemVybywgYXMgZm9yXG4gICBzbGljZSBpbmRpY2VzLlxuXG41LiBUaGUgb3B0aW9uYWwgYXJndW1lbnQgKmkqIGRlZmF1bHRzIHRvIGBgLTFgYCwgc28gdGhhdCBieSBkZWZhdWx0XG4gICB0aGUgbGFzdCBpdGVtIGlzIHJlbW92ZWQgYW5kIHJldHVybmVkLlxuXG42LiBUaGUgYGBzb3J0KClgYCBhbmQgYGByZXZlcnNlKClgYCBtZXRob2RzIG1vZGlmeSB0aGUgc2VxdWVuY2UgaW5cbiAgIHBsYWNlIGZvciBlY29ub215IG9mIHNwYWNlIHdoZW4gc29ydGluZyBvciByZXZlcnNpbmcgYSBsYXJnZVxuICAgc2VxdWVuY2UuICBUbyByZW1pbmQgeW91IHRoYXQgdGhleSBvcGVyYXRlIGJ5IHNpZGUgZWZmZWN0LCB0aGV5XG4gICBkb25cJ3QgcmV0dXJuIHRoZSBzb3J0ZWQgb3IgcmV2ZXJzZWQgc2VxdWVuY2UuXG5cbjcuIFRoZSBgYHNvcnQoKWBgIG1ldGhvZCB0YWtlcyBvcHRpb25hbCBhcmd1bWVudHMgZm9yIGNvbnRyb2xsaW5nIHRoZVxuICAgY29tcGFyaXNvbnMuICBFYWNoIG11c3QgYmUgc3BlY2lmaWVkIGFzIGEga2V5d29yZCBhcmd1bWVudC5cblxuICAgKmtleSogc3BlY2lmaWVzIGEgZnVuY3Rpb24gb2Ygb25lIGFyZ3VtZW50IHRoYXQgaXMgdXNlZCB0byBleHRyYWN0XG4gICBhIGNvbXBhcmlzb24ga2V5IGZyb20gZWFjaCBsaXN0IGVsZW1lbnQ6IGBga2V5PXN0ci5sb3dlcmBgLiAgVGhlXG4gICBkZWZhdWx0IHZhbHVlIGlzIGBgTm9uZWBgLiBVc2UgYGBmdW5jdG9vbHMuY21wX3RvX2tleSgpYGAgdG9cbiAgIGNvbnZlcnQgYW4gb2xkLXN0eWxlICpjbXAqIGZ1bmN0aW9uIHRvIGEgKmtleSogZnVuY3Rpb24uXG5cbiAgICpyZXZlcnNlKiBpcyBhIGJvb2xlYW4gdmFsdWUuICBJZiBzZXQgdG8gYGBUcnVlYGAsIHRoZW4gdGhlIGxpc3RcbiAgIGVsZW1lbnRzIGFyZSBzb3J0ZWQgYXMgaWYgZWFjaCBjb21wYXJpc29uIHdlcmUgcmV2ZXJzZWQuXG5cbiAgIFRoZSBgYHNvcnQoKWBgIG1ldGhvZCBpcyBndWFyYW50ZWVkIHRvIGJlIHN0YWJsZS4gIEEgc29ydCBpcyBzdGFibGVcbiAgIGlmIGl0IGd1YXJhbnRlZXMgbm90IHRvIGNoYW5nZSB0aGUgcmVsYXRpdmUgb3JkZXIgb2YgZWxlbWVudHMgdGhhdFxuICAgY29tcGFyZSBlcXVhbCAtLS0gdGhpcyBpcyBoZWxwZnVsIGZvciBzb3J0aW5nIGluIG11bHRpcGxlIHBhc3Nlc1xuICAgKGZvciBleGFtcGxlLCBzb3J0IGJ5IGRlcGFydG1lbnQsIHRoZW4gYnkgc2FsYXJ5IGdyYWRlKS5cblxuICAgKipDUHl0aG9uIGltcGxlbWVudGF0aW9uIGRldGFpbDoqKiBXaGlsZSBhIGxpc3QgaXMgYmVpbmcgc29ydGVkLFxuICAgdGhlIGVmZmVjdCBvZiBhdHRlbXB0aW5nIHRvIG11dGF0ZSwgb3IgZXZlbiBpbnNwZWN0LCB0aGUgbGlzdCBpc1xuICAgdW5kZWZpbmVkLiAgVGhlIEMgaW1wbGVtZW50YXRpb24gb2YgUHl0aG9uIG1ha2VzIHRoZSBsaXN0IGFwcGVhclxuICAgZW1wdHkgZm9yIHRoZSBkdXJhdGlvbiwgYW5kIHJhaXNlcyBgYFZhbHVlRXJyb3JgYCBpZiBpdCBjYW4gZGV0ZWN0XG4gICB0aGF0IHRoZSBsaXN0IGhhcyBiZWVuIG11dGF0ZWQgZHVyaW5nIGEgc29ydC5cblxuOC4gYGBzb3J0KClgYCBpcyBub3Qgc3VwcG9ydGVkIGJ5IGBgYnl0ZWFycmF5YGAgb2JqZWN0cy5cblxuICAgICAgTmV3IGluIHZlcnNpb24gMy4zOiBgYGNsZWFyKClgYCBhbmQgYGBjb3B5KClgYCBtZXRob2RzLlxuJywKICAndW5hcnknOiAnXG5VbmFyeSBhcml0aG1ldGljIGFuZCBiaXR3aXNlIG9wZXJhdGlvbnNcbioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXG5BbGwgdW5hcnkgYXJpdGhtZXRpYyBhbmQgYml0d2lzZSBvcGVyYXRpb25zIGhhdmUgdGhlIHNhbWUgcHJpb3JpdHk6XG5cbiAgIHVfZXhwciA6Oj0gcG93ZXIgfCAiLSIgdV9leHByIHwgIisiIHVfZXhwciB8ICJ+IiB1X2V4cHJcblxuVGhlIHVuYXJ5IGBgLWBgIChtaW51cykgb3BlcmF0b3IgeWllbGRzIHRoZSBuZWdhdGlvbiBvZiBpdHMgbnVtZXJpY1xuYXJndW1lbnQuXG5cblRoZSB1bmFyeSBgYCtgYCAocGx1cykgb3BlcmF0b3IgeWllbGRzIGl0cyBudW1lcmljIGFyZ3VtZW50IHVuY2hhbmdlZC5cblxuVGhlIHVuYXJ5IGBgfmBgIChpbnZlcnQpIG9wZXJhdG9yIHlpZWxkcyB0aGUgYml0d2lzZSBpbnZlcnNpb24gb2YgaXRzXG5pbnRlZ2VyIGFyZ3VtZW50LiAgVGhlIGJpdHdpc2UgaW52ZXJzaW9uIG9mIGBgeGBgIGlzIGRlZmluZWQgYXNcbmBgLSh4KzEpYGAuICBJdCBvbmx5IGFwcGxpZXMgdG8gaW50ZWdyYWwgbnVtYmVycy5cblxuSW4gYWxsIHRocmVlIGNhc2VzLCBpZiB0aGUgYXJndW1lbnQgZG9lcyBub3QgaGF2ZSB0aGUgcHJvcGVyIHR5cGUsIGFcbmBgVHlwZUVycm9yYGAgZXhjZXB0aW9uIGlzIHJhaXNlZC5cbicsCiAgJ3doaWxlJzogJ1xuVGhlIGBgd2hpbGVgYCBzdGF0ZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqXG5cblRoZSBgYHdoaWxlYGAgc3RhdGVtZW50IGlzIHVzZWQgZm9yIHJlcGVhdGVkIGV4ZWN1dGlvbiBhcyBsb25nIGFzIGFuXG5leHByZXNzaW9uIGlzIHRydWU6XG5cbiAgIHdoaWxlX3N0bXQgOjo9ICJ3aGlsZSIgZXhwcmVzc2lvbiAiOiIgc3VpdGVcbiAgICAgICAgICAgICAgICAgIFsiZWxzZSIgIjoiIHN1aXRlXVxuXG5UaGlzIHJlcGVhdGVkbHkgdGVzdHMgdGhlIGV4cHJlc3Npb24gYW5kLCBpZiBpdCBpcyB0cnVlLCBleGVjdXRlcyB0aGVcbmZpcnN0IHN1aXRlOyBpZiB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZSAod2hpY2ggbWF5IGJlIHRoZSBmaXJzdCB0aW1lXG5pdCBpcyB0ZXN0ZWQpIHRoZSBzdWl0ZSBvZiB0aGUgYGBlbHNlYGAgY2xhdXNlLCBpZiBwcmVzZW50LCBpc1xuZXhlY3V0ZWQgYW5kIHRoZSBsb29wIHRlcm1pbmF0ZXMuXG5cbkEgYGBicmVha2BgIHN0YXRlbWVudCBleGVjdXRlZCBpbiB0aGUgZmlyc3Qgc3VpdGUgdGVybWluYXRlcyB0aGUgbG9vcFxud2l0aG91dCBleGVjdXRpbmcgdGhlIGBgZWxzZWBgIGNsYXVzZVwncyBzdWl0ZS4gIEEgYGBjb250aW51ZWBgXG5zdGF0ZW1lbnQgZXhlY3V0ZWQgaW4gdGhlIGZpcnN0IHN1aXRlIHNraXBzIHRoZSByZXN0IG9mIHRoZSBzdWl0ZSBhbmRcbmdvZXMgYmFjayB0byB0ZXN0aW5nIHRoZSBleHByZXNzaW9uLlxuJywKICAnd2l0aCc6ICdcblRoZSBgYHdpdGhgYCBzdGF0ZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKipcblxuVGhlIGBgd2l0aGBgIHN0YXRlbWVudCBpcyB1c2VkIHRvIHdyYXAgdGhlIGV4ZWN1dGlvbiBvZiBhIGJsb2NrIHdpdGhcbm1ldGhvZHMgZGVmaW5lZCBieSBhIGNvbnRleHQgbWFuYWdlciAoc2VlIHNlY3Rpb24gKldpdGggU3RhdGVtZW50XG5Db250ZXh0IE1hbmFnZXJzKikuIFRoaXMgYWxsb3dzIGNvbW1vblxuYGB0cnlgYC4uLmBgZXhjZXB0YGAuLi5gYGZpbmFsbHlgYCB1c2FnZSBwYXR0ZXJucyB0byBiZSBlbmNhcHN1bGF0ZWRcbmZvciBjb252ZW5pZW50IHJldXNlLlxuXG4gICB3aXRoX3N0bXQgOjo9ICJ3aXRoIiB3aXRoX2l0ZW0gKCIsIiB3aXRoX2l0ZW0pKiAiOiIgc3VpdGVcbiAgIHdpdGhfaXRlbSA6Oj0gZXhwcmVzc2lvbiBbImFzIiB0YXJnZXRdXG5cblRoZSBleGVjdXRpb24gb2YgdGhlIGBgd2l0aGBgIHN0YXRlbWVudCB3aXRoIG9uZSAiaXRlbSIgcHJvY2VlZHMgYXNcbmZvbGxvd3M6XG5cbjEuIFRoZSBjb250ZXh0IGV4cHJlc3Npb24gKHRoZSBleHByZXNzaW9uIGdpdmVuIGluIHRoZSBgYHdpdGhfaXRlbWBgKVxuICAgaXMgZXZhbHVhdGVkIHRvIG9idGFpbiBhIGNvbnRleHQgbWFuYWdlci5cblxuMi4gVGhlIGNvbnRleHQgbWFuYWdlclwncyBgYF9fZXhpdF9fKClgYCBpcyBsb2FkZWQgZm9yIGxhdGVyIHVzZS5cblxuMy4gVGhlIGNvbnRleHQgbWFuYWdlclwncyBgYF9fZW50ZXJfXygpYGAgbWV0aG9kIGlzIGludm9rZWQuXG5cbjQuIElmIGEgdGFyZ2V0IHdhcyBpbmNsdWRlZCBpbiB0aGUgYGB3aXRoYGAgc3RhdGVtZW50LCB0aGUgcmV0dXJuXG4gICB2YWx1ZSBmcm9tIGBgX19lbnRlcl9fKClgYCBpcyBhc3NpZ25lZCB0byBpdC5cblxuICAgTm90ZTogVGhlIGBgd2l0aGBgIHN0YXRlbWVudCBndWFyYW50ZWVzIHRoYXQgaWYgdGhlIGBgX19lbnRlcl9fKClgYFxuICAgICBtZXRob2QgcmV0dXJucyB3aXRob3V0IGFuIGVycm9yLCB0aGVuIGBgX19leGl0X18oKWBgIHdpbGwgYWx3YXlzXG4gICAgIGJlIGNhbGxlZC4gVGh1cywgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgYXNzaWdubWVudCB0byB0aGVcbiAgICAgdGFyZ2V0IGxpc3QsIGl0IHdpbGwgYmUgdHJlYXRlZCB0aGUgc2FtZSBhcyBhbiBlcnJvciBvY2N1cnJpbmdcbiAgICAgd2l0aGluIHRoZSBzdWl0ZSB3b3VsZCBiZS4gU2VlIHN0ZXAgNiBiZWxvdy5cblxuNS4gVGhlIHN1aXRlIGlzIGV4ZWN1dGVkLlxuXG42LiBUaGUgY29udGV4dCBtYW5hZ2VyXCdzIGBgX19leGl0X18oKWBgIG1ldGhvZCBpcyBpbnZva2VkLiAgSWYgYW5cbiAgIGV4Y2VwdGlvbiBjYXVzZWQgdGhlIHN1aXRlIHRvIGJlIGV4aXRlZCwgaXRzIHR5cGUsIHZhbHVlLCBhbmRcbiAgIHRyYWNlYmFjayBhcmUgcGFzc2VkIGFzIGFyZ3VtZW50cyB0byBgYF9fZXhpdF9fKClgYC4gT3RoZXJ3aXNlLFxuICAgdGhyZWUgYGBOb25lYGAgYXJndW1lbnRzIGFyZSBzdXBwbGllZC5cblxuICAgSWYgdGhlIHN1aXRlIHdhcyBleGl0ZWQgZHVlIHRvIGFuIGV4Y2VwdGlvbiwgYW5kIHRoZSByZXR1cm4gdmFsdWVcbiAgIGZyb20gdGhlIGBgX19leGl0X18oKWBgIG1ldGhvZCB3YXMgZmFsc2UsIHRoZSBleGNlcHRpb24gaXNcbiAgIHJlcmFpc2VkLiAgSWYgdGhlIHJldHVybiB2YWx1ZSB3YXMgdHJ1ZSwgdGhlIGV4Y2VwdGlvbiBpc1xuICAgc3VwcHJlc3NlZCwgYW5kIGV4ZWN1dGlvbiBjb250aW51ZXMgd2l0aCB0aGUgc3RhdGVtZW50IGZvbGxvd2luZ1xuICAgdGhlIGBgd2l0aGBgIHN0YXRlbWVudC5cblxuICAgSWYgdGhlIHN1aXRlIHdhcyBleGl0ZWQgZm9yIGFueSByZWFzb24gb3RoZXIgdGhhbiBhbiBleGNlcHRpb24sIHRoZVxuICAgcmV0dXJuIHZhbHVlIGZyb20gYGBfX2V4aXRfXygpYGAgaXMgaWdub3JlZCwgYW5kIGV4ZWN1dGlvbiBwcm9jZWVkc1xuICAgYXQgdGhlIG5vcm1hbCBsb2NhdGlvbiBmb3IgdGhlIGtpbmQgb2YgZXhpdCB0aGF0IHdhcyB0YWtlbi5cblxuV2l0aCBtb3JlIHRoYW4gb25lIGl0ZW0sIHRoZSBjb250ZXh0IG1hbmFnZXJzIGFyZSBwcm9jZXNzZWQgYXMgaWZcbm11bHRpcGxlIGBgd2l0aGBgIHN0YXRlbWVudHMgd2VyZSBuZXN0ZWQ6XG5cbiAgIHdpdGggQSgpIGFzIGEsIEIoKSBhcyBiOlxuICAgICAgIHN1aXRlXG5cbmlzIGVxdWl2YWxlbnQgdG9cblxuICAgd2l0aCBBKCkgYXMgYTpcbiAgICAgICB3aXRoIEIoKSBhcyBiOlxuICAgICAgICAgICBzdWl0ZVxuXG5DaGFuZ2VkIGluIHZlcnNpb24gMy4xOiBTdXBwb3J0IGZvciBtdWx0aXBsZSBjb250ZXh0IGV4cHJlc3Npb25zLlxuXG5TZWUgYWxzbzpcblxuICAgKipQRVAgMDM0MyoqIC0gVGhlICJ3aXRoIiBzdGF0ZW1lbnRcbiAgICAgIFRoZSBzcGVjaWZpY2F0aW9uLCBiYWNrZ3JvdW5kLCBhbmQgZXhhbXBsZXMgZm9yIHRoZSBQeXRob25cbiAgICAgIGBgd2l0aGBgIHN0YXRlbWVudC5cbicsCi0gJ3lpZWxkJzogJ1xuVGhlIGBgeWllbGRgYCBzdGF0ZW1lbnRcbioqKioqKioqKioqKioqKioqKioqKioqXG5cbiAgIHlpZWxkX3N0bXQgOjo9IHlpZWxkX2V4cHJlc3Npb25cblxuVGhlIGBgeWllbGRgYCBzdGF0ZW1lbnQgaXMgb25seSB1c2VkIHdoZW4gZGVmaW5pbmcgYSBnZW5lcmF0b3JcbmZ1bmN0aW9uLCBhbmQgaXMgb25seSB1c2VkIGluIHRoZSBib2R5IG9mIHRoZSBnZW5lcmF0b3IgZnVuY3Rpb24uXG5Vc2luZyBhIGBgeWllbGRgYCBzdGF0ZW1lbnQgaW4gYSBmdW5jdGlvbiBkZWZpbml0aW9uIGlzIHN1ZmZpY2llbnQgdG9cbmNhdXNlIHRoYXQgZGVmaW5pdGlvbiB0byBjcmVhdGUgYSBnZW5lcmF0b3IgZnVuY3Rpb24gaW5zdGVhZCBvZiBhXG5ub3JtYWwgZnVuY3Rpb24uIFdoZW4gYSBnZW5lcmF0b3IgZnVuY3Rpb24gaXMgY2FsbGVkLCBpdCByZXR1cm5zIGFuXG5pdGVyYXRvciBrbm93biBhcyBhIGdlbmVyYXRvciBpdGVyYXRvciwgb3IgbW9yZSBjb21tb25seSwgYSBnZW5lcmF0b3IuXG5UaGUgYm9keSBvZiB0aGUgZ2VuZXJhdG9yIGZ1bmN0aW9uIGlzIGV4ZWN1dGVkIGJ5IGNhbGxpbmcgdGhlXG5gYG5leHQoKWBgIGZ1bmN0aW9uIG9uIHRoZSBnZW5lcmF0b3IgcmVwZWF0ZWRseSB1bnRpbCBpdCByYWlzZXMgYW5cbmV4Y2VwdGlvbi5cblxuV2hlbiBhIGBgeWllbGRgYCBzdGF0ZW1lbnQgaXMgZXhlY3V0ZWQsIHRoZSBzdGF0ZSBvZiB0aGUgZ2VuZXJhdG9yIGlzXG5mcm96ZW4gYW5kIHRoZSB2YWx1ZSBvZiBgYGV4cHJlc3Npb25fbGlzdGBgIGlzIHJldHVybmVkIHRvXG5gYG5leHQoKWBgXCdzIGNhbGxlci4gIEJ5ICJmcm96ZW4iIHdlIG1lYW4gdGhhdCBhbGwgbG9jYWwgc3RhdGUgaXNcbnJldGFpbmVkLCBpbmNsdWRpbmcgdGhlIGN1cnJlbnQgYmluZGluZ3Mgb2YgbG9jYWwgdmFyaWFibGVzLCB0aGVcbmluc3RydWN0aW9uIHBvaW50ZXIsIGFuZCB0aGUgaW50ZXJuYWwgZXZhbHVhdGlvbiBzdGFjazogZW5vdWdoXG5pbmZvcm1hdGlvbiBpcyBzYXZlZCBzbyB0aGF0IHRoZSBuZXh0IHRpbWUgYGBuZXh0KClgYCBpcyBpbnZva2VkLCB0aGVcbmZ1bmN0aW9uIGNhbiBwcm9jZWVkIGV4YWN0bHkgYXMgaWYgdGhlIGBgeWllbGRgYCBzdGF0ZW1lbnQgd2VyZSBqdXN0XG5hbm90aGVyIGV4dGVybmFsIGNhbGwuXG5cblRoZSBgYHlpZWxkYGAgc3RhdGVtZW50IGlzIGFsbG93ZWQgaW4gdGhlIGBgdHJ5YGAgY2xhdXNlIG9mIGEgYGB0cnlgYFxuLi4uICBgYGZpbmFsbHlgYCBjb25zdHJ1Y3QuICBJZiB0aGUgZ2VuZXJhdG9yIGlzIG5vdCByZXN1bWVkIGJlZm9yZSBpdFxuaXMgZmluYWxpemVkIChieSByZWFjaGluZyBhIHplcm8gcmVmZXJlbmNlIGNvdW50IG9yIGJ5IGJlaW5nIGdhcmJhZ2VcbmNvbGxlY3RlZCksIHRoZSBnZW5lcmF0b3ItaXRlcmF0b3JcJ3MgYGBjbG9zZSgpYGAgbWV0aG9kIHdpbGwgYmVcbmNhbGxlZCwgYWxsb3dpbmcgYW55IHBlbmRpbmcgYGBmaW5hbGx5YGAgY2xhdXNlcyB0byBleGVjdXRlLlxuXG5TZWUgYWxzbzpcblxuICAgKipQRVAgMDI1NSoqIC0gU2ltcGxlIEdlbmVyYXRvcnNcbiAgICAgIFRoZSBwcm9wb3NhbCBmb3IgYWRkaW5nIGdlbmVyYXRvcnMgYW5kIHRoZSBgYHlpZWxkYGAgc3RhdGVtZW50XG4gICAgICB0byBQeXRob24uXG5cbiAgICoqUEVQIDAzNDIqKiAtIENvcm91dGluZXMgdmlhIEVuaGFuY2VkIEdlbmVyYXRvcnNcbiAgICAgIFRoZSBwcm9wb3NhbCB0aGF0LCBhbW9uZyBvdGhlciBnZW5lcmF0b3IgZW5oYW5jZW1lbnRzLCBwcm9wb3NlZFxuICAgICAgYWxsb3dpbmcgYGB5aWVsZGBgIHRvIGFwcGVhciBpbnNpZGUgYSBgYHRyeWBgIC4uLiBgYGZpbmFsbHlgYFxuICAgICAgYmxvY2suXG4nfQorICd5aWVsZCc6ICdcblRoZSBgYHlpZWxkYGAgc3RhdGVtZW50XG4qKioqKioqKioqKioqKioqKioqKioqKlxuXG4gICB5aWVsZF9zdG10IDo6PSB5aWVsZF9leHByZXNzaW9uXG5cblRoZSBgYHlpZWxkYGAgc3RhdGVtZW50IGlzIG9ubHkgdXNlZCB3aGVuIGRlZmluaW5nIGEgZ2VuZXJhdG9yXG5mdW5jdGlvbiwgYW5kIGlzIG9ubHkgdXNlZCBpbiB0aGUgYm9keSBvZiB0aGUgZ2VuZXJhdG9yIGZ1bmN0aW9uLlxuVXNpbmcgYSBgYHlpZWxkYGAgc3RhdGVtZW50IGluIGEgZnVuY3Rpb24gZGVmaW5pdGlvbiBpcyBzdWZmaWNpZW50IHRvXG5jYXVzZSB0aGF0IGRlZmluaXRpb24gdG8gY3JlYXRlIGEgZ2VuZXJhdG9yIGZ1bmN0aW9uIGluc3RlYWQgb2YgYVxubm9ybWFsIGZ1bmN0aW9uLlxuXG5XaGVuIGEgZ2VuZXJhdG9yIGZ1bmN0aW9uIGlzIGNhbGxlZCwgaXQgcmV0dXJucyBhbiBpdGVyYXRvciBrbm93biBhcyBhXG5nZW5lcmF0b3IgaXRlcmF0b3IsIG9yIG1vcmUgY29tbW9ubHksIGEgZ2VuZXJhdG9yLiAgVGhlIGJvZHkgb2YgdGhlXG5nZW5lcmF0b3IgZnVuY3Rpb24gaXMgZXhlY3V0ZWQgYnkgY2FsbGluZyB0aGUgYGBuZXh0KClgYCBmdW5jdGlvbiBvblxudGhlIGdlbmVyYXRvciByZXBlYXRlZGx5IHVudGlsIGl0IHJhaXNlcyBhbiBleGNlcHRpb24uXG5cbldoZW4gYSBgYHlpZWxkYGAgc3RhdGVtZW50IGlzIGV4ZWN1dGVkLCB0aGUgc3RhdGUgb2YgdGhlIGdlbmVyYXRvciBpc1xuZnJvemVuIGFuZCB0aGUgdmFsdWUgb2YgYGBleHByZXNzaW9uX2xpc3RgYCBpcyByZXR1cm5lZCB0b1xuYGBuZXh0KClgYFwncyBjYWxsZXIuICBCeSAiZnJvemVuIiB3ZSBtZWFuIHRoYXQgYWxsIGxvY2FsIHN0YXRlIGlzXG5yZXRhaW5lZCwgaW5jbHVkaW5nIHRoZSBjdXJyZW50IGJpbmRpbmdzIG9mIGxvY2FsIHZhcmlhYmxlcywgdGhlXG5pbnN0cnVjdGlvbiBwb2ludGVyLCBhbmQgdGhlIGludGVybmFsIGV2YWx1YXRpb24gc3RhY2s6IGVub3VnaFxuaW5mb3JtYXRpb24gaXMgc2F2ZWQgc28gdGhhdCB0aGUgbmV4dCB0aW1lIGBgbmV4dCgpYGAgaXMgaW52b2tlZCwgdGhlXG5mdW5jdGlvbiBjYW4gcHJvY2VlZCBleGFjdGx5IGFzIGlmIHRoZSBgYHlpZWxkYGAgc3RhdGVtZW50IHdlcmUganVzdFxuYW5vdGhlciBleHRlcm5hbCBjYWxsLlxuXG5UaGUgYGB5aWVsZGBgIHN0YXRlbWVudCBpcyBhbGxvd2VkIGluIHRoZSBgYHRyeWBgIGNsYXVzZSBvZiBhIGBgdHJ5YGBcbi4uLiAgYGBmaW5hbGx5YGAgY29uc3RydWN0LiAgSWYgdGhlIGdlbmVyYXRvciBpcyBub3QgcmVzdW1lZCBiZWZvcmUgaXRcbmlzIGZpbmFsaXplZCAoYnkgcmVhY2hpbmcgYSB6ZXJvIHJlZmVyZW5jZSBjb3VudCBvciBieSBiZWluZyBnYXJiYWdlXG5jb2xsZWN0ZWQpLCB0aGUgZ2VuZXJhdG9yLWl0ZXJhdG9yXCdzIGBgY2xvc2UoKWBgIG1ldGhvZCB3aWxsIGJlXG5jYWxsZWQsIGFsbG93aW5nIGFueSBwZW5kaW5nIGBgZmluYWxseWBgIGNsYXVzZXMgdG8gZXhlY3V0ZS5cblxuV2hlbiBgYHlpZWxkIGZyb20gPGV4cHI+YGAgaXMgdXNlZCwgaXQgdHJlYXRzIHRoZSBzdXBwbGllZCBleHByZXNzaW9uXG5hcyBhIHN1Yml0ZXJhdG9yLCBwcm9kdWNpbmcgdmFsdWVzIGZyb20gaXQgdW50aWwgdGhlIHVuZGVybHlpbmdcbml0ZXJhdG9yIGlzIGV4aGF1c3RlZC5cblxuICAgQ2hhbmdlZCBpbiB2ZXJzaW9uIDMuMzogQWRkZWQgYGB5aWVsZCBmcm9tIDxleHByPmBgIHRvIGRlbGVnYXRlXG4gICBjb250cm9sIGZsb3cgdG8gYSBzdWJpdGVyYXRvclxuXG5Gb3IgZnVsbCBkZXRhaWxzIG9mIGBgeWllbGRgYCBzZW1hbnRpY3MsIHJlZmVyIHRvIHRoZSAqWWllbGRcbmV4cHJlc3Npb25zKiBzZWN0aW9uLlxuXG5TZWUgYWxzbzpcblxuICAgKipQRVAgMDI1NSoqIC0gU2ltcGxlIEdlbmVyYXRvcnNcbiAgICAgIFRoZSBwcm9wb3NhbCBmb3IgYWRkaW5nIGdlbmVyYXRvcnMgYW5kIHRoZSBgYHlpZWxkYGAgc3RhdGVtZW50XG4gICAgICB0byBQeXRob24uXG5cbiAgICoqUEVQIDAzNDIqKiAtIENvcm91dGluZXMgdmlhIEVuaGFuY2VkIEdlbmVyYXRvcnNcbiAgICAgIFRoZSBwcm9wb3NhbCB0byBlbmhhbmNlIHRoZSBBUEkgYW5kIHN5bnRheCBvZiBnZW5lcmF0b3JzLCBtYWtpbmdcbiAgICAgIHRoZW0gdXNhYmxlIGFzIHNpbXBsZSBjb3JvdXRpbmVzLlxuXG4gICAqKlBFUCAwMzgwKiogLSBTeW50YXggZm9yIERlbGVnYXRpbmcgdG8gYSBTdWJnZW5lcmF0b3JcbiAgICAgIFRoZSBwcm9wb3NhbCB0byBpbnRyb2R1Y2UgdGhlIGBgeWllbGRfZnJvbWBgIHN5bnRheCwgbWFraW5nXG4gICAgICBkZWxlZ2F0aW9uIHRvIHN1Yi1nZW5lcmF0b3JzIGVhc3kuXG4nfQpkaWZmIC0tZ2l0IGEvTGliL3F1ZXVlLnB5IGIvTGliL3F1ZXVlLnB5CmluZGV4IGJlZTdlZDQuLmMzMjk2ZmUgMTAwNjQ0Ci0tLSBhL0xpYi9xdWV1ZS5weQorKysgYi9MaWIvcXVldWUucHkKQEAgLTEsNDkgKzEsNTcgQEAKLSIiIkEgbXVsdGktcHJvZHVjZXIsIG11bHRpLWNvbnN1bWVyIHF1ZXVlLiIiIgorJycnQSBtdWx0aS1wcm9kdWNlciwgbXVsdGktY29uc3VtZXIgcXVldWUuJycnCiAKLWZyb20gdGltZSBpbXBvcnQgdGltZSBhcyBfdGltZQogdHJ5OgotICAgIGltcG9ydCB0aHJlYWRpbmcgYXMgX3RocmVhZGluZworICAgIGltcG9ydCB0aHJlYWRpbmcKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBpbXBvcnQgZHVtbXlfdGhyZWFkaW5nIGFzIF90aHJlYWRpbmcKKyAgICBpbXBvcnQgZHVtbXlfdGhyZWFkaW5nIGFzIHRocmVhZGluZwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKLWltcG9ydCBoZWFwcQorZnJvbSBoZWFwcSBpbXBvcnQgaGVhcHB1c2gsIGhlYXBwb3AKK3RyeToKKyAgICBmcm9tIHRpbWUgaW1wb3J0IG1vbm90b25pYyBhcyB0aW1lCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSB0aW1lIGltcG9ydCB0aW1lCiAKIF9fYWxsX18gPSBbJ0VtcHR5JywgJ0Z1bGwnLCAnUXVldWUnLCAnUHJpb3JpdHlRdWV1ZScsICdMaWZvUXVldWUnXQogCiBjbGFzcyBFbXB0eShFeGNlcHRpb24pOgotICAgICJFeGNlcHRpb24gcmFpc2VkIGJ5IFF1ZXVlLmdldChibG9jaz0wKS9nZXRfbm93YWl0KCkuIgorICAgICdFeGNlcHRpb24gcmFpc2VkIGJ5IFF1ZXVlLmdldChibG9jaz0wKS9nZXRfbm93YWl0KCkuJwogICAgIHBhc3MKIAogY2xhc3MgRnVsbChFeGNlcHRpb24pOgotICAgICJFeGNlcHRpb24gcmFpc2VkIGJ5IFF1ZXVlLnB1dChibG9jaz0wKS9wdXRfbm93YWl0KCkuIgorICAgICdFeGNlcHRpb24gcmFpc2VkIGJ5IFF1ZXVlLnB1dChibG9jaz0wKS9wdXRfbm93YWl0KCkuJwogICAgIHBhc3MKIAogY2xhc3MgUXVldWU6Ci0gICAgIiIiQ3JlYXRlIGEgcXVldWUgb2JqZWN0IHdpdGggYSBnaXZlbiBtYXhpbXVtIHNpemUuCisgICAgJycnQ3JlYXRlIGEgcXVldWUgb2JqZWN0IHdpdGggYSBnaXZlbiBtYXhpbXVtIHNpemUuCiAKICAgICBJZiBtYXhzaXplIGlzIDw9IDAsIHRoZSBxdWV1ZSBzaXplIGlzIGluZmluaXRlLgotICAgICIiIgorICAgICcnJworCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1heHNpemU9MCk6CiAgICAgICAgIHNlbGYubWF4c2l6ZSA9IG1heHNpemUKICAgICAgICAgc2VsZi5faW5pdChtYXhzaXplKQorCiAgICAgICAgICMgbXV0ZXggbXVzdCBiZSBoZWxkIHdoZW5ldmVyIHRoZSBxdWV1ZSBpcyBtdXRhdGluZy4gIEFsbCBtZXRob2RzCiAgICAgICAgICMgdGhhdCBhY3F1aXJlIG11dGV4IG11c3QgcmVsZWFzZSBpdCBiZWZvcmUgcmV0dXJuaW5nLiAgbXV0ZXgKICAgICAgICAgIyBpcyBzaGFyZWQgYmV0d2VlbiB0aGUgdGhyZWUgY29uZGl0aW9ucywgc28gYWNxdWlyaW5nIGFuZAogICAgICAgICAjIHJlbGVhc2luZyB0aGUgY29uZGl0aW9ucyBhbHNvIGFjcXVpcmVzIGFuZCByZWxlYXNlcyBtdXRleC4KLSAgICAgICAgc2VsZi5tdXRleCA9IF90aHJlYWRpbmcuTG9jaygpCisgICAgICAgIHNlbGYubXV0ZXggPSB0aHJlYWRpbmcuTG9jaygpCisKICAgICAgICAgIyBOb3RpZnkgbm90X2VtcHR5IHdoZW5ldmVyIGFuIGl0ZW0gaXMgYWRkZWQgdG8gdGhlIHF1ZXVlOyBhCiAgICAgICAgICMgdGhyZWFkIHdhaXRpbmcgdG8gZ2V0IGlzIG5vdGlmaWVkIHRoZW4uCi0gICAgICAgIHNlbGYubm90X2VtcHR5ID0gX3RocmVhZGluZy5Db25kaXRpb24oc2VsZi5tdXRleCkKKyAgICAgICAgc2VsZi5ub3RfZW1wdHkgPSB0aHJlYWRpbmcuQ29uZGl0aW9uKHNlbGYubXV0ZXgpCisKICAgICAgICAgIyBOb3RpZnkgbm90X2Z1bGwgd2hlbmV2ZXIgYW4gaXRlbSBpcyByZW1vdmVkIGZyb20gdGhlIHF1ZXVlOwogICAgICAgICAjIGEgdGhyZWFkIHdhaXRpbmcgdG8gcHV0IGlzIG5vdGlmaWVkIHRoZW4uCi0gICAgICAgIHNlbGYubm90X2Z1bGwgPSBfdGhyZWFkaW5nLkNvbmRpdGlvbihzZWxmLm11dGV4KQorICAgICAgICBzZWxmLm5vdF9mdWxsID0gdGhyZWFkaW5nLkNvbmRpdGlvbihzZWxmLm11dGV4KQorCiAgICAgICAgICMgTm90aWZ5IGFsbF90YXNrc19kb25lIHdoZW5ldmVyIHRoZSBudW1iZXIgb2YgdW5maW5pc2hlZCB0YXNrcwogICAgICAgICAjIGRyb3BzIHRvIHplcm87IHRocmVhZCB3YWl0aW5nIHRvIGpvaW4oKSBpcyBub3RpZmllZCB0byByZXN1bWUKLSAgICAgICAgc2VsZi5hbGxfdGFza3NfZG9uZSA9IF90aHJlYWRpbmcuQ29uZGl0aW9uKHNlbGYubXV0ZXgpCisgICAgICAgIHNlbGYuYWxsX3Rhc2tzX2RvbmUgPSB0aHJlYWRpbmcuQ29uZGl0aW9uKHNlbGYubXV0ZXgpCiAgICAgICAgIHNlbGYudW5maW5pc2hlZF90YXNrcyA9IDAKIAogICAgIGRlZiB0YXNrX2RvbmUoc2VsZik6Ci0gICAgICAgICIiIkluZGljYXRlIHRoYXQgYSBmb3JtZXJseSBlbnF1ZXVlZCB0YXNrIGlzIGNvbXBsZXRlLgorICAgICAgICAnJydJbmRpY2F0ZSB0aGF0IGEgZm9ybWVybHkgZW5xdWV1ZWQgdGFzayBpcyBjb21wbGV0ZS4KIAogICAgICAgICBVc2VkIGJ5IFF1ZXVlIGNvbnN1bWVyIHRocmVhZHMuICBGb3IgZWFjaCBnZXQoKSB1c2VkIHRvIGZldGNoIGEgdGFzaywKICAgICAgICAgYSBzdWJzZXF1ZW50IGNhbGwgdG8gdGFza19kb25lKCkgdGVsbHMgdGhlIHF1ZXVlIHRoYXQgdGhlIHByb2Nlc3NpbmcKQEAgLTU1LDQzICs2MywzNSBAQAogCiAgICAgICAgIFJhaXNlcyBhIFZhbHVlRXJyb3IgaWYgY2FsbGVkIG1vcmUgdGltZXMgdGhhbiB0aGVyZSB3ZXJlIGl0ZW1zCiAgICAgICAgIHBsYWNlZCBpbiB0aGUgcXVldWUuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmFsbF90YXNrc19kb25lLmFjcXVpcmUoKQotICAgICAgICB0cnk6CisgICAgICAgICcnJworICAgICAgICB3aXRoIHNlbGYuYWxsX3Rhc2tzX2RvbmU6CiAgICAgICAgICAgICB1bmZpbmlzaGVkID0gc2VsZi51bmZpbmlzaGVkX3Rhc2tzIC0gMQogICAgICAgICAgICAgaWYgdW5maW5pc2hlZCA8PSAwOgogICAgICAgICAgICAgICAgIGlmIHVuZmluaXNoZWQgPCAwOgogICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd0YXNrX2RvbmUoKSBjYWxsZWQgdG9vIG1hbnkgdGltZXMnKQogICAgICAgICAgICAgICAgIHNlbGYuYWxsX3Rhc2tzX2RvbmUubm90aWZ5X2FsbCgpCiAgICAgICAgICAgICBzZWxmLnVuZmluaXNoZWRfdGFza3MgPSB1bmZpbmlzaGVkCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLmFsbF90YXNrc19kb25lLnJlbGVhc2UoKQogCiAgICAgZGVmIGpvaW4oc2VsZik6Ci0gICAgICAgICIiIkJsb2NrcyB1bnRpbCBhbGwgaXRlbXMgaW4gdGhlIFF1ZXVlIGhhdmUgYmVlbiBnb3R0ZW4gYW5kIHByb2Nlc3NlZC4KKyAgICAgICAgJycnQmxvY2tzIHVudGlsIGFsbCBpdGVtcyBpbiB0aGUgUXVldWUgaGF2ZSBiZWVuIGdvdHRlbiBhbmQgcHJvY2Vzc2VkLgogCiAgICAgICAgIFRoZSBjb3VudCBvZiB1bmZpbmlzaGVkIHRhc2tzIGdvZXMgdXAgd2hlbmV2ZXIgYW4gaXRlbSBpcyBhZGRlZCB0byB0aGUKICAgICAgICAgcXVldWUuIFRoZSBjb3VudCBnb2VzIGRvd24gd2hlbmV2ZXIgYSBjb25zdW1lciB0aHJlYWQgY2FsbHMgdGFza19kb25lKCkKICAgICAgICAgdG8gaW5kaWNhdGUgdGhlIGl0ZW0gd2FzIHJldHJpZXZlZCBhbmQgYWxsIHdvcmsgb24gaXQgaXMgY29tcGxldGUuCiAKICAgICAgICAgV2hlbiB0aGUgY291bnQgb2YgdW5maW5pc2hlZCB0YXNrcyBkcm9wcyB0byB6ZXJvLCBqb2luKCkgdW5ibG9ja3MuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmFsbF90YXNrc19kb25lLmFjcXVpcmUoKQotICAgICAgICB0cnk6CisgICAgICAgICcnJworICAgICAgICB3aXRoIHNlbGYuYWxsX3Rhc2tzX2RvbmU6CiAgICAgICAgICAgICB3aGlsZSBzZWxmLnVuZmluaXNoZWRfdGFza3M6CiAgICAgICAgICAgICAgICAgc2VsZi5hbGxfdGFza3NfZG9uZS53YWl0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuYWxsX3Rhc2tzX2RvbmUucmVsZWFzZSgpCiAKICAgICBkZWYgcXNpemUoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiB0aGUgYXBwcm94aW1hdGUgc2l6ZSBvZiB0aGUgcXVldWUgKG5vdCByZWxpYWJsZSEpLiIiIgotICAgICAgICBzZWxmLm11dGV4LmFjcXVpcmUoKQotICAgICAgICBuID0gc2VsZi5fcXNpemUoKQotICAgICAgICBzZWxmLm11dGV4LnJlbGVhc2UoKQotICAgICAgICByZXR1cm4gbgorICAgICAgICAnJydSZXR1cm4gdGhlIGFwcHJveGltYXRlIHNpemUgb2YgdGhlIHF1ZXVlIChub3QgcmVsaWFibGUhKS4nJycKKyAgICAgICAgd2l0aCBzZWxmLm11dGV4OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3FzaXplKCkKIAogICAgIGRlZiBlbXB0eShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIFRydWUgaWYgdGhlIHF1ZXVlIGlzIGVtcHR5LCBGYWxzZSBvdGhlcndpc2UgKG5vdCByZWxpYWJsZSEpLgorICAgICAgICAnJydSZXR1cm4gVHJ1ZSBpZiB0aGUgcXVldWUgaXMgZW1wdHksIEZhbHNlIG90aGVyd2lzZSAobm90IHJlbGlhYmxlISkuCiAKICAgICAgICAgVGhpcyBtZXRob2QgaXMgbGlrZWx5IHRvIGJlIHJlbW92ZWQgYXQgc29tZSBwb2ludC4gIFVzZSBxc2l6ZSgpID09IDAKICAgICAgICAgYXMgYSBkaXJlY3Qgc3Vic3RpdHV0ZSwgYnV0IGJlIGF3YXJlIHRoYXQgZWl0aGVyIGFwcHJvYWNoIHJpc2tzIGEgcmFjZQpAQCAtMTAwLDI5ICsxMDAsMjMgQEAKIAogICAgICAgICBUbyBjcmVhdGUgY29kZSB0aGF0IG5lZWRzIHRvIHdhaXQgZm9yIGFsbCBxdWV1ZWQgdGFza3MgdG8gYmUKICAgICAgICAgY29tcGxldGVkLCB0aGUgcHJlZmVycmVkIHRlY2huaXF1ZSBpcyB0byB1c2UgdGhlIGpvaW4oKSBtZXRob2QuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYubXV0ZXguYWNxdWlyZSgpCi0gICAgICAgIG4gPSBub3Qgc2VsZi5fcXNpemUoKQotICAgICAgICBzZWxmLm11dGV4LnJlbGVhc2UoKQotICAgICAgICByZXR1cm4gbgorICAgICAgICAnJycKKyAgICAgICAgd2l0aCBzZWxmLm11dGV4OgorICAgICAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9xc2l6ZSgpCiAKICAgICBkZWYgZnVsbChzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIFRydWUgaWYgdGhlIHF1ZXVlIGlzIGZ1bGwsIEZhbHNlIG90aGVyd2lzZSAobm90IHJlbGlhYmxlISkuCisgICAgICAgICcnJ1JldHVybiBUcnVlIGlmIHRoZSBxdWV1ZSBpcyBmdWxsLCBGYWxzZSBvdGhlcndpc2UgKG5vdCByZWxpYWJsZSEpLgogCiAgICAgICAgIFRoaXMgbWV0aG9kIGlzIGxpa2VseSB0byBiZSByZW1vdmVkIGF0IHNvbWUgcG9pbnQuICBVc2UgcXNpemUoKSA+PSBuCiAgICAgICAgIGFzIGEgZGlyZWN0IHN1YnN0aXR1dGUsIGJ1dCBiZSBhd2FyZSB0aGF0IGVpdGhlciBhcHByb2FjaCByaXNrcyBhIHJhY2UKICAgICAgICAgY29uZGl0aW9uIHdoZXJlIGEgcXVldWUgY2FuIHNocmluayBiZWZvcmUgdGhlIHJlc3VsdCBvZiBmdWxsKCkgb3IKICAgICAgICAgcXNpemUoKSBjYW4gYmUgdXNlZC4KLQotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5tdXRleC5hY3F1aXJlKCkKLSAgICAgICAgbiA9IDAgPCBzZWxmLm1heHNpemUgPD0gc2VsZi5fcXNpemUoKQotICAgICAgICBzZWxmLm11dGV4LnJlbGVhc2UoKQotICAgICAgICByZXR1cm4gbgorICAgICAgICAnJycKKyAgICAgICAgd2l0aCBzZWxmLm11dGV4OgorICAgICAgICAgICAgcmV0dXJuIDAgPCBzZWxmLm1heHNpemUgPD0gc2VsZi5fcXNpemUoKQogCiAgICAgZGVmIHB1dChzZWxmLCBpdGVtLCBibG9jaz1UcnVlLCB0aW1lb3V0PU5vbmUpOgotICAgICAgICAiIiJQdXQgYW4gaXRlbSBpbnRvIHRoZSBxdWV1ZS4KKyAgICAgICAgJycnUHV0IGFuIGl0ZW0gaW50byB0aGUgcXVldWUuCiAKICAgICAgICAgSWYgb3B0aW9uYWwgYXJncyAnYmxvY2snIGlzIHRydWUgYW5kICd0aW1lb3V0JyBpcyBOb25lICh0aGUgZGVmYXVsdCksCiAgICAgICAgIGJsb2NrIGlmIG5lY2Vzc2FyeSB1bnRpbCBhIGZyZWUgc2xvdCBpcyBhdmFpbGFibGUuIElmICd0aW1lb3V0JyBpcwpAQCAtMTMxLDkgKzEyNSw4IEBACiAgICAgICAgIE90aGVyd2lzZSAoJ2Jsb2NrJyBpcyBmYWxzZSksIHB1dCBhbiBpdGVtIG9uIHRoZSBxdWV1ZSBpZiBhIGZyZWUgc2xvdAogICAgICAgICBpcyBpbW1lZGlhdGVseSBhdmFpbGFibGUsIGVsc2UgcmFpc2UgdGhlIEZ1bGwgZXhjZXB0aW9uICgndGltZW91dCcKICAgICAgICAgaXMgaWdub3JlZCBpbiB0aGF0IGNhc2UpLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5ub3RfZnVsbC5hY3F1aXJlKCkKLSAgICAgICAgdHJ5OgorICAgICAgICAnJycKKyAgICAgICAgd2l0aCBzZWxmLm5vdF9mdWxsOgogICAgICAgICAgICAgaWYgc2VsZi5tYXhzaXplID4gMDoKICAgICAgICAgICAgICAgICBpZiBub3QgYmxvY2s6CiAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3FzaXplKCkgPj0gc2VsZi5tYXhzaXplOgpAQCAtMTQ0LDI4ICsxMzcsMTggQEAKICAgICAgICAgICAgICAgICBlbGlmIHRpbWVvdXQgPCAwOgogICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIndGltZW91dCcgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciIpCiAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgZW5kdGltZSA9IF90aW1lKCkgKyB0aW1lb3V0CisgICAgICAgICAgICAgICAgICAgIGVuZHRpbWUgPSB0aW1lKCkgKyB0aW1lb3V0CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlIHNlbGYuX3FzaXplKCkgPj0gc2VsZi5tYXhzaXplOgotICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nID0gZW5kdGltZSAtIF90aW1lKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmluZyA9IGVuZHRpbWUgLSB0aW1lKCkKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlbWFpbmluZyA8PSAwLjA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRnVsbAogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5ub3RfZnVsbC53YWl0KHJlbWFpbmluZykKICAgICAgICAgICAgIHNlbGYuX3B1dChpdGVtKQogICAgICAgICAgICAgc2VsZi51bmZpbmlzaGVkX3Rhc2tzICs9IDEKICAgICAgICAgICAgIHNlbGYubm90X2VtcHR5Lm5vdGlmeSgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLm5vdF9mdWxsLnJlbGVhc2UoKQotCi0gICAgZGVmIHB1dF9ub3dhaXQoc2VsZiwgaXRlbSk6Ci0gICAgICAgICIiIlB1dCBhbiBpdGVtIGludG8gdGhlIHF1ZXVlIHdpdGhvdXQgYmxvY2tpbmcuCi0KLSAgICAgICAgT25seSBlbnF1ZXVlIHRoZSBpdGVtIGlmIGEgZnJlZSBzbG90IGlzIGltbWVkaWF0ZWx5IGF2YWlsYWJsZS4KLSAgICAgICAgT3RoZXJ3aXNlIHJhaXNlIHRoZSBGdWxsIGV4Y2VwdGlvbi4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLnB1dChpdGVtLCBGYWxzZSkKIAogICAgIGRlZiBnZXQoc2VsZiwgYmxvY2s9VHJ1ZSwgdGltZW91dD1Ob25lKToKLSAgICAgICAgIiIiUmVtb3ZlIGFuZCByZXR1cm4gYW4gaXRlbSBmcm9tIHRoZSBxdWV1ZS4KKyAgICAgICAgJycnUmVtb3ZlIGFuZCByZXR1cm4gYW4gaXRlbSBmcm9tIHRoZSBxdWV1ZS4KIAogICAgICAgICBJZiBvcHRpb25hbCBhcmdzICdibG9jaycgaXMgdHJ1ZSBhbmQgJ3RpbWVvdXQnIGlzIE5vbmUgKHRoZSBkZWZhdWx0KSwKICAgICAgICAgYmxvY2sgaWYgbmVjZXNzYXJ5IHVudGlsIGFuIGl0ZW0gaXMgYXZhaWxhYmxlLiBJZiAndGltZW91dCcgaXMKQEAgLTE3NCw5ICsxNTcsOCBAQAogICAgICAgICBPdGhlcndpc2UgKCdibG9jaycgaXMgZmFsc2UpLCByZXR1cm4gYW4gaXRlbSBpZiBvbmUgaXMgaW1tZWRpYXRlbHkKICAgICAgICAgYXZhaWxhYmxlLCBlbHNlIHJhaXNlIHRoZSBFbXB0eSBleGNlcHRpb24gKCd0aW1lb3V0JyBpcyBpZ25vcmVkCiAgICAgICAgIGluIHRoYXQgY2FzZSkuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLm5vdF9lbXB0eS5hY3F1aXJlKCkKLSAgICAgICAgdHJ5OgorICAgICAgICAnJycKKyAgICAgICAgd2l0aCBzZWxmLm5vdF9lbXB0eToKICAgICAgICAgICAgIGlmIG5vdCBibG9jazoKICAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fcXNpemUoKToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRW1wdHkKQEAgLTE4NiwyNSArMTY4LDMxIEBACiAgICAgICAgICAgICBlbGlmIHRpbWVvdXQgPCAwOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIid0aW1lb3V0JyBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyIikKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZW5kdGltZSA9IF90aW1lKCkgKyB0aW1lb3V0CisgICAgICAgICAgICAgICAgZW5kdGltZSA9IHRpbWUoKSArIHRpbWVvdXQKICAgICAgICAgICAgICAgICB3aGlsZSBub3Qgc2VsZi5fcXNpemUoKToKLSAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nID0gZW5kdGltZSAtIF90aW1lKCkKKyAgICAgICAgICAgICAgICAgICAgcmVtYWluaW5nID0gZW5kdGltZSAtIHRpbWUoKQogICAgICAgICAgICAgICAgICAgICBpZiByZW1haW5pbmcgPD0gMC4wOgogICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRW1wdHkKICAgICAgICAgICAgICAgICAgICAgc2VsZi5ub3RfZW1wdHkud2FpdChyZW1haW5pbmcpCiAgICAgICAgICAgICBpdGVtID0gc2VsZi5fZ2V0KCkKICAgICAgICAgICAgIHNlbGYubm90X2Z1bGwubm90aWZ5KCkKICAgICAgICAgICAgIHJldHVybiBpdGVtCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLm5vdF9lbXB0eS5yZWxlYXNlKCkKKworICAgIGRlZiBwdXRfbm93YWl0KHNlbGYsIGl0ZW0pOgorICAgICAgICAnJydQdXQgYW4gaXRlbSBpbnRvIHRoZSBxdWV1ZSB3aXRob3V0IGJsb2NraW5nLgorCisgICAgICAgIE9ubHkgZW5xdWV1ZSB0aGUgaXRlbSBpZiBhIGZyZWUgc2xvdCBpcyBpbW1lZGlhdGVseSBhdmFpbGFibGUuCisgICAgICAgIE90aGVyd2lzZSByYWlzZSB0aGUgRnVsbCBleGNlcHRpb24uCisgICAgICAgICcnJworICAgICAgICByZXR1cm4gc2VsZi5wdXQoaXRlbSwgYmxvY2s9RmFsc2UpCiAKICAgICBkZWYgZ2V0X25vd2FpdChzZWxmKToKLSAgICAgICAgIiIiUmVtb3ZlIGFuZCByZXR1cm4gYW4gaXRlbSBmcm9tIHRoZSBxdWV1ZSB3aXRob3V0IGJsb2NraW5nLgorICAgICAgICAnJydSZW1vdmUgYW5kIHJldHVybiBhbiBpdGVtIGZyb20gdGhlIHF1ZXVlIHdpdGhvdXQgYmxvY2tpbmcuCiAKICAgICAgICAgT25seSBnZXQgYW4gaXRlbSBpZiBvbmUgaXMgaW1tZWRpYXRlbHkgYXZhaWxhYmxlLiBPdGhlcndpc2UKICAgICAgICAgcmFpc2UgdGhlIEVtcHR5IGV4Y2VwdGlvbi4KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmdldChGYWxzZSkKKyAgICAgICAgJycnCisgICAgICAgIHJldHVybiBzZWxmLmdldChibG9jaz1GYWxzZSkKIAogICAgICMgT3ZlcnJpZGUgdGhlc2UgbWV0aG9kcyB0byBpbXBsZW1lbnQgb3RoZXIgcXVldWUgb3JnYW5pemF0aW9ucwogICAgICMgKGUuZy4gc3RhY2sgb3IgcHJpb3JpdHkgcXVldWUpLgpAQCAtMjE0LDcgKzIwMiw3IEBACiAgICAgZGVmIF9pbml0KHNlbGYsIG1heHNpemUpOgogICAgICAgICBzZWxmLnF1ZXVlID0gZGVxdWUoKQogCi0gICAgZGVmIF9xc2l6ZShzZWxmLCBsZW49bGVuKToKKyAgICBkZWYgX3FzaXplKHNlbGYpOgogICAgICAgICByZXR1cm4gbGVuKHNlbGYucXVldWUpCiAKICAgICAjIFB1dCBhIG5ldyBpdGVtIGluIHRoZSBxdWV1ZQpAQCAtMjM1LDEzICsyMjMsMTMgQEAKICAgICBkZWYgX2luaXQoc2VsZiwgbWF4c2l6ZSk6CiAgICAgICAgIHNlbGYucXVldWUgPSBbXQogCi0gICAgZGVmIF9xc2l6ZShzZWxmLCBsZW49bGVuKToKKyAgICBkZWYgX3FzaXplKHNlbGYpOgogICAgICAgICByZXR1cm4gbGVuKHNlbGYucXVldWUpCiAKLSAgICBkZWYgX3B1dChzZWxmLCBpdGVtLCBoZWFwcHVzaD1oZWFwcS5oZWFwcHVzaCk6CisgICAgZGVmIF9wdXQoc2VsZiwgaXRlbSk6CiAgICAgICAgIGhlYXBwdXNoKHNlbGYucXVldWUsIGl0ZW0pCiAKLSAgICBkZWYgX2dldChzZWxmLCBoZWFwcG9wPWhlYXBxLmhlYXBwb3ApOgorICAgIGRlZiBfZ2V0KHNlbGYpOgogICAgICAgICByZXR1cm4gaGVhcHBvcChzZWxmLnF1ZXVlKQogCiAKQEAgLTI1MSw3ICsyMzksNyBAQAogICAgIGRlZiBfaW5pdChzZWxmLCBtYXhzaXplKToKICAgICAgICAgc2VsZi5xdWV1ZSA9IFtdCiAKLSAgICBkZWYgX3FzaXplKHNlbGYsIGxlbj1sZW4pOgorICAgIGRlZiBfcXNpemUoc2VsZik6CiAgICAgICAgIHJldHVybiBsZW4oc2VsZi5xdWV1ZSkKIAogICAgIGRlZiBfcHV0KHNlbGYsIGl0ZW0pOgpkaWZmIC0tZ2l0IGEvTGliL3JhbmRvbS5weSBiL0xpYi9yYW5kb20ucHkKaW5kZXggOWI2MTIwOC4uNjM4OGYyOSAxMDA2NDQKLS0tIGEvTGliL3JhbmRvbS5weQorKysgYi9MaWIvcmFuZG9tLnB5CkBAIC00MSw3ICs0MSw3IEBACiBmcm9tIG1hdGggaW1wb3J0IGxvZyBhcyBfbG9nLCBleHAgYXMgX2V4cCwgcGkgYXMgX3BpLCBlIGFzIF9lLCBjZWlsIGFzIF9jZWlsCiBmcm9tIG1hdGggaW1wb3J0IHNxcnQgYXMgX3NxcnQsIGFjb3MgYXMgX2Fjb3MsIGNvcyBhcyBfY29zLCBzaW4gYXMgX3NpbgogZnJvbSBvcyBpbXBvcnQgdXJhbmRvbSBhcyBfdXJhbmRvbQotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgU2V0IGFzIF9TZXQsIFNlcXVlbmNlIGFzIF9TZXF1ZW5jZQorZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IFNldCBhcyBfU2V0LCBTZXF1ZW5jZSBhcyBfU2VxdWVuY2UKIGZyb20gaGFzaGxpYiBpbXBvcnQgc2hhNTEyIGFzIF9zaGE1MTIKIAogX19hbGxfXyA9IFsiUmFuZG9tIiwic2VlZCIsInJhbmRvbSIsInVuaWZvcm0iLCJyYW5kaW50IiwiY2hvaWNlIiwic2FtcGxlIiwKZGlmZiAtLWdpdCBhL0xpYi9yZS5weSBiL0xpYi9yZS5weQppbmRleCA4NWM1YTU3Li45YWU1MTc0IDEwMDY0NAotLS0gYS9MaWIvcmUucHkKKysrIGIvTGliL3JlLnB5CkBAIC0yMTUsNyArMjE1LDcgQEAKIAogZGVmIHB1cmdlKCk6CiAgICAgIkNsZWFyIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gY2FjaGVzIgotICAgIF9jb21waWxlX3R5cGVkLmNhY2hlX2NsZWFyKCkKKyAgICBfY29tcGlsZS5jYWNoZV9jbGVhcigpCiAgICAgX2NvbXBpbGVfcmVwbC5jYWNoZV9jbGVhcigpCiAKIGRlZiB0ZW1wbGF0ZShwYXR0ZXJuLCBmbGFncz0wKToKQEAgLTIyMywxMiArMjIzLDE0IEBACiAgICAgcmV0dXJuIF9jb21waWxlKHBhdHRlcm4sIGZsYWdzfFQpCiAKIF9hbHBoYW51bV9zdHIgPSBmcm96ZW5zZXQoCi0gICAgImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVowMTIzNDU2Nzg5MCIpCisgICAgIl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OTAiKQogX2FscGhhbnVtX2J5dGVzID0gZnJvemVuc2V0KAotICAgIGIiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0NTY3ODkwIikKKyAgICBiIl9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMDEyMzQ1Njc4OTAiKQogCiBkZWYgZXNjYXBlKHBhdHRlcm4pOgotICAgICJFc2NhcGUgYWxsIG5vbi1hbHBoYW51bWVyaWMgY2hhcmFjdGVycyBpbiBwYXR0ZXJuLiIKKyAgICAiIiIKKyAgICBFc2NhcGUgYWxsIHRoZSBjaGFyYWN0ZXJzIGluIHBhdHRlcm4gZXhjZXB0IEFTQ0lJIGxldHRlcnMsIG51bWJlcnMgYW5kICdfJy4KKyAgICAiIiIKICAgICBpZiBpc2luc3RhbmNlKHBhdHRlcm4sIHN0cik6CiAgICAgICAgIGFscGhhbnVtID0gX2FscGhhbnVtX3N0cgogICAgICAgICBzID0gbGlzdChwYXR0ZXJuKQpAQCAtMjU5LDExICsyNjEsOCBAQAogCiBfcGF0dGVybl90eXBlID0gdHlwZShzcmVfY29tcGlsZS5jb21waWxlKCIiLCAwKSkKIAorQGZ1bmN0b29scy5scnVfY2FjaGUobWF4c2l6ZT01MDAsIHR5cGVkPVRydWUpCiBkZWYgX2NvbXBpbGUocGF0dGVybiwgZmxhZ3MpOgotICAgIHJldHVybiBfY29tcGlsZV90eXBlZCh0eXBlKHBhdHRlcm4pLCBwYXR0ZXJuLCBmbGFncykKLQotQGZ1bmN0b29scy5scnVfY2FjaGUobWF4c2l6ZT01MDApCi1kZWYgX2NvbXBpbGVfdHlwZWQodGV4dF9ieXRlc190eXBlLCBwYXR0ZXJuLCBmbGFncyk6CiAgICAgIyBpbnRlcm5hbDogY29tcGlsZSBwYXR0ZXJuCiAgICAgaWYgaXNpbnN0YW5jZShwYXR0ZXJuLCBfcGF0dGVybl90eXBlKToKICAgICAgICAgaWYgZmxhZ3M6CmRpZmYgLS1naXQgYS9MaWIvcnVucHkucHkgYi9MaWIvcnVucHkucHkKaW5kZXggMzFlNWU1NS4uNzFjMTc1ZiAxMDA2NDQKLS0tIGEvTGliL3J1bnB5LnB5CisrKyBiL0xpYi9ydW5weS5weQpAQCAtOSw2ICs5LDggQEAKICMgV3JpdHRlbiBieSBOaWNrIENvZ2hsYW4gPG5jb2dobGFuIGF0IGdtYWlsLmNvbT4KICMgICAgdG8gaW1wbGVtZW50IFBFUCAzMzggKEV4ZWN1dGluZyBNb2R1bGVzIGFzIFNjcmlwdHMpCiAKKworaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBpbXBvcnQgaW1wCiBmcm9tIHBrZ3V0aWwgaW1wb3J0IHJlYWRfY29kZQpAQCAtOTQsNyArOTYsNyBAQAogICAgIGZvciBhdHRyIGluICgiZ2V0X2ZpbGVuYW1lIiwgIl9nZXRfZmlsZW5hbWUiKToKICAgICAgICAgbWV0aCA9IGdldGF0dHIobG9hZGVyLCBhdHRyLCBOb25lKQogICAgICAgICBpZiBtZXRoIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmV0dXJuIG1ldGgobW9kX25hbWUpCisgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5hYnNwYXRoKG1ldGgobW9kX25hbWUpKQogICAgIHJldHVybiBOb25lCiAKICMgSGVscGVyIHRvIGdldCB0aGUgbG9hZGVyLCBjb2RlIGFuZCBmaWxlbmFtZSBmb3IgYSBtb2R1bGUKQEAgLTE5OCwxMCArMjAwLDYgQEAKICAgICB0cnk6CiAgICAgICAgIGltcG9ydGVyID0gY2FjaGVbcGF0aF9uYW1lXQogICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgIyBOb3QgeWV0IGNhY2hlZC4gRmxhZyBhcyB1c2luZyB0aGUKLSAgICAgICAgIyBzdGFuZGFyZCBtYWNoaW5lcnkgdW50aWwgd2UgZmluaXNoCi0gICAgICAgICMgY2hlY2tpbmcgdGhlIGhvb2tzCi0gICAgICAgIGNhY2hlW3BhdGhfbmFtZV0gPSBOb25lCiAgICAgICAgIGZvciBob29rIGluIHN5cy5wYXRoX2hvb2tzOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGltcG9ydGVyID0gaG9vayhwYXRoX25hbWUpCkBAIC0yMDksMTQgKzIwNyw3IEBACiAgICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBUaGUgZm9sbG93aW5nIGNoZWNrIGxvb2tzIGEgYml0IG9kZC4gVGhlIHRyaWNrIGlzIHRoYXQKLSAgICAgICAgICAgICMgTnVsbEltcG9ydGVyIHRocm93cyBJbXBvcnRFcnJvciBpZiB0aGUgc3VwcGxpZWQgcGF0aCBpcyBhCi0gICAgICAgICAgICAjICp2YWxpZCogZGlyZWN0b3J5IGVudHJ5IChhbmQgaGVuY2UgYWJsZSB0byBiZSBoYW5kbGVkCi0gICAgICAgICAgICAjIGJ5IHRoZSBzdGFuZGFyZCBpbXBvcnQgbWFjaGluZXJ5KQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGltcG9ydGVyID0gaW1wLk51bGxJbXBvcnRlcihwYXRoX25hbWUpCi0gICAgICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIGltcG9ydGVyID0gTm9uZQogICAgICAgICBjYWNoZVtwYXRoX25hbWVdID0gaW1wb3J0ZXIKICAgICByZXR1cm4gaW1wb3J0ZXIKIApAQCAtMjQzLDcgKzIzNCw3IEBACiAgICAgaWYgcnVuX25hbWUgaXMgTm9uZToKICAgICAgICAgcnVuX25hbWUgPSAiPHJ1bl9wYXRoPiIKICAgICBpbXBvcnRlciA9IF9nZXRfaW1wb3J0ZXIocGF0aF9uYW1lKQotICAgIGlmIGlzaW5zdGFuY2UoaW1wb3J0ZXIsIGltcC5OdWxsSW1wb3J0ZXIpOgorICAgIGlmIGlzaW5zdGFuY2UoaW1wb3J0ZXIsICh0eXBlKE5vbmUpLCBpbXAuTnVsbEltcG9ydGVyKSk6CiAgICAgICAgICMgTm90IGEgdmFsaWQgc3lzLnBhdGggZW50cnksIHNvIHJ1biB0aGUgY29kZSBkaXJlY3RseQogICAgICAgICAjIGV4ZWNmaWxlKCkgZG9lc24ndCBoZWxwIGFzIHdlIHdhbnQgdG8gYWxsb3cgY29tcGlsZWQgZmlsZXMKICAgICAgICAgY29kZSA9IF9nZXRfY29kZV9mcm9tX2ZpbGUocGF0aF9uYW1lKQpkaWZmIC0tZ2l0IGEvTGliL3NjaGVkLnB5IGIvTGliL3NjaGVkLnB5CmluZGV4IGExMTk4OTIuLjU1NTFmNzEgMTAwNjQ0Ci0tLSBhL0xpYi9zY2hlZC5weQorKysgYi9MaWIvc2NoZWQucHkKQEAgLTI4LDEyICsyOCwyMSBAQAogIyBYWFggaW5zdGVhZCBvZiBoYXZpbmcgdG8gZGVmaW5lIGEgbW9kdWxlIG9yIGNsYXNzIGp1c3QgdG8gaG9sZAogIyBYWFggdGhlIGdsb2JhbCBzdGF0ZSBvZiB5b3VyIHBhcnRpY3VsYXIgdGltZSBhbmQgZGVsYXkgZnVuY3Rpb25zLgogCitpbXBvcnQgdGltZQogaW1wb3J0IGhlYXBxCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCit0cnk6CisgICAgaW1wb3J0IHRocmVhZGluZworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCBkdW1teV90aHJlYWRpbmcgYXMgdGhyZWFkaW5nCit0cnk6CisgICAgZnJvbSB0aW1lIGltcG9ydCBtb25vdG9uaWMgYXMgX3RpbWUKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmcm9tIHRpbWUgaW1wb3J0IHRpbWUgYXMgX3RpbWUKIAogX19hbGxfXyA9IFsic2NoZWR1bGVyIl0KIAotY2xhc3MgRXZlbnQobmFtZWR0dXBsZSgnRXZlbnQnLCAndGltZSwgcHJpb3JpdHksIGFjdGlvbiwgYXJndW1lbnQnKSk6CitjbGFzcyBFdmVudChuYW1lZHR1cGxlKCdFdmVudCcsICd0aW1lLCBwcmlvcml0eSwgYWN0aW9uLCBhcmd1bWVudCwga3dhcmdzJykpOgogICAgIGRlZiBfX2VxX18ocywgbyk6IHJldHVybiAocy50aW1lLCBzLnByaW9yaXR5KSA9PSAoby50aW1lLCBvLnByaW9yaXR5KQogICAgIGRlZiBfX25lX18ocywgbyk6IHJldHVybiAocy50aW1lLCBzLnByaW9yaXR5KSAhPSAoby50aW1lLCBvLnByaW9yaXR5KQogICAgIGRlZiBfX2x0X18ocywgbyk6IHJldHVybiAocy50aW1lLCBzLnByaW9yaXR5KSA8ICAoby50aW1lLCBvLnByaW9yaXR5KQpAQCAtNDIsMzIgKzUxLDM2IEBACiAgICAgZGVmIF9fZ2VfXyhzLCBvKTogcmV0dXJuIChzLnRpbWUsIHMucHJpb3JpdHkpID49IChvLnRpbWUsIG8ucHJpb3JpdHkpCiAKIGNsYXNzIHNjaGVkdWxlcjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGltZWZ1bmMsIGRlbGF5ZnVuYyk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGltZWZ1bmM9X3RpbWUsIGRlbGF5ZnVuYz10aW1lLnNsZWVwKToKICAgICAgICAgIiIiSW5pdGlhbGl6ZSBhIG5ldyBpbnN0YW5jZSwgcGFzc2luZyB0aGUgdGltZSBhbmQgZGVsYXkKICAgICAgICAgZnVuY3Rpb25zIiIiCiAgICAgICAgIHNlbGYuX3F1ZXVlID0gW10KKyAgICAgICAgc2VsZi5fbG9jayA9IHRocmVhZGluZy5STG9jaygpCiAgICAgICAgIHNlbGYudGltZWZ1bmMgPSB0aW1lZnVuYwogICAgICAgICBzZWxmLmRlbGF5ZnVuYyA9IGRlbGF5ZnVuYwogCi0gICAgZGVmIGVudGVyYWJzKHNlbGYsIHRpbWUsIHByaW9yaXR5LCBhY3Rpb24sIGFyZ3VtZW50KToKKyAgICBkZWYgZW50ZXJhYnMoc2VsZiwgdGltZSwgcHJpb3JpdHksIGFjdGlvbiwgYXJndW1lbnQ9W10sIGt3YXJncz17fSk6CiAgICAgICAgICIiIkVudGVyIGEgbmV3IGV2ZW50IGluIHRoZSBxdWV1ZSBhdCBhbiBhYnNvbHV0ZSB0aW1lLgogCiAgICAgICAgIFJldHVybnMgYW4gSUQgZm9yIHRoZSBldmVudCB3aGljaCBjYW4gYmUgdXNlZCB0byByZW1vdmUgaXQsCiAgICAgICAgIGlmIG5lY2Vzc2FyeS4KIAogICAgICAgICAiIiIKLSAgICAgICAgZXZlbnQgPSBFdmVudCh0aW1lLCBwcmlvcml0eSwgYWN0aW9uLCBhcmd1bWVudCkKLSAgICAgICAgaGVhcHEuaGVhcHB1c2goc2VsZi5fcXVldWUsIGV2ZW50KQotICAgICAgICByZXR1cm4gZXZlbnQgIyBUaGUgSUQKKyAgICAgICAgd2l0aCBzZWxmLl9sb2NrOgorICAgICAgICAgICAgZXZlbnQgPSBFdmVudCh0aW1lLCBwcmlvcml0eSwgYWN0aW9uLCBhcmd1bWVudCwga3dhcmdzKQorICAgICAgICAgICAgaGVhcHEuaGVhcHB1c2goc2VsZi5fcXVldWUsIGV2ZW50KQorICAgICAgICAgICAgcmV0dXJuIGV2ZW50ICMgVGhlIElECiAKLSAgICBkZWYgZW50ZXIoc2VsZiwgZGVsYXksIHByaW9yaXR5LCBhY3Rpb24sIGFyZ3VtZW50KToKKyAgICBkZWYgZW50ZXIoc2VsZiwgZGVsYXksIHByaW9yaXR5LCBhY3Rpb24sIGFyZ3VtZW50PVtdLCBrd2FyZ3M9e30pOgogICAgICAgICAiIiJBIHZhcmlhbnQgdGhhdCBzcGVjaWZpZXMgdGhlIHRpbWUgYXMgYSByZWxhdGl2ZSB0aW1lLgogCiAgICAgICAgIFRoaXMgaXMgYWN0dWFsbHkgdGhlIG1vcmUgY29tbW9ubHkgdXNlZCBpbnRlcmZhY2UuCiAKICAgICAgICAgIiIiCi0gICAgICAgIHRpbWUgPSBzZWxmLnRpbWVmdW5jKCkgKyBkZWxheQotICAgICAgICByZXR1cm4gc2VsZi5lbnRlcmFicyh0aW1lLCBwcmlvcml0eSwgYWN0aW9uLCBhcmd1bWVudCkKKyAgICAgICAgd2l0aCBzZWxmLl9sb2NrOgorICAgICAgICAgICAgdGltZSA9IHNlbGYudGltZWZ1bmMoKSArIGRlbGF5CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lbnRlcmFicyh0aW1lLCBwcmlvcml0eSwgYWN0aW9uLCBhcmd1bWVudCwga3dhcmdzKQogCiAgICAgZGVmIGNhbmNlbChzZWxmLCBldmVudCk6CiAgICAgICAgICIiIlJlbW92ZSBhbiBldmVudCBmcm9tIHRoZSBxdWV1ZS4KQEAgLTc2LDE1ICs4OSwyMCBAQAogICAgICAgICBJZiB0aGUgZXZlbnQgaXMgbm90IGluIHRoZSBxdWV1ZSwgdGhpcyByYWlzZXMgVmFsdWVFcnJvci4KIAogICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fcXVldWUucmVtb3ZlKGV2ZW50KQotICAgICAgICBoZWFwcS5oZWFwaWZ5KHNlbGYuX3F1ZXVlKQorICAgICAgICB3aXRoIHNlbGYuX2xvY2s6CisgICAgICAgICAgICBzZWxmLl9xdWV1ZS5yZW1vdmUoZXZlbnQpCisgICAgICAgICAgICBoZWFwcS5oZWFwaWZ5KHNlbGYuX3F1ZXVlKQogCiAgICAgZGVmIGVtcHR5KHNlbGYpOgogICAgICAgICAiIiJDaGVjayB3aGV0aGVyIHRoZSBxdWV1ZSBpcyBlbXB0eS4iIiIKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9xdWV1ZQorICAgICAgICB3aXRoIHNlbGYuX2xvY2s6CisgICAgICAgICAgICByZXR1cm4gbm90IHNlbGYuX3F1ZXVlCiAKLSAgICBkZWYgcnVuKHNlbGYpOgorICAgIGRlZiBydW4oc2VsZiwgYmxvY2tpbmc9VHJ1ZSk6CiAgICAgICAgICIiIkV4ZWN1dGUgZXZlbnRzIHVudGlsIHRoZSBxdWV1ZSBpcyBlbXB0eS4KKyAgICAgICAgSWYgYmxvY2tpbmcgaXMgRmFsc2UgZXhlY3V0ZXMgdGhlIHNjaGVkdWxlZCBldmVudHMgZHVlIHRvCisgICAgICAgIGV4cGlyZSBzb29uZXN0IChpZiBhbnkpIGFuZCB0aGVuIHJldHVybiB0aGUgZGVhZGxpbmUgb2YgdGhlCisgICAgICAgIG5leHQgc2NoZWR1bGVkIGNhbGwgaW4gdGhlIHNjaGVkdWxlci4KIAogICAgICAgICBXaGVuIHRoZXJlIGlzIGEgcG9zaXRpdmUgZGVsYXkgdW50aWwgdGhlIGZpcnN0IGV2ZW50LCB0aGUKICAgICAgICAgZGVsYXkgZnVuY3Rpb24gaXMgY2FsbGVkIGFuZCB0aGUgZXZlbnQgaXMgbGVmdCBpbiB0aGUgcXVldWU7CkBAIC0xMDYsMjQgKzEyNCwyNyBAQAogICAgICAgICAiIiIKICAgICAgICAgIyBsb2NhbGl6ZSB2YXJpYWJsZSBhY2Nlc3MgdG8gbWluaW1pemUgb3ZlcmhlYWQKICAgICAgICAgIyBhbmQgdG8gaW1wcm92ZSB0aHJlYWQgc2FmZXR5Ci0gICAgICAgIHEgPSBzZWxmLl9xdWV1ZQotICAgICAgICBkZWxheWZ1bmMgPSBzZWxmLmRlbGF5ZnVuYwotICAgICAgICB0aW1lZnVuYyA9IHNlbGYudGltZWZ1bmMKLSAgICAgICAgcG9wID0gaGVhcHEuaGVhcHBvcAotICAgICAgICB3aGlsZSBxOgotICAgICAgICAgICAgdGltZSwgcHJpb3JpdHksIGFjdGlvbiwgYXJndW1lbnQgPSBjaGVja2VkX2V2ZW50ID0gcVswXQotICAgICAgICAgICAgbm93ID0gdGltZWZ1bmMoKQotICAgICAgICAgICAgaWYgbm93IDwgdGltZToKLSAgICAgICAgICAgICAgICBkZWxheWZ1bmModGltZSAtIG5vdykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZXZlbnQgPSBwb3AocSkKLSAgICAgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBldmVudCB3YXMgbm90IHJlbW92ZWQgb3IgYWx0ZXJlZAotICAgICAgICAgICAgICAgICMgYnkgYW5vdGhlciB0aHJlYWQgYWZ0ZXIgd2UgbGFzdCBsb29rZWQgYXQgcVswXS4KLSAgICAgICAgICAgICAgICBpZiBldmVudCBpcyBjaGVja2VkX2V2ZW50OgotICAgICAgICAgICAgICAgICAgICBhY3Rpb24oKmFyZ3VtZW50KQotICAgICAgICAgICAgICAgICAgICBkZWxheWZ1bmMoMCkgICAjIExldCBvdGhlciB0aHJlYWRzIHJ1bgorICAgICAgICB3aXRoIHNlbGYuX2xvY2s6CisgICAgICAgICAgICBxID0gc2VsZi5fcXVldWUKKyAgICAgICAgICAgIGRlbGF5ZnVuYyA9IHNlbGYuZGVsYXlmdW5jCisgICAgICAgICAgICB0aW1lZnVuYyA9IHNlbGYudGltZWZ1bmMKKyAgICAgICAgICAgIHBvcCA9IGhlYXBxLmhlYXBwb3AKKyAgICAgICAgICAgIHdoaWxlIHE6CisgICAgICAgICAgICAgICAgdGltZSwgcHJpb3JpdHksIGFjdGlvbiwgYXJndW1lbnQsIGt3YXJncyA9IGNoZWNrZWRfZXZlbnQgPSBxWzBdCisgICAgICAgICAgICAgICAgbm93ID0gdGltZWZ1bmMoKQorICAgICAgICAgICAgICAgIGlmIG5vdyA8IHRpbWU6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBibG9ja2luZzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aW1lIC0gbm93CisgICAgICAgICAgICAgICAgICAgIGRlbGF5ZnVuYyh0aW1lIC0gbm93KQogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGhlYXBxLmhlYXBwdXNoKHEsIGV2ZW50KQorICAgICAgICAgICAgICAgICAgICBldmVudCA9IHBvcChxKQorICAgICAgICAgICAgICAgICAgICAjIFZlcmlmeSB0aGF0IHRoZSBldmVudCB3YXMgbm90IHJlbW92ZWQgb3IgYWx0ZXJlZAorICAgICAgICAgICAgICAgICAgICAjIGJ5IGFub3RoZXIgdGhyZWFkIGFmdGVyIHdlIGxhc3QgbG9va2VkIGF0IHFbMF0uCisgICAgICAgICAgICAgICAgICAgIGlmIGV2ZW50IGlzIGNoZWNrZWRfZXZlbnQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24oKmFyZ3VtZW50LCAqKmt3YXJncykKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbGF5ZnVuYygwKSAgICMgTGV0IG90aGVyIHRocmVhZHMgcnVuCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBoZWFwcS5oZWFwcHVzaChxLCBldmVudCkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBxdWV1ZShzZWxmKToKQEAgLTEzNiw1ICsxNTcsNiBAQAogICAgICAgICAjIFVzZSBoZWFwcSB0byBzb3J0IHRoZSBxdWV1ZSByYXRoZXIgdGhhbiB1c2luZyAnc29ydGVkKHNlbGYuX3F1ZXVlKScuCiAgICAgICAgICMgV2l0aCBoZWFwcSwgdHdvIGV2ZW50cyBzY2hlZHVsZWQgYXQgdGhlIHNhbWUgdGltZSB3aWxsIHNob3cgaW4KICAgICAgICAgIyB0aGUgYWN0dWFsIG9yZGVyIHRoZXkgd291bGQgYmUgcmV0cmlldmVkLgotICAgICAgICBldmVudHMgPSBzZWxmLl9xdWV1ZVs6XQotICAgICAgICByZXR1cm4gbWFwKGhlYXBxLmhlYXBwb3AsIFtldmVudHNdKmxlbihldmVudHMpKQorICAgICAgICB3aXRoIHNlbGYuX2xvY2s6CisgICAgICAgICAgICBldmVudHMgPSBzZWxmLl9xdWV1ZVs6XQorICAgICAgICAgICAgcmV0dXJuIG1hcChoZWFwcS5oZWFwcG9wLCBbZXZlbnRzXSpsZW4oZXZlbnRzKSkKZGlmZiAtLWdpdCBhL0xpYi9zaGxleC5weSBiL0xpYi9zaGxleC5weQppbmRleCAzZWRkM2RiLi42OWYzYjQ1IDEwMDY0NAotLS0gYS9MaWIvc2hsZXgucHkKKysrIGIvTGliL3NobGV4LnB5CkBAIC02LDEzICs2LDE0IEBACiAjIFBvc2l4IGNvbXBsaWFuY2UsIHNwbGl0KCksIHN0cmluZyBhcmd1bWVudHMsIGFuZAogIyBpdGVyYXRvciBpbnRlcmZhY2UgYnkgR3VzdGF2byBOaWVtZXllciwgQXByaWwgMjAwMy4KIAotaW1wb3J0IG9zLnBhdGgKK2ltcG9ydCBvcworaW1wb3J0IHJlCiBpbXBvcnQgc3lzCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQogCiBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogCi1fX2FsbF9fID0gWyJzaGxleCIsICJzcGxpdCJdCitfX2FsbF9fID0gWyJzaGxleCIsICJzcGxpdCIsICJxdW90ZSJdCiAKIGNsYXNzIHNobGV4OgogICAgICJBIGxleGljYWwgYW5hbHl6ZXIgY2xhc3MgZm9yIHNpbXBsZSBzaGVsbC1saWtlIHN5bnRheGVzLiIKQEAgLTI3NCw2ICsyNzUsMjEgQEAKICAgICAgICAgbGV4LmNvbW1lbnRlcnMgPSAnJwogICAgIHJldHVybiBsaXN0KGxleCkKIAorCitfZmluZF91bnNhZmUgPSByZS5jb21waWxlKHInW15cd0AlKz06LC4vLV0nLCByZS5BU0NJSSkuc2VhcmNoCisKK2RlZiBxdW90ZShzKToKKyAgICAiIiJSZXR1cm4gYSBzaGVsbC1lc2NhcGVkIHZlcnNpb24gb2YgdGhlIHN0cmluZyAqcyouIiIiCisgICAgaWYgbm90IHM6CisgICAgICAgIHJldHVybiAiJyciCisgICAgaWYgX2ZpbmRfdW5zYWZlKHMpIGlzIE5vbmU6CisgICAgICAgIHJldHVybiBzCisKKyAgICAjIHVzZSBzaW5nbGUgcXVvdGVzLCBhbmQgcHV0IHNpbmdsZSBxdW90ZXMgaW50byBkb3VibGUgcXVvdGVzCisgICAgIyB0aGUgc3RyaW5nICQnYiBpcyB0aGVuIHF1b3RlZCBhcyAnJCciJyInYicKKyAgICByZXR1cm4gIiciICsgcy5yZXBsYWNlKCInIiwgIidcIidcIiciKSArICInIgorCisKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgaWYgbGVuKHN5cy5hcmd2KSA9PSAxOgogICAgICAgICBsZXhlciA9IHNobGV4KCkKZGlmZiAtLWdpdCBhL0xpYi9zaHV0aWwucHkgYi9MaWIvc2h1dGlsLnB5CmluZGV4IDJkN2E1MDYuLjZkODBmZWUgMTAwNjQ0Ci0tLSBhL0xpYi9zaHV0aWwucHkKKysrIGIvTGliL3NodXRpbC5weQpAQCAtMTUsNiArMTUsNyBAQAogCiB0cnk6CiAgICAgaW1wb3J0IGJ6MgorICAgIGRlbCBiejIKICAgICBfQloyX1NVUFBPUlRFRCA9IFRydWUKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICBfQloyX1NVUFBPUlRFRCA9IEZhbHNlCkBAIC0zNCw3ICszNSw5IEBACiAgICAgICAgICAgICJFeGVjRXJyb3IiLCAibWFrZV9hcmNoaXZlIiwgImdldF9hcmNoaXZlX2Zvcm1hdHMiLAogICAgICAgICAgICAicmVnaXN0ZXJfYXJjaGl2ZV9mb3JtYXQiLCAidW5yZWdpc3Rlcl9hcmNoaXZlX2Zvcm1hdCIsCiAgICAgICAgICAgICJnZXRfdW5wYWNrX2Zvcm1hdHMiLCAicmVnaXN0ZXJfdW5wYWNrX2Zvcm1hdCIsCi0gICAgICAgICAgICJ1bnJlZ2lzdGVyX3VucGFja19mb3JtYXQiLCAidW5wYWNrX2FyY2hpdmUiLCAiaWdub3JlX3BhdHRlcm5zIl0KKyAgICAgICAgICAgInVucmVnaXN0ZXJfdW5wYWNrX2Zvcm1hdCIsICJ1bnBhY2tfYXJjaGl2ZSIsCisgICAgICAgICAgICJpZ25vcmVfcGF0dGVybnMiLCAiY2hvd24iLCAid2hpY2giXQorICAgICAgICAgICAjIGRpc2tfdXNhZ2UgaXMgYWRkZWQgbGF0ZXIsIGlmIGF2YWlsYWJsZSBvbiB0aGUgcGxhdGZvcm0KIAogY2xhc3MgRXJyb3IoRW52aXJvbm1lbnRFcnJvcik6CiAgICAgcGFzcwpAQCAtNzksOCArODIsMTMgQEAKICAgICByZXR1cm4gKG9zLnBhdGgubm9ybWNhc2Uob3MucGF0aC5hYnNwYXRoKHNyYykpID09CiAgICAgICAgICAgICBvcy5wYXRoLm5vcm1jYXNlKG9zLnBhdGguYWJzcGF0aChkc3QpKSkKIAotZGVmIGNvcHlmaWxlKHNyYywgZHN0KToKLSAgICAiIiJDb3B5IGRhdGEgZnJvbSBzcmMgdG8gZHN0IiIiCitkZWYgY29weWZpbGUoc3JjLCBkc3QsIHN5bWxpbmtzPUZhbHNlKToKKyAgICAiIiJDb3B5IGRhdGEgZnJvbSBzcmMgdG8gZHN0LgorCisgICAgSWYgb3B0aW9uYWwgZmxhZyBgc3ltbGlua3NgIGlzIHNldCBhbmQgYHNyY2AgaXMgYSBzeW1ib2xpYyBsaW5rLCBhIG5ldworICAgIHN5bWxpbmsgd2lsbCBiZSBjcmVhdGVkIGluc3RlYWQgb2YgY29weWluZyB0aGUgZmlsZSBpdCBwb2ludHMgdG8uCisKKyAgICAiIiIKICAgICBpZiBfc2FtZWZpbGUoc3JjLCBkc3QpOgogICAgICAgICByYWlzZSBFcnJvcigiYCVzYCBhbmQgYCVzYCBhcmUgdGhlIHNhbWUgZmlsZSIgJSAoc3JjLCBkc3QpKQogCkBAIC05NSwyOCArMTAzLDgxIEBACiAgICAgICAgICAgICBpZiBzdGF0LlNfSVNGSUZPKHN0LnN0X21vZGUpOgogICAgICAgICAgICAgICAgIHJhaXNlIFNwZWNpYWxGaWxlRXJyb3IoImAlc2AgaXMgYSBuYW1lZCBwaXBlIiAlIGZuKQogCi0gICAgd2l0aCBvcGVuKHNyYywgJ3JiJykgYXMgZnNyYzoKLSAgICAgICAgd2l0aCBvcGVuKGRzdCwgJ3diJykgYXMgZmRzdDoKLSAgICAgICAgICAgIGNvcHlmaWxlb2JqKGZzcmMsIGZkc3QpCisgICAgaWYgc3ltbGlua3MgYW5kIG9zLnBhdGguaXNsaW5rKHNyYyk6CisgICAgICAgIG9zLnN5bWxpbmsob3MucmVhZGxpbmsoc3JjKSwgZHN0KQorICAgIGVsc2U6CisgICAgICAgIHdpdGggb3BlbihzcmMsICdyYicpIGFzIGZzcmM6CisgICAgICAgICAgICB3aXRoIG9wZW4oZHN0LCAnd2InKSBhcyBmZHN0OgorICAgICAgICAgICAgICAgIGNvcHlmaWxlb2JqKGZzcmMsIGZkc3QpCisgICAgcmV0dXJuIGRzdAogCi1kZWYgY29weW1vZGUoc3JjLCBkc3QpOgotICAgICIiIkNvcHkgbW9kZSBiaXRzIGZyb20gc3JjIHRvIGRzdCIiIgotICAgIGlmIGhhc2F0dHIob3MsICdjaG1vZCcpOgotICAgICAgICBzdCA9IG9zLnN0YXQoc3JjKQotICAgICAgICBtb2RlID0gc3RhdC5TX0lNT0RFKHN0LnN0X21vZGUpCi0gICAgICAgIG9zLmNobW9kKGRzdCwgbW9kZSkKK2RlZiBjb3B5bW9kZShzcmMsIGRzdCwgc3ltbGlua3M9RmFsc2UpOgorICAgICIiIkNvcHkgbW9kZSBiaXRzIGZyb20gc3JjIHRvIGRzdC4KIAotZGVmIGNvcHlzdGF0KHNyYywgZHN0KToKLSAgICAiIiJDb3B5IGFsbCBzdGF0IGluZm8gKG1vZGUgYml0cywgYXRpbWUsIG10aW1lLCBmbGFncykgZnJvbSBzcmMgdG8gZHN0IiIiCi0gICAgc3QgPSBvcy5zdGF0KHNyYykKKyAgICBJZiB0aGUgb3B0aW9uYWwgZmxhZyBgc3ltbGlua3NgIGlzIHNldCwgc3ltbGlua3MgYXJlbid0IGZvbGxvd2VkIGlmIGFuZAorICAgIG9ubHkgaWYgYm90aCBgc3JjYCBhbmQgYGRzdGAgYXJlIHN5bWxpbmtzLiBJZiBgbGNobW9kYCBpc24ndCBhdmFpbGFibGUgKGVnLgorICAgIExpbnV4KSwgaW4gdGhlc2UgY2FzZXMsIHRoaXMgbWV0aG9kIGRvZXMgbm90aGluZy4KKworICAgICIiIgorICAgIGlmIHN5bWxpbmtzIGFuZCBvcy5wYXRoLmlzbGluayhzcmMpIGFuZCBvcy5wYXRoLmlzbGluayhkc3QpOgorICAgICAgICBpZiBoYXNhdHRyKG9zLCAnbGNobW9kJyk6CisgICAgICAgICAgICBzdGF0X2Z1bmMsIGNobW9kX2Z1bmMgPSBvcy5sc3RhdCwgb3MubGNobW9kCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4KKyAgICBlbGlmIGhhc2F0dHIob3MsICdjaG1vZCcpOgorICAgICAgICBzdGF0X2Z1bmMsIGNobW9kX2Z1bmMgPSBvcy5zdGF0LCBvcy5jaG1vZAorICAgIGVsc2U6CisgICAgICAgIHJldHVybgorCisgICAgc3QgPSBzdGF0X2Z1bmMoc3JjKQorICAgIGNobW9kX2Z1bmMoZHN0LCBzdGF0LlNfSU1PREUoc3Quc3RfbW9kZSkpCisKK2RlZiBjb3B5c3RhdChzcmMsIGRzdCwgc3ltbGlua3M9RmFsc2UpOgorICAgICIiIkNvcHkgYWxsIHN0YXQgaW5mbyAobW9kZSBiaXRzLCBhdGltZSwgbXRpbWUsIGZsYWdzKSBmcm9tIHNyYyB0byBkc3QuCisKKyAgICBJZiB0aGUgb3B0aW9uYWwgZmxhZyBgc3ltbGlua3NgIGlzIHNldCwgc3ltbGlua3MgYXJlbid0IGZvbGxvd2VkIGlmIGFuZAorICAgIG9ubHkgaWYgYm90aCBgc3JjYCBhbmQgYGRzdGAgYXJlIHN5bWxpbmtzLgorCisgICAgIiIiCisgICAgZGVmIF9ub3AoKmFyZ3MsIG5zPU5vbmUsIGZvbGxvd19zeW1saW5rcz1Ob25lKToKKyAgICAgICAgcGFzcworCisgICAgIyBmb2xsb3cgc3ltbGlua3MgKGFrYSBkb24ndCBub3QgZm9sbG93IHN5bWxpbmtzKQorICAgIGZvbGxvdyA9IG5vdCAoc3ltbGlua3MgYW5kIG9zLnBhdGguaXNsaW5rKHNyYykgYW5kIG9zLnBhdGguaXNsaW5rKGRzdCkpCisgICAgaWYgZm9sbG93OgorICAgICAgICAjIHVzZSB0aGUgcmVhbCBmdW5jdGlvbiBpZiBpdCBleGlzdHMKKyAgICAgICAgZGVmIGxvb2t1cChuYW1lKToKKyAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKG9zLCBuYW1lLCBfbm9wKQorICAgIGVsc2U6CisgICAgICAgICMgdXNlIHRoZSByZWFsIGZ1bmN0aW9uIG9ubHkgaWYgaXQgZXhpc3RzCisgICAgICAgICMgKmFuZCogaXQgc3VwcG9ydHMgZm9sbG93X3N5bWxpbmtzCisgICAgICAgIGRlZiBsb29rdXAobmFtZSk6CisgICAgICAgICAgICBmbiA9IGdldGF0dHIob3MsIG5hbWUsIF9ub3ApCisgICAgICAgICAgICBpZiBmbiBpbiBvcy5zdXBwb3J0c19mb2xsb3dfc3ltbGlua3M6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZuCisgICAgICAgICAgICByZXR1cm4gX25vcAorCisgICAgc3QgPSBsb29rdXAoInN0YXQiKShzcmMsIGZvbGxvd19zeW1saW5rcz1mb2xsb3cpCiAgICAgbW9kZSA9IHN0YXQuU19JTU9ERShzdC5zdF9tb2RlKQotICAgIGlmIGhhc2F0dHIob3MsICd1dGltZScpOgotICAgICAgICBvcy51dGltZShkc3QsIChzdC5zdF9hdGltZSwgc3Quc3RfbXRpbWUpKQotICAgIGlmIGhhc2F0dHIob3MsICdjaG1vZCcpOgotICAgICAgICBvcy5jaG1vZChkc3QsIG1vZGUpCi0gICAgaWYgaGFzYXR0cihvcywgJ2NoZmxhZ3MnKSBhbmQgaGFzYXR0cihzdCwgJ3N0X2ZsYWdzJyk6CisgICAgbG9va3VwKCJ1dGltZSIpKGRzdCwgbnM9KHN0LnN0X2F0aW1lX25zLCBzdC5zdF9tdGltZV9ucyksCisgICAgICAgIGZvbGxvd19zeW1saW5rcz1mb2xsb3cpCisgICAgdHJ5OgorICAgICAgICBsb29rdXAoImNobW9kIikoZHN0LCBtb2RlLCBmb2xsb3dfc3ltbGlua3M9Zm9sbG93KQorICAgIGV4Y2VwdCBOb3RJbXBsZW1lbnRlZEVycm9yOgorICAgICAgICAjIGlmIHdlIGdvdCBhIE5vdEltcGxlbWVudGVkRXJyb3IsIGl0J3MgYmVjYXVzZQorICAgICAgICAjICAgKiBmb2xsb3dfc3ltbGlua3M9RmFsc2UsCisgICAgICAgICMgICAqIGxjaG93bigpIGlzIHVuYXZhaWxhYmxlLCBhbmQKKyAgICAgICAgIyAgICogZWl0aGVyCisgICAgICAgICMgICAgICAgKiBmY2hvd25hdCgpIGlzIHVudmFpbGFibGUgb3IKKyAgICAgICAgIyAgICAgICAqIGZjaG93bmF0KCkgZG9lc24ndCBpbXBsZW1lbnQgQVRfU1lNTElOS19OT0ZPTExPVy4KKyAgICAgICAgIyAgICAgICAgIChpdCByZXR1cm5lZCBFTk9TVVAuKQorICAgICAgICAjIHRoZXJlZm9yZSB3ZSdyZSBvdXQgb2Ygb3B0aW9ucy0td2Ugc2ltcGx5IGNhbm5vdCBjaG93biB0aGUKKyAgICAgICAgIyBzeW1saW5rLiAgZ2l2ZSB1cCwgc3VwcHJlc3MgdGhlIGVycm9yLgorICAgICAgICAjICh3aGljaCBpcyB3aGF0IHNodXRpbCBhbHdheXMgZGlkIGluIHRoaXMgY2lyY3Vtc3RhbmNlLikKKyAgICAgICAgcGFzcworICAgIGlmIGhhc2F0dHIoc3QsICdzdF9mbGFncycpOgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBvcy5jaGZsYWdzKGRzdCwgc3Quc3RfZmxhZ3MpCisgICAgICAgICAgICBsb29rdXAoImNoZmxhZ3MiKShkc3QsIHN0LnN0X2ZsYWdzLCBmb2xsb3dfc3ltbGlua3M9Zm9sbG93KQogICAgICAgICBleGNlcHQgT1NFcnJvciBhcyB3aHk6CiAgICAgICAgICAgICBmb3IgZXJyIGluICdFT1BOT1RTVVBQJywgJ0VOT1RTVVAnOgogICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoZXJybm8sIGVycikgYW5kIHdoeS5lcnJubyA9PSBnZXRhdHRyKGVycm5vLCBlcnIpOgpAQCAtMTI0LDI3ICsxODUsNTggQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmFpc2UKIAotZGVmIGNvcHkoc3JjLCBkc3QpOgotICAgICIiIkNvcHkgZGF0YSBhbmQgbW9kZSBiaXRzICgiY3Agc3JjIGRzdCIpLgoraWYgaGFzYXR0cihvcywgJ2xpc3R4YXR0cicpOgorICAgIGRlZiBfY29weXhhdHRyKHNyYywgZHN0LCBzeW1saW5rcz1GYWxzZSk6CisgICAgICAgICIiIkNvcHkgZXh0ZW5kZWQgZmlsZXN5c3RlbSBhdHRyaWJ1dGVzIGZyb20gYHNyY2AgdG8gYGRzdGAuCisKKyAgICAgICAgT3ZlcndyaXRlIGV4aXN0aW5nIGF0dHJpYnV0ZXMuCisKKyAgICAgICAgSWYgdGhlIG9wdGlvbmFsIGZsYWcgYHN5bWxpbmtzYCBpcyBzZXQsIHN5bWxpbmtzIHdvbid0IGJlIGZvbGxvd2VkLgorCisgICAgICAgICIiIgorCisgICAgICAgIGZvciBuYW1lIGluIG9zLmxpc3R4YXR0cihzcmMsIGZvbGxvd19zeW1saW5rcz1zeW1saW5rcyk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdmFsdWUgPSBvcy5nZXR4YXR0cihzcmMsIG5hbWUsIGZvbGxvd19zeW1saW5rcz1zeW1saW5rcykKKyAgICAgICAgICAgICAgICBvcy5zZXR4YXR0cihkc3QsIG5hbWUsIHZhbHVlLCBmb2xsb3dfc3ltbGlua3M9c3ltbGlua3MpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gbm90IGluIChlcnJuby5FUEVSTSwgZXJybm8uRU5PVFNVUCwgZXJybm8uRU5PREFUQSk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlCitlbHNlOgorICAgIGRlZiBfY29weXhhdHRyKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHBhc3MKKworZGVmIGNvcHkoc3JjLCBkc3QsIHN5bWxpbmtzPUZhbHNlKToKKyAgICAiIiJDb3B5IGRhdGEgYW5kIG1vZGUgYml0cyAoImNwIHNyYyBkc3QiKS4gUmV0dXJuIHRoZSBmaWxlJ3MgZGVzdGluYXRpb24uCiAKICAgICBUaGUgZGVzdGluYXRpb24gbWF5IGJlIGEgZGlyZWN0b3J5LgogCisgICAgSWYgdGhlIG9wdGlvbmFsIGZsYWcgYHN5bWxpbmtzYCBpcyBzZXQsIHN5bWxpbmtzIHdvbid0IGJlIGZvbGxvd2VkLiBUaGlzCisgICAgcmVzZW1ibGVzIEdOVSdzICJjcCAtUCBzcmMgZHN0Ii4KKwogICAgICIiIgogICAgIGlmIG9zLnBhdGguaXNkaXIoZHN0KToKICAgICAgICAgZHN0ID0gb3MucGF0aC5qb2luKGRzdCwgb3MucGF0aC5iYXNlbmFtZShzcmMpKQotICAgIGNvcHlmaWxlKHNyYywgZHN0KQotICAgIGNvcHltb2RlKHNyYywgZHN0KQorICAgIGNvcHlmaWxlKHNyYywgZHN0LCBzeW1saW5rcz1zeW1saW5rcykKKyAgICBjb3B5bW9kZShzcmMsIGRzdCwgc3ltbGlua3M9c3ltbGlua3MpCisgICAgcmV0dXJuIGRzdAogCi1kZWYgY29weTIoc3JjLCBkc3QpOgotICAgICIiIkNvcHkgZGF0YSBhbmQgYWxsIHN0YXQgaW5mbyAoImNwIC1wIHNyYyBkc3QiKS4KK2RlZiBjb3B5MihzcmMsIGRzdCwgc3ltbGlua3M9RmFsc2UpOgorICAgICIiIkNvcHkgZGF0YSBhbmQgYWxsIHN0YXQgaW5mbyAoImNwIC1wIHNyYyBkc3QiKS4gUmV0dXJuIHRoZSBmaWxlJ3MKKyAgICBkZXN0aW5hdGlvbi4iCiAKICAgICBUaGUgZGVzdGluYXRpb24gbWF5IGJlIGEgZGlyZWN0b3J5LgogCisgICAgSWYgdGhlIG9wdGlvbmFsIGZsYWcgYHN5bWxpbmtzYCBpcyBzZXQsIHN5bWxpbmtzIHdvbid0IGJlIGZvbGxvd2VkLiBUaGlzCisgICAgcmVzZW1ibGVzIEdOVSdzICJjcCAtUCBzcmMgZHN0Ii4KKwogICAgICIiIgogICAgIGlmIG9zLnBhdGguaXNkaXIoZHN0KToKICAgICAgICAgZHN0ID0gb3MucGF0aC5qb2luKGRzdCwgb3MucGF0aC5iYXNlbmFtZShzcmMpKQotICAgIGNvcHlmaWxlKHNyYywgZHN0KQotICAgIGNvcHlzdGF0KHNyYywgZHN0KQorICAgIGNvcHlmaWxlKHNyYywgZHN0LCBzeW1saW5rcz1zeW1saW5rcykKKyAgICBjb3B5c3RhdChzcmMsIGRzdCwgc3ltbGlua3M9c3ltbGlua3MpCisgICAgX2NvcHl4YXR0cihzcmMsIGRzdCwgc3ltbGlua3M9c3ltbGlua3MpCisgICAgcmV0dXJuIGRzdAogCiBkZWYgaWdub3JlX3BhdHRlcm5zKCpwYXR0ZXJucyk6CiAgICAgIiIiRnVuY3Rpb24gdGhhdCBjYW4gYmUgdXNlZCBhcyBjb3B5dHJlZSgpIGlnbm9yZSBwYXJhbWV0ZXIuCkBAIC0yMTEsNyArMzAzLDExIEBACiAgICAgICAgICAgICBpZiBvcy5wYXRoLmlzbGluayhzcmNuYW1lKToKICAgICAgICAgICAgICAgICBsaW5rdG8gPSBvcy5yZWFkbGluayhzcmNuYW1lKQogICAgICAgICAgICAgICAgIGlmIHN5bWxpbmtzOgorICAgICAgICAgICAgICAgICAgICAjIFdlIGNhbid0IGp1c3QgbGVhdmUgaXQgdG8gYGNvcHlfZnVuY3Rpb25gIGJlY2F1c2UgbGVnYWN5CisgICAgICAgICAgICAgICAgICAgICMgY29kZSB3aXRoIGEgY3VzdG9tIGBjb3B5X2Z1bmN0aW9uYCBtYXkgcmVseSBvbiBjb3B5dHJlZQorICAgICAgICAgICAgICAgICAgICAjIGRvaW5nIHRoZSByaWdodCB0aGluZy4KICAgICAgICAgICAgICAgICAgICAgb3Muc3ltbGluayhsaW5rdG8sIGRzdG5hbWUpCisgICAgICAgICAgICAgICAgICAgIGNvcHlzdGF0KHNyY25hbWUsIGRzdG5hbWUsIHN5bWxpbmtzPXN5bWxpbmtzKQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICMgaWdub3JlIGRhbmdsaW5nIHN5bWxpbmsgaWYgdGhlIGZsYWcgaXMgb24KICAgICAgICAgICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGxpbmt0bykgYW5kIGlnbm9yZV9kYW5nbGluZ19zeW1saW5rczoKQEAgLTIzOSwyNCArMzM1LDEwIEBACiAgICAgICAgICAgICBlcnJvcnMuZXh0ZW5kKChzcmMsIGRzdCwgc3RyKHdoeSkpKQogICAgIGlmIGVycm9yczoKICAgICAgICAgcmFpc2UgRXJyb3IoZXJyb3JzKQorICAgIHJldHVybiBkc3QKIAotZGVmIHJtdHJlZShwYXRoLCBpZ25vcmVfZXJyb3JzPUZhbHNlLCBvbmVycm9yPU5vbmUpOgotICAgICIiIlJlY3Vyc2l2ZWx5IGRlbGV0ZSBhIGRpcmVjdG9yeSB0cmVlLgotCi0gICAgSWYgaWdub3JlX2Vycm9ycyBpcyBzZXQsIGVycm9ycyBhcmUgaWdub3JlZDsgb3RoZXJ3aXNlLCBpZiBvbmVycm9yCi0gICAgaXMgc2V0LCBpdCBpcyBjYWxsZWQgdG8gaGFuZGxlIHRoZSBlcnJvciB3aXRoIGFyZ3VtZW50cyAoZnVuYywKLSAgICBwYXRoLCBleGNfaW5mbykgd2hlcmUgZnVuYyBpcyBvcy5saXN0ZGlyLCBvcy5yZW1vdmUsIG9yIG9zLnJtZGlyOwotICAgIHBhdGggaXMgdGhlIGFyZ3VtZW50IHRvIHRoYXQgZnVuY3Rpb24gdGhhdCBjYXVzZWQgaXQgdG8gZmFpbDsgYW5kCi0gICAgZXhjX2luZm8gaXMgYSB0dXBsZSByZXR1cm5lZCBieSBzeXMuZXhjX2luZm8oKS4gIElmIGlnbm9yZV9lcnJvcnMKLSAgICBpcyBmYWxzZSBhbmQgb25lcnJvciBpcyBOb25lLCBhbiBleGNlcHRpb24gaXMgcmFpc2VkLgotCi0gICAgIiIiCi0gICAgaWYgaWdub3JlX2Vycm9yczoKLSAgICAgICAgZGVmIG9uZXJyb3IoKmFyZ3MpOgotICAgICAgICAgICAgcGFzcwotICAgIGVsaWYgb25lcnJvciBpcyBOb25lOgotICAgICAgICBkZWYgb25lcnJvcigqYXJncyk6Ci0gICAgICAgICAgICByYWlzZQorIyB2ZXJzaW9uIHZ1bG5lcmFibGUgdG8gcmFjZSBjb25kaXRpb25zCitkZWYgX3JtdHJlZV91bnNhZmUocGF0aCwgb25lcnJvcik6CiAgICAgdHJ5OgogICAgICAgICBpZiBvcy5wYXRoLmlzbGluayhwYXRoKToKICAgICAgICAgICAgICMgc3ltbGlua3MgdG8gZGlyZWN0b3JpZXMgYXJlIGZvcmJpZGRlbiwgc2VlIGJ1ZyAjMTY2OQpAQCAtMjY4LDcgKzM1MCw3IEBACiAgICAgbmFtZXMgPSBbXQogICAgIHRyeToKICAgICAgICAgbmFtZXMgPSBvcy5saXN0ZGlyKHBhdGgpCi0gICAgZXhjZXB0IG9zLmVycm9yIGFzIGVycjoKKyAgICBleGNlcHQgb3MuZXJyb3I6CiAgICAgICAgIG9uZXJyb3Iob3MubGlzdGRpciwgcGF0aCwgc3lzLmV4Y19pbmZvKCkpCiAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CiAgICAgICAgIGZ1bGxuYW1lID0gb3MucGF0aC5qb2luKHBhdGgsIG5hbWUpCkBAIC0yNzcsMTcgKzM1OSwxMDkgQEAKICAgICAgICAgZXhjZXB0IG9zLmVycm9yOgogICAgICAgICAgICAgbW9kZSA9IDAKICAgICAgICAgaWYgc3RhdC5TX0lTRElSKG1vZGUpOgotICAgICAgICAgICAgcm10cmVlKGZ1bGxuYW1lLCBpZ25vcmVfZXJyb3JzLCBvbmVycm9yKQorICAgICAgICAgICAgX3JtdHJlZV91bnNhZmUoZnVsbG5hbWUsIG9uZXJyb3IpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgb3MucmVtb3ZlKGZ1bGxuYW1lKQotICAgICAgICAgICAgZXhjZXB0IG9zLmVycm9yIGFzIGVycjoKLSAgICAgICAgICAgICAgICBvbmVycm9yKG9zLnJlbW92ZSwgZnVsbG5hbWUsIHN5cy5leGNfaW5mbygpKQorICAgICAgICAgICAgICAgIG9zLnVubGluayhmdWxsbmFtZSkKKyAgICAgICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgICAgICAgICBvbmVycm9yKG9zLnVubGluaywgZnVsbG5hbWUsIHN5cy5leGNfaW5mbygpKQogICAgIHRyeToKICAgICAgICAgb3Mucm1kaXIocGF0aCkKICAgICBleGNlcHQgb3MuZXJyb3I6CiAgICAgICAgIG9uZXJyb3Iob3Mucm1kaXIsIHBhdGgsIHN5cy5leGNfaW5mbygpKQogCisjIFZlcnNpb24gdXNpbmcgZmQtYmFzZWQgQVBJcyB0byBwcm90ZWN0IGFnYWluc3QgcmFjZXMKK2RlZiBfcm10cmVlX3NhZmVfZmQodG9wZmQsIHBhdGgsIG9uZXJyb3IpOgorICAgIG5hbWVzID0gW10KKyAgICB0cnk6CisgICAgICAgIG5hbWVzID0gb3MubGlzdGRpcih0b3BmZCkKKyAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgIG9uZXJyb3Iob3MubGlzdGRpciwgcGF0aCwgc3lzLmV4Y19pbmZvKCkpCisgICAgZm9yIG5hbWUgaW4gbmFtZXM6CisgICAgICAgIGZ1bGxuYW1lID0gb3MucGF0aC5qb2luKHBhdGgsIG5hbWUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9yaWdfc3QgPSBvcy5zdGF0KG5hbWUsIGRpcl9mZD10b3BmZCwgZm9sbG93X3N5bWxpbmtzPUZhbHNlKQorICAgICAgICAgICAgbW9kZSA9IG9yaWdfc3Quc3RfbW9kZQorICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICBtb2RlID0gMAorICAgICAgICBpZiBzdGF0LlNfSVNESVIobW9kZSk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZGlyZmQgPSBvcy5vcGVuKG5hbWUsIG9zLk9fUkRPTkxZLCBkaXJfZmQ9dG9wZmQpCisgICAgICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICAgICAgb25lcnJvcihvcy5vcGVuLCBmdWxsbmFtZSwgc3lzLmV4Y19pbmZvKCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgaWYgb3MucGF0aC5zYW1lc3RhdChvcmlnX3N0LCBvcy5mc3RhdChkaXJmZCkpOgorICAgICAgICAgICAgICAgICAgICAgICAgX3JtdHJlZV9zYWZlX2ZkKGRpcmZkLCBmdWxsbmFtZSwgb25lcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5ybWRpcihuYW1lLCBkaXJfZmQ9dG9wZmQpCisgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lcnJvcihvcy5ybWRpciwgZnVsbG5hbWUsIHN5cy5leGNfaW5mbygpKQorICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgIG9zLmNsb3NlKGRpcmZkKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG9zLnVubGluayhuYW1lLCBkaXJfZmQ9dG9wZmQpCisgICAgICAgICAgICBleGNlcHQgb3MuZXJyb3I6CisgICAgICAgICAgICAgICAgb25lcnJvcihvcy51bmxpbmssIGZ1bGxuYW1lLCBzeXMuZXhjX2luZm8oKSkKKworX3VzZV9mZF9mdW5jdGlvbnMgPSAoe29zLm9wZW4sIG9zLnN0YXQsIG9zLnVubGluaywgb3Mucm1kaXJ9IDw9CisgICAgICAgICAgICAgICAgICAgICBvcy5zdXBwb3J0c19kaXJfZmQgYW5kCisgICAgICAgICAgICAgICAgICAgICBvcy5saXN0ZGlyIGluIG9zLnN1cHBvcnRzX2ZkIGFuZAorICAgICAgICAgICAgICAgICAgICAgb3Muc3RhdCBpbiBvcy5zdXBwb3J0c19mb2xsb3dfc3ltbGlua3MpCisKK2RlZiBybXRyZWUocGF0aCwgaWdub3JlX2Vycm9ycz1GYWxzZSwgb25lcnJvcj1Ob25lKToKKyAgICAiIiJSZWN1cnNpdmVseSBkZWxldGUgYSBkaXJlY3RvcnkgdHJlZS4KKworICAgIElmIGlnbm9yZV9lcnJvcnMgaXMgc2V0LCBlcnJvcnMgYXJlIGlnbm9yZWQ7IG90aGVyd2lzZSwgaWYgb25lcnJvcgorICAgIGlzIHNldCwgaXQgaXMgY2FsbGVkIHRvIGhhbmRsZSB0aGUgZXJyb3Igd2l0aCBhcmd1bWVudHMgKGZ1bmMsCisgICAgcGF0aCwgZXhjX2luZm8pIHdoZXJlIGZ1bmMgaXMgcGxhdGZvcm0gYW5kIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudDsKKyAgICBwYXRoIGlzIHRoZSBhcmd1bWVudCB0byB0aGF0IGZ1bmN0aW9uIHRoYXQgY2F1c2VkIGl0IHRvIGZhaWw7IGFuZAorICAgIGV4Y19pbmZvIGlzIGEgdHVwbGUgcmV0dXJuZWQgYnkgc3lzLmV4Y19pbmZvKCkuICBJZiBpZ25vcmVfZXJyb3JzCisgICAgaXMgZmFsc2UgYW5kIG9uZXJyb3IgaXMgTm9uZSwgYW4gZXhjZXB0aW9uIGlzIHJhaXNlZC4KKworICAgICIiIgorICAgIGlmIGlnbm9yZV9lcnJvcnM6CisgICAgICAgIGRlZiBvbmVycm9yKCphcmdzKToKKyAgICAgICAgICAgIHBhc3MKKyAgICBlbGlmIG9uZXJyb3IgaXMgTm9uZToKKyAgICAgICAgZGVmIG9uZXJyb3IoKmFyZ3MpOgorICAgICAgICAgICAgcmFpc2UKKyAgICBpZiBfdXNlX2ZkX2Z1bmN0aW9uczoKKyAgICAgICAgIyBXaGlsZSB0aGUgdW5zYWZlIHJtdHJlZSB3b3JrcyBmaW5lIG9uIGJ5dGVzLCB0aGUgZmQgYmFzZWQgZG9lcyBub3QuCisgICAgICAgIGlmIGlzaW5zdGFuY2UocGF0aCwgYnl0ZXMpOgorICAgICAgICAgICAgcGF0aCA9IG9zLmZzZGVjb2RlKHBhdGgpCisgICAgICAgICMgTm90ZTogVG8gZ3VhcmQgYWdhaW5zdCBzeW1saW5rIHJhY2VzLCB3ZSB1c2UgdGhlIHN0YW5kYXJkCisgICAgICAgICMgbHN0YXQoKS9vcGVuKCkvZnN0YXQoKSB0cmljay4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3JpZ19zdCA9IG9zLmxzdGF0KHBhdGgpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBvbmVycm9yKG9zLmxzdGF0LCBwYXRoLCBzeXMuZXhjX2luZm8oKSkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB0cnk6CisgICAgICAgICAgICBmZCA9IG9zLm9wZW4ocGF0aCwgb3MuT19SRE9OTFkpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBvbmVycm9yKG9zLmxzdGF0LCBwYXRoLCBzeXMuZXhjX2luZm8oKSkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiAoc3RhdC5TX0lTRElSKG9yaWdfc3Quc3RfbW9kZSkgYW5kCisgICAgICAgICAgICAgICAgb3MucGF0aC5zYW1lc3RhdChvcmlnX3N0LCBvcy5mc3RhdChmZCkpKToKKyAgICAgICAgICAgICAgICBfcm10cmVlX3NhZmVfZmQoZmQsIHBhdGgsIG9uZXJyb3IpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBvcy5ybWRpcihwYXRoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBvcy5lcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgb25lcnJvcihvcy5ybWRpciwgcGF0aCwgc3lzLmV4Y19pbmZvKCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlIE5vdEFEaXJlY3RvcnlFcnJvcigyMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vdCBhIGRpcmVjdG9yeTogJ3t9JyIuZm9ybWF0KHBhdGgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuY2xvc2UoZmQpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIF9ybXRyZWVfdW5zYWZlKHBhdGgsIG9uZXJyb3IpCisKKyMgQWxsb3cgaW50cm9zcGVjdGlvbiBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgaGFyZGVuaW5nIGFnYWluc3Qgc3ltbGluaworIyBhdHRhY2tzIGlzIHN1cHBvcnRlZCBvbiB0aGUgY3VycmVudCBwbGF0Zm9ybQorcm10cmVlLmF2b2lkc19zeW1saW5rX2F0dGFja3MgPSBfdXNlX2ZkX2Z1bmN0aW9ucwogCiBkZWYgX2Jhc2VuYW1lKHBhdGgpOgogICAgICMgQSBiYXNlbmFtZSgpIHZhcmlhbnQgd2hpY2ggZmlyc3Qgc3RyaXBzIHRoZSB0cmFpbGluZyBzbGFzaCwgaWYgcHJlc2VudC4KQEAgLTI5Niw3ICs0NzAsOCBAQAogCiBkZWYgbW92ZShzcmMsIGRzdCk6CiAgICAgIiIiUmVjdXJzaXZlbHkgbW92ZSBhIGZpbGUgb3IgZGlyZWN0b3J5IHRvIGFub3RoZXIgbG9jYXRpb24uIFRoaXMgaXMKLSAgICBzaW1pbGFyIHRvIHRoZSBVbml4ICJtdiIgY29tbWFuZC4KKyAgICBzaW1pbGFyIHRvIHRoZSBVbml4ICJtdiIgY29tbWFuZC4gUmV0dXJuIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSdzCisgICAgZGVzdGluYXRpb24uCiAKICAgICBJZiB0aGUgZGVzdGluYXRpb24gaXMgYSBkaXJlY3Rvcnkgb3IgYSBzeW1saW5rIHRvIGEgZGlyZWN0b3J5LCB0aGUgc291cmNlCiAgICAgaXMgbW92ZWQgaW5zaWRlIHRoZSBkaXJlY3RvcnkuIFRoZSBkZXN0aW5hdGlvbiBwYXRoIG11c3Qgbm90IGFscmVhZHkKQEAgLTMwNiw3ICs0ODEsMTAgQEAKICAgICBvdmVyd3JpdHRlbiBkZXBlbmRpbmcgb24gb3MucmVuYW1lKCkgc2VtYW50aWNzLgogCiAgICAgSWYgdGhlIGRlc3RpbmF0aW9uIGlzIG9uIG91ciBjdXJyZW50IGZpbGVzeXN0ZW0sIHRoZW4gcmVuYW1lKCkgaXMgdXNlZC4KLSAgICBPdGhlcndpc2UsIHNyYyBpcyBjb3BpZWQgdG8gdGhlIGRlc3RpbmF0aW9uIGFuZCB0aGVuIHJlbW92ZWQuCisgICAgT3RoZXJ3aXNlLCBzcmMgaXMgY29waWVkIHRvIHRoZSBkZXN0aW5hdGlvbiBhbmQgdGhlbiByZW1vdmVkLiBTeW1saW5rcyBhcmUKKyAgICByZWNyZWF0ZWQgdW5kZXIgdGhlIG5ldyBuYW1lIGlmIG9zLnJlbmFtZSgpIGZhaWxzIGJlY2F1c2Ugb2YgY3Jvc3MKKyAgICBmaWxlc3lzdGVtIHJlbmFtZXMuCisKICAgICBBIGxvdCBtb3JlIGNvdWxkIGJlIGRvbmUgaGVyZS4uLiAgQSBsb29rIGF0IGEgbXYuYyBzaG93cyBhIGxvdCBvZgogICAgIHRoZSBpc3N1ZXMgdGhpcyBpbXBsZW1lbnRhdGlvbiBnbG9zc2VzIG92ZXIuCiAKQEAgLTMyNCw4ICs1MDIsMTIgQEAKICAgICAgICAgICAgIHJhaXNlIEVycm9yKCJEZXN0aW5hdGlvbiBwYXRoICclcycgYWxyZWFkeSBleGlzdHMiICUgcmVhbF9kc3QpCiAgICAgdHJ5OgogICAgICAgICBvcy5yZW5hbWUoc3JjLCByZWFsX2RzdCkKLSAgICBleGNlcHQgT1NFcnJvciBhcyBleGM6Ci0gICAgICAgIGlmIG9zLnBhdGguaXNkaXIoc3JjKToKKyAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgaWYgb3MucGF0aC5pc2xpbmsoc3JjKToKKyAgICAgICAgICAgIGxpbmt0byA9IG9zLnJlYWRsaW5rKHNyYykKKyAgICAgICAgICAgIG9zLnN5bWxpbmsobGlua3RvLCByZWFsX2RzdCkKKyAgICAgICAgICAgIG9zLnVubGluayhzcmMpCisgICAgICAgIGVsaWYgb3MucGF0aC5pc2RpcihzcmMpOgogICAgICAgICAgICAgaWYgX2Rlc3RpbnNyYyhzcmMsIGRzdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgRXJyb3IoIkNhbm5vdCBtb3ZlIGEgZGlyZWN0b3J5ICclcycgaW50byBpdHNlbGYgJyVzJy4iICUgKHNyYywgZHN0KSkKICAgICAgICAgICAgIGNvcHl0cmVlKHNyYywgcmVhbF9kc3QsIHN5bWxpbmtzPVRydWUpCkBAIC0zMzMsNiArNTE1LDcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGNvcHkyKHNyYywgcmVhbF9kc3QpCiAgICAgICAgICAgICBvcy51bmxpbmsoc3JjKQorICAgIHJldHVybiByZWFsX2RzdAogCiBkZWYgX2Rlc3RpbnNyYyhzcmMsIGRzdCk6CiAgICAgc3JjID0gYWJzcGF0aChzcmMpCkBAIC0zOTEsNyArNTc0LDcgQEAKICAgICAgICAgY29tcHJlc3NfZXh0WydiemlwMiddID0gJy5iejInCiAKICAgICAjIGZsYWdzIGZvciBjb21wcmVzc2lvbiBwcm9ncmFtLCBlYWNoIGVsZW1lbnQgb2YgbGlzdCB3aWxsIGJlIGFuIGFyZ3VtZW50Ci0gICAgaWYgY29tcHJlc3MgaXMgbm90IE5vbmUgYW5kIGNvbXByZXNzIG5vdCBpbiBjb21wcmVzc19leHQua2V5cygpOgorICAgIGlmIGNvbXByZXNzIGlzIG5vdCBOb25lIGFuZCBjb21wcmVzcyBub3QgaW4gY29tcHJlc3NfZXh0OgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJiYWQgdmFsdWUgZm9yICdjb21wcmVzcycsIG9yIGNvbXByZXNzaW9uIGZvcm1hdCBub3QgIgogICAgICAgICAgICAgICAgICAgICAgICAgICJzdXBwb3J0ZWQgOiB7MH0iLmZvcm1hdChjb21wcmVzcykpCiAKQEAgLTQ5Niw3ICs2NzksNyBAQAogX0FSQ0hJVkVfRk9STUFUUyA9IHsKICAgICAnZ3p0YXInOiAoX21ha2VfdGFyYmFsbCwgWygnY29tcHJlc3MnLCAnZ3ppcCcpXSwgImd6aXAnZWQgdGFyLWZpbGUiKSwKICAgICAndGFyJzogICAoX21ha2VfdGFyYmFsbCwgWygnY29tcHJlc3MnLCBOb25lKV0sICJ1bmNvbXByZXNzZWQgdGFyIGZpbGUiKSwKLSAgICAnemlwJzogICAoX21ha2VfemlwZmlsZSwgW10sIlpJUCBmaWxlIikKKyAgICAnemlwJzogICAoX21ha2VfemlwZmlsZSwgW10sICJaSVAgZmlsZSIpCiAgICAgfQogCiBpZiBfQloyX1NVUFBPUlRFRDoKQEAgLTUyOSw3ICs3MTIsNyBAQAogICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4dHJhX2FyZ3MsICh0dXBsZSwgbGlzdCkpOgogICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ2V4dHJhX2FyZ3MgbmVlZHMgdG8gYmUgYSBzZXF1ZW5jZScpCiAgICAgZm9yIGVsZW1lbnQgaW4gZXh0cmFfYXJnczoKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZWxlbWVudCwgKHR1cGxlLCBsaXN0KSkgb3IgbGVuKGVsZW1lbnQpICE9MiA6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGVsZW1lbnQsICh0dXBsZSwgbGlzdCkpIG9yIGxlbihlbGVtZW50KSAhPTI6CiAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ2V4dHJhX2FyZ3MgZWxlbWVudHMgYXJlIDogKGFyZ19uYW1lLCB2YWx1ZSknKQogCiAgICAgX0FSQ0hJVkVfRk9STUFUU1tuYW1lXSA9IChmdW5jdGlvbiwgZXh0cmFfYXJncywgZGVzY3JpcHRpb24pCkBAIC02ODEsNyArODY0LDcgQEAKICAgICAgICAgICAgIGlmIG5vdCBuYW1lLmVuZHN3aXRoKCcvJyk6CiAgICAgICAgICAgICAgICAgIyBmaWxlCiAgICAgICAgICAgICAgICAgZGF0YSA9IHppcC5yZWFkKGluZm8uZmlsZW5hbWUpCi0gICAgICAgICAgICAgICAgZiA9IG9wZW4odGFyZ2V0LCd3YicpCisgICAgICAgICAgICAgICAgZiA9IG9wZW4odGFyZ2V0LCAnd2InKQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgZi53cml0ZShkYXRhKQogICAgICAgICAgICAgICAgIGZpbmFsbHk6CkBAIC03NTUsMyArOTM4LDE2NSBAQAogICAgICAgICBmdW5jID0gX1VOUEFDS19GT1JNQVRTW2Zvcm1hdF1bMV0KICAgICAgICAga3dhcmdzID0gZGljdChfVU5QQUNLX0ZPUk1BVFNbZm9ybWF0XVsyXSkKICAgICAgICAgZnVuYyhmaWxlbmFtZSwgZXh0cmFjdF9kaXIsICoqa3dhcmdzKQorCisKK2lmIGhhc2F0dHIob3MsICdzdGF0dmZzJyk6CisKKyAgICBfX2FsbF9fLmFwcGVuZCgnZGlza191c2FnZScpCisgICAgX250dXBsZV9kaXNrdXNhZ2UgPSBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlKCd1c2FnZScsICd0b3RhbCB1c2VkIGZyZWUnKQorCisgICAgZGVmIGRpc2tfdXNhZ2UocGF0aCk6CisgICAgICAgICIiIlJldHVybiBkaXNrIHVzYWdlIHN0YXRpc3RpY3MgYWJvdXQgdGhlIGdpdmVuIHBhdGguCisKKyAgICAgICAgUmV0dXJuZWQgdmFsdWUgaXMgYSBuYW1lZCB0dXBsZSB3aXRoIGF0dHJpYnV0ZXMgJ3RvdGFsJywgJ3VzZWQnIGFuZAorICAgICAgICAnZnJlZScsIHdoaWNoIGFyZSB0aGUgYW1vdW50IG9mIHRvdGFsLCB1c2VkIGFuZCBmcmVlIHNwYWNlLCBpbiBieXRlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHN0ID0gb3Muc3RhdHZmcyhwYXRoKQorICAgICAgICBmcmVlID0gc3QuZl9iYXZhaWwgKiBzdC5mX2Zyc2l6ZQorICAgICAgICB0b3RhbCA9IHN0LmZfYmxvY2tzICogc3QuZl9mcnNpemUKKyAgICAgICAgdXNlZCA9IChzdC5mX2Jsb2NrcyAtIHN0LmZfYmZyZWUpICogc3QuZl9mcnNpemUKKyAgICAgICAgcmV0dXJuIF9udHVwbGVfZGlza3VzYWdlKHRvdGFsLCB1c2VkLCBmcmVlKQorCitlbGlmIG9zLm5hbWUgPT0gJ250JzoKKworICAgIGltcG9ydCBudAorICAgIF9fYWxsX18uYXBwZW5kKCdkaXNrX3VzYWdlJykKKyAgICBfbnR1cGxlX2Rpc2t1c2FnZSA9IGNvbGxlY3Rpb25zLm5hbWVkdHVwbGUoJ3VzYWdlJywgJ3RvdGFsIHVzZWQgZnJlZScpCisKKyAgICBkZWYgZGlza191c2FnZShwYXRoKToKKyAgICAgICAgIiIiUmV0dXJuIGRpc2sgdXNhZ2Ugc3RhdGlzdGljcyBhYm91dCB0aGUgZ2l2ZW4gcGF0aC4KKworICAgICAgICBSZXR1cm5lZCB2YWx1cyBpcyBhIG5hbWVkIHR1cGxlIHdpdGggYXR0cmlidXRlcyAndG90YWwnLCAndXNlZCcgYW5kCisgICAgICAgICdmcmVlJywgd2hpY2ggYXJlIHRoZSBhbW91bnQgb2YgdG90YWwsIHVzZWQgYW5kIGZyZWUgc3BhY2UsIGluIGJ5dGVzLgorICAgICAgICAiIiIKKyAgICAgICAgdG90YWwsIGZyZWUgPSBudC5fZ2V0ZGlza3VzYWdlKHBhdGgpCisgICAgICAgIHVzZWQgPSB0b3RhbCAtIGZyZWUKKyAgICAgICAgcmV0dXJuIF9udHVwbGVfZGlza3VzYWdlKHRvdGFsLCB1c2VkLCBmcmVlKQorCisKK2RlZiBjaG93bihwYXRoLCB1c2VyPU5vbmUsIGdyb3VwPU5vbmUpOgorICAgICIiIkNoYW5nZSBvd25lciB1c2VyIGFuZCBncm91cCBvZiB0aGUgZ2l2ZW4gcGF0aC4KKworICAgIHVzZXIgYW5kIGdyb3VwIGNhbiBiZSB0aGUgdWlkL2dpZCBvciB0aGUgdXNlci9ncm91cCBuYW1lcywgYW5kIGluIHRoYXQgY2FzZSwKKyAgICB0aGV5IGFyZSBjb252ZXJ0ZWQgdG8gdGhlaXIgcmVzcGVjdGl2ZSB1aWQvZ2lkLgorICAgICIiIgorCisgICAgaWYgdXNlciBpcyBOb25lIGFuZCBncm91cCBpcyBOb25lOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1c2VyIGFuZC9vciBncm91cCBtdXN0IGJlIHNldCIpCisKKyAgICBfdXNlciA9IHVzZXIKKyAgICBfZ3JvdXAgPSBncm91cAorCisgICAgIyAtMSBtZWFucyBkb24ndCBjaGFuZ2UgaXQKKyAgICBpZiB1c2VyIGlzIE5vbmU6CisgICAgICAgIF91c2VyID0gLTEKKyAgICAjIHVzZXIgY2FuIGVpdGhlciBiZSBhbiBpbnQgKHRoZSB1aWQpIG9yIGEgc3RyaW5nICh0aGUgc3lzdGVtIHVzZXJuYW1lKQorICAgIGVsaWYgaXNpbnN0YW5jZSh1c2VyLCBzdHIpOgorICAgICAgICBfdXNlciA9IF9nZXRfdWlkKHVzZXIpCisgICAgICAgIGlmIF91c2VyIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBMb29rdXBFcnJvcigibm8gc3VjaCB1c2VyOiB7IXJ9Ii5mb3JtYXQodXNlcikpCisKKyAgICBpZiBncm91cCBpcyBOb25lOgorICAgICAgICBfZ3JvdXAgPSAtMQorICAgIGVsaWYgbm90IGlzaW5zdGFuY2UoZ3JvdXAsIGludCk6CisgICAgICAgIF9ncm91cCA9IF9nZXRfZ2lkKGdyb3VwKQorICAgICAgICBpZiBfZ3JvdXAgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIExvb2t1cEVycm9yKCJubyBzdWNoIGdyb3VwOiB7IXJ9Ii5mb3JtYXQoZ3JvdXApKQorCisgICAgb3MuY2hvd24ocGF0aCwgX3VzZXIsIF9ncm91cCkKKworZGVmIGdldF90ZXJtaW5hbF9zaXplKGZhbGxiYWNrPSg4MCwgMjQpKToKKyAgICAiIiJHZXQgdGhlIHNpemUgb2YgdGhlIHRlcm1pbmFsIHdpbmRvdy4KKworICAgIEZvciBlYWNoIG9mIHRoZSB0d28gZGltZW5zaW9ucywgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLCBDT0xVTU5TCisgICAgYW5kIExJTkVTIHJlc3BlY3RpdmVseSwgaXMgY2hlY2tlZC4gSWYgdGhlIHZhcmlhYmxlIGlzIGRlZmluZWQgYW5kCisgICAgdGhlIHZhbHVlIGlzIGEgcG9zaXRpdmUgaW50ZWdlciwgaXQgaXMgdXNlZC4KKworICAgIFdoZW4gQ09MVU1OUyBvciBMSU5FUyBpcyBub3QgZGVmaW5lZCwgd2hpY2ggaXMgdGhlIGNvbW1vbiBjYXNlLAorICAgIHRoZSB0ZXJtaW5hbCBjb25uZWN0ZWQgdG8gc3lzLl9fc3Rkb3V0X18gaXMgcXVlcmllZAorICAgIGJ5IGludm9raW5nIG9zLmdldF90ZXJtaW5hbF9zaXplLgorCisgICAgSWYgdGhlIHRlcm1pbmFsIHNpemUgY2Fubm90IGJlIHN1Y2Nlc3NmdWxseSBxdWVyaWVkLCBlaXRoZXIgYmVjYXVzZQorICAgIHRoZSBzeXN0ZW0gZG9lc24ndCBzdXBwb3J0IHF1ZXJ5aW5nLCBvciBiZWNhdXNlIHdlIGFyZSBub3QKKyAgICBjb25uZWN0ZWQgdG8gYSB0ZXJtaW5hbCwgdGhlIHZhbHVlIGdpdmVuIGluIGZhbGxiYWNrIHBhcmFtZXRlcgorICAgIGlzIHVzZWQuIEZhbGxiYWNrIGRlZmF1bHRzIHRvICg4MCwgMjQpIHdoaWNoIGlzIHRoZSBkZWZhdWx0CisgICAgc2l6ZSB1c2VkIGJ5IG1hbnkgdGVybWluYWwgZW11bGF0b3JzLgorCisgICAgVGhlIHZhbHVlIHJldHVybmVkIGlzIGEgbmFtZWQgdHVwbGUgb2YgdHlwZSBvcy50ZXJtaW5hbF9zaXplLgorICAgICIiIgorICAgICMgY29sdW1ucywgbGluZXMgYXJlIHRoZSB3b3JraW5nIHZhbHVlcworICAgIHRyeToKKyAgICAgICAgY29sdW1ucyA9IGludChvcy5lbnZpcm9uWydDT0xVTU5TJ10pCisgICAgZXhjZXB0IChLZXlFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgIGNvbHVtbnMgPSAwCisKKyAgICB0cnk6CisgICAgICAgIGxpbmVzID0gaW50KG9zLmVudmlyb25bJ0xJTkVTJ10pCisgICAgZXhjZXB0IChLZXlFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgIGxpbmVzID0gMAorCisgICAgIyBvbmx5IHF1ZXJ5IGlmIG5lY2Vzc2FyeQorICAgIGlmIGNvbHVtbnMgPD0gMCBvciBsaW5lcyA8PSAwOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzaXplID0gb3MuZ2V0X3Rlcm1pbmFsX3NpemUoc3lzLl9fc3Rkb3V0X18uZmlsZW5vKCkpCisgICAgICAgIGV4Y2VwdCAoTmFtZUVycm9yLCBPU0Vycm9yKToKKyAgICAgICAgICAgIHNpemUgPSBvcy50ZXJtaW5hbF9zaXplKGZhbGxiYWNrKQorICAgICAgICBpZiBjb2x1bW5zIDw9IDA6CisgICAgICAgICAgICBjb2x1bW5zID0gc2l6ZS5jb2x1bW5zCisgICAgICAgIGlmIGxpbmVzIDw9IDA6CisgICAgICAgICAgICBsaW5lcyA9IHNpemUubGluZXMKKworICAgIHJldHVybiBvcy50ZXJtaW5hbF9zaXplKChjb2x1bW5zLCBsaW5lcykpCisKK2RlZiB3aGljaChjbWQsIG1vZGU9b3MuRl9PSyB8IG9zLlhfT0ssIHBhdGg9Tm9uZSk6CisgICAgIiIiR2l2ZW4gYSBjb21tYW5kLCBtb2RlLCBhbmQgYSBQQVRIIHN0cmluZywgcmV0dXJuIHRoZSBwYXRoIHdoaWNoCisgICAgY29uZm9ybXMgdG8gdGhlIGdpdmVuIG1vZGUgb24gdGhlIFBBVEgsIG9yIE5vbmUgaWYgdGhlcmUgaXMgbm8gc3VjaAorICAgIGZpbGUuCisKKyAgICBgbW9kZWAgZGVmYXVsdHMgdG8gb3MuRl9PSyB8IG9zLlhfT0suIGBwYXRoYCBkZWZhdWx0cyB0byB0aGUgcmVzdWx0CisgICAgb2Ygb3MuZW52aXJvbi5nZXQoIlBBVEgiKSwgb3IgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBhIGN1c3RvbSBzZWFyY2gKKyAgICBwYXRoLgorCisgICAgIiIiCisgICAgIyBDaGVjayB0aGF0IGEgZ2l2ZW4gZmlsZSBjYW4gYmUgYWNjZXNzZWQgd2l0aCB0aGUgY29ycmVjdCBtb2RlLgorICAgICMgQWRkaXRpb25hbGx5IGNoZWNrIHRoYXQgYGZpbGVgIGlzIG5vdCBhIGRpcmVjdG9yeSwgYXMgb24gV2luZG93cworICAgICMgZGlyZWN0b3JpZXMgcGFzcyB0aGUgb3MuYWNjZXNzIGNoZWNrLgorICAgIGRlZiBfYWNjZXNzX2NoZWNrKGZuLCBtb2RlKToKKyAgICAgICAgcmV0dXJuIChvcy5wYXRoLmV4aXN0cyhmbikgYW5kIG9zLmFjY2VzcyhmbiwgbW9kZSkKKyAgICAgICAgICAgICAgICBhbmQgbm90IG9zLnBhdGguaXNkaXIoZm4pKQorCisgICAgIyBTaG9ydCBjaXJjdWl0LiBJZiB3ZSdyZSBnaXZlbiBhIGZ1bGwgcGF0aCB3aGljaCBtYXRjaGVzIHRoZSBtb2RlCisgICAgIyBhbmQgaXQgZXhpc3RzLCB3ZSdyZSBkb25lIGhlcmUuCisgICAgaWYgX2FjY2Vzc19jaGVjayhjbWQsIG1vZGUpOgorICAgICAgICByZXR1cm4gY21kCisKKyAgICBwYXRoID0gKHBhdGggb3Igb3MuZW52aXJvbi5nZXQoIlBBVEgiLCBvcy5kZWZwYXRoKSkuc3BsaXQob3MucGF0aHNlcCkKKworICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgorICAgICAgICAjIFRoZSBjdXJyZW50IGRpcmVjdG9yeSB0YWtlcyBwcmVjZWRlbmNlIG9uIFdpbmRvd3MuCisgICAgICAgIGlmIG5vdCBvcy5jdXJkaXIgaW4gcGF0aDoKKyAgICAgICAgICAgIHBhdGguaW5zZXJ0KDAsIG9zLmN1cmRpcikKKworICAgICAgICAjIFBBVEhFWFQgaXMgbmVjZXNzYXJ5IHRvIGNoZWNrIG9uIFdpbmRvd3MuCisgICAgICAgIHBhdGhleHQgPSBvcy5lbnZpcm9uLmdldCgiUEFUSEVYVCIsICIiKS5zcGxpdChvcy5wYXRoc2VwKQorICAgICAgICAjIFNlZSBpZiB0aGUgZ2l2ZW4gZmlsZSBtYXRjaGVzIGFueSBvZiB0aGUgZXhwZWN0ZWQgcGF0aCBleHRlbnNpb25zLgorICAgICAgICAjIFRoaXMgd2lsbCBhbGxvdyB1cyB0byBzaG9ydCBjaXJjdWl0IHdoZW4gZ2l2ZW4gInB5dGhvbi5leGUiLgorICAgICAgICBtYXRjaGVzID0gW2NtZCBmb3IgZXh0IGluIHBhdGhleHQgaWYgY21kLmxvd2VyKCkuZW5kc3dpdGgoZXh0Lmxvd2VyKCkpXQorICAgICAgICAjIElmIGl0IGRvZXMgbWF0Y2gsIG9ubHkgdGVzdCB0aGF0IG9uZSwgb3RoZXJ3aXNlIHdlIGhhdmUgdG8gdHJ5CisgICAgICAgICMgb3RoZXJzLgorICAgICAgICBmaWxlcyA9IFtjbWRdIGlmIG1hdGNoZXMgZWxzZSBbY21kICsgZXh0Lmxvd2VyKCkgZm9yIGV4dCBpbiBwYXRoZXh0XQorICAgIGVsc2U6CisgICAgICAgICMgT24gb3RoZXIgcGxhdGZvcm1zIHlvdSBkb24ndCBoYXZlIHRoaW5ncyBsaWtlIFBBVEhFWFQgdG8gdGVsbCB5b3UKKyAgICAgICAgIyB3aGF0IGZpbGUgc3VmZml4ZXMgYXJlIGV4ZWN1dGFibGUsIHNvIGp1c3QgcGFzcyBvbiBjbWQgYXMtaXMuCisgICAgICAgIGZpbGVzID0gW2NtZF0KKworICAgIHNlZW4gPSBzZXQoKQorICAgIGZvciBkaXIgaW4gcGF0aDoKKyAgICAgICAgZGlyID0gb3MucGF0aC5ub3JtY2FzZShkaXIpCisgICAgICAgIGlmIG5vdCBkaXIgaW4gc2VlbjoKKyAgICAgICAgICAgIHNlZW4uYWRkKGRpcikKKyAgICAgICAgICAgIGZvciB0aGVmaWxlIGluIGZpbGVzOgorICAgICAgICAgICAgICAgIG5hbWUgPSBvcy5wYXRoLmpvaW4oZGlyLCB0aGVmaWxlKQorICAgICAgICAgICAgICAgIGlmIF9hY2Nlc3NfY2hlY2sobmFtZSwgbW9kZSk6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lCisgICAgcmV0dXJuIE5vbmUKZGlmZiAtLWdpdCBhL0xpYi9zaXRlLnB5IGIvTGliL3NpdGUucHkKaW5kZXggYTJjMGJlYy4uMGFhZjQ2YiAxMDA2NDQKLS0tIGEvTGliL3NpdGUucHkKKysrIGIvTGliL3NpdGUucHkKQEAgLTEzLDYgKzEzLDE5IEBACiByZXN1bHRpbmcgZGlyZWN0b3JpZXMsIGlmIHRoZXkgZXhpc3QsIGFyZSBhcHBlbmRlZCB0byBzeXMucGF0aCwgYW5kCiBhbHNvIGluc3BlY3RlZCBmb3IgcGF0aCBjb25maWd1cmF0aW9uIGZpbGVzLgogCitJZiBhIGZpbGUgbmFtZWQgInB5dmVudi5jZmciIGV4aXN0cyBvbmUgZGlyZWN0b3J5IGFib3ZlIHN5cy5leGVjdXRhYmxlLAorc3lzLnByZWZpeCBhbmQgc3lzLmV4ZWNfcHJlZml4IGFyZSBzZXQgdG8gdGhhdCBkaXJlY3RvcnkgYW5kCitpdCBpcyBhbHNvIGNoZWNrZWQgZm9yIHNpdGUtcGFja2FnZXMgYW5kIHNpdGUtcHl0aG9uIChzeXMuYmFzZV9wcmVmaXggYW5kCitzeXMuYmFzZV9leGVjX3ByZWZpeCB3aWxsIGFsd2F5cyBiZSB0aGUgInJlYWwiIHByZWZpeGVzIG9mIHRoZSBQeXRob24KK2luc3RhbGxhdGlvbikuIElmICJweXZlbnYuY2ZnIiAoYSBib290c3RyYXAgY29uZmlndXJhdGlvbiBmaWxlKSBjb250YWlucwordGhlIGtleSAiaW5jbHVkZS1zeXN0ZW0tc2l0ZS1wYWNrYWdlcyIgc2V0IHRvIGFueXRoaW5nIG90aGVyIHRoYW4gImZhbHNlIgorKGNhc2UtaW5zZW5zaXRpdmUpLCB0aGUgc3lzdGVtLWxldmVsIHByZWZpeGVzIHdpbGwgc3RpbGwgYWxzbyBiZQorc2VhcmNoZWQgZm9yIHNpdGUtcGFja2FnZXM7IG90aGVyd2lzZSB0aGV5IHdvbid0LgorCitBbGwgb2YgdGhlIHJlc3VsdGluZyBzaXRlLXNwZWNpZmljIGRpcmVjdG9yaWVzLCBpZiB0aGV5IGV4aXN0LCBhcmUKK2FwcGVuZGVkIHRvIHN5cy5wYXRoLCBhbmQgYWxzbyBpbnNwZWN0ZWQgZm9yIHBhdGggY29uZmlndXJhdGlvbgorZmlsZXMuCisKIEEgcGF0aCBjb25maWd1cmF0aW9uIGZpbGUgaXMgYSBmaWxlIHdob3NlIG5hbWUgaGFzIHRoZSBmb3JtCiA8cGFja2FnZT4ucHRoOyBpdHMgY29udGVudHMgYXJlIGFkZGl0aW9uYWwgZGlyZWN0b3JpZXMgKG9uZSBwZXIgbGluZSkKIHRvIGJlIGFkZGVkIHRvIHN5cy5wYXRoLiAgTm9uLWV4aXN0aW5nIGRpcmVjdG9yaWVzIChvcgpAQCAtNTQsOCArNjcsOCBAQAogCiBpbXBvcnQgc3lzCiBpbXBvcnQgb3MKK2ltcG9ydCByZQogaW1wb3J0IGJ1aWx0aW5zCi1pbXBvcnQgdHJhY2ViYWNrCiAKICMgUHJlZml4ZXMgZm9yIHNpdGUtcGFja2FnZXM7IGFkZCBhZGRpdGlvbmFsIHByZWZpeGVzIGxpa2UgL3Vzci9sb2NhbCBoZXJlCiBQUkVGSVhFUyA9IFtzeXMucHJlZml4LCBzeXMuZXhlY19wcmVmaXhdCkBAIC04Miw3ICs5NSw4IEBACiBkZWYgYWJzX3BhdGhzKCk6CiAgICAgIiIiU2V0IGFsbCBtb2R1bGUgX19maWxlX18gYW5kIF9fY2FjaGVkX18gYXR0cmlidXRlcyB0byBhbiBhYnNvbHV0ZSBwYXRoIiIiCiAgICAgZm9yIG0gaW4gc2V0KHN5cy5tb2R1bGVzLnZhbHVlcygpKToKLSAgICAgICAgaWYgaGFzYXR0cihtLCAnX19sb2FkZXJfXycpOgorICAgICAgICBpZiAoZ2V0YXR0cihnZXRhdHRyKG0sICdfX2xvYWRlcl9fJywgTm9uZSksICdfX21vZHVsZV9fJywgTm9uZSkgIT0KKyAgICAgICAgICAgICAgICAnX2Zyb3plbl9pbXBvcnRsaWInKToKICAgICAgICAgICAgIGNvbnRpbnVlICAgIyBkb24ndCBtZXNzIHdpdGggYSBQRVAgMzAyLXN1cHBsaWVkIF9fZmlsZV9fCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG0uX19maWxlX18gPSBvcy5wYXRoLmFic3BhdGgobS5fX2ZpbGVfXykKQEAgLTEzOCw3ICsxNTIsNyBAQAogICAgICAgICByZXNldCA9IDAKICAgICBmdWxsbmFtZSA9IG9zLnBhdGguam9pbihzaXRlZGlyLCBuYW1lKQogICAgIHRyeToKLSAgICAgICAgZiA9IG9wZW4oZnVsbG5hbWUsICJyVSIpCisgICAgICAgIGYgPSBvcGVuKGZ1bGxuYW1lLCAiciIpCiAgICAgZXhjZXB0IElPRXJyb3I6CiAgICAgICAgIHJldHVybgogICAgIHdpdGggZjoKQEAgLTE1NCw5ICsxNjgsMTAgQEAKICAgICAgICAgICAgICAgICBpZiBub3QgZGlyY2FzZSBpbiBrbm93bl9wYXRocyBhbmQgb3MucGF0aC5leGlzdHMoZGlyKToKICAgICAgICAgICAgICAgICAgICAgc3lzLnBhdGguYXBwZW5kKGRpcikKICAgICAgICAgICAgICAgICAgICAga25vd25fcGF0aHMuYWRkKGRpcmNhc2UpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVycjoKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgcHJpbnQoIkVycm9yIHByb2Nlc3NpbmcgbGluZSB7OmR9IG9mIHt9OlxuIi5mb3JtYXQobisxLCBmdWxsbmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKICAgICAgICAgICAgICAgICBmb3IgcmVjb3JkIGluIHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKCpzeXMuZXhjX2luZm8oKSk6CiAgICAgICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIHJlY29yZC5zcGxpdGxpbmVzKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgnICAnK2xpbmUsIGZpbGU9c3lzLnN0ZGVycikKQEAgLTE3OCw2ICsxOTMsNyBAQAogICAgIHNpdGVkaXIsIHNpdGVkaXJjYXNlID0gbWFrZXBhdGgoc2l0ZWRpcikKICAgICBpZiBub3Qgc2l0ZWRpcmNhc2UgaW4ga25vd25fcGF0aHM6CiAgICAgICAgIHN5cy5wYXRoLmFwcGVuZChzaXRlZGlyKSAgICAgICAgIyBBZGQgcGF0aCBjb21wb25lbnQKKyAgICAgICAga25vd25fcGF0aHMuYWRkKHNpdGVkaXJjYXNlKQogICAgIHRyeToKICAgICAgICAgbmFtZXMgPSBvcy5saXN0ZGlyKHNpdGVkaXIpCiAgICAgZXhjZXB0IG9zLmVycm9yOgpAQCAtMjQxLDcgKzI1Nyw2IEBACiAgICAgICAgIHJldHVybiBVU0VSX1NJVEUKIAogICAgIGZyb20gc3lzY29uZmlnIGltcG9ydCBnZXRfcGF0aAotICAgIGltcG9ydCBvcwogCiAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICBmcm9tIHN5c2NvbmZpZyBpbXBvcnQgZ2V0X2NvbmZpZ192YXIKQEAgLTI2NiwxOCArMjgxLDIxIEBACiAgICAgICAgIGFkZHNpdGVkaXIodXNlcl9zaXRlLCBrbm93bl9wYXRocykKICAgICByZXR1cm4ga25vd25fcGF0aHMKIAotZGVmIGdldHNpdGVwYWNrYWdlcygpOgorZGVmIGdldHNpdGVwYWNrYWdlcyhwcmVmaXhlcz1Ob25lKToKICAgICAiIiJSZXR1cm5zIGEgbGlzdCBjb250YWluaW5nIGFsbCBnbG9iYWwgc2l0ZS1wYWNrYWdlcyBkaXJlY3RvcmllcwogICAgIChhbmQgcG9zc2libHkgc2l0ZS1weXRob24pLgogCi0gICAgRm9yIGVhY2ggZGlyZWN0b3J5IHByZXNlbnQgaW4gdGhlIGdsb2JhbCBgYFBSRUZJWEVTYGAsIHRoaXMgZnVuY3Rpb24KLSAgICB3aWxsIGZpbmQgaXRzIGBzaXRlLXBhY2thZ2VzYCBzdWJkaXJlY3RvcnkgZGVwZW5kaW5nIG9uIHRoZSBzeXN0ZW0KLSAgICBlbnZpcm9ubWVudCwgYW5kIHdpbGwgcmV0dXJuIGEgbGlzdCBvZiBmdWxsIHBhdGhzLgorICAgIEZvciBlYWNoIGRpcmVjdG9yeSBwcmVzZW50IGluIGBgcHJlZml4ZXNgYCAob3IgdGhlIGdsb2JhbCBgYFBSRUZJWEVTYGApLAorICAgIHRoaXMgZnVuY3Rpb24gd2lsbCBmaW5kIGl0cyBgc2l0ZS1wYWNrYWdlc2Agc3ViZGlyZWN0b3J5IGRlcGVuZGluZyBvbiB0aGUKKyAgICBzeXN0ZW0gZW52aXJvbm1lbnQsIGFuZCB3aWxsIHJldHVybiBhIGxpc3Qgb2YgZnVsbCBwYXRocy4KICAgICAiIiIKICAgICBzaXRlcGFja2FnZXMgPSBbXQogICAgIHNlZW4gPSBzZXQoKQogCi0gICAgZm9yIHByZWZpeCBpbiBQUkVGSVhFUzoKKyAgICBpZiBwcmVmaXhlcyBpcyBOb25lOgorICAgICAgICBwcmVmaXhlcyA9IFBSRUZJWEVTCisKKyAgICBmb3IgcHJlZml4IGluIHByZWZpeGVzOgogICAgICAgICBpZiBub3QgcHJlZml4IG9yIHByZWZpeCBpbiBzZWVuOgogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgc2Vlbi5hZGQocHJlZml4KQpAQCAtMzAzLDkgKzMyMSw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnZlcnNpb25bOjNdLCAic2l0ZS1wYWNrYWdlcyIpKQogICAgIHJldHVybiBzaXRlcGFja2FnZXMKIAotZGVmIGFkZHNpdGVwYWNrYWdlcyhrbm93bl9wYXRocyk6CitkZWYgYWRkc2l0ZXBhY2thZ2VzKGtub3duX3BhdGhzLCBwcmVmaXhlcz1Ob25lKToKICAgICAiIiJBZGQgc2l0ZS1wYWNrYWdlcyAoYW5kIHBvc3NpYmx5IHNpdGUtcHl0aG9uKSB0byBzeXMucGF0aCIiIgotICAgIGZvciBzaXRlZGlyIGluIGdldHNpdGVwYWNrYWdlcygpOgorICAgIGZvciBzaXRlZGlyIGluIGdldHNpdGVwYWNrYWdlcyhwcmVmaXhlcyk6CiAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoc2l0ZWRpcik6CiAgICAgICAgICAgICBhZGRzaXRlZGlyKHNpdGVkaXIsIGtub3duX3BhdGhzKQogCkBAIC0zODUsNyArNDAzLDcgQEAKICAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiBzZWxmLl9fZmlsZXM6CiAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4oZGlyLCBmaWxlbmFtZSkKICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGZwID0gb3BlbihmaWxlbmFtZSwgInJVIikKKyAgICAgICAgICAgICAgICAgICAgZnAgPSBvcGVuKGZpbGVuYW1lLCAiciIpCiAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBmcC5yZWFkKCkKICAgICAgICAgICAgICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgICAgICAgICAgICAgICBicmVhawpAQCAtNDc1LDYgKzQ5Myw2MSBAQAogICAgICAgICAgICAgICAgIGVuY29kaW5ncy5hbGlhc2VzLmFsaWFzZXNbZW5jXSA9ICdtYmNzJwogCiAKK0NPTkZJR19MSU5FID0gcmUuY29tcGlsZShyJ14oP1A8a2V5Pihcd3xbLV9dKSspXHMqPVxzKig/UDx2YWx1ZT4uKilccyokJykKKworZGVmIHZlbnYoa25vd25fcGF0aHMpOgorICAgIGdsb2JhbCBQUkVGSVhFUywgRU5BQkxFX1VTRVJfU0lURQorCisgICAgZW52ID0gb3MuZW52aXJvbgorICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgJ19fUFlWRU5WX0xBVU5DSEVSX18nIGluIGVudjoKKyAgICAgICAgZXhlY3V0YWJsZSA9IG9zLmVudmlyb25bJ19fUFlWRU5WX0xBVU5DSEVSX18nXQorICAgIGVsc2U6CisgICAgICAgIGV4ZWN1dGFibGUgPSBzeXMuZXhlY3V0YWJsZQorICAgIGV4ZWN1dGFibGVfZGlyLCBleGVjdXRhYmxlX25hbWUgPSBvcy5wYXRoLnNwbGl0KGV4ZWN1dGFibGUpCisgICAgc2l0ZV9wcmVmaXggPSBvcy5wYXRoLmRpcm5hbWUoZXhlY3V0YWJsZV9kaXIpCisgICAgc3lzLl9ob21lID0gTm9uZQorICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgorICAgICAgICBleGVjdXRhYmxlX25hbWUgPSBvcy5wYXRoLnNwbGl0ZXh0KGV4ZWN1dGFibGVfbmFtZSlbMF0KKyAgICBjb25mX2Jhc2VuYW1lID0gJ3B5dmVudi5jZmcnCisgICAgY2FuZGlkYXRlX2NvbmZzID0gWworICAgICAgICBjb25mZmlsZSBmb3IgY29uZmZpbGUgaW4gKAorICAgICAgICAgICAgb3MucGF0aC5qb2luKGV4ZWN1dGFibGVfZGlyLCBjb25mX2Jhc2VuYW1lKSwKKyAgICAgICAgICAgIG9zLnBhdGguam9pbihzaXRlX3ByZWZpeCwgY29uZl9iYXNlbmFtZSkKKyAgICAgICAgICAgICkKKyAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoY29uZmZpbGUpCisgICAgICAgIF0KKworICAgIGlmIGNhbmRpZGF0ZV9jb25mczoKKyAgICAgICAgdmlydHVhbF9jb25mID0gY2FuZGlkYXRlX2NvbmZzWzBdCisgICAgICAgIHN5c3RlbV9zaXRlID0gInRydWUiCisgICAgICAgIHdpdGggb3Blbih2aXJ0dWFsX2NvbmYpIGFzIGY6CisgICAgICAgICAgICBmb3IgbGluZSBpbiBmOgorICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBtID0gQ09ORklHX0xJTkUubWF0Y2gobGluZSkKKyAgICAgICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAgICAgICAgICBkID0gbS5ncm91cGRpY3QoKQorICAgICAgICAgICAgICAgICAgICBrZXksIHZhbHVlID0gZFsna2V5J10ubG93ZXIoKSwgZFsndmFsdWUnXQorICAgICAgICAgICAgICAgICAgICBpZiBrZXkgPT0gJ2luY2x1ZGUtc3lzdGVtLXNpdGUtcGFja2FnZXMnOgorICAgICAgICAgICAgICAgICAgICAgICAgc3lzdGVtX3NpdGUgPSB2YWx1ZS5sb3dlcigpCisgICAgICAgICAgICAgICAgICAgIGVsaWYga2V5ID09ICdob21lJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5cy5faG9tZSA9IHZhbHVlCisKKyAgICAgICAgc3lzLnByZWZpeCA9IHN5cy5leGVjX3ByZWZpeCA9IHNpdGVfcHJlZml4CisKKyAgICAgICAgIyBEb2luZyB0aGlzIGhlcmUgZW5zdXJlcyB2ZW52IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB1c2VyLXNpdGUKKyAgICAgICAgYWRkc2l0ZXBhY2thZ2VzKGtub3duX3BhdGhzLCBbc3lzLnByZWZpeF0pCisKKyAgICAgICAgIyBhZGRzaXRlcGFja2FnZXMgd2lsbCBwcm9jZXNzIHNpdGVfcHJlZml4IGFnYWluIGlmIGl0cyBpbiBQUkVGSVhFUywKKyAgICAgICAgIyBidXQgdGhhdCdzIG9rOyBrbm93bl9wYXRocyB3aWxsIHByZXZlbnQgYW55dGhpbmcgYmVpbmcgYWRkZWQgdHdpY2UKKyAgICAgICAgaWYgc3lzdGVtX3NpdGUgPT0gInRydWUiOgorICAgICAgICAgICAgUFJFRklYRVMuaW5zZXJ0KDAsIHN5cy5wcmVmaXgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBQUkVGSVhFUyA9IFtzeXMucHJlZml4XQorICAgICAgICAgICAgRU5BQkxFX1VTRVJfU0lURSA9IEZhbHNlCisKKyAgICByZXR1cm4ga25vd25fcGF0aHMKKworCiBkZWYgZXhlY3NpdGVjdXN0b21pemUoKToKICAgICAiIiJSdW4gY3VzdG9tIHNpdGUgc3BlY2lmaWMgY29kZSwgaWYgYXZhaWxhYmxlLiIiIgogICAgIHRyeToKQEAgLTUwOCwxMCArNTgxLDE2IEBACiAKIAogZGVmIG1haW4oKToKKyAgICAiIiJBZGQgc3RhbmRhcmQgc2l0ZS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUgbW9kdWxlIHNlYXJjaCBwYXRoLgorCisgICAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYXV0b21hdGljYWxseSB3aGVuIHRoaXMgbW9kdWxlIGlzIGltcG9ydGVkLAorICAgIHVubGVzcyB0aGUgcHl0aG9uIGludGVycHJldGVyIHdhcyBzdGFydGVkIHdpdGggdGhlIC1TIGZsYWcuCisgICAgIiIiCiAgICAgZ2xvYmFsIEVOQUJMRV9VU0VSX1NJVEUKIAogICAgIGFic19wYXRocygpCiAgICAga25vd25fcGF0aHMgPSByZW1vdmVkdXBwYXRocygpCisgICAga25vd25fcGF0aHMgPSB2ZW52KGtub3duX3BhdGhzKQogICAgIGlmIEVOQUJMRV9VU0VSX1NJVEUgaXMgTm9uZToKICAgICAgICAgRU5BQkxFX1VTRVJfU0lURSA9IGNoZWNrX2VuYWJsZXVzZXJzaXRlKCkKICAgICBrbm93bl9wYXRocyA9IGFkZHVzZXJzaXRlcGFja2FnZXMoa25vd25fcGF0aHMpCkBAIC01MjYsNyArNjA1LDEwIEBACiAgICAgaWYgRU5BQkxFX1VTRVJfU0lURToKICAgICAgICAgZXhlY3VzZXJjdXN0b21pemUoKQogCi1tYWluKCkKKyMgUHJldmVudCBlZGl0aW9uIG9mIHN5cy5wYXRoIHdoZW4gcHl0aG9uIHdhcyBzdGFydGVkIHdpdGggLVMgYW5kCisjIHNpdGUgaXMgaW1wb3J0ZWQgbGF0ZXIuCitpZiBub3Qgc3lzLmZsYWdzLm5vX3NpdGU6CisgICAgbWFpbigpCiAKIGRlZiBfc2NyaXB0KCk6CiAgICAgaGVscCA9ICIiIlwKZGlmZiAtLWdpdCBhL0xpYi9zbXRwZC5weSBiL0xpYi9zbXRwZC5weQppbmRleCA4Y2Q0MDVjLi43NzhkNmQ2IDEwMDc1NQotLS0gYS9MaWIvc210cGQucHkKKysrIGIvTGliL3NtdHBkLnB5CkBAIC0xLDUgKzEsNSBAQAogIyEgL3Vzci9iaW4vZW52IHB5dGhvbjMKLSIiIkFuIFJGQyAyODIxIHNtdHAgcHJveHkuCisiIiJBbiBSRkMgNTMyMSBzbXRwIHByb3h5LgogCiBVc2FnZTogJShwcm9ncmFtKXMgW29wdGlvbnNdIFtsb2NhbGhvc3Q6bG9jYWxwb3J0IFtyZW1vdGVob3N0OnJlbW90ZXBvcnRdXQogCkBAIC0yMCw2ICsyMCwxMSBAQAogICAgICAgICBVc2UgYGNsYXNzbmFtZScgYXMgdGhlIGNvbmNyZXRlIFNNVFAgcHJveHkgY2xhc3MuICBVc2VzIGBQdXJlUHJveHknIGJ5CiAgICAgICAgIGRlZmF1bHQuCiAKKyAgICAtLXNpemUgbGltaXQKKyAgICAtcyBsaW1pdAorICAgICAgICBSZXN0cmljdCB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgaW5jb21pbmcgbWVzc2FnZSB0byAibGltaXQiIG51bWJlciBvZgorICAgICAgICBieXRlcyB2aWEgdGhlIFJGQyAxODcwIFNJWkUgZXh0ZW5zaW9uLiAgRGVmYXVsdHMgdG8gMzM1NTQ0MzIgYnl0ZXMuCisKICAgICAtLWRlYnVnCiAgICAgLWQKICAgICAgICAgVHVybiBvbiBkZWJ1Z2dpbmcgcHJpbnRzLgpAQCAtMzUsMTAgKzQwLDkgQEAKIGFuZCBpZiByZW1vdGVwb3J0IGlzIG5vdCBnaXZlbiwgdGhlbiAyNSBpcyB1c2VkLgogIiIiCiAKLQwKICMgT3ZlcnZpZXc6CiAjCi0jIFRoaXMgZmlsZSBpbXBsZW1lbnRzIHRoZSBtaW5pbWFsIFNNVFAgcHJvdG9jb2wgYXMgZGVmaW5lZCBpbiBSRkMgODIxLiAgSXQKKyMgVGhpcyBmaWxlIGltcGxlbWVudHMgdGhlIG1pbmltYWwgU01UUCBwcm90b2NvbCBhcyBkZWZpbmVkIGluIFJGQyA1MzIxLiAgSXQKICMgaGFzIGEgaGllcmFyY2h5IG9mIGNsYXNzZXMgd2hpY2ggaW1wbGVtZW50IHRoZSBiYWNrZW5kIGZ1bmN0aW9uYWxpdHkgZm9yIHRoZQogIyBzbXRwZC4gIEEgbnVtYmVyIG9mIGNsYXNzZXMgYXJlIHByb3ZpZGVkOgogIwpAQCAtNjYsNyArNzAsNyBAQAogIwogIyAtIHN1cHBvcnQgbWFpbGJveCBkZWxpdmVyeQogIyAtIGFsaWFzIGZpbGVzCi0jIC0gRVNNVFAKKyMgLSBIYW5kbGUgbW9yZSBFU01UUCBleHRlbnNpb25zCiAjIC0gaGFuZGxlIGVycm9yIGNvZGVzIGZyb20gdGhlIGJhY2tlbmQgc210cGQKIAogaW1wb3J0IHN5cwpAQCAtNzcsMTIgKzgxLDE0IEBACiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgYXN5bmNvcmUKIGltcG9ydCBhc3luY2hhdAoraW1wb3J0IGNvbGxlY3Rpb25zCiBmcm9tIHdhcm5pbmdzIGltcG9ydCB3YXJuCitmcm9tIGVtYWlsLl9oZWFkZXJfdmFsdWVfcGFyc2VyIGltcG9ydCBnZXRfYWRkcl9zcGVjLCBnZXRfYW5nbGVfYWRkcgogCiBfX2FsbF9fID0gWyJTTVRQU2VydmVyIiwiRGVidWdnaW5nU2VydmVyIiwiUHVyZVByb3h5IiwiTWFpbG1hblByb3h5Il0KIAogcHJvZ3JhbSA9IHN5cy5hcmd2WzBdCi1fX3ZlcnNpb25fXyA9ICdQeXRob24gU01UUCBwcm94eSB2ZXJzaW9uIDAuMicKK19fdmVyc2lvbl9fID0gJ1B5dGhvbiBTTVRQIHByb3h5IHZlcnNpb24gMC4zJwogCiAKIGNsYXNzIERldm51bGw6CkBAIC05NCw5ICsxMDAsOSBAQAogTkVXTElORSA9ICdcbicKIEVNUFRZU1RSSU5HID0gJycKIENPTU1BU1BBQ0UgPSAnLCAnCitEQVRBX1NJWkVfREVGQVVMVCA9IDMzNTU0NDMyCiAKIAotDAogZGVmIHVzYWdlKGNvZGUsIG1zZz0nJyk6CiAgICAgcHJpbnQoX19kb2NfXyAlIGdsb2JhbHMoKSwgZmlsZT1zeXMuc3RkZXJyKQogICAgIGlmIG1zZzoKQEAgLTEwNCwxOSArMTEwLDIzIEBACiAgICAgc3lzLmV4aXQoY29kZSkKIAogCi0MCiBjbGFzcyBTTVRQQ2hhbm5lbChhc3luY2hhdC5hc3luY19jaGF0KToKICAgICBDT01NQU5EID0gMAogICAgIERBVEEgPSAxCiAKLSAgICBkYXRhX3NpemVfbGltaXQgPSAzMzU1NDQzMgogICAgIGNvbW1hbmRfc2l6ZV9saW1pdCA9IDUxMgorICAgIGNvbW1hbmRfc2l6ZV9saW1pdHMgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChsYW1iZGEgeD1jb21tYW5kX3NpemVfbGltaXQ6IHgpCisgICAgY29tbWFuZF9zaXplX2xpbWl0cy51cGRhdGUoeworICAgICAgICAnTUFJTCc6IGNvbW1hbmRfc2l6ZV9saW1pdCArIDI2LAorICAgICAgICB9KQorICAgIG1heF9jb21tYW5kX3NpemVfbGltaXQgPSBtYXgoY29tbWFuZF9zaXplX2xpbWl0cy52YWx1ZXMoKSkKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXJ2ZXIsIGNvbm4sIGFkZHIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzZXJ2ZXIsIGNvbm4sIGFkZHIsIGRhdGFfc2l6ZV9saW1pdD1EQVRBX1NJWkVfREVGQVVMVCk6CiAgICAgICAgIGFzeW5jaGF0LmFzeW5jX2NoYXQuX19pbml0X18oc2VsZiwgY29ubikKICAgICAgICAgc2VsZi5zbXRwX3NlcnZlciA9IHNlcnZlcgogICAgICAgICBzZWxmLmNvbm4gPSBjb25uCiAgICAgICAgIHNlbGYuYWRkciA9IGFkZHIKKyAgICAgICAgc2VsZi5kYXRhX3NpemVfbGltaXQgPSBkYXRhX3NpemVfbGltaXQKICAgICAgICAgc2VsZi5yZWNlaXZlZF9saW5lcyA9IFtdCiAgICAgICAgIHNlbGYuc210cF9zdGF0ZSA9IHNlbGYuQ09NTUFORAogICAgICAgICBzZWxmLnNlZW5fZ3JlZXRpbmcgPSAnJwpAQCAtMTM3LDEyNyArMTQ3LDEyOCBAQAogICAgICAgICBwcmludCgnUGVlcjonLCByZXByKHNlbGYucGVlciksIGZpbGU9REVCVUdTVFJFQU0pCiAgICAgICAgIHNlbGYucHVzaCgnMjIwICVzICVzJyAlIChzZWxmLmZxZG4sIF9fdmVyc2lvbl9fKSkKICAgICAgICAgc2VsZi5zZXRfdGVybWluYXRvcihiJ1xyXG4nKQorICAgICAgICBzZWxmLmV4dGVuZGVkX3NtdHAgPSBGYWxzZQogCiAgICAgIyBwcm9wZXJ0aWVzIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eQogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBfX3NlcnZlcihzZWxmKToKICAgICAgICAgd2FybigiQWNjZXNzIHRvIF9fc2VydmVyIGF0dHJpYnV0ZSBvbiBTTVRQQ2hhbm5lbCBpcyBkZXByZWNhdGVkLCAiCi0gICAgICAgICAgICAidXNlICdzbXRwX3NlcnZlcicgaW5zdGVhZCIsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICAidXNlICdzbXRwX3NlcnZlcicgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgcmV0dXJuIHNlbGYuc210cF9zZXJ2ZXIKICAgICBAX19zZXJ2ZXIuc2V0dGVyCiAgICAgZGVmIF9fc2VydmVyKHNlbGYsIHZhbHVlKToKICAgICAgICAgd2FybigiU2V0dGluZyBfX3NlcnZlciBhdHRyaWJ1dGUgb24gU01UUENoYW5uZWwgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgInNldCAnc210cF9zZXJ2ZXInIGluc3RlYWQiLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgInNldCAnc210cF9zZXJ2ZXInIGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCiAgICAgICAgIHNlbGYuc210cF9zZXJ2ZXIgPSB2YWx1ZQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIF9fbGluZShzZWxmKToKICAgICAgICAgd2FybigiQWNjZXNzIHRvIF9fbGluZSBhdHRyaWJ1dGUgb24gU01UUENoYW5uZWwgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgInVzZSAncmVjZWl2ZWRfbGluZXMnIGluc3RlYWQiLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgInVzZSAncmVjZWl2ZWRfbGluZXMnIGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCiAgICAgICAgIHJldHVybiBzZWxmLnJlY2VpdmVkX2xpbmVzCiAgICAgQF9fbGluZS5zZXR0ZXIKICAgICBkZWYgX19saW5lKHNlbGYsIHZhbHVlKToKICAgICAgICAgd2FybigiU2V0dGluZyBfX2xpbmUgYXR0cmlidXRlIG9uIFNNVFBDaGFubmVsIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICJzZXQgJ3JlY2VpdmVkX2xpbmVzJyBpbnN0ZWFkIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgICAgICJzZXQgJ3JlY2VpdmVkX2xpbmVzJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICBzZWxmLnJlY2VpdmVkX2xpbmVzID0gdmFsdWUKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBfX3N0YXRlKHNlbGYpOgogICAgICAgICB3YXJuKCJBY2Nlc3MgdG8gX19zdGF0ZSBhdHRyaWJ1dGUgb24gU01UUENoYW5uZWwgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgInVzZSAnc210cF9zdGF0ZScgaW5zdGVhZCIsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICAidXNlICdzbXRwX3N0YXRlJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICByZXR1cm4gc2VsZi5zbXRwX3N0YXRlCiAgICAgQF9fc3RhdGUuc2V0dGVyCiAgICAgZGVmIF9fc3RhdGUoc2VsZiwgdmFsdWUpOgogICAgICAgICB3YXJuKCJTZXR0aW5nIF9fc3RhdGUgYXR0cmlidXRlIG9uIFNNVFBDaGFubmVsIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICJzZXQgJ3NtdHBfc3RhdGUnIGluc3RlYWQiLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgInNldCAnc210cF9zdGF0ZScgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgc2VsZi5zbXRwX3N0YXRlID0gdmFsdWUKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBfX2dyZWV0aW5nKHNlbGYpOgogICAgICAgICB3YXJuKCJBY2Nlc3MgdG8gX19ncmVldGluZyBhdHRyaWJ1dGUgb24gU01UUENoYW5uZWwgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgInVzZSAnc2Vlbl9ncmVldGluZycgaW5zdGVhZCIsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICAidXNlICdzZWVuX2dyZWV0aW5nJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICByZXR1cm4gc2VsZi5zZWVuX2dyZWV0aW5nCiAgICAgQF9fZ3JlZXRpbmcuc2V0dGVyCiAgICAgZGVmIF9fZ3JlZXRpbmcoc2VsZiwgdmFsdWUpOgogICAgICAgICB3YXJuKCJTZXR0aW5nIF9fZ3JlZXRpbmcgYXR0cmlidXRlIG9uIFNNVFBDaGFubmVsIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICJzZXQgJ3NlZW5fZ3JlZXRpbmcnIGluc3RlYWQiLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgInNldCAnc2Vlbl9ncmVldGluZycgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgc2VsZi5zZWVuX2dyZWV0aW5nID0gdmFsdWUKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBfX21haWxmcm9tKHNlbGYpOgogICAgICAgICB3YXJuKCJBY2Nlc3MgdG8gX19tYWlsZnJvbSBhdHRyaWJ1dGUgb24gU01UUENoYW5uZWwgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgInVzZSAnbWFpbGZyb20nIGluc3RlYWQiLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgInVzZSAnbWFpbGZyb20nIGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCiAgICAgICAgIHJldHVybiBzZWxmLm1haWxmcm9tCiAgICAgQF9fbWFpbGZyb20uc2V0dGVyCiAgICAgZGVmIF9fbWFpbGZyb20oc2VsZiwgdmFsdWUpOgogICAgICAgICB3YXJuKCJTZXR0aW5nIF9fbWFpbGZyb20gYXR0cmlidXRlIG9uIFNNVFBDaGFubmVsIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICJzZXQgJ21haWxmcm9tJyBpbnN0ZWFkIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgICAgICJzZXQgJ21haWxmcm9tJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICBzZWxmLm1haWxmcm9tID0gdmFsdWUKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBfX3JjcHR0b3Moc2VsZik6CiAgICAgICAgIHdhcm4oIkFjY2VzcyB0byBfX3JjcHR0b3MgYXR0cmlidXRlIG9uIFNNVFBDaGFubmVsIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICJ1c2UgJ3JjcHR0b3MnIGluc3RlYWQiLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgInVzZSAncmNwdHRvcycgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgcmV0dXJuIHNlbGYucmNwdHRvcwogICAgIEBfX3JjcHR0b3Muc2V0dGVyCiAgICAgZGVmIF9fcmNwdHRvcyhzZWxmLCB2YWx1ZSk6CiAgICAgICAgIHdhcm4oIlNldHRpbmcgX19yY3B0dG9zIGF0dHJpYnV0ZSBvbiBTTVRQQ2hhbm5lbCBpcyBkZXByZWNhdGVkLCAiCi0gICAgICAgICAgICAic2V0ICdyY3B0dG9zJyBpbnN0ZWFkIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgICAgICJzZXQgJ3JjcHR0b3MnIGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCiAgICAgICAgIHNlbGYucmNwdHRvcyA9IHZhbHVlCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgX19kYXRhKHNlbGYpOgogICAgICAgICB3YXJuKCJBY2Nlc3MgdG8gX19kYXRhIGF0dHJpYnV0ZSBvbiBTTVRQQ2hhbm5lbCBpcyBkZXByZWNhdGVkLCAiCi0gICAgICAgICAgICAidXNlICdyZWNlaXZlZF9kYXRhJyBpbnN0ZWFkIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgICAgICJ1c2UgJ3JlY2VpdmVkX2RhdGEnIGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCiAgICAgICAgIHJldHVybiBzZWxmLnJlY2VpdmVkX2RhdGEKICAgICBAX19kYXRhLnNldHRlcgogICAgIGRlZiBfX2RhdGEoc2VsZiwgdmFsdWUpOgogICAgICAgICB3YXJuKCJTZXR0aW5nIF9fZGF0YSBhdHRyaWJ1dGUgb24gU01UUENoYW5uZWwgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgInNldCAncmVjZWl2ZWRfZGF0YScgaW5zdGVhZCIsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICAic2V0ICdyZWNlaXZlZF9kYXRhJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICBzZWxmLnJlY2VpdmVkX2RhdGEgPSB2YWx1ZQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIF9fZnFkbihzZWxmKToKICAgICAgICAgd2FybigiQWNjZXNzIHRvIF9fZnFkbiBhdHRyaWJ1dGUgb24gU01UUENoYW5uZWwgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgInVzZSAnZnFkbicgaW5zdGVhZCIsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICAidXNlICdmcWRuJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICByZXR1cm4gc2VsZi5mcWRuCiAgICAgQF9fZnFkbi5zZXR0ZXIKICAgICBkZWYgX19mcWRuKHNlbGYsIHZhbHVlKToKICAgICAgICAgd2FybigiU2V0dGluZyBfX2ZxZG4gYXR0cmlidXRlIG9uIFNNVFBDaGFubmVsIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICJzZXQgJ2ZxZG4nIGluc3RlYWQiLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgInNldCAnZnFkbicgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgc2VsZi5mcWRuID0gdmFsdWUKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBfX3BlZXIoc2VsZik6CiAgICAgICAgIHdhcm4oIkFjY2VzcyB0byBfX3BlZXIgYXR0cmlidXRlIG9uIFNNVFBDaGFubmVsIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICJ1c2UgJ3BlZXInIGluc3RlYWQiLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgInVzZSAncGVlcicgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgcmV0dXJuIHNlbGYucGVlcgogICAgIEBfX3BlZXIuc2V0dGVyCiAgICAgZGVmIF9fcGVlcihzZWxmLCB2YWx1ZSk6CiAgICAgICAgIHdhcm4oIlNldHRpbmcgX19wZWVyIGF0dHJpYnV0ZSBvbiBTTVRQQ2hhbm5lbCBpcyBkZXByZWNhdGVkLCAiCi0gICAgICAgICAgICAic2V0ICdwZWVyJyBpbnN0ZWFkIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgICAgICJzZXQgJ3BlZXInIGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCiAgICAgICAgIHNlbGYucGVlciA9IHZhbHVlCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgX19jb25uKHNlbGYpOgogICAgICAgICB3YXJuKCJBY2Nlc3MgdG8gX19jb25uIGF0dHJpYnV0ZSBvbiBTTVRQQ2hhbm5lbCBpcyBkZXByZWNhdGVkLCAiCi0gICAgICAgICAgICAidXNlICdjb25uJyBpbnN0ZWFkIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZywgMikKKyAgICAgICAgICAgICJ1c2UgJ2Nvbm4nIGluc3RlYWQiLCBEZXByZWNhdGlvbldhcm5pbmcsIDIpCiAgICAgICAgIHJldHVybiBzZWxmLmNvbm4KICAgICBAX19jb25uLnNldHRlcgogICAgIGRlZiBfX2Nvbm4oc2VsZiwgdmFsdWUpOgogICAgICAgICB3YXJuKCJTZXR0aW5nIF9fY29ubiBhdHRyaWJ1dGUgb24gU01UUENoYW5uZWwgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgInNldCAnY29ubicgaW5zdGVhZCIsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICAic2V0ICdjb25uJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICBzZWxmLmNvbm4gPSB2YWx1ZQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIF9fYWRkcihzZWxmKToKICAgICAgICAgd2FybigiQWNjZXNzIHRvIF9fYWRkciBhdHRyaWJ1dGUgb24gU01UUENoYW5uZWwgaXMgZGVwcmVjYXRlZCwgIgotICAgICAgICAgICAgInVzZSAnYWRkcicgaW5zdGVhZCIsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgICAgICAgICAidXNlICdhZGRyJyBpbnN0ZWFkIiwgRGVwcmVjYXRpb25XYXJuaW5nLCAyKQogICAgICAgICByZXR1cm4gc2VsZi5hZGRyCiAgICAgQF9fYWRkci5zZXR0ZXIKICAgICBkZWYgX19hZGRyKHNlbGYsIHZhbHVlKToKICAgICAgICAgd2FybigiU2V0dGluZyBfX2FkZHIgYXR0cmlidXRlIG9uIFNNVFBDaGFubmVsIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICJzZXQgJ2FkZHInIGluc3RlYWQiLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLCAyKQorICAgICAgICAgICAgInNldCAnYWRkcicgaW5zdGVhZCIsIERlcHJlY2F0aW9uV2FybmluZywgMikKICAgICAgICAgc2VsZi5hZGRyID0gdmFsdWUKIAogICAgICMgT3ZlcnJpZGVzIGJhc2UgY2xhc3MgZm9yIGNvbnZlbmllbmNlCkBAIC0yNjgsMTQgKzI3OSwxNCBAQAogICAgIGRlZiBjb2xsZWN0X2luY29taW5nX2RhdGEoc2VsZiwgZGF0YSk6CiAgICAgICAgIGxpbWl0ID0gTm9uZQogICAgICAgICBpZiBzZWxmLnNtdHBfc3RhdGUgPT0gc2VsZi5DT01NQU5EOgotICAgICAgICAgICAgbGltaXQgPSBzZWxmLmNvbW1hbmRfc2l6ZV9saW1pdAorICAgICAgICAgICAgbGltaXQgPSBzZWxmLm1heF9jb21tYW5kX3NpemVfbGltaXQKICAgICAgICAgZWxpZiBzZWxmLnNtdHBfc3RhdGUgPT0gc2VsZi5EQVRBOgogICAgICAgICAgICAgbGltaXQgPSBzZWxmLmRhdGFfc2l6ZV9saW1pdAogICAgICAgICBpZiBsaW1pdCBhbmQgc2VsZi5udW1fYnl0ZXMgPiBsaW1pdDoKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBlbGlmIGxpbWl0OgogICAgICAgICAgICAgc2VsZi5udW1fYnl0ZXMgKz0gbGVuKGRhdGEpCi0gICAgICAgIHNlbGYucmVjZWl2ZWRfbGluZXMuYXBwZW5kKHN0cihkYXRhLCAidXRmOCIpKQorICAgICAgICBzZWxmLnJlY2VpdmVkX2xpbmVzLmFwcGVuZChzdHIoZGF0YSwgInV0Zi04IikpCiAKICAgICAjIEltcGxlbWVudGF0aW9uIG9mIGJhc2UgY2xhc3MgYWJzdHJhY3QgbWV0aG9kCiAgICAgZGVmIGZvdW5kX3Rlcm1pbmF0b3Ioc2VsZik6CkBAIC0yODMsMTEgKzI5NCw3IEBACiAgICAgICAgIHByaW50KCdEYXRhOicsIHJlcHIobGluZSksIGZpbGU9REVCVUdTVFJFQU0pCiAgICAgICAgIHNlbGYucmVjZWl2ZWRfbGluZXMgPSBbXQogICAgICAgICBpZiBzZWxmLnNtdHBfc3RhdGUgPT0gc2VsZi5DT01NQU5EOgotICAgICAgICAgICAgaWYgc2VsZi5udW1fYnl0ZXMgPiBzZWxmLmNvbW1hbmRfc2l6ZV9saW1pdDoKLSAgICAgICAgICAgICAgICBzZWxmLnB1c2goJzUwMCBFcnJvcjogbGluZSB0b28gbG9uZycpCi0gICAgICAgICAgICAgICAgc2VsZi5udW1fYnl0ZXMgPSAwCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBzZWxmLm51bV9ieXRlcyA9IDAKKyAgICAgICAgICAgIHN6LCBzZWxmLm51bV9ieXRlcyA9IHNlbGYubnVtX2J5dGVzLCAwCiAgICAgICAgICAgICBpZiBub3QgbGluZToKICAgICAgICAgICAgICAgICBzZWxmLnB1c2goJzUwMCBFcnJvcjogYmFkIHN5bnRheCcpCiAgICAgICAgICAgICAgICAgcmV0dXJuCkBAIC0yOTksOSArMzA2LDE0IEBACiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGNvbW1hbmQgPSBsaW5lWzppXS51cHBlcigpCiAgICAgICAgICAgICAgICAgYXJnID0gbGluZVtpKzE6XS5zdHJpcCgpCisgICAgICAgICAgICBtYXhfc3ogPSAoc2VsZi5jb21tYW5kX3NpemVfbGltaXRzW2NvbW1hbmRdCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmV4dGVuZGVkX3NtdHAgZWxzZSBzZWxmLmNvbW1hbmRfc2l6ZV9saW1pdCkKKyAgICAgICAgICAgIGlmIHN6ID4gbWF4X3N6OgorICAgICAgICAgICAgICAgIHNlbGYucHVzaCgnNTAwIEVycm9yOiBsaW5lIHRvbyBsb25nJykKKyAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIoc2VsZiwgJ3NtdHBfJyArIGNvbW1hbmQsIE5vbmUpCiAgICAgICAgICAgICBpZiBub3QgbWV0aG9kOgotICAgICAgICAgICAgICAgIHNlbGYucHVzaCgnNTAyIEVycm9yOiBjb21tYW5kICIlcyIgbm90IGltcGxlbWVudGVkJyAlIGNvbW1hbmQpCisgICAgICAgICAgICAgICAgc2VsZi5wdXNoKCc1MDAgRXJyb3I6IGNvbW1hbmQgIiVzIiBub3QgcmVjb2duaXplZCcgJSBjb21tYW5kKQogICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgbWV0aG9kKGFyZykKICAgICAgICAgICAgIHJldHVybgpAQCAtMzEwLDEyICszMjIsMTIgQEAKICAgICAgICAgICAgICAgICBzZWxmLnB1c2goJzQ1MSBJbnRlcm5hbCBjb25mdXNpb24nKQogICAgICAgICAgICAgICAgIHNlbGYubnVtX2J5dGVzID0gMAogICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgaWYgc2VsZi5udW1fYnl0ZXMgPiBzZWxmLmRhdGFfc2l6ZV9saW1pdDoKKyAgICAgICAgICAgIGlmIHNlbGYuZGF0YV9zaXplX2xpbWl0IGFuZCBzZWxmLm51bV9ieXRlcyA+IHNlbGYuZGF0YV9zaXplX2xpbWl0OgogICAgICAgICAgICAgICAgIHNlbGYucHVzaCgnNTUyIEVycm9yOiBUb28gbXVjaCBtYWlsIGRhdGEnKQogICAgICAgICAgICAgICAgIHNlbGYubnVtX2J5dGVzID0gMAogICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgIyBSZW1vdmUgZXh0cmFuZW91cyBjYXJyaWFnZSByZXR1cm5zIGFuZCBkZS10cmFuc3BhcmVuY3kgYWNjb3JkaW5nCi0gICAgICAgICAgICAjIHRvIFJGQyA4MjEsIFNlY3Rpb24gNC41LjIuCisgICAgICAgICAgICAjIHRvIFJGQyA1MzIxLCBTZWN0aW9uIDQuNS4yLgogICAgICAgICAgICAgZGF0YSA9IFtdCiAgICAgICAgICAgICBmb3IgdGV4dCBpbiBsaW5lLnNwbGl0KCdcclxuJyk6CiAgICAgICAgICAgICAgICAgaWYgdGV4dCBhbmQgdGV4dFswXSA9PSAnLic6CkBAIC0zMzMsNyArMzQ1LDcgQEAKICAgICAgICAgICAgIHNlbGYubnVtX2J5dGVzID0gMAogICAgICAgICAgICAgc2VsZi5zZXRfdGVybWluYXRvcihiJ1xyXG4nKQogICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgICAgICBzZWxmLnB1c2goJzI1MCBPaycpCisgICAgICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTAgT0snKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBzZWxmLnB1c2goc3RhdHVzKQogCkBAIC0zNDYsNTggKzM1OCwxODggQEAKICAgICAgICAgICAgIHNlbGYucHVzaCgnNTAzIER1cGxpY2F0ZSBIRUxPL0VITE8nKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5zZWVuX2dyZWV0aW5nID0gYXJnCisgICAgICAgICAgICBzZWxmLmV4dGVuZGVkX3NtdHAgPSBGYWxzZQogICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTAgJXMnICUgc2VsZi5mcWRuKQogCisgICAgZGVmIHNtdHBfRUhMTyhzZWxmLCBhcmcpOgorICAgICAgICBpZiBub3QgYXJnOgorICAgICAgICAgICAgc2VsZi5wdXNoKCc1MDEgU3ludGF4OiBFSExPIGhvc3RuYW1lJykKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBzZWxmLnNlZW5fZ3JlZXRpbmc6CisgICAgICAgICAgICBzZWxmLnB1c2goJzUwMyBEdXBsaWNhdGUgSEVMTy9FSExPJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc2Vlbl9ncmVldGluZyA9IGFyZworICAgICAgICAgICAgc2VsZi5leHRlbmRlZF9zbXRwID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTAtJXMnICUgc2VsZi5mcWRuKQorICAgICAgICAgICAgaWYgc2VsZi5kYXRhX3NpemVfbGltaXQ6CisgICAgICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTAtU0laRSAlcycgJSBzZWxmLmRhdGFfc2l6ZV9saW1pdCkKKyAgICAgICAgICAgIHNlbGYucHVzaCgnMjUwIEhFTFAnKQorCiAgICAgZGVmIHNtdHBfTk9PUChzZWxmLCBhcmcpOgogICAgICAgICBpZiBhcmc6CiAgICAgICAgICAgICBzZWxmLnB1c2goJzUwMSBTeW50YXg6IE5PT1AnKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTAgT2snKQorICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTAgT0snKQogCiAgICAgZGVmIHNtdHBfUVVJVChzZWxmLCBhcmcpOgogICAgICAgICAjIGFyZ3MgaXMgaWdub3JlZAogICAgICAgICBzZWxmLnB1c2goJzIyMSBCeWUnKQogICAgICAgICBzZWxmLmNsb3NlX3doZW5fZG9uZSgpCiAKLSAgICAjIGZhY3RvcmVkCi0gICAgZGVmIF9fZ2V0YWRkcihzZWxmLCBrZXl3b3JkLCBhcmcpOgotICAgICAgICBhZGRyZXNzID0gTm9uZQorICAgIGRlZiBfc3RyaXBfY29tbWFuZF9rZXl3b3JkKHNlbGYsIGtleXdvcmQsIGFyZyk6CiAgICAgICAgIGtleWxlbiA9IGxlbihrZXl3b3JkKQogICAgICAgICBpZiBhcmdbOmtleWxlbl0udXBwZXIoKSA9PSBrZXl3b3JkOgotICAgICAgICAgICAgYWRkcmVzcyA9IGFyZ1trZXlsZW46XS5zdHJpcCgpCi0gICAgICAgICAgICBpZiBub3QgYWRkcmVzczoKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBlbGlmIGFkZHJlc3NbMF0gPT0gJzwnIGFuZCBhZGRyZXNzWy0xXSA9PSAnPicgYW5kIGFkZHJlc3MgIT0gJzw+JzoKLSAgICAgICAgICAgICAgICAjIEFkZHJlc3NlcyBjYW4gYmUgaW4gdGhlIGZvcm0gPHBlcnNvbkBkb20uY29tPiBidXQgd2F0Y2ggb3V0Ci0gICAgICAgICAgICAgICAgIyBmb3IgbnVsbCBhZGRyZXNzLCBlLmcuIDw+Ci0gICAgICAgICAgICAgICAgYWRkcmVzcyA9IGFkZHJlc3NbMTotMV0KLSAgICAgICAgcmV0dXJuIGFkZHJlc3MKKyAgICAgICAgICAgIHJldHVybiBhcmdba2V5bGVuOl0uc3RyaXAoKQorICAgICAgICByZXR1cm4gJycKKworICAgIGRlZiBfZ2V0YWRkcihzZWxmLCBhcmcpOgorICAgICAgICBpZiBub3QgYXJnOgorICAgICAgICAgICAgcmV0dXJuICcnLCAnJworICAgICAgICBpZiBhcmcubHN0cmlwKCkuc3RhcnRzd2l0aCgnPCcpOgorICAgICAgICAgICAgYWRkcmVzcywgcmVzdCA9IGdldF9hbmdsZV9hZGRyKGFyZykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFkZHJlc3MsIHJlc3QgPSBnZXRfYWRkcl9zcGVjKGFyZykKKyAgICAgICAgaWYgbm90IGFkZHJlc3M6CisgICAgICAgICAgICByZXR1cm4gYWRkcmVzcywgcmVzdAorICAgICAgICByZXR1cm4gYWRkcmVzcy5hZGRyX3NwZWMsIHJlc3QKKworICAgIGRlZiBfZ2V0cGFyYW1zKHNlbGYsIHBhcmFtcyk6CisgICAgICAgICMgUmV0dXJuIGFueSBwYXJhbWV0ZXJzIHRoYXQgYXBwZWFyIHRvIGJlIHN5bnRhY3RpY2FsbHkgdmFsaWQgYWNjb3JkaW5nCisgICAgICAgICMgdG8gUkZDIDE4NjksIGlnbm9yZSBhbGwgb3RoZXJzLiAgKFBvc3RlbCBydWxlOiBhY2NlcHQgd2hhdCB3ZSBjYW4uKQorICAgICAgICBwYXJhbXMgPSBbcGFyYW0uc3BsaXQoJz0nLCAxKSBmb3IgcGFyYW0gaW4gcGFyYW1zLnNwbGl0KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJz0nIGluIHBhcmFtXQorICAgICAgICByZXR1cm4ge2s6IHYgZm9yIGssIHYgaW4gcGFyYW1zIGlmIGsuaXNhbG51bSgpfQorCisgICAgZGVmIHNtdHBfSEVMUChzZWxmLCBhcmcpOgorICAgICAgICBpZiBhcmc6CisgICAgICAgICAgICBleHRlbmRlZCA9ICcgW1NQIDxtYWlsIHBhcmFtZXRlcnNdJworICAgICAgICAgICAgbGNfYXJnID0gYXJnLnVwcGVyKCkKKyAgICAgICAgICAgIGlmIGxjX2FyZyA9PSAnRUhMTyc6CisgICAgICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTAgU3ludGF4OiBFSExPIGhvc3RuYW1lJykKKyAgICAgICAgICAgIGVsaWYgbGNfYXJnID09ICdIRUxPJzoKKyAgICAgICAgICAgICAgICBzZWxmLnB1c2goJzI1MCBTeW50YXg6IEhFTE8gaG9zdG5hbWUnKQorICAgICAgICAgICAgZWxpZiBsY19hcmcgPT0gJ01BSUwnOgorICAgICAgICAgICAgICAgIG1zZyA9ICcyNTAgU3ludGF4OiBNQUlMIEZST006IDxhZGRyZXNzPicKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmV4dGVuZGVkX3NtdHA6CisgICAgICAgICAgICAgICAgICAgIG1zZyArPSBleHRlbmRlZAorICAgICAgICAgICAgICAgIHNlbGYucHVzaChtc2cpCisgICAgICAgICAgICBlbGlmIGxjX2FyZyA9PSAnUkNQVCc6CisgICAgICAgICAgICAgICAgbXNnID0gJzI1MCBTeW50YXg6IFJDUFQgVE86IDxhZGRyZXNzPicKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmV4dGVuZGVkX3NtdHA6CisgICAgICAgICAgICAgICAgICAgIG1zZyArPSBleHRlbmRlZAorICAgICAgICAgICAgICAgIHNlbGYucHVzaChtc2cpCisgICAgICAgICAgICBlbGlmIGxjX2FyZyA9PSAnREFUQSc6CisgICAgICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTAgU3ludGF4OiBEQVRBJykKKyAgICAgICAgICAgIGVsaWYgbGNfYXJnID09ICdSU0VUJzoKKyAgICAgICAgICAgICAgICBzZWxmLnB1c2goJzI1MCBTeW50YXg6IFJTRVQnKQorICAgICAgICAgICAgZWxpZiBsY19hcmcgPT0gJ05PT1AnOgorICAgICAgICAgICAgICAgIHNlbGYucHVzaCgnMjUwIFN5bnRheDogTk9PUCcpCisgICAgICAgICAgICBlbGlmIGxjX2FyZyA9PSAnUVVJVCc6CisgICAgICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTAgU3ludGF4OiBRVUlUJykKKyAgICAgICAgICAgIGVsaWYgbGNfYXJnID09ICdWUkZZJzoKKyAgICAgICAgICAgICAgICBzZWxmLnB1c2goJzI1MCBTeW50YXg6IFZSRlkgPGFkZHJlc3M+JykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5wdXNoKCc1MDEgU3VwcG9ydGVkIGNvbW1hbmRzOiBFSExPIEhFTE8gTUFJTCBSQ1BUICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ0RBVEEgUlNFVCBOT09QIFFVSVQgVlJGWScpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnB1c2goJzI1MCBTdXBwb3J0ZWQgY29tbWFuZHM6IEVITE8gSEVMTyBNQUlMIFJDUFQgREFUQSAnCisgICAgICAgICAgICAgICAgICAgICAgJ1JTRVQgTk9PUCBRVUlUIFZSRlknKQorCisgICAgZGVmIHNtdHBfVlJGWShzZWxmLCBhcmcpOgorICAgICAgICBpZiBhcmc6CisgICAgICAgICAgICBhZGRyZXNzLCBwYXJhbXMgPSBzZWxmLl9nZXRhZGRyKGFyZykKKyAgICAgICAgICAgIGlmIGFkZHJlc3M6CisgICAgICAgICAgICAgICAgc2VsZi5wdXNoKCcyNTIgQ2Fubm90IFZSRlkgdXNlciwgYnV0IHdpbGwgYWNjZXB0IG1lc3NhZ2UgJworICAgICAgICAgICAgICAgICAgICAgICAgICAnYW5kIGF0dGVtcHQgZGVsaXZlcnknKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnB1c2goJzUwMiBDb3VsZCBub3QgVlJGWSAlcycgJSBhcmcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnB1c2goJzUwMSBTeW50YXg6IFZSRlkgPGFkZHJlc3M+JykKIAogICAgIGRlZiBzbXRwX01BSUwoc2VsZiwgYXJnKToKKyAgICAgICAgaWYgbm90IHNlbGYuc2Vlbl9ncmVldGluZzoKKyAgICAgICAgICAgIHNlbGYucHVzaCgnNTAzIEVycm9yOiBzZW5kIEhFTE8gZmlyc3QnKTsKKyAgICAgICAgICAgIHJldHVybgogICAgICAgICBwcmludCgnPT09PiBNQUlMJywgYXJnLCBmaWxlPURFQlVHU1RSRUFNKQotICAgICAgICBhZGRyZXNzID0gc2VsZi5fX2dldGFkZHIoJ0ZST006JywgYXJnKSBpZiBhcmcgZWxzZSBOb25lCisgICAgICAgIHN5bnRheGVyciA9ICc1MDEgU3ludGF4OiBNQUlMIEZST006IDxhZGRyZXNzPicKKyAgICAgICAgaWYgc2VsZi5leHRlbmRlZF9zbXRwOgorICAgICAgICAgICAgc3ludGF4ZXJyICs9ICcgW1NQIDxtYWlsLXBhcmFtZXRlcnM+XScKKyAgICAgICAgaWYgYXJnIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLnB1c2goc3ludGF4ZXJyKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGFyZyA9IHNlbGYuX3N0cmlwX2NvbW1hbmRfa2V5d29yZCgnRlJPTTonLCBhcmcpCisgICAgICAgIGFkZHJlc3MsIHBhcmFtcyA9IHNlbGYuX2dldGFkZHIoYXJnKQogICAgICAgICBpZiBub3QgYWRkcmVzczoKLSAgICAgICAgICAgIHNlbGYucHVzaCgnNTAxIFN5bnRheDogTUFJTCBGUk9NOjxhZGRyZXNzPicpCisgICAgICAgICAgICBzZWxmLnB1c2goc3ludGF4ZXJyKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIG5vdCBzZWxmLmV4dGVuZGVkX3NtdHAgYW5kIHBhcmFtczoKKyAgICAgICAgICAgIHNlbGYucHVzaChzeW50YXhlcnIpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgbm90IGFkZHJlc3M6CisgICAgICAgICAgICBzZWxmLnB1c2goc3ludGF4ZXJyKQogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIGlmIHNlbGYubWFpbGZyb206CiAgICAgICAgICAgICBzZWxmLnB1c2goJzUwMyBFcnJvcjogbmVzdGVkIE1BSUwgY29tbWFuZCcpCiAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcGFyYW1zID0gc2VsZi5fZ2V0cGFyYW1zKHBhcmFtcy51cHBlcigpKQorICAgICAgICBpZiBwYXJhbXMgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYucHVzaChzeW50YXhlcnIpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgc2l6ZSA9IHBhcmFtcy5wb3AoJ1NJWkUnLCBOb25lKQorICAgICAgICBpZiBzaXplOgorICAgICAgICAgICAgaWYgbm90IHNpemUuaXNkaWdpdCgpOgorICAgICAgICAgICAgICAgIHNlbGYucHVzaChzeW50YXhlcnIpCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBlbGlmIHNlbGYuZGF0YV9zaXplX2xpbWl0IGFuZCBpbnQoc2l6ZSkgPiBzZWxmLmRhdGFfc2l6ZV9saW1pdDoKKyAgICAgICAgICAgICAgICBzZWxmLnB1c2goJzU1MiBFcnJvcjogbWVzc2FnZSBzaXplIGV4Y2VlZHMgZml4ZWQgbWF4aW11bSBtZXNzYWdlIHNpemUnKQorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBsZW4ocGFyYW1zLmtleXMoKSkgPiAwOgorICAgICAgICAgICAgc2VsZi5wdXNoKCc1NTUgTUFJTCBGUk9NIHBhcmFtZXRlcnMgbm90IHJlY29nbml6ZWQgb3Igbm90IGltcGxlbWVudGVkJykKKyAgICAgICAgICAgIHJldHVybgogICAgICAgICBzZWxmLm1haWxmcm9tID0gYWRkcmVzcwogICAgICAgICBwcmludCgnc2VuZGVyOicsIHNlbGYubWFpbGZyb20sIGZpbGU9REVCVUdTVFJFQU0pCi0gICAgICAgIHNlbGYucHVzaCgnMjUwIE9rJykKKyAgICAgICAgc2VsZi5wdXNoKCcyNTAgT0snKQogCiAgICAgZGVmIHNtdHBfUkNQVChzZWxmLCBhcmcpOgorICAgICAgICBpZiBub3Qgc2VsZi5zZWVuX2dyZWV0aW5nOgorICAgICAgICAgICAgc2VsZi5wdXNoKCc1MDMgRXJyb3I6IHNlbmQgSEVMTyBmaXJzdCcpOworICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHByaW50KCc9PT0+IFJDUFQnLCBhcmcsIGZpbGU9REVCVUdTVFJFQU0pCiAgICAgICAgIGlmIG5vdCBzZWxmLm1haWxmcm9tOgogICAgICAgICAgICAgc2VsZi5wdXNoKCc1MDMgRXJyb3I6IG5lZWQgTUFJTCBjb21tYW5kJykKICAgICAgICAgICAgIHJldHVybgotICAgICAgICBhZGRyZXNzID0gc2VsZi5fX2dldGFkZHIoJ1RPOicsIGFyZykgaWYgYXJnIGVsc2UgTm9uZQorICAgICAgICBzeW50YXhlcnIgPSAnNTAxIFN5bnRheDogUkNQVCBUTzogPGFkZHJlc3M+JworICAgICAgICBpZiBzZWxmLmV4dGVuZGVkX3NtdHA6CisgICAgICAgICAgICBzeW50YXhlcnIgKz0gJyBbU1AgPG1haWwtcGFyYW1ldGVycz5dJworICAgICAgICBpZiBhcmcgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYucHVzaChzeW50YXhlcnIpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgYXJnID0gc2VsZi5fc3RyaXBfY29tbWFuZF9rZXl3b3JkKCdUTzonLCBhcmcpCisgICAgICAgIGFkZHJlc3MsIHBhcmFtcyA9IHNlbGYuX2dldGFkZHIoYXJnKQorICAgICAgICBpZiBub3QgYWRkcmVzczoKKyAgICAgICAgICAgIHNlbGYucHVzaChzeW50YXhlcnIpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgcGFyYW1zOgorICAgICAgICAgICAgaWYgc2VsZi5leHRlbmRlZF9zbXRwOgorICAgICAgICAgICAgICAgIHBhcmFtcyA9IHNlbGYuX2dldHBhcmFtcyhwYXJhbXMudXBwZXIoKSkKKyAgICAgICAgICAgICAgICBpZiBwYXJhbXMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wdXNoKHN5bnRheGVycikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYucHVzaChzeW50YXhlcnIpCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIG5vdCBhZGRyZXNzOgorICAgICAgICAgICAgc2VsZi5wdXNoKHN5bnRheGVycikKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBwYXJhbXMgYW5kIGxlbihwYXJhbXMua2V5cygpKSA+IDA6CisgICAgICAgICAgICBzZWxmLnB1c2goJzU1NSBSQ1BUIFRPIHBhcmFtZXRlcnMgbm90IHJlY29nbml6ZWQgb3Igbm90IGltcGxlbWVudGVkJykKKyAgICAgICAgICAgIHJldHVybgogICAgICAgICBpZiBub3QgYWRkcmVzczoKICAgICAgICAgICAgIHNlbGYucHVzaCgnNTAxIFN5bnRheDogUkNQVCBUTzogPGFkZHJlc3M+JykKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBzZWxmLnJjcHR0b3MuYXBwZW5kKGFkZHJlc3MpCiAgICAgICAgIHByaW50KCdyZWNpcHM6Jywgc2VsZi5yY3B0dG9zLCBmaWxlPURFQlVHU1RSRUFNKQotICAgICAgICBzZWxmLnB1c2goJzI1MCBPaycpCisgICAgICAgIHNlbGYucHVzaCgnMjUwIE9LJykKIAogICAgIGRlZiBzbXRwX1JTRVQoc2VsZiwgYXJnKToKICAgICAgICAgaWYgYXJnOgpAQCAtNDA4LDkgKzU1MCwxMiBAQAogICAgICAgICBzZWxmLnJjcHR0b3MgPSBbXQogICAgICAgICBzZWxmLnJlY2VpdmVkX2RhdGEgPSAnJwogICAgICAgICBzZWxmLnNtdHBfc3RhdGUgPSBzZWxmLkNPTU1BTkQKLSAgICAgICAgc2VsZi5wdXNoKCcyNTAgT2snKQorICAgICAgICBzZWxmLnB1c2goJzI1MCBPSycpCiAKICAgICBkZWYgc210cF9EQVRBKHNlbGYsIGFyZyk6CisgICAgICAgIGlmIG5vdCBzZWxmLnNlZW5fZ3JlZXRpbmc6CisgICAgICAgICAgICBzZWxmLnB1c2goJzUwMyBFcnJvcjogc2VuZCBIRUxPIGZpcnN0Jyk7CisgICAgICAgICAgICByZXR1cm4KICAgICAgICAgaWYgbm90IHNlbGYucmNwdHRvczoKICAgICAgICAgICAgIHNlbGYucHVzaCgnNTAzIEVycm9yOiBuZWVkIFJDUFQgY29tbWFuZCcpCiAgICAgICAgICAgICByZXR1cm4KQEAgLTQyMSwxNSArNTY2LDIwIEBACiAgICAgICAgIHNlbGYuc2V0X3Rlcm1pbmF0b3IoYidcclxuLlxyXG4nKQogICAgICAgICBzZWxmLnB1c2goJzM1NCBFbmQgZGF0YSB3aXRoIDxDUj48TEY+LjxDUj48TEY+JykKIAorICAgICMgQ29tbWFuZHMgdGhhdCBoYXZlIG5vdCBiZWVuIGltcGxlbWVudGVkCisgICAgZGVmIHNtdHBfRVhQTihzZWxmLCBhcmcpOgorICAgICAgICBzZWxmLnB1c2goJzUwMiBFWFBOIG5vdCBpbXBsZW1lbnRlZCcpCiAKLQwKKwogY2xhc3MgU01UUFNlcnZlcihhc3luY29yZS5kaXNwYXRjaGVyKToKICAgICAjIFNNVFBDaGFubmVsIGNsYXNzIHRvIHVzZSBmb3IgbWFuYWdpbmcgY2xpZW50IGNvbm5lY3Rpb25zCiAgICAgY2hhbm5lbF9jbGFzcyA9IFNNVFBDaGFubmVsCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jYWxhZGRyLCByZW1vdGVhZGRyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jYWxhZGRyLCByZW1vdGVhZGRyLAorICAgICAgICAgICAgICAgICBkYXRhX3NpemVfbGltaXQ9REFUQV9TSVpFX0RFRkFVTFQpOgogICAgICAgICBzZWxmLl9sb2NhbGFkZHIgPSBsb2NhbGFkZHIKICAgICAgICAgc2VsZi5fcmVtb3RlYWRkciA9IHJlbW90ZWFkZHIKKyAgICAgICAgc2VsZi5kYXRhX3NpemVfbGltaXQgPSBkYXRhX3NpemVfbGltaXQKICAgICAgICAgYXN5bmNvcmUuZGlzcGF0Y2hlci5fX2luaXRfXyhzZWxmKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLmNyZWF0ZV9zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKQEAgLTQ0Nyw3ICs1OTcsNyBAQAogCiAgICAgZGVmIGhhbmRsZV9hY2NlcHRlZChzZWxmLCBjb25uLCBhZGRyKToKICAgICAgICAgcHJpbnQoJ0luY29taW5nIGNvbm5lY3Rpb24gZnJvbSAlcycgJSByZXByKGFkZHIpLCBmaWxlPURFQlVHU1RSRUFNKQotICAgICAgICBjaGFubmVsID0gc2VsZi5jaGFubmVsX2NsYXNzKHNlbGYsIGNvbm4sIGFkZHIpCisgICAgICAgIGNoYW5uZWwgPSBzZWxmLmNoYW5uZWxfY2xhc3Moc2VsZiwgY29ubiwgYWRkciwgc2VsZi5kYXRhX3NpemVfbGltaXQpCiAKICAgICAjIEFQSSBmb3IgImRvaW5nIHNvbWV0aGluZyB1c2VmdWwgd2l0aCB0aGUgbWVzc2FnZSIKICAgICBkZWYgcHJvY2Vzc19tZXNzYWdlKHNlbGYsIHBlZXIsIG1haWxmcm9tLCByY3B0dG9zLCBkYXRhKToKQEAgLTQ3NSw3ICs2MjUsNiBAQAogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKIAotDAogY2xhc3MgRGVidWdnaW5nU2VydmVyKFNNVFBTZXJ2ZXIpOgogICAgICMgRG8gc29tZXRoaW5nIHdpdGggdGhlIGdhdGhlcmVkIG1lc3NhZ2UKICAgICBkZWYgcHJvY2Vzc19tZXNzYWdlKHNlbGYsIHBlZXIsIG1haWxmcm9tLCByY3B0dG9zLCBkYXRhKToKQEAgLTQ5MSw3ICs2NDAsNiBAQAogICAgICAgICBwcmludCgnLS0tLS0tLS0tLS0tIEVORCBNRVNTQUdFIC0tLS0tLS0tLS0tLScpCiAKIAotDAogY2xhc3MgUHVyZVByb3h5KFNNVFBTZXJ2ZXIpOgogICAgIGRlZiBwcm9jZXNzX21lc3NhZ2Uoc2VsZiwgcGVlciwgbWFpbGZyb20sIHJjcHR0b3MsIGRhdGEpOgogICAgICAgICBsaW5lcyA9IGRhdGEuc3BsaXQoJ1xuJykKQEAgLTUzMiw3ICs2ODAsNiBAQAogICAgICAgICByZXR1cm4gcmVmdXNlZAogCiAKLQwKIGNsYXNzIE1haWxtYW5Qcm94eShQdXJlUHJveHkpOgogICAgIGRlZiBwcm9jZXNzX21lc3NhZ2Uoc2VsZiwgcGVlciwgbWFpbGZyb20sIHJjcHR0b3MsIGRhdGEpOgogICAgICAgICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwpAQCAtNjExLDE5ICs3NTgsMTggQEAKICAgICAgICAgICAgICAgICBtc2cuRW5xdWV1ZShtbGlzdCwgdG9yZXF1ZXN0PTEpCiAKIAotDAogY2xhc3MgT3B0aW9uczoKICAgICBzZXR1aWQgPSAxCiAgICAgY2xhc3NuYW1lID0gJ1B1cmVQcm94eScKKyAgICBzaXplX2xpbWl0ID0gTm9uZQogCiAKLQwKIGRlZiBwYXJzZWFyZ3MoKToKICAgICBnbG9iYWwgREVCVUdTVFJFQU0KICAgICB0cnk6CiAgICAgICAgIG9wdHMsIGFyZ3MgPSBnZXRvcHQuZ2V0b3B0KAotICAgICAgICAgICAgc3lzLmFyZ3ZbMTpdLCAnblZoYzpkJywKLSAgICAgICAgICAgIFsnY2xhc3M9JywgJ25vc2V0dWlkJywgJ3ZlcnNpb24nLCAnaGVscCcsICdkZWJ1ZyddKQorICAgICAgICAgICAgc3lzLmFyZ3ZbMTpdLCAnblZoYzpzOmQnLAorICAgICAgICAgICAgWydjbGFzcz0nLCAnbm9zZXR1aWQnLCAndmVyc2lvbicsICdoZWxwJywgJ3NpemU9JywgJ2RlYnVnJ10pCiAgICAgZXhjZXB0IGdldG9wdC5lcnJvciBhcyBlOgogICAgICAgICB1c2FnZSgxLCBlKQogCkBAIC02NDAsNiArNzg2LDEzIEBACiAgICAgICAgICAgICBvcHRpb25zLmNsYXNzbmFtZSA9IGFyZwogICAgICAgICBlbGlmIG9wdCBpbiAoJy1kJywgJy0tZGVidWcnKToKICAgICAgICAgICAgIERFQlVHU1RSRUFNID0gc3lzLnN0ZGVycgorICAgICAgICBlbGlmIG9wdCBpbiAoJy1zJywgJy0tc2l6ZScpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGludF9zaXplID0gaW50KGFyZykKKyAgICAgICAgICAgICAgICBvcHRpb25zLnNpemVfbGltaXQgPSBpbnRfc2l6ZQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHByaW50KCdJbnZhbGlkIHNpemU6ICcgKyBhcmcsIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQogCiAgICAgIyBwYXJzZSB0aGUgcmVzdCBvZiB0aGUgYXJndW1lbnRzCiAgICAgaWYgbGVuKGFyZ3MpIDwgMToKQEAgLTY3NCw3ICs4MjcsNiBAQAogICAgIHJldHVybiBvcHRpb25zCiAKIAotDAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBvcHRpb25zID0gcGFyc2VhcmdzKCkKICAgICAjIEJlY29tZSBub2JvZHkKQEAgLTY4Nyw3ICs4MzksOCBAQAogICAgICAgICBpbXBvcnQgX19tYWluX18gYXMgbW9kCiAgICAgY2xhc3NfID0gZ2V0YXR0cihtb2QsIGNsYXNzbmFtZSkKICAgICBwcm94eSA9IGNsYXNzXygob3B0aW9ucy5sb2NhbGhvc3QsIG9wdGlvbnMubG9jYWxwb3J0KSwKLSAgICAgICAgICAgICAgICAgICAob3B0aW9ucy5yZW1vdGVob3N0LCBvcHRpb25zLnJlbW90ZXBvcnQpKQorICAgICAgICAgICAgICAgICAgIChvcHRpb25zLnJlbW90ZWhvc3QsIG9wdGlvbnMucmVtb3RlcG9ydCksCisgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5zaXplX2xpbWl0KQogICAgIGlmIG9wdGlvbnMuc2V0dWlkOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpbXBvcnQgcHdkCmRpZmYgLS1naXQgYS9MaWIvc210cGxpYi5weSBiL0xpYi9zbXRwbGliLnB5CmluZGV4IGZiZWY5NmUuLmQzN2IwZTIgMTAwNjQ0Ci0tLSBhL0xpYi9zbXRwbGliLnB5CisrKyBiL0xpYi9zbXRwbGliLnB5CkBAIC0xMzMsMjQgKzEzMywxOCBAQAogICAgIGNvbWJpbmF0aW9uIHByb3ZpZGVkLgogICAgICIiIgogCi1kZWYgcXVvdGVhZGRyKGFkZHIpOgorZGVmIHF1b3RlYWRkcihhZGRyc3RyaW5nKToKICAgICAiIiJRdW90ZSBhIHN1YnNldCBvZiB0aGUgZW1haWwgYWRkcmVzc2VzIGRlZmluZWQgYnkgUkZDIDgyMS4KIAogICAgIFNob3VsZCBiZSBhYmxlIHRvIGhhbmRsZSBhbnl0aGluZyBlbWFpbC51dGlscy5wYXJzZWFkZHIgY2FuIGhhbmRsZS4KICAgICAiIiIKLSAgICBtID0gKE5vbmUsIE5vbmUpCi0gICAgdHJ5OgotICAgICAgICBtID0gZW1haWwudXRpbHMucGFyc2VhZGRyKGFkZHIpWzFdCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICBwYXNzCi0gICAgaWYgbSA9PSAoTm9uZSwgTm9uZSk6ICAjIEluZGljYXRlcyBwYXJzZSBmYWlsdXJlIG9yIEF0dHJpYnV0ZUVycm9yCi0gICAgICAgICMgc29tZXRoaW5nIHdlaXJkIGhlcmUuLiBwdW50IC1kZG0KLSAgICAgICAgcmV0dXJuICI8JXM+IiAlIGFkZHIKLSAgICBlbGlmIG0gaXMgTm9uZToKLSAgICAgICAgIyB0aGUgc2VuZGVyIHdhbnRzIGFuIGVtcHR5IHJldHVybiBhZGRyZXNzCi0gICAgICAgIHJldHVybiAiPD4iCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuICI8JXM+IiAlIG0KKyAgICBkaXNwbGF5bmFtZSwgYWRkciA9IGVtYWlsLnV0aWxzLnBhcnNlYWRkcihhZGRyc3RyaW5nKQorICAgIGlmIChkaXNwbGF5bmFtZSwgYWRkcikgPT0gKCcnLCAnJyk6CisgICAgICAgICMgcGFyc2VhZGRyIGNvdWxkbid0IHBhcnNlIGl0LCB1c2UgaXQgYXMgaXMgYW5kIGhvcGUgZm9yIHRoZSBiZXN0LgorICAgICAgICBpZiBhZGRyc3RyaW5nLnN0cmlwKCkuc3RhcnRzd2l0aCgnPCcpOgorICAgICAgICAgICAgcmV0dXJuIGFkZHJzdHJpbmcKKyAgICAgICAgcmV0dXJuICI8JXM+IiAlIGFkZHJzdHJpbmcKKyAgICByZXR1cm4gIjwlcz4iICUgYWRkcgogCiBkZWYgX2FkZHJfb25seShhZGRyc3RyaW5nKToKICAgICBkaXNwbGF5bmFtZSwgYWRkciA9IGVtYWlsLnV0aWxzLnBhcnNlYWRkcihhZGRyc3RyaW5nKQpAQCAtMTgwLDI3ICsxNzQsNiBAQAogZXhjZXB0IEltcG9ydEVycm9yOgogICAgIF9oYXZlX3NzbCA9IEZhbHNlCiBlbHNlOgotICAgIGNsYXNzIFNTTEZha2VGaWxlOgotICAgICAgICAiIiJBIGZha2UgZmlsZSBsaWtlIG9iamVjdCB0aGF0IHJlYWxseSB3cmFwcyBhIFNTTE9iamVjdC4KLQotICAgICAgICBJdCBvbmx5IHN1cHBvcnRzIHdoYXQgaXMgbmVlZGVkIGluIHNtdHBsaWIuCi0gICAgICAgICIiIgotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgc3Nsb2JqKToKLSAgICAgICAgICAgIHNlbGYuc3Nsb2JqID0gc3Nsb2JqCi0KLSAgICAgICAgZGVmIHJlYWRsaW5lKHNlbGYpOgotICAgICAgICAgICAgc3RyID0gYiIiCi0gICAgICAgICAgICBjaHIgPSBOb25lCi0gICAgICAgICAgICB3aGlsZSBjaHIgIT0gYiJcbiI6Ci0gICAgICAgICAgICAgICAgY2hyID0gc2VsZi5zc2xvYmoucmVhZCgxKQotICAgICAgICAgICAgICAgIGlmIG5vdCBjaHI6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgc3RyICs9IGNocgotICAgICAgICAgICAgcmV0dXJuIHN0cgotCi0gICAgICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAgICAgIHBhc3MKLQogICAgIF9oYXZlX3NzbCA9IFRydWUKIAogCkBAIC0yNDIsNyArMjE1LDggQEAKICAgICBkZWZhdWx0X3BvcnQgPSBTTVRQX1BPUlQKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0PScnLCBwb3J0PTAsIGxvY2FsX2hvc3RuYW1lPU5vbmUsCi0gICAgICAgICAgICAgICAgIHRpbWVvdXQ9c29ja2V0Ll9HTE9CQUxfREVGQVVMVF9USU1FT1VUKToKKyAgICAgICAgICAgICAgICAgdGltZW91dD1zb2NrZXQuX0dMT0JBTF9ERUZBVUxUX1RJTUVPVVQsCisgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzPU5vbmUpOgogICAgICAgICAiIiJJbml0aWFsaXplIGEgbmV3IGluc3RhbmNlLgogCiAgICAgICAgIElmIHNwZWNpZmllZCwgYGhvc3QnIGlzIHRoZSBuYW1lIG9mIHRoZSByZW1vdGUgaG9zdCB0byB3aGljaCB0bwpAQCAtMjUwLDExICsyMjQsMTYgQEAKICAgICAgICAgQnkgZGVmYXVsdCwgc210cGxpYi5TTVRQX1BPUlQgaXMgdXNlZC4gIEFuIFNNVFBDb25uZWN0RXJyb3IgaXMgcmFpc2VkCiAgICAgICAgIGlmIHRoZSBzcGVjaWZpZWQgYGhvc3QnIGRvZXNuJ3QgcmVzcG9uZCBjb3JyZWN0bHkuICBJZiBzcGVjaWZpZWQsCiAgICAgICAgIGBsb2NhbF9ob3N0bmFtZWAgaXMgdXNlZCBhcyB0aGUgRlFETiBvZiB0aGUgbG9jYWwgaG9zdC4gIEJ5IGRlZmF1bHQsCi0gICAgICAgIHRoZSBsb2NhbCBob3N0bmFtZSBpcyBmb3VuZCB1c2luZyBzb2NrZXQuZ2V0ZnFkbigpLgorICAgICAgICB0aGUgbG9jYWwgaG9zdG5hbWUgaXMgZm91bmQgdXNpbmcgc29ja2V0LmdldGZxZG4oKS4gVGhlCisgICAgICAgIGBzb3VyY2VfYWRkcmVzc2AgcGFyYW1ldGVyIHRha2VzIGEgMi10dXBsZSAoaG9zdCwgcG9ydCkgZm9yIHRoZSBzb2NrZXQKKyAgICAgICAgdG8gYmluZCB0byBhcyBpdHMgc291cmNlIGFkZHJlc3MgYmVmb3JlIGNvbm5lY3RpbmcuIElmIHRoZSBob3N0IGlzICcnCisgICAgICAgIGFuZCBwb3J0IGlzIDAsIHRoZSBPUyBkZWZhdWx0IGJlaGF2aW9yIHdpbGwgYmUgdXNlZC4KIAogICAgICAgICAiIiIKICAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAogICAgICAgICBzZWxmLmVzbXRwX2ZlYXR1cmVzID0ge30KKyAgICAgICAgc2VsZi5zb3VyY2VfYWRkcmVzcyA9IHNvdXJjZV9hZGRyZXNzCisKICAgICAgICAgaWYgaG9zdDoKICAgICAgICAgICAgIChjb2RlLCBtc2cpID0gc2VsZi5jb25uZWN0KGhvc3QsIHBvcnQpCiAgICAgICAgICAgICBpZiBjb2RlICE9IDIyMDoKQEAgLTI3Nyw2ICsyNTYsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgICAgIHNlbGYubG9jYWxfaG9zdG5hbWUgPSAnWyVzXScgJSBhZGRyCiAKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY29kZSwgbWVzc2FnZSA9IHNlbGYuZG9jbWQoIlFVSVQiKQorICAgICAgICAgICAgaWYgY29kZSAhPSAyMjE6CisgICAgICAgICAgICAgICAgcmFpc2UgU01UUFJlc3BvbnNlRXhjZXB0aW9uKGNvZGUsIG1lc3NhZ2UpCisgICAgICAgIGV4Y2VwdCBTTVRQU2VydmVyRGlzY29ubmVjdGVkOgorICAgICAgICAgICAgcGFzcworICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5jbG9zZSgpCisKICAgICBkZWYgc2V0X2RlYnVnbGV2ZWwoc2VsZiwgZGVidWdsZXZlbCk6CiAgICAgICAgICIiIlNldCB0aGUgZGVidWcgb3V0cHV0IGxldmVsLgogCkBAIC0yOTAsMTAgKzI4MiwxMiBAQAogICAgICAgICAjIFRoaXMgbWFrZXMgaXQgc2ltcGxlciBmb3IgU01UUF9TU0wgdG8gdXNlIHRoZSBTTVRQIGNvbm5lY3QgY29kZQogICAgICAgICAjIGFuZCBqdXN0IGFsdGVyIHRoZSBzb2NrZXQgY29ubmVjdGlvbiBiaXQuCiAgICAgICAgIGlmIHNlbGYuZGVidWdsZXZlbCA+IDA6Ci0gICAgICAgICAgICBwcmludCgnY29ubmVjdDonLCAoaG9zdCwgcG9ydCksIGZpbGU9c3RkZXJyKQotICAgICAgICByZXR1cm4gc29ja2V0LmNyZWF0ZV9jb25uZWN0aW9uKChob3N0LCBwb3J0KSwgdGltZW91dCkKKyAgICAgICAgICAgIHByaW50KCdjb25uZWN0OiB0bycsIChob3N0LCBwb3J0KSwgc2VsZi5zb3VyY2VfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU9c3RkZXJyKQorICAgICAgICByZXR1cm4gc29ja2V0LmNyZWF0ZV9jb25uZWN0aW9uKChob3N0LCBwb3J0KSwgdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNvdXJjZV9hZGRyZXNzKQogCi0gICAgZGVmIGNvbm5lY3Qoc2VsZiwgaG9zdD0nbG9jYWxob3N0JywgcG9ydD0wKToKKyAgICBkZWYgY29ubmVjdChzZWxmLCBob3N0PSdsb2NhbGhvc3QnLCBwb3J0PTAsIHNvdXJjZV9hZGRyZXNzPU5vbmUpOgogICAgICAgICAiIiJDb25uZWN0IHRvIGEgaG9zdCBvbiBhIGdpdmVuIHBvcnQuCiAKICAgICAgICAgSWYgdGhlIGhvc3RuYW1lIGVuZHMgd2l0aCBhIGNvbG9uIChgOicpIGZvbGxvd2VkIGJ5IGEgbnVtYmVyLCBhbmQKQEAgLTMwNCw2ICsyOTgsMTAgQEAKICAgICAgICAgc3BlY2lmaWVkIGR1cmluZyBpbnN0YW50aWF0aW9uLgogCiAgICAgICAgICIiIgorCisgICAgICAgIGlmIHNvdXJjZV9hZGRyZXNzOgorICAgICAgICAgICAgc2VsZi5zb3VyY2VfYWRkcmVzcyA9IHNvdXJjZV9hZGRyZXNzCisKICAgICAgICAgaWYgbm90IHBvcnQgYW5kIChob3N0LmZpbmQoJzonKSA9PSBob3N0LnJmaW5kKCc6JykpOgogICAgICAgICAgICAgaSA9IGhvc3QucmZpbmQoJzonKQogICAgICAgICAgICAgaWYgaSA+PSAwOgpAQCAtMzE3LDYgKzMxNSw3IEBACiAgICAgICAgIGlmIHNlbGYuZGVidWdsZXZlbCA+IDA6CiAgICAgICAgICAgICBwcmludCgnY29ubmVjdDonLCAoaG9zdCwgcG9ydCksIGZpbGU9c3RkZXJyKQogICAgICAgICBzZWxmLnNvY2sgPSBzZWxmLl9nZXRfc29ja2V0KGhvc3QsIHBvcnQsIHNlbGYudGltZW91dCkKKyAgICAgICAgc2VsZi5maWxlID0gTm9uZQogICAgICAgICAoY29kZSwgbXNnKSA9IHNlbGYuZ2V0cmVwbHkoKQogICAgICAgICBpZiBzZWxmLmRlYnVnbGV2ZWwgPiAwOgogICAgICAgICAgICAgcHJpbnQoImNvbm5lY3Q6IiwgbXNnLCBmaWxlPXN0ZGVycikKQEAgLTM4OCw3ICszODcsOCBAQAogCiAgICAgICAgIGVycm1zZyA9IGIiXG4iLmpvaW4ocmVzcCkKICAgICAgICAgaWYgc2VsZi5kZWJ1Z2xldmVsID4gMDoKLSAgICAgICAgICAgIHByaW50KCdyZXBseTogcmV0Y29kZSAoJXMpOyBNc2c6ICVzJyAlIChlcnJjb2RlLCBlcnJtc2cpLCBmaWxlPXN0ZGVycikKKyAgICAgICAgICAgIHByaW50KCdyZXBseTogcmV0Y29kZSAoJXMpOyBNc2c6ICVzJyAlIChlcnJjb2RlLCBlcnJtc2cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGU9c3RkZXJyKQogICAgICAgICByZXR1cm4gZXJyY29kZSwgZXJybXNnCiAKICAgICBkZWYgZG9jbWQoc2VsZiwgY21kLCBhcmdzPSIiKToKQEAgLTYzMiw3ICs2MzIsNyBAQAogICAgICAgICAjIFdlIGNvdWxkIG5vdCBsb2dpbiBzdWNlc3NmdWxseS4gUmV0dXJuIHJlc3VsdCBvZiBsYXN0IGF0dGVtcHQuCiAgICAgICAgIHJhaXNlIFNNVFBBdXRoZW50aWNhdGlvbkVycm9yKGNvZGUsIHJlc3ApCiAKLSAgICBkZWYgc3RhcnR0bHMoc2VsZiwga2V5ZmlsZT1Ob25lLCBjZXJ0ZmlsZT1Ob25lKToKKyAgICBkZWYgc3RhcnR0bHMoc2VsZiwga2V5ZmlsZT1Ob25lLCBjZXJ0ZmlsZT1Ob25lLCBjb250ZXh0PU5vbmUpOgogICAgICAgICAiIiJQdXRzIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBTTVRQIHNlcnZlciBpbnRvIFRMUyBtb2RlLgogCiAgICAgICAgIElmIHRoZXJlIGhhcyBiZWVuIG5vIHByZXZpb3VzIEVITE8gb3IgSEVMTyBjb21tYW5kIHRoaXMgc2Vzc2lvbiwgdGhpcwpAQCAtNjU2LDggKzY1NiwxNyBAQAogICAgICAgICBpZiByZXNwID09IDIyMDoKICAgICAgICAgICAgIGlmIG5vdCBfaGF2ZV9zc2w6CiAgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJObyBTU0wgc3VwcG9ydCBpbmNsdWRlZCBpbiB0aGlzIFB5dGhvbiIpCi0gICAgICAgICAgICBzZWxmLnNvY2sgPSBzc2wud3JhcF9zb2NrZXQoc2VsZi5zb2NrLCBrZXlmaWxlLCBjZXJ0ZmlsZSkKLSAgICAgICAgICAgIHNlbGYuZmlsZSA9IFNTTEZha2VGaWxlKHNlbGYuc29jaykKKyAgICAgICAgICAgIGlmIGNvbnRleHQgaXMgbm90IE5vbmUgYW5kIGtleWZpbGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29udGV4dCBhbmQga2V5ZmlsZSBhcmd1bWVudHMgYXJlIG11dHVhbGx5ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGNsdXNpdmUiKQorICAgICAgICAgICAgaWYgY29udGV4dCBpcyBub3QgTm9uZSBhbmQgY2VydGZpbGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29udGV4dCBhbmQgY2VydGZpbGUgYXJndW1lbnRzIGFyZSBtdXR1YWxseSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjbHVzaXZlIikKKyAgICAgICAgICAgIGlmIGNvbnRleHQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5zb2NrID0gY29udGV4dC53cmFwX3NvY2tldChzZWxmLnNvY2spCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuc29jayA9IHNzbC53cmFwX3NvY2tldChzZWxmLnNvY2ssIGtleWZpbGUsIGNlcnRmaWxlKQorICAgICAgICAgICAgc2VsZi5maWxlID0gTm9uZQogICAgICAgICAgICAgIyBSRkMgMzIwNzoKICAgICAgICAgICAgICMgVGhlIGNsaWVudCBNVVNUIGRpc2NhcmQgYW55IGtub3dsZWRnZSBvYnRhaW5lZCBmcm9tCiAgICAgICAgICAgICAjIHRoZSBzZXJ2ZXIsIHN1Y2ggYXMgdGhlIGxpc3Qgb2YgU01UUCBzZXJ2aWNlIGV4dGVuc2lvbnMsCkBAIC03ODYsNyArNzk1LDggQEAKICAgICAgICAgIyBUT0RPIGltcGxlbWVudCBoZXVyaXN0aWNzIHRvIGd1ZXNzIHRoZSBjb3JyZWN0IFJlc2VudC0qIGJsb2NrIHdpdGggYW4KICAgICAgICAgIyBvcHRpb24gYWxsb3dpbmcgdGhlIHVzZXIgdG8gZW5hYmxlIHRoZSBoZXVyaXN0aWNzLiAgKEl0IHNob3VsZCBiZQogICAgICAgICAjIHBvc3NpYmxlIHRvIGd1ZXNzIGNvcnJlY3RseSBhbG1vc3QgYWxsIG9mIHRoZSB0aW1lLikKLSAgICAgICAgcmVzZW50ID1tc2cuZ2V0X2FsbCgnUmVzZW50LURhdGUnKQorCisgICAgICAgIHJlc2VudCA9IG1zZy5nZXRfYWxsKCdSZXNlbnQtRGF0ZScpCiAgICAgICAgIGlmIHJlc2VudCBpcyBOb25lOgogICAgICAgICAgICAgaGVhZGVyX3ByZWZpeCA9ICcnCiAgICAgICAgIGVsaWYgbGVuKHJlc2VudCkgPT0gMToKQEAgLTc5NSwxMyArODA1LDEzIEBACiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJtZXNzYWdlIGhhcyBtb3JlIHRoYW4gb25lICdSZXNlbnQtJyBoZWFkZXIgYmxvY2siKQogICAgICAgICBpZiBmcm9tX2FkZHIgaXMgTm9uZToKICAgICAgICAgICAgICMgUHJlZmVyIHRoZSBzZW5kZXIgZmllbGQgcGVyIFJGQyAyODIyOjMuNi4yLgotICAgICAgICAgICAgZnJvbV9hZGRyID0gKG1zZ1toZWFkZXJfcHJlZml4KydTZW5kZXInXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhlYWRlcl9wcmVmaXgrJ1NlbmRlcicpIGluIG1zZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBtc2dbaGVhZGVyX3ByZWZpeCsnRnJvbSddKQorICAgICAgICAgICAgZnJvbV9hZGRyID0gKG1zZ1toZWFkZXJfcHJlZml4ICsgJ1NlbmRlciddCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaGVhZGVyX3ByZWZpeCArICdTZW5kZXInKSBpbiBtc2cKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgbXNnW2hlYWRlcl9wcmVmaXggKyAnRnJvbSddKQogICAgICAgICBpZiB0b19hZGRycyBpcyBOb25lOgotICAgICAgICAgICAgYWRkcl9maWVsZHMgPSBbZiBmb3IgZiBpbiAobXNnW2hlYWRlcl9wcmVmaXgrJ1RvJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dbaGVhZGVyX3ByZWZpeCsnQmNjJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dbaGVhZGVyX3ByZWZpeCsnQ2MnXSkgaWYgZiBpcyBub3QgTm9uZV0KKyAgICAgICAgICAgIGFkZHJfZmllbGRzID0gW2YgZm9yIGYgaW4gKG1zZ1toZWFkZXJfcHJlZml4ICsgJ1RvJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2dbaGVhZGVyX3ByZWZpeCArICdCY2MnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ1toZWFkZXJfcHJlZml4ICsgJ0NjJ10pIGlmIGYgaXMgbm90IE5vbmVdCiAgICAgICAgICAgICB0b19hZGRycyA9IFthWzFdIGZvciBhIGluIGVtYWlsLnV0aWxzLmdldGFkZHJlc3NlcyhhZGRyX2ZpZWxkcyldCiAgICAgICAgICMgTWFrZSBhIGxvY2FsIGNvcHkgc28gd2UgY2FuIGRlbGV0ZSB0aGUgYmNjIGhlYWRlcnMuCiAgICAgICAgIG1zZ19jb3B5ID0gY29weS5jb3B5KG1zZykKQEAgLTgzNSwyNiArODQ1LDQxIEBACiAgICAgICAgICIiIiBUaGlzIGlzIGEgc3ViY2xhc3MgZGVyaXZlZCBmcm9tIFNNVFAgdGhhdCBjb25uZWN0cyBvdmVyIGFuIFNTTCBlbmNyeXB0ZWQKICAgICAgICAgc29ja2V0ICh0byB1c2UgdGhpcyBjbGFzcyB5b3UgbmVlZCBhIHNvY2tldCBtb2R1bGUgdGhhdCB3YXMgY29tcGlsZWQgd2l0aCBTU0wKICAgICAgICAgc3VwcG9ydCkuIElmIGhvc3QgaXMgbm90IHNwZWNpZmllZCwgJycgKHRoZSBsb2NhbCBob3N0KSBpcyB1c2VkLiBJZiBwb3J0IGlzCi0gICAgICAgIG9taXR0ZWQsIHRoZSBzdGFuZGFyZCBTTVRQLW92ZXItU1NMIHBvcnQgKDQ2NSkgaXMgdXNlZC4ga2V5ZmlsZSBhbmQgY2VydGZpbGUKKyAgICAgICAgb21pdHRlZCwgdGhlIHN0YW5kYXJkIFNNVFAtb3Zlci1TU0wgcG9ydCAoNDY1KSBpcyB1c2VkLiBUaGUgb3B0aW9uYWwKKyAgICAgICAgc291cmNlX2FkZHJlc3MgdGFrZXMgYSB0d28tdHVwbGUgKGhvc3QscG9ydCkgZm9yIHNvY2tldCB0byBiaW5kIHRvLiBrZXlmaWxlIGFuZCBjZXJ0ZmlsZQogICAgICAgICBhcmUgYWxzbyBvcHRpb25hbCAtIHRoZXkgY2FuIGNvbnRhaW4gYSBQRU0gZm9ybWF0dGVkIHByaXZhdGUga2V5IGFuZAotICAgICAgICBjZXJ0aWZpY2F0ZSBjaGFpbiBmaWxlIGZvciB0aGUgU1NMIGNvbm5lY3Rpb24uCisgICAgICAgIGNlcnRpZmljYXRlIGNoYWluIGZpbGUgZm9yIHRoZSBTU0wgY29ubmVjdGlvbi4gY29udGV4dCBhbHNvIG9wdGlvbmFsLCBjYW4gY29udGFpbgorICAgICAgICBhIFNTTENvbnRleHQsIGFuZCBpcyBhbiBhbHRlcm5hdGl2ZSB0byBrZXlmaWxlIGFuZCBjZXJ0ZmlsZTsgSWYgaXQgaXMgc3BlY2lmaWVkIGJvdGgKKyAgICAgICAga2V5ZmlsZSBhbmQgY2VydGZpbGUgbXVzdCBiZSBOb25lLgogICAgICAgICAiIiIKIAogICAgICAgICBkZWZhdWx0X3BvcnQgPSBTTVRQX1NTTF9QT1JUCiAKICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Q9JycsIHBvcnQ9MCwgbG9jYWxfaG9zdG5hbWU9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgIGtleWZpbGU9Tm9uZSwgY2VydGZpbGU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9c29ja2V0Ll9HTE9CQUxfREVGQVVMVF9USU1FT1VUKToKKyAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9c29ja2V0Ll9HTE9CQUxfREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3M9Tm9uZSwgY29udGV4dD1Ob25lKToKKyAgICAgICAgICAgIGlmIGNvbnRleHQgaXMgbm90IE5vbmUgYW5kIGtleWZpbGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29udGV4dCBhbmQga2V5ZmlsZSBhcmd1bWVudHMgYXJlIG11dHVhbGx5ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGNsdXNpdmUiKQorICAgICAgICAgICAgaWYgY29udGV4dCBpcyBub3QgTm9uZSBhbmQgY2VydGZpbGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY29udGV4dCBhbmQgY2VydGZpbGUgYXJndW1lbnRzIGFyZSBtdXR1YWxseSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjbHVzaXZlIikKICAgICAgICAgICAgIHNlbGYua2V5ZmlsZSA9IGtleWZpbGUKICAgICAgICAgICAgIHNlbGYuY2VydGZpbGUgPSBjZXJ0ZmlsZQotICAgICAgICAgICAgU01UUC5fX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0LCBsb2NhbF9ob3N0bmFtZSwgdGltZW91dCkKKyAgICAgICAgICAgIHNlbGYuY29udGV4dCA9IGNvbnRleHQKKyAgICAgICAgICAgIFNNVFAuX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydCwgbG9jYWxfaG9zdG5hbWUsIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzKQogCiAgICAgICAgIGRlZiBfZ2V0X3NvY2tldChzZWxmLCBob3N0LCBwb3J0LCB0aW1lb3V0KToKICAgICAgICAgICAgIGlmIHNlbGYuZGVidWdsZXZlbCA+IDA6CiAgICAgICAgICAgICAgICAgcHJpbnQoJ2Nvbm5lY3Q6JywgKGhvc3QsIHBvcnQpLCBmaWxlPXN0ZGVycikKLSAgICAgICAgICAgIG5ld19zb2NrZXQgPSBzb2NrZXQuY3JlYXRlX2Nvbm5lY3Rpb24oKGhvc3QsIHBvcnQpLCB0aW1lb3V0KQotICAgICAgICAgICAgbmV3X3NvY2tldCA9IHNzbC53cmFwX3NvY2tldChuZXdfc29ja2V0LCBzZWxmLmtleWZpbGUsIHNlbGYuY2VydGZpbGUpCi0gICAgICAgICAgICBzZWxmLmZpbGUgPSBTU0xGYWtlRmlsZShuZXdfc29ja2V0KQorICAgICAgICAgICAgbmV3X3NvY2tldCA9IHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbigoaG9zdCwgcG9ydCksIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgIHNlbGYuc291cmNlX2FkZHJlc3MpCisgICAgICAgICAgICBpZiBzZWxmLmNvbnRleHQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgbmV3X3NvY2tldCA9IHNlbGYuY29udGV4dC53cmFwX3NvY2tldChuZXdfc29ja2V0KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBuZXdfc29ja2V0ID0gc3NsLndyYXBfc29ja2V0KG5ld19zb2NrZXQsIHNlbGYua2V5ZmlsZSwgc2VsZi5jZXJ0ZmlsZSkKICAgICAgICAgICAgIHJldHVybiBuZXdfc29ja2V0CiAKICAgICBfX2FsbF9fLmFwcGVuZCgiU01UUF9TU0wiKQpAQCAtODc5LDE4ICs5MDQsMjEgQEAKIAogICAgIGVobG9fbXNnID0gImxobG8iCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD0nJywgcG9ydD1MTVRQX1BPUlQsIGxvY2FsX2hvc3RuYW1lPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0PScnLCBwb3J0PUxNVFBfUE9SVCwgbG9jYWxfaG9zdG5hbWU9Tm9uZSwKKyAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzPU5vbmUpOgogICAgICAgICAiIiJJbml0aWFsaXplIGEgbmV3IGluc3RhbmNlLiIiIgotICAgICAgICBTTVRQLl9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnQsIGxvY2FsX2hvc3RuYW1lKQorICAgICAgICBTTVRQLl9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnQsIGxvY2FsX2hvc3RuYW1lPWxvY2FsX2hvc3RuYW1lLAorICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzPXNvdXJjZV9hZGRyZXNzKQogCi0gICAgZGVmIGNvbm5lY3Qoc2VsZiwgaG9zdD0nbG9jYWxob3N0JywgcG9ydD0wKToKKyAgICBkZWYgY29ubmVjdChzZWxmLCBob3N0PSdsb2NhbGhvc3QnLCBwb3J0PTAsIHNvdXJjZV9hZGRyZXNzPU5vbmUpOgogICAgICAgICAiIiJDb25uZWN0IHRvIHRoZSBMTVRQIGRhZW1vbiwgb24gZWl0aGVyIGEgVW5peCBvciBhIFRDUCBzb2NrZXQuIiIiCiAgICAgICAgIGlmIGhvc3RbMF0gIT0gJy8nOgotICAgICAgICAgICAgcmV0dXJuIFNNVFAuY29ubmVjdChzZWxmLCBob3N0LCBwb3J0KQorICAgICAgICAgICAgcmV0dXJuIFNNVFAuY29ubmVjdChzZWxmLCBob3N0LCBwb3J0LCBzb3VyY2VfYWRkcmVzcz1zb3VyY2VfYWRkcmVzcykKIAogICAgICAgICAjIEhhbmRsZSBVbml4LWRvbWFpbiBzb2NrZXRzLgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnNvY2sgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9VTklYLCBzb2NrZXQuU09DS19TVFJFQU0pCisgICAgICAgICAgICBzZWxmLmZpbGUgPSBOb25lCiAgICAgICAgICAgICBzZWxmLnNvY2suY29ubmVjdChob3N0KQogICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIG1zZzoKICAgICAgICAgICAgIGlmIHNlbGYuZGVidWdsZXZlbCA+IDA6CmRpZmYgLS1naXQgYS9MaWIvc29ja2V0LnB5IGIvTGliL3NvY2tldC5weQppbmRleCBhOTNjZDExLi4xMzc4YjBmIDEwMDY0NAotLS0gYS9MaWIvc29ja2V0LnB5CisrKyBiL0xpYi9zb2NrZXQucHkKQEAgLTEyLDYgKzEyLDcgQEAKIHNvY2tldCgpIC0tIGNyZWF0ZSBhIG5ldyBzb2NrZXQgb2JqZWN0CiBzb2NrZXRwYWlyKCkgLS0gY3JlYXRlIGEgcGFpciBvZiBuZXcgc29ja2V0IG9iamVjdHMgWypdCiBmcm9tZmQoKSAtLSBjcmVhdGUgYSBzb2NrZXQgb2JqZWN0IGZyb20gYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IgWypdCitmcm9tc2hhcmUoKSAtLSBjcmVhdGUgYSBzb2NrZXQgb2JqZWN0IGZyb20gZGF0YSByZWNlaXZlZCBmcm9tIHNvY2tldC5zaGFyZSgpIFsqXQogZ2V0aG9zdG5hbWUoKSAtLSByZXR1cm4gdGhlIGN1cnJlbnQgaG9zdG5hbWUKIGdldGhvc3RieW5hbWUoKSAtLSBtYXAgYSBob3N0bmFtZSB0byBpdHMgSVAgbnVtYmVyCiBnZXRob3N0YnlhZGRyKCkgLS0gbWFwIGFuIElQIG51bWJlciBvciBob3N0bmFtZSB0byBETlMgaW5mbwpAQCAtNTMsNyArNTQsNiBAQAogZXhjZXB0IEltcG9ydEVycm9yOgogICAgIGVycm5vID0gTm9uZQogRUJBREYgPSBnZXRhdHRyKGVycm5vLCAnRUJBREYnLCA5KQotRUlOVFIgPSBnZXRhdHRyKGVycm5vLCAnRUlOVFInLCA0KQogRUFHQUlOID0gZ2V0YXR0cihlcnJubywgJ0VBR0FJTicsIDExKQogRVdPVUxEQkxPQ0sgPSBnZXRhdHRyKGVycm5vLCAnRVdPVUxEQkxPQ0snLCAxMSkKIApAQCAtMTEyLDYgKzExMiw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNbNzpdKQogICAgICAgICByZXR1cm4gcwogCisgICAgZGVmIF9fZ2V0c3RhdGVfXyhzZWxmKToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJDYW5ub3Qgc2VyaWFsaXplIHNvY2tldCBvYmplY3QiKQorCiAgICAgZGVmIGR1cChzZWxmKToKICAgICAgICAgIiIiZHVwKCkgLT4gc29ja2V0IG9iamVjdAogCkBAIC0yMDcsNyArMjEwLDYgQEAKICAgICAgICAgc2VsZi5fY2xvc2VkID0gVHJ1ZQogICAgICAgICByZXR1cm4gc3VwZXIoKS5kZXRhY2goKQogCi0KIGRlZiBmcm9tZmQoZmQsIGZhbWlseSwgdHlwZSwgcHJvdG89MCk6CiAgICAgIiIiIGZyb21mZChmZCwgZmFtaWx5LCB0eXBlWywgcHJvdG9dKSAtPiBzb2NrZXQgb2JqZWN0CiAKQEAgLTIxNyw2ICsyMTksMTQgQEAKICAgICBuZmQgPSBkdXAoZmQpCiAgICAgcmV0dXJuIHNvY2tldChmYW1pbHksIHR5cGUsIHByb3RvLCBuZmQpCiAKK2lmIGhhc2F0dHIoX3NvY2tldC5zb2NrZXQsICJzaGFyZSIpOgorICAgIGRlZiBmcm9tc2hhcmUoaW5mbyk6CisgICAgICAgICIiIiBmcm9tc2hhcmUoaW5mbykgLT4gc29ja2V0IG9iamVjdAorCisgICAgICAgIENyZWF0ZSBhIHNvY2tldCBvYmplY3QgZnJvbSBhIHRoZSBieXRlcyBvYmplY3QgcmV0dXJuZWQgYnkKKyAgICAgICAgc29ja2V0LnNoYXJlKHBpZCkuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc29ja2V0KDAsIDAsIDAsIGluZm8pCiAKIGlmIGhhc2F0dHIoX3NvY2tldCwgInNvY2tldHBhaXIiKToKIApAQCAtMjg4LDExICsyOTgsMTAgQEAKICAgICAgICAgICAgIGV4Y2VwdCB0aW1lb3V0OgogICAgICAgICAgICAgICAgIHNlbGYuX3RpbWVvdXRfb2NjdXJyZWQgPSBUcnVlCiAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIGV4Y2VwdCBJbnRlcnJ1cHRlZEVycm9yOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBleGNlcHQgZXJyb3IgYXMgZToKLSAgICAgICAgICAgICAgICBuID0gZS5hcmdzWzBdCi0gICAgICAgICAgICAgICAgaWYgbiA9PSBFSU5UUjoKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBpZiBuIGluIF9ibG9ja2luZ19lcnJub3M6CisgICAgICAgICAgICAgICAgaWYgZS5hcmdzWzBdIGluIF9ibG9ja2luZ19lcnJub3M6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgICAgICAgICAgcmFpc2UKIApkaWZmIC0tZ2l0IGEvTGliL3NvY2tldHNlcnZlci5weSBiL0xpYi9zb2NrZXRzZXJ2ZXIucHkKaW5kZXggYWRmOWYzOC4uMjYxZTI4ZSAxMDA2NDQKLS0tIGEvTGliL3NvY2tldHNlcnZlci5weQorKysgYi9MaWIvc29ja2V0c2VydmVyLnB5CkBAIC0xNTMsOCArMTUzLDggQEAKICAgICB3aGlsZSBUcnVlOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICByZXR1cm4gZnVuYygqYXJncykKLSAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBzZWxlY3QuZXJyb3IpIGFzIGU6Ci0gICAgICAgICAgICBpZiBlLmFyZ3NbMF0gIT0gZXJybm8uRUlOVFI6CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVJTlRSOgogICAgICAgICAgICAgICAgIHJhaXNlCiAKIGNsYXNzIEJhc2VTZXJ2ZXI6CkBAIC0xODAsNiArMTgwLDcgQEAKICAgICAtIHByb2Nlc3NfcmVxdWVzdChyZXF1ZXN0LCBjbGllbnRfYWRkcmVzcykKICAgICAtIHNodXRkb3duX3JlcXVlc3QocmVxdWVzdCkKICAgICAtIGNsb3NlX3JlcXVlc3QocmVxdWVzdCkKKyAgICAtIHNlcnZpY2VfYWN0aW9ucygpCiAgICAgLSBoYW5kbGVfZXJyb3IoKQogCiAgICAgTWV0aG9kcyBmb3IgZGVyaXZlZCBjbGFzc2VzOgpAQCAtMjM2LDYgKzIzNyw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xsX2ludGVydmFsKQogICAgICAgICAgICAgICAgIGlmIHNlbGYgaW4gcjoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX3JlcXVlc3Rfbm9ibG9jaygpCisKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZpY2VfYWN0aW9ucygpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLl9fc2h1dGRvd25fcmVxdWVzdCA9IEZhbHNlCiAgICAgICAgICAgICBzZWxmLl9faXNfc2h1dF9kb3duLnNldCgpCkBAIC0yNTAsNiArMjUzLDE0IEBACiAgICAgICAgIHNlbGYuX19zaHV0ZG93bl9yZXF1ZXN0ID0gVHJ1ZQogICAgICAgICBzZWxmLl9faXNfc2h1dF9kb3duLndhaXQoKQogCisgICAgZGVmIHNlcnZpY2VfYWN0aW9ucyhzZWxmKToKKyAgICAgICAgIiIiQ2FsbGVkIGJ5IHRoZSBzZXJ2ZV9mb3JldmVyKCkgbG9vcC4KKworICAgICAgICBNYXkgYmUgb3ZlcnJpZGRlbiBieSBhIHN1YmNsYXNzIC8gTWl4aW4gdG8gaW1wbGVtZW50IGFueSBjb2RlIHRoYXQKKyAgICAgICAgbmVlZHMgdG8gYmUgcnVuIGR1cmluZyB0aGUgbG9vcC4KKyAgICAgICAgIiIiCisgICAgICAgIHBhc3MKKwogICAgICMgVGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gaGFuZGxpbmcsIGdldHRpbmcsIHByb2Nlc3NpbmcgYW5kCiAgICAgIyBmaW5pc2hpbmcgYSByZXF1ZXN0IGlzIGZhaXJseSBhcmJpdHJhcnkuICBSZW1lbWJlcjoKICAgICAjCkBAIC01NTAsOSArNTYxLDE1IEBACiAgICAgICAgICIiIgogICAgICAgICBzZWxmLmNvbGxlY3RfY2hpbGRyZW4oKQogCisgICAgZGVmIHNlcnZpY2VfYWN0aW9ucyhzZWxmKToKKyAgICAgICAgIiIiQ29sbGVjdCB0aGUgem9tYmllIGNoaWxkIHByb2Nlc3NlcyByZWd1bGFybHkgaW4gdGhlIEZvcmtpbmdNaXhpbi4KKworICAgICAgICBzZXJ2aWNlX2FjdGlvbnMgaXMgY2FsbGVkIGluIHRoZSBCYXNlU2VydmVyJ3Mgc2VydmVfZm9ydmVyIGxvb3AuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmNvbGxlY3RfY2hpbGRyZW4oKQorCiAgICAgZGVmIHByb2Nlc3NfcmVxdWVzdChzZWxmLCByZXF1ZXN0LCBjbGllbnRfYWRkcmVzcyk6CiAgICAgICAgICIiIkZvcmsgYSBuZXcgc3VicHJvY2VzcyB0byBwcm9jZXNzIHRoZSByZXF1ZXN0LiIiIgotICAgICAgICBzZWxmLmNvbGxlY3RfY2hpbGRyZW4oKQogICAgICAgICBwaWQgPSBvcy5mb3JrKCkKICAgICAgICAgaWYgcGlkOgogICAgICAgICAgICAgIyBQYXJlbnQgcHJvY2VzcwpAQCAtNTYwLDYgKzU3Nyw3IEBACiAgICAgICAgICAgICAgICAgc2VsZi5hY3RpdmVfY2hpbGRyZW4gPSBbXQogICAgICAgICAgICAgc2VsZi5hY3RpdmVfY2hpbGRyZW4uYXBwZW5kKHBpZCkKICAgICAgICAgICAgIHNlbGYuY2xvc2VfcmVxdWVzdChyZXF1ZXN0KQorICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAjIENoaWxkIHByb2Nlc3MuCiAgICAgICAgICAgICAjIFRoaXMgbXVzdCBuZXZlciByZXR1cm4sIGhlbmNlIG9zLl9leGl0KCkhCmRpZmYgLS1naXQgYS9MaWIvc3FsaXRlMy90ZXN0L2RiYXBpLnB5IGIvTGliL3NxbGl0ZTMvdGVzdC9kYmFwaS5weQppbmRleCAyMDJiZDM4Li5iN2VjMWFkIDEwMDY0NAotLS0gYS9MaWIvc3FsaXRlMy90ZXN0L2RiYXBpLnB5CisrKyBiL0xpYi9zcWxpdGUzL3Rlc3QvZGJhcGkucHkKQEAgLTEsNCArMSw0IEBACi0jLSotIGNvZGluZzogSVNPLTg4NTktMSAtKi0KKyMtKi0gY29kaW5nOiBpc28tODg1OS0xIC0qLQogIyBweXNxbGl0ZTIvdGVzdC9kYmFwaS5weTogdGVzdHMgZm9yIERCLUFQSSBjb21wbGlhbmNlCiAjCiAjIENvcHlyaWdodCAoQykgMjAwNC0yMDEwIEdlcmhhcmQgSORyaW5nIDxnaEBnaGFlcmluZy5kZT4KZGlmZiAtLWdpdCBhL0xpYi9zcWxpdGUzL3Rlc3QvZmFjdG9yeS5weSBiL0xpYi9zcWxpdGUzL3Rlc3QvZmFjdG9yeS5weQppbmRleCA3ZjZmMzQ3Li45ZTgzM2FlIDEwMDY0NAotLS0gYS9MaWIvc3FsaXRlMy90ZXN0L2ZhY3RvcnkucHkKKysrIGIvTGliL3NxbGl0ZTMvdGVzdC9mYWN0b3J5LnB5CkBAIC0xLDQgKzEsNCBAQAotIy0qLSBjb2Rpbmc6IElTTy04ODU5LTEgLSotCisjLSotIGNvZGluZzogaXNvLTg4NTktMSAtKi0KICMgcHlzcWxpdGUyL3Rlc3QvZmFjdG9yeS5weTogdGVzdHMgZm9yIHRoZSB2YXJpb3VzIGZhY3RvcmllcyBpbiBweXNxbGl0ZQogIwogIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNyBHZXJoYXJkIEjkcmluZyA8Z2hAZ2hhZXJpbmcuZGU+CkBAIC0xNzgsNiArMTc4LDggQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJvd1swXS5lbmRzd2l0aCgicmVpY2giKSwgImNvbHVtbiBtdXN0IGNvbnRhaW4gb3JpZ2luYWwgZGF0YSIpCiAKICAgICBkZWYgQ2hlY2tPcHRpbWl6ZWRVbmljb2RlKHNlbGYpOgorICAgICAgICAjIEluIHB5M2ssIHN0ciBvYmplY3RzIGFyZSBhbHdheXMgcmV0dXJuZWQgd2hlbiB0ZXh0X2ZhY3RvcnkKKyAgICAgICAgIyBpcyBPcHRpbWl6ZWRVbmljb2RlCiAgICAgICAgIHNlbGYuY29uLnRleHRfZmFjdG9yeSA9IHNxbGl0ZS5PcHRpbWl6ZWRVbmljb2RlCiAgICAgICAgIGF1c3RyaWEgPSAi1nN0ZXJyZWljaCIKICAgICAgICAgZ2VybWFueSA9ICJEZXV0Y2hsYW5kIgpkaWZmIC0tZ2l0IGEvTGliL3NxbGl0ZTMvdGVzdC9ob29rcy5weSBiL0xpYi9zcWxpdGUzL3Rlc3QvaG9va3MucHkKaW5kZXggYTkyZTgzOC4uM2RjNDRmNiAxMDA2NDQKLS0tIGEvTGliL3NxbGl0ZTMvdGVzdC9ob29rcy5weQorKysgYi9MaWIvc3FsaXRlMy90ZXN0L2hvb2tzLnB5CkBAIC0xLDQgKzEsNCBAQAotIy0qLSBjb2Rpbmc6IElTTy04ODU5LTEgLSotCisjLSotIGNvZGluZzogaXNvLTg4NTktMSAtKi0KICMgcHlzcWxpdGUyL3Rlc3QvaG9va3MucHk6IHRlc3RzIGZvciB2YXJpb3VzIFNRTGl0ZS1zcGVjaWZpYyBob29rcwogIwogIyBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwNyBHZXJoYXJkIEjkcmluZyA8Z2hAZ2hhZXJpbmcuZGU+CkBAIC0xNzYsMTAgKzE3Niw2MCBAQAogICAgICAgICBjb24uZXhlY3V0ZSgic2VsZWN0IDEgdW5pb24gc2VsZWN0IDIgdW5pb24gc2VsZWN0IDMiKS5mZXRjaGFsbCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0aW9uLCAwLCAicHJvZ3Jlc3MgaGFuZGxlciB3YXMgbm90IGNsZWFyZWQiKQogCitjbGFzcyBUcmFjZUNhbGxiYWNrVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBDaGVja1RyYWNlQ2FsbGJhY2tVc2VkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCB0aGF0IHRoZSB0cmFjZSBjYWxsYmFjayBpcyBpbnZva2VkIG9uY2UgaXQgaXMgc2V0LgorICAgICAgICAiIiIKKyAgICAgICAgY29uID0gc3FsaXRlLmNvbm5lY3QoIjptZW1vcnk6IikKKyAgICAgICAgdHJhY2VkX3N0YXRlbWVudHMgPSBbXQorICAgICAgICBkZWYgdHJhY2Uoc3RhdGVtZW50KToKKyAgICAgICAgICAgIHRyYWNlZF9zdGF0ZW1lbnRzLmFwcGVuZChzdGF0ZW1lbnQpCisgICAgICAgIGNvbi5zZXRfdHJhY2VfY2FsbGJhY2sodHJhY2UpCisgICAgICAgIGNvbi5leGVjdXRlKCJjcmVhdGUgdGFibGUgZm9vKGEsIGIpIikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHRyYWNlZF9zdGF0ZW1lbnRzKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYW55KCJjcmVhdGUgdGFibGUgZm9vIiBpbiBzdG10IGZvciBzdG10IGluIHRyYWNlZF9zdGF0ZW1lbnRzKSkKKworICAgIGRlZiBDaGVja0NsZWFyVHJhY2VDYWxsYmFjayhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgdGhhdCBzZXR0aW5nIHRoZSB0cmFjZSBjYWxsYmFjayB0byBOb25lIGNsZWFycyB0aGUgcHJldmlvdXNseSBzZXQgY2FsbGJhY2suCisgICAgICAgICIiIgorICAgICAgICBjb24gPSBzcWxpdGUuY29ubmVjdCgiOm1lbW9yeToiKQorICAgICAgICB0cmFjZWRfc3RhdGVtZW50cyA9IFtdCisgICAgICAgIGRlZiB0cmFjZShzdGF0ZW1lbnQpOgorICAgICAgICAgICAgdHJhY2VkX3N0YXRlbWVudHMuYXBwZW5kKHN0YXRlbWVudCkKKyAgICAgICAgY29uLnNldF90cmFjZV9jYWxsYmFjayh0cmFjZSkKKyAgICAgICAgY29uLnNldF90cmFjZV9jYWxsYmFjayhOb25lKQorICAgICAgICBjb24uZXhlY3V0ZSgiY3JlYXRlIHRhYmxlIGZvbyhhLCBiKSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UodHJhY2VkX3N0YXRlbWVudHMsICJ0cmFjZSBjYWxsYmFjayB3YXMgbm90IGNsZWFyZWQiKQorCisgICAgZGVmIENoZWNrVW5pY29kZUNvbnRlbnQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHRoYXQgdGhlIHN0YXRlbWVudCBjYW4gY29udGFpbiB1bmljb2RlIGxpdGVyYWxzLgorICAgICAgICAiIiIKKyAgICAgICAgdW5pY29kZV92YWx1ZSA9ICdceGY2XHhlNFx4ZmNceGQ2XHhjNFx4ZGNceGRmXHUyMGFjJworICAgICAgICBjb24gPSBzcWxpdGUuY29ubmVjdCgiOm1lbW9yeToiKQorICAgICAgICB0cmFjZWRfc3RhdGVtZW50cyA9IFtdCisgICAgICAgIGRlZiB0cmFjZShzdGF0ZW1lbnQpOgorICAgICAgICAgICAgdHJhY2VkX3N0YXRlbWVudHMuYXBwZW5kKHN0YXRlbWVudCkKKyAgICAgICAgY29uLnNldF90cmFjZV9jYWxsYmFjayh0cmFjZSkKKyAgICAgICAgY29uLmV4ZWN1dGUoImNyZWF0ZSB0YWJsZSBmb28oeCkiKQorICAgICAgICAjIENhbid0IGV4ZWN1dGUgYm91bmQgcGFyYW1ldGVycyBhcyB0aGVpciB2YWx1ZXMgZG9uJ3QgYXBwZWFyCisgICAgICAgICMgaW4gdHJhY2VkIHN0YXRlbWVudHMgYmVmb3JlIFNRTGl0ZSAzLjYuMjEKKyAgICAgICAgIyAoY2YuIGh0dHA6Ly93d3cuc3FsaXRlLm9yZy9kcmFmdC9yZWxlYXNlbG9nLzNfNl8yMS5odG1sKQorICAgICAgICBjb24uZXhlY3V0ZSgnaW5zZXJ0IGludG8gZm9vKHgpIHZhbHVlcyAoIiVzIiknICUgdW5pY29kZV92YWx1ZSkKKyAgICAgICAgY29uLmNvbW1pdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhbnkodW5pY29kZV92YWx1ZSBpbiBzdG10IGZvciBzdG10IGluIHRyYWNlZF9zdGF0ZW1lbnRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJVbmljb2RlIGRhdGEgJXMgZ2FyYmxlZCBpbiB0cmFjZSBjYWxsYmFjazogJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAlIChhc2NpaSh1bmljb2RlX3ZhbHVlKSwgJywgJy5qb2luKG1hcChhc2NpaSwgdHJhY2VkX3N0YXRlbWVudHMpKSkpCisKKworCiBkZWYgc3VpdGUoKToKICAgICBjb2xsYXRpb25fc3VpdGUgPSB1bml0dGVzdC5tYWtlU3VpdGUoQ29sbGF0aW9uVGVzdHMsICJDaGVjayIpCiAgICAgcHJvZ3Jlc3Nfc3VpdGUgPSB1bml0dGVzdC5tYWtlU3VpdGUoUHJvZ3Jlc3NUZXN0cywgIkNoZWNrIikKLSAgICByZXR1cm4gdW5pdHRlc3QuVGVzdFN1aXRlKChjb2xsYXRpb25fc3VpdGUsIHByb2dyZXNzX3N1aXRlKSkKKyAgICB0cmFjZV9zdWl0ZSA9IHVuaXR0ZXN0Lm1ha2VTdWl0ZShUcmFjZUNhbGxiYWNrVGVzdHMsICJDaGVjayIpCisgICAgcmV0dXJuIHVuaXR0ZXN0LlRlc3RTdWl0ZSgoY29sbGF0aW9uX3N1aXRlLCBwcm9ncmVzc19zdWl0ZSwgdHJhY2Vfc3VpdGUpKQogCiBkZWYgdGVzdCgpOgogICAgIHJ1bm5lciA9IHVuaXR0ZXN0LlRleHRUZXN0UnVubmVyKCkKZGlmZiAtLWdpdCBhL0xpYi9zcWxpdGUzL3Rlc3QvcmVncmVzc2lvbi5weSBiL0xpYi9zcWxpdGUzL3Rlc3QvcmVncmVzc2lvbi5weQppbmRleCBjNzU1MWUzLi45ZDdiMjc2IDEwMDY0NAotLS0gYS9MaWIvc3FsaXRlMy90ZXN0L3JlZ3Jlc3Npb24ucHkKKysrIGIvTGliL3NxbGl0ZTMvdGVzdC9yZWdyZXNzaW9uLnB5CkBAIC0xLDQgKzEsNCBAQAotIy0qLSBjb2Rpbmc6IElTTy04ODU5LTEgLSotCisjLSotIGNvZGluZzogaXNvLTg4NTktMSAtKi0KICMgcHlzcWxpdGUyL3Rlc3QvcmVncmVzc2lvbi5weTogcHlzcWxpdGUgcmVncmVzc2lvbiB0ZXN0cwogIwogIyBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMCBHZXJoYXJkIEjkcmluZyA8Z2hAZ2hhZXJpbmcuZGU+CmRpZmYgLS1naXQgYS9MaWIvc3FsaXRlMy90ZXN0L3RyYW5zYWN0aW9ucy5weSBiL0xpYi9zcWxpdGUzL3Rlc3QvdHJhbnNhY3Rpb25zLnB5CmluZGV4IDcwZTk2YTEuLmZlYjRmYTEgMTAwNjQ0Ci0tLSBhL0xpYi9zcWxpdGUzL3Rlc3QvdHJhbnNhY3Rpb25zLnB5CisrKyBiL0xpYi9zcWxpdGUzL3Rlc3QvdHJhbnNhY3Rpb25zLnB5CkBAIC0xLDQgKzEsNCBAQAotIy0qLSBjb2Rpbmc6IElTTy04ODU5LTEgLSotCisjLSotIGNvZGluZzogaXNvLTg4NTktMSAtKi0KICMgcHlzcWxpdGUyL3Rlc3QvdHJhbnNhY3Rpb25zLnB5OiB0ZXN0cyB0cmFuc2FjdGlvbnMKICMKICMgQ29weXJpZ2h0IChDKSAyMDA1LTIwMDcgR2VyaGFyZCBI5HJpbmcgPGdoQGdoYWVyaW5nLmRlPgpkaWZmIC0tZ2l0IGEvTGliL3NxbGl0ZTMvdGVzdC90eXBlcy5weSBiL0xpYi9zcWxpdGUzL3Rlc3QvdHlwZXMucHkKaW5kZXggMjk0MTNlMS4uM2I0Y2I2ZCAxMDA2NDQKLS0tIGEvTGliL3NxbGl0ZTMvdGVzdC90eXBlcy5weQorKysgYi9MaWIvc3FsaXRlMy90ZXN0L3R5cGVzLnB5CkBAIC0xLDQgKzEsNCBAQAotIy0qLSBjb2Rpbmc6IElTTy04ODU5LTEgLSotCisjLSotIGNvZGluZzogaXNvLTg4NTktMSAtKi0KICMgcHlzcWxpdGUyL3Rlc3QvdHlwZXMucHk6IHRlc3RzIGZvciB0eXBlIGNvbnZlcnNpb24gYW5kIGRldGVjdGlvbgogIwogIyBDb3B5cmlnaHQgKEMpIDIwMDUgR2VyaGFyZCBI5HJpbmcgPGdoQGdoYWVyaW5nLmRlPgpAQCAtODUsNyArODUsNyBAQAogICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShfdmFsLCBieXRlcyk6CiAgICAgICAgICAgICAgICAgIyBzcWxpdGUzIGFsd2F5cyBjYWxscyBfX2luaXRfXyB3aXRoIGEgYnl0ZXMgY3JlYXRlZCBmcm9tIGEKICAgICAgICAgICAgICAgICAjIFVURi04IHN0cmluZyB3aGVuIF9fY29uZm9ybV9fIHdhcyB1c2VkIHRvIHN0b3JlIHRoZSBvYmplY3QuCi0gICAgICAgICAgICAgICAgX3ZhbCA9IF92YWwuZGVjb2RlKCd1dGY4JykKKyAgICAgICAgICAgICAgICBfdmFsID0gX3ZhbC5kZWNvZGUoJ3V0Zi04JykKICAgICAgICAgICAgIHNlbGYudmFsID0gX3ZhbAogCiAgICAgICAgIGRlZiBfX2NtcF9fKHNlbGYsIG90aGVyKToKZGlmZiAtLWdpdCBhL0xpYi9zcWxpdGUzL3Rlc3QvdXNlcmZ1bmN0aW9ucy5weSBiL0xpYi9zcWxpdGUzL3Rlc3QvdXNlcmZ1bmN0aW9ucy5weQppbmRleCBlMDEzNDFlLi4xNGY2YjY1IDEwMDY0NAotLS0gYS9MaWIvc3FsaXRlMy90ZXN0L3VzZXJmdW5jdGlvbnMucHkKKysrIGIvTGliL3NxbGl0ZTMvdGVzdC91c2VyZnVuY3Rpb25zLnB5CkBAIC0xLDQgKzEsNCBAQAotIy0qLSBjb2Rpbmc6IElTTy04ODU5LTEgLSotCisjLSotIGNvZGluZzogaXNvLTg4NTktMSAtKi0KICMgcHlzcWxpdGUyL3Rlc3QvdXNlcmZ1bmN0aW9ucy5weTogdGVzdHMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kCiAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0ZXMuCiAjCmRpZmYgLS1naXQgYS9MaWIvc3JlX2NvbXBpbGUucHkgYi9MaWIvc3JlX2NvbXBpbGUucHkKaW5kZXggZjUyZWEwMS4uNzVmM2EwOSAxMDA2NDQKLS0tIGEvTGliL3NyZV9jb21waWxlLnB5CisrKyBiL0xpYi9zcmVfY29tcGlsZS5weQpAQCAtMzE4LDExICszMTgsMTMgQEAKICAgICAgICAgICAgICAgICAjIFhYWDogY291bGQgZXhwYW5kIGNhdGVnb3J5CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNoYXJzZXQgIyBjYW5ub3QgY29tcHJlc3MKICAgICBleGNlcHQgSW5kZXhFcnJvcjoKLSAgICAgICAgIyBub24tQk1QIGNoYXJhY3RlcnMKKyAgICAgICAgIyBub24tQk1QIGNoYXJhY3RlcnM7IFhYWCBub3cgdGhleSBzaG91bGQgd29yawogICAgICAgICByZXR1cm4gY2hhcnNldAogICAgIGlmIG5lZ2F0ZToKICAgICAgICAgaWYgc3lzLm1heHVuaWNvZGUgIT0gNjU1MzU6CiAgICAgICAgICAgICAjIFhYWDogbmVnYXRpb24gZG9lcyBub3Qgd29yayB3aXRoIGJpZyBjaGFyc2V0cworICAgICAgICAgICAgIyBYWFgyOiBub3cgdGhleSBzaG91bGQgd29yaywgYnV0IHJlbW92aW5nIHRoaXMgd2lsbCBtYWtlIHRoZQorICAgICAgICAgICAgIyBjaGFybWFwIDE3IHRpbWVzIGJpZ2dlcgogICAgICAgICAgICAgcmV0dXJuIGNoYXJzZXQKICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoNjU1MzYpOgogICAgICAgICAgICAgY2hhcm1hcFtpXSA9IG5vdCBjaGFybWFwW2ldCmRpZmYgLS1naXQgYS9MaWIvc3JlX3BhcnNlLnB5IGIvTGliL3NyZV9wYXJzZS5weQppbmRleCAxMzczN2NhLi5kMzU4NjQ2IDEwMDY0NAotLS0gYS9MaWIvc3JlX3BhcnNlLnB5CisrKyBiL0xpYi9zcmVfcGFyc2UucHkKQEAgLTE3Nyw2ICsxNzcsNyBAQAogCiBjbGFzcyBUb2tlbml6ZXI6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0cmluZyk6CisgICAgICAgIHNlbGYuaXN0ZXh0ID0gaXNpbnN0YW5jZShzdHJpbmcsIHN0cikKICAgICAgICAgc2VsZi5zdHJpbmcgPSBzdHJpbmcKICAgICAgICAgc2VsZi5pbmRleCA9IDAKICAgICAgICAgc2VsZi5fX25leHQoKQpAQCAtMTg3LDE0ICsxODgsMTQgQEAKICAgICAgICAgY2hhciA9IHNlbGYuc3RyaW5nW3NlbGYuaW5kZXg6c2VsZi5pbmRleCsxXQogICAgICAgICAjIFNwZWNpYWwgY2FzZSBmb3IgdGhlIHN0cjgsIHNpbmNlIGluZGV4aW5nIHJldHVybnMgYSBpbnRlZ2VyCiAgICAgICAgICMgWFhYIFRoaXMgaXMgb25seSBuZWVkZWQgZm9yIHRlc3RfYnVnXzkyNjA3NSBpbiB0ZXN0X3JlLnB5Ci0gICAgICAgIGlmIGNoYXIgYW5kIGlzaW5zdGFuY2UoY2hhciwgYnl0ZXMpOgorICAgICAgICBpZiBjaGFyIGFuZCBub3Qgc2VsZi5pc3RleHQ6CiAgICAgICAgICAgICBjaGFyID0gY2hyKGNoYXJbMF0pCiAgICAgICAgIGlmIGNoYXIgPT0gIlxcIjoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBjID0gc2VsZi5zdHJpbmdbc2VsZi5pbmRleCArIDFdCiAgICAgICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKICAgICAgICAgICAgICAgICByYWlzZSBlcnJvcigiYm9ndXMgZXNjYXBlIChlbmQgb2YgbGluZSkiKQotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLnN0cmluZywgYnl0ZXMpOgorICAgICAgICAgICAgaWYgbm90IHNlbGYuaXN0ZXh0OgogICAgICAgICAgICAgICAgIGMgPSBjaHIoYykKICAgICAgICAgICAgIGNoYXIgPSBjaGFyICsgYwogICAgICAgICBzZWxmLmluZGV4ID0gc2VsZi5pbmRleCArIGxlbihjaGFyKQpAQCAtMjA5LDYgKzIxMCwxNSBAQAogICAgICAgICB0aGlzID0gc2VsZi5uZXh0CiAgICAgICAgIHNlbGYuX19uZXh0KCkKICAgICAgICAgcmV0dXJuIHRoaXMKKyAgICBkZWYgZ2V0d2hpbGUoc2VsZiwgbiwgY2hhcnNldCk6CisgICAgICAgIHJlc3VsdCA9ICcnCisgICAgICAgIGZvciBfIGluIHJhbmdlKG4pOgorICAgICAgICAgICAgYyA9IHNlbGYubmV4dAorICAgICAgICAgICAgaWYgYyBub3QgaW4gY2hhcnNldDoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgcmVzdWx0ICs9IGMKKyAgICAgICAgICAgIHNlbGYuX19uZXh0KCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAogICAgIGRlZiB0ZWxsKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5pbmRleCwgc2VsZi5uZXh0CiAgICAgZGVmIHNlZWsoc2VsZiwgaW5kZXgpOgpAQCAtMjQxLDIwICsyNTEsMzAgQEAKICAgICAgICAgYyA9IGVzY2FwZVsxOjJdCiAgICAgICAgIGlmIGMgPT0gIngiOgogICAgICAgICAgICAgIyBoZXhhZGVjaW1hbCBlc2NhcGUgKGV4YWN0bHkgdHdvIGRpZ2l0cykKLSAgICAgICAgICAgIHdoaWxlIHNvdXJjZS5uZXh0IGluIEhFWERJR0lUUyBhbmQgbGVuKGVzY2FwZSkgPCA0OgotICAgICAgICAgICAgICAgIGVzY2FwZSA9IGVzY2FwZSArIHNvdXJjZS5nZXQoKQotICAgICAgICAgICAgZXNjYXBlID0gZXNjYXBlWzI6XQotICAgICAgICAgICAgaWYgbGVuKGVzY2FwZSkgIT0gMjoKLSAgICAgICAgICAgICAgICByYWlzZSBlcnJvcigiYm9ndXMgZXNjYXBlOiAlcyIgJSByZXByKCJcXCIgKyBlc2NhcGUpKQotICAgICAgICAgICAgcmV0dXJuIExJVEVSQUwsIGludChlc2NhcGUsIDE2KSAmIDB4ZmYKKyAgICAgICAgICAgIGVzY2FwZSArPSBzb3VyY2UuZ2V0d2hpbGUoMiwgSEVYRElHSVRTKQorICAgICAgICAgICAgaWYgbGVuKGVzY2FwZSkgIT0gNDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgICAgICByZXR1cm4gTElURVJBTCwgaW50KGVzY2FwZVsyOl0sIDE2KSAmIDB4ZmYKKyAgICAgICAgZWxpZiBjID09ICJ1IiBhbmQgc291cmNlLmlzdGV4dDoKKyAgICAgICAgICAgICMgdW5pY29kZSBlc2NhcGUgKGV4YWN0bHkgZm91ciBkaWdpdHMpCisgICAgICAgICAgICBlc2NhcGUgKz0gc291cmNlLmdldHdoaWxlKDQsIEhFWERJR0lUUykKKyAgICAgICAgICAgIGlmIGxlbihlc2NhcGUpICE9IDY6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICAgICAgcmV0dXJuIExJVEVSQUwsIGludChlc2NhcGVbMjpdLCAxNikKKyAgICAgICAgZWxpZiBjID09ICJVIiBhbmQgc291cmNlLmlzdGV4dDoKKyAgICAgICAgICAgICMgdW5pY29kZSBlc2NhcGUgKGV4YWN0bHkgZWlnaHQgZGlnaXRzKQorICAgICAgICAgICAgZXNjYXBlICs9IHNvdXJjZS5nZXR3aGlsZSg4LCBIRVhESUdJVFMpCisgICAgICAgICAgICBpZiBsZW4oZXNjYXBlKSAhPSAxMDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgICAgICBjID0gaW50KGVzY2FwZVsyOl0sIDE2KQorICAgICAgICAgICAgY2hyKGMpICMgcmFpc2UgVmFsdWVFcnJvciBmb3IgaW52YWxpZCBjb2RlCisgICAgICAgICAgICByZXR1cm4gTElURVJBTCwgYwogICAgICAgICBlbGlmIGMgaW4gT0NURElHSVRTOgogICAgICAgICAgICAgIyBvY3RhbCBlc2NhcGUgKHVwIHRvIHRocmVlIGRpZ2l0cykKLSAgICAgICAgICAgIHdoaWxlIHNvdXJjZS5uZXh0IGluIE9DVERJR0lUUyBhbmQgbGVuKGVzY2FwZSkgPCA0OgotICAgICAgICAgICAgICAgIGVzY2FwZSA9IGVzY2FwZSArIHNvdXJjZS5nZXQoKQotICAgICAgICAgICAgZXNjYXBlID0gZXNjYXBlWzE6XQotICAgICAgICAgICAgcmV0dXJuIExJVEVSQUwsIGludChlc2NhcGUsIDgpICYgMHhmZgorICAgICAgICAgICAgZXNjYXBlICs9IHNvdXJjZS5nZXR3aGlsZSgyLCBPQ1RESUdJVFMpCisgICAgICAgICAgICByZXR1cm4gTElURVJBTCwgaW50KGVzY2FwZVsxOl0sIDgpICYgMHhmZgogICAgICAgICBlbGlmIGMgaW4gRElHSVRTOgotICAgICAgICAgICAgcmFpc2UgZXJyb3IoImJvZ3VzIGVzY2FwZTogJXMiICUgcmVwcihlc2NhcGUpKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgogICAgICAgICBpZiBsZW4oZXNjYXBlKSA9PSAyOgogICAgICAgICAgICAgcmV0dXJuIExJVEVSQUwsIG9yZChlc2NhcGVbMV0pCiAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CkBAIC0yNzMsMTUgKzI5MywyNyBAQAogICAgICAgICBjID0gZXNjYXBlWzE6Ml0KICAgICAgICAgaWYgYyA9PSAieCI6CiAgICAgICAgICAgICAjIGhleGFkZWNpbWFsIGVzY2FwZQotICAgICAgICAgICAgd2hpbGUgc291cmNlLm5leHQgaW4gSEVYRElHSVRTIGFuZCBsZW4oZXNjYXBlKSA8IDQ6Ci0gICAgICAgICAgICAgICAgZXNjYXBlID0gZXNjYXBlICsgc291cmNlLmdldCgpCisgICAgICAgICAgICBlc2NhcGUgKz0gc291cmNlLmdldHdoaWxlKDIsIEhFWERJR0lUUykKICAgICAgICAgICAgIGlmIGxlbihlc2NhcGUpICE9IDQ6CiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgogICAgICAgICAgICAgcmV0dXJuIExJVEVSQUwsIGludChlc2NhcGVbMjpdLCAxNikgJiAweGZmCisgICAgICAgIGVsaWYgYyA9PSAidSIgYW5kIHNvdXJjZS5pc3RleHQ6CisgICAgICAgICAgICAjIHVuaWNvZGUgZXNjYXBlIChleGFjdGx5IGZvdXIgZGlnaXRzKQorICAgICAgICAgICAgZXNjYXBlICs9IHNvdXJjZS5nZXR3aGlsZSg0LCBIRVhESUdJVFMpCisgICAgICAgICAgICBpZiBsZW4oZXNjYXBlKSAhPSA2OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgICAgIHJldHVybiBMSVRFUkFMLCBpbnQoZXNjYXBlWzI6XSwgMTYpCisgICAgICAgIGVsaWYgYyA9PSAiVSIgYW5kIHNvdXJjZS5pc3RleHQ6CisgICAgICAgICAgICAjIHVuaWNvZGUgZXNjYXBlIChleGFjdGx5IGVpZ2h0IGRpZ2l0cykKKyAgICAgICAgICAgIGVzY2FwZSArPSBzb3VyY2UuZ2V0d2hpbGUoOCwgSEVYRElHSVRTKQorICAgICAgICAgICAgaWYgbGVuKGVzY2FwZSkgIT0gMTA6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICAgICAgYyA9IGludChlc2NhcGVbMjpdLCAxNikKKyAgICAgICAgICAgIGNocihjKSAjIHJhaXNlIFZhbHVlRXJyb3IgZm9yIGludmFsaWQgY29kZQorICAgICAgICAgICAgcmV0dXJuIExJVEVSQUwsIGMKICAgICAgICAgZWxpZiBjID09ICIwIjoKICAgICAgICAgICAgICMgb2N0YWwgZXNjYXBlCi0gICAgICAgICAgICB3aGlsZSBzb3VyY2UubmV4dCBpbiBPQ1RESUdJVFMgYW5kIGxlbihlc2NhcGUpIDwgNDoKLSAgICAgICAgICAgICAgICBlc2NhcGUgPSBlc2NhcGUgKyBzb3VyY2UuZ2V0KCkKKyAgICAgICAgICAgIGVzY2FwZSArPSBzb3VyY2UuZ2V0d2hpbGUoMiwgT0NURElHSVRTKQogICAgICAgICAgICAgcmV0dXJuIExJVEVSQUwsIGludChlc2NhcGVbMTpdLCA4KSAmIDB4ZmYKICAgICAgICAgZWxpZiBjIGluIERJR0lUUzoKICAgICAgICAgICAgICMgb2N0YWwgZXNjYXBlICpvciogZGVjaW1hbCBncm91cCByZWZlcmVuY2UgKHNpZ2gpCkBAIC03OTEsNyArODIzLDcgQEAKICAgICBlbHNlOgogICAgICAgICAjIFRoZSB0b2tlbml6ZXIgaW1wbGljaXRseSBkZWNvZGVzIGJ5dGVzIG9iamVjdHMgYXMgbGF0aW4tMSwgd2UgbXVzdAogICAgICAgICAjIHRoZXJlZm9yZSByZS1lbmNvZGUgdGhlIGZpbmFsIHJlcHJlc2VudGF0aW9uLgotICAgICAgICBlbmNvZGUgPSBsYW1iZGEgeDogeC5lbmNvZGUoJ2xhdGluMScpCisgICAgICAgIGVuY29kZSA9IGxhbWJkYSB4OiB4LmVuY29kZSgnbGF0aW4tMScpCiAgICAgZm9yIGMsIHMgaW4gcDoKICAgICAgICAgaWYgYyBpcyBNQVJLOgogICAgICAgICAgICAgZ3JvdXBzYXBwZW5kKChpLCBzKSkKZGlmZiAtLWdpdCBhL0xpYi9zc2wucHkgYi9MaWIvc3NsLnB5CmluZGV4IDgxMzcyMzEuLjMxNjJmNTYgMTAwNjQ0Ci0tLSBhL0xpYi9zc2wucHkKKysrIGIvTGliL3NzbC5weQpAQCAtNjAsMTAgKzYwLDI1IEBACiBpbXBvcnQgX3NzbCAgICAgICAgICAgICAjIGlmIHdlIGNhbid0IGltcG9ydCBpdCwgbGV0IHRoZSBlcnJvciBwcm9wYWdhdGUKIAogZnJvbSBfc3NsIGltcG9ydCBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSLCBPUEVOU1NMX1ZFUlNJT05fSU5GTywgT1BFTlNTTF9WRVJTSU9OCi1mcm9tIF9zc2wgaW1wb3J0IF9TU0xDb250ZXh0LCBTU0xFcnJvcgorZnJvbSBfc3NsIGltcG9ydCBfU1NMQ29udGV4dAorZnJvbSBfc3NsIGltcG9ydCAoCisgICAgU1NMRXJyb3IsIFNTTFplcm9SZXR1cm5FcnJvciwgU1NMV2FudFJlYWRFcnJvciwgU1NMV2FudFdyaXRlRXJyb3IsCisgICAgU1NMU3lzY2FsbEVycm9yLCBTU0xFT0ZFcnJvciwKKyAgICApCiBmcm9tIF9zc2wgaW1wb3J0IENFUlRfTk9ORSwgQ0VSVF9PUFRJT05BTCwgQ0VSVF9SRVFVSVJFRAotZnJvbSBfc3NsIGltcG9ydCBPUF9BTEwsIE9QX05PX1NTTHYyLCBPUF9OT19TU0x2MywgT1BfTk9fVExTdjEKLWZyb20gX3NzbCBpbXBvcnQgUkFORF9zdGF0dXMsIFJBTkRfZWdkLCBSQU5EX2FkZAorZnJvbSBfc3NsIGltcG9ydCAoCisgICAgT1BfQUxMLCBPUF9OT19TU0x2MiwgT1BfTk9fU1NMdjMsIE9QX05PX1RMU3YxLAorICAgIE9QX0NJUEhFUl9TRVJWRVJfUFJFRkVSRU5DRSwgT1BfU0lOR0xFX0RIX1VTRQorICAgICkKK3RyeToKKyAgICBmcm9tIF9zc2wgaW1wb3J0IE9QX05PX0NPTVBSRVNTSU9OCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcGFzcwordHJ5OgorICAgIGZyb20gX3NzbCBpbXBvcnQgT1BfU0lOR0xFX0VDREhfVVNFCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgcGFzcworZnJvbSBfc3NsIGltcG9ydCBSQU5EX3N0YXR1cywgUkFORF9lZ2QsIFJBTkRfYWRkLCBSQU5EX2J5dGVzLCBSQU5EX3BzZXVkb19ieXRlcwogZnJvbSBfc3NsIGltcG9ydCAoCiAgICAgU1NMX0VSUk9SX1pFUk9fUkVUVVJOLAogICAgIFNTTF9FUlJPUl9XQU5UX1JFQUQsCkBAIC03NSw4ICs5MCw5IEBACiAgICAgU1NMX0VSUk9SX0VPRiwKICAgICBTU0xfRVJST1JfSU5WQUxJRF9FUlJPUl9DT0RFLAogICAgICkKLWZyb20gX3NzbCBpbXBvcnQgSEFTX1NOSQotZnJvbSBfc3NsIGltcG9ydCBQUk9UT0NPTF9TU0x2MywgUFJPVE9DT0xfU1NMdjIzLCBQUk9UT0NPTF9UTFN2MQorZnJvbSBfc3NsIGltcG9ydCBIQVNfU05JLCBIQVNfRUNESCwgSEFTX05QTgorZnJvbSBfc3NsIGltcG9ydCAoUFJPVE9DT0xfU1NMdjMsIFBST1RPQ09MX1NTTHYyMywKKyAgICAgICAgICAgICAgICAgIFBST1RPQ09MX1RMU3YxKQogZnJvbSBfc3NsIGltcG9ydCBfT1BFTlNTTF9BUElfVkVSU0lPTgogCiBfUFJPVE9DT0xfTkFNRVMgPSB7CkBAIC05NCwxMSArMTEwLDE2IEBACiAKIGZyb20gc29ja2V0IGltcG9ydCBnZXRuYW1laW5mbyBhcyBfZ2V0bmFtZWluZm8KIGZyb20gc29ja2V0IGltcG9ydCBlcnJvciBhcyBzb2NrZXRfZXJyb3IKLWZyb20gc29ja2V0IGltcG9ydCBzb2NrZXQsIEFGX0lORVQsIFNPQ0tfU1RSRUFNCitmcm9tIHNvY2tldCBpbXBvcnQgc29ja2V0LCBBRl9JTkVULCBTT0NLX1NUUkVBTSwgY3JlYXRlX2Nvbm5lY3Rpb24KIGltcG9ydCBiYXNlNjQgICAgICAgICMgZm9yIERFUi10by1QRU0gdHJhbnNsYXRpb24KIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCBlcnJubwogCitpZiBfc3NsLkhBU19UTFNfVU5JUVVFOgorICAgIENIQU5ORUxfQklORElOR19UWVBFUyA9IFsndGxzLXVuaXF1ZSddCitlbHNlOgorICAgIENIQU5ORUxfQklORElOR19UWVBFUyA9IFtdCisKICMgRGlzYWJsZSB3ZWFrIG9yIGluc2VjdXJlIGNpcGhlcnMgYnkgZGVmYXVsdAogIyAoT3BlblNTTCdzIGRlZmF1bHQgc2V0dGluZyBpcyAnREVGQVVMVDohYU5VTEw6IWVOVUxMJykKIF9ERUZBVUxUX0NJUEhFUlMgPSAnREVGQVVMVDohYU5VTEw6IWVOVUxMOiFMT1c6IUVYUE9SVDohU1NMdjInCkBAIC0xODgsNiArMjA5LDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2hvc3RuYW1lPXNlcnZlcl9ob3N0bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dD1zZWxmKQogCisgICAgZGVmIHNldF9ucG5fcHJvdG9jb2xzKHNlbGYsIG5wbl9wcm90b2NvbHMpOgorICAgICAgICBwcm90b3MgPSBieXRlYXJyYXkoKQorICAgICAgICBmb3IgcHJvdG9jb2wgaW4gbnBuX3Byb3RvY29sczoKKyAgICAgICAgICAgIGIgPSBieXRlcyhwcm90b2NvbCwgJ2FzY2lpJykKKyAgICAgICAgICAgIGlmIGxlbihiKSA9PSAwIG9yIGxlbihiKSA+IDI1NToKKyAgICAgICAgICAgICAgICByYWlzZSBTU0xFcnJvcignTlBOIHByb3RvY29scyBtdXN0IGJlIDEgdG8gMjU1IGluIGxlbmd0aCcpCisgICAgICAgICAgICBwcm90b3MuYXBwZW5kKGxlbihiKSkKKyAgICAgICAgICAgIHByb3Rvcy5leHRlbmQoYikKKworICAgICAgICBzZWxmLl9zZXRfbnBuX3Byb3RvY29scyhwcm90b3MpCisKIAogY2xhc3MgU1NMU29ja2V0KHNvY2tldCk6CiAgICAgIiIiVGhpcyBjbGFzcyBpbXBsZW1lbnRzIGEgc3VidHlwZSBvZiBzb2NrZXQuc29ja2V0IHRoYXQgd3JhcHMKQEAgLTE5OSw3ICsyMzEsNyBAQAogICAgICAgICAgICAgICAgICBzc2xfdmVyc2lvbj1QUk9UT0NPTF9TU0x2MjMsIGNhX2NlcnRzPU5vbmUsCiAgICAgICAgICAgICAgICAgIGRvX2hhbmRzaGFrZV9vbl9jb25uZWN0PVRydWUsCiAgICAgICAgICAgICAgICAgIGZhbWlseT1BRl9JTkVULCB0eXBlPVNPQ0tfU1RSRUFNLCBwcm90bz0wLCBmaWxlbm89Tm9uZSwKLSAgICAgICAgICAgICAgICAgc3VwcHJlc3NfcmFnZ2VkX2VvZnM9VHJ1ZSwgY2lwaGVycz1Ob25lLAorICAgICAgICAgICAgICAgICBzdXBwcmVzc19yYWdnZWRfZW9mcz1UcnVlLCBucG5fcHJvdG9jb2xzPU5vbmUsIGNpcGhlcnM9Tm9uZSwKICAgICAgICAgICAgICAgICAgc2VydmVyX2hvc3RuYW1lPU5vbmUsCiAgICAgICAgICAgICAgICAgIF9jb250ZXh0PU5vbmUpOgogCkBAIC0yMTksNiArMjUxLDggQEAKICAgICAgICAgICAgICAgICBzZWxmLmNvbnRleHQubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhX2NlcnRzKQogICAgICAgICAgICAgaWYgY2VydGZpbGU6CiAgICAgICAgICAgICAgICAgc2VsZi5jb250ZXh0LmxvYWRfY2VydF9jaGFpbihjZXJ0ZmlsZSwga2V5ZmlsZSkKKyAgICAgICAgICAgIGlmIG5wbl9wcm90b2NvbHM6CisgICAgICAgICAgICAgICAgc2VsZi5jb250ZXh0LnNldF9ucG5fcHJvdG9jb2xzKG5wbl9wcm90b2NvbHMpCiAgICAgICAgICAgICBpZiBjaXBoZXJzOgogICAgICAgICAgICAgICAgIHNlbGYuY29udGV4dC5zZXRfY2lwaGVycyhjaXBoZXJzKQogICAgICAgICAgICAgc2VsZi5rZXlmaWxlID0ga2V5ZmlsZQpAQCAtMzE5LDYgKzM1MywxMyBAQAogICAgICAgICBzZWxmLl9jaGVja0Nsb3NlZCgpCiAgICAgICAgIHJldHVybiBzZWxmLl9zc2xvYmoucGVlcl9jZXJ0aWZpY2F0ZShiaW5hcnlfZm9ybSkKIAorICAgIGRlZiBzZWxlY3RlZF9ucG5fcHJvdG9jb2woc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrQ2xvc2VkKCkKKyAgICAgICAgaWYgbm90IHNlbGYuX3NzbG9iaiBvciBub3QgX3NzbC5IQVNfTlBOOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zc2xvYmouc2VsZWN0ZWRfbnBuX3Byb3RvY29sKCkKKwogICAgIGRlZiBjaXBoZXIoc2VsZik6CiAgICAgICAgIHNlbGYuX2NoZWNrQ2xvc2VkKCkKICAgICAgICAgaWYgbm90IHNlbGYuX3NzbG9iajoKQEAgLTMyNiw2ICszNjcsMTMgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9zc2xvYmouY2lwaGVyKCkKIAorICAgIGRlZiBjb21wcmVzc2lvbihzZWxmKToKKyAgICAgICAgc2VsZi5fY2hlY2tDbG9zZWQoKQorICAgICAgICBpZiBub3Qgc2VsZi5fc3Nsb2JqOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9zc2xvYmouY29tcHJlc3Npb24oKQorCiAgICAgZGVmIHNlbmQoc2VsZiwgZGF0YSwgZmxhZ3M9MCk6CiAgICAgICAgIHNlbGYuX2NoZWNrQ2xvc2VkKCkKICAgICAgICAgaWYgc2VsZi5fc3Nsb2JqOgpAQCAtMzU4LDYgKzQwNiwxMiBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIHNvY2tldC5zZW5kdG8oc2VsZiwgZGF0YSwgZmxhZ3Nfb3JfYWRkciwgYWRkcikKIAorICAgIGRlZiBzZW5kbXNnKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICMgRW5zdXJlIHByb2dyYW1zIGRvbid0IHNlbmQgZGF0YSB1bmVuY3J5cHRlZCBpZiB0aGV5IHRyeSB0bworICAgICAgICAjIHVzZSB0aGlzIG1ldGhvZC4KKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigic2VuZG1zZyBub3QgYWxsb3dlZCBvbiBpbnN0YW5jZXMgb2YgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9fY2xhc3NfXykKKwogICAgIGRlZiBzZW5kYWxsKHNlbGYsIGRhdGEsIGZsYWdzPTApOgogICAgICAgICBzZWxmLl9jaGVja0Nsb3NlZCgpCiAgICAgICAgIGlmIHNlbGYuX3NzbG9iajoKQEAgLTQxNiw2ICs0NzAsMTQgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBzb2NrZXQucmVjdmZyb21faW50byhzZWxmLCBidWZmZXIsIG5ieXRlcywgZmxhZ3MpCiAKKyAgICBkZWYgcmVjdm1zZyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJyZWN2bXNnIG5vdCBhbGxvd2VkIG9uIGluc3RhbmNlcyBvZiAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX19jbGFzc19fKQorCisgICAgZGVmIHJlY3Ztc2dfaW50byhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJyZWN2bXNnX2ludG8gbm90IGFsbG93ZWQgb24gaW5zdGFuY2VzIG9mICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMiICUgc2VsZi5fX2NsYXNzX18pCisKICAgICBkZWYgcGVuZGluZyhzZWxmKToKICAgICAgICAgc2VsZi5fY2hlY2tDbG9zZWQoKQogICAgICAgICBpZiBzZWxmLl9zc2xvYmo6CkBAIC01MDIsNiArNTY0LDIxIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRvX2hhbmRzaGFrZV9vbl9jb25uZWN0KSwKICAgICAgICAgICAgICAgICBhZGRyKQogCisgICAgZGVmIGdldF9jaGFubmVsX2JpbmRpbmcoc2VsZiwgY2JfdHlwZT0idGxzLXVuaXF1ZSIpOgorICAgICAgICAiIiJHZXQgY2hhbm5lbCBiaW5kaW5nIGRhdGEgZm9yIGN1cnJlbnQgY29ubmVjdGlvbi4gIFJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgaWYgdGhlIHJlcXVlc3RlZCBgY2JfdHlwZWAgaXMgbm90IHN1cHBvcnRlZC4gIFJldHVybiBieXRlcyBvZiB0aGUgZGF0YQorICAgICAgICBvciBOb25lIGlmIHRoZSBkYXRhIGlzIG5vdCBhdmFpbGFibGUgKGUuZy4gYmVmb3JlIHRoZSBoYW5kc2hha2UpLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgY2JfdHlwZSBub3QgaW4gQ0hBTk5FTF9CSU5ESU5HX1RZUEVTOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5zdXBwb3J0ZWQgY2hhbm5lbCBiaW5kaW5nIHR5cGUiKQorICAgICAgICBpZiBjYl90eXBlICE9ICJ0bHMtdW5pcXVlIjoKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInswfSBjaGFubmVsIGJpbmRpbmcgdHlwZSBub3QgaW1wbGVtZW50ZWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvcm1hdChjYl90eXBlKSkKKyAgICAgICAgaWYgc2VsZi5fc3Nsb2JqIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gc2VsZi5fc3Nsb2JqLnRsc191bmlxdWVfY2IoKQorCiAgICAgZGVmIF9fZGVsX18oc2VsZik6CiAgICAgICAgICMgc3lzLnN0ZGVyci53cml0ZSgiX19kZWxfXyBvbiAlc1xuIiAlIHJlcHIoc2VsZikpCiAgICAgICAgIHNlbGYuX3JlYWxfY2xvc2UoKQpAQCAtNTExLDcgKzU4OCw4IEBACiAgICAgICAgICAgICAgICAgc2VydmVyX3NpZGU9RmFsc2UsIGNlcnRfcmVxcz1DRVJUX05PTkUsCiAgICAgICAgICAgICAgICAgc3NsX3ZlcnNpb249UFJPVE9DT0xfU1NMdjIzLCBjYV9jZXJ0cz1Ob25lLAogICAgICAgICAgICAgICAgIGRvX2hhbmRzaGFrZV9vbl9jb25uZWN0PVRydWUsCi0gICAgICAgICAgICAgICAgc3VwcHJlc3NfcmFnZ2VkX2VvZnM9VHJ1ZSwgY2lwaGVycz1Ob25lKToKKyAgICAgICAgICAgICAgICBzdXBwcmVzc19yYWdnZWRfZW9mcz1UcnVlLAorICAgICAgICAgICAgICAgIGNpcGhlcnM9Tm9uZSk6CiAKICAgICByZXR1cm4gU1NMU29ja2V0KHNvY2s9c29jaywga2V5ZmlsZT1rZXlmaWxlLCBjZXJ0ZmlsZT1jZXJ0ZmlsZSwKICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9zaWRlPXNlcnZlcl9zaWRlLCBjZXJ0X3JlcXM9Y2VydF9yZXFzLApAQCAtNTY2LDkgKzY0NCw5IEBACiAgICAgICAgIGNlcnRfcmVxcyA9IENFUlRfUkVRVUlSRUQKICAgICBlbHNlOgogICAgICAgICBjZXJ0X3JlcXMgPSBDRVJUX05PTkUKLSAgICBzID0gd3JhcF9zb2NrZXQoc29ja2V0KCksIHNzbF92ZXJzaW9uPXNzbF92ZXJzaW9uLAorICAgIHMgPSBjcmVhdGVfY29ubmVjdGlvbihhZGRyKQorICAgIHMgPSB3cmFwX3NvY2tldChzLCBzc2xfdmVyc2lvbj1zc2xfdmVyc2lvbiwKICAgICAgICAgICAgICAgICAgICAgY2VydF9yZXFzPWNlcnRfcmVxcywgY2FfY2VydHM9Y2FfY2VydHMpCi0gICAgcy5jb25uZWN0KGFkZHIpCiAgICAgZGVyY2VydCA9IHMuZ2V0cGVlcmNlcnQoVHJ1ZSkKICAgICBzLmNsb3NlKCkKICAgICByZXR1cm4gREVSX2NlcnRfdG9fUEVNX2NlcnQoZGVyY2VydCkKZGlmZiAtLWdpdCBhL0xpYi9zdGF0LnB5IGIvTGliL3N0YXQucHkKaW5kZXggNzhjY2Q1ZS4uNzA0YWRmZSAxMDA2NDQKLS0tIGEvTGliL3N0YXQucHkKKysrIGIvTGliL3N0YXQucHkKQEAgLTE5LDc4ICsxOSwxMzEgQEAKICMgRXh0cmFjdCBiaXRzIGZyb20gdGhlIG1vZGUKIAogZGVmIFNfSU1PREUobW9kZSk6CisgICAgIiIiUmV0dXJuIHRoZSBwb3J0aW9uIG9mIHRoZSBmaWxlJ3MgbW9kZSB0aGF0IGNhbiBiZSBzZXQgYnkKKyAgICBvcy5jaG1vZCgpLgorICAgICIiIgogICAgIHJldHVybiBtb2RlICYgMG83Nzc3CiAKIGRlZiBTX0lGTVQobW9kZSk6CisgICAgIiIiUmV0dXJuIHRoZSBwb3J0aW9uIG9mIHRoZSBmaWxlJ3MgbW9kZSB0aGF0IGRlc2NyaWJlcyB0aGUKKyAgICBmaWxlIHR5cGUuCisgICAgIiIiCiAgICAgcmV0dXJuIG1vZGUgJiAwbzE3MDAwMAogCiAjIENvbnN0YW50cyB1c2VkIGFzIFNfSUZNVCgpIGZvciB2YXJpb3VzIGZpbGUgdHlwZXMKICMgKG5vdCBhbGwgYXJlIGltcGxlbWVudGVkIG9uIGFsbCBzeXN0ZW1zKQogCi1TX0lGRElSICA9IDBvMDQwMDAwCi1TX0lGQ0hSICA9IDBvMDIwMDAwCi1TX0lGQkxLICA9IDBvMDYwMDAwCi1TX0lGUkVHICA9IDBvMTAwMDAwCi1TX0lGSUZPICA9IDBvMDEwMDAwCi1TX0lGTE5LICA9IDBvMTIwMDAwCi1TX0lGU09DSyA9IDBvMTQwMDAwCitTX0lGRElSICA9IDBvMDQwMDAwICAjIGRpcmVjdG9yeQorU19JRkNIUiAgPSAwbzAyMDAwMCAgIyBjaGFyYWN0ZXIgZGV2aWNlCitTX0lGQkxLICA9IDBvMDYwMDAwICAjIGJsb2NrIGRldmljZQorU19JRlJFRyAgPSAwbzEwMDAwMCAgIyByZWd1bGFyIGZpbGUKK1NfSUZJRk8gID0gMG8wMTAwMDAgICMgZmlmbyAobmFtZWQgcGlwZSkKK1NfSUZMTksgID0gMG8xMjAwMDAgICMgc3ltYm9saWMgbGluaworU19JRlNPQ0sgPSAwbzE0MDAwMCAgIyBzb2NrZXQgZmlsZQogCiAjIEZ1bmN0aW9ucyB0byB0ZXN0IGZvciBlYWNoIGZpbGUgdHlwZQogCiBkZWYgU19JU0RJUihtb2RlKToKKyAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBtb2RlIGlzIGZyb20gYSBkaXJlY3RvcnkuIiIiCiAgICAgcmV0dXJuIFNfSUZNVChtb2RlKSA9PSBTX0lGRElSCiAKIGRlZiBTX0lTQ0hSKG1vZGUpOgorICAgICIiIlJldHVybiBUcnVlIGlmIG1vZGUgaXMgZnJvbSBhIGNoYXJhY3RlciBzcGVjaWFsIGRldmljZSBmaWxlLiIiIgogICAgIHJldHVybiBTX0lGTVQobW9kZSkgPT0gU19JRkNIUgogCiBkZWYgU19JU0JMSyhtb2RlKToKKyAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBtb2RlIGlzIGZyb20gYSBibG9jayBzcGVjaWFsIGRldmljZSBmaWxlLiIiIgogICAgIHJldHVybiBTX0lGTVQobW9kZSkgPT0gU19JRkJMSwogCiBkZWYgU19JU1JFRyhtb2RlKToKKyAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBtb2RlIGlzIGZyb20gYSByZWd1bGFyIGZpbGUuIiIiCiAgICAgcmV0dXJuIFNfSUZNVChtb2RlKSA9PSBTX0lGUkVHCiAKIGRlZiBTX0lTRklGTyhtb2RlKToKKyAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBtb2RlIGlzIGZyb20gYSBGSUZPIChuYW1lZCBwaXBlKS4iIiIKICAgICByZXR1cm4gU19JRk1UKG1vZGUpID09IFNfSUZJRk8KIAogZGVmIFNfSVNMTksobW9kZSk6CisgICAgIiIiUmV0dXJuIFRydWUgaWYgbW9kZSBpcyBmcm9tIGEgc3ltYm9saWMgbGluay4iIiIKICAgICByZXR1cm4gU19JRk1UKG1vZGUpID09IFNfSUZMTksKIAogZGVmIFNfSVNTT0NLKG1vZGUpOgorICAgICIiIlJldHVybiBUcnVlIGlmIG1vZGUgaXMgZnJvbSBhIHNvY2tldC4iIiIKICAgICByZXR1cm4gU19JRk1UKG1vZGUpID09IFNfSUZTT0NLCiAKICMgTmFtZXMgZm9yIHBlcm1pc3Npb24gYml0cwogCi1TX0lTVUlEID0gMG80MDAwCi1TX0lTR0lEID0gMG8yMDAwCi1TX0VORk1UID0gU19JU0dJRAotU19JU1ZUWCA9IDBvMTAwMAotU19JUkVBRCA9IDBvMDQwMAotU19JV1JJVEUgPSAwbzAyMDAKLVNfSUVYRUMgPSAwbzAxMDAKLVNfSVJXWFUgPSAwbzA3MDAKLVNfSVJVU1IgPSAwbzA0MDAKLVNfSVdVU1IgPSAwbzAyMDAKLVNfSVhVU1IgPSAwbzAxMDAKLVNfSVJXWEcgPSAwbzAwNzAKLVNfSVJHUlAgPSAwbzAwNDAKLVNfSVdHUlAgPSAwbzAwMjAKLVNfSVhHUlAgPSAwbzAwMTAKLVNfSVJXWE8gPSAwbzAwMDcKLVNfSVJPVEggPSAwbzAwMDQKLVNfSVdPVEggPSAwbzAwMDIKLVNfSVhPVEggPSAwbzAwMDEKK1NfSVNVSUQgPSAwbzQwMDAgICMgc2V0IFVJRCBiaXQKK1NfSVNHSUQgPSAwbzIwMDAgICMgc2V0IEdJRCBiaXQKK1NfRU5GTVQgPSBTX0lTR0lEICMgZmlsZSBsb2NraW5nIGVuZm9yY2VtZW50CitTX0lTVlRYID0gMG8xMDAwICAjIHN0aWNreSBiaXQKK1NfSVJFQUQgPSAwbzA0MDAgICMgVW5peCBWNyBzeW5vbnltIGZvciBTX0lSVVNSCitTX0lXUklURSA9IDBvMDIwMCAjIFVuaXggVjcgc3lub255bSBmb3IgU19JV1VTUgorU19JRVhFQyA9IDBvMDEwMCAgIyBVbml4IFY3IHN5bm9ueW0gZm9yIFNfSVhVU1IKK1NfSVJXWFUgPSAwbzA3MDAgICMgbWFzayBmb3Igb3duZXIgcGVybWlzc2lvbnMKK1NfSVJVU1IgPSAwbzA0MDAgICMgcmVhZCBieSBvd25lcgorU19JV1VTUiA9IDBvMDIwMCAgIyB3cml0ZSBieSBvd25lcgorU19JWFVTUiA9IDBvMDEwMCAgIyBleGVjdXRlIGJ5IG93bmVyCitTX0lSV1hHID0gMG8wMDcwICAjIG1hc2sgZm9yIGdyb3VwIHBlcm1pc3Npb25zCitTX0lSR1JQID0gMG8wMDQwICAjIHJlYWQgYnkgZ3JvdXAKK1NfSVdHUlAgPSAwbzAwMjAgICMgd3JpdGUgYnkgZ3JvdXAKK1NfSVhHUlAgPSAwbzAwMTAgICMgZXhlY3V0ZSBieSBncm91cAorU19JUldYTyA9IDBvMDAwNyAgIyBtYXNrIGZvciBvdGhlcnMgKG5vdCBpbiBncm91cCkgcGVybWlzc2lvbnMKK1NfSVJPVEggPSAwbzAwMDQgICMgcmVhZCBieSBvdGhlcnMKK1NfSVdPVEggPSAwbzAwMDIgICMgd3JpdGUgYnkgb3RoZXJzCitTX0lYT1RIID0gMG8wMDAxICAjIGV4ZWN1dGUgYnkgb3RoZXJzCiAKICMgTmFtZXMgZm9yIGZpbGUgZmxhZ3MKIAotVUZfTk9EVU1QICAgID0gMHgwMDAwMDAwMQotVUZfSU1NVVRBQkxFID0gMHgwMDAwMDAwMgotVUZfQVBQRU5EICAgID0gMHgwMDAwMDAwNAotVUZfT1BBUVVFICAgID0gMHgwMDAwMDAwOAotVUZfTk9VTkxJTksgID0gMHgwMDAwMDAxMAotVUZfQ09NUFJFU1NFRCA9IDB4MDAwMDAwMjAgICMgT1MgWDogZmlsZSBpcyBoZnMtY29tcHJlc3NlZAotVUZfSElEREVOICAgID0gMHgwMDAwODAwMCAgICMgT1MgWDogZmlsZSBzaG91bGQgbm90IGJlIGRpc3BsYXllZAotU0ZfQVJDSElWRUQgID0gMHgwMDAxMDAwMAotU0ZfSU1NVVRBQkxFID0gMHgwMDAyMDAwMAotU0ZfQVBQRU5EICAgID0gMHgwMDA0MDAwMAotU0ZfTk9VTkxJTksgID0gMHgwMDEwMDAwMAotU0ZfU05BUFNIT1QgID0gMHgwMDIwMDAwMAorVUZfTk9EVU1QICAgID0gMHgwMDAwMDAwMSAgIyBkbyBub3QgZHVtcCBmaWxlCitVRl9JTU1VVEFCTEUgPSAweDAwMDAwMDAyICAjIGZpbGUgbWF5IG5vdCBiZSBjaGFuZ2VkCitVRl9BUFBFTkQgICAgPSAweDAwMDAwMDA0ICAjIGZpbGUgbWF5IG9ubHkgYmUgYXBwZW5kZWQgdG8KK1VGX09QQVFVRSAgICA9IDB4MDAwMDAwMDggICMgZGlyZWN0b3J5IGlzIG9wYXF1ZSB3aGVuIHZpZXdlZCB0aHJvdWdoIGEgdW5pb24gc3RhY2sKK1VGX05PVU5MSU5LICA9IDB4MDAwMDAwMTAgICMgZmlsZSBtYXkgbm90IGJlIHJlbmFtZWQgb3IgZGVsZXRlZAorVUZfQ09NUFJFU1NFRCA9IDB4MDAwMDAwMjAgIyBPUyBYOiBmaWxlIGlzIGhmcy1jb21wcmVzc2VkCitVRl9ISURERU4gICAgPSAweDAwMDA4MDAwICAjIE9TIFg6IGZpbGUgc2hvdWxkIG5vdCBiZSBkaXNwbGF5ZWQKK1NGX0FSQ0hJVkVEICA9IDB4MDAwMTAwMDAgICMgZmlsZSBtYXkgYmUgYXJjaGl2ZWQKK1NGX0lNTVVUQUJMRSA9IDB4MDAwMjAwMDAgICMgZmlsZSBtYXkgbm90IGJlIGNoYW5nZWQKK1NGX0FQUEVORCAgICA9IDB4MDAwNDAwMDAgICMgZmlsZSBtYXkgb25seSBiZSBhcHBlbmRlZCB0bworU0ZfTk9VTkxJTksgID0gMHgwMDEwMDAwMCAgIyBmaWxlIG1heSBub3QgYmUgcmVuYW1lZCBvciBkZWxldGVkCitTRl9TTkFQU0hPVCAgPSAweDAwMjAwMDAwICAjIGZpbGUgaXMgYSBzbmFwc2hvdCBmaWxlCisKKworX2ZpbGVtb2RlX3RhYmxlID0gKAorICAgICgoU19JRkxOSywgICAgICAgICAibCIpLAorICAgICAoU19JRlJFRywgICAgICAgICAiLSIpLAorICAgICAoU19JRkJMSywgICAgICAgICAiYiIpLAorICAgICAoU19JRkRJUiwgICAgICAgICAiZCIpLAorICAgICAoU19JRkNIUiwgICAgICAgICAiYyIpLAorICAgICAoU19JRklGTywgICAgICAgICAicCIpKSwKKworICAgICgoU19JUlVTUiwgICAgICAgICAiciIpLCksCisgICAgKChTX0lXVVNSLCAgICAgICAgICJ3IiksKSwKKyAgICAoKFNfSVhVU1J8U19JU1VJRCwgInMiKSwKKyAgICAgKFNfSVNVSUQsICAgICAgICAgIlMiKSwKKyAgICAgKFNfSVhVU1IsICAgICAgICAgIngiKSksCisKKyAgICAoKFNfSVJHUlAsICAgICAgICAgInIiKSwpLAorICAgICgoU19JV0dSUCwgICAgICAgICAidyIpLCksCisgICAgKChTX0lYR1JQfFNfSVNHSUQsICJzIiksCisgICAgIChTX0lTR0lELCAgICAgICAgICJTIiksCisgICAgIChTX0lYR1JQLCAgICAgICAgICJ4IikpLAorCisgICAgKChTX0lST1RILCAgICAgICAgICJyIiksKSwKKyAgICAoKFNfSVdPVEgsICAgICAgICAgInciKSwpLAorICAgICgoU19JWE9USHxTX0lTVlRYLCAidCIpLAorICAgICAoU19JU1ZUWCwgICAgICAgICAiVCIpLAorICAgICAoU19JWE9USCwgICAgICAgICAieCIpKQorKQorCitkZWYgZmlsZW1vZGUobW9kZSk6CisgICAgIiIiQ29udmVydCBhIGZpbGUncyBtb2RlIHRvIGEgc3RyaW5nIG9mIHRoZSBmb3JtICctcnd4cnd4cnd4Jy4iIiIKKyAgICBwZXJtID0gW10KKyAgICBmb3IgdGFibGUgaW4gX2ZpbGVtb2RlX3RhYmxlOgorICAgICAgICBmb3IgYml0LCBjaGFyIGluIHRhYmxlOgorICAgICAgICAgICAgaWYgbW9kZSAmIGJpdCA9PSBiaXQ6CisgICAgICAgICAgICAgICAgcGVybS5hcHBlbmQoY2hhcikKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcGVybS5hcHBlbmQoIi0iKQorICAgIHJldHVybiAiIi5qb2luKHBlcm0pCmRpZmYgLS1naXQgYS9MaWIvc3RyaW5nLnB5IGIvTGliL3N0cmluZy5weQppbmRleCBlZjAzMzRjLi44YmNkMWRjIDEwMDY0NAotLS0gYS9MaWIvc3RyaW5nLnB5CisrKyBiL0xpYi9zdHJpbmcucHkKQEAgLTQ2LDIzICs0Niw3IEBACiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiBpbXBvcnQgcmUgYXMgX3JlCi0KLWNsYXNzIF9tdWx0aW1hcDoKLSAgICAiIiJIZWxwZXIgY2xhc3MgZm9yIGNvbWJpbmluZyBtdWx0aXBsZSBtYXBwaW5ncy4KLQotICAgIFVzZWQgYnkgLntzYWZlXyx9c3Vic3RpdHV0ZSgpIHRvIGNvbWJpbmUgdGhlIG1hcHBpbmcgYW5kIGtleXdvcmQKLSAgICBhcmd1bWVudHMuCi0gICAgIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHByaW1hcnksIHNlY29uZGFyeSk6Ci0gICAgICAgIHNlbGYuX3ByaW1hcnkgPSBwcmltYXJ5Ci0gICAgICAgIHNlbGYuX3NlY29uZGFyeSA9IHNlY29uZGFyeQotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcmltYXJ5W2tleV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3NlY29uZGFyeVtrZXldCi0KK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IENoYWluTWFwCiAKIGNsYXNzIF9UZW1wbGF0ZU1ldGFjbGFzcyh0eXBlKToKICAgICBwYXR0ZXJuID0gciIiIgpAQCAtMTAwLDcgKzg0LDcgQEAKIAogICAgIGRlZiBfaW52YWxpZChzZWxmLCBtbyk6CiAgICAgICAgIGkgPSBtby5zdGFydCgnaW52YWxpZCcpCi0gICAgICAgIGxpbmVzID0gc2VsZi50ZW1wbGF0ZVs6aV0uc3BsaXRsaW5lcyhUcnVlKQorICAgICAgICBsaW5lcyA9IHNlbGYudGVtcGxhdGVbOmldLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkKICAgICAgICAgaWYgbm90IGxpbmVzOgogICAgICAgICAgICAgY29sbm8gPSAxCiAgICAgICAgICAgICBsaW5lbm8gPSAxCkBAIC0xMTYsNyArMTAwLDcgQEAKICAgICAgICAgaWYgbm90IGFyZ3M6CiAgICAgICAgICAgICBtYXBwaW5nID0ga3dzCiAgICAgICAgIGVsaWYga3dzOgotICAgICAgICAgICAgbWFwcGluZyA9IF9tdWx0aW1hcChrd3MsIGFyZ3NbMF0pCisgICAgICAgICAgICBtYXBwaW5nID0gQ2hhaW5NYXAoa3dzLCBhcmdzWzBdKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbWFwcGluZyA9IGFyZ3NbMF0KICAgICAgICAgIyBIZWxwZXIgZnVuY3Rpb24gZm9yIC5zdWIoKQpAQCAtMTQyLDcgKzEyNiw3IEBACiAgICAgICAgIGlmIG5vdCBhcmdzOgogICAgICAgICAgICAgbWFwcGluZyA9IGt3cwogICAgICAgICBlbGlmIGt3czoKLSAgICAgICAgICAgIG1hcHBpbmcgPSBfbXVsdGltYXAoa3dzLCBhcmdzWzBdKQorICAgICAgICAgICAgbWFwcGluZyA9IENoYWluTWFwKGt3cywgYXJnc1swXSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG1hcHBpbmcgPSBhcmdzWzBdCiAgICAgICAgICMgSGVscGVyIGZ1bmN0aW9uIGZvciAuc3ViKCkKZGlmZiAtLWdpdCBhL0xpYi9zdWJwcm9jZXNzLnB5IGIvTGliL3N1YnByb2Nlc3MucHkKaW5kZXggMTc5ZjQxYS4uNzg4NWJhMyAxMDA2NDQKLS0tIGEvTGliL3N1YnByb2Nlc3MucHkKKysrIGIvTGliL3N1YnByb2Nlc3MucHkKQEAgLTE5MSw4ICsxOTEsMTAgQEAKIAogQSBWYWx1ZUVycm9yIHdpbGwgYmUgcmFpc2VkIGlmIFBvcGVuIGlzIGNhbGxlZCB3aXRoIGludmFsaWQgYXJndW1lbnRzLgogCi1jaGVja19jYWxsKCkgYW5kIGNoZWNrX291dHB1dCgpIHdpbGwgcmFpc2UgQ2FsbGVkUHJvY2Vzc0Vycm9yLCBpZiB0aGUKLWNhbGxlZCBwcm9jZXNzIHJldHVybnMgYSBub24temVybyByZXR1cm4gY29kZS4KK0V4Y2VwdGlvbnMgZGVmaW5lZCB3aXRoaW4gdGhpcyBtb2R1bGUgaW5oZXJpdCBmcm9tIFN1YnByb2Nlc3NFcnJvci4KK2NoZWNrX2NhbGwoKSBhbmQgY2hlY2tfb3V0cHV0KCkgd2lsbCByYWlzZSBDYWxsZWRQcm9jZXNzRXJyb3IgaWYgdGhlCitjYWxsZWQgcHJvY2VzcyByZXR1cm5zIGEgbm9uLXplcm8gcmV0dXJuIGNvZGUuICBUaW1lb3V0RXhwaXJlZAorYmUgcmFpc2VkIGlmIGEgdGltZW91dCB3YXMgc3BlY2lmaWVkIGFuZCBleHBpcmVkLgogCiAKIFNlY3VyaXR5CkBAIC0zNDAsMTUgKzM0MiwyMyBAQAogCiBpbXBvcnQgaW8KIGltcG9ydCBvcworaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCBnYwogaW1wb3J0IHNpZ25hbAogaW1wb3J0IGJ1aWx0aW5zCiBpbXBvcnQgd2FybmluZ3MKIGltcG9ydCBlcnJubwordHJ5OgorICAgIGZyb20gdGltZSBpbXBvcnQgbW9ub3RvbmljIGFzIF90aW1lCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSB0aW1lIGltcG9ydCB0aW1lIGFzIF90aW1lCiAKICMgRXhjZXB0aW9uIGNsYXNzZXMgdXNlZCBieSB0aGlzIG1vZHVsZS4KLWNsYXNzIENhbGxlZFByb2Nlc3NFcnJvcihFeGNlcHRpb24pOgorY2xhc3MgU3VicHJvY2Vzc0Vycm9yKEV4Y2VwdGlvbik6IHBhc3MKKworCitjbGFzcyBDYWxsZWRQcm9jZXNzRXJyb3IoU3VicHJvY2Vzc0Vycm9yKToKICAgICAiIiJUaGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiBhIHByb2Nlc3MgcnVuIGJ5IGNoZWNrX2NhbGwoKSBvcgogICAgIGNoZWNrX291dHB1dCgpIHJldHVybnMgYSBub24temVybyBleGl0IHN0YXR1cy4KICAgICBUaGUgZXhpdCBzdGF0dXMgd2lsbCBiZSBzdG9yZWQgaW4gdGhlIHJldHVybmNvZGUgYXR0cmlidXRlOwpAQCAtMzYyLDEwICszNzIsMjQgQEAKICAgICAgICAgcmV0dXJuICJDb21tYW5kICclcycgcmV0dXJuZWQgbm9uLXplcm8gZXhpdCBzdGF0dXMgJWQiICUgKHNlbGYuY21kLCBzZWxmLnJldHVybmNvZGUpCiAKIAorY2xhc3MgVGltZW91dEV4cGlyZWQoU3VicHJvY2Vzc0Vycm9yKToKKyAgICAiIiJUaGlzIGV4Y2VwdGlvbiBpcyByYWlzZWQgd2hlbiB0aGUgdGltZW91dCBleHBpcmVzIHdoaWxlIHdhaXRpbmcgZm9yIGEKKyAgICBjaGlsZCBwcm9jZXNzLgorICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjbWQsIHRpbWVvdXQsIG91dHB1dD1Ob25lKToKKyAgICAgICAgc2VsZi5jbWQgPSBjbWQKKyAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAorICAgICAgICBzZWxmLm91dHB1dCA9IG91dHB1dAorCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAoIkNvbW1hbmQgJyVzJyB0aW1lZCBvdXQgYWZ0ZXIgJXMgc2Vjb25kcyIgJQorICAgICAgICAgICAgICAgIChzZWxmLmNtZCwgc2VsZi50aW1lb3V0KSkKKworCiBpZiBtc3dpbmRvd3M6CiAgICAgaW1wb3J0IHRocmVhZGluZwogICAgIGltcG9ydCBtc3ZjcnQKLSAgICBpbXBvcnQgX3N1YnByb2Nlc3MKKyAgICBpbXBvcnQgX3dpbmFwaQogICAgIGNsYXNzIFNUQVJUVVBJTkZPOgogICAgICAgICBkd0ZsYWdzID0gMAogICAgICAgICBoU3RkSW5wdXQgPSBOb25lCkBAIC0zNzcsNTMgKzQwMSw0OSBAQAogZWxzZToKICAgICBpbXBvcnQgc2VsZWN0CiAgICAgX2hhc19wb2xsID0gaGFzYXR0cihzZWxlY3QsICdwb2xsJykKLSAgICBpbXBvcnQgZmNudGwKLSAgICBpbXBvcnQgcGlja2xlCi0KLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBfcG9zaXhzdWJwcm9jZXNzCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICBfcG9zaXhzdWJwcm9jZXNzID0gTm9uZQotICAgICAgICB3YXJuaW5ncy53YXJuKCJUaGUgX3Bvc2l4c3VicHJvY2VzcyBtb2R1bGUgaXMgbm90IGJlaW5nIHVzZWQuICIKLSAgICAgICAgICAgICAgICAgICAgICAiQ2hpbGQgcHJvY2VzcyByZWxpYWJpbGl0eSBtYXkgc3VmZmVyIGlmIHlvdXIgIgotICAgICAgICAgICAgICAgICAgICAgICJwcm9ncmFtIHVzZXMgdGhyZWFkcy4iLCBSdW50aW1lV2FybmluZykKKyAgICBpbXBvcnQgX3Bvc2l4c3VicHJvY2VzcworICAgIF9jcmVhdGVfcGlwZSA9IF9wb3NpeHN1YnByb2Nlc3MuY2xvZXhlY19waXBlCiAKICAgICAjIFdoZW4gc2VsZWN0IG9yIHBvbGwgaGFzIGluZGljYXRlZCB0aGF0IHRoZSBmaWxlIGlzIHdyaXRhYmxlLAogICAgICMgd2UgY2FuIHdyaXRlIHVwIHRvIF9QSVBFX0JVRiBieXRlcyB3aXRob3V0IHJpc2sgb2YgYmxvY2tpbmcuCiAgICAgIyBQT1NJWCBkZWZpbmVzIFBJUEVfQlVGIGFzID49IDUxMi4KICAgICBfUElQRV9CVUYgPSBnZXRhdHRyKHNlbGVjdCwgJ1BJUEVfQlVGJywgNTEyKQogCi0gICAgX0ZEX0NMT0VYRUMgPSBnZXRhdHRyKGZjbnRsLCAnRkRfQ0xPRVhFQycsIDEpCi0KLSAgICBkZWYgX3NldF9jbG9leGVjKGZkLCBjbG9leGVjKToKLSAgICAgICAgb2xkID0gZmNudGwuZmNudGwoZmQsIGZjbnRsLkZfR0VURkQpCi0gICAgICAgIGlmIGNsb2V4ZWM6Ci0gICAgICAgICAgICBmY250bC5mY250bChmZCwgZmNudGwuRl9TRVRGRCwgb2xkIHwgX0ZEX0NMT0VYRUMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmY250bC5mY250bChmZCwgZmNudGwuRl9TRVRGRCwgb2xkICYgfl9GRF9DTE9FWEVDKQotCi0gICAgaWYgX3Bvc2l4c3VicHJvY2VzczoKLSAgICAgICAgX2NyZWF0ZV9waXBlID0gX3Bvc2l4c3VicHJvY2Vzcy5jbG9leGVjX3BpcGUKLSAgICBlbHNlOgotICAgICAgICBkZWYgX2NyZWF0ZV9waXBlKCk6Ci0gICAgICAgICAgICBmZHMgPSBvcy5waXBlKCkKLSAgICAgICAgICAgIF9zZXRfY2xvZXhlYyhmZHNbMF0sIFRydWUpCi0gICAgICAgICAgICBfc2V0X2Nsb2V4ZWMoZmRzWzFdLCBUcnVlKQotICAgICAgICAgICAgcmV0dXJuIGZkcwogCiBfX2FsbF9fID0gWyJQb3BlbiIsICJQSVBFIiwgIlNURE9VVCIsICJjYWxsIiwgImNoZWNrX2NhbGwiLCAiZ2V0c3RhdHVzb3V0cHV0IiwKLSAgICAgICAgICAgImdldG91dHB1dCIsICJjaGVja19vdXRwdXQiLCAiQ2FsbGVkUHJvY2Vzc0Vycm9yIl0KKyAgICAgICAgICAgImdldG91dHB1dCIsICJjaGVja19vdXRwdXQiLCAiQ2FsbGVkUHJvY2Vzc0Vycm9yIiwgIkRFVk5VTEwiXQogCiBpZiBtc3dpbmRvd3M6Ci0gICAgZnJvbSBfc3VicHJvY2VzcyBpbXBvcnQgKENSRUFURV9ORVdfQ09OU09MRSwgQ1JFQVRFX05FV19QUk9DRVNTX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVERfSU5QVVRfSEFORExFLCBTVERfT1VUUFVUX0hBTkRMRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1REX0VSUk9SX0hBTkRMRSwgU1dfSElERSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RBUlRGX1VTRVNUREhBTkRMRVMsIFNUQVJURl9VU0VTSE9XV0lORE9XKQorICAgIGZyb20gX3dpbmFwaSBpbXBvcnQgKENSRUFURV9ORVdfQ09OU09MRSwgQ1JFQVRFX05FV19QUk9DRVNTX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgIFNURF9JTlBVVF9IQU5ETEUsIFNURF9PVVRQVVRfSEFORExFLAorICAgICAgICAgICAgICAgICAgICAgICAgIFNURF9FUlJPUl9IQU5ETEUsIFNXX0hJREUsCisgICAgICAgICAgICAgICAgICAgICAgICAgU1RBUlRGX1VTRVNUREhBTkRMRVMsIFNUQVJURl9VU0VTSE9XV0lORE9XKQogCiAgICAgX19hbGxfXy5leHRlbmQoWyJDUkVBVEVfTkVXX0NPTlNPTEUiLCAiQ1JFQVRFX05FV19QUk9DRVNTX0dST1VQIiwKICAgICAgICAgICAgICAgICAgICAgIlNURF9JTlBVVF9IQU5ETEUiLCAiU1REX09VVFBVVF9IQU5ETEUiLAogICAgICAgICAgICAgICAgICAgICAiU1REX0VSUk9SX0hBTkRMRSIsICJTV19ISURFIiwKICAgICAgICAgICAgICAgICAgICAgIlNUQVJURl9VU0VTVERIQU5ETEVTIiwgIlNUQVJURl9VU0VTSE9XV0lORE9XIl0pCisKKyAgICBjbGFzcyBIYW5kbGUoaW50KToKKyAgICAgICAgY2xvc2VkID0gRmFsc2UKKworICAgICAgICBkZWYgQ2xvc2Uoc2VsZiwgQ2xvc2VIYW5kbGU9X3dpbmFwaS5DbG9zZUhhbmRsZSk6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5jbG9zZWQ6CisgICAgICAgICAgICAgICAgc2VsZi5jbG9zZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgQ2xvc2VIYW5kbGUoc2VsZikKKworICAgICAgICBkZWYgRGV0YWNoKHNlbGYpOgorICAgICAgICAgICAgaWYgbm90IHNlbGYuY2xvc2VkOgorICAgICAgICAgICAgICAgIHNlbGYuY2xvc2VkID0gVHJ1ZQorICAgICAgICAgICAgICAgIHJldHVybiBpbnQoc2VsZikKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImFscmVhZHkgY2xvc2VkIikKKworICAgICAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgICAgICByZXR1cm4gIkhhbmRsZSglZCkiICUgaW50KHNlbGYpCisKKyAgICAgICAgX19kZWxfXyA9IENsb3NlCisgICAgICAgIF9fc3RyX18gPSBfX3JlcHJfXworCiB0cnk6CiAgICAgTUFYRkQgPSBvcy5zeXNjb25mKCJTQ19PUEVOX01BWCIpCiBleGNlcHQ6CkBAIC00NDgsMjcgKzQ2OCw2MyBAQAogCiBQSVBFID0gLTEKIFNURE9VVCA9IC0yCitERVZOVUxMID0gLTMKIAogCiBkZWYgX2VpbnRyX3JldHJ5X2NhbGwoZnVuYywgKmFyZ3MpOgogICAgIHdoaWxlIFRydWU6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJldHVybiBmdW5jKCphcmdzKQotICAgICAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpIGFzIGU6Ci0gICAgICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVJTlRSOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQgSW50ZXJydXB0ZWRFcnJvcjoKKyAgICAgICAgICAgIGNvbnRpbnVlCiAKIAotZGVmIGNhbGwoKnBvcGVuYXJncywgKiprd2FyZ3MpOgotICAgICIiIlJ1biBjb21tYW5kIHdpdGggYXJndW1lbnRzLiAgV2FpdCBmb3IgY29tbWFuZCB0byBjb21wbGV0ZSwgdGhlbgotICAgIHJldHVybiB0aGUgcmV0dXJuY29kZSBhdHRyaWJ1dGUuCisjIFhYWCBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgdXNlZCBieSBtdWx0aXByb2Nlc3NpbmcgYW5kIHRoZSB0ZXN0IHN1aXRlLAorIyBidXQgaXQncyBoZXJlIHNvIHRoYXQgaXQgY2FuIGJlIGltcG9ydGVkIHdoZW4gUHl0aG9uIGlzIGNvbXBpbGVkIHdpdGhvdXQKKyMgdGhyZWFkcy4KKworZGVmIF9hcmdzX2Zyb21faW50ZXJwcmV0ZXJfZmxhZ3MoKToKKyAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgcmVwcm9kdWNpbmcgdGhlIGN1cnJlbnQKKyAgICBzZXR0aW5ncyBpbiBzeXMuZmxhZ3MgYW5kIHN5cy53YXJub3B0aW9ucy4iIiIKKyAgICBmbGFnX29wdF9tYXAgPSB7CisgICAgICAgICdkZWJ1Zyc6ICdkJywKKyAgICAgICAgIyAnaW5zcGVjdCc6ICdpJywKKyAgICAgICAgIyAnaW50ZXJhY3RpdmUnOiAnaScsCisgICAgICAgICdvcHRpbWl6ZSc6ICdPJywKKyAgICAgICAgJ2RvbnRfd3JpdGVfYnl0ZWNvZGUnOiAnQicsCisgICAgICAgICdub191c2VyX3NpdGUnOiAncycsCisgICAgICAgICdub19zaXRlJzogJ1MnLAorICAgICAgICAnaWdub3JlX2Vudmlyb25tZW50JzogJ0UnLAorICAgICAgICAndmVyYm9zZSc6ICd2JywKKyAgICAgICAgJ2J5dGVzX3dhcm5pbmcnOiAnYicsCisgICAgICAgICdxdWlldCc6ICdxJywKKyAgICAgICAgJ2hhc2hfcmFuZG9taXphdGlvbic6ICdSJywKKyAgICB9CisgICAgYXJncyA9IFtdCisgICAgZm9yIGZsYWcsIG9wdCBpbiBmbGFnX29wdF9tYXAuaXRlbXMoKToKKyAgICAgICAgdiA9IGdldGF0dHIoc3lzLmZsYWdzLCBmbGFnKQorICAgICAgICBpZiB2ID4gMDoKKyAgICAgICAgICAgIGFyZ3MuYXBwZW5kKCctJyArIG9wdCAqIHYpCisgICAgZm9yIG9wdCBpbiBzeXMud2Fybm9wdGlvbnM6CisgICAgICAgIGFyZ3MuYXBwZW5kKCctVycgKyBvcHQpCisgICAgcmV0dXJuIGFyZ3MKKworCitkZWYgY2FsbCgqcG9wZW5hcmdzLCB0aW1lb3V0PU5vbmUsICoqa3dhcmdzKToKKyAgICAiIiJSdW4gY29tbWFuZCB3aXRoIGFyZ3VtZW50cy4gIFdhaXQgZm9yIGNvbW1hbmQgdG8gY29tcGxldGUgb3IKKyAgICB0aW1lb3V0LCB0aGVuIHJldHVybiB0aGUgcmV0dXJuY29kZSBhdHRyaWJ1dGUuCiAKICAgICBUaGUgYXJndW1lbnRzIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIFBvcGVuIGNvbnN0cnVjdG9yLiAgRXhhbXBsZToKIAogICAgIHJldGNvZGUgPSBjYWxsKFsibHMiLCAiLWwiXSkKICAgICAiIiIKLSAgICByZXR1cm4gUG9wZW4oKnBvcGVuYXJncywgKiprd2FyZ3MpLndhaXQoKQorICAgIHdpdGggUG9wZW4oKnBvcGVuYXJncywgKiprd2FyZ3MpIGFzIHA6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBwLndhaXQodGltZW91dD10aW1lb3V0KQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBwLmtpbGwoKQorICAgICAgICAgICAgcC53YWl0KCkKKyAgICAgICAgICAgIHJhaXNlCiAKIAogZGVmIGNoZWNrX2NhbGwoKnBvcGVuYXJncywgKiprd2FyZ3MpOgpAQCAtNDc3LDcgKzUzMyw3IEBACiAgICAgQ2FsbGVkUHJvY2Vzc0Vycm9yLiAgVGhlIENhbGxlZFByb2Nlc3NFcnJvciBvYmplY3Qgd2lsbCBoYXZlIHRoZQogICAgIHJldHVybiBjb2RlIGluIHRoZSByZXR1cm5jb2RlIGF0dHJpYnV0ZS4KIAotICAgIFRoZSBhcmd1bWVudHMgYXJlIHRoZSBzYW1lIGFzIGZvciB0aGUgUG9wZW4gY29uc3RydWN0b3IuICBFeGFtcGxlOgorICAgIFRoZSBhcmd1bWVudHMgYXJlIHRoZSBzYW1lIGFzIGZvciB0aGUgY2FsbCBmdW5jdGlvbi4gIEV4YW1wbGU6CiAKICAgICBjaGVja19jYWxsKFsibHMiLCAiLWwiXSkKICAgICAiIiIKQEAgLTQ5MCw3ICs1NDYsNyBAQAogICAgIHJldHVybiAwCiAKIAotZGVmIGNoZWNrX291dHB1dCgqcG9wZW5hcmdzLCAqKmt3YXJncyk6CitkZWYgY2hlY2tfb3V0cHV0KCpwb3BlbmFyZ3MsIHRpbWVvdXQ9Tm9uZSwgKiprd2FyZ3MpOgogICAgIHIiIiJSdW4gY29tbWFuZCB3aXRoIGFyZ3VtZW50cyBhbmQgcmV0dXJuIGl0cyBvdXRwdXQgYXMgYSBieXRlIHN0cmluZy4KIAogICAgIElmIHRoZSBleGl0IGNvZGUgd2FzIG5vbi16ZXJvIGl0IHJhaXNlcyBhIENhbGxlZFByb2Nlc3NFcnJvci4gIFRoZQpAQCAtNTEyLDE0ICs1NjgsMjAgQEAKICAgICAiIiIKICAgICBpZiAnc3Rkb3V0JyBpbiBrd2FyZ3M6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ3N0ZG91dCBhcmd1bWVudCBub3QgYWxsb3dlZCwgaXQgd2lsbCBiZSBvdmVycmlkZGVuLicpCi0gICAgcHJvY2VzcyA9IFBvcGVuKCpwb3BlbmFyZ3MsIHN0ZG91dD1QSVBFLCAqKmt3YXJncykKLSAgICBvdXRwdXQsIHVudXNlZF9lcnIgPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKLSAgICByZXRjb2RlID0gcHJvY2Vzcy5wb2xsKCkKLSAgICBpZiByZXRjb2RlOgotICAgICAgICBjbWQgPSBrd2FyZ3MuZ2V0KCJhcmdzIikKLSAgICAgICAgaWYgY21kIGlzIE5vbmU6Ci0gICAgICAgICAgICBjbWQgPSBwb3BlbmFyZ3NbMF0KLSAgICAgICAgcmFpc2UgQ2FsbGVkUHJvY2Vzc0Vycm9yKHJldGNvZGUsIGNtZCwgb3V0cHV0PW91dHB1dCkKKyAgICB3aXRoIFBvcGVuKCpwb3BlbmFyZ3MsIHN0ZG91dD1QSVBFLCAqKmt3YXJncykgYXMgcHJvY2VzczoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3V0cHV0LCB1bnVzZWRfZXJyID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSh0aW1lb3V0PXRpbWVvdXQpCisgICAgICAgIGV4Y2VwdCBUaW1lb3V0RXhwaXJlZDoKKyAgICAgICAgICAgIHByb2Nlc3Mua2lsbCgpCisgICAgICAgICAgICBvdXRwdXQsIHVudXNlZF9lcnIgPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKKyAgICAgICAgICAgIHJhaXNlIFRpbWVvdXRFeHBpcmVkKHByb2Nlc3MuYXJncywgdGltZW91dCwgb3V0cHV0PW91dHB1dCkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcHJvY2Vzcy5raWxsKCkKKyAgICAgICAgICAgIHByb2Nlc3Mud2FpdCgpCisgICAgICAgICAgICByYWlzZQorICAgICAgICByZXRjb2RlID0gcHJvY2Vzcy5wb2xsKCkKKyAgICAgICAgaWYgcmV0Y29kZToKKyAgICAgICAgICAgIHJhaXNlIENhbGxlZFByb2Nlc3NFcnJvcihyZXRjb2RlLCBwcm9jZXNzLmFyZ3MsIG91dHB1dD1vdXRwdXQpCiAgICAgcmV0dXJuIG91dHB1dAogCiAKQEAgLTYxNCwxMSArNjc2LDE5IEBACiAgICAgPj4+IHN1YnByb2Nlc3MuZ2V0c3RhdHVzb3V0cHV0KCcvYmluL2p1bmsnKQogICAgICgyNTYsICdzaDogL2Jpbi9qdW5rOiBub3QgZm91bmQnKQogICAgICIiIgotICAgIHBpcGUgPSBvcy5wb3BlbigneyAnICsgY21kICsgJzsgfSAyPiYxJywgJ3InKQotICAgIHRleHQgPSBwaXBlLnJlYWQoKQotICAgIHN0cyA9IHBpcGUuY2xvc2UoKQotICAgIGlmIHN0cyBpcyBOb25lOiBzdHMgPSAwCi0gICAgaWYgdGV4dFstMTpdID09ICdcbic6IHRleHQgPSB0ZXh0WzotMV0KKyAgICB3aXRoIG9zLnBvcGVuKCd7ICcgKyBjbWQgKyAnOyB9IDI+JjEnLCAncicpIGFzIHBpcGU6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRleHQgPSBwaXBlLnJlYWQoKQorICAgICAgICAgICAgc3RzID0gcGlwZS5jbG9zZSgpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHByb2Nlc3MgPSBwaXBlLl9wcm9jCisgICAgICAgICAgICBwcm9jZXNzLmtpbGwoKQorICAgICAgICAgICAgcHJvY2Vzcy53YWl0KCkKKyAgICAgICAgICAgIHJhaXNlCisgICAgaWYgc3RzIGlzIE5vbmU6CisgICAgICAgIHN0cyA9IDAKKyAgICBpZiB0ZXh0Wy0xOl0gPT0gJ1xuJzoKKyAgICAgICAgdGV4dCA9IHRleHRbOi0xXQogICAgIHJldHVybiBzdHMsIHRleHQKIAogCkBAIC02NTAsNiArNzIwLDggQEAKICAgICAgICAgX2NsZWFudXAoKQogCiAgICAgICAgIHNlbGYuX2NoaWxkX2NyZWF0ZWQgPSBGYWxzZQorICAgICAgICBzZWxmLl9pbnB1dCA9IE5vbmUKKyAgICAgICAgc2VsZi5fY29tbXVuaWNhdGlvbl9zdGFydGVkID0gRmFsc2UKICAgICAgICAgaWYgYnVmc2l6ZSBpcyBOb25lOgogICAgICAgICAgICAgYnVmc2l6ZSA9IDAgICMgUmVzdG9yZSBkZWZhdWx0CiAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGJ1ZnNpemUsIGludCk6CkBAIC02ODQsNiArNzU2LDcgQEAKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJjcmVhdGlvbmZsYWdzIGlzIG9ubHkgc3VwcG9ydGVkIG9uIFdpbmRvd3MgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYXRmb3JtcyIpCiAKKyAgICAgICAgc2VsZi5hcmdzID0gYXJncwogICAgICAgICBzZWxmLnN0ZGluID0gTm9uZQogICAgICAgICBzZWxmLnN0ZG91dCA9IE5vbmUKICAgICAgICAgc2VsZi5zdGRlcnIgPSBOb25lCkBAIC03ODQsMTkgKzg1NywyOCBAQAogICAgICAgICAgICAgIyBDaGlsZCBpcyBzdGlsbCBydW5uaW5nLCBrZWVwIHVzIGFsaXZlIHVudGlsIHdlIGNhbiB3YWl0IG9uIGl0LgogICAgICAgICAgICAgX2FjdGl2ZS5hcHBlbmQoc2VsZikKIAorICAgIGRlZiBfZ2V0X2Rldm51bGwoc2VsZik6CisgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdfZGV2bnVsbCcpOgorICAgICAgICAgICAgc2VsZi5fZGV2bnVsbCA9IG9zLm9wZW4ob3MuZGV2bnVsbCwgb3MuT19SRFdSKQorICAgICAgICByZXR1cm4gc2VsZi5fZGV2bnVsbAogCi0gICAgZGVmIGNvbW11bmljYXRlKHNlbGYsIGlucHV0PU5vbmUpOgorICAgIGRlZiBjb21tdW5pY2F0ZShzZWxmLCBpbnB1dD1Ob25lLCB0aW1lb3V0PU5vbmUpOgogICAgICAgICAiIiJJbnRlcmFjdCB3aXRoIHByb2Nlc3M6IFNlbmQgZGF0YSB0byBzdGRpbi4gIFJlYWQgZGF0YSBmcm9tCiAgICAgICAgIHN0ZG91dCBhbmQgc3RkZXJyLCB1bnRpbCBlbmQtb2YtZmlsZSBpcyByZWFjaGVkLiAgV2FpdCBmb3IKLSAgICAgICAgcHJvY2VzcyB0byB0ZXJtaW5hdGUuICBUaGUgb3B0aW9uYWwgaW5wdXQgYXJndW1lbnQgc2hvdWxkIGJlIGEKLSAgICAgICAgc3RyaW5nIHRvIGJlIHNlbnQgdG8gdGhlIGNoaWxkIHByb2Nlc3MsIG9yIE5vbmUsIGlmIG5vIGRhdGEKKyAgICAgICAgcHJvY2VzcyB0byB0ZXJtaW5hdGUuICBUaGUgb3B0aW9uYWwgaW5wdXQgYXJndW1lbnQgc2hvdWxkIGJlCisgICAgICAgIGJ5dGVzIHRvIGJlIHNlbnQgdG8gdGhlIGNoaWxkIHByb2Nlc3MsIG9yIE5vbmUsIGlmIG5vIGRhdGEKICAgICAgICAgc2hvdWxkIGJlIHNlbnQgdG8gdGhlIGNoaWxkLgogCiAgICAgICAgIGNvbW11bmljYXRlKCkgcmV0dXJucyBhIHR1cGxlIChzdGRvdXQsIHN0ZGVycikuIiIiCiAKLSAgICAgICAgIyBPcHRpbWl6YXRpb246IElmIHdlIGFyZSBvbmx5IHVzaW5nIG9uZSBwaXBlLCBvciBubyBwaXBlIGF0Ci0gICAgICAgICMgYWxsLCB1c2luZyBzZWxlY3QoKSBvciB0aHJlYWRzIGlzIHVubmVjZXNzYXJ5LgotICAgICAgICBpZiBbc2VsZi5zdGRpbiwgc2VsZi5zdGRvdXQsIHNlbGYuc3RkZXJyXS5jb3VudChOb25lKSA+PSAyOgorICAgICAgICBpZiBzZWxmLl9jb21tdW5pY2F0aW9uX3N0YXJ0ZWQgYW5kIGlucHV0OgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQ2Fubm90IHNlbmQgaW5wdXQgYWZ0ZXIgc3RhcnRpbmcgY29tbXVuaWNhdGlvbiIpCisKKyAgICAgICAgIyBPcHRpbWl6YXRpb246IElmIHdlIGFyZSBub3Qgd29ycmllZCBhYm91dCB0aW1lb3V0cywgd2UgaGF2ZW4ndAorICAgICAgICAjIHN0YXJ0ZWQgY29tbXVuaWNhdGluZywgYW5kIHdlIGhhdmUgb25lIG9yIHplcm8gcGlwZXMsIHVzaW5nIHNlbGVjdCgpCisgICAgICAgICMgb3IgdGhyZWFkcyBpcyB1bm5lY2Vzc2FyeS4KKyAgICAgICAgaWYgKHRpbWVvdXQgaXMgTm9uZSBhbmQgbm90IHNlbGYuX2NvbW11bmljYXRpb25fc3RhcnRlZCBhbmQKKyAgICAgICAgICAgIFtzZWxmLnN0ZGluLCBzZWxmLnN0ZG91dCwgc2VsZi5zdGRlcnJdLmNvdW50KE5vbmUpID49IDIpOgogICAgICAgICAgICAgc3Rkb3V0ID0gTm9uZQogICAgICAgICAgICAgc3RkZXJyID0gTm9uZQogICAgICAgICAgICAgaWYgc2VsZi5zdGRpbjoKQEAgLTgxNCwxNSArODk2LDQyIEBACiAgICAgICAgICAgICAgICAgc3RkZXJyID0gX2VpbnRyX3JldHJ5X2NhbGwoc2VsZi5zdGRlcnIucmVhZCkKICAgICAgICAgICAgICAgICBzZWxmLnN0ZGVyci5jbG9zZSgpCiAgICAgICAgICAgICBzZWxmLndhaXQoKQotICAgICAgICAgICAgcmV0dXJuIChzdGRvdXQsIHN0ZGVycikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgZW5kdGltZSA9IF90aW1lKCkgKyB0aW1lb3V0CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVuZHRpbWUgPSBOb25lCiAKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NvbW11bmljYXRlKGlucHV0KQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gc2VsZi5fY29tbXVuaWNhdGUoaW5wdXQsIGVuZHRpbWUsIHRpbWVvdXQpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHNlbGYuX2NvbW11bmljYXRpb25fc3RhcnRlZCA9IFRydWUKKworICAgICAgICAgICAgc3RzID0gc2VsZi53YWl0KHRpbWVvdXQ9c2VsZi5fcmVtYWluaW5nX3RpbWUoZW5kdGltZSkpCisKKyAgICAgICAgcmV0dXJuIChzdGRvdXQsIHN0ZGVycikKIAogCiAgICAgZGVmIHBvbGwoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl9pbnRlcm5hbF9wb2xsKCkKIAogCisgICAgZGVmIF9yZW1haW5pbmdfdGltZShzZWxmLCBlbmR0aW1lKToKKyAgICAgICAgIiIiQ29udmVuaWVuY2UgZm9yIF9jb21tdW5pY2F0ZSB3aGVuIGNvbXB1dGluZyB0aW1lb3V0cy4iIiIKKyAgICAgICAgaWYgZW5kdGltZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBlbmR0aW1lIC0gX3RpbWUoKQorCisKKyAgICBkZWYgX2NoZWNrX3RpbWVvdXQoc2VsZiwgZW5kdGltZSwgb3JpZ190aW1lb3V0KToKKyAgICAgICAgIiIiQ29udmVuaWVuY2UgZm9yIGNoZWNraW5nIGlmIGEgdGltZW91dCBoYXMgZXhwaXJlZC4iIiIKKyAgICAgICAgaWYgZW5kdGltZSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIF90aW1lKCkgPiBlbmR0aW1lOgorICAgICAgICAgICAgcmFpc2UgVGltZW91dEV4cGlyZWQoc2VsZi5hcmdzLCBvcmlnX3RpbWVvdXQpCisKKwogICAgIGlmIG1zd2luZG93czoKICAgICAgICAgIwogICAgICAgICAjIFdpbmRvd3MgbWV0aG9kcwpAQCAtODM5LDExICs5NDgsMTYgQEAKICAgICAgICAgICAgIGVycnJlYWQsIGVycndyaXRlID0gLTEsIC0xCiAKICAgICAgICAgICAgIGlmIHN0ZGluIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgcDJjcmVhZCA9IF9zdWJwcm9jZXNzLkdldFN0ZEhhbmRsZShfc3VicHJvY2Vzcy5TVERfSU5QVVRfSEFORExFKQorICAgICAgICAgICAgICAgIHAyY3JlYWQgPSBfd2luYXBpLkdldFN0ZEhhbmRsZShfd2luYXBpLlNURF9JTlBVVF9IQU5ETEUpCiAgICAgICAgICAgICAgICAgaWYgcDJjcmVhZCBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBwMmNyZWFkLCBfID0gX3N1YnByb2Nlc3MuQ3JlYXRlUGlwZShOb25lLCAwKQorICAgICAgICAgICAgICAgICAgICBwMmNyZWFkLCBfID0gX3dpbmFwaS5DcmVhdGVQaXBlKE5vbmUsIDApCisgICAgICAgICAgICAgICAgICAgIHAyY3JlYWQgPSBIYW5kbGUocDJjcmVhZCkKKyAgICAgICAgICAgICAgICAgICAgX3dpbmFwaS5DbG9zZUhhbmRsZShfKQogICAgICAgICAgICAgZWxpZiBzdGRpbiA9PSBQSVBFOgotICAgICAgICAgICAgICAgIHAyY3JlYWQsIHAyY3dyaXRlID0gX3N1YnByb2Nlc3MuQ3JlYXRlUGlwZShOb25lLCAwKQorICAgICAgICAgICAgICAgIHAyY3JlYWQsIHAyY3dyaXRlID0gX3dpbmFwaS5DcmVhdGVQaXBlKE5vbmUsIDApCisgICAgICAgICAgICAgICAgcDJjcmVhZCwgcDJjd3JpdGUgPSBIYW5kbGUocDJjcmVhZCksIEhhbmRsZShwMmN3cml0ZSkKKyAgICAgICAgICAgIGVsaWYgc3RkaW4gPT0gREVWTlVMTDoKKyAgICAgICAgICAgICAgICBwMmNyZWFkID0gbXN2Y3J0LmdldF9vc2ZoYW5kbGUoc2VsZi5fZ2V0X2Rldm51bGwoKSkKICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShzdGRpbiwgaW50KToKICAgICAgICAgICAgICAgICBwMmNyZWFkID0gbXN2Y3J0LmdldF9vc2ZoYW5kbGUoc3RkaW4pCiAgICAgICAgICAgICBlbHNlOgpAQCAtODUyLDExICs5NjYsMTYgQEAKICAgICAgICAgICAgIHAyY3JlYWQgPSBzZWxmLl9tYWtlX2luaGVyaXRhYmxlKHAyY3JlYWQpCiAKICAgICAgICAgICAgIGlmIHN0ZG91dCBpcyBOb25lOgotICAgICAgICAgICAgICAgIGMycHdyaXRlID0gX3N1YnByb2Nlc3MuR2V0U3RkSGFuZGxlKF9zdWJwcm9jZXNzLlNURF9PVVRQVVRfSEFORExFKQorICAgICAgICAgICAgICAgIGMycHdyaXRlID0gX3dpbmFwaS5HZXRTdGRIYW5kbGUoX3dpbmFwaS5TVERfT1VUUFVUX0hBTkRMRSkKICAgICAgICAgICAgICAgICBpZiBjMnB3cml0ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBfLCBjMnB3cml0ZSA9IF9zdWJwcm9jZXNzLkNyZWF0ZVBpcGUoTm9uZSwgMCkKKyAgICAgICAgICAgICAgICAgICAgXywgYzJwd3JpdGUgPSBfd2luYXBpLkNyZWF0ZVBpcGUoTm9uZSwgMCkKKyAgICAgICAgICAgICAgICAgICAgYzJwd3JpdGUgPSBIYW5kbGUoYzJwd3JpdGUpCisgICAgICAgICAgICAgICAgICAgIF93aW5hcGkuQ2xvc2VIYW5kbGUoXykKICAgICAgICAgICAgIGVsaWYgc3Rkb3V0ID09IFBJUEU6Ci0gICAgICAgICAgICAgICAgYzJwcmVhZCwgYzJwd3JpdGUgPSBfc3VicHJvY2Vzcy5DcmVhdGVQaXBlKE5vbmUsIDApCisgICAgICAgICAgICAgICAgYzJwcmVhZCwgYzJwd3JpdGUgPSBfd2luYXBpLkNyZWF0ZVBpcGUoTm9uZSwgMCkKKyAgICAgICAgICAgICAgICBjMnByZWFkLCBjMnB3cml0ZSA9IEhhbmRsZShjMnByZWFkKSwgSGFuZGxlKGMycHdyaXRlKQorICAgICAgICAgICAgZWxpZiBzdGRvdXQgPT0gREVWTlVMTDoKKyAgICAgICAgICAgICAgICBjMnB3cml0ZSA9IG1zdmNydC5nZXRfb3NmaGFuZGxlKHNlbGYuX2dldF9kZXZudWxsKCkpCiAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2Uoc3Rkb3V0LCBpbnQpOgogICAgICAgICAgICAgICAgIGMycHdyaXRlID0gbXN2Y3J0LmdldF9vc2ZoYW5kbGUoc3Rkb3V0KQogICAgICAgICAgICAgZWxzZToKQEAgLTg2NSwxMyArOTg0LDE4IEBACiAgICAgICAgICAgICBjMnB3cml0ZSA9IHNlbGYuX21ha2VfaW5oZXJpdGFibGUoYzJwd3JpdGUpCiAKICAgICAgICAgICAgIGlmIHN0ZGVyciBpcyBOb25lOgotICAgICAgICAgICAgICAgIGVycndyaXRlID0gX3N1YnByb2Nlc3MuR2V0U3RkSGFuZGxlKF9zdWJwcm9jZXNzLlNURF9FUlJPUl9IQU5ETEUpCisgICAgICAgICAgICAgICAgZXJyd3JpdGUgPSBfd2luYXBpLkdldFN0ZEhhbmRsZShfd2luYXBpLlNURF9FUlJPUl9IQU5ETEUpCiAgICAgICAgICAgICAgICAgaWYgZXJyd3JpdGUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgXywgZXJyd3JpdGUgPSBfc3VicHJvY2Vzcy5DcmVhdGVQaXBlKE5vbmUsIDApCisgICAgICAgICAgICAgICAgICAgIF8sIGVycndyaXRlID0gX3dpbmFwaS5DcmVhdGVQaXBlKE5vbmUsIDApCisgICAgICAgICAgICAgICAgICAgIGVycndyaXRlID0gSGFuZGxlKGVycndyaXRlKQorICAgICAgICAgICAgICAgICAgICBfd2luYXBpLkNsb3NlSGFuZGxlKF8pCiAgICAgICAgICAgICBlbGlmIHN0ZGVyciA9PSBQSVBFOgotICAgICAgICAgICAgICAgIGVycnJlYWQsIGVycndyaXRlID0gX3N1YnByb2Nlc3MuQ3JlYXRlUGlwZShOb25lLCAwKQorICAgICAgICAgICAgICAgIGVycnJlYWQsIGVycndyaXRlID0gX3dpbmFwaS5DcmVhdGVQaXBlKE5vbmUsIDApCisgICAgICAgICAgICAgICAgZXJycmVhZCwgZXJyd3JpdGUgPSBIYW5kbGUoZXJycmVhZCksIEhhbmRsZShlcnJ3cml0ZSkKICAgICAgICAgICAgIGVsaWYgc3RkZXJyID09IFNURE9VVDoKICAgICAgICAgICAgICAgICBlcnJ3cml0ZSA9IGMycHdyaXRlCisgICAgICAgICAgICBlbGlmIHN0ZGVyciA9PSBERVZOVUxMOgorICAgICAgICAgICAgICAgIGVycndyaXRlID0gbXN2Y3J0LmdldF9vc2ZoYW5kbGUoc2VsZi5fZ2V0X2Rldm51bGwoKSkKICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShzdGRlcnIsIGludCk6CiAgICAgICAgICAgICAgICAgZXJyd3JpdGUgPSBtc3ZjcnQuZ2V0X29zZmhhbmRsZShzdGRlcnIpCiAgICAgICAgICAgICBlbHNlOgpAQCAtODg2LDIwICsxMDEwLDIyIEBACiAKICAgICAgICAgZGVmIF9tYWtlX2luaGVyaXRhYmxlKHNlbGYsIGhhbmRsZSk6CiAgICAgICAgICAgICAiIiJSZXR1cm4gYSBkdXBsaWNhdGUgb2YgaGFuZGxlLCB3aGljaCBpcyBpbmhlcml0YWJsZSIiIgotICAgICAgICAgICAgcmV0dXJuIF9zdWJwcm9jZXNzLkR1cGxpY2F0ZUhhbmRsZShfc3VicHJvY2Vzcy5HZXRDdXJyZW50UHJvY2VzcygpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGUsIF9zdWJwcm9jZXNzLkdldEN1cnJlbnRQcm9jZXNzKCksIDAsIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zdWJwcm9jZXNzLkRVUExJQ0FURV9TQU1FX0FDQ0VTUykKKyAgICAgICAgICAgIGggPSBfd2luYXBpLkR1cGxpY2F0ZUhhbmRsZSgKKyAgICAgICAgICAgICAgICBfd2luYXBpLkdldEN1cnJlbnRQcm9jZXNzKCksIGhhbmRsZSwKKyAgICAgICAgICAgICAgICBfd2luYXBpLkdldEN1cnJlbnRQcm9jZXNzKCksIDAsIDEsCisgICAgICAgICAgICAgICAgX3dpbmFwaS5EVVBMSUNBVEVfU0FNRV9BQ0NFU1MpCisgICAgICAgICAgICByZXR1cm4gSGFuZGxlKGgpCiAKIAogICAgICAgICBkZWYgX2ZpbmRfdzl4cG9wZW4oc2VsZik6CiAgICAgICAgICAgICAiIiJGaW5kIGFuZCByZXR1cm4gYWJzb2x1dCBwYXRoIHRvIHc5eHBvcGVuLmV4ZSIiIgogICAgICAgICAgICAgdzl4cG9wZW4gPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9zdWJwcm9jZXNzLkdldE1vZHVsZUZpbGVOYW1lKDApKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX3dpbmFwaS5HZXRNb2R1bGVGaWxlTmFtZSgwKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidzl4cG9wZW4uZXhlIikKICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyh3OXhwb3Blbik6CiAgICAgICAgICAgICAgICAgIyBFZWVrIC0gZmlsZS1ub3QtZm91bmQgLSBwb3NzaWJseSBhbiBlbWJlZGRpbmcKICAgICAgICAgICAgICAgICAjIHNpdHVhdGlvbiAtIHNlZSBpZiB3ZSBjYW4gbG9jYXRlIGl0IGluIHN5cy5leGVjX3ByZWZpeAotICAgICAgICAgICAgICAgIHc5eHBvcGVuID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShzeXMuZXhlY19wcmVmaXgpLAorICAgICAgICAgICAgICAgIHc5eHBvcGVuID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShzeXMuYmFzZV9leGVjX3ByZWZpeCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInc5eHBvcGVuLmV4ZSIpCiAgICAgICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHc5eHBvcGVuKToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJDYW5ub3QgbG9jYXRlIHc5eHBvcGVuLmV4ZSwgd2hpY2ggaXMgIgpAQCAtOTI2LDE3ICsxMDUyLDE3IEBACiAgICAgICAgICAgICBpZiBzdGFydHVwaW5mbyBpcyBOb25lOgogICAgICAgICAgICAgICAgIHN0YXJ0dXBpbmZvID0gU1RBUlRVUElORk8oKQogICAgICAgICAgICAgaWYgLTEgbm90IGluIChwMmNyZWFkLCBjMnB3cml0ZSwgZXJyd3JpdGUpOgotICAgICAgICAgICAgICAgIHN0YXJ0dXBpbmZvLmR3RmxhZ3MgfD0gX3N1YnByb2Nlc3MuU1RBUlRGX1VTRVNUREhBTkRMRVMKKyAgICAgICAgICAgICAgICBzdGFydHVwaW5mby5kd0ZsYWdzIHw9IF93aW5hcGkuU1RBUlRGX1VTRVNUREhBTkRMRVMKICAgICAgICAgICAgICAgICBzdGFydHVwaW5mby5oU3RkSW5wdXQgPSBwMmNyZWFkCiAgICAgICAgICAgICAgICAgc3RhcnR1cGluZm8uaFN0ZE91dHB1dCA9IGMycHdyaXRlCiAgICAgICAgICAgICAgICAgc3RhcnR1cGluZm8uaFN0ZEVycm9yID0gZXJyd3JpdGUKIAogICAgICAgICAgICAgaWYgc2hlbGw6Ci0gICAgICAgICAgICAgICAgc3RhcnR1cGluZm8uZHdGbGFncyB8PSBfc3VicHJvY2Vzcy5TVEFSVEZfVVNFU0hPV1dJTkRPVwotICAgICAgICAgICAgICAgIHN0YXJ0dXBpbmZvLndTaG93V2luZG93ID0gX3N1YnByb2Nlc3MuU1dfSElERQorICAgICAgICAgICAgICAgIHN0YXJ0dXBpbmZvLmR3RmxhZ3MgfD0gX3dpbmFwaS5TVEFSVEZfVVNFU0hPV1dJTkRPVworICAgICAgICAgICAgICAgIHN0YXJ0dXBpbmZvLndTaG93V2luZG93ID0gX3dpbmFwaS5TV19ISURFCiAgICAgICAgICAgICAgICAgY29tc3BlYyA9IG9zLmVudmlyb24uZ2V0KCJDT01TUEVDIiwgImNtZC5leGUiKQogICAgICAgICAgICAgICAgIGFyZ3MgPSAne30gL2MgInt9IicuZm9ybWF0IChjb21zcGVjLCBhcmdzKQotICAgICAgICAgICAgICAgIGlmIChfc3VicHJvY2Vzcy5HZXRWZXJzaW9uKCkgPj0gMHg4MDAwMDAwMCBvcgorICAgICAgICAgICAgICAgIGlmIChfd2luYXBpLkdldFZlcnNpb24oKSA+PSAweDgwMDAwMDAwIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmJhc2VuYW1lKGNvbXNwZWMpLmxvd2VyKCkgPT0gImNvbW1hbmQuY29tIik6CiAgICAgICAgICAgICAgICAgICAgICMgV2luOXgsIG9yIHVzaW5nIGNvbW1hbmQuY29tIG9uIE5ULiBXZSBuZWVkIHRvCiAgICAgICAgICAgICAgICAgICAgICMgdXNlIHRoZSB3OXhwb3BlbiBpbnRlcm1lZGlhdGUgcHJvZ3JhbS4gRm9yIG1vcmUKQEAgLTk1MCwxMSArMTA3NiwxMSBAQAogICAgICAgICAgICAgICAgICAgICAjIHVzZSBhdCB4eHgiIGFuZCBhIGhvcGVmdWwgd2FybmluZyBhYm91dCB0aGUKICAgICAgICAgICAgICAgICAgICAgIyBzdGFiaWxpdHkgb2YgeW91ciBzeXN0ZW0uICBDb3N0IGlzIEN0cmwrQyB3b24ndAogICAgICAgICAgICAgICAgICAgICAjIGtpbGwgY2hpbGRyZW4uCi0gICAgICAgICAgICAgICAgICAgIGNyZWF0aW9uZmxhZ3MgfD0gX3N1YnByb2Nlc3MuQ1JFQVRFX05FV19DT05TT0xFCisgICAgICAgICAgICAgICAgICAgIGNyZWF0aW9uZmxhZ3MgfD0gX3dpbmFwaS5DUkVBVEVfTkVXX0NPTlNPTEUKIAogICAgICAgICAgICAgIyBTdGFydCB0aGUgcHJvY2VzcwogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGhwLCBodCwgcGlkLCB0aWQgPSBfc3VicHJvY2Vzcy5DcmVhdGVQcm9jZXNzKGV4ZWN1dGFibGUsIGFyZ3MsCisgICAgICAgICAgICAgICAgaHAsIGh0LCBwaWQsIHRpZCA9IF93aW5hcGkuQ3JlYXRlUHJvY2VzcyhleGVjdXRhYmxlLCBhcmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5vIHNwZWNpYWwgc2VjdXJpdHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwgTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KG5vdCBjbG9zZV9mZHMpLApAQCAtOTgxLDE3ICsxMTA3LDE5IEBACiAgICAgICAgICAgICAgICAgICAgIGMycHdyaXRlLkNsb3NlKCkKICAgICAgICAgICAgICAgICBpZiBlcnJ3cml0ZSAhPSAtMToKICAgICAgICAgICAgICAgICAgICAgZXJyd3JpdGUuQ2xvc2UoKQorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19kZXZudWxsJyk6CisgICAgICAgICAgICAgICAgICAgIG9zLmNsb3NlKHNlbGYuX2Rldm51bGwpCiAKICAgICAgICAgICAgICMgUmV0YWluIHRoZSBwcm9jZXNzIGhhbmRsZSwgYnV0IGNsb3NlIHRoZSB0aHJlYWQgaGFuZGxlCiAgICAgICAgICAgICBzZWxmLl9jaGlsZF9jcmVhdGVkID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5faGFuZGxlID0gaHAKKyAgICAgICAgICAgIHNlbGYuX2hhbmRsZSA9IEhhbmRsZShocCkKICAgICAgICAgICAgIHNlbGYucGlkID0gcGlkCi0gICAgICAgICAgICBodC5DbG9zZSgpCisgICAgICAgICAgICBfd2luYXBpLkNsb3NlSGFuZGxlKGh0KQogCiAgICAgICAgIGRlZiBfaW50ZXJuYWxfcG9sbChzZWxmLCBfZGVhZHN0YXRlPU5vbmUsCi0gICAgICAgICAgICAgICAgX1dhaXRGb3JTaW5nbGVPYmplY3Q9X3N1YnByb2Nlc3MuV2FpdEZvclNpbmdsZU9iamVjdCwKLSAgICAgICAgICAgICAgICBfV0FJVF9PQkpFQ1RfMD1fc3VicHJvY2Vzcy5XQUlUX09CSkVDVF8wLAotICAgICAgICAgICAgICAgIF9HZXRFeGl0Q29kZVByb2Nlc3M9X3N1YnByb2Nlc3MuR2V0RXhpdENvZGVQcm9jZXNzKToKKyAgICAgICAgICAgICAgICBfV2FpdEZvclNpbmdsZU9iamVjdD1fd2luYXBpLldhaXRGb3JTaW5nbGVPYmplY3QsCisgICAgICAgICAgICAgICAgX1dBSVRfT0JKRUNUXzA9X3dpbmFwaS5XQUlUX09CSkVDVF8wLAorICAgICAgICAgICAgICAgIF9HZXRFeGl0Q29kZVByb2Nlc3M9X3dpbmFwaS5HZXRFeGl0Q29kZVByb2Nlc3MpOgogICAgICAgICAgICAgIiIiQ2hlY2sgaWYgY2hpbGQgcHJvY2VzcyBoYXMgdGVybWluYXRlZC4gIFJldHVybnMgcmV0dXJuY29kZQogICAgICAgICAgICAgYXR0cmlidXRlLgogCkBAIC0xMDA1LDEzICsxMTMzLDIxIEBACiAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXR1cm5jb2RlCiAKIAotICAgICAgICBkZWYgd2FpdChzZWxmKToKKyAgICAgICAgZGVmIHdhaXQoc2VsZiwgdGltZW91dD1Ob25lLCBlbmR0aW1lPU5vbmUpOgogICAgICAgICAgICAgIiIiV2FpdCBmb3IgY2hpbGQgcHJvY2VzcyB0byB0ZXJtaW5hdGUuICBSZXR1cm5zIHJldHVybmNvZGUKICAgICAgICAgICAgIGF0dHJpYnV0ZS4iIiIKKyAgICAgICAgICAgIGlmIGVuZHRpbWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgdGltZW91dCA9IHNlbGYuX3JlbWFpbmluZ190aW1lKGVuZHRpbWUpCisgICAgICAgICAgICBpZiB0aW1lb3V0IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgdGltZW91dF9taWxsaXMgPSBfd2luYXBpLklORklOSVRFCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHRpbWVvdXRfbWlsbGlzID0gaW50KHRpbWVvdXQgKiAxMDAwKQogICAgICAgICAgICAgaWYgc2VsZi5yZXR1cm5jb2RlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgX3N1YnByb2Nlc3MuV2FpdEZvclNpbmdsZU9iamVjdChzZWxmLl9oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc3VicHJvY2Vzcy5JTkZJTklURSkKLSAgICAgICAgICAgICAgICBzZWxmLnJldHVybmNvZGUgPSBfc3VicHJvY2Vzcy5HZXRFeGl0Q29kZVByb2Nlc3Moc2VsZi5faGFuZGxlKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IF93aW5hcGkuV2FpdEZvclNpbmdsZU9iamVjdChzZWxmLl9oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dF9taWxsaXMpCisgICAgICAgICAgICAgICAgaWYgcmVzdWx0ID09IF93aW5hcGkuV0FJVF9USU1FT1VUOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBUaW1lb3V0RXhwaXJlZChzZWxmLmFyZ3MsIHRpbWVvdXQpCisgICAgICAgICAgICAgICAgc2VsZi5yZXR1cm5jb2RlID0gX3dpbmFwaS5HZXRFeGl0Q29kZVByb2Nlc3Moc2VsZi5faGFuZGxlKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYucmV0dXJuY29kZQogCiAKQEAgLTEwMjAsMjIgKzExNTYsMjMgQEAKICAgICAgICAgICAgIGZoLmNsb3NlKCkKIAogCi0gICAgICAgIGRlZiBfY29tbXVuaWNhdGUoc2VsZiwgaW5wdXQpOgotICAgICAgICAgICAgc3Rkb3V0ID0gTm9uZSAjIFJldHVybgotICAgICAgICAgICAgc3RkZXJyID0gTm9uZSAjIFJldHVybgotCi0gICAgICAgICAgICBpZiBzZWxmLnN0ZG91dDoKLSAgICAgICAgICAgICAgICBzdGRvdXQgPSBbXQotICAgICAgICAgICAgICAgIHN0ZG91dF90aHJlYWQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLl9yZWFkZXJ0aHJlYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oc2VsZi5zdGRvdXQsIHN0ZG91dCkpCi0gICAgICAgICAgICAgICAgc3Rkb3V0X3RocmVhZC5kYWVtb24gPSBUcnVlCi0gICAgICAgICAgICAgICAgc3Rkb3V0X3RocmVhZC5zdGFydCgpCi0gICAgICAgICAgICBpZiBzZWxmLnN0ZGVycjoKLSAgICAgICAgICAgICAgICBzdGRlcnIgPSBbXQotICAgICAgICAgICAgICAgIHN0ZGVycl90aHJlYWQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLl9yZWFkZXJ0aHJlYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oc2VsZi5zdGRlcnIsIHN0ZGVycikpCi0gICAgICAgICAgICAgICAgc3RkZXJyX3RocmVhZC5kYWVtb24gPSBUcnVlCi0gICAgICAgICAgICAgICAgc3RkZXJyX3RocmVhZC5zdGFydCgpCisgICAgICAgIGRlZiBfY29tbXVuaWNhdGUoc2VsZiwgaW5wdXQsIGVuZHRpbWUsIG9yaWdfdGltZW91dCk6CisgICAgICAgICAgICAjIFN0YXJ0IHJlYWRlciB0aHJlYWRzIGZlZWRpbmcgaW50byBhIGxpc3QgaGFuZ2luZyBvZmYgb2YgdGhpcworICAgICAgICAgICAgIyBvYmplY3QsIHVubGVzcyB0aGV5J3ZlIGFscmVhZHkgYmVlbiBzdGFydGVkLgorICAgICAgICAgICAgaWYgc2VsZi5zdGRvdXQgYW5kIG5vdCBoYXNhdHRyKHNlbGYsICJfc3Rkb3V0X2J1ZmYiKToKKyAgICAgICAgICAgICAgICBzZWxmLl9zdGRvdXRfYnVmZiA9IFtdCisgICAgICAgICAgICAgICAgc2VsZi5zdGRvdXRfdGhyZWFkID0gXAorICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5fcmVhZGVydGhyZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShzZWxmLnN0ZG91dCwgc2VsZi5fc3Rkb3V0X2J1ZmYpKQorICAgICAgICAgICAgICAgIHNlbGYuc3Rkb3V0X3RocmVhZC5kYWVtb24gPSBUcnVlCisgICAgICAgICAgICAgICAgc2VsZi5zdGRvdXRfdGhyZWFkLnN0YXJ0KCkKKyAgICAgICAgICAgIGlmIHNlbGYuc3RkZXJyIGFuZCBub3QgaGFzYXR0cihzZWxmLCAiX3N0ZGVycl9idWZmIik6CisgICAgICAgICAgICAgICAgc2VsZi5fc3RkZXJyX2J1ZmYgPSBbXQorICAgICAgICAgICAgICAgIHNlbGYuc3RkZXJyX3RocmVhZCA9IFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNlbGYuX3JlYWRlcnRocmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oc2VsZi5zdGRlcnIsIHNlbGYuX3N0ZGVycl9idWZmKSkKKyAgICAgICAgICAgICAgICBzZWxmLnN0ZGVycl90aHJlYWQuZGFlbW9uID0gVHJ1ZQorICAgICAgICAgICAgICAgIHNlbGYuc3RkZXJyX3RocmVhZC5zdGFydCgpCiAKICAgICAgICAgICAgIGlmIHNlbGYuc3RkaW46CiAgICAgICAgICAgICAgICAgaWYgaW5wdXQgaXMgbm90IE5vbmU6CkBAIC0xMDQ2LDEwICsxMTgzLDI4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgICAgICBzZWxmLnN0ZGluLmNsb3NlKCkKIAorICAgICAgICAgICAgIyBXYWl0IGZvciB0aGUgcmVhZGVyIHRocmVhZHMsIG9yIHRpbWUgb3V0LiAgSWYgd2UgdGltZSBvdXQsIHRoZQorICAgICAgICAgICAgIyB0aHJlYWRzIHJlbWFpbiByZWFkaW5nIGFuZCB0aGUgZmRzIGxlZnQgb3BlbiBpbiBjYXNlIHRoZSB1c2VyCisgICAgICAgICAgICAjIGNhbGxzIGNvbW11bmljYXRlIGFnYWluLgorICAgICAgICAgICAgaWYgc2VsZi5zdGRvdXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5zdGRvdXRfdGhyZWFkLmpvaW4oc2VsZi5fcmVtYWluaW5nX3RpbWUoZW5kdGltZSkpCisgICAgICAgICAgICAgICAgaWYgc2VsZi5zdGRvdXRfdGhyZWFkLmlzQWxpdmUoKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVGltZW91dEV4cGlyZWQoc2VsZi5hcmdzLCBvcmlnX3RpbWVvdXQpCisgICAgICAgICAgICBpZiBzZWxmLnN0ZGVyciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLnN0ZGVycl90aHJlYWQuam9pbihzZWxmLl9yZW1haW5pbmdfdGltZShlbmR0aW1lKSkKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnN0ZGVycl90aHJlYWQuaXNBbGl2ZSgpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBUaW1lb3V0RXhwaXJlZChzZWxmLmFyZ3MsIG9yaWdfdGltZW91dCkKKworICAgICAgICAgICAgIyBDb2xsZWN0IHRoZSBvdXRwdXQgZnJvbSBhbmQgY2xvc2UgYm90aCBwaXBlcywgbm93IHRoYXQgd2Uga25vdworICAgICAgICAgICAgIyBib3RoIGhhdmUgYmVlbiByZWFkIHN1Y2Nlc3NmdWxseS4KKyAgICAgICAgICAgIHN0ZG91dCA9IE5vbmUKKyAgICAgICAgICAgIHN0ZGVyciA9IE5vbmUKICAgICAgICAgICAgIGlmIHNlbGYuc3Rkb3V0OgotICAgICAgICAgICAgICAgIHN0ZG91dF90aHJlYWQuam9pbigpCisgICAgICAgICAgICAgICAgc3Rkb3V0ID0gc2VsZi5fc3Rkb3V0X2J1ZmYKKyAgICAgICAgICAgICAgICBzZWxmLnN0ZG91dC5jbG9zZSgpCiAgICAgICAgICAgICBpZiBzZWxmLnN0ZGVycjoKLSAgICAgICAgICAgICAgICBzdGRlcnJfdGhyZWFkLmpvaW4oKQorICAgICAgICAgICAgICAgIHN0ZGVyciA9IHNlbGYuX3N0ZGVycl9idWZmCisgICAgICAgICAgICAgICAgc2VsZi5zdGRlcnIuY2xvc2UoKQogCiAgICAgICAgICAgICAjIEFsbCBkYXRhIGV4Y2hhbmdlZC4gIFRyYW5zbGF0ZSBsaXN0cyBpbnRvIHN0cmluZ3MuCiAgICAgICAgICAgICBpZiBzdGRvdXQgaXMgbm90IE5vbmU6CkBAIC0xMDU3LDcgKzEyMTIsNiBAQAogICAgICAgICAgICAgaWYgc3RkZXJyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIHN0ZGVyciA9IHN0ZGVyclswXQogCi0gICAgICAgICAgICBzZWxmLndhaXQoKQogICAgICAgICAgICAgcmV0dXJuIChzdGRvdXQsIHN0ZGVycikKIAogICAgICAgICBkZWYgc2VuZF9zaWduYWwoc2VsZiwgc2lnKToKQEAgLTEwNzYsMTQgKzEyMzAsMTIgQEAKICAgICAgICAgICAgICIiIlRlcm1pbmF0ZXMgdGhlIHByb2Nlc3MKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIF9zdWJwcm9jZXNzLlRlcm1pbmF0ZVByb2Nlc3Moc2VsZi5faGFuZGxlLCAxKQotICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBfd2luYXBpLlRlcm1pbmF0ZVByb2Nlc3Moc2VsZi5faGFuZGxlLCAxKQorICAgICAgICAgICAgZXhjZXB0IFBlcm1pc3Npb25FcnJvcjoKICAgICAgICAgICAgICAgICAjIEVSUk9SX0FDQ0VTU19ERU5JRUQgKHdpbmVycm9yIDUpIGlzIHJlY2VpdmVkIHdoZW4gdGhlCiAgICAgICAgICAgICAgICAgIyBwcm9jZXNzIGFscmVhZHkgZGllZC4KLSAgICAgICAgICAgICAgICBpZiBlLndpbmVycm9yICE9IDU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICAgICAgcmMgPSBfc3VicHJvY2Vzcy5HZXRFeGl0Q29kZVByb2Nlc3Moc2VsZi5faGFuZGxlKQotICAgICAgICAgICAgICAgIGlmIHJjID09IF9zdWJwcm9jZXNzLlNUSUxMX0FDVElWRToKKyAgICAgICAgICAgICAgICByYyA9IF93aW5hcGkuR2V0RXhpdENvZGVQcm9jZXNzKHNlbGYuX2hhbmRsZSkKKyAgICAgICAgICAgICAgICBpZiByYyA9PSBfd2luYXBpLlNUSUxMX0FDVElWRToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKICAgICAgICAgICAgICAgICBzZWxmLnJldHVybmNvZGUgPSByYwogCkBAIC0xMTA1LDYgKzEyNTcsOCBAQAogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGVsaWYgc3RkaW4gPT0gUElQRToKICAgICAgICAgICAgICAgICBwMmNyZWFkLCBwMmN3cml0ZSA9IF9jcmVhdGVfcGlwZSgpCisgICAgICAgICAgICBlbGlmIHN0ZGluID09IERFVk5VTEw6CisgICAgICAgICAgICAgICAgcDJjcmVhZCA9IHNlbGYuX2dldF9kZXZudWxsKCkKICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShzdGRpbiwgaW50KToKICAgICAgICAgICAgICAgICBwMmNyZWFkID0gc3RkaW4KICAgICAgICAgICAgIGVsc2U6CkBAIC0xMTE1LDYgKzEyNjksOCBAQAogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGVsaWYgc3Rkb3V0ID09IFBJUEU6CiAgICAgICAgICAgICAgICAgYzJwcmVhZCwgYzJwd3JpdGUgPSBfY3JlYXRlX3BpcGUoKQorICAgICAgICAgICAgZWxpZiBzdGRvdXQgPT0gREVWTlVMTDoKKyAgICAgICAgICAgICAgICBjMnB3cml0ZSA9IHNlbGYuX2dldF9kZXZudWxsKCkKICAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShzdGRvdXQsIGludCk6CiAgICAgICAgICAgICAgICAgYzJwd3JpdGUgPSBzdGRvdXQKICAgICAgICAgICAgIGVsc2U6CkBAIC0xMTI3LDYgKzEyODMsOCBAQAogICAgICAgICAgICAgICAgIGVycnJlYWQsIGVycndyaXRlID0gX2NyZWF0ZV9waXBlKCkKICAgICAgICAgICAgIGVsaWYgc3RkZXJyID09IFNURE9VVDoKICAgICAgICAgICAgICAgICBlcnJ3cml0ZSA9IGMycHdyaXRlCisgICAgICAgICAgICBlbGlmIHN0ZGVyciA9PSBERVZOVUxMOgorICAgICAgICAgICAgICAgIGVycndyaXRlID0gc2VsZi5fZ2V0X2Rldm51bGwoKQogICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHN0ZGVyciwgaW50KToKICAgICAgICAgICAgICAgICBlcnJ3cml0ZSA9IHN0ZGVycgogICAgICAgICAgICAgZWxzZToKQEAgLTExNTcsNyArMTMxNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0b3JlX3NpZ25hbHMsIHN0YXJ0X25ld19zZXNzaW9uKToKICAgICAgICAgICAgICIiIkV4ZWN1dGUgcHJvZ3JhbSAoUE9TSVggdmVyc2lvbikiIiIKIAotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShhcmdzLCBzdHIpOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShhcmdzLCAoc3RyLCBieXRlcykpOgogICAgICAgICAgICAgICAgIGFyZ3MgPSBbYXJnc10KICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgYXJncyA9IGxpc3QoYXJncykKQEAgLTExNzYsMTQ5ICsxMzM0LDM0IEBACiAgICAgICAgICAgICBlcnJwaXBlX3JlYWQsIGVycnBpcGVfd3JpdGUgPSBfY3JlYXRlX3BpcGUoKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgIyBXZSBtdXN0IGF2b2lkIGNvbXBsZXggd29yayB0aGF0IGNvdWxkIGludm9sdmUKKyAgICAgICAgICAgICAgICAgICAgIyBtYWxsb2Mgb3IgZnJlZSBpbiB0aGUgY2hpbGQgcHJvY2VzcyB0byBhdm9pZAorICAgICAgICAgICAgICAgICAgICAjIHBvdGVudGlhbCBkZWFkbG9ja3MsIHRodXMgd2UgZG8gYWxsIHRoaXMgaGVyZS4KKyAgICAgICAgICAgICAgICAgICAgIyBhbmQgcGFzcyBpdCB0byBmb3JrX2V4ZWMoKQogCi0gICAgICAgICAgICAgICAgICAgIGlmIF9wb3NpeHN1YnByb2Nlc3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIFdlIG11c3QgYXZvaWQgY29tcGxleCB3b3JrIHRoYXQgY291bGQgaW52b2x2ZQotICAgICAgICAgICAgICAgICAgICAgICAgIyBtYWxsb2Mgb3IgZnJlZSBpbiB0aGUgY2hpbGQgcHJvY2VzcyB0byBhdm9pZAotICAgICAgICAgICAgICAgICAgICAgICAgIyBwb3RlbnRpYWwgZGVhZGxvY2tzLCB0aHVzIHdlIGRvIGFsbCB0aGlzIGhlcmUuCi0gICAgICAgICAgICAgICAgICAgICAgICAjIGFuZCBwYXNzIGl0IHRvIGZvcmtfZXhlYygpCi0KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGVudiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfbGlzdCA9IFtvcy5mc2VuY29kZShrKSArIGInPScgKyBvcy5mc2VuY29kZSh2KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrLCB2IGluIGVudi5pdGVtcygpXQotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfbGlzdCA9IE5vbmUgICMgVXNlIGV4ZWN2IGluc3RlYWQgb2YgZXhlY3ZlLgotICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IG9zLmZzZW5jb2RlKGV4ZWN1dGFibGUpCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmRpcm5hbWUoZXhlY3V0YWJsZSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZV9saXN0ID0gKGV4ZWN1dGFibGUsKQotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2Ygb3MuX2V4ZWN2cGUoKS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlX2xpc3QgPSB0dXBsZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKG9zLmZzZW5jb2RlKGRpciksIGV4ZWN1dGFibGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBkaXIgaW4gb3MuZ2V0X2V4ZWNfcGF0aChlbnYpKQotICAgICAgICAgICAgICAgICAgICAgICAgZmRzX3RvX2tlZXAgPSBzZXQocGFzc19mZHMpCi0gICAgICAgICAgICAgICAgICAgICAgICBmZHNfdG9fa2VlcC5hZGQoZXJycGlwZV93cml0ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGlkID0gX3Bvc2l4c3VicHJvY2Vzcy5mb3JrX2V4ZWMoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MsIGV4ZWN1dGFibGVfbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfZmRzLCBzb3J0ZWQoZmRzX3RvX2tlZXApLCBjd2QsIGVudl9saXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMmNyZWFkLCBwMmN3cml0ZSwgYzJwcmVhZCwgYzJwd3JpdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycnJlYWQsIGVycndyaXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJwaXBlX3JlYWQsIGVycnBpcGVfd3JpdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVfc2lnbmFscywgc3RhcnRfbmV3X3Nlc3Npb24sIHByZWV4ZWNfZm4pCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9jaGlsZF9jcmVhdGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBpZiBlbnYgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBlbnZfbGlzdCA9IFtvcy5mc2VuY29kZShrKSArIGInPScgKyBvcy5mc2VuY29kZSh2KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGssIHYgaW4gZW52Lml0ZW1zKCldCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIFB1cmUgUHl0aG9uIGltcGxlbWVudGF0aW9uOiBJdCBpcyBub3QgdGhyZWFkIHNhZmUuCi0gICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgaW1wbGVtZW50YXRpb24gbWF5IGRlYWRsb2NrIGluIHRoZSBjaGlsZCBpZiB5b3VyCi0gICAgICAgICAgICAgICAgICAgICAgICAjIHBhcmVudCBwcm9jZXNzIGhhcyBhbnkgb3RoZXIgdGhyZWFkcyBydW5uaW5nLgotCi0gICAgICAgICAgICAgICAgICAgICAgICBnY193YXNfZW5hYmxlZCA9IGdjLmlzZW5hYmxlZCgpCi0gICAgICAgICAgICAgICAgICAgICAgICAjIERpc2FibGUgZ2MgdG8gYXZvaWQgYnVnIHdoZXJlIGdjIC0+IGZpbGVfZGVhbGxvYyAtPgotICAgICAgICAgICAgICAgICAgICAgICAgIyB3cml0ZSB0byBzdGRlcnIgLT4gaGFuZy4gIFNlZSBpc3N1ZTEzMzYKLSAgICAgICAgICAgICAgICAgICAgICAgIGdjLmRpc2FibGUoKQotICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGlkID0gb3MuZm9yaygpCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZ2Nfd2FzX2VuYWJsZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjLmVuYWJsZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NoaWxkX2NyZWF0ZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLnBpZCA9PSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQ2hpbGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQ2xvc2UgcGFyZW50J3MgcGlwZSBlbmRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHAyY3dyaXRlICE9IC0xOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MuY2xvc2UocDJjd3JpdGUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGMycHJlYWQgIT0gLTE6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5jbG9zZShjMnByZWFkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBlcnJyZWFkICE9IC0xOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MuY2xvc2UoZXJycmVhZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MuY2xvc2UoZXJycGlwZV9yZWFkKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgV2hlbiBkdXBpbmcgZmRzLCBpZiB0aGVyZSBhcmlzZXMgYSBzaXR1YXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB3aGVyZSBvbmUgb2YgdGhlIGZkcyBpcyBlaXRoZXIgMCwgMSBvciAyLCBpdAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlzIHBvc3NpYmxlIHRoYXQgaXQgaXMgb3ZlcndyaXR0ZW4gKCMxMjYwNykuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGMycHdyaXRlID09IDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjMnB3cml0ZSA9IG9zLmR1cChjMnB3cml0ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZXJyd3JpdGUgPT0gMCBvciBlcnJ3cml0ZSA9PSAxOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyd3JpdGUgPSBvcy5kdXAoZXJyd3JpdGUpCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEdXAgZmRzIGZvciBjaGlsZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWYgX2R1cDIoYSwgYik6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGR1cDIoKSByZW1vdmVzIHRoZSBDTE9FWEVDIGZsYWcgYnV0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHdlIG11c3QgZG8gaXQgb3Vyc2VsdmVzIGlmIGR1cDIoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB3b3VsZCBiZSBhIG5vLW9wIChpc3N1ZSAjMTA4MDYpLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgYSA9PSBiOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9zZXRfY2xvZXhlYyhhLCBGYWxzZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgYSAhPSAtMToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5kdXAyKGEsIGIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kdXAyKHAyY3JlYWQsIDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9kdXAyKGMycHdyaXRlLCAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfZHVwMihlcnJ3cml0ZSwgMikKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIENsb3NlIHBpcGUgZmRzLiAgTWFrZSBzdXJlIHdlIGRvbid0IGNsb3NlIHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNhbWUgZmQgbW9yZSB0aGFuIG9uY2UsIG9yIHN0YW5kYXJkIGZkcy4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VkID0gc2V0KCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGZkIGluIFtwMmNyZWFkLCBjMnB3cml0ZSwgZXJyd3JpdGVdOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZmQgPiAyIGFuZCBmZCBub3QgaW4gY2xvc2VkOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLmNsb3NlKGZkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlZC5hZGQoZmQpCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBDbG9zZSBhbGwgb3RoZXIgZmRzLCBpZiBhc2tlZCBmb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY2xvc2VfZmRzOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRzX3RvX2tlZXAgPSBzZXQocGFzc19mZHMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHNfdG9fa2VlcC5hZGQoZXJycGlwZV93cml0ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Nsb3NlX2ZkcyhmZHNfdG9fa2VlcCkKLQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGN3ZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLmNoZGlyKGN3ZCkKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgYSBjb3B5IG9mIFB5dGhvbi9weXRob25ydW4uYwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIF9QeV9SZXN0b3JlU2lnbmFscygpLiAgSWYgdGhhdCB3ZXJlIGV4cG9zZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhcyBhIHN5cy5fcHlfcmVzdG9yZXNpZ25hbHMgZnVuYyBpdCB3b3VsZCBiZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJldHRlci4uIGJ1dCB0aGlzIHB1cmUgcHl0aG9uIGltcGxlbWVudGF0aW9uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaXNuJ3QgbGlrZWx5IHRvIGJlIHVzZWQgbXVjaCBhbnltb3JlLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZXN0b3JlX3NpZ25hbHM6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWxzID0gKCdTSUdQSVBFJywgJ1NJR1hGWicsICdTSUdYRlNaJykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBzaWcgaW4gc2lnbmFsczoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHNpZ25hbCwgc2lnKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsLnNpZ25hbChnZXRhdHRyKHNpZ25hbCwgc2lnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWwuU0lHX0RGTCkKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzdGFydF9uZXdfc2Vzc2lvbiBhbmQgaGFzYXR0cihvcywgJ3NldHNpZCcpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Muc2V0c2lkKCkKLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBwcmVleGVjX2ZuOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZXhlY19mbigpCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZW52IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5leGVjdnAoZXhlY3V0YWJsZSwgYXJncykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLmV4ZWN2cGUoZXhlY3V0YWJsZSwgYXJncywgZW52KQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNfdHlwZSwgZXhjX3ZhbHVlID0gc3lzLmV4Y19pbmZvKClbOjJdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV4Y192YWx1ZSwgT1NFcnJvcik6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybm9fbnVtID0gZXhjX3ZhbHVlLmVycm5vCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm5vX251bSA9IDAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnJXM6JXg6JXMnICUgKGV4Y190eXBlLl9fbmFtZV9fLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJybm9fbnVtLCBleGNfdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoZXJyb3JzPSJzdXJyb2dhdGVwYXNzIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLndyaXRlKGVycnBpcGVfd3JpdGUsIG1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFdlIE1VU1Qgbm90IGFsbG93IGFueXRoaW5nIG9kZCBoYXBwZW5pbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYWJvdmUgdG8gcHJldmVudCB1cyBmcm9tIGV4aXRpbmcgYmVsb3cuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgZXhpdGNvZGUgd29uJ3QgYmUgcmVwb3J0ZWQgdG8gYXBwbGljYXRpb25zCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzbyBpdCByZWFsbHkgZG9lc24ndCBtYXR0ZXIgd2hhdCB3ZSByZXR1cm4uCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MuX2V4aXQoMjU1KQotCi0gICAgICAgICAgICAgICAgICAgICAgICAjIFBhcmVudAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgZ2Nfd2FzX2VuYWJsZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2MuZW5hYmxlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVudl9saXN0ID0gTm9uZSAgIyBVc2UgZXhlY3YgaW5zdGVhZCBvZiBleGVjdmUuCisgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBvcy5mc2VuY29kZShleGVjdXRhYmxlKQorICAgICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmRpcm5hbWUoZXhlY3V0YWJsZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlX2xpc3QgPSAoZXhlY3V0YWJsZSwpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2Ygb3MuX2V4ZWN2cGUoKS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGFibGVfbGlzdCA9IHR1cGxlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5mc2VuY29kZShkaXIpLCBleGVjdXRhYmxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBkaXIgaW4gb3MuZ2V0X2V4ZWNfcGF0aChlbnYpKQorICAgICAgICAgICAgICAgICAgICBmZHNfdG9fa2VlcCA9IHNldChwYXNzX2ZkcykKKyAgICAgICAgICAgICAgICAgICAgZmRzX3RvX2tlZXAuYWRkKGVycnBpcGVfd3JpdGUpCisgICAgICAgICAgICAgICAgICAgIHNlbGYucGlkID0gX3Bvc2l4c3VicHJvY2Vzcy5mb3JrX2V4ZWMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncywgZXhlY3V0YWJsZV9saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX2Zkcywgc29ydGVkKGZkc190b19rZWVwKSwgY3dkLCBlbnZfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwMmNyZWFkLCBwMmN3cml0ZSwgYzJwcmVhZCwgYzJwd3JpdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJycmVhZCwgZXJyd3JpdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJycGlwZV9yZWFkLCBlcnJwaXBlX3dyaXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RvcmVfc2lnbmFscywgc3RhcnRfbmV3X3Nlc3Npb24sIHByZWV4ZWNfZm4pCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2NoaWxkX2NyZWF0ZWQgPSBUcnVlCiAgICAgICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICAgICAgIyBiZSBzdXJlIHRoZSBGRCBpcyBjbG9zZWQgbm8gbWF0dGVyIHdoYXQKICAgICAgICAgICAgICAgICAgICAgb3MuY2xvc2UoZXJycGlwZV93cml0ZSkKQEAgLTEzMjksNiArMTM3Miw4IEBACiAgICAgICAgICAgICAgICAgICAgIG9zLmNsb3NlKGMycHdyaXRlKQogICAgICAgICAgICAgICAgIGlmIGVycndyaXRlICE9IC0xIGFuZCBlcnJyZWFkICE9IC0xOgogICAgICAgICAgICAgICAgICAgICBvcy5jbG9zZShlcnJ3cml0ZSkKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfZGV2bnVsbCcpOgorICAgICAgICAgICAgICAgICAgICBvcy5jbG9zZShzZWxmLl9kZXZudWxsKQogCiAgICAgICAgICAgICAgICAgIyBXYWl0IGZvciBleGVjIHRvIGZhaWwgb3Igc3VjY2VlZDsgcG9zc2libHkgcmFpc2luZyBhbgogICAgICAgICAgICAgICAgICMgZXhjZXB0aW9uIChsaW1pdGVkIGluIHNpemUpCkBAIC0xNDA2LDI1ICsxNDUxLDU3IEBACiAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXR1cm5jb2RlCiAKIAotICAgICAgICBkZWYgd2FpdChzZWxmKToKKyAgICAgICAgZGVmIF90cnlfd2FpdChzZWxmLCB3YWl0X2ZsYWdzKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAocGlkLCBzdHMpID0gX2VpbnRyX3JldHJ5X2NhbGwob3Mud2FpdHBpZCwgc2VsZi5waWQsIHdhaXRfZmxhZ3MpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUNISUxEOgorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgICMgVGhpcyBoYXBwZW5zIGlmIFNJR0NMRCBpcyBzZXQgdG8gYmUgaWdub3JlZCBvciB3YWl0aW5nCisgICAgICAgICAgICAgICAgIyBmb3IgY2hpbGQgcHJvY2Vzc2VzIGhhcyBvdGhlcndpc2UgYmVlbiBkaXNhYmxlZCBmb3Igb3VyCisgICAgICAgICAgICAgICAgIyBwcm9jZXNzLiAgVGhpcyBjaGlsZCBpcyBkZWFkLCB3ZSBjYW4ndCBnZXQgdGhlIHN0YXR1cy4KKyAgICAgICAgICAgICAgICBwaWQgPSBzZWxmLnBpZAorICAgICAgICAgICAgICAgIHN0cyA9IDAKKyAgICAgICAgICAgIHJldHVybiAocGlkLCBzdHMpCisKKworICAgICAgICBkZWYgd2FpdChzZWxmLCB0aW1lb3V0PU5vbmUsIGVuZHRpbWU9Tm9uZSk6CiAgICAgICAgICAgICAiIiJXYWl0IGZvciBjaGlsZCBwcm9jZXNzIHRvIHRlcm1pbmF0ZS4gIFJldHVybnMgcmV0dXJuY29kZQogICAgICAgICAgICAgYXR0cmlidXRlLiIiIgotICAgICAgICAgICAgaWYgc2VsZi5yZXR1cm5jb2RlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBwaWQsIHN0cyA9IF9laW50cl9yZXRyeV9jYWxsKG9zLndhaXRwaWQsIHNlbGYucGlkLCAwKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUNISUxEOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGhhcHBlbnMgaWYgU0lHQ0xEIGlzIHNldCB0byBiZSBpZ25vcmVkIG9yIHdhaXRpbmcKLSAgICAgICAgICAgICAgICAgICAgIyBmb3IgY2hpbGQgcHJvY2Vzc2VzIGhhcyBvdGhlcndpc2UgYmVlbiBkaXNhYmxlZCBmb3Igb3VyCi0gICAgICAgICAgICAgICAgICAgICMgcHJvY2Vzcy4gIFRoaXMgY2hpbGQgaXMgZGVhZCwgd2UgY2FuJ3QgZ2V0IHRoZSBzdGF0dXMuCi0gICAgICAgICAgICAgICAgICAgIHN0cyA9IDAKKyAgICAgICAgICAgIGlmIHNlbGYucmV0dXJuY29kZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXR1cm5jb2RlCisKKyAgICAgICAgICAgICMgZW5kdGltZSBpcyBwcmVmZXJyZWQgdG8gdGltZW91dC4gIHRpbWVvdXQgaXMgb25seSB1c2VkIGZvcgorICAgICAgICAgICAgIyBwcmludGluZy4KKyAgICAgICAgICAgIGlmIGVuZHRpbWUgaXMgbm90IE5vbmUgb3IgdGltZW91dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBpZiBlbmR0aW1lIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGVuZHRpbWUgPSBfdGltZSgpICsgdGltZW91dAorICAgICAgICAgICAgICAgIGVsaWYgdGltZW91dCBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2VsZi5fcmVtYWluaW5nX3RpbWUoZW5kdGltZSkKKworICAgICAgICAgICAgaWYgZW5kdGltZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAjIEVudGVyIGEgYnVzeSBsb29wIGlmIHdlIGhhdmUgYSB0aW1lb3V0LiAgVGhpcyBidXN5IGxvb3Agd2FzCisgICAgICAgICAgICAgICAgIyBjcmliYmVkIGZyb20gTGliL3RocmVhZGluZy5weSBpbiBUaHJlYWQud2FpdCgpIGF0IHI3MTA2NS4KKyAgICAgICAgICAgICAgICBkZWxheSA9IDAuMDAwNSAjIDUwMCB1cyAtPiBpbml0aWFsIGRlbGF5IG9mIDEgbXMKKyAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgICAgICAocGlkLCBzdHMpID0gc2VsZi5fdHJ5X3dhaXQob3MuV05PSEFORykKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHBpZCA9PSBzZWxmLnBpZCBvciBwaWQgPT0gMAorICAgICAgICAgICAgICAgICAgICBpZiBwaWQgPT0gc2VsZi5waWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9oYW5kbGVfZXhpdHN0YXR1cyhzdHMpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcgPSBzZWxmLl9yZW1haW5pbmdfdGltZShlbmR0aW1lKQorICAgICAgICAgICAgICAgICAgICBpZiByZW1haW5pbmcgPD0gMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFRpbWVvdXRFeHBpcmVkKHNlbGYuYXJncywgdGltZW91dCkKKyAgICAgICAgICAgICAgICAgICAgZGVsYXkgPSBtaW4oZGVsYXkgKiAyLCByZW1haW5pbmcsIC4wNSkKKyAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcChkZWxheSkKKyAgICAgICAgICAgIGVsaWYgc2VsZi5yZXR1cm5jb2RlIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgKHBpZCwgc3RzKSA9IHNlbGYuX3RyeV93YWl0KDApCiAgICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlX2V4aXRzdGF0dXMoc3RzKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYucmV0dXJuY29kZQogCiAKLSAgICAgICAgZGVmIF9jb21tdW5pY2F0ZShzZWxmLCBpbnB1dCk6Ci0gICAgICAgICAgICBpZiBzZWxmLnN0ZGluOgorICAgICAgICBkZWYgX2NvbW11bmljYXRlKHNlbGYsIGlucHV0LCBlbmR0aW1lLCBvcmlnX3RpbWVvdXQpOgorICAgICAgICAgICAgaWYgc2VsZi5zdGRpbiBhbmQgbm90IHNlbGYuX2NvbW11bmljYXRpb25fc3RhcnRlZDoKICAgICAgICAgICAgICAgICAjIEZsdXNoIHN0ZGlvIGJ1ZmZlci4gIFRoaXMgbWlnaHQgYmxvY2ssIGlmIHRoZSB1c2VyIGhhcwogICAgICAgICAgICAgICAgICMgYmVlbiB3cml0aW5nIHRvIC5zdGRpbiBpbiBhbiB1bmNvbnRyb2xsZWQgZmFzaGlvbi4KICAgICAgICAgICAgICAgICBzZWxmLnN0ZGluLmZsdXNoKCkKQEAgLTE0MzIsOSArMTUwOSwxMyBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLnN0ZGluLmNsb3NlKCkKIAogICAgICAgICAgICAgaWYgX2hhc19wb2xsOgotICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gc2VsZi5fY29tbXVuaWNhdGVfd2l0aF9wb2xsKGlucHV0KQorICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gc2VsZi5fY29tbXVuaWNhdGVfd2l0aF9wb2xsKGlucHV0LCBlbmR0aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdfdGltZW91dCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc3Rkb3V0LCBzdGRlcnIgPSBzZWxmLl9jb21tdW5pY2F0ZV93aXRoX3NlbGVjdChpbnB1dCkKKyAgICAgICAgICAgICAgICBzdGRvdXQsIHN0ZGVyciA9IHNlbGYuX2NvbW11bmljYXRlX3dpdGhfc2VsZWN0KGlucHV0LCBlbmR0aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JpZ190aW1lb3V0KQorCisgICAgICAgICAgICBzZWxmLndhaXQodGltZW91dD1zZWxmLl9yZW1haW5pbmdfdGltZShlbmR0aW1lKSkKIAogICAgICAgICAgICAgIyBBbGwgZGF0YSBleGNoYW5nZWQuICBUcmFuc2xhdGUgbGlzdHMgaW50byBzdHJpbmdzLgogICAgICAgICAgICAgaWYgc3Rkb3V0IGlzIG5vdCBOb25lOgpAQCAtMTQ1Miw2NyArMTUzMyw4NyBAQAogICAgICAgICAgICAgICAgICAgICBzdGRlcnIgPSBzZWxmLl90cmFuc2xhdGVfbmV3bGluZXMoc3RkZXJyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGRlcnIuZW5jb2RpbmcpCiAKLSAgICAgICAgICAgIHNlbGYud2FpdCgpCiAgICAgICAgICAgICByZXR1cm4gKHN0ZG91dCwgc3RkZXJyKQogCiAKLSAgICAgICAgZGVmIF9jb21tdW5pY2F0ZV93aXRoX3BvbGwoc2VsZiwgaW5wdXQpOgorICAgICAgICBkZWYgX2NvbW11bmljYXRlX3dpdGhfcG9sbChzZWxmLCBpbnB1dCwgZW5kdGltZSwgb3JpZ190aW1lb3V0KToKICAgICAgICAgICAgIHN0ZG91dCA9IE5vbmUgIyBSZXR1cm4KICAgICAgICAgICAgIHN0ZGVyciA9IE5vbmUgIyBSZXR1cm4KLSAgICAgICAgICAgIGZkMmZpbGUgPSB7fQotICAgICAgICAgICAgZmQyb3V0cHV0ID0ge30KKworICAgICAgICAgICAgaWYgbm90IHNlbGYuX2NvbW11bmljYXRpb25fc3RhcnRlZDoKKyAgICAgICAgICAgICAgICBzZWxmLl9mZDJmaWxlID0ge30KIAogICAgICAgICAgICAgcG9sbGVyID0gc2VsZWN0LnBvbGwoKQogICAgICAgICAgICAgZGVmIHJlZ2lzdGVyX2FuZF9hcHBlbmQoZmlsZV9vYmosIGV2ZW50bWFzayk6CiAgICAgICAgICAgICAgICAgcG9sbGVyLnJlZ2lzdGVyKGZpbGVfb2JqLmZpbGVubygpLCBldmVudG1hc2spCi0gICAgICAgICAgICAgICAgZmQyZmlsZVtmaWxlX29iai5maWxlbm8oKV0gPSBmaWxlX29iagorICAgICAgICAgICAgICAgIHNlbGYuX2ZkMmZpbGVbZmlsZV9vYmouZmlsZW5vKCldID0gZmlsZV9vYmoKIAogICAgICAgICAgICAgZGVmIGNsb3NlX3VucmVnaXN0ZXJfYW5kX3JlbW92ZShmZCk6CiAgICAgICAgICAgICAgICAgcG9sbGVyLnVucmVnaXN0ZXIoZmQpCi0gICAgICAgICAgICAgICAgZmQyZmlsZVtmZF0uY2xvc2UoKQotICAgICAgICAgICAgICAgIGZkMmZpbGUucG9wKGZkKQorICAgICAgICAgICAgICAgIHNlbGYuX2ZkMmZpbGVbZmRdLmNsb3NlKCkKKyAgICAgICAgICAgICAgICBzZWxmLl9mZDJmaWxlLnBvcChmZCkKIAogICAgICAgICAgICAgaWYgc2VsZi5zdGRpbiBhbmQgaW5wdXQ6CiAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfYW5kX2FwcGVuZChzZWxmLnN0ZGluLCBzZWxlY3QuUE9MTE9VVCkKIAorICAgICAgICAgICAgIyBPbmx5IGNyZWF0ZSB0aGlzIG1hcHBpbmcgaWYgd2UgaGF2ZW4ndCBhbHJlYWR5LgorICAgICAgICAgICAgaWYgbm90IHNlbGYuX2NvbW11bmljYXRpb25fc3RhcnRlZDoKKyAgICAgICAgICAgICAgICBzZWxmLl9mZDJvdXRwdXQgPSB7fQorICAgICAgICAgICAgICAgIGlmIHNlbGYuc3Rkb3V0OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9mZDJvdXRwdXRbc2VsZi5zdGRvdXQuZmlsZW5vKCldID0gW10KKyAgICAgICAgICAgICAgICBpZiBzZWxmLnN0ZGVycjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZmQyb3V0cHV0W3NlbGYuc3RkZXJyLmZpbGVubygpXSA9IFtdCisKICAgICAgICAgICAgIHNlbGVjdF9QT0xMSU5fUE9MTFBSSSA9IHNlbGVjdC5QT0xMSU4gfCBzZWxlY3QuUE9MTFBSSQogICAgICAgICAgICAgaWYgc2VsZi5zdGRvdXQ6CiAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfYW5kX2FwcGVuZChzZWxmLnN0ZG91dCwgc2VsZWN0X1BPTExJTl9QT0xMUFJJKQotICAgICAgICAgICAgICAgIGZkMm91dHB1dFtzZWxmLnN0ZG91dC5maWxlbm8oKV0gPSBzdGRvdXQgPSBbXQorICAgICAgICAgICAgICAgIHN0ZG91dCA9IHNlbGYuX2ZkMm91dHB1dFtzZWxmLnN0ZG91dC5maWxlbm8oKV0KICAgICAgICAgICAgIGlmIHNlbGYuc3RkZXJyOgogICAgICAgICAgICAgICAgIHJlZ2lzdGVyX2FuZF9hcHBlbmQoc2VsZi5zdGRlcnIsIHNlbGVjdF9QT0xMSU5fUE9MTFBSSSkKLSAgICAgICAgICAgICAgICBmZDJvdXRwdXRbc2VsZi5zdGRlcnIuZmlsZW5vKCldID0gc3RkZXJyID0gW10KKyAgICAgICAgICAgICAgICBzdGRlcnIgPSBzZWxmLl9mZDJvdXRwdXRbc2VsZi5zdGRlcnIuZmlsZW5vKCldCiAKLSAgICAgICAgICAgIGlucHV0X29mZnNldCA9IDAKLSAgICAgICAgICAgIHdoaWxlIGZkMmZpbGU6CisgICAgICAgICAgICAjIFNhdmUgdGhlIGlucHV0IGhlcmUgc28gdGhhdCBpZiB3ZSB0aW1lIG91dCB3aGlsZSBjb21tdW5pY2F0aW5nLAorICAgICAgICAgICAgIyB3ZSBjYW4gY29udGludWUgc2VuZGluZyBpbnB1dCBpZiB3ZSByZXRyeS4KKyAgICAgICAgICAgIGlmIHNlbGYuc3RkaW4gYW5kIHNlbGYuX2lucHV0IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5faW5wdXRfb2Zmc2V0ID0gMAorICAgICAgICAgICAgICAgIHNlbGYuX2lucHV0ID0gaW5wdXQKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnVuaXZlcnNhbF9uZXdsaW5lczoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5faW5wdXQgPSBzZWxmLl9pbnB1dC5lbmNvZGUoc2VsZi5zdGRpbi5lbmNvZGluZykKKworICAgICAgICAgICAgd2hpbGUgc2VsZi5fZmQyZmlsZToKKyAgICAgICAgICAgICAgICB0aW1lb3V0ID0gc2VsZi5fcmVtYWluaW5nX3RpbWUoZW5kdGltZSkKKyAgICAgICAgICAgICAgICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lIGFuZCB0aW1lb3V0IDwgMDoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVGltZW91dEV4cGlyZWQoc2VsZi5hcmdzLCBvcmlnX3RpbWVvdXQpCiAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICByZWFkeSA9IHBvbGxlci5wb2xsKCkKKyAgICAgICAgICAgICAgICAgICAgcmVhZHkgPSBwb2xsZXIucG9sbCh0aW1lb3V0KQogICAgICAgICAgICAgICAgIGV4Y2VwdCBzZWxlY3QuZXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICAgICAgaWYgZS5hcmdzWzBdID09IGVycm5vLkVJTlRSOgogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBzZWxmLl9jaGVja190aW1lb3V0KGVuZHRpbWUsIG9yaWdfdGltZW91dCkKIAogICAgICAgICAgICAgICAgICMgWFhYIFJld3JpdGUgdGhlc2UgdG8gdXNlIG5vbi1ibG9ja2luZyBJL08gb24gdGhlCiAgICAgICAgICAgICAgICAgIyBmaWxlIG9iamVjdHM7IHRoZXkgYXJlIG5vIGxvbmdlciB1c2luZyBDIHN0ZGlvIQogCiAgICAgICAgICAgICAgICAgZm9yIGZkLCBtb2RlIGluIHJlYWR5OgogICAgICAgICAgICAgICAgICAgICBpZiBtb2RlICYgc2VsZWN0LlBPTExPVVQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjaHVuayA9IGlucHV0W2lucHV0X29mZnNldCA6IGlucHV0X29mZnNldCArIF9QSVBFX0JVRl0KKyAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rID0gc2VsZi5faW5wdXRbc2VsZi5faW5wdXRfb2Zmc2V0IDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5faW5wdXRfb2Zmc2V0ICsgX1BJUEVfQlVGXQogICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0X29mZnNldCArPSBvcy53cml0ZShmZCwgY2h1bmspCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5faW5wdXRfb2Zmc2V0ICs9IG9zLndyaXRlKGZkLCBjaHVuaykKICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FUElQRToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfdW5yZWdpc3Rlcl9hbmRfcmVtb3ZlKGZkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlucHV0X29mZnNldCA+PSBsZW4oaW5wdXQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX2lucHV0X29mZnNldCA+PSBsZW4oc2VsZi5faW5wdXQpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV91bnJlZ2lzdGVyX2FuZF9yZW1vdmUoZmQpCiAgICAgICAgICAgICAgICAgICAgIGVsaWYgbW9kZSAmIHNlbGVjdF9QT0xMSU5fUE9MTFBSSToKICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBvcy5yZWFkKGZkLCA0MDk2KQogICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGRhdGE6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VfdW5yZWdpc3Rlcl9hbmRfcmVtb3ZlKGZkKQotICAgICAgICAgICAgICAgICAgICAgICAgZmQyb3V0cHV0W2ZkXS5hcHBlbmQoZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZkMm91dHB1dFtmZF0uYXBwZW5kKGRhdGEpCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAjIElnbm9yZSBoYW5nIHVwIG9yIGVycm9ycy4KICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlX3VucmVnaXN0ZXJfYW5kX3JlbW92ZShmZCkKQEAgLTE1MjAsNjEgKzE2MjEsODcgQEAKICAgICAgICAgICAgIHJldHVybiAoc3Rkb3V0LCBzdGRlcnIpCiAKIAotICAgICAgICBkZWYgX2NvbW11bmljYXRlX3dpdGhfc2VsZWN0KHNlbGYsIGlucHV0KToKLSAgICAgICAgICAgIHJlYWRfc2V0ID0gW10KLSAgICAgICAgICAgIHdyaXRlX3NldCA9IFtdCisgICAgICAgIGRlZiBfY29tbXVuaWNhdGVfd2l0aF9zZWxlY3Qoc2VsZiwgaW5wdXQsIGVuZHRpbWUsIG9yaWdfdGltZW91dCk6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fY29tbXVuaWNhdGlvbl9zdGFydGVkOgorICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfc2V0ID0gW10KKyAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9zZXQgPSBbXQorICAgICAgICAgICAgICAgIGlmIHNlbGYuc3RkaW4gYW5kIGlucHV0OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9zZXQuYXBwZW5kKHNlbGYuc3RkaW4pCisgICAgICAgICAgICAgICAgaWYgc2VsZi5zdGRvdXQ6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfc2V0LmFwcGVuZChzZWxmLnN0ZG91dCkKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnN0ZGVycjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVhZF9zZXQuYXBwZW5kKHNlbGYuc3RkZXJyKQorCisgICAgICAgICAgICBpZiBzZWxmLnN0ZGluIGFuZCBzZWxmLl9pbnB1dCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuX2lucHV0X29mZnNldCA9IDAKKyAgICAgICAgICAgICAgICBzZWxmLl9pbnB1dCA9IGlucHV0CisgICAgICAgICAgICAgICAgaWYgc2VsZi51bml2ZXJzYWxfbmV3bGluZXM6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2lucHV0ID0gc2VsZi5faW5wdXQuZW5jb2RlKHNlbGYuc3RkaW4uZW5jb2RpbmcpCisKICAgICAgICAgICAgIHN0ZG91dCA9IE5vbmUgIyBSZXR1cm4KICAgICAgICAgICAgIHN0ZGVyciA9IE5vbmUgIyBSZXR1cm4KIAotICAgICAgICAgICAgaWYgc2VsZi5zdGRpbiBhbmQgaW5wdXQ6Ci0gICAgICAgICAgICAgICAgd3JpdGVfc2V0LmFwcGVuZChzZWxmLnN0ZGluKQogICAgICAgICAgICAgaWYgc2VsZi5zdGRvdXQ6Ci0gICAgICAgICAgICAgICAgcmVhZF9zZXQuYXBwZW5kKHNlbGYuc3Rkb3V0KQotICAgICAgICAgICAgICAgIHN0ZG91dCA9IFtdCisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX2NvbW11bmljYXRpb25fc3RhcnRlZDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fc3Rkb3V0X2J1ZmYgPSBbXQorICAgICAgICAgICAgICAgIHN0ZG91dCA9IHNlbGYuX3N0ZG91dF9idWZmCiAgICAgICAgICAgICBpZiBzZWxmLnN0ZGVycjoKLSAgICAgICAgICAgICAgICByZWFkX3NldC5hcHBlbmQoc2VsZi5zdGRlcnIpCi0gICAgICAgICAgICAgICAgc3RkZXJyID0gW10KKyAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fY29tbXVuaWNhdGlvbl9zdGFydGVkOgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9zdGRlcnJfYnVmZiA9IFtdCisgICAgICAgICAgICAgICAgc3RkZXJyID0gc2VsZi5fc3RkZXJyX2J1ZmYKIAotICAgICAgICAgICAgaW5wdXRfb2Zmc2V0ID0gMAotICAgICAgICAgICAgd2hpbGUgcmVhZF9zZXQgb3Igd3JpdGVfc2V0OgorICAgICAgICAgICAgd2hpbGUgc2VsZi5fcmVhZF9zZXQgb3Igc2VsZi5fd3JpdGVfc2V0OgorICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzZWxmLl9yZW1haW5pbmdfdGltZShlbmR0aW1lKQorICAgICAgICAgICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5vbmUgYW5kIHRpbWVvdXQgPCAwOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBUaW1lb3V0RXhwaXJlZChzZWxmLmFyZ3MsIG9yaWdfdGltZW91dCkKICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHJsaXN0LCB3bGlzdCwgeGxpc3QgPSBzZWxlY3Quc2VsZWN0KHJlYWRfc2V0LCB3cml0ZV9zZXQsIFtdKQorICAgICAgICAgICAgICAgICAgICAocmxpc3QsIHdsaXN0LCB4bGlzdCkgPSBcCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2VsZWN0KHNlbGYuX3JlYWRfc2V0LCBzZWxmLl93cml0ZV9zZXQsIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KQogICAgICAgICAgICAgICAgIGV4Y2VwdCBzZWxlY3QuZXJyb3IgYXMgZToKICAgICAgICAgICAgICAgICAgICAgaWYgZS5hcmdzWzBdID09IGVycm5vLkVJTlRSOgogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKIAorICAgICAgICAgICAgICAgICMgQWNjb3JkaW5nIHRvIHRoZSBkb2NzLCByZXR1cm5pbmcgdGhyZWUgZW1wdHkgbGlzdHMgaW5kaWNhdGVzCisgICAgICAgICAgICAgICAgIyB0aGF0IHRoZSB0aW1lb3V0IGV4cGlyZWQuCisgICAgICAgICAgICAgICAgaWYgbm90IChybGlzdCBvciB3bGlzdCBvciB4bGlzdCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFRpbWVvdXRFeHBpcmVkKHNlbGYuYXJncywgb3JpZ190aW1lb3V0KQorICAgICAgICAgICAgICAgICMgV2UgYWxzbyBjaGVjayB3aGF0IHRpbWUgaXQgaXMgb3Vyc2VsdmVzIGZvciBnb29kIG1lYXN1cmUuCisgICAgICAgICAgICAgICAgc2VsZi5fY2hlY2tfdGltZW91dChlbmR0aW1lLCBvcmlnX3RpbWVvdXQpCisKICAgICAgICAgICAgICAgICAjIFhYWCBSZXdyaXRlIHRoZXNlIHRvIHVzZSBub24tYmxvY2tpbmcgSS9PIG9uIHRoZQogICAgICAgICAgICAgICAgICMgZmlsZSBvYmplY3RzOyB0aGV5IGFyZSBubyBsb25nZXIgdXNpbmcgQyBzdGRpbyEKIAogICAgICAgICAgICAgICAgIGlmIHNlbGYuc3RkaW4gaW4gd2xpc3Q6Ci0gICAgICAgICAgICAgICAgICAgIGNodW5rID0gaW5wdXRbaW5wdXRfb2Zmc2V0IDogaW5wdXRfb2Zmc2V0ICsgX1BJUEVfQlVGXQorICAgICAgICAgICAgICAgICAgICBjaHVuayA9IHNlbGYuX2lucHV0W3NlbGYuX2lucHV0X29mZnNldCA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5faW5wdXRfb2Zmc2V0ICsgX1BJUEVfQlVGXQogICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICBieXRlc193cml0dGVuID0gb3Mud3JpdGUoc2VsZi5zdGRpbi5maWxlbm8oKSwgY2h1bmspCiAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVQSVBFOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RkaW4uY2xvc2UoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlX3NldC5yZW1vdmUoc2VsZi5zdGRpbikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl93cml0ZV9zZXQucmVtb3ZlKHNlbGYuc3RkaW4pCiAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnB1dF9vZmZzZXQgKz0gYnl0ZXNfd3JpdHRlbgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgaW5wdXRfb2Zmc2V0ID49IGxlbihpbnB1dCk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9pbnB1dF9vZmZzZXQgKz0gYnl0ZXNfd3JpdHRlbgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5faW5wdXRfb2Zmc2V0ID49IGxlbihzZWxmLl9pbnB1dCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdGRpbi5jbG9zZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVfc2V0LnJlbW92ZShzZWxmLnN0ZGluKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3dyaXRlX3NldC5yZW1vdmUoc2VsZi5zdGRpbikKIAogICAgICAgICAgICAgICAgIGlmIHNlbGYuc3Rkb3V0IGluIHJsaXN0OgogICAgICAgICAgICAgICAgICAgICBkYXRhID0gb3MucmVhZChzZWxmLnN0ZG91dC5maWxlbm8oKSwgMTAyNCkKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGRhdGE6CiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0ZG91dC5jbG9zZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NldC5yZW1vdmUoc2VsZi5zdGRvdXQpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWFkX3NldC5yZW1vdmUoc2VsZi5zdGRvdXQpCiAgICAgICAgICAgICAgICAgICAgIHN0ZG91dC5hcHBlbmQoZGF0YSkKIAogICAgICAgICAgICAgICAgIGlmIHNlbGYuc3RkZXJyIGluIHJsaXN0OgogICAgICAgICAgICAgICAgICAgICBkYXRhID0gb3MucmVhZChzZWxmLnN0ZGVyci5maWxlbm8oKSwgMTAyNCkKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGRhdGE6CiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN0ZGVyci5jbG9zZSgpCi0gICAgICAgICAgICAgICAgICAgICAgICByZWFkX3NldC5yZW1vdmUoc2VsZi5zdGRlcnIpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWFkX3NldC5yZW1vdmUoc2VsZi5zdGRlcnIpCiAgICAgICAgICAgICAgICAgICAgIHN0ZGVyci5hcHBlbmQoZGF0YSkKIAogICAgICAgICAgICAgcmV0dXJuIChzdGRvdXQsIHN0ZGVycikKQEAgLTE1OTQsNjggKzE3MjEsMyBAQAogICAgICAgICAgICAgIiIiS2lsbCB0aGUgcHJvY2VzcyB3aXRoIFNJR0tJTEwKICAgICAgICAgICAgICIiIgogICAgICAgICAgICAgc2VsZi5zZW5kX3NpZ25hbChzaWduYWwuU0lHS0lMTCkKLQotCi1kZWYgX2RlbW9fcG9zaXgoKToKLSAgICAjCi0gICAgIyBFeGFtcGxlIDE6IFNpbXBsZSByZWRpcmVjdGlvbjogR2V0IHByb2Nlc3MgbGlzdAotICAgICMKLSAgICBwbGlzdCA9IFBvcGVuKFsicHMiXSwgc3Rkb3V0PVBJUEUpLmNvbW11bmljYXRlKClbMF0KLSAgICBwcmludCgiUHJvY2VzcyBsaXN0OiIpCi0gICAgcHJpbnQocGxpc3QpCi0KLSAgICAjCi0gICAgIyBFeGFtcGxlIDI6IENoYW5nZSB1aWQgYmVmb3JlIGV4ZWN1dGluZyBjaGlsZAotICAgICMKLSAgICBpZiBvcy5nZXR1aWQoKSA9PSAwOgotICAgICAgICBwID0gUG9wZW4oWyJpZCJdLCBwcmVleGVjX2ZuPWxhbWJkYTogb3Muc2V0dWlkKDEwMCkpCi0gICAgICAgIHAud2FpdCgpCi0KLSAgICAjCi0gICAgIyBFeGFtcGxlIDM6IENvbm5lY3Rpbmcgc2V2ZXJhbCBzdWJwcm9jZXNzZXMKLSAgICAjCi0gICAgcHJpbnQoIkxvb2tpbmcgZm9yICdoZGEnLi4uIikKLSAgICBwMSA9IFBvcGVuKFsiZG1lc2ciXSwgc3Rkb3V0PVBJUEUpCi0gICAgcDIgPSBQb3BlbihbImdyZXAiLCAiaGRhIl0sIHN0ZGluPXAxLnN0ZG91dCwgc3Rkb3V0PVBJUEUpCi0gICAgcHJpbnQocmVwcihwMi5jb21tdW5pY2F0ZSgpWzBdKSkKLQotICAgICMKLSAgICAjIEV4YW1wbGUgNDogQ2F0Y2ggZXhlY3V0aW9uIGVycm9yCi0gICAgIwotICAgIHByaW50KCkKLSAgICBwcmludCgiVHJ5aW5nIGEgd2VpcmQgZmlsZS4uLiIpCi0gICAgdHJ5OgotICAgICAgICBwcmludChQb3BlbihbIi90aGlzL3BhdGgvZG9lcy9ub3QvZXhpc3QiXSkuY29tbXVuaWNhdGUoKSkKLSAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICBpZiBlLmVycm5vID09IGVycm5vLkVOT0VOVDoKLSAgICAgICAgICAgIHByaW50KCJUaGUgZmlsZSBkaWRuJ3QgZXhpc3QuICBJIHRob3VnaHQgc28uLi4iKQotICAgICAgICAgICAgcHJpbnQoIkNoaWxkIHRyYWNlYmFjazoiKQotICAgICAgICAgICAgcHJpbnQoZS5jaGlsZF90cmFjZWJhY2spCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCgiRXJyb3IiLCBlLmVycm5vKQotICAgIGVsc2U6Ci0gICAgICAgIHByaW50KCJHb3NoLiAgTm8gZXJyb3IuIiwgZmlsZT1zeXMuc3RkZXJyKQotCi0KLWRlZiBfZGVtb193aW5kb3dzKCk6Ci0gICAgIwotICAgICMgRXhhbXBsZSAxOiBDb25uZWN0aW5nIHNldmVyYWwgc3VicHJvY2Vzc2VzCi0gICAgIwotICAgIHByaW50KCJMb29raW5nIGZvciAnUFJPTVBUJyBpbiBzZXQgb3V0cHV0Li4uIikKLSAgICBwMSA9IFBvcGVuKCJzZXQiLCBzdGRvdXQ9UElQRSwgc2hlbGw9VHJ1ZSkKLSAgICBwMiA9IFBvcGVuKCdmaW5kICJQUk9NUFQiJywgc3RkaW49cDEuc3Rkb3V0LCBzdGRvdXQ9UElQRSkKLSAgICBwcmludChyZXByKHAyLmNvbW11bmljYXRlKClbMF0pKQotCi0gICAgIwotICAgICMgRXhhbXBsZSAyOiBTaW1wbGUgZXhlY3V0aW9uIG9mIHByb2dyYW0KLSAgICAjCi0gICAgcHJpbnQoIkV4ZWN1dGluZyBjYWxjLi4uIikKLSAgICBwID0gUG9wZW4oImNhbGMiKQotICAgIHAud2FpdCgpCi0KLQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICBpZiBtc3dpbmRvd3M6Ci0gICAgICAgIF9kZW1vX3dpbmRvd3MoKQotICAgIGVsc2U6Ci0gICAgICAgIF9kZW1vX3Bvc2l4KCkKZGlmZiAtLWdpdCBhL0xpYi9zeXNjb25maWcucHkgYi9MaWIvc3lzY29uZmlnLnB5CmluZGV4IGIyMTgzZDguLjRmMGE5YTkgMTAwNjQ0Ci0tLSBhL0xpYi9zeXNjb25maWcucHkKKysrIGIvTGliL3N5c2NvbmZpZy5weQpAQCAtMSw4ICsxLDggQEAKLSIiIlByb3ZpZGUgYWNjZXNzIHRvIFB5dGhvbidzIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24uCisiIiJBY2Nlc3MgdG8gUHl0aG9uJ3MgY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbi4iIiIKIAotIiIiCi1pbXBvcnQgc3lzCiBpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHN5cwogZnJvbSBvcy5wYXRoIGltcG9ydCBwYXJkaXIsIHJlYWxwYXRoCiAKIF9fYWxsX18gPSBbCkBAIC0xNyw1MCArMTcsNTAgQEAKICAgICAnZ2V0X3B5dGhvbl92ZXJzaW9uJywKICAgICAnZ2V0X3NjaGVtZV9uYW1lcycsCiAgICAgJ3BhcnNlX2NvbmZpZ19oJywKLSAgICBdCitdCiAKIF9JTlNUQUxMX1NDSEVNRVMgPSB7CiAgICAgJ3Bvc2l4X3ByZWZpeCc6IHsKLSAgICAgICAgJ3N0ZGxpYic6ICd7YmFzZX0vbGliL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fScsCisgICAgICAgICdzdGRsaWInOiAne2luc3RhbGxlZF9iYXNlfS9saWIvcHl0aG9ue3B5X3ZlcnNpb25fc2hvcnR9JywKICAgICAgICAgJ3BsYXRzdGRsaWInOiAne3BsYXRiYXNlfS9saWIvcHl0aG9ue3B5X3ZlcnNpb25fc2hvcnR9JywKICAgICAgICAgJ3B1cmVsaWInOiAne2Jhc2V9L2xpYi9weXRob257cHlfdmVyc2lvbl9zaG9ydH0vc2l0ZS1wYWNrYWdlcycsCiAgICAgICAgICdwbGF0bGliJzogJ3twbGF0YmFzZX0vbGliL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fS9zaXRlLXBhY2thZ2VzJywKICAgICAgICAgJ2luY2x1ZGUnOgotICAgICAgICAgICAgJ3tiYXNlfS9pbmNsdWRlL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fXthYmlmbGFnc30nLAorICAgICAgICAgICAgJ3tpbnN0YWxsZWRfYmFzZX0vaW5jbHVkZS9weXRob257cHlfdmVyc2lvbl9zaG9ydH17YWJpZmxhZ3N9JywKICAgICAgICAgJ3BsYXRpbmNsdWRlJzoKLSAgICAgICAgICAgICd7cGxhdGJhc2V9L2luY2x1ZGUvcHl0aG9ue3B5X3ZlcnNpb25fc2hvcnR9e2FiaWZsYWdzfScsCisgICAgICAgICAgICAne2luc3RhbGxlZF9wbGF0YmFzZX0vaW5jbHVkZS9weXRob257cHlfdmVyc2lvbl9zaG9ydH17YWJpZmxhZ3N9JywKICAgICAgICAgJ3NjcmlwdHMnOiAne2Jhc2V9L2JpbicsCiAgICAgICAgICdkYXRhJzogJ3tiYXNlfScsCiAgICAgICAgIH0sCiAgICAgJ3Bvc2l4X2hvbWUnOiB7Ci0gICAgICAgICdzdGRsaWInOiAne2Jhc2V9L2xpYi9weXRob24nLAorICAgICAgICAnc3RkbGliJzogJ3tpbnN0YWxsZWRfYmFzZX0vbGliL3B5dGhvbicsCiAgICAgICAgICdwbGF0c3RkbGliJzogJ3tiYXNlfS9saWIvcHl0aG9uJywKICAgICAgICAgJ3B1cmVsaWInOiAne2Jhc2V9L2xpYi9weXRob24nLAogICAgICAgICAncGxhdGxpYic6ICd7YmFzZX0vbGliL3B5dGhvbicsCi0gICAgICAgICdpbmNsdWRlJzogJ3tiYXNlfS9pbmNsdWRlL3B5dGhvbicsCi0gICAgICAgICdwbGF0aW5jbHVkZSc6ICd7YmFzZX0vaW5jbHVkZS9weXRob24nLAorICAgICAgICAnaW5jbHVkZSc6ICd7aW5zdGFsbGVkX2Jhc2V9L2luY2x1ZGUvcHl0aG9uJywKKyAgICAgICAgJ3BsYXRpbmNsdWRlJzogJ3tpbnN0YWxsZWRfYmFzZX0vaW5jbHVkZS9weXRob24nLAogICAgICAgICAnc2NyaXB0cyc6ICd7YmFzZX0vYmluJywKLSAgICAgICAgJ2RhdGEnICAgOiAne2Jhc2V9JywKKyAgICAgICAgJ2RhdGEnOiAne2Jhc2V9JywKICAgICAgICAgfSwKICAgICAnbnQnOiB7Ci0gICAgICAgICdzdGRsaWInOiAne2Jhc2V9L0xpYicsCisgICAgICAgICdzdGRsaWInOiAne2luc3RhbGxlZF9iYXNlfS9MaWInLAogICAgICAgICAncGxhdHN0ZGxpYic6ICd7YmFzZX0vTGliJywKICAgICAgICAgJ3B1cmVsaWInOiAne2Jhc2V9L0xpYi9zaXRlLXBhY2thZ2VzJywKICAgICAgICAgJ3BsYXRsaWInOiAne2Jhc2V9L0xpYi9zaXRlLXBhY2thZ2VzJywKLSAgICAgICAgJ2luY2x1ZGUnOiAne2Jhc2V9L0luY2x1ZGUnLAotICAgICAgICAncGxhdGluY2x1ZGUnOiAne2Jhc2V9L0luY2x1ZGUnLAorICAgICAgICAnaW5jbHVkZSc6ICd7aW5zdGFsbGVkX2Jhc2V9L0luY2x1ZGUnLAorICAgICAgICAncGxhdGluY2x1ZGUnOiAne2luc3RhbGxlZF9iYXNlfS9JbmNsdWRlJywKICAgICAgICAgJ3NjcmlwdHMnOiAne2Jhc2V9L1NjcmlwdHMnLAotICAgICAgICAnZGF0YScgICA6ICd7YmFzZX0nLAorICAgICAgICAnZGF0YSc6ICd7YmFzZX0nLAogICAgICAgICB9LAogICAgICdvczInOiB7Ci0gICAgICAgICdzdGRsaWInOiAne2Jhc2V9L0xpYicsCisgICAgICAgICdzdGRsaWInOiAne2luc3RhbGxlZF9iYXNlfS9MaWInLAogICAgICAgICAncGxhdHN0ZGxpYic6ICd7YmFzZX0vTGliJywKICAgICAgICAgJ3B1cmVsaWInOiAne2Jhc2V9L0xpYi9zaXRlLXBhY2thZ2VzJywKICAgICAgICAgJ3BsYXRsaWInOiAne2Jhc2V9L0xpYi9zaXRlLXBhY2thZ2VzJywKLSAgICAgICAgJ2luY2x1ZGUnOiAne2Jhc2V9L0luY2x1ZGUnLAotICAgICAgICAncGxhdGluY2x1ZGUnOiAne2Jhc2V9L0luY2x1ZGUnLAorICAgICAgICAnaW5jbHVkZSc6ICd7aW5zdGFsbGVkX2Jhc2V9L0luY2x1ZGUnLAorICAgICAgICAncGxhdGluY2x1ZGUnOiAne2luc3RhbGxlZF9iYXNlfS9JbmNsdWRlJywKICAgICAgICAgJ3NjcmlwdHMnOiAne2Jhc2V9L1NjcmlwdHMnLAotICAgICAgICAnZGF0YScgICA6ICd7YmFzZX0nLAorICAgICAgICAnZGF0YSc6ICd7YmFzZX0nLAogICAgICAgICB9LAogICAgICdvczJfaG9tZSc6IHsKICAgICAgICAgJ3N0ZGxpYic6ICd7dXNlcmJhc2V9L2xpYi9weXRob257cHlfdmVyc2lvbl9zaG9ydH0nLApAQCAtNjksNyArNjksNyBAQAogICAgICAgICAncGxhdGxpYic6ICd7dXNlcmJhc2V9L2xpYi9weXRob257cHlfdmVyc2lvbl9zaG9ydH0vc2l0ZS1wYWNrYWdlcycsCiAgICAgICAgICdpbmNsdWRlJzogJ3t1c2VyYmFzZX0vaW5jbHVkZS9weXRob257cHlfdmVyc2lvbl9zaG9ydH0nLAogICAgICAgICAnc2NyaXB0cyc6ICd7dXNlcmJhc2V9L2JpbicsCi0gICAgICAgICdkYXRhJyAgIDogJ3t1c2VyYmFzZX0nLAorICAgICAgICAnZGF0YSc6ICd7dXNlcmJhc2V9JywKICAgICAgICAgfSwKICAgICAnbnRfdXNlcic6IHsKICAgICAgICAgJ3N0ZGxpYic6ICd7dXNlcmJhc2V9L1B5dGhvbntweV92ZXJzaW9uX25vZG90fScsCkBAIC03OCw3ICs3OCw3IEBACiAgICAgICAgICdwbGF0bGliJzogJ3t1c2VyYmFzZX0vUHl0aG9ue3B5X3ZlcnNpb25fbm9kb3R9L3NpdGUtcGFja2FnZXMnLAogICAgICAgICAnaW5jbHVkZSc6ICd7dXNlcmJhc2V9L1B5dGhvbntweV92ZXJzaW9uX25vZG90fS9JbmNsdWRlJywKICAgICAgICAgJ3NjcmlwdHMnOiAne3VzZXJiYXNlfS9TY3JpcHRzJywKLSAgICAgICAgJ2RhdGEnICAgOiAne3VzZXJiYXNlfScsCisgICAgICAgICdkYXRhJzogJ3t1c2VyYmFzZX0nLAogICAgICAgICB9LAogICAgICdwb3NpeF91c2VyJzogewogICAgICAgICAnc3RkbGliJzogJ3t1c2VyYmFzZX0vbGliL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fScsCkBAIC04Nyw3ICs4Nyw3IEBACiAgICAgICAgICdwbGF0bGliJzogJ3t1c2VyYmFzZX0vbGliL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fS9zaXRlLXBhY2thZ2VzJywKICAgICAgICAgJ2luY2x1ZGUnOiAne3VzZXJiYXNlfS9pbmNsdWRlL3B5dGhvbntweV92ZXJzaW9uX3Nob3J0fScsCiAgICAgICAgICdzY3JpcHRzJzogJ3t1c2VyYmFzZX0vYmluJywKLSAgICAgICAgJ2RhdGEnICAgOiAne3VzZXJiYXNlfScsCisgICAgICAgICdkYXRhJzogJ3t1c2VyYmFzZX0nLAogICAgICAgICB9LAogICAgICdvc3hfZnJhbWV3b3JrX3VzZXInOiB7CiAgICAgICAgICdzdGRsaWInOiAne3VzZXJiYXNlfS9saWIvcHl0aG9uJywKQEAgLTk2LDIwICs5NiwyNiBAQAogICAgICAgICAncGxhdGxpYic6ICd7dXNlcmJhc2V9L2xpYi9weXRob24vc2l0ZS1wYWNrYWdlcycsCiAgICAgICAgICdpbmNsdWRlJzogJ3t1c2VyYmFzZX0vaW5jbHVkZScsCiAgICAgICAgICdzY3JpcHRzJzogJ3t1c2VyYmFzZX0vYmluJywKLSAgICAgICAgJ2RhdGEnICAgOiAne3VzZXJiYXNlfScsCisgICAgICAgICdkYXRhJzogJ3t1c2VyYmFzZX0nLAogICAgICAgICB9LAogICAgIH0KIAogX1NDSEVNRV9LRVlTID0gKCdzdGRsaWInLCAncGxhdHN0ZGxpYicsICdwdXJlbGliJywgJ3BsYXRsaWInLCAnaW5jbHVkZScsCiAgICAgICAgICAgICAgICAgJ3NjcmlwdHMnLCAnZGF0YScpCisKKyAjIEZJWE1FIGRvbid0IHJlbHkgb24gc3lzLnZlcnNpb24gaGVyZSwgaXRzIGZvcm1hdCBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwKKyAjIG9mIENQeXRob24sIHVzZSBzeXMudmVyc2lvbl9pbmZvIG9yIHN5cy5oZXh2ZXJzaW9uCiBfUFlfVkVSU0lPTiA9IHN5cy52ZXJzaW9uLnNwbGl0KClbMF0KIF9QWV9WRVJTSU9OX1NIT1JUID0gc3lzLnZlcnNpb25bOjNdCiBfUFlfVkVSU0lPTl9TSE9SVF9OT19ET1QgPSBfUFlfVkVSU0lPTlswXSArIF9QWV9WRVJTSU9OWzJdCiBfUFJFRklYID0gb3MucGF0aC5ub3JtcGF0aChzeXMucHJlZml4KQorX0JBU0VfUFJFRklYID0gb3MucGF0aC5ub3JtcGF0aChzeXMuYmFzZV9wcmVmaXgpCiBfRVhFQ19QUkVGSVggPSBvcy5wYXRoLm5vcm1wYXRoKHN5cy5leGVjX3ByZWZpeCkKK19CQVNFX0VYRUNfUFJFRklYID0gb3MucGF0aC5ub3JtcGF0aChzeXMuYmFzZV9leGVjX3ByZWZpeCkKIF9DT05GSUdfVkFSUyA9IE5vbmUKIF9VU0VSX0JBU0UgPSBOb25lCiAKKwogZGVmIF9zYWZlX3JlYWxwYXRoKHBhdGgpOgogICAgIHRyeToKICAgICAgICAgcmV0dXJuIHJlYWxwYXRoKHBhdGgpCkBAIC0xMzIsMTkgKzEzOCwzNSBAQAogaWYgb3MubmFtZSA9PSAibnQiIGFuZCAiXFxwY2J1aWxkXFxhbWQ2NCIgaW4gX1BST0pFQ1RfQkFTRVstMTQ6XS5sb3dlcigpOgogICAgIF9QUk9KRUNUX0JBU0UgPSBfc2FmZV9yZWFscGF0aChvcy5wYXRoLmpvaW4oX1BST0pFQ1RfQkFTRSwgcGFyZGlyLCBwYXJkaXIpKQogCi1kZWYgaXNfcHl0aG9uX2J1aWxkKCk6CisjIHNldCBmb3IgY3Jvc3MgYnVpbGRzCitpZiAiX1BZVEhPTl9QUk9KRUNUX0JBU0UiIGluIG9zLmVudmlyb246CisgICAgX1BST0pFQ1RfQkFTRSA9IF9zYWZlX3JlYWxwYXRoKG9zLmVudmlyb25bIl9QWVRIT05fUFJPSkVDVF9CQVNFIl0pCisKK2RlZiBfaXNfcHl0aG9uX3NvdXJjZV9kaXIoZCk6CiAgICAgZm9yIGZuIGluICgiU2V0dXAuZGlzdCIsICJTZXR1cC5sb2NhbCIpOgotICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShvcy5wYXRoLmpvaW4oX1BST0pFQ1RfQkFTRSwgIk1vZHVsZXMiLCBmbikpOgorICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShvcy5wYXRoLmpvaW4oZCwgIk1vZHVsZXMiLCBmbikpOgogICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICByZXR1cm4gRmFsc2UKIAotX1BZVEhPTl9CVUlMRCA9IGlzX3B5dGhvbl9idWlsZCgpCitfc3lzX2hvbWUgPSBnZXRhdHRyKHN5cywgJ19ob21lJywgTm9uZSkKK2lmIF9zeXNfaG9tZSBhbmQgb3MubmFtZSA9PSAnbnQnIGFuZCBcCisgICAgX3N5c19ob21lLmxvd2VyKCkuZW5kc3dpdGgoKCdwY2J1aWxkJywgJ3BjYnVpbGRcXGFtZDY0JykpOgorICAgIF9zeXNfaG9tZSA9IG9zLnBhdGguZGlybmFtZShfc3lzX2hvbWUpCisgICAgaWYgX3N5c19ob21lLmVuZHN3aXRoKCdwY2J1aWxkJyk6ICAgIyBtdXN0IGJlIGFtZDY0CisgICAgICAgIF9zeXNfaG9tZSA9IG9zLnBhdGguZGlybmFtZShfc3lzX2hvbWUpCitkZWYgaXNfcHl0aG9uX2J1aWxkKGNoZWNrX2hvbWU9RmFsc2UpOgorICAgIGlmIGNoZWNrX2hvbWUgYW5kIF9zeXNfaG9tZToKKyAgICAgICAgcmV0dXJuIF9pc19weXRob25fc291cmNlX2Rpcihfc3lzX2hvbWUpCisgICAgcmV0dXJuIF9pc19weXRob25fc291cmNlX2RpcihfUFJPSkVDVF9CQVNFKQorCitfUFlUSE9OX0JVSUxEID0gaXNfcHl0aG9uX2J1aWxkKFRydWUpCiAKIGlmIF9QWVRIT05fQlVJTEQ6CiAgICAgZm9yIHNjaGVtZSBpbiAoJ3Bvc2l4X3ByZWZpeCcsICdwb3NpeF9ob21lJyk6CiAgICAgICAgIF9JTlNUQUxMX1NDSEVNRVNbc2NoZW1lXVsnaW5jbHVkZSddID0gJ3tzcmNkaXJ9L0luY2x1ZGUnCiAgICAgICAgIF9JTlNUQUxMX1NDSEVNRVNbc2NoZW1lXVsncGxhdGluY2x1ZGUnXSA9ICd7cHJvamVjdGJhc2V9Ly4nCiAKKwogZGVmIF9zdWJzdF92YXJzKHMsIGxvY2FsX3ZhcnMpOgogICAgIHRyeToKICAgICAgICAgcmV0dXJuIHMuZm9ybWF0KCoqbG9jYWxfdmFycykKQEAgLTE2MSw2ICsxODMsNyBAQAogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgdGFyZ2V0X2RpY3Rba2V5XSA9IHZhbHVlCiAKKwogZGVmIF9leHBhbmRfdmFycyhzY2hlbWUsIHZhcnMpOgogICAgIHJlcyA9IHt9CiAgICAgaWYgdmFycyBpcyBOb25lOgpAQCAtMTczLDI5ICsxOTYsNDEgQEAKICAgICAgICAgcmVzW2tleV0gPSBvcy5wYXRoLm5vcm1wYXRoKF9zdWJzdF92YXJzKHZhbHVlLCB2YXJzKSkKICAgICByZXR1cm4gcmVzCiAKKwogZGVmIF9nZXRfZGVmYXVsdF9zY2hlbWUoKToKICAgICBpZiBvcy5uYW1lID09ICdwb3NpeCc6CiAgICAgICAgICMgdGhlIGRlZmF1bHQgc2NoZW1lIGZvciBwb3NpeCBpcyBwb3NpeF9wcmVmaXgKICAgICAgICAgcmV0dXJuICdwb3NpeF9wcmVmaXgnCiAgICAgcmV0dXJuIG9zLm5hbWUKIAorCiBkZWYgX2dldHVzZXJiYXNlKCk6CiAgICAgZW52X2Jhc2UgPSBvcy5lbnZpcm9uLmdldCgiUFlUSE9OVVNFUkJBU0UiLCBOb25lKQorCiAgICAgZGVmIGpvaW51c2VyKCphcmdzKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguZXhwYW5kdXNlcihvcy5wYXRoLmpvaW4oKmFyZ3MpKQogCiAgICAgIyB3aGF0IGFib3V0ICdvczJlbXgnLCAncmlzY29zJyA/CiAgICAgaWYgb3MubmFtZSA9PSAibnQiOgogICAgICAgICBiYXNlID0gb3MuZW52aXJvbi5nZXQoIkFQUERBVEEiKSBvciAifiIKLSAgICAgICAgcmV0dXJuIGVudl9iYXNlIGlmIGVudl9iYXNlIGVsc2Ugam9pbnVzZXIoYmFzZSwgIlB5dGhvbiIpCisgICAgICAgIGlmIGVudl9iYXNlOgorICAgICAgICAgICAgcmV0dXJuIGVudl9iYXNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gam9pbnVzZXIoYmFzZSwgIlB5dGhvbiIpCiAKICAgICBpZiBzeXMucGxhdGZvcm0gPT0gImRhcndpbiI6CiAgICAgICAgIGZyYW1ld29yayA9IGdldF9jb25maWdfdmFyKCJQWVRIT05GUkFNRVdPUksiKQogICAgICAgICBpZiBmcmFtZXdvcms6Ci0gICAgICAgICAgICByZXR1cm4gZW52X2Jhc2UgaWYgZW52X2Jhc2UgZWxzZSBqb2ludXNlcigifiIsICJMaWJyYXJ5IiwgZnJhbWV3b3JrLCAiJWQuJWQiJSgKLSAgICAgICAgICAgICAgICBzeXMudmVyc2lvbl9pbmZvWzoyXSkpCisgICAgICAgICAgICBpZiBlbnZfYmFzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gZW52X2Jhc2UKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIGpvaW51c2VyKCJ+IiwgIkxpYnJhcnkiLCBmcmFtZXdvcmssICIlZC4lZCIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXMudmVyc2lvbl9pbmZvWzoyXSkKIAotICAgIHJldHVybiBlbnZfYmFzZSBpZiBlbnZfYmFzZSBlbHNlIGpvaW51c2VyKCJ+IiwgIi5sb2NhbCIpCisgICAgaWYgZW52X2Jhc2U6CisgICAgICAgIHJldHVybiBlbnZfYmFzZQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBqb2ludXNlcigifiIsICIubG9jYWwiKQogCiAKIGRlZiBfcGFyc2VfbWFrZWZpbGUoZmlsZW5hbWUsIHZhcnM9Tm9uZSk6CkBAIC0yMDUsNyArMjQwLDYgQEAKICAgICBvcHRpb25hbCBkaWN0aW9uYXJ5IGlzIHBhc3NlZCBpbiBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LCBpdCBpcwogICAgIHVzZWQgaW5zdGVhZCBvZiBhIG5ldyBkaWN0aW9uYXJ5LgogICAgICIiIgotICAgIGltcG9ydCByZQogICAgICMgUmVnZXhlcyBuZWVkZWQgZm9yIHBhcnNpbmcgTWFrZWZpbGUgKGFuZCBzaW1pbGFyIHN5bnRheGVzLAogICAgICMgbGlrZSBvbGQtc3R5bGUgU2V0dXAgZmlsZXMpLgogICAgIF92YXJpYWJsZV9yeCA9IHJlLmNvbXBpbGUoIihbYS16QS1aXVthLXpBLVowLTlfXSspXHMqPVxzKiguKikiKQpAQCAtMjY3LDcgKzMwMSw4IEBACiAgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBvcy5lbnZpcm9uW25dCiAKICAgICAgICAgICAgICAgICBlbGlmIG4gaW4gcmVuYW1lZF92YXJpYWJsZXM6Ci0gICAgICAgICAgICAgICAgICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgnUFlfJykgYW5kIG5hbWVbMzpdIGluIHJlbmFtZWRfdmFyaWFibGVzOgorICAgICAgICAgICAgICAgICAgICBpZiAobmFtZS5zdGFydHN3aXRoKCdQWV8nKSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVbMzpdIGluIHJlbmFtZWRfdmFyaWFibGVzKToKICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSAiIgogCiAgICAgICAgICAgICAgICAgICAgIGVsaWYgJ1BZXycgKyBuIGluIG5vdGRvbmU6CkBAIC0zMDAsNyArMzM1LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBkb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb25lW25hbWVdID0gdmFsdWUKIAotCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICMgYm9ndXMgdmFyaWFibGUgcmVmZXJlbmNlIChlLmcuICJwcmVmaXg9JC9vcHQvcHl0aG9uIik7CiAgICAgICAgICAgICAgICAgIyBqdXN0IGRyb3AgaXQgc2luY2Ugd2UgY2FuJ3QgZGVhbApAQCAtMzIwLDE0ICszNTQsMTcgQEAKIGRlZiBnZXRfbWFrZWZpbGVfZmlsZW5hbWUoKToKICAgICAiIiJSZXR1cm4gdGhlIHBhdGggb2YgdGhlIE1ha2VmaWxlLiIiIgogICAgIGlmIF9QWVRIT05fQlVJTEQ6Ci0gICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oX1BST0pFQ1RfQkFTRSwgIk1ha2VmaWxlIikKLSAgICByZXR1cm4gb3MucGF0aC5qb2luKGdldF9wYXRoKCdzdGRsaWInKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICdjb25maWcte317fScuZm9ybWF0KF9QWV9WRVJTSU9OX1NIT1JULCBzeXMuYWJpZmxhZ3MpLAotICAgICAgICAgICAgICAgICAgICAgICAgJ01ha2VmaWxlJykKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihfc3lzX2hvbWUgb3IgX1BST0pFQ1RfQkFTRSwgIk1ha2VmaWxlIikKKyAgICBpZiBoYXNhdHRyKHN5cywgJ2FiaWZsYWdzJyk6CisgICAgICAgIGNvbmZpZ19kaXJfbmFtZSA9ICdjb25maWctJXMlcycgJSAoX1BZX1ZFUlNJT05fU0hPUlQsIHN5cy5hYmlmbGFncykKKyAgICBlbHNlOgorICAgICAgICBjb25maWdfZGlyX25hbWUgPSAnY29uZmlnJworICAgIHJldHVybiBvcy5wYXRoLmpvaW4oZ2V0X3BhdGgoJ3N0ZGxpYicpLCBjb25maWdfZGlyX25hbWUsICdNYWtlZmlsZScpCiAKLQotZGVmIF9pbml0X3Bvc2l4KHZhcnMpOgotICAgICIiIkluaXRpYWxpemUgdGhlIG1vZHVsZSBhcyBhcHByb3ByaWF0ZSBmb3IgUE9TSVggc3lzdGVtcy4iIiIKK2RlZiBfZ2VuZXJhdGVfcG9zaXhfdmFycygpOgorICAgICIiIkdlbmVyYXRlIHRoZSBQeXRob24gbW9kdWxlIGNvbnRhaW5pbmcgYnVpbGQtdGltZSB2YXJpYWJsZXMuIiIiCisgICAgaW1wb3J0IHBwcmludAorICAgIHZhcnMgPSB7fQogICAgICMgbG9hZCB0aGUgaW5zdGFsbGVkIE1ha2VmaWxlOgogICAgIG1ha2VmaWxlID0gZ2V0X21ha2VmaWxlX2ZpbGVuYW1lKCkKICAgICB0cnk6CkBAIC0zNTMsNiArMzkwLDE5IEBACiAgICAgaWYgX1BZVEhPTl9CVUlMRDoKICAgICAgICAgdmFyc1snTERTSEFSRUQnXSA9IHZhcnNbJ0JMRFNIQVJFRCddCiAKKyAgICBkZXN0ZmlsZSA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnX3N5c2NvbmZpZ2RhdGEucHknKQorICAgIHdpdGggb3BlbihkZXN0ZmlsZSwgJ3cnLCBlbmNvZGluZz0ndXRmOCcpIGFzIGY6CisgICAgICAgIGYud3JpdGUoJyMgc3lzdGVtIGNvbmZpZ3VyYXRpb24gZ2VuZXJhdGVkIGFuZCB1c2VkIGJ5JworICAgICAgICAgICAgICAgICcgdGhlIHN5c2NvbmZpZyBtb2R1bGVcbicpCisgICAgICAgIGYud3JpdGUoJ2J1aWxkX3RpbWVfdmFycyA9ICcpCisgICAgICAgIHBwcmludC5wcHJpbnQodmFycywgc3RyZWFtPWYpCisKK2RlZiBfaW5pdF9wb3NpeCh2YXJzKToKKyAgICAiIiJJbml0aWFsaXplIHRoZSBtb2R1bGUgYXMgYXBwcm9wcmlhdGUgZm9yIFBPU0lYIHN5c3RlbXMuIiIiCisgICAgIyBfc3lzY29uZmlnZGF0YSBpcyBnZW5lcmF0ZWQgYXQgYnVpbGQgdGltZSwgc2VlIF9nZW5lcmF0ZV9wb3NpeF92YXJzKCkKKyAgICBmcm9tIF9zeXNjb25maWdkYXRhIGltcG9ydCBidWlsZF90aW1lX3ZhcnMKKyAgICB2YXJzLnVwZGF0ZShidWlsZF90aW1lX3ZhcnMpCisKIGRlZiBfaW5pdF9ub25fcG9zaXgodmFycyk6CiAgICAgIiIiSW5pdGlhbGl6ZSB0aGUgbW9kdWxlIGFzIGFwcHJvcHJpYXRlIGZvciBOVCIiIgogICAgICMgc2V0IGJhc2ljIGluc3RhbGwgZGlyZWN0b3JpZXMKQEAgLTM3Niw3ICs0MjYsNiBAQAogICAgIG9wdGlvbmFsIGRpY3Rpb25hcnkgaXMgcGFzc2VkIGluIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQsIGl0IGlzCiAgICAgdXNlZCBpbnN0ZWFkIG9mIGEgbmV3IGRpY3Rpb25hcnkuCiAgICAgIiIiCi0gICAgaW1wb3J0IHJlCiAgICAgaWYgdmFycyBpcyBOb25lOgogICAgICAgICB2YXJzID0ge30KICAgICBkZWZpbmVfcnggPSByZS5jb21waWxlKCIjZGVmaW5lIChbQS1aXVtBLVphLXowLTlfXSspICguKilcbiIpCkBAIC0zODksOCArNDM4LDEwIEBACiAgICAgICAgIG0gPSBkZWZpbmVfcngubWF0Y2gobGluZSkKICAgICAgICAgaWYgbToKICAgICAgICAgICAgIG4sIHYgPSBtLmdyb3VwKDEsIDIpCi0gICAgICAgICAgICB0cnk6IHYgPSBpbnQodikKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOiBwYXNzCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdiA9IGludCh2KQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgdmFyc1tuXSA9IHYKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG0gPSB1bmRlZl9yeC5tYXRjaChsaW5lKQpAQCAtMzk4LDI3ICs0NDksMjkgQEAKICAgICAgICAgICAgICAgICB2YXJzW20uZ3JvdXAoMSldID0gMAogICAgIHJldHVybiB2YXJzCiAKKwogZGVmIGdldF9jb25maWdfaF9maWxlbmFtZSgpOgogICAgICIiIlJldHVybiB0aGUgcGF0aCBvZiBweWNvbmZpZy5oLiIiIgogICAgIGlmIF9QWVRIT05fQlVJTEQ6CiAgICAgICAgIGlmIG9zLm5hbWUgPT0gIm50IjoKLSAgICAgICAgICAgIGluY19kaXIgPSBvcy5wYXRoLmpvaW4oX1BST0pFQ1RfQkFTRSwgIlBDIikKKyAgICAgICAgICAgIGluY19kaXIgPSBvcy5wYXRoLmpvaW4oX3N5c19ob21lIG9yIF9QUk9KRUNUX0JBU0UsICJQQyIpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpbmNfZGlyID0gX1BST0pFQ1RfQkFTRQorICAgICAgICAgICAgaW5jX2RpciA9IF9zeXNfaG9tZSBvciBfUFJPSkVDVF9CQVNFCiAgICAgZWxzZToKICAgICAgICAgaW5jX2RpciA9IGdldF9wYXRoKCdwbGF0aW5jbHVkZScpCiAgICAgcmV0dXJuIG9zLnBhdGguam9pbihpbmNfZGlyLCAncHljb25maWcuaCcpCiAKKwogZGVmIGdldF9zY2hlbWVfbmFtZXMoKToKICAgICAiIiJSZXR1cm4gYSB0dXBsZSBjb250YWluaW5nIHRoZSBzY2hlbWVzIG5hbWVzLiIiIgotICAgIHNjaGVtZXMgPSBsaXN0KF9JTlNUQUxMX1NDSEVNRVMua2V5cygpKQotICAgIHNjaGVtZXMuc29ydCgpCi0gICAgcmV0dXJuIHR1cGxlKHNjaGVtZXMpCisgICAgcmV0dXJuIHR1cGxlKHNvcnRlZChfSU5TVEFMTF9TQ0hFTUVTKSkKKwogCiBkZWYgZ2V0X3BhdGhfbmFtZXMoKToKICAgICAiIiJSZXR1cm4gYSB0dXBsZSBjb250YWluaW5nIHRoZSBwYXRocyBuYW1lcy4iIiIKICAgICByZXR1cm4gX1NDSEVNRV9LRVlTCiAKKwogZGVmIGdldF9wYXRocyhzY2hlbWU9X2dldF9kZWZhdWx0X3NjaGVtZSgpLCB2YXJzPU5vbmUsIGV4cGFuZD1UcnVlKToKICAgICAiIiJSZXR1cm4gYSBtYXBwaW5nIGNvbnRhaW5pbmcgYW4gaW5zdGFsbCBzY2hlbWUuCiAKQEAgLTQzMCw2ICs0ODMsNyBAQAogICAgIGVsc2U6CiAgICAgICAgIHJldHVybiBfSU5TVEFMTF9TQ0hFTUVTW3NjaGVtZV0KIAorCiBkZWYgZ2V0X3BhdGgobmFtZSwgc2NoZW1lPV9nZXRfZGVmYXVsdF9zY2hlbWUoKSwgdmFycz1Ob25lLCBleHBhbmQ9VHJ1ZSk6CiAgICAgIiIiUmV0dXJuIGEgcGF0aCBjb3JyZXNwb25kaW5nIHRvIHRoZSBzY2hlbWUuCiAKQEAgLTQzNyw2ICs0OTEsNyBAQAogICAgICIiIgogICAgIHJldHVybiBnZXRfcGF0aHMoc2NoZW1lLCB2YXJzLCBleHBhbmQpW25hbWVdCiAKKwogZGVmIGdldF9jb25maWdfdmFycygqYXJncyk6CiAgICAgIiIiV2l0aCBubyBhcmd1bWVudHMsIHJldHVybiBhIGRpY3Rpb25hcnkgb2YgYWxsIGNvbmZpZ3VyYXRpb24KICAgICB2YXJpYWJsZXMgcmVsZXZhbnQgZm9yIHRoZSBjdXJyZW50IHBsYXRmb3JtLgpAQCAtNDQ3LDcgKzUwMiw2IEBACiAgICAgV2l0aCBhcmd1bWVudHMsIHJldHVybiBhIGxpc3Qgb2YgdmFsdWVzIHRoYXQgcmVzdWx0IGZyb20gbG9va2luZyB1cAogICAgIGVhY2ggYXJndW1lbnQgaW4gdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgZGljdGlvbmFyeS4KICAgICAiIiIKLSAgICBpbXBvcnQgcmUKICAgICBnbG9iYWwgX0NPTkZJR19WQVJTCiAgICAgaWYgX0NPTkZJR19WQVJTIGlzIE5vbmU6CiAgICAgICAgIF9DT05GSUdfVkFSUyA9IHt9CkBAIC00NTksNyArNTEzLDkgQEAKICAgICAgICAgX0NPTkZJR19WQVJTWydweV92ZXJzaW9uJ10gPSBfUFlfVkVSU0lPTgogICAgICAgICBfQ09ORklHX1ZBUlNbJ3B5X3ZlcnNpb25fc2hvcnQnXSA9IF9QWV9WRVJTSU9OX1NIT1JUCiAgICAgICAgIF9DT05GSUdfVkFSU1sncHlfdmVyc2lvbl9ub2RvdCddID0gX1BZX1ZFUlNJT05bMF0gKyBfUFlfVkVSU0lPTlsyXQorICAgICAgICBfQ09ORklHX1ZBUlNbJ2luc3RhbGxlZF9iYXNlJ10gPSBfQkFTRV9QUkVGSVgKICAgICAgICAgX0NPTkZJR19WQVJTWydiYXNlJ10gPSBfUFJFRklYCisgICAgICAgIF9DT05GSUdfVkFSU1snaW5zdGFsbGVkX3BsYXRiYXNlJ10gPSBfQkFTRV9FWEVDX1BSRUZJWAogICAgICAgICBfQ09ORklHX1ZBUlNbJ3BsYXRiYXNlJ10gPSBfRVhFQ19QUkVGSVgKICAgICAgICAgX0NPTkZJR19WQVJTWydwcm9qZWN0YmFzZSddID0gX1BST0pFQ1RfQkFTRQogICAgICAgICB0cnk6CkBAIC00ODIsNyArNTM4LDYgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIF9DT05GSUdfVkFSU1snc3JjZGlyJ10gPSBfc2FmZV9yZWFscGF0aChfQ09ORklHX1ZBUlNbJ3NyY2RpciddKQogCi0KICAgICAgICAgIyBDb252ZXJ0IHNyY2RpciBpbnRvIGFuIGFic29sdXRlIHBhdGggaWYgaXQgYXBwZWFycyBuZWNlc3NhcnkuCiAgICAgICAgICMgTm9ybWFsbHkgaXQgaXMgcmVsYXRpdmUgdG8gdGhlIGJ1aWxkIGRpcmVjdG9yeS4gIEhvd2V2ZXIsIGR1cmluZwogICAgICAgICAjIHRlc3RpbmcsIGZvciBleGFtcGxlLCB3ZSBtaWdodCBiZSBydW5uaW5nIGEgbm9uLWluc3RhbGxlZCBweXRob24KQEAgLTUwMiw3ICs1NTcsNyBAQAogICAgICAgICAgICAgICAgIF9DT05GSUdfVkFSU1snc3JjZGlyJ10gPSBvcy5wYXRoLm5vcm1wYXRoKHNyY2RpcikKIAogICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6Ci0gICAgICAgICAgICBrZXJuZWxfdmVyc2lvbiA9IG9zLnVuYW1lKClbMl0gIyBLZXJuZWwgdmVyc2lvbiAoOC40LjMpCisgICAgICAgICAgICBrZXJuZWxfdmVyc2lvbiA9IG9zLnVuYW1lKCkucmVsZWFzZSAgIyBLZXJuZWwgdmVyc2lvbiAoOC40LjMpCiAgICAgICAgICAgICBtYWpvcl92ZXJzaW9uID0gaW50KGtlcm5lbF92ZXJzaW9uLnNwbGl0KCcuJylbMF0pCiAKICAgICAgICAgICAgIGlmIG1ham9yX3ZlcnNpb24gPCA4OgpAQCAtNTY4LDYgKzYyMyw3IEBACiAgICAgZWxzZToKICAgICAgICAgcmV0dXJuIF9DT05GSUdfVkFSUwogCisKIGRlZiBnZXRfY29uZmlnX3ZhcihuYW1lKToKICAgICAiIiJSZXR1cm4gdGhlIHZhbHVlIG9mIGEgc2luZ2xlIHZhcmlhYmxlIHVzaW5nIHRoZSBkaWN0aW9uYXJ5IHJldHVybmVkIGJ5CiAgICAgJ2dldF9jb25maWdfdmFycygpJy4KQEAgLTU3Niw2ICs2MzIsNyBAQAogICAgICIiIgogICAgIHJldHVybiBnZXRfY29uZmlnX3ZhcnMoKS5nZXQobmFtZSkKIAorCiBkZWYgZ2V0X3BsYXRmb3JtKCk6CiAgICAgIiIiUmV0dXJuIGEgc3RyaW5nIHRoYXQgaWRlbnRpZmllcyB0aGUgY3VycmVudCBwbGF0Zm9ybS4KIApAQCAtNjAxLDcgKzY1OCw2IEBACiAKICAgICBGb3Igb3RoZXIgbm9uLVBPU0lYIHBsYXRmb3JtcywgY3VycmVudGx5IGp1c3QgcmV0dXJucyAnc3lzLnBsYXRmb3JtJy4KICAgICAiIiIKLSAgICBpbXBvcnQgcmUKICAgICBpZiBvcy5uYW1lID09ICdudCc6CiAgICAgICAgICMgc25pZmYgc3lzLnZlcnNpb24gZm9yIGFyY2hpdGVjdHVyZS4KICAgICAgICAgcHJlZml4ID0gIiBiaXQgKCIKQEAgLTYyMSw2ICs2NzcsMTAgQEAKICAgICAgICAgIyBNYWMgT1MgaXMgTTY4ayBvciBQUEMsIGV0Yy4KICAgICAgICAgcmV0dXJuIHN5cy5wbGF0Zm9ybQogCisgICAgIyBTZXQgZm9yIGNyb3NzIGJ1aWxkcyBleHBsaWNpdGx5CisgICAgaWYgIl9QWVRIT05fSE9TVF9QTEFURk9STSIgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgcmV0dXJuIG9zLmVudmlyb25bIl9QWVRIT05fSE9TVF9QTEFURk9STSJdCisKICAgICAjIFRyeSB0byBkaXN0aW5ndWlzaCB2YXJpb3VzIGZsYXZvdXJzIG9mIFVuaXgKICAgICBvc25hbWUsIGhvc3QsIHJlbGVhc2UsIHZlcnNpb24sIG1hY2hpbmUgPSBvcy51bmFtZSgpCiAKQEAgLTY1MSw3ICs3MTEsNyBAQAogICAgICAgICByZXR1cm4gIiVzLSVzLiVzIiAlIChvc25hbWUsIHZlcnNpb24sIHJlbGVhc2UpCiAgICAgZWxpZiBvc25hbWVbOjZdID09ICJjeWd3aW4iOgogICAgICAgICBvc25hbWUgPSAiY3lnd2luIgotICAgICAgICByZWxfcmUgPSByZS5jb21waWxlIChyJ1tcZC5dKycpCisgICAgICAgIHJlbF9yZSA9IHJlLmNvbXBpbGUocidbXGQuXSsnKQogICAgICAgICBtID0gcmVsX3JlLm1hdGNoKHJlbGVhc2UpCiAgICAgICAgIGlmIG06CiAgICAgICAgICAgICByZWxlYXNlID0gbS5ncm91cCgpCkBAIC02NjIsMTEgKzcyMiwxMCBAQAogICAgICAgICAjIHRvLiBUaGlzIG1ha2VzIHRoZSBjb21wYXRpYmlsaXR5IHN0b3J5IGEgYml0IG1vcmUgc2FuZSBiZWNhdXNlIHRoZQogICAgICAgICAjIG1hY2hpbmUgaXMgZ29pbmcgdG8gY29tcGlsZSBhbmQgbGluayBhcyBpZiBpdCB3ZXJlCiAgICAgICAgICMgTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULgotICAgICAgICAjCiAgICAgICAgIGNmZ3ZhcnMgPSBnZXRfY29uZmlnX3ZhcnMoKQogICAgICAgICBtYWN2ZXIgPSBjZmd2YXJzLmdldCgnTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUJykKIAotICAgICAgICBpZiAxOgorICAgICAgICBpZiBUcnVlOgogICAgICAgICAgICAgIyBBbHdheXMgY2FsY3VsYXRlIHRoZSByZWxlYXNlIG9mIHRoZSBydW5uaW5nIG1hY2hpbmUsCiAgICAgICAgICAgICAjIG5lZWRlZCB0byBkZXRlcm1pbmUgaWYgd2UgY2FuIGJ1aWxkIGZhdCBiaW5hcmllcyBvciBub3QuCiAKQEAgLTY4MiwxNCArNzQxLDEzIEBACiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIG0gPSByZS5zZWFyY2goCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcic8a2V5PlByb2R1Y3RVc2VyVmlzaWJsZVZlcnNpb248L2tleT5ccyonICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByJzxzdHJpbmc+KC4qPyk8L3N0cmluZz4nLCBmLnJlYWQoKSkKLSAgICAgICAgICAgICAgICAgICAgaWYgbSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIG1hY3JlbGVhc2UgPSAnLicuam9pbihtLmdyb3VwKDEpLnNwbGl0KCcuJylbOjJdKQotICAgICAgICAgICAgICAgICAgICAjIGVsc2U6IGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBiZWhhdmlvdXIKKyAgICAgICAgICAgICAgICAgICAgbSA9IHJlLnNlYXJjaChyJzxrZXk+UHJvZHVjdFVzZXJWaXNpYmxlVmVyc2lvbjwva2V5PlxzKicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByJzxzdHJpbmc+KC4qPyk8L3N0cmluZz4nLCBmLnJlYWQoKSkKICAgICAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgICAgICAgICBpZiBtIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBtYWNyZWxlYXNlID0gJy4nLmpvaW4obS5ncm91cCgxKS5zcGxpdCgnLicpWzoyXSkKKyAgICAgICAgICAgICAgICAjIGVsc2U6IGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdCBiZWhhdmlvdXIKIAogICAgICAgICBpZiBub3QgbWFjdmVyOgogICAgICAgICAgICAgbWFjdmVyID0gbWFjcmVsZWFzZQpAQCAtNjk4LDggKzc1Niw4IEBACiAgICAgICAgICAgICByZWxlYXNlID0gbWFjdmVyCiAgICAgICAgICAgICBvc25hbWUgPSAibWFjb3N4IgogCi0gICAgICAgICAgICBpZiAobWFjcmVsZWFzZSArICcuJykgPj0gJzEwLjQuJyBhbmQgXAotICAgICAgICAgICAgICAgICAgICAnLWFyY2gnIGluIGdldF9jb25maWdfdmFycygpLmdldCgnQ0ZMQUdTJywgJycpLnN0cmlwKCk6CisgICAgICAgICAgICBpZiAoKG1hY3JlbGVhc2UgKyAnLicpID49ICcxMC40LicgYW5kCisgICAgICAgICAgICAgICAgJy1hcmNoJyBpbiBnZXRfY29uZmlnX3ZhcnMoKS5nZXQoJ0NGTEFHUycsICcnKS5zdHJpcCgpKToKICAgICAgICAgICAgICAgICAjIFRoZSB1bml2ZXJzYWwgYnVpbGQgd2lsbCBidWlsZCBmYXQgYmluYXJpZXMsIGJ1dCBub3Qgb24KICAgICAgICAgICAgICAgICAjIHN5c3RlbXMgYmVmb3JlIDEwLjQKICAgICAgICAgICAgICAgICAjCkBAIC03MjYsNyArNzg0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgbWFjaGluZSA9ICd1bml2ZXJzYWwnCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgIkRvbid0IGtub3cgbWFjaGluZSB2YWx1ZSBmb3IgYXJjaHM9JXIiJShhcmNocywpKQorICAgICAgICAgICAgICAgICAgICAgICAiRG9uJ3Qga25vdyBtYWNoaW5lIHZhbHVlIGZvciBhcmNocz0lciIgJSAoYXJjaHMsKSkKIAogICAgICAgICAgICAgZWxpZiBtYWNoaW5lID09ICdpMzg2JzoKICAgICAgICAgICAgICAgICAjIE9uIE9TWCB0aGUgbWFjaGluZSB0eXBlIHJldHVybmVkIGJ5IHVuYW1lIGlzIGFsd2F5cyB0aGUKQEAgLTc0OSwyMSArODA3LDI3IEBACiBkZWYgZ2V0X3B5dGhvbl92ZXJzaW9uKCk6CiAgICAgcmV0dXJuIF9QWV9WRVJTSU9OX1NIT1JUCiAKKwogZGVmIF9wcmludF9kaWN0KHRpdGxlLCBkYXRhKToKICAgICBmb3IgaW5kZXgsIChrZXksIHZhbHVlKSBpbiBlbnVtZXJhdGUoc29ydGVkKGRhdGEuaXRlbXMoKSkpOgogICAgICAgICBpZiBpbmRleCA9PSAwOgotICAgICAgICAgICAgcHJpbnQoJ3swfTogJy5mb3JtYXQodGl0bGUpKQotICAgICAgICBwcmludCgnXHR7MH0gPSAiezF9IicuZm9ybWF0KGtleSwgdmFsdWUpKQorICAgICAgICAgICAgcHJpbnQoJyVzOiAnICUgKHRpdGxlKSkKKyAgICAgICAgcHJpbnQoJ1x0JXMgPSAiJXMiJyAlIChrZXksIHZhbHVlKSkKKwogCiBkZWYgX21haW4oKToKICAgICAiIiJEaXNwbGF5IGFsbCBpbmZvcm1hdGlvbiBzeXNjb25maWcgZGV0YWlucy4iIiIKLSAgICBwcmludCgnUGxhdGZvcm06ICJ7MH0iJy5mb3JtYXQoZ2V0X3BsYXRmb3JtKCkpKQotICAgIHByaW50KCdQeXRob24gdmVyc2lvbjogInswfSInLmZvcm1hdChnZXRfcHl0aG9uX3ZlcnNpb24oKSkpCi0gICAgcHJpbnQoJ0N1cnJlbnQgaW5zdGFsbGF0aW9uIHNjaGVtZTogInswfSInLmZvcm1hdChfZ2V0X2RlZmF1bHRfc2NoZW1lKCkpKQotICAgIHByaW50KCcnKQorICAgIGlmICctLWdlbmVyYXRlLXBvc2l4LXZhcnMnIGluIHN5cy5hcmd2OgorICAgICAgICBfZ2VuZXJhdGVfcG9zaXhfdmFycygpCisgICAgICAgIHJldHVybgorICAgIHByaW50KCdQbGF0Zm9ybTogIiVzIicgJSBnZXRfcGxhdGZvcm0oKSkKKyAgICBwcmludCgnUHl0aG9uIHZlcnNpb246ICIlcyInICUgZ2V0X3B5dGhvbl92ZXJzaW9uKCkpCisgICAgcHJpbnQoJ0N1cnJlbnQgaW5zdGFsbGF0aW9uIHNjaGVtZTogIiVzIicgJSBfZ2V0X2RlZmF1bHRfc2NoZW1lKCkpCisgICAgcHJpbnQoKQogICAgIF9wcmludF9kaWN0KCdQYXRocycsIGdldF9wYXRocygpKQotICAgIHByaW50KCcnKQorICAgIHByaW50KCkKICAgICBfcHJpbnRfZGljdCgnVmFyaWFibGVzJywgZ2V0X2NvbmZpZ192YXJzKCkpCiAKKwogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBfbWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGFibmFubnkucHkgYi9MaWIvdGFibmFubnkucHkKaW5kZXggNDZmODE2My4uNGE1NGY4OSAxMDA3NTUKLS0tIGEvTGliL3RhYm5hbm55LnB5CisrKyBiL0xpYi90YWJuYW5ueS5weQpAQCAtMTI2LDYgKzEyNiw5IEBACiAgICAgICAgICAgICBlbHNlOiBwcmludChmaWxlLCBiYWRsaW5lLCByZXByKGxpbmUpKQogICAgICAgICByZXR1cm4KIAorICAgIGZpbmFsbHk6CisgICAgICAgIGYuY2xvc2UoKQorCiAgICAgaWYgdmVyYm9zZToKICAgICAgICAgcHJpbnQoIiVyOiBDbGVhbiBiaWxsIG9mIGhlYWx0aC4iICUgKGZpbGUsKSkKIApkaWZmIC0tZ2l0IGEvTGliL3RhcmZpbGUucHkgYi9MaWIvdGFyZmlsZS5weQppbmRleCBmMjY5NTNlLi43YjlmNDA3IDEwMDY0NAotLS0gYS9MaWIvdGFyZmlsZS5weQorKysgYi9MaWIvdGFyZmlsZS5weQpAQCAtMjksOCArMjksNiBAQAogIiIiUmVhZCBmcm9tIGFuZCB3cml0ZSB0byB0YXIgZm9ybWF0IGFyY2hpdmVzLgogIiIiCiAKLV9fdmVyc2lvbl9fID0gIiRSZXZpc2lvbiQiCi0KIHZlcnNpb24gICAgID0gIjAuOS4wIgogX19hdXRob3JfXyAgPSAiTGFycyBHdXN0XHUwMGU0YmVsIChsYXJzQGd1c3RhZWJlbC5kZSkiCiBfX2RhdGVfXyAgICA9ICIkRGF0ZTogMjAxMS0wMi0yNSAxNzo0MjowMSArMDIwMCAoRnJpLCAyNSBGZWIgMjAxMSkgJCIKQEAgLTQyLDkgKzQwLDkgQEAKICMtLS0tLS0tLS0KIGltcG9ydCBzeXMKIGltcG9ydCBvcworaW1wb3J0IGlvCiBpbXBvcnQgc2h1dGlsCiBpbXBvcnQgc3RhdAotaW1wb3J0IGVycm5vCiBpbXBvcnQgdGltZQogaW1wb3J0IHN0cnVjdAogaW1wb3J0IGNvcHkKQEAgLTI0Nyw4ICsyNDUsOCBAQAogICAgICAgIHRoZSBoaWdoIGJpdCBzZXQuIFNvIHdlIGNhbGN1bGF0ZSB0d28gY2hlY2tzdW1zLCB1bnNpZ25lZCBhbmQKICAgICAgICBzaWduZWQuCiAgICAgIiIiCi0gICAgdW5zaWduZWRfY2hrc3VtID0gMjU2ICsgc3VtKHN0cnVjdC51bnBhY2soIjE0OEIiLCBidWZbOjE0OF0pICsgc3RydWN0LnVucGFjaygiMzU2QiIsIGJ1ZlsxNTY6NTEyXSkpCi0gICAgc2lnbmVkX2Noa3N1bSA9IDI1NiArIHN1bShzdHJ1Y3QudW5wYWNrKCIxNDhiIiwgYnVmWzoxNDhdKSArIHN0cnVjdC51bnBhY2soIjM1NmIiLCBidWZbMTU2OjUxMl0pKQorICAgIHVuc2lnbmVkX2Noa3N1bSA9IDI1NiArIHN1bShzdHJ1Y3QudW5wYWNrX2Zyb20oIjE0OEI4eDM1NkIiLCBidWYpKQorICAgIHNpZ25lZF9jaGtzdW0gPSAyNTYgKyBzdW0oc3RydWN0LnVucGFja19mcm9tKCIxNDhiOHgzNTZiIiwgYnVmKSkKICAgICByZXR1cm4gdW5zaWduZWRfY2hrc3VtLCBzaWduZWRfY2hrc3VtCiAKIGRlZiBjb3B5ZmlsZW9iaihzcmMsIGRzdCwgbGVuZ3RoPU5vbmUpOgpAQCAtMjc2LDQ3ICsyNzQsMTMgQEAKICAgICAgICAgZHN0LndyaXRlKGJ1ZikKICAgICByZXR1cm4KIAotZmlsZW1vZGVfdGFibGUgPSAoCi0gICAgKChTX0lGTE5LLCAgICAgICJsIiksCi0gICAgIChTX0lGUkVHLCAgICAgICItIiksCi0gICAgIChTX0lGQkxLLCAgICAgICJiIiksCi0gICAgIChTX0lGRElSLCAgICAgICJkIiksCi0gICAgIChTX0lGQ0hSLCAgICAgICJjIiksCi0gICAgIChTX0lGSUZPLCAgICAgICJwIikpLAotCi0gICAgKChUVVJFQUQsICAgICAgICJyIiksKSwKLSAgICAoKFRVV1JJVEUsICAgICAgInciKSwpLAotICAgICgoVFVFWEVDfFRTVUlELCAicyIpLAotICAgICAoVFNVSUQsICAgICAgICAiUyIpLAotICAgICAoVFVFWEVDLCAgICAgICAieCIpKSwKLQotICAgICgoVEdSRUFELCAgICAgICAiciIpLCksCi0gICAgKChUR1dSSVRFLCAgICAgICJ3IiksKSwKLSAgICAoKFRHRVhFQ3xUU0dJRCwgInMiKSwKLSAgICAgKFRTR0lELCAgICAgICAgIlMiKSwKLSAgICAgKFRHRVhFQywgICAgICAgIngiKSksCi0KLSAgICAoKFRPUkVBRCwgICAgICAgInIiKSwpLAotICAgICgoVE9XUklURSwgICAgICAidyIpLCksCi0gICAgKChUT0VYRUN8VFNWVFgsICJ0IiksCi0gICAgIChUU1ZUWCwgICAgICAgICJUIiksCi0gICAgIChUT0VYRUMsICAgICAgICJ4IikpCi0pCi0KIGRlZiBmaWxlbW9kZShtb2RlKToKLSAgICAiIiJDb252ZXJ0IGEgZmlsZSdzIG1vZGUgdG8gYSBzdHJpbmcgb2YgdGhlIGZvcm0KLSAgICAgICAtcnd4cnd4cnd4LgotICAgICAgIFVzZWQgYnkgVGFyRmlsZS5saXN0KCkKLSAgICAiIiIKLSAgICBwZXJtID0gW10KLSAgICBmb3IgdGFibGUgaW4gZmlsZW1vZGVfdGFibGU6Ci0gICAgICAgIGZvciBiaXQsIGNoYXIgaW4gdGFibGU6Ci0gICAgICAgICAgICBpZiBtb2RlICYgYml0ID09IGJpdDoKLSAgICAgICAgICAgICAgICBwZXJtLmFwcGVuZChjaGFyKQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwZXJtLmFwcGVuZCgiLSIpCi0gICAgcmV0dXJuICIiLmpvaW4ocGVybSkKKyAgICAiIiJEZXByZWNhdGVkIGluIHRoaXMgbG9jYXRpb247IHVzZSBzdGF0LmZpbGVtb2RlLiIiIgorICAgIGltcG9ydCB3YXJuaW5ncworICAgIHdhcm5pbmdzLndhcm4oImRlcHJlY2F0ZWQgaW4gZmF2b3Igb2Ygc3RhdC5maWxlbW9kZSIsCisgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcsIDIpCisgICAgcmV0dXJuIHN0YXQuZmlsZW1vZGUobW9kZSkKKwogCiBjbGFzcyBUYXJFcnJvcihFeGNlcHRpb24pOgogICAgICIiIkJhc2UgZXhjZXB0aW9uLiIiIgpAQCAtNDIzLDEwICszODcsMTEgQEAKICAgICAgICAgICAgICAgICBzZWxmLmNyYyA9IHpsaWIuY3JjMzIoYiIiKQogICAgICAgICAgICAgICAgIGlmIG1vZGUgPT0gInIiOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9pbml0X3JlYWRfZ3ooKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmV4Y2VwdGlvbiA9IHpsaWIuZXJyb3IKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9pbml0X3dyaXRlX2d6KCkKIAotICAgICAgICAgICAgaWYgY29tcHR5cGUgPT0gImJ6MiI6CisgICAgICAgICAgICBlbGlmIGNvbXB0eXBlID09ICJiejIiOgogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgaW1wb3J0IGJ6MgogICAgICAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKQEAgLTQzNCw4ICszOTksMjUgQEAKICAgICAgICAgICAgICAgICBpZiBtb2RlID09ICJyIjoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYnVmID0gYiIiCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuY21wID0gYnoyLkJaMkRlY29tcHJlc3NvcigpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhjZXB0aW9uID0gSU9FcnJvcgogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuY21wID0gYnoyLkJaMkNvbXByZXNzb3IoKQorCisgICAgICAgICAgICBlbGlmIGNvbXB0eXBlID09ICJ4eiI6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBpbXBvcnQgbHptYQorICAgICAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgQ29tcHJlc3Npb25FcnJvcigibHptYSBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZSIpCisgICAgICAgICAgICAgICAgaWYgbW9kZSA9PSAiciI6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJ1ZiA9IGIiIgorICAgICAgICAgICAgICAgICAgICBzZWxmLmNtcCA9IGx6bWEuTFpNQURlY29tcHJlc3NvcigpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhjZXB0aW9uID0gbHptYS5MWk1BRXJyb3IKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmNtcCA9IGx6bWEuTFpNQUNvbXByZXNzb3IoKQorCisgICAgICAgICAgICBlbGlmIGNvbXB0eXBlICE9ICJ0YXIiOgorICAgICAgICAgICAgICAgIHJhaXNlIENvbXByZXNzaW9uRXJyb3IoInVua25vd24gY29tcHJlc3Npb24gdHlwZSAlciIgJSBjb21wdHlwZSkKKwogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fZXh0ZmlsZW9iajoKICAgICAgICAgICAgICAgICBzZWxmLmZpbGVvYmouY2xvc2UoKQpAQCAtNTg3LDcgKzU2OSw3IEBACiAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBidWYgPSBzZWxmLmNtcC5kZWNvbXByZXNzKGJ1ZikKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgZXhjZXB0IHNlbGYuZXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHJhaXNlIFJlYWRFcnJvcigiaW52YWxpZCBjb21wcmVzc2VkIGRhdGEiKQogICAgICAgICAgICAgc2VsZi5kYnVmICs9IGJ1ZgogICAgICAgICAgICAgYyArPSBsZW4oYnVmKQpAQCAtNjI1LDc2ICs2MDcsMTkgQEAKICAgICAgICAgcmV0dXJuIHNlbGYuYnVmCiAKICAgICBkZWYgZ2V0Y29tcHR5cGUoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuYnVmLnN0YXJ0c3dpdGgoYiJcMDM3XDIxM1wwMTAiKToKKyAgICAgICAgaWYgc2VsZi5idWYuc3RhcnRzd2l0aChiIlx4MWZceDhiXHgwOCIpOgogICAgICAgICAgICAgcmV0dXJuICJneiIKLSAgICAgICAgaWYgc2VsZi5idWZbMDozXSA9PSBiIkJaaCIgYW5kIHNlbGYuYnVmWzQ6MTBdID09IGIiMUFZJlNZIjoKKyAgICAgICAgZWxpZiBzZWxmLmJ1ZlswOjNdID09IGIiQlpoIiBhbmQgc2VsZi5idWZbNDoxMF0gPT0gYiIxQVkmU1kiOgogICAgICAgICAgICAgcmV0dXJuICJiejIiCi0gICAgICAgIHJldHVybiAidGFyIgorICAgICAgICBlbGlmIHNlbGYuYnVmLnN0YXJ0c3dpdGgoKGIiXHg1ZFx4MDBceDAwXHg4MCIsIGIiXHhmZDd6WFoiKSk6CisgICAgICAgICAgICByZXR1cm4gInh6IgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuICJ0YXIiCiAKICAgICBkZWYgY2xvc2Uoc2VsZik6CiAgICAgICAgIHNlbGYuZmlsZW9iai5jbG9zZSgpCiAjIGNsYXNzIFN0cmVhbVByb3h5CiAKLWNsYXNzIF9CWjJQcm94eShvYmplY3QpOgotICAgICIiIlNtYWxsIHByb3h5IGNsYXNzIHRoYXQgZW5hYmxlcyBleHRlcm5hbCBmaWxlIG9iamVjdAotICAgICAgIHN1cHBvcnQgZm9yICJyOmJ6MiIgYW5kICJ3OmJ6MiIgbW9kZXMuIFRoaXMgaXMgYWN0dWFsbHkKLSAgICAgICBhIHdvcmthcm91bmQgZm9yIGEgbGltaXRhdGlvbiBpbiBiejIgbW9kdWxlJ3MgQloyRmlsZQotICAgICAgIGNsYXNzIHdoaWNoICh1bmxpa2UgZ3ppcC5HemlwRmlsZSkgaGFzIG5vIHN1cHBvcnQgZm9yCi0gICAgICAgYSBmaWxlIG9iamVjdCBhcmd1bWVudC4KLSAgICAiIiIKLQotICAgIGJsb2Nrc2l6ZSA9IDE2ICogMTAyNAotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGVvYmosIG1vZGUpOgotICAgICAgICBzZWxmLmZpbGVvYmogPSBmaWxlb2JqCi0gICAgICAgIHNlbGYubW9kZSA9IG1vZGUKLSAgICAgICAgc2VsZi5uYW1lID0gZ2V0YXR0cihzZWxmLmZpbGVvYmosICJuYW1lIiwgTm9uZSkKLSAgICAgICAgc2VsZi5pbml0KCkKLQotICAgIGRlZiBpbml0KHNlbGYpOgotICAgICAgICBpbXBvcnQgYnoyCi0gICAgICAgIHNlbGYucG9zID0gMAotICAgICAgICBpZiBzZWxmLm1vZGUgPT0gInIiOgotICAgICAgICAgICAgc2VsZi5iejJvYmogPSBiejIuQloyRGVjb21wcmVzc29yKCkKLSAgICAgICAgICAgIHNlbGYuZmlsZW9iai5zZWVrKDApCi0gICAgICAgICAgICBzZWxmLmJ1ZiA9IGIiIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5iejJvYmogPSBiejIuQloyQ29tcHJlc3NvcigpCi0KLSAgICBkZWYgcmVhZChzZWxmLCBzaXplKToKLSAgICAgICAgeCA9IGxlbihzZWxmLmJ1ZikKLSAgICAgICAgd2hpbGUgeCA8IHNpemU6Ci0gICAgICAgICAgICByYXcgPSBzZWxmLmZpbGVvYmoucmVhZChzZWxmLmJsb2Nrc2l6ZSkKLSAgICAgICAgICAgIGlmIG5vdCByYXc6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGRhdGEgPSBzZWxmLmJ6Mm9iai5kZWNvbXByZXNzKHJhdykKLSAgICAgICAgICAgIHNlbGYuYnVmICs9IGRhdGEKLSAgICAgICAgICAgIHggKz0gbGVuKGRhdGEpCi0KLSAgICAgICAgYnVmID0gc2VsZi5idWZbOnNpemVdCi0gICAgICAgIHNlbGYuYnVmID0gc2VsZi5idWZbc2l6ZTpdCi0gICAgICAgIHNlbGYucG9zICs9IGxlbihidWYpCi0gICAgICAgIHJldHVybiBidWYKLQotICAgIGRlZiBzZWVrKHNlbGYsIHBvcyk6Ci0gICAgICAgIGlmIHBvcyA8IHNlbGYucG9zOgotICAgICAgICAgICAgc2VsZi5pbml0KCkKLSAgICAgICAgc2VsZi5yZWFkKHBvcyAtIHNlbGYucG9zKQotCi0gICAgZGVmIHRlbGwoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnBvcwotCi0gICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLnBvcyArPSBsZW4oZGF0YSkKLSAgICAgICAgcmF3ID0gc2VsZi5iejJvYmouY29tcHJlc3MoZGF0YSkKLSAgICAgICAgc2VsZi5maWxlb2JqLndyaXRlKHJhdykKLQotICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAgaWYgc2VsZi5tb2RlID09ICJ3IjoKLSAgICAgICAgICAgIHJhdyA9IHNlbGYuYnoyb2JqLmZsdXNoKCkKLSAgICAgICAgICAgIHNlbGYuZmlsZW9iai53cml0ZShyYXcpCi0jIGNsYXNzIF9CWjJQcm94eQotCiAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIEV4dHJhY3Rpb24gZmlsZSBvYmplY3QKICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTcwOSw2ICs2MzQsOCBAQAogICAgICAgICBzZWxmLm9mZnNldCA9IG9mZnNldAogICAgICAgICBzZWxmLnNpemUgPSBzaXplCiAgICAgICAgIHNlbGYucG9zaXRpb24gPSAwCisgICAgICAgIHNlbGYubmFtZSA9IGdldGF0dHIoZmlsZW9iaiwgIm5hbWUiLCBOb25lKQorICAgICAgICBzZWxmLmNsb3NlZCA9IEZhbHNlCiAKICAgICAgICAgaWYgYmxvY2tpbmZvIGlzIE5vbmU6CiAgICAgICAgICAgICBibG9ja2luZm8gPSBbKDAsIHNpemUpXQpAQCAtNzI3LDEwICs2NTQsMTYgQEAKICAgICAgICAgaWYgbGFzdHBvcyA8IHNlbGYuc2l6ZToKICAgICAgICAgICAgIHNlbGYubWFwLmFwcGVuZCgoRmFsc2UsIGxhc3Rwb3MsIHNlbGYuc2l6ZSwgTm9uZSkpCiAKKyAgICBkZWYgZmx1c2goc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiByZWFkYWJsZShzZWxmKToKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiB3cml0YWJsZShzZWxmKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKICAgICBkZWYgc2Vla2FibGUoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYuZmlsZW9iaiwgInNlZWthYmxlIik6Ci0gICAgICAgICAgICAjIFhYWCBnemlwLkd6aXBGaWxlIGFuZCBiejIuQloyRmlsZQotICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgcmV0dXJuIHNlbGYuZmlsZW9iai5zZWVrYWJsZSgpCiAKICAgICBkZWYgdGVsbChzZWxmKToKQEAgLTczOCwxMCArNjcxLDIxIEBACiAgICAgICAgICIiIgogICAgICAgICByZXR1cm4gc2VsZi5wb3NpdGlvbgogCi0gICAgZGVmIHNlZWsoc2VsZiwgcG9zaXRpb24pOgorICAgIGRlZiBzZWVrKHNlbGYsIHBvc2l0aW9uLCB3aGVuY2U9aW8uU0VFS19TRVQpOgogICAgICAgICAiIiJTZWVrIHRvIGEgcG9zaXRpb24gaW4gdGhlIGZpbGUuCiAgICAgICAgICIiIgotICAgICAgICBzZWxmLnBvc2l0aW9uID0gcG9zaXRpb24KKyAgICAgICAgaWYgd2hlbmNlID09IGlvLlNFRUtfU0VUOgorICAgICAgICAgICAgc2VsZi5wb3NpdGlvbiA9IG1pbihtYXgocG9zaXRpb24sIDApLCBzZWxmLnNpemUpCisgICAgICAgIGVsaWYgd2hlbmNlID09IGlvLlNFRUtfQ1VSOgorICAgICAgICAgICAgaWYgcG9zaXRpb24gPCAwOgorICAgICAgICAgICAgICAgIHNlbGYucG9zaXRpb24gPSBtYXgoc2VsZi5wb3NpdGlvbiArIHBvc2l0aW9uLCAwKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnBvc2l0aW9uID0gbWluKHNlbGYucG9zaXRpb24gKyBwb3NpdGlvbiwgc2VsZi5zaXplKQorICAgICAgICBlbGlmIHdoZW5jZSA9PSBpby5TRUVLX0VORDoKKyAgICAgICAgICAgIHNlbGYucG9zaXRpb24gPSBtYXgobWluKHNlbGYuc2l6ZSArIHBvc2l0aW9uLCBzZWxmLnNpemUpLCAwKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSW52YWxpZCBhcmd1bWVudCIpCisgICAgICAgIHJldHVybiBzZWxmLnBvc2l0aW9uCiAKICAgICBkZWYgcmVhZChzZWxmLCBzaXplPU5vbmUpOgogICAgICAgICAiIiJSZWFkIGRhdGEgZnJvbSB0aGUgZmlsZS4KQEAgLTc3MCwxNDUgKzcxNCwyMiBAQAogICAgICAgICAgICAgc2l6ZSAtPSBsZW5ndGgKICAgICAgICAgICAgIHNlbGYucG9zaXRpb24gKz0gbGVuZ3RoCiAgICAgICAgIHJldHVybiBidWYKLSNjbGFzcyBfRmlsZUluRmlsZQogCi0KLWNsYXNzIEV4RmlsZU9iamVjdChvYmplY3QpOgotICAgICIiIkZpbGUtbGlrZSBvYmplY3QgZm9yIHJlYWRpbmcgYW4gYXJjaGl2ZSBtZW1iZXIuCi0gICAgICAgSXMgcmV0dXJuZWQgYnkgVGFyRmlsZS5leHRyYWN0ZmlsZSgpLgotICAgICIiIgotICAgIGJsb2Nrc2l6ZSA9IDEwMjQKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YXJmaWxlLCB0YXJpbmZvKToKLSAgICAgICAgc2VsZi5maWxlb2JqID0gX0ZpbGVJbkZpbGUodGFyZmlsZS5maWxlb2JqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJpbmZvLm9mZnNldF9kYXRhLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJpbmZvLnNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmluZm8uc3BhcnNlKQotICAgICAgICBzZWxmLm5hbWUgPSB0YXJpbmZvLm5hbWUKLSAgICAgICAgc2VsZi5tb2RlID0gInIiCi0gICAgICAgIHNlbGYuY2xvc2VkID0gRmFsc2UKLSAgICAgICAgc2VsZi5zaXplID0gdGFyaW5mby5zaXplCi0KLSAgICAgICAgc2VsZi5wb3NpdGlvbiA9IDAKLSAgICAgICAgc2VsZi5idWZmZXIgPSBiIiIKLQotICAgIGRlZiByZWFkYWJsZShzZWxmKToKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiB3cml0YWJsZShzZWxmKToKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgc2Vla2FibGUoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmZpbGVvYmouc2Vla2FibGUoKQotCi0gICAgZGVmIHJlYWQoc2VsZiwgc2l6ZT1Ob25lKToKLSAgICAgICAgIiIiUmVhZCBhdCBtb3N0IHNpemUgYnl0ZXMgZnJvbSB0aGUgZmlsZS4gSWYgc2l6ZSBpcyBub3QKLSAgICAgICAgICAgcHJlc2VudCBvciBOb25lLCByZWFkIGFsbCBkYXRhIHVudGlsIEVPRiBpcyByZWFjaGVkLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5jbG9zZWQ6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIikKLQotICAgICAgICBidWYgPSBiIiIKLSAgICAgICAgaWYgc2VsZi5idWZmZXI6Ci0gICAgICAgICAgICBpZiBzaXplIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgYnVmID0gc2VsZi5idWZmZXIKLSAgICAgICAgICAgICAgICBzZWxmLmJ1ZmZlciA9IGIiIgotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBidWYgPSBzZWxmLmJ1ZmZlcls6c2l6ZV0KLSAgICAgICAgICAgICAgICBzZWxmLmJ1ZmZlciA9IHNlbGYuYnVmZmVyW3NpemU6XQotCi0gICAgICAgIGlmIHNpemUgaXMgTm9uZToKLSAgICAgICAgICAgIGJ1ZiArPSBzZWxmLmZpbGVvYmoucmVhZCgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBidWYgKz0gc2VsZi5maWxlb2JqLnJlYWQoc2l6ZSAtIGxlbihidWYpKQotCi0gICAgICAgIHNlbGYucG9zaXRpb24gKz0gbGVuKGJ1ZikKLSAgICAgICAgcmV0dXJuIGJ1ZgotCi0gICAgIyBYWFggVGV4dElPV3JhcHBlciB1c2VzIHRoZSByZWFkMSgpIG1ldGhvZC4KLSAgICByZWFkMSA9IHJlYWQKLQotICAgIGRlZiByZWFkbGluZShzZWxmLCBzaXplPS0xKToKLSAgICAgICAgIiIiUmVhZCBvbmUgZW50aXJlIGxpbmUgZnJvbSB0aGUgZmlsZS4gSWYgc2l6ZSBpcyBwcmVzZW50Ci0gICAgICAgICAgIGFuZCBub24tbmVnYXRpdmUsIHJldHVybiBhIHN0cmluZyB3aXRoIGF0IG1vc3QgdGhhdAotICAgICAgICAgICBzaXplLCB3aGljaCBtYXkgYmUgYW4gaW5jb21wbGV0ZSBsaW5lLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5jbG9zZWQ6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIikKLQotICAgICAgICBwb3MgPSBzZWxmLmJ1ZmZlci5maW5kKGIiXG4iKSArIDEKLSAgICAgICAgaWYgcG9zID09IDA6Ci0gICAgICAgICAgICAjIG5vIG5ld2xpbmUgZm91bmQuCi0gICAgICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgICAgIGJ1ZiA9IHNlbGYuZmlsZW9iai5yZWFkKHNlbGYuYmxvY2tzaXplKQotICAgICAgICAgICAgICAgIHNlbGYuYnVmZmVyICs9IGJ1ZgotICAgICAgICAgICAgICAgIGlmIG5vdCBidWYgb3IgYiJcbiIgaW4gYnVmOgotICAgICAgICAgICAgICAgICAgICBwb3MgPSBzZWxmLmJ1ZmZlci5maW5kKGIiXG4iKSArIDEKLSAgICAgICAgICAgICAgICAgICAgaWYgcG9zID09IDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIG5vIG5ld2xpbmUgZm91bmQuCi0gICAgICAgICAgICAgICAgICAgICAgICBwb3MgPSBsZW4oc2VsZi5idWZmZXIpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgc2l6ZSAhPSAtMToKLSAgICAgICAgICAgIHBvcyA9IG1pbihzaXplLCBwb3MpCi0KLSAgICAgICAgYnVmID0gc2VsZi5idWZmZXJbOnBvc10KLSAgICAgICAgc2VsZi5idWZmZXIgPSBzZWxmLmJ1ZmZlcltwb3M6XQotICAgICAgICBzZWxmLnBvc2l0aW9uICs9IGxlbihidWYpCi0gICAgICAgIHJldHVybiBidWYKLQotICAgIGRlZiByZWFkbGluZXMoc2VsZik6Ci0gICAgICAgICIiIlJldHVybiBhIGxpc3Qgd2l0aCBhbGwgcmVtYWluaW5nIGxpbmVzLgotICAgICAgICAiIiIKLSAgICAgICAgcmVzdWx0ID0gW10KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGxpbmUgPSBzZWxmLnJlYWRsaW5lKCkKLSAgICAgICAgICAgIGlmIG5vdCBsaW5lOiBicmVhawotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChsaW5lKQotICAgICAgICByZXR1cm4gcmVzdWx0Ci0KLSAgICBkZWYgdGVsbChzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBjdXJyZW50IGZpbGUgcG9zaXRpb24uCi0gICAgICAgICIiIgotICAgICAgICBpZiBzZWxmLmNsb3NlZDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkkvTyBvcGVyYXRpb24gb24gY2xvc2VkIGZpbGUiKQotCi0gICAgICAgIHJldHVybiBzZWxmLnBvc2l0aW9uCi0KLSAgICBkZWYgc2VlayhzZWxmLCBwb3MsIHdoZW5jZT1vcy5TRUVLX1NFVCk6Ci0gICAgICAgICIiIlNlZWsgdG8gYSBwb3NpdGlvbiBpbiB0aGUgZmlsZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuY2xvc2VkOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSS9PIG9wZXJhdGlvbiBvbiBjbG9zZWQgZmlsZSIpCi0KLSAgICAgICAgaWYgd2hlbmNlID09IG9zLlNFRUtfU0VUOgotICAgICAgICAgICAgc2VsZi5wb3NpdGlvbiA9IG1pbihtYXgocG9zLCAwKSwgc2VsZi5zaXplKQotICAgICAgICBlbGlmIHdoZW5jZSA9PSBvcy5TRUVLX0NVUjoKLSAgICAgICAgICAgIGlmIHBvcyA8IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5wb3NpdGlvbiA9IG1heChzZWxmLnBvc2l0aW9uICsgcG9zLCAwKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLnBvc2l0aW9uID0gbWluKHNlbGYucG9zaXRpb24gKyBwb3MsIHNlbGYuc2l6ZSkKLSAgICAgICAgZWxpZiB3aGVuY2UgPT0gb3MuU0VFS19FTkQ6Ci0gICAgICAgICAgICBzZWxmLnBvc2l0aW9uID0gbWF4KG1pbihzZWxmLnNpemUgKyBwb3MsIHNlbGYuc2l6ZSksIDApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJJbnZhbGlkIGFyZ3VtZW50IikKLQotICAgICAgICBzZWxmLmJ1ZmZlciA9IGIiIgotICAgICAgICBzZWxmLmZpbGVvYmouc2VlayhzZWxmLnBvc2l0aW9uKQorICAgIGRlZiByZWFkaW50byhzZWxmLCBiKToKKyAgICAgICAgYnVmID0gc2VsZi5yZWFkKGxlbihiKSkKKyAgICAgICAgYls6bGVuKGJ1ZildID0gYnVmCisgICAgICAgIHJldHVybiBsZW4oYnVmKQogCiAgICAgZGVmIGNsb3NlKHNlbGYpOgotICAgICAgICAiIiJDbG9zZSB0aGUgZmlsZSBvYmplY3QuCi0gICAgICAgICIiIgogICAgICAgICBzZWxmLmNsb3NlZCA9IFRydWUKKyNjbGFzcyBfRmlsZUluRmlsZQogCi0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAgICAgICAiIiJHZXQgYW4gaXRlcmF0b3Igb3ZlciB0aGUgZmlsZSdzIGxpbmVzLgotICAgICAgICAiIiIKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGxpbmUgPSBzZWxmLnJlYWRsaW5lKCkKLSAgICAgICAgICAgIGlmIG5vdCBsaW5lOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICB5aWVsZCBsaW5lCitjbGFzcyBFeEZpbGVPYmplY3QoaW8uQnVmZmVyZWRSZWFkZXIpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhcmZpbGUsIHRhcmluZm8pOgorICAgICAgICBmaWxlb2JqID0gX0ZpbGVJbkZpbGUodGFyZmlsZS5maWxlb2JqLCB0YXJpbmZvLm9mZnNldF9kYXRhLAorICAgICAgICAgICAgICAgIHRhcmluZm8uc2l6ZSwgdGFyaW5mby5zcGFyc2UpCisgICAgICAgIHN1cGVyKCkuX19pbml0X18oZmlsZW9iaikKICNjbGFzcyBFeEZpbGVPYmplY3QKIAogIy0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTA4Nyw3ICs5MDgsNyBAQAogICAgIGRlZiBjcmVhdGVfcGF4X2dsb2JhbF9oZWFkZXIoY2xzLCBwYXhfaGVhZGVycyk6CiAgICAgICAgICIiIlJldHVybiB0aGUgb2JqZWN0IGFzIGEgcGF4IGdsb2JhbCBoZWFkZXIgYmxvY2sgc2VxdWVuY2UuCiAgICAgICAgICIiIgotICAgICAgICByZXR1cm4gY2xzLl9jcmVhdGVfcGF4X2dlbmVyaWNfaGVhZGVyKHBheF9oZWFkZXJzLCBYR0xUWVBFLCAidXRmOCIpCisgICAgICAgIHJldHVybiBjbHMuX2NyZWF0ZV9wYXhfZ2VuZXJpY19oZWFkZXIocGF4X2hlYWRlcnMsIFhHTFRZUEUsICJ1dGYtOCIpCiAKICAgICBkZWYgX3Bvc2l4X3NwbGl0X25hbWUoc2VsZiwgbmFtZSk6CiAgICAgICAgICIiIlNwbGl0IGEgbmFtZSBsb25nZXIgdGhhbiAxMDAgY2hhcnMgaW50byBhIHByZWZpeApAQCAtMTE3MCw3ICs5OTEsNyBAQAogICAgICAgICBiaW5hcnkgPSBGYWxzZQogICAgICAgICBmb3Iga2V5d29yZCwgdmFsdWUgaW4gcGF4X2hlYWRlcnMuaXRlbXMoKToKICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB2YWx1ZS5lbmNvZGUoInV0ZjgiLCAic3RyaWN0IikKKyAgICAgICAgICAgICAgICB2YWx1ZS5lbmNvZGUoInV0Zi04IiwgInN0cmljdCIpCiAgICAgICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgogICAgICAgICAgICAgICAgIGJpbmFyeSA9IFRydWUKICAgICAgICAgICAgICAgICBicmVhawpAQCAtMTE4MSwxMyArMTAwMiwxMyBAQAogICAgICAgICAgICAgcmVjb3JkcyArPSBiIjIxIGhkcmNoYXJzZXQ9QklOQVJZXG4iCiAKICAgICAgICAgZm9yIGtleXdvcmQsIHZhbHVlIGluIHBheF9oZWFkZXJzLml0ZW1zKCk6Ci0gICAgICAgICAgICBrZXl3b3JkID0ga2V5d29yZC5lbmNvZGUoInV0ZjgiKQorICAgICAgICAgICAga2V5d29yZCA9IGtleXdvcmQuZW5jb2RlKCJ1dGYtOCIpCiAgICAgICAgICAgICBpZiBiaW5hcnk6CiAgICAgICAgICAgICAgICAgIyBUcnkgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgYnl0ZSByZXByZXNlbnRhdGlvbiBvZiBgdmFsdWUnLgogICAgICAgICAgICAgICAgICMgTmVlZGxlc3MgdG8gc2F5LCB0aGF0IHRoZSBlbmNvZGluZyBtdXN0IG1hdGNoIHRoZSBzdHJpbmcuCiAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5lbmNvZGUoZW5jb2RpbmcsICJzdXJyb2dhdGVlc2NhcGUiKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLmVuY29kZSgidXRmOCIpCisgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5lbmNvZGUoInV0Zi04IikKIAogICAgICAgICAgICAgbCA9IGxlbihrZXl3b3JkKSArIGxlbih2YWx1ZSkgKyAzICAgIyAnICcgKyAnPScgKyAnXG4nCiAgICAgICAgICAgICBuID0gcCA9IDAKQEAgLTEzOTYsNyArMTIxNyw3IEBACiAgICAgICAgICMgdGhlIHRyYW5zbGF0aW9uIHRvIFVURi04IGZhaWxzLgogICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaChiciJcZCsgaGRyY2hhcnNldD0oW15cbl0rKVxuIiwgYnVmKQogICAgICAgICBpZiBtYXRjaCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHBheF9oZWFkZXJzWyJoZHJjaGFyc2V0Il0gPSBtYXRjaC5ncm91cCgxKS5kZWNvZGUoInV0ZjgiKQorICAgICAgICAgICAgcGF4X2hlYWRlcnNbImhkcmNoYXJzZXQiXSA9IG1hdGNoLmdyb3VwKDEpLmRlY29kZSgidXRmLTgiKQogCiAgICAgICAgICMgRm9yIHRoZSB0aW1lIGJlaW5nLCB3ZSBkb24ndCBjYXJlIGFib3V0IGFueXRoaW5nIG90aGVyIHRoYW4gIkJJTkFSWSIuCiAgICAgICAgICMgVGhlIG9ubHkgb3RoZXIgdmFsdWUgdGhhdCBpcyBjdXJyZW50bHkgYWxsb3dlZCBieSB0aGUgc3RhbmRhcmQgaXMKQEAgLTE0MDUsNyArMTIyNiw3IEBACiAgICAgICAgIGlmIGhkcmNoYXJzZXQgPT0gIkJJTkFSWSI6CiAgICAgICAgICAgICBlbmNvZGluZyA9IHRhcmZpbGUuZW5jb2RpbmcKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGVuY29kaW5nID0gInV0ZjgiCisgICAgICAgICAgICBlbmNvZGluZyA9ICJ1dGYtOCIKIAogICAgICAgICAjIFBhcnNlIHBheCBoZWFkZXIgaW5mb3JtYXRpb24uIEEgcmVjb3JkIGxvb2tzIGxpa2UgdGhhdDoKICAgICAgICAgIyAiJWQgJXM9JXNcbiIgJSAobGVuZ3RoLCBrZXl3b3JkLCB2YWx1ZSkuIGxlbmd0aCBpcyB0aGUgc2l6ZQpAQCAtMTQyMiwyMCArMTI0MywyMCBAQAogICAgICAgICAgICAgbGVuZ3RoID0gaW50KGxlbmd0aCkKICAgICAgICAgICAgIHZhbHVlID0gYnVmW21hdGNoLmVuZCgyKSArIDE6bWF0Y2guc3RhcnQoMSkgKyBsZW5ndGggLSAxXQogCi0gICAgICAgICAgICAjIE5vcm1hbGx5LCB3ZSBjb3VsZCBqdXN0IHVzZSAidXRmOCIgYXMgdGhlIGVuY29kaW5nIGFuZCAic3RyaWN0IgorICAgICAgICAgICAgIyBOb3JtYWxseSwgd2UgY291bGQganVzdCB1c2UgInV0Zi04IiBhcyB0aGUgZW5jb2RpbmcgYW5kICJzdHJpY3QiCiAgICAgICAgICAgICAjIGFzIHRoZSBlcnJvciBoYW5kbGVyLCBidXQgd2UgYmV0dGVyIG5vdCB0YWtlIHRoZSByaXNrLiBGb3IKICAgICAgICAgICAgICMgZXhhbXBsZSwgR05VIHRhciA8PSAxLjIzIGlzIGtub3duIHRvIHN0b3JlIGZpbGVuYW1lcyBpdCBjYW5ub3QKICAgICAgICAgICAgICMgdHJhbnNsYXRlIHRvIFVURi04IGFzIHJhdyBzdHJpbmdzICh1bmZvcnR1bmF0ZWx5IHdpdGhvdXQgYQogICAgICAgICAgICAgIyBoZHJjaGFyc2V0PUJJTkFSWSBoZWFkZXIpLgogICAgICAgICAgICAgIyBXZSBmaXJzdCB0cnkgdGhlIHN0cmljdCBzdGFuZGFyZCBlbmNvZGluZywgYW5kIGlmIHRoYXQgZmFpbHMgd2UKICAgICAgICAgICAgICMgZmFsbCBiYWNrIG9uIHRoZSB1c2VyJ3MgZW5jb2RpbmcgYW5kIGVycm9yIGhhbmRsZXIuCi0gICAgICAgICAgICBrZXl3b3JkID0gc2VsZi5fZGVjb2RlX3BheF9maWVsZChrZXl3b3JkLCAidXRmOCIsICJ1dGY4IiwKKyAgICAgICAgICAgIGtleXdvcmQgPSBzZWxmLl9kZWNvZGVfcGF4X2ZpZWxkKGtleXdvcmQsICJ1dGYtOCIsICJ1dGYtOCIsCiAgICAgICAgICAgICAgICAgICAgIHRhcmZpbGUuZXJyb3JzKQogICAgICAgICAgICAgaWYga2V5d29yZCBpbiBQQVhfTkFNRV9GSUVMRFM6CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBzZWxmLl9kZWNvZGVfcGF4X2ZpZWxkKHZhbHVlLCBlbmNvZGluZywgdGFyZmlsZS5lbmNvZGluZywKICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmZpbGUuZXJyb3JzKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuX2RlY29kZV9wYXhfZmllbGQodmFsdWUsICJ1dGY4IiwgInV0ZjgiLAorICAgICAgICAgICAgICAgIHZhbHVlID0gc2VsZi5fZGVjb2RlX3BheF9maWVsZCh2YWx1ZSwgInV0Zi04IiwgInV0Zi04IiwKICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmZpbGUuZXJyb3JzKQogCiAgICAgICAgICAgICBwYXhfaGVhZGVyc1trZXl3b3JkXSA9IHZhbHVlCkBAIC0xNTk1LDcgKzE0MTYsNyBAQAogCiAgICAgdGFyaW5mbyA9IFRhckluZm8gICAgICAgICAgICMgVGhlIGRlZmF1bHQgVGFySW5mbyBjbGFzcyB0byB1c2UuCiAKLSAgICBmaWxlb2JqZWN0ID0gRXhGaWxlT2JqZWN0ICAgIyBUaGUgZGVmYXVsdCBFeEZpbGVPYmplY3QgY2xhc3MgdG8gdXNlLgorICAgIGZpbGVvYmplY3QgPSBFeEZpbGVPYmplY3QgICAjIFRoZSBmaWxlLW9iamVjdCBmb3IgZXh0cmFjdGZpbGUoKS4KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lPU5vbmUsIG1vZGU9InIiLCBmaWxlb2JqPU5vbmUsIGZvcm1hdD1Ob25lLAogICAgICAgICAgICAgdGFyaW5mbz1Ob25lLCBkZXJlZmVyZW5jZT1Ob25lLCBpZ25vcmVfemVyb3M9Tm9uZSwgZW5jb2Rpbmc9Tm9uZSwKQEAgLTE3MTQsMTggKzE1MzUsMjIgQEAKICAgICAgICAgICAgJ3I6JyAgICAgICAgIG9wZW4gZm9yIHJlYWRpbmcgZXhjbHVzaXZlbHkgdW5jb21wcmVzc2VkCiAgICAgICAgICAgICdyOmd6JyAgICAgICBvcGVuIGZvciByZWFkaW5nIHdpdGggZ3ppcCBjb21wcmVzc2lvbgogICAgICAgICAgICAncjpiejInICAgICAgb3BlbiBmb3IgcmVhZGluZyB3aXRoIGJ6aXAyIGNvbXByZXNzaW9uCisgICAgICAgICAgICdyOnh6JyAgICAgICBvcGVuIGZvciByZWFkaW5nIHdpdGggbHptYSBjb21wcmVzc2lvbgogICAgICAgICAgICAnYScgb3IgJ2E6JyAgb3BlbiBmb3IgYXBwZW5kaW5nLCBjcmVhdGluZyB0aGUgZmlsZSBpZiBuZWNlc3NhcnkKICAgICAgICAgICAgJ3cnIG9yICd3OicgIG9wZW4gZm9yIHdyaXRpbmcgd2l0aG91dCBjb21wcmVzc2lvbgogICAgICAgICAgICAndzpneicgICAgICAgb3BlbiBmb3Igd3JpdGluZyB3aXRoIGd6aXAgY29tcHJlc3Npb24KICAgICAgICAgICAgJ3c6YnoyJyAgICAgIG9wZW4gZm9yIHdyaXRpbmcgd2l0aCBiemlwMiBjb21wcmVzc2lvbgorICAgICAgICAgICAndzp4eicgICAgICAgb3BlbiBmb3Igd3JpdGluZyB3aXRoIGx6bWEgY29tcHJlc3Npb24KIAogICAgICAgICAgICAncnwqJyAgICAgICAgb3BlbiBhIHN0cmVhbSBvZiB0YXIgYmxvY2tzIHdpdGggdHJhbnNwYXJlbnQgY29tcHJlc3Npb24KICAgICAgICAgICAgJ3J8JyAgICAgICAgIG9wZW4gYW4gdW5jb21wcmVzc2VkIHN0cmVhbSBvZiB0YXIgYmxvY2tzIGZvciByZWFkaW5nCiAgICAgICAgICAgICdyfGd6JyAgICAgICBvcGVuIGEgZ3ppcCBjb21wcmVzc2VkIHN0cmVhbSBvZiB0YXIgYmxvY2tzCiAgICAgICAgICAgICdyfGJ6MicgICAgICBvcGVuIGEgYnppcDIgY29tcHJlc3NlZCBzdHJlYW0gb2YgdGFyIGJsb2NrcworICAgICAgICAgICAncnx4eicgICAgICAgb3BlbiBhbiBsem1hIGNvbXByZXNzZWQgc3RyZWFtIG9mIHRhciBibG9ja3MKICAgICAgICAgICAgJ3d8JyAgICAgICAgIG9wZW4gYW4gdW5jb21wcmVzc2VkIHN0cmVhbSBmb3Igd3JpdGluZwogICAgICAgICAgICAnd3xneicgICAgICAgb3BlbiBhIGd6aXAgY29tcHJlc3NlZCBzdHJlYW0gZm9yIHdyaXRpbmcKICAgICAgICAgICAgJ3d8YnoyJyAgICAgIG9wZW4gYSBiemlwMiBjb21wcmVzc2VkIHN0cmVhbSBmb3Igd3JpdGluZworICAgICAgICAgICAnd3x4eicgICAgICAgb3BlbiBhbiBsem1hIGNvbXByZXNzZWQgc3RyZWFtIGZvciB3cml0aW5nCiAgICAgICAgICIiIgogCiAgICAgICAgIGlmIG5vdCBuYW1lIGFuZCBub3QgZmlsZW9iajoKQEAgLTE4MzIsMTAgKzE2NTcsOCBAQAogICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICAgICByYWlzZSBDb21wcmVzc2lvbkVycm9yKCJiejIgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUiKQogCi0gICAgICAgIGlmIGZpbGVvYmogaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmaWxlb2JqID0gX0JaMlByb3h5KGZpbGVvYmosIG1vZGUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmaWxlb2JqID0gYnoyLkJaMkZpbGUobmFtZSwgbW9kZSwgY29tcHJlc3NsZXZlbD1jb21wcmVzc2xldmVsKQorICAgICAgICBmaWxlb2JqID0gYnoyLkJaMkZpbGUoZmlsZW9iaiBvciBuYW1lLCBtb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NsZXZlbD1jb21wcmVzc2xldmVsKQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHQgPSBjbHMudGFyb3BlbihuYW1lLCBtb2RlLCBmaWxlb2JqLCAqKmt3YXJncykKQEAgLTE4NDUsMTEgKzE2NjgsMzUgQEAKICAgICAgICAgdC5fZXh0ZmlsZW9iaiA9IEZhbHNlCiAgICAgICAgIHJldHVybiB0CiAKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgeHpvcGVuKGNscywgbmFtZSwgbW9kZT0iciIsIGZpbGVvYmo9Tm9uZSwgcHJlc2V0PU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAgIiIiT3BlbiBsem1hIGNvbXByZXNzZWQgdGFyIGFyY2hpdmUgbmFtZSBmb3IgcmVhZGluZyBvciB3cml0aW5nLgorICAgICAgICAgICBBcHBlbmRpbmcgaXMgbm90IGFsbG93ZWQuCisgICAgICAgICIiIgorICAgICAgICBpZiBtb2RlIG5vdCBpbiAoInIiLCAidyIpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibW9kZSBtdXN0IGJlICdyJyBvciAndyciKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGltcG9ydCBsem1hCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIENvbXByZXNzaW9uRXJyb3IoImx6bWEgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUiKQorCisgICAgICAgIGZpbGVvYmogPSBsem1hLkxaTUFGaWxlKGZpbGVvYmogb3IgbmFtZSwgbW9kZSwgcHJlc2V0PXByZXNldCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICB0ID0gY2xzLnRhcm9wZW4obmFtZSwgbW9kZSwgZmlsZW9iaiwgKiprd2FyZ3MpCisgICAgICAgIGV4Y2VwdCAobHptYS5MWk1BRXJyb3IsIEVPRkVycm9yKToKKyAgICAgICAgICAgIGZpbGVvYmouY2xvc2UoKQorICAgICAgICAgICAgcmFpc2UgUmVhZEVycm9yKCJub3QgYW4gbHptYSBmaWxlIikKKyAgICAgICAgdC5fZXh0ZmlsZW9iaiA9IEZhbHNlCisgICAgICAgIHJldHVybiB0CisKICAgICAjIEFsbCAqb3BlbigpIG1ldGhvZHMgYXJlIHJlZ2lzdGVyZWQgaGVyZS4KICAgICBPUEVOX01FVEggPSB7CiAgICAgICAgICJ0YXIiOiAidGFyb3BlbiIsICAgIyB1bmNvbXByZXNzZWQgdGFyCiAgICAgICAgICJneiI6ICAiZ3pvcGVuIiwgICAgIyBnemlwIGNvbXByZXNzZWQgdGFyCi0gICAgICAgICJiejIiOiAiYnoyb3BlbiIgICAgIyBiemlwMiBjb21wcmVzc2VkIHRhcgorICAgICAgICAiYnoyIjogImJ6Mm9wZW4iLCAgICMgYnppcDIgY29tcHJlc3NlZCB0YXIKKyAgICAgICAgInh6IjogICJ4em9wZW4iICAgICAjIGx6bWEgY29tcHJlc3NlZCB0YXIKICAgICB9CiAKICAgICAjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIwMDksNyArMTg1Niw3IEBACiAKICAgICAgICAgZm9yIHRhcmluZm8gaW4gc2VsZjoKICAgICAgICAgICAgIGlmIHZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoZmlsZW1vZGUodGFyaW5mby5tb2RlKSwgZW5kPScgJykKKyAgICAgICAgICAgICAgICBwcmludChzdGF0LmZpbGVtb2RlKHRhcmluZm8ubW9kZSksIGVuZD0nICcpCiAgICAgICAgICAgICAgICAgcHJpbnQoIiVzLyVzIiAlICh0YXJpbmZvLnVuYW1lIG9yIHRhcmluZm8udWlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyaW5mby5nbmFtZSBvciB0YXJpbmZvLmdpZCksIGVuZD0nICcpCiAgICAgICAgICAgICAgICAgaWYgdGFyaW5mby5pc2NocigpIG9yIHRhcmluZm8uaXNibGsoKToKQEAgLTIxOTIsMTIgKzIwMzksOSBAQAogCiAgICAgZGVmIGV4dHJhY3RmaWxlKHNlbGYsIG1lbWJlcik6CiAgICAgICAgICIiIkV4dHJhY3QgYSBtZW1iZXIgZnJvbSB0aGUgYXJjaGl2ZSBhcyBhIGZpbGUgb2JqZWN0LiBgbWVtYmVyJyBtYXkgYmUKLSAgICAgICAgICAgYSBmaWxlbmFtZSBvciBhIFRhckluZm8gb2JqZWN0LiBJZiBgbWVtYmVyJyBpcyBhIHJlZ3VsYXIgZmlsZSwgYQotICAgICAgICAgICBmaWxlLWxpa2Ugb2JqZWN0IGlzIHJldHVybmVkLiBJZiBgbWVtYmVyJyBpcyBhIGxpbmssIGEgZmlsZS1saWtlCi0gICAgICAgICAgIG9iamVjdCBpcyBjb25zdHJ1Y3RlZCBmcm9tIHRoZSBsaW5rJ3MgdGFyZ2V0LiBJZiBgbWVtYmVyJyBpcyBub25lIG9mCi0gICAgICAgICAgIHRoZSBhYm92ZSwgTm9uZSBpcyByZXR1cm5lZC4KLSAgICAgICAgICAgVGhlIGZpbGUtbGlrZSBvYmplY3QgaXMgcmVhZC1vbmx5IGFuZCBwcm92aWRlcyB0aGUgZm9sbG93aW5nCi0gICAgICAgICAgIG1ldGhvZHM6IHJlYWQoKSwgcmVhZGxpbmUoKSwgcmVhZGxpbmVzKCksIHNlZWsoKSBhbmQgdGVsbCgpCisgICAgICAgICAgIGEgZmlsZW5hbWUgb3IgYSBUYXJJbmZvIG9iamVjdC4gSWYgYG1lbWJlcicgaXMgYSByZWd1bGFyIGZpbGUgb3IgYQorICAgICAgICAgICBsaW5rLCBhbiBpby5CdWZmZXJlZFJlYWRlciBvYmplY3QgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSwgTm9uZSBpcworICAgICAgICAgICByZXR1cm5lZC4KICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYuX2NoZWNrKCJyIikKIApAQCAtMjIwNiwxMiArMjA1MCw4IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB0YXJpbmZvID0gbWVtYmVyCiAKLSAgICAgICAgaWYgdGFyaW5mby5pc3JlZygpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuZmlsZW9iamVjdChzZWxmLCB0YXJpbmZvKQotCi0gICAgICAgIGVsaWYgdGFyaW5mby50eXBlIG5vdCBpbiBTVVBQT1JURURfVFlQRVM6Ci0gICAgICAgICAgICAjIElmIGEgbWVtYmVyJ3MgdHlwZSBpcyB1bmtub3duLCBpdCBpcyB0cmVhdGVkIGFzIGEKLSAgICAgICAgICAgICMgcmVndWxhciBmaWxlLgorICAgICAgICBpZiB0YXJpbmZvLmlzcmVnKCkgb3IgdGFyaW5mby50eXBlIG5vdCBpbiBTVVBQT1JURURfVFlQRVM6CisgICAgICAgICAgICAjIE1lbWJlcnMgd2l0aCB1bmtub3duIHR5cGVzIGFyZSB0cmVhdGVkIGFzIHJlZ3VsYXIgZmlsZXMuCiAgICAgICAgICAgICByZXR1cm4gc2VsZi5maWxlb2JqZWN0KHNlbGYsIHRhcmluZm8pCiAKICAgICAgICAgZWxpZiB0YXJpbmZvLmlzbG5rKCkgb3IgdGFyaW5mby5pc3N5bSgpOgpAQCAtMjI4Myw5ICsyMTIzLDggQEAKICAgICAgICAgICAgICMgVXNlIGEgc2FmZSBtb2RlIGZvciB0aGUgZGlyZWN0b3J5LCB0aGUgcmVhbCBtb2RlIGlzIHNldAogICAgICAgICAgICAgIyBsYXRlciBpbiBfZXh0cmFjdF9tZW1iZXIoKS4KICAgICAgICAgICAgIG9zLm1rZGlyKHRhcmdldHBhdGgsIDBvNzAwKQotICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvciBhcyBlOgotICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FRVhJU1Q6Ci0gICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IEZpbGVFeGlzdHNFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKIAogICAgIGRlZiBtYWtlZmlsZShzZWxmLCB0YXJpbmZvLCB0YXJnZXRwYXRoKToKICAgICAgICAgIiIiTWFrZSBhIGZpbGUgY2FsbGVkIHRhcmdldHBhdGguCmRpZmYgLS1naXQgYS9MaWIvdGVtcGZpbGUucHkgYi9MaWIvdGVtcGZpbGUucHkKaW5kZXggMzRkZmYzMC4uMzllYmY1YSAxMDA2NDQKLS0tIGEvTGliL3RlbXBmaWxlLnB5CisrKyBiL0xpYi90ZW1wZmlsZS5weQpAQCAtMTAsOCArMTAsNiBAQAogCiAgIFRNUF9NQVggIC0gbWF4aW11bSBudW1iZXIgb2YgbmFtZXMgdGhhdCB3aWxsIGJlIHRyaWVkIGJlZm9yZQogICAgICAgICAgICAgIGdpdmluZyB1cC4KLSAgdGVtcGxhdGUgLSB0aGUgZGVmYXVsdCBwcmVmaXggZm9yIGFsbCB0ZW1wb3JhcnkgbmFtZXMuCi0gICAgICAgICAgICAgWW91IG1heSBjaGFuZ2UgdGhpcyB0byBjb250cm9sIHRoZSBkZWZhdWx0IHByZWZpeC4KICAgdGVtcGRpciAgLSBJZiB0aGlzIGlzIHNldCB0byBhIHN0cmluZyBiZWZvcmUgdGhlIGZpcnN0IHVzZSBvZgogICAgICAgICAgICAgIGFueSByb3V0aW5lIGZyb20gdGhpcyBtb2R1bGUsIGl0IHdpbGwgYmUgY29uc2lkZXJlZCBhcwogICAgICAgICAgICAgIGFub3RoZXIgY2FuZGlkYXRlIGxvY2F0aW9uIHRvIHN0b3JlIHRlbXBvcmFyeSBmaWxlcy4KQEAgLTMzLDcgKzMxLDYgQEAKIGltcG9ydCBzeXMgYXMgX3N5cwogaW1wb3J0IGlvIGFzIF9pbwogaW1wb3J0IG9zIGFzIF9vcwotaW1wb3J0IGVycm5vIGFzIF9lcnJubwogZnJvbSByYW5kb20gaW1wb3J0IFJhbmRvbSBhcyBfUmFuZG9tCiAKIHRyeToKQEAgLTQ1LDcgKzQyLDcgQEAKICAgICBkZWYgX3NldF9jbG9leGVjKGZkKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZmxhZ3MgPSBfZmNudGwuZmNudGwoZmQsIF9mY250bC5GX0dFVEZELCAwKQotICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAjIGZsYWdzIHJlYWQgc3VjY2Vzc2Z1bGx5LCBtb2RpZnkKQEAgLTc0LDYgKzcxLDggQEAKIGVsc2U6CiAgICAgVE1QX01BWCA9IDEwMDAwCiAKKyMgQWx0aG91Z2ggaXQgZG9lcyBub3QgaGF2ZSBhbiB1bmRlcnNjb3JlIGZvciBoaXN0b3JpY2FsIHJlYXNvbnMsIHRoaXMKKyMgdmFyaWFibGUgaXMgYW4gaW50ZXJuYWwgaW1wbGVtZW50YXRpb24gZGV0YWlsIChzZWUgaXNzdWUgMTAzNTQpLgogdGVtcGxhdGUgPSAidG1wIgogCiAjIEludGVybmFsIHJvdXRpbmVzLgpAQCAtODUsMTkgKzg0LDE2IEBACiBlbGlmIGhhc2F0dHIoX29zLCAic3RhdCIpOgogICAgIF9zdGF0ID0gX29zLnN0YXQKIGVsc2U6Ci0gICAgIyBGYWxsYmFjay4gIEFsbCB3ZSBuZWVkIGlzIHNvbWV0aGluZyB0aGF0IHJhaXNlcyBvcy5lcnJvciBpZiB0aGUKKyAgICAjIEZhbGxiYWNrLiAgQWxsIHdlIG5lZWQgaXMgc29tZXRoaW5nIHRoYXQgcmFpc2VzIE9TRXJyb3IgaWYgdGhlCiAgICAgIyBmaWxlIGRvZXNuJ3QgZXhpc3QuCiAgICAgZGVmIF9zdGF0KGZuKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZiA9IG9wZW4oZm4pCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgcmFpc2UgX29zLmVycm9yCisgICAgICAgIGYgPSBvcGVuKGZuKQogICAgICAgICBmLmNsb3NlKCkKIAogZGVmIF9leGlzdHMoZm4pOgogICAgIHRyeToKICAgICAgICAgX3N0YXQoZm4pCi0gICAgZXhjZXB0IF9vcy5lcnJvcjoKKyAgICBleGNlcHQgT1NFcnJvcjoKICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgZWxzZToKICAgICAgICAgcmV0dXJuIFRydWUKQEAgLTE0OSw3ICsxNDUsNyBAQAogICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgogICAgIHRyeToKICAgICAgICAgZGlybGlzdC5hcHBlbmQoX29zLmdldGN3ZCgpKQotICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIF9vcy5lcnJvcik6CisgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgT1NFcnJvcik6CiAgICAgICAgIGRpcmxpc3QuYXBwZW5kKF9vcy5jdXJkaXIpCiAKICAgICByZXR1cm4gZGlybGlzdApAQCAtMTgxLDEyICsxNzcsMTEgQEAKICAgICAgICAgICAgICAgICBfb3MudW5saW5rKGZpbGVuYW1lKQogICAgICAgICAgICAgICAgIGRlbCBmcCwgZmQKICAgICAgICAgICAgICAgICByZXR1cm4gZGlyCi0gICAgICAgICAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpIGFzIGU6Ci0gICAgICAgICAgICAgICAgaWYgZS5hcmdzWzBdICE9IF9lcnJuby5FRVhJU1Q6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrICMgbm8gcG9pbnQgdHJ5aW5nIG1vcmUgbmFtZXMgaW4gdGhpcyBkaXJlY3RvcnkKKyAgICAgICAgICAgIGV4Y2VwdCBGaWxlRXhpc3RzRXJyb3I6CiAgICAgICAgICAgICAgICAgcGFzcwotICAgIHJhaXNlIElPRXJyb3IoX2Vycm5vLkVOT0VOVCwKLSAgICAgICAgICAgICAgICAgICJObyB1c2FibGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3VuZCBpbiAlcyIgJSBkaXJsaXN0KQorICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgYnJlYWsgICAjIG5vIHBvaW50IHRyeWluZyBtb3JlIG5hbWVzIGluIHRoaXMgZGlyZWN0b3J5CisgICAgcmFpc2UgRmlsZU5vdEZvdW5kRXJyb3IoIk5vIHVzYWJsZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGZvdW5kIGluICVzIiAlIGRpcmxpc3QpCiAKIF9uYW1lX3NlcXVlbmNlID0gTm9uZQogCkBAIC0yMTYsMTIgKzIxMSwxMCBAQAogICAgICAgICAgICAgZmQgPSBfb3Mub3BlbihmaWxlLCBmbGFncywgMG82MDApCiAgICAgICAgICAgICBfc2V0X2Nsb2V4ZWMoZmQpCiAgICAgICAgICAgICByZXR1cm4gKGZkLCBfb3MucGF0aC5hYnNwYXRoKGZpbGUpKQotICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgotICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBfZXJybm8uRUVYSVNUOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlICMgdHJ5IGFnYWluCi0gICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQgRmlsZUV4aXN0c0Vycm9yOgorICAgICAgICAgICAgY29udGludWUgICAgIyB0cnkgYWdhaW4KIAotICAgIHJhaXNlIElPRXJyb3IoX2Vycm5vLkVFWElTVCwgIk5vIHVzYWJsZSB0ZW1wb3JhcnkgZmlsZSBuYW1lIGZvdW5kIikKKyAgICByYWlzZSBGaWxlRXhpc3RzRXJyb3IoIk5vIHVzYWJsZSB0ZW1wb3JhcnkgZmlsZSBuYW1lIGZvdW5kIikKIAogCiAjIFVzZXIgdmlzaWJsZSBpbnRlcmZhY2VzLgpAQCAtMzA1LDEyICsyOTgsMTAgQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgX29zLm1rZGlyKGZpbGUsIDBvNzAwKQogICAgICAgICAgICAgcmV0dXJuIGZpbGUKLSAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gX2Vycm5vLkVFWElTVDoKLSAgICAgICAgICAgICAgICBjb250aW51ZSAjIHRyeSBhZ2FpbgotICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZXhjZXB0IEZpbGVFeGlzdHNFcnJvcjoKKyAgICAgICAgICAgIGNvbnRpbnVlICAgICMgdHJ5IGFnYWluCiAKLSAgICByYWlzZSBJT0Vycm9yKF9lcnJuby5FRVhJU1QsICJObyB1c2FibGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBuYW1lIGZvdW5kIikKKyAgICByYWlzZSBGaWxlRXhpc3RzRXJyb3IoIk5vIHVzYWJsZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IG5hbWUgZm91bmQiKQogCiBkZWYgbWt0ZW1wKHN1ZmZpeD0iIiwgcHJlZml4PXRlbXBsYXRlLCBkaXI9Tm9uZSk6CiAgICAgIiIiVXNlci1jYWxsYWJsZSBmdW5jdGlvbiB0byByZXR1cm4gYSB1bmlxdWUgdGVtcG9yYXJ5IGZpbGUgbmFtZS4gIFRoZQpAQCAtMzM5LDcgKzMzMCw3IEBACiAgICAgICAgIGlmIG5vdCBfZXhpc3RzKGZpbGUpOgogICAgICAgICAgICAgcmV0dXJuIGZpbGUKIAotICAgIHJhaXNlIElPRXJyb3IoX2Vycm5vLkVFWElTVCwgIk5vIHVzYWJsZSB0ZW1wb3JhcnkgZmlsZW5hbWUgZm91bmQiKQorICAgIHJhaXNlIEZpbGVFeGlzdHNFcnJvcigiTm8gdXNhYmxlIHRlbXBvcmFyeSBmaWxlbmFtZSBmb3VuZCIpCiAKIAogY2xhc3MgX1RlbXBvcmFyeUZpbGVXcmFwcGVyOgpAQCAtNTkyLDggKzU4MywxMyBAQAogICAgIGRlZiB0ZWxsKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fZmlsZS50ZWxsKCkKIAotICAgIGRlZiB0cnVuY2F0ZShzZWxmKToKLSAgICAgICAgc2VsZi5fZmlsZS50cnVuY2F0ZSgpCisgICAgZGVmIHRydW5jYXRlKHNlbGYsIHNpemU9Tm9uZSk6CisgICAgICAgIGlmIHNpemUgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2ZpbGUudHJ1bmNhdGUoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2l6ZSA+IHNlbGYuX21heF9zaXplOgorICAgICAgICAgICAgICAgIHNlbGYucm9sbG92ZXIoKQorICAgICAgICAgICAgc2VsZi5fZmlsZS50cnVuY2F0ZShzaXplKQogCiAgICAgZGVmIHdyaXRlKHNlbGYsIHMpOgogICAgICAgICBmaWxlID0gc2VsZi5fZmlsZQpAQCAtNjY5LDcgKzY2NSw3IEBACiAgICAgX2lzbGluayA9IHN0YXRpY21ldGhvZChfb3MucGF0aC5pc2xpbmspCiAgICAgX3JlbW92ZSA9IHN0YXRpY21ldGhvZChfb3MucmVtb3ZlKQogICAgIF9ybWRpciA9IHN0YXRpY21ldGhvZChfb3Mucm1kaXIpCi0gICAgX29zX2Vycm9yID0gX29zLmVycm9yCisgICAgX29zX2Vycm9yID0gT1NFcnJvcgogICAgIF93YXJuID0gX3dhcm5pbmdzLndhcm4KIAogICAgIGRlZiBfcm10cmVlKHNlbGYsIHBhdGgpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvYnVmZmVyX3Rlc3RzLnB5IGIvTGliL3Rlc3QvYnVmZmVyX3Rlc3RzLnB5CmluZGV4IDZkMjBmN2QuLmNmNTRjMjggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L2J1ZmZlcl90ZXN0cy5weQorKysgYi9MaWIvdGVzdC9idWZmZXJfdGVzdHMucHkKQEAgLTIwMCw3ICsyMDAsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hcnNoYWwoYidhYmNcbmRlZlxyXG5naGlcblxyJykuc3BsaXRsaW5lcygpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtiJycsIGInYWJjJywgYidkZWYnLCBiJ2doaScsIGInJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXJzaGFsKGInXG5hYmNcbmRlZlxyXG5naGlcblxyJykuc3BsaXRsaW5lcygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtiJycsIGInYWJjJywgYidkZWYnLCBiJ2doaScsIGInJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5tYXJzaGFsKGInXG5hYmNcbmRlZlxyXG5naGlcblxyJykuc3BsaXRsaW5lcyhGYWxzZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2InXG4nLCBiJ2FiY1xuJywgYidkZWZcclxuJywgYidnaGlcbicsIGInXHInXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hcnNoYWwoYidcbmFiY1xuZGVmXHJcbmdoaVxuXHInKS5zcGxpdGxpbmVzKDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWFyc2hhbChiJ1xuYWJjXG5kZWZcclxuZ2hpXG5ccicpLnNwbGl0bGluZXMoVHJ1ZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2InJywgYidhYmMnLCBiJ2RlZicsIGInZ2hpJywgYicnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1hcnNoYWwoYidcbmFiY1xuZGVmXHJcbmdoaVxuXHInKS5zcGxpdGxpbmVzKGtlZXBlbmRzPUZhbHNlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbYidcbicsIGInYWJjXG4nLCBiJ2RlZlxyXG4nLCBiJ2doaVxuJywgYidcciddLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubWFyc2hhbChiJ1xuYWJjXG5kZWZcclxuZ2hpXG5ccicpLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkpCiAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLm1hcnNoYWwoYidhYmMnKS5zcGxpdGxpbmVzLCA0MiwgNDIpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9jcmFzaGVycy9SRUFETUUgYi9MaWIvdGVzdC9jcmFzaGVycy9SRUFETUUKaW5kZXggMmE3M2UxYi4uMDI1OWEwNiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvY3Jhc2hlcnMvUkVBRE1FCisrKyBiL0xpYi90ZXN0L2NyYXNoZXJzL1JFQURNRQpAQCAtMTQsMyArMTQsNyBAQAogT25jZSB0aGUgY3Jhc2ggaXMgZml4ZWQsIHRoZSB0ZXN0IGNhc2Ugc2hvdWxkIGJlIG1vdmVkIGludG8gYW4gYXBwcm9wcmlhdGUgdGVzdAogKGV2ZW4gaWYgaXQgd2FzIG9yaWdpbmFsbHkgZnJvbSB0aGUgdGVzdCBzdWl0ZSkuICBUaGlzIGVuc3VyZXMgdGhlIHJlZ3Jlc3Npb24KIGRvZXNuJ3QgaGFwcGVuIGFnYWluLiAgQW5kIGlmIGl0IGRvZXMsIGl0IHNob3VsZCBiZSBlYXNpZXIgdG8gdHJhY2sgZG93bi4KKworQWxzbyBzZWUgTGliL3Rlc3RfY3Jhc2hlcnMucHkgd2hpY2ggZXhlcmNpc2VzIHRoZSBjcmFzaGVycyBpbiB0aGlzIGRpcmVjdG9yeS4KK0luIHBhcnRpY3VsYXIsIG1ha2Ugc3VyZSB0byBhZGQgYW55IG5ldyBpbmZpbml0ZSBsb29wIGNyYXNoZXJzIHRvIHRoZSBibGFjaworbGlzdCBzbyBpdCBkb2Vzbid0IHRyeSB0byBydW4gdGhlbS4KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L2NyYXNoZXJzL2JvcnJvd2VkX3JlZl8xLnB5IGIvTGliL3Rlc3QvY3Jhc2hlcnMvYm9ycm93ZWRfcmVmXzEucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4MmY0NjQuLjAwMDAwMDAKLS0tIGEvTGliL3Rlc3QvY3Jhc2hlcnMvYm9ycm93ZWRfcmVmXzEucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi0iIiIKLV9QeVR5cGVfTG9va3VwKCkgcmV0dXJucyBhIGJvcnJvd2VkIHJlZmVyZW5jZS4KLVRoaXMgYXR0YWNrcyB0aGUgY2FsbCBpbiBkaWN0b2JqZWN0LmMuCi0iIiIKLQotY2xhc3MgQShvYmplY3QpOgotICAgIHBhc3MKLQotY2xhc3MgQihvYmplY3QpOgotICAgIGRlZiBfX2RlbF9fKHNlbGYpOgotICAgICAgICBwcmludCgnaGknKQotICAgICAgICBkZWwgRC5fX21pc3NpbmdfXwotCi1jbGFzcyBEKGRpY3QpOgotICAgIGNsYXNzIF9fbWlzc2luZ19fOgotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MpOgotICAgICAgICAgICAgcGFzcwotCi0KLWQgPSBEKCkKLWEgPSBBKCkKLWEuY3ljbGUgPSBhCi1hLm90aGVyID0gQigpCi1kZWwgYQotCi1wcmV2ID0gTm9uZQotd2hpbGUgMToKLSAgICBkWzVdCi0gICAgcHJldiA9IChwcmV2LCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L2NyYXNoZXJzL2JvcnJvd2VkX3JlZl8yLnB5IGIvTGliL3Rlc3QvY3Jhc2hlcnMvYm9ycm93ZWRfcmVmXzIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlNDAzZWIuLjAwMDAwMDAKLS0tIGEvTGliL3Rlc3QvY3Jhc2hlcnMvYm9ycm93ZWRfcmVmXzIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzOCArMCwwIEBACi0iIiIKLV9QeVR5cGVfTG9va3VwKCkgcmV0dXJucyBhIGJvcnJvd2VkIHJlZmVyZW5jZS4KLVRoaXMgYXR0YWNrcyBQeU9iamVjdF9HZW5lcmljU2V0QXR0cigpLgotCi1OQi4gb24gbXkgbWFjaGluZSB0aGlzIGNyYXNoZXMgaW4gMi41IGRlYnVnIGJ1dCBub3QgcmVsZWFzZS4KLSIiIgotCi1jbGFzcyBBKG9iamVjdCk6Ci0gICAgcGFzcwotCi1jbGFzcyBCKG9iamVjdCk6Ci0gICAgZGVmIF9fZGVsX18oc2VsZik6Ci0gICAgICAgIHByaW50KCJoaSIpCi0gICAgICAgIGRlbCBDLmQKLQotY2xhc3MgRChvYmplY3QpOgotICAgIGRlZiBfX3NldF9fKHNlbGYsIG9iaiwgdmFsdWUpOgotICAgICAgICBzZWxmLmhlbGxvID0gNDIKLQotY2xhc3MgQyhvYmplY3QpOgotICAgIGQgPSBEKCkKLQotICAgIGRlZiBnKCk6Ci0gICAgICAgIHBhc3MKLQotCi1jID0gQygpCi1hID0gQSgpCi1hLmN5Y2xlID0gYQotYS5vdGhlciA9IEIoKQotCi1sc3QgPSBbTm9uZV0gKiAxMDAwMDAwCi1pID0gMAotZGVsIGEKLXdoaWxlIDE6Ci0gICAgYy5kID0gNDIgICAgICAgICAjIHNlZ2ZhdWx0cyBpbiBQeU1ldGhvZF9OZXcoX19mdW5jX189RC5fX3NldF9fLCBfX3NlbGZfXz1kKQotICAgIGxzdFtpXSA9IGMuZyAgICAgIyBjb25zdW1lIHRoZSBmcmVlIGxpc3Qgb2YgaW5zdGFuY2VtZXRob2Qgb2JqZWN0cwotICAgIGkgKz0gMQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvY3Jhc2hlcnMvY29tcGlsZXJfcmVjdXJzaW9uLnB5IGIvTGliL3Rlc3QvY3Jhc2hlcnMvY29tcGlsZXJfcmVjdXJzaW9uLnB5CmluZGV4IDQ5NTRiZGQuLjMxZjI4YTkgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L2NyYXNoZXJzL2NvbXBpbGVyX3JlY3Vyc2lvbi5weQorKysgYi9MaWIvdGVzdC9jcmFzaGVycy9jb21waWxlcl9yZWN1cnNpb24ucHkKQEAgLTEsNSArMSwxMyBAQAogIiIiCi1UaGUgY29tcGlsZXIgKD49IDIuNSkgcmVjdXJzZXMgaGFwcGlseS4KK1RoZSBjb21waWxlciAoPj0gMi41KSByZWN1cnNlcyBoYXBwaWx5IHVudGlsIGl0IGJsb3dzIHRoZSBzdGFjay4KKworUmVjb3JkZWQgb24gdGhlIHRyYWNrZXIgYXMgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTExMzgzCiAiIiIKIAotY29tcGlsZSgnKCknKjkqKjUsICc/JywgJ2V4ZWMnKQorIyBUaGUgdmFyaWFudCBiZWxvdyBibG93cyB1cCBpbiBjb21waWxlcl9jYWxsLCBidXQgdGhlcmUgYXJlIGFzc29ydGVkCisjIG90aGVyIHZhcmlhdGlvbnMgdGhhdCBibG93IHVwIGluIG90aGVyIGZ1bmN0aW9ucworIyBlLmcuICcxKicqMTAqKjUrJzEnIHdpbGwgZGllIGluIGNvbXBpbGVyX3Zpc2l0X2V4cHIKKworIyBUaGUgZXhhY3QgbGltaXQgdG8gZGVzdHJveSB0aGUgc3RhY2sgd2lsbCB2YXJ5IGJ5IHBsYXRmb3JtCisjIGJ1dCAxME0gc2hvdWxkIGRvIHRoZSB0cmljayBldmVuIHdpdGggaHVnZSBzdGFjayBhbGxvY2F0aW9ucworY29tcGlsZSgnKCknKjEwKio3LCAnPycsICdleGVjJykKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L2NyYXNoZXJzL2xvb3NpbmdfbXJvX3JlZi5weSBiL0xpYi90ZXN0L2NyYXNoZXJzL2xvb3NpbmdfbXJvX3JlZi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjNiY2QzMi4uMDAwMDAwMAotLS0gYS9MaWIvdGVzdC9jcmFzaGVycy9sb29zaW5nX21yb19yZWYucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0iIiIKLVRoZXJlIGlzIGEgd2F5IHRvIHB1dCBrZXlzIG9mIGFueSB0eXBlIGluIGEgdHlwZSdzIGRpY3Rpb25hcnkuCi1JIHRoaW5rIHRoaXMgYWxsb3dzIHZhcmlvdXMga2luZHMgb2YgY3Jhc2hlcywgYnV0IHNvIGZhciBJIGhhdmUgb25seQotZm91bmQgYSBjb252b2x1dGVkIGF0dGFjayBvZiBfUHlUeXBlX0xvb2t1cCgpLCB3aGljaCB1c2VzIHRoZSBtcm8gb2YgdGhlCi10eXBlIHdpdGhvdXQgaG9sZGluZyBhIHN0cm9uZyByZWZlcmVuY2UgdG8gaXQuICBQcm9iYWJseSB3b3JrcyB3aXRoCi1zdXBlci5fX2dldGF0dHJpYnV0ZV9fKCkgdG9vLCB3aGljaCB1c2VzIHRoZSBzYW1lIGtpbmQgb2YgY29kZS4KLSIiIgotCi1jbGFzcyBNeUtleShvYmplY3QpOgotICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGhhc2goJ215a2V5JykKLQotICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgotICAgICAgICAjIHRoZSBmb2xsb3dpbmcgbGluZSBkZWNyZWZzIHRoZSBwcmV2aW91cyBYLl9fbXJvX18KLSAgICAgICAgWC5fX2Jhc2VzX18gPSAoQmFzZTIsKQotICAgICAgICAjIHRyYXNoIGFsbCB0dXBsZXMgb2YgbGVuZ3RoIDMsIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBpdGVtcyBvZgotICAgICAgICAjIHRoZSBwcmV2aW91cyBYLl9fbXJvX18gYXJlIHJlYWxseSBnYXJiYWdlCi0gICAgICAgIHogPSBbXQotICAgICAgICBmb3IgaSBpbiByYW5nZSgxMDAwKToKLSAgICAgICAgICAgIHouYXBwZW5kKChpLCBOb25lLCBOb25lKSkKLSAgICAgICAgcmV0dXJuIDAKLQotCi1jbGFzcyBCYXNlKG9iamVjdCk6Ci0gICAgbXlrZXkgPSAnZnJvbSBCYXNlJwotCi1jbGFzcyBCYXNlMihvYmplY3QpOgotICAgIG15a2V5ID0gJ2Zyb20gQmFzZTInCi0KLSMgeW91IGNhbid0IGFkZCBhIG5vbi1zdHJpbmcga2V5IHRvIFguX19kaWN0X18sIGJ1dCBpdCBjYW4gYmUKLSMgdGhlcmUgZnJvbSB0aGUgYmVnaW5uaW5nIDotKQotWCA9IHR5cGUoJ1gnLCAoQmFzZSwpLCB7TXlLZXkoKTogNX0pCi0KLXByaW50KFgubXlrZXkpCi0jIEkgZ2V0IGEgc2VnZmF1bHQsIG9yIGEgc2xpZ2h0bHkgd3JvbmcgYXNzZXJ0aW9uIGVycm9yIGluIGEgZGVidWcgYnVpbGQuCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9jcmFzaGVycy9uYXN0eV9lcV92c19kaWN0LnB5IGIvTGliL3Rlc3QvY3Jhc2hlcnMvbmFzdHlfZXFfdnNfZGljdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODVmN2NhZi4uMDAwMDAwMAotLS0gYS9MaWIvdGVzdC9jcmFzaGVycy9uYXN0eV9lcV92c19kaWN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotIyBmcm9tIGh0dHA6Ly9tYWlsLnB5dGhvbi5vcmcvcGlwZXJtYWlsL3B5dGhvbi1kZXYvMjAwMS1KdW5lLzAxNTIzOS5odG1sCi0KLSMgaWYgeW91IGtlZXAgY2hhbmdpbmcgYSBkaWN0aW9uYXJ5IHdoaWxlIGxvb2tpbmcgdXAgYSBrZXksIHlvdSBjYW4KLSMgcHJvdm9rZSBhbiBpbmZpbml0ZSByZWN1cnNpb24gaW4gQwotCi0jIEF0IHRoZSB0aW1lIG5laXRoZXIgVGltIG5vciBNaWNoYWVsIGNvdWxkIGJlIGJvdGhlcmVkIHRvIHRoaW5rIG9mIGEKLSMgd2F5IHRvIGZpeCBpdC4KLQotY2xhc3MgWXVjazoKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuaSA9IDAKLQotICAgIGRlZiBtYWtlX2Rhbmdlcm91cyhzZWxmKToKLSAgICAgICAgc2VsZi5pID0gMQotCi0gICAgZGVmIF9faGFzaF9fKHNlbGYpOgotICAgICAgICAjIGRpcmVjdCB0byBzbG90IDQgaW4gdGFibGUgb2Ygc2l6ZSA4OyBzbG90IDEyIHdoZW4gc2l6ZSAxNgotICAgICAgICByZXR1cm4gNCArIDgKLQotICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgotICAgICAgICBpZiBzZWxmLmkgPT0gMDoKLSAgICAgICAgICAgICMgbGVhdmUgZGljdCBhbG9uZQotICAgICAgICAgICAgcGFzcwotICAgICAgICBlbGlmIHNlbGYuaSA9PSAxOgotICAgICAgICAgICAgIyBmaWRkbGUgdG8gMTYgc2xvdHMKLSAgICAgICAgICAgIHNlbGYuX19maWxsX2RpY3QoNikKLSAgICAgICAgICAgIHNlbGYuaSA9IDIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgICMgZmlkZGxlIHRvIDggc2xvdHMKLSAgICAgICAgICAgIHNlbGYuX19maWxsX2RpY3QoNCkKLSAgICAgICAgICAgIHNlbGYuaSA9IDEKLQotICAgICAgICByZXR1cm4gMQotCi0gICAgZGVmIF9fZmlsbF9kaWN0KHNlbGYsIG4pOgotICAgICAgICBzZWxmLmkgPSAwCi0gICAgICAgIGRpY3QuY2xlYXIoKQotICAgICAgICBmb3IgaSBpbiByYW5nZShuKToKLSAgICAgICAgICAgIGRpY3RbaV0gPSBpCi0gICAgICAgIGRpY3Rbc2VsZl0gPSAiT0shIgotCi15ID0gWXVjaygpCi1kaWN0ID0ge3k6ICJPSyEifQotCi16ID0gWXVjaygpCi15Lm1ha2VfZGFuZ2Vyb3VzKCkKLXByaW50KGRpY3Rbel0pCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9kYXRldGltZXRlc3Rlci5weSBiL0xpYi90ZXN0L2RhdGV0aW1ldGVzdGVyLnB5CmluZGV4IDNmZDY3OTkuLmE0MTcxNzAgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L2RhdGV0aW1ldGVzdGVyLnB5CisrKyBiL0xpYi90ZXN0L2RhdGV0aW1ldGVzdGVyLnB5CkBAIC05NzcsNyArOTc3LDcgQEAKICAgICAgICAgIyBleGVtcHQgc3VjaCBwbGF0Zm9ybXMgKHByb3ZpZGVkIHRoZXkgcmV0dXJuIHJlYXNvbmFibGUKICAgICAgICAgIyByZXN1bHRzISkuCiAgICAgICAgIGZvciBpbnNhbmUgaW4gLTFlMjAwLCAxZTIwMDoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlbGYudGhlY2xhc3MuZnJvbXRpbWVzdGFtcCwKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHNlbGYudGhlY2xhc3MuZnJvbXRpbWVzdGFtcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluc2FuZSkKIAogICAgIGRlZiB0ZXN0X3RvZGF5KHNlbGYpOgpAQCAtMTI4OSwxMiArMTI4OSwxOCBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi50aGVjbGFzcy5taW4pCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLnRoZWNsYXNzLm1heCkKIAotICAgIGRlZiB0ZXN0X3N0cmZ0aW1lX291dF9vZl9yYW5nZShzZWxmKToKLSAgICAgICAgIyBGb3IgbmFzdHkgdGVjaG5pY2FsIHJlYXNvbnMsIHdlIGNhbid0IGhhbmRsZSB5ZWFycyBiZWZvcmUgMTAwMC4KLSAgICAgICAgY2xzID0gc2VsZi50aGVjbGFzcwotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNscygxMDAwLCAxLCAxKS5zdHJmdGltZSgiJVkiKSwgIjEwMDAiKQotICAgICAgICBmb3IgeSBpbiAxLCA0OSwgNTEsIDk5LCAxMDAsIDk5OToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGNscyh5LCAxLCAxKS5zdHJmdGltZSwgIiVZIikKKyAgICBkZWYgdGVzdF9zdHJmdGltZV95Mmsoc2VsZik6CisgICAgICAgIGZvciB5IGluICgxLCA0OSwgNzAsIDk5LCAxMDAsIDk5OSwgMTAwMCwgMTk3MCk6CisgICAgICAgICAgICBkID0gc2VsZi50aGVjbGFzcyh5LCAxLCAxKQorICAgICAgICAgICAgIyBJc3N1ZSAxMzMwNTogIEZvciB5ZWFycyA8IDEwMDAsIHRoZSB2YWx1ZSBpcyBub3QgYWx3YXlzCisgICAgICAgICAgICAjIHBhZGRlZCB0byA0IGRpZ2l0cyBhY3Jvc3MgcGxhdGZvcm1zLiAgVGhlIEMgc3RhbmRhcmQKKyAgICAgICAgICAgICMgYXNzdW1lcyB5ZWFyID49IDE5MDAsIHNvIGl0IGRvZXMgbm90IHNwZWNpZnkgdGhlIG51bWJlcgorICAgICAgICAgICAgIyBvZiBkaWdpdHMuCisgICAgICAgICAgICBpZiBkLnN0cmZ0aW1lKCIlWSIpICE9ICclMDRkJyAlIHk6CisgICAgICAgICAgICAgICAgIyBZZWFyIDQyIHJldHVybnMgJzQyJywgbm90IHBhZGRlZAorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZC5zdHJmdGltZSgiJVkiKSwgJyVkJyAlIHkpCisgICAgICAgICAgICAgICAgIyAnMDA0MicgaXMgb2J0YWluZWQgYW55d2F5CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLnN0cmZ0aW1lKCIlNFkiKSwgJyUwNGQnICUgeSkKIAogICAgIGRlZiB0ZXN0X3JlcGxhY2Uoc2VsZik6CiAgICAgICAgIGNscyA9IHNlbGYudGhlY2xhc3MKQEAgLTE3MjksMTMgKzE3MzUsNzQgQEAKICAgICAgICAgZ290ID0gc2VsZi50aGVjbGFzcy51dGNmcm9tdGltZXN0YW1wKHRzKQogICAgICAgICBzZWxmLnZlcmlmeV9maWVsZF9lcXVhbGl0eShleHBlY3RlZCwgZ290KQogCisgICAgIyBSdW4gd2l0aCBVUy1zdHlsZSBEU1QgcnVsZXM6IERTVCBiZWdpbnMgMiBhLm0uIG9uIHNlY29uZCBTdW5kYXkgaW4KKyAgICAjIE1hcmNoIChNMy4yLjApIGFuZCBlbmRzIDIgYS5tLiBvbiBmaXJzdCBTdW5kYXkgaW4gTm92ZW1iZXIgKE0xMS4xLjApLgorICAgIEBzdXBwb3J0LnJ1bl93aXRoX3R6KCdFU1QrMDVFRFQsTTMuMi4wLE0xMS4xLjAnKQorICAgIGRlZiB0ZXN0X3RpbWVzdGFtcF9uYWl2ZShzZWxmKToKKyAgICAgICAgdCA9IHNlbGYudGhlY2xhc3MoMTk3MCwgMSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LnRpbWVzdGFtcCgpLCAxODAwMC4wKQorICAgICAgICB0ID0gc2VsZi50aGVjbGFzcygxOTcwLCAxLCAxLCAxLCAyLCAzLCA0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQudGltZXN0YW1wKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgMTgwMDAuMCArIDM2MDAgKyAyKjYwICsgMyArIDQqMWUtNikKKyAgICAgICAgIyBNaXNzaW5nIGhvdXIgbWF5IHByb2R1Y2UgcGxhdGZvcm0tZGVwZW5kZW50IHJlc3VsdAorICAgICAgICB0ID0gc2VsZi50aGVjbGFzcygyMDEyLCAzLCAxMSwgMiwgMzApCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi50aGVjbGFzcy5mcm9tdGltZXN0YW1wKHQudGltZXN0YW1wKCkpLAorICAgICAgICAgICAgICAgICAgICAgIFt0IC0gdGltZWRlbHRhKGhvdXJzPTEpLCB0ICsgdGltZWRlbHRhKGhvdXJzPTEpXSkKKyAgICAgICAgIyBBbWJpZ3VvdXMgaG91ciBkZWZhdWx0cyB0byBEU1QKKyAgICAgICAgdCA9IHNlbGYudGhlY2xhc3MoMjAxMiwgMTEsIDQsIDEsIDMwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudGhlY2xhc3MuZnJvbXRpbWVzdGFtcCh0LnRpbWVzdGFtcCgpKSwgdCkKKworICAgICAgICAjIFRpbWVzdGFtcCBtYXkgcmFpc2UgYW4gb3ZlcmZsb3cgZXJyb3Igb24gc29tZSBwbGF0Zm9ybXMKKyAgICAgICAgZm9yIHQgaW4gW3NlbGYudGhlY2xhc3MoMSwxLDEpLCBzZWxmLnRoZWNsYXNzKDk5OTksMTIsMTIpXToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzID0gdC50aW1lc3RhbXAoKQorICAgICAgICAgICAgZXhjZXB0IE92ZXJmbG93RXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudGhlY2xhc3MuZnJvbXRpbWVzdGFtcChzKSwgdCkKKworICAgIGRlZiB0ZXN0X3RpbWVzdGFtcF9hd2FyZShzZWxmKToKKyAgICAgICAgdCA9IHNlbGYudGhlY2xhc3MoMTk3MCwgMSwgMSwgdHppbmZvPXRpbWV6b25lLnV0YykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LnRpbWVzdGFtcCgpLCAwLjApCisgICAgICAgIHQgPSBzZWxmLnRoZWNsYXNzKDE5NzAsIDEsIDEsIDEsIDIsIDMsIDQsIHR6aW5mbz10aW1lem9uZS51dGMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodC50aW1lc3RhbXAoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAzNjAwICsgMio2MCArIDMgKyA0KjFlLTYpCisgICAgICAgIHQgPSBzZWxmLnRoZWNsYXNzKDE5NzAsIDEsIDEsIDEsIDIsIDMsIDQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHR6aW5mbz10aW1lem9uZSh0aW1lZGVsdGEoaG91cnM9LTUpLCAnRVNUJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodC50aW1lc3RhbXAoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAxODAwMCArIDM2MDAgKyAyKjYwICsgMyArIDQqMWUtNikKICAgICBkZWYgdGVzdF9taWNyb3NlY29uZF9yb3VuZGluZyhzZWxmKToKLSAgICAgICAgIyBUZXN0IHdoZXRoZXIgZnJvbXRpbWVzdGFtcCAicm91bmRzIHVwIiBmbG9hdHMgdGhhdCBhcmUgbGVzcwotICAgICAgICAjIHRoYW4gMS8yIG1pY3Jvc2Vjb25kIHNtYWxsZXIgdGhhbiBhbiBpbnRlZ2VyLgogICAgICAgICBmb3IgZnRzIGluIFtzZWxmLnRoZWNsYXNzLmZyb210aW1lc3RhbXAsCiAgICAgICAgICAgICAgICAgICAgIHNlbGYudGhlY2xhc3MudXRjZnJvbXRpbWVzdGFtcF06Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ0cygwLjk5OTk5OTkpLCBmdHMoMSkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ0cygwLjk5OTk5OTQ5KS5taWNyb3NlY29uZCwgOTk5OTk5KQorICAgICAgICAgICAgemVybyA9IGZ0cygwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh6ZXJvLnNlY29uZCwgMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoemVyby5taWNyb3NlY29uZCwgMCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBtaW51c19vbmUgPSBmdHMoLTFlLTYpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgICAgICAjIGxvY2FsdGltZSgtMSkgYW5kIGdtdGltZSgtMSkgaXMgbm90IHN1cHBvcnRlZCBvbiBXaW5kb3dzCisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1pbnVzX29uZS5zZWNvbmQsIDU5KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWludXNfb25lLm1pY3Jvc2Vjb25kLCA5OTk5OTkpCisKKyAgICAgICAgICAgICAgICB0ID0gZnRzKC0xZS04KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodCwgbWludXNfb25lKQorICAgICAgICAgICAgICAgIHQgPSBmdHMoLTllLTcpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LCBtaW51c19vbmUpCisgICAgICAgICAgICAgICAgdCA9IGZ0cygtMWUtNykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQsIG1pbnVzX29uZSkKKworICAgICAgICAgICAgdCA9IGZ0cygxZS03KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LCB6ZXJvKQorICAgICAgICAgICAgdCA9IGZ0cyg5ZS03KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LCB6ZXJvKQorICAgICAgICAgICAgdCA9IGZ0cygwLjk5OTk5OTQ5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LnNlY29uZCwgMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodC5taWNyb3NlY29uZCwgOTk5OTk5KQorICAgICAgICAgICAgdCA9IGZ0cygwLjk5OTk5OTkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQuc2Vjb25kLCAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0Lm1pY3Jvc2Vjb25kLCA5OTk5OTkpCiAKICAgICBkZWYgdGVzdF9pbnNhbmVfZnJvbXRpbWVzdGFtcChzZWxmKToKICAgICAgICAgIyBJdCdzIHBvc3NpYmxlIHRoYXQgc29tZSBwbGF0Zm9ybSBtYXBzIHRpbWVfdCB0byBkb3VibGUsCkBAIC0xNzQzLDcgKzE4MTAsNyBAQAogICAgICAgICAjIGV4ZW1wdCBzdWNoIHBsYXRmb3JtcyAocHJvdmlkZWQgdGhleSByZXR1cm4gcmVhc29uYWJsZQogICAgICAgICAjIHJlc3VsdHMhKS4KICAgICAgICAgZm9yIGluc2FuZSBpbiAtMWUyMDAsIDFlMjAwOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi50aGVjbGFzcy5mcm9tdGltZXN0YW1wLAorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgc2VsZi50aGVjbGFzcy5mcm9tdGltZXN0YW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zYW5lKQogCiAgICAgZGVmIHRlc3RfaW5zYW5lX3V0Y2Zyb210aW1lc3RhbXAoc2VsZik6CkBAIC0xNzUyLDcgKzE4MTksNyBAQAogICAgICAgICAjIGV4ZW1wdCBzdWNoIHBsYXRmb3JtcyAocHJvdmlkZWQgdGhleSByZXR1cm4gcmVhc29uYWJsZQogICAgICAgICAjIHJlc3VsdHMhKS4KICAgICAgICAgZm9yIGluc2FuZSBpbiAtMWUyMDAsIDFlMjAwOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi50aGVjbGFzcy51dGNmcm9tdGltZXN0YW1wLAorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgc2VsZi50aGVjbGFzcy51dGNmcm9tdGltZXN0YW1wLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zYW5lKQogICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsICJXaW5kb3dzIGRvZXNuJ3QgYWNjZXB0IG5lZ2F0aXZlIHRpbWVzdGFtcHMiKQogICAgIGRlZiB0ZXN0X25lZ2F0aXZlX2Zsb2F0X2Zyb210aW1lc3RhbXAoc2VsZik6CkBAIC0xOTA1LDcgKzE5NzIsNyBAQAogICAgICAgICAjIHNpbXBseSBjYW4ndCBiZSBhcHBsaWVkIHRvIGEgbmFpdmUgb2JqZWN0LgogICAgICAgICBkdCA9IHNlbGYudGhlY2xhc3Mubm93KCkKICAgICAgICAgZiA9IEZpeGVkT2Zmc2V0KDQ0LCAiIikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBkdC5hc3RpbWV6b25lKSAjIG5vdCBlbm91Z2ggYXJncworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBkdC5hc3RpbWV6b25lKSAjIG5haXZlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZHQuYXN0aW1lem9uZSwgZiwgZikgIyB0b28gbWFueSBhcmdzCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZHQuYXN0aW1lem9uZSwgZHQpICMgYXJnIHdyb25nIHR5cGUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZHQuYXN0aW1lem9uZSwgZikgIyBuYWl2ZQpAQCAtMjQ3Nyw3ICsyNTQ0LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0MSwgdDIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodDEsIHQzKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQyLCB0MykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IHQ0ID09IHQ1KSAjIG1peGVkIHR6LWF3YXJlICYgbmFpdmUKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh0NCwgdDUpICMgbWl4ZWQgdHotYXdhcmUgJiBuYWl2ZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogdDQgPCB0NSkgIyBtaXhlZCB0ei1hd2FyZSAmIG5haXZlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiB0NSA8IHQ0KSAjIG1peGVkIHR6LWF3YXJlICYgbmFpdmUKIApAQCAtMjYyOSw3ICsyNjk2LDcgQEAKICAgICAgICAgdDIgPSB0Mi5yZXBsYWNlKHR6aW5mbz1GaXhlZE9mZnNldChOb25lLCAiIikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodDEsIHQyKQogICAgICAgICB0MiA9IHQyLnJlcGxhY2UodHppbmZvPUZpeGVkT2Zmc2V0KDAsICIiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IHQxID09IHQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHQxLCB0MikKIAogICAgICAgICAjIEluIHRpbWUgdy8gaWRlbnRpY2FsIHR6aW5mbyBvYmplY3RzLCB1dGNvZmZzZXQgaXMgaWdub3JlZC4KICAgICAgICAgY2xhc3MgVmFyaWVzKHR6aW5mbyk6CkBAIC0yNzM0LDE2ICsyODAxLDE2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaWNyb3NlY29uZD0xKQogICAgICAgICBzZWxmLmFzc2VydFRydWUodDEgPiB0MikKIAotICAgICAgICAjIE1ha2UgdDIgbmFpdmUgYW5kIGl0IHNob3VsZCBmYWlsLgorICAgICAgICAjIE1ha2UgdDIgbmFpdmUgYW5kIGl0IHNob3VsZCBkaWZmZXIuCiAgICAgICAgIHQyID0gc2VsZi50aGVjbGFzcy5taW4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IHQxID09IHQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHQxLCB0MikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0MiwgdDIpCiAKICAgICAgICAgIyBJdCdzIGFsc28gbmFpdmUgaWYgaXQgaGFzIHR6aW5mbyBidXQgdHppbmZvLnV0Y29mZnNldCgpIGlzIE5vbmUuCiAgICAgICAgIGNsYXNzIE5haXZlKHR6aW5mbyk6CiAgICAgICAgICAgICBkZWYgdXRjb2Zmc2V0KHNlbGYsIGR0KTogcmV0dXJuIE5vbmUKICAgICAgICAgdDIgPSBzZWxmLnRoZWNsYXNzKDUsIDYsIDcsIHR6aW5mbz1OYWl2ZSgpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogdDEgPT0gdDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodDEsIHQyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQyLCB0MikKIAogICAgICAgICAjIE9UT0gsIGl0J3MgT0sgdG8gY29tcGFyZSB0d28gb2YgdGhlc2UgbWl4aW5nIHRoZSB0d28gd2F5cyBvZiBiZWluZwpAQCAtMzE4Niw4ICszMjUzLDYgQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGR0LnR6aW5mbyBpcyBmNDRtKQogICAgICAgICAjIFJlcGxhY2luZyB3aXRoIGRlZ2VuZXJhdGUgdHppbmZvIHJhaXNlcyBhbiBleGNlcHRpb24uCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGR0LmFzdGltZXpvbmUsIGZub25lKQotICAgICAgICAjIERpdHRvIHdpdGggTm9uZSB0ei4KLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBkdC5hc3RpbWV6b25lLCBOb25lKQogICAgICAgICAjIFJlcGxhY2luZyB3aXRoIHNhbWUgdHppbmZvIG1ha2VzIG5vIGNoYW5nZS4KICAgICAgICAgeCA9IGR0LmFzdGltZXpvbmUoZHQudHppbmZvKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoeC50emluZm8gaXMgZjQ0bSkKQEAgLTMyMDcsNiArMzI3MiwyNSBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUoZ290LnR6aW5mbyBpcyBleHBlY3RlZC50emluZm8pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ290LCBleHBlY3RlZCkKIAorICAgIEBzdXBwb3J0LnJ1bl93aXRoX3R6KCdVVEMnKQorICAgIGRlZiB0ZXN0X2FzdGltZXpvbmVfZGVmYXVsdF91dGMoc2VsZik6CisgICAgICAgIGR0ID0gc2VsZi50aGVjbGFzcy5ub3codGltZXpvbmUudXRjKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGR0LmFzdGltZXpvbmUoTm9uZSksIGR0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGR0LmFzdGltZXpvbmUoKSwgZHQpCisKKyAgICAjIE5vdGUgdGhhdCBvZmZzZXQgaW4gVFogdmFyaWFibGUgaGFzIHRoZSBvcHBvc2l0ZSBzaWduIHRvIHRoYXQKKyAgICAjIHByb2R1Y2VkIGJ5ICV6IGRpcmVjdGl2ZS4KKyAgICBAc3VwcG9ydC5ydW5fd2l0aF90eignRVNUKzA1RURULE0zLjIuMCxNMTEuMS4wJykKKyAgICBkZWYgdGVzdF9hc3RpbWV6b25lX2RlZmF1bHRfZWFzdGVybihzZWxmKToKKyAgICAgICAgZHQgPSBzZWxmLnRoZWNsYXNzKDIwMTIsIDExLCA0LCA2LCAzMCwgdHppbmZvPXRpbWV6b25lLnV0YykKKyAgICAgICAgbG9jYWwgPSBkdC5hc3RpbWV6b25lKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkdCwgbG9jYWwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWwuc3RyZnRpbWUoIiV6ICVaIiksICItMDUwMCBFU1QiKQorICAgICAgICBkdCA9IHNlbGYudGhlY2xhc3MoMjAxMiwgMTEsIDQsIDUsIDMwLCB0emluZm89dGltZXpvbmUudXRjKQorICAgICAgICBsb2NhbCA9IGR0LmFzdGltZXpvbmUoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGR0LCBsb2NhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbC5zdHJmdGltZSgiJXogJVoiKSwgIi0wNDAwIEVEVCIpCisKICAgICBkZWYgdGVzdF9hd2FyZV9zdWJ0cmFjdChzZWxmKToKICAgICAgICAgY2xzID0gc2VsZi50aGVjbGFzcwogCkBAIC0zMjYwLDcgKzMzNDQsNyBAQAogICAgICAgICB0MiA9IHQyLnJlcGxhY2UodHppbmZvPUZpeGVkT2Zmc2V0KE5vbmUsICIiKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0MSwgdDIpCiAgICAgICAgIHQyID0gdDIucmVwbGFjZSh0emluZm89Rml4ZWRPZmZzZXQoMCwgIiIpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogdDEgPT0gdDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodDEsIHQyKQogCiAgICAgICAgICMgSW4gZGF0ZXRpbWUgdy8gaWRlbnRpY2FsIHR6aW5mbyBvYmplY3RzLCB1dGNvZmZzZXQgaXMgaWdub3JlZC4KICAgICAgICAgY2xhc3MgVmFyaWVzKHR6aW5mbyk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC9kZWNpbWFsdGVzdGRhdGEvZXh0cmEuZGVjVGVzdCBiL0xpYi90ZXN0L2RlY2ltYWx0ZXN0ZGF0YS9leHRyYS5kZWNUZXN0CmluZGV4IGZlOGI3N2EuLmI2MzBkOGUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L2RlY2ltYWx0ZXN0ZGF0YS9leHRyYS5kZWNUZXN0CisrKyBiL0xpYi90ZXN0L2RlY2ltYWx0ZXN0ZGF0YS9leHRyYS5kZWNUZXN0CkBAIC0yMjIsMTIgKzIyMiwyNSBAQAogZXh0cjE3MDEgcG93ZXIgMTAwLjAgLTU1Ny43MWUtNzQyODg4ODg4IC0+IDEuMDAwMDAwMDAwMDAwMDAwIEluZXhhY3QgUm91bmRlZAogZXh0cjE3MDIgcG93ZXIgMTAgMWUtMTAwIC0+IDEuMDAwMDAwMDAwMDAwMDAwIEluZXhhY3QgUm91bmRlZAogCistLSBBbm90aGVyIG9uZSAoc2VlIGlzc3VlICMxMjA4MCkuICBUaGFua3MgYWdhaW4gdG8gU3RlZmFuIEtyYWguCitleHRyMTcwMyBwb3dlciA0IC0xLjJlLTk5OTk5OTk5OSAtPiAxLjAwMDAwMDAwMDAwMDAwMCBJbmV4YWN0IFJvdW5kZWQKKwogLS0gQSBjb3VwbGUgb2YgaW50ZXJlc3RpbmcgZXhhY3QgY2FzZXMgZm9yIHBvd2VyLiAgTm90ZSB0aGF0IHRoZSBzcGVjaWZpY2F0aW9uCiAtLSByZXF1aXJlcyB0aGVzZSB0byBiZSByZXBvcnRlZCBhcyBJbmV4YWN0LgogZXh0cjE3MTAgcG93ZXIgMWUzNzUgNTZlLTMgLT4gMS4wMDAwMDAwMDAwMDAwMDBFKzIxIEluZXhhY3QgUm91bmRlZAogZXh0cjE3MTEgcG93ZXIgMTAwMDAgMC43NSAtPiAxMDAwLjAwMDAwMDAwMDAwMCBJbmV4YWN0IFJvdW5kZWQKIGV4dHIxNzEyIHBvd2VyIDFlLTI0IDAuODc1IC0+IDEuMDAwMDAwMDAwMDAwMDAwRS0yMSBJbmV4YWN0IFJvdW5kZWQKIAorLS0gU29tZSBtb3JlIGV4YWN0IGNhc2VzLCBleGVyY2lzaW5nIHBvd2VyIHdpdGggbmVnYXRpdmUgc2Vjb25kIGFyZ3VtZW50LgorZXh0cjE3MjAgcG93ZXIgNDAwIC0wLjUgLT4gMC4wNTAwMDAwMDAwMDAwMDAwMCBJbmV4YWN0IFJvdW5kZWQKK2V4dHIxNzIxIHBvd2VyIDQwOTYgLTAuNzUgLT4gMC4wMDE5NTMxMjUwMDAwMDAwMDAgSW5leGFjdCBSb3VuZGVkCitleHRyMTcyMiBwb3dlciA2MjVlNCAtMC4yNSAtPiAwLjAyMDAwMDAwMDAwMDAwMDAwIEluZXhhY3QgUm91bmRlZAorCistLSBOb25leGFjdCBjYXNlcywgdG8gZXhlcmNpc2Ugc29tZSBvZiB0aGUgZWFybHkgZXhpdCBjb25kaXRpb25zIGZyb20KKy0tIF9wb3dlcl9leGFjdC4KK2V4dHIxNzMwIHBvd2VyIDIwNDggLTAuNzUgLT4gMC4wMDMyODQ3NTE2MjIwODQ4MjIgSW5leGFjdCBSb3VuZGVkCisKKwogLS0gVGVzdHMgZm9yIHRoZSBpc18qIGJvb2xlYW4gb3BlcmF0aW9ucwogcHJlY2lzaW9uOiA5CiBtYXhFeHBvbmVudDogOTk5CmRpZmYgLS1naXQgYS9MaWIvdGVzdC9kaDUxMi5wZW0gYi9MaWIvdGVzdC9kaDUxMi5wZW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjAwZDE2YwotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L2RoNTEyLnBlbQpAQCAtMCwwICsxLDkgQEAKKy0tLS0tQkVHSU4gREggUEFSQU1FVEVSUy0tLS0tCitNRVlDUVFEMUt2ODg0YkVwUUJnUmpYeUVwd3B5MW9iRUF4bklCeWw2eXBVTTJaYWZxOUFLVUpzQ1J0TUlQV2FrCitYVUdmbkh5OWlVc2lHU2E2cTZKZXcxWHBLZ1ZmQWdFQworLS0tLS1FTkQgREggUEFSQU1FVEVSUy0tLS0tCisKK1RoZXNlIGFyZSB0aGUgNTEyIGJpdCBESCBwYXJhbWV0ZXJzIGZyb20gIkFzc2lnbmVkIE51bWJlciBmb3IgU0tJUCBQcm90b2NvbHMiCisoaHR0cDovL3d3dy5za2lwLXZwbi5vcmcvc3BlYy9udW1iZXJzLmh0bWwpLgorU2VlIHRoZXJlIGZvciBob3cgdGhleSB3ZXJlIGdlbmVyYXRlZC4KK05vdGUgdGhhdCBnIGlzIG5vdCBhIGdlbmVyYXRvciwgYnV0IHRoaXMgaXMgbm90IGEgcHJvYmxlbSBzaW5jZSBwIGlzIGEgc2FmZSBwcmltZS4KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L2V4Y2VwdGlvbl9oaWVyYXJjaHkudHh0IGIvTGliL3Rlc3QvZXhjZXB0aW9uX2hpZXJhcmNoeS50eHQKaW5kZXggNTAzN2IzMy4uMWMxZjY5ZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvZXhjZXB0aW9uX2hpZXJhcmNoeS50eHQKKysrIGIvTGliL3Rlc3QvZXhjZXB0aW9uX2hpZXJhcmNoeS50eHQKQEAgLTExLDExICsxMSw2IEBACiAgICAgICArLS0gQXNzZXJ0aW9uRXJyb3IKICAgICAgICstLSBBdHRyaWJ1dGVFcnJvcgogICAgICAgKy0tIEJ1ZmZlckVycm9yCi0gICAgICArLS0gRW52aXJvbm1lbnRFcnJvcgotICAgICAgfCAgICArLS0gSU9FcnJvcgotICAgICAgfCAgICArLS0gT1NFcnJvcgotICAgICAgfCAgICAgICAgICstLSBXaW5kb3dzRXJyb3IgKFdpbmRvd3MpCi0gICAgICB8ICAgICAgICAgKy0tIFZNU0Vycm9yIChWTVMpCiAgICAgICArLS0gRU9GRXJyb3IKICAgICAgICstLSBJbXBvcnRFcnJvcgogICAgICAgKy0tIExvb2t1cEVycm9yCkBAIC0yNCw2ICsxOSwyMiBAQAogICAgICAgKy0tIE1lbW9yeUVycm9yCiAgICAgICArLS0gTmFtZUVycm9yCiAgICAgICB8ICAgICstLSBVbmJvdW5kTG9jYWxFcnJvcgorICAgICAgKy0tIE9TRXJyb3IKKyAgICAgIHwgICAgKy0tIEJsb2NraW5nSU9FcnJvcgorICAgICAgfCAgICArLS0gQ2hpbGRQcm9jZXNzRXJyb3IKKyAgICAgIHwgICAgKy0tIENvbm5lY3Rpb25FcnJvcgorICAgICAgfCAgICB8ICAgICstLSBCcm9rZW5QaXBlRXJyb3IKKyAgICAgIHwgICAgfCAgICArLS0gQ29ubmVjdGlvbkFib3J0ZWRFcnJvcgorICAgICAgfCAgICB8ICAgICstLSBDb25uZWN0aW9uUmVmdXNlZEVycm9yCisgICAgICB8ICAgIHwgICAgKy0tIENvbm5lY3Rpb25SZXNldEVycm9yCisgICAgICB8ICAgICstLSBGaWxlRXhpc3RzRXJyb3IKKyAgICAgIHwgICAgKy0tIEZpbGVOb3RGb3VuZEVycm9yCisgICAgICB8ICAgICstLSBJbnRlcnJ1cHRlZEVycm9yCisgICAgICB8ICAgICstLSBJc0FEaXJlY3RvcnlFcnJvcgorICAgICAgfCAgICArLS0gTm90QURpcmVjdG9yeUVycm9yCisgICAgICB8ICAgICstLSBQZXJtaXNzaW9uRXJyb3IKKyAgICAgIHwgICAgKy0tIFByb2Nlc3NMb29rdXBFcnJvcgorICAgICAgfCAgICArLS0gVGltZW91dEVycm9yCiAgICAgICArLS0gUmVmZXJlbmNlRXJyb3IKICAgICAgICstLSBSdW50aW1lRXJyb3IKICAgICAgIHwgICAgKy0tIE5vdEltcGxlbWVudGVkRXJyb3IKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L2Zvcmtfd2FpdC5weSBiL0xpYi90ZXN0L2Zvcmtfd2FpdC5weQppbmRleCAxY2FhYjFjLi44ODUyN2RmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC9mb3JrX3dhaXQucHkKKysrIGIvTGliL3Rlc3QvZm9ya193YWl0LnB5CkBAIC00Myw2ICs0Myw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3BpZCwgY3BpZCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0dXMsIDAsICJjYXVzZSA9ICVkLCBleGl0ID0gJWQiICUgKHN0YXR1cyYweGZmLCBzdGF0dXM+PjgpKQogCisgICAgQHN1cHBvcnQucmVhcF90aHJlYWRzCiAgICAgZGVmIHRlc3Rfd2FpdChzZWxmKToKICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoTlVNX1RIUkVBRFMpOgogICAgICAgICAgICAgX3RocmVhZC5zdGFydF9uZXcoc2VsZi5mLCAoaSwpKQpAQCAtNjksNyArNzAsOCBAQAogICAgICAgICAgICAgb3MuX2V4aXQobikKICAgICAgICAgZWxzZToKICAgICAgICAgICAgICMgUGFyZW50Ci0gICAgICAgICAgICBzZWxmLndhaXRfaW1wbChjcGlkKQotICAgICAgICAgICAgIyBUZWxsIHRocmVhZHMgdG8gZGllCi0gICAgICAgICAgICBzZWxmLnN0b3AgPSAxCi0gICAgICAgICAgICB0aW1lLnNsZWVwKDIqU0hPUlRTTEVFUCkgIyBXYWl0IGZvciB0aHJlYWRzIHRvIGRpZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYud2FpdF9pbXBsKGNwaWQpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICMgVGVsbCB0aHJlYWRzIHRvIGRpZQorICAgICAgICAgICAgICAgIHNlbGYuc3RvcCA9IDEKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZnV0dXJlMS5weSBiL0xpYi90ZXN0L2Z1dHVyZV90ZXN0MS5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL3Rlc3QvdGVzdF9mdXR1cmUxLnB5CnJlbmFtZSB0byBMaWIvdGVzdC9mdXR1cmVfdGVzdDEucHkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZnV0dXJlMi5weSBiL0xpYi90ZXN0L2Z1dHVyZV90ZXN0Mi5weQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL3Rlc3QvdGVzdF9mdXR1cmUyLnB5CnJlbmFtZSB0byBMaWIvdGVzdC9mdXR1cmVfdGVzdDIucHkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L2pzb25fdGVzdHMvdGVzdF9kdW1wLnB5IGIvTGliL3Rlc3QvanNvbl90ZXN0cy90ZXN0X2R1bXAucHkKaW5kZXggMDgzYzExZi4uNGIzMzg2ZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvanNvbl90ZXN0cy90ZXN0X2R1bXAucHkKKysrIGIvTGliL3Rlc3QvanNvbl90ZXN0cy90ZXN0X2R1bXAucHkKQEAgLTEsNiArMSw3IEBACiBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogZnJvbSB0ZXN0Lmpzb25fdGVzdHMgaW1wb3J0IFB5VGVzdCwgQ1Rlc3QKIAorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGJpZ21lbXRlc3QsIF8xRwogCiBjbGFzcyBUZXN0RHVtcDoKICAgICBkZWYgdGVzdF9kdW1wKHNlbGYpOgpAQCAtMjEsNCArMjIsMjAgQEAKIAogCiBjbGFzcyBUZXN0UHlEdW1wKFRlc3REdW1wLCBQeVRlc3QpOiBwYXNzCi1jbGFzcyBUZXN0Q0R1bXAoVGVzdER1bXAsIENUZXN0KTogcGFzcworCitjbGFzcyBUZXN0Q0R1bXAoVGVzdER1bXAsIENUZXN0KToKKworICAgICMgVGhlIHNpemUgcmVxdWlyZW1lbnQgaGVyZSBpcyBob3BlZnVsbHkgb3Zlci1lc3RpbWF0ZWQgKGFjdHVhbAorICAgICMgbWVtb3J5IGNvbnN1bXB0aW9uIGRlcGVuZGluZyBvbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLCBhbmQgYWxzbworICAgICMgc3lzdGVtIG1lbW9yeSBtYW5hZ2VtZW50LCBzaW5jZSB0aGlzIG1heSBhbGxvY2F0ZSBhIGxvdCBvZgorICAgICMgc21hbGwgb2JqZWN0cykuCisKKyAgICBAYmlnbWVtdGVzdChzaXplPV8xRywgbWVtdXNlPTEpCisgICAgZGVmIHRlc3RfbGFyZ2VfbGlzdChzZWxmLCBzaXplKToKKyAgICAgICAgTiA9IGludCgzMCAqIDEwMjQgKiAxMDI0ICogKHNpemUgLyBfMUcpKQorICAgICAgICBsID0gWzFdICogTgorICAgICAgICBlbmNvZGVkID0gc2VsZi5kdW1wcyhsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihlbmNvZGVkKSwgTiAqIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZW5jb2RlZFs6MV0sICJbIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbmNvZGVkWy0yOl0sICIxXSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZW5jb2RlZFsxOi0yXSwgIjEsICIgKiAoTiAtIDEpKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvanNvbl90ZXN0cy90ZXN0X3NjYW5zdHJpbmcucHkgYi9MaWIvdGVzdC9qc29uX3Rlc3RzL3Rlc3Rfc2NhbnN0cmluZy5weQppbmRleCBmODJjZGVlLi40MjZjOGRkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC9qc29uX3Rlc3RzL3Rlc3Rfc2NhbnN0cmluZy5weQorKysgYi9MaWIvdGVzdC9qc29uX3Rlc3RzL3Rlc3Rfc2NhbnN0cmluZy5weQpAQCAtOSwxNCArOSw5IEBACiAgICAgICAgICAgICBzY2Fuc3RyaW5nKCcielxcdWQ4MzRcXHVkZDIweCInLCAxLCBUcnVlKSwKICAgICAgICAgICAgICgnelxVMDAwMWQxMjB4JywgMTYpKQogCi0gICAgICAgIGlmIHN5cy5tYXh1bmljb2RlID09IDY1NTM1OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzY2Fuc3RyaW5nKCcielxVMDAwMWQxMjB4IicsIDEsIFRydWUpLAotICAgICAgICAgICAgICAgICgnelxVMDAwMWQxMjB4JywgNikpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHNjYW5zdHJpbmcoJyJ6XFUwMDAxZDEyMHgiJywgMSwgVHJ1ZSksCi0gICAgICAgICAgICAgICAgKCd6XFUwMDAxZDEyMHgnLCA1KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIHNjYW5zdHJpbmcoJyJ6XFUwMDAxZDEyMHgiJywgMSwgVHJ1ZSksCisgICAgICAgICAgICAoJ3pcVTAwMDFkMTIweCcsIDUpKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCiAgICAgICAgICAgICBzY2Fuc3RyaW5nKCciXFx1MDA3YiInLCAxLCBUcnVlKSwKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L2tleWNlcnQucGFzc3dkLnBlbSBiL0xpYi90ZXN0L2tleWNlcnQucGFzc3dkLnBlbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTA1NzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3Qva2V5Y2VydC5wYXNzd2QucGVtCkBAIC0wLDAgKzEsMzMgQEAKKy0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KK1Byb2MtVHlwZTogNCxFTkNSWVBURUQKK0RFSy1JbmZvOiBERVMtRURFMy1DQkMsMUE4RDlEMkEwMkVDNjk4QQorCitrSlliZlo4TDBzZmU5T3R5M2d3MGFsb05uWTVFOGZlZ1JmUUxabE5veFRsNmpOdDBuSXdJOGtESjM2Q1pnUjljCit1M0ZESm0vS3FyZlVvejh2VytxRW5XaFNHN1FQWDJ3V0dQSGQ0Szk0WXovRmdyUnpaMERvSzdYeFhxOWdPdFZBCitBVkdRaG56MzJwKzZXaGZHc0NyOUFyWEV3UlpyVGsvRnZ6RVBhVTVmSGNvU2tyTlZBR1g4SXBTVmtTRHdFRFFyCitHdjE3K2Nmazk5VVYxT0N6YTZ5S0hvRmtUdHJDK1BaVTcxTG9tQmFiaXZTMk9jNEI5aFl1U1IyaEYwMXdUSFArCitZbFdOYWdaT09WdE56NG9LSzl4OWVOUXBtZlFYUXZQUFRmdXNleEtJYktmWnJNdkpveGNtMWdmY1owSC93SzZQCis2d21YU0czNXFNT096dENaTnRwZXJqczF3ekVCWHpueUs4UW1MY0FKQmprZmFyQUJKWDl2QkV6WlYwT1VLaHkrCitub09SRndIVGxscGhibXlkTGh1NmVoTFVaTUhQaHpBUzVVTjdzcnRwU044MWVlckRNeTBSTVVBd0E3L1BvZlgxCis5NE1lODVROGpQMFBDOUVUZHNKY1BxTHpBUEVURVl1MEVMZXdLUmNyZHlXaSt0bExGcnBFNUtUL3M1ZWNibDlsCis3QjYxVTRLZmQxUElYYy9zaUlOaFUzQTNiWUsrODQ1WXlVQXJVT25LZjFrRW94N3AxUnBEN3lGcVZUMDRsUlRvCitjaWJOS0FUQnVzWFN1QnJwMkc2R051aFdFT1NhZldDS0pRQXpnQ1lJcDZaVFYya2hoTVVHcHBjLzJIM0NGNmNPCit6WDBLdGxQVlpDN2hMa0I2SFQ4U3hZVXdGMXpxV1k3Ky9YUFBkYzM3TWVFWjg3UTNVdVp3cU9STFkrWjBocGd0CitMNUpYQkNva2xaaENBYU4yR3F3RkxYdEdpUlNSRkdZN3hYSWhiRFRsRTY1V3YxV0dHZ0RMTUtHRTFnT3ozeUFvCisyampHMSt5QUhKVWRFNjlYVEZIU3FTa3ZhbG9BMVcwM0xkTVhaOVZ1UUoveVNYQ2llNkFCQVE9PQorLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KKy0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQorTUlJQ1ZEQ0NBYjJnQXdJQkFnSUpBTmZIT0JrWnI4Sk9NQTBHQ1NxR1NJYjNEUUVCQlFVQU1GOHhDekFKQmdOVgorQkFZVEFsaFpNUmN3RlFZRFZRUUhFdzVEWVhOMGJHVWdRVzUwYUhKaGVERWpNQ0VHQTFVRUNoTWFVSGwwYUc5dQorSUZOdlpuUjNZWEpsSUVadmRXNWtZWFJwYjI0eEVqQVFCZ05WQkFNVENXeHZZMkZzYUc5emREQWVGdzB4TURFdworTURneU16QXhOVFphRncweU1ERXdNRFV5TXpBeE5UWmFNRjh4Q3pBSkJnTlZCQVlUQWxoWk1SY3dGUVlEVlFRSAorRXc1RFlYTjBiR1VnUVc1MGFISmhlREVqTUNFR0ExVUVDaE1hVUhsMGFHOXVJRk52Wm5SM1lYSmxJRVp2ZFc1aworWVhScGIyNHhFakFRQmdOVkJBTVRDV3h2WTJGc2FHOXpkRENCbnpBTkJna3Foa2lHOXcwQkFRRUZBQU9CalFBdworZ1lrQ2dZRUEyMXZUNWlzcTdGNjhhbVl1dU5wU0ZsS0RQck1VQ2E0WVdZcVpSdDJPWisvM05LYVoyeEFpU3dyNworNk1yUUY3MHQ1bkxiU1BwcUU1KzVWclM1OFNZK2cvc1hMaUZkNkFwbEgxd0pad2g3OERvZmJGWVhVZ2drdEZNdAorcFR5aVg4anRQNjZia2NQa0RBREEwODlSSTFUUVI2Q2ErbjdIRmE3YzFmYWJWVjZpM3prQ0F3RUFBYU1ZTUJZdworRkFZRFZSMFJCQTB3QzRJSmJHOWpZV3hvYjNOME1BMEdDU3FHU0liM0RRRUJCUVVBQTRHQkFIUGN0UUJFUTR3ZAorQko2K0pjcElyYW9wTG44QkdoYmpOV2o0MG1tUnFXQi9OQVdGNk01bmU3S3BHQXU3dExlRzRoYjF6TGFsZEs4RworbHh5MkdQU1JGNkxGUzQ4ZHBFajJIYk12Mm52djZ4eGFsRE1KOStEaWNXZ0FLVFE2YmNYMmozR1VrQ1IwZy9UMQorQ1JsTkJBQWx2aEt6TzdDbHBmOWwwWUtCRWZyYUpCeVgKKy0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L2xpc3RfdGVzdHMucHkgYi9MaWIvdGVzdC9saXN0X3Rlc3RzLnB5CmluZGV4IGJlMDU0ZWEuLjQyZTExOGIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L2xpc3RfdGVzdHMucHkKKysrIGIvTGliL3Rlc3QvbGlzdF90ZXN0cy5weQpAQCAtNDE4LDYgKzQxOCw0NyBAQAogCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgdS5yZXZlcnNlLCA0MikKIAorICAgIGRlZiB0ZXN0X2NsZWFyKHNlbGYpOgorICAgICAgICB1ID0gc2VsZi50eXBlMnRlc3QoWzIsIDMsIDRdKQorICAgICAgICB1LmNsZWFyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1LCBbXSkKKworICAgICAgICB1ID0gc2VsZi50eXBlMnRlc3QoW10pCisgICAgICAgIHUuY2xlYXIoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUsIFtdKQorCisgICAgICAgIHUgPSBzZWxmLnR5cGUydGVzdChbXSkKKyAgICAgICAgdS5hcHBlbmQoMSkKKyAgICAgICAgdS5jbGVhcigpCisgICAgICAgIHUuYXBwZW5kKDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodSwgWzJdKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgdS5jbGVhciwgTm9uZSkKKworICAgIGRlZiB0ZXN0X2NvcHkoc2VsZik6CisgICAgICAgIHUgPSBzZWxmLnR5cGUydGVzdChbMSwgMiwgM10pCisgICAgICAgIHYgPSB1LmNvcHkoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIFsxLCAyLCAzXSkKKworICAgICAgICB1ID0gc2VsZi50eXBlMnRlc3QoW10pCisgICAgICAgIHYgPSB1LmNvcHkoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIFtdKQorCisgICAgICAgICMgdGVzdCB0aGF0IGl0J3MgaW5kZWVkIGEgY29weSBhbmQgbm90IGEgcmVmZXJlbmNlCisgICAgICAgIHUgPSBzZWxmLnR5cGUydGVzdChbJ2EnLCAnYiddKQorICAgICAgICB2ID0gdS5jb3B5KCkKKyAgICAgICAgdi5hcHBlbmQoJ2knKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUsIFsnYScsICdiJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgdSArIFsnaSddKQorCisgICAgICAgICMgdGVzdCB0aGF0IGl0J3MgYSBzaGFsbG93LCBub3QgYSBkZWVwIGNvcHkKKyAgICAgICAgdSA9IHNlbGYudHlwZTJ0ZXN0KFsxLCAyLCBbMywgNF0sIDVdKQorICAgICAgICB2ID0gdS5jb3B5KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1LCB2KQorICAgICAgICBzZWxmLmFzc2VydElzKHZbM10sIHVbM10pCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB1LmNvcHksIE5vbmUpCisKICAgICBkZWYgdGVzdF9zb3J0KHNlbGYpOgogICAgICAgICB1ID0gc2VsZi50eXBlMnRlc3QoWzEsIDBdKQogICAgICAgICB1LnNvcnQoKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvbG9ja190ZXN0cy5weSBiL0xpYi90ZXN0L2xvY2tfdGVzdHMucHkKaW5kZXggMDk0Y2M3YS4uYmZiZjQ0ZSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvbG9ja190ZXN0cy5weQorKysgYi9MaWIvdGVzdC9sb2NrX3Rlc3RzLnB5CkBAIC00LDcgKzQsNyBAQAogCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQotZnJvbSBfdGhyZWFkIGltcG9ydCBzdGFydF9uZXdfdGhyZWFkLCBnZXRfaWRlbnQsIFRJTUVPVVRfTUFYCitmcm9tIF90aHJlYWQgaW1wb3J0IHN0YXJ0X25ld190aHJlYWQsIFRJTUVPVVRfTUFYCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdW5pdHRlc3QKIApAQCAtMzEsNyArMzEsNyBAQAogICAgICAgICBzZWxmLmZpbmlzaGVkID0gW10KICAgICAgICAgc2VsZi5fY2FuX2V4aXQgPSBub3Qgd2FpdF9iZWZvcmVfZXhpdAogICAgICAgICBkZWYgdGFzaygpOgotICAgICAgICAgICAgdGlkID0gZ2V0X2lkZW50KCkKKyAgICAgICAgICAgIHRpZCA9IHRocmVhZGluZy5nZXRfaWRlbnQoKQogICAgICAgICAgICAgc2VsZi5zdGFydGVkLmFwcGVuZCh0aWQpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZigpCkBAIC0yNTUsNiArMjU1LDE4IEBACiAgICAgICAgIGxvY2sucmVsZWFzZSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgbG9jay5yZWxlYXNlKQogCisgICAgZGVmIHRlc3RfcmVsZWFzZV9zYXZlX3VuYWNxdWlyZWQoc2VsZik6CisgICAgICAgICMgQ2Fubm90IF9yZWxlYXNlX3NhdmUgYW4gdW5hY3F1aXJlZCBsb2NrCisgICAgICAgIGxvY2sgPSBzZWxmLmxvY2t0eXBlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBsb2NrLl9yZWxlYXNlX3NhdmUpCisgICAgICAgIGxvY2suYWNxdWlyZSgpCisgICAgICAgIGxvY2suYWNxdWlyZSgpCisgICAgICAgIGxvY2sucmVsZWFzZSgpCisgICAgICAgIGxvY2suYWNxdWlyZSgpCisgICAgICAgIGxvY2sucmVsZWFzZSgpCisgICAgICAgIGxvY2sucmVsZWFzZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgbG9jay5fcmVsZWFzZV9zYXZlKQorCiAgICAgZGVmIHRlc3RfZGlmZmVyZW50X3RocmVhZChzZWxmKToKICAgICAgICAgIyBDYW5ub3QgcmVsZWFzZSBmcm9tIGEgZGlmZmVyZW50IHRocmVhZAogICAgICAgICBsb2NrID0gc2VsZi5sb2NrdHlwZSgpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9tYWlsY2FwLnR4dCBiL0xpYi90ZXN0L21haWxjYXAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY2MTEzNWQKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9tYWlsY2FwLnR4dApAQCAtMCwwICsxLDM5IEBACisjIE1haWxjYXAgZmlsZSBmb3IgdGVzdF9tYWlsY2FwOyBiYXNlZCBvbiBSRkMgMTUyNAorIyBSZWZlcnJlZCB0byBieSB0ZXN0X21haWxjYXAucHkKKworIworIyBUaGlzIGlzIGEgY29tbWVudC4KKyMKKworYXBwbGljYXRpb24vZnJhbWU7IHNob3dmcmFtZSAlczsgcHJpbnQ9ImNhdCAlcyB8IGxwIgorYXBwbGljYXRpb24vcG9zdHNjcmlwdDsgcHMtdG8tdGVybWluYWwgJXM7XAorICAgIG5lZWRzdGVybWluYWwKK2FwcGxpY2F0aW9uL3Bvc3RzY3JpcHQ7IHBzLXRvLXRlcm1pbmFsICVzOyBcCisgICAgY29tcG9zZT1pZHJhdyAlcworYXBwbGljYXRpb24veC1kdmk7IHhkdmkgJXMKK2FwcGxpY2F0aW9uL3gtbW92aWU7IG1vdmllcGxheWVyICVzOyBjb21wb3NlPW1vdmllbWFrZXIgJXM7IFwKKyAgICAgICBkZXNjcmlwdGlvbj0iTW92aWUiOyBcCisgICAgICAgeDExLWJpdG1hcD0iL3Vzci9saWIvWm1haWwvYml0bWFwcy9tb3ZpZS54Ym0iCithcHBsaWNhdGlvbi8qOyBlY2hvICJUaGlzIGlzIFwiJXRcIiBidXQgXAorICAgICAgIGlzIDUwIFwlIEdyZWVrIHRvIG1lIiBcOyBjYXQgJXM7IGNvcGlvdXNvdXRwdXQKKworYXVkaW8vYmFzaWM7IHNob3dhdWRpbyAlczsgY29tcG9zZT1hdWRpb2NvbXBvc2UgJXM7IGVkaXQ9YXVkaW9jb21wb3NlICVzO1wKK2Rlc2NyaXB0aW9uPSJBbiBhdWRpbyBmcmFnbWVudCIKK2F1ZGlvLyogOyAvdXNyL2xvY2FsL2Jpbi9zaG93YXVkaW8gJXQKKworaW1hZ2UvcmdiOyBkaXNwbGF5ICVzCisjaW1hZ2UvZ2lmOyBkaXNwbGF5ICVzCitpbWFnZS94LXh3aW5kb3dkdW1wOyBkaXNwbGF5ICVzCisKKyMgVGhlIGNvbnRpbnVhdGlvbiBjaGFyIHNob3VsZG4ndCBcCisjIG1ha2UgYSBkaWZmZXJlbmNlIGluIGEgY29tbWVudC4KKworbWVzc2FnZS9leHRlcm5hbC1ib2R5OyBzaG93ZXh0ZXJuYWwgJXMgJXthY2Nlc3MtdHlwZX0gJXtuYW1lfSAle3NpdGV9IFwKKyAgICAle2RpcmVjdG9yeX0gJXttb2RlfSAle3NlcnZlcn07IG5lZWRzdGVybWluYWw7IGNvbXBvc2V0eXBlZCA9IGV4dGNvbXBvc2UgJXM7IFwKKyAgICBkZXNjcmlwdGlvbj0iQSByZWZlcmVuY2UgdG8gZGF0YSBzdG9yZWQgaW4gYW4gZXh0ZXJuYWwgbG9jYXRpb24iCisKK3RleHQvcmljaHRleHQ7IHNob3dub25hc2NpaSBpc28tODg1OS04IC1lIHJpY2h0ZXh0IC1wICVzOyB0ZXN0PXRlc3QgImBlY2hvIFwKKyAgICAle2NoYXJzZXR9IHwgdHIgJ1tBLVpdJyAnW2Etel0nYCIgID0gaXNvLTg4NTktODsgY29waW91c291dHB1dAorCit2aWRlby9tcGVnOyBtcGVnX3BsYXkgJXMKK3ZpZGVvLyo7IGFuaW1hdGUgJXMKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L21hdGhfdGVzdGNhc2VzLnR4dCBiL0xpYi90ZXN0L21hdGhfdGVzdGNhc2VzLnR4dAppbmRleCA1ZTI0MzM1Li45NTg1MTg4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC9tYXRoX3Rlc3RjYXNlcy50eHQKKysrIGIvTGliL3Rlc3QvbWF0aF90ZXN0Y2FzZXMudHh0CkBAIC01MTcsMyArNTE3LDExNyBAQAogCiAtLSB3ZWFrZXIgdmVyc2lvbiBvZiBleHBtMTAzMDIKIGV4cG0xMDMwNyBleHBtMSA3MDkuNSAtPiAxLjM1NDk4NjMxOTMxNDYzMjhlKzMwOAorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLSBsb2cyOiBsb2cgdG8gYmFzZSAyIC0tCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKy0tIHNwZWNpYWwgdmFsdWVzCitsb2cyMDAwMCBsb2cyIDAuMCAtPiAtaW5mICAgICAgICAgICAgICAgZGl2aWRlLWJ5LXplcm8KK2xvZzIwMDAxIGxvZzIgLTAuMCAtPiAtaW5mICAgICAgICAgICAgICBkaXZpZGUtYnktemVybworbG9nMjAwMDIgbG9nMiBpbmYgLT4gaW5mCitsb2cyMDAwMyBsb2cyIC1pbmYgLT4gbmFuICAgICAgICAgICAgICAgaW52YWxpZAorbG9nMjAwMDQgbG9nMiBuYW4gLT4gbmFuCisKKy0tIGV4YWN0IHZhbHVlIGF0IDEuMAorbG9nMjAwMTAgbG9nMiAxLjAgLT4gMC4wCisKKy0tIG5lZ2F0aXZlcworbG9nMjAwMjAgbG9nMiAtNWUtMzI0IC0+IG5hbiAgICAgICAgICAgIGludmFsaWQKK2xvZzIwMDIxIGxvZzIgLTEuMCAtPiBuYW4gICAgICAgICAgICAgICBpbnZhbGlkCitsb2cyMDAyMiBsb2cyIC0xLjdlLTMwOCAtPiBuYW4gICAgICAgICAgaW52YWxpZAorCistLSBleGFjdCB2YWx1ZXMgYXQgcG93ZXJzIG9mIDIKK2xvZzIwMTAwIGxvZzIgMi4wIC0+IDEuMAorbG9nMjAxMDEgbG9nMiA0LjAgLT4gMi4wCitsb2cyMDEwMiBsb2cyIDguMCAtPiAzLjAKK2xvZzIwMTAzIGxvZzIgMTYuMCAtPiA0LjAKK2xvZzIwMTA0IGxvZzIgMzIuMCAtPiA1LjAKK2xvZzIwMTA1IGxvZzIgNjQuMCAtPiA2LjAKK2xvZzIwMTA2IGxvZzIgMTI4LjAgLT4gNy4wCitsb2cyMDEwNyBsb2cyIDI1Ni4wIC0+IDguMAorbG9nMjAxMDggbG9nMiA1MTIuMCAtPiA5LjAKK2xvZzIwMTA5IGxvZzIgMTAyNC4wIC0+IDEwLjAKK2xvZzIwMTEwIGxvZzIgMjA0OC4wIC0+IDExLjAKKworbG9nMjAyMDAgbG9nMiAwLjUgLT4gLTEuMAorbG9nMjAyMDEgbG9nMiAwLjI1IC0+IC0yLjAKK2xvZzIwMjAyIGxvZzIgMC4xMjUgLT4gLTMuMAorbG9nMjAyMDMgbG9nMiAwLjA2MjUgLT4gLTQuMAorCistLSB2YWx1ZXMgY2xvc2UgdG8gMS4wCitsb2cyMDMwMCBsb2cyIDEuMDAwMDAwMDAwMDAwMDAwMiAtPiAzLjIwMzQyNjUwMzgxNDkxNzFlLTE2Citsb2cyMDMwMSBsb2cyIDEuMDAwMDAwMDAwMSAtPiAxLjQ0MjY5NTE2MDE4NTk1MTZlLTEwCitsb2cyMDMwMiBsb2cyIDEuMDAwMDEgLT4gMS40NDI2ODc4Mjc0NzEyOTk3ZS01CisKK2xvZzIwMzEwIGxvZzIgMC45OTk5OTk5OTk5OTk5OTk5IC0+IC0xLjYwMTcxMzI1MTkwNzQ1ODhlLTE2Citsb2cyMDMxMSBsb2cyIDAuOTk5OTk5OTk5OSAtPiAtMS40NDI2OTUxNjAzMzAyMjEwZS0xMAorbG9nMjAzMTIgbG9nMiAwLjk5OTk5IC0+IC0xLjQ0MjcwMjI1NDQwNTY5MjJlLTUKKworLS0gdGlueSB2YWx1ZXMKK2xvZzIwNDAwIGxvZzIgNWUtMzI0IC0+IC0xMDc0LjAKK2xvZzIwNDAxIGxvZzIgMWUtMzIzIC0+IC0xMDczLjAKK2xvZzIwNDAyIGxvZzIgMS41ZS0zMjMgLT4gLTEwNzIuNDE1MDM3NDk5Mjc4OQorbG9nMjA0MDMgbG9nMiAyZS0zMjMgLT4gLTEwNzIuMAorCitsb2cyMDQxMCBsb2cyIDFlLTMwOCAtPiAtMTAyMy4xNTM4NTMyMjUzMDc2Citsb2cyMDQxMSBsb2cyIDIuMjI1MDczODU4NTA3MjAxNGUtMzA4IC0+IC0xMDIyLjAKK2xvZzIwNDEyIGxvZzIgNC40NTAxNDc3MTcwMTQ0MDI4ZS0zMDggLT4gLTEwMjEuMAorbG9nMjA0MTMgbG9nMiAxZS0zMDcgLT4gLTEwMTkuODMxOTI1MTMwNDIwMgorCistLSBodWdlIHZhbHVlcworbG9nMjA1MDAgbG9nMiAxLjc5NzY5MzEzNDg2MjMxNTdlKzMwOCAtPiAxMDI0LjAKK2xvZzIwNTAxIGxvZzIgMS43ZSszMDggLT4gMTAyMy45MTkzODc5NzE2NzA2Citsb2cyMDUwMiBsb2cyIDguOTg4NDY1Njc0MzExNTc5NWUrMzA3IC0+IDEwMjMuMAorCistLSBzZWxlY3Rpb24gb2YgcmFuZG9tIHZhbHVlcworbG9nMjA2MDAgbG9nMiAtNy4yMTc0MzI0ODQxMDM5ODM4ZSsyODkgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MDEgbG9nMiAtMi44NjEzMTk3MzQwODk2MTdlKzI2NSAtPiBuYW4gICAgaW52YWxpZAorbG9nMjA2MDIgbG9nMiAtNC4zNTA3NjQ2ODk0MDA4OTYyZSsyNTcgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MDMgbG9nMiAtNi42NzE3MjY1MzA3NTIwMjI0ZSsyMzQgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MDQgbG9nMiAtMy45MTE4MDIzNzg2NjE5Mjk0ZSsyMjkgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MDUgbG9nMiAtMS41NDc4MjIxMzAyNTA1MTYxZSsyMDYgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MDYgbG9nMiAtMS40MzgwNDg1MTMxMzY0NjAyZSsyMDAgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MDcgbG9nMiAtMy43MjM1MTk4NzMwMzgyNjQ1ZSsxODUgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MDggbG9nMiAtMS4wNDcyMjQyMjM1MDk1NzI0ZSsxODQgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MDkgbG9nMiAtNS4wMTQxNzgxOTU2MTYzODg0ZSsxNjAgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MTAgbG9nMiAtMi4xMTU3OTU4MDMxMTYwMzI0ZSsxMjQgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MTEgbG9nMiAtNy45Njc3NTU4NjEyNTY3NzE4ZSs5MCAtPiBuYW4gICAgaW52YWxpZAorbG9nMjA2MTIgbG9nMiAtNS41NTUzOTA2MTk0MDYzNzMyZSs0NSAtPiBuYW4gICAgaW52YWxpZAorbG9nMjA2MTMgbG9nMiAtMTY1NzM5MDA5NTI2MDcuOTUzIC0+IG5hbiAgICAgICAgaW52YWxpZAorbG9nMjA2MTQgbG9nMiAtMzcxOTgzNzEwMTkuODg4NjE4IC0+IG5hbiAgICAgICAgaW52YWxpZAorbG9nMjA2MTUgbG9nMiAtNi4wNzI3MTE1MTIxNDIyNjc0ZS0zMiAtPiBuYW4gICAgaW52YWxpZAorbG9nMjA2MTYgbG9nMiAtMi41NDA2ODQxNjU2NTI2MDU3ZS0zOCAtPiBuYW4gICAgaW52YWxpZAorbG9nMjA2MTcgbG9nMiAtNC45MDU2NzY2NzAzMjY3NjU3ZS00MyAtPiBuYW4gICAgaW52YWxpZAorbG9nMjA2MTggbG9nMiAtMi4xNjQ2Nzg2MDc1MjI4MzA1ZS03MSAtPiBuYW4gICAgaW52YWxpZAorbG9nMjA2MTkgbG9nMiAtMi40NzA4MjY3OTA0ODg1NzNlLTc4IC0+IG5hbiAgICAgaW52YWxpZAorbG9nMjA2MjAgbG9nMiAtMy44NjYxNzA5MzAzNDg5MDY0ZS0xNjUgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MjEgbG9nMiAtMS4wNTE2NDk2OTc2NjQ5OTg2ZS0xODIgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MjIgbG9nMiAtMS41OTM1NDU4NjE0MzE3OTk2ZS0yNTUgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MjMgbG9nMiAtMi44NzUwOTc3MjY3MzM2NjU0ZS0yOTMgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MjQgbG9nMiAtNy42MDc5NDY2Nzk0NzMyNTg1ZS0yOTYgLT4gbmFuICAgaW52YWxpZAorbG9nMjA2MjUgbG9nMiAzLjIwNzMyNTM1Mzk5ODg1NDVlLTMwNyAtPiAtMTAxOC4xNTA1NTQ0MjA5MjEzCitsb2cyMDYyNiBsb2cyIDEuNjc0OTM3ODg1NDcyMjQ5ZS0yNDQgLT4gLTgwOS44MDYzNDc1NTc4MzEyNgorbG9nMjA2MjcgbG9nMiAxLjA5MTEyNTkwNDQ5MzEyODNlLTIxNCAtPiAtNzEwLjc2Njc5NDcyMjc0MjEzCitsb2cyMDYyOCBsb2cyIDIuMDI3NTM3MjYyNDgwOTcwOWUtMTU0IC0+IC01MTAuNTU3MTk4MTgzODMyNzIKK2xvZzIwNjI5IGxvZzIgNy4zOTI2MDg3MzY5NjMxODQxZS0xMTUgLT4gLTM3OS4xMzU2NDczNTMxMjI5MgorbG9nMjA2MzAgbG9nMiAxLjM0ODAxOTgyMDYzNDI0MjNlLTg2IC0+IC0yODUuMjU0OTc0NDUwOTQ0MzYKK2xvZzIwNjMxIGxvZzIgOC45OTI3Mzg0NjU1NzE5OTQ3ZS04MyAtPiAtMjcyLjU1MTI3MTM2NDAxNjM3Citsb2cyMDYzMiBsb2cyIDMuMTQ1MjM5ODcxMzU5NzQ4N2UtNjAgLT4gLTE5Ny42NjI1MTU2NDQ5Njg3NQorbG9nMjA2MzMgbG9nMiA3LjA3MDY1NzMyMTU0NTczNTFlLTU1IC0+IC0xNzkuODg0MjAwODc3ODIyMTcKK2xvZzIwNjM0IGxvZzIgMy4xMjU4Mjg1MzkwNzMxNjY5ZS00OSAtPiAtMTYxLjEzMDIzODAwNTA1NjUzCitsb2cyMDYzNSBsb2cyIDguMjI1MzA0NjYyNzgyOTk0MmUtNDEgLT4gLTEzMy4xNTg5ODI3NzM1NTg3OQorbG9nMjA2MzYgbG9nMiA3Ljg2OTEzNjczOTc1MTk4OTdlKzQ5IC0+IDE2NS43NTA2ODIwMjczMjQxOQorbG9nMjA2MzcgbG9nMiAyLjk5MjA1NjE5ODM5MjUwMTNlKzY0IC0+IDIxNC4xODQ1MzUzNDU3Mzc1NworbG9nMjA2MzggbG9nMiA0Ljc4MjcyNTQ1NTM5NDY4NDFlKzc3IC0+IDI1OC4wNDYyOTYyODQ0NTY3MworbG9nMjA2MzkgbG9nMiAzLjE5MDM1NjY0OTY0ODE4NjhlKzEwNSAtPiAzNTAuNDc2MTY3Njc0OTExNjYKK2xvZzIwNjQwIGxvZzIgNS42MTk1MDgyNDQ5NTAyNDE5ZSsxMTMgLT4gMzc3Ljg2ODMxODYxMDA4MjUwCitsb2cyMDY0MSBsb2cyIDkuOTYyNTY1ODI1MDY1MTA0N2UrMTI1IC0+IDQxOC41NTc1MjkyMTIyODc1MworbG9nMjA2NDIgbG9nMiAyLjczNTg5NDUyMjA5NjE1MzJlKzE0NSAtPiA0ODMuMTMxNTg2MzY5MjM0MTMKK2xvZzIwNjQzIGxvZzIgMi43ODU4NDIzODc5MjY5MzFlKzE3NCAtPiA1NzkuNDkzNjAyMTQ4NjAyODAKK2xvZzIwNjQ0IGxvZzIgMi40MTY5MTcyNTA3MjUyNzUxZSsxOTMgLT4gNjQyLjQwNTI5MDM5Mjg5NjUyCitsb2cyMDY0NSBsb2cyIDMuMTY4OTA5MTIwNjM5NTYzMmUrMjA1IC0+IDY4Mi42NTkyNDU3Mzc5ODM5NQorbG9nMjA2NDYgbG9nMiAyLjUzNTk5NTU5MjM2NTM5MWUrMjA4IC0+IDY5Mi4zMDM1OTU5NzQ2MDQ2MAorbG9nMjA2NDcgbG9nMiA2LjIwMTEyMzY1NjYwODk5MTZlKzIzMyAtPiA3NzYuNjQxNzc1NzY3MzA5MTMKK2xvZzIwNjQ4IGxvZzIgMi4xODQzMjc0ODIwNjc3NjMyZSsyNTMgLT4gODQxLjU3NDk5NzE3Mjg5NjQ3Citsb2cyMDY0OSBsb2cyIDguNzQ5MzkzMTA2MzQ3NDc5MWUrMjk3IC0+IDk4OS43NDE4MjcxMzA3Mzk4MQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvbWVtb3J5X3dhdGNoZG9nLnB5IGIvTGliL3Rlc3QvbWVtb3J5X3dhdGNoZG9nLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4Y2NhOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9tZW1vcnlfd2F0Y2hkb2cucHkKQEAgLTAsMCArMSwyOCBAQAorIiIiTWVtb3J5IHdhdGNoZG9nOiBwZXJpb2RpY2FsbHkgcmVhZCB0aGUgbWVtb3J5IHVzYWdlIG9mIHRoZSBtYWluIHRlc3QgcHJvY2VzcworYW5kIHByaW50IGl0IG91dCwgdW50aWwgdGVybWluYXRlZC4iIiIKKyMgc3RkaW4gc2hvdWxkIHJlZmVyIHRvIHRoZSBwcm9jZXNzJyAvcHJvYy88UElEPi9zdGF0bTogd2UgZG9uJ3QgcGFzcyB0aGUKKyMgcHJvY2VzcycgUElEIHRvIGF2b2lkIGEgcmFjZSBjb25kaXRpb24gaW4gY2FzZSBvZiAtIHVubGlrZWx5IC0gUElEIHJlY3ljbGluZy4KKyMgSWYgdGhlIHByb2Nlc3MgY3Jhc2hlcywgcmVhZGluZyBmcm9tIHRoZSAvcHJvYyBlbnRyeSB3aWxsIGZhaWwgd2l0aCBFU1JDSC4KKworCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCisKKwordHJ5OgorICAgIHBhZ2Vfc2l6ZSA9IG9zLnN5c2NvbmYoJ1NDX1BBR0VTSVpFJykKK2V4Y2VwdCAoVmFsdWVFcnJvciwgQXR0cmlidXRlRXJyb3IpOgorICAgIHRyeToKKyAgICAgICAgcGFnZV9zaXplID0gb3Muc3lzY29uZignU0NfUEFHRV9TSVpFJykKKyAgICBleGNlcHQgKFZhbHVlRXJyb3IsIEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgcGFnZV9zaXplID0gNDA5NgorCit3aGlsZSBUcnVlOgorICAgIHN5cy5zdGRpbi5zZWVrKDApCisgICAgc3RhdG0gPSBzeXMuc3RkaW4ucmVhZCgpCisgICAgZGF0YSA9IGludChzdGF0bS5zcGxpdCgpWzVdKQorICAgIHN5cy5zdGRvdXQud3JpdGUoIiAuLi4gcHJvY2VzcyBkYXRhIHNpemU6IHtkYXRhOi4xZn1HXG4iCisgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KGRhdGE9ZGF0YSAqIHBhZ2Vfc2l6ZSAvICgxMDI0ICoqIDMpKSkKKyAgICBzeXMuc3Rkb3V0LmZsdXNoKCkKKyAgICB0aW1lLnNsZWVwKDEpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9tb2NrX3NvY2tldC5weSBiL0xpYi90ZXN0L21vY2tfc29ja2V0LnB5CmluZGV4IDgwMzY5MzIuLmQwOWU3OGMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L21vY2tfc29ja2V0LnB5CisrKyBiL0xpYi90ZXN0L21vY2tfc29ja2V0LnB5CkBAIC0xMDYsNyArMTA2LDggQEAKICAgICByZXR1cm4gTW9ja1NvY2tldCgpCiAKIAotZGVmIGNyZWF0ZV9jb25uZWN0aW9uKGFkZHJlc3MsIHRpbWVvdXQ9c29ja2V0X21vZHVsZS5fR0xPQkFMX0RFRkFVTFRfVElNRU9VVCk6CitkZWYgY3JlYXRlX2Nvbm5lY3Rpb24oYWRkcmVzcywgdGltZW91dD1zb2NrZXRfbW9kdWxlLl9HTE9CQUxfREVGQVVMVF9USU1FT1VULAorICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9hZGRyZXNzPU5vbmUpOgogICAgIHRyeToKICAgICAgICAgaW50X3BvcnQgPSBpbnQoYWRkcmVzc1sxXSkKICAgICBleGNlcHQgVmFsdWVFcnJvcjoKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5weSBiL0xpYi90ZXN0L211bHRpYnl0ZWNvZGVjX3N1cHBvcnQucHkKc2ltaWxhcml0eSBpbmRleCA5NiUKcmVuYW1lIGZyb20gTGliL3Rlc3QvdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LnB5CnJlbmFtZSB0byBMaWIvdGVzdC9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LnB5CmluZGV4IGVmNjNiNjkuLmEyYzU3ZWEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5weQorKysgYi9MaWIvdGVzdC9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LnB5CkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwogIwotIyB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQucHkKKyMgbXVsdGlieXRlY29kZWNfc3VwcG9ydC5weQogIyAgIENvbW1vbiBVbml0dGVzdCBSb3V0aW5lcyBmb3IgQ0pLIGNvZGVjcwogIwogCkBAIC0yNjQsMjEgKzI2NCw2IEBACiAKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zdHJlYW0uZ2V0dmFsdWUoKSwgc2VsZi50c3RyaW5nWzBdKQogCi1pZiBsZW4oJ1xVMDAwMTIzNDUnKSA9PSAyOiAjIHVjczIgYnVpbGQKLSAgICBfdW5pY2hyID0gY2hyCi0gICAgZGVmIGNocih2KToKLSAgICAgICAgaWYgdiA+PSAweDEwMDAwOgotICAgICAgICAgICAgcmV0dXJuIF91bmljaHIoMHhkODAwICsgKCh2IC0gMHgxMDAwMCkgPj4gMTApKSArIFwKLSAgICAgICAgICAgICAgICAgICBfdW5pY2hyKDB4ZGMwMCArICgodiAtIDB4MTAwMDApICYgMHgzZmYpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIF91bmljaHIodikKLSAgICBfb3JkID0gb3JkCi0gICAgZGVmIG9yZChjKToKLSAgICAgICAgaWYgbGVuKGMpID09IDI6Ci0gICAgICAgICAgICByZXR1cm4gMHgxMDAwMCArICgoX29yZChjWzBdKSAtIDB4ZDgwMCkgPDwgMTApICsgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAob3JkKGNbMV0pIC0gMHhkYzAwKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIF9vcmQoYykKIAogY2xhc3MgVGVzdEJhc2VfTWFwcGluZyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgcGFzc19lbmN0ZXN0ID0gW10KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL2JvdGhfcG9ydGlvbnMvZm9vL29uZS5weSBiL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL2JvdGhfcG9ydGlvbnMvZm9vL29uZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDgwZjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3MvYm90aF9wb3J0aW9ucy9mb28vb25lLnB5CkBAIC0wLDAgKzEgQEAKK2F0dHIgPSAnYm90aF9wb3J0aW9ucyBmb28gb25lJwpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3MvYm90aF9wb3J0aW9ucy9mb28vdHdvLnB5IGIvTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3MvYm90aF9wb3J0aW9ucy9mb28vdHdvLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxMzFkM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9ib3RoX3BvcnRpb25zL2Zvby90d28ucHkKQEAgLTAsMCArMSBAQAorYXR0ciA9ICdib3RoX3BvcnRpb25zIGZvbyB0d28nCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9taXNzaW5nX2RpcmVjdG9yeS56aXAgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9taXNzaW5nX2RpcmVjdG9yeS56aXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM2YTkxMAotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL21pc3NpbmdfZGlyZWN0b3J5LnppcApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9tb2R1bGVfYW5kX25hbWVzcGFjZV9wYWNrYWdlL2FfdGVzdC5weSBiL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL21vZHVsZV9hbmRfbmFtZXNwYWNlX3BhY2thZ2UvYV90ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzY2JlZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9tb2R1bGVfYW5kX25hbWVzcGFjZV9wYWNrYWdlL2FfdGVzdC5weQpAQCAtMCwwICsxIEBACithdHRyID0gJ2luIG1vZHVsZScKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L19faW5pdF9fLnB5IGIvTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3MvbW9kdWxlX2FuZF9uYW1lc3BhY2VfcGFja2FnZS9hX3Rlc3QvZW1wdHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCmNvcHkgZnJvbSBMaWIvZW1haWwvdGVzdC9fX2luaXRfXy5weQpjb3B5IHRvIExpYi90ZXN0L25hbWVzcGFjZV9wa2dzL21vZHVsZV9hbmRfbmFtZXNwYWNlX3BhY2thZ2UvYV90ZXN0L2VtcHR5CmRpZmYgLS1naXQgYS9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9uZXN0ZWRfcG9ydGlvbjEuemlwIGIvTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3MvbmVzdGVkX3BvcnRpb24xLnppcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZDIyNDA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3MvbmVzdGVkX3BvcnRpb24xLnppcApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9fX2luaXRfXy5weSBiL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL25vdF9hX25hbWVzcGFjZV9wa2cvZm9vL19faW5pdF9fLnB5CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9fX2luaXRfXy5weQpyZW5hbWUgdG8gTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3Mvbm90X2FfbmFtZXNwYWNlX3BrZy9mb28vX19pbml0X18ucHkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL25vdF9hX25hbWVzcGFjZV9wa2cvZm9vL29uZS5weSBiL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL25vdF9hX25hbWVzcGFjZV9wa2cvZm9vL29uZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kOGY1YzgzCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3Mvbm90X2FfbmFtZXNwYWNlX3BrZy9mb28vb25lLnB5CkBAIC0wLDAgKzEgQEAKK2F0dHIgPSAncG9ydGlvbjEgZm9vIG9uZScKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL3BvcnRpb24xL2Zvby9vbmUucHkgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9wb3J0aW9uMS9mb28vb25lLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4ZjVjODMKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9wb3J0aW9uMS9mb28vb25lLnB5CkBAIC0wLDAgKzEgQEAKK2F0dHIgPSAncG9ydGlvbjEgZm9vIG9uZScKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL3BvcnRpb24yL2Zvby90d28ucHkgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9wb3J0aW9uMi9mb28vdHdvLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwOTJlMWUKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9wb3J0aW9uMi9mb28vdHdvLnB5CkBAIC0wLDAgKzEgQEAKK2F0dHIgPSAncG9ydGlvbjIgZm9vIHR3bycKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL3Byb2plY3QxL3BhcmVudC9jaGlsZC9vbmUucHkgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9wcm9qZWN0MS9wYXJlbnQvY2hpbGQvb25lLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3NzZmY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9wcm9qZWN0MS9wYXJlbnQvY2hpbGQvb25lLnB5CkBAIC0wLDAgKzEgQEAKK2F0dHIgPSAncGFyZW50IGNoaWxkIG9uZScKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL3Byb2plY3QyL3BhcmVudC9jaGlsZC90d28ucHkgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9wcm9qZWN0Mi9wYXJlbnQvY2hpbGQvdHdvLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMDM3YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC9uYW1lc3BhY2VfcGtncy9wcm9qZWN0Mi9wYXJlbnQvY2hpbGQvdHdvLnB5CkBAIC0wLDAgKzEgQEAKK2F0dHIgPSAncGFyZW50IGNoaWxkIHR3bycKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL3Byb2plY3QzL3BhcmVudC9jaGlsZC90aHJlZS5weSBiL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL3Byb2plY3QzL3BhcmVudC9jaGlsZC90aHJlZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGFiZmUxCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3MvcHJvamVjdDMvcGFyZW50L2NoaWxkL3RocmVlLnB5CkBAIC0wLDAgKzEgQEAKK2F0dHIgPSAncGFyZW50IGNoaWxkIHRocmVlJwpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvbmFtZXNwYWNlX3BrZ3MvdG9wX2xldmVsX3BvcnRpb24xLnppcCBiL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL3RvcF9sZXZlbF9wb3J0aW9uMS56aXAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2I4NjZjOQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L25hbWVzcGFjZV9wa2dzL3RvcF9sZXZlbF9wb3J0aW9uMS56aXAKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvcGlja2xldGVzdGVyLnB5IGIvTGliL3Rlc3QvcGlja2xldGVzdGVyLnB5CmluZGV4IDRkNDkxYjAuLmZiMDQ4MzAgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3BpY2tsZXRlc3Rlci5weQorKysgYi9MaWIvdGVzdC9waWNrbGV0ZXN0ZXIucHkKQEAgLTQsMTAgKzQsMTEgQEAKIGltcG9ydCBwaWNrbGV0b29scwogaW1wb3J0IHN5cwogaW1wb3J0IGNvcHlyZWcKK2ltcG9ydCB3ZWFrcmVmCiBmcm9tIGh0dHAuY29va2llcyBpbXBvcnQgU2ltcGxlQ29va2llCiAKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCAoCi0gICAgVGVzdEZhaWxlZCwgVEVTVEZOLCBydW5fd2l0aF9sb2NhbGUsCisgICAgVGVzdEZhaWxlZCwgVEVTVEZOLCBydW5fd2l0aF9sb2NhbGUsIG5vX3RyYWNpbmcsCiAgICAgXzJHLCBfNEcsIGJpZ21lbXRlc3QsCiAgICAgKQogCkBAIC0xOCw3ICsxOSw3IEBACiAjIGtpbmQgb2Ygb3V0ZXIgbG9vcC4KIHByb3RvY29scyA9IHJhbmdlKHBpY2tsZS5ISUdIRVNUX1BST1RPQ09MICsgMSkKIAotY2hhcmFjdGVyX3NpemUgPSA0IGlmIHN5cy5tYXh1bmljb2RlID4gMHhGRkZGIGVsc2UgMgorYXNjaWlfY2hhcl9zaXplID0gMQogCiAKICMgUmV0dXJuIFRydWUgaWYgb3Bjb2RlIGNvZGUgYXBwZWFycyBpbiB0aGUgcGlja2xlLCBlbHNlIEZhbHNlLgpAQCAtNzQ3LDYgKzc0OCwxOCBAQAogICAgICAgICAgICAgICAgIHUgPSBzZWxmLmxvYWRzKHMpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LCB1KQogCisgICAgZGVmIHRlc3RfZWxsaXBzaXMoc2VsZik6CisgICAgICAgIGZvciBwcm90byBpbiBwcm90b2NvbHM6CisgICAgICAgICAgICBzID0gc2VsZi5kdW1wcyguLi4sIHByb3RvKQorICAgICAgICAgICAgdSA9IHNlbGYubG9hZHMocykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoLi4uLCB1KQorCisgICAgZGVmIHRlc3Rfbm90aW1wbGVtZW50ZWQoc2VsZik6CisgICAgICAgIGZvciBwcm90byBpbiBwcm90b2NvbHM6CisgICAgICAgICAgICBzID0gc2VsZi5kdW1wcyhOb3RJbXBsZW1lbnRlZCwgcHJvdG8pCisgICAgICAgICAgICB1ID0gc2VsZi5sb2FkcyhzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb3RJbXBsZW1lbnRlZCwgdSkKKwogICAgICMgVGVzdHMgZm9yIHByb3RvY29sIDIKIAogICAgIGRlZiB0ZXN0X3Byb3RvKHNlbGYpOgpAQCAtODgwLDYgKzg5MywyNSBAQAogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQih4KSwgQih5KSwgZGV0YWlsKQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC5fX2RpY3RfXywgeS5fX2RpY3RfXywgZGV0YWlsKQogCisgICAgZGVmIHRlc3RfbmV3b2JqX3Byb3hpZXMoc2VsZik6CisgICAgICAgICMgTkVXT0JKIHNob3VsZCB1c2UgdGhlIF9fY2xhc3NfXyByYXRoZXIgdGhhbiB0aGUgcmF3IHR5cGUKKyAgICAgICAgY2xhc3NlcyA9IG15Y2xhc3Nlc1s6XQorICAgICAgICAjIENhbm5vdCBjcmVhdGUgd2Vha3Byb3hpZXMgdG8gdGhlc2UgY2xhc3NlcworICAgICAgICBmb3IgYyBpbiAoTXlJbnQsIE15VHVwbGUpOgorICAgICAgICAgICAgY2xhc3Nlcy5yZW1vdmUoYykKKyAgICAgICAgZm9yIHByb3RvIGluIHByb3RvY29sczoKKyAgICAgICAgICAgIGZvciBDIGluIGNsYXNzZXM6CisgICAgICAgICAgICAgICAgQiA9IEMuX19iYXNlX18KKyAgICAgICAgICAgICAgICB4ID0gQyhDLnNhbXBsZSkKKyAgICAgICAgICAgICAgICB4LmZvbyA9IDQyCisgICAgICAgICAgICAgICAgcCA9IHdlYWtyZWYucHJveHkoeCkKKyAgICAgICAgICAgICAgICBzID0gc2VsZi5kdW1wcyhwLCBwcm90bykKKyAgICAgICAgICAgICAgICB5ID0gc2VsZi5sb2FkcyhzKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZSh5KSwgdHlwZSh4KSkgICMgcmF0aGVyIHRoYW4gdHlwZShwKQorICAgICAgICAgICAgICAgIGRldGFpbCA9IChwcm90bywgQywgQiwgeCwgeSwgdHlwZSh5KSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEIoeCksIEIoeSksIGRldGFpbCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHguX19kaWN0X18sIHkuX19kaWN0X18sIGRldGFpbCkKKwogICAgICMgUmVnaXN0ZXIgYSB0eXBlIHdpdGggY29weXJlZywgd2l0aCBleHRlbnNpb24gY29kZSBleHRjb2RlLiAgUGlja2xlCiAgICAgIyBhbiBvYmplY3Qgb2YgdGhhdCB0eXBlLiAgQ2hlY2sgdGhhdCB0aGUgcmVzdWx0aW5nIHBpY2tsZSB1c2VzIG9wY29kZQogICAgICMgKEVYVFsxMjRdKSB1bmRlciBwcm90byAyLCBhbmQgbm90IGluIHByb3RvIDEuCkBAIC0xMDQwLDEzICsxMDcyLDEzIEBACiAgICAgICAgICAgICB5ID0gc2VsZi5sb2FkcyhzKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh5Ll9yZWR1Y2VfY2FsbGVkLCAxKQogCisgICAgQG5vX3RyYWNpbmcKICAgICBkZWYgdGVzdF9iYWRfZ2V0YXR0cihzZWxmKToKICAgICAgICAgeCA9IEJhZEdldGF0dHIoKQogICAgICAgICBmb3IgcHJvdG8gaW4gMCwgMToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2VsZi5kdW1wcywgeCwgcHJvdG8pCiAgICAgICAgICMgcHJvdG9jb2wgMiBkb24ndCByYWlzZSBhIFJ1bnRpbWVFcnJvci4KICAgICAgICAgZCA9IHNlbGYuZHVtcHMoeCwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBzZWxmLmxvYWRzLCBkKQogCiAgICAgZGVmIHRlc3RfcmVkdWNlX2JhZF9pdGVyYXRvcihzZWxmKToKICAgICAgICAgIyBJc3N1ZTQxNzY6IGNyYXNoIHdoZW4gNHRoIGFuZCA1dGggaXRlbXMgb2YgX19yZWR1Y2VfXygpCkBAIC0xMTM2LDYgKzExNjgsMTUgQEAKICAgICAgICAgZW1wdHkgPSBzZWxmLmxvYWRzKGInXHg4MFx4MDNVXHgwMHFceDAwLicsIGVuY29kaW5nPSdrb2k4LXInKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVtcHR5LCAnJykKIAorICAgIGRlZiB0ZXN0X2ludF9waWNrbGluZ19lZmZpY2llbmN5KHNlbGYpOgorICAgICAgICAjIFRlc3QgY29tcGFjaXR5IG9mIGludCByZXByZXNlbnRhdGlvbiAoc2VlIGlzc3VlICMxMjc0NCkKKyAgICAgICAgZm9yIHByb3RvIGluIHByb3RvY29sczoKKyAgICAgICAgICAgIHNpemVzID0gW2xlbihzZWxmLmR1bXBzKDIqKm4sIHByb3RvKSkgZm9yIG4gaW4gcmFuZ2UoNzApXQorICAgICAgICAgICAgIyB0aGUgc2l6ZSBmdW5jdGlvbiBpcyBtb25vdG9uaWMKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKHNpemVzKSwgc2l6ZXMpCisgICAgICAgICAgICBpZiBwcm90byA+PSAyOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGVzc0VxdWFsKHNpemVzWy0xXSwgMTQpCisKICAgICBkZWYgY2hlY2tfbmVnYXRpdmVfMzJiX2JpblhYWChzZWxmLCBkdW1wZWQpOgogICAgICAgICBpZiBzeXMubWF4c2l6ZSA+IDIqKjMyOgogICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgidGVzdCBpcyBvbmx5IG1lYW5pbmdmdWwgb24gMzItYml0IGJ1aWxkcyIpCkBAIC0xMjE3LDcgKzEyNTgsNyBAQAogICAgICMgQWxsIHByb3RvY29scyB1c2UgMS1ieXRlIHBlciBwcmludGFibGUgQVNDSUkgY2hhcmFjdGVyOyB3ZSBhZGQgYW5vdGhlcgogICAgICMgYnl0ZSBiZWNhdXNlIHRoZSBlbmNvZGVkIGZvcm0gaGFzIHRvIGJlIGNvcGllZCBpbnRvIHRoZSBpbnRlcm5hbCBidWZmZXIuCiAKLSAgICBAYmlnbWVtdGVzdChzaXplPV8yRywgbWVtdXNlPTIgKyBjaGFyYWN0ZXJfc2l6ZSwgZHJ5X3J1bj1GYWxzZSkKKyAgICBAYmlnbWVtdGVzdChzaXplPV8yRywgbWVtdXNlPTIgKyBhc2NpaV9jaGFyX3NpemUsIGRyeV9ydW49RmFsc2UpCiAgICAgZGVmIHRlc3RfaHVnZV9zdHJfMzJiKHNlbGYsIHNpemUpOgogICAgICAgICBkYXRhID0gImFiY2QiICogKHNpemUgLy8gNCkKICAgICAgICAgdHJ5OgpAQCAtMTIzNCw3ICsxMjc1LDcgQEAKICAgICAjIEJJTlVOSUNPREUgKHByb3RvY29scyAxLCAyIGFuZCAzKSBjYW5ub3QgY2FycnkgbW9yZSB0aGFuCiAgICAgIyAyKiozMiAtIDEgYnl0ZXMgb2YgdXRmLTggZW5jb2RlZCB1bmljb2RlLgogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcsIG1lbXVzZT0xICsgY2hhcmFjdGVyX3NpemUsIGRyeV9ydW49RmFsc2UpCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcsIG1lbXVzZT0xICsgYXNjaWlfY2hhcl9zaXplLCBkcnlfcnVuPUZhbHNlKQogICAgIGRlZiB0ZXN0X2h1Z2Vfc3RyXzY0YihzZWxmLCBzaXplKToKICAgICAgICAgZGF0YSA9ICJhIiAqIHNpemUKICAgICAgICAgdHJ5OgpAQCAtMTU3OCw2ICsxNjE5LDEwNSBAQAogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodW5waWNrbGVyLmxvYWQoKSwgZGF0YSkKIAogCisjIFRlc3RzIGZvciBkaXNwYXRjaF90YWJsZSBhdHRyaWJ1dGUKKworUkVEVUNFX0EgPSAncmVkdWNlX0EnCisKK2NsYXNzIEFBQShvYmplY3QpOgorICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc3RyLCAoUkVEVUNFX0EsKQorCitjbGFzcyBCQkIob2JqZWN0KToKKyAgICBwYXNzCisKK2NsYXNzIEFic3RyYWN0RGlzcGF0Y2hUYWJsZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2RlZmF1bHRfZGlzcGF0Y2hfdGFibGUoc2VsZik6CisgICAgICAgICMgTm8gZGlzcGF0Y2hfdGFibGUgYXR0cmlidXRlIGJ5IGRlZmF1bHQKKyAgICAgICAgZiA9IGlvLkJ5dGVzSU8oKQorICAgICAgICBwID0gc2VsZi5waWNrbGVyX2NsYXNzKGYsIDApCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgcC5kaXNwYXRjaF90YWJsZQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIocCwgJ2Rpc3BhdGNoX3RhYmxlJykpCisKKyAgICBkZWYgdGVzdF9jbGFzc19kaXNwYXRjaF90YWJsZShzZWxmKToKKyAgICAgICAgIyBBIGRpc3BhdGNoX3RhYmxlIGF0dHJpYnV0ZSBjYW4gYmUgc3BlY2lmaWVkIGNsYXNzLXdpZGUKKyAgICAgICAgZHQgPSBzZWxmLmdldF9kaXNwYXRjaF90YWJsZSgpCisKKyAgICAgICAgY2xhc3MgTXlQaWNrbGVyKHNlbGYucGlja2xlcl9jbGFzcyk6CisgICAgICAgICAgICBkaXNwYXRjaF90YWJsZSA9IGR0CisKKyAgICAgICAgZGVmIGR1bXBzKG9iaiwgcHJvdG9jb2w9Tm9uZSk6CisgICAgICAgICAgICBmID0gaW8uQnl0ZXNJTygpCisgICAgICAgICAgICBwID0gTXlQaWNrbGVyKGYsIHByb3RvY29sKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLmRpc3BhdGNoX3RhYmxlLCBkdCkKKyAgICAgICAgICAgIHAuZHVtcChvYmopCisgICAgICAgICAgICByZXR1cm4gZi5nZXR2YWx1ZSgpCisKKyAgICAgICAgc2VsZi5fdGVzdF9kaXNwYXRjaF90YWJsZShkdW1wcywgZHQpCisKKyAgICBkZWYgdGVzdF9pbnN0YW5jZV9kaXNwYXRjaF90YWJsZShzZWxmKToKKyAgICAgICAgIyBBIGRpc3BhdGNoX3RhYmxlIGF0dHJpYnV0ZSBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgaW5zdGFuY2Utd2lkZQorICAgICAgICBkdCA9IHNlbGYuZ2V0X2Rpc3BhdGNoX3RhYmxlKCkKKworICAgICAgICBkZWYgZHVtcHMob2JqLCBwcm90b2NvbD1Ob25lKToKKyAgICAgICAgICAgIGYgPSBpby5CeXRlc0lPKCkKKyAgICAgICAgICAgIHAgPSBzZWxmLnBpY2tsZXJfY2xhc3MoZiwgcHJvdG9jb2wpCisgICAgICAgICAgICBwLmRpc3BhdGNoX3RhYmxlID0gZHQKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5kaXNwYXRjaF90YWJsZSwgZHQpCisgICAgICAgICAgICBwLmR1bXAob2JqKQorICAgICAgICAgICAgcmV0dXJuIGYuZ2V0dmFsdWUoKQorCisgICAgICAgIHNlbGYuX3Rlc3RfZGlzcGF0Y2hfdGFibGUoZHVtcHMsIGR0KQorCisgICAgZGVmIF90ZXN0X2Rpc3BhdGNoX3RhYmxlKHNlbGYsIGR1bXBzLCBkaXNwYXRjaF90YWJsZSk6CisgICAgICAgIGRlZiBjdXN0b21fbG9hZF9kdW1wKG9iaik6CisgICAgICAgICAgICByZXR1cm4gcGlja2xlLmxvYWRzKGR1bXBzKG9iaiwgMCkpCisKKyAgICAgICAgZGVmIGRlZmF1bHRfbG9hZF9kdW1wKG9iaik6CisgICAgICAgICAgICByZXR1cm4gcGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhvYmosIDApKQorCisgICAgICAgICMgcGlja2xpbmcgY29tcGxleCBudW1iZXJzIHVzaW5nIHByb3RvY29sIDAgcmVsaWVzIG9uIGNvcHlyZWcKKyAgICAgICAgIyBzbyBjaGVjayBwaWNrbGluZyBhIGNvbXBsZXggbnVtYmVyIHN0aWxsIHdvcmtzCisgICAgICAgIHogPSAxICsgMmoKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjdXN0b21fbG9hZF9kdW1wKHopLCB6KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlZmF1bHRfbG9hZF9kdW1wKHopLCB6KQorCisgICAgICAgICMgbW9kaWZ5IHBpY2tsaW5nIG9mIGNvbXBsZXgKKyAgICAgICAgUkVEVUNFXzEgPSAncmVkdWNlXzEnCisgICAgICAgIGRlZiByZWR1Y2VfMShvYmopOgorICAgICAgICAgICAgcmV0dXJuIHN0ciwgKFJFRFVDRV8xLCkKKyAgICAgICAgZGlzcGF0Y2hfdGFibGVbY29tcGxleF0gPSByZWR1Y2VfMQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGN1c3RvbV9sb2FkX2R1bXAoeiksIFJFRFVDRV8xKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlZmF1bHRfbG9hZF9kdW1wKHopLCB6KQorCisgICAgICAgICMgY2hlY2sgcGlja2xhYmlsaXR5IG9mIEFBQSBhbmQgQkJCCisgICAgICAgIGEgPSBBQUEoKQorICAgICAgICBiID0gQkJCKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjdXN0b21fbG9hZF9kdW1wKGEpLCBSRURVQ0VfQSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGN1c3RvbV9sb2FkX2R1bXAoYiksIEJCQikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWZhdWx0X2xvYWRfZHVtcChhKSwgUkVEVUNFX0EpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShkZWZhdWx0X2xvYWRfZHVtcChiKSwgQkJCKQorCisgICAgICAgICMgbW9kaWZ5IHBpY2tsaW5nIG9mIEJCQgorICAgICAgICBkaXNwYXRjaF90YWJsZVtCQkJdID0gcmVkdWNlXzEKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjdXN0b21fbG9hZF9kdW1wKGEpLCBSRURVQ0VfQSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjdXN0b21fbG9hZF9kdW1wKGIpLCBSRURVQ0VfMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWZhdWx0X2xvYWRfZHVtcChhKSwgUkVEVUNFX0EpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShkZWZhdWx0X2xvYWRfZHVtcChiKSwgQkJCKQorCisgICAgICAgICMgcmV2ZXJ0IHBpY2tsaW5nIG9mIEJCQiBhbmQgbW9kaWZ5IHBpY2tsaW5nIG9mIEFBQQorICAgICAgICBSRURVQ0VfMiA9ICdyZWR1Y2VfMicKKyAgICAgICAgZGVmIHJlZHVjZV8yKG9iaik6CisgICAgICAgICAgICByZXR1cm4gc3RyLCAoUkVEVUNFXzIsKQorICAgICAgICBkaXNwYXRjaF90YWJsZVtBQUFdID0gcmVkdWNlXzIKKyAgICAgICAgZGVsIGRpc3BhdGNoX3RhYmxlW0JCQl0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjdXN0b21fbG9hZF9kdW1wKGEpLCBSRURVQ0VfMikKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGN1c3RvbV9sb2FkX2R1bXAoYiksIEJCQikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWZhdWx0X2xvYWRfZHVtcChhKSwgUkVEVUNFX0EpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShkZWZhdWx0X2xvYWRfZHVtcChiKSwgQkJCKQorCisKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgIyBQcmludCBzb21lIHN0dWZmIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmV3cml0ZSBEQVRBezAsMSwyfQogICAgIGZyb20gcGlja2xldG9vbHMgaW1wb3J0IGRpcwpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvcmVncnRlc3QucHkgYi9MaWIvdGVzdC9yZWdydGVzdC5weQppbmRleCA0NmMzYWM3Li5iZWIyYmE4IDEwMDc1NQotLS0gYS9MaWIvdGVzdC9yZWdydGVzdC5weQorKysgYi9MaWIvdGVzdC9yZWdydGVzdC5weQpAQCAtMjAsNiArMjAsMTEgQEAKIE9wdGlvbnM6CiAKIC1oLy0taGVscCAgICAgICAtLSBwcmludCB0aGlzIHRleHQgYW5kIGV4aXQKKy0tdGltZW91dCBUSU1FT1VUCisgICAgICAgICAgICAgICAgLS0gZHVtcCB0aGUgdHJhY2ViYWNrIGFuZCBleGl0IGlmIGEgdGVzdCB0YWtlcyBtb3JlCisgICAgICAgICAgICAgICAgICAgdGhhbiBUSU1FT1VUIHNlY29uZHM7IGRpc2FibGVkIGlmIFRJTUVPVVQgaXMgbmVnYXRpdmUKKyAgICAgICAgICAgICAgICAgICBvciBlcXVhbHMgdG8gemVybworLS13YWl0ICAgICAgICAgIC0tIHdhaXQgZm9yIHVzZXIgaW5wdXQsIGUuZy4sIGFsbG93IGEgZGVidWdnZXIgdG8gYmUgYXR0YWNoZWQKIAogVmVyYm9zaXR5CiAKQEAgLTQ0LDYgKzQ5LDkgQEAKICAgICAgICAgICAgICAgICAtLSBzcGVjaWZ5IHdoaWNoIHNwZWNpYWwgcmVzb3VyY2UgaW50ZW5zaXZlIHRlc3RzIHRvIHJ1bgogLU0vLS1tZW1saW1pdCBMSU1JVAogICAgICAgICAgICAgICAgIC0tIHJ1biB2ZXJ5IGxhcmdlIG1lbW9yeS1jb25zdW1pbmcgdGVzdHMKKyAgIC0tdGVzdGRpciBESVIKKyAgICAgICAgICAgICAgICAtLSBleGVjdXRlIHRlc3QgZmlsZXMgaW4gdGhlIHNwZWNpZmllZCBkaXJlY3RvcnkgKGluc3RlYWQKKyAgICAgICAgICAgICAgICAgICBvZiB0aGUgUHl0aG9uIHN0ZGxpYiB0ZXN0IHN1aXRlKQogCiBTcGVjaWFsIHJ1bnMKIApAQCAtMTI1LDYgKzEzMyw4IEBACiAKICAgICBhbGwgLSAgICAgICBFbmFibGUgYWxsIHNwZWNpYWwgcmVzb3VyY2VzLgogCisgICAgbm9uZSAtICAgICAgRGlzYWJsZSBhbGwgc3BlY2lhbCByZXNvdXJjZXMgKHRoaXMgaXMgdGhlIGRlZmF1bHQpLgorCiAgICAgYXVkaW8gLSAgICAgVGVzdHMgdGhhdCB1c2UgdGhlIGF1ZGlvIGRldmljZS4gIChUaGVyZSBhcmUga25vd24KICAgICAgICAgICAgICAgICBjYXNlcyBvZiBicm9rZW4gYXVkaW8gZHJpdmVycyB0aGF0IGNhbiBjcmFzaCBQeXRob24gb3IKICAgICAgICAgICAgICAgICBldmVuIHRoZSBMaW51eCBrZXJuZWwuKQpAQCAtMTU2LDcgKzE2Niw3IEBACiAiIiIKIAogaW1wb3J0IGJ1aWx0aW5zCi1pbXBvcnQgZXJybm8KK2ltcG9ydCBmYXVsdGhhbmRsZXIKIGltcG9ydCBnZXRvcHQKIGltcG9ydCBpbwogaW1wb3J0IGpzb24KQEAgLTE2Niw2ICsxNzYsNyBAQAogaW1wb3J0IHJhbmRvbQogaW1wb3J0IHJlCiBpbXBvcnQgc2h1dGlsCitpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc3lzCiBpbXBvcnQgc3lzY29uZmlnCiBpbXBvcnQgdGVtcGZpbGUKQEAgLTIyNSw2ICsyMzYsNyBAQAogU0tJUFBFRCA9IC0yCiBSRVNPVVJDRV9ERU5JRUQgPSAtMwogSU5URVJSVVBURUQgPSAtNAorQ0hJTERfRVJST1IgPSAtNSAgICMgZXJyb3IgaW4gYSBjaGlsZCBwcm9jZXNzCiAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogCkBAIC0yNjgsNiArMjgwLDE4IEBACiAgICAgb24gdGhlIGNvbW1hbmQgbGluZS4KICAgICAiIiIKIAorICAgICMgRGlzcGxheSB0aGUgUHl0aG9uIHRyYWNlYmFjayBvbiBmYXRhbCBlcnJvcnMgKGUuZy4gc2VnZmF1bHQpCisgICAgZmF1bHRoYW5kbGVyLmVuYWJsZShhbGxfdGhyZWFkcz1UcnVlKQorCisgICAgIyBEaXNwbGF5IHRoZSBQeXRob24gdHJhY2ViYWNrIG9uIFNJR0FMUk0gb3IgU0lHVVNSMSBzaWduYWwKKyAgICBzaWduYWxzID0gW10KKyAgICBpZiBoYXNhdHRyKHNpZ25hbCwgJ1NJR0FMUk0nKToKKyAgICAgICAgc2lnbmFscy5hcHBlbmQoc2lnbmFsLlNJR0FMUk0pCisgICAgaWYgaGFzYXR0cihzaWduYWwsICdTSUdVU1IxJyk6CisgICAgICAgIHNpZ25hbHMuYXBwZW5kKHNpZ25hbC5TSUdVU1IxKQorICAgIGZvciBzaWdudW0gaW4gc2lnbmFsczoKKyAgICAgICAgZmF1bHRoYW5kbGVyLnJlZ2lzdGVyKHNpZ251bSwgY2hhaW49VHJ1ZSkKKwogICAgIHJlcGxhY2Vfc3Rkb3V0KCkKIAogICAgIHN1cHBvcnQucmVjb3JkX29yaWdpbmFsX3N0ZG91dChzeXMuc3Rkb3V0KQpAQCAtMjc4LDcgKzMwMiw4IEBACiAgICAgICAgICAgICAgJ3VzZT0nLCAndGhyZXNob2xkPScsICdjb3ZlcmRpcj0nLCAnbm9jb3ZlcmRpcicsCiAgICAgICAgICAgICAgJ3J1bmxlYWtzJywgJ2h1bnRybGVha3M9JywgJ21lbWxpbWl0PScsICdyYW5kc2VlZD0nLAogICAgICAgICAgICAgICdtdWx0aXByb2Nlc3M9JywgJ2NvdmVyYWdlJywgJ3NsYXZlYXJncz0nLCAnZm9yZXZlcicsICdkZWJ1ZycsCi0gICAgICAgICAgICAgJ3N0YXJ0PScsICdub3dpbmRvd3MnLCAnaGVhZGVyJywgJ2ZhaWxmYXN0JywgJ21hdGNoJ10pCisgICAgICAgICAgICAgJ3N0YXJ0PScsICdub3dpbmRvd3MnLCAnaGVhZGVyJywgJ3Rlc3RkaXI9JywgJ3RpbWVvdXQ9JywgJ3dhaXQnLAorICAgICAgICAgICAgICdmYWlsZmFzdCcsICdtYXRjaCddKQogICAgIGV4Y2VwdCBnZXRvcHQuZXJyb3IgYXMgbXNnOgogICAgICAgICB1c2FnZShtc2cpCiAKQEAgLTI4OSw2ICszMTQsNyBAQAogICAgICAgICB1c2VfcmVzb3VyY2VzID0gW10KICAgICBkZWJ1ZyA9IEZhbHNlCiAgICAgc3RhcnQgPSBOb25lCisgICAgdGltZW91dCA9IE5vbmUKICAgICBmb3IgbywgYSBpbiBvcHRzOgogICAgICAgICBpZiBvIGluICgnLWgnLCAnLS1oZWxwJyk6CiAgICAgICAgICAgICBwcmludChfX2RvY19fKQpAQCAtMzMyLDcgKzM1OCw5IEBACiAgICAgICAgIGVsaWYgbyBpbiAoJy1UJywgJy0tY292ZXJhZ2UnKToKICAgICAgICAgICAgIHRyYWNlID0gVHJ1ZQogICAgICAgICBlbGlmIG8gaW4gKCctRCcsICctLWNvdmVyZGlyJyk6Ci0gICAgICAgICAgICBjb3ZlcmRpciA9IG9zLnBhdGguam9pbihvcy5nZXRjd2QoKSwgYSkKKyAgICAgICAgICAgICMgQ1dEIGlzIHJlcGxhY2VkIHdpdGggYSB0ZW1wb3JhcnkgZGlyIGJlZm9yZSBjYWxsaW5nIG1haW4oKSwgc28gd2UKKyAgICAgICAgICAgICMgbmVlZCAgam9pbiBpdCB3aXRoIHRoZSBzYXZlZCBDV0Qgc28gaXQgZ29lcyB3aGVyZSB0aGUgdXNlciBleHBlY3RzLgorICAgICAgICAgICAgY292ZXJkaXIgPSBvcy5wYXRoLmpvaW4oc3VwcG9ydC5TQVZFRENXRCwgYSkKICAgICAgICAgZWxpZiBvIGluICgnLU4nLCAnLS1ub2NvdmVyZGlyJyk6CiAgICAgICAgICAgICBjb3ZlcmRpciA9IE5vbmUKICAgICAgICAgZWxpZiBvIGluICgnLVInLCAnLS1odW50cmxlYWtzJyk6CkBAIC0zNjEsNiArMzg5LDkgQEAKICAgICAgICAgICAgICAgICBpZiByID09ICdhbGwnOgogICAgICAgICAgICAgICAgICAgICB1c2VfcmVzb3VyY2VzWzpdID0gUkVTT1VSQ0VfTkFNRVMKICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiByID09ICdub25lJzoKKyAgICAgICAgICAgICAgICAgICAgZGVsIHVzZV9yZXNvdXJjZXNbOl0KKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICByZW1vdmUgPSBGYWxzZQogICAgICAgICAgICAgICAgIGlmIHJbMF0gPT0gJy0nOgogICAgICAgICAgICAgICAgICAgICByZW1vdmUgPSBUcnVlCkBAIC0zOTEsNiArNDIyLDE1IEBACiAgICAgICAgICAgICBmb3JldmVyID0gVHJ1ZQogICAgICAgICBlbGlmIG8gaW4gKCctaicsICctLW11bHRpcHJvY2VzcycpOgogICAgICAgICAgICAgdXNlX21wID0gaW50KGEpCisgICAgICAgICAgICBpZiB1c2VfbXAgPD0gMDoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGltcG9ydCBtdWx0aXByb2Nlc3NpbmcKKyAgICAgICAgICAgICAgICAgICAgIyBVc2UgYWxsIGNvcmVzICsgZXh0cmFzIGZvciB0ZXN0cyB0aGF0IGxpa2UgdG8gc2xlZXAKKyAgICAgICAgICAgICAgICAgICAgdXNlX21wID0gMiArIG11bHRpcHJvY2Vzc2luZy5jcHVfY291bnQoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCAoSW1wb3J0RXJyb3IsIE5vdEltcGxlbWVudGVkRXJyb3IpOgorICAgICAgICAgICAgICAgICAgICB1c2VfbXAgPSAzCisgICAgICAgICAgICBpZiB1c2VfbXAgPT0gMToKKyAgICAgICAgICAgICAgICB1c2VfbXAgPSBOb25lCiAgICAgICAgIGVsaWYgbyA9PSAnLS1oZWFkZXInOgogICAgICAgICAgICAgaGVhZGVyID0gVHJ1ZQogICAgICAgICBlbGlmIG8gPT0gJy0tc2xhdmVhcmdzJzoKQEAgLTQwMyw2ICs0NDMsMjEgQEAKICAgICAgICAgICAgIHByaW50KCkgICAjIEZvcmNlIGEgbmV3bGluZSAoanVzdCBpbiBjYXNlKQogICAgICAgICAgICAgcHJpbnQoanNvbi5kdW1wcyhyZXN1bHQpKQogICAgICAgICAgICAgc3lzLmV4aXQoMCkKKyAgICAgICAgZWxpZiBvID09ICctLXRlc3RkaXInOgorICAgICAgICAgICAgIyBDV0QgaXMgcmVwbGFjZWQgd2l0aCBhIHRlbXBvcmFyeSBkaXIgYmVmb3JlIGNhbGxpbmcgbWFpbigpLCBzbyB3ZQorICAgICAgICAgICAgIyBqb2luIGl0IHdpdGggdGhlIHNhdmVkIENXRCBzbyBpdCBlbmRzIHVwIHdoZXJlIHRoZSB1c2VyIGV4cGVjdHMuCisgICAgICAgICAgICB0ZXN0ZGlyID0gb3MucGF0aC5qb2luKHN1cHBvcnQuU0FWRURDV0QsIGEpCisgICAgICAgIGVsaWYgbyA9PSAnLS10aW1lb3V0JzoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoZmF1bHRoYW5kbGVyLCAnZHVtcF90cmFjZWJhY2tzX2xhdGVyJyk6CisgICAgICAgICAgICAgICAgdGltZW91dCA9IGZsb2F0KGEpCisgICAgICAgICAgICAgICAgaWYgdGltZW91dCA8PSAwOgorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0ID0gTm9uZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCgiV2FybmluZzogVGhlIHRpbWVvdXQgb3B0aW9uIHJlcXVpcmVzICIKKyAgICAgICAgICAgICAgICAgICAgICAiZmF1bHRoYW5kbGVyLmR1bXBfdHJhY2ViYWNrc19sYXRlciIpCisgICAgICAgICAgICAgICAgdGltZW91dCA9IE5vbmUKKyAgICAgICAgZWxpZiBvID09ICctLXdhaXQnOgorICAgICAgICAgICAgaW5wdXQoIlByZXNzIGFueSBrZXkgdG8gY29udGludWUuLi4iKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcHJpbnQoKCJObyBoYW5kbGVyIGZvciBvcHRpb24ge30uICBQbGVhc2UgcmVwb3J0IHRoaXMgYXMgYSBidWcgIgogICAgICAgICAgICAgICAgICAgICJhdCBodHRwOi8vYnVncy5weXRob24ub3JnLiIpLmZvcm1hdChvKSwgZmlsZT1zeXMuc3RkZXJyKQpAQCAtNDgxLDcgKzUzNiwxMyBAQAogICAgICAgICBwcmludCgiPT0gICIsIG9zLmdldGN3ZCgpKQogICAgICAgICBwcmludCgiVGVzdGluZyB3aXRoIGZsYWdzOiIsIHN5cy5mbGFncykKIAotICAgIGFsbHRlc3RzID0gZmluZHRlc3RzKHRlc3RkaXIsIHN0ZHRlc3RzLCBub3R0ZXN0cykKKyAgICAjIGlmIHRlc3RkaXIgaXMgc2V0LCB0aGVuIHdlIGFyZSBub3QgcnVubmluZyB0aGUgcHl0aG9uIHRlc3RzIHN1aXRlLCBzbworICAgICMgZG9uJ3QgYWRkIGRlZmF1bHQgdGVzdHMgdG8gYmUgZXhlY3V0ZWQgb3Igc2tpcHBlZCAocGFzcyBlbXB0eSB2YWx1ZXMpCisgICAgaWYgdGVzdGRpcjoKKyAgICAgICAgYWxsdGVzdHMgPSBmaW5kdGVzdHModGVzdGRpciwgbGlzdCgpLCBzZXQoKSkKKyAgICBlbHNlOgorICAgICAgICBhbGx0ZXN0cyA9IGZpbmR0ZXN0cyh0ZXN0ZGlyLCBzdGR0ZXN0cywgbm90dGVzdHMpCisKICAgICBzZWxlY3RlZCA9IHRlc3RzIG9yIGFyZ3Mgb3IgYWxsdGVzdHMKICAgICBpZiBzaW5nbGU6CiAgICAgICAgIHNlbGVjdGVkID0gc2VsZWN0ZWRbOjFdCkBAIC01MDEsNyArNTYyLDcgQEAKICAgICAgICAgcmFuZG9tLnNodWZmbGUoc2VsZWN0ZWQpCiAgICAgaWYgdHJhY2U6CiAgICAgICAgIGltcG9ydCB0cmFjZSwgdGVtcGZpbGUKLSAgICAgICAgdHJhY2VyID0gdHJhY2UuVHJhY2UoaWdub3JlZGlycz1bc3lzLnByZWZpeCwgc3lzLmV4ZWNfcHJlZml4LAorICAgICAgICB0cmFjZXIgPSB0cmFjZS5UcmFjZShpZ25vcmVkaXJzPVtzeXMuYmFzZV9wcmVmaXgsIHN5cy5iYXNlX2V4ZWNfcHJlZml4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wZmlsZS5nZXR0ZW1wZGlyKCldLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjZT1GYWxzZSwgY291bnQ9VHJ1ZSkKIApAQCAtNTU2LDcgKzYxNyw4IEBACiAgICAgICAgICAgICAgICAgICAgICh0ZXN0LCB2ZXJib3NlLCBxdWlldCksCiAgICAgICAgICAgICAgICAgICAgIGRpY3QoaHVudHJsZWFrcz1odW50cmxlYWtzLCB1c2VfcmVzb3VyY2VzPXVzZV9yZXNvdXJjZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWc9ZGVidWcsIG91dHB1dF9vbl9mYWlsdXJlPXZlcmJvc2UzLAotICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxmYXN0PWZhaWxmYXN0LCBtYXRjaF90ZXN0cz1tYXRjaF90ZXN0cykKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsIGZhaWxmYXN0PWZhaWxmYXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoX3Rlc3RzPW1hdGNoX3Rlc3RzKQogICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICB5aWVsZCAodGVzdCwgYXJnc190dXBsZSkKICAgICAgICAgcGVuZGluZyA9IHRlc3RzX2FuZF9hcmdzKCkKQEAgLTU3NywxMCArNjM5LDE1IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXZlcnNhbF9uZXdsaW5lcz1UcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9mZHM9KG9zLm5hbWUgIT0gJ250JykpCiAgICAgICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gcG9wZW4uY29tbXVuaWNhdGUoKQorICAgICAgICAgICAgICAgICAgICByZXRjb2RlID0gcG9wZW4ud2FpdCgpCiAgICAgICAgICAgICAgICAgICAgICMgU3RyaXAgbGFzdCByZWZjb3VudCBvdXRwdXQgbGluZSBpZiBpdCBleGlzdHMsIHNpbmNlIGl0CiAgICAgICAgICAgICAgICAgICAgICMgY29tZXMgZnJvbSB0aGUgc2h1dGRvd24gb2YgdGhlIGludGVycHJldGVyIGluIHRoZSBzdWJjb21tYW5kLgogICAgICAgICAgICAgICAgICAgICBzdGRlcnIgPSBkZWJ1Z19vdXRwdXRfcGF0LnN1YigiIiwgc3RkZXJyKQogICAgICAgICAgICAgICAgICAgICBzdGRvdXQsIF8sIHJlc3VsdCA9IHN0ZG91dC5zdHJpcCgpLnJwYXJ0aXRpb24oIlxuIikKKyAgICAgICAgICAgICAgICAgICAgaWYgcmV0Y29kZSAhPSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gKENISUxEX0VSUk9SLCAiRXhpdCBjb2RlICVzIiAlIHJldGNvZGUpCisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQucHV0KCh0ZXN0LCBzdGRvdXQucnN0cmlwKCksIHN0ZGVyci5yc3RyaXAoKSwgcmVzdWx0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmVzdWx0OgogICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0LnB1dCgoTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KQEAgLTYxNSw2ICs2ODIsOCBAQAogICAgICAgICAgICAgICAgIGlmIHJlc3VsdFswXSA9PSBJTlRFUlJVUFRFRDoKICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHJlc3VsdFsxXSA9PSAnS2V5Ym9hcmRJbnRlcnJ1cHQnCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEtleWJvYXJkSW50ZXJydXB0ICAgIyBXaGF0IGVsc2U/CisgICAgICAgICAgICAgICAgaWYgcmVzdWx0WzBdID09IENISUxEX0VSUk9SOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNoaWxkIGVycm9yIG9uIHt9OiB7fSIuZm9ybWF0KHRlc3QsIHJlc3VsdFsxXSkpCiAgICAgICAgICAgICAgICAgdGVzdF9pbmRleCArPSAxCiAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKICAgICAgICAgICAgIGludGVycnVwdGVkID0gVHJ1ZQpAQCAtNjMxLDEzICs3MDAsMTQgQEAKICAgICAgICAgICAgIGlmIHRyYWNlOgogICAgICAgICAgICAgICAgICMgSWYgd2UncmUgdHJhY2luZyBjb2RlIGNvdmVyYWdlLCB0aGVuIHdlIGRvbid0IGV4aXQgd2l0aCBzdGF0dXMKICAgICAgICAgICAgICAgICAjIGlmIG9uIGEgZmFsc2UgcmV0dXJuIHZhbHVlIGZyb20gbWFpbi4KLSAgICAgICAgICAgICAgICB0cmFjZXIucnVuY3R4KCdydW50ZXN0KHRlc3QsIHZlcmJvc2UsIHF1aWV0KScsCisgICAgICAgICAgICAgICAgdHJhY2VyLnJ1bmN0eCgncnVudGVzdCh0ZXN0LCB2ZXJib3NlLCBxdWlldCwgdGltZW91dD10aW1lb3V0KScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iYWxzPWdsb2JhbHMoKSwgbG9jYWxzPXZhcnMoKSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBydW50ZXN0KHRlc3QsIHZlcmJvc2UsIHF1aWV0LCBodW50cmxlYWtzLCBkZWJ1ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfb25fZmFpbHVyZT12ZXJib3NlMywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsZmFzdD1mYWlsZmFzdCwgbWF0Y2hfdGVzdHM9bWF0Y2hfdGVzdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LCBmYWlsZmFzdD1mYWlsZmFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaF90ZXN0cz1tYXRjaF90ZXN0cykKICAgICAgICAgICAgICAgICAgICAgYWNjdW11bGF0ZV9yZXN1bHQodGVzdCwgcmVzdWx0KQogICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKICAgICAgICAgICAgICAgICAgICAgaW50ZXJydXB0ZWQgPSBUcnVlCkBAIC03MDgsNyArNzc4LDcgQEAKICAgICAgICAgICAgIHN5cy5zdGRvdXQuZmx1c2goKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHZlcmJvc2UgPSBUcnVlCi0gICAgICAgICAgICAgICAgb2sgPSBydW50ZXN0KHRlc3QsIFRydWUsIHF1aWV0LCBodW50cmxlYWtzLCBkZWJ1ZykKKyAgICAgICAgICAgICAgICBvayA9IHJ1bnRlc3QodGVzdCwgVHJ1ZSwgcXVpZXQsIGh1bnRybGVha3MsIGRlYnVnLCB0aW1lb3V0PXRpbWVvdXQpCiAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CiAgICAgICAgICAgICAgICAgIyBwcmludCBhIG5ld2xpbmUgc2VwYXJhdGUgZnJvbSB0aGUgXkMKICAgICAgICAgICAgICAgICBwcmludCgpCkBAIC03MzMsNiArODAzLDggQEAKICAgICBzeXMuZXhpdChsZW4oYmFkKSA+IDAgb3IgaW50ZXJydXB0ZWQpCiAKIAorIyBzbWFsbCBzZXQgb2YgdGVzdHMgdG8gZGV0ZXJtaW5lIGlmIHdlIGhhdmUgYSBiYXNpY2FsbHkgZnVuY3Rpb25pbmcgaW50ZXJwcmV0ZXIKKyMgKGkuZS4gaWYgYW55IG9mIHRoZXNlIGZhaWwsIHRoZW4gYW55dGhpbmcgZWxzZSBpcyBsaWtlbHkgdG8gZm9sbG93KQogU1REVEVTVFMgPSBbCiAgICAgJ3Rlc3RfZ3JhbW1hcicsCiAgICAgJ3Rlc3Rfb3Bjb2RlcycsCkBAIC03NDMsMTIgKzgxNSwxMSBAQAogICAgICd0ZXN0X3VuaXR0ZXN0JywKICAgICAndGVzdF9kb2N0ZXN0JywKICAgICAndGVzdF9kb2N0ZXN0MicsCisgICAgJ3Rlc3Rfc3VwcG9ydCcKIF0KIAotTk9UVEVTVFMgPSB7Ci0gICAgJ3Rlc3RfZnV0dXJlMScsCi0gICAgJ3Rlc3RfZnV0dXJlMicsCi19CisjIHNldCBvZiB0ZXN0cyB0aGF0IHdlIGRvbid0IHdhbnQgdG8gYmUgZXhlY3V0ZWQgd2hlbiB1c2luZyByZWdydGVzdAorTk9UVEVTVFMgPSBzZXQoKQogCiBkZWYgZmluZHRlc3RzKHRlc3RkaXI9Tm9uZSwgc3RkdGVzdHM9U1REVEVTVFMsIG5vdHRlc3RzPU5PVFRFU1RTKToKICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGFsbCBhcHBsaWNhYmxlIHRlc3QgbW9kdWxlcy4iIiIKQEAgLTc1NywyNSArODI4LDIyIEBACiAgICAgdGVzdHMgPSBbXQogICAgIG90aGVycyA9IHNldChzdGR0ZXN0cykgfCBub3R0ZXN0cwogICAgIGZvciBuYW1lIGluIG5hbWVzOgotICAgICAgICBtb2RuYW1lLCBleHQgPSBvcy5wYXRoLnNwbGl0ZXh0KG5hbWUpCi0gICAgICAgIGlmIG1vZG5hbWVbOjVdID09ICJ0ZXN0XyIgYW5kIGV4dCA9PSAiLnB5IiBhbmQgbW9kbmFtZSBub3QgaW4gb3RoZXJzOgotICAgICAgICAgICAgdGVzdHMuYXBwZW5kKG1vZG5hbWUpCisgICAgICAgIG1vZCwgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChuYW1lKQorICAgICAgICBpZiBtb2RbOjVdID09ICJ0ZXN0XyIgYW5kIGV4dCBpbiAoIi5weSIsICIiKSBhbmQgbW9kIG5vdCBpbiBvdGhlcnM6CisgICAgICAgICAgICB0ZXN0cy5hcHBlbmQobW9kKQogICAgIHJldHVybiBzdGR0ZXN0cyArIHNvcnRlZCh0ZXN0cykKIAogZGVmIHJlcGxhY2Vfc3Rkb3V0KCk6CiAgICAgIiIiU2V0IHN0ZG91dCBlbmNvZGVyIGVycm9yIGhhbmRsZXIgdG8gYmFja3NsYXNocmVwbGFjZSAoYXMgc3RkZXJyIGVycm9yCiAgICAgaGFuZGxlcikgdG8gYXZvaWQgVW5pY29kZUVuY29kZUVycm9yIHdoZW4gcHJpbnRpbmcgYSB0cmFjZWJhY2siIiIKLSAgICBpZiBvcy5uYW1lID09ICJudCI6Ci0gICAgICAgICMgUmVwbGFjZSBzeXMuc3Rkb3V0IGJyZWFrcyB0aGUgc3Rkb3V0IG5ld2xpbmVzIG9uIFdpbmRvd3M6IGlzc3VlICM4NTMzCi0gICAgICAgIHJldHVybgotCiAgICAgaW1wb3J0IGF0ZXhpdAogCiAgICAgc3Rkb3V0ID0gc3lzLnN0ZG91dAogICAgIHN5cy5zdGRvdXQgPSBvcGVuKHN0ZG91dC5maWxlbm8oKSwgJ3cnLAogICAgICAgICBlbmNvZGluZz1zdGRvdXQuZW5jb2RpbmcsCiAgICAgICAgIGVycm9ycz0iYmFja3NsYXNocmVwbGFjZSIsCi0gICAgICAgIGNsb3NlZmQ9RmFsc2UpCisgICAgICAgIGNsb3NlZmQ9RmFsc2UsCisgICAgICAgIG5ld2xpbmU9J1xuJykKIAogICAgIGRlZiByZXN0b3JlX3N0ZG91dCgpOgogICAgICAgICBzeXMuc3Rkb3V0LmNsb3NlKCkKQEAgLTc4NCw3ICs4NTIsOCBAQAogCiBkZWYgcnVudGVzdCh0ZXN0LCB2ZXJib3NlLCBxdWlldCwKICAgICAgICAgICAgIGh1bnRybGVha3M9RmFsc2UsIGRlYnVnPUZhbHNlLCB1c2VfcmVzb3VyY2VzPU5vbmUsCi0gICAgICAgICAgICBvdXRwdXRfb25fZmFpbHVyZT1GYWxzZSwgZmFpbGZhc3Q9RmFsc2UsIG1hdGNoX3Rlc3RzPU5vbmUpOgorICAgICAgICAgICAgb3V0cHV0X29uX2ZhaWx1cmU9RmFsc2UsIGZhaWxmYXN0PUZhbHNlLCBtYXRjaF90ZXN0cz1Ob25lLAorICAgICAgICAgICAgdGltZW91dD1Ob25lKToKICAgICAiIiJSdW4gYSBzaW5nbGUgdGVzdC4KIAogICAgIHRlc3QgLS0gdGhlIG5hbWUgb2YgdGhlIHRlc3QKQEAgLTc5NCw2ICs4NjMsOCBAQAogICAgIGh1bnRybGVha3MgLS0gcnVuIG11bHRpcGxlIHRpbWVzIHRvIHRlc3QgZm9yIGxlYWtzOyByZXF1aXJlcyBhIGRlYnVnCiAgICAgICAgICAgICAgICAgICBidWlsZDsgYSB0cmlwbGUgY29ycmVzcG9uZGluZyB0byAtUidzIHRocmVlIGFyZ3VtZW50cwogICAgIG91dHB1dF9vbl9mYWlsdXJlIC0tIGlmIHRydWUsIGRpc3BsYXkgdGVzdCBvdXRwdXQgb24gZmFpbHVyZQorICAgIHRpbWVvdXQgLS0gZHVtcCB0aGUgdHJhY2ViYWNrIGFuZCBleGl0IGlmIGEgdGVzdCB0YWtlcyBtb3JlIHRoYW4KKyAgICAgICAgICAgICAgIHRpbWVvdXQgc2Vjb25kcwogCiAgICAgUmV0dXJucyBvbmUgb2YgdGhlIHRlc3QgcmVzdWx0IGNvbnN0YW50czoKICAgICAgICAgSU5URVJSVVBURUQgICAgICBLZXlib2FyZEludGVycnVwdCB3aGVuIHJ1biB1bmRlciAtagpAQCAtODA2LDYgKzg3Nyw5IEBACiAKICAgICBpZiB1c2VfcmVzb3VyY2VzIGlzIG5vdCBOb25lOgogICAgICAgICBzdXBwb3J0LnVzZV9yZXNvdXJjZXMgPSB1c2VfcmVzb3VyY2VzCisgICAgdXNlX3RpbWVvdXQgPSAodGltZW91dCBpcyBub3QgTm9uZSkKKyAgICBpZiB1c2VfdGltZW91dDoKKyAgICAgICAgZmF1bHRoYW5kbGVyLmR1bXBfdHJhY2ViYWNrc19sYXRlcih0aW1lb3V0LCBleGl0PVRydWUpCiAgICAgdHJ5OgogICAgICAgICBzdXBwb3J0Lm1hdGNoX3Rlc3RzID0gbWF0Y2hfdGVzdHMKICAgICAgICAgaWYgZmFpbGZhc3Q6CkBAIC04NDQsNiArOTE4LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheV9mYWlsdXJlPW5vdCB2ZXJib3NlKQogICAgICAgICByZXR1cm4gcmVzdWx0CiAgICAgZmluYWxseToKKyAgICAgICAgaWYgdXNlX3RpbWVvdXQ6CisgICAgICAgICAgICBmYXVsdGhhbmRsZXIuY2FuY2VsX2R1bXBfdHJhY2ViYWNrc19sYXRlcigpCiAgICAgICAgIGNsZWFudXBfdGVzdF9kcm9wcGluZ3ModGVzdCwgdmVyYm9zZSkKIHJ1bnRlc3Quc3RyaW5naW8gPSBOb25lCiAKQEAgLTg4OSwxMCArOTY1LDEwIEBACiAgICAgcmVzb3VyY2VzID0gKCdzeXMuYXJndicsICdjd2QnLCAnc3lzLnN0ZGluJywgJ3N5cy5zdGRvdXQnLCAnc3lzLnN0ZGVycicsCiAgICAgICAgICAgICAgICAgICdvcy5lbnZpcm9uJywgJ3N5cy5wYXRoJywgJ3N5cy5wYXRoX2hvb2tzJywgJ19faW1wb3J0X18nLAogICAgICAgICAgICAgICAgICAnd2FybmluZ3MuZmlsdGVycycsICdhc3luY29yZS5zb2NrZXRfbWFwJywKLSAgICAgICAgICAgICAgICAgJ2xvZ2dpbmcuX2hhbmRsZXJzJywgJ2xvZ2dpbmcuX2hhbmRsZXJMaXN0JywKLSAgICAgICAgICAgICAgICAgJ3NodXRpbC5hcmNoaXZlX2Zvcm1hdHMnLCAnc2h1dGlsLnVucGFja19mb3JtYXRzJywKKyAgICAgICAgICAgICAgICAgJ2xvZ2dpbmcuX2hhbmRsZXJzJywgJ2xvZ2dpbmcuX2hhbmRsZXJMaXN0JywgJ3N5cy5nZXR0cmFjZScsCiAgICAgICAgICAgICAgICAgICdzeXMud2Fybm9wdGlvbnMnLCAndGhyZWFkaW5nLl9kYW5nbGluZycsCiAgICAgICAgICAgICAgICAgICdtdWx0aXByb2Nlc3NpbmcucHJvY2Vzcy5fZGFuZ2xpbmcnLAorICAgICAgICAgICAgICAgICAnc3lzY29uZmlnLl9DT05GSUdfVkFSUycsICdzeXNjb25maWcuX0lOU1RBTExfU0NIRU1FUycsCiAgICAgICAgICAgICAgICAgICdzdXBwb3J0LlRFU1RGTicsCiAgICAgICAgICAgICAgICAgKQogCkBAIC05NDEsNiArMTAxNywxMSBAQAogICAgICAgICBzeXMucGF0aF9ob29rcyA9IHNhdmVkX2hvb2tzWzFdCiAgICAgICAgIHN5cy5wYXRoX2hvb2tzWzpdID0gc2F2ZWRfaG9va3NbMl0KIAorICAgIGRlZiBnZXRfc3lzX2dldHRyYWNlKHNlbGYpOgorICAgICAgICByZXR1cm4gc3lzLmdldHRyYWNlKCkKKyAgICBkZWYgcmVzdG9yZV9zeXNfZ2V0dHJhY2Uoc2VsZiwgdHJhY2VfZnhuKToKKyAgICAgICAgc3lzLnNldHRyYWNlKHRyYWNlX2Z4bikKKwogICAgIGRlZiBnZXRfX19pbXBvcnRfXyhzZWxmKToKICAgICAgICAgcmV0dXJuIGJ1aWx0aW5zLl9faW1wb3J0X18KICAgICBkZWYgcmVzdG9yZV9fX2ltcG9ydF9fKHNlbGYsIGltcG9ydF8pOgpAQCAtMTAyNCw2ICsxMTA1LDI0IEBACiAgICAgICAgIG11bHRpcHJvY2Vzc2luZy5wcm9jZXNzLl9kYW5nbGluZy5jbGVhcigpCiAgICAgICAgIG11bHRpcHJvY2Vzc2luZy5wcm9jZXNzLl9kYW5nbGluZy51cGRhdGUoc2F2ZWQpCiAKKyAgICBkZWYgZ2V0X3N5c2NvbmZpZ19fQ09ORklHX1ZBUlMoc2VsZik6CisgICAgICAgICMgbWFrZSBzdXJlIHRoZSBkaWN0IGlzIGluaXRpYWxpemVkCisgICAgICAgIHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcigncHJlZml4JykKKyAgICAgICAgcmV0dXJuIChpZChzeXNjb25maWcuX0NPTkZJR19WQVJTKSwgc3lzY29uZmlnLl9DT05GSUdfVkFSUywKKyAgICAgICAgICAgICAgICBkaWN0KHN5c2NvbmZpZy5fQ09ORklHX1ZBUlMpKQorICAgIGRlZiByZXN0b3JlX3N5c2NvbmZpZ19fQ09ORklHX1ZBUlMoc2VsZiwgc2F2ZWQpOgorICAgICAgICBzeXNjb25maWcuX0NPTkZJR19WQVJTID0gc2F2ZWRbMV0KKyAgICAgICAgc3lzY29uZmlnLl9DT05GSUdfVkFSUy5jbGVhcigpCisgICAgICAgIHN5c2NvbmZpZy5fQ09ORklHX1ZBUlMudXBkYXRlKHNhdmVkWzJdKQorCisgICAgZGVmIGdldF9zeXNjb25maWdfX0lOU1RBTExfU0NIRU1FUyhzZWxmKToKKyAgICAgICAgcmV0dXJuIChpZChzeXNjb25maWcuX0lOU1RBTExfU0NIRU1FUyksIHN5c2NvbmZpZy5fSU5TVEFMTF9TQ0hFTUVTLAorICAgICAgICAgICAgICAgIHN5c2NvbmZpZy5fSU5TVEFMTF9TQ0hFTUVTLmNvcHkoKSkKKyAgICBkZWYgcmVzdG9yZV9zeXNjb25maWdfX0lOU1RBTExfU0NIRU1FUyhzZWxmLCBzYXZlZCk6CisgICAgICAgIHN5c2NvbmZpZy5fSU5TVEFMTF9TQ0hFTUVTID0gc2F2ZWRbMV0KKyAgICAgICAgc3lzY29uZmlnLl9JTlNUQUxMX1NDSEVNRVMuY2xlYXIoKQorICAgICAgICBzeXNjb25maWcuX0lOU1RBTExfU0NIRU1FUy51cGRhdGUoc2F2ZWRbMl0pCisKICAgICBkZWYgZ2V0X3N1cHBvcnRfVEVTVEZOKHNlbGYpOgogICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShzdXBwb3J0LlRFU1RGTik6CiAgICAgICAgICAgICByZXN1bHQgPSAnZicKQEAgLTEwODgsMTQgKzExODcsMTUgQEAKICAgICAgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQogICAgICAgICAgICAgdGhlX3BhY2thZ2UgPSBfX2ltcG9ydF9fKGFic3Rlc3QsIGdsb2JhbHMoKSwgbG9jYWxzKCksIFtdKQogICAgICAgICAgICAgdGhlX21vZHVsZSA9IGdldGF0dHIodGhlX3BhY2thZ2UsIHRlc3QpCi0gICAgICAgICAgICAjIE9sZCB0ZXN0cyBydW4gdG8gY29tcGxldGlvbiBzaW1wbHkgYXMgYSBzaWRlLWVmZmVjdCBvZgotICAgICAgICAgICAgIyBiZWluZyBpbXBvcnRlZC4gIEZvciB0ZXN0cyBiYXNlZCBvbiB1bml0dGVzdCBvciBkb2N0ZXN0LAotICAgICAgICAgICAgIyBleHBsaWNpdGx5IGludm9rZSB0aGVpciB0ZXN0X21haW4oKSBmdW5jdGlvbiAoaWYgaXQgZXhpc3RzKS4KLSAgICAgICAgICAgIGluZGlyZWN0X3Rlc3QgPSBnZXRhdHRyKHRoZV9tb2R1bGUsICJ0ZXN0X21haW4iLCBOb25lKQotICAgICAgICAgICAgaWYgaW5kaXJlY3RfdGVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBpbmRpcmVjdF90ZXN0KCkKKyAgICAgICAgICAgICMgSWYgdGhlIHRlc3QgaGFzIGEgdGVzdF9tYWluLCB0aGF0IHdpbGwgcnVuIHRoZSBhcHByb3ByaWF0ZQorICAgICAgICAgICAgIyB0ZXN0cy4gIElmIG5vdCwgdXNlIG5vcm1hbCB1bml0dGVzdCB0ZXN0IGxvYWRpbmcuCisgICAgICAgICAgICB0ZXN0X3J1bm5lciA9IGdldGF0dHIodGhlX21vZHVsZSwgInRlc3RfbWFpbiIsIE5vbmUpCisgICAgICAgICAgICBpZiB0ZXN0X3J1bm5lciBpcyBOb25lOgorICAgICAgICAgICAgICAgIHRlc3RzID0gdW5pdHRlc3QuVGVzdExvYWRlcigpLmxvYWRUZXN0c0Zyb21Nb2R1bGUodGhlX21vZHVsZSkKKyAgICAgICAgICAgICAgICB0ZXN0X3J1bm5lciA9IGxhbWJkYTogc3VwcG9ydC5ydW5fdW5pdHRlc3QodGVzdHMpCisgICAgICAgICAgICB0ZXN0X3J1bm5lcigpCiAgICAgICAgICAgICBpZiBodW50cmxlYWtzOgotICAgICAgICAgICAgICAgIHJlZmxlYWsgPSBkYXNoX1IodGhlX21vZHVsZSwgdGVzdCwgaW5kaXJlY3RfdGVzdCwKKyAgICAgICAgICAgICAgICByZWZsZWFrID0gZGFzaF9SKHRoZV9tb2R1bGUsIHRlc3QsIHRlc3RfcnVubmVyLAogICAgICAgICAgICAgICAgICAgICBodW50cmxlYWtzKQogICAgICAgICAgICAgdGVzdF90aW1lID0gdGltZS50aW1lKCkgLSBzdGFydF90aW1lCiAgICAgZXhjZXB0IHN1cHBvcnQuUmVzb3VyY2VEZW5pZWQgYXMgbXNnOgpAQCAtMTE3OCw3ICsxMjc4LDggQEAKICAgICAgICAgRmFsc2UgaWYgdGhlIHRlc3QgZGlkbid0IGxlYWsgcmVmZXJlbmNlczsgVHJ1ZSBpZiB3ZSBkZXRlY3RlZCByZWZsZWFrcy4KICAgICAiIiIKICAgICAjIFRoaXMgY29kZSBpcyBoYWNraXNoIGFuZCBpbmVsZWdhbnQsIGJ1dCBpdCBzZWVtcyB0byBkbyB0aGUgam9iLgotICAgIGltcG9ydCBjb3B5cmVnLCBfYWJjb2xsCisgICAgaW1wb3J0IGNvcHlyZWcKKyAgICBpbXBvcnQgY29sbGVjdGlvbnMuYWJjCiAKICAgICBpZiBub3QgaGFzYXR0cihzeXMsICdnZXR0b3RhbHJlZmNvdW50Jyk6CiAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiVHJhY2tpbmcgcmVmZXJlbmNlIGxlYWtzIHJlcXVpcmVzIGEgZGVidWcgYnVpbGQgIgpAQCAtMTE5NSw3ICsxMjk2LDcgQEAKICAgICBlbHNlOgogICAgICAgICB6ZGMgPSB6aXBpbXBvcnQuX3ppcF9kaXJlY3RvcnlfY2FjaGUuY29weSgpCiAgICAgYWJjcyA9IHt9Ci0gICAgZm9yIGFiYyBpbiBbZ2V0YXR0cihfYWJjb2xsLCBhKSBmb3IgYSBpbiBfYWJjb2xsLl9fYWxsX19dOgorICAgIGZvciBhYmMgaW4gW2dldGF0dHIoY29sbGVjdGlvbnMuYWJjLCBhKSBmb3IgYSBpbiBjb2xsZWN0aW9ucy5hYmMuX19hbGxfX106CiAgICAgICAgIGlmIG5vdCBpc2Fic3RyYWN0KGFiYyk6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBmb3Igb2JqIGluIGFiYy5fX3N1YmNsYXNzZXNfXygpICsgW2FiY106CkBAIC0xMjQxLDcgKzEzNDIsNyBAQAogICAgIGltcG9ydCBnYywgY29weXJlZwogICAgIGltcG9ydCBfc3RycHRpbWUsIGxpbmVjYWNoZQogICAgIGltcG9ydCB1cmxsaWIucGFyc2UsIHVybGxpYi5yZXF1ZXN0LCBtaW1ldHlwZXMsIGRvY3Rlc3QKLSAgICBpbXBvcnQgc3RydWN0LCBmaWxlY21wLCBfYWJjb2xsCisgICAgaW1wb3J0IHN0cnVjdCwgZmlsZWNtcCwgY29sbGVjdGlvbnMuYWJjCiAgICAgZnJvbSBkaXN0dXRpbHMuZGlyX3V0aWwgaW1wb3J0IF9wYXRoX2NyZWF0ZWQKICAgICBmcm9tIHdlYWtyZWYgaW1wb3J0IFdlYWtTZXQKIApAQCAtMTI2OCw3ICsxMzY5LDcgQEAKICAgICBzeXMuX2NsZWFyX3R5cGVfY2FjaGUoKQogCiAgICAgIyBDbGVhciBBQkMgcmVnaXN0cmllcywgcmVzdG9yaW5nIHByZXZpb3VzbHkgc2F2ZWQgQUJDIHJlZ2lzdHJpZXMuCi0gICAgZm9yIGFiYyBpbiBbZ2V0YXR0cihfYWJjb2xsLCBhKSBmb3IgYSBpbiBfYWJjb2xsLl9fYWxsX19dOgorICAgIGZvciBhYmMgaW4gW2dldGF0dHIoY29sbGVjdGlvbnMuYWJjLCBhKSBmb3IgYSBpbiBjb2xsZWN0aW9ucy5hYmMuX19hbGxfX106CiAgICAgICAgIGlmIG5vdCBpc2Fic3RyYWN0KGFiYyk6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBmb3Igb2JqIGluIGFiYy5fX3N1YmNsYXNzZXNfXygpICsgW2FiY106CkBAIC0xMzU0LDEzICsxNDU1LDE0IEBACiAjIFRlc3RzIHRoYXQgYXJlIGV4cGVjdGVkIHRvIGJlIHNraXBwZWQgZXZlcnl3aGVyZSBleGNlcHQgb24gb25lIHBsYXRmb3JtCiAjIGFyZSBhbHNvIGhhbmRsZWQgc2VwYXJhdGVseS4KIAotX2V4cGVjdGF0aW9ucyA9IHsKLSAgICAnd2luMzInOgorX2V4cGVjdGF0aW9ucyA9ICgKKyAgICAoJ3dpbjMyJywKICAgICAgICAgIiIiCiAgICAgICAgIHRlc3RfX2xvY2FsZQogICAgICAgICB0ZXN0X2NyeXB0CiAgICAgICAgIHRlc3RfY3Vyc2VzCiAgICAgICAgIHRlc3RfZGJtCisgICAgICAgIHRlc3RfZGV2cG9sbAogICAgICAgICB0ZXN0X2ZjbnRsCiAgICAgICAgIHRlc3RfZm9yazEKICAgICAgICAgdGVzdF9lcG9sbApAQCAtMTM4MywxNSArMTQ4NSwxNiBAQAogICAgICAgICB0ZXN0X3RocmVhZHNpZ25hbHMKICAgICAgICAgdGVzdF93YWl0MwogICAgICAgICB0ZXN0X3dhaXQ0Ci0gICAgICAgICIiIiwKLSAgICAnbGludXgyJzoKKyAgICAgICAgIiIiKSwKKyAgICAoJ2xpbnV4JywKICAgICAgICAgIiIiCiAgICAgICAgIHRlc3RfY3Vyc2VzCisgICAgICAgIHRlc3RfZGV2cG9sbAogICAgICAgICB0ZXN0X2xhcmdlZmlsZQogICAgICAgICB0ZXN0X2txdWV1ZQogICAgICAgICB0ZXN0X29zc2F1ZGlvZGV2Ci0gICAgICAgICIiIiwKLSAgICAndW5peHdhcmU3JzoKKyAgICAgICAgIiIiKSwKKyAgICAoJ3VuaXh3YXJlJywKICAgICAgICAgIiIiCiAgICAgICAgIHRlc3RfZXBvbGwKICAgICAgICAgdGVzdF9sYXJnZWZpbGUKQEAgLTE0MDEsOCArMTUwNCw4IEBACiAgICAgICAgIHRlc3RfcHlleHBhdAogICAgICAgICB0ZXN0X3NheAogICAgICAgICB0ZXN0X3N1bmRyeQotICAgICAgICAiIiIsCi0gICAgJ29wZW51bml4OCc6CisgICAgICAgICIiIiksCisgICAgKCdvcGVudW5peCcsCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0X2Vwb2xsCiAgICAgICAgIHRlc3RfbGFyZ2VmaWxlCkBAIC0xNDEyLDggKzE1MTUsOCBAQAogICAgICAgICB0ZXN0X3B5ZXhwYXQKICAgICAgICAgdGVzdF9zYXgKICAgICAgICAgdGVzdF9zdW5kcnkKLSAgICAgICAgIiIiLAotICAgICdzY29fc3YzJzoKKyAgICAgICAgIiIiKSwKKyAgICAoJ3Njb19zdicsCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0X2FzeW5jaGF0CiAgICAgICAgIHRlc3RfZm9yazEKQEAgLTE0MzIsMTEgKzE1MzUsMTIgQEAKICAgICAgICAgdGVzdF90aHJlYWRlZF9pbXBvcnQKICAgICAgICAgdGVzdF90aHJlYWRlZHRlbXBmaWxlCiAgICAgICAgIHRlc3RfdGhyZWFkaW5nCi0gICAgICAgICIiIiwKLSAgICAnZGFyd2luJzoKKyAgICAgICAgIiIiKSwKKyAgICAoJ2RhcndpbicsCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0X19sb2NhbGUKICAgICAgICAgdGVzdF9jdXJzZXMKKyAgICAgICAgdGVzdF9kZXZwb2xsCiAgICAgICAgIHRlc3RfZXBvbGwKICAgICAgICAgdGVzdF9kYm1fZ251CiAgICAgICAgIHRlc3RfZ2RiCkBAIC0xNDQ1LDggKzE1NDksOCBAQAogICAgICAgICB0ZXN0X21pbmlkb20KICAgICAgICAgdGVzdF9vc3NhdWRpb2RldgogICAgICAgICB0ZXN0X3BvbGwKLSAgICAgICAgIiIiLAotICAgICdzdW5vczUnOgorICAgICAgICAiIiIpLAorICAgICgnc3Vub3MnLAogICAgICAgICAiIiIKICAgICAgICAgdGVzdF9jdXJzZXMKICAgICAgICAgdGVzdF9kYm0KQEAgLTE0NTcsOCArMTU2MSw4IEBACiAgICAgICAgIHRlc3Rfb3BlbnB0eQogICAgICAgICB0ZXN0X3ppcGZpbGUKICAgICAgICAgdGVzdF96bGliCi0gICAgICAgICIiIiwKLSAgICAnaHAtdXgxMSc6CisgICAgICAgICIiIiksCisgICAgKCdocC11eCcsCiAgICAgICAgICIiIgogICAgICAgICB0ZXN0X2N1cnNlcwogICAgICAgICB0ZXN0X2Vwb2xsCkBAIC0xNDczLDExICsxNTc3LDEyIEBACiAgICAgICAgIHRlc3Rfc2F4CiAgICAgICAgIHRlc3RfemlwZmlsZQogICAgICAgICB0ZXN0X3psaWIKLSAgICAgICAgIiIiLAotICAgICdjeWd3aW4nOgorICAgICAgICAiIiIpLAorICAgICgnY3lnd2luJywKICAgICAgICAgIiIiCiAgICAgICAgIHRlc3RfY3Vyc2VzCiAgICAgICAgIHRlc3RfZGJtCisgICAgICAgIHRlc3RfZGV2cG9sbAogICAgICAgICB0ZXN0X2Vwb2xsCiAgICAgICAgIHRlc3RfaW9jdGwKICAgICAgICAgdGVzdF9rcXVldWUKQEAgLTE0ODUsOCArMTU5MCw4IEBACiAgICAgICAgIHRlc3RfbG9jYWxlCiAgICAgICAgIHRlc3Rfb3NzYXVkaW9kZXYKICAgICAgICAgdGVzdF9zb2NrZXRzZXJ2ZXIKLSAgICAgICAgIiIiLAotICAgICdvczJlbXgnOgorICAgICAgICAiIiIpLAorICAgICgnb3MyZW14JywKICAgICAgICAgIiIiCiAgICAgICAgIHRlc3RfYXVkaW9vcAogICAgICAgICB0ZXN0X2N1cnNlcwpAQCAtMTQ5OSw5ICsxNjA0LDEwIEBACiAgICAgICAgIHRlc3RfcHR5CiAgICAgICAgIHRlc3RfcmVzb3VyY2UKICAgICAgICAgdGVzdF9zaWduYWwKLSAgICAgICAgIiIiLAotICAgICdmcmVlYnNkNCc6CisgICAgICAgICIiIiksCisgICAgKCdmcmVlYnNkJywKICAgICAgICAgIiIiCisgICAgICAgIHRlc3RfZGV2cG9sbAogICAgICAgICB0ZXN0X2Vwb2xsCiAgICAgICAgIHRlc3RfZGJtX2dudQogICAgICAgICB0ZXN0X2xvY2FsZQpAQCAtMTUxNiw4ICsxNjIyLDggQEAKICAgICAgICAgdGVzdF90aW1lb3V0CiAgICAgICAgIHRlc3RfdXJsbGlibmV0CiAgICAgICAgIHRlc3RfbXVsdGlwcm9jZXNzaW5nCi0gICAgICAgICIiIiwKLSAgICAnYWl4NSc6CisgICAgICAgICIiIiksCisgICAgKCdhaXgnLAogICAgICAgICAiIiIKICAgICAgICAgdGVzdF9iejIKICAgICAgICAgdGVzdF9lcG9sbApAQCAtMTUzMSwxMCArMTYzNywxMSBAQAogICAgICAgICB0ZXN0X3R0a190ZXh0b25seQogICAgICAgICB0ZXN0X3ppcGltcG9ydAogICAgICAgICB0ZXN0X3psaWIKLSAgICAgICAgIiIiLAotICAgICdvcGVuYnNkMyc6CisgICAgICAgICIiIiksCisgICAgKCdvcGVuYnNkJywKICAgICAgICAgIiIiCiAgICAgICAgIHRlc3RfY3R5cGVzCisgICAgICAgIHRlc3RfZGV2cG9sbAogICAgICAgICB0ZXN0X2Vwb2xsCiAgICAgICAgIHRlc3RfZGJtX2dudQogICAgICAgICB0ZXN0X2xvY2FsZQpAQCAtMTU0NiwxMSArMTY1MywxMiBAQAogICAgICAgICB0ZXN0X3R0a19ndWlvbmx5CiAgICAgICAgIHRlc3RfdHRrX3RleHRvbmx5CiAgICAgICAgIHRlc3RfbXVsdGlwcm9jZXNzaW5nCi0gICAgICAgICIiIiwKLSAgICAnbmV0YnNkMyc6CisgICAgICAgICIiIiksCisgICAgKCduZXRic2QnLAogICAgICAgICAiIiIKICAgICAgICAgdGVzdF9jdHlwZXMKICAgICAgICAgdGVzdF9jdXJzZXMKKyAgICAgICAgdGVzdF9kZXZwb2xsCiAgICAgICAgIHRlc3RfZXBvbGwKICAgICAgICAgdGVzdF9kYm1fZ251CiAgICAgICAgIHRlc3RfbG9jYWxlCkBAIC0xNTYxLDEyICsxNjY5LDggQEAKICAgICAgICAgdGVzdF90dGtfZ3Vpb25seQogICAgICAgICB0ZXN0X3R0a190ZXh0b25seQogICAgICAgICB0ZXN0X211bHRpcHJvY2Vzc2luZwotICAgICAgICAiIiIsCi19Ci1fZXhwZWN0YXRpb25zWydmcmVlYnNkNSddID0gX2V4cGVjdGF0aW9uc1snZnJlZWJzZDQnXQotX2V4cGVjdGF0aW9uc1snZnJlZWJzZDYnXSA9IF9leHBlY3RhdGlvbnNbJ2ZyZWVic2Q0J10KLV9leHBlY3RhdGlvbnNbJ2ZyZWVic2Q3J10gPSBfZXhwZWN0YXRpb25zWydmcmVlYnNkNCddCi1fZXhwZWN0YXRpb25zWydmcmVlYnNkOCddID0gX2V4cGVjdGF0aW9uc1snZnJlZWJzZDQnXQorICAgICAgICAiIiIpLAorKQogCiBjbGFzcyBfRXhwZWN0ZWRTa2lwczoKICAgICBkZWYgX19pbml0X18oc2VsZik6CkBAIC0xNTc0LDkgKzE2NzgsMTMgQEAKICAgICAgICAgZnJvbSB0ZXN0IGltcG9ydCB0ZXN0X3RpbWVvdXQKIAogICAgICAgICBzZWxmLnZhbGlkID0gRmFsc2UKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtIGluIF9leHBlY3RhdGlvbnM6Ci0gICAgICAgICAgICBzID0gX2V4cGVjdGF0aW9uc1tzeXMucGxhdGZvcm1dCi0gICAgICAgICAgICBzZWxmLmV4cGVjdGVkID0gc2V0KHMuc3BsaXQoKSkKKyAgICAgICAgZXhwZWN0ZWQgPSBOb25lCisgICAgICAgIGZvciBpdGVtIGluIF9leHBlY3RhdGlvbnM6CisgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aChpdGVtWzBdKToKKyAgICAgICAgICAgICAgICBleHBlY3RlZCA9IGl0ZW1bMV0KKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBpZiBleHBlY3RlZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWQgPSBzZXQoZXhwZWN0ZWQuc3BsaXQoKSkKIAogICAgICAgICAgICAgIyBUaGVzZSBhcmUgYnJva2VuIHRlc3RzLCBmb3Igbm93IHNraXBwZWQgb24gZXZlcnkgcGxhdGZvcm0uCiAgICAgICAgICAgICAjIFhYWCBGaXggdGhlc2UhCkBAIC0xNjM2LDkgKzE3NDQsOCBAQAogICAgICAgICBURU1QRElSID0gb3MucGF0aC5hYnNwYXRoKFRFTVBESVIpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9zLm1rZGlyKFRFTVBESVIpCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVFWElTVDoKLSAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICBleGNlcHQgRmlsZUV4aXN0c0Vycm9yOgorICAgICAgICAgICAgcGFzcwogCiAgICAgIyBEZWZpbmUgYSB3cml0YWJsZSB0ZW1wIGRpciB0aGF0IHdpbGwgYmUgdXNlZCBhcyBjd2Qgd2hpbGUgcnVubmluZwogICAgICMgdGhlIHRlc3RzLiBUaGUgbmFtZSBvZiB0aGUgZGlyIGluY2x1ZGVzIHRoZSBwaWQgdG8gYWxsb3cgcGFyYWxsZWwKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3JlcGVyZi5weSBiL0xpYi90ZXN0L3JlcGVyZi5weQppbmRleCA3YzY4MjM0Li5lOTNiYWNkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC9yZXBlcmYucHkKKysrIGIvTGliL3Rlc3QvcmVwZXJmLnB5CkBAIC05LDEzICs5LDEzIEBACiAgICAgdGltZWZ1bmMoMTAsIHAuZmluZGFsbCwgcykKIAogZGVmIHRpbWVmdW5jKG4sIGZ1bmMsICphcmdzLCAqKmt3KToKLSAgICB0MCA9IHRpbWUuY2xvY2soKQorICAgIHQwID0gdGltZS5wZXJmX2NvdW50ZXIoKQogICAgIHRyeToKICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uobik6CiAgICAgICAgICAgICByZXN1bHQgPSBmdW5jKCphcmdzLCAqKmt3KQogICAgICAgICByZXR1cm4gcmVzdWx0CiAgICAgZmluYWxseToKLSAgICAgICAgdDEgPSB0aW1lLmNsb2NrKCkKKyAgICAgICAgdDEgPSB0aW1lLnBlcmZfY291bnRlcigpCiAgICAgICAgIGlmIG4gPiAxOgogICAgICAgICAgICAgcHJpbnQobiwgInRpbWVzIiwgZW5kPScgJykKICAgICAgICAgcHJpbnQoZnVuYy5fX25hbWVfXywgIiUuM2YiICUgKHQxLXQwKSwgIkNQVSBzZWNvbmRzIikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3NjcmlwdF9oZWxwZXIucHkgYi9MaWIvdGVzdC9zY3JpcHRfaGVscGVyLnB5CmluZGV4IGJhNDQ2Y2QuLmIwOWY0YmYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3NjcmlwdF9oZWxwZXIucHkKKysrIGIvTGliL3Rlc3Qvc2NyaXB0X2hlbHBlci5weQpAQCAtMSw2ICsxLDcgQEAKICMgQ29tbW9uIHV0aWxpdHkgZnVuY3Rpb25zIHVzZWQgYnkgdmFyaW91cyBzY3JpcHQgZXhlY3V0aW9uIHRlc3RzCiAjICBlLmcuIHRlc3RfY21kX2xpbmUsIHRlc3RfY21kX2xpbmVfc2NyaXB0IGFuZCB0ZXN0X3J1bnB5CiAKK2ltcG9ydCBpbXBvcnRsaWIKIGltcG9ydCBzeXMKIGltcG9ydCBvcwogaW1wb3J0IG9zLnBhdGgKQEAgLTU5LDExICs2MCwxMiBAQAogICAgICIiIgogICAgIHJldHVybiBfYXNzZXJ0X3B5dGhvbihGYWxzZSwgKmFyZ3MsICoqZW52X3ZhcnMpCiAKLWRlZiBzcGF3bl9weXRob24oKmFyZ3MpOgorZGVmIHNwYXduX3B5dGhvbigqYXJncywgKiprdyk6CiAgICAgY21kX2xpbmUgPSBbc3lzLmV4ZWN1dGFibGUsICctRSddCiAgICAgY21kX2xpbmUuZXh0ZW5kKGFyZ3MpCiAgICAgcmV0dXJuIHN1YnByb2Nlc3MuUG9wZW4oY21kX2xpbmUsIHN0ZGluPXN1YnByb2Nlc3MuUElQRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3cpCiAKIGRlZiBraWxsX3B5dGhvbihwKToKICAgICBwLnN0ZGluLmNsb3NlKCkKQEAgLTkyLDYgKzk0LDcgQEAKICAgICBzY3JpcHRfZmlsZSA9IG9wZW4oc2NyaXB0X25hbWUsICd3JywgZW5jb2Rpbmc9J3V0Zi04JykKICAgICBzY3JpcHRfZmlsZS53cml0ZShzb3VyY2UpCiAgICAgc2NyaXB0X2ZpbGUuY2xvc2UoKQorICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgcmV0dXJuIHNjcmlwdF9uYW1lCiAKIGRlZiBtYWtlX3ppcF9zY3JpcHQoemlwX2RpciwgemlwX2Jhc2VuYW1lLCBzY3JpcHRfbmFtZSwgbmFtZV9pbl96aXA9Tm9uZSk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC9zZXFfdGVzdHMucHkgYi9MaWIvdGVzdC9zZXFfdGVzdHMucHkKaW5kZXggZjY1NWMyOS4uZjE4NWE4MiAxMDA2NDQKLS0tIGEvTGliL3Rlc3Qvc2VxX3Rlc3RzLnB5CisrKyBiL0xpYi90ZXN0L3NlcV90ZXN0cy5weQpAQCAtNCw2ICs0LDcgQEAKIAogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgc3lzCitpbXBvcnQgcGlja2xlCiAKICMgVmFyaW91cyBpdGVyYWJsZXMKICMgVGhpcyBpcyB1c2VkIGZvciBjaGVja2luZyB0aGUgY29uc3RydWN0b3IgKGhlcmUgYW5kIGluIHRlc3RfZGVxdWUucHkpCkBAIC0zODgsMyArMzg5LDkgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmluZGV4KDAsIC00KnN5cy5tYXhzaXplLCA0KnN5cy5tYXhzaXplKSwgMikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYS5pbmRleCwgMCwgNCpzeXMubWF4c2l6ZSwtNCpzeXMubWF4c2l6ZSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYS5pbmRleCwgMiwgMCwgLTEwKQorCisgICAgZGVmIHRlc3RfcGlja2xlKHNlbGYpOgorICAgICAgICBsc3QgPSBzZWxmLnR5cGUydGVzdChbNCwgNSwgNiwgN10pCisgICAgICAgIGxzdDIgPSBwaWNrbGUubG9hZHMocGlja2xlLmR1bXBzKGxzdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHN0MiwgbHN0KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlkKGxzdDIpLCBpZChsc3QpKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3Qvc29ydHBlcmYucHkgYi9MaWIvdGVzdC9zb3J0cGVyZi5weQppbmRleCAwY2U4OGRlLi5hZjdjMGI0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC9zb3J0cGVyZi5weQorKysgYi9MaWIvdGVzdC9zb3J0cGVyZi5weQpAQCAtNTcsOSArNTcsOSBAQAogICAgIHN5cy5zdGRvdXQuZmx1c2goKQogCiBkZWYgZG9pdChMKToKLSAgICB0MCA9IHRpbWUuY2xvY2soKQorICAgIHQwID0gdGltZS5wZXJmX2NvdW50ZXIoKQogICAgIEwuc29ydCgpCi0gICAgdDEgPSB0aW1lLmNsb2NrKCkKKyAgICB0MSA9IHRpbWUucGVyZl9jb3VudGVyKCkKICAgICBwcmludCgiJTYuMmYiICUgKHQxLXQwKSwgZW5kPScgJykKICAgICBmbHVzaCgpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3NzbF9rZXkucGFzc3dkLnBlbSBiL0xpYi90ZXN0L3NzbF9rZXkucGFzc3dkLnBlbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNTI0NjcyCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3Qvc3NsX2tleS5wYXNzd2QucGVtCkBAIC0wLDAgKzEsMTggQEAKKy0tLS0tQkVHSU4gUlNBIFBSSVZBVEUgS0VZLS0tLS0KK1Byb2MtVHlwZTogNCxFTkNSWVBURUQKK0RFSy1JbmZvOiBERVMtRURFMy1DQkMsMUE4RDlEMkEwMkVDNjk4QQorCitrSlliZlo4TDBzZmU5T3R5M2d3MGFsb05uWTVFOGZlZ1JmUUxabE5veFRsNmpOdDBuSXdJOGtESjM2Q1pnUjljCit1M0ZESm0vS3FyZlVvejh2VytxRW5XaFNHN1FQWDJ3V0dQSGQ0Szk0WXovRmdyUnpaMERvSzdYeFhxOWdPdFZBCitBVkdRaG56MzJwKzZXaGZHc0NyOUFyWEV3UlpyVGsvRnZ6RVBhVTVmSGNvU2tyTlZBR1g4SXBTVmtTRHdFRFFyCitHdjE3K2Nmazk5VVYxT0N6YTZ5S0hvRmtUdHJDK1BaVTcxTG9tQmFiaXZTMk9jNEI5aFl1U1IyaEYwMXdUSFArCitZbFdOYWdaT09WdE56NG9LSzl4OWVOUXBtZlFYUXZQUFRmdXNleEtJYktmWnJNdkpveGNtMWdmY1owSC93SzZQCis2d21YU0czNXFNT096dENaTnRwZXJqczF3ekVCWHpueUs4UW1MY0FKQmprZmFyQUJKWDl2QkV6WlYwT1VLaHkrCitub09SRndIVGxscGhibXlkTGh1NmVoTFVaTUhQaHpBUzVVTjdzcnRwU044MWVlckRNeTBSTVVBd0E3L1BvZlgxCis5NE1lODVROGpQMFBDOUVUZHNKY1BxTHpBUEVURVl1MEVMZXdLUmNyZHlXaSt0bExGcnBFNUtUL3M1ZWNibDlsCis3QjYxVTRLZmQxUElYYy9zaUlOaFUzQTNiWUsrODQ1WXlVQXJVT25LZjFrRW94N3AxUnBEN3lGcVZUMDRsUlRvCitjaWJOS0FUQnVzWFN1QnJwMkc2R051aFdFT1NhZldDS0pRQXpnQ1lJcDZaVFYya2hoTVVHcHBjLzJIM0NGNmNPCit6WDBLdGxQVlpDN2hMa0I2SFQ4U3hZVXdGMXpxV1k3Ky9YUFBkYzM3TWVFWjg3UTNVdVp3cU9STFkrWjBocGd0CitMNUpYQkNva2xaaENBYU4yR3F3RkxYdEdpUlNSRkdZN3hYSWhiRFRsRTY1V3YxV0dHZ0RMTUtHRTFnT3ozeUFvCisyampHMSt5QUhKVWRFNjlYVEZIU3FTa3ZhbG9BMVcwM0xkTVhaOVZ1UUoveVNYQ2llNkFCQVE9PQorLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3NzbF9zZXJ2ZXJzLnB5IGIvTGliL3Rlc3Qvc3NsX3NlcnZlcnMucHkKaW5kZXggNzdjMDU0Mi4uODY4NjE1MyAxMDA2NDQKLS0tIGEvTGliL3Rlc3Qvc3NsX3NlcnZlcnMucHkKKysrIGIvTGliL3Rlc3Qvc3NsX3NlcnZlcnMucHkKQEAgLTk0LDcgKzk0LDEyIEBACiAgICAgICAgICIiIlNlcnZlIGEgR0VUIHJlcXVlc3QuIiIiCiAgICAgICAgIHNvY2sgPSBzZWxmLnJmaWxlLnJhdy5fc29jawogICAgICAgICBjb250ZXh0ID0gc29jay5jb250ZXh0Ci0gICAgICAgIGJvZHkgPSBwcHJpbnQucGZvcm1hdChjb250ZXh0LnNlc3Npb25fc3RhdHMoKSkKKyAgICAgICAgc3RhdHMgPSB7CisgICAgICAgICAgICAnc2Vzc2lvbl9jYWNoZSc6IGNvbnRleHQuc2Vzc2lvbl9zdGF0cygpLAorICAgICAgICAgICAgJ2NpcGhlcic6IHNvY2suY2lwaGVyKCksCisgICAgICAgICAgICAnY29tcHJlc3Npb24nOiBzb2NrLmNvbXByZXNzaW9uKCksCisgICAgICAgICAgICB9CisgICAgICAgIGJvZHkgPSBwcHJpbnQucGZvcm1hdChzdGF0cykKICAgICAgICAgYm9keSA9IGJvZHkuZW5jb2RlKCd1dGYtOCcpCiAgICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZSgyMDApCiAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoIkNvbnRlbnQtdHlwZSIsICJ0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04IikKQEAgLTE3Miw2ICsxNzcsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfZmFsc2UnLCBoZWxwPSdiZSBsZXNzIHZlcmJvc2UnKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1zJywgJy0tc3RhdHMnLCBkZXN0PSd1c2Vfc3RhdHNfaGFuZGxlcicsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBoZWxwPSdhbHdheXMgcmV0dXJuIHN0YXRzIHBhZ2UnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tY3VydmUtbmFtZScsIGRlc3Q9J2N1cnZlX25hbWUnLCB0eXBlPXN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nY3VydmUgbmFtZSBmb3IgRUMtYmFzZWQgRGlmZmllLUhlbGxtYW4nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tZGgnLCBkZXN0PSdkaF9maWxlJywgdHlwZT1zdHIsIGFjdGlvbj0nc3RvcmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nUEVNIGZpbGUgY29udGFpbmluZyBESCBwYXJhbWV0ZXJzJykKICAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQogCiAgICAgc3VwcG9ydC52ZXJib3NlID0gYXJncy52ZXJib3NlCkBAIC0xODIsNiArMTkyLDEwIEBACiAgICAgICAgIGhhbmRsZXJfY2xhc3Mucm9vdCA9IG9zLmdldGN3ZCgpCiAgICAgY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKICAgICBjb250ZXh0LmxvYWRfY2VydF9jaGFpbihDRVJURklMRSkKKyAgICBpZiBhcmdzLmN1cnZlX25hbWU6CisgICAgICAgIGNvbnRleHQuc2V0X2VjZGhfY3VydmUoYXJncy5jdXJ2ZV9uYW1lKQorICAgIGlmIGFyZ3MuZGhfZmlsZToKKyAgICAgICAgY29udGV4dC5sb2FkX2RoX3BhcmFtcyhhcmdzLmRoX2ZpbGUpCiAKICAgICBzZXJ2ZXIgPSBIVFRQU1NlcnZlcigoIiIsIGFyZ3MucG9ydCksIGhhbmRsZXJfY2xhc3MsIGNvbnRleHQpCiAgICAgaWYgYXJncy52ZXJib3NlOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3Qvc3RyaW5nX3Rlc3RzLnB5IGIvTGliL3Rlc3Qvc3RyaW5nX3Rlc3RzLnB5CmluZGV4IGQ3OTI1MjkuLmVlZWI0NTcgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3N0cmluZ190ZXN0cy5weQorKysgYi9MaWIvdGVzdC9zdHJpbmdfdGVzdHMucHkKQEAgLTI4LDYgKzI4LDExIEBACiAgICAgIyBDaGFuZ2UgaW4gc3ViY2xhc3NlcyB0byBjaGFuZ2UgdGhlIGJlaGF2aW91ciBvZiBmaXh0ZXN0dHlwZSgpCiAgICAgdHlwZTJ0ZXN0ID0gTm9uZQogCisgICAgIyBXaGV0aGVyIHRoZSAiY29udGFpbmVkIGl0ZW1zIiBvZiB0aGUgY29udGFpbmVyIGFyZSBpbnRlZ2VycyBpbgorICAgICMgcmFuZ2UoMCwgMjU2KSAoaS5lLiBieXRlcywgYnl0ZWFycmF5KSBvciBzdHJpbmdzIG9mIGxlbmd0aCAxCisgICAgIyAoc3RyKQorICAgIGNvbnRhaW5zX2J5dGVzID0gRmFsc2UKKwogICAgICMgQWxsIHRlc3RzIHBhc3MgdGhlaXIgYXJndW1lbnRzIHRvIHRoZSB0ZXN0aW5nIG1ldGhvZHMKICAgICAjIGFzIHN0ciBvYmplY3RzLiBmaXh0ZXN0dHlwZSgpIGNhbiBiZSB1c2VkIHRvIHByb3BhZ2F0ZQogICAgICMgdGhlc2UgYXJndW1lbnRzIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlCkBAIC00NywxMSArNTIsMTIgQEAKICAgICAgICAgICAgIHJldHVybiBvYmoKIAogICAgICMgY2hlY2sgdGhhdCBvYmoubWV0aG9kKCphcmdzKSByZXR1cm5zIHJlc3VsdAotICAgIGRlZiBjaGVja2VxdWFsKHNlbGYsIHJlc3VsdCwgb2JqLCBtZXRob2RuYW1lLCAqYXJncyk6CisgICAgZGVmIGNoZWNrZXF1YWwoc2VsZiwgcmVzdWx0LCBvYmosIG1ldGhvZG5hbWUsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIHJlc3VsdCA9IHNlbGYuZml4dHlwZShyZXN1bHQpCiAgICAgICAgIG9iaiA9IHNlbGYuZml4dHlwZShvYmopCiAgICAgICAgIGFyZ3MgPSBzZWxmLmZpeHR5cGUoYXJncykKLSAgICAgICAgcmVhbHJlc3VsdCA9IGdldGF0dHIob2JqLCBtZXRob2RuYW1lKSgqYXJncykKKyAgICAgICAga3dhcmdzID0ge2s6IHNlbGYuZml4dHlwZSh2KSBmb3Igayx2IGluIGt3YXJncy5pdGVtcygpfQorICAgICAgICByZWFscmVzdWx0ID0gZ2V0YXR0cihvYmosIG1ldGhvZG5hbWUpKCphcmdzLCAqKmt3YXJncykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAgICAgIHJlc3VsdCwKICAgICAgICAgICAgIHJlYWxyZXN1bHQKQEAgLTExNiw3ICsxMjIsMTEgQEAKICAgICAgICAgc2VsZi5jaGVja2VxdWFsKDAsICcnLCAnY291bnQnLCAneHgnLCBzeXMubWF4c2l6ZSwgMCkKIAogICAgICAgICBzZWxmLmNoZWNrcmFpc2VzKFR5cGVFcnJvciwgJ2hlbGxvJywgJ2NvdW50JykKLSAgICAgICAgc2VsZi5jaGVja3JhaXNlcyhUeXBlRXJyb3IsICdoZWxsbycsICdjb3VudCcsIDQyKQorCisgICAgICAgIGlmIHNlbGYuY29udGFpbnNfYnl0ZXM6CisgICAgICAgICAgICBzZWxmLmNoZWNrZXF1YWwoMCwgJ2hlbGxvJywgJ2NvdW50JywgNDIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmNoZWNrcmFpc2VzKFR5cGVFcnJvciwgJ2hlbGxvJywgJ2NvdW50JywgNDIpCiAKICAgICAgICAgIyBGb3IgYSB2YXJpZXR5IG9mIGNvbWJpbmF0aW9ucywKICAgICAgICAgIyAgICB2ZXJpZnkgdGhhdCBzdHIuY291bnQoKSBtYXRjaGVzIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb24KQEAgLTE2Miw3ICsxNzIsMTEgQEAKICAgICAgICAgc2VsZi5jaGVja2VxdWFsKCAyLCAncnJhcnJycnJycnJyYScsICdmaW5kJywgJ2EnLCBOb25lLCA2KQogCiAgICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVHlwZUVycm9yLCAnaGVsbG8nLCAnZmluZCcpCi0gICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVHlwZUVycm9yLCAnaGVsbG8nLCAnZmluZCcsIDQyKQorCisgICAgICAgIGlmIHNlbGYuY29udGFpbnNfYnl0ZXM6CisgICAgICAgICAgICBzZWxmLmNoZWNrZXF1YWwoLTEsICdoZWxsbycsICdmaW5kJywgNDIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmNoZWNrcmFpc2VzKFR5cGVFcnJvciwgJ2hlbGxvJywgJ2ZpbmQnLCA0MikKIAogICAgICAgICBzZWxmLmNoZWNrZXF1YWwoMCwgJycsICdmaW5kJywgJycpCiAgICAgICAgIHNlbGYuY2hlY2tlcXVhbCgtMSwgJycsICdmaW5kJywgJycsIDEsIDEpCkBAIC0yMTYsNyArMjMwLDExIEBACiAgICAgICAgIHNlbGYuY2hlY2tlcXVhbCggMiwgJ3JyYXJycnJycnJycmEnLCAncmZpbmQnLCAnYScsIE5vbmUsIDYpCiAKICAgICAgICAgc2VsZi5jaGVja3JhaXNlcyhUeXBlRXJyb3IsICdoZWxsbycsICdyZmluZCcpCi0gICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVHlwZUVycm9yLCAnaGVsbG8nLCAncmZpbmQnLCA0MikKKworICAgICAgICBpZiBzZWxmLmNvbnRhaW5zX2J5dGVzOgorICAgICAgICAgICAgc2VsZi5jaGVja2VxdWFsKC0xLCAnaGVsbG8nLCAncmZpbmQnLCA0MikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVHlwZUVycm9yLCAnaGVsbG8nLCAncmZpbmQnLCA0MikKIAogICAgICAgICAjIEZvciBhIHZhcmlldHkgb2YgY29tYmluYXRpb25zLAogICAgICAgICAjICAgIHZlcmlmeSB0aGF0IHN0ci5yZmluZCgpIG1hdGNoZXMgX19jb250YWluc19fCkBAIC0yNjMsNyArMjgxLDExIEBACiAgICAgICAgIHNlbGYuY2hlY2tlcXVhbCggMiwgJ3JyYXJycnJycnJycmEnLCAnaW5kZXgnLCAnYScsIE5vbmUsIDYpCiAKICAgICAgICAgc2VsZi5jaGVja3JhaXNlcyhUeXBlRXJyb3IsICdoZWxsbycsICdpbmRleCcpCi0gICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVHlwZUVycm9yLCAnaGVsbG8nLCAnaW5kZXgnLCA0MikKKworICAgICAgICBpZiBzZWxmLmNvbnRhaW5zX2J5dGVzOgorICAgICAgICAgICAgc2VsZi5jaGVja3JhaXNlcyhWYWx1ZUVycm9yLCAnaGVsbG8nLCAnaW5kZXgnLCA0MikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVHlwZUVycm9yLCAnaGVsbG8nLCAnaW5kZXgnLCA0MikKIAogICAgIGRlZiB0ZXN0X3JpbmRleChzZWxmKToKICAgICAgICAgc2VsZi5jaGVja2VxdWFsKDEyLCAnYWJjZGVmZ2hpYWJjJywgJ3JpbmRleCcsICcnKQpAQCAtMjg1LDcgKzMwNywxMSBAQAogICAgICAgICBzZWxmLmNoZWNrZXF1YWwoIDIsICdycmFycnJycnJycnJhJywgJ3JpbmRleCcsICdhJywgTm9uZSwgNikKIAogICAgICAgICBzZWxmLmNoZWNrcmFpc2VzKFR5cGVFcnJvciwgJ2hlbGxvJywgJ3JpbmRleCcpCi0gICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVHlwZUVycm9yLCAnaGVsbG8nLCAncmluZGV4JywgNDIpCisKKyAgICAgICAgaWYgc2VsZi5jb250YWluc19ieXRlczoKKyAgICAgICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVmFsdWVFcnJvciwgJ2hlbGxvJywgJ3JpbmRleCcsIDQyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5jaGVja3JhaXNlcyhUeXBlRXJyb3IsICdoZWxsbycsICdyaW5kZXgnLCA0MikKIAogICAgIGRlZiB0ZXN0X2xvd2VyKHNlbGYpOgogICAgICAgICBzZWxmLmNoZWNrZXF1YWwoJ2hlbGxvJywgJ0hlTExvJywgJ2xvd2VyJykKQEAgLTM2Myw2ICszODksMTcgQEAKICAgICAgICAgc2VsZi5jaGVja2VxdWFsKFsnYSddKjE4ICsgWydhQkxBSGEnXSwgKCdhQkxBSCcqMjApWzotNF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAnc3BsaXQnLCAnQkxBSCcsIDE4KQogCisgICAgICAgICMgd2l0aCBrZXl3b3JkIGFyZ3MKKyAgICAgICAgc2VsZi5jaGVja2VxdWFsKFsnYScsICdiJywgJ2MnLCAnZCddLCAnYXxifGN8ZCcsICdzcGxpdCcsIHNlcD0nfCcpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbChbJ2EnLCAnYnxjfGQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhfGJ8Y3xkJywgJ3NwbGl0JywgJ3wnLCBtYXhzcGxpdD0xKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoWydhJywgJ2J8Y3xkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAnYXxifGN8ZCcsICdzcGxpdCcsIHNlcD0nfCcsIG1heHNwbGl0PTEpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbChbJ2EnLCAnYnxjfGQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhfGJ8Y3xkJywgJ3NwbGl0JywgbWF4c3BsaXQ9MSwgc2VwPSd8JykKKyAgICAgICAgc2VsZi5jaGVja2VxdWFsKFsnYScsICdiIGMgZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2EgYiBjIGQnLCAnc3BsaXQnLCBtYXhzcGxpdD0xKQorCiAgICAgICAgICMgYXJndW1lbnQgdHlwZQogICAgICAgICBzZWxmLmNoZWNrcmFpc2VzKFR5cGVFcnJvciwgJ2hlbGxvJywgJ3NwbGl0JywgNDIsIDQyLCA0MikKIApAQCAtNDIwLDYgKzQ1NywxNyBAQAogICAgICAgICBzZWxmLmNoZWNrZXF1YWwoWydhQkxBSGEnXSArIFsnYSddKjE4LCAoJ2FCTEFIJyoyMClbOi00XSwKICAgICAgICAgICAgICAgICAgICAgICAgICdyc3BsaXQnLCAnQkxBSCcsIDE4KQogCisgICAgICAgICMgd2l0aCBrZXl3b3JkIGFyZ3MKKyAgICAgICAgc2VsZi5jaGVja2VxdWFsKFsnYScsICdiJywgJ2MnLCAnZCddLCAnYXxifGN8ZCcsICdyc3BsaXQnLCBzZXA9J3wnKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoWydhfGJ8YycsICdkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAnYXxifGN8ZCcsICdyc3BsaXQnLCAnfCcsIG1heHNwbGl0PTEpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbChbJ2F8YnxjJywgJ2QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhfGJ8Y3xkJywgJ3JzcGxpdCcsIHNlcD0nfCcsIG1heHNwbGl0PTEpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbChbJ2F8YnxjJywgJ2QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhfGJ8Y3xkJywgJ3JzcGxpdCcsIG1heHNwbGl0PTEsIHNlcD0nfCcpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbChbJ2EgYiBjJywgJ2QnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhIGIgYyBkJywgJ3JzcGxpdCcsIG1heHNwbGl0PTEpCisKICAgICAgICAgIyBhcmd1bWVudCB0eXBlCiAgICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVHlwZUVycm9yLCAnaGVsbG8nLCAncnNwbGl0JywgNDIsIDQyLCA0MikKIApAQCAtNjQzLDcgKzY5MSw3IEBACiAKICAgICAgICAgIyBjaGVjayB0aGF0IHRpdGxlY2FzZWQgY2hhcnMgYXJlIGxvd2VyZWQgY29ycmVjdGx5CiAgICAgICAgICMgXHUxZmZjIGlzIHRoZSB0aXRsZWNhc2VkIGNoYXIKLSAgICAgICAgc2VsZi5jaGVja2VxdWFsKCdcdTFmZmNcdTFmZjNcdTFmZjNcdTFmZjMnLAorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoJ1x1MDNhOVx1MDM5OVx1MWZmM1x1MWZmM1x1MWZmMycsCiAgICAgICAgICAgICAgICAgICAgICAgICAnXHUxZmYzXHUxZmYzXHUxZmZjXHUxZmZjJywgJ2NhcGl0YWxpemUnKQogICAgICAgICAjIGNoZWNrIHdpdGggY2FzZWQgbm9uLWxldHRlciBjaGFycwogICAgICAgICBzZWxmLmNoZWNrZXF1YWwoJ1x1MjRjNVx1MjRlOFx1MjRlM1x1MjRkN1x1MjRkZVx1MjRkZCcsCkBAIC05MDgsNyArOTU2LDE0IEBACiAgICAgICAgIHNlbGYuY2hlY2tlcXVhbChbJ2FiYycsICdkZWYnLCAnZ2hpJ10sICJhYmNcbmRlZlxyXG5naGlcbiIsICdzcGxpdGxpbmVzJykKICAgICAgICAgc2VsZi5jaGVja2VxdWFsKFsnYWJjJywgJ2RlZicsICdnaGknLCAnJ10sICJhYmNcbmRlZlxyXG5naGlcblxyIiwgJ3NwbGl0bGluZXMnKQogICAgICAgICBzZWxmLmNoZWNrZXF1YWwoWycnLCAnYWJjJywgJ2RlZicsICdnaGknLCAnJ10sICJcbmFiY1xuZGVmXHJcbmdoaVxuXHIiLCAnc3BsaXRsaW5lcycpCi0gICAgICAgIHNlbGYuY2hlY2tlcXVhbChbJ1xuJywgJ2FiY1xuJywgJ2RlZlxyXG4nLCAnZ2hpXG4nLCAnXHInXSwgIlxuYWJjXG5kZWZcclxuZ2hpXG5cciIsICdzcGxpdGxpbmVzJywgMSkKKyAgICAgICAgc2VsZi5jaGVja2VxdWFsKFsnJywgJ2FiYycsICdkZWYnLCAnZ2hpJywgJyddLAorICAgICAgICAgICAgICAgICAgICAgICAgIlxuYWJjXG5kZWZcclxuZ2hpXG5cciIsICdzcGxpdGxpbmVzJywgRmFsc2UpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbChbJ1xuJywgJ2FiY1xuJywgJ2RlZlxyXG4nLCAnZ2hpXG4nLCAnXHInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJcbmFiY1xuZGVmXHJcbmdoaVxuXHIiLCAnc3BsaXRsaW5lcycsIFRydWUpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbChbJycsICdhYmMnLCAnZGVmJywgJ2doaScsICcnXSwgIlxuYWJjXG5kZWZcclxuZ2hpXG5cciIsCisgICAgICAgICAgICAgICAgICAgICAgICAnc3BsaXRsaW5lcycsIGtlZXBlbmRzPUZhbHNlKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoWydcbicsICdhYmNcbicsICdkZWZcclxuJywgJ2doaVxuJywgJ1xyJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAiXG5hYmNcbmRlZlxyXG5naGlcblxyIiwgJ3NwbGl0bGluZXMnLCBrZWVwZW5kcz1UcnVlKQogCiAgICAgICAgIHNlbGYuY2hlY2tyYWlzZXMoVHlwZUVycm9yLCAnYWJjJywgJ3NwbGl0bGluZXMnLCA0MiwgNDIpCiAKQEAgLTExNDIsNiArMTE5NywxMCBAQAogICAgICAgICBzZWxmLmNoZWNrcmFpc2VzKFR5cGVFcnJvciwgJyUxMC4qZicsICdfX21vZF9fJywgKCdmb28nLCA0Mi4pKQogICAgICAgICBzZWxmLmNoZWNrcmFpc2VzKFZhbHVlRXJyb3IsICclMTAnLCAnX19tb2RfXycsICg0MiwpKQogCisgICAgICAgICMgT3V0cmFnZW91c2x5IGxhcmdlIHdpZHRoIG9yIHByZWNpc2lvbiBzaG91bGQgcmFpc2UgVmFsdWVFcnJvci4KKyAgICAgICAgc2VsZi5jaGVja3JhaXNlcyhWYWx1ZUVycm9yLCAnJSUlZGYnICUgKDIqKjY0KSwgJ19fbW9kX18nLCAoMy4yKSkKKyAgICAgICAgc2VsZi5jaGVja3JhaXNlcyhWYWx1ZUVycm9yLCAnJSUuJWRmJyAlICgyKio2NCksICdfX21vZF9fJywgKDMuMikpCisKICAgICBkZWYgdGVzdF9mbG9hdGZvcm1hdHRpbmcoc2VsZik6CiAgICAgICAgICMgZmxvYXQgZm9ybWF0dGluZwogICAgICAgICBmb3IgcHJlYyBpbiByYW5nZSgxMDApOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3Qvc3VwcG9ydC5weSBiL0xpYi90ZXN0L3N1cHBvcnQucHkKaW5kZXggNzkyOTNlZC4uMmQ3ZjcwZCAxMDA2NDQKLS0tIGEvTGliL3Rlc3Qvc3VwcG9ydC5weQorKysgYi9MaWIvdGVzdC9zdXBwb3J0LnB5CkBAIC0xNSw3ICsxNSw3IEBACiBpbXBvcnQgd2FybmluZ3MKIGltcG9ydCB1bml0dGVzdAogaW1wb3J0IGltcG9ydGxpYgotaW1wb3J0IGNvbGxlY3Rpb25zCitpbXBvcnQgY29sbGVjdGlvbnMuYWJjCiBpbXBvcnQgcmUKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgaW1wCkBAIC0yMyw2ICsyMyw4IEBACiBpbXBvcnQgc3lzY29uZmlnCiBpbXBvcnQgZm5tYXRjaAogaW1wb3J0IGxvZ2dpbmcuaGFuZGxlcnMKK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCB0ZW1wZmlsZQogCiB0cnk6CiAgICAgaW1wb3J0IF90aHJlYWQsIHRocmVhZGluZwpAQCAtMzQsMjYgKzM2LDQxIEBACiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgbXVsdGlwcm9jZXNzaW5nID0gTm9uZQogCit0cnk6CisgICAgaW1wb3J0IHpsaWIKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICB6bGliID0gTm9uZQorCit0cnk6CisgICAgaW1wb3J0IGJ6MgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGJ6MiA9IE5vbmUKKwordHJ5OgorICAgIGltcG9ydCBsem1hCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgbHptYSA9IE5vbmUKIAogX19hbGxfXyA9IFsKLSAgICAiRXJyb3IiLCAiVGVzdEZhaWxlZCIsICJSZXNvdXJjZURlbmllZCIsICJpbXBvcnRfbW9kdWxlIiwKLSAgICAidmVyYm9zZSIsICJ1c2VfcmVzb3VyY2VzIiwgIm1heF9tZW11c2UiLCAicmVjb3JkX29yaWdpbmFsX3N0ZG91dCIsCisgICAgIkVycm9yIiwgIlRlc3RGYWlsZWQiLCAiUmVzb3VyY2VEZW5pZWQiLCAiaW1wb3J0X21vZHVsZSIsICJ2ZXJib3NlIiwKKyAgICAidXNlX3Jlc291cmNlcyIsICJtYXhfbWVtdXNlIiwgInJlY29yZF9vcmlnaW5hbF9zdGRvdXQiLAogICAgICJnZXRfb3JpZ2luYWxfc3Rkb3V0IiwgInVubG9hZCIsICJ1bmxpbmsiLCAicm10cmVlIiwgImZvcmdldCIsCi0gICAgImlzX3Jlc291cmNlX2VuYWJsZWQiLCAicmVxdWlyZXMiLCAicmVxdWlyZXNfbWFjX3ZlciIsCi0gICAgImZpbmRfdW51c2VkX3BvcnQiLCAiYmluZF9wb3J0IiwKLSAgICAiZmNtcCIsICJpc19qeXRob24iLCAiVEVTVEZOIiwgIkhPU1QiLCAiRlVaWiIsICJTQVZFRENXRCIsICJ0ZW1wX2N3ZCIsCi0gICAgImZpbmRmaWxlIiwgInNvcnRkaWN0IiwgImNoZWNrX3N5bnRheF9lcnJvciIsICJvcGVuX3VybHJlc291cmNlIiwKLSAgICAiY2hlY2tfd2FybmluZ3MiLCAiQ2xlYW5JbXBvcnQiLCAiRW52aXJvbm1lbnRWYXJHdWFyZCIsCi0gICAgIlRyYW5zaWVudFJlc291cmNlIiwgImNhcHR1cmVkX291dHB1dCIsICJjYXB0dXJlZF9zdGRvdXQiLAotICAgICJjYXB0dXJlZF9zdGRpbiIsICJjYXB0dXJlZF9zdGRlcnIiLAotICAgICJ0aW1lX291dCIsICJzb2NrZXRfcGVlcl9yZXNldCIsICJpb2Vycm9yX3BlZXJfcmVzZXQiLAotICAgICJydW5fd2l0aF9sb2NhbGUiLCAndGVtcF91bWFzaycsICJ0cmFuc2llbnRfaW50ZXJuZXQiLAotICAgICJzZXRfbWVtbGltaXQiLCAiYmlnbWVtdGVzdCIsICJiaWdhZGRyc3BhY2V0ZXN0IiwgIkJhc2ljVGVzdFJ1bm5lciIsCi0gICAgInJ1bl91bml0dGVzdCIsICJydW5fZG9jdGVzdCIsICJ0aHJlYWRpbmdfc2V0dXAiLCAidGhyZWFkaW5nX2NsZWFudXAiLAotICAgICJyZWFwX2NoaWxkcmVuIiwgImNweXRob25fb25seSIsICJjaGVja19pbXBsX2RldGFpbCIsICJnZXRfYXR0cmlidXRlIiwKLSAgICAic3dhcF9pdGVtIiwgInN3YXBfYXR0ciIsICJyZXF1aXJlc19JRUVFXzc1NCIsCisgICAgImlzX3Jlc291cmNlX2VuYWJsZWQiLCAicmVxdWlyZXMiLCAicmVxdWlyZXNfZnJlZWJzZF92ZXJzaW9uIiwKKyAgICAicmVxdWlyZXNfbGludXhfdmVyc2lvbiIsICJyZXF1aXJlc19tYWNfdmVyIiwgImZpbmRfdW51c2VkX3BvcnQiLAorICAgICJiaW5kX3BvcnQiLCAiSVBWNl9FTkFCTEVEIiwgImlzX2p5dGhvbiIsICJURVNURk4iLCAiSE9TVCIsICJTQVZFRENXRCIsCisgICAgInRlbXBfY3dkIiwgImZpbmRmaWxlIiwgImNyZWF0ZV9lbXB0eV9maWxlIiwgInNvcnRkaWN0IiwKKyAgICAiY2hlY2tfc3ludGF4X2Vycm9yIiwgIm9wZW5fdXJscmVzb3VyY2UiLCAiY2hlY2tfd2FybmluZ3MiLCAiQ2xlYW5JbXBvcnQiLAorICAgICJFbnZpcm9ubWVudFZhckd1YXJkIiwgIlRyYW5zaWVudFJlc291cmNlIiwgImNhcHR1cmVkX3N0ZG91dCIsCisgICAgImNhcHR1cmVkX3N0ZGluIiwgImNhcHR1cmVkX3N0ZGVyciIsICJ0aW1lX291dCIsICJzb2NrZXRfcGVlcl9yZXNldCIsCisgICAgImlvZXJyb3JfcGVlcl9yZXNldCIsICJydW5fd2l0aF9sb2NhbGUiLCAndGVtcF91bWFzaycsCisgICAgInRyYW5zaWVudF9pbnRlcm5ldCIsICJzZXRfbWVtbGltaXQiLCAiYmlnbWVtdGVzdCIsICJiaWdhZGRyc3BhY2V0ZXN0IiwKKyAgICAiQmFzaWNUZXN0UnVubmVyIiwgInJ1bl91bml0dGVzdCIsICJydW5fZG9jdGVzdCIsICJ0aHJlYWRpbmdfc2V0dXAiLAorICAgICJ0aHJlYWRpbmdfY2xlYW51cCIsICJyZWFwX2NoaWxkcmVuIiwgImNweXRob25fb25seSIsICJjaGVja19pbXBsX2RldGFpbCIsCisgICAgImdldF9hdHRyaWJ1dGUiLCAic3dhcF9pdGVtIiwgInN3YXBfYXR0ciIsICJyZXF1aXJlc19JRUVFXzc1NCIsCiAgICAgIlRlc3RIYW5kbGVyIiwgIk1hdGNoZXIiLCAiY2FuX3N5bWxpbmsiLCAic2tpcF91bmxlc3Nfc3ltbGluayIsCi0gICAgImltcG9ydF9mcmVzaF9tb2R1bGUiLCAiZmFpbGZhc3QiLCAicnVuX3dpdGhfdHoiCisgICAgInNraXBfdW5sZXNzX3hhdHRyIiwgImltcG9ydF9mcmVzaF9tb2R1bGUiLCAicmVxdWlyZXNfemxpYiIsCisgICAgIlBJUEVfTUFYX1NJWkUiLCAiZmFpbGZhc3QiLCAiYW50aWNpcGF0ZV9mYWlsdXJlIiwgInJ1bl93aXRoX3R6IiwKKyAgICAicmVxdWlyZXNfYnoyIiwgInJlcXVpcmVzX2x6bWEiCiAgICAgXQogCiBjbGFzcyBFcnJvcihFeGNlcHRpb24pOgpAQCAtMTI0LDYgKzE0MSwxNyBAQAogICAgIHJldHVybiBzYXZlZAogCiAKK2RlZiBhbnRpY2lwYXRlX2ZhaWx1cmUoY29uZGl0aW9uKToKKyAgICAiIiJEZWNvcmF0b3IgdG8gbWFyayBhIHRlc3QgdGhhdCBpcyBrbm93biB0byBiZSBicm9rZW4gaW4gc29tZSBjYXNlcworCisgICAgICAgQW55IHVzZSBvZiB0aGlzIGRlY29yYXRvciBzaG91bGQgaGF2ZSBhIGNvbW1lbnQgaWRlbnRpZnlpbmcgdGhlCisgICAgICAgYXNzb2NpYXRlZCB0cmFja2VyIGlzc3VlLgorICAgICIiIgorICAgIGlmIGNvbmRpdGlvbjoKKyAgICAgICAgcmV0dXJuIHVuaXR0ZXN0LmV4cGVjdGVkRmFpbHVyZQorICAgIHJldHVybiBsYW1iZGEgZjogZgorCisKIGRlZiBpbXBvcnRfZnJlc2hfbW9kdWxlKG5hbWUsIGZyZXNoPSgpLCBibG9ja2VkPSgpLCBkZXByZWNhdGVkPUZhbHNlKToKICAgICAiIiJJbXBvcnRzIGFuZCByZXR1cm5zIGEgbW9kdWxlLCBkZWxpYmVyYXRlbHkgYnlwYXNzaW5nIHRoZSBzeXMubW9kdWxlcyBjYWNoZQogICAgIGFuZCBpbXBvcnRpbmcgYSBmcmVzaCBjb3B5IG9mIHRoZSBtb2R1bGUuIE9uY2UgdGhlIGltcG9ydCBpcyBjb21wbGV0ZSwKQEAgLTE2Nyw4ICsxOTUsNyBAQAogICAgIHRyeToKICAgICAgICAgYXR0cmlidXRlID0gZ2V0YXR0cihvYmosIG5hbWUpCiAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdCgibW9kdWxlICVzIGhhcyBubyBhdHRyaWJ1dGUgJXMiICUgKAotICAgICAgICAgICAgb2JqLl9fbmFtZV9fLCBuYW1lKSkKKyAgICAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoIm9iamVjdCAlciBoYXMgbm8gYXR0cmlidXRlICVyIiAlIChvYmosIG5hbWUpKQogICAgIGVsc2U6CiAgICAgICAgIHJldHVybiBhdHRyaWJ1dGUKIApAQCAtMjA5LDggKzIzNiw3IEBACiAgICAgdHJ5OgogICAgICAgICBzaHV0aWwucm10cmVlKHBhdGgpCiAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyb3I6Ci0gICAgICAgICMgVW5peCByZXR1cm5zIEVOT0VOVCwgV2luZG93cyByZXR1cm5zIEVTUkNILgotICAgICAgICBpZiBlcnJvci5lcnJubyBub3QgaW4gKGVycm5vLkVOT0VOVCwgZXJybm8uRVNSQ0gpOgorICAgICAgICBpZiBlcnJvci5lcnJubyAhPSBlcnJuby5FTk9FTlQ6CiAgICAgICAgICAgICByYWlzZQogCiBkZWYgbWFrZV9sZWdhY3lfcHljKHNvdXJjZSk6CkBAIC0yOTUsOSArMzIxLDUyIEBACiAgICAgICAgIHJldHVybgogICAgIGlmIG5vdCBpc19yZXNvdXJjZV9lbmFibGVkKHJlc291cmNlKToKICAgICAgICAgaWYgbXNnIGlzIE5vbmU6Ci0gICAgICAgICAgICBtc2cgPSAiVXNlIG9mIHRoZSBgJXMnIHJlc291cmNlIG5vdCBlbmFibGVkIiAlIHJlc291cmNlCisgICAgICAgICAgICBtc2cgPSAiVXNlIG9mIHRoZSAlciByZXNvdXJjZSBub3QgZW5hYmxlZCIgJSByZXNvdXJjZQogICAgICAgICByYWlzZSBSZXNvdXJjZURlbmllZChtc2cpCiAKK2RlZiBfcmVxdWlyZXNfdW5peF92ZXJzaW9uKHN5c25hbWUsIG1pbl92ZXJzaW9uKToKKyAgICAiIiJEZWNvcmF0b3IgcmFpc2luZyBTa2lwVGVzdCBpZiB0aGUgT1MgaXMgYHN5c25hbWVgIGFuZCB0aGUgdmVyc2lvbiBpcyBsZXNzCisgICAgdGhhbiBgbWluX3ZlcnNpb25gLgorCisgICAgRm9yIGV4YW1wbGUsIEBfcmVxdWlyZXNfdW5peF92ZXJzaW9uKCdGcmVlQlNEJywgKDcsIDIpKSByYWlzZXMgU2tpcFRlc3QgaWYKKyAgICB0aGUgRnJlZUJTRCB2ZXJzaW9uIGlzIGxlc3MgdGhhbiA3LjIuCisgICAgIiIiCisgICAgZGVmIGRlY29yYXRvcihmdW5jKToKKyAgICAgICAgQGZ1bmN0b29scy53cmFwcyhmdW5jKQorICAgICAgICBkZWYgd3JhcHBlcigqYXJncywgKiprdyk6CisgICAgICAgICAgICBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSBzeXNuYW1lOgorICAgICAgICAgICAgICAgIHZlcnNpb25fdHh0ID0gcGxhdGZvcm0ucmVsZWFzZSgpLnNwbGl0KCctJywgMSlbMF0KKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHZlcnNpb24gPSB0dXBsZShtYXAoaW50LCB2ZXJzaW9uX3R4dC5zcGxpdCgnLicpKSkKKyAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGlmIHZlcnNpb24gPCBtaW5fdmVyc2lvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1pbl92ZXJzaW9uX3R4dCA9ICcuJy5qb2luKG1hcChzdHIsIG1pbl92ZXJzaW9uKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyB2ZXJzaW9uICVzIG9yIGhpZ2hlciByZXF1aXJlZCwgbm90ICVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHN5c25hbWUsIG1pbl92ZXJzaW9uX3R4dCwgdmVyc2lvbl90eHQpKQorICAgICAgICByZXR1cm4gd3JhcHBlcgorICAgIHJldHVybiBkZWNvcmF0b3IKKworZGVmIHJlcXVpcmVzX2ZyZWVic2RfdmVyc2lvbigqbWluX3ZlcnNpb24pOgorICAgICIiIkRlY29yYXRvciByYWlzaW5nIFNraXBUZXN0IGlmIHRoZSBPUyBpcyBGcmVlQlNEIGFuZCB0aGUgRnJlZUJTRCB2ZXJzaW9uIGlzCisgICAgbGVzcyB0aGFuIGBtaW5fdmVyc2lvbmAuCisKKyAgICBGb3IgZXhhbXBsZSwgQHJlcXVpcmVzX2ZyZWVic2RfdmVyc2lvbig3LCAyKSByYWlzZXMgU2tpcFRlc3QgaWYgdGhlIEZyZWVCU0QKKyAgICB2ZXJzaW9uIGlzIGxlc3MgdGhhbiA3LjIuCisgICAgIiIiCisgICAgcmV0dXJuIF9yZXF1aXJlc191bml4X3ZlcnNpb24oJ0ZyZWVCU0QnLCBtaW5fdmVyc2lvbikKKworZGVmIHJlcXVpcmVzX2xpbnV4X3ZlcnNpb24oKm1pbl92ZXJzaW9uKToKKyAgICAiIiJEZWNvcmF0b3IgcmFpc2luZyBTa2lwVGVzdCBpZiB0aGUgT1MgaXMgTGludXggYW5kIHRoZSBMaW51eCB2ZXJzaW9uIGlzCisgICAgbGVzcyB0aGFuIGBtaW5fdmVyc2lvbmAuCisKKyAgICBGb3IgZXhhbXBsZSwgQHJlcXVpcmVzX2xpbnV4X3ZlcnNpb24oMiwgNiwgMzIpIHJhaXNlcyBTa2lwVGVzdCBpZiB0aGUgTGludXgKKyAgICB2ZXJzaW9uIGlzIGxlc3MgdGhhbiAyLjYuMzIuCisgICAgIiIiCisgICAgcmV0dXJuIF9yZXF1aXJlc191bml4X3ZlcnNpb24oJ0xpbnV4JywgbWluX3ZlcnNpb24pCisKIGRlZiByZXF1aXJlc19tYWNfdmVyKCptaW5fdmVyc2lvbik6CiAgICAgIiIiRGVjb3JhdG9yIHJhaXNpbmcgU2tpcFRlc3QgaWYgdGhlIE9TIGlzIE1hYyBPUyBYIGFuZCB0aGUgT1MgWAogICAgIHZlcnNpb24gaWYgbGVzcyB0aGFuIG1pbl92ZXJzaW9uLgpAQCAtMzI1LDYgKzM5NCw3IEBACiAgICAgICAgIHJldHVybiB3cmFwcGVyCiAgICAgcmV0dXJuIGRlY29yYXRvcgogCisKIEhPU1QgPSAnbG9jYWxob3N0JwogCiBkZWYgZmluZF91bnVzZWRfcG9ydChmYW1pbHk9c29ja2V0LkFGX0lORVQsIHNvY2t0eXBlPXNvY2tldC5TT0NLX1NUUkVBTSk6CkBAIC00MjAsMjkgKzQ5MCw0MSBAQAogICAgIHBvcnQgPSBzb2NrLmdldHNvY2tuYW1lKClbMV0KICAgICByZXR1cm4gcG9ydAogCi1GVVpaID0gMWUtNgotCi1kZWYgZmNtcCh4LCB5KTogIyBmdXp6eSBjb21wYXJpc29uIGZ1bmN0aW9uCi0gICAgaWYgaXNpbnN0YW5jZSh4LCBmbG9hdCkgb3IgaXNpbnN0YW5jZSh5LCBmbG9hdCk6CitkZWYgX2lzX2lwdjZfZW5hYmxlZCgpOgorICAgICIiIkNoZWNrIHdoZXRoZXIgSVB2NiBpcyBlbmFibGVkIG9uIHRoaXMgaG9zdC4iIiIKKyAgICBpZiBzb2NrZXQuaGFzX2lwdjY6CisgICAgICAgIHNvY2sgPSBOb25lCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIGZ1enogPSAoYWJzKHgpICsgYWJzKHkpKSAqIEZVWloKLSAgICAgICAgICAgIGlmIGFicyh4LXkpIDw9IGZ1eno6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgc29jayA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQ2LCBzb2NrZXQuU09DS19TVFJFQU0pCisgICAgICAgICAgICBzb2NrLmJpbmQoKCc6OjEnLCAwKSkKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGV4Y2VwdCAoc29ja2V0LmVycm9yLCBzb2NrZXQuZ2FpZXJyb3IpOgogICAgICAgICAgICAgcGFzcwotICAgIGVsaWYgdHlwZSh4KSA9PSB0eXBlKHkpIGFuZCBpc2luc3RhbmNlKHgsICh0dXBsZSwgbGlzdCkpOgotICAgICAgICBmb3IgaSBpbiByYW5nZShtaW4obGVuKHgpLCBsZW4oeSkpKToKLSAgICAgICAgICAgIG91dGNvbWUgPSBmY21wKHhbaV0sIHlbaV0pCi0gICAgICAgICAgICBpZiBvdXRjb21lICE9IDA6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG91dGNvbWUKLSAgICAgICAgcmV0dXJuIChsZW4oeCkgPiBsZW4oeSkpIC0gKGxlbih4KSA8IGxlbih5KSkKLSAgICByZXR1cm4gKHggPiB5KSAtICh4IDwgeSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGlmIHNvY2s6CisgICAgICAgICAgICAgICAgc29jay5jbG9zZSgpCisgICAgcmV0dXJuIEZhbHNlCisKK0lQVjZfRU5BQkxFRCA9IF9pc19pcHY2X2VuYWJsZWQoKQorCisKKyMgQSBjb25zdGFudCBsaWtlbHkgbGFyZ2VyIHRoYW4gdGhlIHVuZGVybHlpbmcgT1MgcGlwZSBidWZmZXIgc2l6ZS4KKyMgV2luZG93cyBsaW1pdCBzZWVtcyB0byBiZSBhcm91bmQgNTEyQiwgYW5kIG1vc3QgVW5peCBrZXJuZWxzIGhhdmUgYSA2NEsgcGlwZQorIyBidWZmZXIgc2l6ZTogdGFrZSAxTSB0byBiZSBzdXJlLgorUElQRV9NQVhfU0laRSA9IDEwMjQgKiAxMDI0CisKIAogIyBkZWNvcmF0b3IgZm9yIHNraXBwaW5nIHRlc3RzIG9uIG5vbi1JRUVFIDc1NCBwbGF0Zm9ybXMKIHJlcXVpcmVzX0lFRUVfNzU0ID0gdW5pdHRlc3Quc2tpcFVubGVzcygKICAgICBmbG9hdC5fX2dldGZvcm1hdF9fKCJkb3VibGUiKS5zdGFydHN3aXRoKCJJRUVFIiksCiAgICAgInRlc3QgcmVxdWlyZXMgSUVFRSA3NTQgZG91YmxlcyIpCiAKK3JlcXVpcmVzX3psaWIgPSB1bml0dGVzdC5za2lwVW5sZXNzKHpsaWIsICdyZXF1aXJlcyB6bGliJykKKworcmVxdWlyZXNfYnoyID0gdW5pdHRlc3Quc2tpcFVubGVzcyhiejIsICdyZXF1aXJlcyBiejInKQorCityZXF1aXJlc19sem1hID0gdW5pdHRlc3Quc2tpcFVubGVzcyhsem1hLCAncmVxdWlyZXMgbHptYScpCisKIGlzX2p5dGhvbiA9IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdqYXZhJykKIAogIyBGaWxlbmFtZSB1c2VkIGZvciB0ZXN0aW5nCkBAIC01NDMsMTQgKzYyNSwxNSBAQAogICAgICAgICAgICAgcm10cmVlKG5hbWUpCiAKIAotQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKLWRlZiB0ZW1wX3VtYXNrKHVtYXNrKToKLSAgICAiIiJDb250ZXh0IG1hbmFnZXIgdGhhdCB0ZW1wb3JhcmlseSBzZXRzIHRoZSBwcm9jZXNzIHVtYXNrLiIiIgotICAgIG9sZG1hc2sgPSBvcy51bWFzayh1bWFzaykKLSAgICB0cnk6Ci0gICAgICAgIHlpZWxkCi0gICAgZmluYWxseToKLSAgICAgICAgb3MudW1hc2sob2xkbWFzaykKK2lmIGhhc2F0dHIob3MsICJ1bWFzayIpOgorICAgIEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCisgICAgZGVmIHRlbXBfdW1hc2sodW1hc2spOgorICAgICAgICAiIiJDb250ZXh0IG1hbmFnZXIgdGhhdCB0ZW1wb3JhcmlseSBzZXRzIHRoZSBwcm9jZXNzIHVtYXNrLiIiIgorICAgICAgICBvbGRtYXNrID0gb3MudW1hc2sodW1hc2spCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy51bWFzayhvbGRtYXNrKQogCiAKIGRlZiBmaW5kZmlsZShmaWxlLCBoZXJlPV9fZmlsZV9fLCBzdWJkaXI9Tm9uZSk6CkBAIC01NjgsNiArNjUxLDExIEBACiAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGZuKTogcmV0dXJuIGZuCiAgICAgcmV0dXJuIGZpbGUKIAorZGVmIGNyZWF0ZV9lbXB0eV9maWxlKGZpbGVuYW1lKToKKyAgICAiIiJDcmVhdGUgYW4gZW1wdHkgZmlsZS4gSWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMsIHRydW5jYXRlIGl0LiIiIgorICAgIGZkID0gb3Mub3BlbihmaWxlbmFtZSwgb3MuT19XUk9OTFkgfCBvcy5PX0NSRUFUIHwgb3MuT19UUlVOQykKKyAgICBvcy5jbG9zZShmZCkKKwogZGVmIHNvcnRkaWN0KGRpY3QpOgogICAgICJMaWtlIHJlcHIoZGljdCksIGJ1dCBpbiBzb3J0ZWQgb3JkZXIuIgogICAgIGl0ZW1zID0gc29ydGVkKGRpY3QuaXRlbXMoKSkKQEAgLTYzMiw3ICs3MjAsNyBAQAogICAgIGYgPSBjaGVja192YWxpZF9maWxlKGZuKQogICAgIGlmIGYgaXMgbm90IE5vbmU6CiAgICAgICAgIHJldHVybiBmCi0gICAgcmFpc2UgVGVzdEZhaWxlZCgnaW52YWxpZCByZXNvdXJjZSAiJXMiJyAlIGZuKQorICAgIHJhaXNlIFRlc3RGYWlsZWQoJ2ludmFsaWQgcmVzb3VyY2UgJXInICUgZm4pCiAKIAogY2xhc3MgV2FybmluZ3NSZWNvcmRlcihvYmplY3QpOgpAQCAtNzUzLDcgKzg0MSw3IEBACiAgICAgICAgIHN5cy5tb2R1bGVzLnVwZGF0ZShzZWxmLm9yaWdpbmFsX21vZHVsZXMpCiAKIAotY2xhc3MgRW52aXJvbm1lbnRWYXJHdWFyZChjb2xsZWN0aW9ucy5NdXRhYmxlTWFwcGluZyk6CitjbGFzcyBFbnZpcm9ubWVudFZhckd1YXJkKGNvbGxlY3Rpb25zLmFiYy5NdXRhYmxlTWFwcGluZyk6CiAKICAgICAiIiJDbGFzcyB0byBoZWxwIHByb3RlY3QgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHByb3Blcmx5LiAgQ2FuIGJlIHVzZWQgYXMKICAgICBhIGNvbnRleHQgbWFuYWdlci4iIiIKQEAgLTg4NCw3ICs5NzIsNyBAQAogICAgICAgICAoJ1dTQU5PX0RBVEEnLCAxMTAwNCksCiAgICAgXQogCi0gICAgZGVuaWVkID0gUmVzb3VyY2VEZW5pZWQoIlJlc291cmNlICclcycgaXMgbm90IGF2YWlsYWJsZSIgJSByZXNvdXJjZV9uYW1lKQorICAgIGRlbmllZCA9IFJlc291cmNlRGVuaWVkKCJSZXNvdXJjZSAlciBpcyBub3QgYXZhaWxhYmxlIiAlIHJlc291cmNlX25hbWUpCiAgICAgY2FwdHVyZWRfZXJybm9zID0gZXJybm9zCiAgICAgZ2FpX2Vycm5vcyA9IFtdCiAgICAgaWYgbm90IGNhcHR1cmVkX2Vycm5vczoKQEAgLTk3Myw2ICsxMDYxLDE2IEBACiAgICAgZ2MuY29sbGVjdCgpCiAgICAgZ2MuY29sbGVjdCgpCiAKK0Bjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCitkZWYgZGlzYWJsZV9nYygpOgorICAgIGhhdmVfZ2MgPSBnYy5pc2VuYWJsZWQoKQorICAgIGdjLmRpc2FibGUoKQorICAgIHRyeToKKyAgICAgICAgeWllbGQKKyAgICBmaW5hbGx5OgorICAgICAgICBpZiBoYXZlX2djOgorICAgICAgICAgICAgZ2MuZW5hYmxlKCkKKwogCiBkZWYgcHl0aG9uX2lzX29wdGltaXplZCgpOgogICAgICIiIkZpbmQgaWYgUHl0aG9uIHdhcyBidWlsdCB3aXRoIG9wdGltaXphdGlvbnMuIiIiCkBAIC05ODEsNyArMTA3OSw3IEBACiAgICAgZm9yIG9wdCBpbiBjZmxhZ3Muc3BsaXQoKToKICAgICAgICAgaWYgb3B0LnN0YXJ0c3dpdGgoJy1PJyk6CiAgICAgICAgICAgICBmaW5hbF9vcHQgPSBvcHQKLSAgICByZXR1cm4gZmluYWxfb3B0IGFuZCBmaW5hbF9vcHQgIT0gJy1PMCcKKyAgICByZXR1cm4gZmluYWxfb3B0ICE9ICcnIGFuZCBmaW5hbF9vcHQgIT0gJy1PMCcKIAogCiAjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTEwODcsNDEgKzExODUsMzUgQEAKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignTWVtb3J5IGxpbWl0ICVyIHRvbyBsb3cgdG8gYmUgdXNlZnVsJyAlIChsaW1pdCwpKQogICAgIG1heF9tZW11c2UgPSBtZW1saW1pdAogCi1kZWYgX21lbW9yeV93YXRjaGRvZyhzdGFydF9ldnQsIGZpbmlzaF9ldnQsIHBlcmlvZD0xMC4wKToKLSAgICAiIiJBIGZ1bmN0aW9uIHdoaWNoIHBlcmlvZGljYWxseSB3YXRjaGVzIHRoZSBwcm9jZXNzJyBtZW1vcnkgY29uc3VtcHRpb24KK2NsYXNzIF9NZW1vcnlXYXRjaGRvZzoKKyAgICAiIiJBbiBvYmplY3Qgd2hpY2ggcGVyaW9kaWNhbGx5IHdhdGNoZXMgdGhlIHByb2Nlc3MnIG1lbW9yeSBjb25zdW1wdGlvbgogICAgIGFuZCBwcmludHMgaXQgb3V0LgogICAgICIiIgotICAgICMgWFhYOiBiZWNhdXNlIG9mIHRoZSBHSUwsIGFuZCBiZWNhdXNlIHRoZSB2ZXJ5IGxvbmcgb3BlcmF0aW9ucyB0ZXN0ZWQKLSAgICAjIGluIG1vc3QgYmlnbWVtIHRlc3RzIGFyZSB1bmludGVycnVwdGlibGUsIHRoZSBsb29wIGJlbG93IGdldHMgd29rZW4gdXAKLSAgICAjIG11Y2ggbGVzcyBvZnRlbiB0aGFuIGV4cGVjdGVkLgotICAgICMgVGhlIHBvbGxpbmcgY29kZSBzaG91bGQgYmUgcmV3cml0dGVuIGluIHJhdyBDLCB3aXRob3V0IGhvbGRpbmcgdGhlIEdJTCwKLSAgICAjIGFuZCBwdXNoIHJlc3VsdHMgb250byBhbiBhbm9ueW1vdXMgcGlwZS4KLSAgICB0cnk6Ci0gICAgICAgIHBhZ2Vfc2l6ZSA9IG9zLnN5c2NvbmYoJ1NDX1BBR0VTSVpFJykKLSAgICBleGNlcHQgKFZhbHVlRXJyb3IsIEF0dHJpYnV0ZUVycm9yKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5wcm9jZmlsZSA9ICcvcHJvYy97cGlkfS9zdGF0bScuZm9ybWF0KHBpZD1vcy5nZXRwaWQoKSkKKyAgICAgICAgc2VsZi5zdGFydGVkID0gRmFsc2UKKworICAgIGRlZiBzdGFydChzZWxmKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcGFnZV9zaXplID0gb3Muc3lzY29uZignU0NfUEFHRV9TSVpFJykKLSAgICAgICAgZXhjZXB0IChWYWx1ZUVycm9yLCBBdHRyaWJ1dGVFcnJvcik6Ci0gICAgICAgICAgICBwYWdlX3NpemUgPSA0MDk2Ci0gICAgcHJvY2ZpbGUgPSAnL3Byb2Mve3BpZH0vc3RhdG0nLmZvcm1hdChwaWQ9b3MuZ2V0cGlkKCkpCi0gICAgdHJ5OgotICAgICAgICBmID0gb3Blbihwcm9jZmlsZSwgJ3JiJykKLSAgICBleGNlcHQgSU9FcnJvciBhcyBlOgotICAgICAgICB3YXJuaW5ncy53YXJuKCcvcHJvYyBub3QgYXZhaWxhYmxlIGZvciBzdGF0czoge30nLmZvcm1hdChlKSwKLSAgICAgICAgICAgICAgICAgICAgICBSdW50aW1lV2FybmluZykKLSAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCi0gICAgICAgIHJldHVybgotICAgIHdpdGggZjoKLSAgICAgICAgc3RhcnRfZXZ0LnNldCgpCi0gICAgICAgIG9sZF9kYXRhID0gLTEKLSAgICAgICAgd2hpbGUgbm90IGZpbmlzaF9ldnQud2FpdChwZXJpb2QpOgotICAgICAgICAgICAgZi5zZWVrKDApCi0gICAgICAgICAgICBzdGF0bSA9IGYucmVhZCgpLmRlY29kZSgnYXNjaWknKQotICAgICAgICAgICAgZGF0YSA9IGludChzdGF0bS5zcGxpdCgpWzVdKQotICAgICAgICAgICAgaWYgZGF0YSAhPSBvbGRfZGF0YToKLSAgICAgICAgICAgICAgICBvbGRfZGF0YSA9IGRhdGEKLSAgICAgICAgICAgICAgICBwcmludCgiIC4uLiBwcm9jZXNzIGRhdGEgc2l6ZToge2RhdGE6LjFmfUciCi0gICAgICAgICAgICAgICAgICAgICAgIC5mb3JtYXQoZGF0YT1kYXRhICogcGFnZV9zaXplIC8gKDEwMjQgKiogMykpKQorICAgICAgICAgICAgZiA9IG9wZW4oc2VsZi5wcm9jZmlsZSwgJ3InKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybignL3Byb2Mgbm90IGF2YWlsYWJsZSBmb3Igc3RhdHM6IHt9Jy5mb3JtYXQoZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIFJ1bnRpbWVXYXJuaW5nKQorICAgICAgICAgICAgc3lzLnN0ZGVyci5mbHVzaCgpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICB3YXRjaGRvZ19zY3JpcHQgPSBmaW5kZmlsZSgibWVtb3J5X3dhdGNoZG9nLnB5IikKKyAgICAgICAgc2VsZi5tZW1fd2F0Y2hkb2cgPSBzdWJwcm9jZXNzLlBvcGVuKFtzeXMuZXhlY3V0YWJsZSwgd2F0Y2hkb2dfc2NyaXB0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGluPWYsIHN0ZGVycj1zdWJwcm9jZXNzLkRFVk5VTEwpCisgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBzZWxmLnN0YXJ0ZWQgPSBUcnVlCisKKyAgICBkZWYgc3RvcChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5zdGFydGVkOgorICAgICAgICAgICAgc2VsZi5tZW1fd2F0Y2hkb2cudGVybWluYXRlKCkKKyAgICAgICAgICAgIHNlbGYubWVtX3dhdGNoZG9nLndhaXQoKQorCiAKIGRlZiBiaWdtZW10ZXN0KHNpemUsIG1lbXVzZSwgZHJ5X3J1bj1UcnVlKToKICAgICAiIiJEZWNvcmF0b3IgZm9yIGJpZ21lbSB0ZXN0cy4KQEAgLTExNDgsMjcgKzEyNDAsMjAgQEAKICAgICAgICAgICAgICAgICAgICAgIm5vdCBlbm91Z2ggbWVtb3J5OiAlLjFmRyBtaW5pbXVtIG5lZWRlZCIKICAgICAgICAgICAgICAgICAgICAgJSAoc2l6ZSAqIG1lbXVzZSAvICgxMDI0ICoqIDMpKSkKIAotICAgICAgICAgICAgaWYgcmVhbF9tYXhfbWVtdXNlIGFuZCB2ZXJib3NlIGFuZCB0aHJlYWRpbmc6CisgICAgICAgICAgICBpZiByZWFsX21heF9tZW11c2UgYW5kIHZlcmJvc2U6CiAgICAgICAgICAgICAgICAgcHJpbnQoKQogICAgICAgICAgICAgICAgIHByaW50KCIgLi4uIGV4cGVjdGVkIHBlYWsgbWVtb3J5IHVzZToge3BlYWs6LjFmfUciCiAgICAgICAgICAgICAgICAgICAgICAgLmZvcm1hdChwZWFrPXNpemUgKiBtZW11c2UgLyAoMTAyNCAqKiAzKSkpCi0gICAgICAgICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0gICAgICAgICAgICAgICAgc3RhcnRfZXZ0ID0gdGhyZWFkaW5nLkV2ZW50KCkKLSAgICAgICAgICAgICAgICBmaW5pc2hfZXZ0ID0gdGhyZWFkaW5nLkV2ZW50KCkKLSAgICAgICAgICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9X21lbW9yeV93YXRjaGRvZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShzdGFydF9ldnQsIGZpbmlzaF9ldnQsIDAuNSkpCi0gICAgICAgICAgICAgICAgdC5kYWVtb24gPSBUcnVlCi0gICAgICAgICAgICAgICAgdC5zdGFydCgpCi0gICAgICAgICAgICAgICAgc3RhcnRfZXZ0LnNldCgpCisgICAgICAgICAgICAgICAgd2F0Y2hkb2cgPSBfTWVtb3J5V2F0Y2hkb2coKQorICAgICAgICAgICAgICAgIHdhdGNoZG9nLnN0YXJ0KCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgdCA9IE5vbmUKKyAgICAgICAgICAgICAgICB3YXRjaGRvZyA9IE5vbmUKIAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHJldHVybiBmKHNlbGYsIG1heHNpemUpCiAgICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGlmIHQ6Ci0gICAgICAgICAgICAgICAgICAgIGZpbmlzaF9ldnQuc2V0KCkKLSAgICAgICAgICAgICAgICAgICAgdC5qb2luKCkKKyAgICAgICAgICAgICAgICBpZiB3YXRjaGRvZzoKKyAgICAgICAgICAgICAgICAgICAgd2F0Y2hkb2cuc3RvcCgpCiAKICAgICAgICAgd3JhcHBlci5zaXplID0gc2l6ZQogICAgICAgICB3cmFwcGVyLm1lbXVzZSA9IG1lbXVzZQpAQCAtMTI1MCw2ICsxMzM1LDMzIEBACiAgICAgcmV0dXJuIGd1YXJkcy5nZXQocGxhdGZvcm0ucHl0aG9uX2ltcGxlbWVudGF0aW9uKCkubG93ZXIoKSwgZGVmYXVsdCkKIAogCitkZWYgbm9fdHJhY2luZyhmdW5jKToKKyAgICAiIiJEZWNvcmF0b3IgdG8gdGVtcG9yYXJpbHkgdHVybiBvZmYgdHJhY2luZyBmb3IgdGhlIGR1cmF0aW9uIG9mIGEgdGVzdC4iIiIKKyAgICBpZiBub3QgaGFzYXR0cihzeXMsICdnZXR0cmFjZScpOgorICAgICAgICByZXR1cm4gZnVuYworICAgIGVsc2U6CisgICAgICAgIEBmdW5jdG9vbHMud3JhcHMoZnVuYykKKyAgICAgICAgZGVmIHdyYXBwZXIoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIG9yaWdpbmFsX3RyYWNlID0gc3lzLmdldHRyYWNlKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzeXMuc2V0dHJhY2UoTm9uZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuYygqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHN5cy5zZXR0cmFjZShvcmlnaW5hbF90cmFjZSkKKyAgICAgICAgcmV0dXJuIHdyYXBwZXIKKworCitkZWYgcmVmY291bnRfdGVzdCh0ZXN0KToKKyAgICAiIiJEZWNvcmF0b3IgZm9yIHRlc3RzIHdoaWNoIGludm9sdmUgcmVmZXJlbmNlIGNvdW50aW5nLgorCisgICAgVG8gc3RhcnQsIHRoZSBkZWNvcmF0b3IgZG9lcyBub3QgcnVuIHRoZSB0ZXN0IGlmIGlzIG5vdCBydW4gYnkgQ1B5dGhvbi4KKyAgICBBZnRlciB0aGF0LCBhbnkgdHJhY2UgZnVuY3Rpb24gaXMgdW5zZXQgZHVyaW5nIHRoZSB0ZXN0IHRvIHByZXZlbnQKKyAgICB1bmV4cGVjdGVkIHJlZmNvdW50cyBjYXVzZWQgYnkgdGhlIHRyYWNlIGZ1bmN0aW9uLgorCisgICAgIiIiCisgICAgcmV0dXJuIG5vX3RyYWNpbmcoY3B5dGhvbl9vbmx5KHRlc3QpKQorCisKIGRlZiBfZmlsdGVyX3N1aXRlKHN1aXRlLCBwcmVkKToKICAgICAiIiJSZWN1cnNpdmVseSBmaWx0ZXIgdGVzdCBjYXNlcyBpbiBhIHN1aXRlIGJhc2VkIG9uIGEgcHJlZGljYXRlLiIiIgogICAgIG5ld3Rlc3RzID0gW10KQEAgLTEyNjIsNyArMTM3NCw2IEBACiAgICAgICAgICAgICAgICAgbmV3dGVzdHMuYXBwZW5kKHRlc3QpCiAgICAgc3VpdGUuX3Rlc3RzID0gbmV3dGVzdHMKIAotCiBkZWYgX3J1bl9zdWl0ZShzdWl0ZSk6CiAgICAgIiIiUnVuIHRlc3RzIGZyb20gYSB1bml0dGVzdC5UZXN0U3VpdGUtZGVyaXZlZCBjbGFzcy4iIiIKICAgICBpZiB2ZXJib3NlOgpAQCAtMTMxMSw3ICsxNDIyLDcgQEAKICM9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogIyBkb2N0ZXN0IGRyaXZlci4KIAotZGVmIHJ1bl9kb2N0ZXN0KG1vZHVsZSwgdmVyYm9zaXR5PU5vbmUpOgorZGVmIHJ1bl9kb2N0ZXN0KG1vZHVsZSwgdmVyYm9zaXR5PU5vbmUsIG9wdGlvbmZsYWdzPTApOgogICAgICIiIlJ1biBkb2N0ZXN0IG9uIHRoZSBnaXZlbiBtb2R1bGUuICBSZXR1cm4gKCNmYWlsdXJlcywgI3Rlc3RzKS4KIAogICAgIElmIG9wdGlvbmFsIGFyZ3VtZW50IHZlcmJvc2l0eSBpcyBub3Qgc3BlY2lmaWVkIChvciBpcyBOb25lKSwgcGFzcwpAQCAtMTMyNiw3ICsxNDM3LDcgQEAKICAgICBlbHNlOgogICAgICAgICB2ZXJib3NpdHkgPSBOb25lCiAKLSAgICBmLCB0ID0gZG9jdGVzdC50ZXN0bW9kKG1vZHVsZSwgdmVyYm9zZT12ZXJib3NpdHkpCisgICAgZiwgdCA9IGRvY3Rlc3QudGVzdG1vZChtb2R1bGUsIHZlcmJvc2U9dmVyYm9zaXR5LCBvcHRpb25mbGFncz1vcHRpb25mbGFncykKICAgICBpZiBmOgogICAgICAgICByYWlzZSBUZXN0RmFpbGVkKCIlZCBvZiAlZCBkb2N0ZXN0cyBmYWlsZWQiICUgKGYsIHQpKQogICAgIGlmIHZlcmJvc2U6CkBAIC0xNDg0LDI4ICsxNTk1LDEzIEBACiAgICAgVGhpcyB3aWxsIHR5cGljYWxseSBiZSBydW4gb24gdGhlIHJlc3VsdCBvZiB0aGUgY29tbXVuaWNhdGUoKSBtZXRob2QKICAgICBvZiBhIHN1YnByb2Nlc3MuUG9wZW4gb2JqZWN0LgogICAgICIiIgotICAgIHN0ZGVyciA9IHJlLnN1YihiciJcW1xkKyByZWZzXF1ccj9cbj8kIiwgYiIiLCBzdGRlcnIpLnN0cmlwKCkKKyAgICBzdGRlcnIgPSByZS5zdWIoYnIiXFtcZCsgcmVmc1xdXHI/XG4/IiwgYiIiLCBzdGRlcnIpLnN0cmlwKCkKICAgICByZXR1cm4gc3RkZXJyCiAKIGRlZiBhcmdzX2Zyb21faW50ZXJwcmV0ZXJfZmxhZ3MoKToKICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGNvbW1hbmQtbGluZSBhcmd1bWVudHMgcmVwcm9kdWNpbmcgdGhlIGN1cnJlbnQKLSAgICBzZXR0aW5ncyBpbiBzeXMuZmxhZ3MuIiIiCi0gICAgZmxhZ19vcHRfbWFwID0gewotICAgICAgICAnYnl0ZXNfd2FybmluZyc6ICdiJywKLSAgICAgICAgJ2RvbnRfd3JpdGVfYnl0ZWNvZGUnOiAnQicsCi0gICAgICAgICdoYXNoX3JhbmRvbWl6YXRpb24nOiAnUicsCi0gICAgICAgICdpZ25vcmVfZW52aXJvbm1lbnQnOiAnRScsCi0gICAgICAgICdub191c2VyX3NpdGUnOiAncycsCi0gICAgICAgICdub19zaXRlJzogJ1MnLAotICAgICAgICAnb3B0aW1pemUnOiAnTycsCi0gICAgICAgICd2ZXJib3NlJzogJ3YnLAotICAgIH0KLSAgICBhcmdzID0gW10KLSAgICBmb3IgZmxhZywgb3B0IGluIGZsYWdfb3B0X21hcC5pdGVtcygpOgotICAgICAgICB2ID0gZ2V0YXR0cihzeXMuZmxhZ3MsIGZsYWcpCi0gICAgICAgIGlmIHYgPiAwOgotICAgICAgICAgICAgYXJncy5hcHBlbmQoJy0nICsgb3B0ICogdikKLSAgICByZXR1cm4gYXJncworICAgIHNldHRpbmdzIGluIHN5cy5mbGFncyBhbmQgc3lzLndhcm5vcHRpb25zLiIiIgorICAgIHJldHVybiBzdWJwcm9jZXNzLl9hcmdzX2Zyb21faW50ZXJwcmV0ZXJfZmxhZ3MoKQogCiAjPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjIFN1cHBvcnQgZm9yIGFzc2VydGlvbnMgYWJvdXQgbG9nZ2luZy4KQEAgLTE1OTUsNiArMTY5MSw0MCBAQAogICAgIG1zZyA9ICJSZXF1aXJlcyBmdW5jdGlvbmFsIHN5bWxpbmsgaW1wbGVtZW50YXRpb24iCiAgICAgcmV0dXJuIHRlc3QgaWYgb2sgZWxzZSB1bml0dGVzdC5za2lwKG1zZykodGVzdCkKIAorX2Nhbl94YXR0ciA9IE5vbmUKK2RlZiBjYW5feGF0dHIoKToKKyAgICBnbG9iYWwgX2Nhbl94YXR0cgorICAgIGlmIF9jYW5feGF0dHIgaXMgbm90IE5vbmU6CisgICAgICAgIHJldHVybiBfY2FuX3hhdHRyCisgICAgaWYgbm90IGhhc2F0dHIob3MsICJzZXR4YXR0ciIpOgorICAgICAgICBjYW4gPSBGYWxzZQorICAgIGVsc2U6CisgICAgICAgIHRtcF9mcCwgdG1wX25hbWUgPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBvcGVuKFRFU1RGTiwgIndiIikgYXMgZnA6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAjIFRFU1RGTiAmIHRlbXBmaWxlIG1heSB1c2UgZGlmZmVyZW50IGZpbGUgc3lzdGVtcyB3aXRoCisgICAgICAgICAgICAgICAgICAgICMgZGlmZmVyZW50IGNhcGFiaWxpdGllcworICAgICAgICAgICAgICAgICAgICBvcy5zZXR4YXR0cih0bXBfZnAsIGIidXNlci50ZXN0IiwgYiIiKQorICAgICAgICAgICAgICAgICAgICBvcy5zZXR4YXR0cihmcC5maWxlbm8oKSwgYiJ1c2VyLnRlc3QiLCBiIiIpCisgICAgICAgICAgICAgICAgICAgICMgS2VybmVscyA8IDIuNi4zOSBkb24ndCByZXNwZWN0IHNldHhhdHRyIGZsYWdzLgorICAgICAgICAgICAgICAgICAgICBrZXJuZWxfdmVyc2lvbiA9IHBsYXRmb3JtLnJlbGVhc2UoKQorICAgICAgICAgICAgICAgICAgICBtID0gcmUubWF0Y2goIjIuNi4oXGR7MSwyfSkiLCBrZXJuZWxfdmVyc2lvbikKKyAgICAgICAgICAgICAgICAgICAgY2FuID0gbSBpcyBOb25lIG9yIGludChtLmdyb3VwKDEpKSA+PSAzOQorICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgICAgICAgICBjYW4gPSBGYWxzZQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgdW5saW5rKFRFU1RGTikKKyAgICAgICAgICAgIHVubGluayh0bXBfbmFtZSkKKyAgICBfY2FuX3hhdHRyID0gY2FuCisgICAgcmV0dXJuIGNhbgorCitkZWYgc2tpcF91bmxlc3NfeGF0dHIodGVzdCk6CisgICAgIiIiU2tpcCBkZWNvcmF0b3IgZm9yIHRlc3RzIHRoYXQgcmVxdWlyZSBmdW5jdGlvbmFsIGV4dGVuZGVkIGF0dHJpYnV0ZXMiIiIKKyAgICBvayA9IGNhbl94YXR0cigpCisgICAgbXNnID0gIm5vIG5vbi1icm9rZW4gZXh0ZW5kZWQgYXR0cmlidXRlIHN1cHBvcnQiCisgICAgcmV0dXJuIHRlc3QgaWYgb2sgZWxzZSB1bml0dGVzdC5za2lwKG1zZykodGVzdCkKKwogZGVmIHBhdGNoKHRlc3RfaW5zdGFuY2UsIG9iamVjdF90b19wYXRjaCwgYXR0cl9uYW1lLCBuZXdfdmFsdWUpOgogICAgICIiIk92ZXJyaWRlICdvYmplY3RfdG9fcGF0Y2gnLidhdHRyX25hbWUnIHdpdGggJ25ld192YWx1ZScuCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfX2xvY2FsZS5weSBiL0xpYi90ZXN0L3Rlc3RfX2xvY2FsZS5weQppbmRleCAzZmFkYjU3Li40MjMxZjM3IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X19sb2NhbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9fbG9jYWxlLnB5CkBAIC0xLDIzICsxLDI1IEBACi1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0CiBmcm9tIF9sb2NhbGUgaW1wb3J0IChzZXRsb2NhbGUsIExDX0FMTCwgTENfQ1RZUEUsIExDX05VTUVSSUMsIGxvY2FsZWNvbnYsIEVycm9yKQogdHJ5OgogICAgIGZyb20gX2xvY2FsZSBpbXBvcnQgKFJBRElYQ0hBUiwgVEhPVVNFUCwgbmxfbGFuZ2luZm8pCiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgbmxfbGFuZ2luZm8gPSBOb25lCiAKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IGNvZGVjcworaW1wb3J0IGxvY2FsZQogaW1wb3J0IHN5cworaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHBsYXRmb3JtIGltcG9ydCB1bmFtZQorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHJ1bl91bml0dGVzdAogCi1pZiB1bmFtZSgpWzBdID09ICJEYXJ3aW4iOgotICAgIG1haiwgbWluLCBtaWMgPSBbaW50KHBhcnQpIGZvciBwYXJ0IGluIHVuYW1lKClbMl0uc3BsaXQoIi4iKV0KK2lmIHVuYW1lKCkuc3lzdGVtID09ICJEYXJ3aW4iOgorICAgIG1haiwgbWluLCBtaWMgPSBbaW50KHBhcnQpIGZvciBwYXJ0IGluIHVuYW1lKCkucmVsZWFzZS5zcGxpdCgiLiIpXQogICAgIGlmIChtYWosIG1pbiwgbWljKSA8ICg4LCAwLCAwKToKICAgICAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoImxvY2FsZSBzdXBwb3J0IGJyb2tlbiBmb3IgT1MgWCA8IDEwLjQiKQogCiBjYW5kaWRhdGVfbG9jYWxlcyA9IFsnZXNfVVknLCAnZnJfRlInLCAnZmlfRkknLCAnZXNfQ08nLCAncHRfUFQnLCAnaXRfSVQnLAogICAgICdldF9FRScsICdlc19QWScsICdub19OTycsICdubF9OTCcsICdsdl9MVicsICdlbF9HUicsICdiZV9CWScsICdmcl9CRScsCiAgICAgJ3JvX1JPJywgJ3J1X1VBJywgJ3J1X1JVJywgJ2VzX1ZFJywgJ2NhX0VTJywgJ3NlX05PJywgJ2VzX0VDJywgJ2lkX0lEJywKLSAgICAna2FfR0UnLCAnZXNfQ0wnLCAnaHVfSFUnLCAnd2FfQkUnLCAnbHRfTFQnLCAnc2xfU0knLCAnaHJfSFInLCAnZXNfQVInLAorICAgICdrYV9HRScsICdlc19DTCcsICd3YV9CRScsICdodV9IVScsICdsdF9MVCcsICdzbF9TSScsICdocl9IUicsICdlc19BUicsCiAgICAgJ2VzX0VTJywgJ29jX0ZSJywgJ2dsX0VTJywgJ2JnX0JHJywgJ2lzX0lTJywgJ21rX01LJywgJ2RlX0FUJywgJ3B0X0JSJywKICAgICAnZGFfREsnLCAnbm5fTk8nLCAnY3NfQ1onLCAnZGVfTFUnLCAnZXNfQk8nLCAnc3FfQUwnLCAnc2tfU0snLCAnZnJfQ0gnLAogICAgICdkZV9ERScsICdzcl9ZVScsICdicl9GUicsICdubF9CRScsICdzdl9GSScsICdwbF9QTCcsICdmcl9DQScsICdmb19GTycsCkBAIC0yNSw2ICsyNywzMSBAQAogICAgICdldV9FUycsICd2aV9WTicsICdhZl9aQScsICduYl9OTycsICdlbl9ESycsICd0Z19USicsICdlbl9VUycsCiAgICAgJ2VzX0VTLklTTzg4NTktMScsICdmcl9GUi5JU084ODU5LTE1JywgJ3J1X1JVLktPSTgtUicsICdrb19LUi5ldWNLUiddCiAKKyMgSXNzdWUgIzEzNDQxOiBTa2lwIHNvbWUgbG9jYWxlcyAoZS5nLiBjc19DWiBhbmQgaHVfSFUpIG9uIFNvbGFyaXMgdG8KKyMgd29ya2Fyb3VuZCBhIG1ic3Rvd2NzKCkgYnVnLiBGb3IgZXhhbXBsZSwgb24gU29sYXJpcywgdGhlIGh1X0hVIGxvY2FsZSB1c2VzCisjIHRoZSBsb2NhbGUgZW5jb2RpbmcgSVNPLTg4NTktMiwgdGhlIHRob3VzYXVkcyBzZXBhcmF0b3IgaXMgYidceEEwJyBhbmQgaXQgaXMKKyMgZGVjb2RlZCBhcyBVKzMwMDAwMDIwIChhbiBpbnZhbGlkIGNoYXJhY3RlcikgYnkgbWJzdG93Y3MoKS4KK2lmIHN5cy5wbGF0Zm9ybSA9PSAnc3Vub3M1JzoKKyAgICBvbGRfbG9jYWxlID0gbG9jYWxlLnNldGxvY2FsZShsb2NhbGUuTENfQUxMKQorICAgIHRyeToKKyAgICAgICAgbG9jYWxlcyA9IFtdCisgICAgICAgIGZvciBsb2MgaW4gY2FuZGlkYXRlX2xvY2FsZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgbG9jYWxlLnNldGxvY2FsZShsb2NhbGUuTENfQUxMLCBsb2MpCisgICAgICAgICAgICBleGNlcHQgRXJyb3I6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGVuY29kaW5nID0gbG9jYWxlLmdldHByZWZlcnJlZGVuY29kaW5nKEZhbHNlKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGxvY2FsZWNvbnYoKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6CisgICAgICAgICAgICAgICAgcHJpbnQoIldBUk5JTkc6IFNraXAgbG9jYWxlICVzIChlbmNvZGluZyAlcyk6IFslc10gJXMiCisgICAgICAgICAgICAgICAgICAgICAgJSAobG9jLCBlbmNvZGluZywgdHlwZShlcnIpLCBlcnIpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBsb2NhbGVzLmFwcGVuZChsb2MpCisgICAgICAgIGNhbmRpZGF0ZV9sb2NhbGVzID0gbG9jYWxlcworICAgIGZpbmFsbHk6CisgICAgICAgIGxvY2FsZS5zZXRsb2NhbGUobG9jYWxlLkxDX0FMTCwgb2xkX2xvY2FsZSkKKwogIyBXb3JrYXJvdW5kIGZvciBNU1ZDNihkZWJ1ZykgY3Jhc2ggYnVnCiBpZiAiTVNDIHYuMTIwMCIgaW4gc3lzLnZlcnNpb246CiAgICAgZGVmIGFjY2VwdChsb2MpOgpAQCAtODYsOSArMTEzLDEwIEBACiAgICAgICAgICAgICAgICAgc2V0bG9jYWxlKExDX0NUWVBFLCBsb2MpCiAgICAgICAgICAgICBleGNlcHQgRXJyb3I6CiAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGZvcm1hdHRpbmcgPSBsb2NhbGVjb252KCkKICAgICAgICAgICAgIGZvciBsYyBpbiAoImRlY2ltYWxfcG9pbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgInRob3VzYW5kc19zZXAiKToKLSAgICAgICAgICAgICAgICBzZWxmLm51bWVyaWNfdGVzdGVyKCdsb2NhbGVjb252JywgbG9jYWxlY29udigpW2xjXSwgbGMsIGxvYykKKyAgICAgICAgICAgICAgICBzZWxmLm51bWVyaWNfdGVzdGVyKCdsb2NhbGVjb252JywgZm9ybWF0dGluZ1tsY10sIGxjLCBsb2MpCiAKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhubF9sYW5naW5mbywgIm5sX2xhbmdpbmZvIGlzIG5vdCBhdmFpbGFibGUiKQogICAgIGRlZiB0ZXN0X2xjX251bWVyaWNfYmFzaWMoc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2FiYy5weSBiL0xpYi90ZXN0L3Rlc3RfYWJjLnB5CmluZGV4IGQ4NmY5N2MuLjY1M2M5NTcgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfYWJjLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYWJjLnB5CkBAIC0xMCwxNCArMTAsNyBAQAogZnJvbSBpbnNwZWN0IGltcG9ydCBpc2Fic3RyYWN0CiAKIAotY2xhc3MgVGVzdEFCQyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9hYnN0cmFjdG1ldGhvZF9iYXNpY3Moc2VsZik6Ci0gICAgICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKLSAgICAgICAgZGVmIGZvbyhzZWxmKTogcGFzcwotICAgICAgICBzZWxmLmFzc2VydFRydWUoZm9vLl9faXNhYnN0cmFjdG1ldGhvZF9fKQotICAgICAgICBkZWYgYmFyKHNlbGYpOiBwYXNzCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihiYXIsICJfX2lzYWJzdHJhY3RtZXRob2RfXyIpKQorY2xhc3MgVGVzdExlZ2FjeUFQSSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9hYnN0cmFjdHByb3BlcnR5X2Jhc2ljcyhzZWxmKToKICAgICAgICAgQGFiYy5hYnN0cmFjdHByb3BlcnR5CkBAIC0yOSwxMCArMjIsMTIgQEAKICAgICAgICAgY2xhc3MgQyhtZXRhY2xhc3M9YWJjLkFCQ01ldGEpOgogICAgICAgICAgICAgQGFiYy5hYnN0cmFjdHByb3BlcnR5CiAgICAgICAgICAgICBkZWYgZm9vKHNlbGYpOiByZXR1cm4gMworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEMpCiAgICAgICAgIGNsYXNzIEQoQyk6CiAgICAgICAgICAgICBAcHJvcGVydHkKICAgICAgICAgICAgIGRlZiBmb28oc2VsZik6IHJldHVybiBzdXBlcigpLmZvbwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoKS5mb28sIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZ2V0YXR0cihELmZvbywgIl9faXNhYnN0cmFjdG1ldGhvZF9fIiwgRmFsc2UpKQogCiAgICAgZGVmIHRlc3RfYWJzdHJhY3RjbGFzc21ldGhvZF9iYXNpY3Moc2VsZik6CiAgICAgICAgIEBhYmMuYWJzdHJhY3RjbGFzc21ldGhvZApAQCAtNDAsNyArMzUsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUoZm9vLl9faXNhYnN0cmFjdG1ldGhvZF9fKQogICAgICAgICBAY2xhc3NtZXRob2QKICAgICAgICAgZGVmIGJhcihjbHMpOiBwYXNzCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihiYXIsICJfX2lzYWJzdHJhY3RtZXRob2RfXyIpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGdldGF0dHIoYmFyLCAiX19pc2Fic3RyYWN0bWV0aG9kX18iLCBGYWxzZSkpCiAKICAgICAgICAgY2xhc3MgQyhtZXRhY2xhc3M9YWJjLkFCQ01ldGEpOgogICAgICAgICAgICAgQGFiYy5hYnN0cmFjdGNsYXNzbWV0aG9kCkBAIC01OCw3ICs1Myw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmb28uX19pc2Fic3RyYWN0bWV0aG9kX18pCiAgICAgICAgIEBzdGF0aWNtZXRob2QKICAgICAgICAgZGVmIGJhcigpOiBwYXNzCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihiYXIsICJfX2lzYWJzdHJhY3RtZXRob2RfXyIpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGdldGF0dHIoYmFyLCAiX19pc2Fic3RyYWN0bWV0aG9kX18iLCBGYWxzZSkpCiAKICAgICAgICAgY2xhc3MgQyhtZXRhY2xhc3M9YWJjLkFCQ01ldGEpOgogICAgICAgICAgICAgQGFiYy5hYnN0cmFjdHN0YXRpY21ldGhvZApAQCAtOTgsNiArOTMsMTYzIEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEYpICAjIGJlY2F1c2UgYmFyIGlzIGFic3RyYWN0IG5vdwogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzYWJzdHJhY3QoRikpCiAKKworY2xhc3MgVGVzdEFCQyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9hYnN0cmFjdG1ldGhvZF9iYXNpY3Moc2VsZik6CisgICAgICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICAgICAgZGVmIGZvbyhzZWxmKTogcGFzcworICAgICAgICBzZWxmLmFzc2VydFRydWUoZm9vLl9faXNhYnN0cmFjdG1ldGhvZF9fKQorICAgICAgICBkZWYgYmFyKHNlbGYpOiBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihiYXIsICJfX2lzYWJzdHJhY3RtZXRob2RfXyIpKQorCisgICAgZGVmIHRlc3RfYWJzdHJhY3Rwcm9wZXJ0eV9iYXNpY3Moc2VsZik6CisgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgICAgIGRlZiBmb28oc2VsZik6IHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZvby5fX2lzYWJzdHJhY3RtZXRob2RfXykKKyAgICAgICAgZGVmIGJhcihzZWxmKTogcGFzcworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGdldGF0dHIoYmFyLCAiX19pc2Fic3RyYWN0bWV0aG9kX18iLCBGYWxzZSkpCisKKyAgICAgICAgY2xhc3MgQyhtZXRhY2xhc3M9YWJjLkFCQ01ldGEpOgorICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAgICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgICAgICAgICBkZWYgZm9vKHNlbGYpOiByZXR1cm4gMworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEMpCisgICAgICAgIGNsYXNzIEQoQyk6CisgICAgICAgICAgICBAQy5mb28uZ2V0dGVyCisgICAgICAgICAgICBkZWYgZm9vKHNlbGYpOiByZXR1cm4gc3VwZXIoKS5mb28KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCkuZm9vLCAzKQorCisgICAgZGVmIHRlc3RfYWJzdHJhY3RjbGFzc21ldGhvZF9iYXNpY3Moc2VsZik6CisgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgICAgIGRlZiBmb28oY2xzKTogcGFzcworICAgICAgICBzZWxmLmFzc2VydFRydWUoZm9vLl9faXNhYnN0cmFjdG1ldGhvZF9fKQorICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgZGVmIGJhcihjbHMpOiBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZ2V0YXR0cihiYXIsICJfX2lzYWJzdHJhY3RtZXRob2RfXyIsIEZhbHNlKSkKKworICAgICAgICBjbGFzcyBDKG1ldGFjbGFzcz1hYmMuQUJDTWV0YSk6CisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICAgICAgICAgIGRlZiBmb28oY2xzKTogcmV0dXJuIGNscy5fX25hbWVfXworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEMpCisgICAgICAgIGNsYXNzIEQoQyk6CisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiBmb28oY2xzKTogcmV0dXJuIHN1cGVyKCkuZm9vKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChELmZvbygpLCAnRCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgpLmZvbygpLCAnRCcpCisKKyAgICBkZWYgdGVzdF9hYnN0cmFjdHN0YXRpY21ldGhvZF9iYXNpY3Moc2VsZik6CisgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgICAgICBkZWYgZm9vKCk6IHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZvby5fX2lzYWJzdHJhY3RtZXRob2RfXykKKyAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICBkZWYgYmFyKCk6IHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShnZXRhdHRyKGJhciwgIl9faXNhYnN0cmFjdG1ldGhvZF9fIiwgRmFsc2UpKQorCisgICAgICAgIGNsYXNzIEMobWV0YWNsYXNzPWFiYy5BQkNNZXRhKToKKyAgICAgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICAgICAgICAgIGRlZiBmb28oKTogcmV0dXJuIDMKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBDKQorICAgICAgICBjbGFzcyBEKEMpOgorICAgICAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICAgICAgZGVmIGZvbygpOiByZXR1cm4gNAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQuZm9vKCksIDQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgpLmZvbygpLCA0KQorCisgICAgZGVmIHRlc3RfYWJzdHJhY3RtZXRob2RfaW50ZWdyYXRpb24oc2VsZik6CisgICAgICAgIGZvciBhYnN0cmFjdHRoaW5nIGluIFthYmMuYWJzdHJhY3RtZXRob2QsIGFiYy5hYnN0cmFjdHByb3BlcnR5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJjLmFic3RyYWN0Y2xhc3NtZXRob2QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYmMuYWJzdHJhY3RzdGF0aWNtZXRob2RdOgorICAgICAgICAgICAgY2xhc3MgQyhtZXRhY2xhc3M9YWJjLkFCQ01ldGEpOgorICAgICAgICAgICAgICAgIEBhYnN0cmFjdHRoaW5nCisgICAgICAgICAgICAgICAgZGVmIGZvbyhzZWxmKTogcGFzcyAgIyBhYnN0cmFjdAorICAgICAgICAgICAgICAgIGRlZiBiYXIoc2VsZik6IHBhc3MgICMgY29uY3JldGUKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQy5fX2Fic3RyYWN0bWV0aG9kc19fLCB7ImZvbyJ9KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBDKSAgIyBiZWNhdXNlIGZvbyBpcyBhYnN0cmFjdAorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzYWJzdHJhY3QoQykpCisgICAgICAgICAgICBjbGFzcyBEKEMpOgorICAgICAgICAgICAgICAgIGRlZiBiYXIoc2VsZik6IHBhc3MgICMgY29uY3JldGUgb3ZlcnJpZGUgb2YgY29uY3JldGUKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRC5fX2Fic3RyYWN0bWV0aG9kc19fLCB7ImZvbyJ9KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBEKSAgIyBiZWNhdXNlIGZvbyBpcyBzdGlsbCBhYnN0cmFjdAorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzYWJzdHJhY3QoRCkpCisgICAgICAgICAgICBjbGFzcyBFKEQpOgorICAgICAgICAgICAgICAgIGRlZiBmb28oc2VsZik6IHBhc3MKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRS5fX2Fic3RyYWN0bWV0aG9kc19fLCBzZXQoKSkKKyAgICAgICAgICAgIEUoKSAgIyBub3cgZm9vIGlzIGNvbmNyZXRlLCB0b28KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXNhYnN0cmFjdChFKSkKKyAgICAgICAgICAgIGNsYXNzIEYoRSk6CisgICAgICAgICAgICAgICAgQGFic3RyYWN0dGhpbmcKKyAgICAgICAgICAgICAgICBkZWYgYmFyKHNlbGYpOiBwYXNzICAjIGFic3RyYWN0IG92ZXJyaWRlIG9mIGNvbmNyZXRlCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEYuX19hYnN0cmFjdG1ldGhvZHNfXywgeyJiYXIifSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRikgICMgYmVjYXVzZSBiYXIgaXMgYWJzdHJhY3Qgbm93CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNhYnN0cmFjdChGKSkKKworICAgIGRlZiB0ZXN0X2Rlc2NyaXB0b3JzX3dpdGhfYWJzdHJhY3RtZXRob2Qoc2VsZik6CisgICAgICAgIGNsYXNzIEMobWV0YWNsYXNzPWFiYy5BQkNNZXRhKToKKyAgICAgICAgICAgIEBwcm9wZXJ0eQorICAgICAgICAgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgICAgICAgICAgZGVmIGZvbyhzZWxmKTogcmV0dXJuIDMKKyAgICAgICAgICAgIEBmb28uc2V0dGVyCisgICAgICAgICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgICAgICAgICBkZWYgZm9vKHNlbGYsIHZhbCk6IHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBDKQorICAgICAgICBjbGFzcyBEKEMpOgorICAgICAgICAgICAgQEMuZm9vLmdldHRlcgorICAgICAgICAgICAgZGVmIGZvbyhzZWxmKTogcmV0dXJuIHN1cGVyKCkuZm9vCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRCkKKyAgICAgICAgY2xhc3MgRShEKToKKyAgICAgICAgICAgIEBELmZvby5zZXR0ZXIKKyAgICAgICAgICAgIGRlZiBmb28oc2VsZiwgdmFsKTogcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEUoKS5mb28sIDMpCisgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgcHJvcGVydHkncyBfX2lzYWJzdHJhY3RtZXRob2RfXyBkZXNjcmlwdG9yIGRvZXMgdGhlCisgICAgICAgICMgcmlnaHQgdGhpbmcgd2hlbiBwcmVzZW50ZWQgd2l0aCBhIHZhbHVlIHRoYXQgZmFpbHMgdHJ1dGggdGVzdGluZzoKKyAgICAgICAgY2xhc3MgTm90Qm9vbChvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9fbm9uemVyb19fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAgICAgX19sZW5fXyA9IF9fbm9uemVyb19fCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBjbGFzcyBGKEMpOgorICAgICAgICAgICAgICAgIGRlZiBiYXIoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBiYXIuX19pc2Fic3RyYWN0bWV0aG9kX18gPSBOb3RCb29sKCkKKyAgICAgICAgICAgICAgICBmb28gPSBwcm9wZXJ0eShiYXIpCisKKworICAgIGRlZiB0ZXN0X2N1c3RvbWRlc2NyaXB0b3JzX3dpdGhfYWJzdHJhY3RtZXRob2Qoc2VsZik6CisgICAgICAgIGNsYXNzIERlc2NyaXB0b3I6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgZmdldCwgZnNldD1Ob25lKToKKyAgICAgICAgICAgICAgICBzZWxmLl9mZ2V0ID0gZmdldAorICAgICAgICAgICAgICAgIHNlbGYuX2ZzZXQgPSBmc2V0CisgICAgICAgICAgICBkZWYgZ2V0dGVyKHNlbGYsIGNhbGxhYmxlKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRGVzY3JpcHRvcihjYWxsYWJsZSwgc2VsZi5fZmdldCkKKyAgICAgICAgICAgIGRlZiBzZXR0ZXIoc2VsZiwgY2FsbGFibGUpOgorICAgICAgICAgICAgICAgIHJldHVybiBEZXNjcmlwdG9yKHNlbGYuX2ZnZXQsIGNhbGxhYmxlKQorICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAgICAgICBkZWYgX19pc2Fic3RyYWN0bWV0aG9kX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIChnZXRhdHRyKHNlbGYuX2ZnZXQsICdfX2lzYWJzdHJhY3RtZXRob2RfXycsIEZhbHNlKQorICAgICAgICAgICAgICAgICAgICAgICAgb3IgZ2V0YXR0cihzZWxmLl9mc2V0LCAnX19pc2Fic3RyYWN0bWV0aG9kX18nLCBGYWxzZSkpCisgICAgICAgIGNsYXNzIEMobWV0YWNsYXNzPWFiYy5BQkNNZXRhKToKKyAgICAgICAgICAgIEBEZXNjcmlwdG9yCisgICAgICAgICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgICAgICAgICBkZWYgZm9vKHNlbGYpOiByZXR1cm4gMworICAgICAgICAgICAgQGZvby5zZXR0ZXIKKyAgICAgICAgICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICAgICAgICAgIGRlZiBmb28oc2VsZiwgdmFsKTogcGFzcworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEMpCisgICAgICAgIGNsYXNzIEQoQyk6CisgICAgICAgICAgICBAQy5mb28uZ2V0dGVyCisgICAgICAgICAgICBkZWYgZm9vKHNlbGYpOiByZXR1cm4gc3VwZXIoKS5mb28KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBEKQorICAgICAgICBjbGFzcyBFKEQpOgorICAgICAgICAgICAgQEQuZm9vLnNldHRlcgorICAgICAgICAgICAgZGVmIGZvbyhzZWxmLCB2YWwpOiBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoRS5mb28uX19pc2Fic3RyYWN0bWV0aG9kX18pCisKICAgICBkZWYgdGVzdF9tZXRhY2xhc3NfYWJjKHNlbGYpOgogICAgICAgICAjIE1ldGFjbGFzc2VzIGNhbiBiZSBBQkNzLCB0b28uCiAgICAgICAgIGNsYXNzIEEobWV0YWNsYXNzPWFiYy5BQkNNZXRhKToKQEAgLTEyMSwxMSArMjczLDEyIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXNzdWJjbGFzcyhCLCAoQSwpKSkKICAgICAgICAgc2VsZi5hc3NlcnROb3RJc0luc3RhbmNlKGIsIEEpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SXNJbnN0YW5jZShiLCAoQSwpKQotICAgICAgICBBLnJlZ2lzdGVyKEIpCisgICAgICAgIEIxID0gQS5yZWdpc3RlcihCKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhCLCBBKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoQiwgKEEsKSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShiLCBBKQogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoYiwgKEEsKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhCMSwgQikKICAgICAgICAgY2xhc3MgQyhCKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgYyA9IEMoKQpAQCAtMTM0LDYgKzI4NywyNyBAQAogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoYywgQSkKICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGMsIChBLCkpCiAKKyAgICBkZWYgdGVzdF9yZWdpc3Rlcl9hc19jbGFzc19kZWNvKHNlbGYpOgorICAgICAgICBjbGFzcyBBKG1ldGFjbGFzcz1hYmMuQUJDTWV0YSk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIEBBLnJlZ2lzdGVyCisgICAgICAgIGNsYXNzIEIob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYiA9IEIoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhCLCBBKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoQiwgKEEsKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShiLCBBKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoYiwgKEEsKSkKKyAgICAgICAgQEEucmVnaXN0ZXIKKyAgICAgICAgY2xhc3MgQyhCKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYyA9IEMoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhDLCBBKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoQywgKEEsKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShjLCBBKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoYywgKEEsKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhDLCBBLnJlZ2lzdGVyKEMpKQorCiAgICAgZGVmIHRlc3RfaXNpbnN0YW5jZV9pbnZhbGlkYXRpb24oc2VsZik6CiAgICAgICAgIGNsYXNzIEEobWV0YWNsYXNzPWFiYy5BQkNNZXRhKToKICAgICAgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYWJzdHJhY3RfbnVtYmVycy5weSBiL0xpYi90ZXN0L3Rlc3RfYWJzdHJhY3RfbnVtYmVycy5weQppbmRleCAyYTM5NmNkLi4yNTNlNmYwIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Fic3RyYWN0X251bWJlcnMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9hYnN0cmFjdF9udW1iZXJzLnB5CkBAIC0xNCw2ICsxNCw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNywgaW50KDcpLnJlYWwpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgaW50KDcpLmltYWcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNywgaW50KDcpLmNvbmp1Z2F0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKC03LCBpbnQoLTcpLmNvbmp1Z2F0ZSgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDcsIGludCg3KS5udW1lcmF0b3IpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgaW50KDcpLmRlbm9taW5hdG9yKQogCkBAIC0yNCw2ICsyNSw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNy4zLCBmbG9hdCg3LjMpLnJlYWwpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgZmxvYXQoNy4zKS5pbWFnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDcuMywgZmxvYXQoNy4zKS5jb25qdWdhdGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgtNy4zLCBmbG9hdCgtNy4zKS5jb25qdWdhdGUoKSkKIAogICAgIGRlZiB0ZXN0X2NvbXBsZXgoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXNzdWJjbGFzcyhjb21wbGV4LCBSZWFsKSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYWlmYy5weSBiL0xpYi90ZXN0L3Rlc3RfYWlmYy5weQppbmRleCBlZTRhZDZiLi5hZDZmNjEwIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2FpZmMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9haWZjLnB5CkBAIC0xLDQgKzEsNCBAQAotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGZpbmRmaWxlLCBydW5fdW5pdHRlc3QsIFRFU1RGTiwgY2FwdHVyZWRfc3Rkb3V0LCB1bmxpbmsKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBmaW5kZmlsZSwgcnVuX3VuaXR0ZXN0LCBURVNURk4sIHVubGluawogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgb3MKIGltcG9ydCBpbwpAQCAtMjA3LDExICsyMDcsOCBAQAogICAgICAgICBiICs9IGInQ09NTScgKyBzdHJ1Y3QucGFjaygnPkxobGhoTEwnLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCkKICAgICAgICAgYiArPSBiJ1NTTkQnICsgc3RydWN0LnBhY2soJz5MJywgOCkgKyBiJ1x4MDAnICogOAogICAgICAgICBiICs9IGInTUFSSycgKyBzdHJ1Y3QucGFjaygnPkxoQicsIDMsIDEsIDEpCi0gICAgICAgIHdpdGggY2FwdHVyZWRfc3Rkb3V0KCkgYXMgczoKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zKFVzZXJXYXJuaW5nKToKICAgICAgICAgICAgIGYgPSBhaWZjLm9wZW4oaW8uQnl0ZXNJTyhiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHMuZ2V0dmFsdWUoKSwKLSAgICAgICAgICAgICdXYXJuaW5nOiBNQVJLIGNodW5rIGNvbnRhaW5zIG9ubHkgMCBtYXJrZXJzIGluc3RlYWQgb2YgMVxuJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLmdldG1hcmtlcnMoKSwgTm9uZSkKIAogICAgIGRlZiB0ZXN0X3JlYWRfY29tbV9rbHVkZ2VfY29tcG5hbWVfZXZlbihzZWxmKToKQEAgLTIxOSw5ICsyMTYsOCBAQAogICAgICAgICBiICs9IGInQ09NTScgKyBzdHJ1Y3QucGFjaygnPkxobGhoTEwnLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCkKICAgICAgICAgYiArPSBiJ05PTkUnICsgc3RydWN0LnBhY2soJ0InLCA0KSArIGInZXZlbicgKyBiJ1x4MDAnCiAgICAgICAgIGIgKz0gYidTU05EJyArIHN0cnVjdC5wYWNrKCc+TCcsIDgpICsgYidceDAwJyAqIDgKLSAgICAgICAgd2l0aCBjYXB0dXJlZF9zdGRvdXQoKSBhcyBzOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0V2FybnMoVXNlcldhcm5pbmcpOgogICAgICAgICAgICAgZiA9IGFpZmMub3Blbihpby5CeXRlc0lPKGIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwgJ1dhcm5pbmc6IGJhZCBDT01NIGNodW5rIHNpemVcbicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5nZXRjb21wbmFtZSgpLCBiJ2V2ZW4nKQogCiAgICAgZGVmIHRlc3RfcmVhZF9jb21tX2tsdWRnZV9jb21wbmFtZV9vZGQoc2VsZik6CkBAIC0yMjksOSArMjI1LDggQEAKICAgICAgICAgYiArPSBiJ0NPTU0nICsgc3RydWN0LnBhY2soJz5MaGxoaExMJywgMTgsIDAsIDAsIDAsIDAsIDAsIDApCiAgICAgICAgIGIgKz0gYidOT05FJyArIHN0cnVjdC5wYWNrKCdCJywgMykgKyBiJ29kZCcKICAgICAgICAgYiArPSBiJ1NTTkQnICsgc3RydWN0LnBhY2soJz5MJywgOCkgKyBiJ1x4MDAnICogOAotICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIHM6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhVc2VyV2FybmluZyk6CiAgICAgICAgICAgICBmID0gYWlmYy5vcGVuKGlvLkJ5dGVzSU8oYikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCAnV2FybmluZzogYmFkIENPTU0gY2h1bmsgc2l6ZVxuJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLmdldGNvbXBuYW1lKCksIGInb2RkJykKIAogICAgIGRlZiB0ZXN0X3dyaXRlX3BhcmFtc19yYWlzZXMoc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2FyZ3BhcnNlLnB5IGIvTGliL3Rlc3QvdGVzdF9hcmdwYXJzZS5weQppbmRleCA4NTI5OTFjLi5lNjljYzQwIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2FyZ3BhcnNlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYXJncGFyc2UucHkKQEAgLTEzMjMsMjAgKzEzMjMsMjEgQEAKIGNsYXNzIFRlc3RQYXJzZXJEZWZhdWx0NDIoUGFyc2VyVGVzdENhc2UpOgogICAgICIiIlRlc3QgYWN0aW9ucyB3aXRoIGEgcGFyc2VyLWxldmVsIGRlZmF1bHQgb2YgNDIiIiIKIAotICAgIHBhcnNlcl9zaWduYXR1cmUgPSBTaWcoYXJndW1lbnRfZGVmYXVsdD00MiwgdmVyc2lvbj0nMS4wJykKKyAgICBwYXJzZXJfc2lnbmF0dXJlID0gU2lnKGFyZ3VtZW50X2RlZmF1bHQ9NDIpCiAgICAgYXJndW1lbnRfc2lnbmF0dXJlcyA9IFsKKyAgICAgICAgU2lnKCctLXZlcnNpb24nLCBhY3Rpb249J3ZlcnNpb24nLCB2ZXJzaW9uPScxLjAnKSwKICAgICAgICAgU2lnKCdmb28nLCBuYXJncz0nPycpLAogICAgICAgICBTaWcoJ2JhcicsIG5hcmdzPScqJyksCiAgICAgICAgIFNpZygnLS1iYXonLCBhY3Rpb249J3N0b3JlX3RydWUnKSwKICAgICBdCiAgICAgZmFpbHVyZXMgPSBbJy14J10KICAgICBzdWNjZXNzZXMgPSBbCi0gICAgICAgICgnJywgTlMoZm9vPTQyLCBiYXI9NDIsIGJhej00MikpLAotICAgICAgICAoJ2EnLCBOUyhmb289J2EnLCBiYXI9NDIsIGJhej00MikpLAotICAgICAgICAoJ2EgYicsIE5TKGZvbz0nYScsIGJhcj1bJ2InXSwgYmF6PTQyKSksCi0gICAgICAgICgnLS1iYXonLCBOUyhmb289NDIsIGJhcj00MiwgYmF6PVRydWUpKSwKLSAgICAgICAgKCdhIC0tYmF6JywgTlMoZm9vPSdhJywgYmFyPTQyLCBiYXo9VHJ1ZSkpLAotICAgICAgICAoJy0tYmF6IGEgYicsIE5TKGZvbz0nYScsIGJhcj1bJ2InXSwgYmF6PVRydWUpKSwKKyAgICAgICAgKCcnLCBOUyhmb289NDIsIGJhcj00MiwgYmF6PTQyLCB2ZXJzaW9uPTQyKSksCisgICAgICAgICgnYScsIE5TKGZvbz0nYScsIGJhcj00MiwgYmF6PTQyLCB2ZXJzaW9uPTQyKSksCisgICAgICAgICgnYSBiJywgTlMoZm9vPSdhJywgYmFyPVsnYiddLCBiYXo9NDIsIHZlcnNpb249NDIpKSwKKyAgICAgICAgKCctLWJheicsIE5TKGZvbz00MiwgYmFyPTQyLCBiYXo9VHJ1ZSwgdmVyc2lvbj00MikpLAorICAgICAgICAoJ2EgLS1iYXonLCBOUyhmb289J2EnLCBiYXI9NDIsIGJhej1UcnVlLCB2ZXJzaW9uPTQyKSksCisgICAgICAgICgnLS1iYXogYSBiJywgTlMoZm9vPSdhJywgYmFyPVsnYiddLCBiYXo9VHJ1ZSwgdmVyc2lvbj00MikpLAogICAgIF0KIAogCkBAIC0yODk2LDEwICsyODk3LDkgQEAKICAgICAgICAgICAgICAgICBwYXJzZXJfdGV4dCA9IHNmaWxlLmdldHZhbHVlKCkKICAgICAgICAgICAgICAgICBzZWxmLl90ZXN0KHRlc3RlciwgcGFyc2VyX3RleHQpCiAKLSAgICAgICAgIyBhZGQgdGVzdHMgZm9yIHtmb3JtYXQscHJpbnR9X3t1c2FnZSxoZWxwLHZlcnNpb259CisgICAgICAgICMgYWRkIHRlc3RzIGZvciB7Zm9ybWF0LHByaW50fV97dXNhZ2UsaGVscH0KICAgICAgICAgZm9yIGZ1bmNfc3VmZml4LCBzdGRfbmFtZSBpbiBbKCd1c2FnZScsICdzdGRvdXQnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdoZWxwJywgJ3N0ZG91dCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3ZlcnNpb24nLCAnc3RkZXJyJyldOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2hlbHAnLCAnc3Rkb3V0JyldOgogICAgICAgICAgICAgQWRkVGVzdHMoY2xzLCBmdW5jX3N1ZmZpeCwgc3RkX25hbWUpCiAKIGJhc2VzID0gVGVzdENhc2UsCkBAIC0yOTEwLDggKzI5MTAsOSBAQAogICAgICIiIk1ha2Ugc3VyZSB0aGF0IGFyZ3VtZW50IGhlbHAgYWxpZ25zIHdoZW4gb3B0aW9ucyBhcmUgbG9uZ2VyIiIiCiAKICAgICBwYXJzZXJfc2lnbmF0dXJlID0gU2lnKHByb2c9J1BST0cnLCBkZXNjcmlwdGlvbj0nREVTQ1JJUFRJT04nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZXBpbG9nPSdFUElMT0cnLCB2ZXJzaW9uPScwLjEnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZXBpbG9nPSdFUElMT0cnKQogICAgIGFyZ3VtZW50X3NpZ25hdHVyZXMgPSBbCisgICAgICAgIFNpZygnLXYnLCAnLS12ZXJzaW9uJywgYWN0aW9uPSd2ZXJzaW9uJywgdmVyc2lvbj0nMC4xJyksCiAgICAgICAgIFNpZygnLXgnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBoZWxwPSdYIEhFTFAnKSwKICAgICAgICAgU2lnKCctLXknLCBoZWxwPSdZIEhFTFAnKSwKICAgICAgICAgU2lnKCdmb28nLCBoZWxwPSdGT08gSEVMUCcpLApAQCAtMjk0Niw4ICsyOTQ3LDkgQEAKICAgICAiIiJNYWtlIHN1cmUgdGhhdCBhcmd1bWVudCBoZWxwIGFsaWducyB3aGVuIG9wdGlvbnMgYXJlIGxvbmdlciIiIgogCiAgICAgcGFyc2VyX3NpZ25hdHVyZSA9IFNpZyhwcm9nPSdQUk9HJywgZGVzY3JpcHRpb249J0RFU0NSSVBUSU9OJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGVwaWxvZz0nRVBJTE9HJywgdmVyc2lvbj0nMC4xJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGVwaWxvZz0nRVBJTE9HJykKICAgICBhcmd1bWVudF9zaWduYXR1cmVzID0gWworICAgICAgICBTaWcoJy12JywgJy0tdmVyc2lvbicsIGFjdGlvbj0ndmVyc2lvbicsIHZlcnNpb249JzAuMScpLAogICAgICAgICBTaWcoJy14JywgYWN0aW9uPSdzdG9yZV90cnVlJywgaGVscD0nWCBIRUxQJyksCiAgICAgICAgIFNpZygnLS15JywgaGVscD0nWSBIRUxQJyksCiAgICAgICAgIFNpZygnZm9vJywgaGVscD0nRk9PIEhFTFAnKSwKQEAgLTMxMTQsOSArMzExNiw5IEBACiBjbGFzcyBUZXN0SGVscFdyYXBwaW5nTG9uZ05hbWVzKEhlbHBUZXN0Q2FzZSk6CiAgICAgIiIiTWFrZSBzdXJlIHRoYXQgdGV4dCBhZnRlciBsb25nIG5hbWVzIHN0YXJ0cyBvbiB0aGUgbmV4dCBsaW5lIiIiCiAKLSAgICBwYXJzZXJfc2lnbmF0dXJlID0gU2lnKHVzYWdlPSdVU0FHRScsIGRlc2NyaXB0aW9uPSAnRCBEJyAqIDMwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj0nViBWJyozMCkKKyAgICBwYXJzZXJfc2lnbmF0dXJlID0gU2lnKHVzYWdlPSdVU0FHRScsIGRlc2NyaXB0aW9uPSAnRCBEJyAqIDMwKQogICAgIGFyZ3VtZW50X3NpZ25hdHVyZXMgPSBbCisgICAgICAgIFNpZygnLXYnLCAnLS12ZXJzaW9uJywgYWN0aW9uPSd2ZXJzaW9uJywgdmVyc2lvbj0nViBWJyAqIDMwKSwKICAgICAgICAgU2lnKCcteCcsIG1ldGF2YXI9J1gnICogMjUsIGhlbHA9J1hIIFhIJyAqIDIwKSwKICAgICAgICAgU2lnKCd5JywgbWV0YXZhcj0neScgKiAyNSwgaGVscD0nWUggWUgnICogMjApLAogICAgIF0KQEAgLTM3MTksOCArMzcyMSw5IEBACiBjbGFzcyBUZXN0SGVscFZlcnNpb25PcHRpb25hbChIZWxwVGVzdENhc2UpOgogICAgICIiIlRlc3QgdGhhdCB0aGUgLS12ZXJzaW9uIGFyZ3VtZW50IGNhbiBiZSBzdXBwcmVzc2VkIGhlbHAgbWVzc2FnZXMiIiIKIAotICAgIHBhcnNlcl9zaWduYXR1cmUgPSBTaWcocHJvZz0nUFJPRycsIHZlcnNpb249JzEuMCcpCisgICAgcGFyc2VyX3NpZ25hdHVyZSA9IFNpZyhwcm9nPSdQUk9HJykKICAgICBhcmd1bWVudF9zaWduYXR1cmVzID0gWworICAgICAgICBTaWcoJy12JywgJy0tdmVyc2lvbicsIGFjdGlvbj0ndmVyc2lvbicsIHZlcnNpb249JzEuMCcpLAogICAgICAgICBTaWcoJy0tZm9vJywgaGVscD0nZm9vIGhlbHAnKSwKICAgICAgICAgU2lnKCdzcGFtJywgaGVscD0nc3BhbSBoZWxwJyksCiAgICAgXQpAQCAtMzk1Myw4ICszOTU2LDggQEAKIGNsYXNzIFRlc3RIZWxwU3VicGFyc2Vyc09yZGVyaW5nKEhlbHBUZXN0Q2FzZSk6CiAgICAgIiIiVGVzdCBvcmRlcmluZyBvZiBzdWJjb21tYW5kcyBpbiBoZWxwIG1hdGNoZXMgdGhlIGNvZGUiIiIKICAgICBwYXJzZXJfc2lnbmF0dXJlID0gU2lnKHByb2c9J1BST0cnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249J2Rpc3BsYXkgc29tZSBzdWJjb21tYW5kcycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPScwLjEnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb249J2Rpc3BsYXkgc29tZSBzdWJjb21tYW5kcycpCisgICAgYXJndW1lbnRfc2lnbmF0dXJlcyA9IFtTaWcoJy12JywgJy0tdmVyc2lvbicsIGFjdGlvbj0ndmVyc2lvbicsIHZlcnNpb249JzAuMScpXQogCiAgICAgc3VicGFyc2Vyc19zaWduYXR1cmVzID0gW1NpZyhuYW1lPW5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lIGluICgnYScsICdiJywgJ2MnLCAnZCcsICdlJyldCkBAIC0zOTgyLDggKzM5ODUsOCBAQAogY2xhc3MgVGVzdEhlbHBTdWJwYXJzZXJzV2l0aEhlbHBPcmRlcmluZyhIZWxwVGVzdENhc2UpOgogICAgICIiIlRlc3Qgb3JkZXJpbmcgb2Ygc3ViY29tbWFuZHMgaW4gaGVscCBtYXRjaGVzIHRoZSBjb2RlIiIiCiAgICAgcGFyc2VyX3NpZ25hdHVyZSA9IFNpZyhwcm9nPSdQUk9HJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSdkaXNwbGF5IHNvbWUgc3ViY29tbWFuZHMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj0nMC4xJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSdkaXNwbGF5IHNvbWUgc3ViY29tbWFuZHMnKQorICAgIGFyZ3VtZW50X3NpZ25hdHVyZXMgPSBbU2lnKCctdicsICctLXZlcnNpb24nLCBhY3Rpb249J3ZlcnNpb24nLCB2ZXJzaW9uPScwLjEnKV0KIAogICAgIHN1YmNvbW1hbmRfZGF0YSA9ICgoJ2EnLCAnYSBzdWJjb21tYW5kIGhlbHAnKSwKICAgICAgICAgICAgICAgICAgICAgICAgKCdiJywgJ2Igc3ViY29tbWFuZCBoZWxwJyksCkBAIC00MDIxLDYgKzQwMjQsMzcgQEAKICAgICAgICAgJycnCiAKIAorCitjbGFzcyBUZXN0SGVscE1ldGF2YXJUeXBlRm9ybWF0dGVyKEhlbHBUZXN0Q2FzZSk6CisgICAgIiIiIiIiCisKKyAgICBkZWYgY3VzdG9tX3R5cGUoc3RyaW5nKToKKyAgICAgICAgcmV0dXJuIHN0cmluZworCisgICAgcGFyc2VyX3NpZ25hdHVyZSA9IFNpZyhwcm9nPSdQUk9HJywgZGVzY3JpcHRpb249J2Rlc2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlcl9jbGFzcz1hcmdwYXJzZS5NZXRhdmFyVHlwZUhlbHBGb3JtYXR0ZXIpCisgICAgYXJndW1lbnRfc2lnbmF0dXJlcyA9IFtTaWcoJ2EnLCB0eXBlPWludCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWcoJy1iJywgdHlwZT1jdXN0b21fdHlwZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBTaWcoJy1jJywgdHlwZT1mbG9hdCwgbWV0YXZhcj0nU09NRSBGTE9BVCcpXQorICAgIGFyZ3VtZW50X2dyb3VwX3NpZ25hdHVyZXMgPSBbXQorICAgIHVzYWdlID0gJycnXAorICAgICAgICB1c2FnZTogUFJPRyBbLWhdIFstYiBjdXN0b21fdHlwZV0gWy1jIFNPTUUgRkxPQVRdIGludAorICAgICAgICAnJycKKyAgICBoZWxwID0gdXNhZ2UgKyAnJydcCisKKyAgICAgICAgZGVzY3JpcHRpb24KKworICAgICAgICBwb3NpdGlvbmFsIGFyZ3VtZW50czoKKyAgICAgICAgICBpbnQKKworICAgICAgICBvcHRpb25hbCBhcmd1bWVudHM6CisgICAgICAgICAgLWgsIC0taGVscCAgICAgIHNob3cgdGhpcyBoZWxwIG1lc3NhZ2UgYW5kIGV4aXQKKyAgICAgICAgICAtYiBjdXN0b21fdHlwZQorICAgICAgICAgIC1jIFNPTUUgRkxPQVQKKyAgICAgICAgJycnCisgICAgdmVyc2lvbiA9ICcnCisKKwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjIE9wdGlvbmFsL1Bvc2l0aW9uYWwgY29uc3RydWN0b3IgdGVzdHMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtNDI0OSwzMiArNDI4MywyOCBAQAogICAgICAgICAgICAgcGFyc2VyLmZvcm1hdF9oZWxwKCksCiAgICAgICAgICAgICBzZWxmLl9nZXRfZXJyb3IocGFyc2VyLnBhcnNlX2FyZ3MsIGFyZ3Nfc3RyLnNwbGl0KCkpLnN0ZG91dCkKIAotICAgIGRlZiBhc3NlcnRQcmludFZlcnNpb25FeGl0KHNlbGYsIHBhcnNlciwgYXJnc19zdHIpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgcGFyc2VyLmZvcm1hdF92ZXJzaW9uKCksCi0gICAgICAgICAgICBzZWxmLl9nZXRfZXJyb3IocGFyc2VyLnBhcnNlX2FyZ3MsIGFyZ3Nfc3RyLnNwbGl0KCkpLnN0ZGVycikKLQogICAgIGRlZiBhc3NlcnRBcmd1bWVudFBhcnNlckVycm9yKHNlbGYsIHBhcnNlciwgKmFyZ3MpOgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBcmd1bWVudFBhcnNlckVycm9yLCBwYXJzZXIucGFyc2VfYXJncywgYXJncykKIAogICAgIGRlZiB0ZXN0X3ZlcnNpb24oc2VsZik6Ci0gICAgICAgIHBhcnNlciA9IEVycm9yUmFpc2luZ0FyZ3VtZW50UGFyc2VyKHZlcnNpb249JzEuMCcpCisgICAgICAgIHBhcnNlciA9IEVycm9yUmFpc2luZ0FyZ3VtZW50UGFyc2VyKCkKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLXYnLCAnLS12ZXJzaW9uJywgYWN0aW9uPSd2ZXJzaW9uJywgdmVyc2lvbj0nMS4wJykKICAgICAgICAgc2VsZi5hc3NlcnRQcmludEhlbHBFeGl0KHBhcnNlciwgJy1oJykKICAgICAgICAgc2VsZi5hc3NlcnRQcmludEhlbHBFeGl0KHBhcnNlciwgJy0taGVscCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UHJpbnRWZXJzaW9uRXhpdChwYXJzZXIsICctdicpCi0gICAgICAgIHNlbGYuYXNzZXJ0UHJpbnRWZXJzaW9uRXhpdChwYXJzZXIsICctLXZlcnNpb24nKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgcGFyc2VyLCAnZm9ybWF0X3ZlcnNpb24nKQogCiAgICAgZGVmIHRlc3RfdmVyc2lvbl9mb3JtYXQoc2VsZik6Ci0gICAgICAgIHBhcnNlciA9IEVycm9yUmFpc2luZ0FyZ3VtZW50UGFyc2VyKHByb2c9J1BQUCcsIHZlcnNpb249JyUocHJvZylzIDMuNScpCisgICAgICAgIHBhcnNlciA9IEVycm9yUmFpc2luZ0FyZ3VtZW50UGFyc2VyKHByb2c9J1BQUCcpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy12JywgJy0tdmVyc2lvbicsIGFjdGlvbj0ndmVyc2lvbicsIHZlcnNpb249JyUocHJvZylzIDMuNScpCiAgICAgICAgIG1zZyA9IHNlbGYuX2dldF9lcnJvcihwYXJzZXIucGFyc2VfYXJncywgWyctdiddKS5zdGRlcnIKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUFBQIDMuNVxuJywgbXNnKQogCiAgICAgZGVmIHRlc3RfdmVyc2lvbl9ub19oZWxwKHNlbGYpOgotICAgICAgICBwYXJzZXIgPSBFcnJvclJhaXNpbmdBcmd1bWVudFBhcnNlcihhZGRfaGVscD1GYWxzZSwgdmVyc2lvbj0nMS4wJykKKyAgICAgICAgcGFyc2VyID0gRXJyb3JSYWlzaW5nQXJndW1lbnRQYXJzZXIoYWRkX2hlbHA9RmFsc2UpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy12JywgJy0tdmVyc2lvbicsIGFjdGlvbj0ndmVyc2lvbicsIHZlcnNpb249JzEuMCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0QXJndW1lbnRQYXJzZXJFcnJvcihwYXJzZXIsICctaCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0QXJndW1lbnRQYXJzZXJFcnJvcihwYXJzZXIsICctLWhlbHAnKQotICAgICAgICBzZWxmLmFzc2VydFByaW50VmVyc2lvbkV4aXQocGFyc2VyLCAnLXYnKQotICAgICAgICBzZWxmLmFzc2VydFByaW50VmVyc2lvbkV4aXQocGFyc2VyLCAnLS12ZXJzaW9uJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIHBhcnNlciwgJ2Zvcm1hdF92ZXJzaW9uJykKIAogICAgIGRlZiB0ZXN0X3ZlcnNpb25fYWN0aW9uKHNlbGYpOgogICAgICAgICBwYXJzZXIgPSBFcnJvclJhaXNpbmdBcmd1bWVudFBhcnNlcihwcm9nPSdYWFgnKQpAQCAtNDI5NCwxMiArNDMyNCwxMyBAQAogICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCcteCcsIGFjdGlvbj0naGVscCcpCiAgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy15JywgYWN0aW9uPSd2ZXJzaW9uJykKICAgICAgICAgc2VsZi5hc3NlcnRQcmludEhlbHBFeGl0KHBhcnNlciwgJy14JykKLSAgICAgICAgc2VsZi5hc3NlcnRQcmludFZlcnNpb25FeGl0KHBhcnNlciwgJy15JykKICAgICAgICAgc2VsZi5hc3NlcnRBcmd1bWVudFBhcnNlckVycm9yKHBhcnNlciwgJy12JykKICAgICAgICAgc2VsZi5hc3NlcnRBcmd1bWVudFBhcnNlckVycm9yKHBhcnNlciwgJy0tdmVyc2lvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBwYXJzZXIsICdmb3JtYXRfdmVyc2lvbicpCiAKICAgICBkZWYgdGVzdF9oZWxwX3ZlcnNpb25fZXh0cmFfYXJndW1lbnRzKHNlbGYpOgotICAgICAgICBwYXJzZXIgPSBFcnJvclJhaXNpbmdBcmd1bWVudFBhcnNlcih2ZXJzaW9uPScxLjAnKQorICAgICAgICBwYXJzZXIgPSBFcnJvclJhaXNpbmdBcmd1bWVudFBhcnNlcigpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tdmVyc2lvbicsIGFjdGlvbj0ndmVyc2lvbicsIHZlcnNpb249JzEuMCcpCiAgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy14JywgYWN0aW9uPSdzdG9yZV90cnVlJykKICAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgneScpCiAKQEAgLTQzMTEsOCArNDM0Miw3IEBACiAgICAgICAgICAgICAgICAgZm9ybWF0ID0gJyVzICUlcyAlcycgJSAocHJlZml4LCBzdWZmaXgpCiAgICAgICAgICAgICBzZWxmLmFzc2VydFByaW50SGVscEV4aXQocGFyc2VyLCBmb3JtYXQgJSAnLWgnKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRQcmludEhlbHBFeGl0KHBhcnNlciwgZm9ybWF0ICUgJy0taGVscCcpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFByaW50VmVyc2lvbkV4aXQocGFyc2VyLCBmb3JtYXQgJSAnLXYnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRQcmludFZlcnNpb25FeGl0KHBhcnNlciwgZm9ybWF0ICUgJy0tdmVyc2lvbicpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgcGFyc2VyLCAnZm9ybWF0X3ZlcnNpb24nKQogCiAKICMgPT09PT09PT09PT09PT09PT09PT09PQpAQCAtNDM2Nyw3ICs0Mzk3LDcgQEAKICAgICAgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIocHJvZz0nUFJPRycpCiAgICAgICAgIHN0cmluZyA9ICgKICAgICAgICAgICAgICJBcmd1bWVudFBhcnNlcihwcm9nPSdQUk9HJywgdXNhZ2U9Tm9uZSwgZGVzY3JpcHRpb249Tm9uZSwgIgotICAgICAgICAgICAgInZlcnNpb249Tm9uZSwgZm9ybWF0dGVyX2NsYXNzPSVyLCBjb25mbGljdF9oYW5kbGVyPSdlcnJvcicsICIKKyAgICAgICAgICAgICJmb3JtYXR0ZXJfY2xhc3M9JXIsIGNvbmZsaWN0X2hhbmRsZXI9J2Vycm9yJywgIgogICAgICAgICAgICAgImFkZF9oZWxwPVRydWUpIiAlIGFyZ3BhcnNlLkhlbHBGb3JtYXR0ZXIpCiAgICAgICAgIHNlbGYuYXNzZXJ0U3RyaW5nRXF1YWwocGFyc2VyLCBzdHJpbmcpCiAKQEAgLTQ0MTEsNyArNDQ0MSw3IEBACiAgICAgZGVmIF90ZXN0X21vZHVsZV9lbmNvZGluZyhzZWxmLCBwYXRoKToKICAgICAgICAgcGF0aCwgXyA9IG9zLnBhdGguc3BsaXRleHQocGF0aCkKICAgICAgICAgcGF0aCArPSAiLnB5IgotICAgICAgICB3aXRoIGNvZGVjcy5vcGVuKHBhdGgsICdyJywgJ3V0ZjgnKSBhcyBmOgorICAgICAgICB3aXRoIGNvZGVjcy5vcGVuKHBhdGgsICdyJywgJ3V0Zi04JykgYXMgZjoKICAgICAgICAgICAgIGYucmVhZCgpCiAKICAgICBkZWYgdGVzdF9hcmdwYXJzZV9tb2R1bGVfZW5jb2Rpbmcoc2VsZik6CkBAIC00NDUzLDYgKzQ0ODMsNjcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuZmFpbCgpCiAKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PQorIyBNZXNzYWdlQ29udGVudEVycm9yIHRlc3RzCisjID09PT09PT09PT09PT09PT09PT09PT09PT0KKworY2xhc3MgVGVzdE1lc3NhZ2VDb250ZW50RXJyb3IoVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfbWlzc2luZ19hcmd1bWVudF9uYW1lX2luX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHBhcnNlciA9IEVycm9yUmFpc2luZ0FyZ3VtZW50UGFyc2VyKHByb2c9J1BST0cnLCB1c2FnZT0nJykKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgncmVxX3BvcycsIHR5cGU9c3RyKQorICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctcmVxX29wdCcsIHR5cGU9aW50LCByZXF1aXJlZD1UcnVlKQorICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCduZWVkX29uZScsIHR5cGU9c3RyLCBuYXJncz0nKycpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBcmd1bWVudFBhcnNlckVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIHBhcnNlci5wYXJzZV9hcmdzKFtdKQorICAgICAgICBtc2cgPSBzdHIoY20uZXhjZXB0aW9uKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KG1zZywgJ3JlcV9wb3MnKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KG1zZywgJ3JlcV9vcHQnKQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KG1zZywgJ25lZWRfb25lJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBcmd1bWVudFBhcnNlckVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIHBhcnNlci5wYXJzZV9hcmdzKFsnbXlYYXJndW1lbnQnXSkKKyAgICAgICAgbXNnID0gc3RyKGNtLmV4Y2VwdGlvbikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbihtc2csICdyZXFfcG9zJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChtc2csICdyZXFfb3B0JykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChtc2csICduZWVkX29uZScpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXJndW1lbnRQYXJzZXJFcnJvcikgYXMgY206CisgICAgICAgICAgICBwYXJzZXIucGFyc2VfYXJncyhbJ215WGFyZ3VtZW50JywgJy1yZXFfb3B0PTEnXSkKKyAgICAgICAgbXNnID0gc3RyKGNtLmV4Y2VwdGlvbikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbihtc2csICdyZXFfcG9zJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbihtc2csICdyZXFfb3B0JykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChtc2csICduZWVkX29uZScpCisKKyAgICBkZWYgdGVzdF9vcHRpb25hbF9vcHRpb25hbF9ub3RfaW5fbWVzc2FnZShzZWxmKToKKyAgICAgICAgcGFyc2VyID0gRXJyb3JSYWlzaW5nQXJndW1lbnRQYXJzZXIocHJvZz0nUFJPRycsIHVzYWdlPScnKQorICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdyZXFfcG9zJywgdHlwZT1zdHIpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tcmVxX29wdCcsIHR5cGU9aW50LCByZXF1aXJlZD1UcnVlKQorICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLW9wdF9vcHQnLCB0eXBlPWJvb2wsIG5hcmdzPSc/JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXJndW1lbnRQYXJzZXJFcnJvcikgYXMgY206CisgICAgICAgICAgICBwYXJzZXIucGFyc2VfYXJncyhbXSkKKyAgICAgICAgbXNnID0gc3RyKGNtLmV4Y2VwdGlvbikKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChtc2csICdyZXFfcG9zJykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChtc2csICdyZXFfb3B0JykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbihtc2csICdvcHRfb3B0JykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBcmd1bWVudFBhcnNlckVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIHBhcnNlci5wYXJzZV9hcmdzKFsnLS1yZXFfb3B0PTEnXSkKKyAgICAgICAgbXNnID0gc3RyKGNtLmV4Y2VwdGlvbikKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChtc2csICdyZXFfcG9zJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbihtc2csICdyZXFfb3B0JykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbihtc2csICdvcHRfb3B0JykKKworICAgIGRlZiB0ZXN0X29wdGlvbmFsX3Bvc2l0aW9uYWxfbm90X2luX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIHBhcnNlciA9IEVycm9yUmFpc2luZ0FyZ3VtZW50UGFyc2VyKHByb2c9J1BST0cnLCB1c2FnZT0nJykKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgncmVxX3BvcycpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ29wdGlvbmFsX3Bvc2l0aW9uYWwnLCBuYXJncz0nPycsIGRlZmF1bHQ9J2VnZ3MnKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEFyZ3VtZW50UGFyc2VyRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgcGFyc2VyLnBhcnNlX2FyZ3MoW10pCisgICAgICAgIG1zZyA9IHN0cihjbS5leGNlcHRpb24pCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXgobXNnLCAncmVxX3BvcycpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4obXNnLCAnb3B0aW9uYWxfcG9zaXRpb25hbCcpCisKKwogIyA9PT09PT09PT09PT09PT09PT09PT09CiAjIHBhcnNlX2tub3duX2FyZ3MgdGVzdHMKICMgPT09PT09PT09PT09PT09PT09PT09PQpAQCAtNDY2OCwxMyArNDc1OSw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKGl0ZW1zKSwgc29ydGVkKGFyZ3BhcnNlLl9fYWxsX18pKQogCiBkZWYgdGVzdF9tYWluKCk6Ci0gICAgIyBzaWxlbmNlIHdhcm5pbmdzIGFib3V0IHZlcnNpb24gYXJndW1lbnQgLSB0aGVzZSBhcmUgZXhwZWN0ZWQKLSAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoCi0gICAgICAgICAgICAoJ1RoZSAidmVyc2lvbiIgYXJndW1lbnQgdG8gQXJndW1lbnRQYXJzZXIgaXMgZGVwcmVjYXRlZC4nLAotICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZyksCi0gICAgICAgICAgICAoJ1RoZSAoZm9ybWF0fHByaW50KV92ZXJzaW9uIG1ldGhvZCBpcyBkZXByZWNhdGVkJywKLSAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcpKToKLSAgICAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoX19uYW1lX18pCisgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoX19uYW1lX18pCiAgICAgIyBSZW1vdmUgZ2xvYmFsIHJlZmVyZW5jZXMgdG8gYXZvaWQgbG9va2luZyBsaWtlIHdlIGhhdmUgcmVmbGVha3MuCiAgICAgUkZpbGUuc2VlbiA9IHt9CiAgICAgV0ZpbGUuc2VlbiA9IHNldCgpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2FycmF5LnB5IGIvTGliL3Rlc3QvdGVzdF9hcnJheS5weQppbmRleCA1MTkwYzM1Li45Mzg1MzM5IDEwMDc1NQotLS0gYS9MaWIvdGVzdC90ZXN0X2FycmF5LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYXJyYXkucHkKQEAgLTE2LDYgKzE2LDEzIEBACiBpbXBvcnQgYXJyYXkKIGZyb20gYXJyYXkgaW1wb3J0IF9hcnJheV9yZWNvbnN0cnVjdG9yIGFzIGFycmF5X3JlY29uc3RydWN0b3IKIAordHJ5OgorICAgICMgVHJ5IHRvIGRldGVybWluZSBhdmFpbGFiaWxpdHkgb2YgbG9uZyBsb25nIGluZGVwZW5kZW50bHkKKyAgICAjIG9mIHRoZSBhcnJheSBtb2R1bGUgdW5kZXIgdGVzdAorICAgIHN0cnVjdC5jYWxjc2l6ZSgnQHEnKQorICAgIGhhdmVfbG9uZ19sb25nID0gVHJ1ZQorZXhjZXB0IHN0cnVjdC5lcnJvcjoKKyAgICBoYXZlX2xvbmdfbG9uZyA9IEZhbHNlCiAKIGNsYXNzIEFycmF5U3ViY2xhc3MoYXJyYXkuYXJyYXkpOgogICAgIHBhc3MKQEAgLTI2LDYgKzMzLDggQEAKIAogdGVzdHMgPSBbXSAjIGxpc3QgdG8gYWNjdW11bGF0ZSBhbGwgdGVzdHMKIHR5cGVjb2RlcyA9ICJ1YkJoSGlJbExmZCIKK2lmIGhhdmVfbG9uZ19sb25nOgorICAgIHR5cGVjb2RlcyArPSAncVEnCiAKIGNsYXNzIEJhZENvbnN0cnVjdG9yVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTIwOSwxMCArMjE4LDE0IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmlbMV0sIGxlbihhKSkKIAogICAgIGRlZiB0ZXN0X2J5dGVzd2FwKHNlbGYpOgotICAgICAgICBhID0gYXJyYXkuYXJyYXkoc2VsZi50eXBlY29kZSwgc2VsZi5leGFtcGxlKQorICAgICAgICBpZiBzZWxmLnR5cGVjb2RlID09ICd1JzoKKyAgICAgICAgICAgIGV4YW1wbGUgPSAnXFUwMDEwMDEwMCcKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4YW1wbGUgPSBzZWxmLmV4YW1wbGUKKyAgICAgICAgYSA9IGFycmF5LmFycmF5KHNlbGYudHlwZWNvZGUsIGV4YW1wbGUpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYS5ieXRlc3dhcCwgNDIpCiAgICAgICAgIGlmIGEuaXRlbXNpemUgaW4gKDEsIDIsIDQsIDgpOgotICAgICAgICAgICAgYiA9IGFycmF5LmFycmF5KHNlbGYudHlwZWNvZGUsIHNlbGYuZXhhbXBsZSkKKyAgICAgICAgICAgIGIgPSBhcnJheS5hcnJheShzZWxmLnR5cGVjb2RlLCBleGFtcGxlKQogICAgICAgICAgICAgYi5ieXRlc3dhcCgpCiAgICAgICAgICAgICBpZiBhLml0ZW1zaXplPT0xOgogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYSwgYikKQEAgLTI3Miw2ICsyODUsMjAgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS54LCBiLngpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoYSksIHR5cGUoYikpCiAKKyAgICBkZWYgdGVzdF9pdGVyYXRvcl9waWNrbGUoc2VsZik6CisgICAgICAgIGRhdGEgPSBhcnJheS5hcnJheShzZWxmLnR5cGVjb2RlLCBzZWxmLmV4YW1wbGUpCisgICAgICAgIG9yZ2l0ID0gaXRlcihkYXRhKQorICAgICAgICBkID0gcGlja2xlLmR1bXBzKG9yZ2l0KQorICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUob3JnaXQpLCB0eXBlKGl0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0KSwgbGlzdChkYXRhKSkKKworICAgICAgICBpZiBsZW4oZGF0YSk6CisgICAgICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICAgICAgbmV4dChpdCkKKyAgICAgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoaXQpLCBsaXN0KGRhdGEpWzE6XSkKKwogICAgIGRlZiB0ZXN0X2luc2VydChzZWxmKToKICAgICAgICAgYSA9IGFycmF5LmFycmF5KHNlbGYudHlwZWNvZGUsIHNlbGYuZXhhbXBsZSkKICAgICAgICAgYS5pbnNlcnQoMCwgc2VsZi5leGFtcGxlWzBdKQpAQCAtMTAwMiw3ICsxMDI5LDcgQEAKICAgICBzbWFsbGVyZXhhbXBsZSA9ICdceDAxXHUyNjNhXHgwMFx1ZmVmZScKICAgICBiaWdnZXJleGFtcGxlID0gJ1x4MDFcdTI2M2FceDAxXHVmZWZmJwogICAgIG91dHNpZGUgPSBzdHIoJ1x4MzMnKQotICAgIG1pbml0ZW1zaXplID0gMgorICAgIG1pbml0ZW1zaXplID0gNAogCiAgICAgZGVmIHRlc3RfdW5pY29kZShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBhcnJheS5hcnJheSwgJ2InLCAnZm9vJykKQEAgLTEwMTQsNiArMTA0MSw3IEBACiAgICAgICAgIGEuZnJvbXVuaWNvZGUoJ1x4MTFhYmNceGZmXHUxMjM0JykKICAgICAgICAgcyA9IGEudG91bmljb2RlKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLCAnXHhhMFx4YzJcdTEyMzQgXHgxMWFiY1x4ZmZcdTEyMzQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuaXRlbXNpemUsIDQpCiAKICAgICAgICAgcyA9ICdceDAwPSJcJ2FcXGJceDgwXHhmZlx1MDAwMFx1MDAwMVx1MTIzNCcKICAgICAgICAgYSA9IGFycmF5LmFycmF5KCd1JywgcykKQEAgLTEyMDUsNiArMTIzMywxOCBAQAogICAgIG1pbml0ZW1zaXplID0gNAogdGVzdHMuYXBwZW5kKFVuc2lnbmVkTG9uZ1Rlc3QpCiAKK0B1bml0dGVzdC5za2lwSWYobm90IGhhdmVfbG9uZ19sb25nLCAnbmVlZCBsb25nIGxvbmcgc3VwcG9ydCcpCitjbGFzcyBMb25nTG9uZ1Rlc3QoU2lnbmVkTnVtYmVyVGVzdCk6CisgICAgdHlwZWNvZGUgPSAncScKKyAgICBtaW5pdGVtc2l6ZSA9IDgKK3Rlc3RzLmFwcGVuZChMb25nTG9uZ1Rlc3QpCisKK0B1bml0dGVzdC5za2lwSWYobm90IGhhdmVfbG9uZ19sb25nLCAnbmVlZCBsb25nIGxvbmcgc3VwcG9ydCcpCitjbGFzcyBVbnNpZ25lZExvbmdMb25nVGVzdChVbnNpZ25lZE51bWJlclRlc3QpOgorICAgIHR5cGVjb2RlID0gJ1EnCisgICAgbWluaXRlbXNpemUgPSA4Cit0ZXN0cy5hcHBlbmQoVW5zaWduZWRMb25nTG9uZ1Rlc3QpCisKIGNsYXNzIEZQVGVzdChOdW1iZXJUZXN0KToKICAgICBleGFtcGxlID0gWy00Mi4wLCAwLCA0MiwgMWU1LCAtMWUxMF0KICAgICBzbWFsbGVyZXhhbXBsZSA9IFstNDIuMCwgMCwgNDIsIDFlNSwgLTJlMTBdCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2FzdC5weSBiL0xpYi90ZXN0L3Rlc3RfYXN0LnB5CmluZGV4IGUyMmQ0ZGUuLmFhMDgxNjYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfYXN0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYXN0LnB5CkBAIC0xLDYgKzEsMTAgQEAKLWltcG9ydCBzeXMsIHVuaXR0ZXN0Ci1mcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgYXN0CitpbXBvcnQgd2Vha3JlZgorCitmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIAogZGVmIHRvX3R1cGxlKHQpOgogICAgIGlmIHQgaXMgTm9uZSBvciBpc2luc3RhbmNlKHQsIChzdHIsIGludCwgY29tcGxleCkpOgpAQCAtNTIsNiArNTYsOSBAQAogICAgICJ3aGlsZSB2OnBhc3MiLAogICAgICMgSWYKICAgICAiaWYgdjpwYXNzIiwKKyAgICAjIFdpdGgKKyAgICAid2l0aCB4IGFzIHk6IHBhc3MiLAorICAgICJ3aXRoIHggYXMgeSwgeiBhcyBxOiBwYXNzIiwKICAgICAjIFJhaXNlCiAgICAgInJhaXNlIEV4Y2VwdGlvbignc3RyaW5nJykiLAogICAgICMgVHJ5RXhjZXB0CkBAIC0xOTEsNiArMTk4LDkgQEAKICAgICBkZWYgdGVzdF9BU1Rfb2JqZWN0cyhzZWxmKToKICAgICAgICAgeCA9IGFzdC5BU1QoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHguX2ZpZWxkcywgKCkpCisgICAgICAgIHguZm9vYmFyID0gNDIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LmZvb2JhciwgNDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC5fX2RpY3RfX1siZm9vYmFyIl0sIDQyKQogCiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgogICAgICAgICAgICAgeC52YXJhcmcKQEAgLTE5OSw2ICsyMDksMTcgQEAKICAgICAgICAgICAgICMgIl9hc3QuQVNUIGNvbnN0cnVjdG9yIHRha2VzIDAgcG9zaXRpb25hbCBhcmd1bWVudHMiCiAgICAgICAgICAgICBhc3QuQVNUKDIpCiAKKyAgICBkZWYgdGVzdF9BU1RfZ2FyYmFnZV9jb2xsZWN0aW9uKHNlbGYpOgorICAgICAgICBjbGFzcyBYOgorICAgICAgICAgICAgcGFzcworICAgICAgICBhID0gYXN0LkFTVCgpCisgICAgICAgIGEueCA9IFgoKQorICAgICAgICBhLnguYSA9IGEKKyAgICAgICAgcmVmID0gd2Vha3JlZi5yZWYoYS54KQorICAgICAgICBkZWwgYQorICAgICAgICBzdXBwb3J0LmdjX2NvbGxlY3QoKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZWYoKSkKKwogICAgIGRlZiB0ZXN0X3NuaXBwZXRzKHNlbGYpOgogICAgICAgICBmb3IgaW5wdXQsIG91dHB1dCwga2luZCBpbiAoKGV4ZWNfdGVzdHMsIGV4ZWNfcmVzdWx0cywgImV4ZWMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaW5nbGVfdGVzdHMsIHNpbmdsZV9yZXN1bHRzLCAic2luZ2xlIiksCkBAIC00OTgsOCArNTE5LDQxMyBAQAogICAgICAgICBzZWxmLmFzc2VydEluKCJpbnZhbGlkIGludGVnZXIgdmFsdWU6IE5vbmUiLCBzdHIoY20uZXhjZXB0aW9uKSkKIAogCitjbGFzcyBBU1RWYWxpZGF0b3JUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgbW9kKHNlbGYsIG1vZCwgbXNnPU5vbmUsIG1vZGU9ImV4ZWMiLCAqLCBleGM9VmFsdWVFcnJvcik6CisgICAgICAgIG1vZC5saW5lbm8gPSBtb2QuY29sX29mZnNldCA9IDAKKyAgICAgICAgYXN0LmZpeF9taXNzaW5nX2xvY2F0aW9ucyhtb2QpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXhjKSBhcyBjbToKKyAgICAgICAgICAgIGNvbXBpbGUobW9kLCAiPHRlc3Q+IiwgbW9kZSkKKyAgICAgICAgaWYgbXNnIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihtc2csIHN0cihjbS5leGNlcHRpb24pKQorCisgICAgZGVmIGV4cHIoc2VsZiwgbm9kZSwgbXNnPU5vbmUsICosIGV4Yz1WYWx1ZUVycm9yKToKKyAgICAgICAgbW9kID0gYXN0Lk1vZHVsZShbYXN0LkV4cHIobm9kZSldKQorICAgICAgICBzZWxmLm1vZChtb2QsIG1zZywgZXhjPWV4YykKKworICAgIGRlZiBzdG10KHNlbGYsIHN0bXQsIG1zZz1Ob25lKToKKyAgICAgICAgbW9kID0gYXN0Lk1vZHVsZShbc3RtdF0pCisgICAgICAgIHNlbGYubW9kKG1vZCwgbXNnKQorCisgICAgZGVmIHRlc3RfbW9kdWxlKHNlbGYpOgorICAgICAgICBtID0gYXN0LkludGVyYWN0aXZlKFthc3QuRXhwcihhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSldKQorICAgICAgICBzZWxmLm1vZChtLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIsICJzaW5nbGUiKQorICAgICAgICBtID0gYXN0LkV4cHJlc3Npb24oYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSkpCisgICAgICAgIHNlbGYubW9kKG0sICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IiwgImV2YWwiKQorCisgICAgZGVmIF9jaGVja19hcmd1bWVudHMoc2VsZiwgZmFjLCBjaGVjayk6CisgICAgICAgIGRlZiBhcmd1bWVudHMoYXJncz1Ob25lLCB2YXJhcmc9Tm9uZSwgdmFyYXJnYW5ub3RhdGlvbj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgIGt3b25seWFyZ3M9Tm9uZSwga3dhcmc9Tm9uZSwga3dhcmdhbm5vdGF0aW9uPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHM9Tm9uZSwga3dfZGVmYXVsdHM9Tm9uZSk6CisgICAgICAgICAgICBpZiBhcmdzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYXJncyA9IFtdCisgICAgICAgICAgICBpZiBrd29ubHlhcmdzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAga3dvbmx5YXJncyA9IFtdCisgICAgICAgICAgICBpZiBkZWZhdWx0cyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGRlZmF1bHRzID0gW10KKyAgICAgICAgICAgIGlmIGt3X2RlZmF1bHRzIGlzIE5vbmU6CisgICAgICAgICAgICAgICAga3dfZGVmYXVsdHMgPSBbXQorICAgICAgICAgICAgYXJncyA9IGFzdC5hcmd1bWVudHMoYXJncywgdmFyYXJnLCB2YXJhcmdhbm5vdGF0aW9uLCBrd29ubHlhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmcsIGt3YXJnYW5ub3RhdGlvbiwgZGVmYXVsdHMsIGt3X2RlZmF1bHRzKQorICAgICAgICAgICAgcmV0dXJuIGZhYyhhcmdzKQorICAgICAgICBhcmdzID0gW2FzdC5hcmcoIngiLCBhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSldCisgICAgICAgIGNoZWNrKGFyZ3VtZW50cyhhcmdzPWFyZ3MpLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisgICAgICAgIGNoZWNrKGFyZ3VtZW50cyh2YXJhcmdhbm5vdGF0aW9uPWFzdC5OdW0oMykpLAorICAgICAgICAgICAgICAidmFyYXJnYW5ub3RhdGlvbiBidXQgbm8gdmFyYXJnIikKKyAgICAgICAgY2hlY2soYXJndW1lbnRzKHZhcmFyZ2Fubm90YXRpb249YXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSksIHZhcmFyZz0ieCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgY2hlY2soYXJndW1lbnRzKGt3b25seWFyZ3M9YXJncyksICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgY2hlY2soYXJndW1lbnRzKGt3YXJnYW5ub3RhdGlvbj1hc3QuTnVtKDQyKSksCisgICAgICAgICAgICAgICAgICAgICAgICJrd2FyZ2Fubm90YXRpb24gYnV0IG5vIGt3YXJnIikKKyAgICAgICAgY2hlY2soYXJndW1lbnRzKGt3YXJnYW5ub3RhdGlvbj1hc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmc9IngiKSwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBjaGVjayhhcmd1bWVudHMoZGVmYXVsdHM9W2FzdC5OdW0oMyldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIm1vcmUgcG9zaXRpb25hbCBkZWZhdWx0cyB0aGFuIGFyZ3MiKQorICAgICAgICBjaGVjayhhcmd1bWVudHMoa3dfZGVmYXVsdHM9W2FzdC5OdW0oNCldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgImxlbmd0aCBvZiBrd29ubHlhcmdzIGlzIG5vdCB0aGUgc2FtZSBhcyBrd19kZWZhdWx0cyIpCisgICAgICAgIGFyZ3MgPSBbYXN0LmFyZygieCIsIGFzdC5OYW1lKCJ4IiwgYXN0LkxvYWQoKSkpXQorICAgICAgICBjaGVjayhhcmd1bWVudHMoYXJncz1hcmdzLCBkZWZhdWx0cz1bYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBhcmdzID0gW2FzdC5hcmcoImEiLCBhc3QuTmFtZSgieCIsIGFzdC5Mb2FkKCkpKSwKKyAgICAgICAgICAgICAgICBhc3QuYXJnKCJiIiwgYXN0Lk5hbWUoInkiLCBhc3QuTG9hZCgpKSldCisgICAgICAgIGNoZWNrKGFyZ3VtZW50cyhrd29ubHlhcmdzPWFyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGt3X2RlZmF1bHRzPVtOb25lLCBhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisKKyAgICBkZWYgdGVzdF9mdW5jZGVmKHNlbGYpOgorICAgICAgICBhID0gYXN0LmFyZ3VtZW50cyhbXSwgTm9uZSwgTm9uZSwgW10sIE5vbmUsIE5vbmUsIFtdLCBbXSkKKyAgICAgICAgZiA9IGFzdC5GdW5jdGlvbkRlZigieCIsIGEsIFtdLCBbXSwgTm9uZSkKKyAgICAgICAgc2VsZi5zdG10KGYsICJlbXB0eSBib2R5IG9uIEZ1bmN0aW9uRGVmIikKKyAgICAgICAgZiA9IGFzdC5GdW5jdGlvbkRlZigieCIsIGEsIFthc3QuUGFzcygpXSwgW2FzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lKQorICAgICAgICBzZWxmLnN0bXQoZiwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBmID0gYXN0LkZ1bmN0aW9uRGVmKCJ4IiwgYSwgW2FzdC5QYXNzKCldLCBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSkKKyAgICAgICAgc2VsZi5zdG10KGYsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgZGVmIGZhYyhhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBhc3QuRnVuY3Rpb25EZWYoIngiLCBhcmdzLCBbYXN0LlBhc3MoKV0sIFtdLCBOb25lKQorICAgICAgICBzZWxmLl9jaGVja19hcmd1bWVudHMoZmFjLCBzZWxmLnN0bXQpCisKKyAgICBkZWYgdGVzdF9jbGFzc2RlZihzZWxmKToKKyAgICAgICAgZGVmIGNscyhiYXNlcz1Ob25lLCBrZXl3b3Jkcz1Ob25lLCBzdGFyYXJncz1Ob25lLCBrd2FyZ3M9Tm9uZSwKKyAgICAgICAgICAgICAgICBib2R5PU5vbmUsIGRlY29yYXRvcl9saXN0PU5vbmUpOgorICAgICAgICAgICAgaWYgYmFzZXMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBiYXNlcyA9IFtdCisgICAgICAgICAgICBpZiBrZXl3b3JkcyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGtleXdvcmRzID0gW10KKyAgICAgICAgICAgIGlmIGJvZHkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBib2R5ID0gW2FzdC5QYXNzKCldCisgICAgICAgICAgICBpZiBkZWNvcmF0b3JfbGlzdCBpcyBOb25lOgorICAgICAgICAgICAgICAgIGRlY29yYXRvcl9saXN0ID0gW10KKyAgICAgICAgICAgIHJldHVybiBhc3QuQ2xhc3NEZWYoIm15Y2xhc3MiLCBiYXNlcywga2V5d29yZHMsIHN0YXJhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3MsIGJvZHksIGRlY29yYXRvcl9saXN0KQorICAgICAgICBzZWxmLnN0bXQoY2xzKGJhc2VzPVthc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKV0pLAorICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBzZWxmLnN0bXQoY2xzKGtleXdvcmRzPVthc3Qua2V5d29yZCgieCIsIGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpKV0pLAorICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBzZWxmLnN0bXQoY2xzKHN0YXJhcmdzPWFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpKSwKKyAgICAgICAgICAgICAgICAgICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgc2VsZi5zdG10KGNscyhrd2FyZ3M9YXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSkpLAorICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBzZWxmLnN0bXQoY2xzKGJvZHk9W10pLCAiZW1wdHkgYm9keSBvbiBDbGFzc0RlZiIpCisgICAgICAgIHNlbGYuc3RtdChjbHMoYm9keT1bTm9uZV0pLCAiTm9uZSBkaXNhbGxvd2VkIikKKyAgICAgICAgc2VsZi5zdG10KGNscyhkZWNvcmF0b3JfbGlzdD1bYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSldKSwKKyAgICAgICAgICAgICAgICAgICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKworICAgIGRlZiB0ZXN0X2RlbGV0ZShzZWxmKToKKyAgICAgICAgc2VsZi5zdG10KGFzdC5EZWxldGUoW10pLCAiZW1wdHkgdGFyZ2V0cyBvbiBEZWxldGUiKQorICAgICAgICBzZWxmLnN0bXQoYXN0LkRlbGV0ZShbTm9uZV0pLCAiTm9uZSBkaXNhbGxvd2VkIikKKyAgICAgICAgc2VsZi5zdG10KGFzdC5EZWxldGUoW2FzdC5OYW1lKCJ4IiwgYXN0LkxvYWQoKSldKSwKKyAgICAgICAgICAgICAgICAgICJtdXN0IGhhdmUgRGVsIGNvbnRleHQiKQorCisgICAgZGVmIHRlc3RfYXNzaWduKHNlbGYpOgorICAgICAgICBzZWxmLnN0bXQoYXN0LkFzc2lnbihbXSwgYXN0Lk51bSgzKSksICJlbXB0eSB0YXJnZXRzIG9uIEFzc2lnbiIpCisgICAgICAgIHNlbGYuc3RtdChhc3QuQXNzaWduKFtOb25lXSwgYXN0Lk51bSgzKSksICJOb25lIGRpc2FsbG93ZWQiKQorICAgICAgICBzZWxmLnN0bXQoYXN0LkFzc2lnbihbYXN0Lk5hbWUoIngiLCBhc3QuTG9hZCgpKV0sIGFzdC5OdW0oMykpLAorICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBTdG9yZSBjb250ZXh0IikKKyAgICAgICAgc2VsZi5zdG10KGFzdC5Bc3NpZ24oW2FzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0Lk5hbWUoInkiLCBhc3QuU3RvcmUoKSkpLAorICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorCisgICAgZGVmIHRlc3RfYXVnYXNzaWduKHNlbGYpOgorICAgICAgICBhdWcgPSBhc3QuQXVnQXNzaWduKGFzdC5OYW1lKCJ4IiwgYXN0LkxvYWQoKSksIGFzdC5BZGQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3QuTmFtZSgieSIsIGFzdC5Mb2FkKCkpKQorICAgICAgICBzZWxmLnN0bXQoYXVnLCAibXVzdCBoYXZlIFN0b3JlIGNvbnRleHQiKQorICAgICAgICBhdWcgPSBhc3QuQXVnQXNzaWduKGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpLCBhc3QuQWRkKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0Lk5hbWUoInkiLCBhc3QuU3RvcmUoKSkpCisgICAgICAgIHNlbGYuc3RtdChhdWcsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKworICAgIGRlZiB0ZXN0X2ZvcihzZWxmKToKKyAgICAgICAgeCA9IGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpCisgICAgICAgIHkgPSBhc3QuTmFtZSgieSIsIGFzdC5Mb2FkKCkpCisgICAgICAgIHAgPSBhc3QuUGFzcygpCisgICAgICAgIHNlbGYuc3RtdChhc3QuRm9yKHgsIHksIFtdLCBbXSksICJlbXB0eSBib2R5IG9uIEZvciIpCisgICAgICAgIHNlbGYuc3RtdChhc3QuRm9yKGFzdC5OYW1lKCJ4IiwgYXN0LkxvYWQoKSksIHksIFtwXSwgW10pLAorICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBTdG9yZSBjb250ZXh0IikKKyAgICAgICAgc2VsZi5zdG10KGFzdC5Gb3IoeCwgYXN0Lk5hbWUoInkiLCBhc3QuU3RvcmUoKSksIFtwXSwgW10pLAorICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBlID0gYXN0LkV4cHIoYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSkpCisgICAgICAgIHNlbGYuc3RtdChhc3QuRm9yKHgsIHksIFtlXSwgW10pLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisgICAgICAgIHNlbGYuc3RtdChhc3QuRm9yKHgsIHksIFtwXSwgW2VdKSwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorCisgICAgZGVmIHRlc3Rfd2hpbGUoc2VsZik6CisgICAgICAgIHNlbGYuc3RtdChhc3QuV2hpbGUoYXN0Lk51bSgzKSwgW10sIFtdKSwgImVtcHR5IGJvZHkgb24gV2hpbGUiKQorICAgICAgICBzZWxmLnN0bXQoYXN0LldoaWxlKGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpLCBbYXN0LlBhc3MoKV0sIFtdKSwKKyAgICAgICAgICAgICAgICAgICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgc2VsZi5zdG10KGFzdC5XaGlsZShhc3QuTnVtKDMpLCBbYXN0LlBhc3MoKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthc3QuRXhwcihhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorCisgICAgZGVmIHRlc3RfaWYoc2VsZik6CisgICAgICAgIHNlbGYuc3RtdChhc3QuSWYoYXN0Lk51bSgzKSwgW10sIFtdKSwgImVtcHR5IGJvZHkgb24gSWYiKQorICAgICAgICBpID0gYXN0LklmKGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpLCBbYXN0LlBhc3MoKV0sIFtdKQorICAgICAgICBzZWxmLnN0bXQoaSwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBpID0gYXN0LklmKGFzdC5OdW0oMyksIFthc3QuRXhwcihhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSldLCBbXSkKKyAgICAgICAgc2VsZi5zdG10KGksICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgaSA9IGFzdC5JZihhc3QuTnVtKDMpLCBbYXN0LlBhc3MoKV0sCisgICAgICAgICAgICAgICAgICAgW2FzdC5FeHByKGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpKV0pCisgICAgICAgIHNlbGYuc3RtdChpLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisKKyAgICBkZWYgdGVzdF93aXRoKHNlbGYpOgorICAgICAgICBwID0gYXN0LlBhc3MoKQorICAgICAgICBzZWxmLnN0bXQoYXN0LldpdGgoW10sIFtwXSksICJlbXB0eSBpdGVtcyBvbiBXaXRoIikKKyAgICAgICAgaSA9IGFzdC53aXRoaXRlbShhc3QuTnVtKDMpLCBOb25lKQorICAgICAgICBzZWxmLnN0bXQoYXN0LldpdGgoW2ldLCBbXSksICJlbXB0eSBib2R5IG9uIFdpdGgiKQorICAgICAgICBpID0gYXN0LndpdGhpdGVtKGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpLCBOb25lKQorICAgICAgICBzZWxmLnN0bXQoYXN0LldpdGgoW2ldLCBbcF0pLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisgICAgICAgIGkgPSBhc3Qud2l0aGl0ZW0oYXN0Lk51bSgzKSwgYXN0Lk5hbWUoIngiLCBhc3QuTG9hZCgpKSkKKyAgICAgICAgc2VsZi5zdG10KGFzdC5XaXRoKFtpXSwgW3BdKSwgIm11c3QgaGF2ZSBTdG9yZSBjb250ZXh0IikKKworICAgIGRlZiB0ZXN0X3JhaXNlKHNlbGYpOgorICAgICAgICByID0gYXN0LlJhaXNlKE5vbmUsIGFzdC5OdW0oMykpCisgICAgICAgIHNlbGYuc3RtdChyLCAiUmFpc2Ugd2l0aCBjYXVzZSBidXQgbm8gZXhjZXB0aW9uIikKKyAgICAgICAgciA9IGFzdC5SYWlzZShhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSwgTm9uZSkKKyAgICAgICAgc2VsZi5zdG10KHIsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgciA9IGFzdC5SYWlzZShhc3QuTnVtKDQpLCBhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSkKKyAgICAgICAgc2VsZi5zdG10KHIsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKworICAgIGRlZiB0ZXN0X3RyeShzZWxmKToKKyAgICAgICAgcCA9IGFzdC5QYXNzKCkKKyAgICAgICAgdCA9IGFzdC5UcnkoW10sIFtdLCBbXSwgW3BdKQorICAgICAgICBzZWxmLnN0bXQodCwgImVtcHR5IGJvZHkgb24gVHJ5IikKKyAgICAgICAgdCA9IGFzdC5UcnkoW2FzdC5FeHByKGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpKV0sIFtdLCBbXSwgW3BdKQorICAgICAgICBzZWxmLnN0bXQodCwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICB0ID0gYXN0LlRyeShbcF0sIFtdLCBbXSwgW10pCisgICAgICAgIHNlbGYuc3RtdCh0LCAiVHJ5IGhhcyBuZWl0aGVyIGV4Y2VwdCBoYW5kbGVycyBub3IgZmluYWxib2R5IikKKyAgICAgICAgdCA9IGFzdC5UcnkoW3BdLCBbXSwgW3BdLCBbcF0pCisgICAgICAgIHNlbGYuc3RtdCh0LCAiVHJ5IGhhcyBvcmVsc2UgYnV0IG5vIGV4Y2VwdCBoYW5kbGVycyIpCisgICAgICAgIHQgPSBhc3QuVHJ5KFtwXSwgW2FzdC5FeGNlcHRIYW5kbGVyKE5vbmUsICJ4IiwgW10pXSwgW10sIFtdKQorICAgICAgICBzZWxmLnN0bXQodCwgImVtcHR5IGJvZHkgb24gRXhjZXB0SGFuZGxlciIpCisgICAgICAgIGUgPSBbYXN0LkV4Y2VwdEhhbmRsZXIoYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSksICJ5IiwgW3BdKV0KKyAgICAgICAgc2VsZi5zdG10KGFzdC5UcnkoW3BdLCBlLCBbXSwgW10pLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisgICAgICAgIGUgPSBbYXN0LkV4Y2VwdEhhbmRsZXIoTm9uZSwgIngiLCBbcF0pXQorICAgICAgICB0ID0gYXN0LlRyeShbcF0sIGUsIFthc3QuRXhwcihhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSldLCBbcF0pCisgICAgICAgIHNlbGYuc3RtdCh0LCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisgICAgICAgIHQgPSBhc3QuVHJ5KFtwXSwgZSwgW3BdLCBbYXN0LkV4cHIoYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSkpXSkKKyAgICAgICAgc2VsZi5zdG10KHQsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKworICAgIGRlZiB0ZXN0X2Fzc2VydChzZWxmKToKKyAgICAgICAgc2VsZi5zdG10KGFzdC5Bc3NlcnQoYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSksIE5vbmUpLAorICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBhc3NydCA9IGFzdC5Bc3NlcnQoYXN0Lk5hbWUoIngiLCBhc3QuTG9hZCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5OYW1lKCJ5IiwgYXN0LlN0b3JlKCkpKQorICAgICAgICBzZWxmLnN0bXQoYXNzcnQsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKworICAgIGRlZiB0ZXN0X2ltcG9ydChzZWxmKToKKyAgICAgICAgc2VsZi5zdG10KGFzdC5JbXBvcnQoW10pLCAiZW1wdHkgbmFtZXMgb24gSW1wb3J0IikKKworICAgIGRlZiB0ZXN0X2ltcG9ydGZyb20oc2VsZik6CisgICAgICAgIGltcCA9IGFzdC5JbXBvcnRGcm9tKE5vbmUsIFthc3QuYWxpYXMoIngiLCBOb25lKV0sIC00MikKKyAgICAgICAgc2VsZi5zdG10KGltcCwgImxldmVsIGxlc3MgdGhhbiAtMSIpCisgICAgICAgIHNlbGYuc3RtdChhc3QuSW1wb3J0RnJvbShOb25lLCBbXSwgMCksICJlbXB0eSBuYW1lcyBvbiBJbXBvcnRGcm9tIikKKworICAgIGRlZiB0ZXN0X2dsb2JhbChzZWxmKToKKyAgICAgICAgc2VsZi5zdG10KGFzdC5HbG9iYWwoW10pLCAiZW1wdHkgbmFtZXMgb24gR2xvYmFsIikKKworICAgIGRlZiB0ZXN0X25vbmxvY2FsKHNlbGYpOgorICAgICAgICBzZWxmLnN0bXQoYXN0Lk5vbmxvY2FsKFtdKSwgImVtcHR5IG5hbWVzIG9uIE5vbmxvY2FsIikKKworICAgIGRlZiB0ZXN0X2V4cHIoc2VsZik6CisgICAgICAgIGUgPSBhc3QuRXhwcihhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSkKKyAgICAgICAgc2VsZi5zdG10KGUsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKworICAgIGRlZiB0ZXN0X2Jvb2xvcChzZWxmKToKKyAgICAgICAgYiA9IGFzdC5Cb29sT3AoYXN0LkFuZCgpLCBbXSkKKyAgICAgICAgc2VsZi5leHByKGIsICJsZXNzIHRoYW4gMiB2YWx1ZXMiKQorICAgICAgICBiID0gYXN0LkJvb2xPcChhc3QuQW5kKCksIFthc3QuTnVtKDMpXSkKKyAgICAgICAgc2VsZi5leHByKGIsICJsZXNzIHRoYW4gMiB2YWx1ZXMiKQorICAgICAgICBiID0gYXN0LkJvb2xPcChhc3QuQW5kKCksIFthc3QuTnVtKDQpLCBOb25lXSkKKyAgICAgICAgc2VsZi5leHByKGIsICJOb25lIGRpc2FsbG93ZWQiKQorICAgICAgICBiID0gYXN0LkJvb2xPcChhc3QuQW5kKCksIFthc3QuTnVtKDQpLCBhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKV0pCisgICAgICAgIHNlbGYuZXhwcihiLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisKKyAgICBkZWYgdGVzdF91bmFyeW9wKHNlbGYpOgorICAgICAgICB1ID0gYXN0LlVuYXJ5T3AoYXN0Lk5vdCgpLCBhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSkKKyAgICAgICAgc2VsZi5leHByKHUsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKworICAgIGRlZiB0ZXN0X2xhbWJkYShzZWxmKToKKyAgICAgICAgYSA9IGFzdC5hcmd1bWVudHMoW10sIE5vbmUsIE5vbmUsIFtdLCBOb25lLCBOb25lLCBbXSwgW10pCisgICAgICAgIHNlbGYuZXhwcihhc3QuTGFtYmRhKGEsIGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpKSwKKyAgICAgICAgICAgICAgICAgICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgZGVmIGZhYyhhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBhc3QuTGFtYmRhKGFyZ3MsIGFzdC5OYW1lKCJ4IiwgYXN0LkxvYWQoKSkpCisgICAgICAgIHNlbGYuX2NoZWNrX2FyZ3VtZW50cyhmYWMsIHNlbGYuZXhwcikKKworICAgIGRlZiB0ZXN0X2lmZXhwKHNlbGYpOgorICAgICAgICBsID0gYXN0Lk5hbWUoIngiLCBhc3QuTG9hZCgpKQorICAgICAgICBzID0gYXN0Lk5hbWUoInkiLCBhc3QuU3RvcmUoKSkKKyAgICAgICAgZm9yIGFyZ3MgaW4gKHMsIGwsIGwpLCAobCwgcywgbCksIChsLCBsLCBzKToKKyAgICAgICAgICAgIHNlbGYuZXhwcihhc3QuSWZFeHAoKmFyZ3MpLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisKKyAgICBkZWYgdGVzdF9kaWN0KHNlbGYpOgorICAgICAgICBkID0gYXN0LkRpY3QoW10sIFthc3QuTmFtZSgieCIsIGFzdC5Mb2FkKCkpXSkKKyAgICAgICAgc2VsZi5leHByKGQsICJzYW1lIG51bWJlciBvZiBrZXlzIGFzIHZhbHVlcyIpCisgICAgICAgIGQgPSBhc3QuRGljdChbTm9uZV0sIFthc3QuTmFtZSgieCIsIGFzdC5Mb2FkKCkpXSkKKyAgICAgICAgc2VsZi5leHByKGQsICJOb25lIGRpc2FsbG93ZWQiKQorICAgICAgICBkID0gYXN0LkRpY3QoW2FzdC5OYW1lKCJ4IiwgYXN0LkxvYWQoKSldLCBbTm9uZV0pCisgICAgICAgIHNlbGYuZXhwcihkLCAiTm9uZSBkaXNhbGxvd2VkIikKKworICAgIGRlZiB0ZXN0X3NldChzZWxmKToKKyAgICAgICAgc2VsZi5leHByKGFzdC5TZXQoW05vbmVdKSwgIk5vbmUgZGlzYWxsb3dlZCIpCisgICAgICAgIHMgPSBhc3QuU2V0KFthc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKV0pCisgICAgICAgIHNlbGYuZXhwcihzLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisKKyAgICBkZWYgX2NoZWNrX2NvbXByZWhlbnNpb24oc2VsZiwgZmFjKToKKyAgICAgICAgc2VsZi5leHByKGZhYyhbXSksICJjb21wcmVoZW5zaW9uIHdpdGggbm8gZ2VuZXJhdG9ycyIpCisgICAgICAgIGcgPSBhc3QuY29tcHJlaGVuc2lvbihhc3QuTmFtZSgieCIsIGFzdC5Mb2FkKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0Lk5hbWUoIngiLCBhc3QuTG9hZCgpKSwgW10pCisgICAgICAgIHNlbGYuZXhwcihmYWMoW2ddKSwgIm11c3QgaGF2ZSBTdG9yZSBjb250ZXh0IikKKyAgICAgICAgZyA9IGFzdC5jb21wcmVoZW5zaW9uKGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSksIFtdKQorICAgICAgICBzZWxmLmV4cHIoZmFjKFtnXSksICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgeCA9IGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpCisgICAgICAgIHkgPSBhc3QuTmFtZSgieSIsIGFzdC5Mb2FkKCkpCisgICAgICAgIGcgPSBhc3QuY29tcHJlaGVuc2lvbih4LCB5LCBbTm9uZV0pCisgICAgICAgIHNlbGYuZXhwcihmYWMoW2ddKSwgIk5vbmUgZGlzYWxsb3dlZCIpCisgICAgICAgIGcgPSBhc3QuY29tcHJlaGVuc2lvbih4LCB5LCBbYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSldKQorICAgICAgICBzZWxmLmV4cHIoZmFjKFtnXSksICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKworICAgIGRlZiBfc2ltcGxlX2NvbXAoc2VsZiwgZmFjKToKKyAgICAgICAgZyA9IGFzdC5jb21wcmVoZW5zaW9uKGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0Lk5hbWUoIngiLCBhc3QuTG9hZCgpKSwgW10pCisgICAgICAgIHNlbGYuZXhwcihmYWMoYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSksIFtnXSksCisgICAgICAgICAgICAgICAgICAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisgICAgICAgIGRlZiB3cmFwKGdlbnMpOgorICAgICAgICAgICAgcmV0dXJuIGZhYyhhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSwgZ2VucykKKyAgICAgICAgc2VsZi5fY2hlY2tfY29tcHJlaGVuc2lvbih3cmFwKQorCisgICAgZGVmIHRlc3RfbGlzdGNvbXAoc2VsZik6CisgICAgICAgIHNlbGYuX3NpbXBsZV9jb21wKGFzdC5MaXN0Q29tcCkKKworICAgIGRlZiB0ZXN0X3NldGNvbXAoc2VsZik6CisgICAgICAgIHNlbGYuX3NpbXBsZV9jb21wKGFzdC5TZXRDb21wKQorCisgICAgZGVmIHRlc3RfZ2VuZXJhdG9yZXhwKHNlbGYpOgorICAgICAgICBzZWxmLl9zaW1wbGVfY29tcChhc3QuR2VuZXJhdG9yRXhwKQorCisgICAgZGVmIHRlc3RfZGljdGNvbXAoc2VsZik6CisgICAgICAgIGcgPSBhc3QuY29tcHJlaGVuc2lvbihhc3QuTmFtZSgieSIsIGFzdC5TdG9yZSgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5OYW1lKCJwIiwgYXN0LkxvYWQoKSksIFtdKQorICAgICAgICBjID0gYXN0LkRpY3RDb21wKGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5OYW1lKCJ5IiwgYXN0LkxvYWQoKSksIFtnXSkKKyAgICAgICAgc2VsZi5leHByKGMsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgYyA9IGFzdC5EaWN0Q29tcChhc3QuTmFtZSgieCIsIGFzdC5Mb2FkKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5OYW1lKCJ5IiwgYXN0LlN0b3JlKCkpLCBbZ10pCisgICAgICAgIHNlbGYuZXhwcihjLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisgICAgICAgIGRlZiBmYWN0b3J5KGNvbXBzKToKKyAgICAgICAgICAgIGsgPSBhc3QuTmFtZSgieCIsIGFzdC5Mb2FkKCkpCisgICAgICAgICAgICB2ID0gYXN0Lk5hbWUoInkiLCBhc3QuTG9hZCgpKQorICAgICAgICAgICAgcmV0dXJuIGFzdC5EaWN0Q29tcChrLCB2LCBjb21wcykKKyAgICAgICAgc2VsZi5fY2hlY2tfY29tcHJlaGVuc2lvbihmYWN0b3J5KQorCisgICAgZGVmIHRlc3RfeWllbGQoc2VsZik6CisgICAgICAgIHNlbGYuZXhwcihhc3QuWWllbGQoYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSkpLCAibXVzdCBoYXZlIExvYWQiKQorICAgICAgICBzZWxmLmV4cHIoYXN0LllpZWxkRnJvbShhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSksICJtdXN0IGhhdmUgTG9hZCIpCisKKyAgICBkZWYgdGVzdF9jb21wYXJlKHNlbGYpOgorICAgICAgICBsZWZ0ID0gYXN0Lk5hbWUoIngiLCBhc3QuTG9hZCgpKQorICAgICAgICBjb21wID0gYXN0LkNvbXBhcmUobGVmdCwgW2FzdC5JbigpXSwgW10pCisgICAgICAgIHNlbGYuZXhwcihjb21wLCAibm8gY29tcGFyYXRvcnMiKQorICAgICAgICBjb21wID0gYXN0LkNvbXBhcmUobGVmdCwgW2FzdC5JbigpXSwgW2FzdC5OdW0oNCksIGFzdC5OdW0oNSldKQorICAgICAgICBzZWxmLmV4cHIoY29tcCwgImRpZmZlcmVudCBudW1iZXIgb2YgY29tcGFyYXRvcnMgYW5kIG9wZXJhbmRzIikKKyAgICAgICAgY29tcCA9IGFzdC5Db21wYXJlKGFzdC5OdW0oImJsYWgiKSwgW2FzdC5JbigpXSwgW2xlZnRdKQorICAgICAgICBzZWxmLmV4cHIoY29tcCwgIm5vbi1udW1lcmljIiwgZXhjPVR5cGVFcnJvcikKKyAgICAgICAgY29tcCA9IGFzdC5Db21wYXJlKGxlZnQsIFthc3QuSW4oKV0sIFthc3QuTnVtKCJibGFoIildKQorICAgICAgICBzZWxmLmV4cHIoY29tcCwgIm5vbi1udW1lcmljIiwgZXhjPVR5cGVFcnJvcikKKworICAgIGRlZiB0ZXN0X2NhbGwoc2VsZik6CisgICAgICAgIGZ1bmMgPSBhc3QuTmFtZSgieCIsIGFzdC5Mb2FkKCkpCisgICAgICAgIGFyZ3MgPSBbYXN0Lk5hbWUoInkiLCBhc3QuTG9hZCgpKV0KKyAgICAgICAga2V5d29yZHMgPSBbYXN0LmtleXdvcmQoInciLCBhc3QuTmFtZSgieiIsIGFzdC5Mb2FkKCkpKV0KKyAgICAgICAgc3RhcmFyZyA9IGFzdC5OYW1lKCJwIiwgYXN0LkxvYWQoKSkKKyAgICAgICAga3dhcmcgPSBhc3QuTmFtZSgicSIsIGFzdC5Mb2FkKCkpCisgICAgICAgIGNhbGwgPSBhc3QuQ2FsbChhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSwgYXJncywga2V5d29yZHMsIHN0YXJhcmcsCisgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZykKKyAgICAgICAgc2VsZi5leHByKGNhbGwsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgY2FsbCA9IGFzdC5DYWxsKGZ1bmMsIFtOb25lXSwga2V5d29yZHMsIHN0YXJhcmcsIGt3YXJnKQorICAgICAgICBzZWxmLmV4cHIoY2FsbCwgIk5vbmUgZGlzYWxsb3dlZCIpCisgICAgICAgIGJhZF9rZXl3b3JkcyA9IFthc3Qua2V5d29yZCgidyIsIGFzdC5OYW1lKCJ6IiwgYXN0LlN0b3JlKCkpKV0KKyAgICAgICAgY2FsbCA9IGFzdC5DYWxsKGZ1bmMsIGFyZ3MsIGJhZF9rZXl3b3Jkcywgc3RhcmFyZywga3dhcmcpCisgICAgICAgIHNlbGYuZXhwcihjYWxsLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisgICAgICAgIGNhbGwgPSBhc3QuQ2FsbChmdW5jLCBhcmdzLCBrZXl3b3JkcywgYXN0Lk5hbWUoInoiLCBhc3QuU3RvcmUoKSksIGt3YXJnKQorICAgICAgICBzZWxmLmV4cHIoY2FsbCwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBjYWxsID0gYXN0LkNhbGwoZnVuYywgYXJncywga2V5d29yZHMsIHN0YXJhcmcsCisgICAgICAgICAgICAgICAgICAgICAgICBhc3QuTmFtZSgidyIsIGFzdC5TdG9yZSgpKSkKKyAgICAgICAgc2VsZi5leHByKGNhbGwsICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKworICAgIGRlZiB0ZXN0X251bShzZWxmKToKKyAgICAgICAgY2xhc3Mgc3ViaW50KGludCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGNsYXNzIHN1YmZsb2F0KGZsb2F0KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgY2xhc3Mgc3ViY29tcGxleChjb21wbGV4KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZm9yIG9iaiBpbiAiMCIsICJoZWxsbyIsIHN1YmludCgpLCBzdWJmbG9hdCgpLCBzdWJjb21wbGV4KCk6CisgICAgICAgICAgICBzZWxmLmV4cHIoYXN0Lk51bShvYmopLCAibm9uLW51bWVyaWMiLCBleGM9VHlwZUVycm9yKQorCisgICAgZGVmIHRlc3RfYXR0cmlidXRlKHNlbGYpOgorICAgICAgICBhdHRyID0gYXN0LkF0dHJpYnV0ZShhc3QuTmFtZSgieCIsIGFzdC5TdG9yZSgpKSwgInkiLCBhc3QuTG9hZCgpKQorICAgICAgICBzZWxmLmV4cHIoYXR0ciwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorCisgICAgZGVmIHRlc3Rfc3Vic2NyaXB0KHNlbGYpOgorICAgICAgICBzdWIgPSBhc3QuU3Vic2NyaXB0KGFzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpLCBhc3QuSW5kZXgoYXN0Lk51bSgzKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0LkxvYWQoKSkKKyAgICAgICAgc2VsZi5leHByKHN1YiwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICB4ID0gYXN0Lk5hbWUoIngiLCBhc3QuTG9hZCgpKQorICAgICAgICBzdWIgPSBhc3QuU3Vic2NyaXB0KHgsIGFzdC5JbmRleChhc3QuTmFtZSgieSIsIGFzdC5TdG9yZSgpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0LkxvYWQoKSkKKyAgICAgICAgc2VsZi5leHByKHN1YiwgIm11c3QgaGF2ZSBMb2FkIGNvbnRleHQiKQorICAgICAgICBzID0gYXN0Lk5hbWUoIngiLCBhc3QuU3RvcmUoKSkKKyAgICAgICAgZm9yIGFyZ3MgaW4gKHMsIE5vbmUsIE5vbmUpLCAoTm9uZSwgcywgTm9uZSksIChOb25lLCBOb25lLCBzKToKKyAgICAgICAgICAgIHNsID0gYXN0LlNsaWNlKCphcmdzKQorICAgICAgICAgICAgc2VsZi5leHByKGFzdC5TdWJzY3JpcHQoeCwgc2wsIGFzdC5Mb2FkKCkpLAorICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGhhdmUgTG9hZCBjb250ZXh0IikKKyAgICAgICAgc2wgPSBhc3QuRXh0U2xpY2UoW10pCisgICAgICAgIHNlbGYuZXhwcihhc3QuU3Vic2NyaXB0KHgsIHNsLCBhc3QuTG9hZCgpKSwgImVtcHR5IGRpbXMgb24gRXh0U2xpY2UiKQorICAgICAgICBzbCA9IGFzdC5FeHRTbGljZShbYXN0LkluZGV4KHMpXSkKKyAgICAgICAgc2VsZi5leHByKGFzdC5TdWJzY3JpcHQoeCwgc2wsIGFzdC5Mb2FkKCkpLCAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisKKyAgICBkZWYgdGVzdF9zdGFycmVkKHNlbGYpOgorICAgICAgICBsZWZ0ID0gYXN0Lkxpc3QoW2FzdC5TdGFycmVkKGFzdC5OYW1lKCJ4IiwgYXN0LkxvYWQoKSksIGFzdC5TdG9yZSgpKV0sCisgICAgICAgICAgICAgICAgICAgICAgICBhc3QuU3RvcmUoKSkKKyAgICAgICAgYXNzaWduID0gYXN0LkFzc2lnbihbbGVmdF0sIGFzdC5OdW0oNCkpCisgICAgICAgIHNlbGYuc3RtdChhc3NpZ24sICJtdXN0IGhhdmUgU3RvcmUgY29udGV4dCIpCisKKyAgICBkZWYgX3NlcXVlbmNlKHNlbGYsIGZhYyk6CisgICAgICAgIHNlbGYuZXhwcihmYWMoW05vbmVdLCBhc3QuTG9hZCgpKSwgIk5vbmUgZGlzYWxsb3dlZCIpCisgICAgICAgIHNlbGYuZXhwcihmYWMoW2FzdC5OYW1lKCJ4IiwgYXN0LlN0b3JlKCkpXSwgYXN0LkxvYWQoKSksCisgICAgICAgICAgICAgICAgICAibXVzdCBoYXZlIExvYWQgY29udGV4dCIpCisKKyAgICBkZWYgdGVzdF9saXN0KHNlbGYpOgorICAgICAgICBzZWxmLl9zZXF1ZW5jZShhc3QuTGlzdCkKKworICAgIGRlZiB0ZXN0X3R1cGxlKHNlbGYpOgorICAgICAgICBzZWxmLl9zZXF1ZW5jZShhc3QuVHVwbGUpCisKKyAgICBkZWYgdGVzdF9zdGRsaWJfdmFsaWRhdGVzKHNlbGYpOgorICAgICAgICBzdGRsaWIgPSBvcy5wYXRoLmRpcm5hbWUoYXN0Ll9fZmlsZV9fKQorICAgICAgICB0ZXN0cyA9IFtmbiBmb3IgZm4gaW4gb3MubGlzdGRpcihzdGRsaWIpIGlmIGZuLmVuZHN3aXRoKCIucHkiKV0KKyAgICAgICAgdGVzdHMuZXh0ZW5kKFsidGVzdC90ZXN0X2dyYW1tYXIucHkiLCAidGVzdC90ZXN0X3VucGFja19leC5weSJdKQorICAgICAgICBmb3IgbW9kdWxlIGluIHRlc3RzOgorICAgICAgICAgICAgZm4gPSBvcy5wYXRoLmpvaW4oc3RkbGliLCBtb2R1bGUpCisgICAgICAgICAgICB3aXRoIG9wZW4oZm4sICJyIiwgZW5jb2Rpbmc9InV0Zi04IikgYXMgZnA6CisgICAgICAgICAgICAgICAgc291cmNlID0gZnAucmVhZCgpCisgICAgICAgICAgICBtb2QgPSBhc3QucGFyc2Uoc291cmNlKQorICAgICAgICAgICAgY29tcGlsZShtb2QsIGZuLCAiZXhlYyIpCisKKwogZGVmIHRlc3RfbWFpbigpOgotICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KEFTVF9UZXN0cywgQVNUSGVscGVyc19UZXN0KQorICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KEFTVF9UZXN0cywgQVNUSGVscGVyc19UZXN0LCBBU1RWYWxpZGF0b3JUZXN0cykKIAogZGVmIG1haW4oKToKICAgICBpZiBfX25hbWVfXyAhPSAnX19tYWluX18nOgpAQCAtNTMzLDkgKzk1OSwxMSBAQAogKCdNb2R1bGUnLCBbKCdGb3InLCAoMSwgMCksICgnTmFtZScsICgxLCA0KSwgJ3YnLCAoJ1N0b3JlJywpKSwgKCdOYW1lJywgKDEsIDkpLCAndicsICgnTG9hZCcsKSksIFsoJ1Bhc3MnLCAoMSwgMTEpKV0sIFtdKV0pLAogKCdNb2R1bGUnLCBbKCdXaGlsZScsICgxLCAwKSwgKCdOYW1lJywgKDEsIDYpLCAndicsICgnTG9hZCcsKSksIFsoJ1Bhc3MnLCAoMSwgOCkpXSwgW10pXSksCiAoJ01vZHVsZScsIFsoJ0lmJywgKDEsIDApLCAoJ05hbWUnLCAoMSwgMyksICd2JywgKCdMb2FkJywpKSwgWygnUGFzcycsICgxLCA1KSldLCBbXSldKSwKKygnTW9kdWxlJywgWygnV2l0aCcsICgxLCAwKSwgWygnd2l0aGl0ZW0nLCAoJ05hbWUnLCAoMSwgNSksICd4JywgKCdMb2FkJywpKSwgKCdOYW1lJywgKDEsIDEwKSwgJ3knLCAoJ1N0b3JlJywpKSldLCBbKCdQYXNzJywgKDEsIDEzKSldKV0pLAorKCdNb2R1bGUnLCBbKCdXaXRoJywgKDEsIDApLCBbKCd3aXRoaXRlbScsICgnTmFtZScsICgxLCA1KSwgJ3gnLCAoJ0xvYWQnLCkpLCAoJ05hbWUnLCAoMSwgMTApLCAneScsICgnU3RvcmUnLCkpKSwgKCd3aXRoaXRlbScsICgnTmFtZScsICgxLCAxMyksICd6JywgKCdMb2FkJywpKSwgKCdOYW1lJywgKDEsIDE4KSwgJ3EnLCAoJ1N0b3JlJywpKSldLCBbKCdQYXNzJywgKDEsIDIxKSldKV0pLAogKCdNb2R1bGUnLCBbKCdSYWlzZScsICgxLCAwKSwgKCdDYWxsJywgKDEsIDYpLCAoJ05hbWUnLCAoMSwgNiksICdFeGNlcHRpb24nLCAoJ0xvYWQnLCkpLCBbKCdTdHInLCAoMSwgMTYpLCAnc3RyaW5nJyldLCBbXSwgTm9uZSwgTm9uZSksIE5vbmUpXSksCi0oJ01vZHVsZScsIFsoJ1RyeUV4Y2VwdCcsICgxLCAwKSwgWygnUGFzcycsICgyLCAyKSldLCBbKCdFeGNlcHRIYW5kbGVyJywgKDMsIDApLCAoJ05hbWUnLCAoMywgNyksICdFeGNlcHRpb24nLCAoJ0xvYWQnLCkpLCBOb25lLCBbKCdQYXNzJywgKDQsIDIpKV0pXSwgW10pXSksCi0oJ01vZHVsZScsIFsoJ1RyeUZpbmFsbHknLCAoMSwgMCksIFsoJ1Bhc3MnLCAoMiwgMikpXSwgWygnUGFzcycsICg0LCAyKSldKV0pLAorKCdNb2R1bGUnLCBbKCdUcnknLCAoMSwgMCksIFsoJ1Bhc3MnLCAoMiwgMikpXSwgWygnRXhjZXB0SGFuZGxlcicsICgzLCAwKSwgKCdOYW1lJywgKDMsIDcpLCAnRXhjZXB0aW9uJywgKCdMb2FkJywpKSwgTm9uZSwgWygnUGFzcycsICg0LCAyKSldKV0sIFtdLCBbXSldKSwKKygnTW9kdWxlJywgWygnVHJ5JywgKDEsIDApLCBbKCdQYXNzJywgKDIsIDIpKV0sIFtdLCBbXSwgWygnUGFzcycsICg0LCAyKSldKV0pLAogKCdNb2R1bGUnLCBbKCdBc3NlcnQnLCAoMSwgMCksICgnTmFtZScsICgxLCA3KSwgJ3YnLCAoJ0xvYWQnLCkpLCBOb25lKV0pLAogKCdNb2R1bGUnLCBbKCdJbXBvcnQnLCAoMSwgMCksIFsoJ2FsaWFzJywgJ3N5cycsIE5vbmUpXSldKSwKICgnTW9kdWxlJywgWygnSW1wb3J0RnJvbScsICgxLCAwKSwgJ3N5cycsIFsoJ2FsaWFzJywgJ3YnLCBOb25lKV0sIDApXSksCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2FzeW5jb3JlLnB5IGIvTGliL3Rlc3QvdGVzdF9hc3luY29yZS5weQppbmRleCA1ZjU1ZGY4Li40MmEyNTI1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2FzeW5jb3JlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYXN5bmNvcmUucHkKQEAgLTIxLDYgKzIxLDggQEAKIAogSE9TVCA9IHN1cHBvcnQuSE9TVAogCitIQVNfVU5JWF9TT0NLRVRTID0gaGFzYXR0cihzb2NrZXQsICdBRl9VTklYJykKKwogY2xhc3MgZHVtbXlzb2NrZXQ6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBzZWxmLmNsb3NlZCA9IEZhbHNlCkBAIC03MiwxNSArNzQsMTYgQEAKICAgICAgICAgcGFzcwogICAgIGVsc2U6CiAgICAgICAgIG4gPSAyMDAKLSAgICAgICAgd2hpbGUgbiA+IDA6Ci0gICAgICAgICAgICByLCB3LCBlID0gc2VsZWN0LnNlbGVjdChbY29ubl0sIFtdLCBbXSkKKyAgICAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQorICAgICAgICB3aGlsZSBuID4gMCBhbmQgdGltZS50aW1lKCkgLSBzdGFydCA8IDMuMDoKKyAgICAgICAgICAgIHIsIHcsIGUgPSBzZWxlY3Quc2VsZWN0KFtjb25uXSwgW10sIFtdLCAwLjEpCiAgICAgICAgICAgICBpZiByOgorICAgICAgICAgICAgICAgIG4gLT0gMQogICAgICAgICAgICAgICAgIGRhdGEgPSBjb25uLnJlY3YoMTApCiAgICAgICAgICAgICAgICAgIyBrZWVwIGV2ZXJ5dGhpbmcgZXhjZXB0IGZvciB0aGUgbmV3bGluZSB0ZXJtaW5hdG9yCiAgICAgICAgICAgICAgICAgYnVmLndyaXRlKGRhdGEucmVwbGFjZShiJ1xuJywgYicnKSkKICAgICAgICAgICAgICAgICBpZiBiJ1xuJyBpbiBkYXRhOgogICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgbiAtPSAxCiAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMDEpCiAKICAgICAgICAgY29ubi5jbG9zZSgpCkBAIC04OCw2ICs5MSwxMyBAQAogICAgICAgICBzZXJ2LmNsb3NlKCkKICAgICAgICAgZXZ0LnNldCgpCiAKK2RlZiBiaW5kX2FmX2F3YXJlKHNvY2ssIGFkZHIpOgorICAgICIiIkhlbHBlciBmdW5jdGlvbiB0byBiaW5kIGEgc29ja2V0IGFjY29yZGluZyB0byBpdHMgZmFtaWx5LiIiIgorICAgIGlmIEhBU19VTklYX1NPQ0tFVFMgYW5kIHNvY2suZmFtaWx5ID09IHNvY2tldC5BRl9VTklYOgorICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgcGF0aCBkb2Vzbid0IGV4aXN0LgorICAgICAgICB1bmxpbmsoYWRkcikKKyAgICBzb2NrLmJpbmQoYWRkcikKKwogCiBjbGFzcyBIZWxwZXJGdW5jdGlvblRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9yZWFkd3JpdGVleGMoc2VsZik6CkBAIC0zNTMsNyArMzYzLDcgQEAKICAgICBAc3VwcG9ydC5yZWFwX3RocmVhZHMKICAgICBkZWYgdGVzdF9zZW5kKHNlbGYpOgogICAgICAgICBldnQgPSB0aHJlYWRpbmcuRXZlbnQoKQotICAgICAgICBzb2NrID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgICAgICBzb2NrID0gc29ja2V0LnNvY2tldCgpCiAgICAgICAgIHNvY2suc2V0dGltZW91dCgzKQogICAgICAgICBwb3J0ID0gc3VwcG9ydC5iaW5kX3BvcnQoc29jaykKIApAQCAtMzY4LDcgKzM3OCw3IEBACiAKICAgICAgICAgICAgIGRhdGEgPSBiIlN1cHBvc2UgdGhlcmUgaXNuJ3QgYSAxNi10b24gd2VpZ2h0PyIKICAgICAgICAgICAgIGQgPSBkaXNwYXRjaGVyd2l0aHNlbmRfbm9yZWFkKCkKLSAgICAgICAgICAgIGQuY3JlYXRlX3NvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgICAgICAgICAgZC5jcmVhdGVfc29ja2V0KCkKICAgICAgICAgICAgIGQuY29ubmVjdCgoSE9TVCwgcG9ydCkpCiAKICAgICAgICAgICAgICMgZ2l2ZSB0aW1lIGZvciBzb2NrZXQgdG8gY29ubmVjdApAQCAtNDY4LDIyICs0NzgsMjIgQEAKICAgICAgICAgcmFpc2UKIAogCi1jbGFzcyBUQ1BTZXJ2ZXIoYXN5bmNvcmUuZGlzcGF0Y2hlcik6CitjbGFzcyBCYXNlU2VydmVyKGFzeW5jb3JlLmRpc3BhdGNoZXIpOgogICAgICIiIkEgc2VydmVyIHdoaWNoIGxpc3RlbnMgb24gYW4gYWRkcmVzcyBhbmQgZGlzcGF0Y2hlcyB0aGUKICAgICBjb25uZWN0aW9uIHRvIGEgaGFuZGxlci4KICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBoYW5kbGVyPUJhc2VUZXN0SGFuZGxlciwgaG9zdD1IT1NULCBwb3J0PTApOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmYW1pbHksIGFkZHIsIGhhbmRsZXI9QmFzZVRlc3RIYW5kbGVyKToKICAgICAgICAgYXN5bmNvcmUuZGlzcGF0Y2hlci5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLmNyZWF0ZV9zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKKyAgICAgICAgc2VsZi5jcmVhdGVfc29ja2V0KGZhbWlseSkKICAgICAgICAgc2VsZi5zZXRfcmV1c2VfYWRkcigpCi0gICAgICAgIHNlbGYuYmluZCgoaG9zdCwgcG9ydCkpCisgICAgICAgIGJpbmRfYWZfYXdhcmUoc2VsZi5zb2NrZXQsIGFkZHIpCiAgICAgICAgIHNlbGYubGlzdGVuKDUpCiAgICAgICAgIHNlbGYuaGFuZGxlciA9IGhhbmRsZXIKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBhZGRyZXNzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zb2NrZXQuZ2V0c29ja25hbWUoKVs6Ml0KKyAgICAgICAgcmV0dXJuIHNlbGYuc29ja2V0LmdldHNvY2tuYW1lKCkKIAogICAgIGRlZiBoYW5kbGVfYWNjZXB0ZWQoc2VsZiwgc29jaywgYWRkcik6CiAgICAgICAgIHNlbGYuaGFuZGxlcihzb2NrKQpAQCAtNDk0LDkgKzUwNCw5IEBACiAKIGNsYXNzIEJhc2VDbGllbnQoQmFzZVRlc3RIYW5kbGVyKToKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmFtaWx5LCBhZGRyZXNzKToKICAgICAgICAgQmFzZVRlc3RIYW5kbGVyLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuY3JlYXRlX3NvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgICAgICBzZWxmLmNyZWF0ZV9zb2NrZXQoZmFtaWx5KQogICAgICAgICBzZWxmLmNvbm5lY3QoYWRkcmVzcykKIAogICAgIGRlZiBoYW5kbGVfY29ubmVjdChzZWxmKToKQEAgLTUyNiw4ICs1MzYsOCBAQAogICAgICAgICAgICAgZGVmIGhhbmRsZV9jb25uZWN0KHNlbGYpOgogICAgICAgICAgICAgICAgIHNlbGYuZmxhZyA9IFRydWUKIAotICAgICAgICBzZXJ2ZXIgPSBUQ1BTZXJ2ZXIoKQotICAgICAgICBjbGllbnQgPSBUZXN0Q2xpZW50KHNlcnZlci5hZGRyZXNzKQorICAgICAgICBzZXJ2ZXIgPSBCYXNlU2VydmVyKHNlbGYuZmFtaWx5LCBzZWxmLmFkZHIpCisgICAgICAgIGNsaWVudCA9IFRlc3RDbGllbnQoc2VsZi5mYW1pbHksIHNlcnZlci5hZGRyZXNzKQogICAgICAgICBzZWxmLmxvb3Bfd2FpdGluZ19mb3JfZmxhZyhjbGllbnQpCiAKICAgICBkZWYgdGVzdF9oYW5kbGVfYWNjZXB0KHNlbGYpOgpAQCAtNTM1LDE4ICs1NDUsMTggQEAKIAogICAgICAgICBjbGFzcyBUZXN0TGlzdGVuZXIoQmFzZVRlc3RIYW5kbGVyKToKIAotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZhbWlseSwgYWRkcik6CiAgICAgICAgICAgICAgICAgQmFzZVRlc3RIYW5kbGVyLl9faW5pdF9fKHNlbGYpCi0gICAgICAgICAgICAgICAgc2VsZi5jcmVhdGVfc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCi0gICAgICAgICAgICAgICAgc2VsZi5iaW5kKChIT1NULCAwKSkKKyAgICAgICAgICAgICAgICBzZWxmLmNyZWF0ZV9zb2NrZXQoZmFtaWx5KQorICAgICAgICAgICAgICAgIGJpbmRfYWZfYXdhcmUoc2VsZi5zb2NrZXQsIGFkZHIpCiAgICAgICAgICAgICAgICAgc2VsZi5saXN0ZW4oNSkKLSAgICAgICAgICAgICAgICBzZWxmLmFkZHJlc3MgPSBzZWxmLnNvY2tldC5nZXRzb2NrbmFtZSgpWzoyXQorICAgICAgICAgICAgICAgIHNlbGYuYWRkcmVzcyA9IHNlbGYuc29ja2V0LmdldHNvY2tuYW1lKCkKIAogICAgICAgICAgICAgZGVmIGhhbmRsZV9hY2NlcHQoc2VsZik6CiAgICAgICAgICAgICAgICAgc2VsZi5mbGFnID0gVHJ1ZQogCi0gICAgICAgIHNlcnZlciA9IFRlc3RMaXN0ZW5lcigpCi0gICAgICAgIGNsaWVudCA9IEJhc2VDbGllbnQoc2VydmVyLmFkZHJlc3MpCisgICAgICAgIHNlcnZlciA9IFRlc3RMaXN0ZW5lcihzZWxmLmZhbWlseSwgc2VsZi5hZGRyKQorICAgICAgICBjbGllbnQgPSBCYXNlQ2xpZW50KHNlbGYuZmFtaWx5LCBzZXJ2ZXIuYWRkcmVzcykKICAgICAgICAgc2VsZi5sb29wX3dhaXRpbmdfZm9yX2ZsYWcoc2VydmVyKQogCiAgICAgZGVmIHRlc3RfaGFuZGxlX2FjY2VwdGVkKHNlbGYpOgpAQCAtNTU0LDEyICs1NjQsMTIgQEAKIAogICAgICAgICBjbGFzcyBUZXN0TGlzdGVuZXIoQmFzZVRlc3RIYW5kbGVyKToKIAotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGZhbWlseSwgYWRkcik6CiAgICAgICAgICAgICAgICAgQmFzZVRlc3RIYW5kbGVyLl9faW5pdF9fKHNlbGYpCi0gICAgICAgICAgICAgICAgc2VsZi5jcmVhdGVfc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCi0gICAgICAgICAgICAgICAgc2VsZi5iaW5kKChIT1NULCAwKSkKKyAgICAgICAgICAgICAgICBzZWxmLmNyZWF0ZV9zb2NrZXQoZmFtaWx5KQorICAgICAgICAgICAgICAgIGJpbmRfYWZfYXdhcmUoc2VsZi5zb2NrZXQsIGFkZHIpCiAgICAgICAgICAgICAgICAgc2VsZi5saXN0ZW4oNSkKLSAgICAgICAgICAgICAgICBzZWxmLmFkZHJlc3MgPSBzZWxmLnNvY2tldC5nZXRzb2NrbmFtZSgpWzoyXQorICAgICAgICAgICAgICAgIHNlbGYuYWRkcmVzcyA9IHNlbGYuc29ja2V0LmdldHNvY2tuYW1lKCkKIAogICAgICAgICAgICAgZGVmIGhhbmRsZV9hY2NlcHQoc2VsZik6CiAgICAgICAgICAgICAgICAgYXN5bmNvcmUuZGlzcGF0Y2hlci5oYW5kbGVfYWNjZXB0KHNlbGYpCkBAIC01NjgsOCArNTc4LDggQEAKICAgICAgICAgICAgICAgICBzb2NrLmNsb3NlKCkKICAgICAgICAgICAgICAgICBzZWxmLmZsYWcgPSBUcnVlCiAKLSAgICAgICAgc2VydmVyID0gVGVzdExpc3RlbmVyKCkKLSAgICAgICAgY2xpZW50ID0gQmFzZUNsaWVudChzZXJ2ZXIuYWRkcmVzcykKKyAgICAgICAgc2VydmVyID0gVGVzdExpc3RlbmVyKHNlbGYuZmFtaWx5LCBzZWxmLmFkZHIpCisgICAgICAgIGNsaWVudCA9IEJhc2VDbGllbnQoc2VsZi5mYW1pbHksIHNlcnZlci5hZGRyZXNzKQogICAgICAgICBzZWxmLmxvb3Bfd2FpdGluZ19mb3JfZmxhZyhzZXJ2ZXIpCiAKIApAQCAtNTg1LDggKzU5NSw4IEBACiAgICAgICAgICAgICAgICAgQmFzZVRlc3RIYW5kbGVyLl9faW5pdF9fKHNlbGYsIGNvbm4pCiAgICAgICAgICAgICAgICAgc2VsZi5zZW5kKGIneCcgKiAxMDI0KQogCi0gICAgICAgIHNlcnZlciA9IFRDUFNlcnZlcihUZXN0SGFuZGxlcikKLSAgICAgICAgY2xpZW50ID0gVGVzdENsaWVudChzZXJ2ZXIuYWRkcmVzcykKKyAgICAgICAgc2VydmVyID0gQmFzZVNlcnZlcihzZWxmLmZhbWlseSwgc2VsZi5hZGRyLCBUZXN0SGFuZGxlcikKKyAgICAgICAgY2xpZW50ID0gVGVzdENsaWVudChzZWxmLmZhbWlseSwgc2VydmVyLmFkZHJlc3MpCiAgICAgICAgIHNlbGYubG9vcF93YWl0aW5nX2Zvcl9mbGFnKGNsaWVudCkKIAogICAgIGRlZiB0ZXN0X2hhbmRsZV93cml0ZShzZWxmKToKQEAgLTU5Niw4ICs2MDYsOCBAQAogICAgICAgICAgICAgZGVmIGhhbmRsZV93cml0ZShzZWxmKToKICAgICAgICAgICAgICAgICBzZWxmLmZsYWcgPSBUcnVlCiAKLSAgICAgICAgc2VydmVyID0gVENQU2VydmVyKCkKLSAgICAgICAgY2xpZW50ID0gVGVzdENsaWVudChzZXJ2ZXIuYWRkcmVzcykKKyAgICAgICAgc2VydmVyID0gQmFzZVNlcnZlcihzZWxmLmZhbWlseSwgc2VsZi5hZGRyKQorICAgICAgICBjbGllbnQgPSBUZXN0Q2xpZW50KHNlbGYuZmFtaWx5LCBzZXJ2ZXIuYWRkcmVzcykKICAgICAgICAgc2VsZi5sb29wX3dhaXRpbmdfZm9yX2ZsYWcoY2xpZW50KQogCiAgICAgZGVmIHRlc3RfaGFuZGxlX2Nsb3NlKHNlbGYpOgpAQCAtNjIwLDggKzYzMCw0MCBAQAogICAgICAgICAgICAgICAgIEJhc2VUZXN0SGFuZGxlci5fX2luaXRfXyhzZWxmLCBjb25uKQogICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQogCi0gICAgICAgIHNlcnZlciA9IFRDUFNlcnZlcihUZXN0SGFuZGxlcikKLSAgICAgICAgY2xpZW50ID0gVGVzdENsaWVudChzZXJ2ZXIuYWRkcmVzcykKKyAgICAgICAgc2VydmVyID0gQmFzZVNlcnZlcihzZWxmLmZhbWlseSwgc2VsZi5hZGRyLCBUZXN0SGFuZGxlcikKKyAgICAgICAgY2xpZW50ID0gVGVzdENsaWVudChzZWxmLmZhbWlseSwgc2VydmVyLmFkZHJlc3MpCisgICAgICAgIHNlbGYubG9vcF93YWl0aW5nX2Zvcl9mbGFnKGNsaWVudCkKKworICAgIGRlZiB0ZXN0X2hhbmRsZV9jbG9zZV9hZnRlcl9jb25uX2Jyb2tlbihzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IEVDT05OUkVTRVQvRVBJUEUgaXMgY29ycmVjdGx5IGhhbmRsZWQgKGlzc3VlcyAjNTY2MSBhbmQKKyAgICAgICAgIyAjMTEyNjUpLgorCisgICAgICAgIGRhdGEgPSBiJ1wwJyAqIDEyOAorCisgICAgICAgIGNsYXNzIFRlc3RDbGllbnQoQmFzZUNsaWVudCk6CisKKyAgICAgICAgICAgIGRlZiBoYW5kbGVfd3JpdGUoc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5zZW5kKGRhdGEpCisKKyAgICAgICAgICAgIGRlZiBoYW5kbGVfY2xvc2Uoc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5mbGFnID0gVHJ1ZQorICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQorCisgICAgICAgICAgICBkZWYgaGFuZGxlX2V4cHQoc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5mbGFnID0gVHJ1ZQorICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQorCisgICAgICAgIGNsYXNzIFRlc3RIYW5kbGVyKEJhc2VUZXN0SGFuZGxlcik6CisKKyAgICAgICAgICAgIGRlZiBoYW5kbGVfcmVhZChzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLnJlY3YobGVuKGRhdGEpKQorICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQorCisgICAgICAgICAgICBkZWYgd3JpdGFibGUoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgc2VydmVyID0gQmFzZVNlcnZlcihzZWxmLmZhbWlseSwgc2VsZi5hZGRyLCBUZXN0SGFuZGxlcikKKyAgICAgICAgY2xpZW50ID0gVGVzdENsaWVudChzZWxmLmZhbWlseSwgc2VydmVyLmFkZHJlc3MpCiAgICAgICAgIHNlbGYubG9vcF93YWl0aW5nX2Zvcl9mbGFnKGNsaWVudCkKIAogICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoInN1bm9zIiksCkBAIC02MzAsOSArNjcyLDEyIEBACiAgICAgICAgICMgTWFrZSBzdXJlIGhhbmRsZV9leHB0IGlzIGNhbGxlZCBvbiBPT0IgZGF0YSByZWNlaXZlZC4KICAgICAgICAgIyBOb3RlOiB0aGlzIG1pZ2h0IGZhaWwgb24gc29tZSBwbGF0Zm9ybXMgYXMgT09CIGRhdGEgaXMKICAgICAgICAgIyB0ZW51b3VzbHkgc3VwcG9ydGVkIGFuZCByYXJlbHkgdXNlZC4KKyAgICAgICAgaWYgSEFTX1VOSVhfU09DS0VUUyBhbmQgc2VsZi5mYW1pbHkgPT0gc29ja2V0LkFGX1VOSVg6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJOb3QgYXBwbGljYWJsZSB0byBBRl9VTklYIHNvY2tldHMuIikKIAogICAgICAgICBjbGFzcyBUZXN0Q2xpZW50KEJhc2VDbGllbnQpOgogICAgICAgICAgICAgZGVmIGhhbmRsZV9leHB0KHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuc29ja2V0LnJlY3YoMTAyNCwgc29ja2V0Lk1TR19PT0IpCiAgICAgICAgICAgICAgICAgc2VsZi5mbGFnID0gVHJ1ZQogCiAgICAgICAgIGNsYXNzIFRlc3RIYW5kbGVyKEJhc2VUZXN0SGFuZGxlcik6CkBAIC02NDAsOCArNjg1LDggQEAKICAgICAgICAgICAgICAgICBCYXNlVGVzdEhhbmRsZXIuX19pbml0X18oc2VsZiwgY29ubikKICAgICAgICAgICAgICAgICBzZWxmLnNvY2tldC5zZW5kKGJ5dGVzKGNocigyNDQpLCAnbGF0aW4tMScpLCBzb2NrZXQuTVNHX09PQikKIAotICAgICAgICBzZXJ2ZXIgPSBUQ1BTZXJ2ZXIoVGVzdEhhbmRsZXIpCi0gICAgICAgIGNsaWVudCA9IFRlc3RDbGllbnQoc2VydmVyLmFkZHJlc3MpCisgICAgICAgIHNlcnZlciA9IEJhc2VTZXJ2ZXIoc2VsZi5mYW1pbHksIHNlbGYuYWRkciwgVGVzdEhhbmRsZXIpCisgICAgICAgIGNsaWVudCA9IFRlc3RDbGllbnQoc2VsZi5mYW1pbHksIHNlcnZlci5hZGRyZXNzKQogICAgICAgICBzZWxmLmxvb3Bfd2FpdGluZ19mb3JfZmxhZyhjbGllbnQpCiAKICAgICBkZWYgdGVzdF9oYW5kbGVfZXJyb3Ioc2VsZik6CkBAIC02NTgsMTMgKzcwMywxMyBAQAogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiZXhjZXB0aW9uIG5vdCByYWlzZWQiKQogCi0gICAgICAgIHNlcnZlciA9IFRDUFNlcnZlcigpCi0gICAgICAgIGNsaWVudCA9IFRlc3RDbGllbnQoc2VydmVyLmFkZHJlc3MpCisgICAgICAgIHNlcnZlciA9IEJhc2VTZXJ2ZXIoc2VsZi5mYW1pbHksIHNlbGYuYWRkcikKKyAgICAgICAgY2xpZW50ID0gVGVzdENsaWVudChzZWxmLmZhbWlseSwgc2VydmVyLmFkZHJlc3MpCiAgICAgICAgIHNlbGYubG9vcF93YWl0aW5nX2Zvcl9mbGFnKGNsaWVudCkKIAogICAgIGRlZiB0ZXN0X2Nvbm5lY3Rpb25fYXR0cmlidXRlcyhzZWxmKToKLSAgICAgICAgc2VydmVyID0gVENQU2VydmVyKCkKLSAgICAgICAgY2xpZW50ID0gQmFzZUNsaWVudChzZXJ2ZXIuYWRkcmVzcykKKyAgICAgICAgc2VydmVyID0gQmFzZVNlcnZlcihzZWxmLmZhbWlseSwgc2VsZi5hZGRyKQorICAgICAgICBjbGllbnQgPSBCYXNlQ2xpZW50KHNlbGYuZmFtaWx5LCBzZXJ2ZXIuYWRkcmVzcykKIAogICAgICAgICAjIHdlIHN0YXJ0IGRpc2Nvbm5lY3RlZAogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlcnZlci5jb25uZWN0ZWQpCkBAIC02OTQsMjUgKzczOSwyOSBAQAogCiAgICAgZGVmIHRlc3RfY3JlYXRlX3NvY2tldChzZWxmKToKICAgICAgICAgcyA9IGFzeW5jb3JlLmRpc3BhdGNoZXIoKQotICAgICAgICBzLmNyZWF0ZV9zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLnNvY2tldC5mYW1pbHksIHNvY2tldC5BRl9JTkVUKQorICAgICAgICBzLmNyZWF0ZV9zb2NrZXQoc2VsZi5mYW1pbHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5zb2NrZXQuZmFtaWx5LCBzZWxmLmZhbWlseSkKICAgICAgICAgU09DS19OT05CTE9DSyA9IGdldGF0dHIoc29ja2V0LCAnU09DS19OT05CTE9DSycsIDApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5zb2NrZXQudHlwZSwgc29ja2V0LlNPQ0tfU1RSRUFNIHwgU09DS19OT05CTE9DSykKIAogICAgIGRlZiB0ZXN0X2JpbmQoc2VsZik6CisgICAgICAgIGlmIEhBU19VTklYX1NPQ0tFVFMgYW5kIHNlbGYuZmFtaWx5ID09IHNvY2tldC5BRl9VTklYOgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgiTm90IGFwcGxpY2FibGUgdG8gQUZfVU5JWCBzb2NrZXRzLiIpCiAgICAgICAgIHMxID0gYXN5bmNvcmUuZGlzcGF0Y2hlcigpCi0gICAgICAgIHMxLmNyZWF0ZV9zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKLSAgICAgICAgczEuYmluZCgoSE9TVCwgMCkpCisgICAgICAgIHMxLmNyZWF0ZV9zb2NrZXQoc2VsZi5mYW1pbHkpCisgICAgICAgIHMxLmJpbmQoc2VsZi5hZGRyKQogICAgICAgICBzMS5saXN0ZW4oNSkKICAgICAgICAgcG9ydCA9IHMxLnNvY2tldC5nZXRzb2NrbmFtZSgpWzFdCiAKICAgICAgICAgczIgPSBhc3luY29yZS5kaXNwYXRjaGVyKCkKLSAgICAgICAgczIuY3JlYXRlX3NvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgICAgICBzMi5jcmVhdGVfc29ja2V0KHNlbGYuZmFtaWx5KQogICAgICAgICAjIEVBRERSSU5VU0UgaW5kaWNhdGVzIHRoZSBzb2NrZXQgd2FzIGNvcnJlY3RseSBib3VuZAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHMyLmJpbmQsIChIT1NULCBwb3J0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzMi5iaW5kLCAoc2VsZi5hZGRyWzBdLCBwb3J0KSkKIAogICAgIGRlZiB0ZXN0X3NldF9yZXVzZV9hZGRyKHNlbGYpOgotICAgICAgICBzb2NrID0gc29ja2V0LnNvY2tldCgpCisgICAgICAgIGlmIEhBU19VTklYX1NPQ0tFVFMgYW5kIHNlbGYuZmFtaWx5ID09IHNvY2tldC5BRl9VTklYOgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgiTm90IGFwcGxpY2FibGUgdG8gQUZfVU5JWCBzb2NrZXRzLiIpCisgICAgICAgIHNvY2sgPSBzb2NrZXQuc29ja2V0KHNlbGYuZmFtaWx5KQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzb2NrLnNldHNvY2tvcHQoc29ja2V0LlNPTF9TT0NLRVQsIHNvY2tldC5TT19SRVVTRUFERFIsIDEpCiAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CkBAIC03MjAsMTEgKzc2OSwxMSBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyBpZiBTT19SRVVTRUFERFIgc3VjY2VlZGVkIGZvciBzb2NrIHdlIGV4cGVjdCBhc3luY29yZQogICAgICAgICAgICAgIyB0byBkbyB0aGUgc2FtZQotICAgICAgICAgICAgcyA9IGFzeW5jb3JlLmRpc3BhdGNoZXIoc29ja2V0LnNvY2tldCgpKQorICAgICAgICAgICAgcyA9IGFzeW5jb3JlLmRpc3BhdGNoZXIoc29ja2V0LnNvY2tldChzZWxmLmZhbWlseSkpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHMuc29ja2V0LmdldHNvY2tvcHQoc29ja2V0LlNPTF9TT0NLRVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LlNPX1JFVVNFQUREUikpCiAgICAgICAgICAgICBzLnNvY2tldC5jbG9zZSgpCi0gICAgICAgICAgICBzLmNyZWF0ZV9zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKKyAgICAgICAgICAgIHMuY3JlYXRlX3NvY2tldChzZWxmLmZhbWlseSkKICAgICAgICAgICAgIHMuc2V0X3JldXNlX2FkZHIoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuc29ja2V0LmdldHNvY2tvcHQoc29ja2V0LlNPTF9TT0NLRVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LlNPX1JFVVNFQUREUikpCkBAIC03MzUsMTIgKzc4NCwxNCBAQAogICAgIEBzdXBwb3J0LnJlYXBfdGhyZWFkcwogICAgIGRlZiB0ZXN0X3F1aWNrX2Nvbm5lY3Qoc2VsZik6CiAgICAgICAgICMgc2VlOiBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTAzNDAKLSAgICAgICAgc2VydmVyID0gVENQU2VydmVyKCkKLSAgICAgICAgdCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWxhbWJkYTogYXN5bmNvcmUubG9vcCh0aW1lb3V0PTAuMSwgY291bnQ9NTAwKSkKLSAgICAgICAgdC5zdGFydCgpCisgICAgICAgIGlmIHNlbGYuZmFtaWx5IGluIChzb2NrZXQuQUZfSU5FVCwgZ2V0YXR0cihzb2NrZXQsICJBRl9JTkVUNiIsIG9iamVjdCgpKSk6CisgICAgICAgICAgICBzZXJ2ZXIgPSBCYXNlU2VydmVyKHNlbGYuZmFtaWx5LCBzZWxmLmFkZHIpCisgICAgICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9bGFtYmRhOiBhc3luY29yZS5sb29wKHRpbWVvdXQ9MC4xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudD01MDApKQorICAgICAgICAgICAgdC5zdGFydCgpCiAKLSAgICAgICAgZm9yIHggaW4gcmFuZ2UoMjApOgotICAgICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKKworICAgICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoc2VsZi5mYW1pbHksIHNvY2tldC5TT0NLX1NUUkVBTSkKICAgICAgICAgICAgIHMuc2V0dGltZW91dCguMikKICAgICAgICAgICAgIHMuc2V0c29ja29wdChzb2NrZXQuU09MX1NPQ0tFVCwgc29ja2V0LlNPX0xJTkdFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QucGFjaygnaWknLCAxLCAwKSkKQEAgLTc1MSwxOCArODAyLDUyIEBACiAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgIHMuY2xvc2UoKQogCi1jbGFzcyBUZXN0QVBJX1VzZVNlbGVjdChCYXNlVGVzdEFQSSk6CitjbGFzcyBUZXN0QVBJX1VzZUlQdjRTb2NrZXRzKEJhc2VUZXN0QVBJKToKKyAgICBmYW1pbHkgPSBzb2NrZXQuQUZfSU5FVAorICAgIGFkZHIgPSAoSE9TVCwgMCkKKworQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5JUFY2X0VOQUJMRUQsICdJUHY2IHN1cHBvcnQgcmVxdWlyZWQnKQorY2xhc3MgVGVzdEFQSV9Vc2VJUHY2U29ja2V0cyhCYXNlVGVzdEFQSSk6CisgICAgZmFtaWx5ID0gc29ja2V0LkFGX0lORVQ2CisgICAgYWRkciA9ICgnOjoxJywgMCkKKworQHVuaXR0ZXN0LnNraXBVbmxlc3MoSEFTX1VOSVhfU09DS0VUUywgJ1VuaXggc29ja2V0cyByZXF1aXJlZCcpCitjbGFzcyBUZXN0QVBJX1VzZVVuaXhTb2NrZXRzKEJhc2VUZXN0QVBJKToKKyAgICBpZiBIQVNfVU5JWF9TT0NLRVRTOgorICAgICAgICBmYW1pbHkgPSBzb2NrZXQuQUZfVU5JWAorICAgIGFkZHIgPSBzdXBwb3J0LlRFU1RGTgorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICB1bmxpbmsoc2VsZi5hZGRyKQorICAgICAgICBCYXNlVGVzdEFQSS50ZWFyRG93bihzZWxmKQorCitjbGFzcyBUZXN0QVBJX1VzZUlQdjRTZWxlY3QoVGVzdEFQSV9Vc2VJUHY0U29ja2V0cyk6CiAgICAgdXNlX3BvbGwgPSBGYWxzZQogCiBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNlbGVjdCwgJ3BvbGwnKSwgJ3NlbGVjdC5wb2xsIHJlcXVpcmVkJykKLWNsYXNzIFRlc3RBUElfVXNlUG9sbChCYXNlVGVzdEFQSSk6CitjbGFzcyBUZXN0QVBJX1VzZUlQdjRQb2xsKFRlc3RBUElfVXNlSVB2NFNvY2tldHMpOgogICAgIHVzZV9wb2xsID0gVHJ1ZQogCitjbGFzcyBUZXN0QVBJX1VzZUlQdjZTZWxlY3QoVGVzdEFQSV9Vc2VJUHY2U29ja2V0cyk6CisgICAgdXNlX3BvbGwgPSBGYWxzZQorCitAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNlbGVjdCwgJ3BvbGwnKSwgJ3NlbGVjdC5wb2xsIHJlcXVpcmVkJykKK2NsYXNzIFRlc3RBUElfVXNlSVB2NlBvbGwoVGVzdEFQSV9Vc2VJUHY2U29ja2V0cyk6CisgICAgdXNlX3BvbGwgPSBUcnVlCisKK2NsYXNzIFRlc3RBUElfVXNlVW5peFNvY2tldHNTZWxlY3QoVGVzdEFQSV9Vc2VVbml4U29ja2V0cyk6CisgICAgdXNlX3BvbGwgPSBGYWxzZQorCitAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNlbGVjdCwgJ3BvbGwnKSwgJ3NlbGVjdC5wb2xsIHJlcXVpcmVkJykKK2NsYXNzIFRlc3RBUElfVXNlVW5peFNvY2tldHNQb2xsKFRlc3RBUElfVXNlVW5peFNvY2tldHMpOgorICAgIHVzZV9wb2xsID0gVHJ1ZQogCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgdGVzdHMgPSBbSGVscGVyRnVuY3Rpb25UZXN0cywgRGlzcGF0Y2hlclRlc3RzLCBEaXNwYXRjaGVyV2l0aFNlbmRUZXN0cywKLSAgICAgICAgICAgICBEaXNwYXRjaGVyV2l0aFNlbmRUZXN0c19Vc2VQb2xsLCBUZXN0QVBJX1VzZVNlbGVjdCwKLSAgICAgICAgICAgICBUZXN0QVBJX1VzZVBvbGwsIEZpbGVXcmFwcGVyVGVzdF0KKyAgICAgICAgICAgIERpc3BhdGNoZXJXaXRoU2VuZFRlc3RzX1VzZVBvbGwsIEZpbGVXcmFwcGVyVGVzdCwKKyAgICAgICAgICAgIFRlc3RBUElfVXNlSVB2NFNlbGVjdCwgVGVzdEFQSV9Vc2VJUHY0UG9sbCwgVGVzdEFQSV9Vc2VJUHY2U2VsZWN0LAorICAgICAgICAgICAgVGVzdEFQSV9Vc2VJUHY2UG9sbCwgVGVzdEFQSV9Vc2VVbml4U29ja2V0c1NlbGVjdCwKKyAgICAgICAgICAgIFRlc3RBUElfVXNlVW5peFNvY2tldHNQb2xsXQogICAgIHJ1bl91bml0dGVzdCgqdGVzdHMpCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2Jhc2U2NC5weSBiL0xpYi90ZXN0L3Rlc3RfYmFzZTY0LnB5CmluZGV4IGNhOTQ1MDQuLjI1Njk0NzYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfYmFzZTY0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYmFzZTY0LnB5CkBAIC0xMDMsNDQgKzEwMyw1MyBAQAogCiAgICAgZGVmIHRlc3RfYjY0ZGVjb2RlKHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKLSAgICAgICAgZXEoYmFzZTY0LmI2NGRlY29kZShiImQzZDNMbkI1ZEdodmJpNXZjbWM9IiksIGIid3d3LnB5dGhvbi5vcmciKQotICAgICAgICBlcShiYXNlNjQuYjY0ZGVjb2RlKGInQUE9PScpLCBiJ1x4MDAnKQotICAgICAgICBlcShiYXNlNjQuYjY0ZGVjb2RlKGIiWVE9PSIpLCBiImEiKQotICAgICAgICBlcShiYXNlNjQuYjY0ZGVjb2RlKGIiWVdJPSIpLCBiImFiIikKLSAgICAgICAgZXEoYmFzZTY0LmI2NGRlY29kZShiIllXSmoiKSwgYiJhYmMiKQotICAgICAgICBlcShiYXNlNjQuYjY0ZGVjb2RlKGIiWVdKalpHVm1aMmhwYW10c2JXNXZjSEZ5YzNSMWRuZDRlWHBCUWtORSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBiIlJVWkhTRWxLUzB4TlRrOVFVVkpUVkZWV1YxaFpXakF4TWpNMFxuTlQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYiJZM09Ea2hRQ013WGlZcUtDazdPancrTEM0Z1cxMTdmUT09IiksCi0gICAgICAgICAgIGIiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiCi0gICAgICAgICAgIGIiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiCi0gICAgICAgICAgIGIiMDEyMzQ1Njc4OSFAIzBeJiooKTs6PD4sLiBbXXt9IikKLSAgICAgICAgZXEoYmFzZTY0LmI2NGRlY29kZShiJycpLCBiJycpCisKKyAgICAgICAgdGVzdHMgPSB7YiJkM2QzTG5CNWRHaHZiaTV2Y21jPSI6IGIid3d3LnB5dGhvbi5vcmciLAorICAgICAgICAgICAgICAgICBiJ0FBPT0nOiBiJ1x4MDAnLAorICAgICAgICAgICAgICAgICBiIllRPT0iOiBiImEiLAorICAgICAgICAgICAgICAgICBiIllXST0iOiBiImFiIiwKKyAgICAgICAgICAgICAgICAgYiJZV0pqIjogYiJhYmMiLAorICAgICAgICAgICAgICAgICBiIllXSmpaR1ZtWjJocGFtdHNiVzV2Y0hGeWMzUjFkbmQ0ZVhwQlFrTkUiCisgICAgICAgICAgICAgICAgIGIiUlVaSFNFbEtTMHhOVGs5UVVWSlRWRlZXVjFoWldqQXhNak0wXG5OVCIKKyAgICAgICAgICAgICAgICAgYiJZM09Ea2hRQ013WGlZcUtDazdPancrTEM0Z1cxMTdmUT09IjoKKworICAgICAgICAgICAgICAgICBiImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IgorICAgICAgICAgICAgICAgICBiIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgorICAgICAgICAgICAgICAgICBiIjAxMjM0NTY3ODkhQCMwXiYqKCk7Ojw+LC4gW117fSIsCisgICAgICAgICAgICAgICAgIGInJzogYicnLAorICAgICAgICAgICAgICAgICB9CisgICAgICAgIGZvciBkYXRhLCByZXMgaW4gdGVzdHMuaXRlbXMoKToKKyAgICAgICAgICAgIGVxKGJhc2U2NC5iNjRkZWNvZGUoZGF0YSksIHJlcykKKyAgICAgICAgICAgIGVxKGJhc2U2NC5iNjRkZWNvZGUoZGF0YS5kZWNvZGUoJ2FzY2lpJykpLCByZXMpCisKICAgICAgICAgIyBUZXN0IHdpdGggYXJiaXRyYXJ5IGFsdGVybmF0aXZlIGNoYXJhY3RlcnMKLSAgICAgICAgZXEoYmFzZTY0LmI2NGRlY29kZShiJzAxYSpiJGNkJywgYWx0Y2hhcnM9YicqJCcpLCBiJ1x4ZDNWXHhiZW9ceGY3XHgxZCcpCi0gICAgICAgICMgQ2hlY2sgaWYgcGFzc2luZyBhIHN0ciBvYmplY3QgcmFpc2VzIGFuIGVycm9yCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYmFzZTY0LmI2NGRlY29kZSwgIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYmFzZTY0LmI2NGRlY29kZSwgYiIiLCBhbHRjaGFycz0iIikKKyAgICAgICAgdGVzdHNfYWx0Y2hhcnMgPSB7KGInMDFhKmIkY2QnLCBiJyokJyk6IGInXHhkM1ZceGJlb1x4ZjdceDFkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICBmb3IgKGRhdGEsIGFsdGNoYXJzKSwgcmVzIGluIHRlc3RzX2FsdGNoYXJzLml0ZW1zKCk6CisgICAgICAgICAgICBkYXRhX3N0ciA9IGRhdGEuZGVjb2RlKCdhc2NpaScpCisgICAgICAgICAgICBhbHRjaGFyc19zdHIgPSBhbHRjaGFycy5kZWNvZGUoJ2FzY2lpJykKKworICAgICAgICAgICAgZXEoYmFzZTY0LmI2NGRlY29kZShkYXRhLCBhbHRjaGFycz1hbHRjaGFycyksIHJlcykKKyAgICAgICAgICAgIGVxKGJhc2U2NC5iNjRkZWNvZGUoZGF0YV9zdHIsIGFsdGNoYXJzPWFsdGNoYXJzKSwgcmVzKQorICAgICAgICAgICAgZXEoYmFzZTY0LmI2NGRlY29kZShkYXRhLCBhbHRjaGFycz1hbHRjaGFyc19zdHIpLCByZXMpCisgICAgICAgICAgICBlcShiYXNlNjQuYjY0ZGVjb2RlKGRhdGFfc3RyLCBhbHRjaGFycz1hbHRjaGFyc19zdHIpLCByZXMpCisKICAgICAgICAgIyBUZXN0IHN0YW5kYXJkIGFscGhhYmV0Ci0gICAgICAgIGVxKGJhc2U2NC5zdGFuZGFyZF9iNjRkZWNvZGUoYiJkM2QzTG5CNWRHaHZiaTV2Y21jPSIpLCBiInd3dy5weXRob24ub3JnIikKLSAgICAgICAgZXEoYmFzZTY0LnN0YW5kYXJkX2I2NGRlY29kZShiIllRPT0iKSwgYiJhIikKLSAgICAgICAgZXEoYmFzZTY0LnN0YW5kYXJkX2I2NGRlY29kZShiIllXST0iKSwgYiJhYiIpCi0gICAgICAgIGVxKGJhc2U2NC5zdGFuZGFyZF9iNjRkZWNvZGUoYiJZV0pqIiksIGIiYWJjIikKLSAgICAgICAgZXEoYmFzZTY0LnN0YW5kYXJkX2I2NGRlY29kZShiIiIpLCBiIiIpCi0gICAgICAgIGVxKGJhc2U2NC5zdGFuZGFyZF9iNjRkZWNvZGUoYiJZV0pqWkdWbVoyaHBhbXRzYlc1dmNIRnljM1IxZG5kNGVYcEJRa05FIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIiUlVaSFNFbEtTMHhOVGs5UVVWSlRWRlZXVjFoWldqQXhNak0wTlQiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiJZM09Ea2hRQ013WGlZcUtDazdPancrTEM0Z1cxMTdmUT09IiksCi0gICAgICAgICAgIGIiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiCi0gICAgICAgICAgIGIiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiCi0gICAgICAgICAgIGIiMDEyMzQ1Njc4OSFAIzBeJiooKTs6PD4sLiBbXXt9IikKLSAgICAgICAgIyBDaGVjayBpZiBwYXNzaW5nIGEgc3RyIG9iamVjdCByYWlzZXMgYW4gZXJyb3IKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBiYXNlNjQuc3RhbmRhcmRfYjY0ZGVjb2RlLCAiIikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBiYXNlNjQuc3RhbmRhcmRfYjY0ZGVjb2RlLCBiIiIsIGFsdGNoYXJzPSIiKQorICAgICAgICBmb3IgZGF0YSwgcmVzIGluIHRlc3RzLml0ZW1zKCk6CisgICAgICAgICAgICBlcShiYXNlNjQuc3RhbmRhcmRfYjY0ZGVjb2RlKGRhdGEpLCByZXMpCisgICAgICAgICAgICBlcShiYXNlNjQuc3RhbmRhcmRfYjY0ZGVjb2RlKGRhdGEuZGVjb2RlKCdhc2NpaScpKSwgcmVzKQorCiAgICAgICAgICMgVGVzdCB3aXRoICdVUkwgc2FmZScgYWx0ZXJuYXRpdmUgY2hhcmFjdGVycwotICAgICAgICBlcShiYXNlNjQudXJsc2FmZV9iNjRkZWNvZGUoYicwMWEtYl9jZCcpLCBiJ1x4ZDNWXHhiZW9ceGY3XHgxZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYmFzZTY0LnVybHNhZmVfYjY0ZGVjb2RlLCAiIikKKyAgICAgICAgdGVzdHNfdXJsc2FmZSA9IHtiJzAxYS1iX2NkJzogYidceGQzVlx4YmVvXHhmN1x4MWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGInJzogYicnLAorICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgZm9yIGRhdGEsIHJlcyBpbiB0ZXN0c191cmxzYWZlLml0ZW1zKCk6CisgICAgICAgICAgICBlcShiYXNlNjQudXJsc2FmZV9iNjRkZWNvZGUoZGF0YSksIHJlcykKKyAgICAgICAgICAgIGVxKGJhc2U2NC51cmxzYWZlX2I2NGRlY29kZShkYXRhLmRlY29kZSgnYXNjaWknKSksIHJlcykKIAogICAgIGRlZiB0ZXN0X2I2NGRlY29kZV9wYWRkaW5nX2Vycm9yKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhiaW5hc2NpaS5FcnJvciwgYmFzZTY0LmI2NGRlY29kZSwgYidhYmMnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhiaW5hc2NpaS5FcnJvciwgYmFzZTY0LmI2NGRlY29kZSwgJ2FiYycpCiAKICAgICBkZWYgdGVzdF9iNjRkZWNvZGVfaW52YWxpZF9jaGFycyhzZWxmKToKICAgICAgICAgIyBpc3N1ZSAxNDY2MDY1OiBUZXN0IHNvbWUgaW52YWxpZCBjaGFyYWN0ZXJzLgpAQCAtMTU1LDggKzE2NCwxMSBAQAogICAgICAgICAgICAgICAgICAoYidZV0pqXG5ZV0k9JywgYidhYmNhYicpKQogICAgICAgICBmb3IgYnN0ciwgcmVzIGluIHRlc3RzOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYXNlNjQuYjY0ZGVjb2RlKGJzdHIpLCByZXMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJhc2U2NC5iNjRkZWNvZGUoYnN0ci5kZWNvZGUoJ2FzY2lpJykpLCByZXMpCiAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGJpbmFzY2lpLkVycm9yKToKICAgICAgICAgICAgICAgICBiYXNlNjQuYjY0ZGVjb2RlKGJzdHIsIHZhbGlkYXRlPVRydWUpCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGJpbmFzY2lpLkVycm9yKToKKyAgICAgICAgICAgICAgICBiYXNlNjQuYjY0ZGVjb2RlKGJzdHIuZGVjb2RlKCdhc2NpaScpLCB2YWxpZGF0ZT1UcnVlKQogCiAgICAgZGVmIHRlc3RfYjMyZW5jb2RlKHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKQEAgLTE3MSw0MCArMTgzLDYzIEBACiAKICAgICBkZWYgdGVzdF9iMzJkZWNvZGUoc2VsZik6CiAgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAotICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGInJyksIGInJykKLSAgICAgICAgZXEoYmFzZTY0LmIzMmRlY29kZShiJ0FBPT09PT09JyksIGInXHgwMCcpCi0gICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoYidNRT09PT09PScpLCBiJ2EnKQotICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGInTUZSQT09PT0nKSwgYidhYicpCi0gICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoYidNRlJHRz09PScpLCBiJ2FiYycpCi0gICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoYidNRlJHR1pBPScpLCBiJ2FiY2QnKQotICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGInTUZSR0daREYnKSwgYidhYmNkZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYmFzZTY0LmIzMmRlY29kZSwgIiIpCisgICAgICAgIHRlc3RzID0ge2InJzogYicnLAorICAgICAgICAgICAgICAgICBiJ0FBPT09PT09JzogYidceDAwJywKKyAgICAgICAgICAgICAgICAgYidNRT09PT09PSc6IGInYScsCisgICAgICAgICAgICAgICAgIGInTUZSQT09PT0nOiBiJ2FiJywKKyAgICAgICAgICAgICAgICAgYidNRlJHRz09PSc6IGInYWJjJywKKyAgICAgICAgICAgICAgICAgYidNRlJHR1pBPSc6IGInYWJjZCcsCisgICAgICAgICAgICAgICAgIGInTUZSR0daREYnOiBiJ2FiY2RlJywKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICBmb3IgZGF0YSwgcmVzIGluIHRlc3RzLml0ZW1zKCk6CisgICAgICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGRhdGEpLCByZXMpCisgICAgICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGRhdGEuZGVjb2RlKCdhc2NpaScpKSwgcmVzKQogCiAgICAgZGVmIHRlc3RfYjMyZGVjb2RlX2Nhc2Vmb2xkKHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKLSAgICAgICAgZXEoYmFzZTY0LmIzMmRlY29kZShiJycsIFRydWUpLCBiJycpCi0gICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoYidNRT09PT09PScsIFRydWUpLCBiJ2EnKQotICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGInTUZSQT09PT0nLCBUcnVlKSwgYidhYicpCi0gICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoYidNRlJHRz09PScsIFRydWUpLCBiJ2FiYycpCi0gICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoYidNRlJHR1pBPScsIFRydWUpLCBiJ2FiY2QnKQotICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGInTUZSR0daREYnLCBUcnVlKSwgYidhYmNkZScpCi0gICAgICAgICMgTG93ZXIgY2FzZXMKLSAgICAgICAgZXEoYmFzZTY0LmIzMmRlY29kZShiJ21lPT09PT09JywgVHJ1ZSksIGInYScpCi0gICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoYidtZnJhPT09PScsIFRydWUpLCBiJ2FiJykKLSAgICAgICAgZXEoYmFzZTY0LmIzMmRlY29kZShiJ21mcmdnPT09JywgVHJ1ZSksIGInYWJjJykKLSAgICAgICAgZXEoYmFzZTY0LmIzMmRlY29kZShiJ21mcmdnemE9JywgVHJ1ZSksIGInYWJjZCcpCi0gICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoYidtZnJnZ3pkZicsIFRydWUpLCBiJ2FiY2RlJykKLSAgICAgICAgIyBFeHBlY3RlZCBleGNlcHRpb25zCisgICAgICAgIHRlc3RzID0ge2InJzogYicnLAorICAgICAgICAgICAgICAgICBiJ01FPT09PT09JzogYidhJywKKyAgICAgICAgICAgICAgICAgYidNRlJBPT09PSc6IGInYWInLAorICAgICAgICAgICAgICAgICBiJ01GUkdHPT09JzogYidhYmMnLAorICAgICAgICAgICAgICAgICBiJ01GUkdHWkE9JzogYidhYmNkJywKKyAgICAgICAgICAgICAgICAgYidNRlJHR1pERic6IGInYWJjZGUnLAorICAgICAgICAgICAgICAgICAjIExvd2VyIGNhc2VzCisgICAgICAgICAgICAgICAgIGInbWU9PT09PT0nOiBiJ2EnLAorICAgICAgICAgICAgICAgICBiJ21mcmE9PT09JzogYidhYicsCisgICAgICAgICAgICAgICAgIGInbWZyZ2c9PT0nOiBiJ2FiYycsCisgICAgICAgICAgICAgICAgIGInbWZyZ2d6YT0nOiBiJ2FiY2QnLAorICAgICAgICAgICAgICAgICBiJ21mcmdnemRmJzogYidhYmNkZScsCisgICAgICAgICAgICAgICAgIH0KKworICAgICAgICBmb3IgZGF0YSwgcmVzIGluIHRlc3RzLml0ZW1zKCk6CisgICAgICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGRhdGEsIFRydWUpLCByZXMpCisgICAgICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGRhdGEuZGVjb2RlKCdhc2NpaScpLCBUcnVlKSwgcmVzKQorCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYmFzZTY0LmIzMmRlY29kZSwgYidtZT09PT09PScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYmFzZTY0LmIzMmRlY29kZSwgJ21lPT09PT09JykKKwogICAgICAgICAjIE1hcHBpbmcgemVybyBhbmQgb25lCiAgICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoYidNTE8yMzQ1NicpLCBiJ2JceGRkXHhhZFx4ZjNceGJlJykKLSAgICAgICAgZXEoYmFzZTY0LmIzMmRlY29kZShiJ00xMDIzNDU2JywgbWFwMDE9YidMJyksIGInYlx4ZGRceGFkXHhmM1x4YmUnKQotICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGInTTEwMjM0NTYnLCBtYXAwMT1iJ0knKSwgYidiXHgxZFx4YWRceGYzXHhiZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYmFzZTY0LmIzMmRlY29kZSwgYiIiLCBtYXAwMT0iIikKKyAgICAgICAgZXEoYmFzZTY0LmIzMmRlY29kZSgnTUxPMjM0NTYnKSwgYidiXHhkZFx4YWRceGYzXHhiZScpCisKKyAgICAgICAgbWFwX3Rlc3RzID0geyhiJ00xMDIzNDU2JywgYidMJyk6IGInYlx4ZGRceGFkXHhmM1x4YmUnLAorICAgICAgICAgICAgICAgICAgICAgKGInTTEwMjM0NTYnLCBiJ0knKTogYidiXHgxZFx4YWRceGYzXHhiZScsCisgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgIGZvciAoZGF0YSwgbWFwMDEpLCByZXMgaW4gbWFwX3Rlc3RzLml0ZW1zKCk6CisgICAgICAgICAgICBkYXRhX3N0ciA9IGRhdGEuZGVjb2RlKCdhc2NpaScpCisgICAgICAgICAgICBtYXAwMV9zdHIgPSBtYXAwMS5kZWNvZGUoJ2FzY2lpJykKKworICAgICAgICAgICAgZXEoYmFzZTY0LmIzMmRlY29kZShkYXRhLCBtYXAwMT1tYXAwMSksIHJlcykKKyAgICAgICAgICAgIGVxKGJhc2U2NC5iMzJkZWNvZGUoZGF0YV9zdHIsIG1hcDAxPW1hcDAxKSwgcmVzKQorICAgICAgICAgICAgZXEoYmFzZTY0LmIzMmRlY29kZShkYXRhLCBtYXAwMT1tYXAwMV9zdHIpLCByZXMpCisgICAgICAgICAgICBlcShiYXNlNjQuYjMyZGVjb2RlKGRhdGFfc3RyLCBtYXAwMT1tYXAwMV9zdHIpLCByZXMpCiAKICAgICBkZWYgdGVzdF9iMzJkZWNvZGVfZXJyb3Ioc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGJpbmFzY2lpLkVycm9yLCBiYXNlNjQuYjMyZGVjb2RlLCBiJ2FiYycpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGJpbmFzY2lpLkVycm9yLCBiYXNlNjQuYjMyZGVjb2RlLCBiJ0FCQ0RFRj09JykKKyAgICAgICAgZm9yIGRhdGEgaW4gW2InYWJjJywgYidBQkNERUY9PSddOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhiaW5hc2NpaS5FcnJvcik6CisgICAgICAgICAgICAgICAgYmFzZTY0LmIzMmRlY29kZShkYXRhKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhiaW5hc2NpaS5FcnJvcik6CisgICAgICAgICAgICAgICAgYmFzZTY0LmIzMmRlY29kZShkYXRhLmRlY29kZSgnYXNjaWknKSkKIAogICAgIGRlZiB0ZXN0X2IxNmVuY29kZShzZWxmKToKICAgICAgICAgZXEgPSBzZWxmLmFzc2VydEVxdWFsCkBAIC0yMTUsMTIgKzI1MCwyNCBAQAogICAgIGRlZiB0ZXN0X2IxNmRlY29kZShzZWxmKToKICAgICAgICAgZXEgPSBzZWxmLmFzc2VydEVxdWFsCiAgICAgICAgIGVxKGJhc2U2NC5iMTZkZWNvZGUoYicwMTAyQUJDREVGJyksIGInXHgwMVx4MDJceGFiXHhjZFx4ZWYnKQorICAgICAgICBlcShiYXNlNjQuYjE2ZGVjb2RlKCcwMTAyQUJDREVGJyksIGInXHgwMVx4MDJceGFiXHhjZFx4ZWYnKQogICAgICAgICBlcShiYXNlNjQuYjE2ZGVjb2RlKGInMDAnKSwgYidceDAwJykKKyAgICAgICAgZXEoYmFzZTY0LmIxNmRlY29kZSgnMDAnKSwgYidceDAwJykKICAgICAgICAgIyBMb3dlciBjYXNlIGlzIG5vdCBhbGxvd2VkIHdpdGhvdXQgYSBmbGFnCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGJpbmFzY2lpLkVycm9yLCBiYXNlNjQuYjE2ZGVjb2RlLCBiJzAxMDJhYmNkZWYnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhiaW5hc2NpaS5FcnJvciwgYmFzZTY0LmIxNmRlY29kZSwgJzAxMDJhYmNkZWYnKQogICAgICAgICAjIENhc2UgZm9sZAogICAgICAgICBlcShiYXNlNjQuYjE2ZGVjb2RlKGInMDEwMmFiY2RlZicsIFRydWUpLCBiJ1x4MDFceDAyXHhhYlx4Y2RceGVmJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBiYXNlNjQuYjE2ZGVjb2RlLCAiIikKKyAgICAgICAgZXEoYmFzZTY0LmIxNmRlY29kZSgnMDEwMmFiY2RlZicsIFRydWUpLCBiJ1x4MDFceDAyXHhhYlx4Y2RceGVmJykKKworICAgIGRlZiB0ZXN0X2RlY29kZV9ub25hc2NpaV9zdHIoc2VsZik6CisgICAgICAgIGRlY29kZV9mdW5jcyA9IChiYXNlNjQuYjY0ZGVjb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTY0LnN0YW5kYXJkX2I2NGRlY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U2NC51cmxzYWZlX2I2NGRlY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U2NC5iMzJkZWNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICBiYXNlNjQuYjE2ZGVjb2RlKQorICAgICAgICBmb3IgZiBpbiBkZWNvZGVfZnVuY3M6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmLCAnd2l0aCBub24tYXNjaWkgXHhjYicpCiAKICAgICBkZWYgdGVzdF9FcnJvckhlcml0YWdlKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhiaW5hc2NpaS5FcnJvciwgVmFsdWVFcnJvcikpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2JpZ21lbS5weSBiL0xpYi90ZXN0L3Rlc3RfYmlnbWVtLnB5CmluZGV4IGYzYzZlYmIuLjBlNTQ1OTUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfYmlnbWVtLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYmlnbWVtLnB5CkBAIC0xLDMgKzEsMTMgQEAKKyIiIkJpZ21lbSB0ZXN0cyAtIHRlc3RzIGZvciB0aGUgMzItYml0IGJvdW5kYXJ5IGluIGNvbnRhaW5lcnMuCisKK1RoZXNlIHRlc3RzIHRyeSB0byBleGVyY2lzZSB0aGUgMzItYml0IGJvdW5kYXJ5IHRoYXQgaXMgc29tZXRpbWVzLCBpZgorcmFyZWx5LCBleGNlZWRlZCBpbiBwcmFjdGljZSwgYnV0IGFsbW9zdCBuZXZlciB0ZXN0ZWQuICBUaGV5IGFyZSByZWFsbHkgb25seQorbWVhbmluZ2Z1bCBvbiA2NC1iaXQgYnVpbGRzIG9uIG1hY2hpbmVzIHdpdGggYSAqbG90KiBvZiBtZW1vcnksIGJ1dCB0aGUKK3Rlc3RzIGFyZSBhbHdheXMgcnVuLCB1c3VhbGx5IHdpdGggdmVyeSBsb3cgbWVtb3J5IGxpbWl0cyB0byBtYWtlIHN1cmUgdGhlCit0ZXN0cyB0aGVtc2VsdmVzIGRvbid0IHN1ZmZlciBmcm9tIGJpdHJvdC4gIFRvIHJ1biB0aGVtIGZvciByZWFsLCBwYXNzIGEKK2hpZ2ggbWVtb3J5IGxpbWl0IHRvIHJlZ3J0ZXN0LCB3aXRoIHRoZSAtTSBvcHRpb24uCisiIiIKKwogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgYmlnbWVtdGVzdCwgXzFHLCBfMkcsIF80RwogCkBAIC02LDIwICsxNiwzNSBAQAogaW1wb3J0IHN5cwogaW1wb3J0IGZ1bmN0b29scwogCisjIFRoZXNlIHRlc3RzIGFsbCB1c2Ugb25lIG9mIHRoZSBiaWdtZW10ZXN0IGRlY29yYXRvcnMgdG8gaW5kaWNhdGUgaG93IG11Y2gKKyMgbWVtb3J5IHRoZXkgdXNlIGFuZCBob3cgbXVjaCBtZW1vcnkgdGhleSBuZWVkIHRvIGJlIGV2ZW4gbWVhbmluZ2Z1bC4gIFRoZQorIyBkZWNvcmF0b3JzIHRha2UgdHdvIGFyZ3VtZW50czogYSAnbWVtdXNlJyBpbmRpY2F0b3IgZGVjbGFyaW5nCisjIChhcHByb3hpbWF0ZSkgYnl0ZXMgcGVyIHNpemUtdW5pdCB0aGUgdGVzdCB3aWxsIHVzZSAoYXQgcGVhayB1c2FnZSksIGFuZCBhCisjICdtaW5zaXplJyBpbmRpY2F0b3IgZGVjbGFyaW5nIGEgbWluaW11bSAqdXNlZnVsKiBzaXplLiAgQSB0ZXN0IHRoYXQKKyMgYWxsb2NhdGVzIGEgYnl0ZXN0cmluZyB0byB0ZXN0IHZhcmlvdXMgb3BlcmF0aW9ucyBuZWFyIHRoZSBlbmQgd2lsbCBoYXZlIGEKKyMgbWluc2l6ZSBvZiBhdCBsZWFzdCAyR2IgKG9yIGl0IHdvdWxkbid0IHJlYWNoIHRoZSAzMi1iaXQgbGltaXQsIHNvIHRoZQorIyB0ZXN0IHdvdWxkbid0IGJlIHZlcnkgdXNlZnVsKSBhbmQgYSBtZW11c2Ugb2YgMSAob25lIGJ5dGUgcGVyIHNpemUtdW5pdCwKKyMgaWYgaXQgYWxsb2NhdGVzIG9ubHkgb25lIGJpZyBzdHJpbmcgYXQgYSB0aW1lLikKKyMKKyMgV2hlbiBydW4gd2l0aCBhIG1lbW9yeSBsaW1pdCBzZXQsIGJvdGggZGVjb3JhdG9ycyBza2lwIHRlc3RzIHRoYXQgbmVlZAorIyBtb3JlIG1lbW9yeSB0aGFuIGF2YWlsYWJsZSB0byBiZSBtZWFuaW5nZnVsLiAgVGhlIHByZWNpc2lvbmJpZ21lbXRlc3Qgd2lsbAorIyBhbHdheXMgcGFzcyBtaW5zaXplIGFzIHNpemUsIGV2ZW4gaWYgdGhlcmUgaXMgbXVjaCBtb3JlIG1lbW9yeSBhdmFpbGFibGUuCisjIFRoZSBiaWdtZW10ZXN0IGRlY29yYXRvciB3aWxsIHNjYWxlIHNpemUgdXB3YXJkIHRvIGZpbGwgYXZhaWxhYmxlIG1lbW9yeS4KKyMKICMgQmlnbWVtIHRlc3RpbmcgaG91c2VydWxlczoKICMKICMgIC0gVHJ5IG5vdCB0byBhbGxvY2F0ZSB0b28gbWFueSBsYXJnZSBvYmplY3RzLiBJdCdzIG9rYXkgdG8gcmVseSBvbgotIyAgICByZWZjb3VudGluZyBzZW1hbnRpY3MsIGJ1dCBkb24ndCBmb3JnZXQgdGhhdCAncyA9IGNyZWF0ZV9sYXJnZXN0cmluZygpJworIyAgICByZWZjb3VudGluZyBzZW1hbnRpY3MsIGFuZCBkb24ndCBmb3JnZXQgdGhhdCAncyA9IGNyZWF0ZV9sYXJnZXN0cmluZygpJwogIyAgICBkb2Vzbid0IHJlbGVhc2UgdGhlIG9sZCAncycgKGlmIGl0IGV4aXN0cykgdW50aWwgd2VsbCBhZnRlciBpdHMgbmV3CiAjICAgIHZhbHVlIGhhcyBiZWVuIGNyZWF0ZWQuIFVzZSAnZGVsIHMnIGJlZm9yZSB0aGUgY3JlYXRlX2xhcmdlc3RyaW5nIGNhbGwuCiAjCi0jICAtIERvICpub3QqIGNvbXBhcmUgbGFyZ2Ugb2JqZWN0cyB1c2luZyBhc3NlcnRFcXVhbCBvciBzaW1pbGFyLiBJdCdzIGEKLSMgICAgbGVuZ3RoeSBvcGVyYXRpb24gYW5kIHRoZSBlcnJvcm1lc3NhZ2Ugd2lsbCBiZSB1dHRlcmx5IHVzZWxlc3MgZHVlIHRvCi0jICAgIGl0cyBzaXplLiBUbyBtYWtlIHN1cmUgd2hldGhlciBhIHJlc3VsdCBoYXMgdGhlIHJpZ2h0IGNvbnRlbnRzLCBiZXR0ZXIKLSMgICAgdG8gdXNlIHRoZSBzdHJpcCBvciBjb3VudCBtZXRob2RzLCBvciBjb21wYXJlIG1lYW5pbmdmdWwgc2xpY2VzLgorIyAgLSBEbyAqbm90KiBjb21wYXJlIGxhcmdlIG9iamVjdHMgdXNpbmcgYXNzZXJ0RXF1YWwsIGFzc2VydEluIG9yIHNpbWlsYXIuCisjICAgIEl0J3MgYSBsZW5ndGh5IG9wZXJhdGlvbiBhbmQgdGhlIGVycm9ybWVzc2FnZSB3aWxsIGJlIHV0dGVybHkgdXNlbGVzcworIyAgICBkdWUgdG8gaXRzIHNpemUuICBUbyBtYWtlIHN1cmUgd2hldGhlciBhIHJlc3VsdCBoYXMgdGhlIHJpZ2h0IGNvbnRlbnRzLAorIyAgICBiZXR0ZXIgdG8gdXNlIHRoZSBzdHJpcCBvciBjb3VudCBtZXRob2RzLCBvciBjb21wYXJlIG1lYW5pbmdmdWwgc2xpY2VzLgogIwogIyAgLSBEb24ndCBmb3JnZXQgdG8gdGVzdCBmb3IgbGFyZ2UgaW5kaWNlcywgb2Zmc2V0cyBhbmQgcmVzdWx0cyBhbmQgc3VjaCwKLSMgICAgaW4gYWRkaXRpb24gdG8gbGFyZ2Ugc2l6ZXMuCisjICAgIGluIGFkZGl0aW9uIHRvIGxhcmdlIHNpemVzLiBBbnl0aGluZyB0aGF0IHByb2JlcyB0aGUgMzItYml0IGJvdW5kYXJ5LgogIwogIyAgLSBXaGVuIHJlcGVhdGluZyBhbiBvYmplY3QgKHNheSwgYSBzdWJzdHJpbmcsIG9yIGEgc21hbGwgbGlzdCkgdG8gY3JlYXRlCiAjICAgIGEgbGFyZ2Ugb2JqZWN0LCBtYWtlIHRoZSBzdWJvYmplY3Qgb2YgYSBsZW5ndGggdGhhdCBpcyBub3QgYSBwb3dlciBvZgpAQCAtMzcsMTMgKzYyLDE0IEBACiAjIGZhaWwgYXMgd2VsbC4gSSBkbyBub3Qga25vdyB3aGV0aGVyIGl0IGlzIGR1ZSB0byBtZW1vcnkgZnJhZ21lbnRhdGlvbgogIyBpc3N1ZXMsIG9yIG90aGVyIHNwZWNpZmljcyBvZiB0aGUgcGxhdGZvcm0gbWFsbG9jKCkgcm91dGluZS4KIAotY2hhcmFjdGVyX3NpemUgPSA0IGlmIHN5cy5tYXh1bmljb2RlID4gMHhGRkZGIGVsc2UgMgorYXNjaWlfY2hhcl9zaXplID0gMQordWNzMl9jaGFyX3NpemUgPSAyCit1Y3M0X2NoYXJfc2l6ZSA9IDQKIAogCiBjbGFzcyBCYXNlU3RyVGVzdDoKIAotICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHLCBtZW11c2U9MikKLSAgICBkZWYgdGVzdF9jYXBpdGFsaXplKHNlbGYsIHNpemUpOgorICAgIGRlZiBfdGVzdF9jYXBpdGFsaXplKHNlbGYsIHNpemUpOgogICAgICAgICBfID0gc2VsZi5mcm9tX2xhdGluMQogICAgICAgICBTVUJTVFIgPSBzZWxmLmZyb21fbGF0aW4xKCcgYWJjIGRlZiBnaGknKQogICAgICAgICBzID0gXygnLScpICogc2l6ZSArIFNVQlNUUgpAQCAtOTIsNyArMTE4LDcgQEAKICAgICAgICAgXyA9IHNlbGYuZnJvbV9sYXRpbjEKICAgICAgICAgcyA9IF8oJy0nKSAqIHNpemUKICAgICAgICAgdGFic2l6ZSA9IDgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmV4cGFuZHRhYnMoKSwgcykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuZXhwYW5kdGFicygpID09IHMpCiAgICAgICAgIGRlbCBzCiAgICAgICAgIHNsZW4sIHJlbWFpbmRlciA9IGRpdm1vZChzaXplLCB0YWJzaXplKQogICAgICAgICBzID0gXygnICAgICAgIFx0JykgKiBzbGVuCkBAIC0zNDcsNyArMzczLDcgQEAKICAgICAjIHN1ZmZlciBmb3IgdGhlIGxpc3Qgc2l6ZS4gKE90aGVyd2lzZSwgaXQnZCBjb3N0IGFub3RoZXIgNDggdGltZXMKICAgICAjIHNpemUgaW4gYnl0ZXMhKSBOZXZlcnRoZWxlc3MsIGEgbGlzdCBvZiBzaXplIHRha2VzCiAgICAgIyA4KnNpemUgYnl0ZXMuCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgKyA1LCBtZW11c2U9MTApCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgKyA1LCBtZW11c2U9MiAqIGFzY2lpX2NoYXJfc2l6ZSArIDgpCiAgICAgZGVmIHRlc3Rfc3BsaXRfbGFyZ2Uoc2VsZiwgc2l6ZSk6CiAgICAgICAgIF8gPSBzZWxmLmZyb21fbGF0aW4xCiAgICAgICAgIHMgPSBfKCcgYScpICogc2l6ZSArIF8oJyAnKQpAQCAtMzY2LDkgKzM5Miw5IEBACiAgICAgICAgICMgdGFrZSB1cCBhbiBpbm9yZGluYXRlIGFtb3VudCBvZiBtZW1vcnkKICAgICAgICAgY2h1bmtzaXplID0gaW50KHNpemUgKiogMC41ICsgMikgLy8gMgogICAgICAgICBTVUJTVFIgPSBfKCcgJykgKiBjaHVua3NpemUgKyBfKCdcbicpICsgXygnICcpICogY2h1bmtzaXplICsgXygnXHJcbicpCi0gICAgICAgIHMgPSBTVUJTVFIgKiBjaHVua3NpemUKKyAgICAgICAgcyA9IFNVQlNUUiAqIChjaHVua3NpemUgKiAyKQogICAgICAgICBsID0gcy5zcGxpdGxpbmVzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obCksIGNodW5rc2l6ZSAqIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGwpLCBjaHVua3NpemUgKiA0KQogICAgICAgICBleHBlY3RlZCA9IF8oJyAnKSAqIGNodW5rc2l6ZQogICAgICAgICBmb3IgaXRlbSBpbiBsOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtLCBleHBlY3RlZCkKQEAgLTM5NCw4ICs0MjAsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzKSwgc2l6ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLnN0cmlwKCksIFNVQlNUUi5zdHJpcCgpKQogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcsIG1lbXVzZT0yKQotICAgIGRlZiB0ZXN0X3N3YXBjYXNlKHNlbGYsIHNpemUpOgorICAgIGRlZiBfdGVzdF9zd2FwY2FzZShzZWxmLCBzaXplKToKICAgICAgICAgXyA9IHNlbGYuZnJvbV9sYXRpbjEKICAgICAgICAgU1VCU1RSID0gXygiYUJjRGVGRzEyLidceGE5XHgwMCIpCiAgICAgICAgIHN1YmxlbiA9IGxlbihTVUJTVFIpCkBAIC00MDYsOCArNDMxLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWzpzdWJsZW4gKiAzXSwgU1VCU1RSLnN3YXBjYXNlKCkgKiAzKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNbLXN1YmxlbiAqIDM6XSwgU1VCU1RSLnN3YXBjYXNlKCkgKiAzKQogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcsIG1lbXVzZT0yKQotICAgIGRlZiB0ZXN0X3RpdGxlKHNlbGYsIHNpemUpOgorICAgIGRlZiBfdGVzdF90aXRsZShzZWxmLCBzaXplKToKICAgICAgICAgXyA9IHNlbGYuZnJvbV9sYXRpbjEKICAgICAgICAgU1VCU1RSID0gXygnU3BhYUhBYWFBYWhhbScpCiAgICAgICAgIHMgPSBTVUJTVFIgKiAoc2l6ZSAvLyBsZW4oU1VCU1RSKSArIDIpCkBAIC00MTksMTQgKzQ0Myw3IEBACiAgICAgZGVmIHRlc3RfdHJhbnNsYXRlKHNlbGYsIHNpemUpOgogICAgICAgICBfID0gc2VsZi5mcm9tX2xhdGluMQogICAgICAgICBTVUJTVFIgPSBfKCdhWnouei5BYXouJykKLSAgICAgICAgaWYgaXNpbnN0YW5jZShTVUJTVFIsIHN0cik6Ci0gICAgICAgICAgICB0cmFucyA9IHsKLSAgICAgICAgICAgICAgICBvcmQoXygnLicpKTogXygnLScpLAotICAgICAgICAgICAgICAgIG9yZChfKCdhJykpOiBfKCchJyksCi0gICAgICAgICAgICAgICAgb3JkKF8oJ1onKSk6IF8oJyQnKSwKLSAgICAgICAgICAgIH0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHRyYW5zID0gYnl0ZXMubWFrZXRyYW5zKGInLmFaJywgYictISQnKQorICAgICAgICB0cmFucyA9IGJ5dGVzLm1ha2V0cmFucyhiJy5hWicsIGInLSEkJykKICAgICAgICAgc3VibGVuID0gbGVuKFNVQlNUUikKICAgICAgICAgcmVwZWF0cyA9IHNpemUgLy8gc3VibGVuICsgMgogICAgICAgICBzID0gU1VCU1RSICogcmVwZWF0cwpAQCAtNTE5LDE5ICs1MzYsMTkgQEAKICAgICAgICAgZWRnZSA9IF8oJy0nKSAqIChzaXplIC8vIDIpCiAgICAgICAgIHMgPSBfKCcnKS5qb2luKFtlZGdlLCBTVUJTVFIsIGVkZ2VdKQogICAgICAgICBkZWwgZWRnZQotICAgICAgICBzZWxmLmFzc2VydEluKFNVQlNUUiwgcykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbihTVUJTVFIgKiAyLCBzKQotICAgICAgICBzZWxmLmFzc2VydEluKF8oJy0nKSwgcykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbihfKCdhJyksIHMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShTVUJTVFIgaW4gcykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShTVUJTVFIgKiAyIGluIHMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShfKCctJykgaW4gcykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShfKCdhJykgaW4gcykKICAgICAgICAgcyArPSBfKCdhJykKLSAgICAgICAgc2VsZi5hc3NlcnRJbihfKCdhJyksIHMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShfKCdhJykgaW4gcykKIAogICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHICsgMTAsIG1lbXVzZT0yKQogICAgIGRlZiB0ZXN0X2NvbXBhcmUoc2VsZiwgc2l6ZSk6CiAgICAgICAgIF8gPSBzZWxmLmZyb21fbGF0aW4xCiAgICAgICAgIHMxID0gXygnLScpICogc2l6ZQogICAgICAgICBzMiA9IF8oJy0nKSAqIHNpemUKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzMSwgczIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzMSA9PSBzMikKICAgICAgICAgZGVsIHMyCiAgICAgICAgIHMyID0gczEgKyBfKCdhJykKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzMSA9PSBzMikKQEAgLTU1Miw3ICs1NjksNyBAQAogICAgICAgICBoMSA9IGhhc2gocykKICAgICAgICAgZGVsIHMKICAgICAgICAgcyA9IF8oJ1x4MDAnKSAqIChzaXplICsgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoMSA9PSBoYXNoKHMpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGgxLCBoYXNoKHMpKQogCiAKIGNsYXNzIFN0clRlc3QodW5pdHRlc3QuVGVzdENhc2UsIEJhc2VTdHJUZXN0KToKQEAgLTU2Myw3ICs1ODAsNiBAQAogICAgIGRlZiBiYXNpY19lbmNvZGVfdGVzdChzZWxmLCBzaXplLCBlbmMsIGM9Jy4nLCBleHBlY3RlZHNpemU9Tm9uZSk6CiAgICAgICAgIGlmIGV4cGVjdGVkc2l6ZSBpcyBOb25lOgogICAgICAgICAgICAgZXhwZWN0ZWRzaXplID0gc2l6ZQotCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHMgPSBjICogc2l6ZQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocy5lbmNvZGUoZW5jKSksIGV4cGVjdGVkc2l6ZSkKQEAgLTU4Miw0OCArNTk4LDY0IEBACiAgICAgICAgICAgICAgICAgbWVtdXNlID0gbWV0aC5tZW11c2UKICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbWV0aC5tZW11c2UgPSBjaGFyYWN0ZXJfc2l6ZSAqIG1lbXVzZQorICAgICAgICAgICAgbWV0aC5tZW11c2UgPSBhc2NpaV9jaGFyX3NpemUgKiBtZW11c2UKICAgICAgICAgICAgIHNlbGYuX2FkanVzdGVkW25hbWVdID0gbWVtdXNlCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIGZvciBuYW1lLCBtZW11c2UgaW4gc2VsZi5fYWRqdXN0ZWQuaXRlbXMoKToKICAgICAgICAgICAgIGdldGF0dHIodHlwZShzZWxmKSwgbmFtZSkubWVtdXNlID0gbWVtdXNlCiAKLSAgICAjIHRoZSB1dGY4IGVuY29kZXIgcHJlYWxsb2NhdGVzIGJpZyB0aW1lICg0eCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMpCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgKyAyLCBtZW11c2U9Y2hhcmFjdGVyX3NpemUgKyA0KQorICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHLCBtZW11c2U9dWNzNF9jaGFyX3NpemUgKiAzKQorICAgIGRlZiB0ZXN0X2NhcGl0YWxpemUoc2VsZiwgc2l6ZSk6CisgICAgICAgIHNlbGYuX3Rlc3RfY2FwaXRhbGl6ZShzaXplKQorCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcsIG1lbXVzZT11Y3M0X2NoYXJfc2l6ZSAqIDMpCisgICAgZGVmIHRlc3RfdGl0bGUoc2VsZiwgc2l6ZSk6CisgICAgICAgIHNlbGYuX3Rlc3RfdGl0bGUoc2l6ZSkKKworICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHLCBtZW11c2U9dWNzNF9jaGFyX3NpemUgKiAzKQorICAgIGRlZiB0ZXN0X3N3YXBjYXNlKHNlbGYsIHNpemUpOgorICAgICAgICBzZWxmLl90ZXN0X3N3YXBjYXNlKHNpemUpCisKKyAgICAjIE1hbnkgY29kZWNzIGNvbnZlcnQgdG8gdGhlIGxlZ2FjeSByZXByZXNlbnRhdGlvbiBmaXJzdCwgZXhwbGFpbmluZworICAgICMgd2h5IHdlIGFkZCAndWNzNF9jaGFyX3NpemUnIHRvIHRoZSAnbWVtdXNlJyBiZWxvdy4KKworICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHICsgMiwgbWVtdXNlPWFzY2lpX2NoYXJfc2l6ZSArIDEpCiAgICAgZGVmIHRlc3RfZW5jb2RlKHNlbGYsIHNpemUpOgogICAgICAgICByZXR1cm4gc2VsZi5iYXNpY19lbmNvZGVfdGVzdChzaXplLCAndXRmLTgnKQogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcgLy8gNiArIDIsIG1lbXVzZT1jaGFyYWN0ZXJfc2l6ZSArIDEpCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcgLy8gNiArIDIsIG1lbXVzZT1hc2NpaV9jaGFyX3NpemUgKyB1Y3M0X2NoYXJfc2l6ZSArIDEpCiAgICAgZGVmIHRlc3RfZW5jb2RlX3Jhd191bmljb2RlX2VzY2FwZShzZWxmLCBzaXplKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuYmFzaWNfZW5jb2RlX3Rlc3Qoc2l6ZSwgJ3Jhd191bmljb2RlX2VzY2FwZScpCiAgICAgICAgIGV4Y2VwdCBNZW1vcnlFcnJvcjoKICAgICAgICAgICAgIHBhc3MgIyBhY2NlcHRhYmxlIG9uIDMyLWJpdAogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcgLy8gNSArIDcwLCBtZW11c2U9Y2hhcmFjdGVyX3NpemUgKyAxKQorICAgIEBiaWdtZW10ZXN0KHNpemU9XzRHIC8vIDUgKyA3MCwgbWVtdXNlPWFzY2lpX2NoYXJfc2l6ZSArIHVjczRfY2hhcl9zaXplICsgMSkKICAgICBkZWYgdGVzdF9lbmNvZGVfdXRmNyhzZWxmLCBzaXplKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuYmFzaWNfZW5jb2RlX3Rlc3Qoc2l6ZSwgJ3V0ZjcnKQogICAgICAgICBleGNlcHQgTWVtb3J5RXJyb3I6CiAgICAgICAgICAgICBwYXNzICMgYWNjZXB0YWJsZSBvbiAzMi1iaXQKIAotICAgIEBiaWdtZW10ZXN0KHNpemU9XzRHIC8vIDQgKyA1LCBtZW11c2U9Y2hhcmFjdGVyX3NpemUgKyA0KQorICAgIEBiaWdtZW10ZXN0KHNpemU9XzRHIC8vIDQgKyA1LCBtZW11c2U9YXNjaWlfY2hhcl9zaXplICsgdWNzNF9jaGFyX3NpemUgKyA0KQogICAgIGRlZiB0ZXN0X2VuY29kZV91dGYzMihzZWxmLCBzaXplKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuYmFzaWNfZW5jb2RlX3Rlc3Qoc2l6ZSwgJ3V0ZjMyJywgZXhwZWN0ZWRzaXplPTQqc2l6ZSs0KQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYmFzaWNfZW5jb2RlX3Rlc3Qoc2l6ZSwgJ3V0ZjMyJywgZXhwZWN0ZWRzaXplPTQgKiBzaXplICsgNCkKICAgICAgICAgZXhjZXB0IE1lbW9yeUVycm9yOgogICAgICAgICAgICAgcGFzcyAjIGFjY2VwdGFibGUgb24gMzItYml0CiAKLSAgICBAYmlnbWVtdGVzdChzaXplPV8yRyAtIDEsIG1lbXVzZT1jaGFyYWN0ZXJfc2l6ZSArIDEpCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgLSAxLCBtZW11c2U9YXNjaWlfY2hhcl9zaXplICsgMSkKICAgICBkZWYgdGVzdF9lbmNvZGVfYXNjaWkoc2VsZiwgc2l6ZSk6CiAgICAgICAgIHJldHVybiBzZWxmLmJhc2ljX2VuY29kZV90ZXN0KHNpemUsICdhc2NpaScsIGM9J0EnKQogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgKyAxMCwgbWVtdXNlPWNoYXJhY3Rlcl9zaXplICogMikKKyAgICAjIHN0ciAlICguLi4pIHVzZXMgYSBQeV9VQ1M0IGludGVybWVkaWF0ZSByZXByZXNlbnRhdGlvbgorCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgKyAxMCwgbWVtdXNlPWFzY2lpX2NoYXJfc2l6ZSAqIDIgKyB1Y3M0X2NoYXJfc2l6ZSkKICAgICBkZWYgdGVzdF9mb3JtYXQoc2VsZiwgc2l6ZSk6CiAgICAgICAgIHMgPSAnLScgKiBzaXplCiAgICAgICAgIHNmID0gJyVzJyAlIChzLCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLCBzZikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMgPT0gc2YpCiAgICAgICAgIGRlbCBzZgogICAgICAgICBzZiA9ICcuLiVzLi4nICUgKHMsKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZiksIGxlbihzKSArIDQpCkBAIC02NDAsNyArNjcyLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmNvdW50KCcuJyksIDMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5jb3VudCgnLScpLCBzaXplICogMikKIAotICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHICsgMTAsIG1lbXVzZT1jaGFyYWN0ZXJfc2l6ZSAqIDIpCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgKyAxMCwgbWVtdXNlPWFzY2lpX2NoYXJfc2l6ZSAqIDIpCiAgICAgZGVmIHRlc3RfcmVwcl9zbWFsbChzZWxmLCBzaXplKToKICAgICAgICAgcyA9ICctJyAqIHNpemUKICAgICAgICAgcyA9IHJlcHIocykKQEAgLTY2MSw3ICs2OTMsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuY291bnQoJ1xcJyksIHNpemUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5jb3VudCgnMCcpLCBzaXplICogMikKIAotICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHICsgMTAsIG1lbXVzZT1jaGFyYWN0ZXJfc2l6ZSAqIDUpCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgKyAxMCwgbWVtdXNlPWFzY2lpX2NoYXJfc2l6ZSAqIDUpCiAgICAgZGVmIHRlc3RfcmVwcl9sYXJnZShzZWxmLCBzaXplKToKICAgICAgICAgcyA9ICdceDAwJyAqIHNpemUKICAgICAgICAgcyA9IHJlcHIocykKQEAgLTY3MSw3ICs3MDMsMTMgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmNvdW50KCdcXCcpLCBzaXplKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuY291bnQoJzAnKSwgc2l6ZSAqIDIpCiAKLSAgICBAYmlnbWVtdGVzdChzaXplPV8yRyAvLyA1ICsgMSwgbWVtdXNlPWNoYXJhY3Rlcl9zaXplICogNykKKyAgICAjIGFzY2lpKCkgY2FsbHMgZW5jb2RlKCdhc2NpaScsICdiYWNrc2xhc2hyZXBsYWNlJyksIHdoaWNoIGl0c2VsZgorICAgICMgY3JlYXRlcyBhIHRlbXBvcmFyeSBQeV9VTklDT0RFIHJlcHJlc2VudGF0aW9uIGluIGFkZGl0aW9uIHRvIHRoZQorICAgICMgb3JpZ2luYWwgKFB5X1VDUzIpIG9uZQorICAgICMgVGhlcmUncyBhbHNvIHNvbWUgb3ZlcmFsbG9jYXRpb24gd2hlbiByZXNpemluZyB0aGUgYXNjaWkoKSByZXN1bHQKKyAgICAjIHRoYXQgaXNuJ3QgdGFrZW4gaW50byBhY2NvdW50IGhlcmUuCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgLy8gNSArIDEsIG1lbXVzZT11Y3MyX2NoYXJfc2l6ZSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Y3M0X2NoYXJfc2l6ZSArIGFzY2lpX2NoYXJfc2l6ZSAqIDYpCiAgICAgZGVmIHRlc3RfdW5pY29kZV9yZXByKHNlbGYsIHNpemUpOgogICAgICAgICAjIFVzZSBhbiBhc3NpZ25lZCwgYnV0IG5vdCBwcmludGFibGUgY29kZSBwb2ludC4KICAgICAgICAgIyBJdCBpcyBpbiB0aGUgcmFuZ2Ugb2YgdGhlIGxvdyBzdXJyb2dhdGVzIFx1REMwMC1cdURGRkYuCkBAIC02ODYsOSArNzI0LDcgQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHIgPSBzID0gTm9uZQogCi0gICAgIyBUaGUgY2hhcmFjdGVyIHRha2VzIDQgYnl0ZXMgZXZlbiBpbiBVQ1MtMiBidWlsZHMgYmVjYXVzZSBpdCB3aWxsCi0gICAgIyBiZSBkZWNvbXBvc2VkIGludG8gc3Vycm9nYXRlcy4KLSAgICBAYmlnbWVtdGVzdChzaXplPV8yRyAvLyA1ICsgMSwgbWVtdXNlPTQgKyBjaGFyYWN0ZXJfc2l6ZSAqIDkpCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgLy8gNSArIDEsIG1lbXVzZT11Y3M0X2NoYXJfc2l6ZSAqIDIgKyBhc2NpaV9jaGFyX3NpemUgKiAxMCkKICAgICBkZWYgdGVzdF91bmljb2RlX3JlcHJfd2lkZShzZWxmLCBzaXplKToKICAgICAgICAgY2hhciA9ICJcVTAwMDFEQ0JBIgogICAgICAgICBzID0gY2hhciAqIHNpemUKQEAgLTcwMSwzOSArNzM3LDc2IEBACiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICByID0gcyA9IE5vbmUKIAotICAgIEBiaWdtZW10ZXN0KHNpemU9XzRHIC8vIDUsIG1lbXVzZT1jaGFyYWN0ZXJfc2l6ZSAqICg2ICsgMSkpCi0gICAgZGVmIF90ZXN0X3VuaWNvZGVfcmVwcl9vdmVyZmxvdyhzZWxmLCBzaXplKToKLSAgICAgICAgIyBYWFggbm90IHN1cmUgd2hhdCB0aGlzIHRlc3QgaXMgYWJvdXQKLSAgICAgICAgY2hhciA9ICJcdURDQkEiCi0gICAgICAgIHMgPSBjaGFyICogc2l6ZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByID0gcmVwcihzKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMgPT0gZXZhbChyKSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHIgPSBzID0gTm9uZQorICAgICMgVGhlIG9yaWdpbmFsIHRlc3RfdHJhbnNsYXRlIGlzIG92ZXJyaWRlbiBoZXJlLCBzbyBhcyB0byBnZXQgdGhlCisgICAgIyBjb3JyZWN0IHNpemUgZXN0aW1hdGU6IHN0ci50cmFuc2xhdGUoKSB1c2VzIGFuIGludGVybWVkaWF0ZSBQeV9VQ1M0CisgICAgIyByZXByZXNlbnRhdGlvbi4KKworICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHLCBtZW11c2U9YXNjaWlfY2hhcl9zaXplICogMiArIHVjczRfY2hhcl9zaXplKQorICAgIGRlZiB0ZXN0X3RyYW5zbGF0ZShzZWxmLCBzaXplKToKKyAgICAgICAgXyA9IHNlbGYuZnJvbV9sYXRpbjEKKyAgICAgICAgU1VCU1RSID0gXygnYVp6LnouQWF6LicpCisgICAgICAgIHRyYW5zID0geworICAgICAgICAgICAgb3JkKF8oJy4nKSk6IF8oJy0nKSwKKyAgICAgICAgICAgIG9yZChfKCdhJykpOiBfKCchJyksCisgICAgICAgICAgICBvcmQoXygnWicpKTogXygnJCcpLAorICAgICAgICB9CisgICAgICAgIHN1YmxlbiA9IGxlbihTVUJTVFIpCisgICAgICAgIHJlcGVhdHMgPSBzaXplIC8vIHN1YmxlbiArIDIKKyAgICAgICAgcyA9IFNVQlNUUiAqIHJlcGVhdHMKKyAgICAgICAgcyA9IHMudHJhbnNsYXRlKHRyYW5zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzKSwgcmVwZWF0cyAqIHN1YmxlbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWzpzdWJsZW5dLCBTVUJTVFIudHJhbnNsYXRlKHRyYW5zKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWy1zdWJsZW46XSwgU1VCU1RSLnRyYW5zbGF0ZSh0cmFucykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5jb3VudChfKCcuJykpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuY291bnQoXygnIScpKSwgcmVwZWF0cyAqIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5jb3VudChfKCd6JykpLCByZXBlYXRzICogMykKIAogCiBjbGFzcyBCeXRlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UsIEJhc2VTdHJUZXN0KToKIAogICAgIGRlZiBmcm9tX2xhdGluMShzZWxmLCBzKToKLSAgICAgICAgcmV0dXJuIHMuZW5jb2RlKCJsYXRpbjEiKQorICAgICAgICByZXR1cm4gcy5lbmNvZGUoImxhdGluLTEiKQogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgKyAyLCBtZW11c2U9MSArIGNoYXJhY3Rlcl9zaXplKQorICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHICsgMiwgbWVtdXNlPTEgKyBhc2NpaV9jaGFyX3NpemUpCiAgICAgZGVmIHRlc3RfZGVjb2RlKHNlbGYsIHNpemUpOgogICAgICAgICBzID0gc2VsZi5mcm9tX2xhdGluMSgnLicpICogc2l6ZQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzLmRlY29kZSgndXRmLTgnKSksIHNpemUpCiAKKyAgICBAYmlnbWVtdGVzdChzaXplPV8yRywgbWVtdXNlPTIpCisgICAgZGVmIHRlc3RfY2FwaXRhbGl6ZShzZWxmLCBzaXplKToKKyAgICAgICAgc2VsZi5fdGVzdF9jYXBpdGFsaXplKHNpemUpCisKKyAgICBAYmlnbWVtdGVzdChzaXplPV8yRywgbWVtdXNlPTIpCisgICAgZGVmIHRlc3RfdGl0bGUoc2VsZiwgc2l6ZSk6CisgICAgICAgIHNlbGYuX3Rlc3RfdGl0bGUoc2l6ZSkKKworICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHLCBtZW11c2U9MikKKyAgICBkZWYgdGVzdF9zd2FwY2FzZShzZWxmLCBzaXplKToKKyAgICAgICAgc2VsZi5fdGVzdF9zd2FwY2FzZShzaXplKQorCiAKIGNsYXNzIEJ5dGVhcnJheVRlc3QodW5pdHRlc3QuVGVzdENhc2UsIEJhc2VTdHJUZXN0KToKIAogICAgIGRlZiBmcm9tX2xhdGluMShzZWxmLCBzKToKLSAgICAgICAgcmV0dXJuIGJ5dGVhcnJheShzLmVuY29kZSgibGF0aW4xIikpCisgICAgICAgIHJldHVybiBieXRlYXJyYXkocy5lbmNvZGUoImxhdGluLTEiKSkKIAotICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHICsgMiwgbWVtdXNlPTEgKyBjaGFyYWN0ZXJfc2l6ZSkKKyAgICBAYmlnbWVtdGVzdChzaXplPV8yRyArIDIsIG1lbXVzZT0xICsgYXNjaWlfY2hhcl9zaXplKQogICAgIGRlZiB0ZXN0X2RlY29kZShzZWxmLCBzaXplKToKICAgICAgICAgcyA9IHNlbGYuZnJvbV9sYXRpbjEoJy4nKSAqIHNpemUKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocy5kZWNvZGUoJ3V0Zi04JykpLCBzaXplKQogCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcsIG1lbXVzZT0yKQorICAgIGRlZiB0ZXN0X2NhcGl0YWxpemUoc2VsZiwgc2l6ZSk6CisgICAgICAgIHNlbGYuX3Rlc3RfY2FwaXRhbGl6ZShzaXplKQorCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcsIG1lbXVzZT0yKQorICAgIGRlZiB0ZXN0X3RpdGxlKHNlbGYsIHNpemUpOgorICAgICAgICBzZWxmLl90ZXN0X3RpdGxlKHNpemUpCisKKyAgICBAYmlnbWVtdGVzdChzaXplPV8yRywgbWVtdXNlPTIpCisgICAgZGVmIHRlc3Rfc3dhcGNhc2Uoc2VsZiwgc2l6ZSk6CisgICAgICAgIHNlbGYuX3Rlc3Rfc3dhcGNhc2Uoc2l6ZSkKKwogICAgIHRlc3RfaGFzaCA9IE5vbmUKICAgICB0ZXN0X3NwbGl0X2xhcmdlID0gTm9uZQogCkBAIC03NTIsNyArODI1LDcgQEAKICAgICBkZWYgdGVzdF9jb21wYXJlKHNlbGYsIHNpemUpOgogICAgICAgICB0MSA9ICgnJywpICogc2l6ZQogICAgICAgICB0MiA9ICgnJywpICogc2l6ZQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQxLCB0MikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHQxID09IHQyKQogICAgICAgICBkZWwgdDIKICAgICAgICAgdDIgPSAoJycsKSAqIChzaXplICsgMSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh0MSA9PSB0MikKQEAgLTc4Myw5ICs4NTYsOSBAQAogICAgIGRlZiB0ZXN0X2NvbnRhaW5zKHNlbGYsIHNpemUpOgogICAgICAgICB0ID0gKDEsIDIsIDMsIDQsIDUpICogc2l6ZQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih0KSwgc2l6ZSAqIDUpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oNSwgdCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RJbigoMSwgMiwgMywgNCwgNSksIHQpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oMCwgdCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKDUgaW4gdCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgoMSwgMiwgMywgNCwgNSkgaW4gdCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgwIGluIHQpCiAKICAgICBAYmlnbWVtdGVzdChzaXplPV8yRyArIDEwLCBtZW11c2U9OCkKICAgICBkZWYgdGVzdF9oYXNoKHNlbGYsIHNpemUpOgpAQCAtODY5LDExICs5NDIsMTEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWy01Ol0sICcwLCAwKScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5jb3VudCgnMCcpLCBzaXplKQogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgLy8gMyArIDIsIG1lbXVzZT04ICsgMyAqIGNoYXJhY3Rlcl9zaXplKQorICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHIC8vIDMgKyAyLCBtZW11c2U9OCArIDMgKiBhc2NpaV9jaGFyX3NpemUpCiAgICAgZGVmIHRlc3RfcmVwcl9zbWFsbChzZWxmLCBzaXplKToKICAgICAgICAgcmV0dXJuIHNlbGYuYmFzaWNfdGVzdF9yZXByKHNpemUpCiAKLSAgICBAYmlnbWVtdGVzdChzaXplPV8yRyArIDIsIG1lbXVzZT04ICsgMyAqIGNoYXJhY3Rlcl9zaXplKQorICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHICsgMiwgbWVtdXNlPTggKyAzICogYXNjaWlfY2hhcl9zaXplKQogICAgIGRlZiB0ZXN0X3JlcHJfbGFyZ2Uoc2VsZiwgc2l6ZSk6CiAgICAgICAgIHJldHVybiBzZWxmLmJhc2ljX3Rlc3RfcmVwcihzaXplKQogCkBAIC04ODgsNyArOTYxLDcgQEAKICAgICBkZWYgdGVzdF9jb21wYXJlKHNlbGYsIHNpemUpOgogICAgICAgICBsMSA9IFsnJ10gKiBzaXplCiAgICAgICAgIGwyID0gWycnXSAqIHNpemUKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsMSwgbDIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsMSA9PSBsMikKICAgICAgICAgZGVsIGwyCiAgICAgICAgIGwyID0gWycnXSAqIChzaXplICsgMSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShsMSA9PSBsMikKQEAgLTkzNCw5ICsxMDA3LDkgQEAKICAgICBkZWYgdGVzdF9jb250YWlucyhzZWxmLCBzaXplKToKICAgICAgICAgbCA9IFsxLCAyLCAzLCA0LCA1XSAqIHNpemUKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obCksIHNpemUgKiA1KQotICAgICAgICBzZWxmLmFzc2VydEluKDUsIGwpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oWzEsIDIsIDMsIDQsIDVdLCBsKQotICAgICAgICBzZWxmLmFzc2VydE5vdEluKDAsIGwpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSg1IGluIGwpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoWzEsIDIsIDMsIDQsIDVdIGluIGwpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoMCBpbiBsKQogCiAgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgKyAxMCwgbWVtdXNlPTgpCiAgICAgZGVmIHRlc3RfaGFzaChzZWxmLCBzaXplKToKQEAgLTEwNDQsMTEgKzExMTcsMTEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWy01Ol0sICcwLCAwXScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5jb3VudCgnMCcpLCBzaXplKQogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fMkcgLy8gMyArIDIsIG1lbXVzZT04ICsgMyAqIGNoYXJhY3Rlcl9zaXplKQorICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHIC8vIDMgKyAyLCBtZW11c2U9OCArIDMgKiBhc2NpaV9jaGFyX3NpemUpCiAgICAgZGVmIHRlc3RfcmVwcl9zbWFsbChzZWxmLCBzaXplKToKICAgICAgICAgcmV0dXJuIHNlbGYuYmFzaWNfdGVzdF9yZXByKHNpemUpCiAKLSAgICBAYmlnbWVtdGVzdChzaXplPV8yRyArIDIsIG1lbXVzZT04ICsgMyAqIGNoYXJhY3Rlcl9zaXplKQorICAgIEBiaWdtZW10ZXN0KHNpemU9XzJHICsgMiwgbWVtdXNlPTggKyAzICogYXNjaWlfY2hhcl9zaXplKQogICAgIGRlZiB0ZXN0X3JlcHJfbGFyZ2Uoc2VsZiwgc2l6ZSk6CiAgICAgICAgIHJldHVybiBzZWxmLmJhc2ljX3Rlc3RfcmVwcihzaXplKQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2JpbmFzY2lpLnB5IGIvTGliL3Rlc3QvdGVzdF9iaW5hc2NpaS5weQppbmRleCAxZTllODg4Li4wNGQ4ZjlkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2JpbmFzY2lpLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYmluYXNjaWkucHkKQEAgLTIwOCw5ICsyMDgsOSBAQAogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJ7fSh7IXJ9KSByYWlzZXMgeyFyfSIuZm9ybWF0KGZ1bmMsIGVtcHR5LCBlcnIpKQogCi0gICAgZGVmIHRlc3RfdW5pY29kZV9zdHJpbmdzKHNlbGYpOgotICAgICAgICAjIFVuaWNvZGUgc3RyaW5ncyBhcmUgbm90IGFjY2VwdGVkLgotICAgICAgICBmb3IgZnVuYyBpbiBhbGxfZnVuY3Rpb25zOgorICAgIGRlZiB0ZXN0X3VuaWNvZGVfYjJhKHNlbGYpOgorICAgICAgICAjIFVuaWNvZGUgc3RyaW5ncyBhcmUgbm90IGFjY2VwdGVkIGJ5IGIyYV8qIGZ1bmN0aW9ucy4KKyAgICAgICAgZm9yIGZ1bmMgaW4gc2V0KGFsbF9mdW5jdGlvbnMpIC0gc2V0KGEyYl9mdW5jdGlvbnMpIHwgeydybGVkZWNvZGVfaHF4J306CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBnZXRhdHRyKGJpbmFzY2lpLCBmdW5jKSwgInRlc3QiKQogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6CkBAIC0yMTgsNiArMjE4LDM0IEBACiAgICAgICAgICMgY3JjX2hxeCBuZWVkcyAyIGFyZ3VtZW50cwogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGJpbmFzY2lpLmNyY19ocXgsICJ0ZXN0IiwgMCkKIAorICAgIGRlZiB0ZXN0X3VuaWNvZGVfYTJiKHNlbGYpOgorICAgICAgICAjIFVuaWNvZGUgc3RyaW5ncyBhcmUgYWNjZXB0ZWQgYnkgYTJiXyogZnVuY3Rpb25zLgorICAgICAgICBNQVhfQUxMID0gNDUKKyAgICAgICAgcmF3ID0gc2VsZi5yYXdkYXRhWzpNQVhfQUxMXQorICAgICAgICBmb3IgZmEsIGZiIGluIHppcChhMmJfZnVuY3Rpb25zLCBiMmFfZnVuY3Rpb25zKToKKyAgICAgICAgICAgIGlmIGZhID09ICdybGVkZWNvZGVfaHF4JzoKKyAgICAgICAgICAgICAgICAjIFRha2VzIG5vbi1BU0NJSSBkYXRhCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGEyYiA9IGdldGF0dHIoYmluYXNjaWksIGZhKQorICAgICAgICAgICAgYjJhID0gZ2V0YXR0cihiaW5hc2NpaSwgZmIpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYSA9IGIyYShzZWxmLnR5cGUydGVzdChyYXcpKQorICAgICAgICAgICAgICAgIGJpbmFyeV9yZXMgPSBhMmIoYSkKKyAgICAgICAgICAgICAgICBhID0gYS5kZWNvZGUoJ2FzY2lpJykKKyAgICAgICAgICAgICAgICByZXMgPSBhMmIoYSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyOgorICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgie30ve30gY29udmVyc2lvbiByYWlzZXMgeyFyfSIuZm9ybWF0KGZiLCBmYSwgZXJyKSkKKyAgICAgICAgICAgIGlmIGZiID09ICdiMmFfaHF4JzoKKyAgICAgICAgICAgICAgICAjIGIyYV9ocXggcmV0dXJucyBhIHR1cGxlCisgICAgICAgICAgICAgICAgcmVzLCBfID0gcmVzCisgICAgICAgICAgICAgICAgYmluYXJ5X3JlcywgXyA9IGJpbmFyeV9yZXMKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCByYXcsICJ7fS97fSBjb252ZXJzaW9uOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ7IXJ9ICE9IHshcn0iLmZvcm1hdChmYiwgZmEsIHJlcywgcmF3KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCBiaW5hcnlfcmVzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHJlcywgYnl0ZXMpCisgICAgICAgICAgICAjIG5vbi1BU0NJSSBzdHJpbmcKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGEyYiwgIlx4ODAiKQorCiAKIGNsYXNzIEFycmF5QmluQVNDSUlUZXN0KEJpbkFTQ0lJVGVzdCk6CiAgICAgZGVmIHR5cGUydGVzdChzZWxmLCBzKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYm9vbC5weSBiL0xpYi90ZXN0L3Rlc3RfYm9vbC5weQppbmRleCBiMjk2ODcwLi40YmFiMjhiIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Jvb2wucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9ib29sLnB5CkBAIC0zMzAsNiArMzMwLDE2IEBACiAgICAgICAgICAgICAgICAgZXhjZXB0IChFeGNlcHRpb24pIGFzIGVfbGVuOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihlX2Jvb2wpLCBzdHIoZV9sZW4pKQogCisgICAgZGVmIHRlc3RfcmVhbF9hbmRfaW1hZyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLnJlYWwsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZS5pbWFnLCAwKQorICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUoVHJ1ZS5yZWFsKSwgaW50KQorICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUoVHJ1ZS5pbWFnKSwgaW50KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLnJlYWwsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UuaW1hZywgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKEZhbHNlLnJlYWwpLCBpbnQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShGYWxzZS5pbWFnKSwgaW50KQorCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoQm9vbFRlc3QpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYnVmZmVyLnB5IGIvTGliL3Rlc3QvdGVzdF9idWZmZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjZjYjNhYwotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfYnVmZmVyLnB5CkBAIC0wLDAgKzEsMzYyNiBAQAorIworIyBUaGUgbmRhcnJheSBvYmplY3QgZnJvbSBfdGVzdGJ1ZmZlci5jIGlzIGEgY29tcGxldGUgaW1wbGVtZW50YXRpb24gb2YKKyMgYSBQRVAtMzExOCBidWZmZXIgcHJvdmlkZXIuIEl0IGlzIGluZGVwZW5kZW50IGZyb20gTnVtUHkncyBuZGFycmF5CisjIGFuZCB0aGUgdGVzdHMgZG9uJ3QgcmVxdWlyZSBOdW1QeS4KKyMKKyMgSWYgTnVtUHkgaXMgcHJlc2VudCwgc29tZSB0ZXN0cyBjaGVjayBib3RoIG5kYXJyYXkgaW1wbGVtZW50YXRpb25zCisjIGFnYWluc3QgZWFjaCBvdGhlci4KKyMKKyMgTW9zdCBuZGFycmF5IHRlc3RzIGFsc28gY2hlY2sgdGhhdCBtZW1vcnl2aWV3KG5kYXJyYXkpIGJlaGF2ZXMgaW4KKyMgdGhlIHNhbWUgd2F5IGFzIHRoZSBvcmlnaW5hbC4gVGh1cywgYSBzdWJzdGFudGlhbCBwYXJ0IG9mIHRoZQorIyBtZW1vcnl2aWV3IHRlc3RzIGlzIG5vdyBpbiB0aGlzIG1vZHVsZS4KKyMKKworaW1wb3J0IHVuaXR0ZXN0Citmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKK2Zyb20gaXRlcnRvb2xzIGltcG9ydCBwZXJtdXRhdGlvbnMsIHByb2R1Y3QKK2Zyb20gcmFuZG9tIGltcG9ydCByYW5kcmFuZ2UsIHNhbXBsZSwgY2hvaWNlCitmcm9tIHN5c2NvbmZpZyBpbXBvcnQgZ2V0X2NvbmZpZ192YXIKK2ltcG9ydCB3YXJuaW5ncworaW1wb3J0IHN5cywgYXJyYXksIGlvCitmcm9tIGRlY2ltYWwgaW1wb3J0IERlY2ltYWwKK2Zyb20gZnJhY3Rpb25zIGltcG9ydCBGcmFjdGlvbgorCit0cnk6CisgICAgZnJvbSBfdGVzdGJ1ZmZlciBpbXBvcnQgKgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIG5kYXJyYXkgPSBOb25lCisKK3RyeToKKyAgICBpbXBvcnQgc3RydWN0CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgc3RydWN0ID0gTm9uZQorCit0cnk6CisgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICBmcm9tIG51bXB5IGltcG9ydCBuZGFycmF5IGFzIG51bXB5X2FycmF5CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgbnVtcHlfYXJyYXkgPSBOb25lCisKKworU0hPUlRfVEVTVCA9IFRydWUKKworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICAgICAgICAgICAgICAgIFJhbmRvbSBsaXN0cyBieSBmb3JtYXQgc3BlY2lmaWVyCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBOYXRpdmUgZm9ybWF0IGNoYXJzIGFuZCB0aGVpciByYW5nZXMuCitOQVRJVkUgPSB7CisgICAgJz8nOjAsICdjJzowLCAnYic6MCwgJ0InOjAsCisgICAgJ2gnOjAsICdIJzowLCAnaSc6MCwgJ0knOjAsCisgICAgJ2wnOjAsICdMJzowLCAnbic6MCwgJ04nOjAsCisgICAgJ2YnOjAsICdkJzowLCAnUCc6MAorfQorCitpZiBzdHJ1Y3Q6CisgICAgdHJ5OgorICAgICAgICAjIEFkZCAicVEiIGlmIHByZXNlbnQgaW4gbmF0aXZlIG1vZGUuCisgICAgICAgIHN0cnVjdC5wYWNrKCdRJywgMioqNjQtMSkKKyAgICAgICAgTkFUSVZFWydxJ10gPSAwCisgICAgICAgIE5BVElWRVsnUSddID0gMAorICAgIGV4Y2VwdCBzdHJ1Y3QuZXJyb3I6CisgICAgICAgIHBhc3MKKworIyBTdGFuZGFyZCBmb3JtYXQgY2hhcnMgYW5kIHRoZWlyIHJhbmdlcy4KK1NUQU5EQVJEID0geworICAgICc/JzooMCwgMiksICAgICAgICAgICAgJ2MnOigwLCAxPDw4KSwKKyAgICAnYic6KC0oMTw8NyksIDE8PDcpLCAgICdCJzooMCwgMTw8OCksCisgICAgJ2gnOigtKDE8PDE1KSwgMTw8MTUpLCAnSCc6KDAsIDE8PDE2KSwKKyAgICAnaSc6KC0oMTw8MzEpLCAxPDwzMSksICdJJzooMCwgMTw8MzIpLAorICAgICdsJzooLSgxPDwzMSksIDE8PDMxKSwgJ0wnOigwLCAxPDwzMiksCisgICAgJ3EnOigtKDE8PDYzKSwgMTw8NjMpLCAnUSc6KDAsIDE8PDY0KSwKKyAgICAnZic6KC0oMTw8NjMpLCAxPDw2MyksICdkJzooLSgxPDwxMDIzKSwgMTw8MTAyMykKK30KKworZGVmIG5hdGl2ZV90eXBlX3JhbmdlKGZtdCk6CisgICAgIiIiUmV0dXJuIHJhbmdlIG9mIGEgbmF0aXZlIHR5cGUuIiIiCisgICAgaWYgZm10ID09ICdjJzoKKyAgICAgICAgbGggPSAoMCwgMjU2KQorICAgIGVsaWYgZm10ID09ICc/JzoKKyAgICAgICAgbGggPSAoMCwgMikKKyAgICBlbGlmIGZtdCA9PSAnZic6CisgICAgICAgIGxoID0gKC0oMTw8NjMpLCAxPDw2MykKKyAgICBlbGlmIGZtdCA9PSAnZCc6CisgICAgICAgIGxoID0gKC0oMTw8MTAyMyksIDE8PDEwMjMpCisgICAgZWxzZToKKyAgICAgICAgZm9yIGV4cCBpbiAoMTI4LCAxMjcsIDY0LCA2MywgMzIsIDMxLCAxNiwgMTUsIDgsIDcpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHN0cnVjdC5wYWNrKGZtdCwgKDE8PGV4cCktMSkKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZXhjZXB0IHN0cnVjdC5lcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGxoID0gKC0oMTw8ZXhwKSwgMTw8ZXhwKSBpZiBleHAgJiAxIGVsc2UgKDAsIDE8PGV4cCkKKyAgICByZXR1cm4gbGgKKworZm10ZGljdCA9IHsKKyAgICAnJzpOQVRJVkUsCisgICAgJ0AnOk5BVElWRSwKKyAgICAnPCc6U1RBTkRBUkQsCisgICAgJz4nOlNUQU5EQVJELAorICAgICc9JzpTVEFOREFSRCwKKyAgICAnISc6U1RBTkRBUkQKK30KKworaWYgc3RydWN0OgorICAgIGZvciBmbXQgaW4gZm10ZGljdFsnQCddOgorICAgICAgICBmbXRkaWN0WydAJ11bZm10XSA9IG5hdGl2ZV90eXBlX3JhbmdlKGZtdCkKKworTUVNT1JZVklFVyA9IE5BVElWRS5jb3B5KCkKK0FSUkFZID0gTkFUSVZFLmNvcHkoKQorZm9yIGsgaW4gTkFUSVZFOgorICAgIGlmIG5vdCBrIGluICJiQmhIaUlsTGZkIjoKKyAgICAgICAgZGVsIEFSUkFZW2tdCisKK0JZVEVGTVQgPSBOQVRJVkUuY29weSgpCitmb3IgayBpbiBOQVRJVkU6CisgICAgaWYgbm90IGsgaW4gIkJiYyI6CisgICAgICAgIGRlbCBCWVRFRk1UW2tdCisKK2ZtdGRpY3RbJ20nXSAgPSBNRU1PUllWSUVXCitmbXRkaWN0WydAbSddID0gTUVNT1JZVklFVworZm10ZGljdFsnYSddICA9IEFSUkFZCitmbXRkaWN0WydiJ10gID0gQllURUZNVAorZm10ZGljdFsnQGInXSAgPSBCWVRFRk1UCisKKyMgQ2FwYWJpbGl0aWVzIG9mIHRoZSB0ZXN0IG9iamVjdHM6CitNT0RFID0gMAorTVVMVCA9IDEKK2NhcCA9IHsgICAgICAgICAjIGZvcm1hdCBjaGFycyAgICAgICAgICAgICAgICAgICMgbXVsdGlwbGllcgorICAnbmRhcnJheSc6ICAgIChbJycsICdAJywgJzwnLCAnPicsICc9JywgJyEnXSwgWycnLCAnMScsICcyJywgJzMnXSksCisgICdhcnJheSc6ICAgICAgKFsnYSddLCAgICAgICAgICAgICAgICAgICAgICAgICBbJyddKSwKKyAgJ251bXB5JzogICAgICAoWycnXSwgICAgICAgICAgICAgICAgICAgICAgICAgIFsnJ10pLAorICAnbWVtb3J5dmlldyc6IChbJ0BtJywgJ20nXSwgICAgICAgICAgICAgICAgICAgWycnXSksCisgICdieXRlZm10JzogICAgKFsnQGInLCAnYiddLCAgICAgICAgICAgICAgICAgICBbJyddKSwKK30KKworZGVmIHJhbmRyYW5nZV9mbXQobW9kZSwgY2hhciwgb2JqKToKKyAgICAiIiJSZXR1cm4gcmFuZG9tIGl0ZW0gZm9yIGEgdHlwZSBzcGVjaWZpZWQgYnkgYSBtb2RlIGFuZCBhIHNpbmdsZQorICAgICAgIGZvcm1hdCBjaGFyYWN0ZXIuIiIiCisgICAgeCA9IHJhbmRyYW5nZSgqZm10ZGljdFttb2RlXVtjaGFyXSkKKyAgICBpZiBjaGFyID09ICdjJzoKKyAgICAgICAgeCA9IGJ5dGVzKGNocih4KSwgJ2xhdGluMScpCisgICAgaWYgY2hhciA9PSAnPyc6CisgICAgICAgIHggPSBib29sKHgpCisgICAgaWYgY2hhciA9PSAnZicgb3IgY2hhciA9PSAnZCc6CisgICAgICAgIHggPSBzdHJ1Y3QucGFjayhjaGFyLCB4KQorICAgICAgICB4ID0gc3RydWN0LnVucGFjayhjaGFyLCB4KVswXQorICAgIGlmIG9iaiA9PSAnbnVtcHknIGFuZCB4ID09IGInXHgwMCc6CisgICAgICAgICMgaHR0cDovL3Byb2plY3RzLnNjaXB5Lm9yZy9udW1weS90aWNrZXQvMTkyNQorICAgICAgICB4ID0gYidceDAxJworICAgIHJldHVybiB4CisKK2RlZiBnZW5faXRlbShmbXQsIG9iaik6CisgICAgIiIiUmV0dXJuIHNpbmdsZSByYW5kb20gaXRlbS4iIiIKKyAgICBtb2RlLCBjaGFycyA9IGZtdC5zcGxpdCgnIycpCisgICAgeCA9IFtdCisgICAgZm9yIGMgaW4gY2hhcnM6CisgICAgICAgIHguYXBwZW5kKHJhbmRyYW5nZV9mbXQobW9kZSwgYywgb2JqKSkKKyAgICByZXR1cm4geFswXSBpZiBsZW4oeCkgPT0gMSBlbHNlIHR1cGxlKHgpCisKK2RlZiBnZW5faXRlbXMobiwgZm10LCBvYmopOgorICAgICIiIlJldHVybiBhIGxpc3Qgb2YgcmFuZG9tIGl0ZW1zIChvciBhIHNjYWxhcikuIiIiCisgICAgaWYgbiA9PSAwOgorICAgICAgICByZXR1cm4gZ2VuX2l0ZW0oZm10LCBvYmopCisgICAgbHN0ID0gWzBdICogbgorICAgIGZvciBpIGluIHJhbmdlKG4pOgorICAgICAgICBsc3RbaV0gPSBnZW5faXRlbShmbXQsIG9iaikKKyAgICByZXR1cm4gbHN0CisKK2RlZiBzdHJ1Y3RfaXRlbXMobiwgb2JqKToKKyAgICBtb2RlID0gY2hvaWNlKGNhcFtvYmpdW01PREVdKQorICAgIHhmbXQgPSBtb2RlICsgJyMnCisgICAgZm10ID0gbW9kZS5zdHJpcCgnYW1iJykKKyAgICBubWVtYiA9IHJhbmRyYW5nZSgyLCAxMCkgIyBudW1iZXIgb2Ygc3RydWN0IG1lbWJlcnMKKyAgICBmb3IgXyBpbiByYW5nZShubWVtYik6CisgICAgICAgIGNoYXIgPSBjaG9pY2UodHVwbGUoZm10ZGljdFttb2RlXSkpCisgICAgICAgIG11bHRpcGxpZXIgPSBjaG9pY2UoY2FwW29ial1bTVVMVF0pCisgICAgICAgIHhmbXQgKz0gKGNoYXIgKiBpbnQobXVsdGlwbGllciBpZiBtdWx0aXBsaWVyIGVsc2UgMSkpCisgICAgICAgIGZtdCArPSAobXVsdGlwbGllciArIGNoYXIpCisgICAgaXRlbXMgPSBnZW5faXRlbXMobiwgeGZtdCwgb2JqKQorICAgIGl0ZW0gPSBnZW5faXRlbSh4Zm10LCBvYmopCisgICAgcmV0dXJuIGZtdCwgaXRlbXMsIGl0ZW0KKworZGVmIHJhbmRpdGVtcyhuLCBvYmo9J25kYXJyYXknLCBtb2RlPU5vbmUsIGNoYXI9Tm9uZSk6CisgICAgIiIiUmV0dXJuIHJhbmRvbSBmb3JtYXQsIGl0ZW1zLCBpdGVtLiIiIgorICAgIGlmIG1vZGUgaXMgTm9uZToKKyAgICAgICAgbW9kZSA9IGNob2ljZShjYXBbb2JqXVtNT0RFXSkKKyAgICBpZiBjaGFyIGlzIE5vbmU6CisgICAgICAgIGNoYXIgPSBjaG9pY2UodHVwbGUoZm10ZGljdFttb2RlXSkpCisgICAgbXVsdGlwbGllciA9IGNob2ljZShjYXBbb2JqXVtNVUxUXSkKKyAgICBmbXQgPSBtb2RlICsgJyMnICsgY2hhciAqIGludChtdWx0aXBsaWVyIGlmIG11bHRpcGxpZXIgZWxzZSAxKQorICAgIGl0ZW1zID0gZ2VuX2l0ZW1zKG4sIGZtdCwgb2JqKQorICAgIGl0ZW0gPSBnZW5faXRlbShmbXQsIG9iaikKKyAgICBmbXQgPSBtb2RlLnN0cmlwKCdhbWInKSArIG11bHRpcGxpZXIgKyBjaGFyCisgICAgcmV0dXJuIGZtdCwgaXRlbXMsIGl0ZW0KKworZGVmIGl0ZXJfbW9kZShuLCBvYmo9J25kYXJyYXknKToKKyAgICAiIiJJdGVyYXRlIHRocm91Z2ggc3VwcG9ydGVkIG1vZGUvY2hhciBjb21iaW5hdGlvbnMuIiIiCisgICAgZm9yIG1vZGUgaW4gY2FwW29ial1bTU9ERV06CisgICAgICAgIGZvciBjaGFyIGluIGZtdGRpY3RbbW9kZV06CisgICAgICAgICAgICB5aWVsZCByYW5kaXRlbXMobiwgb2JqLCBtb2RlLCBjaGFyKQorCitkZWYgaXRlcl9mb3JtYXQobml0ZW1zLCB0ZXN0b2JqPSduZGFycmF5Jyk6CisgICAgIiIiWWllbGQgKGZvcm1hdCwgaXRlbXMsIGl0ZW0pIGZvciBhbGwgcG9zc2libGUgbW9kZXMgYW5kIGZvcm1hdAorICAgICAgIGNoYXJhY3RlcnMgcGx1cyBvbmUgcmFuZG9tIGNvbXBvdW5kIGZvcm1hdCBzdHJpbmcuIiIiCisgICAgZm9yIHQgaW4gaXRlcl9tb2RlKG5pdGVtcywgdGVzdG9iaik6CisgICAgICAgIHlpZWxkIHQKKyAgICBpZiB0ZXN0b2JqICE9ICduZGFycmF5JzoKKyAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgorICAgIHlpZWxkIHN0cnVjdF9pdGVtcyhuaXRlbXMsIHRlc3RvYmopCisKKworZGVmIGlzX2J5dGVfZm9ybWF0KGZtdCk6CisgICAgcmV0dXJuICdjJyBpbiBmbXQgb3IgJ2InIGluIGZtdCBvciAnQicgaW4gZm10CisKK2RlZiBpc19tZW1vcnl2aWV3X2Zvcm1hdChmbXQpOgorICAgICIiImZvcm1hdCBzdWl0YWJsZSBmb3IgbWVtb3J5dmlldyIiIgorICAgIHggPSBsZW4oZm10KQorICAgIHJldHVybiAoKHggPT0gMSBvciAoeCA9PSAyIGFuZCBmbXRbMF0gPT0gJ0AnKSkgYW5kCisgICAgICAgICAgICBmbXRbeC0xXSBpbiBNRU1PUllWSUVXKQorCitOT05fQllURV9GT1JNQVQgPSBbYyBmb3IgYyBpbiBmbXRkaWN0WydAJ10gaWYgbm90IGlzX2J5dGVfZm9ybWF0KGMpXQorCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgICAgICBNdWx0aS1kaW1lbnNpb25hbCB0b2xpc3QoKSwgc2xpY2luZyBhbmQgc2xpY2UgYXNzaWdubWVudHMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitkZWYgYXRvbXAobHN0KToKKyAgICAiIiJUdXBsZSBpdGVtcyAocmVwcmVzZW50aW5nIHN0cnVjdHMpIGFyZSByZWdhcmRlZCBhcyBhdG9tcy4iIiIKKyAgICByZXR1cm4gbm90IGlzaW5zdGFuY2UobHN0LCBsaXN0KQorCitkZWYgbGlzdHAobHN0KToKKyAgICByZXR1cm4gaXNpbnN0YW5jZShsc3QsIGxpc3QpCisKK2RlZiBwcm9kKGxzdCk6CisgICAgIiIiUHJvZHVjdCBvZiBsaXN0IGVsZW1lbnRzLiIiIgorICAgIGlmIGxlbihsc3QpID09IDA6CisgICAgICAgIHJldHVybiAwCisgICAgeCA9IGxzdFswXQorICAgIGZvciB2IGluIGxzdFsxOl06CisgICAgICAgIHggKj0gdgorICAgIHJldHVybiB4CisKK2RlZiBzdHJpZGVzX2Zyb21fc2hhcGUobmRpbSwgc2hhcGUsIGl0ZW1zaXplLCBsYXlvdXQpOgorICAgICIiIkNhbGN1bGF0ZSBzdHJpZGVzIG9mIGEgY29udGlndW91cyBhcnJheS4gTGF5b3V0IGlzICdDJyBvcgorICAgICAgICdGJyAoRm9ydHJhbikuIiIiCisgICAgaWYgbmRpbSA9PSAwOgorICAgICAgICByZXR1cm4gKCkKKyAgICBpZiBsYXlvdXQgPT0gJ0MnOgorICAgICAgICBzdHJpZGVzID0gbGlzdChzaGFwZVsxOl0pICsgW2l0ZW1zaXplXQorICAgICAgICBmb3IgaSBpbiByYW5nZShuZGltLTIsIC0xLCAtMSk6CisgICAgICAgICAgICBzdHJpZGVzW2ldICo9IHN0cmlkZXNbaSsxXQorICAgIGVsc2U6CisgICAgICAgIHN0cmlkZXMgPSBbaXRlbXNpemVdICsgbGlzdChzaGFwZVs6LTFdKQorICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCBuZGltKToKKyAgICAgICAgICAgIHN0cmlkZXNbaV0gKj0gc3RyaWRlc1tpLTFdCisgICAgcmV0dXJuIHN0cmlkZXMKKworZGVmIF9jYShpdGVtcywgcyk6CisgICAgIiIiQ29udmVydCBmbGF0IGl0ZW0gbGlzdCB0byB0aGUgbmVzdGVkIGxpc3QgcmVwcmVzZW50YXRpb24gb2YgYQorICAgICAgIG11bHRpZGltZW5zaW9uYWwgQyBhcnJheSB3aXRoIHNoYXBlICdzJy4iIiIKKyAgICBpZiBhdG9tcChpdGVtcyk6CisgICAgICAgIHJldHVybiBpdGVtcworICAgIGlmIGxlbihzKSA9PSAwOgorICAgICAgICByZXR1cm4gaXRlbXNbMF0KKyAgICBsc3QgPSBbMF0gKiBzWzBdCisgICAgc3RyaWRlID0gbGVuKGl0ZW1zKSAvLyBzWzBdIGlmIHNbMF0gZWxzZSAwCisgICAgZm9yIGkgaW4gcmFuZ2Uoc1swXSk6CisgICAgICAgIHN0YXJ0ID0gaSpzdHJpZGUKKyAgICAgICAgbHN0W2ldID0gX2NhKGl0ZW1zW3N0YXJ0OnN0YXJ0K3N0cmlkZV0sIHNbMTpdKQorICAgIHJldHVybiBsc3QKKworZGVmIF9mYShpdGVtcywgcyk6CisgICAgIiIiQ29udmVydCBmbGF0IGl0ZW0gbGlzdCB0byB0aGUgbmVzdGVkIGxpc3QgcmVwcmVzZW50YXRpb24gb2YgYQorICAgICAgIG11bHRpZGltZW5zaW9uYWwgRm9ydHJhbiBhcnJheSB3aXRoIHNoYXBlICdzJy4iIiIKKyAgICBpZiBhdG9tcChpdGVtcyk6CisgICAgICAgIHJldHVybiBpdGVtcworICAgIGlmIGxlbihzKSA9PSAwOgorICAgICAgICByZXR1cm4gaXRlbXNbMF0KKyAgICBsc3QgPSBbMF0gKiBzWzBdCisgICAgc3RyaWRlID0gc1swXQorICAgIGZvciBpIGluIHJhbmdlKHNbMF0pOgorICAgICAgICBsc3RbaV0gPSBfZmEoaXRlbXNbaTo6c3RyaWRlXSwgc1sxOl0pCisgICAgcmV0dXJuIGxzdAorCitkZWYgY2FycmF5KGl0ZW1zLCBzaGFwZSk6CisgICAgaWYgbGlzdHAoaXRlbXMpIGFuZCBub3QgMCBpbiBzaGFwZSBhbmQgcHJvZChzaGFwZSkgIT0gbGVuKGl0ZW1zKToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicHJvZChzaGFwZSkgIT0gbGVuKGl0ZW1zKSIpCisgICAgcmV0dXJuIF9jYShpdGVtcywgc2hhcGUpCisKK2RlZiBmYXJyYXkoaXRlbXMsIHNoYXBlKToKKyAgICBpZiBsaXN0cChpdGVtcykgYW5kIG5vdCAwIGluIHNoYXBlIGFuZCBwcm9kKHNoYXBlKSAhPSBsZW4oaXRlbXMpOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJwcm9kKHNoYXBlKSAhPSBsZW4oaXRlbXMpIikKKyAgICByZXR1cm4gX2ZhKGl0ZW1zLCBzaGFwZSkKKworZGVmIGluZGljZXMoc2hhcGUpOgorICAgICIiIkdlbmVyYXRlIGFsbCBwb3NzaWJsZSB0dXBsZXMgb2YgaW5kaWNlcy4iIiIKKyAgICBpdGVyYWJsZXMgPSBbcmFuZ2UodikgZm9yIHYgaW4gc2hhcGVdCisgICAgcmV0dXJuIHByb2R1Y3QoKml0ZXJhYmxlcykKKworZGVmIGdldGluZGV4KG5kaW0sIGluZCwgc3RyaWRlcyk6CisgICAgIiIiQ29udmVydCBtdWx0aS1kaW1lbnNpb25hbCBpbmRleCB0byB0aGUgcG9zaXRpb24gaW4gdGhlIGZsYXQgbGlzdC4iIiIKKyAgICByZXQgPSAwCisgICAgZm9yIGkgaW4gcmFuZ2UobmRpbSk6CisgICAgICAgIHJldCArPSBzdHJpZGVzW2ldICogaW5kW2ldCisgICAgcmV0dXJuIHJldAorCitkZWYgdHJhbnNwb3NlKHNyYywgc2hhcGUpOgorICAgICIiIlRyYW5zcG9zZSBmbGF0IGl0ZW0gbGlzdCB0aGF0IGlzIHJlZ2FyZGVkIGFzIGEgbXVsdGktZGltZW5zaW9uYWwKKyAgICAgICBtYXRyaXggZGVmaW5lZCBieSBzaGFwZTogZGVzdC4uLltrXVtqXVtpXSA9IHNyY1tpXVtqXVtrXS4uLiAgIiIiCisgICAgaWYgbm90IHNoYXBlOgorICAgICAgICByZXR1cm4gc3JjCisgICAgbmRpbSA9IGxlbihzaGFwZSkKKyAgICBzc3RyaWRlcyA9IHN0cmlkZXNfZnJvbV9zaGFwZShuZGltLCBzaGFwZSwgMSwgJ0MnKQorICAgIGRzdHJpZGVzID0gc3RyaWRlc19mcm9tX3NoYXBlKG5kaW0sIHNoYXBlWzo6LTFdLCAxLCAnQycpCisgICAgZGVzdCA9IFswXSAqIGxlbihzcmMpCisgICAgZm9yIGluZCBpbiBpbmRpY2VzKHNoYXBlKToKKyAgICAgICAgZnIgPSBnZXRpbmRleChuZGltLCBpbmQsIHNzdHJpZGVzKQorICAgICAgICB0byA9IGdldGluZGV4KG5kaW0sIGluZFs6Oi0xXSwgZHN0cmlkZXMpCisgICAgICAgIGRlc3RbdG9dID0gc3JjW2ZyXQorICAgIHJldHVybiBkZXN0CisKK2RlZiBfZmxhdHRlbihsc3QpOgorICAgICIiImZsYXR0ZW4gbGlzdCIiIgorICAgIGlmIGxzdCA9PSBbXToKKyAgICAgICAgcmV0dXJuIGxzdAorICAgIGlmIGF0b21wKGxzdCk6CisgICAgICAgIHJldHVybiBbbHN0XQorICAgIHJldHVybiBfZmxhdHRlbihsc3RbMF0pICsgX2ZsYXR0ZW4obHN0WzE6XSkKKworZGVmIGZsYXR0ZW4obHN0KToKKyAgICAiIiJmbGF0dGVuIGxpc3Qgb3IgcmV0dXJuIHNjYWxhciIiIgorICAgIGlmIGF0b21wKGxzdCk6ICMgc2NhbGFyCisgICAgICAgIHJldHVybiBsc3QKKyAgICByZXR1cm4gX2ZsYXR0ZW4obHN0KQorCitkZWYgc2xpY2Vfc2hhcGUobHN0LCBzbGljZXMpOgorICAgICIiIkdldCB0aGUgc2hhcGUgb2YgbHN0IGFmdGVyIHNsaWNpbmc6IHNsaWNlcyBpcyBhIGxpc3Qgb2Ygc2xpY2UKKyAgICAgICBvYmplY3RzLiIiIgorICAgIGlmIGF0b21wKGxzdCk6CisgICAgICAgIHJldHVybiBbXQorICAgIHJldHVybiBbbGVuKGxzdFtzbGljZXNbMF1dKV0gKyBzbGljZV9zaGFwZShsc3RbMF0sIHNsaWNlc1sxOl0pCisKK2RlZiBtdWx0aXNsaWNlKGxzdCwgc2xpY2VzKToKKyAgICAiIiJNdWx0aS1kaW1lbnNpb25hbCBzbGljaW5nOiBzbGljZXMgaXMgYSBsaXN0IG9mIHNsaWNlIG9iamVjdHMuIiIiCisgICAgaWYgYXRvbXAobHN0KToKKyAgICAgICAgcmV0dXJuIGxzdAorICAgIHJldHVybiBbbXVsdGlzbGljZShzdWJsc3QsIHNsaWNlc1sxOl0pIGZvciBzdWJsc3QgaW4gbHN0W3NsaWNlc1swXV1dCisKK2RlZiBtX2Fzc2lnbihsbHN0LCBybHN0LCBsc2xpY2VzLCByc2xpY2VzKToKKyAgICAiIiJNdWx0aS1kaW1lbnNpb25hbCBzbGljZSBhc3NpZ25tZW50OiBsbHN0IGFuZCBybHN0IGFyZSB0aGUgb3BlcmFuZHMsCisgICAgICAgbHNsaWNlcyBhbmQgcnNsaWNlcyBhcmUgbGlzdHMgb2Ygc2xpY2Ugb2JqZWN0cy4gbGxzdCBhbmQgcmxzdCBtdXN0CisgICAgICAgaGF2ZSB0aGUgc2FtZSBzdHJ1Y3R1cmUuCisKKyAgICAgICBGb3IgYSB0d28tZGltZW5zaW9uYWwgZXhhbXBsZSwgdGhpcyBpcyBub3QgaW1wbGVtZW50ZWQgaW4gUHl0aG9uOgorCisgICAgICAgICBsbHN0WzA6MzoyLCAwOjM6Ml0gPSBybHN0WzE6MzoxLCAxOjM6MV0KKworICAgICAgIEluc3RlYWQgd2Ugd3JpdGU6CisKKyAgICAgICAgIGxzbGljZXMgPSBbc2xpY2UoMCwzLDIpLCBzbGljZSgwLDMsMildCisgICAgICAgICByc2xpY2VzID0gW3NsaWNlKDEsMywxKSwgc2xpY2UoMSwzLDEpXQorICAgICAgICAgbXVsdGlzbGljZV9hc3NpZ24obGxzdCwgcmxzdCwgbHNsaWNlcywgcnNsaWNlcykKKyAgICAiIiIKKyAgICBpZiBhdG9tcChybHN0KToKKyAgICAgICAgcmV0dXJuIHJsc3QKKyAgICBybHN0ID0gW21fYXNzaWduKGwsIHIsIGxzbGljZXNbMTpdLCByc2xpY2VzWzE6XSkKKyAgICAgICAgICAgIGZvciBsLCByIGluIHppcChsbHN0W2xzbGljZXNbMF1dLCBybHN0W3JzbGljZXNbMF1dKV0KKyAgICBsbHN0W2xzbGljZXNbMF1dID0gcmxzdAorICAgIHJldHVybiBsbHN0CisKK2RlZiBjbXBfc3RydWN0dXJlKGxsc3QsIHJsc3QsIGxzbGljZXMsIHJzbGljZXMpOgorICAgICIiIkNvbXBhcmUgdGhlIHN0cnVjdHVyZSBvZiBsbHN0W2xzbGljZXNdIGFuZCBybHN0W3JzbGljZXNdLiIiIgorICAgIGxzaGFwZSA9IHNsaWNlX3NoYXBlKGxsc3QsIGxzbGljZXMpCisgICAgcnNoYXBlID0gc2xpY2Vfc2hhcGUocmxzdCwgcnNsaWNlcykKKyAgICBpZiAobGVuKGxzaGFwZSkgIT0gbGVuKHJzaGFwZSkpOgorICAgICAgICByZXR1cm4gLTEKKyAgICBmb3IgaSBpbiByYW5nZShsZW4obHNoYXBlKSk6CisgICAgICAgIGlmIGxzaGFwZVtpXSAhPSByc2hhcGVbaV06CisgICAgICAgICAgICByZXR1cm4gLTEKKyAgICAgICAgaWYgbHNoYXBlW2ldID09IDA6CisgICAgICAgICAgICByZXR1cm4gMAorICAgIHJldHVybiAwCisKK2RlZiBtdWx0aXNsaWNlX2Fzc2lnbihsbHN0LCBybHN0LCBsc2xpY2VzLCByc2xpY2VzKToKKyAgICAiIiJSZXR1cm4gbGxzdCBhZnRlciBhc3NpZ25pbmc6IGxsc3RbbHNsaWNlc10gPSBybHN0W3JzbGljZXNdIiIiCisgICAgaWYgY21wX3N0cnVjdHVyZShsbHN0LCBybHN0LCBsc2xpY2VzLCByc2xpY2VzKSA8IDA6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImx2YWx1ZSBhbmQgcnZhbHVlIGhhdmUgZGlmZmVyZW50IHN0cnVjdHVyZXMiKQorICAgIHJldHVybiBtX2Fzc2lnbihsbHN0LCBybHN0LCBsc2xpY2VzLCByc2xpY2VzKQorCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgUmFuZG9tIHN0cnVjdHVyZXMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjCisjIFBFUC0zMTE4IGlzIHZlcnkgcGVybWlzc2l2ZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGNvbnRlbnRzIG9mIGEKKyMgUHlfYnVmZmVyLiBJbiBwYXJ0aWN1bGFyOgorIworIyAgIC0gc2hhcGUgY2FuIGJlIHplcm8KKyMgICAtIHN0cmlkZXMgY2FuIGJlIGFueSBpbnRlZ2VyLCBpbmNsdWRpbmcgemVybworIyAgIC0gb2Zmc2V0IGNhbiBwb2ludCB0byBhbnkgbG9jYXRpb24gaW4gdGhlIHVuZGVybHlpbmcKKyMgICAgIG1lbW9yeSBibG9jaywgcHJvdmlkZWQgdGhhdCBpdCBpcyBhIG11bHRpcGxlIG9mCisjICAgICBpdGVtc2l6ZS4KKyMKKyMgVGhlIGZ1bmN0aW9ucyBpbiB0aGlzIHNlY3Rpb24gdGVzdCBhbmQgdmVyaWZ5IHJhbmRvbSBzdHJ1Y3R1cmVzCisjIGluIGZ1bGwgZ2VuZXJhbGl0eS4gQSBzdHJ1Y3R1cmUgaXMgdmFsaWQgaWZmIGl0IGZpdHMgaW4gdGhlCisjIHVuZGVybHlpbmcgbWVtb3J5IGJsb2NrLgorIworIyBUaGUgc3RydWN0dXJlICd0JyAoc2hvcnQgZm9yICd0dXBsZScpIGlzIGZ1bGx5IGRlZmluZWQgYnk6CisjCisjICAgdCA9IChtZW1sZW4sIGl0ZW1zaXplLCBuZGltLCBzaGFwZSwgc3RyaWRlcywgb2Zmc2V0KQorIworCitkZWYgdmVyaWZ5X3N0cnVjdHVyZShtZW1sZW4sIGl0ZW1zaXplLCBuZGltLCBzaGFwZSwgc3RyaWRlcywgb2Zmc2V0KToKKyAgICAiIiJWZXJpZnkgdGhhdCB0aGUgcGFyYW1ldGVycyByZXByZXNlbnQgYSB2YWxpZCBhcnJheSB3aXRoaW4KKyAgICAgICB0aGUgYm91bmRzIG9mIHRoZSBhbGxvY2F0ZWQgbWVtb3J5OgorICAgICAgICAgICBjaGFyICptZW06IHN0YXJ0IG9mIHRoZSBwaHlzaWNhbCBtZW1vcnkgYmxvY2sKKyAgICAgICAgICAgbWVtbGVuOiBsZW5ndGggb2YgdGhlIHBoeXNpY2FsIG1lbW9yeSBibG9jaworICAgICAgICAgICBvZmZzZXQ6IChjaGFyICopYnVmIC0gbWVtCisgICAgIiIiCisgICAgaWYgb2Zmc2V0ICUgaXRlbXNpemU6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGlmIG9mZnNldCA8IDAgb3Igb2Zmc2V0K2l0ZW1zaXplID4gbWVtbGVuOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBpZiBhbnkodiAlIGl0ZW1zaXplIGZvciB2IGluIHN0cmlkZXMpOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGlmIG5kaW0gPD0gMDoKKyAgICAgICAgcmV0dXJuIG5kaW0gPT0gMCBhbmQgbm90IHNoYXBlIGFuZCBub3Qgc3RyaWRlcworICAgIGlmIDAgaW4gc2hhcGU6CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBpbWluID0gc3VtKHN0cmlkZXNbal0qKHNoYXBlW2pdLTEpIGZvciBqIGluIHJhbmdlKG5kaW0pCisgICAgICAgICAgICAgICBpZiBzdHJpZGVzW2pdIDw9IDApCisgICAgaW1heCA9IHN1bShzdHJpZGVzW2pdKihzaGFwZVtqXS0xKSBmb3IgaiBpbiByYW5nZShuZGltKQorICAgICAgICAgICAgICAgaWYgc3RyaWRlc1tqXSA+IDApCisKKyAgICByZXR1cm4gMCA8PSBvZmZzZXQraW1pbiBhbmQgb2Zmc2V0K2ltYXgraXRlbXNpemUgPD0gbWVtbGVuCisKK2RlZiBnZXRfaXRlbShsc3QsIGluZGljZXMpOgorICAgIGZvciBpIGluIGluZGljZXM6CisgICAgICAgIGxzdCA9IGxzdFtpXQorICAgIHJldHVybiBsc3QKKworZGVmIG1lbW9yeV9pbmRleChpbmRpY2VzLCB0KToKKyAgICAiIiJMb2NhdGlvbiBvZiBhbiBpdGVtIGluIHRoZSB1bmRlcmx5aW5nIG1lbW9yeS4iIiIKKyAgICBtZW1sZW4sIGl0ZW1zaXplLCBuZGltLCBzaGFwZSwgc3RyaWRlcywgb2Zmc2V0ID0gdAorICAgIHAgPSBvZmZzZXQKKyAgICBmb3IgaSBpbiByYW5nZShuZGltKToKKyAgICAgICAgcCArPSBzdHJpZGVzW2ldKmluZGljZXNbaV0KKyAgICByZXR1cm4gcAorCitkZWYgaXNfb3ZlcmxhcHBpbmcodCk6CisgICAgIiIiVGhlIHN0cnVjdHVyZSAndCcgaXMgb3ZlcmxhcHBpbmcgaWYgYXQgbGVhc3Qgb25lIG1lbW9yeSBsb2NhdGlvbgorICAgICAgIGlzIHZpc2l0ZWQgdHdpY2Ugd2hpbGUgaXRlcmF0aW5nIHRocm91Z2ggYWxsIHBvc3NpYmxlIHR1cGxlcyBvZgorICAgICAgIGluZGljZXMuIiIiCisgICAgbWVtbGVuLCBpdGVtc2l6ZSwgbmRpbSwgc2hhcGUsIHN0cmlkZXMsIG9mZnNldCA9IHQKKyAgICB2aXNpdGVkID0gMTw8bWVtbGVuCisgICAgZm9yIGluZCBpbiBpbmRpY2VzKHNoYXBlKToKKyAgICAgICAgaSA9IG1lbW9yeV9pbmRleChpbmQsIHQpCisgICAgICAgIGJpdCA9IDE8PGkKKyAgICAgICAgaWYgdmlzaXRlZCAmIGJpdDoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHZpc2l0ZWQgfD0gYml0CisgICAgcmV0dXJuIEZhbHNlCisKK2RlZiByYW5kX3N0cnVjdHVyZShpdGVtc2l6ZSwgdmFsaWQsIG1heGRpbT01LCBtYXhzaGFwZT0xNiwgc2hhcGU9KCkpOgorICAgICIiIlJldHVybiByYW5kb20gc3RydWN0dXJlOgorICAgICAgICAgICAobWVtbGVuLCBpdGVtc2l6ZSwgbmRpbSwgc2hhcGUsIHN0cmlkZXMsIG9mZnNldCkKKyAgICAgICBJZiAndmFsaWQnIGlzIHRydWUsIHRoZSByZXR1cm5lZCBzdHJ1Y3R1cmUgaXMgdmFsaWQsIG90aGVyd2lzZSBpbnZhbGlkLgorICAgICAgIElmICdzaGFwZScgaXMgZ2l2ZW4sIHVzZSB0aGF0IGluc3RlYWQgb2YgY3JlYXRpbmcgYSByYW5kb20gc2hhcGUuCisgICAgIiIiCisgICAgaWYgbm90IHNoYXBlOgorICAgICAgICBuZGltID0gcmFuZHJhbmdlKG1heGRpbSsxKQorICAgICAgICBpZiAobmRpbSA9PSAwKToKKyAgICAgICAgICAgIGlmIHZhbGlkOgorICAgICAgICAgICAgICAgIHJldHVybiBpdGVtc2l6ZSwgaXRlbXNpemUsIG5kaW0sICgpLCAoKSwgMAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBuaXRlbXMgPSByYW5kcmFuZ2UoMSwgMTYrMSkKKyAgICAgICAgICAgICAgICBtZW1sZW4gPSBuaXRlbXMgKiBpdGVtc2l6ZQorICAgICAgICAgICAgICAgIG9mZnNldCA9IC1pdGVtc2l6ZSBpZiByYW5kcmFuZ2UoMikgPT0gMCBlbHNlIG1lbWxlbgorICAgICAgICAgICAgICAgIHJldHVybiBtZW1sZW4sIGl0ZW1zaXplLCBuZGltLCAoKSwgKCksIG9mZnNldAorCisgICAgICAgIG1pbnNoYXBlID0gMgorICAgICAgICBuID0gcmFuZHJhbmdlKDEwMCkKKyAgICAgICAgaWYgbiA+PSA5NSBhbmQgdmFsaWQ6CisgICAgICAgICAgICBtaW5zaGFwZSA9IDAKKyAgICAgICAgZWxpZiBuID49IDkwOgorICAgICAgICAgICAgbWluc2hhcGUgPSAxCisgICAgICAgIHNoYXBlID0gWzBdICogbmRpbQorCisgICAgICAgIGZvciBpIGluIHJhbmdlKG5kaW0pOgorICAgICAgICAgICAgc2hhcGVbaV0gPSByYW5kcmFuZ2UobWluc2hhcGUsIG1heHNoYXBlKzEpCisgICAgZWxzZToKKyAgICAgICAgbmRpbSA9IGxlbihzaGFwZSkKKworICAgIG1heHN0cmlkZSA9IDUKKyAgICBuID0gcmFuZHJhbmdlKDEwMCkKKyAgICB6ZXJvX3N0cmlkZSA9IFRydWUgaWYgbiA+PSA5NSBhbmQgbiAmIDEgZWxzZSBGYWxzZQorCisgICAgc3RyaWRlcyA9IFswXSAqIG5kaW0KKyAgICBzdHJpZGVzW25kaW0tMV0gPSBpdGVtc2l6ZSAqIHJhbmRyYW5nZSgtbWF4c3RyaWRlLCBtYXhzdHJpZGUrMSkKKyAgICBpZiBub3QgemVyb19zdHJpZGUgYW5kIHN0cmlkZXNbbmRpbS0xXSA9PSAwOgorICAgICAgICBzdHJpZGVzW25kaW0tMV0gPSBpdGVtc2l6ZQorCisgICAgZm9yIGkgaW4gcmFuZ2UobmRpbS0yLCAtMSwgLTEpOgorICAgICAgICBtYXhzdHJpZGUgKj0gc2hhcGVbaSsxXSBpZiBzaGFwZVtpKzFdIGVsc2UgMQorICAgICAgICBpZiB6ZXJvX3N0cmlkZToKKyAgICAgICAgICAgIHN0cmlkZXNbaV0gPSBpdGVtc2l6ZSAqIHJhbmRyYW5nZSgtbWF4c3RyaWRlLCBtYXhzdHJpZGUrMSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHN0cmlkZXNbaV0gPSAoKDEsLTEpW3JhbmRyYW5nZSgyKV0gKgorICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZSAqIHJhbmRyYW5nZSgxLCBtYXhzdHJpZGUrMSkpCisKKyAgICBpbWluID0gaW1heCA9IDAKKyAgICBpZiBub3QgMCBpbiBzaGFwZToKKyAgICAgICAgaW1pbiA9IHN1bShzdHJpZGVzW2pdKihzaGFwZVtqXS0xKSBmb3IgaiBpbiByYW5nZShuZGltKQorICAgICAgICAgICAgICAgICAgIGlmIHN0cmlkZXNbal0gPD0gMCkKKyAgICAgICAgaW1heCA9IHN1bShzdHJpZGVzW2pdKihzaGFwZVtqXS0xKSBmb3IgaiBpbiByYW5nZShuZGltKQorICAgICAgICAgICAgICAgICAgIGlmIHN0cmlkZXNbal0gPiAwKQorCisgICAgbml0ZW1zID0gaW1heCAtIGltaW4KKyAgICBpZiB2YWxpZDoKKyAgICAgICAgb2Zmc2V0ID0gLWltaW4gKiBpdGVtc2l6ZQorICAgICAgICBtZW1sZW4gPSBvZmZzZXQgKyAoaW1heCsxKSAqIGl0ZW1zaXplCisgICAgZWxzZToKKyAgICAgICAgbWVtbGVuID0gKC1pbWluICsgaW1heCkgKiBpdGVtc2l6ZQorICAgICAgICBvZmZzZXQgPSAtaW1pbi1pdGVtc2l6ZSBpZiByYW5kcmFuZ2UoMikgPT0gMCBlbHNlIG1lbWxlbgorICAgIHJldHVybiBtZW1sZW4sIGl0ZW1zaXplLCBuZGltLCBzaGFwZSwgc3RyaWRlcywgb2Zmc2V0CisKK2RlZiByYW5kc2xpY2VfZnJvbV9zbGljZWxlbihzbGljZWxlbiwgbGlzdGxlbik6CisgICAgIiIiQ3JlYXRlIGEgcmFuZG9tIHNsaWNlIG9mIGxlbiBzbGljZWxlbiB0aGF0IGZpdHMgaW50byBsaXN0bGVuLiIiIgorICAgIG1heHN0YXJ0ID0gbGlzdGxlbiAtIHNsaWNlbGVuCisgICAgc3RhcnQgPSByYW5kcmFuZ2UobWF4c3RhcnQrMSkKKyAgICBtYXhzdGVwID0gKGxpc3RsZW4gLSBzdGFydCkgLy8gc2xpY2VsZW4gaWYgc2xpY2VsZW4gZWxzZSAxCisgICAgc3RlcCA9IHJhbmRyYW5nZSgxLCBtYXhzdGVwKzEpCisgICAgc3RvcCA9IHN0YXJ0ICsgc2xpY2VsZW4gKiBzdGVwCisgICAgcyA9IHNsaWNlKHN0YXJ0LCBzdG9wLCBzdGVwKQorICAgIF8sIF8sIF8sIGNvbnRyb2wgPSBzbGljZV9pbmRpY2VzKHMsIGxpc3RsZW4pCisgICAgaWYgY29udHJvbCAhPSBzbGljZWxlbjoKKyAgICAgICAgcmFpc2UgUnVudGltZUVycm9yCisgICAgcmV0dXJuIHMKKworZGVmIHJhbmRzbGljZV9mcm9tX3NoYXBlKG5kaW0sIHNoYXBlKToKKyAgICAiIiJDcmVhdGUgdHdvIHNldHMgb2Ygc2xpY2VzIGZvciBhbiBhcnJheSB4IHdpdGggc2hhcGUgJ3NoYXBlJworICAgICAgIHN1Y2ggdGhhdCBzaGFwZW9mKHhbbHNsaWNlc10pID09IHNoYXBlb2YoeFtyc2xpY2VzXSkuIiIiCisgICAgbHNsaWNlcyA9IFswXSAqIG5kaW0KKyAgICByc2xpY2VzID0gWzBdICogbmRpbQorICAgIGZvciBuIGluIHJhbmdlKG5kaW0pOgorICAgICAgICBsID0gc2hhcGVbbl0KKyAgICAgICAgc2xpY2VsZW4gPSByYW5kcmFuZ2UoMSwgbCsxKSBpZiBsID4gMCBlbHNlIDAKKyAgICAgICAgbHNsaWNlc1tuXSA9IHJhbmRzbGljZV9mcm9tX3NsaWNlbGVuKHNsaWNlbGVuLCBsKQorICAgICAgICByc2xpY2VzW25dID0gcmFuZHNsaWNlX2Zyb21fc2xpY2VsZW4oc2xpY2VsZW4sIGwpCisgICAgcmV0dXJuIHR1cGxlKGxzbGljZXMpLCB0dXBsZShyc2xpY2VzKQorCitkZWYgcmFuZF9hbGlnbmVkX3NsaWNlcyhtYXhkaW09NSwgbWF4c2hhcGU9MTYpOgorICAgICIiIkNyZWF0ZSAobHNoYXBlLCByc2hhcGUsIHR1cGxlKGxzbGljZXMpLCB0dXBsZShyc2xpY2VzKSkgc3VjaCB0aGF0CisgICAgICAgc2hhcGVvZih4W2xzbGljZXNdKSA9PSBzaGFwZW9mKHlbcnNsaWNlc10pLCB3aGVyZSB4IGlzIGFuIGFycmF5CisgICAgICAgd2l0aCBzaGFwZSAnbHNoYXBlJyBhbmQgeSBpcyBhbiBhcnJheSB3aXRoIHNoYXBlICdyc2hhcGUnLiIiIgorICAgIG5kaW0gPSByYW5kcmFuZ2UoMSwgbWF4ZGltKzEpCisgICAgbWluc2hhcGUgPSAyCisgICAgbiA9IHJhbmRyYW5nZSgxMDApCisgICAgaWYgbiA+PSA5NToKKyAgICAgICAgbWluc2hhcGUgPSAwCisgICAgZWxpZiBuID49IDkwOgorICAgICAgICBtaW5zaGFwZSA9IDEKKyAgICBhbGxfcmFuZG9tID0gVHJ1ZSBpZiByYW5kcmFuZ2UoMTAwKSA+PSA4MCBlbHNlIEZhbHNlCisgICAgbHNoYXBlID0gWzBdKm5kaW07IHJzaGFwZSA9IFswXSpuZGltCisgICAgbHNsaWNlcyA9IFswXSpuZGltOyByc2xpY2VzID0gWzBdKm5kaW0KKworICAgIGZvciBuIGluIHJhbmdlKG5kaW0pOgorICAgICAgICBzbWFsbCA9IHJhbmRyYW5nZShtaW5zaGFwZSwgbWF4c2hhcGUrMSkKKyAgICAgICAgYmlnID0gcmFuZHJhbmdlKG1pbnNoYXBlLCBtYXhzaGFwZSsxKQorICAgICAgICBpZiBiaWcgPCBzbWFsbDoKKyAgICAgICAgICAgIGJpZywgc21hbGwgPSBzbWFsbCwgYmlnCisKKyAgICAgICAgIyBDcmVhdGUgYSBzbGljZSB0aGF0IGZpdHMgdGhlIHNtYWxsZXIgdmFsdWUuCisgICAgICAgIGlmIGFsbF9yYW5kb206CisgICAgICAgICAgICBzdGFydCA9IHJhbmRyYW5nZSgtc21hbGwsIHNtYWxsKzEpCisgICAgICAgICAgICBzdG9wID0gcmFuZHJhbmdlKC1zbWFsbCwgc21hbGwrMSkKKyAgICAgICAgICAgIHN0ZXAgPSAoMSwtMSlbcmFuZHJhbmdlKDIpXSAqIHJhbmRyYW5nZSgxLCBzbWFsbCsyKQorICAgICAgICAgICAgc19zbWFsbCA9IHNsaWNlKHN0YXJ0LCBzdG9wLCBzdGVwKQorICAgICAgICAgICAgXywgXywgXywgc2xpY2VsZW4gPSBzbGljZV9pbmRpY2VzKHNfc21hbGwsIHNtYWxsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2xpY2VsZW4gPSByYW5kcmFuZ2UoMSwgc21hbGwrMSkgaWYgc21hbGwgPiAwIGVsc2UgMAorICAgICAgICAgICAgc19zbWFsbCA9IHJhbmRzbGljZV9mcm9tX3NsaWNlbGVuKHNsaWNlbGVuLCBzbWFsbCkKKworICAgICAgICAjIENyZWF0ZSBhIHNsaWNlIG9mIHRoZSBzYW1lIGxlbmd0aCBmb3IgdGhlIGJpZ2dlciB2YWx1ZS4KKyAgICAgICAgc19iaWcgPSByYW5kc2xpY2VfZnJvbV9zbGljZWxlbihzbGljZWxlbiwgYmlnKQorICAgICAgICBpZiByYW5kcmFuZ2UoMikgPT0gMDoKKyAgICAgICAgICAgIHJzaGFwZVtuXSwgbHNoYXBlW25dID0gYmlnLCBzbWFsbAorICAgICAgICAgICAgcnNsaWNlc1tuXSwgbHNsaWNlc1tuXSA9IHNfYmlnLCBzX3NtYWxsCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByc2hhcGVbbl0sIGxzaGFwZVtuXSA9IHNtYWxsLCBiaWcKKyAgICAgICAgICAgIHJzbGljZXNbbl0sIGxzbGljZXNbbl0gPSBzX3NtYWxsLCBzX2JpZworCisgICAgcmV0dXJuIGxzaGFwZSwgcnNoYXBlLCB0dXBsZShsc2xpY2VzKSwgdHVwbGUocnNsaWNlcykKKworZGVmIHJhbmRpdGVtc19mcm9tX3N0cnVjdHVyZShmbXQsIHQpOgorICAgICIiIlJldHVybiBhIGxpc3Qgb2YgcmFuZG9tIGl0ZW1zIGZvciBzdHJ1Y3R1cmUgJ3QnIHdpdGggZm9ybWF0CisgICAgICAgJ2ZtdGNoYXInLiIiIgorICAgIG1lbWxlbiwgaXRlbXNpemUsIF8sIF8sIF8sIF8gPSB0CisgICAgcmV0dXJuIGdlbl9pdGVtcyhtZW1sZW4vL2l0ZW1zaXplLCAnIycrZm10LCAnbnVtcHknKQorCitkZWYgbmRhcnJheV9mcm9tX3N0cnVjdHVyZShpdGVtcywgZm10LCB0LCBmbGFncz0wKToKKyAgICAiIiJSZXR1cm4gbmRhcnJheSBmcm9tIHRoZSB0dXBsZSByZXR1cm5lZCBieSByYW5kX3N0cnVjdHVyZSgpIiIiCisgICAgbWVtbGVuLCBpdGVtc2l6ZSwgbmRpbSwgc2hhcGUsIHN0cmlkZXMsIG9mZnNldCA9IHQKKyAgICByZXR1cm4gbmRhcnJheShpdGVtcywgc2hhcGU9c2hhcGUsIHN0cmlkZXM9c3RyaWRlcywgZm9ybWF0PWZtdCwKKyAgICAgICAgICAgICAgICAgICBvZmZzZXQ9b2Zmc2V0LCBmbGFncz1ORF9XUklUQUJMRXxmbGFncykKKworZGVmIG51bXB5X2FycmF5X2Zyb21fc3RydWN0dXJlKGl0ZW1zLCBmbXQsIHQpOgorICAgICIiIlJldHVybiBudW1weV9hcnJheSBmcm9tIHRoZSB0dXBsZSByZXR1cm5lZCBieSByYW5kX3N0cnVjdHVyZSgpIiIiCisgICAgbWVtbGVuLCBpdGVtc2l6ZSwgbmRpbSwgc2hhcGUsIHN0cmlkZXMsIG9mZnNldCA9IHQKKyAgICBidWYgPSBieXRlYXJyYXkobWVtbGVuKQorICAgIGZvciBqLCB2IGluIGVudW1lcmF0ZShpdGVtcyk6CisgICAgICAgIHN0cnVjdC5wYWNrX2ludG8oZm10LCBidWYsIGoqaXRlbXNpemUsIHYpCisgICAgcmV0dXJuIG51bXB5X2FycmF5KGJ1ZmZlcj1idWYsIHNoYXBlPXNoYXBlLCBzdHJpZGVzPXN0cmlkZXMsCisgICAgICAgICAgICAgICAgICAgICAgIGR0eXBlPWZtdCwgb2Zmc2V0PW9mZnNldCkKKworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbW9yeXZpZXcgY2FzdHMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitkZWYgY2FzdF9pdGVtcyhleHBvcnRlciwgZm10LCBpdGVtc2l6ZSwgc2hhcGU9Tm9uZSk6CisgICAgIiIiSW50ZXJwcmV0IHRoZSByYXcgbWVtb3J5IG9mICdleHBvcnRlcicgYXMgYSBsaXN0IG9mIGl0ZW1zIHdpdGgKKyAgICAgICBzaXplICdpdGVtc2l6ZScuIElmIHNoYXBlPU5vbmUsIHRoZSBuZXcgc3RydWN0dXJlIGlzIGFzc3VtZWQgdG8KKyAgICAgICBiZSAxLUQgd2l0aCBuICogaXRlbXNpemUgPSBieXRlbGVuLiBJZiBzaGFwZSBpcyBnaXZlbiwgdGhlIHVzdWFsCisgICAgICAgY29uc3RyYWludCBmb3IgY29udGlndW91cyBhcnJheXMgcHJvZChzaGFwZSkgKiBpdGVtc2l6ZSA9IGJ5dGVsZW4KKyAgICAgICBhcHBsaWVzLiBPbiBzdWNjZXNzLCByZXR1cm4gKGl0ZW1zLCBzaGFwZSkuIElmIHRoZSBjb25zdHJhaW50cworICAgICAgIGNhbm5vdCBiZSBtZXQsIHJldHVybiAoTm9uZSwgTm9uZSkuIElmIGEgY2h1bmsgb2YgYnl0ZXMgaXMgaW50ZXJwcmV0ZWQKKyAgICAgICBhcyBOYU4gYXMgYSByZXN1bHQgb2YgZmxvYXQgY29udmVyc2lvbiwgcmV0dXJuICgnbmFuJywgTm9uZSkuIiIiCisgICAgYnl0ZWxlbiA9IGV4cG9ydGVyLm5ieXRlcworICAgIGlmIHNoYXBlOgorICAgICAgICBpZiBwcm9kKHNoYXBlKSAqIGl0ZW1zaXplICE9IGJ5dGVsZW46CisgICAgICAgICAgICByZXR1cm4gTm9uZSwgc2hhcGUKKyAgICBlbGlmIHNoYXBlID09IFtdOgorICAgICAgICBpZiBleHBvcnRlci5uZGltID09IDAgb3IgaXRlbXNpemUgIT0gYnl0ZWxlbjoKKyAgICAgICAgICAgIHJldHVybiBOb25lLCBzaGFwZQorICAgIGVsc2U6CisgICAgICAgIG4sIHIgPSBkaXZtb2QoYnl0ZWxlbiwgaXRlbXNpemUpCisgICAgICAgIHNoYXBlID0gW25dCisgICAgICAgIGlmIHIgIT0gMDoKKyAgICAgICAgICAgIHJldHVybiBOb25lLCBzaGFwZQorCisgICAgbWVtID0gZXhwb3J0ZXIudG9ieXRlcygpCisgICAgYnl0ZWl0ZW1zID0gW21lbVtpOmkraXRlbXNpemVdIGZvciBpIGluIHJhbmdlKDAsIGxlbihtZW0pLCBpdGVtc2l6ZSldCisKKyAgICBpdGVtcyA9IFtdCisgICAgZm9yIHYgaW4gYnl0ZWl0ZW1zOgorICAgICAgICBpdGVtID0gc3RydWN0LnVucGFjayhmbXQsIHYpWzBdCisgICAgICAgIGlmIGl0ZW0gIT0gaXRlbToKKyAgICAgICAgICAgIHJldHVybiAnbmFuJywgc2hhcGUKKyAgICAgICAgaXRlbXMuYXBwZW5kKGl0ZW0pCisKKyAgICByZXR1cm4gKGl0ZW1zLCBzaGFwZSkgaWYgc2hhcGUgIT0gW10gZWxzZSAoaXRlbXNbMF0sIHNoYXBlKQorCitkZWYgZ2VuY2FzdHNoYXBlcygpOgorICAgICIiIkdlbmVyYXRlIHNoYXBlcyB0byB0ZXN0IGNhc3RpbmcuIiIiCisgICAgZm9yIG4gaW4gcmFuZ2UoMzIpOgorICAgICAgICB5aWVsZCBbbl0KKyAgICBuZGltID0gcmFuZHJhbmdlKDQsIDYpCisgICAgbWluc2hhcGUgPSAxIGlmIHJhbmRyYW5nZSgxMDApID4gODAgZWxzZSAyCisgICAgeWllbGQgW3JhbmRyYW5nZShtaW5zaGFwZSwgNSkgZm9yIF8gaW4gcmFuZ2UobmRpbSldCisgICAgbmRpbSA9IHJhbmRyYW5nZSgyLCA0KQorICAgIG1pbnNoYXBlID0gMSBpZiByYW5kcmFuZ2UoMTAwKSA+IDgwIGVsc2UgMgorICAgIHlpZWxkIFtyYW5kcmFuZ2UobWluc2hhcGUsIDUpIGZvciBfIGluIHJhbmdlKG5kaW0pXQorCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjdHVhbCB0ZXN0cworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK2RlZiBnZW5zbGljZXMobik6CisgICAgIiIiR2VuZXJhdGUgYWxsIHBvc3NpYmxlIHNsaWNlcyBmb3IgYSBzaW5nbGUgZGltZW5zaW9uLiIiIgorICAgIHJldHVybiBwcm9kdWN0KHJhbmdlKC1uLCBuKzEpLCByYW5nZSgtbiwgbisxKSwgcmFuZ2UoLW4sIG4rMSkpCisKK2RlZiBnZW5zbGljZXNfbmRpbShuZGltLCBzaGFwZSk6CisgICAgIiIiR2VuZXJhdGUgYWxsIHBvc3NpYmxlIHNsaWNlIHR1cGxlcyBmb3IgJ3NoYXBlJy4iIiIKKyAgICBpdGVyYWJsZXMgPSBbZ2Vuc2xpY2VzKHNoYXBlW25dKSBmb3IgbiBpbiByYW5nZShuZGltKV0KKyAgICByZXR1cm4gcHJvZHVjdCgqaXRlcmFibGVzKQorCitkZWYgcnNsaWNlKG4sIGFsbG93X2VtcHR5PUZhbHNlKToKKyAgICAiIiJHZW5lcmF0ZSByYW5kb20gc2xpY2UgZm9yIGEgc2luZ2xlIGRpbWVuc2lvbiBvZiBsZW5ndGggbi4KKyAgICAgICBJZiB6ZXJvPVRydWUsIHRoZSBzbGljZXMgbWF5IGJlIGVtcHR5LCBvdGhlcndpc2UgdGhleSB3aWxsCisgICAgICAgYmUgbm9uLWVtcHR5LiIiIgorICAgIG1pbmxlbiA9IDAgaWYgYWxsb3dfZW1wdHkgb3IgbiA9PSAwIGVsc2UgMQorICAgIHNsaWNlbGVuID0gcmFuZHJhbmdlKG1pbmxlbiwgbisxKQorICAgIHJldHVybiByYW5kc2xpY2VfZnJvbV9zbGljZWxlbihzbGljZWxlbiwgbikKKworZGVmIHJzbGljZXMobiwgYWxsb3dfZW1wdHk9RmFsc2UpOgorICAgICIiIkdlbmVyYXRlIHJhbmRvbSBzbGljZXMgZm9yIGEgc2luZ2xlIGRpbWVuc2lvbi4iIiIKKyAgICBmb3IgXyBpbiByYW5nZSg1KToKKyAgICAgICAgeWllbGQgcnNsaWNlKG4sIGFsbG93X2VtcHR5KQorCitkZWYgcnNsaWNlc19uZGltKG5kaW0sIHNoYXBlLCBpdGVyYXRpb25zPTUpOgorICAgICIiIkdlbmVyYXRlIHJhbmRvbSBzbGljZSB0dXBsZXMgZm9yICdzaGFwZScuIiIiCisgICAgIyBub24tZW1wdHkgc2xpY2VzCisgICAgZm9yIF8gaW4gcmFuZ2UoaXRlcmF0aW9ucyk6CisgICAgICAgIHlpZWxkIHR1cGxlKHJzbGljZShzaGFwZVtuXSkgZm9yIG4gaW4gcmFuZ2UobmRpbSkpCisgICAgIyBwb3NzaWJseSBlbXB0eSBzbGljZXMKKyAgICBmb3IgXyBpbiByYW5nZShpdGVyYXRpb25zKToKKyAgICAgICAgeWllbGQgdHVwbGUocnNsaWNlKHNoYXBlW25dLCBhbGxvd19lbXB0eT1UcnVlKSBmb3IgbiBpbiByYW5nZShuZGltKSkKKyAgICAjIGludmFsaWQgc2xpY2VzCisgICAgeWllbGQgdHVwbGUoc2xpY2UoMCwxLDApIGZvciBfIGluIHJhbmdlKG5kaW0pKQorCitkZWYgcnBlcm11dGF0aW9uKGl0ZXJhYmxlLCByPU5vbmUpOgorICAgIHBvb2wgPSB0dXBsZShpdGVyYWJsZSkKKyAgICByID0gbGVuKHBvb2wpIGlmIHIgaXMgTm9uZSBlbHNlIHIKKyAgICB5aWVsZCB0dXBsZShzYW1wbGUocG9vbCwgcikpCisKK2RlZiBuZGFycmF5X3ByaW50KG5kKToKKyAgICAiIiJQcmludCBuZGFycmF5IGZvciBkZWJ1Z2dpbmcuIiIiCisgICAgdHJ5OgorICAgICAgICB4ID0gbmQudG9saXN0KCkKKyAgICBleGNlcHQgKFR5cGVFcnJvciwgTm90SW1wbGVtZW50ZWRFcnJvcik6CisgICAgICAgIHggPSBuZC50b2J5dGVzKCkKKyAgICBpZiBpc2luc3RhbmNlKG5kLCBuZGFycmF5KToKKyAgICAgICAgb2Zmc2V0ID0gbmQub2Zmc2V0CisgICAgICAgIGZsYWdzID0gbmQuZmxhZ3MKKyAgICBlbHNlOgorICAgICAgICBvZmZzZXQgPSAndW5rbm93bicKKyAgICAgICAgZmxhZ3MgPSAndW5rbm93bicKKyAgICBwcmludCgibmRhcnJheSglcywgc2hhcGU9JXMsIHN0cmlkZXM9JXMsIHN1Ym9mZnNldHM9JXMsIG9mZnNldD0lcywgIgorICAgICAgICAgICJmb3JtYXQ9JyVzJywgaXRlbXNpemU9JXMsIGZsYWdzPSVzKSIgJQorICAgICAgICAgICh4LCBuZC5zaGFwZSwgbmQuc3RyaWRlcywgbmQuc3Vib2Zmc2V0cywgb2Zmc2V0LAorICAgICAgICAgICBuZC5mb3JtYXQsIG5kLml0ZW1zaXplLCBmbGFncykpCisgICAgc3lzLnN0ZG91dC5mbHVzaCgpCisKKworSVRFUkFUSU9OUyA9IDEwMAorTUFYRElNID0gNQorTUFYU0hBUEUgPSAxMAorCitpZiBTSE9SVF9URVNUOgorICAgIElURVJBVElPTlMgPSAxMAorICAgIE1BWERJTSA9IDMKKyAgICBNQVhTSEFQRSA9IDQKKyAgICBnZW5zbGljZXMgPSByc2xpY2VzCisgICAgZ2Vuc2xpY2VzX25kaW0gPSByc2xpY2VzX25kaW0KKyAgICBwZXJtdXRhdGlvbnMgPSBycGVybXV0YXRpb24KKworCitAdW5pdHRlc3Quc2tpcFVubGVzcyhzdHJ1Y3QsICdzdHJ1Y3QgbW9kdWxlIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK0B1bml0dGVzdC5za2lwVW5sZXNzKG5kYXJyYXksICduZGFycmF5IG9iamVjdCByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0JykKK2NsYXNzIFRlc3RCdWZmZXJQcm90b2NvbCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICMgVGhlIHN1Ym9mZnNldHMgdGVzdHMgbmVlZCBzaXplb2Yodm9pZCAqKS4KKyAgICAgICAgc2VsZi5zaXplb2Zfdm9pZF9wID0gZ2V0X3NpemVvZl92b2lkX3AoKQorCisgICAgZGVmIHZlcmlmeShzZWxmLCByZXN1bHQsIG9iaj0tMSwKKyAgICAgICAgICAgICAgICAgICAgIGl0ZW1zaXplPXsxfSwgZm10PS0xLCByZWFkb25seT17MX0sCisgICAgICAgICAgICAgICAgICAgICBuZGltPXsxfSwgc2hhcGU9LTEsIHN0cmlkZXM9LTEsCisgICAgICAgICAgICAgICAgICAgICBsc3Q9LTEsIHNsaWNlZD1GYWxzZSwgY2FzdD1GYWxzZSk6CisgICAgICAgICMgVmVyaWZ5IGJ1ZmZlciBjb250ZW50cyBhZ2FpbnN0IGV4cGVjdGVkIHZhbHVlcy4gRGVmYXVsdCB2YWx1ZXMKKyAgICAgICAgIyBhcmUgZGVsaWJlcmF0ZWx5IGluaXRpYWxpemVkIHRvIGludmFsaWQgdHlwZXMuCisgICAgICAgIGlmIHNoYXBlOgorICAgICAgICAgICAgZXhwZWN0ZWRfbGVuID0gcHJvZChzaGFwZSkqaXRlbXNpemUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIG5vdCBmbXQ6ICMgYXJyYXkgaGFzIGJlZW4gaW1wbGljaXRseSBjYXN0IHRvIHVuc2lnbmVkIGJ5dGVzCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfbGVuID0gbGVuKGxzdCkKKyAgICAgICAgICAgIGVsc2U6ICMgbmRpbSA9IDAKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9sZW4gPSBpdGVtc2l6ZQorCisgICAgICAgICMgUmVjb25zdHJ1Y3Qgc3Vib2Zmc2V0cyBmcm9tIHN0cmlkZXMuIFN1cHBvcnQgZm9yIHNsaWNpbmcKKyAgICAgICAgIyBjb3VsZCBiZSBhZGRlZCwgYnV0IGlzIGN1cnJlbnRseSBvbmx5IG5lZWRlZCBmb3IgdGVzdF9nZXRidWYoKS4KKyAgICAgICAgc3Vib2Zmc2V0cyA9ICgpCisgICAgICAgIGlmIHJlc3VsdC5zdWJvZmZzZXRzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKG5kaW0sIDApCisKKyAgICAgICAgICAgIHN1Ym9mZnNldDAgPSAwCisgICAgICAgICAgICBmb3IgbiBpbiByYW5nZSgxLCBuZGltKToKKyAgICAgICAgICAgICAgICBpZiBzaGFwZVtuXSA9PSAwOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGlmIHN0cmlkZXNbbl0gPD0gMDoKKyAgICAgICAgICAgICAgICAgICAgc3Vib2Zmc2V0MCArPSAtc3RyaWRlc1tuXSAqIChzaGFwZVtuXS0xKQorCisgICAgICAgICAgICBzdWJvZmZzZXRzID0gW3N1Ym9mZnNldDBdICsgWy0xIGZvciB2IGluIHJhbmdlKG5kaW0tMSldCisKKyAgICAgICAgICAgICMgTm90IGNvcnJlY3QgaWYgc2xpY2luZyBoYXMgb2NjdXJyZWQgaW4gdGhlIGZpcnN0IGRpbWVuc2lvbi4KKyAgICAgICAgICAgIHN0cmlkZTAgPSBzZWxmLnNpemVvZl92b2lkX3AKKyAgICAgICAgICAgIGlmIHN0cmlkZXNbMF0gPCAwOgorICAgICAgICAgICAgICAgIHN0cmlkZTAgPSAtc3RyaWRlMAorICAgICAgICAgICAgc3RyaWRlcyA9IFtzdHJpZGUwXSArIGxpc3Qoc3RyaWRlc1sxOl0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhyZXN1bHQub2JqLCBvYmopCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0Lm5ieXRlcywgZXhwZWN0ZWRfbGVuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdC5pdGVtc2l6ZSwgaXRlbXNpemUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LmZvcm1hdCwgZm10KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdC5yZWFkb25seSwgcmVhZG9ubHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0Lm5kaW0sIG5kaW0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LnNoYXBlLCB0dXBsZShzaGFwZSkpCisgICAgICAgIGlmIG5vdCAoc2xpY2VkIGFuZCBzdWJvZmZzZXRzKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LnN0cmlkZXMsIHR1cGxlKHN0cmlkZXMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdC5zdWJvZmZzZXRzLCB0dXBsZShzdWJvZmZzZXRzKSkKKworICAgICAgICBpZiBpc2luc3RhbmNlKHJlc3VsdCwgbmRhcnJheSkgb3IgaXNfbWVtb3J5dmlld19mb3JtYXQoZm10KToKKyAgICAgICAgICAgIHJlcCA9IHJlc3VsdC50b2xpc3QoKSBpZiBmbXQgZWxzZSByZXN1bHQudG9ieXRlcygpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcCwgbHN0KQorCisgICAgICAgIGlmIG5vdCBmbXQ6ICMgYXJyYXkgaGFzIGJlZW4gY2FzdCB0byB1bnNpZ25lZCBieXRlcywKKyAgICAgICAgICAgIHJldHVybiAgIyB0aGUgcmVtYWluaW5nIHRlc3RzIHdvbid0IHdvcmsuCisKKyAgICAgICAgIyBQeUJ1ZmZlcl9HZXRQb2ludGVyKCkgaXMgdGhlIGRlZmluaXRpb24gaG93IHRvIGFjY2VzcyBhbiBpdGVtLgorICAgICAgICAjIElmIFB5QnVmZmVyX0dldFBvaW50ZXIoaW5kaWNlcykgaXMgY29ycmVjdCBmb3IgYWxsIHBvc3NpYmxlCisgICAgICAgICMgY29tYmluYXRpb25zIG9mIGluZGljZXMsIHRoZSBidWZmZXIgaXMgY29ycmVjdC4KKyAgICAgICAgIworICAgICAgICAjIEFsc28gdGVzdCB0b2J5dGVzKCkgYWdhaW5zdCB0aGUgZmxhdHRlbmVkICdsc3QnLCB3aXRoIGFsbCBpdGVtcworICAgICAgICAjIHBhY2tlZCB0byBieXRlcy4KKyAgICAgICAgaWYgbm90IGNhc3Q6ICMgY2FzdHMgY2hvcCB1cCAnbHN0JyBpbiBkaWZmZXJlbnQgd2F5cworICAgICAgICAgICAgYiA9IGJ5dGVhcnJheSgpCisgICAgICAgICAgICBidWZfZXJyID0gTm9uZQorICAgICAgICAgICAgZm9yIGluZCBpbiBpbmRpY2VzKHNoYXBlKToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGl0ZW0xID0gZ2V0X3BvaW50ZXIocmVzdWx0LCBpbmQpCisgICAgICAgICAgICAgICAgICAgIGl0ZW0yID0gZ2V0X2l0ZW0obHN0LCBpbmQpCisgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbTIsIHR1cGxlKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHggPSBzdHJ1Y3QucGFjayhmbXQsICppdGVtMikKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHggPSBzdHJ1Y3QucGFjayhmbXQsIGl0ZW0yKQorICAgICAgICAgICAgICAgICAgICBiLmV4dGVuZCh4KQorICAgICAgICAgICAgICAgIGV4Y2VwdCBCdWZmZXJFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgYnVmX2VyciA9IFRydWUgIyByZS1leHBvcnRlciBkb2VzIG5vdCBwcm92aWRlIGZ1bGwgYnVmZmVyCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpdGVtMSwgaXRlbTIpCisKKyAgICAgICAgICAgIGlmIG5vdCBidWZfZXJyOgorICAgICAgICAgICAgICAgICMgdGVzdCB0b2J5dGVzKCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdC50b2J5dGVzKCksIGIpCisKKyAgICAgICAgICAgIGlmIG5vdCBidWZfZXJyIGFuZCBpc19tZW1vcnl2aWV3X2Zvcm1hdChmbXQpOgorCisgICAgICAgICAgICAgICAgIyBsc3QgOj0gZXhwZWN0ZWQgbXVsdGktZGltZW5zaW9uYWwgbG9naWNhbCByZXByZXNlbnRhdGlvbgorICAgICAgICAgICAgICAgICMgZmxhdHRlbihsc3QpIDo9IGVsZW1lbnRzIGluIEMtb3JkZXIKKyAgICAgICAgICAgICAgICBmZiA9IGZtdCBpZiBmbXQgZWxzZSAnQicKKyAgICAgICAgICAgICAgICBmbGF0dGVuZWQgPSBmbGF0dGVuKGxzdCkKKworICAgICAgICAgICAgICAgICMgUnVsZXMgZm9yICdBJzogaWYgdGhlIGFycmF5IGlzIGFscmVhZHkgY29udGlndW91cywgcmV0dXJuCisgICAgICAgICAgICAgICAgIyB0aGUgYXJyYXkgdW5hbHRlcmVkLiBPdGhlcndpc2UsIHJldHVybiBhIGNvbnRpZ3VvdXMgJ0MnCisgICAgICAgICAgICAgICAgIyByZXByZXNlbnRhdGlvbi4KKyAgICAgICAgICAgICAgICBmb3Igb3JkZXIgaW4gWydDJywgJ0YnLCAnQSddOgorICAgICAgICAgICAgICAgICAgICBleHBlY3RlZCA9IHJlc3VsdAorICAgICAgICAgICAgICAgICAgICBpZiBvcmRlciA9PSAnRic6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXNfY29udGlndW91cyhyZXN1bHQsICdBJykgb3IgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfY29udGlndW91cyhyZXN1bHQsICdDJyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBGb3IgY29uc3RydWN0aW5nIHRoZSBuZGFycmF5LCBjb252ZXJ0IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZmxhdHRlbmVkIGxvZ2ljYWwgcmVwcmVzZW50YXRpb24gdG8gRm9ydHJhbiBvcmRlci4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFucyA9IHRyYW5zcG9zZShmbGF0dGVuZWQsIHNoYXBlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gbmRhcnJheSh0cmFucywgc2hhcGU9c2hhcGUsIGZvcm1hdD1mZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3M9TkRfRk9SVFJBTikKKyAgICAgICAgICAgICAgICAgICAgZWxzZTogIyAnQycsICdBJworICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlzX2NvbnRpZ3VvdXMocmVzdWx0LCAnQScpIG9yIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2NvbnRpZ3VvdXMocmVzdWx0LCAnRicpIGFuZCBvcmRlciA9PSAnQyc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGUgZmxhdHRlbmVkIGxpc3QgaXMgYWxyZWFkeSBpbiBDLW9yZGVyLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gbmRhcnJheShmbGF0dGVuZWQsIHNoYXBlPXNoYXBlLCBmb3JtYXQ9ZmYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGlnID0gZ2V0X2NvbnRpZ3VvdXMocmVzdWx0LCBQeUJVRl9SRUFELCBvcmRlcikKKyAgICAgICAgICAgICAgICAgICAgY29udGlnID0gZ2V0X2NvbnRpZ3VvdXMocmVzdWx0LCBQeUJVRl9SRUFELCBvcmRlcikKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250aWcudG9ieXRlcygpLCBiKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoY21wX2NvbnRpZyhjb250aWcsIGV4cGVjdGVkKSkKKworICAgICAgICBpZiBpc19tZW1vcnl2aWV3X2Zvcm1hdChmbXQpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG0gPSBtZW1vcnl2aWV3KHJlc3VsdCkKKyAgICAgICAgICAgIGV4Y2VwdCBCdWZmZXJFcnJvcjogIyByZS1leHBvcnRlciBkb2VzIG5vdCBwcm92aWRlIGZ1bGwgaW5mb3JtYXRpb24KKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGV4ID0gcmVzdWx0Lm9iaiBpZiBpc2luc3RhbmNlKHJlc3VsdCwgbWVtb3J5dmlldykgZWxzZSByZXN1bHQKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMobS5vYmosIGV4KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLm5ieXRlcywgZXhwZWN0ZWRfbGVuKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLml0ZW1zaXplLCBpdGVtc2l6ZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5mb3JtYXQsIGZtdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5yZWFkb25seSwgcmVhZG9ubHkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0ubmRpbSwgbmRpbSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5zaGFwZSwgdHVwbGUoc2hhcGUpKQorICAgICAgICAgICAgaWYgbm90IChzbGljZWQgYW5kIHN1Ym9mZnNldHMpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5zdHJpZGVzLCB0dXBsZShzdHJpZGVzKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5zdWJvZmZzZXRzLCB0dXBsZShzdWJvZmZzZXRzKSkKKworICAgICAgICAgICAgbiA9IDEgaWYgbmRpbSA9PSAwIGVsc2UgbGVuKGxzdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG0pLCBuKQorCisgICAgICAgICAgICByZXAgPSByZXN1bHQudG9saXN0KCkgaWYgZm10IGVsc2UgcmVzdWx0LnRvYnl0ZXMoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXAsIGxzdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSwgcmVzdWx0KQorCisgICAgZGVmIHZlcmlmeV9nZXRidWYoc2VsZiwgb3JpZ19leCwgZXgsIHJlcSwgc2xpY2VkPUZhbHNlKToKKyAgICAgICAgZGVmIHNpbXBsZV9mbXQoZXgpOgorICAgICAgICAgICAgcmV0dXJuIGV4LmZvcm1hdCA9PSAnJyBvciBleC5mb3JtYXQgPT0gJ0InCisgICAgICAgIGRlZiBtYXRjaChyZXEsIGZsYWcpOgorICAgICAgICAgICAgcmV0dXJuICgocmVxJmZsYWcpID09IGZsYWcpCisKKyAgICAgICAgaWYgKCMgd3JpdGFibGUgcmVxdWVzdCB0byByZWFkLW9ubHkgZXhwb3J0ZXIKKyAgICAgICAgICAgIChleC5yZWFkb25seSBhbmQgbWF0Y2gocmVxLCBQeUJVRl9XUklUQUJMRSkpIG9yCisgICAgICAgICAgICAjIGNhbm5vdCBtYXRjaCBleHBsaWNpdCBjb250aWd1aXR5IHJlcXVlc3QKKyAgICAgICAgICAgIChtYXRjaChyZXEsIFB5QlVGX0NfQ09OVElHVU9VUykgYW5kIG5vdCBleC5jX2NvbnRpZ3VvdXMpIG9yCisgICAgICAgICAgICAobWF0Y2gocmVxLCBQeUJVRl9GX0NPTlRJR1VPVVMpIGFuZCBub3QgZXguZl9jb250aWd1b3VzKSBvcgorICAgICAgICAgICAgKG1hdGNoKHJlcSwgUHlCVUZfQU5ZX0NPTlRJR1VPVVMpIGFuZCBub3QgZXguY29udGlndW91cykgb3IKKyAgICAgICAgICAgICMgYnVmZmVyIG5lZWRzIHN1Ym9mZnNldHMKKyAgICAgICAgICAgIChub3QgbWF0Y2gocmVxLCBQeUJVRl9JTkRJUkVDVCkgYW5kIGV4LnN1Ym9mZnNldHMpIG9yCisgICAgICAgICAgICAjIGJ1ZmZlciB3aXRob3V0IHN0cmlkZXMgbXVzdCBiZSBDLWNvbnRpZ3VvdXMKKyAgICAgICAgICAgIChub3QgbWF0Y2gocmVxLCBQeUJVRl9TVFJJREVTKSBhbmQgbm90IGV4LmNfY29udGlndW91cykgb3IKKyAgICAgICAgICAgICMgUHlCVUZfU0lNUExFfFB5QlVGX0ZPUk1BVCBhbmQgUHlCVUZfV1JJVEFCTEV8UHlCVUZfRk9STUFUCisgICAgICAgICAgICAobm90IG1hdGNoKHJlcSwgUHlCVUZfTkQpIGFuZCBtYXRjaChyZXEsIFB5QlVGX0ZPUk1BVCkpKToKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG5kYXJyYXksIGV4LCBnZXRidWY9cmVxKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYgaXNpbnN0YW5jZShleCwgbmRhcnJheSkgb3IgaXNfbWVtb3J5dmlld19mb3JtYXQoZXguZm9ybWF0KToKKyAgICAgICAgICAgIGxzdCA9IGV4LnRvbGlzdCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuZCA9IG5kYXJyYXkoZXgsIGdldGJ1Zj1QeUJVRl9GVUxMX1JPKQorICAgICAgICAgICAgbHN0ID0gbmQudG9saXN0KCkKKworICAgICAgICAjIFRoZSBjb25zdW1lciBtYXkgaGF2ZSByZXF1ZXN0ZWQgZGVmYXVsdCB2YWx1ZXMgb3IgYSBOVUxMIGZvcm1hdC4KKyAgICAgICAgcm8gPSAwIGlmIG1hdGNoKHJlcSwgUHlCVUZfV1JJVEFCTEUpIGVsc2UgZXgucmVhZG9ubHkKKyAgICAgICAgZm10ID0gZXguZm9ybWF0CisgICAgICAgIGl0ZW1zaXplID0gZXguaXRlbXNpemUKKyAgICAgICAgbmRpbSA9IGV4Lm5kaW0KKyAgICAgICAgaWYgbm90IG1hdGNoKHJlcSwgUHlCVUZfRk9STUFUKToKKyAgICAgICAgICAgICMgaXRlbXNpemUgcmVmZXJzIHRvIHRoZSBvcmlnaW5hbCBpdGVtc2l6ZSBiZWZvcmUgdGhlIGNhc3QuCisgICAgICAgICAgICAjIFRoZSBlcXVhbGl0eSBwcm9kdWN0KHNoYXBlKSAqIGl0ZW1zaXplID0gbGVuIHN0aWxsIGhvbGRzLgorICAgICAgICAgICAgIyBUaGUgZXF1YWxpdHkgY2FsY3NpemUoZm9ybWF0KSA9IGl0ZW1zaXplIGRvZXMgX25vdF8gaG9sZC4KKyAgICAgICAgICAgIGZtdCA9ICcnCisgICAgICAgICAgICBsc3QgPSBvcmlnX2V4LnRvYnl0ZXMoKSAjIElzc3VlIDEyODM0CisgICAgICAgIGlmIG5vdCBtYXRjaChyZXEsIFB5QlVGX05EKToKKyAgICAgICAgICAgIG5kaW0gPSAxCisgICAgICAgIHNoYXBlID0gb3JpZ19leC5zaGFwZSBpZiBtYXRjaChyZXEsIFB5QlVGX05EKSBlbHNlICgpCisgICAgICAgIHN0cmlkZXMgPSBvcmlnX2V4LnN0cmlkZXMgaWYgbWF0Y2gocmVxLCBQeUJVRl9TVFJJREVTKSBlbHNlICgpCisKKyAgICAgICAgbmQgPSBuZGFycmF5KGV4LCBnZXRidWY9cmVxKQorICAgICAgICBzZWxmLnZlcmlmeShuZCwgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT1pdGVtc2l6ZSwgZm10PWZtdCwgcmVhZG9ubHk9cm8sCisgICAgICAgICAgICAgICAgICAgIG5kaW09bmRpbSwgc2hhcGU9c2hhcGUsIHN0cmlkZXM9c3RyaWRlcywKKyAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCwgc2xpY2VkPXNsaWNlZCkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfZ2V0YnVmKHNlbGYpOgorICAgICAgICByZXF1ZXN0cyA9ICgKKyAgICAgICAgICAgICMgZGlzdGluY3QgZmxhZ3MKKyAgICAgICAgICAgIFB5QlVGX0lORElSRUNULCBQeUJVRl9TVFJJREVTLCBQeUJVRl9ORCwgUHlCVUZfU0lNUExFLAorICAgICAgICAgICAgUHlCVUZfQ19DT05USUdVT1VTLCBQeUJVRl9GX0NPTlRJR1VPVVMsIFB5QlVGX0FOWV9DT05USUdVT1VTLAorICAgICAgICAgICAgIyBjb21wb3VuZCByZXF1ZXN0cworICAgICAgICAgICAgUHlCVUZfRlVMTCwgUHlCVUZfRlVMTF9STywKKyAgICAgICAgICAgIFB5QlVGX1JFQ09SRFMsIFB5QlVGX1JFQ09SRFNfUk8sCisgICAgICAgICAgICBQeUJVRl9TVFJJREVELCBQeUJVRl9TVFJJREVEX1JPLAorICAgICAgICAgICAgUHlCVUZfQ09OVElHLCBQeUJVRl9DT05USUdfUk8sCisgICAgICAgICkKKyAgICAgICAgIyBpdGVtcyBhbmQgZm9ybWF0CisgICAgICAgIGl0ZW1zX2ZtdCA9ICgKKyAgICAgICAgICAgIChbVHJ1ZSBpZiB4ICUgMiBlbHNlIEZhbHNlIGZvciB4IGluIHJhbmdlKDEyKV0sICc/JyksCisgICAgICAgICAgICAoWzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyXSwgJ2InKSwKKyAgICAgICAgICAgIChbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTJdLCAnQicpLAorICAgICAgICAgICAgKFsoMioqMzEteCkgaWYgeCAlIDIgZWxzZSAoLTIqKjMxK3gpIGZvciB4IGluIHJhbmdlKDEyKV0sICdsJykKKyAgICAgICAgKQorICAgICAgICAjIHNoYXBlLCBzdHJpZGVzLCBvZmZzZXQKKyAgICAgICAgc3RydWN0dXJlID0gKAorICAgICAgICAgICAgKFtdLCBbXSwgMCksCisgICAgICAgICAgICAoWzEyXSwgW10sIDApLAorICAgICAgICAgICAgKFsxMl0sIFstMV0sIDExKSwKKyAgICAgICAgICAgIChbNl0sIFsyXSwgMCksCisgICAgICAgICAgICAoWzZdLCBbLTJdLCAxMSksCisgICAgICAgICAgICAoWzMsIDRdLCBbXSwgMCksCisgICAgICAgICAgICAoWzMsIDRdLCBbLTQsIC0xXSwgMTEpLAorICAgICAgICAgICAgKFsyLCAyXSwgWzQsIDFdLCA0KSwKKyAgICAgICAgICAgIChbMiwgMl0sIFstNCwgLTFdLCA4KQorICAgICAgICApCisgICAgICAgICMgbmRhcnJheSBjcmVhdGlvbiBmbGFncworICAgICAgICBuZGZsYWdzID0gKAorICAgICAgICAgICAgMCwgTkRfV1JJVEFCTEUsIE5EX0ZPUlRSQU4sIE5EX0ZPUlRSQU58TkRfV1JJVEFCTEUsCisgICAgICAgICAgICBORF9QSUwsIE5EX1BJTHxORF9XUklUQUJMRQorICAgICAgICApCisgICAgICAgICMgZmxhZ3MgdGhhdCBjYW4gYWN0dWFsbHkgYmUgdXNlZCBhcyBmbGFncworICAgICAgICByZWFsX2ZsYWdzID0gKDAsIFB5QlVGX1dSSVRBQkxFLCBQeUJVRl9GT1JNQVQsCisgICAgICAgICAgICAgICAgICAgICAgUHlCVUZfV1JJVEFCTEV8UHlCVUZfRk9STUFUKQorCisgICAgICAgIGZvciBpdGVtcywgZm10IGluIGl0ZW1zX2ZtdDoKKyAgICAgICAgICAgIGl0ZW1zaXplID0gc3RydWN0LmNhbGNzaXplKGZtdCkKKyAgICAgICAgICAgIGZvciBzaGFwZSwgc3RyaWRlcywgb2Zmc2V0IGluIHN0cnVjdHVyZToKKyAgICAgICAgICAgICAgICBzdHJpZGVzID0gW3YgKiBpdGVtc2l6ZSBmb3IgdiBpbiBzdHJpZGVzXQorICAgICAgICAgICAgICAgIG9mZnNldCAqPSBpdGVtc2l6ZQorICAgICAgICAgICAgICAgIGZvciBmbGFncyBpbiBuZGZsYWdzOgorCisgICAgICAgICAgICAgICAgICAgIGlmIHN0cmlkZXMgYW5kIChmbGFncyZORF9GT1JUUkFOKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBzaGFwZSBhbmQgKGZsYWdzJk5EX1BJTCk6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgICAgIF9pdGVtcyA9IGl0ZW1zIGlmIHNoYXBlIGVsc2UgaXRlbXNbMF0KKyAgICAgICAgICAgICAgICAgICAgZXgxID0gbmRhcnJheShfaXRlbXMsIGZvcm1hdD1mbXQsIGZsYWdzPWZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoYXBlPXNoYXBlLCBzdHJpZGVzPXN0cmlkZXMsIG9mZnNldD1vZmZzZXQpCisgICAgICAgICAgICAgICAgICAgIGV4MiA9IGV4MVs6Oi0yXSBpZiBzaGFwZSBlbHNlIE5vbmUKKworICAgICAgICAgICAgICAgICAgICBtMSA9IG1lbW9yeXZpZXcoZXgxKQorICAgICAgICAgICAgICAgICAgICBpZiBleDI6CisgICAgICAgICAgICAgICAgICAgICAgICBtMiA9IG1lbW9yeXZpZXcoZXgyKQorICAgICAgICAgICAgICAgICAgICBpZiBleDEubmRpbSA9PSAwIG9yIChleDEubmRpbSA9PSAxIGFuZCBzaGFwZSBhbmQgc3RyaWRlcyk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0xLCBleDEpCisgICAgICAgICAgICAgICAgICAgIGlmIGV4MiBhbmQgZXgyLm5kaW0gPT0gMSBhbmQgc2hhcGUgYW5kIHN0cmlkZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0yLCBleDIpCisKKyAgICAgICAgICAgICAgICAgICAgZm9yIHJlcSBpbiByZXF1ZXN0czoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBiaXRzIGluIHJlYWxfZmxhZ3M6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52ZXJpZnlfZ2V0YnVmKGV4MSwgZXgxLCByZXF8Yml0cykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZlcmlmeV9nZXRidWYoZXgxLCBtMSwgcmVxfGJpdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZXgyOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZlcmlmeV9nZXRidWYoZXgyLCBleDIsIHJlcXxiaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2VkPVRydWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5X2dldGJ1ZihleDIsIG0yLCByZXF8Yml0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWNlZD1UcnVlKQorCisgICAgICAgIGl0ZW1zID0gWzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyXQorCisgICAgICAgICMgTkRfR0VUQlVGX0ZBSUwKKyAgICAgICAgZXggPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bMTJdLCBmbGFncz1ORF9HRVRCVUZfRkFJTCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG5kYXJyYXksIGV4KQorCisgICAgICAgICMgUmVxdWVzdCBjb21wbGV4IHN0cnVjdHVyZSBmcm9tIGEgc2ltcGxlIGV4cG9ydGVyLiBJbiB0aGlzCisgICAgICAgICMgcGFydGljdWxhciBjYXNlIHRoZSB0ZXN0IG9iamVjdCBpcyBub3QgUEVQLTMxMTggY29tcGxpYW50LgorICAgICAgICBiYXNlID0gbmRhcnJheShbOV0sIFsxXSkKKyAgICAgICAgZXggPSBuZGFycmF5KGJhc2UsIGdldGJ1Zj1QeUJVRl9TSU1QTEUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBuZGFycmF5LCBleCwgZ2V0YnVmPVB5QlVGX1dSSVRBQkxFKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgbmRhcnJheSwgZXgsIGdldGJ1Zj1QeUJVRl9ORCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG5kYXJyYXksIGV4LCBnZXRidWY9UHlCVUZfU1RSSURFUykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG5kYXJyYXksIGV4LCBnZXRidWY9UHlCVUZfQ19DT05USUdVT1VTKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgbmRhcnJheSwgZXgsIGdldGJ1Zj1QeUJVRl9GX0NPTlRJR1VPVVMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBuZGFycmF5LCBleCwgZ2V0YnVmPVB5QlVGX0FOWV9DT05USUdVT1VTKQorICAgICAgICBuZCA9IG5kYXJyYXkoZXgsIGdldGJ1Zj1QeUJVRl9TSU1QTEUpCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X2V4Y2VwdGlvbnMoc2VsZik6CisgICAgICAgIG5kID0gbmRhcnJheShbOV0sIFsxXSkKKyAgICAgICAgbmRtID0gbmRhcnJheShbOV0sIFsxXSwgZmxhZ3M9TkRfVkFSRVhQT1JUKQorCisgICAgICAgICMgSW5pdGlhbGl6YXRpb24gb2YgYSBuZXcgbmRhcnJheSBvciBtdXRhdGlvbiBvZiBhbiBleGlzdGluZyBhcnJheS4KKyAgICAgICAgZm9yIGMgaW4gKG5kYXJyYXksIG5kLnB1c2gsIG5kbS5wdXNoKToKKyAgICAgICAgICAgICMgSW52YWxpZCB0eXBlcy4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYywgezEsMiwzfSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYywgWzEsMiwnMyddKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLCBbMSwyLCgzLDQpXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYywgWzEsMiwzXSwgc2hhcGU9ezN9KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLCBbMSwyLDNdLCBzaGFwZT1bM10sIHN0cmlkZXM9ezF9KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLCBbMSwyLDNdLCBzaGFwZT1bM10sIG9mZnNldD1bXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYywgWzFdLCBzaGFwZT1bMV0sIGZvcm1hdD17fSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYywgWzFdLCBzaGFwZT1bMV0sIGZsYWdzPXt9KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLCBbMV0sIHNoYXBlPVsxXSwgZ2V0YnVmPXt9KQorCisgICAgICAgICAgICAjIE5EX0ZPUlRSQU4gZmxhZyBpcyBvbmx5IHZhbGlkIHdpdGhvdXQgc3RyaWRlcy4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYywgWzFdLCBzaGFwZT1bMV0sIHN0cmlkZXM9WzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3M9TkRfRk9SVFJBTikKKworICAgICAgICAgICAgIyBORF9QSUwgZmxhZyBpcyBvbmx5IHZhbGlkIHdpdGggbmRpbSA+IDAuCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMsIFsxXSwgc2hhcGU9W10sIGZsYWdzPU5EX1BJTCkKKworICAgICAgICAgICAgIyBJbnZhbGlkIGl0ZW1zLgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYywgW10sIHNoYXBlPVsxXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGMsIFsnWFhYJ10sIHNoYXBlPVsxXSwgZm9ybWF0PSJMIikKKyAgICAgICAgICAgICMgSW52YWxpZCBjb21iaW5hdGlvbiBvZiBpdGVtcyBhbmQgZm9ybWF0LgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc3RydWN0LmVycm9yLCBjLCBbMTAwMF0sIHNoYXBlPVsxXSwgZm9ybWF0PSJCIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGMsIFsxLCgyLDMpXSwgc2hhcGU9WzJdLCBmb3JtYXQ9IkIiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYywgWzEsMiwzXSwgc2hhcGU9WzNdLCBmb3JtYXQ9IlFMIikKKworICAgICAgICAgICAgIyBJbnZhbGlkIG5kaW0uCisgICAgICAgICAgICBuID0gTkRfTUFYX05ESU0rMQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYywgWzFdKm4sIHNoYXBlPVsxXSpuKQorCisgICAgICAgICAgICAjIEludmFsaWQgc2hhcGUuCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjLCBbMV0sIHNoYXBlPVstMV0pCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjLCBbMSwyLDNdLCBzaGFwZT1bJzMnXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIGMsIFsxXSwgc2hhcGU9WzIqKjEyOF0pCisgICAgICAgICAgICAjIHByb2Qoc2hhcGUpICogaXRlbXNpemUgIT0gbGVuKGl0ZW1zKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYywgWzEsMiwzLDQsNV0sIHNoYXBlPVsyLDJdLCBvZmZzZXQ9MykKKworICAgICAgICAgICAgIyBJbnZhbGlkIHN0cmlkZXMuCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjLCBbMSwyLDNdLCBzaGFwZT1bM10sIHN0cmlkZXM9WycxJ10pCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBjLCBbMV0sIHNoYXBlPVsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlkZXM9WzIqKjEyOF0pCisKKyAgICAgICAgICAgICMgSW52YWxpZCBjb21iaW5hdGlvbiBvZiBzdHJpZGVzIGFuZCBzaGFwZS4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGMsIFsxLDJdLCBzaGFwZT1bMiwxXSwgc3RyaWRlcz1bMV0pCisgICAgICAgICAgICAjIEludmFsaWQgY29tYmluYXRpb24gb2Ygc3RyaWRlcyBhbmQgZm9ybWF0LgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYywgWzEsMiwzLDRdLCBzaGFwZT1bMl0sIHN0cmlkZXM9WzNdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0PSJMIikKKworICAgICAgICAgICAgIyBJbnZhbGlkIG9mZnNldC4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGMsIFsxLDIsM10sIHNoYXBlPVszXSwgb2Zmc2V0PTQpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjLCBbMSwyLDNdLCBzaGFwZT1bMV0sIG9mZnNldD0zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0PSJMIikKKworICAgICAgICAgICAgIyBJbnZhbGlkIGZvcm1hdC4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGMsIFsxLDIsM10sIHNoYXBlPVszXSwgZm9ybWF0PSIiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc3RydWN0LmVycm9yLCBjLCBbKDEsMiwzKV0sIHNoYXBlPVsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD0iQCMkIikKKworICAgICAgICAgICAgIyBTdHJpZGluZyBvdXQgb2YgdGhlIG1lbW9yeSBib3VuZHMuCisgICAgICAgICAgICBpdGVtcyA9IFsxLDIsMyw0LDUsNiw3LDgsOSwxMF0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGMsIGl0ZW1zLCBzaGFwZT1bMiwzXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlkZXM9Wy0zLCAtMl0sIG9mZnNldD01KQorCisgICAgICAgICAgICAjIENvbnN0cnVjdGluZyBjb25zdW1lcjogZm9ybWF0IGFyZ3VtZW50IGludmFsaWQuCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMsIGJ5dGVhcnJheSgpLCBmb3JtYXQ9IlEiKQorCisgICAgICAgICAgICAjIENvbnN0cnVjdGluZyBvcmlnaW5hbCBiYXNlIG9iamVjdDogZ2V0YnVmIGFyZ3VtZW50IGludmFsaWQuCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMsIFsxXSwgc2hhcGU9WzFdLCBnZXRidWY9UHlCVUZfRlVMTCkKKworICAgICAgICAgICAgIyBTaGFwZSBhcmd1bWVudCBpcyBtYW5kYXRvcnkgZm9yIG9yaWdpbmFsIGJhc2Ugb2JqZWN0cy4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYywgWzFdKQorCisKKyAgICAgICAgIyBQeUJVRl9XUklUQUJMRSByZXF1ZXN0IHRvIHJlYWQtb25seSBwcm92aWRlci4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG5kYXJyYXksIGInMTIzJywgZ2V0YnVmPVB5QlVGX1dSSVRBQkxFKQorCisgICAgICAgICMgTkRfVkFSRVhQT1JUIGNhbiBvbmx5IGJlIHNwZWNpZmllZCBkdXJpbmcgY29uc3RydWN0aW9uLgorICAgICAgICBuZCA9IG5kYXJyYXkoWzldLCBbMV0sIGZsYWdzPU5EX1ZBUkVYUE9SVCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbmQucHVzaCwgWzFdLCBbMV0sIGZsYWdzPU5EX1ZBUkVYUE9SVCkKKworICAgICAgICAjIEludmFsaWQgb3BlcmF0aW9uIGZvciBjb25zdW1lcnM6IHB1c2gvcG9wCisgICAgICAgIG5kID0gbmRhcnJheShiJzEyMycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBuZC5wdXNoLCBbMV0sIFsxXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG5kLnBvcCkKKworICAgICAgICAjIE5EX1ZBUkVYUE9SVCBub3Qgc2V0OiBwdXNoL3BvcCBmYWlsIHdpdGggZXhwb3J0ZWQgYnVmZmVycworICAgICAgICBuZCA9IG5kYXJyYXkoWzldLCBbMV0pCisgICAgICAgIG5kLnB1c2goWzFdLCBbMV0pCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgbmQucHVzaCwgWzFdLCBbMV0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBuZC5wb3ApCisgICAgICAgIG0ucmVsZWFzZSgpCisgICAgICAgIG5kLnBvcCgpCisKKyAgICAgICAgIyBTaW5nbGUgcmVtYWluaW5nIGJ1ZmZlcjogcG9wIGZhaWxzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBuZC5wb3ApCisgICAgICAgIGRlbCBuZAorCisgICAgICAgICMgZ2V0X3BvaW50ZXIoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGdldF9wb2ludGVyLCB7fSwgWzEsMiwzXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBnZXRfcG9pbnRlciwgYicxMjMnLCB7fSkKKworICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMDApKSwgc2hhcGU9WzFdKjEwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZ2V0X3BvaW50ZXIsIG5kLCBbNV0pCisKKyAgICAgICAgbmQgPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIpKSwgc2hhcGU9WzMsNF0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGdldF9wb2ludGVyLCBuZCwgWzIsMyw0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZ2V0X3BvaW50ZXIsIG5kLCBbMywzXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZ2V0X3BvaW50ZXIsIG5kLCBbLTMsM10pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIGdldF9wb2ludGVyLCBuZCwgWzE8PDY0LDNdKQorCisgICAgICAgICMgdG9saXN0KCkgbmVlZHMgZm9ybWF0CisgICAgICAgIGV4ID0gbmRhcnJheShbMSwyLDNdLCBzaGFwZT1bM10sIGZvcm1hdD0nTCcpCisgICAgICAgIG5kID0gbmRhcnJheShleCwgZ2V0YnVmPVB5QlVGX1NJTVBMRSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbmQudG9saXN0KQorCisgICAgICAgICMgbWVtb3J5dmlld19mcm9tX2J1ZmZlcigpCisgICAgICAgIGV4MSA9IG5kYXJyYXkoWzEsMiwzXSwgc2hhcGU9WzNdLCBmb3JtYXQ9J0wnKQorICAgICAgICBleDIgPSBuZGFycmF5KGV4MSkKKyAgICAgICAgbmQgPSBuZGFycmF5KGV4MikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBuZC5tZW1vcnl2aWV3X2Zyb21fYnVmZmVyKQorCisgICAgICAgIG5kID0gbmRhcnJheShbKDEsKSoyMDBdLCBzaGFwZT1bMV0sIGZvcm1hdD0nTCcqMjAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG5kLm1lbW9yeXZpZXdfZnJvbV9idWZmZXIpCisKKyAgICAgICAgbiA9IE5EX01BWF9ORElNCisgICAgICAgIG5kID0gbmRhcnJheShsaXN0KHJhbmdlKG4pKSwgc2hhcGU9WzFdKm4pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG5kLm1lbW9yeXZpZXdfZnJvbV9idWZmZXIpCisKKyAgICAgICAgIyBnZXRfY29udGlndW91cygpCisgICAgICAgIG5kID0gbmRhcnJheShbMV0sIHNoYXBlPVsxXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBnZXRfY29udGlndW91cywgMSwgMiwgMywgNCwgNSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBnZXRfY29udGlndW91cywgbmQsICJ4eXoiLCAnQycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIGdldF9jb250aWd1b3VzLCBuZCwgMioqNjQsICdDJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBnZXRfY29udGlndW91cywgbmQsIFB5QlVGX1JFQUQsIDk2MSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZUVuY29kZUVycm9yLCBnZXRfY29udGlndW91cywgbmQsIFB5QlVGX1JFQUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdcdTIwMDcnKQorCisgICAgICAgICMgY21wX2NvbnRpZygpCisgICAgICAgIG5kID0gbmRhcnJheShbMV0sIHNoYXBlPVsxXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjbXBfY29udGlnLCAxLCAyLCAzLCA0LCA1KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGNtcF9jb250aWcsIHt9LCBuZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjbXBfY29udGlnLCBuZCwge30pCisKKyAgICAgICAgIyBpc19jb250aWd1b3VzKCkKKyAgICAgICAgbmQgPSBuZGFycmF5KFsxXSwgc2hhcGU9WzFdKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGlzX2NvbnRpZ3VvdXMsIDEsIDIsIDMsIDQsIDUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaXNfY29udGlndW91cywge30sICdBJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpc19jb250aWd1b3VzLCBuZCwgMjAxKQorCisgICAgZGVmIHRlc3RfbmRhcnJheV9saW5rZWRfbGlzdChzZWxmKToKKyAgICAgICAgZm9yIHBlcm0gaW4gcGVybXV0YXRpb25zKHJhbmdlKDUpKToKKyAgICAgICAgICAgIG0gPSBbMF0qNQorICAgICAgICAgICAgbmQgPSBuZGFycmF5KFsxLDIsM10sIHNoYXBlPVszXSwgZmxhZ3M9TkRfVkFSRVhQT1JUKQorICAgICAgICAgICAgbVswXSA9IG1lbW9yeXZpZXcobmQpCisKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDEsIDUpOgorICAgICAgICAgICAgICAgIG5kLnB1c2goWzEsMiwzXSwgc2hhcGU9WzNdKQorICAgICAgICAgICAgICAgIG1baV0gPSBtZW1vcnl2aWV3KG5kKQorCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSg1KToKKyAgICAgICAgICAgICAgICBtW3Blcm1baV1dLnJlbGVhc2UoKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgbmQucG9wKQorICAgICAgICAgICAgZGVsIG5kCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X2Zvcm1hdF9zY2FsYXIoc2VsZik6CisgICAgICAgICMgbmRpbSA9IDA6IHNjYWxhcgorICAgICAgICBmb3IgZm10LCBzY2FsYXIsIF8gaW4gaXRlcl9mb3JtYXQoMCk6CisgICAgICAgICAgICBpdGVtc2l6ZSA9IHN0cnVjdC5jYWxjc2l6ZShmbXQpCisgICAgICAgICAgICBuZCA9IG5kYXJyYXkoc2NhbGFyLCBzaGFwZT0oKSwgZm9ybWF0PWZtdCkKKyAgICAgICAgICAgIHNlbGYudmVyaWZ5KG5kLCBvYmo9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zaXplPWl0ZW1zaXplLCBmbXQ9Zm10LCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT0wLCBzaGFwZT0oKSwgc3RyaWRlcz0oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxzdD1zY2FsYXIpCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X2Zvcm1hdF9zaGFwZShzZWxmKToKKyAgICAgICAgIyBuZGltID0gMSwgc2hhcGUgPSBbbl0KKyAgICAgICAgbml0ZW1zID0gIHJhbmRyYW5nZSgxLCAxMCkKKyAgICAgICAgZm9yIGZtdCwgaXRlbXMsIF8gaW4gaXRlcl9mb3JtYXQobml0ZW1zKToKKyAgICAgICAgICAgIGl0ZW1zaXplID0gc3RydWN0LmNhbGNzaXplKGZtdCkKKyAgICAgICAgICAgIGZvciBmbGFncyBpbiAoMCwgTkRfUElMKToKKyAgICAgICAgICAgICAgICBuZCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVtuaXRlbXNdLCBmb3JtYXQ9Zm10LCBmbGFncz1mbGFncykKKyAgICAgICAgICAgICAgICBzZWxmLnZlcmlmeShuZCwgb2JqPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9aXRlbXNpemUsIGZtdD1mbXQsIHJlYWRvbmx5PTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT0xLCBzaGFwZT0obml0ZW1zLCksIHN0cmlkZXM9KGl0ZW1zaXplLCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHN0PWl0ZW1zKQorCisgICAgZGVmIHRlc3RfbmRhcnJheV9mb3JtYXRfc3RyaWRlcyhzZWxmKToKKyAgICAgICAgIyBuZGltID0gMSwgc3RyaWRlcworICAgICAgICBuaXRlbXMgPSByYW5kcmFuZ2UoMSwgMzApCisgICAgICAgIGZvciBmbXQsIGl0ZW1zLCBfIGluIGl0ZXJfZm9ybWF0KG5pdGVtcyk6CisgICAgICAgICAgICBpdGVtc2l6ZSA9IHN0cnVjdC5jYWxjc2l6ZShmbXQpCisgICAgICAgICAgICBmb3Igc3RlcCBpbiByYW5nZSgtNSwgNSk6CisgICAgICAgICAgICAgICAgaWYgc3RlcCA9PSAwOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgc2hhcGUgPSBbbGVuKGl0ZW1zWzo6c3RlcF0pXQorICAgICAgICAgICAgICAgIHN0cmlkZXMgPSBbc3RlcCppdGVtc2l6ZV0KKyAgICAgICAgICAgICAgICBvZmZzZXQgPSBpdGVtc2l6ZSoobml0ZW1zLTEpIGlmIHN0ZXAgPCAwIGVsc2UgMAorCisgICAgICAgICAgICAgICAgZm9yIGZsYWdzIGluICgwLCBORF9QSUwpOgorICAgICAgICAgICAgICAgICAgICBuZCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPXNoYXBlLCBzdHJpZGVzPXN0cmlkZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9Zm10LCBvZmZzZXQ9b2Zmc2V0LCBmbGFncz1mbGFncykKKyAgICAgICAgICAgICAgICAgICAgc2VsZi52ZXJpZnkobmQsIG9iaj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT1pdGVtc2l6ZSwgZm10PWZtdCwgcmVhZG9ubHk9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT0xLCBzaGFwZT1zaGFwZSwgc3RyaWRlcz1zdHJpZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsc3Q9aXRlbXNbOjpzdGVwXSkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfZm9ydHJhbihzZWxmKToKKyAgICAgICAgaXRlbXMgPSBbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTJdCisgICAgICAgIGV4ID0gbmRhcnJheShpdGVtcywgc2hhcGU9KDMsIDQpLCBzdHJpZGVzPSgxLCAzKSkKKyAgICAgICAgbmQgPSBuZGFycmF5KGV4LCBnZXRidWY9UHlCVUZfRl9DT05USUdVT1VTfFB5QlVGX0ZPUk1BVCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZC50b2xpc3QoKSwgZmFycmF5KGl0ZW1zLCAoMywgNCkpKQorCisgICAgZGVmIHRlc3RfbmRhcnJheV9tdWx0aWRpbShzZWxmKToKKyAgICAgICAgZm9yIG5kaW0gaW4gcmFuZ2UoNSk6CisgICAgICAgICAgICBzaGFwZV90ID0gW3JhbmRyYW5nZSgyLCAxMCkgZm9yIF8gaW4gcmFuZ2UobmRpbSldCisgICAgICAgICAgICBuaXRlbXMgPSBwcm9kKHNoYXBlX3QpCisgICAgICAgICAgICBmb3Igc2hhcGUgaW4gcGVybXV0YXRpb25zKHNoYXBlX3QpOgorCisgICAgICAgICAgICAgICAgZm10LCBpdGVtcywgXyA9IHJhbmRpdGVtcyhuaXRlbXMpCisgICAgICAgICAgICAgICAgaXRlbXNpemUgPSBzdHJ1Y3QuY2FsY3NpemUoZm10KQorCisgICAgICAgICAgICAgICAgZm9yIGZsYWdzIGluICgwLCBORF9QSUwpOgorICAgICAgICAgICAgICAgICAgICBpZiBuZGltID09IDAgYW5kIGZsYWdzID09IE5EX1BJTDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICAgICAgIyBDIGFycmF5CisgICAgICAgICAgICAgICAgICAgIG5kID0gbmRhcnJheShpdGVtcywgc2hhcGU9c2hhcGUsIGZvcm1hdD1mbXQsIGZsYWdzPWZsYWdzKQorCisgICAgICAgICAgICAgICAgICAgIHN0cmlkZXMgPSBzdHJpZGVzX2Zyb21fc2hhcGUobmRpbSwgc2hhcGUsIGl0ZW1zaXplLCAnQycpCisgICAgICAgICAgICAgICAgICAgIGxzdCA9IGNhcnJheShpdGVtcywgc2hhcGUpCisgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5KG5kLCBvYmo9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9aXRlbXNpemUsIGZtdD1mbXQsIHJlYWRvbmx5PTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kaW09bmRpbSwgc2hhcGU9c2hhcGUsIHN0cmlkZXM9c3RyaWRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCkKKworICAgICAgICAgICAgICAgICAgICBpZiBpc19tZW1vcnl2aWV3X2Zvcm1hdChmbXQpOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBtZW1vcnl2aWV3OiByZWNvbnN0cnVjdCBzdHJpZGVzCisgICAgICAgICAgICAgICAgICAgICAgICBleCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPXNoYXBlLCBmb3JtYXQ9Zm10KQorICAgICAgICAgICAgICAgICAgICAgICAgbmQgPSBuZGFycmF5KGV4LCBnZXRidWY9UHlCVUZfQ09OVElHX1JPfFB5QlVGX0ZPUk1BVCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuZC5zdHJpZGVzID09ICgpKQorICAgICAgICAgICAgICAgICAgICAgICAgbXYgPSBuZC5tZW1vcnl2aWV3X2Zyb21fYnVmZmVyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5KG12LCBvYmo9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zaXplPWl0ZW1zaXplLCBmbXQ9Zm10LCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT1uZGltLCBzaGFwZT1zaGFwZSwgc3RyaWRlcz1zdHJpZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCkKKworICAgICAgICAgICAgICAgICAgICAjIEZvcnRyYW4gYXJyYXkKKyAgICAgICAgICAgICAgICAgICAgbmQgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1zaGFwZSwgZm9ybWF0PWZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzPWZsYWdzfE5EX0ZPUlRSQU4pCisKKyAgICAgICAgICAgICAgICAgICAgc3RyaWRlcyA9IHN0cmlkZXNfZnJvbV9zaGFwZShuZGltLCBzaGFwZSwgaXRlbXNpemUsICdGJykKKyAgICAgICAgICAgICAgICAgICAgbHN0ID0gZmFycmF5KGl0ZW1zLCBzaGFwZSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi52ZXJpZnkobmQsIG9iaj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT1pdGVtc2l6ZSwgZm10PWZtdCwgcmVhZG9ubHk9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT1uZGltLCBzaGFwZT1zaGFwZSwgc3RyaWRlcz1zdHJpZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsc3Q9bHN0KQorCisgICAgZGVmIHRlc3RfbmRhcnJheV9pbmRleF9pbnZhbGlkKHNlbGYpOgorICAgICAgICAjIG5vdCB3cml0YWJsZQorICAgICAgICBuZCA9IG5kYXJyYXkoWzFdLCBzaGFwZT1bMV0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbmQuX19zZXRpdGVtX18sIDEsIDgpCisgICAgICAgIG12ID0gbWVtb3J5dmlldyhuZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdiwgbmQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbXYuX19zZXRpdGVtX18sIDEsIDgpCisKKyAgICAgICAgIyBjYW5ub3QgYmUgZGVsZXRlZAorICAgICAgICBuZCA9IG5kYXJyYXkoWzFdLCBzaGFwZT1bMV0sIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG5kLl9fZGVsaXRlbV9fLCAxKQorICAgICAgICBtdiA9IG1lbW9yeXZpZXcobmQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXYsIG5kKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG12Ll9fZGVsaXRlbV9fLCAxKQorCisgICAgICAgICMgb3ZlcmZsb3cKKyAgICAgICAgbmQgPSBuZGFycmF5KFsxXSwgc2hhcGU9WzFdLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgbmQuX19nZXRpdGVtX18sIDE8PDY0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBuZC5fX3NldGl0ZW1fXywgMTw8NjQsIDgpCisgICAgICAgIG12ID0gbWVtb3J5dmlldyhuZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdiwgbmQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IsIG12Ll9fZ2V0aXRlbV9fLCAxPDw2NCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgbXYuX19zZXRpdGVtX18sIDE8PDY0LCA4KQorCisgICAgICAgICMgZm9ybWF0CisgICAgICAgIGl0ZW1zID0gWzEsMiwzLDQsNSw2LDcsOF0KKyAgICAgICAgbmQgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bbGVuKGl0ZW1zKV0sIGZvcm1hdD0iQiIsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzdHJ1Y3QuZXJyb3IsIG5kLl9fc2V0aXRlbV9fLCAyLCAzMDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG5kLl9fc2V0aXRlbV9fLCAxLCAoMTAwLCAyMDApKQorICAgICAgICBtdiA9IG1lbW9yeXZpZXcobmQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXYsIG5kKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtdi5fX3NldGl0ZW1fXywgMiwgMzAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG12Ll9fc2V0aXRlbV9fLCAxLCAoMTAwLCAyMDApKQorCisgICAgICAgIGl0ZW1zID0gWygxLDIpLCAoMyw0KSwgKDUsNildCisgICAgICAgIG5kID0gbmRhcnJheShpdGVtcywgc2hhcGU9W2xlbihpdGVtcyldLCBmb3JtYXQ9IkxRIiwgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG5kLl9fc2V0aXRlbV9fLCAyLCAzMDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHN0cnVjdC5lcnJvciwgbmQuX19zZXRpdGVtX18sIDEsIChiJ1x4MDAxJywgMjAwKSkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfaW5kZXhfc2NhbGFyKHNlbGYpOgorICAgICAgICAjIHNjYWxhcgorICAgICAgICBuZCA9IG5kYXJyYXkoMSwgc2hhcGU9KCksIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBtdiA9IG1lbW9yeXZpZXcobmQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXYsIG5kKQorCisgICAgICAgIHggPSBuZFsoKV07ICBzZWxmLmFzc2VydEVxdWFsKHgsIDEpCisgICAgICAgIHggPSBuZFsuLi5dOyBzZWxmLmFzc2VydEVxdWFsKHgudG9saXN0KCksIG5kLnRvbGlzdCgpKQorCisgICAgICAgIHggPSBtdlsoKV07ICBzZWxmLmFzc2VydEVxdWFsKHgsIDEpCisgICAgICAgIHggPSBtdlsuLi5dOyBzZWxmLmFzc2VydEVxdWFsKHgudG9saXN0KCksIG5kLnRvbGlzdCgpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbmQuX19nZXRpdGVtX18sIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbXYuX19nZXRpdGVtX18sIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbmQuX19zZXRpdGVtX18sIDAsIDgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbXYuX19zZXRpdGVtX18sIDAsIDgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZC50b2xpc3QoKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdi50b2xpc3QoKSwgMSkKKworICAgICAgICBuZFsoKV0gPSA5OyBzZWxmLmFzc2VydEVxdWFsKG5kLnRvbGlzdCgpLCA5KQorICAgICAgICBtdlsoKV0gPSA5OyBzZWxmLmFzc2VydEVxdWFsKG12LnRvbGlzdCgpLCA5KQorCisgICAgICAgIG5kWy4uLl0gPSA1OyBzZWxmLmFzc2VydEVxdWFsKG5kLnRvbGlzdCgpLCA1KQorICAgICAgICBtdlsuLi5dID0gNTsgc2VsZi5hc3NlcnRFcXVhbChtdi50b2xpc3QoKSwgNSkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfaW5kZXhfbnVsbF9zdHJpZGVzKHNlbGYpOgorICAgICAgICBleCA9IG5kYXJyYXkobGlzdChyYW5nZSgyKjQpKSwgc2hhcGU9WzIsIDRdLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgbmQgPSBuZGFycmF5KGV4LCBnZXRidWY9UHlCVUZfQ09OVElHKQorCisgICAgICAgICMgU3ViLXZpZXdzIGFyZSBvbmx5IHBvc3NpYmxlIGZvciBmdWxsIGV4cG9ydGVycy4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG5kLl9fZ2V0aXRlbV9fLCAxKQorICAgICAgICAjIFNhbWUgZm9yIHNsaWNlcy4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG5kLl9fZ2V0aXRlbV9fLCBzbGljZSgzLDUsMSkpCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X2luZGV4X2dldGl0ZW1fc2luZ2xlKHNlbGYpOgorICAgICAgICAjIGdldGl0ZW0KKyAgICAgICAgZm9yIGZtdCwgaXRlbXMsIF8gaW4gaXRlcl9mb3JtYXQoNSk6CisgICAgICAgICAgICBuZCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVs1XSwgZm9ybWF0PWZtdCkKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKC01LCA1KToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kW2ldLCBpdGVtc1tpXSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgbmQuX19nZXRpdGVtX18sIC02KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgbmQuX19nZXRpdGVtX18sIDUpCisKKyAgICAgICAgICAgIGlmIGlzX21lbW9yeXZpZXdfZm9ybWF0KGZtdCk6CisgICAgICAgICAgICAgICAgbXYgPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXYsIG5kKQorICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKC01LCA1KToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdltpXSwgaXRlbXNbaV0pCisKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yLCBtdi5fX2dldGl0ZW1fXywgLTYpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgbXYuX19nZXRpdGVtX18sIDUpCisKKyAgICAgICAgIyBnZXRpdGVtIHdpdGggbnVsbCBzdHJpZGVzCisgICAgICAgIGZvciBmbXQsIGl0ZW1zLCBfIGluIGl0ZXJfZm9ybWF0KDUpOgorICAgICAgICAgICAgZXggPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bNV0sIGZsYWdzPU5EX1dSSVRBQkxFLCBmb3JtYXQ9Zm10KQorICAgICAgICAgICAgbmQgPSBuZGFycmF5KGV4LCBnZXRidWY9UHlCVUZfQ09OVElHfFB5QlVGX0ZPUk1BVCkKKworICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoLTUsIDUpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmRbaV0sIGl0ZW1zW2ldKQorCisgICAgICAgICAgICBpZiBpc19tZW1vcnl2aWV3X2Zvcm1hdChmbXQpOgorICAgICAgICAgICAgICAgIG12ID0gbmQubWVtb3J5dmlld19mcm9tX2J1ZmZlcigpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhtdi5fX2VxX18obmQpLCBOb3RJbXBsZW1lbnRlZCkKKyAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgtNSwgNSk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXZbaV0sIGl0ZW1zW2ldKQorCisgICAgICAgICMgZ2V0aXRlbSB3aXRoIG51bGwgZm9ybWF0CisgICAgICAgIGl0ZW1zID0gWzEsMiwzLDQsNV0KKyAgICAgICAgZXggPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bNV0pCisgICAgICAgIG5kID0gbmRhcnJheShleCwgZ2V0YnVmPVB5QlVGX0NPTlRJR19STykKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoLTUsIDUpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZFtpXSwgaXRlbXNbaV0pCisKKyAgICAgICAgIyBnZXRpdGVtIHdpdGggbnVsbCBzaGFwZS9zdHJpZGVzL2Zvcm1hdAorICAgICAgICBpdGVtcyA9IFsxLDIsMyw0LDVdCisgICAgICAgIGV4ID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzVdKQorICAgICAgICBuZCA9IG5kYXJyYXkoZXgsIGdldGJ1Zj1QeUJVRl9TSU1QTEUpCisKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoLTUsIDUpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZFtpXSwgaXRlbXNbaV0pCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X2luZGV4X3NldGl0ZW1fc2luZ2xlKHNlbGYpOgorICAgICAgICAjIGFzc2lnbiBzaW5nbGUgdmFsdWUKKyAgICAgICAgZm9yIGZtdCwgaXRlbXMsIHNpbmdsZV9pdGVtIGluIGl0ZXJfZm9ybWF0KDUpOgorICAgICAgICAgICAgbmQgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bNV0sIGZvcm1hdD1mbXQsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoNSk6CisgICAgICAgICAgICAgICAgaXRlbXNbaV0gPSBzaW5nbGVfaXRlbQorICAgICAgICAgICAgICAgIG5kW2ldID0gc2luZ2xlX2l0ZW0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmQudG9saXN0KCksIGl0ZW1zKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yLCBuZC5fX3NldGl0ZW1fXywgLTYsIHNpbmdsZV9pdGVtKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgbmQuX19zZXRpdGVtX18sIDUsIHNpbmdsZV9pdGVtKQorCisgICAgICAgICAgICBpZiBub3QgaXNfbWVtb3J5dmlld19mb3JtYXQoZm10KToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBuZCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVs1XSwgZm9ybWF0PWZtdCwgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgICAgICBtdiA9IG1lbW9yeXZpZXcobmQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG12LCBuZCkKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDUpOgorICAgICAgICAgICAgICAgIGl0ZW1zW2ldID0gc2luZ2xlX2l0ZW0KKyAgICAgICAgICAgICAgICBtdltpXSA9IHNpbmdsZV9pdGVtCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG12LnRvbGlzdCgpLCBpdGVtcykKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgbXYuX19zZXRpdGVtX18sIC02LCBzaW5nbGVfaXRlbSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IsIG12Ll9fc2V0aXRlbV9fLCA1LCBzaW5nbGVfaXRlbSkKKworCisgICAgICAgICMgYXNzaWduIHNpbmdsZSB2YWx1ZTogbG9iamVjdCA9IHJvYmplY3QKKyAgICAgICAgZm9yIGZtdCwgaXRlbXMsIHNpbmdsZV9pdGVtIGluIGl0ZXJfZm9ybWF0KDUpOgorICAgICAgICAgICAgbmQgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bNV0sIGZvcm1hdD1mbXQsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoLTUsIDQpOgorICAgICAgICAgICAgICAgIGl0ZW1zW2ldID0gaXRlbXNbaSsxXQorICAgICAgICAgICAgICAgIG5kW2ldID0gbmRbaSsxXQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZC50b2xpc3QoKSwgaXRlbXMpCisKKyAgICAgICAgICAgIGlmIG5vdCBpc19tZW1vcnl2aWV3X2Zvcm1hdChmbXQpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIG5kID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzVdLCBmb3JtYXQ9Zm10LCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgICAgIG12ID0gbWVtb3J5dmlldyhuZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXYsIG5kKQorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoLTUsIDQpOgorICAgICAgICAgICAgICAgIGl0ZW1zW2ldID0gaXRlbXNbaSsxXQorICAgICAgICAgICAgICAgIG12W2ldID0gbXZbaSsxXQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdi50b2xpc3QoKSwgaXRlbXMpCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X2luZGV4X2dldGl0ZW1fbXVsdGlkaW0oc2VsZik6CisgICAgICAgIHNoYXBlX3QgPSAoMiwgMywgNSkKKyAgICAgICAgbml0ZW1zID0gcHJvZChzaGFwZV90KQorICAgICAgICBmb3Igc2hhcGUgaW4gcGVybXV0YXRpb25zKHNoYXBlX3QpOgorCisgICAgICAgICAgICBmbXQsIGl0ZW1zLCBfID0gcmFuZGl0ZW1zKG5pdGVtcykKKworICAgICAgICAgICAgZm9yIGZsYWdzIGluICgwLCBORF9QSUwpOgorICAgICAgICAgICAgICAgICMgQyBhcnJheQorICAgICAgICAgICAgICAgIG5kID0gbmRhcnJheShpdGVtcywgc2hhcGU9c2hhcGUsIGZvcm1hdD1mbXQsIGZsYWdzPWZsYWdzKQorICAgICAgICAgICAgICAgIGxzdCA9IGNhcnJheShpdGVtcywgc2hhcGUpCisKKyAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgtc2hhcGVbMF0sIHNoYXBlWzBdKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsc3RbaV0sIG5kW2ldLnRvbGlzdCgpKQorICAgICAgICAgICAgICAgICAgICBmb3IgaiBpbiByYW5nZSgtc2hhcGVbMV0sIHNoYXBlWzFdKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHN0W2ldW2pdLCBuZFtpXVtqXS50b2xpc3QoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBrIGluIHJhbmdlKC1zaGFwZVsyXSwgc2hhcGVbMl0pOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHN0W2ldW2pdW2tdLCBuZFtpXVtqXVtrXSkKKworICAgICAgICAgICAgICAgICMgRm9ydHJhbiBhcnJheQorICAgICAgICAgICAgICAgIG5kID0gbmRhcnJheShpdGVtcywgc2hhcGU9c2hhcGUsIGZvcm1hdD1mbXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzPWZsYWdzfE5EX0ZPUlRSQU4pCisgICAgICAgICAgICAgICAgbHN0ID0gZmFycmF5KGl0ZW1zLCBzaGFwZSkKKworICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKC1zaGFwZVswXSwgc2hhcGVbMF0pOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxzdFtpXSwgbmRbaV0udG9saXN0KCkpCisgICAgICAgICAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKC1zaGFwZVsxXSwgc2hhcGVbMV0pOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsc3RbaV1bal0sIG5kW2ldW2pdLnRvbGlzdCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGsgaW4gcmFuZ2Uoc2hhcGVbMl0sIHNoYXBlWzJdKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxzdFtpXVtqXVtrXSwgbmRbaV1bal1ba10pCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X3NlcXVlbmNlKHNlbGYpOgorICAgICAgICBuZCA9IG5kYXJyYXkoMSwgc2hhcGU9KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZXZhbCwgIjEgaW4gbmQiLCBsb2NhbHMoKSkKKyAgICAgICAgbXYgPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG12LCBuZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBldmFsLCAiMSBpbiBtdiIsIGxvY2FscygpKQorCisgICAgICAgIGZvciBmbXQsIGl0ZW1zLCBfIGluIGl0ZXJfZm9ybWF0KDUpOgorICAgICAgICAgICAgbmQgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bNV0sIGZvcm1hdD1mbXQpCisgICAgICAgICAgICBmb3IgaSwgdiBpbiBlbnVtZXJhdGUobmQpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgaXRlbXNbaV0pCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHYgaW4gbmQpCisKKyAgICAgICAgICAgIGlmIGlzX21lbW9yeXZpZXdfZm9ybWF0KGZtdCk6CisgICAgICAgICAgICAgICAgbXYgPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICAgICAgICAgIGZvciBpLCB2IGluIGVudW1lcmF0ZShtdik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgaXRlbXNbaV0pCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh2IGluIG12KQorCisgICAgZGVmIHRlc3RfbmRhcnJheV9zbGljZV9pbnZhbGlkKHNlbGYpOgorICAgICAgICBpdGVtcyA9IFsxLDIsMyw0LDUsNiw3LDhdCisKKyAgICAgICAgIyBydmFsdWUgaXMgbm90IGFuIGV4cG9ydGVyCisgICAgICAgIHhsID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzhdLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgbWwgPSBtZW1vcnl2aWV3KHhsKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHhsLl9fc2V0aXRlbV9fLCBzbGljZSgwLDgsMSksIGl0ZW1zKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1sLl9fc2V0aXRlbV9fLCBzbGljZSgwLDgsMSksIGl0ZW1zKQorCisgICAgICAgICMgcnZhbHVlIGlzIG5vdCBhIGZ1bGwgZXhwb3J0ZXIKKyAgICAgICAgeGwgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bOF0sIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBleCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVs4XSwgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgIHhyID0gbmRhcnJheShleCwgZ2V0YnVmPVB5QlVGX05EKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgeGwuX19zZXRpdGVtX18sIHNsaWNlKDAsOCwxKSwgeHIpCisKKyAgICAgICAgIyB6ZXJvIHN0ZXAKKyAgICAgICAgbmQgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bOF0sIGZvcm1hdD0iTCIsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBtdiA9IG1lbW9yeXZpZXcobmQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG5kLl9fZ2V0aXRlbV9fLCBzbGljZSgwLDEsMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG12Ll9fZ2V0aXRlbV9fLCBzbGljZSgwLDEsMCkpCisKKyAgICAgICAgbmQgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bMiw0XSwgZm9ybWF0PSJMIiwgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgIG12ID0gbWVtb3J5dmlldyhuZCkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBuZC5fX2dldGl0ZW1fXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNsaWNlKDAsMSwxKSwgc2xpY2UoMCwxLDApKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbmQuX19nZXRpdGVtX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzbGljZSgwLDEsMCksIHNsaWNlKDAsMSwxKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbmQuX19nZXRpdGVtX18sICJAJSQiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG5kLl9fZ2V0aXRlbV9fLCAoIkAlJCIsIHNsaWNlKDAsMSwxKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbmQuX19nZXRpdGVtX18sIChzbGljZSgwLDEsMSksIHt9KSkKKworICAgICAgICAjIG1lbW9yeXZpZXc6IG5vdCBpbXBsZW1lbnRlZAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCBtdi5fX2dldGl0ZW1fXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHNsaWNlKDAsMSwxKSwgc2xpY2UoMCwxLDApKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtdi5fX2dldGl0ZW1fXywgIkAlJCIpCisKKyAgICAgICAgIyBkaWZmZXJpbmcgZm9ybWF0CisgICAgICAgIHhsID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzhdLCBmb3JtYXQ9IkIiLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgeHIgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bOF0sIGZvcm1hdD0iYiIpCisgICAgICAgIG1sID0gbWVtb3J5dmlldyh4bCkKKyAgICAgICAgbXIgPSBtZW1vcnl2aWV3KHhyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCB4bC5fX3NldGl0ZW1fXywgc2xpY2UoMCwxLDEpLCB4cls3OjhdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHhsLnRvbGlzdCgpLCBpdGVtcykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbWwuX19zZXRpdGVtX18sIHNsaWNlKDAsMSwxKSwgbXJbNzo4XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtbC50b2xpc3QoKSwgaXRlbXMpCisKKyAgICAgICAgIyBkaWZmZXJpbmcgaXRlbXNpemUKKyAgICAgICAgeGwgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bOF0sIGZvcm1hdD0iQiIsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICB5ciA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVs4XSwgZm9ybWF0PSJMIikKKyAgICAgICAgbWwgPSBtZW1vcnl2aWV3KHhsKQorICAgICAgICBtciA9IG1lbW9yeXZpZXcoeHIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHhsLl9fc2V0aXRlbV9fLCBzbGljZSgwLDEsMSksIHhyWzc6OF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeGwudG9saXN0KCksIGl0ZW1zKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtbC5fX3NldGl0ZW1fXywgc2xpY2UoMCwxLDEpLCBtcls3OjhdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1sLnRvbGlzdCgpLCBpdGVtcykKKworICAgICAgICAjIGRpZmZlcmluZyBuZGltCisgICAgICAgIHhsID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzIsIDRdLCBmb3JtYXQ9ImIiLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgeHIgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bOF0sIGZvcm1hdD0iYiIpCisgICAgICAgIG1sID0gbWVtb3J5dmlldyh4bCkKKyAgICAgICAgbXIgPSBtZW1vcnl2aWV3KHhyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCB4bC5fX3NldGl0ZW1fXywgc2xpY2UoMCwxLDEpLCB4cls3OjhdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHhsLnRvbGlzdCgpLCBbWzEsMiwzLDRdLCBbNSw2LDcsOF1dKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCBtbC5fX3NldGl0ZW1fXywgc2xpY2UoMCwxLDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtcls3OjhdKQorCisgICAgICAgICMgZGlmZmVyaW5nIHNoYXBlCisgICAgICAgIHhsID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzhdLCBmb3JtYXQ9ImIiLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgeHIgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bOF0sIGZvcm1hdD0iYiIpCisgICAgICAgIG1sID0gbWVtb3J5dmlldyh4bCkKKyAgICAgICAgbXIgPSBtZW1vcnl2aWV3KHhyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCB4bC5fX3NldGl0ZW1fXywgc2xpY2UoMCwyLDEpLCB4cls3OjhdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHhsLnRvbGlzdCgpLCBpdGVtcykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbWwuX19zZXRpdGVtX18sIHNsaWNlKDAsMiwxKSwgbXJbNzo4XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtbC50b2xpc3QoKSwgaXRlbXMpCisKKyAgICAgICAgIyBfdGVzdGJ1ZmZlci5jIG1vZHVsZSBmdW5jdGlvbnMKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzbGljZV9pbmRpY2VzLCBzbGljZSgwLDEsMiksIHt9KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNsaWNlX2luZGljZXMsICIjIyMjIyMjIyMjIyIsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNsaWNlX2luZGljZXMsIHNsaWNlKDAsMSwwKSwgNCkKKworICAgICAgICB4ID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzhdLCBmb3JtYXQ9ImIiLCBmbGFncz1ORF9QSUwpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgeC5hZGRfc3Vib2Zmc2V0cykKKworICAgICAgICBleCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVs4XSwgZm9ybWF0PSJCIikKKyAgICAgICAgeCA9IG5kYXJyYXkoZXgsIGdldGJ1Zj1QeUJVRl9TSU1QTEUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgeC5hZGRfc3Vib2Zmc2V0cykKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfc2xpY2VfemVyb19zaGFwZShzZWxmKToKKyAgICAgICAgaXRlbXMgPSBbMSwyLDMsNCw1LDYsNyw4LDksMTAsMTEsMTJdCisKKyAgICAgICAgeCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVsxMl0sIGZvcm1hdD0iTCIsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICB5ID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzEyXSwgZm9ybWF0PSJMIikKKyAgICAgICAgeFs0OjRdID0geVs5OjldCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC50b2xpc3QoKSwgaXRlbXMpCisKKyAgICAgICAgbWwgPSBtZW1vcnl2aWV3KHgpCisgICAgICAgIG1yID0gbWVtb3J5dmlldyh5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1sLCB4KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1sLCB5KQorICAgICAgICBtbFs0OjRdID0gbXJbOTo5XQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1sLnRvbGlzdCgpLCBpdGVtcykKKworICAgICAgICB4ID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzMsIDRdLCBmb3JtYXQ9IkwiLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgeSA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVs0LCAzXSwgZm9ybWF0PSJMIikKKyAgICAgICAgeFsxOjIsIDI6Ml0gPSB5WzE6MiwgMzozXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgudG9saXN0KCksIGNhcnJheShpdGVtcywgWzMsIDRdKSkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfc2xpY2VfbXVsdGlkaW0oc2VsZik6CisgICAgICAgIHNoYXBlX3QgPSAoMiwgMywgNSkKKyAgICAgICAgbmRpbSA9IGxlbihzaGFwZV90KQorICAgICAgICBuaXRlbXMgPSBwcm9kKHNoYXBlX3QpCisgICAgICAgIGZvciBzaGFwZSBpbiBwZXJtdXRhdGlvbnMoc2hhcGVfdCk6CisKKyAgICAgICAgICAgIGZtdCwgaXRlbXMsIF8gPSByYW5kaXRlbXMobml0ZW1zKQorICAgICAgICAgICAgaXRlbXNpemUgPSBzdHJ1Y3QuY2FsY3NpemUoZm10KQorCisgICAgICAgICAgICBmb3IgZmxhZ3MgaW4gKDAsIE5EX1BJTCk6CisgICAgICAgICAgICAgICAgbmQgPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1zaGFwZSwgZm9ybWF0PWZtdCwgZmxhZ3M9ZmxhZ3MpCisgICAgICAgICAgICAgICAgbHN0ID0gY2FycmF5KGl0ZW1zLCBzaGFwZSkKKworICAgICAgICAgICAgICAgIGZvciBzbGljZXMgaW4gcnNsaWNlc19uZGltKG5kaW0sIHNoYXBlKToKKworICAgICAgICAgICAgICAgICAgICBsaXN0ZXJyID0gTm9uZQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBzbGljZWQgPSBtdWx0aXNsaWNlKGxzdCwgc2xpY2VzKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZXJyID0gZS5fX2NsYXNzX18KKworICAgICAgICAgICAgICAgICAgICBuZGVyciA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgbmRzbGljZWQgPSBuZFtzbGljZXNdCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kZXJyID0gZS5fX2NsYXNzX18KKworICAgICAgICAgICAgICAgICAgICBpZiBuZGVyciBvciBsaXN0ZXJyOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhuZGVyciwgbGlzdGVycikKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmRzbGljZWQudG9saXN0KCksIHNsaWNlZCkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfc2xpY2VfcmVkdW5kYW50X3N1Ym9mZnNldHMoc2VsZik6CisgICAgICAgIHNoYXBlX3QgPSAoMiwgMywgNSwgMikKKyAgICAgICAgbmRpbSA9IGxlbihzaGFwZV90KQorICAgICAgICBuaXRlbXMgPSBwcm9kKHNoYXBlX3QpCisgICAgICAgIGZvciBzaGFwZSBpbiBwZXJtdXRhdGlvbnMoc2hhcGVfdCk6CisKKyAgICAgICAgICAgIGZtdCwgaXRlbXMsIF8gPSByYW5kaXRlbXMobml0ZW1zKQorICAgICAgICAgICAgaXRlbXNpemUgPSBzdHJ1Y3QuY2FsY3NpemUoZm10KQorCisgICAgICAgICAgICBuZCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPXNoYXBlLCBmb3JtYXQ9Zm10KQorICAgICAgICAgICAgbmQuYWRkX3N1Ym9mZnNldHMoKQorICAgICAgICAgICAgZXggPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1zaGFwZSwgZm9ybWF0PWZtdCkKKyAgICAgICAgICAgIGV4LmFkZF9zdWJvZmZzZXRzKCkKKyAgICAgICAgICAgIG12ID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgICAgIGxzdCA9IGNhcnJheShpdGVtcywgc2hhcGUpCisKKyAgICAgICAgICAgIGZvciBzbGljZXMgaW4gcnNsaWNlc19uZGltKG5kaW0sIHNoYXBlKToKKworICAgICAgICAgICAgICAgIGxpc3RlcnIgPSBOb25lCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzbGljZWQgPSBtdWx0aXNsaWNlKGxzdCwgc2xpY2VzKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgbGlzdGVyciA9IGUuX19jbGFzc19fCisKKyAgICAgICAgICAgICAgICBuZGVyciA9IE5vbmUKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG5kc2xpY2VkID0gbmRbc2xpY2VzXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgbmRlcnIgPSBlLl9fY2xhc3NfXworCisgICAgICAgICAgICAgICAgaWYgbmRlcnIgb3IgbGlzdGVycjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhuZGVyciwgbGlzdGVycikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kc2xpY2VkLnRvbGlzdCgpLCBzbGljZWQpCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X3NsaWNlX2Fzc2lnbl9zaW5nbGUoc2VsZik6CisgICAgICAgIGZvciBmbXQsIGl0ZW1zLCBfIGluIGl0ZXJfZm9ybWF0KDUpOgorICAgICAgICAgICAgZm9yIGxzbGljZSBpbiBnZW5zbGljZXMoNSk6CisgICAgICAgICAgICAgICAgZm9yIHJzbGljZSBpbiBnZW5zbGljZXMoNSk6CisgICAgICAgICAgICAgICAgICAgIGZvciBmbGFncyBpbiAoMCwgTkRfUElMKToKKworICAgICAgICAgICAgICAgICAgICAgICAgZiA9IGZsYWdzfE5EX1dSSVRBQkxFCisgICAgICAgICAgICAgICAgICAgICAgICBuZCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVs1XSwgZm9ybWF0PWZtdCwgZmxhZ3M9ZikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4ID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzVdLCBmb3JtYXQ9Zm10LCBmbGFncz1mKQorICAgICAgICAgICAgICAgICAgICAgICAgbXYgPSBtZW1vcnl2aWV3KGV4KQorCisgICAgICAgICAgICAgICAgICAgICAgICBsc3RlcnIgPSBOb25lCisgICAgICAgICAgICAgICAgICAgICAgICBkaWZmX3N0cnVjdHVyZSA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGxzdCA9IGl0ZW1zWzpdCisgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHZhbCA9IGxzdFtsc2xpY2VdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnZhbCA9IGxzdFtyc2xpY2VdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHN0W2xzbGljZV0gPSBsc3RbcnNsaWNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZmZfc3RydWN0dXJlID0gbGVuKGx2YWwpICE9IGxlbihydmFsKQorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxzdGVyciA9IGUuX19jbGFzc19fCisKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kZXJyID0gTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kW2xzbGljZV0gPSBuZFtyc2xpY2VdCisgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRlcnIgPSBlLl9fY2xhc3NfXworCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBkaWZmX3N0cnVjdHVyZTogIyBuZGFycmF5IGNhbm5vdCBjaGFuZ2Ugc2hhcGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzKG5kZXJyLCBWYWx1ZUVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kLnRvbGlzdCgpLCBsc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhuZGVyciwgbHN0ZXJyKQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXNfbWVtb3J5dmlld19mb3JtYXQoZm10KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgICAgICAgICBtdmVyciA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdltsc2xpY2VdID0gbXZbcnNsaWNlXQorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG12ZXJyID0gZS5fX2NsYXNzX18KKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgZGlmZl9zdHJ1Y3R1cmU6ICMgbWVtb3J5dmlldyBjYW5ub3QgY2hhbmdlIHNoYXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhtdmVyciwgVmFsdWVFcnJvcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdi50b2xpc3QoKSwgbHN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXYsIG5kKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMobXZlcnIsIGxzdGVycikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZlcmlmeShtdiwgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9bmQuaXRlbXNpemUsIGZtdD1mbXQsIHJlYWRvbmx5PTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGltPW5kLm5kaW0sIHNoYXBlPW5kLnNoYXBlLCBzdHJpZGVzPW5kLnN0cmlkZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsc3Q9bmQudG9saXN0KCkpCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X3NsaWNlX2Fzc2lnbl9tdWx0aWRpbShzZWxmKToKKyAgICAgICAgc2hhcGVfdCA9ICgyLCAzLCA1KQorICAgICAgICBuZGltID0gbGVuKHNoYXBlX3QpCisgICAgICAgIG5pdGVtcyA9IHByb2Qoc2hhcGVfdCkKKyAgICAgICAgZm9yIHNoYXBlIGluIHBlcm11dGF0aW9ucyhzaGFwZV90KToKKworICAgICAgICAgICAgZm10LCBpdGVtcywgXyA9IHJhbmRpdGVtcyhuaXRlbXMpCisKKyAgICAgICAgICAgIGZvciBmbGFncyBpbiAoMCwgTkRfUElMKToKKyAgICAgICAgICAgICAgICBmb3IgXyBpbiByYW5nZShJVEVSQVRJT05TKToKKyAgICAgICAgICAgICAgICAgICAgbHNsaWNlcywgcnNsaWNlcyA9IHJhbmRzbGljZV9mcm9tX3NoYXBlKG5kaW0sIHNoYXBlKQorCisgICAgICAgICAgICAgICAgICAgIG5kID0gbmRhcnJheShpdGVtcywgc2hhcGU9c2hhcGUsIGZvcm1hdD1mbXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncz1mbGFnc3xORF9XUklUQUJMRSkKKyAgICAgICAgICAgICAgICAgICAgbHN0ID0gY2FycmF5KGl0ZW1zLCBzaGFwZSkKKworICAgICAgICAgICAgICAgICAgICBsaXN0ZXJyID0gTm9uZQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBtdWx0aXNsaWNlX2Fzc2lnbihsc3QsIGxzdCwgbHNsaWNlcywgcnNsaWNlcykKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICAgICAgbGlzdGVyciA9IGUuX19jbGFzc19fCisKKyAgICAgICAgICAgICAgICAgICAgbmRlcnIgPSBOb25lCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kW2xzbGljZXNdID0gbmRbcnNsaWNlc10KKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICAgICAgbmRlcnIgPSBlLl9fY2xhc3NfXworCisgICAgICAgICAgICAgICAgICAgIGlmIG5kZXJyIG9yIGxpc3RlcnI6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzKG5kZXJyLCBsaXN0ZXJyKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZC50b2xpc3QoKSwgcmVzdWx0KQorCisgICAgZGVmIHRlc3RfbmRhcnJheV9yYW5kb20oc2VsZik6CisgICAgICAgICMgY29uc3RydWN0aW9uIG9mIHZhbGlkIGFycmF5cworICAgICAgICBmb3IgXyBpbiByYW5nZShJVEVSQVRJT05TKToKKyAgICAgICAgICAgIGZvciBmbXQgaW4gZm10ZGljdFsnQCddOgorICAgICAgICAgICAgICAgIGl0ZW1zaXplID0gc3RydWN0LmNhbGNzaXplKGZtdCkKKworICAgICAgICAgICAgICAgIHQgPSByYW5kX3N0cnVjdHVyZShpdGVtc2l6ZSwgVHJ1ZSwgbWF4ZGltPU1BWERJTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4c2hhcGU9TUFYU0hBUEUpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHZlcmlmeV9zdHJ1Y3R1cmUoKnQpKQorICAgICAgICAgICAgICAgIGl0ZW1zID0gcmFuZGl0ZW1zX2Zyb21fc3RydWN0dXJlKGZtdCwgdCkKKworICAgICAgICAgICAgICAgIHggPSBuZGFycmF5X2Zyb21fc3RydWN0dXJlKGl0ZW1zLCBmbXQsIHQpCisgICAgICAgICAgICAgICAgeGxpc3QgPSB4LnRvbGlzdCgpCisKKyAgICAgICAgICAgICAgICBtdiA9IG1lbW9yeXZpZXcoeCkKKyAgICAgICAgICAgICAgICBpZiBpc19tZW1vcnl2aWV3X2Zvcm1hdChmbXQpOgorICAgICAgICAgICAgICAgICAgICBtdmxpc3QgPSBtdi50b2xpc3QoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG12bGlzdCwgeGxpc3QpCisKKyAgICAgICAgICAgICAgICBpZiB0WzJdID4gMDoKKyAgICAgICAgICAgICAgICAgICAgIyBuZGltID4gMDogdGVzdCBhZ2FpbnN0IHN1Ym9mZnNldHMgcmVwcmVzZW50YXRpb24uCisgICAgICAgICAgICAgICAgICAgIHkgPSBuZGFycmF5X2Zyb21fc3RydWN0dXJlKGl0ZW1zLCBmbXQsIHQsIGZsYWdzPU5EX1BJTCkKKyAgICAgICAgICAgICAgICAgICAgeWxpc3QgPSB5LnRvbGlzdCgpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeGxpc3QsIHlsaXN0KQorCisgICAgICAgICAgICAgICAgICAgIG12ID0gbWVtb3J5dmlldyh5KQorICAgICAgICAgICAgICAgICAgICBpZiBpc19tZW1vcnl2aWV3X2Zvcm1hdChmbXQpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdiwgeSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG12bGlzdCA9IG12LnRvbGlzdCgpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG12bGlzdCwgeWxpc3QpCisKKyAgICAgICAgICAgICAgICBpZiBudW1weV9hcnJheToKKyAgICAgICAgICAgICAgICAgICAgc2hhcGUgPSB0WzNdCisgICAgICAgICAgICAgICAgICAgIGlmIDAgaW4gc2hhcGU6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZSAjIGh0dHA6Ly9wcm9qZWN0cy5zY2lweS5vcmcvbnVtcHkvdGlja2V0LzE5MTAKKyAgICAgICAgICAgICAgICAgICAgeiA9IG51bXB5X2FycmF5X2Zyb21fc3RydWN0dXJlKGl0ZW1zLCBmbXQsIHQpCisgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5KHgsIG9iaj1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT16Lml0ZW1zaXplLCBmbXQ9Zm10LCByZWFkb25seT0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGltPXoubmRpbSwgc2hhcGU9ei5zaGFwZSwgc3RyaWRlcz16LnN0cmlkZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxzdD16LnRvbGlzdCgpKQorCisgICAgZGVmIHRlc3RfbmRhcnJheV9yYW5kb21faW52YWxpZChzZWxmKToKKyAgICAgICAgIyBleGNlcHRpb25zIGR1cmluZyBjb25zdHJ1Y3Rpb24gb2YgaW52YWxpZCBhcnJheXMKKyAgICAgICAgZm9yIF8gaW4gcmFuZ2UoSVRFUkFUSU9OUyk6CisgICAgICAgICAgICBmb3IgZm10IGluIGZtdGRpY3RbJ0AnXToKKyAgICAgICAgICAgICAgICBpdGVtc2l6ZSA9IHN0cnVjdC5jYWxjc2l6ZShmbXQpCisKKyAgICAgICAgICAgICAgICB0ID0gcmFuZF9zdHJ1Y3R1cmUoaXRlbXNpemUsIEZhbHNlLCBtYXhkaW09TUFYRElNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhzaGFwZT1NQVhTSEFQRSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHZlcmlmeV9zdHJ1Y3R1cmUoKnQpKQorICAgICAgICAgICAgICAgIGl0ZW1zID0gcmFuZGl0ZW1zX2Zyb21fc3RydWN0dXJlKGZtdCwgdCkKKworICAgICAgICAgICAgICAgIG5kZXJyID0gRmFsc2UKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHggPSBuZGFycmF5X2Zyb21fc3RydWN0dXJlKGl0ZW1zLCBmbXQsIHQpCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICBuZGVyciA9IGUuX19jbGFzc19fCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5kZXJyKQorCisgICAgICAgICAgICAgICAgaWYgbnVtcHlfYXJyYXk6CisgICAgICAgICAgICAgICAgICAgIG51bXB5X2VyciA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBudW1weV9hcnJheV9mcm9tX3N0cnVjdHVyZShpdGVtcywgZm10LCB0KQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgICAgICAgICBudW1weV9lcnIgPSBlLl9fY2xhc3NfXworCisgICAgICAgICAgICAgICAgICAgIGlmIDA6ICMgaHR0cDovL3Byb2plY3RzLnNjaXB5Lm9yZy9udW1weS90aWNrZXQvMTkxMAorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG51bXB5X2VycikKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfcmFuZG9tX3NsaWNlX2Fzc2lnbihzZWxmKToKKyAgICAgICAgIyB2YWxpZCBzbGljZSBhc3NpZ25tZW50cworICAgICAgICBmb3IgXyBpbiByYW5nZShJVEVSQVRJT05TKToKKyAgICAgICAgICAgIGZvciBmbXQgaW4gZm10ZGljdFsnQCddOgorICAgICAgICAgICAgICAgIGl0ZW1zaXplID0gc3RydWN0LmNhbGNzaXplKGZtdCkKKworICAgICAgICAgICAgICAgIGxzaGFwZSwgcnNoYXBlLCBsc2xpY2VzLCByc2xpY2VzID0gXAorICAgICAgICAgICAgICAgICAgICByYW5kX2FsaWduZWRfc2xpY2VzKG1heGRpbT1NQVhESU0sIG1heHNoYXBlPU1BWFNIQVBFKQorICAgICAgICAgICAgICAgIHRsID0gcmFuZF9zdHJ1Y3R1cmUoaXRlbXNpemUsIFRydWUsIHNoYXBlPWxzaGFwZSkKKyAgICAgICAgICAgICAgICB0ciA9IHJhbmRfc3RydWN0dXJlKGl0ZW1zaXplLCBUcnVlLCBzaGFwZT1yc2hhcGUpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHZlcmlmeV9zdHJ1Y3R1cmUoKnRsKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodmVyaWZ5X3N0cnVjdHVyZSgqdHIpKQorICAgICAgICAgICAgICAgIGxpdGVtcyA9IHJhbmRpdGVtc19mcm9tX3N0cnVjdHVyZShmbXQsIHRsKQorICAgICAgICAgICAgICAgIHJpdGVtcyA9IHJhbmRpdGVtc19mcm9tX3N0cnVjdHVyZShmbXQsIHRyKQorCisgICAgICAgICAgICAgICAgeGwgPSBuZGFycmF5X2Zyb21fc3RydWN0dXJlKGxpdGVtcywgZm10LCB0bCkKKyAgICAgICAgICAgICAgICB4ciA9IG5kYXJyYXlfZnJvbV9zdHJ1Y3R1cmUocml0ZW1zLCBmbXQsIHRyKQorICAgICAgICAgICAgICAgIHhsW2xzbGljZXNdID0geHJbcnNsaWNlc10KKyAgICAgICAgICAgICAgICB4bGxpc3QgPSB4bC50b2xpc3QoKQorICAgICAgICAgICAgICAgIHhybGlzdCA9IHhyLnRvbGlzdCgpCisKKyAgICAgICAgICAgICAgICBtbCA9IG1lbW9yeXZpZXcoeGwpCisgICAgICAgICAgICAgICAgbXIgPSBtZW1vcnl2aWV3KHhyKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWwudG9saXN0KCksIHhsbGlzdCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1yLnRvbGlzdCgpLCB4cmxpc3QpCisKKyAgICAgICAgICAgICAgICBpZiB0bFsyXSA+IDAgYW5kIHRyWzJdID4gMDoKKyAgICAgICAgICAgICAgICAgICAgIyBuZGltID4gMDogdGVzdCBhZ2FpbnN0IHN1Ym9mZnNldHMgcmVwcmVzZW50YXRpb24uCisgICAgICAgICAgICAgICAgICAgIHlsID0gbmRhcnJheV9mcm9tX3N0cnVjdHVyZShsaXRlbXMsIGZtdCwgdGwsIGZsYWdzPU5EX1BJTCkKKyAgICAgICAgICAgICAgICAgICAgeXIgPSBuZGFycmF5X2Zyb21fc3RydWN0dXJlKHJpdGVtcywgZm10LCB0ciwgZmxhZ3M9TkRfUElMKQorICAgICAgICAgICAgICAgICAgICB5bFtsc2xpY2VzXSA9IHlyW3JzbGljZXNdCisgICAgICAgICAgICAgICAgICAgIHlsbGlzdCA9IHlsLnRvbGlzdCgpCisgICAgICAgICAgICAgICAgICAgIHlybGlzdCA9IHlyLnRvbGlzdCgpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeGxsaXN0LCB5bGxpc3QpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeHJsaXN0LCB5cmxpc3QpCisKKyAgICAgICAgICAgICAgICAgICAgbWwgPSBtZW1vcnl2aWV3KHlsKQorICAgICAgICAgICAgICAgICAgICBtciA9IG1lbW9yeXZpZXcoeXIpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWwudG9saXN0KCksIHlsbGlzdCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtci50b2xpc3QoKSwgeXJsaXN0KQorCisgICAgICAgICAgICAgICAgaWYgbnVtcHlfYXJyYXk6CisgICAgICAgICAgICAgICAgICAgIGlmIDAgaW4gbHNoYXBlIG9yIDAgaW4gcnNoYXBlOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgIyBodHRwOi8vcHJvamVjdHMuc2NpcHkub3JnL251bXB5L3RpY2tldC8xOTEwCisKKyAgICAgICAgICAgICAgICAgICAgemwgPSBudW1weV9hcnJheV9mcm9tX3N0cnVjdHVyZShsaXRlbXMsIGZtdCwgdGwpCisgICAgICAgICAgICAgICAgICAgIHpyID0gbnVtcHlfYXJyYXlfZnJvbV9zdHJ1Y3R1cmUocml0ZW1zLCBmbXQsIHRyKQorICAgICAgICAgICAgICAgICAgICB6bFtsc2xpY2VzXSA9IHpyW3JzbGljZXNdCisKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlzX292ZXJsYXBwaW5nKHRsKSBhbmQgbm90IGlzX292ZXJsYXBwaW5nKHRyKToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgU2xpY2UgYXNzaWdubWVudCBvZiBvdmVybGFwcGluZyBzdHJ1Y3R1cmVzCisgICAgICAgICAgICAgICAgICAgICAgICAjIGlzIHVuZGVmaW5lZCBpbiBOdW1QeS4KKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5KHhsLCBvYmo9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zaXplPXpsLml0ZW1zaXplLCBmbXQ9Zm10LCByZWFkb25seT0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT16bC5uZGltLCBzaGFwZT16bC5zaGFwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlkZXM9emwuc3RyaWRlcywgbHN0PXpsLnRvbGlzdCgpKQorCisgICAgICAgICAgICAgICAgICAgIHNlbGYudmVyaWZ5KHhyLCBvYmo9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9enIuaXRlbXNpemUsIGZtdD1mbXQsIHJlYWRvbmx5PTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kaW09enIubmRpbSwgc2hhcGU9enIuc2hhcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlkZXM9enIuc3RyaWRlcywgbHN0PXpyLnRvbGlzdCgpKQorCisgICAgZGVmIHRlc3RfbmRhcnJheV9yZV9leHBvcnQoc2VsZik6CisgICAgICAgIGl0ZW1zID0gWzEsMiwzLDQsNSw2LDcsOCw5LDEwLDExLDEyXQorCisgICAgICAgIG5kID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzMsNF0sIGZsYWdzPU5EX1BJTCkKKyAgICAgICAgZXggPSBuZGFycmF5KG5kKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleC5mbGFncyAmIE5EX1BJTCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhleC5vYmosIG5kKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4LnN1Ym9mZnNldHMsICgwLCAtMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXguY19jb250aWd1b3VzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGV4LmZfY29udGlndW91cykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShleC5jb250aWd1b3VzKQorCisgICAgZGVmIHRlc3RfbmRhcnJheV96ZXJvX3NoYXBlKHNlbGYpOgorICAgICAgICAjIHplcm9zIGluIHNoYXBlCisgICAgICAgIGZvciBmbGFncyBpbiAoMCwgTkRfUElMKToKKyAgICAgICAgICAgIG5kID0gbmRhcnJheShbMSwyLDNdLCBzaGFwZT1bMF0sIGZsYWdzPWZsYWdzKQorICAgICAgICAgICAgbXYgPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdiwgbmQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kLnRvbGlzdCgpLCBbXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXYudG9saXN0KCksIFtdKQorCisgICAgICAgICAgICBuZCA9IG5kYXJyYXkoWzEsMiwzXSwgc2hhcGU9WzAsMywzXSwgZmxhZ3M9ZmxhZ3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kLnRvbGlzdCgpLCBbXSkKKworICAgICAgICAgICAgbmQgPSBuZGFycmF5KFsxLDIsM10sIHNoYXBlPVszLDAsM10sIGZsYWdzPWZsYWdzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZC50b2xpc3QoKSwgW1tdLCBbXSwgW11dKQorCisgICAgICAgICAgICBuZCA9IG5kYXJyYXkoWzEsMiwzXSwgc2hhcGU9WzMsMywwXSwgZmxhZ3M9ZmxhZ3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kLnRvbGlzdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW1tdLCBbXSwgW11dLCBbW10sIFtdLCBbXV0sIFtbXSwgW10sIFtdXV0pCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X3plcm9fc3RyaWRlcyhzZWxmKToKKyAgICAgICAgIyB6ZXJvIHN0cmlkZXMKKyAgICAgICAgZm9yIGZsYWdzIGluICgwLCBORF9QSUwpOgorICAgICAgICAgICAgbmQgPSBuZGFycmF5KFsxXSwgc2hhcGU9WzVdLCBzdHJpZGVzPVswXSwgZmxhZ3M9ZmxhZ3MpCisgICAgICAgICAgICBtdiA9IG1lbW9yeXZpZXcobmQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG12LCBuZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmQudG9saXN0KCksIFsxLCAxLCAxLCAxLCAxXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXYudG9saXN0KCksIFsxLCAxLCAxLCAxLCAxXSkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfb2Zmc2V0KHNlbGYpOgorICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgyMCkpLCBzaGFwZT1bM10sIG9mZnNldD03KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kLm9mZnNldCwgNykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZC50b2xpc3QoKSwgWzcsOCw5XSkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfbWVtb3J5dmlld19mcm9tX2J1ZmZlcihzZWxmKToKKyAgICAgICAgZm9yIGZsYWdzIGluICgwLCBORF9QSUwpOgorICAgICAgICAgICAgbmQgPSBuZGFycmF5KGxpc3QocmFuZ2UoMykpLCBzaGFwZT1bM10sIGZsYWdzPWZsYWdzKQorICAgICAgICAgICAgbSA9IG5kLm1lbW9yeXZpZXdfZnJvbV9idWZmZXIoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLCBuZCkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfZ2V0X3BvaW50ZXIoc2VsZik6CisgICAgICAgIGZvciBmbGFncyBpbiAoMCwgTkRfUElMKToKKyAgICAgICAgICAgIG5kID0gbmRhcnJheShsaXN0KHJhbmdlKDMpKSwgc2hhcGU9WzNdLCBmbGFncz1mbGFncykKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDMpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmRbaV0sIGdldF9wb2ludGVyKG5kLCBbaV0pKQorCisgICAgZGVmIHRlc3RfbmRhcnJheV90b2xpc3RfbnVsbF9zdHJpZGVzKHNlbGYpOgorICAgICAgICBleCA9IG5kYXJyYXkobGlzdChyYW5nZSgyMCkpLCBzaGFwZT1bMiwyLDVdKQorCisgICAgICAgIG5kID0gbmRhcnJheShleCwgZ2V0YnVmPVB5QlVGX05EfFB5QlVGX0ZPUk1BVCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZC50b2xpc3QoKSwgZXgudG9saXN0KCkpCisKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS50b2xpc3QoKSwgZXgudG9saXN0KCkpCisKKyAgICBkZWYgdGVzdF9uZGFycmF5X2NtcF9jb250aWcoc2VsZik6CisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjbXBfY29udGlnKGIiMTIzIiwgYiI0NTYiKSkKKworICAgICAgICB4ID0gbmRhcnJheShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVszLDRdKQorICAgICAgICB5ID0gbmRhcnJheShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVs0LDNdKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNtcF9jb250aWcoeCwgeSkpCisKKyAgICAgICAgeCA9IG5kYXJyYXkoWzFdLCBzaGFwZT1bMV0sIGZvcm1hdD0iQiIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbXBfY29udGlnKHgsIGInXHgwMScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoY21wX2NvbnRpZyhiJ1x4MDEnLCB4KSkKKworICAgIGRlZiB0ZXN0X25kYXJyYXlfaGFzaChzZWxmKToKKworICAgICAgICBhID0gYXJyYXkuYXJyYXkoJ0wnLCBbMSwyLDNdKQorICAgICAgICBuZCA9IG5kYXJyYXkoYSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaGFzaCwgbmQpCisKKyAgICAgICAgIyBvbmUtZGltZW5zaW9uYWwKKyAgICAgICAgYiA9IGJ5dGVzKGxpc3QocmFuZ2UoMTIpKSkKKworICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMikpLCBzaGFwZT1bMTJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2gobmQpLCBoYXNoKGIpKQorCisgICAgICAgICMgQy1jb250aWd1b3VzCisgICAgICAgIG5kID0gbmRhcnJheShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVszLDRdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2gobmQpLCBoYXNoKGIpKQorCisgICAgICAgIG5kID0gbmRhcnJheShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVszLDIsMl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChuZCksIGhhc2goYikpCisKKyAgICAgICAgIyBGb3J0cmFuIGNvbnRpZ3VvdXMKKyAgICAgICAgYiA9IGJ5dGVzKHRyYW5zcG9zZShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVs0LDNdKSkKKyAgICAgICAgbmQgPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIpKSwgc2hhcGU9WzMsNF0sIGZsYWdzPU5EX0ZPUlRSQU4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChuZCksIGhhc2goYikpCisKKyAgICAgICAgYiA9IGJ5dGVzKHRyYW5zcG9zZShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVsyLDMsMl0pKQorICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMikpLCBzaGFwZT1bMiwzLDJdLCBmbGFncz1ORF9GT1JUUkFOKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2gobmQpLCBoYXNoKGIpKQorCisgICAgICAgICMgc3Vib2Zmc2V0cworICAgICAgICBiID0gYnl0ZXMobGlzdChyYW5nZSgxMikpKQorICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMikpLCBzaGFwZT1bMiwyLDNdLCBmbGFncz1ORF9QSUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChuZCksIGhhc2goYikpCisKKyAgICAgICAgIyBub24tYnl0ZSBmb3JtYXRzCisgICAgICAgIG5kID0gbmRhcnJheShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVsyLDIsM10sIGZvcm1hdD0nTCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChuZCksIGhhc2gobmQudG9ieXRlcygpKSkKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfY29uc3RydWN0aW9uKHNlbGYpOgorCisgICAgICAgIGl0ZW1zX3NoYXBlID0gWyg5LCBbXSksIChbMSwyLDNdLCBbM10pLCAobGlzdChyYW5nZSgyKjMqNSkpLCBbMiwzLDVdKV0KKworICAgICAgICAjIE51bVB5IHN0eWxlLCBDLWNvbnRpZ3VvdXM6CisgICAgICAgIGZvciBpdGVtcywgc2hhcGUgaW4gaXRlbXNfc2hhcGU6CisKKyAgICAgICAgICAgICMgRnJvbSBQRVAtMzExOCBjb21wbGlhbnQgZXhwb3J0ZXI6CisgICAgICAgICAgICBleCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPXNoYXBlKQorICAgICAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobS5jX2NvbnRpZ3VvdXMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobS5jb250aWd1b3VzKQorCisgICAgICAgICAgICBuZGltID0gbGVuKHNoYXBlKQorICAgICAgICAgICAgc3RyaWRlcyA9IHN0cmlkZXNfZnJvbV9zaGFwZShuZGltLCBzaGFwZSwgMSwgJ0MnKQorICAgICAgICAgICAgbHN0ID0gY2FycmF5KGl0ZW1zLCBzaGFwZSkKKworICAgICAgICAgICAgc2VsZi52ZXJpZnkobSwgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9MSwgZm10PSdCJywgcmVhZG9ubHk9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kaW09bmRpbSwgc2hhcGU9c2hhcGUsIHN0cmlkZXM9c3RyaWRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxzdD1sc3QpCisKKyAgICAgICAgICAgICMgRnJvbSBtZW1vcnl2aWV3OgorICAgICAgICAgICAgbTIgPSBtZW1vcnl2aWV3KG0pCisgICAgICAgICAgICBzZWxmLnZlcmlmeShtMiwgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9MSwgZm10PSdCJywgcmVhZG9ubHk9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kaW09bmRpbSwgc2hhcGU9c2hhcGUsIHN0cmlkZXM9c3RyaWRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxzdD1sc3QpCisKKyAgICAgICAgICAgICMgUHlNZW1vcnlWaWV3X0Zyb21CdWZmZXIoKTogbm8gc3RyaWRlcworICAgICAgICAgICAgbmQgPSBuZGFycmF5KGV4LCBnZXRidWY9UHlCVUZfQ09OVElHX1JPfFB5QlVGX0ZPUk1BVCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmQuc3RyaWRlcywgKCkpCisgICAgICAgICAgICBtID0gbmQubWVtb3J5dmlld19mcm9tX2J1ZmZlcigpCisgICAgICAgICAgICBzZWxmLnZlcmlmeShtLCBvYmo9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zaXplPTEsIGZtdD0nQicsIHJlYWRvbmx5PTEsCisgICAgICAgICAgICAgICAgICAgICAgICBuZGltPW5kaW0sIHNoYXBlPXNoYXBlLCBzdHJpZGVzPXN0cmlkZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBsc3Q9bHN0KQorCisgICAgICAgICAgICAjIFB5TWVtb3J5Vmlld19Gcm9tQnVmZmVyKCk6IG5vIGZvcm1hdCwgc2hhcGUsIHN0cmlkZXMKKyAgICAgICAgICAgIG5kID0gbmRhcnJheShleCwgZ2V0YnVmPVB5QlVGX1NJTVBMRSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmQuZm9ybWF0LCAnJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmQuc2hhcGUsICgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZC5zdHJpZGVzLCAoKSkKKyAgICAgICAgICAgIG0gPSBuZC5tZW1vcnl2aWV3X2Zyb21fYnVmZmVyKCkKKworICAgICAgICAgICAgbHN0ID0gW2l0ZW1zXSBpZiBuZGltID09IDAgZWxzZSBpdGVtcworICAgICAgICAgICAgc2VsZi52ZXJpZnkobSwgb2JqPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT0xLCBmbXQ9J0InLCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT0xLCBzaGFwZT1bZXgubmJ5dGVzXSwgc3RyaWRlcz0oMSwpLAorICAgICAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCkKKworICAgICAgICAjIE51bVB5IHN0eWxlLCBGb3J0cmFuIGNvbnRpZ3VvdXM6CisgICAgICAgIGZvciBpdGVtcywgc2hhcGUgaW4gaXRlbXNfc2hhcGU6CisKKyAgICAgICAgICAgICMgRnJvbSBQRVAtMzExOCBjb21wbGlhbnQgZXhwb3J0ZXI6CisgICAgICAgICAgICBleCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPXNoYXBlLCBmbGFncz1ORF9GT1JUUkFOKQorICAgICAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobS5mX2NvbnRpZ3VvdXMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobS5jb250aWd1b3VzKQorCisgICAgICAgICAgICBuZGltID0gbGVuKHNoYXBlKQorICAgICAgICAgICAgc3RyaWRlcyA9IHN0cmlkZXNfZnJvbV9zaGFwZShuZGltLCBzaGFwZSwgMSwgJ0YnKQorICAgICAgICAgICAgbHN0ID0gZmFycmF5KGl0ZW1zLCBzaGFwZSkKKworICAgICAgICAgICAgc2VsZi52ZXJpZnkobSwgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9MSwgZm10PSdCJywgcmVhZG9ubHk9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kaW09bmRpbSwgc2hhcGU9c2hhcGUsIHN0cmlkZXM9c3RyaWRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxzdD1sc3QpCisKKyAgICAgICAgICAgICMgRnJvbSBtZW1vcnl2aWV3OgorICAgICAgICAgICAgbTIgPSBtZW1vcnl2aWV3KG0pCisgICAgICAgICAgICBzZWxmLnZlcmlmeShtMiwgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9MSwgZm10PSdCJywgcmVhZG9ubHk9MSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5kaW09bmRpbSwgc2hhcGU9c2hhcGUsIHN0cmlkZXM9c3RyaWRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxzdD1sc3QpCisKKyAgICAgICAgIyBQSUwgc3R5bGU6CisgICAgICAgIGZvciBpdGVtcywgc2hhcGUgaW4gaXRlbXNfc2hhcGVbMTpdOgorCisgICAgICAgICAgICAjIEZyb20gUEVQLTMxMTggY29tcGxpYW50IGV4cG9ydGVyOgorICAgICAgICAgICAgZXggPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1zaGFwZSwgZmxhZ3M9TkRfUElMKQorICAgICAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisKKyAgICAgICAgICAgIG5kaW0gPSBsZW4oc2hhcGUpCisgICAgICAgICAgICBsc3QgPSBjYXJyYXkoaXRlbXMsIHNoYXBlKQorCisgICAgICAgICAgICBzZWxmLnZlcmlmeShtLCBvYmo9ZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT0xLCBmbXQ9J0InLCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT1uZGltLCBzaGFwZT1zaGFwZSwgc3RyaWRlcz1leC5zdHJpZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCkKKworICAgICAgICAgICAgIyBGcm9tIG1lbW9yeXZpZXc6CisgICAgICAgICAgICBtMiA9IG1lbW9yeXZpZXcobSkKKyAgICAgICAgICAgIHNlbGYudmVyaWZ5KG0yLCBvYmo9ZXgsCisgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT0xLCBmbXQ9J0InLCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT1uZGltLCBzaGFwZT1zaGFwZSwgc3RyaWRlcz1leC5zdHJpZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCkKKworICAgICAgICAjIEludmFsaWQgbnVtYmVyIG9mIGFyZ3VtZW50czoKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtZW1vcnl2aWV3LCBiJzknLCAneCcpCisgICAgICAgICMgTm90IGEgYnVmZmVyIHByb3ZpZGVyOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1lbW9yeXZpZXcsIHt9KQorICAgICAgICAjIE5vbi1jb21wbGlhbnQgYnVmZmVyIHByb3ZpZGVyOgorICAgICAgICBleCA9IG5kYXJyYXkoWzEsMiwzXSwgc2hhcGU9WzNdKQorICAgICAgICBuZCA9IG5kYXJyYXkoZXgsIGdldGJ1Zj1QeUJVRl9TSU1QTEUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBtZW1vcnl2aWV3LCBuZCkKKyAgICAgICAgbmQgPSBuZGFycmF5KGV4LCBnZXRidWY9UHlCVUZfQ09OVElHX1JPfFB5QlVGX0ZPUk1BVCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG1lbW9yeXZpZXcsIG5kKQorCisgICAgICAgICMgbmRpbSA+IDY0CisgICAgICAgIG5kID0gbmRhcnJheShbMV0qMTI4LCBzaGFwZT1bMV0qMTI4LCBmb3JtYXQ9J0wnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtZW1vcnl2aWV3LCBuZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbmQubWVtb3J5dmlld19mcm9tX2J1ZmZlcikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZ2V0X2NvbnRpZ3VvdXMsIG5kLCBQeUJVRl9SRUFELCAnQycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGdldF9jb250aWd1b3VzLCBuZCwgUHlCVUZfUkVBRCwgJ0YnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBnZXRfY29udGlndW91cywgbmRbOjotMV0sIFB5QlVGX1JFQUQsICdDJykKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfY2FzdF96ZXJvX3NoYXBlKHNlbGYpOgorICAgICAgICAjIENhc3RzIGFyZSB1bmRlZmluZWQgaWYgc2hhcGUgY29udGFpbnMgemVyb3MuIFRoZXNlIGFycmF5cyBhcmUKKyAgICAgICAgIyByZWdhcmRlZCBhcyBDLWNvbnRpZ3VvdXMgYnkgTnVtcHkgYW5kIFB5QnVmZmVyX0dldENvbnRpZ3VvdXMoKSwKKyAgICAgICAgIyBzbyB0aGV5IGFyZSBub3QgY2F1Z2h0IGJ5IHRoZSB0ZXN0IGZvciBDLWNvbnRpZ3VpdHkgaW4gbWVtb3J5X2Nhc3QoKS4KKyAgICAgICAgaXRlbXMgPSBbMSwyLDNdCisgICAgICAgIGZvciBzaGFwZSBpbiAoWzAsMywzXSwgWzMsMCwzXSwgWzAsMywzXSk6CisgICAgICAgICAgICBleCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPXNoYXBlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4LmNfY29udGlndW91cykKKyAgICAgICAgICAgIG1zcmMgPSBtZW1vcnl2aWV3KGV4KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtc3JjLmNhc3QsICdjJykKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfc3RydWN0X21vZHVsZShzZWxmKToKKworICAgICAgICBjbGFzcyBJTlQob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWwpOgorICAgICAgICAgICAgICAgIHNlbGYudmFsID0gdmFsCisgICAgICAgICAgICBkZWYgX19pbnRfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi52YWwKKworICAgICAgICBjbGFzcyBJRFgob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWwpOgorICAgICAgICAgICAgICAgIHNlbGYudmFsID0gdmFsCisgICAgICAgICAgICBkZWYgX19pbmRleF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnZhbAorCisgICAgICAgIGRlZiBmKCk6IHJldHVybiA3CisKKyAgICAgICAgdmFsdWVzID0gW0lOVCg5KSwgSURYKDkpLAorICAgICAgICAgICAgICAgICAgMi4yKzNqLCBEZWNpbWFsKCItMjEuMSIpLCAxMi4yLCBGcmFjdGlvbig1LCAyKSwKKyAgICAgICAgICAgICAgICAgIFsxLDIsM10sIHs0LDUsNn0sIHs3Ojh9LCAoKSwgKDksKSwKKyAgICAgICAgICAgICAgICAgIFRydWUsIEZhbHNlLCBOb25lLCBOb3RJbXBsZW1lbnRlZCwKKyAgICAgICAgICAgICAgICAgIGInYScsIGInYWJjJywgYnl0ZWFycmF5KGInYScpLCBieXRlYXJyYXkoYidhYmMnKSwKKyAgICAgICAgICAgICAgICAgICdhJywgJ2FiYycsIHInYScsIHInYWJjJywKKyAgICAgICAgICAgICAgICAgIGYsIGxhbWJkYSB4OiB4XQorCisgICAgICAgIGZvciBmbXQsIGl0ZW1zLCBpdGVtIGluIGl0ZXJfZm9ybWF0KDEwLCAnbWVtb3J5dmlldycpOgorICAgICAgICAgICAgZXggPSBuZGFycmF5KGl0ZW1zLCBzaGFwZT1bMTBdLCBmb3JtYXQ9Zm10LCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgICAgIG5kID0gbmRhcnJheShpdGVtcywgc2hhcGU9WzEwXSwgZm9ybWF0PWZtdCwgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKworICAgICAgICAgICAgc3RydWN0LnBhY2tfaW50byhmbXQsIG5kLCAwLCBpdGVtKQorICAgICAgICAgICAgbVswXSA9IGl0ZW0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVswXSwgbmRbMF0pCisKKyAgICAgICAgICAgIGl0ZW1zaXplID0gc3RydWN0LmNhbGNzaXplKGZtdCkKKyAgICAgICAgICAgIGlmICdQJyBpbiBmbXQ6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgZm9yIHYgaW4gdmFsdWVzOgorICAgICAgICAgICAgICAgIHN0cnVjdF9lcnIgPSBOb25lCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QucGFja19pbnRvKGZtdCwgbmQsIGl0ZW1zaXplLCB2KQorICAgICAgICAgICAgICAgIGV4Y2VwdCBzdHJ1Y3QuZXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHN0cnVjdF9lcnIgPSBzdHJ1Y3QuZXJyb3IKKworICAgICAgICAgICAgICAgIG12X2VyciA9IE5vbmUKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG1bMV0gPSB2CisgICAgICAgICAgICAgICAgZXhjZXB0IChUeXBlRXJyb3IsIFZhbHVlRXJyb3IpIGFzIGU6CisgICAgICAgICAgICAgICAgICAgIG12X2VyciA9IGUuX19jbGFzc19fCisKKyAgICAgICAgICAgICAgICBpZiBzdHJ1Y3RfZXJyIG9yIG12X2VycjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdChzdHJ1Y3RfZXJyLCBOb25lKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90KG12X2VyciwgTm9uZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bMV0sIG5kWzFdKQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19jYXN0X3plcm9fc3RyaWRlcyhzZWxmKToKKyAgICAgICAgIyBDYXN0cyBhcmUgdW5kZWZpbmVkIGlmIHN0cmlkZXMgY29udGFpbnMgemVyb3MuIFRoZXNlIGFycmF5cyBhcmUKKyAgICAgICAgIyAoc29tZXRpbWVzISkgcmVnYXJkZWQgYXMgQy1jb250aWd1b3VzIGJ5IE51bXB5LCBidXQgbm90IGJ5CisgICAgICAgICMgUHlCdWZmZXJfR2V0Q29udGlndW91cygpLgorICAgICAgICBleCA9IG5kYXJyYXkoWzEsMiwzXSwgc2hhcGU9WzNdLCBzdHJpZGVzPVswXSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShleC5jX2NvbnRpZ3VvdXMpCisgICAgICAgIG1zcmMgPSBtZW1vcnl2aWV3KGV4KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1zcmMuY2FzdCwgJ2MnKQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19jYXN0X2ludmFsaWQoc2VsZik6CisgICAgICAgICMgaW52YWxpZCBmb3JtYXQKKyAgICAgICAgZm9yIHNmbXQgaW4gTk9OX0JZVEVfRk9STUFUOgorICAgICAgICAgICAgc2Zvcm1hdCA9ICdAJyArIHNmbXQgaWYgcmFuZHJhbmdlKDIpIGVsc2Ugc2ZtdAorICAgICAgICAgICAgc3NpemUgPSBzdHJ1Y3QuY2FsY3NpemUoc2Zvcm1hdCkKKyAgICAgICAgICAgIGZvciBkZm10IGluIE5PTl9CWVRFX0ZPUk1BVDoKKyAgICAgICAgICAgICAgICBkZm9ybWF0ID0gJ0AnICsgZGZtdCBpZiByYW5kcmFuZ2UoMikgZWxzZSBkZm10CisgICAgICAgICAgICAgICAgZHNpemUgPSBzdHJ1Y3QuY2FsY3NpemUoZGZvcm1hdCkKKyAgICAgICAgICAgICAgICBleCA9IG5kYXJyYXkobGlzdChyYW5nZSgzMikpLCBzaGFwZT1bMzIvL3NzaXplXSwgZm9ybWF0PXNmb3JtYXQpCisgICAgICAgICAgICAgICAgbXNyYyA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtc3JjLmNhc3QsIGRmbXQsIFszMi8vZHNpemVdKQorCisgICAgICAgIGZvciBzZm10LCBzaXRlbXMsIF8gaW4gaXRlcl9mb3JtYXQoMSk6CisgICAgICAgICAgICBleCA9IG5kYXJyYXkoc2l0ZW1zLCBzaGFwZT1bMV0sIGZvcm1hdD1zZm10KQorICAgICAgICAgICAgbXNyYyA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgICAgICBmb3IgZGZtdCwgXywgXyBpbiBpdGVyX2Zvcm1hdCgxKToKKyAgICAgICAgICAgICAgICBpZiAobm90IGlzX21lbW9yeXZpZXdfZm9ybWF0KHNmbXQpIG9yCisgICAgICAgICAgICAgICAgICAgIG5vdCBpc19tZW1vcnl2aWV3X2Zvcm1hdChkZm10KSk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG1zcmMuY2FzdCwgZGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzMyLy9kc2l6ZV0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGlzX2J5dGVfZm9ybWF0KHNmbXQpIGFuZCBub3QgaXNfYnl0ZV9mb3JtYXQoZGZtdCk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1zcmMuY2FzdCwgZGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFszMi8vZHNpemVdKQorCisgICAgICAgICMgaW52YWxpZCBzaGFwZQorICAgICAgICBzaXplX2ggPSBzdHJ1Y3QuY2FsY3NpemUoJ2gnKQorICAgICAgICBzaXplX2QgPSBzdHJ1Y3QuY2FsY3NpemUoJ2QnKQorICAgICAgICBleCA9IG5kYXJyYXkobGlzdChyYW5nZSgyKjIqc2l6ZV9kKSksIHNoYXBlPVsyLDIsc2l6ZV9kXSwgZm9ybWF0PSdoJykKKyAgICAgICAgbXNyYyA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbXNyYy5jYXN0LCBzaGFwZT1bMiwyLHNpemVfaF0sIGZvcm1hdD0nZCcpCisKKyAgICAgICAgZXggPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIwKSksIHNoYXBlPVsxLDIsMyw0LDVdKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKworICAgICAgICAjIGluY29ycmVjdCBudW1iZXIgb2YgYXJncworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG0uY2FzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLmNhc3QsIDEsIDIsIDMpCisKKyAgICAgICAgIyBpbmNvcnJlY3QgZGVzdCBmb3JtYXQgdHlwZQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG0uY2FzdCwge30pCisKKyAgICAgICAgIyBpbmNvcnJlY3QgZGVzdCBmb3JtYXQKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbS5jYXN0LCAiWCIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG0uY2FzdCwgIkBYIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbS5jYXN0LCAiQFhZIikKKworICAgICAgICAjIGRlc3QgZm9ybWF0IG5vdCBpbXBsZW1lbnRlZAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtLmNhc3QsICI9QiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG0uY2FzdCwgIiFMIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbS5jYXN0LCAiPFAiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtLmNhc3QsICI+bCIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG0uY2FzdCwgIkJJIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbS5jYXN0LCAieEJJIikKKworICAgICAgICAjIHNyYyBmb3JtYXQgbm90IGltcGxlbWVudGVkCisgICAgICAgIGV4ID0gbmRhcnJheShbKDEsMiksICgzLDQpXSwgc2hhcGU9WzJdLCBmb3JtYXQ9IklJIikKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG0uX19nZXRpdGVtX18sIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG0uX19zZXRpdGVtX18sIDAsIDgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG0udG9saXN0KQorCisgICAgICAgICMgaW5jb3JyZWN0IHNoYXBlIHR5cGUKKyAgICAgICAgZXggPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIwKSksIHNoYXBlPVsxLDIsMyw0LDVdKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLmNhc3QsICJCIiwgc2hhcGU9e30pCisKKyAgICAgICAgIyBpbmNvcnJlY3Qgc2hhcGUgZWxlbWVudHMKKyAgICAgICAgZXggPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIwKSksIHNoYXBlPVsyKjMqNCo1XSkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIG0uY2FzdCwgIkIiLCBzaGFwZT1bMioqNjRdKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtLmNhc3QsICJCIiwgc2hhcGU9Wy0xXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbS5jYXN0LCAiQiIsIHNoYXBlPVsyLDMsNCw1LDYsNywtMV0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG0uY2FzdCwgIkIiLCBzaGFwZT1bMiwzLDQsNSw2LDcsMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbS5jYXN0LCAiQiIsIHNoYXBlPVsyLDMsNCw1LDYsNywneCddKQorCisgICAgICAgICMgTi1EIC0+IE4tRCBjYXN0CisgICAgICAgIGV4ID0gbmRhcnJheShsaXN0KFs5IGZvciBfIGluIHJhbmdlKDMqNSo3KjExKV0pLCBzaGFwZT1bMyw1LDcsMTFdKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLmNhc3QsICJJIiwgc2hhcGU9WzIsMyw0LDVdKQorCisgICAgICAgICMgY2FzdCB3aXRoIG5kaW0gPiA2NAorICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMjgpKSwgc2hhcGU9WzEyOF0sIGZvcm1hdD0nSScpCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtLmNhc3QsICdJJywgWzFdKjEyOCkKKworICAgICAgICAjIHZpZXctPmxlbiBub3QgYSBtdWx0aXBsZSBvZiBpdGVtc2l6ZQorICAgICAgICBleCA9IG5kYXJyYXkobGlzdChbOSBmb3IgXyBpbiByYW5nZSgzKjUqNyoxMSldKSwgc2hhcGU9WzMqNSo3KjExXSkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbS5jYXN0LCAiSSIsIHNoYXBlPVsyLDMsNCw1XSkKKworICAgICAgICAjIHByb2R1Y3Qoc2hhcGUpICogaXRlbXNpemUgIT0gYnVmZmVyIHNpemUKKyAgICAgICAgZXggPSBuZGFycmF5KGxpc3QoWzkgZm9yIF8gaW4gcmFuZ2UoMyo1KjcqMTEpXSksIHNoYXBlPVszKjUqNyoxMV0pCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KGV4KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG0uY2FzdCwgIkIiLCBzaGFwZT1bMiwzLDQsNV0pCisKKyAgICAgICAgIyBwcm9kdWN0KHNoYXBlKSAqIGl0ZW1zaXplIG92ZXJmbG93CisgICAgICAgIG5kID0gbmRhcnJheShsaXN0KHJhbmdlKDEyOCkpLCBzaGFwZT1bMTI4XSwgZm9ybWF0PSdJJykKKyAgICAgICAgbTEgPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMjgpKSwgc2hhcGU9WzEyOF0sIGZvcm1hdD0nQicpCisgICAgICAgIG0yID0gbWVtb3J5dmlldyhuZCkKKyAgICAgICAgaWYgc3lzLm1heHNpemUgPT0gMioqNjMtMToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbTEuY2FzdCwgJ0InLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzcsIDcsIDczLCAxMjcsIDMzNywgOTI3MzcsIDY0OTY1N10pCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtMS5jYXN0LCAnQicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMioqMjAsIDIqKjIwLCAyKioxMCwgMioqMTAsIDIqKjNdKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbTIuY2FzdCwgJ0knLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzIqKjIwLCAyKioyMCwgMioqMTAsIDIqKjEwLCAyKioxXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbTEuY2FzdCwgJ0InLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzEsIDIxNDc0ODM2NDddKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbTEuY2FzdCwgJ0InLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWzIqKjEwLCAyKioxMCwgMioqNSwgMioqNSwgMioqMV0pCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtMi5jYXN0LCAnSScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbMioqMTAsIDIqKjEwLCAyKio1LCAyKiozLCAyKioxXSkKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfY2FzdChzZWxmKToKKyAgICAgICAgYnl0ZXNwZWMgPSAoCisgICAgICAgICAgKCdCJywgbGFtYmRhIGV4OiBsaXN0KGV4LnRvYnl0ZXMoKSkpLAorICAgICAgICAgICgnYicsIGxhbWJkYSBleDogW3gtMjU2IGlmIHggPiAxMjcgZWxzZSB4IGZvciB4IGluIGxpc3QoZXgudG9ieXRlcygpKV0pLAorICAgICAgICAgICgnYycsIGxhbWJkYSBleDogW2J5dGVzKGNocih4KSwgJ2xhdGluLTEnKSBmb3IgeCBpbiBsaXN0KGV4LnRvYnl0ZXMoKSldKSwKKyAgICAgICAgKQorCisgICAgICAgIGRlZiBpdGVyX3JvdW5kdHJpcChleCwgbSwgaXRlbXMsIGZtdCk6CisgICAgICAgICAgICBzcmNzaXplID0gc3RydWN0LmNhbGNzaXplKGZtdCkKKyAgICAgICAgICAgIGZvciBieXRlZm10LCB0b19ieXRlbGlzdCBpbiBieXRlc3BlYzoKKworICAgICAgICAgICAgICAgIG0yID0gbS5jYXN0KGJ5dGVmbXQpCisgICAgICAgICAgICAgICAgbHN0ID0gdG9fYnl0ZWxpc3QoZXgpCisgICAgICAgICAgICAgICAgc2VsZi52ZXJpZnkobTIsIG9iaj1leCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT0xLCBmbXQ9Ynl0ZWZtdCwgcmVhZG9ubHk9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGltPTEsIHNoYXBlPVszMSpzcmNzaXplXSwgc3RyaWRlcz0oMSwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxzdD1sc3QsIGNhc3Q9VHJ1ZSkKKworICAgICAgICAgICAgICAgIG0zID0gbTIuY2FzdChmbXQpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMywgZXgpCisgICAgICAgICAgICAgICAgbHN0ID0gZXgudG9saXN0KCkKKyAgICAgICAgICAgICAgICBzZWxmLnZlcmlmeShtMywgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zaXplPXNyY3NpemUsIGZtdD1mbXQsIHJlYWRvbmx5PTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmRpbT0xLCBzaGFwZT1bMzFdLCBzdHJpZGVzPShzcmNzaXplLCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCwgY2FzdD1UcnVlKQorCisgICAgICAgICMgY2FzdCBmcm9tIG5kaW0gPSAwIHRvIG5kaW0gPSAxCisgICAgICAgIHNyY3NpemUgPSBzdHJ1Y3QuY2FsY3NpemUoJ0knKQorICAgICAgICBleCA9IG5kYXJyYXkoOSwgc2hhcGU9W10sIGZvcm1hdD0nSScpCisgICAgICAgIGRlc3RpdGVtcywgZGVzdHNoYXBlID0gY2FzdF9pdGVtcyhleCwgJ0InLCAxKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgbTIgPSBtLmNhc3QoJ0InKQorICAgICAgICBzZWxmLnZlcmlmeShtMiwgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT0xLCBmbXQ9J0InLCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICBuZGltPTEsIHNoYXBlPWRlc3RzaGFwZSwgc3RyaWRlcz0oMSwpLAorICAgICAgICAgICAgICAgICAgICBsc3Q9ZGVzdGl0ZW1zLCBjYXN0PVRydWUpCisKKyAgICAgICAgIyBjYXN0IGZyb20gbmRpbSA9IDEgdG8gbmRpbSA9IDAKKyAgICAgICAgZGVzdHNpemUgPSBzdHJ1Y3QuY2FsY3NpemUoJ0knKQorICAgICAgICBleCA9IG5kYXJyYXkoWzldKmRlc3RzaXplLCBzaGFwZT1bZGVzdHNpemVdLCBmb3JtYXQ9J0InKQorICAgICAgICBkZXN0aXRlbXMsIGRlc3RzaGFwZSA9IGNhc3RfaXRlbXMoZXgsICdJJywgZGVzdHNpemUsIHNoYXBlPVtdKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgbTIgPSBtLmNhc3QoJ0knLCBzaGFwZT1bXSkKKyAgICAgICAgc2VsZi52ZXJpZnkobTIsIG9iaj1leCwKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9ZGVzdHNpemUsIGZtdD0nSScsIHJlYWRvbmx5PTEsCisgICAgICAgICAgICAgICAgICAgIG5kaW09MCwgc2hhcGU9KCksIHN0cmlkZXM9KCksCisgICAgICAgICAgICAgICAgICAgIGxzdD1kZXN0aXRlbXMsIGNhc3Q9VHJ1ZSkKKworICAgICAgICAjIGFycmF5LmFycmF5OiByb3VuZHRyaXAgdG8vZnJvbSBieXRlcworICAgICAgICBmb3IgZm10LCBpdGVtcywgXyBpbiBpdGVyX2Zvcm1hdCgzMSwgJ2FycmF5Jyk6CisgICAgICAgICAgICBleCA9IGFycmF5LmFycmF5KGZtdCwgaXRlbXMpCisgICAgICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgICAgIGl0ZXJfcm91bmR0cmlwKGV4LCBtLCBpdGVtcywgZm10KQorCisgICAgICAgICMgbmRhcnJheTogcm91bmR0cmlwIHRvL2Zyb20gYnl0ZXMKKyAgICAgICAgZm9yIGZtdCwgaXRlbXMsIF8gaW4gaXRlcl9mb3JtYXQoMzEsICdtZW1vcnl2aWV3Jyk6CisgICAgICAgICAgICBleCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVszMV0sIGZvcm1hdD1mbXQsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgICAgICBpdGVyX3JvdW5kdHJpcChleCwgbSwgaXRlbXMsIGZtdCkKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfY2FzdF8xRF9ORChzZWxmKToKKyAgICAgICAgIyBDYXN0IGJldHdlZW4gQy1jb250aWd1b3VzIGJ1ZmZlcnMuIEF0IGxlYXN0IG9uZSBidWZmZXIgbXVzdAorICAgICAgICAjIGJlIDFELCBhdCBsZWFzdCBvbmUgZm9ybWF0IG11c3QgYmUgJ2MnLCAnYicgb3IgJ0InLgorICAgICAgICBmb3IgX3RzaGFwZSBpbiBnZW5jYXN0c2hhcGVzKCk6CisgICAgICAgICAgICBmb3IgY2hhciBpbiBmbXRkaWN0WydAJ106CisgICAgICAgICAgICAgICAgdGZtdCA9ICgnJywgJ0AnKVtyYW5kcmFuZ2UoMildICsgY2hhcgorICAgICAgICAgICAgICAgIHRzaXplID0gc3RydWN0LmNhbGNzaXplKHRmbXQpCisgICAgICAgICAgICAgICAgbiA9IHByb2QoX3RzaGFwZSkgKiB0c2l6ZQorICAgICAgICAgICAgICAgIG9iaiA9ICdtZW1vcnl2aWV3JyBpZiBpc19ieXRlX2Zvcm1hdCh0Zm10KSBlbHNlICdieXRlZm10JworICAgICAgICAgICAgICAgIGZvciBmbXQsIGl0ZW1zLCBfIGluIGl0ZXJfZm9ybWF0KG4sIG9iaik6CisgICAgICAgICAgICAgICAgICAgIHNpemUgPSBzdHJ1Y3QuY2FsY3NpemUoZm10KQorICAgICAgICAgICAgICAgICAgICBzaGFwZSA9IFtuXSBpZiBuID4gMCBlbHNlIFtdCisgICAgICAgICAgICAgICAgICAgIHRzaGFwZSA9IF90c2hhcGUgKyBbc2l6ZV0KKworICAgICAgICAgICAgICAgICAgICBleCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPXNoYXBlLCBmb3JtYXQ9Zm10KQorICAgICAgICAgICAgICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKworICAgICAgICAgICAgICAgICAgICB0aXRlbXMsIHRzaGFwZSA9IGNhc3RfaXRlbXMoZXgsIHRmbXQsIHRzaXplLCBzaGFwZT10c2hhcGUpCisKKyAgICAgICAgICAgICAgICAgICAgaWYgdGl0ZW1zIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG0uY2FzdCwgdGZtdCwgdHNoYXBlKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgaWYgdGl0ZW1zID09ICduYW4nOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUgIyBOYU5zIGluIGxpc3RzIGFyZSBhIHJlY2lwZSBmb3IgdHJvdWJsZS4KKworICAgICAgICAgICAgICAgICAgICAjIDFEIC0+IE5ECisgICAgICAgICAgICAgICAgICAgIG5kID0gbmRhcnJheSh0aXRlbXMsIHNoYXBlPXRzaGFwZSwgZm9ybWF0PXRmbXQpCisKKyAgICAgICAgICAgICAgICAgICAgbTIgPSBtLmNhc3QodGZtdCwgc2hhcGU9dHNoYXBlKQorICAgICAgICAgICAgICAgICAgICBuZGltID0gbGVuKHRzaGFwZSkKKyAgICAgICAgICAgICAgICAgICAgc3RyaWRlcyA9IG5kLnN0cmlkZXMKKyAgICAgICAgICAgICAgICAgICAgbHN0ID0gbmQudG9saXN0KCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi52ZXJpZnkobTIsIG9iaj1leCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9dHNpemUsIGZtdD10Zm10LCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGltPW5kaW0sIHNoYXBlPXRzaGFwZSwgc3RyaWRlcz1zdHJpZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsc3Q9bHN0LCBjYXN0PVRydWUpCisKKyAgICAgICAgICAgICAgICAgICAgIyBORCAtPiAxRAorICAgICAgICAgICAgICAgICAgICBtMyA9IG0yLmNhc3QoZm10KQorICAgICAgICAgICAgICAgICAgICBtNCA9IG0yLmNhc3QoZm10LCBzaGFwZT1zaGFwZSkKKyAgICAgICAgICAgICAgICAgICAgbmRpbSA9IGxlbihzaGFwZSkKKyAgICAgICAgICAgICAgICAgICAgc3RyaWRlcyA9IGV4LnN0cmlkZXMKKyAgICAgICAgICAgICAgICAgICAgbHN0ID0gZXgudG9saXN0KCkKKworICAgICAgICAgICAgICAgICAgICBzZWxmLnZlcmlmeShtMywgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT1zaXplLCBmbXQ9Zm10LCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGltPW5kaW0sIHNoYXBlPXNoYXBlLCBzdHJpZGVzPXN0cmlkZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxzdD1sc3QsIGNhc3Q9VHJ1ZSkKKworICAgICAgICAgICAgICAgICAgICBzZWxmLnZlcmlmeShtNCwgb2JqPWV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT1zaXplLCBmbXQ9Zm10LCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGltPW5kaW0sIHNoYXBlPXNoYXBlLCBzdHJpZGVzPXN0cmlkZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxzdD1sc3QsIGNhc3Q9VHJ1ZSkKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfdG9saXN0KHNlbGYpOgorCisgICAgICAgICMgTW9zdCB0b2xpc3QoKSB0ZXN0cyBhcmUgaW4gc2VsZi52ZXJpZnkoKSBldGMuCisKKyAgICAgICAgYSA9IGFycmF5LmFycmF5KCdoJywgbGlzdChyYW5nZSgtNiwgNikpKQorICAgICAgICBtID0gbWVtb3J5dmlldyhhKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIGEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS50b2xpc3QoKSwgYS50b2xpc3QoKSkKKworICAgICAgICBhID0gYVsyOjozXQorICAgICAgICBtID0gbVsyOjozXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIGEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS50b2xpc3QoKSwgYS50b2xpc3QoKSkKKworICAgICAgICBleCA9IG5kYXJyYXkobGlzdChyYW5nZSgyKjMqNSo3KjExKSksIHNoYXBlPVsxMSwyLDcsMyw1XSwgZm9ybWF0PSdMJykKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS50b2xpc3QoKSwgZXgudG9saXN0KCkpCisKKyAgICAgICAgZXggPSBuZGFycmF5KFsoMiwgNSksICg3LCAxMSldLCBzaGFwZT1bMl0sIGZvcm1hdD0nbGgnKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgbS50b2xpc3QpCisKKyAgICAgICAgZXggPSBuZGFycmF5KFtiJzEyMzQ1J10sIHNoYXBlPVsxXSwgZm9ybWF0PSJzIikKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG0udG9saXN0KQorCisgICAgICAgIGV4ID0gbmRhcnJheShbYiJhIixiImIiLGIiYyIsYiJkIixiImUiLGIiZiJdLCBzaGFwZT1bMiwzXSwgZm9ybWF0PSdzJykKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG0udG9saXN0KQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19yZXByKHNlbGYpOgorICAgICAgICBtID0gbWVtb3J5dmlldyhieXRlYXJyYXkoOSkpCisgICAgICAgIHIgPSBtLl9fcmVwcl9fKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHIuc3RhcnRzd2l0aCgiPG1lbW9yeSIpKQorCisgICAgICAgIG0ucmVsZWFzZSgpCisgICAgICAgIHIgPSBtLl9fcmVwcl9fKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHIuc3RhcnRzd2l0aCgiPHJlbGVhc2VkIikpCisKKyAgICBkZWYgdGVzdF9tZW1vcnl2aWV3X3NlcXVlbmNlKHNlbGYpOgorCisgICAgICAgIGZvciBmbXQgaW4gKCdkJywgJ2YnKToKKyAgICAgICAgICAgIGluZiA9IGZsb2F0KDNlNDAwKQorICAgICAgICAgICAgZXggPSBhcnJheS5hcnJheShmbXQsIFsxLjAsIGluZiwgMy4wXSkKKyAgICAgICAgICAgIG0gPSBtZW1vcnl2aWV3KGV4KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigxLjAsIG0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKDVlNzAwLCBtKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigzLjAsIG0pCisKKyAgICAgICAgZXggPSBuZGFycmF5KDkuMCwgW10sIGZvcm1hdD0nZicpCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KGV4KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGV2YWwsICI5LjAgaW4gbSIsIGxvY2FscygpKQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19pbmRleChzZWxmKToKKworICAgICAgICAjIG5kaW0gPSAwCisgICAgICAgIGV4ID0gbmRhcnJheSgxMi41LCBzaGFwZT1bXSwgZm9ybWF0PSdkJykKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVsoKV0sIDEyLjUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVsuLi5dLCBtKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bLi4uXSwgZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbS5fX2dldGl0ZW1fXywgMCkKKworICAgICAgICBleCA9IG5kYXJyYXkoKDEsMiwzKSwgc2hhcGU9W10sIGZvcm1hdD0naWlpJykKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG0uX19nZXRpdGVtX18sICgpKQorCisgICAgICAgICMgcmFuZ2UKKyAgICAgICAgZXggPSBuZGFycmF5KGxpc3QocmFuZ2UoNykpLCBzaGFwZT1bN10sIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yLCBtLl9fZ2V0aXRlbV9fLCAyKio2NCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLl9fZ2V0aXRlbV9fLCAyLjApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbS5fX2dldGl0ZW1fXywgMC4wKQorCisgICAgICAgICMgb3V0IG9mIGJvdW5kcworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yLCBtLl9fZ2V0aXRlbV9fLCAtOCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgbS5fX2dldGl0ZW1fXywgOCkKKworICAgICAgICAjIE5vdCBpbXBsZW1lbnRlZDogbXVsdGlkaW1lbnNpb25hbCBzdWItdmlld3MKKyAgICAgICAgZXggPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIpKSwgc2hhcGU9WzMsNF0sIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCBtLl9fZ2V0aXRlbV9fLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCBtLl9fc2V0aXRlbV9fLCAwLCA5KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCBtLl9fZ2V0aXRlbV9fLCAwKQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19hc3NpZ24oc2VsZik6CisKKyAgICAgICAgIyBuZGltID0gMAorICAgICAgICBleCA9IG5kYXJyYXkoMTIuNSwgc2hhcGU9W10sIGZvcm1hdD0nZicsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgbVsoKV0gPSAyMi41CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVsoKV0sIDIyLjUpCisgICAgICAgIG1bLi4uXSA9IDIzLjUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtWygpXSwgMjMuNSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLl9fc2V0aXRlbV9fLCAwLCAyNC43KQorCisgICAgICAgICMgcmVhZC1vbmx5CisgICAgICAgIGV4ID0gbmRhcnJheShsaXN0KHJhbmdlKDcpKSwgc2hhcGU9WzddKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLl9fc2V0aXRlbV9fLCAyLCAxMCkKKworICAgICAgICAjIHJhbmdlCisgICAgICAgIGV4ID0gbmRhcnJheShsaXN0KHJhbmdlKDcpKSwgc2hhcGU9WzddLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgbS5fX3NldGl0ZW1fXywgMioqNjQsIDkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbS5fX3NldGl0ZW1fXywgMi4wLCAxMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLl9fc2V0aXRlbV9fLCAwLjAsIDExKQorCisgICAgICAgICMgb3V0IG9mIGJvdW5kcworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yLCBtLl9fc2V0aXRlbV9fLCAtOCwgMjApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IsIG0uX19zZXRpdGVtX18sIDgsIDI1KQorCisgICAgICAgICMgcGFja19zaW5nbGUoKSBzdWNjZXNzOgorICAgICAgICBmb3IgZm10IGluIGZtdGRpY3RbJ0AnXToKKyAgICAgICAgICAgIGlmIGZtdCA9PSAnYycgb3IgZm10ID09ICc/JzoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZXggPSBuZGFycmF5KFsxLDIsM10sIHNoYXBlPVszXSwgZm9ybWF0PWZtdCwgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgICAgIGkgPSByYW5kcmFuZ2UoLTMsIDMpCisgICAgICAgICAgICBtW2ldID0gOAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtW2ldLCA4KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtW2ldLCBleFtpXSkKKworICAgICAgICBleCA9IG5kYXJyYXkoW2InMScsIGInMicsIGInMyddLCBzaGFwZT1bM10sIGZvcm1hdD0nYycsCisgICAgICAgICAgICAgICAgICAgICBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIG1bMl0gPSBiJzknCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVsyXSwgYic5JykKKworICAgICAgICBleCA9IG5kYXJyYXkoW1RydWUsIEZhbHNlLCBUcnVlXSwgc2hhcGU9WzNdLCBmb3JtYXQ9Jz8nLAorICAgICAgICAgICAgICAgICAgICAgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KGV4KQorICAgICAgICBtWzFdID0gVHJ1ZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bMV0sIFRydWUpCisKKyAgICAgICAgIyBwYWNrX3NpbmdsZSgpIGV4Y2VwdGlvbnM6CisgICAgICAgIG5kID0gbmRhcnJheShbYid4J10sIHNoYXBlPVsxXSwgZm9ybWF0PSdjJywgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG0uX19zZXRpdGVtX18sIDAsIDEwMCkKKworICAgICAgICBleCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMjApKSwgc2hhcGU9WzEsMiwzLDQsNV0sIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBtMSA9IG1lbW9yeXZpZXcoZXgpCisKKyAgICAgICAgZm9yIGZtdCwgX3JhbmdlIGluIGZtdGRpY3RbJ0AnXS5pdGVtcygpOgorICAgICAgICAgICAgaWYgKGZtdCA9PSAnPycpOiAjIFB5T2JqZWN0X0lzVHJ1ZSgpIGFjY2VwdHMgYW55dGhpbmcKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgZm10ID09ICdjJzogIyBzcGVjaWFsIGNhc2UgdGVzdGVkIGFib3ZlCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIG0yID0gbTEuY2FzdChmbXQpCisgICAgICAgICAgICBsbywgaGkgPSBfcmFuZ2UKKyAgICAgICAgICAgIGlmIGZtdCA9PSAnZCcgb3IgZm10ID09ICdmJzoKKyAgICAgICAgICAgICAgICBsbywgaGkgPSAtMioqMTAyNCwgMioqMTAyNAorICAgICAgICAgICAgaWYgZm10ICE9ICdQJzogIyBQeUxvbmdfQXNWb2lkUHRyKCkgYWNjZXB0cyBuZWdhdGl2ZSBudW1iZXJzCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbTIuX19zZXRpdGVtX18sIDAsIGxvLTEpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtMi5fX3NldGl0ZW1fXywgMCwgInh5eiIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtMi5fX3NldGl0ZW1fXywgMCwgaGkpCisKKyAgICAgICAgIyBpbnZhbGlkIGl0ZW0KKyAgICAgICAgbTIgPSBtMS5jYXN0KCdjJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbTIuX19zZXRpdGVtX18sIDAsIGInXHhmZlx4ZmYnKQorCisgICAgICAgICMgZm9ybWF0IG5vdCBpbXBsZW1lbnRlZAorICAgICAgICBleCA9IG5kYXJyYXkobGlzdChyYW5nZSgxKSksIHNoYXBlPVsxXSwgZm9ybWF0PSJ4TCIsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBtID0gbWVtb3J5dmlldyhleCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgbS5fX3NldGl0ZW1fXywgMCwgMSkKKworICAgICAgICBleCA9IG5kYXJyYXkoW2InMTIzNDUnXSwgc2hhcGU9WzFdLCBmb3JtYXQ9InMiLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG0uX19zZXRpdGVtX18sIDAsIDEpCisKKyAgICAgICAgIyBOb3QgaW1wbGVtZW50ZWQ6IG11bHRpZGltZW5zaW9uYWwgc3ViLXZpZXdzCisgICAgICAgIGV4ID0gbmRhcnJheShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVszLDRdLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgbS5fX3NldGl0ZW1fXywgMCwgWzIsIDNdKQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19zbGljZShzZWxmKToKKworICAgICAgICBleCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMikpLCBzaGFwZT1bMTJdLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoZXgpCisKKyAgICAgICAgIyB6ZXJvIHN0ZXAKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbS5fX2dldGl0ZW1fXywgc2xpY2UoMCwyLDApKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtLl9fc2V0aXRlbV9fLCBzbGljZSgwLDIsMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVhcnJheShbMSwyXSkpCisKKyAgICAgICAgIyBpbnZhbGlkIHNsaWNlIGtleQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG0uX19nZXRpdGVtX18sICgpKQorCisgICAgICAgICMgbXVsdGlkaW1lbnNpb25hbCBzbGljZXMKKyAgICAgICAgZXggPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIpKSwgc2hhcGU9WzEyXSwgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KGV4KQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG0uX19nZXRpdGVtX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzbGljZSgwLDIsMSksIHNsaWNlKDAsMiwxKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIG0uX19zZXRpdGVtX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgIChzbGljZSgwLDIsMSksIHNsaWNlKDAsMiwxKSksIGJ5dGVhcnJheShbMSwyXSkpCisKKyAgICAgICAgIyBpbnZhbGlkIHNsaWNlIHR1cGxlCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbS5fX2dldGl0ZW1fXywgKHNsaWNlKDAsMiwxKSwge30pKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG0uX19zZXRpdGVtX18sIChzbGljZSgwLDIsMSksIHt9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZWFycmF5KFsxLDJdKSkKKworICAgICAgICAjIHJ2YWx1ZSBpcyBub3QgYW4gZXhwb3J0ZXIKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLl9fc2V0aXRlbV9fLCBzbGljZSgwLDEsMSksIFsxXSkKKworICAgICAgICAjIG5vbi1jb250aWd1b3VzIHNsaWNlIGFzc2lnbm1lbnQKKyAgICAgICAgZm9yIGZsYWdzIGluICgwLCBORF9QSUwpOgorICAgICAgICAgICAgZXgxID0gbmRhcnJheShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVsxMl0sIHN0cmlkZXM9Wy0xXSwgb2Zmc2V0PTExLAorICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFncz1ORF9XUklUQUJMRXxmbGFncykKKyAgICAgICAgICAgIGV4MiA9IG5kYXJyYXkobGlzdChyYW5nZSgyNCkpLCBzaGFwZT1bMTJdLCBzdHJpZGVzPVsyXSwgZmxhZ3M9ZmxhZ3MpCisgICAgICAgICAgICBtMSA9IG1lbW9yeXZpZXcoZXgxKQorICAgICAgICAgICAgbTIgPSBtZW1vcnl2aWV3KGV4MikKKworICAgICAgICAgICAgZXgxWzI6NV0gPSBleDFbMjo1XQorICAgICAgICAgICAgbTFbMjo1XSA9IG0yWzI6NV0KKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMSwgZXgxKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMiwgZXgyKQorCisgICAgICAgICAgICBleDFbMTozXVs6Oi0xXSA9IGV4MlswOjJdWzo6MV0KKyAgICAgICAgICAgIG0xWzE6M11bOjotMV0gPSBtMlswOjJdWzo6MV0KKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMSwgZXgxKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMiwgZXgyKQorCisgICAgICAgICAgICBleDFbNDoxOi0yXVs6Oi0xXSA9IGV4MVsxOjQ6Ml1bOjoxXQorICAgICAgICAgICAgbTFbNDoxOi0yXVs6Oi0xXSA9IG0xWzE6NDoyXVs6OjFdCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobTEsIGV4MSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobTIsIGV4MikKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfYXJyYXkoc2VsZik6CisKKyAgICAgICAgZGVmIGNtcHRlc3QodGVzdGNhc2UsIGEsIGIsIG0sIHNpbmdsZWl0ZW0pOgorICAgICAgICAgICAgZm9yIGksIF8gaW4gZW51bWVyYXRlKGEpOgorICAgICAgICAgICAgICAgIGFpID0gYVtpXQorICAgICAgICAgICAgICAgIG1pID0gbVtpXQorICAgICAgICAgICAgICAgIHRlc3RjYXNlLmFzc2VydEVxdWFsKGFpLCBtaSkKKyAgICAgICAgICAgICAgICBhW2ldID0gc2luZ2xlaXRlbQorICAgICAgICAgICAgICAgIGlmIHNpbmdsZWl0ZW0gIT0gYWk6CisgICAgICAgICAgICAgICAgICAgIHRlc3RjYXNlLmFzc2VydE5vdEVxdWFsKGEsIG0pCisgICAgICAgICAgICAgICAgICAgIHRlc3RjYXNlLmFzc2VydE5vdEVxdWFsKGEsIGIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgdGVzdGNhc2UuYXNzZXJ0RXF1YWwoYSwgbSkKKyAgICAgICAgICAgICAgICAgICAgdGVzdGNhc2UuYXNzZXJ0RXF1YWwoYSwgYikKKyAgICAgICAgICAgICAgICBtW2ldID0gc2luZ2xlaXRlbQorICAgICAgICAgICAgICAgIHRlc3RjYXNlLmFzc2VydEVxdWFsKGEsIG0pCisgICAgICAgICAgICAgICAgdGVzdGNhc2UuYXNzZXJ0RXF1YWwoYiwgbSkKKyAgICAgICAgICAgICAgICBhW2ldID0gYWkKKyAgICAgICAgICAgICAgICBtW2ldID0gbWkKKworICAgICAgICBmb3IgbiBpbiByYW5nZSgxLCA1KToKKyAgICAgICAgICAgIGZvciBmbXQsIGl0ZW1zLCBzaW5nbGVpdGVtIGluIGl0ZXJfZm9ybWF0KG4sICdhcnJheScpOgorICAgICAgICAgICAgICAgIGZvciBsc2xpY2UgaW4gZ2Vuc2xpY2VzKG4pOgorICAgICAgICAgICAgICAgICAgICBmb3IgcnNsaWNlIGluIGdlbnNsaWNlcyhuKToKKworICAgICAgICAgICAgICAgICAgICAgICAgYSA9IGFycmF5LmFycmF5KGZtdCwgaXRlbXMpCisgICAgICAgICAgICAgICAgICAgICAgICBiID0gYXJyYXkuYXJyYXkoZm10LCBpdGVtcykKKyAgICAgICAgICAgICAgICAgICAgICAgIG0gPSBtZW1vcnl2aWV3KGIpCisKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSwgYSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS50b2xpc3QoKSwgYS50b2xpc3QoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS50b2J5dGVzKCksIGEudG9ieXRlcygpKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obSksIGxlbihhKSkKKworICAgICAgICAgICAgICAgICAgICAgICAgY21wdGVzdChzZWxmLCBhLCBiLCBtLCBzaW5nbGVpdGVtKQorCisgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV9lcnIgPSBOb25lCisgICAgICAgICAgICAgICAgICAgICAgICBoYXZlX3Jlc2l6ZSA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbCA9IGFbbHNsaWNlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyID0gYVtyc2xpY2VdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYVtsc2xpY2VdID0gYVtyc2xpY2VdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGF2ZV9yZXNpemUgPSBsZW4oYWwpICE9IGxlbihhcikKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheV9lcnIgPSBlLl9fY2xhc3NfXworCisgICAgICAgICAgICAgICAgICAgICAgICBtX2VyciA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtW2xzbGljZV0gPSBtW3JzbGljZV0KKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2VyciA9IGUuX19jbGFzc19fCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGhhdmVfcmVzaXplOiAjIG1lbW9yeXZpZXcgY2Fubm90IGNoYW5nZSBzaGFwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMobV9lcnIsIFZhbHVlRXJyb3IpCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIG1fZXJyIG9yIGFycmF5X2VycjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzKG1fZXJyLCBhcnJheV9lcnIpCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSwgYSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0udG9saXN0KCksIGEudG9saXN0KCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLnRvYnl0ZXMoKSwgYS50b2J5dGVzKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21wdGVzdChzZWxmLCBhLCBiLCBtLCBzaW5nbGVpdGVtKQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19jb21wYXJlKHNlbGYpOgorCisgICAgICAgIGEgPSBhcnJheS5hcnJheSgnTCcsIFsxLCAyLCAzXSkKKyAgICAgICAgYiA9IGFycmF5LmFycmF5KCdMJywgWzEsIDIsIDddKQorCisgICAgICAgICMgT3JkZXJpbmcgY29tcGFyaXNvbnMgcmFpc2U6CisgICAgICAgIHYgPSBtZW1vcnl2aWV3KGEpCisgICAgICAgIHcgPSBtZW1vcnl2aWV3KGIpCisgICAgICAgIGZvciBhdHRyIGluICgnX19sdF9fJywgJ19fbGVfXycsICdfX2d0X18nLCAnX19nZV9fJyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzKGdldGF0dHIodiwgYXR0cikodyksIE5vdEltcGxlbWVudGVkKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhnZXRhdHRyKGEsIGF0dHIpKHYpLCBOb3RJbXBsZW1lbnRlZCkKKworICAgICAgICAjIFJlbGVhc2VkIHZpZXdzIGNvbXBhcmUgZXF1YWwgdG8gdGhlbXNlbHZlczoKKyAgICAgICAgdiA9IG1lbW9yeXZpZXcoYSkKKyAgICAgICAgdi5yZWxlYXNlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCB2KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIGEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoYSwgdikKKworICAgICAgICB2ID0gbWVtb3J5dmlldyhhKQorICAgICAgICB3ID0gbWVtb3J5dmlldyhhKQorICAgICAgICB3LnJlbGVhc2UoKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIHcpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodywgdikKKworICAgICAgICAjIE9wZXJhbmQgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBidWZmZXIgcHJvdG9jb2w6CisgICAgICAgIHYgPSBtZW1vcnl2aWV3KGEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgWzEsIDIsIDNdKQorCisgICAgICAgICMgRGlmZmVyZW50IGZvcm1hdHM6CisgICAgICAgIGMgPSBhcnJheS5hcnJheSgnbCcsIFsxLCAyLCAzXSkKKyAgICAgICAgdiA9IG1lbW9yeXZpZXcoYSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCBjKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGMsIHYpCisKKyAgICAgICAgIyBOb3QgaW1wbGVtZW50ZWQgZm9ybWF0cy4gVWdseSwgYnV0IGluZXZpdGFibGUuIFRoaXMgaXMgdGhlIHNhbWUgYXMKKyAgICAgICAgIyBpc3N1ZSAjMjUzMTogZXF1YWxpdHkgaXMgYWxzbyB1c2VkIGZvciBtZW1iZXJzaGlwIHRlc3RpbmcgYW5kIG11c3QKKyAgICAgICAgIyByZXR1cm4gYSByZXN1bHQuCisgICAgICAgIGEgPSBuZGFycmF5KFsoMSwgMS41KSwgKDIsIDIuNyldLCBzaGFwZT1bMl0sIGZvcm1hdD0nbGQnKQorICAgICAgICB2ID0gbWVtb3J5dmlldyhhKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIGEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoYSwgdikKKworICAgICAgICBhID0gbmRhcnJheShbYicxMjM0NSddLCBzaGFwZT1bMV0sIGZvcm1hdD0icyIpCisgICAgICAgIHYgPSBtZW1vcnl2aWV3KGEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgYSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChhLCB2KQorCisgICAgICAgIG5kID0gbmRhcnJheShbKDEsMSwxKSwgKDIsMiwyKSwgKDMsMywzKV0sIHNoYXBlPVszXSwgZm9ybWF0PSdpaWknKQorICAgICAgICB2ID0gbWVtb3J5dmlldyhuZCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCBuZCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChuZCwgdikKKworICAgICAgICAjICdAJyBwcmVmaXggY2FuIGJlIGRyb3BwZWQ6CisgICAgICAgIG5kMSA9IG5kYXJyYXkoWzEsMiwzXSwgc2hhcGU9WzNdLCBmb3JtYXQ9J0BpJykKKyAgICAgICAgbmQyID0gbmRhcnJheShbMSwyLDNdLCBzaGFwZT1bM10sIGZvcm1hdD0naScpCisgICAgICAgIHYgPSBtZW1vcnl2aWV3KG5kMSkKKyAgICAgICAgdyA9IG1lbW9yeXZpZXcobmQyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIHcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodywgdikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmQyLCB2KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZDEsIHcpCisKKyAgICAgICAgIyBuZGltID0gMAorICAgICAgICBuZDEgPSBuZGFycmF5KDE3MjksIHNoYXBlPVtdLCBmb3JtYXQ9J0BMJykKKyAgICAgICAgbmQyID0gbmRhcnJheSgxNzI5LCBzaGFwZT1bXSwgZm9ybWF0PSdMJywgZmxhZ3M9TkRfV1JJVEFCTEUpCisgICAgICAgIHYgPSBtZW1vcnl2aWV3KG5kMSkKKyAgICAgICAgdyA9IG1lbW9yeXZpZXcobmQyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIHcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodywgdikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmQyLCB2KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZDEsIHcpCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh2Ll9fbmVfXyh3KSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh3Ll9fbmVfXyh2KSkKKworICAgICAgICB3WygpXSA9IDE3MjgKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCB3KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHcsIHYpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKG5kMiwgdikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh3LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwobmQxLCB3KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uodi5fX2VxX18odykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uody5fX2VxX18odikpCisKKyAgICAgICAgbmQgPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIpKSwgc2hhcGU9WzEyXSwgZmxhZ3M9TkRfV1JJVEFCTEV8TkRfUElMKQorICAgICAgICBleCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMikpLCBzaGFwZT1bMTJdLCBmbGFncz1ORF9XUklUQUJMRXxORF9QSUwpCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KGV4KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSwgbmQpCisgICAgICAgIG1bOV0gPSAxMDAKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChtLCBuZCkKKworICAgICAgICAjIG5kaW0gPSAxOiBjb250aWd1b3VzCisgICAgICAgIG5kMSA9IG5kYXJyYXkoWy01MjksIDU3NiwgLTYyNSwgNjc2LCAtNzI5XSwgc2hhcGU9WzVdLCBmb3JtYXQ9J0BoJykKKyAgICAgICAgbmQyID0gbmRhcnJheShbLTUyOSwgNTc2LCAtNjI1LCA2NzYsIDcyOV0sIHNoYXBlPVs1XSwgZm9ybWF0PSdAaCcpCisgICAgICAgIHYgPSBtZW1vcnl2aWV3KG5kMSkKKyAgICAgICAgdyA9IG1lbW9yeXZpZXcobmQyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgbmQxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodywgbmQxKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIHcpCisKKyAgICAgICAgIyBuZGltID0gMTogbm9uLWNvbnRpZ3VvdXMKKyAgICAgICAgbmQxID0gbmRhcnJheShbLTUyOSwgLTYyNSwgLTcyOV0sIHNoYXBlPVszXSwgZm9ybWF0PSdAaCcpCisgICAgICAgIG5kMiA9IG5kYXJyYXkoWy01MjksIDU3NiwgLTYyNSwgNjc2LCAtNzI5XSwgc2hhcGU9WzVdLCBmb3JtYXQ9J0BoJykKKyAgICAgICAgdiA9IG1lbW9yeXZpZXcobmQxKQorICAgICAgICB3ID0gbWVtb3J5dmlldyhuZDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDJbOjoyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3Wzo6Ml0sIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCB3Wzo6Ml0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodls6Oi0xXSwgd1s6Oi0yXSkKKworICAgICAgICAjIG5kaW0gPSAxOiBub24tY29udGlndW91cywgc3Vib2Zmc2V0cworICAgICAgICBuZDEgPSBuZGFycmF5KFstNTI5LCAtNjI1LCAtNzI5XSwgc2hhcGU9WzNdLCBmb3JtYXQ9J0BoJykKKyAgICAgICAgbmQyID0gbmRhcnJheShbLTUyOSwgNTc2LCAtNjI1LCA2NzYsIC03MjldLCBzaGFwZT1bNV0sIGZvcm1hdD0nQGgnLAorICAgICAgICAgICAgICAgICAgICAgIGZsYWdzPU5EX1BJTCkKKyAgICAgICAgdiA9IG1lbW9yeXZpZXcobmQxKQorICAgICAgICB3ID0gbWVtb3J5dmlldyhuZDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDJbOjoyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3Wzo6Ml0sIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCB3Wzo6Ml0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodls6Oi0xXSwgd1s6Oi0yXSkKKworICAgICAgICAjIG5kaW0gPSAxOiB6ZXJvcyBpbiBzaGFwZQorICAgICAgICBuZDEgPSBuZGFycmF5KFs5MDAsIDk2MV0sIHNoYXBlPVswXSwgZm9ybWF0PSdAaCcpCisgICAgICAgIG5kMiA9IG5kYXJyYXkoWy05MDAsIC05NjFdLCBzaGFwZT1bMF0sIGZvcm1hdD0nQGgnKQorICAgICAgICB2ID0gbWVtb3J5dmlldyhuZDEpCisgICAgICAgIHcgPSBtZW1vcnl2aWV3KG5kMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgbmQyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCB3KQorCisgICAgICAgICMgbmRpbSA9IDE6IHplcm8gc3RyaWRlcworICAgICAgICBuZDEgPSBuZGFycmF5KFs5MDAsIDkwMCwgOTAwLCA5MDBdLCBzaGFwZT1bNF0sIGZvcm1hdD0nQEwnKQorICAgICAgICBuZDIgPSBuZGFycmF5KFs5MDBdLCBzaGFwZT1bNF0sIHN0cmlkZXM9WzBdLCBmb3JtYXQ9J0wnKQorICAgICAgICB2ID0gbWVtb3J5dmlldyhuZDEpCisgICAgICAgIHcgPSBtZW1vcnl2aWV3KG5kMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgbmQyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCB3KQorCisgICAgICAgIG4gPSAxMAorICAgICAgICBmb3IgY2hhciBpbiBmbXRkaWN0WydAbSddOgorICAgICAgICAgICAgZm10LCBpdGVtcywgc2luZ2xlaXRlbSA9IHJhbmRpdGVtcyhuLCAnbWVtb3J5dmlldycsICdAJywgY2hhcikKKyAgICAgICAgICAgIGZvciBmbGFncyBpbiAoMCwgTkRfUElMKToKKyAgICAgICAgICAgICAgICBuZCA9IG5kYXJyYXkoaXRlbXMsIHNoYXBlPVtuXSwgZm9ybWF0PWZtdCwgZmxhZ3M9ZmxhZ3MpCisgICAgICAgICAgICAgICAgbSA9IG1lbW9yeXZpZXcobmQpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLCBuZCkKKworICAgICAgICAgICAgICAgIG5kID0gbmRbOjotM10KKyAgICAgICAgICAgICAgICBtID0gbWVtb3J5dmlldyhuZCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIG5kKQorCisgICAgICAgICMjIyMjIG5kaW0gPiAxOiBDLWNvbnRpZ3VvdXMKKyAgICAgICAgIyBkaWZmZXJlbnQgdmFsdWVzCisgICAgICAgIG5kMSA9IG5kYXJyYXkobGlzdChyYW5nZSgtMTUsIDE1KSksIHNoYXBlPVszLCAyLCA1XSwgZm9ybWF0PSdAaCcpCisgICAgICAgIG5kMiA9IG5kYXJyYXkobGlzdChyYW5nZSgwLCAzMCkpLCBzaGFwZT1bMywgMiwgNV0sIGZvcm1hdD0nQGgnKQorICAgICAgICB2ID0gbWVtb3J5dmlldyhuZDEpCisgICAgICAgIHcgPSBtZW1vcnl2aWV3KG5kMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHcsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCB3KQorCisgICAgICAgICMgZGlmZmVyZW50IHNoYXBlCisgICAgICAgIG5kMSA9IG5kYXJyYXkobGlzdChyYW5nZSgzMCkpLCBzaGFwZT1bMiwgMywgNV0sIGZvcm1hdD0nTCcpCisgICAgICAgIG5kMiA9IG5kYXJyYXkobGlzdChyYW5nZSgzMCkpLCBzaGFwZT1bMywgMiwgNV0sIGZvcm1hdD0nTCcpCisgICAgICAgIHYgPSBtZW1vcnl2aWV3KG5kMSkKKyAgICAgICAgdyA9IG1lbW9yeXZpZXcobmQyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgbmQxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodywgbmQxKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIHcpCisKKyAgICAgICAgIyBkaWZmZXJlbnQgZm9ybWF0CisgICAgICAgIG5kMSA9IG5kYXJyYXkobGlzdChyYW5nZSgzMCkpLCBzaGFwZT1bMiwgMywgNV0sIGZvcm1hdD0nTCcpCisgICAgICAgIG5kMiA9IG5kYXJyYXkobGlzdChyYW5nZSgzMCkpLCBzaGFwZT1bMiwgMywgNV0sIGZvcm1hdD0nbCcpCisgICAgICAgIHYgPSBtZW1vcnl2aWV3KG5kMSkKKyAgICAgICAgdyA9IG1lbW9yeXZpZXcobmQyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgbmQxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodywgbmQxKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIHcpCisKKyAgICAgICAgIyMjIyMgbmRpbSA+IDE6IEZvcnRyYW4gY29udGlndW91cworICAgICAgICAjIGRpZmZlcmVudCB2YWx1ZXMKKyAgICAgICAgbmQxID0gbmRhcnJheShsaXN0KHJhbmdlKC0xNSwgMTUpKSwgc2hhcGU9WzUsIDIsIDNdLCBmb3JtYXQ9J0BoJywKKyAgICAgICAgICAgICAgICAgICAgICBmbGFncz1ORF9GT1JUUkFOKQorICAgICAgICBuZDIgPSBuZGFycmF5KGxpc3QocmFuZ2UoMCwgMzApKSwgc2hhcGU9WzUsIDIsIDNdLCBmb3JtYXQ9J0BoJywKKyAgICAgICAgICAgICAgICAgICAgICBmbGFncz1ORF9GT1JUUkFOKQorICAgICAgICB2ID0gbWVtb3J5dmlldyhuZDEpCisgICAgICAgIHcgPSBtZW1vcnl2aWV3KG5kMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHcsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCB3KQorCisgICAgICAgICMgZGlmZmVyZW50IHNoYXBlCisgICAgICAgIG5kMSA9IG5kYXJyYXkobGlzdChyYW5nZSgtMTUsIDE1KSksIHNoYXBlPVsyLCAzLCA1XSwgZm9ybWF0PSdsJywKKyAgICAgICAgICAgICAgICAgICAgICBmbGFncz1ORF9GT1JUUkFOKQorICAgICAgICBuZDIgPSBuZGFycmF5KGxpc3QocmFuZ2UoLTE1LCAxNSkpLCBzaGFwZT1bMywgMiwgNV0sIGZvcm1hdD0nbCcsCisgICAgICAgICAgICAgICAgICAgICAgZmxhZ3M9TkRfRk9SVFJBTikKKyAgICAgICAgdiA9IG1lbW9yeXZpZXcobmQxKQorICAgICAgICB3ID0gbWVtb3J5dmlldyhuZDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodywgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh3LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgdykKKworICAgICAgICAjIGRpZmZlcmVudCBmb3JtYXQKKyAgICAgICAgbmQxID0gbmRhcnJheShsaXN0KHJhbmdlKDMwKSksIHNoYXBlPVs1LCAyLCAzXSwgZm9ybWF0PSdAaCcsCisgICAgICAgICAgICAgICAgICAgICAgZmxhZ3M9TkRfRk9SVFJBTikKKyAgICAgICAgbmQyID0gbmRhcnJheShsaXN0KHJhbmdlKDMwKSksIHNoYXBlPVs1LCAyLCAzXSwgZm9ybWF0PSdAYicsCisgICAgICAgICAgICAgICAgICAgICAgZmxhZ3M9TkRfRk9SVFJBTikKKyAgICAgICAgdiA9IG1lbW9yeXZpZXcobmQxKQorICAgICAgICB3ID0gbWVtb3J5dmlldyhuZDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodywgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh3LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgdykKKworICAgICAgICAjIyMjIyBuZGltID4gMTogbWl4ZWQgQy9Gb3J0cmFuIGNvbnRpZ3VvdXMKKyAgICAgICAgbHN0MSA9IGxpc3QocmFuZ2UoLTE1LCAxNSkpCisgICAgICAgIGxzdDIgPSB0cmFuc3Bvc2UobHN0MSwgWzMsIDIsIDVdKQorICAgICAgICBuZDEgPSBuZGFycmF5KGxzdDEsIHNoYXBlPVszLCAyLCA1XSwgZm9ybWF0PSdAbCcpCisgICAgICAgIG5kMiA9IG5kYXJyYXkobHN0Miwgc2hhcGU9WzMsIDIsIDVdLCBmb3JtYXQ9J2wnLCBmbGFncz1ORF9GT1JUUkFOKQorICAgICAgICB2ID0gbWVtb3J5dmlldyhuZDEpCisgICAgICAgIHcgPSBtZW1vcnl2aWV3KG5kMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgdykKKworICAgICAgICAjIyMjIyBuZGltID4gMTogbm9uLWNvbnRpZ3VvdXMKKyAgICAgICAgIyBkaWZmZXJlbnQgdmFsdWVzCisgICAgICAgIGV4MSA9IG5kYXJyYXkobGlzdChyYW5nZSg0MCkpLCBzaGFwZT1bNSwgOF0sIGZvcm1hdD0nQEknKQorICAgICAgICBuZDEgPSBleDFbMzoxOi0xLCA6Oi0yXQorICAgICAgICBleDIgPSBuZGFycmF5KGxpc3QocmFuZ2UoNDApKSwgc2hhcGU9WzUsIDhdLCBmb3JtYXQ9J0knKQorICAgICAgICBuZDIgPSBleDJbMTozOjEsIDo6LTJdCisgICAgICAgIHYgPSBtZW1vcnl2aWV3KG5kMSkKKyAgICAgICAgdyA9IG1lbW9yeXZpZXcobmQyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgbmQxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodywgbmQxKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIHcpCisKKyAgICAgICAgIyBkaWZmZXJlbnQgc2hhcGUKKyAgICAgICAgZXgxID0gbmRhcnJheShsaXN0KHJhbmdlKDMwKSksIHNoYXBlPVsyLCAzLCA1XSwgZm9ybWF0PSdiJykKKyAgICAgICAgbmQxID0gZXgxWzE6MzosIDo6LTJdCisgICAgICAgIG5kMiA9IG5kYXJyYXkobGlzdChyYW5nZSgzMCkpLCBzaGFwZT1bMywgMiwgNV0sIGZvcm1hdD0nYicpCisgICAgICAgIG5kMiA9IGV4MlsxOjM6LCA6Oi0yXQorICAgICAgICB2ID0gbWVtb3J5dmlldyhuZDEpCisgICAgICAgIHcgPSBtZW1vcnl2aWV3KG5kMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHcsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCB3KQorCisgICAgICAgICMgZGlmZmVyZW50IGZvcm1hdAorICAgICAgICBleDEgPSBuZGFycmF5KGxpc3QocmFuZ2UoMzApKSwgc2hhcGU9WzUsIDMsIDJdLCBmb3JtYXQ9J2knKQorICAgICAgICBuZDEgPSBleDFbMTozOiwgOjotMl0KKyAgICAgICAgbmQyID0gbmRhcnJheShsaXN0KHJhbmdlKDMwKSksIHNoYXBlPVs1LCAzLCAyXSwgZm9ybWF0PSdASScpCisgICAgICAgIG5kMiA9IGV4MlsxOjM6LCA6Oi0yXQorICAgICAgICB2ID0gbWVtb3J5dmlldyhuZDEpCisgICAgICAgIHcgPSBtZW1vcnl2aWV3KG5kMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHcsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCB3KQorCisgICAgICAgICMjIyMjIG5kaW0gPiAxOiB6ZXJvcyBpbiBzaGFwZQorICAgICAgICBuZDEgPSBuZGFycmF5KGxpc3QocmFuZ2UoMzApKSwgc2hhcGU9WzAsIDMsIDJdLCBmb3JtYXQ9J2knKQorICAgICAgICBuZDIgPSBuZGFycmF5KGxpc3QocmFuZ2UoMzApKSwgc2hhcGU9WzUsIDAsIDJdLCBmb3JtYXQ9J0BpJykKKyAgICAgICAgdiA9IG1lbW9yeXZpZXcobmQxKQorICAgICAgICB3ID0gbWVtb3J5dmlldyhuZDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodywgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh3LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgdykKKworICAgICAgICAjIG5kaW0gPiAxOiB6ZXJvIHN0cmlkZXMKKyAgICAgICAgbmQxID0gbmRhcnJheShbOTAwXSo4MCwgc2hhcGU9WzQsIDUsIDRdLCBmb3JtYXQ9J0BMJykKKyAgICAgICAgbmQyID0gbmRhcnJheShbOTAwXSwgc2hhcGU9WzQsIDUsIDRdLCBzdHJpZGVzPVswLCAwLCAwXSwgZm9ybWF0PSdMJykKKyAgICAgICAgdiA9IG1lbW9yeXZpZXcobmQxKQorICAgICAgICB3ID0gbWVtb3J5dmlldyhuZDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodywgbmQyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgdykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LnRvbGlzdCgpLCB3LnRvbGlzdCgpKQorCisgICAgICAgICMjIyMjIG5kaW0gPiAxOiBzdWJvZmZzZXRzCisgICAgICAgIGV4MSA9IG5kYXJyYXkobGlzdChyYW5nZSg0MCkpLCBzaGFwZT1bNSwgOF0sIGZvcm1hdD0nQEknKQorICAgICAgICBuZDEgPSBleDFbMzoxOi0xLCA6Oi0yXQorICAgICAgICBleDIgPSBuZGFycmF5KGxpc3QocmFuZ2UoNDApKSwgc2hhcGU9WzUsIDhdLCBmb3JtYXQ9J0knLCBmbGFncz1ORF9QSUwpCisgICAgICAgIG5kMiA9IGV4MlsxOjM6MSwgOjotMl0KKyAgICAgICAgdiA9IG1lbW9yeXZpZXcobmQxKQorICAgICAgICB3ID0gbWVtb3J5dmlldyhuZDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodywgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh3LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgdykKKworICAgICAgICAjIGRpZmZlcmVudCBzaGFwZQorICAgICAgICBleDEgPSBuZGFycmF5KGxpc3QocmFuZ2UoMzApKSwgc2hhcGU9WzIsIDMsIDVdLCBmb3JtYXQ9J2InLCBmbGFncz1ORF9QSUwpCisgICAgICAgIG5kMSA9IGV4MVsxOjM6LCA6Oi0yXQorICAgICAgICBuZDIgPSBuZGFycmF5KGxpc3QocmFuZ2UoMzApKSwgc2hhcGU9WzMsIDIsIDVdLCBmb3JtYXQ9J2InKQorICAgICAgICBuZDIgPSBleDJbMTozOiwgOjotMl0KKyAgICAgICAgdiA9IG1lbW9yeXZpZXcobmQxKQorICAgICAgICB3ID0gbWVtb3J5dmlldyhuZDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodywgbmQyKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh3LCBuZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodiwgdykKKworICAgICAgICAjIGRpZmZlcmVudCBmb3JtYXQKKyAgICAgICAgZXgxID0gbmRhcnJheShsaXN0KHJhbmdlKDMwKSksIHNoYXBlPVs1LCAzLCAyXSwgZm9ybWF0PSdpJywgZmxhZ3M9TkRfUElMKQorICAgICAgICBuZDEgPSBleDFbMTozOiwgOjotMl0KKyAgICAgICAgbmQyID0gbmRhcnJheShsaXN0KHJhbmdlKDMwKSksIHNoYXBlPVs1LCAzLCAyXSwgZm9ybWF0PSdASScsIGZsYWdzPU5EX1BJTCkKKyAgICAgICAgbmQyID0gZXgyWzE6MzosIDo6LTJdCisgICAgICAgIHYgPSBtZW1vcnl2aWV3KG5kMSkKKyAgICAgICAgdyA9IG1lbW9yeXZpZXcobmQyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgbmQxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcsIG5kMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodywgbmQxKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIHcpCisKKyAgICAgICAgIyBpbml0aWFsaXplIG1peGVkIEMvRm9ydHJhbiArIHN1Ym9mZnNldHMKKyAgICAgICAgbHN0MSA9IGxpc3QocmFuZ2UoLTE1LCAxNSkpCisgICAgICAgIGxzdDIgPSB0cmFuc3Bvc2UobHN0MSwgWzMsIDIsIDVdKQorICAgICAgICBuZDEgPSBuZGFycmF5KGxzdDEsIHNoYXBlPVszLCAyLCA1XSwgZm9ybWF0PSdAbCcsIGZsYWdzPU5EX1BJTCkKKyAgICAgICAgbmQyID0gbmRhcnJheShsc3QyLCBzaGFwZT1bMywgMiwgNV0sIGZvcm1hdD0nbCcsIGZsYWdzPU5EX0ZPUlRSQU58TkRfUElMKQorICAgICAgICB2ID0gbWVtb3J5dmlldyhuZDEpCisgICAgICAgIHcgPSBtZW1vcnl2aWV3KG5kMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHYsIG5kMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LCBuZDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgdykKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfY2hlY2tfcmVsZWFzZWQoc2VsZik6CisKKyAgICAgICAgYSA9IGFycmF5LmFycmF5KCdkJywgWzEuMSwgMi4yLCAzLjNdKQorCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KGEpCisgICAgICAgIG0ucmVsZWFzZSgpCisKKyAgICAgICAgIyBQeU1lbW9yeVZpZXdfRnJvbU9iamVjdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG1lbW9yeXZpZXcsIG0pCisgICAgICAgICMgbWVtb3J5dmlldy5jYXN0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbS5jYXN0LCAnYycpCisgICAgICAgICMgZ2V0YnVmZmVyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbmRhcnJheSwgbSkKKyAgICAgICAgIyBtZW1vcnl2aWV3LnRvbGlzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG0udG9saXN0KQorICAgICAgICAjIG1lbW9yeXZpZXcudG9ieXRlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG0udG9ieXRlcykKKyAgICAgICAgIyBzZXF1ZW5jZQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBldmFsLCAiMS4wIGluIG0iLCBsb2NhbHMoKSkKKyAgICAgICAgIyBzdWJzY3JpcHQKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbS5fX2dldGl0ZW1fXywgMCkKKyAgICAgICAgIyBhc3NpZ25tZW50CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG0uX19zZXRpdGVtX18sIDAsIDEpCisKKyAgICAgICAgZm9yIGF0dHIgaW4gKCdvYmonLCAnbmJ5dGVzJywgJ3JlYWRvbmx5JywgJ2l0ZW1zaXplJywgJ2Zvcm1hdCcsICduZGltJywKKyAgICAgICAgICAgICAgICAgICAgICdzaGFwZScsICdzdHJpZGVzJywgJ3N1Ym9mZnNldHMnLCAnY19jb250aWd1b3VzJywKKyAgICAgICAgICAgICAgICAgICAgICdmX2NvbnRpZ3VvdXMnLCAnY29udGlndW91cycpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbS5fX2dldGF0dHJpYnV0ZV9fLCBhdHRyKQorCisgICAgICAgICMgcmljaGNvbXBhcmUKKyAgICAgICAgYiA9IGFycmF5LmFycmF5KCdkJywgWzEuMSwgMi4yLCAzLjNdKQorICAgICAgICBtMSA9IG1lbW9yeXZpZXcoYSkKKyAgICAgICAgbTIgPSBtZW1vcnl2aWV3KGIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMSwgbTIpCisgICAgICAgIG0xLnJlbGVhc2UoKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKG0xLCBtMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChtMSwgYSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMSwgbTEpCisKKyAgICBkZWYgdGVzdF9tZW1vcnl2aWV3X3RvYnl0ZXMoc2VsZik6CisgICAgICAgICMgTWFueSBpbXBsaWNpdCB0ZXN0cyBhcmUgYWxyZWFkeSBpbiBzZWxmLnZlcmlmeSgpLgorCisgICAgICAgIG5kID0gbmRhcnJheShbLTUyOSwgNTc2LCAtNjI1LCA2NzYsIC03MjldLCBzaGFwZT1bNV0sIGZvcm1hdD0nQGgnKQorCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0udG9ieXRlcygpLCBuZC50b2J5dGVzKCkpCisKKyAgICBkZWYgdGVzdF9tZW1vcnl2aWV3X2dldF9jb250aWd1b3VzKHNlbGYpOgorICAgICAgICAjIE1hbnkgaW1wbGljaXQgdGVzdHMgYXJlIGFscmVhZHkgaW4gc2VsZi52ZXJpZnkoKS4KKworICAgICAgICAjIG5vIGJ1ZmZlciBpbnRlcmZhY2UKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBnZXRfY29udGlndW91cywge30sIFB5QlVGX1JFQUQsICdGJykKKworICAgICAgICAjIHdyaXRhYmxlIHJlcXVlc3QgdG8gcmVhZC1vbmx5IG9iamVjdAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgZ2V0X2NvbnRpZ3VvdXMsIGIneCcsIFB5QlVGX1dSSVRFLCAnQycpCisKKyAgICAgICAgIyB3cml0YWJsZSByZXF1ZXN0IHRvIG5vbi1jb250aWd1b3VzIG9iamVjdAorICAgICAgICBuZCA9IG5kYXJyYXkoWzEsIDIsIDNdLCBzaGFwZT1bMl0sIHN0cmlkZXM9WzJdKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgZ2V0X2NvbnRpZ3VvdXMsIG5kLCBQeUJVRl9XUklURSwgJ0EnKQorCisgICAgICAgICMgc2NhbGFyLCByZWFkLW9ubHkgcmVxdWVzdCBmcm9tIHJlYWQtb25seSBleHBvcnRlcgorICAgICAgICBuZCA9IG5kYXJyYXkoOSwgc2hhcGU9KCksIGZvcm1hdD0iTCIpCisgICAgICAgIGZvciBvcmRlciBpbiBbJ0MnLCAnRicsICdBJ106CisgICAgICAgICAgICBtID0gZ2V0X2NvbnRpZ3VvdXMobmQsIFB5QlVGX1JFQUQsIG9yZGVyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLCBuZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVsoKV0sIDkpCisKKyAgICAgICAgIyBzY2FsYXIsIHJlYWQtb25seSByZXF1ZXN0IGZyb20gd3JpdGFibGUgZXhwb3J0ZXIKKyAgICAgICAgbmQgPSBuZGFycmF5KDksIHNoYXBlPSgpLCBmb3JtYXQ9IkwiLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgZm9yIG9yZGVyIGluIFsnQycsICdGJywgJ0EnXToKKyAgICAgICAgICAgIG0gPSBnZXRfY29udGlndW91cyhuZCwgUHlCVUZfUkVBRCwgb3JkZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIG5kKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtWygpXSwgOSkKKworICAgICAgICAjIHNjYWxhciwgd3JpdGFibGUgcmVxdWVzdAorICAgICAgICBmb3Igb3JkZXIgaW4gWydDJywgJ0YnLCAnQSddOgorICAgICAgICAgICAgbmRbKCldID0gOQorICAgICAgICAgICAgbSA9IGdldF9jb250aWd1b3VzKG5kLCBQeUJVRl9XUklURSwgb3JkZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIG5kKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtWygpXSwgOSkKKworICAgICAgICAgICAgbVsoKV0gPSAxMAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtWygpXSwgMTApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kWygpXSwgMTApCisKKyAgICAgICAgIyB6ZXJvcyBpbiBzaGFwZQorICAgICAgICBuZCA9IG5kYXJyYXkoWzFdLCBzaGFwZT1bMF0sIGZvcm1hdD0iTCIsIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBmb3Igb3JkZXIgaW4gWydDJywgJ0YnLCAnQSddOgorICAgICAgICAgICAgbSA9IGdldF9jb250aWd1b3VzKG5kLCBQeUJVRl9SRUFELCBvcmRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IsIG0uX19nZXRpdGVtX18sIDApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIG5kKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLnRvbGlzdCgpLCBbXSkKKworICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSg4KSksIHNoYXBlPVsyLCAwLCA3XSwgZm9ybWF0PSJMIiwKKyAgICAgICAgICAgICAgICAgICAgIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBmb3Igb3JkZXIgaW4gWydDJywgJ0YnLCAnQSddOgorICAgICAgICAgICAgbSA9IGdldF9jb250aWd1b3VzKG5kLCBQeUJVRl9SRUFELCBvcmRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmRhcnJheShtKS50b2xpc3QoKSwgW1tdLCBbXV0pCisKKyAgICAgICAgIyBvbmUtZGltZW5zaW9uYWwKKyAgICAgICAgbmQgPSBuZGFycmF5KFsxXSwgc2hhcGU9WzFdLCBmb3JtYXQ9ImgiLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgZm9yIG9yZGVyIGluIFsnQycsICdGJywgJ0EnXToKKyAgICAgICAgICAgIG0gPSBnZXRfY29udGlndW91cyhuZCwgUHlCVUZfV1JJVEUsIG9yZGVyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLCBuZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS50b2xpc3QoKSwgbmQudG9saXN0KCkpCisKKyAgICAgICAgbmQgPSBuZGFycmF5KFsxLCAyLCAzXSwgc2hhcGU9WzNdLCBmb3JtYXQ9ImIiLCBmbGFncz1ORF9XUklUQUJMRSkKKyAgICAgICAgZm9yIG9yZGVyIGluIFsnQycsICdGJywgJ0EnXToKKyAgICAgICAgICAgIG0gPSBnZXRfY29udGlndW91cyhuZCwgUHlCVUZfV1JJVEUsIG9yZGVyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLCBuZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS50b2xpc3QoKSwgbmQudG9saXN0KCkpCisKKyAgICAgICAgIyBvbmUtZGltZW5zaW9uYWwsIG5vbi1jb250aWd1b3VzCisgICAgICAgIG5kID0gbmRhcnJheShbMSwgMiwgM10sIHNoYXBlPVsyXSwgc3RyaWRlcz1bMl0sIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBmb3Igb3JkZXIgaW4gWydDJywgJ0YnLCAnQSddOgorICAgICAgICAgICAgbSA9IGdldF9jb250aWd1b3VzKG5kLCBQeUJVRl9SRUFELCBvcmRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSwgbmQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0udG9saXN0KCksIG5kLnRvbGlzdCgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLl9fc2V0aXRlbV9fLCAxLCAyMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVsxXSwgMykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmRbMV0sIDMpCisKKyAgICAgICAgbmQgPSBuZFs6Oi0xXQorICAgICAgICBmb3Igb3JkZXIgaW4gWydDJywgJ0YnLCAnQSddOgorICAgICAgICAgICAgbSA9IGdldF9jb250aWd1b3VzKG5kLCBQeUJVRl9SRUFELCBvcmRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSwgbmQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0udG9saXN0KCksIG5kLnRvbGlzdCgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtLl9fc2V0aXRlbV9fLCAxLCAyMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVsxXSwgMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmRbMV0sIDEpCisKKyAgICAgICAgIyBtdWx0aS1kaW1lbnNpb25hbCwgY29udGlndW91cyBpbnB1dAorICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMikpLCBzaGFwZT1bMywgNF0sIGZsYWdzPU5EX1dSSVRBQkxFKQorICAgICAgICBmb3Igb3JkZXIgaW4gWydDJywgJ0EnXToKKyAgICAgICAgICAgIG0gPSBnZXRfY29udGlndW91cyhuZCwgUHlCVUZfV1JJVEUsIG9yZGVyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZGFycmF5KG0pLnRvbGlzdCgpLCBuZC50b2xpc3QoKSkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgZ2V0X2NvbnRpZ3VvdXMsIG5kLCBQeUJVRl9XUklURSwgJ0YnKQorICAgICAgICBtID0gZ2V0X2NvbnRpZ3VvdXMobmQsIFB5QlVGX1JFQUQsIG9yZGVyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kYXJyYXkobSkudG9saXN0KCksIG5kLnRvbGlzdCgpKQorCisgICAgICAgIG5kID0gbmRhcnJheShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVszLCA0XSwKKyAgICAgICAgICAgICAgICAgICAgIGZsYWdzPU5EX1dSSVRBQkxFfE5EX0ZPUlRSQU4pCisgICAgICAgIGZvciBvcmRlciBpbiBbJ0YnLCAnQSddOgorICAgICAgICAgICAgbSA9IGdldF9jb250aWd1b3VzKG5kLCBQeUJVRl9XUklURSwgb3JkZXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5kYXJyYXkobSkudG9saXN0KCksIG5kLnRvbGlzdCgpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBnZXRfY29udGlndW91cywgbmQsIFB5QlVGX1dSSVRFLCAnQycpCisgICAgICAgIG0gPSBnZXRfY29udGlndW91cyhuZCwgUHlCVUZfUkVBRCwgb3JkZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmRhcnJheShtKS50b2xpc3QoKSwgbmQudG9saXN0KCkpCisKKyAgICAgICAgIyBtdWx0aS1kaW1lbnNpb25hbCwgbm9uLWNvbnRpZ3VvdXMgaW5wdXQKKyAgICAgICAgbmQgPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIpKSwgc2hhcGU9WzMsIDRdLCBmbGFncz1ORF9XUklUQUJMRXxORF9QSUwpCisgICAgICAgIGZvciBvcmRlciBpbiBbJ0MnLCAnRicsICdBJ106CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgZ2V0X2NvbnRpZ3VvdXMsIG5kLCBQeUJVRl9XUklURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyKQorICAgICAgICAgICAgbSA9IGdldF9jb250aWd1b3VzKG5kLCBQeUJVRl9SRUFELCBvcmRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmRhcnJheShtKS50b2xpc3QoKSwgbmQudG9saXN0KCkpCisKKyAgICAgICAgIyBmbGFncworICAgICAgICBuZCA9IG5kYXJyYXkoWzEsMiwzLDQsNV0sIHNoYXBlPVszXSwgc3RyaWRlcz1bMl0pCisgICAgICAgIG0gPSBnZXRfY29udGlndW91cyhuZCwgUHlCVUZfUkVBRCwgJ0MnKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobS5jX2NvbnRpZ3VvdXMpCisKKyAgICBkZWYgdGVzdF9tZW1vcnl2aWV3X3NlcmlhbGl6aW5nKHNlbGYpOgorCisgICAgICAgICMgQy1jb250aWd1b3VzCisgICAgICAgIHNpemUgPSBzdHJ1Y3QuY2FsY3NpemUoJ2knKQorICAgICAgICBhID0gYXJyYXkuYXJyYXkoJ2knLCBbMSwyLDMsNCw1XSkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoYSkKKyAgICAgICAgYnVmID0gaW8uQnl0ZXNJTyhtKQorICAgICAgICBiID0gYnl0ZWFycmF5KDUqc2l6ZSkKKyAgICAgICAgYnVmLnJlYWRpbnRvKGIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS50b2J5dGVzKCksIGIpCisKKyAgICAgICAgIyBDLWNvbnRpZ3VvdXMsIG11bHRpLWRpbWVuc2lvbmFsCisgICAgICAgIHNpemUgPSBzdHJ1Y3QuY2FsY3NpemUoJ0wnKQorICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMikpLCBzaGFwZT1bMiwzLDJdLCBmb3JtYXQ9IkwiKQorICAgICAgICBtID0gbWVtb3J5dmlldyhuZCkKKyAgICAgICAgYnVmID0gaW8uQnl0ZXNJTyhtKQorICAgICAgICBiID0gYnl0ZWFycmF5KDIqMyoyKnNpemUpCisgICAgICAgIGJ1Zi5yZWFkaW50byhiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0udG9ieXRlcygpLCBiKQorCisgICAgICAgICMgRm9ydHJhbiBjb250aWd1b3VzLCBtdWx0aS1kaW1lbnNpb25hbAorICAgICAgICAjc2l6ZSA9IHN0cnVjdC5jYWxjc2l6ZSgnTCcpCisgICAgICAgICNuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgxMikpLCBzaGFwZT1bMiwzLDJdLCBmb3JtYXQ9IkwiLAorICAgICAgICAjICAgICAgICAgICAgIGZsYWdzPU5EX0ZPUlRSQU4pCisgICAgICAgICNtID0gbWVtb3J5dmlldyhuZCkKKyAgICAgICAgI2J1ZiA9IGlvLkJ5dGVzSU8obSkKKyAgICAgICAgI2IgPSBieXRlYXJyYXkoMiozKjIqc2l6ZSkKKyAgICAgICAgI2J1Zi5yZWFkaW50byhiKQorICAgICAgICAjc2VsZi5hc3NlcnRFcXVhbChtLnRvYnl0ZXMoKSwgYikKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfaGFzaChzZWxmKToKKworICAgICAgICAjIGJ5dGVzIGV4cG9ydGVyCisgICAgICAgIGIgPSBieXRlcyhsaXN0KHJhbmdlKDEyKSkpCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KGIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChiKSwgaGFzaChtKSkKKworICAgICAgICAjIEMtY29udGlndW91cworICAgICAgICBtYyA9IG0uY2FzdCgnYycsIHNoYXBlPVszLDRdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2gobWMpLCBoYXNoKGIpKQorCisgICAgICAgICMgbm9uLWNvbnRpZ3VvdXMKKyAgICAgICAgbXggPSBtWzo6LTJdCisgICAgICAgIGIgPSBieXRlcyhsaXN0KHJhbmdlKDEyKSlbOjotMl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChteCksIGhhc2goYikpCisKKyAgICAgICAgIyBGb3J0cmFuIGNvbnRpZ3VvdXMKKyAgICAgICAgbmQgPSBuZGFycmF5KGxpc3QocmFuZ2UoMzApKSwgc2hhcGU9WzMsMiw1XSwgZmxhZ3M9TkRfRk9SVFJBTikKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcobmQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChtKSwgaGFzaChuZCkpCisKKyAgICAgICAgIyBtdWx0aS1kaW1lbnNpb25hbCBzbGljZQorICAgICAgICBuZCA9IG5kYXJyYXkobGlzdChyYW5nZSgzMCkpLCBzaGFwZT1bMywyLDVdKQorICAgICAgICB4ID0gbmRbOjoyLCA6OiwgOjotMV0KKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoeCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNoKG0pLCBoYXNoKHgpKQorCisgICAgICAgICMgbXVsdGktZGltZW5zaW9uYWwgc2xpY2Ugd2l0aCBzdWJvZmZzZXRzCisgICAgICAgIG5kID0gbmRhcnJheShsaXN0KHJhbmdlKDMwKSksIHNoYXBlPVsyLDUsM10sIGZsYWdzPU5EX1BJTCkKKyAgICAgICAgeCA9IG5kWzo6MiwgOjosIDo6LTFdCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KHgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChtKSwgaGFzaCh4KSkKKworICAgICAgICAjIG5vbi1ieXRlIGZvcm1hdHMKKyAgICAgICAgbmQgPSBuZGFycmF5KGxpc3QocmFuZ2UoMTIpKSwgc2hhcGU9WzIsMiwzXSwgZm9ybWF0PSdMJykKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcobmQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChtKSwgaGFzaChuZC50b2J5dGVzKCkpKQorCisgICAgICAgIG5kID0gbmRhcnJheShsaXN0KHJhbmdlKC02LCA2KSksIHNoYXBlPVsyLDIsM10sIGZvcm1hdD0naCcpCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KG5kKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2gobSksIGhhc2gobmQudG9ieXRlcygpKSkKKworICAgIGRlZiB0ZXN0X21lbW9yeXZpZXdfcmVsZWFzZShzZWxmKToKKworICAgICAgICAjIENyZWF0ZSByZS1leHBvcnRlciBmcm9tIGdldGJ1ZmZlcihtZW1vcnl2aWV3KSwgdGhlbiByZWxlYXNlIHRoZSB2aWV3LgorICAgICAgICBhID0gYnl0ZWFycmF5KFsxLDIsM10pCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KGEpCisgICAgICAgIG5kID0gbmRhcnJheShtKSAjIHJlLWV4cG9ydGVyCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBtLnJlbGVhc2UpCisgICAgICAgIGRlbCBuZAorICAgICAgICBtLnJlbGVhc2UoKQorCisgICAgICAgIGEgPSBieXRlYXJyYXkoWzEsMiwzXSkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoYSkKKyAgICAgICAgbmQxID0gbmRhcnJheShtLCBnZXRidWY9UHlCVUZfRlVMTF9STywgZmxhZ3M9TkRfUkVESVJFQ1QpCisgICAgICAgIG5kMiA9IG5kYXJyYXkobmQxLCBnZXRidWY9UHlCVUZfRlVMTF9STywgZmxhZ3M9TkRfUkVESVJFQ1QpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobmQyLm9iaiwgbSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG0ucmVsZWFzZSkKKyAgICAgICAgZGVsIG5kMSwgbmQyCisgICAgICAgIG0ucmVsZWFzZSgpCisKKyAgICAgICAgIyBjaGFpbmVkIHZpZXdzCisgICAgICAgIGEgPSBieXRlYXJyYXkoWzEsMiwzXSkKKyAgICAgICAgbTEgPSBtZW1vcnl2aWV3KGEpCisgICAgICAgIG0yID0gbWVtb3J5dmlldyhtMSkKKyAgICAgICAgbmQgPSBuZGFycmF5KG0yKSAjIHJlLWV4cG9ydGVyCisgICAgICAgIG0xLnJlbGVhc2UoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvciwgbTIucmVsZWFzZSkKKyAgICAgICAgZGVsIG5kCisgICAgICAgIG0yLnJlbGVhc2UoKQorCisgICAgICAgIGEgPSBieXRlYXJyYXkoWzEsMiwzXSkKKyAgICAgICAgbTEgPSBtZW1vcnl2aWV3KGEpCisgICAgICAgIG0yID0gbWVtb3J5dmlldyhtMSkKKyAgICAgICAgbmQxID0gbmRhcnJheShtMiwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8sIGZsYWdzPU5EX1JFRElSRUNUKQorICAgICAgICBuZDIgPSBuZGFycmF5KG5kMSwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8sIGZsYWdzPU5EX1JFRElSRUNUKQorICAgICAgICBzZWxmLmFzc2VydElzKG5kMi5vYmosIG0yKQorICAgICAgICBtMS5yZWxlYXNlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnVmZmVyRXJyb3IsIG0yLnJlbGVhc2UpCisgICAgICAgIGRlbCBuZDEsIG5kMgorICAgICAgICBtMi5yZWxlYXNlKCkKKworICAgICAgICAjIEFsbG93IGNoYW5naW5nIGxheW91dCB3aGlsZSBidWZmZXJzIGFyZSBleHBvcnRlZC4KKyAgICAgICAgbmQgPSBuZGFycmF5KFsxLDIsM10sIHNoYXBlPVszXSwgZmxhZ3M9TkRfVkFSRVhQT1JUKQorICAgICAgICBtMSA9IG1lbW9yeXZpZXcobmQpCisKKyAgICAgICAgbmQucHVzaChbNCw1LDYsNyw4XSwgc2hhcGU9WzVdKSAjIG11dGF0ZSBuZAorICAgICAgICBtMiA9IG1lbW9yeXZpZXcobmQpCisKKyAgICAgICAgeCA9IG1lbW9yeXZpZXcobTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC50b2xpc3QoKSwgbTEudG9saXN0KCkpCisKKyAgICAgICAgeSA9IG1lbW9yeXZpZXcobTIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeS50b2xpc3QoKSwgbTIudG9saXN0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeS50b2xpc3QoKSwgbmQudG9saXN0KCkpCisgICAgICAgIG0yLnJlbGVhc2UoKQorICAgICAgICB5LnJlbGVhc2UoKQorCisgICAgICAgIG5kLnBvcCgpICMgcG9wIHRoZSBjdXJyZW50IHZpZXcKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LnRvbGlzdCgpLCBuZC50b2xpc3QoKSkKKworICAgICAgICBkZWwgbmQKKyAgICAgICAgbTEucmVsZWFzZSgpCisgICAgICAgIHgucmVsZWFzZSgpCisKKyAgICAgICAgIyBJZiBtdWx0aXBsZSBtZW1vcnl2aWV3cyBzaGFyZSB0aGUgc2FtZSBtYW5hZ2VkIGJ1ZmZlciwgaW1wbGljaXQKKyAgICAgICAgIyByZWxlYXNlKCkgaW4gdGhlIGNvbnRleHQgbWFuYWdlcidzIF9fZXhpdF9fKCkgbWV0aG9kIHNob3VsZCBzdGlsbAorICAgICAgICAjIHdvcmsuCisgICAgICAgIGRlZiBjYXRjaDIyKGIpOgorICAgICAgICAgICAgd2l0aCBtZW1vcnl2aWV3KGIpIGFzIG0yOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICB4ID0gYnl0ZWFycmF5KGInMTIzJykKKyAgICAgICAgd2l0aCBtZW1vcnl2aWV3KHgpIGFzIG0xOgorICAgICAgICAgICAgY2F0Y2gyMihtMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobTFbMF0sIG9yZChiJzEnKSkKKworICAgICAgICB4ID0gbmRhcnJheShsaXN0KHJhbmdlKDEyKSksIHNoYXBlPVsyLDIsM10sIGZvcm1hdD0nbCcpCisgICAgICAgIHkgPSBuZGFycmF5KHgsIGdldGJ1Zj1QeUJVRl9GVUxMX1JPLCBmbGFncz1ORF9SRURJUkVDVCkKKyAgICAgICAgeiA9IG5kYXJyYXkoeSwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8sIGZsYWdzPU5EX1JFRElSRUNUKQorICAgICAgICBzZWxmLmFzc2VydElzKHoub2JqLCB4KQorICAgICAgICB3aXRoIG1lbW9yeXZpZXcoeikgYXMgbToKKyAgICAgICAgICAgIGNhdGNoMjIobSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVswOjFdLnRvbGlzdCgpLCBbW1swLCAxLCAyXSwgWzMsIDQsIDVdXV0pCisKKyAgICAgICAgIyBUZXN0IGdhcmJhZ2UgY29sbGVjdGlvbi4KKyAgICAgICAgZm9yIGZsYWdzIGluICgwLCBORF9SRURJUkVDVCk6CisgICAgICAgICAgICB4ID0gYnl0ZWFycmF5KGInMTIzJykKKyAgICAgICAgICAgIHdpdGggbWVtb3J5dmlldyh4KSBhcyBtMToKKyAgICAgICAgICAgICAgICBkZWwgeAorICAgICAgICAgICAgICAgIHkgPSBuZGFycmF5KG0xLCBnZXRidWY9UHlCVUZfRlVMTF9STywgZmxhZ3M9ZmxhZ3MpCisgICAgICAgICAgICAgICAgd2l0aCBtZW1vcnl2aWV3KHkpIGFzIG0yOgorICAgICAgICAgICAgICAgICAgICBkZWwgeQorICAgICAgICAgICAgICAgICAgICB6ID0gbmRhcnJheShtMiwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8sIGZsYWdzPWZsYWdzKQorICAgICAgICAgICAgICAgICAgICB3aXRoIG1lbW9yeXZpZXcoeikgYXMgbTM6CisgICAgICAgICAgICAgICAgICAgICAgICBkZWwgegorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2gyMihtMykKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoMjIobTIpCisgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaDIyKG0xKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMVswXSwgb3JkKGInMScpKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMlsxXSwgb3JkKGInMicpKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtM1syXSwgb3JkKGInMycpKQorICAgICAgICAgICAgICAgICAgICAgICAgZGVsIG0zCisgICAgICAgICAgICAgICAgICAgIGRlbCBtMgorICAgICAgICAgICAgICAgIGRlbCBtMQorCisgICAgICAgICAgICB4ID0gYnl0ZWFycmF5KGInMTIzJykKKyAgICAgICAgICAgIHdpdGggbWVtb3J5dmlldyh4KSBhcyBtMToKKyAgICAgICAgICAgICAgICBkZWwgeAorICAgICAgICAgICAgICAgIHkgPSBuZGFycmF5KG0xLCBnZXRidWY9UHlCVUZfRlVMTF9STywgZmxhZ3M9ZmxhZ3MpCisgICAgICAgICAgICAgICAgd2l0aCBtZW1vcnl2aWV3KHkpIGFzIG0yOgorICAgICAgICAgICAgICAgICAgICBkZWwgeQorICAgICAgICAgICAgICAgICAgICB6ID0gbmRhcnJheShtMiwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8sIGZsYWdzPWZsYWdzKQorICAgICAgICAgICAgICAgICAgICB3aXRoIG1lbW9yeXZpZXcoeikgYXMgbTM6CisgICAgICAgICAgICAgICAgICAgICAgICBkZWwgegorICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2gyMihtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoMjIobTIpCisgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaDIyKG0zKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMVswXSwgb3JkKGInMScpKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtMlsxXSwgb3JkKGInMicpKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtM1syXSwgb3JkKGInMycpKQorICAgICAgICAgICAgICAgICAgICAgICAgZGVsIG0xLCBtMiwgbTMKKworICAgICAgICAjIG1lbW9yeXZpZXcucmVsZWFzZSgpIGZhaWxzIGlmIHRoZSB2aWV3IGhhcyBleHBvcnRlZCBidWZmZXJzLgorICAgICAgICB4ID0gYnl0ZWFycmF5KGInMTIzJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhCdWZmZXJFcnJvcik6CisgICAgICAgICAgICB3aXRoIG1lbW9yeXZpZXcoeCkgYXMgbToKKyAgICAgICAgICAgICAgICBleCA9IG5kYXJyYXkobSkKKyAgICAgICAgICAgICAgICBtWzBdID09IG9yZChiJzEnKQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19yZWRpcmVjdChzZWxmKToKKworICAgICAgICBuZCA9IG5kYXJyYXkoWzEuMCAqIHggZm9yIHggaW4gcmFuZ2UoMTIpXSwgc2hhcGU9WzEyXSwgZm9ybWF0PSdkJykKKyAgICAgICAgYSA9IGFycmF5LmFycmF5KCdkJywgWzEuMCAqIHggZm9yIHggaW4gcmFuZ2UoMTIpXSkKKworICAgICAgICBmb3IgeCBpbiAobmQsIGEpOgorICAgICAgICAgICAgeSA9IG5kYXJyYXkoeCwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8sIGZsYWdzPU5EX1JFRElSRUNUKQorICAgICAgICAgICAgeiA9IG5kYXJyYXkoeSwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8sIGZsYWdzPU5EX1JFRElSRUNUKQorICAgICAgICAgICAgbSA9IG1lbW9yeXZpZXcoeikKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyh5Lm9iaiwgeCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoei5vYmosIHgpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKG0ub2JqLCB4KQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIHgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIHkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIHopCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVsxOjNdLCB4WzE6M10pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bMTozXSwgeVsxOjNdKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtWzE6M10sIHpbMTozXSkKKyAgICAgICAgICAgIGRlbCB5LCB6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bMTozXSwgeFsxOjNdKQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19mcm9tX3N0YXRpY19leHBvcnRlcihzZWxmKToKKworICAgICAgICBmbXQgPSAnQicKKyAgICAgICAgbHN0ID0gWzAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTFdCisKKyAgICAgICAgIyBleGNlcHRpb25zCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc3RhdGljYXJyYXksIDEsIDIsIDMpCisKKyAgICAgICAgIyB2aWV3Lm9iaj09eAorICAgICAgICB4ID0gc3RhdGljYXJyYXkoKQorICAgICAgICB5ID0gbWVtb3J5dmlldyh4KQorICAgICAgICBzZWxmLnZlcmlmeSh5LCBvYmo9eCwKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9MSwgZm10PWZtdCwgcmVhZG9ubHk9MSwKKyAgICAgICAgICAgICAgICAgICAgbmRpbT0xLCBzaGFwZT1bMTJdLCBzdHJpZGVzPVsxXSwKKyAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCkKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTIpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh5W2ldLCBpKQorICAgICAgICBkZWwgeAorICAgICAgICBkZWwgeQorCisgICAgICAgIHggPSBzdGF0aWNhcnJheSgpCisgICAgICAgIHkgPSBtZW1vcnl2aWV3KHgpCisgICAgICAgIGRlbCB5CisgICAgICAgIGRlbCB4CisKKyAgICAgICAgeCA9IHN0YXRpY2FycmF5KCkKKyAgICAgICAgeSA9IG5kYXJyYXkoeCwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8pCisgICAgICAgIHogPSBuZGFycmF5KHksIGdldGJ1Zj1QeUJVRl9GVUxMX1JPKQorICAgICAgICBtID0gbWVtb3J5dmlldyh6KQorICAgICAgICBzZWxmLmFzc2VydElzKHkub2JqLCB4KQorICAgICAgICBzZWxmLmFzc2VydElzKG0ub2JqLCB6KQorICAgICAgICBzZWxmLnZlcmlmeShtLCBvYmo9eiwKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9MSwgZm10PWZtdCwgcmVhZG9ubHk9MSwKKyAgICAgICAgICAgICAgICAgICAgbmRpbT0xLCBzaGFwZT1bMTJdLCBzdHJpZGVzPVsxXSwKKyAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCkKKyAgICAgICAgZGVsIHgsIHksIHosIG0KKworICAgICAgICB4ID0gc3RhdGljYXJyYXkoKQorICAgICAgICB5ID0gbmRhcnJheSh4LCBnZXRidWY9UHlCVUZfRlVMTF9STywgZmxhZ3M9TkRfUkVESVJFQ1QpCisgICAgICAgIHogPSBuZGFycmF5KHksIGdldGJ1Zj1QeUJVRl9GVUxMX1JPLCBmbGFncz1ORF9SRURJUkVDVCkKKyAgICAgICAgbSA9IG1lbW9yeXZpZXcoeikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh5Lm9iaiwgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh6Lm9iaiwgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhtLm9iaiwgeCkKKyAgICAgICAgc2VsZi52ZXJpZnkobSwgb2JqPXgsCisgICAgICAgICAgICAgICAgICAgIGl0ZW1zaXplPTEsIGZtdD1mbXQsIHJlYWRvbmx5PTEsCisgICAgICAgICAgICAgICAgICAgIG5kaW09MSwgc2hhcGU9WzEyXSwgc3RyaWRlcz1bMV0sCisgICAgICAgICAgICAgICAgICAgIGxzdD1sc3QpCisgICAgICAgIGRlbCB4LCB5LCB6LCBtCisKKyAgICAgICAgIyB2aWV3Lm9iaj09TlVMTAorICAgICAgICB4ID0gc3RhdGljYXJyYXkobGVnYWN5X21vZGU9VHJ1ZSkKKyAgICAgICAgeSA9IG1lbW9yeXZpZXcoeCkKKyAgICAgICAgc2VsZi52ZXJpZnkoeSwgb2JqPU5vbmUsCisgICAgICAgICAgICAgICAgICAgIGl0ZW1zaXplPTEsIGZtdD1mbXQsIHJlYWRvbmx5PTEsCisgICAgICAgICAgICAgICAgICAgIG5kaW09MSwgc2hhcGU9WzEyXSwgc3RyaWRlcz1bMV0sCisgICAgICAgICAgICAgICAgICAgIGxzdD1sc3QpCisgICAgICAgIGZvciBpIGluIHJhbmdlKDEyKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeVtpXSwgaSkKKyAgICAgICAgZGVsIHgKKyAgICAgICAgZGVsIHkKKworICAgICAgICB4ID0gc3RhdGljYXJyYXkobGVnYWN5X21vZGU9VHJ1ZSkKKyAgICAgICAgeSA9IG1lbW9yeXZpZXcoeCkKKyAgICAgICAgZGVsIHkKKyAgICAgICAgZGVsIHgKKworICAgICAgICB4ID0gc3RhdGljYXJyYXkobGVnYWN5X21vZGU9VHJ1ZSkKKyAgICAgICAgeSA9IG5kYXJyYXkoeCwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8pCisgICAgICAgIHogPSBuZGFycmF5KHksIGdldGJ1Zj1QeUJVRl9GVUxMX1JPKQorICAgICAgICBtID0gbWVtb3J5dmlldyh6KQorICAgICAgICBzZWxmLmFzc2VydElzKHkub2JqLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzKG0ub2JqLCB6KQorICAgICAgICBzZWxmLnZlcmlmeShtLCBvYmo9eiwKKyAgICAgICAgICAgICAgICAgICAgaXRlbXNpemU9MSwgZm10PWZtdCwgcmVhZG9ubHk9MSwKKyAgICAgICAgICAgICAgICAgICAgbmRpbT0xLCBzaGFwZT1bMTJdLCBzdHJpZGVzPVsxXSwKKyAgICAgICAgICAgICAgICAgICAgbHN0PWxzdCkKKyAgICAgICAgZGVsIHgsIHksIHosIG0KKworICAgICAgICB4ID0gc3RhdGljYXJyYXkobGVnYWN5X21vZGU9VHJ1ZSkKKyAgICAgICAgeSA9IG5kYXJyYXkoeCwgZ2V0YnVmPVB5QlVGX0ZVTExfUk8sIGZsYWdzPU5EX1JFRElSRUNUKQorICAgICAgICB6ID0gbmRhcnJheSh5LCBnZXRidWY9UHlCVUZfRlVMTF9STywgZmxhZ3M9TkRfUkVESVJFQ1QpCisgICAgICAgIG0gPSBtZW1vcnl2aWV3KHopCisgICAgICAgICMgQ2xlYXJseSBzZXR0aW5nIHZpZXcub2JqPT1OVUxMIGlzIGluZmVyaW9yLCBzaW5jZSBpdAorICAgICAgICAjIG1lc3NlcyB1cCB0aGUgcmVkaXJlY3Rpb24gY2hhaW46CisgICAgICAgIHNlbGYuYXNzZXJ0SXMoeS5vYmosIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoei5vYmosIHkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobS5vYmosIHkpCisgICAgICAgIHNlbGYudmVyaWZ5KG0sIG9iaj15LAorICAgICAgICAgICAgICAgICAgICBpdGVtc2l6ZT0xLCBmbXQ9Zm10LCByZWFkb25seT0xLAorICAgICAgICAgICAgICAgICAgICBuZGltPTEsIHNoYXBlPVsxMl0sIHN0cmlkZXM9WzFdLAorICAgICAgICAgICAgICAgICAgICBsc3Q9bHN0KQorICAgICAgICBkZWwgeCwgeSwgeiwgbQorCisgICAgZGVmIHRlc3RfbWVtb3J5dmlld19nZXRidWZmZXJfdW5kZWZpbmVkKHNlbGYpOgorCisgICAgICAgICMgZ2V0YnVmZmVycHJvYyBkb2VzIG5vdCBhZGhlcmUgdG8gdGhlIG5ldyBkb2N1bWVudGF0aW9uCisgICAgICAgIG5kID0gbmRhcnJheShbMSwyLDNdLCBbM10sIGZsYWdzPU5EX0dFVEJVRl9GQUlMfE5EX0dFVEJVRl9VTkRFRklORUQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBtZW1vcnl2aWV3LCBuZCkKKworICAgIGRlZiB0ZXN0X2lzc3VlXzczODUoc2VsZik6CisgICAgICAgIHggPSBuZGFycmF5KFsxLDIsM10sIHNoYXBlPVszXSwgZmxhZ3M9TkRfR0VUQlVGX0ZBSUwpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEJ1ZmZlckVycm9yLCBtZW1vcnl2aWV3LCB4KQorCisKK2RlZiB0ZXN0X21haW4oKToKKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChUZXN0QnVmZmVyUHJvdG9jb2wpCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9idWlsdGluLnB5IGIvTGliL3Rlc3QvdGVzdF9idWlsdGluLnB5CmluZGV4IDU1ZmI2M2EuLmMzMjk5MmMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfYnVpbHRpbi5weQorKysgYi9MaWIvdGVzdC90ZXN0X2J1aWx0aW4ucHkKQEAgLTEsMTkgKzEsMjEgQEAKICMgUHl0aG9uIHRlc3Qgc2V0IC0tIGJ1aWx0LWluIGZ1bmN0aW9ucwogCi1pbXBvcnQgcGxhdGZvcm0KLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHN5cwotaW1wb3J0IHdhcm5pbmdzCitpbXBvcnQgYXN0CitpbXBvcnQgYnVpbHRpbnMKIGltcG9ydCBjb2xsZWN0aW9ucwogaW1wb3J0IGlvCitpbXBvcnQgbG9jYWxlCiBpbXBvcnQgb3MKLWltcG9ydCBhc3QKLWltcG9ydCB0eXBlcwotaW1wb3J0IGJ1aWx0aW5zCitpbXBvcnQgcGlja2xlCitpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCByYW5kb20KK2ltcG9ydCBzeXMKIGltcG9ydCB0cmFjZWJhY2sKLWZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBmY21wLCBURVNURk4sIHVubGluaywgIHJ1bl91bml0dGVzdCwgY2hlY2tfd2FybmluZ3MKK2ltcG9ydCB0eXBlcworaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgd2FybmluZ3MKIGZyb20gb3BlcmF0b3IgaW1wb3J0IG5lZworZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IFRFU1RGTiwgdW5saW5rLCAgcnVuX3VuaXR0ZXN0LCBjaGVja193YXJuaW5ncwogdHJ5OgogICAgIGltcG9ydCBwdHksIHNpZ25hbAogZXhjZXB0IEltcG9ydEVycm9yOgpAQCAtMTEwLDcgKzExMiwzMCBAQAogICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yCiAKK2RlZiBmaWx0ZXJfY2hhcihhcmcpOgorICAgIHJldHVybiBvcmQoYXJnKSA+IG9yZCgiZCIpCisKK2RlZiBtYXBfY2hhcihhcmcpOgorICAgIHJldHVybiBjaHIob3JkKGFyZykrMSkKKwogY2xhc3MgQnVpbHRpblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICMgSGVscGVyIHRvIGNoZWNrIHBpY2tsYWJpbGl0eQorICAgIGRlZiBjaGVja19pdGVyX3BpY2tsZShzZWxmLCBpdCwgc2VxKToKKyAgICAgICAgaXRvcmcgPSBpdAorICAgICAgICBkID0gcGlja2xlLmR1bXBzKGl0KQorICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoaXRvcmcpLCB0eXBlKGl0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0KSwgc2VxKQorCisgICAgICAgICN0ZXN0IHRoZSBpdGVyYXRvciBhZnRlciBkcm9wcGluZyBvbmUgZnJvbSBpdAorICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBuZXh0KGl0KQorICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBkID0gcGlja2xlLmR1bXBzKGl0KQorICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoaXQpLCBzZXFbMTpdKQogCiAgICAgZGVmIHRlc3RfaW1wb3J0KHNlbGYpOgogICAgICAgICBfX2ltcG9ydF9fKCdzeXMnKQpAQCAtMjU1LDggKzI4MCw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hyKDB4ZmYpLCAnXHhmZicpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGNociwgMTw8MjQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hyKHN5cy5tYXh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoKCdcXFUlMDh4JyAlIChzeXMubWF4dW5pY29kZSkpLmVuY29kZSgiYXNjaWkiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VuaWNvZGUtZXNjYXBlJykpCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKCdcXFUwMDEwZmZmZicuZW5jb2RlKCJhc2NpaSIpLCAndW5pY29kZS1lc2NhcGUnKSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjaHIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hyKDB4MDAwMEZGRkYpLCAiXFUwMDAwRkZGRiIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hyKDB4MDAwMTAwMDApLCAiXFUwMDAxMDAwMCIpCkBAIC0zNzgsNyArNDAyLDE1IEBACiAgICAgICAgIGYgPSBGb28oKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoZGlyKGYpID09IFsiZ2EiLCAia2FuIiwgInJvbyJdKQogCi0gICAgICAgICMgZGlyKG9ial9fZGlyX19ub3RfbGlzdCkKKyAgICAgICAgIyBkaXIob2JqX19kaXJfX3R1cGxlKQorICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2Rpcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAoImIiLCAiYyIsICJhIikKKyAgICAgICAgcmVzID0gZGlyKEZvbygpKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocmVzLCBsaXN0KQorICAgICAgICBzZWxmLmFzc2VydFRydWUocmVzID09IFsiYSIsICJiIiwgImMiXSkKKworICAgICAgICAjIGRpcihvYmpfX2Rpcl9fbm90X3NlcXVlbmNlKQogICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKICAgICAgICAgICAgIGRlZiBfX2Rpcl9fKHNlbGYpOgogICAgICAgICAgICAgICAgIHJldHVybiA3CkBAIC0zOTEsNiArNDIzLDggQEAKICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGlyKHN5cy5leGNfaW5mbygpWzJdKSksIDQpCiAKKyAgICAgICAgIyB0ZXN0IHRoYXQgb2JqZWN0IGhhcyBhIF9fZGlyX18oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChbXS5fX2Rpcl9fKCkpLCBkaXIoW10pKQogCiAgICAgZGVmIHRlc3RfZGl2bW9kKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpdm1vZCgxMiwgNyksICgxLCA1KSkKQEAgLTQwMCwxMCArNDM0LDEzIEBACiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaXZtb2QoLXN5cy5tYXhzaXplLTEsIC0xKSwgKHN5cy5tYXhzaXplKzEsIDApKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3QgZmNtcChkaXZtb2QoMy4yNSwgMS4wKSwgKDMuMCwgMC4yNSkpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGZjbXAoZGl2bW9kKC0zLjI1LCAxLjApLCAoLTQuMCwgMC43NSkpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGZjbXAoZGl2bW9kKDMuMjUsIC0xLjApLCAoLTQuMCwgLTAuNzUpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCBmY21wKGRpdm1vZCgtMy4yNSwgLTEuMCksICgzLjAsIC0wLjI1KSkpCisgICAgICAgIGZvciBudW0sIGRlbm9tLCBleHBfcmVzdWx0IGluIFsgKDMuMjUsIDEuMCwgKDMuMCwgMC4yNSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgtMy4yNSwgMS4wLCAoLTQuMCwgMC43NSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgzLjI1LCAtMS4wLCAoLTQuMCwgLTAuNzUpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLTMuMjUsIC0xLjAsICgzLjAsIC0wLjI1KSldOgorICAgICAgICAgICAgcmVzdWx0ID0gZGl2bW9kKG51bSwgZGVub20pCisgICAgICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKHJlc3VsdFswXSwgZXhwX3Jlc3VsdFswXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwocmVzdWx0WzFdLCBleHBfcmVzdWx0WzFdKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZGl2bW9kKQogCkBAIC01MTgsNiArNTU1LDM5IEBACiAgICAgICAgICAgICBkZWwgbFsnX19idWlsdGluc19fJ10KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoZywgbCksICh7J2EnOiAxfSwgeydiJzogMn0pKQogCisgICAgZGVmIHRlc3RfZXhlY19nbG9iYWxzKHNlbGYpOgorICAgICAgICBjb2RlID0gY29tcGlsZSgicHJpbnQoJ0hlbGxvIFdvcmxkIScpIiwgIiIsICJleGVjIikKKyAgICAgICAgIyBubyBidWlsdGluIGZ1bmN0aW9uCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoTmFtZUVycm9yLCAibmFtZSAncHJpbnQnIGlzIG5vdCBkZWZpbmVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjLCBjb2RlLCB7J19fYnVpbHRpbnNfXyc6IHt9fSkKKyAgICAgICAgIyBfX2J1aWx0aW5zX18gbXVzdCBiZSBhIG1hcHBpbmcgdHlwZQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMsIGNvZGUsIHsnX19idWlsdGluc19fJzogMTIzfSkKKworICAgICAgICAjIG5vIF9fYnVpbGRfY2xhc3NfXyBmdW5jdGlvbgorICAgICAgICBjb2RlID0gY29tcGlsZSgiY2xhc3MgQTogcGFzcyIsICIiLCAiZXhlYyIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoTmFtZUVycm9yLCAiX19idWlsZF9jbGFzc19fIG5vdCBmb3VuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlYywgY29kZSwgeydfX2J1aWx0aW5zX18nOiB7fX0pCisKKyAgICAgICAgY2xhc3MgZnJvemVuZGljdF9lcnJvcihFeGNlcHRpb24pOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGNsYXNzIGZyb3plbmRpY3QoZGljdCk6CisgICAgICAgICAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6CisgICAgICAgICAgICAgICAgcmFpc2UgZnJvemVuZGljdF9lcnJvcigiZnJvemVuZGljdCBpcyByZWFkb25seSIpCisKKyAgICAgICAgIyByZWFkLW9ubHkgYnVpbHRpbnMKKyAgICAgICAgZnJvemVuX2J1aWx0aW5zID0gZnJvemVuZGljdChfX2J1aWx0aW5zX18pCisgICAgICAgIGNvZGUgPSBjb21waWxlKCJfX2J1aWx0aW5zX19bJ3N1cGVyZ2xvYmFsJ109MjsgcHJpbnQoc3VwZXJnbG9iYWwpIiwgInRlc3QiLCAiZXhlYyIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGZyb3plbmRpY3RfZXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWMsIGNvZGUsIHsnX19idWlsdGluc19fJzogZnJvemVuX2J1aWx0aW5zfSkKKworICAgICAgICAjIHJlYWQtb25seSBnbG9iYWxzCisgICAgICAgIG5hbWVzcGFjZSA9IGZyb3plbmRpY3Qoe30pCisgICAgICAgIGNvZGUgPSBjb21waWxlKCJ4PTEiLCAidGVzdCIsICJleGVjIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZnJvemVuZGljdF9lcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlYywgY29kZSwgbmFtZXNwYWNlKQorCiAgICAgZGVmIHRlc3RfZXhlY19yZWRpcmVjdGVkKHNlbGYpOgogICAgICAgICBzYXZlc3Rkb3V0ID0gc3lzLnN0ZG91dAogICAgICAgICBzeXMuc3Rkb3V0ID0gTm9uZSAjIFdoYXRldmVyIHRoYXQgY2Fubm90IGZsdXNoKCkKQEAgLTU1NCw2ICs2MjQsMTEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGZpbHRlcihsYW1iZGEgeDogeD49MywgKDEsIDIsIDMsIDQpKSksIFszLCA0XSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsaXN0LCBmaWx0ZXIoNDIsICgxLCAyKSkpCiAKKyAgICBkZWYgdGVzdF9maWx0ZXJfcGlja2xlKHNlbGYpOgorICAgICAgICBmMSA9IGZpbHRlcihmaWx0ZXJfY2hhciwgImFiY2RlYWJjZGUiKQorICAgICAgICBmMiA9IGZpbHRlcihmaWx0ZXJfY2hhciwgImFiY2RlYWJjZGUiKQorICAgICAgICBzZWxmLmNoZWNrX2l0ZXJfcGlja2xlKGYxLCBsaXN0KGYyKSkKKwogICAgIGRlZiB0ZXN0X2dldGF0dHIoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShnZXRhdHRyKHN5cywgJ3N0ZG91dCcpIGlzIHN5cy5zdGRvdXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZ2V0YXR0ciwgc3lzLCAxKQpAQCAtNzQ3LDYgKzgyMiwxMSBAQAogICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgbGlzdCwgbWFwKGJhZGZ1bmMsIHJhbmdlKDUpKSkKIAorICAgIGRlZiB0ZXN0X21hcF9waWNrbGUoc2VsZik6CisgICAgICAgIG0xID0gbWFwKG1hcF9jaGFyLCAiSXMgdGhpcyB0aGUgcmVhbCBsaWZlPyIpCisgICAgICAgIG0yID0gbWFwKG1hcF9jaGFyLCAiSXMgdGhpcyB0aGUgcmVhbCBsaWZlPyIpCisgICAgICAgIHNlbGYuY2hlY2tfaXRlcl9waWNrbGUobTEsIGxpc3QobTIpKQorCiAgICAgZGVmIHRlc3RfbWF4KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1heCgnMTIzMTIzJyksICczJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYXgoMSwgMiwgMyksIDMpCkBAIC04ODAsNyArOTYwLDI5IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZwLnJlYWQoMTAwMCksICdZWVknKjEwMCkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIGZwLmNsb3NlKCkKLSAgICAgICAgdW5saW5rKFRFU1RGTikKKyAgICAgICAgICAgIHVubGluayhURVNURk4pCisKKyAgICBkZWYgdGVzdF9vcGVuX2RlZmF1bHRfZW5jb2Rpbmcoc2VsZik6CisgICAgICAgIG9sZF9lbnZpcm9uID0gZGljdChvcy5lbnZpcm9uKQorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIHRyeSB0byBnZXQgYSB1c2VyIHByZWZlcnJlZCBlbmNvZGluZyBkaWZmZXJlbnQgdGhhbiB0aGUgY3VycmVudAorICAgICAgICAgICAgIyBsb2NhbGUgZW5jb2RpbmcgdG8gY2hlY2sgdGhhdCBvcGVuKCkgdXNlcyB0aGUgY3VycmVudCBsb2NhbGUKKyAgICAgICAgICAgICMgZW5jb2RpbmcgYW5kIG5vdCB0aGUgdXNlciBwcmVmZXJyZWQgZW5jb2RpbmcKKyAgICAgICAgICAgIGZvciBrZXkgaW4gKCdMQ19BTEwnLCAnTEFORycsICdMQ19DVFlQRScpOgorICAgICAgICAgICAgICAgIGlmIGtleSBpbiBvcy5lbnZpcm9uOgorICAgICAgICAgICAgICAgICAgICBkZWwgb3MuZW52aXJvbltrZXldCisKKyAgICAgICAgICAgIHNlbGYud3JpdGVfdGVzdGZpbGUoKQorICAgICAgICAgICAgY3VycmVudF9sb2NhbGVfZW5jb2RpbmcgPSBsb2NhbGUuZ2V0cHJlZmVycmVkZW5jb2RpbmcoRmFsc2UpCisgICAgICAgICAgICBmcCA9IG9wZW4oVEVTVEZOLCAndycpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmcC5lbmNvZGluZywgY3VycmVudF9sb2NhbGVfZW5jb2RpbmcpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGZwLmNsb3NlKCkKKyAgICAgICAgICAgICAgICB1bmxpbmsoVEVTVEZOKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuZW52aXJvbi5jbGVhcigpCisgICAgICAgICAgICBvcy5lbnZpcm9uLnVwZGF0ZShvbGRfZW52aXJvbikKIAogICAgIGRlZiB0ZXN0X29yZChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcmQoJyAnKSwgMzIpCkBAIC0xMTk3LDYgKzEyOTksOSBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHN1bSwgNDIpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc3VtLCBbJ2EnLCAnYicsICdjJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc3VtLCBbJ2EnLCAnYicsICdjJ10sICcnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHN1bSwgW2InYScsIGInYyddLCBiJycpCisgICAgICAgIHZhbHVlcyA9IFtieXRlYXJyYXkoYidhJyksIGJ5dGVhcnJheShiJ2InKV0KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzdW0sIHZhbHVlcywgYnl0ZWFycmF5KGInJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc3VtLCBbWzFdLCBbMl0sIFszXV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc3VtLCBbezI6M31dKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHN1bSwgW3syOjN9XSoyLCB7MjozfSkKQEAgLTEyODUsNiArMTM5MCwxMyBAQAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gaQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBsaXN0LCB6aXAoQmFkU2VxKCksIEJhZFNlcSgpKSkKIAorICAgIGRlZiB0ZXN0X3ppcF9waWNrbGUoc2VsZik6CisgICAgICAgIGEgPSAoMSwgMiwgMykKKyAgICAgICAgYiA9ICg0LCA1LCA2KQorICAgICAgICB0ID0gWygxLCA0KSwgKDIsIDUpLCAoMywgNildCisgICAgICAgIHoxID0gemlwKGEsIGIpCisgICAgICAgIHNlbGYuY2hlY2tfaXRlcl9waWNrbGUoejEsIHQpCisKICAgICBkZWYgdGVzdF9mb3JtYXQoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGUgYmFzaWMgbWFjaGluZXJ5IG9mIHRoZSBmb3JtYXQoKSBidWlsdGluLiAgRG9uJ3QgdGVzdAogICAgICAgICAjICB0aGUgc3BlY2lmaWNzIG9mIHRoZSB2YXJpb3VzIGZvcm1hdHRlcnMKQEAgLTEzNTgsMTQgKzE0NzAsMTQgQEAKIAogICAgICAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICMgSXNzdWUgIzc5OTQ6IG9iamVjdC5fX2Zvcm1hdF9fIHdpdGggYSBub24tZW1wdHkgZm9ybWF0IHN0cmluZyBpcwotICAgICAgICAjICBwZW5kaW5nIGRlcHJlY2F0ZWQKKyAgICAgICAgIyAgZGVwcmVjYXRlZAogICAgICAgICBkZWYgdGVzdF9kZXByZWNhdGVkX2Zvcm1hdF9zdHJpbmcob2JqLCBmbXRfc3RyLCBzaG91bGRfcmFpc2Vfd2FybmluZyk6CiAgICAgICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKHJlY29yZD1UcnVlKSBhcyB3OgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiYWx3YXlzIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImFsd2F5cyIsIERlcHJlY2F0aW9uV2FybmluZykKICAgICAgICAgICAgICAgICBmb3JtYXQob2JqLCBmbXRfc3RyKQogICAgICAgICAgICAgaWYgc2hvdWxkX3JhaXNlX3dhcm5pbmc6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odyksIDEpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHdbMF0ubWVzc2FnZSwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uod1swXS5tZXNzYWdlLCBEZXByZWNhdGlvbldhcm5pbmcpCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbignb2JqZWN0Ll9fZm9ybWF0X18gd2l0aCBhIG5vbi1lbXB0eSBmb3JtYXQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmluZycsIHN0cih3WzBdLm1lc3NhZ2UpKQogICAgICAgICAgICAgZWxzZToKQEAgLTE0MDksNiArMTUyMSwxMyBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCB4LnRyYW5zbGF0ZSwgYiIxIiwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB4LnRyYW5zbGF0ZSwgYiIxIioyNTYsIDEpCiAKKyAgICBkZWYgdGVzdF9jb25zdHJ1Y3Rfc2luZ2xldG9ucyhzZWxmKToKKyAgICAgICAgZm9yIGNvbnN0IGluIE5vbmUsIEVsbGlwc2lzLCBOb3RJbXBsZW1lbnRlZDoKKyAgICAgICAgICAgIHRwID0gdHlwZShjb25zdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXModHAoKSwgY29uc3QpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHRwLCAxLCAyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB0cCwgYT0xLCBiPTIpCisKIGNsYXNzIFRlc3RTb3J0ZWQodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2J5dGVzLnB5IGIvTGliL3Rlc3QvdGVzdF9ieXRlcy5weQppbmRleCA1ZWFiOGY1Li44Y2U2YzIyIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2J5dGVzLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfYnl0ZXMucHkKQEAgLTE4OCwyNCArMTg4LDI2IEBACiAKICAgICBkZWYgdGVzdF9lbmNvZGluZyhzZWxmKToKICAgICAgICAgc2FtcGxlID0gIkhlbGxvIHdvcmxkXG5cdTEyMzRcdTU2NzhcdTlhYmMiCi0gICAgICAgIGZvciBlbmMgaW4gKCJ1dGY4IiwgInV0ZjE2Iik6CisgICAgICAgIGZvciBlbmMgaW4gKCJ1dGYtOCIsICJ1dGYtMTYiKToKICAgICAgICAgICAgIGIgPSBzZWxmLnR5cGUydGVzdChzYW1wbGUsIGVuYykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiwgc2VsZi50eXBlMnRlc3Qoc2FtcGxlLmVuY29kZShlbmMpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZUVuY29kZUVycm9yLCBzZWxmLnR5cGUydGVzdCwgc2FtcGxlLCAibGF0aW4xIikKLSAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KHNhbXBsZSwgImxhdGluMSIsICJpZ25vcmUiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRW5jb2RlRXJyb3IsIHNlbGYudHlwZTJ0ZXN0LCBzYW1wbGUsICJsYXRpbi0xIikKKyAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KHNhbXBsZSwgImxhdGluLTEiLCAiaWdub3JlIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLCBzZWxmLnR5cGUydGVzdChzYW1wbGVbOi0zXSwgInV0Zi04IikpCiAKICAgICBkZWYgdGVzdF9kZWNvZGUoc2VsZik6CiAgICAgICAgIHNhbXBsZSA9ICJIZWxsbyB3b3JsZFxuXHUxMjM0XHU1Njc4XHU5YWJjXGRlZjBcZGVmMCIKLSAgICAgICAgZm9yIGVuYyBpbiAoInV0ZjgiLCAidXRmMTYiKToKKyAgICAgICAgZm9yIGVuYyBpbiAoInV0Zi04IiwgInV0Zi0xNiIpOgogICAgICAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KHNhbXBsZSwgZW5jKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmRlY29kZShlbmMpLCBzYW1wbGUpCiAgICAgICAgIHNhbXBsZSA9ICJIZWxsbyB3b3JsZFxuXHg4MFx4ODFceGZlXHhmZiIKLSAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KHNhbXBsZSwgImxhdGluMSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaWNvZGVEZWNvZGVFcnJvciwgYi5kZWNvZGUsICJ1dGY4IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmRlY29kZSgidXRmOCIsICJpZ25vcmUiKSwgIkhlbGxvIHdvcmxkXG4iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuZGVjb2RlKGVycm9ycz0iaWdub3JlIiwgZW5jb2Rpbmc9InV0ZjgiKSwKKyAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KHNhbXBsZSwgImxhdGluLTEiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRGVjb2RlRXJyb3IsIGIuZGVjb2RlLCAidXRmLTgiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuZGVjb2RlKCJ1dGYtOCIsICJpZ25vcmUiKSwgIkhlbGxvIHdvcmxkXG4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuZGVjb2RlKGVycm9ycz0iaWdub3JlIiwgZW5jb2Rpbmc9InV0Zi04IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgIkhlbGxvIHdvcmxkXG4iKQorICAgICAgICAjIERlZmF1bHQgZW5jb2RpbmcgaXMgdXRmLTgKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnR5cGUydGVzdChiJ1x4ZTJceDk4XHg4MycpLmRlY29kZSgpLCAnXHUyNjAzJykKIAogICAgIGRlZiB0ZXN0X2Zyb21faW50KHNlbGYpOgogICAgICAgICBiID0gc2VsZi50eXBlMnRlc3QoMCkKQEAgLTI5MSwxMCArMjkzLDI3IEBACiAKICAgICBkZWYgdGVzdF9jb3VudChzZWxmKToKICAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInbWlzc2lzc2lwcGknKQorICAgICAgICBpID0gMTA1CisgICAgICAgIHAgPSAxMTIKKyAgICAgICAgdyA9IDExOQorCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5jb3VudChiJ2knKSwgNCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmNvdW50KGInc3MnKSwgMikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmNvdW50KGIndycpLCAwKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5jb3VudChpKSwgNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmNvdW50KHcpLCAwKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5jb3VudChiJ2knLCA2KSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmNvdW50KGIncCcsIDYpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuY291bnQoYidpJywgMSwgMyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5jb3VudChiJ3AnLCA3LCA5KSwgMSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuY291bnQoaSwgNiksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5jb3VudChwLCA2KSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmNvdW50KGksIDEsIDMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuY291bnQocCwgNywgOSksIDEpCisKICAgICBkZWYgdGVzdF9zdGFydHN3aXRoKHNlbGYpOgogICAgICAgICBiID0gc2VsZi50eXBlMnRlc3QoYidoZWxsbycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi50eXBlMnRlc3QoKS5zdGFydHN3aXRoKGIiYW55dGhpbmciKSkKQEAgLTMyNSwzNSArMzQ0LDg2IEBACiAKICAgICBkZWYgdGVzdF9maW5kKHNlbGYpOgogICAgICAgICBiID0gc2VsZi50eXBlMnRlc3QoYidtaXNzaXNzaXBwaScpCisgICAgICAgIGkgPSAxMDUKKyAgICAgICAgdyA9IDExOQorCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5maW5kKGInc3MnKSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmZpbmQoYidzcycsIDMpLCA1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuZmluZChiJ3NzJywgMSwgNyksIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5maW5kKGInc3MnLCAxLCAzKSwgLTEpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5maW5kKGIndycpLCAtMSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmZpbmQoYidtaXNzaXNzaXBwaWFuJyksIC0xKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5maW5kKGkpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuZmluZCh3KSwgLTEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmZpbmQoYidzcycsIDMpLCA1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuZmluZChiJ3NzJywgMSwgNyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5maW5kKGInc3MnLCAxLCAzKSwgLTEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmZpbmQoaSwgNiksIDcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5maW5kKGksIDEsIDMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuZmluZCh3LCAxLCAzKSwgLTEpCisKKyAgICAgICAgZm9yIGluZGV4IGluICgtMSwgMjU2LCBzeXMubWF4c2l6ZSArIDEpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleCgKKyAgICAgICAgICAgICAgICBWYWx1ZUVycm9yLCByJ2J5dGUgbXVzdCBiZSBpbiByYW5nZVwoMCwgMjU2XCknLAorICAgICAgICAgICAgICAgIGIuZmluZCwgaW5kZXgpCisKICAgICBkZWYgdGVzdF9yZmluZChzZWxmKToKICAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInbWlzc2lzc2lwcGknKQorICAgICAgICBpID0gMTA1CisgICAgICAgIHcgPSAxMTkKKwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucmZpbmQoYidzcycpLCA1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucmZpbmQoYidzcycsIDMpLCA1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucmZpbmQoYidzcycsIDAsIDYpLCAyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucmZpbmQoYid3JyksIC0xKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucmZpbmQoYidtaXNzaXNzaXBwaWFuJyksIC0xKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yZmluZChpKSwgMTApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yZmluZCh3KSwgLTEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLnJmaW5kKGInc3MnLCAzKSwgNSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLnJmaW5kKGInc3MnLCAwLCA2KSwgMikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucmZpbmQoaSwgMSwgMyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yZmluZChpLCAzLCA5KSwgNykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLnJmaW5kKHcsIDEsIDMpLCAtMSkKKwogICAgIGRlZiB0ZXN0X2luZGV4KHNlbGYpOgotICAgICAgICBiID0gc2VsZi50eXBlMnRlc3QoYid3b3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5pbmRleChiJ3cnKSwgMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmluZGV4KGInb3JsJyksIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGIuaW5kZXgsIGInd29ybScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGIuaW5kZXgsIGInbGRvJykKKyAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInbWlzc2lzc2lwcGknKQorICAgICAgICBpID0gMTA1CisgICAgICAgIHcgPSAxMTkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuaW5kZXgoYidzcycpLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiLmluZGV4LCBiJ3cnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiLmluZGV4LCBiJ21pc3Npc3NpcHBpYW4nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5pbmRleChpKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYi5pbmRleCwgdykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuaW5kZXgoYidzcycsIDMpLCA1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuaW5kZXgoYidzcycsIDEsIDcpLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiLmluZGV4LCBiJ3NzJywgMSwgMykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuaW5kZXgoaSwgNiksIDcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5pbmRleChpLCAxLCAzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYi5pbmRleCwgdywgMSwgMykKIAogICAgIGRlZiB0ZXN0X3JpbmRleChzZWxmKToKLSAgICAgICAgIyBYWFggY291bGQgYmUgbW9yZSByaWdvcm91cwotICAgICAgICBiID0gc2VsZi50eXBlMnRlc3QoYid3b3JsZCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yaW5kZXgoYid3JyksIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yaW5kZXgoYidvcmwnKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYi5yaW5kZXgsIGInd29ybScpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGIucmluZGV4LCBiJ2xkbycpCisgICAgICAgIGIgPSBzZWxmLnR5cGUydGVzdChiJ21pc3Npc3NpcHBpJykKKyAgICAgICAgaSA9IDEwNQorICAgICAgICB3ID0gMTE5CisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLnJpbmRleChiJ3NzJyksIDUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGIucmluZGV4LCBiJ3cnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiLnJpbmRleCwgYidtaXNzaXNzaXBwaWFuJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucmluZGV4KGkpLCAxMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYi5yaW5kZXgsIHcpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLnJpbmRleChiJ3NzJywgMyksIDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yaW5kZXgoYidzcycsIDAsIDYpLCAyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yaW5kZXgoaSwgMSwgMyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yaW5kZXgoaSwgMywgOSksIDcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGIucmluZGV4LCB3LCAxLCAzKQogCiAgICAgZGVmIHRlc3RfcmVwbGFjZShzZWxmKToKICAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInbWlzc2lzc2lwcGknKQpAQCAtMzY1LDYgKzQzNSwxNCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuc3BsaXQoYidpJyksIFtiJ20nLCBiJ3NzJywgYidzcycsIGIncHAnLCBiJyddKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuc3BsaXQoYidzcycpLCBbYidtaScsIGInaScsIGInaXBwaSddKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuc3BsaXQoYid3JyksIFtiXSkKKyAgICAgICAgIyB3aXRoIGtleXdvcmQgYXJncworICAgICAgICBiID0gc2VsZi50eXBlMnRlc3QoYidhfGJ8Y3xkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLnNwbGl0KHNlcD1iJ3wnKSwgW2InYScsIGInYicsIGInYycsIGInZCddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuc3BsaXQoYid8JywgbWF4c3BsaXQ9MSksIFtiJ2EnLCBiJ2J8Y3xkJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5zcGxpdChzZXA9Yid8JywgbWF4c3BsaXQ9MSksIFtiJ2EnLCBiJ2J8Y3xkJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5zcGxpdChtYXhzcGxpdD0xLCBzZXA9Yid8JyksIFtiJ2EnLCBiJ2J8Y3xkJ10pCisgICAgICAgIGIgPSBzZWxmLnR5cGUydGVzdChiJ2EgYiBjIGQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuc3BsaXQobWF4c3BsaXQ9MSksIFtiJ2EnLCBiJ2IgYyBkJ10pCiAKICAgICBkZWYgdGVzdF9zcGxpdF93aGl0ZXNwYWNlKHNlbGYpOgogICAgICAgICBmb3IgYiBpbiAoYicgIGFyZiAgYmFyZiAgJywgYidhcmZcdGJhcmYnLCBiJ2FyZlxuYmFyZicsIGInYXJmXHJiYXJmJywKQEAgLTM5Myw2ICs0NzEsMTQgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLnJzcGxpdChiJ2knKSwgW2InbScsIGInc3MnLCBiJ3NzJywgYidwcCcsIGInJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yc3BsaXQoYidzcycpLCBbYidtaScsIGInaScsIGInaXBwaSddKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucnNwbGl0KGIndycpLCBbYl0pCisgICAgICAgICMgd2l0aCBrZXl3b3JkIGFyZ3MKKyAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInYXxifGN8ZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yc3BsaXQoc2VwPWInfCcpLCBbYidhJywgYidiJywgYidjJywgYidkJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yc3BsaXQoYid8JywgbWF4c3BsaXQ9MSksIFtiJ2F8YnxjJywgYidkJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yc3BsaXQoc2VwPWInfCcsIG1heHNwbGl0PTEpLCBbYidhfGJ8YycsIGInZCddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucnNwbGl0KG1heHNwbGl0PTEsIHNlcD1iJ3wnKSwgW2InYXxifGMnLCBiJ2QnXSkKKyAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInYSBiIGMgZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yc3BsaXQobWF4c3BsaXQ9MSksIFtiJ2EgYiBjJywgYidkJ10pCiAKICAgICBkZWYgdGVzdF9yc3BsaXRfd2hpdGVzcGFjZShzZWxmKToKICAgICAgICAgZm9yIGIgaW4gKGInICBhcmYgIGJhcmYgICcsIGInYXJmXHRiYXJmJywgYidhcmZcbmJhcmYnLCBiJ2FyZlxyYmFyZicsCkBAIC00MzIsNiArNTE4LDI0IEBACiAgICAgICAgICAgICAgICAgcSA9IHBpY2tsZS5sb2FkcyhwcykKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIsIHEpCiAKKyAgICBkZWYgdGVzdF9pdGVyYXRvcl9waWNrbGluZyhzZWxmKToKKyAgICAgICAgZm9yIGIgaW4gYiIiLCBiImEiLCBiImFiYyIsIGIiXHhmZmFiXHg4MCIsIGIiXDBcMFwzNzdcMFwwIjoKKyAgICAgICAgICAgIGl0ID0gaXRvcmcgPSBpdGVyKHNlbGYudHlwZTJ0ZXN0KGIpKQorICAgICAgICAgICAgZGF0YSA9IGxpc3Qoc2VsZi50eXBlMnRlc3QoYikpCisgICAgICAgICAgICBkID0gcGlja2xlLmR1bXBzKGl0KQorICAgICAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShpdG9yZyksIHR5cGUoaXQpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0KSwgZGF0YSkKKworICAgICAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBuZXh0KGl0KQorICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXQpCisgICAgICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0KSwgZGF0YVsxOl0pCisKICAgICBkZWYgdGVzdF9zdHJpcChzZWxmKToKICAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInbWlzc2lzc2lwcGknKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuc3RyaXAoYidpJyksIGInbWlzc2lzc2lwcCcpCkBAIC00NzMsNiArNTc3LDI3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi50eXBlMnRlc3QoYidhYmMnKS5sc3RyaXAsICdiJykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnR5cGUydGVzdChiJ2FiYycpLnJzdHJpcCwgJ2InKQogCisgICAgZGVmIHRlc3RfY2VudGVyKHNlbGYpOgorICAgICAgICAjIEZpbGwgY2hhcmFjdGVyIGNhbiBiZSBlaXRoZXIgYnl0ZXMgb3IgYnl0ZWFycmF5IChpc3N1ZSAxMjM4MCkKKyAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInYWJjJykKKyAgICAgICAgZm9yIGZpbGxfdHlwZSBpbiAoYnl0ZXMsIGJ5dGVhcnJheSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuY2VudGVyKDcsIGZpbGxfdHlwZShiJy0nKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHlwZTJ0ZXN0KGInLS1hYmMtLScpKQorCisgICAgZGVmIHRlc3RfbGp1c3Qoc2VsZik6CisgICAgICAgICMgRmlsbCBjaGFyYWN0ZXIgY2FuIGJlIGVpdGhlciBieXRlcyBvciBieXRlYXJyYXkgKGlzc3VlIDEyMzgwKQorICAgICAgICBiID0gc2VsZi50eXBlMnRlc3QoYidhYmMnKQorICAgICAgICBmb3IgZmlsbF90eXBlIGluIChieXRlcywgYnl0ZWFycmF5KToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5sanVzdCg3LCBmaWxsX3R5cGUoYictJykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnR5cGUydGVzdChiJ2FiYy0tLS0nKSkKKworICAgIGRlZiB0ZXN0X3JqdXN0KHNlbGYpOgorICAgICAgICAjIEZpbGwgY2hhcmFjdGVyIGNhbiBiZSBlaXRoZXIgYnl0ZXMgb3IgYnl0ZWFycmF5IChpc3N1ZSAxMjM4MCkKKyAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInYWJjJykKKyAgICAgICAgZm9yIGZpbGxfdHlwZSBpbiAoYnl0ZXMsIGJ5dGVhcnJheSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIucmp1c3QoNywgZmlsbF90eXBlKGInLScpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50eXBlMnRlc3QoYictLS0tYWJjJykpCisKICAgICBkZWYgdGVzdF9vcmQoc2VsZik6CiAgICAgICAgIGIgPSBzZWxmLnR5cGUydGVzdChiJ1wwQVx4N2ZceDgwXHhmZicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW29yZChiW2k6aSsxXSkgZm9yIGkgaW4gcmFuZ2UobGVuKGIpKV0sCkBAIC01MjksNiArNjU0LDE0IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgYi5zdGFydHN3aXRoKGgsIE5vbmUsIC0yKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgYi5zdGFydHN3aXRoKHgsIE5vbmUsIE5vbmUpKQogCisgICAgZGVmIHRlc3RfaW50ZWdlcl9hcmd1bWVudHNfb3V0X29mX2J5dGVfcmFuZ2Uoc2VsZik6CisgICAgICAgIGIgPSBzZWxmLnR5cGUydGVzdChiJ2hlbGxvJykKKworICAgICAgICBmb3IgbWV0aG9kIGluIChiLmNvdW50LCBiLmZpbmQsIGIuaW5kZXgsIGIucmZpbmQsIGIucmluZGV4KToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG1ldGhvZCwgLTEpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtZXRob2QsIDI1NikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG1ldGhvZCwgOTk5OSkKKwogICAgIGRlZiB0ZXN0X2ZpbmRfZXRjX3JhaXNlX2NvcnJlY3RfZXJyb3JfbWVzc2FnZXMoc2VsZik6CiAgICAgICAgICMgaXNzdWUgMTE4MjgKICAgICAgICAgYiA9IHNlbGYudHlwZTJ0ZXN0KGInaGVsbG8nKQpAQCAtNjM0LDYgKzc2NywzOSBAQAogICAgICAgICBiLnJldmVyc2UoKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGIpCiAKKyAgICBkZWYgdGVzdF9jbGVhcihzZWxmKToKKyAgICAgICAgYiA9IGJ5dGVhcnJheShiJ3B5dGhvbicpCisgICAgICAgIGIuY2xlYXIoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIsIGInJykKKworICAgICAgICBiID0gYnl0ZWFycmF5KGInJykKKyAgICAgICAgYi5jbGVhcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiwgYicnKQorCisgICAgICAgIGIgPSBieXRlYXJyYXkoYicnKQorICAgICAgICBiLmFwcGVuZChvcmQoJ3InKSkKKyAgICAgICAgYi5jbGVhcigpCisgICAgICAgIGIuYXBwZW5kKG9yZCgncCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIsIGIncCcpCisKKyAgICBkZWYgdGVzdF9jb3B5KHNlbGYpOgorICAgICAgICBiID0gYnl0ZWFycmF5KGInYWJjJykKKyAgICAgICAgYmIgPSBiLmNvcHkoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJiLCBiJ2FiYycpCisKKyAgICAgICAgYiA9IGJ5dGVhcnJheShiJycpCisgICAgICAgIGJiID0gYi5jb3B5KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYiwgYicnKQorCisgICAgICAgICMgdGVzdCB0aGF0IGl0J3MgaW5kZWVkIGEgY29weSBhbmQgbm90IGEgcmVmZXJlbmNlCisgICAgICAgIGIgPSBieXRlYXJyYXkoYidhYmMnKQorICAgICAgICBiYiA9IGIuY29weSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiwgYmIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoYiwgYmIpCisgICAgICAgIGJiLmFwcGVuZChvcmQoJ2QnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYiwgYidhYmNkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLCBiJ2FiYycpCisKICAgICBkZWYgdGVzdF9yZWdleHBzKHNlbGYpOgogICAgICAgICBkZWYgYnkocyk6CiAgICAgICAgICAgICByZXR1cm4gYnl0ZWFycmF5KG1hcChvcmQsIHMpKQpAQCAtMTEwNSw5ICsxMjcxLDExIEBACiAKIGNsYXNzIEJ5dGVBcnJheUFzU3RyaW5nVGVzdChGaXhlZFN0cmluZ1Rlc3QpOgogICAgIHR5cGUydGVzdCA9IGJ5dGVhcnJheQorICAgIGNvbnRhaW5zX2J5dGVzID0gVHJ1ZQogCiBjbGFzcyBCeXRlc0FzU3RyaW5nVGVzdChGaXhlZFN0cmluZ1Rlc3QpOgogICAgIHR5cGUydGVzdCA9IGJ5dGVzCisgICAgY29udGFpbnNfYnl0ZXMgPSBUcnVlCiAKIAogY2xhc3MgU3ViY2xhc3NUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfYnoyLnB5IGIvTGliL3Rlc3QvdGVzdF9iejIucHkKaW5kZXggYmUzNTU4MC4uMjU3YjE0NCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9iejIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9iejIucHkKQEAgLTEsMTAgKzEsMTEgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhvbjMKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IFRFU1RGTgorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IFRFU1RGTiwgYmlnbWVtdGVzdCwgXzRHCiAKIGltcG9ydCB1bml0dGVzdAogZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTwogaW1wb3J0IG9zCitpbXBvcnQgcmFuZG9tCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogCkBAIC0yMSw5ICsyMiwzOCBAQAogCiBjbGFzcyBCYXNlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIkJhc2UgZm9yIG90aGVyIHRlc3RjYXNlcy4iCi0gICAgVEVYVCA9IGIncm9vdDp4OjA6MDpyb290Oi9yb290Oi9iaW4vYmFzaFxuYmluOng6MToxOmJpbjovYmluOlxuZGFlbW9uOng6MjoyOmRhZW1vbjovc2JpbjpcbmFkbTp4OjM6NDphZG06L3Zhci9hZG06XG5scDp4OjQ6NzpscDovdmFyL3Nwb29sL2xwZDpcbnN5bmM6eDo1OjA6c3luYzovc2JpbjovYmluL3N5bmNcbnNodXRkb3duOng6NjowOnNodXRkb3duOi9zYmluOi9zYmluL3NodXRkb3duXG5oYWx0Ong6NzowOmhhbHQ6L3NiaW46L3NiaW4vaGFsdFxubWFpbDp4Ojg6MTI6bWFpbDovdmFyL3Nwb29sL21haWw6XG5uZXdzOng6OToxMzpuZXdzOi92YXIvc3Bvb2wvbmV3czpcbnV1Y3A6eDoxMDoxNDp1dWNwOi92YXIvc3Bvb2wvdXVjcDpcbm9wZXJhdG9yOng6MTE6MDpvcGVyYXRvcjovcm9vdDpcbmdhbWVzOng6MTI6MTAwOmdhbWVzOi91c3IvZ2FtZXM6XG5nb3BoZXI6eDoxMzozMDpnb3BoZXI6L3Vzci9saWIvZ29waGVyLWRhdGE6XG5mdHA6eDoxNDo1MDpGVFAgVXNlcjovdmFyL2Z0cDovYmluL2Jhc2hcbm5vYm9keTp4OjY1NTM0OjY1NTM0Ok5vYm9keTovaG9tZTpcbnBvc3RmaXg6eDoxMDA6MTAxOnBvc3RmaXg6L3Zhci9zcG9vbC9wb3N0Zml4OlxubmllbWV5ZXI6eDo1MDA6NTAwOjovaG9tZS9uaWVtZXllcjovYmluL2Jhc2hcbnBvc3RncmVzOng6MTAxOjEwMjpQb3N0Z3JlU1FMIFNlcnZlcjovdmFyL2xpYi9wZ3NxbDovYmluL2Jhc2hcbm15c3FsOng6MTAyOjEwMzpNeVNRTCBzZXJ2ZXI6L3Zhci9saWIvbXlzcWw6L2Jpbi9iYXNoXG53d3c6eDoxMDM6MTA0OjovdmFyL3d3dzovYmluL2ZhbHNlXG4nCisgICAgVEVYVF9MSU5FUyA9IFsKKyAgICAgICAgYidyb290Ong6MDowOnJvb3Q6L3Jvb3Q6L2Jpbi9iYXNoXG4nLAorICAgICAgICBiJ2Jpbjp4OjE6MTpiaW46L2JpbjpcbicsCisgICAgICAgIGInZGFlbW9uOng6MjoyOmRhZW1vbjovc2JpbjpcbicsCisgICAgICAgIGInYWRtOng6Mzo0OmFkbTovdmFyL2FkbTpcbicsCisgICAgICAgIGInbHA6eDo0Ojc6bHA6L3Zhci9zcG9vbC9scGQ6XG4nLAorICAgICAgICBiJ3N5bmM6eDo1OjA6c3luYzovc2JpbjovYmluL3N5bmNcbicsCisgICAgICAgIGInc2h1dGRvd246eDo2OjA6c2h1dGRvd246L3NiaW46L3NiaW4vc2h1dGRvd25cbicsCisgICAgICAgIGInaGFsdDp4Ojc6MDpoYWx0Oi9zYmluOi9zYmluL2hhbHRcbicsCisgICAgICAgIGInbWFpbDp4Ojg6MTI6bWFpbDovdmFyL3Nwb29sL21haWw6XG4nLAorICAgICAgICBiJ25ld3M6eDo5OjEzOm5ld3M6L3Zhci9zcG9vbC9uZXdzOlxuJywKKyAgICAgICAgYid1dWNwOng6MTA6MTQ6dXVjcDovdmFyL3Nwb29sL3V1Y3A6XG4nLAorICAgICAgICBiJ29wZXJhdG9yOng6MTE6MDpvcGVyYXRvcjovcm9vdDpcbicsCisgICAgICAgIGInZ2FtZXM6eDoxMjoxMDA6Z2FtZXM6L3Vzci9nYW1lczpcbicsCisgICAgICAgIGInZ29waGVyOng6MTM6MzA6Z29waGVyOi91c3IvbGliL2dvcGhlci1kYXRhOlxuJywKKyAgICAgICAgYidmdHA6eDoxNDo1MDpGVFAgVXNlcjovdmFyL2Z0cDovYmluL2Jhc2hcbicsCisgICAgICAgIGInbm9ib2R5Ong6NjU1MzQ6NjU1MzQ6Tm9ib2R5Oi9ob21lOlxuJywKKyAgICAgICAgYidwb3N0Zml4Ong6MTAwOjEwMTpwb3N0Zml4Oi92YXIvc3Bvb2wvcG9zdGZpeDpcbicsCisgICAgICAgIGInbmllbWV5ZXI6eDo1MDA6NTAwOjovaG9tZS9uaWVtZXllcjovYmluL2Jhc2hcbicsCisgICAgICAgIGIncG9zdGdyZXM6eDoxMDE6MTAyOlBvc3RncmVTUUwgU2VydmVyOi92YXIvbGliL3Bnc3FsOi9iaW4vYmFzaFxuJywKKyAgICAgICAgYidteXNxbDp4OjEwMjoxMDM6TXlTUUwgc2VydmVyOi92YXIvbGliL215c3FsOi9iaW4vYmFzaFxuJywKKyAgICAgICAgYid3d3c6eDoxMDM6MTA0OjovdmFyL3d3dzovYmluL2ZhbHNlXG4nLAorICAgICAgICBdCisgICAgVEVYVCA9IGInJy5qb2luKFRFWFRfTElORVMpCiAgICAgREFUQSA9IGInQlpoOTFBWSZTWS5ceGM4Tlx4MThceDAwXHgwMT5fXHg4MFx4MDBceDEwQFx4MDJceGZmXHhmMFx4MDFceDA3blx4MDA/XHhlN1x4ZmZceGUwMFx4MDFceDk5XHhhYVx4MDBceGMwXHgwM0ZceDg2XHg4YyMmXHg4M0ZceDlhXHgwM1x4MDZceGE2XHhkMFx4YTZceDkzTVx4MGZRXHhhN1x4YThceDA2XHg4MDRoaFx4MTIkXHgxMVx4YTRpNFx4ZjE0U1x4ZDI8UVx4YjVceDBmSFx4ZDNceGQ0XHhkZFx4ZDVceDg3XHhiYlx4ZjhceDk0XHJceDhmXHhhZklceDEyXHhlMVx4YzlceGY4L0VceDAwcHVceDg5XHgxMl1ceGM5XHhiYkRMXG5RXHgwZVx0MVx4MTJceGRmXHhhMFx4YzBceDk3XHhhYzJPOVx4ODlceDEzXHg5NFx4MGVceDFjN1x4MGVkXHg5NUlceDBjXHhhYUpceGE0XHgxOExceDEwXHgwNSNceDljXHhhZlx4YmFceGJjL1x4OTdceDhhI0NceGM4XHhlMVx4OGNXXHhmOVx4ZTJceGQwXHhkNk1ceGE3XHg4YlhhPGVceDg0dFx4Y2JMXHhiM1x4YTdceGQ5XHhjZFx4ZDFceGNiXHg4NC5ceGFmXHhiM1x4YWJceGFiXHhhZGBufVx4YTBsaFx0RSxceDhlWlx4MTVceDE3Vkg+XHg4OFx4ZTVceGNkOWdkNlx4MGJcblx4ZTlceDliXHhkNVx4OGFceDk5XHhmN1x4MDguS1x4OGV2XHhmYlx4Zjd4d1x4YmJceGRmXHhhMVx4OTJceGYxXHhkZHwvIjtceGEyXHhiYVx4OWZceGQ1XHhiMSNBXHhiNlx4ZjZceGIzb1x4YzlceGM1eVxcXHhlYk9ceGU3XHg4NVx4OWFceGJjXHhiNmY4XHg5NTJceGQ1XHhkNyIlXHg4OT5WLFx4ZjdceGE2elx4ZTJceDlmXHhhM1x4ZGZceDExXHgxMSJceGQ2RSlJXHhhOVx4MTNeXHhjYVx4ZjNyXHhkMFx4MDNVXHg5MjJceGYyNlx4ZWNceGI2XHhlZFx4OGJceGMzVVx4MTNceDlkXHhjNVx4MTcwXHhhNFx4ZmFeXHg5Mlx4YWNERlx4OGFceDk3XHhkNlx4MTlceGZlXHhkZFx4YjhceGJkXHgxYVx4OWFceDE5XHhhM1x4ODBhbmtSXHg4Ylx4ZTVceGQ4M11ceGE5XHhjNlx4MDhceDgyZlx4ZjZceGI5IjZsJFx4YjhqQFx4YzBceDhhXHhiMGwxLi5ceGJha1x4ODNsc1x4MTVceGJjXHhmNFx4YzFceDEzXHhiZVx4ZjhFXHhiOFx4OWRcclx4YThceDlka1x4ODRceGQzblx4ZmFceGFjUVx4MDdceGIxJXlceGFhdlx4YjRceDA4XHhlMHpceDFiXHgxNlx4ZjVceDA0XHhlOVx4Y2NceGI5XHgwOHpceDFlbjcuR1x4ZmNdXHhjOVx4MTRceGUxQkBceGJiIThgJwotICAgIERBVEFfQ1JMRiA9IGInQlpoOTFBWSZTWVx4YWV6XHhiYk5ceDAwXHgwMUhceGRmXHg4MFx4MDBceDEyQFx4MDJceGZmXHhmMFx4MDFceDA3blx4MDA/XHhlN1x4ZmZceGUwQFx4MDFceGJjXHhjNmBceDg2Klx4OGQ9TVx4YTlceDlhXHg4Nlx4ZDBMQFx4MGZJXHhhNiFceGExXHgxM1x4YzhceDg4amRpXHg4ZEBceDAzQFx4MWFceDFhXHgwY1x4MGNceDgzIFx4MDBceGM0aDJceDE5XHgwMVx4ODJEXHg4NGVcdFx4ZThceDk5XHg4OVx4MTlceDFhaFx4MDBcclx4MWFceDExXHhhZlx4OWJceDBmR1x4ZjUoXHgxYlx4MWY/XHRceDEyXHhjZlx4YjVceGZjXHg5NUVceDAwcHNceDg5XHgxMl5ceGE0XHhkZFx4YTImXHgwNShceDg3XHgwNFx4OThceDg5dVx4ZTQwJVx4YjZceDE5XCdceDhjXHhjNFx4ODlceGNhXHgwN1x4MGVceDFiIVx4OTFVSUZVJUNceDk5NCFESVx4ZDJceGZhXHhmMFx4ZjFOOFdceGRlXHgxM0FceGY1XHg5Y3IlP1x4OWYzO0k0NUFceGQxXHg4YlRceGIxPGxceGJhXHhjYl9ceGMwMHhZXHgxN3JceDE3XHg4OFx4MDhceDA4QFx4YTBccnlAXHgxMFx4MDQkKWBceGYyXHhjZVx4ODl6XHhiMHNceGVjXHg5Yi5pV1x4OWRceDgxXHhiNS0rdFx4OWZceDFhXCdceDk3ZEJceGY1eFx4YjVceGJlLlsuXHhkN1x4MGVceDgxXHhlN1x4MDhceDFjTmBceDg4XHgxMFx4Y2FceDg3XHhjMyEiXHg4MFx4OTJSXHhhMS9ceGQxXHhjMFx4ZTZtZlx4YWNceGJkXHg5OVx4Y2NhXHhiM1x4ODc4MD5ceGE0XHhjN1x4OGRceDFhXFwiXHhhZFx4YTFceGFieUJnXHgxNVx4YjlsXHg4OFx4ODhceDkxayJceDk0XHhhNFx4ZDRceDg5XHhhZSpceGE2XHgwYlx4MTBceDBjXHhkNlx4ZDRtXHhlODZceGVjXHhiNWpceDhhXHg4NmpcJztceGNhLlx4MDFJXHhmMlx4YWFKXHhlOFx4ODhceDhjVSt0M1x4ZmJceDBjXG5ceGEzM1x4MTNyMlxyXHgxNlx4ZTBceGIzKFx4YmZceDFkXHg4M3JceGU3TVx4ZjBEXHgxMzY1XHhkOFx4ODhceGQzXHhhNFx4OTJceGNiMlx4MDZceDA0XFxceGMxXHhiMFx4ZWEvL1x4YmVrJlx4ZDhceGU2K3RceGU1XHhhMVx4MTNceGFkYVx4MTZceGRlcjUid11ceGEyaVx4YjdbXHg5N1IgXHhlMklUXHhjZDtaXHgwNGRrNFx4YWRceDhhXHRceGQzXHg4MXpceDEwXHhmMTpeYFx4YWJceDFmXHhjNVx4ZGNceDkxTlx4MTQkK1x4OWVceGFlXHhkM1x4ODAnCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBURVNURk4KKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoc2VsZi5maWxlbmFtZSk6CisgICAgICAgICAgICBvcy51bmxpbmsoc2VsZi5maWxlbmFtZSkKIAogICAgIGlmIGhhc19jbWRsaW5lX2J1bnppcDI6CiAgICAgICAgIGRlZiBkZWNvbXByZXNzKHNlbGYsIGRhdGEpOgpAQCAtNDcsOTAgKzc3LDE0OSBAQAogY2xhc3MgQloyRmlsZVRlc3QoQmFzZVRlc3QpOgogICAgICJUZXN0IEJaMkZpbGUgdHlwZSBtaXNjZWxsYW5lb3VzIG1ldGhvZHMuIgogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmZpbGVuYW1lID0gVEVTVEZOCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHNlbGYuZmlsZW5hbWUpOgotICAgICAgICAgICAgb3MudW5saW5rKHNlbGYuZmlsZW5hbWUpCi0KLSAgICBkZWYgY3JlYXRlVGVtcEZpbGUoc2VsZiwgY3JsZj0wKToKKyAgICBkZWYgY3JlYXRlVGVtcEZpbGUoc2VsZiwgc3RyZWFtcz0xKToKICAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJ3YiIpIGFzIGY6Ci0gICAgICAgICAgICBpZiBjcmxmOgotICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLkRBVEFfQ1JMRgotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5EQVRBCi0gICAgICAgICAgICBmLndyaXRlKGRhdGEpCisgICAgICAgICAgICBmLndyaXRlKHNlbGYuREFUQSAqIHN0cmVhbXMpCisKKyAgICBkZWYgdGVzdEJhZEFyZ3Moc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIEJaMkZpbGUoMTIzLjQ1NikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIEJaMkZpbGUoIi9kZXYvbnVsbCIsICJ6IikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIEJaMkZpbGUoIi9kZXYvbnVsbCIsICJyeCIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBCWjJGaWxlKCIvZGV2L251bGwiLCAicmJ0IikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIEJaMkZpbGUoIi9kZXYvbnVsbCIsIGNvbXByZXNzbGV2ZWw9MCkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIEJaMkZpbGUoIi9kZXYvbnVsbCIsIGNvbXByZXNzbGV2ZWw9MTApCiAKICAgICBkZWYgdGVzdFJlYWQoc2VsZik6Ci0gICAgICAgICMgIlRlc3QgQloyRmlsZS5yZWFkKCkiCiAgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoKQogICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYnoyZi5yZWFkLCBOb25lKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWQoKSwgc2VsZi5URVhUKQogCisgICAgZGVmIHRlc3RSZWFkTXVsdGlTdHJlYW0oc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoc3RyZWFtcz01KQorICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYnoyZi5yZWFkLCBOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWQoKSwgc2VsZi5URVhUICogNSkKKworICAgIGRlZiB0ZXN0UmVhZE1vbmtleU11bHRpU3RyZWFtKHNlbGYpOgorICAgICAgICAjIFRlc3QgQloyRmlsZS5yZWFkKCkgb24gYSBtdWx0aS1zdHJlYW0gYXJjaGl2ZSB3aGVyZSBhIHN0cmVhbQorICAgICAgICAjIGJvdW5kYXJ5IGNvaW5jaWRlcyB3aXRoIHRoZSBlbmQgb2YgdGhlIHJhdyByZWFkIGJ1ZmZlci4KKyAgICAgICAgYnVmZmVyX3NpemUgPSBiejIuX0JVRkZFUl9TSVpFCisgICAgICAgIGJ6Mi5fQlVGRkVSX1NJWkUgPSBsZW4oc2VsZi5EQVRBKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKHN0cmVhbXM9NSkKKyAgICAgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYnoyZi5yZWFkLCBOb25lKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIHNlbGYuVEVYVCAqIDUpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBiejIuX0JVRkZFUl9TSVpFID0gYnVmZmVyX3NpemUKKwogICAgIGRlZiB0ZXN0UmVhZDAoc2VsZik6Ci0gICAgICAgICMgVGVzdCBCQloyRmlsZS5yZWFkKDApIgogICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKCkKICAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGJ6MmYucmVhZCwgTm9uZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKDApLCBiIiIpCiAKICAgICBkZWYgdGVzdFJlYWRDaHVuazEwKHNlbGYpOgotICAgICAgICAjICJUZXN0IEJaMkZpbGUucmVhZCgpIGluIGNodW5rcyBvZiAxMCBieXRlcyIKICAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZSgpCiAgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgogICAgICAgICAgICAgdGV4dCA9IGInJwotICAgICAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICAgICAgc3RyID0gYnoyZi5yZWFkKDEwKQogICAgICAgICAgICAgICAgIGlmIG5vdCBzdHI6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgdGV4dCArPSBzdHIKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGV4dCwgc2VsZi5URVhUKQogCisgICAgZGVmIHRlc3RSZWFkQ2h1bmsxME11bHRpU3RyZWFtKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKHN0cmVhbXM9NSkKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CisgICAgICAgICAgICB0ZXh0ID0gYicnCisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIHN0ciA9IGJ6MmYucmVhZCgxMCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RyOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIHRleHQgKz0gc3RyCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRleHQsIHNlbGYuVEVYVCAqIDUpCisKICAgICBkZWYgdGVzdFJlYWQxMDAoc2VsZik6Ci0gICAgICAgICMgIlRlc3QgQloyRmlsZS5yZWFkKDEwMCkiCiAgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoKQogICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKDEwMCksIHNlbGYuVEVYVFs6MTAwXSkKIAorICAgIGRlZiB0ZXN0UGVlayhzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZSgpCisgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgorICAgICAgICAgICAgcGRhdGEgPSBiejJmLnBlZWsoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChsZW4ocGRhdGEpLCAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuVEVYVC5zdGFydHN3aXRoKHBkYXRhKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIHNlbGYuVEVYVCkKKworICAgIGRlZiB0ZXN0UmVhZEludG8oc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoKQorICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKKyAgICAgICAgICAgIG4gPSAxMjgKKyAgICAgICAgICAgIGIgPSBieXRlYXJyYXkobikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkaW50byhiKSwgbikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiwgc2VsZi5URVhUWzpuXSkKKyAgICAgICAgICAgIG4gPSBsZW4oc2VsZi5URVhUKSAtIG4KKyAgICAgICAgICAgIGIgPSBieXRlYXJyYXkobGVuKHNlbGYuVEVYVCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYucmVhZGludG8oYiksIG4pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJbOm5dLCBzZWxmLlRFWFRbLW46XSkKKwogICAgIGRlZiB0ZXN0UmVhZExpbmUoc2VsZik6Ci0gICAgICAgICMgIlRlc3QgQloyRmlsZS5yZWFkbGluZSgpIgogICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKCkKICAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGJ6MmYucmVhZGxpbmUsIE5vbmUpCi0gICAgICAgICAgICBzaW8gPSBCeXRlc0lPKHNlbGYuVEVYVCkKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHNpby5yZWFkbGluZXMoKToKKyAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuVEVYVF9MSU5FUzoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYucmVhZGxpbmUoKSwgbGluZSkKKworICAgIGRlZiB0ZXN0UmVhZExpbmVNdWx0aVN0cmVhbShzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZShzdHJlYW1zPTUpCisgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBiejJmLnJlYWRsaW5lLCBOb25lKQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5URVhUX0xJTkVTICogNToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYucmVhZGxpbmUoKSwgbGluZSkKIAogICAgIGRlZiB0ZXN0UmVhZExpbmVzKHNlbGYpOgotICAgICAgICAjICJUZXN0IEJaMkZpbGUucmVhZGxpbmVzKCkiCiAgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoKQogICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYnoyZi5yZWFkbGluZXMsIE5vbmUpCi0gICAgICAgICAgICBzaW8gPSBCeXRlc0lPKHNlbGYuVEVYVCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkbGluZXMoKSwgc2lvLnJlYWRsaW5lcygpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWRsaW5lcygpLCBzZWxmLlRFWFRfTElORVMpCisKKyAgICBkZWYgdGVzdFJlYWRMaW5lc011bHRpU3RyZWFtKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKHN0cmVhbXM9NSkKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGJ6MmYucmVhZGxpbmVzLCBOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWRsaW5lcygpLCBzZWxmLlRFWFRfTElORVMgKiA1KQogCiAgICAgZGVmIHRlc3RJdGVyYXRvcihzZWxmKToKLSAgICAgICAgIyAiVGVzdCBpdGVyKEJaMkZpbGUpIgogICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKCkKICAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6Ci0gICAgICAgICAgICBzaW8gPSBCeXRlc0lPKHNlbGYuVEVYVCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpdGVyKGJ6MmYpKSwgc2lvLnJlYWRsaW5lcygpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0ZXIoYnoyZikpLCBzZWxmLlRFWFRfTElORVMpCisKKyAgICBkZWYgdGVzdEl0ZXJhdG9yTXVsdGlTdHJlYW0oc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoc3RyZWFtcz01KQorICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpdGVyKGJ6MmYpKSwgc2VsZi5URVhUX0xJTkVTICogNSkKIAogICAgIGRlZiB0ZXN0Q2xvc2VkSXRlcmF0b3JEZWFkbG9jayhzZWxmKToKLSAgICAgICAgIyAiVGVzdCB0aGF0IGl0ZXJhdGlvbiBvbiBhIGNsb3NlZCBiejJmaWxlIHJlbGVhc2VzIHRoZSBsb2NrLiIKLSAgICAgICAgIyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMzMwOQorICAgICAgICAjIElzc3VlICMzMzA5OiBJdGVyYXRpb24gb24gYSBjbG9zZWQgQloyRmlsZSBzaG91bGQgcmVsZWFzZSB0aGUgbG9jay4KICAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZSgpCiAgICAgICAgIGJ6MmYgPSBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpCiAgICAgICAgIGJ6MmYuY2xvc2UoKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiejJmLl9fbmV4dF9fKQotICAgICAgICAjIFRoaXMgY2FsbCB3aWxsIGRlYWRsb2NrIG9mIHRoZSBhYm92ZSAuX19uZXh0X18gY2FsbCBmYWlsZWQgdG8KKyAgICAgICAgIyBUaGlzIGNhbGwgd2lsbCBkZWFkbG9jayBpZiB0aGUgYWJvdmUgLl9fbmV4dF9fIGNhbGwgZmFpbGVkIHRvCiAgICAgICAgICMgcmVsZWFzZSB0aGUgbG9jay4KICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYnoyZi5yZWFkbGluZXMpCiAKICAgICBkZWYgdGVzdFdyaXRlKHNlbGYpOgotICAgICAgICAjICJUZXN0IEJaMkZpbGUud3JpdGUoKSIKICAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUsICJ3IikgYXMgYnoyZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYnoyZi53cml0ZSkKICAgICAgICAgICAgIGJ6MmYud3JpdGUoc2VsZi5URVhUKQpAQCAtMTM4LDEwICsyMjcsOSBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRlY29tcHJlc3MoZi5yZWFkKCkpLCBzZWxmLlRFWFQpCiAKICAgICBkZWYgdGVzdFdyaXRlQ2h1bmtzMTAoc2VsZik6Ci0gICAgICAgICMgIlRlc3QgQloyRmlsZS53cml0ZSgpIHdpdGggY2h1bmtzIG9mIDEwIGJ5dGVzIgogICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSwgInciKSBhcyBiejJmOgogICAgICAgICAgICAgbiA9IDAKLSAgICAgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgICAgIHN0ciA9IHNlbGYuVEVYVFtuKjEwOihuKzEpKjEwXQogICAgICAgICAgICAgICAgIGlmIG5vdCBzdHI6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCkBAIC0xNTAsMTMgKzIzOCwxOSBAQAogICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgJ3JiJykgYXMgZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kZWNvbXByZXNzKGYucmVhZCgpKSwgc2VsZi5URVhUKQogCisgICAgZGVmIHRlc3RXcml0ZU5vbkRlZmF1bHRDb21wcmVzc0xldmVsKHNlbGYpOgorICAgICAgICBleHBlY3RlZCA9IGJ6Mi5jb21wcmVzcyhzZWxmLlRFWFQsIGNvbXByZXNzbGV2ZWw9NSkKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUsICJ3IiwgY29tcHJlc3NsZXZlbD01KSBhcyBiejJmOgorICAgICAgICAgICAgYnoyZi53cml0ZShzZWxmLlRFWFQpCisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgZXhwZWN0ZWQpCisKICAgICBkZWYgdGVzdFdyaXRlTGluZXMoc2VsZik6Ci0gICAgICAgICMgIlRlc3QgQloyRmlsZS53cml0ZWxpbmVzKCkiCiAgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lLCAidyIpIGFzIGJ6MmY6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGJ6MmYud3JpdGVsaW5lcykKLSAgICAgICAgICAgIHNpbyA9IEJ5dGVzSU8oc2VsZi5URVhUKQotICAgICAgICAgICAgYnoyZi53cml0ZWxpbmVzKHNpby5yZWFkbGluZXMoKSkKLSAgICAgICAgIyBwYXRjaCAjMTUzNTUwMAorICAgICAgICAgICAgYnoyZi53cml0ZWxpbmVzKHNlbGYuVEVYVF9MSU5FUykKKyAgICAgICAgIyBJc3N1ZSAjMTUzNTUwMDogQ2FsbGluZyB3cml0ZWxpbmVzKCkgb24gYSBjbG9zZWQgQloyRmlsZQorICAgICAgICAjIHNob3VsZCByYWlzZSBhbiBleGNlcHRpb24uCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGJ6MmYud3JpdGVsaW5lcywgWyJhIl0pCiAgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAncmInKSBhcyBmOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRlY29tcHJlc3MoZi5yZWFkKCkpLCBzZWxmLlRFWFQpCkBAIC0xNjksMzkgKzI2Myw3MyBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgYnoyZi53cml0ZSwgYiJhIikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGJ6MmYud3JpdGVsaW5lcywgW2IiYSJdKQogCisgICAgZGVmIHRlc3RBcHBlbmQoc2VsZik6CisgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lLCAidyIpIGFzIGJ6MmY6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGJ6MmYud3JpdGUpCisgICAgICAgICAgICBiejJmLndyaXRlKHNlbGYuVEVYVCkKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUsICJhIikgYXMgYnoyZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYnoyZi53cml0ZSkKKyAgICAgICAgICAgIGJ6MmYud3JpdGUoc2VsZi5URVhUKQorICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgJ3JiJykgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kZWNvbXByZXNzKGYucmVhZCgpKSwgc2VsZi5URVhUICogMikKKwogICAgIGRlZiB0ZXN0U2Vla0ZvcndhcmQoc2VsZik6Ci0gICAgICAgICMgIlRlc3QgQloyRmlsZS5zZWVrKDE1MCwgMCkiCiAgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoKQogICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYnoyZi5zZWVrKQogICAgICAgICAgICAgYnoyZi5zZWVrKDE1MCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIHNlbGYuVEVYVFsxNTA6XSkKIAorICAgIGRlZiB0ZXN0U2Vla0ZvcndhcmRBY3Jvc3NTdHJlYW1zKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKHN0cmVhbXM9MikKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGJ6MmYuc2VlaykKKyAgICAgICAgICAgIGJ6MmYuc2VlayhsZW4oc2VsZi5URVhUKSArIDE1MCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIHNlbGYuVEVYVFsxNTA6XSkKKwogICAgIGRlZiB0ZXN0U2Vla0JhY2t3YXJkcyhzZWxmKToKLSAgICAgICAgIyAiVGVzdCBCWjJGaWxlLnNlZWsoLTE1MCwgMSkiCiAgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoKQogICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKICAgICAgICAgICAgIGJ6MmYucmVhZCg1MDApCiAgICAgICAgICAgICBiejJmLnNlZWsoLTE1MCwgMSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIHNlbGYuVEVYVFs1MDAtMTUwOl0pCiAKKyAgICBkZWYgdGVzdFNlZWtCYWNrd2FyZHNBY3Jvc3NTdHJlYW1zKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKHN0cmVhbXM9MikKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CisgICAgICAgICAgICByZWFkdG8gPSBsZW4oc2VsZi5URVhUKSArIDEwMAorICAgICAgICAgICAgd2hpbGUgcmVhZHRvID4gMDoKKyAgICAgICAgICAgICAgICByZWFkdG8gLT0gbGVuKGJ6MmYucmVhZChyZWFkdG8pKQorICAgICAgICAgICAgYnoyZi5zZWVrKC0xNTAsIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYucmVhZCgpLCBzZWxmLlRFWFRbMTAwLTE1MDpdICsgc2VsZi5URVhUKQorCiAgICAgZGVmIHRlc3RTZWVrQmFja3dhcmRzRnJvbUVuZChzZWxmKToKLSAgICAgICAgIyAiVGVzdCBCWjJGaWxlLnNlZWsoLTE1MCwgMikiCiAgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoKQogICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKICAgICAgICAgICAgIGJ6MmYuc2VlaygtMTUwLCAyKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWQoKSwgc2VsZi5URVhUW2xlbihzZWxmLlRFWFQpLTE1MDpdKQogCisgICAgZGVmIHRlc3RTZWVrQmFja3dhcmRzRnJvbUVuZEFjcm9zc1N0cmVhbXMoc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoc3RyZWFtcz0yKQorICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKKyAgICAgICAgICAgIGJ6MmYuc2VlaygtMTAwMCwgMikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIChzZWxmLlRFWFQgKiAyKVstMTAwMDpdKQorCiAgICAgZGVmIHRlc3RTZWVrUG9zdEVuZChzZWxmKToKLSAgICAgICAgIyAiVGVzdCBCWjJGaWxlLnNlZWsoMTUwMDAwKSIKICAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZSgpCiAgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgogICAgICAgICAgICAgYnoyZi5zZWVrKDE1MDAwMCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi50ZWxsKCksIGxlbihzZWxmLlRFWFQpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWQoKSwgYiIiKQogCisgICAgZGVmIHRlc3RTZWVrUG9zdEVuZE11bHRpU3RyZWFtKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKHN0cmVhbXM9NSkKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CisgICAgICAgICAgICBiejJmLnNlZWsoMTUwMDAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnRlbGwoKSwgbGVuKHNlbGYuVEVYVCkgKiA1KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWQoKSwgYiIiKQorCiAgICAgZGVmIHRlc3RTZWVrUG9zdEVuZFR3aWNlKHNlbGYpOgotICAgICAgICAjICJUZXN0IEJaMkZpbGUuc2VlaygxNTAwMDApIHR3aWNlIgogICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKCkKICAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CiAgICAgICAgICAgICBiejJmLnNlZWsoMTUwMDAwKQpAQCAtMjA5LDI3ICszMzcsMTA5IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYudGVsbCgpLCBsZW4oc2VsZi5URVhUKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIGIiIikKIAorICAgIGRlZiB0ZXN0U2Vla1Bvc3RFbmRUd2ljZU11bHRpU3RyZWFtKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKHN0cmVhbXM9NSkKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CisgICAgICAgICAgICBiejJmLnNlZWsoMTUwMDAwKQorICAgICAgICAgICAgYnoyZi5zZWVrKDE1MDAwMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi50ZWxsKCksIGxlbihzZWxmLlRFWFQpICogNSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIGIiIikKKwogICAgIGRlZiB0ZXN0U2Vla1ByZVN0YXJ0KHNlbGYpOgotICAgICAgICAjICJUZXN0IEJaMkZpbGUuc2VlaygtMTUwLCAwKSIKICAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZSgpCiAgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgogICAgICAgICAgICAgYnoyZi5zZWVrKC0xNTApCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYudGVsbCgpLCAwKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWQoKSwgc2VsZi5URVhUKQogCisgICAgZGVmIHRlc3RTZWVrUHJlU3RhcnRNdWx0aVN0cmVhbShzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVUZW1wRmlsZShzdHJlYW1zPTIpCisgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgorICAgICAgICAgICAgYnoyZi5zZWVrKC0xNTApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYudGVsbCgpLCAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWQoKSwgc2VsZi5URVhUICogMikKKworICAgIGRlZiB0ZXN0RmlsZW5vKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKCkKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICdyYicpIGFzIHJhd2Y6CisgICAgICAgICAgICBiejJmID0gQloyRmlsZShyYXdmKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5maWxlbm8oKSwgcmF3Zi5maWxlbm8oKSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgYnoyZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGJ6MmYuZmlsZW5vKQorCisgICAgZGVmIHRlc3RTZWVrYWJsZShzZWxmKToKKyAgICAgICAgYnoyZiA9IEJaMkZpbGUoQnl0ZXNJTyhzZWxmLkRBVEEpKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYnoyZi5zZWVrYWJsZSgpKQorICAgICAgICAgICAgYnoyZi5yZWFkKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShiejJmLnNlZWthYmxlKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBiejJmLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYnoyZi5zZWVrYWJsZSkKKworICAgICAgICBiejJmID0gQloyRmlsZShCeXRlc0lPKCksIG1vZGU9InciKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJ6MmYuc2Vla2FibGUoKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGJ6MmYuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiejJmLnNlZWthYmxlKQorCisgICAgICAgIHNyYyA9IEJ5dGVzSU8oc2VsZi5EQVRBKQorICAgICAgICBzcmMuc2Vla2FibGUgPSBsYW1iZGE6IEZhbHNlCisgICAgICAgIGJ6MmYgPSBCWjJGaWxlKHNyYykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShiejJmLnNlZWthYmxlKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBiejJmLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYnoyZi5zZWVrYWJsZSkKKworICAgIGRlZiB0ZXN0UmVhZGFibGUoc2VsZik6CisgICAgICAgIGJ6MmYgPSBCWjJGaWxlKEJ5dGVzSU8oc2VsZi5EQVRBKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJ6MmYucmVhZGFibGUoKSkKKyAgICAgICAgICAgIGJ6MmYucmVhZCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYnoyZi5yZWFkYWJsZSgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgYnoyZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGJ6MmYucmVhZGFibGUpCisKKyAgICAgICAgYnoyZiA9IEJaMkZpbGUoQnl0ZXNJTygpLCBtb2RlPSJ3IikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShiejJmLnJlYWRhYmxlKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBiejJmLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYnoyZi5yZWFkYWJsZSkKKworICAgIGRlZiB0ZXN0V3JpdGFibGUoc2VsZik6CisgICAgICAgIGJ6MmYgPSBCWjJGaWxlKEJ5dGVzSU8oc2VsZi5EQVRBKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShiejJmLndyaXRhYmxlKCkpCisgICAgICAgICAgICBiejJmLnJlYWQoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShiejJmLndyaXRhYmxlKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBiejJmLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYnoyZi53cml0YWJsZSkKKworICAgICAgICBiejJmID0gQloyRmlsZShCeXRlc0lPKCksIG1vZGU9InciKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYnoyZi53cml0YWJsZSgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgYnoyZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGJ6MmYud3JpdGFibGUpCisKICAgICBkZWYgdGVzdE9wZW5EZWwoc2VsZik6Ci0gICAgICAgICMgIlRlc3Qgb3BlbmluZyBhbmQgZGVsZXRpbmcgYSBmaWxlIG1hbnkgdGltZXMiCiAgICAgICAgIHNlbGYuY3JlYXRlVGVtcEZpbGUoKQogICAgICAgICBmb3IgaSBpbiByYW5nZSgxMDAwMCk6CiAgICAgICAgICAgICBvID0gQloyRmlsZShzZWxmLmZpbGVuYW1lKQogICAgICAgICAgICAgZGVsIG8KIAogICAgIGRlZiB0ZXN0T3Blbk5vbmV4aXN0ZW50KHNlbGYpOgotICAgICAgICAjICJUZXN0IG9wZW5pbmcgYSBub25leGlzdGVudCBmaWxlIgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBCWjJGaWxlLCAiL25vbi9leGlzdGVudCIpCiAKLSAgICBkZWYgdGVzdEJ1ZzExOTEwNDMoc2VsZik6Ci0gICAgICAgICMgcmVhZGxpbmVzKCkgZm9yIGZpbGVzIGNvbnRhaW5pbmcgbm8gbmV3bGluZQorICAgIGRlZiB0ZXN0UmVhZGxpbmVzTm9OZXdsaW5lKHNlbGYpOgorICAgICAgICAjIElzc3VlICMxMTkxMDQzOiByZWFkbGluZXMoKSBmYWlscyBvbiBhIGZpbGUgY29udGFpbmluZyBubyBuZXdsaW5lLgogICAgICAgICBkYXRhID0gYidCWmg5MUFZJlNZXHhkOWJceDg5XVx4MDBceDAwXHgwMFx4MDNceDgwXHgwNFx4MDBceDAyXHgwMFx4MGNceDAwIFx4MDAhXHg5YWgzTVx4MTM8XVx4YzlceDE0XHhlMUJDZVx4OGEldCcKICAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJ3YiIpIGFzIGY6CiAgICAgICAgICAgICBmLndyaXRlKGRhdGEpCkBAIC0yNDEsNyArNDUxLDYgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4bGluZXMsIFtiJ1Rlc3QnXSkKIAogICAgIGRlZiB0ZXN0Q29udGV4dFByb3RvY29sKHNlbGYpOgotICAgICAgICAjIEJaMkZpbGUgc3VwcG9ydHMgdGhlIGNvbnRleHQgbWFuYWdlbWVudCBwcm90b2NvbAogICAgICAgICBmID0gTm9uZQogICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoYiJ4eHgiKQpAQCAtMjY0LDcgKzQ3Myw3IEBACiAKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWRpbmcsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQogICAgIGRlZiB0ZXN0VGhyZWFkaW5nKHNlbGYpOgotICAgICAgICAjIFVzaW5nIGEgQloyRmlsZSBmcm9tIHNldmVyYWwgdGhyZWFkcyBkb2Vzbid0IGRlYWRsb2NrIChpc3N1ZSAjNzIwNSkuCisgICAgICAgICMgSXNzdWUgIzcyMDU6IFVzaW5nIGEgQloyRmlsZSBmcm9tIHNldmVyYWwgdGhyZWFkcyBzaG91bGRuJ3QgZGVhZGxvY2suCiAgICAgICAgIGRhdGEgPSBiIjEiICogMioqMjAKICAgICAgICAgbnRocmVhZHMgPSAxMAogICAgICAgICB3aXRoIGJ6Mi5CWjJGaWxlKHNlbGYuZmlsZW5hbWUsICd3YicpIGFzIGY6CkBAIC0yNzcsMjIgKzQ4Niw5OCBAQAogICAgICAgICAgICAgZm9yIHQgaW4gdGhyZWFkczoKICAgICAgICAgICAgICAgICB0LmpvaW4oKQogCi0gICAgZGVmIHRlc3RNaXhlZEl0ZXJhdGlvblJlYWRzKHNlbGYpOgotICAgICAgICAjIElzc3VlICM4Mzk3OiBtaXhlZCBpdGVyYXRpb24gYW5kIHJlYWRzIHNob3VsZCBiZSBmb3JiaWRkZW4uCi0gICAgICAgIHdpdGggYnoyLkJaMkZpbGUoc2VsZi5maWxlbmFtZSwgJ3diJykgYXMgZjoKLSAgICAgICAgICAgICMgVGhlIGludGVybmFsIGJ1ZmZlciBzaXplIGlzIGhhcmQtd2lyZWQgdG8gODE5MiBieXRlcywgd2UgbXVzdAotICAgICAgICAgICAgIyB3cml0ZSBvdXQgbW9yZSB0aGFuIHRoYXQgZm9yIHRoZSB0ZXN0IHRvIHN0b3AgaGFsZiB0aHJvdWdoCi0gICAgICAgICAgICAjIHRoZSBidWZmZXIuCi0gICAgICAgICAgICBmLndyaXRlKHNlbGYuVEVYVCAqIDEwMCkKLSAgICAgICAgd2l0aCBiejIuQloyRmlsZShzZWxmLmZpbGVuYW1lLCAncmInKSBhcyBmOgotICAgICAgICAgICAgbmV4dChmKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZi5yZWFkKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZi5yZWFkbGluZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYucmVhZGxpbmVzKQorICAgIGRlZiB0ZXN0V2l0aG91dFRocmVhZGluZyhzZWxmKToKKyAgICAgICAgYnoyID0gc3VwcG9ydC5pbXBvcnRfZnJlc2hfbW9kdWxlKCJiejIiLCBibG9ja2VkPSgidGhyZWFkaW5nIiwpKQorICAgICAgICB3aXRoIGJ6Mi5CWjJGaWxlKHNlbGYuZmlsZW5hbWUsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKGIiYWJjIikKKyAgICAgICAgd2l0aCBiejIuQloyRmlsZShzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgYiJhYmMiKQorCisgICAgZGVmIHRlc3RNaXhlZEl0ZXJhdGlvbkFuZFJlYWRzKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZVRlbXBGaWxlKCkKKyAgICAgICAgbGluZWxlbiA9IGxlbihzZWxmLlRFWFRfTElORVNbMF0pCisgICAgICAgIGhhbGZsZW4gPSBsaW5lbGVuIC8vIDIKKyAgICAgICAgd2l0aCBiejIuQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgorICAgICAgICAgICAgYnoyZi5yZWFkKGhhbGZsZW4pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5leHQoYnoyZiksIHNlbGYuVEVYVF9MSU5FU1swXVtoYWxmbGVuOl0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYucmVhZCgpLCBzZWxmLlRFWFRbbGluZWxlbjpdKQorICAgICAgICB3aXRoIGJ6Mi5CWjJGaWxlKHNlbGYuZmlsZW5hbWUpIGFzIGJ6MmY6CisgICAgICAgICAgICBiejJmLnJlYWRsaW5lKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChiejJmKSwgc2VsZi5URVhUX0xJTkVTWzFdKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiejJmLnJlYWRsaW5lKCksIHNlbGYuVEVYVF9MSU5FU1syXSkKKyAgICAgICAgd2l0aCBiejIuQloyRmlsZShzZWxmLmZpbGVuYW1lKSBhcyBiejJmOgorICAgICAgICAgICAgYnoyZi5yZWFkbGluZXMoKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uKToKKyAgICAgICAgICAgICAgICBuZXh0KGJ6MmYpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYucmVhZGxpbmVzKCksIFtdKQorCisgICAgZGVmIHRlc3RNdWx0aVN0cmVhbU9yZGVyaW5nKHNlbGYpOgorICAgICAgICAjIFRlc3QgdGhlIG9yZGVyaW5nIG9mIHN0cmVhbXMgd2hlbiByZWFkaW5nIGEgbXVsdGktc3RyZWFtIGFyY2hpdmUuCisgICAgICAgIGRhdGExID0gYiJmb28iICogMTAwMAorICAgICAgICBkYXRhMiA9IGIiYmFyIiAqIDEwMDAKKyAgICAgICAgd2l0aCBCWjJGaWxlKHNlbGYuZmlsZW5hbWUsICJ3IikgYXMgYnoyZjoKKyAgICAgICAgICAgIGJ6MmYud3JpdGUoZGF0YTEpCisgICAgICAgIHdpdGggQloyRmlsZShzZWxmLmZpbGVuYW1lLCAiYSIpIGFzIGJ6MmY6CisgICAgICAgICAgICBiejJmLndyaXRlKGRhdGEyKQorICAgICAgICB3aXRoIEJaMkZpbGUoc2VsZi5maWxlbmFtZSkgYXMgYnoyZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIGRhdGExICsgZGF0YTIpCisKKyAgICBkZWYgdGVzdE9wZW5CeXRlc0ZpbGVuYW1lKHNlbGYpOgorICAgICAgICBzdHJfZmlsZW5hbWUgPSBzZWxmLmZpbGVuYW1lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGJ5dGVzX2ZpbGVuYW1lID0gc3RyX2ZpbGVuYW1lLmVuY29kZSgiYXNjaWkiKQorICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgiVGVtcG9yYXJ5IGZpbGUgbmFtZSBuZWVkcyB0byBiZSBBU0NJSSIpCisgICAgICAgIHdpdGggQloyRmlsZShieXRlc19maWxlbmFtZSwgIndiIikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUoc2VsZi5EQVRBKQorICAgICAgICB3aXRoIEJaMkZpbGUoYnl0ZXNfZmlsZW5hbWUsICJyYiIpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBzZWxmLkRBVEEpCisgICAgICAgICMgU2FuaXR5IGNoZWNrIHRoYXQgd2UgYXJlIGFjdHVhbGx5IG9wZXJhdGluZyBvbiB0aGUgcmlnaHQgZmlsZS4KKyAgICAgICAgd2l0aCBCWjJGaWxlKHN0cl9maWxlbmFtZSwgInJiIikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIHNlbGYuREFUQSkKKworCisgICAgIyBUZXN0cyBmb3IgYSBCWjJGaWxlIHdyYXBwaW5nIGFub3RoZXIgZmlsZSBvYmplY3Q6CisKKyAgICBkZWYgdGVzdFJlYWRCeXRlc0lPKHNlbGYpOgorICAgICAgICB3aXRoIEJ5dGVzSU8oc2VsZi5EQVRBKSBhcyBiaW86CisgICAgICAgICAgICB3aXRoIEJaMkZpbGUoYmlvKSBhcyBiejJmOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYnoyZi5yZWFkLCBOb25lKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIHNlbGYuVEVYVCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYmlvLmNsb3NlZCkKKworICAgIGRlZiB0ZXN0UGVla0J5dGVzSU8oc2VsZik6CisgICAgICAgIHdpdGggQnl0ZXNJTyhzZWxmLkRBVEEpIGFzIGJpbzoKKyAgICAgICAgICAgIHdpdGggQloyRmlsZShiaW8pIGFzIGJ6MmY6CisgICAgICAgICAgICAgICAgcGRhdGEgPSBiejJmLnBlZWsoKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwobGVuKHBkYXRhKSwgMCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5URVhULnN0YXJ0c3dpdGgocGRhdGEpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIHNlbGYuVEVYVCkKKworICAgIGRlZiB0ZXN0V3JpdGVCeXRlc0lPKHNlbGYpOgorICAgICAgICB3aXRoIEJ5dGVzSU8oKSBhcyBiaW86CisgICAgICAgICAgICB3aXRoIEJaMkZpbGUoYmlvLCAidyIpIGFzIGJ6MmY6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBiejJmLndyaXRlKQorICAgICAgICAgICAgICAgIGJ6MmYud3JpdGUoc2VsZi5URVhUKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRlY29tcHJlc3MoYmlvLmdldHZhbHVlKCkpLCBzZWxmLlRFWFQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGJpby5jbG9zZWQpCisKKyAgICBkZWYgdGVzdFNlZWtGb3J3YXJkQnl0ZXNJTyhzZWxmKToKKyAgICAgICAgd2l0aCBCeXRlc0lPKHNlbGYuREFUQSkgYXMgYmlvOgorICAgICAgICAgICAgd2l0aCBCWjJGaWxlKGJpbykgYXMgYnoyZjoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGJ6MmYuc2VlaykKKyAgICAgICAgICAgICAgICBiejJmLnNlZWsoMTUwKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZi5yZWFkKCksIHNlbGYuVEVYVFsxNTA6XSkKKworICAgIGRlZiB0ZXN0U2Vla0JhY2t3YXJkc0J5dGVzSU8oc2VsZik6CisgICAgICAgIHdpdGggQnl0ZXNJTyhzZWxmLkRBVEEpIGFzIGJpbzoKKyAgICAgICAgICAgIHdpdGggQloyRmlsZShiaW8pIGFzIGJ6MmY6CisgICAgICAgICAgICAgICAgYnoyZi5yZWFkKDUwMCkKKyAgICAgICAgICAgICAgICBiejJmLnNlZWsoLTE1MCwgMSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ6MmYucmVhZCgpLCBzZWxmLlRFWFRbNTAwLTE1MDpdKQogCiBjbGFzcyBCWjJDb21wcmVzc29yVGVzdChCYXNlVGVzdCk6CiAgICAgZGVmIHRlc3RDb21wcmVzcyhzZWxmKToKLSAgICAgICAgIyAiVGVzdCBCWjJDb21wcmVzc29yLmNvbXByZXNzKCkvZmx1c2goKSIKICAgICAgICAgYnoyYyA9IEJaMkNvbXByZXNzb3IoKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGJ6MmMuY29tcHJlc3MpCiAgICAgICAgIGRhdGEgPSBiejJjLmNvbXByZXNzKHNlbGYuVEVYVCkKQEAgLTMwMCwxMSArNTg1LDEwIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kZWNvbXByZXNzKGRhdGEpLCBzZWxmLlRFWFQpCiAKICAgICBkZWYgdGVzdENvbXByZXNzQ2h1bmtzMTAoc2VsZik6Ci0gICAgICAgICMgIlRlc3QgQloyQ29tcHJlc3Nvci5jb21wcmVzcygpL2ZsdXNoKCkgd2l0aCBjaHVua3Mgb2YgMTAgYnl0ZXMiCiAgICAgICAgIGJ6MmMgPSBCWjJDb21wcmVzc29yKCkKICAgICAgICAgbiA9IDAKICAgICAgICAgZGF0YSA9IGInJwotICAgICAgICB3aGlsZSAxOgorICAgICAgICB3aGlsZSBUcnVlOgogICAgICAgICAgICAgc3RyID0gc2VsZi5URVhUW24qMTA6KG4rMSkqMTBdCiAgICAgICAgICAgICBpZiBub3Qgc3RyOgogICAgICAgICAgICAgICAgIGJyZWFrCkBAIC0zMTMsMjMgKzU5NywzOCBAQAogICAgICAgICBkYXRhICs9IGJ6MmMuZmx1c2goKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGVjb21wcmVzcyhkYXRhKSwgc2VsZi5URVhUKQogCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcgKyAxMDAsIG1lbXVzZT0yKQorICAgIGRlZiB0ZXN0Q29tcHJlc3M0RyhzZWxmLCBzaXplKToKKyAgICAgICAgIyAiVGVzdCBCWjJDb21wcmVzc29yLmNvbXByZXNzKCkvZmx1c2goKSB3aXRoID40R2lCIGlucHV0IgorICAgICAgICBiejJjID0gQloyQ29tcHJlc3NvcigpCisgICAgICAgIGRhdGEgPSBiIngiICogc2l6ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBjb21wcmVzc2VkID0gYnoyYy5jb21wcmVzcyhkYXRhKQorICAgICAgICAgICAgY29tcHJlc3NlZCArPSBiejJjLmZsdXNoKCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGRhdGEgPSBOb25lICAjIFJlbGVhc2UgbWVtb3J5CisgICAgICAgIGRhdGEgPSBiejIuZGVjb21wcmVzcyhjb21wcmVzc2VkKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhKSwgc2l6ZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGEuc3RyaXAoYiJ4IikpLCAwKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZGF0YSA9IE5vbmUKKwogY2xhc3MgQloyRGVjb21wcmVzc29yVGVzdChCYXNlVGVzdCk6CiAgICAgZGVmIHRlc3RfQ29uc3RydWN0b3Ioc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgQloyRGVjb21wcmVzc29yLCA0MikKIAogICAgIGRlZiB0ZXN0RGVjb21wcmVzcyhzZWxmKToKLSAgICAgICAgIyAiVGVzdCBCWjJEZWNvbXByZXNzb3IuZGVjb21wcmVzcygpIgogICAgICAgICBiejJkID0gQloyRGVjb21wcmVzc29yKCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBiejJkLmRlY29tcHJlc3MpCiAgICAgICAgIHRleHQgPSBiejJkLmRlY29tcHJlc3Moc2VsZi5EQVRBKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRleHQsIHNlbGYuVEVYVCkKIAogICAgIGRlZiB0ZXN0RGVjb21wcmVzc0NodW5rczEwKHNlbGYpOgotICAgICAgICAjICJUZXN0IEJaMkRlY29tcHJlc3Nvci5kZWNvbXByZXNzKCkgd2l0aCBjaHVua3Mgb2YgMTAgYnl0ZXMiCiAgICAgICAgIGJ6MmQgPSBCWjJEZWNvbXByZXNzb3IoKQogICAgICAgICB0ZXh0ID0gYicnCiAgICAgICAgIG4gPSAwCi0gICAgICAgIHdoaWxlIDE6CisgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICBzdHIgPSBzZWxmLkRBVEFbbioxMDoobisxKSoxMF0KICAgICAgICAgICAgIGlmIG5vdCBzdHI6CiAgICAgICAgICAgICAgICAgYnJlYWsKQEAgLTMzOCw3ICs2MzcsNiBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRleHQsIHNlbGYuVEVYVCkKIAogICAgIGRlZiB0ZXN0RGVjb21wcmVzc1VudXNlZERhdGEoc2VsZik6Ci0gICAgICAgICMgIlRlc3QgQloyRGVjb21wcmVzc29yLmRlY29tcHJlc3MoKSB3aXRoIHVudXNlZCBkYXRhIgogICAgICAgICBiejJkID0gQloyRGVjb21wcmVzc29yKCkKICAgICAgICAgdW51c2VkX2RhdGEgPSBiInRoaXMgaXMgdW51c2VkIGRhdGEiCiAgICAgICAgIHRleHQgPSBiejJkLmRlY29tcHJlc3Moc2VsZi5EQVRBK3VudXNlZF9kYXRhKQpAQCAtMzQ2LDQ0ICs2NDQsMTUyIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnoyZC51bnVzZWRfZGF0YSwgdW51c2VkX2RhdGEpCiAKICAgICBkZWYgdGVzdEVPRkVycm9yKHNlbGYpOgotICAgICAgICAjICJDYWxsaW5nIEJaMkRlY29tcHJlc3Nvci5kZWNvbXByZXNzKCkgYWZ0ZXIgRU9TIG11c3QgcmFpc2UgRU9GRXJyb3IiCiAgICAgICAgIGJ6MmQgPSBCWjJEZWNvbXByZXNzb3IoKQogICAgICAgICB0ZXh0ID0gYnoyZC5kZWNvbXByZXNzKHNlbGYuREFUQSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRU9GRXJyb3IsIGJ6MmQuZGVjb21wcmVzcywgYiJhbnl0aGluZyIpCiAKKyAgICBAYmlnbWVtdGVzdChzaXplPV80RyArIDEwMCwgbWVtdXNlPTMpCisgICAgZGVmIHRlc3REZWNvbXByZXNzNEcoc2VsZiwgc2l6ZSk6CisgICAgICAgICMgIlRlc3QgQloyRGVjb21wcmVzc29yLmRlY29tcHJlc3MoKSB3aXRoID40R2lCIGlucHV0IgorICAgICAgICBibG9ja3NpemUgPSAxMCAqIDEwMjQgKiAxMDI0CisgICAgICAgIGJsb2NrID0gcmFuZG9tLmdldHJhbmRiaXRzKGJsb2Nrc2l6ZSAqIDgpLnRvX2J5dGVzKGJsb2Nrc2l6ZSwgJ2xpdHRsZScpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRhdGEgPSBibG9jayAqIChzaXplIC8vIGJsb2Nrc2l6ZSArIDEpCisgICAgICAgICAgICBjb21wcmVzc2VkID0gYnoyLmNvbXByZXNzKGRhdGEpCisgICAgICAgICAgICBiejJkID0gQloyRGVjb21wcmVzc29yKCkKKyAgICAgICAgICAgIGRlY29tcHJlc3NlZCA9IGJ6MmQuZGVjb21wcmVzcyhjb21wcmVzc2VkKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRlY29tcHJlc3NlZCA9PSBkYXRhKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZGF0YSA9IE5vbmUKKyAgICAgICAgICAgIGNvbXByZXNzZWQgPSBOb25lCisgICAgICAgICAgICBkZWNvbXByZXNzZWQgPSBOb25lCiAKLWNsYXNzIEZ1bmNUZXN0KEJhc2VUZXN0KToKLSAgICAiVGVzdCBtb2R1bGUgZnVuY3Rpb25zIgogCitjbGFzcyBDb21wcmVzc0RlY29tcHJlc3NUZXN0KEJhc2VUZXN0KToKICAgICBkZWYgdGVzdENvbXByZXNzKHNlbGYpOgotICAgICAgICAjICJUZXN0IGNvbXByZXNzKCkgZnVuY3Rpb24iCiAgICAgICAgIGRhdGEgPSBiejIuY29tcHJlc3Moc2VsZi5URVhUKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGVjb21wcmVzcyhkYXRhKSwgc2VsZi5URVhUKQogCiAgICAgZGVmIHRlc3REZWNvbXByZXNzKHNlbGYpOgotICAgICAgICAjICJUZXN0IGRlY29tcHJlc3MoKSBmdW5jdGlvbiIKICAgICAgICAgdGV4dCA9IGJ6Mi5kZWNvbXByZXNzKHNlbGYuREFUQSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXh0LCBzZWxmLlRFWFQpCiAKICAgICBkZWYgdGVzdERlY29tcHJlc3NFbXB0eShzZWxmKToKLSAgICAgICAgIyAiVGVzdCBkZWNvbXByZXNzKCkgZnVuY3Rpb24gd2l0aCBlbXB0eSBzdHJpbmciCiAgICAgICAgIHRleHQgPSBiejIuZGVjb21wcmVzcyhiIiIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGV4dCwgYiIiKQogCiAgICAgZGVmIHRlc3REZWNvbXByZXNzSW5jb21wbGV0ZShzZWxmKToKLSAgICAgICAgIyAiVGVzdCBkZWNvbXByZXNzKCkgZnVuY3Rpb24gd2l0aCBpbmNvbXBsZXRlIGRhdGEiCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGJ6Mi5kZWNvbXByZXNzLCBzZWxmLkRBVEFbOi0xMF0pCiAKKyAgICBkZWYgdGVzdERlY29tcHJlc3NNdWx0aVN0cmVhbShzZWxmKToKKyAgICAgICAgdGV4dCA9IGJ6Mi5kZWNvbXByZXNzKHNlbGYuREFUQSAqIDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGV4dCwgc2VsZi5URVhUICogNSkKKworCitjbGFzcyBPcGVuVGVzdChCYXNlVGVzdCk6CisgICAgZGVmIHRlc3RfYmluYXJ5X21vZGVzKHNlbGYpOgorICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKHNlbGYuVEVYVCkKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIpIGFzIGY6CisgICAgICAgICAgICBmaWxlX2RhdGEgPSBiejIuZGVjb21wcmVzcyhmLnJlYWQoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9kYXRhLCBzZWxmLlRFWFQpCisgICAgICAgIHdpdGggYnoyLm9wZW4oc2VsZi5maWxlbmFtZSwgInJiIikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIHNlbGYuVEVYVCkKKyAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAiYWIiKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZShzZWxmLlRFWFQpCisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgZmlsZV9kYXRhID0gYnoyLmRlY29tcHJlc3MoZi5yZWFkKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgc2VsZi5URVhUICogMikKKworICAgIGRlZiB0ZXN0X2ltcGxpY2l0X2JpbmFyeV9tb2RlcyhzZWxmKToKKyAgICAgICAgIyBUZXN0IGltcGxpY2l0IGJpbmFyeSBtb2RlcyAobm8gImIiIG9yICJ0IiBpbiBtb2RlIHN0cmluZykuCisgICAgICAgIHdpdGggYnoyLm9wZW4oc2VsZi5maWxlbmFtZSwgInciKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZShzZWxmLlRFWFQpCisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgZmlsZV9kYXRhID0gYnoyLmRlY29tcHJlc3MoZi5yZWFkKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgc2VsZi5URVhUKQorICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJyIikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIHNlbGYuVEVYVCkKKyAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAiYSIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKHNlbGYuVEVYVCkKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIpIGFzIGY6CisgICAgICAgICAgICBmaWxlX2RhdGEgPSBiejIuZGVjb21wcmVzcyhmLnJlYWQoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9kYXRhLCBzZWxmLlRFWFQgKiAyKQorCisgICAgZGVmIHRlc3RfdGV4dF9tb2RlcyhzZWxmKToKKyAgICAgICAgdGV4dCA9IHNlbGYuVEVYVC5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgdGV4dF9uYXRpdmVfZW9sID0gdGV4dC5yZXBsYWNlKCJcbiIsIG9zLmxpbmVzZXApCisgICAgICAgIHdpdGggYnoyLm9wZW4oc2VsZi5maWxlbmFtZSwgInd0IikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUodGV4dCkKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIpIGFzIGY6CisgICAgICAgICAgICBmaWxlX2RhdGEgPSBiejIuZGVjb21wcmVzcyhmLnJlYWQoKSkuZGVjb2RlKCJhc2NpaSIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgdGV4dF9uYXRpdmVfZW9sKQorICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJydCIpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB0ZXh0KQorICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJhdCIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKHRleHQpCisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgZmlsZV9kYXRhID0gYnoyLmRlY29tcHJlc3MoZi5yZWFkKCkpLmRlY29kZSgiYXNjaWkiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIHRleHRfbmF0aXZlX2VvbCAqIDIpCisKKyAgICBkZWYgdGVzdF9maWxlb2JqKHNlbGYpOgorICAgICAgICB3aXRoIGJ6Mi5vcGVuKEJ5dGVzSU8oc2VsZi5EQVRBKSwgInIiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgc2VsZi5URVhUKQorICAgICAgICB3aXRoIGJ6Mi5vcGVuKEJ5dGVzSU8oc2VsZi5EQVRBKSwgInJiIikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIHNlbGYuVEVYVCkKKyAgICAgICAgdGV4dCA9IHNlbGYuVEVYVC5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgd2l0aCBiejIub3BlbihCeXRlc0lPKHNlbGYuREFUQSksICJydCIpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB0ZXh0KQorCisgICAgZGVmIHRlc3RfYmFkX3BhcmFtcyhzZWxmKToKKyAgICAgICAgIyBUZXN0IGludmFsaWQgcGFyYW1ldGVyIGNvbWJpbmF0aW9ucy4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJ3YnQiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgYnoyLm9wZW4oc2VsZi5maWxlbmFtZSwgInJiIiwgZW5jb2Rpbmc9InV0Zi04IikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIsIGVycm9ycz0iaWdub3JlIikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIsIG5ld2xpbmU9IlxuIikKKworICAgIGRlZiB0ZXN0X2VuY29kaW5nKHNlbGYpOgorICAgICAgICAjIFRlc3Qgbm9uLWRlZmF1bHQgZW5jb2RpbmcuCisgICAgICAgIHRleHQgPSBzZWxmLlRFWFQuZGVjb2RlKCJhc2NpaSIpCisgICAgICAgIHRleHRfbmF0aXZlX2VvbCA9IHRleHQucmVwbGFjZSgiXG4iLCBvcy5saW5lc2VwKQorICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJ3dCIsIGVuY29kaW5nPSJ1dGYtMTYtbGUiKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSh0ZXh0KQorICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInJiIikgYXMgZjoKKyAgICAgICAgICAgIGZpbGVfZGF0YSA9IGJ6Mi5kZWNvbXByZXNzKGYucmVhZCgpKS5kZWNvZGUoInV0Zi0xNi1sZSIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgdGV4dF9uYXRpdmVfZW9sKQorICAgICAgICB3aXRoIGJ6Mi5vcGVuKHNlbGYuZmlsZW5hbWUsICJydCIsIGVuY29kaW5nPSJ1dGYtMTYtbGUiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgdGV4dCkKKworICAgIGRlZiB0ZXN0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXIoc2VsZik6CisgICAgICAgICMgVGVzdCB3aXRoIG5vbi1kZWZhdWx0IGVuY29kaW5nIGVycm9yIGhhbmRsZXIuCisgICAgICAgIHdpdGggYnoyLm9wZW4oc2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUoYiJmb29ceGZmYmFyIikKKyAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAicnQiLCBlbmNvZGluZz0iYXNjaWkiLCBlcnJvcnM9Imlnbm9yZSIpIFwKKyAgICAgICAgICAgICAgICBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgImZvb2JhciIpCisKKyAgICBkZWYgdGVzdF9uZXdsaW5lKHNlbGYpOgorICAgICAgICAjIFRlc3Qgd2l0aCBleHBsaWNpdCBuZXdsaW5lICh1bml2ZXJzYWwgbmV3bGluZSBtb2RlIGRpc2FibGVkKS4KKyAgICAgICAgdGV4dCA9IHNlbGYuVEVYVC5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgd2l0aCBiejIub3BlbihzZWxmLmZpbGVuYW1lLCAid3QiLCBuZXdsaW5lPSJcbiIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKHRleHQpCisgICAgICAgIHdpdGggYnoyLm9wZW4oc2VsZi5maWxlbmFtZSwgInJ0IiwgbmV3bGluZT0iXHIiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWRsaW5lcygpLCBbdGV4dF0pCisKKwogZGVmIHRlc3RfbWFpbigpOgogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KAogICAgICAgICBCWjJGaWxlVGVzdCwKICAgICAgICAgQloyQ29tcHJlc3NvclRlc3QsCiAgICAgICAgIEJaMkRlY29tcHJlc3NvclRlc3QsCi0gICAgICAgIEZ1bmNUZXN0CisgICAgICAgIENvbXByZXNzRGVjb21wcmVzc1Rlc3QsCisgICAgICAgIE9wZW5UZXN0LAogICAgICkKICAgICBzdXBwb3J0LnJlYXBfY2hpbGRyZW4oKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHRlc3RfbWFpbigpCi0KLSMgdmltOnRzPTQ6c3c9NApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jYWxlbmRhci5weSBiL0xpYi90ZXN0L3Rlc3RfY2FsZW5kYXIucHkKaW5kZXggZDMwOTNhYy4uZTBmNjM5OSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jYWxlbmRhci5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NhbGVuZGFyLnB5CkBAIC01LDYgKzUsMTcgQEAKIGZyb20gdGVzdC5zY3JpcHRfaGVscGVyIGltcG9ydCBhc3NlcnRfcHl0aG9uX29rCiBpbXBvcnQgdGltZQogaW1wb3J0IGxvY2FsZQoraW1wb3J0IHN5cworCityZXN1bHRfMjAwNF8wMV90ZXh0ID0gIiIiCisgICAgSmFudWFyeSAyMDA0CitNbyBUdSBXZSBUaCBGciBTYSBTdQorICAgICAgICAgIDEgIDIgIDMgIDQKKyA1ICA2ICA3ICA4ICA5IDEwIDExCisxMiAxMyAxNCAxNSAxNiAxNyAxOAorMTkgMjAgMjEgMjIgMjMgMjQgMjUKKzI2IDI3IDI4IDI5IDMwIDMxCisiIiIKIAogcmVzdWx0XzIwMDRfdGV4dCA9ICIiIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMDQKQEAgLTQ1LDExICs1NiwxMSBAQAogIiIiCiAKIHJlc3VsdF8yMDA0X2h0bWwgPSAiIiIKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9ImFzY2lpIj8+Cis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSIlKGUpcyI/PgogPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgogPGh0bWw+CiA8aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWFzY2lpIiAvPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9JShlKXMiIC8+CiA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJjYWxlbmRhci5jc3MiIC8+CiA8dGl0bGU+Q2FsZW5kYXIgZm9yIDIwMDQ8L3RpdGxlPgogPC9oZWFkPgpAQCAtMTY5LDYgKzE4MCwxMzUgQEAKIDwvaHRtbD4KICIiIgogCityZXN1bHRfMjAwNF9kYXlzID0gWworICAgIFtbWzAsIDAsIDAsIDEsIDIsIDMsIDRdLAorICAgICAgWzUsIDYsIDcsIDgsIDksIDEwLCAxMV0sCisgICAgICBbMTIsIDEzLCAxNCwgMTUsIDE2LCAxNywgMThdLAorICAgICAgWzE5LCAyMCwgMjEsIDIyLCAyMywgMjQsIDI1XSwKKyAgICAgIFsyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAwXV0sCisgICAgIFtbMCwgMCwgMCwgMCwgMCwgMCwgMV0sCisgICAgICBbMiwgMywgNCwgNSwgNiwgNywgOF0sCisgICAgICBbOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNV0sCisgICAgICBbMTYsIDE3LCAxOCwgMTksIDIwLCAyMSwgMjJdLAorICAgICAgWzIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5XV0sCisgICAgIFtbMSwgMiwgMywgNCwgNSwgNiwgN10sCisgICAgICBbOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0XSwKKyAgICAgIFsxNSwgMTYsIDE3LCAxOCwgMTksIDIwLCAyMV0sCisgICAgICBbMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjhdLAorICAgICAgWzI5LCAzMCwgMzEsIDAsIDAsIDAsIDBdXV0sCisgICAgW1tbMCwgMCwgMCwgMSwgMiwgMywgNF0sCisgICAgICBbNSwgNiwgNywgOCwgOSwgMTAsIDExXSwKKyAgICAgIFsxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOF0sCisgICAgICBbMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMjVdLAorICAgICAgWzI2LCAyNywgMjgsIDI5LCAzMCwgMCwgMF1dLAorICAgICBbWzAsIDAsIDAsIDAsIDAsIDEsIDJdLAorICAgICAgWzMsIDQsIDUsIDYsIDcsIDgsIDldLAorICAgICAgWzEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2XSwKKyAgICAgIFsxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAyM10sCisgICAgICBbMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzBdLAorICAgICAgWzMxLCAwLCAwLCAwLCAwLCAwLCAwXV0sCisgICAgIFtbMCwgMSwgMiwgMywgNCwgNSwgNl0sCisgICAgICBbNywgOCwgOSwgMTAsIDExLCAxMiwgMTNdLAorICAgICAgWzE0LCAxNSwgMTYsIDE3LCAxOCwgMTksIDIwXSwKKyAgICAgIFsyMSwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyN10sCisgICAgICBbMjgsIDI5LCAzMCwgMCwgMCwgMCwgMF1dXSwKKyAgICBbW1swLCAwLCAwLCAxLCAyLCAzLCA0XSwKKyAgICAgIFs1LCA2LCA3LCA4LCA5LCAxMCwgMTFdLAorICAgICAgWzEyLCAxMywgMTQsIDE1LCAxNiwgMTcsIDE4XSwKKyAgICAgIFsxOSwgMjAsIDIxLCAyMiwgMjMsIDI0LCAyNV0sCisgICAgICBbMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMF1dLAorICAgICBbWzAsIDAsIDAsIDAsIDAsIDAsIDFdLAorICAgICAgWzIsIDMsIDQsIDUsIDYsIDcsIDhdLAorICAgICAgWzksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTVdLAorICAgICAgWzE2LCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyXSwKKyAgICAgIFsyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOV0sCisgICAgICBbMzAsIDMxLCAwLCAwLCAwLCAwLCAwXV0sCisgICAgIFtbMCwgMCwgMSwgMiwgMywgNCwgNV0sCisgICAgICBbNiwgNywgOCwgOSwgMTAsIDExLCAxMl0sCisgICAgICBbMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMTldLAorICAgICAgWzIwLCAyMSwgMjIsIDIzLCAyNCwgMjUsIDI2XSwKKyAgICAgIFsyNywgMjgsIDI5LCAzMCwgMCwgMCwgMF1dXSwKKyAgICBbW1swLCAwLCAwLCAwLCAxLCAyLCAzXSwKKyAgICAgIFs0LCA1LCA2LCA3LCA4LCA5LCAxMF0sCisgICAgICBbMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTddLAorICAgICAgWzE4LCAxOSwgMjAsIDIxLCAyMiwgMjMsIDI0XSwKKyAgICAgIFsyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMV1dLAorICAgICBbWzEsIDIsIDMsIDQsIDUsIDYsIDddLAorICAgICAgWzgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNF0sCisgICAgICBbMTUsIDE2LCAxNywgMTgsIDE5LCAyMCwgMjFdLAorICAgICAgWzIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4XSwKKyAgICAgIFsyOSwgMzAsIDAsIDAsIDAsIDAsIDBdXSwKKyAgICAgW1swLCAwLCAxLCAyLCAzLCA0LCA1XSwKKyAgICAgIFs2LCA3LCA4LCA5LCAxMCwgMTEsIDEyXSwKKyAgICAgIFsxMywgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOV0sCisgICAgICBbMjAsIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjZdLAorICAgICAgWzI3LCAyOCwgMjksIDMwLCAzMSwgMCwgMF1dXQorXQorCityZXN1bHRfMjAwNF9kYXRlcyA9IFwKKyAgICBbW1snMTIvMjkvMDMgMTIvMzAvMDMgMTIvMzEvMDMgMDEvMDEvMDQgMDEvMDIvMDQgMDEvMDMvMDQgMDEvMDQvMDQnLAorICAgICAgICcwMS8wNS8wNCAwMS8wNi8wNCAwMS8wNy8wNCAwMS8wOC8wNCAwMS8wOS8wNCAwMS8xMC8wNCAwMS8xMS8wNCcsCisgICAgICAgJzAxLzEyLzA0IDAxLzEzLzA0IDAxLzE0LzA0IDAxLzE1LzA0IDAxLzE2LzA0IDAxLzE3LzA0IDAxLzE4LzA0JywKKyAgICAgICAnMDEvMTkvMDQgMDEvMjAvMDQgMDEvMjEvMDQgMDEvMjIvMDQgMDEvMjMvMDQgMDEvMjQvMDQgMDEvMjUvMDQnLAorICAgICAgICcwMS8yNi8wNCAwMS8yNy8wNCAwMS8yOC8wNCAwMS8yOS8wNCAwMS8zMC8wNCAwMS8zMS8wNCAwMi8wMS8wNCddLAorICAgICAgWycwMS8yNi8wNCAwMS8yNy8wNCAwMS8yOC8wNCAwMS8yOS8wNCAwMS8zMC8wNCAwMS8zMS8wNCAwMi8wMS8wNCcsCisgICAgICAgJzAyLzAyLzA0IDAyLzAzLzA0IDAyLzA0LzA0IDAyLzA1LzA0IDAyLzA2LzA0IDAyLzA3LzA0IDAyLzA4LzA0JywKKyAgICAgICAnMDIvMDkvMDQgMDIvMTAvMDQgMDIvMTEvMDQgMDIvMTIvMDQgMDIvMTMvMDQgMDIvMTQvMDQgMDIvMTUvMDQnLAorICAgICAgICcwMi8xNi8wNCAwMi8xNy8wNCAwMi8xOC8wNCAwMi8xOS8wNCAwMi8yMC8wNCAwMi8yMS8wNCAwMi8yMi8wNCcsCisgICAgICAgJzAyLzIzLzA0IDAyLzI0LzA0IDAyLzI1LzA0IDAyLzI2LzA0IDAyLzI3LzA0IDAyLzI4LzA0IDAyLzI5LzA0J10sCisgICAgICBbJzAzLzAxLzA0IDAzLzAyLzA0IDAzLzAzLzA0IDAzLzA0LzA0IDAzLzA1LzA0IDAzLzA2LzA0IDAzLzA3LzA0JywKKyAgICAgICAnMDMvMDgvMDQgMDMvMDkvMDQgMDMvMTAvMDQgMDMvMTEvMDQgMDMvMTIvMDQgMDMvMTMvMDQgMDMvMTQvMDQnLAorICAgICAgICcwMy8xNS8wNCAwMy8xNi8wNCAwMy8xNy8wNCAwMy8xOC8wNCAwMy8xOS8wNCAwMy8yMC8wNCAwMy8yMS8wNCcsCisgICAgICAgJzAzLzIyLzA0IDAzLzIzLzA0IDAzLzI0LzA0IDAzLzI1LzA0IDAzLzI2LzA0IDAzLzI3LzA0IDAzLzI4LzA0JywKKyAgICAgICAnMDMvMjkvMDQgMDMvMzAvMDQgMDMvMzEvMDQgMDQvMDEvMDQgMDQvMDIvMDQgMDQvMDMvMDQgMDQvMDQvMDQnXV0sCisgICAgIFtbJzAzLzI5LzA0IDAzLzMwLzA0IDAzLzMxLzA0IDA0LzAxLzA0IDA0LzAyLzA0IDA0LzAzLzA0IDA0LzA0LzA0JywKKyAgICAgICAnMDQvMDUvMDQgMDQvMDYvMDQgMDQvMDcvMDQgMDQvMDgvMDQgMDQvMDkvMDQgMDQvMTAvMDQgMDQvMTEvMDQnLAorICAgICAgICcwNC8xMi8wNCAwNC8xMy8wNCAwNC8xNC8wNCAwNC8xNS8wNCAwNC8xNi8wNCAwNC8xNy8wNCAwNC8xOC8wNCcsCisgICAgICAgJzA0LzE5LzA0IDA0LzIwLzA0IDA0LzIxLzA0IDA0LzIyLzA0IDA0LzIzLzA0IDA0LzI0LzA0IDA0LzI1LzA0JywKKyAgICAgICAnMDQvMjYvMDQgMDQvMjcvMDQgMDQvMjgvMDQgMDQvMjkvMDQgMDQvMzAvMDQgMDUvMDEvMDQgMDUvMDIvMDQnXSwKKyAgICAgIFsnMDQvMjYvMDQgMDQvMjcvMDQgMDQvMjgvMDQgMDQvMjkvMDQgMDQvMzAvMDQgMDUvMDEvMDQgMDUvMDIvMDQnLAorICAgICAgICcwNS8wMy8wNCAwNS8wNC8wNCAwNS8wNS8wNCAwNS8wNi8wNCAwNS8wNy8wNCAwNS8wOC8wNCAwNS8wOS8wNCcsCisgICAgICAgJzA1LzEwLzA0IDA1LzExLzA0IDA1LzEyLzA0IDA1LzEzLzA0IDA1LzE0LzA0IDA1LzE1LzA0IDA1LzE2LzA0JywKKyAgICAgICAnMDUvMTcvMDQgMDUvMTgvMDQgMDUvMTkvMDQgMDUvMjAvMDQgMDUvMjEvMDQgMDUvMjIvMDQgMDUvMjMvMDQnLAorICAgICAgICcwNS8yNC8wNCAwNS8yNS8wNCAwNS8yNi8wNCAwNS8yNy8wNCAwNS8yOC8wNCAwNS8yOS8wNCAwNS8zMC8wNCcsCisgICAgICAgJzA1LzMxLzA0IDA2LzAxLzA0IDA2LzAyLzA0IDA2LzAzLzA0IDA2LzA0LzA0IDA2LzA1LzA0IDA2LzA2LzA0J10sCisgICAgICBbJzA1LzMxLzA0IDA2LzAxLzA0IDA2LzAyLzA0IDA2LzAzLzA0IDA2LzA0LzA0IDA2LzA1LzA0IDA2LzA2LzA0JywKKyAgICAgICAnMDYvMDcvMDQgMDYvMDgvMDQgMDYvMDkvMDQgMDYvMTAvMDQgMDYvMTEvMDQgMDYvMTIvMDQgMDYvMTMvMDQnLAorICAgICAgICcwNi8xNC8wNCAwNi8xNS8wNCAwNi8xNi8wNCAwNi8xNy8wNCAwNi8xOC8wNCAwNi8xOS8wNCAwNi8yMC8wNCcsCisgICAgICAgJzA2LzIxLzA0IDA2LzIyLzA0IDA2LzIzLzA0IDA2LzI0LzA0IDA2LzI1LzA0IDA2LzI2LzA0IDA2LzI3LzA0JywKKyAgICAgICAnMDYvMjgvMDQgMDYvMjkvMDQgMDYvMzAvMDQgMDcvMDEvMDQgMDcvMDIvMDQgMDcvMDMvMDQgMDcvMDQvMDQnXV0sCisgICAgIFtbJzA2LzI4LzA0IDA2LzI5LzA0IDA2LzMwLzA0IDA3LzAxLzA0IDA3LzAyLzA0IDA3LzAzLzA0IDA3LzA0LzA0JywKKyAgICAgICAnMDcvMDUvMDQgMDcvMDYvMDQgMDcvMDcvMDQgMDcvMDgvMDQgMDcvMDkvMDQgMDcvMTAvMDQgMDcvMTEvMDQnLAorICAgICAgICcwNy8xMi8wNCAwNy8xMy8wNCAwNy8xNC8wNCAwNy8xNS8wNCAwNy8xNi8wNCAwNy8xNy8wNCAwNy8xOC8wNCcsCisgICAgICAgJzA3LzE5LzA0IDA3LzIwLzA0IDA3LzIxLzA0IDA3LzIyLzA0IDA3LzIzLzA0IDA3LzI0LzA0IDA3LzI1LzA0JywKKyAgICAgICAnMDcvMjYvMDQgMDcvMjcvMDQgMDcvMjgvMDQgMDcvMjkvMDQgMDcvMzAvMDQgMDcvMzEvMDQgMDgvMDEvMDQnXSwKKyAgICAgIFsnMDcvMjYvMDQgMDcvMjcvMDQgMDcvMjgvMDQgMDcvMjkvMDQgMDcvMzAvMDQgMDcvMzEvMDQgMDgvMDEvMDQnLAorICAgICAgICcwOC8wMi8wNCAwOC8wMy8wNCAwOC8wNC8wNCAwOC8wNS8wNCAwOC8wNi8wNCAwOC8wNy8wNCAwOC8wOC8wNCcsCisgICAgICAgJzA4LzA5LzA0IDA4LzEwLzA0IDA4LzExLzA0IDA4LzEyLzA0IDA4LzEzLzA0IDA4LzE0LzA0IDA4LzE1LzA0JywKKyAgICAgICAnMDgvMTYvMDQgMDgvMTcvMDQgMDgvMTgvMDQgMDgvMTkvMDQgMDgvMjAvMDQgMDgvMjEvMDQgMDgvMjIvMDQnLAorICAgICAgICcwOC8yMy8wNCAwOC8yNC8wNCAwOC8yNS8wNCAwOC8yNi8wNCAwOC8yNy8wNCAwOC8yOC8wNCAwOC8yOS8wNCcsCisgICAgICAgJzA4LzMwLzA0IDA4LzMxLzA0IDA5LzAxLzA0IDA5LzAyLzA0IDA5LzAzLzA0IDA5LzA0LzA0IDA5LzA1LzA0J10sCisgICAgICBbJzA4LzMwLzA0IDA4LzMxLzA0IDA5LzAxLzA0IDA5LzAyLzA0IDA5LzAzLzA0IDA5LzA0LzA0IDA5LzA1LzA0JywKKyAgICAgICAnMDkvMDYvMDQgMDkvMDcvMDQgMDkvMDgvMDQgMDkvMDkvMDQgMDkvMTAvMDQgMDkvMTEvMDQgMDkvMTIvMDQnLAorICAgICAgICcwOS8xMy8wNCAwOS8xNC8wNCAwOS8xNS8wNCAwOS8xNi8wNCAwOS8xNy8wNCAwOS8xOC8wNCAwOS8xOS8wNCcsCisgICAgICAgJzA5LzIwLzA0IDA5LzIxLzA0IDA5LzIyLzA0IDA5LzIzLzA0IDA5LzI0LzA0IDA5LzI1LzA0IDA5LzI2LzA0JywKKyAgICAgICAnMDkvMjcvMDQgMDkvMjgvMDQgMDkvMjkvMDQgMDkvMzAvMDQgMTAvMDEvMDQgMTAvMDIvMDQgMTAvMDMvMDQnXV0sCisgICAgIFtbJzA5LzI3LzA0IDA5LzI4LzA0IDA5LzI5LzA0IDA5LzMwLzA0IDEwLzAxLzA0IDEwLzAyLzA0IDEwLzAzLzA0JywKKyAgICAgICAnMTAvMDQvMDQgMTAvMDUvMDQgMTAvMDYvMDQgMTAvMDcvMDQgMTAvMDgvMDQgMTAvMDkvMDQgMTAvMTAvMDQnLAorICAgICAgICcxMC8xMS8wNCAxMC8xMi8wNCAxMC8xMy8wNCAxMC8xNC8wNCAxMC8xNS8wNCAxMC8xNi8wNCAxMC8xNy8wNCcsCisgICAgICAgJzEwLzE4LzA0IDEwLzE5LzA0IDEwLzIwLzA0IDEwLzIxLzA0IDEwLzIyLzA0IDEwLzIzLzA0IDEwLzI0LzA0JywKKyAgICAgICAnMTAvMjUvMDQgMTAvMjYvMDQgMTAvMjcvMDQgMTAvMjgvMDQgMTAvMjkvMDQgMTAvMzAvMDQgMTAvMzEvMDQnXSwKKyAgICAgIFsnMTEvMDEvMDQgMTEvMDIvMDQgMTEvMDMvMDQgMTEvMDQvMDQgMTEvMDUvMDQgMTEvMDYvMDQgMTEvMDcvMDQnLAorICAgICAgICcxMS8wOC8wNCAxMS8wOS8wNCAxMS8xMC8wNCAxMS8xMS8wNCAxMS8xMi8wNCAxMS8xMy8wNCAxMS8xNC8wNCcsCisgICAgICAgJzExLzE1LzA0IDExLzE2LzA0IDExLzE3LzA0IDExLzE4LzA0IDExLzE5LzA0IDExLzIwLzA0IDExLzIxLzA0JywKKyAgICAgICAnMTEvMjIvMDQgMTEvMjMvMDQgMTEvMjQvMDQgMTEvMjUvMDQgMTEvMjYvMDQgMTEvMjcvMDQgMTEvMjgvMDQnLAorICAgICAgICcxMS8yOS8wNCAxMS8zMC8wNCAxMi8wMS8wNCAxMi8wMi8wNCAxMi8wMy8wNCAxMi8wNC8wNCAxMi8wNS8wNCddLAorICAgICAgWycxMS8yOS8wNCAxMS8zMC8wNCAxMi8wMS8wNCAxMi8wMi8wNCAxMi8wMy8wNCAxMi8wNC8wNCAxMi8wNS8wNCcsCisgICAgICAgJzEyLzA2LzA0IDEyLzA3LzA0IDEyLzA4LzA0IDEyLzA5LzA0IDEyLzEwLzA0IDEyLzExLzA0IDEyLzEyLzA0JywKKyAgICAgICAnMTIvMTMvMDQgMTIvMTQvMDQgMTIvMTUvMDQgMTIvMTYvMDQgMTIvMTcvMDQgMTIvMTgvMDQgMTIvMTkvMDQnLAorICAgICAgICcxMi8yMC8wNCAxMi8yMS8wNCAxMi8yMi8wNCAxMi8yMy8wNCAxMi8yNC8wNCAxMi8yNS8wNCAxMi8yNi8wNCcsCisgICAgICAgJzEyLzI3LzA0IDEyLzI4LzA0IDEyLzI5LzA0IDEyLzMwLzA0IDEyLzMxLzA0IDAxLzAxLzA1IDAxLzAyLzA1J11dXQorCiAKIGNsYXNzIE91dHB1dFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgbm9ybWFsaXplX2NhbGVuZGFyKHNlbGYsIHMpOgpAQCAtMTc3LDEyICszMTcsMTkgQEAKICAgICAgICAgICAgIHJldHVybiBub3QgYy5pc3NwYWNlKCkgYW5kIG5vdCBjLmlzZGlnaXQoKQogCiAgICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgZm9yIGxpbmUgaW4gcy5zcGxpdGxpbmVzKEZhbHNlKToKKyAgICAgICAgZm9yIGxpbmUgaW4gcy5zcGxpdGxpbmVzKGtlZXBlbmRzPUZhbHNlKToKICAgICAgICAgICAgICMgRHJvcCB0ZXh0cywgYXMgdGhleSBhcmUgbG9jYWxlIGRlcGVuZGVudAogICAgICAgICAgICAgaWYgbGluZSBhbmQgbm90IGZpbHRlcihuZWl0aGVyc3BhY2Vub3JkaWdpdCwgbGluZSk6CiAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGxpbmUpCiAgICAgICAgIHJldHVybiBsaW5lcwogCisgICAgZGVmIGNoZWNrX2h0bWxjYWxlbmRhcl9lbmNvZGluZyhzZWxmLCByZXEsIHJlcyk6CisgICAgICAgIGNhbCA9IGNhbGVuZGFyLkhUTUxDYWxlbmRhcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBjYWwuZm9ybWF0eWVhcnBhZ2UoMjAwNCwgZW5jb2Rpbmc9cmVxKS5zdHJpcChiJyBcdFxuJyksCisgICAgICAgICAgICAocmVzdWx0XzIwMDRfaHRtbCAlIHsnZSc6IHJlc30pLnN0cmlwKCcgXHRcbicpLmVuY29kZShyZXMpCisgICAgICAgICkKKwogICAgIGRlZiB0ZXN0X291dHB1dChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAgICAgIHNlbGYubm9ybWFsaXplX2NhbGVuZGFyKGNhbGVuZGFyLmNhbGVuZGFyKDIwMDQpKSwKQEAgLTE5NSwxMiArMzQyLDYwIEBACiAgICAgICAgICAgICByZXN1bHRfMjAwNF90ZXh0LnN0cmlwKCkKICAgICAgICAgKQogCi0gICAgZGVmIHRlc3Rfb3V0cHV0X2h0bWxjYWxlbmRhcihzZWxmKToKLSAgICAgICAgZW5jb2RpbmcgPSAnYXNjaWknCi0gICAgICAgIGNhbCA9IGNhbGVuZGFyLkhUTUxDYWxlbmRhcigpCisgICAgZGVmIHRlc3Rfb3V0cHV0X2h0bWxjYWxlbmRhcl9lbmNvZGluZ19hc2NpaShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19odG1sY2FsZW5kYXJfZW5jb2RpbmcoJ2FzY2lpJywgJ2FzY2lpJykKKworICAgIGRlZiB0ZXN0X291dHB1dF9odG1sY2FsZW5kYXJfZW5jb2RpbmdfdXRmOChzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19odG1sY2FsZW5kYXJfZW5jb2RpbmcoJ3V0Zi04JywgJ3V0Zi04JykKKworICAgIGRlZiB0ZXN0X291dHB1dF9odG1sY2FsZW5kYXJfZW5jb2RpbmdfZGVmYXVsdChzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19odG1sY2FsZW5kYXJfZW5jb2RpbmcoTm9uZSwgc3lzLmdldGRlZmF1bHRlbmNvZGluZygpKQorCisgICAgZGVmIHRlc3RfeWVhcmRhdGVzY2FsZW5kYXIoc2VsZik6CisgICAgICAgIGRlZiBzaHJpbmsoY2FsKToKKyAgICAgICAgICAgIHJldHVybiBbW1snICcuam9pbignezowMmR9L3s6MDJkfS97fScuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLm1vbnRoLCBkLmRheSwgc3RyKGQueWVhcilbLTI6XSkgZm9yIGQgaW4geikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeiBpbiB5XSBmb3IgeSBpbiB4XSBmb3IgeCBpbiBjYWxdCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBjYWwuZm9ybWF0eWVhcnBhZ2UoMjAwNCwgZW5jb2Rpbmc9ZW5jb2RpbmcpLnN0cmlwKGInIFx0XG4nKSwKLSAgICAgICAgICAgIHJlc3VsdF8yMDA0X2h0bWwuc3RyaXAoJyBcdFxuJykuZW5jb2RlKGVuY29kaW5nKQorICAgICAgICAgICAgc2hyaW5rKGNhbGVuZGFyLkNhbGVuZGFyKCkueWVhcmRhdGVzY2FsZW5kYXIoMjAwNCkpLAorICAgICAgICAgICAgcmVzdWx0XzIwMDRfZGF0ZXMKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfeWVhcmRheXNjYWxlbmRhcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGNhbGVuZGFyLkNhbGVuZGFyKCkueWVhcmRheXNjYWxlbmRhcigyMDA0KSwKKyAgICAgICAgICAgIHJlc3VsdF8yMDA0X2RheXMKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZm9ybWF0d2Vla2hlYWRlcl9zaG9ydChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGNhbGVuZGFyLlRleHRDYWxlbmRhcigpLmZvcm1hdHdlZWtoZWFkZXIoMiksCisgICAgICAgICAgICAnTW8gVHUgV2UgVGggRnIgU2EgU3UnCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Zvcm1hdHdlZWtoZWFkZXJfbG9uZyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGNhbGVuZGFyLlRleHRDYWxlbmRhcigpLmZvcm1hdHdlZWtoZWFkZXIoOSksCisgICAgICAgICAgICAnICBNb25kYXkgICBUdWVzZGF5ICBXZWRuZXNkYXkgIFRodXJzZGF5ICcKKyAgICAgICAgICAgICcgIEZyaWRheSAgIFNhdHVyZGF5ICAgU3VuZGF5ICcKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZm9ybWF0bW9udGgoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBjYWxlbmRhci5UZXh0Q2FsZW5kYXIoKS5mb3JtYXRtb250aCgyMDA0LCAxKS5zdHJpcCgpLAorICAgICAgICAgICAgcmVzdWx0XzIwMDRfMDFfdGV4dC5zdHJpcCgpCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Zvcm1hdG1vbnRobmFtZV93aXRoX3llYXIoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBjYWxlbmRhci5IVE1MQ2FsZW5kYXIoKS5mb3JtYXRtb250aG5hbWUoMjAwNCwgMSwgd2l0aHllYXI9VHJ1ZSksCisgICAgICAgICAgICAnPHRyPjx0aCBjb2xzcGFuPSI3IiBjbGFzcz0ibW9udGgiPkphbnVhcnkgMjAwNDwvdGg+PC90cj4nCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2Zvcm1hdG1vbnRobmFtZV93aXRob3V0X3llYXIoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBjYWxlbmRhci5IVE1MQ2FsZW5kYXIoKS5mb3JtYXRtb250aG5hbWUoMjAwNCwgMSwgd2l0aHllYXI9RmFsc2UpLAorICAgICAgICAgICAgJzx0cj48dGggY29sc3Bhbj0iNyIgY2xhc3M9Im1vbnRoIj5KYW51YXJ5PC90aD48L3RyPicKICAgICAgICAgKQogCiAKQEAgLTIyNiw3ICs0MjEsMTEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYWxlbmRhci5maXJzdHdlZWtkYXkoKSwgY2FsZW5kYXIuTU9OREFZKQogICAgICAgICBjYWxlbmRhci5zZXRmaXJzdHdlZWtkYXkob3JpZykKIAotICAgIGRlZiB0ZXN0X2VudW1lcmF0ZXdlZWtkYXlzKHNlbGYpOgorICAgIGRlZiB0ZXN0X2lsbGVnYWxfd2Vla2RheV9yZXBvcnRlZChzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KGNhbGVuZGFyLklsbGVnYWxXZWVrZGF5RXJyb3IsICcxMjMnKToKKyAgICAgICAgICAgIGNhbGVuZGFyLnNldGZpcnN0d2Vla2RheSgxMjMpCisKKyAgICBkZWYgdGVzdF9lbnVtZXJhdGVfd2Vla2RheXMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IsIGNhbGVuZGFyLmRheV9hYmJyLl9fZ2V0aXRlbV9fLCAtMTApCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IsIGNhbGVuZGFyLmRheV9uYW1lLl9fZ2V0aXRlbV9fLCAxMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oW2QgZm9yIGQgaW4gY2FsZW5kYXIuZGF5X2FiYnJdKSwgNykKQEAgLTI1Miw3ICs0NTEsNyBAQAogICAgICAgICAgICAgIyB2ZXJpZnkgaXQgImFjdHMgbGlrZSBhIHNlcXVlbmNlIiBpbiB0d28gZm9ybXMgb2YgaXRlcmF0aW9uCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhbHVlWzo6LTFdLCBsaXN0KHJldmVyc2VkKHZhbHVlKSkpCiAKLSAgICBkZWYgdGVzdF9sb2NhbGVjYWxlbmRhcnMoc2VsZik6CisgICAgZGVmIHRlc3RfbG9jYWxlX2NhbGVuZGFycyhzZWxmKToKICAgICAgICAgIyBlbnN1cmUgdGhhdCBMb2NhbGV7VGV4dCxIVE1MfUNhbGVuZGFyIHJlc2V0cyB0aGUgbG9jYWxlIHByb3Blcmx5CiAgICAgICAgICMgKGl0IGlzIHN0aWxsIG5vdCB0aHJlYWQtc2FmZSB0aG91Z2gpCiAgICAgICAgIG9sZF9vY3RvYmVyID0gY2FsZW5kYXIuVGV4dENhbGVuZGFyKCkuZm9ybWF0bW9udGhuYW1lKDIwMTAsIDEwLCAxMCkKQEAgLTQzMSw2ICs2MzAsMTAgQEAKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhjYWxlbmRhci5JbGxlZ2FsTW9udGhFcnJvcik6CiAgICAgICAgICAgICBjYWxlbmRhci5tb250aHJhbmdlKDIwMDQsIDEzKQogCisgICAgZGVmIHRlc3RfaWxsZWdhbF9tb250aF9yZXBvcnRlZChzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KGNhbGVuZGFyLklsbGVnYWxNb250aEVycm9yLCAnNjUnKToKKyAgICAgICAgICAgIGNhbGVuZGFyLm1vbnRocmFuZ2UoMjAwNCwgNjUpCisKIGNsYXNzIExlYXBkYXlzVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X25vX3JhbmdlKHNlbGYpOgogICAgICAgICAjIHRlc3Qgd2hlbiBubyByYW5nZSBpLmUuIHR3byBpZGVudGljYWwgeWVhcnMgYXMgYXJncwpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jYXBpLnB5IGIvTGliL3Rlc3QvdGVzdF9jYXBpLnB5CmluZGV4IGMyYzYzM2YuLjI2OTJiODlkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NhcGkucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jYXBpLnB5CkBAIC00OCwxMyArNDgsMzYgQEAKICAgICAgICAgKG91dCwgZXJyKSA9IHAuY29tbXVuaWNhdGUoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dCwgYicnKQogICAgICAgICAjIFRoaXMgdXNlZCB0byBjYXVzZSBhbiBpbmZpbml0ZSBsb29wLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVyci5yc3RyaXAoKSwKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGVyci5yc3RyaXAoKS5zdGFydHN3aXRoKAogICAgICAgICAgICAgICAgICAgICAgICAgIGInRmF0YWwgUHl0aG9uIGVycm9yOicKLSAgICAgICAgICAgICAgICAgICAgICAgICBiJyBQeVRocmVhZFN0YXRlX0dldDogbm8gY3VycmVudCB0aHJlYWQnKQorICAgICAgICAgICAgICAgICAgICAgICAgIGInIFB5VGhyZWFkU3RhdGVfR2V0OiBubyBjdXJyZW50IHRocmVhZCcpKQogCiAgICAgZGVmIHRlc3RfbWVtb3J5dmlld19mcm9tX05VTExfcG9pbnRlcihzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgX3Rlc3RjYXBpLm1ha2VfbWVtb3J5dmlld19mcm9tX05VTExfcG9pbnRlcikKIAorICAgIGRlZiB0ZXN0X2V4Y19pbmZvKHNlbGYpOgorICAgICAgICByYWlzZWRfZXhjZXB0aW9uID0gVmFsdWVFcnJvcigiNSIpCisgICAgICAgIG5ld19leGMgPSBUeXBlRXJyb3IoIlRFU1QiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByYWlzZSByYWlzZWRfZXhjZXB0aW9uCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6CisgICAgICAgICAgICB0YiA9IGUuX190cmFjZWJhY2tfXworICAgICAgICAgICAgb3JpZ19zeXNfZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgb3JpZ19leGNfaW5mbyA9IF90ZXN0Y2FwaS5zZXRfZXhjX2luZm8obmV3X2V4Yy5fX2NsYXNzX18sIG5ld19leGMsIE5vbmUpCisgICAgICAgICAgICBuZXdfc3lzX2V4Y19pbmZvID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgICAgIG5ld19leGNfaW5mbyA9IF90ZXN0Y2FwaS5zZXRfZXhjX2luZm8oKm9yaWdfZXhjX2luZm8pCisgICAgICAgICAgICByZXNldF9zeXNfZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9yaWdfZXhjX2luZm9bMV0sIGUpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0U2VxdWVuY2VFcXVhbChvcmlnX2V4Y19pbmZvLCAocmFpc2VkX2V4Y2VwdGlvbi5fX2NsYXNzX18sIHJhaXNlZF9leGNlcHRpb24sIHRiKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0U2VxdWVuY2VFcXVhbChvcmlnX3N5c19leGNfaW5mbywgb3JpZ19leGNfaW5mbykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0U2VxdWVuY2VFcXVhbChyZXNldF9zeXNfZXhjX2luZm8sIG9yaWdfZXhjX2luZm8pCisgICAgICAgICAgICBzZWxmLmFzc2VydFNlcXVlbmNlRXF1YWwobmV3X2V4Y19pbmZvLCAobmV3X2V4Yy5fX2NsYXNzX18sIG5ld19leGMsIE5vbmUpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRTZXF1ZW5jZUVxdWFsKG5ld19zeXNfZXhjX2luZm8sIG5ld19leGNfaW5mbykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShGYWxzZSkKKwogQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkaW5nLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKIGNsYXNzIFRlc3RQZW5kaW5nQ2FsbHModW5pdHRlc3QuVGVzdENhc2UpOgogCkBAIC0xOTEsOSArMjE0LDgwIEBACiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBvcy5jaGRpcihvbGRjd2QpCiAKK2NsYXNzIFNraXBpdGVtVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9za2lwaXRlbShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIElmIHRoaXMgdGVzdCBmYWlsZWQsIHlvdSBwcm9iYWJseSBhZGRlZCBhIG5ldyAiZm9ybWF0IHVuaXQiCisgICAgICAgIGluIFB5dGhvbi9nZXRhcmdzLmMsIGJ1dCBuZWdsZWN0ZWQgdG8gdXBkYXRlIG91ciBwb29yIGZyaWVuZAorICAgICAgICBza2lwaXRlbSgpIGluIHRoZSBzYW1lIGZpbGUuICAoSWYgc28sIHNoYW1lIG9uIHlvdSEpCisKKyAgICAgICAgV2l0aCBhIGZldyBleGNlcHRpb25zKiosIHRoaXMgZnVuY3Rpb24gYnJ1dGUtZm9yY2UgdGVzdHMgYWxsCisgICAgICAgIHByaW50YWJsZSBBU0NJSSoqKiBjaGFyYWN0ZXJzICgzMiB0byAxMjYgaW5jbHVzaXZlKSBhcyBmb3JtYXQgdW5pdHMsCisgICAgICAgIGNoZWNraW5nIHRvIHNlZSB0aGF0IFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcygpIHJldHVybiBjb25zaXN0ZW50CisgICAgICAgIGVycm9ycyBib3RoIHdoZW4gdGhlIHVuaXQgaXMgYXR0ZW1wdGVkIHRvIGJlIHVzZWQgYW5kIHdoZW4gaXQgaXMKKyAgICAgICAgc2tpcHBlZC4gIElmIHRoZSBmb3JtYXQgdW5pdCBkb2Vzbid0IGV4aXN0LCB3ZSdsbCBnZXQgb25lIG9mIHR3bworICAgICAgICBzcGVjaWZpYyBlcnJvciBtZXNzYWdlcyAob25lIGZvciB1c2VkLCBvbmUgZm9yIHNraXBwZWQpOyBpZiBpdCBkb2VzCisgICAgICAgIGV4aXN0IHdlICp3b24ndCogZ2V0IHRoYXQgZXJyb3ItLXdlJ2xsIGdldCBlaXRoZXIgbm8gZXJyb3Igb3Igc29tZQorICAgICAgICBvdGhlciBlcnJvci4gIElmIHdlIGdldCB0aGUgc3BlY2lmaWMgImRvZXMgbm90IGV4aXN0IiBlcnJvciBmb3Igb25lCisgICAgICAgIHRlc3QgYW5kIG5vdCBmb3IgdGhlIG90aGVyLCB0aGVyZSdzIGEgbWlzbWF0Y2gsIGFuZCB0aGUgdGVzdCBmYWlscy4KKworICAgICAgICAgICAqKiBTb21lIGZvcm1hdCB1bml0cyBoYXZlIHNwZWNpYWwgZnVubnkgc2VtYW50aWNzIGFuZCBpdCB3b3VsZAorICAgICAgICAgICAgICBiZSBkaWZmaWN1bHQgdG8gYWNjb21vZGF0ZSB0aGVtIGhlcmUuICBTaW5jZSB0aGVzZSBhcmUgYWxsCisgICAgICAgICAgICAgIHdlbGwtZXN0YWJsaXNoZWQgYW5kIHByb3Blcmx5IHNraXBwZWQgaW4gc2tpcGl0ZW0oKSB3ZSBjYW4KKyAgICAgICAgICAgICAgZ2V0IGF3YXkgd2l0aCBub3QgdGVzdGluZyB0aGVtLS10aGlzIHRlc3QgaXMgcmVhbGx5IGludGVuZGVkCisgICAgICAgICAgICAgIHRvIGNhdGNoICpuZXcqIGZvcm1hdCB1bml0cy4KKworICAgICAgICAgICoqKiBQeXRob24gQyBzb3VyY2UgZmlsZXMgbXVzdCBiZSBBU0NJSS4gIFRoZXJlZm9yZSBpdCdzIGltcG9zc2libGUKKyAgICAgICAgICAgICAgdG8gaGF2ZSBub24tQVNDSUkgZm9ybWF0IHVuaXRzLgorCisgICAgICAgICIiIgorICAgICAgICBlbXB0eV90dXBsZSA9ICgpCisgICAgICAgIHR1cGxlXzEgPSAoMCwpCisgICAgICAgIGRpY3RfYiA9IHsnYic6MX0KKyAgICAgICAga2V5d29yZHMgPSBbImEiLCAiYiJdCisKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMzIsIDEyNyk6CisgICAgICAgICAgICBjID0gY2hyKGkpCisKKyAgICAgICAgICAgICMgc2tpcCBwYXJlbnRoZXNlcywgdGhlIGVycm9yIHJlcG9ydGluZyBpcyBpbmNvbnNpc3RlbnQgYWJvdXQgdGhlbQorICAgICAgICAgICAgIyBza2lwICdlJywgaXQncyBhbHdheXMgYSB0d28tY2hhcmFjdGVyIGNvZGUKKyAgICAgICAgICAgICMgc2tpcCAnfCcgYW5kICckJywgdGhleSBkb24ndCByZXByZXNlbnQgYXJndW1lbnRzIGFueXdheQorICAgICAgICAgICAgaWYgYyBpbiAnKCllfCQnOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICMgdGVzdCB0aGUgZm9ybWF0IHVuaXQgd2hlbiBub3Qgc2tpcHBlZAorICAgICAgICAgICAgZm9ybWF0ID0gYyArICJpIgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICMgKG5vdGU6IHRoZSBmb3JtYXQgc3RyaW5nIG11c3QgYmUgYnl0ZXMhKQorICAgICAgICAgICAgICAgIF90ZXN0Y2FwaS5wYXJzZV90dXBsZV9hbmRfa2V5d29yZHModHVwbGVfMSwgZGljdF9iLAorICAgICAgICAgICAgICAgICAgICBmb3JtYXQuZW5jb2RlKCJhc2NpaSIpLCBrZXl3b3JkcykKKyAgICAgICAgICAgICAgICB3aGVuX25vdF9za2lwcGVkID0gRmFsc2UKKyAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBzID0gImFyZ3VtZW50IDEgbXVzdCBiZSBpbXBvc3NpYmxlPGJhZCBmb3JtYXQgY2hhcj4sIG5vdCBpbnQiCisgICAgICAgICAgICAgICAgd2hlbl9ub3Rfc2tpcHBlZCA9IChzdHIoZSkgPT0gcykKKyAgICAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICB3aGVuX25vdF9za2lwcGVkID0gRmFsc2UKKworICAgICAgICAgICAgIyB0ZXN0IHRoZSBmb3JtYXQgdW5pdCB3aGVuIHNraXBwZWQKKyAgICAgICAgICAgIG9wdGlvbmFsX2Zvcm1hdCA9ICJ8IiArIGZvcm1hdAorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIF90ZXN0Y2FwaS5wYXJzZV90dXBsZV9hbmRfa2V5d29yZHMoZW1wdHlfdHVwbGUsIGRpY3RfYiwKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWxfZm9ybWF0LmVuY29kZSgiYXNjaWkiKSwga2V5d29yZHMpCisgICAgICAgICAgICAgICAgd2hlbl9za2lwcGVkID0gRmFsc2UKKyAgICAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICBzID0gImltcG9zc2libGU8YmFkIGZvcm1hdCBjaGFyPjogJ3t9JyIuZm9ybWF0KGZvcm1hdCkKKyAgICAgICAgICAgICAgICB3aGVuX3NraXBwZWQgPSAoc3RyKGUpID09IHMpCisKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAoInRlc3Rfc2tpcGl0ZW1fcGFyaXR5OiAiCisgICAgICAgICAgICAgICAgImRldGVjdGVkIG1pc21hdGNoIGJldHdlZW4gY29udmVydHNpbXBsZSBhbmQgc2tpcGl0ZW0gIgorICAgICAgICAgICAgICAgICJmb3IgZm9ybWF0IHVuaXQgJ3t9JyAoe30pLCBub3Qgc2tpcHBlZCB7fSwgc2tpcHBlZCB7fSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBjLCBpLCB3aGVuX3NraXBwZWQsIHdoZW5fbm90X3NraXBwZWQpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyh3aGVuX3NraXBwZWQsIHdoZW5fbm90X3NraXBwZWQsIG1lc3NhZ2UpCiAKIGRlZiB0ZXN0X21haW4oKToKLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChDQVBJVGVzdCwgVGVzdFBlbmRpbmdDYWxscywgVGVzdDYwMTIsIEVtYmVkZGluZ1Rlc3QpCisgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoQ0FQSVRlc3QsIFRlc3RQZW5kaW5nQ2FsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgVGVzdDYwMTIsIEVtYmVkZGluZ1Rlc3QsIFNraXBpdGVtVGVzdCkKIAogICAgIGZvciBuYW1lIGluIGRpcihfdGVzdGNhcGkpOgogICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoJ3Rlc3RfJyk6CkBAIC0yMTAsMTggKzMwNCwxNyBAQAogICAgICAgICBpZGVudHMgPSBbXQogCiAgICAgICAgIGRlZiBjYWxsYmFjaygpOgotICAgICAgICAgICAgaWRlbnRzLmFwcGVuZChfdGhyZWFkLmdldF9pZGVudCgpKQorICAgICAgICAgICAgaWRlbnRzLmFwcGVuZCh0aHJlYWRpbmcuZ2V0X2lkZW50KCkpCiAKICAgICAgICAgX3Rlc3RjYXBpLl90ZXN0X3RocmVhZF9zdGF0ZShjYWxsYmFjaykKICAgICAgICAgYSA9IGIgPSBjYWxsYmFjawogICAgICAgICB0aW1lLnNsZWVwKDEpCiAgICAgICAgICMgQ2hlY2sgb3VyIG1haW4gdGhyZWFkIGlzIGluIHRoZSBsaXN0IGV4YWN0bHkgMyB0aW1lcy4KLSAgICAgICAgaWYgaWRlbnRzLmNvdW50KF90aHJlYWQuZ2V0X2lkZW50KCkpICE9IDM6CisgICAgICAgIGlmIGlkZW50cy5jb3VudCh0aHJlYWRpbmcuZ2V0X2lkZW50KCkpICE9IDM6CiAgICAgICAgICAgICByYWlzZSBzdXBwb3J0LlRlc3RGYWlsZWQoCiAgICAgICAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgZmluZCBtYWluIHRocmVhZCBjb3JyZWN0bHkgaW4gdGhlIGxpc3QiKQogCiAgICAgaWYgdGhyZWFkaW5nOgotICAgICAgICBpbXBvcnQgX3RocmVhZAogICAgICAgICBpbXBvcnQgdGltZQogICAgICAgICBUZXN0VGhyZWFkU3RhdGUoKQogICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9VGVzdFRocmVhZFN0YXRlKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jZ2kucHkgYi9MaWIvdGVzdC90ZXN0X2NnaS5weQppbmRleCAzMDMxZmIzLi41NTEwYTBkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NnaS5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NnaS5weQpAQCAtNCw2ICs0LDcgQEAKIGltcG9ydCBzeXMKIGltcG9ydCB0ZW1wZmlsZQogaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgd2FybmluZ3MKIGZyb20gaW8gaW1wb3J0IFN0cmluZ0lPLCBCeXRlc0lPCiAKIGNsYXNzIEhhY2tlZFN5c01vZHVsZToKQEAgLTExOSw5ICsxMjAsMTMgQEAKIGNsYXNzIENnaVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2VzY2FwZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGVzdCAmYW1wOyBzdHJpbmciLCBjZ2kuZXNjYXBlKCJ0ZXN0ICYgc3RyaW5nIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiZsdDt0ZXN0IHN0cmluZyZndDsiLCBjZ2kuZXNjYXBlKCI8dGVzdCBzdHJpbmc+IikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiZxdW90O3Rlc3Qgc3RyaW5nJnF1b3Q7IiwgY2dpLmVzY2FwZSgnInRlc3Qgc3RyaW5nIicsIFRydWUpKQorICAgICAgICAjIGNnaS5lc2NhcGUoKSBpcyBkZXByZWNhdGVkLgorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICB3YXJuaW5ncy5maWx0ZXJ3YXJuaW5ncygnaWdub3JlJywgJ2NnaVwuZXNjYXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXN0ICZhbXA7IHN0cmluZyIsIGNnaS5lc2NhcGUoInRlc3QgJiBzdHJpbmciKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiZsdDt0ZXN0IHN0cmluZyZndDsiLCBjZ2kuZXNjYXBlKCI8dGVzdCBzdHJpbmc+IikpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCImcXVvdDt0ZXN0IHN0cmluZyZxdW90OyIsIGNnaS5lc2NhcGUoJyJ0ZXN0IHN0cmluZyInLCBUcnVlKSkKIAogICAgIGRlZiB0ZXN0X3N0cmljdChzZWxmKToKICAgICAgICAgZm9yIG9yaWcsIGV4cGVjdCBpbiBwYXJzZV9zdHJpY3RfdGVzdF9jYXNlczoKQEAgLTE2MCwxMyArMTY1LDcgQEAKICAgICAgICAgICAgIGNnaS5sb2dmcCA9IE5vbmUKICAgICAgICAgICAgIGNnaS5sb2dmaWxlID0gIi9kZXYvbnVsbCIKICAgICAgICAgICAgIGNnaS5pbml0bG9nKCIlcyIsICJUZXN0aW5nIGxvZyAzIikKLSAgICAgICAgICAgIGRlZiBsb2dfY2xlYW51cCgpOgotICAgICAgICAgICAgICAgICIiIlJlc3RvcmUgdGhlIGdsb2JhbCBzdGF0ZSBvZiB0aGUgbG9nIHZhcnMuIiIiCi0gICAgICAgICAgICAgICAgY2dpLmxvZ2ZpbGUgPSAnJwotICAgICAgICAgICAgICAgIGNnaS5sb2dmcC5jbG9zZSgpCi0gICAgICAgICAgICAgICAgY2dpLmxvZ2ZwID0gTm9uZQotICAgICAgICAgICAgICAgIGNnaS5sb2cgPSBjZ2kuaW5pdGxvZwotICAgICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGxvZ19jbGVhbnVwKQorICAgICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGNnaS5jbG9zZWxvZykKICAgICAgICAgICAgIGNnaS5sb2coIlRlc3RpbmcgbG9nIDQiKQogCiAgICAgZGVmIHRlc3RfZmllbGRzdG9yYWdlX3JlYWRsaW5lKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jZ2l0Yi5weSBiL0xpYi90ZXN0L3Rlc3RfY2dpdGIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZhNGIxYQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfY2dpdGIucHkKQEAgLTAsMCArMSw1NSBAQAorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHJ1bl91bml0dGVzdAoraW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgc3lzCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IGNnaXRiCisKK2NsYXNzIFRlc3RDZ2l0Yih1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9mb250cyhzZWxmKToKKyAgICAgICAgdGV4dCA9ICJIZWxsbyBSb2JiaWUhIgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNnaXRiLnNtYWxsKHRleHQpLCAiPHNtYWxsPnt9PC9zbWFsbD4iLmZvcm1hdCh0ZXh0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjZ2l0Yi5zdHJvbmcodGV4dCksICI8c3Ryb25nPnt9PC9zdHJvbmc+Ii5mb3JtYXQodGV4dCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2dpdGIuZ3JleSh0ZXh0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnPGZvbnQgY29sb3I9IiM5MDkwOTAiPnt9PC9mb250PicuZm9ybWF0KHRleHQpKQorCisgICAgZGVmIHRlc3RfYmxhbmtzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNnaXRiLnNtYWxsKCIiKSwgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2dpdGIuc3Ryb25nKCIiKSwgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2dpdGIuZ3JleSgiIiksICIiKQorCisgICAgZGVmIHRlc3RfaHRtbChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiSGVsbG8gV29ybGQiKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlcnI6CisgICAgICAgICAgICAjIElmIHRoZSBodG1sIHdhcyB0ZW1wbGF0ZWQgd2UgY291bGQgZG8gYSBiaXQgbW9yZSBoZXJlLgorICAgICAgICAgICAgIyBBdCBsZWFzdCBjaGVjayB0aGF0IHdlIGdldCBkZXRhaWxzIG9uIHdoYXQgd2UganVzdCByYWlzZWQuCisgICAgICAgICAgICBodG1sID0gY2dpdGIuaHRtbChzeXMuZXhjX2luZm8oKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIlZhbHVlRXJyb3IiLCBodG1sKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihzdHIoZXJyKSwgaHRtbCkKKworICAgIGRlZiB0ZXN0X3RleHQoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkhlbGxvIFdvcmxkIikKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgdGV4dCA9IGNnaXRiLnRleHQoc3lzLmV4Y19pbmZvKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJWYWx1ZUVycm9yIiwgdGV4dCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIkhlbGxvIFdvcmxkIiwgdGV4dCkKKworICAgIGRlZiB0ZXN0X2hvb2soc2VsZik6CisgICAgICAgIHByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKFtzeXMuZXhlY3V0YWJsZSwgJy1jJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnaW1wb3J0IGNnaXRiOycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2dpdGIuZW5hYmxlKCk7JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyYWlzZSBWYWx1ZUVycm9yKCJIZWxsbyBXb3JsZCIpJyldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQorICAgICAgICBvdXQgPSBwcm9jLnN0ZG91dC5yZWFkKCkuZGVjb2RlKHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHByb2Muc3Rkb3V0LmNsb3NlKQorICAgICAgICBzZWxmLmFzc2VydEluKCJWYWx1ZUVycm9yIiwgb3V0KQorICAgICAgICBzZWxmLmFzc2VydEluKCJIZWxsbyBXb3JsZCIsIG91dCkKKworCitkZWYgdGVzdF9tYWluKCk6CisgICAgcnVuX3VuaXR0ZXN0KFRlc3RDZ2l0YikKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jbWQucHkgYi9MaWIvdGVzdC90ZXN0X2NtZC5weQppbmRleCAzYTQ2MzU1Li42NjE4NTM1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NtZC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NtZC5weQpAQCAtMjI4LDcgKzIyOCw3IEBACiAKIGRlZiB0ZXN0X2NvdmVyYWdlKGNvdmVyZGlyKToKICAgICB0cmFjZSA9IHN1cHBvcnQuaW1wb3J0X21vZHVsZSgndHJhY2UnKQotICAgIHRyYWNlcj10cmFjZS5UcmFjZShpZ25vcmVkaXJzPVtzeXMucHJlZml4LCBzeXMuZXhlY19wcmVmaXgsXSwKKyAgICB0cmFjZXI9dHJhY2UuVHJhY2UoaWdub3JlZGlycz1bc3lzLmJhc2VfcHJlZml4LCBzeXMuYmFzZV9leGVjX3ByZWZpeCxdLAogICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2U9MCwgY291bnQ9MSkKICAgICB0cmFjZXIucnVuKCdyZWxvYWQoY21kKTt0ZXN0X21haW4oKScpCiAgICAgcj10cmFjZXIucmVzdWx0cygpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NtZF9saW5lLnB5IGIvTGliL3Rlc3QvdGVzdF9jbWRfbGluZS5weQppbmRleCAxYTIxMjgxLi44Yzk2MGIxIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NtZF9saW5lLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY21kX2xpbmUucHkKQEAgLTMxLDEyICszMSw2IEBACiAgICAgICAgIHNlbGYudmVyaWZ5X3ZhbGlkX2ZsYWcoJy1PJykKICAgICAgICAgc2VsZi52ZXJpZnlfdmFsaWRfZmxhZygnLU9PJykKIAotICAgIGRlZiB0ZXN0X3Eoc2VsZik6Ci0gICAgICAgIHNlbGYudmVyaWZ5X3ZhbGlkX2ZsYWcoJy1Rb2xkJykKLSAgICAgICAgc2VsZi52ZXJpZnlfdmFsaWRfZmxhZygnLVFuZXcnKQotICAgICAgICBzZWxmLnZlcmlmeV92YWxpZF9mbGFnKCctUXdhcm4nKQotICAgICAgICBzZWxmLnZlcmlmeV92YWxpZF9mbGFnKCctUXdhcm5hbGwnKQotCiAgICAgZGVmIHRlc3Rfc2l0ZV9mbGFnKHNlbGYpOgogICAgICAgICBzZWxmLnZlcmlmeV92YWxpZF9mbGFnKCctUycpCiAKQEAgLTE1MSw3ICsxNDUsNyBAQAogICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJywgJ3Rlc3Qgc3BlY2lmaWMgdG8gTWFjIE9TIFgnKQogICAgIGRlZiB0ZXN0X29zeF91dGY4KHNlbGYpOgogICAgICAgICBkZWYgY2hlY2tfb3V0cHV0KHRleHQpOgotICAgICAgICAgICAgZGVjb2RlZCA9IHRleHQuZGVjb2RlKCd1dGY4JywgJ3N1cnJvZ2F0ZWVzY2FwZScpCisgICAgICAgICAgICBkZWNvZGVkID0gdGV4dC5kZWNvZGUoJ3V0Zi04JywgJ3N1cnJvZ2F0ZWVzY2FwZScpCiAgICAgICAgICAgICBleHBlY3RlZCA9IGFzY2lpKGRlY29kZWQpLmVuY29kZSgnYXNjaWknKSArIGInXG4nCiAKICAgICAgICAgICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCkBAIC0yMjMsNyArMjE3LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRJbihwYXRoMi5lbmNvZGUoJ2FzY2lpJyksIG91dCkKIAogICAgIGRlZiB0ZXN0X2Rpc3BsYXlob29rX3VuZW5jb2RhYmxlKHNlbGYpOgotICAgICAgICBmb3IgZW5jb2RpbmcgaW4gKCdhc2NpaScsICdsYXRpbjEnLCAndXRmOCcpOgorICAgICAgICBmb3IgZW5jb2RpbmcgaW4gKCdhc2NpaScsICdsYXRpbi0xJywgJ3V0Zi04Jyk6CiAgICAgICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQogICAgICAgICAgICAgZW52WydQWVRIT05JT0VOQ09ESU5HJ10gPSBlbmNvZGluZwogICAgICAgICAgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4oCkBAIC0yODIsNyArMjc2LDcgQEAKICAgICAgICAgcmMsIG91dCwgZXJyID0gYXNzZXJ0X3B5dGhvbl9vaygnLWMnLCBjb2RlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGInJywgb3V0KQogICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KGVyci5kZWNvZGUoJ2FzY2lpJywgJ2lnbm9yZScpLAotICAgICAgICAgICAgICAgICAgICAgICAgICdFeGNlcHRpb24gSU9FcnJvcjogLiogaWdub3JlZCcpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ0V4Y2VwdGlvbiBPU0Vycm9yOiAuKiBpZ25vcmVkJykKIAogICAgIGRlZiB0ZXN0X2Nsb3NlZF9zdGRvdXQoc2VsZik6CiAgICAgICAgICMgSXNzdWUgIzEzNDQ0OiBpZiBzdGRvdXQgaGFzIGJlZW4gZXhwbGljaXRseSBjbG9zZWQsIHdlIHNob3VsZApAQCAtMzM2LDE0ICszMzAsMTQgQEAKICAgICAgICAgaGFzaGVzID0gW10KICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMik6CiAgICAgICAgICAgICBjb2RlID0gJ3ByaW50KGhhc2goInNwYW0iKSknCi0gICAgICAgICAgICByYywgb3V0LCBlcnIgPSBhc3NlcnRfcHl0aG9uX29rKCctUicsICctYycsIGNvZGUpCisgICAgICAgICAgICByYywgb3V0LCBlcnIgPSBhc3NlcnRfcHl0aG9uX29rKCctYycsIGNvZGUpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJjLCAwKQogICAgICAgICAgICAgaGFzaGVzLmFwcGVuZChvdXQpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoaGFzaGVzWzBdLCBoYXNoZXNbMV0pCiAKICAgICAgICAgIyBWZXJpZnkgdGhhdCBzeXMuZmxhZ3MgY29udGFpbnMgaGFzaF9yYW5kb21pemF0aW9uCiAgICAgICAgIGNvZGUgPSAnaW1wb3J0IHN5czsgcHJpbnQoInJhbmRvbSBpcyIsIHN5cy5mbGFncy5oYXNoX3JhbmRvbWl6YXRpb24pJwotICAgICAgICByYywgb3V0LCBlcnIgPSBhc3NlcnRfcHl0aG9uX29rKCctUicsICctYycsIGNvZGUpCisgICAgICAgIHJjLCBvdXQsIGVyciA9IGFzc2VydF9weXRob25fb2soJy1jJywgY29kZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyYywgMCkKICAgICAgICAgc2VsZi5hc3NlcnRJbihiJ3JhbmRvbSBpcyAxJywgb3V0KQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NtZF9saW5lX3NjcmlwdC5weSBiL0xpYi90ZXN0L3Rlc3RfY21kX2xpbmVfc2NyaXB0LnB5CmluZGV4IDZiNTlkOTYuLmQ4YmMyNjMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY21kX2xpbmVfc2NyaXB0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY21kX2xpbmVfc2NyaXB0LnB5CkBAIC0xLDExICsxLDEzIEBACiAjIHRlc3RzIGNvbW1hbmQgbGluZSBleGVjdXRpb24gb2Ygc2NyaXB0cwogCitpbXBvcnQgaW1wb3J0bGliCiBpbXBvcnQgdW5pdHRlc3QKIGltcG9ydCBzeXMKIGltcG9ydCBvcwogaW1wb3J0IG9zLnBhdGgKIGltcG9ydCBweV9jb21waWxlCiAKK2ltcG9ydCB0ZXh0d3JhcAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBmcm9tIHRlc3Quc2NyaXB0X2hlbHBlciBpbXBvcnQgKAogICAgIG1ha2VfcGtnLCBtYWtlX3NjcmlwdCwgbWFrZV96aXBfcGtnLCBtYWtlX3ppcF9zY3JpcHQsCkBAIC00OSwxMiArNTEsMTYgQEAKICIiIgogCiBkZWYgX21ha2VfdGVzdF9zY3JpcHQoc2NyaXB0X2Rpciwgc2NyaXB0X2Jhc2VuYW1lLCBzb3VyY2U9dGVzdF9zb3VyY2UpOgotICAgIHJldHVybiBtYWtlX3NjcmlwdChzY3JpcHRfZGlyLCBzY3JpcHRfYmFzZW5hbWUsIHNvdXJjZSkKKyAgICB0b19yZXR1cm4gPSBtYWtlX3NjcmlwdChzY3JpcHRfZGlyLCBzY3JpcHRfYmFzZW5hbWUsIHNvdXJjZSkKKyAgICBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKQorICAgIHJldHVybiB0b19yZXR1cm4KIAogZGVmIF9tYWtlX3Rlc3RfemlwX3BrZyh6aXBfZGlyLCB6aXBfYmFzZW5hbWUsIHBrZ19uYW1lLCBzY3JpcHRfYmFzZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZT10ZXN0X3NvdXJjZSwgZGVwdGg9MSk6Ci0gICAgcmV0dXJuIG1ha2VfemlwX3BrZyh6aXBfZGlyLCB6aXBfYmFzZW5hbWUsIHBrZ19uYW1lLCBzY3JpcHRfYmFzZW5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsIGRlcHRoKQorICAgIHRvX3JldHVybiA9IG1ha2VfemlwX3BrZyh6aXBfZGlyLCB6aXBfYmFzZW5hbWUsIHBrZ19uYW1lLCBzY3JpcHRfYmFzZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwgZGVwdGgpCisgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKKyAgICByZXR1cm4gdG9fcmV0dXJuCiAKICMgVGhlcmUncyBubyBlYXN5IHdheSB0byBwYXNzIHRoZSBzY3JpcHQgZGlyZWN0b3J5IGluIHRvIGdldAogIyAtbSB0byB3b3JrIChhdm9pZGluZyB0aGF0IGlzIHRoZSB3aG9sZSBwb2ludCBvZiBtYWtpbmcKQEAgLTcyLDcgKzc4LDkgQEAKICAgICBlbHNlOgogICAgICAgICBwYXRoID0gcmVwcihwYXRoKQogICAgIHNvdXJjZSA9IGxhdW5jaF9zb3VyY2UgJSAocGF0aCwgbW9kdWxlX25hbWUpCi0gICAgcmV0dXJuIG1ha2Vfc2NyaXB0KHNjcmlwdF9kaXIsIHNjcmlwdF9iYXNlbmFtZSwgc291cmNlKQorICAgIHRvX3JldHVybiA9IG1ha2Vfc2NyaXB0KHNjcmlwdF9kaXIsIHNjcmlwdF9iYXNlbmFtZSwgc291cmNlKQorICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCisgICAgcmV0dXJuIHRvX3JldHVybgogCiBjbGFzcyBDbWRMaW5lVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIF9jaGVja19vdXRwdXQoc2VsZiwgc2NyaXB0X25hbWUsIGV4aXRfY29kZSwgZGF0YSwKQEAgLTI5NCw2ICszMDIsMjQgQEAKICAgICAgICAgICAgICAgICAgICAgcHJpbnQob3V0KQogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmMsIDEpCiAKKyAgICBkZWYgdGVzdF9wZXBfNDA5X3ZlcmJpYWdlKHNlbGYpOgorICAgICAgICAjIE1ha2Ugc3VyZSBQRVAgNDA5IHN5bnRheCBwcm9wZXJseSBzdXBwcmVzc2VzCisgICAgICAgICMgdGhlIGNvbnRleHQgb2YgYW4gZXhjZXB0aW9uCisgICAgICAgIHNjcmlwdCA9IHRleHR3cmFwLmRlZGVudCgiIiJcCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHJhaXNlIE5hbWVFcnJvciBmcm9tIE5vbmUKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgd2l0aCB0ZW1wX2RpcigpIGFzIHNjcmlwdF9kaXI6CisgICAgICAgICAgICBzY3JpcHRfbmFtZSA9IF9tYWtlX3Rlc3Rfc2NyaXB0KHNjcmlwdF9kaXIsICdzY3JpcHQnLCBzY3JpcHQpCisgICAgICAgICAgICBleGl0Y29kZSwgc3Rkb3V0LCBzdGRlcnIgPSBhc3NlcnRfcHl0aG9uX2ZhaWx1cmUoc2NyaXB0X25hbWUpCisgICAgICAgICAgICB0ZXh0ID0gc3RkZXJyLmRlY29kZSgnYXNjaWknKS5zcGxpdCgnXG4nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGV4dCksIDQpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGV4dFswXS5zdGFydHN3aXRoKCdUcmFjZWJhY2snKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0ZXh0WzFdLnN0YXJ0c3dpdGgoJyAgRmlsZSAnKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0ZXh0WzNdLnN0YXJ0c3dpdGgoJ05hbWVFcnJvcicpKQorCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoQ21kTGluZVRlc3QpCiAgICAgc3VwcG9ydC5yZWFwX2NoaWxkcmVuKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY29kZS5weSBiL0xpYi90ZXN0L3Rlc3RfY29kZS5weQppbmRleCBlMWM3YTc4Li4zMzc3YTdiIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NvZGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jb2RlLnB5CkBAIC0xNiw3ICsxNiw3IEBACiBmcmVldmFyczogKCkKIG5sb2NhbHM6IDIKIGZsYWdzOiAzCi1jb25zdHM6ICgnTm9uZScsICc8Y29kZSBvYmplY3QgZz4nKQorY29uc3RzOiAoJ05vbmUnLCAnPGNvZGUgb2JqZWN0IGc+JywgIidmLjxsb2NhbHM+LmcnIikKIAogPj4+IGR1bXAoZig0KS5fX2NvZGVfXykKIG5hbWU6IGcKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY29kZWNjYWxsYmFja3MucHkgYi9MaWIvdGVzdC90ZXN0X2NvZGVjY2FsbGJhY2tzLnB5CmluZGV4IGM1YjFlMjUuLjgxYmY4MGQgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY29kZWNjYWxsYmFja3MucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jb2RlY2NhbGxiYWNrcy5weQpAQCAtMSw1ICsxLDE4IEBACi1pbXBvcnQgdGVzdC5zdXBwb3J0LCB1bml0dGVzdAotaW1wb3J0IHN5cywgY29kZWNzLCBodG1sLmVudGl0aWVzLCB1bmljb2RlZGF0YQoraW1wb3J0IGNvZGVjcworaW1wb3J0IGh0bWwuZW50aXRpZXMKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZXN0LnN1cHBvcnQKK2ltcG9ydCB1bmljb2RlZGF0YQoraW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgd2FybmluZ3MKKwordHJ5OgorICAgIGltcG9ydCBjdHlwZXMKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBjdHlwZXMgPSBOb25lCisgICAgU0laRU9GX1dDSEFSX1QgPSAtMQorZWxzZToKKyAgICBTSVpFT0ZfV0NIQVJfVCA9IGN0eXBlcy5zaXplb2YoY3R5cGVzLmNfd2NoYXIpCiAKIGNsYXNzIFBvc1JldHVybjoKICAgICAjIHRoaXMgY2FuIGJlIHVzZWQgZm9yIGNvbmZpZ3VyYWJsZSBjYWxsYmFja3MKQEAgLTEzNSwyMiArMTQ4LDE0IEBACiAgICAgZGVmIHRlc3RfYmFja3NsYXNoZXNjYXBlKHNlbGYpOgogICAgICAgICAjIERvZXMgdGhlIHNhbWUgYXMgdGhlICJ1bmljb2RlLWVzY2FwZSIgZW5jb2RpbmcsIGJ1dCB3aXRoIGRpZmZlcmVudAogICAgICAgICAjIGJhc2UgZW5jb2RpbmdzLgotICAgICAgICBzaW4gPSAiYVx4YWNcdTEyMzRcdTIwYWNcdTgwMDAiCi0gICAgICAgIGlmIHN5cy5tYXh1bmljb2RlID4gMHhmZmZmOgotICAgICAgICAgICAgc2luICs9IGNocihzeXMubWF4dW5pY29kZSkKLSAgICAgICAgc291dCA9IGIiYVxceGFjXFx1MTIzNFxcdTIwYWNcXHU4MDAwIgotICAgICAgICBpZiBzeXMubWF4dW5pY29kZSA+IDB4ZmZmZjoKLSAgICAgICAgICAgIHNvdXQgKz0gYnl0ZXMoIlxcVSUwOHgiICUgc3lzLm1heHVuaWNvZGUsICJhc2NpaSIpCisgICAgICAgIHNpbiA9ICJhXHhhY1x1MTIzNFx1MjBhY1x1ODAwMFxVMDAxMGZmZmYiCisgICAgICAgIHNvdXQgPSBiImFcXHhhY1xcdTEyMzRcXHUyMGFjXFx1ODAwMFxcVTAwMTBmZmZmIgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpbi5lbmNvZGUoImFzY2lpIiwgImJhY2tzbGFzaHJlcGxhY2UiKSwgc291dCkKIAotICAgICAgICBzb3V0ID0gYiJhXHhhY1xcdTEyMzRcXHUyMGFjXFx1ODAwMCIKLSAgICAgICAgaWYgc3lzLm1heHVuaWNvZGUgPiAweGZmZmY6Ci0gICAgICAgICAgICBzb3V0ICs9IGJ5dGVzKCJcXFUlMDh4IiAlIHN5cy5tYXh1bmljb2RlLCAiYXNjaWkiKQorICAgICAgICBzb3V0ID0gYiJhXHhhY1xcdTEyMzRcXHUyMGFjXFx1ODAwMFxcVTAwMTBmZmZmIgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpbi5lbmNvZGUoImxhdGluLTEiLCAiYmFja3NsYXNocmVwbGFjZSIpLCBzb3V0KQogCi0gICAgICAgIHNvdXQgPSBiImFceGFjXFx1MTIzNFx4YTRcXHU4MDAwIgotICAgICAgICBpZiBzeXMubWF4dW5pY29kZSA+IDB4ZmZmZjoKLSAgICAgICAgICAgIHNvdXQgKz0gYnl0ZXMoIlxcVSUwOHgiICUgc3lzLm1heHVuaWNvZGUsICJhc2NpaSIpCisgICAgICAgIHNvdXQgPSBiImFceGFjXFx1MTIzNFx4YTRcXHU4MDAwXFxVMDAxMGZmZmYiCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2luLmVuY29kZSgiaXNvLTg4NTktMTUiLCAiYmFja3NsYXNocmVwbGFjZSIpLCBzb3V0KQogCiAgICAgZGVmIHRlc3RfZGVjb2RpbmdfY2FsbGJhY2tzKHNlbGYpOgpAQCAtMjAwLDMzICsyMDUsMzcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjb2RlY3MuY2hhcm1hcF9lbmNvZGUsIHNpbiwgInJlcGxhY2UiLCBjaGFybWFwKQogCiAgICAgZGVmIHRlc3RfZGVjb2RldW5pY29kZWludGVybmFsKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgIFVuaWNvZGVEZWNvZGVFcnJvciwKLSAgICAgICAgICAgIGIiXHgwMFx4MDBceDAwXHgwMFx4MDAiLmRlY29kZSwKLSAgICAgICAgICAgICJ1bmljb2RlLWludGVybmFsIiwKLSAgICAgICAgKQotICAgICAgICBpZiBzeXMubWF4dW5pY29kZSA+IDB4ZmZmZjoKKyAgICAgICAgd2l0aCB0ZXN0LnN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCd1bmljb2RlX2ludGVybmFsIGNvZGVjIGhhcyBiZWVuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXByZWNhdGVkJywgRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKKyAgICAgICAgICAgICAgICBVbmljb2RlRGVjb2RlRXJyb3IsCisgICAgICAgICAgICAgICAgYiJceDAwXHgwMFx4MDBceDAwXHgwMCIuZGVjb2RlLAorICAgICAgICAgICAgICAgICJ1bmljb2RlLWludGVybmFsIiwKKyAgICAgICAgICAgICkKKyAgICAgICAgaWYgU0laRU9GX1dDSEFSX1QgPT0gNDoKICAgICAgICAgICAgIGRlZiBoYW5kbGVyX3VuaWNvZGVpbnRlcm5hbChleGMpOgogICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGV4YywgVW5pY29kZURlY29kZUVycm9yKToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJkb24ndCBrbm93IGhvdyB0byBoYW5kbGUgJXIiICUgZXhjKQogICAgICAgICAgICAgICAgIHJldHVybiAoIlx4MDEiLCAxKQogCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGIiXHgwMFx4MDBceDAwXHgwMFx4MDAiLmRlY29kZSgidW5pY29kZS1pbnRlcm5hbCIsICJpZ25vcmUiKSwKLSAgICAgICAgICAgICAgICAiXHUwMDAwIgotICAgICAgICAgICAgKQorICAgICAgICAgICAgd2l0aCB0ZXN0LnN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCd1bmljb2RlX2ludGVybmFsIGNvZGVjIGhhcyBiZWVuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVwcmVjYXRlZCcsIERlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAgICAgICAgIGIiXHgwMFx4MDBceDAwXHgwMFx4MDAiLmRlY29kZSgidW5pY29kZS1pbnRlcm5hbCIsICJpZ25vcmUiKSwKKyAgICAgICAgICAgICAgICAgICAgIlx1MDAwMCIKKyAgICAgICAgICAgICAgICApCiAKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgYiJceDAwXHgwMFx4MDBceDAwXHgwMCIuZGVjb2RlKCJ1bmljb2RlLWludGVybmFsIiwgInJlcGxhY2UiKSwKLSAgICAgICAgICAgICAgICAiXHUwMDAwXHVmZmZkIgotICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAgICAgICAgIGIiXHgwMFx4MDBceDAwXHgwMFx4MDAiLmRlY29kZSgidW5pY29kZS1pbnRlcm5hbCIsICJyZXBsYWNlIiksCisgICAgICAgICAgICAgICAgICAgICJcdTAwMDBcdWZmZmQiCisgICAgICAgICAgICAgICAgKQogCi0gICAgICAgICAgICBjb2RlY3MucmVnaXN0ZXJfZXJyb3IoInRlc3QuaHVpIiwgaGFuZGxlcl91bmljb2RlaW50ZXJuYWwpCisgICAgICAgICAgICAgICAgY29kZWNzLnJlZ2lzdGVyX2Vycm9yKCJ0ZXN0Lmh1aSIsIGhhbmRsZXJfdW5pY29kZWludGVybmFsKQogCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGIiXHgwMFx4MDBceDAwXHgwMFx4MDAiLmRlY29kZSgidW5pY29kZS1pbnRlcm5hbCIsICJ0ZXN0Lmh1aSIpLAotICAgICAgICAgICAgICAgICJcdTAwMDBcdTAwMDFcdTAwMDAiCi0gICAgICAgICAgICApCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICAgICAgYiJceDAwXHgwMFx4MDBceDAwXHgwMCIuZGVjb2RlKCJ1bmljb2RlLWludGVybmFsIiwgInRlc3QuaHVpIiksCisgICAgICAgICAgICAgICAgICAgICJcdTAwMDBcdTAwMDFcdTAwMDAiCisgICAgICAgICAgICAgICAgKQogCiAgICAgZGVmIHRlc3RfY2FsbGJhY2tzKHNlbGYpOgogICAgICAgICBkZWYgaGFuZGxlcjEoZXhjKToKQEAgLTM1NSw3ICszNjQsNyBAQAogICAgICAgICAgICAgWyJhc2NpaSIsICJcdWZmZmZ4IiwgMCwgMSwgIm91Y2giXSwKICAgICAgICAgICAgICInYXNjaWknIGNvZGVjIGNhbid0IGVuY29kZSBjaGFyYWN0ZXIgJ1xcdWZmZmYnIGluIHBvc2l0aW9uIDA6IG91Y2giCiAgICAgICAgICkKLSAgICAgICAgaWYgc3lzLm1heHVuaWNvZGUgPiAweGZmZmY6CisgICAgICAgIGlmIFNJWkVPRl9XQ0hBUl9UID09IDQ6CiAgICAgICAgICAgICBzZWxmLmNoZWNrX2V4Y2VwdGlvbm9iamVjdGFyZ3MoCiAgICAgICAgICAgICAgICAgVW5pY29kZUVuY29kZUVycm9yLAogICAgICAgICAgICAgICAgIFsiYXNjaWkiLCAiXFUwMDAxMDAwMHgiLCAwLCAxLCAib3VjaCJdLApAQCAtMzkwLDcgKzM5OSw3IEBACiAgICAgICAgICAgICBbImdcdWZmZmZyayIsIDEsIDIsICJvdWNoIl0sCiAgICAgICAgICAgICAiY2FuJ3QgdHJhbnNsYXRlIGNoYXJhY3RlciAnXFx1ZmZmZicgaW4gcG9zaXRpb24gMTogb3VjaCIKICAgICAgICAgKQotICAgICAgICBpZiBzeXMubWF4dW5pY29kZSA+IDB4ZmZmZjoKKyAgICAgICAgaWYgU0laRU9GX1dDSEFSX1QgPT0gNDoKICAgICAgICAgICAgIHNlbGYuY2hlY2tfZXhjZXB0aW9ub2JqZWN0YXJncygKICAgICAgICAgICAgICAgICBVbmljb2RlVHJhbnNsYXRlRXJyb3IsCiAgICAgICAgICAgICAgICAgWyJnXFUwMDAxMDAwMHJrIiwgMSwgMiwgIm91Y2giXSwKQEAgLTU3NywzMSArNTg2LDMwIEBACiAgICAgICAgICAgICAgICAgVW5pY29kZUVuY29kZUVycm9yKCJhc2NpaSIsICJcdWZmZmYiLCAwLCAxLCAib3VjaCIpKSwKICAgICAgICAgICAgICgiXFx1ZmZmZiIsIDEpCiAgICAgICAgICkKLSAgICAgICAgIyAxIG9uIFVDUy00IGJ1aWxkcywgMiBvbiBVQ1MtMgotICAgICAgICBsZW5fd2lkZSA9IGxlbigiXFUwMDAxMDAwMCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBjb2RlY3MuYmFja3NsYXNocmVwbGFjZV9lcnJvcnMoCi0gICAgICAgICAgICAgICAgVW5pY29kZUVuY29kZUVycm9yKCJhc2NpaSIsICJcVTAwMDEwMDAwIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgbGVuX3dpZGUsICJvdWNoIikpLAotICAgICAgICAgICAgKCJcXFUwMDAxMDAwMCIsIGxlbl93aWRlKQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBjb2RlY3MuYmFja3NsYXNocmVwbGFjZV9lcnJvcnMoCi0gICAgICAgICAgICAgICAgVW5pY29kZUVuY29kZUVycm9yKCJhc2NpaSIsICJcVTAwMTBmZmZmIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgbGVuX3dpZGUsICJvdWNoIikpLAotICAgICAgICAgICAgKCJcXFUwMDEwZmZmZiIsIGxlbl93aWRlKQotICAgICAgICApCi0gICAgICAgICMgTG9uZSBzdXJyb2dhdGVzIChyZWdhcmRsZXNzIG9mIHVuaWNvZGUgd2lkdGgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBjb2RlY3MuYmFja3NsYXNocmVwbGFjZV9lcnJvcnMoCi0gICAgICAgICAgICAgICAgVW5pY29kZUVuY29kZUVycm9yKCJhc2NpaSIsICJcdWQ4MDAiLCAwLCAxLCAib3VjaCIpKSwKLSAgICAgICAgICAgICgiXFx1ZDgwMCIsIDEpCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGNvZGVjcy5iYWNrc2xhc2hyZXBsYWNlX2Vycm9ycygKLSAgICAgICAgICAgICAgICBVbmljb2RlRW5jb2RlRXJyb3IoImFzY2lpIiwgIlx1ZGZmZiIsIDAsIDEsICJvdWNoIikpLAotICAgICAgICAgICAgKCJcXHVkZmZmIiwgMSkKLSAgICAgICAgKQorICAgICAgICBpZiBTSVpFT0ZfV0NIQVJfVCA+IDA6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgIGNvZGVjcy5iYWNrc2xhc2hyZXBsYWNlX2Vycm9ycygKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZUVuY29kZUVycm9yKCJhc2NpaSIsICJcVTAwMDEwMDAwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDEsICJvdWNoIikpLAorICAgICAgICAgICAgICAgICgiXFxVMDAwMTAwMDAiLCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICBjb2RlY3MuYmFja3NsYXNocmVwbGFjZV9lcnJvcnMoCisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVFbmNvZGVFcnJvcigiYXNjaWkiLCAiXFUwMDEwZmZmZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAxLCAib3VjaCIpKSwKKyAgICAgICAgICAgICAgICAoIlxcVTAwMTBmZmZmIiwgMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgICMgTG9uZSBzdXJyb2dhdGVzIChyZWdhcmRsZXNzIG9mIHVuaWNvZGUgd2lkdGgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgIGNvZGVjcy5iYWNrc2xhc2hyZXBsYWNlX2Vycm9ycygKKyAgICAgICAgICAgICAgICAgICAgVW5pY29kZUVuY29kZUVycm9yKCJhc2NpaSIsICJcdWQ4MDAiLCAwLCAxLCAib3VjaCIpKSwKKyAgICAgICAgICAgICAgICAoIlxcdWQ4MDAiLCAxKQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICBjb2RlY3MuYmFja3NsYXNocmVwbGFjZV9lcnJvcnMoCisgICAgICAgICAgICAgICAgICAgIFVuaWNvZGVFbmNvZGVFcnJvcigiYXNjaWkiLCAiXHVkZmZmIiwgMCwgMSwgIm91Y2giKSksCisgICAgICAgICAgICAgICAgKCJcXHVkZmZmIiwgMSkKKyAgICAgICAgICAgICkKIAogICAgIGRlZiB0ZXN0X2JhZGhhbmRsZXJyZXN1bHRzKHNlbGYpOgogICAgICAgICByZXN1bHRzID0gKCA0MiwgImZvbyIsICgxLDIsMyksICgiZm9vIiwgMSwgMyksICgiZm9vIiwgTm9uZSksICgiZm9vIiwpLCAoImZvbyIsIDEsIDMpLCAoImZvbyIsIE5vbmUpLCAoImZvbyIsKSApCkBAIC02MjIsMTIgKzYzMCwxNCBAQAogICAgICAgICAgICAgICAgICgidXRmLTciLCBiIit4LSIpLAogICAgICAgICAgICAgICAgICgidW5pY29kZS1pbnRlcm5hbCIsIGIiXHgwMCIpLAogICAgICAgICAgICAgKToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgICAgICAgICAgVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICBieXRlcy5kZWNvZGUsCi0gICAgICAgICAgICAgICAgICAgIGVuYywKLSAgICAgICAgICAgICAgICAgICAgInRlc3QuYmFkaGFuZGxlciIKLSAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgd2l0aCB0ZXN0LnN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKToKKyAgICAgICAgICAgICAgICAgICAgIyB1bmljb2RlLWludGVybmFsIGhhcyBiZWVuIGRlcHJlY2F0ZWQKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICAgICAgICAgICAgICBUeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICBieXRlcy5kZWNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICBlbmMsCisgICAgICAgICAgICAgICAgICAgICAgICAidGVzdC5iYWRoYW5kbGVyIgorICAgICAgICAgICAgICAgICAgICApCiAKICAgICBkZWYgdGVzdF9sb29rdXAoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29kZWNzLnN0cmljdF9lcnJvcnMsIGNvZGVjcy5sb29rdXBfZXJyb3IoInN0cmljdCIpKQpAQCAtNjc5LDcgKzY4OSw3IEBACiAgICAgICAgICMgUHl0aG9uL2NvZGVjcy5jOjpQeUNvZGVjX1hNTENoYXJSZWZSZXBsYWNlRXJyb3JzKCkKICAgICAgICAgIyBhbmQgaW5saW5lIGltcGxlbWVudGF0aW9ucwogICAgICAgICB2ID0gKDEsIDUsIDEwLCA1MCwgMTAwLCA1MDAsIDEwMDAsIDUwMDAsIDEwMDAwLCA1MDAwMCkKLSAgICAgICAgaWYgc3lzLm1heHVuaWNvZGU+PTEwMDAwMDoKKyAgICAgICAgaWYgU0laRU9GX1dDSEFSX1QgPT0gNDoKICAgICAgICAgICAgIHYgKz0gKDEwMDAwMCwgNTAwMDAwLCAxMDAwMDAwKQogICAgICAgICBzID0gIiIuam9pbihbY2hyKHgpIGZvciB4IGluIHZdKQogICAgICAgICBjb2RlY3MucmVnaXN0ZXJfZXJyb3IoInRlc3QueG1sY2hhcnJlZnJlcGxhY2UiLCBjb2RlY3MueG1sY2hhcnJlZnJlcGxhY2VfZXJyb3JzKQpAQCAtODQzLDggKzg1MywxMiBAQAogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImRvbid0IGtub3cgaG93IHRvIGhhbmRsZSAlciIgJSBleGMpCiAgICAgICAgIGNvZGVjcy5yZWdpc3Rlcl9lcnJvcigidGVzdC5yZXBsYWNpbmciLCByZXBsYWNpbmcpCi0gICAgICAgIGZvciAoZW5jb2RpbmcsIGRhdGEpIGluIGJhZGRhdGE6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGRhdGEuZGVjb2RlLCBlbmNvZGluZywgInRlc3QucmVwbGFjaW5nIikKKworICAgICAgICB3aXRoIHRlc3Quc3VwcG9ydC5jaGVja193YXJuaW5ncygpOgorICAgICAgICAgICAgIyB1bmljb2RlLWludGVybmFsIGhhcyBiZWVuIGRlcHJlY2F0ZWQKKyAgICAgICAgICAgIGZvciAoZW5jb2RpbmcsIGRhdGEpIGluIGJhZGRhdGE6CisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgICAgICAgICBkYXRhLmRlY29kZShlbmNvZGluZywgInRlc3QucmVwbGFjaW5nIikKIAogICAgICAgICBkZWYgbXV0YXRpbmcoZXhjKToKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXhjLCBVbmljb2RlRGVjb2RlRXJyb3IpOgpAQCAtODU1LDggKzg2OSwxMSBAQAogICAgICAgICBjb2RlY3MucmVnaXN0ZXJfZXJyb3IoInRlc3QubXV0YXRpbmciLCBtdXRhdGluZykKICAgICAgICAgIyBJZiB0aGUgZGVjb2RlciBkb2Vzbid0IHBpY2sgdXAgdGhlIG1vZGlmaWVkIGlucHV0IHRoZSBmb2xsb3dpbmcKICAgICAgICAgIyB3aWxsIGxlYWQgdG8gYW4gZW5kbGVzcyBsb29wCi0gICAgICAgIGZvciAoZW5jb2RpbmcsIGRhdGEpIGluIGJhZGRhdGE6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGRhdGEuZGVjb2RlLCBlbmNvZGluZywgInRlc3QucmVwbGFjaW5nIikKKyAgICAgICAgd2l0aCB0ZXN0LnN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKToKKyAgICAgICAgICAgICMgdW5pY29kZS1pbnRlcm5hbCBoYXMgYmVlbiBkZXByZWNhdGVkCisgICAgICAgICAgICBmb3IgKGVuY29kaW5nLCBkYXRhKSBpbiBiYWRkYXRhOgorICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgICAgICAgICAgZGF0YS5kZWNvZGUoZW5jb2RpbmcsICJ0ZXN0LnJlcGxhY2luZyIpCiAKIGRlZiB0ZXN0X21haW4oKToKICAgICB0ZXN0LnN1cHBvcnQucnVuX3VuaXR0ZXN0KENvZGVjQ2FsbGJhY2tUZXN0KQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb2RlY2VuY29kaW5nc19jbi5weSBiL0xpYi90ZXN0L3Rlc3RfY29kZWNlbmNvZGluZ3NfY24ucHkKaW5kZXggZGNhOWYxMC4uYjA4YzVmYyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb2RlY2VuY29kaW5nc19jbi5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvZGVjZW5jb2RpbmdzX2NuLnB5CkBAIC01LDU0ICs1LDU3IEBACiAjCiAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotZnJvbSB0ZXN0IGltcG9ydCB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQKK2Zyb20gdGVzdCBpbXBvcnQgbXVsdGlieXRlY29kZWNfc3VwcG9ydAogaW1wb3J0IHVuaXR0ZXN0CiAKLWNsYXNzIFRlc3RfR0IyMzEyKHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgVGVzdF9HQjIzMTIobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGVuY29kaW5nID0gJ2diMjMxMicKLSAgICB0c3RyaW5nID0gdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnZ2IyMzEyJykKKyAgICB0c3RyaW5nID0gbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ2diMjMxMicpCiAgICAgY29kZWN0ZXN0cyA9ICgKICAgICAgICAgIyBpbnZhbGlkIGJ5dGVzCiAgICAgICAgIChiImFiY1x4ODFceDgxXHhjMVx4YzQiLCAic3RyaWN0IiwgIE5vbmUpLAogICAgICAgICAoYiJhYmNceGM4IiwgInN0cmljdCIsICBOb25lKSwKLSAgICAgICAgKGIiYWJjXHg4MVx4ODFceGMxXHhjNCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ODA0YSIpLAotICAgICAgICAoYiJhYmNceDgxXHg4MVx4YzFceGM0XHhjOCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ODA0YVx1ZmZmZCIpLAorICAgICAgICAoYiJhYmNceDgxXHg4MVx4YzFceGM0IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHVmZmZkXHU4MDRhIiksCisgICAgICAgIChiImFiY1x4ODFceDgxXHhjMVx4YzRceGM4IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHVmZmZkXHU4MDRhXHVmZmZkIiksCiAgICAgICAgIChiImFiY1x4ODFceDgxXHhjMVx4YzQiLCAiaWdub3JlIiwgICJhYmNcdTgwNGEiKSwKICAgICAgICAgKGIiXHhjMVx4NjQiLCAic3RyaWN0IiwgTm9uZSksCiAgICAgKQogCi1jbGFzcyBUZXN0X0dCSyh0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RfR0JLKG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdnYmsnCi0gICAgdHN0cmluZyA9IHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ2diaycpCisgICAgdHN0cmluZyA9IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdnYmsnKQogICAgIGNvZGVjdGVzdHMgPSAoCiAgICAgICAgICMgaW52YWxpZCBieXRlcwogICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgInN0cmljdCIsICBOb25lKSwKICAgICAgICAgKGIiYWJjXHhjOCIsICJzdHJpY3QiLCAgTm9uZSksCi0gICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdTgwNGEiKSwKLSAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNFx4YzgiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdTgwNGFcdWZmZmQiKSwKKyAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1ODA0YSIpLAorICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0XHhjOCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1ODA0YVx1ZmZmZCIpLAogICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgImlnbm9yZSIsICAiYWJjXHU4MDRhIiksCiAgICAgICAgIChiIlx4ODNceDM0XHg4M1x4MzEiLCAic3RyaWN0IiwgTm9uZSksCiAgICAgICAgICgiXHUzMGZiIiwgInN0cmljdCIsIE5vbmUpLAogICAgICkKIAotY2xhc3MgVGVzdF9HQjE4MDMwKHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgVGVzdF9HQjE4MDMwKG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdnYjE4MDMwJwotICAgIHRzdHJpbmcgPSB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdnYjE4MDMwJykKKyAgICB0c3RyaW5nID0gbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ2diMTgwMzAnKQogICAgIGNvZGVjdGVzdHMgPSAoCiAgICAgICAgICMgaW52YWxpZCBieXRlcwogICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgInN0cmljdCIsICBOb25lKSwKICAgICAgICAgKGIiYWJjXHhjOCIsICJzdHJpY3QiLCAgTm9uZSksCi0gICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdTgwNGEiKSwKLSAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNFx4YzgiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdTgwNGFcdWZmZmQiKSwKKyAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1ODA0YSIpLAorICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0XHhjOCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1ODA0YVx1ZmZmZCIpLAogICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgImlnbm9yZSIsICAiYWJjXHU4MDRhIiksCi0gICAgICAgIChiImFiY1x4ODRceDM5XHg4NFx4MzlceGMxXHhjNCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ODA0YSIpLAorICAgICAgICAoYiJhYmNceDg0XHgzOVx4ODRceDM5XHhjMVx4YzQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmQ5XHVmZmZkOVx1ODA0YSIpLAogICAgICAgICAoIlx1MzBmYiIsICJzdHJpY3QiLCBiIlx4ODE5XHhhNzkiKSwKKyAgICAgICAgKGIiYWJjXHg4NFx4MzJceDgwXHg4MGRlZiIsICJyZXBsYWNlIiwgJ2FiY1x1ZmZmZDJcdWZmZmRcdWZmZmRkZWYnKSwKKyAgICAgICAgKGIiYWJjXHg4MVx4MzBceDgxXHgzMGRlZiIsICJzdHJpY3QiLCAnYWJjXHg4MGRlZicpLAorICAgICAgICAoYiJhYmNceDg2XHgzMFx4ODFceDMwZGVmIiwgInJlcGxhY2UiLCAnYWJjXHVmZmZkMFx1ZmZmZDBkZWYnKSwKICAgICApCiAgICAgaGFzX2lzbzEwNjQ2ID0gVHJ1ZQogCi1jbGFzcyBUZXN0X0haKHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgVGVzdF9IWihtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZW5jb2RpbmcgPSAnaHonCi0gICAgdHN0cmluZyA9IHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ2h6JykKKyAgICB0c3RyaW5nID0gbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ2h6JykKICAgICBjb2RlY3Rlc3RzID0gKAogICAgICAgICAjIHRlc3QgJ35cbicgKDMgbGluZXMpCiAgICAgICAgIChiJ1RoaXMgc2VudGVuY2UgaXMgaW4gQVNDSUkuXG4nCkBAIC03NCw5ICs3NywxMSBAQAogICAgICAgICAgJ1x1NWRmMVx1NjI0MFx1NGUwZFx1NmIzMlx1ZmYwY1x1NTJmZlx1NjViZFx1NjViY1x1NGViYVx1MzAwMicKICAgICAgICAgICdCeWUuXG4nKSwKICAgICAgICAgIyBpbnZhbGlkIGJ5dGVzCi0gICAgICAgIChiJ2FifmNkJywgJ3JlcGxhY2UnLCAnYWJcdUZGRkRkJyksCisgICAgICAgIChiJ2FifmNkJywgJ3JlcGxhY2UnLCAnYWJcdUZGRkRjZCcpLAogICAgICAgICAoYidhYlx4ZmZjZCcsICdyZXBsYWNlJywgJ2FiXHVGRkZEY2QnKSwKICAgICAgICAgKGInYWJ+e1x4ODFceDgxXHg0MVx4NDR+fWNkJywgJ3JlcGxhY2UnLCAnYWJcdUZGRkRcdUZGRkRcdTgwNEFjZCcpLAorICAgICAgICAoYidhYn57XHg0MVx4NDR+fWNkJywgJ3JlcGxhY2UnLCAnYWJcdTgwNEFjZCcpLAorICAgICAgICAoYiJhYn57XHg3OVx4NzlceDQxXHg0NH59Y2QiLCAicmVwbGFjZSIsICJhYlx1ZmZmZFx1ZmZmZFx1ODA0YWNkIiksCiAgICAgKQogCiBkZWYgdGVzdF9tYWluKCk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NvZGVjZW5jb2RpbmdzX2hrLnB5IGIvTGliL3Rlc3QvdGVzdF9jb2RlY2VuY29kaW5nc19oay5weQppbmRleCBjY2RjMGI0Li4zMTM2M2Y0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NvZGVjZW5jb2RpbmdzX2hrLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY29kZWNlbmNvZGluZ3NfaGsucHkKQEAgLTUsMTggKzUsMTggQEAKICMKIAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0Ci1mcm9tIHRlc3QgaW1wb3J0IHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydAorZnJvbSB0ZXN0IGltcG9ydCBtdWx0aWJ5dGVjb2RlY19zdXBwb3J0CiBpbXBvcnQgdW5pdHRlc3QKIAotY2xhc3MgVGVzdF9CaWc1SEtTQ1ModGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBUZXN0X0JpZzVIS1NDUyhtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZW5jb2RpbmcgPSAnYmlnNWhrc2NzJwotICAgIHRzdHJpbmcgPSB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdiaWc1aGtzY3MnKQorICAgIHRzdHJpbmcgPSBtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnYmlnNWhrc2NzJykKICAgICBjb2RlY3Rlc3RzID0gKAogICAgICAgICAjIGludmFsaWQgYnl0ZXMKICAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJzdHJpY3QiLCAgTm9uZSksCiAgICAgICAgIChiImFiY1x4YzgiLCAic3RyaWN0IiwgIE5vbmUpLAotICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHU4YjEwIiksCi0gICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzRceGM4IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHU4YjEwXHVmZmZkIiksCisgICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWZmZmRcdThiMTAiKSwKKyAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNFx4YzgiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWZmZmRcdThiMTBcdWZmZmQiKSwKICAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJpZ25vcmUiLCAgImFiY1x1OGIxMCIpLAogICAgICkKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb2RlY2VuY29kaW5nc19pc28yMDIyLnB5IGIvTGliL3Rlc3QvdGVzdF9jb2RlY2VuY29kaW5nc19pc28yMDIyLnB5CmluZGV4IDhjNmU4YTUuLmU0YzE4MzkgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY29kZWNlbmNvZGluZ3NfaXNvMjAyMi5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvZGVjZW5jb2RpbmdzX2lzbzIwMjIucHkKQEAgLTMsNyArMyw3IEBACiAjIENvZGVjIGVuY29kaW5nIHRlc3RzIGZvciBJU08gMjAyMiBlbmNvZGluZ3MuCiAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotZnJvbSB0ZXN0IGltcG9ydCB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQKK2Zyb20gdGVzdCBpbXBvcnQgbXVsdGlieXRlY29kZWNfc3VwcG9ydAogaW1wb3J0IHVuaXR0ZXN0CiAKIENPTU1PTl9DT0RFQ19URVNUUyA9ICgKQEAgLTEzLDIzICsxMywyMyBAQAogICAgICAgICAoYidhYlx4MUIkZGVmJywgJ3JlcGxhY2UnLCAnYWJcdUZGRkQnKSwKICAgICApCiAKLWNsYXNzIFRlc3RfSVNPMjAyMl9KUCh0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RfSVNPMjAyMl9KUChtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZW5jb2RpbmcgPSAnaXNvMjAyMl9qcCcKLSAgICB0c3RyaW5nID0gdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnaXNvMjAyMl9qcCcpCisgICAgdHN0cmluZyA9IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdpc28yMDIyX2pwJykKICAgICBjb2RlY3Rlc3RzID0gQ09NTU9OX0NPREVDX1RFU1RTICsgKAogICAgICAgICAoYidhYlx4MUJOZGVmJywgJ3JlcGxhY2UnLCAnYWJceDFCTmRlZicpLAogICAgICkKIAotY2xhc3MgVGVzdF9JU08yMDIyX0pQMih0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RfSVNPMjAyMl9KUDIobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGVuY29kaW5nID0gJ2lzbzIwMjJfanBfMicKLSAgICB0c3RyaW5nID0gdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnaXNvMjAyMl9qcCcpCisgICAgdHN0cmluZyA9IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdpc28yMDIyX2pwJykKICAgICBjb2RlY3Rlc3RzID0gQ09NTU9OX0NPREVDX1RFU1RTICsgKAogICAgICAgICAoYidhYlx4MUJOZGVmJywgJ3JlcGxhY2UnLCAnYWJkZWYnKSwKICAgICApCiAKLWNsYXNzIFRlc3RfSVNPMjAyMl9LUih0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RfSVNPMjAyMl9LUihtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZW5jb2RpbmcgPSAnaXNvMjAyMl9rcicKLSAgICB0c3RyaW5nID0gdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnaXNvMjAyMl9rcicpCisgICAgdHN0cmluZyA9IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdpc28yMDIyX2tyJykKICAgICBjb2RlY3Rlc3RzID0gQ09NTU9OX0NPREVDX1RFU1RTICsgKAogICAgICAgICAoYidhYlx4MUJOZGVmJywgJ3JlcGxhY2UnLCAnYWJceDFCTmRlZicpLAogICAgICkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY29kZWNlbmNvZGluZ3NfanAucHkgYi9MaWIvdGVzdC90ZXN0X2NvZGVjZW5jb2RpbmdzX2pwLnB5CmluZGV4IGY1NmEzNzMuLjMwYzllMTkgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY29kZWNlbmNvZGluZ3NfanAucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jb2RlY2VuY29kaW5nc19qcC5weQpAQCAtNSw2MCArNSw2NyBAQAogIwogCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLWZyb20gdGVzdCBpbXBvcnQgdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0Citmcm9tIHRlc3QgaW1wb3J0IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQKIGltcG9ydCB1bml0dGVzdAogCi1jbGFzcyBUZXN0X0NQOTMyKHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgVGVzdF9DUDkzMihtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZW5jb2RpbmcgPSAnY3A5MzInCi0gICAgdHN0cmluZyA9IHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ3NoaWZ0X2ppcycpCisgICAgdHN0cmluZyA9IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdzaGlmdF9qaXMnKQogICAgIGNvZGVjdGVzdHMgPSAoCiAgICAgICAgICMgaW52YWxpZCBieXRlcwogICAgICAgICAoYiJhYmNceDgxXHgwMFx4ODFceDAwXHg4Mlx4ODQiLCAic3RyaWN0IiwgIE5vbmUpLAogICAgICAgICAoYiJhYmNceGY4IiwgInN0cmljdCIsICBOb25lKSwKLSAgICAgICAgKGIiYWJjXHg4MVx4MDBceDgyXHg4NCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmY0NCIpLAotICAgICAgICAoYiJhYmNceDgxXHgwMFx4ODJceDg0XHg4OCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmY0NFx1ZmZmZCIpLAotICAgICAgICAoYiJhYmNceDgxXHgwMFx4ODJceDg0IiwgImlnbm9yZSIsICAiYWJjXHVmZjQ0IiksCisgICAgICAgIChiImFiY1x4ODFceDAwXHg4Mlx4ODQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRceDAwXHVmZjQ0IiksCisgICAgICAgIChiImFiY1x4ODFceDAwXHg4Mlx4ODRceDg4IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHgwMFx1ZmY0NFx1ZmZmZCIpLAorICAgICAgICAoYiJhYmNceDgxXHgwMFx4ODJceDg0IiwgImlnbm9yZSIsICAiYWJjXHgwMFx1ZmY0NCIpLAorICAgICAgICAoYiJhYlx4RUJ4eSIsICJyZXBsYWNlIiwgImFiXHVGRkZEeHkiKSwKKyAgICAgICAgKGIiYWJceEYwXHgzOXh5IiwgInJlcGxhY2UiLCAiYWJcdUZGRkQ5eHkiKSwKKyAgICAgICAgKGIiYWJceEVBXHhGMHh5IiwgInJlcGxhY2UiLCAnYWJcdWZmZmRcdWUwMzh5JyksCiAgICAgICAgICMgc2ppcyB2cyBjcDkzMgogICAgICAgICAoYiJcXFx4N2UiLCAicmVwbGFjZSIsICJcXFx4N2UiKSwKICAgICAgICAgKGIiXHg4MVx4NWZceDgxXHg2MVx4ODFceDdjIiwgInJlcGxhY2UiLCAiXHVmZjNjXHUyMjI1XHVmZjBkIiksCiAgICAgKQogCi1jbGFzcyBUZXN0X0VVQ19KSVNYMDIxMyh0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsCitldWNfY29tbW9udGVzdHMgPSAoCisgICAgIyBpbnZhbGlkIGJ5dGVzCisgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJzdHJpY3QiLCAgTm9uZSksCisgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1Nzk1NiIpLAorICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzRceGM4IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHVmZmZkXHU3OTU2XHVmZmZkIiksCisgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJpZ25vcmUiLCAgImFiY1x1Nzk1NiIpLAorICAgIChiImFiY1x4YzgiLCAic3RyaWN0IiwgIE5vbmUpLAorICAgIChiImFiY1x4OGZceDgzXHg4MyIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1ZmZmZCIpLAorICAgIChiIlx4ODJceEZDeHkiLCAicmVwbGFjZSIsICJcdWZmZmRcdWZmZmR4eSIpLAorICAgIChiIlx4YzFceDY0IiwgInN0cmljdCIsIE5vbmUpLAorICAgIChiIlx4YTFceGMwIiwgInN0cmljdCIsICJcdWZmM2MiKSwKKyAgICAoYiJceGExXHhjMFxcIiwgInN0cmljdCIsICJcdWZmM2NcXCIpLAorICAgIChiIlx4OGVYWSIsICJyZXBsYWNlIiwgIlx1ZmZmZFhZIiksCispCisKK2NsYXNzIFRlc3RfRVVDX0pJU18yMDA0KG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICB1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZW5jb2RpbmcgPSAnZXVjX2ppc3gwMjEzJwotICAgIHRzdHJpbmcgPSB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdldWNfamlzeDAyMTMnKQotICAgIGNvZGVjdGVzdHMgPSAoCi0gICAgICAgICMgaW52YWxpZCBieXRlcwotICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgInN0cmljdCIsICBOb25lKSwKLSAgICAgICAgKGIiYWJjXHhjOCIsICJzdHJpY3QiLCAgTm9uZSksCi0gICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdTc5NTYiKSwKLSAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNFx4YzgiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdTc5NTZcdWZmZmQiKSwKLSAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJpZ25vcmUiLCAgImFiY1x1Nzk1NiIpLAotICAgICAgICAoYiJhYmNceDhmXHg4M1x4ODMiLCAicmVwbGFjZSIsICJhYmNcdWZmZmQiKSwKLSAgICAgICAgKGIiXHhjMVx4NjQiLCAic3RyaWN0IiwgTm9uZSksCi0gICAgICAgIChiIlx4YTFceGMwIiwgInN0cmljdCIsICJcdWZmM2MiKSwKLSAgICApCisgICAgZW5jb2RpbmcgPSAnZXVjX2ppc18yMDA0JworICAgIHRzdHJpbmcgPSBtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnZXVjX2ppc3gwMjEzJykKKyAgICBjb2RlY3Rlc3RzID0gZXVjX2NvbW1vbnRlc3RzCiAgICAgeG1sY2hhcm5hbWV0ZXN0ID0gKAogICAgICAgICAiXHhhYlx1MjExY1x4YmIgPSBcdTIzMjlcdTEyMzRcdTIzMmEiLAogICAgICAgICBiIlx4YTlceGE4JnJlYWw7XHhhOVx4YjIgPSAmbGFuZzsmIzQ2NjA7JnJhbmc7IgogICAgICkKIAotZXVjanBfY29tbW9udGVzdHMgPSAoCi0gICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJzdHJpY3QiLCAgTm9uZSksCi0gICAgKGIiYWJjXHhjOCIsICJzdHJpY3QiLCAgTm9uZSksCi0gICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1Nzk1NiIpLAotICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzRceGM4IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHU3OTU2XHVmZmZkIiksCi0gICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJpZ25vcmUiLCAgImFiY1x1Nzk1NiIpLAotICAgIChiImFiY1x4OGZceDgzXHg4MyIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZCIpLAotICAgIChiIlx4YzFceDY0IiwgInN0cmljdCIsIE5vbmUpLAotKQorY2xhc3MgVGVzdF9FVUNfSklTWDAyMTMobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBlbmNvZGluZyA9ICdldWNfamlzeDAyMTMnCisgICAgdHN0cmluZyA9IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdldWNfamlzeDAyMTMnKQorICAgIGNvZGVjdGVzdHMgPSBldWNfY29tbW9udGVzdHMKKyAgICB4bWxjaGFybmFtZXRlc3QgPSAoCisgICAgICAgICJceGFiXHUyMTFjXHhiYiA9IFx1MjMyOVx1MTIzNFx1MjMyYSIsCisgICAgICAgIGIiXHhhOVx4YTgmcmVhbDtceGE5XHhiMiA9ICZsYW5nOyYjNDY2MDsmcmFuZzsiCisgICAgKQogCi1jbGFzcyBUZXN0X0VVQ19KUF9DT01QQVQodGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLAorY2xhc3MgVGVzdF9FVUNfSlBfQ09NUEFUKG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGVuY29kaW5nID0gJ2V1Y19qcCcKLSAgICB0c3RyaW5nID0gdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnZXVjX2pwJykKLSAgICBjb2RlY3Rlc3RzID0gZXVjanBfY29tbW9udGVzdHMgKyAoCi0gICAgICAgIChiIlx4YTFceGMwXFwiLCAic3RyaWN0IiwgIlx1ZmYzY1xcIiksCisgICAgdHN0cmluZyA9IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdldWNfanAnKQorICAgIGNvZGVjdGVzdHMgPSBldWNfY29tbW9udGVzdHMgKyAoCiAgICAgICAgICgiXHhhNSIsICJzdHJpY3QiLCBiIlx4NWMiKSwKICAgICAgICAgKCJcdTIwM2UiLCAic3RyaWN0IiwgYiJceDdlIiksCiAgICAgKQpAQCAtNjYsMjkgKzczLDQ4IEBACiBzaGlmdGppc19jb21tb25lbmN0ZXN0cyA9ICgKICAgICAoYiJhYmNceDgwXHg4MFx4ODJceDg0IiwgInN0cmljdCIsICBOb25lKSwKICAgICAoYiJhYmNceGY4IiwgInN0cmljdCIsICBOb25lKSwKLSAgICAoYiJhYmNceDgwXHg4MFx4ODJceDg0IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHVmZjQ0IiksCi0gICAgKGIiYWJjXHg4MFx4ODBceDgyXHg4NFx4ODgiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWZmNDRcdWZmZmQiKSwKICAgICAoYiJhYmNceDgwXHg4MFx4ODJceDg0ZGVmIiwgImlnbm9yZSIsICAiYWJjXHVmZjQ0ZGVmIiksCiApCiAKLWNsYXNzIFRlc3RfU0pJU19DT01QQVQodGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBUZXN0X1NKSVNfQ09NUEFUKG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdzaGlmdF9qaXMnCi0gICAgdHN0cmluZyA9IHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ3NoaWZ0X2ppcycpCisgICAgdHN0cmluZyA9IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdzaGlmdF9qaXMnKQogICAgIGNvZGVjdGVzdHMgPSBzaGlmdGppc19jb21tb25lbmN0ZXN0cyArICgKKyAgICAgICAgKGIiYWJjXHg4MFx4ODBceDgyXHg4NCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1ZmY0NCIpLAorICAgICAgICAoYiJhYmNceDgwXHg4MFx4ODJceDg0XHg4OCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1ZmY0NFx1ZmZmZCIpLAorCiAgICAgICAgIChiIlxcXHg3ZSIsICJzdHJpY3QiLCAiXFxceDdlIiksCiAgICAgICAgIChiIlx4ODFceDVmXHg4MVx4NjFceDgxXHg3YyIsICJzdHJpY3QiLCAiXHVmZjNjXHUyMDE2XHUyMjEyIiksCisgICAgICAgIChiImFiY1x4ODFceDM5IiwgInJlcGxhY2UiLCAgImFiY1x1ZmZmZDkiKSwKKyAgICAgICAgKGIiYWJjXHhFQVx4RkMiLCAicmVwbGFjZSIsICAiYWJjXHVmZmZkXHVmZmZkIiksCisgICAgICAgIChiImFiY1x4RkZceDU4IiwgInJlcGxhY2UiLCAgImFiY1x1ZmZmZFgiKSwKICAgICApCiAKLWNsYXNzIFRlc3RfU0pJU1gwMjEzKHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgVGVzdF9TSklTXzIwMDQobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGVuY29kaW5nID0gJ3NoaWZ0X2ppc18yMDA0JworICAgIHRzdHJpbmcgPSBtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnc2hpZnRfamlzJykKKyAgICBjb2RlY3Rlc3RzID0gc2hpZnRqaXNfY29tbW9uZW5jdGVzdHMgKyAoCisgICAgICAgIChiIlxcXHg3ZSIsICJzdHJpY3QiLCAiXHhhNVx1MjAzZSIpLAorICAgICAgICAoYiJceDgxXHg1Zlx4ODFceDYxXHg4MVx4N2MiLCAic3RyaWN0IiwgIlxcXHUyMDE2XHUyMjEyIiksCisgICAgICAgIChiImFiY1x4RUFceEZDIiwgInN0cmljdCIsICAiYWJjXHU2NGJmIiksCisgICAgICAgIChiIlx4ODFceDM5eHkiLCAicmVwbGFjZSIsICAiXHVmZmZkOXh5IiksCisgICAgICAgIChiIlx4RkZceDU4eHkiLCAicmVwbGFjZSIsICAiXHVmZmZkWHh5IiksCisgICAgICAgIChiIlx4ODBceDgwXHg4Mlx4ODR4eSIsICJyZXBsYWNlIiwgIlx1ZmZmZFx1ZmZmZFx1ZmY0NHh5IiksCisgICAgICAgIChiIlx4ODBceDgwXHg4Mlx4ODRceDg4eHkiLCAicmVwbGFjZSIsICJcdWZmZmRcdWZmZmRcdWZmNDRcdTU4NjR5IiksCisgICAgICAgIChiIlx4RkNceEZCeHkiLCAicmVwbGFjZSIsICdcdWZmZmRcdTk1YjR5JyksCisgICAgKQorICAgIHhtbGNoYXJuYW1ldGVzdCA9ICgKKyAgICAgICAgIlx4YWJcdTIxMWNceGJiID0gXHUyMzI5XHUxMjM0XHUyMzJhIiwKKyAgICAgICAgYiJceDg1RyZyZWFsO1x4ODVRID0gJmxhbmc7JiM0NjYwOyZyYW5nOyIKKyAgICApCisKK2NsYXNzIFRlc3RfU0pJU1gwMjEzKG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdzaGlmdF9qaXN4MDIxMycKLSAgICB0c3RyaW5nID0gdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnc2hpZnRfamlzeDAyMTMnKQotICAgIGNvZGVjdGVzdHMgPSAoCi0gICAgICAgICMgaW52YWxpZCBieXRlcwotICAgICAgICAoYiJhYmNceDgwXHg4MFx4ODJceDg0IiwgInN0cmljdCIsICBOb25lKSwKLSAgICAgICAgKGIiYWJjXHhmOCIsICJzdHJpY3QiLCAgTm9uZSksCi0gICAgICAgIChiImFiY1x4ODBceDgwXHg4Mlx4ODQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWZmNDQiKSwKLSAgICAgICAgKGIiYWJjXHg4MFx4ODBceDgyXHg4NFx4ODgiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWZmNDRcdWZmZmQiKSwKLSAgICAgICAgKGIiYWJjXHg4MFx4ODBceDgyXHg4NGRlZiIsICJpZ25vcmUiLCAgImFiY1x1ZmY0NGRlZiIpLAorICAgIHRzdHJpbmcgPSBtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnc2hpZnRfamlzeDAyMTMnKQorICAgIGNvZGVjdGVzdHMgPSBzaGlmdGppc19jb21tb25lbmN0ZXN0cyArICgKKyAgICAgICAgKGIiYWJjXHg4MFx4ODBceDgyXHg4NCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1ZmY0NCIpLAorICAgICAgICAoYiJhYmNceDgwXHg4MFx4ODJceDg0XHg4OCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1ZmY0NFx1ZmZmZCIpLAorCiAgICAgICAgICMgc2ppcyB2cyBjcDkzMgogICAgICAgICAoYiJcXFx4N2UiLCAicmVwbGFjZSIsICJceGE1XHUyMDNlIiksCiAgICAgICAgIChiIlx4ODFceDVmXHg4MVx4NjFceDgxXHg3YyIsICJyZXBsYWNlIiwgIlx4NWNcdTIwMTZcdTIyMTIiKSwKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY29kZWNlbmNvZGluZ3Nfa3IucHkgYi9MaWIvdGVzdC90ZXN0X2NvZGVjZW5jb2RpbmdzX2tyLnB5CmluZGV4IGRlNGRhN2YuLjRkZDYwNDkgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY29kZWNlbmNvZGluZ3Nfa3IucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jb2RlY2VuY29kaW5nc19rci5weQpAQCAtNSwzMCArNSwzMCBAQAogIwogCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLWZyb20gdGVzdCBpbXBvcnQgdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0Citmcm9tIHRlc3QgaW1wb3J0IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQKIGltcG9ydCB1bml0dGVzdAogCi1jbGFzcyBUZXN0X0NQOTQ5KHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgVGVzdF9DUDk0OShtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZW5jb2RpbmcgPSAnY3A5NDknCi0gICAgdHN0cmluZyA9IHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ2NwOTQ5JykKKyAgICB0c3RyaW5nID0gbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ2NwOTQ5JykKICAgICBjb2RlY3Rlc3RzID0gKAogICAgICAgICAjIGludmFsaWQgYnl0ZXMKICAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJzdHJpY3QiLCAgTm9uZSksCiAgICAgICAgIChiImFiY1x4YzgiLCAic3RyaWN0IiwgIE5vbmUpLAotICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHVjODk0IiksCi0gICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzRceGM4IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHVjODk0XHVmZmZkIiksCisgICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWZmZmRcdWM4OTQiKSwKKyAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNFx4YzgiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWZmZmRcdWM4OTRcdWZmZmQiKSwKICAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJpZ25vcmUiLCAgImFiY1x1Yzg5NCIpLAogICAgICkKIAotY2xhc3MgVGVzdF9FVUNLUih0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RfRVVDS1IobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZSwgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGVuY29kaW5nID0gJ2V1Y19rcicKLSAgICB0c3RyaW5nID0gdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnZXVjX2tyJykKKyAgICB0c3RyaW5nID0gbXVsdGlieXRlY29kZWNfc3VwcG9ydC5sb2FkX3Rlc3RzdHJpbmcoJ2V1Y19rcicpCiAgICAgY29kZWN0ZXN0cyA9ICgKICAgICAgICAgIyBpbnZhbGlkIGJ5dGVzCiAgICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzQiLCAic3RyaWN0IiwgIE5vbmUpLAogICAgICAgICAoYiJhYmNceGM4IiwgInN0cmljdCIsICBOb25lKSwKLSAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1Yzg5NCIpLAotICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0XHhjOCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1Yzg5NFx1ZmZmZCIpLAorICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgInJlcGxhY2UiLCAnYWJjXHVmZmZkXHVmZmZkXHVjODk0JyksCisgICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzRceGM4IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHVmZmZkXHVjODk0XHVmZmZkIiksCiAgICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzQiLCAiaWdub3JlIiwgICJhYmNcdWM4OTQiKSwKIAogICAgICAgICAjIGNvbXBvc2VkIG1ha2UtdXAgc2VxdWVuY2UgZXJyb3JzCkBAIC00MCwyNiArNDAsMzEgQEAKICAgICAgICAgKGIiXHhhNFx4ZDRceGE0XHhiNlx4YTRceGQwXHhhNCIsICJzdHJpY3QiLCBOb25lKSwKICAgICAgICAgKGIiXHhhNFx4ZDRceGE0XHhiNlx4YTRceGQwXHhhNFx4ZDQiLCAic3RyaWN0IiwgIlx1YzRkNCIpLAogICAgICAgICAoYiJceGE0XHhkNFx4YTRceGI2XHhhNFx4ZDBceGE0XHhkNHgiLCAic3RyaWN0IiwgIlx1YzRkNHgiKSwKLSAgICAgICAgKGIiYVx4YTRceGQ0XHhhNFx4YjZceGE0IiwgInJlcGxhY2UiLCAiYVx1ZmZmZCIpLAorICAgICAgICAoYiJhXHhhNFx4ZDRceGE0XHhiNlx4YTQiLCAicmVwbGFjZSIsICdhXHVmZmZkJyksCiAgICAgICAgIChiIlx4YTRceGQ0XHhhM1x4YjZceGE0XHhkMFx4YTRceGQ0IiwgInN0cmljdCIsIE5vbmUpLAogICAgICAgICAoYiJceGE0XHhkNFx4YTRceGI2XHhhM1x4ZDBceGE0XHhkNCIsICJzdHJpY3QiLCBOb25lKSwKICAgICAgICAgKGIiXHhhNFx4ZDRceGE0XHhiNlx4YTRceGQwXHhhM1x4ZDQiLCAic3RyaWN0IiwgTm9uZSksCi0gICAgICAgIChiIlx4YTRceGQ0XHhhNFx4ZmZceGE0XHhkMFx4YTRceGQ0IiwgInJlcGxhY2UiLCAiXHVmZmZkIiksCi0gICAgICAgIChiIlx4YTRceGQ0XHhhNFx4YjZceGE0XHhmZlx4YTRceGQ0IiwgInJlcGxhY2UiLCAiXHVmZmZkIiksCi0gICAgICAgIChiIlx4YTRceGQ0XHhhNFx4YjZceGE0XHhkMFx4YTRceGZmIiwgInJlcGxhY2UiLCAiXHVmZmZkIiksCisgICAgICAgIChiIlx4YTRceGQ0XHhhNFx4ZmZceGE0XHhkMFx4YTRceGQ0IiwgInJlcGxhY2UiLCAnXHVmZmZkXHU2ZTIxXHVmZmZkXHUzMTYwXHVmZmZkJyksCisgICAgICAgIChiIlx4YTRceGQ0XHhhNFx4YjZceGE0XHhmZlx4YTRceGQ0IiwgInJlcGxhY2UiLCAnXHVmZmZkXHU2ZTIxXHViNTQ0XHVmZmZkXHVmZmZkJyksCisgICAgICAgIChiIlx4YTRceGQ0XHhhNFx4YjZceGE0XHhkMFx4YTRceGZmIiwgInJlcGxhY2UiLCAnXHVmZmZkXHU2ZTIxXHViNTQ0XHU1NzJkXHVmZmZkJyksCisgICAgICAgIChiIlx4YTRceGQ0XHhmZlx4YTRceGQ0XHhhNFx4YjZceGE0XHhkMFx4YTRceGQ0IiwgInJlcGxhY2UiLCAnXHVmZmZkXHVmZmZkXHVmZmZkXHVjNGQ0JyksCiAgICAgICAgIChiIlx4YzFceGM0IiwgInN0cmljdCIsICJcdWM4OTQiKSwKICAgICApCiAKLWNsYXNzIFRlc3RfSk9IQUIodGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBUZXN0X0pPSEFCKG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdqb2hhYicKLSAgICB0c3RyaW5nID0gdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnam9oYWInKQorICAgIHRzdHJpbmcgPSBtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnam9oYWInKQogICAgIGNvZGVjdGVzdHMgPSAoCiAgICAgICAgICMgaW52YWxpZCBieXRlcwogICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgInN0cmljdCIsICBOb25lKSwKICAgICAgICAgKGIiYWJjXHhjOCIsICJzdHJpY3QiLCAgTm9uZSksCi0gICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWNkMjciKSwKLSAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNFx4YzgiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWNkMjdcdWZmZmQiKSwKKyAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1Y2QyNyIpLAorICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0XHhjOCIsICJyZXBsYWNlIiwgImFiY1x1ZmZmZFx1ZmZmZFx1Y2QyN1x1ZmZmZCIpLAogICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgImlnbm9yZSIsICAiYWJjXHVjZDI3IiksCisgICAgICAgIChiIlx4RDhhYmMiLCAicmVwbGFjZSIsICAiXHVGRkZEYWJjIiksCisgICAgICAgIChiIlx4RDhceEZGYWJjIiwgInJlcGxhY2UiLCAgIlx1RkZGRFx1RkZGRGFiYyIpLAorICAgICAgICAoYiJceDg0Ynh5IiwgInJlcGxhY2UiLCAgIlx1RkZGRGJ4eSIpLAorICAgICAgICAoYiJceDhDQnh5IiwgInJlcGxhY2UiLCAgIlx1RkZGREJ4eSIpLAogICAgICkKIAogZGVmIHRlc3RfbWFpbigpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb2RlY2VuY29kaW5nc190dy5weSBiL0xpYi90ZXN0L3Rlc3RfY29kZWNlbmNvZGluZ3NfdHcucHkKaW5kZXggMTJkM2M5Zi4uOTYyNDViNyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb2RlY2VuY29kaW5nc190dy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvZGVjZW5jb2RpbmdzX3R3LnB5CkBAIC01LDE4ICs1LDE4IEBACiAjCiAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotZnJvbSB0ZXN0IGltcG9ydCB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQKK2Zyb20gdGVzdCBpbXBvcnQgbXVsdGlieXRlY29kZWNfc3VwcG9ydAogaW1wb3J0IHVuaXR0ZXN0CiAKLWNsYXNzIFRlc3RfQmlnNSh0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2UsIHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFRlc3RfQmlnNShtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZW5jb2RpbmcgPSAnYmlnNScKLSAgICB0c3RyaW5nID0gdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LmxvYWRfdGVzdHN0cmluZygnYmlnNScpCisgICAgdHN0cmluZyA9IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQubG9hZF90ZXN0c3RyaW5nKCdiaWc1JykKICAgICBjb2RlY3Rlc3RzID0gKAogICAgICAgICAjIGludmFsaWQgYnl0ZXMKICAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJzdHJpY3QiLCAgTm9uZSksCiAgICAgICAgIChiImFiY1x4YzgiLCAic3RyaWN0IiwgIE5vbmUpLAotICAgICAgICAoYiJhYmNceDgwXHg4MFx4YzFceGM0IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHU4YjEwIiksCi0gICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzRceGM4IiwgInJlcGxhY2UiLCAiYWJjXHVmZmZkXHU4YjEwXHVmZmZkIiksCisgICAgICAgIChiImFiY1x4ODBceDgwXHhjMVx4YzQiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWZmZmRcdThiMTAiKSwKKyAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNFx4YzgiLCAicmVwbGFjZSIsICJhYmNcdWZmZmRcdWZmZmRcdThiMTBcdWZmZmQiKSwKICAgICAgICAgKGIiYWJjXHg4MFx4ODBceGMxXHhjNCIsICJpZ25vcmUiLCAgImFiY1x1OGIxMCIpLAogICAgICkKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb2RlY21hcHNfY24ucHkgYi9MaWIvdGVzdC90ZXN0X2NvZGVjbWFwc19jbi5weQppbmRleCAwNjM5MTlkLi4xYTc2MWNmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NvZGVjbWFwc19jbi5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvZGVjbWFwc19jbi5weQpAQCAtNSwyMSArNSwyMSBAQAogIwogCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLWZyb20gdGVzdCBpbXBvcnQgdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0Citmcm9tIHRlc3QgaW1wb3J0IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQKIGltcG9ydCB1bml0dGVzdAogCi1jbGFzcyBUZXN0R0IyMzEyTWFwKHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAorY2xhc3MgVGVzdEdCMjMxMk1hcChtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCiAgICAgICAgICAgICAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGVuY29kaW5nID0gJ2diMjMxMicKICAgICBtYXBmaWxldXJsID0gJ2h0dHA6Ly9wZW9wbGUuZnJlZWJzZC5vcmcvfnBlcmt5L2kxOG4vRVVDLUNOLlRYVCcKIAotY2xhc3MgVGVzdEdCS01hcCh0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2VfTWFwcGluZywKK2NsYXNzIFRlc3RHQktNYXAobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAogICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdnYmsnCiAgICAgbWFwZmlsZXVybCA9ICdodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9NQVBQSU5HUy9WRU5ET1JTLycgXAogICAgICAgICAgICAgICAgICAnTUlDU0ZUL1dJTkRPV1MvQ1A5MzYuVFhUJwogCi1jbGFzcyBUZXN0R0IxODAzME1hcCh0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2VfTWFwcGluZywKK2NsYXNzIFRlc3RHQjE4MDMwTWFwKG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2VfTWFwcGluZywKICAgICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdnYjE4MDMwJwogICAgIG1hcGZpbGV1cmwgPSAnaHR0cDovL3NvdXJjZS5pY3UtcHJvamVjdC5vcmcvcmVwb3MvaWN1L2RhdGEvJyBcCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NvZGVjbWFwc19oay5weSBiL0xpYi90ZXN0L3Rlc3RfY29kZWNtYXBzX2hrLnB5CmluZGV4IGJiZTFmMmYuLjVmNGU3YzcgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY29kZWNtYXBzX2hrLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY29kZWNtYXBzX2hrLnB5CkBAIC01LDEwICs1LDEwIEBACiAjCiAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotZnJvbSB0ZXN0IGltcG9ydCB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQKK2Zyb20gdGVzdCBpbXBvcnQgbXVsdGlieXRlY29kZWNfc3VwcG9ydAogaW1wb3J0IHVuaXR0ZXN0CiAKLWNsYXNzIFRlc3RCaWc1SEtTQ1NNYXAodGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCitjbGFzcyBUZXN0QmlnNUhLU0NTTWFwKG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2VfTWFwcGluZywKICAgICAgICAgICAgICAgICAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGVuY29kaW5nID0gJ2JpZzVoa3NjcycKICAgICBtYXBmaWxldXJsID0gJ2h0dHA6Ly9wZW9wbGUuZnJlZWJzZC5vcmcvfnBlcmt5L2kxOG4vQklHNUhLU0NTLTIwMDQuVFhUJwpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb2RlY21hcHNfanAucHkgYi9MaWIvdGVzdC90ZXN0X2NvZGVjbWFwc19qcC5weQppbmRleCA2NTJiZDgxLi4xZmRiZjYzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NvZGVjbWFwc19qcC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvZGVjbWFwc19qcC5weQpAQCAtNSwxMCArNSwxMCBAQAogIwogCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLWZyb20gdGVzdCBpbXBvcnQgdGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0Citmcm9tIHRlc3QgaW1wb3J0IG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQKIGltcG9ydCB1bml0dGVzdAogCi1jbGFzcyBUZXN0Q1A5MzJNYXAodGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCitjbGFzcyBUZXN0Q1A5MzJNYXAobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAogICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdjcDkzMicKICAgICBtYXBmaWxldXJsID0gJ2h0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL01BUFBJTkdTL1ZFTkRPUlMvTUlDU0ZULycgXApAQCAtMjQsMTQgKzI0LDE0IEBACiAgICAgICAgIHN1cG1hcHMuYXBwZW5kKChieXRlcyhbaV0pLCBjaHIoaSsweGZlYzApKSkKIAogCi1jbGFzcyBUZXN0RVVDSlBDT01QQVRNYXAodGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCitjbGFzcyBUZXN0RVVDSlBDT01QQVRNYXAobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdldWNfanAnCiAgICAgbWFwZmlsZW5hbWUgPSAnRVVDLUpQLlRYVCcKICAgICBtYXBmaWxldXJsID0gJ2h0dHA6Ly9wZW9wbGUuZnJlZWJzZC5vcmcvfnBlcmt5L2kxOG4vRVVDLUpQLlRYVCcKIAogCi1jbGFzcyBUZXN0U0pJU0NPTVBBVE1hcCh0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2VfTWFwcGluZywKK2NsYXNzIFRlc3RTSklTQ09NUEFUTWFwKG11bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2VfTWFwcGluZywKICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdzaGlmdF9qaXMnCiAgICAgbWFwZmlsZW5hbWUgPSAnU0hJRlRKSVMuVFhUJwpAQCAtNDYsMTQgKzQ2LDE0IEBACiAgICAgICAgIChiJ1x4ODFfJywgJ1xcJyksCiAgICAgXQogCi1jbGFzcyBUZXN0RVVDSklTWDAyMTNNYXAodGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCitjbGFzcyBUZXN0RVVDSklTWDAyMTNNYXAobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdldWNfamlzeDAyMTMnCiAgICAgbWFwZmlsZW5hbWUgPSAnRVVDLUpJU1gwMjEzLlRYVCcKICAgICBtYXBmaWxldXJsID0gJ2h0dHA6Ly9wZW9wbGUuZnJlZWJzZC5vcmcvfnBlcmt5L2kxOG4vRVVDLUpJU1gwMjEzLlRYVCcKIAogCi1jbGFzcyBUZXN0U0pJU1gwMjEzTWFwKHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAorY2xhc3MgVGVzdFNKSVNYMDIxM01hcChtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdzaGlmdF9qaXN4MDIxMycKICAgICBtYXBmaWxlbmFtZSA9ICdTSElGVF9KSVNYMDIxMy5UWFQnCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NvZGVjbWFwc19rci5weSBiL0xpYi90ZXN0L3Rlc3RfY29kZWNtYXBzX2tyLnB5CmluZGV4IGQ5MDljOGIuLjAzNTY0MDIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY29kZWNtYXBzX2tyLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY29kZWNtYXBzX2tyLnB5CkBAIC01LDE3ICs1LDE3IEBACiAjCiAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotZnJvbSB0ZXN0IGltcG9ydCB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQKK2Zyb20gdGVzdCBpbXBvcnQgbXVsdGlieXRlY29kZWNfc3VwcG9ydAogaW1wb3J0IHVuaXR0ZXN0CiAKLWNsYXNzIFRlc3RDUDk0OU1hcCh0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2VfTWFwcGluZywKK2NsYXNzIFRlc3RDUDk0OU1hcChtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCiAgICAgICAgICAgICAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGVuY29kaW5nID0gJ2NwOTQ5JwogICAgIG1hcGZpbGV1cmwgPSAnaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvTUFQUElOR1MvVkVORE9SUy9NSUNTRlQnIFwKICAgICAgICAgICAgICAgICAgJy9XSU5ET1dTL0NQOTQ5LlRYVCcKIAogCi1jbGFzcyBUZXN0RVVDS1JNYXAodGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCitjbGFzcyBUZXN0RVVDS1JNYXAobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAogICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdldWNfa3InCiAgICAgbWFwZmlsZXVybCA9ICdodHRwOi8vcGVvcGxlLmZyZWVic2Qub3JnL35wZXJreS9pMThuL0VVQy1LUi5UWFQnCkBAIC0yNSw3ICsyNSw3IEBACiAgICAgcGFzc19kZWN0ZXN0ID0gWyhiJ1x4YTRceGQ0JywgJ1x1MzE2NCcpXQogCiAKLWNsYXNzIFRlc3RKT0hBQk1hcCh0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQuVGVzdEJhc2VfTWFwcGluZywKK2NsYXNzIFRlc3RKT0hBQk1hcChtdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCiAgICAgICAgICAgICAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGVuY29kaW5nID0gJ2pvaGFiJwogICAgIG1hcGZpbGV1cmwgPSAnaHR0cDovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvTUFQUElOR1MvT0JTT0xFVEUvRUFTVEFTSUEvJyBcCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NvZGVjbWFwc190dy5weSBiL0xpYi90ZXN0L3Rlc3RfY29kZWNtYXBzX3R3LnB5CmluZGV4IDZkYjUwOTEuLjQ0NDY3ZTMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY29kZWNtYXBzX3R3LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY29kZWNtYXBzX3R3LnB5CkBAIC01LDE2ICs1LDE2IEBACiAjCiAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotZnJvbSB0ZXN0IGltcG9ydCB0ZXN0X211bHRpYnl0ZWNvZGVjX3N1cHBvcnQKK2Zyb20gdGVzdCBpbXBvcnQgbXVsdGlieXRlY29kZWNfc3VwcG9ydAogaW1wb3J0IHVuaXR0ZXN0CiAKLWNsYXNzIFRlc3RCSUc1TWFwKHRlc3RfbXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAorY2xhc3MgVGVzdEJJRzVNYXAobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAogICAgICAgICAgICAgICAgICAgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGVuY29kaW5nID0gJ2JpZzUnCiAgICAgbWFwZmlsZXVybCA9ICdodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy9NQVBQSU5HUy9PQlNPTEVURS8nIFwKICAgICAgICAgICAgICAgICAgJ0VBU1RBU0lBL09USEVSL0JJRzUuVFhUJwogCi1jbGFzcyBUZXN0Q1A5NTBNYXAodGVzdF9tdWx0aWJ5dGVjb2RlY19zdXBwb3J0LlRlc3RCYXNlX01hcHBpbmcsCitjbGFzcyBUZXN0Q1A5NTBNYXAobXVsdGlieXRlY29kZWNfc3VwcG9ydC5UZXN0QmFzZV9NYXBwaW5nLAogICAgICAgICAgICAgICAgICAgIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBlbmNvZGluZyA9ICdjcDk1MCcKICAgICBtYXBmaWxldXJsID0gJ2h0dHA6Ly93d3cudW5pY29kZS5vcmcvUHVibGljL01BUFBJTkdTL1ZFTkRPUlMvTUlDU0ZULycgXApAQCAtMjMsNiArMjMsOSBAQAogICAgICAgICAoYidceGEyXHhjYycsICdcdTUzNDEnKSwKICAgICAgICAgKGInXHhhMlx4Y2UnLCAnXHU1MzQ1JyksCiAgICAgXQorICAgIGNvZGVjdGVzdHMgPSAoCisgICAgICAgIChiIlx4RkZ4eSIsICJyZXBsYWNlIiwgICJcdWZmZmR4eSIpLAorICAgICkKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KF9fbmFtZV9fKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb2RlY3MucHkgYi9MaWIvdGVzdC90ZXN0X2NvZGVjcy5weQppbmRleCA0ODk5YTU5Li41ZGFhYTE5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2NvZGVjcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvZGVjcy5weQpAQCAtMSw4ICsxLDI1IEBACi1mcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLWltcG9ydCB1bml0dGVzdAoraW1wb3J0IF90ZXN0Y2FwaQogaW1wb3J0IGNvZGVjcworaW1wb3J0IGlvCiBpbXBvcnQgbG9jYWxlCi1pbXBvcnQgc3lzLCBfdGVzdGNhcGksIGlvCitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB3YXJuaW5ncworCitmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKKworaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CisgICAgVklTVEFfT1JfTEFURVIgPSAoc3lzLmdldHdpbmRvd3N2ZXJzaW9uKCkubWFqb3IgPj0gNikKK2Vsc2U6CisgICAgVklTVEFfT1JfTEFURVIgPSBGYWxzZQorCit0cnk6CisgICAgaW1wb3J0IGN0eXBlcworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGN0eXBlcyA9IE5vbmUKKyAgICBTSVpFT0ZfV0NIQVJfVCA9IC0xCitlbHNlOgorICAgIFNJWkVPRl9XQ0hBUl9UID0gY3R5cGVzLnNpemVvZihjdHlwZXMuY193Y2hhcikKIAogY2xhc3MgUXVldWUob2JqZWN0KToKICAgICAiIiIKQEAgLTYyMiw4ICs2MzksMTEzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgYiJhYmNceGVkXHhhMFx4ODBkZWYiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiYWJjXHhlZFx4YTBceDgwZGVmIi5kZWNvZGUoInV0Zi04IiwgInN1cnJvZ2F0ZXBhc3MiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJjXHVkODAwZGVmIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiXFUwMDAxMGZmZlx1RDgwMCIuZW5jb2RlKCJ1dGYtOCIsICJzdXJyb2dhdGVwYXNzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgYiJceGYwXHg5MFx4YmZceGJmXHhlZFx4YTBceDgwIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIlx4ZjBceDkwXHhiZlx4YmZceGVkXHhhMFx4ODAiLmRlY29kZSgidXRmLTgiLCAic3Vycm9nYXRlcGFzcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJcVTAwMDEwZmZmXHVEODAwIikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNvZGVjcy5sb29rdXBfZXJyb3IoInN1cnJvZ2F0ZXBhc3MiKSkKIAorQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3lzLnBsYXRmb3JtID09ICd3aW4zMicsCisgICAgICAgICAgICAgICAgICAgICAnY3A2NTAwMSBpcyBhIFdpbmRvd3Mtb25seSBjb2RlYycpCitjbGFzcyBDUDY1MDAxVGVzdChSZWFkVGVzdCk6CisgICAgZW5jb2RpbmcgPSAiY3A2NTAwMSIKKworICAgIGRlZiB0ZXN0X2VuY29kZShzZWxmKToKKyAgICAgICAgdGVzdHMgPSBbCisgICAgICAgICAgICAoJ2FiYycsICdzdHJpY3QnLCBiJ2FiYycpLAorICAgICAgICAgICAgKCdceGU5XHUyMGFjJywgJ3N0cmljdCcsICBiJ1x4YzNceGE5XHhlMlx4ODJceGFjJyksCisgICAgICAgICAgICAoJ1xVMDAxMGZmZmYnLCAnc3RyaWN0JywgYidceGY0XHg4Zlx4YmZceGJmJyksCisgICAgICAgIF0KKyAgICAgICAgaWYgVklTVEFfT1JfTEFURVI6CisgICAgICAgICAgICB0ZXN0cy5leHRlbmQoKAorICAgICAgICAgICAgICAgICgnXHVkYzgwJywgJ3N0cmljdCcsIE5vbmUpLAorICAgICAgICAgICAgICAgICgnXHVkYzgwJywgJ2lnbm9yZScsIGInJyksCisgICAgICAgICAgICAgICAgKCdcdWRjODAnLCAncmVwbGFjZScsIGInPycpLAorICAgICAgICAgICAgICAgICgnXHVkYzgwJywgJ2JhY2tzbGFzaHJlcGxhY2UnLCBiJ1xcdWRjODAnKSwKKyAgICAgICAgICAgICAgICAoJ1x1ZGM4MCcsICdzdXJyb2dhdGVwYXNzJywgYidceGVkXHhiMlx4ODAnKSwKKyAgICAgICAgICAgICkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0ZXN0cy5hcHBlbmQoKCdcdWRjODAnLCAnc3RyaWN0JywgYidceGVkXHhiMlx4ODAnKSkKKyAgICAgICAgZm9yIHRleHQsIGVycm9ycywgZXhwZWN0ZWQgaW4gdGVzdHM6CisgICAgICAgICAgICBpZiBleHBlY3RlZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGVuY29kZWQgPSB0ZXh0LmVuY29kZSgnY3A2NTAwMScsIGVycm9ycykKKyAgICAgICAgICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yIGFzIGVycjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmFibGUgdG8gZW5jb2RlICVhIHRvIGNwNjUwMDEgd2l0aCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3JzPSVyOiAlcycgJSAodGV4dCwgZXJyb3JzLCBlcnIpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZW5jb2RlZCwgZXhwZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICclYS5lbmNvZGUoImNwNjUwMDEiLCAlcik9JWEgIT0gJWEnCisgICAgICAgICAgICAgICAgICAgICUgKHRleHQsIGVycm9ycywgZW5jb2RlZCwgZXhwZWN0ZWQpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRW5jb2RlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgIHRleHQuZW5jb2RlLCAiY3A2NTAwMSIsIGVycm9ycykKKworICAgIGRlZiB0ZXN0X2RlY29kZShzZWxmKToKKyAgICAgICAgdGVzdHMgPSBbCisgICAgICAgICAgICAoYidhYmMnLCAnc3RyaWN0JywgJ2FiYycpLAorICAgICAgICAgICAgKGInXHhjM1x4YTlceGUyXHg4Mlx4YWMnLCAnc3RyaWN0JywgJ1x4ZTlcdTIwYWMnKSwKKyAgICAgICAgICAgIChiJ1x4ZjRceDhmXHhiZlx4YmYnLCAnc3RyaWN0JywgJ1xVMDAxMGZmZmYnKSwKKyAgICAgICAgICAgIChiJ1x4ZWZceGJmXHhiZCcsICdzdHJpY3QnLCAnXHVmZmZkJyksCisgICAgICAgICAgICAoYidbXHhjM1x4YTldJywgJ3N0cmljdCcsICdbXHhlOV0nKSwKKyAgICAgICAgICAgICMgaW52YWxpZCBieXRlcworICAgICAgICAgICAgKGInW1x4ZmZdJywgJ3N0cmljdCcsIE5vbmUpLAorICAgICAgICAgICAgKGInW1x4ZmZdJywgJ2lnbm9yZScsICdbXScpLAorICAgICAgICAgICAgKGInW1x4ZmZdJywgJ3JlcGxhY2UnLCAnW1x1ZmZmZF0nKSwKKyAgICAgICAgICAgIChiJ1tceGZmXScsICdzdXJyb2dhdGVlc2NhcGUnLCAnW1x1ZGNmZl0nKSwKKyAgICAgICAgXQorICAgICAgICBpZiBWSVNUQV9PUl9MQVRFUjoKKyAgICAgICAgICAgIHRlc3RzLmV4dGVuZCgoCisgICAgICAgICAgICAgICAgKGInW1x4ZWRceGIyXHg4MF0nLCAnc3RyaWN0JywgTm9uZSksCisgICAgICAgICAgICAgICAgKGInW1x4ZWRceGIyXHg4MF0nLCAnaWdub3JlJywgJ1tdJyksCisgICAgICAgICAgICAgICAgKGInW1x4ZWRceGIyXHg4MF0nLCAncmVwbGFjZScsICdbXHVmZmZkXHVmZmZkXHVmZmZkXScpLAorICAgICAgICAgICAgKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRlc3RzLmV4dGVuZCgoCisgICAgICAgICAgICAgICAgKGInW1x4ZWRceGIyXHg4MF0nLCAnc3RyaWN0JywgJ1tcdWRjODBdJyksCisgICAgICAgICAgICApKQorICAgICAgICBmb3IgcmF3LCBlcnJvcnMsIGV4cGVjdGVkIGluIHRlc3RzOgorICAgICAgICAgICAgaWYgZXhwZWN0ZWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBkZWNvZGVkID0gcmF3LmRlY29kZSgnY3A2NTAwMScsIGVycm9ycykKKyAgICAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yIGFzIGVycjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmFibGUgdG8gZGVjb2RlICVhIGZyb20gY3A2NTAwMSB3aXRoICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlcnJvcnM9JXI6ICVzJyAlIChyYXcsIGVycm9ycywgZXJyKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlY29kZWQsIGV4cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAnJWEuZGVjb2RlKCJjcDY1MDAxIiwgJXIpPSVhICE9ICVhJworICAgICAgICAgICAgICAgICAgICAlIChyYXcsIGVycm9ycywgZGVjb2RlZCwgZXhwZWN0ZWQpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRGVjb2RlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgIHJhdy5kZWNvZGUsICdjcDY1MDAxJywgZXJyb3JzKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoVklTVEFfT1JfTEFURVIsICdyZXF1aXJlIFdpbmRvd3MgVmlzdGEgb3IgbGF0ZXInKQorICAgIGRlZiB0ZXN0X2xvbmVfc3Vycm9nYXRlcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZUVuY29kZUVycm9yLCAiXHVkODAwIi5lbmNvZGUsICJjcDY1MDAxIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZURlY29kZUVycm9yLCBiIlx4ZWRceGEwXHg4MCIuZGVjb2RlLCAiY3A2NTAwMSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIltcdURDODBdIi5lbmNvZGUoImNwNjUwMDEiLCAiYmFja3NsYXNocmVwbGFjZSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGInW1xcdWRjODBdJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiW1x1REM4MF0iLmVuY29kZSgiY3A2NTAwMSIsICJ4bWxjaGFycmVmcmVwbGFjZSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGInWyYjNTY0NDg7XScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIltcdURDODBdIi5lbmNvZGUoImNwNjUwMDEiLCAic3Vycm9nYXRlZXNjYXBlIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgYidbXHg4MF0nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJbXHVEQzgwXSIuZW5jb2RlKCJjcDY1MDAxIiwgImlnbm9yZSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGInW10nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJbXHVEQzgwXSIuZW5jb2RlKCJjcDY1MDAxIiwgInJlcGxhY2UiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJ1s/XScpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhWSVNUQV9PUl9MQVRFUiwgJ3JlcXVpcmUgV2luZG93cyBWaXN0YSBvciBsYXRlcicpCisgICAgZGVmIHRlc3Rfc3Vycm9nYXRlcGFzc19oYW5kbGVyKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJhYmNcdWQ4MDBkZWYiLmVuY29kZSgiY3A2NTAwMSIsICJzdXJyb2dhdGVwYXNzIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgYiJhYmNceGVkXHhhMFx4ODBkZWYiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiYWJjXHhlZFx4YTBceDgwZGVmIi5kZWNvZGUoImNwNjUwMDEiLCAic3Vycm9nYXRlcGFzcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJhYmNcdWQ4MDBkZWYiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJcVTAwMDEwZmZmXHVEODAwIi5lbmNvZGUoImNwNjUwMDEiLCAic3Vycm9nYXRlcGFzcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGIiXHhmMFx4OTBceGJmXHhiZlx4ZWRceGEwXHg4MCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiJceGYwXHg5MFx4YmZceGJmXHhlZFx4YTBceDgwIi5kZWNvZGUoImNwNjUwMDEiLCAic3Vycm9nYXRlcGFzcyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJcVTAwMDEwZmZmXHVEODAwIikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNvZGVjcy5sb29rdXBfZXJyb3IoInN1cnJvZ2F0ZXBhc3MiKSkKKworCisKIGNsYXNzIFVURjdUZXN0KFJlYWRUZXN0KToKICAgICBlbmNvZGluZyA9ICJ1dGYtNyIKIApAQCAtODg0LDYxICsxMDA2LDgwIEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVuaSwgcHVueS5kZWNvZGUoInB1bnljb2RlIikpCiAKIGNsYXNzIFVuaWNvZGVJbnRlcm5hbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKFNJWkVPRl9XQ0hBUl9UID09IDQsICdzcGVjaWZpYyB0byAzMi1iaXQgd2NoYXJfdCcpCiAgICAgZGVmIHRlc3RfYnVnMTI1MTMwMChzZWxmKToKICAgICAgICAgIyBEZWNvZGluZyB3aXRoIHVuaWNvZGVfaW50ZXJuYWwgdXNlZCB0byBub3QgY29ycmVjdGx5IGhhbmRsZSAiY29kZQogICAgICAgICAjIHBvaW50cyIgYWJvdmUgMHgxMGZmZmYgb24gVUNTLTQgYnVpbGRzLgotICAgICAgICBpZiBzeXMubWF4dW5pY29kZSA+IDB4ZmZmZjoKLSAgICAgICAgICAgIG9rID0gWwotICAgICAgICAgICAgICAgIChiIlx4MDBceDEwXHhmZlx4ZmYiLCAiXFUwMDEwZmZmZiIpLAotICAgICAgICAgICAgICAgIChiIlx4MDBceDAwXHgwMVx4MDEiLCAiXFUwMDAwMDEwMSIpLAotICAgICAgICAgICAgICAgIChiIiIsICIiKSwKLSAgICAgICAgICAgIF0KLSAgICAgICAgICAgIG5vdF9vayA9IFsKLSAgICAgICAgICAgICAgICBiIlx4N2ZceGZmXHhmZlx4ZmYiLAotICAgICAgICAgICAgICAgIGIiXHg4MFx4MDBceDAwXHgwMCIsCi0gICAgICAgICAgICAgICAgYiJceDgxXHgwMFx4MDBceDAwIiwKLSAgICAgICAgICAgICAgICBiIlx4MDAiLAotICAgICAgICAgICAgICAgIGIiXHgwMFx4MDBceDAwXHgwMFx4MDAiLAotICAgICAgICAgICAgXQotICAgICAgICAgICAgZm9yIGludGVybmFsLCB1bmkgaW4gb2s6Ci0gICAgICAgICAgICAgICAgaWYgc3lzLmJ5dGVvcmRlciA9PSAibGl0dGxlIjoKLSAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWwgPSBieXRlcyhyZXZlcnNlZChpbnRlcm5hbCkpCisgICAgICAgIG9rID0gWworICAgICAgICAgICAgKGIiXHgwMFx4MTBceGZmXHhmZiIsICJcVTAwMTBmZmZmIiksCisgICAgICAgICAgICAoYiJceDAwXHgwMFx4MDFceDAxIiwgIlxVMDAwMDAxMDEiKSwKKyAgICAgICAgICAgIChiIiIsICIiKSwKKyAgICAgICAgXQorICAgICAgICBub3Rfb2sgPSBbCisgICAgICAgICAgICBiIlx4N2ZceGZmXHhmZlx4ZmYiLAorICAgICAgICAgICAgYiJceDgwXHgwMFx4MDBceDAwIiwKKyAgICAgICAgICAgIGIiXHg4MVx4MDBceDAwXHgwMCIsCisgICAgICAgICAgICBiIlx4MDAiLAorICAgICAgICAgICAgYiJceDAwXHgwMFx4MDBceDAwXHgwMCIsCisgICAgICAgIF0KKyAgICAgICAgZm9yIGludGVybmFsLCB1bmkgaW4gb2s6CisgICAgICAgICAgICBpZiBzeXMuYnl0ZW9yZGVyID09ICJsaXR0bGUiOgorICAgICAgICAgICAgICAgIGludGVybmFsID0gYnl0ZXMocmV2ZXJzZWQoaW50ZXJuYWwpKQorICAgICAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCk6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bmksIGludGVybmFsLmRlY29kZSgidW5pY29kZV9pbnRlcm5hbCIpKQotICAgICAgICAgICAgZm9yIGludGVybmFsIGluIG5vdF9vazoKLSAgICAgICAgICAgICAgICBpZiBzeXMuYnl0ZW9yZGVyID09ICJsaXR0bGUiOgotICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbCA9IGJ5dGVzKHJldmVyc2VkKGludGVybmFsKSkKKyAgICAgICAgZm9yIGludGVybmFsIGluIG5vdF9vazoKKyAgICAgICAgICAgIGlmIHN5cy5ieXRlb3JkZXIgPT0gImxpdHRsZSI6CisgICAgICAgICAgICAgICAgaW50ZXJuYWwgPSBieXRlcyhyZXZlcnNlZChpbnRlcm5hbCkpCisgICAgICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCd1bmljb2RlX2ludGVybmFsIGNvZGVjIGhhcyBiZWVuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlcHJlY2F0ZWQnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRGVjb2RlRXJyb3IsIGludGVybmFsLmRlY29kZSwKLSAgICAgICAgICAgICAgICAgICAgInVuaWNvZGVfaW50ZXJuYWwiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmljb2RlX2ludGVybmFsIikKKyAgICAgICAgaWYgc3lzLmJ5dGVvcmRlciA9PSAibGl0dGxlIjoKKyAgICAgICAgICAgIGludmFsaWQgPSBiIlx4MDBceDAwXHgxMVx4MDAiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpbnZhbGlkID0gYiJceDAwXHgxMVx4MDBceDAwIgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaWNvZGVEZWNvZGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmFsaWQuZGVjb2RlLCAidW5pY29kZV9pbnRlcm5hbCIpCisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnZhbGlkLmRlY29kZSgidW5pY29kZV9pbnRlcm5hbCIsICJyZXBsYWNlIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcdWZmZmQnKQogCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoU0laRU9GX1dDSEFSX1QgPT0gNCwgJ3NwZWNpZmljIHRvIDMyLWJpdCB3Y2hhcl90JykKICAgICBkZWYgdGVzdF9kZWNvZGVfZXJyb3JfYXR0cmlidXRlcyhzZWxmKToKLSAgICAgICAgaWYgc3lzLm1heHVuaWNvZGUgPiAweGZmZmY6Ci0gICAgICAgICAgICB0cnk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJ3VuaWNvZGVfaW50ZXJuYWwgY29kZWMgaGFzIGJlZW4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVwcmVjYXRlZCcsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgICAgIGIiXHgwMFx4MDBceDAwXHgwMFx4MDBceDExXHgxMVx4MDAiLmRlY29kZSgidW5pY29kZV9pbnRlcm5hbCIpCi0gICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yIGFzIGV4OgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInVuaWNvZGVfaW50ZXJuYWwiLCBleC5lbmNvZGluZykKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiXHgwMFx4MDBceDAwXHgwMFx4MDBceDExXHgxMVx4MDAiLCBleC5vYmplY3QpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg0LCBleC5zdGFydCkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDgsIGV4LmVuZCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCkKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvciBhcyBleDoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInVuaWNvZGVfaW50ZXJuYWwiLCBleC5lbmNvZGluZykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiJceDAwXHgwMFx4MDBceDAwXHgwMFx4MTFceDExXHgwMCIsIGV4Lm9iamVjdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNCwgZXguc3RhcnQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDgsIGV4LmVuZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgpCiAKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhTSVpFT0ZfV0NIQVJfVCA9PSA0LCAnc3BlY2lmaWMgdG8gMzItYml0IHdjaGFyX3QnKQogICAgIGRlZiB0ZXN0X2RlY29kZV9jYWxsYmFjayhzZWxmKToKLSAgICAgICAgaWYgc3lzLm1heHVuaWNvZGUgPiAweGZmZmY6Ci0gICAgICAgICAgICBjb2RlY3MucmVnaXN0ZXJfZXJyb3IoIlVuaWNvZGVJbnRlcm5hbFRlc3QiLCBjb2RlY3MuaWdub3JlX2Vycm9ycykKLSAgICAgICAgICAgIGRlY29kZXIgPSBjb2RlY3MuZ2V0ZGVjb2RlcigidW5pY29kZV9pbnRlcm5hbCIpCisgICAgICAgIGNvZGVjcy5yZWdpc3Rlcl9lcnJvcigiVW5pY29kZUludGVybmFsVGVzdCIsIGNvZGVjcy5pZ25vcmVfZXJyb3JzKQorICAgICAgICBkZWNvZGVyID0gY29kZWNzLmdldGRlY29kZXIoInVuaWNvZGVfaW50ZXJuYWwiKQorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCd1bmljb2RlX2ludGVybmFsIGNvZGVjIGhhcyBiZWVuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVwcmVjYXRlZCcsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgYWIgPSAiYWIiLmVuY29kZSgidW5pY29kZV9pbnRlcm5hbCIpLmRlY29kZSgpCiAgICAgICAgICAgICBpZ25vcmVkID0gZGVjb2RlcihieXRlcygiJXNceDIyXHgyMlx4MjJceDIyJXMiICUgKGFiWzo0XSwgYWJbNDpdKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhc2NpaSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuaWNvZGVJbnRlcm5hbFRlc3QiKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoImFiIiwgMTIpLCBpZ25vcmVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgiYWIiLCAxMiksIGlnbm9yZWQpCiAKICAgICBkZWYgdGVzdF9lbmNvZGVfbGVuZ3RoKHNlbGYpOgotICAgICAgICAjIElzc3VlIDM3MzkKLSAgICAgICAgZW5jb2RlciA9IGNvZGVjcy5nZXRlbmNvZGVyKCJ1bmljb2RlX2ludGVybmFsIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbmNvZGVyKCJhIilbMV0sIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZW5jb2RlcigiXHhlOVx1MDE0MiIpWzFdLCAyKQorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCd1bmljb2RlX2ludGVybmFsIGNvZGVjIGhhcyBiZWVuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVwcmVjYXRlZCcsIERlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICAgICAgIyBJc3N1ZSAzNzM5CisgICAgICAgICAgICBlbmNvZGVyID0gY29kZWNzLmdldGVuY29kZXIoInVuaWNvZGVfaW50ZXJuYWwiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbmNvZGVyKCJhIilbMV0sIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVuY29kZXIoIlx4ZTlcdTAxNDIiKVsxXSwgMikKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvZGVjcy5lc2NhcGVfZW5jb2RlKGJyJ1x4MDAnKVsxXSwgNCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29kZWNzLmVzY2FwZV9lbmNvZGUoYnInXHgwMCcpWzFdLCA0KQogCiAjIEZyb20gaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2xpYmlkbi9kcmFmdC1qb3NlZnNzb24taWRuLXRlc3QtdmVjdG9ycy5odG1sCiBuYW1lcHJlcF90ZXN0cyA9IFsKQEAgLTEyNjIsNyArMTQwMyw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZWYucmVhZCgpLCBiJ1xcXHhkNVxuXHgwMFx4MDBceGFlJykKIAogICAgICAgICBmID0gaW8uQnl0ZXNJTygpCi0gICAgICAgIGVmID0gY29kZWNzLkVuY29kZWRGaWxlKGYsICd1dGYtOCcsICdsYXRpbjEnKQorICAgICAgICBlZiA9IGNvZGVjcy5FbmNvZGVkRmlsZShmLCAndXRmLTgnLCAnbGF0aW4tMScpCiAgICAgICAgIGVmLndyaXRlKGInXHhjM1x4YmMnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZ2V0dmFsdWUoKSwgYidceGZjJykKIApAQCAtMTM5NCwxMCArMTUzNSwxMyBAQAogICAgICAgICAgICAgZWxpZiBlbmNvZGluZyA9PSAibGF0aW5fMSI6CiAgICAgICAgICAgICAgICAgbmFtZSA9ICJsYXRpbl8xIgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbmNvZGluZy5yZXBsYWNlKCJfIiwgIi0iKSwgbmFtZS5yZXBsYWNlKCJfIiwgIi0iKSkKLSAgICAgICAgICAgIChiLCBzaXplKSA9IGNvZGVjcy5nZXRlbmNvZGVyKGVuY29kaW5nKShzKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzaXplLCBsZW4ocyksICIlciAhPSAlciAoZW5jb2Rpbmc9JXIpIiAlIChzaXplLCBsZW4ocyksIGVuY29kaW5nKSkKLSAgICAgICAgICAgIChjaGFycywgc2l6ZSkgPSBjb2RlY3MuZ2V0ZGVjb2RlcihlbmNvZGluZykoYikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hhcnMsIHMsICIlciAhPSAlciAoZW5jb2Rpbmc9JXIpIiAlIChjaGFycywgcywgZW5jb2RpbmcpKQorCisgICAgICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKToKKyAgICAgICAgICAgICAgICAjIHVuaWNvZGUtaW50ZXJuYWwgaGFzIGJlZW4gZGVwcmVjYXRlZAorICAgICAgICAgICAgICAgIChiLCBzaXplKSA9IGNvZGVjcy5nZXRlbmNvZGVyKGVuY29kaW5nKShzKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2l6ZSwgbGVuKHMpLCAiJXIgIT0gJXIgKGVuY29kaW5nPSVyKSIgJSAoc2l6ZSwgbGVuKHMpLCBlbmNvZGluZykpCisgICAgICAgICAgICAgICAgKGNoYXJzLCBzaXplKSA9IGNvZGVjcy5nZXRkZWNvZGVyKGVuY29kaW5nKShiKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hhcnMsIHMsICIlciAhPSAlciAoZW5jb2Rpbmc9JXIpIiAlIChjaGFycywgcywgZW5jb2RpbmcpKQogCiAgICAgICAgICAgICBpZiBlbmNvZGluZyBub3QgaW4gYnJva2VuX3VuaWNvZGVfd2l0aF9zdHJlYW1zOgogICAgICAgICAgICAgICAgICMgY2hlY2sgc3RyZWFtIHJlYWRlci93cml0ZXIKQEAgLTE1MDEsNyArMTY0NSw5IEBACiAgICAgZGVmIHRlc3RfYmFkX2VuY29kZV9hcmdzKHNlbGYpOgogICAgICAgICBmb3IgZW5jb2RpbmcgaW4gYWxsX3VuaWNvZGVfZW5jb2RpbmdzOgogICAgICAgICAgICAgZW5jb2RlciA9IGNvZGVjcy5nZXRlbmNvZGVyKGVuY29kaW5nKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBlbmNvZGVyKQorICAgICAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCk6CisgICAgICAgICAgICAgICAgIyB1bmljb2RlLWludGVybmFsIGhhcyBiZWVuIGRlcHJlY2F0ZWQKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGVuY29kZXIpCiAKICAgICBkZWYgdGVzdF9lbmNvZGluZ19tYXBfdHlwZV9pbml0aWFsaXplZChzZWxmKToKICAgICAgICAgZnJvbSBlbmNvZGluZ3MgaW1wb3J0IGNwMTE0MApAQCAtMTU5Myw2ICsxNzM5LDEyIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29kZWNzLnJhd191bmljb2RlX2VzY2FwZV9kZWNvZGUociJcdTEyMzQiKSwgKCJcdTEyMzQiLCA2KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb2RlY3MucmF3X3VuaWNvZGVfZXNjYXBlX2RlY29kZShiciJcdTEyMzQiKSwgKCJcdTEyMzQiLCA2KSkKIAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRGVjb2RlRXJyb3IsIGNvZGVjcy51bmljb2RlX2VzY2FwZV9kZWNvZGUsIGJyIlxVMDAxMTAwMDAiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvZGVjcy51bmljb2RlX2VzY2FwZV9kZWNvZGUociJcVTAwMTEwMDAwIiwgInJlcGxhY2UiKSwgKCJcdWZmZmQiLCAxMCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZURlY29kZUVycm9yLCBjb2RlY3MucmF3X3VuaWNvZGVfZXNjYXBlX2RlY29kZSwgYnIiXFUwMDExMDAwMCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29kZWNzLnJhd191bmljb2RlX2VzY2FwZV9kZWNvZGUociJcVTAwMTEwMDAwIiwgInJlcGxhY2UiKSwgKCJcdWZmZmQiLCAxMCkpCisKIGNsYXNzIFN1cnJvZ2F0ZUVzY2FwZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfdXRmOChzZWxmKToKQEAgLTE2MjMsNyArMTc3NSw3IEBACiAKICAgICBkZWYgdGVzdF9sYXRpbjEoc2VsZik6CiAgICAgICAgICMgSXNzdWU2MzczCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlx1ZGNlNFx1ZGNlYlx1ZGNlZlx1ZGNmNlx1ZGNmYyIuZW5jb2RlKCJsYXRpbjEiLCAic3Vycm9nYXRlZXNjYXBlIiksCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlx1ZGNlNFx1ZGNlYlx1ZGNlZlx1ZGNmNlx1ZGNmYyIuZW5jb2RlKCJsYXRpbi0xIiwgInN1cnJvZ2F0ZWVzY2FwZSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIGIiXHhlNFx4ZWJceGVmXHhmNlx4ZmMiKQogCiAKQEAgLTE3MzIsNiArMTg4NCwxNTUgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc291dCwgYiJceDgwIikKIAogCitAdW5pdHRlc3Quc2tpcFVubGVzcyhzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJywKKyAgICAgICAgICAgICAgICAgICAgICdjb2RlIHBhZ2VzIGFyZSBzcGVjaWZpYyB0byBXaW5kb3dzJykKK2NsYXNzIENvZGVQYWdlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIyBDUF9VVEY4IGlzIGFscmVhZHkgdGVzdGVkIGJ5IENQNjUwMDFUZXN0CisgICAgQ1BfVVRGOCA9IDY1MDAxCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX2NvZGVfcGFnZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgY29kZWNzLmNvZGVfcGFnZV9lbmNvZGUsIC0xLCAnYScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGNvZGVjcy5jb2RlX3BhZ2VfZGVjb2RlLCAtMSwgYidhJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoV2luZG93c0Vycm9yLCBjb2RlY3MuY29kZV9wYWdlX2VuY29kZSwgMTIzLCAnYScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFdpbmRvd3NFcnJvciwgY29kZWNzLmNvZGVfcGFnZV9kZWNvZGUsIDEyMywgYidhJykKKworICAgIGRlZiB0ZXN0X2NvZGVfcGFnZV9uYW1lKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFVuaWNvZGVFbmNvZGVFcnJvciwgJ2NwOTMyJywKKyAgICAgICAgICAgIGNvZGVjcy5jb2RlX3BhZ2VfZW5jb2RlLCA5MzIsICdceGZmJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleChVbmljb2RlRGVjb2RlRXJyb3IsICdjcDkzMicsCisgICAgICAgICAgICBjb2RlY3MuY29kZV9wYWdlX2RlY29kZSwgOTMyLCBiJ1x4ODFceDAwJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleChVbmljb2RlRGVjb2RlRXJyb3IsICdDUF9VVEY4JywKKyAgICAgICAgICAgIGNvZGVjcy5jb2RlX3BhZ2VfZGVjb2RlLCBzZWxmLkNQX1VURjgsIGInXHhmZicpCisKKyAgICBkZWYgY2hlY2tfZGVjb2RlKHNlbGYsIGNwLCB0ZXN0cyk6CisgICAgICAgIGZvciByYXcsIGVycm9ycywgZXhwZWN0ZWQgaW4gdGVzdHM6CisgICAgICAgICAgICBpZiBleHBlY3RlZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGRlY29kZWQgPSBjb2RlY3MuY29kZV9wYWdlX2RlY29kZShjcCwgcmF3LCBlcnJvcnMpCisgICAgICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvciBhcyBlcnI6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnVW5hYmxlIHRvIGRlY29kZSAlYSBmcm9tICJjcCVzIiB3aXRoICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlcnJvcnM9JXI6ICVzJyAlIChyYXcsIGNwLCBlcnJvcnMsIGVycikpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVkWzBdLCBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgJyVhLmRlY29kZSgiY3AlcyIsICVyKT0lYSAhPSAlYScKKyAgICAgICAgICAgICAgICAgICAgJSAocmF3LCBjcCwgZXJyb3JzLCBkZWNvZGVkWzBdLCBleHBlY3RlZCkpCisgICAgICAgICAgICAgICAgIyBhc3NlcnQgMCA8PSBkZWNvZGVkWzFdIDw9IGxlbihyYXcpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwoZGVjb2RlZFsxXSwgMCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChkZWNvZGVkWzFdLCBsZW4ocmF3KSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZURlY29kZUVycm9yLAorICAgICAgICAgICAgICAgICAgICBjb2RlY3MuY29kZV9wYWdlX2RlY29kZSwgY3AsIHJhdywgZXJyb3JzKQorCisgICAgZGVmIGNoZWNrX2VuY29kZShzZWxmLCBjcCwgdGVzdHMpOgorICAgICAgICBmb3IgdGV4dCwgZXJyb3JzLCBleHBlY3RlZCBpbiB0ZXN0czoKKyAgICAgICAgICAgIGlmIGV4cGVjdGVkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZW5jb2RlZCA9IGNvZGVjcy5jb2RlX3BhZ2VfZW5jb2RlKGNwLCB0ZXh0LCBlcnJvcnMpCisgICAgICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvciBhcyBlcnI6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnVW5hYmxlIHRvIGVuY29kZSAlYSB0byAiY3AlcyIgd2l0aCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3JzPSVyOiAlcycgJSAodGV4dCwgY3AsIGVycm9ycywgZXJyKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVuY29kZWRbMF0sIGV4cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAnJWEuZW5jb2RlKCJjcCVzIiwgJXIpPSVhICE9ICVhJworICAgICAgICAgICAgICAgICAgICAlICh0ZXh0LCBjcCwgZXJyb3JzLCBlbmNvZGVkWzBdLCBleHBlY3RlZCkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbmNvZGVkWzFdLCBsZW4odGV4dCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaWNvZGVFbmNvZGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgY29kZWNzLmNvZGVfcGFnZV9lbmNvZGUsIGNwLCB0ZXh0LCBlcnJvcnMpCisKKyAgICBkZWYgdGVzdF9jcDkzMihzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19lbmNvZGUoOTMyLCAoCisgICAgICAgICAgICAoJ2FiYycsICdzdHJpY3QnLCBiJ2FiYycpLAorICAgICAgICAgICAgKCdcdWZmNDRcdTlhM2UnLCAnc3RyaWN0JywgYidceDgyXHg4NFx4ZTlceDgwJyksCisgICAgICAgICAgICAjIHRlc3QgZXJyb3IgaGFuZGxlcnMKKyAgICAgICAgICAgICgnXHhmZicsICdzdHJpY3QnLCBOb25lKSwKKyAgICAgICAgICAgICgnW1x4ZmZdJywgJ2lnbm9yZScsIGInW10nKSwKKyAgICAgICAgICAgICgnW1x4ZmZdJywgJ3JlcGxhY2UnLCBiJ1t5XScpLAorICAgICAgICAgICAgKCdbXHUyMGFjXScsICdyZXBsYWNlJywgYidbP10nKSwKKyAgICAgICAgICAgICgnW1x4ZmZdJywgJ2JhY2tzbGFzaHJlcGxhY2UnLCBiJ1tcXHhmZl0nKSwKKyAgICAgICAgICAgICgnW1x4ZmZdJywgJ3htbGNoYXJyZWZyZXBsYWNlJywgYidbJiMyNTU7XScpLAorICAgICAgICApKQorICAgICAgICBzZWxmLmNoZWNrX2RlY29kZSg5MzIsICgKKyAgICAgICAgICAgIChiJ2FiYycsICdzdHJpY3QnLCAnYWJjJyksCisgICAgICAgICAgICAoYidceDgyXHg4NFx4ZTlceDgwJywgJ3N0cmljdCcsICdcdWZmNDRcdTlhM2UnKSwKKyAgICAgICAgICAgICMgaW52YWxpZCBieXRlcworICAgICAgICAgICAgKGInW1x4ZmZdJywgJ3N0cmljdCcsIE5vbmUpLAorICAgICAgICAgICAgKGInW1x4ZmZdJywgJ2lnbm9yZScsICdbXScpLAorICAgICAgICAgICAgKGInW1x4ZmZdJywgJ3JlcGxhY2UnLCAnW1x1ZmZmZF0nKSwKKyAgICAgICAgICAgIChiJ1tceGZmXScsICdzdXJyb2dhdGVlc2NhcGUnLCAnW1x1ZGNmZl0nKSwKKyAgICAgICAgICAgIChiJ1x4ODFceDAwYWJjJywgJ3N0cmljdCcsIE5vbmUpLAorICAgICAgICAgICAgKGInXHg4MVx4MDBhYmMnLCAnaWdub3JlJywgJ1x4MDBhYmMnKSwKKyAgICAgICAgICAgIChiJ1x4ODFceDAwYWJjJywgJ3JlcGxhY2UnLCAnXHVmZmZkXHgwMGFiYycpLAorICAgICAgICApKQorCisgICAgZGVmIHRlc3RfY3AxMjUyKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX2VuY29kZSgxMjUyLCAoCisgICAgICAgICAgICAoJ2FiYycsICdzdHJpY3QnLCBiJ2FiYycpLAorICAgICAgICAgICAgKCdceGU5XHUyMGFjJywgJ3N0cmljdCcsICBiJ1x4ZTlceDgwJyksCisgICAgICAgICAgICAoJ1x4ZmYnLCAnc3RyaWN0JywgYidceGZmJyksCisgICAgICAgICAgICAoJ1x1MDE0MScsICdzdHJpY3QnLCBOb25lKSwKKyAgICAgICAgICAgICgnXHUwMTQxJywgJ2lnbm9yZScsIGInJyksCisgICAgICAgICAgICAoJ1x1MDE0MScsICdyZXBsYWNlJywgYidMJyksCisgICAgICAgICkpCisgICAgICAgIHNlbGYuY2hlY2tfZGVjb2RlKDEyNTIsICgKKyAgICAgICAgICAgIChiJ2FiYycsICdzdHJpY3QnLCAnYWJjJyksCisgICAgICAgICAgICAoYidceGU5XHg4MCcsICdzdHJpY3QnLCAnXHhlOVx1MjBhYycpLAorICAgICAgICAgICAgKGInXHhmZicsICdzdHJpY3QnLCAnXHhmZicpLAorICAgICAgICApKQorCisgICAgZGVmIHRlc3RfY3BfdXRmNyhzZWxmKToKKyAgICAgICAgY3AgPSA2NTAwMAorICAgICAgICBzZWxmLmNoZWNrX2VuY29kZShjcCwgKAorICAgICAgICAgICAgKCdhYmMnLCAnc3RyaWN0JywgYidhYmMnKSwKKyAgICAgICAgICAgICgnXHhlOVx1MjBhYycsICdzdHJpY3QnLCAgYicrQU9rZ3JBLScpLAorICAgICAgICAgICAgKCdcVTAwMTBmZmZmJywgJ3N0cmljdCcsICBiJysyLy9mL3ctJyksCisgICAgICAgICAgICAoJ1x1ZGM4MCcsICdzdHJpY3QnLCBiJyszSUEtJyksCisgICAgICAgICAgICAoJ1x1ZmZmZCcsICdzdHJpY3QnLCBiJysvLzAtJyksCisgICAgICAgICkpCisgICAgICAgIHNlbGYuY2hlY2tfZGVjb2RlKGNwLCAoCisgICAgICAgICAgICAoYidhYmMnLCAnc3RyaWN0JywgJ2FiYycpLAorICAgICAgICAgICAgKGInK0FPa2dyQS0nLCAnc3RyaWN0JywgJ1x4ZTlcdTIwYWMnKSwKKyAgICAgICAgICAgIChiJysyLy9mL3ctJywgJ3N0cmljdCcsICdcVTAwMTBmZmZmJyksCisgICAgICAgICAgICAoYicrM0lBLScsICdzdHJpY3QnLCAnXHVkYzgwJyksCisgICAgICAgICAgICAoYicrLy8wLScsICdzdHJpY3QnLCAnXHVmZmZkJyksCisgICAgICAgICAgICAjIGludmFsaWQgYnl0ZXMKKyAgICAgICAgICAgIChiJ1srL10nLCAnc3RyaWN0JywgJ1tdJyksCisgICAgICAgICAgICAoYidbXHhmZl0nLCAnc3RyaWN0JywgJ1tceGZmXScpLAorICAgICAgICApKQorCisgICAgZGVmIHRlc3RfbXVsdGlieXRlX2VuY29kaW5nKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX2RlY29kZSg5MzIsICgKKyAgICAgICAgICAgIChiJ1x4ODRceGU5XHg4MCcsICdpZ25vcmUnLCAnXHU5YTNlJyksCisgICAgICAgICAgICAoYidceDg0XHhlOVx4ODAnLCAncmVwbGFjZScsICdcdWZmZmRcdTlhM2UnKSwKKyAgICAgICAgKSkKKyAgICAgICAgc2VsZi5jaGVja19kZWNvZGUoc2VsZi5DUF9VVEY4LCAoCisgICAgICAgICAgICAoYidceGZmXHhmNFx4OGZceGJmXHhiZicsICdpZ25vcmUnLCAnXFUwMDEwZmZmZicpLAorICAgICAgICAgICAgKGInXHhmZlx4ZjRceDhmXHhiZlx4YmYnLCAncmVwbGFjZScsICdcdWZmZmRcVTAwMTBmZmZmJyksCisgICAgICAgICkpCisgICAgICAgIGlmIFZJU1RBX09SX0xBVEVSOgorICAgICAgICAgICAgc2VsZi5jaGVja19lbmNvZGUoc2VsZi5DUF9VVEY4LCAoCisgICAgICAgICAgICAgICAgKCdbXFUwMDEwZmZmZlx1REM4MF0nLCAnaWdub3JlJywgYidbXHhmNFx4OGZceGJmXHhiZl0nKSwKKyAgICAgICAgICAgICAgICAoJ1tcVTAwMTBmZmZmXHVEQzgwXScsICdyZXBsYWNlJywgYidbXHhmNFx4OGZceGJmXHhiZj9dJyksCisgICAgICAgICAgICApKQorCisgICAgZGVmIHRlc3RfaW5jcmVtZW50YWwoc2VsZik6CisgICAgICAgIGRlY29kZWQgPSBjb2RlY3MuY29kZV9wYWdlX2RlY29kZSg5MzIsIGInXHg4MicsICdzdHJpY3QnLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVkLCAoJycsIDApKQorCisgICAgICAgIGRlY29kZWQgPSBjb2RlY3MuY29kZV9wYWdlX2RlY29kZSg5MzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiJ1x4ZTlceDgwXHhlOScsICdzdHJpY3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVjb2RlZCwgKCdcdTlhM2UnLCAyKSkKKworICAgICAgICBkZWNvZGVkID0gY29kZWNzLmNvZGVfcGFnZV9kZWNvZGUoOTMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYidceGU5XHg4MFx4ZTlceDgwJywgJ3N0cmljdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVkLCAoJ1x1OWEzZVx1OWEzZScsIDQpKQorCisgICAgICAgIGRlY29kZWQgPSBjb2RlY3MuY29kZV9wYWdlX2RlY29kZSg5MzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiJ2FiYycsICdzdHJpY3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVjb2RlZCwgKCdhYmMnLCAzKSkKKworCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoCiAgICAgICAgIFVURjMyVGVzdCwKQEAgLTE3NDIsNiArMjA0Myw3IEBACiAgICAgICAgIFVURjE2QkVUZXN0LAogICAgICAgICBVVEY4VGVzdCwKICAgICAgICAgVVRGOFNpZ1Rlc3QsCisgICAgICAgIENQNjUwMDFUZXN0LAogICAgICAgICBVVEY3VGVzdCwKICAgICAgICAgVVRGMTZFeFRlc3QsCiAgICAgICAgIFJlYWRCdWZmZXJUZXN0LApAQCAtMTc2MCw2ICsyMDYyLDcgQEAKICAgICAgICAgU3Vycm9nYXRlRXNjYXBlVGVzdCwKICAgICAgICAgQm9tVGVzdCwKICAgICAgICAgVHJhbnNmb3JtQ29kZWNUZXN0LAorICAgICAgICBDb2RlUGFnZVRlc3QsCiAgICAgKQogCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY29kaW5nLnB5IGIvTGliL3Rlc3QvdGVzdF9jb2RpbmcucHkKaW5kZXggZjlkYjBiNC4uZGZkNTQzMSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb2RpbmcucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jb2RpbmcucHkKQEAgLTEsNyArMSw2IEBACi0KIGltcG9ydCB0ZXN0LnN1cHBvcnQsIHVuaXR0ZXN0CiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgVEVTVEZOLCB1bmxpbmssIHVubG9hZAotaW1wb3J0IG9zLCBzeXMKK2ltcG9ydCBpbXBvcnRsaWIsIG9zLCBzeXMKIAogY2xhc3MgQ29kaW5nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfYmFkX2NvZGluZyhzZWxmKToKQEAgLTQwLDYgKzM5LDcgQEAKICAgICAgICAgICAgIGYud3JpdGUoIidBIHZlcnkgbG9uZyBzdHJpbmcgJXMnXG4iICUgKCJYIiAqIDEwMDApKQogICAgICAgICAgICAgZi5jbG9zZSgpCiAKKyAgICAgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgICAgICBfX2ltcG9ydF9fKFRFU1RGTikKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIGYuY2xvc2UoKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb2xsZWN0aW9ucy5weSBiL0xpYi90ZXN0L3Rlc3RfY29sbGVjdGlvbnMucHkKaW5kZXggOGRjNTU1OS4uODhjMzEyOSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb2xsZWN0aW9ucy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvbGxlY3Rpb25zLnB5CkBAIC0xLDYgKzEsNyBAQAogIiIiVW5pdCB0ZXN0cyBmb3IgY29sbGVjdGlvbnMucHkuIiIiCiAKIGltcG9ydCB1bml0dGVzdCwgZG9jdGVzdCwgb3BlcmF0b3IKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBURVNURk4sIGZvcmdldCwgdW5saW5rCiBpbXBvcnQgaW5zcGVjdAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlLCBDb3VudGVyLCBPcmRlcmVkRGljdCwgX2NvdW50X2VsZW1lbnRzCkBAIC0xMCwyMSArMTEsMjAgQEAKIGltcG9ydCBrZXl3b3JkCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IF9DaGFpbk1hcAotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgSGFzaGFibGUsIEl0ZXJhYmxlLCBJdGVyYXRvcgotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgU2l6ZWQsIENvbnRhaW5lciwgQ2FsbGFibGUKLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IFNldCwgTXV0YWJsZVNldAotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTWFwcGluZywgTXV0YWJsZU1hcHBpbmcsIEtleXNWaWV3LCBJdGVtc1ZpZXcsIFVzZXJEaWN0Ci1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBTZXF1ZW5jZSwgTXV0YWJsZVNlcXVlbmNlCi1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBCeXRlU3RyaW5nCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBVc2VyRGljdAorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgQ2hhaW5NYXAKK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBIYXNoYWJsZSwgSXRlcmFibGUsIEl0ZXJhdG9yCitmcm9tIGNvbGxlY3Rpb25zLmFiYyBpbXBvcnQgU2l6ZWQsIENvbnRhaW5lciwgQ2FsbGFibGUKK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBTZXQsIE11dGFibGVTZXQKK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBNYXBwaW5nLCBNdXRhYmxlTWFwcGluZywgS2V5c1ZpZXcsIEl0ZW1zVmlldworZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IFNlcXVlbmNlLCBNdXRhYmxlU2VxdWVuY2UKK2Zyb20gY29sbGVjdGlvbnMuYWJjIGltcG9ydCBCeXRlU3RyaW5nCiAKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMjIyBfQ2hhaW5NYXAgKGhlbHBlciBjbGFzcyBmb3IgY29uZmlncGFyc2VyKQorIyMjIENoYWluTWFwIChoZWxwZXIgY2xhc3MgZm9yIGNvbmZpZ3BhcnNlciBhbmQgdGhlIHN0cmluZyBtb2R1bGUpCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1DaGFpbk1hcCA9IF9DaGFpbk1hcCAgIyByZW5hbWUgdG8ga2VlcCB0ZXN0IGNvZGUgaW4gc3luYyB3aXRoIDMuMyB2ZXJzaW9uCi0KIGNsYXNzIFRlc3RDaGFpbk1hcCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICBkZWYgdGVzdF9iYXNpY3Moc2VsZik6CkBAIC0xMjgsNiArMTI4LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQb2ludC5fX21vZHVsZV9fLCBfX25hbWVfXykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQb2ludC5fX2dldGl0ZW1fXywgdHVwbGUuX19nZXRpdGVtX18pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUG9pbnQuX2ZpZWxkcywgKCd4JywgJ3knKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignY2xhc3MgUG9pbnQodHVwbGUpJywgUG9pbnQuX3NvdXJjZSkKIAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBuYW1lZHR1cGxlLCAnYWJjJScsICdlZmcgZ2hpJykgICAgICAgIyB0eXBlIGhhcyBub24tYWxwaGEgY2hhcgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBuYW1lZHR1cGxlLCAnY2xhc3MnLCAnZWZnIGdoaScpICAgICAgIyB0eXBlIGhhcyBrZXl3b3JkCkBAIC0zMjcsNiArMzI4LDE3IEBACiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihCKDEpKSwgJ0IoeD0xKScpCiAKKyAgICBkZWYgdGVzdF9zb3VyY2Uoc2VsZik6CisgICAgICAgICMgdmVyaWZ5IHRoYXQgX3NvdXJjZSBjYW4gYmUgcnVuIHRocm91Z2ggZXhlYygpCisgICAgICAgIHRtcCA9IG5hbWVkdHVwbGUoJ05UQ29sb3InLCAncmVkIGdyZWVuIGJsdWUnKQorICAgICAgICBnbG9iYWxzKCkucG9wKCdOVENvbG9yJywgTm9uZSkgICAgICAgICAgIyByZW1vdmUgYXJ0aWZhY3RzIGZyb20gb3RoZXIgdGVzdHMKKyAgICAgICAgZXhlYyh0bXAuX3NvdXJjZSwgZ2xvYmFscygpKQorICAgICAgICBzZWxmLmFzc2VydEluKCdOVENvbG9yJywgZ2xvYmFscygpKQorICAgICAgICBjID0gTlRDb2xvcigxMCwgMjAsIDMwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKChjLnJlZCwgYy5ncmVlbiwgYy5ibHVlKSwgKDEwLCAyMCwgMzApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5UQ29sb3IuX2ZpZWxkcywgKCdyZWQnLCAnZ3JlZW4nLCAnYmx1ZScpKQorICAgICAgICBnbG9iYWxzKCkucG9wKCdOVENvbG9yJywgTm9uZSkgICAgICAgICAgIyBjbGVhbi11cCBhZnRlciB0aGlzIHRlc3QKKwogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyMjIEFic3RyYWN0IEJhc2UgQ2xhc3NlcwpAQCAtNzI5LDYgKzc0MSw0NCBAQAogICAgICAgICBzZWxmLnZhbGlkYXRlX2Fic3RyYWN0X21ldGhvZHMoTXV0YWJsZVNlcXVlbmNlLCAnX19jb250YWluc19fJywgJ19faXRlcl9fJywKICAgICAgICAgICAgICdfX2xlbl9fJywgJ19fZ2V0aXRlbV9fJywgJ19fc2V0aXRlbV9fJywgJ19fZGVsaXRlbV9fJywgJ2luc2VydCcpCiAKKyAgICBkZWYgdGVzdF9NdXRhYmxlU2VxdWVuY2VfbWl4aW5zKHNlbGYpOgorICAgICAgICAjIFRlc3QgdGhlIG1peGlucyBvZiBNdXRhYmxlU2VxdWVuY2UgYnkgY3JlYXRpbmcgYSBtaW1pbmFsIGNvbmNyZXRlCisgICAgICAgICMgY2xhc3MgaW5oZXJpdGVkIGZyb20gaXQuCisgICAgICAgIGNsYXNzIE11dGFibGVTZXF1ZW5jZVN1YmNsYXNzKE11dGFibGVTZXF1ZW5jZSk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5sc3QgPSBbXQorCisgICAgICAgICAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwgaW5kZXgsIHZhbHVlKToKKyAgICAgICAgICAgICAgICBzZWxmLmxzdFtpbmRleF0gPSB2YWx1ZQorCisgICAgICAgICAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgaW5kZXgpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmxzdFtpbmRleF0KKworICAgICAgICAgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIGxlbihzZWxmLmxzdCkKKworICAgICAgICAgICAgZGVmIF9fZGVsaXRlbV9fKHNlbGYsIGluZGV4KToKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5sc3RbaW5kZXhdCisKKyAgICAgICAgICAgIGRlZiBpbnNlcnQoc2VsZiwgaW5kZXgsIHZhbHVlKToKKyAgICAgICAgICAgICAgICBzZWxmLmxzdC5pbnNlcnQoaW5kZXgsIHZhbHVlKQorCisgICAgICAgIG1zcyA9IE11dGFibGVTZXF1ZW5jZVN1YmNsYXNzKCkKKyAgICAgICAgbXNzLmFwcGVuZCgwKQorICAgICAgICBtc3MuZXh0ZW5kKCgxLCAyLCAzLCA0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obXNzKSwgNSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc3NbM10sIDMpCisgICAgICAgIG1zcy5yZXZlcnNlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc3NbM10sIDEpCisgICAgICAgIG1zcy5wb3AoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihtc3MpLCA0KQorICAgICAgICBtc3MucmVtb3ZlKDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1zcyksIDMpCisgICAgICAgIG1zcyArPSAoMTAsIDIwLCAzMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obXNzKSwgNikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc3NbLTFdLCAzMCkKKyAgICAgICAgbXNzLmNsZWFyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obXNzKSwgMCkKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyBDb3VudGVyCkBAIC04ODIsNiArOTMyLDI3IEBACiAgICAgICAgICAgICAgICAgc2V0X3Jlc3VsdCA9IHNldG9wKHNldChwLmVsZW1lbnRzKCkpLCBzZXQocS5lbGVtZW50cygpKSkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvdW50ZXJfcmVzdWx0LCBkaWN0LmZyb21rZXlzKHNldF9yZXN1bHQsIDEpKQogCisgICAgZGVmIHRlc3RfaW5wbGFjZV9vcGVyYXRpb25zKHNlbGYpOgorICAgICAgICBlbGVtZW50cyA9ICdhYmNkJworICAgICAgICBmb3IgaSBpbiByYW5nZSgxMDAwKToKKyAgICAgICAgICAgICMgdGVzdCByYW5kb20gcGFpcnMgb2YgbXVsdGlzZXRzCisgICAgICAgICAgICBwID0gQ291bnRlcihkaWN0KChlbGVtLCByYW5kcmFuZ2UoLTIsNCkpIGZvciBlbGVtIGluIGVsZW1lbnRzKSkKKyAgICAgICAgICAgIHAudXBkYXRlKGU9MSwgZj0tMSwgZz0wKQorICAgICAgICAgICAgcSA9IENvdW50ZXIoZGljdCgoZWxlbSwgcmFuZHJhbmdlKC0yLDQpKSBmb3IgZWxlbSBpbiBlbGVtZW50cykpCisgICAgICAgICAgICBxLnVwZGF0ZShoPTEsIGk9LTEsIGo9MCkKKyAgICAgICAgICAgIGZvciBpbnBsYWNlX29wLCByZWd1bGFyX29wIGluIFsKKyAgICAgICAgICAgICAgICAoQ291bnRlci5fX2lhZGRfXywgQ291bnRlci5fX2FkZF9fKSwKKyAgICAgICAgICAgICAgICAoQ291bnRlci5fX2lzdWJfXywgQ291bnRlci5fX3N1Yl9fKSwKKyAgICAgICAgICAgICAgICAoQ291bnRlci5fX2lvcl9fLCBDb3VudGVyLl9fb3JfXyksCisgICAgICAgICAgICAgICAgKENvdW50ZXIuX19pYW5kX18sIENvdW50ZXIuX19hbmRfXyksCisgICAgICAgICAgICBdOgorICAgICAgICAgICAgICAgIGMgPSBwLmNvcHkoKQorICAgICAgICAgICAgICAgIGNfaWQgPSBpZChjKQorICAgICAgICAgICAgICAgIHJlZ3VsYXJfcmVzdWx0ID0gcmVndWxhcl9vcChjLCBxKQorICAgICAgICAgICAgICAgIGlucGxhY2VfcmVzdWx0ID0gaW5wbGFjZV9vcChjLCBxKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wbGFjZV9yZXN1bHQsIHJlZ3VsYXJfcmVzdWx0KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaWQoaW5wbGFjZV9yZXN1bHQpLCBjX2lkKQorCiAgICAgZGVmIHRlc3Rfc3VidHJhY3Qoc2VsZik6CiAgICAgICAgIGMgPSBDb3VudGVyKGE9LTUsIGI9MCwgYz01LCBkPTEwLCBlPTE1LGc9NDApCiAgICAgICAgIGMuc3VidHJhY3QoYT0xLCBiPTIsIGM9LTMsIGQ9MTAsIGU9MjAsIGY9MzAsIGg9LTUwKQpAQCAtODkzLDYgKzk2NCwxMSBAQAogICAgICAgICBjLnN1YnRyYWN0KCdhYWFhYmJjY2UnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMsIENvdW50ZXIoYT0tMSwgYj0wLCBjPS0xLCBkPTEsIGU9LTEpKQogCisgICAgZGVmIHRlc3RfdW5hcnkoc2VsZik6CisgICAgICAgIGMgPSBDb3VudGVyKGE9LTUsIGI9MCwgYz01LCBkPTEwLCBlPTE1LGc9NDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGljdCgrYyksIGRpY3QoYz01LCBkPTEwLCBlPTE1LCBnPTQwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWN0KC1jKSwgZGljdChhPTUpKQorCiAgICAgZGVmIHRlc3RfcmVwcl9ub25zb3J0YWJsZShzZWxmKToKICAgICAgICAgYyA9IENvdW50ZXIoYT0yLCBiPU5vbmUpCiAgICAgICAgIHIgPSByZXByKGMpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NvbXBpbGUucHkgYi9MaWIvdGVzdC90ZXN0X2NvbXBpbGUucHkKaW5kZXggNThlZjI5Ny4uNzIzNDJmOCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb21waWxlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY29tcGlsZS5weQpAQCAtMSwxMCArMSwxNyBAQAogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgc3lzCiBpbXBvcnQgX2FzdAoraW1wb3J0IHR5cGVzCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIAogY2xhc3MgVGVzdFNwZWNpZmljcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKKyAgICBkZWYgY29tcGlsZV9zaW5nbGUoc2VsZiwgc291cmNlKToKKyAgICAgICAgY29tcGlsZShzb3VyY2UsICI8c2luZ2xlPiIsICJzaW5nbGUiKQorCisgICAgZGVmIGFzc2VydEludmFsaWRTaW5nbGUoc2VsZiwgc291cmNlKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIHNlbGYuY29tcGlsZV9zaW5nbGUsIHNvdXJjZSkKKwogICAgIGRlZiB0ZXN0X25vX2VuZGluZ19uZXdsaW5lKHNlbGYpOgogICAgICAgICBjb21waWxlKCJoaSIsICI8dGVzdD4iLCAiZXhlYyIpCiAgICAgICAgIGNvbXBpbGUoImhpXHIiLCAiPHRlc3Q+IiwgImV4ZWMiKQpAQCAtNDMzLDYgKzQ0MCwzOSBAQAogICAgICAgICBhc3QuYm9keSA9IFtfYXN0LkJvb2xPcCgpXQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGNvbXBpbGUsIGFzdCwgJzxhc3Q+JywgJ2V4ZWMnKQogCisgICAgQHN1cHBvcnQuY3B5dGhvbl9vbmx5CisgICAgZGVmIHRlc3Rfc2FtZV9maWxlbmFtZV91c2VkKHNlbGYpOgorICAgICAgICBzID0gIiIiZGVmIGYoKTogcGFzc1xuZGVmIGcoKTogcGFzcyIiIgorICAgICAgICBjID0gY29tcGlsZShzLCAibXlmaWxlIiwgImV4ZWMiKQorICAgICAgICBmb3Igb2JqIGluIGMuY29fY29uc3RzOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIHR5cGVzLkNvZGVUeXBlKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzKG9iai5jb19maWxlbmFtZSwgYy5jb19maWxlbmFtZSkKKworICAgIGRlZiB0ZXN0X3NpbmdsZV9zdGF0ZW1lbnQoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGlsZV9zaW5nbGUoIjEgKyAyIikKKyAgICAgICAgc2VsZi5jb21waWxlX3NpbmdsZSgiXG4xICsgMiIpCisgICAgICAgIHNlbGYuY29tcGlsZV9zaW5nbGUoIjEgKyAyXG4iKQorICAgICAgICBzZWxmLmNvbXBpbGVfc2luZ2xlKCIxICsgMlxuXG4iKQorICAgICAgICBzZWxmLmNvbXBpbGVfc2luZ2xlKCIxICsgMlx0XHRcbiIpCisgICAgICAgIHNlbGYuY29tcGlsZV9zaW5nbGUoIjEgKyAyXHRcdFxuICAgICAgICAiKQorICAgICAgICBzZWxmLmNvbXBpbGVfc2luZ2xlKCIxICsgMiAjIG9uZSBwbHVzIHR3byIpCisgICAgICAgIHNlbGYuY29tcGlsZV9zaW5nbGUoIjE7IDIiKQorICAgICAgICBzZWxmLmNvbXBpbGVfc2luZ2xlKCJpbXBvcnQgc3lzOyBzeXMiKQorICAgICAgICBzZWxmLmNvbXBpbGVfc2luZ2xlKCJkZWYgZigpOlxuICAgcGFzcyIpCisgICAgICAgIHNlbGYuY29tcGlsZV9zaW5nbGUoIndoaWxlIEZhbHNlOlxuICAgcGFzcyIpCisgICAgICAgIHNlbGYuY29tcGlsZV9zaW5nbGUoImlmIHg6XG4gICBmKHgpIikKKyAgICAgICAgc2VsZi5jb21waWxlX3NpbmdsZSgiaWYgeDpcbiAgIGYoeClcbmVsc2U6XG4gICBnKHgpIikKKyAgICAgICAgc2VsZi5jb21waWxlX3NpbmdsZSgiY2xhc3MgVDpcbiAgIHBhc3MiKQorCisgICAgZGVmIHRlc3RfYmFkX3NpbmdsZV9zdGF0ZW1lbnQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0SW52YWxpZFNpbmdsZSgnMVxuMicpCisgICAgICAgIHNlbGYuYXNzZXJ0SW52YWxpZFNpbmdsZSgnZGVmIGYoKTogcGFzcycpCisgICAgICAgIHNlbGYuYXNzZXJ0SW52YWxpZFNpbmdsZSgnYSA9IDEzXG5iID0gMTg3JykKKyAgICAgICAgc2VsZi5hc3NlcnRJbnZhbGlkU2luZ2xlKCdkZWwgeFxuZGVsIHknKQorICAgICAgICBzZWxmLmFzc2VydEludmFsaWRTaW5nbGUoJ2YoKVxuZygpJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbnZhbGlkU2luZ2xlKCdmKClcbiMgYmxhaFxuYmxhaCgpJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbnZhbGlkU2luZ2xlKCdmKClcbnh5ICMgYmxhaFxuYmxhaCgpJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbnZhbGlkU2luZ2xlKCd4ID0gNSAjIGNvbW1lbnRcbnggPSA2XG4nKQogCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoVGVzdFNwZWNpZmljcykKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY29uY3VycmVudF9mdXR1cmVzLnB5IGIvTGliL3Rlc3QvdGVzdF9jb25jdXJyZW50X2Z1dHVyZXMucHkKaW5kZXggMmFmYTkzOC4uNmFlNDUwZCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb25jdXJyZW50X2Z1dHVyZXMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jb25jdXJyZW50X2Z1dHVyZXMucHkKQEAgLTE5LDcgKzE5LDcgQEAKIGZyb20gY29uY3VycmVudCBpbXBvcnQgZnV0dXJlcwogZnJvbSBjb25jdXJyZW50LmZ1dHVyZXMuX2Jhc2UgaW1wb3J0ICgKICAgICBQRU5ESU5HLCBSVU5OSU5HLCBDQU5DRUxMRUQsIENBTkNFTExFRF9BTkRfTk9USUZJRUQsIEZJTklTSEVELCBGdXR1cmUpCi1pbXBvcnQgY29uY3VycmVudC5mdXR1cmVzLnByb2Nlc3MKK2Zyb20gY29uY3VycmVudC5mdXR1cmVzLnByb2Nlc3MgaW1wb3J0IEJyb2tlblByb2Nlc3NQb29sCiAKIAogZGVmIGNyZWF0ZV9mdXR1cmUoc3RhdGU9UEVORElORywgZXhjZXB0aW9uPU5vbmUsIHJlc3VsdD1Ob25lKToKQEAgLTM0LDcgKzM0LDcgQEAKIFJVTk5JTkdfRlVUVVJFID0gY3JlYXRlX2Z1dHVyZShzdGF0ZT1SVU5OSU5HKQogQ0FOQ0VMTEVEX0ZVVFVSRSA9IGNyZWF0ZV9mdXR1cmUoc3RhdGU9Q0FOQ0VMTEVEKQogQ0FOQ0VMTEVEX0FORF9OT1RJRklFRF9GVVRVUkUgPSBjcmVhdGVfZnV0dXJlKHN0YXRlPUNBTkNFTExFRF9BTkRfTk9USUZJRUQpCi1FWENFUFRJT05fRlVUVVJFID0gY3JlYXRlX2Z1dHVyZShzdGF0ZT1GSU5JU0hFRCwgZXhjZXB0aW9uPUlPRXJyb3IoKSkKK0VYQ0VQVElPTl9GVVRVUkUgPSBjcmVhdGVfZnV0dXJlKHN0YXRlPUZJTklTSEVELCBleGNlcHRpb249T1NFcnJvcigpKQogU1VDQ0VTU0ZVTF9GVVRVUkUgPSBjcmVhdGVfZnV0dXJlKHN0YXRlPUZJTklTSEVELCByZXN1bHQ9NDIpCiAKIApAQCAtMTYwLDcgKzE2MCw3IEBACiAgICAgICAgIHByb2Nlc3NlcyA9IHNlbGYuZXhlY3V0b3IuX3Byb2Nlc3NlcwogICAgICAgICBzZWxmLmV4ZWN1dG9yLnNodXRkb3duKCkKIAotICAgICAgICBmb3IgcCBpbiBwcm9jZXNzZXM6CisgICAgICAgIGZvciBwIGluIHByb2Nlc3Nlcy52YWx1ZXMoKToKICAgICAgICAgICAgIHAuam9pbigpCiAKICAgICBkZWYgdGVzdF9jb250ZXh0X21hbmFnZXJfc2h1dGRvd24oc2VsZik6CkBAIC0xNjksNyArMTY5LDcgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChlLm1hcChhYnMsIHJhbmdlKC01LCA1KSkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbNSwgNCwgMywgMiwgMSwgMCwgMSwgMiwgMywgNF0pCiAKLSAgICAgICAgZm9yIHAgaW4gcHJvY2Vzc2VzOgorICAgICAgICBmb3IgcCBpbiBwcm9jZXNzZXMudmFsdWVzKCk6CiAgICAgICAgICAgICBwLmpvaW4oKQogCiAgICAgZGVmIHRlc3RfZGVsX3NodXRkb3duKHNlbGYpOgpAQCAtMTgwLDcgKzE4MCw3IEBACiAgICAgICAgIGRlbCBleGVjdXRvcgogCiAgICAgICAgIHF1ZXVlX21hbmFnZW1lbnRfdGhyZWFkLmpvaW4oKQotICAgICAgICBmb3IgcCBpbiBwcm9jZXNzZXM6CisgICAgICAgIGZvciBwIGluIHByb2Nlc3Nlcy52YWx1ZXMoKToKICAgICAgICAgICAgIHAuam9pbigpCiAKIApAQCAtMjY4LDE0ICsyNjgsMTQgQEAKIAogICAgIGRlZiB0ZXN0X3RpbWVvdXQoc2VsZik6CiAgICAgICAgIGZ1dHVyZTEgPSBzZWxmLmV4ZWN1dG9yLnN1Ym1pdChtdWwsIDYsIDcpCi0gICAgICAgIGZ1dHVyZTIgPSBzZWxmLmV4ZWN1dG9yLnN1Ym1pdCh0aW1lLnNsZWVwLCAzKQorICAgICAgICBmdXR1cmUyID0gc2VsZi5leGVjdXRvci5zdWJtaXQodGltZS5zbGVlcCwgNikKIAogICAgICAgICBmaW5pc2hlZCwgcGVuZGluZyA9IGZ1dHVyZXMud2FpdCgKICAgICAgICAgICAgICAgICBbQ0FOQ0VMTEVEX0FORF9OT1RJRklFRF9GVVRVUkUsCiAgICAgICAgICAgICAgICAgIEVYQ0VQVElPTl9GVVRVUkUsCiAgICAgICAgICAgICAgICAgIFNVQ0NFU1NGVUxfRlVUVVJFLAogICAgICAgICAgICAgICAgICBmdXR1cmUxLCBmdXR1cmUyXSwKLSAgICAgICAgICAgICAgICB0aW1lb3V0PTEuNSwKKyAgICAgICAgICAgICAgICB0aW1lb3V0PTUsCiAgICAgICAgICAgICAgICAgcmV0dXJuX3doZW49ZnV0dXJlcy5BTExfQ09NUExFVEVEKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KFtDQU5DRUxMRURfQU5EX05PVElGSUVEX0ZVVFVSRSwKQEAgLTM3OSw4ICszNzksOCBAQAogICAgICAgICByZXN1bHRzID0gW10KICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZm9yIGkgaW4gc2VsZi5leGVjdXRvci5tYXAodGltZS5zbGVlcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFswLCAwLCAzXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9MS41KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFswLCAwLCA2XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9NSk6CiAgICAgICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoaSkKICAgICAgICAgZXhjZXB0IGZ1dHVyZXMuVGltZW91dEVycm9yOgogICAgICAgICAgICAgcGFzcwpAQCAtMzg5LDEzICszODksMzggQEAKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtOb25lLCBOb25lXSwgcmVzdWx0cykKIAorICAgIGRlZiB0ZXN0X3NodXRkb3duX3JhY2VfaXNzdWUxMjQ1NihzZWxmKToKKyAgICAgICAgIyBJc3N1ZSAjMTI0NTY6IHJhY2UgY29uZGl0aW9uIGF0IHNodXRkb3duIHdoZXJlIHRyeWluZyB0byBwb3N0IGEKKyAgICAgICAgIyBzZW50aW5lbCBpbiB0aGUgY2FsbCBxdWV1ZSBibG9ja3MgKHRoZSBxdWV1ZSBpcyBmdWxsIHdoaWxlIHByb2Nlc3NlcworICAgICAgICAjIGhhdmUgZXhpdGVkKS4KKyAgICAgICAgc2VsZi5leGVjdXRvci5tYXAoc3RyLCBbMl0gKiAoc2VsZi53b3JrZXJfY291bnQgKyAxKSkKKyAgICAgICAgc2VsZi5leGVjdXRvci5zaHV0ZG93bigpCisKIAogY2xhc3MgVGhyZWFkUG9vbEV4ZWN1dG9yVGVzdChUaHJlYWRQb29sTWl4aW4sIEV4ZWN1dG9yVGVzdCk6Ci0gICAgcGFzcworICAgIGRlZiB0ZXN0X21hcF9zdWJtaXRzX3dpdGhvdXRfaXRlcmF0aW9uKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyB2ZXJpZnlpbmcgaXNzdWUgMTE3NzcuIiIiCisgICAgICAgIGZpbmlzaGVkID0gW10KKyAgICAgICAgZGVmIHJlY29yZF9maW5pc2hlZChuKToKKyAgICAgICAgICAgIGZpbmlzaGVkLmFwcGVuZChuKQorCisgICAgICAgIHNlbGYuZXhlY3V0b3IubWFwKHJlY29yZF9maW5pc2hlZCwgcmFuZ2UoMTApKQorICAgICAgICBzZWxmLmV4ZWN1dG9yLnNodXRkb3duKHdhaXQ9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRDb3VudEVxdWFsKGZpbmlzaGVkLCByYW5nZSgxMCkpCiAKIAogY2xhc3MgUHJvY2Vzc1Bvb2xFeGVjdXRvclRlc3QoUHJvY2Vzc1Bvb2xNaXhpbiwgRXhlY3V0b3JUZXN0KToKLSAgICBwYXNzCisgICAgZGVmIHRlc3Rfa2lsbGVkX2NoaWxkKHNlbGYpOgorICAgICAgICAjIFdoZW4gYSBjaGlsZCBwcm9jZXNzIGlzIGFicnVwdGx5IHRlcm1pbmF0ZWQsIHRoZSB3aG9sZSBwb29sIGdldHMKKyAgICAgICAgIyAiYnJva2VuIi4KKyAgICAgICAgZnV0dXJlcyA9IFtzZWxmLmV4ZWN1dG9yLnN1Ym1pdCh0aW1lLnNsZWVwLCAzKV0KKyAgICAgICAgIyBHZXQgb25lIG9mIHRoZSBwcm9jZXNzZXMsIGFuZCB0ZXJtaW5hdGUgKGtpbGwpIGl0CisgICAgICAgIHAgPSBuZXh0KGl0ZXIoc2VsZi5leGVjdXRvci5fcHJvY2Vzc2VzLnZhbHVlcygpKSkKKyAgICAgICAgcC50ZXJtaW5hdGUoKQorICAgICAgICBmb3IgZnV0IGluIGZ1dHVyZXM6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhCcm9rZW5Qcm9jZXNzUG9vbCwgZnV0LnJlc3VsdCkKKyAgICAgICAgIyBTdWJtaXR0aW5nIG90aGVyIGpvYnMgZmFpbHMgYXMgd2VsbC4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQnJva2VuUHJvY2Vzc1Bvb2wsIHNlbGYuZXhlY3V0b3Iuc3VibWl0LCBwb3csIDIsIDgpCiAKIAogY2xhc3MgRnV0dXJlVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtNDk4LDcgKzUyMyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgJzxGdXR1cmUgYXQgMHhbMC05YS1mXSsgc3RhdGU9Y2FuY2VsbGVkPicpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXgoCiAgICAgICAgICAgICAgICAgcmVwcihFWENFUFRJT05fRlVUVVJFKSwKLSAgICAgICAgICAgICAgICAnPEZ1dHVyZSBhdCAweFswLTlhLWZdKyBzdGF0ZT1maW5pc2hlZCByYWlzZWQgSU9FcnJvcj4nKQorICAgICAgICAgICAgICAgICc8RnV0dXJlIGF0IDB4WzAtOWEtZl0rIHN0YXRlPWZpbmlzaGVkIHJhaXNlZCBPU0Vycm9yPicpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXgoCiAgICAgICAgICAgICAgICAgcmVwcihTVUNDRVNTRlVMX0ZVVFVSRSksCiAgICAgICAgICAgICAgICAgJzxGdXR1cmUgYXQgMHhbMC05YS1mXSsgc3RhdGU9ZmluaXNoZWQgcmV0dXJuZWQgaW50PicpCkBAIC01MDksNyArNTM0LDcgQEAKICAgICAgICAgZjIgPSBjcmVhdGVfZnV0dXJlKHN0YXRlPVJVTk5JTkcpCiAgICAgICAgIGYzID0gY3JlYXRlX2Z1dHVyZShzdGF0ZT1DQU5DRUxMRUQpCiAgICAgICAgIGY0ID0gY3JlYXRlX2Z1dHVyZShzdGF0ZT1DQU5DRUxMRURfQU5EX05PVElGSUVEKQotICAgICAgICBmNSA9IGNyZWF0ZV9mdXR1cmUoc3RhdGU9RklOSVNIRUQsIGV4Y2VwdGlvbj1JT0Vycm9yKCkpCisgICAgICAgIGY1ID0gY3JlYXRlX2Z1dHVyZShzdGF0ZT1GSU5JU0hFRCwgZXhjZXB0aW9uPU9TRXJyb3IoKSkKICAgICAgICAgZjYgPSBjcmVhdGVfZnV0dXJlKHN0YXRlPUZJTklTSEVELCByZXN1bHQ9NSkKIAogICAgICAgICBzZWxmLmFzc2VydFRydWUoZjEuY2FuY2VsKCkpCkBAIC01NjMsNyArNTg4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FOQ0VMTEVEX0ZVVFVSRS5yZXN1bHQsIHRpbWVvdXQ9MCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZnV0dXJlcy5DYW5jZWxsZWRFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0FOQ0VMTEVEX0FORF9OT1RJRklFRF9GVVRVUkUucmVzdWx0LCB0aW1lb3V0PTApCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIEVYQ0VQVElPTl9GVVRVUkUucmVzdWx0LCB0aW1lb3V0PTApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIEVYQ0VQVElPTl9GVVRVUkUucmVzdWx0LCB0aW1lb3V0PTApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoU1VDQ0VTU0ZVTF9GVVRVUkUucmVzdWx0KHRpbWVvdXQ9MCksIDQyKQogCiAgICAgZGVmIHRlc3RfcmVzdWx0X3dpdGhfc3VjY2VzcyhzZWxmKToKQEAgLTYwMiw3ICs2MjcsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhmdXR1cmVzLkNhbmNlbGxlZEVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICBDQU5DRUxMRURfQU5EX05PVElGSUVEX0ZVVFVSRS5leGNlcHRpb24sIHRpbWVvdXQ9MCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoRVhDRVBUSU9OX0ZVVFVSRS5leGNlcHRpb24odGltZW91dD0wKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9FcnJvcikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9TRXJyb3IpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNVQ0NFU1NGVUxfRlVUVVJFLmV4Y2VwdGlvbih0aW1lb3V0PTApLCBOb25lKQogCiAgICAgZGVmIHRlc3RfZXhjZXB0aW9uX3dpdGhfc3VjY2VzcyhzZWxmKToKQEAgLTYxMSwxNCArNjM2LDE0IEBACiAgICAgICAgICAgICB0aW1lLnNsZWVwKDEpCiAgICAgICAgICAgICB3aXRoIGYxLl9jb25kaXRpb246CiAgICAgICAgICAgICAgICAgZjEuX3N0YXRlID0gRklOSVNIRUQKLSAgICAgICAgICAgICAgICBmMS5fZXhjZXB0aW9uID0gSU9FcnJvcigpCisgICAgICAgICAgICAgICAgZjEuX2V4Y2VwdGlvbiA9IE9TRXJyb3IoKQogICAgICAgICAgICAgICAgIGYxLl9jb25kaXRpb24ubm90aWZ5X2FsbCgpCiAKICAgICAgICAgZjEgPSBjcmVhdGVfZnV0dXJlKHN0YXRlPVBFTkRJTkcpCiAgICAgICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1ub3RpZmljYXRpb24pCiAgICAgICAgIHQuc3RhcnQoKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGYxLmV4Y2VwdGlvbih0aW1lb3V0PTUpLCBJT0Vycm9yKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoZjEuZXhjZXB0aW9uKHRpbWVvdXQ9NSksIE9TRXJyb3IpKQogCiBAdGVzdC5zdXBwb3J0LnJlYXBfdGhyZWFkcwogZGVmIHRlc3RfbWFpbigpOgpAQCAtNjMxLDcgKzY1Niw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkUG9vbEFzQ29tcGxldGVkVGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnV0dXJlVGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJvY2Vzc1Bvb2xTaHV0ZG93blRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkUG9vbFNodXRkb3duVGVzdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJlYWRQb29sU2h1dGRvd25UZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICBmaW5hbGx5OgogICAgICAgICB0ZXN0LnN1cHBvcnQucmVhcF9jaGlsZHJlbigpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY2ZncGFyc2VyLnB5IGIvTGliL3Rlc3QvdGVzdF9jb25maWdwYXJzZXIucHkKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVuYW1lIGZyb20gTGliL3Rlc3QvdGVzdF9jZmdwYXJzZXIucHkKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfY29uZmlncGFyc2VyLnB5CmluZGV4IGE2ZTkwNTAuLjhkODIxODIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY2ZncGFyc2VyLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY29uZmlncGFyc2VyLnB5CkBAIC0xNjE4LDYgKzE2MTgsNDIgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGUxKSwgcmVwcihlMikpCiAKIAorY2xhc3MgSW5saW5lQ29tbWVudFN0cmlwcGluZ1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0cyBmb3IgaXNzdWUgIzE0NTkwOiBDb25maWdQYXJzZXIgZG9lc24ndCBzdHJpcCBpbmxpbmUgY29tbWVudCB3aGVuCisgICAgZGVsaW1pdGVyIG9jY3VycyBlYXJsaWVyIHdpdGhvdXQgcHJlY2VkaW5nIHNwYWNlLi4iIiIKKworICAgIGRlZiB0ZXN0X3N0cmlwcGluZyhzZWxmKToKKyAgICAgICAgY2ZnID0gY29uZmlncGFyc2VyLkNvbmZpZ1BhcnNlcihpbmxpbmVfY29tbWVudF9wcmVmaXhlcz0oJzsnLCAnIycsCisgICAgICAgICAgICAgICAgJy8vJykpCisgICAgICAgIGNmZy5yZWFkX3N0cmluZygiIiIKKyAgICAgICAgW3NlY3Rpb25dCisgICAgICAgIGsxID0gdjE7c3RpbGwgdjEKKyAgICAgICAgazIgPSB2MiA7YSBjb21tZW50CisgICAgICAgIGszID0gdjMgOyBhbHNvIGEgY29tbWVudAorICAgICAgICBrNCA9IHY0O3N0aWxsIHY0IDthIGNvbW1lbnQKKyAgICAgICAgazUgPSB2NTtzdGlsbCB2NSA7IGFsc28gYSBjb21tZW50CisgICAgICAgIGs2ID0gdjY7c3RpbGwgdjY7IGFuZCBzdGlsbCB2NiA7YSBjb21tZW50CisgICAgICAgIGs3ID0gdjc7c3RpbGwgdjc7IGFuZCBzdGlsbCB2NyA7IGFsc28gYSBjb21tZW50CisKKyAgICAgICAgW211bHRpcHJlZml4XQorICAgICAgICBrMSA9IHYxO3N0aWxsIHYxICNhIGNvbW1lbnQgOyB5ZWFoLCBwcmV0dHkgbXVjaAorICAgICAgICBrMiA9IHYyIC8vIHRoaXMgYWxyZWFkeSBpcyBhIGNvbW1lbnQgOyBjb250aW51ZWQKKyAgICAgICAgazMgPSB2MzsjLy9zdGlsbCB2MyMgYW5kIHN0aWxsIHYzIDsgYSBjb21tZW50CisgICAgICAgICIiIikKKyAgICAgICAgcyA9IGNmZ1snc2VjdGlvbiddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc1snazEnXSwgJ3YxO3N0aWxsIHYxJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWydrMiddLCAndjInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNbJ2szJ10sICd2MycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc1snazQnXSwgJ3Y0O3N0aWxsIHY0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWydrNSddLCAndjU7c3RpbGwgdjUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNbJ2s2J10sICd2NjtzdGlsbCB2NjsgYW5kIHN0aWxsIHY2JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWydrNyddLCAndjc7c3RpbGwgdjc7IGFuZCBzdGlsbCB2NycpCisgICAgICAgIHMgPSBjZmdbJ211bHRpcHJlZml4J10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWydrMSddLCAndjE7c3RpbGwgdjEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNbJ2syJ10sICd2MicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc1snazMnXSwgJ3YzOyMvL3N0aWxsIHYzIyBhbmQgc3RpbGwgdjMnKQorCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgKICAgICAgICAgQ29uZmlnUGFyc2VyVGVzdENhc2UsCkBAIC0xNjQwLDQgKzE2NzYsNSBAQAogICAgICAgICBSZWFkRmlsZVRlc3RDYXNlLAogICAgICAgICBDb3ZlcmFnZU9uZUh1bmRyZWRUZXN0Q2FzZSwKICAgICAgICAgRXhjZXB0aW9uUGlja2xpbmdUZXN0Q2FzZSwKKyAgICAgICAgSW5saW5lQ29tbWVudFN0cmlwcGluZ1Rlc3RDYXNlLAogICAgICAgICApCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2NvbnRleHRsaWIucHkgYi9MaWIvdGVzdC90ZXN0X2NvbnRleHRsaWIucHkKaW5kZXggNmUzODMwNS4uZTUyZWQ5MSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jb250ZXh0bGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfY29udGV4dGxpYi5weQpAQCAtMzcwLDYgKzM3MCwyMzEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0ZSwgWzEsICdzb21ldGhpbmcgZWxzZScsIDk5OV0pCiAKIAorY2xhc3MgVGVzdEV4aXRTdGFjayh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9ub19yZXNvdXJjZXMoc2VsZik6CisgICAgICAgIHdpdGggRXhpdFN0YWNrKCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVzdF9jYWxsYmFjayhzZWxmKToKKyAgICAgICAgZXhwZWN0ZWQgPSBbCisgICAgICAgICAgICAoKCksIHt9KSwKKyAgICAgICAgICAgICgoMSwpLCB7fSksCisgICAgICAgICAgICAoKDEsMiksIHt9KSwKKyAgICAgICAgICAgICgoKSwgZGljdChleGFtcGxlPTEpKSwKKyAgICAgICAgICAgICgoMSwpLCBkaWN0KGV4YW1wbGU9MSkpLAorICAgICAgICAgICAgKCgxLDIpLCBkaWN0KGV4YW1wbGU9MSkpLAorICAgICAgICBdCisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGRlZiBfZXhpdCgqYXJncywgKiprd2RzKToKKyAgICAgICAgICAgICIiIlRlc3QgbWV0YWRhdGEgcHJvcGFnYXRpb24iIiIKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoKGFyZ3MsIGt3ZHMpKQorICAgICAgICB3aXRoIEV4aXRTdGFjaygpIGFzIHN0YWNrOgorICAgICAgICAgICAgZm9yIGFyZ3MsIGt3ZHMgaW4gcmV2ZXJzZWQoZXhwZWN0ZWQpOgorICAgICAgICAgICAgICAgIGlmIGFyZ3MgYW5kIGt3ZHM6CisgICAgICAgICAgICAgICAgICAgIGYgPSBzdGFjay5jYWxsYmFjayhfZXhpdCwgKmFyZ3MsICoqa3dkcykKKyAgICAgICAgICAgICAgICBlbGlmIGFyZ3M6CisgICAgICAgICAgICAgICAgICAgIGYgPSBzdGFjay5jYWxsYmFjayhfZXhpdCwgKmFyZ3MpCisgICAgICAgICAgICAgICAgZWxpZiBrd2RzOgorICAgICAgICAgICAgICAgICAgICBmID0gc3RhY2suY2FsbGJhY2soX2V4aXQsICoqa3dkcykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmID0gc3RhY2suY2FsbGJhY2soX2V4aXQpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhmLCBfZXhpdCkKKyAgICAgICAgICAgIGZvciB3cmFwcGVyIGluIHN0YWNrLl9leGl0X2NhbGxiYWNrczoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzKHdyYXBwZXIuX193cmFwcGVkX18sIF9leGl0KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwod3JhcHBlci5fX25hbWVfXywgX2V4aXQuX19uYW1lX18pCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUod3JhcHBlci5fX2RvY19fLCBfZXhpdC5fX2RvY19fKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF9wdXNoKHNlbGYpOgorICAgICAgICBleGNfcmFpc2VkID0gWmVyb0RpdmlzaW9uRXJyb3IKKyAgICAgICAgZGVmIF9leHBlY3RfZXhjKGV4Y190eXBlLCBleGMsIGV4Y190Yik6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzKGV4Y190eXBlLCBleGNfcmFpc2VkKQorICAgICAgICBkZWYgX3N1cHByZXNzX2V4YygqZXhjX2RldGFpbHMpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZGVmIF9leHBlY3Rfb2soZXhjX3R5cGUsIGV4YywgZXhjX3RiKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGV4Y190eXBlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZXhjKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZXhjX3RiKQorICAgICAgICBjbGFzcyBFeGl0Q00ob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGVja19leGMpOgorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfZXhjID0gY2hlY2tfZXhjCisgICAgICAgICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiU2hvdWxkIG5vdCBiZSBjYWxsZWQhIikKKyAgICAgICAgICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjX2RldGFpbHMpOgorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tfZXhjKCpleGNfZGV0YWlscykKKyAgICAgICAgd2l0aCBFeGl0U3RhY2soKSBhcyBzdGFjazoKKyAgICAgICAgICAgIHN0YWNrLnB1c2goX2V4cGVjdF9vaykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoc3RhY2suX2V4aXRfY2FsbGJhY2tzWy0xXSwgX2V4cGVjdF9vaykKKyAgICAgICAgICAgIGNtID0gRXhpdENNKF9leHBlY3Rfb2spCisgICAgICAgICAgICBzdGFjay5wdXNoKGNtKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhzdGFjay5fZXhpdF9jYWxsYmFja3NbLTFdLl9fc2VsZl9fLCBjbSkKKyAgICAgICAgICAgIHN0YWNrLnB1c2goX3N1cHByZXNzX2V4YykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoc3RhY2suX2V4aXRfY2FsbGJhY2tzWy0xXSwgX3N1cHByZXNzX2V4YykKKyAgICAgICAgICAgIGNtID0gRXhpdENNKF9leHBlY3RfZXhjKQorICAgICAgICAgICAgc3RhY2sucHVzaChjbSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoc3RhY2suX2V4aXRfY2FsbGJhY2tzWy0xXS5fX3NlbGZfXywgY20pCisgICAgICAgICAgICBzdGFjay5wdXNoKF9leHBlY3RfZXhjKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhzdGFjay5fZXhpdF9jYWxsYmFja3NbLTFdLCBfZXhwZWN0X2V4YykKKyAgICAgICAgICAgIHN0YWNrLnB1c2goX2V4cGVjdF9leGMpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHN0YWNrLl9leGl0X2NhbGxiYWNrc1stMV0sIF9leHBlY3RfZXhjKQorICAgICAgICAgICAgMS8wCisKKyAgICBkZWYgdGVzdF9lbnRlcl9jb250ZXh0KHNlbGYpOgorICAgICAgICBjbGFzcyBUZXN0Q00ob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgxKQorICAgICAgICAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICpleGNfZGV0YWlscyk6CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgzKQorCisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGNtID0gVGVzdENNKCkKKyAgICAgICAgd2l0aCBFeGl0U3RhY2soKSBhcyBzdGFjazoKKyAgICAgICAgICAgIEBzdGFjay5jYWxsYmFjayAgIyBSZWdpc3RlcmVkIGZpcnN0ID0+IGNsZWFuZWQgdXAgbGFzdAorICAgICAgICAgICAgZGVmIF9leGl0KCk6CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCg0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUoX2V4aXQpCisgICAgICAgICAgICBzdGFjay5lbnRlcl9jb250ZXh0KGNtKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhzdGFjay5fZXhpdF9jYWxsYmFja3NbLTFdLl9fc2VsZl9fLCBjbSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsIFsxLCAyLCAzLCA0XSkKKworICAgIGRlZiB0ZXN0X2Nsb3NlKHNlbGYpOgorICAgICAgICByZXN1bHQgPSBbXQorICAgICAgICB3aXRoIEV4aXRTdGFjaygpIGFzIHN0YWNrOgorICAgICAgICAgICAgQHN0YWNrLmNhbGxiYWNrCisgICAgICAgICAgICBkZWYgX2V4aXQoKToKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShfZXhpdCkKKyAgICAgICAgICAgIHN0YWNrLmNsb3NlKCkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsIFsxLCAyXSkKKworICAgIGRlZiB0ZXN0X3BvcF9hbGwoc2VsZik6CisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIHdpdGggRXhpdFN0YWNrKCkgYXMgc3RhY2s6CisgICAgICAgICAgICBAc3RhY2suY2FsbGJhY2sKKyAgICAgICAgICAgIGRlZiBfZXhpdCgpOgorICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoMykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKF9leGl0KQorICAgICAgICAgICAgbmV3X3N0YWNrID0gc3RhY2sucG9wX2FsbCgpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKDEpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoMikKKyAgICAgICAgbmV3X3N0YWNrLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsIFsxLCAyLCAzXSkKKworICAgIGRlZiB0ZXN0X2V4aXRfcmFpc2Uoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgorICAgICAgICAgICAgd2l0aCBFeGl0U3RhY2soKSBhcyBzdGFjazoKKyAgICAgICAgICAgICAgICBzdGFjay5wdXNoKGxhbWJkYSAqZXhjOiBGYWxzZSkKKyAgICAgICAgICAgICAgICAxLzAKKworICAgIGRlZiB0ZXN0X2V4aXRfc3VwcHJlc3Moc2VsZik6CisgICAgICAgIHdpdGggRXhpdFN0YWNrKCkgYXMgc3RhY2s6CisgICAgICAgICAgICBzdGFjay5wdXNoKGxhbWJkYSAqZXhjOiBUcnVlKQorICAgICAgICAgICAgMS8wCisKKyAgICBkZWYgdGVzdF9leGl0X2V4Y2VwdGlvbl9jaGFpbmluZ19yZWZlcmVuY2Uoc2VsZik6CisgICAgICAgICMgU2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IEV4aXRTdGFjayBjaGFpbmluZyBtYXRjaGVzCisgICAgICAgICMgYWN0dWFsIG5lc3RlZCB3aXRoIHN0YXRlbWVudHMKKyAgICAgICAgY2xhc3MgUmFpc2VFeGM6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhjKToKKyAgICAgICAgICAgICAgICBzZWxmLmV4YyA9IGV4YworICAgICAgICAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICpleGNfZGV0YWlscyk6CisgICAgICAgICAgICAgICAgcmFpc2Ugc2VsZi5leGMKKworICAgICAgICBjbGFzcyBSYWlzZUV4Y1dpdGhDb250ZXh0OgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG91dGVyLCBpbm5lcik6CisgICAgICAgICAgICAgICAgc2VsZi5vdXRlciA9IG91dGVyCisgICAgICAgICAgICAgICAgc2VsZi5pbm5lciA9IGlubmVyCisgICAgICAgICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4Y19kZXRhaWxzKToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYuaW5uZXIKKyAgICAgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIHNlbGYub3V0ZXIKKworICAgICAgICBjbGFzcyBTdXBwcmVzc0V4YzoKKyAgICAgICAgICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjX2RldGFpbHMpOgorICAgICAgICAgICAgICAgIHR5cGUoc2VsZikuc2F2ZWRfZGV0YWlscyA9IGV4Y19kZXRhaWxzCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIFJhaXNlRXhjKEluZGV4RXJyb3IpOgorICAgICAgICAgICAgICAgIHdpdGggUmFpc2VFeGNXaXRoQ29udGV4dChLZXlFcnJvciwgQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgICAgICAgICB3aXRoIFN1cHByZXNzRXhjKCk6CisgICAgICAgICAgICAgICAgICAgICAgICB3aXRoIFJhaXNlRXhjKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgLyAwCisgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yIGFzIGV4YzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShleGMuX19jb250ZXh0X18sIEtleUVycm9yKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGV4Yy5fX2NvbnRleHRfXy5fX2NvbnRleHRfXywgQXR0cmlidXRlRXJyb3IpCisgICAgICAgICAgICAjIElubmVyIGV4Y2VwdGlvbnMgd2VyZSBzdXBwcmVzc2VkCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShleGMuX19jb250ZXh0X18uX19jb250ZXh0X18uX19jb250ZXh0X18pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoIkV4cGVjdGVkIEluZGV4RXJyb3IsIGJ1dCBubyBleGNlcHRpb24gd2FzIHJhaXNlZCIpCisgICAgICAgICMgQ2hlY2sgdGhlIGlubmVyIGV4Y2VwdGlvbnMKKyAgICAgICAgaW5uZXJfZXhjID0gU3VwcHJlc3NFeGMuc2F2ZWRfZGV0YWlsc1sxXQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaW5uZXJfZXhjLCBWYWx1ZUVycm9yKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaW5uZXJfZXhjLl9fY29udGV4dF9fLCBaZXJvRGl2aXNpb25FcnJvcikKKworICAgIGRlZiB0ZXN0X2V4aXRfZXhjZXB0aW9uX2NoYWluaW5nKHNlbGYpOgorICAgICAgICAjIEVuc3VyZSBleGNlcHRpb24gY2hhaW5pbmcgbWF0Y2hlcyB0aGUgcmVmZXJlbmNlIGJlaGF2aW91cgorICAgICAgICBkZWYgcmFpc2VfZXhjKGV4Yyk6CisgICAgICAgICAgICByYWlzZSBleGMKKworICAgICAgICBzYXZlZF9kZXRhaWxzID0gTm9uZQorICAgICAgICBkZWYgc3VwcHJlc3NfZXhjKCpleGNfZGV0YWlscyk6CisgICAgICAgICAgICBub25sb2NhbCBzYXZlZF9kZXRhaWxzCisgICAgICAgICAgICBzYXZlZF9kZXRhaWxzID0gZXhjX2RldGFpbHMKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBFeGl0U3RhY2soKSBhcyBzdGFjazoKKyAgICAgICAgICAgICAgICBzdGFjay5jYWxsYmFjayhyYWlzZV9leGMsIEluZGV4RXJyb3IpCisgICAgICAgICAgICAgICAgc3RhY2suY2FsbGJhY2socmFpc2VfZXhjLCBLZXlFcnJvcikKKyAgICAgICAgICAgICAgICBzdGFjay5jYWxsYmFjayhyYWlzZV9leGMsIEF0dHJpYnV0ZUVycm9yKQorICAgICAgICAgICAgICAgIHN0YWNrLnB1c2goc3VwcHJlc3NfZXhjKQorICAgICAgICAgICAgICAgIHN0YWNrLmNhbGxiYWNrKHJhaXNlX2V4YywgVmFsdWVFcnJvcikKKyAgICAgICAgICAgICAgICAxIC8gMAorICAgICAgICBleGNlcHQgSW5kZXhFcnJvciBhcyBleGM6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZXhjLl9fY29udGV4dF9fLCBLZXlFcnJvcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShleGMuX19jb250ZXh0X18uX19jb250ZXh0X18sIEF0dHJpYnV0ZUVycm9yKQorICAgICAgICAgICAgIyBJbm5lciBleGNlcHRpb25zIHdlcmUgc3VwcHJlc3NlZAorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZXhjLl9fY29udGV4dF9fLl9fY29udGV4dF9fLl9fY29udGV4dF9fKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCJFeHBlY3RlZCBJbmRleEVycm9yLCBidXQgbm8gZXhjZXB0aW9uIHdhcyByYWlzZWQiKQorICAgICAgICAjIENoZWNrIHRoZSBpbm5lciBleGNlcHRpb25zCisgICAgICAgIGlubmVyX2V4YyA9IHNhdmVkX2RldGFpbHNbMV0KKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGlubmVyX2V4YywgVmFsdWVFcnJvcikKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGlubmVyX2V4Yy5fX2NvbnRleHRfXywgWmVyb0RpdmlzaW9uRXJyb3IpCisKKyAgICBkZWYgdGVzdF9leGl0X2V4Y2VwdGlvbl9jaGFpbmluZ19zdXBwcmVzcyhzZWxmKToKKyAgICAgICAgd2l0aCBFeGl0U3RhY2soKSBhcyBzdGFjazoKKyAgICAgICAgICAgIHN0YWNrLnB1c2gobGFtYmRhICpleGM6IFRydWUpCisgICAgICAgICAgICBzdGFjay5wdXNoKGxhbWJkYSAqZXhjOiAxLzApCisgICAgICAgICAgICBzdGFjay5wdXNoKGxhbWJkYSAqZXhjOiB7fVsxXSkKKworICAgIGRlZiB0ZXN0X2V4Y2Vzc2l2ZV9uZXN0aW5nKHNlbGYpOgorICAgICAgICAjIFRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiB3b3VsZCBkaWUgd2l0aCBSZWN1cnNpb25FcnJvciBoZXJlCisgICAgICAgIHdpdGggRXhpdFN0YWNrKCkgYXMgc3RhY2s6CisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgxMDAwMCk6CisgICAgICAgICAgICAgICAgc3RhY2suY2FsbGJhY2soaW50KQorCisgICAgZGVmIHRlc3RfaW5zdGFuY2VfYnlwYXNzKHNlbGYpOgorICAgICAgICBjbGFzcyBFeGFtcGxlKG9iamVjdCk6IHBhc3MKKyAgICAgICAgY20gPSBFeGFtcGxlKCkKKyAgICAgICAgY20uX19leGl0X18gPSBvYmplY3QoKQorICAgICAgICBzdGFjayA9IEV4aXRTdGFjaygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBzdGFjay5lbnRlcl9jb250ZXh0LCBjbSkKKyAgICAgICAgc3RhY2sucHVzaChjbSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhzdGFjay5fZXhpdF9jYWxsYmFja3NbLTFdLCBjbSkKKworCiAjIFRoaXMgaXMgbmVlZGVkIHRvIG1ha2UgdGhlIHRlc3QgYWN0dWFsbHkgcnVuIHVuZGVyIHJlZ3J0ZXN0LnB5IQogZGVmIHRlc3RfbWFpbigpOgogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KF9fbmFtZV9fKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jb3B5LnB5IGIvTGliL3Rlc3QvdGVzdF9jb3B5LnB5CmluZGV4IGE4NGMxMDkuLmM0YmFhZTQgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY29weS5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NvcHkucHkKQEAgLTE3LDcgKzE3LDcgQEAKICAgICAjIEF0dGVtcHQgZnVsbCBsaW5lIGNvdmVyYWdlIG9mIGNvcHkucHkgZnJvbSB0b3AgdG8gYm90dG9tCiAKICAgICBkZWYgdGVzdF9leGNlcHRpb25zKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFRydWUoY29weS5FcnJvciBpcyBjb3B5LmVycm9yKQorICAgICAgICBzZWxmLmFzc2VydElzKGNvcHkuRXJyb3IsIGNvcHkuZXJyb3IpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKGNvcHkuRXJyb3IsIEV4Y2VwdGlvbikpCiAKICAgICAjIFRoZSBjb3B5KCkgbWV0aG9kCkBAIC01NCwyMCArNTQsMjYgQEAKICAgICBkZWYgdGVzdF9jb3B5X3JlZHVjZV9leChzZWxmKToKICAgICAgICAgY2xhc3MgQyhvYmplY3QpOgogICAgICAgICAgICAgZGVmIF9fcmVkdWNlX2V4X18oc2VsZiwgcHJvdG8pOgorICAgICAgICAgICAgICAgIGMuYXBwZW5kKDEpCiAgICAgICAgICAgICAgICAgcmV0dXJuICIiCiAgICAgICAgICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKLSAgICAgICAgICAgICAgICByYWlzZSBzdXBwb3J0LlRlc3RGYWlsZWQoInNob3VsZG4ndCBjYWxsIHRoaXMiKQorICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgic2hvdWxkbid0IGNhbGwgdGhpcyIpCisgICAgICAgIGMgPSBbXQogICAgICAgICB4ID0gQygpCiAgICAgICAgIHkgPSBjb3B5LmNvcHkoeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkgaXMgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh5LCB4KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMsIFsxXSkKIAogICAgIGRlZiB0ZXN0X2NvcHlfcmVkdWNlKHNlbGYpOgogICAgICAgICBjbGFzcyBDKG9iamVjdCk6CiAgICAgICAgICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKKyAgICAgICAgICAgICAgICBjLmFwcGVuZCgxKQogICAgICAgICAgICAgICAgIHJldHVybiAiIgorICAgICAgICBjID0gW10KICAgICAgICAgeCA9IEMoKQogICAgICAgICB5ID0gY29weS5jb3B5KHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5IGlzIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoeSwgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLCBbMV0pCiAKICAgICBkZWYgdGVzdF9jb3B5X2NhbnQoc2VsZik6CiAgICAgICAgIGNsYXNzIEMob2JqZWN0KToKQEAgLTkxLDcgKzk3LDcgQEAKICAgICAgICAgICAgICAgICAgImhlbGxvIiwgImhlbGxvXHUxMjM0IiwgZi5fX2NvZGVfXywKICAgICAgICAgICAgICAgICAgTmV3U3R5bGUsIHJhbmdlKDEwKSwgQ2xhc3NpYywgbWF4XQogICAgICAgICBmb3IgeCBpbiB0ZXN0czoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb3B5LmNvcHkoeCkgaXMgeCwgcmVwcih4KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoY29weS5jb3B5KHgpLCB4KQogCiAgICAgZGVmIHRlc3RfY29weV9saXN0KHNlbGYpOgogICAgICAgICB4ID0gWzEsIDIsIDNdCkBAIC0xODUsOSArMTkxLDkgQEAKICAgICAgICAgeCA9IFt4LCB4XQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5IGlzIG5vdCB4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeVswXSBpcyBub3QgeFswXSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHlbMF0gaXMgeVsxXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh5LCB4KQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHlbMF0sIHhbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoeVswXSwgeVsxXSkKIAogICAgIGRlZiB0ZXN0X2RlZXBjb3B5X2lzc3ViY2xhc3Moc2VsZik6CiAgICAgICAgICMgWFhYIE5vdGU6IHRoZXJlJ3Mgbm8gd2F5IHRvIHRlc3QgdGhlIFR5cGVFcnJvciBjb21pbmcgb3V0IG9mCkBAIC0yMjcsMjAgKzIzMywyNiBAQAogICAgIGRlZiB0ZXN0X2RlZXBjb3B5X3JlZHVjZV9leChzZWxmKToKICAgICAgICAgY2xhc3MgQyhvYmplY3QpOgogICAgICAgICAgICAgZGVmIF9fcmVkdWNlX2V4X18oc2VsZiwgcHJvdG8pOgorICAgICAgICAgICAgICAgIGMuYXBwZW5kKDEpCiAgICAgICAgICAgICAgICAgcmV0dXJuICIiCiAgICAgICAgICAgICBkZWYgX19yZWR1Y2VfXyhzZWxmKToKLSAgICAgICAgICAgICAgICByYWlzZSBzdXBwb3J0LlRlc3RGYWlsZWQoInNob3VsZG4ndCBjYWxsIHRoaXMiKQorICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgic2hvdWxkbid0IGNhbGwgdGhpcyIpCisgICAgICAgIGMgPSBbXQogICAgICAgICB4ID0gQygpCiAgICAgICAgIHkgPSBjb3B5LmRlZXBjb3B5KHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5IGlzIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoeSwgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLCBbMV0pCiAKICAgICBkZWYgdGVzdF9kZWVwY29weV9yZWR1Y2Uoc2VsZik6CiAgICAgICAgIGNsYXNzIEMob2JqZWN0KToKICAgICAgICAgICAgIGRlZiBfX3JlZHVjZV9fKHNlbGYpOgorICAgICAgICAgICAgICAgIGMuYXBwZW5kKDEpCiAgICAgICAgICAgICAgICAgcmV0dXJuICIiCisgICAgICAgIGMgPSBbXQogICAgICAgICB4ID0gQygpCiAgICAgICAgIHkgPSBjb3B5LmRlZXBjb3B5KHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5IGlzIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoeSwgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLCBbMV0pCiAKICAgICBkZWYgdGVzdF9kZWVwY29weV9jYW50KHNlbGYpOgogICAgICAgICBjbGFzcyBDKG9iamVjdCk6CkBAIC0yNjQsMTQgKzI3NiwxNCBAQAogICAgICAgICAgICAgICAgICAiaGVsbG8iLCAiaGVsbG9cdTEyMzQiLCBmLl9fY29kZV9fLAogICAgICAgICAgICAgICAgICBOZXdTdHlsZSwgcmFuZ2UoMTApLCBDbGFzc2ljLCBtYXhdCiAgICAgICAgIGZvciB4IGluIHRlc3RzOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNvcHkuZGVlcGNvcHkoeCkgaXMgeCwgcmVwcih4KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoY29weS5kZWVwY29weSh4KSwgeCkKIAogICAgIGRlZiB0ZXN0X2RlZXBjb3B5X2xpc3Qoc2VsZik6CiAgICAgICAgIHggPSBbWzEsIDJdLCAzXQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh4IGlzIG5vdCB5KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeFswXSBpcyBub3QgeVswXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh4LCB5KQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHhbMF0sIHlbMF0pCiAKICAgICBkZWYgdGVzdF9kZWVwY29weV9yZWZsZXhpdmVfbGlzdChzZWxmKToKICAgICAgICAgeCA9IFtdCkBAIC0yNzksMTYgKzI5MSwyNiBAQAogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBmb3Igb3AgaW4gY29tcGFyaXNvbnM6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIG9wLCB5LCB4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeSBpcyBub3QgeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHlbMF0gaXMgeSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh5LCB4KQorICAgICAgICBzZWxmLmFzc2VydElzKHlbMF0sIHkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHkpLCAxKQogCisgICAgZGVmIHRlc3RfZGVlcGNvcHlfZW1wdHlfdHVwbGUoc2VsZik6CisgICAgICAgIHggPSAoKQorICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQorICAgICAgICBzZWxmLmFzc2VydElzKHgsIHkpCisKICAgICBkZWYgdGVzdF9kZWVwY29weV90dXBsZShzZWxmKToKICAgICAgICAgeCA9IChbMSwgMl0sIDMpCiAgICAgICAgIHkgPSBjb3B5LmRlZXBjb3B5KHgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeSwgeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHggaXMgbm90IHkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh4WzBdIGlzIG5vdCB5WzBdKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHgsIHkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeFswXSwgeVswXSkKKworICAgIGRlZiB0ZXN0X2RlZXBjb3B5X3R1cGxlX29mX2ltbXV0YWJsZXMoc2VsZik6CisgICAgICAgIHggPSAoKDEsIDIpLCAzKQorICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQorICAgICAgICBzZWxmLmFzc2VydElzKHgsIHkpCiAKICAgICBkZWYgdGVzdF9kZWVwY29weV9yZWZsZXhpdmVfdHVwbGUoc2VsZik6CiAgICAgICAgIHggPSAoW10sKQpAQCAtMjk2LDE2ICszMTgsMTYgQEAKICAgICAgICAgeSA9IGNvcHkuZGVlcGNvcHkoeCkKICAgICAgICAgZm9yIG9wIGluIGNvbXBhcmlzb25zOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBvcCwgeSwgeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkgaXMgbm90IHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5WzBdIGlzIG5vdCB4WzBdKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeVswXVswXSBpcyB5KQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHksIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeVswXSwgeFswXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh5WzBdWzBdLCB5KQogCiAgICAgZGVmIHRlc3RfZGVlcGNvcHlfZGljdChzZWxmKToKICAgICAgICAgeCA9IHsiZm9vIjogWzEsIDJdLCAiYmFyIjogM30KICAgICAgICAgeSA9IGNvcHkuZGVlcGNvcHkoeCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh5LCB4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeCBpcyBub3QgeSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHhbImZvbyJdIGlzIG5vdCB5WyJmb28iXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh4LCB5KQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHhbImZvbyJdLCB5WyJmb28iXSkKIAogICAgIGRlZiB0ZXN0X2RlZXBjb3B5X3JlZmxleGl2ZV9kaWN0KHNlbGYpOgogICAgICAgICB4ID0ge30KQEAgLTMxNSwxNSArMzM3LDMwIEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wLCB5LCB4KQogICAgICAgICBmb3Igb3AgaW4gZXF1YWxpdHlfY29tcGFyaXNvbnM6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIG9wLCB5LCB4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeSBpcyBub3QgeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHlbJ2ZvbyddIGlzIHkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeSwgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh5Wydmb28nXSwgeSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oeSksIDEpCiAKICAgICBkZWYgdGVzdF9kZWVwY29weV9rZWVwYWxpdmUoc2VsZik6CiAgICAgICAgIG1lbW8gPSB7fQotICAgICAgICB4ID0gNDIKKyAgICAgICAgeCA9IFtdCiAgICAgICAgIHkgPSBjb3B5LmRlZXBjb3B5KHgsIG1lbW8pCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtZW1vW2lkKHgpXSBpcyB4KQorICAgICAgICBzZWxmLmFzc2VydElzKG1lbW9baWQobWVtbyldWzBdLCB4KQorCisgICAgZGVmIHRlc3RfZGVlcGNvcHlfZG9udF9tZW1vX2ltbXV0YWJsZShzZWxmKToKKyAgICAgICAgbWVtbyA9IHt9CisgICAgICAgIHggPSBbMSwgMiwgMywgNF0KKyAgICAgICAgeSA9IGNvcHkuZGVlcGNvcHkoeCwgbWVtbykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh5LCB4KQorICAgICAgICAjIFRoZXJlJ3MgdGhlIGVudHJ5IGZvciB0aGUgbmV3IGxpc3QsIGFuZCB0aGUga2VlcCBhbGl2ZS4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obWVtbyksIDIpCisKKyAgICAgICAgbWVtbyA9IHt9CisgICAgICAgIHggPSBbKDEsIDIpXQorICAgICAgICB5ID0gY29weS5kZWVwY29weSh4LCBtZW1vKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCisgICAgICAgICMgVHVwbGVzIHdpdGggaW1tdXRhYmxlIGNvbnRlbnRzIGFyZSBpbW11dGFibGUgZm9yIGRlZXBjb3B5LgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihtZW1vKSwgMikKIAogICAgIGRlZiB0ZXN0X2RlZXBjb3B5X2luc3RfdmFuaWxsYShzZWxmKToKICAgICAgICAgY2xhc3MgQzoKQEAgLTMzNCw3ICszNzEsNyBAQAogICAgICAgICB4ID0gQyhbNDJdKQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5LmZvbyBpcyBub3QgeC5mb28pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeS5mb28sIHguZm9vKQogCiAgICAgZGVmIHRlc3RfZGVlcGNvcHlfaW5zdF9kZWVwY29weShzZWxmKToKICAgICAgICAgY2xhc3MgQzoKQEAgLTM0Nyw4ICszODQsOCBAQAogICAgICAgICB4ID0gQyhbNDJdKQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5IGlzIG5vdCB4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeS5mb28gaXMgbm90IHguZm9vKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHksIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeS5mb28sIHguZm9vKQogCiAgICAgZGVmIHRlc3RfZGVlcGNvcHlfaW5zdF9nZXRpbml0YXJncyhzZWxmKToKICAgICAgICAgY2xhc3MgQzoKQEAgLTM2MSw4ICszOTgsOCBAQAogICAgICAgICB4ID0gQyhbNDJdKQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5IGlzIG5vdCB4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeS5mb28gaXMgbm90IHguZm9vKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHksIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeS5mb28sIHguZm9vKQogCiAgICAgZGVmIHRlc3RfZGVlcGNvcHlfaW5zdF9nZXRzdGF0ZShzZWxmKToKICAgICAgICAgY2xhc3MgQzoKQEAgLTM3NSw4ICs0MTIsOCBAQAogICAgICAgICB4ID0gQyhbNDJdKQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5IGlzIG5vdCB4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeS5mb28gaXMgbm90IHguZm9vKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHksIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeS5mb28sIHguZm9vKQogCiAgICAgZGVmIHRlc3RfZGVlcGNvcHlfaW5zdF9zZXRzdGF0ZShzZWxmKToKICAgICAgICAgY2xhc3MgQzoKQEAgLTM4OSw4ICs0MjYsOCBAQAogICAgICAgICB4ID0gQyhbNDJdKQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5IGlzIG5vdCB4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeS5mb28gaXMgbm90IHguZm9vKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHksIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeS5mb28sIHguZm9vKQogCiAgICAgZGVmIHRlc3RfZGVlcGNvcHlfaW5zdF9nZXRzdGF0ZV9zZXRzdGF0ZShzZWxmKToKICAgICAgICAgY2xhc3MgQzoKQEAgLTQwNSw4ICs0NDIsOCBAQAogICAgICAgICB4ID0gQyhbNDJdKQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5IGlzIG5vdCB4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeS5mb28gaXMgbm90IHguZm9vKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHksIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeS5mb28sIHguZm9vKQogCiAgICAgZGVmIHRlc3RfZGVlcGNvcHlfcmVmbGV4aXZlX2luc3Qoc2VsZik6CiAgICAgICAgIGNsYXNzIEM6CkBAIC00MTQsOCArNDUxLDggQEAKICAgICAgICAgeCA9IEMoKQogICAgICAgICB4LmZvbyA9IHgKICAgICAgICAgeSA9IGNvcHkuZGVlcGNvcHkoeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkgaXMgbm90IHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5LmZvbyBpcyB5KQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHksIHgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoeS5mb28sIHkpCiAKICAgICAjIF9yZWNvbnN0cnVjdCgpCiAKQEAgLTQyNSw5ICs0NjIsOSBAQAogICAgICAgICAgICAgICAgIHJldHVybiAiIgogICAgICAgICB4ID0gQygpCiAgICAgICAgIHkgPSBjb3B5LmNvcHkoeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkgaXMgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh5LCB4KQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeSBpcyB4KQorICAgICAgICBzZWxmLmFzc2VydElzKHksIHgpCiAKICAgICBkZWYgdGVzdF9yZWNvbnN0cnVjdF9ub3N0YXRlKHNlbGYpOgogICAgICAgICBjbGFzcyBDKG9iamVjdCk6CkBAIC00MzYsOSArNDczLDkgQEAKICAgICAgICAgeCA9IEMoKQogICAgICAgICB4LmZvbyA9IDQyCiAgICAgICAgIHkgPSBjb3B5LmNvcHkoeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkuX19jbGFzc19fIGlzIHguX19jbGFzc19fKQorICAgICAgICBzZWxmLmFzc2VydElzKHkuX19jbGFzc19fLCB4Ll9fY2xhc3NfXykKICAgICAgICAgeSA9IGNvcHkuZGVlcGNvcHkoeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkuX19jbGFzc19fIGlzIHguX19jbGFzc19fKQorICAgICAgICBzZWxmLmFzc2VydElzKHkuX19jbGFzc19fLCB4Ll9fY2xhc3NfXykKIAogICAgIGRlZiB0ZXN0X3JlY29uc3RydWN0X3N0YXRlKHNlbGYpOgogICAgICAgICBjbGFzcyBDKG9iamVjdCk6CkBAIC00NTIsNyArNDg5LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh5LCB4KQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh5LmZvbyBpcyBub3QgeC5mb28pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeS5mb28sIHguZm9vKQogCiAgICAgZGVmIHRlc3RfcmVjb25zdHJ1Y3Rfc3RhdGVfc2V0c3RhdGUoc2VsZik6CiAgICAgICAgIGNsYXNzIEMob2JqZWN0KToKQEAgLTQ2OCw3ICs1MDUsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIHgpCiAgICAgICAgIHkgPSBjb3B5LmRlZXBjb3B5KHgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeSwgeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkuZm9vIGlzIG5vdCB4LmZvbykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh5LmZvbywgeC5mb28pCiAKICAgICBkZWYgdGVzdF9yZWNvbnN0cnVjdF9yZWZsZXhpdmUoc2VsZik6CiAgICAgICAgIGNsYXNzIEMob2JqZWN0KToKQEAgLTQ3Niw4ICs1MTMsOCBAQAogICAgICAgICB4ID0gQygpCiAgICAgICAgIHguZm9vID0geAogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeSBpcyBub3QgeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkuZm9vIGlzIHkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeSwgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh5LmZvbywgeSkKIAogICAgICMgQWRkaXRpb25zIGZvciBQeXRob24gMi4zIGFuZCBwaWNrbGUgcHJvdG9jb2wgMgogCkBAIC00OTEsMTIgKzUyOCwxMiBAQAogICAgICAgICB4ID0gQyhbWzEsIDJdLCAzXSkKICAgICAgICAgeSA9IGNvcHkuY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIHkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh4IGlzIG5vdCB5KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeFswXSBpcyB5WzBdKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHgsIHkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoeFswXSwgeVswXSkKICAgICAgICAgeSA9IGNvcHkuZGVlcGNvcHkoeCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCB5KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeCBpcyBub3QgeSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHhbMF0gaXMgbm90IHlbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeCwgeSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh4WzBdLCB5WzBdKQogCiAgICAgZGVmIHRlc3RfcmVkdWNlXzV0dXBsZShzZWxmKToKICAgICAgICAgY2xhc3MgQyhkaWN0KToKQEAgLTUwOCwxMiArNTQ1LDEyIEBACiAgICAgICAgIHggPSBDKFsoImZvbyIsIFsxLCAyXSksICgiYmFyIiwgMyldKQogICAgICAgICB5ID0gY29weS5jb3B5KHgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeCwgeSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHggaXMgbm90IHkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh4WyJmb28iXSBpcyB5WyJmb28iXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh4LCB5KQorICAgICAgICBzZWxmLmFzc2VydElzKHhbImZvbyJdLCB5WyJmb28iXSkKICAgICAgICAgeSA9IGNvcHkuZGVlcGNvcHkoeCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCB5KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeCBpcyBub3QgeSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHhbImZvbyJdIGlzIG5vdCB5WyJmb28iXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh4LCB5KQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHhbImZvbyJdLCB5WyJmb28iXSkKIAogICAgIGRlZiB0ZXN0X2NvcHlfc2xvdHMoc2VsZik6CiAgICAgICAgIGNsYXNzIEMob2JqZWN0KToKQEAgLTUyMSw3ICs1NTgsNyBAQAogICAgICAgICB4ID0gQygpCiAgICAgICAgIHguZm9vID0gWzQyXQogICAgICAgICB5ID0gY29weS5jb3B5KHgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh4LmZvbyBpcyB5LmZvbykKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh4LmZvbywgeS5mb28pCiAKICAgICBkZWYgdGVzdF9kZWVwY29weV9zbG90cyhzZWxmKToKICAgICAgICAgY2xhc3MgQyhvYmplY3QpOgpAQCAtNTMwLDcgKzU2Nyw3IEBACiAgICAgICAgIHguZm9vID0gWzQyXQogICAgICAgICB5ID0gY29weS5kZWVwY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHguZm9vLCB5LmZvbykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHguZm9vIGlzIG5vdCB5LmZvbykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh4LmZvbywgeS5mb28pCiAKICAgICBkZWYgdGVzdF9kZWVwY29weV9kaWN0X3N1YmNsYXNzKHNlbGYpOgogICAgICAgICBjbGFzcyBDKGRpY3QpOgpAQCAtNTQ3LDcgKzU4NCw3IEBACiAgICAgICAgIHkgPSBjb3B5LmRlZXBjb3B5KHgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeCwgeSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4Ll9rZXlzLCB5Ll9rZXlzKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeCBpcyBub3QgeSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh4LCB5KQogICAgICAgICB4WydiYXInXSA9IDEKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh4LCB5KQogICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHguX2tleXMsIHkuX2tleXMpCkBAIC01NjAsOCArNTk3LDggQEAKICAgICAgICAgeSA9IGNvcHkuY29weSh4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoeCksIGxpc3QoeSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC5mb28sIHkuZm9vKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeFswXSBpcyB5WzBdKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeC5mb28gaXMgeS5mb28pCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoeFswXSwgeVswXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh4LmZvbywgeS5mb28pCiAKICAgICBkZWYgdGVzdF9kZWVwY29weV9saXN0X3N1YmNsYXNzKHNlbGYpOgogICAgICAgICBjbGFzcyBDKGxpc3QpOgpAQCAtNTcxLDggKzYwOCw4IEBACiAgICAgICAgIHkgPSBjb3B5LmRlZXBjb3B5KHgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdCh4KSwgbGlzdCh5KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LmZvbywgeS5mb28pCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh4WzBdIGlzIG5vdCB5WzBdKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeC5mb28gaXMgbm90IHkuZm9vKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHhbMF0sIHlbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeC5mb28sIHkuZm9vKQogCiAgICAgZGVmIHRlc3RfY29weV90dXBsZV9zdWJjbGFzcyhzZWxmKToKICAgICAgICAgY2xhc3MgQyh0dXBsZSk6CkBAIC01ODksOCArNjI2LDggQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0dXBsZSh4KSwgKFsxLCAyXSwgMykpCiAgICAgICAgIHkgPSBjb3B5LmRlZXBjb3B5KHgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHVwbGUoeSksIChbMSwgMl0sIDMpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeCBpcyBub3QgeSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHhbMF0gaXMgbm90IHlbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeCwgeSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh4WzBdLCB5WzBdKQogCiAgICAgZGVmIHRlc3RfZ2V0c3RhdGVfZXhjKHNlbGYpOgogICAgICAgICBjbGFzcyBFdmlsU3RhdGUob2JqZWN0KToKQEAgLTYxOCwxMCArNjU1LDEwIEBACiAgICAgICAgIG9iaiA9IEMoKQogICAgICAgICB4ID0gd2Vha3JlZi5yZWYob2JqKQogICAgICAgICB5ID0gX2NvcHkoeCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkgaXMgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh5LCB4KQogICAgICAgICBkZWwgb2JqCiAgICAgICAgIHkgPSBfY29weSh4KQotICAgICAgICBzZWxmLmFzc2VydFRydWUoeSBpcyB4KQorICAgICAgICBzZWxmLmFzc2VydElzKHksIHgpCiAKICAgICBkZWYgdGVzdF9jb3B5X3dlYWtyZWYoc2VsZik6CiAgICAgICAgIHNlbGYuX2NoZWNrX3dlYWtyZWYoY29weS5jb3B5KQpAQCAtNjM3LDcgKzY3NCw3IEBACiAgICAgICAgIHVbYV0gPSBiCiAgICAgICAgIHVbY10gPSBkCiAgICAgICAgIHYgPSBjb3B5LmNvcHkodSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh2IGlzIHUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QodiwgdSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCB1KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZbYV0sIGIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodltjXSwgZCkKQEAgLTY2Nyw4ICs3MDQsOCBAQAogICAgICAgICB2ID0gY29weS5kZWVwY29weSh1KQogICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHYsIHUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHYpLCAyKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHZbYV0gaXMgYikKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh2W2NdIGlzIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QodlthXSwgYikKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh2W2NdLCBkKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZbYV0uaSwgYi5pKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZbY10uaSwgZC5pKQogICAgICAgICBkZWwgYwpAQCAtNjg3LDEyICs3MjQsMTIgQEAKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2LCB1KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih2KSwgMikKICAgICAgICAgKHgsIHkpLCAoeiwgdCkgPSBzb3J0ZWQodi5pdGVtcygpLCBrZXk9bGFtYmRhIHBhaXI6IHBhaXJbMF0uaSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh4IGlzIGEpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoeCwgYSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LmksIGEuaSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHkgaXMgYikKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh6IGlzIGMpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoeSwgYikKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh6LCBjKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHouaSwgYy5pKQotICAgICAgICBzZWxmLmFzc2VydFRydWUodCBpcyBkKQorICAgICAgICBzZWxmLmFzc2VydElzKHQsIGQpCiAgICAgICAgIGRlbCB4LCB5LCB6LCB0CiAgICAgICAgIGRlbCBkCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHYpLCAxKQpAQCAtNzA1LDcgKzc0Miw3IEBACiAgICAgICAgIGYuYiA9IGYubQogICAgICAgICBnID0gY29weS5kZWVwY29weShmKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcubSwgZy5iKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZy5iLl9fc2VsZl9fIGlzIGcpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoZy5iLl9fc2VsZl9fLCBnKQogICAgICAgICBnLmIoKQogCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfY3Byb2ZpbGUucHkgYi9MaWIvdGVzdC90ZXN0X2Nwcm9maWxlLnB5CmluZGV4IGFlMTdjMmIuLjU2NzY2NjggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfY3Byb2ZpbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9jcHJvZmlsZS5weQpAQCAtMTgsMTYgKzE4LDE5IEBACiAgICAgZGVmIHRlc3RfYmFkX2NvdW50ZXJfZHVyaW5nX2RlYWxsb2Moc2VsZik6CiAgICAgICAgIGltcG9ydCBfbHNwcm9mCiAgICAgICAgICMgTXVzdCB1c2UgYSBmaWxlIGFzIFN0cmluZ0lPIGRvZXNuJ3QgdHJpZ2dlciB0aGUgYnVnLgotICAgICAgICB3aXRoIG9wZW4oVEVTVEZOLCAndycpIGFzIGZpbGU6Ci0gICAgICAgICAgICBzeXMuc3RkZXJyID0gZmlsZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG9iaiA9IF9sc3Byb2YuUHJvZmlsZXIobGFtYmRhOiBpbnQpCi0gICAgICAgICAgICAgICAgb2JqLmVuYWJsZSgpCi0gICAgICAgICAgICAgICAgb2JqID0gX2xzcHJvZi5Qcm9maWxlcigxKQotICAgICAgICAgICAgICAgIG9iai5kaXNhYmxlKCkKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyciA9IHN5cy5fX3N0ZGVycl9fCi0gICAgICAgIHVubGluayhURVNURk4pCisgICAgICAgIG9yaWdfc3RkZXJyID0gc3lzLnN0ZGVycgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIG9wZW4oVEVTVEZOLCAndycpIGFzIGZpbGU6CisgICAgICAgICAgICAgICAgc3lzLnN0ZGVyciA9IGZpbGUKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG9iaiA9IF9sc3Byb2YuUHJvZmlsZXIobGFtYmRhOiBpbnQpCisgICAgICAgICAgICAgICAgICAgIG9iai5lbmFibGUoKQorICAgICAgICAgICAgICAgICAgICBvYmogPSBfbHNwcm9mLlByb2ZpbGVyKDEpCisgICAgICAgICAgICAgICAgICAgIG9iai5kaXNhYmxlKCkKKyAgICAgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgICAgICBzeXMuc3RkZXJyID0gb3JpZ19zdGRlcnIKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHVubGluayhURVNURk4pCiAKIAogZGVmIHRlc3RfbWFpbigpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jcmFzaGVycy5weSBiL0xpYi90ZXN0L3Rlc3RfY3Jhc2hlcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzM2Y2NiZQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfY3Jhc2hlcnMucHkKQEAgLTAsMCArMSwzOCBAQAorIyBUZXN0cyB0aGF0IHRoZSBjcmFzaGVycyBpbiB0aGUgTGliL3Rlc3QvY3Jhc2hlcnMgZGlyZWN0b3J5IGFjdHVhbGx5CisjIGRvIGNyYXNoIHRoZSBpbnRlcnByZXRlciBhcyBleHBlY3RlZAorIworIyBJZiBhIGNyYXNoZXIgaXMgZml4ZWQsIGl0IHNob3VsZCBiZSBtb3ZlZCBlbHNld2hlcmUgaW4gdGhlIHRlc3Qgc3VpdGUgdG8KKyMgZW5zdXJlIGl0IGNvbnRpbnVlcyB0byB3b3JrIGNvcnJlY3RseS4KKworaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgZ2xvYgoraW1wb3J0IG9zLnBhdGgKK2ltcG9ydCB0ZXN0LnN1cHBvcnQKK2Zyb20gdGVzdC5zY3JpcHRfaGVscGVyIGltcG9ydCBhc3NlcnRfcHl0aG9uX2ZhaWx1cmUKKworQ1JBU0hFUl9ESVIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgImNyYXNoZXJzIikKK0NSQVNIRVJfRklMRVMgPSBvcy5wYXRoLmpvaW4oQ1JBU0hFUl9ESVIsICIqLnB5IikKKworaW5maW5pdGVfbG9vcHMgPSBbImluZmluaXRlX2xvb3BfcmUucHkiLCAibmFzdHlfZXFfdnNfZGljdC5weSJdCisKK2NsYXNzIENyYXNoZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIEB1bml0dGVzdC5za2lwKCJ0aGVzZSB0ZXN0cyBhcmUgdG9vIGZyYWdpbGUiKQorICAgIEB0ZXN0LnN1cHBvcnQuY3B5dGhvbl9vbmx5CisgICAgZGVmIHRlc3RfY3Jhc2hlcnNfY3Jhc2goc2VsZik6CisgICAgICAgIGZvciBmbmFtZSBpbiBnbG9iLmdsb2IoQ1JBU0hFUl9GSUxFUyk6CisgICAgICAgICAgICBpZiBvcy5wYXRoLmJhc2VuYW1lKGZuYW1lKSBpbiBpbmZpbml0ZV9sb29wczoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgIyBTb21lICJjcmFzaGVycyIgb25seSB0cmlnZ2VyIGFuIGV4Y2VwdGlvbiByYXRoZXIgdGhhbiBhCisgICAgICAgICAgICAjIHNlZ2ZhdWx0LiBDb25zaWRlciB0aGF0IGFuIGFjY2VwdGFibGUgb3V0Y29tZS4KKyAgICAgICAgICAgIGlmIHRlc3Quc3VwcG9ydC52ZXJib3NlOgorICAgICAgICAgICAgICAgIHByaW50KCJDaGVja2luZyBjcmFzaGVyOiIsIGZuYW1lKQorICAgICAgICAgICAgYXNzZXJ0X3B5dGhvbl9mYWlsdXJlKGZuYW1lKQorCisKK2RlZiB0ZXN0X21haW4oKToKKyAgICB0ZXN0LnN1cHBvcnQucnVuX3VuaXR0ZXN0KENyYXNoZXJUZXN0KQorICAgIHRlc3Quc3VwcG9ydC5yZWFwX2NoaWxkcmVuKCkKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jcnlwdC5weSBiL0xpYi90ZXN0L3Rlc3RfY3J5cHQucHkKaW5kZXggMmFkYjI4ZC4uZGMxMDdkOCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9jcnlwdC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2NyeXB0LnB5CkBAIC0xMCw2ICsxMCwyNSBAQAogICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6CiAgICAgICAgICAgICBwcmludCgnVGVzdCBlbmNyeXB0aW9uOiAnLCBjKQogCisgICAgZGVmIHRlc3Rfc2FsdChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY3J5cHQuX3NhbHRjaGFycyksIDY0KQorICAgICAgICBmb3IgbWV0aG9kIGluIGNyeXB0Lm1ldGhvZHM6CisgICAgICAgICAgICBzYWx0ID0gY3J5cHQubWtzYWx0KG1ldGhvZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNhbHQpLAorICAgICAgICAgICAgICAgICAgICBtZXRob2Quc2FsdF9jaGFycyArICgzIGlmIG1ldGhvZC5pZGVudCBlbHNlIDApKQorCisgICAgZGVmIHRlc3Rfc2FsdGVkY3J5cHQoc2VsZik6CisgICAgICAgIGZvciBtZXRob2QgaW4gY3J5cHQubWV0aG9kczoKKyAgICAgICAgICAgIHB3ID0gY3J5cHQuY3J5cHQoJ2Fzc3dvcmQnLCBtZXRob2QpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwdyksIG1ldGhvZC50b3RhbF9zaXplKQorICAgICAgICAgICAgcHcgPSBjcnlwdC5jcnlwdCgnYXNzd29yZCcsIGNyeXB0Lm1rc2FsdChtZXRob2QpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocHcpLCBtZXRob2QudG90YWxfc2l6ZSkKKworICAgIGRlZiB0ZXN0X21ldGhvZHMoc2VsZik6CisgICAgICAgICMgR3VyYW50ZWUgdGhhdCBNRVRIT0RfQ1JZUFQgaXMgdGhlIGxhc3QgbWV0aG9kIGluIGNyeXB0Lm1ldGhvZHMuCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4oY3J5cHQubWV0aG9kcykgPj0gMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjcnlwdC5NRVRIT0RfQ1JZUFQsIGNyeXB0Lm1ldGhvZHNbLTFdKQorCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoQ3J5cHRUZXN0Q2FzZSkKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9jdXJzZXMucHkgYi9MaWIvdGVzdC90ZXN0X2N1cnNlcy5weQppbmRleCA1ODEyMTQ3Li4yMWFjNjA4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2N1cnNlcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2N1cnNlcy5weQpAQCAtMjY0LDExICsyNjQsNTUgQEAKICAgICBjdXJzZXMudW5nZXRjaCgxMDI1KQogICAgIHN0ZHNjci5nZXRrZXkoKQogCitkZWYgdGVzdF91bmdldF93Y2goc3Rkc2NyKToKKyAgICBpZiBub3QgaGFzYXR0cihjdXJzZXMsICd1bmdldF93Y2gnKToKKyAgICAgICAgcmV0dXJuCisgICAgaW1wb3J0IGxvY2FsZQorICAgIGVuY29kaW5nID0gbG9jYWxlLmdldHByZWZlcnJlZGVuY29kaW5nKCkKKyAgICBmb3IgY2ggaW4gKCdhJywgJ1x4ZTknLCAnXHUyMGFjJywgJ1xVMDAxMEZGRkYnKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY2guZW5jb2RlKGVuY29kaW5nKQorICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgY3Vyc2VzLnVuZ2V0X3djaChjaCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oInVuZ2V0X3djaCglYSkgZmFpbGVkIHdpdGggbG9jYWxlIGVuY29kaW5nICVzOiAlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChjaCwgZW5jb2RpbmcsIGVycikpCisgICAgICAgIHJlYWQgPSBzdGRzY3IuZ2V0X3djaCgpCisgICAgICAgIHJlYWQgPSBjaHIocmVhZCkKKyAgICAgICAgaWYgcmVhZCAhPSBjaDoKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCIlciAhPSAlciIgJSAocmVhZCwgY2gpKQorCisgICAgICAgIGNvZGUgPSBvcmQoY2gpCisgICAgICAgIGN1cnNlcy51bmdldF93Y2goY29kZSkKKyAgICAgICAgcmVhZCA9IHN0ZHNjci5nZXRfd2NoKCkKKyAgICAgICAgaWYgcmVhZCAhPSBjb2RlOgorICAgICAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIiVyICE9ICVyIiAlIChyZWFkLCBjb2RlKSkKKwogZGVmIHRlc3RfaXNzdWUxMDU3MCgpOgogICAgIGIgPSBjdXJzZXMudHBhcm0oY3Vyc2VzLnRpZ2V0c3RyKCJjdXAiKSwgNSwgMykKICAgICBhc3NlcnQgdHlwZShiKSBpcyBieXRlcwogICAgIGN1cnNlcy5wdXRwKGIpCiAKK2RlZiB0ZXN0X2VuY29kaW5nKHN0ZHNjcik6CisgICAgaW1wb3J0IGNvZGVjcworICAgIGVuY29kaW5nID0gc3Rkc2NyLmVuY29kaW5nCisgICAgY29kZWNzLmxvb2t1cChlbmNvZGluZykKKyAgICB0cnk6CisgICAgICAgIHN0ZHNjci5lbmNvZGluZyA9IDEwCisgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgcGFzcworICAgIGVsc2U6CisgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCJUeXBlRXJyb3Igbm90IHJhaXNlZCIpCisgICAgc3Rkc2NyLmVuY29kaW5nID0gZW5jb2RpbmcKKyAgICB0cnk6CisgICAgICAgIGRlbCBzdGRzY3IuZW5jb2RpbmcKKyAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICBwYXNzCisgICAgZWxzZToKKyAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIlR5cGVFcnJvciBub3QgcmFpc2VkIikKKwogZGVmIG1haW4oc3Rkc2NyKToKICAgICBjdXJzZXMuc2F2ZXR0eSgpCiAgICAgdHJ5OgpAQCAtMjc3LDE2ICszMjEsMTggQEAKICAgICAgICAgdGVzdF91c2VycHRyX3dpdGhvdXRfc2V0KHN0ZHNjcikKICAgICAgICAgdGVzdF9yZXNpemVfdGVybShzdGRzY3IpCiAgICAgICAgIHRlc3RfaXNzdWU2MjQzKHN0ZHNjcikKKyAgICAgICAgdGVzdF91bmdldF93Y2goc3Rkc2NyKQogICAgICAgICB0ZXN0X2lzc3VlMTA1NzAoKQorICAgICAgICB0ZXN0X2VuY29kaW5nKHN0ZHNjcikKICAgICBmaW5hbGx5OgogICAgICAgICBjdXJzZXMucmVzZXR0eSgpCiAKIGRlZiB0ZXN0X21haW4oKToKLSAgICBpZiBub3Qgc3lzLnN0ZG91dC5pc2F0dHkoKToKLSAgICAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoInN5cy5zdGRvdXQgaXMgbm90IGEgdHR5IikKKyAgICBpZiBub3Qgc3lzLl9fc3Rkb3V0X18uaXNhdHR5KCk6CisgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KCJzeXMuX19zdGRvdXRfXyBpcyBub3QgYSB0dHkiKQogICAgICMgdGVzdGluZyBzZXR1cHRlcm0oKSBpbnNpZGUgaW5pdHNjci9lbmR3aW4KICAgICAjIGNhdXNlcyB0ZXJtaW5hbCBicmVha2FnZQotICAgIGN1cnNlcy5zZXR1cHRlcm0oZmQ9c3lzLnN0ZG91dC5maWxlbm8oKSkKKyAgICBjdXJzZXMuc2V0dXB0ZXJtKGZkPXN5cy5fX3N0ZG91dF9fLmZpbGVubygpKQogICAgIHRyeToKICAgICAgICAgc3Rkc2NyID0gY3Vyc2VzLmluaXRzY3IoKQogICAgICAgICBtYWluKHN0ZHNjcikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZGJtLnB5IGIvTGliL3Rlc3QvdGVzdF9kYm0ucHkKaW5kZXggMjZkNGMxNC4uMDJkZjdlMyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9kYm0ucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9kYm0ucHkKQEAgLTcxLDggKzcxLDggQEAKICAgICAgICAgZi5jbG9zZSgpCiAKICAgICBkZWYgdGVzdF9hbnlkYm1fY3JlYXRpb25fbl9maWxlX2V4aXN0c193aXRoX2ludmFsaWRfY29udGVudHMoc2VsZik6Ci0gICAgICAgIHdpdGggb3BlbihfZm5hbWUsICJ3IikgYXMgdzoKLSAgICAgICAgICAgIHBhc3MgIyBjcmVhdGUgYW4gZW1wdHkgZmlsZQorICAgICAgICAjIGNyZWF0ZSBhbiBlbXB0eSBmaWxlCisgICAgICAgIHRlc3Quc3VwcG9ydC5jcmVhdGVfZW1wdHlfZmlsZShfZm5hbWUpCiAKICAgICAgICAgZiA9IGRibS5vcGVuKF9mbmFtZSwgJ24nKQogICAgICAgICBzZWxmLmFkZENsZWFudXAoZi5jbG9zZSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZGVjaW1hbC5weSBiL0xpYi90ZXN0L3Rlc3RfZGVjaW1hbC5weQppbmRleCBlNDZjZDkxLi43ODFkZjFmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2RlY2ltYWwucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9kZWNpbWFsLnB5CkBAIC0xNiw3ICsxNiw3IEBACiAKIENvd2xpc2hhdydzIHRlc3RzIGNhbiBiZSBkb3dubG9hZGVkIGZyb206CiAKLSAgIHd3dzIuaHVyc2xleS5pYm0uY29tL2RlY2ltYWwvZGVjdGVzdC56aXAKKyAgIGh0dHA6Ly9zcGVsZW90cm92ZS5jb20vZGVjaW1hbC9kZWN0ZXN0LnppcAogCiBUaGlzIHRlc3QgbW9kdWxlIGNhbiBiZSBjYWxsZWQgZnJvbSBjb21tYW5kIGxpbmUgd2l0aCBvbmUgcGFyYW1ldGVyIChBcml0aG1ldGljCiBvciBCZWhhdmlvdXIpIHRvIHRlc3QgZWFjaCBwYXJ0LCBvciB3aXRob3V0IHBhcmFtZXRlciB0byB0ZXN0IGJvdGggcGFydHMuIElmCkBAIC0zMCwzNyArMzAsNzQgQEAKIGltcG9ydCB3YXJuaW5ncwogaW1wb3J0IHBpY2tsZSwgY29weQogaW1wb3J0IHVuaXR0ZXN0Ci1mcm9tIGRlY2ltYWwgaW1wb3J0ICoKIGltcG9ydCBudW1iZXJzCitpbXBvcnQgbG9jYWxlCiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgKHJ1bl91bml0dGVzdCwgcnVuX2RvY3Rlc3QsIGlzX3Jlc291cmNlX2VuYWJsZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVzX0lFRUVfNzU0KQotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGNoZWNrX3dhcm5pbmdzCitmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgY2hlY2tfd2FybmluZ3MsIGltcG9ydF9mcmVzaF9tb2R1bGUsIFRlc3RGYWlsZWQKIGltcG9ydCByYW5kb20KK2ltcG9ydCB0aW1lCitpbXBvcnQgd2FybmluZ3MKIHRyeToKICAgICBpbXBvcnQgdGhyZWFkaW5nCiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgdGhyZWFkaW5nID0gTm9uZQogCi0jIFVzZWZ1bCBUZXN0IENvbnN0YW50Ci1TaWduYWxzID0gdHVwbGUoZ2V0Y29udGV4dCgpLmZsYWdzLmtleXMoKSkKIAorQyA9IGltcG9ydF9mcmVzaF9tb2R1bGUoJ2RlY2ltYWwnLCBmcmVzaD1bJ19kZWNpbWFsJ10pCitQID0gaW1wb3J0X2ZyZXNoX21vZHVsZSgnZGVjaW1hbCcsIGJsb2NrZWQ9WydfZGVjaW1hbCddKQorb3JpZ19zeXNfZGVjaW1hbCA9IHN5cy5tb2R1bGVzWydkZWNpbWFsJ10KKworIyBmcmFjdGlvbnMgbW9kdWxlIG11c3QgaW1wb3J0IHRoZSBjb3JyZWN0IGRlY2ltYWwgbW9kdWxlLgorY2ZyYWN0aW9ucyA9IGltcG9ydF9mcmVzaF9tb2R1bGUoJ2ZyYWN0aW9ucycsIGZyZXNoPVsnZnJhY3Rpb25zJ10pCitzeXMubW9kdWxlc1snZGVjaW1hbCddID0gUAorcGZyYWN0aW9ucyA9IGltcG9ydF9mcmVzaF9tb2R1bGUoJ2ZyYWN0aW9ucycsIGZyZXNoPVsnZnJhY3Rpb25zJ10pCitzeXMubW9kdWxlc1snZGVjaW1hbCddID0gQworZnJhY3Rpb25zID0ge0M6Y2ZyYWN0aW9ucywgUDpwZnJhY3Rpb25zfQorc3lzLm1vZHVsZXNbJ2RlY2ltYWwnXSA9IG9yaWdfc3lzX2RlY2ltYWwKKworCisjIFVzZWZ1bCBUZXN0IENvbnN0YW50CitTaWduYWxzID0geworICBDOiB0dXBsZShDLmdldGNvbnRleHQoKS5mbGFncy5rZXlzKCkpIGlmIEMgZWxzZSBOb25lLAorICBQOiB0dXBsZShQLmdldGNvbnRleHQoKS5mbGFncy5rZXlzKCkpCit9CiAjIFNpZ25hbHMgb3JkZXJlZCB3aXRoIHJlc3BlY3QgdG8gcHJlY2VkZW5jZTogd2hlbiBhbiBvcGVyYXRpb24KICMgcHJvZHVjZXMgbXVsdGlwbGUgc2lnbmFscywgc2lnbmFscyBvY2N1cnJpbmcgbGF0ZXIgaW4gdGhlIGxpc3QKICMgc2hvdWxkIGJlIGhhbmRsZWQgYmVmb3JlIHRob3NlIG9jY3VycmluZyBlYXJsaWVyIGluIHRoZSBsaXN0LgotT3JkZXJlZFNpZ25hbHMgPSAoQ2xhbXBlZCwgUm91bmRlZCwgSW5leGFjdCwgU3Vibm9ybWFsLAotICAgICAgICAgICAgICAgICAgVW5kZXJmbG93LCBPdmVyZmxvdywgRGl2aXNpb25CeVplcm8sIEludmFsaWRPcGVyYXRpb24pCitPcmRlcmVkU2lnbmFscyA9IHsKKyAgQzogW0MuQ2xhbXBlZCwgQy5Sb3VuZGVkLCBDLkluZXhhY3QsIEMuU3Vibm9ybWFsLCBDLlVuZGVyZmxvdywKKyAgICAgIEMuT3ZlcmZsb3csIEMuRGl2aXNpb25CeVplcm8sIEMuSW52YWxpZE9wZXJhdGlvbiwKKyAgICAgIEMuRmxvYXRPcGVyYXRpb25dIGlmIEMgZWxzZSBOb25lLAorICBQOiBbUC5DbGFtcGVkLCBQLlJvdW5kZWQsIFAuSW5leGFjdCwgUC5TdWJub3JtYWwsIFAuVW5kZXJmbG93LAorICAgICAgUC5PdmVyZmxvdywgUC5EaXZpc2lvbkJ5WmVybywgUC5JbnZhbGlkT3BlcmF0aW9uLAorICAgICAgUC5GbG9hdE9wZXJhdGlvbl0KK30KK2RlZiBhc3NlcnRfc2lnbmFscyhjbHMsIGNvbnRleHQsIGF0dHIsIGV4cGVjdGVkKToKKyAgICBkID0gZ2V0YXR0cihjb250ZXh0LCBhdHRyKQorICAgIGNscy5hc3NlcnRUcnVlKGFsbChkW3NdIGlmIHMgaW4gZXhwZWN0ZWQgZWxzZSBub3QgZFtzXSBmb3IgcyBpbiBkKSkKKworUm91bmRpbmdNb2RlcyA9IHsKKyAgQzogKEMuUk9VTkRfVVAsIEMuUk9VTkRfRE9XTiwgQy5ST1VORF9DRUlMSU5HLCBDLlJPVU5EX0ZMT09SLAorICAgICAgQy5ST1VORF9IQUxGX1VQLCBDLlJPVU5EX0hBTEZfRE9XTiwgQy5ST1VORF9IQUxGX0VWRU4sCisgICAgICBDLlJPVU5EXzA1VVApIGlmIEMgZWxzZSBOb25lLAorICBQOiAoUC5ST1VORF9VUCwgUC5ST1VORF9ET1dOLCBQLlJPVU5EX0NFSUxJTkcsIFAuUk9VTkRfRkxPT1IsCisgICAgICBQLlJPVU5EX0hBTEZfVVAsIFAuUk9VTkRfSEFMRl9ET1dOLCBQLlJPVU5EX0hBTEZfRVZFTiwKKyAgICAgIFAuUk9VTkRfMDVVUCkKK30KIAogIyBUZXN0cyBhcmUgYnVpbHQgYXJvdW5kIHRoZXNlIGFzc3VtZWQgY29udGV4dCBkZWZhdWx0cy4KICMgdGVzdF9tYWluKCkgcmVzdG9yZXMgdGhlIG9yaWdpbmFsIGNvbnRleHQuCi1kZWYgaW5pdCgpOgotICAgIGdsb2JhbCBPUklHSU5BTF9DT05URVhUCi0gICAgT1JJR0lOQUxfQ09OVEVYVCA9IGdldGNvbnRleHQoKS5jb3B5KCkKLSAgICBEZWZhdWx0VGVzdENvbnRleHQgPSBDb250ZXh0KAotICAgICAgICBwcmVjID0gOSwKLSAgICAgICAgcm91bmRpbmcgPSBST1VORF9IQUxGX0VWRU4sCi0gICAgICAgIHRyYXBzID0gZGljdC5mcm9ta2V5cyhTaWduYWxzLCAwKQotICAgICAgICApCi0gICAgc2V0Y29udGV4dChEZWZhdWx0VGVzdENvbnRleHQpCitPUklHSU5BTF9DT05URVhUID0geworICBDOiBDLmdldGNvbnRleHQoKS5jb3B5KCkgaWYgQyBlbHNlIE5vbmUsCisgIFA6IFAuZ2V0Y29udGV4dCgpLmNvcHkoKQorfQorZGVmIGluaXQobSk6CisgICAgaWYgbm90IG06IHJldHVybgorICAgIERlZmF1bHRUZXN0Q29udGV4dCA9IG0uQ29udGV4dCgKKyAgICAgICBwcmVjPTksIHJvdW5kaW5nPW0uUk9VTkRfSEFMRl9FVkVOLCB0cmFwcz1kaWN0LmZyb21rZXlzKFNpZ25hbHNbbV0sIDApCisgICAgKQorICAgIG0uc2V0Y29udGV4dChEZWZhdWx0VGVzdENvbnRleHQpCiAKIFRFU1REQVRBRElSID0gJ2RlY2ltYWx0ZXN0ZGF0YScKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CkBAIC03MiwxNDkgKzEwOSwxNzUgQEAKIAogc2tpcF9leHBlY3RlZCA9IG5vdCBvcy5wYXRoLmlzZGlyKGRpcmVjdG9yeSkKIAotIyBsaXN0IG9mIGluZGl2aWR1YWwgLmRlY1Rlc3QgdGVzdCBpZHMgdGhhdCBjb3JyZXNwb25kIHRvIHRlc3RzIHRoYXQKLSMgd2UncmUgc2tpcHBpbmcgZm9yIG9uZSByZWFzb24gb3IgYW5vdGhlci4KLXNraXBwZWRfdGVzdF9pZHMgPSBzZXQoWwotICAgICMgU2tpcCBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBzY2FsZWIgdGVzdHMuCi0gICAgJ3NjYngxNjQnLAotICAgICdzY2J4MTY1JywKLQotICAgICMgRm9yIHNvbWUgb3BlcmF0aW9ucyAoY3VycmVudGx5IGV4cCwgbG4sIGxvZzEwLCBwb3dlciksIHRoZSBkZWNOdW1iZXIKLSAgICAjIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBpbXBvc2VzIGFkZGl0aW9uYWwgcmVzdHJpY3Rpb25zIG9uIHRoZSBjb250ZXh0Ci0gICAgIyBhbmQgb3BlcmFuZHMuICBUaGVzZSByZXN0cmljdGlvbnMgYXJlIG5vdCBwYXJ0IG9mIHRoZSBzcGVjaWZpY2F0aW9uOwotICAgICMgaG93ZXZlciwgdGhlIGVmZmVjdCBvZiB0aGVzZSByZXN0cmljdGlvbnMgZG9lcyBzaG93IHVwIGluIHNvbWUgb2YgdGhlCi0gICAgIyB0ZXN0Y2FzZXMuICBXZSBza2lwIHRlc3RjYXNlcyB0aGF0IHZpb2xhdGUgdGhlc2UgcmVzdHJpY3Rpb25zLCBzaW5jZQotICAgICMgRGVjaW1hbCBiZWhhdmVzIGRpZmZlcmVudGx5IGZyb20gZGVjTnVtYmVyIGZvciB0aGVzZSB0ZXN0Y2FzZXMgc28gdGhlc2UKLSAgICAjIHRlc3RjYXNlcyB3b3VsZCBvdGhlcndpc2UgZmFpbC4KLSAgICAnZXhweDkwMScsCi0gICAgJ2V4cHg5MDInLAotICAgICdleHB4OTAzJywKLSAgICAnZXhweDkwNScsCi0gICAgJ2xueDkwMScsCi0gICAgJ2xueDkwMicsCi0gICAgJ2xueDkwMycsCi0gICAgJ2xueDkwNScsCi0gICAgJ2xvZ3g5MDEnLAotICAgICdsb2d4OTAyJywKLSAgICAnbG9neDkwMycsCi0gICAgJ2xvZ3g5MDUnLAotICAgICdwb3d4MTE4MycsCi0gICAgJ3Bvd3gxMTg0JywKLSAgICAncG93eDQwMDEnLAotICAgICdwb3d4NDAwMicsCi0gICAgJ3Bvd3g0MDAzJywKLSAgICAncG93eDQwMDUnLAotICAgICdwb3d4NDAwOCcsCi0gICAgJ3Bvd3g0MDEwJywKLSAgICAncG93eDQwMTInLAotICAgICdwb3d4NDAxNCcsCi0gICAgXSkKLQogIyBNYWtlIHN1cmUgaXQgYWN0dWFsbHkgcmFpc2VzIGVycm9ycyB3aGVuIG5vdCBleHBlY3RlZCBhbmQgY2F1Z2h0IGluIGZsYWdzCiAjIFNsb3dlciwgc2luY2UgaXQgcnVucyBzb21lIHRoaW5ncyBzZXZlcmFsIHRpbWVzLgogRVhURU5ERURFUlJPUlRFU1QgPSBGYWxzZQogCi0jTWFwIHRoZSB0ZXN0IGNhc2VzJyBlcnJvciBuYW1lcyB0byB0aGUgYWN0dWFsIGVycm9ycwotRXJyb3JOYW1lcyA9IHsnY2xhbXBlZCcgOiBDbGFtcGVkLAotICAgICAgICAgICAgICAnY29udmVyc2lvbl9zeW50YXgnIDogSW52YWxpZE9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgJ2RpdmlzaW9uX2J5X3plcm8nIDogRGl2aXNpb25CeVplcm8sCi0gICAgICAgICAgICAgICdkaXZpc2lvbl9pbXBvc3NpYmxlJyA6IEludmFsaWRPcGVyYXRpb24sCi0gICAgICAgICAgICAgICdkaXZpc2lvbl91bmRlZmluZWQnIDogSW52YWxpZE9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgJ2luZXhhY3QnIDogSW5leGFjdCwKLSAgICAgICAgICAgICAgJ2ludmFsaWRfY29udGV4dCcgOiBJbnZhbGlkT3BlcmF0aW9uLAotICAgICAgICAgICAgICAnaW52YWxpZF9vcGVyYXRpb24nIDogSW52YWxpZE9wZXJhdGlvbiwKLSAgICAgICAgICAgICAgJ292ZXJmbG93JyA6IE92ZXJmbG93LAotICAgICAgICAgICAgICAncm91bmRlZCcgOiBSb3VuZGVkLAotICAgICAgICAgICAgICAnc3Vibm9ybWFsJyA6IFN1Ym5vcm1hbCwKLSAgICAgICAgICAgICAgJ3VuZGVyZmxvdycgOiBVbmRlcmZsb3d9CisjIFRlc3QgZXh0cmEgZnVuY3Rpb25hbGl0eSBpbiB0aGUgQyB2ZXJzaW9uICgtREVYVFJBX0ZVTkNUSU9OQUxJVFkpLgorRVhUUkFfRlVOQ1RJT05BTElUWSA9IFRydWUgaWYgaGFzYXR0cihDLCAnRGVjQ2xhbXBlZCcpIGVsc2UgRmFsc2UKK3JlcXVpcmVzX2V4dHJhX2Z1bmN0aW9uYWxpdHkgPSB1bml0dGVzdC5za2lwVW5sZXNzKAorICBFWFRSQV9GVU5DVElPTkFMSVRZLCAidGVzdCByZXF1aXJlcyBidWlsZCB3aXRoIC1ERVhUUkFfRlVOQ1RJT05BTElUWSIpCitza2lwX2lmX2V4dHJhX2Z1bmN0aW9uYWxpdHkgPSB1bml0dGVzdC5za2lwSWYoCisgIEVYVFJBX0ZVTkNUSU9OQUxJVFksICJ0ZXN0IHJlcXVpcmVzIHJlZ3VsYXIgYnVpbGQiKQogCiAKLWRlZiBOb25mdW5jdGlvbigqYXJncyk6Ci0gICAgIiIiRG9lc24ndCBkbyBhbnl0aGluZy4iIiIKLSAgICByZXR1cm4gTm9uZQorY2xhc3MgSUJNVGVzdENhc2VzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJDbGFzcyB3aGljaCB0ZXN0cyB0aGUgRGVjaW1hbCBjbGFzcyBhZ2FpbnN0IHRoZSBJQk0gdGVzdCBjYXNlcy4iIiIKIAotUm91bmRpbmdEaWN0ID0geydjZWlsaW5nJyA6IFJPVU5EX0NFSUxJTkcsICNNYXBzIHRlc3QtY2FzZSBuYW1lcyB0byByb3VuZGluZ3MuCi0gICAgICAgICAgICAgICAgJ2Rvd24nIDogUk9VTkRfRE9XTiwKLSAgICAgICAgICAgICAgICAnZmxvb3InIDogUk9VTkRfRkxPT1IsCi0gICAgICAgICAgICAgICAgJ2hhbGZfZG93bicgOiBST1VORF9IQUxGX0RPV04sCi0gICAgICAgICAgICAgICAgJ2hhbGZfZXZlbicgOiBST1VORF9IQUxGX0VWRU4sCi0gICAgICAgICAgICAgICAgJ2hhbGZfdXAnIDogUk9VTkRfSEFMRl9VUCwKLSAgICAgICAgICAgICAgICAndXAnIDogUk9VTkRfVVAsCi0gICAgICAgICAgICAgICAgJzA1dXAnIDogUk9VTkRfMDVVUH0KLQotIyBOYW1lIGFkYXB0ZXIgdG8gYmUgYWJsZSB0byBjaGFuZ2UgdGhlIERlY2ltYWwgYW5kIENvbnRleHQKLSMgaW50ZXJmYWNlIHdpdGhvdXQgY2hhbmdpbmcgdGhlIHRlc3QgZmlsZXMgZnJvbSBDb3dsaXNoYXcKLW5hbWVBZGFwdGVyID0geydhbmQnOidsb2dpY2FsX2FuZCcsCi0gICAgICAgICAgICAgICAnYXBwbHknOidfYXBwbHknLAotICAgICAgICAgICAgICAgJ2NsYXNzJzonbnVtYmVyX2NsYXNzJywKLSAgICAgICAgICAgICAgICdjb21wYXJlc2lnJzonY29tcGFyZV9zaWduYWwnLAotICAgICAgICAgICAgICAgJ2NvbXBhcmV0b3RhbCc6J2NvbXBhcmVfdG90YWwnLAotICAgICAgICAgICAgICAgJ2NvbXBhcmV0b3RtYWcnOidjb21wYXJlX3RvdGFsX21hZycsCi0gICAgICAgICAgICAgICAnY29weSc6J2NvcHlfZGVjaW1hbCcsCi0gICAgICAgICAgICAgICAnY29weWFicyc6J2NvcHlfYWJzJywKLSAgICAgICAgICAgICAgICdjb3B5bmVnYXRlJzonY29weV9uZWdhdGUnLAotICAgICAgICAgICAgICAgJ2NvcHlzaWduJzonY29weV9zaWduJywKLSAgICAgICAgICAgICAgICdkaXZpZGVpbnQnOidkaXZpZGVfaW50JywKLSAgICAgICAgICAgICAgICdpbnZlcnQnOidsb2dpY2FsX2ludmVydCcsCi0gICAgICAgICAgICAgICAnaXNjYW5vbmljYWwnOidpc19jYW5vbmljYWwnLAotICAgICAgICAgICAgICAgJ2lzZmluaXRlJzonaXNfZmluaXRlJywKLSAgICAgICAgICAgICAgICdpc2luZmluaXRlJzonaXNfaW5maW5pdGUnLAotICAgICAgICAgICAgICAgJ2lzbmFuJzonaXNfbmFuJywKLSAgICAgICAgICAgICAgICdpc25vcm1hbCc6J2lzX25vcm1hbCcsCi0gICAgICAgICAgICAgICAnaXNxbmFuJzonaXNfcW5hbicsCi0gICAgICAgICAgICAgICAnaXNzaWduZWQnOidpc19zaWduZWQnLAotICAgICAgICAgICAgICAgJ2lzc25hbic6J2lzX3NuYW4nLAotICAgICAgICAgICAgICAgJ2lzc3Vibm9ybWFsJzonaXNfc3Vibm9ybWFsJywKLSAgICAgICAgICAgICAgICdpc3plcm8nOidpc196ZXJvJywKLSAgICAgICAgICAgICAgICdtYXhtYWcnOidtYXhfbWFnJywKLSAgICAgICAgICAgICAgICdtaW5tYWcnOidtaW5fbWFnJywKLSAgICAgICAgICAgICAgICduZXh0bWludXMnOiduZXh0X21pbnVzJywKLSAgICAgICAgICAgICAgICduZXh0cGx1cyc6J25leHRfcGx1cycsCi0gICAgICAgICAgICAgICAnbmV4dHRvd2FyZCc6J25leHRfdG93YXJkJywKLSAgICAgICAgICAgICAgICdvcic6J2xvZ2ljYWxfb3InLAotICAgICAgICAgICAgICAgJ3JlZHVjZSc6J25vcm1hbGl6ZScsCi0gICAgICAgICAgICAgICAncmVtYWluZGVybmVhcic6J3JlbWFpbmRlcl9uZWFyJywKLSAgICAgICAgICAgICAgICdzYW1lcXVhbnR1bSc6J3NhbWVfcXVhbnR1bScsCi0gICAgICAgICAgICAgICAnc3F1YXJlcm9vdCc6J3NxcnQnLAotICAgICAgICAgICAgICAgJ3RvZW5nJzondG9fZW5nX3N0cmluZycsCi0gICAgICAgICAgICAgICAndG9pbnRlZ3JhbCc6J3RvX2ludGVncmFsX3ZhbHVlJywKLSAgICAgICAgICAgICAgICd0b2ludGVncmFseCc6J3RvX2ludGVncmFsX2V4YWN0JywKLSAgICAgICAgICAgICAgICd0b3NjaSc6J3RvX3NjaV9zdHJpbmcnLAotICAgICAgICAgICAgICAgJ3hvcic6J2xvZ2ljYWxfeG9yJywKLSAgICAgICAgICAgICAgfQotCi0jIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHJldHVybiBUcnVlL0ZhbHNlIHJhdGhlciB0aGFuIGEgRGVjaW1hbCBpbnN0YW5jZQotCi1MT0dJQ0FMX0ZVTkNUSU9OUyA9ICgKLSAgICAnaXNfY2Fub25pY2FsJywKLSAgICAnaXNfZmluaXRlJywKLSAgICAnaXNfaW5maW5pdGUnLAotICAgICdpc19uYW4nLAotICAgICdpc19ub3JtYWwnLAotICAgICdpc19xbmFuJywKLSAgICAnaXNfc2lnbmVkJywKLSAgICAnaXNfc25hbicsCi0gICAgJ2lzX3N1Ym5vcm1hbCcsCi0gICAgJ2lzX3plcm8nLAotICAgICdzYW1lX3F1YW50dW0nLAotICAgICkKLQotY2xhc3MgRGVjaW1hbFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkNsYXNzIHdoaWNoIHRlc3RzIHRoZSBEZWNpbWFsIGNsYXNzIGFnYWluc3QgdGhlIHRlc3QgY2FzZXMuCi0KLSAgICBDaGFuZ2VkIGZvciB1bml0dGVzdC4KLSAgICAiIiIKICAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuY29udGV4dCA9IENvbnRleHQoKQorICAgICAgICBzZWxmLmNvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dCgpCisgICAgICAgIHNlbGYucmVhZGNvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dCgpCiAgICAgICAgIHNlbGYuaWdub3JlX2xpc3QgPSBbJyMnXQotICAgICAgICAjIEJhc2ljYWxseSwgYSAjIG1lYW5zIHJldHVybiBOYU4gSW52YWxpZE9wZXJhdGlvbi4KLSAgICAgICAgIyBEaWZmZXJlbnQgZnJvbSBhIHNOYU4gaW4gdHJpbQogCisgICAgICAgICMgTGlzdCBvZiBpbmRpdmlkdWFsIC5kZWNUZXN0IHRlc3QgaWRzIHRoYXQgY29ycmVzcG9uZCB0byB0ZXN0cyB0aGF0CisgICAgICAgICMgd2UncmUgc2tpcHBpbmcgZm9yIG9uZSByZWFzb24gb3IgYW5vdGhlci4KKyAgICAgICAgc2VsZi5za2lwcGVkX3Rlc3RfaWRzID0gc2V0KFsKKyAgICAgICAgICAgICMgU2tpcCBpbXBsZW1lbnRhdGlvbi1zcGVjaWZpYyBzY2FsZWIgdGVzdHMuCisgICAgICAgICAgICAnc2NieDE2NCcsCisgICAgICAgICAgICAnc2NieDE2NScsCisKKyAgICAgICAgICAgICMgRm9yIHNvbWUgb3BlcmF0aW9ucyAoY3VycmVudGx5IGV4cCwgbG4sIGxvZzEwLCBwb3dlciksIHRoZSBkZWNOdW1iZXIKKyAgICAgICAgICAgICMgcmVmZXJlbmNlIGltcGxlbWVudGF0aW9uIGltcG9zZXMgYWRkaXRpb25hbCByZXN0cmljdGlvbnMgb24gdGhlIGNvbnRleHQKKyAgICAgICAgICAgICMgYW5kIG9wZXJhbmRzLiAgVGhlc2UgcmVzdHJpY3Rpb25zIGFyZSBub3QgcGFydCBvZiB0aGUgc3BlY2lmaWNhdGlvbjsKKyAgICAgICAgICAgICMgaG93ZXZlciwgdGhlIGVmZmVjdCBvZiB0aGVzZSByZXN0cmljdGlvbnMgZG9lcyBzaG93IHVwIGluIHNvbWUgb2YgdGhlCisgICAgICAgICAgICAjIHRlc3RjYXNlcy4gIFdlIHNraXAgdGVzdGNhc2VzIHRoYXQgdmlvbGF0ZSB0aGVzZSByZXN0cmljdGlvbnMsIHNpbmNlCisgICAgICAgICAgICAjIERlY2ltYWwgYmVoYXZlcyBkaWZmZXJlbnRseSBmcm9tIGRlY051bWJlciBmb3IgdGhlc2UgdGVzdGNhc2VzIHNvIHRoZXNlCisgICAgICAgICAgICAjIHRlc3RjYXNlcyB3b3VsZCBvdGhlcndpc2UgZmFpbC4KKyAgICAgICAgICAgICdleHB4OTAxJywKKyAgICAgICAgICAgICdleHB4OTAyJywKKyAgICAgICAgICAgICdleHB4OTAzJywKKyAgICAgICAgICAgICdleHB4OTA1JywKKyAgICAgICAgICAgICdsbng5MDEnLAorICAgICAgICAgICAgJ2xueDkwMicsCisgICAgICAgICAgICAnbG54OTAzJywKKyAgICAgICAgICAgICdsbng5MDUnLAorICAgICAgICAgICAgJ2xvZ3g5MDEnLAorICAgICAgICAgICAgJ2xvZ3g5MDInLAorICAgICAgICAgICAgJ2xvZ3g5MDMnLAorICAgICAgICAgICAgJ2xvZ3g5MDUnLAorICAgICAgICAgICAgJ3Bvd3gxMTgzJywKKyAgICAgICAgICAgICdwb3d4MTE4NCcsCisgICAgICAgICAgICAncG93eDQwMDEnLAorICAgICAgICAgICAgJ3Bvd3g0MDAyJywKKyAgICAgICAgICAgICdwb3d4NDAwMycsCisgICAgICAgICAgICAncG93eDQwMDUnLAorICAgICAgICAgICAgJ3Bvd3g0MDA4JywKKyAgICAgICAgICAgICdwb3d4NDAxMCcsCisgICAgICAgICAgICAncG93eDQwMTInLAorICAgICAgICAgICAgJ3Bvd3g0MDE0JywKKyAgICAgICAgICAgIF0pCisKKyAgICAgICAgaWYgc2VsZi5kZWNpbWFsID09IEM6CisgICAgICAgICAgICAjIHN0YXR1cyBoYXMgYWRkaXRpb25hbCBTdWJub3JtYWwsIFVuZGVyZmxvdworICAgICAgICAgICAgc2VsZi5za2lwcGVkX3Rlc3RfaWRzLmFkZCgncHdzeDgwMycpCisgICAgICAgICAgICBzZWxmLnNraXBwZWRfdGVzdF9pZHMuYWRkKCdwd3N4ODA1JykKKyAgICAgICAgICAgICMgQ29ycmVjdCByb3VuZGluZyAoc2tpcHBlZCBmb3IgZGVjTnVtYmVyLCB0b28pCisgICAgICAgICAgICBzZWxmLnNraXBwZWRfdGVzdF9pZHMuYWRkKCdwb3d4NDMwMicpCisgICAgICAgICAgICBzZWxmLnNraXBwZWRfdGVzdF9pZHMuYWRkKCdwb3d4NDMwMycpCisgICAgICAgICAgICBzZWxmLnNraXBwZWRfdGVzdF9pZHMuYWRkKCdwb3d4NDM0MicpCisgICAgICAgICAgICBzZWxmLnNraXBwZWRfdGVzdF9pZHMuYWRkKCdwb3d4NDM0MycpCisgICAgICAgICAgICAjIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWU3MDQ5CisgICAgICAgICAgICBzZWxmLnNraXBwZWRfdGVzdF9pZHMuYWRkKCdwd214MzI1JykKKyAgICAgICAgICAgIHNlbGYuc2tpcHBlZF90ZXN0X2lkcy5hZGQoJ3B3bXgzMjYnKQorCisgICAgICAgICMgTWFwIHRlc3QgZGlyZWN0aXZlcyB0byBzZXR0ZXIgZnVuY3Rpb25zLgogICAgICAgICBzZWxmLkNoYW5nZURpY3QgPSB7J3ByZWNpc2lvbicgOiBzZWxmLmNoYW5nZV9wcmVjaXNpb24sCi0gICAgICAgICAgICAgICAgICAgICAgJ3JvdW5kaW5nJyA6IHNlbGYuY2hhbmdlX3JvdW5kaW5nX21ldGhvZCwKLSAgICAgICAgICAgICAgICAgICAgICAnbWF4ZXhwb25lbnQnIDogc2VsZi5jaGFuZ2VfbWF4X2V4cG9uZW50LAotICAgICAgICAgICAgICAgICAgICAgICdtaW5leHBvbmVudCcgOiBzZWxmLmNoYW5nZV9taW5fZXhwb25lbnQsCi0gICAgICAgICAgICAgICAgICAgICAgJ2NsYW1wJyA6IHNlbGYuY2hhbmdlX2NsYW1wfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JvdW5kaW5nJyA6IHNlbGYuY2hhbmdlX3JvdW5kaW5nX21ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhleHBvbmVudCcgOiBzZWxmLmNoYW5nZV9tYXhfZXhwb25lbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWluZXhwb25lbnQnIDogc2VsZi5jaGFuZ2VfbWluX2V4cG9uZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsYW1wJyA6IHNlbGYuY2hhbmdlX2NsYW1wfQorCisgICAgICAgICMgTmFtZSBhZGFwdGVyIHRvIGJlIGFibGUgdG8gY2hhbmdlIHRoZSBEZWNpbWFsIGFuZCBDb250ZXh0CisgICAgICAgICMgaW50ZXJmYWNlIHdpdGhvdXQgY2hhbmdpbmcgdGhlIHRlc3QgZmlsZXMgZnJvbSBDb3dsaXNoYXcuCisgICAgICAgIHNlbGYuTmFtZUFkYXB0ZXIgPSB7J2FuZCc6J2xvZ2ljYWxfYW5kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbHknOidfYXBwbHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbGFzcyc6J251bWJlcl9jbGFzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBhcmVzaWcnOidjb21wYXJlX3NpZ25hbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBhcmV0b3RhbCc6J2NvbXBhcmVfdG90YWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wYXJldG90bWFnJzonY29tcGFyZV90b3RhbF9tYWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3B5JzonY29weV9kZWNpbWFsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29weWFicyc6J2NvcHlfYWJzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29weW5lZ2F0ZSc6J2NvcHlfbmVnYXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29weXNpZ24nOidjb3B5X3NpZ24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXZpZGVpbnQnOidkaXZpZGVfaW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52ZXJ0JzonbG9naWNhbF9pbnZlcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpc2Nhbm9uaWNhbCc6J2lzX2Nhbm9uaWNhbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzZmluaXRlJzonaXNfZmluaXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNpbmZpbml0ZSc6J2lzX2luZmluaXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNuYW4nOidpc19uYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpc25vcm1hbCc6J2lzX25vcm1hbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzcW5hbic6J2lzX3FuYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpc3NpZ25lZCc6J2lzX3NpZ25lZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzc25hbic6J2lzX3NuYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpc3N1Ym5vcm1hbCc6J2lzX3N1Ym5vcm1hbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzemVybyc6J2lzX3plcm8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhtYWcnOidtYXhfbWFnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWlubWFnJzonbWluX21hZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25leHRtaW51cyc6J25leHRfbWludXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXh0cGx1cyc6J25leHRfcGx1cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25leHR0b3dhcmQnOiduZXh0X3Rvd2FyZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29yJzonbG9naWNhbF9vcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlZHVjZSc6J25vcm1hbGl6ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbWFpbmRlcm5lYXInOidyZW1haW5kZXJfbmVhcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NhbWVxdWFudHVtJzonc2FtZV9xdWFudHVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3F1YXJlcm9vdCc6J3NxcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2VuZyc6J3RvX2VuZ19zdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2ludGVncmFsJzondG9faW50ZWdyYWxfdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2ludGVncmFseCc6J3RvX2ludGVncmFsX2V4YWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9zY2knOid0b19zY2lfc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAneG9yJzonbG9naWNhbF94b3InfQorCisgICAgICAgICMgTWFwIHRlc3QtY2FzZSBuYW1lcyB0byByb3VuZGluZ3MuCisgICAgICAgIHNlbGYuUm91bmRpbmdEaWN0ID0geydjZWlsaW5nJyA6IHNlbGYuZGVjaW1hbC5ST1VORF9DRUlMSU5HLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG93bicgOiBzZWxmLmRlY2ltYWwuUk9VTkRfRE9XTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zsb29yJyA6IHNlbGYuZGVjaW1hbC5ST1VORF9GTE9PUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhbGZfZG93bicgOiBzZWxmLmRlY2ltYWwuUk9VTkRfSEFMRl9ET1dOLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFsZl9ldmVuJyA6IHNlbGYuZGVjaW1hbC5ST1VORF9IQUxGX0VWRU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoYWxmX3VwJyA6IHNlbGYuZGVjaW1hbC5ST1VORF9IQUxGX1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXAnIDogc2VsZi5kZWNpbWFsLlJPVU5EX1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnMDV1cCcgOiBzZWxmLmRlY2ltYWwuUk9VTkRfMDVVUH0KKworICAgICAgICAjIE1hcCB0aGUgdGVzdCBjYXNlcycgZXJyb3IgbmFtZXMgdG8gdGhlIGFjdHVhbCBlcnJvcnMuCisgICAgICAgIHNlbGYuRXJyb3JOYW1lcyA9IHsnY2xhbXBlZCcgOiBzZWxmLmRlY2ltYWwuQ2xhbXBlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb252ZXJzaW9uX3N5bnRheCcgOiBzZWxmLmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXZpc2lvbl9ieV96ZXJvJyA6IHNlbGYuZGVjaW1hbC5EaXZpc2lvbkJ5WmVybywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXZpc2lvbl9pbXBvc3NpYmxlJyA6IHNlbGYuZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpdmlzaW9uX3VuZGVmaW5lZCcgOiBzZWxmLmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbmV4YWN0JyA6IHNlbGYuZGVjaW1hbC5JbmV4YWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludmFsaWRfY29udGV4dCcgOiBzZWxmLmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZhbGlkX29wZXJhdGlvbicgOiBzZWxmLmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdmVyZmxvdycgOiBzZWxmLmRlY2ltYWwuT3ZlcmZsb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAncm91bmRlZCcgOiBzZWxmLmRlY2ltYWwuUm91bmRlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdWJub3JtYWwnIDogc2VsZi5kZWNpbWFsLlN1Ym5vcm1hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICd1bmRlcmZsb3cnIDogc2VsZi5kZWNpbWFsLlVuZGVyZmxvd30KKworICAgICAgICAjIFRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zIHJldHVybiBUcnVlL0ZhbHNlIHJhdGhlciB0aGFuIGEKKyAgICAgICAgIyBEZWNpbWFsIGluc3RhbmNlLgorICAgICAgICBzZWxmLkxvZ2ljYWxGdW5jdGlvbnMgPSAoJ2lzX2Nhbm9uaWNhbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNfZmluaXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpc19pbmZpbml0ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNfbmFuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpc19ub3JtYWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzX3FuYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzX3NpZ25lZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNfc25hbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXNfc3Vibm9ybWFsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpc196ZXJvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1lX3F1YW50dW0nKQorCisgICAgZGVmIHJlYWRfdW5saW1pdGVkKHNlbGYsIHYsIGNvbnRleHQpOgorICAgICAgICAiIiJXb3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgdGhlIDMyLWJpdCBfZGVjaW1hbCB2ZXJzaW9uLiBUaGUKKyAgICAgICAgICAgZ3VhcmFudGVlZCBtYXhpbXVtIHZhbHVlcyBmb3IgcHJlYywgRW1heCBldGMuIGFyZSA0MjUwMDAwMDAsCisgICAgICAgICAgIGJ1dCBoaWdoZXIgdmFsdWVzIHVzdWFsbHkgd29yaywgZXhjZXB0IGZvciByYXJlIGNvcm5lciBjYXNlcy4KKyAgICAgICAgICAgSW4gcGFydGljdWxhciwgYWxsIG9mIHRoZSBJQk0gdGVzdHMgcGFzcyB3aXRoIG1heGltdW0gdmFsdWVzCisgICAgICAgICAgIG9mIDEwNzAwMDAwMDAuIiIiCisgICAgICAgIGlmIHNlbGYuZGVjaW1hbCA9PSBDIGFuZCBzZWxmLmRlY2ltYWwuTUFYX0VNQVggPT0gNDI1MDAwMDAwOgorICAgICAgICAgICAgc2VsZi5yZWFkY29udGV4dC5fdW5zYWZlX3NldHByZWMoMTA3MDAwMDAwMCkKKyAgICAgICAgICAgIHNlbGYucmVhZGNvbnRleHQuX3Vuc2FmZV9zZXRlbWF4KDEwNzAwMDAwMDApCisgICAgICAgICAgICBzZWxmLnJlYWRjb250ZXh0Ll91bnNhZmVfc2V0ZW1pbigtMTA3MDAwMDAwMCkKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnJlYWRjb250ZXh0LmNyZWF0ZV9kZWNpbWFsKHYpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5kZWNpbWFsLkRlY2ltYWwodiwgY29udGV4dCkKIAogICAgIGRlZiBldmFsX2ZpbGUoc2VsZiwgZmlsZSk6CiAgICAgICAgIGdsb2JhbCBza2lwX2V4cGVjdGVkCkBAIC0yMjcsNyArMjkwLDcgQEAKICAgICAgICAgICAgICAgICAjcHJpbnQgbGluZQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgdCA9IHNlbGYuZXZhbF9saW5lKGxpbmUpCi0gICAgICAgICAgICAgICAgZXhjZXB0IERlY2ltYWxFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIGV4Y2VwdCBzZWxmLmRlY2ltYWwuRGVjaW1hbEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CiAgICAgICAgICAgICAgICAgICAgICNFeGNlcHRpb24gcmFpc2VkIHdoZXJlIHRoZXJlIHNob3VsZG4ndCBoYXZlIGJlZW4gb25lLgogICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ0V4Y2VwdGlvbiAiJytleGNlcHRpb24uX19jbGFzc19fLl9fbmFtZV9fICsgJyIgcmFpc2VkIG9uIGxpbmUgJytsaW5lKQogCkBAIC0yNTQsMjMgKzMxNywyMyBAQAogICAgIGRlZiBldmFsX2RpcmVjdGl2ZShzZWxmLCBzKToKICAgICAgICAgZnVuY3QsIHZhbHVlID0gKHguc3RyaXAoKS5sb3dlcigpIGZvciB4IGluIHMuc3BsaXQoJzonKSkKICAgICAgICAgaWYgZnVuY3QgPT0gJ3JvdW5kaW5nJzoKLSAgICAgICAgICAgIHZhbHVlID0gUm91bmRpbmdEaWN0W3ZhbHVlXQorICAgICAgICAgICAgdmFsdWUgPSBzZWxmLlJvdW5kaW5nRGljdFt2YWx1ZV0KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGludCh2YWx1ZSkKICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogICAgICAgICAgICAgICAgIHBhc3MKIAotICAgICAgICBmdW5jdCA9IHNlbGYuQ2hhbmdlRGljdC5nZXQoZnVuY3QsIE5vbmZ1bmN0aW9uKQorICAgICAgICBmdW5jdCA9IHNlbGYuQ2hhbmdlRGljdC5nZXQoZnVuY3QsIChsYW1iZGEgKmFyZ3M6IE5vbmUpKQogICAgICAgICBmdW5jdCh2YWx1ZSkKIAogICAgIGRlZiBldmFsX2VxdWF0aW9uKHNlbGYsIHMpOgotICAgICAgICAjZ2xvYmFsIERFRkFVTFRfUFJFQ0lTSU9OCi0gICAgICAgICNwcmludCBERUZBVUxUX1BSRUNJU0lPTgogCiAgICAgICAgIGlmIG5vdCBURVNUX0FMTCBhbmQgcmFuZG9tLnJhbmRvbSgpIDwgMC45MDoKICAgICAgICAgICAgIHJldHVybgogCisgICAgICAgIHNlbGYuY29udGV4dC5jbGVhcl9mbGFncygpCisKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgU2lkZXMgPSBzLnNwbGl0KCctPicpCiAgICAgICAgICAgICBMID0gU2lkZXNbMF0uc3RyaXAoKS5zcGxpdCgpCkBAIC0yODMsMjYgKzM0NiwyNiBAQAogICAgICAgICAgICAgYW5zID0gTFswXQogICAgICAgICAgICAgZXhjZXB0aW9ucyA9IExbMTpdCiAgICAgICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBBdHRyaWJ1dGVFcnJvciwgSW5kZXhFcnJvcik6Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkT3BlcmF0aW9uCisgICAgICAgICAgICByYWlzZSBzZWxmLmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbgogICAgICAgICBkZWYgRml4UXVvdGVzKHZhbCk6CiAgICAgICAgICAgICB2YWwgPSB2YWwucmVwbGFjZSgiJyciLCAnU2luZ2xlUXVvdGUnKS5yZXBsYWNlKCciIicsICdEb3VibGVRdW90ZScpCiAgICAgICAgICAgICB2YWwgPSB2YWwucmVwbGFjZSgiJyIsICcnKS5yZXBsYWNlKCciJywgJycpCiAgICAgICAgICAgICB2YWwgPSB2YWwucmVwbGFjZSgnU2luZ2xlUXVvdGUnLCAiJyIpLnJlcGxhY2UoJ0RvdWJsZVF1b3RlJywgJyInKQogICAgICAgICAgICAgcmV0dXJuIHZhbAogCi0gICAgICAgIGlmIGlkIGluIHNraXBwZWRfdGVzdF9pZHM6CisgICAgICAgIGlmIGlkIGluIHNlbGYuc2tpcHBlZF90ZXN0X2lkczoKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGZuYW1lID0gbmFtZUFkYXB0ZXIuZ2V0KGZ1bmN0LCBmdW5jdCkKKyAgICAgICAgZm5hbWUgPSBzZWxmLk5hbWVBZGFwdGVyLmdldChmdW5jdCwgZnVuY3QpCiAgICAgICAgIGlmIGZuYW1lID09ICdyZXNjYWxlJzoKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBmdW5jdCA9IGdldGF0dHIoc2VsZi5jb250ZXh0LCBmbmFtZSkKICAgICAgICAgdmFscyA9IFtdCiAgICAgICAgIGNvbmdsb21lcmF0ZSA9ICcnCiAgICAgICAgIHF1b3RlID0gMAotICAgICAgICB0aGVpcmV4Y2VwdGlvbnMgPSBbRXJyb3JOYW1lc1t4Lmxvd2VyKCldIGZvciB4IGluIGV4Y2VwdGlvbnNdCisgICAgICAgIHRoZWlyZXhjZXB0aW9ucyA9IFtzZWxmLkVycm9yTmFtZXNbeC5sb3dlcigpXSBmb3IgeCBpbiBleGNlcHRpb25zXQogCi0gICAgICAgIGZvciBleGNlcHRpb24gaW4gU2lnbmFsczoKKyAgICAgICAgZm9yIGV4Y2VwdGlvbiBpbiBTaWduYWxzW3NlbGYuZGVjaW1hbF06CiAgICAgICAgICAgICBzZWxmLmNvbnRleHQudHJhcHNbZXhjZXB0aW9uXSA9IDEgI0NhdGNoIHRoZXNlIGJ1Z3MuLi4KICAgICAgICAgZm9yIGV4Y2VwdGlvbiBpbiB0aGVpcmV4Y2VwdGlvbnM6CiAgICAgICAgICAgICBzZWxmLmNvbnRleHQudHJhcHNbZXhjZXB0aW9uXSA9IDAKQEAgLTMyNCw3ICszODcsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0KHNlbGYuY29udGV4dC5jcmVhdGVfZGVjaW1hbCh2KSkKICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBlcnJvcjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgU2lnbmFscyBhcyBlOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IFNpZ25hbHNbc2VsZi5kZWNpbWFsXSBhcyBlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiUmFpc2VkICVzIGluICVzIHdoZW4gJXMgZGlzYWJsZWQiICUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZSwgcywgZXJyb3IpKQogICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKQEAgLTMzMiw3ICszOTUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb250ZXh0LnRyYXBzW2Vycm9yXSA9IDAKICAgICAgICAgICAgICAgICB2ID0gc2VsZi5jb250ZXh0LmNyZWF0ZV9kZWNpbWFsKHYpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHYgPSBEZWNpbWFsKHYsIHNlbGYuY29udGV4dCkKKyAgICAgICAgICAgICAgICB2ID0gc2VsZi5yZWFkX3VubGltaXRlZCh2LCBzZWxmLmNvbnRleHQpCiAgICAgICAgICAgICB2YWxzLmFwcGVuZCh2KQogCiAgICAgICAgIGFucyA9IEZpeFF1b3RlcyhhbnMpCkBAIC0zNDQsNyArNDA3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgZnVuY3QoKnZhbHMpCiAgICAgICAgICAgICAgICAgZXhjZXB0IGVycm9yOgogICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICAgZXhjZXB0IFNpZ25hbHMgYXMgZToKKyAgICAgICAgICAgICAgICBleGNlcHQgU2lnbmFsc1tzZWxmLmRlY2ltYWxdIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiUmFpc2VkICVzIGluICVzIHdoZW4gJXMgZGlzYWJsZWQiICUgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUsIHMsIGVycm9yKSkKICAgICAgICAgICAgICAgICBlbHNlOgpAQCAtMzUyLDE0ICs0MTUsMTQgQEAKICAgICAgICAgICAgICAgICBzZWxmLmNvbnRleHQudHJhcHNbZXJyb3JdID0gMAogCiAgICAgICAgICAgICAjIGFzIGFib3ZlLCBidXQgYWRkIHRyYXBzIGN1bXVsYXRpdmVseSwgdG8gY2hlY2sgcHJlY2VkZW5jZQotICAgICAgICAgICAgb3JkZXJlZF9lcnJvcnMgPSBbZSBmb3IgZSBpbiBPcmRlcmVkU2lnbmFscyBpZiBlIGluIHRoZWlyZXhjZXB0aW9uc10KKyAgICAgICAgICAgIG9yZGVyZWRfZXJyb3JzID0gW2UgZm9yIGUgaW4gT3JkZXJlZFNpZ25hbHNbc2VsZi5kZWNpbWFsXSBpZiBlIGluIHRoZWlyZXhjZXB0aW9uc10KICAgICAgICAgICAgIGZvciBlcnJvciBpbiBvcmRlcmVkX2Vycm9yczoKICAgICAgICAgICAgICAgICBzZWxmLmNvbnRleHQudHJhcHNbZXJyb3JdID0gMQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgZnVuY3QoKnZhbHMpCiAgICAgICAgICAgICAgICAgZXhjZXB0IGVycm9yOgogICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICAgZXhjZXB0IFNpZ25hbHMgYXMgZToKKyAgICAgICAgICAgICAgICBleGNlcHQgU2lnbmFsc1tzZWxmLmRlY2ltYWxdIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiUmFpc2VkICVzIGluICVzOyBleHBlY3RlZCAlcyIgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHR5cGUoZSksIHMsIGVycm9yKSkKICAgICAgICAgICAgICAgICBlbHNlOgpAQCAtMzczLDU0ICs0MzYsNjkgQEAKICAgICAgICAgICAgIHByaW50KCItLSIsIHNlbGYuY29udGV4dCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmVzdWx0ID0gc3RyKGZ1bmN0KCp2YWxzKSkKLSAgICAgICAgICAgIGlmIGZuYW1lIGluIExPR0lDQUxfRlVOQ1RJT05TOgorICAgICAgICAgICAgaWYgZm5hbWUgaW4gc2VsZi5Mb2dpY2FsRnVuY3Rpb25zOgogICAgICAgICAgICAgICAgIHJlc3VsdCA9IHN0cihpbnQoZXZhbChyZXN1bHQpKSkgIyAnVHJ1ZScsICdGYWxzZScgLT4gJzEnLCAnMCcKLSAgICAgICAgZXhjZXB0IFNpZ25hbHMgYXMgZXJyb3I6CisgICAgICAgIGV4Y2VwdCBTaWduYWxzW3NlbGYuZGVjaW1hbF0gYXMgZXJyb3I6CiAgICAgICAgICAgICBzZWxmLmZhaWwoIlJhaXNlZCAlcyBpbiAlcyIgJSAoZXJyb3IsIHMpKQogICAgICAgICBleGNlcHQ6ICNDYXRjaCBhbnkgZXJyb3IgbG9uZyBlbm91Z2ggdG8gc3RhdGUgdGhlIHRlc3QgY2FzZS4KICAgICAgICAgICAgIHByaW50KCJFUlJPUjoiLCBzKQogICAgICAgICAgICAgcmFpc2UKIAogICAgICAgICBteWV4Y2VwdGlvbnMgPSBzZWxmLmdldGV4Y2VwdGlvbnMoKQotICAgICAgICBzZWxmLmNvbnRleHQuY2xlYXJfZmxhZ3MoKQogCiAgICAgICAgIG15ZXhjZXB0aW9ucy5zb3J0KGtleT1yZXByKQogICAgICAgICB0aGVpcmV4Y2VwdGlvbnMuc29ydChrZXk9cmVwcikKIAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgYW5zLAogICAgICAgICAgICAgICAgICAgICAgICAgICdJbmNvcnJlY3QgYW5zd2VyIGZvciAnICsgcyArICcgLS0gZ290ICcgKyByZXN1bHQpCisKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChteWV4Y2VwdGlvbnMsIHRoZWlyZXhjZXB0aW9ucywKICAgICAgICAgICAgICAgJ0luY29ycmVjdCBmbGFncyBzZXQgaW4gJyArIHMgKyAnIC0tIGdvdCAnICsgc3RyKG15ZXhjZXB0aW9ucykpCiAgICAgICAgIHJldHVybgogCiAgICAgZGVmIGdldGV4Y2VwdGlvbnMoc2VsZik6Ci0gICAgICAgIHJldHVybiBbZSBmb3IgZSBpbiBTaWduYWxzIGlmIHNlbGYuY29udGV4dC5mbGFnc1tlXV0KKyAgICAgICAgcmV0dXJuIFtlIGZvciBlIGluIFNpZ25hbHNbc2VsZi5kZWNpbWFsXSBpZiBzZWxmLmNvbnRleHQuZmxhZ3NbZV1dCiAKICAgICBkZWYgY2hhbmdlX3ByZWNpc2lvbihzZWxmLCBwcmVjKToKLSAgICAgICAgc2VsZi5jb250ZXh0LnByZWMgPSBwcmVjCisgICAgICAgIGlmIHNlbGYuZGVjaW1hbCA9PSBDIGFuZCBzZWxmLmRlY2ltYWwuTUFYX1BSRUMgPT0gNDI1MDAwMDAwOgorICAgICAgICAgICAgc2VsZi5jb250ZXh0Ll91bnNhZmVfc2V0cHJlYyhwcmVjKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5jb250ZXh0LnByZWMgPSBwcmVjCiAgICAgZGVmIGNoYW5nZV9yb3VuZGluZ19tZXRob2Qoc2VsZiwgcm91bmRpbmcpOgogICAgICAgICBzZWxmLmNvbnRleHQucm91bmRpbmcgPSByb3VuZGluZwogICAgIGRlZiBjaGFuZ2VfbWluX2V4cG9uZW50KHNlbGYsIGV4cCk6Ci0gICAgICAgIHNlbGYuY29udGV4dC5FbWluID0gZXhwCisgICAgICAgIGlmIHNlbGYuZGVjaW1hbCA9PSBDIGFuZCBzZWxmLmRlY2ltYWwuTUFYX1BSRUMgPT0gNDI1MDAwMDAwOgorICAgICAgICAgICAgc2VsZi5jb250ZXh0Ll91bnNhZmVfc2V0ZW1pbihleHApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmNvbnRleHQuRW1pbiA9IGV4cAogICAgIGRlZiBjaGFuZ2VfbWF4X2V4cG9uZW50KHNlbGYsIGV4cCk6Ci0gICAgICAgIHNlbGYuY29udGV4dC5FbWF4ID0gZXhwCisgICAgICAgIGlmIHNlbGYuZGVjaW1hbCA9PSBDIGFuZCBzZWxmLmRlY2ltYWwuTUFYX1BSRUMgPT0gNDI1MDAwMDAwOgorICAgICAgICAgICAgc2VsZi5jb250ZXh0Ll91bnNhZmVfc2V0ZW1heChleHApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmNvbnRleHQuRW1heCA9IGV4cAogICAgIGRlZiBjaGFuZ2VfY2xhbXAoc2VsZiwgY2xhbXApOgogICAgICAgICBzZWxmLmNvbnRleHQuY2xhbXAgPSBjbGFtcAogCi0KK2NsYXNzIENJQk1UZXN0Q2FzZXMoSUJNVGVzdENhc2VzKToKKyAgICBkZWNpbWFsID0gQworY2xhc3MgUHlJQk1UZXN0Q2FzZXMoSUJNVGVzdENhc2VzKToKKyAgICBkZWNpbWFsID0gUAogCiAjIFRoZSBmb2xsb3dpbmcgY2xhc3NlcyB0ZXN0IHRoZSBiZWhhdmlvdXIgb2YgRGVjaW1hbCBhY2NvcmRpbmcgdG8gUEVQIDMyNwogCi1jbGFzcyBEZWNpbWFsRXhwbGljaXRDb25zdHJ1Y3Rpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIEV4cGxpY2l0Q29uc3RydWN0aW9uVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgJycnVW5pdCB0ZXN0cyBmb3IgRXhwbGljaXQgQ29uc3RydWN0aW9uIGNhc2VzIG9mIERlY2ltYWwuJycnCiAKICAgICBkZWYgdGVzdF9leHBsaWNpdF9lbXB0eShzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgpLCBEZWNpbWFsKCIwIikpCiAKICAgICBkZWYgdGVzdF9leHBsaWNpdF9mcm9tX05vbmUoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIERlY2ltYWwsIE5vbmUpCiAKICAgICBkZWYgdGVzdF9leHBsaWNpdF9mcm9tX2ludChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCiAKICAgICAgICAgI3Bvc2l0aXZlCiAgICAgICAgIGQgPSBEZWNpbWFsKDQ1KQpAQCAtNDM4LDcgKzUxNiwxOCBAQAogICAgICAgICBkID0gRGVjaW1hbCgwKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihkKSwgJzAnKQogCisgICAgICAgICMgc2luZ2xlIHdvcmQgbG9uZ3MKKyAgICAgICAgZm9yIG4gaW4gcmFuZ2UoMCwgMzIpOgorICAgICAgICAgICAgZm9yIHNpZ24gaW4gKC0xLCAxKToKKyAgICAgICAgICAgICAgICBmb3IgeCBpbiByYW5nZSgtNSwgNSk6CisgICAgICAgICAgICAgICAgICAgIGkgPSBzaWduICogKDIqKm4gKyB4KQorICAgICAgICAgICAgICAgICAgICBkID0gRGVjaW1hbChpKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihkKSwgc3RyKGkpKQorCiAgICAgZGVmIHRlc3RfZXhwbGljaXRfZnJvbV9zdHJpbmcoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBJbnZhbGlkT3BlcmF0aW9uID0gc2VsZi5kZWNpbWFsLkludmFsaWRPcGVyYXRpb24KKyAgICAgICAgbG9jYWxjb250ZXh0ID0gc2VsZi5kZWNpbWFsLmxvY2FsY29udGV4dAogCiAgICAgICAgICNlbXB0eQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihEZWNpbWFsKCcnKSksICdOYU4nKQpAQCAtNDU4LDggKzU0NywzNSBAQAogICAgICAgICAjbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBwZXJtaXR0ZWQKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoRGVjaW1hbCgnMS4zRTQgXG4nKSksICcxLjNFKzQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihEZWNpbWFsKCcgIC03Ljg5JykpLCAnLTcuODknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihEZWNpbWFsKCIgIDMuNDU2NzkgICIpKSwgJzMuNDU2NzknKQorCisgICAgICAgICMgdW5pY29kZSB3aGl0ZXNwYWNlCisgICAgICAgIGZvciBsZWFkIGluIFsiIiwgJyAnLCAnXHUwMGEwJywgJ1x1MjA1ZiddOgorICAgICAgICAgICAgZm9yIHRyYWlsIGluIFsiIiwgJyAnLCAnXHUwMGEwJywgJ1x1MjA1ZiddOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKERlY2ltYWwobGVhZCArICc5LjMxMUUrMjgnICsgdHJhaWwpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc5LjMxMUUrMjgnKQorCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzoKKyAgICAgICAgICAgIGMudHJhcHNbSW52YWxpZE9wZXJhdGlvbl0gPSBUcnVlCisgICAgICAgICAgICAjIEludmFsaWQgc3RyaW5nCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBEZWNpbWFsLCAieHl6IikKKyAgICAgICAgICAgICMgVHdvIGFyZ3VtZW50cyBtYXgKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRGVjaW1hbCwgIjEyMzQiLCAieCIsICJ5IikKKworICAgICAgICAgICAgIyBzcGFjZSB3aXRoaW4gdGhlIG51bWVyaWMgcGFydAorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgRGVjaW1hbCwgIjFcdTAwYTAyXHUwMGEwMyIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBEZWNpbWFsLCAiXHUwMGEwMVx1MDBhMDJcdTAwYTAiKQorCisgICAgICAgICAgICAjIHVuaWNvZGUgd2hpdGVzcGFjZQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgRGVjaW1hbCwgIlx1MDBhMCIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBEZWNpbWFsLCAiXHUwMGEwXHUwMGEwIikKKworICAgICAgICAgICAgIyBlbWJlZGRlZCBOVUwKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sIERlY2ltYWwsICIxMlx1MDAwMDMiKQorCiAKICAgICBkZWYgdGVzdF9leHBsaWNpdF9mcm9tX3R1cGxlcyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCiAKICAgICAgICAgI3plcm8KICAgICAgICAgZCA9IERlY2ltYWwoICgwLCAoMCwpLCAwKSApCkBAIC00NzcsNiArNTkzLDEwIEBACiAgICAgICAgIGQgPSBEZWNpbWFsKCAoMSwgKDQsIDMsIDQsIDksIDEsIDMsIDUsIDMsIDQpLCAtMjUpICkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZCksICctNC4zNDkxMzUzNEUtMTcnKQogCisgICAgICAgICNpbmYKKyAgICAgICAgZCA9IERlY2ltYWwoICgwLCAoKSwgIkYiKSApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGQpLCAnSW5maW5pdHknKQorCiAgICAgICAgICN3cm9uZyBudW1iZXIgb2YgaXRlbXMKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgRGVjaW1hbCwgKDEsICg0LCAzLCA0LCA5LCAxKSkgKQogCkBAIC00OTEsNDUgKzYxMSw2MyBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBEZWNpbWFsLCAoMSwgKDQsIDMsIDQsIDksIDEpLCAnMScpICkKIAogICAgICAgICAjYmFkIGNvZWZmaWNpZW50cworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBEZWNpbWFsLCAoMSwgInh5eiIsIDIpICkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgRGVjaW1hbCwgKDEsICg0LCAzLCA0LCBOb25lLCAxKSwgMikgKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBEZWNpbWFsLCAoMSwgKDQsIC0zLCA0LCA5LCAxKSwgMikgKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBEZWNpbWFsLCAoMSwgKDQsIDEwLCA0LCA5LCAxKSwgMikgKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBEZWNpbWFsLCAoMSwgKDQsIDMsIDQsICdhJywgMSksIDIpICkKIAorICAgIGRlZiB0ZXN0X2V4cGxpY2l0X2Zyb21fbGlzdChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKKyAgICAgICAgZCA9IERlY2ltYWwoWzAsIFswXSwgMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGQpLCAnMCcpCisKKyAgICAgICAgZCA9IERlY2ltYWwoWzEsIFs0LCAzLCA0LCA5LCAxLCAzLCA1LCAzLCA0XSwgLTI1XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZCksICctNC4zNDkxMzUzNEUtMTcnKQorCisgICAgICAgIGQgPSBEZWNpbWFsKFsxLCAoNCwgMywgNCwgOSwgMSwgMywgNSwgMywgNCksIC0yNV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGQpLCAnLTQuMzQ5MTM1MzRFLTE3JykKKworICAgICAgICBkID0gRGVjaW1hbCgoMSwgWzQsIDMsIDQsIDksIDEsIDMsIDUsIDMsIDRdLCAtMjUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihkKSwgJy00LjM0OTEzNTM0RS0xNycpCisKICAgICBkZWYgdGVzdF9leHBsaWNpdF9mcm9tX2Jvb2woc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorCiAgICAgICAgIHNlbGYuYXNzZXJ0SXMoYm9vbChEZWNpbWFsKDApKSwgRmFsc2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0SXMoYm9vbChEZWNpbWFsKDEpKSwgVHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKEZhbHNlKSwgRGVjaW1hbCgwKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKFRydWUpLCBEZWNpbWFsKDEpKQogCiAgICAgZGVmIHRlc3RfZXhwbGljaXRfZnJvbV9EZWNpbWFsKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKIAogICAgICAgICAjcG9zaXRpdmUKICAgICAgICAgZCA9IERlY2ltYWwoNDUpCiAgICAgICAgIGUgPSBEZWNpbWFsKGQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGUpLCAnNDUnKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlkKGQpLCBpZChlKSkKIAogICAgICAgICAjdmVyeSBsYXJnZSBwb3NpdGl2ZQogICAgICAgICBkID0gRGVjaW1hbCg1MDAwMDAxMjMpCiAgICAgICAgIGUgPSBEZWNpbWFsKGQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGUpLCAnNTAwMDAwMTIzJykKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChpZChkKSwgaWQoZSkpCiAKICAgICAgICAgI25lZ2F0aXZlCiAgICAgICAgIGQgPSBEZWNpbWFsKC00NSkKICAgICAgICAgZSA9IERlY2ltYWwoZCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZSksICctNDUnKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlkKGQpLCBpZChlKSkKIAogICAgICAgICAjemVybwogICAgICAgICBkID0gRGVjaW1hbCgwKQogICAgICAgICBlID0gRGVjaW1hbChkKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihlKSwgJzAnKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlkKGQpLCBpZChlKSkKIAogICAgIEByZXF1aXJlc19JRUVFXzc1NAogICAgIGRlZiB0ZXN0X2V4cGxpY2l0X2Zyb21fZmxvYXQoc2VsZik6CisKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKICAgICAgICAgciA9IERlY2ltYWwoMC4xKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUociksIERlY2ltYWwpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHIpLApAQCAtNTUwLDggKzY4OCwxMSBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCBmbG9hdChEZWNpbWFsKHgpKSkgIyByb3VuZHRyaXAKIAogICAgIGRlZiB0ZXN0X2V4cGxpY2l0X2NvbnRleHRfY3JlYXRlX2RlY2ltYWwoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBJbnZhbGlkT3BlcmF0aW9uID0gc2VsZi5kZWNpbWFsLkludmFsaWRPcGVyYXRpb24KKyAgICAgICAgUm91bmRlZCA9IHNlbGYuZGVjaW1hbC5Sb3VuZGVkCiAKLSAgICAgICAgbmMgPSBjb3B5LmNvcHkoZ2V0Y29udGV4dCgpKQorICAgICAgICBuYyA9IGNvcHkuY29weShzZWxmLmRlY2ltYWwuZ2V0Y29udGV4dCgpKQogICAgICAgICBuYy5wcmVjID0gMwogCiAgICAgICAgICMgZW1wdHkKQEAgLTU5Miw3ICs3MzMsNzMgQEAKICAgICAgICAgZCA9IG5jLmNyZWF0ZV9kZWNpbWFsKHByZXZkZWMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGQpLCAnNS4wMEUrOCcpCiAKKyAgICAgICAgIyBtb3JlIGludGVnZXJzCisgICAgICAgIG5jLnByZWMgPSAyOAorICAgICAgICBuYy50cmFwc1tJbnZhbGlkT3BlcmF0aW9uXSA9IFRydWUKKworICAgICAgICBmb3IgdiBpbiBbLTIqKjYzLTEsIC0yKio2MywgLTIqKjMxLTEsIC0yKiozMSwgMCwKKyAgICAgICAgICAgICAgICAgICAyKiozMS0xLCAyKiozMSwgMioqNjMtMSwgMioqNjNdOgorICAgICAgICAgICAgZCA9IG5jLmNyZWF0ZV9kZWNpbWFsKHYpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShkLCBEZWNpbWFsKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW50KGQpLCB2KQorCisgICAgICAgIG5jLnByZWMgPSAzCisgICAgICAgIG5jLnRyYXBzW1JvdW5kZWRdID0gVHJ1ZQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSb3VuZGVkLCBuYy5jcmVhdGVfZGVjaW1hbCwgMTIzNCkKKworICAgICAgICAjIGZyb20gc3RyaW5nCisgICAgICAgIG5jLnByZWMgPSAyOAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihuYy5jcmVhdGVfZGVjaW1hbCgnMEUtMDE3JykpLCAnMEUtMTcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihuYy5jcmVhdGVfZGVjaW1hbCgnNDUnKSksICc0NScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKG5jLmNyZWF0ZV9kZWNpbWFsKCctSW5mJykpLCAnLUluZmluaXR5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIobmMuY3JlYXRlX2RlY2ltYWwoJ05hTjEyMycpKSwgJ05hTjEyMycpCisKKyAgICAgICAgIyBpbnZhbGlkIGFyZ3VtZW50cworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBuYy5jcmVhdGVfZGVjaW1hbCwgInh5eiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG5jLmNyZWF0ZV9kZWNpbWFsLCAoMSwgInh5eiIsIC0yNSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbmMuY3JlYXRlX2RlY2ltYWwsICIxMjM0IiwgIjU2NzgiKQorCisgICAgICAgICMgdG9vIG1hbnkgTmFOIHBheWxvYWQgZGlnaXRzCisgICAgICAgIG5jLnByZWMgPSAzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sIG5jLmNyZWF0ZV9kZWNpbWFsLCAnTmFOMTIzNDUnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBuYy5jcmVhdGVfZGVjaW1hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCgnTmFOMTIzNDUnKSkKKworICAgICAgICBuYy50cmFwc1tJbnZhbGlkT3BlcmF0aW9uXSA9IEZhbHNlCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKG5jLmNyZWF0ZV9kZWNpbWFsKCdOYU4xMjM0NScpKSwgJ05hTicpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuYy5mbGFnc1tJbnZhbGlkT3BlcmF0aW9uXSkKKworICAgICAgICBuYy5mbGFnc1tJbnZhbGlkT3BlcmF0aW9uXSA9IEZhbHNlCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKG5jLmNyZWF0ZV9kZWNpbWFsKERlY2ltYWwoJ05hTjEyMzQ1JykpKSwgJ05hTicpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuYy5mbGFnc1tJbnZhbGlkT3BlcmF0aW9uXSkKKworICAgIGRlZiB0ZXN0X2V4cGxpY2l0X2NvbnRleHRfY3JlYXRlX2Zyb21fZmxvYXQoc2VsZik6CisKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKKyAgICAgICAgbmMgPSBzZWxmLmRlY2ltYWwuQ29udGV4dCgpCisgICAgICAgIHIgPSBuYy5jcmVhdGVfZGVjaW1hbCgwLjEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShyKSwgRGVjaW1hbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIociksICcwLjEwMDAwMDAwMDAwMDAwMDAwNTU1MTExNTEyMzEnKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobmMuY3JlYXRlX2RlY2ltYWwoZmxvYXQoJ25hbicpKS5pc19xbmFuKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuYy5jcmVhdGVfZGVjaW1hbChmbG9hdCgnaW5mJykpLmlzX2luZmluaXRlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuYy5jcmVhdGVfZGVjaW1hbChmbG9hdCgnLWluZicpKS5pc19pbmZpbml0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihuYy5jcmVhdGVfZGVjaW1hbChmbG9hdCgnbmFuJykpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHIobmMuY3JlYXRlX2RlY2ltYWwoJ05hTicpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIobmMuY3JlYXRlX2RlY2ltYWwoZmxvYXQoJ2luZicpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKG5jLmNyZWF0ZV9kZWNpbWFsKCdJbmZpbml0eScpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIobmMuY3JlYXRlX2RlY2ltYWwoZmxvYXQoJy1pbmYnKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihuYy5jcmVhdGVfZGVjaW1hbCgnLUluZmluaXR5JykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihuYy5jcmVhdGVfZGVjaW1hbChmbG9hdCgnLTAuMCcpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKG5jLmNyZWF0ZV9kZWNpbWFsKCctMCcpKSkKKyAgICAgICAgbmMucHJlYyA9IDEwMAorICAgICAgICBmb3IgaSBpbiByYW5nZSgyMDApOgorICAgICAgICAgICAgeCA9IHJhbmRvbS5leHBvdmFyaWF0ZSgwLjAxKSAqIChyYW5kb20ucmFuZG9tKCkgKiAyLjAgLSAxLjApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIGZsb2F0KG5jLmNyZWF0ZV9kZWNpbWFsKHgpKSkgIyByb3VuZHRyaXAKKwogICAgIGRlZiB0ZXN0X3VuaWNvZGVfZGlnaXRzKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKwogICAgICAgICB0ZXN0X3ZhbHVlcyA9IHsKICAgICAgICAgICAgICdcdWZmMTEnOiAnMScsCiAgICAgICAgICAgICAnXHUwNjYwLlx1MDY2MFx1MDY2M1x1MDY2N1x1MDY2MmUtXHUwNjYzJyA6ICcwLjAwMDAzNzInLApAQCAtNjAxLDI5ICs4MDgsNDEgQEAKICAgICAgICAgZm9yIGlucHV0LCBleHBlY3RlZCBpbiB0ZXN0X3ZhbHVlcy5pdGVtcygpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoRGVjaW1hbChpbnB1dCkpLCBleHBlY3RlZCkKIAorY2xhc3MgQ0V4cGxpY2l0Q29uc3RydWN0aW9uVGVzdChFeHBsaWNpdENvbnN0cnVjdGlvblRlc3QpOgorICAgIGRlY2ltYWwgPSBDCitjbGFzcyBQeUV4cGxpY2l0Q29uc3RydWN0aW9uVGVzdChFeHBsaWNpdENvbnN0cnVjdGlvblRlc3QpOgorICAgIGRlY2ltYWwgPSBQCiAKLWNsYXNzIERlY2ltYWxJbXBsaWNpdENvbnN0cnVjdGlvblRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgSW1wbGljaXRDb25zdHJ1Y3Rpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAnJydVbml0IHRlc3RzIGZvciBJbXBsaWNpdCBDb25zdHJ1Y3Rpb24gY2FzZXMgb2YgRGVjaW1hbC4nJycKIAogICAgIGRlZiB0ZXN0X2ltcGxpY2l0X2Zyb21fTm9uZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBldmFsLCAnRGVjaW1hbCg1KSArIE5vbmUnLCBnbG9iYWxzKCkpCisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGV2YWwsICdEZWNpbWFsKDUpICsgTm9uZScsIGxvY2FscygpKQogCiAgICAgZGVmIHRlc3RfaW1wbGljaXRfZnJvbV9pbnQoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorCiAgICAgICAgICNub3JtYWwKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoRGVjaW1hbCg1KSArIDQ1KSwgJzUwJykKICAgICAgICAgI2V4Y2VlZGluZyBwcmVjaXNpb24KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDUpICsgMTIzNDU2Nzg5MDAwLCBEZWNpbWFsKDEyMzQ1Njc4OTAwMCkpCiAKICAgICBkZWYgdGVzdF9pbXBsaWNpdF9mcm9tX3N0cmluZyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBldmFsLCAnRGVjaW1hbCg1KSArICIzIicsIGdsb2JhbHMoKSkKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZXZhbCwgJ0RlY2ltYWwoNSkgKyAiMyInLCBsb2NhbHMoKSkKIAogICAgIGRlZiB0ZXN0X2ltcGxpY2l0X2Zyb21fZmxvYXQoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZXZhbCwgJ0RlY2ltYWwoNSkgKyAyLjInLCBnbG9iYWxzKCkpCisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGV2YWwsICdEZWNpbWFsKDUpICsgMi4yJywgbG9jYWxzKCkpCiAKICAgICBkZWYgdGVzdF9pbXBsaWNpdF9mcm9tX0RlY2ltYWwoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoNSkgKyBEZWNpbWFsKDQ1KSwgRGVjaW1hbCg1MCkpCiAKICAgICBkZWYgdGVzdF9yb3Aoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorCiAgICAgICAgICMgQWxsb3cgb3RoZXIgY2xhc3NlcyB0byBiZSB0cmFpbmVkIHRvIGludGVyYWN0IHdpdGggRGVjaW1hbHMKICAgICAgICAgY2xhc3MgRToKICAgICAgICAgICAgIGRlZiBfX2Rpdm1vZF9fKHNlbGYsIG90aGVyKToKQEAgLTY3MSwxMCArODkwLDE2IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwoJ0RlY2ltYWwoMTApJyArIHN5bSArICdFKCknKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzEwJyArIHJvcCArICdzdHInKQogCitjbGFzcyBDSW1wbGljaXRDb25zdHJ1Y3Rpb25UZXN0KEltcGxpY2l0Q29uc3RydWN0aW9uVGVzdCk6CisgICAgZGVjaW1hbCA9IEMKK2NsYXNzIFB5SW1wbGljaXRDb25zdHJ1Y3Rpb25UZXN0KEltcGxpY2l0Q29uc3RydWN0aW9uVGVzdCk6CisgICAgZGVjaW1hbCA9IFAKIAotY2xhc3MgRGVjaW1hbEZvcm1hdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgRm9ybWF0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgJycnVW5pdCB0ZXN0cyBmb3IgdGhlIGZvcm1hdCBmdW5jdGlvbi4nJycKICAgICBkZWYgdGVzdF9mb3JtYXR0aW5nKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKwogICAgICAgICAjIHRyaXBsZXMgZ2l2aW5nIGEgZm9ybWF0LCBhIERlY2ltYWwsIGFuZCB0aGUgZXhwZWN0ZWQgcmVzdWx0CiAgICAgICAgIHRlc3RfdmFsdWVzID0gWwogICAgICAgICAgICAgKCdlJywgJzBFLTE1JywgJzBlLTE1JyksCkBAIC03MzAsNiArOTU1LDcgQEAKICAgICAgICAgICAgICgnZycsICcwRS03JywgJzBlLTcnKSwKICAgICAgICAgICAgICgnZycsICctMEUyJywgJy0wZSsyJyksCiAgICAgICAgICAgICAoJy4wZycsICczLjE0MTU5MjY1JywgJzMnKSwgICMgMCBzaWcgZmlnIC0+IDEgc2lnIGZpZworICAgICAgICAgICAgKCcuMG4nLCAnMy4xNDE1OTI2NScsICczJyksICAjIHNhbWUgZm9yICduJwogICAgICAgICAgICAgKCcuMWcnLCAnMy4xNDE1OTI2NScsICczJyksCiAgICAgICAgICAgICAoJy4yZycsICczLjE0MTU5MjY1JywgJzMuMScpLAogICAgICAgICAgICAgKCcuNWcnLCAnMy4xNDE1OTI2NScsICczLjE0MTYnKSwKQEAgLTgxNCw1NiArMTA0MCw2MCBAQAogCiAgICAgICAgICAgICAjIGlzc3VlIDY4NTAKICAgICAgICAgICAgICgnYT0tNy4wJywgJzAuMTIzNDUnLCAnYWFhYTAuMScpLAotCi0gICAgICAgICAgICAjIElzc3VlIDcwOTQ6IEFsdGVybmF0ZSBmb3JtYXR0aW5nIChzcGVjaWZpZWQgYnkgIykKLSAgICAgICAgICAgICgnLjBlJywgJzEuMCcsICcxZSswJyksCi0gICAgICAgICAgICAoJyMuMGUnLCAnMS4wJywgJzEuZSswJyksCi0gICAgICAgICAgICAoJy4wZicsICcxLjAnLCAnMScpLAotICAgICAgICAgICAgKCcjLjBmJywgJzEuMCcsICcxLicpLAotICAgICAgICAgICAgKCdnJywgJzEuMScsICcxLjEnKSwKLSAgICAgICAgICAgICgnI2cnLCAnMS4xJywgJzEuMScpLAotICAgICAgICAgICAgKCcuMGcnLCAnMScsICcxJyksCi0gICAgICAgICAgICAoJyMuMGcnLCAnMScsICcxLicpLAotICAgICAgICAgICAgKCcuMCUnLCAnMS4wJywgJzEwMCUnKSwKLSAgICAgICAgICAgICgnIy4wJScsICcxLjAnLCAnMTAwLiUnKSwKICAgICAgICAgICAgIF0KICAgICAgICAgZm9yIGZtdCwgZCwgcmVzdWx0IGluIHRlc3RfdmFsdWVzOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3JtYXQoRGVjaW1hbChkKSwgZm10KSwgcmVzdWx0KQogCisgICAgICAgICMgYnl0ZXMgZm9ybWF0IGFyZ3VtZW50CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRGVjaW1hbCgxKS5fX2Zvcm1hdF9fLCBiJy0wMjAnKQorCiAgICAgZGVmIHRlc3Rfbl9mb3JtYXQoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGZyb20gbG9jYWxlIGltcG9ydCBDSEFSX01BWAogICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICAgICByZXR1cm4KIAorICAgICAgICBkZWYgbWFrZV9ncm91cGluZyhsc3QpOgorICAgICAgICAgICAgcmV0dXJuICcnLmpvaW4oW2Nocih4KSBmb3IgeCBpbiBsc3RdKSBpZiBzZWxmLmRlY2ltYWwgPT0gQyBlbHNlIGxzdAorCisgICAgICAgIGRlZiBnZXRfZm10KHgsIG92ZXJyaWRlPU5vbmUsIGZtdD0nbicpOgorICAgICAgICAgICAgaWYgc2VsZi5kZWNpbWFsID09IEM6CisgICAgICAgICAgICAgICAgcmV0dXJuIERlY2ltYWwoeCkuX19mb3JtYXRfXyhmbXQsIG92ZXJyaWRlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gRGVjaW1hbCh4KS5fX2Zvcm1hdF9fKGZtdCwgX2xvY2FsZWNvbnY9b3ZlcnJpZGUpCisKICAgICAgICAgIyBTZXQgdXAgc29tZSBsb2NhbGVjb252LWxpa2UgZGljdGlvbmFyaWVzCiAgICAgICAgIGVuX1VTID0gewogICAgICAgICAgICAgJ2RlY2ltYWxfcG9pbnQnIDogJy4nLAotICAgICAgICAgICAgJ2dyb3VwaW5nJyA6IFszLCAzLCAwXSwKLSAgICAgICAgICAgICd0aG91c2FuZHNfc2VwJzogJywnCisgICAgICAgICAgICAnZ3JvdXBpbmcnIDogbWFrZV9ncm91cGluZyhbMywgMywgMF0pLAorICAgICAgICAgICAgJ3Rob3VzYW5kc19zZXAnIDogJywnCiAgICAgICAgICAgICB9CiAKICAgICAgICAgZnJfRlIgPSB7CiAgICAgICAgICAgICAnZGVjaW1hbF9wb2ludCcgOiAnLCcsCi0gICAgICAgICAgICAnZ3JvdXBpbmcnIDogW0NIQVJfTUFYXSwKKyAgICAgICAgICAgICdncm91cGluZycgOiBtYWtlX2dyb3VwaW5nKFtDSEFSX01BWF0pLAogICAgICAgICAgICAgJ3Rob3VzYW5kc19zZXAnIDogJycKICAgICAgICAgICAgIH0KIAogICAgICAgICBydV9SVSA9IHsKICAgICAgICAgICAgICdkZWNpbWFsX3BvaW50JyA6ICcsJywKLSAgICAgICAgICAgICdncm91cGluZycgOiBbMywgMywgMF0sCisgICAgICAgICAgICAnZ3JvdXBpbmcnOiBtYWtlX2dyb3VwaW5nKFszLCAzLCAwXSksCiAgICAgICAgICAgICAndGhvdXNhbmRzX3NlcCcgOiAnICcKICAgICAgICAgICAgIH0KIAogICAgICAgICBjcmF6eSA9IHsKICAgICAgICAgICAgICdkZWNpbWFsX3BvaW50JyA6ICcmJywKLSAgICAgICAgICAgICdncm91cGluZycgOiBbMSwgNCwgMiwgQ0hBUl9NQVhdLAorICAgICAgICAgICAgJ2dyb3VwaW5nJzogbWFrZV9ncm91cGluZyhbMSwgNCwgMiwgQ0hBUl9NQVhdKSwKICAgICAgICAgICAgICd0aG91c2FuZHNfc2VwJyA6ICctJwogICAgICAgICAgICAgfQogCi0KLSAgICAgICAgZGVmIGdldF9mbXQoeCwgbG9jYWxlLCBmbXQ9J24nKToKLSAgICAgICAgICAgIHJldHVybiBEZWNpbWFsLl9fZm9ybWF0X18oRGVjaW1hbCh4KSwgZm10LCBfbG9jYWxlY29udj1sb2NhbGUpCisgICAgICAgIGRvdHNlcF93aWRlID0geworICAgICAgICAgICAgJ2RlY2ltYWxfcG9pbnQnIDogYidceGMyXHhiZicuZGVjb2RlKCd1dGYtOCcpLAorICAgICAgICAgICAgJ2dyb3VwaW5nJzogbWFrZV9ncm91cGluZyhbMywgMywgMF0pLAorICAgICAgICAgICAgJ3Rob3VzYW5kc19zZXAnIDogYidceGMyXHhiNCcuZGVjb2RlKCd1dGYtOCcpCisgICAgICAgICAgICB9CiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfZm10KERlY2ltYWwoJzEyLjcnKSwgZW5fVVMpLCAnMTIuNycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0X2ZtdChEZWNpbWFsKCcxMi43JyksIGZyX0ZSKSwgJzEyLDcnKQpAQCAtOTAyLDExICsxMTMyLDMzIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0X2ZtdCgxMjM0NTYsIGNyYXp5LCAnMDEybicpLCAnMDAtMDEtMjM0NS02JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfZm10KDEyMzQ1NiwgY3JhenksICcwMTNuJyksICcwMDAtMDEtMjM0NS02JykKIAorICAgICAgICAjIHdpZGUgY2hhciBzZXBhcmF0b3IgYW5kIGRlY2ltYWwgcG9pbnQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfZm10KERlY2ltYWwoJy0xLjUnKSwgZG90c2VwX3dpZGUsICcwMjBuJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJy0wXHUwMGI0MDAwXHUwMGI0MDAwXHUwMGI0MDAwXHUwMGI0MDAxXHUwMGJmNScpCiAKLWNsYXNzIERlY2ltYWxBcml0aG1ldGljT3BlcmF0b3JzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3Rfd2lkZV9jaGFyX3NlcGFyYXRvcl9kZWNpbWFsX3BvaW50KHNlbGYpOgorICAgICAgICAjIGxvY2FsZSB3aXRoIHdpZGUgY2hhciBzZXBhcmF0b3IgYW5kIGRlY2ltYWwgcG9pbnQKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbG9jYWxlLnNldGxvY2FsZShsb2NhbGUuTENfQUxMLCAncHNfQUYnKQorICAgICAgICBleGNlcHQgbG9jYWxlLkVycm9yOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3JtYXQoRGVjaW1hbCgnMTAwMDAwMDAwLjEyMycpLCAnbicpLAorICAgICAgICAgICAgICAgICAgICAgICAgICcxMDBcdTA2NmMwMDBcdTA2NmMwMDBcdTA2NmIxMjMnKQorICAgICAgICBsb2NhbGUucmVzZXRsb2NhbGUoKQorCitjbGFzcyBDRm9ybWF0VGVzdChGb3JtYXRUZXN0KToKKyAgICBkZWNpbWFsID0gQworY2xhc3MgUHlGb3JtYXRUZXN0KEZvcm1hdFRlc3QpOgorICAgIGRlY2ltYWwgPSBQCisKK2NsYXNzIEFyaXRobWV0aWNPcGVyYXRvcnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAnJydVbml0IHRlc3RzIGZvciBhbGwgYXJpdGhtZXRpYyBvcGVyYXRvcnMsIGJpbmFyeSBhbmQgdW5hcnkuJycnCiAKICAgICBkZWYgdGVzdF9hZGRpdGlvbihzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCiAKICAgICAgICAgZDEgPSBEZWNpbWFsKCctMTEuMScpCiAgICAgICAgIGQyID0gRGVjaW1hbCgnMjIuMicpCkBAIC05MzQsNiArMTE4Niw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZDEsIERlY2ltYWwoJzE2LjEnKSkKIAogICAgIGRlZiB0ZXN0X3N1YnRyYWN0aW9uKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKIAogICAgICAgICBkMSA9IERlY2ltYWwoJy0xMS4xJykKICAgICAgICAgZDIgPSBEZWNpbWFsKCcyMi4yJykKQEAgLTk2MSw2ICsxMjE0LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkMSwgRGVjaW1hbCgnLTM4LjMnKSkKIAogICAgIGRlZiB0ZXN0X211bHRpcGxpY2F0aW9uKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKIAogICAgICAgICBkMSA9IERlY2ltYWwoJy01JykKICAgICAgICAgZDIgPSBEZWNpbWFsKCczJykKQEAgLTk4OCw2ICsxMjQyLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkMSwgRGVjaW1hbCgnLTc1JykpCiAKICAgICBkZWYgdGVzdF9kaXZpc2lvbihzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCiAKICAgICAgICAgZDEgPSBEZWNpbWFsKCctNScpCiAgICAgICAgIGQyID0gRGVjaW1hbCgnMicpCkBAIC0xMDE1LDYgKzEyNzAsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQxLCBEZWNpbWFsKCctMC42MjUnKSkKIAogICAgIGRlZiB0ZXN0X2Zsb29yX2RpdmlzaW9uKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKIAogICAgICAgICBkMSA9IERlY2ltYWwoJzUnKQogICAgICAgICBkMiA9IERlY2ltYWwoJzInKQpAQCAtMTA0Miw2ICsxMjk4LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkMSwgRGVjaW1hbCgnMScpKQogCiAgICAgZGVmIHRlc3RfcG93ZXJpbmcoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAogCiAgICAgICAgIGQxID0gRGVjaW1hbCgnNScpCiAgICAgICAgIGQyID0gRGVjaW1hbCgnMicpCkBAIC0xMDY5LDYgKzEzMjYsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQxLCBEZWNpbWFsKCczOTA2MjUnKSkKIAogICAgIGRlZiB0ZXN0X21vZHVsZShzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCiAKICAgICAgICAgZDEgPSBEZWNpbWFsKCc1JykKICAgICAgICAgZDIgPSBEZWNpbWFsKCcyJykKQEAgLTEwOTYsNiArMTM1NCw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZDEsIERlY2ltYWwoJzEnKSkKIAogICAgIGRlZiB0ZXN0X2Zsb29yX2Rpdl9tb2R1bGUoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAogCiAgICAgICAgIGQxID0gRGVjaW1hbCgnNScpCiAgICAgICAgIGQyID0gRGVjaW1hbCgnMicpCkBAIC0xMTIyLDYgKzEzODEsOCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUocSksIHR5cGUoZDEpKQogCiAgICAgZGVmIHRlc3RfdW5hcnlfb3BlcmF0b3JzKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCtEZWNpbWFsKDQ1KSwgRGVjaW1hbCgrNDUpKSAgICAgICAgICAgIyAgKwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKC1EZWNpbWFsKDQ1KSwgRGVjaW1hbCgtNDUpKSAgICAgICAgICAgIyAgLQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFicyhEZWNpbWFsKDQ1KSksIGFicyhEZWNpbWFsKC00NSkpKSAgIyBhYnMKQEAgLTExMzQsNiArMTM5NSw5IEBACiAKICAgICAgICAgIyBlcXVhbGl0eSBjb21wYXJpc29ucyAoPT0sICE9KSBpbnZvbHZpbmcgb25seSBxdWlldCBuYW5zCiAgICAgICAgICMgZG9uJ3Qgc2lnbmFsLCBidXQgcmV0dXJuIEZhbHNlIG9yIFRydWUgcmVzcGVjdGl2ZWx5LgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgSW52YWxpZE9wZXJhdGlvbiA9IHNlbGYuZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uCisgICAgICAgIGxvY2FsY29udGV4dCA9IHNlbGYuZGVjaW1hbC5sb2NhbGNvbnRleHQKIAogICAgICAgICBuID0gRGVjaW1hbCgnTmFOJykKICAgICAgICAgcyA9IERlY2ltYWwoJ3NOYU4nKQpAQCAtMTE3OSw1MyArMTQ0MywxMjQgQEAKICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgb3AsIHgsIHkpCiAKICAgICBkZWYgdGVzdF9jb3B5X3NpZ24oc2VsZik6Ci0gICAgICAgIGQgPSBEZWNpbWFsKDEpLmNvcHlfc2lnbihEZWNpbWFsKC0yKSkKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCiAKKyAgICAgICAgZCA9IERlY2ltYWwoMSkuY29weV9zaWduKERlY2ltYWwoLTIpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoMSkuY29weV9zaWduKC0yKSwgZCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBEZWNpbWFsKDEpLmNvcHlfc2lnbiwgJy0yJykKIAorY2xhc3MgQ0FyaXRobWV0aWNPcGVyYXRvcnNUZXN0KEFyaXRobWV0aWNPcGVyYXRvcnNUZXN0KToKKyAgICBkZWNpbWFsID0gQworY2xhc3MgUHlBcml0aG1ldGljT3BlcmF0b3JzVGVzdChBcml0aG1ldGljT3BlcmF0b3JzVGVzdCk6CisgICAgZGVjaW1hbCA9IFAKKwogIyBUaGUgZm9sbG93aW5nIGFyZSB0d28gZnVuY3Rpb25zIHVzZWQgdG8gdGVzdCB0aHJlYWRpbmcgaW4gdGhlIG5leHQgY2xhc3MKIAogZGVmIHRoZnVuYzEoY2xzKToKKyAgICBEZWNpbWFsID0gY2xzLmRlY2ltYWwuRGVjaW1hbAorICAgIEludmFsaWRPcGVyYXRpb24gPSBjbHMuZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uCisgICAgRGl2aXNpb25CeVplcm8gPSBjbHMuZGVjaW1hbC5EaXZpc2lvbkJ5WmVybworICAgIE92ZXJmbG93ID0gY2xzLmRlY2ltYWwuT3ZlcmZsb3cKKyAgICBVbmRlcmZsb3cgPSBjbHMuZGVjaW1hbC5VbmRlcmZsb3cKKyAgICBJbmV4YWN0ID0gY2xzLmRlY2ltYWwuSW5leGFjdAorICAgIGdldGNvbnRleHQgPSBjbHMuZGVjaW1hbC5nZXRjb250ZXh0CisgICAgbG9jYWxjb250ZXh0ID0gY2xzLmRlY2ltYWwubG9jYWxjb250ZXh0CisKICAgICBkMSA9IERlY2ltYWwoMSkKICAgICBkMyA9IERlY2ltYWwoMykKICAgICB0ZXN0MSA9IGQxL2QzCi0gICAgY2xzLnN5bmNocm8ud2FpdCgpCi0gICAgdGVzdDIgPSBkMS9kMwotICAgIGNscy5maW5pc2gxLnNldCgpCiAKLSAgICBjbHMuYXNzZXJ0RXF1YWwodGVzdDEsIERlY2ltYWwoJzAuMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMycpKQotICAgIGNscy5hc3NlcnRFcXVhbCh0ZXN0MiwgRGVjaW1hbCgnMC4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzJykpCisgICAgY2xzLmZpbmlzaDEuc2V0KCkKKyAgICBjbHMuc3luY2hyby53YWl0KCkKKworICAgIHRlc3QyID0gZDEvZDMKKyAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGMyOgorICAgICAgICBjbHMuYXNzZXJ0VHJ1ZShjMi5mbGFnc1tJbmV4YWN0XSkKKyAgICAgICAgY2xzLmFzc2VydFJhaXNlcyhEaXZpc2lvbkJ5WmVybywgYzIuZGl2aWRlLCBkMSwgMCkKKyAgICAgICAgY2xzLmFzc2VydFRydWUoYzIuZmxhZ3NbRGl2aXNpb25CeVplcm9dKQorICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGMzOgorICAgICAgICAgICAgY2xzLmFzc2VydFRydWUoYzMuZmxhZ3NbSW5leGFjdF0pCisgICAgICAgICAgICBjbHMuYXNzZXJ0VHJ1ZShjMy5mbGFnc1tEaXZpc2lvbkJ5WmVyb10pCisgICAgICAgICAgICBjbHMuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sIGMzLmNvbXBhcmUsIGQxLCBEZWNpbWFsKCdzTmFOJykpCisgICAgICAgICAgICBjbHMuYXNzZXJ0VHJ1ZShjMy5mbGFnc1tJbnZhbGlkT3BlcmF0aW9uXSkKKyAgICAgICAgICAgIGRlbCBjMworICAgICAgICBjbHMuYXNzZXJ0RmFsc2UoYzIuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0pCisgICAgICAgIGRlbCBjMgorCisgICAgY2xzLmFzc2VydEVxdWFsKHRlc3QxLCBEZWNpbWFsKCcwLjMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMycpKQorICAgIGNscy5hc3NlcnRFcXVhbCh0ZXN0MiwgRGVjaW1hbCgnMC4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMnKSkKKworICAgIGMxID0gZ2V0Y29udGV4dCgpCisgICAgY2xzLmFzc2VydFRydWUoYzEuZmxhZ3NbSW5leGFjdF0pCisgICAgZm9yIHNpZyBpbiBPdmVyZmxvdywgVW5kZXJmbG93LCBEaXZpc2lvbkJ5WmVybywgSW52YWxpZE9wZXJhdGlvbjoKKyAgICAgICAgY2xzLmFzc2VydEZhbHNlKGMxLmZsYWdzW3NpZ10pCiAgICAgcmV0dXJuCiAKIGRlZiB0aGZ1bmMyKGNscyk6CisgICAgRGVjaW1hbCA9IGNscy5kZWNpbWFsLkRlY2ltYWwKKyAgICBJbnZhbGlkT3BlcmF0aW9uID0gY2xzLmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbgorICAgIERpdmlzaW9uQnlaZXJvID0gY2xzLmRlY2ltYWwuRGl2aXNpb25CeVplcm8KKyAgICBPdmVyZmxvdyA9IGNscy5kZWNpbWFsLk92ZXJmbG93CisgICAgVW5kZXJmbG93ID0gY2xzLmRlY2ltYWwuVW5kZXJmbG93CisgICAgSW5leGFjdCA9IGNscy5kZWNpbWFsLkluZXhhY3QKKyAgICBnZXRjb250ZXh0ID0gY2xzLmRlY2ltYWwuZ2V0Y29udGV4dAorICAgIGxvY2FsY29udGV4dCA9IGNscy5kZWNpbWFsLmxvY2FsY29udGV4dAorCiAgICAgZDEgPSBEZWNpbWFsKDEpCiAgICAgZDMgPSBEZWNpbWFsKDMpCiAgICAgdGVzdDEgPSBkMS9kMworCiAgICAgdGhpc2NvbnRleHQgPSBnZXRjb250ZXh0KCkKICAgICB0aGlzY29udGV4dC5wcmVjID0gMTgKICAgICB0ZXN0MiA9IGQxL2QzCisKKyAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGMyOgorICAgICAgICBjbHMuYXNzZXJ0VHJ1ZShjMi5mbGFnc1tJbmV4YWN0XSkKKyAgICAgICAgY2xzLmFzc2VydFJhaXNlcyhPdmVyZmxvdywgYzIubXVsdGlwbHksIERlY2ltYWwoJzFlNDI1MDAwMDAwJyksIDk5OSkKKyAgICAgICAgY2xzLmFzc2VydFRydWUoYzIuZmxhZ3NbT3ZlcmZsb3ddKQorICAgICAgICB3aXRoIGxvY2FsY29udGV4dCh0aGlzY29udGV4dCkgYXMgYzM6CisgICAgICAgICAgICBjbHMuYXNzZXJ0VHJ1ZShjMy5mbGFnc1tJbmV4YWN0XSkKKyAgICAgICAgICAgIGNscy5hc3NlcnRGYWxzZShjMy5mbGFnc1tPdmVyZmxvd10pCisgICAgICAgICAgICBjMy50cmFwc1tVbmRlcmZsb3ddID0gVHJ1ZQorICAgICAgICAgICAgY2xzLmFzc2VydFJhaXNlcyhVbmRlcmZsb3csIGMzLmRpdmlkZSwgRGVjaW1hbCgnMWUtNDI1MDAwMDAwJyksIDk5OSkKKyAgICAgICAgICAgIGNscy5hc3NlcnRUcnVlKGMzLmZsYWdzW1VuZGVyZmxvd10pCisgICAgICAgICAgICBkZWwgYzMKKyAgICAgICAgY2xzLmFzc2VydEZhbHNlKGMyLmZsYWdzW1VuZGVyZmxvd10pCisgICAgICAgIGNscy5hc3NlcnRGYWxzZShjMi50cmFwc1tVbmRlcmZsb3ddKQorICAgICAgICBkZWwgYzIKKwogICAgIGNscy5zeW5jaHJvLnNldCgpCiAgICAgY2xzLmZpbmlzaDIuc2V0KCkKIAotICAgIGNscy5hc3NlcnRFcXVhbCh0ZXN0MSwgRGVjaW1hbCgnMC4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzJykpCisgICAgY2xzLmFzc2VydEVxdWFsKHRlc3QxLCBEZWNpbWFsKCcwLjMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMycpKQogICAgIGNscy5hc3NlcnRFcXVhbCh0ZXN0MiwgRGVjaW1hbCgnMC4zMzMzMzMzMzMzMzMzMzMzMzMnKSkKKworICAgIGNscy5hc3NlcnRGYWxzZSh0aGlzY29udGV4dC50cmFwc1tVbmRlcmZsb3ddKQorICAgIGNscy5hc3NlcnRUcnVlKHRoaXNjb250ZXh0LmZsYWdzW0luZXhhY3RdKQorICAgIGZvciBzaWcgaW4gT3ZlcmZsb3csIFVuZGVyZmxvdywgRGl2aXNpb25CeVplcm8sIEludmFsaWRPcGVyYXRpb246CisgICAgICAgIGNscy5hc3NlcnRGYWxzZSh0aGlzY29udGV4dC5mbGFnc1tzaWddKQogICAgIHJldHVybgogCi0KLWNsYXNzIERlY2ltYWxVc2VPZkNvbnRleHRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAnJydVbml0IHRlc3RzIGZvciBVc2Ugb2YgQ29udGV4dCBjYXNlcyBpbiBEZWNpbWFsLicnJwotCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgdGhyZWFkaW5nCi0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICB0aHJlYWRpbmcgPSBOb25lCitjbGFzcyBUaHJlYWRpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAnJydVbml0IHRlc3RzIGZvciB0aHJlYWQgbG9jYWwgY29udGV4dHMgaW4gRGVjaW1hbC4nJycKIAogICAgICMgVGFrZSBjYXJlIGV4ZWN1dGluZyB0aGlzIHRlc3QgZnJvbSBJRExFLCB0aGVyZSdzIGFuIGlzc3VlIGluIHRocmVhZGluZwogICAgICMgdGhhdCBoYW5ncyBJRExFIGFuZCBJIGNvdWxkbid0IGZpbmQgaXQKIAogICAgIGRlZiB0ZXN0X3RocmVhZGluZyhzZWxmKToKLSAgICAgICAgI1Rlc3QgdGhlICJ0aHJlYWRpbmcgaXNvbGF0aW9uIiBvZiBhIENvbnRleHQuCisgICAgICAgIERlZmF1bHRDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkRlZmF1bHRDb250ZXh0CisKKyAgICAgICAgaWYgc2VsZi5kZWNpbWFsID09IEMgYW5kIG5vdCBzZWxmLmRlY2ltYWwuSEFWRV9USFJFQURTOgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgiY29tcGlsZWQgd2l0aG91dCB0aHJlYWRpbmciKQorICAgICAgICAjIFRlc3QgdGhlICJ0aHJlYWRpbmcgaXNvbGF0aW9uIiBvZiBhIENvbnRleHQuIEFsc28gdGVzdCBjaGFuZ2luZworICAgICAgICAjIHRoZSBEZWZhdWx0Q29udGV4dCwgd2hpY2ggYWN0cyBhcyBhIHRlbXBsYXRlIGZvciB0aGUgdGhyZWFkLWxvY2FsCisgICAgICAgICMgY29udGV4dHMuCisgICAgICAgIHNhdmVfcHJlYyA9IERlZmF1bHRDb250ZXh0LnByZWMKKyAgICAgICAgc2F2ZV9lbWF4ID0gRGVmYXVsdENvbnRleHQuRW1heAorICAgICAgICBzYXZlX2VtaW4gPSBEZWZhdWx0Q29udGV4dC5FbWluCisgICAgICAgIERlZmF1bHRDb250ZXh0LnByZWMgPSAyNAorICAgICAgICBEZWZhdWx0Q29udGV4dC5FbWF4ID0gNDI1MDAwMDAwCisgICAgICAgIERlZmF1bHRDb250ZXh0LkVtaW4gPSAtNDI1MDAwMDAwCiAKICAgICAgICAgc2VsZi5zeW5jaHJvID0gdGhyZWFkaW5nLkV2ZW50KCkKICAgICAgICAgc2VsZi5maW5pc2gxID0gdGhyZWFkaW5nLkV2ZW50KCkKQEAgLTEyMzksMTcgKzE1NzQsMjkgQEAKIAogICAgICAgICBzZWxmLmZpbmlzaDEud2FpdCgpCiAgICAgICAgIHNlbGYuZmluaXNoMi53YWl0KCkKKworICAgICAgICBmb3Igc2lnIGluIFNpZ25hbHNbc2VsZi5kZWNpbWFsXToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoRGVmYXVsdENvbnRleHQuZmxhZ3Nbc2lnXSkKKworICAgICAgICBEZWZhdWx0Q29udGV4dC5wcmVjID0gc2F2ZV9wcmVjCisgICAgICAgIERlZmF1bHRDb250ZXh0LkVtYXggPSBzYXZlX2VtYXgKKyAgICAgICAgRGVmYXVsdENvbnRleHQuRW1pbiA9IHNhdmVfZW1pbgogICAgICAgICByZXR1cm4KIAotICAgIGlmIHRocmVhZGluZyBpcyBOb25lOgotICAgICAgICBkZWwgdGVzdF90aHJlYWRpbmcKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZGluZywgJ3RocmVhZGluZyByZXF1aXJlZCcpCitjbGFzcyBDVGhyZWFkaW5nVGVzdChUaHJlYWRpbmdUZXN0KToKKyAgICBkZWNpbWFsID0gQworQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkaW5nLCAndGhyZWFkaW5nIHJlcXVpcmVkJykKK2NsYXNzIFB5VGhyZWFkaW5nVGVzdChUaHJlYWRpbmdUZXN0KToKKyAgICBkZWNpbWFsID0gUAogCi0KLWNsYXNzIERlY2ltYWxVc2FiaWxpdHlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKK2NsYXNzIFVzYWJpbGl0eVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICcnJ1VuaXQgdGVzdHMgZm9yIFVzYWJpbGl0eSBjYXNlcyBvZiBEZWNpbWFsLicnJwogCiAgICAgZGVmIHRlc3RfY29tcGFyaXNvbl9vcGVyYXRvcnMoc2VsZik6CiAKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKICAgICAgICAgZGEgPSBEZWNpbWFsKCcyMy40MicpCiAgICAgICAgIGRiID0gRGVjaW1hbCgnMjMuNDInKQogICAgICAgICBkYyA9IERlY2ltYWwoJzQ1JykKQEAgLTEyODMsNiArMTYzMCw4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYSwgYikKIAogICAgIGRlZiB0ZXN0X2RlY2ltYWxfZmxvYXRfY29tcGFyaXNvbihzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKICAgICAgICAgZGEgPSBEZWNpbWFsKCcwLjI1JykKICAgICAgICAgZGIgPSBEZWNpbWFsKCczLjAnKQogICAgICAgICBzZWxmLmFzc2VydExlc3MoZGEsIDMuMCkKQEAgLTEyOTksNyArMTY0OCw3MSBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDMuMCwgZGIpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoMC4xLCBEZWNpbWFsKCcwLjEnKSkKIAorICAgIGRlZiB0ZXN0X2RlY2ltYWxfY29tcGxleF9jb21wYXJpc29uKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKworICAgICAgICBkYSA9IERlY2ltYWwoJzAuMjUnKQorICAgICAgICBkYiA9IERlY2ltYWwoJzMuMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZGEsICgxLjUrMGopKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKCgxLjUrMGopLCBkYSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkYSwgKDAuMjUrMGopKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgwLjI1KzBqKSwgZGEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKDMuMCswaiksIGRiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRiLCAoMy4wKzBqKSkKKworICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGRiLCAoMy4wKzFqKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCgoMy4wKzFqKSwgZGIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhkYi5fX2x0X18oMy4wKzBqKSwgTm90SW1wbGVtZW50ZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoZGIuX19sZV9fKDMuMCswaiksIE5vdEltcGxlbWVudGVkKQorICAgICAgICBzZWxmLmFzc2VydElzKGRiLl9fZ3RfXygzLjArMGopLCBOb3RJbXBsZW1lbnRlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhkYi5fX2xlX18oMy4wKzBqKSwgTm90SW1wbGVtZW50ZWQpCisKKyAgICBkZWYgdGVzdF9kZWNpbWFsX2ZyYWN0aW9uX2NvbXBhcmlzb24oc2VsZik6CisgICAgICAgIEQgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBGID0gZnJhY3Rpb25zW3NlbGYuZGVjaW1hbF0uRnJhY3Rpb24KKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisgICAgICAgIGxvY2FsY29udGV4dCA9IHNlbGYuZGVjaW1hbC5sb2NhbGNvbnRleHQKKyAgICAgICAgSW52YWxpZE9wZXJhdGlvbiA9IHNlbGYuZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uCisKKworICAgICAgICBlbWF4ID0gQy5NQVhfRU1BWCBpZiBDIGVsc2UgOTk5OTk5OTk5CisgICAgICAgIGVtaW4gPSBDLk1JTl9FTUlOIGlmIEMgZWxzZSAtOTk5OTk5OTk5CisgICAgICAgIGV0aW55ID0gQy5NSU5fRVRJTlkgaWYgQyBlbHNlIC0xOTk5OTk5OTk3CisgICAgICAgIGMgPSBDb250ZXh0KEVtYXg9ZW1heCwgRW1pbj1lbWluKQorCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KGMpOgorICAgICAgICAgICAgYy5wcmVjID0gZW1heAorICAgICAgICAgICAgc2VsZi5hc3NlcnRMZXNzKEQoMCksIEYoMSw5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhGKC0xLDk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkpLCBEKDApKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRMZXNzKEYoMCwxKSwgRCgiMWUiICsgc3RyKGV0aW55KSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydExlc3MoRCgiLTFlIiArIHN0cihldGlueSkpLCBGKDAsMSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydExlc3MoRigwLDk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkpLCBEKCIxZSIgKyBzdHIoZXRpbnkpKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhEKCItMWUiICsgc3RyKGV0aW55KSksIEYoMCw5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5KSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCIwLjEiKSwgRigxLDEwKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRigxLDEwKSwgRCgiMC4xIikpCisKKyAgICAgICAgICAgIGMucHJlYyA9IDMwMAorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChEKDEpLzMsIEYoMSwzKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoRigxLDMpLCBEKDEpLzMpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGVzc0VxdWFsKEYoMTIwOTg0MjM3LCA5OTk5OTk5OTk5KSwgRCgiOWUiICsgc3RyKGVtYXgpKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKEQoIjllIiArIHN0cihlbWF4KSksIEYoMTIwOTg0MjM3LCA5OTk5OTk5OTk5KSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKEQoJ2luZicpLCBGKDk5OTk5OTk5OTk5LDEyMykpCisgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIoRCgnaW5mJyksIEYoLTk5OTk5OTk5OTk5LDEyMykpCisgICAgICAgICAgICBzZWxmLmFzc2VydExlc3MoRCgnLWluZicpLCBGKDk5OTk5OTk5OTk5LDEyMykpCisgICAgICAgICAgICBzZWxmLmFzc2VydExlc3MoRCgnLWluZicpLCBGKC05OTk5OTk5OTk5OSwxMjMpKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBEKCduYW4nKS5fX2d0X18sIEYoLTksMTIzKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoTm90SW1wbGVtZW50ZWQsIEYoLTksMTIzKS5fX2x0X18oRCgnbmFuJykpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChEKCduYW4nKSwgRigtOSwxMjMpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChGKC05LDEyMyksIEQoJ25hbicpKQorCiAgICAgZGVmIHRlc3RfY29weV9hbmRfZGVlcGNvcHlfbWV0aG9kcyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKICAgICAgICAgZCA9IERlY2ltYWwoJzQzLjI0JykKICAgICAgICAgYyA9IGNvcHkuY29weShkKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlkKGMpLCBpZChkKSkKQEAgLTEzMDcsNiArMTcyMCwxMCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlkKGRjKSwgaWQoZCkpCiAKICAgICBkZWYgdGVzdF9oYXNoX21ldGhvZChzZWxmKToKKworICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgbG9jYWxjb250ZXh0ID0gc2VsZi5kZWNpbWFsLmxvY2FsY29udGV4dAorCiAgICAgICAgIGRlZiBoYXNoaXQoZCk6CiAgICAgICAgICAgICBhID0gaGFzaChkKQogICAgICAgICAgICAgYiA9IGQuX19oYXNoX18oKQpAQCAtMTM2NywyNCArMTc4NCwyNyBAQAogICAgICAgICAgICAgZCA9IERlY2ltYWwocykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaGl0KGYpLCBoYXNoaXQoZCkpCiAKLSAgICAgICAgIyBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvZiB0aGUgaGFzaCBkb2Vzbid0IGRlcGVuZCBvbiB0aGUKLSAgICAgICAgIyBjdXJyZW50IGNvbnRleHQgKGlzc3VlICMxNzU3KQotICAgICAgICBjID0gZ2V0Y29udGV4dCgpCi0gICAgICAgIG9sZF9wcmVjaXNpb24gPSBjLnByZWMKLSAgICAgICAgeCA9IERlY2ltYWwoIjEyMzQ1Njc4OS4xIikKKyAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjOgorICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZSB2YWx1ZSBvZiB0aGUgaGFzaCBkb2Vzbid0IGRlcGVuZCBvbiB0aGUKKyAgICAgICAgICAgICMgY3VycmVudCBjb250ZXh0IChpc3N1ZSAjMTc1NykKKyAgICAgICAgICAgIHggPSBEZWNpbWFsKCIxMjM0NTY3ODkuMSIpCiAKLSAgICAgICAgYy5wcmVjID0gNgotICAgICAgICBoMSA9IGhhc2hpdCh4KQotICAgICAgICBjLnByZWMgPSAxMAotICAgICAgICBoMiA9IGhhc2hpdCh4KQotICAgICAgICBjLnByZWMgPSAxNgotICAgICAgICBoMyA9IGhhc2hpdCh4KQorICAgICAgICAgICAgYy5wcmVjID0gNgorICAgICAgICAgICAgaDEgPSBoYXNoaXQoeCkKKyAgICAgICAgICAgIGMucHJlYyA9IDEwCisgICAgICAgICAgICBoMiA9IGhhc2hpdCh4KQorICAgICAgICAgICAgYy5wcmVjID0gMTYKKyAgICAgICAgICAgIGgzID0gaGFzaGl0KHgpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoMSwgaDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaDEsIGgzKQotICAgICAgICBjLnByZWMgPSBvbGRfcHJlY2lzaW9uCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgxLCBoMikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaDEsIGgzKQorCisgICAgICAgICAgICBjLnByZWMgPSAxMDAwMAorICAgICAgICAgICAgeCA9IDExMDAgKiogMTI0OAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNoaXQoRGVjaW1hbCh4KSksIGhhc2hpdCh4KSkKIAogICAgIGRlZiB0ZXN0X21pbl9hbmRfbWF4X21ldGhvZHMoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAogCiAgICAgICAgIGQxID0gRGVjaW1hbCgnMTUuMzInKQogICAgICAgICBkMiA9IERlY2ltYWwoJzI4LjUnKQpAQCAtMTQwNCw2ICsxODI0LDggQEAKICAgICAgICAgc2VsZi5hc3NlcnRJcyhtYXgoZDIsbDEpLCBkMikKIAogICAgIGRlZiB0ZXN0X2FzX25vbnplcm8oc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorCiAgICAgICAgICNhcyBmYWxzZQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKERlY2ltYWwoMCkpCiAgICAgICAgICNhcyB0cnVlCkBAIC0xNDExLDYgKzE4MzMsNyBAQAogCiAgICAgZGVmIHRlc3RfdG9zdHJpbmdfbWV0aG9kcyhzZWxmKToKICAgICAgICAgI1Rlc3Qgc3RyIGFuZCByZXByIG1ldGhvZHMuCisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAogCiAgICAgICAgIGQgPSBEZWNpbWFsKCcxNS4zMicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGQpLCAnMTUuMzInKSAgICAgICAgICAgICAgICMgc3RyCkBAIC0xNDE4LDYgKzE4NDEsNyBAQAogCiAgICAgZGVmIHRlc3RfdG9udW1fbWV0aG9kcyhzZWxmKToKICAgICAgICAgI1Rlc3QgZmxvYXQgYW5kIGludCBtZXRob2RzLgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKIAogICAgICAgICBkMSA9IERlY2ltYWwoJzY2JykKICAgICAgICAgZDIgPSBEZWNpbWFsKCcxNS4zMicpCkBAIC0xNDQwLDYgKzE4NjQsNyBAQAogICAgICAgICAgICAgKCctMTEuMCcsIC0xMSksCiAgICAgICAgICAgICAoJzAuMCcsIDApLAogICAgICAgICAgICAgKCctMEUzJywgMCksCisgICAgICAgICAgICAoJzg5ODkxMjExNzEyMzc5ODEyNzM2LjEnLCA4OTg5MTIxMTcxMjM3OTgxMjczNiksCiAgICAgICAgICAgICBdCiAgICAgICAgIGZvciBkLCBpIGluIHRlc3RfcGFpcnM6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1hdGguZmxvb3IoRGVjaW1hbChkKSksIGkpCkBAIC0xNDU5LDYgKzE4ODQsNyBAQAogICAgICAgICAgICAgKCctMTEuMCcsIC0xMSksCiAgICAgICAgICAgICAoJzAuMCcsIDApLAogICAgICAgICAgICAgKCctMEUzJywgMCksCisgICAgICAgICAgICAoJzg5ODkxMjExNzEyMzc5ODEyNzM2LjEnLCA4OTg5MTIxMTcxMjM3OTgxMjczNyksCiAgICAgICAgICAgICBdCiAgICAgICAgIGZvciBkLCBpIGluIHRlc3RfcGFpcnM6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1hdGguY2VpbChEZWNpbWFsKGQpKSwgaSkKQEAgLTE1MTYsOSArMTk0Miw4IEBACiAgICAgICAgIGZvciBkLCBuLCByIGluIHRlc3RfdHJpcGxlczoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHJvdW5kKERlY2ltYWwoZCksIG4pKSwgcikKIAotCi0KICAgICBkZWYgdGVzdF9ldmFsX3JvdW5kX3RyaXAoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAogCiAgICAgICAgICN3aXRoIHplcm8KICAgICAgICAgZCA9IERlY2ltYWwoICgwLCAoMCwpLCAwKSApCkBAIC0xNTM3LDYgKzE5NjIsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQsIGV2YWwocmVwcihkKSkpCiAKICAgICBkZWYgdGVzdF9hc190dXBsZShzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCiAKICAgICAgICAgI3dpdGggemVybwogICAgICAgICBkID0gRGVjaW1hbCgwKQpAQCAtMTU1MCw3ICsxOTc2LDcgQEAKICAgICAgICAgZCA9IERlY2ltYWwoIi00LjM0OTEzNTM0RS0xNyIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZC5hc190dXBsZSgpLCAoMSwgKDQsIDMsIDQsIDksIDEsIDMsIDUsIDMsIDQpLCAtMjUpICkKIAotICAgICAgICAjaW5mCisgICAgICAgICMgWFhYIG5vbi1jb21wbGlhbnQgaW5maW5pdHkgcGF5bG9hZC4KICAgICAgICAgZCA9IERlY2ltYWwoIkluZmluaXR5IikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLmFzX3R1cGxlKCksICgwLCAoMCwpLCAnRicpICkKIApAQCAtMTU3MCwxNCArMTk5NiwyMTk4IEBACiAgICAgICAgIGQgPSBEZWNpbWFsKCAoMSwgKCksICduJykgKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQuYXNfdHVwbGUoKSwgKDEsICgpLCAnbicpICkKIAotICAgICAgICAjY29lZmZpY2llbnQgaW4gaW5maW5pdHkgc2hvdWxkIGJlIGlnbm9yZWQKLSAgICAgICAgZCA9IERlY2ltYWwoICgwLCAoNCwgNSwgMywgNCksICdGJykgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQuYXNfdHVwbGUoKSwgKDAsICgwLCksICdGJykpCi0gICAgICAgIGQgPSBEZWNpbWFsKCAoMSwgKDAsIDIsIDcsIDEpLCAnRicpICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLmFzX3R1cGxlKCksICgxLCAoMCwpLCAnRicpKQorICAgICAgICAjIFhYWCBjb2VmZmljaWVudCBpbiBpbmZpbml0eSBzaG91bGQgcmFpc2UgYW4gZXJyb3IKKyAgICAgICAgaWYgc2VsZi5kZWNpbWFsID09IFA6CisgICAgICAgICAgICBkID0gRGVjaW1hbCggKDAsICg0LCA1LCAzLCA0KSwgJ0YnKSApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQuYXNfdHVwbGUoKSwgKDAsICgwLCksICdGJykpCisgICAgICAgICAgICBkID0gRGVjaW1hbCggKDEsICgwLCAyLCA3LCAxKSwgJ0YnKSApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQuYXNfdHVwbGUoKSwgKDEsICgwLCksICdGJykpCiAKLSAgICBkZWYgdGVzdF9pbW11dGFiaWxpdHlfb3BlcmF0aW9ucyhzZWxmKToKKyAgICBkZWYgdGVzdF9zdWJjbGFzc2luZyhzZWxmKToKKyAgICAgICAgIyBEaWZmZXJlbnQgYmVoYXZpb3VycyB3aGVuIHN1YmNsYXNzaW5nIERlY2ltYWwKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKKyAgICAgICAgY2xhc3MgTXlEZWNpbWFsKERlY2ltYWwpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGQxID0gTXlEZWNpbWFsKDEpCisgICAgICAgIGQyID0gTXlEZWNpbWFsKDIpCisgICAgICAgIGQgPSBkMSArIGQyCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShkKSwgRGVjaW1hbCkKKworICAgICAgICBkID0gZDEubWF4KGQyKQorICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUoZCksIERlY2ltYWwpCisKKyAgICAgICAgZCA9IGNvcHkuY29weShkMSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKGQpLCBNeURlY2ltYWwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZCwgZDEpCisKKyAgICAgICAgZCA9IGNvcHkuZGVlcGNvcHkoZDEpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShkKSwgTXlEZWNpbWFsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQsIGQxKQorCisgICAgZGVmIHRlc3RfaW1wbGljaXRfY29udGV4dChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIGdldGNvbnRleHQgPSBzZWxmLmRlY2ltYWwuZ2V0Y29udGV4dAorCisgICAgICAgICMgQ2hlY2sgcmVzdWx0cyB3aGVuIGNvbnRleHQgZ2l2ZW4gaW1wbGljaXRseS4gIChJc3N1ZSAyNDc4KQorICAgICAgICBjID0gZ2V0Y29udGV4dCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKERlY2ltYWwoMCkuc3FydCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoYy5zcXJ0KERlY2ltYWwoMCkpKSkKKworICAgIGRlZiB0ZXN0X2NvbnZlcnNpb25zX2Zyb21faW50KHNlbGYpOgorICAgICAgICAjIENoZWNrIHRoYXQgbWV0aG9kcyB0YWtpbmcgYSBzZWNvbmQgRGVjaW1hbCBhcmd1bWVudCB3aWxsCisgICAgICAgICMgYWx3YXlzIGFjY2VwdCBhbiBpbnRlZ2VyIGluIHBsYWNlIG9mIGEgRGVjaW1hbC4KKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDQpLmNvbXBhcmUoMyksCisgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg0KS5jb21wYXJlKERlY2ltYWwoMykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoNCkuY29tcGFyZV9zaWduYWwoMyksCisgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg0KS5jb21wYXJlX3NpZ25hbChEZWNpbWFsKDMpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDQpLmNvbXBhcmVfdG90YWwoMyksCisgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg0KS5jb21wYXJlX3RvdGFsKERlY2ltYWwoMykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoNCkuY29tcGFyZV90b3RhbF9tYWcoMyksCisgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg0KS5jb21wYXJlX3RvdGFsX21hZyhEZWNpbWFsKDMpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDEwMTAxKS5sb2dpY2FsX2FuZCgxMDAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKDEwMTAxKS5sb2dpY2FsX2FuZChEZWNpbWFsKDEwMDEpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDEwMTAxKS5sb2dpY2FsX29yKDEwMDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoMTAxMDEpLmxvZ2ljYWxfb3IoRGVjaW1hbCgxMDAxKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgxMDEwMSkubG9naWNhbF94b3IoMTAwMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCgxMDEwMSkubG9naWNhbF94b3IoRGVjaW1hbCgxMDAxKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCg1NjcpLm1heCgxMjMpLAorICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNTY3KS5tYXgoRGVjaW1hbCgxMjMpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDU2NykubWF4X21hZygxMjMpLAorICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNTY3KS5tYXhfbWFnKERlY2ltYWwoMTIzKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCg1NjcpLm1pbigxMjMpLAorICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNTY3KS5taW4oRGVjaW1hbCgxMjMpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDU2NykubWluX21hZygxMjMpLAorICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNTY3KS5taW5fbWFnKERlY2ltYWwoMTIzKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCg1NjcpLm5leHRfdG93YXJkKDEyMyksCisgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg1NjcpLm5leHRfdG93YXJkKERlY2ltYWwoMTIzKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgxMjM0KS5xdWFudGl6ZSgxMDApLAorICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoMTIzNCkucXVhbnRpemUoRGVjaW1hbCgxMDApKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDc2OCkucmVtYWluZGVyX25lYXIoMTIzNCksCisgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg3NjgpLnJlbWFpbmRlcl9uZWFyKERlY2ltYWwoMTIzNCkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoMTIzKS5yb3RhdGUoMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCgxMjMpLnJvdGF0ZShEZWNpbWFsKDEpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDEyMzQpLnNhbWVfcXVhbnR1bSgxMDAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKDEyMzQpLnNhbWVfcXVhbnR1bShEZWNpbWFsKDEwMDApKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCc5LjEyMycpLnNjYWxlYigtMTAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKCc5LjEyMycpLnNjYWxlYihEZWNpbWFsKC0xMDApKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDQ1Nikuc2hpZnQoLTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNDU2KS5zaGlmdChEZWNpbWFsKC0xKSkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKC0xMikuZm1hKERlY2ltYWwoNDUpLCA2NyksCisgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCgtMTIpLmZtYShEZWNpbWFsKDQ1KSwgRGVjaW1hbCg2NykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoLTEyKS5mbWEoNDUsIDY3KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKC0xMikuZm1hKERlY2ltYWwoNDUpLCBEZWNpbWFsKDY3KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgtMTIpLmZtYSg0NSwgRGVjaW1hbCg2NykpLAorICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoLTEyKS5mbWEoRGVjaW1hbCg0NSksIERlY2ltYWwoNjcpKSkKKworY2xhc3MgQ1VzYWJpbGl0eVRlc3QoVXNhYmlsaXR5VGVzdCk6CisgICAgZGVjaW1hbCA9IEMKK2NsYXNzIFB5VXNhYmlsaXR5VGVzdChVc2FiaWxpdHlUZXN0KToKKyAgICBkZWNpbWFsID0gUAorCitjbGFzcyBQeXRob25BUEl0ZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9hYmMoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKERlY2ltYWwsIG51bWJlcnMuTnVtYmVyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpc3N1YmNsYXNzKERlY2ltYWwsIG51bWJlcnMuUmVhbCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShEZWNpbWFsKDApLCBudW1iZXJzLk51bWJlcikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJc0luc3RhbmNlKERlY2ltYWwoMCksIG51bWJlcnMuUmVhbCkKKworICAgIGRlZiB0ZXN0X3BpY2tsZShzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKKyAgICAgICAgc2F2ZWRlY2ltYWwgPSBzeXMubW9kdWxlc1snZGVjaW1hbCddCisKKyAgICAgICAgIyBSb3VuZCB0cmlwCisgICAgICAgIHN5cy5tb2R1bGVzWydkZWNpbWFsJ10gPSBzZWxmLmRlY2ltYWwKKyAgICAgICAgZCA9IERlY2ltYWwoJy0zLjE0MTU5MDAwMCcpCisgICAgICAgIHAgPSBwaWNrbGUuZHVtcHMoZCkKKyAgICAgICAgZSA9IHBpY2tsZS5sb2FkcyhwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQsIGUpCisKKyAgICAgICAgaWYgQzoKKyAgICAgICAgICAgICMgVGVzdCBpbnRlcmNoYW5nZWFiaWxpdHkKKyAgICAgICAgICAgIHggPSBDLkRlY2ltYWwoJy0zLjEyM2U4MTcyMycpCisgICAgICAgICAgICB5ID0gUC5EZWNpbWFsKCctMy4xMjNlODE3MjMnKQorCisgICAgICAgICAgICBzeXMubW9kdWxlc1snZGVjaW1hbCddID0gQworICAgICAgICAgICAgc3ggPSBwaWNrbGUuZHVtcHMoeCkKKyAgICAgICAgICAgIHN5cy5tb2R1bGVzWydkZWNpbWFsJ10gPSBQCisgICAgICAgICAgICByID0gcGlja2xlLmxvYWRzKHN4KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHIsIFAuRGVjaW1hbCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwociwgeSkKKworICAgICAgICAgICAgc3lzLm1vZHVsZXNbJ2RlY2ltYWwnXSA9IFAKKyAgICAgICAgICAgIHN5ID0gcGlja2xlLmR1bXBzKHkpCisgICAgICAgICAgICBzeXMubW9kdWxlc1snZGVjaW1hbCddID0gQworICAgICAgICAgICAgciA9IHBpY2tsZS5sb2FkcyhzeSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShyLCBDLkRlY2ltYWwpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHIsIHgpCisKKyAgICAgICAgc3lzLm1vZHVsZXNbJ2RlY2ltYWwnXSA9IHNhdmVkZWNpbWFsCisKKyAgICBkZWYgdGVzdF9pbnQoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBST1VORF9ET1dOID0gc2VsZi5kZWNpbWFsLlJPVU5EX0RPV04KKworICAgICAgICBmb3IgeCBpbiByYW5nZSgtMjUwLCAyNTApOgorICAgICAgICAgICAgcyA9ICclMC4yZicgJSAoeCAvIDEwMC4wKQorICAgICAgICAgICAgIyBzaG91bGQgd29yayB0aGUgc2FtZSBhcyBmb3IgZmxvYXRzCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludChEZWNpbWFsKHMpKSwgaW50KGZsb2F0KHMpKSkKKyAgICAgICAgICAgICMgc2hvdWxkIHdvcmsgdGhlIHNhbWUgYXMgdG9faW50ZWdyYWwgaW4gdGhlIFJPVU5EX0RPV04gbW9kZQorICAgICAgICAgICAgZCA9IERlY2ltYWwocykKKyAgICAgICAgICAgIHIgPSBkLnRvX2ludGVncmFsKFJPVU5EX0RPV04pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoaW50KGQpKSwgcikKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpbnQsIERlY2ltYWwoJy1uYW4nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaW50LCBEZWNpbWFsKCdzbmFuJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIGludCwgRGVjaW1hbCgnaW5mJykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIGludCwgRGVjaW1hbCgnLWluZicpKQorCisgICAgZGVmIHRlc3RfdHJ1bmMoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBST1VORF9ET1dOID0gc2VsZi5kZWNpbWFsLlJPVU5EX0RPV04KKworICAgICAgICBmb3IgeCBpbiByYW5nZSgtMjUwLCAyNTApOgorICAgICAgICAgICAgcyA9ICclMC4yZicgJSAoeCAvIDEwMC4wKQorICAgICAgICAgICAgIyBzaG91bGQgd29yayB0aGUgc2FtZSBhcyBmb3IgZmxvYXRzCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludChEZWNpbWFsKHMpKSwgaW50KGZsb2F0KHMpKSkKKyAgICAgICAgICAgICMgc2hvdWxkIHdvcmsgdGhlIHNhbWUgYXMgdG9faW50ZWdyYWwgaW4gdGhlIFJPVU5EX0RPV04gbW9kZQorICAgICAgICAgICAgZCA9IERlY2ltYWwocykKKyAgICAgICAgICAgIHIgPSBkLnRvX2ludGVncmFsKFJPVU5EX0RPV04pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwobWF0aC50cnVuYyhkKSksIHIpCisKKyAgICBkZWYgdGVzdF9mcm9tX2Zsb2F0KHNlbGYpOgorCisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorCisgICAgICAgIGNsYXNzIE15RGVjaW1hbChEZWNpbWFsKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhNeURlY2ltYWwsIERlY2ltYWwpKQorCisgICAgICAgIHIgPSBNeURlY2ltYWwuZnJvbV9mbG9hdCgwLjEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShyKSwgTXlEZWNpbWFsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihyKSwKKyAgICAgICAgICAgICAgICAnMC4xMDAwMDAwMDAwMDAwMDAwMDU1NTExMTUxMjMxMjU3ODI3MDIxMTgxNTgzNDA0NTQxMDE1NjI1JykKKyAgICAgICAgYmlnaW50ID0gMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChNeURlY2ltYWwuZnJvbV9mbG9hdChiaWdpbnQpLCBNeURlY2ltYWwoYmlnaW50KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKE15RGVjaW1hbC5mcm9tX2Zsb2F0KGZsb2F0KCduYW4nKSkuaXNfcW5hbigpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoTXlEZWNpbWFsLmZyb21fZmxvYXQoZmxvYXQoJ2luZicpKS5pc19pbmZpbml0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoTXlEZWNpbWFsLmZyb21fZmxvYXQoZmxvYXQoJy1pbmYnKSkuaXNfaW5maW5pdGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoTXlEZWNpbWFsLmZyb21fZmxvYXQoZmxvYXQoJ25hbicpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKERlY2ltYWwoJ05hTicpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoTXlEZWNpbWFsLmZyb21fZmxvYXQoZmxvYXQoJ2luZicpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKERlY2ltYWwoJ0luZmluaXR5JykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihNeURlY2ltYWwuZnJvbV9mbG9hdChmbG9hdCgnLWluZicpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKERlY2ltYWwoJy1JbmZpbml0eScpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBNeURlY2ltYWwuZnJvbV9mbG9hdCwgJ2FiYycpCisgICAgICAgIGZvciBpIGluIHJhbmdlKDIwMCk6CisgICAgICAgICAgICB4ID0gcmFuZG9tLmV4cG92YXJpYXRlKDAuMDEpICogKHJhbmRvbS5yYW5kb20oKSAqIDIuMCAtIDEuMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeCwgZmxvYXQoTXlEZWNpbWFsLmZyb21fZmxvYXQoeCkpKSAjIHJvdW5kdHJpcAorCisgICAgZGVmIHRlc3RfY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorICAgICAgICBST1VORF9ET1dOID0gc2VsZi5kZWNpbWFsLlJPVU5EX0RPV04KKyAgICAgICAgUk9VTkRfVVAgPSBzZWxmLmRlY2ltYWwuUk9VTkRfVVAKKyAgICAgICAgSW5leGFjdCA9IHNlbGYuZGVjaW1hbC5JbmV4YWN0CisKKyAgICAgICAgY29udGV4dCA9IENvbnRleHQocHJlYz01LCByb3VuZGluZz1ST1VORF9ET1dOKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgY29udGV4dC5jcmVhdGVfZGVjaW1hbF9mcm9tX2Zsb2F0KG1hdGgucGkpLAorICAgICAgICAgICAgRGVjaW1hbCgnMy4xNDE1JykKKyAgICAgICAgKQorICAgICAgICBjb250ZXh0ID0gQ29udGV4dChwcmVjPTUsIHJvdW5kaW5nPVJPVU5EX1VQKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgY29udGV4dC5jcmVhdGVfZGVjaW1hbF9mcm9tX2Zsb2F0KG1hdGgucGkpLAorICAgICAgICAgICAgRGVjaW1hbCgnMy4xNDE2JykKKyAgICAgICAgKQorICAgICAgICBjb250ZXh0ID0gQ29udGV4dChwcmVjPTUsIHRyYXBzPVtJbmV4YWN0XSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICBJbmV4YWN0LAorICAgICAgICAgICAgY29udGV4dC5jcmVhdGVfZGVjaW1hbF9mcm9tX2Zsb2F0LAorICAgICAgICAgICAgbWF0aC5waQorICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihjb250ZXh0LmNyZWF0ZV9kZWNpbWFsX2Zyb21fZmxvYXQoLTAuMCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJEZWNpbWFsKCctMCcpIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNvbnRleHQuY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdCgxLjApKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiRGVjaW1hbCgnMScpIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNvbnRleHQuY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdCgxMCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJEZWNpbWFsKCcxMCcpIikKKworICAgIGRlZiB0ZXN0X3F1YW50aXplKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisgICAgICAgIEludmFsaWRPcGVyYXRpb24gPSBzZWxmLmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbgorICAgICAgICBST1VORF9ET1dOID0gc2VsZi5kZWNpbWFsLlJPVU5EX0RPV04KKworICAgICAgICBjID0gQ29udGV4dChFbWF4PTk5OTk5LCBFbWluPS05OTk5OSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIERlY2ltYWwoJzcuMzM1JykucXVhbnRpemUoRGVjaW1hbCgnLjAxJykpLAorICAgICAgICAgICAgRGVjaW1hbCgnNy4zNCcpCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIERlY2ltYWwoJzcuMzM1JykucXVhbnRpemUoRGVjaW1hbCgnLjAxJyksIHJvdW5kaW5nPVJPVU5EX0RPV04pLAorICAgICAgICAgICAgRGVjaW1hbCgnNy4zMycpCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICBJbnZhbGlkT3BlcmF0aW9uLAorICAgICAgICAgICAgRGVjaW1hbCgiMTBlOTk5OTkiKS5xdWFudGl6ZSwgRGVjaW1hbCgnMWUxMDAwMDAnKSwgY29udGV4dD1jCisgICAgICAgICkKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBEZWNpbWFsKCIwLjg3MTgzMWU4MDAiKQorICAgICAgICB4ID0gZC5xdWFudGl6ZShjb250ZXh0PWMsIGV4cD1EZWNpbWFsKCIxZTc5NyIpLCByb3VuZGluZz1ST1VORF9ET1dOKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIERlY2ltYWwoJzguNzFFKzc5OScpKQorCisgICAgZGVmIHRlc3RfY29tcGxleChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKKyAgICAgICAgeCA9IERlY2ltYWwoIjkuODE4MjczMWUxODEyNzMiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgucmVhbCwgeCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LmltYWcsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC5jb25qdWdhdGUoKSwgeCkKKworICAgICAgICB4ID0gRGVjaW1hbCgiMSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcGxleCh4KSwgY29tcGxleChmbG9hdCgxKSkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIHNldGF0dHIsIHgsICdyZWFsJywgMTAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0YXR0ciwgeCwgJ2ltYWcnLCAxMDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBzZXRhdHRyLCB4LCAnY29uanVnYXRlJywgMTAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0YXR0ciwgeCwgJ19fY29tcGxleF9fJywgMTAwKQorCisgICAgZGVmIHRlc3RfbmFtZWRfcGFyYW1ldGVycyhzZWxmKToKKyAgICAgICAgRCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorICAgICAgICBsb2NhbGNvbnRleHQgPSBzZWxmLmRlY2ltYWwubG9jYWxjb250ZXh0CisgICAgICAgIEludmFsaWRPcGVyYXRpb24gPSBzZWxmLmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbgorICAgICAgICBPdmVyZmxvdyA9IHNlbGYuZGVjaW1hbC5PdmVyZmxvdworCisgICAgICAgIHhjID0gQ29udGV4dCgpCisgICAgICAgIHhjLnByZWMgPSAxCisgICAgICAgIHhjLkVtYXggPSAxCisgICAgICAgIHhjLkVtaW4gPSAtMQorCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzoKKyAgICAgICAgICAgIGMuY2xlYXJfZmxhZ3MoKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoOSwgeGMpLCA5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKDksIGNvbnRleHQ9eGMpLCA5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKGNvbnRleHQ9eGMsIHZhbHVlPTkpLCA5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKGNvbnRleHQ9eGMpLCAwKQorICAgICAgICAgICAgeGMuY2xlYXJfZmxhZ3MoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgRCwgInh5eiIsIGNvbnRleHQ9eGMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoeGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0pCisKKyAgICAgICAgICAgIHhjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgyKS5leHAoY29udGV4dD14YyksIDcpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvdywgRCg4KS5leHAsIGNvbnRleHQ9eGMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoeGMuZmxhZ3NbT3ZlcmZsb3ddKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjLmZsYWdzW092ZXJmbG93XSkKKworICAgICAgICAgICAgeGMuY2xlYXJfZmxhZ3MoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKDIpLmxuKGNvbnRleHQ9eGMpLCBEKCcwLjcnKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sIEQoLTEpLmxuLCBjb250ZXh0PXhjKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHhjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoMCkubG9nMTAoY29udGV4dD14YyksIEQoJy1pbmYnKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgtMSkubmV4dF9taW51cyhjb250ZXh0PXhjKSwgLTIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoLTEpLm5leHRfcGx1cyhjb250ZXh0PXhjKSwgRCgnLTAuOScpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCI5LjczIikubm9ybWFsaXplKGNvbnRleHQ9eGMpLCBEKCcxRSsxJykpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoIjk5OTkiKS50b19pbnRlZ3JhbChjb250ZXh0PXhjKSwgOTk5OSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgiLTIwMDAiKS50b19pbnRlZ3JhbF9leGFjdChjb250ZXh0PXhjKSwgLTIwMDApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoIjEyMyIpLnRvX2ludGVncmFsX3ZhbHVlKGNvbnRleHQ9eGMpLCAxMjMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoIjAuMDYyNSIpLnNxcnQoY29udGV4dD14YyksIEQoJzAuMicpKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoIjAuMDYyNSIpLmNvbXBhcmUoY29udGV4dD14Yywgb3RoZXI9MyksIC0xKQorICAgICAgICAgICAgeGMuY2xlYXJfZmxhZ3MoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQoIjAiKS5jb21wYXJlX3NpZ25hbCwgRCgnbmFuJyksIGNvbnRleHQ9eGMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoeGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoIjAuMDEiKS5tYXgoRCgnMC4wMTAxJyksIGNvbnRleHQ9eGMpLCBEKCcwLjAnKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgiMC4wMSIpLm1heChEKCcwLjAxMDEnKSwgY29udGV4dD14YyksIEQoJzAuMCcpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCIwLjIiKS5tYXhfbWFnKEQoJy0wLjMnKSwgY29udGV4dD14YyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEQoJy0wLjMnKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgiMC4wMiIpLm1pbihEKCctMC4wMycpLCBjb250ZXh0PXhjKSwgRCgnLTAuMCcpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCIwLjAyIikubWluX21hZyhEKCctMC4wMycpLCBjb250ZXh0PXhjKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRCgnMC4wJykpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoIjAuMiIpLm5leHRfdG93YXJkKEQoJy0xJyksIGNvbnRleHQ9eGMpLCBEKCcwLjEnKSkKKyAgICAgICAgICAgIHhjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEKCIwLjIiKS5xdWFudGl6ZSwgRCgnMWUxMCcpLCBjb250ZXh0PXhjKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHhjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCI5Ljk5IikucmVtYWluZGVyX25lYXIoRCgnMS41JyksIGNvbnRleHQ9eGMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEKCctMC41JykpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgiOS45IikuZm1hKHRoaXJkPUQoJzAuOScpLCBjb250ZXh0PXhjLCBvdGhlcj03KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRCgnN0UrMScpKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEQoMSkuaXNfY2Fub25pY2FsLCBjb250ZXh0PXhjKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBEKDEpLmlzX2Zpbml0ZSwgY29udGV4dD14YykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRCgxKS5pc19pbmZpbml0ZSwgY29udGV4dD14YykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRCgxKS5pc19uYW4sIGNvbnRleHQ9eGMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEQoMSkuaXNfcW5hbiwgY29udGV4dD14YykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRCgxKS5pc19zbmFuLCBjb250ZXh0PXhjKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBEKDEpLmlzX3NpZ25lZCwgY29udGV4dD14YykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRCgxKS5pc196ZXJvLCBjb250ZXh0PXhjKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKEQoIjAuMDEiKS5pc19ub3JtYWwoY29udGV4dD14YykpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoRCgiMC4wMSIpLmlzX3N1Ym5vcm1hbChjb250ZXh0PXhjKSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBEKDEpLmFkanVzdGVkLCBjb250ZXh0PXhjKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBEKDEpLmNvbmp1Z2F0ZSwgY29udGV4dD14YykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRCgxKS5yYWRpeCwgY29udGV4dD14YykKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKC0xMTEpLmxvZ2IoY29udGV4dD14YyksIDIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoMCkubG9naWNhbF9pbnZlcnQoY29udGV4dD14YyksIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoJzAuMDEnKS5udW1iZXJfY2xhc3MoY29udGV4dD14YyksICcrU3Vibm9ybWFsJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgnMC4yMScpLnRvX2VuZ19zdHJpbmcoY29udGV4dD14YyksICcwLjIxJykKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCcxMScpLmxvZ2ljYWxfYW5kKEQoJzEwJyksIGNvbnRleHQ9eGMpLCAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCcxMScpLmxvZ2ljYWxfb3IoRCgnMTAnKSwgY29udGV4dD14YyksIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoJzAxJykubG9naWNhbF94b3IoRCgnMTAnKSwgY29udGV4dD14YyksIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoJzIzJykucm90YXRlKDEsIGNvbnRleHQ9eGMpLCAzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCcyMycpLnJvdGF0ZSgxLCBjb250ZXh0PXhjKSwgMykKKyAgICAgICAgICAgIHhjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRCgnMjMnKS5zY2FsZWIsIDEsIGNvbnRleHQ9eGMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoeGMuZmxhZ3NbT3ZlcmZsb3ddKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjLmZsYWdzW092ZXJmbG93XSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRCgnMjMnKS5zaGlmdCgtMSwgY29udGV4dD14YyksIDApCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRC5mcm9tX2Zsb2F0LCAxLjEsIGNvbnRleHQ9eGMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEQoMCkuYXNfdHVwbGUsIGNvbnRleHQ9eGMpCisKKyAgICAgICAgICAgIGlmIChzZWxmLmRlY2ltYWwgPT0gQyk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBEKDEpLmNhbm9uaWNhbCwgY29udGV4dD14YykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoIi0xIikuY29weV9hYnMoY29udGV4dD14YyksIDEpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEKCIxIikuY29weV9uZWdhdGUoY29udGV4dD14YyksIC0xKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEQoMSkuY2Fub25pY2FsKGNvbnRleHQ9eGMpLCAxKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRCgiLTEiKS5jb3B5X2FicywgY29udGV4dD14YykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIEQoIi0xIikuY29weV9uZWdhdGUsIGNvbnRleHQ9eGMpCisKKyAgICBkZWYgdGVzdF9leGNlcHRpb25faGllcmFyY2h5KHNlbGYpOgorCisgICAgICAgIGRlY2ltYWwgPSBzZWxmLmRlY2ltYWwKKyAgICAgICAgRGVjaW1hbEV4Y2VwdGlvbiA9IGRlY2ltYWwuRGVjaW1hbEV4Y2VwdGlvbgorICAgICAgICBJbnZhbGlkT3BlcmF0aW9uID0gZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uCisgICAgICAgIEZsb2F0T3BlcmF0aW9uID0gZGVjaW1hbC5GbG9hdE9wZXJhdGlvbgorICAgICAgICBEaXZpc2lvbkJ5WmVybyA9IGRlY2ltYWwuRGl2aXNpb25CeVplcm8KKyAgICAgICAgT3ZlcmZsb3cgPSBkZWNpbWFsLk92ZXJmbG93CisgICAgICAgIFVuZGVyZmxvdyA9IGRlY2ltYWwuVW5kZXJmbG93CisgICAgICAgIFN1Ym5vcm1hbCA9IGRlY2ltYWwuU3Vibm9ybWFsCisgICAgICAgIEluZXhhY3QgPSBkZWNpbWFsLkluZXhhY3QKKyAgICAgICAgUm91bmRlZCA9IGRlY2ltYWwuUm91bmRlZAorICAgICAgICBDbGFtcGVkID0gZGVjaW1hbC5DbGFtcGVkCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoRGVjaW1hbEV4Y2VwdGlvbiwgQXJpdGhtZXRpY0Vycm9yKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhJbnZhbGlkT3BlcmF0aW9uLCBEZWNpbWFsRXhjZXB0aW9uKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoRmxvYXRPcGVyYXRpb24sIERlY2ltYWxFeGNlcHRpb24pKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhGbG9hdE9wZXJhdGlvbiwgVHlwZUVycm9yKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoRGl2aXNpb25CeVplcm8sIERlY2ltYWxFeGNlcHRpb24pKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhEaXZpc2lvbkJ5WmVybywgWmVyb0RpdmlzaW9uRXJyb3IpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhPdmVyZmxvdywgUm91bmRlZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKE92ZXJmbG93LCBJbmV4YWN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoT3ZlcmZsb3csIERlY2ltYWxFeGNlcHRpb24pKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhVbmRlcmZsb3csIEluZXhhY3QpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhVbmRlcmZsb3csIFJvdW5kZWQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhVbmRlcmZsb3csIFN1Ym5vcm1hbCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKFVuZGVyZmxvdywgRGVjaW1hbEV4Y2VwdGlvbikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoU3Vibm9ybWFsLCBEZWNpbWFsRXhjZXB0aW9uKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoSW5leGFjdCwgRGVjaW1hbEV4Y2VwdGlvbikpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKFJvdW5kZWQsIERlY2ltYWxFeGNlcHRpb24pKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhDbGFtcGVkLCBEZWNpbWFsRXhjZXB0aW9uKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhkZWNpbWFsLkNvbnZlcnNpb25TeW50YXgsIEludmFsaWRPcGVyYXRpb24pKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhkZWNpbWFsLkRpdmlzaW9uSW1wb3NzaWJsZSwgSW52YWxpZE9wZXJhdGlvbikpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKGRlY2ltYWwuRGl2aXNpb25VbmRlZmluZWQsIEludmFsaWRPcGVyYXRpb24pKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhkZWNpbWFsLkRpdmlzaW9uVW5kZWZpbmVkLCBaZXJvRGl2aXNpb25FcnJvcikpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKGRlY2ltYWwuSW52YWxpZENvbnRleHQsIEludmFsaWRPcGVyYXRpb24pKQorCitjbGFzcyBDUHl0aG9uQVBJdGVzdHMoUHl0aG9uQVBJdGVzdHMpOgorICAgIGRlY2ltYWwgPSBDCitjbGFzcyBQeVB5dGhvbkFQSXRlc3RzKFB5dGhvbkFQSXRlc3RzKToKKyAgICBkZWNpbWFsID0gUAorCitjbGFzcyBDb250ZXh0QVBJdGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfcGlja2xlKHNlbGYpOgorCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIHNhdmVkZWNpbWFsID0gc3lzLm1vZHVsZXNbJ2RlY2ltYWwnXQorCisgICAgICAgICMgUm91bmQgdHJpcAorICAgICAgICBzeXMubW9kdWxlc1snZGVjaW1hbCddID0gc2VsZi5kZWNpbWFsCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZSA9IHBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMoYykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnByZWMsIGUucHJlYykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLkVtaW4sIGUuRW1pbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLkVtYXgsIGUuRW1heCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJvdW5kaW5nLCBlLnJvdW5kaW5nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY2FwaXRhbHMsIGUuY2FwaXRhbHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jbGFtcCwgZS5jbGFtcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZsYWdzLCBlLmZsYWdzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMudHJhcHMsIGUudHJhcHMpCisKKyAgICAgICAgIyBUZXN0IGludGVyY2hhbmdlYWJpbGl0eQorICAgICAgICBjb21iaW5hdGlvbnMgPSBbKEMsIFApLCAoUCwgQyldIGlmIEMgZWxzZSBbKFAsIFApXQorICAgICAgICBmb3IgZHVtcGVyLCBsb2FkZXIgaW4gY29tYmluYXRpb25zOgorICAgICAgICAgICAgZm9yIHJpLCBfIGluIGVudW1lcmF0ZShSb3VuZGluZ01vZGVzW2R1bXBlcl0pOgorICAgICAgICAgICAgICAgIGZvciBmaSwgXyBpbiBlbnVtZXJhdGUoT3JkZXJlZFNpZ25hbHNbZHVtcGVyXSk6CisgICAgICAgICAgICAgICAgICAgIGZvciB0aSwgXyBpbiBlbnVtZXJhdGUoT3JkZXJlZFNpZ25hbHNbZHVtcGVyXSk6CisKKyAgICAgICAgICAgICAgICAgICAgICAgIHByZWMgPSByYW5kb20ucmFuZHJhbmdlKDEsIDEwMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVtaW4gPSByYW5kb20ucmFuZHJhbmdlKC0xMDAsIDApCisgICAgICAgICAgICAgICAgICAgICAgICBlbWF4ID0gcmFuZG9tLnJhbmRyYW5nZSgxLCAxMDApCisgICAgICAgICAgICAgICAgICAgICAgICBjYXBzID0gcmFuZG9tLnJhbmRyYW5nZSgyKQorICAgICAgICAgICAgICAgICAgICAgICAgY2xhbXAgPSByYW5kb20ucmFuZHJhbmdlKDIpCisKKyAgICAgICAgICAgICAgICAgICAgICAgICMgT25lIG1vZHVsZSBkdW1wcworICAgICAgICAgICAgICAgICAgICAgICAgc3lzLm1vZHVsZXNbJ2RlY2ltYWwnXSA9IGR1bXBlcgorICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGR1bXBlci5Db250ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlYz1wcmVjLCBFbWluPWVtaW4sIEVtYXg9ZW1heCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdW5kaW5nPVJvdW5kaW5nTW9kZXNbZHVtcGVyXVtyaV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXBpdGFscz1jYXBzLCBjbGFtcD1jbGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzPU9yZGVyZWRTaWduYWxzW2R1bXBlcl1bOmZpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYXBzPU9yZGVyZWRTaWduYWxzW2R1bXBlcl1bOnRpXQorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgcyA9IHBpY2tsZS5kdW1wcyhjKQorCisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZSBvdGhlciBtb2R1bGUgbG9hZHMKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5cy5tb2R1bGVzWydkZWNpbWFsJ10gPSBsb2FkZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIGQgPSBwaWNrbGUubG9hZHMocykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShkLCBsb2FkZXIuQ29udGV4dCkKKworICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLnByZWMsIHByZWMpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQuRW1pbiwgZW1pbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZC5FbWF4LCBlbWF4KQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLnJvdW5kaW5nLCBSb3VuZGluZ01vZGVzW2xvYWRlcl1bcmldKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLmNhcGl0YWxzLCBjYXBzKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLmNsYW1wLCBjbGFtcCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9zaWduYWxzKHNlbGYsIGQsICdmbGFncycsIE9yZGVyZWRTaWduYWxzW2xvYWRlcl1bOmZpXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9zaWduYWxzKHNlbGYsIGQsICd0cmFwcycsIE9yZGVyZWRTaWduYWxzW2xvYWRlcl1bOnRpXSkKKworICAgICAgICBzeXMubW9kdWxlc1snZGVjaW1hbCddID0gc2F2ZWRlY2ltYWwKKworICAgIGRlZiB0ZXN0X2VxdWFsaXR5X3dpdGhfb3RoZXJfdHlwZXMoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oRGVjaW1hbCgxMCksIFsnYScsIDEuMCwgRGVjaW1hbCgxMCksICgxLDIpLCB7fV0pCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oRGVjaW1hbCgxMCksIFsnYScsIDEuMCwgKDEsMiksIHt9XSkKKworICAgIGRlZiB0ZXN0X2NvcHkoc2VsZik6CisgICAgICAgICMgQWxsIGNvcGllcyBzaG91bGQgYmUgZGVlcAorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5jb3B5KCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChpZChjKSwgaWQoZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoaWQoYy5mbGFncyksIGlkKGQuZmxhZ3MpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlkKGMudHJhcHMpLCBpZChkLnRyYXBzKSkKKyAgICAgICAgazEgPSBzZXQoYy5mbGFncy5rZXlzKCkpCisgICAgICAgIGsyID0gc2V0KGQuZmxhZ3Mua2V5cygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGsxLCBrMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZsYWdzLCBkLmZsYWdzKQorCisgICAgZGVmIHRlc3RfX2NsYW1wKHNlbGYpOgorICAgICAgICAjIEluIFB5dGhvbiAzLjIsIHRoZSBwcml2YXRlIGF0dHJpYnV0ZSBgX2NsYW1wYCB3YXMgbWFkZQorICAgICAgICAjIHB1YmxpYyAoaXNzdWUgODU0MCksIHdpdGggdGhlIG9sZCBgX2NsYW1wYCBiZWNvbWluZyBhCisgICAgICAgICMgcHJvcGVydHkgd3JhcHBpbmcgYGNsYW1wYC4gIEZvciB0aGUgZHVyYXRpb24gb2YgUHl0aG9uIDMuMgorICAgICAgICAjIG9ubHksIHRoZSBhdHRyaWJ1dGUgc2hvdWxkIGJlIGdldHRhYmxlL3NldHRhYmxlIHZpYSBib3RoCisgICAgICAgICMgYGNsYW1wYCBhbmQgYF9jbGFtcGA7IGluIFB5dGhvbiAzLjMsIGBfY2xhbXBgIHNob3VsZCBiZQorICAgICAgICAjIHJlbW92ZWQuCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBjLCAnX2NsYW1wJykKKworICAgIGRlZiB0ZXN0X2FicyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuYWJzKERlY2ltYWwoLTEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuYWJzKC0xKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmFicywgJy0xJykKKworICAgIGRlZiB0ZXN0X2FkZChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuYWRkKERlY2ltYWwoMSksIERlY2ltYWwoMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5hZGQoMSwgMSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5hZGQoRGVjaW1hbCgxKSwgMSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5hZGQoMSwgRGVjaW1hbCgxKSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5hZGQsICcxJywgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmFkZCwgMSwgJzEnKQorCisgICAgZGVmIHRlc3RfY29tcGFyZShzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuY29tcGFyZShEZWNpbWFsKDEpLCBEZWNpbWFsKDEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29tcGFyZSgxLCAxKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbXBhcmUoRGVjaW1hbCgxKSwgMSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb21wYXJlKDEsIERlY2ltYWwoMSkpLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuY29tcGFyZSwgJzEnLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuY29tcGFyZSwgMSwgJzEnKQorCisgICAgZGVmIHRlc3RfY29tcGFyZV9zaWduYWwoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmNvbXBhcmVfc2lnbmFsKERlY2ltYWwoMSksIERlY2ltYWwoMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb21wYXJlX3NpZ25hbCgxLCAxKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbXBhcmVfc2lnbmFsKERlY2ltYWwoMSksIDEpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29tcGFyZV9zaWduYWwoMSwgRGVjaW1hbCgxKSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5jb21wYXJlX3NpZ25hbCwgJzEnLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuY29tcGFyZV9zaWduYWwsIDEsICcxJykKKworICAgIGRlZiB0ZXN0X2NvbXBhcmVfdG90YWwoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmNvbXBhcmVfdG90YWwoRGVjaW1hbCgxKSwgRGVjaW1hbCgxKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbXBhcmVfdG90YWwoMSwgMSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb21wYXJlX3RvdGFsKERlY2ltYWwoMSksIDEpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29tcGFyZV90b3RhbCgxLCBEZWNpbWFsKDEpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvbXBhcmVfdG90YWwsICcxJywgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvbXBhcmVfdG90YWwsIDEsICcxJykKKworICAgIGRlZiB0ZXN0X2NvbXBhcmVfdG90YWxfbWFnKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5jb21wYXJlX3RvdGFsX21hZyhEZWNpbWFsKDEpLCBEZWNpbWFsKDEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29tcGFyZV90b3RhbF9tYWcoMSwgMSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb21wYXJlX3RvdGFsX21hZyhEZWNpbWFsKDEpLCAxKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbXBhcmVfdG90YWxfbWFnKDEsIERlY2ltYWwoMSkpLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuY29tcGFyZV90b3RhbF9tYWcsICcxJywgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvbXBhcmVfdG90YWxfbWFnLCAxLCAnMScpCisKKyAgICBkZWYgdGVzdF9jb3B5X2FicyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuY29weV9hYnMoRGVjaW1hbCgtMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb3B5X2FicygtMSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5jb3B5X2FicywgJy0xJykKKworICAgIGRlZiB0ZXN0X2NvcHlfZGVjaW1hbChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuY29weV9kZWNpbWFsKERlY2ltYWwoLTEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29weV9kZWNpbWFsKC0xKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvcHlfZGVjaW1hbCwgJy0xJykKKworICAgIGRlZiB0ZXN0X2NvcHlfbmVnYXRlKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5jb3B5X25lZ2F0ZShEZWNpbWFsKC0xKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvcHlfbmVnYXRlKC0xKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvcHlfbmVnYXRlLCAnLTEnKQorCisgICAgZGVmIHRlc3RfY29weV9zaWduKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5jb3B5X3NpZ24oRGVjaW1hbCgxKSwgRGVjaW1hbCgtMikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb3B5X3NpZ24oMSwgLTIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29weV9zaWduKERlY2ltYWwoMSksIC0yKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvcHlfc2lnbigxLCBEZWNpbWFsKC0yKSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5jb3B5X3NpZ24sICcxJywgLTIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5jb3B5X3NpZ24sIDEsICctMicpCisKKyAgICBkZWYgdGVzdF9kaXZpZGUoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmRpdmlkZShEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGl2aWRlKDEsIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGl2aWRlKERlY2ltYWwoMSksIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGl2aWRlKDEsIERlY2ltYWwoMikpLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZGl2aWRlLCAnMScsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5kaXZpZGUsIDEsICcyJykKKworICAgIGRlZiB0ZXN0X2RpdmlkZV9pbnQoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmRpdmlkZV9pbnQoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmRpdmlkZV9pbnQoMSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kaXZpZGVfaW50KERlY2ltYWwoMSksIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGl2aWRlX2ludCgxLCBEZWNpbWFsKDIpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmRpdmlkZV9pbnQsICcxJywgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmRpdmlkZV9pbnQsIDEsICcyJykKKworICAgIGRlZiB0ZXN0X2Rpdm1vZChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuZGl2bW9kKERlY2ltYWwoMSksIERlY2ltYWwoMikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kaXZtb2QoMSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kaXZtb2QoRGVjaW1hbCgxKSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kaXZtb2QoMSwgRGVjaW1hbCgyKSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5kaXZtb2QsICcxJywgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmRpdm1vZCwgMSwgJzInKQorCisgICAgZGVmIHRlc3RfZXhwKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5leHAoRGVjaW1hbCgxMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5leHAoMTApLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZXhwLCAnMTAnKQorCisgICAgZGVmIHRlc3RfZm1hKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5mbWEoRGVjaW1hbCgyKSwgRGVjaW1hbCgzKSwgRGVjaW1hbCg0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYSgyLCAzLCA0KSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYShEZWNpbWFsKDIpLCAzLCA0KSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYSgyLCBEZWNpbWFsKDMpLCA0KSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYSgyLCAzLCBEZWNpbWFsKDQpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYShEZWNpbWFsKDIpLCBEZWNpbWFsKDMpLCA0KSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmZtYSwgJzInLCAzLCA0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZm1hLCAyLCAnMycsIDQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5mbWEsIDIsIDMsICc0JykKKworICAgICAgICAjIElzc3VlIDEyMDc5IGZvciBDb250ZXh0LmZtYSAuLi4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmZtYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCgnSW5maW5pdHknKSwgRGVjaW1hbCgwKSwgIm5vdCBhIGRlY2ltYWwiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZm1hLAorICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKDEpLCBEZWNpbWFsKCdzbmFuJyksIDEuMjIyKQorICAgICAgICAjIC4uLiBhbmQgZm9yIERlY2ltYWwuZm1hLgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIERlY2ltYWwoJ0luZmluaXR5JykuZm1hLAorICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKDApLCAibm90IGEgZGVjaW1hbCIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRGVjaW1hbCgxKS5mbWEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoJ3NuYW4nKSwgMS4yMjIpCisKKyAgICBkZWYgdGVzdF9pc19maW5pdGUoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmlzX2Zpbml0ZShEZWNpbWFsKDEwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX2Zpbml0ZSgxMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19maW5pdGUsICcxMCcpCisKKyAgICBkZWYgdGVzdF9pc19pbmZpbml0ZShzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuaXNfaW5maW5pdGUoRGVjaW1hbCgxMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5pc19pbmZpbml0ZSgxMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19pbmZpbml0ZSwgJzEwJykKKworICAgIGRlZiB0ZXN0X2lzX25hbihzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuaXNfbmFuKERlY2ltYWwoMTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuaXNfbmFuKDEwKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmlzX25hbiwgJzEwJykKKworICAgIGRlZiB0ZXN0X2lzX25vcm1hbChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuaXNfbm9ybWFsKERlY2ltYWwoMTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuaXNfbm9ybWFsKDEwKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmlzX25vcm1hbCwgJzEwJykKKworICAgIGRlZiB0ZXN0X2lzX3FuYW4oc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmlzX3FuYW4oRGVjaW1hbCgxMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5pc19xbmFuKDEwKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmlzX3FuYW4sICcxMCcpCisKKyAgICBkZWYgdGVzdF9pc19zaWduZWQoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmlzX3NpZ25lZChEZWNpbWFsKDEwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX3NpZ25lZCgxMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19zaWduZWQsICcxMCcpCisKKyAgICBkZWYgdGVzdF9pc19zbmFuKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5pc19zbmFuKERlY2ltYWwoMTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuaXNfc25hbigxMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19zbmFuLCAnMTAnKQorCisgICAgZGVmIHRlc3RfaXNfc3Vibm9ybWFsKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5pc19zdWJub3JtYWwoRGVjaW1hbCgxMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5pc19zdWJub3JtYWwoMTApLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuaXNfc3Vibm9ybWFsLCAnMTAnKQorCisgICAgZGVmIHRlc3RfaXNfemVybyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuaXNfemVybyhEZWNpbWFsKDEwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX3plcm8oMTApLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuaXNfemVybywgJzEwJykKKworICAgIGRlZiB0ZXN0X2xuKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5sbihEZWNpbWFsKDEwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmxuKDEwKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmxuLCAnMTAnKQorCisgICAgZGVmIHRlc3RfbG9nMTAoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmxvZzEwKERlY2ltYWwoMTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9nMTAoMTApLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG9nMTAsICcxMCcpCisKKyAgICBkZWYgdGVzdF9sb2diKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5sb2diKERlY2ltYWwoMTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9nYigxMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5sb2diLCAnMTAnKQorCisgICAgZGVmIHRlc3RfbG9naWNhbF9hbmQoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmxvZ2ljYWxfYW5kKERlY2ltYWwoMSksIERlY2ltYWwoMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5sb2dpY2FsX2FuZCgxLCAxKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmxvZ2ljYWxfYW5kKERlY2ltYWwoMSksIDEpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9naWNhbF9hbmQoMSwgRGVjaW1hbCgxKSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5sb2dpY2FsX2FuZCwgJzEnLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG9naWNhbF9hbmQsIDEsICcxJykKKworICAgIGRlZiB0ZXN0X2xvZ2ljYWxfaW52ZXJ0KHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5sb2dpY2FsX2ludmVydChEZWNpbWFsKDEwMDApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9naWNhbF9pbnZlcnQoMTAwMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5sb2dpY2FsX2ludmVydCwgJzEwMDAnKQorCisgICAgZGVmIHRlc3RfbG9naWNhbF9vcihzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMubG9naWNhbF9vcihEZWNpbWFsKDEpLCBEZWNpbWFsKDEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9naWNhbF9vcigxLCAxKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmxvZ2ljYWxfb3IoRGVjaW1hbCgxKSwgMSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5sb2dpY2FsX29yKDEsIERlY2ltYWwoMSkpLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG9naWNhbF9vciwgJzEnLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG9naWNhbF9vciwgMSwgJzEnKQorCisgICAgZGVmIHRlc3RfbG9naWNhbF94b3Ioc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLmxvZ2ljYWxfeG9yKERlY2ltYWwoMSksIERlY2ltYWwoMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5sb2dpY2FsX3hvcigxLCAxKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmxvZ2ljYWxfeG9yKERlY2ltYWwoMSksIDEpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9naWNhbF94b3IoMSwgRGVjaW1hbCgxKSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5sb2dpY2FsX3hvciwgJzEnLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG9naWNhbF94b3IsIDEsICcxJykKKworICAgIGRlZiB0ZXN0X21heChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMubWF4KERlY2ltYWwoMSksIERlY2ltYWwoMikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5tYXgoMSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5tYXgoRGVjaW1hbCgxKSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5tYXgoMSwgRGVjaW1hbCgyKSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5tYXgsICcxJywgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm1heCwgMSwgJzInKQorCisgICAgZGVmIHRlc3RfbWF4X21hZyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMubWF4X21hZyhEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubWF4X21hZygxLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1heF9tYWcoRGVjaW1hbCgxKSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5tYXhfbWFnKDEsIERlY2ltYWwoMikpLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubWF4X21hZywgJzEnLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubWF4X21hZywgMSwgJzInKQorCisgICAgZGVmIHRlc3RfbWluKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5taW4oRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1pbigxLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1pbihEZWNpbWFsKDEpLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1pbigxLCBEZWNpbWFsKDIpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm1pbiwgJzEnLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubWluLCAxLCAnMicpCisKKyAgICBkZWYgdGVzdF9taW5fbWFnKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5taW5fbWFnKERlY2ltYWwoMSksIERlY2ltYWwoMikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5taW5fbWFnKDEsIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubWluX21hZyhEZWNpbWFsKDEpLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1pbl9tYWcoMSwgRGVjaW1hbCgyKSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5taW5fbWFnLCAnMScsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5taW5fbWFnLCAxLCAnMicpCisKKyAgICBkZWYgdGVzdF9taW51cyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMubWludXMoRGVjaW1hbCgxMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5taW51cygxMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5taW51cywgJzEwJykKKworICAgIGRlZiB0ZXN0X211bHRpcGx5KHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5tdWx0aXBseShEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubXVsdGlwbHkoMSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5tdWx0aXBseShEZWNpbWFsKDEpLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm11bHRpcGx5KDEsIERlY2ltYWwoMikpLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubXVsdGlwbHksICcxJywgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm11bHRpcGx5LCAxLCAnMicpCisKKyAgICBkZWYgdGVzdF9uZXh0X21pbnVzKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5uZXh0X21pbnVzKERlY2ltYWwoMTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubmV4dF9taW51cygxMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5uZXh0X21pbnVzLCAnMTAnKQorCisgICAgZGVmIHRlc3RfbmV4dF9wbHVzKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5uZXh0X3BsdXMoRGVjaW1hbCgxMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5uZXh0X3BsdXMoMTApLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubmV4dF9wbHVzLCAnMTAnKQorCisgICAgZGVmIHRlc3RfbmV4dF90b3dhcmQoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLm5leHRfdG93YXJkKERlY2ltYWwoMSksIERlY2ltYWwoMikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5uZXh0X3Rvd2FyZCgxLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm5leHRfdG93YXJkKERlY2ltYWwoMSksIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubmV4dF90b3dhcmQoMSwgRGVjaW1hbCgyKSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5uZXh0X3Rvd2FyZCwgJzEnLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubmV4dF90b3dhcmQsIDEsICcyJykKKworICAgIGRlZiB0ZXN0X25vcm1hbGl6ZShzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMubm9ybWFsaXplKERlY2ltYWwoMTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubm9ybWFsaXplKDEwKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm5vcm1hbGl6ZSwgJzEwJykKKworICAgIGRlZiB0ZXN0X251bWJlcl9jbGFzcyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm51bWJlcl9jbGFzcygxMjMpLCBjLm51bWJlcl9jbGFzcyhEZWNpbWFsKDEyMykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubnVtYmVyX2NsYXNzKDApLCBjLm51bWJlcl9jbGFzcyhEZWNpbWFsKDApKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm51bWJlcl9jbGFzcygtNDUpLCBjLm51bWJlcl9jbGFzcyhEZWNpbWFsKC00NSkpKQorCisgICAgZGVmIHRlc3RfcGx1cyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMucGx1cyhEZWNpbWFsKDEwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnBsdXMoMTApLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMucGx1cywgJzEwJykKKworICAgIGRlZiB0ZXN0X3Bvd2VyKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5wb3dlcihEZWNpbWFsKDEpLCBEZWNpbWFsKDQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucG93ZXIoMSwgNCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5wb3dlcihEZWNpbWFsKDEpLCA0KSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnBvd2VyKDEsIERlY2ltYWwoNCkpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucG93ZXIoRGVjaW1hbCgxKSwgRGVjaW1hbCg0KSksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5wb3dlciwgJzEnLCA0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMucG93ZXIsIDEsICc0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnBvd2VyKG1vZHVsbz01LCBiPTgsIGE9MiksIDEpCisKKyAgICBkZWYgdGVzdF9xdWFudGl6ZShzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMucXVhbnRpemUoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnF1YW50aXplKDEsIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucXVhbnRpemUoRGVjaW1hbCgxKSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5xdWFudGl6ZSgxLCBEZWNpbWFsKDIpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnF1YW50aXplLCAnMScsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5xdWFudGl6ZSwgMSwgJzInKQorCisgICAgZGVmIHRlc3RfcmVtYWluZGVyKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5yZW1haW5kZXIoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJlbWFpbmRlcigxLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJlbWFpbmRlcihEZWNpbWFsKDEpLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJlbWFpbmRlcigxLCBEZWNpbWFsKDIpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnJlbWFpbmRlciwgJzEnLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMucmVtYWluZGVyLCAxLCAnMicpCisKKyAgICBkZWYgdGVzdF9yZW1haW5kZXJfbmVhcihzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMucmVtYWluZGVyX25lYXIoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJlbWFpbmRlcl9uZWFyKDEsIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucmVtYWluZGVyX25lYXIoRGVjaW1hbCgxKSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5yZW1haW5kZXJfbmVhcigxLCBEZWNpbWFsKDIpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnJlbWFpbmRlcl9uZWFyLCAnMScsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5yZW1haW5kZXJfbmVhciwgMSwgJzInKQorCisgICAgZGVmIHRlc3Rfcm90YXRlKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5yb3RhdGUoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJvdGF0ZSgxLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJvdGF0ZShEZWNpbWFsKDEpLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJvdGF0ZSgxLCBEZWNpbWFsKDIpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnJvdGF0ZSwgJzEnLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMucm90YXRlLCAxLCAnMicpCisKKyAgICBkZWYgdGVzdF9zcXJ0KHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5zcXJ0KERlY2ltYWwoMTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuc3FydCgxMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5zcXJ0LCAnMTAnKQorCisgICAgZGVmIHRlc3Rfc2FtZV9xdWFudHVtKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5zYW1lX3F1YW50dW0oRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNhbWVfcXVhbnR1bSgxLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNhbWVfcXVhbnR1bShEZWNpbWFsKDEpLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNhbWVfcXVhbnR1bSgxLCBEZWNpbWFsKDIpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnNhbWVfcXVhbnR1bSwgJzEnLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuc2FtZV9xdWFudHVtLCAxLCAnMicpCisKKyAgICBkZWYgdGVzdF9zY2FsZWIoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLnNjYWxlYihEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuc2NhbGViKDEsIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuc2NhbGViKERlY2ltYWwoMSksIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuc2NhbGViKDEsIERlY2ltYWwoMikpLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuc2NhbGViLCAnMScsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5zY2FsZWIsIDEsICcyJykKKworICAgIGRlZiB0ZXN0X3NoaWZ0KHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy5zaGlmdChEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuc2hpZnQoMSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5zaGlmdChEZWNpbWFsKDEpLCAyKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNoaWZ0KDEsIERlY2ltYWwoMikpLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuc2hpZnQsICcxJywgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnNoaWZ0LCAxLCAnMicpCisKKyAgICBkZWYgdGVzdF9zdWJ0cmFjdChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMuc3VidHJhY3QoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnN1YnRyYWN0KDEsIDIpLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuc3VidHJhY3QoRGVjaW1hbCgxKSwgMiksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5zdWJ0cmFjdCgxLCBEZWNpbWFsKDIpKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnN1YnRyYWN0LCAnMScsIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5zdWJ0cmFjdCwgMSwgJzInKQorCisgICAgZGVmIHRlc3RfdG9fZW5nX3N0cmluZyhzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMudG9fZW5nX3N0cmluZyhEZWNpbWFsKDEwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnRvX2VuZ19zdHJpbmcoMTApLCBkKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMudG9fZW5nX3N0cmluZywgJzEwJykKKworICAgIGRlZiB0ZXN0X3RvX3NjaV9zdHJpbmcoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBjLnRvX3NjaV9zdHJpbmcoRGVjaW1hbCgxMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy50b19zY2lfc3RyaW5nKDEwKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnRvX3NjaV9zdHJpbmcsICcxMCcpCisKKyAgICBkZWYgdGVzdF90b19pbnRlZ3JhbF9leGFjdChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgZCA9IGMudG9faW50ZWdyYWxfZXhhY3QoRGVjaW1hbCgxMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy50b19pbnRlZ3JhbF9leGFjdCgxMCksIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy50b19pbnRlZ3JhbF9leGFjdCwgJzEwJykKKworICAgIGRlZiB0ZXN0X3RvX2ludGVncmFsX3ZhbHVlKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisKKyAgICAgICAgYyA9IENvbnRleHQoKQorICAgICAgICBkID0gYy50b19pbnRlZ3JhbF92YWx1ZShEZWNpbWFsKDEwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnRvX2ludGVncmFsX3ZhbHVlKDEwKSwgZCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnRvX2ludGVncmFsX3ZhbHVlLCAnMTAnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMudG9faW50ZWdyYWxfdmFsdWUsIDEwLCAneCcpCisKK2NsYXNzIENDb250ZXh0QVBJdGVzdHMoQ29udGV4dEFQSXRlc3RzKToKKyAgICBkZWNpbWFsID0gQworY2xhc3MgUHlDb250ZXh0QVBJdGVzdHMoQ29udGV4dEFQSXRlc3RzKToKKyAgICBkZWNpbWFsID0gUAorCitjbGFzcyBDb250ZXh0V2l0aFN0YXRlbWVudCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIyBDYW4ndCBkbyB0aGVzZSBhcyBkb2NzdHJpbmdzIHVudGlsIFB5dGhvbiAyLjYKKyAgICAjIGFzIGRvY3Rlc3QgY2FuJ3QgaGFuZGxlIF9fZnV0dXJlX18gc3RhdGVtZW50cworCisgICAgZGVmIHRlc3RfbG9jYWxjb250ZXh0KHNlbGYpOgorICAgICAgICAjIFVzZSBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgY29udGV4dCBpbiB0aGUgYmxvY2sKKyAgICAgICAgZ2V0Y29udGV4dCA9IHNlbGYuZGVjaW1hbC5nZXRjb250ZXh0CisgICAgICAgIGxvY2FsY29udGV4dCA9IHNlbGYuZGVjaW1hbC5sb2NhbGNvbnRleHQKKworICAgICAgICBvcmlnX2N0eCA9IGdldGNvbnRleHQoKQorICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGVudGVyX2N0eDoKKyAgICAgICAgICAgIHNldF9jdHggPSBnZXRjb250ZXh0KCkKKyAgICAgICAgZmluYWxfY3R4ID0gZ2V0Y29udGV4dCgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMob3JpZ19jdHgsIGZpbmFsX2N0eCwgJ2RpZCBub3QgcmVzdG9yZSBjb250ZXh0IGNvcnJlY3RseScpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3Qob3JpZ19jdHgsIHNldF9jdHgsICdkaWQgbm90IGNvcHkgdGhlIGNvbnRleHQnKQorICAgICAgICBzZWxmLmFzc2VydElzKHNldF9jdHgsIGVudGVyX2N0eCwgJ19fZW50ZXJfXyByZXR1cm5lZCB3cm9uZyBjb250ZXh0JykKKworICAgIGRlZiB0ZXN0X2xvY2FsY29udGV4dGFyZyhzZWxmKToKKyAgICAgICAgIyBVc2UgYSBjb3B5IG9mIHRoZSBzdXBwbGllZCBjb250ZXh0IGluIHRoZSBibG9jaworICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKyAgICAgICAgZ2V0Y29udGV4dCA9IHNlbGYuZGVjaW1hbC5nZXRjb250ZXh0CisgICAgICAgIGxvY2FsY29udGV4dCA9IHNlbGYuZGVjaW1hbC5sb2NhbGNvbnRleHQKKworICAgICAgICBsb2NhbGNvbnRleHQgPSBzZWxmLmRlY2ltYWwubG9jYWxjb250ZXh0CisgICAgICAgIG9yaWdfY3R4ID0gZ2V0Y29udGV4dCgpCisgICAgICAgIG5ld19jdHggPSBDb250ZXh0KHByZWM9NDIpCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KG5ld19jdHgpIGFzIGVudGVyX2N0eDoKKyAgICAgICAgICAgIHNldF9jdHggPSBnZXRjb250ZXh0KCkKKyAgICAgICAgZmluYWxfY3R4ID0gZ2V0Y29udGV4dCgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMob3JpZ19jdHgsIGZpbmFsX2N0eCwgJ2RpZCBub3QgcmVzdG9yZSBjb250ZXh0IGNvcnJlY3RseScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0X2N0eC5wcmVjLCBuZXdfY3R4LnByZWMsICdkaWQgbm90IHNldCBjb3JyZWN0IGNvbnRleHQnKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KG5ld19jdHgsIHNldF9jdHgsICdkaWQgbm90IGNvcHkgdGhlIGNvbnRleHQnKQorICAgICAgICBzZWxmLmFzc2VydElzKHNldF9jdHgsIGVudGVyX2N0eCwgJ19fZW50ZXJfXyByZXR1cm5lZCB3cm9uZyBjb250ZXh0JykKKworICAgIGRlZiB0ZXN0X25lc3RlZF93aXRoX3N0YXRlbWVudHMoc2VsZik6CisgICAgICAgICMgVXNlIGEgY29weSBvZiB0aGUgc3VwcGxpZWQgY29udGV4dCBpbiB0aGUgYmxvY2sKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorICAgICAgICBnZXRjb250ZXh0ID0gc2VsZi5kZWNpbWFsLmdldGNvbnRleHQKKyAgICAgICAgbG9jYWxjb250ZXh0ID0gc2VsZi5kZWNpbWFsLmxvY2FsY29udGV4dAorICAgICAgICBDbGFtcGVkID0gc2VsZi5kZWNpbWFsLkNsYW1wZWQKKyAgICAgICAgT3ZlcmZsb3cgPSBzZWxmLmRlY2ltYWwuT3ZlcmZsb3cKKworICAgICAgICBvcmlnX2N0eCA9IGdldGNvbnRleHQoKQorICAgICAgICBvcmlnX2N0eC5jbGVhcl9mbGFncygpCisgICAgICAgIG5ld19jdHggPSBDb250ZXh0KEVtYXg9Mzg0KQorICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGMxOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjMS5mbGFncywgb3JpZ19jdHguZmxhZ3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMxLnRyYXBzLCBvcmlnX2N0eC50cmFwcykKKyAgICAgICAgICAgIGMxLnRyYXBzW0NsYW1wZWRdID0gVHJ1ZQorICAgICAgICAgICAgYzEuRW1pbiA9IC0zODMKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwob3JpZ19jdHguRW1pbiwgLTM4MykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKENsYW1wZWQsIGMxLmNyZWF0ZV9kZWNpbWFsLCAnMGUtOTk5JykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjMS5mbGFnc1tDbGFtcGVkXSkKKyAgICAgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KG5ld19jdHgpIGFzIGMyOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYzIuZmxhZ3MsIG5ld19jdHguZmxhZ3MpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjMi50cmFwcywgbmV3X2N0eC50cmFwcykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvdywgYzIucG93ZXIsIERlY2ltYWwoJzMuNGUyMDAnKSwgMikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGMyLmZsYWdzW0NsYW1wZWRdKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjMi5mbGFnc1tPdmVyZmxvd10pCisgICAgICAgICAgICAgICAgZGVsIGMyCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGMxLmZsYWdzW092ZXJmbG93XSkKKyAgICAgICAgICAgIGRlbCBjMQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKG9yaWdfY3R4LkVtaW4sIC0zODMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3JpZ19jdHguZmxhZ3NbQ2xhbXBlZF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3JpZ19jdHguZmxhZ3NbT3ZlcmZsb3ddKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG5ld19jdHguZmxhZ3NbQ2xhbXBlZF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobmV3X2N0eC5mbGFnc1tPdmVyZmxvd10pCisKKyAgICBkZWYgdGVzdF93aXRoX3N0YXRlbWVudHNfZ2MxKHNlbGYpOgorICAgICAgICBsb2NhbGNvbnRleHQgPSBzZWxmLmRlY2ltYWwubG9jYWxjb250ZXh0CisKKyAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjMToKKyAgICAgICAgICAgIGRlbCBjMQorICAgICAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjMjoKKyAgICAgICAgICAgICAgICBkZWwgYzIKKyAgICAgICAgICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGMzOgorICAgICAgICAgICAgICAgICAgICBkZWwgYzMKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjNDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbCBjNAorCisgICAgZGVmIHRlc3Rfd2l0aF9zdGF0ZW1lbnRzX2djMihzZWxmKToKKyAgICAgICAgbG9jYWxjb250ZXh0ID0gc2VsZi5kZWNpbWFsLmxvY2FsY29udGV4dAorCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzE6CisgICAgICAgICAgICB3aXRoIGxvY2FsY29udGV4dChjMSkgYXMgYzI6CisgICAgICAgICAgICAgICAgZGVsIGMxCisgICAgICAgICAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoYzIpIGFzIGMzOgorICAgICAgICAgICAgICAgICAgICBkZWwgYzIKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoYzMpIGFzIGM0OgorICAgICAgICAgICAgICAgICAgICAgICAgZGVsIGMzCisgICAgICAgICAgICAgICAgICAgICAgICBkZWwgYzQKKworICAgIGRlZiB0ZXN0X3dpdGhfc3RhdGVtZW50c19nYzMoc2VsZik6CisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorICAgICAgICBsb2NhbGNvbnRleHQgPSBzZWxmLmRlY2ltYWwubG9jYWxjb250ZXh0CisgICAgICAgIGdldGNvbnRleHQgPSBzZWxmLmRlY2ltYWwuZ2V0Y29udGV4dAorICAgICAgICBzZXRjb250ZXh0ID0gc2VsZi5kZWNpbWFsLnNldGNvbnRleHQKKworICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGMxOgorICAgICAgICAgICAgZGVsIGMxCisgICAgICAgICAgICBuMSA9IENvbnRleHQocHJlYz0xKQorICAgICAgICAgICAgc2V0Y29udGV4dChuMSkKKyAgICAgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KG4xKSBhcyBjMjoKKyAgICAgICAgICAgICAgICBkZWwgbjEKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMyLnByZWMsIDEpCisgICAgICAgICAgICAgICAgZGVsIGMyCisgICAgICAgICAgICAgICAgbjIgPSBDb250ZXh0KHByZWM9MikKKyAgICAgICAgICAgICAgICBzZXRjb250ZXh0KG4yKQorICAgICAgICAgICAgICAgIGRlbCBuMgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0Y29udGV4dCgpLnByZWMsIDIpCisgICAgICAgICAgICAgICAgbjMgPSBDb250ZXh0KHByZWM9MykKKyAgICAgICAgICAgICAgICBzZXRjb250ZXh0KG4zKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0Y29udGV4dCgpLnByZWMsIDMpCisgICAgICAgICAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQobjMpIGFzIGMzOgorICAgICAgICAgICAgICAgICAgICBkZWwgbjMKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjMy5wcmVjLCAzKQorICAgICAgICAgICAgICAgICAgICBkZWwgYzMKKyAgICAgICAgICAgICAgICAgICAgbjQgPSBDb250ZXh0KHByZWM9NCkKKyAgICAgICAgICAgICAgICAgICAgc2V0Y29udGV4dChuNCkKKyAgICAgICAgICAgICAgICAgICAgZGVsIG40CisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0Y29udGV4dCgpLnByZWMsIDQpCisgICAgICAgICAgICAgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzQ6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGM0LnByZWMsIDQpCisgICAgICAgICAgICAgICAgICAgICAgICBkZWwgYzQKKworY2xhc3MgQ0NvbnRleHRXaXRoU3RhdGVtZW50KENvbnRleHRXaXRoU3RhdGVtZW50KToKKyAgICBkZWNpbWFsID0gQworY2xhc3MgUHlDb250ZXh0V2l0aFN0YXRlbWVudChDb250ZXh0V2l0aFN0YXRlbWVudCk6CisgICAgZGVjaW1hbCA9IFAKKworY2xhc3MgQ29udGV4dEZsYWdzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2ZsYWdzX2lycmVsZXZhbnQoc2VsZik6CisgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgcmVzdWx0IChudW1lcmljIHJlc3VsdCArIGZsYWdzIHJhaXNlZCkgb2YgYW4KKyAgICAgICAgIyBhcml0aG1ldGljIG9wZXJhdGlvbiBkb2Vzbid0IGRlcGVuZCBvbiB0aGUgY3VycmVudCBmbGFncworICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5Db250ZXh0CisgICAgICAgIEluZXhhY3QgPSBzZWxmLmRlY2ltYWwuSW5leGFjdAorICAgICAgICBSb3VuZGVkID0gc2VsZi5kZWNpbWFsLlJvdW5kZWQKKyAgICAgICAgVW5kZXJmbG93ID0gc2VsZi5kZWNpbWFsLlVuZGVyZmxvdworICAgICAgICBDbGFtcGVkID0gc2VsZi5kZWNpbWFsLkNsYW1wZWQKKyAgICAgICAgU3Vibm9ybWFsID0gc2VsZi5kZWNpbWFsLlN1Ym5vcm1hbAorICAgICAgICBST1VORF9IQUxGX0VWRU4gPSBzZWxmLmRlY2ltYWwuUk9VTkRfSEFMRl9FVkVOCisKKyAgICAgICAgZGVmIHJhaXNlX2Vycm9yKGNvbnRleHQsIGZsYWcpOgorICAgICAgICAgICAgaWYgc2VsZi5kZWNpbWFsID09IEM6CisgICAgICAgICAgICAgICAgY29udGV4dC5mbGFnc1tmbGFnXSA9IFRydWUKKyAgICAgICAgICAgICAgICBpZiBjb250ZXh0LnRyYXBzW2ZsYWddOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBmbGFnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbnRleHQuX3JhaXNlX2Vycm9yKGZsYWcpCisKKyAgICAgICAgY29udGV4dCA9IENvbnRleHQocHJlYz05LCBFbWluID0gLTQyNTAwMDAwMCwgRW1heCA9IDQyNTAwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcm91bmRpbmc9Uk9VTkRfSEFMRl9FVkVOLCB0cmFwcz1bXSwgZmxhZ3M9W10pCisKKyAgICAgICAgIyBvcGVyYXRpb25zIHRoYXQgcmFpc2UgdmFyaW91cyBmbGFncywgaW4gdGhlIGZvcm0gKGZ1bmN0aW9uLCBhcmdsaXN0KQorICAgICAgICBvcGVyYXRpb25zID0gWworICAgICAgICAgICAgKGNvbnRleHQuX2FwcGx5LCBbRGVjaW1hbCgiMTAwRS00MjUwMDAwMTAiKV0pLAorICAgICAgICAgICAgKGNvbnRleHQuc3FydCwgW0RlY2ltYWwoMildKSwKKyAgICAgICAgICAgIChjb250ZXh0LmFkZCwgW0RlY2ltYWwoIjEuMjM0NTY3ODkiKSwgRGVjaW1hbCgiOS44NzY1NDMyMSIpXSksCisgICAgICAgICAgICAoY29udGV4dC5tdWx0aXBseSwgW0RlY2ltYWwoIjEuMjM0NTY3ODkiKSwgRGVjaW1hbCgiOS44NzY1NDMyMSIpXSksCisgICAgICAgICAgICAoY29udGV4dC5zdWJ0cmFjdCwgW0RlY2ltYWwoIjEuMjM0NTY3ODkiKSwgRGVjaW1hbCgiOS44NzY1NDMyMSIpXSksCisgICAgICAgICAgICBdCisKKyAgICAgICAgIyB0cnkgdmFyaW91cyBmbGFncyBpbmRpdmlkdWFsbHksIHRoZW4gYSB3aG9sZSBsb3QgYXQgb25jZQorICAgICAgICBmbGFnc2V0cyA9IFtbSW5leGFjdF0sIFtSb3VuZGVkXSwgW1VuZGVyZmxvd10sIFtDbGFtcGVkXSwgW1N1Ym5vcm1hbF0sCisgICAgICAgICAgICAgICAgICAgIFtJbmV4YWN0LCBSb3VuZGVkLCBVbmRlcmZsb3csIENsYW1wZWQsIFN1Ym5vcm1hbF1dCisKKyAgICAgICAgZm9yIGZuLCBhcmdzIGluIG9wZXJhdGlvbnM6CisgICAgICAgICAgICAjIGZpbmQgYW5zd2VyIGFuZCBmbGFncyByYWlzZWQgdXNpbmcgYSBjbGVhbiBjb250ZXh0CisgICAgICAgICAgICBjb250ZXh0LmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIGFucyA9IGZuKCphcmdzKQorICAgICAgICAgICAgZmxhZ3MgPSBbayBmb3IgaywgdiBpbiBjb250ZXh0LmZsYWdzLml0ZW1zKCkgaWYgdl0KKworICAgICAgICAgICAgZm9yIGV4dHJhX2ZsYWdzIGluIGZsYWdzZXRzOgorICAgICAgICAgICAgICAgICMgc2V0IGZsYWdzLCBiZWZvcmUgY2FsbGluZyBvcGVyYXRpb24KKyAgICAgICAgICAgICAgICBjb250ZXh0LmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgICAgICBmb3IgZmxhZyBpbiBleHRyYV9mbGFnczoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2VfZXJyb3IoY29udGV4dCwgZmxhZykKKyAgICAgICAgICAgICAgICBuZXdfYW5zID0gZm4oKmFyZ3MpCisKKyAgICAgICAgICAgICAgICAjIGZsYWdzIHRoYXQgd2UgZXhwZWN0IHRvIGJlIHNldCBhZnRlciB0aGUgb3BlcmF0aW9uCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZmxhZ3MgPSBsaXN0KGZsYWdzKQorICAgICAgICAgICAgICAgIGZvciBmbGFnIGluIGV4dHJhX2ZsYWdzOgorICAgICAgICAgICAgICAgICAgICBpZiBmbGFnIG5vdCBpbiBleHBlY3RlZF9mbGFnczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2ZsYWdzLmFwcGVuZChmbGFnKQorICAgICAgICAgICAgICAgIGV4cGVjdGVkX2ZsYWdzLnNvcnQoa2V5PWlkKQorCisgICAgICAgICAgICAgICAgIyBmbGFncyB3ZSBhY3R1YWxseSBnb3QKKyAgICAgICAgICAgICAgICBuZXdfZmxhZ3MgPSBbayBmb3Igayx2IGluIGNvbnRleHQuZmxhZ3MuaXRlbXMoKSBpZiB2XQorICAgICAgICAgICAgICAgIG5ld19mbGFncy5zb3J0KGtleT1pZCkKKworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5zLCBuZXdfYW5zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiBwcm9kdWNlcyBkaWZmZXJlbnQgYW5zd2VycyBkZXBlbmRpbmcgb24gZmxhZ3Mgc2V0OiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCAlcywgZ290ICVzLiIgJSAoYW5zLCBuZXdfYW5zKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19mbGFncywgZXhwZWN0ZWRfZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiByYWlzZXMgZGlmZmVyZW50IGZsYWdzIGRlcGVuZGluZyBvbiBmbGFncyBzZXQ6ICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCAlcywgZ290ICVzIiAlIChleHBlY3RlZF9mbGFncywgbmV3X2ZsYWdzKSkKKworICAgIGRlZiB0ZXN0X2ZsYWdfY29tcGFyaXNvbnMoc2VsZik6CisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorICAgICAgICBJbmV4YWN0ID0gc2VsZi5kZWNpbWFsLkluZXhhY3QKKyAgICAgICAgUm91bmRlZCA9IHNlbGYuZGVjaW1hbC5Sb3VuZGVkCisKKyAgICAgICAgYyA9IENvbnRleHQoKQorCisgICAgICAgICMgVmFsaWQgU2lnbmFsRGljdAorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGMuZmxhZ3MsIGMudHJhcHMpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoYy50cmFwcywgYy5mbGFncykKKworICAgICAgICBjLmZsYWdzID0gYy50cmFwcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZmxhZ3MsIGMudHJhcHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy50cmFwcywgYy5mbGFncykKKworICAgICAgICBjLmZsYWdzW1JvdW5kZWRdID0gVHJ1ZQorICAgICAgICBjLnRyYXBzID0gYy5mbGFncworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZmxhZ3MsIGMudHJhcHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy50cmFwcywgYy5mbGFncykKKworICAgICAgICBkID0ge30KKyAgICAgICAgZC51cGRhdGUoYy5mbGFncykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLCBjLmZsYWdzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZmxhZ3MsIGQpCisKKyAgICAgICAgZFtJbmV4YWN0XSA9IFRydWUKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChkLCBjLmZsYWdzKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGMuZmxhZ3MsIGQpCisKKyAgICAgICAgIyBJbnZhbGlkIFNpZ25hbERpY3QKKyAgICAgICAgZCA9IHtJbmV4YWN0OkZhbHNlfQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGQsIGMuZmxhZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoYy5mbGFncywgZCkKKworICAgICAgICBkID0gWyJ4eXoiXQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGQsIGMuZmxhZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoYy5mbGFncywgZCkKKworICAgIEByZXF1aXJlc19JRUVFXzc1NAorICAgIGRlZiB0ZXN0X2Zsb2F0X29wZXJhdGlvbihzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIEZsb2F0T3BlcmF0aW9uID0gc2VsZi5kZWNpbWFsLkZsb2F0T3BlcmF0aW9uCisgICAgICAgIGxvY2FsY29udGV4dCA9IHNlbGYuZGVjaW1hbC5sb2NhbGNvbnRleHQKKworICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGM6CisgICAgICAgICAgICAjIyMjIyB0cmFwIGlzIG9mZiBieSBkZWZhdWx0CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGMudHJhcHNbRmxvYXRPcGVyYXRpb25dKQorCisgICAgICAgICAgICAjIGltcGxpY2l0IGNvbnZlcnNpb24gc2V0cyB0aGUgZmxhZworICAgICAgICAgICAgYy5jbGVhcl9mbGFncygpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoNy41KSwgNy41KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuZmxhZ3NbRmxvYXRPcGVyYXRpb25dKQorCisgICAgICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jcmVhdGVfZGVjaW1hbCg3LjUpLCA3LjUpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYy5mbGFnc1tGbG9hdE9wZXJhdGlvbl0pCisKKyAgICAgICAgICAgICMgZXhwbGljaXQgY29udmVyc2lvbiBkb2VzIG5vdCBzZXQgdGhlIGZsYWcKKyAgICAgICAgICAgIGMuY2xlYXJfZmxhZ3MoKQorICAgICAgICAgICAgeCA9IERlY2ltYWwuZnJvbV9mbG9hdCg3LjUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGMuZmxhZ3NbRmxvYXRPcGVyYXRpb25dKQorICAgICAgICAgICAgIyBjb21wYXJpc29uIHNldHMgdGhlIGZsYWcKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeCwgNy41KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuZmxhZ3NbRmxvYXRPcGVyYXRpb25dKQorCisgICAgICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIHggPSBjLmNyZWF0ZV9kZWNpbWFsX2Zyb21fZmxvYXQoNy41KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjLmZsYWdzW0Zsb2F0T3BlcmF0aW9uXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeCwgNy41KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuZmxhZ3NbRmxvYXRPcGVyYXRpb25dKQorCisgICAgICAgICAgICAjIyMjIyBzZXQgdGhlIHRyYXAKKyAgICAgICAgICAgIGMudHJhcHNbRmxvYXRPcGVyYXRpb25dID0gVHJ1ZQorCisgICAgICAgICAgICAjIGltcGxpY2l0IGNvbnZlcnNpb24gcmFpc2VzCisgICAgICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEZsb2F0T3BlcmF0aW9uLCBEZWNpbWFsLCA3LjUpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYy5mbGFnc1tGbG9hdE9wZXJhdGlvbl0pCisKKyAgICAgICAgICAgIGMuY2xlYXJfZmxhZ3MoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRmxvYXRPcGVyYXRpb24sIGMuY3JlYXRlX2RlY2ltYWwsIDcuNSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjLmZsYWdzW0Zsb2F0T3BlcmF0aW9uXSkKKworICAgICAgICAgICAgIyBleHBsaWNpdCBjb252ZXJzaW9uIGlzIHNpbGVudAorICAgICAgICAgICAgYy5jbGVhcl9mbGFncygpCisgICAgICAgICAgICB4ID0gRGVjaW1hbC5mcm9tX2Zsb2F0KDcuNSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYy5mbGFnc1tGbG9hdE9wZXJhdGlvbl0pCisKKyAgICAgICAgICAgIGMuY2xlYXJfZmxhZ3MoKQorICAgICAgICAgICAgeCA9IGMuY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdCg3LjUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGMuZmxhZ3NbRmxvYXRPcGVyYXRpb25dKQorCisgICAgZGVmIHRlc3RfZmxvYXRfY29tcGFyaXNvbihzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorICAgICAgICBGbG9hdE9wZXJhdGlvbiA9IHNlbGYuZGVjaW1hbC5GbG9hdE9wZXJhdGlvbgorICAgICAgICBsb2NhbGNvbnRleHQgPSBzZWxmLmRlY2ltYWwubG9jYWxjb250ZXh0CisKKyAgICAgICAgZGVmIGFzc2VydF9hdHRyKGEsIGIsIGF0dHIsIGNvbnRleHQsIHNpZ25hbD1Ob25lKToKKyAgICAgICAgICAgIGNvbnRleHQuY2xlYXJfZmxhZ3MoKQorICAgICAgICAgICAgZiA9IGdldGF0dHIoYSwgYXR0cikKKyAgICAgICAgICAgIGlmIHNpZ25hbCA9PSBGbG9hdE9wZXJhdGlvbjoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzaWduYWwsIGYsIGIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoZihiKSwgVHJ1ZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb250ZXh0LmZsYWdzW0Zsb2F0T3BlcmF0aW9uXSkKKworICAgICAgICBzbWFsbF9kID0gRGVjaW1hbCgnMC4yNScpCisgICAgICAgIGJpZ19kID0gRGVjaW1hbCgnMy4wJykKKyAgICAgICAgc21hbGxfZiA9IDAuMjUKKyAgICAgICAgYmlnX2YgPSAzLjAKKworICAgICAgICB6ZXJvX2QgPSBEZWNpbWFsKCcwLjAnKQorICAgICAgICBuZWdfemVyb19kID0gRGVjaW1hbCgnLTAuMCcpCisgICAgICAgIHplcm9fZiA9IDAuMAorICAgICAgICBuZWdfemVyb19mID0gLTAuMAorCisgICAgICAgIGluZl9kID0gRGVjaW1hbCgnSW5maW5pdHknKQorICAgICAgICBuZWdfaW5mX2QgPSBEZWNpbWFsKCctSW5maW5pdHknKQorICAgICAgICBpbmZfZiA9IGZsb2F0KCdpbmYnKQorICAgICAgICBuZWdfaW5mX2YgPSBmbG9hdCgnLWluZicpCisKKyAgICAgICAgZGVmIGRvaXQoYywgc2lnbmFsPU5vbmUpOgorICAgICAgICAgICAgIyBPcmRlcgorICAgICAgICAgICAgZm9yIGF0dHIgaW4gJ19fbHRfXycsICdfX2xlX18nOgorICAgICAgICAgICAgICAgIGFzc2VydF9hdHRyKHNtYWxsX2QsIGJpZ19mLCBhdHRyLCBjLCBzaWduYWwpCisKKyAgICAgICAgICAgIGZvciBhdHRyIGluICdfX2d0X18nLCAnX19nZV9fJzoKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXR0cihiaWdfZCwgc21hbGxfZiwgYXR0ciwgYywgc2lnbmFsKQorCisgICAgICAgICAgICAjIEVxdWFsaXR5CisgICAgICAgICAgICBhc3NlcnRfYXR0cihzbWFsbF9kLCBzbWFsbF9mLCAnX19lcV9fJywgYywgTm9uZSkKKworICAgICAgICAgICAgYXNzZXJ0X2F0dHIobmVnX3plcm9fZCwgbmVnX3plcm9fZiwgJ19fZXFfXycsIGMsIE5vbmUpCisgICAgICAgICAgICBhc3NlcnRfYXR0cihuZWdfemVyb19kLCB6ZXJvX2YsICdfX2VxX18nLCBjLCBOb25lKQorCisgICAgICAgICAgICBhc3NlcnRfYXR0cih6ZXJvX2QsIG5lZ196ZXJvX2YsICdfX2VxX18nLCBjLCBOb25lKQorICAgICAgICAgICAgYXNzZXJ0X2F0dHIoemVyb19kLCB6ZXJvX2YsICdfX2VxX18nLCBjLCBOb25lKQorCisgICAgICAgICAgICBhc3NlcnRfYXR0cihuZWdfaW5mX2QsIG5lZ19pbmZfZiwgJ19fZXFfXycsIGMsIE5vbmUpCisgICAgICAgICAgICBhc3NlcnRfYXR0cihpbmZfZCwgaW5mX2YsICdfX2VxX18nLCBjLCBOb25lKQorCisgICAgICAgICAgICAjIEluZXF1YWxpdHkKKyAgICAgICAgICAgIGFzc2VydF9hdHRyKHNtYWxsX2QsIGJpZ19mLCAnX19uZV9fJywgYywgTm9uZSkKKworICAgICAgICAgICAgYXNzZXJ0X2F0dHIoRGVjaW1hbCgnMC4xJyksIDAuMSwgJ19fbmVfXycsIGMsIE5vbmUpCisKKyAgICAgICAgICAgIGFzc2VydF9hdHRyKG5lZ19pbmZfZCwgaW5mX2YsICdfX25lX18nLCBjLCBOb25lKQorICAgICAgICAgICAgYXNzZXJ0X2F0dHIoaW5mX2QsIG5lZ19pbmZfZiwgJ19fbmVfXycsIGMsIE5vbmUpCisKKyAgICAgICAgICAgIGFzc2VydF9hdHRyKERlY2ltYWwoJ05hTicpLCBmbG9hdCgnbmFuJyksICdfX25lX18nLCBjLCBOb25lKQorCisgICAgICAgIGRlZiB0ZXN0X2NvbnRhaW5lcnMoYywgc2lnbmFsPU5vbmUpOgorICAgICAgICAgICAgYy5jbGVhcl9mbGFncygpCisgICAgICAgICAgICBzID0gc2V0KFsxMDAuMCwgRGVjaW1hbCgnMTAwLjAnKV0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzKSwgMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjLmZsYWdzW0Zsb2F0T3BlcmF0aW9uXSkKKworICAgICAgICAgICAgYy5jbGVhcl9mbGFncygpCisgICAgICAgICAgICBpZiBzaWduYWw6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc2lnbmFsLCBzb3J0ZWQsIFsxLjAsIERlY2ltYWwoJzEwLjAnKV0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHMgPSBzb3J0ZWQoWzEwLjAsIERlY2ltYWwoJzEwLjAnKV0pCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYy5mbGFnc1tGbG9hdE9wZXJhdGlvbl0pCisKKyAgICAgICAgICAgIGMuY2xlYXJfZmxhZ3MoKQorICAgICAgICAgICAgYiA9IDEwLjAgaW4gW0RlY2ltYWwoJzEwLjAnKSwgMS4wXQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuZmxhZ3NbRmxvYXRPcGVyYXRpb25dKQorCisgICAgICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIGIgPSAxMC4wIGluIHtEZWNpbWFsKCcxMC4wJyk6J2EnLCAxLjA6J2InfQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuZmxhZ3NbRmxvYXRPcGVyYXRpb25dKQorCisgICAgICAgIG5jID0gQ29udGV4dCgpCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KG5jKSBhcyBjOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjLnRyYXBzW0Zsb2F0T3BlcmF0aW9uXSkKKyAgICAgICAgICAgIGRvaXQoYywgc2lnbmFsPU5vbmUpCisgICAgICAgICAgICB0ZXN0X2NvbnRhaW5lcnMoYywgc2lnbmFsPU5vbmUpCisKKyAgICAgICAgICAgIGMudHJhcHNbRmxvYXRPcGVyYXRpb25dID0gVHJ1ZQorICAgICAgICAgICAgZG9pdChjLCBzaWduYWw9RmxvYXRPcGVyYXRpb24pCisgICAgICAgICAgICB0ZXN0X2NvbnRhaW5lcnMoYywgc2lnbmFsPUZsb2F0T3BlcmF0aW9uKQorCisgICAgZGVmIHRlc3RfZmxvYXRfb3BlcmF0aW9uX2RlZmF1bHQoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkNvbnRleHQKKyAgICAgICAgSW5leGFjdCA9IHNlbGYuZGVjaW1hbC5JbmV4YWN0CisgICAgICAgIEZsb2F0T3BlcmF0aW9uPSBzZWxmLmRlY2ltYWwuRmxvYXRPcGVyYXRpb24KKworICAgICAgICBjb250ZXh0ID0gQ29udGV4dCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoY29udGV4dC5mbGFnc1tGbG9hdE9wZXJhdGlvbl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoY29udGV4dC50cmFwc1tGbG9hdE9wZXJhdGlvbl0pCisKKyAgICAgICAgY29udGV4dC5jbGVhcl90cmFwcygpCisgICAgICAgIGNvbnRleHQudHJhcHNbSW5leGFjdF0gPSBUcnVlCisgICAgICAgIGNvbnRleHQudHJhcHNbRmxvYXRPcGVyYXRpb25dID0gVHJ1ZQorICAgICAgICBzZWxmLmFzc2VydFRydWUoY29udGV4dC50cmFwc1tGbG9hdE9wZXJhdGlvbl0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb250ZXh0LnRyYXBzW0luZXhhY3RdKQorCitjbGFzcyBDQ29udGV4dEZsYWdzKENvbnRleHRGbGFncyk6CisgICAgZGVjaW1hbCA9IEMKK2NsYXNzIFB5Q29udGV4dEZsYWdzKENvbnRleHRGbGFncyk6CisgICAgZGVjaW1hbCA9IFAKKworY2xhc3MgU3BlY2lhbENvbnRleHRzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJUZXN0IHRoZSBjb250ZXh0IHRlbXBsYXRlcy4iIiIKKworICAgIGRlZiB0ZXN0X2NvbnRleHRfdGVtcGxhdGVzKHNlbGYpOgorICAgICAgICBCYXNpY0NvbnRleHQgPSBzZWxmLmRlY2ltYWwuQmFzaWNDb250ZXh0CisgICAgICAgIEV4dGVuZGVkQ29udGV4dCA9IHNlbGYuZGVjaW1hbC5FeHRlbmRlZENvbnRleHQKKyAgICAgICAgZ2V0Y29udGV4dCA9IHNlbGYuZGVjaW1hbC5nZXRjb250ZXh0CisgICAgICAgIHNldGNvbnRleHQgPSBzZWxmLmRlY2ltYWwuc2V0Y29udGV4dAorICAgICAgICBJbnZhbGlkT3BlcmF0aW9uID0gc2VsZi5kZWNpbWFsLkludmFsaWRPcGVyYXRpb24KKyAgICAgICAgRGl2aXNpb25CeVplcm8gPSBzZWxmLmRlY2ltYWwuRGl2aXNpb25CeVplcm8KKyAgICAgICAgT3ZlcmZsb3cgPSBzZWxmLmRlY2ltYWwuT3ZlcmZsb3cKKyAgICAgICAgVW5kZXJmbG93ID0gc2VsZi5kZWNpbWFsLlVuZGVyZmxvdworICAgICAgICBDbGFtcGVkID0gc2VsZi5kZWNpbWFsLkNsYW1wZWQKKworICAgICAgICBhc3NlcnRfc2lnbmFscyhzZWxmLCBCYXNpY0NvbnRleHQsICd0cmFwcycsCisgICAgICAgICAgICBbSW52YWxpZE9wZXJhdGlvbiwgRGl2aXNpb25CeVplcm8sIE92ZXJmbG93LCBVbmRlcmZsb3csIENsYW1wZWRdCisgICAgICAgICkKKworICAgICAgICBzYXZlY29udGV4dCA9IGdldGNvbnRleHQoKS5jb3B5KCkKKyAgICAgICAgYmFzaWNfY29udGV4dF9wcmVjID0gQmFzaWNDb250ZXh0LnByZWMKKyAgICAgICAgZXh0ZW5kZWRfY29udGV4dF9wcmVjID0gRXh0ZW5kZWRDb250ZXh0LnByZWMKKworICAgICAgICBleCA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgQmFzaWNDb250ZXh0LnByZWMgPSBFeHRlbmRlZENvbnRleHQucHJlYyA9IDQ0MQorICAgICAgICAgICAgZm9yIHRlbXBsYXRlIGluIEJhc2ljQ29udGV4dCwgRXh0ZW5kZWRDb250ZXh0OgorICAgICAgICAgICAgICAgIHNldGNvbnRleHQodGVtcGxhdGUpCisgICAgICAgICAgICAgICAgYyA9IGdldGNvbnRleHQoKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoYywgdGVtcGxhdGUpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnByZWMsIDQ0MSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgZXggPSBlLl9fY2xhc3NfXworICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgQmFzaWNDb250ZXh0LnByZWMgPSBiYXNpY19jb250ZXh0X3ByZWMKKyAgICAgICAgICAgIEV4dGVuZGVkQ29udGV4dC5wcmVjID0gZXh0ZW5kZWRfY29udGV4dF9wcmVjCisgICAgICAgICAgICBzZXRjb250ZXh0KHNhdmVjb250ZXh0KQorICAgICAgICAgICAgaWYgZXg6CisgICAgICAgICAgICAgICAgcmFpc2UgZXgKKworICAgIGRlZiB0ZXN0X2RlZmF1bHRfY29udGV4dChzZWxmKToKKyAgICAgICAgRGVmYXVsdENvbnRleHQgPSBzZWxmLmRlY2ltYWwuRGVmYXVsdENvbnRleHQKKyAgICAgICAgQmFzaWNDb250ZXh0ID0gc2VsZi5kZWNpbWFsLkJhc2ljQ29udGV4dAorICAgICAgICBFeHRlbmRlZENvbnRleHQgPSBzZWxmLmRlY2ltYWwuRXh0ZW5kZWRDb250ZXh0CisgICAgICAgIGdldGNvbnRleHQgPSBzZWxmLmRlY2ltYWwuZ2V0Y29udGV4dAorICAgICAgICBzZXRjb250ZXh0ID0gc2VsZi5kZWNpbWFsLnNldGNvbnRleHQKKyAgICAgICAgSW52YWxpZE9wZXJhdGlvbiA9IHNlbGYuZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uCisgICAgICAgIERpdmlzaW9uQnlaZXJvID0gc2VsZi5kZWNpbWFsLkRpdmlzaW9uQnlaZXJvCisgICAgICAgIE92ZXJmbG93ID0gc2VsZi5kZWNpbWFsLk92ZXJmbG93CisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChCYXNpY0NvbnRleHQucHJlYywgOSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChFeHRlbmRlZENvbnRleHQucHJlYywgOSkKKworICAgICAgICBhc3NlcnRfc2lnbmFscyhzZWxmLCBEZWZhdWx0Q29udGV4dCwgJ3RyYXBzJywKKyAgICAgICAgICAgIFtJbnZhbGlkT3BlcmF0aW9uLCBEaXZpc2lvbkJ5WmVybywgT3ZlcmZsb3ddCisgICAgICAgICkKKworICAgICAgICBzYXZlY29udGV4dCA9IGdldGNvbnRleHQoKS5jb3B5KCkKKyAgICAgICAgZGVmYXVsdF9jb250ZXh0X3ByZWMgPSBEZWZhdWx0Q29udGV4dC5wcmVjCisKKyAgICAgICAgZXggPSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGMgPSBnZXRjb250ZXh0KCkKKyAgICAgICAgICAgIHNhdmVwcmVjID0gYy5wcmVjCisKKyAgICAgICAgICAgIERlZmF1bHRDb250ZXh0LnByZWMgPSA5NjEKKyAgICAgICAgICAgIGMgPSBnZXRjb250ZXh0KCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5wcmVjLCBzYXZlcHJlYykKKworICAgICAgICAgICAgc2V0Y29udGV4dChEZWZhdWx0Q29udGV4dCkKKyAgICAgICAgICAgIGMgPSBnZXRjb250ZXh0KCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoYywgRGVmYXVsdENvbnRleHQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucHJlYywgOTYxKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBleCA9IGUuX19jbGFzc19fCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBEZWZhdWx0Q29udGV4dC5wcmVjID0gZGVmYXVsdF9jb250ZXh0X3ByZWMKKyAgICAgICAgICAgIHNldGNvbnRleHQoc2F2ZWNvbnRleHQpCisgICAgICAgICAgICBpZiBleDoKKyAgICAgICAgICAgICAgICByYWlzZSBleAorCitjbGFzcyBDU3BlY2lhbENvbnRleHRzKFNwZWNpYWxDb250ZXh0cyk6CisgICAgZGVjaW1hbCA9IEMKK2NsYXNzIFB5U3BlY2lhbENvbnRleHRzKFNwZWNpYWxDb250ZXh0cyk6CisgICAgZGVjaW1hbCA9IFAKKworY2xhc3MgQ29udGV4dElucHV0VmFsaWRhdGlvbih1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX2NvbnRleHQoc2VsZik6CisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorICAgICAgICBEZWZhdWx0Q29udGV4dCA9IHNlbGYuZGVjaW1hbC5EZWZhdWx0Q29udGV4dAorCisgICAgICAgIGMgPSBEZWZhdWx0Q29udGV4dC5jb3B5KCkKKworICAgICAgICAjIHByZWMsIEVtYXgKKyAgICAgICAgZm9yIGF0dHIgaW4gWydwcmVjJywgJ0VtYXgnXToKKyAgICAgICAgICAgIHNldGF0dHIoYywgYXR0ciwgOTk5OTk5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRhdHRyKGMsIGF0dHIpLCA5OTk5OTkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCAtMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2V0YXR0ciwgYywgYXR0ciwgJ3h5eicpCisKKyAgICAgICAgIyBFbWluCisgICAgICAgIHNldGF0dHIoYywgJ0VtaW4nLCAtOTk5OTk5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldGF0dHIoYywgJ0VtaW4nKSwgLTk5OTk5OSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2V0YXR0ciwgYywgJ0VtaW4nLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGF0dHIsIGMsICdFbWluJywgKDEsMiwzKSkKKworICAgICAgICAjIHJvdW5kaW5nOiBhbHdheXMgcmFpc2UgVHlwZUVycm9yIGluIG9yZGVyIHRvIGdldCBjb25zaXN0ZW50CisgICAgICAgICMgZXhjZXB0aW9ucyBhY3Jvc3MgaW1wbGVtZW50YXRpb25zLiBJbiBkZWNpbWFsLCByb3VuZGluZworICAgICAgICAjIG1vZGVzIGFyZSBzdHJpbmdzLCBpbiBfZGVjaW1hbCB0aGV5IGFyZSBpbnRlZ2Vycy4gVGhlIGlkZWEKKyAgICAgICAgIyBpcyB0byB2aWV3IHJvdW5kaW5nIGFzIGFuIGFic3RyYWN0IHR5cGUgYW5kIG5vdCBtaW5kIHRoZQorICAgICAgICAjIGltcGxlbWVudGF0aW9uIGRldGFpbHMuCisgICAgICAgICMgSGVuY2UsIGEgdXNlciBzaG91bGQgdmlldyB0aGUgcm91bmRpbmcgbW9kZXMgYXMgaWYgdGhleQorICAgICAgICAjIGhhZCBiZWVuIGRlZmluZWQgaW4gYSBsYW5ndWFnZSB0aGF0IHN1cHBvcnRzIGFic3RyYWN0CisgICAgICAgICMgZGF0YSB0eXBlcywgZS5nLiBvY2FtbDoKKyAgICAgICAgIworICAgICAgICAjICAgdHlwZSByb3VuZGluZyA9IFJPVU5EX0RPV04gfCBST1VORF9IQUxGX1VQIHwgLi4uIDs7CisgICAgICAgICMKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZXRhdHRyLCBjLCAncm91bmRpbmcnLCAtMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZXRhdHRyLCBjLCAncm91bmRpbmcnLCA5KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGF0dHIsIGMsICdyb3VuZGluZycsIDEuMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZXRhdHRyLCBjLCAncm91bmRpbmcnLCAneHl6JykKKworICAgICAgICAjIGNhcGl0YWxzLCBjbGFtcAorICAgICAgICBmb3IgYXR0ciBpbiBbJ2NhcGl0YWxzJywgJ2NsYW1wJ106CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCAtMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNldGF0dHIsIGMsIGF0dHIsIDIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGF0dHIsIGMsIGF0dHIsIFsxLDIsM10pCisKKyAgICAgICAgIyBJbnZhbGlkIGF0dHJpYnV0ZQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0YXR0ciwgYywgJ2VtYXgnLCAxMDApCisKKyAgICAgICAgIyBJbnZhbGlkIHNpZ25hbCBkaWN0CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2V0YXR0ciwgYywgJ2ZsYWdzJywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBzZXRhdHRyLCBjLCAnZmxhZ3MnLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHNldGF0dHIsIGMsICd0cmFwcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHsnSW52YWxpZE9wZXJhdGlvbic6MH0pCisKKyAgICAgICAgIyBBdHRyaWJ1dGVzIGNhbm5vdCBiZSBkZWxldGVkCisgICAgICAgIGZvciBhdHRyIGluIFsncHJlYycsICdFbWF4JywgJ0VtaW4nLCAncm91bmRpbmcnLCAnY2FwaXRhbHMnLCAnY2xhbXAnLAorICAgICAgICAgICAgICAgICAgICAgJ2ZsYWdzJywgJ3RyYXBzJ106CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgYy5fX2RlbGF0dHJfXywgYXR0cikKKworICAgICAgICAjIEludmFsaWQgYXR0cmlidXRlcworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGdldGF0dHIsIGMsIDkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2V0YXR0ciwgYywgOSkKKworICAgICAgICAjIEludmFsaWQgdmFsdWVzIGluIGNvbnN0cnVjdG9yCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgQ29udGV4dCwgcm91bmRpbmc9OTk5OTk5KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIENvbnRleHQsIHJvdW5kaW5nPSd4eXonKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBDb250ZXh0LCBjbGFtcD0yKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBDb250ZXh0LCBjYXBpdGFscz0tMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIENvbnRleHQsIGZsYWdzPVsiUCJdKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgQ29udGV4dCwgdHJhcHM9WyJRIl0pCisKKyAgICAgICAgIyBUeXBlIGVycm9yIGluIGNvbnZlcnNpb24KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBDb250ZXh0LCBmbGFncz0oMCwxKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBDb250ZXh0LCB0cmFwcz0oMSwwKSkKKworY2xhc3MgQ0NvbnRleHRJbnB1dFZhbGlkYXRpb24oQ29udGV4dElucHV0VmFsaWRhdGlvbik6CisgICAgZGVjaW1hbCA9IEMKK2NsYXNzIFB5Q29udGV4dElucHV0VmFsaWRhdGlvbihDb250ZXh0SW5wdXRWYWxpZGF0aW9uKToKKyAgICBkZWNpbWFsID0gUAorCitjbGFzcyBDb250ZXh0U3ViY2xhc3NpbmcodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfY29udGV4dF9zdWJjbGFzc2luZyhzZWxmKToKKyAgICAgICAgZGVjaW1hbCA9IHNlbGYuZGVjaW1hbAorICAgICAgICBEZWNpbWFsID0gZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIENvbnRleHQgPSBkZWNpbWFsLkNvbnRleHQKKyAgICAgICAgUk9VTkRfSEFMRl9FVkVOID0gZGVjaW1hbC5ST1VORF9IQUxGX0VWRU4KKyAgICAgICAgUk9VTkRfRE9XTiA9IGRlY2ltYWwuUk9VTkRfRE9XTgorICAgICAgICBDbGFtcGVkID0gZGVjaW1hbC5DbGFtcGVkCisgICAgICAgIERpdmlzaW9uQnlaZXJvID0gZGVjaW1hbC5EaXZpc2lvbkJ5WmVybworICAgICAgICBJbmV4YWN0ID0gZGVjaW1hbC5JbmV4YWN0CisgICAgICAgIE92ZXJmbG93ID0gZGVjaW1hbC5PdmVyZmxvdworICAgICAgICBSb3VuZGVkID0gZGVjaW1hbC5Sb3VuZGVkCisgICAgICAgIFN1Ym5vcm1hbCA9IGRlY2ltYWwuU3Vibm9ybWFsCisgICAgICAgIFVuZGVyZmxvdyA9IGRlY2ltYWwuVW5kZXJmbG93CisgICAgICAgIEludmFsaWRPcGVyYXRpb24gPSBkZWNpbWFsLkludmFsaWRPcGVyYXRpb24KKworICAgICAgICBjbGFzcyBNeUNvbnRleHQoQ29udGV4dCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcHJlYz1Ob25lLCByb3VuZGluZz1Ob25lLCBFbWluPU5vbmUsIEVtYXg9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXBpdGFscz1Ob25lLCBjbGFtcD1Ob25lLCBmbGFncz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYXBzPU5vbmUpOgorICAgICAgICAgICAgICAgIENvbnRleHQuX19pbml0X18oc2VsZikKKyAgICAgICAgICAgICAgICBpZiBwcmVjIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnByZWMgPSBwcmVjCisgICAgICAgICAgICAgICAgaWYgcm91bmRpbmcgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucm91bmRpbmcgPSByb3VuZGluZworICAgICAgICAgICAgICAgIGlmIEVtaW4gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuRW1pbiA9IEVtaW4KKyAgICAgICAgICAgICAgICBpZiBFbWF4IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBzZWxmLkVtYXggPSBFbWF4CisgICAgICAgICAgICAgICAgaWYgY2FwaXRhbHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuY2FwaXRhbHMgPSBjYXBpdGFscworICAgICAgICAgICAgICAgIGlmIGNsYW1wIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmNsYW1wID0gY2xhbXAKKyAgICAgICAgICAgICAgICBpZiBmbGFncyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShmbGFncywgbGlzdCk6CisgICAgICAgICAgICAgICAgICAgICAgICBmbGFncyA9IHt2Oih2IGluIGZsYWdzKSBmb3IgdiBpbiBPcmRlcmVkU2lnbmFsc1tkZWNpbWFsXSArIGZsYWdzfQorICAgICAgICAgICAgICAgICAgICBzZWxmLmZsYWdzID0gZmxhZ3MKKyAgICAgICAgICAgICAgICBpZiB0cmFwcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh0cmFwcywgbGlzdCk6CisgICAgICAgICAgICAgICAgICAgICAgICB0cmFwcyA9IHt2Oih2IGluIHRyYXBzKSBmb3IgdiBpbiBPcmRlcmVkU2lnbmFsc1tkZWNpbWFsXSArIHRyYXBzfQorICAgICAgICAgICAgICAgICAgICBzZWxmLnRyYXBzID0gdHJhcHMKKworICAgICAgICBjID0gQ29udGV4dCgpCisgICAgICAgIGQgPSBNeUNvbnRleHQoKQorICAgICAgICBmb3IgYXR0ciBpbiAoJ3ByZWMnLCAncm91bmRpbmcnLCAnRW1pbicsICdFbWF4JywgJ2NhcGl0YWxzJywgJ2NsYW1wJywKKyAgICAgICAgICAgICAgICAgICAgICdmbGFncycsICd0cmFwcycpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRhdHRyKGMsIGF0dHIpLCBnZXRhdHRyKGQsIGF0dHIpKQorCisgICAgICAgICMgcHJlYworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBNeUNvbnRleHQsICoqeydwcmVjJzotMX0pCisgICAgICAgIGMgPSBNeUNvbnRleHQocHJlYz0xKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucHJlYywgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgYy5xdWFudGl6ZSwgRGVjaW1hbCgnOWUyJyksIDApCisKKyAgICAgICAgIyByb3VuZGluZworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIE15Q29udGV4dCwgKip7J3JvdW5kaW5nJzonWFlaJ30pCisgICAgICAgIGMgPSBNeUNvbnRleHQocm91bmRpbmc9Uk9VTkRfRE9XTiwgcHJlYz0xKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucm91bmRpbmcsIFJPVU5EX0RPV04pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5wbHVzKERlY2ltYWwoJzkuOScpKSwgOSkKKworICAgICAgICAjIEVtaW4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgTXlDb250ZXh0LCAqKnsnRW1pbic6NX0pCisgICAgICAgIGMgPSBNeUNvbnRleHQoRW1pbj0tMSwgcHJlYz0xKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuRW1pbiwgLTEpCisgICAgICAgIHggPSBjLmFkZChEZWNpbWFsKCcxZS05OScpLCBEZWNpbWFsKCcyLjIzNGUtMjAwMCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIERlY2ltYWwoJzAuMCcpKQorICAgICAgICBmb3Igc2lnbmFsIGluIChJbmV4YWN0LCBVbmRlcmZsb3csIFN1Ym5vcm1hbCwgUm91bmRlZCwgQ2xhbXBlZCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYy5mbGFnc1tzaWduYWxdKQorCisgICAgICAgICMgRW1heAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBNeUNvbnRleHQsICoqeydFbWF4JzotMX0pCisgICAgICAgIGMgPSBNeUNvbnRleHQoRW1heD0xLCBwcmVjPTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5FbWF4LCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvdywgYy5hZGQsIERlY2ltYWwoJzFlOTknKSwgRGVjaW1hbCgnMi4yMzRlMjAwMCcpKQorICAgICAgICBpZiBzZWxmLmRlY2ltYWwgPT0gQzoKKyAgICAgICAgICAgIGZvciBzaWduYWwgaW4gKEluZXhhY3QsIE92ZXJmbG93LCBSb3VuZGVkKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYy5mbGFnc1tzaWduYWxdKQorCisgICAgICAgICMgY2FwaXRhbHMKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgTXlDb250ZXh0LCAqKnsnY2FwaXRhbHMnOi0xfSkKKyAgICAgICAgYyA9IE15Q29udGV4dChjYXBpdGFscz0wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY2FwaXRhbHMsIDApCisgICAgICAgIHggPSBjLmNyZWF0ZV9kZWNpbWFsKCcxRTIyMicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy50b19zY2lfc3RyaW5nKHgpLCAnMWUrMjIyJykKKworICAgICAgICAjIGNsYW1wCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIE15Q29udGV4dCwgKip7J2NsYW1wJzoyfSkKKyAgICAgICAgYyA9IE15Q29udGV4dChjbGFtcD0xLCBFbWF4PTk5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY2xhbXAsIDEpCisgICAgICAgIHggPSBjLnBsdXMoRGVjaW1hbCgnMWU5OScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cih4KSwgJzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwRSs5OScpCisKKyAgICAgICAgIyBmbGFncworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIE15Q29udGV4dCwgKip7J2ZsYWdzJzonWFlaJ30pCisgICAgICAgIGMgPSBNeUNvbnRleHQoZmxhZ3M9W1JvdW5kZWQsIERpdmlzaW9uQnlaZXJvXSkKKyAgICAgICAgZm9yIHNpZ25hbCBpbiAoUm91bmRlZCwgRGl2aXNpb25CeVplcm8pOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuZmxhZ3Nbc2lnbmFsXSkKKyAgICAgICAgYy5jbGVhcl9mbGFncygpCisgICAgICAgIGZvciBzaWduYWwgaW4gT3JkZXJlZFNpZ25hbHNbZGVjaW1hbF06CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGMuZmxhZ3Nbc2lnbmFsXSkKKworICAgICAgICAjIHRyYXBzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgTXlDb250ZXh0LCAqKnsndHJhcHMnOidYWVonfSkKKyAgICAgICAgYyA9IE15Q29udGV4dCh0cmFwcz1bUm91bmRlZCwgRGl2aXNpb25CeVplcm9dKQorICAgICAgICBmb3Igc2lnbmFsIGluIChSb3VuZGVkLCBEaXZpc2lvbkJ5WmVybyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYy50cmFwc1tzaWduYWxdKQorICAgICAgICBjLmNsZWFyX3RyYXBzKCkKKyAgICAgICAgZm9yIHNpZ25hbCBpbiBPcmRlcmVkU2lnbmFsc1tkZWNpbWFsXToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYy50cmFwc1tzaWduYWxdKQorCitjbGFzcyBDQ29udGV4dFN1YmNsYXNzaW5nKENvbnRleHRTdWJjbGFzc2luZyk6CisgICAgZGVjaW1hbCA9IEMKK2NsYXNzIFB5Q29udGV4dFN1YmNsYXNzaW5nKENvbnRleHRTdWJjbGFzc2luZyk6CisgICAgZGVjaW1hbCA9IFAKKworQHNraXBfaWZfZXh0cmFfZnVuY3Rpb25hbGl0eQorY2xhc3MgQ2hlY2tBdHRyaWJ1dGVzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X21vZHVsZV9hdHRyaWJ1dGVzKHNlbGYpOgorCisgICAgICAgICMgQXJjaGl0ZWN0dXJlIGRlcGVuZGVudCBjb250ZXh0IGxpbWl0cworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEMuTUFYX1BSRUMsIFAuTUFYX1BSRUMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQy5NQVhfRU1BWCwgUC5NQVhfRU1BWCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDLk1JTl9FTUlOLCBQLk1JTl9FTUlOKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEMuTUlOX0VUSU5ZLCBQLk1JTl9FVElOWSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUoQy5IQVZFX1RIUkVBRFMgaXMgVHJ1ZSBvciBDLkhBVkVfVEhSRUFEUyBpcyBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAuSEFWRV9USFJFQURTIGlzIFRydWUgb3IgUC5IQVZFX1RIUkVBRFMgaXMgRmFsc2UpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDLl9fdmVyc2lvbl9fLCBQLl9fdmVyc2lvbl9fKQorCisgICAgICAgIHggPSBkaXIoQykKKyAgICAgICAgeSA9IFtzIGZvciBzIGluIGRpcihQKSBpZiAnX18nIGluIHMgb3Igbm90IHMuc3RhcnRzd2l0aCgnXycpXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldCh4KSAtIHNldCh5KSwgc2V0KCkpCisKKyAgICBkZWYgdGVzdF9jb250ZXh0X2F0dHJpYnV0ZXMoc2VsZik6CisKKyAgICAgICAgeCA9IFtzIGZvciBzIGluIGRpcihDLkNvbnRleHQoKSkgaWYgJ19fJyBpbiBzIG9yIG5vdCBzLnN0YXJ0c3dpdGgoJ18nKV0KKyAgICAgICAgeSA9IFtzIGZvciBzIGluIGRpcihQLkNvbnRleHQoKSkgaWYgJ19fJyBpbiBzIG9yIG5vdCBzLnN0YXJ0c3dpdGgoJ18nKV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoeCkgLSBzZXQoeSksIHNldCgpKQorCisgICAgZGVmIHRlc3RfZGVjaW1hbF9hdHRyaWJ1dGVzKHNlbGYpOgorCisgICAgICAgIHggPSBbcyBmb3IgcyBpbiBkaXIoQy5EZWNpbWFsKDkpKSBpZiAnX18nIGluIHMgb3Igbm90IHMuc3RhcnRzd2l0aCgnXycpXQorICAgICAgICB5ID0gW3MgZm9yIHMgaW4gZGlyKEMuRGVjaW1hbCg5KSkgaWYgJ19fJyBpbiBzIG9yIG5vdCBzLnN0YXJ0c3dpdGgoJ18nKV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoeCkgLSBzZXQoeSksIHNldCgpKQorCitjbGFzcyBDb3ZlcmFnZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9hZGp1c3RlZChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCcxMjM0ZTk5OTknKS5hZGp1c3RlZCgpLCAxMDAwMikKKyAgICAgICAgIyBYWFggcmFpc2U/CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgnbmFuJykuYWRqdXN0ZWQoKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCdpbmYnKS5hZGp1c3RlZCgpLCAwKQorCisgICAgZGVmIHRlc3RfY2Fub25pY2FsKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgZ2V0Y29udGV4dCA9IHNlbGYuZGVjaW1hbC5nZXRjb250ZXh0CisKKyAgICAgICAgeCA9IERlY2ltYWwoOSkuY2Fub25pY2FsKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCA5KQorCisgICAgICAgIGMgPSBnZXRjb250ZXh0KCkKKyAgICAgICAgeCA9IGMuY2Fub25pY2FsKERlY2ltYWwoOSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeCwgOSkKKworICAgIGRlZiB0ZXN0X2NvbnRleHRfcmVwcihzZWxmKToKKyAgICAgICAgYyA9IHNlbGYuZGVjaW1hbC5EZWZhdWx0Q29udGV4dC5jb3B5KCkKKworICAgICAgICBjLnByZWMgPSA0MjUwMDAwMDAKKyAgICAgICAgYy5FbWF4ID0gNDI1MDAwMDAwCisgICAgICAgIGMuRW1pbiA9IC00MjUwMDAwMDAKKyAgICAgICAgYy5yb3VuZGluZyA9IHNlbGYuZGVjaW1hbC5ST1VORF9IQUxGX0RPV04KKyAgICAgICAgYy5jYXBpdGFscyA9IDAKKyAgICAgICAgYy5jbGFtcCA9IDEKKyAgICAgICAgZm9yIHNpZyBpbiBPcmRlcmVkU2lnbmFsc1tzZWxmLmRlY2ltYWxdOgorICAgICAgICAgICAgYy5mbGFnc1tzaWddID0gRmFsc2UKKyAgICAgICAgICAgIGMudHJhcHNbc2lnXSA9IEZhbHNlCisKKyAgICAgICAgcyA9IGMuX19yZXByX18oKQorICAgICAgICB0ID0gIkNvbnRleHQocHJlYz00MjUwMDAwMDAsIHJvdW5kaW5nPVJPVU5EX0hBTEZfRE9XTiwgIiBcCisgICAgICAgICAgICAiRW1pbj0tNDI1MDAwMDAwLCBFbWF4PTQyNTAwMDAwMCwgY2FwaXRhbHM9MCwgY2xhbXA9MSwgIiBcCisgICAgICAgICAgICAiZmxhZ3M9W10sIHRyYXBzPVtdKSIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLCB0KQorCisgICAgZGVmIHRlc3RfaW1wbGljaXRfY29udGV4dChzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIGxvY2FsY29udGV4dCA9IHNlbGYuZGVjaW1hbC5sb2NhbGNvbnRleHQKKworICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGM6CisgICAgICAgICAgICBjLnByZWMgPSAxCisgICAgICAgICAgICBjLkVtYXggPSAxCisgICAgICAgICAgICBjLkVtaW4gPSAtMQorCisgICAgICAgICAgICAjIGFicworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhYnMoRGVjaW1hbCgiLTEwIikpLCAxMCkKKyAgICAgICAgICAgICMgYWRkCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoIjciKSArIDEsIDgpCisgICAgICAgICAgICAjIGRpdmlkZQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCIxMCIpIC8gNSwgMikKKyAgICAgICAgICAgICMgZGl2aWRlX2ludAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCIxMCIpIC8vIDcsIDEpCisgICAgICAgICAgICAjIGZtYQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCIxLjIiKS5mbWEoRGVjaW1hbCgiMC4wMSIpLCAxKSwgMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoRGVjaW1hbCgiTmFOIikuZm1hKDcsIDEpLmlzX25hbigpLCBUcnVlKQorICAgICAgICAgICAgIyB0aHJlZSBhcmcgcG93ZXIKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG93KERlY2ltYWwoMTApLCAyLCA3KSwgMikKKyAgICAgICAgICAgICMgZXhwCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoIjEuMDEiKS5leHAoKSwgMykKKyAgICAgICAgICAgICMgaXNfbm9ybWFsCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKERlY2ltYWwoIjAuMDEiKS5pc19ub3JtYWwoKSwgRmFsc2UpCisgICAgICAgICAgICAjIGlzX3N1Ym5vcm1hbAorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhEZWNpbWFsKCIwLjAxIikuaXNfc3Vibm9ybWFsKCksIFRydWUpCisgICAgICAgICAgICAjIGxuCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoIjIwIikubG4oKSwgMykKKyAgICAgICAgICAgICMgbG9nMTAKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgiMjAiKS5sb2cxMCgpLCAxKQorICAgICAgICAgICAgIyBsb2diCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoIjU4MCIpLmxvZ2IoKSwgMikKKyAgICAgICAgICAgICMgbG9naWNhbF9pbnZlcnQKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgiMTAiKS5sb2dpY2FsX2ludmVydCgpLCAxKQorICAgICAgICAgICAgIyBtaW51cworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgtRGVjaW1hbCgiLTEwIiksIDEwKQorICAgICAgICAgICAgIyBtdWx0aXBseQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCIyIikgKiA0LCA4KQorICAgICAgICAgICAgIyBuZXh0X21pbnVzCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoIjEwIikubmV4dF9taW51cygpLCA5KQorICAgICAgICAgICAgIyBuZXh0X3BsdXMKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgiMTAiKS5uZXh0X3BsdXMoKSwgRGVjaW1hbCgnMkUrMScpKQorICAgICAgICAgICAgIyBub3JtYWxpemUKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgiLTEwIikubm9ybWFsaXplKCksIERlY2ltYWwoJy0xRSsxJykpCisgICAgICAgICAgICAjIG51bWJlcl9jbGFzcworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCIxMCIpLm51bWJlcl9jbGFzcygpLCAnK05vcm1hbCcpCisgICAgICAgICAgICAjIHBsdXMKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoK0RlY2ltYWwoIi0xIiksIC0xKQorICAgICAgICAgICAgIyByZW1haW5kZXIKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgiMTAiKSAlIDcsIDMpCisgICAgICAgICAgICAjIHN1YnRyYWN0CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoIjEwIikgLSA3LCAzKQorICAgICAgICAgICAgIyB0b19pbnRlZ3JhbF9leGFjdAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCIxLjEyMzQ1IikudG9faW50ZWdyYWxfZXhhY3QoKSwgMSkKKworICAgICAgICAgICAgIyBCb29sZWFuIGZ1bmN0aW9ucworICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKERlY2ltYWwoIjEiKS5pc19jYW5vbmljYWwoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShEZWNpbWFsKCIxIikuaXNfZmluaXRlKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoRGVjaW1hbCgiMSIpLmlzX2Zpbml0ZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKERlY2ltYWwoInNuYW4iKS5pc19zbmFuKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoRGVjaW1hbCgiLTEiKS5pc19zaWduZWQoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShEZWNpbWFsKCIwIikuaXNfemVybygpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKERlY2ltYWwoIjAiKS5pc196ZXJvKCkpCisKKyAgICAgICAgIyBDb3B5CisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzoKKyAgICAgICAgICAgIGMucHJlYyA9IDEwMDAwCisgICAgICAgICAgICB4ID0gMTIyOCAqKiAxNTIzCisgICAgICAgICAgICB5ID0gLURlY2ltYWwoeCkKKworICAgICAgICAgICAgeiA9IHkuY29weV9hYnMoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh6LCB4KQorCisgICAgICAgICAgICB6ID0geS5jb3B5X25lZ2F0ZSgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHosIHgpCisKKyAgICAgICAgICAgIHogPSB5LmNvcHlfc2lnbihEZWNpbWFsKDEpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh6LCB4KQorCisgICAgZGVmIHRlc3RfZGl2bW9kKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gc2VsZi5kZWNpbWFsLkRlY2ltYWwKKyAgICAgICAgbG9jYWxjb250ZXh0ID0gc2VsZi5kZWNpbWFsLmxvY2FsY29udGV4dAorICAgICAgICBJbnZhbGlkT3BlcmF0aW9uID0gc2VsZi5kZWNpbWFsLkludmFsaWRPcGVyYXRpb24KKyAgICAgICAgRGl2aXNpb25CeVplcm8gPSBzZWxmLmRlY2ltYWwuRGl2aXNpb25CeVplcm8KKworICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGM6CisgICAgICAgICAgICBxLCByID0gZGl2bW9kKERlY2ltYWwoIjEwOTEyODM3MTI5IiksIDEwMDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHEsIERlY2ltYWwoJzEwOTAxOTM1JykpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHIsIERlY2ltYWwoJzE5NCcpKQorCisgICAgICAgICAgICBxLCByID0gZGl2bW9kKERlY2ltYWwoIk5hTiIpLCA3KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHEuaXNfbmFuKCkgYW5kIHIuaXNfbmFuKCkpCisKKyAgICAgICAgICAgIGMudHJhcHNbSW52YWxpZE9wZXJhdGlvbl0gPSBGYWxzZQorICAgICAgICAgICAgcSwgciA9IGRpdm1vZChEZWNpbWFsKCJOYU4iKSwgNykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShxLmlzX25hbigpIGFuZCByLmlzX25hbigpKQorCisgICAgICAgICAgICBjLnRyYXBzW0ludmFsaWRPcGVyYXRpb25dID0gRmFsc2UKKyAgICAgICAgICAgIGMuY2xlYXJfZmxhZ3MoKQorICAgICAgICAgICAgcSwgciA9IGRpdm1vZChEZWNpbWFsKCJpbmYiKSwgRGVjaW1hbCgiaW5mIikpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocS5pc19uYW4oKSBhbmQgci5pc19uYW4oKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dKQorCisgICAgICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIHEsIHIgPSBkaXZtb2QoRGVjaW1hbCgiaW5mIiksIDEwMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShxLmlzX2luZmluaXRlKCkgYW5kIHIuaXNfbmFuKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYy5mbGFnc1tJbnZhbGlkT3BlcmF0aW9uXSkKKworICAgICAgICAgICAgYy5jbGVhcl9mbGFncygpCisgICAgICAgICAgICBxLCByID0gZGl2bW9kKERlY2ltYWwoMCksIDApCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocS5pc19uYW4oKSBhbmQgci5pc19uYW4oKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjLmZsYWdzW0ludmFsaWRPcGVyYXRpb25dKQorCisgICAgICAgICAgICBjLnRyYXBzW0RpdmlzaW9uQnlaZXJvXSA9IEZhbHNlCisgICAgICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIHEsIHIgPSBkaXZtb2QoRGVjaW1hbCgxMSksIDApCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocS5pc19pbmZpbml0ZSgpIGFuZCByLmlzX25hbigpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuZmxhZ3NbSW52YWxpZE9wZXJhdGlvbl0gYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYy5mbGFnc1tEaXZpc2lvbkJ5WmVyb10pCisKKyAgICBkZWYgdGVzdF9wb3dlcihzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIGxvY2FsY29udGV4dCA9IHNlbGYuZGVjaW1hbC5sb2NhbGNvbnRleHQKKyAgICAgICAgT3ZlcmZsb3cgPSBzZWxmLmRlY2ltYWwuT3ZlcmZsb3cKKyAgICAgICAgUm91bmRlZCA9IHNlbGYuZGVjaW1hbC5Sb3VuZGVkCisKKyAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjOgorICAgICAgICAgICAgYy5wcmVjID0gMworICAgICAgICAgICAgYy5jbGVhcl9mbGFncygpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoIjEuMCIpICoqIDEwMCwgRGVjaW1hbCgnMS4wMCcpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuZmxhZ3NbUm91bmRlZF0pCisKKyAgICAgICAgICAgIGMucHJlYyA9IDEKKyAgICAgICAgICAgIGMuRW1heCA9IDEKKyAgICAgICAgICAgIGMuRW1pbiA9IC0xCisgICAgICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIGMudHJhcHNbT3ZlcmZsb3ddID0gRmFsc2UKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgxMDAwMCkgKiogRGVjaW1hbCgiMC41IiksIERlY2ltYWwoJ2luZicpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuZmxhZ3NbT3ZlcmZsb3ddKQorCisgICAgZGVmIHRlc3RfcXVhbnRpemUoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBsb2NhbGNvbnRleHQgPSBzZWxmLmRlY2ltYWwubG9jYWxjb250ZXh0CisgICAgICAgIEludmFsaWRPcGVyYXRpb24gPSBzZWxmLmRlY2ltYWwuSW52YWxpZE9wZXJhdGlvbgorCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzoKKyAgICAgICAgICAgIGMucHJlYyA9IDEKKyAgICAgICAgICAgIGMuRW1heCA9IDEKKyAgICAgICAgICAgIGMuRW1pbiA9IC0xCisgICAgICAgICAgICBjLnRyYXBzW0ludmFsaWRPcGVyYXRpb25dID0gRmFsc2UKKyAgICAgICAgICAgIHggPSBEZWNpbWFsKDk5KS5xdWFudGl6ZShEZWNpbWFsKCIxZTEiKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh4LmlzX25hbigpKQorCisgICAgZGVmIHRlc3RfcmFkaXgoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBnZXRjb250ZXh0ID0gc2VsZi5kZWNpbWFsLmdldGNvbnRleHQKKworICAgICAgICBjID0gZ2V0Y29udGV4dCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgiMSIpLnJhZGl4KCksIDEwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucmFkaXgoKSwgMTApCisKKyAgICBkZWYgdGVzdF9yb3Aoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorCisgICAgICAgIGZvciBhdHRyIGluICgnX19yYWRkX18nLCAnX19yc3ViX18nLCAnX19ybXVsX18nLCAnX19ydHJ1ZWRpdl9fJywKKyAgICAgICAgICAgICAgICAgICAgICdfX3JkaXZtb2RfXycsICdfX3Jtb2RfXycsICdfX3JmbG9vcmRpdl9fJywgJ19fcnBvd19fJyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzKGdldGF0dHIoRGVjaW1hbCgiMSIpLCBhdHRyKSgieHl6IiksIE5vdEltcGxlbWVudGVkKQorCisgICAgZGVmIHRlc3Rfcm91bmQoc2VsZik6CisgICAgICAgICMgUHl0aG9uMyBiZWhhdmlvcjogcm91bmQoKSByZXR1cm5zIERlY2ltYWwKKyAgICAgICAgRGVjaW1hbCA9IHNlbGYuZGVjaW1hbC5EZWNpbWFsCisgICAgICAgIGdldGNvbnRleHQgPSBzZWxmLmRlY2ltYWwuZ2V0Y29udGV4dAorCisgICAgICAgIGMgPSBnZXRjb250ZXh0KCkKKyAgICAgICAgYy5wcmVjID0gMjgKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihEZWNpbWFsKCI5Ljk5IikuX19yb3VuZF9fKCkpLCAiMTAiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihEZWNpbWFsKCI5Ljk5ZS01IikuX19yb3VuZF9fKCkpLCAiMCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKERlY2ltYWwoIjEuMjM0NTY3ODkiKS5fX3JvdW5kX18oNSkpLCAiMS4yMzQ1NyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKERlY2ltYWwoIjEuMjM0NSIpLl9fcm91bmRfXygxMCkpLCAiMS4yMzQ1MDAwMDAwIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoRGVjaW1hbCgiMS4yMzQ1IikuX19yb3VuZF9fKC0xMCkpLCAiMEUrMTAiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRGVjaW1hbCgiMS4yMyIpLl9fcm91bmRfXywgIjUiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIERlY2ltYWwoIjEuMjMiKS5fX3JvdW5kX18sIDUsIDgpCisKKyAgICBkZWYgdGVzdF9jcmVhdGVfZGVjaW1hbChzZWxmKToKKyAgICAgICAgYyA9IHNlbGYuZGVjaW1hbC5Db250ZXh0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYy5jcmVhdGVfZGVjaW1hbCwgWyIlIl0pCisKKyAgICBkZWYgdGVzdF9pbnQoc2VsZik6CisgICAgICAgIERlY2ltYWwgPSBzZWxmLmRlY2ltYWwuRGVjaW1hbAorICAgICAgICBsb2NhbGNvbnRleHQgPSBzZWxmLmRlY2ltYWwubG9jYWxjb250ZXh0CisKKyAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjOgorICAgICAgICAgICAgYy5wcmVjID0gOTk5OQorICAgICAgICAgICAgeCA9IERlY2ltYWwoMTIyMSoqMTI3MSkgLyAxMCoqMzkyMworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoeCksIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgudG9faW50ZWdyYWwoKSwgMikKKworICAgIGRlZiB0ZXN0X2NvcHkoc2VsZik6CisgICAgICAgIENvbnRleHQgPSBzZWxmLmRlY2ltYWwuQ29udGV4dAorCisgICAgICAgIGMgPSBDb250ZXh0KCkKKyAgICAgICAgYy5wcmVjID0gMTAwMDAKKyAgICAgICAgeCA9IC0oMTE3MiAqKiAxNzEyKQorCisgICAgICAgIHkgPSBjLmNvcHlfYWJzKHgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeSwgLXgpCisKKyAgICAgICAgeSA9IGMuY29weV9uZWdhdGUoeCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh5LCAteCkKKworICAgICAgICB5ID0gYy5jb3B5X3NpZ24oeCwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh5LCAteCkKKworY2xhc3MgQ0NvdmVyYWdlKENvdmVyYWdlKToKKyAgICBkZWNpbWFsID0gQworY2xhc3MgUHlDb3ZlcmFnZShDb3ZlcmFnZSk6CisgICAgZGVjaW1hbCA9IFAKKworY2xhc3MgUHlGdW5jdGlvbmFsaXR5KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJFeHRyYSBmdW5jdGlvbmFsaXR5IGluIGRlY2ltYWwucHkiIiIKKworICAgIGRlZiB0ZXN0X3B5X3F1YW50aXplX3dhdGNoZXhwKHNlbGYpOgorICAgICAgICAjIHdhdGNoZXhwIGZ1bmN0aW9uYWxpdHkKKyAgICAgICAgRGVjaW1hbCA9IFAuRGVjaW1hbAorICAgICAgICBsb2NhbGNvbnRleHQgPSBQLmxvY2FsY29udGV4dAorCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzoKKyAgICAgICAgICAgIGMucHJlYyA9IDEKKyAgICAgICAgICAgIGMuRW1heCA9IDEKKyAgICAgICAgICAgIGMuRW1pbiA9IC0xCisgICAgICAgICAgICB4ID0gRGVjaW1hbCg5OTk5OSkucXVhbnRpemUoRGVjaW1hbCgiMWUzIiksIHdhdGNoZXhwPUZhbHNlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCBEZWNpbWFsKCcxLjAwRSs1JykpCisKKyAgICBkZWYgdGVzdF9weV9hbHRlcm5hdGVfZm9ybWF0dGluZyhzZWxmKToKKyAgICAgICAgIyB0cmlwbGVzIGdpdmluZyBhIGZvcm1hdCwgYSBEZWNpbWFsLCBhbmQgdGhlIGV4cGVjdGVkIHJlc3VsdAorICAgICAgICBEZWNpbWFsID0gUC5EZWNpbWFsCisgICAgICAgIGxvY2FsY29udGV4dCA9IFAubG9jYWxjb250ZXh0CisKKyAgICAgICAgdGVzdF92YWx1ZXMgPSBbCisgICAgICAgICAgICAjIElzc3VlIDcwOTQ6IEFsdGVybmF0ZSBmb3JtYXR0aW5nIChzcGVjaWZpZWQgYnkgIykKKyAgICAgICAgICAgICgnLjBlJywgJzEuMCcsICcxZSswJyksCisgICAgICAgICAgICAoJyMuMGUnLCAnMS4wJywgJzEuZSswJyksCisgICAgICAgICAgICAoJy4wZicsICcxLjAnLCAnMScpLAorICAgICAgICAgICAgKCcjLjBmJywgJzEuMCcsICcxLicpLAorICAgICAgICAgICAgKCdnJywgJzEuMScsICcxLjEnKSwKKyAgICAgICAgICAgICgnI2cnLCAnMS4xJywgJzEuMScpLAorICAgICAgICAgICAgKCcuMGcnLCAnMScsICcxJyksCisgICAgICAgICAgICAoJyMuMGcnLCAnMScsICcxLicpLAorICAgICAgICAgICAgKCcuMCUnLCAnMS4wJywgJzEwMCUnKSwKKyAgICAgICAgICAgICgnIy4wJScsICcxLjAnLCAnMTAwLiUnKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZm9yIGZtdCwgZCwgcmVzdWx0IGluIHRlc3RfdmFsdWVzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3JtYXQoRGVjaW1hbChkKSwgZm10KSwgcmVzdWx0KQorCitjbGFzcyBQeVdoaXRlYm94KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJXaGl0ZSBib3ggdGVzdGluZyBmb3IgZGVjaW1hbC5weSIiIgorCisgICAgZGVmIHRlc3RfcHlfZXhhY3RfcG93ZXIoc2VsZik6CisgICAgICAgICMgUmFyZWx5IGV4ZXJjaXNlZCBsaW5lcyBpbiBfcG93ZXJfZXhhY3QuCisgICAgICAgIERlY2ltYWwgPSBQLkRlY2ltYWwKKyAgICAgICAgbG9jYWxjb250ZXh0ID0gUC5sb2NhbGNvbnRleHQKKworICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGM6CisgICAgICAgICAgICBjLnByZWMgPSA4CisgICAgICAgICAgICB4ID0gRGVjaW1hbCgyKioxNikgKiogRGVjaW1hbCgiLTAuNSIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIERlY2ltYWwoJzAuMDAzOTA2MjUnKSkKKworICAgICAgICAgICAgeCA9IERlY2ltYWwoMioqMTYpICoqIERlY2ltYWwoIi0wLjYiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCBEZWNpbWFsKCcwLjAwMTI4ODU4MTknKSkKKworICAgICAgICAgICAgeCA9IERlY2ltYWwoIjI1NmU3IikgKiogRGVjaW1hbCgiLTAuNSIpCisKKyAgICAgICAgICAgIHggPSBEZWNpbWFsKDE1MjU4Nzg5MDYyNSkgKiogRGVjaW1hbCgnLTAuMDYyNScpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIERlY2ltYWwoIjAuMiIpKQorCisgICAgICAgICAgICB4ID0gRGVjaW1hbCgiMTUyNTg3ODkwNjI1ZTciKSAqKiBEZWNpbWFsKCctMC4wNjI1JykKKworICAgICAgICAgICAgeCA9IERlY2ltYWwoNSoqMjY1OSkgKiogRGVjaW1hbCgnLTAuMDYyNScpCisKKyAgICAgICAgICAgIGMucHJlYyA9IDEKKyAgICAgICAgICAgIHggPSBEZWNpbWFsKCIxNTI1ODc4OTA2MjUiKSAqKiBEZWNpbWFsKCctMC41JykKKyAgICAgICAgICAgIGMucHJlYyA9IDIwMQorICAgICAgICAgICAgeCA9IERlY2ltYWwoMioqNTc4KSAqKiBEZWNpbWFsKCItMC41IikKKworICAgIGRlZiB0ZXN0X3B5X2ltbXV0YWJpbGl0eV9vcGVyYXRpb25zKHNlbGYpOgogICAgICAgICAjIERvIG9wZXJhdGlvbnMgYW5kIGNoZWNrIHRoYXQgaXQgZGlkbid0IGNoYW5nZSBjaGFuZ2UgaW50ZXJuYWwgb2JqZWN0cy4KKyAgICAgICAgRGVjaW1hbCA9IFAuRGVjaW1hbAorICAgICAgICBEZWZhdWx0Q29udGV4dCA9IFAuRGVmYXVsdENvbnRleHQKKyAgICAgICAgc2V0Y29udGV4dCA9IFAuc2V0Y29udGV4dAorCisgICAgICAgIGMgPSBEZWZhdWx0Q29udGV4dC5jb3B5KCkKKyAgICAgICAgYy50cmFwcyA9IGRpY3QoKHMsIDApIGZvciBzIGluIE9yZGVyZWRTaWduYWxzW1BdKQorICAgICAgICBzZXRjb250ZXh0KGMpCiAKICAgICAgICAgZDEgPSBEZWNpbWFsKCctMjVlNTUnKQogICAgICAgICBiMSA9IERlY2ltYWwoJy0yNWU1NScpCkBAIC0xNjQ5LDcxMyArNDI1OSw3OTkgQEAKICAgICAgICAgY2hlY2tTYW1lRGVjKCJ0b19lbmdfc3RyaW5nIikKICAgICAgICAgY2hlY2tTYW1lRGVjKCJ0b19pbnRlZ3JhbCIpCiAKLSAgICBkZWYgdGVzdF9zdWJjbGFzc2luZyhzZWxmKToKLSAgICAgICAgIyBEaWZmZXJlbnQgYmVoYXZpb3VycyB3aGVuIHN1YmNsYXNzaW5nIERlY2ltYWwKKyAgICBkZWYgdGVzdF9weV9kZWNpbWFsX2lkKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gUC5EZWNpbWFsCiAKLSAgICAgICAgY2xhc3MgTXlEZWNpbWFsKERlY2ltYWwpOgotICAgICAgICAgICAgcGFzcworICAgICAgICBkID0gRGVjaW1hbCg0NSkKKyAgICAgICAgZSA9IERlY2ltYWwoZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZSksICc0NScpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoaWQoZCksIGlkKGUpKQogCi0gICAgICAgIGQxID0gTXlEZWNpbWFsKDEpCi0gICAgICAgIGQyID0gTXlEZWNpbWFsKDIpCi0gICAgICAgIGQgPSBkMSArIGQyCi0gICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShkKSwgRGVjaW1hbCkKKyAgICBkZWYgdGVzdF9weV9yZXNjYWxlKHNlbGYpOgorICAgICAgICAjIENvdmVyYWdlCisgICAgICAgIERlY2ltYWwgPSBQLkRlY2ltYWwKKyAgICAgICAgUk9VTkRfVVAgPSBQLlJPVU5EX1VQCisgICAgICAgIGxvY2FsY29udGV4dCA9IFAubG9jYWxjb250ZXh0CiAKLSAgICAgICAgZCA9IGQxLm1heChkMikKLSAgICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKGQpLCBEZWNpbWFsKQorICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGM6CisgICAgICAgICAgICB4ID0gRGVjaW1hbCgiTmFOIikuX3Jlc2NhbGUoMywgUk9VTkRfVVApCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoeC5pc19uYW4oKSkKIAotICAgIGRlZiB0ZXN0X2ltcGxpY2l0X2NvbnRleHQoc2VsZik6Ci0gICAgICAgICMgQ2hlY2sgcmVzdWx0cyB3aGVuIGNvbnRleHQgZ2l2ZW4gaW1wbGljaXRseS4gIChJc3N1ZSAyNDc4KQotICAgICAgICBjID0gZ2V0Y29udGV4dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKERlY2ltYWwoMCkuc3FydCgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoYy5zcXJ0KERlY2ltYWwoMCkpKSkKKyAgICBkZWYgdGVzdF9weV9fcm91bmQoc2VsZik6CisgICAgICAgICMgQ292ZXJhZ2UKKyAgICAgICAgRGVjaW1hbCA9IFAuRGVjaW1hbAorICAgICAgICBST1VORF9VUCA9IFAuUk9VTkRfVVAKIAotICAgIGRlZiB0ZXN0X2NvbnZlcnNpb25zX2Zyb21faW50KHNlbGYpOgotICAgICAgICAjIENoZWNrIHRoYXQgbWV0aG9kcyB0YWtpbmcgYSBzZWNvbmQgRGVjaW1hbCBhcmd1bWVudCB3aWxsCi0gICAgICAgICMgYWx3YXlzIGFjY2VwdCBhbiBpbnRlZ2VyIGluIHBsYWNlIG9mIGEgRGVjaW1hbC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDQpLmNvbXBhcmUoMyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg0KS5jb21wYXJlKERlY2ltYWwoMykpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoNCkuY29tcGFyZV9zaWduYWwoMyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg0KS5jb21wYXJlX3NpZ25hbChEZWNpbWFsKDMpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDQpLmNvbXBhcmVfdG90YWwoMyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg0KS5jb21wYXJlX3RvdGFsKERlY2ltYWwoMykpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoNCkuY29tcGFyZV90b3RhbF9tYWcoMyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg0KS5jb21wYXJlX3RvdGFsX21hZyhEZWNpbWFsKDMpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDEwMTAxKS5sb2dpY2FsX2FuZCgxMDAxKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKDEwMTAxKS5sb2dpY2FsX2FuZChEZWNpbWFsKDEwMDEpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDEwMTAxKS5sb2dpY2FsX29yKDEwMDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoMTAxMDEpLmxvZ2ljYWxfb3IoRGVjaW1hbCgxMDAxKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgxMDEwMSkubG9naWNhbF94b3IoMTAwMSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCgxMDEwMSkubG9naWNhbF94b3IoRGVjaW1hbCgxMDAxKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCg1NjcpLm1heCgxMjMpLAotICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNTY3KS5tYXgoRGVjaW1hbCgxMjMpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDU2NykubWF4X21hZygxMjMpLAotICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNTY3KS5tYXhfbWFnKERlY2ltYWwoMTIzKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCg1NjcpLm1pbigxMjMpLAotICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNTY3KS5taW4oRGVjaW1hbCgxMjMpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDU2NykubWluX21hZygxMjMpLAotICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNTY3KS5taW5fbWFnKERlY2ltYWwoMTIzKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCg1NjcpLm5leHRfdG93YXJkKDEyMyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg1NjcpLm5leHRfdG93YXJkKERlY2ltYWwoMTIzKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgxMjM0KS5xdWFudGl6ZSgxMDApLAotICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoMTIzNCkucXVhbnRpemUoRGVjaW1hbCgxMDApKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDc2OCkucmVtYWluZGVyX25lYXIoMTIzNCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCg3NjgpLnJlbWFpbmRlcl9uZWFyKERlY2ltYWwoMTIzNCkpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoMTIzKS5yb3RhdGUoMSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCgxMjMpLnJvdGF0ZShEZWNpbWFsKDEpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDEyMzQpLnNhbWVfcXVhbnR1bSgxMDAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKDEyMzQpLnNhbWVfcXVhbnR1bShEZWNpbWFsKDEwMDApKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKCc5LjEyMycpLnNjYWxlYigtMTAwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKCc5LjEyMycpLnNjYWxlYihEZWNpbWFsKC0xMDApKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKDQ1Nikuc2hpZnQoLTEpLAotICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoNDU2KS5zaGlmdChEZWNpbWFsKC0xKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIERlY2ltYWwoIjMuMTIzNCIpLl9yb3VuZCwgMCwgUk9VTkRfVVApCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKC0xMikuZm1hKERlY2ltYWwoNDUpLCA2NyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCgtMTIpLmZtYShEZWNpbWFsKDQ1KSwgRGVjaW1hbCg2NykpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKERlY2ltYWwoLTEyKS5mbWEoNDUsIDY3KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKC0xMikuZm1hKERlY2ltYWwoNDUpLCBEZWNpbWFsKDY3KSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgtMTIpLmZtYSg0NSwgRGVjaW1hbCg2NykpLAotICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwoLTEyKS5mbWEoRGVjaW1hbCg0NSksIERlY2ltYWwoNjcpKSkKK2NsYXNzIENGdW5jdGlvbmFsaXR5KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJFeHRyYSBmdW5jdGlvbmFsaXR5IGluIF9kZWNpbWFsIiIiCiAKKyAgICBAcmVxdWlyZXNfZXh0cmFfZnVuY3Rpb25hbGl0eQorICAgIGRlZiB0ZXN0X2NfaWVlZV9jb250ZXh0KHNlbGYpOgorICAgICAgICAjIGlzc3VlIDg3ODY6IEFkZCBzdXBwb3J0IGZvciBJRUVFIDc1NCBjb250ZXh0cyB0byBkZWNpbWFsIG1vZHVsZS4KKyAgICAgICAgSUVFRUNvbnRleHQgPSBDLklFRUVDb250ZXh0CisgICAgICAgIERFQ0lNQUwzMiA9IEMuREVDSU1BTDMyCisgICAgICAgIERFQ0lNQUw2NCA9IEMuREVDSU1BTDY0CisgICAgICAgIERFQ0lNQUwxMjggPSBDLkRFQ0lNQUwxMjgKIAotY2xhc3MgRGVjaW1hbFB5dGhvbkFQSXRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgZGVmIGFzc2VydF9yZXN0KHNlbGYsIGNvbnRleHQpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb250ZXh0LmNsYW1wLCAxKQorICAgICAgICAgICAgYXNzZXJ0X3NpZ25hbHMoc2VsZiwgY29udGV4dCwgJ3RyYXBzJywgW10pCisgICAgICAgICAgICBhc3NlcnRfc2lnbmFscyhzZWxmLCBjb250ZXh0LCAnZmxhZ3MnLCBbXSkKIAotICAgIGRlZiB0ZXN0X2FiYyhzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoRGVjaW1hbCwgbnVtYmVycy5OdW1iZXIpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlzc3ViY2xhc3MoRGVjaW1hbCwgbnVtYmVycy5SZWFsKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKERlY2ltYWwoMCksIG51bWJlcnMuTnVtYmVyKQotICAgICAgICBzZWxmLmFzc2VydE5vdElzSW5zdGFuY2UoRGVjaW1hbCgwKSwgbnVtYmVycy5SZWFsKQorICAgICAgICBjID0gSUVFRUNvbnRleHQoREVDSU1BTDMyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucHJlYywgNykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLkVtYXgsIDk2KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuRW1pbiwgLTk1KQorICAgICAgICBhc3NlcnRfcmVzdChzZWxmLCBjKQogCi0gICAgZGVmIHRlc3RfcGlja2xlKHNlbGYpOgotICAgICAgICBkID0gRGVjaW1hbCgnLTMuMTQxNTkwMDAwJykKLSAgICAgICAgcCA9IHBpY2tsZS5kdW1wcyhkKQotICAgICAgICBlID0gcGlja2xlLmxvYWRzKHApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZCwgZSkKKyAgICAgICAgYyA9IElFRUVDb250ZXh0KERFQ0lNQUw2NCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnByZWMsIDE2KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuRW1heCwgMzg0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuRW1pbiwgLTM4MykKKyAgICAgICAgYXNzZXJ0X3Jlc3Qoc2VsZiwgYykKIAotICAgIGRlZiB0ZXN0X2ludChzZWxmKToKLSAgICAgICAgZm9yIHggaW4gcmFuZ2UoLTI1MCwgMjUwKToKLSAgICAgICAgICAgIHMgPSAnJTAuMmYnICUgKHggLyAxMDAuMCkKLSAgICAgICAgICAgICMgc2hvdWxkIHdvcmsgdGhlIHNhbWUgYXMgZm9yIGZsb2F0cwotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoRGVjaW1hbChzKSksIGludChmbG9hdChzKSkpCi0gICAgICAgICAgICAjIHNob3VsZCB3b3JrIHRoZSBzYW1lIGFzIHRvX2ludGVncmFsIGluIHRoZSBST1VORF9ET1dOIG1vZGUKLSAgICAgICAgICAgIGQgPSBEZWNpbWFsKHMpCi0gICAgICAgICAgICByID0gZC50b19pbnRlZ3JhbChST1VORF9ET1dOKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKGludChkKSksIHIpCisgICAgICAgIGMgPSBJRUVFQ29udGV4dChERUNJTUFMMTI4KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucHJlYywgMzQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5FbWF4LCA2MTQ0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuRW1pbiwgLTYxNDMpCisgICAgICAgIGFzc2VydF9yZXN0KHNlbGYsIGMpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaW50LCBEZWNpbWFsKCctbmFuJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGludCwgRGVjaW1hbCgnc25hbicpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBpbnQsIERlY2ltYWwoJ2luZicpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBpbnQsIERlY2ltYWwoJy1pbmYnKSkKKyAgICAgICAgIyBJbnZhbGlkIHZhbHVlcworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBJRUVFQ29udGV4dCwgMioqNjMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIElFRUVDb250ZXh0LCAtMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgSUVFRUNvbnRleHQsIDEwMjQpCiAKLSAgICBkZWYgdGVzdF90cnVuYyhzZWxmKToKLSAgICAgICAgZm9yIHggaW4gcmFuZ2UoLTI1MCwgMjUwKToKLSAgICAgICAgICAgIHMgPSAnJTAuMmYnICUgKHggLyAxMDAuMCkKLSAgICAgICAgICAgICMgc2hvdWxkIHdvcmsgdGhlIHNhbWUgYXMgZm9yIGZsb2F0cwotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoRGVjaW1hbChzKSksIGludChmbG9hdChzKSkpCi0gICAgICAgICAgICAjIHNob3VsZCB3b3JrIHRoZSBzYW1lIGFzIHRvX2ludGVncmFsIGluIHRoZSBST1VORF9ET1dOIG1vZGUKLSAgICAgICAgICAgIGQgPSBEZWNpbWFsKHMpCi0gICAgICAgICAgICByID0gZC50b19pbnRlZ3JhbChST1VORF9ET1dOKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEZWNpbWFsKG1hdGgudHJ1bmMoZCkpLCByKQorICAgIEByZXF1aXJlc19leHRyYV9mdW5jdGlvbmFsaXR5CisgICAgZGVmIHRlc3RfY19jb250ZXh0KHNlbGYpOgorICAgICAgICBDb250ZXh0ID0gQy5Db250ZXh0CiAKLSAgICBkZWYgdGVzdF9mcm9tX2Zsb2F0KHNlbGYpOgorICAgICAgICBjID0gQ29udGV4dChmbGFncz1DLkRlY0NsYW1wZWQsIHRyYXBzPUMuRGVjUm91bmRlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLl9mbGFncywgQy5EZWNDbGFtcGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuX3RyYXBzLCBDLkRlY1JvdW5kZWQpCiAKLSAgICAgICAgY2xhc3MgIE15RGVjaW1hbChEZWNpbWFsKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICByID0gTXlEZWNpbWFsLmZyb21fZmxvYXQoMC4xKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUociksIE15RGVjaW1hbCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIociksCi0gICAgICAgICAgICAgICAgJzAuMTAwMDAwMDAwMDAwMDAwMDA1NTUxMTE1MTIzMTI1NzgyNzAyMTE4MTU4MzQwNDU0MTAxNTYyNScpCi0gICAgICAgIGJpZ2ludCA9IDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTXlEZWNpbWFsLmZyb21fZmxvYXQoYmlnaW50KSwgTXlEZWNpbWFsKGJpZ2ludCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShNeURlY2ltYWwuZnJvbV9mbG9hdChmbG9hdCgnbmFuJykpLmlzX3FuYW4oKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKE15RGVjaW1hbC5mcm9tX2Zsb2F0KGZsb2F0KCdpbmYnKSkuaXNfaW5maW5pdGUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKE15RGVjaW1hbC5mcm9tX2Zsb2F0KGZsb2F0KCctaW5mJykpLmlzX2luZmluaXRlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKE15RGVjaW1hbC5mcm9tX2Zsb2F0KGZsb2F0KCduYW4nKSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihEZWNpbWFsKCdOYU4nKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKE15RGVjaW1hbC5mcm9tX2Zsb2F0KGZsb2F0KCdpbmYnKSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihEZWNpbWFsKCdJbmZpbml0eScpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoTXlEZWNpbWFsLmZyb21fZmxvYXQoZmxvYXQoJy1pbmYnKSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihEZWNpbWFsKCctSW5maW5pdHknKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgTXlEZWNpbWFsLmZyb21fZmxvYXQsICdhYmMnKQotICAgICAgICBmb3IgaSBpbiByYW5nZSgyMDApOgotICAgICAgICAgICAgeCA9IHJhbmRvbS5leHBvdmFyaWF0ZSgwLjAxKSAqIChyYW5kb20ucmFuZG9tKCkgKiAyLjAgLSAxLjApCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIGZsb2F0KE15RGVjaW1hbC5mcm9tX2Zsb2F0KHgpKSkgIyByb3VuZHRyaXAKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9kZWNpbWFsX2Zyb21fZmxvYXQoc2VsZik6Ci0gICAgICAgIGNvbnRleHQgPSBDb250ZXh0KHByZWM9NSwgcm91bmRpbmc9Uk9VTkRfRE9XTikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGNvbnRleHQuY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdChtYXRoLnBpKSwKLSAgICAgICAgICAgIERlY2ltYWwoJzMuMTQxNScpCisgICAgQHJlcXVpcmVzX2V4dHJhX2Z1bmN0aW9uYWxpdHkKKyAgICBkZWYgdGVzdF9jb25zdGFudHMoc2VsZik6CisgICAgICAgICMgQ29uZGl0aW9uIGZsYWdzCisgICAgICAgIGNvbmQgPSAoCisgICAgICAgICAgICBDLkRlY0NsYW1wZWQsIEMuRGVjQ29udmVyc2lvblN5bnRheCwgQy5EZWNEaXZpc2lvbkJ5WmVybywKKyAgICAgICAgICAgIEMuRGVjRGl2aXNpb25JbXBvc3NpYmxlLCBDLkRlY0RpdmlzaW9uVW5kZWZpbmVkLAorICAgICAgICAgICAgQy5EZWNGcHVFcnJvciwgQy5EZWNJbmV4YWN0LCBDLkRlY0ludmFsaWRDb250ZXh0LAorICAgICAgICAgICAgQy5EZWNJbnZhbGlkT3BlcmF0aW9uLCBDLkRlY01hbGxvY0Vycm9yLAorICAgICAgICAgICAgQy5EZWNGbG9hdE9wZXJhdGlvbiwgQy5EZWNPdmVyZmxvdywgQy5EZWNSb3VuZGVkLAorICAgICAgICAgICAgQy5EZWNTdWJub3JtYWwsIEMuRGVjVW5kZXJmbG93CiAgICAgICAgICkKLSAgICAgICAgY29udGV4dCA9IENvbnRleHQocHJlYz01LCByb3VuZGluZz1ST1VORF9VUCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGNvbnRleHQuY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdChtYXRoLnBpKSwKLSAgICAgICAgICAgIERlY2ltYWwoJzMuMTQxNicpCi0gICAgICAgICkKLSAgICAgICAgY29udGV4dCA9IENvbnRleHQocHJlYz01LCB0cmFwcz1bSW5leGFjdF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgSW5leGFjdCwKLSAgICAgICAgICAgIGNvbnRleHQuY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdCwKLSAgICAgICAgICAgIG1hdGgucGkKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIoY29udGV4dC5jcmVhdGVfZGVjaW1hbF9mcm9tX2Zsb2F0KC0wLjApKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiRGVjaW1hbCgnLTAnKSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihjb250ZXh0LmNyZWF0ZV9kZWNpbWFsX2Zyb21fZmxvYXQoMS4wKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkRlY2ltYWwoJzEnKSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihjb250ZXh0LmNyZWF0ZV9kZWNpbWFsX2Zyb21fZmxvYXQoMTApKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiRGVjaW1hbCgnMTAnKSIpCiAKLWNsYXNzIENvbnRleHRBUEl0ZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgICAgICMgSUVFRUNvbnRleHQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDLkRFQ0lNQUwzMiwgMzIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQy5ERUNJTUFMNjQsIDY0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEMuREVDSU1BTDEyOCwgMTI4KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEMuSUVFRV9DT05URVhUX01BWF9CSVRTLCA1MTIpCiAKLSAgICBkZWYgdGVzdF9waWNrbGUoc2VsZik6CisgICAgICAgICMgUm91bmRpbmcgbW9kZXMKKyAgICAgICAgZm9yIGksIHYgaW4gZW51bWVyYXRlKFJvdW5kaW5nTW9kZXNbQ10pOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2LCBpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEMuUk9VTkRfVFJVTkMsIDgpCisKKyAgICAgICAgIyBDb25kaXRpb25zCisgICAgICAgIGZvciBpLCB2IGluIGVudW1lcmF0ZShjb25kKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodiwgMTw8aSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEMuRGVjSUVFRUludmFsaWRPcGVyYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgQy5EZWNDb252ZXJzaW9uU3ludGF4fAorICAgICAgICAgICAgICAgICAgICAgICAgIEMuRGVjRGl2aXNpb25JbXBvc3NpYmxlfAorICAgICAgICAgICAgICAgICAgICAgICAgIEMuRGVjRGl2aXNpb25VbmRlZmluZWR8CisgICAgICAgICAgICAgICAgICAgICAgICAgQy5EZWNGcHVFcnJvcnwKKyAgICAgICAgICAgICAgICAgICAgICAgICBDLkRlY0ludmFsaWRDb250ZXh0fAorICAgICAgICAgICAgICAgICAgICAgICAgIEMuRGVjSW52YWxpZE9wZXJhdGlvbnwKKyAgICAgICAgICAgICAgICAgICAgICAgICBDLkRlY01hbGxvY0Vycm9yKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQy5EZWNFcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgQy5EZWNJRUVFSW52YWxpZE9wZXJhdGlvbnwKKyAgICAgICAgICAgICAgICAgICAgICAgICBDLkRlY0RpdmlzaW9uQnlaZXJvKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQy5EZWNUcmFwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBDLkRlY0Vycm9yc3xDLkRlY092ZXJmbG93fEMuRGVjVW5kZXJmbG93KQorCitjbGFzcyBDV2hpdGVib3godW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIldoaXRlYm94IHRlc3RpbmcgZm9yIF9kZWNpbWFsIiIiCisKKyAgICBkZWYgdGVzdF9iaWdudW0oc2VsZik6CisgICAgICAgICMgTm90IGV4YWN0bHkgd2hpdGVib3gsIGJ1dCB0b28gc2xvdyB3aXRoIHB5ZGVjaW1hbC4KKworICAgICAgICBEZWNpbWFsID0gQy5EZWNpbWFsCisgICAgICAgIGxvY2FsY29udGV4dCA9IEMubG9jYWxjb250ZXh0CisKKyAgICAgICAgYjEgPSAxMCoqMzUKKyAgICAgICAgYjIgPSAxMCoqMzYKKyAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjOgorICAgICAgICAgICAgYy5wcmVjID0gMTAwMDAwMAorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoNSk6CisgICAgICAgICAgICAgICAgYSA9IHJhbmRvbS5yYW5kcmFuZ2UoYjEsIGIyKQorICAgICAgICAgICAgICAgIGIgPSByYW5kb20ucmFuZHJhbmdlKDEwMDAsIDEyMDApCisgICAgICAgICAgICAgICAgeCA9IGEgKiogYgorICAgICAgICAgICAgICAgIHkgPSBEZWNpbWFsKGEpICoqIERlY2ltYWwoYikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIHkpCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX2NvbnN0cnVjdGlvbihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBDLkRlY2ltYWwsIDksICJ4eXoiKQorCisgICAgZGVmIHRlc3RfY19pbnB1dF9yZXN0cmljdGlvbihzZWxmKToKKyAgICAgICAgIyBUb28gbGFyZ2UgZm9yIF9kZWNpbWFsIHRvIGJlIGNvbnZlcnRlZCBleGFjdGx5CisgICAgICAgIERlY2ltYWwgPSBDLkRlY2ltYWwKKyAgICAgICAgSW52YWxpZE9wZXJhdGlvbiA9IEMuSW52YWxpZE9wZXJhdGlvbgorICAgICAgICBDb250ZXh0ID0gQy5Db250ZXh0CisgICAgICAgIGxvY2FsY29udGV4dCA9IEMubG9jYWxjb250ZXh0CisKKyAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoQ29udGV4dCgpKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sIERlY2ltYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiMWU5OTk5OTk5OTk5OTk5OTk5OTk5IikKKworICAgIGRlZiB0ZXN0X2NfY29udGV4dF9yZXByKHNlbGYpOgorICAgICAgICAjIFRoaXMgdGVzdCBpcyBfZGVjaW1hbC1vbmx5IGJlY2F1c2UgZmxhZ3MgYXJlIG5vdCBwcmludGVkCisgICAgICAgICMgaW4gdGhlIHNhbWUgb3JkZXIuCisgICAgICAgIERlZmF1bHRDb250ZXh0ID0gQy5EZWZhdWx0Q29udGV4dAorICAgICAgICBGbG9hdE9wZXJhdGlvbiA9IEMuRmxvYXRPcGVyYXRpb24KKyAgICAgICAgUk9VTkRfSEFMRl9ET1dOID0gQy5ST1VORF9IQUxGX0RPV04KKworICAgICAgICBjID0gRGVmYXVsdENvbnRleHQuY29weSgpCisKKyAgICAgICAgYy5wcmVjID0gNDI1MDAwMDAwCisgICAgICAgIGMuRW1heCA9IDQyNTAwMDAwMAorICAgICAgICBjLkVtaW4gPSAtNDI1MDAwMDAwCisgICAgICAgIGMucm91bmRpbmcgPSBST1VORF9IQUxGX0RPV04KKyAgICAgICAgYy5jYXBpdGFscyA9IDAKKyAgICAgICAgYy5jbGFtcCA9IDEKKyAgICAgICAgZm9yIHNpZyBpbiBPcmRlcmVkU2lnbmFsc1tDXToKKyAgICAgICAgICAgIGMuZmxhZ3Nbc2lnXSA9IFRydWUKKyAgICAgICAgICAgIGMudHJhcHNbc2lnXSA9IFRydWUKKyAgICAgICAgYy5mbGFnc1tGbG9hdE9wZXJhdGlvbl0gPSBUcnVlCisgICAgICAgIGMudHJhcHNbRmxvYXRPcGVyYXRpb25dID0gVHJ1ZQorCisgICAgICAgIHMgPSBjLl9fcmVwcl9fKCkKKyAgICAgICAgdCA9ICJDb250ZXh0KHByZWM9NDI1MDAwMDAwLCByb3VuZGluZz1ST1VORF9IQUxGX0RPV04sICIgXAorICAgICAgICAgICAgIkVtaW49LTQyNTAwMDAwMCwgRW1heD00MjUwMDAwMDAsIGNhcGl0YWxzPTAsIGNsYW1wPTEsICIgXAorICAgICAgICAgICAgImZsYWdzPVtDbGFtcGVkLCBJbnZhbGlkT3BlcmF0aW9uLCBEaXZpc2lvbkJ5WmVybywgSW5leGFjdCwgIiBcCisgICAgICAgICAgICAgICAgICAgIkZsb2F0T3BlcmF0aW9uLCBPdmVyZmxvdywgUm91bmRlZCwgU3Vibm9ybWFsLCBVbmRlcmZsb3ddLCAiIFwKKyAgICAgICAgICAgICJ0cmFwcz1bQ2xhbXBlZCwgSW52YWxpZE9wZXJhdGlvbiwgRGl2aXNpb25CeVplcm8sIEluZXhhY3QsICIgXAorICAgICAgICAgICAgICAgICAgICJGbG9hdE9wZXJhdGlvbiwgT3ZlcmZsb3csIFJvdW5kZWQsIFN1Ym5vcm1hbCwgVW5kZXJmbG93XSkiCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocywgdCkKKworICAgIGRlZiB0ZXN0X2NfY29udGV4dF9lcnJvcnMoc2VsZik6CisgICAgICAgIENvbnRleHQgPSBDLkNvbnRleHQKKyAgICAgICAgSW52YWxpZE9wZXJhdGlvbiA9IEMuSW52YWxpZE9wZXJhdGlvbgorICAgICAgICBPdmVyZmxvdyA9IEMuT3ZlcmZsb3cKKyAgICAgICAgRmxvYXRPcGVyYXRpb24gPSBDLkZsb2F0T3BlcmF0aW9uCisgICAgICAgIGxvY2FsY29udGV4dCA9IEMubG9jYWxjb250ZXh0CisgICAgICAgIGdldGNvbnRleHQgPSBDLmdldGNvbnRleHQKKyAgICAgICAgc2V0Y29udGV4dCA9IEMuc2V0Y29udGV4dAorICAgICAgICBIQVZFX0NPTkZJR182NCA9IChDLk1BWF9QUkVDID4gNDI1MDAwMDAwKQorCiAgICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZSA9IHBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMoYykpCi0gICAgICAgIGZvciBrIGluIHZhcnMoYyk6Ci0gICAgICAgICAgICB2MSA9IHZhcnMoYylba10KLSAgICAgICAgICAgIHYyID0gdmFycyhlKVtrXQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2MSwgdjIpCiAKLSAgICBkZWYgdGVzdF9lcXVhbGl0eV93aXRoX290aGVyX3R5cGVzKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEluKERlY2ltYWwoMTApLCBbJ2EnLCAxLjAsIERlY2ltYWwoMTApLCAoMSwyKSwge31dKQotICAgICAgICBzZWxmLmFzc2VydE5vdEluKERlY2ltYWwoMTApLCBbJ2EnLCAxLjAsICgxLDIpLCB7fV0pCisgICAgICAgICMgU2lnbmFsRGljdDogaW5wdXQgdmFsaWRhdGlvbgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgYy5mbGFncy5fX3NldGl0ZW1fXywgODAxLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgYy50cmFwcy5fX3NldGl0ZW1fXywgODAxLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjLmZsYWdzLl9fZGVsaXRlbV9fLCBPdmVyZmxvdykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYy50cmFwcy5fX2RlbGl0ZW1fXywgSW52YWxpZE9wZXJhdGlvbikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZXRhdHRyLCBjLCAnZmxhZ3MnLCBbJ3gnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZXRhdHRyLCBjLCd0cmFwcycsIFsneSddKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgc2V0YXR0ciwgYywgJ2ZsYWdzJywgezA6MX0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBzZXRhdHRyLCBjLCAndHJhcHMnLCB7MDoxfSkKIAotICAgIGRlZiB0ZXN0X2NvcHkoc2VsZik6Ci0gICAgICAgICMgQWxsIGNvcGllcyBzaG91bGQgYmUgZGVlcAorICAgICAgICAjIFRlc3QgYXNzaWdubWVudCBmcm9tIGEgc2lnbmFsIGRpY3Qgd2l0aCB0aGUgY29ycmVjdCBsZW5ndGggYnV0CisgICAgICAgICMgb25lIGludmFsaWQga2V5LgorICAgICAgICBkID0gYy5mbGFncy5jb3B5KCkKKyAgICAgICAgZGVsIGRbRmxvYXRPcGVyYXRpb25dCisgICAgICAgIGRbIlhZWiJdID0gOTEyODM3MTkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHNldGF0dHIsIGMsICdmbGFncycsIGQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBzZXRhdHRyLCBjLCAndHJhcHMnLCBkKQorCisgICAgICAgICMgSW5wdXQgY29ybmVyIGNhc2VzCisgICAgICAgIGludF9tYXggPSAyKio2My0xIGlmIEhBVkVfQ09ORklHXzY0IGVsc2UgMioqMzEtMQorICAgICAgICBndF9tYXhfZW1heCA9IDEwKioxOCBpZiBIQVZFX0NPTkZJR182NCBlbHNlIDEwKio5CisKKyAgICAgICAgIyBwcmVjLCBFbWF4LCBFbWluCisgICAgICAgIGZvciBhdHRyIGluIFsncHJlYycsICdFbWF4J106CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCBndF9tYXhfZW1heCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2V0YXR0ciwgYywgJ0VtaW4nLCAtZ3RfbWF4X2VtYXgpCisKKyAgICAgICAgIyBwcmVjLCBFbWF4LCBFbWluIGluIGNvbnRleHQgY29uc3RydWN0b3IKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgQ29udGV4dCwgcHJlYz1ndF9tYXhfZW1heCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgQ29udGV4dCwgRW1heD1ndF9tYXhfZW1heCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgQ29udGV4dCwgRW1pbj0tZ3RfbWF4X2VtYXgpCisKKyAgICAgICAgIyBPdmVyZmxvdyBpbiBjb252ZXJzaW9uCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIENvbnRleHQsIHByZWM9aW50X21heCsxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBDb250ZXh0LCBFbWF4PWludF9tYXgrMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgQ29udGV4dCwgRW1pbj0taW50X21heC0yKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBDb250ZXh0LCByb3VuZGluZz1pbnRfbWF4KzEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIENvbnRleHQsIGNsYW1wPWludF9tYXgrMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgQ29udGV4dCwgY2FwaXRhbHM9aW50X21heCsxKQorCisgICAgICAgICMgT3ZlcmZsb3dFcnJvciwgZ2VuZXJhbCBWYWx1ZUVycm9yCisgICAgICAgIGZvciBhdHRyIGluICgncHJlYycsICdFbWluJywgJ0VtYXgnLCAnY2FwaXRhbHMnLCAnY2xhbXAnKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHNldGF0dHIsIGMsIGF0dHIsIGludF9tYXgrMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHNldGF0dHIsIGMsIGF0dHIsIC1pbnRfbWF4LTIpCisgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gIT0gJ3dpbjMyJzoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCBpbnRfbWF4KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNldGF0dHIsIGMsIGF0dHIsIC1pbnRfbWF4LTEpCisKKyAgICAgICAgIyBPdmVyZmxvd0Vycm9yLCBnZW5lcmFsIFR5cGVFcnJvcgorICAgICAgICBmb3IgYXR0ciBpbiAoJ3JvdW5kaW5nJywpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgc2V0YXR0ciwgYywgYXR0ciwgaW50X21heCsxKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgc2V0YXR0ciwgYywgYXR0ciwgLWludF9tYXgtMikKKyAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSAhPSAnd2luMzInOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2V0YXR0ciwgYywgYXR0ciwgaW50X21heCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGF0dHIsIGMsIGF0dHIsIC1pbnRfbWF4LTEpCisKKyAgICAgICAgIyBPdmVyZmxvd0Vycm9yOiBfdW5zYWZlX3NldHByZWMsIF91bnNhZmVfc2V0ZW1pbiwgX3Vuc2FmZV9zZXRlbWF4CisgICAgICAgIGlmIEMuTUFYX1BSRUMgPT0gNDI1MDAwMDAwOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgZ2V0YXR0cihjLCAnX3Vuc2FmZV9zZXRwcmVjJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRfbWF4KzEpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBnZXRhdHRyKGMsICdfdW5zYWZlX3NldGVtYXgnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludF9tYXgrMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIGdldGF0dHIoYywgJ191bnNhZmVfc2V0ZW1pbicpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWludF9tYXgtMikKKworICAgICAgICAjIFZhbHVlRXJyb3I6IF91bnNhZmVfc2V0cHJlYywgX3Vuc2FmZV9zZXRlbWluLCBfdW5zYWZlX3NldGVtYXgKKyAgICAgICAgaWYgQy5NQVhfUFJFQyA9PSA0MjUwMDAwMDA6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBnZXRhdHRyKGMsICdfdW5zYWZlX3NldHByZWMnKSwgMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGdldGF0dHIoYywgJ191bnNhZmVfc2V0cHJlYycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA3MDAwMDAwMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGdldGF0dHIoYywgJ191bnNhZmVfc2V0ZW1heCcpLCAtMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGdldGF0dHIoYywgJ191bnNhZmVfc2V0ZW1heCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTA3MDAwMDAwMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGdldGF0dHIoYywgJ191bnNhZmVfc2V0ZW1pbicpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLTEwNzAwMDAwMDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBnZXRhdHRyKGMsICdfdW5zYWZlX3NldGVtaW4nKSwgMSkKKworICAgICAgICAjIGNhcGl0YWxzLCBjbGFtcAorICAgICAgICBmb3IgYXR0ciBpbiBbJ2NhcGl0YWxzJywgJ2NsYW1wJ106CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCAtMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNldGF0dHIsIGMsIGF0dHIsIDIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGF0dHIsIGMsIGF0dHIsIFsxLDIsM10pCisgICAgICAgICAgICBpZiBIQVZFX0NPTkZJR182NDoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCAyKiozMikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCAyKiozMisxKQorCisgICAgICAgICMgSW52YWxpZCBsb2NhbCBjb250ZXh0CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZXhlYywgJ3dpdGggbG9jYWxjb250ZXh0KCJ4eXoiKTogcGFzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FscygpKQorCisgICAgICAgICMgc2V0Y29udGV4dAorICAgICAgICBzYXZlZF9jb250ZXh0ID0gZ2V0Y29udGV4dCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2V0Y29udGV4dCwgInh5eiIpCisgICAgICAgIHNldGNvbnRleHQoc2F2ZWRfY29udGV4dCkKKworICAgIEByZXF1aXJlc19leHRyYV9mdW5jdGlvbmFsaXR5CisgICAgZGVmIHRlc3RfY19jb250ZXh0X2Vycm9yc19leHRyYShzZWxmKToKKyAgICAgICAgQ29udGV4dCA9IEMuQ29udGV4dAorICAgICAgICBJbnZhbGlkT3BlcmF0aW9uID0gQy5JbnZhbGlkT3BlcmF0aW9uCisgICAgICAgIE92ZXJmbG93ID0gQy5PdmVyZmxvdworICAgICAgICBsb2NhbGNvbnRleHQgPSBDLmxvY2FsY29udGV4dAorICAgICAgICBnZXRjb250ZXh0ID0gQy5nZXRjb250ZXh0CisgICAgICAgIHNldGNvbnRleHQgPSBDLnNldGNvbnRleHQKKyAgICAgICAgSEFWRV9DT05GSUdfNjQgPSAoQy5NQVhfUFJFQyA+IDQyNTAwMDAwMCkKKwogICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmNvcHkoKQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlkKGMpLCBpZChkKSkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChpZChjLmZsYWdzKSwgaWQoZC5mbGFncykpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoaWQoYy50cmFwcyksIGlkKGQudHJhcHMpKQogCi0gICAgZGVmIHRlc3RfX2NsYW1wKHNlbGYpOgotICAgICAgICAjIEluIFB5dGhvbiAzLjIsIHRoZSBwcml2YXRlIGF0dHJpYnV0ZSBgX2NsYW1wYCB3YXMgbWFkZQotICAgICAgICAjIHB1YmxpYyAoaXNzdWUgODU0MCksIHdpdGggdGhlIG9sZCBgX2NsYW1wYCBiZWNvbWluZyBhCi0gICAgICAgICMgcHJvcGVydHkgd3JhcHBpbmcgYGNsYW1wYC4gIEZvciB0aGUgZHVyYXRpb24gb2YgUHl0aG9uIDMuMgotICAgICAgICAjIG9ubHksIHRoZSBhdHRyaWJ1dGUgc2hvdWxkIGJlIGdldHRhYmxlL3NldHRhYmxlIHZpYSBib3RoCi0gICAgICAgICMgYGNsYW1wYCBhbmQgYF9jbGFtcGA7IGluIFB5dGhvbiAzLjMsIGBfY2xhbXBgIHNob3VsZCBiZQotICAgICAgICAjIHJlbW92ZWQuCi0gICAgICAgIGMgPSBDb250ZXh0KGNsYW1wID0gMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNsYW1wLCAwKQorICAgICAgICAjIElucHV0IGNvcm5lciBjYXNlcworICAgICAgICBpbnRfbWF4ID0gMioqNjMtMSBpZiBIQVZFX0NPTkZJR182NCBlbHNlIDIqKjMxLTEKIAotICAgICAgICB3aXRoIGNoZWNrX3dhcm5pbmdzKCgiIiwgRGVwcmVjYXRpb25XYXJuaW5nKSk6Ci0gICAgICAgICAgICBjLl9jbGFtcCA9IDEKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNsYW1wLCAxKQotICAgICAgICB3aXRoIGNoZWNrX3dhcm5pbmdzKCgiIiwgRGVwcmVjYXRpb25XYXJuaW5nKSk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuX2NsYW1wLCAxKQorICAgICAgICAjIE92ZXJmbG93RXJyb3IsIGdlbmVyYWwgVmFsdWVFcnJvcgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBzZXRhdHRyLCBjLCAnX2FsbGNyJywgaW50X21heCsxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBzZXRhdHRyLCBjLCAnX2FsbGNyJywgLWludF9tYXgtMikKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICd3aW4zMic6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRhdHRyLCBjLCAnX2FsbGNyJywgaW50X21heCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNldGF0dHIsIGMsICdfYWxsY3InLCAtaW50X21heC0xKQorCisgICAgICAgICMgT3ZlcmZsb3dFcnJvciwgZ2VuZXJhbCBUeXBlRXJyb3IKKyAgICAgICAgZm9yIGF0dHIgaW4gKCdfZmxhZ3MnLCAnX3RyYXBzJyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCBpbnRfbWF4KzEpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCAtaW50X21heC0yKQorICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtICE9ICd3aW4zMic6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZXRhdHRyLCBjLCBhdHRyLCBpbnRfbWF4KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2V0YXR0ciwgYywgYXR0ciwgLWludF9tYXgtMSkKKworICAgICAgICAjIF9hbGxjcgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRhdHRyLCBjLCAnX2FsbGNyJywgLTEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNldGF0dHIsIGMsICdfYWxsY3InLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGF0dHIsIGMsICdfYWxsY3InLCBbMSwyLDNdKQorICAgICAgICBpZiBIQVZFX0NPTkZJR182NDoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNldGF0dHIsIGMsICdfYWxsY3InLCAyKiozMikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNldGF0dHIsIGMsICdfYWxsY3InLCAyKiozMisxKQorCisgICAgICAgICMgX2ZsYWdzLCBfdHJhcHMKKyAgICAgICAgZm9yIGF0dHIgaW4gWydfZmxhZ3MnLCAnX3RyYXBzJ106CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGF0dHIsIGMsIGF0dHIsIDk5OTk5OSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2V0YXR0ciwgYywgYXR0ciwgJ3gnKQorCisgICAgZGVmIHRlc3RfY192YWxpZF9jb250ZXh0KHNlbGYpOgorICAgICAgICAjIFRoZXNlIHRlc3RzIGFyZSBmb3IgY29kZSBjb3ZlcmFnZSBpbiBfZGVjaW1hbC4KKyAgICAgICAgRGVmYXVsdENvbnRleHQgPSBDLkRlZmF1bHRDb250ZXh0CisgICAgICAgIFJPVU5EX0hBTEZfVVAgPSBDLlJPVU5EX0hBTEZfVVAKKyAgICAgICAgQ2xhbXBlZCA9IEMuQ2xhbXBlZAorICAgICAgICBVbmRlcmZsb3cgPSBDLlVuZGVyZmxvdworICAgICAgICBJbmV4YWN0ID0gQy5JbmV4YWN0CisgICAgICAgIFJvdW5kZWQgPSBDLlJvdW5kZWQKKyAgICAgICAgU3Vibm9ybWFsID0gQy5TdWJub3JtYWwKKworICAgICAgICBjID0gRGVmYXVsdENvbnRleHQuY29weSgpCisKKyAgICAgICAgIyBFeGVyY2lzZSBhbGwgZ2V0dGVycyBhbmQgc2V0dGVycworICAgICAgICBjLnByZWMgPSAzNAorICAgICAgICBjLnJvdW5kaW5nID0gUk9VTkRfSEFMRl9VUAorICAgICAgICBjLkVtYXggPSAzMDAwCisgICAgICAgIGMuRW1pbiA9IC0zMDAwCisgICAgICAgIGMuY2FwaXRhbHMgPSAxCiAgICAgICAgIGMuY2xhbXAgPSAwCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnByZWMsIDM0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucm91bmRpbmcsIFJPVU5EX0hBTEZfVVApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5FbWluLCAtMzAwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLkVtYXgsIDMwMDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jYXBpdGFscywgMSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNsYW1wLCAwKQotICAgICAgICB3aXRoIGNoZWNrX3dhcm5pbmdzKCgiIiwgRGVwcmVjYXRpb25XYXJuaW5nKSk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuX2NsYW1wLCAwKQogCi0gICAgZGVmIHRlc3RfYWJzKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmFicyhEZWNpbWFsKC0xKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmFicygtMSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5hYnMsICctMScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5FdGlueSgpLCAtMzAzMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLkV0b3AoKSwgMjk2NykKIAotICAgIGRlZiB0ZXN0X2FkZChzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5hZGQoRGVjaW1hbCgxKSwgRGVjaW1hbCgxKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmFkZCgxLCAxKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmFkZChEZWNpbWFsKDEpLCAxKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmFkZCgxLCBEZWNpbWFsKDEpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmFkZCwgJzEnLCAxKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuYWRkLCAxLCAnMScpCisgICAgICAgICMgRXhlcmNpc2UgYWxsIHVuc2FmZSBzZXR0ZXJzCisgICAgICAgIGlmIEMuTUFYX1BSRUMgPT0gNDI1MDAwMDAwOgorICAgICAgICAgICAgYy5fdW5zYWZlX3NldHByZWMoOTk5OTk5OTk5KQorICAgICAgICAgICAgYy5fdW5zYWZlX3NldGVtYXgoOTk5OTk5OTk5KQorICAgICAgICAgICAgYy5fdW5zYWZlX3NldGVtaW4oLTk5OTk5OTk5OSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5wcmVjLCA5OTk5OTk5OTkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuRW1heCwgOTk5OTk5OTk5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLkVtaW4sIC05OTk5OTk5OTkpCiAKLSAgICBkZWYgdGVzdF9jb21wYXJlKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmNvbXBhcmUoRGVjaW1hbCgxKSwgRGVjaW1hbCgxKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbXBhcmUoMSwgMSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb21wYXJlKERlY2ltYWwoMSksIDEpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29tcGFyZSgxLCBEZWNpbWFsKDEpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvbXBhcmUsICcxJywgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvbXBhcmUsIDEsICcxJykKKyAgICBAcmVxdWlyZXNfZXh0cmFfZnVuY3Rpb25hbGl0eQorICAgIGRlZiB0ZXN0X2NfdmFsaWRfY29udGV4dF9leHRyYShzZWxmKToKKyAgICAgICAgRGVmYXVsdENvbnRleHQgPSBDLkRlZmF1bHRDb250ZXh0CiAKLSAgICBkZWYgdGVzdF9jb21wYXJlX3NpZ25hbChzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5jb21wYXJlX3NpZ25hbChEZWNpbWFsKDEpLCBEZWNpbWFsKDEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29tcGFyZV9zaWduYWwoMSwgMSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb21wYXJlX3NpZ25hbChEZWNpbWFsKDEpLCAxKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbXBhcmVfc2lnbmFsKDEsIERlY2ltYWwoMSkpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuY29tcGFyZV9zaWduYWwsICcxJywgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvbXBhcmVfc2lnbmFsLCAxLCAnMScpCisgICAgICAgIGMgPSBEZWZhdWx0Q29udGV4dC5jb3B5KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLl9hbGxjciwgMSkKKyAgICAgICAgYy5fYWxsY3IgPSAwCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5fYWxsY3IsIDApCiAKLSAgICBkZWYgdGVzdF9jb21wYXJlX3RvdGFsKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmNvbXBhcmVfdG90YWwoRGVjaW1hbCgxKSwgRGVjaW1hbCgxKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbXBhcmVfdG90YWwoMSwgMSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb21wYXJlX3RvdGFsKERlY2ltYWwoMSksIDEpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29tcGFyZV90b3RhbCgxLCBEZWNpbWFsKDEpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvbXBhcmVfdG90YWwsICcxJywgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvbXBhcmVfdG90YWwsIDEsICcxJykKKyAgICBkZWYgdGVzdF9jX3JvdW5kKHNlbGYpOgorICAgICAgICAjIFJlc3RyaWN0ZWQgaW5wdXQuCisgICAgICAgIERlY2ltYWwgPSBDLkRlY2ltYWwKKyAgICAgICAgSW52YWxpZE9wZXJhdGlvbiA9IEMuSW52YWxpZE9wZXJhdGlvbgorICAgICAgICBsb2NhbGNvbnRleHQgPSBDLmxvY2FsY29udGV4dAorICAgICAgICBNQVhfRU1BWCA9IEMuTUFYX0VNQVgKKyAgICAgICAgTUlOX0VUSU5ZID0gQy5NSU5fRVRJTlkKKyAgICAgICAgaW50X21heCA9IDIqKjYzLTEgaWYgQy5NQVhfUFJFQyA+IDQyNTAwMDAwMCBlbHNlIDIqKjMxLTEKIAotICAgIGRlZiB0ZXN0X2NvbXBhcmVfdG90YWxfbWFnKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmNvbXBhcmVfdG90YWxfbWFnKERlY2ltYWwoMSksIERlY2ltYWwoMSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb21wYXJlX3RvdGFsX21hZygxLCAxKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvbXBhcmVfdG90YWxfbWFnKERlY2ltYWwoMSksIDEpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29tcGFyZV90b3RhbF9tYWcoMSwgRGVjaW1hbCgxKSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5jb21wYXJlX3RvdGFsX21hZywgJzEnLCAxKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuY29tcGFyZV90b3RhbF9tYWcsIDEsICcxJykKKyAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjOgorICAgICAgICAgICAgYy50cmFwc1tJbnZhbGlkT3BlcmF0aW9uXSA9IFRydWUKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sIERlY2ltYWwoIjEuMjMiKS5fX3JvdW5kX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtaW50X21heC0xKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgRGVjaW1hbCgiMS4yMyIpLl9fcm91bmRfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludF9tYXgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBEZWNpbWFsKCIxIikuX19yb3VuZF9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KE1BWF9FTUFYKzEpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQy5JbnZhbGlkT3BlcmF0aW9uLCBEZWNpbWFsKCIxIikuX19yb3VuZF9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWludChNSU5fRVRJTlktMSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBEZWNpbWFsKCIxLjIzIikuX19yb3VuZF9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLWludF9tYXgtMikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIERlY2ltYWwoIjEuMjMiKS5fX3JvdW5kX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRfbWF4KzEpCiAKLSAgICBkZWYgdGVzdF9jb3B5X2FicyhzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5jb3B5X2FicyhEZWNpbWFsKC0xKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvcHlfYWJzKC0xKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvcHlfYWJzLCAnLTEnKQorICAgIGRlZiB0ZXN0X2NfZm9ybWF0KHNlbGYpOgorICAgICAgICAjIFJlc3RyaWN0ZWQgaW5wdXQKKyAgICAgICAgRGVjaW1hbCA9IEMuRGVjaW1hbAorICAgICAgICBJbnZhbGlkT3BlcmF0aW9uID0gQy5JbnZhbGlkT3BlcmF0aW9uCisgICAgICAgIFJvdW5kZWQgPSBDLlJvdW5kZWQKKyAgICAgICAgbG9jYWxjb250ZXh0ID0gQy5sb2NhbGNvbnRleHQKKyAgICAgICAgSEFWRV9DT05GSUdfNjQgPSAoQy5NQVhfUFJFQyA+IDQyNTAwMDAwMCkKIAotICAgIGRlZiB0ZXN0X2NvcHlfZGVjaW1hbChzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5jb3B5X2RlY2ltYWwoRGVjaW1hbCgtMSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb3B5X2RlY2ltYWwoLTEpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuY29weV9kZWNpbWFsLCAnLTEnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIERlY2ltYWwoMSkuX19mb3JtYXRfXywgIj0xMC4xMCIsIFtdLCA5KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIERlY2ltYWwoMSkuX19mb3JtYXRfXywgIj0xMC4xMCIsIDkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRGVjaW1hbCgxKS5fX2Zvcm1hdF9fLCBbXSkKIAotICAgIGRlZiB0ZXN0X2NvcHlfbmVnYXRlKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmNvcHlfbmVnYXRlKERlY2ltYWwoLTEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29weV9uZWdhdGUoLTEpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuY29weV9uZWdhdGUsICctMScpCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzoKKyAgICAgICAgICAgIGMudHJhcHNbSW52YWxpZE9wZXJhdGlvbl0gPSBUcnVlCisgICAgICAgICAgICBjLnRyYXBzW1JvdW5kZWRdID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgRGVjaW1hbCgxKS5fX2Zvcm1hdF9fLCAiPD49MTAuMTAiKQorICAgICAgICAgICAgbWF4c2l6ZSA9IDIqKjYzLTEgaWYgSEFWRV9DT05GSUdfNjQgZWxzZSAyKiozMS0xCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBEZWNpbWFsKCIxLjIzNDU2Nzg5IikuX19mb3JtYXRfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9JWQuMSIgJSBtYXhzaXplKQogCi0gICAgZGVmIHRlc3RfY29weV9zaWduKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmNvcHlfc2lnbihEZWNpbWFsKDEpLCBEZWNpbWFsKC0yKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNvcHlfc2lnbigxLCAtMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jb3B5X3NpZ24oRGVjaW1hbCgxKSwgLTIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuY29weV9zaWduKDEsIERlY2ltYWwoLTIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvcHlfc2lnbiwgJzEnLCAtMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvcHlfc2lnbiwgMSwgJy0yJykKKyAgICBkZWYgdGVzdF9jX2ludGVncmFsKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gQy5EZWNpbWFsCisgICAgICAgIEluZXhhY3QgPSBDLkluZXhhY3QKKyAgICAgICAgUk9VTkRfVVAgPSBDLlJPVU5EX1VQCisgICAgICAgIGxvY2FsY29udGV4dCA9IEMubG9jYWxjb250ZXh0CiAKLSAgICBkZWYgdGVzdF9kaXZpZGUoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMuZGl2aWRlKERlY2ltYWwoMSksIERlY2ltYWwoMikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kaXZpZGUoMSwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kaXZpZGUoRGVjaW1hbCgxKSwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kaXZpZGUoMSwgRGVjaW1hbCgyKSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5kaXZpZGUsICcxJywgMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmRpdmlkZSwgMSwgJzInKQorICAgICAgICB4ID0gRGVjaW1hbCgxMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LnRvX2ludGVncmFsKCksIDEwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHgudG9faW50ZWdyYWwsICcxMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgeC50b19pbnRlZ3JhbCwgMTAsICd4JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB4LnRvX2ludGVncmFsLCAxMCkKIAotICAgIGRlZiB0ZXN0X2RpdmlkZV9pbnQoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMuZGl2aWRlX2ludChEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGl2aWRlX2ludCgxLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmRpdmlkZV9pbnQoRGVjaW1hbCgxKSwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5kaXZpZGVfaW50KDEsIERlY2ltYWwoMikpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZGl2aWRlX2ludCwgJzEnLCAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZGl2aWRlX2ludCwgMSwgJzInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgudG9faW50ZWdyYWxfdmFsdWUoKSwgMTApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgeC50b19pbnRlZ3JhbF92YWx1ZSwgJzEwJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB4LnRvX2ludGVncmFsX3ZhbHVlLCAxMCwgJ3gnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHgudG9faW50ZWdyYWxfdmFsdWUsIDEwKQogCi0gICAgZGVmIHRlc3RfZGl2bW9kKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmRpdm1vZChEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGl2bW9kKDEsIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGl2bW9kKERlY2ltYWwoMSksIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuZGl2bW9kKDEsIERlY2ltYWwoMikpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZGl2bW9kLCAnMScsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5kaXZtb2QsIDEsICcyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LnRvX2ludGVncmFsX2V4YWN0KCksIDEwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHgudG9faW50ZWdyYWxfZXhhY3QsICcxMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgeC50b19pbnRlZ3JhbF9leGFjdCwgMTAsICd4JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB4LnRvX2ludGVncmFsX2V4YWN0LCAxMCkKIAotICAgIGRlZiB0ZXN0X2V4cChzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5leHAoRGVjaW1hbCgxMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5leHAoMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZXhwLCAnMTAnKQorICAgICAgICB3aXRoIGxvY2FsY29udGV4dCgpIGFzIGM6CisgICAgICAgICAgICB4ID0gRGVjaW1hbCgiOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTkuOSIpLnRvX2ludGVncmFsX3ZhbHVlKFJPVU5EX1VQKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCBEZWNpbWFsKCcxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnKSkKIAotICAgIGRlZiB0ZXN0X2ZtYShzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5mbWEoRGVjaW1hbCgyKSwgRGVjaW1hbCgzKSwgRGVjaW1hbCg0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYSgyLCAzLCA0KSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYShEZWNpbWFsKDIpLCAzLCA0KSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYSgyLCBEZWNpbWFsKDMpLCA0KSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYSgyLCAzLCBEZWNpbWFsKDQpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmZtYShEZWNpbWFsKDIpLCBEZWNpbWFsKDMpLCA0KSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmZtYSwgJzInLCAzLCA0KQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZm1hLCAyLCAnMycsIDQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5mbWEsIDIsIDMsICc0JykKKyAgICAgICAgICAgIHggPSBEZWNpbWFsKCI5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OS45IikudG9faW50ZWdyYWxfZXhhY3QoUk9VTkRfVVApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIERlY2ltYWwoJzEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcpKQogCi0gICAgZGVmIHRlc3RfaXNfZmluaXRlKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmlzX2Zpbml0ZShEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX2Zpbml0ZSgxMCksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19maW5pdGUsICcxMCcpCisgICAgICAgICAgICBjLnRyYXBzW0luZXhhY3RdID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5leGFjdCwgRGVjaW1hbCgiOTk5LjkiKS50b19pbnRlZ3JhbF9leGFjdCwgUk9VTkRfVVApCiAKLSAgICBkZWYgdGVzdF9pc19pbmZpbml0ZShzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5pc19pbmZpbml0ZShEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX2luZmluaXRlKDEwKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmlzX2luZmluaXRlLCAnMTAnKQorICAgIGRlZiB0ZXN0X2NfZnVuY3Moc2VsZik6CisgICAgICAgICMgSW52YWxpZCBhcmd1bWVudHMKKyAgICAgICAgRGVjaW1hbCA9IEMuRGVjaW1hbAorICAgICAgICBJbnZhbGlkT3BlcmF0aW9uID0gQy5JbnZhbGlkT3BlcmF0aW9uCisgICAgICAgIERpdmlzaW9uQnlaZXJvID0gQy5EaXZpc2lvbkJ5WmVybworICAgICAgICBST1VORF9VUCA9IEMuUk9VTkRfVVAKKyAgICAgICAgZ2V0Y29udGV4dCA9IEMuZ2V0Y29udGV4dAorICAgICAgICBsb2NhbGNvbnRleHQgPSBDLmxvY2FsY29udGV4dAogCi0gICAgZGVmIHRlc3RfaXNfbmFuKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmlzX25hbihEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX25hbigxMCksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19uYW4sICcxMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRGVjaW1hbCgnOS45OWUxMCcpLnRvX2VuZ19zdHJpbmcoKSwgJzk5LjlFKzknKQogCi0gICAgZGVmIHRlc3RfaXNfbm9ybWFsKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmlzX25vcm1hbChEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX25vcm1hbCgxMCksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19ub3JtYWwsICcxMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcG93LCBEZWNpbWFsKDEpLCAyLCAiMyIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgRGVjaW1hbCg5KS5udW1iZXJfY2xhc3MsICJ4IiwgInkiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIERlY2ltYWwoOSkuc2FtZV9xdWFudHVtLCAzLCAieCIsICJ5IikKIAotICAgIGRlZiB0ZXN0X2lzX3FuYW4oc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMuaXNfcW5hbihEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX3FuYW4oMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuaXNfcW5hbiwgJzEwJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICBUeXBlRXJyb3IsCisgICAgICAgICAgICBEZWNpbWFsKCIxLjIzNDU2Nzg5IikucXVhbnRpemUsIERlY2ltYWwoJzFlLTEwMDAwMCcpLCBbXQorICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgVHlwZUVycm9yLAorICAgICAgICAgICAgRGVjaW1hbCgiMS4yMzQ1Njc4OSIpLnF1YW50aXplLCBEZWNpbWFsKCcxZS0xMDAwMDAnKSwgZ2V0Y29udGV4dCgpCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICBUeXBlRXJyb3IsCisgICAgICAgICAgICBEZWNpbWFsKCIxLjIzNDU2Nzg5IikucXVhbnRpemUsIERlY2ltYWwoJzFlLTEwMDAwMCcpLCAxMAorICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgVHlwZUVycm9yLAorICAgICAgICAgICAgRGVjaW1hbCgiMS4yMzQ1Njc4OSIpLnF1YW50aXplLCBEZWNpbWFsKCcxZS0xMDAwMDAnKSwgUk9VTkRfVVAsIDEwMDAKKyAgICAgICAgKQogCi0gICAgZGVmIHRlc3RfaXNfc2lnbmVkKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmlzX3NpZ25lZChEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX3NpZ25lZCgxMCksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19zaWduZWQsICcxMCcpCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzoKKyAgICAgICAgICAgIGMuY2xlYXJfdHJhcHMoKQogCi0gICAgZGVmIHRlc3RfaXNfc25hbihzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5pc19zbmFuKERlY2ltYWwoMTApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuaXNfc25hbigxMCksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19zbmFuLCAnMTAnKQorICAgICAgICAgICAgIyBJbnZhbGlkIGFyZ3VtZW50cworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmNvcHlfc2lnbiwgRGVjaW1hbCgxKSwgIngiLCAieSIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuY2Fub25pY2FsLCAyMDApCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuaXNfY2Fub25pY2FsLCAyMDApCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuZGl2bW9kLCA5LCA4LCAieCIsICJ5IikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5zYW1lX3F1YW50dW0sIDksIDMsICJ4IiwgInkiKQogCi0gICAgZGVmIHRlc3RfaXNfc3Vibm9ybWFsKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmlzX3N1Ym5vcm1hbChEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmlzX3N1Ym5vcm1hbCgxMCksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5pc19zdWJub3JtYWwsICcxMCcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjLmNhbm9uaWNhbChEZWNpbWFsKDIwMCkpKSwgJzIwMCcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucmFkaXgoKSwgMTApCiAKLSAgICBkZWYgdGVzdF9pc196ZXJvKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmlzX3plcm8oRGVjaW1hbCgxMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5pc196ZXJvKDEwKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmlzX3plcm8sICcxMCcpCisgICAgICAgICAgICBjLnRyYXBzW0RpdmlzaW9uQnlaZXJvXSA9IFRydWUKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKERpdmlzaW9uQnlaZXJvLCBEZWNpbWFsKDkpLl9fZGl2bW9kX18sIDApCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhEaXZpc2lvbkJ5WmVybywgYy5kaXZtb2QsIDksIDApCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYy5mbGFnc1tJbnZhbGlkT3BlcmF0aW9uXSkKIAotICAgIGRlZiB0ZXN0X2xuKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmxuKERlY2ltYWwoMTApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG4oMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG4sICcxMCcpCisgICAgICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgICAgIGMudHJhcHNbSW52YWxpZE9wZXJhdGlvbl0gPSBUcnVlCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBEZWNpbWFsKDkpLl9fZGl2bW9kX18sIDApCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBjLmRpdm1vZCwgOSwgMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjLmZsYWdzW0RpdmlzaW9uQnlaZXJvXSkKIAotICAgIGRlZiB0ZXN0X2xvZzEwKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmxvZzEwKERlY2ltYWwoMTApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9nMTAoMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG9nMTAsICcxMCcpCisgICAgICAgICAgICBjLnRyYXBzW0ludmFsaWRPcGVyYXRpb25dID0gVHJ1ZQorICAgICAgICAgICAgYy5wcmVjID0gMgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgcG93LCBEZWNpbWFsKDEwMDApLCAxLCA1MDEpCiAKLSAgICBkZWYgdGVzdF9sb2diKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmxvZ2IoRGVjaW1hbCgxMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5sb2diKDEwKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmxvZ2IsICcxMCcpCisgICAgQHJlcXVpcmVzX2V4dHJhX2Z1bmN0aW9uYWxpdHkKKyAgICBkZWYgdGVzdF9jX2NvbnRleHRfdGVtcGxhdGVzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgQy5CYXNpY0NvbnRleHQuX3RyYXBzLAorICAgICAgICAgICAgQy5EZWNJRUVFSW52YWxpZE9wZXJhdGlvbnxDLkRlY0RpdmlzaW9uQnlaZXJvfEMuRGVjT3ZlcmZsb3d8CisgICAgICAgICAgICBDLkRlY1VuZGVyZmxvd3xDLkRlY0NsYW1wZWQKKyAgICAgICAgKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgQy5EZWZhdWx0Q29udGV4dC5fdHJhcHMsCisgICAgICAgICAgICBDLkRlY0lFRUVJbnZhbGlkT3BlcmF0aW9ufEMuRGVjRGl2aXNpb25CeVplcm98Qy5EZWNPdmVyZmxvdworICAgICAgICApCiAKLSAgICBkZWYgdGVzdF9sb2dpY2FsX2FuZChzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5sb2dpY2FsX2FuZChEZWNpbWFsKDEpLCBEZWNpbWFsKDEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9naWNhbF9hbmQoMSwgMSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5sb2dpY2FsX2FuZChEZWNpbWFsKDEpLCAxKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmxvZ2ljYWxfYW5kKDEsIERlY2ltYWwoMSkpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG9naWNhbF9hbmQsICcxJywgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmxvZ2ljYWxfYW5kLCAxLCAnMScpCisgICAgQHJlcXVpcmVzX2V4dHJhX2Z1bmN0aW9uYWxpdHkKKyAgICBkZWYgdGVzdF9jX3NpZ25hbF9kaWN0KHNlbGYpOgogCi0gICAgZGVmIHRlc3RfbG9naWNhbF9pbnZlcnQoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMubG9naWNhbF9pbnZlcnQoRGVjaW1hbCgxMDAwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmxvZ2ljYWxfaW52ZXJ0KDEwMDApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG9naWNhbF9pbnZlcnQsICcxMDAwJykKKyAgICAgICAgIyBTaWduYWxEaWN0IGNvdmVyYWdlCisgICAgICAgIENvbnRleHQgPSBDLkNvbnRleHQKKyAgICAgICAgRGVmYXVsdENvbnRleHQgPSBDLkRlZmF1bHRDb250ZXh0CiAKLSAgICBkZWYgdGVzdF9sb2dpY2FsX29yKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLmxvZ2ljYWxfb3IoRGVjaW1hbCgxKSwgRGVjaW1hbCgxKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmxvZ2ljYWxfb3IoMSwgMSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5sb2dpY2FsX29yKERlY2ltYWwoMSksIDEpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9naWNhbF9vcigxLCBEZWNpbWFsKDEpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmxvZ2ljYWxfb3IsICcxJywgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmxvZ2ljYWxfb3IsIDEsICcxJykKKyAgICAgICAgSW52YWxpZE9wZXJhdGlvbiA9IEMuSW52YWxpZE9wZXJhdGlvbgorICAgICAgICBEaXZpc2lvbkJ5WmVybyA9IEMuRGl2aXNpb25CeVplcm8KKyAgICAgICAgT3ZlcmZsb3cgPSBDLk92ZXJmbG93CisgICAgICAgIFN1Ym5vcm1hbCA9IEMuU3Vibm9ybWFsCisgICAgICAgIFVuZGVyZmxvdyA9IEMuVW5kZXJmbG93CisgICAgICAgIFJvdW5kZWQgPSBDLlJvdW5kZWQKKyAgICAgICAgSW5leGFjdCA9IEMuSW5leGFjdAorICAgICAgICBDbGFtcGVkID0gQy5DbGFtcGVkCiAKLSAgICBkZWYgdGVzdF9sb2dpY2FsX3hvcihzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5sb2dpY2FsX3hvcihEZWNpbWFsKDEpLCBEZWNpbWFsKDEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubG9naWNhbF94b3IoMSwgMSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5sb2dpY2FsX3hvcihEZWNpbWFsKDEpLCAxKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmxvZ2ljYWxfeG9yKDEsIERlY2ltYWwoMSkpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubG9naWNhbF94b3IsICcxJywgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLmxvZ2ljYWxfeG9yLCAxLCAnMScpCisgICAgICAgIERlY0NsYW1wZWQgPSBDLkRlY0NsYW1wZWQKKyAgICAgICAgRGVjSW52YWxpZE9wZXJhdGlvbiA9IEMuRGVjSW52YWxpZE9wZXJhdGlvbgorICAgICAgICBEZWNJRUVFSW52YWxpZE9wZXJhdGlvbiA9IEMuRGVjSUVFRUludmFsaWRPcGVyYXRpb24KIAotICAgIGRlZiB0ZXN0X21heChzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5tYXgoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1heCgxLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1heChEZWNpbWFsKDEpLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1heCgxLCBEZWNpbWFsKDIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm1heCwgJzEnLCAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubWF4LCAxLCAnMicpCisgICAgICAgIGRlZiBhc3NlcnRJc0V4Y2x1c2l2ZWx5U2V0KHNpZ25hbCwgc2lnbmFsX2RpY3QpOgorICAgICAgICAgICAgZm9yIHNpZyBpbiBzaWduYWxfZGljdDoKKyAgICAgICAgICAgICAgICBpZiBzaWcgPT0gc2lnbmFsOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2lnbmFsX2RpY3Rbc2lnXSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNpZ25hbF9kaWN0W3NpZ10pCiAKLSAgICBkZWYgdGVzdF9tYXhfbWFnKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLm1heF9tYWcoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1heF9tYWcoMSwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5tYXhfbWFnKERlY2ltYWwoMSksIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubWF4X21hZygxLCBEZWNpbWFsKDIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm1heF9tYWcsICcxJywgMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm1heF9tYWcsIDEsICcyJykKKyAgICAgICAgYyA9IERlZmF1bHRDb250ZXh0LmNvcHkoKQorCisgICAgICAgICMgU2lnbmFsIGRpY3QgbWV0aG9kcworICAgICAgICBzZWxmLmFzc2VydFRydWUoT3ZlcmZsb3cgaW4gYy50cmFwcykKKyAgICAgICAgYy5jbGVhcl90cmFwcygpCisgICAgICAgIGZvciBrIGluIGMudHJhcHMua2V5cygpOgorICAgICAgICAgICAgYy50cmFwc1trXSA9IFRydWUKKyAgICAgICAgZm9yIHYgaW4gYy50cmFwcy52YWx1ZXMoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh2KQorICAgICAgICBjLmNsZWFyX3RyYXBzKCkKKyAgICAgICAgZm9yIGssIHYgaW4gYy50cmFwcy5pdGVtcygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh2KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYy5mbGFncy5nZXQoT3ZlcmZsb3cpKQorICAgICAgICBzZWxmLmFzc2VydElzKGMuZmxhZ3MuZ2V0KCJ4IiksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5mbGFncy5nZXQoIngiLCAieSIpLCAieSIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5mbGFncy5nZXQsICJ4IiwgInkiLCAieiIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYy5mbGFncyksIGxlbihjLnRyYXBzKSkKKyAgICAgICAgcyA9IHN5cy5nZXRzaXplb2YoYy5mbGFncykKKyAgICAgICAgcyA9IHN5cy5nZXRzaXplb2YoYy50cmFwcykKKyAgICAgICAgcyA9IGMuZmxhZ3MuX19yZXByX18oKQorCisgICAgICAgICMgU2V0IGZsYWdzL3RyYXBzLgorICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgYy5fZmxhZ3MgPSBEZWNDbGFtcGVkCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjLmZsYWdzW0NsYW1wZWRdKQorCisgICAgICAgIGMuY2xlYXJfdHJhcHMoKQorICAgICAgICBjLl90cmFwcyA9IERlY0ludmFsaWRPcGVyYXRpb24KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMudHJhcHNbSW52YWxpZE9wZXJhdGlvbl0pCisKKyAgICAgICAgIyBTZXQgZmxhZ3MvdHJhcHMgZnJvbSBkaWN0aW9uYXJ5LgorICAgICAgICBjLmNsZWFyX2ZsYWdzKCkKKyAgICAgICAgZCA9IGMuZmxhZ3MuY29weSgpCisgICAgICAgIGRbRGl2aXNpb25CeVplcm9dID0gVHJ1ZQorICAgICAgICBjLmZsYWdzID0gZAorICAgICAgICBhc3NlcnRJc0V4Y2x1c2l2ZWx5U2V0KERpdmlzaW9uQnlaZXJvLCBjLmZsYWdzKQogCi0gICAgZGVmIHRlc3RfbWluKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLm1pbihEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubWluKDEsIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubWluKERlY2ltYWwoMSksIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubWluKDEsIERlY2ltYWwoMikpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubWluLCAnMScsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5taW4sIDEsICcyJykKKyAgICAgICAgYy5jbGVhcl90cmFwcygpCisgICAgICAgIGQgPSBjLnRyYXBzLmNvcHkoKQorICAgICAgICBkW1VuZGVyZmxvd10gPSBUcnVlCisgICAgICAgIGMudHJhcHMgPSBkCisgICAgICAgIGFzc2VydElzRXhjbHVzaXZlbHlTZXQoVW5kZXJmbG93LCBjLnRyYXBzKQogCi0gICAgZGVmIHRlc3RfbWluX21hZyhzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5taW5fbWFnKERlY2ltYWwoMSksIERlY2ltYWwoMikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5taW5fbWFnKDEsIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubWluX21hZyhEZWNpbWFsKDEpLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1pbl9tYWcoMSwgRGVjaW1hbCgyKSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5taW5fbWFnLCAnMScsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5taW5fbWFnLCAxLCAnMicpCisgICAgICAgICMgUmFuZG9tIGNvbnN0cnVjdG9ycworICAgICAgICBJbnRTaWduYWxzID0geworICAgICAgICAgIENsYW1wZWQ6IEMuRGVjQ2xhbXBlZCwKKyAgICAgICAgICBSb3VuZGVkOiBDLkRlY1JvdW5kZWQsCisgICAgICAgICAgSW5leGFjdDogQy5EZWNJbmV4YWN0LAorICAgICAgICAgIFN1Ym5vcm1hbDogQy5EZWNTdWJub3JtYWwsCisgICAgICAgICAgVW5kZXJmbG93OiBDLkRlY1VuZGVyZmxvdywKKyAgICAgICAgICBPdmVyZmxvdzogQy5EZWNPdmVyZmxvdywKKyAgICAgICAgICBEaXZpc2lvbkJ5WmVybzogQy5EZWNEaXZpc2lvbkJ5WmVybywKKyAgICAgICAgICBJbnZhbGlkT3BlcmF0aW9uOiBDLkRlY0lFRUVJbnZhbGlkT3BlcmF0aW9uCisgICAgICAgIH0KKyAgICAgICAgSW50Q29uZCA9IFsKKyAgICAgICAgICBDLkRlY0RpdmlzaW9uSW1wb3NzaWJsZSwgQy5EZWNEaXZpc2lvblVuZGVmaW5lZCwgQy5EZWNGcHVFcnJvciwKKyAgICAgICAgICBDLkRlY0ludmFsaWRDb250ZXh0LCBDLkRlY0ludmFsaWRPcGVyYXRpb24sIEMuRGVjTWFsbG9jRXJyb3IsCisgICAgICAgICAgQy5EZWNDb252ZXJzaW9uU3ludGF4LAorICAgICAgICBdCiAKLSAgICBkZWYgdGVzdF9taW51cyhzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5taW51cyhEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm1pbnVzKDEwKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm1pbnVzLCAnMTAnKQorICAgICAgICBsaW0gPSBsZW4oT3JkZXJlZFNpZ25hbHNbQ10pCisgICAgICAgIGZvciByIGluIHJhbmdlKGxpbSk6CisgICAgICAgICAgICBmb3IgdCBpbiByYW5nZShsaW0pOgorICAgICAgICAgICAgICAgIGZvciByb3VuZCBpbiBSb3VuZGluZ01vZGVzW0NdOgorICAgICAgICAgICAgICAgICAgICBmbGFncyA9IHJhbmRvbS5zYW1wbGUoT3JkZXJlZFNpZ25hbHNbQ10sIHIpCisgICAgICAgICAgICAgICAgICAgIHRyYXBzID0gcmFuZG9tLnNhbXBsZShPcmRlcmVkU2lnbmFsc1tDXSwgdCkKKyAgICAgICAgICAgICAgICAgICAgcHJlYyA9IHJhbmRvbS5yYW5kcmFuZ2UoMSwgMTAwMDApCisgICAgICAgICAgICAgICAgICAgIGVtaW4gPSByYW5kb20ucmFuZHJhbmdlKC0xMDAwMCwgMCkKKyAgICAgICAgICAgICAgICAgICAgZW1heCA9IHJhbmRvbS5yYW5kcmFuZ2UoMCwgMTAwMDApCisgICAgICAgICAgICAgICAgICAgIGNsYW1wID0gcmFuZG9tLnJhbmRyYW5nZSgwLCAyKQorICAgICAgICAgICAgICAgICAgICBjYXBzID0gcmFuZG9tLnJhbmRyYW5nZSgwLCAyKQorICAgICAgICAgICAgICAgICAgICBjciA9IHJhbmRvbS5yYW5kcmFuZ2UoMCwgMikKKyAgICAgICAgICAgICAgICAgICAgYyA9IENvbnRleHQocHJlYz1wcmVjLCByb3VuZGluZz1yb3VuZCwgRW1pbj1lbWluLCBFbWF4PWVtYXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcGl0YWxzPWNhcHMsIGNsYW1wPWNsYW1wLCBmbGFncz1saXN0KGZsYWdzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhcHM9bGlzdCh0cmFwcykpCiAKLSAgICBkZWYgdGVzdF9tdWx0aXBseShzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5tdWx0aXBseShEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubXVsdGlwbHkoMSwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5tdWx0aXBseShEZWNpbWFsKDEpLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm11bHRpcGx5KDEsIERlY2ltYWwoMikpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubXVsdGlwbHksICcxJywgMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm11bHRpcGx5LCAxLCAnMicpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5wcmVjLCBwcmVjKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucm91bmRpbmcsIHJvdW5kKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuRW1pbiwgZW1pbikKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLkVtYXgsIGVtYXgpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5jYXBpdGFscywgY2FwcykKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmNsYW1wLCBjbGFtcCkKIAotICAgIGRlZiB0ZXN0X25leHRfbWludXMoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMubmV4dF9taW51cyhEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm5leHRfbWludXMoMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubmV4dF9taW51cywgJzEwJykKKyAgICAgICAgICAgICAgICAgICAgZiA9IDAKKyAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gZmxhZ3M6CisgICAgICAgICAgICAgICAgICAgICAgICBmIHw9IEludFNpZ25hbHNbeF0KKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLl9mbGFncywgZikKIAotICAgIGRlZiB0ZXN0X25leHRfcGx1cyhzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5uZXh0X3BsdXMoRGVjaW1hbCgxMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5uZXh0X3BsdXMoMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMubmV4dF9wbHVzLCAnMTAnKQorICAgICAgICAgICAgICAgICAgICBmID0gMAorICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiB0cmFwczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGYgfD0gSW50U2lnbmFsc1t4XQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuX3RyYXBzLCBmKQogCi0gICAgZGVmIHRlc3RfbmV4dF90b3dhcmQoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMubmV4dF90b3dhcmQoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm5leHRfdG93YXJkKDEsIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubmV4dF90b3dhcmQoRGVjaW1hbCgxKSwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5uZXh0X3Rvd2FyZCgxLCBEZWNpbWFsKDIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm5leHRfdG93YXJkLCAnMScsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5uZXh0X3Rvd2FyZCwgMSwgJzInKQorICAgICAgICBmb3IgY29uZCBpbiBJbnRDb25kOgorICAgICAgICAgICAgYy5fZmxhZ3MgPSBjb25kCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYy5fZmxhZ3MmRGVjSUVFRUludmFsaWRPcGVyYXRpb24pCisgICAgICAgICAgICBhc3NlcnRJc0V4Y2x1c2l2ZWx5U2V0KEludmFsaWRPcGVyYXRpb24sIGMuZmxhZ3MpCiAKLSAgICBkZWYgdGVzdF9ub3JtYWxpemUoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMubm9ybWFsaXplKERlY2ltYWwoMTApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMubm9ybWFsaXplKDEwKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLm5vcm1hbGl6ZSwgJzEwJykKKyAgICAgICAgZm9yIGNvbmQgaW4gSW50Q29uZDoKKyAgICAgICAgICAgIGMuX3RyYXBzID0gY29uZAorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMuX3RyYXBzJkRlY0lFRUVJbnZhbGlkT3BlcmF0aW9uKQorICAgICAgICAgICAgYXNzZXJ0SXNFeGNsdXNpdmVseVNldChJbnZhbGlkT3BlcmF0aW9uLCBjLnRyYXBzKQogCi0gICAgZGVmIHRlc3RfbnVtYmVyX2NsYXNzKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5udW1iZXJfY2xhc3MoMTIzKSwgYy5udW1iZXJfY2xhc3MoRGVjaW1hbCgxMjMpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLm51bWJlcl9jbGFzcygwKSwgYy5udW1iZXJfY2xhc3MoRGVjaW1hbCgwKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5udW1iZXJfY2xhc3MoLTQ1KSwgYy5udW1iZXJfY2xhc3MoRGVjaW1hbCgtNDUpKSkKKyAgICBkZWYgdGVzdF9pbnZhbGlkX292ZXJyaWRlKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gQy5EZWNpbWFsCiAKLSAgICBkZWYgdGVzdF9wb3dlcihzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5wb3dlcihEZWNpbWFsKDEpLCBEZWNpbWFsKDQpLCBEZWNpbWFsKDIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucG93ZXIoMSwgNCwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5wb3dlcihEZWNpbWFsKDEpLCA0LCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnBvd2VyKDEsIERlY2ltYWwoNCksIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucG93ZXIoMSwgNCwgRGVjaW1hbCgyKSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5wb3dlcihEZWNpbWFsKDEpLCBEZWNpbWFsKDQpLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnBvd2VyLCAnMScsIDQsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5wb3dlciwgMSwgJzQnLCAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMucG93ZXIsIDEsIDQsICcyJykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZnJvbSBsb2NhbGUgaW1wb3J0IENIQVJfTUFYCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIHJldHVybgogCi0gICAgZGVmIHRlc3RfcGx1cyhzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5wbHVzKERlY2ltYWwoMTApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucGx1cygxMCksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5wbHVzLCAnMTAnKQorICAgICAgICBkZWYgbWFrZV9ncm91cGluZyhsc3QpOgorICAgICAgICAgICAgcmV0dXJuICcnLmpvaW4oW2Nocih4KSBmb3IgeCBpbiBsc3RdKQogCi0gICAgZGVmIHRlc3RfcXVhbnRpemUoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMucXVhbnRpemUoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnF1YW50aXplKDEsIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucXVhbnRpemUoRGVjaW1hbCgxKSwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5xdWFudGl6ZSgxLCBEZWNpbWFsKDIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnF1YW50aXplLCAnMScsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5xdWFudGl6ZSwgMSwgJzInKQorICAgICAgICBkZWYgZ2V0X2ZtdCh4LCBvdmVycmlkZT1Ob25lLCBmbXQ9J24nKToKKyAgICAgICAgICAgIHJldHVybiBEZWNpbWFsKHgpLl9fZm9ybWF0X18oZm10LCBvdmVycmlkZSkKIAotICAgIGRlZiB0ZXN0X3JlbWFpbmRlcihzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5yZW1haW5kZXIoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJlbWFpbmRlcigxLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJlbWFpbmRlcihEZWNpbWFsKDEpLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJlbWFpbmRlcigxLCBEZWNpbWFsKDIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnJlbWFpbmRlciwgJzEnLCAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMucmVtYWluZGVyLCAxLCAnMicpCisgICAgICAgIGludmFsaWRfZ3JvdXBpbmcgPSB7CisgICAgICAgICAgICAnZGVjaW1hbF9wb2ludCcgOiAnLCcsCisgICAgICAgICAgICAnZ3JvdXBpbmcnIDogbWFrZV9ncm91cGluZyhbMjU1LCAyNTUsIDBdKSwKKyAgICAgICAgICAgICd0aG91c2FuZHNfc2VwJyA6ICcsJworICAgICAgICB9CisgICAgICAgIGludmFsaWRfZG90ID0geworICAgICAgICAgICAgJ2RlY2ltYWxfcG9pbnQnIDogJ3h4eHh4JywKKyAgICAgICAgICAgICdncm91cGluZycgOiBtYWtlX2dyb3VwaW5nKFszLCAzLCAwXSksCisgICAgICAgICAgICAndGhvdXNhbmRzX3NlcCcgOiAnLCcKKyAgICAgICAgfQorICAgICAgICBpbnZhbGlkX3NlcCA9IHsKKyAgICAgICAgICAgICdkZWNpbWFsX3BvaW50JyA6ICcuJywKKyAgICAgICAgICAgICdncm91cGluZycgOiBtYWtlX2dyb3VwaW5nKFszLCAzLCAwXSksCisgICAgICAgICAgICAndGhvdXNhbmRzX3NlcCcgOiAneXl5eXknCisgICAgICAgIH0KIAotICAgIGRlZiB0ZXN0X3JlbWFpbmRlcl9uZWFyKHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLnJlbWFpbmRlcl9uZWFyKERlY2ltYWwoMSksIERlY2ltYWwoMikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5yZW1haW5kZXJfbmVhcigxLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJlbWFpbmRlcl9uZWFyKERlY2ltYWwoMSksIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMucmVtYWluZGVyX25lYXIoMSwgRGVjaW1hbCgyKSksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5yZW1haW5kZXJfbmVhciwgJzEnLCAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMucmVtYWluZGVyX25lYXIsIDEsICcyJykKKyAgICAgICAgaWYgQ0hBUl9NQVggPT0gMTI3OiAjIG5lZ2F0aXZlIGdyb3VwaW5nIGluIG92ZXJyaWRlCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBnZXRfZm10LCAxMjM0NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRfZ3JvdXBpbmcsICdnJykKIAotICAgIGRlZiB0ZXN0X3JvdGF0ZShzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5yb3RhdGUoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJvdGF0ZSgxLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJvdGF0ZShEZWNpbWFsKDEpLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnJvdGF0ZSgxLCBEZWNpbWFsKDIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnJvdGF0ZSwgJzEnLCAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMucm90YXRlLCAxLCAnMicpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGdldF9mbXQsIDEyMzQ1LCBpbnZhbGlkX2RvdCwgJ2cnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBnZXRfZm10LCAxMjM0NSwgaW52YWxpZF9zZXAsICdnJykKIAotICAgIGRlZiB0ZXN0X3NxcnQoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMuc3FydChEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNxcnQoMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuc3FydCwgJzEwJykKKyAgICBkZWYgdGVzdF9leGFjdF9jb252ZXJzaW9uKHNlbGYpOgorICAgICAgICBEZWNpbWFsID0gQy5EZWNpbWFsCisgICAgICAgIGxvY2FsY29udGV4dCA9IEMubG9jYWxjb250ZXh0CisgICAgICAgIEludmFsaWRPcGVyYXRpb24gPSBDLkludmFsaWRPcGVyYXRpb24KIAotICAgIGRlZiB0ZXN0X3NhbWVfcXVhbnR1bShzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5zYW1lX3F1YW50dW0oRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNhbWVfcXVhbnR1bSgxLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNhbWVfcXVhbnR1bShEZWNpbWFsKDEpLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNhbWVfcXVhbnR1bSgxLCBEZWNpbWFsKDIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnNhbWVfcXVhbnR1bSwgJzEnLCAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuc2FtZV9xdWFudHVtLCAxLCAnMicpCisgICAgICAgIHdpdGggbG9jYWxjb250ZXh0KCkgYXMgYzoKIAotICAgIGRlZiB0ZXN0X3NjYWxlYihzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5zY2FsZWIoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNjYWxlYigxLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNjYWxlYihEZWNpbWFsKDEpLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNjYWxlYigxLCBEZWNpbWFsKDIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnNjYWxlYiwgJzEnLCAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuc2NhbGViLCAxLCAnMicpCisgICAgICAgICAgICBjLnRyYXBzW0ludmFsaWRPcGVyYXRpb25dID0gVHJ1ZQogCi0gICAgZGVmIHRlc3Rfc2hpZnQoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMuc2hpZnQoRGVjaW1hbCgxKSwgRGVjaW1hbCgyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnNoaWZ0KDEsIDIpLCBkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuc2hpZnQoRGVjaW1hbCgxKSwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5zaGlmdCgxLCBEZWNpbWFsKDIpKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnNoaWZ0LCAnMScsIDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy5zaGlmdCwgMSwgJzInKQorICAgICAgICAgICAgIyBDbGFtcGVkCisgICAgICAgICAgICB4ID0gIjBlJWQiICUgc3lzLm1heHNpemUKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sIERlY2ltYWwsIHgpCiAKLSAgICBkZWYgdGVzdF9zdWJ0cmFjdChzZWxmKToKLSAgICAgICAgYyA9IENvbnRleHQoKQotICAgICAgICBkID0gYy5zdWJ0cmFjdChEZWNpbWFsKDEpLCBEZWNpbWFsKDIpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMuc3VidHJhY3QoMSwgMiksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy5zdWJ0cmFjdChEZWNpbWFsKDEpLCAyKSwgZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnN1YnRyYWN0KDEsIERlY2ltYWwoMikpLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMuc3VidHJhY3QsICcxJywgMikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjLnN1YnRyYWN0LCAxLCAnMicpCisgICAgICAgICAgICB4ID0gIjBlJWQiICUgKC1zeXMubWF4c2l6ZS0xKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgRGVjaW1hbCwgeCkKIAotICAgIGRlZiB0ZXN0X3RvX2VuZ19zdHJpbmcoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMudG9fZW5nX3N0cmluZyhEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnRvX2VuZ19zdHJpbmcoMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMudG9fZW5nX3N0cmluZywgJzEwJykKKyAgICAgICAgICAgICMgT3ZlcmZsb3cKKyAgICAgICAgICAgIHggPSAiMWUlZCIgJSBzeXMubWF4c2l6ZQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgRGVjaW1hbCwgeCkKIAotICAgIGRlZiB0ZXN0X3RvX3NjaV9zdHJpbmcoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMudG9fc2NpX3N0cmluZyhEZWNpbWFsKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLnRvX3NjaV9zdHJpbmcoMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMudG9fc2NpX3N0cmluZywgJzEwJykKKyAgICAgICAgICAgICMgVW5kZXJmbG93CisgICAgICAgICAgICB4ID0gIjFlJWQiICUgKC1zeXMubWF4c2l6ZS0xKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgRGVjaW1hbCwgeCkKIAotICAgIGRlZiB0ZXN0X3RvX2ludGVncmFsX2V4YWN0KHNlbGYpOgotICAgICAgICBjID0gQ29udGV4dCgpCi0gICAgICAgIGQgPSBjLnRvX2ludGVncmFsX2V4YWN0KERlY2ltYWwoMTApKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGMudG9faW50ZWdyYWxfZXhhY3QoMTApLCBkKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGMudG9faW50ZWdyYWxfZXhhY3QsICcxMCcpCisgICAgZGVmIHRlc3RfZnJvbV90dXBsZShzZWxmKToKKyAgICAgICAgRGVjaW1hbCA9IEMuRGVjaW1hbAorICAgICAgICBsb2NhbGNvbnRleHQgPSBDLmxvY2FsY29udGV4dAorICAgICAgICBJbnZhbGlkT3BlcmF0aW9uID0gQy5JbnZhbGlkT3BlcmF0aW9uCisgICAgICAgIE92ZXJmbG93ID0gQy5PdmVyZmxvdworICAgICAgICBVbmRlcmZsb3cgPSBDLlVuZGVyZmxvdwogCi0gICAgZGVmIHRlc3RfdG9faW50ZWdyYWxfdmFsdWUoc2VsZik6Ci0gICAgICAgIGMgPSBDb250ZXh0KCkKLSAgICAgICAgZCA9IGMudG9faW50ZWdyYWxfdmFsdWUoRGVjaW1hbCgxMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYy50b19pbnRlZ3JhbF92YWx1ZSgxMCksIGQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYy50b19pbnRlZ3JhbF92YWx1ZSwgJzEwJykKKyAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjOgogCi1jbGFzcyBXaXRoU3RhdGVtZW50VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIyBDYW4ndCBkbyB0aGVzZSBhcyBkb2NzdHJpbmdzIHVudGlsIFB5dGhvbiAyLjYKLSAgICAjIGFzIGRvY3Rlc3QgY2FuJ3QgaGFuZGxlIF9fZnV0dXJlX18gc3RhdGVtZW50cworICAgICAgICAgICAgYy50cmFwc1tJbnZhbGlkT3BlcmF0aW9uXSA9IFRydWUKKyAgICAgICAgICAgIGMudHJhcHNbT3ZlcmZsb3ddID0gVHJ1ZQorICAgICAgICAgICAgYy50cmFwc1tVbmRlcmZsb3ddID0gVHJ1ZQogCi0gICAgZGVmIHRlc3RfbG9jYWxjb250ZXh0KHNlbGYpOgotICAgICAgICAjIFVzZSBhIGNvcHkgb2YgdGhlIGN1cnJlbnQgY29udGV4dCBpbiB0aGUgYmxvY2sKLSAgICAgICAgb3JpZ19jdHggPSBnZXRjb250ZXh0KCkKLSAgICAgICAgd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBlbnRlcl9jdHg6Ci0gICAgICAgICAgICBzZXRfY3R4ID0gZ2V0Y29udGV4dCgpCi0gICAgICAgIGZpbmFsX2N0eCA9IGdldGNvbnRleHQoKQotICAgICAgICBzZWxmLmFzc2VydElzKG9yaWdfY3R4LCBmaW5hbF9jdHgsICdkaWQgbm90IHJlc3RvcmUgY29udGV4dCBjb3JyZWN0bHknKQotICAgICAgICBzZWxmLmFzc2VydElzTm90KG9yaWdfY3R4LCBzZXRfY3R4LCAnZGlkIG5vdCBjb3B5IHRoZSBjb250ZXh0JykKLSAgICAgICAgc2VsZi5hc3NlcnRJcyhzZXRfY3R4LCBlbnRlcl9jdHgsICdfX2VudGVyX18gcmV0dXJuZWQgd3JvbmcgY29udGV4dCcpCisgICAgICAgICAgICAjIFNTSVpFX01BWAorICAgICAgICAgICAgeCA9ICgxLCAoKSwgc3lzLm1heHNpemUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjLmNyZWF0ZV9kZWNpbWFsKHgpKSwgJy0wRSs5OTk5OTknKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZE9wZXJhdGlvbiwgRGVjaW1hbCwgeCkKIAotICAgIGRlZiB0ZXN0X2xvY2FsY29udGV4dGFyZyhzZWxmKToKLSAgICAgICAgIyBVc2UgYSBjb3B5IG9mIHRoZSBzdXBwbGllZCBjb250ZXh0IGluIHRoZSBibG9jawotICAgICAgICBvcmlnX2N0eCA9IGdldGNvbnRleHQoKQotICAgICAgICBuZXdfY3R4ID0gQ29udGV4dChwcmVjPTQyKQotICAgICAgICB3aXRoIGxvY2FsY29udGV4dChuZXdfY3R4KSBhcyBlbnRlcl9jdHg6Ci0gICAgICAgICAgICBzZXRfY3R4ID0gZ2V0Y29udGV4dCgpCi0gICAgICAgIGZpbmFsX2N0eCA9IGdldGNvbnRleHQoKQotICAgICAgICBzZWxmLmFzc2VydElzKG9yaWdfY3R4LCBmaW5hbF9jdHgsICdkaWQgbm90IHJlc3RvcmUgY29udGV4dCBjb3JyZWN0bHknKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldF9jdHgucHJlYywgbmV3X2N0eC5wcmVjLCAnZGlkIG5vdCBzZXQgY29ycmVjdCBjb250ZXh0JykKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vdChuZXdfY3R4LCBzZXRfY3R4LCAnZGlkIG5vdCBjb3B5IHRoZSBjb250ZXh0JykKLSAgICAgICAgc2VsZi5hc3NlcnRJcyhzZXRfY3R4LCBlbnRlcl9jdHgsICdfX2VudGVyX18gcmV0dXJuZWQgd3JvbmcgY29udGV4dCcpCisgICAgICAgICAgICB4ID0gKDEsICgwLCAxLCAyKSwgc3lzLm1heHNpemUpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvdywgYy5jcmVhdGVfZGVjaW1hbCwgeCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sIERlY2ltYWwsIHgpCiAKLWNsYXNzIENvbnRleHRGbGFncyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIHRlc3RfZmxhZ3NfaXJyZWxldmFudChzZWxmKToKLSAgICAgICAgIyBjaGVjayB0aGF0IHRoZSByZXN1bHQgKG51bWVyaWMgcmVzdWx0ICsgZmxhZ3MgcmFpc2VkKSBvZiBhbgotICAgICAgICAjIGFyaXRobWV0aWMgb3BlcmF0aW9uIGRvZXNuJ3QgZGVwZW5kIG9uIHRoZSBjdXJyZW50IGZsYWdzCisgICAgICAgICAgICAjIFNTSVpFX01JTgorICAgICAgICAgICAgeCA9ICgxLCAoKSwgLXN5cy5tYXhzaXplLTEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjLmNyZWF0ZV9kZWNpbWFsKHgpKSwgJy0wRS0xMDAwMDI2JykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEludmFsaWRPcGVyYXRpb24sIERlY2ltYWwsIHgpCiAKLSAgICAgICAgY29udGV4dCA9IENvbnRleHQocHJlYz05LCBFbWluID0gLTk5OTk5OTk5OSwgRW1heCA9IDk5OTk5OTk5OSwKLSAgICAgICAgICAgICAgICAgICAgcm91bmRpbmc9Uk9VTkRfSEFMRl9FVkVOLCB0cmFwcz1bXSwgZmxhZ3M9W10pCisgICAgICAgICAgICB4ID0gKDEsICgwLCAxLCAyKSwgLXN5cy5tYXhzaXplLTEpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmRlcmZsb3csIGMuY3JlYXRlX2RlY2ltYWwsIHgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJbnZhbGlkT3BlcmF0aW9uLCBEZWNpbWFsLCB4KQogCi0gICAgICAgICMgb3BlcmF0aW9ucyB0aGF0IHJhaXNlIHZhcmlvdXMgZmxhZ3MsIGluIHRoZSBmb3JtIChmdW5jdGlvbiwgYXJnbGlzdCkKLSAgICAgICAgb3BlcmF0aW9ucyA9IFsKLSAgICAgICAgICAgIChjb250ZXh0Ll9hcHBseSwgW0RlY2ltYWwoIjEwMEUtMTAwMDAwMDAwOSIpXSksCi0gICAgICAgICAgICAoY29udGV4dC5zcXJ0LCBbRGVjaW1hbCgyKV0pLAotICAgICAgICAgICAgKGNvbnRleHQuYWRkLCBbRGVjaW1hbCgiMS4yMzQ1Njc4OSIpLCBEZWNpbWFsKCI5Ljg3NjU0MzIxIildKSwKLSAgICAgICAgICAgIChjb250ZXh0Lm11bHRpcGx5LCBbRGVjaW1hbCgiMS4yMzQ1Njc4OSIpLCBEZWNpbWFsKCI5Ljg3NjU0MzIxIildKSwKLSAgICAgICAgICAgIChjb250ZXh0LnN1YnRyYWN0LCBbRGVjaW1hbCgiMS4yMzQ1Njc4OSIpLCBEZWNpbWFsKCI5Ljg3NjU0MzIxIildKSwKLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgICMgT3ZlcmZsb3dFcnJvcgorICAgICAgICAgICAgeCA9ICgxLCAoKSwgc3lzLm1heHNpemUrMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIGMuY3JlYXRlX2RlY2ltYWwsIHgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBEZWNpbWFsLCB4KQogCi0gICAgICAgICMgdHJ5IHZhcmlvdXMgZmxhZ3MgaW5kaXZpZHVhbGx5LCB0aGVuIGEgd2hvbGUgbG90IGF0IG9uY2UKLSAgICAgICAgZmxhZ3NldHMgPSBbW0luZXhhY3RdLCBbUm91bmRlZF0sIFtVbmRlcmZsb3ddLCBbQ2xhbXBlZF0sIFtTdWJub3JtYWxdLAotICAgICAgICAgICAgICAgICAgICBbSW5leGFjdCwgUm91bmRlZCwgVW5kZXJmbG93LCBDbGFtcGVkLCBTdWJub3JtYWxdXQorICAgICAgICAgICAgeCA9ICgxLCAoKSwgLXN5cy5tYXhzaXplLTIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBjLmNyZWF0ZV9kZWNpbWFsLCB4KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgRGVjaW1hbCwgeCkKIAotICAgICAgICBmb3IgZm4sIGFyZ3MgaW4gb3BlcmF0aW9uczoKLSAgICAgICAgICAgICMgZmluZCBhbnN3ZXIgYW5kIGZsYWdzIHJhaXNlZCB1c2luZyBhIGNsZWFuIGNvbnRleHQKLSAgICAgICAgICAgIGNvbnRleHQuY2xlYXJfZmxhZ3MoKQotICAgICAgICAgICAgYW5zID0gZm4oKmFyZ3MpCi0gICAgICAgICAgICBmbGFncyA9IFtrIGZvciBrLCB2IGluIGNvbnRleHQuZmxhZ3MuaXRlbXMoKSBpZiB2XQorICAgICAgICAgICAgIyBTcGVjaWFscworICAgICAgICAgICAgeCA9ICgxLCAoKSwgIk4iKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoRGVjaW1hbCh4KSksICctc05hTicpCisgICAgICAgICAgICB4ID0gKDEsICgwLCksICJOIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKERlY2ltYWwoeCkpLCAnLXNOYU4nKQorICAgICAgICAgICAgeCA9ICgxLCAoMCwgMSksICJOIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKERlY2ltYWwoeCkpLCAnLXNOYU4xJykKIAotICAgICAgICAgICAgZm9yIGV4dHJhX2ZsYWdzIGluIGZsYWdzZXRzOgotICAgICAgICAgICAgICAgICMgc2V0IGZsYWdzLCBiZWZvcmUgY2FsbGluZyBvcGVyYXRpb24KLSAgICAgICAgICAgICAgICBjb250ZXh0LmNsZWFyX2ZsYWdzKCkKLSAgICAgICAgICAgICAgICBmb3IgZmxhZyBpbiBleHRyYV9mbGFnczoKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC5fcmFpc2VfZXJyb3IoZmxhZykKLSAgICAgICAgICAgICAgICBuZXdfYW5zID0gZm4oKmFyZ3MpCiAKLSAgICAgICAgICAgICAgICAjIGZsYWdzIHRoYXQgd2UgZXhwZWN0IHRvIGJlIHNldCBhZnRlciB0aGUgb3BlcmF0aW9uCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfZmxhZ3MgPSBsaXN0KGZsYWdzKQotICAgICAgICAgICAgICAgIGZvciBmbGFnIGluIGV4dHJhX2ZsYWdzOgotICAgICAgICAgICAgICAgICAgICBpZiBmbGFnIG5vdCBpbiBleHBlY3RlZF9mbGFnczoKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX2ZsYWdzLmFwcGVuZChmbGFnKQotICAgICAgICAgICAgICAgIGV4cGVjdGVkX2ZsYWdzLnNvcnQoa2V5PWlkKQorYWxsX3Rlc3RzID0gWworICBDRXhwbGljaXRDb25zdHJ1Y3Rpb25UZXN0LCBQeUV4cGxpY2l0Q29uc3RydWN0aW9uVGVzdCwKKyAgQ0ltcGxpY2l0Q29uc3RydWN0aW9uVGVzdCwgUHlJbXBsaWNpdENvbnN0cnVjdGlvblRlc3QsCisgIENGb3JtYXRUZXN0LCAgICAgICAgICAgICAgIFB5Rm9ybWF0VGVzdCwKKyAgQ0FyaXRobWV0aWNPcGVyYXRvcnNUZXN0LCAgUHlBcml0aG1ldGljT3BlcmF0b3JzVGVzdCwKKyAgQ1RocmVhZGluZ1Rlc3QsICAgICAgICAgICAgUHlUaHJlYWRpbmdUZXN0LAorICBDVXNhYmlsaXR5VGVzdCwgICAgICAgICAgICBQeVVzYWJpbGl0eVRlc3QsCisgIENQeXRob25BUEl0ZXN0cywgICAgICAgICAgIFB5UHl0aG9uQVBJdGVzdHMsCisgIENDb250ZXh0QVBJdGVzdHMsICAgICAgICAgIFB5Q29udGV4dEFQSXRlc3RzLAorICBDQ29udGV4dFdpdGhTdGF0ZW1lbnQsICAgICBQeUNvbnRleHRXaXRoU3RhdGVtZW50LAorICBDQ29udGV4dEZsYWdzLCAgICAgICAgICAgICBQeUNvbnRleHRGbGFncywKKyAgQ1NwZWNpYWxDb250ZXh0cywgICAgICAgICAgUHlTcGVjaWFsQ29udGV4dHMsCisgIENDb250ZXh0SW5wdXRWYWxpZGF0aW9uLCAgIFB5Q29udGV4dElucHV0VmFsaWRhdGlvbiwKKyAgQ0NvbnRleHRTdWJjbGFzc2luZywgICAgICAgUHlDb250ZXh0U3ViY2xhc3NpbmcsCisgIENDb3ZlcmFnZSwgICAgICAgICAgICAgICAgIFB5Q292ZXJhZ2UsCisgIENGdW5jdGlvbmFsaXR5LCAgICAgICAgICAgIFB5RnVuY3Rpb25hbGl0eSwKKyAgQ1doaXRlYm94LCAgICAgICAgICAgICAgICAgUHlXaGl0ZWJveCwKKyAgQ0lCTVRlc3RDYXNlcywgICAgICAgICAgICAgUHlJQk1UZXN0Q2FzZXMsCitdCiAKLSAgICAgICAgICAgICAgICAjIGZsYWdzIHdlIGFjdHVhbGx5IGdvdAotICAgICAgICAgICAgICAgIG5ld19mbGFncyA9IFtrIGZvciBrLHYgaW4gY29udGV4dC5mbGFncy5pdGVtcygpIGlmIHZdCi0gICAgICAgICAgICAgICAgbmV3X2ZsYWdzLnNvcnQoa2V5PWlkKQorIyBEZWxldGUgQyB0ZXN0cyBpZiBfZGVjaW1hbC5zbyBpcyBub3QgcHJlc2VudC4KK2lmIG5vdCBDOgorICAgIGFsbF90ZXN0cyA9IGFsbF90ZXN0c1sxOjoyXQorZWxzZToKKyAgICBhbGxfdGVzdHMuaW5zZXJ0KDAsIENoZWNrQXR0cmlidXRlcykKIAotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5zLCBuZXdfYW5zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiBwcm9kdWNlcyBkaWZmZXJlbnQgYW5zd2VycyBkZXBlbmRpbmcgb24gZmxhZ3Mgc2V0OiAiICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCAlcywgZ290ICVzLiIgJSAoYW5zLCBuZXdfYW5zKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19mbGFncywgZXhwZWN0ZWRfZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiByYWlzZXMgZGlmZmVyZW50IGZsYWdzIGRlcGVuZGluZyBvbiBmbGFncyBzZXQ6ICIgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCAlcywgZ290ICVzIiAlIChleHBlY3RlZF9mbGFncywgbmV3X2ZsYWdzKSkKIAogZGVmIHRlc3RfbWFpbihhcml0aD1GYWxzZSwgdmVyYm9zZT1Ob25lLCB0b2RvX3Rlc3RzPU5vbmUsIGRlYnVnPU5vbmUpOgogICAgICIiIiBFeGVjdXRlIHRoZSB0ZXN0cy4KQEAgLTIzNjQsMjcgKzUwNjAsMTYgQEAKICAgICBpcyBlbmFibGVkIGluIHJlZ3J0ZXN0LnB5CiAgICAgIiIiCiAKLSAgICBpbml0KCkKKyAgICBpbml0KEMpCisgICAgaW5pdChQKQogICAgIGdsb2JhbCBURVNUX0FMTCwgREVCVUcKICAgICBURVNUX0FMTCA9IGFyaXRoIG9yIGlzX3Jlc291cmNlX2VuYWJsZWQoJ2RlY2ltYWwnKQogICAgIERFQlVHID0gZGVidWcKIAogICAgIGlmIHRvZG9fdGVzdHMgaXMgTm9uZToKLSAgICAgICAgdGVzdF9jbGFzc2VzID0gWwotICAgICAgICAgICAgRGVjaW1hbEV4cGxpY2l0Q29uc3RydWN0aW9uVGVzdCwKLSAgICAgICAgICAgIERlY2ltYWxJbXBsaWNpdENvbnN0cnVjdGlvblRlc3QsCi0gICAgICAgICAgICBEZWNpbWFsQXJpdGhtZXRpY09wZXJhdG9yc1Rlc3QsCi0gICAgICAgICAgICBEZWNpbWFsRm9ybWF0VGVzdCwKLSAgICAgICAgICAgIERlY2ltYWxVc2VPZkNvbnRleHRUZXN0LAotICAgICAgICAgICAgRGVjaW1hbFVzYWJpbGl0eVRlc3QsCi0gICAgICAgICAgICBEZWNpbWFsUHl0aG9uQVBJdGVzdHMsCi0gICAgICAgICAgICBDb250ZXh0QVBJdGVzdHMsCi0gICAgICAgICAgICBEZWNpbWFsVGVzdCwKLSAgICAgICAgICAgIFdpdGhTdGF0ZW1lbnRUZXN0LAotICAgICAgICAgICAgQ29udGV4dEZsYWdzCi0gICAgICAgIF0KKyAgICAgICAgdGVzdF9jbGFzc2VzID0gYWxsX3Rlc3RzCiAgICAgZWxzZToKLSAgICAgICAgdGVzdF9jbGFzc2VzID0gW0RlY2ltYWxUZXN0XQorICAgICAgICB0ZXN0X2NsYXNzZXMgPSBbQ0lCTVRlc3RDYXNlcywgUHlJQk1UZXN0Q2FzZXNdCiAKICAgICAjIER5bmFtaWNhbGx5IGJ1aWxkIGN1c3RvbSB0ZXN0IGRlZmluaXRpb24gZm9yIGVhY2ggZmlsZSBpbiB0aGUgdGVzdAogICAgICMgZGlyZWN0b3J5IGFuZCBhZGQgdGhlIGRlZmluaXRpb25zIHRvIHRoZSBEZWNpbWFsVGVzdCBjbGFzcy4gIFRoaXMKQEAgLTIzOTYsMTcgKzUwODEsMzIgQEAKICAgICAgICAgaWYgdG9kb190ZXN0cyBpcyBub3QgTm9uZSBhbmQgaGVhZCBub3QgaW4gdG9kb190ZXN0czoKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIHRlc3RlciA9IGxhbWJkYSBzZWxmLCBmPWZpbGVuYW1lOiBzZWxmLmV2YWxfZmlsZShkaXJlY3RvcnkgKyBmKQotICAgICAgICBzZXRhdHRyKERlY2ltYWxUZXN0LCAndGVzdF8nICsgaGVhZCwgdGVzdGVyKQorICAgICAgICBzZXRhdHRyKENJQk1UZXN0Q2FzZXMsICd0ZXN0XycgKyBoZWFkLCB0ZXN0ZXIpCisgICAgICAgIHNldGF0dHIoUHlJQk1UZXN0Q2FzZXMsICd0ZXN0XycgKyBoZWFkLCB0ZXN0ZXIpCiAgICAgICAgIGRlbCBmaWxlbmFtZSwgaGVhZCwgdGFpbCwgdGVzdGVyCiAKIAogICAgIHRyeToKICAgICAgICAgcnVuX3VuaXR0ZXN0KCp0ZXN0X2NsYXNzZXMpCiAgICAgICAgIGlmIHRvZG9fdGVzdHMgaXMgTm9uZToKLSAgICAgICAgICAgIGltcG9ydCBkZWNpbWFsIGFzIERlY2ltYWxNb2R1bGUKLSAgICAgICAgICAgIHJ1bl9kb2N0ZXN0KERlY2ltYWxNb2R1bGUsIHZlcmJvc2UpCisgICAgICAgICAgICBmcm9tIGRvY3Rlc3QgaW1wb3J0IElHTk9SRV9FWENFUFRJT05fREVUQUlMCisgICAgICAgICAgICBzYXZlZGVjaW1hbCA9IHN5cy5tb2R1bGVzWydkZWNpbWFsJ10KKyAgICAgICAgICAgIGlmIEM6CisgICAgICAgICAgICAgICAgc3lzLm1vZHVsZXNbJ2RlY2ltYWwnXSA9IEMKKyAgICAgICAgICAgICAgICBydW5fZG9jdGVzdChDLCB2ZXJib3NlLCBvcHRpb25mbGFncz1JR05PUkVfRVhDRVBUSU9OX0RFVEFJTCkKKyAgICAgICAgICAgIHN5cy5tb2R1bGVzWydkZWNpbWFsJ10gPSBQCisgICAgICAgICAgICBydW5fZG9jdGVzdChQLCB2ZXJib3NlKQorICAgICAgICAgICAgc3lzLm1vZHVsZXNbJ2RlY2ltYWwnXSA9IHNhdmVkZWNpbWFsCiAgICAgZmluYWxseToKLSAgICAgICAgc2V0Y29udGV4dChPUklHSU5BTF9DT05URVhUKQorICAgICAgICBpZiBDOiBDLnNldGNvbnRleHQoT1JJR0lOQUxfQ09OVEVYVFtDXSkKKyAgICAgICAgUC5zZXRjb250ZXh0KE9SSUdJTkFMX0NPTlRFWFRbUF0pCisgICAgICAgIGlmIG5vdCBDOgorICAgICAgICAgICAgd2FybmluZ3Mud2FybignQyB0ZXN0cyBza2lwcGVkOiBubyBtb2R1bGUgbmFtZWQgX2RlY2ltYWwuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcldhcm5pbmcpCisgICAgICAgIGlmIG5vdCBvcmlnX3N5c19kZWNpbWFsIGlzIHN5cy5tb2R1bGVzWydkZWNpbWFsJ106CisgICAgICAgICAgICByYWlzZSBUZXN0RmFpbGVkKCJJbnRlcm5hbCBlcnJvcjogdW5iYWxhbmNlZCBudW1iZXIgb2YgY2hhbmdlcyB0byAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeXMubW9kdWxlc1snZGVjaW1hbCddLiIpCisKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICBpbXBvcnQgb3B0cGFyc2UKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZGVxdWUucHkgYi9MaWIvdGVzdC90ZXN0X2RlcXVlLnB5CmluZGV4IDBkY2FkZWIuLjI0MTI1Y2QgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZGVxdWUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9kZXF1ZS5weQpAQCAtNDcxLDYgKzQ3MSwxOSBAQAogIyMgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGlkKGQpLCBpZChlKSkKICMjICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpZChlKSwgaWQoZVstMV0pKQogCisgICAgZGVmIHRlc3RfaXRlcmF0b3JfcGlja2xlKHNlbGYpOgorICAgICAgICBkYXRhID0gZGVxdWUocmFuZ2UoMjAwKSkKKyAgICAgICAgaXQgPSBpdG9yZyA9IGl0ZXIoZGF0YSkKKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdCkKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGl0b3JnKSwgdHlwZShpdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpdCksIGxpc3QoZGF0YSkpCisKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgbmV4dChpdCkKKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0KSwgbGlzdChkYXRhKVsxOl0pCisKICAgICBkZWYgdGVzdF9kZWVwY29weShzZWxmKToKICAgICAgICAgbXV0ID0gWzEwXQogICAgICAgICBkID0gZGVxdWUoW211dF0pCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2Rlc2NyLnB5IGIvTGliL3Rlc3QvdGVzdF9kZXNjci5weQppbmRleCBjZGFmN2QyLi4wNzlmNjBiIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Rlc2NyLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZGVzY3IucHkKQEAgLTY1NCwxOSArNjU0LDE5IEBACiAgICAgICAgIGNsYXNzIEEobWV0YWNsYXNzPUFNZXRhKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0FNZXRhJ10sIG5ld19jYWxscykKLSAgICAgICAgbmV3X2NhbGxzWzpdID0gW10KKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKIAogICAgICAgICBjbGFzcyBCKG1ldGFjbGFzcz1CTWV0YSk6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgICMgQk1ldGEuX19uZXdfXyBjYWxscyBBTWV0YS5fX25ld19fIHdpdGggc3VwZXI6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydCTWV0YScsICdBTWV0YSddLCBuZXdfY2FsbHMpCi0gICAgICAgIG5ld19jYWxsc1s6XSA9IFtdCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCiAKICAgICAgICAgY2xhc3MgQyhBLCBCKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgIyBUaGUgbW9zdCBkZXJpdmVkIG1ldGFjbGFzcyBpcyBCTWV0YToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0JNZXRhJywgJ0FNZXRhJ10sIG5ld19jYWxscykKLSAgICAgICAgbmV3X2NhbGxzWzpdID0gW10KKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKICAgICAgICAgIyBCTWV0YS5fX3ByZXBhcmVfXyBzaG91bGQndmUgYmVlbiBjYWxsZWQ6CiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0JNZXRhX3dhc19oZXJlJywgQy5fX2RpY3RfXykKIApAQCAtNjc0LDIwICs2NzQsMjAgQEAKICAgICAgICAgY2xhc3MgQzIoQiwgQSk6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydCTWV0YScsICdBTWV0YSddLCBuZXdfY2FsbHMpCi0gICAgICAgIG5ld19jYWxsc1s6XSA9IFtdCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0JNZXRhX3dhc19oZXJlJywgQzIuX19kaWN0X18pCiAKICAgICAgICAgIyBDaGVjayBjb3JyZWN0IG1ldGFjbGFzcyBjYWxjdWxhdGlvbiB3aGVuIGEgbWV0YWNsYXNzIGlzIGRlY2xhcmVkOgogICAgICAgICBjbGFzcyBEKEMsIG1ldGFjbGFzcz10eXBlKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0JNZXRhJywgJ0FNZXRhJ10sIG5ld19jYWxscykKLSAgICAgICAgbmV3X2NhbGxzWzpdID0gW10KKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKICAgICAgICAgc2VsZi5hc3NlcnRJbignQk1ldGFfd2FzX2hlcmUnLCBELl9fZGljdF9fKQogCiAgICAgICAgIGNsYXNzIEUoQywgbWV0YWNsYXNzPUFNZXRhKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0JNZXRhJywgJ0FNZXRhJ10sIG5ld19jYWxscykKLSAgICAgICAgbmV3X2NhbGxzWzpdID0gW10KKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKICAgICAgICAgc2VsZi5hc3NlcnRJbignQk1ldGFfd2FzX2hlcmUnLCBFLl9fZGljdF9fKQogCiAgICAgICAgICMgU3BlY2lhbCBjYXNlOiB0aGUgZ2l2ZW4gbWV0YWNsYXNzIGlzbid0IGEgY2xhc3MsCkBAIC03MjksMzMgKzcyOSwzMyBAQAogICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxmLmFzc2VydElzKEFOb3RNZXRhLCB0eXBlKEEpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnQU5vdE1ldGEnXSwgcHJlcGFyZV9jYWxscykKLSAgICAgICAgcHJlcGFyZV9jYWxsc1s6XSA9IFtdCisgICAgICAgIHByZXBhcmVfY2FsbHMuY2xlYXIoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnQU5vdE1ldGEnXSwgbmV3X2NhbGxzKQotICAgICAgICBuZXdfY2FsbHNbOl0gPSBbXQorICAgICAgICBuZXdfY2FsbHMuY2xlYXIoKQogCiAgICAgICAgIGNsYXNzIEIobWV0YWNsYXNzPUJOb3RNZXRhKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgc2VsZi5hc3NlcnRJcyhCTm90TWV0YSwgdHlwZShCKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10sIHByZXBhcmVfY2FsbHMpCi0gICAgICAgIHByZXBhcmVfY2FsbHNbOl0gPSBbXQorICAgICAgICBwcmVwYXJlX2NhbGxzLmNsZWFyKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10sIG5ld19jYWxscykKLSAgICAgICAgbmV3X2NhbGxzWzpdID0gW10KKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKIAogICAgICAgICBjbGFzcyBDKEEsIEIpOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxmLmFzc2VydElzKEJOb3RNZXRhLCB0eXBlKEMpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnQk5vdE1ldGEnLCAnQU5vdE1ldGEnXSwgbmV3X2NhbGxzKQotICAgICAgICBuZXdfY2FsbHNbOl0gPSBbXQorICAgICAgICBuZXdfY2FsbHMuY2xlYXIoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnQk5vdE1ldGEnLCAnQU5vdE1ldGEnXSwgcHJlcGFyZV9jYWxscykKLSAgICAgICAgcHJlcGFyZV9jYWxsc1s6XSA9IFtdCisgICAgICAgIHByZXBhcmVfY2FsbHMuY2xlYXIoKQogCiAgICAgICAgIGNsYXNzIEMyKEIsIEEpOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxmLmFzc2VydElzKEJOb3RNZXRhLCB0eXBlKEMyKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10sIG5ld19jYWxscykKLSAgICAgICAgbmV3X2NhbGxzWzpdID0gW10KKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10sIHByZXBhcmVfY2FsbHMpCi0gICAgICAgIHByZXBhcmVfY2FsbHNbOl0gPSBbXQorICAgICAgICBwcmVwYXJlX2NhbGxzLmNsZWFyKCkKIAogICAgICAgICAjIFRoaXMgaXMgYSBUeXBlRXJyb3IsIGJlY2F1c2Ugb2YgYSBtZXRhY2xhc3MgY29uZmxpY3Q6CiAgICAgICAgICMgQk5vdE1ldGEgaXMgbmVpdGhlciBhIHN1YmNsYXNzLCBub3IgYSBzdXBlcmNsYXNzIG9mIHR5cGUKQEAgLTc2NywyNSArNzY3LDI1IEBACiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuYXNzZXJ0SXMoQk5vdE1ldGEsIHR5cGUoRSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydCTm90TWV0YScsICdBTm90TWV0YSddLCBuZXdfY2FsbHMpCi0gICAgICAgIG5ld19jYWxsc1s6XSA9IFtdCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydCTm90TWV0YScsICdBTm90TWV0YSddLCBwcmVwYXJlX2NhbGxzKQotICAgICAgICBwcmVwYXJlX2NhbGxzWzpdID0gW10KKyAgICAgICAgcHJlcGFyZV9jYWxscy5jbGVhcigpCiAKICAgICAgICAgY2xhc3MgRihvYmplY3QoKSwgQyk6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuYXNzZXJ0SXMoQk5vdE1ldGEsIHR5cGUoRikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydCTm90TWV0YScsICdBTm90TWV0YSddLCBuZXdfY2FsbHMpCi0gICAgICAgIG5ld19jYWxsc1s6XSA9IFtdCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydCTm90TWV0YScsICdBTm90TWV0YSddLCBwcmVwYXJlX2NhbGxzKQotICAgICAgICBwcmVwYXJlX2NhbGxzWzpdID0gW10KKyAgICAgICAgcHJlcGFyZV9jYWxscy5jbGVhcigpCiAKICAgICAgICAgY2xhc3MgRjIoQywgb2JqZWN0KCkpOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxmLmFzc2VydElzKEJOb3RNZXRhLCB0eXBlKEYyKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10sIG5ld19jYWxscykKLSAgICAgICAgbmV3X2NhbGxzWzpdID0gW10KKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10sIHByZXBhcmVfY2FsbHMpCi0gICAgICAgIHByZXBhcmVfY2FsbHNbOl0gPSBbXQorICAgICAgICBwcmVwYXJlX2NhbGxzLmNsZWFyKCkKIAogICAgICAgICAjIFR5cGVFcnJvcjogQk5vdE1ldGEgaXMgbmVpdGhlciBhCiAgICAgICAgICMgc3ViY2xhc3MsIG5vciBhIHN1cGVyY2xhc3Mgb2YgaW50CkBAIC0xNDQ0LDYgKzE0NDQsMTQgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuZmFpbCgiY2xhc3NtZXRob2Qgc2hvdWxkbid0IGFjY2VwdCBrZXl3b3JkIGFyZ3MiKQogCisgICAgICAgIGNtID0gY2xhc3NtZXRob2QoZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5fX2RpY3RfXywge30pCisgICAgICAgIGNtLnggPSA0MgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLngsIDQyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLl9fZGljdF9fLCB7IngiIDogNDJ9KQorICAgICAgICBkZWwgY20ueAorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIoY20sICJ4IikpCisKICAgICBAc3VwcG9ydC5pbXBsX2RldGFpbCgidGhlIG1vZHVsZSAneHhzdWJ0eXBlJyBpcyBpbnRlcm5hbCIpCiAgICAgZGVmIHRlc3RfY2xhc3NtZXRob2RzX2luX2Moc2VsZik6CiAgICAgICAgICMgVGVzdGluZyBDLWJhc2VkIGNsYXNzIG1ldGhvZHMuLi4KQEAgLTE0OTEsNiArMTQ5OSwxMyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQuZ29vKDEpLCAoMSwpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQuZm9vKDEpLCAoZCwgMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRC5mb28oZCwgMSksIChkLCAxKSkKKyAgICAgICAgc20gPSBzdGF0aWNtZXRob2QoTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzbS5fX2RpY3RfXywge30pCisgICAgICAgIHNtLnggPSA0MgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNtLngsIDQyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNtLl9fZGljdF9fLCB7IngiIDogNDJ9KQorICAgICAgICBkZWwgc20ueAorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIoc20sICJ4IikpCiAKICAgICBAc3VwcG9ydC5pbXBsX2RldGFpbCgidGhlIG1vZHVsZSAneHhzdWJ0eXBlJyBpcyBpbnRlcm5hbCIpCiAgICAgZGVmIHRlc3Rfc3RhdGljbWV0aG9kc19pbl9jKHNlbGYpOgpAQCAtMTc3MSw2ICsxNzg2LDcgQEAKICAgICAgICAgICAgICgiX19mb3JtYXRfXyIsIGZvcm1hdCwgZm9ybWF0X2ltcGwsIHNldCgpLCB7fSksCiAgICAgICAgICAgICAoIl9fZmxvb3JfXyIsIG1hdGguZmxvb3IsIHplcm8sIHNldCgpLCB7fSksCiAgICAgICAgICAgICAoIl9fdHJ1bmNfXyIsIG1hdGgudHJ1bmMsIHplcm8sIHNldCgpLCB7fSksCisgICAgICAgICAgICAoIl9fdHJ1bmNfXyIsIGludCwgemVybywgc2V0KCksIHt9KSwKICAgICAgICAgICAgICgiX19jZWlsX18iLCBtYXRoLmNlaWwsIHplcm8sIHNldCgpLCB7fSksCiAgICAgICAgICAgICAoIl9fZGlyX18iLCBkaXIsIGVtcHR5X3NlcSwgc2V0KCksIHt9KSwKICAgICAgICAgICAgIF0KQEAgLTE4MTYsMTIgKzE4MzIsNyBAQAogICAgICAgICAgICAgZm9yIGF0dHIsIG9iaiBpbiBlbnYuaXRlbXMoKToKICAgICAgICAgICAgICAgICBzZXRhdHRyKFgsIGF0dHIsIG9iaikKICAgICAgICAgICAgIHNldGF0dHIoWCwgbmFtZSwgRXJyRGVzY3IoKSkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBydW5uZXIoWCgpKQotICAgICAgICAgICAgZXhjZXB0IE15RXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJ7MCFyfSBkaWRuJ3QgcmFpc2UiLmZvcm1hdChuYW1lKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE15RXhjZXB0aW9uLCBydW5uZXIsIFgoKSkKIAogICAgIGRlZiB0ZXN0X3NwZWNpYWxzKHNlbGYpOgogICAgICAgICAjIFRlc3Rpbmcgc3BlY2lhbCBvcGVyYXRvcnMuLi4KQEAgLTIyNTgsOSArMjI2OSw2IEBACiAgICAgICAgICMgVHdvIGVzc2VudGlhbGx5IGZlYXR1cmVsZXNzIG9iamVjdHMsIGp1c3QgaW5oZXJpdGluZyBzdHVmZiBmcm9tCiAgICAgICAgICMgb2JqZWN0LgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpcihOb3RJbXBsZW1lbnRlZCksIGRpcihFbGxpcHNpcykpCi0gICAgICAgIGlmIHN1cHBvcnQuY2hlY2tfaW1wbF9kZXRhaWwoKToKLSAgICAgICAgICAgICMgTm9uZSBkaWZmZXJzIGluIFB5UHk6IGl0IGhhcyBhIF9fbm9uemVyb19fCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpcihOb25lKSwgZGlyKEVsbGlwc2lzKSkKIAogICAgICAgICAjIE5hc3R5IHRlc3QgY2FzZSBmb3IgcHJveGllZCBvYmplY3RzCiAgICAgICAgIGNsYXNzIFdyYXBwZXIob2JqZWN0KToKQEAgLTQ0NTYsNiArNDQ2NCw1NCBAQAogICAgICAgICB4LnkgPSA0MgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHhbInkiXSwgNDIpCiAKKyAgICBkZWYgdGVzdF9zbG90X3NoYWRvd3NfY2xhc3NfdmFyaWFibGUoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcikgYXMgY206CisgICAgICAgICAgICBjbGFzcyBYOgorICAgICAgICAgICAgICAgIF9fc2xvdHNfXyA9IFsiZm9vIl0KKyAgICAgICAgICAgICAgICBmb28gPSBOb25lCisgICAgICAgIG0gPSBzdHIoY20uZXhjZXB0aW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCInZm9vJyBpbiBfX3Nsb3RzX18gY29uZmxpY3RzIHdpdGggY2xhc3MgdmFyaWFibGUiLCBtKQorCisgICAgZGVmIHRlc3Rfc2V0X2RvYyhzZWxmKToKKyAgICAgICAgY2xhc3MgWDoKKyAgICAgICAgICAgICJlbGVwaGFudCIKKyAgICAgICAgWC5fX2RvY19fID0gImJhbmFuYSIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChYLl9fZG9jX18sICJiYW5hbmEiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcikgYXMgY206CisgICAgICAgICAgICB0eXBlKGxpc3QpLl9fZGljdF9fWyJfX2RvY19fIl0uX19zZXRfXyhsaXN0LCAiYmxhaCIpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oImNhbid0IHNldCBsaXN0Ll9fZG9jX18iLCBzdHIoY20uZXhjZXB0aW9uKSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgdHlwZShYKS5fX2RpY3RfX1siX19kb2NfXyJdLl9fZGVsZXRlX18oWCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbigiY2FuJ3QgZGVsZXRlIFguX19kb2NfXyIsIHN0cihjbS5leGNlcHRpb24pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFguX19kb2NfXywgImJhbmFuYSIpCisKKyAgICBkZWYgdGVzdF9xdWFsbmFtZShzZWxmKToKKyAgICAgICAgZGVzY3JpcHRvcnMgPSBbc3RyLmxvd2VyLCBjb21wbGV4LnJlYWwsIGZsb2F0LnJlYWwsIGludC5fX2FkZF9fXQorICAgICAgICB0eXBlcyA9IFsnbWV0aG9kJywgJ21lbWJlcicsICdnZXRzZXQnLCAnd3JhcHBlciddCisKKyAgICAgICAgIyBtYWtlIHN1cmUgd2UgaGF2ZSBhbiBleGFtcGxlIG9mIGVhY2ggdHlwZSBvZiBkZXNjcmlwdG9yCisgICAgICAgIGZvciBkLCBuIGluIHppcChkZXNjcmlwdG9ycywgdHlwZXMpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGQpLl9fbmFtZV9fLCBuICsgJ19kZXNjcmlwdG9yJykKKworICAgICAgICBmb3IgZCBpbiBkZXNjcmlwdG9yczoKKyAgICAgICAgICAgIHF1YWxuYW1lID0gZC5fX29iamNsYXNzX18uX19xdWFsbmFtZV9fICsgJy4nICsgZC5fX25hbWVfXworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLl9fcXVhbG5hbWVfXywgcXVhbG5hbWUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIubG93ZXIuX19xdWFsbmFtZV9fLCAnc3RyLmxvd2VyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wbGV4LnJlYWwuX19xdWFsbmFtZV9fLCAnY29tcGxleC5yZWFsJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmbG9hdC5yZWFsLl9fcXVhbG5hbWVfXywgJ2Zsb2F0LnJlYWwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludC5fX2FkZF9fLl9fcXVhbG5hbWVfXywgJ2ludC5fX2FkZF9fJykKKworICAgIGRlZiB0ZXN0X3F1YWxuYW1lX2RpY3Qoc2VsZik6CisgICAgICAgIG5zID0geydfX3F1YWxuYW1lX18nOiAnc29tZS5uYW1lJ30KKyAgICAgICAgdHAgPSB0eXBlKCdGb28nLCAoKSwgbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHAuX19xdWFsbmFtZV9fLCAnc29tZS5uYW1lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cC5fX2RpY3RfX1snX19xdWFsbmFtZV9fJ10sICdzb21lLm5hbWUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5zLCB7J19fcXVhbG5hbWVfXyc6ICdzb21lLm5hbWUnfSkKKworICAgICAgICBucyA9IHsnX19xdWFsbmFtZV9fJzogMX0KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB0eXBlLCAnRm9vJywgKCksIG5zKQorCiAgICAgZGVmIHRlc3RfY3ljbGVfdGhyb3VnaF9kaWN0KHNlbGYpOgogICAgICAgICAjIFNlZSBidWcgIzE0Njk2MjkKICAgICAgICAgY2xhc3MgWChkaWN0KToKQEAgLTQ0NzEsNiArNDUyNywyNyBAQAogICAgICAgICBmb3IgbyBpbiBnYy5nZXRfb2JqZWN0cygpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdCh0eXBlKG8pLCBYKQogCisgICAgZGVmIHRlc3Rfb2JqZWN0X25ld19hbmRfaW5pdF93aXRoX3BhcmFtZXRlcnMoc2VsZik6CisgICAgICAgICMgU2VlIGlzc3VlICMxNjgzMzY4CisgICAgICAgIGNsYXNzIE92ZXJyaWRlTmVpdGhlcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBPdmVycmlkZU5laXRoZXIsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgT3ZlcnJpZGVOZWl0aGVyLCBrdz0xKQorICAgICAgICBjbGFzcyBPdmVycmlkZU5ldzoKKyAgICAgICAgICAgIGRlZiBfX25ld19fKGNscywgZm9vLCBrdz0wLCAqYXJncywgKiprd2RzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9fbmV3X18oY2xzLCAqYXJncywgKiprd2RzKQorICAgICAgICBjbGFzcyBPdmVycmlkZUluaXQ6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgZm9vLCBrdz0wLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3QuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBjbGFzcyBPdmVycmlkZUJvdGgoT3ZlcnJpZGVOZXcsIE92ZXJyaWRlSW5pdCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGZvciBjYXNlIGluIE92ZXJyaWRlTmV3LCBPdmVycmlkZUluaXQsIE92ZXJyaWRlQm90aDoKKyAgICAgICAgICAgIGNhc2UoMSkKKyAgICAgICAgICAgIGNhc2UoMSwga3c9MikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY2FzZSwgMSwgMiwgMykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY2FzZSwgMSwgMiwgZm9vPTMpCisKKwogY2xhc3MgRGljdFByb3h5VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgY2xhc3MgQyhvYmplY3QpOgpAQCAtNDQ3OCw2ICs0NTU1LDggQEAKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuQyA9IEMKIAorICAgIEB1bml0dGVzdC5za2lwSWYoaGFzYXR0cihzeXMsICdnZXR0cmFjZScpIGFuZCBzeXMuZ2V0dHJhY2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd0cmFjZSBmdW5jdGlvbiBpbnRyb2R1Y2VzIF9fbG9jYWxfXycpCiAgICAgZGVmIHRlc3RfaXRlcl9rZXlzKHNlbGYpOgogICAgICAgICAjIFRlc3RpbmcgZGljdC1wcm94eSBrZXlzLi4uCiAgICAgICAgIGl0ID0gc2VsZi5DLl9fZGljdF9fLmtleXMoKQpAQCAtNDQ4NSwxNSArNDU2NCwxOSBAQAogICAgICAgICBrZXlzID0gbGlzdChpdCkKICAgICAgICAga2V5cy5zb3J0KCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrZXlzLCBbJ19fZGljdF9fJywgJ19fZG9jX18nLCAnX19tb2R1bGVfXycsCi0gICAgICAgICAgICAnX193ZWFrcmVmX18nLCAnbWV0aCddKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX19xdWFsbmFtZV9fJywgJ19fd2Vha3JlZl9fJywgJ21ldGgnXSkKIAorICAgIEB1bml0dGVzdC5za2lwSWYoaGFzYXR0cihzeXMsICdnZXR0cmFjZScpIGFuZCBzeXMuZ2V0dHJhY2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd0cmFjZSBmdW5jdGlvbiBpbnRyb2R1Y2VzIF9fbG9jYWxfXycpCiAgICAgZGVmIHRlc3RfaXRlcl92YWx1ZXMoc2VsZik6CiAgICAgICAgICMgVGVzdGluZyBkaWN0LXByb3h5IHZhbHVlcy4uLgogICAgICAgICBpdCA9IHNlbGYuQy5fX2RpY3RfXy52YWx1ZXMoKQogICAgICAgICBzZWxmLmFzc2VydE5vdElzSW5zdGFuY2UoaXQsIGxpc3QpCiAgICAgICAgIHZhbHVlcyA9IGxpc3QoaXQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHZhbHVlcyksIDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHZhbHVlcyksIDYpCiAKKyAgICBAdW5pdHRlc3Quc2tpcElmKGhhc2F0dHIoc3lzLCAnZ2V0dHJhY2UnKSBhbmQgc3lzLmdldHRyYWNlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAndHJhY2UgZnVuY3Rpb24gaW50cm9kdWNlcyBfX2xvY2FsX18nKQogICAgIGRlZiB0ZXN0X2l0ZXJfaXRlbXMoc2VsZik6CiAgICAgICAgICMgVGVzdGluZyBkaWN0LXByb3h5IGl0ZXJpdGVtcy4uLgogICAgICAgICBpdCA9IHNlbGYuQy5fX2RpY3RfXy5pdGVtcygpCkBAIC00NTAxLDcgKzQ1ODQsNyBAQAogICAgICAgICBrZXlzID0gW2l0ZW1bMF0gZm9yIGl0ZW0gaW4gaXRdCiAgICAgICAgIGtleXMuc29ydCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2V5cywgWydfX2RpY3RfXycsICdfX2RvY19fJywgJ19fbW9kdWxlX18nLAotICAgICAgICAgICAgJ19fd2Vha3JlZl9fJywgJ21ldGgnXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fcXVhbG5hbWVfXycsICdfX3dlYWtyZWZfXycsICdtZXRoJ10pCiAKICAgICBkZWYgdGVzdF9kaWN0X3R5cGVfd2l0aF9tZXRhY2xhc3Moc2VsZik6CiAgICAgICAgICMgVGVzdGluZyB0eXBlIG9mIF9fZGljdF9fIHdoZW4gbWV0YWNsYXNzIHNldC4uLgpAQCAtNDUxNSwxOSArNDU5OCwxNCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoQy5fX2RpY3RfXyksIHR5cGUoQi5fX2RpY3RfXykpCiAKICAgICBkZWYgdGVzdF9yZXByKHNlbGYpOgotICAgICAgICAjIFRlc3RpbmcgZGljdF9wcm94eS5fX3JlcHJfXwotICAgICAgICBkZWYgc29ydGVkX2RpY3RfcmVwcihyZXByXyk6Ci0gICAgICAgICAgICAjIEdpdmVuIHRoZSByZXByIG9mIGEgZGljdCwgc29ydCB0aGUga2V5cwotICAgICAgICAgICAgYXNzZXJ0IHJlcHJfLnN0YXJ0c3dpdGgoJ3snKQotICAgICAgICAgICAgYXNzZXJ0IHJlcHJfLmVuZHN3aXRoKCd9JykKLSAgICAgICAgICAgIGt2cyA9IHJlcHJfWzE6LTFdLnNwbGl0KCcsICcpCi0gICAgICAgICAgICByZXR1cm4gJ3snICsgJywgJy5qb2luKHNvcnRlZChrdnMpKSArICd9JwotICAgICAgICBkaWN0XyA9IHtrOiB2IGZvciBrLCB2IGluIHNlbGYuQy5fX2RpY3RfXy5pdGVtcygpfQotICAgICAgICByZXByXyA9IHJlcHIoc2VsZi5DLl9fZGljdF9fKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmVwcl8uc3RhcnRzd2l0aCgnZGljdF9wcm94eSgnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcHJfLmVuZHN3aXRoKCcpJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkX2RpY3RfcmVwcihyZXByX1tsZW4oJ2RpY3RfcHJveHkoJyk6LWxlbignKScpXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgc29ydGVkX2RpY3RfcmVwcigneyFyfScuZm9ybWF0KGRpY3RfKSkpCisgICAgICAgICMgVGVzdGluZyBtYXBwaW5ncHJveHkuX19yZXByX18uCisgICAgICAgICMgV2UgY2FuJ3QgYmxpbmRseSBjb21wYXJlIHdpdGggdGhlIHJlcHIgb2YgYW5vdGhlciBkaWN0IGFzIG9yZGVyaW5nCisgICAgICAgICMgb2Yga2V5cyBhbmQgdmFsdWVzIGlzIGFyYml0cmFyeSBhbmQgbWF5IGRpZmZlci4KKyAgICAgICAgciA9IHJlcHIoc2VsZi5DLl9fZGljdF9fKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoci5zdGFydHN3aXRoKCdtYXBwaW5ncHJveHkoJyksIHIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyLmVuZHN3aXRoKCcpJyksIHIpCisgICAgICAgIGZvciBrLCB2IGluIHNlbGYuQy5fX2RpY3RfXy5pdGVtcygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigneyFyfTogeyFyfScuZm9ybWF0KGssIHYpLCByKQogCiAKIGNsYXNzIFBUeXBlc0xvbmdJbml0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC00NTUyLDEwICs0NjMwLDM4IEBACiAgICAgICAgIHR5cGUubXJvKHR1cGxlKQogCiAKK2NsYXNzIE1pc2NUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfdHlwZV9sb29rdXBfbXJvX3JlZmVyZW5jZShzZWxmKToKKyAgICAgICAgIyBJc3N1ZSAjMTQxOTk6IF9QeVR5cGVfTG9va3VwKCkgaGFzIHRvIGtlZXAgYSBzdHJvbmcgcmVmZXJlbmNlIHRvCisgICAgICAgICMgdGhlIHR5cGUgTVJPIGJlY2F1c2UgaXQgbWF5IGJlIG1vZGlmaWVkIGR1cmluZyB0aGUgbG9va3VwLCBpZgorICAgICAgICAjIF9fYmFzZXNfXyBpcyBzZXQgZHVyaW5nIHRoZSBsb29rdXAgZm9yIGV4YW1wbGUuCisgICAgICAgIGNsYXNzIE15S2V5KG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIGhhc2goJ215a2V5JykKKworICAgICAgICAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAgICAgICAgWC5fX2Jhc2VzX18gPSAoQmFzZTIsKQorCisgICAgICAgIGNsYXNzIEJhc2Uob2JqZWN0KToKKyAgICAgICAgICAgIG15a2V5ID0gJ2Zyb20gQmFzZScKKyAgICAgICAgICAgIG15a2V5MiA9ICdmcm9tIEJhc2UnCisKKyAgICAgICAgY2xhc3MgQmFzZTIob2JqZWN0KToKKyAgICAgICAgICAgIG15a2V5ID0gJ2Zyb20gQmFzZTInCisgICAgICAgICAgICBteWtleTIgPSAnZnJvbSBCYXNlMicKKworICAgICAgICBYID0gdHlwZSgnWCcsIChCYXNlLCksIHtNeUtleSgpOiA1fSkKKyAgICAgICAgIyBteWtleSBpcyByZWFkIGZyb20gQmFzZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFgubXlrZXksICdmcm9tIEJhc2UnKQorICAgICAgICAjIG15a2V5MiBpcyByZWFkIGZyb20gQmFzZTIgYmVjYXVzZSBNeUtleS5fX2VxX18gaGFzIHNldCBfX2Jhc2VzX18KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChYLm15a2V5MiwgJ2Zyb20gQmFzZTInKQorCisKIGRlZiB0ZXN0X21haW4oKToKICAgICAjIFJ1biBhbGwgbG9jYWwgdGVzdCBjYXNlcywgd2l0aCBQVHlwZXNMb25nSW5pdFRlc3QgZmlyc3QuCiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoUFR5cGVzTG9uZ0luaXRUZXN0LCBPcGVyYXRvcnNUZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NQcm9wZXJ0aWVzQW5kTWV0aG9kcywgRGljdFByb3h5VGVzdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgQ2xhc3NQcm9wZXJ0aWVzQW5kTWV0aG9kcywgRGljdFByb3h5VGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgTWlzY1Rlc3RzKQogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIHRlc3RfbWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2Rlc2NydHV0LnB5IGIvTGliL3Rlc3QvdGVzdF9kZXNjcnR1dC5weQppbmRleCAyZGIzZDMzLi5mNDk1ZTE4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Rlc2NydHV0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZGVzY3J0dXQucHkKQEAgLTE3MCw2ICsxNzAsNyBAQAogICAgICAnX19jb250YWluc19fJywKICAgICAgJ19fZGVsYXR0cl9fJywKICAgICAgJ19fZGVsaXRlbV9fJywKKyAgICAgJ19fZGlyX18nLAogICAgICAnX19kb2NfXycsCiAgICAgICdfX2VxX18nLAogICAgICAnX19mb3JtYXRfXycsCkBAIC0xOTksNiArMjAwLDggQEAKICAgICAgJ19fc3RyX18nLAogICAgICAnX19zdWJjbGFzc2hvb2tfXycsCiAgICAgICdhcHBlbmQnLAorICAgICAnY2xlYXInLAorICAgICAnY29weScsCiAgICAgICdjb3VudCcsCiAgICAgICdleHRlbmQnLAogICAgICAnaW5kZXgnLApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9kZXZwb2xsLnB5IGIvTGliL3Rlc3QvdGVzdF9kZXZwb2xsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJlZjRlMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC90ZXN0X2RldnBvbGwucHkKQEAgLTAsMCArMSw5NCBAQAorIyBUZXN0IGNhc2UgZm9yIHRoZSBzZWxlY3QuZGV2cG9sbCgpIGZ1bmN0aW9uCisKKyMgSW5pdGlhbCB0ZXN0cyBhcmUgY29waWVkIGFzIGlzIGZyb20gInRlc3RfcG9sbC5weSIKKworaW1wb3J0IG9zLCBzZWxlY3QsIHJhbmRvbSwgdW5pdHRlc3QsIHN5cworZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IFRFU1RGTiwgcnVuX3VuaXR0ZXN0CisKK3RyeToKKyAgICBzZWxlY3QuZGV2cG9sbAorZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KCJzZWxlY3QuZGV2cG9sbCBub3QgZGVmaW5lZCAtLSBza2lwcGluZyB0ZXN0X2RldnBvbGwiKQorCisKK2RlZiBmaW5kX3JlYWR5X21hdGNoaW5nKHJlYWR5LCBmbGFnKToKKyAgICBtYXRjaCA9IFtdCisgICAgZm9yIGZkLCBtb2RlIGluIHJlYWR5OgorICAgICAgICBpZiBtb2RlICYgZmxhZzoKKyAgICAgICAgICAgIG1hdGNoLmFwcGVuZChmZCkKKyAgICByZXR1cm4gbWF0Y2gKKworY2xhc3MgRGV2UG9sbFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2RldnBvbGwxKHNlbGYpOgorICAgICAgICAjIEJhc2ljIGZ1bmN0aW9uYWwgdGVzdCBvZiBwb2xsIG9iamVjdAorICAgICAgICAjIENyZWF0ZSBhIGJ1bmNoIG9mIHBpcGUgYW5kIHRlc3QgdGhhdCBwb2xsIHdvcmtzIHdpdGggdGhlbS4KKworICAgICAgICBwID0gc2VsZWN0LmRldnBvbGwoKQorCisgICAgICAgIE5VTV9QSVBFUyA9IDEyCisgICAgICAgIE1TRyA9IGIiIFRoaXMgaXMgYSB0ZXN0LiIKKyAgICAgICAgTVNHX0xFTiA9IGxlbihNU0cpCisgICAgICAgIHJlYWRlcnMgPSBbXQorICAgICAgICB3cml0ZXJzID0gW10KKyAgICAgICAgcjJ3ID0ge30KKyAgICAgICAgdzJyID0ge30KKworICAgICAgICBmb3IgaSBpbiByYW5nZShOVU1fUElQRVMpOgorICAgICAgICAgICAgcmQsIHdyID0gb3MucGlwZSgpCisgICAgICAgICAgICBwLnJlZ2lzdGVyKHJkKQorICAgICAgICAgICAgcC5tb2RpZnkocmQsIHNlbGVjdC5QT0xMSU4pCisgICAgICAgICAgICBwLnJlZ2lzdGVyKHdyLCBzZWxlY3QuUE9MTE9VVCkKKyAgICAgICAgICAgIHJlYWRlcnMuYXBwZW5kKHJkKQorICAgICAgICAgICAgd3JpdGVycy5hcHBlbmQod3IpCisgICAgICAgICAgICByMndbcmRdID0gd3IKKyAgICAgICAgICAgIHcyclt3cl0gPSByZAorCisgICAgICAgIGJ1ZnMgPSBbXQorCisgICAgICAgIHdoaWxlIHdyaXRlcnM6CisgICAgICAgICAgICByZWFkeSA9IHAucG9sbCgpCisgICAgICAgICAgICByZWFkeV93cml0ZXJzID0gZmluZF9yZWFkeV9tYXRjaGluZyhyZWFkeSwgc2VsZWN0LlBPTExPVVQpCisgICAgICAgICAgICBpZiBub3QgcmVhZHlfd3JpdGVyczoKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIm5vIHBpcGVzIHJlYWR5IGZvciB3cml0aW5nIikKKyAgICAgICAgICAgIHdyID0gcmFuZG9tLmNob2ljZShyZWFkeV93cml0ZXJzKQorICAgICAgICAgICAgb3Mud3JpdGUod3IsIE1TRykKKworICAgICAgICAgICAgcmVhZHkgPSBwLnBvbGwoKQorICAgICAgICAgICAgcmVhZHlfcmVhZGVycyA9IGZpbmRfcmVhZHlfbWF0Y2hpbmcocmVhZHksIHNlbGVjdC5QT0xMSU4pCisgICAgICAgICAgICBpZiBub3QgcmVhZHlfcmVhZGVyczoKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIm5vIHBpcGVzIHJlYWR5IGZvciByZWFkaW5nIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW3cyclt3cl1dLCByZWFkeV9yZWFkZXJzKQorICAgICAgICAgICAgcmQgPSByZWFkeV9yZWFkZXJzWzBdCisgICAgICAgICAgICBidWYgPSBvcy5yZWFkKHJkLCBNU0dfTEVOKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYnVmKSwgTVNHX0xFTikKKyAgICAgICAgICAgIGJ1ZnMuYXBwZW5kKGJ1ZikKKyAgICAgICAgICAgIG9zLmNsb3NlKHIyd1tyZF0pIDsgb3MuY2xvc2UocmQpCisgICAgICAgICAgICBwLnVucmVnaXN0ZXIocjJ3W3JkXSkKKyAgICAgICAgICAgIHAudW5yZWdpc3RlcihyZCkKKyAgICAgICAgICAgIHdyaXRlcnMucmVtb3ZlKHIyd1tyZF0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWZzLCBbTVNHXSAqIE5VTV9QSVBFUykKKworICAgIGRlZiB0ZXN0X3RpbWVvdXRfb3ZlcmZsb3coc2VsZik6CisgICAgICAgIHBvbGxzdGVyID0gc2VsZWN0LmRldnBvbGwoKQorICAgICAgICB3LCByID0gb3MucGlwZSgpCisgICAgICAgIHBvbGxzdGVyLnJlZ2lzdGVyKHcpCisKKyAgICAgICAgcG9sbHN0ZXIucG9sbCgtMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgcG9sbHN0ZXIucG9sbCwgLTIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHBvbGxzdGVyLnBvbGwsIC0xIDw8IDMxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBwb2xsc3Rlci5wb2xsLCAtMSA8PCA2NCkKKworICAgICAgICBwb2xsc3Rlci5wb2xsKDApCisgICAgICAgIHBvbGxzdGVyLnBvbGwoMSkKKyAgICAgICAgcG9sbHN0ZXIucG9sbCgxIDw8IDMwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBwb2xsc3Rlci5wb2xsLCAxIDw8IDMxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBwb2xsc3Rlci5wb2xsLCAxIDw8IDYzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBwb2xsc3Rlci5wb2xsLCAxIDw8IDY0KQorCitkZWYgdGVzdF9tYWluKCk6CisgICAgcnVuX3VuaXR0ZXN0KERldlBvbGxUZXN0cykKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9kaWN0LnB5IGIvTGliL3Rlc3QvdGVzdF9kaWN0LnB5CmluZGV4IGQyNzQwYTMuLmRkNGQ1NTIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZGljdC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2RpY3QucHkKQEAgLTIsNyArMiw5IEBACiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIAogaW1wb3J0IGNvbGxlY3Rpb25zLCByYW5kb20sIHN0cmluZworaW1wb3J0IGNvbGxlY3Rpb25zLmFiYwogaW1wb3J0IGdjLCB3ZWFrcmVmCitpbXBvcnQgcGlja2xlCiAKIAogY2xhc3MgRGljdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtMzE5LDYgKzMyMSwyNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2hlZDIuaGFzaF9jb3VudCwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNoZWQxLmVxX2NvdW50ICsgaGFzaGVkMi5lcV9jb3VudCwgMSkKIAorICAgIGRlZiB0ZXN0X3NldGl0ZW1fYXRvbWljX2F0X3Jlc2l6ZShzZWxmKToKKyAgICAgICAgY2xhc3MgSGFzaGVkKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5oYXNoX2NvdW50ID0gMAorICAgICAgICAgICAgICAgIHNlbGYuZXFfY291bnQgPSAwCisgICAgICAgICAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5oYXNoX2NvdW50ICs9IDEKKyAgICAgICAgICAgICAgICByZXR1cm4gNDIKKyAgICAgICAgICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAgICAgICAgIHNlbGYuZXFfY291bnQgKz0gMQorICAgICAgICAgICAgICAgIHJldHVybiBpZChzZWxmKSA9PSBpZChvdGhlcikKKyAgICAgICAgaGFzaGVkMSA9IEhhc2hlZCgpCisgICAgICAgICMgNSBpdGVtcworICAgICAgICB5ID0ge2hhc2hlZDE6IDUsIDA6IDAsIDE6IDEsIDI6IDIsIDM6IDN9CisgICAgICAgIGhhc2hlZDIgPSBIYXNoZWQoKQorICAgICAgICAjIDZ0aCBpdGVtIGZvcmNlcyBhIHJlc2l6ZQorICAgICAgICB5W2hhc2hlZDJdID0gW10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNoZWQxLmhhc2hfY291bnQsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaGVkMi5oYXNoX2NvdW50LCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2hlZDEuZXFfY291bnQgKyBoYXNoZWQyLmVxX2NvdW50LCAxKQorCiAgICAgZGVmIHRlc3RfcG9waXRlbShzZWxmKToKICAgICAgICAgIyBkaWN0LnBvcGl0ZW0oKQogICAgICAgICBmb3IgY29weW1vZGUgaW4gLTEsICsxOgpAQCAtMzc5LDcgKzQwMiw3IEBACiAgICAgICAgIHguZmFpbCA9IFRydWUKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoRXhjLCBkLnBvcCwgeCkKIAotICAgIGRlZiB0ZXN0X211dGF0aW5naXRlcmF0aW9uKHNlbGYpOgorICAgIGRlZiB0ZXN0X211dGF0aW5nX2l0ZXJhdGlvbihzZWxmKToKICAgICAgICAgIyBjaGFuZ2luZyBkaWN0IHNpemUgZHVyaW5nIGl0ZXJhdGlvbgogICAgICAgICBkID0ge30KICAgICAgICAgZFsxXSA9IDEKQEAgLTM4Nyw2ICs0MTAsMzIgQEAKICAgICAgICAgICAgIGZvciBpIGluIGQ6CiAgICAgICAgICAgICAgICAgZFtpKzFdID0gMQogCisgICAgZGVmIHRlc3RfbXV0YXRpbmdfbG9va3VwKHNlbGYpOgorICAgICAgICAjIGNoYW5naW5nIGRpY3QgZHVyaW5nIGEgbG9va3VwIChpc3N1ZSAjMTQ0MTcpCisgICAgICAgIGNsYXNzIE5hc3R5S2V5OgorICAgICAgICAgICAgbXV0YXRlX2RpY3QgPSBOb25lCisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSk6CisgICAgICAgICAgICAgICAgc2VsZi52YWx1ZSA9IHZhbHVlCisKKyAgICAgICAgICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKKyAgICAgICAgICAgICAgICAjIGhhc2ggY29sbGlzaW9uIQorICAgICAgICAgICAgICAgIHJldHVybiAxCisKKyAgICAgICAgICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAgICAgICAgIGlmIE5hc3R5S2V5Lm11dGF0ZV9kaWN0OgorICAgICAgICAgICAgICAgICAgICBteWRpY3QsIGtleSA9IE5hc3R5S2V5Lm11dGF0ZV9kaWN0CisgICAgICAgICAgICAgICAgICAgIE5hc3R5S2V5Lm11dGF0ZV9kaWN0ID0gTm9uZQorICAgICAgICAgICAgICAgICAgICBkZWwgbXlkaWN0W2tleV0KKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi52YWx1ZSA9PSBvdGhlci52YWx1ZQorCisgICAgICAgIGtleTEgPSBOYXN0eUtleSgxKQorICAgICAgICBrZXkyID0gTmFzdHlLZXkoMikKKyAgICAgICAgZCA9IHtrZXkxOiAxfQorICAgICAgICBOYXN0eUtleS5tdXRhdGVfZGljdCA9IChkLCBrZXkxKQorICAgICAgICBkW2tleTJdID0gMgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQsIHtrZXkyOiAyfSkKKwogICAgIGRlZiB0ZXN0X3JlcHIoc2VsZik6CiAgICAgICAgIGQgPSB7fQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIoZCksICd7fScpCkBAIC03NzYsNiArODI1LDc1IEBACiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuX3RyYWNrZWQoTXlEaWN0KCkpCiAKKyAgICBkZWYgdGVzdF9pdGVyYXRvcl9waWNrbGluZyhzZWxmKToKKyAgICAgICAgZGF0YSA9IHsxOiJhIiwgMjoiYiIsIDM6ImMifQorICAgICAgICBpdCA9IGl0ZXIoZGF0YSkKKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdCkKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQoaXQpLCBzb3J0ZWQoZGF0YSkpCisKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZHJvcCA9IG5leHQoaXQpCisgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXQpCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgIGRlbCBkYXRhW2Ryb3BdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKGl0KSwgc29ydGVkKGRhdGEpKQorCisgICAgZGVmIHRlc3RfaXRlbWl0ZXJhdG9yX3BpY2tsaW5nKHNlbGYpOgorICAgICAgICBkYXRhID0gezE6ImEiLCAyOiJiIiwgMzoiYyJ9CisgICAgICAgICMgZGljdHZpZXdzIGFyZW4ndCBwaWNrbGFibGUsIG9ubHkgdGhlaXIgaXRlcmF0b3JzCisgICAgICAgIGl0b3JnID0gaXRlcihkYXRhLml0ZW1zKCkpCisgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXRvcmcpCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgICMgbm90ZSB0aGF0IHRoZSB0eXBlIG9mIHR5cGUgb2YgdGhlIHVucGlja2xlZCBpdGVyYXRvcgorICAgICAgICAjIGlzIG5vdCBuZWNlc3NhcmlseSB0aGUgc2FtZSBhcyB0aGUgb3JpZ2luYWwuICBJdCBpcworICAgICAgICAjIG1lcmVseSBhbiBvYmplY3Qgc3VwcG9ydGluZyB0aGUgaXRlcmF0b3IgcHJvdG9jb2wsIHlpZWxkaW5nCisgICAgICAgICMgdGhlIHNhbWUgb2JqZWN0cyBhcyB0aGUgb3JpZ2luYWwgb25lLgorICAgICAgICAjIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShpdG9yZyksIHR5cGUoaXQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShpdCwgY29sbGVjdGlvbnMuYWJjLkl0ZXJhdG9yKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWN0KGl0KSwgZGF0YSkKKworICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICBkcm9wID0gbmV4dChpdCkKKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdCkKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgZGVsIGRhdGFbZHJvcFswXV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaWN0KGl0KSwgZGF0YSkKKworICAgIGRlZiB0ZXN0X3ZhbHVlc2l0ZXJhdG9yX3BpY2tsaW5nKHNlbGYpOgorICAgICAgICBkYXRhID0gezE6ImEiLCAyOiJiIiwgMzoiYyJ9CisgICAgICAgICMgZGF0YS52YWx1ZXMoKSBpc24ndCBwaWNrbGFibGUsIG9ubHkgaXRzIGl0ZXJhdG9yCisgICAgICAgIGl0ID0gaXRlcihkYXRhLnZhbHVlcygpKQorICAgICAgICBkID0gcGlja2xlLmR1bXBzKGl0KQorICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChsaXN0KGl0KSksIHNvcnRlZChsaXN0KGRhdGEudmFsdWVzKCkpKSkKKworICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICBkcm9wID0gbmV4dChpdCkKKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdCkKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgdmFsdWVzID0gbGlzdChpdCkgKyBbZHJvcF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQodmFsdWVzKSwgc29ydGVkKGxpc3QoZGF0YS52YWx1ZXMoKSkpKQorCisgICAgZGVmIHRlc3RfaW5zdGFuY2VfZGljdF9nZXRhdHRyX3N0cl9zdWJjbGFzcyhzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZyk6CisgICAgICAgICAgICAgICAgc2VsZi5tc2cgPSBtc2cKKyAgICAgICAgZiA9IEZvbygnMTIzJykKKyAgICAgICAgY2xhc3MgX3N0cihzdHIpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYubXNnLCBnZXRhdHRyKGYsIF9zdHIoJ21zZycpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLm1zZywgZi5fX2RpY3RfX1tfc3RyKCdtc2cnKV0pCisKKyAgICBkZWYgdGVzdF9vYmplY3Rfc2V0X2l0ZW1fc2luZ2xlX2luc3RhbmNlX25vbl9zdHJfa2V5KHNlbGYpOgorICAgICAgICBjbGFzcyBGb286IHBhc3MKKyAgICAgICAgZiA9IEZvbygpCisgICAgICAgIGYuX19kaWN0X19bMV0gPSAxCisgICAgICAgIGYuYSA9ICdhJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuX19kaWN0X18sIHsxOjEsICdhJzonYSd9KQogCiBmcm9tIHRlc3QgaW1wb3J0IG1hcHBpbmdfdGVzdHMKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9kaXMucHkgYi9MaWIvdGVzdC90ZXN0X2Rpcy5weQppbmRleCA1YzU5ZWFhLi4xYmNkNjkzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Rpcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2Rpcy5weQpAQCAtMSwxMSArMSwzNSBAQAogIyBNaW5pbWFsIHRlc3RzIGZvciBkaXMgbW9kdWxlCiAKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBydW5fdW5pdHRlc3QsIGNhcHR1cmVkX3N0ZG91dAoraW1wb3J0IGRpZmZsaWIKIGltcG9ydCB1bml0dGVzdAogaW1wb3J0IHN5cwogaW1wb3J0IGRpcwogaW1wb3J0IGlvCiAKK2NsYXNzIF9DOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB4KToKKyAgICAgICAgc2VsZi54ID0geCA9PSAxCisKK2Rpc19jX2luc3RhbmNlX21ldGhvZCA9ICIiIlwKKyAlLTRkICAgICAgICAgMCBMT0FEX0ZBU1QgICAgICAgICAgICAgICAgMSAoeCkKKyAgICAgICAgICAgICAgMyBMT0FEX0NPTlNUICAgICAgICAgICAgICAgMSAoMSkKKyAgICAgICAgICAgICAgNiBDT01QQVJFX09QICAgICAgICAgICAgICAgMiAoPT0pCisgICAgICAgICAgICAgIDkgTE9BRF9GQVNUICAgICAgICAgICAgICAgIDAgKHNlbGYpCisgICAgICAgICAgICAgMTIgU1RPUkVfQVRUUiAgICAgICAgICAgICAgIDAgKHgpCisgICAgICAgICAgICAgMTUgTE9BRF9DT05TVCAgICAgICAgICAgICAgIDAgKE5vbmUpCisgICAgICAgICAgICAgMTggUkVUVVJOX1ZBTFVFCisiIiIgJSAoX0MuX19pbml0X18uX19jb2RlX18uY29fZmlyc3RsaW5lbm8gKyAxLCkKKworZGlzX2NfaW5zdGFuY2VfbWV0aG9kX2J5dGVzID0gIiIiXAorICAgICAgICAgIDAgTE9BRF9GQVNUICAgICAgICAgICAxICgxKQorICAgICAgICAgIDMgTE9BRF9DT05TVCAgICAgICAgICAxICgxKQorICAgICAgICAgIDYgQ09NUEFSRV9PUCAgICAgICAgICAyICg9PSkKKyAgICAgICAgICA5IExPQURfRkFTVCAgICAgICAgICAgMCAoMCkKKyAgICAgICAgIDEyIFNUT1JFX0FUVFIgICAgICAgICAgMCAoMCkKKyAgICAgICAgIDE1IExPQURfQ09OU1QgICAgICAgICAgMCAoMCkKKyAgICAgICAgIDE4IFJFVFVSTl9WQUxVRQorIiIiCiAKIGRlZiBfZihhKToKICAgICBwcmludChhKQpAQCAtMTQsNyArMzgsNyBAQAogZGlzX2YgPSAiIiJcCiAgJS00ZCAgICAgICAgIDAgTE9BRF9HTE9CQUwgICAgICAgICAgICAgIDAgKHByaW50KQogICAgICAgICAgICAgICAzIExPQURfRkFTVCAgICAgICAgICAgICAgICAwIChhKQotICAgICAgICAgICAgICA2IENBTExfRlVOQ1RJT04gICAgICAgICAgICAxCisgICAgICAgICAgICAgIDYgQ0FMTF9GVU5DVElPTiAgICAgICAgICAgIDEgKDEgcG9zaXRpb25hbCwgMCBrZXl3b3JkIHBhaXIpCiAgICAgICAgICAgICAgIDkgUE9QX1RPUAogCiAgJS00ZCAgICAgICAgMTAgTE9BRF9DT05TVCAgICAgICAgICAgICAgIDEgKDEpCkBAIC0yMyw2ICs0NywxNiBAQAogICAgICAgIF9mLl9fY29kZV9fLmNvX2ZpcnN0bGluZW5vICsgMikKIAogCitkaXNfZl9jb19jb2RlID0gIiIiXAorICAgICAgICAgIDAgTE9BRF9HTE9CQUwgICAgICAgICAwICgwKQorICAgICAgICAgIDMgTE9BRF9GQVNUICAgICAgICAgICAwICgwKQorICAgICAgICAgIDYgQ0FMTF9GVU5DVElPTiAgICAgICAxICgxIHBvc2l0aW9uYWwsIDAga2V5d29yZCBwYWlyKQorICAgICAgICAgIDkgUE9QX1RPUAorICAgICAgICAgMTAgTE9BRF9DT05TVCAgICAgICAgICAxICgxKQorICAgICAgICAgMTMgUkVUVVJOX1ZBTFVFCisiIiIKKworCiBkZWYgYnVnNzA4OTAxKCk6CiAgICAgZm9yIHJlcyBpbiByYW5nZSgxLAogICAgICAgICAgICAgICAgICAgICAgMTApOgpAQCAtMzQsNyArNjgsNyBAQAogICAgICAgICAgICAgICA2IExPQURfQ09OU1QgICAgICAgICAgICAgICAxICgxKQogCiAgJS00ZCAgICAgICAgIDkgTE9BRF9DT05TVCAgICAgICAgICAgICAgIDIgKDEwKQotICAgICAgICAgICAgIDEyIENBTExfRlVOQ1RJT04gICAgICAgICAgICAyCisgICAgICAgICAgICAgMTIgQ0FMTF9GVU5DVElPTiAgICAgICAgICAgIDIgKDIgcG9zaXRpb25hbCwgMCBrZXl3b3JkIHBhaXIpCiAgICAgICAgICAgICAgMTUgR0VUX0lURVIKICAgICAgICAgPj4gICAxNiBGT1JfSVRFUiAgICAgICAgICAgICAgICAgNiAodG8gMjUpCiAgICAgICAgICAgICAgMTkgU1RPUkVfRkFTVCAgICAgICAgICAgICAgIDAgKHJlcykKQEAgLTEzOCwxOCArMTcyLDI3IEBACiAiIiIKIAogY2xhc3MgRGlzVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGRlZiBkb19kaXNhc3NlbWJseV90ZXN0KHNlbGYsIGZ1bmMsIGV4cGVjdGVkKToKKworICAgIGRlZiBnZXRfZGlzYXNzZW1ibHkoc2VsZiwgZnVuYywgbGFzdGk9LTEsIHdyYXBwZXI9VHJ1ZSk6CiAgICAgICAgIHMgPSBpby5TdHJpbmdJTygpCiAgICAgICAgIHNhdmVfc3Rkb3V0ID0gc3lzLnN0ZG91dAogICAgICAgICBzeXMuc3Rkb3V0ID0gcwotICAgICAgICBkaXMuZGlzKGZ1bmMpCi0gICAgICAgIHN5cy5zdGRvdXQgPSBzYXZlX3N0ZG91dAotICAgICAgICBnb3QgPSBzLmdldHZhbHVlKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgd3JhcHBlcjoKKyAgICAgICAgICAgICAgICBkaXMuZGlzKGZ1bmMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRpcy5kaXNhc3NlbWJsZShmdW5jLCBsYXN0aSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHN5cy5zdGRvdXQgPSBzYXZlX3N0ZG91dAogICAgICAgICAjIFRyaW0gdHJhaWxpbmcgYmxhbmtzIChpZiBhbnkpLgotICAgICAgICBsaW5lcyA9IGdvdC5zcGxpdCgnXG4nKQotICAgICAgICBsaW5lcyA9IFtsaW5lLnJzdHJpcCgpIGZvciBsaW5lIGluIGxpbmVzXQotICAgICAgICBleHBlY3RlZCA9IGV4cGVjdGVkLnNwbGl0KCJcbiIpCi0gICAgICAgIGltcG9ydCBkaWZmbGliCisgICAgICAgIHJldHVybiBbbGluZS5yc3RyaXAoKSBmb3IgbGluZSBpbiBzLmdldHZhbHVlKCkuc3BsaXRsaW5lcygpXQorCisgICAgZGVmIGdldF9kaXNhc3NlbWJsZV9hc19zdHJpbmcoc2VsZiwgZnVuYywgbGFzdGk9LTEpOgorICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuZ2V0X2Rpc2Fzc2VtYmx5KGZ1bmMsIGxhc3RpLCBGYWxzZSkpCisKKyAgICBkZWYgZG9fZGlzYXNzZW1ibHlfdGVzdChzZWxmLCBmdW5jLCBleHBlY3RlZCk6CisgICAgICAgIGxpbmVzID0gc2VsZi5nZXRfZGlzYXNzZW1ibHkoZnVuYykKKyAgICAgICAgZXhwZWN0ZWQgPSBleHBlY3RlZC5zcGxpdGxpbmVzKCkKICAgICAgICAgaWYgZXhwZWN0ZWQgIT0gbGluZXM6CiAgICAgICAgICAgICBzZWxmLmZhaWwoCiAgICAgICAgICAgICAgICAgImV2ZW50cyBkaWQgbm90IG1hdGNoIGV4cGVjdGF0aW9uOlxuIiArCkBAIC0xNTcsNyArMjAwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lcykpKQogCiAgICAgZGVmIHRlc3Rfb3BtYXAoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlzLm9wbWFwWyJTVE9QX0NPREUiXSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaXMub3BtYXBbIk5PUCJdLCA5KQogICAgICAgICBzZWxmLmFzc2VydEluKGRpcy5vcG1hcFsiTE9BRF9DT05TVCJdLCBkaXMuaGFzY29uc3QpCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oZGlzLm9wbWFwWyJTVE9SRV9OQU1FIl0sIGRpcy5oYXNuYW1lKQogCkBAIC0yMTEsNiArMjU0LDQ0IEBACiAgICAgICAgIHNlbGYuZG9fZGlzYXNzZW1ibHlfdGVzdChzaW1wbGVfc3RtdF9zdHIsIGRpc19zaW1wbGVfc3RtdF9zdHIpCiAgICAgICAgIHNlbGYuZG9fZGlzYXNzZW1ibHlfdGVzdChjb21wb3VuZF9zdG10X3N0ciwgZGlzX2NvbXBvdW5kX3N0bXRfc3RyKQogCisgICAgZGVmIHRlc3RfZGlzYXNzZW1ibGVfYnl0ZXMoc2VsZik6CisgICAgICAgIHNlbGYuZG9fZGlzYXNzZW1ibHlfdGVzdChfZi5fX2NvZGVfXy5jb19jb2RlLCBkaXNfZl9jb19jb2RlKQorCisgICAgZGVmIHRlc3RfZGlzYXNzZW1ibGVfbWV0aG9kKHNlbGYpOgorICAgICAgICBzZWxmLmRvX2Rpc2Fzc2VtYmx5X3Rlc3QoX0MoMSkuX19pbml0X18sIGRpc19jX2luc3RhbmNlX21ldGhvZCkKKworICAgIGRlZiB0ZXN0X2Rpc2Fzc2VtYmxlX21ldGhvZF9ieXRlcyhzZWxmKToKKyAgICAgICAgbWV0aG9kX2J5dGVjb2RlID0gX0MoMSkuX19pbml0X18uX19jb2RlX18uY29fY29kZQorICAgICAgICBzZWxmLmRvX2Rpc2Fzc2VtYmx5X3Rlc3QobWV0aG9kX2J5dGVjb2RlLCBkaXNfY19pbnN0YW5jZV9tZXRob2RfYnl0ZXMpCisKKyAgICBkZWYgdGVzdF9kaXNfbm9uZShzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGVsIHN5cy5sYXN0X3RyYWNlYmFjaworICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgZGlzLmRpcywgTm9uZSkKKworICAgIGRlZiB0ZXN0X2Rpc19vYmplY3Qoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZGlzLmRpcywgb2JqZWN0KCkpCisKKyAgICBkZWYgdGVzdF9kaXNfdHJhY2ViYWNrKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBkZWwgc3lzLmxhc3RfdHJhY2ViYWNrCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICB0cnk6CisgICAgICAgICAgICAxLzAKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgdGIgPSBlLl9fdHJhY2ViYWNrX18KKyAgICAgICAgICAgIHN5cy5sYXN0X3RyYWNlYmFjayA9IHRiCisKKyAgICAgICAgdGJfZGlzID0gc2VsZi5nZXRfZGlzYXNzZW1ibGVfYXNfc3RyaW5nKHRiLnRiX2ZyYW1lLmZfY29kZSwgdGIudGJfbGFzdGkpCisgICAgICAgIHNlbGYuZG9fZGlzYXNzZW1ibHlfdGVzdChOb25lLCB0Yl9kaXMpCisKKyAgICBkZWYgdGVzdF9kaXNfb2JqZWN0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGRpcy5kaXMsIG9iamVjdCgpKQorCiBjb2RlX2luZm9fY29kZV9pbmZvID0gIiIiXAogTmFtZTogICAgICAgICAgICAgIGNvZGVfaW5mbwogRmlsZW5hbWU6ICAgICAgICAgICguKikKQEAgLTI1OCw2ICszMzksNyBAQAogQ29uc3RhbnRzOgogICAgMDogTm9uZQogICAgMTogPGNvZGUgb2JqZWN0IGYgYXQgKC4qKSwgZmlsZSAiKC4qKSIsIGxpbmUgKC4qKT4KKyAgIDI6ICd0cmlja3kuPGxvY2Fscz4uZicKIFZhcmlhYmxlIG5hbWVzOgogICAgMDogeAogICAgMTogeQpAQCAtMzY0LDYgKzQ0NiwxMyBAQAogICAgICAgICAgICAgICAgIGRpcy5zaG93X2NvZGUoeCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXgob3V0cHV0LmdldHZhbHVlKCksIGV4cGVjdGVkKyJcbiIpCiAKKyAgICBkZWYgdGVzdF9jb2RlX2luZm9fb2JqZWN0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGRpcy5jb2RlX2luZm8sIG9iamVjdCgpKQorCisgICAgZGVmIHRlc3RfcHJldHR5X2ZsYWdzX25vX2ZsYWdzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpcy5wcmV0dHlfZmxhZ3MoMCksICcweDAnKQorCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBydW5fdW5pdHRlc3QoRGlzVGVzdHMsIENvZGVJbmZvVGVzdHMpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZG9jdGVzdC5weSBiL0xpYi90ZXN0L3Rlc3RfZG9jdGVzdC5weQppbmRleCA1OTY5Y2UyLi40NGI5NTU0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2RvY3Rlc3QucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9kb2N0ZXN0LnB5CkBAIC01LDYgKzUsNyBAQAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBpbXBvcnQgZG9jdGVzdAogaW1wb3J0IG9zCitpbXBvcnQgc3lzCiAKIAogIyBOT1RFOiBUaGVyZSBhcmUgc29tZSBhZGRpdGlvbmFsIHRlc3RzIHJlbGF0aW5nIHRvIGludGVyYWN0aW9uIHdpdGgKQEAgLTQzMiw3ICs0MzMsNyBAQAogICAgID4+PiB0ZXN0cyA9IGZpbmRlci5maW5kKHNhbXBsZV9mdW5jKQogCiAgICAgPj4+IHByaW50KHRlc3RzKSAgIyBkb2N0ZXN0OiArRUxMSVBTSVMKLSAgICBbPERvY1Rlc3Qgc2FtcGxlX2Z1bmMgZnJvbSAuLi46MTcgKDEgZXhhbXBsZSk+XQorICAgIFs8RG9jVGVzdCBzYW1wbGVfZnVuYyBmcm9tIC4uLjoxOCAoMSBleGFtcGxlKT5dCiAKIFRoZSBleGFjdCBuYW1lIGRlcGVuZHMgb24gaG93IHRlc3RfZG9jdGVzdCB3YXMgaW52b2tlZCwgc28gYWxsb3cgZm9yCiBsZWFkaW5nIHBhdGggY29tcG9uZW50cy4KQEAgLTE3NDUsMjI2ICsxNzQ2LDIyNyBAQAogCiAiIiIKIAotZGVmIHRlc3RfcGRiX3NldF90cmFjZSgpOgotICAgICIiIlVzaW5nIHBkYi5zZXRfdHJhY2UgZnJvbSBhIGRvY3Rlc3QuCitpZiBub3QgaGFzYXR0cihzeXMsICdnZXR0cmFjZScpIG9yIG5vdCBzeXMuZ2V0dHJhY2UoKToKKyAgICBkZWYgdGVzdF9wZGJfc2V0X3RyYWNlKCk6CisgICAgICAgICIiIlVzaW5nIHBkYi5zZXRfdHJhY2UgZnJvbSBhIGRvY3Rlc3QuCiAKLSAgICBZb3UgY2FuIHVzZSBwZGIuc2V0X3RyYWNlIGZyb20gYSBkb2N0ZXN0LiAgVG8gZG8gc28sIHlvdSBtdXN0Ci0gICAgcmV0cmlldmUgdGhlIHNldF90cmFjZSBmdW5jdGlvbiBmcm9tIHRoZSBwZGIgbW9kdWxlIGF0IHRoZSB0aW1lCi0gICAgeW91IHVzZSBpdC4gIFRoZSBkb2N0ZXN0IG1vZHVsZSBjaGFuZ2VzIHN5cy5zdGRvdXQgc28gdGhhdCBpdCBjYW4KLSAgICBjYXB0dXJlIHByb2dyYW0gb3V0cHV0LiAgSXQgYWxzbyB0ZW1wb3JhcmlseSByZXBsYWNlcyBwZGIuc2V0X3RyYWNlCi0gICAgd2l0aCBhIHZlcnNpb24gdGhhdCByZXN0b3JlcyBzdGRvdXQuICBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgeW91IHRvCi0gICAgc2VlIGRlYnVnZ2VyIG91dHB1dC4KKyAgICAgICAgWW91IGNhbiB1c2UgcGRiLnNldF90cmFjZSBmcm9tIGEgZG9jdGVzdC4gIFRvIGRvIHNvLCB5b3UgbXVzdAorICAgICAgICByZXRyaWV2ZSB0aGUgc2V0X3RyYWNlIGZ1bmN0aW9uIGZyb20gdGhlIHBkYiBtb2R1bGUgYXQgdGhlIHRpbWUKKyAgICAgICAgeW91IHVzZSBpdC4gIFRoZSBkb2N0ZXN0IG1vZHVsZSBjaGFuZ2VzIHN5cy5zdGRvdXQgc28gdGhhdCBpdCBjYW4KKyAgICAgICAgY2FwdHVyZSBwcm9ncmFtIG91dHB1dC4gIEl0IGFsc28gdGVtcG9yYXJpbHkgcmVwbGFjZXMgcGRiLnNldF90cmFjZQorICAgICAgICB3aXRoIGEgdmVyc2lvbiB0aGF0IHJlc3RvcmVzIHN0ZG91dC4gIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciB5b3UgdG8KKyAgICAgICAgc2VlIGRlYnVnZ2VyIG91dHB1dC4KIAotICAgICAgPj4+IGRvYyA9ICcnJwotICAgICAgLi4uID4+PiB4ID0gNDIKLSAgICAgIC4uLiA+Pj4gcmFpc2UgRXhjZXB0aW9uKCdjbMOpJykKLSAgICAgIC4uLiBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Ci0gICAgICAuLi4gRXhjZXB0aW9uOiBjbMOpCi0gICAgICAuLi4gPj4+IGltcG9ydCBwZGI7IHBkYi5zZXRfdHJhY2UoKQotICAgICAgLi4uICcnJwotICAgICAgPj4+IHBhcnNlciA9IGRvY3Rlc3QuRG9jVGVzdFBhcnNlcigpCi0gICAgICA+Pj4gdGVzdCA9IHBhcnNlci5nZXRfZG9jdGVzdChkb2MsIHt9LCAiZm9vLWJhckBiYXoiLCAiZm9vLWJhckBiYXoucHkiLCAwKQotICAgICAgPj4+IHJ1bm5lciA9IGRvY3Rlc3QuRG9jVGVzdFJ1bm5lcih2ZXJib3NlPUZhbHNlKQorICAgICAgICAgID4+PiBkb2MgPSAnJycKKyAgICAgICAgICAuLi4gPj4+IHggPSA0MgorICAgICAgICAgIC4uLiA+Pj4gcmFpc2UgRXhjZXB0aW9uKCdjbMOpJykKKyAgICAgICAgICAuLi4gVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgICAgIC4uLiBFeGNlcHRpb246IGNsw6kKKyAgICAgICAgICAuLi4gPj4+IGltcG9ydCBwZGI7IHBkYi5zZXRfdHJhY2UoKQorICAgICAgICAgIC4uLiAnJycKKyAgICAgICAgICA+Pj4gcGFyc2VyID0gZG9jdGVzdC5Eb2NUZXN0UGFyc2VyKCkKKyAgICAgICAgICA+Pj4gdGVzdCA9IHBhcnNlci5nZXRfZG9jdGVzdChkb2MsIHt9LCAiZm9vLWJhckBiYXoiLCAiZm9vLWJhckBiYXoucHkiLCAwKQorICAgICAgICAgID4+PiBydW5uZXIgPSBkb2N0ZXN0LkRvY1Rlc3RSdW5uZXIodmVyYm9zZT1GYWxzZSkKIAotICAgIFRvIGRlbW9uc3RyYXRlIHRoaXMsIHdlJ2xsIGNyZWF0ZSBhIGZha2Ugc3RhbmRhcmQgaW5wdXQgdGhhdAotICAgIGNhcHR1cmVzIG91ciBkZWJ1Z2dlciBpbnB1dDoKKyAgICAgICAgVG8gZGVtb25zdHJhdGUgdGhpcywgd2UnbGwgY3JlYXRlIGEgZmFrZSBzdGFuZGFyZCBpbnB1dCB0aGF0CisgICAgICAgIGNhcHR1cmVzIG91ciBkZWJ1Z2dlciBpbnB1dDoKIAotICAgICAgPj4+IGltcG9ydCB0ZW1wZmlsZQotICAgICAgPj4+IHJlYWxfc3RkaW4gPSBzeXMuc3RkaW4KLSAgICAgID4+PiBzeXMuc3RkaW4gPSBfRmFrZUlucHV0KFsKLSAgICAgIC4uLiAgICAncHJpbnQoeCknLCAgIyBwcmludCBkYXRhIGRlZmluZWQgYnkgdGhlIGV4YW1wbGUKLSAgICAgIC4uLiAgICAnY29udGludWUnLCAjIHN0b3AgZGVidWdnaW5nCi0gICAgICAuLi4gICAgJyddKQorICAgICAgICAgID4+PiBpbXBvcnQgdGVtcGZpbGUKKyAgICAgICAgICA+Pj4gcmVhbF9zdGRpbiA9IHN5cy5zdGRpbgorICAgICAgICAgID4+PiBzeXMuc3RkaW4gPSBfRmFrZUlucHV0KFsKKyAgICAgICAgICAuLi4gICAgJ3ByaW50KHgpJywgICMgcHJpbnQgZGF0YSBkZWZpbmVkIGJ5IHRoZSBleGFtcGxlCisgICAgICAgICAgLi4uICAgICdjb250aW51ZScsICMgc3RvcCBkZWJ1Z2dpbmcKKyAgICAgICAgICAuLi4gICAgJyddKQogCi0gICAgICA+Pj4gdHJ5OiBydW5uZXIucnVuKHRlc3QpCi0gICAgICAuLi4gZmluYWxseTogc3lzLnN0ZGluID0gcmVhbF9zdGRpbgotICAgICAgLS1SZXR1cm4tLQotICAgICAgPiA8ZG9jdGVzdCBmb28tYmFyQGJhelsyXT4oMSk8bW9kdWxlPigpLT5Ob25lCi0gICAgICAtPiBpbXBvcnQgcGRiOyBwZGIuc2V0X3RyYWNlKCkKLSAgICAgIChQZGIpIHByaW50KHgpCi0gICAgICA0MgotICAgICAgKFBkYikgY29udGludWUKLSAgICAgIFRlc3RSZXN1bHRzKGZhaWxlZD0wLCBhdHRlbXB0ZWQ9MykKKyAgICAgICAgICA+Pj4gdHJ5OiBydW5uZXIucnVuKHRlc3QpCisgICAgICAgICAgLi4uIGZpbmFsbHk6IHN5cy5zdGRpbiA9IHJlYWxfc3RkaW4KKyAgICAgICAgICAtLVJldHVybi0tCisgICAgICAgICAgPiA8ZG9jdGVzdCBmb28tYmFyQGJhelsyXT4oMSk8bW9kdWxlPigpLT5Ob25lCisgICAgICAgICAgLT4gaW1wb3J0IHBkYjsgcGRiLnNldF90cmFjZSgpCisgICAgICAgICAgKFBkYikgcHJpbnQoeCkKKyAgICAgICAgICA0MgorICAgICAgICAgIChQZGIpIGNvbnRpbnVlCisgICAgICAgICAgVGVzdFJlc3VsdHMoZmFpbGVkPTAsIGF0dGVtcHRlZD0zKQogCi0gICAgICBZb3UgY2FuIGFsc28gcHV0IHBkYi5zZXRfdHJhY2UgaW4gYSBmdW5jdGlvbiBjYWxsZWQgZnJvbSBhIHRlc3Q6CisgICAgICAgICAgWW91IGNhbiBhbHNvIHB1dCBwZGIuc2V0X3RyYWNlIGluIGEgZnVuY3Rpb24gY2FsbGVkIGZyb20gYSB0ZXN0OgogCi0gICAgICA+Pj4gZGVmIGNhbGxzX3NldF90cmFjZSgpOgotICAgICAgLi4uICAgIHk9MgotICAgICAgLi4uICAgIGltcG9ydCBwZGI7IHBkYi5zZXRfdHJhY2UoKQorICAgICAgICAgID4+PiBkZWYgY2FsbHNfc2V0X3RyYWNlKCk6CisgICAgICAgICAgLi4uICAgIHk9MgorICAgICAgICAgIC4uLiAgICBpbXBvcnQgcGRiOyBwZGIuc2V0X3RyYWNlKCkKIAotICAgICAgPj4+IGRvYyA9ICcnJwotICAgICAgLi4uID4+PiB4PTEKLSAgICAgIC4uLiA+Pj4gY2FsbHNfc2V0X3RyYWNlKCkKLSAgICAgIC4uLiAnJycKLSAgICAgID4+PiB0ZXN0ID0gcGFyc2VyLmdldF9kb2N0ZXN0KGRvYywgZ2xvYmFscygpLCAiZm9vLWJhckBiYXoiLCAiZm9vLWJhckBiYXoucHkiLCAwKQotICAgICAgPj4+IHJlYWxfc3RkaW4gPSBzeXMuc3RkaW4KLSAgICAgID4+PiBzeXMuc3RkaW4gPSBfRmFrZUlucHV0KFsKLSAgICAgIC4uLiAgICAncHJpbnQoeSknLCAgIyBwcmludCBkYXRhIGRlZmluZWQgaW4gdGhlIGZ1bmN0aW9uCi0gICAgICAuLi4gICAgJ3VwJywgICAgICAgIyBvdXQgb2YgZnVuY3Rpb24KLSAgICAgIC4uLiAgICAncHJpbnQoeCknLCAgIyBwcmludCBkYXRhIGRlZmluZWQgYnkgdGhlIGV4YW1wbGUKLSAgICAgIC4uLiAgICAnY29udGludWUnLCAjIHN0b3AgZGVidWdnaW5nCi0gICAgICAuLi4gICAgJyddKQorICAgICAgICAgID4+PiBkb2MgPSAnJycKKyAgICAgICAgICAuLi4gPj4+IHg9MQorICAgICAgICAgIC4uLiA+Pj4gY2FsbHNfc2V0X3RyYWNlKCkKKyAgICAgICAgICAuLi4gJycnCisgICAgICAgICAgPj4+IHRlc3QgPSBwYXJzZXIuZ2V0X2RvY3Rlc3QoZG9jLCBnbG9iYWxzKCksICJmb28tYmFyQGJheiIsICJmb28tYmFyQGJhei5weSIsIDApCisgICAgICAgICAgPj4+IHJlYWxfc3RkaW4gPSBzeXMuc3RkaW4KKyAgICAgICAgICA+Pj4gc3lzLnN0ZGluID0gX0Zha2VJbnB1dChbCisgICAgICAgICAgLi4uICAgICdwcmludCh5KScsICAjIHByaW50IGRhdGEgZGVmaW5lZCBpbiB0aGUgZnVuY3Rpb24KKyAgICAgICAgICAuLi4gICAgJ3VwJywgICAgICAgIyBvdXQgb2YgZnVuY3Rpb24KKyAgICAgICAgICAuLi4gICAgJ3ByaW50KHgpJywgICMgcHJpbnQgZGF0YSBkZWZpbmVkIGJ5IHRoZSBleGFtcGxlCisgICAgICAgICAgLi4uICAgICdjb250aW51ZScsICMgc3RvcCBkZWJ1Z2dpbmcKKyAgICAgICAgICAuLi4gICAgJyddKQogCi0gICAgICA+Pj4gdHJ5OgotICAgICAgLi4uICAgICBydW5uZXIucnVuKHRlc3QpCi0gICAgICAuLi4gZmluYWxseToKLSAgICAgIC4uLiAgICAgc3lzLnN0ZGluID0gcmVhbF9zdGRpbgotICAgICAgLS1SZXR1cm4tLQotICAgICAgPiA8ZG9jdGVzdCB0ZXN0LnRlc3RfZG9jdGVzdC50ZXN0X3BkYl9zZXRfdHJhY2VbOF0+KDMpY2FsbHNfc2V0X3RyYWNlKCktPk5vbmUKLSAgICAgIC0+IGltcG9ydCBwZGI7IHBkYi5zZXRfdHJhY2UoKQotICAgICAgKFBkYikgcHJpbnQoeSkKLSAgICAgIDIKLSAgICAgIChQZGIpIHVwCi0gICAgICA+IDxkb2N0ZXN0IGZvby1iYXJAYmF6WzFdPigxKTxtb2R1bGU+KCkKLSAgICAgIC0+IGNhbGxzX3NldF90cmFjZSgpCi0gICAgICAoUGRiKSBwcmludCh4KQotICAgICAgMQotICAgICAgKFBkYikgY29udGludWUKLSAgICAgIFRlc3RSZXN1bHRzKGZhaWxlZD0wLCBhdHRlbXB0ZWQ9MikKKyAgICAgICAgICA+Pj4gdHJ5OgorICAgICAgICAgIC4uLiAgICAgcnVubmVyLnJ1bih0ZXN0KQorICAgICAgICAgIC4uLiBmaW5hbGx5OgorICAgICAgICAgIC4uLiAgICAgc3lzLnN0ZGluID0gcmVhbF9zdGRpbgorICAgICAgICAgIC0tUmV0dXJuLS0KKyAgICAgICAgICA+IDxkb2N0ZXN0IHRlc3QudGVzdF9kb2N0ZXN0LnRlc3RfcGRiX3NldF90cmFjZVs4XT4oMyljYWxsc19zZXRfdHJhY2UoKS0+Tm9uZQorICAgICAgICAgIC0+IGltcG9ydCBwZGI7IHBkYi5zZXRfdHJhY2UoKQorICAgICAgICAgIChQZGIpIHByaW50KHkpCisgICAgICAgICAgMgorICAgICAgICAgIChQZGIpIHVwCisgICAgICAgICAgPiA8ZG9jdGVzdCBmb28tYmFyQGJhelsxXT4oMSk8bW9kdWxlPigpCisgICAgICAgICAgLT4gY2FsbHNfc2V0X3RyYWNlKCkKKyAgICAgICAgICAoUGRiKSBwcmludCh4KQorICAgICAgICAgIDEKKyAgICAgICAgICAoUGRiKSBjb250aW51ZQorICAgICAgICAgIFRlc3RSZXN1bHRzKGZhaWxlZD0wLCBhdHRlbXB0ZWQ9MikKIAotICAgIER1cmluZyBpbnRlcmFjdGl2ZSBkZWJ1Z2dpbmcsIHNvdXJjZSBjb2RlIGlzIHNob3duLCBldmVuIGZvcgotICAgIGRvY3Rlc3QgZXhhbXBsZXM6CisgICAgICAgIER1cmluZyBpbnRlcmFjdGl2ZSBkZWJ1Z2dpbmcsIHNvdXJjZSBjb2RlIGlzIHNob3duLCBldmVuIGZvcgorICAgICAgICBkb2N0ZXN0IGV4YW1wbGVzOgogCi0gICAgICA+Pj4gZG9jID0gJycnCi0gICAgICAuLi4gPj4+IGRlZiBmKHgpOgotICAgICAgLi4uIC4uLiAgICAgZyh4KjIpCi0gICAgICAuLi4gPj4+IGRlZiBnKHgpOgotICAgICAgLi4uIC4uLiAgICAgcHJpbnQoeCszKQotICAgICAgLi4uIC4uLiAgICAgaW1wb3J0IHBkYjsgcGRiLnNldF90cmFjZSgpCi0gICAgICAuLi4gPj4+IGYoMykKLSAgICAgIC4uLiAnJycKLSAgICAgID4+PiB0ZXN0ID0gcGFyc2VyLmdldF9kb2N0ZXN0KGRvYywgZ2xvYmFscygpLCAiZm9vLWJhckBiYXoiLCAiZm9vLWJhckBiYXoucHkiLCAwKQotICAgICAgPj4+IHJlYWxfc3RkaW4gPSBzeXMuc3RkaW4KLSAgICAgID4+PiBzeXMuc3RkaW4gPSBfRmFrZUlucHV0KFsKLSAgICAgIC4uLiAgICAnbGlzdCcsICAgICAjIGxpc3Qgc291cmNlIGZyb20gZXhhbXBsZSAyCi0gICAgICAuLi4gICAgJ25leHQnLCAgICAgIyByZXR1cm4gZnJvbSBnKCkKLSAgICAgIC4uLiAgICAnbGlzdCcsICAgICAjIGxpc3Qgc291cmNlIGZyb20gZXhhbXBsZSAxCi0gICAgICAuLi4gICAgJ25leHQnLCAgICAgIyByZXR1cm4gZnJvbSBmKCkKLSAgICAgIC4uLiAgICAnbGlzdCcsICAgICAjIGxpc3Qgc291cmNlIGZyb20gZXhhbXBsZSAzCi0gICAgICAuLi4gICAgJ2NvbnRpbnVlJywgIyBzdG9wIGRlYnVnZ2luZwotICAgICAgLi4uICAgICcnXSkKLSAgICAgID4+PiB0cnk6IHJ1bm5lci5ydW4odGVzdCkKLSAgICAgIC4uLiBmaW5hbGx5OiBzeXMuc3RkaW4gPSByZWFsX3N0ZGluCi0gICAgICAuLi4gIyBkb2N0ZXN0OiArTk9STUFMSVpFX1dISVRFU1BBQ0UKLSAgICAgIC0tUmV0dXJuLS0KLSAgICAgID4gPGRvY3Rlc3QgZm9vLWJhckBiYXpbMV0+KDMpZygpLT5Ob25lCi0gICAgICAtPiBpbXBvcnQgcGRiOyBwZGIuc2V0X3RyYWNlKCkKLSAgICAgIChQZGIpIGxpc3QKLSAgICAgICAgMSAgICAgZGVmIGcoeCk6Ci0gICAgICAgIDIgICAgICAgICBwcmludCh4KzMpCi0gICAgICAgIDMgIC0+ICAgICBpbXBvcnQgcGRiOyBwZGIuc2V0X3RyYWNlKCkKLSAgICAgIFtFT0ZdCi0gICAgICAoUGRiKSBuZXh0Ci0gICAgICAtLVJldHVybi0tCi0gICAgICA+IDxkb2N0ZXN0IGZvby1iYXJAYmF6WzBdPigyKWYoKS0+Tm9uZQotICAgICAgLT4gZyh4KjIpCi0gICAgICAoUGRiKSBsaXN0Ci0gICAgICAgIDEgICAgIGRlZiBmKHgpOgotICAgICAgICAyICAtPiAgICAgZyh4KjIpCi0gICAgICBbRU9GXQotICAgICAgKFBkYikgbmV4dAotICAgICAgLS1SZXR1cm4tLQotICAgICAgPiA8ZG9jdGVzdCBmb28tYmFyQGJhelsyXT4oMSk8bW9kdWxlPigpLT5Ob25lCi0gICAgICAtPiBmKDMpCi0gICAgICAoUGRiKSBsaXN0Ci0gICAgICAgIDEgIC0+IGYoMykKLSAgICAgIFtFT0ZdCi0gICAgICAoUGRiKSBjb250aW51ZQotICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICAgICAgRmlsZSAiZm9vLWJhckBiYXoucHkiLCBsaW5lIDcsIGluIGZvby1iYXJAYmF6Ci0gICAgICBGYWlsZWQgZXhhbXBsZToKLSAgICAgICAgICBmKDMpCi0gICAgICBFeHBlY3RlZCBub3RoaW5nCi0gICAgICBHb3Q6Ci0gICAgICAgICAgOQotICAgICAgVGVzdFJlc3VsdHMoZmFpbGVkPTEsIGF0dGVtcHRlZD0zKQotICAgICAgIiIiCisgICAgICAgICAgPj4+IGRvYyA9ICcnJworICAgICAgICAgIC4uLiA+Pj4gZGVmIGYoeCk6CisgICAgICAgICAgLi4uIC4uLiAgICAgZyh4KjIpCisgICAgICAgICAgLi4uID4+PiBkZWYgZyh4KToKKyAgICAgICAgICAuLi4gLi4uICAgICBwcmludCh4KzMpCisgICAgICAgICAgLi4uIC4uLiAgICAgaW1wb3J0IHBkYjsgcGRiLnNldF90cmFjZSgpCisgICAgICAgICAgLi4uID4+PiBmKDMpCisgICAgICAgICAgLi4uICcnJworICAgICAgICAgID4+PiB0ZXN0ID0gcGFyc2VyLmdldF9kb2N0ZXN0KGRvYywgZ2xvYmFscygpLCAiZm9vLWJhckBiYXoiLCAiZm9vLWJhckBiYXoucHkiLCAwKQorICAgICAgICAgID4+PiByZWFsX3N0ZGluID0gc3lzLnN0ZGluCisgICAgICAgICAgPj4+IHN5cy5zdGRpbiA9IF9GYWtlSW5wdXQoWworICAgICAgICAgIC4uLiAgICAnbGlzdCcsICAgICAjIGxpc3Qgc291cmNlIGZyb20gZXhhbXBsZSAyCisgICAgICAgICAgLi4uICAgICduZXh0JywgICAgICMgcmV0dXJuIGZyb20gZygpCisgICAgICAgICAgLi4uICAgICdsaXN0JywgICAgICMgbGlzdCBzb3VyY2UgZnJvbSBleGFtcGxlIDEKKyAgICAgICAgICAuLi4gICAgJ25leHQnLCAgICAgIyByZXR1cm4gZnJvbSBmKCkKKyAgICAgICAgICAuLi4gICAgJ2xpc3QnLCAgICAgIyBsaXN0IHNvdXJjZSBmcm9tIGV4YW1wbGUgMworICAgICAgICAgIC4uLiAgICAnY29udGludWUnLCAjIHN0b3AgZGVidWdnaW5nCisgICAgICAgICAgLi4uICAgICcnXSkKKyAgICAgICAgICA+Pj4gdHJ5OiBydW5uZXIucnVuKHRlc3QpCisgICAgICAgICAgLi4uIGZpbmFsbHk6IHN5cy5zdGRpbiA9IHJlYWxfc3RkaW4KKyAgICAgICAgICAuLi4gIyBkb2N0ZXN0OiArTk9STUFMSVpFX1dISVRFU1BBQ0UKKyAgICAgICAgICAtLVJldHVybi0tCisgICAgICAgICAgPiA8ZG9jdGVzdCBmb28tYmFyQGJhelsxXT4oMylnKCktPk5vbmUKKyAgICAgICAgICAtPiBpbXBvcnQgcGRiOyBwZGIuc2V0X3RyYWNlKCkKKyAgICAgICAgICAoUGRiKSBsaXN0CisgICAgICAgICAgICAxICAgICBkZWYgZyh4KToKKyAgICAgICAgICAgIDIgICAgICAgICBwcmludCh4KzMpCisgICAgICAgICAgICAzICAtPiAgICAgaW1wb3J0IHBkYjsgcGRiLnNldF90cmFjZSgpCisgICAgICAgICAgW0VPRl0KKyAgICAgICAgICAoUGRiKSBuZXh0CisgICAgICAgICAgLS1SZXR1cm4tLQorICAgICAgICAgID4gPGRvY3Rlc3QgZm9vLWJhckBiYXpbMF0+KDIpZigpLT5Ob25lCisgICAgICAgICAgLT4gZyh4KjIpCisgICAgICAgICAgKFBkYikgbGlzdAorICAgICAgICAgICAgMSAgICAgZGVmIGYoeCk6CisgICAgICAgICAgICAyICAtPiAgICAgZyh4KjIpCisgICAgICAgICAgW0VPRl0KKyAgICAgICAgICAoUGRiKSBuZXh0CisgICAgICAgICAgLS1SZXR1cm4tLQorICAgICAgICAgID4gPGRvY3Rlc3QgZm9vLWJhckBiYXpbMl0+KDEpPG1vZHVsZT4oKS0+Tm9uZQorICAgICAgICAgIC0+IGYoMykKKyAgICAgICAgICAoUGRiKSBsaXN0CisgICAgICAgICAgICAxICAtPiBmKDMpCisgICAgICAgICAgW0VPRl0KKyAgICAgICAgICAoUGRiKSBjb250aW51ZQorICAgICAgICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgICAgICAgICBGaWxlICJmb28tYmFyQGJhei5weSIsIGxpbmUgNywgaW4gZm9vLWJhckBiYXoKKyAgICAgICAgICBGYWlsZWQgZXhhbXBsZToKKyAgICAgICAgICAgICAgZigzKQorICAgICAgICAgIEV4cGVjdGVkIG5vdGhpbmcKKyAgICAgICAgICBHb3Q6CisgICAgICAgICAgICAgIDkKKyAgICAgICAgICBUZXN0UmVzdWx0cyhmYWlsZWQ9MSwgYXR0ZW1wdGVkPTMpCisgICAgICAgICAgIiIiCiAKLWRlZiB0ZXN0X3BkYl9zZXRfdHJhY2VfbmVzdGVkKCk6Ci0gICAgIiIiVGhpcyBpbGx1c3RyYXRlcyBtb3JlLWRlbWFuZGluZyB1c2Ugb2Ygc2V0X3RyYWNlIHdpdGggbmVzdGVkIGZ1bmN0aW9ucy4KKyAgICBkZWYgdGVzdF9wZGJfc2V0X3RyYWNlX25lc3RlZCgpOgorICAgICAgICAiIiJUaGlzIGlsbHVzdHJhdGVzIG1vcmUtZGVtYW5kaW5nIHVzZSBvZiBzZXRfdHJhY2Ugd2l0aCBuZXN0ZWQgZnVuY3Rpb25zLgogCi0gICAgPj4+IGNsYXNzIEMob2JqZWN0KToKLSAgICAuLi4gICAgIGRlZiBjYWxsc19zZXRfdHJhY2Uoc2VsZik6Ci0gICAgLi4uICAgICAgICAgeSA9IDEKLSAgICAuLi4gICAgICAgICBpbXBvcnQgcGRiOyBwZGIuc2V0X3RyYWNlKCkKLSAgICAuLi4gICAgICAgICBzZWxmLmYxKCkKLSAgICAuLi4gICAgICAgICB5ID0gMgotICAgIC4uLiAgICAgZGVmIGYxKHNlbGYpOgotICAgIC4uLiAgICAgICAgIHggPSAxCi0gICAgLi4uICAgICAgICAgc2VsZi5mMigpCi0gICAgLi4uICAgICAgICAgeCA9IDIKLSAgICAuLi4gICAgIGRlZiBmMihzZWxmKToKLSAgICAuLi4gICAgICAgICB6ID0gMQotICAgIC4uLiAgICAgICAgIHogPSAyCisgICAgICAgID4+PiBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgIC4uLiAgICAgZGVmIGNhbGxzX3NldF90cmFjZShzZWxmKToKKyAgICAgICAgLi4uICAgICAgICAgeSA9IDEKKyAgICAgICAgLi4uICAgICAgICAgaW1wb3J0IHBkYjsgcGRiLnNldF90cmFjZSgpCisgICAgICAgIC4uLiAgICAgICAgIHNlbGYuZjEoKQorICAgICAgICAuLi4gICAgICAgICB5ID0gMgorICAgICAgICAuLi4gICAgIGRlZiBmMShzZWxmKToKKyAgICAgICAgLi4uICAgICAgICAgeCA9IDEKKyAgICAgICAgLi4uICAgICAgICAgc2VsZi5mMigpCisgICAgICAgIC4uLiAgICAgICAgIHggPSAyCisgICAgICAgIC4uLiAgICAgZGVmIGYyKHNlbGYpOgorICAgICAgICAuLi4gICAgICAgICB6ID0gMQorICAgICAgICAuLi4gICAgICAgICB6ID0gMgogCi0gICAgPj4+IGNhbGxzX3NldF90cmFjZSA9IEMoKS5jYWxsc19zZXRfdHJhY2UKKyAgICAgICAgPj4+IGNhbGxzX3NldF90cmFjZSA9IEMoKS5jYWxsc19zZXRfdHJhY2UKIAotICAgID4+PiBkb2MgPSAnJycKLSAgICAuLi4gPj4+IGEgPSAxCi0gICAgLi4uID4+PiBjYWxsc19zZXRfdHJhY2UoKQotICAgIC4uLiAnJycKLSAgICA+Pj4gcGFyc2VyID0gZG9jdGVzdC5Eb2NUZXN0UGFyc2VyKCkKLSAgICA+Pj4gcnVubmVyID0gZG9jdGVzdC5Eb2NUZXN0UnVubmVyKHZlcmJvc2U9RmFsc2UpCi0gICAgPj4+IHRlc3QgPSBwYXJzZXIuZ2V0X2RvY3Rlc3QoZG9jLCBnbG9iYWxzKCksICJmb28tYmFyQGJheiIsICJmb28tYmFyQGJhei5weSIsIDApCi0gICAgPj4+IHJlYWxfc3RkaW4gPSBzeXMuc3RkaW4KLSAgICA+Pj4gc3lzLnN0ZGluID0gX0Zha2VJbnB1dChbCi0gICAgLi4uICAgICdwcmludCh5KScsICAjIHByaW50IGRhdGEgZGVmaW5lZCBpbiB0aGUgZnVuY3Rpb24KLSAgICAuLi4gICAgJ3N0ZXAnLCAnc3RlcCcsICdzdGVwJywgJ3N0ZXAnLCAnc3RlcCcsICdzdGVwJywgJ3ByaW50KHopJywKLSAgICAuLi4gICAgJ3VwJywgJ3ByaW50KHgpJywKLSAgICAuLi4gICAgJ3VwJywgJ3ByaW50KHkpJywKLSAgICAuLi4gICAgJ3VwJywgJ3ByaW50KGZvbyknLAotICAgIC4uLiAgICAnY29udGludWUnLCAjIHN0b3AgZGVidWdnaW5nCi0gICAgLi4uICAgICcnXSkKKyAgICAgICAgPj4+IGRvYyA9ICcnJworICAgICAgICAuLi4gPj4+IGEgPSAxCisgICAgICAgIC4uLiA+Pj4gY2FsbHNfc2V0X3RyYWNlKCkKKyAgICAgICAgLi4uICcnJworICAgICAgICA+Pj4gcGFyc2VyID0gZG9jdGVzdC5Eb2NUZXN0UGFyc2VyKCkKKyAgICAgICAgPj4+IHJ1bm5lciA9IGRvY3Rlc3QuRG9jVGVzdFJ1bm5lcih2ZXJib3NlPUZhbHNlKQorICAgICAgICA+Pj4gdGVzdCA9IHBhcnNlci5nZXRfZG9jdGVzdChkb2MsIGdsb2JhbHMoKSwgImZvby1iYXJAYmF6IiwgImZvby1iYXJAYmF6LnB5IiwgMCkKKyAgICAgICAgPj4+IHJlYWxfc3RkaW4gPSBzeXMuc3RkaW4KKyAgICAgICAgPj4+IHN5cy5zdGRpbiA9IF9GYWtlSW5wdXQoWworICAgICAgICAuLi4gICAgJ3ByaW50KHkpJywgICMgcHJpbnQgZGF0YSBkZWZpbmVkIGluIHRoZSBmdW5jdGlvbgorICAgICAgICAuLi4gICAgJ3N0ZXAnLCAnc3RlcCcsICdzdGVwJywgJ3N0ZXAnLCAnc3RlcCcsICdzdGVwJywgJ3ByaW50KHopJywKKyAgICAgICAgLi4uICAgICd1cCcsICdwcmludCh4KScsCisgICAgICAgIC4uLiAgICAndXAnLCAncHJpbnQoeSknLAorICAgICAgICAuLi4gICAgJ3VwJywgJ3ByaW50KGZvbyknLAorICAgICAgICAuLi4gICAgJ2NvbnRpbnVlJywgIyBzdG9wIGRlYnVnZ2luZworICAgICAgICAuLi4gICAgJyddKQogCi0gICAgPj4+IHRyeToKLSAgICAuLi4gICAgIHJ1bm5lci5ydW4odGVzdCkKLSAgICAuLi4gZmluYWxseToKLSAgICAuLi4gICAgIHN5cy5zdGRpbiA9IHJlYWxfc3RkaW4KLSAgICAuLi4gIyBkb2N0ZXN0OiArUkVQT1JUX05ESUZGCi0gICAgPiA8ZG9jdGVzdCB0ZXN0LnRlc3RfZG9jdGVzdC50ZXN0X3BkYl9zZXRfdHJhY2VfbmVzdGVkWzBdPig1KWNhbGxzX3NldF90cmFjZSgpCi0gICAgLT4gc2VsZi5mMSgpCi0gICAgKFBkYikgcHJpbnQoeSkKLSAgICAxCi0gICAgKFBkYikgc3RlcAotICAgIC0tQ2FsbC0tCi0gICAgPiA8ZG9jdGVzdCB0ZXN0LnRlc3RfZG9jdGVzdC50ZXN0X3BkYl9zZXRfdHJhY2VfbmVzdGVkWzBdPig3KWYxKCkKLSAgICAtPiBkZWYgZjEoc2VsZik6Ci0gICAgKFBkYikgc3RlcAotICAgID4gPGRvY3Rlc3QgdGVzdC50ZXN0X2RvY3Rlc3QudGVzdF9wZGJfc2V0X3RyYWNlX25lc3RlZFswXT4oOClmMSgpCi0gICAgLT4geCA9IDEKLSAgICAoUGRiKSBzdGVwCi0gICAgPiA8ZG9jdGVzdCB0ZXN0LnRlc3RfZG9jdGVzdC50ZXN0X3BkYl9zZXRfdHJhY2VfbmVzdGVkWzBdPig5KWYxKCkKLSAgICAtPiBzZWxmLmYyKCkKLSAgICAoUGRiKSBzdGVwCi0gICAgLS1DYWxsLS0KLSAgICA+IDxkb2N0ZXN0IHRlc3QudGVzdF9kb2N0ZXN0LnRlc3RfcGRiX3NldF90cmFjZV9uZXN0ZWRbMF0+KDExKWYyKCkKLSAgICAtPiBkZWYgZjIoc2VsZik6Ci0gICAgKFBkYikgc3RlcAotICAgID4gPGRvY3Rlc3QgdGVzdC50ZXN0X2RvY3Rlc3QudGVzdF9wZGJfc2V0X3RyYWNlX25lc3RlZFswXT4oMTIpZjIoKQotICAgIC0+IHogPSAxCi0gICAgKFBkYikgc3RlcAotICAgID4gPGRvY3Rlc3QgdGVzdC50ZXN0X2RvY3Rlc3QudGVzdF9wZGJfc2V0X3RyYWNlX25lc3RlZFswXT4oMTMpZjIoKQotICAgIC0+IHogPSAyCi0gICAgKFBkYikgcHJpbnQoeikKLSAgICAxCi0gICAgKFBkYikgdXAKLSAgICA+IDxkb2N0ZXN0IHRlc3QudGVzdF9kb2N0ZXN0LnRlc3RfcGRiX3NldF90cmFjZV9uZXN0ZWRbMF0+KDkpZjEoKQotICAgIC0+IHNlbGYuZjIoKQotICAgIChQZGIpIHByaW50KHgpCi0gICAgMQotICAgIChQZGIpIHVwCi0gICAgPiA8ZG9jdGVzdCB0ZXN0LnRlc3RfZG9jdGVzdC50ZXN0X3BkYl9zZXRfdHJhY2VfbmVzdGVkWzBdPig1KWNhbGxzX3NldF90cmFjZSgpCi0gICAgLT4gc2VsZi5mMSgpCi0gICAgKFBkYikgcHJpbnQoeSkKLSAgICAxCi0gICAgKFBkYikgdXAKLSAgICA+IDxkb2N0ZXN0IGZvby1iYXJAYmF6WzFdPigxKTxtb2R1bGU+KCkKLSAgICAtPiBjYWxsc19zZXRfdHJhY2UoKQotICAgIChQZGIpIHByaW50KGZvbykKLSAgICAqKiogTmFtZUVycm9yOiBuYW1lICdmb28nIGlzIG5vdCBkZWZpbmVkCi0gICAgKFBkYikgY29udGludWUKLSAgICBUZXN0UmVzdWx0cyhmYWlsZWQ9MCwgYXR0ZW1wdGVkPTIpCi0iIiIKKyAgICAgICAgPj4+IHRyeToKKyAgICAgICAgLi4uICAgICBydW5uZXIucnVuKHRlc3QpCisgICAgICAgIC4uLiBmaW5hbGx5OgorICAgICAgICAuLi4gICAgIHN5cy5zdGRpbiA9IHJlYWxfc3RkaW4KKyAgICAgICAgLi4uICMgZG9jdGVzdDogK1JFUE9SVF9ORElGRgorICAgICAgICA+IDxkb2N0ZXN0IHRlc3QudGVzdF9kb2N0ZXN0LnRlc3RfcGRiX3NldF90cmFjZV9uZXN0ZWRbMF0+KDUpY2FsbHNfc2V0X3RyYWNlKCkKKyAgICAgICAgLT4gc2VsZi5mMSgpCisgICAgICAgIChQZGIpIHByaW50KHkpCisgICAgICAgIDEKKyAgICAgICAgKFBkYikgc3RlcAorICAgICAgICAtLUNhbGwtLQorICAgICAgICA+IDxkb2N0ZXN0IHRlc3QudGVzdF9kb2N0ZXN0LnRlc3RfcGRiX3NldF90cmFjZV9uZXN0ZWRbMF0+KDcpZjEoKQorICAgICAgICAtPiBkZWYgZjEoc2VsZik6CisgICAgICAgIChQZGIpIHN0ZXAKKyAgICAgICAgPiA8ZG9jdGVzdCB0ZXN0LnRlc3RfZG9jdGVzdC50ZXN0X3BkYl9zZXRfdHJhY2VfbmVzdGVkWzBdPig4KWYxKCkKKyAgICAgICAgLT4geCA9IDEKKyAgICAgICAgKFBkYikgc3RlcAorICAgICAgICA+IDxkb2N0ZXN0IHRlc3QudGVzdF9kb2N0ZXN0LnRlc3RfcGRiX3NldF90cmFjZV9uZXN0ZWRbMF0+KDkpZjEoKQorICAgICAgICAtPiBzZWxmLmYyKCkKKyAgICAgICAgKFBkYikgc3RlcAorICAgICAgICAtLUNhbGwtLQorICAgICAgICA+IDxkb2N0ZXN0IHRlc3QudGVzdF9kb2N0ZXN0LnRlc3RfcGRiX3NldF90cmFjZV9uZXN0ZWRbMF0+KDExKWYyKCkKKyAgICAgICAgLT4gZGVmIGYyKHNlbGYpOgorICAgICAgICAoUGRiKSBzdGVwCisgICAgICAgID4gPGRvY3Rlc3QgdGVzdC50ZXN0X2RvY3Rlc3QudGVzdF9wZGJfc2V0X3RyYWNlX25lc3RlZFswXT4oMTIpZjIoKQorICAgICAgICAtPiB6ID0gMQorICAgICAgICAoUGRiKSBzdGVwCisgICAgICAgID4gPGRvY3Rlc3QgdGVzdC50ZXN0X2RvY3Rlc3QudGVzdF9wZGJfc2V0X3RyYWNlX25lc3RlZFswXT4oMTMpZjIoKQorICAgICAgICAtPiB6ID0gMgorICAgICAgICAoUGRiKSBwcmludCh6KQorICAgICAgICAxCisgICAgICAgIChQZGIpIHVwCisgICAgICAgID4gPGRvY3Rlc3QgdGVzdC50ZXN0X2RvY3Rlc3QudGVzdF9wZGJfc2V0X3RyYWNlX25lc3RlZFswXT4oOSlmMSgpCisgICAgICAgIC0+IHNlbGYuZjIoKQorICAgICAgICAoUGRiKSBwcmludCh4KQorICAgICAgICAxCisgICAgICAgIChQZGIpIHVwCisgICAgICAgID4gPGRvY3Rlc3QgdGVzdC50ZXN0X2RvY3Rlc3QudGVzdF9wZGJfc2V0X3RyYWNlX25lc3RlZFswXT4oNSljYWxsc19zZXRfdHJhY2UoKQorICAgICAgICAtPiBzZWxmLmYxKCkKKyAgICAgICAgKFBkYikgcHJpbnQoeSkKKyAgICAgICAgMQorICAgICAgICAoUGRiKSB1cAorICAgICAgICA+IDxkb2N0ZXN0IGZvby1iYXJAYmF6WzFdPigxKTxtb2R1bGU+KCkKKyAgICAgICAgLT4gY2FsbHNfc2V0X3RyYWNlKCkKKyAgICAgICAgKFBkYikgcHJpbnQoZm9vKQorICAgICAgICAqKiogTmFtZUVycm9yOiBuYW1lICdmb28nIGlzIG5vdCBkZWZpbmVkCisgICAgICAgIChQZGIpIGNvbnRpbnVlCisgICAgICAgIFRlc3RSZXN1bHRzKGZhaWxlZD0wLCBhdHRlbXB0ZWQ9MikKKyAgICAiIiIKIAogZGVmIHRlc3RfRG9jVGVzdFN1aXRlKCk6CiAgICAgIiIiRG9jVGVzdFN1aXRlIGNyZWF0ZXMgYSB1bml0dGVzdCB0ZXN0IHN1aXRlIGZyb20gYSBkb2N0ZXN0LgpAQCAtMjU0MSw3ICsyNTQzLDcgQEAKIAogZGVmIHRlc3RfY292ZXJhZ2UoY292ZXJkaXIpOgogICAgIHRyYWNlID0gc3VwcG9ydC5pbXBvcnRfbW9kdWxlKCd0cmFjZScpCi0gICAgdHJhY2VyID0gdHJhY2UuVHJhY2UoaWdub3JlZGlycz1bc3lzLnByZWZpeCwgc3lzLmV4ZWNfcHJlZml4LF0sCisgICAgdHJhY2VyID0gdHJhY2UuVHJhY2UoaWdub3JlZGlycz1bc3lzLmJhc2VfcHJlZml4LCBzeXMuYmFzZV9leGVjX3ByZWZpeCxdLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlPTAsIGNvdW50PTEpCiAgICAgdHJhY2VyLnJ1bigndGVzdF9tYWluKCknKQogICAgIHIgPSB0cmFjZXIucmVzdWx0cygpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2R1bW15X3RocmVhZC5weSBiL0xpYi90ZXN0L3Rlc3RfZHVtbXlfdGhyZWFkLnB5CmluZGV4IGM2MTA3OGQuLjJmYWZlMWQgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZHVtbXlfdGhyZWFkLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZHVtbXlfdGhyZWFkLnB5CkBAIC0zNSw4ICszNSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAiTG9jayBvYmplY3QgZGlkIG5vdCByZWxlYXNlIHByb3Blcmx5LiIpCiAKICAgICBkZWYgdGVzdF9pbXByb3Blcl9yZWxlYXNlKHNlbGYpOgotICAgICAgICAjTWFrZSBzdXJlIHJlbGVhc2Ugb2YgYW4gdW5sb2NrZWQgdGhyZWFkIHJhaXNlcyBfdGhyZWFkLmVycm9yCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKF90aHJlYWQuZXJyb3IsIHNlbGYubG9jay5yZWxlYXNlKQorICAgICAgICAjTWFrZSBzdXJlIHJlbGVhc2Ugb2YgYW4gdW5sb2NrZWQgdGhyZWFkIHJhaXNlcyBSdW50aW1lRXJyb3IKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBzZWxmLmxvY2sucmVsZWFzZSkKIAogICAgIGRlZiB0ZXN0X2NvbmRfYWNxdWlyZV9zdWNjZXNzKHNlbGYpOgogICAgICAgICAjTWFrZSBzdXJlIHRoZSBjb25kaXRpb25hbCBhY3F1aXJpbmcgb2YgdGhlIGxvY2sgd29ya3MuCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2VtYWlsLnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWVlYmJhNS4uMDAwMDAwMAotLS0gYS9MaWIvdGVzdC90ZXN0X2VtYWlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAwNyBQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbgotIyBlbWFpbCBwYWNrYWdlIHVuaXQgdGVzdHMKLQotIyBUaGUgc3BlY2lmaWMgdGVzdHMgbm93IGxpdmUgaW4gTGliL2VtYWlsL3Rlc3QKLWZyb20gZW1haWwudGVzdC50ZXN0X2VtYWlsIGltcG9ydCBzdWl0ZQotZnJvbSBlbWFpbC50ZXN0LnRlc3RfZW1haWxfY29kZWNzIGltcG9ydCBzdWl0ZSBhcyBjb2RlY3Nfc3VpdGUKLWZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotCi1kZWYgdGVzdF9tYWluKCk6Ci0gICAgc3VwcG9ydC5ydW5fdW5pdHRlc3Qoc3VpdGUoKSkKLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChjb2RlY3Nfc3VpdGUoKSkKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lbWFpbC9fX2luaXRfXy5weSBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjIwNmFjZQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvX19pbml0X18ucHkKQEAgLTAsMCArMSwxNTAgQEAKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdGVzdC5zdXBwb3J0CitpbXBvcnQgZW1haWwKK2Zyb20gZW1haWwubWVzc2FnZSBpbXBvcnQgTWVzc2FnZQorZnJvbSBlbWFpbC5fcG9saWN5YmFzZSBpbXBvcnQgY29tcGF0MzIKK2Zyb20gdGVzdC50ZXN0X2VtYWlsIGltcG9ydCBfX2ZpbGVfXyBhcyBsYW5kbWFyaworCisjIFJ1biBhbGwgdGVzdHMgaW4gcGFja2FnZSBmb3IgJy1tIHVuaXR0ZXN0IHRlc3QudGVzdF9lbWFpbCcKK2RlZiBsb2FkX3Rlc3RzKGxvYWRlciwgc3RhbmRhcmRfdGVzdHMsIHBhdHRlcm4pOgorICAgIHRoaXNfZGlyID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQorICAgIGlmIHBhdHRlcm4gaXMgTm9uZToKKyAgICAgICAgcGF0dGVybiA9ICJ0ZXN0KiIKKyAgICBwYWNrYWdlX3Rlc3RzID0gbG9hZGVyLmRpc2NvdmVyKHN0YXJ0X2Rpcj10aGlzX2RpciwgcGF0dGVybj1wYXR0ZXJuKQorICAgIHN0YW5kYXJkX3Rlc3RzLmFkZFRlc3RzKHBhY2thZ2VfdGVzdHMpCisgICAgcmV0dXJuIHN0YW5kYXJkX3Rlc3RzCisKKworIyB1c2VkIGJ5IHJlZ3J0ZXN0IGFuZCBfX21haW5fXy4KK2RlZiB0ZXN0X21haW4oKToKKyAgICBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQorICAgICMgVW5pdHRlc3QgbXVja3Mgd2l0aCB0aGUgcGF0aCwgc28gd2UgaGF2ZSB0byBzYXZlIGFuZCByZXN0b3JlCisgICAgIyBpdCB0byBrZWVwIHJlZ3J0ZXN0IGhhcHB5LgorICAgIHNhdmVwYXRoID0gc3lzLnBhdGhbOl0KKyAgICB0ZXN0LnN1cHBvcnQuX3J1bl9zdWl0ZSh1bml0dGVzdC5kZWZhdWx0VGVzdExvYWRlci5kaXNjb3ZlcihoZXJlKSkKKyAgICBzeXMucGF0aFs6XSA9IHNhdmVwYXRoCisKKworIyBoZWxwZXIgY29kZSB1c2VkIGJ5IGEgbnVtYmVyIG9mIHRlc3QgbW9kdWxlcy4KKworZGVmIG9wZW5maWxlKGZpbGVuYW1lLCAqYXJncywgKiprd3MpOgorICAgIHBhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKGxhbmRtYXJrKSwgJ2RhdGEnLCBmaWxlbmFtZSkKKyAgICByZXR1cm4gb3BlbihwYXRoLCAqYXJncywgKiprd3MpCisKKworIyBCYXNlIHRlc3QgY2xhc3MKK2NsYXNzIFRlc3RFbWFpbEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgbWF4RGlmZiA9IE5vbmUKKyAgICAjIEN1cnJlbnRseSB0aGUgZGVmYXVsdCBwb2xpY3kgaXMgY29tcGF0MzIuICBCeSBzZXR0aW5nIHRoYXQgYXMgdGhlIGRlZmF1bHQKKyAgICAjIGhlcmUgd2UgbWFrZSBtaW5pbWFsIGNoYW5nZXMgaW4gdGhlIHRlc3RfZW1haWwgdGVzdHMgY29tcGFyZWQgdG8gdGhlaXIKKyAgICAjIHByZS0zLjMgc3RhdGUuCisgICAgcG9saWN5ID0gY29tcGF0MzIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHN1cGVyKCkuX19pbml0X18oKmFyZ3MsICoqa3cpCisgICAgICAgIHNlbGYuYWRkVHlwZUVxdWFsaXR5RnVuYyhieXRlcywgc2VsZi5hc3NlcnRCeXRlc0VxdWFsKQorCisgICAgIyBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHRvIG1pbmltaXplIHRlc3RfZW1haWwgdGVzdCBjaGFuZ2VzLgorICAgIG5kaWZmQXNzZXJ0RXF1YWwgPSB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRFcXVhbAorCisgICAgZGVmIF9tc2dvYmooc2VsZiwgZmlsZW5hbWUpOgorICAgICAgICB3aXRoIG9wZW5maWxlKGZpbGVuYW1lKSBhcyBmcDoKKyAgICAgICAgICAgIHJldHVybiBlbWFpbC5tZXNzYWdlX2Zyb21fZmlsZShmcCwgcG9saWN5PXNlbGYucG9saWN5KQorCisgICAgZGVmIF9zdHJfbXNnKHNlbGYsIHN0cmluZywgbWVzc2FnZT1NZXNzYWdlLCBwb2xpY3k9Tm9uZSk6CisgICAgICAgIGlmIHBvbGljeSBpcyBOb25lOgorICAgICAgICAgICAgcG9saWN5ID0gc2VsZi5wb2xpY3kKKyAgICAgICAgcmV0dXJuIGVtYWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcoc3RyaW5nLCBtZXNzYWdlLCBwb2xpY3k9cG9saWN5KQorCisgICAgZGVmIF9ieXRlc19yZXByKHNlbGYsIGIpOgorICAgICAgICByZXR1cm4gW3JlcHIoeCkgZm9yIHggaW4gYi5zcGxpdGxpbmVzKGtlZXBlbmRzPVRydWUpXQorCisgICAgZGVmIGFzc2VydEJ5dGVzRXF1YWwoc2VsZiwgZmlyc3QsIHNlY29uZCwgbXNnKToKKyAgICAgICAgIiIiT3VyIGJ5dGUgc3RyaW5ncyBhcmUgcmVhbGx5IGVuY29kZWQgc3RyaW5nczsgaW1wcm92ZSBkaWZmIG91dHB1dCIiIgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2J5dGVzX3JlcHIoZmlyc3QpLCBzZWxmLl9ieXRlc19yZXByKHNlY29uZCkpCisKKyAgICBkZWYgYXNzZXJ0RGVmZWN0c0VxdWFsKHNlbGYsIGFjdHVhbCwgZXhwZWN0ZWQpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhY3R1YWwpLCBsZW4oZXhwZWN0ZWQpLCBhY3R1YWwpCisgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihhY3R1YWwpKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShhY3R1YWxbaV0sIGV4cGVjdGVkW2ldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2l0ZW0ge30nLmZvcm1hdChpKSkKKworCitkZWYgcGFyYW1ldGVyaXplKGNscyk6CisgICAgIiIiQSB0ZXN0IG1ldGhvZCBwYXJhbWV0ZXJpemF0aW9uIGNsYXNzIGRlY29yYXRvci4KKworICAgIFBhcmFtZXRlcnMgYXJlIHNwZWNpZmllZCBhcyB0aGUgdmFsdWUgb2YgYSBjbGFzcyBhdHRyaWJ1dGUgdGhhdCBlbmRzIHdpdGgKKyAgICB0aGUgc3RyaW5nICdfcGFyYW1zJy4gIENhbGwgdGhlIHBvcnRpb24gYmVmb3JlICdfcGFyYW1zJyB0aGUgcHJlZml4LiAgVGhlbgorICAgIGEgbWV0aG9kIHRvIGJlIHBhcmFtZXRlcml6ZWQgbXVzdCBoYXZlIHRoZSBzYW1lIHByZWZpeCwgdGhlIHN0cmluZworICAgICdfYXNfJywgYW5kIGFuIGFyYml0cmFyeSBzdWZmaXguCisKKyAgICBUaGUgdmFsdWUgb2YgdGhlIF9wYXJhbXMgYXR0cmlidXRlIG1heSBiZSBlaXRoZXIgYSBkaWN0aW9uYXJ5IG9yIGEgbGlzdC4KKyAgICBUaGUgdmFsdWVzIGluIHRoZSBkaWN0aW9uYXJ5IGFuZCB0aGUgZWxlbWVudHMgb2YgdGhlIGxpc3QgbWF5IGVpdGhlciBiZQorICAgIHNpbmdsZSB2YWx1ZXMsIG9yIGEgbGlzdC4gIElmIHNpbmdsZSB2YWx1ZXMsIHRoZXkgYXJlIHR1cm5lZCBpbnRvIHNpbmdsZQorICAgIGVsZW1lbnQgdHVwbGVzLiAgSG93ZXZlciBkZXJpdmVkLCB0aGUgcmVzdWx0aW5nIHNlcXVlbmNlIGlzIHBhc3NlZCB2aWEKKyAgICAqYXJncyB0byB0aGUgcGFyYW1ldGVyaXplZCB0ZXN0IGZ1bmN0aW9uLgorCisgICAgSW4gYSBfcGFyYW1zIGRpY3Rpb2FucnksIHRoZSBrZXlzIGJlY29tZSBwYXJ0IG9mIHRoZSBuYW1lIG9mIHRoZSBnZW5lcmF0ZWQKKyAgICB0ZXN0cy4gIEluIGEgX3BhcmFtcyBsaXN0LCB0aGUgdmFsdWVzIGluIHRoZSBsaXN0IGFyZSBjb252ZXJ0ZWQgaW50byBhCisgICAgc3RyaW5nIGJ5IGpvaW5pbmcgdGhlIHN0cmluZyB2YWx1ZXMgb2YgdGhlIGVsZW1lbnRzIG9mIHRoZSB0dXBsZSBieSAnXycgYW5kCisgICAgY29udmVydGluZyBhbnkgYmxhbmtzIGludG8gJ18ncywgYW5kIHRoaXMgYmVjb21lIHBhcnQgb2YgdGhlIG5hbWUuCisgICAgVGhlICBmdWxsIG5hbWUgb2YgYSBnZW5lcmF0ZWQgdGVzdCBpcyBhICd0ZXN0XycgcHJlZml4LCB0aGUgcG9ydGlvbiBvZiB0aGUKKyAgICB0ZXN0IGZ1bmN0aW9uIG5hbWUgYWZ0ZXIgdGhlICAnX2FzXycgc2VwYXJhdG9yLCBwbHVzIGFuICdfJywgcGx1cyB0aGUgbmFtZQorICAgIGRlcml2ZWQgYXMgZXhwbGFpbmVkIGFib3ZlLgorCisgICAgRm9yIGV4YW1wbGUsIGlmIHdlIGhhdmU6CisKKyAgICAgICAgY291bnRfcGFyYW1zID0gcmFuZ2UoMikKKworICAgICAgICBkZWYgY291bnRfYXNfZm9vX2FyZyhzZWxmLCBmb28pOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28rMSwgbXlmdW5jKGZvbykpCisKKyAgICB3ZSB3aWxsIGdldCBwYXJhbWV0ZXJpemVkIHRlc3QgbWV0aG9kcyBuYW1lZDoKKyAgICAgICAgdGVzdF9mb29fYXJnXzAKKyAgICAgICAgdGVzdF9mb29fYXJnXzEKKyAgICAgICAgdGVzdF9mb29fYXJnXzIKKworICAgIE9yIHdlIGNvdWxkIGhhdmU6CisKKyAgICAgICAgZXhhbXBsZV9wYXJhbXMgPSB7J2Zvbyc6ICgnYmFyJywgMSksICdiaW5nJzogKCdiYW5nJywgMil9CisKKyAgICAgICAgZGVmIGV4YW1wbGVfYXNfbXlmdW5jX2lucHV0KHNlbGYsIG5hbWUsIGNvdW50KToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZStzdHIoY291bnQpLCBteWZ1bmMobmFtZSwgY291bnQpKQorCisgICAgYW5kIGdldDoKKyAgICAgICAgdGVzdF9teWZ1bmNfaW5wdXRfZm9vCisgICAgICAgIHRlc3RfbXlmdW5jX2lucHV0X2JpbmcKKworICAgIE5vdGU6IGlmIGFuZCBvbmx5IGlmIHRoZSBnZW5lcmF0ZWQgdGVzdCBuYW1lIGlzIGEgdmFsaWQgaWRlbnRpZmllciBjYW4gaXQKKyAgICBiZSB1c2VkIHRvIHNlbGVjdCB0aGUgdGVzdCBpbmRpdmlkdWFsbHkgZnJvbSB0aGUgdW5pdHRlc3QgY29tbWFuZCBsaW5lLgorCisgICAgIiIiCisgICAgcGFyYW1kaWN0cyA9IHt9CisgICAgZm9yIG5hbWUsIGF0dHIgaW4gY2xzLl9fZGljdF9fLml0ZW1zKCk6CisgICAgICAgIGlmIG5hbWUuZW5kc3dpdGgoJ19wYXJhbXMnKToKKyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKGF0dHIsICdrZXlzJyk6CisgICAgICAgICAgICAgICAgZCA9IHt9CisgICAgICAgICAgICAgICAgZm9yIHggaW4gYXR0cjoKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoeCwgJ19faXRlcl9fJyk6CisgICAgICAgICAgICAgICAgICAgICAgICB4ID0gKHgsKQorICAgICAgICAgICAgICAgICAgICBuID0gJ18nLmpvaW4oc3RyKHYpIGZvciB2IGluIHgpLnJlcGxhY2UoJyAnLCAnXycpCisgICAgICAgICAgICAgICAgICAgIGRbbl0gPSB4CisgICAgICAgICAgICAgICAgYXR0ciA9IGQKKyAgICAgICAgICAgIHBhcmFtZGljdHNbbmFtZVs6LTddICsgJ19hc18nXSA9IGF0dHIKKyAgICB0ZXN0ZnVuY3MgPSB7fQorICAgIGZvciBuYW1lLCBhdHRyIGluIGNscy5fX2RpY3RfXy5pdGVtcygpOgorICAgICAgICBmb3IgcGFyYW1zbmFtZSwgcGFyYW1zZGljdCBpbiBwYXJhbWRpY3RzLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgocGFyYW1zbmFtZSk6CisgICAgICAgICAgICAgICAgdGVzdG5hbWVyb290ID0gJ3Rlc3RfJyArIG5hbWVbbGVuKHBhcmFtc25hbWUpOl0KKyAgICAgICAgICAgICAgICBmb3IgcGFyYW1uYW1lLCBwYXJhbXMgaW4gcGFyYW1zZGljdC5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gKGxhbWJkYSBzZWxmLCBuYW1lPW5hbWUsIHBhcmFtcz1wYXJhbXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsIG5hbWUpKCpwYXJhbXMpKQorICAgICAgICAgICAgICAgICAgICB0ZXN0bmFtZSA9IHRlc3RuYW1lcm9vdCArICdfJyArIHBhcmFtbmFtZQorICAgICAgICAgICAgICAgICAgICB0ZXN0Ll9fbmFtZV9fID0gdGVzdG5hbWUKKyAgICAgICAgICAgICAgICAgICAgdGVzdGZ1bmNzW3Rlc3RuYW1lXSA9IHRlc3QKKyAgICBmb3Iga2V5LCB2YWx1ZSBpbiB0ZXN0ZnVuY3MuaXRlbXMoKToKKyAgICAgICAgc2V0YXR0cihjbHMsIGtleSwgdmFsdWUpCisgICAgcmV0dXJuIGNscwpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lbWFpbC9fX21haW5fXy5weSBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvX19tYWluX18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThhZjllYwotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvX19tYWluX18ucHkKQEAgLTAsMCArMSwzIEBACitmcm9tIHRlc3QudGVzdF9lbWFpbCBpbXBvcnQgdGVzdF9tYWluCisKK3Rlc3RfbWFpbigpCmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL1B5QmFubmVyMDQ4LmdpZiBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9QeUJhbm5lcjA0OC5naWYKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvUHlCYW5uZXIwNDguZ2lmCnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvUHlCYW5uZXIwNDguZ2lmCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvYXVkaW90ZXN0LmF1IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL2F1ZGlvdGVzdC5hdQpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9hdWRpb3Rlc3QuYXUKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9hdWRpb3Rlc3QuYXUKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMDEudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18wMS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzAxLnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18wMS50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzAyLnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMDIudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18wMi50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMDIudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18wMy50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzAzLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMDMudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzAzLnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMDQudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18wNC50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzA0LnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18wNC50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzA1LnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMDUudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18wNS50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMDUudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18wNi50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzA2LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMDYudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzA2LnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMDcudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18wNy50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzA3LnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18wNy50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzA4LnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMDgudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18wOC50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMDgudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18wOS50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzA5LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMDkudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzA5LnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMTAudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18xMC50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzEwLnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18xMC50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzExLnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMTEudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18xMS50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMTEudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18xMi50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzEyLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMTIudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzEyLnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMTJhLnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMTJhLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMTJhLnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18xMmEudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18xMy50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzEzLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMTMudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzEzLnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMTQudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18xNC50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzE0LnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18xNC50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzE1LnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMTUudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18xNS50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMTUudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18xNi50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzE2LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMTYudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzE2LnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMTcudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18xNy50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzE3LnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18xNy50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzE4LnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMTgudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18xOC50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMTgudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18xOS50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzE5LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMTkudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzE5LnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMjAudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18yMC50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzIwLnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18yMC50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzIxLnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMjEudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18yMS50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMjEudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18yMi50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzIyLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMjIudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzIyLnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMjMudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18yMy50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzIzLnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18yMy50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzI0LnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMjQudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18yNC50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMjQudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18yNS50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzI1LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMjUudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzI1LnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMjYudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18yNi50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzI2LnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18yNi50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzI3LnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMjcudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18yNy50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMjcudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18yOC50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzI4LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMjgudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzI4LnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMjkudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18yOS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzI5LnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18yOS50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzMwLnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMzAudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18zMC50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMzAudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18zMS50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzMxLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMzEudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzMxLnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMzIudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18zMi50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzMyLnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18zMi50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzMzLnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMzMudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18zMy50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMzMudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18zNC50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzM0LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMzQudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzM0LnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMzUudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18zNS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzM1LnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18zNS50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzM2LnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMzYudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18zNi50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMzYudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ18zNy50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzM3LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMzcudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzM3LnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfMzgudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18zOC50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzM4LnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ18zOC50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzM5LnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMzkudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ18zOS50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfMzkudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ180MC50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzQwLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfNDAudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzQwLnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfNDEudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ180MS50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzQxLnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ180MS50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzQyLnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfNDIudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ180Mi50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfNDIudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ180My50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzQzLnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfNDMudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzQzLnR4dApkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfNDQudHh0IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ180NC50eHQKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzQ0LnR4dApyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC9kYXRhL21zZ180NC50eHQKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L2RhdGEvbXNnXzQ1LnR4dCBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfNDUudHh0CnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC9kYXRhL21zZ180NS50eHQKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvZGF0YS9tc2dfNDUudHh0CmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC9kYXRhL21zZ180Ni50eHQgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzQ2LnR4dApzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gTGliL2VtYWlsL3Rlc3QvZGF0YS9tc2dfNDYudHh0CnJlbmFtZSB0byBMaWIvdGVzdC90ZXN0X2VtYWlsL2RhdGEvbXNnXzQ2LnR4dApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X19lbmNvZGVkX3dvcmRzLnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X19lbmNvZGVkX3dvcmRzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0Mzk1ZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfX2VuY29kZWRfd29yZHMucHkKQEAgLTAsMCArMSwxODcgQEAKK2ltcG9ydCB1bml0dGVzdAorZnJvbSBlbWFpbCBpbXBvcnQgX2VuY29kZWRfd29yZHMgYXMgX2V3Citmcm9tIGVtYWlsIGltcG9ydCBlcnJvcnMKK2Zyb20gdGVzdC50ZXN0X2VtYWlsIGltcG9ydCBUZXN0RW1haWxCYXNlCisKKworY2xhc3MgVGVzdERlY29kZVEoVGVzdEVtYWlsQmFzZSk6CisKKyAgICBkZWYgX3Rlc3Qoc2VsZiwgc291cmNlLCBleF9yZXN1bHQsIGV4X2RlZmVjdHM9W10pOgorICAgICAgICByZXN1bHQsIGRlZmVjdHMgPSBfZXcuZGVjb2RlX3Eoc291cmNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgZXhfcmVzdWx0KQorICAgICAgICBzZWxmLmFzc2VydERlZmVjdHNFcXVhbChkZWZlY3RzLCBleF9kZWZlY3RzKQorCisgICAgZGVmIHRlc3Rfbm9fZW5jb2RlZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdChiJ2Zvb2JhcicsIGInZm9vYmFyJykKKworICAgIGRlZiB0ZXN0X3NwYWNlcyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdChiJ2Zvbz0yMGJhcj0yMCcsIGInZm9vIGJhciAnKQorICAgICAgICBzZWxmLl90ZXN0KGInZm9vX2Jhcl8nLCBiJ2ZvbyBiYXIgJykKKworICAgIGRlZiB0ZXN0X3J1bl9vZl9lbmNvZGVkKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KGInZm9vPTIwPTIwPTIxPTJDYmFyJywgYidmb28gICEsYmFyJykKKworCitjbGFzcyBUZXN0RGVjb2RlQihUZXN0RW1haWxCYXNlKToKKworICAgIGRlZiBfdGVzdChzZWxmLCBzb3VyY2UsIGV4X3Jlc3VsdCwgZXhfZGVmZWN0cz1bXSk6CisgICAgICAgIHJlc3VsdCwgZGVmZWN0cyA9IF9ldy5kZWNvZGVfYihzb3VyY2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBleF9yZXN1bHQpCisgICAgICAgIHNlbGYuYXNzZXJ0RGVmZWN0c0VxdWFsKGRlZmVjdHMsIGV4X2RlZmVjdHMpCisKKyAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoYidabTl2JywgYidmb28nKQorCisgICAgZGVmIHRlc3RfbWlzc2luZ19wYWRkaW5nKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KGInZG1rJywgYid2aScsIFtlcnJvcnMuSW52YWxpZEJhc2U2NFBhZGRpbmdEZWZlY3RdKQorCisgICAgZGVmIHRlc3RfaW52YWxpZF9jaGFyYWN0ZXIoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoYidkbVx4MDFrPT09JywgYid2aScsIFtlcnJvcnMuSW52YWxpZEJhc2U2NENoYXJhY3RlcnNEZWZlY3RdKQorCisgICAgZGVmIHRlc3RfaW52YWxpZF9jaGFyYWN0ZXJfYW5kX2JhZF9wYWRkaW5nKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KGInZG1ceDAxaycsIGIndmknLCBbZXJyb3JzLkludmFsaWRCYXNlNjRDaGFyYWN0ZXJzRGVmZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRCYXNlNjRQYWRkaW5nRGVmZWN0XSkKKworCitjbGFzcyBUZXN0RGVjb2RlKFRlc3RFbWFpbEJhc2UpOgorCisgICAgZGVmIHRlc3Rfd3JvbmdfZm9ybWF0X2lucHV0X3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIF9ldy5kZWNvZGUoJz0/YmFkb25lPz0nKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgX2V3LmRlY29kZSgnPT8nKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgX2V3LmRlY29kZSgnJykKKworICAgIGRlZiBfdGVzdChzZWxmLCBzb3VyY2UsIHJlc3VsdCwgY2hhcnNldD0ndXMtYXNjaWknLCBsYW5nPScnLCBkZWZlY3RzPVtdKToKKyAgICAgICAgcmVzLCBjaGFyLCBsLCBkID0gX2V3LmRlY29kZShzb3VyY2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCByZXN1bHQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2hhciwgY2hhcnNldCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsLCBsYW5nKQorICAgICAgICBzZWxmLmFzc2VydERlZmVjdHNFcXVhbChkLCBkZWZlY3RzKQorCisgICAgZGVmIHRlc3Rfc2ltcGxlX3Eoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoJz0/dXMtYXNjaWk/cT9mb28/PScsICdmb28nKQorCisgICAgZGVmIHRlc3Rfc2ltcGxlX2Ioc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoJz0/dXMtYXNjaWk/Yj9kbWs9Pz0nLCAndmknKQorCisgICAgZGVmIHRlc3RfcV9jYXNlX2lnbm9yZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoJz0/dXMtYXNjaWk/UT9mb28/PScsICdmb28nKQorCisgICAgZGVmIHRlc3RfYl9jYXNlX2lnbm9yZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoJz0/dXMtYXNjaWk/Qj9kbWs9Pz0nLCAndmknKQorCisgICAgZGVmIHRlc3Rfbm9uX3RyaXZpYWxfcShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdCgnPT9sYXRpbi0xP3E/PTIwRj1mY3I9MjBFbGlzZT0yMD89JywgJyBGw7xyIEVsaXNlICcsICdsYXRpbi0xJykKKworICAgIGRlZiB0ZXN0X3FfZXNjcGFlZF9ieXRlc19wcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoYic9P3VzLWFzY2lpP3E/PTIwXHhBQ2Zvbz89Jy5kZWNvZGUoJ3VzLWFzY2lpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3Vycm9nYXRlZXNjYXBlJyksCisgICAgICAgICAgICAgICAgICAgJyBcdURDQUNmb28nLAorICAgICAgICAgICAgICAgICAgIGRlZmVjdHMgPSBbZXJyb3JzLlVuZGVjb2RhYmxlQnl0ZXNEZWZlY3RdKQorCisgICAgZGVmIHRlc3RfYl91bmRlY29kYWJsZV9ieXRlc19pZ25vcmVkX3dpdGhfZGVmZWN0KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KGInPT91cy1hc2NpaT9iP2RtXHhBQ2s/PScuZGVjb2RlKCd1cy1hc2NpaScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3Vycm9nYXRlZXNjYXBlJyksCisgICAgICAgICAgICAgICAgICAgJ3ZpJywKKyAgICAgICAgICAgICAgICAgICBkZWZlY3RzID0gWworICAgICAgICAgICAgICAgICAgICBlcnJvcnMuSW52YWxpZEJhc2U2NENoYXJhY3RlcnNEZWZlY3QsCisgICAgICAgICAgICAgICAgICAgIGVycm9ycy5JbnZhbGlkQmFzZTY0UGFkZGluZ0RlZmVjdF0pCisKKyAgICBkZWYgdGVzdF9iX2ludmFsaWRfYnl0ZXNfaWdub3JlZF93aXRoX2RlZmVjdChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdCgnPT91cy1hc2NpaT9iP2RtXHgwMWs9PT0/PScsCisgICAgICAgICAgICAgICAgICAgJ3ZpJywKKyAgICAgICAgICAgICAgICAgICBkZWZlY3RzID0gW2Vycm9ycy5JbnZhbGlkQmFzZTY0Q2hhcmFjdGVyc0RlZmVjdF0pCisKKyAgICBkZWYgdGVzdF9iX2ludmFsaWRfYnl0ZXNfaW5jb3JyZWN0X3BhZGRpbmcoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoJz0/dXMtYXNjaWk/Yj9kbVx4MDFrPz0nLAorICAgICAgICAgICAgICAgICAgICd2aScsCisgICAgICAgICAgICAgICAgICAgZGVmZWN0cyA9IFsKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRCYXNlNjRDaGFyYWN0ZXJzRGVmZWN0LAorICAgICAgICAgICAgICAgICAgICBlcnJvcnMuSW52YWxpZEJhc2U2NFBhZGRpbmdEZWZlY3RdKQorCisgICAgZGVmIHRlc3RfYl9wYWRkaW5nX2RlZmVjdChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdCgnPT91cy1hc2NpaT9iP2Rtaz89JywKKyAgICAgICAgICAgICAgICAgICAndmknLAorICAgICAgICAgICAgICAgICAgICBkZWZlY3RzID0gW2Vycm9ycy5JbnZhbGlkQmFzZTY0UGFkZGluZ0RlZmVjdF0pCisKKyAgICBkZWYgdGVzdF9ub25udWxsX2xhbmcoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoJz0/dXMtYXNjaWkqaml2ZT9xP3Rlc3Q/PScsICd0ZXN0JywgbGFuZz0naml2ZScpCisKKyAgICBkZWYgdGVzdF91bmtub3duXzhiaXRfY2hhcnNldChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdCgnPT91bmtub3duLThiaXQ/cT9mb289QUNiYXI/PScsCisgICAgICAgICAgICAgICAgICAgYidmb29ceGFjYmFyJy5kZWNvZGUoJ2FzY2lpJywgJ3N1cnJvZ2F0ZWVzY2FwZScpLAorICAgICAgICAgICAgICAgICAgIGNoYXJzZXQgPSAndW5rbm93bi04Yml0JywKKyAgICAgICAgICAgICAgICAgICBkZWZlY3RzID0gW10pCisKKyAgICBkZWYgdGVzdF91bmtub3duX2NoYXJzZXQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoJz0/Zm9vYmFyP3E/Zm9vPUFDYmFyPz0nLAorICAgICAgICAgICAgICAgICAgIGInZm9vXHhhY2JhcicuZGVjb2RlKCdhc2NpaScsICdzdXJyb2dhdGVlc2NhcGUnKSwKKyAgICAgICAgICAgICAgICAgICBjaGFyc2V0ID0gJ2Zvb2JhcicsCisgICAgICAgICAgICAgICAgICAgIyBYWFggU2hvdWxkIHRoaXMgYmUgYSBuZXcgRGVmZWN0IGluc3RlYWQ/CisgICAgICAgICAgICAgICAgICAgZGVmZWN0cyA9IFtlcnJvcnMuQ2hhcnNldEVycm9yXSkKKworCitjbGFzcyBUZXN0RW5jb2RlUShUZXN0RW1haWxCYXNlKToKKworICAgIGRlZiBfdGVzdChzZWxmLCBzcmMsIGV4cGVjdGVkKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfZXcuZW5jb2RlX3Eoc3JjKSwgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF9hbGxfc2FmZShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdChiJ2Zvb2JhcicsICdmb29iYXInKQorCisgICAgZGVmIHRlc3Rfc3BhY2VzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KGInZm9vIGJhciAnLCAnZm9vX2Jhcl8nKQorCisgICAgZGVmIHRlc3RfcnVuX29mX2VuY29kYWJsZXMoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QoYidmb28gICwsYmFyJywgJ2Zvb19fPTJDPTJDYmFyJykKKworCitjbGFzcyBUZXN0RW5jb2RlQihUZXN0RW1haWxCYXNlKToKKworICAgIGRlZiB0ZXN0X3NpbXBsZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfZXcuZW5jb2RlX2IoYidmb28nKSwgJ1ptOXYnKQorCisgICAgZGVmIHRlc3RfcGFkZGluZyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfZXcuZW5jb2RlX2IoYid2aScpLCAnZG1rPScpCisKKworY2xhc3MgVGVzdEVuY29kZShUZXN0RW1haWxCYXNlKToKKworICAgIGRlZiB0ZXN0X3Eoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2V3LmVuY29kZSgnZm9vJywgJ3V0Zi04JywgJ3EnKSwgJz0/dXRmLTg/cT9mb28/PScpCisKKyAgICBkZWYgdGVzdF9iKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9ldy5lbmNvZGUoJ2ZvbycsICd1dGYtOCcsICdiJyksICc9P3V0Zi04P2I/Wm05dj89JykKKworICAgIGRlZiB0ZXN0X2F1dG9fcShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfZXcuZW5jb2RlKCdmb28nLCAndXRmLTgnKSwgJz0/dXRmLTg/cT9mb28/PScpCisKKyAgICBkZWYgdGVzdF9hdXRvX3FfaWZfc2hvcnRfbW9zdGx5X3NhZmUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2V3LmVuY29kZSgndmkuJywgJ3V0Zi04JyksICc9P3V0Zi04P3E/dmk9MkU/PScpCisKKyAgICBkZWYgdGVzdF9hdXRvX2JfaWZfZW5vdWdoX3Vuc2FmZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfZXcuZW5jb2RlKCcuLi4uLicsICd1dGYtOCcpLCAnPT91dGYtOD9iP0xpNHVMaTQ9Pz0nKQorCisgICAgZGVmIHRlc3RfYXV0b19iX2lmX2xvbmdfdW5zYWZlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9ldy5lbmNvZGUoJ3ZpLnZpLnZpLnZpLnZpLicsICd1dGYtOCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICc9P3V0Zi04P2I/ZG1rdWRta3VkbWt1ZG1rdWRta3U/PScpCisKKyAgICBkZWYgdGVzdF9hdXRvX3FfaWZfbG9uZ19tb3N0bHlfc2FmZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfZXcuZW5jb2RlKCd2aSB2aSB2aS52aSAnLCAndXRmLTgnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnPT91dGYtOD9xP3ZpX3ZpX3ZpPTJFdmlfPz0nKQorCisgICAgZGVmIHRlc3RfdXRmOF9kZWZhdWx0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9ldy5lbmNvZGUoJ2ZvbycpLCAnPT91dGYtOD9xP2Zvbz89JykKKworICAgIGRlZiB0ZXN0X2xhbmcoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2V3LmVuY29kZSgnZm9vJywgbGFuZz0naml2ZScpLCAnPT91dGYtOCpqaXZlP3E/Zm9vPz0nKQorCisgICAgZGVmIHRlc3RfdW5rbm93bl84Yml0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9ldy5lbmNvZGUoJ2Zvb1x1RENBQ2JhcicsIGNoYXJzZXQ9J3Vua25vd24tOGJpdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICc9P3Vua25vd24tOGJpdD9xP2Zvbz1BQ2Jhcj89JykKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X19oZWFkZXJfdmFsdWVfcGFyc2VyLnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X19oZWFkZXJfdmFsdWVfcGFyc2VyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxMDFlMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfX2hlYWRlcl92YWx1ZV9wYXJzZXIucHkKQEAgLTAsMCArMSwyNTUyIEBACitpbXBvcnQgc3RyaW5nCitpbXBvcnQgdW5pdHRlc3QKK2Zyb20gZW1haWwgaW1wb3J0IF9oZWFkZXJfdmFsdWVfcGFyc2VyIGFzIHBhcnNlcgorZnJvbSBlbWFpbCBpbXBvcnQgZXJyb3JzCitmcm9tIGVtYWlsIGltcG9ydCBwb2xpY3kKK2Zyb20gdGVzdC50ZXN0X2VtYWlsIGltcG9ydCBUZXN0RW1haWxCYXNlLCBwYXJhbWV0ZXJpemUKKworY2xhc3MgVGVzdFRva2VucyhUZXN0RW1haWxCYXNlKToKKworICAgICMgRVdXaGl0ZVNwYWNlVGVybWluYWwKKworICAgIGRlZiB0ZXN0X0VXV2hpdGVTcGFjZVRlcm1pbmFsKHNlbGYpOgorICAgICAgICB4ID0gcGFyc2VyLkVXV2hpdGVTcGFjZVRlcm1pbmFsKCcgXHQnLCAnZndzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCAnIFx0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoeCksICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgudmFsdWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHguZW5jb2RlZCwgJyBcdCcpCisKKyAgICAjIFVuc3RydWN0dXJlZFRva2VuTGlzdAorCisgICAgZGVmIHRlc3RfdW5kZWNvZGFibGVfYnl0ZXNfZXJyb3JfcHJlc2VydmVkKHNlbGYpOgorICAgICAgICBiYWRzdHIgPSBiImxlIHBvdWYgY1x4YWZsZWJyZSIuZGVjb2RlKCdhc2NpaScsICdzdXJyb2dhdGVlc2NhcGUnKQorICAgICAgICB1bnN0ID0gcGFyc2VyLmdldF91bnN0cnVjdHVyZWQoYmFkc3RyKQorICAgICAgICBzZWxmLmFzc2VydERlZmVjdHNFcXVhbCh1bnN0LmFsbF9kZWZlY3RzLCBbZXJyb3JzLlVuZGVjb2RhYmxlQnl0ZXNEZWZlY3RdKQorICAgICAgICBwYXJ0cyA9IGxpc3QodW5zdC5wYXJ0cykKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwocGFydHNbMF0uYWxsX2RlZmVjdHMsIFtdKQorICAgICAgICBzZWxmLmFzc2VydERlZmVjdHNFcXVhbChwYXJ0c1sxXS5hbGxfZGVmZWN0cywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RGVmZWN0c0VxdWFsKHBhcnRzWzJdLmFsbF9kZWZlY3RzLCBbZXJyb3JzLlVuZGVjb2RhYmxlQnl0ZXNEZWZlY3RdKQorCisKK2NsYXNzIFRlc3RQYXJzZXJNaXhpbjoKKworICAgIGRlZiBfYXNzZXJ0X3Jlc3VsdHMoc2VsZiwgdGwsIHJlc3QsIHN0cmluZywgdmFsdWUsIGRlZmVjdHMsIHJlbWFpbmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRzPU5vbmUpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cih0bCksIHN0cmluZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0bC52YWx1ZSwgdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RGVmZWN0c0VxdWFsKHRsLmFsbF9kZWZlY3RzLCBkZWZlY3RzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3QsIHJlbWFpbmRlcikKKyAgICAgICAgaWYgY29tbWVudHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRsLmNvbW1lbnRzLCBjb21tZW50cykKKworICAgIGRlZiBfdGVzdF9nZXRfeChzZWxmLCBtZXRob2QsIHNvdXJjZSwgc3RyaW5nLCB2YWx1ZSwgZGVmZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtYWluZGVyLCBjb21tZW50cz1Ob25lKToKKyAgICAgICAgdGwsIHJlc3QgPSBtZXRob2Qoc291cmNlKQorICAgICAgICBzZWxmLl9hc3NlcnRfcmVzdWx0cyh0bCwgcmVzdCwgc3RyaW5nLCB2YWx1ZSwgZGVmZWN0cywgcmVtYWluZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50cz1Ob25lKQorICAgICAgICByZXR1cm4gdGwKKworICAgIGRlZiBfdGVzdF9wYXJzZV94KHNlbGYsIG1ldGhvZCwgaW5wdXQsIHN0cmluZywgdmFsdWUsIGRlZmVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRzPU5vbmUpOgorICAgICAgICB0bCA9IG1ldGhvZChpbnB1dCkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X3Jlc3VsdHModGwsICcnLCBzdHJpbmcsIHZhbHVlLCBkZWZlY3RzLCAnJywgY29tbWVudHMpCisgICAgICAgIHJldHVybiB0bAorCisKK2NsYXNzIFRlc3RQYXJzZXIoVGVzdFBhcnNlck1peGluLCBUZXN0RW1haWxCYXNlKToKKworICAgICMgX3dzcF9zcGxpdHRlcgorCisgICAgcmZjX3ByaW50YWJsZV9hc2NpaSA9IGJ5dGVzKHJhbmdlKDMzLCAxMjcpKS5kZWNvZGUoJ2FzY2lpJykKKyAgICByZmNfYXRleHRfY2hhcnMgPSAoc3RyaW5nLmFzY2lpX2xldHRlcnMgKyBzdHJpbmcuZGlnaXRzICsKKyAgICAgICAgICAgICAgICAgICAgICAgICIhIyQlJlwnKistLz0/Xl9ge318fiIpCisgICAgcmZjX2R0ZXh0X2NoYXJzID0gcmZjX3ByaW50YWJsZV9hc2NpaS50cmFuc2xhdGUoc3RyLm1ha2V0cmFucygnJywnJyxyJ1xbXScpKQorCisgICAgZGVmIHRlc3RfX3dzcF9zcGxpdHRlcl9vbmVfd29yZChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZXIuX3dzcF9zcGxpdHRlcignZm9vJywgMSksIFsnZm9vJ10pCisKKyAgICBkZWYgdGVzdF9fd3NwX3NwbGl0dGVyX3R3b193b3JkcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXJzZXIuX3dzcF9zcGxpdHRlcignZm9vIGRlZicsIDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2ZvbycsICcgJywgJ2RlZiddKQorCisgICAgZGVmIHRlc3RfX3dzcF9zcGxpdHRlcl93c19ydW5zKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5fd3NwX3NwbGl0dGVyKCdmb28gXHQgZGVmIGppaycsIDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnZm9vJywgJyBcdCAnLCAnZGVmIGppayddKQorCisKKyAgICAjIGdldF9md3MKKworICAgIGRlZiB0ZXN0X2dldF9md3Nfb25seShzZWxmKToKKyAgICAgICAgZndzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2Z3cywgJyBcdCAgJywgJyBcdCAgJywgJyAnLCBbXSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZndzLnRva2VuX3R5cGUsICdmd3MnKQorCisgICAgZGVmIHRlc3RfZ2V0X2Z3c19zcGFjZShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2Z3cywgJyBmb28nLCAnICcsICcgJywgW10sICdmb28nKQorCisgICAgZGVmIHRlc3RfZ2V0X2Z3c193c19ydW4oc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9md3MsICcgXHQgZm9vICcsICcgXHQgJywgJyAnLCBbXSwgJ2ZvbyAnKQorCisgICAgIyBnZXRfZW5jb2RlZF93b3JkCisKKyAgICBkZWYgdGVzdF9nZXRfZW5jb2RlZF93b3JkX21pc3Npbmdfc3RhcnRfcmFpc2VzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5nZXRfZW5jb2RlZF93b3JkKCdhYmMnKQorCisgICAgZGVmIHRlc3RfZ2V0X2VuY29kZWRfd29yZF9taXNzaW5nX2VuZF9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9lbmNvZGVkX3dvcmQoJz0/YWJjJykKKworICAgIGRlZiB0ZXN0X2dldF9lbmNvZGVkX3dvcmRfbWlzc2luZ19taWRkbGVfcmFpc2VzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5nZXRfZW5jb2RlZF93b3JkKCc9P2FiYz89JykKKworICAgIGRlZiB0ZXN0X2dldF9lbmNvZGVkX3dvcmRfdmFsaWRfZXcoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9lbmNvZGVkX3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgJz0/dXMtYXNjaWk/cT90aGlzX2lzX2FfdGVzdD89ICBiaXJkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAndGhpcyBpcyBhIHRlc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICd0aGlzIGlzIGEgdGVzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgJyAgYmlyZCcpCisKKyAgICBkZWYgdGVzdF9nZXRfZW5jb2RlZF93b3JkX2ludGVybmFsX3NwYWNlcyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2VuY29kZWRfd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnPT91cy1hc2NpaT9xP3RoaXMgaXMgYSB0ZXN0Pz0gIGJpcmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICd0aGlzIGlzIGEgdGVzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoaXMgaXMgYSB0ZXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgICAgICAgICAgICAgICcgIGJpcmQnKQorCisgICAgZGVmIHRlc3RfZ2V0X2VuY29kZWRfd29yZF9nZXRzX2ZpcnN0KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZW5jb2RlZF93b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICc9P3VzLWFzY2lpP3E/Zmlyc3Q/PSAgPT91dGYtOD9xP3NlY29uZD89JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZmlyc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaXJzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgJyAgPT91dGYtOD9xP3NlY29uZD89JykKKworICAgIGRlZiB0ZXN0X2dldF9lbmNvZGVkX3dvcmRfZ2V0c19maXJzdF9ldmVuX2lmX25vX3NwYWNlKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZW5jb2RlZF93b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICc9P3VzLWFzY2lpP3E/Zmlyc3Q/PT0/dXRmLTg/cT9zZWNvbmQ/PScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpcnN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZmlyc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICc9P3V0Zi04P3E/c2Vjb25kPz0nKQorCisgICAgZGVmIHRlc3RfZ2V0X2VuY29kZWRfd29yZF9zZXRzX2V4dHJhX2F0dHJpYnV0ZXMoc2VsZik6CisgICAgICAgIGV3ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2VuY29kZWRfd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnPT91cy1hc2NpaSpqaXZlP3E/Zmlyc3Rfc2Vjb25kPz0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaXJzdCBzZWNvbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaXJzdCBzZWNvbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV3LmVuY29kZWQsICc9P3VzLWFzY2lpKmppdmU/cT9maXJzdF9zZWNvbmQ/PScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXcuY2hhcnNldCwgJ3VzLWFzY2lpJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldy5sYW5nLCAnaml2ZScpCisKKyAgICBkZWYgdGVzdF9nZXRfZW5jb2RlZF93b3JkX2xhbmdfZGVmYXVsdF9pc19ibGFuayhzZWxmKToKKyAgICAgICAgZXcgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZW5jb2RlZF93b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICc9P3VzLWFzY2lpP3E/Zmlyc3Rfc2Vjb25kPz0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaXJzdCBzZWNvbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaXJzdCBzZWNvbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV3LmVuY29kZWQsICc9P3VzLWFzY2lpP3E/Zmlyc3Rfc2Vjb25kPz0nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV3LmNoYXJzZXQsICd1cy1hc2NpaScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXcubGFuZywgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfZW5jb2RlZF93b3JkX25vbl9wcmludGFibGVfZGVmZWN0KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZW5jb2RlZF93b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICc9P3VzLWFzY2lpP3E/Zmlyc3RceDAyc2Vjb25kPz0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaXJzdFx4MDJzZWNvbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaXJzdFx4MDJzZWNvbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcnMuTm9uUHJpbnRhYmxlRGVmZWN0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnJykKKworICAgIGRlZiB0ZXN0X2dldF9lbmNvZGVkX3dvcmRfbGVhZGluZ19pbnRlcm5hbF9zcGFjZShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2VuY29kZWRfd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICc9P3VzLWFzY2lpP3E/PTIwZm9vPz0nLAorICAgICAgICAgICAgICAgICAgICAgICAgJyBmb28nLAorICAgICAgICAgICAgICAgICAgICAgICAgJyBmb28nLAorICAgICAgICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICAnJykKKworICAgICMgZ2V0X3Vuc3RydWN0dXJlZAorCisgICAgZGVmIF9nZXRfdW5zdChzZWxmLCB2YWx1ZSk6CisgICAgICAgIHRva2VuID0gcGFyc2VyLmdldF91bnN0cnVjdHVyZWQodmFsdWUpCisgICAgICAgIHJldHVybiB0b2tlbiwgJycKKworICAgIGRlZiB0ZXN0X2dldF91bnN0cnVjdHVyZWRfbnVsbChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwgJycsICcnLCAnJywgW10sICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Vuc3RydWN0dXJlZF9vbmVfd29yZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwgJ2ZvbycsICdmb28nLCAnZm9vJywgW10sICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Vuc3RydWN0dXJlZF9ub3JtYWxfcGhyYXNlKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHNlbGYuX2dldF91bnN0LCAnZm9vIGJhciBiaXJkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyBiYXIgYmlyZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb28gYmFyIGJpcmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfdW5zdHJ1Y3R1cmVkX25vcm1hbF9waHJhc2Vfd2l0aF93aGl0ZXNwYWNlKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHNlbGYuX2dldF91bnN0LCAnZm9vIFx0IGJhciAgICAgIGJpcmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vIFx0IGJhciAgICAgIGJpcmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vIGJhciBiaXJkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Vuc3RydWN0dXJlZF9sZWFkaW5nX3doaXRlc3BhY2Uoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3goc2VsZi5fZ2V0X3Vuc3QsICcgIGZvbyBiYXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICBmb28gYmFyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBmb28gYmFyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Vuc3RydWN0dXJlZF90cmFpbGluZ193aGl0ZXNwYWNlKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHNlbGYuX2dldF91bnN0LCAnZm9vIGJhciAgJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyBiYXIgICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb28gYmFyICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJykKKworICAgIGRlZiB0ZXN0X2dldF91bnN0cnVjdHVyZWRfbGVhZGluZ19hbmRfdHJhaWxpbmdfd2hpdGVzcGFjZShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwgJyAgZm9vIGJhciAgJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgZm9vIGJhciAgJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBmb28gYmFyICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJykKKworICAgIGRlZiB0ZXN0X2dldF91bnN0cnVjdHVyZWRfb25lX3ZhbGlkX2V3X25vX3dzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHNlbGYuX2dldF91bnN0LCAnPT91cy1hc2NpaT9xP2Jhcj89JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfdW5zdHJ1Y3R1cmVkX29uZV9ld190cmFpbGluZ193cyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwgJz0/dXMtYXNjaWk/cT9iYXI/PSAgJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhciAgJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhciAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfdW5zdHJ1Y3R1cmVkX29uZV92YWxpZF9ld190cmFpbGluZ190ZXh0KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHNlbGYuX2dldF91bnN0LCAnPT91cy1hc2NpaT9xP2Jhcj89IGJpcmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFyIGJpcmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFyIGJpcmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfdW5zdHJ1Y3R1cmVkX3BocmFzZV93aXRoX2V3X2luX21pZGRsZV9vZl90ZXh0KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHNlbGYuX2dldF91bnN0LCAnZm9vID0/dXMtYXNjaWk/cT9iYXI/PSBiaXJkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyBiYXIgYmlyZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb28gYmFyIGJpcmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfdW5zdHJ1Y3R1cmVkX3BocmFzZV93aXRoX3R3b19ldyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwKKyAgICAgICAgICAgICdmb28gPT91cy1hc2NpaT9xP2Jhcj89ID0/dXMtYXNjaWk/cT9iaXJkPz0nLAorICAgICAgICAgICAgJ2ZvbyBiYXJiaXJkJywKKyAgICAgICAgICAgICdmb28gYmFyYmlyZCcsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Vuc3RydWN0dXJlZF9waHJhc2Vfd2l0aF90d29fZXdfdHJhaWxpbmdfd3Moc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3goc2VsZi5fZ2V0X3Vuc3QsCisgICAgICAgICAgICAnZm9vID0/dXMtYXNjaWk/cT9iYXI/PSA9P3VzLWFzY2lpP3E/YmlyZD89ICAgJywKKyAgICAgICAgICAgICdmb28gYmFyYmlyZCAgICcsCisgICAgICAgICAgICAnZm9vIGJhcmJpcmQgJywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfdW5zdHJ1Y3R1cmVkX3BocmFzZV93aXRoX2V3X3dpdGhfbGVhZGluZ193cyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwKKyAgICAgICAgICAgICcgID0/dXMtYXNjaWk/cT9iYXI/PScsCisgICAgICAgICAgICAnICBiYXInLAorICAgICAgICAgICAgJyBiYXInLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKworICAgIGRlZiB0ZXN0X2dldF91bnN0cnVjdHVyZWRfcGhyYXNlX3dpdGhfdHdvX2V3X2V4dHJhX3dzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHNlbGYuX2dldF91bnN0LAorICAgICAgICAgICAgJ2ZvbyA9P3VzLWFzY2lpP3E/YmFyPz0gXHQgID0/dXMtYXNjaWk/cT9iaXJkPz0nLAorICAgICAgICAgICAgJ2ZvbyBiYXJiaXJkJywKKyAgICAgICAgICAgICdmb28gYmFyYmlyZCcsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Vuc3RydWN0dXJlZF90d29fZXdfZXh0cmFfd3NfdHJhaWxpbmdfdGV4dChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwKKyAgICAgICAgICAgICc9P3VzLWFzY2lpP3E/dGVzdD89ICAgPT91cy1hc2NpaT9xP2Zvbz89ICB2YWwnLAorICAgICAgICAgICAgJ3Rlc3Rmb28gIHZhbCcsCisgICAgICAgICAgICAndGVzdGZvbyB2YWwnLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKworICAgIGRlZiB0ZXN0X2dldF91bnN0cnVjdHVyZWRfZXdfd2l0aF9pbnRlcm5hbF93cyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwKKyAgICAgICAgICAgICc9P2lzby04ODU5LTE/cT9oZWxsbz0yMHdvcmxkPz0nLAorICAgICAgICAgICAgJ2hlbGxvIHdvcmxkJywKKyAgICAgICAgICAgICdoZWxsbyB3b3JsZCcsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Vuc3RydWN0dXJlZF9ld193aXRoX2ludGVybmFsX2xlYWRpbmdfd3Moc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3goc2VsZi5fZ2V0X3Vuc3QsCisgICAgICAgICAgICAnICAgPT91cy1hc2NpaT9xPz0yMHRlc3Q/PSAgID0/dXMtYXNjaWk/cT89MjBmb28/PSAgdmFsJywKKyAgICAgICAgICAgICcgICAgdGVzdCBmb28gIHZhbCcsCisgICAgICAgICAgICAnICB0ZXN0IGZvbyB2YWwnLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKworICAgIGRlZiB0ZXN0X2dldF91bnN0cnVjdHVyZWRfaW52YWlsZF9ldyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwKKyAgICAgICAgICAgICc9P3Rlc3QgdmFsJywKKyAgICAgICAgICAgICc9P3Rlc3QgdmFsJywKKyAgICAgICAgICAgICc9P3Rlc3QgdmFsJywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfdW5zdHJ1Y3R1cmVkX3VuZGVjb2RhYmxlX2J5dGVzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHNlbGYuX2dldF91bnN0LAorICAgICAgICAgICAgYid0ZXN0IFx4QUNmb28gIHZhbCcuZGVjb2RlKCdhc2NpaScsICdzdXJyb2dhdGVlc2NhcGUnKSwKKyAgICAgICAgICAgICd0ZXN0IFx1RENBQ2ZvbyAgdmFsJywKKyAgICAgICAgICAgICd0ZXN0IFx1RENBQ2ZvbyB2YWwnLAorICAgICAgICAgICAgW2Vycm9ycy5VbmRlY29kYWJsZUJ5dGVzRGVmZWN0XSwKKyAgICAgICAgICAgICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Vuc3RydWN0dXJlZF91bmRlY29kYWJsZV9ieXRlc19pbl9FVyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwKKyAgICAgICAgICAgIChiJz0/dXMtYXNjaWk/cT89MjB0ZXN0Pz0gICA9P3VzLWFzY2lpP3E/PTIwXHhBQ2Zvbz89JworICAgICAgICAgICAgICAgIGInICB2YWwnKS5kZWNvZGUoJ2FzY2lpJywgJ3N1cnJvZ2F0ZWVzY2FwZScpLAorICAgICAgICAgICAgJyB0ZXN0IFx1RENBQ2ZvbyAgdmFsJywKKyAgICAgICAgICAgICcgdGVzdCBcdURDQUNmb28gdmFsJywKKyAgICAgICAgICAgIFtlcnJvcnMuVW5kZWNvZGFibGVCeXRlc0RlZmVjdF0qMiwKKyAgICAgICAgICAgICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Vuc3RydWN0dXJlZF9taXNzaW5nX2Jhc2U2NF9wYWRkaW5nKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHNlbGYuX2dldF91bnN0LAorICAgICAgICAgICAgJz0/dXRmLTg/Yj9kbWs/PScsCisgICAgICAgICAgICAndmknLAorICAgICAgICAgICAgJ3ZpJywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEJhc2U2NFBhZGRpbmdEZWZlY3RdLAorICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfdW5zdHJ1Y3R1cmVkX2ludmFsaWRfYmFzZTY0X2NoYXJhY3RlcihzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwKKyAgICAgICAgICAgICc9P3V0Zi04P2I/ZG1ceDAxaz09PT89JywKKyAgICAgICAgICAgICd2aScsCisgICAgICAgICAgICAndmknLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkQmFzZTY0Q2hhcmFjdGVyc0RlZmVjdF0sCisgICAgICAgICAgICAnJykKKworICAgIGRlZiB0ZXN0X2dldF91bnN0cnVjdHVyZWRfaW52YWxpZF9iYXNlNjRfY2hhcmFjdGVyX2FuZF9iYWRfcGFkZGluZyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChzZWxmLl9nZXRfdW5zdCwKKyAgICAgICAgICAgICc9P3V0Zi04P2I/ZG1ceDAxaz89JywKKyAgICAgICAgICAgICd2aScsCisgICAgICAgICAgICAndmknLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkQmFzZTY0Q2hhcmFjdGVyc0RlZmVjdCwKKyAgICAgICAgICAgICBlcnJvcnMuSW52YWxpZEJhc2U2NFBhZGRpbmdEZWZlY3RdLAorICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfdW5zdHJ1Y3R1cmVkX25vX3doaXRlc3BhY2VfYmV0d2Vlbl9ld3Moc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3goc2VsZi5fZ2V0X3Vuc3QsCisgICAgICAgICAgICAnPT91dGYtOD9xP2Zvbz89PT91dGYtOD9xP2Jhcj89JywKKyAgICAgICAgICAgICdmb29iYXInLAorICAgICAgICAgICAgJ2Zvb2JhcicsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgJycpCisKKyAgICAjIGdldF9xcF9jdGV4dAorCisgICAgZGVmIHRlc3RfZ2V0X3FwX2N0ZXh0X29ubHkoc2VsZik6CisgICAgICAgIHB0ZXh0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3FwX2N0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vYmFyJywgJ2Zvb2JhcicsICcgJywgW10sICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB0ZXh0LnRva2VuX3R5cGUsICdwdGV4dCcpCisKKyAgICBkZWYgdGVzdF9nZXRfcXBfY3RleHRfYWxsX3ByaW50YWJsZXMoc2VsZik6CisgICAgICAgIHdpdGhfcXAgPSBzZWxmLnJmY19wcmludGFibGVfYXNjaWkucmVwbGFjZSgnXFwnLCAnXFxcXCcpCisgICAgICAgIHdpdGhfcXAgPSB3aXRoX3FwLiAgcmVwbGFjZSgnKCcsIHInXCgnKQorICAgICAgICB3aXRoX3FwID0gd2l0aF9xcC5yZXBsYWNlKCcpJywgcidcKScpCisgICAgICAgIHB0ZXh0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3FwX2N0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aF9xcCwgc2VsZi5yZmNfcHJpbnRhYmxlX2FzY2lpLCAnICcsIFtdLCAnJykKKworICAgIGRlZiB0ZXN0X2dldF9xcF9jdGV4dF90d29fd29yZHNfZ2V0c19maXJzdChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3FwX2N0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyBkZScsICdmb28nLCAnICcsIFtdLCAnIGRlJykKKworICAgIGRlZiB0ZXN0X2dldF9xcF9jdGV4dF9mb2xsb3dpbmdfd3NwX3ByZXNlcnZlZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3FwX2N0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyBcdFx0ZGUnLCAnZm9vJywgJyAnLCBbXSwgJyBcdFx0ZGUnKQorCisgICAgZGVmIHRlc3RfZ2V0X3FwX2N0ZXh0X3VwX3RvX2Nsb3NlX3BhcmVuX29ubHkoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9xcF9jdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdmb28pJywgJ2ZvbycsICcgJywgW10sICcpJykKKworICAgIGRlZiB0ZXN0X2dldF9xcF9jdGV4dF93c3BfYmVmb3JlX2Nsb3NlX3BhcmVuX3ByZXNlcnZlZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3FwX2N0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyAgKScsICdmb28nLCAnICcsIFtdLCAnICApJykKKworICAgIGRlZiB0ZXN0X2dldF9xcF9jdGV4dF9jbG9zZV9wYXJlbl9taWRfd29yZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3FwX2N0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyliYXInLCAnZm9vJywgJyAnLCBbXSwgJyliYXInKQorCisgICAgZGVmIHRlc3RfZ2V0X3FwX2N0ZXh0X3VwX3RvX29wZW5fcGFyZW5fb25seShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3FwX2N0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbygnLCAnZm9vJywgJyAnLCBbXSwgJygnKQorCisgICAgZGVmIHRlc3RfZ2V0X3FwX2N0ZXh0X3dzcF9iZWZvcmVfb3Blbl9wYXJlbl9wcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9xcF9jdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdmb28gICgnLCAnZm9vJywgJyAnLCBbXSwgJyAgKCcpCisKKyAgICBkZWYgdGVzdF9nZXRfcXBfY3RleHRfb3Blbl9wYXJlbl9taWRfd29yZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3FwX2N0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyhiYXInLCAnZm9vJywgJyAnLCBbXSwgJyhiYXInKQorCisgICAgZGVmIHRlc3RfZ2V0X3FwX2N0ZXh0X25vbl9wcmludGFibGVzKHNlbGYpOgorICAgICAgICBwdGV4dCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9xcF9jdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvb1x4MDBiYXIpJywgJ2Zvb1x4MDBiYXInLCAnICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcnMuTm9uUHJpbnRhYmxlRGVmZWN0XSwgJyknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB0ZXh0LmRlZmVjdHNbMF0ubm9uX3ByaW50YWJsZXNbMF0sICdceDAwJykKKworICAgICMgZ2V0X3Fjb250ZW50CisKKyAgICBkZWYgdGVzdF9nZXRfcWNvbnRlbnRfb25seShzZWxmKToKKyAgICAgICAgcHRleHQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfcWNvbnRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb29iYXInLCAnZm9vYmFyJywgJ2Zvb2JhcicsIFtdLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdGV4dC50b2tlbl90eXBlLCAncHRleHQnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Fjb250ZW50X2FsbF9wcmludGFibGVzKHNlbGYpOgorICAgICAgICB3aXRoX3FwID0gc2VsZi5yZmNfcHJpbnRhYmxlX2FzY2lpLnJlcGxhY2UoJ1xcJywgJ1xcXFwnKQorICAgICAgICB3aXRoX3FwID0gd2l0aF9xcC4gIHJlcGxhY2UoJyInLCByJ1wiJykKKyAgICAgICAgcHRleHQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfcWNvbnRlbnQsIHdpdGhfcXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJmY19wcmludGFibGVfYXNjaWksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJmY19wcmludGFibGVfYXNjaWksIFtdLCAnJykKKworICAgIGRlZiB0ZXN0X2dldF9xY29udGVudF90d29fd29yZHNfZ2V0c19maXJzdChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3Fjb250ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyBkZScsICdmb28nLCAnZm9vJywgW10sICcgZGUnKQorCisgICAgZGVmIHRlc3RfZ2V0X3Fjb250ZW50X2ZvbGxvd2luZ193c3BfcHJlc2VydmVkKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfcWNvbnRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9vIFx0XHRkZScsICdmb28nLCAnZm9vJywgW10sICcgXHRcdGRlJykKKworICAgIGRlZiB0ZXN0X2dldF9xY29udGVudF91cF90b19kcXVvdGVfb25seShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3Fjb250ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyInLCAnZm9vJywgJ2ZvbycsIFtdLCAnIicpCisKKyAgICBkZWYgdGVzdF9nZXRfcWNvbnRlbnRfd3NwX2JlZm9yZV9jbG9zZV9wYXJlbl9wcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9xY29udGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdmb28gICInLCAnZm9vJywgJ2ZvbycsIFtdLCAnICAiJykKKworICAgIGRlZiB0ZXN0X2dldF9xY29udGVudF9jbG9zZV9wYXJlbl9taWRfd29yZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3Fjb250ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyJiYXInLCAnZm9vJywgJ2ZvbycsIFtdLCAnImJhcicpCisKKyAgICBkZWYgdGVzdF9nZXRfcWNvbnRlbnRfbm9uX3ByaW50YWJsZXMoc2VsZik6CisgICAgICAgIHB0ZXh0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3Fjb250ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vXHgwMGZnIicsICdmb29ceDAwZmcnLCAnZm9vXHgwMGZnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9ycy5Ob25QcmludGFibGVEZWZlY3RdLCAnIicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHRleHQuZGVmZWN0c1swXS5ub25fcHJpbnRhYmxlc1swXSwgJ1x4MDAnKQorCisgICAgIyBnZXRfYXRleHQKKworICAgIGRlZiB0ZXN0X2dldF9hdGV4dF9vbmx5KHNlbGYpOgorICAgICAgICBhdGV4dCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvb2JhcicsICdmb29iYXInLCAnZm9vYmFyJywgW10sICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGF0ZXh0LnRva2VuX3R5cGUsICdhdGV4dCcpCisKKyAgICBkZWYgdGVzdF9nZXRfYXRleHRfYWxsX2F0ZXh0KHNlbGYpOgorICAgICAgICBhdGV4dCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hdGV4dCwgc2VsZi5yZmNfYXRleHRfY2hhcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJmY19hdGV4dF9jaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmZjX2F0ZXh0X2NoYXJzLCBbXSwgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfYXRleHRfdHdvX3dvcmRzX2dldHNfZmlyc3Qoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdmb28gYmFyJywgJ2ZvbycsICdmb28nLCBbXSwgJyBiYXInKQorCisgICAgZGVmIHRlc3RfZ2V0X2F0ZXh0X2ZvbGxvd2luZ193c3BfcHJlc2VydmVkKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYXRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9vIFx0XHRiYXInLCAnZm9vJywgJ2ZvbycsIFtdLCAnIFx0XHRiYXInKQorCisgICAgZGVmIHRlc3RfZ2V0X2F0ZXh0X3VwX3RvX3NwZWNpYWwoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdmb29AYmFyJywgJ2ZvbycsICdmb28nLCBbXSwgJ0BiYXInKQorCisgICAgZGVmIHRlc3RfZ2V0X2F0ZXh0X25vbl9wcmludGFibGVzKHNlbGYpOgorICAgICAgICBhdGV4dCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvb1x4MDBiYXIoJywgJ2Zvb1x4MDBiYXInLCAnZm9vXHgwMGJhcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcnMuTm9uUHJpbnRhYmxlRGVmZWN0XSwgJygnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGF0ZXh0LmRlZmVjdHNbMF0ubm9uX3ByaW50YWJsZXNbMF0sICdceDAwJykKKworICAgICMgZ2V0X2JhcmVfcXVvdGVkX3N0cmluZworCisgICAgZGVmIHRlc3RfZ2V0X2JhcmVfcXVvdGVkX3N0cmluZ19vbmx5KHNlbGYpOgorICAgICAgICBicXMgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYmFyZV9xdW90ZWRfc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICciZm9vIicsICciZm9vIicsICdmb28nLCBbXSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnFzLnRva2VuX3R5cGUsICdiYXJlLXF1b3RlZC1zdHJpbmcnKQorCisgICAgZGVmIHRlc3RfZ2V0X2JhcmVfcXVvdGVkX3N0cmluZ19tdXN0X3N0YXJ0X3dpdGhfZHF1b3RlKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5nZXRfYmFyZV9xdW90ZWRfc3RyaW5nKCdmb28iJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcik6CisgICAgICAgICAgICBwYXJzZXIuZ2V0X2JhcmVfcXVvdGVkX3N0cmluZygnICAiZm9vIicpCisKKyAgICBkZWYgdGVzdF9nZXRfYmFyZV9xdW90ZWRfc3RyaW5nX2ZvbGxvd2luZ193c3BfcHJlc2VydmVkKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYmFyZV9xdW90ZWRfc3RyaW5nLAorICAgICAgICAgICAgICciZm9vIlx0IGJhcicsICciZm9vIicsICdmb28nLCBbXSwgJ1x0IGJhcicpCisKKyAgICBkZWYgdGVzdF9nZXRfYmFyZV9xdW90ZWRfc3RyaW5nX211bHRpcGxlX3dvcmRzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYmFyZV9xdW90ZWRfc3RyaW5nLAorICAgICAgICAgICAgICciZm9vIGJhciBtb28iJywgJyJmb28gYmFyIG1vbyInLCAnZm9vIGJhciBtb28nLCBbXSwgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfYmFyZV9xdW90ZWRfc3RyaW5nX211bHRpcGxlX3dvcmRzX3dzcF9wcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9iYXJlX3F1b3RlZF9zdHJpbmcsCisgICAgICAgICAgICAgJyIgZm9vICBtb29cdCInLCAnIiBmb28gIG1vb1x0IicsICcgZm9vICBtb29cdCcsIFtdLCAnJykKKworICAgIGRlZiB0ZXN0X2dldF9iYXJlX3F1b3RlZF9zdHJpbmdfZW5kX2RxdW90ZV9taWRfd29yZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2JhcmVfcXVvdGVkX3N0cmluZywKKyAgICAgICAgICAgICAnImZvbyJiYXInLCAnImZvbyInLCAnZm9vJywgW10sICdiYXInKQorCisgICAgZGVmIHRlc3RfZ2V0X2JhcmVfcXVvdGVkX3N0cmluZ19xdW90ZWRfZHF1b3RlKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYmFyZV9xdW90ZWRfc3RyaW5nLAorICAgICAgICAgICAgIHInImZvb1wiaW4iYScsIHInImZvb1wiaW4iJywgJ2ZvbyJpbicsIFtdLCAnYScpCisKKyAgICBkZWYgdGVzdF9nZXRfYmFyZV9xdW90ZWRfc3RyaW5nX25vbl9wcmludGFibGVzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYmFyZV9xdW90ZWRfc3RyaW5nLAorICAgICAgICAgICAgICciYVx4MDFhIicsICciYVx4MDFhIicsICdhXHgwMWEnLAorICAgICAgICAgICAgIFtlcnJvcnMuTm9uUHJpbnRhYmxlRGVmZWN0XSwgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfYmFyZV9xdW90ZWRfc3RyaW5nX25vX2VuZF9kcXVvdGUoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9iYXJlX3F1b3RlZF9zdHJpbmcsCisgICAgICAgICAgICAgJyJmb28nLCAnImZvbyInLCAnZm9vJywKKyAgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdLCAnJykKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2JhcmVfcXVvdGVkX3N0cmluZywKKyAgICAgICAgICAgICAnImZvbyAnLCAnImZvbyAiJywgJ2ZvbyAnLAorICAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0sICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X2JhcmVfcXVvdGVkX3N0cmluZ19lbXB0eV9xdW90ZXMoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9iYXJlX3F1b3RlZF9zdHJpbmcsCisgICAgICAgICAgICAnIiInLCAnIiInLCAnJywgW10sICcnKQorCisgICAgIyBnZXRfY29tbWVudAorCisgICAgZGVmIHRlc3RfZ2V0X2NvbW1lbnRfb25seShzZWxmKToKKyAgICAgICAgY29tbWVudCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9jb21tZW50LAorICAgICAgICAgICAgJyhjb21tZW50KScsICcoY29tbWVudCknLCAnICcsIFtdLCAnJywgWydjb21tZW50J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbWVudC50b2tlbl90eXBlLCAnY29tbWVudCcpCisKKyAgICBkZWYgdGVzdF9nZXRfY29tbWVudF9tdXN0X3N0YXJ0X3dpdGhfcGFyZW4oc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9jb21tZW50KCdmb28iJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcik6CisgICAgICAgICAgICBwYXJzZXIuZ2V0X2NvbW1lbnQoJyAgKGZvbyInKQorCisgICAgZGVmIHRlc3RfZ2V0X2NvbW1lbnRfZm9sbG93aW5nX3dzcF9wcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9jb21tZW50LAorICAgICAgICAgICAgJyhjb21tZW50KSAgXHQnLCAnKGNvbW1lbnQpJywgJyAnLCBbXSwgJyAgXHQnLCBbJ2NvbW1lbnQnXSkKKworICAgIGRlZiB0ZXN0X2dldF9jb21tZW50X211bHRpcGxlX3dvcmRzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY29tbWVudCwKKyAgICAgICAgICAgICcoZm9vIGJhcikgIFx0JywgJyhmb28gYmFyKScsICcgJywgW10sICcgIFx0JywgWydmb28gYmFyJ10pCisKKyAgICBkZWYgdGVzdF9nZXRfY29tbWVudF9tdWx0aXBsZV93b3Jkc193c3BfcHJlc2VydmVkKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY29tbWVudCwKKyAgICAgICAgICAgICcoIGZvbyAgYmFyXHQgKSAgXHQnLCAnKCBmb28gIGJhclx0ICknLCAnICcsIFtdLCAnICBcdCcsCisgICAgICAgICAgICAgICAgWycgZm9vICBiYXJcdCAnXSkKKworICAgIGRlZiB0ZXN0X2dldF9jb21tZW50X2VuZF9wYXJlbl9taWRfd29yZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2NvbW1lbnQsCisgICAgICAgICAgICAnKGZvbyliYXInLCAnKGZvbyknLCAnICcsIFtdLCAnYmFyJywgWydmb28nXSkKKworICAgIGRlZiB0ZXN0X2dldF9jb21tZW50X3F1b3RlZF9wYXJlbnMoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9jb21tZW50LAorICAgICAgICAgICAgJyhmb29cKSBcKFwpYmFyKScsICcoZm9vXCkgXChcKWJhciknLCAnICcsIFtdLCAnJywgWydmb28pICgpYmFyJ10pCisKKyAgICBkZWYgdGVzdF9nZXRfY29tbWVudF9ub25fcHJpbnRhYmxlKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY29tbWVudCwKKyAgICAgICAgICAgICcoZm9vXHg3RmJhciknLCAnKGZvb1x4N0ZiYXIpJywgJyAnLAorICAgICAgICAgICAgW2Vycm9ycy5Ob25QcmludGFibGVEZWZlY3RdLCAnJywgWydmb29ceDdGYmFyJ10pCisKKyAgICBkZWYgdGVzdF9nZXRfY29tbWVudF9ub19lbmRfcGFyZW4oc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9jb21tZW50LAorICAgICAgICAgICAgJyhmb28gYmFyJywgJyhmb28gYmFyKScsICcgJywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0sICcnLCBbJ2ZvbyBiYXInXSkKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2NvbW1lbnQsCisgICAgICAgICAgICAnKGZvbyBiYXIgICcsICcoZm9vIGJhciAgKScsICcgJywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0sICcnLCBbJ2ZvbyBiYXIgICddKQorCisgICAgZGVmIHRlc3RfZ2V0X2NvbW1lbnRfbmVzdGVkX2NvbW1lbnQoc2VsZik6CisgICAgICAgIGNvbW1lbnQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY29tbWVudCwKKyAgICAgICAgICAgICcoZm9vKGJhcikpJywgJyhmb28oYmFyKSknLCAnICcsIFtdLCAnJywgWydmb28oYmFyKSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1lbnRbMV0uY29udGVudCwgJ2JhcicpCisKKyAgICBkZWYgdGVzdF9nZXRfY29tbWVudF9uZXN0ZWRfY29tbWVudF93c3Aoc2VsZik6CisgICAgICAgIGNvbW1lbnQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY29tbWVudCwKKyAgICAgICAgICAgICcoZm9vICggYmFyICkgKScsICcoZm9vICggYmFyICkgKScsICcgJywgW10sICcnLCBbJ2ZvbyAoIGJhciApICddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1lbnRbMl0uY29udGVudCwgJyBiYXIgJykKKworICAgIGRlZiB0ZXN0X2dldF9jb21tZW50X2VtcHR5X2NvbW1lbnQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9jb21tZW50LAorICAgICAgICAgICAgJygpJywgJygpJywgJyAnLCBbXSwgJycsIFsnJ10pCisKKyAgICBkZWYgdGVzdF9nZXRfY29tbWVudF9tdWx0aXBsZV9uZXN0aW5nKHNlbGYpOgorICAgICAgICBjb21tZW50ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2NvbW1lbnQsCisgICAgICAgICAgICAnKCgoKChmb28pKSkpKScsICcoKCgoKGZvbykpKSkpJywgJyAnLCBbXSwgJycsIFsnKCgoKGZvbykpKSknXSkKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoNCwgMCwgLTEpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tZW50WzBdLmNvbnRlbnQsICcoJyooaS0xKSsnZm9vJysnKScqKGktMSkpCisgICAgICAgICAgICBjb21tZW50ID0gY29tbWVudFswXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1lbnQuY29udGVudCwgJ2ZvbycpCisKKyAgICBkZWYgdGVzdF9nZXRfY29tbWVudF9taXNzaW5nX2VuZF9vZl9uZXN0aW5nKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY29tbWVudCwKKyAgICAgICAgICAgICcoKCgoKGZvbykpKScsICcoKCgoKGZvbykpKSkpJywgJyAnLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSoyLCAnJywgWycoKCgoZm9vKSkpKSddKQorCisgICAgZGVmIHRlc3RfZ2V0X2NvbW1lbnRfcXNfaW5fbmVzdGVkX2NvbW1lbnQoc2VsZik6CisgICAgICAgIGNvbW1lbnQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY29tbWVudCwKKyAgICAgICAgICAgICcoZm9vIChiXCkpKScsICcoZm9vIChiXCkpKScsICcgJywgW10sICcnLCBbJ2ZvbyAoYlwpKSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1lbnRbMl0uY29udGVudCwgJ2IpJykKKworICAgICMgZ2V0X2Nmd3MKKworICAgIGRlZiB0ZXN0X2dldF9jZndzX29ubHlfd3Moc2VsZik6CisgICAgICAgIGNmd3MgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY2Z3cywKKyAgICAgICAgICAgICcgIFx0IFx0JywgJyAgXHQgXHQnLCAnICcsIFtdLCAnJywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2Z3cy50b2tlbl90eXBlLCAnY2Z3cycpCisKKyAgICBkZWYgdGVzdF9nZXRfY2Z3c19vbmx5X2NvbW1lbnQoc2VsZik6CisgICAgICAgIGNmd3MgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY2Z3cywKKyAgICAgICAgICAgICcoZm9vKScsICcoZm9vKScsICcgJywgW10sICcnLCBbJ2ZvbyddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNmd3NbMF0uY29udGVudCwgJ2ZvbycpCisKKyAgICBkZWYgdGVzdF9nZXRfY2Z3c19vbmx5X21peGVkKHNlbGYpOgorICAgICAgICBjZndzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2Nmd3MsCisgICAgICAgICAgICAnIChmb28gKSAgKCBiYXIpICcsICcgKGZvbyApICAoIGJhcikgJywgJyAnLCBbXSwgJycsCisgICAgICAgICAgICAgICAgWydmb28gJywgJyBiYXInXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjZndzWzFdLmNvbnRlbnQsICdmb28gJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjZndzWzNdLmNvbnRlbnQsICcgYmFyJykKKworICAgIGRlZiB0ZXN0X2dldF9jZndzX2VuZHNfYXRfbm9uX2xlYWRlcihzZWxmKToKKyAgICAgICAgY2Z3cyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9jZndzLAorICAgICAgICAgICAgJyhmb28pIGJhcicsICcoZm9vKSAnLCAnICcsIFtdLCAnYmFyJywgWydmb28nXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjZndzWzBdLmNvbnRlbnQsICdmb28nKQorCisgICAgZGVmIHRlc3RfZ2V0X2Nmd3NfZW5kc19hdF9ub25fcHJpbnRhYmxlKHNlbGYpOgorICAgICAgICBjZndzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2Nmd3MsCisgICAgICAgICAgICAnKGZvbykgXHgwNycsICcoZm9vKSAnLCAnICcsIFtdLCAnXHgwNycsIFsnZm9vJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2Z3c1swXS5jb250ZW50LCAnZm9vJykKKworICAgIGRlZiB0ZXN0X2dldF9jZndzX25vbl9wcmludGFibGVfaW5fY29tbWVudChzZWxmKToKKyAgICAgICAgY2Z3cyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9jZndzLAorICAgICAgICAgICAgJyhmb28gXHgwNykgInRlc3QiJywgJyhmb28gXHgwNykgJywgJyAnLAorICAgICAgICAgICAgW2Vycm9ycy5Ob25QcmludGFibGVEZWZlY3RdLCAnInRlc3QiJywgWydmb28gXHgwNyddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNmd3NbMF0uY29udGVudCwgJ2ZvbyBceDA3JykKKworICAgIGRlZiB0ZXN0X2dldF9jZndzX2hlYWRlcl9lbmRzX2luX2NvbW1lbnQoc2VsZik6CisgICAgICAgIGNmd3MgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfY2Z3cywKKyAgICAgICAgICAgICcgIChmb28gJywgJyAgKGZvbyApJywgJyAnLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSwgJycsIFsnZm9vICddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNmd3NbMV0uY29udGVudCwgJ2ZvbyAnKQorCisgICAgZGVmIHRlc3RfZ2V0X2Nmd3NfbXVsdGlwbGVfbmVzdGVkX2NvbW1lbnRzKHNlbGYpOgorICAgICAgICBjZndzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2Nmd3MsCisgICAgICAgICAgICAnKGZvbyAoYmFyKSkgKChhKShhKSknLCAnKGZvbyAoYmFyKSkgKChhKShhKSknLCAnICcsIFtdLAorICAgICAgICAgICAgICAgICcnLCBbJ2ZvbyAoYmFyKScsICcoYSkoYSknXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjZndzWzBdLmNvbW1lbnRzLCBbJ2ZvbyAoYmFyKSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNmd3NbMl0uY29tbWVudHMsIFsnKGEpKGEpJ10pCisKKyAgICAjIGdldF9xdW90ZWRfc3RyaW5nCisKKyAgICBkZWYgdGVzdF9nZXRfcXVvdGVkX3N0cmluZ19vbmx5KHNlbGYpOgorICAgICAgICBxcyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9xdW90ZWRfc3RyaW5nLAorICAgICAgICAgICAgJyJib2IiJywgJyJib2IiJywgJ2JvYicsIFtdLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxcy50b2tlbl90eXBlLCAncXVvdGVkLXN0cmluZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXMucXVvdGVkX3ZhbHVlLCAnImJvYiInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzLmNvbnRlbnQsICdib2InKQorCisgICAgZGVmIHRlc3RfZ2V0X3F1b3RlZF9zdHJpbmdfd2l0aF93c3Aoc2VsZik6CisgICAgICAgIHFzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3F1b3RlZF9zdHJpbmcsCisgICAgICAgICAgICAnXHQgImJvYiIgICcsICdcdCAiYm9iIiAgJywgJyBib2IgJywgW10sICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzLnF1b3RlZF92YWx1ZSwgJyAiYm9iIiAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzLmNvbnRlbnQsICdib2InKQorCisgICAgZGVmIHRlc3RfZ2V0X3F1b3RlZF9zdHJpbmdfd2l0aF9jb21tZW50c19hbmRfd3NwKHNlbGYpOgorICAgICAgICBxcyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9xdW90ZWRfc3RyaW5nLAorICAgICAgICAgICAgJyAoZm9vKSAiYm9iIihiYXIpJywgJyAoZm9vKSAiYm9iIihiYXIpJywgJyBib2IgJywgW10sICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzWzBdWzFdLmNvbnRlbnQsICdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzWzJdWzBdLmNvbnRlbnQsICdiYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzLmNvbnRlbnQsICdib2InKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzLnF1b3RlZF92YWx1ZSwgJyAiYm9iIiAnKQorCisgICAgZGVmIHRlc3RfZ2V0X3F1b3RlZF9zdHJpbmdfd2l0aF9tdWx0aXBsZV9jb21tZW50cyhzZWxmKToKKyAgICAgICAgcXMgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfcXVvdGVkX3N0cmluZywKKyAgICAgICAgICAgICcgKGZvbykgKGJhcikgImJvYiIoYmlyZCknLCAnIChmb28pIChiYXIpICJib2IiKGJpcmQpJywgJyBib2IgJywKKyAgICAgICAgICAgICAgICBbXSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXNbMF0uY29tbWVudHMsIFsnZm9vJywgJ2JhciddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzWzJdLmNvbW1lbnRzLCBbJ2JpcmQnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxcy5jb250ZW50LCAnYm9iJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxcy5xdW90ZWRfdmFsdWUsICcgImJvYiIgJykKKworICAgIGRlZiB0ZXN0X2dldF9xdW90ZWRfc3RyaW5nX25vbl9wcmludGFibGVfaW5fY29tbWVudChzZWxmKToKKyAgICAgICAgcXMgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfcXVvdGVkX3N0cmluZywKKyAgICAgICAgICAgICcgKFx4MEEpICJib2IiJywgJyAoXHgwQSkgImJvYiInLCAnIGJvYicsCisgICAgICAgICAgICAgICAgW2Vycm9ycy5Ob25QcmludGFibGVEZWZlY3RdLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxc1swXS5jb21tZW50cywgWydceDBBJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXMuY29udGVudCwgJ2JvYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXMucXVvdGVkX3ZhbHVlLCAnICJib2IiJykKKworICAgIGRlZiB0ZXN0X2dldF9xdW90ZWRfc3RyaW5nX25vbl9wcmludGFibGVfaW5fcWNvbnRlbnQoc2VsZik6CisgICAgICAgIHFzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3F1b3RlZF9zdHJpbmcsCisgICAgICAgICAgICAnIChhKSAiYVx4MEIiJywgJyAoYSkgImFceDBCIicsICcgYVx4MEInLAorICAgICAgICAgICAgICAgIFtlcnJvcnMuTm9uUHJpbnRhYmxlRGVmZWN0XSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXNbMF0uY29tbWVudHMsIFsnYSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzLmNvbnRlbnQsICdhXHgwQicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXMucXVvdGVkX3ZhbHVlLCAnICJhXHgwQiInKQorCisgICAgZGVmIHRlc3RfZ2V0X3F1b3RlZF9zdHJpbmdfaW50ZXJuYWxfd3Moc2VsZik6CisgICAgICAgIHFzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3F1b3RlZF9zdHJpbmcsCisgICAgICAgICAgICAnIChhKSAiZm9vICBiYXIgIicsICcgKGEpICJmb28gIGJhciAiJywgJyBmb28gIGJhciAnLAorICAgICAgICAgICAgICAgIFtdLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxc1swXS5jb21tZW50cywgWydhJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXMuY29udGVudCwgJ2ZvbyAgYmFyICcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXMucXVvdGVkX3ZhbHVlLCAnICJmb28gIGJhciAiJykKKworICAgIGRlZiB0ZXN0X2dldF9xdW90ZWRfc3RyaW5nX2hlYWRlcl9lbmRzX2luX2NvbW1lbnQoc2VsZik6CisgICAgICAgIHFzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3F1b3RlZF9zdHJpbmcsCisgICAgICAgICAgICAnIChhKSAiYm9iIiAoYScsICcgKGEpICJib2IiIChhKScsICcgYm9iICcsCisgICAgICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXNbMF0uY29tbWVudHMsIFsnYSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzWzJdLmNvbW1lbnRzLCBbJ2EnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxcy5jb250ZW50LCAnYm9iJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxcy5xdW90ZWRfdmFsdWUsICcgImJvYiIgJykKKworICAgIGRlZiB0ZXN0X2dldF9xdW90ZWRfc3RyaW5nX2hlYWRlcl9lbmRzX2luX3Fjb250ZW50KHNlbGYpOgorICAgICAgICBxcyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9xdW90ZWRfc3RyaW5nLAorICAgICAgICAgICAgJyAoYSkgImJvYicsICcgKGEpICJib2IiJywgJyBib2InLAorICAgICAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0sICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHFzWzBdLmNvbW1lbnRzLCBbJ2EnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxcy5jb250ZW50LCAnYm9iJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxcy5xdW90ZWRfdmFsdWUsICcgImJvYiInKQorCisgICAgZGVmIHRlc3RfZ2V0X3F1b3RlZF9zdHJpbmdfbm9fcXVvdGVkX3N0cmluZyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcik6CisgICAgICAgICAgICBwYXJzZXIuZ2V0X3F1b3RlZF9zdHJpbmcoJyAoYWIpIHh5eicpCisKKyAgICBkZWYgdGVzdF9nZXRfcXVvdGVkX3N0cmluZ19xc19lbmRzX2F0X25vbmNmd3Moc2VsZik6CisgICAgICAgIHFzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3F1b3RlZF9zdHJpbmcsCisgICAgICAgICAgICAnXHQgImJvYiIgZmVlJywgJ1x0ICJib2IiICcsICcgYm9iICcsIFtdLCAnZmVlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxcy5jb250ZW50LCAnYm9iJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxcy5xdW90ZWRfdmFsdWUsICcgImJvYiIgJykKKworICAgICMgZ2V0X2F0b20KKworICAgIGRlZiB0ZXN0X2dldF9hdG9tX29ubHkoc2VsZik6CisgICAgICAgIGF0b20gPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYXRvbSwKKyAgICAgICAgICAgICdib2InLCAnYm9iJywgJ2JvYicsIFtdLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhdG9tLnRva2VuX3R5cGUsICdhdG9tJykKKworICAgIGRlZiB0ZXN0X2dldF9hdG9tX3dpdGhfd3NwKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYXRvbSwKKyAgICAgICAgICAgICdcdCBib2IgICcsICdcdCBib2IgICcsICcgYm9iICcsIFtdLCAnJykKKworICAgIGRlZiB0ZXN0X2dldF9hdG9tX3dpdGhfY29tbWVudHNfYW5kX3dzcChzZWxmKToKKyAgICAgICAgYXRvbSA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hdG9tLAorICAgICAgICAgICAgJyAoZm9vKSBib2IoYmFyKScsICcgKGZvbykgYm9iKGJhciknLCAnIGJvYiAnLCBbXSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXRvbVswXVsxXS5jb250ZW50LCAnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhdG9tWzJdWzBdLmNvbnRlbnQsICdiYXInKQorCisgICAgZGVmIHRlc3RfZ2V0X2F0b21fd2l0aF9tdWx0aXBsZV9jb21tZW50cyhzZWxmKToKKyAgICAgICAgYXRvbSA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hdG9tLAorICAgICAgICAgICAgJyAoZm9vKSAoYmFyKSBib2IoYmlyZCknLCAnIChmb28pIChiYXIpIGJvYihiaXJkKScsICcgYm9iICcsCisgICAgICAgICAgICAgICAgW10sICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGF0b21bMF0uY29tbWVudHMsIFsnZm9vJywgJ2JhciddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGF0b21bMl0uY29tbWVudHMsIFsnYmlyZCddKQorCisgICAgZGVmIHRlc3RfZ2V0X2F0b21fbm9uX3ByaW50YWJsZV9pbl9jb21tZW50KHNlbGYpOgorICAgICAgICBhdG9tID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2F0b20sCisgICAgICAgICAgICAnIChceDBBKSBib2InLCAnIChceDBBKSBib2InLCAnIGJvYicsCisgICAgICAgICAgICAgICAgW2Vycm9ycy5Ob25QcmludGFibGVEZWZlY3RdLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhdG9tWzBdLmNvbW1lbnRzLCBbJ1x4MEEnXSkKKworICAgIGRlZiB0ZXN0X2dldF9hdG9tX25vbl9wcmludGFibGVfaW5fYXRleHQoc2VsZik6CisgICAgICAgIGF0b20gPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYXRvbSwKKyAgICAgICAgICAgICcgKGEpIGFceDBCJywgJyAoYSkgYVx4MEInLCAnIGFceDBCJywKKyAgICAgICAgICAgICAgICBbZXJyb3JzLk5vblByaW50YWJsZURlZmVjdF0sICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGF0b21bMF0uY29tbWVudHMsIFsnYSddKQorCisgICAgZGVmIHRlc3RfZ2V0X2F0b21faGVhZGVyX2VuZHNfaW5fY29tbWVudChzZWxmKToKKyAgICAgICAgYXRvbSA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hdG9tLAorICAgICAgICAgICAgJyAoYSkgYm9iIChhJywgJyAoYSkgYm9iIChhKScsICcgYm9iICcsCisgICAgICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXRvbVswXS5jb21tZW50cywgWydhJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXRvbVsyXS5jb21tZW50cywgWydhJ10pCisKKyAgICBkZWYgdGVzdF9nZXRfYXRvbV9ub19hdG9tKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5nZXRfYXRvbSgnIChhYikgJykKKworICAgIGRlZiB0ZXN0X2dldF9hdG9tX25vX2F0b21fYmVmb3JlX3NwZWNpYWwoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9hdG9tKCcgKGFiKSBAJykKKworICAgIGRlZiB0ZXN0X2dldF9hdG9tX2F0b21fZW5kc19hdF9zcGVjaWFsKHNlbGYpOgorICAgICAgICBhdG9tID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2F0b20sCisgICAgICAgICAgICAnIChmb28pIGJvYihiYXIpICBAYmFuZycsICcgKGZvbykgYm9iKGJhcikgICcsICcgYm9iICcsIFtdLCAnQGJhbmcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGF0b21bMF0uY29tbWVudHMsIFsnZm9vJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXRvbVsyXS5jb21tZW50cywgWydiYXInXSkKKworICAgIGRlZiB0ZXN0X2dldF9hdG9tX2F0b21fZW5kc19hdF9ub25jZndzKHNlbGYpOgorICAgICAgICBhdG9tID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2F0b20sCisgICAgICAgICAgICAnYm9iICBmcmVkJywgJ2JvYiAgJywgJ2JvYiAnLCBbXSwgJ2ZyZWQnKQorCisgICAgIyBnZXRfZG90X2F0b21fdGV4dAorCisgICAgZGVmIHRlc3RfZ2V0X2RvdF9hdG9tX3RleHQoc2VsZik6CisgICAgICAgIGRvdF9hdG9tX3RleHQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG90X2F0b21fdGV4dCwKKyAgICAgICAgICAgICdmb28uYmFyLmJhbmcnLCAnZm9vLmJhci5iYW5nJywgJ2Zvby5iYXIuYmFuZycsIFtdLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb3RfYXRvbV90ZXh0LnRva2VuX3R5cGUsICdkb3QtYXRvbS10ZXh0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZG90X2F0b21fdGV4dCksIDUpCisKKyAgICBkZWYgdGVzdF9nZXRfZG90X2F0b21fdGV4dF9sb25lX2F0b21faXNfdmFsaWQoc2VsZik6CisgICAgICAgIGRvdF9hdG9tX3RleHQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG90X2F0b21fdGV4dCwKKyAgICAgICAgICAgICdmb28nLCAnZm9vJywgJ2ZvbycsIFtdLCAnJykKKworICAgIGRlZiB0ZXN0X2dldF9kb3RfYXRvbV90ZXh0X3JhaXNlc19vbl9sZWFkaW5nX2RvdChzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcik6CisgICAgICAgICAgICBwYXJzZXIuZ2V0X2RvdF9hdG9tX3RleHQoJy5mb28uYmFyJykKKworICAgIGRlZiB0ZXN0X2dldF9kb3RfYXRvbV90ZXh0X3JhaXNlc19vbl90cmFpbGluZ19kb3Qoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9kb3RfYXRvbV90ZXh0KCdmb28uYmFyLicpCisKKyAgICBkZWYgdGVzdF9nZXRfZG90X2F0b21fdGV4dF9yYWlzZXNfb25fbGVhZGluZ19ub25fYXRleHQoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9kb3RfYXRvbV90ZXh0KCcgZm9vLmJhcicpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9kb3RfYXRvbV90ZXh0KCdAZm9vLmJhcicpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9kb3RfYXRvbV90ZXh0KCciZm9vLmJhciInKQorCisgICAgZGVmIHRlc3RfZ2V0X2RvdF9hdG9tX3RleHRfdHJhaWxpbmdfdGV4dF9wcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgIGRvdF9hdG9tX3RleHQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG90X2F0b21fdGV4dCwKKyAgICAgICAgICAgICdmb29AYmFyJywgJ2ZvbycsICdmb28nLCBbXSwgJ0BiYXInKQorCisgICAgZGVmIHRlc3RfZ2V0X2RvdF9hdG9tX3RleHRfdHJhaWxpbmdfd3NfcHJlc2VydmVkKHNlbGYpOgorICAgICAgICBkb3RfYXRvbV90ZXh0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2RvdF9hdG9tX3RleHQsCisgICAgICAgICAgICAnZm9vIC5iYXInLCAnZm9vJywgJ2ZvbycsIFtdLCAnIC5iYXInKQorCisgICAgIyBnZXRfZG90X2F0b20KKworICAgIGRlZiB0ZXN0X2dldF9kb3RfYXRvbV9vbmx5KHNlbGYpOgorICAgICAgICBkb3RfYXRvbSA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9kb3RfYXRvbSwKKyAgICAgICAgICAgICdmb28uYmFyLmJpbmcnLCAnZm9vLmJhci5iaW5nJywgJ2Zvby5iYXIuYmluZycsIFtdLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb3RfYXRvbS50b2tlbl90eXBlLCAnZG90LWF0b20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkb3RfYXRvbSksIDEpCisKKyAgICBkZWYgdGVzdF9nZXRfZG90X2F0b21fd2l0aF93c3Aoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9kb3RfYXRvbSwKKyAgICAgICAgICAgICdcdCAgZm9vLmJhci5iaW5nICAnLCAnXHQgIGZvby5iYXIuYmluZyAgJywgJyBmb28uYmFyLmJpbmcgJywgW10sICcnKQorCisgICAgZGVmIHRlc3RfZ2V0X2RvdF9hdG9tX3dpdGhfY29tbWVudHNfYW5kX3dzcChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2RvdF9hdG9tLAorICAgICAgICAgICAgJyAoc2luZykgIGZvby5iYXIuYmluZyAoaGVyZSkgJywgJyAoc2luZykgIGZvby5iYXIuYmluZyAoaGVyZSkgJywKKyAgICAgICAgICAgICAgICAnIGZvby5iYXIuYmluZyAnLCBbXSwgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfZG90X2F0b21fc3BhY2VfZW5kc19kb3RfYXRvbShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2RvdF9hdG9tLAorICAgICAgICAgICAgJyAoc2luZykgIGZvby5iYXIgLmJpbmcgKGhlcmUpICcsICcgKHNpbmcpICBmb28uYmFyICcsCisgICAgICAgICAgICAgICAgJyBmb28uYmFyICcsIFtdLCAnLmJpbmcgKGhlcmUpICcpCisKKyAgICBkZWYgdGVzdF9nZXRfZG90X2F0b21fbm9fYXRvbV9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9kb3RfYXRvbSgnIChmb28pICcpCisKKyAgICBkZWYgdGVzdF9nZXRfZG90X2F0b21fbGVhZGluZ19kb3RfcmFpc2VzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5nZXRfZG90X2F0b20oJyAoZm9vKSAuYmFyJykKKworICAgIGRlZiB0ZXN0X2dldF9kb3RfYXRvbV90d29fZG90c19yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9kb3RfYXRvbSgnYmFyLi5iYW5nJykKKworICAgIGRlZiB0ZXN0X2dldF9kb3RfYXRvbV90cmFpbGluZ19kb3RfcmFpc2VzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5nZXRfZG90X2F0b20oJyAoZm9vKSBiYXIuYmFuZy4gZm9vJykKKworICAgICMgZ2V0X3dvcmQgKGlmIHRoaXMgd2VyZSBibGFjayBib3ggd2UnZCByZXBlYXQgYWxsIHRoZSBxcy9hdG9tIHRlc3RzKQorCisgICAgZGVmIHRlc3RfZ2V0X3dvcmRfYXRvbV95aWVsZHNfYXRvbShzZWxmKToKKyAgICAgICAgd29yZCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF93b3JkLAorICAgICAgICAgICAgJyAoZm9vKSBiYXIgKGJhbmcpIDphaCcsICcgKGZvbykgYmFyIChiYW5nKSAnLCAnIGJhciAnLCBbXSwgJzphaCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod29yZC50b2tlbl90eXBlLCAnYXRvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod29yZFswXS50b2tlbl90eXBlLCAnY2Z3cycpCisKKyAgICBkZWYgdGVzdF9nZXRfd29yZF9xc195aWVsZHNfcXMoc2VsZik6CisgICAgICAgIHdvcmQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfd29yZCwKKyAgICAgICAgICAgICciYmFyICIgKGJhbmcpIGFoJywgJyJiYXIgIiAoYmFuZykgJywgJ2JhciAgJywgW10sICdhaCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod29yZC50b2tlbl90eXBlLCAncXVvdGVkLXN0cmluZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod29yZFswXS50b2tlbl90eXBlLCAnYmFyZS1xdW90ZWQtc3RyaW5nJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3b3JkWzBdLnZhbHVlLCAnYmFyICcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod29yZC5jb250ZW50LCAnYmFyICcpCisKKyAgICBkZWYgdGVzdF9nZXRfd29yZF9lbmRzX2F0X2RvdChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3dvcmQsCisgICAgICAgICAgICAnZm9vLicsICdmb28nLCAnZm9vJywgW10sICcuJykKKworICAgICMgZ2V0X3BocmFzZQorCisgICAgZGVmIHRlc3RfZ2V0X3BocmFzZV9zaW1wbGUoc2VsZik6CisgICAgICAgIHBocmFzZSA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9waHJhc2UsCisgICAgICAgICAgICAnIkZyZWQgQS4gSm9obnNvbiIgaXMgaGlzIG5hbWUsIG9oLicsCisgICAgICAgICAgICAnIkZyZWQgQS4gSm9obnNvbiIgaXMgaGlzIG5hbWUnLAorICAgICAgICAgICAgJ0ZyZWQgQS4gSm9obnNvbiBpcyBoaXMgbmFtZScsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcsIG9oLicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGhyYXNlLnRva2VuX3R5cGUsICdwaHJhc2UnKQorCisgICAgZGVmIHRlc3RfZ2V0X3BocmFzZV9jb21wbGV4KHNlbGYpOgorICAgICAgICBwaHJhc2UgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfcGhyYXNlLAorICAgICAgICAgICAgJyAoQSkgYmlyZCAoaW4gKG15fHlvdXIpKSAiaGFuZCAgIiBpcyBtZXNzeVx0PD5cdCcsCisgICAgICAgICAgICAnIChBKSBiaXJkIChpbiAobXl8eW91cikpICJoYW5kICAiIGlzIG1lc3N5XHQnLAorICAgICAgICAgICAgJyBiaXJkIGhhbmQgICBpcyBtZXNzeSAnLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnPD5cdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGhyYXNlWzBdWzBdLmNvbW1lbnRzLCBbJ0EnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwaHJhc2VbMF1bMl0uY29tbWVudHMsIFsnaW4gKG15fHlvdXIpJ10pCisKKyAgICBkZWYgdGVzdF9nZXRfcGhyYXNlX29ic29sZXRlKHNlbGYpOgorICAgICAgICBwaHJhc2UgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfcGhyYXNlLAorICAgICAgICAgICAgJ0ZyZWQgQS4od2VpcmQpLk8gSm9obnNvbicsCisgICAgICAgICAgICAnRnJlZCBBLih3ZWlyZCkuTyBKb2huc29uJywKKyAgICAgICAgICAgICdGcmVkIEEuIC5PIEpvaG5zb24nLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0qMywKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwaHJhc2UpLCA3KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBocmFzZVszXS5jb21tZW50cywgWyd3ZWlyZCddKQorCisgICAgZGVmIHRlc3RfZ2V0X3BocmFzZV9waGFyc2VfbXVzdF9zdGFydF93aXRoX3dvcmQoc2VsZik6CisgICAgICAgIHBocmFzZSA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9waHJhc2UsCisgICAgICAgICAgICAnKGV2ZW4gd2VpcmRlcikubmFtZScsCisgICAgICAgICAgICAnKGV2ZW4gd2VpcmRlcikubmFtZScsCisgICAgICAgICAgICAnIC5uYW1lJywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0gKyBbZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0XSoyLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHBocmFzZSksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGhyYXNlWzBdLmNvbW1lbnRzLCBbJ2V2ZW4gd2VpcmRlciddKQorCisgICAgZGVmIHRlc3RfZ2V0X3BocmFzZV9lbmRpbmdfd2l0aF9vYnNvbGV0ZShzZWxmKToKKyAgICAgICAgcGhyYXNlID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X3BocmFzZSwKKyAgICAgICAgICAgICdzaW1wbGUgcGhyYXNlLih3aXRoIHRyYWlsaW5nIGNvbW1lbnQpOmJvbycsCisgICAgICAgICAgICAnc2ltcGxlIHBocmFzZS4od2l0aCB0cmFpbGluZyBjb21tZW50KScsCisgICAgICAgICAgICAnc2ltcGxlIHBocmFzZS4gJywKKyAgICAgICAgICAgIFtlcnJvcnMuT2Jzb2xldGVIZWFkZXJEZWZlY3RdKjIsCisgICAgICAgICAgICAnOmJvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHBocmFzZSksIDQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGhyYXNlWzNdLmNvbW1lbnRzLCBbJ3dpdGggdHJhaWxpbmcgY29tbWVudCddKQorCisgICAgZGVmIGdldF9waHJhc2VfY2Z3c19vbmx5X3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcik6CisgICAgICAgICAgICBwYXJzZXIuZ2V0X3BocmFzZSgnIChmb28pICcpCisKKyAgICAjIGdldF9sb2NhbF9wYXJ0CisKKyAgICBkZWYgdGVzdF9nZXRfbG9jYWxfcGFydF9zaW1wbGUoc2VsZik6CisgICAgICAgIGxvY2FsX3BhcnQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbG9jYWxfcGFydCwKKyAgICAgICAgICAgICdkaW5zZGFsZUBweXRob24ub3JnJywgJ2RpbnNkYWxlJywgJ2RpbnNkYWxlJywgW10sICdAcHl0aG9uLm9yZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC50b2tlbl90eXBlLCAnbG9jYWwtcGFydCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorCisgICAgZGVmIHRlc3RfZ2V0X2xvY2FsX3BhcnRfd2l0aF9kb3Qoc2VsZik6CisgICAgICAgIGxvY2FsX3BhcnQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbG9jYWxfcGFydCwKKyAgICAgICAgICAgICdGcmVkLkEuSm9obnNvbkBweXRob24ub3JnJywKKyAgICAgICAgICAgICdGcmVkLkEuSm9obnNvbicsCisgICAgICAgICAgICAnRnJlZC5BLkpvaG5zb24nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnQHB5dGhvbi5vcmcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvY2FsX3BhcnQubG9jYWxfcGFydCwgJ0ZyZWQuQS5Kb2huc29uJykKKworICAgIGRlZiB0ZXN0X2dldF9sb2NhbF9wYXJ0X3dpdGhfd2hpdGVzcGFjZShzZWxmKToKKyAgICAgICAgbG9jYWxfcGFydCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9sb2NhbF9wYXJ0LAorICAgICAgICAgICAgJyBGcmVkLkEuSm9obnNvbiAgQHB5dGhvbi5vcmcnLAorICAgICAgICAgICAgJyBGcmVkLkEuSm9obnNvbiAgJywKKyAgICAgICAgICAgICcgRnJlZC5BLkpvaG5zb24gJywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJ0BweXRob24ub3JnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbF9wYXJ0LmxvY2FsX3BhcnQsICdGcmVkLkEuSm9obnNvbicpCisKKyAgICBkZWYgdGVzdF9nZXRfbG9jYWxfcGFydF93aXRoX2Nmd3Moc2VsZik6CisgICAgICAgIGxvY2FsX3BhcnQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbG9jYWxfcGFydCwKKyAgICAgICAgICAgICcgKGZvbykgRnJlZC5BLkpvaG5zb24gKGJhciAoYmlyZCkpICBAcHl0aG9uLm9yZycsCisgICAgICAgICAgICAnIChmb28pIEZyZWQuQS5Kb2huc29uIChiYXIgKGJpcmQpKSAgJywKKyAgICAgICAgICAgICcgRnJlZC5BLkpvaG5zb24gJywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJ0BweXRob24ub3JnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbF9wYXJ0LmxvY2FsX3BhcnQsICdGcmVkLkEuSm9obnNvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydFswXVswXS5jb21tZW50cywgWydmb28nXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbF9wYXJ0WzBdWzJdLmNvbW1lbnRzLCBbJ2JhciAoYmlyZCknXSkKKworICAgIGRlZiB0ZXN0X2dldF9sb2NhbF9wYXJ0X3NpbXBsZV9xdW90ZWQoc2VsZik6CisgICAgICAgIGxvY2FsX3BhcnQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbG9jYWxfcGFydCwKKyAgICAgICAgICAgICciZGluc2RhbGUiQHB5dGhvbi5vcmcnLCAnImRpbnNkYWxlIicsICciZGluc2RhbGUiJywgW10sICdAcHl0aG9uLm9yZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC50b2tlbl90eXBlLCAnbG9jYWwtcGFydCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorCisgICAgZGVmIHRlc3RfZ2V0X2xvY2FsX3BhcnRfd2l0aF9xdW90ZWRfZG90KHNlbGYpOgorICAgICAgICBsb2NhbF9wYXJ0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2xvY2FsX3BhcnQsCisgICAgICAgICAgICAnIkZyZWQuQS5Kb2huc29uIkBweXRob24ub3JnJywKKyAgICAgICAgICAgICciRnJlZC5BLkpvaG5zb24iJywKKyAgICAgICAgICAgICciRnJlZC5BLkpvaG5zb24iJywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJ0BweXRob24ub3JnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbF9wYXJ0LmxvY2FsX3BhcnQsICdGcmVkLkEuSm9obnNvbicpCisKKyAgICBkZWYgdGVzdF9nZXRfbG9jYWxfcGFydF9xdW90ZWRfd2l0aF93aGl0ZXNwYWNlKHNlbGYpOgorICAgICAgICBsb2NhbF9wYXJ0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2xvY2FsX3BhcnQsCisgICAgICAgICAgICAnICJGcmVkIEEuIEpvaG5zb24iICBAcHl0aG9uLm9yZycsCisgICAgICAgICAgICAnICJGcmVkIEEuIEpvaG5zb24iICAnLAorICAgICAgICAgICAgJyAiRnJlZCBBLiBKb2huc29uIiAnLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnQHB5dGhvbi5vcmcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvY2FsX3BhcnQubG9jYWxfcGFydCwgJ0ZyZWQgQS4gSm9obnNvbicpCisKKyAgICBkZWYgdGVzdF9nZXRfbG9jYWxfcGFydF9xdW90ZWRfd2l0aF9jZndzKHNlbGYpOgorICAgICAgICBsb2NhbF9wYXJ0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2xvY2FsX3BhcnQsCisgICAgICAgICAgICAnIChmb28pICIgRnJlZCBBLiBKb2huc29uICIgKGJhciAoYmlyZCkpICBAcHl0aG9uLm9yZycsCisgICAgICAgICAgICAnIChmb28pICIgRnJlZCBBLiBKb2huc29uICIgKGJhciAoYmlyZCkpICAnLAorICAgICAgICAgICAgJyAiIEZyZWQgQS4gSm9obnNvbiAiICcsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICdAcHl0aG9uLm9yZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC5sb2NhbF9wYXJ0LCAnIEZyZWQgQS4gSm9obnNvbiAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvY2FsX3BhcnRbMF1bMF0uY29tbWVudHMsIFsnZm9vJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydFswXVsyXS5jb21tZW50cywgWydiYXIgKGJpcmQpJ10pCisKKworICAgIGRlZiB0ZXN0X2dldF9sb2NhbF9wYXJ0X3NpbXBsZV9vYnNvbGV0ZShzZWxmKToKKyAgICAgICAgbG9jYWxfcGFydCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9sb2NhbF9wYXJ0LAorICAgICAgICAgICAgJ0ZyZWQuIEEuSm9obnNvbkBweXRob24ub3JnJywKKyAgICAgICAgICAgICdGcmVkLiBBLkpvaG5zb24nLAorICAgICAgICAgICAgJ0ZyZWQuIEEuSm9obnNvbicsCisgICAgICAgICAgICBbZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0XSwKKyAgICAgICAgICAgICdAcHl0aG9uLm9yZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC5sb2NhbF9wYXJ0LCAnRnJlZC5BLkpvaG5zb24nKQorCisgICAgZGVmIHRlc3RfZ2V0X2xvY2FsX3BhcnRfY29tcGxleF9vYnNvbGV0ZV8xKHNlbGYpOgorICAgICAgICBsb2NhbF9wYXJ0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2xvY2FsX3BhcnQsCisgICAgICAgICAgICAnIChmb28gKUZyZWQgKGJhcikuKGJpcmQpIEEuKHNoZWVwKUpvaG5zb24uImFuZCAgZG9ncyAiQHB5dGhvbi5vcmcnLAorICAgICAgICAgICAgJyAoZm9vIClGcmVkIChiYXIpLihiaXJkKSBBLihzaGVlcClKb2huc29uLiJhbmQgIGRvZ3MgIicsCisgICAgICAgICAgICAnIEZyZWQgLiBBLiBKb2huc29uLmFuZCAgZG9ncyAnLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0sCisgICAgICAgICAgICAnQHB5dGhvbi5vcmcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvY2FsX3BhcnQubG9jYWxfcGFydCwgJ0ZyZWQuQS5Kb2huc29uLmFuZCAgZG9ncyAnKQorCisgICAgZGVmIHRlc3RfZ2V0X2xvY2FsX3BhcnRfY29tcGxleF9vYnNvbGV0ZV9pbnZhbGlkKHNlbGYpOgorICAgICAgICBsb2NhbF9wYXJ0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2xvY2FsX3BhcnQsCisgICAgICAgICAgICAnIChmb28gKUZyZWQgKGJhcikuKGJpcmQpIEEuKHNoZWVwKUpvaG5zb24gImFuZCAgZG9ncyJAcHl0aG9uLm9yZycsCisgICAgICAgICAgICAnIChmb28gKUZyZWQgKGJhcikuKGJpcmQpIEEuKHNoZWVwKUpvaG5zb24gImFuZCAgZG9ncyInLAorICAgICAgICAgICAgJyBGcmVkIC4gQS4gSm9obnNvbiBhbmQgIGRvZ3MnLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSoyLAorICAgICAgICAgICAgJ0BweXRob24ub3JnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbF9wYXJ0LmxvY2FsX3BhcnQsICdGcmVkLkEuSm9obnNvbiBhbmQgIGRvZ3MnKQorCisgICAgZGVmIHRlc3RfZ2V0X2xvY2FsX3BhcnRfbm9fcGFydF9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9sb2NhbF9wYXJ0KCcgKGZvbykgJykKKworICAgIGRlZiB0ZXN0X2dldF9sb2NhbF9wYXJ0X3NwZWNpYWxfaW5zdGVhZF9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9sb2NhbF9wYXJ0KCcgKGZvbykgQHB5dGhvbi5vcmcnKQorCisgICAgZGVmIHRlc3RfZ2V0X2xvY2FsX3BhcnRfdHJhaWxpbmdfZG90KHNlbGYpOgorICAgICAgICBsb2NhbF9wYXJ0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2xvY2FsX3BhcnQsCisgICAgICAgICAgICAnIGJvcnJpcy5AcHl0aG9uLm9yZycsCisgICAgICAgICAgICAnIGJvcnJpcy4nLAorICAgICAgICAgICAgJyBib3JyaXMuJywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0qMiwKKyAgICAgICAgICAgICdAcHl0aG9uLm9yZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC5sb2NhbF9wYXJ0LCAnYm9ycmlzLicpCisKKyAgICBkZWYgdGVzdF9nZXRfbG9jYWxfcGFydF90cmFpbGluZ19kb3Rfd2l0aF93cyhzZWxmKToKKyAgICAgICAgbG9jYWxfcGFydCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9sb2NhbF9wYXJ0LAorICAgICAgICAgICAgJyBib3JyaXMuIEBweXRob24ub3JnJywKKyAgICAgICAgICAgICcgYm9ycmlzLiAnLAorICAgICAgICAgICAgJyBib3JyaXMuICcsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKjIsCisgICAgICAgICAgICAnQHB5dGhvbi5vcmcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvY2FsX3BhcnQubG9jYWxfcGFydCwgJ2JvcnJpcy4nKQorCisgICAgZGVmIHRlc3RfZ2V0X2xvY2FsX3BhcnRfbGVhZGluZ19kb3Qoc2VsZik6CisgICAgICAgIGxvY2FsX3BhcnQgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbG9jYWxfcGFydCwKKyAgICAgICAgICAgICcuYm9ycmlzQHB5dGhvbi5vcmcnLAorICAgICAgICAgICAgJy5ib3JyaXMnLAorICAgICAgICAgICAgJy5ib3JyaXMnLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSoyLAorICAgICAgICAgICAgJ0BweXRob24ub3JnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbF9wYXJ0LmxvY2FsX3BhcnQsICcuYm9ycmlzJykKKworICAgIGRlZiB0ZXN0X2dldF9sb2NhbF9wYXJ0X2xlYWRpbmdfZG90X2FmdGVyX3dzKHNlbGYpOgorICAgICAgICBsb2NhbF9wYXJ0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2xvY2FsX3BhcnQsCisgICAgICAgICAgICAnIC5ib3JyaXNAcHl0aG9uLm9yZycsCisgICAgICAgICAgICAnIC5ib3JyaXMnLAorICAgICAgICAgICAgJyAuYm9ycmlzJywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0qMiwKKyAgICAgICAgICAgICdAcHl0aG9uLm9yZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC5sb2NhbF9wYXJ0LCAnLmJvcnJpcycpCisKKyAgICBkZWYgdGVzdF9nZXRfbG9jYWxfcGFydF9kb3VibGVfZG90X3JhaXNlcyhzZWxmKToKKyAgICAgICAgbG9jYWxfcGFydCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9sb2NhbF9wYXJ0LAorICAgICAgICAgICAgJyBib3JyaXMuKGZvbykubmF0YXNoYUBweXRob24ub3JnJywKKyAgICAgICAgICAgICcgYm9ycmlzLihmb28pLm5hdGFzaGEnLAorICAgICAgICAgICAgJyBib3JyaXMuIC5uYXRhc2hhJywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0qMiwKKyAgICAgICAgICAgICdAcHl0aG9uLm9yZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC5sb2NhbF9wYXJ0LCAnYm9ycmlzLi5uYXRhc2hhJykKKworICAgIGRlZiB0ZXN0X2dldF9sb2NhbF9wYXJ0X3F1b3RlZF9zdHJpbmdzX2luX2F0b21fbGlzdChzZWxmKToKKyAgICAgICAgbG9jYWxfcGFydCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9sb2NhbF9wYXJ0LAorICAgICAgICAgICAgJyIiZXhhbXBsZSIgZXhhbXBsZSJAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgJyIiZXhhbXBsZSIgZXhhbXBsZSInLAorICAgICAgICAgICAgJ2V4YW1wbGUgZXhhbXBsZScsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKjMsCisgICAgICAgICAgICAnQGV4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbF9wYXJ0LmxvY2FsX3BhcnQsICdleGFtcGxlIGV4YW1wbGUnKQorCisgICAgZGVmIHRlc3RfZ2V0X2xvY2FsX3BhcnRfdmFsaWRfYW5kX2ludmFsaWRfcXBfaW5fYXRvbV9saXN0KHNlbGYpOgorICAgICAgICBsb2NhbF9wYXJ0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2xvY2FsX3BhcnQsCisgICAgICAgICAgICByJyJcXCJleGFtcGxlXFwiIGV4YW1wbGUiQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgIHInIlxcImV4YW1wbGVcXCIgZXhhbXBsZSInLAorICAgICAgICAgICAgcidcZXhhbXBsZVxcIGV4YW1wbGUnLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSo1LAorICAgICAgICAgICAgJ0BleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9jYWxfcGFydC5sb2NhbF9wYXJ0LCByJ1xleGFtcGxlXFwgZXhhbXBsZScpCisKKyAgICBkZWYgdGVzdF9nZXRfbG9jYWxfcGFydF91bmljb2RlX2RlZmVjdChzZWxmKToKKyAgICAgICAgIyBDdXJyZW50bHkgdGhpcyBvbmx5IGhhcHBlbnMgd2hlbiBwYXJzaW5nIHVuaWNvZGUsIG5vdCB3aGVuIHBhcnNpbmcKKyAgICAgICAgIyBzdHVmZiB0aGF0IHdhcyBvcmlnaW5hbGx5IGJpbmFyeS4KKyAgICAgICAgbG9jYWxfcGFydCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9sb2NhbF9wYXJ0LAorICAgICAgICAgICAgJ2V4w6FtcGxlQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdleMOhbXBsZScsCisgICAgICAgICAgICAnZXjDoW1wbGUnLAorICAgICAgICAgICAgW2Vycm9ycy5Ob25BU0NJSUxvY2FsUGFydERlZmVjdF0sCisgICAgICAgICAgICAnQGV4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2NhbF9wYXJ0LmxvY2FsX3BhcnQsICdleMOhbXBsZScpCisKKyAgICAjIGdldF9kdGV4dAorCisgICAgZGVmIHRlc3RfZ2V0X2R0ZXh0X29ubHkoc2VsZik6CisgICAgICAgIGR0ZXh0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2R0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vYmFyJywgJ2Zvb2JhcicsICdmb29iYXInLCBbXSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHRleHQudG9rZW5fdHlwZSwgJ3B0ZXh0JykKKworICAgIGRlZiB0ZXN0X2dldF9kdGV4dF9hbGxfZHRleHQoc2VsZik6CisgICAgICAgIGR0ZXh0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2R0ZXh0LCBzZWxmLnJmY19kdGV4dF9jaGFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmZjX2R0ZXh0X2NoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZmNfZHRleHRfY2hhcnMsIFtdLCAnJykKKworICAgIGRlZiB0ZXN0X2dldF9kdGV4dF90d29fd29yZHNfZ2V0c19maXJzdChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2R0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyBiYXInLCAnZm9vJywgJ2ZvbycsIFtdLCAnIGJhcicpCisKKyAgICBkZWYgdGVzdF9nZXRfZHRleHRfZm9sbG93aW5nX3dzcF9wcmVzZXJ2ZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9kdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdmb28gXHRcdGJhcicsICdmb28nLCAnZm9vJywgW10sICcgXHRcdGJhcicpCisKKyAgICBkZWYgdGVzdF9nZXRfZHRleHRfbm9uX3ByaW50YWJsZXMoc2VsZik6CisgICAgICAgIGR0ZXh0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2R0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vXHgwMGJhcl0nLCAnZm9vXHgwMGJhcicsICdmb29ceDAwYmFyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9ycy5Ob25QcmludGFibGVEZWZlY3RdLCAnXScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHRleHQuZGVmZWN0c1swXS5ub25fcHJpbnRhYmxlc1swXSwgJ1x4MDAnKQorCisgICAgZGVmIHRlc3RfZ2V0X2R0ZXh0X3dpdGhfcXAoc2VsZik6CisgICAgICAgIHB0ZXh0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2R0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcidmb29cXVxbXFxiYXJcYlxlXGxcbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByJ2Zvb11bXGJhcmJlbGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcidmb29dW1xiYXJiZWxsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcnMuT2Jzb2xldGVIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCisKKyAgICBkZWYgdGVzdF9nZXRfZHRleHRfdXBfdG9fY2xvc2VfYnJhY2tldF9vbmx5KHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9vXScsICdmb28nLCAnZm9vJywgW10sICddJykKKworICAgIGRlZiB0ZXN0X2dldF9kdGV4dF93c3BfYmVmb3JlX2Nsb3NlX2JyYWNrZXRfcHJlc2VydmVkKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9vICBdJywgJ2ZvbycsICdmb28nLCBbXSwgJyAgXScpCisKKyAgICBkZWYgdGVzdF9nZXRfZHRleHRfY2xvc2VfYnJhY2tldF9taWRfd29yZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2R0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvb11iYXInLCAnZm9vJywgJ2ZvbycsIFtdLCAnXWJhcicpCisKKyAgICBkZWYgdGVzdF9nZXRfZHRleHRfdXBfdG9fb3Blbl9icmFja2V0X29ubHkoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9kdGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdmb29bJywgJ2ZvbycsICdmb28nLCBbXSwgJ1snKQorCisgICAgZGVmIHRlc3RfZ2V0X2R0ZXh0X3dzcF9iZWZvcmVfb3Blbl9icmFja2V0X3ByZXNlcnZlZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2R0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbyAgWycsICdmb28nLCAnZm9vJywgW10sICcgIFsnKQorCisgICAgZGVmIHRlc3RfZ2V0X2R0ZXh0X29wZW5fYnJhY2tldF9taWRfd29yZChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2R0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvb1tiYXInLCAnZm9vJywgJ2ZvbycsIFtdLCAnW2JhcicpCisKKyAgICAjIGdldF9kb21haW5fbGl0ZXJhbAorCisgICAgZGVmIHRlc3RfZ2V0X2RvbWFpbl9saXRlcmFsX29ubHkoc2VsZik6CisgICAgICAgIGRvbWFpbl9saXRlcmFsID0gZG9tYWluX2xpdGVyYWwgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG9tYWluX2xpdGVyYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbMTI3LjAuMC4xXScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbMTI3LjAuMC4xXScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbMTI3LjAuMC4xXScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb21haW5fbGl0ZXJhbC50b2tlbl90eXBlLCAnZG9tYWluLWxpdGVyYWwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvbWFpbl9saXRlcmFsLmRvbWFpbiwgJ1sxMjcuMC4wLjFdJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb21haW5fbGl0ZXJhbC5pcCwgJzEyNy4wLjAuMScpCisKKyAgICBkZWYgdGVzdF9nZXRfZG9tYWluX2xpdGVyYWxfd2l0aF9pbnRlcm5hbF93cyhzZWxmKToKKyAgICAgICAgZG9tYWluX2xpdGVyYWwgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG9tYWluX2xpdGVyYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbICAxMjcuMC4wLjFcdCBdJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1sgIDEyNy4wLjAuMVx0IF0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWyAxMjcuMC4wLjEgXScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb21haW5fbGl0ZXJhbC5kb21haW4sICdbMTI3LjAuMC4xXScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZG9tYWluX2xpdGVyYWwuaXAsICcxMjcuMC4wLjEnKQorCisgICAgZGVmIHRlc3RfZ2V0X2RvbWFpbl9saXRlcmFsX3dpdGhfc3Vycm91bmRpbmdfY2Z3cyhzZWxmKToKKyAgICAgICAgZG9tYWluX2xpdGVyYWwgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG9tYWluX2xpdGVyYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoZm9vKVsgIDEyNy4wLjAuMV0gKGJhciknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKGZvbylbICAxMjcuMC4wLjFdIChiYXIpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBbIDEyNy4wLjAuMV0gJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvbWFpbl9saXRlcmFsLmRvbWFpbiwgJ1sxMjcuMC4wLjFdJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb21haW5fbGl0ZXJhbC5pcCwgJzEyNy4wLjAuMScpCisKKyAgICBkZWYgdGVzdF9nZXRfZG9tYWluX2xpdGVyYWxfbm9fc3RhcnRfY2hhcl9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9kb21haW5fbGl0ZXJhbCgnKGZvbykgJykKKworICAgIGRlZiB0ZXN0X2dldF9kb21haW5fbGl0ZXJhbF9ub19zdGFydF9jaGFyX2JlZm9yZV9zcGVjaWFsX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcik6CisgICAgICAgICAgICBwYXJzZXIuZ2V0X2RvbWFpbl9saXRlcmFsKCcoZm9vKSBAJykKKworICAgIGRlZiB0ZXN0X2dldF9kb21haW5fbGl0ZXJhbF9iYWRfZHRleHRfY2hhcl9iZWZvcmVfc3BlY2lhbF9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9kb21haW5fbGl0ZXJhbCgnKGZvbykgW2FiY1tAJykKKworICAgICMgZ2V0X2RvbWFpbgorCisgICAgZGVmIHRlc3RfZ2V0X2RvbWFpbl9yZWd1bGFyX2RvbWFpbl9vbmx5KHNlbGYpOgorICAgICAgICBkb21haW4gPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4YW1wbGUuY29tJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvbWFpbi50b2tlbl90eXBlLCAnZG9tYWluJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb21haW4uZG9tYWluLCAnZXhhbXBsZS5jb20nKQorCisgICAgZGVmIHRlc3RfZ2V0X2RvbWFpbl9kb21haW5fbGl0ZXJhbF9vbmx5KHNlbGYpOgorICAgICAgICBkb21haW4gPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdbMTI3LjAuMC4xXScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1sxMjcuMC4wLjFdJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnWzEyNy4wLjAuMV0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvbWFpbi50b2tlbl90eXBlLCAnZG9tYWluJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb21haW4uZG9tYWluLCAnWzEyNy4wLjAuMV0nKQorCisgICAgZGVmIHRlc3RfZ2V0X2RvbWFpbl93aXRoX2Nmd3Moc2VsZik6CisgICAgICAgIGRvbWFpbiA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhmb28pIGV4YW1wbGUuY29tKGJhcilcdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhmb28pIGV4YW1wbGUuY29tKGJhcilcdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBleGFtcGxlLmNvbSAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvbWFpbi5kb21haW4sICdleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfZG9tYWluX2RvbWFpbl9saXRlcmFsX3dpdGhfY2Z3cyhzZWxmKToKKyAgICAgICAgZG9tYWluID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2RvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKGZvbylbMTI3LjAuMC4xXVx0KGJhciknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoZm9vKVsxMjcuMC4wLjFdXHQoYmFyKScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBbMTI3LjAuMC4xXSAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvbWFpbi5kb21haW4sICdbMTI3LjAuMC4xXScpCisKKyAgICBkZWYgdGVzdF9nZXRfZG9tYWluX2RvbWFpbl93aXRoX2Nmd3NfZW5kc19hdF9zcGVjaWFsKHNlbGYpOgorICAgICAgICBkb21haW4gPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoZm9vKWV4YW1wbGUuY29tXHQoYmFyKSwgbmV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhmb28pZXhhbXBsZS5jb21cdChiYXIpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIGV4YW1wbGUuY29tICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJywgbmV4dCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZG9tYWluLmRvbWFpbiwgJ2V4YW1wbGUuY29tJykKKworICAgIGRlZiB0ZXN0X2dldF9kb21haW5fZG9tYWluX2xpdGVyYWxfd2l0aF9jZndzX2VuZHNfYXRfc3BlY2lhbChzZWxmKToKKyAgICAgICAgZG9tYWluID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2RvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKGZvbylbMTI3LjAuMC4xXVx0KGJhciksIG5leHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoZm9vKVsxMjcuMC4wLjFdXHQoYmFyKScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBbMTI3LjAuMC4xXSAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcsIG5leHQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvbWFpbi5kb21haW4sICdbMTI3LjAuMC4xXScpCisKKyAgICBkZWYgdGVzdF9nZXRfZG9tYWluX29ic29sZXRlKHNlbGYpOgorICAgICAgICBkb21haW4gPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoZm9vKSBleGFtcGxlIC4gKGJpcmQpY29tKGJhcilcdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyhmb28pIGV4YW1wbGUgLiAoYmlyZCljb20oYmFyKVx0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIGV4YW1wbGUgLiBjb20gJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkb21haW4uZG9tYWluLCAnZXhhbXBsZS5jb20nKQorCisgICAgZGVmIHRlc3RfZ2V0X2RvbWFpbl9ub19ub25fY2Z3c19yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9kb21haW4oIiAgKGZvbylcdCIpCisKKyAgICBkZWYgdGVzdF9nZXRfZG9tYWluX25vX2F0b21fcmFpc2VzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5nZXRfZG9tYWluKCIgIChmb28pXHQsIGJyb2tlbiIpCisKKworICAgICMgZ2V0X2FkZHJfc3BlYworCisgICAgZGVmIHRlc3RfZ2V0X2FkZHJfc3BlY19ub3JtYWwoc2VsZik6CisgICAgICAgIGFkZHJfc3BlYyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyX3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGluc2RhbGVAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy50b2tlbl90eXBlLCAnYWRkci1zcGVjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMubG9jYWxfcGFydCwgJ2RpbnNkYWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy5hZGRyX3NwZWMsICdkaW5zZGFsZUBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcl9zcGVjX3dpdGhfZG9hbWluX2xpdGVyYWwoc2VsZik6CisgICAgICAgIGFkZHJfc3BlYyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyX3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGluc2RhbGVAWzEyNy4wLjAuMV0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpbnNkYWxlQFsxMjcuMC4wLjFdJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaW5zZGFsZUBbMTI3LjAuMC4xXScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy5kb21haW4sICdbMTI3LjAuMC4xXScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcl9zcGVjLmFkZHJfc3BlYywgJ2RpbnNkYWxlQFsxMjcuMC4wLjFdJykKKworICAgIGRlZiB0ZXN0X2dldF9hZGRyX3NwZWNfd2l0aF9jZndzKHNlbGYpOgorICAgICAgICBhZGRyX3NwZWMgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYWRkcl9zcGVjLAorICAgICAgICAgICAgICAgICcoZm9vKSBkaW5zZGFsZShiYXIpQCAoYmlyZCkgZXhhbXBsZS5jb20gKGJvZyknLAorICAgICAgICAgICAgICAgICcoZm9vKSBkaW5zZGFsZShiYXIpQCAoYmlyZCkgZXhhbXBsZS5jb20gKGJvZyknLAorICAgICAgICAgICAgICAgICcgZGluc2RhbGVAZXhhbXBsZS5jb20gJywKKyAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMubG9jYWxfcGFydCwgJ2RpbnNkYWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy5hZGRyX3NwZWMsICdkaW5zZGFsZUBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcl9zcGVjX3dpdGhfcW91b3RlZF9zdHJpbmdfYW5kX2Nmd3Moc2VsZik6CisgICAgICAgIGFkZHJfc3BlYyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyX3NwZWMsCisgICAgICAgICAgICAgICAgJyhmb28pICJyb3kgYSBidWciKGJhcilAIChiaXJkKSBleGFtcGxlLmNvbSAoYm9nKScsCisgICAgICAgICAgICAgICAgJyhmb28pICJyb3kgYSBidWciKGJhcilAIChiaXJkKSBleGFtcGxlLmNvbSAoYm9nKScsCisgICAgICAgICAgICAgICAgJyAicm95IGEgYnVnIkBleGFtcGxlLmNvbSAnLAorICAgICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy5sb2NhbF9wYXJ0LCAncm95IGEgYnVnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy5hZGRyX3NwZWMsICcicm95IGEgYnVnIkBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcl9zcGVjX2VuZHNfYXRfc3BlY2lhbChzZWxmKToKKyAgICAgICAgYWRkcl9zcGVjID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2FkZHJfc3BlYywKKyAgICAgICAgICAgICAgICAnKGZvbykgInJveSBhIGJ1ZyIoYmFyKUAgKGJpcmQpIGV4YW1wbGUuY29tIChib2cpICwgbmV4dCcsCisgICAgICAgICAgICAgICAgJyhmb28pICJyb3kgYSBidWciKGJhcilAIChiaXJkKSBleGFtcGxlLmNvbSAoYm9nKSAnLAorICAgICAgICAgICAgICAgICcgInJveSBhIGJ1ZyJAZXhhbXBsZS5jb20gJywKKyAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAgICAnLCBuZXh0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMubG9jYWxfcGFydCwgJ3JveSBhIGJ1ZycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcl9zcGVjLmRvbWFpbiwgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMuYWRkcl9zcGVjLCAnInJveSBhIGJ1ZyJAZXhhbXBsZS5jb20nKQorCisgICAgZGVmIHRlc3RfZ2V0X2FkZHJfc3BlY19xdW90ZWRfc3RyaW5nc19pbl9hdG9tX2xpc3Qoc2VsZik6CisgICAgICAgIGFkZHJfc3BlYyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyX3NwZWMsCisgICAgICAgICAgICAnIiJleGFtcGxlIiBleGFtcGxlIkBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAnIiJleGFtcGxlIiBleGFtcGxlIkBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAnZXhhbXBsZSBleGFtcGxlQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0qMywKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy5sb2NhbF9wYXJ0LCAnZXhhbXBsZSBleGFtcGxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy5hZGRyX3NwZWMsICciZXhhbXBsZSBleGFtcGxlIkBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcl9zcGVjX2RvdF9hdG9tKHNlbGYpOgorICAgICAgICBhZGRyX3NwZWMgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYWRkcl9zcGVjLAorICAgICAgICAgICAgJ3N0YXIuYS5zdGFyQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdzdGFyLmEuc3RhckBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAnc3Rhci5hLnN0YXJAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMubG9jYWxfcGFydCwgJ3N0YXIuYS5zdGFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyX3NwZWMuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJfc3BlYy5hZGRyX3NwZWMsICdzdGFyLmEuc3RhckBleGFtcGxlLmNvbScpCisKKyAgICAjIGdldF9vYnNfcm91dGUKKworICAgIGRlZiB0ZXN0X2dldF9vYnNfcm91dGVfc2ltcGxlKHNlbGYpOgorICAgICAgICBvYnNfcm91dGUgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfb2JzX3JvdXRlLAorICAgICAgICAgICAgJ0BleGFtcGxlLmNvbSwgQHR3by5leGFtcGxlLmNvbTonLAorICAgICAgICAgICAgJ0BleGFtcGxlLmNvbSwgQHR3by5leGFtcGxlLmNvbTonLAorICAgICAgICAgICAgJ0BleGFtcGxlLmNvbSwgQHR3by5leGFtcGxlLmNvbTonLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvYnNfcm91dGUudG9rZW5fdHlwZSwgJ29icy1yb3V0ZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob2JzX3JvdXRlLmRvbWFpbnMsIFsnZXhhbXBsZS5jb20nLCAndHdvLmV4YW1wbGUuY29tJ10pCisKKyAgICBkZWYgdGVzdF9nZXRfb2JzX3JvdXRlX2NvbXBsZXgoc2VsZik6CisgICAgICAgIG9ic19yb3V0ZSA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9vYnNfcm91dGUsCisgICAgICAgICAgICAnKGZvbyksLCAoYmx1ZSlAZXhhbXBsZS5jb20gKGJhciksQHR3by4oZm9vKSBleGFtcGxlLmNvbSAoYmlyZCk6JywKKyAgICAgICAgICAgICcoZm9vKSwsIChibHVlKUBleGFtcGxlLmNvbSAoYmFyKSxAdHdvLihmb28pIGV4YW1wbGUuY29tIChiaXJkKTonLAorICAgICAgICAgICAgJyAsLCBAZXhhbXBsZS5jb20gLEB0d28uIGV4YW1wbGUuY29tIDonLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0sICAjIFRoaXMgaXMgdGhlIG9icy1kb21haW4KKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9ic19yb3V0ZS50b2tlbl90eXBlLCAnb2JzLXJvdXRlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvYnNfcm91dGUuZG9tYWlucywgWydleGFtcGxlLmNvbScsICd0d28uZXhhbXBsZS5jb20nXSkKKworICAgIGRlZiB0ZXN0X2dldF9vYnNfcm91dGVfbm9fcm91dGVfYmVmb3JlX2VuZF9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9vYnNfcm91dGUoJyhmb28pIEBleGFtcGxlLmNvbSwnKQorCisgICAgZGVmIHRlc3RfZ2V0X29ic19yb3V0ZV9ub19yb3V0ZV9iZWZvcmVfc3BlY2lhbF9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9vYnNfcm91dGUoJyhmb28pIFthYmNdLCcpCisKKyAgICBkZWYgdGVzdF9nZXRfb2JzX3JvdXRlX25vX3JvdXRlX2JlZm9yZV9zcGVjaWFsX3JhaXNlczIoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9vYnNfcm91dGUoJyhmb28pIEBleGFtcGxlLmNvbSBbYWJjXSwnKQorCisgICAgIyBnZXRfYW5nbGVfYWRkcgorCisgICAgZGVmIHRlc3RfZ2V0X2FuZ2xlX2FkZHJfc2ltcGxlKHNlbGYpOgorICAgICAgICBhbmdsZV9hZGRyID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2FuZ2xlX2FkZHIsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuZ2xlX2FkZHIudG9rZW5fdHlwZSwgJ2FuZ2xlLWFkZHInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuZ2xlX2FkZHIubG9jYWxfcGFydCwgJ2RpbnNkYWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLmRvbWFpbiwgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoYW5nbGVfYWRkci5yb3V0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLmFkZHJfc3BlYywgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKworICAgIGRlZiB0ZXN0X2dldF9hbmdsZV9hZGRyX2VtcHR5KHNlbGYpOgorICAgICAgICBhbmdsZV9hZGRyID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2FuZ2xlX2FkZHIsCisgICAgICAgICAgICAnPD4nLAorICAgICAgICAgICAgJzw+JywKKyAgICAgICAgICAgICc8PicsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci50b2tlbl90eXBlLCAnYW5nbGUtYWRkcicpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGFuZ2xlX2FkZHIubG9jYWxfcGFydCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoYW5nbGVfYWRkci5kb21haW4pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGFuZ2xlX2FkZHIucm91dGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci5hZGRyX3NwZWMsICc8PicpCisKKyAgICBkZWYgdGVzdF9nZXRfYW5nbGVfYWRkcl93aXRoX2Nmd3Moc2VsZik6CisgICAgICAgIGFuZ2xlX2FkZHIgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYW5nbGVfYWRkciwKKyAgICAgICAgICAgICcgKGZvbykgPGRpbnNkYWxlQGV4YW1wbGUuY29tPihiYXIpJywKKyAgICAgICAgICAgICcgKGZvbykgPGRpbnNkYWxlQGV4YW1wbGUuY29tPihiYXIpJywKKyAgICAgICAgICAgICcgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiAnLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLnRva2VuX3R5cGUsICdhbmdsZS1hZGRyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLmxvY2FsX3BhcnQsICdkaW5zZGFsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci5kb21haW4sICdleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGFuZ2xlX2FkZHIucm91dGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci5hZGRyX3NwZWMsICdkaW5zZGFsZUBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfYW5nbGVfYWRkcl9xc19hbmRfZG9tYWluX2xpdGVyYWwoc2VsZik6CisgICAgICAgIGFuZ2xlX2FkZHIgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYW5nbGVfYWRkciwKKyAgICAgICAgICAgICc8IkZyZWQgUGVyZmVjdCJAWzEyNy4wLjAuMV0+JywKKyAgICAgICAgICAgICc8IkZyZWQgUGVyZmVjdCJAWzEyNy4wLjAuMV0+JywKKyAgICAgICAgICAgICc8IkZyZWQgUGVyZmVjdCJAWzEyNy4wLjAuMV0+JywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci5sb2NhbF9wYXJ0LCAnRnJlZCBQZXJmZWN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLmRvbWFpbiwgJ1sxMjcuMC4wLjFdJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoYW5nbGVfYWRkci5yb3V0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLmFkZHJfc3BlYywgJyJGcmVkIFBlcmZlY3QiQFsxMjcuMC4wLjFdJykKKworICAgIGRlZiB0ZXN0X2dldF9hbmdsZV9hZGRyX2ludGVybmFsX2Nmd3Moc2VsZik6CisgICAgICAgIGFuZ2xlX2FkZHIgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYW5nbGVfYWRkciwKKyAgICAgICAgICAgICc8KGZvbykgZGluc2RhbGVAZXhhbXBsZS5jb20oYmFyKT4nLAorICAgICAgICAgICAgJzwoZm9vKSBkaW5zZGFsZUBleGFtcGxlLmNvbShiYXIpPicsCisgICAgICAgICAgICAnPCBkaW5zZGFsZUBleGFtcGxlLmNvbSA+JywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuZ2xlX2FkZHIuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShhbmdsZV9hZGRyLnJvdXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuZ2xlX2FkZHIuYWRkcl9zcGVjLCAnZGluc2RhbGVAZXhhbXBsZS5jb20nKQorCisgICAgZGVmIHRlc3RfZ2V0X2FuZ2xlX2FkZHJfb2JzX3JvdXRlKHNlbGYpOgorICAgICAgICBhbmdsZV9hZGRyID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2FuZ2xlX2FkZHIsCisgICAgICAgICAgICAnKGZvbyk8QGV4YW1wbGUuY29tLCAoYmlyZCkgQHR3by5leGFtcGxlLmNvbTogZGluc2RhbGVAZXhhbXBsZS5jb20+IChiYXIpICcsCisgICAgICAgICAgICAnKGZvbyk8QGV4YW1wbGUuY29tLCAoYmlyZCkgQHR3by5leGFtcGxlLmNvbTogZGluc2RhbGVAZXhhbXBsZS5jb20+IChiYXIpICcsCisgICAgICAgICAgICAnIDxAZXhhbXBsZS5jb20sIEB0d28uZXhhbXBsZS5jb206IGRpbnNkYWxlQGV4YW1wbGUuY29tPiAnLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLmxvY2FsX3BhcnQsICdkaW5zZGFsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci5kb21haW4sICdleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci5yb3V0ZSwgWydleGFtcGxlLmNvbScsICd0d28uZXhhbXBsZS5jb20nXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLmFkZHJfc3BlYywgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKworICAgIGRlZiB0ZXN0X2dldF9hbmdsZV9hZGRyX21pc3NpbmdfY2xvc2luZ19hbmdsZShzZWxmKToKKyAgICAgICAgYW5nbGVfYWRkciA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hbmdsZV9hZGRyLAorICAgICAgICAgICAgJzxkaW5zZGFsZUBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuZ2xlX2FkZHIuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShhbmdsZV9hZGRyLnJvdXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuZ2xlX2FkZHIuYWRkcl9zcGVjLCAnZGluc2RhbGVAZXhhbXBsZS5jb20nKQorCisgICAgZGVmIHRlc3RfZ2V0X2FuZ2xlX2FkZHJfbWlzc2luZ19jbG9zaW5nX2FuZ2xlX3dpdGhfY2Z3cyhzZWxmKToKKyAgICAgICAgYW5nbGVfYWRkciA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hbmdsZV9hZGRyLAorICAgICAgICAgICAgJzxkaW5zZGFsZUBleGFtcGxlLmNvbSAoZm9vKScsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tIChmb28pPicsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tID4nLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuZ2xlX2FkZHIubG9jYWxfcGFydCwgJ2RpbnNkYWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLmRvbWFpbiwgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoYW5nbGVfYWRkci5yb3V0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmdsZV9hZGRyLmFkZHJfc3BlYywgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKworICAgIGRlZiB0ZXN0X2dldF9hbmdsZV9hZGRyX2VuZHNfYXRfc3BlY2lhbChzZWxmKToKKyAgICAgICAgYW5nbGVfYWRkciA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hbmdsZV9hZGRyLAorICAgICAgICAgICAgJzxkaW5zZGFsZUBleGFtcGxlLmNvbT4gKGZvbyksIG5leHQnLAorICAgICAgICAgICAgJzxkaW5zZGFsZUBleGFtcGxlLmNvbT4gKGZvbyknLAorICAgICAgICAgICAgJzxkaW5zZGFsZUBleGFtcGxlLmNvbT4gJywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJywgbmV4dCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5nbGVfYWRkci5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuZ2xlX2FkZHIuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShhbmdsZV9hZGRyLnJvdXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuZ2xlX2FkZHIuYWRkcl9zcGVjLCAnZGluc2RhbGVAZXhhbXBsZS5jb20nKQorCisgICAgZGVmIHRlc3RfZ2V0X2FuZ2xlX2FkZHJfbm9fYW5nbGVfcmFpc2Uoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9hbmdsZV9hZGRyKCcoZm9vKSAnKQorCisgICAgZGVmIHRlc3RfZ2V0X2FuZ2xlX2FkZHJfbm9fYW5nbGVfYmVmb3JlX3NwZWNpYWxfcmFpc2VzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5nZXRfYW5nbGVfYWRkcignKGZvbykgLCBuZXh0JykKKworICAgIGRlZiB0ZXN0X2dldF9hbmdsZV9hZGRyX25vX2FuZ2xlX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcik6CisgICAgICAgICAgICBwYXJzZXIuZ2V0X2FuZ2xlX2FkZHIoJ2JhcicpCisKKyAgICBkZWYgdGVzdF9nZXRfYW5nbGVfYWRkcl9zcGVjaWFsX2FmdGVyX2FuZ2xlX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcik6CisgICAgICAgICAgICBwYXJzZXIuZ2V0X2FuZ2xlX2FkZHIoJyhmb28pIDwsIGJhcicpCisKKyAgICAjIGdldF9kaXNwbGF5X25hbWUgIFRoaXMgaXMgcGhyYXNlIGJ1dCB3aXRoIGEgZGlmZmVyZW50IHZhbHVlLgorCisgICAgZGVmIHRlc3RfZ2V0X2Rpc3BsYXlfbmFtZV9zaW1wbGUoc2VsZik6CisgICAgICAgIGRpc3BsYXlfbmFtZSA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAnRnJlZCBBIEpvaG5zb24nLAorICAgICAgICAgICAgJ0ZyZWQgQSBKb2huc29uJywKKyAgICAgICAgICAgICdGcmVkIEEgSm9obnNvbicsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpc3BsYXlfbmFtZS50b2tlbl90eXBlLCAnZGlzcGxheS1uYW1lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaXNwbGF5X25hbWUuZGlzcGxheV9uYW1lLCAnRnJlZCBBIEpvaG5zb24nKQorCisgICAgZGVmIHRlc3RfZ2V0X2Rpc3BsYXlfbmFtZV9jb21wbGV4MShzZWxmKToKKyAgICAgICAgZGlzcGxheV9uYW1lID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2Rpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICciRnJlZCBBLiBKb2huc29uIiBpcyBoaXMgbmFtZSwgb2guJywKKyAgICAgICAgICAgICciRnJlZCBBLiBKb2huc29uIiBpcyBoaXMgbmFtZScsCisgICAgICAgICAgICAnIkZyZWQgQS4gSm9obnNvbiBpcyBoaXMgbmFtZSInLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnLCBvaC4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpc3BsYXlfbmFtZS50b2tlbl90eXBlLCAnZGlzcGxheS1uYW1lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaXNwbGF5X25hbWUuZGlzcGxheV9uYW1lLCAnRnJlZCBBLiBKb2huc29uIGlzIGhpcyBuYW1lJykKKworICAgIGRlZiB0ZXN0X2dldF9kaXNwbGF5X25hbWVfY29tcGxleDIoc2VsZik6CisgICAgICAgIGRpc3BsYXlfbmFtZSA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAnIChBKSBiaXJkIChpbiAobXl8eW91cikpICJoYW5kICAiIGlzIG1lc3N5XHQ8Plx0JywKKyAgICAgICAgICAgICcgKEEpIGJpcmQgKGluIChteXx5b3VyKSkgImhhbmQgICIgaXMgbWVzc3lcdCcsCisgICAgICAgICAgICAnICJiaXJkIGhhbmQgICBpcyBtZXNzeSIgJywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJzw+XHQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpc3BsYXlfbmFtZVswXVswXS5jb21tZW50cywgWydBJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlzcGxheV9uYW1lWzBdWzJdLmNvbW1lbnRzLCBbJ2luIChteXx5b3VyKSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpc3BsYXlfbmFtZS5kaXNwbGF5X25hbWUsICdiaXJkIGhhbmQgICBpcyBtZXNzeScpCisKKyAgICBkZWYgdGVzdF9nZXRfZGlzcGxheV9uYW1lX29ic29sZXRlKHNlbGYpOgorICAgICAgICBkaXNwbGF5X25hbWUgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZGlzcGxheV9uYW1lLAorICAgICAgICAgICAgJ0ZyZWQgQS4od2VpcmQpLk8gSm9obnNvbicsCisgICAgICAgICAgICAnRnJlZCBBLih3ZWlyZCkuTyBKb2huc29uJywKKyAgICAgICAgICAgICciRnJlZCBBLiAuTyBKb2huc29uIicsCisgICAgICAgICAgICBbZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0XSozLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRpc3BsYXlfbmFtZSksIDcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlzcGxheV9uYW1lWzNdLmNvbW1lbnRzLCBbJ3dlaXJkJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlzcGxheV9uYW1lLmRpc3BsYXlfbmFtZSwgJ0ZyZWQgQS4gLk8gSm9obnNvbicpCisKKyAgICBkZWYgdGVzdF9nZXRfZGlzcGxheV9uYW1lX3BoYXJzZV9tdXN0X3N0YXJ0X3dpdGhfd29yZChzZWxmKToKKyAgICAgICAgZGlzcGxheV9uYW1lID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2Rpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICcoZXZlbiB3ZWlyZGVyKS5uYW1lJywKKyAgICAgICAgICAgICcoZXZlbiB3ZWlyZGVyKS5uYW1lJywKKyAgICAgICAgICAgICcgIi5uYW1lIicsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdICsgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0qMiwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkaXNwbGF5X25hbWUpLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpc3BsYXlfbmFtZVswXS5jb21tZW50cywgWydldmVuIHdlaXJkZXInXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaXNwbGF5X25hbWUuZGlzcGxheV9uYW1lLCAnLm5hbWUnKQorCisgICAgZGVmIHRlc3RfZ2V0X2Rpc3BsYXlfbmFtZV9lbmRpbmdfd2l0aF9vYnNvbGV0ZShzZWxmKToKKyAgICAgICAgZGlzcGxheV9uYW1lID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2Rpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICdzaW1wbGUgcGhyYXNlLih3aXRoIHRyYWlsaW5nIGNvbW1lbnQpOmJvbycsCisgICAgICAgICAgICAnc2ltcGxlIHBocmFzZS4od2l0aCB0cmFpbGluZyBjb21tZW50KScsCisgICAgICAgICAgICAnInNpbXBsZSBwaHJhc2UuIiAnLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0qMiwKKyAgICAgICAgICAgICc6Ym9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGlzcGxheV9uYW1lKSwgNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaXNwbGF5X25hbWVbM10uY29tbWVudHMsIFsnd2l0aCB0cmFpbGluZyBjb21tZW50J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlzcGxheV9uYW1lLmRpc3BsYXlfbmFtZSwgJ3NpbXBsZSBwaHJhc2UuJykKKworICAgICMgZ2V0X25hbWVfYWRkcgorCisgICAgZGVmIHRlc3RfZ2V0X25hbWVfYWRkcl9hbmdsZV9hZGRyX29ubHkoc2VsZik6CisgICAgICAgIG5hbWVfYWRkciA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9uYW1lX2FkZHIsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWVfYWRkci50b2tlbl90eXBlLCAnbmFtZS1hZGRyJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobmFtZV9hZGRyLmRpc3BsYXlfbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIubG9jYWxfcGFydCwgJ2RpbnNkYWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShuYW1lX2FkZHIucm91dGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmFkZHJfc3BlYywgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKworICAgIGRlZiB0ZXN0X2dldF9uYW1lX2FkZHJfYXRvbV9uYW1lKHNlbGYpOgorICAgICAgICBuYW1lX2FkZHIgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbmFtZV9hZGRyLAorICAgICAgICAgICAgJ0RpbnNkYWxlIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgJ0RpbnNkYWxlIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgJ0RpbnNkYWxlIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIudG9rZW5fdHlwZSwgJ25hbWUtYWRkcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmRpc3BsYXlfbmFtZSwgJ0RpbnNkYWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIubG9jYWxfcGFydCwgJ2RpbnNkYWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShuYW1lX2FkZHIucm91dGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmFkZHJfc3BlYywgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKworICAgIGRlZiB0ZXN0X2dldF9uYW1lX2FkZHJfYXRvbV9uYW1lX3dpdGhfY2Z3cyhzZWxmKToKKyAgICAgICAgbmFtZV9hZGRyID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X25hbWVfYWRkciwKKyAgICAgICAgICAgICcoZm9vKSBEaW5zZGFsZSAoYmFyKSA8ZGluc2RhbGVAZXhhbXBsZS5jb20+IChiaXJkKScsCisgICAgICAgICAgICAnKGZvbykgRGluc2RhbGUgKGJhcikgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiAoYmlyZCknLAorICAgICAgICAgICAgJyBEaW5zZGFsZSA8ZGluc2RhbGVAZXhhbXBsZS5jb20+ICcsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWVfYWRkci5kaXNwbGF5X25hbWUsICdEaW5zZGFsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmxvY2FsX3BhcnQsICdkaW5zZGFsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmRvbWFpbiwgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobmFtZV9hZGRyLnJvdXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWVfYWRkci5hZGRyX3NwZWMsICdkaW5zZGFsZUBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfbmFtZV9hZGRyX25hbWVfd2l0aF9jZndzX2FuZF9kb3RzKHNlbGYpOgorICAgICAgICBuYW1lX2FkZHIgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbmFtZV9hZGRyLAorICAgICAgICAgICAgJyhmb28pIFJveS5BLkJlYXIgKGJhcikgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiAoYmlyZCknLAorICAgICAgICAgICAgJyhmb28pIFJveS5BLkJlYXIgKGJhcikgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiAoYmlyZCknLAorICAgICAgICAgICAgJyAiUm95LkEuQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiAnLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0qMiwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWVfYWRkci5kaXNwbGF5X25hbWUsICdSb3kuQS5CZWFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIubG9jYWxfcGFydCwgJ2RpbnNkYWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIuZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShuYW1lX2FkZHIucm91dGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmFkZHJfc3BlYywgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKworICAgIGRlZiB0ZXN0X2dldF9uYW1lX2FkZHJfcXNfbmFtZShzZWxmKToKKyAgICAgICAgbmFtZV9hZGRyID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X25hbWVfYWRkciwKKyAgICAgICAgICAgICciUm95LkEuQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnIlJveS5BLkJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgJyJSb3kuQS5CZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+JywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmRpc3BsYXlfbmFtZSwgJ1JveS5BLkJlYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWVfYWRkci5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWVfYWRkci5kb21haW4sICdleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKG5hbWVfYWRkci5yb3V0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIuYWRkcl9zcGVjLCAnZGluc2RhbGVAZXhhbXBsZS5jb20nKQorCisgICAgZGVmIHRlc3RfZ2V0X25hbWVfYWRkcl93aXRoX3JvdXRlKHNlbGYpOgorICAgICAgICBuYW1lX2FkZHIgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbmFtZV9hZGRyLAorICAgICAgICAgICAgJyJSb3kuQS5CZWFyIiA8QHR3by5leGFtcGxlLmNvbTogZGluc2RhbGVAZXhhbXBsZS5jb20+JywKKyAgICAgICAgICAgICciUm95LkEuQmVhciIgPEB0d28uZXhhbXBsZS5jb206IGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnIlJveS5BLkJlYXIiIDxAdHdvLmV4YW1wbGUuY29tOiBkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIuZGlzcGxheV9uYW1lLCAnUm95LkEuQmVhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmxvY2FsX3BhcnQsICdkaW5zZGFsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmRvbWFpbiwgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIucm91dGUsIFsndHdvLmV4YW1wbGUuY29tJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmFkZHJfc3BlYywgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKworICAgIGRlZiB0ZXN0X2dldF9uYW1lX2FkZHJfZW5kc19hdF9zcGVjaWFsKHNlbGYpOgorICAgICAgICBuYW1lX2FkZHIgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbmFtZV9hZGRyLAorICAgICAgICAgICAgJyJSb3kuQS5CZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+LCBuZXh0JywKKyAgICAgICAgICAgICciUm95LkEuQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnIlJveS5BLkJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnLCBuZXh0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYW1lX2FkZHIuZGlzcGxheV9uYW1lLCAnUm95LkEuQmVhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmxvY2FsX3BhcnQsICdkaW5zZGFsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmFtZV9hZGRyLmRvbWFpbiwgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobmFtZV9hZGRyLnJvdXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWVfYWRkci5hZGRyX3NwZWMsICdkaW5zZGFsZUBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfbmFtZV9hZGRyX25vX2NvbnRlbnRfcmFpc2VzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGVycm9ycy5IZWFkZXJQYXJzZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5nZXRfbmFtZV9hZGRyKCcgKGZvbykgJykKKworICAgIGRlZiB0ZXN0X2dldF9uYW1lX2FkZHJfbm9fY29udGVudF9iZWZvcmVfc3BlY2lhbF9yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoZXJyb3JzLkhlYWRlclBhcnNlRXJyb3IpOgorICAgICAgICAgICAgcGFyc2VyLmdldF9uYW1lX2FkZHIoJyAoZm9vKSAsJykKKworICAgIGRlZiB0ZXN0X2dldF9uYW1lX2FkZHJfbm9fYW5nbGVfYWZ0ZXJfZGlzcGxheV9uYW1lX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhlcnJvcnMuSGVhZGVyUGFyc2VFcnJvcik6CisgICAgICAgICAgICBwYXJzZXIuZ2V0X25hbWVfYWRkcignZm9vIGJhcicpCisKKyAgICAjIGdldF9tYWlsYm94CisKKyAgICBkZWYgdGVzdF9nZXRfbWFpbGJveF9hZGRyX3NwZWNfb25seShzZWxmKToKKyAgICAgICAgbWFpbGJveCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9tYWlsYm94LAorICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAnZGluc2RhbGVAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94LnRva2VuX3R5cGUsICdtYWlsYm94JykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobWFpbGJveC5kaXNwbGF5X25hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveC5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3guZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtYWlsYm94LnJvdXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3guYWRkcl9zcGVjLCAnZGluc2RhbGVAZXhhbXBsZS5jb20nKQorCisgICAgZGVmIHRlc3RfZ2V0X21haWxib3hfYW5nbGVfYWRkcl9vbmx5KHNlbGYpOgorICAgICAgICBtYWlsYm94ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X21haWxib3gsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3gudG9rZW5fdHlwZSwgJ21haWxib3gnKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtYWlsYm94LmRpc3BsYXlfbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94LmxvY2FsX3BhcnQsICdkaW5zZGFsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveC5kb21haW4sICdleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKG1haWxib3gucm91dGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveC5hZGRyX3NwZWMsICdkaW5zZGFsZUBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfbWFpbGJveF9uYW1lX2FkZHIoc2VsZik6CisgICAgICAgIG1haWxib3ggPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbWFpbGJveCwKKyAgICAgICAgICAgICciUm95IEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgJyJSb3kgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAnIlJveSBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+JywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveC50b2tlbl90eXBlLCAnbWFpbGJveCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveC5kaXNwbGF5X25hbWUsICdSb3kgQS4gQmVhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveC5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3guZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtYWlsYm94LnJvdXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3guYWRkcl9zcGVjLCAnZGluc2RhbGVAZXhhbXBsZS5jb20nKQorCisgICAgZGVmIHRlc3RfZ2V0X21haWxib3hfZW5kc19hdF9zcGVjaWFsKHNlbGYpOgorICAgICAgICBtYWlsYm94ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X21haWxib3gsCisgICAgICAgICAgICAnIlJveSBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+LCByZXN0JywKKyAgICAgICAgICAgICciUm95IEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgJyJSb3kgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcsIHJlc3QnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3gudG9rZW5fdHlwZSwgJ21haWxib3gnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3guZGlzcGxheV9uYW1lLCAnUm95IEEuIEJlYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3gubG9jYWxfcGFydCwgJ2RpbnNkYWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94LmRvbWFpbiwgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobWFpbGJveC5yb3V0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94LmFkZHJfc3BlYywgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKworICAgIGRlZiB0ZXN0X2dldF9tYWlsYm94X3F1b3RlZF9zdHJpbmdzX2luX2F0b21fbGlzdChzZWxmKToKKyAgICAgICAgbWFpbGJveCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9tYWlsYm94LAorICAgICAgICAgICAgJyIiZXhhbXBsZSIgZXhhbXBsZSJAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgJyIiZXhhbXBsZSIgZXhhbXBsZSJAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgJ2V4YW1wbGUgZXhhbXBsZUBleGFtcGxlLmNvbScsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKjMsCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94LmxvY2FsX3BhcnQsICdleGFtcGxlIGV4YW1wbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3guZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3guYWRkcl9zcGVjLCAnImV4YW1wbGUgZXhhbXBsZSJAZXhhbXBsZS5jb20nKQorCisgICAgIyBnZXRfbWFpbGJveF9saXN0CisKKyAgICBkZWYgdGVzdF9nZXRfbWFpbGJveF9saXN0X3NpbmdsZV9hZGRyKHNlbGYpOgorICAgICAgICBtYWlsYm94X2xpc3QgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbWFpbGJveF9saXN0LAorICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAnZGluc2RhbGVAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QudG9rZW5fdHlwZSwgJ21haWxib3gtbGlzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1haWxib3hfbGlzdC5tYWlsYm94ZXMpLCAxKQorICAgICAgICBtYWlsYm94ID0gbWFpbGJveF9saXN0Lm1haWxib3hlc1swXQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtYWlsYm94LmRpc3BsYXlfbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94LmxvY2FsX3BhcnQsICdkaW5zZGFsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveC5kb21haW4sICdleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKG1haWxib3gucm91dGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveC5hZGRyX3NwZWMsICdkaW5zZGFsZUBleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveF9saXN0Lm1haWxib3hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBtYWlsYm94X2xpc3QuYWxsX21haWxib3hlcykKKworICAgIGRlZiB0ZXN0X2dldF9tYWlsYm94X2xpc3RfdHdvX3NpbXBsZV9hZGRyKHNlbGYpOgorICAgICAgICBtYWlsYm94X2xpc3QgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbWFpbGJveF9saXN0LAorICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tLCBkaW5zZGFsZUB0ZXN0LmV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLmNvbSwgZGluc2RhbGVAdGVzdC5leGFtcGxlLmNvbScsCisgICAgICAgICAgICAnZGluc2RhbGVAZXhhbXBsZS5jb20sIGRpbnNkYWxlQHRlc3QuZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QudG9rZW5fdHlwZSwgJ21haWxib3gtbGlzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1haWxib3hfbGlzdC5tYWlsYm94ZXMpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3hfbGlzdC5tYWlsYm94ZXNbMF0uYWRkcl9zcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzWzFdLmFkZHJfc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaW5zZGFsZUB0ZXN0LmV4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1haWxib3hfbGlzdC5hbGxfbWFpbGJveGVzKQorCisgICAgZGVmIHRlc3RfZ2V0X21haWxib3hfbGlzdF90d29fbmFtZV9hZGRyKHNlbGYpOgorICAgICAgICBtYWlsYm94X2xpc3QgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbWFpbGJveF9saXN0LAorICAgICAgICAgICAgKCciUm95IEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4sJworICAgICAgICAgICAgICAgICcgIkZyZWQgRmxpbnRzdG9uZSIgPGRpbnNkYWxlQHRlc3QuZXhhbXBsZS5jb20+JyksCisgICAgICAgICAgICAoJyJSb3kgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiwnCisgICAgICAgICAgICAgICAgJyAiRnJlZCBGbGludHN0b25lIiA8ZGluc2RhbGVAdGVzdC5leGFtcGxlLmNvbT4nKSwKKyAgICAgICAgICAgICgnIlJveSBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+LCcKKyAgICAgICAgICAgICAgICAnICJGcmVkIEZsaW50c3RvbmUiIDxkaW5zZGFsZUB0ZXN0LmV4YW1wbGUuY29tPicpLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obWFpbGJveF9saXN0Lm1haWxib3hlcyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveF9saXN0Lm1haWxib3hlc1swXS5hZGRyX3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGluc2RhbGVAZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3hfbGlzdC5tYWlsYm94ZXNbMF0uZGlzcGxheV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ1JveSBBLiBCZWFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzWzFdLmFkZHJfc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaW5zZGFsZUB0ZXN0LmV4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzWzFdLmRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdGcmVkIEZsaW50c3RvbmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3hfbGlzdC5tYWlsYm94ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbGJveF9saXN0LmFsbF9tYWlsYm94ZXMpCisKKyAgICBkZWYgdGVzdF9nZXRfbWFpbGJveF9saXN0X3R3b19jb21wbGV4KHNlbGYpOgorICAgICAgICBtYWlsYm94X2xpc3QgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbWFpbGJveF9saXN0LAorICAgICAgICAgICAgKCcoZm9vKSAiUm95IEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4oYmFyKSwnCisgICAgICAgICAgICAgICAgJyAiRnJlZCBGbGludHN0b25lIiA8ZGluc2RhbGVAdGVzdC4oYmlyZClleGFtcGxlLmNvbT4nKSwKKyAgICAgICAgICAgICgnKGZvbykgIlJveSBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+KGJhciksJworICAgICAgICAgICAgICAgICcgIkZyZWQgRmxpbnRzdG9uZSIgPGRpbnNkYWxlQHRlc3QuKGJpcmQpZXhhbXBsZS5jb20+JyksCisgICAgICAgICAgICAoJyAiUm95IEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4gLCcKKyAgICAgICAgICAgICAgICAnICJGcmVkIEZsaW50c3RvbmUiIDxkaW5zZGFsZUB0ZXN0LiBleGFtcGxlLmNvbT4nKSwKKyAgICAgICAgICAgIFtlcnJvcnMuT2Jzb2xldGVIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1haWxib3hfbGlzdC5tYWlsYm94ZXMpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3hfbGlzdC5tYWlsYm94ZXNbMF0uYWRkcl9zcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzWzBdLmRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdSb3kgQS4gQmVhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveF9saXN0Lm1haWxib3hlc1sxXS5hZGRyX3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGluc2RhbGVAdGVzdC5leGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveF9saXN0Lm1haWxib3hlc1sxXS5kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAnRnJlZCBGbGludHN0b25lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1haWxib3hfbGlzdC5hbGxfbWFpbGJveGVzKQorCisgICAgZGVmIHRlc3RfZ2V0X21haWxib3hfbGlzdF91bnBhcnNlYWJsZV9tYWlsYm94X251bGwoc2VsZik6CisgICAgICAgIG1haWxib3hfbGlzdCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9tYWlsYm94X2xpc3QsCisgICAgICAgICAgICAoJyJSb3kgQS4gQmVhciJbXSBkaW5zZGFsZUBleGFtcGxlLmNvbSwnCisgICAgICAgICAgICAgICAgJyAiRnJlZCBGbGludHN0b25lIiA8ZGluc2RhbGVAdGVzdC4oYmlyZClleGFtcGxlLmNvbT4nKSwKKyAgICAgICAgICAgICgnIlJveSBBLiBCZWFyIltdIGRpbnNkYWxlQGV4YW1wbGUuY29tLCcKKyAgICAgICAgICAgICAgICAnICJGcmVkIEZsaW50c3RvbmUiIDxkaW5zZGFsZUB0ZXN0LihiaXJkKWV4YW1wbGUuY29tPicpLAorICAgICAgICAgICAgKCciUm95IEEuIEJlYXIiW10gZGluc2RhbGVAZXhhbXBsZS5jb20sJworICAgICAgICAgICAgICAgICcgIkZyZWQgRmxpbnRzdG9uZSIgPGRpbnNkYWxlQHRlc3QuIGV4YW1wbGUuY29tPicpLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0LCAgICMgdGhlICdleHRyYScgdGV4dCBhZnRlciB0aGUgbG9jYWwgcGFydAorICAgICAgICAgICAgIGVycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0LCAgICMgdGhlIGxvY2FsIHBhcnQgd2l0aCBubyBhbmdsZS1hZGRyCisgICAgICAgICAgICAgZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0LCAgIyBwZXJpb2QgaW4gZXh0cmEgdGV4dCAoZXhhbXBsZS5jb20pCisgICAgICAgICAgICAgZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0XSwgIyAoYmlyZCkgaW4gdmFsaWQgYWRkcmVzcy4KKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihtYWlsYm94X2xpc3QubWFpbGJveGVzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obWFpbGJveF9saXN0LmFsbF9tYWlsYm94ZXMpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3hfbGlzdC5hbGxfbWFpbGJveGVzWzBdLnRva2VuX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAnaW52YWxpZC1tYWlsYm94JykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobWFpbGJveF9saXN0LmFsbF9tYWlsYm94ZXNbMF0uZGlzcGxheV9uYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3hfbGlzdC5hbGxfbWFpbGJveGVzWzBdLmxvY2FsX3BhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAnUm95IEEuIEJlYXInKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtYWlsYm94X2xpc3QuYWxsX21haWxib3hlc1swXS5kb21haW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveF9saXN0LmFsbF9tYWlsYm94ZXNbMF0uYWRkcl9zcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgJyJSb3kgQS4gQmVhciInKQorICAgICAgICBzZWxmLmFzc2VydElzKG1haWxib3hfbGlzdC5hbGxfbWFpbGJveGVzWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgbWFpbGJveF9saXN0Lm1haWxib3hlc1swXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzWzBdLmFkZHJfc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaW5zZGFsZUB0ZXN0LmV4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzWzBdLmRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdGcmVkIEZsaW50c3RvbmUnKQorCisgICAgZGVmIHRlc3RfZ2V0X21haWxib3hfbGlzdF9qdW5rX2FmdGVyX3ZhbGlkX2FkZHJlc3Moc2VsZik6CisgICAgICAgIG1haWxib3hfbGlzdCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9tYWlsYm94X2xpc3QsCisgICAgICAgICAgICAoJyJSb3kgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPkBALCcKKyAgICAgICAgICAgICAgICAnICJGcmVkIEZsaW50c3RvbmUiIDxkaW5zZGFsZUB0ZXN0LmV4YW1wbGUuY29tPicpLAorICAgICAgICAgICAgKCciUm95IEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT5AQCwnCisgICAgICAgICAgICAgICAgJyAiRnJlZCBGbGludHN0b25lIiA8ZGluc2RhbGVAdGVzdC5leGFtcGxlLmNvbT4nKSwKKyAgICAgICAgICAgICgnIlJveSBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+QEAsJworICAgICAgICAgICAgICAgICcgIkZyZWQgRmxpbnRzdG9uZSIgPGRpbnNkYWxlQHRlc3QuZXhhbXBsZS5jb20+JyksCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1haWxib3hfbGlzdC5tYWlsYm94ZXMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihtYWlsYm94X2xpc3QuYWxsX21haWxib3hlcyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveF9saXN0LmFsbF9tYWlsYm94ZXNbMF0uYWRkcl9zcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QuYWxsX21haWxib3hlc1swXS5kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAnUm95IEEuIEJlYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3hfbGlzdC5hbGxfbWFpbGJveGVzWzBdLnRva2VuX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAnaW52YWxpZC1tYWlsYm94JykKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhtYWlsYm94X2xpc3QuYWxsX21haWxib3hlc1sxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1haWxib3hfbGlzdC5tYWlsYm94ZXNbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveF9saXN0Lm1haWxib3hlc1swXS5hZGRyX3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGluc2RhbGVAdGVzdC5leGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveF9saXN0Lm1haWxib3hlc1swXS5kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAnRnJlZCBGbGludHN0b25lJykKKworICAgIGRlZiB0ZXN0X2dldF9tYWlsYm94X2xpc3RfZW1wdHlfbGlzdF9lbGVtZW50KHNlbGYpOgorICAgICAgICBtYWlsYm94X2xpc3QgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbWFpbGJveF9saXN0LAorICAgICAgICAgICAgKCciUm95IEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4sIChiaXJkKSwsJworICAgICAgICAgICAgICAgICcgIkZyZWQgRmxpbnRzdG9uZSIgPGRpbnNkYWxlQHRlc3QuZXhhbXBsZS5jb20+JyksCisgICAgICAgICAgICAoJyJSb3kgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiwgKGJpcmQpLCwnCisgICAgICAgICAgICAgICAgJyAiRnJlZCBGbGludHN0b25lIiA8ZGluc2RhbGVAdGVzdC5leGFtcGxlLmNvbT4nKSwKKyAgICAgICAgICAgICgnIlJveSBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+LCAsLCcKKyAgICAgICAgICAgICAgICAnICJGcmVkIEZsaW50c3RvbmUiIDxkaW5zZGFsZUB0ZXN0LmV4YW1wbGUuY29tPicpLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0qMiwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihtYWlsYm94X2xpc3QubWFpbGJveGVzKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QuYWxsX21haWxib3hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBtYWlsYm94X2xpc3QubWFpbGJveGVzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxib3hfbGlzdC5hbGxfbWFpbGJveGVzWzBdLmFkZHJfc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFpbGJveF9saXN0LmFsbF9tYWlsYm94ZXNbMF0uZGlzcGxheV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ1JveSBBLiBCZWFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzWzFdLmFkZHJfc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaW5zZGFsZUB0ZXN0LmV4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QubWFpbGJveGVzWzFdLmRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdGcmVkIEZsaW50c3RvbmUnKQorCisgICAgZGVmIHRlc3RfZ2V0X21haWxib3hfbGlzdF9vbmx5X2VtcHR5X2VsZW1lbnRzKHNlbGYpOgorICAgICAgICBtYWlsYm94X2xpc3QgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfbWFpbGJveF9saXN0LAorICAgICAgICAgICAgJyhmb28pLCwgKGJhciknLAorICAgICAgICAgICAgJyhmb28pLCwgKGJhciknLAorICAgICAgICAgICAgJyAsLCAnLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0qMywKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihtYWlsYm94X2xpc3QubWFpbGJveGVzKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsYm94X2xpc3QuYWxsX21haWxib3hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBtYWlsYm94X2xpc3QubWFpbGJveGVzKQorCisgICAgIyBnZXRfZ3JvdXBfbGlzdAorCisgICAgZGVmIHRlc3RfZ2V0X2dyb3VwX2xpc3RfY2Z3c19vbmx5KHNlbGYpOgorICAgICAgICBncm91cF9saXN0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2dyb3VwX2xpc3QsCisgICAgICAgICAgICAnKGhpZGRlbik7JywKKyAgICAgICAgICAgICcoaGlkZGVuKScsCisgICAgICAgICAgICAnICcsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICc7JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cF9saXN0LnRva2VuX3R5cGUsICdncm91cC1saXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZ3JvdXBfbGlzdC5tYWlsYm94ZXMpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwX2xpc3QubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwX2xpc3QuYWxsX21haWxib3hlcykKKworICAgIGRlZiB0ZXN0X2dldF9ncm91cF9saXN0X21haWxib3hfbGlzdChzZWxmKToKKyAgICAgICAgZ3JvdXBfbGlzdCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9ncm91cF9saXN0LAorICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUub3JnLCAiRnJlZCBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5vcmc+JywKKyAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLm9yZywgIkZyZWQgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUub3JnPicsCisgICAgICAgICAgICAnZGluc2RhbGVAZXhhbXBsZS5vcmcsICJGcmVkIEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLm9yZz4nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cF9saXN0LnRva2VuX3R5cGUsICdncm91cC1saXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZ3JvdXBfbGlzdC5tYWlsYm94ZXMpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwX2xpc3QubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwX2xpc3QuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cF9saXN0Lm1haWxib3hlc1sxXS5kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZyZWQgQS4gQmVhcicpCisKKyAgICBkZWYgdGVzdF9nZXRfZ3JvdXBfbGlzdF9vYnNfZ3JvdXBfbGlzdChzZWxmKToKKyAgICAgICAgZ3JvdXBfbGlzdCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9ncm91cF9saXN0LAorICAgICAgICAgICAgJywgKGZvbyksLChiYXIpJywKKyAgICAgICAgICAgICcsIChmb28pLCwoYmFyKScsCisgICAgICAgICAgICAnLCAsLCAnLAorICAgICAgICAgICAgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cF9saXN0LnRva2VuX3R5cGUsICdncm91cC1saXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZ3JvdXBfbGlzdC5tYWlsYm94ZXMpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwX2xpc3QubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwX2xpc3QuYWxsX21haWxib3hlcykKKworICAgIGRlZiB0ZXN0X2dldF9ncm91cF9saXN0X2NvbW1lbnRfb25seV9pbnZhbGlkKHNlbGYpOgorICAgICAgICBncm91cF9saXN0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2dyb3VwX2xpc3QsCisgICAgICAgICAgICAnKGJhciknLAorICAgICAgICAgICAgJyhiYXIpJywKKyAgICAgICAgICAgICcgJywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cF9saXN0LnRva2VuX3R5cGUsICdncm91cC1saXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZ3JvdXBfbGlzdC5tYWlsYm94ZXMpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwX2xpc3QubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwX2xpc3QuYWxsX21haWxib3hlcykKKworICAgICMgZ2V0X2dyb3VwCisKKyAgICBkZWYgdGVzdF9nZXRfZ3JvdXBfZW1wdHkoc2VsZik6CisgICAgICAgIGdyb3VwID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2dyb3VwLAorICAgICAgICAgICAgJ01vbnR5IFB5dGhvbjo7JywKKyAgICAgICAgICAgICdNb250eSBQeXRob246OycsCisgICAgICAgICAgICAnTW9udHkgUHl0aG9uOjsnLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cC50b2tlbl90eXBlLCAnZ3JvdXAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwLmRpc3BsYXlfbmFtZSwgJ01vbnR5IFB5dGhvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGdyb3VwLm1haWxib3hlcyksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JvdXAubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwLmFsbF9tYWlsYm94ZXMpCisKKyAgICBkZWYgdGVzdF9nZXRfZ3JvdXBfbnVsbF9hZGRyX3NwZWMoc2VsZik6CisgICAgICAgIGdyb3VwID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2dyb3VwLAorICAgICAgICAgICAgJ2ZvbzogPD47JywKKyAgICAgICAgICAgICdmb286IDw+OycsCisgICAgICAgICAgICAnZm9vOiA8PjsnLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwLmRpc3BsYXlfbmFtZSwgJ2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGdyb3VwLm1haWxib3hlcyksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGdyb3VwLmFsbF9tYWlsYm94ZXMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwLmFsbF9tYWlsYm94ZXNbMF0udmFsdWUsICc8PicpCisKKyAgICBkZWYgdGVzdF9nZXRfZ3JvdXBfY2Z3c19vbmx5KHNlbGYpOgorICAgICAgICBncm91cCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9ncm91cCwKKyAgICAgICAgICAgICdNb250eSBQeXRob246IChoaWRkZW4pOycsCisgICAgICAgICAgICAnTW9udHkgUHl0aG9uOiAoaGlkZGVuKTsnLAorICAgICAgICAgICAgJ01vbnR5IFB5dGhvbjogOycsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwLnRva2VuX3R5cGUsICdncm91cCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JvdXAuZGlzcGxheV9uYW1lLCAnTW9udHkgUHl0aG9uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZ3JvdXAubWFpbGJveGVzKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cC5tYWlsYm94ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuYWxsX21haWxib3hlcykKKworICAgIGRlZiB0ZXN0X2dldF9ncm91cF9zaW5nbGVfbWFpbGJveChzZWxmKToKKyAgICAgICAgZ3JvdXAgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZ3JvdXAsCisgICAgICAgICAgICAnTW9udHkgUHl0aG9uOiAiRnJlZCBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+OycsCisgICAgICAgICAgICAnTW9udHkgUHl0aG9uOiAiRnJlZCBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+OycsCisgICAgICAgICAgICAnTW9udHkgUHl0aG9uOiAiRnJlZCBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+OycsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwLnRva2VuX3R5cGUsICdncm91cCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JvdXAuZGlzcGxheV9uYW1lLCAnTW9udHkgUHl0aG9uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZ3JvdXAubWFpbGJveGVzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cC5tYWlsYm94ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cC5tYWlsYm94ZXNbMF0uYWRkcl9zcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfZ3JvdXBfbWl4ZWRfbGlzdChzZWxmKToKKyAgICAgICAgZ3JvdXAgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZ3JvdXAsCisgICAgICAgICAgICAoJ01vbnR5IFB5dGhvbjogIkZyZWQgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiwnCisgICAgICAgICAgICAgICAgJyhmb28pIFJvZ2VyIDxwaW5nQGV4YW1wZWxlLmNvbT4sIHhAdGVzdC5leGFtcGxlLmNvbTsnKSwKKyAgICAgICAgICAgICgnTW9udHkgUHl0aG9uOiAiRnJlZCBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+LCcKKyAgICAgICAgICAgICAgICAnKGZvbykgUm9nZXIgPHBpbmdAZXhhbXBlbGUuY29tPiwgeEB0ZXN0LmV4YW1wbGUuY29tOycpLAorICAgICAgICAgICAgKCdNb250eSBQeXRob246ICJGcmVkIEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4sJworICAgICAgICAgICAgICAgICcgUm9nZXIgPHBpbmdAZXhhbXBlbGUuY29tPiwgeEB0ZXN0LmV4YW1wbGUuY29tOycpLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cC50b2tlbl90eXBlLCAnZ3JvdXAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwLmRpc3BsYXlfbmFtZSwgJ01vbnR5IFB5dGhvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGdyb3VwLm1haWxib3hlcyksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JvdXAubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGdyb3VwLmFsbF9tYWlsYm94ZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JvdXAubWFpbGJveGVzWzBdLmRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnRnJlZCBBLiBCZWFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cC5tYWlsYm94ZXNbMV0uZGlzcGxheV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICdSb2dlcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JvdXAubWFpbGJveGVzWzJdLmxvY2FsX3BhcnQsICd4JykKKworICAgIGRlZiB0ZXN0X2dldF9ncm91cF9vbmVfaW52YWxpZChzZWxmKToKKyAgICAgICAgZ3JvdXAgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfZ3JvdXAsCisgICAgICAgICAgICAoJ01vbnR5IFB5dGhvbjogIkZyZWQgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiwnCisgICAgICAgICAgICAgICAgJyhmb28pIFJvZ2VyIHBpbmdAZXhhbXBlbGUuY29tLCB4QHRlc3QuZXhhbXBsZS5jb207JyksCisgICAgICAgICAgICAoJ01vbnR5IFB5dGhvbjogIkZyZWQgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiwnCisgICAgICAgICAgICAgICAgJyhmb28pIFJvZ2VyIHBpbmdAZXhhbXBlbGUuY29tLCB4QHRlc3QuZXhhbXBsZS5jb207JyksCisgICAgICAgICAgICAoJ01vbnR5IFB5dGhvbjogIkZyZWQgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiwnCisgICAgICAgICAgICAgICAgJyBSb2dlciBwaW5nQGV4YW1wZWxlLmNvbSwgeEB0ZXN0LmV4YW1wbGUuY29tOycpLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0LCAgICMgbm9uLWFuZ2xlIGFkZHIgbWFrZXMgbG9jYWwgcGFydCBpbnZhbGlkCisgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdLCAgICMgYW5kIGl0cyBub3Qgb2JzLWxvY2FsIGVpdGhlcjogbm8gZG90cy4KKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdyb3VwLnRva2VuX3R5cGUsICdncm91cCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JvdXAuZGlzcGxheV9uYW1lLCAnTW9udHkgUHl0aG9uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZ3JvdXAubWFpbGJveGVzKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZ3JvdXAuYWxsX21haWxib3hlcyksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ3JvdXAubWFpbGJveGVzWzBdLmRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnRnJlZCBBLiBCZWFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChncm91cC5tYWlsYm94ZXNbMV0ubG9jYWxfcGFydCwgJ3gnKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShncm91cC5hbGxfbWFpbGJveGVzWzFdLmRpc3BsYXlfbmFtZSkKKworICAgICMgZ2V0X2FkZHJlc3MKKworICAgIGRlZiB0ZXN0X2dldF9hZGRyZXNzX3NpbXBsZShzZWxmKToKKyAgICAgICAgYWRkcmVzcyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyZXNzLAorICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAnZGluc2RhbGVAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLnRva2VuX3R5cGUsICdhZGRyZXNzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzcy5tYWlsYm94ZXMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3MubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLm1haWxib3hlc1swXS5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzWzBdLnRva2VuX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ21haWxib3gnKQorCisgICAgZGVmIHRlc3RfZ2V0X2FkZHJlc3NfY29tcGxleChzZWxmKToKKyAgICAgICAgYWRkcmVzcyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyZXNzLAorICAgICAgICAgICAgJyhmb28pICJGcmVkIEEuIEJlYXIiIDwoYmlyZClkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgJyhmb28pICJGcmVkIEEuIEJlYXIiIDwoYmlyZClkaW5zZGFsZUBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgJyAiRnJlZCBBLiBCZWFyIiA8IGRpbnNkYWxlQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3MudG9rZW5fdHlwZSwgJ2FkZHJlc3MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhZGRyZXNzLm1haWxib3hlcyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzcy5tYWlsYm94ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcy5hbGxfbWFpbGJveGVzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3MubWFpbGJveGVzWzBdLmRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnRnJlZCBBLiBCZWFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzWzBdLnRva2VuX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ21haWxib3gnKQorCisgICAgZGVmIHRlc3RfZ2V0X2FkZHJlc3NfZW1wdHlfZ3JvdXAoc2VsZik6CisgICAgICAgIGFkZHJlc3MgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYWRkcmVzcywKKyAgICAgICAgICAgICdNb250eSBQeXRob246OycsCisgICAgICAgICAgICAnTW9udHkgUHl0aG9uOjsnLAorICAgICAgICAgICAgJ01vbnR5IFB5dGhvbjo7JywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzcy50b2tlbl90eXBlLCAnYWRkcmVzcycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFkZHJlc3MubWFpbGJveGVzKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLm1haWxib3hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzLmFsbF9tYWlsYm94ZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc1swXS50b2tlbl90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICdncm91cCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc1swXS5kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ01vbnR5IFB5dGhvbicpCisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcmVzc19ncm91cChzZWxmKToKKyAgICAgICAgYWRkcmVzcyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyZXNzLAorICAgICAgICAgICAgJ01vbnR5IFB5dGhvbjogeEBleGFtcGxlLmNvbSwgeUBleGFtcGxlLmNvbTsnLAorICAgICAgICAgICAgJ01vbnR5IFB5dGhvbjogeEBleGFtcGxlLmNvbSwgeUBleGFtcGxlLmNvbTsnLAorICAgICAgICAgICAgJ01vbnR5IFB5dGhvbjogeEBleGFtcGxlLmNvbSwgeUBleGFtcGxlLmNvbTsnLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLnRva2VuX3R5cGUsICdhZGRyZXNzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzcy5tYWlsYm94ZXMpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3MubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzWzBdLnRva2VuX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzWzBdLmRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnTW9udHkgUHl0aG9uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLm1haWxib3hlc1swXS5sb2NhbF9wYXJ0LCAneCcpCisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcmVzc19xdW90ZWRfbG9jYWxfcGFydChzZWxmKToKKyAgICAgICAgYWRkcmVzcyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyZXNzLAorICAgICAgICAgICAgJyJmb28gYmFyIkBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAnImZvbyBiYXIiQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICciZm9vIGJhciJAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLnRva2VuX3R5cGUsICdhZGRyZXNzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzcy5tYWlsYm94ZXMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3MubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLm1haWxib3hlc1swXS5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLm1haWxib3hlc1swXS5sb2NhbF9wYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICdmb28gYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzWzBdLnRva2VuX3R5cGUsICdtYWlsYm94JykKKworICAgIGRlZiB0ZXN0X2dldF9hZGRyZXNzX2VuZHNfYXRfc3BlY2lhbChzZWxmKToKKyAgICAgICAgYWRkcmVzcyA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyZXNzLAorICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tLCBuZXh0JywKKyAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAnZGluc2RhbGVAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnLCBuZXh0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLnRva2VuX3R5cGUsICdhZGRyZXNzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzcy5tYWlsYm94ZXMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3MubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLm1haWxib3hlc1swXS5kb21haW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzWzBdLnRva2VuX3R5cGUsICdtYWlsYm94JykKKworICAgIGRlZiB0ZXN0X2dldF9hZGRyZXNzX2ludmFsaWRfbWFpbGJveF9pbnZhbGlkKHNlbGYpOgorICAgICAgICBhZGRyZXNzID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2FkZHJlc3MsCisgICAgICAgICAgICAncGluZyBleGFtcGxlLmNvbSwgbmV4dCcsCisgICAgICAgICAgICAncGluZyBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAncGluZyBleGFtcGxlLmNvbScsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QsICAgICMgYWRkci1zcGVjIHdpdGggbm8gZG9tYWluCisgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QsICAgICMgaW52YWxpZCBsb2NhbC1wYXJ0CisgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QsICAgICMgbWlzc2luZyAucyBpbiBsb2NhbC1wYXJ0CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgJywgbmV4dCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzcy50b2tlbl90eXBlLCAnYWRkcmVzcycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFkZHJlc3MubWFpbGJveGVzKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzcy5hbGxfbWFpbGJveGVzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoYWRkcmVzcy5hbGxfbWFpbGJveGVzWzBdLmRvbWFpbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzLmFsbF9tYWlsYm94ZXNbMF0ubG9jYWxfcGFydCwgJ3BpbmcgZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NbMF0udG9rZW5fdHlwZSwgJ2ludmFsaWQtbWFpbGJveCcpCisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcmVzc19xdW90ZWRfc3RyaW5nc19pbl9hdG9tX2xpc3Qoc2VsZik6CisgICAgICAgIGFkZHJlc3MgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYWRkcmVzcywKKyAgICAgICAgICAgICciImV4YW1wbGUiIGV4YW1wbGUiQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICciImV4YW1wbGUiIGV4YW1wbGUiQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdleGFtcGxlIGV4YW1wbGVAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSozLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzcy5hbGxfbWFpbGJveGVzWzBdLmxvY2FsX3BhcnQsICdleGFtcGxlIGV4YW1wbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3MuYWxsX21haWxib3hlc1swXS5kb21haW4sICdleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzcy5hbGxfbWFpbGJveGVzWzBdLmFkZHJfc3BlYywgJyJleGFtcGxlIGV4YW1wbGUiQGV4YW1wbGUuY29tJykKKworCisgICAgIyBnZXRfYWRkcmVzc19saXN0CisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcmVzc19saXN0X21haWxib3hlc19zaW1wbGUoc2VsZik6CisgICAgICAgIGFkZHJlc3NfbGlzdCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyZXNzX2xpc3QsCisgICAgICAgICAgICAnZGluc2RhbGVAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgJ2RpbnNkYWxlQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICdkaW5zZGFsZUBleGFtcGxlLmNvbScsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC50b2tlbl90eXBlLCAnYWRkcmVzcy1saXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzc19saXN0Lm1haWxib3hlcyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpc3QuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbc3RyKHgpIGZvciB4IGluIGFkZHJlc3NfbGlzdC5tYWlsYm94ZXNdLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHIoeCkgZm9yIHggaW4gYWRkcmVzc19saXN0LmFkZHJlc3Nlc10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlc1swXS5kb21haW4sICdleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0WzBdLnRva2VuX3R5cGUsICdhZGRyZXNzJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoYWRkcmVzc19saXN0WzBdLmRpc3BsYXlfbmFtZSkKKworICAgIGRlZiB0ZXN0X2dldF9hZGRyZXNzX2xpc3RfbWFpbGJveGVzX3R3b19zaW1wbGUoc2VsZik6CisgICAgICAgIGFkZHJlc3NfbGlzdCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyZXNzX2xpc3QsCisgICAgICAgICAgICAnZm9vQGV4YW1wbGUuY29tLCAiRnJlZCBBLiBCYXIiIDxiYXJAZXhhbXBsZS5jb20+JywKKyAgICAgICAgICAgICdmb29AZXhhbXBsZS5jb20sICJGcmVkIEEuIEJhciIgPGJhckBleGFtcGxlLmNvbT4nLAorICAgICAgICAgICAgJ2Zvb0BleGFtcGxlLmNvbSwgIkZyZWQgQS4gQmFyIiA8YmFyQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC50b2tlbl90eXBlLCAnYWRkcmVzcy1saXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzc19saXN0Lm1haWxib3hlcyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpc3QuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbc3RyKHgpIGZvciB4IGluIGFkZHJlc3NfbGlzdC5tYWlsYm94ZXNdLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHIoeCkgZm9yIHggaW4gYWRkcmVzc19saXN0LmFkZHJlc3Nlc10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlc1swXS5sb2NhbF9wYXJ0LCAnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzX2xpc3QubWFpbGJveGVzWzFdLmRpc3BsYXlfbmFtZSwgIkZyZWQgQS4gQmFyIikKKworICAgIGRlZiB0ZXN0X2dldF9hZGRyZXNzX2xpc3RfbWFpbGJveGVzX2NvbXBsZXgoc2VsZik6CisgICAgICAgIGFkZHJlc3NfbGlzdCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyZXNzX2xpc3QsCisgICAgICAgICAgICAoJyJSb3kgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiwgJworICAgICAgICAgICAgICAgICcocGluZykgRm9vIDx4QGV4YW1wbGUuY29tPiwnCisgICAgICAgICAgICAgICAgJ05vYm9keSBJcy4gU3BlY2lhbCA8eUAoYmlyZClleGFtcGxlLihiYWQpY29tPicpLAorICAgICAgICAgICAgKCciUm95IEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4sICcKKyAgICAgICAgICAgICAgICAnKHBpbmcpIEZvbyA8eEBleGFtcGxlLmNvbT4sJworICAgICAgICAgICAgICAgICdOb2JvZHkgSXMuIFNwZWNpYWwgPHlAKGJpcmQpZXhhbXBsZS4oYmFkKWNvbT4nKSwKKyAgICAgICAgICAgICgnIlJveSBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+LCAnCisgICAgICAgICAgICAgICAgJ0ZvbyA8eEBleGFtcGxlLmNvbT4sJworICAgICAgICAgICAgICAgICciTm9ib2R5IElzLiBTcGVjaWFsIiA8eUBleGFtcGxlLiBjb20+JyksCisgICAgICAgICAgICBbZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0LCAjIHBlcmlvZCBpbiBJcy4KKyAgICAgICAgICAgIGVycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0sICMgY2Z3cyBpbiBkb21haW4KKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC50b2tlbl90eXBlLCAnYWRkcmVzcy1saXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzc19saXN0Lm1haWxib3hlcyksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpc3QuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbc3RyKHgpIGZvciB4IGluIGFkZHJlc3NfbGlzdC5tYWlsYm94ZXNdLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHIoeCkgZm9yIHggaW4gYWRkcmVzc19saXN0LmFkZHJlc3Nlc10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlc1swXS5kb21haW4sICdleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlc1swXS50b2tlbl90eXBlLCAnbWFpbGJveCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0LmFkZHJlc3Nlc1swXS50b2tlbl90eXBlLCAnYWRkcmVzcycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlc1sxXS5sb2NhbF9wYXJ0LCAneCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlc1syXS5kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ05vYm9keSBJcy4gU3BlY2lhbCcpCisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcmVzc19saXN0X21haWxib3hlc19pbnZhbGlkX2FkZHJlc3NlcyhzZWxmKToKKyAgICAgICAgYWRkcmVzc19saXN0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2FkZHJlc3NfbGlzdCwKKyAgICAgICAgICAgICgnIlJveSBBLiBCZWFyIiA8ZGluc2RhbGVAZXhhbXBsZS5jb20+LCAnCisgICAgICAgICAgICAgICAgJyhwaW5nKSBGb28geEBleGFtcGxlLmNvbVtdLCcKKyAgICAgICAgICAgICAgICAnTm9ib2R5IElzLiBTcGVjaWFsIDwoYmlyZClleGFtcGxlLihiYWQpY29tPicpLAorICAgICAgICAgICAgKCciUm95IEEuIEJlYXIiIDxkaW5zZGFsZUBleGFtcGxlLmNvbT4sICcKKyAgICAgICAgICAgICAgICAnKHBpbmcpIEZvbyB4QGV4YW1wbGUuY29tW10sJworICAgICAgICAgICAgICAgICdOb2JvZHkgSXMuIFNwZWNpYWwgPChiaXJkKWV4YW1wbGUuKGJhZCljb20+JyksCisgICAgICAgICAgICAoJyJSb3kgQS4gQmVhciIgPGRpbnNkYWxlQGV4YW1wbGUuY29tPiwgJworICAgICAgICAgICAgICAgICdGb28geEBleGFtcGxlLmNvbVtdLCcKKyAgICAgICAgICAgICAgICAnIk5vYm9keSBJcy4gU3BlY2lhbCIgPCBleGFtcGxlLiBjb20+JyksCisgICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0LCAgICMgaW52YWxpZCBhZGRyZXNzIGluIGxpc3QKKyAgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QsICAgIyAnRm9vIHgnIGxvY2FsIHBhcnQgaW52YWxpZC4KKyAgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QsICAgIyBNaXNzaW5nIC4gaW4gJ0ZvbyB4JyBsb2NhbCBwYXJ0CisgICAgICAgICAgICAgIGVycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdCwgICMgcGVyaW9kIGluICdJcy4nIGRpc3AtbmFtZSBwaHJhc2UKKyAgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3QsICAgIyBubyBkb21haW4gcGFydCBpbiBhZGRyLXNwZWMKKyAgICAgICAgICAgICAgZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0XSwgIyBhZGRyLXNwZWMgaGFzIGNvbW1lbnQgaW4gaXQKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC50b2tlbl90eXBlLCAnYWRkcmVzcy1saXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzc19saXN0Lm1haWxib3hlcyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFkZHJlc3NfbGlzdC5hbGxfbWFpbGJveGVzKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbc3RyKHgpIGZvciB4IGluIGFkZHJlc3NfbGlzdC5hbGxfbWFpbGJveGVzXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyKHgpIGZvciB4IGluIGFkZHJlc3NfbGlzdC5hZGRyZXNzZXNdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC5tYWlsYm94ZXNbMF0uZG9tYWluLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC5tYWlsYm94ZXNbMF0udG9rZW5fdHlwZSwgJ21haWxib3gnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC5hZGRyZXNzZXNbMF0udG9rZW5fdHlwZSwgJ2FkZHJlc3MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC5hZGRyZXNzZXNbMV0udG9rZW5fdHlwZSwgJ2FkZHJlc3MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhZGRyZXNzX2xpc3QuYWRkcmVzc2VzWzBdLm1haWxib3hlcyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFkZHJlc3NfbGlzdC5hZGRyZXNzZXNbMV0ubWFpbGJveGVzKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzc19saXN0LmFkZHJlc3Nlc1sxXS5tYWlsYm94ZXMpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgYWRkcmVzc19saXN0LmFkZHJlc3Nlc1sxXS5hbGxfbWFpbGJveGVzWzBdLmxvY2FsX3BhcnQsICdGb28geCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBhZGRyZXNzX2xpc3QuYWRkcmVzc2VzWzJdLmFsbF9tYWlsYm94ZXNbMF0uZGlzcGxheV9uYW1lLAorICAgICAgICAgICAgICAgICJOb2JvZHkgSXMuIFNwZWNpYWwiKQorCisgICAgZGVmIHRlc3RfZ2V0X2FkZHJlc3NfbGlzdF9ncm91cF9lbXB0eShzZWxmKToKKyAgICAgICAgYWRkcmVzc19saXN0ID0gc2VsZi5fdGVzdF9nZXRfeChwYXJzZXIuZ2V0X2FkZHJlc3NfbGlzdCwKKyAgICAgICAgICAgICdNb250eSBQeXRob246IDsnLAorICAgICAgICAgICAgJ01vbnR5IFB5dGhvbjogOycsCisgICAgICAgICAgICAnTW9udHkgUHl0aG9uOiA7JywKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0LnRva2VuX3R5cGUsICdhZGRyZXNzLWxpc3QnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhZGRyZXNzX2xpc3QubWFpbGJveGVzKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzX2xpc3QubWFpbGJveGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3NfbGlzdC5hbGxfbWFpbGJveGVzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhZGRyZXNzX2xpc3QuYWRkcmVzc2VzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzX2xpc3QuYWRkcmVzc2VzWzBdLnRva2VuX3R5cGUsICdhZGRyZXNzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzX2xpc3QuYWRkcmVzc2VzWzBdLmRpc3BsYXlfbmFtZSwgJ01vbnR5IFB5dGhvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFkZHJlc3NfbGlzdC5hZGRyZXNzZXNbMF0ubWFpbGJveGVzKSwgMCkKKworICAgIGRlZiB0ZXN0X2dldF9hZGRyZXNzX2xpc3RfZ3JvdXBfc2ltcGxlKHNlbGYpOgorICAgICAgICBhZGRyZXNzX2xpc3QgPSBzZWxmLl90ZXN0X2dldF94KHBhcnNlci5nZXRfYWRkcmVzc19saXN0LAorICAgICAgICAgICAgJ01vbnR5IFB5dGhvbjogZGluc2RhbGVAZXhhbXBsZS5jb207JywKKyAgICAgICAgICAgICdNb250eSBQeXRob246IGRpbnNkYWxlQGV4YW1wbGUuY29tOycsCisgICAgICAgICAgICAnTW9udHkgUHl0aG9uOiBkaW5zZGFsZUBleGFtcGxlLmNvbTsnLAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzX2xpc3QudG9rZW5fdHlwZSwgJ2FkZHJlc3MtbGlzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFkZHJlc3NfbGlzdC5tYWlsYm94ZXMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC5tYWlsYm94ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19saXN0LmFsbF9tYWlsYm94ZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlc1swXS5kb21haW4sICdleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0LmFkZHJlc3Nlc1swXS5kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ01vbnR5IFB5dGhvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0LmFkZHJlc3Nlc1swXS5tYWlsYm94ZXNbMF0uZG9tYWluLAorICAgICAgICAgICAgICAgICAgICAgICAgICdleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9nZXRfYWRkcmVzc19saXN0X2dyb3VwX2FuZF9tYWlsYm94ZXMoc2VsZik6CisgICAgICAgIGFkZHJlc3NfbGlzdCA9IHNlbGYuX3Rlc3RfZ2V0X3gocGFyc2VyLmdldF9hZGRyZXNzX2xpc3QsCisgICAgICAgICAgICAoJ01vbnR5IFB5dGhvbjogZGluc2RhbGVAZXhhbXBsZS5jb20sICJGcmVkIiA8ZmxpbnRAZXhhbXBsZS5jb20+OywgJworICAgICAgICAgICAgICAgICdBYmUgPHhAZXhhbXBsZS5jb20+LCBCZWUgPHlAZXhhbXBsZS5jb20+JyksCisgICAgICAgICAgICAoJ01vbnR5IFB5dGhvbjogZGluc2RhbGVAZXhhbXBsZS5jb20sICJGcmVkIiA8ZmxpbnRAZXhhbXBsZS5jb20+OywgJworICAgICAgICAgICAgICAgICdBYmUgPHhAZXhhbXBsZS5jb20+LCBCZWUgPHlAZXhhbXBsZS5jb20+JyksCisgICAgICAgICAgICAoJ01vbnR5IFB5dGhvbjogZGluc2RhbGVAZXhhbXBsZS5jb20sICJGcmVkIiA8ZmxpbnRAZXhhbXBsZS5jb20+OywgJworICAgICAgICAgICAgICAgICdBYmUgPHhAZXhhbXBsZS5jb20+LCBCZWUgPHlAZXhhbXBsZS5jb20+JyksCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC50b2tlbl90eXBlLCAnYWRkcmVzcy1saXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzc19saXN0Lm1haWxib3hlcyksIDQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX2xpc3QuYWxsX21haWxib3hlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWRkcmVzc19saXN0LmFkZHJlc3NlcyksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzc19saXN0Lm1haWxib3hlc1swXS5sb2NhbF9wYXJ0LCAnZGluc2RhbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC5hZGRyZXNzZXNbMF0uZGlzcGxheV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICdNb250eSBQeXRob24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC5hZGRyZXNzZXNbMF0ubWFpbGJveGVzWzBdLmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3NfbGlzdC5hZGRyZXNzZXNbMF0ubWFpbGJveGVzWzFdLmxvY2FsX3BhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZsaW50JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzX2xpc3QuYWRkcmVzc2VzWzFdLm1haWxib3hlc1swXS5sb2NhbF9wYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICd4JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzX2xpc3QuYWRkcmVzc2VzWzJdLm1haWxib3hlc1swXS5sb2NhbF9wYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICd5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoYWRkcmVzc19saXN0LmFkZHJlc3Nlc1sxXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGFkZHJlc3NfbGlzdC5tYWlsYm94ZXNbMl0pKQorCisKK0BwYXJhbWV0ZXJpemUKK2NsYXNzIFRlc3RfcGFyc2VfbWltZV92ZXJzaW9uKFRlc3RQYXJzZXJNaXhpbiwgVGVzdEVtYWlsQmFzZSk6CisKKyAgICBkZWYgbWltZV92ZXJzaW9uX2FzX3ZhbHVlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsX3N0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRsX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFqb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5vciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmVjdHMpOgorICAgICAgICBtaW1lX3ZlcnNpb24gPSBzZWxmLl90ZXN0X3BhcnNlX3gocGFyc2VyLnBhcnNlX21pbWVfdmVyc2lvbiwKKyAgICAgICAgICAgIHZhbHVlLCB0bF9zdHIsIHRsX3ZhbHVlLCBkZWZlY3RzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1pbWVfdmVyc2lvbi5tYWpvciwgbWFqb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWltZV92ZXJzaW9uLm1pbm9yLCBtaW5vcikKKworICAgIG1pbWVfdmVyc2lvbl9wYXJhbXMgPSB7CisKKyAgICAgICAgJ3JmY18yMDQ1XzEnOiAoCisgICAgICAgICAgICAnMS4wJywKKyAgICAgICAgICAgICcxLjAnLAorICAgICAgICAgICAgJzEuMCcsCisgICAgICAgICAgICAxLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIFtdKSwKKworICAgICAgICAnUkZDXzIwNDVfMic6ICgKKyAgICAgICAgICAgICcxLjAgKHByb2R1Y2VkIGJ5IE1ldGFTZW5kIFZ4LngpJywKKyAgICAgICAgICAgICcxLjAgKHByb2R1Y2VkIGJ5IE1ldGFTZW5kIFZ4LngpJywKKyAgICAgICAgICAgICcxLjAgJywKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgW10pLAorCisgICAgICAgICdSRkNfMjA0NV8zJzogKAorICAgICAgICAgICAgJyhwcm9kdWNlZCBieSBNZXRhU2VuZCBWeC54KSAxLjAnLAorICAgICAgICAgICAgJyhwcm9kdWNlZCBieSBNZXRhU2VuZCBWeC54KSAxLjAnLAorICAgICAgICAgICAgJyAxLjAnLAorICAgICAgICAgICAgMSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBbXSksCisKKyAgICAgICAgJ1JGQ18yMDQ1XzQnOiAoCisgICAgICAgICAgICAnMS4ocHJvZHVjZWQgYnkgTWV0YVNlbmQgVngueCkwJywKKyAgICAgICAgICAgICcxLihwcm9kdWNlZCBieSBNZXRhU2VuZCBWeC54KTAnLAorICAgICAgICAgICAgJzEuIDAnLAorICAgICAgICAgICAgMSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBbXSksCisKKyAgICAgICAgJ2VtcHR5JzogKAorICAgICAgICAgICAgJycsCisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgICcnLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBbZXJyb3JzLkhlYWRlck1pc3NpbmdSZXF1aXJlZFZhbHVlXSksCisKKyAgICAgICAgfQorCisKKworY2xhc3MgVGVzdEZvbGRpbmcoVGVzdEVtYWlsQmFzZSk6CisKKyAgICBwb2xpY3kgPSBwb2xpY3kuZGVmYXVsdAorCisgICAgZGVmIF90ZXN0KHNlbGYsIHRsLCBmb2xkZWQsIHBvbGljeT1wb2xpY3kpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRsLmZvbGQocG9saWN5PXBvbGljeSksIGZvbGRlZCwgdGwucHBzdHIoKSkKKworICAgIGRlZiB0ZXN0X3NpbXBsZV91bnN0cnVjdHVyZWRfbm9fZm9sZHMoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QocGFyc2VyLmdldF91bnN0cnVjdHVyZWQoIlRoaXMgaXMgYSB0ZXN0IiksCisgICAgICAgICAgICAgICAgICAgIlRoaXMgaXMgYSB0ZXN0XG4iKQorCisgICAgZGVmIHRlc3Rfc2ltcGxlX3Vuc3RydWN0dXJlZF9mb2xkZWQoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QocGFyc2VyLmdldF91bnN0cnVjdHVyZWQoIlRoaXMgaXMgYWxzbyBhIHRlc3QsIGJ1dCB0aGlzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lIHRoZXJlIGFyZSBlbm91Z2ggd29yZHMgKGFuZCBldmVuIHNvbWUgIgorICAgICAgICAgICAgICAgICAgICAgICAgInN5bWJvbHMpIHRvIG1ha2UgaXQgd3JhcDsgYXQgbGVhc3QgaW4gdGhlb3J5LiIpLAorICAgICAgICAgICAgICAgICAgICJUaGlzIGlzIGFsc28gYSB0ZXN0LCBidXQgdGhpcyB0aW1lIHRoZXJlIGFyZSBlbm91Z2ggIgorICAgICAgICAgICAgICAgICAgICAgICAgIndvcmRzIChhbmQgZXZlbiBzb21lXG4iCisgICAgICAgICAgICAgICAgICAgIiBzeW1ib2xzKSB0byBtYWtlIGl0IHdyYXA7IGF0IGxlYXN0IGluIHRoZW9yeS5cbiIpCisKKyAgICBkZWYgdGVzdF91bnN0cnVjdHVyZWRfd2l0aF91bmljb2RlX25vX2ZvbGRzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KHBhcnNlci5nZXRfdW5zdHJ1Y3R1cmVkKCJow7xic2NoIGtsZWluZXIgYmVpw590IiksCisgICAgICAgICAgICAgICAgICAgIj0/dXRmLTg/cT9oPUMzPUJDYnNjaF9rbGVpbmVyX2JlaT1DMz05RnQ/PVxuIikKKworICAgIGRlZiB0ZXN0X29uZV9ld19vbl9lYWNoX29mX3R3b193cmFwcGVkX2xpbmVzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KHBhcnNlci5nZXRfdW5zdHJ1Y3R1cmVkKCJNZWluIGtsZWluZXIgS2FrdHVzIGlzdCBzZWhyICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaMO8YnNjaC4gIEVzIGhhdCB2aWVsZSBTdGFjaGVsbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVuZCBvZnQgYmVpw590IG1pY2guIiksCisgICAgICAgICAgICAgICAgICAgIk1laW4ga2xlaW5lciBLYWt0dXMgaXN0IHNlaHIgPT91dGYtOD9xP2g9QzM9QkNic2NoPTJFPz0gICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJFcyBoYXQgdmllbGUgU3RhY2hlbG5cbiIKKyAgICAgICAgICAgICAgICAgICAiIHVuZCBvZnQgPT91dGYtOD9xP2JlaT1DMz05RnQ/PSBtaWNoLlxuIikKKworICAgIGRlZiB0ZXN0X2V3c19jb21iaW5lZF9iZWZvcmVfd3JhcChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdChwYXJzZXIuZ2V0X3Vuc3RydWN0dXJlZCgiTWVpbiBLYWt0dXMgaXN0IGjDvGJzY2guICAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVzIGJlacOfdCBtaWNoLiAgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBbmQgdGhhdCdzIGFsbCBJJ20gc2F5aW4uIiksCisgICAgICAgICAgICAgICAgICAgIk1laW4gS2FrdHVzIGlzdCA9P3V0Zi04P3E/aD1DMz1CQ2JzY2g9MkVfX0VzX2JlaT1DMz05RnQ/PSAiCisgICAgICAgICAgICAgICAgICAgICAgICAibWljaC4gIEFuZCB0aGF0J3NcbiIKKyAgICAgICAgICAgICAgICAgICAiIGFsbCBJJ20gc2F5aW4uXG4iKQorCisgICAgIyBYWFggTmVlZCB0ZXN0IG9mIGFuIGVuY29kZWQgd29yZCBzbyBsb25nIHRoYXQgaXQgbmVlZHMgdG8gYmUgd3JhcHBlZAorCisgICAgZGVmIHRlc3Rfc2ltcGxlX2FkZHJlc3Moc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QocGFyc2VyLmdldF9hZGRyZXNzX2xpc3QoImFiYyA8eHl6QGV4YW1wbGUuY29tPiIpWzBdLAorICAgICAgICAgICAgICAgICAgICJhYmMgPHh5ekBleGFtcGxlLmNvbT5cbiIpCisKKyAgICBkZWYgdGVzdF9hZGRyZXNzX2xpc3RfZm9sZGluZ19hdF9jb21tYXMoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3QocGFyc2VyLmdldF9hZGRyZXNzX2xpc3QoJ2FiYyA8eHl6QGV4YW1wbGUuY29tPiwgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIkZyZWQgQmx1bnQiIDxzaGFycEBleGFtcGxlLmNvbT4sICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyJKLlAuQ29vbCIgPGhvdEBleGFtcGxlLmNvbT4sICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyJLPD55IiA8a2V5QGV4YW1wbGUuY29tPiwgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnRmlyZXNhbGUgPGNoZWFwQGV4YW1wbGUuY29tPiwgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPGVuZEBleGFtcGxlLmNvbT4nKVswXSwKKyAgICAgICAgICAgICAgICAgICAgJ2FiYyA8eHl6QGV4YW1wbGUuY29tPiwgIkZyZWQgQmx1bnQiIDxzaGFycEBleGFtcGxlLmNvbT4sXG4nCisgICAgICAgICAgICAgICAgICAgICcgIkouUC5Db29sIiA8aG90QGV4YW1wbGUuY29tPiwgIks8PnkiIDxrZXlAZXhhbXBsZS5jb20+LFxuJworICAgICAgICAgICAgICAgICAgICAnIEZpcmVzYWxlIDxjaGVhcEBleGFtcGxlLmNvbT4sIDxlbmRAZXhhbXBsZS5jb20+XG4nKQorCisgICAgZGVmIHRlc3RfYWRkcmVzc19saXN0X3dpdGhfdW5pY29kZV9uYW1lcyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdChwYXJzZXIuZ2V0X2FkZHJlc3NfbGlzdCgKKyAgICAgICAgICAgICdIw7xic2NoIEtha3R1cyA8YmVhdXRpZnVsQGV4YW1wbGUuY29tPiwgJworICAgICAgICAgICAgICAgICdiZWnDn3QgYmVpw590IDxiaXRlckBleGFtcGxlLmNvbT4nKVswXSwKKyAgICAgICAgICAgICc9P3V0Zi04P3E/SD1DMz1CQ2JzY2g/PSBLYWt0dXMgPGJlYXV0aWZ1bEBleGFtcGxlLmNvbT4sXG4nCisgICAgICAgICAgICAgICAgJyA9P3V0Zi04P3E/YmVpPUMzPTlGdF9iZWk9QzM9OUZ0Pz0gPGJpdGVyQGV4YW1wbGUuY29tPlxuJykKKworICAgIGRlZiB0ZXN0X2FkZHJlc3NfbGlzdF93aXRoX3VuaWNvZGVfbmFtZXNfaW5fcXVvdGVzKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KHBhcnNlci5nZXRfYWRkcmVzc19saXN0KAorICAgICAgICAgICAgJyJIw7xic2NoIEtha3R1cyIgPGJlYXV0aWZ1bEBleGFtcGxlLmNvbT4sICcKKyAgICAgICAgICAgICAgICAnImJlacOfdCIgYmVpw590IDxiaXRlckBleGFtcGxlLmNvbT4nKVswXSwKKyAgICAgICAgICAgICc9P3V0Zi04P3E/SD1DMz1CQ2JzY2g/PSBLYWt0dXMgPGJlYXV0aWZ1bEBleGFtcGxlLmNvbT4sXG4nCisgICAgICAgICAgICAgICAgJyA9P3V0Zi04P3E/YmVpPUMzPTlGdF9iZWk9QzM9OUZ0Pz0gPGJpdGVyQGV4YW1wbGUuY29tPlxuJykKKworICAgICMgWFhYIE5lZWQgdGVzdHMgd2l0aCBjb21tZW50cyBvbiB2YXJpb3VzIHNpZGVzIG9mIGEgdW5pY29kZSB0b2tlbiwKKyAgICAjIGFuZCB3aXRoIHVuaWNvZGUgdG9rZW5zIGluIHRoZSBjb21tZW50cy4gIFNwYWNlcyBpbnNpZGUgdGhlIHF1b3RlcworICAgICMgY3VycmVudGx5IGRvbid0IGRvIHRoZSByaWdodCB0aGluZy4KKworICAgIGRlZiB0ZXN0X2luaXRpYWxfd2hpdGVzcGFjZV9zcGxpdHRpbmcoc2VsZik6CisgICAgICAgIGJvZHkgPSBwYXJzZXIuZ2V0X3Vuc3RydWN0dXJlZCgnICAgJyArICd4Jyo3NykKKyAgICAgICAgaGVhZGVyID0gcGFyc2VyLkhlYWRlcihbCisgICAgICAgICAgICBwYXJzZXIuSGVhZGVyTGFiZWwoW3BhcnNlci5WYWx1ZVRlcm1pbmFsKCd0ZXN0OicsICdhdGV4dCcpXSksCisgICAgICAgICAgICBwYXJzZXIuQ0ZXU0xpc3QoW3BhcnNlci5XaGl0ZVNwYWNlVGVybWluYWwoJyAnLCAnZndzJyldKSwgYm9keV0pCisgICAgICAgIHNlbGYuX3Rlc3QoaGVhZGVyLCAndGVzdDogICBcbiAnICsgJ3gnKjc3ICsgJ1xuJykKKworICAgIGRlZiB0ZXN0X3doaXRlc3BhY2Vfc3BsaXR0aW5nKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0KHBhcnNlci5nZXRfdW5zdHJ1Y3R1cmVkKCd4eHggICAnICsgJ3knKjc3KSwKKyAgICAgICAgICAgICAgICAgICAneHh4ICBcbiAnICsgJ3knKjc3ICsgJ1xuJykKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi9lbWFpbC90ZXN0L3Rlc3RfZW1haWxfY29kZWNzLnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X2FzaWFuX2NvZGVjcy5weQpzaW1pbGFyaXR5IGluZGV4IDkwJQpyZW5hbWUgZnJvbSBMaWIvZW1haWwvdGVzdC90ZXN0X2VtYWlsX2NvZGVjcy5weQpyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X2FzaWFuX2NvZGVjcy5weQppbmRleCBjYTg1ZjU3Li4wODkyNjlmIDEwMDY0NAotLS0gYS9MaWIvZW1haWwvdGVzdC90ZXN0X2VtYWlsX2NvZGVjcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfYXNpYW5fY29kZWNzLnB5CkBAIC01LDcgKzUsNyBAQAogaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0CiAKLWZyb20gZW1haWwudGVzdC50ZXN0X2VtYWlsIGltcG9ydCBUZXN0RW1haWxCYXNlCitmcm9tIHRlc3QudGVzdF9lbWFpbC50ZXN0X2VtYWlsIGltcG9ydCBUZXN0RW1haWxCYXNlCiBmcm9tIGVtYWlsLmNoYXJzZXQgaW1wb3J0IENoYXJzZXQKIGZyb20gZW1haWwuaGVhZGVyIGltcG9ydCBIZWFkZXIsIGRlY29kZV9oZWFkZXIKIGZyb20gZW1haWwubWVzc2FnZSBpbXBvcnQgTWVzc2FnZQpAQCAtNDEsNyArNDEsNyBAQAogSGVsbG8gV29ybGQhID0/aXNvLTIwMjItanA/Yj9HeVJDSlU4bGJTRThKVzhoUENWckpVa2hLaHNvUWc9PT89CiAgPT9pc28tODg1OS0xP3E/R3I9RkM9REZfR290dCE/PSIiIikKICAgICAgICAgZXEoZGVjb2RlX2hlYWRlcihoLmVuY29kZSgpKSwKLSAgICAgICAgICAgWyhiJ0hlbGxvIFdvcmxkIScsIE5vbmUpLAorICAgICAgICAgICBbKGInSGVsbG8gV29ybGQhICcsIE5vbmUpLAogICAgICAgICAgICAgKGInXHgxYiRCJU8lbSE8JW8hPCVrJUkhKlx4MWIoQicsICdpc28tMjAyMi1qcCcpLAogICAgICAgICAgICAgKGInR3JceGZjXHhkZiBHb3R0IScsIGdjb2RlKV0pCiAgICAgICAgIHN1YmplY3RfYnl0ZXMgPSAoYid0ZXN0LWphIFx4YTRceGQ4XHhjNVx4ZWFceGI5XHhjNlx4YTRceGI1JwpAQCAtNzgsMTYgKzc4LDUgQEAKIAogCiAMCi1kZWYgc3VpdGUoKToKLSAgICBzdWl0ZSA9IHVuaXR0ZXN0LlRlc3RTdWl0ZSgpCi0gICAgc3VpdGUuYWRkVGVzdCh1bml0dGVzdC5tYWtlU3VpdGUoVGVzdEVtYWlsQXNpYW5Db2RlY3MpKQotICAgIHJldHVybiBzdWl0ZQotCi0KLWRlZiB0ZXN0X21haW4oKToKLSAgICBydW5fdW5pdHRlc3QoVGVzdEVtYWlsQXNpYW5Db2RlY3MpCi0KLQotDAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKGRlZmF1bHRUZXN0PSdzdWl0ZScpCisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfZGVmZWN0X2hhbmRsaW5nLnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X2RlZmVjdF9oYW5kbGluZy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDU0MzJkCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X2RlZmVjdF9oYW5kbGluZy5weQpAQCAtMCwwICsxLDMyMCBAQAoraW1wb3J0IHRleHR3cmFwCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBjb250ZXh0bGliCitmcm9tIGVtYWlsIGltcG9ydCBwb2xpY3kKK2Zyb20gZW1haWwgaW1wb3J0IGVycm9ycworZnJvbSB0ZXN0LnRlc3RfZW1haWwgaW1wb3J0IFRlc3RFbWFpbEJhc2UKKworCitjbGFzcyBUZXN0RGVmZWN0c0Jhc2U6CisKKyAgICBwb2xpY3kgPSBwb2xpY3kuZGVmYXVsdAorICAgIHJhaXNlX2V4cGVjdGVkID0gRmFsc2UKKworICAgIEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCisgICAgZGVmIF9yYWlzZV9wb2ludChzZWxmLCBkZWZlY3QpOgorICAgICAgICB5aWVsZAorCisgICAgZGVmIHRlc3Rfc2FtZV9ib3VuZGFyeV9pbm5lcl9vdXRlcihzZWxmKToKKyAgICAgICAgc291cmNlID0gdGV4dHdyYXAuZGVkZW50KCIiIlwKKyAgICAgICAgICAgIFN1YmplY3Q6IFhYCisgICAgICAgICAgICBGcm9tOiB4eEB4eC5kaworICAgICAgICAgICAgVG86IFhYCisgICAgICAgICAgICBNaW1lLXZlcnNpb246IDEuMAorICAgICAgICAgICAgQ29udGVudC10eXBlOiBtdWx0aXBhcnQvbWl4ZWQ7CisgICAgICAgICAgICAgICBib3VuZGFyeT0iTVNfTWFjX09FXzMwNzE0Nzc4NDdfNzIwMjUyX01JTUVfUGFydCIKKworICAgICAgICAgICAgLS1NU19NYWNfT0VfMzA3MTQ3Nzg0N183MjAyNTJfTUlNRV9QYXJ0CisgICAgICAgICAgICBDb250ZW50LXR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsKKyAgICAgICAgICAgICAgIGJvdW5kYXJ5PSJNU19NYWNfT0VfMzA3MTQ3Nzg0N183MjAyNTJfTUlNRV9QYXJ0IgorCisgICAgICAgICAgICAtLU1TX01hY19PRV8zMDcxNDc3ODQ3XzcyMDI1Ml9NSU1FX1BhcnQKKyAgICAgICAgICAgIENvbnRlbnQtdHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iSVNPLTg4NTktMSIKKyAgICAgICAgICAgIENvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKKworICAgICAgICAgICAgdGV4dAorCisgICAgICAgICAgICAtLU1TX01hY19PRV8zMDcxNDc3ODQ3XzcyMDI1Ml9NSU1FX1BhcnQKKyAgICAgICAgICAgIENvbnRlbnQtdHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PSJJU08tODg1OS0xIgorICAgICAgICAgICAgQ29udGVudC10cmFuc2Zlci1lbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQorCisgICAgICAgICAgICA8SFRNTD48L0hUTUw+CisKKyAgICAgICAgICAgIC0tTVNfTWFjX09FXzMwNzE0Nzc4NDdfNzIwMjUyX01JTUVfUGFydC0tCisKKyAgICAgICAgICAgIC0tTVNfTWFjX09FXzMwNzE0Nzc4NDdfNzIwMjUyX01JTUVfUGFydAorICAgICAgICAgICAgQ29udGVudC10eXBlOiBpbWFnZS9naWY7IG5hbWU9Inh4LmdpZiI7CisgICAgICAgICAgICBDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50CisgICAgICAgICAgICBDb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOiBiYXNlNjQKKworICAgICAgICAgICAgU29tZSByZW1vdmVkIGJhc2U2NCBlbmNvZGVkIGNoYXJzLgorCisgICAgICAgICAgICAtLU1TX01hY19PRV8zMDcxNDc3ODQ3XzcyMDI1Ml9NSU1FX1BhcnQtLQorCisgICAgICAgICAgICAiIiIpCisgICAgICAgICMgWFhYIGJldHRlciB3b3VsZCBiZSB0byBhY3R1YWxseSBkZXRlY3QgdGhlIGR1cGxpY2F0ZS4KKyAgICAgICAgd2l0aCBzZWxmLl9yYWlzZV9wb2ludChlcnJvcnMuU3RhcnRCb3VuZGFyeU5vdEZvdW5kRGVmZWN0KToKKyAgICAgICAgICAgIG1zZyA9IHNlbGYuX3N0cl9tc2coc291cmNlKQorICAgICAgICBpZiBzZWxmLnJhaXNlX2V4cGVjdGVkOiByZXR1cm4KKyAgICAgICAgaW5uZXIgPSBtc2cuZ2V0X3BheWxvYWQoMCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoaW5uZXIsICdkZWZlY3RzJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYuZ2V0X2RlZmVjdHMoaW5uZXIpKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2Uoc2VsZi5nZXRfZGVmZWN0cyhpbm5lcilbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5TdGFydEJvdW5kYXJ5Tm90Rm91bmREZWZlY3QpKQorCisgICAgZGVmIHRlc3RfbXVsdGlwYXJ0X25vX2JvdW5kYXJ5KHNlbGYpOgorICAgICAgICBzb3VyY2UgPSB0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICAgICAgRGF0ZTogRnJpLCA2IEFwciAyMDAxIDA5OjIzOjA2IC0wODAwIChHTVQtMDgwMCkKKyAgICAgICAgICAgIEZyb206IGZvb2JhcgorICAgICAgICAgICAgU3ViamVjdDogYnJva2VuIG1haWwKKyAgICAgICAgICAgIE1JTUUtVmVyc2lvbjogMS4wCisgICAgICAgICAgICBDb250ZW50LVR5cGU6IG11bHRpcGFydC9yZXBvcnQ7IHJlcG9ydC10eXBlPWRlbGl2ZXJ5LXN0YXR1czsKKworICAgICAgICAgICAgLS1KQUIwMzIyNS45ODY1Nzc3ODYvemluZmFuZGVsLmxhY2l0YS5jb20KKworICAgICAgICAgICAgT25lIHBhcnQKKworICAgICAgICAgICAgLS1KQUIwMzIyNS45ODY1Nzc3ODYvemluZmFuZGVsLmxhY2l0YS5jb20KKyAgICAgICAgICAgIENvbnRlbnQtVHlwZTogbWVzc2FnZS9kZWxpdmVyeS1zdGF0dXMKKworICAgICAgICAgICAgSGVhZGVyOiBBbm90aGVyIHBhcnQKKworICAgICAgICAgICAgLS1KQUIwMzIyNS45ODY1Nzc3ODYvemluZmFuZGVsLmxhY2l0YS5jb20tLQorICAgICAgICAgICAgIiIiKQorICAgICAgICB3aXRoIHNlbGYuX3JhaXNlX3BvaW50KGVycm9ycy5Ob0JvdW5kYXJ5SW5NdWx0aXBhcnREZWZlY3QpOgorICAgICAgICAgICAgbXNnID0gc2VsZi5fc3RyX21zZyhzb3VyY2UpCisgICAgICAgIGlmIHNlbGYucmFpc2VfZXhwZWN0ZWQ6IHJldHVybgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShtc2cuZ2V0X3BheWxvYWQoKSwgc3RyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5nZXRfZGVmZWN0cyhtc2cpKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2Uoc2VsZi5nZXRfZGVmZWN0cyhtc2cpWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuTm9Cb3VuZGFyeUluTXVsdGlwYXJ0RGVmZWN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2Uoc2VsZi5nZXRfZGVmZWN0cyhtc2cpWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuTXVsdGlwYXJ0SW52YXJpYW50VmlvbGF0aW9uRGVmZWN0KSkKKworICAgIG11bHRpcGFydF9tc2cgPSB0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICBEYXRlOiBXZWQsIDE0IE5vdiAyMDA3IDEyOjU2OjIzIEdNVAorICAgICAgICBGcm9tOiBmb29AYmFyLmludmFsaWQKKyAgICAgICAgVG86IGZvb0BiYXIuaW52YWxpZAorICAgICAgICBTdWJqZWN0OiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQgYW5kIG11bHRpcGFydAorICAgICAgICBNSU1FLVZlcnNpb246IDEuMAorICAgICAgICBDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsKKyAgICAgICAgICAgIGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT0zMzQ0NDM4Nzg0NDU4MTE5ODYxPT0ie30KKworICAgICAgICAtLT09PT09PT09PT09PT09PTMzNDQ0Mzg3ODQ0NTgxMTk4NjE9PQorICAgICAgICBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KKworICAgICAgICBUZXN0IG1lc3NhZ2UKKworICAgICAgICAtLT09PT09PT09PT09PT09PTMzNDQ0Mzg3ODQ0NTgxMTk4NjE9PQorICAgICAgICBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQorICAgICAgICBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQKKworICAgICAgICBZV0pqCisKKyAgICAgICAgLS09PT09PT09PT09PT09PT0zMzQ0NDM4Nzg0NDU4MTE5ODYxPT0tLQorICAgICAgICAiIiIpCisKKyAgICBkZWYgdGVzdF9tdWx0aXBhcnRfaW52YWxpZF9jdGUoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5fcmFpc2VfcG9pbnQoCisgICAgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRNdWx0aXBhcnRDb250ZW50VHJhbnNmZXJFbmNvZGluZ0RlZmVjdCk6CisgICAgICAgICAgICBtc2cgPSBzZWxmLl9zdHJfbXNnKAorICAgICAgICAgICAgICAgICAgICBzZWxmLm11bHRpcGFydF9tc2cuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgIlxuQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0IikpCisgICAgICAgIGlmIHNlbGYucmFpc2VfZXhwZWN0ZWQ6IHJldHVybgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLmdldF9kZWZlY3RzKG1zZykpLCAxKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc2VsZi5nZXRfZGVmZWN0cyhtc2cpWzBdLAorICAgICAgICAgICAgZXJyb3JzLkludmFsaWRNdWx0aXBhcnRDb250ZW50VHJhbnNmZXJFbmNvZGluZ0RlZmVjdCkKKworICAgIGRlZiB0ZXN0X211bHRpcGFydF9ub19jdGVfbm9fZGVmZWN0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnJhaXNlX2V4cGVjdGVkOiByZXR1cm4KKyAgICAgICAgbXNnID0gc2VsZi5fc3RyX21zZyhzZWxmLm11bHRpcGFydF9tc2cuZm9ybWF0KCcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5nZXRfZGVmZWN0cyhtc2cpKSwgMCkKKworICAgIGRlZiB0ZXN0X211bHRpcGFydF92YWxpZF9jdGVfbm9fZGVmZWN0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnJhaXNlX2V4cGVjdGVkOiByZXR1cm4KKyAgICAgICAgZm9yIGN0ZSBpbiAoJzdiaXQnLCAnOGJpdCcsICdCSU5hcnknKToKKyAgICAgICAgICAgIG1zZyA9IHNlbGYuX3N0cl9tc2coCisgICAgICAgICAgICAgICAgc2VsZi5tdWx0aXBhcnRfbXNnLmZvcm1hdCgiXG5Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiAiK2N0ZSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLmdldF9kZWZlY3RzKG1zZykpLCAwLCAiY3RlPSIrY3RlKQorCisgICAgZGVmIHRlc3RfbHlpbmdfbXVsdGlwYXJ0KHNlbGYpOgorICAgICAgICBzb3VyY2UgPSB0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICAgICAgRnJvbTogIkFsbGlzb24gRHVubGFwIiA8eHh4QGV4YW1wbGUuY29tPgorICAgICAgICAgICAgVG86IHl5eUBleGFtcGxlLmNvbQorICAgICAgICAgICAgU3ViamVjdDogNjQ0MjMKKyAgICAgICAgICAgIERhdGU6IFN1biwgMTEgSnVsIDIwMDQgMTY6MDk6MjcgLTAzMDAKKyAgICAgICAgICAgIE1JTUUtVmVyc2lvbjogMS4wCisgICAgICAgICAgICBDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsKKworICAgICAgICAgICAgQmxhaCBibGFoIGJsYWgKKyAgICAgICAgICAgICIiIikKKyAgICAgICAgd2l0aCBzZWxmLl9yYWlzZV9wb2ludChlcnJvcnMuTm9Cb3VuZGFyeUluTXVsdGlwYXJ0RGVmZWN0KToKKyAgICAgICAgICAgIG1zZyA9IHNlbGYuX3N0cl9tc2coc291cmNlKQorICAgICAgICBpZiBzZWxmLnJhaXNlX2V4cGVjdGVkOiByZXR1cm4KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIobXNnLCAnZGVmZWN0cycpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLmdldF9kZWZlY3RzKG1zZykpLCAyKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShzZWxmLmdldF9kZWZlY3RzKG1zZylbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5Ob0JvdW5kYXJ5SW5NdWx0aXBhcnREZWZlY3QpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShzZWxmLmdldF9kZWZlY3RzKG1zZylbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5NdWx0aXBhcnRJbnZhcmlhbnRWaW9sYXRpb25EZWZlY3QpKQorCisgICAgZGVmIHRlc3RfbWlzc2luZ19zdGFydF9ib3VuZGFyeShzZWxmKToKKyAgICAgICAgc291cmNlID0gdGV4dHdyYXAuZGVkZW50KCIiIlwKKyAgICAgICAgICAgIENvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOyBib3VuZGFyeT0iQUFBIgorICAgICAgICAgICAgRnJvbTogTWFpbCBEZWxpdmVyeSBTdWJzeXN0ZW0gPHh4eEBleGFtcGxlLmNvbT4KKyAgICAgICAgICAgIFRvOiB5eXlAZXhhbXBsZS5jb20KKworICAgICAgICAgICAgLS1BQUEKKworICAgICAgICAgICAgU3R1ZmYKKworICAgICAgICAgICAgLS1BQUEKKyAgICAgICAgICAgIENvbnRlbnQtVHlwZTogbWVzc2FnZS9yZmM4MjIKKworICAgICAgICAgICAgRnJvbTogd2VibWFzdGVyQHB5dGhvbi5vcmcKKyAgICAgICAgICAgIFRvOiB6enpAZXhhbXBsZS5jb20KKyAgICAgICAgICAgIENvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOyBib3VuZGFyeT0iQkJCIgorCisgICAgICAgICAgICAtLUJCQi0tCisKKyAgICAgICAgICAgIC0tQUFBLS0KKworICAgICAgICAgICAgIiIiKQorICAgICAgICAjIFRoZSBtZXNzYWdlIHN0cnVjdHVyZSBpczoKKyAgICAgICAgIworICAgICAgICAjIG11bHRpcGFydC9taXhlZAorICAgICAgICAjICAgIHRleHQvcGxhaW4KKyAgICAgICAgIyAgICBtZXNzYWdlL3JmYzgyMgorICAgICAgICAjICAgICAgICBtdWx0aXBhcnQvbWl4ZWQgWypdCisgICAgICAgICMKKyAgICAgICAgIyBbKl0gVGhpcyBtZXNzYWdlIGlzIG1pc3NpbmcgaXRzIHN0YXJ0IGJvdW5kYXJ5CisgICAgICAgIHdpdGggc2VsZi5fcmFpc2VfcG9pbnQoZXJyb3JzLlN0YXJ0Qm91bmRhcnlOb3RGb3VuZERlZmVjdCk6CisgICAgICAgICAgICBvdXRlciA9IHNlbGYuX3N0cl9tc2coc291cmNlKQorICAgICAgICBpZiBzZWxmLnJhaXNlX2V4cGVjdGVkOiByZXR1cm4KKyAgICAgICAgYmFkID0gb3V0ZXIuZ2V0X3BheWxvYWQoMSkuZ2V0X3BheWxvYWQoMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5nZXRfZGVmZWN0cyhiYWQpKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2Uoc2VsZi5nZXRfZGVmZWN0cyhiYWQpWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuU3RhcnRCb3VuZGFyeU5vdEZvdW5kRGVmZWN0KSkKKworICAgIGRlZiB0ZXN0X2ZpcnN0X2xpbmVfaXNfY29udGludWF0aW9uX2hlYWRlcihzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLl9yYWlzZV9wb2ludChlcnJvcnMuRmlyc3RIZWFkZXJMaW5lSXNDb250aW51YXRpb25EZWZlY3QpOgorICAgICAgICAgICAgbXNnID0gc2VsZi5fc3RyX21zZygnIExpbmUgMVxuU3ViamVjdDogdGVzdFxuXG5ib2R5JykKKyAgICAgICAgaWYgc2VsZi5yYWlzZV9leHBlY3RlZDogcmV0dXJuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLmtleXMoKSwgWydTdWJqZWN0J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLmdldF9wYXlsb2FkKCksICdib2R5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5nZXRfZGVmZWN0cyhtc2cpKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwoc2VsZi5nZXRfZGVmZWN0cyhtc2cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9ycy5GaXJzdEhlYWRlckxpbmVJc0NvbnRpbnVhdGlvbkRlZmVjdF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRfZGVmZWN0cyhtc2cpWzBdLmxpbmUsICcgTGluZSAxXG4nKQorCisgICAgZGVmIHRlc3RfbWlzc2luZ19oZWFkZXJfYm9keV9zZXBhcmF0b3Ioc2VsZik6CisgICAgICAgICMgT3VyIGhldXJpc3RpYyBpZiB3ZSBzZWUgYSBsaW5lIHRoYXQgZG9lc24ndCBsb29rIGxpa2UgYSBoZWFkZXIgKG5vCisgICAgICAgICMgbGVhZGluZyB3aGl0ZXNwYWNlIGJ1dCBubyAnOicpIGlzIHRvIGFzc3VtZSB0aGF0IHRoZSBibGFuayBsaW5lIHRoYXQKKyAgICAgICAgIyBzZXBhcmF0ZXMgdGhlIGhlYWRlciBmcm9tIHRoZSBib2R5IGlzIG1pc3NpbmcsIGFuZCB0byBzdG9wIHBhcnNpbmcKKyAgICAgICAgIyBoZWFkZXJzIGFuZCBzdGFydCBwYXJzaW5nIHRoZSBib2R5LgorICAgICAgICB3aXRoIHNlbGYuX3JhaXNlX3BvaW50KGVycm9ycy5NaXNzaW5nSGVhZGVyQm9keVNlcGFyYXRvckRlZmVjdCk6CisgICAgICAgICAgICBtc2cgPSBzZWxmLl9zdHJfbXNnKCdTdWJqZWN0OiB0ZXN0XG5ub3QgYSBoZWFkZXJcblRvOiBhYmNcblxuYlxuJykKKyAgICAgICAgaWYgc2VsZi5yYWlzZV9leHBlY3RlZDogcmV0dXJuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLmtleXMoKSwgWydTdWJqZWN0J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLmdldF9wYXlsb2FkKCksICdub3QgYSBoZWFkZXJcblRvOiBhYmNcblxuYlxuJykKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwoc2VsZi5nZXRfZGVmZWN0cyhtc2cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JzLk1pc3NpbmdIZWFkZXJCb2R5U2VwYXJhdG9yRGVmZWN0XSkKKworICAgIGRlZiB0ZXN0X2JhZF9wYWRkaW5nX2luX2Jhc2U2NF9wYXlsb2FkKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSB0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICAgICAgU3ViamVjdDogdGVzdAorICAgICAgICAgICAgTUlNRS1WZXJzaW9uOiAxLjAKKyAgICAgICAgICAgIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiCisgICAgICAgICAgICBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQKKworICAgICAgICAgICAgZG1rCisgICAgICAgICAgICAiIiIpCisgICAgICAgIG1zZyA9IHNlbGYuX3N0cl9tc2coc291cmNlKQorICAgICAgICB3aXRoIHNlbGYuX3JhaXNlX3BvaW50KGVycm9ycy5JbnZhbGlkQmFzZTY0UGFkZGluZ0RlZmVjdCk6CisgICAgICAgICAgICBwYXlsb2FkID0gbXNnLmdldF9wYXlsb2FkKGRlY29kZT1UcnVlKQorICAgICAgICBpZiBzZWxmLnJhaXNlX2V4cGVjdGVkOiByZXR1cm4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBiJ3ZpJykKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwoc2VsZi5nZXRfZGVmZWN0cyhtc2cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRCYXNlNjRQYWRkaW5nRGVmZWN0XSkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfY2hhcnNfaW5fYmFzZTY0X3BheWxvYWQoc2VsZik6CisgICAgICAgIHNvdXJjZSA9IHRleHR3cmFwLmRlZGVudCgiIiJcCisgICAgICAgICAgICBTdWJqZWN0OiB0ZXN0CisgICAgICAgICAgICBNSU1FLVZlcnNpb246IDEuMAorICAgICAgICAgICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1dGYtOCIKKyAgICAgICAgICAgIENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NAorCisgICAgICAgICAgICBkbVx4MDFrPT09CisgICAgICAgICAgICAiIiIpCisgICAgICAgIG1zZyA9IHNlbGYuX3N0cl9tc2coc291cmNlKQorICAgICAgICB3aXRoIHNlbGYuX3JhaXNlX3BvaW50KGVycm9ycy5JbnZhbGlkQmFzZTY0Q2hhcmFjdGVyc0RlZmVjdCk6CisgICAgICAgICAgICBwYXlsb2FkID0gbXNnLmdldF9wYXlsb2FkKGRlY29kZT1UcnVlKQorICAgICAgICBpZiBzZWxmLnJhaXNlX2V4cGVjdGVkOiByZXR1cm4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBiJ3ZpJykKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwoc2VsZi5nZXRfZGVmZWN0cyhtc2cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRCYXNlNjRDaGFyYWN0ZXJzRGVmZWN0XSkKKworICAgIGRlZiB0ZXN0X21pc3NpbmdfZW5kaW5nX2JvdW5kYXJ5KHNlbGYpOgorICAgICAgICBzb3VyY2UgPSB0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICAgICAgVG86IDFAaGFycnlkb21haW40LmNvbQorICAgICAgICAgICAgU3ViamVjdDogRndkOiAxCisgICAgICAgICAgICBNSU1FLVZlcnNpb246IDEuMAorICAgICAgICAgICAgQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CisgICAgICAgICAgICAgYm91bmRhcnk9Ii0tLS0tLS0tLS0tLTAwMDEwMTAyMDIwMTA4MDkwMDA0MDMwMSIKKworICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0wMDAxMDEwMjAyMDEwODA5MDAwNDAzMDEKKyAgICAgICAgICAgIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xCisgICAgICAgICAgICBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CisKKyAgICAgICAgICAgIEFsdGVybmF0aXZlIDEKKworICAgICAgICAgICAgLS0tLS0tLS0tLS0tLS0wMDAxMDEwMjAyMDEwODA5MDAwNDAzMDEKKyAgICAgICAgICAgIENvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEKKyAgICAgICAgICAgIENvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKKworICAgICAgICAgICAgQWx0ZXJuYXRpdmUgMgorCisgICAgICAgICAgICAiIiIpCisgICAgICAgIHdpdGggc2VsZi5fcmFpc2VfcG9pbnQoZXJyb3JzLkNsb3NlQm91bmRhcnlOb3RGb3VuZERlZmVjdCk6CisgICAgICAgICAgICBtc2cgPSBzZWxmLl9zdHJfbXNnKHNvdXJjZSkKKyAgICAgICAgaWYgc2VsZi5yYWlzZV9leHBlY3RlZDogcmV0dXJuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1zZy5nZXRfcGF5bG9hZCgpKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2cuZ2V0X3BheWxvYWQoMSkuZ2V0X3BheWxvYWQoKSwgJ0FsdGVybmF0aXZlIDJcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RGVmZWN0c0VxdWFsKHNlbGYuZ2V0X2RlZmVjdHMobXNnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9ycy5DbG9zZUJvdW5kYXJ5Tm90Rm91bmREZWZlY3RdKQorCisKK2NsYXNzIFRlc3REZWZlY3REZXRlY3Rpb24oVGVzdERlZmVjdHNCYXNlLCBUZXN0RW1haWxCYXNlKToKKworICAgIGRlZiBnZXRfZGVmZWN0cyhzZWxmLCBvYmopOgorICAgICAgICByZXR1cm4gb2JqLmRlZmVjdHMKKworCitjbGFzcyBUZXN0RGVmZWN0Q2FwdHVyZShUZXN0RGVmZWN0c0Jhc2UsIFRlc3RFbWFpbEJhc2UpOgorCisgICAgY2xhc3MgQ2FwdHVyZVBvbGljeShwb2xpY3kuRW1haWxQb2xpY3kpOgorICAgICAgICBjYXB0dXJlZCA9IE5vbmUKKyAgICAgICAgZGVmIHJlZ2lzdGVyX2RlZmVjdChzZWxmLCBvYmosIGRlZmVjdCk6CisgICAgICAgICAgICBzZWxmLmNhcHR1cmVkLmFwcGVuZChkZWZlY3QpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYucG9saWN5ID0gc2VsZi5DYXB0dXJlUG9saWN5KGNhcHR1cmVkPWxpc3QoKSkKKworICAgIGRlZiBnZXRfZGVmZWN0cyhzZWxmLCBvYmopOgorICAgICAgICByZXR1cm4gc2VsZi5wb2xpY3kuY2FwdHVyZWQKKworCitjbGFzcyBUZXN0RGVmZWN0UmFpc2luZyhUZXN0RGVmZWN0c0Jhc2UsIFRlc3RFbWFpbEJhc2UpOgorCisgICAgcG9saWN5ID0gVGVzdERlZmVjdHNCYXNlLnBvbGljeQorICAgIHBvbGljeSA9IHBvbGljeS5jbG9uZShyYWlzZV9vbl9kZWZlY3Q9VHJ1ZSkKKyAgICByYWlzZV9leHBlY3RlZCA9IFRydWUKKworICAgIEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCisgICAgZGVmIF9yYWlzZV9wb2ludChzZWxmLCBkZWZlY3QpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGRlZmVjdCk6CisgICAgICAgICAgICB5aWVsZAorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvZW1haWwvdGVzdC90ZXN0X2VtYWlsLnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X2VtYWlsLnB5CnNpbWlsYXJpdHkgaW5kZXggOTIlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L3Rlc3RfZW1haWwucHkKcmVuYW1lIHRvIExpYi90ZXN0L3Rlc3RfZW1haWwvdGVzdF9lbWFpbC5weQppbmRleCA2NWIzZWJkLi4wMDNkZjk2IDEwMDY0NAotLS0gYS9MaWIvZW1haWwvdGVzdC90ZXN0X2VtYWlsLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvdGVzdF9lbWFpbC5weQpAQCAtMTYsNiArMTYsNyBAQAogZnJvbSBpdGVydG9vbHMgaW1wb3J0IGNoYWluCiAKIGltcG9ydCBlbWFpbAoraW1wb3J0IGVtYWlsLnBvbGljeQogCiBmcm9tIGVtYWlsLmNoYXJzZXQgaW1wb3J0IENoYXJzZXQKIGZyb20gZW1haWwuaGVhZGVyIGltcG9ydCBIZWFkZXIsIGRlY29kZV9oZWFkZXIsIG1ha2VfaGVhZGVyCkBAIC0zNiw0MCArMzcsMTQgQEAKIGZyb20gZW1haWwgaW1wb3J0IGJhc2U2NG1pbWUKIGZyb20gZW1haWwgaW1wb3J0IHF1b3ByaW1pbWUKIAotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGZpbmRmaWxlLCBydW5fdW5pdHRlc3QsIHVubGluawotZnJvbSBlbWFpbC50ZXN0IGltcG9ydCBfX2ZpbGVfXyBhcyBsYW5kbWFyawotCitmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0LCB1bmxpbmsKK2Zyb20gdGVzdC50ZXN0X2VtYWlsIGltcG9ydCBvcGVuZmlsZSwgVGVzdEVtYWlsQmFzZQogCiBOTCA9ICdcbicKIEVNUFRZU1RSSU5HID0gJycKIFNQQUNFID0gJyAnCiAKIAotCi1kZWYgb3BlbmZpbGUoZmlsZW5hbWUsICphcmdzLCAqKmt3cyk6Ci0gICAgcGF0aCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUobGFuZG1hcmspLCAnZGF0YScsIGZpbGVuYW1lKQotICAgIHJldHVybiBvcGVuKHBhdGgsICphcmdzLCAqKmt3cykKLQotCi0KLSMgQmFzZSB0ZXN0IGNsYXNzCi1jbGFzcyBUZXN0RW1haWxCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgbmRpZmZBc3NlcnRFcXVhbChzZWxmLCBmaXJzdCwgc2Vjb25kKToKLSAgICAgICAgIiIiTGlrZSBhc3NlcnRFcXVhbCBleGNlcHQgdXNlIG5kaWZmIGZvciByZWFkYWJsZSBvdXRwdXQuIiIiCi0gICAgICAgIGlmIGZpcnN0ICE9IHNlY29uZDoKLSAgICAgICAgICAgIHNmaXJzdCA9IHN0cihmaXJzdCkKLSAgICAgICAgICAgIHNzZWNvbmQgPSBzdHIoc2Vjb25kKQotICAgICAgICAgICAgcmZpcnN0ID0gW3JlcHIobGluZSkgZm9yIGxpbmUgaW4gc2ZpcnN0LnNwbGl0bGluZXMoKV0KLSAgICAgICAgICAgIHJzZWNvbmQgPSBbcmVwcihsaW5lKSBmb3IgbGluZSBpbiBzc2Vjb25kLnNwbGl0bGluZXMoKV0KLSAgICAgICAgICAgIGRpZmYgPSBkaWZmbGliLm5kaWZmKHJmaXJzdCwgcnNlY29uZCkKLSAgICAgICAgICAgIHJhaXNlIHNlbGYuZmFpbHVyZUV4Y2VwdGlvbihOTCArIE5MLmpvaW4oZGlmZikpCi0KLSAgICBkZWYgX21zZ29iaihzZWxmLCBmaWxlbmFtZSk6Ci0gICAgICAgIHdpdGggb3BlbmZpbGUoZmluZGZpbGUoZmlsZW5hbWUpKSBhcyBmcDoKLSAgICAgICAgICAgIHJldHVybiBlbWFpbC5tZXNzYWdlX2Zyb21fZmlsZShmcCkKLQotCi0KICMgVGVzdCB2YXJpb3VzIGFzcGVjdHMgb2YgdGhlIE1lc3NhZ2UgY2xhc3MncyBBUEkKIGNsYXNzIFRlc3RNZXNzYWdlQVBJKFRlc3RFbWFpbEJhc2UpOgogICAgIGRlZiB0ZXN0X2dldF9hbGwoc2VsZik6CkBAIC0xOTQsNyArMTY5LDcgQEAKICAgICBkZWYgdGVzdF9tZXNzYWdlX3JmYzgyMl9vbmx5KHNlbGYpOgogICAgICAgICAjIElzc3VlIDc5NzA6IG1lc3NhZ2UvcmZjODIyIG5vdCBpbiBtdWx0aXBhcnQgcGFyc2VkIGJ5CiAgICAgICAgICMgSGVhZGVyUGFyc2VyIGNhdXNlZCBhbiBleGNlcHRpb24gd2hlbiBmbGF0dGVuZWQuCi0gICAgICAgIHdpdGggb3BlbmZpbGUoZmluZGZpbGUoJ21zZ180Ni50eHQnKSkgYXMgZnA6CisgICAgICAgIHdpdGggb3BlbmZpbGUoJ21zZ180Ni50eHQnKSBhcyBmcDoKICAgICAgICAgICAgIG1zZ2RhdGEgPSBmcC5yZWFkKCkKICAgICAgICAgcGFyc2VyID0gSGVhZGVyUGFyc2VyKCkKICAgICAgICAgbXNnID0gcGFyc2VyLnBhcnNlc3RyKG1zZ2RhdGEpCkBAIC0yMDMsNiArMTc4LDE3IEBACiAgICAgICAgIGdlbi5mbGF0dGVuKG1zZywgRmFsc2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0LmdldHZhbHVlKCksIG1zZ2RhdGEpCiAKKyAgICBkZWYgdGVzdF9ieXRlX21lc3NhZ2VfcmZjODIyX29ubHkoc2VsZik6CisgICAgICAgICMgTWFrZSBzdXJlIG5ldyBieXRlcyBoZWFkZXIgcGFyc2VyIGFsc28gcGFzc2VzIHRoaXMuCisgICAgICAgIHdpdGggb3BlbmZpbGUoJ21zZ180Ni50eHQnLCAncmInKSBhcyBmcDoKKyAgICAgICAgICAgIG1zZ2RhdGEgPSBmcC5yZWFkKCkKKyAgICAgICAgcGFyc2VyID0gZW1haWwucGFyc2VyLkJ5dGVzSGVhZGVyUGFyc2VyKCkKKyAgICAgICAgbXNnID0gcGFyc2VyLnBhcnNlYnl0ZXMobXNnZGF0YSkKKyAgICAgICAgb3V0ID0gQnl0ZXNJTygpCisgICAgICAgIGdlbiA9IGVtYWlsLmdlbmVyYXRvci5CeXRlc0dlbmVyYXRvcihvdXQpCisgICAgICAgIGdlbi5mbGF0dGVuKG1zZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXQuZ2V0dmFsdWUoKSwgbXNnZGF0YSkKKwogICAgIGRlZiB0ZXN0X2dldF9kZWNvZGVkX3BheWxvYWQoc2VsZik6CiAgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAogICAgICAgICBtc2cgPSBzZWxmLl9tc2dvYmooJ21zZ18xMC50eHQnKQpAQCAtMjczLDYgKzI1OSw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsaW5lc1swXS5zdGFydHN3aXRoKCdGcm9tICcpKQogICAgICAgICBlcSh0ZXh0LCBOTC5qb2luKGxpbmVzWzE6XSkpCiAKKyAgICAjIHRlc3RfaGVhZGVycmVnaXN0cnkuVGVzdENvbnRlbnRUeXBlSGVhZGVyLmJhZF9wYXJhbXMKICAgICBkZWYgdGVzdF9iYWRfcGFyYW0oc2VsZik6CiAgICAgICAgIG1zZyA9IGVtYWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcoIkNvbnRlbnQtVHlwZTogYmxhcmc7IGJhejsgYm9vXG4iKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZy5nZXRfcGFyYW0oJ2JheicpLCAnJykKQEAgLTMwNiw2ICsyOTMsNyBAQAogICAgICAgICBlcShtc2cuZ2V0X3BhcmFtcyhoZWFkZXI9J3gtaGVhZGVyJyksCiAgICAgICAgICAgIFsoJ2ZvbycsICcnKSwgKCdiYXInLCAnb25lJyksICgnYmF6JywgJ3R3bycpXSkKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIuc3BhY2VzX2Fyb3VuZF9wYXJhbV9lcXVhbHMKICAgICBkZWYgdGVzdF9nZXRfcGFyYW1fbGliZXJhbChzZWxmKToKICAgICAgICAgbXNnID0gTWVzc2FnZSgpCiAgICAgICAgIG1zZ1snQ29udGVudC1UeXBlJ10gPSAnQ29udGVudC1UeXBlOiBNdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5ID0gIkNQSU1TU01UUEMwNnA1ZjN0RyInCkBAIC0zMjgsMTAgKzMxNiwxMiBAQAogICAgICAgICAjIG1zZy5nZXRfcGFyYW0oIndlaXJkIikKICAgICAgICAgIyB5ZXQuCiAKKyAgICAjIHRlc3RfaGVhZGVycmVnaXN0cnkuVGVzdENvbnRlbnRUeXBlSGVhZGVyLnNwYWNlc19hcm91bmRfc2VtaXMKICAgICBkZWYgdGVzdF9nZXRfcGFyYW1fZnVua3lfY29udGludWF0aW9uX2xpbmVzKHNlbGYpOgogICAgICAgICBtc2cgPSBzZWxmLl9tc2dvYmooJ21zZ18yMi50eHQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZy5nZXRfcGF5bG9hZCgxKS5nZXRfcGFyYW0oJ25hbWUnKSwgJ3dpYmJsZS5KUEcnKQogCisgICAgIyB0ZXN0X2hlYWRlcnJlZ2lzdHJ5LlRlc3RDb250ZW50VHlwZUhlYWRlci5zZW1pc19pbnNpZGVfcXVvdGVzCiAgICAgZGVmIHRlc3RfZ2V0X3BhcmFtX3dpdGhfc2VtaXNfaW5fcXVvdGVzKHNlbGYpOgogICAgICAgICBtc2cgPSBlbWFpbC5tZXNzYWdlX2Zyb21fc3RyaW5nKAogICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZTogaW1hZ2UvcGpwZWc7IG5hbWU9IkppbSZhbXA7JmFtcDtKaWxsIlxuJykKQEAgLTMzOSw2ICszMjksNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZy5nZXRfcGFyYW0oJ25hbWUnLCB1bnF1b3RlPUZhbHNlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAnIkppbSZhbXA7JmFtcDtKaWxsIicpCiAKKyAgICAjIHRlc3RfaGVhZGVycmVnaXN0cnkuVGVzdENvbnRlbnRUeXBlSGVhZGVyLnF1b3Rlc19pbnNpZGVfcmZjMjIzMV92YWx1ZQogICAgIGRlZiB0ZXN0X2dldF9wYXJhbV93aXRoX3F1b3RlcyhzZWxmKToKICAgICAgICAgbXNnID0gZW1haWwubWVzc2FnZV9mcm9tX3N0cmluZygKICAgICAgICAgICAgICdDb250ZW50LVR5cGU6IGZvbzsgYmFyKjA9ImJhelxcImZvb2JhciI7IGJhcioxPSJcXCJiYXoiJykKQEAgLTUyNyw2ICs1MTgsNyBAQAogICAgICAgICBlcShtc2cudmFsdWVzKCksIFsnT25lIEh1bmRyZWQnLCAnVHdlbnR5JywgJ1RocmVlJywgJ0VsZXZlbiddKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgbXNnLnJlcGxhY2VfaGVhZGVyLCAnRm91cnRoJywgJ01pc3NpbmcnKQogCisgICAgIyB0ZXN0X2RlZmVjdF9oYW5kbGluZzp0ZXN0X2ludmFsaWRfY2hhcnNfaW5fYmFzZTY0X3BheWxvYWQKICAgICBkZWYgdGVzdF9icm9rZW5fYmFzZTY0X3BheWxvYWQoc2VsZik6CiAgICAgICAgIHggPSAnQXdEcDBQNy8veTZMd0tFQWNQYS82UT05JwogICAgICAgICBtc2cgPSBNZXNzYWdlKCkKQEAgLTUzNCw3ICs1MjYsMTAgQEAKICAgICAgICAgbXNnWydjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nJ10gPSAnYmFzZTY0JwogICAgICAgICBtc2cuc2V0X3BheWxvYWQoeCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2cuZ2V0X3BheWxvYWQoZGVjb2RlPVRydWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzKHgsICdyYXctdW5pY29kZS1lc2NhcGUnKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAoYidceDAzXHgwMFx4ZTlceGQwXHhmZVx4ZmZceGZmLlx4OGJceGMwJworICAgICAgICAgICAgICAgICAgICAgICAgICBiJ1x4YTFceDAwcFx4ZjZceGJmXHhlOVx4MGYnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1zZy5kZWZlY3RzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLkludmFsaWRCYXNlNjRDaGFyYWN0ZXJzRGVmZWN0KQogCiAgICAgZGVmIHRlc3RfYnJva2VuX3VuaWNvZGVfcGF5bG9hZChzZWxmKToKICAgICAgICAgIyBUaGlzIHRlc3QgaW1wcm92ZXMgY292ZXJhZ2UgYnV0IGlzIG5vdCBhIGNvbXBsaWFuY2UgdGVzdC4KQEAgLTYzMiw2ICs2MjcsMTggQEAKICAgICAgICAgICAgIGFiYwogICAgICAgICAgICAgIiIiKSkKIAorICAgIGRlZiB0ZXN0X3VuaWNvZGVfYm9keV9kZWZhdWx0c190b191dGY4X2VuY29kaW5nKHNlbGYpOgorICAgICAgICAjIElzc3VlIDE0MjkxCisgICAgICAgIG0gPSBNSU1FVGV4dCgnw4kgdGVzdGFiY1xuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIobSksdGV4dHdyYXAuZGVkZW50KCIiIlwKKyAgICAgICAgICAgIENvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiCisgICAgICAgICAgICBNSU1FLVZlcnNpb246IDEuMAorICAgICAgICAgICAgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0CisKKyAgICAgICAgICAgIHc0a2dkR1Z6ZEdGaVl3bz0KKyAgICAgICAgICAgICIiIikpCisKKwogIyBUZXN0IHRoZSBlbWFpbC5lbmNvZGVycyBtb2R1bGUKIGNsYXNzIFRlc3RFbmNvZGVycyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTY1Nyw3ICs2NjQsNyBAQAogICAgICAgICBlcShtc2dbJ2NvbnRlbnQtdHJhbnNmZXItZW5jb2RpbmcnXSwgJzdiaXQnKQogICAgICAgICAjIFNpbWlsYXIsIGJ1dCB3aXRoIDhiaXQgZGF0YQogICAgICAgICBtc2cgPSBNSU1FVGV4dCgnaGVsbG8gXHhmOCB3b3JsZCcpCi0gICAgICAgIGVxKG1zZ1snY29udGVudC10cmFuc2Zlci1lbmNvZGluZyddLCAnOGJpdCcpCisgICAgICAgIGVxKG1zZ1snY29udGVudC10cmFuc2Zlci1lbmNvZGluZyddLCAnYmFzZTY0JykKICAgICAgICAgIyBBbmQgbm93IHdpdGggYSBkaWZmZXJlbnQgY2hhcnNldAogICAgICAgICBtc2cgPSBNSU1FVGV4dCgnaGVsbG8gXHhmOCB3b3JsZCcsIF9jaGFyc2V0PSdpc28tODg1OS0xJykKICAgICAgICAgZXEobXNnWydjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nJ10sICdxdW90ZWQtcHJpbnRhYmxlJykKQEAgLTEyNDMsNiArMTI1MCw3IEBACiAgICAgICAgICAgICAgPT91dGYtOD9xP19mb2xkaW5nX3doaXRlX3NwYWNlX3dvcmtzPz0iIiIpKydcbicpCiAKIAorCiAjIFRlc3QgbWFuZ2xpbmcgb2YgIkZyb20gIiBsaW5lcyBpbiB0aGUgYm9keSBvZiBhIG1lc3NhZ2UKIGNsYXNzIFRlc3RGcm9tTWFuZ2xpbmcodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKQEAgLTEyODAsMTMgKzEyODgsNyBAQAogIyBUZXN0IHRoZSBiYXNpYyBNSU1FQXVkaW8gY2xhc3MKIGNsYXNzIFRlc3RNSU1FQXVkaW8odW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgIyBNYWtlIHN1cmUgd2UgcGljayB1cCB0aGUgYXVkaW90ZXN0LmF1IHRoYXQgbGl2ZXMgaW4gZW1haWwvdGVzdC9kYXRhLgotICAgICAgICAjIEluIFB5dGhvbiwgdGhlcmUncyBhbiBhdWRpb3Rlc3QuYXUgbGl2aW5nIGluIExpYi90ZXN0IGJ1dCB0aGF0IGlzbid0Ci0gICAgICAgICMgaW5jbHVkZWQgaW4gc29tZSBiaW5hcnkgZGlzdHJvcyB0aGF0IGRvbid0IGluY2x1ZGUgdGhlIHRlc3QKLSAgICAgICAgIyBwYWNrYWdlLiAgVGhlIHRyYWlsaW5nIGVtcHR5IHN0cmluZyBvbiB0aGUgLmpvaW4oKSBpcyBzaWduaWZpY2FudAotICAgICAgICAjIHNpbmNlIGZpbmRmaWxlKCkgd2lsbCBkbyBhIGRpcm5hbWUoKS4KLSAgICAgICAgZGF0YWRpciA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUobGFuZG1hcmspLCAnZGF0YScsICcnKQotICAgICAgICB3aXRoIG9wZW4oZmluZGZpbGUoJ2F1ZGlvdGVzdC5hdScsIGRhdGFkaXIpLCAncmInKSBhcyBmcDoKKyAgICAgICAgd2l0aCBvcGVuZmlsZSgnYXVkaW90ZXN0LmF1JywgJ3JiJykgYXMgZnA6CiAgICAgICAgICAgICBzZWxmLl9hdWRpb2RhdGEgPSBmcC5yZWFkKCkKICAgICAgICAgc2VsZi5fYXUgPSBNSU1FQXVkaW8oc2VsZi5fYXVkaW9kYXRhKQogCkBAIC0xODE0LDYgKzE4MTYsNyBAQAogCiAjIFRlc3Qgc29tZSBiYWRseSBmb3JtYXR0ZWQgbWVzc2FnZXMKIGNsYXNzIFRlc3ROb25Db25mb3JtYW50KFRlc3RFbWFpbEJhc2UpOgorCiAgICAgZGVmIHRlc3RfcGFyc2VfbWlzc2luZ19taW5vcl90eXBlKHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKICAgICAgICAgbXNnID0gc2VsZi5fbXNnb2JqKCdtc2dfMTQudHh0JykKQEAgLTE4MjEsNiArMTgyNCw3IEBACiAgICAgICAgIGVxKG1zZy5nZXRfY29udGVudF9tYWludHlwZSgpLCAndGV4dCcpCiAgICAgICAgIGVxKG1zZy5nZXRfY29udGVudF9zdWJ0eXBlKCksICdwbGFpbicpCiAKKyAgICAjIHRlc3RfZGVmZWN0X2hhbmRsaW5nCiAgICAgZGVmIHRlc3Rfc2FtZV9ib3VuZGFyeV9pbm5lcl9vdXRlcihzZWxmKToKICAgICAgICAgdW5sZXNzID0gc2VsZi5hc3NlcnRUcnVlCiAgICAgICAgIG1zZyA9IHNlbGYuX21zZ29iaignbXNnXzE1LnR4dCcpCkBAIC0xODMxLDE1ICsxODM1LDYyIEBACiAgICAgICAgIHVubGVzcyhpc2luc3RhbmNlKGlubmVyLmRlZmVjdHNbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5TdGFydEJvdW5kYXJ5Tm90Rm91bmREZWZlY3QpKQogCisgICAgIyB0ZXN0X2RlZmVjdF9oYW5kbGluZwogICAgIGRlZiB0ZXN0X211bHRpcGFydF9ub19ib3VuZGFyeShzZWxmKToKICAgICAgICAgdW5sZXNzID0gc2VsZi5hc3NlcnRUcnVlCiAgICAgICAgIG1zZyA9IHNlbGYuX21zZ29iaignbXNnXzI1LnR4dCcpCiAgICAgICAgIHVubGVzcyhpc2luc3RhbmNlKG1zZy5nZXRfcGF5bG9hZCgpLCBzdHIpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihtc2cuZGVmZWN0cyksIDIpCi0gICAgICAgIHVubGVzcyhpc2luc3RhbmNlKG1zZy5kZWZlY3RzWzBdLCBlcnJvcnMuTm9Cb3VuZGFyeUluTXVsdGlwYXJ0RGVmZWN0KSkKKyAgICAgICAgdW5sZXNzKGlzaW5zdGFuY2UobXNnLmRlZmVjdHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5Ob0JvdW5kYXJ5SW5NdWx0aXBhcnREZWZlY3QpKQogICAgICAgICB1bmxlc3MoaXNpbnN0YW5jZShtc2cuZGVmZWN0c1sxXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLk11bHRpcGFydEludmFyaWFudFZpb2xhdGlvbkRlZmVjdCkpCiAKKyAgICBtdWx0aXBhcnRfbXNnID0gdGV4dHdyYXAuZGVkZW50KCIiIlwKKyAgICAgICAgRGF0ZTogV2VkLCAxNCBOb3YgMjAwNyAxMjo1NjoyMyBHTVQKKyAgICAgICAgRnJvbTogZm9vQGJhci5pbnZhbGlkCisgICAgICAgIFRvOiBmb29AYmFyLmludmFsaWQKKyAgICAgICAgU3ViamVjdDogQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0IGFuZCBtdWx0aXBhcnQKKyAgICAgICAgTUlNRS1WZXJzaW9uOiAxLjAKKyAgICAgICAgQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7CisgICAgICAgICAgICBib3VuZGFyeT0iPT09PT09PT09PT09PT09MzM0NDQzODc4NDQ1ODExOTg2MT09Int9CisKKyAgICAgICAgLS09PT09PT09PT09PT09PT0zMzQ0NDM4Nzg0NDU4MTE5ODYxPT0KKyAgICAgICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCisKKyAgICAgICAgVGVzdCBtZXNzYWdlCisKKyAgICAgICAgLS09PT09PT09PT09PT09PT0zMzQ0NDM4Nzg0NDU4MTE5ODYxPT0KKyAgICAgICAgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KKyAgICAgICAgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0CisKKyAgICAgICAgWVdKagorCisgICAgICAgIC0tPT09PT09PT09PT09PT09MzM0NDQzODc4NDQ1ODExOTg2MT09LS0KKyAgICAgICAgIiIiKQorCisgICAgIyB0ZXN0X2RlZmVjdF9oYW5kbGluZworICAgIGRlZiB0ZXN0X211bHRpcGFydF9pbnZhbGlkX2N0ZShzZWxmKToKKyAgICAgICAgbXNnID0gc2VsZi5fc3RyX21zZygKKyAgICAgICAgICAgIHNlbGYubXVsdGlwYXJ0X21zZy5mb3JtYXQoIlxuQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1zZy5kZWZlY3RzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1zZy5kZWZlY3RzWzBdLAorICAgICAgICAgICAgZXJyb3JzLkludmFsaWRNdWx0aXBhcnRDb250ZW50VHJhbnNmZXJFbmNvZGluZ0RlZmVjdCkKKworICAgICMgdGVzdF9kZWZlY3RfaGFuZGxpbmcKKyAgICBkZWYgdGVzdF9tdWx0aXBhcnRfbm9fY3RlX25vX2RlZmVjdChzZWxmKToKKyAgICAgICAgbXNnID0gc2VsZi5fc3RyX21zZyhzZWxmLm11bHRpcGFydF9tc2cuZm9ybWF0KCcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obXNnLmRlZmVjdHMpLCAwKQorCisgICAgIyB0ZXN0X2RlZmVjdF9oYW5kbGluZworICAgIGRlZiB0ZXN0X211bHRpcGFydF92YWxpZF9jdGVfbm9fZGVmZWN0KHNlbGYpOgorICAgICAgICBmb3IgY3RlIGluICgnN2JpdCcsICc4Yml0JywgJ0JJTmFyeScpOgorICAgICAgICAgICAgbXNnID0gc2VsZi5fc3RyX21zZygKKyAgICAgICAgICAgICAgICBzZWxmLm11bHRpcGFydF9tc2cuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAiXG5Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiB7fSIuZm9ybWF0KGN0ZSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obXNnLmRlZmVjdHMpLCAwKQorCisgICAgIyB0ZXN0X2hlYWRlcnJlZ2lzdHJ5LlRlc3RDb250ZW50VHlvcGVIZWFkZXIgaW52YWxpZF8xIGFuZCBpbnZhbGlkXzIuCiAgICAgZGVmIHRlc3RfaW52YWxpZF9jb250ZW50X3R5cGUoc2VsZik6CiAgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAogICAgICAgICBuZXEgPSBzZWxmLm5kaWZmQXNzZXJ0RXF1YWwKQEAgLTE4ODksMTUgKzE5NDAsMTggQEAKIGNvdW50ZXIgdG8gUkZDIDI4MjIsIHRoZXJlJ3Mgbm8gc2VwYXJhdGluZyBuZXdsaW5lIGhlcmUKICIiIikKIAorICAgICMgdGVzdF9kZWZlY3RfaGFuZGxpbmcKICAgICBkZWYgdGVzdF9seWluZ19tdWx0aXBhcnQoc2VsZik6CiAgICAgICAgIHVubGVzcyA9IHNlbGYuYXNzZXJ0VHJ1ZQogICAgICAgICBtc2cgPSBzZWxmLl9tc2dvYmooJ21zZ180MS50eHQnKQogICAgICAgICB1bmxlc3MoaGFzYXR0cihtc2csICdkZWZlY3RzJykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1zZy5kZWZlY3RzKSwgMikKLSAgICAgICAgdW5sZXNzKGlzaW5zdGFuY2UobXNnLmRlZmVjdHNbMF0sIGVycm9ycy5Ob0JvdW5kYXJ5SW5NdWx0aXBhcnREZWZlY3QpKQorICAgICAgICB1bmxlc3MoaXNpbnN0YW5jZShtc2cuZGVmZWN0c1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLk5vQm91bmRhcnlJbk11bHRpcGFydERlZmVjdCkpCiAgICAgICAgIHVubGVzcyhpc2luc3RhbmNlKG1zZy5kZWZlY3RzWzFdLAogICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuTXVsdGlwYXJ0SW52YXJpYW50VmlvbGF0aW9uRGVmZWN0KSkKIAorICAgICMgdGVzdF9kZWZlY3RfaGFuZGxpbmcKICAgICBkZWYgdGVzdF9taXNzaW5nX3N0YXJ0X2JvdW5kYXJ5KHNlbGYpOgogICAgICAgICBvdXRlciA9IHNlbGYuX21zZ29iaignbXNnXzQyLnR4dCcpCiAgICAgICAgICMgVGhlIG1lc3NhZ2Ugc3RydWN0dXJlIGlzOgpAQCAtMTkxMywxNyArMTk2NywyOSBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShiYWQuZGVmZWN0c1swXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLlN0YXJ0Qm91bmRhcnlOb3RGb3VuZERlZmVjdCkpCiAKKyAgICAjIHRlc3RfZGVmZWN0X2hhbmRsaW5nCiAgICAgZGVmIHRlc3RfZmlyc3RfbGluZV9pc19jb250aW51YXRpb25faGVhZGVyKHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKLSAgICAgICAgbSA9ICcgTGluZSAxXG5MaW5lIDJcbkxpbmUgMycKKyAgICAgICAgbSA9ICcgTGluZSAxXG5TdWJqZWN0OiB0ZXN0XG5cbmJvZHknCiAgICAgICAgIG1zZyA9IGVtYWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcobSkKLSAgICAgICAgZXEobXNnLmtleXMoKSwgW10pCi0gICAgICAgIGVxKG1zZy5nZXRfcGF5bG9hZCgpLCAnTGluZSAyXG5MaW5lIDMnKQorICAgICAgICBlcShtc2cua2V5cygpLCBbJ1N1YmplY3QnXSkKKyAgICAgICAgZXEobXNnLmdldF9wYXlsb2FkKCksICdib2R5JykKICAgICAgICAgZXEobGVuKG1zZy5kZWZlY3RzKSwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UobXNnLmRlZmVjdHNbMF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5GaXJzdEhlYWRlckxpbmVJc0NvbnRpbnVhdGlvbkRlZmVjdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RGVmZWN0c0VxdWFsKG1zZy5kZWZlY3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Vycm9ycy5GaXJzdEhlYWRlckxpbmVJc0NvbnRpbnVhdGlvbkRlZmVjdF0pCiAgICAgICAgIGVxKG1zZy5kZWZlY3RzWzBdLmxpbmUsICcgTGluZSAxXG4nKQogCisgICAgIyB0ZXN0X2RlZmVjdF9oYW5kbGluZworICAgIGRlZiB0ZXN0X21pc3NpbmdfaGVhZGVyX2JvZHlfc2VwYXJhdG9yKHNlbGYpOgorICAgICAgICAjIE91ciBoZXVyaXN0aWMgaWYgd2Ugc2VlIGEgbGluZSB0aGF0IGRvZXNuJ3QgbG9vayBsaWtlIGEgaGVhZGVyIChubworICAgICAgICAjIGxlYWRpbmcgd2hpdGVzcGFjZSBidXQgbm8gJzonKSBpcyB0byBhc3N1bWUgdGhhdCB0aGUgYmxhbmsgbGluZSB0aGF0CisgICAgICAgICMgc2VwYXJhdGVzIHRoZSBoZWFkZXIgZnJvbSB0aGUgYm9keSBpcyBtaXNzaW5nLCBhbmQgdG8gc3RvcCBwYXJzaW5nCisgICAgICAgICMgaGVhZGVycyBhbmQgc3RhcnQgcGFyc2luZyB0aGUgYm9keS4KKyAgICAgICAgbXNnID0gc2VsZi5fc3RyX21zZygnU3ViamVjdDogdGVzdFxubm90IGEgaGVhZGVyXG5UbzogYWJjXG5cbmJcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLmtleXMoKSwgWydTdWJqZWN0J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLmdldF9wYXlsb2FkKCksICdub3QgYSBoZWFkZXJcblRvOiBhYmNcblxuYlxuJykKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwobXNnLmRlZmVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJvcnMuTWlzc2luZ0hlYWRlckJvZHlTZXBhcmF0b3JEZWZlY3RdKQogCiAKICMgVGVzdCBSRkMgMjA0NyBoZWFkZXIgZW5jb2RpbmcgYW5kIGRlY29kaW5nCkBAIC0xOTM0LDkgKzIwMDAsOSBAQAogIGZvbyBiYXIgPT9tYWMtaWNlbGFuZD9xP3I9OEFrc209OUFyZz04Q3M/PSIiIgogICAgICAgICBkaCA9IGRlY29kZV9oZWFkZXIocykKICAgICAgICAgZXEoZGgsIFsKLSAgICAgICAgICAgIChiJ1JlOicsIE5vbmUpLAorICAgICAgICAgICAgKGInUmU6ICcsIE5vbmUpLAogICAgICAgICAgICAgKGInclx4OGFrc21ceDlhcmdceDhjcycsICdtYWMtaWNlbGFuZCcpLAotICAgICAgICAgICAgKGInYmF6IGZvbyBiYXInLCBOb25lKSwKKyAgICAgICAgICAgIChiJyBiYXogZm9vIGJhciAnLCBOb25lKSwKICAgICAgICAgICAgIChiJ3JceDhha3NtXHg5YXJnXHg4Y3MnLCAnbWFjLWljZWxhbmQnKV0pCiAgICAgICAgIGhlYWRlciA9IG1ha2VfaGVhZGVyKGRoKQogICAgICAgICBlcShzdHIoaGVhZGVyKSwKQEAgLTE5NDUsMzUgKzIwMTEsMzcgQEAKIFJlOiA9P21hYy1pY2VsYW5kP3E/cj04QWtzbT05QXJnPThDcz89IGJheiBmb28gYmFyID0/bWFjLWljZWxhbmQ/cT9yPThBa3NtPz0KICA9P21hYy1pY2VsYW5kP3E/PTlBcmc9OENzPz0iIiIpCiAKLSAgICBkZWYgdGVzdF93aGl0ZXNwYWNlX2VhdGVyX3VuaWNvZGUoc2VsZik6CisgICAgZGVmIHRlc3Rfd2hpdGVzcGFjZV9rZWVwZXJfdW5pY29kZShzZWxmKToKICAgICAgICAgZXEgPSBzZWxmLmFzc2VydEVxdWFsCiAgICAgICAgIHMgPSAnPT9JU08tODg1OS0xP1E/QW5kcj1FOT89IFBpcmFyZCA8cGlyYXJkQGRvbS5haW4+JwogICAgICAgICBkaCA9IGRlY29kZV9oZWFkZXIocykKICAgICAgICAgZXEoZGgsIFsoYidBbmRyXHhlOScsICdpc28tODg1OS0xJyksCi0gICAgICAgICAgICAgICAgKGInUGlyYXJkIDxwaXJhcmRAZG9tLmFpbj4nLCBOb25lKV0pCisgICAgICAgICAgICAgICAgKGInIFBpcmFyZCA8cGlyYXJkQGRvbS5haW4+JywgTm9uZSldKQogICAgICAgICBoZWFkZXIgPSBzdHIobWFrZV9oZWFkZXIoZGgpKQogICAgICAgICBlcShoZWFkZXIsICdBbmRyXHhlOSBQaXJhcmQgPHBpcmFyZEBkb20uYWluPicpCiAKLSAgICBkZWYgdGVzdF93aGl0ZXNwYWNlX2VhdGVyX3VuaWNvZGVfMihzZWxmKToKKyAgICBkZWYgdGVzdF93aGl0ZXNwYWNlX2tlZXBlcl91bmljb2RlXzIoc2VsZik6CiAgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAogICAgICAgICBzID0gJ1RoZSA9P2lzby04ODU5LTE/Yj9jWFZwWTJzZ1luSnZkMjRnWm05ND89IGp1bXBlZCBvdmVyIHRoZSA9P2lzby04ODU5LTE/Yj9iR0Y2ZVNCa2IyYz0/PScKICAgICAgICAgZGggPSBkZWNvZGVfaGVhZGVyKHMpCi0gICAgICAgIGVxKGRoLCBbKGInVGhlJywgTm9uZSksIChiJ3F1aWNrIGJyb3duIGZveCcsICdpc28tODg1OS0xJyksCi0gICAgICAgICAgICAgICAgKGInanVtcGVkIG92ZXIgdGhlJywgTm9uZSksIChiJ2xhenkgZG9nJywgJ2lzby04ODU5LTEnKV0pCisgICAgICAgIGVxKGRoLCBbKGInVGhlICcsIE5vbmUpLCAoYidxdWljayBicm93biBmb3gnLCAnaXNvLTg4NTktMScpLAorICAgICAgICAgICAgICAgIChiJyBqdW1wZWQgb3ZlciB0aGUgJywgTm9uZSksIChiJ2xhenkgZG9nJywgJ2lzby04ODU5LTEnKV0pCiAgICAgICAgIGh1ID0gc3RyKG1ha2VfaGVhZGVyKGRoKSkKICAgICAgICAgZXEoaHUsICdUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZycpCiAKICAgICBkZWYgdGVzdF9yZmMyMDQ3X21pc3Npbmdfd2hpdGVzcGFjZShzZWxmKToKICAgICAgICAgcyA9ICdTbT0/SVNPLTg4NTktMT9CPzlnPT0/PXJnPT9JU08tODg1OS0xP0I/NVE9PT89c2JvcmQnCiAgICAgICAgIGRoID0gZGVjb2RlX2hlYWRlcihzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRoLCBbKHMsIE5vbmUpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkaCwgWyhiJ1NtJywgTm9uZSksIChiJ1x4ZjYnLCAnaXNvLTg4NTktMScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIncmcnLCBOb25lKSwgKGInXHhlNScsICdpc28tODg1OS0xJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYidzYm9yZCcsIE5vbmUpXSkKIAogICAgIGRlZiB0ZXN0X3JmYzIwNDdfd2l0aF93aGl0ZXNwYWNlKHNlbGYpOgogICAgICAgICBzID0gJ1NtID0/SVNPLTg4NTktMT9CPzlnPT0/PSByZyA9P0lTTy04ODU5LTE/Qj81UT09Pz0gc2JvcmQnCiAgICAgICAgIGRoID0gZGVjb2RlX2hlYWRlcihzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRoLCBbKGInU20nLCBOb25lKSwgKGInXHhmNicsICdpc28tODg1OS0xJyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYidyZycsIE5vbmUpLCAoYidceGU1JywgJ2lzby04ODU5LTEnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiJ3Nib3JkJywgTm9uZSldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRoLCBbKGInU20gJywgTm9uZSksIChiJ1x4ZjYnLCAnaXNvLTg4NTktMScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGInIHJnICcsIE5vbmUpLCAoYidceGU1JywgJ2lzby04ODU5LTEnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiJyBzYm9yZCcsIE5vbmUpXSkKIAogICAgIGRlZiB0ZXN0X3JmYzIwNDdfQl9iYWRfcGFkZGluZyhzZWxmKToKICAgICAgICAgcyA9ICc9P2lzby04ODU5LTE/Qj8lcz89JwpAQCAtMTk5MSw2ICsyMDU5LDY3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVjb2RlX2hlYWRlcihzKSwKICAgICAgICAgICAgICAgICAgICAgICAgIFsoYidhbmRyXHhlOT16eicsICdpc28tODY1OS0xJyldKQogCisgICAgZGVmIHRlc3RfcmZjMjA0N19yZmMyMDQ3XzEoc2VsZik6CisgICAgICAgICMgMXN0IHRlc3RjYXNlIGF0IGVuZCBvZiByZmMyMDQ3CisgICAgICAgIHMgPSAnKD0/SVNPLTg4NTktMT9RP2E/PSknCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVjb2RlX2hlYWRlcihzKSwKKyAgICAgICAgICAgIFsoYicoJywgTm9uZSksIChiJ2EnLCAnaXNvLTg4NTktMScpLCAoYicpJywgTm9uZSldKQorCisgICAgZGVmIHRlc3RfcmZjMjA0N19yZmMyMDQ3XzIoc2VsZik6CisgICAgICAgICMgMm5kIHRlc3RjYXNlIGF0IGVuZCBvZiByZmMyMDQ3CisgICAgICAgIHMgPSAnKD0/SVNPLTg4NTktMT9RP2E/PSBiKScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfaGVhZGVyKHMpLAorICAgICAgICAgICAgWyhiJygnLCBOb25lKSwgKGInYScsICdpc28tODg1OS0xJyksIChiJyBiKScsIE5vbmUpXSkKKworICAgIGRlZiB0ZXN0X3JmYzIwNDdfcmZjMjA0N18zKHNlbGYpOgorICAgICAgICAjIDNyZCB0ZXN0Y2FzZSBhdCBlbmQgb2YgcmZjMjA0NworICAgICAgICBzID0gJyg9P0lTTy04ODU5LTE/UT9hPz0gPT9JU08tODg1OS0xP1E/Yj89KScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfaGVhZGVyKHMpLAorICAgICAgICAgICAgWyhiJygnLCBOb25lKSwgKGInYWInLCAnaXNvLTg4NTktMScpLCAoYicpJywgTm9uZSldKQorCisgICAgZGVmIHRlc3RfcmZjMjA0N19yZmMyMDQ3XzQoc2VsZik6CisgICAgICAgICMgNHRoIHRlc3RjYXNlIGF0IGVuZCBvZiByZmMyMDQ3CisgICAgICAgIHMgPSAnKD0/SVNPLTg4NTktMT9RP2E/PSAgPT9JU08tODg1OS0xP1E/Yj89KScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfaGVhZGVyKHMpLAorICAgICAgICAgICAgWyhiJygnLCBOb25lKSwgKGInYWInLCAnaXNvLTg4NTktMScpLCAoYicpJywgTm9uZSldKQorCisgICAgZGVmIHRlc3RfcmZjMjA0N19yZmMyMDQ3XzVhKHNlbGYpOgorICAgICAgICAjIDV0aCB0ZXN0Y2FzZSBhdCBlbmQgb2YgcmZjMjA0NyBuZXdsaW5lIGlzIFxyXG4KKyAgICAgICAgcyA9ICcoPT9JU08tODg1OS0xP1E/YT89XHJcbiAgICA9P0lTTy04ODU5LTE/UT9iPz0pJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlY29kZV9oZWFkZXIocyksCisgICAgICAgICAgICBbKGInKCcsIE5vbmUpLCAoYidhYicsICdpc28tODg1OS0xJyksIChiJyknLCBOb25lKV0pCisKKyAgICBkZWYgdGVzdF9yZmMyMDQ3X3JmYzIwNDdfNWIoc2VsZik6CisgICAgICAgICMgNXRoIHRlc3RjYXNlIGF0IGVuZCBvZiByZmMyMDQ3IG5ld2xpbmUgaXMgXG4KKyAgICAgICAgcyA9ICcoPT9JU08tODg1OS0xP1E/YT89XG4gICAgPT9JU08tODg1OS0xP1E/Yj89KScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfaGVhZGVyKHMpLAorICAgICAgICAgICAgWyhiJygnLCBOb25lKSwgKGInYWInLCAnaXNvLTg4NTktMScpLCAoYicpJywgTm9uZSldKQorCisgICAgZGVmIHRlc3RfcmZjMjA0N19yZmMyMDQ3XzYoc2VsZik6CisgICAgICAgICMgNnRoIHRlc3RjYXNlIGF0IGVuZCBvZiByZmMyMDQ3CisgICAgICAgIHMgPSAnKD0/SVNPLTg4NTktMT9RP2FfYj89KScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWNvZGVfaGVhZGVyKHMpLAorICAgICAgICAgICAgWyhiJygnLCBOb25lKSwgKGInYSBiJywgJ2lzby04ODU5LTEnKSwgKGInKScsIE5vbmUpXSkKKworICAgIGRlZiB0ZXN0X3JmYzIwNDdfcmZjMjA0N183KHNlbGYpOgorICAgICAgICAjIDd0aCB0ZXN0Y2FzZSBhdCBlbmQgb2YgcmZjMjA0NworICAgICAgICBzID0gJyg9P0lTTy04ODU5LTE/UT9hPz0gPT9JU08tODg1OS0yP1E/X2I/PSknCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGVjb2RlX2hlYWRlcihzKSwKKyAgICAgICAgICAgIFsoYicoJywgTm9uZSksIChiJ2EnLCAnaXNvLTg4NTktMScpLCAoYicgYicsICdpc28tODg1OS0yJyksCisgICAgICAgICAgICAgKGInKScsIE5vbmUpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWtlX2hlYWRlcihkZWNvZGVfaGVhZGVyKHMpKS5lbmNvZGUoKSwgcy5sb3dlcigpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihtYWtlX2hlYWRlcihkZWNvZGVfaGVhZGVyKHMpKSksICcoYSBiKScpCisKKyAgICBkZWYgdGVzdF9tdWx0aWxpbmVfaGVhZGVyKHNlbGYpOgorICAgICAgICBzID0gJz0/d2luZG93cy0xMjUyP3E/PTIyTT1GQ2xsZXJfVD0yMj89XHJcbiA8VC5NdWVsbGVyQHh4eC5jb20+JworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlY29kZV9oZWFkZXIocyksCisgICAgICAgICAgICBbKGInIk1ceGZjbGxlciBUIicsICd3aW5kb3dzLTEyNTInKSwKKyAgICAgICAgICAgICAoYic8VC5NdWVsbGVyQHh4eC5jb20+JywgTm9uZSldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1ha2VfaGVhZGVyKGRlY29kZV9oZWFkZXIocykpLmVuY29kZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICcnLmpvaW4ocy5zcGxpdGxpbmVzKCkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihtYWtlX2hlYWRlcihkZWNvZGVfaGVhZGVyKHMpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgJyJNw7xsbGVyIFQiIDxULk11ZWxsZXJAeHh4LmNvbT4nKQorCiAKICMgVGVzdCB0aGUgTUlNRU1lc3NhZ2UgY2xhc3MKIGNsYXNzIFRlc3RNSU1FTWVzc2FnZShUZXN0RW1haWxCYXNlKToKQEAgLTI1MTYsNiArMjY0NSwxMyBAQAogICAgICAgICBmb3Igc3VicGFydCBpbiBtc2cud2FsaygpOgogICAgICAgICAgICAgdW5sZXNzKGlzaW5zdGFuY2Uoc3VicGFydCwgTXlNZXNzYWdlKSkKIAorICAgIGRlZiB0ZXN0X2N1c3RvbV9tZXNzYWdlX2RvZXNfbm90X3JlcXVpcmVfYXJndW1lbnRzKHNlbGYpOgorICAgICAgICBjbGFzcyBNeU1lc3NhZ2UoTWVzc2FnZSk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCisgICAgICAgIG1zZyA9IHNlbGYuX3N0cl9tc2coIlN1YmplY3Q6IHRlc3RcblxudGVzdCIsIE15TWVzc2FnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UobXNnLCBNeU1lc3NhZ2UpKQorCiAgICAgZGVmIHRlc3RfX2FsbF9fKHNlbGYpOgogICAgICAgICBtb2R1bGUgPSBfX2ltcG9ydF9fKCdlbWFpbCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ydGVkKG1vZHVsZS5fX2FsbF9fKSwgWwpAQCAtMjU3NCw2ICsyNzEwLDEzIEBACiAgICAgICAgICAgICgyMDAyLCA0LCAzLCAxNCwgNTgsIDI2LCAwLCAxLCAtMSwgLTI4ODAwKSkKIAogCisgICAgZGVmIHRlc3RfcGFyc2VkYXRlX2FjY2VwdHNfdGltZV93aXRoX2RvdHMoc2VsZik6CisgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAorICAgICAgICBlcSh1dGlscy5wYXJzZWRhdGVfdHooJzUgRmViIDIwMDMgMTMuNDcuMjYgLTA4MDAnKSwKKyAgICAgICAgICAgKDIwMDMsIDIsIDUsIDEzLCA0NywgMjYsIDAsIDEsIC0xLCAtMjg4MDApKQorICAgICAgICBlcSh1dGlscy5wYXJzZWRhdGVfdHooJzUgRmViIDIwMDMgMTMuNDcgLTA4MDAnKSwKKyAgICAgICAgICAgKDIwMDMsIDIsIDUsIDEzLCA0NywgMCwgMCwgMSwgLTEsIC0yODgwMCkpCisKICAgICBkZWYgdGVzdF9wYXJzZWRhdGVfYWNjZXB0YWJsZV90b190aW1lX2Z1bmN0aW9ucyhzZWxmKToKICAgICAgICAgZXEgPSBzZWxmLmFzc2VydEVxdWFsCiAgICAgICAgIHRpbWV0dXAgPSB1dGlscy5wYXJzZWRhdGUoJzUgRmViIDIwMDMgMTM6NDc6MjYgLTA4MDAnKQpAQCAtMjYxNiw3ICsyNzU5LDEwIEBACiAgICAgZGVmIHRlc3RfZXNjYXBlX2R1bXAoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCiAgICAgICAgICAgICB1dGlscy5mb3JtYXRhZGRyKCgnQSAoVmVyeSkgU2lsbHkgUGVyc29uJywgJ3BlcnNvbkBkb20uYWluJykpLAotICAgICAgICAgICAgciciQSBcKFZlcnlcKSBTaWxseSBQZXJzb24iIDxwZXJzb25AZG9tLmFpbj4nKQorICAgICAgICAgICAgciciQSAoVmVyeSkgU2lsbHkgUGVyc29uIiA8cGVyc29uQGRvbS5haW4+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIHV0aWxzLnBhcnNlYWRkcihyJyJBIFwoVmVyeVwpIFNpbGx5IFBlcnNvbiIgPHBlcnNvbkBkb20uYWluPicpLAorICAgICAgICAgICAgKCdBIChWZXJ5KSBTaWxseSBQZXJzb24nLCAncGVyc29uQGRvbS5haW4nKSkKICAgICAgICAgYSA9IHInQSBcKFNwZWNpYWxcKSBQZXJzb24nCiAgICAgICAgIGIgPSAncGVyc29uQGRvbS5haW4nCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXRpbHMucGFyc2VhZGRyKHV0aWxzLmZvcm1hdGFkZHIoKGEsIGIpKSksIChhLCBiKSkKQEAgLTI2MjksNiArMjc3NSw0NiBAQAogICAgICAgICBiID0gJ3BlcnNvbkBkb20uYWluJwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHV0aWxzLnBhcnNlYWRkcih1dGlscy5mb3JtYXRhZGRyKChhLCBiKSkpLCAoYSwgYikpCiAKKyAgICBkZWYgdGVzdF9xdW90ZXNfdW5pY29kZV9uYW1lcyhzZWxmKToKKyAgICAgICAgIyBpc3N1ZSAxNjkwNjA4LiAgZW1haWwudXRpbHMuZm9ybWF0YWRkcigpIHNob3VsZCBiZSByZmMyMDQ3IGF3YXJlLgorICAgICAgICBuYW1lID0gIkhcdTAwZTRucyBXXHUwMGZjcnN0IgorICAgICAgICBhZGRyID0gJ3BlcnNvbkBkb20uYWluJworICAgICAgICB1dGY4X2Jhc2U2NCA9ICI9P3V0Zi04P2I/U01Pa2JuTWdWOE84Y25OMD89IDxwZXJzb25AZG9tLmFpbj4iCisgICAgICAgIGxhdGluMV9xdW9wcmkgPSAiPT9pc28tODg1OS0xP3E/SD1FNG5zX1c9RkNyc3Q/PSA8cGVyc29uQGRvbS5haW4+IgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHV0aWxzLmZvcm1hdGFkZHIoKG5hbWUsIGFkZHIpKSwgdXRmOF9iYXNlNjQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXRpbHMuZm9ybWF0YWRkcigobmFtZSwgYWRkciksICdpc28tODg1OS0xJyksCisgICAgICAgICAgICBsYXRpbjFfcXVvcHJpKQorCisgICAgZGVmIHRlc3RfYWNjZXB0c19hbnlfY2hhcnNldF9saWtlX29iamVjdChzZWxmKToKKyAgICAgICAgIyBpc3N1ZSAxNjkwNjA4LiAgZW1haWwudXRpbHMuZm9ybWF0YWRkcigpIHNob3VsZCBiZSByZmMyMDQ3IGF3YXJlLgorICAgICAgICBuYW1lID0gIkhcdTAwZTRucyBXXHUwMGZjcnN0IgorICAgICAgICBhZGRyID0gJ3BlcnNvbkBkb20uYWluJworICAgICAgICB1dGY4X2Jhc2U2NCA9ICI9P3V0Zi04P2I/U01Pa2JuTWdWOE84Y25OMD89IDxwZXJzb25AZG9tLmFpbj4iCisgICAgICAgIGZvb2JhciA9ICJGT09CQVIiCisgICAgICAgIGNsYXNzIENoYXJzZXRNb2NrOgorICAgICAgICAgICAgZGVmIGhlYWRlcl9lbmNvZGUoc2VsZiwgc3RyaW5nKToKKyAgICAgICAgICAgICAgICByZXR1cm4gZm9vYmFyCisgICAgICAgIG1vY2sgPSBDaGFyc2V0TW9jaygpCisgICAgICAgIG1vY2tfZXhwZWN0ZWQgPSAiJXMgPCVzPiIgJSAoZm9vYmFyLCBhZGRyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHV0aWxzLmZvcm1hdGFkZHIoKG5hbWUsIGFkZHIpLCBtb2NrKSwgbW9ja19leHBlY3RlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1dGlscy5mb3JtYXRhZGRyKChuYW1lLCBhZGRyKSwgQ2hhcnNldCgndXRmLTgnKSksCisgICAgICAgICAgICB1dGY4X2Jhc2U2NCkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfY2hhcnNldF9saWtlX29iamVjdF9yYWlzZXNfZXJyb3Ioc2VsZik6CisgICAgICAgICMgaXNzdWUgMTY5MDYwOC4gIGVtYWlsLnV0aWxzLmZvcm1hdGFkZHIoKSBzaG91bGQgYmUgcmZjMjA0NyBhd2FyZS4KKyAgICAgICAgbmFtZSA9ICJIXHUwMGU0bnMgV1x1MDBmY3JzdCIKKyAgICAgICAgYWRkciA9ICdwZXJzb25AZG9tLmFpbicKKyAgICAgICAgIyBBIG9iamVjdCB3aXRob3V0IGEgaGVhZGVyX2VuY29kZSBtZXRob2Q6CisgICAgICAgIGJhZF9jaGFyc2V0ID0gb2JqZWN0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIHV0aWxzLmZvcm1hdGFkZHIsIChuYW1lLCBhZGRyKSwKKyAgICAgICAgICAgIGJhZF9jaGFyc2V0KQorCisgICAgZGVmIHRlc3RfdW5pY29kZV9hZGRyZXNzX3JhaXNlc19lcnJvcihzZWxmKToKKyAgICAgICAgIyBpc3N1ZSAxNjkwNjA4LiAgZW1haWwudXRpbHMuZm9ybWF0YWRkcigpIHNob3VsZCBiZSByZmMyMDQ3IGF3YXJlLgorICAgICAgICBhZGRyID0gJ3BlcnNcdTAwZjZuQGRvbS5pbicKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZUVycm9yLCB1dGlscy5mb3JtYXRhZGRyLCAoTm9uZSwgYWRkcikpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaWNvZGVFcnJvciwgdXRpbHMuZm9ybWF0YWRkciwgKCJOYW1lIiwgYWRkcikpCisKICAgICBkZWYgdGVzdF9uYW1lX3dpdGhfZG90KHNlbGYpOgogICAgICAgICB4ID0gJ0pvaG4gWC4gRG9lIDxqeGRAZXhhbXBsZS5jb20+JwogICAgICAgICB5ID0gJyJKb2huIFguIERvZSIgPGp4ZEBleGFtcGxlLmNvbT4nCkBAIC0yNjc0LDYgKzI4NjAsMTUgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoJycsICdtZXJ3b2sud29rLndva0B4YW1wbGUuY29tJyksCiAgICAgICAgICAgICB1dGlscy5wYXJzZWFkZHIoJ21lcndvay4gd29rIC4gIHdva0B4YW1wbGUuY29tJykpCiAKKyAgICBkZWYgdGVzdF9mb3JtYXRhZGRyX2RvZXNfbm90X3F1b3RlX3BhcmVuc19pbl9xdW90ZWRfc3RyaW5nKHNlbGYpOgorICAgICAgICBhZGRyID0gKCInZm9vQGV4YW1wbGUuY29tJyAoZm9vQGV4YW1wbGUuY29tKSIsCisgICAgICAgICAgICAgICAgJ2Zvb0BleGFtcGxlLmNvbScpCisgICAgICAgIGFkZHJzdHIgPSAoJyJcJ2Zvb0BleGFtcGxlLmNvbVwnICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKGZvb0BleGFtcGxlLmNvbSkiIDxmb29AZXhhbXBsZS5jb20+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1dGlscy5wYXJzZWFkZHIoYWRkcnN0ciksIGFkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXRpbHMuZm9ybWF0YWRkcihhZGRyKSwgYWRkcnN0cikKKworCiAgICAgZGVmIHRlc3RfbXVsdGlsaW5lX2Zyb21fY29tbWVudChzZWxmKToKICAgICAgICAgeCA9ICIiIlwKIEZvbwpAQCAtMjkwOSw2ICszMTA0LDcgQEAKIAogCiBjbGFzcyBUZXN0UGFyc2VycyhUZXN0RW1haWxCYXNlKToKKwogICAgIGRlZiB0ZXN0X2hlYWRlcl9wYXJzZXIoc2VsZik6CiAgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAogICAgICAgICAjIFBhcnNlIG9ubHkgdGhlIGhlYWRlcnMgb2YgYSBjb21wbGV4IG11bHRpcGFydCBNSU1FIGRvY3VtZW50CkBAIC0yOTIwLDYgKzMxMTYsMTggQEAKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtc2cuaXNfbXVsdGlwYXJ0KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKG1zZy5nZXRfcGF5bG9hZCgpLCBzdHIpKQogCisgICAgZGVmIHRlc3RfYnl0ZXNfaGVhZGVyX3BhcnNlcihzZWxmKToKKyAgICAgICAgZXEgPSBzZWxmLmFzc2VydEVxdWFsCisgICAgICAgICMgUGFyc2Ugb25seSB0aGUgaGVhZGVycyBvZiBhIGNvbXBsZXggbXVsdGlwYXJ0IE1JTUUgZG9jdW1lbnQKKyAgICAgICAgd2l0aCBvcGVuZmlsZSgnbXNnXzAyLnR4dCcsICdyYicpIGFzIGZwOgorICAgICAgICAgICAgbXNnID0gZW1haWwucGFyc2VyLkJ5dGVzSGVhZGVyUGFyc2VyKCkucGFyc2UoZnApCisgICAgICAgIGVxKG1zZ1snZnJvbSddLCAncHBwLXJlcXVlc3RAenp6Lm9yZycpCisgICAgICAgIGVxKG1zZ1sndG8nXSwgJ3BwcEB6enoub3JnJykKKyAgICAgICAgZXEobXNnLmdldF9jb250ZW50X3R5cGUoKSwgJ211bHRpcGFydC9taXhlZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobXNnLmlzX211bHRpcGFydCgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShtc2cuZ2V0X3BheWxvYWQoKSwgc3RyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UobXNnLmdldF9wYXlsb2FkKGRlY29kZT1UcnVlKSwgYnl0ZXMpKQorCiAgICAgZGVmIHRlc3Rfd2hpdGVzcGFjZV9jb250aW51YXRpb24oc2VsZik6CiAgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAogICAgICAgICAjIFRoaXMgbWVzc2FnZSBjb250YWlucyBhIGxpbmUgYWZ0ZXIgdGhlIFN1YmplY3Q6IGhlYWRlciB0aGF0IGhhcyBvbmx5CkBAIC0zMTQyLDE1ICszMzUwLDE5IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLmdldF9wYXlsb2FkKGRlY29kZT1UcnVlKSwKICAgICAgICAgICAgICAgICAgICAgICAgICdww7ZzdMOhbFxuJy5lbmNvZGUoJ3V0Zi04JykpCiAKKyAgICAjIHRlc3RfZGVmZWN0X2hhbmRsaW5nOnRlc3RfaW52YWxpZF9jaGFyc19pbl9iYXNlNjRfcGF5bG9hZAogICAgIGRlZiB0ZXN0XzhiaXRfaW5fYmFzZTY0X2JvZHkoc2VsZik6Ci0gICAgICAgICMgU3RpY2tpbmcgYW4gOGJpdCBieXRlIGluIGEgYmFzZTY0IGJsb2NrIG1ha2VzIGl0IHVuZGVjb2RhYmxlIGJ5Ci0gICAgICAgICMgbm9ybWFsIG1lYW5zLCBzbyB0aGUgYmxvY2sgaXMgcmV0dXJuZWQgdW5kZWNvZGVkLCBidXQgYXMgYnl0ZXMuCisgICAgICAgICMgSWYgd2UgZ2V0IDhiaXQgYnl0ZXMgaW4gYSBiYXNlNjQgYm9keSwgd2UgY2FuIGp1c3QgaWdub3JlIHRoZW0KKyAgICAgICAgIyBhcyBiZWluZyBvdXRzaWRlIHRoZSBiYXNlNjQgYWxwaGFiZXQgYW5kIGRlY29kZSBhbnl3YXkuICBCdXQKKyAgICAgICAgIyB3ZSByZWdpc3RlciBhIGRlZmVjdC4KICAgICAgICAgbSA9IHNlbGYuYm9keXRlc3RfbXNnLmZvcm1hdChjaGFyc2V0PSd1dGYtOCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3RlPSdiYXNlNjQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHlsaW5lPSdjTU8yYzNSaGJBw6E9JykuZW5jb2RlKCd1dGYtOCcpCiAgICAgICAgIG1zZyA9IGVtYWlsLm1lc3NhZ2VfZnJvbV9ieXRlcyhtKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZy5nZXRfcGF5bG9hZChkZWNvZGU9VHJ1ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2NNTzJjM1JoYkHDoT1cbicuZW5jb2RlKCd1dGYtOCcpKQorICAgICAgICAgICAgICAgICAgICAgICAgICdww7ZzdGFsJy5lbmNvZGUoJ3V0Zi04JykpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtc2cuZGVmZWN0c1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5JbnZhbGlkQmFzZTY0Q2hhcmFjdGVyc0RlZmVjdCkKIAogICAgIGRlZiB0ZXN0XzhiaXRfaW5fdXVlbmNvZGVfYm9keShzZWxmKToKICAgICAgICAgIyBTdGlja2luZyBhbiA4Yml0IGJ5dGUgaW4gYSB1dWVuY29kZSBibG9jayBtYWtlcyBpdCB1bmRlY29kYWJsZSBieQpAQCAtMzIzMSw2ICszNDQzLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2cuZ2V0X2NvbnRlbnRfbWFpbnR5cGUoKSwgInRleHQiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZy5nZXRfY29udGVudF9zdWJ0eXBlKCksICJwbFx1RkZGRGluIikKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIubm9uX2FzY2lpX2luX3BhcmFtcwogICAgIGRlZiB0ZXN0X2dldF9wYXJhbXNfd2l0aF84Yml0KHNlbGYpOgogICAgICAgICBtc2cgPSBlbWFpbC5tZXNzYWdlX2Zyb21fYnl0ZXMoCiAgICAgICAgICAgICAnWC1IZWFkZXI6IGZvbz1ceGE3bmU7IGJceGE3cj10d287IGJhej10aHJlZVxuJy5lbmNvZGUoJ2xhdGluLTEnKSkKQEAgLTMyNDAsNiArMzQ1Myw3IEBACiAgICAgICAgICMgWFhYOiBzb21lZGF5IHlvdSBtaWdodCBiZSBhYmxlIHRvIGdldCAnYlx4YTdyJywgZm9yIG5vdyB5b3UgY2FuJ3QuCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLmdldF9wYXJhbSgnYlx4YTdyJywgaGVhZGVyPSd4LWhlYWRlcicpLCBOb25lKQogCisgICAgIyB0ZXN0X2hlYWRlcnJlZ2lzdHJ5LlRlc3RDb250ZW50VHlwZUhlYWRlci5ub25fYXNjaWlfaW5fcmZjMjIzMV92YWx1ZQogICAgIGRlZiB0ZXN0X2dldF9yZmMyMjMxX3BhcmFtc193aXRoXzhiaXQoc2VsZik6CiAgICAgICAgIG1zZyA9IGVtYWlsLm1lc3NhZ2VfZnJvbV9ieXRlcyh0ZXh0d3JhcC5kZWRlbnQoIiIiXAogICAgICAgICAgICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpOwpAQCAtMzQ4NSwxMiArMzY5OSw3IEBACiAgICAgICAgIGIgPSBCeXRlc0lPKCkKICAgICAgICAgZyA9IGVtYWlsLmdlbmVyYXRvci5CeXRlc0dlbmVyYXRvcihiLCBtYXhoZWFkZXJsZW49MCkKICAgICAgICAgZy5mbGF0dGVuKG1zZywgdW5peGZyb209dW5peGZyb20sIGxpbmVzZXA9c2VsZi5saW5lc2VwKQotICAgICAgICBzZWxmLmFzc2VydEJ5dGVTdHJpbmdzRXF1YWwoZGF0YSwgYi5nZXR2YWx1ZSgpKQotCi0gICAgZGVmIGFzc2VydEJ5dGVTdHJpbmdzRXF1YWwoc2VsZiwgc3RyMSwgc3RyMik6Ci0gICAgICAgICMgTm90IHVzaW5nIHNlbGYuYmxpbmVzZXAgaGVyZSBpcyBpbnRlbnRpb25hbC4gIFRoaXMgd2F5IHRoZSBvdXRwdXQKLSAgICAgICAgIyBpcyBtb3JlIHVzZWZ1bCB3aGVuIHRoZSBmYWlsdXJlIHJlc3VsdHMgaW4gbWl4ZWQgbGluZSBlbmRpbmdzLgotICAgICAgICBzZWxmLmFzc2VydExpc3RFcXVhbChzdHIxLnNwbGl0KGInXG4nKSwgc3RyMi5zcGxpdChiJ1xuJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YSwgYi5nZXR2YWx1ZSgpKQogCiAKIGNsYXNzIFRlc3RCeXRlc0dlbmVyYXRvcklkZW1wb3RlbnROTChCYXNlVGVzdEJ5dGVzR2VuZXJhdG9ySWRlbXBvdGVudCwKQEAgLTQyNTYsMTEgKzQ0NjUsMTEgQEAKICAgICAgICAgaCA9IG1ha2VfaGVhZGVyKGRlY29kZV9oZWFkZXIocykpCiAgICAgICAgIGVxKGguZW5jb2RlKCksIHMpCiAKLSAgICBkZWYgdGVzdF93aGl0ZXNwYWNlX2VhdGVyKHNlbGYpOgorICAgIGRlZiB0ZXN0X3doaXRlc3BhY2Vfa2VlcGVyKHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKICAgICAgICAgcyA9ICdTdWJqZWN0OiA9P2tvaTgtcj9iPzhOTFAxOFhTeThFZ3pzRWd4c25Pd2N6WXp0az0/PSA9P2tvaTgtcj9xPz1DQT89IHp6LicKICAgICAgICAgcGFydHMgPSBkZWNvZGVfaGVhZGVyKHMpCi0gICAgICAgIGVxKHBhcnRzLCBbKGInU3ViamVjdDonLCBOb25lKSwgKGInXHhmMFx4ZDJceGNmXHhkN1x4YzVceGQyXHhjYlx4YzEgXHhjZVx4YzEgXHhjNlx4YzlceGNlXHhjMVx4Y2NceGQ4XHhjZVx4ZDlceGNhJywgJ2tvaTgtcicpLCAoYid6ei4nLCBOb25lKV0pCisgICAgICAgIGVxKHBhcnRzLCBbKGInU3ViamVjdDogJywgTm9uZSksIChiJ1x4ZjBceGQyXHhjZlx4ZDdceGM1XHhkMlx4Y2JceGMxIFx4Y2VceGMxIFx4YzZceGM5XHhjZVx4YzFceGNjXHhkOFx4Y2VceGQ5XHhjYScsICdrb2k4LXInKSwgKGInIHp6LicsIE5vbmUpXSkKICAgICAgICAgaGRyID0gbWFrZV9oZWFkZXIocGFydHMpCiAgICAgICAgIGVxKGhkci5lbmNvZGUoKSwKICAgICAgICAgICAgJ1N1YmplY3Q6ID0/a29pOC1yP2I/OE5MUDE4WFN5OEVnenNFZ3hzbk93Y3pZenRuSz89IHp6LicpCkBAIC00MjkwLDYgKzQ0OTksOSBAQAogCiAjIFRlc3QgUkZDIDIyMzEgaGVhZGVyIHBhcmFtZXRlcnMgKGVuL2RlKWNvZGluZwogY2xhc3MgVGVzdFJGQzIyMzEoVGVzdEVtYWlsQmFzZSk6CisKKyAgICAjIHRlc3RfaGVhZGVycmVnaXN0cnkuVGVzdENvbnRlbnRUeXBlSGVhZGVyLnJmYzIyMzFfZW5jb2RlZF93aXRoX2RvdWJsZV9xdW90ZXMKKyAgICAjIHRlc3RfaGVhZGVycmVnaXN0cnkuVGVzdENvbnRlbnRUeXBlSGVhZGVyLnJmYzIyMzFfc2luZ2xlX3F1b3RlX2luc2lkZV9kb3VibGVfcXVvdGVzCiAgICAgZGVmIHRlc3RfZ2V0X3BhcmFtKHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKICAgICAgICAgbXNnID0gc2VsZi5fbXNnb2JqKCdtc2dfMjkudHh0JykKQEAgLTQzNzUsMTEgKzQ1ODcsMTUgQEAKIC1NZQogIiIiKQogCisgICAgIyB0ZXN0X2hlYWRlcnJlZ2lzdHJ5LlRlc3RDb250ZW50VHlwZUhlYWRlci5yZmMyMjMxX2VuY29kZWRfY2hhcnNldAorICAgICMgSSBjaGFuZ2VkIHRoZSBjaGFyc2V0IG5hbWUsIHRob3VnaCwgYmVjYXVzZSB0aGUgb25lIGluIHRoZSBmaWxlIGlzbid0CisgICAgIyBhIGxlZ2FsIGNoYXJzZXQgbmFtZS4gIFNob3VsZCBhZGQgYSB0ZXN0IGZvciBhbiBpbGxlZ2FsIGNoYXJzZXQuCiAgICAgZGVmIHRlc3RfcmZjMjIzMV9nZXRfY29udGVudF9jaGFyc2V0KHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKICAgICAgICAgbXNnID0gc2VsZi5fbXNnb2JqKCdtc2dfMzIudHh0JykKICAgICAgICAgZXEobXNnLmdldF9jb250ZW50X2NoYXJzZXQoKSwgJ3VzLWFzY2lpJykKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIucmZjMjIzMV9lbmNvZGVkX25vX2RvdWJsZV9xdW90ZXMKICAgICBkZWYgdGVzdF9yZmMyMjMxX3BhcnNlX3JmY19xdW90aW5nKHNlbGYpOgogICAgICAgICBtID0gdGV4dHdyYXAuZGVkZW50KCcnJ1wKICAgICAgICAgICAgIENvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsKQEAgLTQzOTMsNiArNDYwOSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoaXMgaXMgZXZlbiBtb3JlICoqKmZ1bioqKiBpcyBpdCBub3QucGRmJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLCBtc2cuYXNfc3RyaW5nKCkpCiAKKyAgICAjIHRlc3RfaGVhZGVycmVnaXN0cnkuVGVzdENvbnRlbnRUeXBlSGVhZGVyLnJmYzIyMzFfZW5jb2RlZF93aXRoX2RvdWJsZV9xdW90ZXMKICAgICBkZWYgdGVzdF9yZmMyMjMxX3BhcnNlX2V4dHJhX3F1b3Rpbmcoc2VsZik6CiAgICAgICAgIG0gPSB0ZXh0d3JhcC5kZWRlbnQoJycnXAogICAgICAgICAgICAgQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOwpAQCAtNDQwNiw2ICs0NjIzLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAnVGhpcyBpcyBldmVuIG1vcmUgKioqZnVuKioqIGlzIGl0IG5vdC5wZGYnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0sIG1zZy5hc19zdHJpbmcoKSkKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIucmZjMjIzMV9ub19sYW5ndWFnZV9vcl9jaGFyc2V0CisgICAgIyBidXQgbmV3IHRlc3QgdXNlcyAqMCogYmVjYXVzZSBvdGhlcndpc2UgbGFuZy9jaGFyc2V0IGlzIG5vdCB2YWxpZC4KKyAgICAjIHRlc3RfaGVhZGVycmVnaXN0cnkuVGVzdENvbnRlbnRUeXBlSGVhZGVyLnJmYzIyMzFfc2VnbWVudGVkX25vcm1hbF92YWx1ZXMKICAgICBkZWYgdGVzdF9yZmMyMjMxX25vX2xhbmd1YWdlX29yX2NoYXJzZXQoc2VsZik6CiAgICAgICAgIG0gPSAnJydcCiBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CkBAIC00NDIwLDYgKzQ2NDAsNyBAQAogICAgICAgICAgICAgcGFyYW0sCiAgICAgICAgICAgICAnZmlsZV9fX19DX19ET0NVTUVOVFNfMjBBTkRfMjBTRVRUSU5HU19GQUJJRU5fTE9DQUxfMjBTRVRUSU5HU19URU1QX25zbWFpbC5odG0nKQogCisgICAgIyB0ZXN0X2hlYWRlcnJlZ2lzdHJ5LlRlc3RDb250ZW50VHlwZUhlYWRlci5yZmMyMjMxX2VuY29kZWRfbm9fY2hhcnNldAogICAgIGRlZiB0ZXN0X3JmYzIyMzFfbm9fbGFuZ3VhZ2Vfb3JfY2hhcnNldF9pbl9maWxlbmFtZShzZWxmKToKICAgICAgICAgbSA9ICcnJ1wKIENvbnRlbnQtRGlzcG9zaXRpb246IGlubGluZTsKQEAgLTQ0MzIsNiArNDY1Myw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLmdldF9maWxlbmFtZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICdUaGlzIGlzIGV2ZW4gbW9yZSAqKipmdW4qKiogaXMgaXQgbm90LnBkZicpCiAKKyAgICAjIER1cGxpY2F0ZSBvZiBwcmV2aW91cyB0ZXN0PwogICAgIGRlZiB0ZXN0X3JmYzIyMzFfbm9fbGFuZ3VhZ2Vfb3JfY2hhcnNldF9pbl9maWxlbmFtZV9lbmNvZGVkKHNlbGYpOgogICAgICAgICBtID0gJycnXAogQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOwpAQCAtNDQ0NCw2ICs0NjY2LDggQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2cuZ2V0X2ZpbGVuYW1lKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoaXMgaXMgZXZlbiBtb3JlICoqKmZ1bioqKiBpcyBpdCBub3QucGRmJykKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIucmZjMjIzMV9wYXJ0bHlfZW5jb2RlZCwKKyAgICAjIGJ1dCB0aGUgdGVzdCBiZWxvdyBpcyB3cm9uZyAodGhlIGZpcnN0IHBhcnQgc2hvdWxkIGJlIGRlY29kZWQpLgogICAgIGRlZiB0ZXN0X3JmYzIyMzFfcGFydGx5X2VuY29kZWQoc2VsZik6CiAgICAgICAgIG0gPSAnJydcCiBDb250ZW50LURpc3Bvc2l0aW9uOiBpbmxpbmU7CkBAIC00NDk1LDYgKzQ3MTksNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZy5nZXRfY29udGVudF9jaGFyc2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoaXMgaXMgZXZlbiBtb3JlICoqKmZ1bioqKiBpcyBpdCBub3QucGRmJykKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIucmZjMjIzMV91bmtub3duX2NoYXJzZXRfdHJlYXRlZF9hc19hc2NpaQogICAgIGRlZiB0ZXN0X3JmYzIyMzFfYmFkX2VuY29kaW5nX2luX2ZpbGVuYW1lKHNlbGYpOgogICAgICAgICBtID0gJycnXAogQ29udGVudC1EaXNwb3NpdGlvbjogaW5saW5lOwpAQCAtNDU2MSw2ICs0Nzg2LDcgQEAKICAgICAgICAgZXEobGFuZ3VhZ2UsIE5vbmUpCiAgICAgICAgIGVxKHMsICJGcmFuaydzIERvY3VtZW50IikKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIucmZjMjIzMV9zaW5nbGVfcXVvdGVfaW5zaWRlX2RvdWJsZV9xdW90ZXMKICAgICBkZWYgdGVzdF9yZmMyMjMxX3NpbmdsZV90aWNrX2luX2ZpbGVuYW1lKHNlbGYpOgogICAgICAgICBtID0gIiIiXAogQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LWZvbzsgbmFtZSowPVwiRnJhbmsnc1wiOyBuYW1lKjE9XCIgRG9jdW1lbnRcIgpAQCAtNDU3MSw2ICs0Nzk3LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpc2luc3RhbmNlKHBhcmFtLCB0dXBsZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyYW0sICJGcmFuaydzIERvY3VtZW50IikKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIucmZjMjIzMV9zaW5nbGVfcXVvdGVfaW5fdmFsdWVfd2l0aF9jaGFyc2V0X2FuZF9sYW5nCiAgICAgZGVmIHRlc3RfcmZjMjIzMV90aWNrX2F0dGFja19leHRlbmRlZChzZWxmKToKICAgICAgICAgZXEgPSBzZWxmLmFzc2VydEVxdWFsCiAgICAgICAgIG0gPSAiIiJcCkBAIC00NTg0LDYgKzQ4MTEsNyBAQAogICAgICAgICBlcShsYW5ndWFnZSwgJ2VuLXVzJykKICAgICAgICAgZXEocywgIkZyYW5rJ3MgRG9jdW1lbnQiKQogCisgICAgIyB0ZXN0X2hlYWRlcnJlZ2lzdHJ5LlRlc3RDb250ZW50VHlwZUhlYWRlci5yZmMyMjMxX3NpbmdsZV9xdW90ZV9pbl9ub25fZW5jb2RlZF92YWx1ZQogICAgIGRlZiB0ZXN0X3JmYzIyMzFfdGlja19hdHRhY2soc2VsZik6CiAgICAgICAgIG0gPSAiIiJcCiBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtZm9vOwpAQCAtNDU5NSw2ICs0ODIzLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpc2luc3RhbmNlKHBhcmFtLCB0dXBsZSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyYW0sICJ1cy1hc2NpaSdlbi11cydGcmFuaydzIERvY3VtZW50IikKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIucmZjMjIzMV9zaW5nbGVfcXVvdGVzX2luc2lkZV9xdW90ZXMKICAgICBkZWYgdGVzdF9yZmMyMjMxX25vX2V4dGVuZGVkX3ZhbHVlcyhzZWxmKToKICAgICAgICAgZXEgPSBzZWxmLmFzc2VydEVxdWFsCiAgICAgICAgIG0gPSAiIiJcCkBAIC00NjA0LDYgKzQ4MzMsNyBAQAogICAgICAgICBtc2cgPSBlbWFpbC5tZXNzYWdlX2Zyb21fc3RyaW5nKG0pCiAgICAgICAgIGVxKG1zZy5nZXRfcGFyYW0oJ25hbWUnKSwgIkZyYW5rJ3MgRG9jdW1lbnQiKQogCisgICAgIyB0ZXN0X2hlYWRlcnJlZ2lzdHJ5LlRlc3RDb250ZW50VHlwZUhlYWRlci5yZmMyMjMxX2VuY29kZWRfdGhlbl91bmVuY29kZWRfc2VnbWVudHMKICAgICBkZWYgdGVzdF9yZmMyMjMxX2VuY29kZWRfdGhlbl91bmVuY29kZWRfc2VnbWVudHMoc2VsZik6CiAgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAogICAgICAgICBtID0gIiIiXApAQCAtNDYxOSw2ICs0ODQ5LDggQEAKICAgICAgICAgZXEobGFuZ3VhZ2UsICdlbi11cycpCiAgICAgICAgIGVxKHMsICdNeSBEb2N1bWVudCBGb3IgWW91JykKIAorICAgICMgdGVzdF9oZWFkZXJyZWdpc3RyeS5UZXN0Q29udGVudFR5cGVIZWFkZXIucmZjMjIzMV91bmVuY29kZWRfdGhlbl9lbmNvZGVkX3NlZ21lbnRzCisgICAgIyB0ZXN0X2hlYWRlcnJlZ2lzdHJ5LlRlc3RDb250ZW50VHlwZUhlYWRlci5yZmMyMjMxX3F1b3RlZF91bmVuY29kZWRfdGhlbl9lbmNvZGVkX3NlZ21lbnRzCiAgICAgZGVmIHRlc3RfcmZjMjIzMV91bmVuY29kZWRfdGhlbl9lbmNvZGVkX3NlZ21lbnRzKHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKICAgICAgICAgbSA9ICIiIlwKQEAgLTQ2NDIsNyArNDg3NCw3IEBACiBjbGFzcyBUZXN0U2lnbmVkKFRlc3RFbWFpbEJhc2UpOgogCiAgICAgZGVmIF9tc2dfYW5kX29iaihzZWxmLCBmaWxlbmFtZSk6Ci0gICAgICAgIHdpdGggb3BlbmZpbGUoZmluZGZpbGUoZmlsZW5hbWUpKSBhcyBmcDoKKyAgICAgICAgd2l0aCBvcGVuZmlsZShmaWxlbmFtZSkgYXMgZnA6CiAgICAgICAgICAgICBvcmlnaW5hbCA9IGZwLnJlYWQoKQogICAgICAgICAgICAgbXNnID0gZW1haWwubWVzc2FnZV9mcm9tX3N0cmluZyhvcmlnaW5hbCkKICAgICAgICAgcmV0dXJuIG9yaWdpbmFsLCBtc2cKQEAgLTQ2NzQsMjMgKzQ5MDYsNSBAQAogCiAKIAotZGVmIF90ZXN0Y2xhc3NlcygpOgotICAgIG1vZCA9IHN5cy5tb2R1bGVzW19fbmFtZV9fXQotICAgIHJldHVybiBbZ2V0YXR0cihtb2QsIG5hbWUpIGZvciBuYW1lIGluIGRpcihtb2QpIGlmIG5hbWUuc3RhcnRzd2l0aCgnVGVzdCcpXQotCi0KLWRlZiBzdWl0ZSgpOgotICAgIHN1aXRlID0gdW5pdHRlc3QuVGVzdFN1aXRlKCkKLSAgICBmb3IgdGVzdGNsYXNzIGluIF90ZXN0Y2xhc3NlcygpOgotICAgICAgICBzdWl0ZS5hZGRUZXN0KHVuaXR0ZXN0Lm1ha2VTdWl0ZSh0ZXN0Y2xhc3MpKQotICAgIHJldHVybiBzdWl0ZQotCi0KLWRlZiB0ZXN0X21haW4oKToKLSAgICBmb3IgdGVzdGNsYXNzIGluIF90ZXN0Y2xhc3NlcygpOgotICAgICAgICBydW5fdW5pdHRlc3QodGVzdGNsYXNzKQotCi0KLQogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKGRlZmF1bHRUZXN0PSdzdWl0ZScpCisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfZ2VuZXJhdG9yLnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X2dlbmVyYXRvci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OTE3NDA4Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X2dlbmVyYXRvci5weQpAQCAtMCwwICsxLDE5OSBAQAoraW1wb3J0IGlvCitpbXBvcnQgdGV4dHdyYXAKK2ltcG9ydCB1bml0dGVzdAorZnJvbSBlbWFpbCBpbXBvcnQgbWVzc2FnZV9mcm9tX3N0cmluZywgbWVzc2FnZV9mcm9tX2J5dGVzCitmcm9tIGVtYWlsLmdlbmVyYXRvciBpbXBvcnQgR2VuZXJhdG9yLCBCeXRlc0dlbmVyYXRvcgorZnJvbSBlbWFpbCBpbXBvcnQgcG9saWN5Citmcm9tIHRlc3QudGVzdF9lbWFpbCBpbXBvcnQgVGVzdEVtYWlsQmFzZSwgcGFyYW1ldGVyaXplCisKKworQHBhcmFtZXRlcml6ZQorY2xhc3MgVGVzdEdlbmVyYXRvckJhc2U6CisKKyAgICBwb2xpY3kgPSBwb2xpY3kuZGVmYXVsdAorCisgICAgZGVmIG1zZ21ha2VyKHNlbGYsIG1zZywgcG9saWN5PU5vbmUpOgorICAgICAgICBwb2xpY3kgPSBzZWxmLnBvbGljeSBpZiBwb2xpY3kgaXMgTm9uZSBlbHNlIHBvbGljeQorICAgICAgICByZXR1cm4gc2VsZi5tc2dmdW5jKG1zZywgcG9saWN5PXBvbGljeSkKKworICAgIHJlZm9sZF9sb25nX2V4cGVjdGVkID0geworICAgICAgICAwOiB0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICAgICAgVG86IHdob21faXRfbWF5X2NvbmNlcm5AZXhhbXBsZS5jb20KKyAgICAgICAgICAgIEZyb206IG5vYm9keV95b3Vfd2FudF90b19rbm93QGV4YW1wbGUuY29tCisgICAgICAgICAgICBTdWJqZWN0OiBXZSB0aGUgd2lsbGluZyBsZWQgYnkgdGhlIHVua25vd2luZyBhcmUgZG9pbmcgdGhlCisgICAgICAgICAgICAgaW1wb3NzaWJsZSBmb3IgdGhlIHVuZ3JhdGVmdWwuIFdlIGhhdmUgZG9uZSBzbyBtdWNoIGZvciBzbyBsb25nIHdpdGggc28gbGl0dGxlCisgICAgICAgICAgICAgd2UgYXJlIG5vdyBxdWFsaWZpZWQgdG8gZG8gYW55dGhpbmcgd2l0aCBub3RoaW5nLgorCisgICAgICAgICAgICBOb25lCisgICAgICAgICAgICAiIiIpLAorICAgICAgICAjIEZyb20gaXMgd3JhcHBlZCBiZWNhdXNlIHdyYXBwZWQgaXQgZml0cyBpbiA0MC4KKyAgICAgICAgNDA6IHRleHR3cmFwLmRlZGVudCgiIiJcCisgICAgICAgICAgICBUbzogd2hvbV9pdF9tYXlfY29uY2VybkBleGFtcGxlLmNvbQorICAgICAgICAgICAgRnJvbToKKyAgICAgICAgICAgICBub2JvZHlfeW91X3dhbnRfdG9fa25vd0BleGFtcGxlLmNvbQorICAgICAgICAgICAgU3ViamVjdDogV2UgdGhlIHdpbGxpbmcgbGVkIGJ5IHRoZQorICAgICAgICAgICAgIHVua25vd2luZyBhcmUgZG9pbmcgdGhlIGltcG9zc2libGUgZm9yCisgICAgICAgICAgICAgdGhlIHVuZ3JhdGVmdWwuIFdlIGhhdmUgZG9uZSBzbyBtdWNoCisgICAgICAgICAgICAgZm9yIHNvIGxvbmcgd2l0aCBzbyBsaXR0bGUgd2UgYXJlIG5vdworICAgICAgICAgICAgIHF1YWxpZmllZCB0byBkbyBhbnl0aGluZyB3aXRoIG5vdGhpbmcuCisKKyAgICAgICAgICAgIE5vbmUKKyAgICAgICAgICAgICIiIiksCisgICAgICAgICMgTmVpdGhlciB0byBub3IgZnJvbSBmaXQgZXZlbiBpZiBwdXQgb24gYSBuZXcgbGluZSwKKyAgICAgICAgIyBzbyB3ZSBsZWF2ZSB0aGVtIHN0aWNraW5nIG91dCBvbiB0aGUgZmlyc3QgbGluZS4KKyAgICAgICAgMjA6IHRleHR3cmFwLmRlZGVudCgiIiJcCisgICAgICAgICAgICBUbzogd2hvbV9pdF9tYXlfY29uY2VybkBleGFtcGxlLmNvbQorICAgICAgICAgICAgRnJvbTogbm9ib2R5X3lvdV93YW50X3RvX2tub3dAZXhhbXBsZS5jb20KKyAgICAgICAgICAgIFN1YmplY3Q6IFdlIHRoZQorICAgICAgICAgICAgIHdpbGxpbmcgbGVkIGJ5IHRoZQorICAgICAgICAgICAgIHVua25vd2luZyBhcmUgZG9pbmcKKyAgICAgICAgICAgICB0aGUgaW1wb3NzaWJsZSBmb3IKKyAgICAgICAgICAgICB0aGUgdW5ncmF0ZWZ1bC4gV2UKKyAgICAgICAgICAgICBoYXZlIGRvbmUgc28gbXVjaAorICAgICAgICAgICAgIGZvciBzbyBsb25nIHdpdGggc28KKyAgICAgICAgICAgICBsaXR0bGUgd2UgYXJlIG5vdworICAgICAgICAgICAgIHF1YWxpZmllZCB0byBkbworICAgICAgICAgICAgIGFueXRoaW5nIHdpdGgKKyAgICAgICAgICAgICBub3RoaW5nLgorCisgICAgICAgICAgICBOb25lCisgICAgICAgICAgICAiIiIpLAorICAgICAgICB9CisgICAgcmVmb2xkX2xvbmdfZXhwZWN0ZWRbMTAwXSA9IHJlZm9sZF9sb25nX2V4cGVjdGVkWzBdCisKKyAgICByZWZvbGRfYWxsX2V4cGVjdGVkID0gcmVmb2xkX2xvbmdfZXhwZWN0ZWQuY29weSgpCisgICAgcmVmb2xkX2FsbF9leHBlY3RlZFswXSA9ICgKKyAgICAgICAgICAgICJUbzogd2hvbV9pdF9tYXlfY29uY2VybkBleGFtcGxlLmNvbVxuIgorICAgICAgICAgICAgIkZyb206IG5vYm9keV95b3Vfd2FudF90b19rbm93QGV4YW1wbGUuY29tXG4iCisgICAgICAgICAgICAiU3ViamVjdDogV2UgdGhlIHdpbGxpbmcgbGVkIGJ5IHRoZSB1bmtub3dpbmcgYXJlIGRvaW5nIHRoZSAiCisgICAgICAgICAgICAgICJpbXBvc3NpYmxlIGZvciB0aGUgdW5ncmF0ZWZ1bC4gV2UgaGF2ZSBkb25lIHNvIG11Y2ggZm9yICIKKyAgICAgICAgICAgICAgInNvIGxvbmcgd2l0aCBzbyBsaXR0bGUgd2UgYXJlIG5vdyBxdWFsaWZpZWQgdG8gZG8gYW55dGhpbmcgIgorICAgICAgICAgICAgICAid2l0aCBub3RoaW5nLlxuIgorICAgICAgICAgICAgICAiXG4iCisgICAgICAgICAgICAgICJOb25lXG4iKQorICAgIHJlZm9sZF9hbGxfZXhwZWN0ZWRbMTAwXSA9ICgKKyAgICAgICAgICAgICJUbzogd2hvbV9pdF9tYXlfY29uY2VybkBleGFtcGxlLmNvbVxuIgorICAgICAgICAgICAgIkZyb206IG5vYm9keV95b3Vfd2FudF90b19rbm93QGV4YW1wbGUuY29tXG4iCisgICAgICAgICAgICAiU3ViamVjdDogV2UgdGhlIHdpbGxpbmcgbGVkIGJ5IHRoZSB1bmtub3dpbmcgYXJlIGRvaW5nIHRoZSAiCisgICAgICAgICAgICAgICAgImltcG9zc2libGUgZm9yIHRoZSB1bmdyYXRlZnVsLiBXZSBoYXZlXG4iCisgICAgICAgICAgICAgICIgZG9uZSBzbyBtdWNoIGZvciBzbyBsb25nIHdpdGggc28gbGl0dGxlIHdlIGFyZSBub3cgcXVhbGlmaWVkICIKKyAgICAgICAgICAgICAgICAidG8gZG8gYW55dGhpbmcgd2l0aCBub3RoaW5nLlxuIgorICAgICAgICAgICAgICAiXG4iCisgICAgICAgICAgICAgICJOb25lXG4iKQorCisgICAgbGVuZ3RoX3BhcmFtcyA9IFtuIGZvciBuIGluIHJlZm9sZF9sb25nX2V4cGVjdGVkXQorCisgICAgZGVmIGxlbmd0aF9hc19tYXhoZWFkZXJsZW5fcGFyYW1ldGVyKHNlbGYsIG4pOgorICAgICAgICBtc2cgPSBzZWxmLm1zZ21ha2VyKHNlbGYudHlwKHNlbGYucmVmb2xkX2xvbmdfZXhwZWN0ZWRbMF0pKQorICAgICAgICBzID0gc2VsZi5pb2NsYXNzKCkKKyAgICAgICAgZyA9IHNlbGYuZ2VuY2xhc3MocywgbWF4aGVhZGVybGVuPW4sIHBvbGljeT1zZWxmLnBvbGljeSkKKyAgICAgICAgZy5mbGF0dGVuKG1zZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksIHNlbGYudHlwKHNlbGYucmVmb2xkX2xvbmdfZXhwZWN0ZWRbbl0pKQorCisgICAgZGVmIGxlbmd0aF9hc19tYXhfbGluZV9sZW5ndGhfcG9saWN5KHNlbGYsIG4pOgorICAgICAgICBtc2cgPSBzZWxmLm1zZ21ha2VyKHNlbGYudHlwKHNlbGYucmVmb2xkX2xvbmdfZXhwZWN0ZWRbMF0pKQorICAgICAgICBzID0gc2VsZi5pb2NsYXNzKCkKKyAgICAgICAgZyA9IHNlbGYuZ2VuY2xhc3MocywgcG9saWN5PXNlbGYucG9saWN5LmNsb25lKG1heF9saW5lX2xlbmd0aD1uKSkKKyAgICAgICAgZy5mbGF0dGVuKG1zZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksIHNlbGYudHlwKHNlbGYucmVmb2xkX2xvbmdfZXhwZWN0ZWRbbl0pKQorCisgICAgZGVmIGxlbmd0aF9hc19tYXhoZWFkZXJsZW5fcGFybV9vdmVycmlkZXNfcG9saWN5KHNlbGYsIG4pOgorICAgICAgICBtc2cgPSBzZWxmLm1zZ21ha2VyKHNlbGYudHlwKHNlbGYucmVmb2xkX2xvbmdfZXhwZWN0ZWRbMF0pKQorICAgICAgICBzID0gc2VsZi5pb2NsYXNzKCkKKyAgICAgICAgZyA9IHNlbGYuZ2VuY2xhc3MocywgbWF4aGVhZGVybGVuPW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeT1zZWxmLnBvbGljeS5jbG9uZShtYXhfbGluZV9sZW5ndGg9MTApKQorICAgICAgICBnLmZsYXR0ZW4obXNnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwgc2VsZi50eXAoc2VsZi5yZWZvbGRfbG9uZ19leHBlY3RlZFtuXSkpCisKKyAgICBkZWYgbGVuZ3RoX2FzX21heF9saW5lX2xlbmd0aF93aXRoX3JlZm9sZF9ub25lX2RvZXNfbm90X2ZvbGQoc2VsZiwgbik6CisgICAgICAgIG1zZyA9IHNlbGYubXNnbWFrZXIoc2VsZi50eXAoc2VsZi5yZWZvbGRfbG9uZ19leHBlY3RlZFswXSkpCisgICAgICAgIHMgPSBzZWxmLmlvY2xhc3MoKQorICAgICAgICBnID0gc2VsZi5nZW5jbGFzcyhzLCBwb2xpY3k9c2VsZi5wb2xpY3kuY2xvbmUocmVmb2xkX3NvdXJjZT0nbm9uZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhfbGluZV9sZW5ndGg9bikpCisgICAgICAgIGcuZmxhdHRlbihtc2cpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCBzZWxmLnR5cChzZWxmLnJlZm9sZF9sb25nX2V4cGVjdGVkWzBdKSkKKworICAgIGRlZiBsZW5ndGhfYXNfbWF4X2xpbmVfbGVuZ3RoX3dpdGhfcmVmb2xkX2FsbF9mb2xkcyhzZWxmLCBuKToKKyAgICAgICAgbXNnID0gc2VsZi5tc2dtYWtlcihzZWxmLnR5cChzZWxmLnJlZm9sZF9sb25nX2V4cGVjdGVkWzBdKSkKKyAgICAgICAgcyA9IHNlbGYuaW9jbGFzcygpCisgICAgICAgIGcgPSBzZWxmLmdlbmNsYXNzKHMsIHBvbGljeT1zZWxmLnBvbGljeS5jbG9uZShyZWZvbGRfc291cmNlPSdhbGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4X2xpbmVfbGVuZ3RoPW4pKQorICAgICAgICBnLmZsYXR0ZW4obXNnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwgc2VsZi50eXAoc2VsZi5yZWZvbGRfYWxsX2V4cGVjdGVkW25dKSkKKworICAgIGRlZiB0ZXN0X2NybGZfY29udHJvbF92aWFfcG9saWN5KHNlbGYpOgorICAgICAgICBzb3VyY2UgPSAiU3ViamVjdDogdGVzdFxyXG5cclxudGVzdCBib2R5XHJcbiIKKyAgICAgICAgZXhwZWN0ZWQgPSBzb3VyY2UKKyAgICAgICAgbXNnID0gc2VsZi5tc2dtYWtlcihzZWxmLnR5cChzb3VyY2UpKQorICAgICAgICBzID0gc2VsZi5pb2NsYXNzKCkKKyAgICAgICAgZyA9IHNlbGYuZ2VuY2xhc3MocywgcG9saWN5PXBvbGljeS5TTVRQKQorICAgICAgICBnLmZsYXR0ZW4obXNnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwgc2VsZi50eXAoZXhwZWN0ZWQpKQorCisgICAgZGVmIHRlc3RfZmxhdHRlbl9saW5lc2VwX292ZXJyaWRlc19wb2xpY3koc2VsZik6CisgICAgICAgIHNvdXJjZSA9ICJTdWJqZWN0OiB0ZXN0XG5cbnRlc3QgYm9keVxuIgorICAgICAgICBleHBlY3RlZCA9IHNvdXJjZQorICAgICAgICBtc2cgPSBzZWxmLm1zZ21ha2VyKHNlbGYudHlwKHNvdXJjZSkpCisgICAgICAgIHMgPSBzZWxmLmlvY2xhc3MoKQorICAgICAgICBnID0gc2VsZi5nZW5jbGFzcyhzLCBwb2xpY3k9cG9saWN5LlNNVFApCisgICAgICAgIGcuZmxhdHRlbihtc2csIGxpbmVzZXA9J1xuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksIHNlbGYudHlwKGV4cGVjdGVkKSkKKworCitjbGFzcyBUZXN0R2VuZXJhdG9yKFRlc3RHZW5lcmF0b3JCYXNlLCBUZXN0RW1haWxCYXNlKToKKworICAgIG1zZ2Z1bmMgPSBzdGF0aWNtZXRob2QobWVzc2FnZV9mcm9tX3N0cmluZykKKyAgICBnZW5jbGFzcyA9IEdlbmVyYXRvcgorICAgIGlvY2xhc3MgPSBpby5TdHJpbmdJTworICAgIHR5cCA9IHN0cgorCisKK2NsYXNzIFRlc3RCeXRlc0dlbmVyYXRvcihUZXN0R2VuZXJhdG9yQmFzZSwgVGVzdEVtYWlsQmFzZSk6CisKKyAgICBtc2dmdW5jID0gc3RhdGljbWV0aG9kKG1lc3NhZ2VfZnJvbV9ieXRlcykKKyAgICBnZW5jbGFzcyA9IEJ5dGVzR2VuZXJhdG9yCisgICAgaW9jbGFzcyA9IGlvLkJ5dGVzSU8KKyAgICB0eXAgPSBsYW1iZGEgc2VsZiwgeDogeC5lbmNvZGUoJ2FzY2lpJykKKworICAgIGRlZiB0ZXN0X2N0ZV90eXBlXzdiaXRfaGFuZGxlc191bmtub3duXzhiaXQoc2VsZik6CisgICAgICAgIHNvdXJjZSA9ICgiU3ViamVjdDogTWFpbnRlbmFudCBqZSB2b3VzIHByw6lzZW50ZSBtb24gIgorICAgICAgICAgICAgICAgICAiY29sbMOoZ3VlXG5cbiIpLmVuY29kZSgndXRmLTgnKQorICAgICAgICBleHBlY3RlZCA9ICgnU3ViamVjdDogTWFpbnRlbmFudCBqZSB2b3VzID0/dW5rbm93bi04Yml0P3E/JworICAgICAgICAgICAgICAgICAgICAncHI9QzM9QTlzZW50ZV9tb25fY29sbD1DMz1BOGd1ZT89XG5cbicpLmVuY29kZSgnYXNjaWknKQorICAgICAgICBtc2cgPSBtZXNzYWdlX2Zyb21fYnl0ZXMoc291cmNlKQorICAgICAgICBzID0gaW8uQnl0ZXNJTygpCisgICAgICAgIGcgPSBCeXRlc0dlbmVyYXRvcihzLCBwb2xpY3k9c2VsZi5wb2xpY3kuY2xvbmUoY3RlX3R5cGU9JzdiaXQnKSkKKyAgICAgICAgZy5mbGF0dGVuKG1zZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3RfY3RlX3R5cGVfN2JpdF90cmFuc2Zvcm1zXzhiaXRfY3RlKHNlbGYpOgorICAgICAgICBzb3VyY2UgPSB0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICAgICAgRnJvbTogZm9vQGJhci5jb20KKyAgICAgICAgICAgIFRvOiBEaW5zZGFsZQorICAgICAgICAgICAgU3ViamVjdDogTnVkZ2UgbnVkZ2UsIHdpbmssIHdpbmsKKyAgICAgICAgICAgIE1pbWUtVmVyc2lvbjogMS4wCisgICAgICAgICAgICBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9ImxhdGluLTEiCisgICAgICAgICAgICBDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKKyAgICAgICAgICAgIG9oIGzDoCBsw6AsIGtub3cgd2hhdCBJIG1lYW4sIGtub3cgd2hhdCBJIG1lYW4/CisgICAgICAgICAgICAiIiIpLmVuY29kZSgnbGF0aW4xJykKKyAgICAgICAgbXNnID0gbWVzc2FnZV9mcm9tX2J5dGVzKHNvdXJjZSkKKyAgICAgICAgZXhwZWN0ZWQgPSAgdGV4dHdyYXAuZGVkZW50KCIiIlwKKyAgICAgICAgICAgIEZyb206IGZvb0BiYXIuY29tCisgICAgICAgICAgICBUbzogRGluc2RhbGUKKyAgICAgICAgICAgIFN1YmplY3Q6IE51ZGdlIG51ZGdlLCB3aW5rLCB3aW5rCisgICAgICAgICAgICBNaW1lLVZlcnNpb246IDEuMAorICAgICAgICAgICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgorICAgICAgICAgICAgQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQorCisgICAgICAgICAgICBvaCBsPUUwIGw9RTAsIGtub3cgd2hhdCBJIG1lYW4sIGtub3cgd2hhdCBJIG1lYW4/CisgICAgICAgICAgICAiIiIpLmVuY29kZSgnYXNjaWknKQorICAgICAgICBzID0gaW8uQnl0ZXNJTygpCisgICAgICAgIGcgPSBCeXRlc0dlbmVyYXRvcihzLCBwb2xpY3k9c2VsZi5wb2xpY3kuY2xvbmUoY3RlX3R5cGU9JzdiaXQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzZXA9J1xuJykpCisgICAgICAgIGcuZmxhdHRlbihtc2cpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCBleHBlY3RlZCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X2hlYWRlcnJlZ2lzdHJ5LnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X2hlYWRlcnJlZ2lzdHJ5LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmViYTgxZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfaGVhZGVycmVnaXN0cnkucHkKQEAgLTAsMCArMSwxNTE1IEBACitpbXBvcnQgZGF0ZXRpbWUKK2ltcG9ydCB0ZXh0d3JhcAoraW1wb3J0IHVuaXR0ZXN0Citmcm9tIGVtYWlsIGltcG9ydCBlcnJvcnMKK2Zyb20gZW1haWwgaW1wb3J0IHBvbGljeQorZnJvbSBlbWFpbC5tZXNzYWdlIGltcG9ydCBNZXNzYWdlCitmcm9tIHRlc3QudGVzdF9lbWFpbCBpbXBvcnQgVGVzdEVtYWlsQmFzZSwgcGFyYW1ldGVyaXplCitmcm9tIGVtYWlsIGltcG9ydCBoZWFkZXJyZWdpc3RyeQorZnJvbSBlbWFpbC5oZWFkZXJyZWdpc3RyeSBpbXBvcnQgQWRkcmVzcywgR3JvdXAKKworCitESVRUTyA9IG9iamVjdCgpCisKKworY2xhc3MgVGVzdEhlYWRlclJlZ2lzdHJ5KFRlc3RFbWFpbEJhc2UpOgorCisgICAgZGVmIHRlc3RfYXJiaXRyYXJ5X25hbWVfdW5zdHJ1Y3R1cmVkKHNlbGYpOgorICAgICAgICBmYWN0b3J5ID0gaGVhZGVycmVnaXN0cnkuSGVhZGVyUmVnaXN0cnkoKQorICAgICAgICBoID0gZmFjdG9yeSgnZm9vYmFyJywgJ3Rlc3QnKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaCwgaGVhZGVycmVnaXN0cnkuQmFzZUhlYWRlcikKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGgsIGhlYWRlcnJlZ2lzdHJ5LlVuc3RydWN0dXJlZEhlYWRlcikKKworICAgIGRlZiB0ZXN0X25hbWVfY2FzZV9pZ25vcmVkKHNlbGYpOgorICAgICAgICBmYWN0b3J5ID0gaGVhZGVycmVnaXN0cnkuSGVhZGVyUmVnaXN0cnkoKQorICAgICAgICAjIFdoaXRlYm94IGNoZWNrIHRoYXQgdGVzdCBpcyB2YWxpZAorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdTdWJqZWN0JywgZmFjdG9yeS5yZWdpc3RyeSkKKyAgICAgICAgaCA9IGZhY3RvcnkoJ1N1YmplY3QnLCAndGVzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShoLCBoZWFkZXJyZWdpc3RyeS5CYXNlSGVhZGVyKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaCwgaGVhZGVycmVnaXN0cnkuVW5pcXVlVW5zdHJ1Y3R1cmVkSGVhZGVyKQorCisgICAgY2xhc3MgRm9vQmFzZToKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0X292ZXJyaWRlX2RlZmF1bHRfYmFzZV9jbGFzcyhzZWxmKToKKyAgICAgICAgZmFjdG9yeSA9IGhlYWRlcnJlZ2lzdHJ5LkhlYWRlclJlZ2lzdHJ5KGJhc2VfY2xhc3M9c2VsZi5Gb29CYXNlKQorICAgICAgICBoID0gZmFjdG9yeSgnZm9vYmFyJywgJ3Rlc3QnKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaCwgc2VsZi5Gb29CYXNlKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaCwgaGVhZGVycmVnaXN0cnkuVW5zdHJ1Y3R1cmVkSGVhZGVyKQorCisgICAgY2xhc3MgRm9vRGVmYXVsdDoKKyAgICAgICAgcGFyc2UgPSBoZWFkZXJyZWdpc3RyeS5VbnN0cnVjdHVyZWRIZWFkZXIucGFyc2UKKworICAgIGRlZiB0ZXN0X292ZXJyaWRlX2RlZmF1bHRfY2xhc3Moc2VsZik6CisgICAgICAgIGZhY3RvcnkgPSBoZWFkZXJyZWdpc3RyeS5IZWFkZXJSZWdpc3RyeShkZWZhdWx0X2NsYXNzPXNlbGYuRm9vRGVmYXVsdCkKKyAgICAgICAgaCA9IGZhY3RvcnkoJ2Zvb2JhcicsICd0ZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGgsIGhlYWRlcnJlZ2lzdHJ5LkJhc2VIZWFkZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShoLCBzZWxmLkZvb0RlZmF1bHQpCisKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9kZWZhdWx0X2NsYXNzX29ubHlfb3ZlcnJpZGVzX2RlZmF1bHQoc2VsZik6CisgICAgICAgIGZhY3RvcnkgPSBoZWFkZXJyZWdpc3RyeS5IZWFkZXJSZWdpc3RyeShkZWZhdWx0X2NsYXNzPXNlbGYuRm9vRGVmYXVsdCkKKyAgICAgICAgaCA9IGZhY3RvcnkoJ3N1YmplY3QnLCAndGVzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShoLCBoZWFkZXJyZWdpc3RyeS5CYXNlSGVhZGVyKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaCwgaGVhZGVycmVnaXN0cnkuVW5pcXVlVW5zdHJ1Y3R1cmVkSGVhZGVyKQorCisgICAgZGVmIHRlc3RfZG9udF91c2VfZGVmYXVsdF9tYXAoc2VsZik6CisgICAgICAgIGZhY3RvcnkgPSBoZWFkZXJyZWdpc3RyeS5IZWFkZXJSZWdpc3RyeSh1c2VfZGVmYXVsdF9tYXA9RmFsc2UpCisgICAgICAgIGggPSBmYWN0b3J5KCdzdWJqZWN0JywgJ3Rlc3QnKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaCwgaGVhZGVycmVnaXN0cnkuQmFzZUhlYWRlcikKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGgsIGhlYWRlcnJlZ2lzdHJ5LlVuc3RydWN0dXJlZEhlYWRlcikKKworICAgIGRlZiB0ZXN0X21hcF90b190eXBlKHNlbGYpOgorICAgICAgICBmYWN0b3J5ID0gaGVhZGVycmVnaXN0cnkuSGVhZGVyUmVnaXN0cnkoKQorICAgICAgICBoMSA9IGZhY3RvcnkoJ2Zvb2JhcicsICd0ZXN0JykKKyAgICAgICAgZmFjdG9yeS5tYXBfdG9fdHlwZSgnZm9vYmFyJywgaGVhZGVycmVnaXN0cnkuVW5pcXVlVW5zdHJ1Y3R1cmVkSGVhZGVyKQorICAgICAgICBoMiA9IGZhY3RvcnkoJ2Zvb2JhcicsICd0ZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGgxLCBoZWFkZXJyZWdpc3RyeS5CYXNlSGVhZGVyKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaDEsIGhlYWRlcnJlZ2lzdHJ5LlVuc3RydWN0dXJlZEhlYWRlcikKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGgyLCBoZWFkZXJyZWdpc3RyeS5CYXNlSGVhZGVyKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaDIsIGhlYWRlcnJlZ2lzdHJ5LlVuaXF1ZVVuc3RydWN0dXJlZEhlYWRlcikKKworCitjbGFzcyBUZXN0SGVhZGVyQmFzZShUZXN0RW1haWxCYXNlKToKKworICAgIGZhY3RvcnkgPSBoZWFkZXJyZWdpc3RyeS5IZWFkZXJSZWdpc3RyeSgpCisKKyAgICBkZWYgbWFrZV9oZWFkZXIoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICByZXR1cm4gc2VsZi5mYWN0b3J5KG5hbWUsIHZhbHVlKQorCisKK2NsYXNzIFRlc3RCYXNlSGVhZGVyRmVhdHVyZXMoVGVzdEhlYWRlckJhc2UpOgorCisgICAgZGVmIHRlc3Rfc3RyKHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignc3ViamVjdCcsICd0aGlzIGlzIGEgdGVzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShoLCBzdHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaCwgJ3RoaXMgaXMgYSB0ZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoaCksICd0aGlzIGlzIGEgdGVzdCcpCisKKyAgICBkZWYgdGVzdF9zdWJzdHIoc2VsZik6CisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdzdWJqZWN0JywgJ3RoaXMgaXMgYSB0ZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoWzU6N10sICdpcycpCisKKyAgICBkZWYgdGVzdF9oYXNfbmFtZShzZWxmKToKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ3N1YmplY3QnLCAndGhpcyBpcyBhIHRlc3QnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgubmFtZSwgJ3N1YmplY3QnKQorCisgICAgZGVmIF90ZXN0X2F0dHJfcm8oc2VsZiwgYXR0cik6CisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdzdWJqZWN0JywgJ3RoaXMgaXMgYSB0ZXN0JykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBzZXRhdHRyKGgsIGF0dHIsICdmb28nKQorCisgICAgZGVmIHRlc3RfbmFtZV9yZWFkX29ubHkoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfYXR0cl9ybygnbmFtZScpCisKKyAgICBkZWYgdGVzdF9kZWZlY3RzX3JlYWRfb25seShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9hdHRyX3JvKCdkZWZlY3RzJykKKworICAgIGRlZiB0ZXN0X2RlZmVjdHNfaXNfdHVwbGUoc2VsZik6CisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdzdWJqZWN0JywgJ3RoaXMgaXMgYSB0ZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oaC5kZWZlY3RzKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGguZGVmZWN0cywgdHVwbGUpCisgICAgICAgICMgTWFrZSBzdXJlIGl0IGlzIHN0aWxsIHRydWUgd2hlbiB0aGVyZSBhcmUgZGVmZWN0cy4KKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ2RhdGUnLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oaC5kZWZlY3RzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGguZGVmZWN0cywgdHVwbGUpCisKKyAgICAjIFhYWDogRklYTUUKKyAgICAjZGVmIHRlc3RfQ1JfaW5fdmFsdWUoc2VsZik6CisgICAgIyAgICAjIFhYWDogdGhpcyBhbHNvIHJlLXJhaXNlcyB0aGUgaXNzdWUgb2YgZW1iZWRkZWQgaGVhZGVycywKKyAgICAjICAgICMgbmVlZCB0ZXN0IGFuZCBzb2x1dGlvbiBmb3IgdGhhdC4KKyAgICAjICAgIHZhbHVlID0gJ1xyJy5qb2luKFsndGhpcyBpcycsICcgYSB0ZXN0J10pCisgICAgIyAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignc3ViamVjdCcsIHZhbHVlKQorICAgICMgICAgc2VsZi5hc3NlcnRFcXVhbChoLCB2YWx1ZSkKKyAgICAjICAgIHNlbGYuYXNzZXJ0RGVmZWN0c0VxdWFsKGguZGVmZWN0cywgW2Vycm9ycy5PYnNvbGV0ZUhlYWRlckRlZmVjdF0pCisKKyAgICBkZWYgdGVzdF9SRkMyMDQ3X3ZhbHVlX2RlY29kZWQoc2VsZik6CisgICAgICAgIHZhbHVlID0gJz0/dXRmLTg/cT90aGlzX2lzX2FfdGVzdD89JworICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignc3ViamVjdCcsIHZhbHVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgsICd0aGlzIGlzIGEgdGVzdCcpCisKKworY2xhc3MgVGVzdERhdGVIZWFkZXIoVGVzdEhlYWRlckJhc2UpOgorCisgICAgZGF0ZXN0cmluZyA9ICdTdW4sIDIzIFNlcCAyMDAxIDIwOjEwOjU1IC0wNzAwJworICAgIHV0Y29mZnNldCA9IGRhdGV0aW1lLnRpbWVkZWx0YShob3Vycz0tNykKKyAgICB0eiA9IGRhdGV0aW1lLnRpbWV6b25lKHV0Y29mZnNldCkKKyAgICBkdCA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMDEsIDksIDIzLCAyMCwgMTAsIDU1LCB0emluZm89dHopCisKKyAgICBkZWYgdGVzdF9wYXJzZV9kYXRlKHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignZGF0ZScsIHNlbGYuZGF0ZXN0cmluZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLCBzZWxmLmRhdGVzdHJpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5kYXRldGltZSwgc2VsZi5kdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmRhdGV0aW1lLnV0Y29mZnNldCgpLCBzZWxmLnV0Y29mZnNldCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmRlZmVjdHMsICgpKQorCisgICAgZGVmIHRlc3Rfc2V0X2Zyb21fZGF0ZXRpbWUoc2VsZik6CisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdkYXRlJywgc2VsZi5kdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLCBzZWxmLmRhdGVzdHJpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5kYXRldGltZSwgc2VsZi5kdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmRlZmVjdHMsICgpKQorCisgICAgZGVmIHRlc3RfZGF0ZV9oZWFkZXJfcHJvcGVydGllcyhzZWxmKToKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ2RhdGUnLCBzZWxmLmRhdGVzdHJpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShoLCBoZWFkZXJyZWdpc3RyeS5VbmlxdWVEYXRlSGVhZGVyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgubWF4X2NvdW50LCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZGVmZWN0cywgKCkpCisKKyAgICBkZWYgdGVzdF9yZXNlbnRfZGF0ZV9oZWFkZXJfcHJvcGVydGllcyhzZWxmKToKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ3Jlc2VudC1kYXRlJywgc2VsZi5kYXRlc3RyaW5nKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaCwgaGVhZGVycmVnaXN0cnkuRGF0ZUhlYWRlcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLm1heF9jb3VudCwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmRlZmVjdHMsICgpKQorCisgICAgZGVmIHRlc3Rfbm9fdmFsdWVfaXNfZGVmZWN0KHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignZGF0ZScsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihoLmRlZmVjdHMpLCAxKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaC5kZWZlY3RzWzBdLCBlcnJvcnMuSGVhZGVyTWlzc2luZ1JlcXVpcmVkVmFsdWUpCisKKyAgICBkZWYgdGVzdF9kYXRldGltZV9yZWFkX29ubHkoc2VsZik6CisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdkYXRlJywgc2VsZi5kYXRlc3RyaW5nKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIGguZGF0ZXRpbWUgPSAnZm9vJworCisgICAgZGVmIHRlc3Rfc2V0X2RhdGVfaGVhZGVyX2Zyb21fZGF0ZXRpbWUoc2VsZik6CisgICAgICAgIG0gPSBNZXNzYWdlKHBvbGljeT1wb2xpY3kuZGVmYXVsdCkKKyAgICAgICAgbVsnRGF0ZSddID0gc2VsZi5kdAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bJ0RhdGUnXSwgc2VsZi5kYXRlc3RyaW5nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bJ0RhdGUnXS5kYXRldGltZSwgc2VsZi5kdCkKKworCitAcGFyYW1ldGVyaXplCitjbGFzcyBUZXN0Q29udGVudFR5cGVIZWFkZXIoVGVzdEhlYWRlckJhc2UpOgorCisgICAgZGVmIGNvbnRlbnRfdHlwZV9hc192YWx1ZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFpbnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmFyZ3MpOgorICAgICAgICBsID0gbGVuKGFyZ3MpCisgICAgICAgIHBhcm1kaWN0ID0gYXJnc1swXSBpZiBsPjAgZWxzZSB7fQorICAgICAgICBkZWZlY3RzID0gIGFyZ3NbMV0gaWYgbD4xIGVsc2UgW10KKyAgICAgICAgZGVjb2RlZCA9ICBhcmdzWzJdIGlmIGw+MiBhbmQgYXJnc1syXSBpcyBub3QgRElUVE8gZWxzZSBzb3VyY2UKKyAgICAgICAgaGVhZGVyID0gJ0NvbnRlbnQtVHlwZTonICsgJyAnIGlmIHNvdXJjZSBlbHNlICcnCisgICAgICAgIGZvbGRlZCA9IGFyZ3NbM10gaWYgbD4zIGVsc2UgaGVhZGVyICsgc291cmNlICsgJ1xuJworICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignQ29udGVudC1UeXBlJywgc291cmNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguY29udGVudF90eXBlLCBjb250ZW50X3R5cGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5tYWludHlwZSwgbWFpbnR5cGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5zdWJ0eXBlLCBzdWJ0eXBlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgucGFyYW1zLCBwYXJtZGljdCkKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwoaC5kZWZlY3RzLCBkZWZlY3RzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgsIGRlY29kZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5mb2xkKHBvbGljeT1wb2xpY3kuZGVmYXVsdCksIGZvbGRlZCkKKworICAgIGNvbnRlbnRfdHlwZV9wYXJhbXMgPSB7CisKKyAgICAgICAgIyBFeGFtcGxlcyBmcm9tIFJGQyAyMDQ1LgorCisgICAgICAgICdSRkNfMjA0NV8xJzogKAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkgKFBsYWluIHRleHQpJywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2NoYXJzZXQnOiAndXMtYXNjaWknfSwKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IGNoYXJzZXQ9InVzLWFzY2lpIicpLAorCisgICAgICAgICdSRkNfMjA0NV8yJzogKAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWknLAorICAgICAgICAgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3RleHQnLAorICAgICAgICAgICAgJ3BsYWluJywKKyAgICAgICAgICAgIHsnY2hhcnNldCc6ICd1cy1hc2NpaSd9LAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAndGV4dC9wbGFpbjsgY2hhcnNldD0idXMtYXNjaWkiJyksCisKKyAgICAgICAgJ1JGQ18yMDQ1XzMnOiAoCisgICAgICAgICAgICAndGV4dC9wbGFpbjsgY2hhcnNldD0idXMtYXNjaWkiJywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2NoYXJzZXQnOiAndXMtYXNjaWknfSksCisKKyAgICAgICAgIyBSRkMgMjA0NSA1LjIgc2F5cyBzeW50YWN0aWNhbGx5IGludmFsaWQgdmFsdWVzIGFyZSB0byBiZSB0cmVhdGVkIGFzCisgICAgICAgICMgdGV4dC9wbGFpbi4KKworICAgICAgICAnbm9fc3VidHlwZV9pbl9jb250ZW50X3R5cGUnOiAoCisgICAgICAgICAgICAndGV4dC8nLAorICAgICAgICAgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3RleHQnLAorICAgICAgICAgICAgJ3BsYWluJywKKyAgICAgICAgICAgIHt9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSksCisKKyAgICAgICAgJ25vX3NsYXNoX2luX2NvbnRlbnRfdHlwZSc6ICgKKyAgICAgICAgICAgICdmb28nLAorICAgICAgICAgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3RleHQnLAorICAgICAgICAgICAgJ3BsYWluJywKKyAgICAgICAgICAgIHt9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSksCisKKyAgICAgICAgJ2p1bmtfdGV4dF9pbl9jb250ZW50X3R5cGUnOiAoCisgICAgICAgICAgICAnPGNyYXp5ICJzdHVmZiI+JywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7fSwKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0pLAorCisgICAgICAgICd0b29fbWFueV9zbGFzaGVzX2luX2NvbnRlbnRfdHlwZSc6ICgKKyAgICAgICAgICAgICdpbWFnZS9qcGVnL2ZvbycsCisgICAgICAgICAgICAndGV4dC9wbGFpbicsCisgICAgICAgICAgICAndGV4dCcsCisgICAgICAgICAgICAncGxhaW4nLAorICAgICAgICAgICAge30sCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKSwKKworICAgICAgICAjIEJ1dCB1bmtub3duIG5hbWVzIGFyZSBPSy4gIFdlIGNvdWxkIG1ha2Ugbm9uLUlBTkEgbmFtZXMgYSBkZWZlY3QsIGJ1dAorICAgICAgICAjIGJ5IG5vdCBkb2luZyBzbyB3ZSBtYWtlIG91cnNlbHZlcyBmdXR1cmUgcHJvb2YuICBUaGUgZmFjdCB0aGF0IHRoZXkKKyAgICAgICAgIyBhcmUgdW5rbm93biB3aWxsIGJlIGRldGVjdGFibGUgYnkgdGhlIGZhY3QgdGhhdCB0aGV5IGRvbid0IGFwcGVhciBpbgorICAgICAgICAjIHRoZSBtaW1lX3JlZ2lzdHJ5Li4uYW5kIHRoZSBhcHBsaWNhdGlvbiBpcyBmcmVlIHRvIGV4dGVuZCB0aGF0IGxpc3QKKyAgICAgICAgIyB0byBoYW5kbGUgdGhlbSBldmVuIGlmIHRoZSBjb3JlIGxpYnJhcnkgZG9lc24ndC4KKworICAgICAgICAndW5rbm93bl9jb250ZW50X3R5cGUnOiAoCisgICAgICAgICAgICAnYmFkL25hbWVzJywKKyAgICAgICAgICAgICdiYWQvbmFtZXMnLAorICAgICAgICAgICAgJ2JhZCcsCisgICAgICAgICAgICAnbmFtZXMnKSwKKworICAgICAgICAjIFRoZSBjb250ZW50IHR5cGUgaXMgY2FzZSBpbnNlbnNpdGl2ZSwgYW5kIENGV1MgaXMgaWdub3JlZC4KKworICAgICAgICAnbWl4ZWRfY2FzZV9jb250ZW50X3R5cGUnOiAoCisgICAgICAgICAgICAnSW1BZ2UvSlBlZycsCisgICAgICAgICAgICAnaW1hZ2UvanBlZycsCisgICAgICAgICAgICAnaW1hZ2UnLAorICAgICAgICAgICAgJ2pwZWcnKSwKKworICAgICAgICAnc3BhY2VzX2luX2NvbnRlbnRfdHlwZSc6ICgKKyAgICAgICAgICAgICcgIHRleHQgIC8gIHBsYWluICAnLAorICAgICAgICAgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3RleHQnLAorICAgICAgICAgICAgJ3BsYWluJyksCisKKyAgICAgICAgJ2Nmd3NfaW5fY29udGVudF90eXBlJzogKAorICAgICAgICAgICAgJyhmb28pIHRleHQgKGJhcikvKGJheilwbGFpbihzdHVmZiknLAorICAgICAgICAgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3RleHQnLAorICAgICAgICAgICAgJ3BsYWluJyksCisKKyAgICAgICAgIyB0ZXN0IHNvbWUgcGFyYW1ldGVycyAobW9yZSB0ZXN0cyBjb3VsZCBiZSBhZGRlZCBmb3IgcGFyYW1ldGVycworICAgICAgICAjIGFzc29jaWF0ZWQgd2l0aCBvdGhlciBjb250ZW50IHR5cGVzLCBidXQgc2luY2UgcGFyYW1ldGVyIHBhcnNpbmcgaXMKKyAgICAgICAgIyBnZW5lcmljIHRoZXkgd291bGQgYmUgcmVkdW5kYW50IGZvciB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbikuCisKKyAgICAgICAgJ2NoYXJzZXRfcGFyYW0nOiAoCisgICAgICAgICAgICAndGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiJywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2NoYXJzZXQnOiAndXRmLTgnfSksCisKKyAgICAgICAgJ2NhcGl0YWxpemVkX2NoYXJzZXQnOiAoCisgICAgICAgICAgICAndGV4dC9wbGFpbjsgY2hhcnNldD0iVVMtQVNDSUkiJywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2NoYXJzZXQnOiAnVVMtQVNDSUknfSksCisKKyAgICAgICAgJ3Vua25vd25fY2hhcnNldCc6ICgKKyAgICAgICAgICAgICd0ZXh0L3BsYWluOyBjaGFyc2V0PSJmT28iJywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2NoYXJzZXQnOiAnZk9vJ30pLAorCisgICAgICAgICdjYXBpdGFsaXplZF9jaGFyc2V0X3BhcmFtX25hbWVfYW5kX2NvbW1lbnQnOiAoCisgICAgICAgICAgICAndGV4dC9wbGFpbjsgKGludGVyamVjdGlvbikgQ2hhcnNldD0idXRmLTgiJywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2NoYXJzZXQnOiAndXRmLTgnfSwKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgIyBTaG91bGQgdGhlIHBhcmFtZXRlciBuYW1lIGJlIGxvd2VyY2FzZWQgaGVyZT8KKyAgICAgICAgICAgICd0ZXh0L3BsYWluOyBDaGFyc2V0PSJ1dGYtOCInKSwKKworICAgICAgICAjIFNpbmNlIHRoaXMgaXMgcHJldHR5IG11Y2ggdGhlIHVyLW1pbWVoZWFkZXIsIHdlJ2xsIHB1dCBhbGwgdGhlIHRlc3RzCisgICAgICAgICMgdGhhdCBleGVyY2lzZSB0aGUgcGFyYW1ldGVyIHBhcnNpbmcgYW5kIGZvcm1hdHRpbmcgaGVyZS4KKyAgICAgICAgIworICAgICAgICAjIFhYWDogcXVlc3Rpb246IGlzIG1pbmltYWwgcXVvdGluZyBwcmVmZXJyZWQ/CisKKyAgICAgICAgJ3VucXVvdGVkX3BhcmFtX3ZhbHVlJzogKAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IHRpdGxlPWZvbycsCisgICAgICAgICAgICAndGV4dC9wbGFpbicsCisgICAgICAgICAgICAndGV4dCcsCisgICAgICAgICAgICAncGxhaW4nLAorICAgICAgICAgICAgeyd0aXRsZSc6ICdmb28nfSwKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IHRpdGxlPSJmb28iJyksCisKKyAgICAgICAgJ3BhcmFtX3ZhbHVlX3dpdGhfdHNwZWNpYWxzJzogKAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IHRpdGxlPSIoYmFyKWZvbyBibHVlIicsCisgICAgICAgICAgICAndGV4dC9wbGFpbicsCisgICAgICAgICAgICAndGV4dCcsCisgICAgICAgICAgICAncGxhaW4nLAorICAgICAgICAgICAgeyd0aXRsZSc6ICcoYmFyKWZvbyBibHVlJ30pLAorCisgICAgICAgICdwYXJhbV93aXRoX2V4dHJhX3F1b3RlZF93aGl0ZXNwYWNlJzogKAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IHRpdGxlPSIgIGEgICAgIGxvb25nICB3YXkgXHQgaG9tZSAgICInLAorICAgICAgICAgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3RleHQnLAorICAgICAgICAgICAgJ3BsYWluJywKKyAgICAgICAgICAgIHsndGl0bGUnOiAnICBhICAgICBsb29uZyAgd2F5IFx0IGhvbWUgICAnfSksCisKKyAgICAgICAgJ2JhZF9wYXJhbXMnOiAoCisgICAgICAgICAgICAnYmxhcmc7IGJhejsgYm9vJywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2Jheic6ICcnLCAnYm9vJzogJyd9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSozKSwKKworICAgICAgICAnc3BhY2VzX2Fyb3VuZF9wYXJhbV9lcXVhbHMnOiAoCisgICAgICAgICAgICAnTXVsdGlwYXJ0L21peGVkOyBib3VuZGFyeSA9ICJDUElNU1NNVFBDMDZwNWYzdEciJywKKyAgICAgICAgICAgICdtdWx0aXBhcnQvbWl4ZWQnLAorICAgICAgICAgICAgJ211bHRpcGFydCcsCisgICAgICAgICAgICAnbWl4ZWQnLAorICAgICAgICAgICAgeydib3VuZGFyeSc6ICdDUElNU1NNVFBDMDZwNWYzdEcnfSwKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJ011bHRpcGFydC9taXhlZDsgYm91bmRhcnk9IkNQSU1TU01UUEMwNnA1ZjN0RyInKSwKKworICAgICAgICAnc3BhY2VzX2Fyb3VuZF9zZW1pcyc6ICgKKyAgICAgICAgICAgICgnaW1hZ2UvanBlZzsgbmFtZT0id2liYmxlLkpQRyIgOyB4LW1hYy10eXBlPSI0QTUwNDU0NyIgOyAnCisgICAgICAgICAgICAgICAgJ3gtbWFjLWNyZWF0b3I9IjQ3NEI0RjRFIicpLAorICAgICAgICAgICAgJ2ltYWdlL2pwZWcnLAorICAgICAgICAgICAgJ2ltYWdlJywKKyAgICAgICAgICAgICdqcGVnJywKKyAgICAgICAgICAgIHsnbmFtZSc6ICd3aWJibGUuSlBHJywKKyAgICAgICAgICAgICAneC1tYWMtdHlwZSc6ICc0QTUwNDU0NycsCisgICAgICAgICAgICAgJ3gtbWFjLWNyZWF0b3InOiAnNDc0QjRGNEUnfSwKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgKCdpbWFnZS9qcGVnOyBuYW1lPSJ3aWJibGUuSlBHIjsgeC1tYWMtdHlwZT0iNEE1MDQ1NDciOyAnCisgICAgICAgICAgICAgICAgJ3gtbWFjLWNyZWF0b3I9IjQ3NEI0RjRFIicpLAorICAgICAgICAgICAgIyBYWFg6IGl0IGNvdWxkIGJlIHRoYXQgd2Ugd2lsbCBldmVudHVhbGx5IHByZWZlciB0byBmb2xkIHN0YXJ0aW5nCisgICAgICAgICAgICAjIGZyb20gdGhlIGRlY29kZWQgdmFsdWUsIGluIHdoaWNoIGNhc2UgdGhlc2Ugc3BhY2VzIGFuZCBzaW1pbGFyCisgICAgICAgICAgICAjIHNwYWNlcyBpbiBvdGhlciB0ZXN0cyB3aWxsIGJlIHdyb25nLgorICAgICAgICAgICAgKCdDb250ZW50LVR5cGU6IGltYWdlL2pwZWc7IG5hbWU9IndpYmJsZS5KUEciIDsgJworICAgICAgICAgICAgICAgICd4LW1hYy10eXBlPSI0QTUwNDU0NyIgO1xuJworICAgICAgICAgICAgICcgeC1tYWMtY3JlYXRvcj0iNDc0QjRGNEUiXG4nKSwKKyAgICAgICAgICAgICksCisKKyAgICAgICAgJ3NlbWlzX2luc2lkZV9xdW90ZXMnOiAoCisgICAgICAgICAgICAnaW1hZ2UvanBlZzsgbmFtZT0iSmltJmFtcDsmYW1wO0ppbGwiJywKKyAgICAgICAgICAgICdpbWFnZS9qcGVnJywKKyAgICAgICAgICAgICdpbWFnZScsCisgICAgICAgICAgICAnanBlZycsCisgICAgICAgICAgICB7J25hbWUnOiAnSmltJmFtcDsmYW1wO0ppbGwnfSksCisKKyAgICAgICAgJ3NpbmdsZV9xdW90ZXNfaW5zaWRlX3F1b3Rlcyc6ICgKKyAgICAgICAgICAgICdpbWFnZS9qcGVnOyBuYW1lPSJKaW0gXCdCb2JcJyBKaWxsIicsCisgICAgICAgICAgICAnaW1hZ2UvanBlZycsCisgICAgICAgICAgICAnaW1hZ2UnLAorICAgICAgICAgICAgJ2pwZWcnLAorICAgICAgICAgICAgeyduYW1lJzogIkppbSAnQm9iJyBKaWxsIn0pLAorCisgICAgICAgICdkb3VibGVfcXVvdGVzX2luc2lkZV9xdW90ZXMnOiAoCisgICAgICAgICAgICByJ2ltYWdlL2pwZWc7IG5hbWU9IkppbSBcIkJvYlwiIEppbGwiJywKKyAgICAgICAgICAgICdpbWFnZS9qcGVnJywKKyAgICAgICAgICAgICdpbWFnZScsCisgICAgICAgICAgICAnanBlZycsCisgICAgICAgICAgICB7J25hbWUnOiAnSmltICJCb2IiIEppbGwnfSwKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgcidpbWFnZS9qcGVnOyBuYW1lPSJKaW0gXCJCb2JcIiBKaWxsIicpLAorCisgICAgICAgICMgWFhYOiBUaGlzIHRlc3Qgd29ya3MgZXhjZXB0IGZvciB0aGUgcmVmb2xkaW5nIG9mIHRoZSBoZWFkZXIuICBJJ2xsCisgICAgICAgICMgZGVhbCB3aXRoIHRoYXQgYnVnIHdoZW4gSSBkZWFsIHdpdGggdGhlIG90aGVyIGZvbGRpbmcgYnVncy4KKyAgICAgICAgIydub25fYXNjaWlfaW5fcGFyYW1zJzogKAorICAgICAgICAjICAgICgnZm9vXHhhNy9iYXI7IGJceGE3cj10d287ICcKKyAgICAgICAgIyAgICAgICAgJ2Jhej10aHJceGE3ZScuZW5jb2RlKCdsYXRpbi0xJykuZGVjb2RlKCd1cy1hc2NpaScsCisgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3Vycm9nYXRlZXNjYXBlJykpLAorICAgICAgICAjICAgICdmb29cdUZGRkQvYmFyJywKKyAgICAgICAgIyAgICAnZm9vXHVGRkZEJywKKyAgICAgICAgIyAgICAnYmFyJywKKyAgICAgICAgIyAgICB7J2JcdUZGRkRyJzogJ3R3bycsICdiYXonOiAndGhyXHVGRkZEZSd9LAorICAgICAgICAjICAgIFtlcnJvcnMuVW5kZWNvZGFibGVCeXRlc0RlZmVjdF0qMywKKyAgICAgICAgIyAgICAnZm9v77+9L2JhcjsgYu+/vXI9InR3byI7IGJhej0idGhy77+9ZSInLAorICAgICAgICAjICAgICksCisKKyAgICAgICAgIyBSRkMgMjIzMSBwYXJhbWV0ZXIgdGVzdHMuCisKKyAgICAgICAgJ3JmYzIyMzFfc2VnbWVudGVkX25vcm1hbF92YWx1ZXMnOiAoCisgICAgICAgICAgICAnaW1hZ2UvanBlZzsgbmFtZSowPSJhYmMiOyBuYW1lKjE9Ii5odG1sIicsCisgICAgICAgICAgICAnaW1hZ2UvanBlZycsCisgICAgICAgICAgICAnaW1hZ2UnLAorICAgICAgICAgICAgJ2pwZWcnLAorICAgICAgICAgICAgeyduYW1lJzogImFiYy5odG1sIn0sCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICdpbWFnZS9qcGVnOyBuYW1lPSJhYmMuaHRtbCInKSwKKworICAgICAgICAncXVvdGVzX2luc2lkZV9yZmMyMjMxX3ZhbHVlJzogKAorICAgICAgICAgICAgcidpbWFnZS9qcGVnOyBiYXIqMD0iYmF6XCJmb29iYXIiOyBiYXIqMT0iXCJiYXoiJywKKyAgICAgICAgICAgICdpbWFnZS9qcGVnJywKKyAgICAgICAgICAgICdpbWFnZScsCisgICAgICAgICAgICAnanBlZycsCisgICAgICAgICAgICB7J2Jhcic6ICdiYXoiZm9vYmFyImJheid9LAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICByJ2ltYWdlL2pwZWc7IGJhcj0iYmF6XCJmb29iYXJcImJheiInKSwKKworICAgICAgICAjIFhYWDogVGhpcyB0ZXN0IHdvcmtzIGV4Y2VwdCBmb3IgdGhlIHJlZm9sZGluZyBvZiB0aGUgaGVhZGVyLiAgSSdsbAorICAgICAgICAjIGRlYWwgd2l0aCB0aGF0IGJ1ZyB3aGVuIEkgZGVhbCB3aXRoIHRoZSBvdGhlciBmb2xkaW5nIGJ1Z3MuCisgICAgICAgICMnbm9uX2FzY2lpX3JmYzIyMzFfdmFsdWUnOiAoCisgICAgICAgICMgICAgKCd0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpOyAnCisgICAgICAgICMgICAgICJ0aXRsZSo9dXMtYXNjaWknZW4nVGhpcyUyMGlzJTIwIgorICAgICAgICAjICAgICAnbm90JTIwZlx4YTduJykuZW5jb2RlKCdsYXRpbi0xJykuZGVjb2RlKCd1cy1hc2NpaScsCisgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3Vycm9nYXRlZXNjYXBlJyksCisgICAgICAgICMgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAjICAgICd0ZXh0JywKKyAgICAgICAgIyAgICAncGxhaW4nLAorICAgICAgICAjICAgIHsnY2hhcnNldCc6ICd1cy1hc2NpaScsICd0aXRsZSc6ICdUaGlzIGlzIG5vdCBmXHVGRkZEbid9LAorICAgICAgICAjICAgICBbZXJyb3JzLlVuZGVjb2RhYmxlQnl0ZXNEZWZlY3RdLAorICAgICAgICAjICAgICAndGV4dC9wbGFpbjsgY2hhcnNldD0idXMtYXNjaWkiOyB0aXRsZT0iVGhpcyBpcyBub3QgZu+/vW4iJyksCisKKyAgICAgICAgJ3JmYzIyMzFfZW5jb2RlZF9jaGFyc2V0JzogKAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IGNoYXJzZXQqPWFuc2kteDMuNC0xOTY4XCdcJ3VzLWFzY2lpJywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2NoYXJzZXQnOiAndXMtYXNjaWknfSwKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IGNoYXJzZXQ9InVzLWFzY2lpIicpLAorCisgICAgICAgICMgVGhpcyBmb2xsb3dzIHRoZSBSRkM6IG5vIGRvdWJsZSBxdW90ZXMgYXJvdW5kIGVuY29kZWQgdmFsdWVzLgorICAgICAgICAncmZjMjIzMV9lbmNvZGVkX25vX2RvdWJsZV9xdW90ZXMnOiAoCisgICAgICAgICAgICAoInRleHQvcGxhaW47IgorICAgICAgICAgICAgICAgICJcdG5hbWUqMCo9JydUaGlzJTIwaXMlMjA7IgorICAgICAgICAgICAgICAgICJcdG5hbWUqMSo9JTJBJTJBJTJBZnVuJTJBJTJBJTJBJTIwOyIKKyAgICAgICAgICAgICAgICAnXHRuYW1lKjI9ImlzIGl0IG5vdC5wZGYiJyksCisgICAgICAgICAgICAndGV4dC9wbGFpbicsCisgICAgICAgICAgICAndGV4dCcsCisgICAgICAgICAgICAncGxhaW4nLAorICAgICAgICAgICAgeyduYW1lJzogJ1RoaXMgaXMgKioqZnVuKioqIGlzIGl0IG5vdC5wZGYnfSwKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IG5hbWU9IlRoaXMgaXMgKioqZnVuKioqIGlzIGl0IG5vdC5wZGYiJywKKyAgICAgICAgICAgICgnQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO1x0bmFtZSowKj1cJ1wnVGhpcyUyMGlzJTIwO1xuJworICAgICAgICAgICAgICdcdG5hbWUqMSo9JTJBJTJBJTJBZnVuJTJBJTJBJTJBJTIwO1x0bmFtZSoyPSJpcyBpdCBub3QucGRmIlxuJyksCisgICAgICAgICAgICApLAorCisgICAgICAgICMgTWFrZSBzdXJlIHdlIGFsc28gaGFuZGxlIGl0IGlmIHRoZXJlIGFyZSBzcHVycmlvdXMgZG91YmxlIHFvdXRlcy4KKyAgICAgICAgJ3JmYzIyMzFfZW5jb2RlZF93aXRoX2RvdWJsZV9xdW90ZXMnOiAoCisgICAgICAgICAgICAoInRleHQvcGxhaW47IgorICAgICAgICAgICAgICAgICdcdG5hbWUqMCo9InVzLWFzY2lpXCdcJ1RoaXMlMjBpcyUyMGV2ZW4lMjBtb3JlJTIwIjsnCisgICAgICAgICAgICAgICAgJ1x0bmFtZSoxKj0iJTJBJTJBJTJBZnVuJTJBJTJBJTJBJTIwIjsnCisgICAgICAgICAgICAgICAgJ1x0bmFtZSoyPSJpcyBpdCBub3QucGRmIicpLAorICAgICAgICAgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3RleHQnLAorICAgICAgICAgICAgJ3BsYWluJywKKyAgICAgICAgICAgIHsnbmFtZSc6ICdUaGlzIGlzIGV2ZW4gbW9yZSAqKipmdW4qKiogaXMgaXQgbm90LnBkZid9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSoyLAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IG5hbWU9IlRoaXMgaXMgZXZlbiBtb3JlICoqKmZ1bioqKiBpcyBpdCBub3QucGRmIicsCisgICAgICAgICAgICAoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtcdCcKKyAgICAgICAgICAgICAgICAnbmFtZSowKj0idXMtYXNjaWlcJ1wnVGhpcyUyMGlzJTIwZXZlbiUyMG1vcmUlMjAiO1xuJworICAgICAgICAgICAgICdcdG5hbWUqMSo9IiUyQSUyQSUyQWZ1biUyQSUyQSUyQSUyMCI7XHRuYW1lKjI9ImlzIGl0IG5vdC5wZGYiXG4nKSwKKyAgICAgICAgICAgICksCisKKyAgICAgICAgJ3JmYzIyMzFfc2luZ2xlX3F1b3RlX2luc2lkZV9kb3VibGVfcXVvdGVzJzogKAorICAgICAgICAgICAgKCd0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpOycKKyAgICAgICAgICAgICAgICdcdHRpdGxlKjAqPSJ1cy1hc2NpaVwnZW5cJ1RoaXMlMjBpcyUyMHJlYWxseSUyMCI7JworICAgICAgICAgICAgICAgJ1x0dGl0bGUqMSo9IiUyQSUyQSUyQWZ1biUyQSUyQSUyQSUyMCI7JworICAgICAgICAgICAgICAgJ1x0dGl0bGUqMj0iaXNuXCd0IGl0ISInKSwKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2NoYXJzZXQnOiAndXMtYXNjaWknLCAndGl0bGUnOiAiVGhpcyBpcyByZWFsbHkgKioqZnVuKioqIGlzbid0IGl0ISJ9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSoyLAorICAgICAgICAgICAgKCd0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1cy1hc2NpaSI7ICcKKyAgICAgICAgICAgICAgICd0aXRsZT0iVGhpcyBpcyByZWFsbHkgKioqZnVuKioqIGlzblwndCBpdCEiJyksCisgICAgICAgICAgICAoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaTtcbicKKyAgICAgICAgICAgICAnXHR0aXRsZSowKj0idXMtYXNjaWlcJ2VuXCdUaGlzJTIwaXMlMjByZWFsbHklMjAiO1xuJworICAgICAgICAgICAgICdcdHRpdGxlKjEqPSIlMkElMkElMkFmdW4lMkElMkElMkElMjAiO1x0dGl0bGUqMj0iaXNuXCd0IGl0ISJcbicpLAorICAgICAgICAgICAgKSwKKworICAgICAgICAncmZjMjIzMV9zaW5nbGVfcXVvdGVfaW5fdmFsdWVfd2l0aF9jaGFyc2V0X2FuZF9sYW5nJzogKAorICAgICAgICAgICAgKCdhcHBsaWNhdGlvbi94LWZvbzsnCisgICAgICAgICAgICAgICAgIlx0bmFtZSowKj1cInVzLWFzY2lpJ2VuLXVzJ0ZyYW5rJ3NcIjsgbmFtZSoxKj1cIiBEb2N1bWVudFwiIiksCisgICAgICAgICAgICAnYXBwbGljYXRpb24veC1mb28nLAorICAgICAgICAgICAgJ2FwcGxpY2F0aW9uJywKKyAgICAgICAgICAgICd4LWZvbycsCisgICAgICAgICAgICB7J25hbWUnOiAiRnJhbmsncyBEb2N1bWVudCJ9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSoyLAorICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtZm9vOyBuYW1lPSJGcmFua1wncyBEb2N1bWVudCInLAorICAgICAgICAgICAgKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtZm9vO1x0JworICAgICAgICAgICAgICAgICduYW1lKjAqPSJ1cy1hc2NpaVwnZW4tdXNcJ0ZyYW5rXCdzIjtcbicKKyAgICAgICAgICAgICAnIG5hbWUqMSo9IiBEb2N1bWVudCJcbicpLAorICAgICAgICAgICAgKSwKKworICAgICAgICAncmZjMjIzMV9zaW5nbGVfcXVvdGVfaW5fbm9uX2VuY29kZWRfdmFsdWUnOiAoCisgICAgICAgICAgICAoJ2FwcGxpY2F0aW9uL3gtZm9vOycKKyAgICAgICAgICAgICAgICAiXHRuYW1lKjA9XCJ1cy1hc2NpaSdlbi11cydGcmFuaydzXCI7IG5hbWUqMT1cIiBEb2N1bWVudFwiIiksCisgICAgICAgICAgICAnYXBwbGljYXRpb24veC1mb28nLAorICAgICAgICAgICAgJ2FwcGxpY2F0aW9uJywKKyAgICAgICAgICAgICd4LWZvbycsCisgICAgICAgICAgICB7J25hbWUnOiAidXMtYXNjaWknZW4tdXMnRnJhbmsncyBEb2N1bWVudCJ9LAorICAgICAgICAgICAgW10sCisgICAgICAgICAgICAnYXBwbGljYXRpb24veC1mb287IG5hbWU9InVzLWFzY2lpXCdlbi11c1wnRnJhbmtcJ3MgRG9jdW1lbnQiJywKKyAgICAgICAgICAgICgnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LWZvbztcdCcKKyAgICAgICAgICAgICAgICAnbmFtZSowPSJ1cy1hc2NpaVwnZW4tdXNcJ0ZyYW5rXCdzIjtcbicKKyAgICAgICAgICAgICAnIG5hbWUqMT0iIERvY3VtZW50IlxuJyksCisgICAgICAgICAgICAgKSwKKworICAgICAgICAncmZjMjIzMV9ub19sYW5ndWFnZV9vcl9jaGFyc2V0JzogKAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IE5BTUUqMCo9ZW5nbGlzaF9pc190aGVfZGVmYXVsdC5odG1sJywKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J25hbWUnOiAnZW5nbGlzaF9pc190aGVfZGVmYXVsdC5odG1sJ30sCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IE5BTUU9ImVuZ2xpc2hfaXNfdGhlX2RlZmF1bHQuaHRtbCInKSwKKworICAgICAgICAncmZjMjIzMV9lbmNvZGVkX25vX2NoYXJzZXQnOiAoCisgICAgICAgICAgICAoInRleHQvcGxhaW47IgorICAgICAgICAgICAgICAgICdcdG5hbWUqMCo9IlwnXCdUaGlzJTIwaXMlMjBldmVuJTIwbW9yZSUyMCI7JworICAgICAgICAgICAgICAgICdcdG5hbWUqMSo9IiUyQSUyQSUyQWZ1biUyQSUyQSUyQSUyMCI7JworICAgICAgICAgICAgICAgICdcdG5hbWUqMj0iaXMgaXQucGRmIicpLAorICAgICAgICAgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3RleHQnLAorICAgICAgICAgICAgJ3BsYWluJywKKyAgICAgICAgICAgIHsnbmFtZSc6ICdUaGlzIGlzIGV2ZW4gbW9yZSAqKipmdW4qKiogaXMgaXQucGRmJ30sCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKjIsCisgICAgICAgICAgICAndGV4dC9wbGFpbjsgbmFtZT0iVGhpcyBpcyBldmVuIG1vcmUgKioqZnVuKioqIGlzIGl0LnBkZiInLAorICAgICAgICAgICAgKCdDb250ZW50LVR5cGU6IHRleHQvcGxhaW47XHQnCisgICAgICAgICAgICAgICAgJ25hbWUqMCo9IlwnXCdUaGlzJTIwaXMlMjBldmVuJTIwbW9yZSUyMCI7XG4nCisgICAgICAgICAgICAgJ1x0bmFtZSoxKj0iJTJBJTJBJTJBZnVuJTJBJTJBJTJBJTIwIjtcdG5hbWUqMj0iaXMgaXQucGRmIlxuJyksCisgICAgICAgICAgICApLAorCisgICAgICAgICMgWFhYOiBzZWUgYmVsb3cuLi50aGUgZmlyc3QgbmFtZSBsaW5lIGhlcmUgc2hvdWxkIGJlICowIG5vdCAqMCouCisgICAgICAgICdyZmMyMjMxX3BhcnRseV9lbmNvZGVkJzogKAorICAgICAgICAgICAgKCJ0ZXh0L3BsYWluOyIKKyAgICAgICAgICAgICAgICAnXHRuYW1lKjAqPSJcJ1wnVGhpcyUyMGlzJTIwZXZlbiUyMG1vcmUlMjAiOycKKyAgICAgICAgICAgICAgICAnXHRuYW1lKjEqPSIlMkElMkElMkFmdW4lMkElMkElMkElMjAiOycKKyAgICAgICAgICAgICAgICAnXHRuYW1lKjI9ImlzIGl0LnBkZiInKSwKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J25hbWUnOiAnVGhpcyBpcyBldmVuIG1vcmUgKioqZnVuKioqIGlzIGl0LnBkZid9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSoyLAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IG5hbWU9IlRoaXMgaXMgZXZlbiBtb3JlICoqKmZ1bioqKiBpcyBpdC5wZGYiJywKKyAgICAgICAgICAgICgnQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluO1x0JworICAgICAgICAgICAgICAgICduYW1lKjAqPSJcJ1wnVGhpcyUyMGlzJTIwZXZlbiUyMG1vcmUlMjAiO1xuJworICAgICAgICAgICAgICdcdG5hbWUqMSo9IiUyQSUyQSUyQWZ1biUyQSUyQSUyQSUyMCI7XHRuYW1lKjI9ImlzIGl0LnBkZiJcbicpLAorICAgICAgICAgICAgKSwKKworICAgICAgICAncmZjMjIzMV9wYXJ0bHlfZW5jb2RlZF8yJzogKAorICAgICAgICAgICAgKCJ0ZXh0L3BsYWluOyIKKyAgICAgICAgICAgICAgICAnXHRuYW1lKjAqPSJcJ1wnVGhpcyUyMGlzJTIwZXZlbiUyMG1vcmUlMjAiOycKKyAgICAgICAgICAgICAgICAnXHRuYW1lKjE9IiUyQSUyQSUyQWZ1biUyQSUyQSUyQSUyMCI7JworICAgICAgICAgICAgICAgICdcdG5hbWUqMj0iaXMgaXQucGRmIicpLAorICAgICAgICAgICAgJ3RleHQvcGxhaW4nLAorICAgICAgICAgICAgJ3RleHQnLAorICAgICAgICAgICAgJ3BsYWluJywKKyAgICAgICAgICAgIHsnbmFtZSc6ICdUaGlzIGlzIGV2ZW4gbW9yZSAlMkElMkElMkFmdW4lMkElMkElMkElMjBpcyBpdC5wZGYnfSwKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0sCisgICAgICAgICAgICAndGV4dC9wbGFpbjsgbmFtZT0iVGhpcyBpcyBldmVuIG1vcmUgJTJBJTJBJTJBZnVuJTJBJTJBJTJBJTIwaXMgaXQucGRmIicsCisgICAgICAgICAgICAoJ0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjtcdCcKKyAgICAgICAgICAgICAgICAnbmFtZSowKj0iXCdcJ1RoaXMlMjBpcyUyMGV2ZW4lMjBtb3JlJTIwIjtcbicKKyAgICAgICAgICAgICAnXHRuYW1lKjE9IiUyQSUyQSUyQWZ1biUyQSUyQSUyQSUyMCI7XHRuYW1lKjI9ImlzIGl0LnBkZiJcbicpLAorICAgICAgICAgICAgKSwKKworICAgICAgICAncmZjMjIzMV91bmtub3duX2NoYXJzZXRfdHJlYXRlZF9hc19hc2NpaSc6ICgKKyAgICAgICAgICAgICJ0ZXh0L3BsYWluOyBuYW1lKjAqPWJvZ3VzJ3h4J2FzY2lpX2lzX3RoZV9kZWZhdWx0IiwKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J25hbWUnOiAnYXNjaWlfaXNfdGhlX2RlZmF1bHQnfSwKKyAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgJ3RleHQvcGxhaW47IG5hbWU9ImFzY2lpX2lzX3RoZV9kZWZhdWx0IicpLAorCisgICAgICAgICdyZmMyMjMxX2JhZF9jaGFyYWN0ZXJfaW5fY2hhcnNldF9wYXJhbWV0ZXJfdmFsdWUnOiAoCisgICAgICAgICAgICAidGV4dC9wbGFpbjsgY2hhcnNldCo9YXNjaWknJ3V0Zi04JUUyJTgwJTlEIiwKKyAgICAgICAgICAgICd0ZXh0L3BsYWluJywKKyAgICAgICAgICAgICd0ZXh0JywKKyAgICAgICAgICAgICdwbGFpbicsCisgICAgICAgICAgICB7J2NoYXJzZXQnOiAndXRmLThcdUZGRkRcdUZGRkRcdUZGRkQnfSwKKyAgICAgICAgICAgIFtlcnJvcnMuVW5kZWNvZGFibGVCeXRlc0RlZmVjdF0sCisgICAgICAgICAgICAndGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLThcdUZGRkRcdUZGRkRcdUZGRkQiJyksCisKKyAgICAgICAgJ3JmYzIyMzFfZW5jb2RlZF90aGVuX3VuZW5jb2RlZF9zZWdtZW50cyc6ICgKKyAgICAgICAgICAgICgnYXBwbGljYXRpb24veC1mb287JworICAgICAgICAgICAgICAgICdcdG5hbWUqMCo9InVzLWFzY2lpXCdlbi11c1wnTXkiOycKKyAgICAgICAgICAgICAgICAnXHRuYW1lKjE9IiBEb2N1bWVudCI7JworICAgICAgICAgICAgICAgICdcdG5hbWUqMj0iIEZvciBZb3UiJyksCisgICAgICAgICAgICAnYXBwbGljYXRpb24veC1mb28nLAorICAgICAgICAgICAgJ2FwcGxpY2F0aW9uJywKKyAgICAgICAgICAgICd4LWZvbycsCisgICAgICAgICAgICB7J25hbWUnOiAnTXkgRG9jdW1lbnQgRm9yIFlvdSd9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSwKKyAgICAgICAgICAgICdhcHBsaWNhdGlvbi94LWZvbzsgbmFtZT0iTXkgRG9jdW1lbnQgRm9yIFlvdSInLAorICAgICAgICAgICAgKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtZm9vO1x0JworICAgICAgICAgICAgICAgICduYW1lKjAqPSJ1cy1hc2NpaVwnZW4tdXNcJ015IjtcbicKKyAgICAgICAgICAgICAnXHRuYW1lKjE9IiBEb2N1bWVudCI7XHRuYW1lKjI9IiBGb3IgWW91IlxuJyksCisgICAgICAgICAgICApLAorCisgICAgICAgICMgTXkgcmVhZGluZyBvZiB0aGUgUkZDIGlzIHRoYXQgdGhpcyBpcyBhbiBpbnZhbGlkIGhlYWRlci4gIFRoZSBSRkMKKyAgICAgICAgIyBzYXlzIHRoYXQgaWYgY2hhcnNldCBhbmQgbGFuZ3VhZ2UgaW5mb3JtYXRpb24gaXMgZ2l2ZW4sIHRoZSBmaXJzdAorICAgICAgICAjIHNlZ21lbnQgKm11c3QqIGJlIGVuY29kZWQuCisgICAgICAgICdyZmMyMjMxX3VuZW5jb2RlZF90aGVuX2VuY29kZWRfc2VnbWVudHMnOiAoCisgICAgICAgICAgICAoJ2FwcGxpY2F0aW9uL3gtZm9vOycKKyAgICAgICAgICAgICAgICAnXHRuYW1lKjA9dXMtYXNjaWlcJ2VuLXVzXCdNeTsnCisgICAgICAgICAgICAgICAgJ1x0bmFtZSoxKj0iIERvY3VtZW50IjsnCisgICAgICAgICAgICAgICAgJ1x0bmFtZSoyKj0iIEZvciBZb3UiJyksCisgICAgICAgICAgICAnYXBwbGljYXRpb24veC1mb28nLAorICAgICAgICAgICAgJ2FwcGxpY2F0aW9uJywKKyAgICAgICAgICAgICd4LWZvbycsCisgICAgICAgICAgICB7J25hbWUnOiAnTXkgRG9jdW1lbnQgRm9yIFlvdSd9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSozLAorICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtZm9vOyBuYW1lPSJNeSBEb2N1bWVudCBGb3IgWW91IicsCisgICAgICAgICAgICAoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC1mb287XHRuYW1lKjA9dXMtYXNjaWknZW4tdXMnTXk7XHQiCisgICAgICAgICAgICAgICAgIyBYWFg6IHRoZSBuZXdsaW5lIGlzIGluIHRoZSB3cm9uZyBwbGFjZSwgY29tZSBiYWNrIGFuZCBmaXgKKyAgICAgICAgICAgICAgICAjIHRoaXMgd2hlbiB0aGUgcmVzdCBvZiB0ZXN0cyBwYXNzLgorICAgICAgICAgICAgICAgICduYW1lKjEqPSIgRG9jdW1lbnQiXG47JworICAgICAgICAgICAgICdcdG5hbWUqMio9IiBGb3IgWW91IlxuJyksCisgICAgICAgICAgICApLAorCisgICAgICAgICMgWFhYOiBJIHdvdWxkIHNheSB0aGlzIG9uZSBzaG91bGQgZGVmYXVsdCB0byBhc2NpaS9lbiBmb3IgdGhlCisgICAgICAgICMgImVuY29kZWQiIHNlZ21lbnQsIHNpbmNlIHRoZSB0aGUgZmlyc3Qgc2VnbWVudCBpcyBub3QgZW5jb2RlZCBhbmQgaXMKKyAgICAgICAgIyBpbiBkb3VibGUgcXVvdGVzLCBtYWtpbmcgdGhlIHZhbHVlIGEgdmFsaWQgbm9uLWVuY29kZWQgc3RyaW5nLiAgVGhlCisgICAgICAgICMgb2xkIHBhcnNlciBkZWNvZGVzIHRoaXMganVzdCBsaWtlIHRoZSBwcmV2aW91cyBjYXNlLCB3aGljaCBtYXkgYmUgdGhlCisgICAgICAgICMgYmV0dGVyIFBvc3RlbCBydWxlLCBidXQgY291bGQgZXF1YWxseSByZXN1bHQgaW4gYm9ya2luZyBoZWFkZXJzIHRoYXQKKyAgICAgICAgIyBpbnRlbnRpYWxseSBoYXZlIHF1b3RlZCBxdW90ZXMgaW4gdGhlbS4gIFdlIGNvdWxkIGdldCB0aGlzIDk4JSByaWdodAorICAgICAgICAjIGlmIHdlIHRyZWF0IGl0IGFzIGEgcXVvdGVkIHN0cmluZyAqdW5sZXNzKiBpdCBtYXRjaGVzIHRoZQorICAgICAgICAjIGNoYXJzZXQnbGFuZyd2YWx1ZSBwYXR0ZXJuIGV4YWN0bHkgKmFuZCogdGhlcmUgaXMgYXQgbGVhc3Qgb25lCisgICAgICAgICMgZW5jb2RlZCBzZWdtZW50LiAgSW1wbGVtZW50aW5nIHRoYXQgYWxnb3JpdGhtIHdpbGwgcmVxdWlyZSBzb21lCisgICAgICAgICMgcmVmYWN0b3JpbmcsIHNvIEkgaGF2ZW4ndCBkb25lIGl0ICh5ZXQpLgorCisgICAgICAgICdyZmMyMjMxX3FvdXRlZF91bmVuY29kZWRfdGhlbl9lbmNvZGVkX3NlZ21lbnRzJzogKAorICAgICAgICAgICAgKCdhcHBsaWNhdGlvbi94LWZvbzsnCisgICAgICAgICAgICAgICAgJ1x0bmFtZSowPSJ1cy1hc2NpaVwnZW4tdXNcJ015IjsnCisgICAgICAgICAgICAgICAgJ1x0bmFtZSoxKj0iIERvY3VtZW50IjsnCisgICAgICAgICAgICAgICAgJ1x0bmFtZSoyKj0iIEZvciBZb3UiJyksCisgICAgICAgICAgICAnYXBwbGljYXRpb24veC1mb28nLAorICAgICAgICAgICAgJ2FwcGxpY2F0aW9uJywKKyAgICAgICAgICAgICd4LWZvbycsCisgICAgICAgICAgICB7J25hbWUnOiAidXMtYXNjaWknZW4tdXMnTXkgRG9jdW1lbnQgRm9yIFlvdSJ9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSoyLAorICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3gtZm9vOyBuYW1lPSJ1cy1hc2NpaVwnZW4tdXNcJ015IERvY3VtZW50IEZvciBZb3UiJywKKyAgICAgICAgICAgICgnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LWZvbztcdCcKKyAgICAgICAgICAgICAgICAnbmFtZSowPSJ1cy1hc2NpaVwnZW4tdXNcJ015IjtcbicKKyAgICAgICAgICAgICAnXHRuYW1lKjEqPSIgRG9jdW1lbnQiO1x0bmFtZSoyKj0iIEZvciBZb3UiXG4nKSwKKyAgICAgICAgICAgICksCisKKyAgICB9CisKKworQHBhcmFtZXRlcml6ZQorY2xhc3MgVGVzdENvbnRlbnRUcmFuc2ZlckVuY29kaW5nKFRlc3RIZWFkZXJCYXNlKToKKworICAgIGRlZiBjdGVfYXNfdmFsdWUoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgIGN0ZSwKKyAgICAgICAgICAgICAgICAgICAgICphcmdzKToKKyAgICAgICAgbCA9IGxlbihhcmdzKQorICAgICAgICBkZWZlY3RzID0gIGFyZ3NbMF0gaWYgbD4wIGVsc2UgW10KKyAgICAgICAgZGVjb2RlZCA9ICBhcmdzWzFdIGlmIGw+MSBhbmQgYXJnc1sxXSBpcyBub3QgRElUVE8gZWxzZSBzb3VyY2UKKyAgICAgICAgaGVhZGVyID0gJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6JyArICcgJyBpZiBzb3VyY2UgZWxzZSAnJworICAgICAgICBmb2xkZWQgPSBhcmdzWzJdIGlmIGw+MiBlbHNlIGhlYWRlciArIHNvdXJjZSArICdcbicKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcnLCBzb3VyY2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5jdGUsIGN0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwoaC5kZWZlY3RzLCBkZWZlY3RzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgsIGRlY29kZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5mb2xkKHBvbGljeT1wb2xpY3kuZGVmYXVsdCksIGZvbGRlZCkKKworICAgIGN0ZV9wYXJhbXMgPSB7CisKKyAgICAgICAgJ1JGQ18yMTgzXzEnOiAoCisgICAgICAgICAgICAnYmFzZTY0JywKKyAgICAgICAgICAgICdiYXNlNjQnLCksCisKKyAgICAgICAgJ25vX3ZhbHVlJzogKAorICAgICAgICAgICAgJycsCisgICAgICAgICAgICAnN2JpdCcsCisgICAgICAgICAgICBbZXJyb3JzLkhlYWRlck1pc3NpbmdSZXF1aXJlZFZhbHVlXSwKKyAgICAgICAgICAgICcnLAorICAgICAgICAgICAgJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6XG4nLAorICAgICAgICAgICAgKSwKKworICAgICAgICAnanVua19hZnRlcl9jdGUnOiAoCisgICAgICAgICAgICAnN2JpdCBhbmQgYSBidW5jaCBtb3JlJywKKyAgICAgICAgICAgICc3Yml0JywKKyAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0pLAorCisgICAgfQorCisKK0BwYXJhbWV0ZXJpemUKK2NsYXNzIFRlc3RDb250ZW50RGlzcG9zaXRpb24oVGVzdEhlYWRlckJhc2UpOgorCisgICAgZGVmIGNvbnRlbnRfZGlzcF9hc192YWx1ZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF9kaXNwb3NpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICphcmdzKToKKyAgICAgICAgbCA9IGxlbihhcmdzKQorICAgICAgICBwYXJtZGljdCA9IGFyZ3NbMF0gaWYgbD4wIGVsc2Uge30KKyAgICAgICAgZGVmZWN0cyA9ICBhcmdzWzFdIGlmIGw+MSBlbHNlIFtdCisgICAgICAgIGRlY29kZWQgPSAgYXJnc1syXSBpZiBsPjIgYW5kIGFyZ3NbMl0gaXMgbm90IERJVFRPIGVsc2Ugc291cmNlCisgICAgICAgIGhlYWRlciA9ICdDb250ZW50LURpc3Bvc2l0aW9uOicgKyAnICcgaWYgc291cmNlIGVsc2UgJycKKyAgICAgICAgZm9sZGVkID0gYXJnc1szXSBpZiBsPjMgZWxzZSBoZWFkZXIgKyBzb3VyY2UgKyAnXG4nCisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdDb250ZW50LURpc3Bvc2l0aW9uJywgc291cmNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguY29udGVudF9kaXNwb3NpdGlvbiwgY29udGVudF9kaXNwb3NpdGlvbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLnBhcmFtcywgcGFybWRpY3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RGVmZWN0c0VxdWFsKGguZGVmZWN0cywgZGVmZWN0cykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLCBkZWNvZGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZm9sZChwb2xpY3k9cG9saWN5LmRlZmF1bHQpLCBmb2xkZWQpCisKKyAgICBjb250ZW50X2Rpc3BfcGFyYW1zID0geworCisgICAgICAgICMgRXhhbXBsZXMgZnJvbSBSRkMgMjE4My4KKworICAgICAgICAnUkZDXzIxODNfMSc6ICgKKyAgICAgICAgICAgICdpbmxpbmUnLAorICAgICAgICAgICAgJ2lubGluZScsKSwKKworICAgICAgICAnUkZDXzIxODNfMic6ICgKKyAgICAgICAgICAgICgnYXR0YWNobWVudDsgZmlsZW5hbWU9Z2Vub21lLmpwZWc7JworICAgICAgICAgICAgICcgIG1vZGlmaWNhdGlvbi1kYXRlPSJXZWQsIDEyIEZlYiAxOTk3IDE2OjI5OjUxIC0wNTAwIjsnKSwKKyAgICAgICAgICAgICdhdHRhY2htZW50JywKKyAgICAgICAgICAgIHsnZmlsZW5hbWUnOiAnZ2Vub21lLmpwZWcnLAorICAgICAgICAgICAgICdtb2RpZmljYXRpb24tZGF0ZSc6ICdXZWQsIDEyIEZlYiAxOTk3IDE2OjI5OjUxIC0wNTAwJ30sCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICgnYXR0YWNobWVudDsgZmlsZW5hbWU9Imdlbm9tZS5qcGVnIjsgJworICAgICAgICAgICAgICAgICAnbW9kaWZpY2F0aW9uLWRhdGU9IldlZCwgMTIgRmViIDE5OTcgMTY6Mjk6NTEgLTA1MDAiJyksCisgICAgICAgICAgICAoJ0NvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPWdlbm9tZS5qcGVnO1xuJworICAgICAgICAgICAgICcgIG1vZGlmaWNhdGlvbi1kYXRlPSJXZWQsIDEyIEZlYiAxOTk3IDE2OjI5OjUxIC0wNTAwIjtcbicpLAorICAgICAgICAgICAgKSwKKworICAgICAgICAnbm9fdmFsdWUnOiAoCisgICAgICAgICAgICAnJywKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICB7fSwKKyAgICAgICAgICAgIFtlcnJvcnMuSGVhZGVyTWlzc2luZ1JlcXVpcmVkVmFsdWVdLAorICAgICAgICAgICAgJycsCisgICAgICAgICAgICAnQ29udGVudC1EaXNwb3NpdGlvbjpcbicpLAorCisgICAgICAgICdpbnZhbGlkX3ZhbHVlJzogKAorICAgICAgICAgICAgJ2FiLi9rJywKKyAgICAgICAgICAgICdhYi4nLAorICAgICAgICAgICAge30sCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKSwKKworICAgICAgICAnaW52YWxpZF92YWx1ZV93aXRoX3BhcmFtcyc6ICgKKyAgICAgICAgICAgICdhYi4vazsgZmlsZW5hbWU9ImZvbyInLAorICAgICAgICAgICAgJ2FiLicsCisgICAgICAgICAgICB7J2ZpbGVuYW1lJzogJ2Zvbyd9LAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSksCisKKyAgICB9CisKKworQHBhcmFtZXRlcml6ZQorY2xhc3MgVGVzdE1JTUVWZXJzaW9uSGVhZGVyKFRlc3RIZWFkZXJCYXNlKToKKworICAgIGRlZiB2ZXJzaW9uX3N0cmluZ19hc19NSU1FX1ZlcnNpb24oc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29kZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFqb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5vciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmVjdHMpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignTUlNRS1WZXJzaW9uJywgc291cmNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgsIGRlY29kZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC52ZXJzaW9uLCB2ZXJzaW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgubWFqb3IsIG1ham9yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgubWlub3IsIG1pbm9yKQorICAgICAgICBzZWxmLmFzc2VydERlZmVjdHNFcXVhbChoLmRlZmVjdHMsIGRlZmVjdHMpCisgICAgICAgIGlmIHNvdXJjZToKKyAgICAgICAgICAgIHNvdXJjZSA9ICcgJyArIHNvdXJjZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZm9sZChwb2xpY3k9cG9saWN5LmRlZmF1bHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ01JTUUtVmVyc2lvbjonICsgc291cmNlICsgJ1xuJykKKworICAgIHZlcnNpb25fc3RyaW5nX3BhcmFtcyA9IHsKKworICAgICAgICAjIEV4YW1wbGVzIGZyb20gdGhlIFJGQy4KKworICAgICAgICAnUkZDXzIwNDVfMSc6ICgKKyAgICAgICAgICAgICcxLjAnLAorICAgICAgICAgICAgJzEuMCcsCisgICAgICAgICAgICAnMS4wJywKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgW10pLAorCisgICAgICAgICdSRkNfMjA0NV8yJzogKAorICAgICAgICAgICAgJzEuMCAocHJvZHVjZWQgYnkgTWV0YVNlbmQgVngueCknLAorICAgICAgICAgICAgJzEuMCAocHJvZHVjZWQgYnkgTWV0YVNlbmQgVngueCknLAorICAgICAgICAgICAgJzEuMCcsCisgICAgICAgICAgICAxLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIFtdKSwKKworICAgICAgICAnUkZDXzIwNDVfMyc6ICgKKyAgICAgICAgICAgICcocHJvZHVjZWQgYnkgTWV0YVNlbmQgVngueCkgMS4wJywKKyAgICAgICAgICAgICcocHJvZHVjZWQgYnkgTWV0YVNlbmQgVngueCkgMS4wJywKKyAgICAgICAgICAgICcxLjAnLAorICAgICAgICAgICAgMSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBbXSksCisKKyAgICAgICAgJ1JGQ18yMDQ1XzQnOiAoCisgICAgICAgICAgICAnMS4ocHJvZHVjZWQgYnkgTWV0YVNlbmQgVngueCkwJywKKyAgICAgICAgICAgICcxLihwcm9kdWNlZCBieSBNZXRhU2VuZCBWeC54KTAnLAorICAgICAgICAgICAgJzEuMCcsCisgICAgICAgICAgICAxLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIFtdKSwKKworICAgICAgICAjIE90aGVyIHZhbGlkIHZhbHVlcy4KKworICAgICAgICAnMV8xJzogKAorICAgICAgICAgICAgJzEuMScsCisgICAgICAgICAgICAnMS4xJywKKyAgICAgICAgICAgICcxLjEnLAorICAgICAgICAgICAgMSwKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICBbXSksCisKKyAgICAgICAgJzJfMSc6ICgKKyAgICAgICAgICAgICcyLjEnLAorICAgICAgICAgICAgJzIuMScsCisgICAgICAgICAgICAnMi4xJywKKyAgICAgICAgICAgIDIsCisgICAgICAgICAgICAxLAorICAgICAgICAgICAgW10pLAorCisgICAgICAgICd3aGl0ZXNwYWNlJzogKAorICAgICAgICAgICAgJzEgLjAnLAorICAgICAgICAgICAgJzEgLjAnLAorICAgICAgICAgICAgJzEuMCcsCisgICAgICAgICAgICAxLAorICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIFtdKSwKKworICAgICAgICAnbGVhZGluZ190cmFpbGluZ193aGl0ZXNwYWNlX2lnbm9yZWQnOiAoCisgICAgICAgICAgICAnICAxLjAgICcsCisgICAgICAgICAgICAnICAxLjAgICcsCisgICAgICAgICAgICAnMS4wJywKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICAwLAorICAgICAgICAgICAgW10pLAorCisgICAgICAgICMgUmVjb3ZlcmFibGUgaW52YWxpZCB2YWx1ZXMuICBXZSBjYW4gcmVjb3ZlciBoZXJlIG9ubHkgYmVjYXVzZSB3ZQorICAgICAgICAjIGFscmVhZHkgaGF2ZSBhIHZhbGlkIHZhbHVlIGJ5IHRoZSB0aW1lIHdlIGVuY291bnRlciB0aGUgZ2FyYmFnZS4KKyAgICAgICAgIyBBbnl3aGVyZSBlbHNlLCBhbmQgd2UgZG9uJ3Qga25vdyB3aGVyZSB0aGUgZ2FyYmFnZSBlbmRzLgorCisgICAgICAgICdub25fY29tbWVudF9nYXJiYWdlX2FmdGVyJzogKAorICAgICAgICAgICAgJzEuMCA8YWJjPicsCisgICAgICAgICAgICAnMS4wIDxhYmM+JywKKyAgICAgICAgICAgICcxLjAnLAorICAgICAgICAgICAgMSwKKyAgICAgICAgICAgIDAsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKSwKKworICAgICAgICAjIFVucmVjb3ZlcmFibGUgaW52YWxpZCB2YWx1ZXMuICBXZSAqY291bGQqIGFwcGx5IG1vcmUgaGV1cmlzdGljcyB0bworICAgICAgICAjIGdldCBzb21laW5nIG91dCBvZiB0aGUgZmlyc3QgdHdvLCBidXQgZG9pbmcgc28gaXMgbm90IHdvcnRoIHRoZQorICAgICAgICAjIGVmZm9ydC4KKworICAgICAgICAnbm9uX2NvbW1lbnRfZ2FyYmFnZV9iZWZvcmUnOiAoCisgICAgICAgICAgICAnPGFiYz4gMS4wJywKKyAgICAgICAgICAgICc8YWJjPiAxLjAnLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSksCisKKyAgICAgICAgJ25vbl9jb21tZW50X2dhcmJhZ2VfaW5zaWRlJzogKAorICAgICAgICAgICAgJzEuPGFiYz4wJywKKyAgICAgICAgICAgICcxLjxhYmM+MCcsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKSwKKworICAgICAgICAndHdvX3BlcmlvZHMnOiAoCisgICAgICAgICAgICAnMS4uMCcsCisgICAgICAgICAgICAnMS4uMCcsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKSwKKworICAgICAgICAnMl94JzogKAorICAgICAgICAgICAgJzIueCcsCisgICAgICAgICAgICAnMi54JywKKyAgICAgICAgICAgIE5vbmUsICAjIFRoaXMgY291bGQgYmUgMiwgYnV0IGl0IHNlZW1zIHNhZmVyIHRvIG1ha2UgaXQgTm9uZS4KKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSksCisKKyAgICAgICAgJ2Zvbyc6ICgKKyAgICAgICAgICAgICdmb28nLAorICAgICAgICAgICAgJ2ZvbycsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKSwKKworICAgICAgICAnbWlzc2luZyc6ICgKKyAgICAgICAgICAgICcnLAorICAgICAgICAgICAgJycsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBbZXJyb3JzLkhlYWRlck1pc3NpbmdSZXF1aXJlZFZhbHVlXSksCisKKyAgICAgICAgfQorCisKK0BwYXJhbWV0ZXJpemUKK2NsYXNzIFRlc3RBZGRyZXNzSGVhZGVyKFRlc3RIZWFkZXJCYXNlKToKKworICAgIGV4YW1wbGVfcGFyYW1zID0geworCisgICAgICAgICdlbXB0eSc6CisgICAgICAgICAgICAoJzw+JywKKyAgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgICc8PicsCisgICAgICAgICAgICAgJycsCisgICAgICAgICAgICAgJzw+JywKKyAgICAgICAgICAgICAnJywKKyAgICAgICAgICAgICAnJywKKyAgICAgICAgICAgICBOb25lKSwKKworICAgICAgICAnYWRkcmVzc19vbmx5JzoKKyAgICAgICAgICAgICgnemlwcHlAcGluaGVhZC5jb20nLAorICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgICd6aXBweUBwaW5oZWFkLmNvbScsCisgICAgICAgICAgICAgJycsCisgICAgICAgICAgICAgJ3ppcHB5QHBpbmhlYWQuY29tJywKKyAgICAgICAgICAgICAnemlwcHknLAorICAgICAgICAgICAgICdwaW5oZWFkLmNvbScsCisgICAgICAgICAgICAgTm9uZSksCisKKyAgICAgICAgJ25hbWVfYW5kX2FkZHJlc3MnOgorICAgICAgICAgICAgKCdaYXBocm9kIEJlYmxlYnJ1eCA8emlwcHlAcGluaGVhZC5jb20+JywKKyAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAnWmFwaHJvZCBCZWJsZWJydXggPHppcHB5QHBpbmhlYWQuY29tPicsCisgICAgICAgICAgICAgJ1phcGhyb2QgQmVibGVicnV4JywKKyAgICAgICAgICAgICAnemlwcHlAcGluaGVhZC5jb20nLAorICAgICAgICAgICAgICd6aXBweScsCisgICAgICAgICAgICAgJ3BpbmhlYWQuY29tJywKKyAgICAgICAgICAgICBOb25lKSwKKworICAgICAgICAncXVvdGVkX2xvY2FsX3BhcnQnOgorICAgICAgICAgICAgKCdaYXBocm9kIEJlYmxlYnJ1eCA8ImZvbyBiYXIiQHBpbmhlYWQuY29tPicsCisgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgJ1phcGhyb2QgQmVibGVicnV4IDwiZm9vIGJhciJAcGluaGVhZC5jb20+JywKKyAgICAgICAgICAgICAnWmFwaHJvZCBCZWJsZWJydXgnLAorICAgICAgICAgICAgICciZm9vIGJhciJAcGluaGVhZC5jb20nLAorICAgICAgICAgICAgICdmb28gYmFyJywKKyAgICAgICAgICAgICAncGluaGVhZC5jb20nLAorICAgICAgICAgICAgIE5vbmUpLAorCisgICAgICAgICdxdW90ZWRfcGFyZW5zX2luX25hbWUnOgorICAgICAgICAgICAgKHInIkEgXChTcGVjaWFsXCkgUGVyc29uIiA8cGVyc29uQGRvbS5haW4+JywKKyAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICAnIkEgKFNwZWNpYWwpIFBlcnNvbiIgPHBlcnNvbkBkb20uYWluPicsCisgICAgICAgICAgICAgJ0EgKFNwZWNpYWwpIFBlcnNvbicsCisgICAgICAgICAgICAgJ3BlcnNvbkBkb20uYWluJywKKyAgICAgICAgICAgICAncGVyc29uJywKKyAgICAgICAgICAgICAnZG9tLmFpbicsCisgICAgICAgICAgICAgTm9uZSksCisKKyAgICAgICAgJ3F1b3RlZF9iYWNrc2xhc2hlc19pbl9uYW1lJzoKKyAgICAgICAgICAgIChyJyJBcnRodXIgXFxCYWNrc2xhc2hcXCBGb29iYXIiIDxwZXJzb25AZG9tLmFpbj4nLAorICAgICAgICAgICAgIFtdLAorICAgICAgICAgICAgIHInIkFydGh1ciBcXEJhY2tzbGFzaFxcIEZvb2JhciIgPHBlcnNvbkBkb20uYWluPicsCisgICAgICAgICAgICAgcidBcnRodXIgXEJhY2tzbGFzaFwgRm9vYmFyJywKKyAgICAgICAgICAgICAncGVyc29uQGRvbS5haW4nLAorICAgICAgICAgICAgICdwZXJzb24nLAorICAgICAgICAgICAgICdkb20uYWluJywKKyAgICAgICAgICAgICBOb25lKSwKKworICAgICAgICAnbmFtZV93aXRoX2RvdCc6CisgICAgICAgICAgICAoJ0pvaG4gWC4gRG9lIDxqeGRAZXhhbXBsZS5jb20+JywKKyAgICAgICAgICAgICBbZXJyb3JzLk9ic29sZXRlSGVhZGVyRGVmZWN0XSwKKyAgICAgICAgICAgICAnIkpvaG4gWC4gRG9lIiA8anhkQGV4YW1wbGUuY29tPicsCisgICAgICAgICAgICAgJ0pvaG4gWC4gRG9lJywKKyAgICAgICAgICAgICAnanhkQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICAnanhkJywKKyAgICAgICAgICAgICAnZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgIE5vbmUpLAorCisgICAgICAgICdxdW90ZWRfc3RyaW5nc19pbl9sb2NhbF9wYXJ0JzoKKyAgICAgICAgICAgICgnIiJleGFtcGxlIiBleGFtcGxlIkBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgW2Vycm9ycy5JbnZhbGlkSGVhZGVyRGVmZWN0XSozLAorICAgICAgICAgICAgICciZXhhbXBsZSBleGFtcGxlIkBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgJycsCisgICAgICAgICAgICAgJyJleGFtcGxlIGV4YW1wbGUiQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICAnZXhhbXBsZSBleGFtcGxlJywKKyAgICAgICAgICAgICAnZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgIE5vbmUpLAorCisgICAgICAgICdlc2NhcGVkX3F1b3RlZF9zdHJpbmdzX2luX2xvY2FsX3BhcnQnOgorICAgICAgICAgICAgKHInIlwiZXhhbXBsZVwiIGV4YW1wbGUiQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgICByJyJcImV4YW1wbGVcIiBleGFtcGxlIkBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgJycsCisgICAgICAgICAgICAgciciXCJleGFtcGxlXCIgZXhhbXBsZSJAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgIHInImV4YW1wbGUiIGV4YW1wbGUnLAorICAgICAgICAgICAgICdleGFtcGxlLmNvbScsCisgICAgICAgICAgICBOb25lKSwKKworICAgICAgICAnZXNjYXBlZF9lc2NhcGVzX2luX2xvY2FsX3BhcnQnOgorICAgICAgICAgICAgKHInIlxcImV4YW1wbGVcXCIgZXhhbXBsZSJAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgIFtlcnJvcnMuSW52YWxpZEhlYWRlckRlZmVjdF0qNSwKKyAgICAgICAgICAgICByJyJcXGV4YW1wbGVcXFxcIGV4YW1wbGUiQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICAnJywKKyAgICAgICAgICAgICByJyJcXGV4YW1wbGVcXFxcIGV4YW1wbGUiQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICByJ1xleGFtcGxlXFwgZXhhbXBsZScsCisgICAgICAgICAgICAgJ2V4YW1wbGUuY29tJywKKyAgICAgICAgICAgIE5vbmUpLAorCisgICAgICAgICdzcGFjZXNfaW5fdW5xdW90ZWRfbG9jYWxfcGFydF9jb2xsYXBzZWQnOgorICAgICAgICAgICAgKCdtZXJ3b2sgIHdvayAgQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICBbZXJyb3JzLkludmFsaWRIZWFkZXJEZWZlY3RdKjIsCisgICAgICAgICAgICAgJyJtZXJ3b2sgd29rIkBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgJycsCisgICAgICAgICAgICAgJyJtZXJ3b2sgd29rIkBleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgJ21lcndvayB3b2snLAorICAgICAgICAgICAgICdleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgTm9uZSksCisKKyAgICAgICAgJ3NwYWNlc19hcm91bmRfZG90c19pbl9sb2NhbF9wYXJ0X3JlbW92ZWQnOgorICAgICAgICAgICAgKCdtZXJ3b2suIHdvayAuICB3b2tAZXhhbXBsZS5jb20nLAorICAgICAgICAgICAgIFtlcnJvcnMuT2Jzb2xldGVIZWFkZXJEZWZlY3RdLAorICAgICAgICAgICAgICdtZXJ3b2sud29rLndva0BleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgJycsCisgICAgICAgICAgICAgJ21lcndvay53b2sud29rQGV4YW1wbGUuY29tJywKKyAgICAgICAgICAgICAnbWVyd29rLndvay53b2snLAorICAgICAgICAgICAgICdleGFtcGxlLmNvbScsCisgICAgICAgICAgICAgTm9uZSksCisKKyAgICAgICAgfQorCisgICAgICAgICMgWFhYOiBOZWVkIG1hbnkgbW9yZSBleGFtcGxlcywgYW5kIGluIHBhcnRpY3VsYXIgc29tZSB3aXRoIG5hbWVzIGluCisgICAgICAgICMgdHJhaWxpbmcgY29tbWVudHMsIHdoaWNoIGFyZW4ndCBjdXJyZW50bHkgaGFuZGxlZC4gIGNvbW1lbnRzIGluCisgICAgICAgICMgZ2VuZXJhbCBhcmUgbm90IGhhbmRsZWQgeWV0LgorCisgICAgZGVmIGV4YW1wbGVfYXNfYWRkcmVzcyhzZWxmLCBzb3VyY2UsIGRlZmVjdHMsIGRlY29kZWQsIGRpc3BsYXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJfc3BlYywgdXNlcm5hbWUsIGRvbWFpbiwgY29tbWVudCk6CisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdzZW5kZXInLCBzb3VyY2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaCwgZGVjb2RlZCkKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwoaC5kZWZlY3RzLCBkZWZlY3RzKQorICAgICAgICBhID0gaC5hZGRyZXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGEpLCBkZWNvZGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihoLmdyb3VwcyksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2FdLCBsaXN0KGguZ3JvdXBzWzBdLmFkZHJlc3NlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2FdLCBsaXN0KGguYWRkcmVzc2VzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmRpc3BsYXlfbmFtZSwgZGlzcGxheV9uYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuYWRkcl9zcGVjLCBhZGRyX3NwZWMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS51c2VybmFtZSwgdXNlcm5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5kb21haW4sIGRvbWFpbikKKyAgICAgICAgIyBYWFg6IHdlIGhhdmUgbm8gY29tbWVudCBzdXBwb3J0IHlldC4KKyAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoYS5jb21tZW50LCBjb21tZW50KQorCisgICAgZGVmIGV4YW1wbGVfYXNfZ3JvdXAoc2VsZiwgc291cmNlLCBkZWZlY3RzLCBkZWNvZGVkLCBkaXNwbGF5X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcl9zcGVjLCB1c2VybmFtZSwgZG9tYWluLCBjb21tZW50KToKKyAgICAgICAgc291cmNlID0gJ2Zvbzoge307Jy5mb3JtYXQoc291cmNlKQorICAgICAgICBnZGVjb2RlZCA9ICdmb286IHt9OycuZm9ybWF0KGRlY29kZWQpIGlmIGRlY29kZWQgZWxzZSAnZm9vOjsnCisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCd0bycsIHNvdXJjZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLCBnZGVjb2RlZCkKKyAgICAgICAgc2VsZi5hc3NlcnREZWZlY3RzRXF1YWwoaC5kZWZlY3RzLCBkZWZlY3RzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZ3JvdXBzWzBdLmFkZHJlc3NlcywgaC5hZGRyZXNzZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGguZ3JvdXBzKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oaC5hZGRyZXNzZXMpLCAxKQorICAgICAgICBhID0gaC5hZGRyZXNzZXNbMF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoYSksIGRlY29kZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5kaXNwbGF5X25hbWUsIGRpc3BsYXlfbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmFkZHJfc3BlYywgYWRkcl9zcGVjKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEudXNlcm5hbWUsIHVzZXJuYW1lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZG9tYWluLCBkb21haW4pCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfYWRkcmVzc19saXN0KHNlbGYpOgorICAgICAgICB2YWx1ZSA9ICgnRnJlZCA8ZGluc2RhbGVAcHl0aG9uLm9yZz4sIGZvb0BleGFtcGxlLmNvbSwgJworICAgICAgICAgICAgICAgICAgICAnIkhhcnJ5IFcuIEhhc3RpbmdzIiA8aGFzdHlAZXhhbXBsZS5jb20+JykKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ3RvJywgdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaCwgdmFsdWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGguZ3JvdXBzKSwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oaC5hZGRyZXNzZXMpLCAzKQorICAgICAgICBmb3IgaSBpbiByYW5nZSgzKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5ncm91cHNbaV0uYWRkcmVzc2VzWzBdLCBoLmFkZHJlc3Nlc1tpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoaC5hZGRyZXNzZXNbMF0pLCAnRnJlZCA8ZGluc2RhbGVAcHl0aG9uLm9yZz4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihoLmFkZHJlc3Nlc1sxXSksICdmb29AZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihoLmFkZHJlc3Nlc1syXSksCisgICAgICAgICAgICAnIkhhcnJ5IFcuIEhhc3RpbmdzIiA8aGFzdHlAZXhhbXBsZS5jb20+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmFkZHJlc3Nlc1syXS5kaXNwbGF5X25hbWUsCisgICAgICAgICAgICAnSGFycnkgVy4gSGFzdGluZ3MnKQorCisgICAgZGVmIHRlc3RfY29tcGxleF9hZGRyZXNzX2xpc3Qoc2VsZik6CisgICAgICAgIGV4YW1wbGVzID0gbGlzdChzZWxmLmV4YW1wbGVfcGFyYW1zLnZhbHVlcygpKQorICAgICAgICBzb3VyY2UgPSAoJ2R1bW15IGxpc3Q6OywgYW5vdGhlcjogKGVtcHR5KTssJyArCisgICAgICAgICAgICAgICAgICcsICcuam9pbihbeFswXSBmb3IgeCBpbiBleGFtcGxlc1s6NF1dKSArICcsICcgKworICAgICAgICAgICAgICAgICByJyJBIFwibGlzdFwiIjogJyArCisgICAgICAgICAgICAgICAgICAgICcsICcuam9pbihbeFswXSBmb3IgeCBpbiBleGFtcGxlc1s0OjZdXSkgKyAnOywnICsKKyAgICAgICAgICAgICAgICAgJywgJy5qb2luKFt4WzBdIGZvciB4IGluIGV4YW1wbGVzWzY6XV0pCisgICAgICAgICAgICApCisgICAgICAgICMgWFhYOiB0aGUgZmFjdCB0aGF0IChlbXB0eSkgZGlzYXBwZWFycyBoZXJlIGlzIGEgcG90ZW50aWFsIEFQSSBkZXNpZ24KKyAgICAgICAgIyBidWcuICBXZSBkb24ndCBjdXJyZW50bHkgaGF2ZSBhIHdheSB0byBwcmVzZXJ2ZSBjb21tZW50cy4KKyAgICAgICAgZXhwZWN0ZWQgPSAoJ2R1bW15IGxpc3Q6OywgYW5vdGhlcjo7LCAnICsKKyAgICAgICAgICAgICAgICAgJywgJy5qb2luKFt4WzJdIGZvciB4IGluIGV4YW1wbGVzWzo0XV0pICsgJywgJyArCisgICAgICAgICAgICAgICAgIHInIkEgXCJsaXN0XCIiOiAnICsKKyAgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKFt4WzJdIGZvciB4IGluIGV4YW1wbGVzWzQ6Nl1dKSArICc7LCAnICsKKyAgICAgICAgICAgICAgICAgJywgJy5qb2luKFt4WzJdIGZvciB4IGluIGV4YW1wbGVzWzY6XV0pCisgICAgICAgICAgICApCisKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ3RvJywgc291cmNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguc3BsaXQoJywnKSwgZXhwZWN0ZWQuc3BsaXQoJywnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLCBleHBlY3RlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oaC5ncm91cHMpLCA3ICsgbGVuKGV4YW1wbGVzKSAtIDYpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5ncm91cHNbMF0uZGlzcGxheV9uYW1lLCAnZHVtbXkgbGlzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5ncm91cHNbMV0uZGlzcGxheV9uYW1lLCAnYW5vdGhlcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5ncm91cHNbNl0uZGlzcGxheV9uYW1lLCAnQSAibGlzdCInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihoLmFkZHJlc3NlcyksIGxlbihleGFtcGxlcykpCisgICAgICAgIGZvciBpIGluIHJhbmdlKDQpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoaC5ncm91cHNbaSsyXS5kaXNwbGF5X25hbWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihoLmdyb3Vwc1tpKzJdLmFkZHJlc3Nlc1swXSksIGV4YW1wbGVzW2ldWzJdKQorICAgICAgICBmb3IgaSBpbiByYW5nZSg3LCA3ICsgbGVuKGV4YW1wbGVzKSAtIDYpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoaC5ncm91cHNbaV0uZGlzcGxheV9uYW1lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoaC5ncm91cHNbaV0uYWRkcmVzc2VzWzBdKSwgZXhhbXBsZXNbaS0xXVsyXSkKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGV4YW1wbGVzKSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihoLmFkZHJlc3Nlc1tpXSksIGV4YW1wbGVzW2ldWzJdKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmFkZHJlc3Nlc1tpXS5hZGRyX3NwZWMsIGV4YW1wbGVzW2ldWzRdKQorCisgICAgZGVmIHRlc3RfYWRkcmVzc19yZWFkX29ubHkoc2VsZik6CisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdzZW5kZXInLCAnYWJjQHh5ei5jb20nKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIGguYWRkcmVzcyA9ICdmb28nCisKKyAgICBkZWYgdGVzdF9hZGRyZXNzZXNfcmVhZF9vbmx5KHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignc2VuZGVyJywgJ2FiY0B4eXouY29tJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBoLmFkZHJlc3NlcyA9ICdmb28nCisKKyAgICBkZWYgdGVzdF9ncm91cHNfcmVhZF9vbmx5KHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignc2VuZGVyJywgJ2FiY0B4eXouY29tJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBoLmdyb3VwcyA9ICdmb28nCisKKyAgICBkZWYgdGVzdF9hZGRyZXNzZXNfdHlwZXMoc2VsZik6CisgICAgICAgIHNvdXJjZSA9ICdtZSA8d2hvQGV4YW1wbGUuY29tPicKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ3RvJywgc291cmNlKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaC5hZGRyZXNzZXMsIHR1cGxlKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaC5hZGRyZXNzZXNbMF0sIEFkZHJlc3MpCisKKyAgICBkZWYgdGVzdF9ncm91cHNfdHlwZXMoc2VsZik6CisgICAgICAgIHNvdXJjZSA9ICdtZSA8d2hvQGV4YW1wbGUuY29tPicKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ3RvJywgc291cmNlKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaC5ncm91cHMsIHR1cGxlKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaC5ncm91cHNbMF0sIEdyb3VwKQorCisgICAgZGVmIHRlc3Rfc2V0X2Zyb21fQWRkcmVzcyhzZWxmKToKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ3RvJywgQWRkcmVzcygnbWUnLCAnZm9vJywgJ2V4YW1wbGUuY29tJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaCwgJ21lIDxmb29AZXhhbXBsZS5jb20+JykKKworICAgIGRlZiB0ZXN0X3NldF9mcm9tX0FkZHJlc3NfbGlzdChzZWxmKToKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ3RvJywgW0FkZHJlc3MoJ21lJywgJ2ZvbycsICdleGFtcGxlLmNvbScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcygneW91JywgJ2JhcicsICdleGFtcGxlLmNvbScpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLCAnbWUgPGZvb0BleGFtcGxlLmNvbT4sIHlvdSA8YmFyQGV4YW1wbGUuY29tPicpCisKKyAgICBkZWYgdGVzdF9zZXRfZnJvbV9BZGRyZXNzX2FuZF9Hcm91cF9saXN0KHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcigndG8nLCBbQWRkcmVzcygnbWUnLCAnZm9vJywgJ2V4YW1wbGUuY29tJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcm91cCgnYmluZycsIFtBZGRyZXNzKCdmaXonLCAneicsICdiLmNvbScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcygnemlmJywgJ2YnLCAnYy5jb20nKV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcygneW91JywgJ2JhcicsICdleGFtcGxlLmNvbScpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLCAnbWUgPGZvb0BleGFtcGxlLmNvbT4sIGJpbmc6IGZpeiA8ekBiLmNvbT4sICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnemlmIDxmQGMuY29tPjssIHlvdSA8YmFyQGV4YW1wbGUuY29tPicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5mb2xkKHBvbGljeT1wb2xpY3kuZGVmYXVsdC5jbG9uZShtYXhfbGluZV9sZW5ndGg9NDApKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd0bzogbWUgPGZvb0BleGFtcGxlLmNvbT4sXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAnIGJpbmc6IGZpeiA8ekBiLmNvbT4sIHppZiA8ZkBjLmNvbT47LFxuJworICAgICAgICAgICAgICAgICAgICAgICAgJyB5b3UgPGJhckBleGFtcGxlLmNvbT5cbicpCisKKyAgICBkZWYgdGVzdF9zZXRfZnJvbV9Hcm91cF9saXN0KHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcigndG8nLCBbR3JvdXAoJ2JpbmcnLCBbQWRkcmVzcygnZml6JywgJ3onLCAnYi5jb20nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3MoJ3ppZicsICdmJywgJ2MuY29tJyldKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaCwgJ2Jpbmc6IGZpeiA8ekBiLmNvbT4sIHppZiA8ZkBjLmNvbT47JykKKworCitjbGFzcyBUZXN0QWRkcmVzc0FuZEdyb3VwKFRlc3RFbWFpbEJhc2UpOgorCisgICAgZGVmIF90ZXN0X2F0dHJfcm8oc2VsZiwgb2JqLCBhdHRyKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBzZXRhdHRyKG9iaiwgYXR0ciwgJ2ZvbycpCisKKyAgICBkZWYgdGVzdF9hZGRyZXNzX2Rpc3BsYXlfbmFtZV9ybyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9hdHRyX3JvKEFkZHJlc3MoJ2ZvbycsICdiYXInLCAnYmF6JyksICdkaXNwbGF5X25hbWUnKQorCisgICAgZGVmIHRlc3RfYWRkcmVzc191c2VybmFtZV9ybyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9hdHRyX3JvKEFkZHJlc3MoJ2ZvbycsICdiYXInLCAnYmF6JyksICd1c2VybmFtZScpCisKKyAgICBkZWYgdGVzdF9hZGRyZXNzX2RvbWFpbl9ybyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9hdHRyX3JvKEFkZHJlc3MoJ2ZvbycsICdiYXInLCAnYmF6JyksICdkb21haW4nKQorCisgICAgZGVmIHRlc3RfZ3JvdXBfZGlzcGxheV9uYW1lX3JvKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2F0dHJfcm8oR3JvdXAoJ2ZvbycpLCAnZGlzcGxheV9uYW1lJykKKworICAgIGRlZiB0ZXN0X2dyb3VwX2FkZHJlc3Nlc19ybyhzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9hdHRyX3JvKEdyb3VwKCdmb28nKSwgJ2FkZHJlc3NlcycpCisKKyAgICBkZWYgdGVzdF9hZGRyZXNzX2Zyb21fdXNlcm5hbWVfZG9tYWluKHNlbGYpOgorICAgICAgICBhID0gQWRkcmVzcygnZm9vJywgJ2JhcicsICdiYXonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZGlzcGxheV9uYW1lLCAnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLnVzZXJuYW1lLCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmRvbWFpbiwgJ2JheicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5hZGRyX3NwZWMsICdiYXJAYmF6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoYSksICdmb28gPGJhckBiYXo+JykKKworICAgIGRlZiB0ZXN0X2FkZHJlc3NfZnJvbV9hZGRyX3NwZWMoc2VsZik6CisgICAgICAgIGEgPSBBZGRyZXNzKCdmb28nLCBhZGRyX3NwZWM9J2JhckBiYXonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZGlzcGxheV9uYW1lLCAnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLnVzZXJuYW1lLCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmRvbWFpbiwgJ2JheicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5hZGRyX3NwZWMsICdiYXJAYmF6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoYSksICdmb28gPGJhckBiYXo+JykKKworICAgIGRlZiB0ZXN0X2FkZHJlc3Nfd2l0aF9ub19kaXNwbGF5X25hbWUoc2VsZik6CisgICAgICAgIGEgPSBBZGRyZXNzKGFkZHJfc3BlYz0nYmFyQGJheicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5kaXNwbGF5X25hbWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEudXNlcm5hbWUsICdiYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZG9tYWluLCAnYmF6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmFkZHJfc3BlYywgJ2JhckBiYXonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihhKSwgJ2JhckBiYXonKQorCisgICAgZGVmIHRlc3RfbnVsbF9hZGRyZXNzKHNlbGYpOgorICAgICAgICBhID0gQWRkcmVzcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5kaXNwbGF5X25hbWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEudXNlcm5hbWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZG9tYWluLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmFkZHJfc3BlYywgJzw+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoYSksICc8PicpCisKKyAgICBkZWYgdGVzdF9kb21haW5fb25seShzZWxmKToKKyAgICAgICAgIyBUaGlzIGlzbid0IHJlYWxseSBhIHZhbGlkIGFkZHJlc3MuCisgICAgICAgIGEgPSBBZGRyZXNzKGRvbWFpbj0nYnV6eicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5kaXNwbGF5X25hbWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEudXNlcm5hbWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZG9tYWluLCAnYnV6eicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS5hZGRyX3NwZWMsICdAYnV6eicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGEpLCAnQGJ1enonKQorCisgICAgZGVmIHRlc3RfdXNlcm5hbWVfb25seShzZWxmKToKKyAgICAgICAgIyBUaGlzIGlzbid0IHJlYWxseSBhIHZhbGlkIGFkZHJlc3MuCisgICAgICAgIGEgPSBBZGRyZXNzKHVzZXJuYW1lPSdidXp6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmRpc3BsYXlfbmFtZSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS51c2VybmFtZSwgJ2J1enonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZG9tYWluLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmFkZHJfc3BlYywgJ2J1enonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihhKSwgJ2J1enonKQorCisgICAgZGVmIHRlc3RfZGlzcGxheV9uYW1lX29ubHkoc2VsZik6CisgICAgICAgIGEgPSBBZGRyZXNzKCdidXp6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmRpc3BsYXlfbmFtZSwgJ2J1enonKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEudXNlcm5hbWUsICcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZG9tYWluLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmFkZHJfc3BlYywgJzw+JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoYSksICdidXp6IDw+JykKKworICAgIGRlZiB0ZXN0X3F1b3Rpbmcoc2VsZik6CisgICAgICAgICMgSWRlYWxseSB3ZSdkIGNoZWNrIGV2ZXJ5IHNwZWNpYWwgaW5kaXZpZHVhbGx5LCBidXQgSSdtIG5vdCB1cCBmb3IKKyAgICAgICAgIyB3cml0aW5nIHRoYXQgbWFueSB0ZXN0cy4KKyAgICAgICAgYSA9IEFkZHJlc3MoJ1NhcmEgSi4nLCAnYmFkIG5hbWUnLCAnZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZGlzcGxheV9uYW1lLCAnU2FyYSBKLicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYS51c2VybmFtZSwgJ2JhZCBuYW1lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmRvbWFpbiwgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmFkZHJfc3BlYywgJyJiYWQgbmFtZSJAZXhhbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihhKSwgJyJTYXJhIEouIiA8ImJhZCBuYW1lIkBleGFtcGxlLmNvbT4nKQorCisgICAgZGVmIHRlc3RfaWw4bihzZWxmKToKKyAgICAgICAgYSA9IEFkZHJlc3MoJ8OJcmljJywgJ3dvaycsICdleMOgbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZGlzcGxheV9uYW1lLCAnw4lyaWMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEudXNlcm5hbWUsICd3b2snKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEuZG9tYWluLCAnZXjDoG1wbGUuY29tJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLmFkZHJfc3BlYywgJ3dva0BleMOgbXBsZS5jb20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihhKSwgJ8OJcmljIDx3b2tAZXjDoG1wbGUuY29tPicpCisKKyAgICAjIFhYWDogdGhlcmUgaXMgYW4gQVBJIGRlc2lnbiBpc3N1ZSB0aGF0IG5lZWRzIHRvIGJlIHNvbHZlZCBoZXJlLgorICAgICNkZWYgdGVzdF9ub25fYXNjaWlfdXNlcm5hbWVfcmFpc2VzKHNlbGYpOgorICAgICMgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAjICAgICAgICBBZGRyZXNzKCdmb28nLCAnd8WRaycsICdleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9ub25fYXNjaWlfdXNlcm5hbWVfaW5fYWRkcl9zcGVjX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIEFkZHJlc3MoJ2ZvbycsIGFkZHJfc3BlYz0nd8WRa0BleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9hZGRyZXNzX2FkZHJfc3BlY19hbmRfdXNlcm5hbWVfcmFpc2VzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBBZGRyZXNzKCdmb28nLCB1c2VybmFtZT0nYmluZycsIGFkZHJfc3BlYz0nYmFyQGJheicpCisKKyAgICBkZWYgdGVzdF9hZGRyZXNzX2FkZHJfc3BlY19hbmRfZG9tYWluX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgQWRkcmVzcygnZm9vJywgZG9tYWluPSdiaW5nJywgYWRkcl9zcGVjPSdiYXJAYmF6JykKKworICAgIGRlZiB0ZXN0X2FkZHJlc3NfYWRkcl9zcGVjX2FuZF91c2VybmFtZV9hbmRfZG9tYWluX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgQWRkcmVzcygnZm9vJywgdXNlcm5hbWU9J2JvbmcnLCBkb21haW49J2JpbmcnLCBhZGRyX3NwZWM9J2JhckBiYXonKQorCisgICAgZGVmIHRlc3Rfc3BhY2VfaW5fYWRkcl9zcGVjX3VzZXJuYW1lX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIEFkZHJlc3MoJ2ZvbycsIGFkZHJfc3BlYz0iYmFkIG5hbWVAZXhhbXBsZS5jb20iKQorCisgICAgZGVmIHRlc3RfYmFkX2FkZHJfc2VwY19yYWlzZXMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBBZGRyZXNzKCdmb28nLCBhZGRyX3NwZWM9Im5hbWVAZXhbXWFtcGxlLmNvbSIpCisKKyAgICBkZWYgdGVzdF9lbXB0eV9ncm91cChzZWxmKToKKyAgICAgICAgZyA9IEdyb3VwKCdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcuZGlzcGxheV9uYW1lLCAnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnLmFkZHJlc3NlcywgdHVwbGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZyksICdmb286OycpCisKKyAgICBkZWYgdGVzdF9lbXB0eV9ncm91cF9saXN0KHNlbGYpOgorICAgICAgICBnID0gR3JvdXAoJ2ZvbycsIGFkZHJlc3Nlcz1bXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnLmRpc3BsYXlfbmFtZSwgJ2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZy5hZGRyZXNzZXMsIHR1cGxlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGcpLCAnZm9vOjsnKQorCisgICAgZGVmIHRlc3RfbnVsbF9ncm91cChzZWxmKToKKyAgICAgICAgZyA9IEdyb3VwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZy5kaXNwbGF5X25hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZy5hZGRyZXNzZXMsIHR1cGxlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGcpLCAnTm9uZTo7JykKKworICAgIGRlZiB0ZXN0X2dyb3VwX3dpdGhfYWRkcmVzc2VzKHNlbGYpOgorICAgICAgICBhZGRycyA9IFtBZGRyZXNzKCdiJywgJ2InLCAnYycpLCBBZGRyZXNzKCdhJywgJ2InLCdjJyldCisgICAgICAgIGcgPSBHcm91cCgnZm9vJywgYWRkcnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZy5kaXNwbGF5X25hbWUsICdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcuYWRkcmVzc2VzLCB0dXBsZShhZGRycykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGcpLCAnZm9vOiBiIDxiQGM+LCBhIDxiQGM+OycpCisKKyAgICBkZWYgdGVzdF9ncm91cF93aXRoX2FkZHJlc3Nlc19ub19kaXNwbGF5X25hbWUoc2VsZik6CisgICAgICAgIGFkZHJzID0gW0FkZHJlc3MoJ2InLCAnYicsICdjJyksIEFkZHJlc3MoJ2EnLCAnYicsJ2MnKV0KKyAgICAgICAgZyA9IEdyb3VwKGFkZHJlc3Nlcz1hZGRycykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZy5kaXNwbGF5X25hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZy5hZGRyZXNzZXMsIHR1cGxlKGFkZHJzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZyksICdOb25lOiBiIDxiQGM+LCBhIDxiQGM+OycpCisKKyAgICBkZWYgdGVzdF9ncm91cF93aXRoX29uZV9hZGRyZXNzX25vX2Rpc3BsYXlfbmFtZShzZWxmKToKKyAgICAgICAgYWRkcnMgPSBbQWRkcmVzcygnYicsICdiJywgJ2MnKV0KKyAgICAgICAgZyA9IEdyb3VwKGFkZHJlc3Nlcz1hZGRycykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZy5kaXNwbGF5X25hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZy5hZGRyZXNzZXMsIHR1cGxlKGFkZHJzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZyksICdiIDxiQGM+JykKKworICAgIGRlZiB0ZXN0X2Rpc3BsYXlfbmFtZV9xdW90aW5nKHNlbGYpOgorICAgICAgICBnID0gR3JvdXAoJ2Zvby5iYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcuZGlzcGxheV9uYW1lLCAnZm9vLmJhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZy5hZGRyZXNzZXMsIHR1cGxlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGcpLCAnImZvby5iYXIiOjsnKQorCisgICAgZGVmIHRlc3RfZGlzcGxheV9uYW1lX2JsYW5rc19ub3RfcXVvdGVkKHNlbGYpOgorICAgICAgICBnID0gR3JvdXAoJ2ZvbyBiYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGcuZGlzcGxheV9uYW1lLCAnZm9vIGJhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZy5hZGRyZXNzZXMsIHR1cGxlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGcpLCAnZm9vIGJhcjo7JykKKworICAgIGRlZiB0ZXN0X3NldF9tZXNzYWdlX2hlYWRlcl9mcm9tX2FkZHJlc3Moc2VsZik6CisgICAgICAgIGEgPSBBZGRyZXNzKCdmb28nLCAnYmFyJywgJ2V4YW1wbGUuY29tJykKKyAgICAgICAgbSA9IE1lc3NhZ2UocG9saWN5PXBvbGljeS5kZWZhdWx0KQorICAgICAgICBtWydUbyddID0gYQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bJ3RvJ10sICdmb28gPGJhckBleGFtcGxlLmNvbT4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bJ3RvJ10uYWRkcmVzc2VzLCAoYSwpKQorCisgICAgZGVmIHRlc3Rfc2V0X21lc3NhZ2VfaGVhZGVyX2Zyb21fZ3JvdXAoc2VsZik6CisgICAgICAgIGcgPSBHcm91cCgnZm9vIGJhcicpCisgICAgICAgIG0gPSBNZXNzYWdlKHBvbGljeT1wb2xpY3kuZGVmYXVsdCkKKyAgICAgICAgbVsnVG8nXSA9IGcKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtWyd0byddLCAnZm9vIGJhcjo7JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtWyd0byddLmFkZHJlc3NlcywgZy5hZGRyZXNzZXMpCisKKworY2xhc3MgVGVzdEZvbGRpbmcoVGVzdEhlYWRlckJhc2UpOgorCisgICAgZGVmIHRlc3Rfc2hvcnRfdW5zdHJ1Y3R1cmVkKHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignc3ViamVjdCcsICd0aGlzIGlzIGEgdGVzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaC5mb2xkKHBvbGljeT1wb2xpY3kuZGVmYXVsdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1YmplY3Q6IHRoaXMgaXMgYSB0ZXN0XG4nKQorCisgICAgZGVmIHRlc3RfbG9uZ191bnN0cnVjdHVyZWQoc2VsZik6CisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdTdWJqZWN0JywgJ1RoaXMgaXMgYSBsb25nIGhlYWRlciAnCisgICAgICAgICAgICAnbGluZSB0aGF0IHdpbGwgbmVlZCB0byBiZSBmb2xkZWQgaW50byB0d28gbGluZXMgJworICAgICAgICAgICAgJ2FuZCB3aWxsIGRlbW9uc3RyYXRlIGJhc2ljIGZvbGRpbmcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZm9sZChwb2xpY3k9cG9saWN5LmRlZmF1bHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ1N1YmplY3Q6IFRoaXMgaXMgYSBsb25nIGhlYWRlciBsaW5lIHRoYXQgd2lsbCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25lZWQgdG8gYmUgZm9sZGVkIGludG8gdHdvIGxpbmVzXG4nCisgICAgICAgICAgICAgICAgICAgICAgICAnIGFuZCB3aWxsIGRlbW9uc3RyYXRlIGJhc2ljIGZvbGRpbmdcbicpCisKKyAgICBkZWYgdGVzdF91bnN0cnVjdHVyZWRfc2hvcnRfbWF4X2xpbmVfbGVuZ3RoKHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignU3ViamVjdCcsICd0aGlzIGlzIGEgc2hvcnQgaGVhZGVyICcKKyAgICAgICAgICAgICd0aGF0IHdpbGwgYmUgZm9sZGVkIGFueXdheScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBoLmZvbGQocG9saWN5PXBvbGljeS5kZWZhdWx0LmNsb25lKG1heF9saW5lX2xlbmd0aD0yMCkpLAorICAgICAgICAgICAgdGV4dHdyYXAuZGVkZW50KCIiIlwKKyAgICAgICAgICAgICAgICBTdWJqZWN0OiB0aGlzIGlzIGEKKyAgICAgICAgICAgICAgICAgc2hvcnQgaGVhZGVyIHRoYXQKKyAgICAgICAgICAgICAgICAgd2lsbCBiZSBmb2xkZWQKKyAgICAgICAgICAgICAgICAgYW55d2F5CisgICAgICAgICAgICAgICAgIiIiKSkKKworICAgIGRlZiB0ZXN0X2ZvbGRfdW5zdHJ1Y3R1cmVkX3NpbmdsZV93b3JkKHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignU3ViamVjdCcsICd0ZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmZvbGQocG9saWN5PXBvbGljeS5kZWZhdWx0KSwgJ1N1YmplY3Q6IHRlc3RcbicpCisKKyAgICBkZWYgdGVzdF9mb2xkX3Vuc3RydWN0dXJlZF9zaG9ydChzZWxmKToKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ1N1YmplY3QnLCAndGVzdCB0ZXN0IHRlc3QnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZm9sZChwb2xpY3k9cG9saWN5LmRlZmF1bHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ1N1YmplY3Q6IHRlc3QgdGVzdCB0ZXN0XG4nKQorCisgICAgZGVmIHRlc3RfZm9sZF91bnN0cnVjdHVyZWRfd2l0aF9vdmVybG9uZ193b3JkKHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignU3ViamVjdCcsICd0aGlzaXNhdmVyeWxvbmdsaW5lY29uc2lzdGluZ29mYScKKyAgICAgICAgICAgICdzaW5nbGV3b3JkdGhhdHdvbnRmaXQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgaC5mb2xkKHBvbGljeT1wb2xpY3kuZGVmYXVsdC5jbG9uZShtYXhfbGluZV9sZW5ndGg9MjApKSwKKyAgICAgICAgICAgICdTdWJqZWN0OiB0aGlzaXNhdmVyeWxvbmdsaW5lY29uc2lzdGluZ29mYXNpbmdsZXdvcmR0aGF0d29udGZpdFxuJykKKworICAgIGRlZiB0ZXN0X2ZvbGRfdW5zdHJ1Y3R1cmVkX3dpdGhfdHdvX292ZXJsb25nX3dvcmRzKHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignU3ViamVjdCcsICd0aGlzaXNhdmVyeWxvbmdsaW5lY29uc2lzdGluZ29mYScKKyAgICAgICAgICAgICdzaW5nbGV3b3JkdGhhdHdvbnRmaXQgcGx1c2Fub3RoZXJ2ZXJ5bG9uZ3dvcmR0aGF0d29udGZpdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBoLmZvbGQocG9saWN5PXBvbGljeS5kZWZhdWx0LmNsb25lKG1heF9saW5lX2xlbmd0aD0yMCkpLAorICAgICAgICAgICAgJ1N1YmplY3Q6IHRoaXNpc2F2ZXJ5bG9uZ2xpbmVjb25zaXN0aW5nb2Zhc2luZ2xld29yZHRoYXR3b250Zml0XG4nCisgICAgICAgICAgICAgICAgJyBwbHVzYW5vdGhlcnZlcnlsb25nd29yZHRoYXR3b250Zml0XG4nKQorCisgICAgZGVmIHRlc3RfZm9sZF91bnN0cnVjdHVyZWRfd2l0aF9zbGlnaHRseV9sb25nX3dvcmQoc2VsZik6CisgICAgICAgIGggPSBzZWxmLm1ha2VfaGVhZGVyKCdTdWJqZWN0JywgJ3RoaXNsb25nd29yZGlzbGVzc3RoYW5tYXhsaW5lbGVuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGguZm9sZChwb2xpY3k9cG9saWN5LmRlZmF1bHQuY2xvbmUobWF4X2xpbmVfbGVuZ3RoPTM1KSksCisgICAgICAgICAgICAnU3ViamVjdDpcbiB0aGlzbG9uZ3dvcmRpc2xlc3N0aGFubWF4bGluZWxlblxuJykKKworICAgIGRlZiB0ZXN0X2ZvbGRfdW5zdHJ1Y3R1cmVkX3dpdGhfY29tbWFzKHNlbGYpOgorICAgICAgICAjIFRoZSBvbGQgd3JhcHBlciB3b3VsZCBmb2xkIHRoaXMgYXQgdGhlIGNvbW1hcy4KKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ1N1YmplY3QnLCAiVGhpcyBoZWFkZXIgaXMgaW50ZW5kZWQgdG8gIgorICAgICAgICAgICAgImRlbW9uc3RyYXRlLCBpbiBhIGZhaXJseSBzdXNpbmN0IHdheSwgdGhhdCB3ZSBub3cgZG8gIgorICAgICAgICAgICAgIm5vdCBnaXZlIGEgLCBzcGVjaWFsIHRyZWF0bWVudCBpbiB1bnN0cnVjdHVyZWQgaGVhZGVycy4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgaC5mb2xkKHBvbGljeT1wb2xpY3kuZGVmYXVsdC5jbG9uZShtYXhfbGluZV9sZW5ndGg9NjApKSwKKyAgICAgICAgICAgIHRleHR3cmFwLmRlZGVudCgiIiJcCisgICAgICAgICAgICAgICAgU3ViamVjdDogVGhpcyBoZWFkZXIgaXMgaW50ZW5kZWQgdG8gZGVtb25zdHJhdGUsIGluIGEgZmFpcmx5CisgICAgICAgICAgICAgICAgIHN1c2luY3Qgd2F5LCB0aGF0IHdlIG5vdyBkbyBub3QgZ2l2ZSBhICwgc3BlY2lhbCB0cmVhdG1lbnQKKyAgICAgICAgICAgICAgICAgaW4gdW5zdHJ1Y3R1cmVkIGhlYWRlcnMuCisgICAgICAgICAgICAgICAgICIiIikpCisKKyAgICBkZWYgdGVzdF9mb2xkX2FkZHJlc3NfbGlzdChzZWxmKToKKyAgICAgICAgaCA9IHNlbGYubWFrZV9oZWFkZXIoJ1RvJywgJyJUaGVvZG9yZSBILiBQZXJmZWN0IiA8eWVzQG1hbi5jb20+LCAnCisgICAgICAgICAgICAnIk15IGFkZHJlc3MgaXMgdmVyeSBsb25nIGJlY2F1c2UgbXkgbmFtZSBpcyBsb25nIiA8Zm9vQGJhci5jb20+LCAnCisgICAgICAgICAgICAnIk9ubHkgQS4gRnJpZW5kIiA8bm9AeWVzLmNvbT4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZm9sZChwb2xpY3k9cG9saWN5LmRlZmF1bHQpLCB0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICAgICAgVG86ICJUaGVvZG9yZSBILiBQZXJmZWN0IiA8eWVzQG1hbi5jb20+LAorICAgICAgICAgICAgICJNeSBhZGRyZXNzIGlzIHZlcnkgbG9uZyBiZWNhdXNlIG15IG5hbWUgaXMgbG9uZyIgPGZvb0BiYXIuY29tPiwKKyAgICAgICAgICAgICAiT25seSBBLiBGcmllbmQiIDxub0B5ZXMuY29tPgorICAgICAgICAgICAgICIiIikpCisKKyAgICBkZWYgdGVzdF9mb2xkX2RhdGVfaGVhZGVyKHNlbGYpOgorICAgICAgICBoID0gc2VsZi5tYWtlX2hlYWRlcignRGF0ZScsICdTYXQsIDIgRmViIDIwMDIgMTc6MDA6MDYgLTA4MDAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZm9sZChwb2xpY3k9cG9saWN5LmRlZmF1bHQpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ0RhdGU6IFNhdCwgMDIgRmViIDIwMDIgMTc6MDA6MDYgLTA4MDBcbicpCisKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X21lc3NhZ2UucHkgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfbWVzc2FnZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2MzZjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X21lc3NhZ2UucHkKQEAgLTAsMCArMSwxOCBAQAoraW1wb3J0IHVuaXR0ZXN0Citmcm9tIGVtYWlsIGltcG9ydCBwb2xpY3kKK2Zyb20gdGVzdC50ZXN0X2VtYWlsIGltcG9ydCBUZXN0RW1haWxCYXNlCisKKworY2xhc3MgVGVzdChUZXN0RW1haWxCYXNlKToKKworICAgIHBvbGljeSA9IHBvbGljeS5kZWZhdWx0CisKKyAgICBkZWYgdGVzdF9lcnJvcl9vbl9zZXRpdGVtX2lmX21heF9jb3VudF9leGNlZWRlZChzZWxmKToKKyAgICAgICAgbSA9IHNlbGYuX3N0cl9tc2coIiIpCisgICAgICAgIG1bJ1RvJ10gPSAnYWJjQHh5eicKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIG1bJ1RvJ10gPSAneHl6QGFiYycKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X3BhcnNlci5weSBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvdGVzdF9wYXJzZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FiZDExYQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfZW1haWwvdGVzdF9wYXJzZXIucHkKQEAgLTAsMCArMSwzNiBAQAoraW1wb3J0IGlvCitpbXBvcnQgZW1haWwKK2ltcG9ydCB1bml0dGVzdAorZnJvbSBlbWFpbC5tZXNzYWdlIGltcG9ydCBNZXNzYWdlCitmcm9tIHRlc3QudGVzdF9lbWFpbCBpbXBvcnQgVGVzdEVtYWlsQmFzZQorCisKK2NsYXNzIFRlc3RDdXN0b21NZXNzYWdlKFRlc3RFbWFpbEJhc2UpOgorCisgICAgY2xhc3MgTXlNZXNzYWdlKE1lc3NhZ2UpOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9saWN5KToKKyAgICAgICAgICAgIHNlbGYuY2hlY2tfcG9saWN5ID0gcG9saWN5CisgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCkKKworICAgIE15UG9saWN5ID0gVGVzdEVtYWlsQmFzZS5wb2xpY3kuY2xvbmUobGluZXNlcD0nYm9vJykKKworICAgIGRlZiB0ZXN0X2N1c3RvbV9tZXNzYWdlX2dldHNfcG9saWN5X2lmX3Bvc3NpYmxlX2Zyb21fc3RyaW5nKHNlbGYpOgorICAgICAgICBtc2cgPSBlbWFpbC5tZXNzYWdlX2Zyb21fc3RyaW5nKCJTdWJqZWN0OiBib2d1c1xuXG5tc2dcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5NeU1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9saWN5PXNlbGYuTXlQb2xpY3kpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKG1zZywgc2VsZi5NeU1lc3NhZ2UpKQorICAgICAgICBzZWxmLmFzc2VydElzKG1zZy5jaGVja19wb2xpY3ksIHNlbGYuTXlQb2xpY3kpCisKKyAgICBkZWYgdGVzdF9jdXN0b21fbWVzc2FnZV9nZXRzX3BvbGljeV9pZl9wb3NzaWJsZV9mcm9tX2ZpbGUoc2VsZik6CisgICAgICAgIHNvdXJjZV9maWxlID0gaW8uU3RyaW5nSU8oIlN1YmplY3Q6IGJvZ3VzXG5cbm1zZ1xuIikKKyAgICAgICAgbXNnID0gZW1haWwubWVzc2FnZV9mcm9tX2ZpbGUoc291cmNlX2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuTXlNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3k9c2VsZi5NeVBvbGljeSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UobXNnLCBzZWxmLk15TWVzc2FnZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobXNnLmNoZWNrX3BvbGljeSwgc2VsZi5NeVBvbGljeSkKKworICAgICMgWFhYIGFkZCB0ZXN0cyBmb3Igb3RoZXIgZnVuY3Rpb25zIHRoYXQgdGFrZSBNZXNzYWdlIGFyZy4KKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X3BpY2tsZWFibGUucHkgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfcGlja2xlYWJsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWE4ZDI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X3BpY2tsZWFibGUucHkKQEAgLTAsMCArMSw3NCBAQAoraW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgdGV4dHdyYXAKK2ltcG9ydCBjb3B5CitpbXBvcnQgcGlja2xlCitpbXBvcnQgZW1haWwKK2ltcG9ydCBlbWFpbC5tZXNzYWdlCitmcm9tIGVtYWlsIGltcG9ydCBwb2xpY3kKK2Zyb20gZW1haWwuaGVhZGVycmVnaXN0cnkgaW1wb3J0IEhlYWRlclJlZ2lzdHJ5Citmcm9tIHRlc3QudGVzdF9lbWFpbCBpbXBvcnQgVGVzdEVtYWlsQmFzZSwgcGFyYW1ldGVyaXplCisKKworQHBhcmFtZXRlcml6ZQorY2xhc3MgVGVzdFBpY2tsZUNvcHlIZWFkZXIoVGVzdEVtYWlsQmFzZSk6CisKKyAgICBoZWFkZXJfZmFjdG9yeSA9IEhlYWRlclJlZ2lzdHJ5KCkKKworICAgIHVuc3RydWN0dXJlZCA9IGhlYWRlcl9mYWN0b3J5KCdzdWJqZWN0JywgJ3RoaXMgaXMgYSB0ZXN0JykKKworICAgIGhlYWRlcl9wYXJhbXMgPSB7CisgICAgICAgICdzdWJqZWN0JzogKCdzdWJqZWN0JywgJ3RoaXMgaXMgYSB0ZXN0JyksCisgICAgICAgICdmcm9tJzogICAgKCdmcm9tJywgICAgJ2Zyb2RvQG1vcmRvci5uZXQnKSwKKyAgICAgICAgJ3RvJzogICAgICAoJ3RvJywgICAgICAnYToga0BiLmNvbSwgeUB6LmNvbTssIGpAZi5jb20nKSwKKyAgICAgICAgJ2RhdGUnOiAgICAoJ2RhdGUnLCAgICAnVHVlLCAyOSBNYXkgMjAxMiAwOToyNDoyNiArMTAwMCcpLAorICAgICAgICB9CisKKyAgICBkZWYgaGVhZGVyX2FzX2RlZXBjb3B5KHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgaGVhZGVyID0gc2VsZi5oZWFkZXJfZmFjdG9yeShuYW1lLCB2YWx1ZSkKKyAgICAgICAgaCA9IGNvcHkuZGVlcGNvcHkoaGVhZGVyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihoKSwgc3RyKGhlYWRlcikpCisKKyAgICBkZWYgaGVhZGVyX2FzX3BpY2tsZShzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIGhlYWRlciA9IHNlbGYuaGVhZGVyX2ZhY3RvcnkobmFtZSwgdmFsdWUpCisgICAgICAgIHAgPSBwaWNrbGUuZHVtcHMoaGVhZGVyKQorICAgICAgICBoID0gcGlja2xlLmxvYWRzKHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGgpLCBzdHIoaGVhZGVyKSkKKworCitAcGFyYW1ldGVyaXplCitjbGFzcyBUZXN0UGlja2xlQ29weU1lc3NhZ2UoVGVzdEVtYWlsQmFzZSk6CisKKyAgICAjIE1lc3NhZ2Ugb2JqZWN0cyBhcmUgYSBzZXF1ZW5jZSwgc28gd2UgaGF2ZSB0byBtYWtlIHRoZW0gYSBvbmUtdHVwbGUgaW4KKyAgICAjIG1zZ19wYXJhbXMgc28gdGhleSBnZXQgcGFzc2VkIHRvIHRoZSBwYXJhbWV0ZXJpemVkIHRlc3QgbWV0aG9kIGFzIGEKKyAgICAjIHNpbmdsZSBhcmd1bWVudCBpbnN0ZWFkIG9mIGFzIGEgbGlzdCBvZiBoZWFkZXJzLgorICAgIG1zZ19wYXJhbXMgPSB7fQorCisgICAgIyBOb3RlOiB0aGVyZSB3aWxsIGJlIG5vIGN1c3RvbSBoZWFkZXIgb2JqZWN0cyBpbiB0aGUgcGFyc2VkIG1lc3NhZ2UuCisgICAgbXNnX3BhcmFtc1sncGFyc2VkJ10gPSAoZW1haWwubWVzc2FnZV9mcm9tX3N0cmluZyh0ZXh0d3JhcC5kZWRlbnQoIiIiXAorICAgICAgICBEYXRlOiBUdWUsIDI5IE1heSAyMDEyIDA5OjI0OjI2ICsxMDAwCisgICAgICAgIEZyb206IGZyb2RvQG1vcmRvci5uZXQKKyAgICAgICAgVG86IGJpbGJvQHVuZGVyaGlsbC5vcmcKKyAgICAgICAgU3ViamVjdDogaGVscAorCisgICAgICAgIEkgdGhpbmsgSSBmb3Jnb3QgdGhlIHJpbmcuCisgICAgICAgICIiIiksIHBvbGljeT1wb2xpY3kuZGVmYXVsdCksKQorCisgICAgbXNnX3BhcmFtc1snY3JlYXRlZCddID0gKGVtYWlsLm1lc3NhZ2UuTWVzc2FnZShwb2xpY3k9cG9saWN5LmRlZmF1bHQpLCkKKyAgICBtc2dfcGFyYW1zWydjcmVhdGVkJ11bMF1bJ0RhdGUnXSA9ICdUdWUsIDI5IE1heSAyMDEyIDA5OjI0OjI2ICsxMDAwJworICAgIG1zZ19wYXJhbXNbJ2NyZWF0ZWQnXVswXVsnRnJvbSddID0gJ2Zyb2RvQG1vcmRvci5uZXQnCisgICAgbXNnX3BhcmFtc1snY3JlYXRlZCddWzBdWydUbyddID0gJ2JpbGJvQHVuZGVyaGlsbC5vcmcnCisgICAgbXNnX3BhcmFtc1snY3JlYXRlZCddWzBdWydTdWJqZWN0J10gPSAnaGVscCcKKyAgICBtc2dfcGFyYW1zWydjcmVhdGVkJ11bMF0uc2V0X3BheWxvYWQoJ0kgdGhpbmsgSSBmb3Jnb3QgdGhlIHJpbmcuJykKKworICAgIGRlZiBtc2dfYXNfZGVlcGNvcHkoc2VsZiwgbXNnKToKKyAgICAgICAgbXNnMiA9IGNvcHkuZGVlcGNvcHkobXNnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZzIuYXNfc3RyaW5nKCksIG1zZy5hc19zdHJpbmcoKSkKKworICAgIGRlZiBtc2dfYXNfcGlja2xlKHNlbGYsIG1zZyk6CisgICAgICAgIHAgPSBwaWNrbGUuZHVtcHMobXNnKQorICAgICAgICBtc2cyID0gcGlja2xlLmxvYWRzKHApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnMi5hc19zdHJpbmcoKSwgbXNnLmFzX3N0cmluZygpKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfcG9saWN5LnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X3BvbGljeS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODNiZDQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X3BvbGljeS5weQpAQCAtMCwwICsxLDMyMiBAQAoraW1wb3J0IGlvCitpbXBvcnQgdHlwZXMKK2ltcG9ydCB0ZXh0d3JhcAoraW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgZW1haWwucG9saWN5CitpbXBvcnQgZW1haWwucGFyc2VyCitpbXBvcnQgZW1haWwuZ2VuZXJhdG9yCitmcm9tIGVtYWlsIGltcG9ydCBoZWFkZXJyZWdpc3RyeQorCitkZWYgbWFrZV9kZWZhdWx0cyhiYXNlX2RlZmF1bHRzLCBkaWZmZXJlbmNlcyk6CisgICAgZGVmYXVsdHMgPSBiYXNlX2RlZmF1bHRzLmNvcHkoKQorICAgIGRlZmF1bHRzLnVwZGF0ZShkaWZmZXJlbmNlcykKKyAgICByZXR1cm4gZGVmYXVsdHMKKworY2xhc3MgUG9saWN5QVBJVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgbG9uZ01lc3NhZ2UgPSBUcnVlCisKKyAgICAjIEJhc2UgZGVmYXVsdCB2YWx1ZXMuCisgICAgY29tcGF0MzJfZGVmYXVsdHMgPSB7CisgICAgICAgICdtYXhfbGluZV9sZW5ndGgnOiAgICAgICAgICA3OCwKKyAgICAgICAgJ2xpbmVzZXAnOiAgICAgICAgICAgICAgICAgICdcbicsCisgICAgICAgICdjdGVfdHlwZSc6ICAgICAgICAgICAgICAgICAnOGJpdCcsCisgICAgICAgICdyYWlzZV9vbl9kZWZlY3QnOiAgICAgICAgICBGYWxzZSwKKyAgICAgICAgfQorICAgICMgVGhlc2UgZGVmYXVsdCB2YWx1ZXMgYXJlIHRoZSBvbmVzIHNldCBvbiBlbWFpbC5wb2xpY3kuZGVmYXVsdC4KKyAgICAjIElmIGFueSBvZiB0aGVzZSBkZWZhdWx0cyBjaGFuZ2UsIHRoZSBkb2NzIG11c3QgYmUgdXBkYXRlZC4KKyAgICBwb2xpY3lfZGVmYXVsdHMgPSBjb21wYXQzMl9kZWZhdWx0cy5jb3B5KCkKKyAgICBwb2xpY3lfZGVmYXVsdHMudXBkYXRlKHsKKyAgICAgICAgJ3JhaXNlX29uX2RlZmVjdCc6ICAgICAgICAgIEZhbHNlLAorICAgICAgICAnaGVhZGVyX2ZhY3RvcnknOiAgICAgICAgICAgZW1haWwucG9saWN5LkVtYWlsUG9saWN5LmhlYWRlcl9mYWN0b3J5LAorICAgICAgICAncmVmb2xkX3NvdXJjZSc6ICAgICAgICAgICAgJ2xvbmcnLAorICAgICAgICB9KQorCisgICAgIyBGb3IgZWFjaCBwb2xpY3kgdW5kZXIgdGVzdCwgd2UgZ2l2ZSBoZXJlIHdoYXQgd2UgZXhwZWN0IHRoZSBkZWZhdWx0cyB0bworICAgICMgYmUgZm9yIHRoYXQgcG9saWN5LiAgVGhlIHNlY29uZCBhcmd1bWVudCB0byBtYWtlIGRlZmF1bHRzIGlzIHRoZQorICAgICMgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBiYXNlIGRlZmF1bHRzIGFuZCB0aGF0IGZvciB0aGUgcGFydGljdWxhciBwb2xpY3kuCisgICAgbmV3X3BvbGljeSA9IGVtYWlsLnBvbGljeS5FbWFpbFBvbGljeSgpCisgICAgcG9saWNpZXMgPSB7CisgICAgICAgIGVtYWlsLnBvbGljeS5jb21wYXQzMjogbWFrZV9kZWZhdWx0cyhjb21wYXQzMl9kZWZhdWx0cywge30pLAorICAgICAgICBlbWFpbC5wb2xpY3kuZGVmYXVsdDogbWFrZV9kZWZhdWx0cyhwb2xpY3lfZGVmYXVsdHMsIHt9KSwKKyAgICAgICAgZW1haWwucG9saWN5LlNNVFA6IG1ha2VfZGVmYXVsdHMocG9saWN5X2RlZmF1bHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2xpbmVzZXAnOiAnXHJcbid9KSwKKyAgICAgICAgZW1haWwucG9saWN5LkhUVFA6IG1ha2VfZGVmYXVsdHMocG9saWN5X2RlZmF1bHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2xpbmVzZXAnOiAnXHJcbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xpbmVfbGVuZ3RoJzogTm9uZX0pLAorICAgICAgICBlbWFpbC5wb2xpY3kuc3RyaWN0OiBtYWtlX2RlZmF1bHRzKHBvbGljeV9kZWZhdWx0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J3JhaXNlX29uX2RlZmVjdCc6IFRydWV9KSwKKyAgICAgICAgbmV3X3BvbGljeTogbWFrZV9kZWZhdWx0cyhwb2xpY3lfZGVmYXVsdHMsIHt9KSwKKyAgICAgICAgfQorICAgICMgQ3JlYXRpbmcgYSBuZXcgcG9saWN5IGNyZWF0ZXMgYSBuZXcgaGVhZGVyIGZhY3RvcnkuICBUaGVyZSBpcyBhIHRlc3QKKyAgICAjIGxhdGVyIHRoYXQgcHJvdmVzIHRoaXMuCisgICAgcG9saWNpZXNbbmV3X3BvbGljeV1bJ2hlYWRlcl9mYWN0b3J5J10gPSBuZXdfcG9saWN5LmhlYWRlcl9mYWN0b3J5CisKKyAgICBkZWYgdGVzdF9kZWZhdWx0cyhzZWxmKToKKyAgICAgICAgZm9yIHBvbGljeSwgZXhwZWN0ZWQgaW4gc2VsZi5wb2xpY2llcy5pdGVtcygpOgorICAgICAgICAgICAgZm9yIGF0dHIsIHZhbHVlIGluIGV4cGVjdGVkLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRhdHRyKHBvbGljeSwgYXR0ciksIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImNoYW5nZSB7fSBkb2NzL2RvY3N0cmluZ3MgaWYgZGVmYXVsdHMgaGF2ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGFuZ2VkIikuZm9ybWF0KHBvbGljeSkpCisKKyAgICBkZWYgdGVzdF9hbGxfYXR0cmlidXRlc19jb3ZlcmVkKHNlbGYpOgorICAgICAgICBmb3IgcG9saWN5LCBleHBlY3RlZCBpbiBzZWxmLnBvbGljaWVzLml0ZW1zKCk6CisgICAgICAgICAgICBmb3IgYXR0ciBpbiBkaXIocG9saWN5KToKKyAgICAgICAgICAgICAgICBpZiAoYXR0ci5zdGFydHN3aXRoKCdfJykgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzaW5zdGFuY2UoZ2V0YXR0cihlbWFpbC5wb2xpY3kuRW1haWxQb2xpY3ksIGF0dHIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZXMuRnVuY3Rpb25UeXBlKSk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihhdHRyLCBleHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAie30gaXMgbm90IGZ1bGx5IHRlc3RlZCIuZm9ybWF0KGF0dHIpKQorCisgICAgZGVmIHRlc3RfYWJjKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcikgYXMgY206CisgICAgICAgICAgICBlbWFpbC5wb2xpY3kuUG9saWN5KCkKKyAgICAgICAgbXNnID0gc3RyKGNtLmV4Y2VwdGlvbikKKyAgICAgICAgYWJzdHJhY3RfbWV0aG9kcyA9ICgnZm9sZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvbGRfYmluYXJ5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVhZGVyX2ZldGNoX3BhcnNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVhZGVyX3NvdXJjZV9wYXJzZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlYWRlcl9zdG9yZV9wYXJzZScpCisgICAgICAgIGZvciBtZXRob2QgaW4gYWJzdHJhY3RfbWV0aG9kczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4obWV0aG9kLCBtc2cpCisKKyAgICBkZWYgdGVzdF9wb2xpY3lfaXNfaW1tdXRhYmxlKHNlbGYpOgorICAgICAgICBmb3IgcG9saWN5LCBkZWZhdWx0cyBpbiBzZWxmLnBvbGljaWVzLml0ZW1zKCk6CisgICAgICAgICAgICBmb3IgYXR0ciBpbiBkZWZhdWx0czoKKyAgICAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoQXR0cmlidXRlRXJyb3IsIGF0dHIrIi4qcmVhZC1vbmx5Iik6CisgICAgICAgICAgICAgICAgICAgIHNldGF0dHIocG9saWN5LCBhdHRyLCBOb25lKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KEF0dHJpYnV0ZUVycm9yLCAnbm8gYXR0cmlidXRlLipmb28nKToKKyAgICAgICAgICAgICAgICBwb2xpY3kuZm9vID0gTm9uZQorCisgICAgZGVmIHRlc3Rfc2V0X3BvbGljeV9hdHRyc193aGVuX2Nsb25lZChzZWxmKToKKyAgICAgICAgIyBOb25lIG9mIHRoZSBhdHRyaWJ1dGVzIGhhcyBhIGRlZmF1bHQgdmFsdWUgb2YgTm9uZSwgc28gd2Ugc2V0IHRoZW0KKyAgICAgICAgIyBhbGwgdG8gTm9uZSBpbiB0aGUgY2xvbmUgY2FsbCBhbmQgY2hlY2sgdGhhdCBpdCB3b3JrZWQuCisgICAgICAgIGZvciBwb2xpY3ljbGFzcywgZGVmYXVsdHMgaW4gc2VsZi5wb2xpY2llcy5pdGVtcygpOgorICAgICAgICAgICAgdGVzdGF0dHJkaWN0ID0ge2F0dHI6IE5vbmUgZm9yIGF0dHIgaW4gZGVmYXVsdHN9CisgICAgICAgICAgICBwb2xpY3kgPSBwb2xpY3ljbGFzcy5jbG9uZSgqKnRlc3RhdHRyZGljdCkKKyAgICAgICAgICAgIGZvciBhdHRyIGluIGRlZmF1bHRzOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGdldGF0dHIocG9saWN5LCBhdHRyKSkKKworICAgIGRlZiB0ZXN0X3JlamVjdF9ub25fcG9saWN5X2tleXdvcmRfd2hlbl9jYWxsZWQoc2VsZik6CisgICAgICAgIGZvciBwb2xpY3ljbGFzcyBpbiBzZWxmLnBvbGljaWVzOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgICAgIHBvbGljeWNsYXNzKHRoaXNfa2V5d29yZF9zaG91bGRfbm90X2JlX3ZhbGlkPU5vbmUpCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICAgICAgcG9saWN5Y2xhc3MobmV3dGxpbmU9Tm9uZSkKKworICAgIGRlZiB0ZXN0X3BvbGljeV9hZGRpdGlvbihzZWxmKToKKyAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLnBvbGljeV9kZWZhdWx0cy5jb3B5KCkKKyAgICAgICAgcDEgPSBlbWFpbC5wb2xpY3kuZGVmYXVsdC5jbG9uZShtYXhfbGluZV9sZW5ndGg9MTAwKQorICAgICAgICBwMiA9IGVtYWlsLnBvbGljeS5kZWZhdWx0LmNsb25lKG1heF9saW5lX2xlbmd0aD01MCkKKyAgICAgICAgYWRkZWQgPSBwMSArIHAyCisgICAgICAgIGV4cGVjdGVkLnVwZGF0ZShtYXhfbGluZV9sZW5ndGg9NTApCisgICAgICAgIGZvciBhdHRyLCB2YWx1ZSBpbiBleHBlY3RlZC5pdGVtcygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRhdHRyKGFkZGVkLCBhdHRyKSwgdmFsdWUpCisgICAgICAgIGFkZGVkID0gcDIgKyBwMQorICAgICAgICBleHBlY3RlZC51cGRhdGUobWF4X2xpbmVfbGVuZ3RoPTEwMCkKKyAgICAgICAgZm9yIGF0dHIsIHZhbHVlIGluIGV4cGVjdGVkLml0ZW1zKCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldGF0dHIoYWRkZWQsIGF0dHIpLCB2YWx1ZSkKKyAgICAgICAgYWRkZWQgPSBhZGRlZCArIGVtYWlsLnBvbGljeS5kZWZhdWx0CisgICAgICAgIGZvciBhdHRyLCB2YWx1ZSBpbiBleHBlY3RlZC5pdGVtcygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRhdHRyKGFkZGVkLCBhdHRyKSwgdmFsdWUpCisKKyAgICBkZWYgdGVzdF9yZWdpc3Rlcl9kZWZlY3Qoc2VsZik6CisgICAgICAgIGNsYXNzIER1bW15OgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuZGVmZWN0cyA9IFtdCisgICAgICAgIG9iaiA9IER1bW15KCkKKyAgICAgICAgZGVmZWN0ID0gb2JqZWN0KCkKKyAgICAgICAgcG9saWN5ID0gZW1haWwucG9saWN5LkVtYWlsUG9saWN5KCkKKyAgICAgICAgcG9saWN5LnJlZ2lzdGVyX2RlZmVjdChvYmosIGRlZmVjdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvYmouZGVmZWN0cywgW2RlZmVjdF0pCisgICAgICAgIGRlZmVjdDIgPSBvYmplY3QoKQorICAgICAgICBwb2xpY3kucmVnaXN0ZXJfZGVmZWN0KG9iaiwgZGVmZWN0MikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvYmouZGVmZWN0cywgW2RlZmVjdCwgZGVmZWN0Ml0pCisKKyAgICBjbGFzcyBNeU9iajoKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5kZWZlY3RzID0gW10KKworICAgIGNsYXNzIE15RGVmZWN0KEV4Y2VwdGlvbik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0X2hhbmRsZV9kZWZlY3RfcmFpc2VzX29uX3N0cmljdChzZWxmKToKKyAgICAgICAgZm9vID0gc2VsZi5NeU9iaigpCisgICAgICAgIGRlZmVjdCA9IHNlbGYuTXlEZWZlY3QoInRoZSB0ZWxseSBpcyBicm9rZW4iKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoc2VsZi5NeURlZmVjdCwgInRoZSB0ZWxseSBpcyBicm9rZW4iKToKKyAgICAgICAgICAgIGVtYWlsLnBvbGljeS5zdHJpY3QuaGFuZGxlX2RlZmVjdChmb28sIGRlZmVjdCkKKworICAgIGRlZiB0ZXN0X2hhbmRsZV9kZWZlY3RfcmVnaXN0ZXJzX2RlZmVjdChzZWxmKToKKyAgICAgICAgZm9vID0gc2VsZi5NeU9iaigpCisgICAgICAgIGRlZmVjdDEgPSBzZWxmLk15RGVmZWN0KCJvbmUiKQorICAgICAgICBlbWFpbC5wb2xpY3kuZGVmYXVsdC5oYW5kbGVfZGVmZWN0KGZvbywgZGVmZWN0MSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uZGVmZWN0cywgW2RlZmVjdDFdKQorICAgICAgICBkZWZlY3QyID0gc2VsZi5NeURlZmVjdCgidHdvIikKKyAgICAgICAgZW1haWwucG9saWN5LmRlZmF1bHQuaGFuZGxlX2RlZmVjdChmb28sIGRlZmVjdDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLmRlZmVjdHMsIFtkZWZlY3QxLCBkZWZlY3QyXSkKKworICAgIGNsYXNzIE15UG9saWN5KGVtYWlsLnBvbGljeS5FbWFpbFBvbGljeSk6CisgICAgICAgIGRlZmVjdHMgPSBOb25lCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgICAgICBzdXBlcigpLl9faW5pdF9fKCphcmdzLCBkZWZlY3RzPVtdLCAqKmt3KQorICAgICAgICBkZWYgcmVnaXN0ZXJfZGVmZWN0KHNlbGYsIG9iaiwgZGVmZWN0KToKKyAgICAgICAgICAgIHNlbGYuZGVmZWN0cy5hcHBlbmQoZGVmZWN0KQorCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGRlbl9yZWdpc3Rlcl9kZWZlY3Rfc3RpbGxfcmFpc2VzKHNlbGYpOgorICAgICAgICBmb28gPSBzZWxmLk15T2JqKCkKKyAgICAgICAgZGVmZWN0ID0gc2VsZi5NeURlZmVjdCgidGhlIHRlbGx5IGlzIGJyb2tlbiIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChzZWxmLk15RGVmZWN0LCAidGhlIHRlbGx5IGlzIGJyb2tlbiIpOgorICAgICAgICAgICAgc2VsZi5NeVBvbGljeShyYWlzZV9vbl9kZWZlY3Q9VHJ1ZSkuaGFuZGxlX2RlZmVjdChmb28sIGRlZmVjdCkKKworICAgIGRlZiB0ZXN0X292ZXJyaWRlbl9yZWdpc3Rlcl9kZWZlY3Rfd29ya3Moc2VsZik6CisgICAgICAgIGZvbyA9IHNlbGYuTXlPYmooKQorICAgICAgICBkZWZlY3QxID0gc2VsZi5NeURlZmVjdCgib25lIikKKyAgICAgICAgbXlfcG9saWN5ID0gc2VsZi5NeVBvbGljeSgpCisgICAgICAgIG15X3BvbGljeS5oYW5kbGVfZGVmZWN0KGZvbywgZGVmZWN0MSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChteV9wb2xpY3kuZGVmZWN0cywgW2RlZmVjdDFdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5kZWZlY3RzLCBbXSkKKyAgICAgICAgZGVmZWN0MiA9IHNlbGYuTXlEZWZlY3QoInR3byIpCisgICAgICAgIG15X3BvbGljeS5oYW5kbGVfZGVmZWN0KGZvbywgZGVmZWN0MikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChteV9wb2xpY3kuZGVmZWN0cywgW2RlZmVjdDEsIGRlZmVjdDJdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5kZWZlY3RzLCBbXSkKKworICAgIGRlZiB0ZXN0X2RlZmF1bHRfaGVhZGVyX2ZhY3Rvcnkoc2VsZik6CisgICAgICAgIGggPSBlbWFpbC5wb2xpY3kuZGVmYXVsdC5oZWFkZXJfZmFjdG9yeSgnVGVzdCcsICd0ZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLm5hbWUsICdUZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGgsIGhlYWRlcnJlZ2lzdHJ5LlVuc3RydWN0dXJlZEhlYWRlcikKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGgsIGhlYWRlcnJlZ2lzdHJ5LkJhc2VIZWFkZXIpCisKKyAgICBjbGFzcyBGb286CisgICAgICAgIHBhcnNlID0gaGVhZGVycmVnaXN0cnkuVW5zdHJ1Y3R1cmVkSGVhZGVyLnBhcnNlCisKKyAgICBkZWYgdGVzdF9lYWNoX1BvbGljeV9nZXRzX3VuaXF1ZV9mYWN0b3J5KHNlbGYpOgorICAgICAgICBwb2xpY3kxID0gZW1haWwucG9saWN5LkVtYWlsUG9saWN5KCkKKyAgICAgICAgcG9saWN5MiA9IGVtYWlsLnBvbGljeS5FbWFpbFBvbGljeSgpCisgICAgICAgIHBvbGljeTEuaGVhZGVyX2ZhY3RvcnkubWFwX3RvX3R5cGUoJ2ZvbycsIHNlbGYuRm9vKQorICAgICAgICBoID0gcG9saWN5MS5oZWFkZXJfZmFjdG9yeSgnZm9vJywgJ3Rlc3QnKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaCwgc2VsZi5Gb28pCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SXNJbnN0YW5jZShoLCBoZWFkZXJyZWdpc3RyeS5VbnN0cnVjdHVyZWRIZWFkZXIpCisgICAgICAgIGggPSBwb2xpY3kyLmhlYWRlcl9mYWN0b3J5KCdmb28nLCAndGVzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SXNJbnN0YW5jZShoLCBzZWxmLkZvbykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGgsIGhlYWRlcnJlZ2lzdHJ5LlVuc3RydWN0dXJlZEhlYWRlcikKKworICAgIGRlZiB0ZXN0X2Nsb25lX2NvcGllc19mYWN0b3J5KHNlbGYpOgorICAgICAgICBwb2xpY3kxID0gZW1haWwucG9saWN5LkVtYWlsUG9saWN5KCkKKyAgICAgICAgcG9saWN5MiA9IHBvbGljeTEuY2xvbmUoKQorICAgICAgICBwb2xpY3kxLmhlYWRlcl9mYWN0b3J5Lm1hcF90b190eXBlKCdmb28nLCBzZWxmLkZvbykKKyAgICAgICAgaCA9IHBvbGljeTEuaGVhZGVyX2ZhY3RvcnkoJ2ZvbycsICd0ZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGgsIHNlbGYuRm9vKQorICAgICAgICBoID0gcG9saWN5Mi5oZWFkZXJfZmFjdG9yeSgnZm9vJywgJ3Rlc3QnKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaCwgc2VsZi5Gb28pCisKKyAgICBkZWYgdGVzdF9uZXdfZmFjdG9yeV9vdmVycmlkZXNfZGVmYXVsdChzZWxmKToKKyAgICAgICAgbXlwb2xpY3kgPSBlbWFpbC5wb2xpY3kuRW1haWxQb2xpY3koKQorICAgICAgICBteWZhY3RvcnkgPSBteXBvbGljeS5oZWFkZXJfZmFjdG9yeQorICAgICAgICBuZXdwb2xpY3kgPSBteXBvbGljeSArIGVtYWlsLnBvbGljeS5zdHJpY3QKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdwb2xpY3kuaGVhZGVyX2ZhY3RvcnksIG15ZmFjdG9yeSkKKyAgICAgICAgbmV3cG9saWN5ID0gZW1haWwucG9saWN5LnN0cmljdCArIG15cG9saWN5CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3cG9saWN5LmhlYWRlcl9mYWN0b3J5LCBteWZhY3RvcnkpCisKKyAgICBkZWYgdGVzdF9hZGRpbmdfZGVmYXVsdF9wb2xpY2llc19wcmVzZXJ2ZXNfZGVmYXVsdF9mYWN0b3J5KHNlbGYpOgorICAgICAgICBuZXdwb2xpY3kgPSBlbWFpbC5wb2xpY3kuZGVmYXVsdCArIGVtYWlsLnBvbGljeS5zdHJpY3QKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdwb2xpY3kuaGVhZGVyX2ZhY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgZW1haWwucG9saWN5LkVtYWlsUG9saWN5LmhlYWRlcl9mYWN0b3J5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld3BvbGljeS5fX2RpY3RfXywgeydyYWlzZV9vbl9kZWZlY3QnOiBUcnVlfSkKKworICAgICMgWFhYOiBOZWVkIHN1YmNsYXNzaW5nIHRlc3RzLgorICAgICMgRm9yIGFkZGluZyBzdWJjbGFzc2VkIG9iamVjdHMsIG1ha2Ugc3VyZSB0aGUgdXN1YWwgcnVsZXMgYXBwbHkgKHN1YmNsYXNzCisgICAgIyB3aW5zKSwgYnV0IHRoYXQgdGhlIG9yZGVyIHN0aWxsIHdvcmtzIChyaWdodCBvdmVycmlkZXMgbGVmdCkuCisKKworY2xhc3MgVGVzdFBvbGljeVByb3BhZ2F0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgICMgVGhlIGFic3RyYWN0IG1ldGhvZHMgYXJlIHVzZWQgYnkgdGhlIHBhcnNlciBidXQgbm90IGJ5IHRoZSB3cmFwcGVyCisgICAgIyBmdW5jdGlvbnMgdGhhdCBjYWxsIGl0LCBzbyBpZiB0aGUgZXhjZXB0aW9uIGdldHMgcmFpc2VkIHdlIGtub3cgdGhhdCB0aGUKKyAgICAjIHBvbGljeSB3YXMgYWN0dWFsbHkgcHJvcGFnYXRlZCBhbGwgdGhlIHdheSB0byBmZWVkcGFyc2VyLgorICAgIGNsYXNzIE15UG9saWN5KGVtYWlsLnBvbGljeS5Qb2xpY3kpOgorICAgICAgICBkZWYgYmFkbWV0aG9kKHNlbGYsICphcmdzLCAqKmt3KToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigidGVzdCIpCisgICAgICAgIGZvbGQgPSBmb2xkX2JpbmFyeSA9IGhlYWRlcl9mZXRjaF9wYXJzZXIgPSBiYWRtZXRob2QKKyAgICAgICAgaGVhZGVyX3NvdXJjZV9wYXJzZSA9IGhlYWRlcl9zdG9yZV9wYXJzZSA9IGJhZG1ldGhvZAorCisgICAgZGVmIHRlc3RfbWVzc2FnZV9mcm9tX3N0cmluZyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KEV4Y2VwdGlvbiwgIl50ZXN0JCIpOgorICAgICAgICAgICAgZW1haWwubWVzc2FnZV9mcm9tX3N0cmluZygiU3ViamVjdDogdGVzdFxuXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3k9c2VsZi5NeVBvbGljeSkKKworICAgIGRlZiB0ZXN0X21lc3NhZ2VfZnJvbV9ieXRlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KEV4Y2VwdGlvbiwgIl50ZXN0JCIpOgorICAgICAgICAgICAgZW1haWwubWVzc2FnZV9mcm9tX2J5dGVzKGIiU3ViamVjdDogdGVzdFxuXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeT1zZWxmLk15UG9saWN5KQorCisgICAgZGVmIHRlc3RfbWVzc2FnZV9mcm9tX2ZpbGUoc2VsZik6CisgICAgICAgIGYgPSBpby5TdHJpbmdJTygnU3ViamVjdDogdGVzdFxuXG4nKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoRXhjZXB0aW9uLCAiXnRlc3QkIik6CisgICAgICAgICAgICBlbWFpbC5tZXNzYWdlX2Zyb21fZmlsZShmLCBwb2xpY3k9c2VsZi5NeVBvbGljeSkKKworICAgIGRlZiB0ZXN0X21lc3NhZ2VfZnJvbV9iaW5hcnlfZmlsZShzZWxmKToKKyAgICAgICAgZiA9IGlvLkJ5dGVzSU8oYidTdWJqZWN0OiB0ZXN0XG5cbicpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChFeGNlcHRpb24sICJedGVzdCQiKToKKyAgICAgICAgICAgIGVtYWlsLm1lc3NhZ2VfZnJvbV9iaW5hcnlfZmlsZShmLCBwb2xpY3k9c2VsZi5NeVBvbGljeSkKKworICAgICMgVGhlc2UgYXJlIHJlZHVuZGFudCwgYnV0IHdlIG5lZWQgdGhlbSBmb3IgYmxhY2stYm94IGNvbXBsZXRlbmVzcy4KKworICAgIGRlZiB0ZXN0X3BhcnNlcihzZWxmKToKKyAgICAgICAgcCA9IGVtYWlsLnBhcnNlci5QYXJzZXIocG9saWN5PXNlbGYuTXlQb2xpY3kpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChFeGNlcHRpb24sICJedGVzdCQiKToKKyAgICAgICAgICAgIHAucGFyc2VzdHIoJ1N1YmplY3Q6IHRlc3RcblxuJykKKworICAgIGRlZiB0ZXN0X2J5dGVzX3BhcnNlcihzZWxmKToKKyAgICAgICAgcCA9IGVtYWlsLnBhcnNlci5CeXRlc1BhcnNlcihwb2xpY3k9c2VsZi5NeVBvbGljeSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KEV4Y2VwdGlvbiwgIl50ZXN0JCIpOgorICAgICAgICAgICAgcC5wYXJzZWJ5dGVzKGInU3ViamVjdDogdGVzdFxuXG4nKQorCisgICAgIyBOb3cgdGhhdCB3ZSd2ZSBlc3RhYmxpc2hlZCB0aGF0IGFsbCB0aGUgcGFyc2UgbWV0aG9kcyBnZXQgdGhlCisgICAgIyBwb2xpY3kgaW4gdG8gZmVlZHBhcnNlciwgd2UgY2FuIHVzZSBtZXNzYWdlX2Zyb21fc3RyaW5nIGZvcgorICAgICMgdGhlIHJlc3Qgb2YgdGhlIHByb3BhZ2F0aW9uIHRlc3RzLgorCisgICAgZGVmIF9tYWtlX21zZyhzZWxmLCBzb3VyY2U9J1N1YmplY3Q6IHRlc3RcblxuJywgcG9saWN5PU5vbmUpOgorICAgICAgICBzZWxmLnBvbGljeSA9IGVtYWlsLnBvbGljeS5kZWZhdWx0LmNsb25lKCkgaWYgcG9saWN5IGlzIE5vbmUgZWxzZSBwb2xpY3kKKyAgICAgICAgcmV0dXJuIGVtYWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcoc291cmNlLCBwb2xpY3k9c2VsZi5wb2xpY3kpCisKKyAgICBkZWYgdGVzdF9wYXJzZXJfcHJvcGFnYXRlc19wb2xpY3lfdG9fbWVzc2FnZShzZWxmKToKKyAgICAgICAgbXNnID0gc2VsZi5fbWFrZV9tc2coKQorICAgICAgICBzZWxmLmFzc2VydElzKG1zZy5wb2xpY3ksIHNlbGYucG9saWN5KQorCisgICAgZGVmIHRlc3RfcGFyc2VyX3Byb3BhZ2F0ZXNfcG9saWN5X3RvX3N1Yl9tZXNzYWdlcyhzZWxmKToKKyAgICAgICAgbXNnID0gc2VsZi5fbWFrZV9tc2codGV4dHdyYXAuZGVkZW50KCIiIlwKKyAgICAgICAgICAgIFN1YmplY3Q6IG1pbWUgdGVzdAorICAgICAgICAgICAgTUlNRS1WZXJzaW9uOiAxLjAKKyAgICAgICAgICAgIENvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkLCBib3VuZGFyeT0iWFhYIgorCisgICAgICAgICAgICAtLVhYWAorICAgICAgICAgICAgQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCisKKyAgICAgICAgICAgIHRlc3QKKyAgICAgICAgICAgIC0tWFhYCisgICAgICAgICAgICBDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KKworICAgICAgICAgICAgdGVzdDIKKyAgICAgICAgICAgIC0tWFhYLS0KKyAgICAgICAgICAgICIiIikpCisgICAgICAgIGZvciBwYXJ0IGluIG1zZy53YWxrKCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHBhcnQucG9saWN5LCBzZWxmLnBvbGljeSkKKworICAgIGRlZiB0ZXN0X21lc3NhZ2VfcG9saWN5X3Byb3BhZ2F0ZXNfdG9fZ2VuZXJhdG9yKHNlbGYpOgorICAgICAgICBtc2cgPSBzZWxmLl9tYWtlX21zZygiU3ViamVjdDogdGVzdFxuVG86IGZvb1xuXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3k9ZW1haWwucG9saWN5LmRlZmF1bHQuY2xvbmUobGluZXNlcD0nWCcpKQorICAgICAgICBzID0gaW8uU3RyaW5nSU8oKQorICAgICAgICBnID0gZW1haWwuZ2VuZXJhdG9yLkdlbmVyYXRvcihzKQorICAgICAgICBnLmZsYXR0ZW4obXNnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwgIlN1YmplY3Q6IHRlc3RYVG86IGZvb1hYIikKKworICAgIGRlZiB0ZXN0X21lc3NhZ2VfcG9saWN5X3VzZWRfYnlfYXNfc3RyaW5nKHNlbGYpOgorICAgICAgICBtc2cgPSBzZWxmLl9tYWtlX21zZygiU3ViamVjdDogdGVzdFxuVG86IGZvb1xuXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3k9ZW1haWwucG9saWN5LmRlZmF1bHQuY2xvbmUobGluZXNlcD0nWCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZy5hc19zdHJpbmcoKSwgIlN1YmplY3Q6IHRlc3RYVG86IGZvb1hYIikKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X3V0aWxzLnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90ZXN0X3V0aWxzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ5YzRkNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC90ZXN0X2VtYWlsL3Rlc3RfdXRpbHMucHkKQEAgLTAsMCArMSwxMTggQEAKK2ltcG9ydCBkYXRldGltZQorZnJvbSBlbWFpbCBpbXBvcnQgdXRpbHMKK2ltcG9ydCB0ZXN0LnN1cHBvcnQKK2ltcG9ydCB0aW1lCitpbXBvcnQgdW5pdHRlc3QKKworY2xhc3MgRGF0ZVRpbWVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkYXRlc3RyaW5nID0gJ1N1biwgMjMgU2VwIDIwMDEgMjA6MTA6NTUnCisgICAgZGF0ZWFyZ3MgPSAoMjAwMSwgOSwgMjMsIDIwLCAxMCwgNTUpCisgICAgb2Zmc2V0c3RyaW5nID0gJyAtMDcwMCcKKyAgICB1dGNvZmZzZXQgPSBkYXRldGltZS50aW1lZGVsdGEoaG91cnM9LTcpCisgICAgdHogPSBkYXRldGltZS50aW1lem9uZSh1dGNvZmZzZXQpCisgICAgbmFpdmVfZHQgPSBkYXRldGltZS5kYXRldGltZSgqZGF0ZWFyZ3MpCisgICAgYXdhcmVfZHQgPSBkYXRldGltZS5kYXRldGltZSgqZGF0ZWFyZ3MsIHR6aW5mbz10eikKKworICAgIGRlZiB0ZXN0X25haXZlX2RhdGV0aW1lKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHV0aWxzLmZvcm1hdF9kYXRldGltZShzZWxmLm5haXZlX2R0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGVzdHJpbmcgKyAnIC0wMDAwJykKKworICAgIGRlZiB0ZXN0X2F3YXJlX2RhdGV0aW1lKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHV0aWxzLmZvcm1hdF9kYXRldGltZShzZWxmLmF3YXJlX2R0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRhdGVzdHJpbmcgKyBzZWxmLm9mZnNldHN0cmluZykKKworICAgIGRlZiB0ZXN0X3VzZWdtdChzZWxmKToKKyAgICAgICAgdXRjX2R0ID0gZGF0ZXRpbWUuZGF0ZXRpbWUoKnNlbGYuZGF0ZWFyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR6aW5mbz1kYXRldGltZS50aW1lem9uZS51dGMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodXRpbHMuZm9ybWF0X2RhdGV0aW1lKHV0Y19kdCwgdXNlZ210PVRydWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGF0ZXN0cmluZyArICcgR01UJykKKworICAgIGRlZiB0ZXN0X3VzZWdtdF93aXRoX25haXZlX2RhdGV0aW1lX3JhaXNlcyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIHV0aWxzLmZvcm1hdF9kYXRldGltZShzZWxmLm5haXZlX2R0LCB1c2VnbXQ9VHJ1ZSkKKworICAgIGRlZiB0ZXN0X3VzZWdtdF93aXRoX25vbl91dGNfZGF0ZXRpbWVfcmFpc2VzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgdXRpbHMuZm9ybWF0X2RhdGV0aW1lKHNlbGYuYXdhcmVfZHQsIHVzZWdtdD1UcnVlKQorCisgICAgZGVmIHRlc3RfcGFyc2VkYXRlX3RvX2RhdGV0aW1lKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgdXRpbHMucGFyc2VkYXRlX3RvX2RhdGV0aW1lKHNlbGYuZGF0ZXN0cmluZyArIHNlbGYub2Zmc2V0c3RyaW5nKSwKKyAgICAgICAgICAgIHNlbGYuYXdhcmVfZHQpCisKKyAgICBkZWYgdGVzdF9wYXJzZWRhdGVfdG9fZGF0ZXRpbWVfbmFpdmUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICB1dGlscy5wYXJzZWRhdGVfdG9fZGF0ZXRpbWUoc2VsZi5kYXRlc3RyaW5nICsgJyAtMDAwMCcpLAorICAgICAgICAgICAgc2VsZi5uYWl2ZV9kdCkKKworCitjbGFzcyBMb2NhbHRpbWVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9sb2NhbHRpbWVfaXNfdHpfYXdhcmVfZGF5bGlnaHRfdHJ1ZShzZWxmKToKKyAgICAgICAgdGVzdC5zdXBwb3J0LnBhdGNoKHNlbGYsIHRpbWUsICdkYXlsaWdodCcsIFRydWUpCisgICAgICAgIHQgPSB1dGlscy5sb2NhbHRpbWUoKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHQudHppbmZvLCBOb25lKQorCisgICAgZGVmIHRlc3RfbG9jYWx0aW1lX2lzX3R6X2F3YXJlX2RheWxpZ2h0X2ZhbHNlKHNlbGYpOgorICAgICAgICB0ZXN0LnN1cHBvcnQucGF0Y2goc2VsZiwgdGltZSwgJ2RheWxpZ2h0JywgRmFsc2UpCisgICAgICAgIHQgPSB1dGlscy5sb2NhbHRpbWUoKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHQudHppbmZvLCBOb25lKQorCisgICAgZGVmIHRlc3RfbG9jYWx0aW1lX2RheWxpZ2h0X3RydWVfZHN0X2ZhbHNlKHNlbGYpOgorICAgICAgICB0ZXN0LnN1cHBvcnQucGF0Y2goc2VsZiwgdGltZSwgJ2RheWxpZ2h0JywgVHJ1ZSkKKyAgICAgICAgdDAgPSBkYXRldGltZS5kYXRldGltZSgyMDEyLCAzLCAxMiwgMSwgMSkKKyAgICAgICAgdDEgPSB1dGlscy5sb2NhbHRpbWUodDAsIGlzZHN0PS0xKQorICAgICAgICB0MiA9IHV0aWxzLmxvY2FsdGltZSh0MSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0MSwgdDIpCisKKyAgICBkZWYgdGVzdF9sb2NhbHRpbWVfZGF5bGlnaHRfZmFsc2VfZHN0X2ZhbHNlKHNlbGYpOgorICAgICAgICB0ZXN0LnN1cHBvcnQucGF0Y2goc2VsZiwgdGltZSwgJ2RheWxpZ2h0JywgRmFsc2UpCisgICAgICAgIHQwID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAxMiwgMywgMTIsIDEsIDEpCisgICAgICAgIHQxID0gdXRpbHMubG9jYWx0aW1lKHQwLCBpc2RzdD0tMSkKKyAgICAgICAgdDIgPSB1dGlscy5sb2NhbHRpbWUodDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodDEsIHQyKQorCisgICAgZGVmIHRlc3RfbG9jYWx0aW1lX2RheWxpZ2h0X3RydWVfZHN0X3RydWUoc2VsZik6CisgICAgICAgIHRlc3Quc3VwcG9ydC5wYXRjaChzZWxmLCB0aW1lLCAnZGF5bGlnaHQnLCBUcnVlKQorICAgICAgICB0MCA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMTIsIDMsIDEyLCAxLCAxKQorICAgICAgICB0MSA9IHV0aWxzLmxvY2FsdGltZSh0MCwgaXNkc3Q9MSkKKyAgICAgICAgdDIgPSB1dGlscy5sb2NhbHRpbWUodDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodDEsIHQyKQorCisgICAgZGVmIHRlc3RfbG9jYWx0aW1lX2RheWxpZ2h0X2ZhbHNlX2RzdF90cnVlKHNlbGYpOgorICAgICAgICB0ZXN0LnN1cHBvcnQucGF0Y2goc2VsZiwgdGltZSwgJ2RheWxpZ2h0JywgRmFsc2UpCisgICAgICAgIHQwID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMjAxMiwgMywgMTIsIDEsIDEpCisgICAgICAgIHQxID0gdXRpbHMubG9jYWx0aW1lKHQwLCBpc2RzdD0xKQorICAgICAgICB0MiA9IHV0aWxzLmxvY2FsdGltZSh0MSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0MSwgdDIpCisKKyAgICBkZWYgdGVzdF9sb2NhbHRpbWVfZXBvY2hfdXRjX2RheWxpZ2h0X3RydWUoc2VsZik6CisgICAgICAgIHRlc3Quc3VwcG9ydC5wYXRjaChzZWxmLCB0aW1lLCAnZGF5bGlnaHQnLCBUcnVlKQorICAgICAgICB0MCA9IGRhdGV0aW1lLmRhdGV0aW1lKDE5NzAsIDEsIDEsIHR6aW5mbyA9IGRhdGV0aW1lLnRpbWV6b25lLnV0YykKKyAgICAgICAgdDEgPSB1dGlscy5sb2NhbHRpbWUodDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodDAsIHQxKQorCisgICAgZGVmIHRlc3RfbG9jYWx0aW1lX2Vwb2NoX3V0Y19kYXlsaWdodF9mYWxzZShzZWxmKToKKyAgICAgICAgdGVzdC5zdXBwb3J0LnBhdGNoKHNlbGYsIHRpbWUsICdkYXlsaWdodCcsIEZhbHNlKQorICAgICAgICB0MCA9IGRhdGV0aW1lLmRhdGV0aW1lKDE5NzAsIDEsIDEsIHR6aW5mbyA9IGRhdGV0aW1lLnRpbWV6b25lLnV0YykKKyAgICAgICAgdDEgPSB1dGlscy5sb2NhbHRpbWUodDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodDAsIHQxKQorCisgICAgZGVmIHRlc3RfbG9jYWx0aW1lX2Vwb2NoX25vdHpfZGF5bGlnaHRfdHJ1ZShzZWxmKToKKyAgICAgICAgdGVzdC5zdXBwb3J0LnBhdGNoKHNlbGYsIHRpbWUsICdkYXlsaWdodCcsIFRydWUpCisgICAgICAgIHQwID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMTk3MCwgMSwgMSkKKyAgICAgICAgdDEgPSB1dGlscy5sb2NhbHRpbWUodDApCisgICAgICAgIHQyID0gdXRpbHMubG9jYWx0aW1lKHQwLnJlcGxhY2UodHppbmZvPU5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQxLCB0MikKKworICAgIGRlZiB0ZXN0X2xvY2FsdGltZV9lcG9jaF9ub3R6X2RheWxpZ2h0X2ZhbHNlKHNlbGYpOgorICAgICAgICB0ZXN0LnN1cHBvcnQucGF0Y2goc2VsZiwgdGltZSwgJ2RheWxpZ2h0JywgRmFsc2UpCisgICAgICAgIHQwID0gZGF0ZXRpbWUuZGF0ZXRpbWUoMTk3MCwgMSwgMSkKKyAgICAgICAgdDEgPSB1dGlscy5sb2NhbHRpbWUodDApCisgICAgICAgIHQyID0gdXRpbHMubG9jYWx0aW1lKHQwLnJlcGxhY2UodHppbmZvPU5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQxLCB0MikKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL2VtYWlsL3Rlc3QvdGVzdF9lbWFpbF90b3J0dXJlLnB5IGIvTGliL3Rlc3QvdGVzdF9lbWFpbC90b3J0dXJlX3Rlc3QucHkKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIExpYi9lbWFpbC90ZXN0L3Rlc3RfZW1haWxfdG9ydHVyZS5weQpyZW5hbWUgdG8gTGliL3Rlc3QvdGVzdF9lbWFpbC90b3J0dXJlX3Rlc3QucHkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZW51bWVyYXRlLnB5IGIvTGliL3Rlc3QvdGVzdF9lbnVtZXJhdGUucHkKaW5kZXggMDk1ODIwYi4uMmU5MDRjZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9lbnVtZXJhdGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9lbnVtZXJhdGUucHkKQEAgLTEsNSArMSw2IEBACiBpbXBvcnQgdW5pdHRlc3QKIGltcG9ydCBzeXMKK2ltcG9ydCBwaWNrbGUKIAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiAKQEAgLTYxLDcgKzYyLDI1IEBACiAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZgogCi1jbGFzcyBFbnVtZXJhdGVUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBQaWNrbGVUZXN0OgorICAgICMgSGVscGVyIHRvIGNoZWNrIHBpY2tsYWJpbGl0eQorICAgIGRlZiBjaGVja19waWNrbGUoc2VsZiwgaXRvcmcsIHNlcSk6CisgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXRvcmcpCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShpdG9yZyksIHR5cGUoaXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoaXQpLCBzZXEpCisKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbmV4dChpdCkKKyAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlcVsxOl0pCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdCkKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0KSwgc2VxWzE6XSkKKworY2xhc3MgRW51bWVyYXRlVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UsIFBpY2tsZVRlc3QpOgogCiAgICAgZW51bSA9IGVudW1lcmF0ZQogICAgIHNlcSwgcmVzID0gJ2FiYycsIFsoMCwnYScpLCAoMSwnYicpLCAoMiwnYycpXQpAQCAtNzMsNiArOTIsOSBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc2VsZi5lbnVtKHNlbGYuc2VxKSksIHNlbGYucmVzKQogICAgICAgICBzZWxmLmVudW0uX19kb2NfXwogCisgICAgZGVmIHRlc3RfcGlja2xlKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX3BpY2tsZShzZWxmLmVudW0oc2VsZi5zZXEpLCBzZWxmLnJlcykKKwogICAgIGRlZiB0ZXN0X2dldGl0ZW1zZXFuKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc2VsZi5lbnVtKEcoc2VsZi5zZXEpKSksIHNlbGYucmVzKQogICAgICAgICBlID0gc2VsZi5lbnVtKEcoJycpKQpAQCAtMTI2LDcgKzE0OCw3IEBACiAgICAgc2VxID0gcmFuZ2UoMTAsMjAwMDAsMikKICAgICByZXMgPSBsaXN0KHppcChyYW5nZSgyMDAwMCksIHNlcSkpCiAKLWNsYXNzIFRlc3RSZXZlcnNlZCh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBUZXN0UmV2ZXJzZWQodW5pdHRlc3QuVGVzdENhc2UsIFBpY2tsZVRlc3QpOgogCiAgICAgZGVmIHRlc3Rfc2ltcGxlKHNlbGYpOgogICAgICAgICBjbGFzcyBBOgpAQCAtMjEyLDYgKzIzNCwxMCBAQAogICAgICAgICBuZ2kgPSBOb0dldEl0ZW0oKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHJldmVyc2VkLCBuZ2kpCiAKKyAgICBkZWYgdGVzdF9waWNrbGUoc2VsZik6CisgICAgICAgIGZvciBkYXRhIGluICdhYmMnLCByYW5nZSg1KSwgdHVwbGUoZW51bWVyYXRlKCdhYmMnKSksIHJhbmdlKDEsMTcsNSk6CisgICAgICAgICAgICBzZWxmLmNoZWNrX3BpY2tsZShyZXZlcnNlZChkYXRhKSwgbGlzdChkYXRhKVs6Oi0xXSkKKwogCiBjbGFzcyBFbnVtZXJhdGVTdGFydFRlc3RDYXNlKEVudW1lcmF0ZVRlc3RDYXNlKToKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9lcG9sbC5weSBiL0xpYi90ZXN0L3Rlc3RfZXBvbGwucHkKaW5kZXggMDgzZmQ3Zi4uN2Y5NTQ3ZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9lcG9sbC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2Vwb2xsLnB5CkBAIC03NSw2ICs3NSw5IEBACiAgICAgICAgIGVwLmNsb3NlKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGVwLmNsb3NlZCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXAuZmlsZW5vKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGVjdCwgIkVQT0xMX0NMT0VYRUMiKToKKyAgICAgICAgICAgIHNlbGVjdC5lcG9sbChzZWxlY3QuRVBPTExfQ0xPRVhFQykuY2xvc2UoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2VsZWN0LmVwb2xsLCBmbGFncz0xMjM1NikKIAogICAgIGRlZiB0ZXN0X2JhZGNyZWF0ZShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxlY3QuZXBvbGwsIDEsIDIsIDMpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2V4Y2VwdGlvbnMucHkgYi9MaWIvdGVzdC90ZXN0X2V4Y2VwdGlvbnMucHkKaW5kZXggN2EyZGQwYy4uOTc3NjJmOSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9leGNlcHRpb25zLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZXhjZXB0aW9ucy5weQpAQCAtOCw3ICs4LDcgQEAKIGltcG9ydCBlcnJubwogCiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgKFRFU1RGTiwgdW5saW5rLCBydW5fdW5pdHRlc3QsIGNhcHR1cmVkX291dHB1dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NfY29sbGVjdCwgY3B5dGhvbl9vbmx5KQorICAgICAgICAgICAgICAgICAgICAgICAgICBnY19jb2xsZWN0LCBjcHl0aG9uX29ubHksIG5vX3RyYWNpbmcpCiAKICMgWFhYIFRoaXMgaXMgbm90IHJlYWxseSBlbm91Z2gsIGVhY2ggKm9wZXJhdGlvbiogc2hvdWxkIGJlIHRlc3RlZCEKIApAQCAtNDYsOCArNDYsOCBAQAogICAgICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgICAgICAgdW5saW5rKFRFU1RGTikKIAotICAgICAgICBzZWxmLnJhaXNlX2NhdGNoKElPRXJyb3IsICJJT0Vycm9yIikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgb3BlbiwgJ3RoaXMgZmlsZSBkb2VzIG5vdCBleGlzdCcsICdyJykKKyAgICAgICAgc2VsZi5yYWlzZV9jYXRjaChPU0Vycm9yLCAiT1NFcnJvciIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG9wZW4sICd0aGlzIGZpbGUgZG9lcyBub3QgZXhpc3QnLCAncicpCiAKICAgICAgICAgc2VsZi5yYWlzZV9jYXRjaChJbXBvcnRFcnJvciwgIkltcG9ydEVycm9yIikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IsIF9faW1wb3J0X18sICJ1bmRlZmluZWRfbW9kdWxlIikKQEAgLTE5MiwxMSArMTkyLDM1IEBACiAgICAgICAgIGV4Y2VwdCBOYW1lRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihXaW5kb3dzRXJyb3IoMTAwMSkpLCAiMTAwMSIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihXaW5kb3dzRXJyb3IoMTAwMSwgIm1lc3NhZ2UiKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJbRXJyb3IgMTAwMV0gbWVzc2FnZSIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFdpbmRvd3NFcnJvcigxMDAxLCAibWVzc2FnZSIpLmVycm5vLCAyMikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoV2luZG93c0Vycm9yKDEwMDEsICJtZXNzYWdlIikud2luZXJyb3IsIDEwMDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKFdpbmRvd3NFcnJvciwgT1NFcnJvcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKE9TRXJyb3IoMTAwMSkpLCAiMTAwMSIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihPU0Vycm9yKDEwMDEsICJtZXNzYWdlIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0Vycm5vIDEwMDFdIG1lc3NhZ2UiKQorICAgICAgICAgICAgIyBQT1NJWCBlcnJubyAoOSBha2EgRUJBREYpIGlzIHVudHJhbnNsYXRlZAorICAgICAgICAgICAgdyA9IE9TRXJyb3IoOSwgJ2ZvbycsICdiYXInKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LmVycm5vLCA5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LndpbmVycm9yLCBOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIodyksICJbRXJybm8gOV0gZm9vOiAnYmFyJyIpCisgICAgICAgICAgICAjIEVSUk9SX1BBVEhfTk9UX0ZPVU5EICh3aW4gZXJyb3IgMykgYmVjb21lcyBFTk9FTlQgKDIpCisgICAgICAgICAgICB3ID0gT1NFcnJvcigwLCAnZm9vJywgJ2JhcicsIDMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcuZXJybm8sIDIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcud2luZXJyb3IsIDMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcuc3RyZXJyb3IsICdmb28nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LmZpbGVuYW1lLCAnYmFyJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHcpLCAiW0Vycm9yIDNdIGZvbzogJ2JhciciKQorICAgICAgICAgICAgIyBVbmtub3duIHdpbiBlcnJvciBiZWNvbWVzIEVJTlZBTCAoMjIpCisgICAgICAgICAgICB3ID0gT1NFcnJvcigwLCAnZm9vJywgTm9uZSwgMTAwMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwody5lcnJubywgMjIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcud2luZXJyb3IsIDEwMDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcuc3RyZXJyb3IsICdmb28nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LmZpbGVuYW1lLCBOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIodyksICJbRXJyb3IgMTAwMV0gZm9vIikKKyAgICAgICAgICAgICMgTm9uLW51bWVyaWMgImVycm5vIgorICAgICAgICAgICAgdyA9IE9TRXJyb3IoJ2JhcicsICdmb28nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3LmVycm5vLCAnYmFyJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwody53aW5lcnJvciwgTm9uZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwody5zdHJlcnJvciwgJ2ZvbycpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHcuZmlsZW5hbWUsIE5vbmUpCiAKICAgICBkZWYgdGVzdEF0dHJpYnV0ZXMoc2VsZik6CiAgICAgICAgICMgdGVzdCB0aGF0IGV4Y2VwdGlvbiBhdHRyaWJ1dGVzIGFyZSBoYXBweQpAQCAtMjc0LDExICsyOTgsMTIgQEAKICAgICAgICAgICAgICAgICAgJ3N0YXJ0JyA6IDAsICdlbmQnIDogMX0pLAogICAgICAgICBdCiAgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgTW9yZSB0ZXN0cyBhcmUgaW4gdGVzdF9XaW5kb3dzRXJyb3IKICAgICAgICAgICAgIGV4Y2VwdGlvbkxpc3QuYXBwZW5kKAogICAgICAgICAgICAgICAgIChXaW5kb3dzRXJyb3IsICgxLCAnc3RyRXJyb3JTdHInLCAnZmlsZW5hbWVTdHInKSwKICAgICAgICAgICAgICAgICAgICAgeydhcmdzJyA6ICgxLCAnc3RyRXJyb3JTdHInKSwKLSAgICAgICAgICAgICAgICAgICAgICdzdHJlcnJvcicgOiAnc3RyRXJyb3JTdHInLCAnd2luZXJyb3InIDogMSwKLSAgICAgICAgICAgICAgICAgICAgICdlcnJubycgOiAyMiwgJ2ZpbGVuYW1lJyA6ICdmaWxlbmFtZVN0cid9KQorICAgICAgICAgICAgICAgICAgICAgJ3N0cmVycm9yJyA6ICdzdHJFcnJvclN0cicsICd3aW5lcnJvcicgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgJ2Vycm5vJyA6IDEsICdmaWxlbmFtZScgOiAnZmlsZW5hbWVTdHInfSkKICAgICAgICAgICAgICkKICAgICAgICAgZXhjZXB0IE5hbWVFcnJvcjoKICAgICAgICAgICAgIHBhc3MKQEAgLTM2MiwxOSArMzg3LDM3IEBACiAKICAgICBkZWYgdGVzdENoYWluaW5nQXR0cnMoc2VsZik6CiAgICAgICAgIGUgPSBFeGNlcHRpb24oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuX19jb250ZXh0X18sIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5fX2NhdXNlX18sIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGUuX19jb250ZXh0X18pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGUuX19jYXVzZV9fKQogCiAgICAgICAgIGUgPSBUeXBlRXJyb3IoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuX19jb250ZXh0X18sIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5fX2NhdXNlX18sIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGUuX19jb250ZXh0X18pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGUuX19jYXVzZV9fKQogCiAgICAgICAgIGNsYXNzIE15RXhjZXB0aW9uKEVudmlyb25tZW50RXJyb3IpOgogICAgICAgICAgICAgcGFzcwogCiAgICAgICAgIGUgPSBNeUV4Y2VwdGlvbigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5fX2NvbnRleHRfXywgTm9uZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLl9fY2F1c2VfXywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZS5fX2NvbnRleHRfXykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZS5fX2NhdXNlX18pCisKKyAgICBkZWYgdGVzdENoYWluaW5nRGVzY3JpcHRvcnMoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjOgorICAgICAgICAgICAgZSA9IGV4YworCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGUuX19jb250ZXh0X18pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGUuX19jYXVzZV9fKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGUuX19zdXBwcmVzc19jb250ZXh0X18pCisKKyAgICAgICAgZS5fX2NvbnRleHRfXyA9IE5hbWVFcnJvcigpCisgICAgICAgIGUuX19jYXVzZV9fID0gTm9uZQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZS5fX2NvbnRleHRfXywgTmFtZUVycm9yKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShlLl9fY2F1c2VfXykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGUuX19zdXBwcmVzc19jb250ZXh0X18pCisgICAgICAgIGUuX19zdXBwcmVzc19jb250ZXh0X18gPSBGYWxzZQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGUuX19zdXBwcmVzc19jb250ZXh0X18pCiAKICAgICBkZWYgdGVzdEtleXdvcmRBcmdzKHNlbGYpOgogICAgICAgICAjIHRlc3QgdGhhdCBidWlsdGluIGV4Y2VwdGlvbiBkb24ndCB0YWtlIGtleXdvcmQgYXJncywKQEAgLTM4OSw2ICs0MzIsNyBAQAogICAgICAgICB4ID0gRGVyaXZlZEV4Y2VwdGlvbihmYW5jeV9hcmc9NDIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC5mYW5jeV9hcmcsIDQyKQogCisgICAgQG5vX3RyYWNpbmcKICAgICBkZWYgdGVzdEluZmluaXRlUmVjdXJzaW9uKHNlbGYpOgogICAgICAgICBkZWYgZigpOgogICAgICAgICAgICAgcmV0dXJuIGYoKQpAQCAtNzIxLDYgKzc2NSw3IEBACiAgICAgICAgIHUuc3RhcnQgPSAxMDAwCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHUpLCAiY2FuJ3QgdHJhbnNsYXRlIGNoYXJhY3RlcnMgaW4gcG9zaXRpb24gMTAwMC00OiA5NjUyMzA5NTE0NDM2ODU3MjQ5OTciKQogCisgICAgQG5vX3RyYWNpbmcKICAgICBkZWYgdGVzdF9iYWRpc2luc3RhbmNlKHNlbGYpOgogICAgICAgICAjIEJ1ZyAjMjU0MjogaWYgaXNzdWJjbGFzcyhlLCBNeUV4Y2VwdGlvbikgcmFpc2VzIGFuIGV4Y2VwdGlvbiwKICAgICAgICAgIyBpdCBzaG91bGQgYmUgaWdub3JlZApAQCAtODMxLDYgKzg3Niw3IEBACiAgICAgICAgICAgICBzZWxmLmZhaWwoIk1lbW9yeUVycm9yIG5vdCByYWlzZWQiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyKCksIE5vbmUpCiAKKyAgICBAbm9fdHJhY2luZwogICAgIGRlZiB0ZXN0X3JlY3Vyc2lvbl9lcnJvcl9jbGVhbnVwKHNlbGYpOgogICAgICAgICAjIFNhbWUgdGVzdCBhcyBhYm92ZSwgYnV0IHdpdGggInJlY3Vyc2lvbiBleGNlZWRlZCIgZXJyb3JzCiAgICAgICAgIGNsYXNzIEM6CkBAIC04NTcsOCArOTAzLDMwIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm5vLCBlcnJuby5FTk9URElSLCBjbS5leGNlcHRpb24pCiAKIAorY2xhc3MgSW1wb3J0RXJyb3JUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9hdHRyaWJ1dGVzKHNlbGYpOgorICAgICAgICAjIFNldHRpbmcgJ25hbWUnIGFuZCAncGF0aCcgc2hvdWxkIG5vdCBiZSBhIHByb2JsZW0uCisgICAgICAgIGV4YyA9IEltcG9ydEVycm9yKCd0ZXN0JykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZXhjLm5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGV4Yy5wYXRoKQorCisgICAgICAgIGV4YyA9IEltcG9ydEVycm9yKCd0ZXN0JywgbmFtZT0nc29tZW1vZHVsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhjLm5hbWUsICdzb21lbW9kdWxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZXhjLnBhdGgpCisKKyAgICAgICAgZXhjID0gSW1wb3J0RXJyb3IoJ3Rlc3QnLCBwYXRoPSdzb21lcGF0aCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhjLnBhdGgsICdzb21lcGF0aCcpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGV4Yy5uYW1lKQorCisgICAgICAgIGV4YyA9IEltcG9ydEVycm9yKCd0ZXN0JywgcGF0aD0nc29tZXBhdGgnLCBuYW1lPSdzb21lbmFtZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhjLm5hbWUsICdzb21lbmFtZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhjLnBhdGgsICdzb21lcGF0aCcpCisKKworCiBkZWYgdGVzdF9tYWluKCk6Ci0gICAgcnVuX3VuaXR0ZXN0KEV4Y2VwdGlvblRlc3RzKQorICAgIHJ1bl91bml0dGVzdChFeGNlcHRpb25UZXN0cywgSW1wb3J0RXJyb3JUZXN0cykKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZXh0Y2FsbC5weSBiL0xpYi90ZXN0L3Rlc3RfZXh0Y2FsbC5weQppbmRleCAxZjdmNjMwLi42YjZjMTJkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2V4dGNhbGwucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9leHRjYWxsLnB5CkBAIC02NiwxNyArNjYsMTcgQEAKICAgICA+Pj4gZygpCiAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgLi4uCi0gICAgVHlwZUVycm9yOiBnKCkgdGFrZXMgYXQgbGVhc3QgMSBhcmd1bWVudCAoMCBnaXZlbikKKyAgICBUeXBlRXJyb3I6IGcoKSBtaXNzaW5nIDEgcmVxdWlyZWQgcG9zaXRpb25hbCBhcmd1bWVudDogJ3gnCiAKICAgICA+Pj4gZygqKCkpCiAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgLi4uCi0gICAgVHlwZUVycm9yOiBnKCkgdGFrZXMgYXQgbGVhc3QgMSBhcmd1bWVudCAoMCBnaXZlbikKKyAgICBUeXBlRXJyb3I6IGcoKSBtaXNzaW5nIDEgcmVxdWlyZWQgcG9zaXRpb25hbCBhcmd1bWVudDogJ3gnCiAKICAgICA+Pj4gZygqKCksICoqe30pCiAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgLi4uCi0gICAgVHlwZUVycm9yOiBnKCkgdGFrZXMgYXQgbGVhc3QgMSBhcmd1bWVudCAoMCBnaXZlbikKKyAgICBUeXBlRXJyb3I6IGcoKSBtaXNzaW5nIDEgcmVxdWlyZWQgcG9zaXRpb25hbCBhcmd1bWVudDogJ3gnCiAKICAgICA+Pj4gZygxKQogICAgIDEgKCkge30KQEAgLTE1MSw3ICsxNTEsNyBAQAogICAgID4+PiBnKDEsIDIsIDMsICoqeyd4JzogNCwgJ3knOiA1fSkKICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgICAgICAuLi4KLSAgICBUeXBlRXJyb3I6IGcoKSBnb3QgbXVsdGlwbGUgdmFsdWVzIGZvciBrZXl3b3JkIGFyZ3VtZW50ICd4JworICAgIFR5cGVFcnJvcjogZygpIGdvdCBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFyZ3VtZW50ICd4JwogCiAgICAgPj4+IGYoKip7MToyfSkKICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CkBAIC0yNjMsMjkgKzI2Myw4MCBAQAogICAgID4+PiBmKCoqeCkKICAgICAxIDIKIAotQSBvYnNjdXJlIG1lc3NhZ2U6CitUb28gbWFueSBhcmd1bWVudHM6CiAKLSAgICA+Pj4gZGVmIGYoYSwgYik6Ci0gICAgLi4uICAgIHBhc3MKLSAgICA+Pj4gZihiPTEpCisgICAgPj4+IGRlZiBmKCk6IHBhc3MKKyAgICA+Pj4gZigxKQogICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgICAgIC4uLgotICAgIFR5cGVFcnJvcjogZigpIHRha2VzIGV4YWN0bHkgMiBhcmd1bWVudHMgKDEgZ2l2ZW4pCi0KLVRoZSBudW1iZXIgb2YgYXJndW1lbnRzIHBhc3NlZCBpbiBpbmNsdWRlcyBrZXl3b3JkczoKLQotICAgID4+PiBkZWYgZihhKToKLSAgICAuLi4gICAgcGFzcwotICAgID4+PiBmKDYsIGE9NCwgKigxLCAyLCAzKSkKKyAgICBUeXBlRXJyb3I6IGYoKSB0YWtlcyAwIHBvc2l0aW9uYWwgYXJndW1lbnRzIGJ1dCAxIHdhcyBnaXZlbgorICAgID4+PiBkZWYgZihhKTogcGFzcworICAgID4+PiBmKDEsIDIpCiAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgLi4uCi0gICAgVHlwZUVycm9yOiBmKCkgdGFrZXMgZXhhY3RseSAxIHBvc2l0aW9uYWwgYXJndW1lbnQgKDUgZ2l2ZW4pCi0gICAgPj4+IGRlZiBmKGEsICosIGt3KToKLSAgICAuLi4gICAgcGFzcwotICAgID4+PiBmKDYsIDQsIGt3PTQpCisgICAgVHlwZUVycm9yOiBmKCkgdGFrZXMgMSBwb3NpdGlvbmFsIGFyZ3VtZW50IGJ1dCAyIHdlcmUgZ2l2ZW4KKyAgICA+Pj4gZGVmIGYoYSwgYj0xKTogcGFzcworICAgID4+PiBmKDEsIDIsIDMpCiAgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgogICAgICAgLi4uCi0gICAgVHlwZUVycm9yOiBmKCkgdGFrZXMgZXhhY3RseSAxIHBvc2l0aW9uYWwgYXJndW1lbnQgKDMgZ2l2ZW4pCisgICAgVHlwZUVycm9yOiBmKCkgdGFrZXMgZnJvbSAxIHRvIDIgcG9zaXRpb25hbCBhcmd1bWVudHMgYnV0IDMgd2VyZSBnaXZlbgorICAgID4+PiBkZWYgZigqLCBrdyk6IHBhc3MKKyAgICA+Pj4gZigxLCBrdz0zKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAgIFR5cGVFcnJvcjogZigpIHRha2VzIDAgcG9zaXRpb25hbCBhcmd1bWVudHMgYnV0IDEgcG9zaXRpb25hbCBhcmd1bWVudCAoYW5kIDEga2V5d29yZC1vbmx5IGFyZ3VtZW50KSB3ZXJlIGdpdmVuCisgICAgPj4+IGRlZiBmKCosIGt3LCBiKTogcGFzcworICAgID4+PiBmKDEsIDIsIDMsIGI9Mywga3c9MykKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgICBUeXBlRXJyb3I6IGYoKSB0YWtlcyAwIHBvc2l0aW9uYWwgYXJndW1lbnRzIGJ1dCAzIHBvc2l0aW9uYWwgYXJndW1lbnRzIChhbmQgMiBrZXl3b3JkLW9ubHkgYXJndW1lbnRzKSB3ZXJlIGdpdmVuCisgICAgPj4+IGRlZiBmKGEsIGI9MiwgKiwga3cpOiBwYXNzCisgICAgPj4+IGYoMiwgMywgNCwga3c9NCkKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgICBUeXBlRXJyb3I6IGYoKSB0YWtlcyBmcm9tIDEgdG8gMiBwb3NpdGlvbmFsIGFyZ3VtZW50cyBidXQgMyBwb3NpdGlvbmFsIGFyZ3VtZW50cyAoYW5kIDEga2V5d29yZC1vbmx5IGFyZ3VtZW50KSB3ZXJlIGdpdmVuCisKK1RvbyBmZXcgYW5kIG1pc3NpbmcgYXJndW1lbnRzOgorCisgICAgPj4+IGRlZiBmKGEpOiBwYXNzCisgICAgPj4+IGYoKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAgIFR5cGVFcnJvcjogZigpIG1pc3NpbmcgMSByZXF1aXJlZCBwb3NpdGlvbmFsIGFyZ3VtZW50OiAnYScKKyAgICA+Pj4gZGVmIGYoYSwgYik6IHBhc3MKKyAgICA+Pj4gZigpCisgICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgorICAgICAgLi4uCisgICAgVHlwZUVycm9yOiBmKCkgbWlzc2luZyAyIHJlcXVpcmVkIHBvc2l0aW9uYWwgYXJndW1lbnRzOiAnYScgYW5kICdiJworICAgID4+PiBkZWYgZihhLCBiLCBjKTogcGFzcworICAgID4+PiBmKCkKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgICBUeXBlRXJyb3I6IGYoKSBtaXNzaW5nIDMgcmVxdWlyZWQgcG9zaXRpb25hbCBhcmd1bWVudHM6ICdhJywgJ2InLCBhbmQgJ2MnCisgICAgPj4+IGRlZiBmKGEsIGIsIGMsIGQsIGUpOiBwYXNzCisgICAgPj4+IGYoKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAgIFR5cGVFcnJvcjogZigpIG1pc3NpbmcgNSByZXF1aXJlZCBwb3NpdGlvbmFsIGFyZ3VtZW50czogJ2EnLCAnYicsICdjJywgJ2QnLCBhbmQgJ2UnCisgICAgPj4+IGRlZiBmKGEsIGI9NCwgYz01LCBkPTUpOiBwYXNzCisgICAgPj4+IGYoYz0xMiwgYj05KQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAgIFR5cGVFcnJvcjogZigpIG1pc3NpbmcgMSByZXF1aXJlZCBwb3NpdGlvbmFsIGFyZ3VtZW50OiAnYScKKworU2FtZSB3aXRoIGtleXdvcmQgb25seSBhcmdzOgorCisgICAgPj4+IGRlZiBmKCosIHcpOiBwYXNzCisgICAgPj4+IGYoKQorICAgIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKKyAgICAgIC4uLgorICAgIFR5cGVFcnJvcjogZigpIG1pc3NpbmcgMSByZXF1aXJlZCBrZXl3b3JkLW9ubHkgYXJndW1lbnQ6ICd3JworICAgID4+PiBkZWYgZigqLCBhLCBiLCBjLCBkLCBlKTogcGFzcworICAgID4+PiBmKCkKKyAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CisgICAgICAuLi4KKyAgICBUeXBlRXJyb3I6IGYoKSBtaXNzaW5nIDUgcmVxdWlyZWQga2V5d29yZC1vbmx5IGFyZ3VtZW50czogJ2EnLCAnYicsICdjJywgJ2QnLCBhbmQgJ2UnCisKICIiIgogCiBpbXBvcnQgc3lzCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ZhdWx0aGFuZGxlci5weSBiL0xpYi90ZXN0L3Rlc3RfZmF1bHRoYW5kbGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExMzhmOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC90ZXN0X2ZhdWx0aGFuZGxlci5weQpAQCAtMCwwICsxLDU1NCBAQAorZnJvbSBjb250ZXh0bGliIGltcG9ydCBjb250ZXh0bWFuYWdlcgoraW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgZmF1bHRoYW5kbGVyCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IHNpZ25hbAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2Zyb20gdGVzdCBpbXBvcnQgc3VwcG9ydCwgc2NyaXB0X2hlbHBlcgoraW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgdW5pdHRlc3QKKwordHJ5OgorICAgIGltcG9ydCB0aHJlYWRpbmcKKyAgICBIQVZFX1RIUkVBRFMgPSBUcnVlCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgSEFWRV9USFJFQURTID0gRmFsc2UKKworVElNRU9VVCA9IDAuNQorCit0cnk6CisgICAgZnJvbSByZXNvdXJjZSBpbXBvcnQgc2V0cmxpbWl0LCBSTElNSVRfQ09SRSwgZXJyb3IgYXMgcmVzb3VyY2VfZXJyb3IKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBwcmVwYXJlX3N1YnByb2Nlc3MgPSBOb25lCitlbHNlOgorICAgIGRlZiBwcmVwYXJlX3N1YnByb2Nlc3MoKToKKyAgICAgICAgIyBkb24ndCBjcmVhdGUgY29yZSBmaWxlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNldHJsaW1pdChSTElNSVRfQ09SRSwgKDAsIDApKQorICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIHJlc291cmNlX2Vycm9yKToKKyAgICAgICAgICAgIHBhc3MKKworZGVmIGV4cGVjdGVkX3RyYWNlYmFjayhsaW5lbm8xLCBsaW5lbm8yLCBoZWFkZXIsIG1pbl9jb3VudD0xKToKKyAgICByZWdleCA9IGhlYWRlcgorICAgIHJlZ2V4ICs9ICcgIEZpbGUgIjxzdHJpbmc+IiwgbGluZSAlcyBpbiBmdW5jXG4nICUgbGluZW5vMQorICAgIHJlZ2V4ICs9ICcgIEZpbGUgIjxzdHJpbmc+IiwgbGluZSAlcyBpbiA8bW9kdWxlPicgJSBsaW5lbm8yCisgICAgaWYgMSA8IG1pbl9jb3VudDoKKyAgICAgICAgcmV0dXJuICdeJyArIChyZWdleCArICdcbicpICogKG1pbl9jb3VudCAtIDEpICsgcmVnZXgKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gJ14nICsgcmVnZXggKyAnJCcKKworQGNvbnRleHRtYW5hZ2VyCitkZWYgdGVtcG9yYXJ5X2ZpbGVuYW1lKCk6CisgICAgZmlsZW5hbWUgPSB0ZW1wZmlsZS5ta3RlbXAoKQorICAgIHRyeToKKyAgICAgICAgeWllbGQgZmlsZW5hbWUKKyAgICBmaW5hbGx5OgorICAgICAgICBzdXBwb3J0LnVubGluayhmaWxlbmFtZSkKKworY2xhc3MgRmF1bHRIYW5kbGVyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBnZXRfb3V0cHV0KHNlbGYsIGNvZGUsIGZpbGVuYW1lPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgUnVuIHRoZSBzcGVjaWZpZWQgY29kZSBpbiBQeXRob24gKGluIGEgbmV3IGNoaWxkIHByb2Nlc3MpIGFuZCByZWFkIHRoZQorICAgICAgICBvdXRwdXQgZnJvbSB0aGUgc3RhbmRhcmQgZXJyb3Igb3IgZnJvbSBhIGZpbGUgKGlmIGZpbGVuYW1lIGlzIHNldCkuCisgICAgICAgIFJldHVybiB0aGUgb3V0cHV0IGxpbmVzIGFzIGEgbGlzdC4KKworICAgICAgICBTdHJpcCB0aGUgcmVmZXJlbmNlIGNvdW50IGZyb20gdGhlIHN0YW5kYXJkIGVycm9yIGZvciBQeXRob24gZGVidWcKKyAgICAgICAgYnVpbGQsIGFuZCByZXBsYWNlICJDdXJyZW50IHRocmVhZCAweDAwMDA3ZjhkOGZiZDk3MDAiIGJ5ICJDdXJyZW50CisgICAgICAgIHRocmVhZCBYWFgiLgorICAgICAgICAiIiIKKyAgICAgICAgb3B0aW9ucyA9IHt9CisgICAgICAgIGlmIHByZXBhcmVfc3VicHJvY2VzczoKKyAgICAgICAgICAgIG9wdGlvbnNbJ3ByZWV4ZWNfZm4nXSA9IHByZXBhcmVfc3VicHJvY2VzcworICAgICAgICBwcm9jZXNzID0gc2NyaXB0X2hlbHBlci5zcGF3bl9weXRob24oJy1jJywgY29kZSwgKipvcHRpb25zKQorICAgICAgICBzdGRvdXQsIHN0ZGVyciA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQorICAgICAgICBleGl0Y29kZSA9IHByb2Nlc3Mud2FpdCgpCisgICAgICAgIG91dHB1dCA9IHN1cHBvcnQuc3RyaXBfcHl0aG9uX3N0ZGVycihzdGRvdXQpCisgICAgICAgIG91dHB1dCA9IG91dHB1dC5kZWNvZGUoJ2FzY2lpJywgJ2JhY2tzbGFzaHJlcGxhY2UnKQorICAgICAgICBpZiBmaWxlbmFtZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0cHV0LCAnJykKKyAgICAgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgInJiIikgYXMgZnA6CisgICAgICAgICAgICAgICAgb3V0cHV0ID0gZnAucmVhZCgpCisgICAgICAgICAgICBvdXRwdXQgPSBvdXRwdXQuZGVjb2RlKCdhc2NpaScsICdiYWNrc2xhc2hyZXBsYWNlJykKKyAgICAgICAgb3V0cHV0ID0gcmUuc3ViKCdDdXJyZW50IHRocmVhZCAweFswLTlhLWZdKycsCisgICAgICAgICAgICAgICAgICAgICAgICAnQ3VycmVudCB0aHJlYWQgWFhYJywKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCkKKyAgICAgICAgcmV0dXJuIG91dHB1dC5zcGxpdGxpbmVzKCksIGV4aXRjb2RlCisKKyAgICBkZWYgY2hlY2tfZmF0YWxfZXJyb3Ioc2VsZiwgY29kZSwgbGluZV9udW1iZXIsIG5hbWVfcmVnZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lPU5vbmUsIGFsbF90aHJlYWRzPVRydWUsIG90aGVyX3JlZ2V4PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2hlY2sgdGhhdCB0aGUgZmF1bHQgaGFuZGxlciBmb3IgZmF0YWwgZXJyb3JzIGlzIGVuYWJsZWQgYW5kIGNoZWNrIHRoZQorICAgICAgICB0cmFjZWJhY2sgZnJvbSB0aGUgY2hpbGQgcHJvY2VzcyBvdXRwdXQuCisKKyAgICAgICAgUmFpc2UgYW4gZXJyb3IgaWYgdGhlIG91dHB1dCBkb2Vzbid0IG1hdGNoIHRoZSBleHBlY3RlZCBmb3JtYXQuCisgICAgICAgICIiIgorICAgICAgICBpZiBhbGxfdGhyZWFkczoKKyAgICAgICAgICAgIGhlYWRlciA9ICdDdXJyZW50IHRocmVhZCBYWFgnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBoZWFkZXIgPSAnVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGZpcnN0KScKKyAgICAgICAgcmVnZXggPSAiIiIKK15GYXRhbCBQeXRob24gZXJyb3I6IHtuYW1lfQorCit7aGVhZGVyfToKKyAgRmlsZSAiPHN0cmluZz4iLCBsaW5lIHtsaW5lbm99IGluIDxtb2R1bGU+CisiIiIuc3RyaXAoKQorICAgICAgICByZWdleCA9IHJlZ2V4LmZvcm1hdCgKKyAgICAgICAgICAgIGxpbmVubz1saW5lX251bWJlciwKKyAgICAgICAgICAgIG5hbWU9bmFtZV9yZWdleCwKKyAgICAgICAgICAgIGhlYWRlcj1yZS5lc2NhcGUoaGVhZGVyKSkKKyAgICAgICAgaWYgb3RoZXJfcmVnZXg6CisgICAgICAgICAgICByZWdleCArPSAnfCcgKyBvdGhlcl9yZWdleAorICAgICAgICBvdXRwdXQsIGV4aXRjb2RlID0gc2VsZi5nZXRfb3V0cHV0KGNvZGUsIGZpbGVuYW1lKQorICAgICAgICBvdXRwdXQgPSAnXG4nLmpvaW4ob3V0cHV0KQorICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KG91dHB1dCwgcmVnZXgpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZXhpdGNvZGUsIDApCisKKyAgICBkZWYgdGVzdF9yZWFkX251bGwoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfZmF0YWxfZXJyb3IoIiIiCitpbXBvcnQgZmF1bHRoYW5kbGVyCitmYXVsdGhhbmRsZXIuZW5hYmxlKCkKK2ZhdWx0aGFuZGxlci5fcmVhZF9udWxsKCkKKyIiIi5zdHJpcCgpLAorICAgICAgICAgICAgMywKKyAgICAgICAgICAgICMgSXNzdWUgIzEyNzAwOiBSZWFkIE5VTEwgcmFpc2VzIFNJR0lMTCBvbiBNYWMgT1MgWCBMaW9uCisgICAgICAgICAgICAnKD86U2VnbWVudGF0aW9uIGZhdWx0fEJ1cyBlcnJvcnxJbGxlZ2FsIGluc3RydWN0aW9uKScpCisKKyAgICBkZWYgdGVzdF9zaWdzZWd2KHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX2ZhdGFsX2Vycm9yKCIiIgoraW1wb3J0IGZhdWx0aGFuZGxlcgorZmF1bHRoYW5kbGVyLmVuYWJsZSgpCitmYXVsdGhhbmRsZXIuX3NpZ3NlZ3YoKQorIiIiLnN0cmlwKCksCisgICAgICAgICAgICAzLAorICAgICAgICAgICAgJ1NlZ21lbnRhdGlvbiBmYXVsdCcpCisKKyAgICBkZWYgdGVzdF9zaWdhYnJ0KHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX2ZhdGFsX2Vycm9yKCIiIgoraW1wb3J0IGZhdWx0aGFuZGxlcgorZmF1bHRoYW5kbGVyLmVuYWJsZSgpCitmYXVsdGhhbmRsZXIuX3NpZ2FicnQoKQorIiIiLnN0cmlwKCksCisgICAgICAgICAgICAzLAorICAgICAgICAgICAgJ0Fib3J0ZWQnKQorCisgICAgQHVuaXR0ZXN0LnNraXBJZihzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJywKKyAgICAgICAgICAgICAgICAgICAgICJTSUdGUEUgY2Fubm90IGJlIGNhdWdodCBvbiBXaW5kb3dzIikKKyAgICBkZWYgdGVzdF9zaWdmcGUoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfZmF0YWxfZXJyb3IoIiIiCitpbXBvcnQgZmF1bHRoYW5kbGVyCitmYXVsdGhhbmRsZXIuZW5hYmxlKCkKK2ZhdWx0aGFuZGxlci5fc2lnZnBlKCkKKyIiIi5zdHJpcCgpLAorICAgICAgICAgICAgMywKKyAgICAgICAgICAgICdGbG9hdGluZyBwb2ludCBleGNlcHRpb24nKQorCisgICAgQHVuaXR0ZXN0LnNraXBJZihub3QgaGFzYXR0cihmYXVsdGhhbmRsZXIsICdfc2lnYnVzJyksCisgICAgICAgICAgICAgICAgICAgICAibmVlZCBmYXVsdGhhbmRsZXIuX3NpZ2J1cygpIikKKyAgICBkZWYgdGVzdF9zaWdidXMoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfZmF0YWxfZXJyb3IoIiIiCitpbXBvcnQgZmF1bHRoYW5kbGVyCitmYXVsdGhhbmRsZXIuZW5hYmxlKCkKK2ZhdWx0aGFuZGxlci5fc2lnYnVzKCkKKyIiIi5zdHJpcCgpLAorICAgICAgICAgICAgMywKKyAgICAgICAgICAgICdCdXMgZXJyb3InKQorCisgICAgQHVuaXR0ZXN0LnNraXBJZihub3QgaGFzYXR0cihmYXVsdGhhbmRsZXIsICdfc2lnaWxsJyksCisgICAgICAgICAgICAgICAgICAgICAibmVlZCBmYXVsdGhhbmRsZXIuX3NpZ2lsbCgpIikKKyAgICBkZWYgdGVzdF9zaWdpbGwoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfZmF0YWxfZXJyb3IoIiIiCitpbXBvcnQgZmF1bHRoYW5kbGVyCitmYXVsdGhhbmRsZXIuZW5hYmxlKCkKK2ZhdWx0aGFuZGxlci5fc2lnaWxsKCkKKyIiIi5zdHJpcCgpLAorICAgICAgICAgICAgMywKKyAgICAgICAgICAgICdJbGxlZ2FsIGluc3RydWN0aW9uJykKKworICAgIGRlZiB0ZXN0X2ZhdGFsX2Vycm9yKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX2ZhdGFsX2Vycm9yKCIiIgoraW1wb3J0IGZhdWx0aGFuZGxlcgorZmF1bHRoYW5kbGVyLl9mYXRhbF9lcnJvcihiJ3h5eicpCisiIiIuc3RyaXAoKSwKKyAgICAgICAgICAgIDIsCisgICAgICAgICAgICAneHl6JykKKworICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ29wZW5ic2QnKSBhbmQgSEFWRV9USFJFQURTLAorICAgICAgICAgICAgICAgICAgICAgIklzc3VlICMxMjg2ODogc2lnYWx0c3RhY2soKSBkb2Vzbid0IHdvcmsgb24gIgorICAgICAgICAgICAgICAgICAgICAgIk9wZW5CU0QgaWYgUHl0aG9uIGlzIGNvbXBpbGVkIHdpdGggcHRocmVhZCIpCisgICAgQHVuaXR0ZXN0LnNraXBJZihub3QgaGFzYXR0cihmYXVsdGhhbmRsZXIsICdfc3RhY2tfb3ZlcmZsb3cnKSwKKyAgICAgICAgICAgICAgICAgICAgICduZWVkIGZhdWx0aGFuZGxlci5fc3RhY2tfb3ZlcmZsb3coKScpCisgICAgZGVmIHRlc3Rfc3RhY2tfb3ZlcmZsb3coc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfZmF0YWxfZXJyb3IoIiIiCitpbXBvcnQgZmF1bHRoYW5kbGVyCitmYXVsdGhhbmRsZXIuZW5hYmxlKCkKK2ZhdWx0aGFuZGxlci5fc3RhY2tfb3ZlcmZsb3coKQorIiIiLnN0cmlwKCksCisgICAgICAgICAgICAzLAorICAgICAgICAgICAgJyg/OlNlZ21lbnRhdGlvbiBmYXVsdHxCdXMgZXJyb3IpJywKKyAgICAgICAgICAgIG90aGVyX3JlZ2V4PSd1bmFibGUgdG8gcmFpc2UgYSBzdGFjayBvdmVyZmxvdycpCisKKyAgICBkZWYgdGVzdF9naWxfcmVsZWFzZWQoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfZmF0YWxfZXJyb3IoIiIiCitpbXBvcnQgZmF1bHRoYW5kbGVyCitmYXVsdGhhbmRsZXIuZW5hYmxlKCkKK2ZhdWx0aGFuZGxlci5fcmVhZF9udWxsKFRydWUpCisiIiIuc3RyaXAoKSwKKyAgICAgICAgICAgIDMsCisgICAgICAgICAgICAnKD86U2VnbWVudGF0aW9uIGZhdWx0fEJ1cyBlcnJvcnxJbGxlZ2FsIGluc3RydWN0aW9uKScpCisKKyAgICBkZWYgdGVzdF9lbmFibGVfZmlsZShzZWxmKToKKyAgICAgICAgd2l0aCB0ZW1wb3JhcnlfZmlsZW5hbWUoKSBhcyBmaWxlbmFtZToKKyAgICAgICAgICAgIHNlbGYuY2hlY2tfZmF0YWxfZXJyb3IoIiIiCitpbXBvcnQgZmF1bHRoYW5kbGVyCitvdXRwdXQgPSBvcGVuKHtmaWxlbmFtZX0sICd3YicpCitmYXVsdGhhbmRsZXIuZW5hYmxlKG91dHB1dCkKK2ZhdWx0aGFuZGxlci5fcmVhZF9udWxsKCkKKyIiIi5zdHJpcCgpLmZvcm1hdChmaWxlbmFtZT1yZXByKGZpbGVuYW1lKSksCisgICAgICAgICAgICAgICAgNCwKKyAgICAgICAgICAgICAgICAnKD86U2VnbWVudGF0aW9uIGZhdWx0fEJ1cyBlcnJvcnxJbGxlZ2FsIGluc3RydWN0aW9uKScsCisgICAgICAgICAgICAgICAgZmlsZW5hbWU9ZmlsZW5hbWUpCisKKyAgICBkZWYgdGVzdF9lbmFibGVfc2luZ2xlX3RocmVhZChzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19mYXRhbF9lcnJvcigiIiIKK2ltcG9ydCBmYXVsdGhhbmRsZXIKK2ZhdWx0aGFuZGxlci5lbmFibGUoYWxsX3RocmVhZHM9RmFsc2UpCitmYXVsdGhhbmRsZXIuX3JlYWRfbnVsbCgpCisiIiIuc3RyaXAoKSwKKyAgICAgICAgICAgIDMsCisgICAgICAgICAgICAnKD86U2VnbWVudGF0aW9uIGZhdWx0fEJ1cyBlcnJvcnxJbGxlZ2FsIGluc3RydWN0aW9uKScsCisgICAgICAgICAgICBhbGxfdGhyZWFkcz1GYWxzZSkKKworICAgIGRlZiB0ZXN0X2Rpc2FibGUoc2VsZik6CisgICAgICAgIGNvZGUgPSAiIiIKK2ltcG9ydCBmYXVsdGhhbmRsZXIKK2ZhdWx0aGFuZGxlci5lbmFibGUoKQorZmF1bHRoYW5kbGVyLmRpc2FibGUoKQorZmF1bHRoYW5kbGVyLl9yZWFkX251bGwoKQorIiIiLnN0cmlwKCkKKyAgICAgICAgbm90X2V4cGVjdGVkID0gJ0ZhdGFsIFB5dGhvbiBlcnJvcicKKyAgICAgICAgc3RkZXJyLCBleGl0Y29kZSA9IHNlbGYuZ2V0X291dHB1dChjb2RlKQorICAgICAgICBzdGRlciA9ICdcbicuam9pbihzdGRlcnIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3RfZXhwZWN0ZWQgbm90IGluIHN0ZGVyciwKKyAgICAgICAgICAgICAgICAgICAgICIlciBpcyBwcmVzZW50IGluICVyIiAlIChub3RfZXhwZWN0ZWQsIHN0ZGVycikpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZXhpdGNvZGUsIDApCisKKyAgICBkZWYgdGVzdF9pc19lbmFibGVkKHNlbGYpOgorICAgICAgICBvcmlnX3N0ZGVyciA9IHN5cy5zdGRlcnIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyByZWdydGVzdCBtYXkgcmVwbGFjZSBzeXMuc3RkZXJyIGJ5IGlvLlN0cmluZ0lPIG9iamVjdCwgYnV0CisgICAgICAgICAgICAjIGZhdWx0aGFuZGxlci5lbmFibGUoKSByZXF1aXJlcyB0aGF0IHN5cy5zdGRlcnIgaGFzIGEgZmlsZW5vKCkKKyAgICAgICAgICAgICMgbWV0aG9kCisgICAgICAgICAgICBzeXMuc3RkZXJyID0gc3lzLl9fc3RkZXJyX18KKworICAgICAgICAgICAgd2FzX2VuYWJsZWQgPSBmYXVsdGhhbmRsZXIuaXNfZW5hYmxlZCgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZmF1bHRoYW5kbGVyLmVuYWJsZSgpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZhdWx0aGFuZGxlci5pc19lbmFibGVkKCkpCisgICAgICAgICAgICAgICAgZmF1bHRoYW5kbGVyLmRpc2FibGUoKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZmF1bHRoYW5kbGVyLmlzX2VuYWJsZWQoKSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgaWYgd2FzX2VuYWJsZWQ6CisgICAgICAgICAgICAgICAgICAgIGZhdWx0aGFuZGxlci5lbmFibGUoKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGZhdWx0aGFuZGxlci5kaXNhYmxlKCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHN5cy5zdGRlcnIgPSBvcmlnX3N0ZGVycgorCisgICAgZGVmIGNoZWNrX2R1bXBfdHJhY2ViYWNrKHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAgIiIiCisgICAgICAgIEV4cGxpY2l0bHkgY2FsbCBkdW1wX3RyYWNlYmFjaygpIGZ1bmN0aW9uIGFuZCBjaGVjayBpdHMgb3V0cHV0LgorICAgICAgICBSYWlzZSBhbiBlcnJvciBpZiB0aGUgb3V0cHV0IGRvZXNuJ3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGZvcm1hdC4KKyAgICAgICAgIiIiCisgICAgICAgIGNvZGUgPSAiIiIKK2ltcG9ydCBmYXVsdGhhbmRsZXIKKworZGVmIGZ1bmNCKCk6CisgICAgaWYge2hhc19maWxlbmFtZX06CisgICAgICAgIHdpdGggb3Blbih7ZmlsZW5hbWV9LCAid2IiKSBhcyBmcDoKKyAgICAgICAgICAgIGZhdWx0aGFuZGxlci5kdW1wX3RyYWNlYmFjayhmcCwgYWxsX3RocmVhZHM9RmFsc2UpCisgICAgZWxzZToKKyAgICAgICAgZmF1bHRoYW5kbGVyLmR1bXBfdHJhY2ViYWNrKGFsbF90aHJlYWRzPUZhbHNlKQorCitkZWYgZnVuY0EoKToKKyAgICBmdW5jQigpCisKK2Z1bmNBKCkKKyIiIi5zdHJpcCgpCisgICAgICAgIGNvZGUgPSBjb2RlLmZvcm1hdCgKKyAgICAgICAgICAgIGZpbGVuYW1lPXJlcHIoZmlsZW5hbWUpLAorICAgICAgICAgICAgaGFzX2ZpbGVuYW1lPWJvb2woZmlsZW5hbWUpLAorICAgICAgICApCisgICAgICAgIGlmIGZpbGVuYW1lOgorICAgICAgICAgICAgbGluZW5vID0gNgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbGluZW5vID0gOAorICAgICAgICBleHBlY3RlZCA9IFsKKyAgICAgICAgICAgICdUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgZmlyc3QpOicsCisgICAgICAgICAgICAnICBGaWxlICI8c3RyaW5nPiIsIGxpbmUgJXMgaW4gZnVuY0InICUgbGluZW5vLAorICAgICAgICAgICAgJyAgRmlsZSAiPHN0cmluZz4iLCBsaW5lIDExIGluIGZ1bmNBJywKKyAgICAgICAgICAgICcgIEZpbGUgIjxzdHJpbmc+IiwgbGluZSAxMyBpbiA8bW9kdWxlPicKKyAgICAgICAgXQorICAgICAgICB0cmFjZSwgZXhpdGNvZGUgPSBzZWxmLmdldF9vdXRwdXQoY29kZSwgZmlsZW5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsIGV4cGVjdGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4aXRjb2RlLCAwKQorCisgICAgZGVmIHRlc3RfZHVtcF90cmFjZWJhY2soc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfZHVtcF90cmFjZWJhY2soTm9uZSkKKworICAgIGRlZiB0ZXN0X2R1bXBfdHJhY2ViYWNrX2ZpbGUoc2VsZik6CisgICAgICAgIHdpdGggdGVtcG9yYXJ5X2ZpbGVuYW1lKCkgYXMgZmlsZW5hbWU6CisgICAgICAgICAgICBzZWxmLmNoZWNrX2R1bXBfdHJhY2ViYWNrKGZpbGVuYW1lKQorCisgICAgQHVuaXR0ZXN0LnNraXBJZihub3QgSEFWRV9USFJFQURTLCAnbmVlZCB0aHJlYWRzJykKKyAgICBkZWYgY2hlY2tfZHVtcF90cmFjZWJhY2tfdGhyZWFkcyhzZWxmLCBmaWxlbmFtZSk6CisgICAgICAgICIiIgorICAgICAgICBDYWxsIGV4cGxpY2l0bHkgZHVtcF90cmFjZWJhY2soYWxsX3RocmVhZHM9VHJ1ZSkgYW5kIGNoZWNrIHRoZSBvdXRwdXQuCisgICAgICAgIFJhaXNlIGFuIGVycm9yIGlmIHRoZSBvdXRwdXQgZG9lc24ndCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LgorICAgICAgICAiIiIKKyAgICAgICAgY29kZSA9ICIiIgoraW1wb3J0IGZhdWx0aGFuZGxlcgorZnJvbSB0aHJlYWRpbmcgaW1wb3J0IFRocmVhZCwgRXZlbnQKK2ltcG9ydCB0aW1lCisKK2RlZiBkdW1wKCk6CisgICAgaWYge2ZpbGVuYW1lfToKKyAgICAgICAgd2l0aCBvcGVuKHtmaWxlbmFtZX0sICJ3YiIpIGFzIGZwOgorICAgICAgICAgICAgZmF1bHRoYW5kbGVyLmR1bXBfdHJhY2ViYWNrKGZwLCBhbGxfdGhyZWFkcz1UcnVlKQorICAgIGVsc2U6CisgICAgICAgIGZhdWx0aGFuZGxlci5kdW1wX3RyYWNlYmFjayhhbGxfdGhyZWFkcz1UcnVlKQorCitjbGFzcyBXYWl0ZXIoVGhyZWFkKToKKyAgICAjIGF2b2lkIGJsb2NraW5nIGlmIHRoZSBtYWluIHRocmVhZCByYWlzZXMgYW4gZXhjZXB0aW9uLgorICAgIGRhZW1vbiA9IFRydWUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgVGhyZWFkLl9faW5pdF9fKHNlbGYpCisgICAgICAgIHNlbGYucnVubmluZyA9IEV2ZW50KCkKKyAgICAgICAgc2VsZi5zdG9wID0gRXZlbnQoKQorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgc2VsZi5ydW5uaW5nLnNldCgpCisgICAgICAgIHNlbGYuc3RvcC53YWl0KCkKKword2FpdGVyID0gV2FpdGVyKCkKK3dhaXRlci5zdGFydCgpCit3YWl0ZXIucnVubmluZy53YWl0KCkKK2R1bXAoKQord2FpdGVyLnN0b3Auc2V0KCkKK3dhaXRlci5qb2luKCkKKyIiIi5zdHJpcCgpCisgICAgICAgIGNvZGUgPSBjb2RlLmZvcm1hdChmaWxlbmFtZT1yZXByKGZpbGVuYW1lKSkKKyAgICAgICAgb3V0cHV0LCBleGl0Y29kZSA9IHNlbGYuZ2V0X291dHB1dChjb2RlLCBmaWxlbmFtZSkKKyAgICAgICAgb3V0cHV0ID0gJ1xuJy5qb2luKG91dHB1dCkKKyAgICAgICAgaWYgZmlsZW5hbWU6CisgICAgICAgICAgICBsaW5lbm8gPSA4CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsaW5lbm8gPSAxMAorICAgICAgICByZWdleCA9ICIiIgorXlRocmVhZCAweFswLTlhLWZdKzoKKyg/OiAgRmlsZSAiLip0aHJlYWRpbmcucHkiLCBsaW5lIFswLTldKyBpbiBbX2Etel0rCispe3sxLDN9fSAgRmlsZSAiPHN0cmluZz4iLCBsaW5lIDIzIGluIHJ1bgorICBGaWxlICIuKnRocmVhZGluZy5weSIsIGxpbmUgWzAtOV0rIGluIF9ib290c3RyYXBfaW5uZXIKKyAgRmlsZSAiLip0aHJlYWRpbmcucHkiLCBsaW5lIFswLTldKyBpbiBfYm9vdHN0cmFwCisKK0N1cnJlbnQgdGhyZWFkIFhYWDoKKyAgRmlsZSAiPHN0cmluZz4iLCBsaW5lIHtsaW5lbm99IGluIGR1bXAKKyAgRmlsZSAiPHN0cmluZz4iLCBsaW5lIDI4IGluIDxtb2R1bGU+JAorIiIiLnN0cmlwKCkKKyAgICAgICAgcmVnZXggPSByZWdleC5mb3JtYXQobGluZW5vPWxpbmVubykKKyAgICAgICAgc2VsZi5hc3NlcnRSZWdleChvdXRwdXQsIHJlZ2V4KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4aXRjb2RlLCAwKQorCisgICAgZGVmIHRlc3RfZHVtcF90cmFjZWJhY2tfdGhyZWFkcyhzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19kdW1wX3RyYWNlYmFja190aHJlYWRzKE5vbmUpCisKKyAgICBkZWYgdGVzdF9kdW1wX3RyYWNlYmFja190aHJlYWRzX2ZpbGUoc2VsZik6CisgICAgICAgIHdpdGggdGVtcG9yYXJ5X2ZpbGVuYW1lKCkgYXMgZmlsZW5hbWU6CisgICAgICAgICAgICBzZWxmLmNoZWNrX2R1bXBfdHJhY2ViYWNrX3RocmVhZHMoZmlsZW5hbWUpCisKKyAgICBkZWYgX2NoZWNrX2R1bXBfdHJhY2ViYWNrc19sYXRlcihzZWxmLCByZXBlYXQsIGNhbmNlbCwgZmlsZW5hbWUsIGxvb3BzKToKKyAgICAgICAgIiIiCisgICAgICAgIENoZWNrIGhvdyBtYW55IHRpbWVzIHRoZSB0cmFjZWJhY2sgaXMgd3JpdHRlbiBpbiB0aW1lb3V0IHggMi41IHNlY29uZHMsCisgICAgICAgIG9yIHRpbWVvdXQgeCAzLjUgc2Vjb25kcyBpZiBjYW5jZWwgaXMgVHJ1ZTogMSwgMiBvciAzIHRpbWVzIGRlcGVuZGluZworICAgICAgICBvbiByZXBlYXQgYW5kIGNhbmNlbCBvcHRpb25zLgorCisgICAgICAgIFJhaXNlIGFuIGVycm9yIGlmIHRoZSBvdXRwdXQgZG9lc24ndCBtYXRjaCB0aGUgZXhwZWN0IGZvcm1hdC4KKyAgICAgICAgIiIiCisgICAgICAgIHRpbWVvdXRfc3RyID0gc3RyKGRhdGV0aW1lLnRpbWVkZWx0YShzZWNvbmRzPVRJTUVPVVQpKQorICAgICAgICBjb2RlID0gIiIiCitpbXBvcnQgZmF1bHRoYW5kbGVyCitpbXBvcnQgdGltZQorCitkZWYgZnVuYyh0aW1lb3V0LCByZXBlYXQsIGNhbmNlbCwgZmlsZSwgbG9vcHMpOgorICAgIGZvciBsb29wIGluIHJhbmdlKGxvb3BzKToKKyAgICAgICAgZmF1bHRoYW5kbGVyLmR1bXBfdHJhY2ViYWNrc19sYXRlcih0aW1lb3V0LCByZXBlYXQ9cmVwZWF0LCBmaWxlPWZpbGUpCisgICAgICAgIGlmIGNhbmNlbDoKKyAgICAgICAgICAgIGZhdWx0aGFuZGxlci5jYW5jZWxfZHVtcF90cmFjZWJhY2tzX2xhdGVyKCkKKyAgICAgICAgdGltZS5zbGVlcCh0aW1lb3V0ICogNSkKKyAgICAgICAgZmF1bHRoYW5kbGVyLmNhbmNlbF9kdW1wX3RyYWNlYmFja3NfbGF0ZXIoKQorCit0aW1lb3V0ID0ge3RpbWVvdXR9CityZXBlYXQgPSB7cmVwZWF0fQorY2FuY2VsID0ge2NhbmNlbH0KK2xvb3BzID0ge2xvb3BzfQoraWYge2hhc19maWxlbmFtZX06CisgICAgZmlsZSA9IG9wZW4oe2ZpbGVuYW1lfSwgIndiIikKK2Vsc2U6CisgICAgZmlsZSA9IE5vbmUKK2Z1bmModGltZW91dCwgcmVwZWF0LCBjYW5jZWwsIGZpbGUsIGxvb3BzKQoraWYgZmlsZSBpcyBub3QgTm9uZToKKyAgICBmaWxlLmNsb3NlKCkKKyIiIi5zdHJpcCgpCisgICAgICAgIGNvZGUgPSBjb2RlLmZvcm1hdCgKKyAgICAgICAgICAgIHRpbWVvdXQ9VElNRU9VVCwKKyAgICAgICAgICAgIHJlcGVhdD1yZXBlYXQsCisgICAgICAgICAgICBjYW5jZWw9Y2FuY2VsLAorICAgICAgICAgICAgbG9vcHM9bG9vcHMsCisgICAgICAgICAgICBoYXNfZmlsZW5hbWU9Ym9vbChmaWxlbmFtZSksCisgICAgICAgICAgICBmaWxlbmFtZT1yZXByKGZpbGVuYW1lKSwKKyAgICAgICAgKQorICAgICAgICB0cmFjZSwgZXhpdGNvZGUgPSBzZWxmLmdldF9vdXRwdXQoY29kZSwgZmlsZW5hbWUpCisgICAgICAgIHRyYWNlID0gJ1xuJy5qb2luKHRyYWNlKQorCisgICAgICAgIGlmIG5vdCBjYW5jZWw6CisgICAgICAgICAgICBjb3VudCA9IGxvb3BzCisgICAgICAgICAgICBpZiByZXBlYXQ6CisgICAgICAgICAgICAgICAgY291bnQgKj0gMgorICAgICAgICAgICAgaGVhZGVyID0gcidUaW1lb3V0IFwoJXNcKSFcblRocmVhZCAweFswLTlhLWZdKzpcbicgJSB0aW1lb3V0X3N0cgorICAgICAgICAgICAgcmVnZXggPSBleHBlY3RlZF90cmFjZWJhY2soOSwgMjAsIGhlYWRlciwgbWluX2NvdW50PWNvdW50KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSZWdleCh0cmFjZSwgcmVnZXgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYWNlLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleGl0Y29kZSwgMCkKKworICAgIEB1bml0dGVzdC5za2lwSWYobm90IGhhc2F0dHIoZmF1bHRoYW5kbGVyLCAnZHVtcF90cmFjZWJhY2tzX2xhdGVyJyksCisgICAgICAgICAgICAgICAgICAgICAnbmVlZCBmYXVsdGhhbmRsZXIuZHVtcF90cmFjZWJhY2tzX2xhdGVyKCknKQorICAgIGRlZiBjaGVja19kdW1wX3RyYWNlYmFja3NfbGF0ZXIoc2VsZiwgcmVwZWF0PUZhbHNlLCBjYW5jZWw9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlPUZhbHNlLCB0d2ljZT1GYWxzZSk6CisgICAgICAgIGlmIHR3aWNlOgorICAgICAgICAgICAgbG9vcHMgPSAyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb29wcyA9IDEKKyAgICAgICAgaWYgZmlsZToKKyAgICAgICAgICAgIHdpdGggdGVtcG9yYXJ5X2ZpbGVuYW1lKCkgYXMgZmlsZW5hbWU6CisgICAgICAgICAgICAgICAgc2VsZi5fY2hlY2tfZHVtcF90cmFjZWJhY2tzX2xhdGVyKHJlcGVhdCwgY2FuY2VsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgbG9vcHMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9jaGVja19kdW1wX3RyYWNlYmFja3NfbGF0ZXIocmVwZWF0LCBjYW5jZWwsIE5vbmUsIGxvb3BzKQorCisgICAgZGVmIHRlc3RfZHVtcF90cmFjZWJhY2tzX2xhdGVyKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX2R1bXBfdHJhY2ViYWNrc19sYXRlcigpCisKKyAgICBkZWYgdGVzdF9kdW1wX3RyYWNlYmFja3NfbGF0ZXJfcmVwZWF0KHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX2R1bXBfdHJhY2ViYWNrc19sYXRlcihyZXBlYXQ9VHJ1ZSkKKworICAgIGRlZiB0ZXN0X2R1bXBfdHJhY2ViYWNrc19sYXRlcl9jYW5jZWwoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfZHVtcF90cmFjZWJhY2tzX2xhdGVyKGNhbmNlbD1UcnVlKQorCisgICAgZGVmIHRlc3RfZHVtcF90cmFjZWJhY2tzX2xhdGVyX2ZpbGUoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfZHVtcF90cmFjZWJhY2tzX2xhdGVyKGZpbGU9VHJ1ZSkKKworICAgIGRlZiB0ZXN0X2R1bXBfdHJhY2ViYWNrc19sYXRlcl90d2ljZShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19kdW1wX3RyYWNlYmFja3NfbGF0ZXIodHdpY2U9VHJ1ZSkKKworICAgIEB1bml0dGVzdC5za2lwSWYobm90IGhhc2F0dHIoZmF1bHRoYW5kbGVyLCAicmVnaXN0ZXIiKSwKKyAgICAgICAgICAgICAgICAgICAgICJuZWVkIGZhdWx0aGFuZGxlci5yZWdpc3RlciIpCisgICAgZGVmIGNoZWNrX3JlZ2lzdGVyKHNlbGYsIGZpbGVuYW1lPUZhbHNlLCBhbGxfdGhyZWFkcz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgdW5yZWdpc3Rlcj1GYWxzZSwgY2hhaW49RmFsc2UpOgorICAgICAgICAiIiIKKyAgICAgICAgUmVnaXN0ZXIgYSBoYW5kbGVyIGRpc3BsYXlpbmcgdGhlIHRyYWNlYmFjayBvbiBhIHVzZXIgc2lnbmFsLiBSYWlzZSB0aGUKKyAgICAgICAgc2lnbmFsIGFuZCBjaGVjayB0aGUgd3JpdHRlbiB0cmFjZWJhY2suCisKKyAgICAgICAgSWYgY2hhaW4gaXMgVHJ1ZSwgY2hlY2sgdGhhdCB0aGUgcHJldmlvdXMgc2lnbmFsIGhhbmRsZXIgaXMgY2FsbGVkLgorCisgICAgICAgIFJhaXNlIGFuIGVycm9yIGlmIHRoZSBvdXRwdXQgZG9lc24ndCBtYXRjaCB0aGUgZXhwZWN0ZWQgZm9ybWF0LgorICAgICAgICAiIiIKKyAgICAgICAgc2lnbnVtID0gc2lnbmFsLlNJR1VTUjEKKyAgICAgICAgY29kZSA9ICIiIgoraW1wb3J0IGZhdWx0aGFuZGxlcgoraW1wb3J0IG9zCitpbXBvcnQgc2lnbmFsCitpbXBvcnQgc3lzCisKK2RlZiBmdW5jKHNpZ251bSk6CisgICAgb3Mua2lsbChvcy5nZXRwaWQoKSwgc2lnbnVtKQorCitkZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKKyAgICBoYW5kbGVyLmNhbGxlZCA9IFRydWUKK2hhbmRsZXIuY2FsbGVkID0gRmFsc2UKKworZXhpdGNvZGUgPSAwCitzaWdudW0gPSB7c2lnbnVtfQordW5yZWdpc3RlciA9IHt1bnJlZ2lzdGVyfQorY2hhaW4gPSB7Y2hhaW59CisKK2lmIHtoYXNfZmlsZW5hbWV9OgorICAgIGZpbGUgPSBvcGVuKHtmaWxlbmFtZX0sICJ3YiIpCitlbHNlOgorICAgIGZpbGUgPSBOb25lCitpZiBjaGFpbjoKKyAgICBzaWduYWwuc2lnbmFsKHNpZ251bSwgaGFuZGxlcikKK2ZhdWx0aGFuZGxlci5yZWdpc3RlcihzaWdudW0sIGZpbGU9ZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICBhbGxfdGhyZWFkcz17YWxsX3RocmVhZHN9LCBjaGFpbj17Y2hhaW59KQoraWYgdW5yZWdpc3RlcjoKKyAgICBmYXVsdGhhbmRsZXIudW5yZWdpc3RlcihzaWdudW0pCitmdW5jKHNpZ251bSkKK2lmIGNoYWluIGFuZCBub3QgaGFuZGxlci5jYWxsZWQ6CisgICAgaWYgZmlsZSBpcyBub3QgTm9uZToKKyAgICAgICAgb3V0cHV0ID0gZmlsZQorICAgIGVsc2U6CisgICAgICAgIG91dHB1dCA9IHN5cy5zdGRlcnIKKyAgICBwcmludCgiRXJyb3I6IHNpZ25hbCBoYW5kbGVyIG5vdCBjYWxsZWQhIiwgZmlsZT1vdXRwdXQpCisgICAgZXhpdGNvZGUgPSAxCitpZiBmaWxlIGlzIG5vdCBOb25lOgorICAgIGZpbGUuY2xvc2UoKQorc3lzLmV4aXQoZXhpdGNvZGUpCisiIiIuc3RyaXAoKQorICAgICAgICBjb2RlID0gY29kZS5mb3JtYXQoCisgICAgICAgICAgICBmaWxlbmFtZT1yZXByKGZpbGVuYW1lKSwKKyAgICAgICAgICAgIGhhc19maWxlbmFtZT1ib29sKGZpbGVuYW1lKSwKKyAgICAgICAgICAgIGFsbF90aHJlYWRzPWFsbF90aHJlYWRzLAorICAgICAgICAgICAgc2lnbnVtPXNpZ251bSwKKyAgICAgICAgICAgIHVucmVnaXN0ZXI9dW5yZWdpc3RlciwKKyAgICAgICAgICAgIGNoYWluPWNoYWluLAorICAgICAgICApCisgICAgICAgIHRyYWNlLCBleGl0Y29kZSA9IHNlbGYuZ2V0X291dHB1dChjb2RlLCBmaWxlbmFtZSkKKyAgICAgICAgdHJhY2UgPSAnXG4nLmpvaW4odHJhY2UpCisgICAgICAgIGlmIG5vdCB1bnJlZ2lzdGVyOgorICAgICAgICAgICAgaWYgYWxsX3RocmVhZHM6CisgICAgICAgICAgICAgICAgcmVnZXggPSAnQ3VycmVudCB0aHJlYWQgWFhYOlxuJworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZWdleCA9ICdUcmFjZWJhY2sgXChtb3N0IHJlY2VudCBjYWxsIGZpcnN0XCk6XG4nCisgICAgICAgICAgICByZWdleCA9IGV4cGVjdGVkX3RyYWNlYmFjayg3LCAyOCwgcmVnZXgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJlZ2V4KHRyYWNlLCByZWdleCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsICcnKQorICAgICAgICBpZiB1bnJlZ2lzdGVyOgorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChleGl0Y29kZSwgMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhpdGNvZGUsIDApCisKKyAgICBkZWYgdGVzdF9yZWdpc3RlcihzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19yZWdpc3RlcigpCisKKyAgICBkZWYgdGVzdF91bnJlZ2lzdGVyKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX3JlZ2lzdGVyKHVucmVnaXN0ZXI9VHJ1ZSkKKworICAgIGRlZiB0ZXN0X3JlZ2lzdGVyX2ZpbGUoc2VsZik6CisgICAgICAgIHdpdGggdGVtcG9yYXJ5X2ZpbGVuYW1lKCkgYXMgZmlsZW5hbWU6CisgICAgICAgICAgICBzZWxmLmNoZWNrX3JlZ2lzdGVyKGZpbGVuYW1lPWZpbGVuYW1lKQorCisgICAgZGVmIHRlc3RfcmVnaXN0ZXJfdGhyZWFkcyhzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19yZWdpc3RlcihhbGxfdGhyZWFkcz1UcnVlKQorCisgICAgZGVmIHRlc3RfcmVnaXN0ZXJfY2hhaW4oc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfcmVnaXN0ZXIoY2hhaW49VHJ1ZSkKKworCitkZWYgdGVzdF9tYWluKCk6CisgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoRmF1bHRIYW5kbGVyVGVzdHMpCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgdGVzdF9tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZmlsZWlucHV0LnB5IGIvTGliL3Rlc3QvdGVzdF9maWxlaW5wdXQucHkKaW5kZXggZjMxMjg4Mi4uMWU3MDY0MSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9maWxlaW5wdXQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9maWxlaW5wdXQucHkKQEAgLTIsMTggKzIsMzMgQEAKIFRlc3RzIGZvciBmaWxlaW5wdXQgbW9kdWxlLgogTmljayBNYXRoZXdzb24KICcnJwotCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCByZQoraW1wb3J0IGZpbGVpbnB1dAoraW1wb3J0IGNvbGxlY3Rpb25zCitpbXBvcnQgYnVpbHRpbnMKIGltcG9ydCB1bml0dGVzdAotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHZlcmJvc2UsIFRFU1RGTiwgcnVuX3VuaXR0ZXN0Ci1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgdW5saW5rIGFzIHNhZmVfdW5saW5rCi1pbXBvcnQgc3lzLCByZQorCit0cnk6CisgICAgaW1wb3J0IGJ6MgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGJ6MiA9IE5vbmUKK3RyeToKKyAgICBpbXBvcnQgZ3ppcAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGd6aXAgPSBOb25lCisKIGZyb20gaW8gaW1wb3J0IFN0cmluZ0lPCiBmcm9tIGZpbGVpbnB1dCBpbXBvcnQgRmlsZUlucHV0LCBob29rX2VuY29kZWQKIAorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHZlcmJvc2UsIFRFU1RGTiwgcnVuX3VuaXR0ZXN0Citmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgdW5saW5rIGFzIHNhZmVfdW5saW5rCisKKwogIyBUaGUgZmlsZWlucHV0IG1vZHVsZSBoYXMgMiBpbnRlcmZhY2VzOiB0aGUgRmlsZUlucHV0IGNsYXNzIHdoaWNoIGRvZXMKICMgYWxsIHRoZSB3b3JrLCBhbmQgYSBmZXcgZnVuY3Rpb25zIChpbnB1dCwgZXRjLikgdGhhdCB1c2UgYSBnbG9iYWwgX3N0YXRlCi0jIHZhcmlhYmxlLiAgV2Ugb25seSB0ZXN0IHRoZSBGaWxlSW5wdXQgY2xhc3MsIHNpbmNlIHRoZSBvdGhlciBmdW5jdGlvbnMKLSMgb25seSBwcm92aWRlIGEgdGhpbiBmYWNhZGUgb3ZlciBGaWxlSW5wdXQuCisjIHZhcmlhYmxlLgogCiAjIFdyaXRlIGxpbmVzIChhIGxpc3Qgb2YgbGluZXMpIHRvIHRlbXAgZmlsZSBudW1iZXIgaSwgYW5kIHJldHVybiB0aGUKICMgdGVtcCBmaWxlJ3MgbmFtZS4KQEAgLTEyMSw3ICsxMzYsMTYgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW50KG0uZ3JvdXAoMSkpLCBmaS5maWxlbGluZW5vKCkpCiAgICAgICAgIGZpLmNsb3NlKCkKIAorY2xhc3MgVW5jb25kaXRpb25hbGx5UmFpc2U6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4Y2VwdGlvbl90eXBlKToKKyAgICAgICAgc2VsZi5leGNlcHRpb25fdHlwZSA9IGV4Y2VwdGlvbl90eXBlCisgICAgICAgIHNlbGYuaW52b2tlZCA9IEZhbHNlCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuaW52b2tlZCA9IFRydWUKKyAgICAgICAgcmFpc2Ugc2VsZi5leGNlcHRpb25fdHlwZSgpCisKIGNsYXNzIEZpbGVJbnB1dFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKwogICAgIGRlZiB0ZXN0X3plcm9fYnl0ZV9maWxlcyhzZWxmKToKICAgICAgICAgdDEgPSB0MiA9IHQzID0gdDQgPSBOb25lCiAgICAgICAgIHRyeToKQEAgLTIxOSwxNyArMjQzLDIwIEBACiAgICAgICAgICAgICBzZWxmLmZhaWwoIkZpbGVJbnB1dCBzaG91bGQgY2hlY2sgb3Blbmhvb2sgZm9yIGJlaW5nIGNhbGxhYmxlIikKICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgICBwYXNzCi0gICAgICAgICMgWFhYIFRoZSByb3QxMyBjb2RlYyB3YXMgcmVtb3ZlZC4KLSAgICAgICAgIyAgICAgU28gdGhpcyB0ZXN0IG5lZWRzIHRvIGJlIGNoYW5nZWQgdG8gdXNlIHNvbWV0aGluZyBlbHNlLgotICAgICAgICAjICAgICAoT3IgcGVyaGFwcyB0aGUgQVBJIG5lZWRzIHRvIGNoYW5nZSBzbyB3ZSBjYW4ganVzdCBwYXNzCi0gICAgICAgICMgICAgIGFuIGVuY29kaW5nIHJhdGhlciB0aGFuIHVzaW5nIGEgaG9vaz8pCi0jIyAgICAgICAgIHRyeToKLSMjICAgICAgICAgICAgIHQxID0gd3JpdGVUbXAoMSwgWyJBXG5CIl0sIG1vZGU9IndiIikKLSMjICAgICAgICAgICAgIGZpID0gRmlsZUlucHV0KGZpbGVzPXQxLCBvcGVuaG9vaz1ob29rX2VuY29kZWQoInJvdDEzIikpCi0jIyAgICAgICAgICAgICBsaW5lcyA9IGxpc3QoZmkpCi0jIyAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmVzLCBbIk5cbiIsICJPIl0pCi0jIyAgICAgICAgIGZpbmFsbHk6Ci0jIyAgICAgICAgICAgICByZW1vdmVfdGVtcGZpbGVzKHQxKQorCisgICAgICAgIGNsYXNzIEN1c3RvbU9wZW5Ib29rOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuaW52b2tlZCA9IEZhbHNlCisgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MpOgorICAgICAgICAgICAgICAgIHNlbGYuaW52b2tlZCA9IFRydWUKKyAgICAgICAgICAgICAgICByZXR1cm4gb3BlbigqYXJncykKKworICAgICAgICB0ID0gd3JpdGVUbXAoMSwgWyJcbiJdKQorICAgICAgICBzZWxmLmFkZENsZWFudXAocmVtb3ZlX3RlbXBmaWxlcywgdCkKKyAgICAgICAgY3VzdG9tX29wZW5faG9vayA9IEN1c3RvbU9wZW5Ib29rKCkKKyAgICAgICAgd2l0aCBGaWxlSW5wdXQoW3RdLCBvcGVuaG9vaz1jdXN0b21fb3Blbl9ob29rKSBhcyBmaToKKyAgICAgICAgICAgIGZpLnJlYWRsaW5lKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGN1c3RvbV9vcGVuX2hvb2suaW52b2tlZCwgIm9wZW5ob29rIG5vdCBpbnZva2VkIikKIAogICAgIGRlZiB0ZXN0X2NvbnRleHRfbWFuYWdlcihzZWxmKToKICAgICAgICAgdHJ5OgpAQCAtMjU0LDkgKzI4MSw1NzYgQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHJlbW92ZV90ZW1wZmlsZXModDEpCiAKKyAgICBkZWYgdGVzdF9lbXB0eV9maWxlc19saXN0X3NwZWNpZmllZF90b19jb25zdHJ1Y3RvcihzZWxmKToKKyAgICAgICAgd2l0aCBGaWxlSW5wdXQoZmlsZXM9W10pIGFzIGZpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaS5fZmlsZXMsICgnLScsKSkKKworICAgIGRlZiB0ZXN0X19nZXRpdGVtX18oc2VsZik6CisgICAgICAgICIiIlRlc3RzIGludm9raW5nIEZpbGVJbnB1dC5fX2dldGl0ZW1fXygpIHdpdGggdGhlIGN1cnJlbnQKKyAgICAgICAgICAgbGluZSBudW1iZXIiIiIKKyAgICAgICAgdCA9IHdyaXRlVG1wKDEsIFsibGluZTFcbiIsICJsaW5lMlxuIl0pCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChyZW1vdmVfdGVtcGZpbGVzLCB0KQorICAgICAgICB3aXRoIEZpbGVJbnB1dChmaWxlcz1bdF0pIGFzIGZpOgorICAgICAgICAgICAgcmV0dmFsMSA9IGZpWzBdCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHZhbDEsICJsaW5lMVxuIikKKyAgICAgICAgICAgIHJldHZhbDIgPSBmaVsxXQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXR2YWwyLCAibGluZTJcbiIpCisKKyAgICBkZWYgdGVzdF9fZ2V0aXRlbV9faW52YWxpZF9rZXkoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGludm9raW5nIEZpbGVJbnB1dC5fX2dldGl0ZW1fXygpIHdpdGggYW4gaW5kZXggdW5lcXVhbCB0bworICAgICAgICAgICB0aGUgbGluZSBudW1iZXIiIiIKKyAgICAgICAgdCA9IHdyaXRlVG1wKDEsIFsibGluZTFcbiIsICJsaW5lMlxuIl0pCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChyZW1vdmVfdGVtcGZpbGVzLCB0KQorICAgICAgICB3aXRoIEZpbGVJbnB1dChmaWxlcz1bdF0pIGFzIGZpOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgICAgIGZpWzFdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmFyZ3MsICgiYWNjZXNzaW5nIGxpbmVzIG91dCBvZiBvcmRlciIsKSkKKworICAgIGRlZiB0ZXN0X19nZXRpdGVtX19lb2Yoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGludm9raW5nIEZpbGVJbnB1dC5fX2dldGl0ZW1fXygpIHdpdGggdGhlIGxpbmUgbnVtYmVyIGJ1dCBhdAorICAgICAgICAgICBlbmQtb2YtaW5wdXQiIiIKKyAgICAgICAgdCA9IHdyaXRlVG1wKDEsIFtdKQorICAgICAgICBzZWxmLmFkZENsZWFudXAocmVtb3ZlX3RlbXBmaWxlcywgdCkKKyAgICAgICAgd2l0aCBGaWxlSW5wdXQoZmlsZXM9W3RdKSBhcyBmaToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvcikgYXMgY206CisgICAgICAgICAgICAgICAgZmlbMF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uYXJncywgKCJlbmQgb2YgaW5wdXQgcmVhY2hlZCIsKSkKKworICAgIGRlZiB0ZXN0X25leHRmaWxlX29zZXJyb3JfZGVsZXRpbmdfYmFja3VwKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyBpbnZva2luZyBGaWxlSW5wdXQubmV4dGZpbGUoKSB3aGVuIHRoZSBhdHRlbXB0IHRvIGRlbGV0ZQorICAgICAgICAgICB0aGUgYmFja3VwIGZpbGUgd291bGQgcmFpc2UgT1NFcnJvci4gIFRoaXMgZXJyb3IgaXMgZXhwZWN0ZWQgdG8gYmUKKyAgICAgICAgICAgc2lsZW50bHkgaWdub3JlZCIiIgorCisgICAgICAgIG9zX3VubGlua19vcmlnID0gb3MudW5saW5rCisgICAgICAgIG9zX3VubGlua19yZXBsYWNlbWVudCA9IFVuY29uZGl0aW9uYWxseVJhaXNlKE9TRXJyb3IpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHQgPSB3cml0ZVRtcCgxLCBbIlxuIl0pCisgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAocmVtb3ZlX3RlbXBmaWxlcywgdCkKKyAgICAgICAgICAgIHdpdGggRmlsZUlucHV0KGZpbGVzPVt0XSwgaW5wbGFjZT1UcnVlKSBhcyBmaToKKyAgICAgICAgICAgICAgICBuZXh0KGZpKSAjIG1ha2Ugc3VyZSB0aGUgZmlsZSBpcyBvcGVuZWQKKyAgICAgICAgICAgICAgICBvcy51bmxpbmsgPSBvc191bmxpbmtfcmVwbGFjZW1lbnQKKyAgICAgICAgICAgICAgICBmaS5uZXh0ZmlsZSgpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy51bmxpbmsgPSBvc191bmxpbmtfb3JpZworCisgICAgICAgICMgc2FuaXR5IGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IG91ciB0ZXN0IHNjZW5hcmlvIHdhcyBhY3R1YWxseSBoaXQKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zX3VubGlua19yZXBsYWNlbWVudC5pbnZva2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgIm9zLnVubGluaygpIHdhcyBub3QgaW52b2tlZCIpCisKKyAgICBkZWYgdGVzdF9yZWFkbGluZV9vc19mc3RhdF9yYWlzZXNfT1NFcnJvcihzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgaW52b2tpbmcgRmlsZUlucHV0LnJlYWRsaW5lKCkgd2hlbiBvcy5mc3RhdCgpIHJhaXNlcyBPU0Vycm9yLgorICAgICAgICAgICBUaGlzIGV4Y2VwdGlvbiBzaG91bGQgYmUgc2lsZW50bHkgZGlzY2FyZGVkLiIiIgorCisgICAgICAgIG9zX2ZzdGF0X29yaWcgPSBvcy5mc3RhdAorICAgICAgICBvc19mc3RhdF9yZXBsYWNlbWVudCA9IFVuY29uZGl0aW9uYWxseVJhaXNlKE9TRXJyb3IpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHQgPSB3cml0ZVRtcCgxLCBbIlxuIl0pCisgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAocmVtb3ZlX3RlbXBmaWxlcywgdCkKKyAgICAgICAgICAgIHdpdGggRmlsZUlucHV0KGZpbGVzPVt0XSwgaW5wbGFjZT1UcnVlKSBhcyBmaToKKyAgICAgICAgICAgICAgICBvcy5mc3RhdCA9IG9zX2ZzdGF0X3JlcGxhY2VtZW50CisgICAgICAgICAgICAgICAgZmkucmVhZGxpbmUoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuZnN0YXQgPSBvc19mc3RhdF9vcmlnCisKKyAgICAgICAgIyBzYW5pdHkgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgb3VyIHRlc3Qgc2NlbmFyaW8gd2FzIGFjdHVhbGx5IGhpdAorICAgICAgICBzZWxmLmFzc2VydFRydWUob3NfZnN0YXRfcmVwbGFjZW1lbnQuaW52b2tlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJvcy5mc3RhdCgpIHdhcyBub3QgaW52b2tlZCIpCisKKyAgICBAdW5pdHRlc3Quc2tpcElmKG5vdCBoYXNhdHRyKG9zLCAiY2htb2QiKSwgIm9zLmNobW9kIGRvZXMgbm90IGV4aXN0IikKKyAgICBkZWYgdGVzdF9yZWFkbGluZV9vc19jaG1vZF9yYWlzZXNfT1NFcnJvcihzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgaW52b2tpbmcgRmlsZUlucHV0LnJlYWRsaW5lKCkgd2hlbiBvcy5jaG1vZCgpIHJhaXNlcyBPU0Vycm9yLgorICAgICAgICAgICBUaGlzIGV4Y2VwdGlvbiBzaG91bGQgYmUgc2lsZW50bHkgZGlzY2FyZGVkLiIiIgorCisgICAgICAgIG9zX2NobW9kX29yaWcgPSBvcy5jaG1vZAorICAgICAgICBvc19jaG1vZF9yZXBsYWNlbWVudCA9IFVuY29uZGl0aW9uYWxseVJhaXNlKE9TRXJyb3IpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHQgPSB3cml0ZVRtcCgxLCBbIlxuIl0pCisgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAocmVtb3ZlX3RlbXBmaWxlcywgdCkKKyAgICAgICAgICAgIHdpdGggRmlsZUlucHV0KGZpbGVzPVt0XSwgaW5wbGFjZT1UcnVlKSBhcyBmaToKKyAgICAgICAgICAgICAgICBvcy5jaG1vZCA9IG9zX2NobW9kX3JlcGxhY2VtZW50CisgICAgICAgICAgICAgICAgZmkucmVhZGxpbmUoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuY2htb2QgPSBvc19jaG1vZF9vcmlnCisKKyAgICAgICAgIyBzYW5pdHkgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgb3VyIHRlc3Qgc2NlbmFyaW8gd2FzIGFjdHVhbGx5IGhpdAorICAgICAgICBzZWxmLmFzc2VydFRydWUob3NfY2htb2RfcmVwbGFjZW1lbnQuaW52b2tlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJvcy5mc3RhdCgpIHdhcyBub3QgaW52b2tlZCIpCisKKyAgICBkZWYgdGVzdF9maWxlbm9fd2hlbl9WYWx1ZUVycm9yX3JhaXNlZChzZWxmKToKKyAgICAgICAgY2xhc3MgRmlsZW5vUmFpc2VzVmFsdWVFcnJvcihVbmNvbmRpdGlvbmFsbHlSYWlzZSk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICAgICAgVW5jb25kaXRpb25hbGx5UmFpc2UuX19pbml0X18oc2VsZiwgVmFsdWVFcnJvcikKKyAgICAgICAgICAgIGRlZiBmaWxlbm8oc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5fX2NhbGxfXygpCisKKyAgICAgICAgdW5jb25kaXRpb25hbGx5X3JhaXNlX1ZhbHVlRXJyb3IgPSBGaWxlbm9SYWlzZXNWYWx1ZUVycm9yKCkKKyAgICAgICAgdCA9IHdyaXRlVG1wKDEsIFsiXG4iXSkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHJlbW92ZV90ZW1wZmlsZXMsIHQpCisgICAgICAgIHdpdGggRmlsZUlucHV0KGZpbGVzPVt0XSkgYXMgZmk6CisgICAgICAgICAgICBmaWxlX2JhY2t1cCA9IGZpLl9maWxlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZmkuX2ZpbGUgPSB1bmNvbmRpdGlvbmFsbHlfcmFpc2VfVmFsdWVFcnJvcgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGZpLmZpbGVubygpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGZpLl9maWxlID0gZmlsZV9iYWNrdXAgIyBtYWtlIHN1cmUgdGhlIGZpbGUgZ2V0cyBjbGVhbmVkIHVwCisKKyAgICAgICAgIyBzYW5pdHkgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgb3VyIHRlc3Qgc2NlbmFyaW8gd2FzIGFjdHVhbGx5IGhpdAorICAgICAgICBzZWxmLmFzc2VydFRydWUodW5jb25kaXRpb25hbGx5X3JhaXNlX1ZhbHVlRXJyb3IuaW52b2tlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICJfZmlsZS5maWxlbm8oKSB3YXMgbm90IGludm9rZWQiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCAtMSwgImZpbGVubygpIHNob3VsZCByZXR1cm4gLTEiKQorCitjbGFzcyBNb2NrRmlsZUlucHV0OgorICAgICIiIkEgY2xhc3MgdGhhdCBtb2NrcyBvdXQgZmlsZWlucHV0LkZpbGVJbnB1dCBmb3IgdXNlIGR1cmluZyB1bml0IHRlc3RzIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZXM9Tm9uZSwgaW5wbGFjZT1GYWxzZSwgYmFja3VwPSIiLCBidWZzaXplPTAsCisgICAgICAgICAgICAgICAgIG1vZGU9InIiLCBvcGVuaG9vaz1Ob25lKToKKyAgICAgICAgc2VsZi5maWxlcyA9IGZpbGVzCisgICAgICAgIHNlbGYuaW5wbGFjZSA9IGlucGxhY2UKKyAgICAgICAgc2VsZi5iYWNrdXAgPSBiYWNrdXAKKyAgICAgICAgc2VsZi5idWZzaXplID0gYnVmc2l6ZQorICAgICAgICBzZWxmLm1vZGUgPSBtb2RlCisgICAgICAgIHNlbGYub3Blbmhvb2sgPSBvcGVuaG9vaworICAgICAgICBzZWxmLl9maWxlID0gTm9uZQorICAgICAgICBzZWxmLmludm9jYXRpb25fY291bnRzID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3QobGFtYmRhOiAwKQorICAgICAgICBzZWxmLnJldHVybl92YWx1ZXMgPSB7fQorCisgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICBzZWxmLmludm9jYXRpb25fY291bnRzWyJjbG9zZSJdICs9IDEKKworICAgIGRlZiBuZXh0ZmlsZShzZWxmKToKKyAgICAgICAgc2VsZi5pbnZvY2F0aW9uX2NvdW50c1sibmV4dGZpbGUiXSArPSAxCisgICAgICAgIHJldHVybiBzZWxmLnJldHVybl92YWx1ZXNbIm5leHRmaWxlIl0KKworICAgIGRlZiBmaWxlbmFtZShzZWxmKToKKyAgICAgICAgc2VsZi5pbnZvY2F0aW9uX2NvdW50c1siZmlsZW5hbWUiXSArPSAxCisgICAgICAgIHJldHVybiBzZWxmLnJldHVybl92YWx1ZXNbImZpbGVuYW1lIl0KKworICAgIGRlZiBsaW5lbm8oc2VsZik6CisgICAgICAgIHNlbGYuaW52b2NhdGlvbl9jb3VudHNbImxpbmVubyJdICs9IDEKKyAgICAgICAgcmV0dXJuIHNlbGYucmV0dXJuX3ZhbHVlc1sibGluZW5vIl0KKworICAgIGRlZiBmaWxlbGluZW5vKHNlbGYpOgorICAgICAgICBzZWxmLmludm9jYXRpb25fY291bnRzWyJmaWxlbGluZW5vIl0gKz0gMQorICAgICAgICByZXR1cm4gc2VsZi5yZXR1cm5fdmFsdWVzWyJmaWxlbGluZW5vIl0KKworICAgIGRlZiBmaWxlbm8oc2VsZik6CisgICAgICAgIHNlbGYuaW52b2NhdGlvbl9jb3VudHNbImZpbGVubyJdICs9IDEKKyAgICAgICAgcmV0dXJuIHNlbGYucmV0dXJuX3ZhbHVlc1siZmlsZW5vIl0KKworICAgIGRlZiBpc2ZpcnN0bGluZShzZWxmKToKKyAgICAgICAgc2VsZi5pbnZvY2F0aW9uX2NvdW50c1siaXNmaXJzdGxpbmUiXSArPSAxCisgICAgICAgIHJldHVybiBzZWxmLnJldHVybl92YWx1ZXNbImlzZmlyc3RsaW5lIl0KKworICAgIGRlZiBpc3N0ZGluKHNlbGYpOgorICAgICAgICBzZWxmLmludm9jYXRpb25fY291bnRzWyJpc3N0ZGluIl0gKz0gMQorICAgICAgICByZXR1cm4gc2VsZi5yZXR1cm5fdmFsdWVzWyJpc3N0ZGluIl0KKworY2xhc3MgQmFzZUZpbGVJbnB1dEdsb2JhbE1ldGhvZHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJCYXNlIGNsYXNzIGZvciB1bml0IHRlc3RzIGZvciB0aGUgZ2xvYmFsIGZ1bmN0aW9uIG9mCisgICAgICAgdGhlIGZpbGVpbnB1dCBtb2R1bGUuIiIiCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuX29yaWdfc3RhdGUgPSBmaWxlaW5wdXQuX3N0YXRlCisgICAgICAgIHNlbGYuX29yaWdfRmlsZUlucHV0ID0gZmlsZWlucHV0LkZpbGVJbnB1dAorICAgICAgICBmaWxlaW5wdXQuRmlsZUlucHV0ID0gTW9ja0ZpbGVJbnB1dAorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBmaWxlaW5wdXQuRmlsZUlucHV0ID0gc2VsZi5fb3JpZ19GaWxlSW5wdXQKKyAgICAgICAgZmlsZWlucHV0Ll9zdGF0ZSA9IHNlbGYuX29yaWdfc3RhdGUKKworICAgIGRlZiBhc3NlcnRFeGFjdGx5T25lSW52b2NhdGlvbihzZWxmLCBtb2NrX2ZpbGVfaW5wdXQsIG1ldGhvZF9uYW1lKToKKyAgICAgICAgIyBhc3NlcnQgdGhhdCB0aGUgbWV0aG9kIHdpdGggdGhlIGdpdmVuIG5hbWUgd2FzIGludm9rZWQgb25jZQorICAgICAgICBhY3R1YWxfY291bnQgPSBtb2NrX2ZpbGVfaW5wdXQuaW52b2NhdGlvbl9jb3VudHNbbWV0aG9kX25hbWVdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX2NvdW50LCAxLCBtZXRob2RfbmFtZSkKKyAgICAgICAgIyBhc3NlcnQgdGhhdCBubyBvdGhlciB1bmV4cGVjdGVkIG1ldGhvZHMgd2VyZSBpbnZva2VkCisgICAgICAgIGFjdHVhbF90b3RhbF9jb3VudCA9IGxlbihtb2NrX2ZpbGVfaW5wdXQuaW52b2NhdGlvbl9jb3VudHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsX3RvdGFsX2NvdW50LCAxKQorCitjbGFzcyBUZXN0X2ZpbGVpbnB1dF9pbnB1dChCYXNlRmlsZUlucHV0R2xvYmFsTWV0aG9kc1Rlc3QpOgorICAgICIiIlVuaXQgdGVzdHMgZm9yIGZpbGVpbnB1dC5pbnB1dCgpIiIiCisKKyAgICBkZWYgdGVzdF9zdGF0ZV9pc19ub3RfTm9uZV9hbmRfc3RhdGVfZmlsZV9pc19ub3RfTm9uZShzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgaW52b2tpbmcgZmlsZWlucHV0LmlucHV0KCkgd2hlbiBmaWxlaW5wdXQuX3N0YXRlIGlzIG5vdCBOb25lCisgICAgICAgICAgIGFuZCBpdHMgX2ZpbGUgYXR0cmlidXRlIGlzIGFsc28gbm90IE5vbmUuICBFeHBlY3QgUnVudGltZUVycm9yIHRvCisgICAgICAgICAgIGJlIHJhaXNlZCB3aXRoIGEgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlIGFuZCBmb3IgZmlsZWlucHV0Ll9zdGF0ZQorICAgICAgICAgICB0byAqbm90KiBiZSBtb2RpZmllZC4iIiIKKyAgICAgICAgaW5zdGFuY2UgPSBNb2NrRmlsZUlucHV0KCkKKyAgICAgICAgaW5zdGFuY2UuX2ZpbGUgPSBvYmplY3QoKQorICAgICAgICBmaWxlaW5wdXQuX3N0YXRlID0gaW5zdGFuY2UKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgZmlsZWlucHV0LmlucHV0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoImlucHV0KCkgYWxyZWFkeSBhY3RpdmUiLCksIGNtLmV4Y2VwdGlvbi5hcmdzKQorICAgICAgICBzZWxmLmFzc2VydElzKGluc3RhbmNlLCBmaWxlaW5wdXQuX3N0YXRlLCAiZmlsZWlucHV0Ll9zdGF0ZSIpCisKKyAgICBkZWYgdGVzdF9zdGF0ZV9pc19ub3RfTm9uZV9hbmRfc3RhdGVfZmlsZV9pc19Ob25lKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyBpbnZva2luZyBmaWxlaW5wdXQuaW5wdXQoKSB3aGVuIGZpbGVpbnB1dC5fc3RhdGUgaXMgbm90IE5vbmUKKyAgICAgICAgICAgYnV0IGl0cyBfZmlsZSBhdHRyaWJ1dGUgKmlzKiBOb25lLiAgRXhwZWN0IGl0IHRvIGNyZWF0ZSBhbmQgcmV0dXJuCisgICAgICAgICAgIGEgbmV3IGZpbGVpbnB1dC5GaWxlSW5wdXQgb2JqZWN0IHdpdGggYWxsIG1ldGhvZCBwYXJhbWV0ZXJzIHBhc3NlZAorICAgICAgICAgICBleHBsaWNpdGx5IHRvIHRoZSBfX2luaXRfXygpIG1ldGhvZDsgYWxzbyBlbnN1cmUgdGhhdAorICAgICAgICAgICBmaWxlaW5wdXQuX3N0YXRlIGlzIHNldCB0byB0aGUgcmV0dXJuZWQgaW5zdGFuY2UuIiIiCisgICAgICAgIGluc3RhbmNlID0gTW9ja0ZpbGVJbnB1dCgpCisgICAgICAgIGluc3RhbmNlLl9maWxlID0gTm9uZQorICAgICAgICBmaWxlaW5wdXQuX3N0YXRlID0gaW5zdGFuY2UKKyAgICAgICAgc2VsZi5kb190ZXN0X2NhbGxfaW5wdXQoKQorCisgICAgZGVmIHRlc3Rfc3RhdGVfaXNfTm9uZShzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgaW52b2tpbmcgZmlsZWlucHV0LmlucHV0KCkgd2hlbiBmaWxlaW5wdXQuX3N0YXRlIGlzIE5vbmUKKyAgICAgICAgICAgRXhwZWN0IGl0IHRvIGNyZWF0ZSBhbmQgcmV0dXJuIGEgbmV3IGZpbGVpbnB1dC5GaWxlSW5wdXQgb2JqZWN0CisgICAgICAgICAgIHdpdGggYWxsIG1ldGhvZCBwYXJhbWV0ZXJzIHBhc3NlZCBleHBsaWNpdGx5IHRvIHRoZSBfX2luaXRfXygpCisgICAgICAgICAgIG1ldGhvZDsgYWxzbyBlbnN1cmUgdGhhdCBmaWxlaW5wdXQuX3N0YXRlIGlzIHNldCB0byB0aGUgcmV0dXJuZWQKKyAgICAgICAgICAgaW5zdGFuY2UuIiIiCisgICAgICAgIGZpbGVpbnB1dC5fc3RhdGUgPSBOb25lCisgICAgICAgIHNlbGYuZG9fdGVzdF9jYWxsX2lucHV0KCkKKworICAgIGRlZiBkb190ZXN0X2NhbGxfaW5wdXQoc2VsZik6CisgICAgICAgICIiIlRlc3RzIHRoYXQgZmlsZWlucHV0LmlucHV0KCkgY3JlYXRlcyBhIG5ldyBmaWxlaW5wdXQuRmlsZUlucHV0CisgICAgICAgICAgIG9iamVjdCwgcGFzc2luZyB0aGUgZ2l2ZW4gcGFyYW1ldGVycyB1bm1vZGlmaWVkIHRvCisgICAgICAgICAgIGZpbGVpbnB1dC5GaWxlSW5wdXQuX19pbml0X18oKS4gIE5vdGUgdGhhdCB0aGlzIHRlc3QgZGVwZW5kcyBvbiB0aGUKKyAgICAgICAgICAgbW9ua2V5IHBhdGNoaW5nIG9mIGZpbGVpbnB1dC5GaWxlSW5wdXQgZG9uZSBieSBzZXRVcCgpLiIiIgorICAgICAgICBmaWxlcyA9IG9iamVjdCgpCisgICAgICAgIGlucGxhY2UgPSBvYmplY3QoKQorICAgICAgICBiYWNrdXAgPSBvYmplY3QoKQorICAgICAgICBidWZzaXplID0gb2JqZWN0KCkKKyAgICAgICAgbW9kZSA9IG9iamVjdCgpCisgICAgICAgIG9wZW5ob29rID0gb2JqZWN0KCkKKworICAgICAgICAjIGNhbGwgZmlsZWlucHV0LmlucHV0KCkgd2l0aCBkaWZmZXJlbnQgdmFsdWVzIGZvciBlYWNoIGFyZ3VtZW50CisgICAgICAgIHJlc3VsdCA9IGZpbGVpbnB1dC5pbnB1dChmaWxlcz1maWxlcywgaW5wbGFjZT1pbnBsYWNlLCBiYWNrdXA9YmFja3VwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmc2l6ZT1idWZzaXplLAorICAgICAgICAgICAgbW9kZT1tb2RlLCBvcGVuaG9vaz1vcGVuaG9vaykKKworICAgICAgICAjIGVuc3VyZSBmaWxlaW5wdXQuX3N0YXRlIHdhcyBzZXQgdG8gdGhlIHJldHVybmVkIG9iamVjdAorICAgICAgICBzZWxmLmFzc2VydElzKHJlc3VsdCwgZmlsZWlucHV0Ll9zdGF0ZSwgImZpbGVpbnB1dC5fc3RhdGUiKQorCisgICAgICAgICMgZW5zdXJlIHRoZSBwYXJhbWV0ZXJzIHRvIGZpbGVpbnB1dC5pbnB1dCgpIHdlcmUgcGFzc2VkIGRpcmVjdGx5CisgICAgICAgICMgdG8gRmlsZUlucHV0Ll9faW5pdF9fKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhmaWxlcywgcmVzdWx0LmZpbGVzLCAiZmlsZXMiKQorICAgICAgICBzZWxmLmFzc2VydElzKGlucGxhY2UsIHJlc3VsdC5pbnBsYWNlLCAiaW5wbGFjZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoYmFja3VwLCByZXN1bHQuYmFja3VwLCAiYmFja3VwIikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhidWZzaXplLCByZXN1bHQuYnVmc2l6ZSwgImJ1ZnNpemUiKQorICAgICAgICBzZWxmLmFzc2VydElzKG1vZGUsIHJlc3VsdC5tb2RlLCAibW9kZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMob3Blbmhvb2ssIHJlc3VsdC5vcGVuaG9vaywgIm9wZW5ob29rIikKKworY2xhc3MgVGVzdF9maWxlaW5wdXRfY2xvc2UoQmFzZUZpbGVJbnB1dEdsb2JhbE1ldGhvZHNUZXN0KToKKyAgICAiIiJVbml0IHRlc3RzIGZvciBmaWxlaW5wdXQuY2xvc2UoKSIiIgorCisgICAgZGVmIHRlc3Rfc3RhdGVfaXNfTm9uZShzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgdGhhdCBmaWxlaW5wdXQuY2xvc2UoKSBkb2VzIG5vdGhpbmcgaWYgZmlsZWlucHV0Ll9zdGF0ZQorICAgICAgICAgICBpcyBOb25lIiIiCisgICAgICAgIGZpbGVpbnB1dC5fc3RhdGUgPSBOb25lCisgICAgICAgIGZpbGVpbnB1dC5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGZpbGVpbnB1dC5fc3RhdGUpCisKKyAgICBkZWYgdGVzdF9zdGF0ZV9pc19ub3RfTm9uZShzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgdGhhdCBmaWxlaW5wdXQuY2xvc2UoKSBpbnZva2VzIGNsb3NlKCkgb24gZmlsZWlucHV0Ll9zdGF0ZQorICAgICAgICAgICBhbmQgc2V0cyBfc3RhdGU9Tm9uZSIiIgorICAgICAgICBpbnN0YW5jZSA9IE1vY2tGaWxlSW5wdXQoKQorICAgICAgICBmaWxlaW5wdXQuX3N0YXRlID0gaW5zdGFuY2UKKyAgICAgICAgZmlsZWlucHV0LmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdGx5T25lSW52b2NhdGlvbihpbnN0YW5jZSwgImNsb3NlIikKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZmlsZWlucHV0Ll9zdGF0ZSkKKworY2xhc3MgVGVzdF9maWxlaW5wdXRfbmV4dGZpbGUoQmFzZUZpbGVJbnB1dEdsb2JhbE1ldGhvZHNUZXN0KToKKyAgICAiIiJVbml0IHRlc3RzIGZvciBmaWxlaW5wdXQubmV4dGZpbGUoKSIiIgorCisgICAgZGVmIHRlc3Rfc3RhdGVfaXNfTm9uZShzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgZmlsZWlucHV0Lm5leHRmaWxlKCkgd2hlbiBmaWxlaW5wdXQuX3N0YXRlIGlzIE5vbmUuCisgICAgICAgICAgIEVuc3VyZSB0aGF0IGl0IHJhaXNlcyBSdW50aW1lRXJyb3Igd2l0aCBhIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZQorICAgICAgICAgICBhbmQgZG9lcyBub3QgbW9kaWZ5IGZpbGVpbnB1dC5fc3RhdGUiIiIKKyAgICAgICAgZmlsZWlucHV0Ll9zdGF0ZSA9IE5vbmUKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgZmlsZWlucHV0Lm5leHRmaWxlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoIm5vIGFjdGl2ZSBpbnB1dCgpIiwpLCBjbS5leGNlcHRpb24uYXJncykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZmlsZWlucHV0Ll9zdGF0ZSkKKworICAgIGRlZiB0ZXN0X3N0YXRlX2lzX25vdF9Ob25lKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyBmaWxlaW5wdXQubmV4dGZpbGUoKSB3aGVuIGZpbGVpbnB1dC5fc3RhdGUgaXMgbm90IE5vbmUuCisgICAgICAgICAgIEVuc3VyZSB0aGF0IGl0IGludm9rZXMgZmlsZWlucHV0Ll9zdGF0ZS5uZXh0ZmlsZSgpIGV4YWN0bHkgb25jZSwKKyAgICAgICAgICAgcmV0dXJucyB3aGF0ZXZlciBpdCByZXR1cm5zLCBhbmQgZG9lcyBub3QgbW9kaWZ5IGZpbGVpbnB1dC5fc3RhdGUKKyAgICAgICAgICAgdG8gcG9pbnQgdG8gYSBkaWZmZXJlbnQgb2JqZWN0LiIiIgorICAgICAgICBuZXh0ZmlsZV9yZXR2YWwgPSBvYmplY3QoKQorICAgICAgICBpbnN0YW5jZSA9IE1vY2tGaWxlSW5wdXQoKQorICAgICAgICBpbnN0YW5jZS5yZXR1cm5fdmFsdWVzWyJuZXh0ZmlsZSJdID0gbmV4dGZpbGVfcmV0dmFsCisgICAgICAgIGZpbGVpbnB1dC5fc3RhdGUgPSBpbnN0YW5jZQorICAgICAgICByZXR2YWwgPSBmaWxlaW5wdXQubmV4dGZpbGUoKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0bHlPbmVJbnZvY2F0aW9uKGluc3RhbmNlLCAibmV4dGZpbGUiKQorICAgICAgICBzZWxmLmFzc2VydElzKHJldHZhbCwgbmV4dGZpbGVfcmV0dmFsKQorICAgICAgICBzZWxmLmFzc2VydElzKGZpbGVpbnB1dC5fc3RhdGUsIGluc3RhbmNlKQorCitjbGFzcyBUZXN0X2ZpbGVpbnB1dF9maWxlbmFtZShCYXNlRmlsZUlucHV0R2xvYmFsTWV0aG9kc1Rlc3QpOgorICAgICIiIlVuaXQgdGVzdHMgZm9yIGZpbGVpbnB1dC5maWxlbmFtZSgpIiIiCisKKyAgICBkZWYgdGVzdF9zdGF0ZV9pc19Ob25lKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyBmaWxlaW5wdXQuZmlsZW5hbWUoKSB3aGVuIGZpbGVpbnB1dC5fc3RhdGUgaXMgTm9uZS4KKyAgICAgICAgICAgRW5zdXJlIHRoYXQgaXQgcmFpc2VzIFJ1bnRpbWVFcnJvciB3aXRoIGEgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlCisgICAgICAgICAgIGFuZCBkb2VzIG5vdCBtb2RpZnkgZmlsZWlucHV0Ll9zdGF0ZSIiIgorICAgICAgICBmaWxlaW5wdXQuX3N0YXRlID0gTm9uZQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgY206CisgICAgICAgICAgICBmaWxlaW5wdXQuZmlsZW5hbWUoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgibm8gYWN0aXZlIGlucHV0KCkiLCksIGNtLmV4Y2VwdGlvbi5hcmdzKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmaWxlaW5wdXQuX3N0YXRlKQorCisgICAgZGVmIHRlc3Rfc3RhdGVfaXNfbm90X05vbmUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGZpbGVpbnB1dC5maWxlbmFtZSgpIHdoZW4gZmlsZWlucHV0Ll9zdGF0ZSBpcyBub3QgTm9uZS4KKyAgICAgICAgICAgRW5zdXJlIHRoYXQgaXQgaW52b2tlcyBmaWxlaW5wdXQuX3N0YXRlLmZpbGVuYW1lKCkgZXhhY3RseSBvbmNlLAorICAgICAgICAgICByZXR1cm5zIHdoYXRldmVyIGl0IHJldHVybnMsIGFuZCBkb2VzIG5vdCBtb2RpZnkgZmlsZWlucHV0Ll9zdGF0ZQorICAgICAgICAgICB0byBwb2ludCB0byBhIGRpZmZlcmVudCBvYmplY3QuIiIiCisgICAgICAgIGZpbGVuYW1lX3JldHZhbCA9IG9iamVjdCgpCisgICAgICAgIGluc3RhbmNlID0gTW9ja0ZpbGVJbnB1dCgpCisgICAgICAgIGluc3RhbmNlLnJldHVybl92YWx1ZXNbImZpbGVuYW1lIl0gPSBmaWxlbmFtZV9yZXR2YWwKKyAgICAgICAgZmlsZWlucHV0Ll9zdGF0ZSA9IGluc3RhbmNlCisgICAgICAgIHJldHZhbCA9IGZpbGVpbnB1dC5maWxlbmFtZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RseU9uZUludm9jYXRpb24oaW5zdGFuY2UsICJmaWxlbmFtZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocmV0dmFsLCBmaWxlbmFtZV9yZXR2YWwpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoZmlsZWlucHV0Ll9zdGF0ZSwgaW5zdGFuY2UpCisKK2NsYXNzIFRlc3RfZmlsZWlucHV0X2xpbmVubyhCYXNlRmlsZUlucHV0R2xvYmFsTWV0aG9kc1Rlc3QpOgorICAgICIiIlVuaXQgdGVzdHMgZm9yIGZpbGVpbnB1dC5saW5lbm8oKSIiIgorCisgICAgZGVmIHRlc3Rfc3RhdGVfaXNfTm9uZShzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgZmlsZWlucHV0LmxpbmVubygpIHdoZW4gZmlsZWlucHV0Ll9zdGF0ZSBpcyBOb25lLgorICAgICAgICAgICBFbnN1cmUgdGhhdCBpdCByYWlzZXMgUnVudGltZUVycm9yIHdpdGggYSBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgICAgYW5kIGRvZXMgbm90IG1vZGlmeSBmaWxlaW5wdXQuX3N0YXRlIiIiCisgICAgICAgIGZpbGVpbnB1dC5fc3RhdGUgPSBOb25lCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIGZpbGVpbnB1dC5saW5lbm8oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgibm8gYWN0aXZlIGlucHV0KCkiLCksIGNtLmV4Y2VwdGlvbi5hcmdzKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmaWxlaW5wdXQuX3N0YXRlKQorCisgICAgZGVmIHRlc3Rfc3RhdGVfaXNfbm90X05vbmUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGZpbGVpbnB1dC5saW5lbm8oKSB3aGVuIGZpbGVpbnB1dC5fc3RhdGUgaXMgbm90IE5vbmUuCisgICAgICAgICAgIEVuc3VyZSB0aGF0IGl0IGludm9rZXMgZmlsZWlucHV0Ll9zdGF0ZS5saW5lbm8oKSBleGFjdGx5IG9uY2UsCisgICAgICAgICAgIHJldHVybnMgd2hhdGV2ZXIgaXQgcmV0dXJucywgYW5kIGRvZXMgbm90IG1vZGlmeSBmaWxlaW5wdXQuX3N0YXRlCisgICAgICAgICAgIHRvIHBvaW50IHRvIGEgZGlmZmVyZW50IG9iamVjdC4iIiIKKyAgICAgICAgbGluZW5vX3JldHZhbCA9IG9iamVjdCgpCisgICAgICAgIGluc3RhbmNlID0gTW9ja0ZpbGVJbnB1dCgpCisgICAgICAgIGluc3RhbmNlLnJldHVybl92YWx1ZXNbImxpbmVubyJdID0gbGluZW5vX3JldHZhbAorICAgICAgICBmaWxlaW5wdXQuX3N0YXRlID0gaW5zdGFuY2UKKyAgICAgICAgcmV0dmFsID0gZmlsZWlucHV0LmxpbmVubygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RseU9uZUludm9jYXRpb24oaW5zdGFuY2UsICJsaW5lbm8iKQorICAgICAgICBzZWxmLmFzc2VydElzKHJldHZhbCwgbGluZW5vX3JldHZhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhmaWxlaW5wdXQuX3N0YXRlLCBpbnN0YW5jZSkKKworY2xhc3MgVGVzdF9maWxlaW5wdXRfZmlsZWxpbmVubyhCYXNlRmlsZUlucHV0R2xvYmFsTWV0aG9kc1Rlc3QpOgorICAgICIiIlVuaXQgdGVzdHMgZm9yIGZpbGVpbnB1dC5maWxlbGluZW5vKCkiIiIKKworICAgIGRlZiB0ZXN0X3N0YXRlX2lzX05vbmUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGZpbGVpbnB1dC5maWxlbGluZW5vKCkgd2hlbiBmaWxlaW5wdXQuX3N0YXRlIGlzIE5vbmUuCisgICAgICAgICAgIEVuc3VyZSB0aGF0IGl0IHJhaXNlcyBSdW50aW1lRXJyb3Igd2l0aCBhIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZQorICAgICAgICAgICBhbmQgZG9lcyBub3QgbW9kaWZ5IGZpbGVpbnB1dC5fc3RhdGUiIiIKKyAgICAgICAgZmlsZWlucHV0Ll9zdGF0ZSA9IE5vbmUKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgZmlsZWlucHV0LmZpbGVsaW5lbm8oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgibm8gYWN0aXZlIGlucHV0KCkiLCksIGNtLmV4Y2VwdGlvbi5hcmdzKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmaWxlaW5wdXQuX3N0YXRlKQorCisgICAgZGVmIHRlc3Rfc3RhdGVfaXNfbm90X05vbmUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGZpbGVpbnB1dC5maWxlbGluZW5vKCkgd2hlbiBmaWxlaW5wdXQuX3N0YXRlIGlzIG5vdCBOb25lLgorICAgICAgICAgICBFbnN1cmUgdGhhdCBpdCBpbnZva2VzIGZpbGVpbnB1dC5fc3RhdGUuZmlsZWxpbmVubygpIGV4YWN0bHkgb25jZSwKKyAgICAgICAgICAgcmV0dXJucyB3aGF0ZXZlciBpdCByZXR1cm5zLCBhbmQgZG9lcyBub3QgbW9kaWZ5IGZpbGVpbnB1dC5fc3RhdGUKKyAgICAgICAgICAgdG8gcG9pbnQgdG8gYSBkaWZmZXJlbnQgb2JqZWN0LiIiIgorICAgICAgICBmaWxlbGluZW5vX3JldHZhbCA9IG9iamVjdCgpCisgICAgICAgIGluc3RhbmNlID0gTW9ja0ZpbGVJbnB1dCgpCisgICAgICAgIGluc3RhbmNlLnJldHVybl92YWx1ZXNbImZpbGVsaW5lbm8iXSA9IGZpbGVsaW5lbm9fcmV0dmFsCisgICAgICAgIGZpbGVpbnB1dC5fc3RhdGUgPSBpbnN0YW5jZQorICAgICAgICByZXR2YWwgPSBmaWxlaW5wdXQuZmlsZWxpbmVubygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RseU9uZUludm9jYXRpb24oaW5zdGFuY2UsICJmaWxlbGluZW5vIikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhyZXR2YWwsIGZpbGVsaW5lbm9fcmV0dmFsKQorICAgICAgICBzZWxmLmFzc2VydElzKGZpbGVpbnB1dC5fc3RhdGUsIGluc3RhbmNlKQorCitjbGFzcyBUZXN0X2ZpbGVpbnB1dF9maWxlbm8oQmFzZUZpbGVJbnB1dEdsb2JhbE1ldGhvZHNUZXN0KToKKyAgICAiIiJVbml0IHRlc3RzIGZvciBmaWxlaW5wdXQuZmlsZW5vKCkiIiIKKworICAgIGRlZiB0ZXN0X3N0YXRlX2lzX05vbmUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGZpbGVpbnB1dC5maWxlbm8oKSB3aGVuIGZpbGVpbnB1dC5fc3RhdGUgaXMgTm9uZS4KKyAgICAgICAgICAgRW5zdXJlIHRoYXQgaXQgcmFpc2VzIFJ1bnRpbWVFcnJvciB3aXRoIGEgbWVhbmluZ2Z1bCBlcnJvciBtZXNzYWdlCisgICAgICAgICAgIGFuZCBkb2VzIG5vdCBtb2RpZnkgZmlsZWlucHV0Ll9zdGF0ZSIiIgorICAgICAgICBmaWxlaW5wdXQuX3N0YXRlID0gTm9uZQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvcikgYXMgY206CisgICAgICAgICAgICBmaWxlaW5wdXQuZmlsZW5vKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoIm5vIGFjdGl2ZSBpbnB1dCgpIiwpLCBjbS5leGNlcHRpb24uYXJncykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZmlsZWlucHV0Ll9zdGF0ZSkKKworICAgIGRlZiB0ZXN0X3N0YXRlX2lzX25vdF9Ob25lKHNlbGYpOgorICAgICAgICAiIiJUZXN0cyBmaWxlaW5wdXQuZmlsZW5vKCkgd2hlbiBmaWxlaW5wdXQuX3N0YXRlIGlzIG5vdCBOb25lLgorICAgICAgICAgICBFbnN1cmUgdGhhdCBpdCBpbnZva2VzIGZpbGVpbnB1dC5fc3RhdGUuZmlsZW5vKCkgZXhhY3RseSBvbmNlLAorICAgICAgICAgICByZXR1cm5zIHdoYXRldmVyIGl0IHJldHVybnMsIGFuZCBkb2VzIG5vdCBtb2RpZnkgZmlsZWlucHV0Ll9zdGF0ZQorICAgICAgICAgICB0byBwb2ludCB0byBhIGRpZmZlcmVudCBvYmplY3QuIiIiCisgICAgICAgIGZpbGVub19yZXR2YWwgPSBvYmplY3QoKQorICAgICAgICBpbnN0YW5jZSA9IE1vY2tGaWxlSW5wdXQoKQorICAgICAgICBpbnN0YW5jZS5yZXR1cm5fdmFsdWVzWyJmaWxlbm8iXSA9IGZpbGVub19yZXR2YWwKKyAgICAgICAgaW5zdGFuY2UuZmlsZW5vX3JldHZhbCA9IGZpbGVub19yZXR2YWwKKyAgICAgICAgZmlsZWlucHV0Ll9zdGF0ZSA9IGluc3RhbmNlCisgICAgICAgIHJldHZhbCA9IGZpbGVpbnB1dC5maWxlbm8oKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0bHlPbmVJbnZvY2F0aW9uKGluc3RhbmNlLCAiZmlsZW5vIikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhyZXR2YWwsIGZpbGVub19yZXR2YWwpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoZmlsZWlucHV0Ll9zdGF0ZSwgaW5zdGFuY2UpCisKK2NsYXNzIFRlc3RfZmlsZWlucHV0X2lzZmlyc3RsaW5lKEJhc2VGaWxlSW5wdXRHbG9iYWxNZXRob2RzVGVzdCk6CisgICAgIiIiVW5pdCB0ZXN0cyBmb3IgZmlsZWlucHV0LmlzZmlyc3RsaW5lKCkiIiIKKworICAgIGRlZiB0ZXN0X3N0YXRlX2lzX05vbmUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGZpbGVpbnB1dC5pc2ZpcnN0bGluZSgpIHdoZW4gZmlsZWlucHV0Ll9zdGF0ZSBpcyBOb25lLgorICAgICAgICAgICBFbnN1cmUgdGhhdCBpdCByYWlzZXMgUnVudGltZUVycm9yIHdpdGggYSBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgICAgYW5kIGRvZXMgbm90IG1vZGlmeSBmaWxlaW5wdXQuX3N0YXRlIiIiCisgICAgICAgIGZpbGVpbnB1dC5fc3RhdGUgPSBOb25lCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIGZpbGVpbnB1dC5pc2ZpcnN0bGluZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKCJubyBhY3RpdmUgaW5wdXQoKSIsKSwgY20uZXhjZXB0aW9uLmFyZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGZpbGVpbnB1dC5fc3RhdGUpCisKKyAgICBkZWYgdGVzdF9zdGF0ZV9pc19ub3RfTm9uZShzZWxmKToKKyAgICAgICAgIiIiVGVzdHMgZmlsZWlucHV0LmlzZmlyc3RsaW5lKCkgd2hlbiBmaWxlaW5wdXQuX3N0YXRlIGlzIG5vdCBOb25lLgorICAgICAgICAgICBFbnN1cmUgdGhhdCBpdCBpbnZva2VzIGZpbGVpbnB1dC5fc3RhdGUuaXNmaXJzdGxpbmUoKSBleGFjdGx5IG9uY2UsCisgICAgICAgICAgIHJldHVybnMgd2hhdGV2ZXIgaXQgcmV0dXJucywgYW5kIGRvZXMgbm90IG1vZGlmeSBmaWxlaW5wdXQuX3N0YXRlCisgICAgICAgICAgIHRvIHBvaW50IHRvIGEgZGlmZmVyZW50IG9iamVjdC4iIiIKKyAgICAgICAgaXNmaXJzdGxpbmVfcmV0dmFsID0gb2JqZWN0KCkKKyAgICAgICAgaW5zdGFuY2UgPSBNb2NrRmlsZUlucHV0KCkKKyAgICAgICAgaW5zdGFuY2UucmV0dXJuX3ZhbHVlc1siaXNmaXJzdGxpbmUiXSA9IGlzZmlyc3RsaW5lX3JldHZhbAorICAgICAgICBmaWxlaW5wdXQuX3N0YXRlID0gaW5zdGFuY2UKKyAgICAgICAgcmV0dmFsID0gZmlsZWlucHV0LmlzZmlyc3RsaW5lKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdGx5T25lSW52b2NhdGlvbihpbnN0YW5jZSwgImlzZmlyc3RsaW5lIikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhyZXR2YWwsIGlzZmlyc3RsaW5lX3JldHZhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhmaWxlaW5wdXQuX3N0YXRlLCBpbnN0YW5jZSkKKworY2xhc3MgVGVzdF9maWxlaW5wdXRfaXNzdGRpbihCYXNlRmlsZUlucHV0R2xvYmFsTWV0aG9kc1Rlc3QpOgorICAgICIiIlVuaXQgdGVzdHMgZm9yIGZpbGVpbnB1dC5pc3N0ZGluKCkiIiIKKworICAgIGRlZiB0ZXN0X3N0YXRlX2lzX05vbmUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGZpbGVpbnB1dC5pc3N0ZGluKCkgd2hlbiBmaWxlaW5wdXQuX3N0YXRlIGlzIE5vbmUuCisgICAgICAgICAgIEVuc3VyZSB0aGF0IGl0IHJhaXNlcyBSdW50aW1lRXJyb3Igd2l0aCBhIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZQorICAgICAgICAgICBhbmQgZG9lcyBub3QgbW9kaWZ5IGZpbGVpbnB1dC5fc3RhdGUiIiIKKyAgICAgICAgZmlsZWlucHV0Ll9zdGF0ZSA9IE5vbmUKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgZmlsZWlucHV0Lmlzc3RkaW4oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCgibm8gYWN0aXZlIGlucHV0KCkiLCksIGNtLmV4Y2VwdGlvbi5hcmdzKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmaWxlaW5wdXQuX3N0YXRlKQorCisgICAgZGVmIHRlc3Rfc3RhdGVfaXNfbm90X05vbmUoc2VsZik6CisgICAgICAgICIiIlRlc3RzIGZpbGVpbnB1dC5pc3N0ZGluKCkgd2hlbiBmaWxlaW5wdXQuX3N0YXRlIGlzIG5vdCBOb25lLgorICAgICAgICAgICBFbnN1cmUgdGhhdCBpdCBpbnZva2VzIGZpbGVpbnB1dC5fc3RhdGUuaXNzdGRpbigpIGV4YWN0bHkgb25jZSwKKyAgICAgICAgICAgcmV0dXJucyB3aGF0ZXZlciBpdCByZXR1cm5zLCBhbmQgZG9lcyBub3QgbW9kaWZ5IGZpbGVpbnB1dC5fc3RhdGUKKyAgICAgICAgICAgdG8gcG9pbnQgdG8gYSBkaWZmZXJlbnQgb2JqZWN0LiIiIgorICAgICAgICBpc3N0ZGluX3JldHZhbCA9IG9iamVjdCgpCisgICAgICAgIGluc3RhbmNlID0gTW9ja0ZpbGVJbnB1dCgpCisgICAgICAgIGluc3RhbmNlLnJldHVybl92YWx1ZXNbImlzc3RkaW4iXSA9IGlzc3RkaW5fcmV0dmFsCisgICAgICAgIGZpbGVpbnB1dC5fc3RhdGUgPSBpbnN0YW5jZQorICAgICAgICByZXR2YWwgPSBmaWxlaW5wdXQuaXNzdGRpbigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RseU9uZUludm9jYXRpb24oaW5zdGFuY2UsICJpc3N0ZGluIikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhyZXR2YWwsIGlzc3RkaW5fcmV0dmFsKQorICAgICAgICBzZWxmLmFzc2VydElzKGZpbGVpbnB1dC5fc3RhdGUsIGluc3RhbmNlKQorCitjbGFzcyBJbnZvY2F0aW9uUmVjb3JkZXI6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmludm9jYXRpb25fY291bnQgPSAwCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuaW52b2NhdGlvbl9jb3VudCArPSAxCisgICAgICAgIHNlbGYubGFzdF9pbnZvY2F0aW9uID0gKGFyZ3MsIGt3YXJncykKKworY2xhc3MgVGVzdF9ob29rX2NvbXByZXNzZWQodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIlVuaXQgdGVzdHMgZm9yIGZpbGVpbnB1dC5ob29rX2NvbXByZXNzZWQoKSIiIgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmZha2Vfb3BlbiA9IEludm9jYXRpb25SZWNvcmRlcigpCisKKyAgICBkZWYgdGVzdF9lbXB0eV9zdHJpbmcoc2VsZik6CisgICAgICAgIHNlbGYuZG9fdGVzdF91c2VfYnVpbHRpbl9vcGVuKCIiLCAxKQorCisgICAgZGVmIHRlc3Rfbm9fZXh0KHNlbGYpOgorICAgICAgICBzZWxmLmRvX3Rlc3RfdXNlX2J1aWx0aW5fb3BlbigiYWJjZCIsIDIpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhnemlwLCAiUmVxdWlyZXMgZ3ppcCBhbmQgemxpYiIpCisgICAgZGVmIHRlc3RfZ3pfZXh0X2Zha2Uoc2VsZik6CisgICAgICAgIG9yaWdpbmFsX29wZW4gPSBnemlwLm9wZW4KKyAgICAgICAgZ3ppcC5vcGVuID0gc2VsZi5mYWtlX29wZW4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gZmlsZWlucHV0Lmhvb2tfY29tcHJlc3NlZCgidGVzdC5neiIsIDMpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBnemlwLm9wZW4gPSBvcmlnaW5hbF9vcGVuCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmZha2Vfb3Blbi5pbnZvY2F0aW9uX2NvdW50LCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZmFrZV9vcGVuLmxhc3RfaW52b2NhdGlvbiwgKCgidGVzdC5neiIsIDMpLCB7fSkpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhiejIsICJSZXF1aXJlcyBiejIiKQorICAgIGRlZiB0ZXN0X2J6Ml9leHRfZmFrZShzZWxmKToKKyAgICAgICAgb3JpZ2luYWxfb3BlbiA9IGJ6Mi5CWjJGaWxlCisgICAgICAgIGJ6Mi5CWjJGaWxlID0gc2VsZi5mYWtlX29wZW4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gZmlsZWlucHV0Lmhvb2tfY29tcHJlc3NlZCgidGVzdC5iejIiLCA0KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgYnoyLkJaMkZpbGUgPSBvcmlnaW5hbF9vcGVuCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmZha2Vfb3Blbi5pbnZvY2F0aW9uX2NvdW50LCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZmFrZV9vcGVuLmxhc3RfaW52b2NhdGlvbiwgKCgidGVzdC5iejIiLCA0KSwge30pKQorCisgICAgZGVmIHRlc3RfYmxhaF9leHQoc2VsZik6CisgICAgICAgIHNlbGYuZG9fdGVzdF91c2VfYnVpbHRpbl9vcGVuKCJhYmNkLmJsYWgiLCA1KQorCisgICAgZGVmIHRlc3RfZ3pfZXh0X2J1aWx0aW4oc2VsZik6CisgICAgICAgIHNlbGYuZG9fdGVzdF91c2VfYnVpbHRpbl9vcGVuKCJhYmNkLkd6IiwgNikKKworICAgIGRlZiB0ZXN0X2J6Ml9leHRfYnVpbHRpbihzZWxmKToKKyAgICAgICAgc2VsZi5kb190ZXN0X3VzZV9idWlsdGluX29wZW4oImFiY2QuQnoyIiwgNykKKworICAgIGRlZiBkb190ZXN0X3VzZV9idWlsdGluX29wZW4oc2VsZiwgZmlsZW5hbWUsIG1vZGUpOgorICAgICAgICBvcmlnaW5hbF9vcGVuID0gc2VsZi5yZXBsYWNlX2J1aWx0aW5fb3BlbihzZWxmLmZha2Vfb3BlbikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gZmlsZWlucHV0Lmhvb2tfY29tcHJlc3NlZChmaWxlbmFtZSwgbW9kZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYucmVwbGFjZV9idWlsdGluX29wZW4ob3JpZ2luYWxfb3BlbikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZmFrZV9vcGVuLmludm9jYXRpb25fY291bnQsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5mYWtlX29wZW4ubGFzdF9pbnZvY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoZmlsZW5hbWUsIG1vZGUpLCB7fSkpCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHJlcGxhY2VfYnVpbHRpbl9vcGVuKG5ld19vcGVuX2Z1bmMpOgorICAgICAgICBvcmlnaW5hbF9vcGVuID0gYnVpbHRpbnMub3BlbgorICAgICAgICBidWlsdGlucy5vcGVuID0gbmV3X29wZW5fZnVuYworICAgICAgICByZXR1cm4gb3JpZ2luYWxfb3BlbgorCitjbGFzcyBUZXN0X2hvb2tfZW5jb2RlZCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiVW5pdCB0ZXN0cyBmb3IgZmlsZWlucHV0Lmhvb2tfZW5jb2RlZCgpIiIiCisKKyAgICBkZWYgdGVzdChzZWxmKToKKyAgICAgICAgZW5jb2RpbmcgPSBvYmplY3QoKQorICAgICAgICByZXN1bHQgPSBmaWxlaW5wdXQuaG9va19lbmNvZGVkKGVuY29kaW5nKQorCisgICAgICAgIGZha2Vfb3BlbiA9IEludm9jYXRpb25SZWNvcmRlcigpCisgICAgICAgIG9yaWdpbmFsX29wZW4gPSBidWlsdGlucy5vcGVuCisgICAgICAgIGJ1aWx0aW5zLm9wZW4gPSBmYWtlX29wZW4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZmlsZW5hbWUgPSBvYmplY3QoKQorICAgICAgICAgICAgbW9kZSA9IG9iamVjdCgpCisgICAgICAgICAgICBvcGVuX3Jlc3VsdCA9IHJlc3VsdChmaWxlbmFtZSwgbW9kZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGJ1aWx0aW5zLm9wZW4gPSBvcmlnaW5hbF9vcGVuCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWtlX29wZW4uaW52b2NhdGlvbl9jb3VudCwgMSkKKworICAgICAgICBhcmdzLCBrd2FyZ3MgPSBmYWtlX29wZW4ubGFzdF9pbnZvY2F0aW9uCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoYXJnc1swXSwgZmlsZW5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoYXJnc1sxXSwgbW9kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhrd2FyZ3MucG9wKCdlbmNvZGluZycpLCBlbmNvZGluZykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShrd2FyZ3MpCiAKIGRlZiB0ZXN0X21haW4oKToKLSAgICBydW5fdW5pdHRlc3QoQnVmZmVyU2l6ZXNUZXN0cywgRmlsZUlucHV0VGVzdHMpCisgICAgcnVuX3VuaXR0ZXN0KAorICAgICAgICBCdWZmZXJTaXplc1Rlc3RzLAorICAgICAgICBGaWxlSW5wdXRUZXN0cywKKyAgICAgICAgVGVzdF9maWxlaW5wdXRfaW5wdXQsCisgICAgICAgIFRlc3RfZmlsZWlucHV0X2Nsb3NlLAorICAgICAgICBUZXN0X2ZpbGVpbnB1dF9uZXh0ZmlsZSwKKyAgICAgICAgVGVzdF9maWxlaW5wdXRfZmlsZW5hbWUsCisgICAgICAgIFRlc3RfZmlsZWlucHV0X2xpbmVubywKKyAgICAgICAgVGVzdF9maWxlaW5wdXRfZmlsZWxpbmVubywKKyAgICAgICAgVGVzdF9maWxlaW5wdXRfZmlsZW5vLAorICAgICAgICBUZXN0X2ZpbGVpbnB1dF9pc2ZpcnN0bGluZSwKKyAgICAgICAgVGVzdF9maWxlaW5wdXRfaXNzdGRpbiwKKyAgICAgICAgVGVzdF9ob29rX2NvbXByZXNzZWQsCisgICAgICAgIFRlc3RfaG9va19lbmNvZGVkLAorICAgICkKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9maWxlaW8ucHkgYi9MaWIvdGVzdC90ZXN0X2ZpbGVpby5weQppbmRleCA1NTA0ZWEzLi45MDY5NTJjIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2ZpbGVpby5weQorKysgYi9MaWIvdGVzdC90ZXN0X2ZpbGVpby5weQpAQCAtMiw2ICsyLDcgQEAKIAogaW1wb3J0IHN5cwogaW1wb3J0IG9zCitpbXBvcnQgaW8KIGltcG9ydCBlcnJubwogaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIGFycmF5IGltcG9ydCBhcnJheQpAQCAtMzQ3LDEwICszNDgsMTAgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnRlbGwoKSwgMTApCiAgICAgICAgIGYudHJ1bmNhdGUoNSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnRlbGwoKSwgMTApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5zZWVrKDAsIG9zLlNFRUtfRU5EKSwgNSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnNlZWsoMCwgaW8uU0VFS19FTkQpLCA1KQogICAgICAgICBmLnRydW5jYXRlKDE1KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYudGVsbCgpLCA1KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuc2VlaygwLCBvcy5TRUVLX0VORCksIDE1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuc2VlaygwLCBpby5TRUVLX0VORCksIDE1KQogICAgICAgICBmLmNsb3NlKCkKIAogICAgIGRlZiB0ZXN0VHJ1bmNhdGVPbldpbmRvd3Moc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2Zsb2F0LnB5IGIvTGliL3Rlc3QvdGVzdF9mbG9hdC5weQppbmRleCA0ZDdiYmJhLi41MDIyOTJmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Zsb2F0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZmxvYXQucHkKQEAgLTg4LDcgKzg4LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZmxvYXQsICIgIC0weDMucC0xICAiKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmbG9hdCwgIiAgKzB4My5wLTEgICIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxvYXQoIiAgMjUuZS0xICAiKSwgMi41KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1cHBvcnQuZmNtcChmbG9hdCgiICAuMjVlLTEgICIpLCAuMDI1KSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChmbG9hdCgiICAuMjVlLTEgICIpLCAuMDI1KQogCiAgICAgZGVmIHRlc3RfZmxvYXRjb252ZXJzaW9uKHNlbGYpOgogICAgICAgICAjIE1ha2Ugc3VyZSB0aGF0IGNhbGxzIHRvIF9fZmxvYXRfXygpIHdvcmsgcHJvcGVybHkKQEAgLTg2MCwxNSArODYwLDE4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKDFlMzAwICogMWUzMDAgKiAwKSwgIm5hbiIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKC0xZTMwMCAqIDFlMzAwICogMCksICJuYW4iKQogCi0gICAgZGVmIG5vdGVzdF9mbG9hdF9uYW4oc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShOQU4uaXNfbmFuKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoSU5GLmlzX25hbigpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCgwLikuaXNfbmFuKCkpCisgICAgZGVmIHRlc3RfaW5mX3NpZ25zKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvcHlzaWduKDEuMCwgZmxvYXQoJ2luZicpKSwgMS4wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvcHlzaWduKDEuMCwgZmxvYXQoJy1pbmYnKSksIC0xLjApCiAKLSAgICBkZWYgbm90ZXN0X2Zsb2F0X2luZihzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKElORi5pc19pbmYoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShOQU4uaXNfaW5mKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoKDAuKS5pc19pbmYoKSkKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhnZXRhdHRyKHN5cywgJ2Zsb2F0X3JlcHJfc3R5bGUnLCAnJykgPT0gJ3Nob3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAiYXBwbGllcyBvbmx5IHdoZW4gdXNpbmcgc2hvcnQgZmxvYXQgcmVwciBzdHlsZSIpCisgICAgZGVmIHRlc3RfbmFuX3NpZ25zKHNlbGYpOgorICAgICAgICAjIFdoZW4gdXNpbmcgdGhlIGR0b2EuYyBjb2RlLCB0aGUgc2lnbiBvZiBmbG9hdCgnbmFuJykgc2hvdWxkCisgICAgICAgICMgYmUgcHJlZGljdGFibGUuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29weXNpZ24oMS4wLCBmbG9hdCgnbmFuJykpLCAxLjApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29weXNpZ24oMS4wLCBmbG9hdCgnLW5hbicpKSwgLTEuMCkKKwogCiBmcm9tSGV4ID0gZmxvYXQuZnJvbWhleAogdG9IZXggPSBmbG9hdC5oZXgKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZm9ybWF0LnB5IGIvTGliL3Rlc3QvdGVzdF9mb3JtYXQucHkKaW5kZXggN2ZhOTUwZC4uYjZlMjU0MCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9mb3JtYXQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9mb3JtYXQucHkKQEAgLTEsNCArMSw1IEBACiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgdmVyYm9zZSwgVGVzdEZhaWxlZAoraW1wb3J0IGxvY2FsZQogaW1wb3J0IHN5cwogaW1wb3J0IHRlc3Quc3VwcG9ydCBhcyBzdXBwb3J0CiBpbXBvcnQgdW5pdHRlc3QKQEAgLTI2Myw2ICsyNjQsNTEgQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmFpc2UgVGVzdEZhaWxlZCgnIiUqZCIlKG1heHNpemUsIC0xMjcpIHNob3VsZCBmYWlsJykKIAorICAgIGRlZiB0ZXN0X25vbl9hc2NpaShzZWxmKToKKyAgICAgICAgdGVzdGZvcm1hdCgiXHUyMGFjPSVmIiwgKDEuMCwpLCAiXHUyMGFjPTEuMDAwMDAwIikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvcm1hdCgiYWJjIiwgIlx1MjAwNzw1IiksICJhYmNcdTIwMDdcdTIwMDciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvcm1hdCgxMjMsICJcdTIwMDc8NSIpLCAiMTIzXHUyMDA3XHUyMDA3IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3JtYXQoMTIuMywgIlx1MjAwNzw2IiksICIxMi4zXHUyMDA3XHUyMDA3IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3JtYXQoMGosICJcdTIwMDc8NCIpLCAiMGpcdTIwMDdcdTIwMDciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvcm1hdCgxKzJqLCAiXHUyMDA3PDgiKSwgIigxKzJqKVx1MjAwN1x1MjAwNyIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3JtYXQoImFiYyIsICJcdTIwMDc+NSIpLCAiXHUyMDA3XHUyMDA3YWJjIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3JtYXQoMTIzLCAiXHUyMDA3PjUiKSwgIlx1MjAwN1x1MjAwNzEyMyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9ybWF0KDEyLjMsICJcdTIwMDc+NiIpLCAiXHUyMDA3XHUyMDA3MTIuMyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9ybWF0KDErMmosICJcdTIwMDc+OCIpLCAiXHUyMDA3XHUyMDA3KDErMmopIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3JtYXQoMGosICJcdTIwMDc+NCIpLCAiXHUyMDA3XHUyMDA3MGoiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9ybWF0KCJhYmMiLCAiXHUyMDA3XjUiKSwgIlx1MjAwN2FiY1x1MjAwNyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9ybWF0KDEyMywgIlx1MjAwN141IiksICJcdTIwMDcxMjNcdTIwMDciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvcm1hdCgxMi4zLCAiXHUyMDA3XjYiKSwgIlx1MjAwNzEyLjNcdTIwMDciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvcm1hdCgxKzJqLCAiXHUyMDA3XjgiKSwgIlx1MjAwNygxKzJqKVx1MjAwNyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9ybWF0KDBqLCAiXHUyMDA3XjQiKSwgIlx1MjAwNzBqXHUyMDA3IikKKworICAgIGRlZiB0ZXN0X2xvY2FsZShzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb2xkbG9jID0gbG9jYWxlLnNldGxvY2FsZShsb2NhbGUuTENfQUxMKQorICAgICAgICAgICAgbG9jYWxlLnNldGxvY2FsZShsb2NhbGUuTENfQUxMLCAnJykKKyAgICAgICAgZXhjZXB0IGxvY2FsZS5FcnJvciBhcyBlcnI6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJDYW5ub3Qgc2V0IGxvY2FsZToge30iLmZvcm1hdChlcnIpKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBsb2NhbGVjb252ID0gbG9jYWxlLmxvY2FsZWNvbnYoKQorICAgICAgICAgICAgc2VwID0gbG9jYWxlY29udlsndGhvdXNhbmRzX3NlcCddCisgICAgICAgICAgICBwb2ludCA9IGxvY2FsZWNvbnZbJ2RlY2ltYWxfcG9pbnQnXQorCisgICAgICAgICAgICB0ZXh0ID0gZm9ybWF0KDEyMzQ1Njc4OSwgIm4iKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihzZXAsIHRleHQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRleHQucmVwbGFjZShzZXAsICcnKSwgJzEyMzQ1Njc4OScpCisKKyAgICAgICAgICAgIHRleHQgPSBmb3JtYXQoMTIzNC41LCAibiIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKHNlcCwgdGV4dCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4ocG9pbnQsIHRleHQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRleHQucmVwbGFjZShzZXAsICcnKSwgJzEyMzQnICsgcG9pbnQgKyAnNScpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBsb2NhbGUuc2V0bG9jYWxlKGxvY2FsZS5MQ19BTEwsIG9sZGxvYykKKworCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChGb3JtYXRUZXN0KQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ZyYWN0aW9ucy5weSBiL0xpYi90ZXN0L3Rlc3RfZnJhY3Rpb25zLnB5CmluZGV4IDA4NGFlMGMuLjFmYWQ5MjEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZnJhY3Rpb25zLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZnJhY3Rpb25zLnB5CkBAIC00MDEsMTQgKzQwMSwxMCBAQAogCiAgICAgZGVmIHRlc3RNaXhpbmdXaXRoRGVjaW1hbChzZWxmKToKICAgICAgICAgIyBEZWNpbWFsIHJlZnVzZXMgbWl4ZWQgYXJpdGhtZXRpYyAoYnV0IG5vdCBtaXhlZCBjb21wYXJpc29ucykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNNZXNzYWdlKAotICAgICAgICAgICAgVHlwZUVycm9yLAotICAgICAgICAgICAgInVuc3VwcG9ydGVkIG9wZXJhbmQgdHlwZShzKSBmb3IgKzogJ0ZyYWN0aW9uJyBhbmQgJ0RlY2ltYWwnIiwKLSAgICAgICAgICAgIG9wZXJhdG9yLmFkZCwgRigzLDExKSwgRGVjaW1hbCgnMy4xNDE1OTI2JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzTWVzc2FnZSgKLSAgICAgICAgICAgIFR5cGVFcnJvciwKLSAgICAgICAgICAgICJ1bnN1cHBvcnRlZCBvcGVyYW5kIHR5cGUocykgZm9yICs6ICdEZWNpbWFsJyBhbmQgJ0ZyYWN0aW9uJyIsCi0gICAgICAgICAgICBvcGVyYXRvci5hZGQsIERlY2ltYWwoJzMuMTQxNTkyNicpLCBGKDMsMTEpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9wZXJhdG9yLmFkZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgRigzLDExKSwgRGVjaW1hbCgnMy4xNDE1OTI2JykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb3BlcmF0b3IuYWRkLAorICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsKCczLjE0MTU5MjYnKSwgRigzLDExKSkKIAogICAgIGRlZiB0ZXN0Q29tcGFyaXNvbnMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShGKDEsIDIpIDwgRigyLCAzKSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZnJvemVuLnB5IGIvTGliL3Rlc3QvdGVzdF9mcm96ZW4ucHkKaW5kZXggNTI0M2ViYi4uZmQ2NzYxYyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9mcm96ZW4ucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9mcm96ZW4ucHkKQEAgLTUsNiArNSwxMiBAQAogaW1wb3J0IHN5cwogCiBjbGFzcyBGcm96ZW5UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBtb2R1bGVfYXR0cnMgPSBmcm96ZW5zZXQoWydfX2J1aWx0aW5zX18nLCAnX19jYWNoZWRfXycsICdfX2RvY19fJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfX2xvYWRlcl9fJywgJ19fbmFtZV9fJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfX3BhY2thZ2VfXyddKQorICAgIHBhY2thZ2VfYXR0cnMgPSBmcm96ZW5zZXQobGlzdChtb2R1bGVfYXR0cnMpICsgWydfX3BhdGhfXyddKQorCiAgICAgZGVmIHRlc3RfZnJvemVuKHNlbGYpOgogICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIHN0ZG91dDoKICAgICAgICAgICAgIHRyeToKQEAgLTEyLDcgKzE4LDkgQEAKICAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyB4OgogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiaW1wb3J0IF9faGVsbG9fXyBmYWlsZWQ6IiArIHN0cih4KSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX19oZWxsb19fLmluaXRpYWxpemVkLCBUcnVlKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGlyKF9faGVsbG9fXykpLCA3LCBkaXIoX19oZWxsb19fKSkKKyAgICAgICAgICAgIGV4cGVjdCA9IHNldChzZWxmLm1vZHVsZV9hdHRycykKKyAgICAgICAgICAgIGV4cGVjdC5hZGQoJ2luaXRpYWxpemVkJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KGRpcihfX2hlbGxvX18pKSwgZXhwZWN0KQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGRvdXQuZ2V0dmFsdWUoKSwgJ0hlbGxvIHdvcmxkIVxuJykKIAogICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIHN0ZG91dDoKQEAgLTIxLDEwICsyOSwxMyBAQAogICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yIGFzIHg6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJpbXBvcnQgX19waGVsbG9fXyBmYWlsZWQ6IiArIHN0cih4KSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX19waGVsbG9fXy5pbml0aWFsaXplZCwgVHJ1ZSkKKyAgICAgICAgICAgIGV4cGVjdCA9IHNldChzZWxmLnBhY2thZ2VfYXR0cnMpCisgICAgICAgICAgICBleHBlY3QuYWRkKCdpbml0aWFsaXplZCcpCiAgICAgICAgICAgICBpZiBub3QgIl9fcGhlbGxvX18uc3BhbSIgaW4gc3lzLm1vZHVsZXM6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGlyKF9fcGhlbGxvX18pKSwgOCwgZGlyKF9fcGhlbGxvX18pKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KGRpcihfX3BoZWxsb19fKSksIGV4cGVjdCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGlyKF9fcGhlbGxvX18pKSwgOSwgZGlyKF9fcGhlbGxvX18pKQorICAgICAgICAgICAgICAgIGV4cGVjdC5hZGQoJ3NwYW0nKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KGRpcihfX3BoZWxsb19fKSksIGV4cGVjdCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX19waGVsbG9fXy5fX3BhdGhfXywgW19fcGhlbGxvX18uX19uYW1lX19dKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGRvdXQuZ2V0dmFsdWUoKSwgJ0hlbGxvIHdvcmxkIVxuJykKIApAQCAtMzQsOCArNDUsMTMgQEAKICAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyB4OgogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiaW1wb3J0IF9fcGhlbGxvX18uc3BhbSBmYWlsZWQ6IiArIHN0cih4KSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX19waGVsbG9fXy5zcGFtLmluaXRpYWxpemVkLCBUcnVlKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGlyKF9fcGhlbGxvX18uc3BhbSkpLCA3KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGlyKF9fcGhlbGxvX18pKSwgOSkKKyAgICAgICAgICAgIHNwYW1fZXhwZWN0ID0gc2V0KHNlbGYubW9kdWxlX2F0dHJzKQorICAgICAgICAgICAgc3BhbV9leHBlY3QuYWRkKCdpbml0aWFsaXplZCcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChkaXIoX19waGVsbG9fXy5zcGFtKSksIHNwYW1fZXhwZWN0KQorICAgICAgICAgICAgcGhlbGxvX2V4cGVjdCA9IHNldChzZWxmLnBhY2thZ2VfYXR0cnMpCisgICAgICAgICAgICBwaGVsbG9fZXhwZWN0LmFkZCgnaW5pdGlhbGl6ZWQnKQorICAgICAgICAgICAgcGhlbGxvX2V4cGVjdC5hZGQoJ3NwYW0nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoZGlyKF9fcGhlbGxvX18pKSwgcGhlbGxvX2V4cGVjdCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LmdldHZhbHVlKCksICdIZWxsbyB3b3JsZCFcbicpCiAKICAgICAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9mdHBsaWIucHkgYi9MaWIvdGVzdC90ZXN0X2Z0cGxpYi5weQppbmRleCA3MWJjMjNlLi43MDI4ZjQ2IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Z0cGxpYi5weQorKysgYi9MaWIvdGVzdC90ZXN0X2Z0cGxpYi5weQpAQCAtMjIsMTAgKzIyLDI1IEBACiB0aHJlYWRpbmcgPSBzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ3RocmVhZGluZycpCiAKICMgdGhlIGR1bW15IGRhdGEgcmV0dXJuZWQgYnkgc2VydmVyIG92ZXIgdGhlIGRhdGEgY2hhbm5lbCB3aGVuCi0jIFJFVFIsIExJU1QgYW5kIE5MU1QgY29tbWFuZHMgYXJlIGlzc3VlZAorIyBSRVRSLCBMSVNULCBOTFNULCBNTFNEIGNvbW1hbmRzIGFyZSBpc3N1ZWQKIFJFVFJfREFUQSA9ICdhYmNkZTEyMzQ1XHJcbicgKiAxMDAwCiBMSVNUX0RBVEEgPSAnZm9vXHJcbmJhclxyXG4nCiBOTFNUX0RBVEEgPSAnZm9vXHJcbmJhclxyXG4nCitNTFNEX0RBVEEgPSAoInR5cGU9Y2RpcjtwZXJtPWVsO3VuaXF1ZT09a2VWTzErWkY0OyB0ZXN0XHJcbiIKKyAgICAgICAgICAgICAidHlwZT1wZGlyO3Blcm09ZTt1bmlxdWU9PWtlVk8xK2Q/MzsgLi5cclxuIgorICAgICAgICAgICAgICJ0eXBlPU9TLnVuaXg9c2xpbms6L2Zvb2JhcjtwZXJtPTt1bmlxdWU9PWtlVk8xKzRHNDsgZm9vYmFyXHJcbiIKKyAgICAgICAgICAgICAidHlwZT1PUy51bml4PWNoci0xMy8yOTtwZXJtPTt1bmlxdWU9PWtlVk8xKzVHNDsgZGV2aWNlXHJcbiIKKyAgICAgICAgICAgICAidHlwZT1PUy51bml4PWJsay0xMS8xMDg7cGVybT07dW5pcXVlPT1rZVZPMSs2RzQ7IGJsb2NrXHJcbiIKKyAgICAgICAgICAgICAidHlwZT1maWxlO3Blcm09YXdyO3VuaXF1ZT09a2VWTzErOEc0OyB3cml0YWJsZVxyXG4iCisgICAgICAgICAgICAgInR5cGU9ZGlyO3Blcm09Y3BtZWw7dW5pcXVlPT1rZVZPMSs3RzQ7IHByb21pc2N1b3VzXHJcbiIKKyAgICAgICAgICAgICAidHlwZT1kaXI7cGVybT07dW5pcXVlPT1rZVZPMSsxdDI7IG5vLWV4ZWNcclxuIgorICAgICAgICAgICAgICJ0eXBlPWZpbGU7cGVybT1yO3VuaXF1ZT09a2VWTzErRUc0OyB0d28gd29yZHNcclxuIgorICAgICAgICAgICAgICJ0eXBlPWZpbGU7cGVybT1yO3VuaXF1ZT09a2VWTzErSUg0OyAgbGVhZGluZyBzcGFjZVxyXG4iCisgICAgICAgICAgICAgInR5cGU9ZmlsZTtwZXJtPXI7dW5pcXVlPT1rZVZPMSsxRzQ7IGZpbGUxXHJcbiIKKyAgICAgICAgICAgICAidHlwZT1kaXI7cGVybT1jcG1lbDt1bmlxdWU9PWtlVk8xKzdHNDsgaW5jb21pbmdcclxuIgorICAgICAgICAgICAgICJ0eXBlPWZpbGU7cGVybT1yO3VuaXF1ZT09a2VWTzErMUc0OyBmaWxlMlxyXG4iCisgICAgICAgICAgICAgInR5cGU9ZmlsZTtwZXJtPXI7dW5pcXVlPT1rZVZPMSsxRzQ7IGZpbGUzXHJcbiIKKyAgICAgICAgICAgICAidHlwZT1maWxlO3Blcm09cjt1bmlxdWU9PWtlVk8xKzFHNDsgZmlsZTRcclxuIikKIAogCiBjbGFzcyBEdW1teURUUEhhbmRsZXIoYXN5bmNoYXQuYXN5bmNfY2hhdCk6CkBAIC00OSw2ICs2NCwxMSBAQAogICAgICAgICAgICAgc2VsZi5kdHBfY29ubl9jbG9zZWQgPSBUcnVlCiAKICAgICBkZWYgcHVzaChzZWxmLCB3aGF0KToKKyAgICAgICAgaWYgc2VsZi5iYXNlY2xhc3MubmV4dF9kYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgd2hhdCA9IHNlbGYuYmFzZWNsYXNzLm5leHRfZGF0YQorICAgICAgICAgICAgc2VsZi5iYXNlY2xhc3MubmV4dF9kYXRhID0gTm9uZQorICAgICAgICBpZiBub3Qgd2hhdDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNsb3NlX3doZW5fZG9uZSgpCiAgICAgICAgIHN1cGVyKER1bW15RFRQSGFuZGxlciwgc2VsZikucHVzaCh3aGF0LmVuY29kZSgnYXNjaWknKSkKIAogICAgIGRlZiBoYW5kbGVfZXJyb3Ioc2VsZik6CkBAIC02OSw2ICs4OSw3IEBACiAgICAgICAgIHNlbGYubGFzdF9yZWNlaXZlZF9jbWQgPSBOb25lCiAgICAgICAgIHNlbGYubGFzdF9yZWNlaXZlZF9kYXRhID0gJycKICAgICAgICAgc2VsZi5uZXh0X3Jlc3BvbnNlID0gJycKKyAgICAgICAgc2VsZi5uZXh0X2RhdGEgPSBOb25lCiAgICAgICAgIHNlbGYucmVzdCA9IE5vbmUKICAgICAgICAgc2VsZi5wdXNoKCcyMjAgd2VsY29tZScpCiAKQEAgLTEwNCw3ICsxMjUsNyBAQAogICAgICAgICBhZGRyID0gbGlzdChtYXAoaW50LCBhcmcuc3BsaXQoJywnKSkpCiAgICAgICAgIGlwID0gJyVkLiVkLiVkLiVkJyAldHVwbGUoYWRkcls6NF0pCiAgICAgICAgIHBvcnQgPSAoYWRkcls0XSAqIDI1NikgKyBhZGRyWzVdCi0gICAgICAgIHMgPSBzb2NrZXQuY3JlYXRlX2Nvbm5lY3Rpb24oKGlwLCBwb3J0KSwgdGltZW91dD0xMCkKKyAgICAgICAgcyA9IHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbigoaXAsIHBvcnQpLCB0aW1lb3V0PTIpCiAgICAgICAgIHNlbGYuZHRwID0gc2VsZi5kdHBfaGFuZGxlcihzLCBiYXNlY2xhc3M9c2VsZikKICAgICAgICAgc2VsZi5wdXNoKCcyMDAgYWN0aXZlIGRhdGEgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCcpCiAKQEAgLTEyMiw3ICsxNDMsNyBAQAogICAgIGRlZiBjbWRfZXBydChzZWxmLCBhcmcpOgogICAgICAgICBhZiwgaXAsIHBvcnQgPSBhcmcuc3BsaXQoYXJnWzBdKVsxOi0xXQogICAgICAgICBwb3J0ID0gaW50KHBvcnQpCi0gICAgICAgIHMgPSBzb2NrZXQuY3JlYXRlX2Nvbm5lY3Rpb24oKGlwLCBwb3J0KSwgdGltZW91dD0xMCkKKyAgICAgICAgcyA9IHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbigoaXAsIHBvcnQpLCB0aW1lb3V0PTIpCiAgICAgICAgIHNlbGYuZHRwID0gc2VsZi5kdHBfaGFuZGxlcihzLCBiYXNlY2xhc3M9c2VsZikKICAgICAgICAgc2VsZi5wdXNoKCcyMDAgYWN0aXZlIGRhdGEgY29ubmVjdGlvbiBlc3RhYmxpc2hlZCcpCiAKQEAgLTIxMyw2ICsyMzQsMTQgQEAKICAgICAgICAgc2VsZi5kdHAucHVzaChOTFNUX0RBVEEpCiAgICAgICAgIHNlbGYuZHRwLmNsb3NlX3doZW5fZG9uZSgpCiAKKyAgICBkZWYgY21kX29wdHMoc2VsZiwgYXJnKToKKyAgICAgICAgc2VsZi5wdXNoKCcyMDAgb3B0cyBvaycpCisKKyAgICBkZWYgY21kX21sc2Qoc2VsZiwgYXJnKToKKyAgICAgICAgc2VsZi5wdXNoKCcxMjUgbWxzZCBvaycpCisgICAgICAgIHNlbGYuZHRwLnB1c2goTUxTRF9EQVRBKQorICAgICAgICBzZWxmLmR0cC5jbG9zZV93aGVuX2RvbmUoKQorCiAKIGNsYXNzIER1bW15RlRQU2VydmVyKGFzeW5jb3JlLmRpc3BhdGNoZXIsIHRocmVhZGluZy5UaHJlYWQpOgogCkBAIC0yNzQsMTEgKzMwMywxMSBAQAogICAgICAgICBfc3NsX2Nsb3NpbmcgPSBGYWxzZQogCiAgICAgICAgIGRlZiBzZWN1cmVfY29ubmVjdGlvbihzZWxmKToKLSAgICAgICAgICAgIHNlbGYuZGVsX2NoYW5uZWwoKQogICAgICAgICAgICAgc29ja2V0ID0gc3NsLndyYXBfc29ja2V0KHNlbGYuc29ja2V0LCBzdXBwcmVzc19yYWdnZWRfZW9mcz1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0ZmlsZT1DRVJURklMRSwgc2VydmVyX3NpZGU9VHJ1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb19oYW5kc2hha2Vfb25fY29ubmVjdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfdmVyc2lvbj1zc2wuUFJPVE9DT0xfU1NMdjIzKQorICAgICAgICAgICAgc2VsZi5kZWxfY2hhbm5lbCgpCiAgICAgICAgICAgICBzZWxmLnNldF9zb2NrZXQoc29ja2V0KQogICAgICAgICAgICAgc2VsZi5fc3NsX2FjY2VwdGluZyA9IFRydWUKIApAQCAtMzEzLDcgKzM0MiwxMCBAQAogICAgICAgICAgICAgICAgICMgaHR0cDovL3d3dy5tYWlsLWFyY2hpdmUuY29tL29wZW5zc2wtdXNlcnNAb3BlbnNzbC5vcmcvbXNnNjA3MTAuaHRtbAogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIHNlbGYuX3NzbF9jbG9zaW5nID0gRmFsc2UKLSAgICAgICAgICAgIHN1cGVyKFNTTENvbm5lY3Rpb24sIHNlbGYpLmNsb3NlKCkKKyAgICAgICAgICAgIGlmIGdldGF0dHIoc2VsZiwgJ19jY2MnLCBGYWxzZSkgPT0gRmFsc2U6CisgICAgICAgICAgICAgICAgc3VwZXIoU1NMQ29ubmVjdGlvbiwgc2VsZikuY2xvc2UoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwYXNzCiAKICAgICAgICAgZGVmIGhhbmRsZV9yZWFkX2V2ZW50KHNlbGYpOgogICAgICAgICAgICAgaWYgc2VsZi5fc3NsX2FjY2VwdGluZzoKQEAgLTM4MSwxMiArNDEzLDE4IEBACiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25uKToKICAgICAgICAgICAgIER1bW15RlRQSGFuZGxlci5fX2luaXRfXyhzZWxmLCBjb25uKQogICAgICAgICAgICAgc2VsZi5zZWN1cmVfZGF0YV9jaGFubmVsID0gRmFsc2UKKyAgICAgICAgICAgIHNlbGYuX2NjYyA9IEZhbHNlCiAKICAgICAgICAgZGVmIGNtZF9hdXRoKHNlbGYsIGxpbmUpOgogICAgICAgICAgICAgIiIiU2V0IHVwIHNlY3VyZSBjb250cm9sIGNoYW5uZWwuIiIiCiAgICAgICAgICAgICBzZWxmLnB1c2goJzIzNCBBVVRIIFRMUyBzdWNjZXNzZnVsJykKICAgICAgICAgICAgIHNlbGYuc2VjdXJlX2Nvbm5lY3Rpb24oKQogCisgICAgICAgIGRlZiBjbWRfY2NjKHNlbGYsIGxpbmUpOgorICAgICAgICAgICAgc2VsZi5wdXNoKCcyMjAgUmV2ZXJ0aW5nIGJhY2sgdG8gY2xlYXItdGV4dCcpCisgICAgICAgICAgICBzZWxmLl9jY2MgPSBUcnVlCisgICAgICAgICAgICBzZWxmLl9kb19zc2xfc2h1dGRvd24oKQorCiAgICAgICAgIGRlZiBjbWRfcGJzeihzZWxmLCBsaW5lKToKICAgICAgICAgICAgICIiIk5lZ290aWF0ZSBzaXplIG9mIGJ1ZmZlciBmb3Igc2VjdXJlIGRhdGEgdHJhbnNmZXIuCiAgICAgICAgICAgICBGb3IgVExTL1NTTCB0aGUgb25seSB2YWxpZCB2YWx1ZSBmb3IgdGhlIHBhcmFtZXRlciBpcyAnMCcuCkBAIC00MTYsMTMgKzQ1NCwxNyBAQAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBEdW1teUZUUFNlcnZlcigoSE9TVCwgMCkpCiAgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KCkKLSAgICAgICAgc2VsZi5jbGllbnQgPSBmdHBsaWIuRlRQKHRpbWVvdXQ9MTApCisgICAgICAgIHNlbGYuY2xpZW50ID0gZnRwbGliLkZUUCh0aW1lb3V0PTIpCiAgICAgICAgIHNlbGYuY2xpZW50LmNvbm5lY3Qoc2VsZi5zZXJ2ZXIuaG9zdCwgc2VsZi5zZXJ2ZXIucG9ydCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgc2VsZi5jbGllbnQuY2xvc2UoKQogICAgICAgICBzZWxmLnNlcnZlci5zdG9wKCkKIAorICAgIGRlZiBjaGVja19kYXRhKHNlbGYsIHJlY2VpdmVkLCBleHBlY3RlZCk6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlY2VpdmVkKSwgbGVuKGV4cGVjdGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWNlaXZlZCwgZXhwZWN0ZWQpCisKICAgICBkZWYgdGVzdF9nZXR3ZWxjb21lKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2xpZW50LmdldHdlbGNvbWUoKSwgJzIyMCB3ZWxjb21lJykKIApAQCAtNTA0LDcgKzU0Niw3IEBACiAgICAgICAgICAgICByZWNlaXZlZC5hcHBlbmQoZGF0YS5kZWNvZGUoJ2FzY2lpJykpCiAgICAgICAgIHJlY2VpdmVkID0gW10KICAgICAgICAgc2VsZi5jbGllbnQucmV0cmJpbmFyeSgncmV0cicsIGNhbGxiYWNrKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLmpvaW4ocmVjZWl2ZWQpLCBSRVRSX0RBVEEpCisgICAgICAgIHNlbGYuY2hlY2tfZGF0YSgnJy5qb2luKHJlY2VpdmVkKSwgUkVUUl9EQVRBKQogCiAgICAgZGVmIHRlc3RfcmV0cmJpbmFyeV9yZXN0KHNlbGYpOgogICAgICAgICBkZWYgY2FsbGJhY2soZGF0YSk6CkBAIC01MTIsMjAgKzU1NCwxNyBAQAogICAgICAgICBmb3IgcmVzdCBpbiAoMCwgMTAsIDIwKToKICAgICAgICAgICAgIHJlY2VpdmVkID0gW10KICAgICAgICAgICAgIHNlbGYuY2xpZW50LnJldHJiaW5hcnkoJ3JldHInLCBjYWxsYmFjaywgcmVzdD1yZXN0KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJy5qb2luKHJlY2VpdmVkKSwgUkVUUl9EQVRBW3Jlc3Q6XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnPSdyZXN0IHRlc3QgY2FzZSAlZCAlZCAlZCcgJSAocmVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKCcnLmpvaW4ocmVjZWl2ZWQpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKFJFVFJfREFUQVtyZXN0Ol0pKSkKKyAgICAgICAgICAgIHNlbGYuY2hlY2tfZGF0YSgnJy5qb2luKHJlY2VpdmVkKSwgUkVUUl9EQVRBW3Jlc3Q6XSkKIAogICAgIGRlZiB0ZXN0X3JldHJsaW5lcyhzZWxmKToKICAgICAgICAgcmVjZWl2ZWQgPSBbXQogICAgICAgICBzZWxmLmNsaWVudC5yZXRybGluZXMoJ3JldHInLCByZWNlaXZlZC5hcHBlbmQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycuam9pbihyZWNlaXZlZCksIFJFVFJfREFUQS5yZXBsYWNlKCdcclxuJywgJycpKQorICAgICAgICBzZWxmLmNoZWNrX2RhdGEoJycuam9pbihyZWNlaXZlZCksIFJFVFJfREFUQS5yZXBsYWNlKCdcclxuJywgJycpKQogCiAgICAgZGVmIHRlc3Rfc3RvcmJpbmFyeShzZWxmKToKICAgICAgICAgZiA9IGlvLkJ5dGVzSU8oUkVUUl9EQVRBLmVuY29kZSgnYXNjaWknKSkKICAgICAgICAgc2VsZi5jbGllbnQuc3RvcmJpbmFyeSgnc3RvcicsIGYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zZXJ2ZXIuaGFuZGxlcl9pbnN0YW5jZS5sYXN0X3JlY2VpdmVkX2RhdGEsIFJFVFJfREFUQSkKKyAgICAgICAgc2VsZi5jaGVja19kYXRhKHNlbGYuc2VydmVyLmhhbmRsZXJfaW5zdGFuY2UubGFzdF9yZWNlaXZlZF9kYXRhLCBSRVRSX0RBVEEpCiAgICAgICAgICMgdGVzdCBuZXcgY2FsbGJhY2sgYXJnCiAgICAgICAgIGZsYWcgPSBbXQogICAgICAgICBmLnNlZWsoMCkKQEAgLTU0Miw3ICs1ODEsNyBAQAogICAgIGRlZiB0ZXN0X3N0b3JsaW5lcyhzZWxmKToKICAgICAgICAgZiA9IGlvLkJ5dGVzSU8oUkVUUl9EQVRBLnJlcGxhY2UoJ1xyXG4nLCAnXG4nKS5lbmNvZGUoJ2FzY2lpJykpCiAgICAgICAgIHNlbGYuY2xpZW50LnN0b3JsaW5lcygnc3RvcicsIGYpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zZXJ2ZXIuaGFuZGxlcl9pbnN0YW5jZS5sYXN0X3JlY2VpdmVkX2RhdGEsIFJFVFJfREFUQSkKKyAgICAgICAgc2VsZi5jaGVja19kYXRhKHNlbGYuc2VydmVyLmhhbmRsZXJfaW5zdGFuY2UubGFzdF9yZWNlaXZlZF9kYXRhLCBSRVRSX0RBVEEpCiAgICAgICAgICMgdGVzdCBuZXcgY2FsbGJhY2sgYXJnCiAgICAgICAgIGZsYWcgPSBbXQogICAgICAgICBmLnNlZWsoMCkKQEAgLTU1OCw2ICs1OTcsNjQgQEAKICAgICAgICAgc2VsZi5jbGllbnQuZGlyKGxhbWJkYSB4OiBsLmFwcGVuZCh4KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJy5qb2luKGwpLCBMSVNUX0RBVEEucmVwbGFjZSgnXHJcbicsICcnKSkKIAorICAgIGRlZiB0ZXN0X21sc2Qoc2VsZik6CisgICAgICAgIGxpc3Qoc2VsZi5jbGllbnQubWxzZCgpKQorICAgICAgICBsaXN0KHNlbGYuY2xpZW50Lm1sc2QocGF0aD0nLycpKQorICAgICAgICBsaXN0KHNlbGYuY2xpZW50Lm1sc2QocGF0aD0nLycsIGZhY3RzPVsnc2l6ZScsICd0eXBlJ10pKQorCisgICAgICAgIGxzID0gbGlzdChzZWxmLmNsaWVudC5tbHNkKCkpCisgICAgICAgIGZvciBuYW1lLCBmYWN0cyBpbiBsczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShuYW1lLCBzdHIpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZmFjdHMsIGRpY3QpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3R5cGUnLCBmYWN0cykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3Blcm0nLCBmYWN0cykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3VuaXF1ZScsIGZhY3RzKQorCisgICAgICAgIGRlZiBzZXRfZGF0YShkYXRhKToKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLmhhbmRsZXJfaW5zdGFuY2UubmV4dF9kYXRhID0gZGF0YQorCisgICAgICAgIGRlZiB0ZXN0X2VudHJ5KGxpbmUsIHR5cGU9Tm9uZSwgcGVybT1Ob25lLCB1bmlxdWU9Tm9uZSwgbmFtZT1Ob25lKToKKyAgICAgICAgICAgIHR5cGUgPSAndHlwZScgaWYgdHlwZSBpcyBOb25lIGVsc2UgdHlwZQorICAgICAgICAgICAgcGVybSA9ICdwZXJtJyBpZiBwZXJtIGlzIE5vbmUgZWxzZSBwZXJtCisgICAgICAgICAgICB1bmlxdWUgPSAndW5pcXVlJyBpZiB1bmlxdWUgaXMgTm9uZSBlbHNlIHVuaXF1ZQorICAgICAgICAgICAgbmFtZSA9ICduYW1lJyBpZiBuYW1lIGlzIE5vbmUgZWxzZSBuYW1lCisgICAgICAgICAgICBzZXRfZGF0YShsaW5lKQorICAgICAgICAgICAgX25hbWUsIGZhY3RzID0gbmV4dChzZWxmLmNsaWVudC5tbHNkKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9uYW1lLCBuYW1lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWN0c1sndHlwZSddLCB0eXBlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWN0c1sncGVybSddLCBwZXJtKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmYWN0c1sndW5pcXVlJ10sIHVuaXF1ZSkKKworICAgICAgICAjIHBsYWluCisgICAgICAgIHRlc3RfZW50cnkoJ3R5cGU9dHlwZTtwZXJtPXBlcm07dW5pcXVlPXVuaXF1ZTsgbmFtZVxyXG4nKQorICAgICAgICAjICI9IiBpbiBmYWN0IHZhbHVlCisgICAgICAgIHRlc3RfZW50cnkoJ3R5cGU9dHk9cGU7cGVybT1wZXJtO3VuaXF1ZT11bmlxdWU7IG5hbWVcclxuJywgdHlwZT0idHk9cGUiKQorICAgICAgICB0ZXN0X2VudHJ5KCd0eXBlPT10eXBlO3Blcm09cGVybTt1bmlxdWU9dW5pcXVlOyBuYW1lXHJcbicsIHR5cGU9Ij10eXBlIikKKyAgICAgICAgdGVzdF9lbnRyeSgndHlwZT10PXk9cGU7cGVybT1wZXJtO3VuaXF1ZT11bmlxdWU7IG5hbWVcclxuJywgdHlwZT0idD15PXBlIikKKyAgICAgICAgdGVzdF9lbnRyeSgndHlwZT09PT09O3Blcm09cGVybTt1bmlxdWU9dW5pcXVlOyBuYW1lXHJcbicsIHR5cGU9Ij09PT0iKQorICAgICAgICAjIHNwYWNlcyBpbiBuYW1lCisgICAgICAgIHRlc3RfZW50cnkoJ3R5cGU9dHlwZTtwZXJtPXBlcm07dW5pcXVlPXVuaXF1ZTsgbmEgbWVcclxuJywgbmFtZT0ibmEgbWUiKQorICAgICAgICB0ZXN0X2VudHJ5KCd0eXBlPXR5cGU7cGVybT1wZXJtO3VuaXF1ZT11bmlxdWU7IG5hbWUgXHJcbicsIG5hbWU9Im5hbWUgIikKKyAgICAgICAgdGVzdF9lbnRyeSgndHlwZT10eXBlO3Blcm09cGVybTt1bmlxdWU9dW5pcXVlOyAgbmFtZVxyXG4nLCBuYW1lPSIgbmFtZSIpCisgICAgICAgIHRlc3RfZW50cnkoJ3R5cGU9dHlwZTtwZXJtPXBlcm07dW5pcXVlPXVuaXF1ZTsgbiBhbSAgZVxyXG4nLCBuYW1lPSJuIGFtICBlIikKKyAgICAgICAgIyAiOyIgaW4gbmFtZQorICAgICAgICB0ZXN0X2VudHJ5KCd0eXBlPXR5cGU7cGVybT1wZXJtO3VuaXF1ZT11bmlxdWU7IG5hO21lXHJcbicsIG5hbWU9Im5hO21lIikKKyAgICAgICAgdGVzdF9lbnRyeSgndHlwZT10eXBlO3Blcm09cGVybTt1bmlxdWU9dW5pcXVlOyA7bmFtZVxyXG4nLCBuYW1lPSI7bmFtZSIpCisgICAgICAgIHRlc3RfZW50cnkoJ3R5cGU9dHlwZTtwZXJtPXBlcm07dW5pcXVlPXVuaXF1ZTsgO25hbWU7XHJcbicsIG5hbWU9IjtuYW1lOyIpCisgICAgICAgIHRlc3RfZW50cnkoJ3R5cGU9dHlwZTtwZXJtPXBlcm07dW5pcXVlPXVuaXF1ZTsgOzs7O1xyXG4nLCBuYW1lPSI7Ozs7IikKKyAgICAgICAgIyBjYXNlIHNlbnNpdGl2ZW5lc3MKKyAgICAgICAgc2V0X2RhdGEoJ1R5cGU9dHlwZTtUeVBlPXBlcm07VU5JUVVFPXVuaXF1ZTsgbmFtZVxyXG4nKQorICAgICAgICBfbmFtZSwgZmFjdHMgPSBuZXh0KHNlbGYuY2xpZW50Lm1sc2QoKSkKKyAgICAgICAgZm9yIHggaW4gZmFjdHM6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoeC5pc2xvd2VyKCkpCisgICAgICAgICMgbm8gZGF0YSAoZGlyZWN0b3J5IGVtcHR5KQorICAgICAgICBzZXRfZGF0YSgnJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgbmV4dCwgc2VsZi5jbGllbnQubWxzZCgpKQorICAgICAgICBzZXRfZGF0YSgnJykKKyAgICAgICAgZm9yIHggaW4gc2VsZi5jbGllbnQubWxzZCgpOgorICAgICAgICAgICAgc2VsZi5mYWlsKCJ1bmV4cGVjdGVkIGRhdGEgJXMiICUgZGF0YSkKKwogICAgIGRlZiB0ZXN0X21ha2Vwb3J0KHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuY2xpZW50Lm1ha2Vwb3J0KCk6CiAgICAgICAgICAgICAjIElQdjQgaXMgaW4gdXNlLCBqdXN0IG1ha2Ugc3VyZSBzZW5kX2VwcnQgaGFzIG5vdCBiZWVuIHVzZWQKQEAgLTU4NCw3ICs2ODEsNyBAQAogICAgICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgICAgICAjIGJhc2UgdGVzdAotICAgICAgICB3aXRoIGZ0cGxpYi5GVFAodGltZW91dD0xMCkgYXMgc2VsZi5jbGllbnQ6CisgICAgICAgIHdpdGggZnRwbGliLkZUUCh0aW1lb3V0PTIpIGFzIHNlbGYuY2xpZW50OgogICAgICAgICAgICAgc2VsZi5jbGllbnQuY29ubmVjdChzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KQogICAgICAgICAgICAgc2VsZi5jbGllbnQuc2VuZGNtZCgnbm9vcCcpCiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfY2xpZW50X2Nvbm5lY3RlZCgpKQpAQCAtNTkyLDcgKzY4OSw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXNfY2xpZW50X2Nvbm5lY3RlZCgpKQogCiAgICAgICAgICMgUVVJVCBzZW50IGluc2lkZSB0aGUgd2l0aCBibG9jawotICAgICAgICB3aXRoIGZ0cGxpYi5GVFAodGltZW91dD0xMCkgYXMgc2VsZi5jbGllbnQ6CisgICAgICAgIHdpdGggZnRwbGliLkZUUCh0aW1lb3V0PTIpIGFzIHNlbGYuY2xpZW50OgogICAgICAgICAgICAgc2VsZi5jbGllbnQuY29ubmVjdChzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KQogICAgICAgICAgICAgc2VsZi5jbGllbnQuc2VuZGNtZCgnbm9vcCcpCiAgICAgICAgICAgICBzZWxmLmNsaWVudC5xdWl0KCkKQEAgLTYwMiw3ICs2OTksNyBAQAogICAgICAgICAjIGZvcmNlIGEgd3JvbmcgcmVzcG9uc2UgY29kZSB0byBiZSBzZW50IG9uIFFVSVQ6IGVycm9yX3Blcm0KICAgICAgICAgIyBpcyBleHBlY3RlZCBhbmQgdGhlIGNvbm5lY3Rpb24gaXMgc3VwcG9zZWQgdG8gYmUgY2xvc2VkCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHdpdGggZnRwbGliLkZUUCh0aW1lb3V0PTEwKSBhcyBzZWxmLmNsaWVudDoKKyAgICAgICAgICAgIHdpdGggZnRwbGliLkZUUCh0aW1lb3V0PTIpIGFzIHNlbGYuY2xpZW50OgogICAgICAgICAgICAgICAgIHNlbGYuY2xpZW50LmNvbm5lY3Qoc2VsZi5zZXJ2ZXIuaG9zdCwgc2VsZi5zZXJ2ZXIucG9ydCkKICAgICAgICAgICAgICAgICBzZWxmLmNsaWVudC5zZW5kY21kKCdub29wJykKICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlci5oYW5kbGVyX2luc3RhbmNlLm5leHRfcmVzcG9uc2UgPSAnNTUwIGVycm9yIG9uIHF1aXQnCkBAIC02MTYsNiArNzEzLDMwIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zZXJ2ZXIuaGFuZGxlcl9pbnN0YW5jZS5sYXN0X3JlY2VpdmVkX2NtZCwgJ3F1aXQnKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlzX2NsaWVudF9jb25uZWN0ZWQoKSkKIAorICAgIGRlZiB0ZXN0X3NvdXJjZV9hZGRyZXNzKHNlbGYpOgorICAgICAgICBzZWxmLmNsaWVudC5xdWl0KCkKKyAgICAgICAgcG9ydCA9IHN1cHBvcnQuZmluZF91bnVzZWRfcG9ydCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuY2xpZW50LmNvbm5lY3Qoc2VsZi5zZXJ2ZXIuaG9zdCwgc2VsZi5zZXJ2ZXIucG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3M9KEhPU1QsIHBvcnQpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNsaWVudC5zb2NrLmdldHNvY2tuYW1lKClbMV0sIHBvcnQpCisgICAgICAgICAgICBzZWxmLmNsaWVudC5xdWl0KCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUFERFJJTlVTRToKKyAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJjb3VsZG4ndCBiaW5kIHRvIHBvcnQgJWQiICUgcG9ydCkKKyAgICAgICAgICAgIHJhaXNlCisKKyAgICBkZWYgdGVzdF9zb3VyY2VfYWRkcmVzc19wYXNzaXZlX2Nvbm5lY3Rpb24oc2VsZik6CisgICAgICAgIHBvcnQgPSBzdXBwb3J0LmZpbmRfdW51c2VkX3BvcnQoKQorICAgICAgICBzZWxmLmNsaWVudC5zb3VyY2VfYWRkcmVzcyA9IChIT1NULCBwb3J0KQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIHNlbGYuY2xpZW50LnRyYW5zZmVyY21kKCdsaXN0JykgYXMgc29jazoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvY2suZ2V0c29ja25hbWUoKVsxXSwgcG9ydCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUFERFJJTlVTRToKKyAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJjb3VsZG4ndCBiaW5kIHRvIHBvcnQgJWQiICUgcG9ydCkKKyAgICAgICAgICAgIHJhaXNlCisKICAgICBkZWYgdGVzdF9wYXJzZTI1NyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdHBsaWIucGFyc2UyNTcoJzI1NyAiL2Zvby9iYXIiJyksICcvZm9vL2JhcicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnRwbGliLnBhcnNlMjU3KCcyNTcgIi9mb28vYmFyIiBjcmVhdGVkJyksICcvZm9vL2JhcicpCkBAIC02MzIsNyArNzUzLDcgQEAKIGNsYXNzIFRlc3RJUHY2RW52aXJvbm1lbnQoVGVzdENhc2UpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLnNlcnZlciA9IER1bW15RlRQU2VydmVyKChIT1NULCAwKSwgYWY9c29ja2V0LkFGX0lORVQ2KQorICAgICAgICBzZWxmLnNlcnZlciA9IER1bW15RlRQU2VydmVyKCgnOjoxJywgMCksIGFmPXNvY2tldC5BRl9JTkVUNikKICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQogICAgICAgICBzZWxmLmNsaWVudCA9IGZ0cGxpYi5GVFAoKQogICAgICAgICBzZWxmLmNsaWVudC5jb25uZWN0KHNlbGYuc2VydmVyLmhvc3QsIHNlbGYuc2VydmVyLnBvcnQpCkBAIC02NjEsNiArNzgyLDcgQEAKICAgICAgICAgICAgICAgICByZWNlaXZlZC5hcHBlbmQoZGF0YS5kZWNvZGUoJ2FzY2lpJykpCiAgICAgICAgICAgICByZWNlaXZlZCA9IFtdCiAgICAgICAgICAgICBzZWxmLmNsaWVudC5yZXRyYmluYXJ5KCdyZXRyJywgY2FsbGJhY2spCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbignJy5qb2luKHJlY2VpdmVkKSksIGxlbihSRVRSX0RBVEEpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJy5qb2luKHJlY2VpdmVkKSwgUkVUUl9EQVRBKQogICAgICAgICBzZWxmLmNsaWVudC5zZXRfcGFzdihUcnVlKQogICAgICAgICByZXRyKCkKQEAgLTY3Niw3ICs3OTgsNyBAQAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBEdW1teVRMU19GVFBTZXJ2ZXIoKEhPU1QsIDApKQogICAgICAgICBzZWxmLnNlcnZlci5zdGFydCgpCi0gICAgICAgIHNlbGYuY2xpZW50ID0gZnRwbGliLkZUUF9UTFModGltZW91dD0xMCkKKyAgICAgICAgc2VsZi5jbGllbnQgPSBmdHBsaWIuRlRQX1RMUyh0aW1lb3V0PTIpCiAgICAgICAgIHNlbGYuY2xpZW50LmNvbm5lY3Qoc2VsZi5zZXJ2ZXIuaG9zdCwgc2VsZi5zZXJ2ZXIucG9ydCkKICAgICAgICAgIyBlbmFibGUgVExTCiAgICAgICAgIHNlbGYuY2xpZW50LmF1dGgoKQpAQCAtNjg5LDcgKzgxMSw3IEBACiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnNlcnZlciA9IER1bW15VExTX0ZUUFNlcnZlcigoSE9TVCwgMCkpCiAgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KCkKLSAgICAgICAgc2VsZi5jbGllbnQgPSBmdHBsaWIuRlRQX1RMUyh0aW1lb3V0PTEwKQorICAgICAgICBzZWxmLmNsaWVudCA9IGZ0cGxpYi5GVFBfVExTKHRpbWVvdXQ9MikKICAgICAgICAgc2VsZi5jbGllbnQuY29ubmVjdChzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgpAQCAtNzQ5LDcgKzg3MSw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGZ0cGxpYi5GVFBfVExTLCBjZXJ0ZmlsZT1DRVJURklMRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ZmlsZT1DRVJURklMRSwgY29udGV4dD1jdHgpCiAKLSAgICAgICAgc2VsZi5jbGllbnQgPSBmdHBsaWIuRlRQX1RMUyhjb250ZXh0PWN0eCwgdGltZW91dD0xMCkKKyAgICAgICAgc2VsZi5jbGllbnQgPSBmdHBsaWIuRlRQX1RMUyhjb250ZXh0PWN0eCwgdGltZW91dD0yKQogICAgICAgICBzZWxmLmNsaWVudC5jb25uZWN0KHNlbGYuc2VydmVyLmhvc3QsIHNlbGYuc2VydmVyLnBvcnQpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SXNJbnN0YW5jZShzZWxmLmNsaWVudC5zb2NrLCBzc2wuU1NMU29ja2V0KQogICAgICAgICBzZWxmLmNsaWVudC5hdXRoKCkKQEAgLTc2MSw2ICs4ODMsMTMgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoc29jay5jb250ZXh0LCBjdHgpCiAgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc29jaywgc3NsLlNTTFNvY2tldCkKIAorICAgIGRlZiB0ZXN0X2NjYyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi5jbGllbnQuY2NjKQorICAgICAgICBzZWxmLmNsaWVudC5sb2dpbihzZWN1cmU9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHNlbGYuY2xpZW50LnNvY2ssIHNzbC5TU0xTb2NrZXQpCisgICAgICAgIHNlbGYuY2xpZW50LmNjYygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlbGYuY2xpZW50LnNvY2sudW53cmFwKQorCiAKIGNsYXNzIFRlc3RUaW1lb3V0cyhUZXN0Q2FzZSk6CiAKQEAgLTg1NywxMyArOTg2LDggQEAKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHRlc3RzID0gW1Rlc3RGVFBDbGFzcywgVGVzdFRpbWVvdXRzXQotICAgIGlmIHNvY2tldC5oYXNfaXB2NjoKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgRHVtbXlGVFBTZXJ2ZXIoKEhPU1QsIDApLCBhZj1zb2NrZXQuQUZfSU5FVDYpCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0ZXN0cy5hcHBlbmQoVGVzdElQdjZFbnZpcm9ubWVudCkKKyAgICBpZiBzdXBwb3J0LklQVjZfRU5BQkxFRDoKKyAgICAgICAgdGVzdHMuYXBwZW5kKFRlc3RJUHY2RW52aXJvbm1lbnQpCiAKICAgICBpZiBzc2wgaXMgbm90IE5vbmU6CiAgICAgICAgIHRlc3RzLmV4dGVuZChbVGVzdFRMU19GVFBDbGFzc01peGluLCBUZXN0VExTX0ZUUENsYXNzXSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZnVuY2F0dHJzLnB5IGIvTGliL3Rlc3QvdGVzdF9mdW5jYXR0cnMucHkKaW5kZXggNGQxOTM2OC4uYzhlZDgzMCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9mdW5jYXR0cnMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9mdW5jYXR0cnMucHkKQEAgLTIsNiArMiwxNSBAQAogaW1wb3J0IHR5cGVzCiBpbXBvcnQgdW5pdHRlc3QKIAorCitkZWYgZ2xvYmFsX2Z1bmN0aW9uKCk6CisgICAgZGVmIGlubmVyX2Z1bmN0aW9uKCk6CisgICAgICAgIGNsYXNzIExvY2FsQ2xhc3M6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiBMb2NhbENsYXNzCisgICAgcmV0dXJuIGxhbWJkYTogaW5uZXJfZnVuY3Rpb24KKworCiBjbGFzcyBGdW5jQXR0cnNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIGNsYXNzIEY6CkBAIC05Niw2ICsxMDUsMjQgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmZpLmEuX19uYW1lX18sICdhJykKICAgICAgICAgc2VsZi5jYW5ub3Rfc2V0X2F0dHIoc2VsZi5maS5hLCAiX19uYW1lX18iLCAnYScsIEF0dHJpYnV0ZUVycm9yKQogCisgICAgZGVmIHRlc3RfX19xdWFsbmFtZV9fKHNlbGYpOgorICAgICAgICAjIFBFUCAzMTU1CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5iLl9fcXVhbG5hbWVfXywgJ0Z1bmNBdHRyc1Rlc3Quc2V0VXAuPGxvY2Fscz4uYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRnVuY0F0dHJzVGVzdC5zZXRVcC5fX3F1YWxuYW1lX18sICdGdW5jQXR0cnNUZXN0LnNldFVwJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnbG9iYWxfZnVuY3Rpb24uX19xdWFsbmFtZV9fLCAnZ2xvYmFsX2Z1bmN0aW9uJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnbG9iYWxfZnVuY3Rpb24oKS5fX3F1YWxuYW1lX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2dsb2JhbF9mdW5jdGlvbi48bG9jYWxzPi48bGFtYmRhPicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2xvYmFsX2Z1bmN0aW9uKCkoKS5fX3F1YWxuYW1lX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2dsb2JhbF9mdW5jdGlvbi48bG9jYWxzPi5pbm5lcl9mdW5jdGlvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2xvYmFsX2Z1bmN0aW9uKCkoKSgpLl9fcXVhbG5hbWVfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZ2xvYmFsX2Z1bmN0aW9uLjxsb2NhbHM+LmlubmVyX2Z1bmN0aW9uLjxsb2NhbHM+LkxvY2FsQ2xhc3MnKQorICAgICAgICBzZWxmLmIuX19xdWFsbmFtZV9fID0gJ2MnCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5iLl9fcXVhbG5hbWVfXywgJ2MnKQorICAgICAgICBzZWxmLmIuX19xdWFsbmFtZV9fID0gJ2QnCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5iLl9fcXVhbG5hbWVfXywgJ2QnKQorICAgICAgICAjIF9fcXVhbG5hbWVfXyBtdXN0IGJlIGEgc3RyaW5nCisgICAgICAgIHNlbGYuY2Fubm90X3NldF9hdHRyKHNlbGYuYiwgJ19fcXVhbG5hbWVfXycsIDcsIFR5cGVFcnJvcikKKwogICAgIGRlZiB0ZXN0X19fY29kZV9fKHNlbGYpOgogICAgICAgICBudW1fb25lLCBudW1fdHdvID0gNywgOAogICAgICAgICBkZWYgYSgpOiBwYXNzCkBAIC0zMTUsMTEgKzM0MiwzNyBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUocy5fX2Z1bmNfXyBpcyBmKQogCiAKK2NsYXNzIEJ1aWx0aW5GdW5jdGlvblByb3BlcnRpZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAjIFhYWCBOb3Qgc3VyZSB3aGVyZSB0aGlzIHNob3VsZCByZWFsbHkgZ28gc2luY2UgSSBjYW4ndCBmaW5kIGEKKyAgICAjIHRlc3QgbW9kdWxlIHNwZWNpZmljYWxseSBmb3IgYnVpbHRpbl9mdW5jdGlvbl9vcl9tZXRob2QuCisKKyAgICBkZWYgdGVzdF9idWlsdGluX19xdWFsbmFtZV9fKHNlbGYpOgorICAgICAgICBpbXBvcnQgdGltZQorCisgICAgICAgICMgYnVpbHRpbiBmdW5jdGlvbjoKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4uX19xdWFsbmFtZV9fLCAnbGVuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0aW1lLnRpbWUuX19xdWFsbmFtZV9fLCAndGltZScpCisKKyAgICAgICAgIyBidWlsdGluIGNsYXNzbWV0aG9kOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpY3QuZnJvbWtleXMuX19xdWFsbmFtZV9fLCAnZGljdC5mcm9ta2V5cycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxvYXQuX19nZXRmb3JtYXRfXy5fX3F1YWxuYW1lX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zsb2F0Ll9fZ2V0Zm9ybWF0X18nKQorCisgICAgICAgICMgYnVpbHRpbiBzdGF0aWNtZXRob2Q6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyLm1ha2V0cmFucy5fX3F1YWxuYW1lX18sICdzdHIubWFrZXRyYW5zJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChieXRlcy5tYWtldHJhbnMuX19xdWFsbmFtZV9fLCAnYnl0ZXMubWFrZXRyYW5zJykKKworICAgICAgICAjIGJ1aWx0aW4gYm91bmQgaW5zdGFuY2UgbWV0aG9kOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsxLCAyLCAzXS5hcHBlbmQuX19xdWFsbmFtZV9fLCAnbGlzdC5hcHBlbmQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHsnZm9vJzogJ2Jhcid9LnBvcC5fX3F1YWxuYW1lX18sICdkaWN0LnBvcCcpCisKKwogZGVmIHRlc3RfbWFpbigpOgogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KEZ1bmN0aW9uUHJvcGVydGllc1Rlc3QsIEluc3RhbmNlbWV0aG9kQXR0clRlc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcmJpdHJhcnlGdW5jdGlvbkF0dHJUZXN0LCBGdW5jdGlvbkRpY3RzVGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uRG9jc3RyaW5nVGVzdCwgQ2VsbFRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0aWNNZXRob2RBdHRyc1Rlc3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdGF0aWNNZXRob2RBdHRyc1Rlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsdGluRnVuY3Rpb25Qcm9wZXJ0aWVzVGVzdCkKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9mdW5jdG9vbHMucHkgYi9MaWIvdGVzdC90ZXN0X2Z1bmN0b29scy5weQppbmRleCAyNzBjYWIwLi5jNDkxMGE3IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Z1bmN0b29scy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2Z1bmN0b29scy5weQpAQCAtMjI2LDYgKzIyNiw3IEBACiAgICAgICAgIHNlbGYuY2hlY2tfd3JhcHBlcih3cmFwcGVyLCBmKQogICAgICAgICBzZWxmLmFzc2VydElzKHdyYXBwZXIuX193cmFwcGVkX18sIGYpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlci5fX25hbWVfXywgJ2YnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyYXBwZXIuX19xdWFsbmFtZV9fLCBmLl9fcXVhbG5hbWVfXykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVyLmF0dHIsICdUaGlzIGlzIGFsc28gYSB0ZXN0JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVyLl9fYW5ub3RhdGlvbnNfX1snYSddLCAnVGhpcyBpcyBhIG5ldyBhbm5vdGF0aW9uJykKICAgICAgICAgc2VsZi5hc3NlcnROb3RJbignYicsIHdyYXBwZXIuX19hbm5vdGF0aW9uc19fKQpAQCAtMjQ2LDYgKzI0Nyw3IEBACiAgICAgICAgIGZ1bmN0b29scy51cGRhdGVfd3JhcHBlcih3cmFwcGVyLCBmLCAoKSwgKCkpCiAgICAgICAgIHNlbGYuY2hlY2tfd3JhcHBlcih3cmFwcGVyLCBmLCAoKSwgKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlci5fX25hbWVfXywgJ3dyYXBwZXInKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHdyYXBwZXIuX19xdWFsbmFtZV9fLCBmLl9fcXVhbG5hbWVfXykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVyLl9fZG9jX18sIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlci5fX2Fubm90YXRpb25zX18sIHt9KQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIod3JhcHBlciwgJ2F0dHInKSkKQEAgLTI2Myw2ICsyNjUsNyBAQAogICAgICAgICBmdW5jdG9vbHMudXBkYXRlX3dyYXBwZXIod3JhcHBlciwgZiwgYXNzaWduLCB1cGRhdGUpCiAgICAgICAgIHNlbGYuY2hlY2tfd3JhcHBlcih3cmFwcGVyLCBmLCBhc3NpZ24sIHVwZGF0ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVyLl9fbmFtZV9fLCAnd3JhcHBlcicpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwod3JhcHBlci5fX3F1YWxuYW1lX18sIGYuX19xdWFsbmFtZV9fKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyYXBwZXIuX19kb2NfXywgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVyLmF0dHIsICdUaGlzIGlzIGEgZGlmZmVyZW50IHRlc3QnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyYXBwZXIuZGljdF9hdHRyLCBmLmRpY3RfYXR0cikKQEAgLTMwOSwxNyArMzEyLDE4IEBACiAgICAgICAgIGRlZiB3cmFwcGVyKCk6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuY2hlY2tfd3JhcHBlcih3cmFwcGVyLCBmKQotICAgICAgICByZXR1cm4gd3JhcHBlcgorICAgICAgICByZXR1cm4gd3JhcHBlciwgZgogCiAgICAgZGVmIHRlc3RfZGVmYXVsdF91cGRhdGUoc2VsZik6Ci0gICAgICAgIHdyYXBwZXIgPSBzZWxmLl9kZWZhdWx0X3VwZGF0ZSgpCisgICAgICAgIHdyYXBwZXIsIGYgPSBzZWxmLl9kZWZhdWx0X3VwZGF0ZSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlci5fX25hbWVfXywgJ2YnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyYXBwZXIuX19xdWFsbmFtZV9fLCBmLl9fcXVhbG5hbWVfXykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVyLmF0dHIsICdUaGlzIGlzIGFsc28gYSB0ZXN0JykKIAogICAgIEB1bml0dGVzdC5za2lwSWYobm90IHN5cy5mbGFncy5vcHRpbWl6ZSA8PSAxLAogICAgICAgICAgICAgICAgICAgICAgIkRvY3N0cmluZ3MgYXJlIG9taXR0ZWQgd2l0aCAtTzIgYW5kIGFib3ZlIikKICAgICBkZWYgdGVzdF9kZWZhdWx0X3VwZGF0ZV9kb2Moc2VsZik6Ci0gICAgICAgIHdyYXBwZXIgPSBzZWxmLl9kZWZhdWx0X3VwZGF0ZSgpCisgICAgICAgIHdyYXBwZXIsIF8gPSBzZWxmLl9kZWZhdWx0X3VwZGF0ZSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlci5fX2RvY19fLCAnVGhpcyBpcyBhIHRlc3QnKQogCiAgICAgZGVmIHRlc3Rfbm9fdXBkYXRlKHNlbGYpOgpAQCAtMzMyLDYgKzMzNiw3IEBACiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuY2hlY2tfd3JhcHBlcih3cmFwcGVyLCBmLCAoKSwgKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlci5fX25hbWVfXywgJ3dyYXBwZXInKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHdyYXBwZXIuX19xdWFsbmFtZV9fLCBmLl9fcXVhbG5hbWVfXykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmFwcGVyLl9fZG9jX18sIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cih3cmFwcGVyLCAnYXR0cicpKQogCkBAIC0zNTEsNiArMzU2LDcgQEAKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgc2VsZi5jaGVja193cmFwcGVyKHdyYXBwZXIsIGYsIGFzc2lnbiwgdXBkYXRlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyYXBwZXIuX19uYW1lX18sICd3cmFwcGVyJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh3cmFwcGVyLl9fcXVhbG5hbWVfXywgZi5fX3F1YWxuYW1lX18pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlci5fX2RvY19fLCBOb25lKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdyYXBwZXIuYXR0ciwgJ1RoaXMgaXMgYSBkaWZmZXJlbnQgdGVzdCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwod3JhcHBlci5kaWN0X2F0dHIsIGYuZGljdF9hdHRyKQpAQCAtNDM2LDE5ICs0NDIsODIgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmZ1bmMoYWRkLCBkKSwgIiIuam9pbihkLmtleXMoKSkpCiAKIGNsYXNzIFRlc3RDbXBUb0tleSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKICAgICBkZWYgdGVzdF9jbXBfdG9fa2V5KHNlbGYpOgorICAgICAgICBkZWYgY21wMSh4LCB5KToKKyAgICAgICAgICAgIHJldHVybiAoeCA+IHkpIC0gKHggPCB5KQorICAgICAgICBrZXkgPSBmdW5jdG9vbHMuY21wX3RvX2tleShjbXAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGtleSgzKSwga2V5KDMpKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIoa2V5KDMpLCBrZXkoMSkpCisgICAgICAgIGRlZiBjbXAyKHgsIHkpOgorICAgICAgICAgICAgcmV0dXJuIGludCh4KSAtIGludCh5KQorICAgICAgICBrZXkgPSBmdW5jdG9vbHMuY21wX3RvX2tleShjbXAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGtleSg0LjApLCBrZXkoJzQnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzKGtleSgyKSwga2V5KCczNScpKQorCisgICAgZGVmIHRlc3RfY21wX3RvX2tleV9hcmd1bWVudHMoc2VsZik6CisgICAgICAgIGRlZiBjbXAxKHgsIHkpOgorICAgICAgICAgICAgcmV0dXJuICh4ID4geSkgLSAoeCA8IHkpCisgICAgICAgIGtleSA9IGZ1bmN0b29scy5jbXBfdG9fa2V5KG15Y21wPWNtcDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2V5KG9iaj0zKSwga2V5KG9iaj0zKSkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGtleShvYmo9MyksIGtleShvYmo9MSkpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoKFR5cGVFcnJvciwgQXR0cmlidXRlRXJyb3IpKToKKyAgICAgICAgICAgIGtleSgzKSA+IDEgICAgIyByaHMgaXMgbm90IGEgSyBvYmplY3QKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcygoVHlwZUVycm9yLCBBdHRyaWJ1dGVFcnJvcikpOgorICAgICAgICAgICAgMSA8IGtleSgzKSAgICAjIGxocyBpcyBub3QgYSBLIG9iamVjdAorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBrZXkgPSBmdW5jdG9vbHMuY21wX3RvX2tleSgpICAgICAgICAgICAgICMgdG9vIGZldyBhcmdzCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIGtleSA9IGZ1bmN0b29scy5jbXBfdG9fa2V5KGNtcDEsIE5vbmUpICAgIyB0b28gbWFueSBhcmdzCisgICAgICAgIGtleSA9IGZ1bmN0b29scy5jbXBfdG9fa2V5KGNtcDEpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIGtleSgpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB0b28gZmV3IGFyZ3MKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAga2V5KE5vbmUsIE5vbmUpICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRvbyBtYW55IGFyZ3MKKworICAgIGRlZiB0ZXN0X2JhZF9jbXAoc2VsZik6CisgICAgICAgIGRlZiBjbXAxKHgsIHkpOgorICAgICAgICAgICAgcmFpc2UgWmVyb0RpdmlzaW9uRXJyb3IKKyAgICAgICAga2V5ID0gZnVuY3Rvb2xzLmNtcF90b19rZXkoY21wMSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CisgICAgICAgICAgICBrZXkoMykgPiBrZXkoMSkKKworICAgICAgICBjbGFzcyBCYWRDbXA6CisgICAgICAgICAgICBkZWYgX19sdF9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvcgorICAgICAgICBkZWYgY21wMSh4LCB5KToKKyAgICAgICAgICAgIHJldHVybiBCYWRDbXAoKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFplcm9EaXZpc2lvbkVycm9yKToKKyAgICAgICAgICAgIGtleSgzKSA+IGtleSgxKQorCisgICAgZGVmIHRlc3Rfb2JqX2ZpZWxkKHNlbGYpOgorICAgICAgICBkZWYgY21wMSh4LCB5KToKKyAgICAgICAgICAgIHJldHVybiAoeCA+IHkpIC0gKHggPCB5KQorICAgICAgICBrZXkgPSBmdW5jdG9vbHMuY21wX3RvX2tleShteWNtcD1jbXAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGtleSg1MCkub2JqLCA1MCkKKworICAgIGRlZiB0ZXN0X3NvcnRfaW50KHNlbGYpOgogICAgICAgICBkZWYgbXljbXAoeCwgeSk6CiAgICAgICAgICAgICByZXR1cm4geSAtIHgKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQocmFuZ2UoNSksIGtleT1mdW5jdG9vbHMuY21wX3RvX2tleShteWNtcCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgIFs0LCAzLCAyLCAxLCAwXSkKIAorICAgIGRlZiB0ZXN0X3NvcnRfaW50X3N0cihzZWxmKToKKyAgICAgICAgZGVmIG15Y21wKHgsIHkpOgorICAgICAgICAgICAgeCwgeSA9IGludCh4KSwgaW50KHkpCisgICAgICAgICAgICByZXR1cm4gKHggPiB5KSAtICh4IDwgeSkKKyAgICAgICAgdmFsdWVzID0gWzUsICczJywgNywgMiwgJzAnLCAnMScsIDQsICcxMCcsIDFdCisgICAgICAgIHZhbHVlcyA9IHNvcnRlZCh2YWx1ZXMsIGtleT1mdW5jdG9vbHMuY21wX3RvX2tleShteWNtcCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2ludCh2YWx1ZSkgZm9yIHZhbHVlIGluIHZhbHVlc10sCisgICAgICAgICAgICAgICAgICAgICAgICAgWzAsIDEsIDEsIDIsIDMsIDQsIDUsIDcsIDEwXSkKKwogICAgIGRlZiB0ZXN0X2hhc2goc2VsZik6CiAgICAgICAgIGRlZiBteWNtcCh4LCB5KToKICAgICAgICAgICAgIHJldHVybiB5IC0geAogICAgICAgICBrZXkgPSBmdW5jdG9vbHMuY21wX3RvX2tleShteWNtcCkKICAgICAgICAgayA9IGtleSgxMCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBoYXNoLCBrKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlzaW5zdGFuY2UoaywgY29sbGVjdGlvbnMuSGFzaGFibGUpKQorICAgICAgICBzZWxmLmFzc2VydE5vdElzSW5zdGFuY2UoaywgY29sbGVjdGlvbnMuSGFzaGFibGUpCiAKIGNsYXNzIFRlc3RUb3RhbE9yZGVyaW5nKHVuaXR0ZXN0LlRlc3RDYXNlKToKIApAQCAtNjcxLDYgKzc0MCwyMiBAQAogICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yKToKICAgICAgICAgICAgICAgICBmdW5jKDE1KQogCisgICAgZGVmIHRlc3RfbHJ1X3dpdGhfdHlwZXMoc2VsZik6CisgICAgICAgIGZvciBtYXhzaXplIGluIChOb25lLCAxMDApOgorICAgICAgICAgICAgQGZ1bmN0b29scy5scnVfY2FjaGUobWF4c2l6ZT1tYXhzaXplLCB0eXBlZD1UcnVlKQorICAgICAgICAgICAgZGVmIHNxdWFyZSh4KToKKyAgICAgICAgICAgICAgICByZXR1cm4geCAqIHgKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3F1YXJlKDMpLCA5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKHNxdWFyZSgzKSksIHR5cGUoOSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNxdWFyZSgzLjApLCA5LjApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoc3F1YXJlKDMuMCkpLCB0eXBlKDkuMCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNxdWFyZSh4PTMpLCA5KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKHNxdWFyZSh4PTMpKSwgdHlwZSg5KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3F1YXJlKHg9My4wKSwgOS4wKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKHNxdWFyZSh4PTMuMCkpLCB0eXBlKDkuMCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNxdWFyZS5jYWNoZV9pbmZvKCkuaGl0cywgNCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3F1YXJlLmNhY2hlX2luZm8oKS5taXNzZXMsIDQpCisKIGRlZiB0ZXN0X21haW4odmVyYm9zZT1Ob25lKToKICAgICB0ZXN0X2NsYXNzZXMgPSAoCiAgICAgICAgIFRlc3RQYXJ0aWFsLApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9mdXR1cmUucHkgYi9MaWIvdGVzdC90ZXN0X2Z1dHVyZS5weQppbmRleCBjNjY4OWExLi4zYTI1ZWIxIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2Z1dHVyZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X2Z1dHVyZS5weQpAQCAtMTMsMTQgKzEzLDE0IEBACiBjbGFzcyBGdXR1cmVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2Z1dHVyZTEoc2VsZik6Ci0gICAgICAgIHN1cHBvcnQudW5sb2FkKCd0ZXN0X2Z1dHVyZTEnKQotICAgICAgICBmcm9tIHRlc3QgaW1wb3J0IHRlc3RfZnV0dXJlMQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3RfZnV0dXJlMS5yZXN1bHQsIDYpCisgICAgICAgIHN1cHBvcnQudW5sb2FkKCdmdXR1cmVfdGVzdDEnKQorICAgICAgICBmcm9tIHRlc3QgaW1wb3J0IGZ1dHVyZV90ZXN0MQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1dHVyZV90ZXN0MS5yZXN1bHQsIDYpCiAKICAgICBkZWYgdGVzdF9mdXR1cmUyKHNlbGYpOgotICAgICAgICBzdXBwb3J0LnVubG9hZCgndGVzdF9mdXR1cmUyJykKLSAgICAgICAgZnJvbSB0ZXN0IGltcG9ydCB0ZXN0X2Z1dHVyZTIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0X2Z1dHVyZTIucmVzdWx0LCA2KQorICAgICAgICBzdXBwb3J0LnVubG9hZCgnZnV0dXJlX3Rlc3QyJykKKyAgICAgICAgZnJvbSB0ZXN0IGltcG9ydCBmdXR1cmVfdGVzdDIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdXR1cmVfdGVzdDIucmVzdWx0LCA2KQogCiAgICAgZGVmIHRlc3RfZnV0dXJlMyhzZWxmKToKICAgICAgICAgc3VwcG9ydC51bmxvYWQoJ3Rlc3RfZnV0dXJlMycpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2djLnB5IGIvTGliL3Rlc3QvdGVzdF9nYy5weQppbmRleCAxMDBjNzY3Li5kMzVmOWVkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2djLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZ2MucHkKQEAgLTEsNSArMSw2IEBACiBpbXBvcnQgdW5pdHRlc3QKLWZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCB2ZXJib3NlLCBydW5fdW5pdHRlc3QsIHN0cmlwX3B5dGhvbl9zdGRlcnIKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCAodmVyYm9zZSwgcmVmY291bnRfdGVzdCwgcnVuX3VuaXR0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwX3B5dGhvbl9zdGRlcnIpCiBpbXBvcnQgc3lzCiBpbXBvcnQgZ2MKIGltcG9ydCB3ZWFrcmVmCkBAIC0zMSw2ICszMiwyMCBAQAogICAgICAgICAjIGdjIGNvbGxlY3RzIGl0LgogICAgICAgICBzZWxmLndyID0gd2Vha3JlZi5yZWYoQzEwNTU4MjAoNjY2KSwgaXRfaGFwcGVuZWQpCiAKK2NsYXNzIFVuY29sbGVjdGFibGUob2JqZWN0KToKKyAgICAiIiJDcmVhdGUgYSByZWZlcmVuY2UgY3ljbGUgd2l0aCBtdWx0aXBsZSBfX2RlbF9fIG1ldGhvZHMuCisKKyAgICBBbiBvYmplY3QgaW4gYSByZWZlcmVuY2UgY3ljbGUgd2lsbCBuZXZlciBoYXZlIHplcm8gcmVmZXJlbmNlcywKKyAgICBhbmQgc28gbXVzdCBiZSBnYXJiYWdlIGNvbGxlY3RlZC4gIElmIG9uZSBvciBtb3JlIG9iamVjdHMgaW4gdGhlCisgICAgY3ljbGUgaGF2ZSBfX2RlbF9fIG1ldGhvZHMsIHRoZSBnYyByZWZ1c2VzIHRvIGd1ZXNzIGFuIG9yZGVyLAorICAgIGFuZCBsZWF2ZXMgdGhlIGN5Y2xlIHVuY29sbGVjdGVkLiIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJ0bmVyPU5vbmUpOgorICAgICAgICBpZiBwYXJ0bmVyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLnBhcnRuZXIgPSBVbmNvbGxlY3RhYmxlKHBhcnRuZXI9c2VsZikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYucGFydG5lciA9IHBhcnRuZXIKKyAgICBkZWYgX19kZWxfXyhzZWxmKToKKyAgICAgICAgcGFzcwogCiAjIyMgVGVzdHMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKQEAgLTE3NSw2ICsxOTAsNyBAQAogICAgICAgICBkZWwgZAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdjLmNvbGxlY3QoKSwgMikKIAorICAgIEByZWZjb3VudF90ZXN0CiAgICAgZGVmIHRlc3RfZnJhbWUoc2VsZik6CiAgICAgICAgIGRlZiBmKCk6CiAgICAgICAgICAgICBmcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoKQpAQCAtMjQyLDYgKzI1OCw3IEBACiAgICAgIyBGb3IgZXhhbXBsZSwgZGlzcG9zZWQgdHVwbGVzIGFyZSBub3QgZnJlZWQsIGJ1dCByZXVzZWQuCiAgICAgIyBUbyBtaW5pbWl6ZSB2YXJpYXRpb25zLCB0aG91Z2gsIHdlIGZpcnN0IHN0b3JlIHRoZSBnZXRfY291bnQoKSByZXN1bHRzCiAgICAgIyBhbmQgY2hlY2sgdGhlbSBhdCB0aGUgZW5kLgorICAgIEByZWZjb3VudF90ZXN0CiAgICAgZGVmIHRlc3RfZ2V0X2NvdW50KHNlbGYpOgogICAgICAgICBnYy5jb2xsZWN0KCkKICAgICAgICAgYSwgYiwgYyA9IGdjLmdldF9jb3VudCgpCkBAIC0yNTUsNiArMjcyLDcgQEAKICAgICAgICAgIyBjcmVhdGVkICh0aGUgbGlzdCkuCiAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihkLCBhKQogCisgICAgQHJlZmNvdW50X3Rlc3QKICAgICBkZWYgdGVzdF9jb2xsZWN0X2dlbmVyYXRpb25zKHNlbGYpOgogICAgICAgICBnYy5jb2xsZWN0KCkKICAgICAgICAgIyBUaGlzIG9iamVjdCB3aWxsICJ0cmlja2xlIiBpbnRvIGdlbmVyYXRpb24gTiArIDEgYWZ0ZXIKQEAgLTUyNCw2ICs1NDIsMTI3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oYiJ1bmNvbGxlY3RhYmxlIG9iamVjdHMgYXQgc2h1dGRvd24iLCBzdGRlcnIpCiAKIAorY2xhc3MgR0NDYWxsYmFja1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICMgU2F2ZSBnYyBzdGF0ZSBhbmQgZGlzYWJsZSBpdC4KKyAgICAgICAgc2VsZi5lbmFibGVkID0gZ2MuaXNlbmFibGVkKCkKKyAgICAgICAgZ2MuZGlzYWJsZSgpCisgICAgICAgIHNlbGYuZGVidWcgPSBnYy5nZXRfZGVidWcoKQorICAgICAgICBnYy5zZXRfZGVidWcoMCkKKyAgICAgICAgZ2MuY2FsbGJhY2tzLmFwcGVuZChzZWxmLmNiMSkKKyAgICAgICAgZ2MuY2FsbGJhY2tzLmFwcGVuZChzZWxmLmNiMikKKyAgICAgICAgc2VsZi5vdGhlcmdhcmJhZ2UgPSBbXQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIFJlc3RvcmUgZ2Mgc3RhdGUKKyAgICAgICAgZGVsIHNlbGYudmlzaXQKKyAgICAgICAgZ2MuY2FsbGJhY2tzLnJlbW92ZShzZWxmLmNiMSkKKyAgICAgICAgZ2MuY2FsbGJhY2tzLnJlbW92ZShzZWxmLmNiMikKKyAgICAgICAgZ2Muc2V0X2RlYnVnKHNlbGYuZGVidWcpCisgICAgICAgIGlmIHNlbGYuZW5hYmxlZDoKKyAgICAgICAgICAgIGdjLmVuYWJsZSgpCisgICAgICAgICMgZGVzdHJveSBhbnkgdW5jb2xsZWN0YWJsZXMKKyAgICAgICAgZ2MuY29sbGVjdCgpCisgICAgICAgIGZvciBvYmogaW4gZ2MuZ2FyYmFnZToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBVbmNvbGxlY3RhYmxlKToKKyAgICAgICAgICAgICAgICBvYmoucGFydG5lciA9IE5vbmUKKyAgICAgICAgZGVsIGdjLmdhcmJhZ2VbOl0KKyAgICAgICAgZGVsIHNlbGYub3RoZXJnYXJiYWdlCisgICAgICAgIGdjLmNvbGxlY3QoKQorCisgICAgZGVmIHByZWNsZWFuKHNlbGYpOgorICAgICAgICAjIFJlbW92ZSBhbGwgZmx1ZmYgZnJvbSB0aGUgc3lzdGVtLiAgSW52b2tlIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgIyBtYW51YWxseSByYXRoZXIgdGhhbiB0aHJvdWdoIHNlbGYuc2V0VXAoKSBmb3IgbWF4aW11bQorICAgICAgICAjIHNhZmV0eS4KKyAgICAgICAgc2VsZi52aXNpdCA9IFtdCisgICAgICAgIGdjLmNvbGxlY3QoKQorICAgICAgICBnYXJiYWdlLCBnYy5nYXJiYWdlWzpdID0gZ2MuZ2FyYmFnZVs6XSwgW10KKyAgICAgICAgc2VsZi5vdGhlcmdhcmJhZ2UuYXBwZW5kKGdhcmJhZ2UpCisgICAgICAgIHNlbGYudmlzaXQgPSBbXQorCisgICAgZGVmIGNiMShzZWxmLCBwaGFzZSwgaW5mbyk6CisgICAgICAgIHNlbGYudmlzaXQuYXBwZW5kKCgxLCBwaGFzZSwgZGljdChpbmZvKSkpCisKKyAgICBkZWYgY2IyKHNlbGYsIHBoYXNlLCBpbmZvKToKKyAgICAgICAgc2VsZi52aXNpdC5hcHBlbmQoKDIsIHBoYXNlLCBkaWN0KGluZm8pKSkKKyAgICAgICAgaWYgcGhhc2UgPT0gInN0b3AiIGFuZCBoYXNhdHRyKHNlbGYsICJjbGVhbnVwIik6CisgICAgICAgICAgICAjIENsZWFuIFVuY29sbGVjdGFibGUgZnJvbSBnYXJiYWdlCisgICAgICAgICAgICB1YyA9IFtlIGZvciBlIGluIGdjLmdhcmJhZ2UgaWYgaXNpbnN0YW5jZShlLCBVbmNvbGxlY3RhYmxlKV0KKyAgICAgICAgICAgIGdjLmdhcmJhZ2VbOl0gPSBbZSBmb3IgZSBpbiBnYy5nYXJiYWdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGUsIFVuY29sbGVjdGFibGUpXQorICAgICAgICAgICAgZm9yIGUgaW4gdWM6CisgICAgICAgICAgICAgICAgZS5wYXJ0bmVyID0gTm9uZQorCisgICAgZGVmIHRlc3RfY29sbGVjdChzZWxmKToKKyAgICAgICAgc2VsZi5wcmVjbGVhbigpCisgICAgICAgIGdjLmNvbGxlY3QoKQorICAgICAgICAjIEFsZ29yaXRobWljYWxseSB2ZXJpZnkgdGhlIGNvbnRlbnRzIG9mIHNlbGYudmlzaXQKKyAgICAgICAgIyBiZWNhdXNlIGl0IGlzIGxvbmcgYW5kIHRvcnR1b3VzLgorCisgICAgICAgICMgQ291bnQgdGhlIG51bWJlciBvZiB2aXNpdHMgdG8gZWFjaCBjYWxsYmFjaworICAgICAgICBuID0gW3ZbMF0gZm9yIHYgaW4gc2VsZi52aXNpdF0KKyAgICAgICAgbjEgPSBbaSBmb3IgaSBpbiBuIGlmIGkgPT0gMV0KKyAgICAgICAgbjIgPSBbaSBmb3IgaSBpbiBuIGlmIGkgPT0gMl0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuMSwgWzFdKjIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobjIsIFsyXSoyKQorCisgICAgICAgICMgQ291bnQgdGhhdCB3ZSBnb3QgdGhlIHJpZ2h0IG51bWJlciBvZiBzdGFydCBhbmQgc3RvcCBjYWxsYmFja3MuCisgICAgICAgIG4gPSBbdlsxXSBmb3IgdiBpbiBzZWxmLnZpc2l0XQorICAgICAgICBuMSA9IFtpIGZvciBpIGluIG4gaWYgaSA9PSAic3RhcnQiXQorICAgICAgICBuMiA9IFtpIGZvciBpIGluIG4gaWYgaSA9PSAic3RvcCJdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobjEsIFsic3RhcnQiXSoyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG4yLCBbInN0b3AiXSoyKQorCisgICAgICAgICMgQ2hlY2sgdGhhdCB3ZSBnb3QgdGhlIHJpZ2h0IGluZm8gZGljdCBmb3IgYWxsIGNhbGxiYWNrcworICAgICAgICBmb3IgdiBpbiBzZWxmLnZpc2l0OgorICAgICAgICAgICAgaW5mbyA9IHZbMl0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiZ2VuZXJhdGlvbiIgaW4gaW5mbykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgiY29sbGVjdGVkIiBpbiBpbmZvKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCJ1bmNvbGxlY3RhYmxlIiBpbiBpbmZvKQorCisgICAgZGVmIHRlc3RfY29sbGVjdF9nZW5lcmF0aW9uKHNlbGYpOgorICAgICAgICBzZWxmLnByZWNsZWFuKCkKKyAgICAgICAgZ2MuY29sbGVjdCgyKQorICAgICAgICBmb3IgdiBpbiBzZWxmLnZpc2l0OgorICAgICAgICAgICAgaW5mbyA9IHZbMl0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mb1siZ2VuZXJhdGlvbiJdLCAyKQorCisgICAgZGVmIHRlc3RfY29sbGVjdF9nYXJiYWdlKHNlbGYpOgorICAgICAgICBzZWxmLnByZWNsZWFuKCkKKyAgICAgICAgIyBFYWNoIG9mIHRoZXNlIGNhdXNlIGZvdXIgb2JqZWN0cyB0byBiZSBnYXJiYWdlOiBUd28KKyAgICAgICAgIyBVbmNvbGVjdGFibGVzIGFuZCB0aGVpciBpbnN0YW5jZSBkaWN0cy4KKyAgICAgICAgVW5jb2xsZWN0YWJsZSgpCisgICAgICAgIFVuY29sbGVjdGFibGUoKQorICAgICAgICBDMTA1NTgyMCg2NjYpCisgICAgICAgIGdjLmNvbGxlY3QoKQorICAgICAgICBmb3IgdiBpbiBzZWxmLnZpc2l0OgorICAgICAgICAgICAgaWYgdlsxXSAhPSAic3RvcCI6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGluZm8gPSB2WzJdCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZm9bImNvbGxlY3RlZCJdLCAyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvWyJ1bmNvbGxlY3RhYmxlIl0sIDgpCisKKyAgICAgICAgIyBXZSBzaG91bGQgbm93IGhhdmUgdGhlIFVuY29sbGVjdGFibGVzIGluIGdjLmdhcmJhZ2UKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZ2MuZ2FyYmFnZSksIDQpCisgICAgICAgIGZvciBlIGluIGdjLmdhcmJhZ2U6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZSwgVW5jb2xsZWN0YWJsZSkKKworICAgICAgICAjIE5vdywgbGV0IG91ciBjYWxsYmFjayBoYW5kbGUgdGhlIFVuY29sbGVjdGFibGUgaW5zdGFuY2VzCisgICAgICAgIHNlbGYuY2xlYW51cD1UcnVlCisgICAgICAgIHNlbGYudmlzaXQgPSBbXQorICAgICAgICBnYy5nYXJiYWdlWzpdID0gW10KKyAgICAgICAgZ2MuY29sbGVjdCgpCisgICAgICAgIGZvciB2IGluIHNlbGYudmlzaXQ6CisgICAgICAgICAgICBpZiB2WzFdICE9ICJzdG9wIjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaW5mbyA9IHZbMl0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mb1siY29sbGVjdGVkIl0sIDApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZm9bInVuY29sbGVjdGFibGUiXSwgNCkKKworICAgICAgICAjIFVuY29sbGVjdGFibGVzIHNob3VsZCBiZSBnb25lCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGdjLmdhcmJhZ2UpLCAwKQorCisKIGNsYXNzIEdDVG9nZ2xpbmdUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBnYy5lbmFibGUoKQpAQCAtNjc3LDcgKzgxNiw3IEBACiAKICAgICB0cnk6CiAgICAgICAgIGdjLmNvbGxlY3QoKSAjIERlbGV0ZSAybmQgZ2VuZXJhdGlvbiBnYXJiYWdlCi0gICAgICAgIHJ1bl91bml0dGVzdChHQ1Rlc3RzLCBHQ1RvZ2dsaW5nVGVzdHMpCisgICAgICAgIHJ1bl91bml0dGVzdChHQ1Rlc3RzLCBHQ1RvZ2dsaW5nVGVzdHMsIEdDQ2FsbGJhY2tUZXN0cykKICAgICBmaW5hbGx5OgogICAgICAgICBnYy5zZXRfZGVidWcoZGVidWcpCiAgICAgICAgICMgdGVzdCBnYy5lbmFibGUoKSBldmVuIGlmIEdDIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZ2RiLnB5IGIvTGliL3Rlc3QvdGVzdF9nZGIucHkKaW5kZXggYTAyZjVjNy4uMjdmY2NkNiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9nZGIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9nZGIucHkKQEAgLTcsOSArNywxNiBAQAogaW1wb3J0IHJlCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cworaW1wb3J0IHN5c2NvbmZpZwogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgbG9jYWxlCiAKKyMgSXMgdGhpcyBQeXRob24gY29uZmlndXJlZCB0byBzdXBwb3J0IHRocmVhZHM/Cit0cnk6CisgICAgaW1wb3J0IF90aHJlYWQKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBfdGhyZWFkID0gTm9uZQorCiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0LCBmaW5kZmlsZSwgcHl0aG9uX2lzX29wdGltaXplZAogCiB0cnk6CkBAIC0yNCw2ICszMSw5IEBACiAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoImdkYiB2ZXJzaW9ucyBiZWZvcmUgNy4wIGRpZG4ndCBzdXBwb3J0IHB5dGhvbiBlbWJlZGRpbmciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBTYXc6XG4iICsgZ2RiX3ZlcnNpb24uZGVjb2RlKCdhc2NpaScsICdyZXBsYWNlJykpCiAKK2lmIG5vdCBzeXNjb25maWcuaXNfcHl0aG9uX2J1aWxkKCk6CisgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoInRlc3RfZ2RiIG9ubHkgd29ya3Mgb24gc291cmNlIGJ1aWxkcyBhdCB0aGUgbW9tZW50LiIpCisKICMgVmVyaWZ5IHRoYXQgImdkYiIgd2FzIGJ1aWx0IHdpdGggdGhlIGVtYmVkZGVkIHB5dGhvbiBzdXBwb3J0IGVuYWJsZWQ6CiBjbWQgPSAiLS1ldmFsLWNvbW1hbmQ9cHl0aG9uIGltcG9ydCBzeXM7IHByaW50IHN5cy52ZXJzaW9uX2luZm8iCiBwID0gc3VicHJvY2Vzcy5Qb3BlbihbImdkYiIsICItLWJhdGNoIiwgY21kXSwKQEAgLTE0Nyw3ICsxNTcsNiBAQAogCiAgICAgICAgICMgRW5zdXJlIG5vIHVuZXhwZWN0ZWQgZXJyb3IgbWVzc2FnZXM6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXJyLCAnJykKLQogICAgICAgICByZXR1cm4gb3V0CiAKICAgICBkZWYgZ2V0X2dkYl9yZXByKHNlbGYsIHNvdXJjZSwKQEAgLTE2OCw3ICsxNzcsNyBAQAogICAgICAgICAjIGdkYiBjYW4gaW5zZXJ0IGFkZGl0aW9uYWwgJ1xuJyBhbmQgc3BhY2UgY2hhcmFjdGVycyBpbiB2YXJpb3VzIHBsYWNlcwogICAgICAgICAjIGluIGl0cyBvdXRwdXQsIGRlcGVuZGluZyBvbiB0aGUgd2lkdGggb2YgdGhlIHRlcm1pbmFsIGl0J3MgY29ubmVjdGVkCiAgICAgICAgICMgdG8gKHVzaW5nIGl0cyAid3JhcF9oZXJlIiBmdW5jdGlvbikKLSAgICAgICAgbSA9IHJlLm1hdGNoKCcuKiMwXHMrYnVpbHRpbl9pZFxzK1woc2VsZlw9LiosXHMrdj1ccyooLio/KVwpXHMrYXRccytQeXRob24vYmx0aW5tb2R1bGUuYy4qJywKKyAgICAgICAgbSA9IHJlLm1hdGNoKCcuKiMwXHMrYnVpbHRpbl9pZFxzK1woc2VsZlw9LiosXHMrdj1ccyooLio/KVwpXHMrYXRccytcUypQeXRob24vYmx0aW5tb2R1bGUuYy4qJywKICAgICAgICAgICAgICAgICAgICAgIGdkYl9vdXRwdXQsIHJlLkRPVEFMTCkKICAgICAgICAgaWYgbm90IG06CiAgICAgICAgICAgICBzZWxmLmZhaWwoJ1VuZXhwZWN0ZWQgZ2RiIG91dHB1dDogJXJcbiVzJyAlIChnZGJfb3V0cHV0LCBnZGJfb3V0cHV0KSkKQEAgLTMzMCw3ICszMzksNyBAQAogZm9vID0gRm9vKCkKIGZvby5hbl9pbnQgPSA0MgogaWQoZm9vKScnJykKLSAgICAgICAgbSA9IHJlLm1hdGNoKHInPEZvb1woYW5faW50PTQyXCkgYXQgcmVtb3RlIDB4WzAtOWEtZl0rPicsIGdkYl9yZXByKQorICAgICAgICBtID0gcmUubWF0Y2gocic8Rm9vXChhbl9pbnQ9NDJcKSBhdCByZW1vdGUgMHgtP1swLTlhLWZdKz4nLCBnZGJfcmVwcikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG0sCiAgICAgICAgICAgICAgICAgICAgICAgICBtc2c9J1VuZXhwZWN0ZWQgbmV3LXN0eWxlIGNsYXNzIHJlbmRlcmluZyAlcicgJSBnZGJfcmVwcikKIApAQCAtMzQzLDcgKzM1Miw3IEBACiBmb28gKz0gWzEsIDIsIDNdCiBmb28uYW5faW50ID0gNDIKIGlkKGZvbyknJycpCi0gICAgICAgIG0gPSByZS5tYXRjaChyJzxGb29cKGFuX2ludD00MlwpIGF0IHJlbW90ZSAweFswLTlhLWZdKz4nLCBnZGJfcmVwcikKKyAgICAgICAgbSA9IHJlLm1hdGNoKHInPEZvb1woYW5faW50PTQyXCkgYXQgcmVtb3RlIDB4LT9bMC05YS1mXSs+JywgZ2RiX3JlcHIpCiAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG0sCiAgICAgICAgICAgICAgICAgICAgICAgICBtc2c9J1VuZXhwZWN0ZWQgbmV3LXN0eWxlIGNsYXNzIHJlbmRlcmluZyAlcicgJSBnZGJfcmVwcikKQEAgLTM1OCw3ICszNjcsNyBAQAogZm9vID0gRm9vKCgxLCAyLCAzKSkKIGZvby5hbl9pbnQgPSA0MgogaWQoZm9vKScnJykKLSAgICAgICAgbSA9IHJlLm1hdGNoKHInPEZvb1woYW5faW50PTQyXCkgYXQgcmVtb3RlIDB4WzAtOWEtZl0rPicsIGdkYl9yZXByKQorICAgICAgICBtID0gcmUubWF0Y2gocic8Rm9vXChhbl9pbnQ9NDJcKSBhdCByZW1vdGUgMHgtP1swLTlhLWZdKz4nLCBnZGJfcmVwcikKIAogICAgICAgICBzZWxmLmFzc2VydFRydWUobSwKICAgICAgICAgICAgICAgICAgICAgICAgIG1zZz0nVW5leHBlY3RlZCBuZXctc3R5bGUgY2xhc3MgcmVuZGVyaW5nICVyJyAlIGdkYl9yZXByKQpAQCAtMzg1LDcgKzM5NCw3IEBACiAKICAgICAgICAgIyBNYXRjaCBhbnl0aGluZyBmb3IgdGhlIHR5cGUgbmFtZTsgMHhERUFEQkVFRiBjb3VsZCBwb2ludCB0bwogICAgICAgICAjIHNvbWV0aGluZyBhcmJpdHJhcnkgKHNlZSAgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTgzMzApCi0gICAgICAgIHBhdHRlcm4gPSAnPC4qIGF0IHJlbW90ZSAweFswLTlhLWZdKz4nCisgICAgICAgIHBhdHRlcm4gPSAnPC4qIGF0IHJlbW90ZSAweC0/WzAtOWEtZl0rPicKIAogICAgICAgICBtID0gcmUubWF0Y2gocGF0dGVybiwgZ2RiX3JlcHIpCiAgICAgICAgIGlmIG5vdCBtOgpAQCAtNDMxLDcgKzQ0MCw3IEBACiAgICAgICAgICMgIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWU4MDMyI21zZzEwMDUzNyApCiAgICAgICAgIGdkYl9yZXByLCBnZGJfb3V0cHV0ID0gc2VsZi5nZXRfZ2RiX3JlcHIoJ2lkKF9fYnVpbHRpbnNfXy5oZWxwKScsIGltcG9ydF9zaXRlPVRydWUpCiAKLSAgICAgICAgbSA9IHJlLm1hdGNoKHInPF9IZWxwZXIgYXQgcmVtb3RlIDB4WzAtOWEtZl0rPicsIGdkYl9yZXByKQorICAgICAgICBtID0gcmUubWF0Y2gocic8X0hlbHBlciBhdCByZW1vdGUgMHgtP1swLTlhLWZdKz4nLCBnZGJfcmVwcikKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG0sCiAgICAgICAgICAgICAgICAgICAgICAgICBtc2c9J1VuZXhwZWN0ZWQgcmVuZGVyaW5nICVyJyAlIGdkYl9yZXByKQogCkBAIC00NjIsNyArNDcxLDcgQEAKIGZvbyA9IEZvbygpCiBmb28uYW5fYXR0ciA9IGZvbwogaWQoZm9vKScnJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCc8Rm9vXChhbl9hdHRyPTxcLlwuXC4+XCkgYXQgcmVtb3RlIDB4WzAtOWEtZl0rPicsCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnPEZvb1woYW5fYXR0cj08XC5cLlwuPlwpIGF0IHJlbW90ZSAweC0/WzAtOWEtZl0rPicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGJfcmVwciksCiAgICAgICAgICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBnZGIgcmVwcmVzZW50YXRpb246ICVyXG4lcycgJSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdkYl9yZXByLCBnZGJfb3V0cHV0KSkKQEAgLTQ3NSw3ICs0ODQsNyBAQAogZm9vID0gRm9vKCkKIGZvby5hbl9hdHRyID0gZm9vCiBpZChmb28pJycnKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocmUubWF0Y2goJzxGb29cKGFuX2F0dHI9PFwuXC5cLj5cKSBhdCByZW1vdGUgMHhbMC05YS1mXSs+JywKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCc8Rm9vXChhbl9hdHRyPTxcLlwuXC4+XCkgYXQgcmVtb3RlIDB4LT9bMC05YS1mXSs+JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYl9yZXByKSwKICAgICAgICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGdkYiByZXByZXNlbnRhdGlvbjogJXJcbiVzJyAlIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2RiX3JlcHIsIGdkYl9vdXRwdXQpKQpAQCAtNDg5LDcgKzQ5OCw3IEBACiBhLmFuX2F0dHIgPSBiCiBiLmFuX2F0dHIgPSBhCiBpZChhKScnJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCc8Rm9vXChhbl9hdHRyPTxGb29cKGFuX2F0dHI9PFwuXC5cLj5cKSBhdCByZW1vdGUgMHhbMC05YS1mXSs+XCkgYXQgcmVtb3RlIDB4WzAtOWEtZl0rPicsCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnPEZvb1woYW5fYXR0cj08Rm9vXChhbl9hdHRyPTxcLlwuXC4+XCkgYXQgcmVtb3RlIDB4LT9bMC05YS1mXSs+XCkgYXQgcmVtb3RlIDB4LT9bMC05YS1mXSs+JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYl9yZXByKSwKICAgICAgICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGdkYiByZXByZXNlbnRhdGlvbjogJXJcbiVzJyAlIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2RiX3JlcHIsIGdkYl9vdXRwdXQpKQpAQCAtNTI0LDcgKzUzMyw3IEBACiAKICAgICBkZWYgdGVzdF9idWlsdGluX21ldGhvZChzZWxmKToKICAgICAgICAgZ2RiX3JlcHIsIGdkYl9vdXRwdXQgPSBzZWxmLmdldF9nZGJfcmVwcignaW1wb3J0IHN5czsgaWQoc3lzLnN0ZG91dC5yZWFkbGluZXMpJykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCc8YnVpbHQtaW4gbWV0aG9kIHJlYWRsaW5lcyBvZiBfaW8uVGV4dElPV3JhcHBlciBvYmplY3QgYXQgcmVtb3RlIDB4WzAtOWEtZl0rPicsCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZS5tYXRjaCgnPGJ1aWx0LWluIG1ldGhvZCByZWFkbGluZXMgb2YgX2lvLlRleHRJT1dyYXBwZXIgb2JqZWN0IGF0IHJlbW90ZSAweC0/WzAtOWEtZl0rPicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZGJfcmVwciksCiAgICAgICAgICAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBnZGIgcmVwcmVzZW50YXRpb246ICVyXG4lcycgJSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdkYl9yZXByLCBnZGJfb3V0cHV0KSkKQEAgLTUzOSw3ICs1NDgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludD0nYnVpbHRpbl9pZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRzX2FmdGVyX2JyZWFrcG9pbnQ9WydwcmludCAoUHlGcmFtZU9iamVjdCopKCgoUHlDb2RlT2JqZWN0Kil2KS0+Y29fem9tYmllZnJhbWUpJ10KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLm1hdGNoKCcuKlxzK1wkMSA9XHMrRnJhbWUgMHhbMC05YS1mXSssIGZvciBmaWxlIDxzdHJpbmc+LCBsaW5lIDMsIGluIGZvbyBcKFwpXHMrLionLAorICAgICAgICBzZWxmLmFzc2VydFRydWUocmUubWF0Y2goJy4qXHMrXCQxID1ccytGcmFtZSAweC0/WzAtOWEtZl0rLCBmb3IgZmlsZSA8c3RyaW5nPiwgbGluZSAzLCBpbiBmb28gXChcKVxzKy4qJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYl9vdXRwdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZS5ET1RBTEwpLAogICAgICAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZ2RiIHJlcHJlc2VudGF0aW9uOiAlclxuJXMnICUgKGdkYl9vdXRwdXQsIGdkYl9vdXRwdXQpKQpAQCAtNTk2LDcgKzYwNSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kc19hZnRlcl9icmVha3BvaW50PVsncHktdXAnXSkKICAgICAgICAgc2VsZi5hc3NlcnRNdWx0aWxpbmVNYXRjaGVzKGJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcicnJ14uKgotI1swLTldKyBGcmFtZSAweFswLTlhLWZdKywgZm9yIGZpbGUgLipnZGJfc2FtcGxlLnB5LCBsaW5lIDcsIGluIGJhciBcKGE9MSwgYj0yLCBjPTNcKQorI1swLTldKyBGcmFtZSAweC0/WzAtOWEtZl0rLCBmb3IgZmlsZSAuKmdkYl9zYW1wbGUucHksIGxpbmUgNywgaW4gYmFyIFwoYT0xLCBiPTIsIGM9M1wpCiAgICAgYmF6XChhLCBiLCBjXCkKICQnJycpCiAKQEAgLTYyNSw5ICs2MzQsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHNfYWZ0ZXJfYnJlYWtwb2ludD1bJ3B5LXVwJywgJ3B5LWRvd24nXSkKICAgICAgICAgc2VsZi5hc3NlcnRNdWx0aWxpbmVNYXRjaGVzKGJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcicnJ14uKgotI1swLTldKyBGcmFtZSAweFswLTlhLWZdKywgZm9yIGZpbGUgLipnZGJfc2FtcGxlLnB5LCBsaW5lIDcsIGluIGJhciBcKGE9MSwgYj0yLCBjPTNcKQorI1swLTldKyBGcmFtZSAweC0/WzAtOWEtZl0rLCBmb3IgZmlsZSAuKmdkYl9zYW1wbGUucHksIGxpbmUgNywgaW4gYmFyIFwoYT0xLCBiPTIsIGM9M1wpCiAgICAgYmF6XChhLCBiLCBjXCkKLSNbMC05XSsgRnJhbWUgMHhbMC05YS1mXSssIGZvciBmaWxlIC4qZ2RiX3NhbXBsZS5weSwgbGluZSAxMCwgaW4gYmF6IFwoYXJncz1cKDEsIDIsIDNcKVwpCisjWzAtOV0rIEZyYW1lIDB4LT9bMC05YS1mXSssIGZvciBmaWxlIC4qZ2RiX3NhbXBsZS5weSwgbGluZSAxMCwgaW4gYmF6IFwoYXJncz1cKDEsIDIsIDNcKVwpCiAgICAgaWRcKDQyXCkKICQnJycpCiAKQEAgLTY1OSwxNCArNjY4LDEwNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHNfYWZ0ZXJfYnJlYWtwb2ludD1bJ3B5LWJ0LWZ1bGwnXSkKICAgICAgICAgc2VsZi5hc3NlcnRNdWx0aWxpbmVNYXRjaGVzKGJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcicnJ14uKgotI1swLTldKyBGcmFtZSAweFswLTlhLWZdKywgZm9yIGZpbGUgLipnZGJfc2FtcGxlLnB5LCBsaW5lIDcsIGluIGJhciBcKGE9MSwgYj0yLCBjPTNcKQorI1swLTldKyBGcmFtZSAweC0/WzAtOWEtZl0rLCBmb3IgZmlsZSAuKmdkYl9zYW1wbGUucHksIGxpbmUgNywgaW4gYmFyIFwoYT0xLCBiPTIsIGM9M1wpCiAgICAgYmF6XChhLCBiLCBjXCkKLSNbMC05XSsgRnJhbWUgMHhbMC05YS1mXSssIGZvciBmaWxlIC4qZ2RiX3NhbXBsZS5weSwgbGluZSA0LCBpbiBmb28gXChhPTEsIGI9MiwgYz0zXCkKKyNbMC05XSsgRnJhbWUgMHgtP1swLTlhLWZdKywgZm9yIGZpbGUgLipnZGJfc2FtcGxlLnB5LCBsaW5lIDQsIGluIGZvbyBcKGE9MSwgYj0yLCBjPTNcKQogICAgIGJhclwoYSwgYiwgY1wpCi0jWzAtOV0rIEZyYW1lIDB4WzAtOWEtZl0rLCBmb3IgZmlsZSAuKmdkYl9zYW1wbGUucHksIGxpbmUgMTIsIGluIDxtb2R1bGU+IFwoXCkKKyNbMC05XSsgRnJhbWUgMHgtP1swLTlhLWZdKywgZm9yIGZpbGUgLipnZGJfc2FtcGxlLnB5LCBsaW5lIDEyLCBpbiA8bW9kdWxlPiBcKFwpCiAgICAgZm9vXCgxLCAyLCAzXCkKICcnJykKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKF90aHJlYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlB5dGhvbiB3YXMgY29tcGlsZWQgd2l0aG91dCB0aHJlYWQgc3VwcG9ydCIpCisgICAgZGVmIHRlc3RfdGhyZWFkcyhzZWxmKToKKyAgICAgICAgJ1ZlcmlmeSB0aGF0ICJweS1idCIgaW5kaWNhdGVzIHRocmVhZHMgdGhhdCBhcmUgd2FpdGluZyBmb3IgdGhlIEdJTCcKKyAgICAgICAgY21kID0gJycnCitmcm9tIHRocmVhZGluZyBpbXBvcnQgVGhyZWFkCisKK2NsYXNzIFRlc3RUaHJlYWQoVGhyZWFkKToKKyAgICAjIFRoZXNlIHRocmVhZHMgd291bGQgcnVuIGZvcmV2ZXIsIGJ1dCB3ZSdsbCBpbnRlcnJ1cHQgdGhpbmdzIHdpdGggdGhlCisgICAgIyBkZWJ1Z2dlcgorICAgIGRlZiBydW4oc2VsZik6CisgICAgICAgIGkgPSAwCisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICAgaSArPSAxCisKK3QgPSB7fQorZm9yIGkgaW4gcmFuZ2UoNCk6CisgICB0W2ldID0gVGVzdFRocmVhZCgpCisgICB0W2ldLnN0YXJ0KCkKKworIyBUcmlnZ2VyIGEgYnJlYWtwb2ludCBvbiB0aGUgbWFpbiB0aHJlYWQKK2lkKDQyKQorCisnJycKKyAgICAgICAgIyBWZXJpZnkgd2l0aCAicHktYnQiOgorICAgICAgICBnZGJfb3V0cHV0ID0gc2VsZi5nZXRfc3RhY2tfdHJhY2UoY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kc19hZnRlcl9icmVha3BvaW50PVsndGhyZWFkIGFwcGx5IGFsbCBweS1idCddKQorICAgICAgICBzZWxmLmFzc2VydEluKCdXYWl0aW5nIGZvciB0aGUgR0lMJywgZ2RiX291dHB1dCkKKworICAgICAgICAjIFZlcmlmeSB3aXRoICJweS1idC1mdWxsIjoKKyAgICAgICAgZ2RiX291dHB1dCA9IHNlbGYuZ2V0X3N0YWNrX3RyYWNlKGNtZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHNfYWZ0ZXJfYnJlYWtwb2ludD1bJ3RocmVhZCBhcHBseSBhbGwgcHktYnQtZnVsbCddKQorICAgICAgICBzZWxmLmFzc2VydEluKCdXYWl0aW5nIGZvciB0aGUgR0lMJywgZ2RiX291dHB1dCkKKworICAgIEB1bml0dGVzdC5za2lwSWYocHl0aG9uX2lzX29wdGltaXplZCgpLAorICAgICAgICAgICAgICAgICAgICAgIlB5dGhvbiB3YXMgY29tcGlsZWQgd2l0aCBvcHRpbWl6YXRpb25zIikKKyAgICAjIFNvbWUgb2xkZXIgdmVyc2lvbnMgb2YgZ2RiIHdpbGwgZmFpbCB3aXRoCisgICAgIyAgIkNhbm5vdCBmaW5kIG5ldyB0aHJlYWRzOiBnZW5lcmljIGVycm9yIgorICAgICMgdW5sZXNzIHdlIGFkZCBMRF9QUkVMT0FEPVBBVEgtVE8tbGlicHRocmVhZC5zby4xIGFzIGEgd29ya2Fyb3VuZAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKF90aHJlYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlB5dGhvbiB3YXMgY29tcGlsZWQgd2l0aG91dCB0aHJlYWQgc3VwcG9ydCIpCisgICAgZGVmIHRlc3RfZ2Moc2VsZik6CisgICAgICAgICdWZXJpZnkgdGhhdCAicHktYnQiIGluZGljYXRlcyBpZiBhIHRocmVhZCBpcyBnYXJiYWdlLWNvbGxlY3RpbmcnCisgICAgICAgIGNtZCA9ICgnZnJvbSBnYyBpbXBvcnQgY29sbGVjdFxuJworICAgICAgICAgICAgICAgJ2lkKDQyKVxuJworICAgICAgICAgICAgICAgJ2RlZiBmb28oKTpcbicKKyAgICAgICAgICAgICAgICcgICAgY29sbGVjdCgpXG4nCisgICAgICAgICAgICAgICAnZGVmIGJhcigpOlxuJworICAgICAgICAgICAgICAgJyAgICBmb28oKVxuJworICAgICAgICAgICAgICAgJ2JhcigpXG4nKQorICAgICAgICAjIFZlcmlmeSB3aXRoICJweS1idCI6CisgICAgICAgIGdkYl9vdXRwdXQgPSBzZWxmLmdldF9zdGFja190cmFjZShjbWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRzX2FmdGVyX2JyZWFrcG9pbnQ9WydicmVhayB1cGRhdGVfcmVmcycsICdjb250aW51ZScsICdweS1idCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBzZWxmLmFzc2VydEluKCdHYXJiYWdlLWNvbGxlY3RpbmcnLCBnZGJfb3V0cHV0KQorCisgICAgICAgICMgVmVyaWZ5IHdpdGggInB5LWJ0LWZ1bGwiOgorICAgICAgICBnZGJfb3V0cHV0ID0gc2VsZi5nZXRfc3RhY2tfdHJhY2UoY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kc19hZnRlcl9icmVha3BvaW50PVsnYnJlYWsgdXBkYXRlX3JlZnMnLCAnY29udGludWUnLCAncHktYnQtZnVsbCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBzZWxmLmFzc2VydEluKCdHYXJiYWdlLWNvbGxlY3RpbmcnLCBnZGJfb3V0cHV0KQorCisgICAgQHVuaXR0ZXN0LnNraXBJZihweXRob25faXNfb3B0aW1pemVkKCksCisgICAgICAgICAgICAgICAgICAgICAiUHl0aG9uIHdhcyBjb21waWxlZCB3aXRoIG9wdGltaXphdGlvbnMiKQorICAgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBnZGIgd2lsbCBmYWlsIHdpdGgKKyAgICAjICAiQ2Fubm90IGZpbmQgbmV3IHRocmVhZHM6IGdlbmVyaWMgZXJyb3IiCisgICAgIyB1bmxlc3Mgd2UgYWRkIExEX1BSRUxPQUQ9UEFUSC1UTy1saWJwdGhyZWFkLnNvLjEgYXMgYSB3b3JrYXJvdW5kCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoX3RocmVhZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUHl0aG9uIHdhcyBjb21waWxlZCB3aXRob3V0IHRocmVhZCBzdXBwb3J0IikKKyAgICBkZWYgdGVzdF9weWNmdW5jdGlvbihzZWxmKToKKyAgICAgICAgJ1ZlcmlmeSB0aGF0ICJweS1idCIgZGlzcGxheXMgaW52b2NhdGlvbnMgb2YgUHlDRnVuY3Rpb24gaW5zdGFuY2VzJworICAgICAgICBjbWQgPSAoJ2Zyb20gdGltZSBpbXBvcnQgc2xlZXBcbicKKyAgICAgICAgICAgICAgICdkZWYgZm9vKCk6XG4nCisgICAgICAgICAgICAgICAnICAgIHNsZWVwKDEpXG4nCisgICAgICAgICAgICAgICAnZGVmIGJhcigpOlxuJworICAgICAgICAgICAgICAgJyAgICBmb28oKVxuJworICAgICAgICAgICAgICAgJ2JhcigpXG4nKQorICAgICAgICAjIFZlcmlmeSB3aXRoICJweS1idCI6CisgICAgICAgIGdkYl9vdXRwdXQgPSBzZWxmLmdldF9zdGFja190cmFjZShjbWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVha3BvaW50PSd0aW1lX3NsZWVwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHNfYWZ0ZXJfYnJlYWtwb2ludD1bJ2J0JywgJ3B5LWJ0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJzxidWlsdC1pbiBtZXRob2Qgc2xlZXAnLCBnZGJfb3V0cHV0KQorCisgICAgICAgICMgVmVyaWZ5IHdpdGggInB5LWJ0LWZ1bGwiOgorICAgICAgICBnZGJfb3V0cHV0ID0gc2VsZi5nZXRfc3RhY2tfdHJhY2UoY21kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludD0ndGltZV9zbGVlcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRzX2FmdGVyX2JyZWFrcG9pbnQ9WydweS1idC1mdWxsJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJyMwIDxidWlsdC1pbiBtZXRob2Qgc2xlZXAnLCBnZGJfb3V0cHV0KQorCisKIGNsYXNzIFB5UHJpbnRUZXN0cyhEZWJ1Z2dlclRlc3RzKToKICAgICBAdW5pdHRlc3Quc2tpcElmKHB5dGhvbl9pc19vcHRpbWl6ZWQoKSwKICAgICAgICAgICAgICAgICAgICAgICJQeXRob24gd2FzIGNvbXBpbGVkIHdpdGggb3B0aW1pemF0aW9ucyIpCkBAIC03MDAsNyArODAxLDcgQEAKICAgICAgICAgYnQgPSBzZWxmLmdldF9zdGFja190cmFjZShzY3JpcHQ9c2VsZi5nZXRfc2FtcGxlX3NjcmlwdCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtZHNfYWZ0ZXJfYnJlYWtwb2ludD1bJ3B5LXByaW50IGxlbiddKQogICAgICAgICBzZWxmLmFzc2VydE11bHRpbGluZU1hdGNoZXMoYnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByIi4qXG5idWlsdGluICdsZW4nID0gPGJ1aWx0LWluIG1ldGhvZCBsZW4gb2YgbW9kdWxlIG9iamVjdCBhdCByZW1vdGUgMHhbMC05YS1mXSs+XG4uKiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByIi4qXG5idWlsdGluICdsZW4nID0gPGJ1aWx0LWluIG1ldGhvZCBsZW4gb2YgbW9kdWxlIG9iamVjdCBhdCByZW1vdGUgMHgtP1swLTlhLWZdKz5cbi4qIikKIAogY2xhc3MgUHlMb2NhbHNUZXN0cyhEZWJ1Z2dlclRlc3RzKToKICAgICBAdW5pdHRlc3Quc2tpcElmKHB5dGhvbl9pc19vcHRpbWl6ZWQoKSwKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZ2VuZXJhdG9ycy5weSBiL0xpYi90ZXN0L3Rlc3RfZ2VuZXJhdG9ycy5weQppbmRleCA1ZjQ3YjNlLi4wNmY2N2MyIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2dlbmVyYXRvcnMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9nZW5lcmF0b3JzLnB5CkBAIC03MjgsMjkgKzcyOCw2IEBACiAKIHN5bnRheF90ZXN0cyA9ICIiIgogCi0+Pj4gZGVmIGYoKToKLS4uLiAgICAgcmV0dXJuIDIyCi0uLi4gICAgIHlpZWxkIDEKLVRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKLSAgLi4KLVN5bnRheEVycm9yOiAncmV0dXJuJyB3aXRoIGFyZ3VtZW50IGluc2lkZSBnZW5lcmF0b3IKLQotPj4+IGRlZiBmKCk6Ci0uLi4gICAgIHlpZWxkIDEKLS4uLiAgICAgcmV0dXJuIDIyCi1UcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Ci0gIC4uCi1TeW50YXhFcnJvcjogJ3JldHVybicgd2l0aCBhcmd1bWVudCBpbnNpZGUgZ2VuZXJhdG9yCi0KLSJyZXR1cm4gTm9uZSIgaXMgbm90IHRoZSBzYW1lIGFzICJyZXR1cm4iIGluIGEgZ2VuZXJhdG9yOgotCi0+Pj4gZGVmIGYoKToKLS4uLiAgICAgeWllbGQgMQotLi4uICAgICByZXR1cm4gTm9uZQotVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgotICAuLgotU3ludGF4RXJyb3I6ICdyZXR1cm4nIHdpdGggYXJndW1lbnQgaW5zaWRlIGdlbmVyYXRvcgotCiBUaGVzZSBhcmUgZmluZToKIAogPj4+IGRlZiBmKCk6CkBAIC04NjYsMjAgKzg0Myw2IEBACiA+Pj4gdHlwZShmKCkpCiA8Y2xhc3MgJ2dlbmVyYXRvcic+CiAKLQotPj4+IGRlZiBmKCk6Ci0uLi4gICAgIGlmIDA6Ci0uLi4gICAgICAgICBsYW1iZGEgeDogIHggICAgICAgICMgc2hvdWxkbid0IHRyaWdnZXIgaGVyZQotLi4uICAgICAgICAgcmV0dXJuICAgICAgICAgICAgICAjIG9yIGhlcmUKLS4uLiAgICAgICAgIGRlZiBmKGkpOgotLi4uICAgICAgICAgICAgIHJldHVybiAyKmkgICAgICAjIG9yIGhlcmUKLS4uLiAgICAgICAgIGlmIDA6Ci0uLi4gICAgICAgICAgICAgcmV0dXJuIDMgICAgICAgICMgYnV0ICp0aGlzKiBzdWNrcyAobGluZSA4KQotLi4uICAgICBpZiAwOgotLi4uICAgICAgICAgeWllbGQgMiAgICAgICAgICAgICAjIGJlY2F1c2UgaXQncyBhIGdlbmVyYXRvciAobGluZSAxMCkKLVRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKLVN5bnRheEVycm9yOiAncmV0dXJuJyB3aXRoIGFyZ3VtZW50IGluc2lkZSBnZW5lcmF0b3IKLQogVGhpcyBvbmUgY2F1c2VkIGEgY3Jhc2ggKHNlZSBTRiBidWcgNTY3NTM4KToKIAogPj4+IGRlZiBmKCk6CkBAIC0xNTY2LDExICsxNTI5LDYgQEAKICAgLi4uCiBTeW50YXhFcnJvcjogJ3lpZWxkJyBvdXRzaWRlIGZ1bmN0aW9uCiAKLT4+PiBkZWYgZigpOiByZXR1cm4gbGFtYmRhIHg9KHlpZWxkKTogMQotVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgotICAuLi4KLVN5bnRheEVycm9yOiAncmV0dXJuJyB3aXRoIGFyZ3VtZW50IGluc2lkZSBnZW5lcmF0b3IKLQogPj4+IGRlZiBmKCk6IHggPSB5aWVsZCA9IHkKIFRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKICAgLi4uCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2dlbmVyaWNwYXRoLnB5IGIvTGliL3Rlc3QvdGVzdF9nZW5lcmljcGF0aC5weQppbmRleCA1MDYzOGExLi5mYzNkNDRjIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2dlbmVyaWNwYXRoLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZ2VuZXJpY3BhdGgucHkKQEAgLTIsMTEgKzIsMTIgQEAKIFRlc3RzIGNvbW1vbiB0byBnZW5lcmljcGF0aCwgbWFjcGF0aCwgbnRwYXRoIGFuZCBwb3NpeHBhdGgKICIiIgogCi1pbXBvcnQgdW5pdHRlc3QKLWZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotaW1wb3J0IG9zCiBpbXBvcnQgZ2VuZXJpY3BhdGgKK2ltcG9ydCBvcwogaW1wb3J0IHN5cworaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgd2FybmluZ3MKK2Zyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogCiAKIGRlZiBzYWZlX3JtZGlyKGRpcm5hbWUpOgpAQCAtMTQ1LDYgKzE0NiwxNiBAQAogICAgICAgICAgICAgICAgIGYuY2xvc2UoKQogICAgICAgICAgICAgc3VwcG9ydC51bmxpbmsoc3VwcG9ydC5URVNURk4pCiAKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKG9zLCAicGlwZSIpLCAicmVxdWlyZXMgb3MucGlwZSgpIikKKyAgICBkZWYgdGVzdF9leGlzdHNfZmQoc2VsZik6CisgICAgICAgIHIsIHcgPSBvcy5waXBlKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYucGF0aG1vZHVsZS5leGlzdHMocikpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5jbG9zZShyKQorICAgICAgICAgICAgb3MuY2xvc2UodykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLnBhdGhtb2R1bGUuZXhpc3RzKHIpKQorCiAgICAgZGVmIHRlc3RfaXNkaXIoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0SXMoc2VsZi5wYXRobW9kdWxlLmlzZGlyKHN1cHBvcnQuVEVTVEZOKSwgRmFsc2UpCiAgICAgICAgIGYgPSBvcGVuKHN1cHBvcnQuVEVTVEZOLCAid2IiKQpAQCAtMjU4LDE1ICsyNjksMjEgQEAKIAogICAgIGRlZiB0ZXN0X2Fic3BhdGgoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oImZvbyIsIHNlbGYucGF0aG1vZHVsZS5hYnNwYXRoKCJmb28iKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihiImZvbyIsIHNlbGYucGF0aG1vZHVsZS5hYnNwYXRoKGIiZm9vIikpCisgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiaWdub3JlIiwgRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihiImZvbyIsIHNlbGYucGF0aG1vZHVsZS5hYnNwYXRoKGIiZm9vIikpCiAKICAgICAgICAgIyBBYnNwYXRoIHJldHVybnMgYnl0ZXMgd2hlbiB0aGUgYXJnIGlzIGJ5dGVzCi0gICAgICAgIGZvciBwYXRoIGluIChiJycsIGInZm9vJywgYidmXHhmMlx4ZjInLCBiJy9mb28nLCBiJ0M6XFwnKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShzZWxmLnBhdGhtb2R1bGUuYWJzcGF0aChwYXRoKSwgYnl0ZXMpCisgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiaWdub3JlIiwgRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgZm9yIHBhdGggaW4gKGInJywgYidmb28nLCBiJ2ZceGYyXHhmMicsIGInL2ZvbycsIGInQzpcXCcpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShzZWxmLnBhdGhtb2R1bGUuYWJzcGF0aChwYXRoKSwgYnl0ZXMpCiAKICAgICBkZWYgdGVzdF9yZWFscGF0aChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRJbigiZm9vIiwgc2VsZi5wYXRobW9kdWxlLnJlYWxwYXRoKCJmb28iKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihiImZvbyIsIHNlbGYucGF0aG1vZHVsZS5yZWFscGF0aChiImZvbyIpKQorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImlnbm9yZSIsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oYiJmb28iLCBzZWxmLnBhdGhtb2R1bGUucmVhbHBhdGgoYiJmb28iKSkKIAogICAgIGRlZiB0ZXN0X25vcm1wYXRoX2lzc3VlNTgyNyhzZWxmKToKICAgICAgICAgIyBNYWtlIHN1cmUgbm9ybXBhdGggcHJlc2VydmVzIHVuaWNvZGUKQEAgLTI5Niw4ICszMTMsMTAgQEAKICAgICAgICAgIk1hYyBPUyBYIGRlbmllcyB0aGUgY3JlYXRpb24gb2YgYSBkaXJlY3Rvcnkgd2l0aCBhbiBpbnZhbGlkIHV0ZjggbmFtZSIpCiAgICAgZGVmIHRlc3Rfbm9uYXNjaWlfYWJzcGF0aChzZWxmKToKICAgICAgICAgIyBUZXN0IG5vbi1BU0NJSSwgbm9uLVVURjggYnl0ZXMgaW4gdGhlIHBhdGguCi0gICAgICAgIHdpdGggc3VwcG9ydC50ZW1wX2N3ZChiJ1x4ZTd3XHhmMCcpOgotICAgICAgICAgICAgc2VsZi50ZXN0X2Fic3BhdGgoKQorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImlnbm9yZSIsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIHdpdGggc3VwcG9ydC50ZW1wX2N3ZChiJ1x4ZTd3XHhmMCcpOgorICAgICAgICAgICAgICAgIHNlbGYudGVzdF9hYnNwYXRoKCkKIAogCiBkZWYgdGVzdF9tYWluKCk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2dlbmV4cHMucHkgYi9MaWIvdGVzdC90ZXN0X2dlbmV4cHMucHkKaW5kZXggMWY0NmFmMS4uNDEzMDQzYyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9nZW5leHBzLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfZ2VuZXhwcy5weQpAQCAtMjU3LDExICsyNTcsMTUgQEAKIAogIiIiCiAKK2ltcG9ydCBzeXMKIAotX190ZXN0X18gPSB7J2RvY3Rlc3RzJyA6IGRvY3Rlc3RzfQorIyBUcmFjZSBmdW5jdGlvbiBjYW4gdGhyb3cgb2ZmIHRoZSB0dXBsZSByZXVzZSB0ZXN0LgoraWYgaGFzYXR0cihzeXMsICdnZXR0cmFjZScpIGFuZCBzeXMuZ2V0dHJhY2UoKToKKyAgICBfX3Rlc3RfXyA9IHt9CitlbHNlOgorICAgIF9fdGVzdF9fID0geydkb2N0ZXN0cycgOiBkb2N0ZXN0c30KIAogZGVmIHRlc3RfbWFpbih2ZXJib3NlPU5vbmUpOgotICAgIGltcG9ydCBzeXMKICAgICBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKICAgICBmcm9tIHRlc3QgaW1wb3J0IHRlc3RfZ2VuZXhwcwogICAgIHN1cHBvcnQucnVuX2RvY3Rlc3QodGVzdF9nZW5leHBzLCB2ZXJib3NlKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9nZXRhcmdzMi5weSBiL0xpYi90ZXN0L3Rlc3RfZ2V0YXJnczIucHkKaW5kZXggM2Q5YzA2YS4uNDhjYTk0ZSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9nZXRhcmdzMi5weQorKysgYi9MaWIvdGVzdC90ZXN0X2dldGFyZ3MyLnB5CkBAIC0xLDYgKzEsNiBAQAogaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLWZyb20gX3Rlc3RjYXBpIGltcG9ydCBnZXRhcmdzX2tleXdvcmRzCitmcm9tIF90ZXN0Y2FwaSBpbXBvcnQgZ2V0YXJnc19rZXl3b3JkcywgZ2V0YXJnc19rZXl3b3JkX29ubHkKIAogIiIiCiA+IEhvdyBhYm91dCB0aGUgZm9sbG93aW5nIGNvdW50ZXJwcm9wb3NhbC4gVGhpcyBhbHNvIGNoYW5nZXMgc29tZSBvZgpAQCAtMjE0LDYgKzIxNCwzNiBAQAogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVkVSWV9MQVJHRSAmIFVMTE9OR19NQVgsIGdldGFyZ3NfSyhWRVJZX0xBUkdFKSkKIAorY2xhc3MgUGFyYWRveDoKKyAgICAiVGhpcyBzdGF0ZW1lbnQgaXMgZmFsc2UuIgorICAgIGRlZiBfX2Jvb2xfXyhzZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCitjbGFzcyBCb29sZWFuX1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9wKHNlbGYpOgorICAgICAgICBmcm9tIF90ZXN0Y2FwaSBpbXBvcnQgZ2V0YXJnc19wCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgZ2V0YXJnc19wKEZhbHNlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBnZXRhcmdzX3AoTm9uZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgZ2V0YXJnc19wKDApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGdldGFyZ3NfcCgwLjApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGdldGFyZ3NfcCgwaikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgZ2V0YXJnc19wKCcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBnZXRhcmdzX3AoKCkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGdldGFyZ3NfcChbXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgZ2V0YXJnc19wKHt9KSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGdldGFyZ3NfcChUcnVlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBnZXRhcmdzX3AoMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgZ2V0YXJnc19wKDEuMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgZ2V0YXJnc19wKDFqKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBnZXRhcmdzX3AoJ3gnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBnZXRhcmdzX3AoKDEsKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgZ2V0YXJnc19wKFsxXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgZ2V0YXJnc19wKHsxOjJ9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBnZXRhcmdzX3AodW5pdHRlc3QuVGVzdENhc2UpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIGdldGFyZ3NfcCwgUGFyYWRveCgpKQorCiAKIGNsYXNzIFR1cGxlX1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF90dXBsZShzZWxmKToKQEAgLTI5Myw3ICszMjMsODcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuZmFpbCgnVHlwZUVycm9yIHNob3VsZCBoYXZlIGJlZW4gcmFpc2VkJykKIAorY2xhc3MgS2V5d29yZE9ubHlfVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X3Bvc2l0aW9uYWxfYXJncyhzZWxmKToKKyAgICAgICAgIyB1c2luZyBhbGwgcG9zc2libGUgcG9zaXRpb25hbCBhcmdzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBnZXRhcmdzX2tleXdvcmRfb25seSgxLCAyKSwKKyAgICAgICAgICAgICgxLCAyLCAtMSkKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0ZXN0X21peGVkX2FyZ3Moc2VsZik6CisgICAgICAgICMgcG9zaXRpb25hbCBhbmQga2V5d29yZCBhcmdzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBnZXRhcmdzX2tleXdvcmRfb25seSgxLCAyLCBrZXl3b3JkX29ubHk9MyksCisgICAgICAgICAgICAoMSwgMiwgMykKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0ZXN0X2tleXdvcmRfYXJncyhzZWxmKToKKyAgICAgICAgIyBhbGwga2V5d29yZHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGdldGFyZ3Nfa2V5d29yZF9vbmx5KHJlcXVpcmVkPTEsIG9wdGlvbmFsPTIsIGtleXdvcmRfb25seT0zKSwKKyAgICAgICAgICAgICgxLCAyLCAzKQorICAgICAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfb3B0aW9uYWxfYXJncyhzZWxmKToKKyAgICAgICAgIyBtaXNzaW5nIG9wdGlvbmFsIGtleXdvcmQgYXJncywgc2tpcHBpbmcgdHVwbGVzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBnZXRhcmdzX2tleXdvcmRfb25seShyZXF1aXJlZD0xLCBvcHRpb25hbD0yKSwKKyAgICAgICAgICAgICgxLCAyLCAtMSkKKyAgICAgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGdldGFyZ3Nfa2V5d29yZF9vbmx5KHJlcXVpcmVkPTEsIGtleXdvcmRfb25seT0zKSwKKyAgICAgICAgICAgICgxLCAtMSwgMykKKyAgICAgICAgICAgICkKKworICAgIGRlZiB0ZXN0X3JlcXVpcmVkX2FyZ3Moc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBnZXRhcmdzX2tleXdvcmRfb25seSgxKSwKKyAgICAgICAgICAgICgxLCAtMSwgLTEpCisgICAgICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBnZXRhcmdzX2tleXdvcmRfb25seShyZXF1aXJlZD0xKSwKKyAgICAgICAgICAgICgxLCAtMSwgLTEpCisgICAgICAgICAgICApCisgICAgICAgICMgcmVxdWlyZWQgYXJnIG1pc3NpbmcKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICJSZXF1aXJlZCBhcmd1bWVudCAncmVxdWlyZWQnIFwocG9zIDFcKSBub3QgZm91bmQiKToKKyAgICAgICAgICAgIGdldGFyZ3Nfa2V5d29yZF9vbmx5KG9wdGlvbmFsPTIpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICJSZXF1aXJlZCBhcmd1bWVudCAncmVxdWlyZWQnIFwocG9zIDFcKSBub3QgZm91bmQiKToKKyAgICAgICAgICAgIGdldGFyZ3Nfa2V5d29yZF9vbmx5KGtleXdvcmRfb25seT0zKQorCisgICAgZGVmIHRlc3RfdG9vX21hbnlfYXJncyhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICJGdW5jdGlvbiB0YWtlcyBhdCBtb3N0IDIgcG9zaXRpb25hbCBhcmd1bWVudHMgXCgzIGdpdmVuXCkiKToKKyAgICAgICAgICAgIGdldGFyZ3Nfa2V5d29yZF9vbmx5KDEsIDIsIDMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICJmdW5jdGlvbiB0YWtlcyBhdCBtb3N0IDMgYXJndW1lbnRzIFwoNCBnaXZlblwpIik6CisgICAgICAgICAgICBnZXRhcmdzX2tleXdvcmRfb25seSgxLCAyLCAzLCBrZXl3b3JkX29ubHk9NSkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfa2V5d29yZChzZWxmKToKKyAgICAgICAgIyBleHRyYW5lb3VzIGtleXdvcmQgYXJnCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsCisgICAgICAgICAgICAiJ21vbnN0ZXInIGlzIGFuIGludmFsaWQga2V5d29yZCBhcmd1bWVudCBmb3IgdGhpcyBmdW5jdGlvbiIpOgorICAgICAgICAgICAgZ2V0YXJnc19rZXl3b3JkX29ubHkoMSwgMiwgbW9uc3Rlcj02NjYpCisKKyAgICBkZWYgdGVzdF9zdXJyb2dhdGVfa2V5d29yZChzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICInXHVkYzgwJyBpcyBhbiBpbnZhbGlkIGtleXdvcmQgYXJndW1lbnQgZm9yIHRoaXMgZnVuY3Rpb24iKToKKyAgICAgICAgICAgIGdldGFyZ3Nfa2V5d29yZF9vbmx5KDEsIDIsICoqeydcdURDODAnOiAxMH0pCisKIGNsYXNzIEJ5dGVzX1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9jKHNlbGYpOgorICAgICAgICBmcm9tIF90ZXN0Y2FwaSBpbXBvcnQgZ2V0YXJnc19jCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZ2V0YXJnc19jLCBiJ2FiYycpICAjIGxlbiA+IDEKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRhcmdzX2MoYidhJyksIGInYScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0YXJnc19jKGJ5dGVhcnJheShiJ2EnKSksIGInYScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZ2V0YXJnc19jLCBtZW1vcnl2aWV3KGInYScpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGdldGFyZ3NfYywgJ3MnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGdldGFyZ3NfYywgTm9uZSkKKwogICAgIGRlZiB0ZXN0X3Moc2VsZik6CiAgICAgICAgIGZyb20gX3Rlc3RjYXBpIGltcG9ydCBnZXRhcmdzX3MKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRhcmdzX3MoJ2FiY1x4ZTknKSwgYidhYmNceGMzXHhhOScpCkBAIC00MzAsOCArNTQwLDEwIEBACiAgICAgdGVzdHMgPSBbCiAgICAgICAgIFNpZ25lZF9UZXN0Q2FzZSwKICAgICAgICAgVW5zaWduZWRfVGVzdENhc2UsCisgICAgICAgIEJvb2xlYW5fVGVzdENhc2UsCiAgICAgICAgIFR1cGxlX1Rlc3RDYXNlLAogICAgICAgICBLZXl3b3Jkc19UZXN0Q2FzZSwKKyAgICAgICAgS2V5d29yZE9ubHlfVGVzdENhc2UsCiAgICAgICAgIEJ5dGVzX1Rlc3RDYXNlLAogICAgICAgICBVbmljb2RlX1Rlc3RDYXNlLAogICAgIF0KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfZ2xvYi5weSBiL0xpYi90ZXN0L3Rlc3RfZ2xvYi5weQppbmRleCAxNTYwYTZiLi42ZWUwOGRiIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2dsb2IucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9nbG9iLnB5CkBAIC0xLDUgKzEsNiBAQAogaW1wb3J0IHVuaXR0ZXN0Ci1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0LCBURVNURk4sIHNraXBfdW5sZXNzX3N5bWxpbmssIGNhbl9zeW1saW5rCitmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgKHJ1bl91bml0dGVzdCwgVEVTVEZOLCBza2lwX3VubGVzc19zeW1saW5rLAorICAgIGNhbl9zeW1saW5rLCBjcmVhdGVfZW1wdHlfZmlsZSkKIGltcG9ydCBnbG9iCiBpbXBvcnQgb3MKIGltcG9ydCBzaHV0aWwKQEAgLTE0LDggKzE1LDcgQEAKICAgICAgICAgYmFzZSwgZmlsZSA9IG9zLnBhdGguc3BsaXQoZmlsZW5hbWUpCiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhiYXNlKToKICAgICAgICAgICAgIG9zLm1ha2VkaXJzKGJhc2UpCi0gICAgICAgIGYgPSBvcGVuKGZpbGVuYW1lLCAndycpCi0gICAgICAgIGYuY2xvc2UoKQorICAgICAgICBjcmVhdGVfZW1wdHlfZmlsZShmaWxlbmFtZSkKIAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi50ZW1wZGlyID0gVEVTVEZOKyJfZGlyIgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9ncmFtbWFyLnB5IGIvTGliL3Rlc3QvdGVzdF9ncmFtbWFyLnB5CmluZGV4IDI2OGE2MzMuLjZiMzI2YmQgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZ3JhbW1hci5weQorKysgYi9MaWIvdGVzdC90ZXN0X2dyYW1tYXIucHkKQEAgLTEwLDcgKzEwLDcgQEAKIAogY2xhc3MgVG9rZW5UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKLSAgICBkZWYgdGVzdEJhY2tzbGFzaChzZWxmKToKKyAgICBkZWYgdGVzdF9iYWNrc2xhc2goc2VsZik6CiAgICAgICAgICMgQmFja3NsYXNoIG1lYW5zIGxpbmUgY29udGludWF0aW9uOgogICAgICAgICB4ID0gMSBcCiAgICAgICAgICsgMQpAQCAtMjAsNyArMjAsNyBAQAogICAgICAgICB4ID0gMAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIDAsICdiYWNrc2xhc2ggZW5kaW5nIGNvbW1lbnQnKQogCi0gICAgZGVmIHRlc3RQbGFpbkludGVnZXJzKHNlbGYpOgorICAgIGRlZiB0ZXN0X3BsYWluX2ludGVnZXJzKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoMDAwKSwgdHlwZSgwKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgweGZmLCAyNTUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMG8zNzcsIDI1NSkKQEAgLTU2LDcgKzU2LDcgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuZmFpbCgnV2VpcmQgbWF4c2l6ZSB2YWx1ZSAlcicgJSBtYXhzaXplKQogCi0gICAgZGVmIHRlc3RMb25nSW50ZWdlcnMoc2VsZik6CisgICAgZGVmIHRlc3RfbG9uZ19pbnRlZ2VycyhzZWxmKToKICAgICAgICAgeCA9IDAKICAgICAgICAgeCA9IDB4ZmZmZmZmZmZmZmZmZmZmZgogICAgICAgICB4ID0gMFhmZmZmZmZmZmZmZmZmZmZmCkBAIC02Niw3ICs2Niw3IEBACiAgICAgICAgIHggPSAwYjEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgICAgICB4ID0gMEIxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEKIAotICAgIGRlZiB0ZXN0RmxvYXRzKHNlbGYpOgorICAgIGRlZiB0ZXN0X2Zsb2F0cyhzZWxmKToKICAgICAgICAgeCA9IDMuMTQKICAgICAgICAgeCA9IDMxNC4KICAgICAgICAgeCA9IDAuMzE0CkBAIC04MCw3ICs4MCw3IEBACiAgICAgICAgIHggPSAuM2UxNAogICAgICAgICB4ID0gMy4xZTQKIAotICAgIGRlZiB0ZXN0U3RyaW5nTGl0ZXJhbHMoc2VsZik6CisgICAgZGVmIHRlc3Rfc3RyaW5nX2xpdGVyYWxzKHNlbGYpOgogICAgICAgICB4ID0gJyc7IHkgPSAiIjsgc2VsZi5hc3NlcnRUcnVlKGxlbih4KSA9PSAwIGFuZCB4ID09IHkpCiAgICAgICAgIHggPSAnXCcnOyB5ID0gIiciOyBzZWxmLmFzc2VydFRydWUobGVuKHgpID09IDEgYW5kIHggPT0geSBhbmQgb3JkKHgpID09IDM5KQogICAgICAgICB4ID0gJyInOyB5ID0gIlwiIjsgc2VsZi5hc3NlcnRUcnVlKGxlbih4KSA9PSAxIGFuZCB4ID09IHkgYW5kIG9yZCh4KSA9PSAzNCkKQEAgLTEyMCwxMSArMTIwLDE4IEBACiAnCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeCwgeSkKIAotICAgIGRlZiB0ZXN0RWxsaXBzaXMoc2VsZik6CisgICAgZGVmIHRlc3RfZWxsaXBzaXMoc2VsZik6CiAgICAgICAgIHggPSAuLi4KICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHggaXMgRWxsaXBzaXMpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN5bnRheEVycm9yLCBldmFsLCAiLi4gLiIpCiAKKyAgICBkZWYgdGVzdF9lb2ZfZXJyb3Ioc2VsZik6CisgICAgICAgIHNhbXBsZXMgPSAoImRlZiBmb28oIiwgIlxuZGVmIGZvbygiLCAiZGVmIGZvbyhcbiIpCisgICAgICAgIGZvciBzIGluIHNhbXBsZXM6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFN5bnRheEVycm9yKSBhcyBjbToKKyAgICAgICAgICAgICAgICBjb21waWxlKHMsICI8dGVzdD4iLCAiZXhlYyIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJ1bmV4cGVjdGVkIEVPRiIsIHN0cihjbS5leGNlcHRpb24pKQorCiBjbGFzcyBHcmFtbWFyVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgIyBzaW5nbGVfaW5wdXQ6IE5FV0xJTkUgfCBzaW1wbGVfc3RtdCB8IGNvbXBvdW5kX3N0bXQgTkVXTElORQpAQCAtMTM2LDExICsxNDMsMTEgQEAKICAgICAjIGV4cHJfaW5wdXQ6IHRlc3RsaXN0IE5FV0xJTkUKICAgICAjIFhYWCBIYXJkIHRvIHRlc3QgLS0gdXNlZCBvbmx5IGluIGNhbGxzIHRvIGlucHV0KCkKIAotICAgIGRlZiB0ZXN0RXZhbElucHV0KHNlbGYpOgorICAgIGRlZiB0ZXN0X2V2YWxfaW5wdXQoc2VsZik6CiAgICAgICAgICMgdGVzdGxpc3QgRU5ETUFSS0VSCiAgICAgICAgIHggPSBldmFsKCcxLCAwIG9yIDEnKQogCi0gICAgZGVmIHRlc3RGdW5jZGVmKHNlbGYpOgorICAgIGRlZiB0ZXN0X2Z1bmNkZWYoc2VsZik6CiAgICAgICAgICMjIyBbZGVjb3JhdG9yc10gJ2RlZicgTkFNRSBwYXJhbWV0ZXJzIFsnLT4nIHRlc3RdICc6JyBzdWl0ZQogICAgICAgICAjIyMgZGVjb3JhdG9yOiAnQCcgZG90dGVkX25hbWUgWyAnKCcgW2FyZ2xpc3RdICcpJyBdIE5FV0xJTkUKICAgICAgICAgIyMjIGRlY29yYXRvcnM6IGRlY29yYXRvcisKQEAgLTMyNCw3ICszMzEsNyBAQAogICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImYoKmcoMT0yKSkiKQogICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImYoKipnKDE9MikpIikKIAotICAgIGRlZiB0ZXN0TGFtYmRlZihzZWxmKToKKyAgICBkZWYgdGVzdF9sYW1iZGVmKHNlbGYpOgogICAgICAgICAjIyMgbGFtYmRlZjogJ2xhbWJkYScgW3ZhcmFyZ3NsaXN0XSAnOicgdGVzdAogICAgICAgICBsMSA9IGxhbWJkYSA6IDAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsMSgpLCAwKQpAQCAtMzQ2LDcgKzM1Myw3IEBACiAgICAgIyMjIHN0bXQ6IHNpbXBsZV9zdG10IHwgY29tcG91bmRfc3RtdAogICAgICMgVGVzdGVkIGJlbG93CiAKLSAgICBkZWYgdGVzdFNpbXBsZVN0bXQoc2VsZik6CisgICAgZGVmIHRlc3Rfc2ltcGxlX3N0bXQoc2VsZik6CiAgICAgICAgICMjIyBzaW1wbGVfc3RtdDogc21hbGxfc3RtdCAoJzsnIHNtYWxsX3N0bXQpKiBbJzsnXQogICAgICAgICB4ID0gMTsgcGFzczsgZGVsIHgKICAgICAgICAgZGVmIGZvbygpOgpAQCAtMzU3LDcgKzM2NCw3IEBACiAgICAgIyMjIHNtYWxsX3N0bXQ6IGV4cHJfc3RtdCB8IHBhc3Nfc3RtdCB8IGRlbF9zdG10IHwgZmxvd19zdG10IHwgaW1wb3J0X3N0bXQgfCBnbG9iYWxfc3RtdCB8IGFjY2Vzc19zdG10CiAgICAgIyBUZXN0ZWQgYmVsb3cKIAotICAgIGRlZiB0ZXN0RXhwclN0bXQoc2VsZik6CisgICAgZGVmIHRlc3RfZXhwcl9zdG10KHNlbGYpOgogICAgICAgICAjIChleHBybGlzdCAnPScpKiBleHBybGlzdAogICAgICAgICAxCiAgICAgICAgIDEsIDIsIDMKQEAgLTM3MCw3ICszNzcsNyBAQAogICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgInggKyAxID0gMSIpCiAgICAgICAgIGNoZWNrX3N5bnRheF9lcnJvcihzZWxmLCAiYSArIDEgPSBiICsgMiIpCiAKLSAgICBkZWYgdGVzdERlbFN0bXQoc2VsZik6CisgICAgZGVmIHRlc3RfZGVsX3N0bXQoc2VsZik6CiAgICAgICAgICMgJ2RlbCcgZXhwcmxpc3QKICAgICAgICAgYWJjID0gWzEsMiwzXQogICAgICAgICB4LCB5LCB6ID0gYWJjCkBAIC0zNzksMTggKzM4NiwxOCBAQAogICAgICAgICBkZWwgYWJjCiAgICAgICAgIGRlbCB4LCB5LCAoeiwgeHl6KQogCi0gICAgZGVmIHRlc3RQYXNzU3RtdChzZWxmKToKKyAgICBkZWYgdGVzdF9wYXNzX3N0bXQoc2VsZik6CiAgICAgICAgICMgJ3Bhc3MnCiAgICAgICAgIHBhc3MKIAogICAgICMgZmxvd19zdG10OiBicmVha19zdG10IHwgY29udGludWVfc3RtdCB8IHJldHVybl9zdG10IHwgcmFpc2Vfc3RtdAogICAgICMgVGVzdGVkIGJlbG93CiAKLSAgICBkZWYgdGVzdEJyZWFrU3RtdChzZWxmKToKKyAgICBkZWYgdGVzdF9icmVha19zdG10KHNlbGYpOgogICAgICAgICAjICdicmVhaycKICAgICAgICAgd2hpbGUgMTogYnJlYWsKIAotICAgIGRlZiB0ZXN0Q29udGludWVTdG10KHNlbGYpOgorICAgIGRlZiB0ZXN0X2NvbnRpbnVlX3N0bXQoc2VsZik6CiAgICAgICAgICMgJ2NvbnRpbnVlJwogICAgICAgICBpID0gMQogICAgICAgICB3aGlsZSBpOiBpID0gMDsgY29udGludWUKQEAgLTQ0Miw3ICs0NDksNyBAQAogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiY29udGludWUgdGhlbiBicmVhayBpbiB0cnkvZXhjZXB0IGluIGxvb3AgYnJva2VuISIpCiAgICAgICAgIHRlc3RfaW5uZXIoKQogCi0gICAgZGVmIHRlc3RSZXR1cm4oc2VsZik6CisgICAgZGVmIHRlc3RfcmV0dXJuKHNlbGYpOgogICAgICAgICAjICdyZXR1cm4nIFt0ZXN0bGlzdF0KICAgICAgICAgZGVmIGcxKCk6IHJldHVybgogICAgICAgICBkZWYgZzIoKTogcmV0dXJuIDEKQEAgLTQ1MCwxNyArNDU3LDQ5IEBACiAgICAgICAgIHggPSBnMigpCiAgICAgICAgIGNoZWNrX3N5bnRheF9lcnJvcihzZWxmLCAiY2xhc3MgZm9vOnJldHVybiAxIikKIAotICAgIGRlZiB0ZXN0WWllbGQoc2VsZik6CisgICAgZGVmIHRlc3RfeWllbGQoc2VsZik6CisgICAgICAgICMgQWxsb3dlZCBhcyBzdGFuZGFsb25lIHN0YXRlbWVudAorICAgICAgICBkZWYgZygpOiB5aWVsZCAxCisgICAgICAgIGRlZiBnKCk6IHlpZWxkIGZyb20gKCkKKyAgICAgICAgIyBBbGxvd2VkIGFzIFJIUyBvZiBhc3NpZ25tZW50CisgICAgICAgIGRlZiBnKCk6IHggPSB5aWVsZCAxCisgICAgICAgIGRlZiBnKCk6IHggPSB5aWVsZCBmcm9tICgpCisgICAgICAgICMgT3JkaW5hcnkgeWllbGQgYWNjZXB0cyBpbXBsaWNpdCB0dXBsZXMKKyAgICAgICAgZGVmIGcoKTogeWllbGQgMSwgMQorICAgICAgICBkZWYgZygpOiB4ID0geWllbGQgMSwgMQorICAgICAgICAjICd5aWVsZCBmcm9tJyBkb2VzIG5vdAorICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImRlZiBnKCk6IHlpZWxkIGZyb20gKCksIDEiKQorICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImRlZiBnKCk6IHggPSB5aWVsZCBmcm9tICgpLCAxIikKKyAgICAgICAgIyBSZXF1aXJlcyBwYXJlbnRoZXNlcyBhcyBzdWJleHByZXNzaW9uCisgICAgICAgIGRlZiBnKCk6IDEsICh5aWVsZCAxKQorICAgICAgICBkZWYgZygpOiAxLCAoeWllbGQgZnJvbSAoKSkKKyAgICAgICAgY2hlY2tfc3ludGF4X2Vycm9yKHNlbGYsICJkZWYgZygpOiAxLCB5aWVsZCAxIikKKyAgICAgICAgY2hlY2tfc3ludGF4X2Vycm9yKHNlbGYsICJkZWYgZygpOiAxLCB5aWVsZCBmcm9tICgpIikKKyAgICAgICAgIyBSZXF1aXJlcyBwYXJlbnRoZXNlcyBhcyBjYWxsIGFyZ3VtZW50CisgICAgICAgIGRlZiBnKCk6IGYoKHlpZWxkIDEpKQorICAgICAgICBkZWYgZygpOiBmKCh5aWVsZCAxKSwgMSkKKyAgICAgICAgZGVmIGcoKTogZigoeWllbGQgZnJvbSAoKSkpCisgICAgICAgIGRlZiBnKCk6IGYoKHlpZWxkIGZyb20gKCkpLCAxKQorICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImRlZiBnKCk6IGYoeWllbGQgMSkiKQorICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImRlZiBnKCk6IGYoeWllbGQgMSwgMSkiKQorICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImRlZiBnKCk6IGYoeWllbGQgZnJvbSAoKSkiKQorICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImRlZiBnKCk6IGYoeWllbGQgZnJvbSAoKSwgMSkiKQorICAgICAgICAjIE5vdCBhbGxvd2VkIGF0IHRvcCBsZXZlbAorICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgInlpZWxkIikKKyAgICAgICAgY2hlY2tfc3ludGF4X2Vycm9yKHNlbGYsICJ5aWVsZCBmcm9tIikKKyAgICAgICAgIyBOb3QgYWxsb3dlZCBhdCBjbGFzcyBzY29wZQogICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImNsYXNzIGZvbzp5aWVsZCAxIikKKyAgICAgICAgY2hlY2tfc3ludGF4X2Vycm9yKHNlbGYsICJjbGFzcyBmb286eWllbGQgZnJvbSAoKSIpCiAKLSAgICBkZWYgdGVzdFJhaXNlKHNlbGYpOgorCisgICAgZGVmIHRlc3RfcmFpc2Uoc2VsZik6CiAgICAgICAgICMgJ3JhaXNlJyB0ZXN0IFsnLCcgdGVzdF0KICAgICAgICAgdHJ5OiByYWlzZSBSdW50aW1lRXJyb3IoJ2p1c3QgdGVzdGluZycpCiAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6IHBhc3MKICAgICAgICAgdHJ5OiByYWlzZSBLZXlib2FyZEludGVycnVwdAogICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6IHBhc3MKIAotICAgIGRlZiB0ZXN0SW1wb3J0KHNlbGYpOgorICAgIGRlZiB0ZXN0X2ltcG9ydChzZWxmKToKICAgICAgICAgIyAnaW1wb3J0JyBkb3R0ZWRfYXNfbmFtZXMKICAgICAgICAgaW1wb3J0IHN5cwogICAgICAgICBpbXBvcnQgdGltZSwgc3lzCkBAIC00NzMsMTMgKzUxMiwxMyBAQAogICAgICAgICBmcm9tIHN5cyBpbXBvcnQgKHBhdGgsIGFyZ3YpCiAgICAgICAgIGZyb20gc3lzIGltcG9ydCAocGF0aCwgYXJndiwpCiAKLSAgICBkZWYgdGVzdEdsb2JhbChzZWxmKToKKyAgICBkZWYgdGVzdF9nbG9iYWwoc2VsZik6CiAgICAgICAgICMgJ2dsb2JhbCcgTkFNRSAoJywnIE5BTUUpKgogICAgICAgICBnbG9iYWwgYQogICAgICAgICBnbG9iYWwgYSwgYgogICAgICAgICBnbG9iYWwgb25lLCB0d28sIHRocmVlLCBmb3VyLCBmaXZlLCBzaXgsIHNldmVuLCBlaWdodCwgbmluZSwgdGVuCiAKLSAgICBkZWYgdGVzdE5vbmxvY2FsKHNlbGYpOgorICAgIGRlZiB0ZXN0X25vbmxvY2FsKHNlbGYpOgogICAgICAgICAjICdub25sb2NhbCcgTkFNRSAoJywnIE5BTUUpKgogICAgICAgICB4ID0gMAogICAgICAgICB5ID0gMApAQCAtNDg3LDcgKzUyNiw3IEBACiAgICAgICAgICAgICBub25sb2NhbCB4CiAgICAgICAgICAgICBub25sb2NhbCB4LCB5CiAKLSAgICBkZWYgdGVzdEFzc2VydChzZWxmKToKKyAgICBkZWYgdGVzdF9hc3NlcnQoc2VsZik6CiAgICAgICAgICMgYXNzZXJ0VHJ1ZXN0bXQ6ICdhc3NlcnQnIHRlc3QgWycsJyB0ZXN0XQogICAgICAgICBhc3NlcnQgMQogICAgICAgICBhc3NlcnQgMSwgMQpAQCAtNTI2LDcgKzU2NSw3IEBACiAgICAgIyMjIGNvbXBvdW5kX3N0bXQ6IGlmX3N0bXQgfCB3aGlsZV9zdG10IHwgZm9yX3N0bXQgfCB0cnlfc3RtdCB8IGZ1bmNkZWYgfCBjbGFzc2RlZgogICAgICMgVGVzdGVkIGJlbG93CiAKLSAgICBkZWYgdGVzdElmKHNlbGYpOgorICAgIGRlZiB0ZXN0X2lmKHNlbGYpOgogICAgICAgICAjICdpZicgdGVzdCAnOicgc3VpdGUgKCdlbGlmJyB0ZXN0ICc6JyBzdWl0ZSkqIFsnZWxzZScgJzonIHN1aXRlXQogICAgICAgICBpZiAxOiBwYXNzCiAgICAgICAgIGlmIDE6IHBhc3MKQEAgLTUzOSw3ICs1NzgsNyBAQAogICAgICAgICBlbGlmIDA6IHBhc3MKICAgICAgICAgZWxzZTogcGFzcwogCi0gICAgZGVmIHRlc3RXaGlsZShzZWxmKToKKyAgICBkZWYgdGVzdF93aGlsZShzZWxmKToKICAgICAgICAgIyAnd2hpbGUnIHRlc3QgJzonIHN1aXRlIFsnZWxzZScgJzonIHN1aXRlXQogICAgICAgICB3aGlsZSAwOiBwYXNzCiAgICAgICAgIHdoaWxlIDA6IHBhc3MKQEAgLTU1NCw3ICs1OTMsNyBAQAogICAgICAgICAgICAgeCA9IDIKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCAyKQogCi0gICAgZGVmIHRlc3RGb3Ioc2VsZik6CisgICAgZGVmIHRlc3RfZm9yKHNlbGYpOgogICAgICAgICAjICdmb3InIGV4cHJsaXN0ICdpbicgZXhwcmxpc3QgJzonIHN1aXRlIFsnZWxzZScgJzonIHN1aXRlXQogICAgICAgICBmb3IgaSBpbiAxLCAyLCAzOiBwYXNzCiAgICAgICAgIGZvciBpLCBqLCBrIGluICgpOiBwYXNzCkBAIC01ODEsNyArNjIwLDcgQEAKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoeCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQsIFsxLCAyLCAzXSkKIAotICAgIGRlZiB0ZXN0VHJ5KHNlbGYpOgorICAgIGRlZiB0ZXN0X3RyeShzZWxmKToKICAgICAgICAgIyMjIHRyeV9zdG10OiAndHJ5JyAnOicgc3VpdGUgKGV4Y2VwdF9jbGF1c2UgJzonIHN1aXRlKSsgWydlbHNlJyAnOicgc3VpdGVdCiAgICAgICAgICMjIyAgICAgICAgIHwgJ3RyeScgJzonIHN1aXRlICdmaW5hbGx5JyAnOicgc3VpdGUKICAgICAgICAgIyMjIGV4Y2VwdF9jbGF1c2U6ICdleGNlcHQnIFtleHByIFsnYXMnIGV4cHJdXQpAQCAtNjA0LDcgKzY0Myw3IEBACiAgICAgICAgIHRyeTogcGFzcwogICAgICAgICBmaW5hbGx5OiBwYXNzCiAKLSAgICBkZWYgdGVzdFN1aXRlKHNlbGYpOgorICAgIGRlZiB0ZXN0X3N1aXRlKHNlbGYpOgogICAgICAgICAjIHNpbXBsZV9zdG10IHwgTkVXTElORSBJTkRFTlQgTkVXTElORSogKHN0bXQgTkVXTElORSopKyBERURFTlQKICAgICAgICAgaWYgMTogcGFzcwogICAgICAgICBpZiAxOgpAQCAtNjE5LDcgKzY1OCw3IEBACiAgICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICAjCiAKLSAgICBkZWYgdGVzdFRlc3Qoc2VsZik6CisgICAgZGVmIHRlc3RfdGVzdChzZWxmKToKICAgICAgICAgIyMjIGFuZF90ZXN0ICgnb3InIGFuZF90ZXN0KSoKICAgICAgICAgIyMjIGFuZF90ZXN0OiBub3RfdGVzdCAoJ2FuZCcgbm90X3Rlc3QpKgogICAgICAgICAjIyMgbm90X3Rlc3Q6ICdub3QnIG5vdF90ZXN0IHwgY29tcGFyaXNvbgpAQCAtNjMwLDcgKzY2OSw3IEBACiAgICAgICAgIGlmIG5vdCAxIGFuZCAxIGFuZCAxOiBwYXNzCiAgICAgICAgIGlmIDEgYW5kIDEgb3IgMSBhbmQgMSBhbmQgMSBvciBub3QgMSBhbmQgMTogcGFzcwogCi0gICAgZGVmIHRlc3RDb21wYXJpc29uKHNlbGYpOgorICAgIGRlZiB0ZXN0X2NvbXBhcmlzb24oc2VsZik6CiAgICAgICAgICMjIyBjb21wYXJpc29uOiBleHByIChjb21wX29wIGV4cHIpKgogICAgICAgICAjIyMgY29tcF9vcDogJzwnfCc+J3wnPT0nfCc+PSd8Jzw9J3wnIT0nfCdpbid8J25vdCcgJ2luJ3wnaXMnfCdpcycgJ25vdCcKICAgICAgICAgaWYgMTogcGFzcwpAQCAtNjQ3LDM2ICs2ODYsMzYgQEAKICAgICAgICAgaWYgMSBub3QgaW4gKCk6IHBhc3MKICAgICAgICAgaWYgMSA8IDEgPiAxID09IDEgPj0gMSA8PSAxICE9IDEgaW4gMSBub3QgaW4gMSBpcyAxIGlzIG5vdCAxOiBwYXNzCiAKLSAgICBkZWYgdGVzdEJpbmFyeU1hc2tPcHMoc2VsZik6CisgICAgZGVmIHRlc3RfYmluYXJ5X21hc2tfb3BzKHNlbGYpOgogICAgICAgICB4ID0gMSAmIDEKICAgICAgICAgeCA9IDEgXiAxCiAgICAgICAgIHggPSAxIHwgMQogCi0gICAgZGVmIHRlc3RTaGlmdE9wcyhzZWxmKToKKyAgICBkZWYgdGVzdF9zaGlmdF9vcHMoc2VsZik6CiAgICAgICAgIHggPSAxIDw8IDEKICAgICAgICAgeCA9IDEgPj4gMQogICAgICAgICB4ID0gMSA8PCAxID4+IDEKIAotICAgIGRlZiB0ZXN0QWRkaXRpdmVPcHMoc2VsZik6CisgICAgZGVmIHRlc3RfYWRkaXRpdmVfb3BzKHNlbGYpOgogICAgICAgICB4ID0gMQogICAgICAgICB4ID0gMSArIDEKICAgICAgICAgeCA9IDEgLSAxIC0gMQogICAgICAgICB4ID0gMSAtIDEgKyAxIC0gMSArIDEKIAotICAgIGRlZiB0ZXN0TXVsdGlwbGljYXRpdmVPcHMoc2VsZik6CisgICAgZGVmIHRlc3RfbXVsdGlwbGljYXRpdmVfb3BzKHNlbGYpOgogICAgICAgICB4ID0gMSAqIDEKICAgICAgICAgeCA9IDEgLyAxCiAgICAgICAgIHggPSAxICUgMQogICAgICAgICB4ID0gMSAvIDEgKiAxICUgMQogCi0gICAgZGVmIHRlc3RVbmFyeU9wcyhzZWxmKToKKyAgICBkZWYgdGVzdF91bmFyeV9vcHMoc2VsZik6CiAgICAgICAgIHggPSArMQogICAgICAgICB4ID0gLTEKICAgICAgICAgeCA9IH4xCiAgICAgICAgIHggPSB+MSBeIDEgJiAxIHwgMSAmIDEgXiAtMQogICAgICAgICB4ID0gLTEqMS8xICsgMSoxIC0gLS0tMSoxCiAKLSAgICBkZWYgdGVzdFNlbGVjdG9ycyhzZWxmKToKKyAgICBkZWYgdGVzdF9zZWxlY3RvcnMoc2VsZik6CiAgICAgICAgICMjIyB0cmFpbGVyOiAnKCcgW3Rlc3RsaXN0XSAnKScgfCAnWycgc3Vic2NyaXB0ICddJyB8ICcuJyBOQU1FCiAgICAgICAgICMjIyBzdWJzY3JpcHQ6IGV4cHIgfCBbZXhwcl0gJzonIFtleHByXQogCkBAIC03MDYsNyArNzQ1LDcgQEAKICAgICAgICAgTC5zb3J0KGtleT1sYW1iZGEgeDogeCBpZiBpc2luc3RhbmNlKHgsIHR1cGxlKSBlbHNlICgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihMKSwgJ1sxLCAoMSwpLCAoMSwgMiksICgxLCAyLCAzKV0nKQogCi0gICAgZGVmIHRlc3RBdG9tcyhzZWxmKToKKyAgICBkZWYgdGVzdF9hdG9tcyhzZWxmKToKICAgICAgICAgIyMjIGF0b206ICcoJyBbdGVzdGxpc3RdICcpJyB8ICdbJyBbdGVzdGxpc3RdICddJyB8ICd7JyBbZGljdHNldG1ha2VyXSAnfScgfCBOQU1FIHwgTlVNQkVSIHwgU1RSSU5HCiAgICAgICAgICMjIyBkaWN0c2V0bWFrZXI6ICh0ZXN0ICc6JyB0ZXN0ICgnLCcgdGVzdCAnOicgdGVzdCkqIFsnLCddKSB8ICh0ZXN0ICgnLCcgdGVzdCkqIFsnLCddKQogCkBAIC03NDEsNyArNzgwLDcgQEAKICAgICAjIyMgdGVzdGxpc3Q6IHRlc3QgKCcsJyB0ZXN0KSogWycsJ10KICAgICAjIFRoZXNlIGhhdmUgYmVlbiBleGVyY2lzZWQgZW5vdWdoIGFib3ZlCiAKLSAgICBkZWYgdGVzdENsYXNzZGVmKHNlbGYpOgorICAgIGRlZiB0ZXN0X2NsYXNzZGVmKHNlbGYpOgogICAgICAgICAjICdjbGFzcycgTkFNRSBbJygnIFt0ZXN0bGlzdF0gJyknXSAnOicgc3VpdGUKICAgICAgICAgY2xhc3MgQjogcGFzcwogICAgICAgICBjbGFzcyBCMigpOiBwYXNzCkBAIC03NjAsMTQgKzc5OSwxNCBAQAogICAgICAgICBAY2xhc3NfZGVjb3JhdG9yCiAgICAgICAgIGNsYXNzIEc6IHBhc3MKIAotICAgIGRlZiB0ZXN0RGljdGNvbXBzKHNlbGYpOgorICAgIGRlZiB0ZXN0X2RpY3Rjb21wcyhzZWxmKToKICAgICAgICAgIyBkaWN0b3JzZXRtYWtlcjogKCAodGVzdCAnOicgdGVzdCAoY29tcF9mb3IgfAogICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJywnIHRlc3QgJzonIHRlc3QpKiBbJywnXSkpIHwKICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAodGVzdCAoY29tcF9mb3IgfCAoJywnIHRlc3QpKiBbJywnXSkpICkKICAgICAgICAgbnVtcyA9IFsxLCAyLCAzXQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHtpOmkrMSBmb3IgaSBpbiBudW1zfSwgezE6IDIsIDI6IDMsIDM6IDR9KQogCi0gICAgZGVmIHRlc3RMaXN0Y29tcHMoc2VsZik6CisgICAgZGVmIHRlc3RfbGlzdGNvbXBzKHNlbGYpOgogICAgICAgICAjIGxpc3QgY29tcHJlaGVuc2lvbiB0ZXN0cwogICAgICAgICBudW1zID0gWzEsIDIsIDMsIDQsIDVdCiAgICAgICAgIHN0cnMgPSBbIkFwcGxlIiwgIkJhbmFuYSIsICJDb2NvbnV0Il0KQEAgLTgzMCw3ICs4NjksNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHgsIFsoJ0JvZWluZycsICdBaXJsaW5lcicpLCAoJ0JvZWluZycsICdFbmdpbmUnKSwgKCdGb3JkJywgJ0VuZ2luZScpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ01hY2RvbmFsZHMnLCAnQ2hlZXNlYnVyZ2VyJyldKQogCi0gICAgZGVmIHRlc3RHZW5leHBzKHNlbGYpOgorICAgIGRlZiB0ZXN0X2dlbmV4cHMoc2VsZik6CiAgICAgICAgICMgZ2VuZXJhdG9yIGV4cHJlc3Npb24gdGVzdHMKICAgICAgICAgZyA9IChbeCBmb3IgeCBpbiByYW5nZSgxMCldIGZvciB4IGluIHJhbmdlKDEpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5leHQoZyksIFt4IGZvciB4IGluIHJhbmdlKDEwKV0pCkBAIC04NjUsNyArOTA0LDcgQEAKICAgICAgICAgY2hlY2tfc3ludGF4X2Vycm9yKHNlbGYsICJmb28oeCBmb3IgeCBpbiByYW5nZSgxMCksIDEwMCkiKQogICAgICAgICBjaGVja19zeW50YXhfZXJyb3Ioc2VsZiwgImZvbygxMDAsIHggZm9yIHggaW4gcmFuZ2UoMTApKSIpCiAKLSAgICBkZWYgdGVzdENvbXByZWhlbnNpb25TcGVjaWFscyhzZWxmKToKKyAgICBkZWYgdGVzdF9jb21wcmVoZW5zaW9uX3NwZWNpYWxzKHNlbGYpOgogICAgICAgICAjIHRlc3QgZm9yIG91dG1vc3QgaXRlcmFibGUgcHJlY29tcHV0YXRpb24KICAgICAgICAgeCA9IDEwOyBnID0gKGkgZm9yIGkgaW4gcmFuZ2UoeCkpOyB4ID0gNQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsaXN0KGcpKSwgMTApCkBAIC05MDQsNyArOTQzLDcgQEAKICAgICAgICAgd2l0aCBtYW5hZ2VyKCkgYXMgeCwgbWFuYWdlcigpOgogICAgICAgICAgICAgcGFzcwogCi0gICAgZGVmIHRlc3RJZkVsc2VFeHByKHNlbGYpOgorICAgIGRlZiB0ZXN0X2lmX2Vsc2VfZXhwcihzZWxmKToKICAgICAgICAgIyBUZXN0IGlmZWxzZSBleHByZXNzaW9ucyBpbiB2YXJpb3VzIGNhc2VzCiAgICAgICAgIGRlZiBfY2hlY2tldmFsKG1zZywgcmV0KToKICAgICAgICAgICAgICJoZWxwZXIgdG8gY2hlY2sgdGhhdCBldmFsdWF0aW9uIG9mIGV4cHJlc3Npb25zIGlzIGRvbmUgY29ycmVjdGx5IgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9nemlwLnB5IGIvTGliL3Rlc3QvdGVzdF9nemlwLnB5CmluZGV4IGNlZDIyNmYuLmFmNzM5NTMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfZ3ppcC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2d6aXAucHkKQEAgLTMzLDcgKzMzLDcgQEAKICAgICAgICAgcmFpc2UgaW8uVW5zdXBwb3J0ZWRPcGVyYXRpb24KIAogCi1jbGFzcyBUZXN0R3ppcCh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBCYXNlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZmlsZW5hbWUgPSBzdXBwb3J0LlRFU1RGTgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgpAQCAtNDMsNiArNDMsNyBAQAogICAgICAgICBzdXBwb3J0LnVubGluayhzZWxmLmZpbGVuYW1lKQogCiAKK2NsYXNzIFRlc3RHemlwKEJhc2VUZXN0KToKICAgICBkZWYgdGVzdF93cml0ZShzZWxmKToKICAgICAgICAgd2l0aCBnemlwLkd6aXBGaWxlKHNlbGYuZmlsZW5hbWUsICd3YicpIGFzIGY6CiAgICAgICAgICAgICBmLndyaXRlKGRhdGExICogNTApCkBAIC02NCw2ICs2NSwyMSBAQAogICAgICAgICAgICAgZCA9IGYucmVhZCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZCwgZGF0YTEqNTApCiAKKyAgICBkZWYgdGVzdF9yZWFkMShzZWxmKToKKyAgICAgICAgc2VsZi50ZXN0X3dyaXRlKCkKKyAgICAgICAgYmxvY2tzID0gW10KKyAgICAgICAgbnJlYWQgPSAwCisgICAgICAgIHdpdGggZ3ppcC5HemlwRmlsZShzZWxmLmZpbGVuYW1lLCAncicpIGFzIGY6CisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIGQgPSBmLnJlYWQxKCkKKyAgICAgICAgICAgICAgICBpZiBub3QgZDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBibG9ja3MuYXBwZW5kKGQpCisgICAgICAgICAgICAgICAgbnJlYWQgKz0gbGVuKGQpCisgICAgICAgICAgICAgICAgIyBDaGVjayB0aGF0IHBvc2l0aW9uIHdhcyB1cGRhdGVkIGNvcnJlY3RseSAoc2VlIGlzc3VlMTA3OTEpLgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi50ZWxsKCksIG5yZWFkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGInJy5qb2luKGJsb2NrcyksIGRhdGExICogNTApCisKICAgICBkZWYgdGVzdF9pb19vbl9jbG9zZWRfb2JqZWN0KHNlbGYpOgogICAgICAgICAjIFRlc3QgdGhhdCBJL08gb3BlcmF0aW9ucyBvbiBjbG9zZWQgR3ppcEZpbGUgb2JqZWN0cyByYWlzZSBhCiAgICAgICAgICMgVmFsdWVFcnJvciwganVzdCBsaWtlIHRoZSBjb3JyZXNwb25kaW5nIGZ1bmN0aW9ucyBvbiBmaWxlIG9iamVjdHMuCkBAIC0xMDAsMTQgKzExNiwxNCBAQAogICAgICAgICAjIEJ1ZyAjMTA3NDI2MSB3YXMgdHJpZ2dlcmVkIHdoZW4gcmVhZGluZyBhIGZpbGUgdGhhdCBjb250YWluZWQKICAgICAgICAgIyBtYW55LCBtYW55IG1lbWJlcnMuICBDcmVhdGUgc3VjaCBhIGZpbGUgYW5kIHZlcmlmeSB0aGF0IHJlYWRpbmcgaXQKICAgICAgICAgIyB3b3Jrcy4KLSAgICAgICAgd2l0aCBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgJ3diJywgOSkgYXMgZjoKKyAgICAgICAgd2l0aCBnemlwLkd6aXBGaWxlKHNlbGYuZmlsZW5hbWUsICd3YicsIDkpIGFzIGY6CiAgICAgICAgICAgICBmLndyaXRlKGInYScpCiAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIDIwMCk6Ci0gICAgICAgICAgICB3aXRoIGd6aXAub3BlbihzZWxmLmZpbGVuYW1lLCAiYWIiLCA5KSBhcyBmOiAjIGFwcGVuZAorICAgICAgICAgICAgd2l0aCBnemlwLkd6aXBGaWxlKHNlbGYuZmlsZW5hbWUsICJhYiIsIDkpIGFzIGY6ICMgYXBwZW5kCiAgICAgICAgICAgICAgICAgZi53cml0ZShiJ2EnKQogCiAgICAgICAgICMgVHJ5IHJlYWRpbmcgdGhlIGZpbGUKLSAgICAgICAgd2l0aCBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgInJiIikgYXMgemdmaWxlOgorICAgICAgICB3aXRoIGd6aXAuR3ppcEZpbGUoc2VsZi5maWxlbmFtZSwgInJiIikgYXMgemdmaWxlOgogICAgICAgICAgICAgY29udGVudHMgPSBiIiIKICAgICAgICAgICAgIHdoaWxlIDE6CiAgICAgICAgICAgICAgICAgenR4dCA9IHpnZmlsZS5yZWFkKDgxOTIpCkBAIC0xMjQsNyArMTQwLDcgQEAKICAgICAgICAgICAgIHdpdGggaW8uQnVmZmVyZWRSZWFkZXIoZikgYXMgcjoKICAgICAgICAgICAgICAgICBsaW5lcyA9IFtsaW5lIGZvciBsaW5lIGluIHJdCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lcywgNTAgKiBkYXRhMS5zcGxpdGxpbmVzKFRydWUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmVzLCA1MCAqIGRhdGExLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkpCiAKICAgICBkZWYgdGVzdF9yZWFkbGluZShzZWxmKToKICAgICAgICAgc2VsZi50ZXN0X3dyaXRlKCkKQEAgLTMyMyw2ICszMzksMTQgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKDEwMCksIGInJykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobnJlYWQsIGxlbih1bmNvbXByZXNzZWQpKQogCisgICAgZGVmIHRlc3RfdGV4dGlvX3JlYWRsaW5lcyhzZWxmKToKKyAgICAgICAgIyBJc3N1ZSAjMTA3OTE6IFRleHRJT1dyYXBwZXIucmVhZGxpbmVzKCkgZmFpbHMgd2hlbiB3cmFwcGluZyBHemlwRmlsZS4KKyAgICAgICAgbGluZXMgPSAoZGF0YTEgKiA1MCkuZGVjb2RlKCJhc2NpaSIpLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkKKyAgICAgICAgc2VsZi50ZXN0X3dyaXRlKCkKKyAgICAgICAgd2l0aCBnemlwLkd6aXBGaWxlKHNlbGYuZmlsZW5hbWUsICdyJykgYXMgZjoKKyAgICAgICAgICAgIHdpdGggaW8uVGV4dElPV3JhcHBlcihmLCBlbmNvZGluZz0iYXNjaWkiKSBhcyB0OgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodC5yZWFkbGluZXMoKSwgbGluZXMpCisKICAgICBkZWYgdGVzdF9maWxlb2JqX2Zyb21fZmRvcGVuKHNlbGYpOgogICAgICAgICAjIElzc3VlICMxMzc4MTogT3BlbmluZyBhIEd6aXBGaWxlIGZvciB3cml0aW5nIGZhaWxzIHdoZW4gdXNpbmcgYQogICAgICAgICAjIGZpbGVvYmogY3JlYXRlZCB3aXRoIG9zLmZkb3BlbigpLgpAQCAtMzY1LDggKzM4OSwxMDkgQEAKICAgICAgICAgICAgIGRhdGFjID0gZ3ppcC5jb21wcmVzcyhkYXRhKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnemlwLmRlY29tcHJlc3MoZGF0YWMpLCBkYXRhKQogCisKK2NsYXNzIFRlc3RPcGVuKEJhc2VUZXN0KToKKyAgICBkZWYgdGVzdF9iaW5hcnlfbW9kZXMoc2VsZik6CisgICAgICAgIHVuY29tcHJlc3NlZCA9IGRhdGExICogNTAKKyAgICAgICAgd2l0aCBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgIndiIikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUodW5jb21wcmVzc2VkKQorICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInJiIikgYXMgZjoKKyAgICAgICAgICAgIGZpbGVfZGF0YSA9IGd6aXAuZGVjb21wcmVzcyhmLnJlYWQoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9kYXRhLCB1bmNvbXByZXNzZWQpCisgICAgICAgIHdpdGggZ3ppcC5vcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB1bmNvbXByZXNzZWQpCisgICAgICAgIHdpdGggZ3ppcC5vcGVuKHNlbGYuZmlsZW5hbWUsICJhYiIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKHVuY29tcHJlc3NlZCkKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIpIGFzIGY6CisgICAgICAgICAgICBmaWxlX2RhdGEgPSBnemlwLmRlY29tcHJlc3MoZi5yZWFkKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgdW5jb21wcmVzc2VkICogMikKKworICAgIGRlZiB0ZXN0X2ltcGxpY2l0X2JpbmFyeV9tb2RlcyhzZWxmKToKKyAgICAgICAgIyBUZXN0IGltcGxpY2l0IGJpbmFyeSBtb2RlcyAobm8gImIiIG9yICJ0IiBpbiBtb2RlIHN0cmluZykuCisgICAgICAgIHVuY29tcHJlc3NlZCA9IGRhdGExICogNTAKKyAgICAgICAgd2l0aCBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgInciKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSh1bmNvbXByZXNzZWQpCisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgZmlsZV9kYXRhID0gZ3ppcC5kZWNvbXByZXNzKGYucmVhZCgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIHVuY29tcHJlc3NlZCkKKyAgICAgICAgd2l0aCBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgInIiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgdW5jb21wcmVzc2VkKQorICAgICAgICB3aXRoIGd6aXAub3BlbihzZWxmLmZpbGVuYW1lLCAiYSIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKHVuY29tcHJlc3NlZCkKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJyYiIpIGFzIGY6CisgICAgICAgICAgICBmaWxlX2RhdGEgPSBnemlwLmRlY29tcHJlc3MoZi5yZWFkKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgdW5jb21wcmVzc2VkICogMikKKworICAgIGRlZiB0ZXN0X3RleHRfbW9kZXMoc2VsZik6CisgICAgICAgIHVuY29tcHJlc3NlZCA9IGRhdGExLmRlY29kZSgiYXNjaWkiKSAqIDUwCisgICAgICAgIHVuY29tcHJlc3NlZF9yYXcgPSB1bmNvbXByZXNzZWQucmVwbGFjZSgiXG4iLCBvcy5saW5lc2VwKQorICAgICAgICB3aXRoIGd6aXAub3BlbihzZWxmLmZpbGVuYW1lLCAid3QiKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSh1bmNvbXByZXNzZWQpCisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgZmlsZV9kYXRhID0gZ3ppcC5kZWNvbXByZXNzKGYucmVhZCgpKS5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9kYXRhLCB1bmNvbXByZXNzZWRfcmF3KQorICAgICAgICB3aXRoIGd6aXAub3BlbihzZWxmLmZpbGVuYW1lLCAicnQiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgdW5jb21wcmVzc2VkKQorICAgICAgICB3aXRoIGd6aXAub3BlbihzZWxmLmZpbGVuYW1lLCAiYXQiKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSh1bmNvbXByZXNzZWQpCisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgZmlsZV9kYXRhID0gZ3ppcC5kZWNvbXByZXNzKGYucmVhZCgpKS5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZV9kYXRhLCB1bmNvbXByZXNzZWRfcmF3ICogMikKKworICAgIGRlZiB0ZXN0X2ZpbGVvYmooc2VsZik6CisgICAgICAgIHVuY29tcHJlc3NlZF9ieXRlcyA9IGRhdGExICogNTAKKyAgICAgICAgdW5jb21wcmVzc2VkX3N0ciA9IHVuY29tcHJlc3NlZF9ieXRlcy5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgY29tcHJlc3NlZCA9IGd6aXAuY29tcHJlc3ModW5jb21wcmVzc2VkX2J5dGVzKQorICAgICAgICB3aXRoIGd6aXAub3Blbihpby5CeXRlc0lPKGNvbXByZXNzZWQpLCAiciIpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB1bmNvbXByZXNzZWRfYnl0ZXMpCisgICAgICAgIHdpdGggZ3ppcC5vcGVuKGlvLkJ5dGVzSU8oY29tcHJlc3NlZCksICJyYiIpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB1bmNvbXByZXNzZWRfYnl0ZXMpCisgICAgICAgIHdpdGggZ3ppcC5vcGVuKGlvLkJ5dGVzSU8oY29tcHJlc3NlZCksICJydCIpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB1bmNvbXByZXNzZWRfc3RyKQorCisgICAgZGVmIHRlc3RfYmFkX3BhcmFtcyhzZWxmKToKKyAgICAgICAgIyBUZXN0IGludmFsaWQgcGFyYW1ldGVyIGNvbWJpbmF0aW9ucy4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgZ3ppcC5vcGVuKDEyMy40NTYpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgIndidCIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgInJiIiwgZW5jb2Rpbmc9InV0Zi04IikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGd6aXAub3BlbihzZWxmLmZpbGVuYW1lLCAicmIiLCBlcnJvcnM9Imlnbm9yZSIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgInJiIiwgbmV3bGluZT0iXG4iKQorCisgICAgZGVmIHRlc3RfZW5jb2Rpbmcoc2VsZik6CisgICAgICAgICMgVGVzdCBub24tZGVmYXVsdCBlbmNvZGluZy4KKyAgICAgICAgdW5jb21wcmVzc2VkID0gZGF0YTEuZGVjb2RlKCJhc2NpaSIpICogNTAKKyAgICAgICAgdW5jb21wcmVzc2VkX3JhdyA9IHVuY29tcHJlc3NlZC5yZXBsYWNlKCJcbiIsIG9zLmxpbmVzZXApCisgICAgICAgIHdpdGggZ3ppcC5vcGVuKHNlbGYuZmlsZW5hbWUsICJ3dCIsIGVuY29kaW5nPSJ1dGYtMTYiKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSh1bmNvbXByZXNzZWQpCisgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgZmlsZV9kYXRhID0gZ3ppcC5kZWNvbXByZXNzKGYucmVhZCgpKS5kZWNvZGUoInV0Zi0xNiIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgdW5jb21wcmVzc2VkX3JhdykKKyAgICAgICAgd2l0aCBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgInJ0IiwgZW5jb2Rpbmc9InV0Zi0xNiIpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCB1bmNvbXByZXNzZWQpCisKKyAgICBkZWYgdGVzdF9lbmNvZGluZ19lcnJvcl9oYW5kbGVyKHNlbGYpOgorICAgICAgICAjIFRlc3Qgd2l0aCBub24tZGVmYXVsdCBlbmNvZGluZyBlcnJvciBoYW5kbGVyLgorICAgICAgICB3aXRoIGd6aXAub3BlbihzZWxmLmZpbGVuYW1lLCAid2IiKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZShiImZvb1x4ZmZiYXIiKQorICAgICAgICB3aXRoIGd6aXAub3BlbihzZWxmLmZpbGVuYW1lLCAicnQiLCBlbmNvZGluZz0iYXNjaWkiLCBlcnJvcnM9Imlnbm9yZSIpIFwKKyAgICAgICAgICAgICAgICBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgImZvb2JhciIpCisKKyAgICBkZWYgdGVzdF9uZXdsaW5lKHNlbGYpOgorICAgICAgICAjIFRlc3Qgd2l0aCBleHBsaWNpdCBuZXdsaW5lICh1bml2ZXJzYWwgbmV3bGluZSBtb2RlIGRpc2FibGVkKS4KKyAgICAgICAgdW5jb21wcmVzc2VkID0gZGF0YTEuZGVjb2RlKCJhc2NpaSIpICogNTAKKyAgICAgICAgd2l0aCBnemlwLm9wZW4oc2VsZi5maWxlbmFtZSwgInd0IiwgbmV3bGluZT0iXG4iKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSh1bmNvbXByZXNzZWQpCisgICAgICAgIHdpdGggZ3ppcC5vcGVuKHNlbGYuZmlsZW5hbWUsICJydCIsIG5ld2xpbmU9IlxyIikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkbGluZXMoKSwgW3VuY29tcHJlc3NlZF0pCisKIGRlZiB0ZXN0X21haW4odmVyYm9zZT1Ob25lKToKLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChUZXN0R3ppcCkKKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChUZXN0R3ppcCwgVGVzdE9wZW4pCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgdGVzdF9tYWluKHZlcmJvc2U9VHJ1ZSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaGFzaC5weSBiL0xpYi90ZXN0L3Rlc3RfaGFzaC5weQppbmRleCBjMGRkMzRkLi4wNzc2Nzc5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2hhc2gucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9oYXNoLnB5CkBAIC0xMTMsOCArMTEzLDcgQEAKICAgICAgICAgcmV0dXJuIHNlbGYuc2VxW2luZGV4XQogCiBjbGFzcyBIYXNoQnVpbHRpbnNUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgaGFzaGVzX3RvX2NoZWNrID0gW3JhbmdlKDEwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYXRlKHJhbmdlKDEwKSksCisgICAgaGFzaGVzX3RvX2NoZWNrID0gW2VudW1lcmF0ZShyYW5nZSgxMCkpLAogICAgICAgICAgICAgICAgICAgICAgICBpdGVyKERlZmF1bHRJdGVyU2VxKCkpLAogICAgICAgICAgICAgICAgICAgICAgICBpdGVyKGxhbWJkYTogMCwgMCksCiAgICAgICAgICAgICAgICAgICAgICAgXQpAQCAtMTYwLDggKzE1OSw4IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBrbm93bl9oYXNoX29mX29iaiA9IC0xNjAwOTI1NTMzCiAKLSAgICAgICAgIyBSYW5kb21pemF0aW9uIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQ6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRfaGFzaChzZWxmLnJlcHJfKSwga25vd25faGFzaF9vZl9vYmopCisgICAgICAgICMgUmFuZG9taXphdGlvbiBpcyBlbmFibGVkIGJ5IGRlZmF1bHQ6CisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoc2VsZi5nZXRfaGFzaChzZWxmLnJlcHJfKSwga25vd25faGFzaF9vZl9vYmopCiAKICAgICAgICAgIyBJdCBjYW4gYWxzbyBiZSBkaXNhYmxlZCBieSBzZXR0aW5nIHRoZSBzZWVkIHRvIDA6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRfaGFzaChzZWxmLnJlcHJfLCBzZWVkPTApLCBrbm93bl9oYXNoX29mX29iaikKQEAgLTE5Myw2ICsxOTIsMTIgQEAKICAgICBkZWYgdGVzdF9lbXB0eV9zdHJpbmcoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChiIiIpLCAwKQogCitjbGFzcyBNZW1vcnl2aWV3SGFzaFJhbmRvbWl6YXRpb25UZXN0cyhTdHJpbmdsaWtlSGFzaFJhbmRvbWl6YXRpb25UZXN0cyk6CisgICAgcmVwcl8gPSAibWVtb3J5dmlldyhiJ2FiYycpIgorCisgICAgZGVmIHRlc3RfZW1wdHlfc3RyaW5nKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2gobWVtb3J5dmlldyhiIiIpKSwgMCkKKwogY2xhc3MgRGF0ZXRpbWVUZXN0cyhIYXNoUmFuZG9taXphdGlvblRlc3RzKToKICAgICBkZWYgZ2V0X2hhc2hfY29tbWFuZChzZWxmLCByZXByXyk6CiAgICAgICAgIHJldHVybiAnaW1wb3J0IGRhdGV0aW1lOyBwcmludChoYXNoKCVzKSknICUgcmVwcl8KQEAgLTIxMyw2ICsyMTgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgIEhhc2hCdWlsdGluc1Rlc3RDYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgIFN0ckhhc2hSYW5kb21pemF0aW9uVGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgQnl0ZXNIYXNoUmFuZG9taXphdGlvblRlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeXZpZXdIYXNoUmFuZG9taXphdGlvblRlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgIERhdGV0aW1lRGF0ZVRlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgIERhdGV0aW1lRGF0ZXRpbWVUZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRldGltZVRpbWVUZXN0cykKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaGFzaGxpYi5weSBiL0xpYi90ZXN0L3Rlc3RfaGFzaGxpYi5weQppbmRleCA5Nzk4MWRkLi5kMmVmOWQxIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2hhc2hsaWIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9oYXNobGliLnB5CkBAIC05LDYgKzksNyBAQAogaW1wb3J0IGFycmF5CiBpbXBvcnQgaGFzaGxpYgogaW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiB0cnk6CiAgICAgaW1wb3J0IHRocmVhZGluZwpAQCAtMzcsNyArMzgsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hhMjI0JywgJ1NIQTIyNCcsICdzaGEyNTYnLCAnU0hBMjU2JywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NoYTM4NCcsICdTSEEzODQnLCAnc2hhNTEyJywgJ1NIQTUxMicgKQogCi0gICAgX3dhcm5fb25fZXh0ZW5zaW9uX2ltcG9ydCA9IENPTVBJTEVEX1dJVEhfUFlERUJVRworICAgICMgSXNzdWUgIzE0NjkzOiBmYWxsYmFjayBtb2R1bGVzIGFyZSBhbHdheXMgY29tcGlsZWQgdW5kZXIgUE9TSVgKKyAgICBfd2Fybl9vbl9leHRlbnNpb25faW1wb3J0ID0gb3MubmFtZSA9PSAncG9zaXgnIG9yIENPTVBJTEVEX1dJVEhfUFlERUJVRwogCiAgICAgZGVmIF9jb25kaXRpb25hbF9pbXBvcnRfbW9kdWxlKHNlbGYsIG1vZHVsZV9uYW1lKToKICAgICAgICAgIiIiSW1wb3J0IGEgbW9kdWxlIGFuZCByZXR1cm4gYSByZWZlcmVuY2UgdG8gaXQgb3IgTm9uZSBvbiBmYWlsdXJlLiIiIgpAQCAtMTExLDEyICsxMTMsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzc3Vic2V0KGhhc2hsaWIuYWxnb3JpdGhtc19hdmFpbGFibGUpKQogCiAgICAgZGVmIHRlc3RfdW5rbm93bl9oYXNoKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYXNobGliLm5ldygnc3BhbSBzcGFtIHNwYW0gc3BhbSBzcGFtJykKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoMCA9PSAiaGFzaGxpYiBkaWRuJ3QgcmVqZWN0IGJvZ3VzIGhhc2ggbmFtZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGhhc2hsaWIubmV3LCAnc3BhbSBzcGFtIHNwYW0gc3BhbSBzcGFtJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBoYXNobGliLm5ldywgMSkKIAogICAgIGRlZiB0ZXN0X2dldF9idWlsdGluX2NvbnN0cnVjdG9yKHNlbGYpOgogICAgICAgICBnZXRfYnVpbHRpbl9jb25zdHJ1Y3RvciA9IGhhc2hsaWIuX19kaWN0X19bCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2htYWMucHkgYi9MaWIvdGVzdC90ZXN0X2htYWMucHkKaW5kZXggNGRlMDYyMC4uNGNhN2NlYyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9obWFjLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaG1hYy5weQpAQCAtMjM0LDYgKzIzNCwxOCBAQAogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBzZWxmLmZhaWwoIlN0YW5kYXJkIGNvbnN0cnVjdG9yIGNhbGwgcmFpc2VkIGV4Y2VwdGlvbi4iKQogCisgICAgZGVmIHRlc3Rfd2l0aF9zdHJfa2V5KHNlbGYpOgorICAgICAgICAjIFBhc3MgYSBrZXkgb2YgdHlwZSBzdHIsIHdoaWNoIGlzIGFuIGVycm9yLCBiZWNhdXNlIGl0IGV4cGVjdHMgYSBrZXkKKyAgICAgICAgIyBvZiB0eXBlIGJ5dGVzCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIGggPSBobWFjLkhNQUMoImtleSIpCisKKyAgICBkZWYgdGVzdF9kb3RfbmV3X3dpdGhfc3RyX2tleShzZWxmKToKKyAgICAgICAgIyBQYXNzIGEga2V5IG9mIHR5cGUgc3RyLCB3aGljaCBpcyBhbiBlcnJvciwgYmVjYXVzZSBpdCBleHBlY3RzIGEga2V5CisgICAgICAgICMgb2YgdHlwZSBieXRlcworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBoID0gaG1hYy5uZXcoImtleSIpCisKICAgICBkZWYgdGVzdF93aXRodGV4dChzZWxmKToKICAgICAgICAgIyBDb25zdHJ1Y3RvciBjYWxsIHdpdGggdGV4dC4KICAgICAgICAgdHJ5OgpAQCAtMzAyLDEyICszMTQsMTIxIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaDEuaGV4ZGlnZXN0KCksIGgyLmhleGRpZ2VzdCgpLAogICAgICAgICAgICAgIkhleGRpZ2VzdCBvZiBjb3B5IGRvZXNuJ3QgbWF0Y2ggb3JpZ2luYWwgaGV4ZGlnZXN0LiIpCiAKK2NsYXNzIENvbXBhcmVEaWdlc3RUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9jb21wYXJlX2RpZ2VzdChzZWxmKToKKyAgICAgICAgIyBUZXN0aW5nIGlucHV0IHR5cGUgZXhjZXB0aW9uIGhhbmRsaW5nCisgICAgICAgIGEsIGIgPSAxMDAsIDIwMAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGhtYWMuY29tcGFyZV9kaWdlc3QsIGEsIGIpCisgICAgICAgIGEsIGIgPSAxMDAsIGIiZm9vYmFyIgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGhtYWMuY29tcGFyZV9kaWdlc3QsIGEsIGIpCisgICAgICAgIGEsIGIgPSBiImZvb2JhciIsIDIwMAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGhtYWMuY29tcGFyZV9kaWdlc3QsIGEsIGIpCisgICAgICAgIGEsIGIgPSAiZm9vYmFyIiwgYiJmb29iYXIiCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaG1hYy5jb21wYXJlX2RpZ2VzdCwgYSwgYikKKyAgICAgICAgYSwgYiA9IGIiZm9vYmFyIiwgImZvb2JhciIKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBobWFjLmNvbXBhcmVfZGlnZXN0LCBhLCBiKQorCisgICAgICAgICMgVGVzdGluZyBieXRlcyBvZiBkaWZmZXJlbnQgbGVuZ3RocworICAgICAgICBhLCBiID0gYiJmb29iYXIiLCBiImZvbyIKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorICAgICAgICBhLCBiID0gYiJceGRlXHhhZFx4YmVceGVmIiwgYiJceGRlXHhhZCIKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorCisgICAgICAgICMgVGVzdGluZyBieXRlcyBvZiBzYW1lIGxlbmd0aHMsIGRpZmZlcmVudCB2YWx1ZXMKKyAgICAgICAgYSwgYiA9IGIiZm9vYmFyIiwgYiJmb29iYXoiCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaG1hYy5jb21wYXJlX2RpZ2VzdChhLCBiKSkKKyAgICAgICAgYSwgYiA9IGIiXHhkZVx4YWRceGJlXHhlZiIsIGIiXHhhYlx4YWRceDFkXHhlYSIKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorCisgICAgICAgICMgVGVzdGluZyBieXRlcyBvZiBzYW1lIGxlbmd0aHMsIHNhbWUgdmFsdWVzCisgICAgICAgIGEsIGIgPSBiImZvb2JhciIsIGIiZm9vYmFyIgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaG1hYy5jb21wYXJlX2RpZ2VzdChhLCBiKSkKKyAgICAgICAgYSwgYiA9IGIiXHhkZVx4YWRceGJlXHhlZiIsIGIiXHhkZVx4YWRceGJlXHhlZiIKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhtYWMuY29tcGFyZV9kaWdlc3QoYSwgYikpCisKKyAgICAgICAgIyBUZXN0aW5nIGJ5dGVhcnJheXMgb2Ygc2FtZSBsZW5ndGhzLCBzYW1lIHZhbHVlcworICAgICAgICBhLCBiID0gYnl0ZWFycmF5KGIiZm9vYmFyIiksIGJ5dGVhcnJheShiImZvb2JhciIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorCisgICAgICAgICMgVGVzdGluZyBieXRlYXJyYXlzIG9mIGRpZmZlZW50IGxlbmd0aHMKKyAgICAgICAgYSwgYiA9IGJ5dGVhcnJheShiImZvb2JhciIpLCBieXRlYXJyYXkoYiJmb28iKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhtYWMuY29tcGFyZV9kaWdlc3QoYSwgYikpCisKKyAgICAgICAgIyBUZXN0aW5nIGJ5dGVhcnJheXMgb2Ygc2FtZSBsZW5ndGhzLCBkaWZmZXJlbnQgdmFsdWVzCisgICAgICAgIGEsIGIgPSBieXRlYXJyYXkoYiJmb29iYXIiKSwgYnl0ZWFycmF5KGIiZm9vYmF6IikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorCisgICAgICAgICMgVGVzdGluZyBieXRlIGFuZCBieXRlYXJyYXkgb2Ygc2FtZSBsZW5ndGhzLCBzYW1lIHZhbHVlcworICAgICAgICBhLCBiID0gYnl0ZWFycmF5KGIiZm9vYmFyIiksIGIiZm9vYmFyIgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaG1hYy5jb21wYXJlX2RpZ2VzdChhLCBiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhtYWMuY29tcGFyZV9kaWdlc3QoYiwgYSkpCisKKyAgICAgICAgIyBUZXN0aW5nIGJ5dGUgYnl0ZWFycmF5IG9mIGRpZmZlZW50IGxlbmd0aHMKKyAgICAgICAgYSwgYiA9IGJ5dGVhcnJheShiImZvb2JhciIpLCBiImZvbyIKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhtYWMuY29tcGFyZV9kaWdlc3QoYiwgYSkpCisKKyAgICAgICAgIyBUZXN0aW5nIGJ5dGUgYW5kIGJ5dGVhcnJheSBvZiBzYW1lIGxlbmd0aHMsIGRpZmZlcmVudCB2YWx1ZXMKKyAgICAgICAgYSwgYiA9IGJ5dGVhcnJheShiImZvb2JhciIpLCBiImZvb2JheiIKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhtYWMuY29tcGFyZV9kaWdlc3QoYiwgYSkpCisKKyAgICAgICAgIyBUZXN0aW5nIHN0ciBvZiBzYW1lIGxlbmd0aHMKKyAgICAgICAgYSwgYiA9ICJmb29iYXIiLCAiZm9vYmFyIgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaG1hYy5jb21wYXJlX2RpZ2VzdChhLCBiKSkKKworICAgICAgICAjIFRlc3Rpbmcgc3RyIG9mIGRpZmZlZW50IGxlbmd0aHMKKyAgICAgICAgYSwgYiA9ICJmb28iLCAiZm9vYmFyIgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhtYWMuY29tcGFyZV9kaWdlc3QoYSwgYikpCisKKyAgICAgICAgIyBUZXN0aW5nIGJ5dGVzIG9mIHNhbWUgbGVuZ3RocywgZGlmZmVyZW50IHZhbHVlcworICAgICAgICBhLCBiID0gImZvb2JhciIsICJmb29iYXoiCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaG1hYy5jb21wYXJlX2RpZ2VzdChhLCBiKSkKKworICAgICAgICAjIFRlc3RpbmcgZXJyb3IgY2FzZXMKKyAgICAgICAgYSwgYiA9ICJmb29iYXIiLCBiImZvb2JhciIKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBobWFjLmNvbXBhcmVfZGlnZXN0LCBhLCBiKQorICAgICAgICBhLCBiID0gYiJmb29iYXIiLCAiZm9vYmFyIgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGhtYWMuY29tcGFyZV9kaWdlc3QsIGEsIGIpCisgICAgICAgIGEsIGIgPSBiImZvb2JhciIsIDEKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBobWFjLmNvbXBhcmVfZGlnZXN0LCBhLCBiKQorICAgICAgICBhLCBiID0gMTAwLCAyMDAKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBobWFjLmNvbXBhcmVfZGlnZXN0LCBhLCBiKQorICAgICAgICBhLCBiID0gImZvb8OkIiwgImZvb8OkIgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGhtYWMuY29tcGFyZV9kaWdlc3QsIGEsIGIpCisKKyAgICAgICAgIyBzdWJjbGFzc2VzIGFyZSBzdXBwb3J0ZWQgYnkgaWdub3JlIF9fZXFfXworICAgICAgICBjbGFzcyBteXN0cihzdHIpOgorICAgICAgICAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgYSwgYiA9IG15c3RyKCJmb29iYXIiKSwgbXlzdHIoImZvb2JhciIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorICAgICAgICBhLCBiID0gbXlzdHIoImZvb2JhciIpLCAiZm9vYmFyIgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaG1hYy5jb21wYXJlX2RpZ2VzdChhLCBiKSkKKyAgICAgICAgYSwgYiA9IG15c3RyKCJmb29iYXIiKSwgbXlzdHIoImZvb2JheiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaG1hYy5jb21wYXJlX2RpZ2VzdChhLCBiKSkKKworICAgICAgICBjbGFzcyBteWJ5dGVzKGJ5dGVzKToKKyAgICAgICAgICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGEsIGIgPSBteWJ5dGVzKGIiZm9vYmFyIiksIG15Ynl0ZXMoYiJmb29iYXIiKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaG1hYy5jb21wYXJlX2RpZ2VzdChhLCBiKSkKKyAgICAgICAgYSwgYiA9IG15Ynl0ZXMoYiJmb29iYXIiKSwgYiJmb29iYXIiCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorICAgICAgICBhLCBiID0gbXlieXRlcyhiImZvb2JhciIpLCBteWJ5dGVzKGIiZm9vYmF6IikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShobWFjLmNvbXBhcmVfZGlnZXN0KGEsIGIpKQorCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgKICAgICAgICAgVGVzdFZlY3RvcnNUZXN0Q2FzZSwKICAgICAgICAgQ29uc3RydWN0b3JUZXN0Q2FzZSwKICAgICAgICAgU2FuaXR5VGVzdENhc2UsCi0gICAgICAgIENvcHlUZXN0Q2FzZQorICAgICAgICBDb3B5VGVzdENhc2UsCisgICAgICAgIENvbXBhcmVEaWdlc3RUZXN0Q2FzZQogICAgICkKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaHRtbHBhcnNlci5weSBiL0xpYi90ZXN0L3Rlc3RfaHRtbHBhcnNlci5weQppbmRleCBjNGY4MGNjLi5jNWQ4NzhkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2h0bWxwYXJzZXIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9odG1scGFyc2VyLnB5CkBAIC0xMDIsNyArMTAyLDggQEAKIGNsYXNzIEhUTUxQYXJzZXJTdHJpY3RUZXN0Q2FzZShUZXN0Q2FzZUJhc2UpOgogCiAgICAgZGVmIGdldF9jb2xsZWN0b3Ioc2VsZik6Ci0gICAgICAgIHJldHVybiBFdmVudENvbGxlY3RvcihzdHJpY3Q9VHJ1ZSkKKyAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgiIiwgRGVwcmVjYXRpb25XYXJuaW5nKSwgcXVpdGU9RmFsc2UpOgorICAgICAgICAgICAgcmV0dXJuIEV2ZW50Q29sbGVjdG9yKHN0cmljdD1UcnVlKQogCiAgICAgZGVmIHRlc3RfcHJvY2Vzc2luZ19pbnN0cnVjdGlvbl9vbmx5KHNlbGYpOgogICAgICAgICBzZWxmLl9ydW5fY2hlY2soIjw/cHJvY2Vzc2luZyBpbnN0cnVjdGlvbj4iLCBbCkBAIC00NTUsNyArNDU2LDcgQEAKICAgICAgICAgc2VsZi5fcnVuX2NoZWNrKCc8Zm9ybSBhY3Rpb249Ii94eHgucGhwP2E9MSZhbXA7Yj0yJmFtcCIsICcKICAgICAgICAgICAgICAgICAgICAgICAgICdtZXRob2Q9InBvc3QiPicsIFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3N0YXJ0dGFnJywgJ2Zvcm0nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdhY3Rpb24nLCAnL3h4eC5waHA/YT0xJmI9MiZhbXAnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWygnYWN0aW9uJywgJy94eHgucGhwP2E9MSZiPTImJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJywnLCBOb25lKSwgKCdtZXRob2QnLCAncG9zdCcpXSldKQogCiAgICAgZGVmIHRlc3Rfd2VpcmRfY2hhcnNfaW5fdW5xdW90ZWRfYXR0cmlidXRlX3ZhbHVlcyhzZWxmKToKQEAgLTU0MCw2ICs1NDEsMTEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnVuZXNjYXBlKCcmIzAwMzg7JyksJyYnKQogICAgICAgICAjIHNlZSAjMTI4ODgKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnVuZXNjYXBlKCcmIzEyMzsgJyAqIDEwNTApLCAneyAnICogMTA1MCkKKyAgICAgICAgIyBzZWUgIzE1MTU2CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC51bmVzY2FwZSgnJkVhY3V0ZXJpYyZFYWN1dGU7cmljJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyZhbHBoYWNlbnRhdXJpJmFscGhhO2NlbnRhdXJpJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnw4lyaWPDiXJpYyZhbHBoYWNlbnRhdXJpzrFjZW50YXVyaScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC51bmVzY2FwZSgnJmNvOycpLCAnJmNvOycpCiAKICAgICBkZWYgdGVzdF9icm9rZW5fY29tbWVudHMoc2VsZik6CiAgICAgICAgIGh0bWwgPSAoJzwhIG5vdCByZWFsbHkgYSBjb21tZW50ID4nCkBAIC01OTQsNyArNjAwLDggQEAKIGNsYXNzIEF0dHJpYnV0ZXNTdHJpY3RUZXN0Q2FzZShUZXN0Q2FzZUJhc2UpOgogCiAgICAgZGVmIGdldF9jb2xsZWN0b3Ioc2VsZik6Ci0gICAgICAgIHJldHVybiBFdmVudENvbGxlY3RvcihzdHJpY3Q9VHJ1ZSkKKyAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgiIiwgRGVwcmVjYXRpb25XYXJuaW5nKSwgcXVpdGU9RmFsc2UpOgorICAgICAgICAgICAgcmV0dXJuIEV2ZW50Q29sbGVjdG9yKHN0cmljdD1UcnVlKQogCiAgICAgZGVmIHRlc3RfYXR0cl9zeW50YXgoc2VsZik6CiAgICAgICAgIG91dHB1dCA9IFsKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaHR0cF9jb29raWVqYXIucHkgYi9MaWIvdGVzdC90ZXN0X2h0dHBfY29va2llamFyLnB5CmluZGV4IDQxZTBkZmQuLmEzNWVjOTUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaHR0cF9jb29raWVqYXIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9odHRwX2Nvb2tpZWphci5weQpAQCAtMjQ4LDE4ICsyNDgsMTkgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLl9jb29raWVzWyJ3d3cuYWNtZS5jb20iXVsiLyJdWyJib28iXS52YWx1ZSwgTm9uZSkKIAogICAgIGRlZiB0ZXN0X2JhZF9tYWdpYyhzZWxmKToKLSAgICAgICAgIyBJT0Vycm9ycyAoZWcuIGZpbGUgZG9lc24ndCBleGlzdCkgYXJlIGFsbG93ZWQgdG8gcHJvcGFnYXRlCisgICAgICAgICMgT1NFcnJvcnMgKGVnLiBmaWxlIGRvZXNuJ3QgZXhpc3QpIGFyZSBhbGxvd2VkIHRvIHByb3BhZ2F0ZQogICAgICAgICBmaWxlbmFtZSA9IHRlc3Quc3VwcG9ydC5URVNURk4KICAgICAgICAgZm9yIGNvb2tpZWphcl9jbGFzcyBpbiBMV1BDb29raWVKYXIsIE1vemlsbGFDb29raWVKYXI6CiAgICAgICAgICAgICBjID0gY29va2llamFyX2NsYXNzKCkKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBjLmxvYWQoZmlsZW5hbWU9ImZvciB0aGlzIHRlc3QgdG8gd29yaywgYSBmaWxlIHdpdGggdGhpcyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlbmFtZSBzaG91bGQgbm90IGV4aXN0IikKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIGV4YzoKLSAgICAgICAgICAgICAgICAjIGV4YWN0bHkgSU9FcnJvciwgbm90IExvYWRFcnJvcgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoZXhjLl9fY2xhc3NfXywgSU9FcnJvcikKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGV4YzoKKyAgICAgICAgICAgICAgICAjIGFuIE9TRXJyb3Igc3ViY2xhc3MgKGxpa2VseSBGaWxlTm90Rm91bmRFcnJvciksIGJ1dCBub3QKKyAgICAgICAgICAgICAgICAjIExvYWRFcnJvcgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoZXhjLl9fY2xhc3NfXywgTG9hZEVycm9yKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoImV4cGVjdGVkIElPRXJyb3IgZm9yIGludmFsaWQgZmlsZW5hbWUiKQorICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiZXhwZWN0ZWQgT1NFcnJvciBmb3IgaW52YWxpZCBmaWxlbmFtZSIpCiAgICAgICAgICMgSW52YWxpZCBjb250ZW50cyBvZiBjb29raWVzIGZpbGUgKGVnLiBiYWQgbWFnaWMgc3RyaW5nKQogICAgICAgICAjIGNhdXNlcyBhIExvYWRFcnJvci4KICAgICAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9odHRwX2Nvb2tpZXMucHkgYi9MaWIvdGVzdC90ZXN0X2h0dHBfY29va2llcy5weQppbmRleCAxZjFjYTU4Li5lODMyN2U1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2h0dHBfY29va2llcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2h0dHBfY29va2llcy5weQpAQCAtMzQsNiArMzQsMTUgQEAKICAgICAgICAgICAgICAnZGljdCc6IHsna2VlYmxlcicgOiAnRT1tYzInfSwKICAgICAgICAgICAgICAncmVwcic6ICI8U2ltcGxlQ29va2llOiBrZWVibGVyPSdFPW1jMic+IiwKICAgICAgICAgICAgICAnb3V0cHV0JzogJ1NldC1Db29raWU6IGtlZWJsZXI9RT1tYzInfSwKKworICAgICAgICAgICAgIyBDb29raWVzIHdpdGggJzonIGNoYXJhY3RlciBpbiB0aGVpciBuYW1lLiBUaG91Z2ggbm90IG1lbnRpb25lZCBpbgorICAgICAgICAgICAgIyBSRkMsIHNlcnZlcnMgLyBicm93c2VycyBhbGxvdyBpdC4KKworICAgICAgICAgICAgIHsnZGF0YSc6ICdrZXk6dGVybT12YWx1ZTp0ZXJtJywKKyAgICAgICAgICAgICAnZGljdCc6IHsna2V5OnRlcm0nIDogJ3ZhbHVlOnRlcm0nfSwKKyAgICAgICAgICAgICAncmVwcic6ICI8U2ltcGxlQ29va2llOiBrZXk6dGVybT0ndmFsdWU6dGVybSc+IiwKKyAgICAgICAgICAgICAnb3V0cHV0JzogJ1NldC1Db29raWU6IGtleTp0ZXJtPXZhbHVlOnRlcm0nfSwKKwogICAgICAgICBdCiAKICAgICAgICAgZm9yIGNhc2UgaW4gY2FzZXM6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2h0dHBsaWIucHkgYi9MaWIvdGVzdC90ZXN0X2h0dHBsaWIucHkKaW5kZXggMjRjNzJmZi4uY2Y2MTU1MiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9odHRwbGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaHR0cGxpYi5weQpAQCAtMTg2LDYgKzE4NiwyMyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgyKSwgYid4dCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwLmlzY2xvc2VkKCkpCiAKKyAgICBkZWYgdGVzdF9wYXJ0aWFsX3JlYWRpbnRvcyhzZWxmKToKKyAgICAgICAgIyBpZiB3ZSBoYXZlIGEgbGVuZ2h0LCB0aGUgc3lzdGVtIGtub3dzIHdoZW4gdG8gY2xvc2UgaXRzZWxmCisgICAgICAgICMgc2FtZSBiZWhhdmlvdXIgdGhhbiB3aGVuIHdlIHJlYWQgdGhlIHdob2xlIHRoaW5nIHdpdGggcmVhZCgpCisgICAgICAgIGJvZHkgPSAiSFRUUC8xLjEgMjAwIE9rXHJcbkNvbnRlbnQtTGVuZ3RoOiA0XHJcblxyXG5UZXh0IgorICAgICAgICBzb2NrID0gRmFrZVNvY2tldChib2R5KQorICAgICAgICByZXNwID0gY2xpZW50LkhUVFBSZXNwb25zZShzb2NrKQorICAgICAgICByZXNwLmJlZ2luKCkKKyAgICAgICAgYiA9IGJ5dGVhcnJheSgyKQorICAgICAgICBuID0gcmVzcC5yZWFkaW50byhiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG4sIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnl0ZXMoYiksIGInVGUnKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlc3AuaXNjbG9zZWQoKSkKKyAgICAgICAgbiA9IHJlc3AucmVhZGludG8oYikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ5dGVzKGIpLCBiJ3h0JykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3AuaXNjbG9zZWQoKSkKKwogICAgIGRlZiB0ZXN0X2hvc3RfcG9ydChzZWxmKToKICAgICAgICAgIyBDaGVjayBpbnZhbGlkIGhvc3RfcG9ydAogCkBAIC0yMzQsNiArMjUxLDIxIEBACiAgICAgICAgIGlmIHJlc3AucmVhZCgpOgogICAgICAgICAgICAgc2VsZi5mYWlsKCJEaWQgbm90IGV4cGVjdCByZXNwb25zZSBmcm9tIEhFQUQgcmVxdWVzdCIpCiAKKyAgICBkZWYgdGVzdF9yZWFkaW50b19oZWFkKHNlbGYpOgorICAgICAgICAjIFRlc3QgdGhhdCB0aGUgbGlicmFyeSBkb2Vzbid0IGF0dGVtcHQgdG8gcmVhZCBhbnkgZGF0YQorICAgICAgICAjIGZyb20gYSBIRUFEIHJlcXVlc3QuICAoVGlja2xlcyBTRiBidWcgIzYyMjA0Mi4pCisgICAgICAgIHNvY2sgPSBGYWtlU29ja2V0KAorICAgICAgICAgICAgJ0hUVFAvMS4xIDIwMCBPS1xyXG4nCisgICAgICAgICAgICAnQ29udGVudC1MZW5ndGg6IDE0NDMyXHJcbicKKyAgICAgICAgICAgICdcclxuJywKKyAgICAgICAgICAgIE5vRU9GU3RyaW5nSU8pCisgICAgICAgIHJlc3AgPSBjbGllbnQuSFRUUFJlc3BvbnNlKHNvY2ssIG1ldGhvZD0iSEVBRCIpCisgICAgICAgIHJlc3AuYmVnaW4oKQorICAgICAgICBiID0gYnl0ZWFycmF5KDUpCisgICAgICAgIGlmIHJlc3AucmVhZGludG8oYikgIT0gMDoKKyAgICAgICAgICAgIHNlbGYuZmFpbCgiRGlkIG5vdCBleHBlY3QgcmVzcG9uc2UgZnJvbSBIRUFEIHJlcXVlc3QiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ5dGVzKGIpLCBiJ1x4MDAnKjUpCisKICAgICBkZWYgdGVzdF9zZW5kX2ZpbGUoc2VsZik6CiAgICAgICAgIGV4cGVjdGVkID0gKGInR0VUIC9mb28gSFRUUC8xLjFcclxuSG9zdDogZXhhbXBsZS5jb21cclxuJwogICAgICAgICAgICAgICAgICAgICBiJ0FjY2VwdC1FbmNvZGluZzogaWRlbnRpdHlcclxuQ29udGVudC1MZW5ndGg6JykKQEAgLTI4OSwxNSArMzIxLDI4IEBACiAgICAgICAgICAgICAnVHJhbnNmZXItRW5jb2Rpbmc6IGNodW5rZWRcclxuXHJcbicKICAgICAgICAgICAgICdhXHJcbicKICAgICAgICAgICAgICdoZWxsbyB3b3JsXHJcbicKLSAgICAgICAgICAgICcxXHJcbicKLSAgICAgICAgICAgICdkXHJcbicKKyAgICAgICAgICAgICczXHJcbicKKyAgICAgICAgICAgICdkISBcclxuJworICAgICAgICAgICAgJzhcclxuJworICAgICAgICAgICAgJ2FuZCBub3cgXHJcbicKKyAgICAgICAgICAgICcyMlxyXG4nCisgICAgICAgICAgICAnZm9yIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudFxyXG4nCiAgICAgICAgICkKKyAgICAgICAgZXhwZWN0ZWQgPSBiJ2hlbGxvIHdvcmxkISBhbmQgbm93IGZvciBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnQnCiAgICAgICAgIHNvY2sgPSBGYWtlU29ja2V0KGNodW5rZWRfc3RhcnQgKyAnMFxyXG4nKQogICAgICAgICByZXNwID0gY2xpZW50LkhUVFBSZXNwb25zZShzb2NrLCBtZXRob2Q9IkdFVCIpCiAgICAgICAgIHJlc3AuYmVnaW4oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLCBiJ2hlbGxvIHdvcmxkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgZXhwZWN0ZWQpCiAgICAgICAgIHJlc3AuY2xvc2UoKQogCisgICAgICAgICMgVmFyaW91cyByZWFkIHNpemVzCisgICAgICAgIGZvciBuIGluIHJhbmdlKDEsIDEyKToKKyAgICAgICAgICAgIHNvY2sgPSBGYWtlU29ja2V0KGNodW5rZWRfc3RhcnQgKyAnMFxyXG4nKQorICAgICAgICAgICAgcmVzcCA9IGNsaWVudC5IVFRQUmVzcG9uc2Uoc29jaywgbWV0aG9kPSJHRVQiKQorICAgICAgICAgICAgcmVzcC5iZWdpbigpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZChuKSArIHJlc3AucmVhZChuKSArIHJlc3AucmVhZCgpLCBleHBlY3RlZCkKKyAgICAgICAgICAgIHJlc3AuY2xvc2UoKQorCiAgICAgICAgIGZvciB4IGluICgnJywgJ2Zvb1xyXG4nKToKICAgICAgICAgICAgIHNvY2sgPSBGYWtlU29ja2V0KGNodW5rZWRfc3RhcnQgKyB4KQogICAgICAgICAgICAgcmVzcCA9IGNsaWVudC5IVFRQUmVzcG9uc2Uoc29jaywgbWV0aG9kPSJHRVQiKQpAQCAtMzA1LDkgKzM1MCw2NCBAQAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHJlc3AucmVhZCgpCiAgICAgICAgICAgICBleGNlcHQgY2xpZW50LkluY29tcGxldGVSZWFkIGFzIGk6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpLnBhcnRpYWwsIGInaGVsbG8gd29ybGQnKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihpKSwnSW5jb21wbGV0ZVJlYWQoMTEgYnl0ZXMgcmVhZCknKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGkpLCdJbmNvbXBsZXRlUmVhZCgxMSBieXRlcyByZWFkKScpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpLnBhcnRpYWwsIGV4cGVjdGVkKQorICAgICAgICAgICAgICAgIGV4cGVjdGVkX21lc3NhZ2UgPSAnSW5jb21wbGV0ZVJlYWQoJWQgYnl0ZXMgcmVhZCknICUgbGVuKGV4cGVjdGVkKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihpKSwgZXhwZWN0ZWRfbWVzc2FnZSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihpKSwgZXhwZWN0ZWRfbWVzc2FnZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdJbmNvbXBsZXRlUmVhZCBleHBlY3RlZCcpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHJlc3AuY2xvc2UoKQorCisgICAgZGVmIHRlc3RfcmVhZGludG9fY2h1bmtlZChzZWxmKToKKyAgICAgICAgY2h1bmtlZF9zdGFydCA9ICgKKyAgICAgICAgICAgICdIVFRQLzEuMSAyMDAgT0tcclxuJworICAgICAgICAgICAgJ1RyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkXHJcblxyXG4nCisgICAgICAgICAgICAnYVxyXG4nCisgICAgICAgICAgICAnaGVsbG8gd29ybFxyXG4nCisgICAgICAgICAgICAnM1xyXG4nCisgICAgICAgICAgICAnZCEgXHJcbicKKyAgICAgICAgICAgICc4XHJcbicKKyAgICAgICAgICAgICdhbmQgbm93IFxyXG4nCisgICAgICAgICAgICAnMjJcclxuJworICAgICAgICAgICAgJ2ZvciBzb21ldGhpbmcgY29tcGxldGVseSBkaWZmZXJlbnRcclxuJworICAgICAgICApCisgICAgICAgIGV4cGVjdGVkID0gYidoZWxsbyB3b3JsZCEgYW5kIG5vdyBmb3Igc29tZXRoaW5nIGNvbXBsZXRlbHkgZGlmZmVyZW50JworICAgICAgICBuZXhwZWN0ZWQgPSBsZW4oZXhwZWN0ZWQpCisgICAgICAgIGIgPSBieXRlYXJyYXkoMTI4KQorCisgICAgICAgIHNvY2sgPSBGYWtlU29ja2V0KGNodW5rZWRfc3RhcnQgKyAnMFxyXG4nKQorICAgICAgICByZXNwID0gY2xpZW50LkhUVFBSZXNwb25zZShzb2NrLCBtZXRob2Q9IkdFVCIpCisgICAgICAgIHJlc3AuYmVnaW4oKQorICAgICAgICBuID0gcmVzcC5yZWFkaW50byhiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJbOm5leHBlY3RlZF0sIGV4cGVjdGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG4sIG5leHBlY3RlZCkKKyAgICAgICAgcmVzcC5jbG9zZSgpCisKKyAgICAgICAgIyBWYXJpb3VzIHJlYWQgc2l6ZXMKKyAgICAgICAgZm9yIG4gaW4gcmFuZ2UoMSwgMTIpOgorICAgICAgICAgICAgc29jayA9IEZha2VTb2NrZXQoY2h1bmtlZF9zdGFydCArICcwXHJcbicpCisgICAgICAgICAgICByZXNwID0gY2xpZW50LkhUVFBSZXNwb25zZShzb2NrLCBtZXRob2Q9IkdFVCIpCisgICAgICAgICAgICByZXNwLmJlZ2luKCkKKyAgICAgICAgICAgIG0gPSBtZW1vcnl2aWV3KGIpCisgICAgICAgICAgICBpID0gcmVzcC5yZWFkaW50byhtWzA6bl0pCisgICAgICAgICAgICBpICs9IHJlc3AucmVhZGludG8obVtpOm4gKyBpXSkKKyAgICAgICAgICAgIGkgKz0gcmVzcC5yZWFkaW50byhtW2k6XSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYls6bmV4cGVjdGVkXSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGksIG5leHBlY3RlZCkKKyAgICAgICAgICAgIHJlc3AuY2xvc2UoKQorCisgICAgICAgIGZvciB4IGluICgnJywgJ2Zvb1xyXG4nKToKKyAgICAgICAgICAgIHNvY2sgPSBGYWtlU29ja2V0KGNodW5rZWRfc3RhcnQgKyB4KQorICAgICAgICAgICAgcmVzcCA9IGNsaWVudC5IVFRQUmVzcG9uc2Uoc29jaywgbWV0aG9kPSJHRVQiKQorICAgICAgICAgICAgcmVzcC5iZWdpbigpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgbiA9IHJlc3AucmVhZGludG8oYikKKyAgICAgICAgICAgIGV4Y2VwdCBjbGllbnQuSW5jb21wbGV0ZVJlYWQgYXMgaToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGkucGFydGlhbCwgZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfbWVzc2FnZSA9ICdJbmNvbXBsZXRlUmVhZCglZCBieXRlcyByZWFkKScgJSBsZW4oZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGkpLCBleHBlY3RlZF9tZXNzYWdlKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGkpLCBleHBlY3RlZF9tZXNzYWdlKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ0luY29tcGxldGVSZWFkIGV4cGVjdGVkJykKICAgICAgICAgICAgIGZpbmFsbHk6CkBAIC0zMzAsNiArNDMwLDI2IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFzb24sICdPSycpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwLmlzY2xvc2VkKCkpCiAKKyAgICBkZWYgdGVzdF9yZWFkaW50b19jaHVua2VkX2hlYWQoc2VsZik6CisgICAgICAgIGNodW5rZWRfc3RhcnQgPSAoCisgICAgICAgICAgICAnSFRUUC8xLjEgMjAwIE9LXHJcbicKKyAgICAgICAgICAgICdUcmFuc2Zlci1FbmNvZGluZzogY2h1bmtlZFxyXG5cclxuJworICAgICAgICAgICAgJ2FcclxuJworICAgICAgICAgICAgJ2hlbGxvIHdvcmxkXHJcbicKKyAgICAgICAgICAgICcxXHJcbicKKyAgICAgICAgICAgICdkXHJcbicKKyAgICAgICAgKQorICAgICAgICBzb2NrID0gRmFrZVNvY2tldChjaHVua2VkX3N0YXJ0ICsgJzBcclxuJykKKyAgICAgICAgcmVzcCA9IGNsaWVudC5IVFRQUmVzcG9uc2Uoc29jaywgbWV0aG9kPSJIRUFEIikKKyAgICAgICAgcmVzcC5iZWdpbigpCisgICAgICAgIGIgPSBieXRlYXJyYXkoNSkKKyAgICAgICAgbiA9IHJlc3AucmVhZGludG8oYikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ5dGVzKGIpLCBiJ1x4MDAnKjUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5zdGF0dXMsIDIwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYXNvbiwgJ09LJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3AuaXNjbG9zZWQoKSkKKwogICAgIGRlZiB0ZXN0X25lZ2F0aXZlX2NvbnRlbnRfbGVuZ3RoKHNlbGYpOgogICAgICAgICBzb2NrID0gRmFrZVNvY2tldCgKICAgICAgICAgICAgICdIVFRQLzEuMSAyMDAgT0tcclxuQ29udGVudC1MZW5ndGg6IC0xXHJcblxyXG5IZWxsb1xyXG4nKQpAQCAtNTQ1LDggKzY2NSw3IEBACiAgICAgZGVmIHRlc3RfbG9jYWxfZ29vZF9ob3N0bmFtZShzZWxmKToKICAgICAgICAgIyBUaGUgKHZhbGlkKSBjZXJ0IHZhbGlkYXRlcyB0aGUgSFRUUCBob3N0bmFtZQogICAgICAgICBpbXBvcnQgc3NsCi0gICAgICAgIGZyb20gdGVzdC5zc2xfc2VydmVycyBpbXBvcnQgbWFrZV9odHRwc19zZXJ2ZXIKLSAgICAgICAgc2VydmVyID0gbWFrZV9odHRwc19zZXJ2ZXIoc2VsZiwgQ0VSVF9sb2NhbGhvc3QpCisgICAgICAgIHNlcnZlciA9IHNlbGYubWFrZV9zZXJ2ZXIoQ0VSVF9sb2NhbGhvc3QpCiAgICAgICAgIGNvbnRleHQgPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfVExTdjEpCiAgICAgICAgIGNvbnRleHQudmVyaWZ5X21vZGUgPSBzc2wuQ0VSVF9SRVFVSVJFRAogICAgICAgICBjb250ZXh0LmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhDRVJUX2xvY2FsaG9zdCkKQEAgLTU1NCwxMiArNjczLDEyIEBACiAgICAgICAgIGgucmVxdWVzdCgnR0VUJywgJy9ub25leGlzdGVudCcpCiAgICAgICAgIHJlc3AgPSBoLmdldHJlc3BvbnNlKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnN0YXR1cywgNDA0KQorICAgICAgICBkZWwgc2VydmVyCiAKICAgICBkZWYgdGVzdF9sb2NhbF9iYWRfaG9zdG5hbWUoc2VsZik6CiAgICAgICAgICMgVGhlICh2YWxpZCkgY2VydCBkb2Vzbid0IHZhbGlkYXRlIHRoZSBIVFRQIGhvc3RuYW1lCiAgICAgICAgIGltcG9ydCBzc2wKLSAgICAgICAgZnJvbSB0ZXN0LnNzbF9zZXJ2ZXJzIGltcG9ydCBtYWtlX2h0dHBzX3NlcnZlcgotICAgICAgICBzZXJ2ZXIgPSBtYWtlX2h0dHBzX3NlcnZlcihzZWxmLCBDRVJUX2Zha2Vob3N0bmFtZSkKKyAgICAgICAgc2VydmVyID0gc2VsZi5tYWtlX3NlcnZlcihDRVJUX2Zha2Vob3N0bmFtZSkKICAgICAgICAgY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKICAgICAgICAgY29udGV4dC52ZXJpZnlfbW9kZSA9IHNzbC5DRVJUX1JFUVVJUkVECiAgICAgICAgIGNvbnRleHQubG9hZF92ZXJpZnlfbG9jYXRpb25zKENFUlRfZmFrZWhvc3RuYW1lKQpAQCAtNTc3LDYgKzY5Niw3IEBACiAgICAgICAgIGgucmVxdWVzdCgnR0VUJywgJy9ub25leGlzdGVudCcpCiAgICAgICAgIHJlc3AgPSBoLmdldHJlc3BvbnNlKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnN0YXR1cywgNDA0KQorICAgICAgICBkZWwgc2VydmVyCiAKICAgICBAdW5pdHRlc3Quc2tpcElmKG5vdCBoYXNhdHRyKGNsaWVudCwgJ0hUVFBTQ29ubmVjdGlvbicpLAogICAgICAgICAgICAgICAgICAgICAgJ2h0dHAuY2xpZW50LkhUVFBTQ29ubmVjdGlvbiBub3QgYXZhaWxhYmxlJykKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaHR0cHNlcnZlcnMucHkgYi9MaWIvdGVzdC90ZXN0X2h0dHBzZXJ2ZXJzLnB5CmluZGV4IDY4NTk3OWEuLjE0MzBmZjIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaHR0cHNlcnZlcnMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9odHRwc2VydmVycy5weQpAQCAtNDY4LDYgKzQ2OCwyMyBAQAogICAgICAgICBzZWxmLnNlbmRfZXJyb3IoNDE3KQogICAgICAgICByZXR1cm4gRmFsc2UKIAorCitjbGFzcyBBdWRpdGFibGVCeXRlc0lPOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmRhdGFzID0gW10KKworICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKKyAgICAgICAgc2VsZi5kYXRhcy5hcHBlbmQoZGF0YSkKKworICAgIGRlZiBnZXREYXRhKHNlbGYpOgorICAgICAgICByZXR1cm4gYicnLmpvaW4oc2VsZi5kYXRhcykKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBudW1Xcml0ZXMoc2VsZik6CisgICAgICAgIHJldHVybiBsZW4oc2VsZi5kYXRhcykKKworCiBjbGFzcyBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICIiIlRlc3QgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIEJhc2VIVFRQU2VydmVyLgogCkBAIC01MzQsMjcgKzU1MSw0OSBAQAogICAgICAgICBzZWxmLnZlcmlmeV9nZXRfY2FsbGVkKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRbLTFdLCBiJzxodG1sPjxib2R5PkRhdGE8L2JvZHk+PC9odG1sPlxyXG4nKQogCi0gICAgZGVmIHRlc3RfaGVhZGVyX2J1ZmZlcmluZyhzZWxmKToKLQotICAgICAgICBkZWYgX3JlYWRBbmRSZXNlZWsoZik6Ci0gICAgICAgICAgICBwb3MgPSBmLnRlbGwoKQotICAgICAgICAgICAgZi5zZWVrKDApCi0gICAgICAgICAgICBkYXRhID0gZi5yZWFkKCkKLSAgICAgICAgICAgIGYuc2Vlayhwb3MpCi0gICAgICAgICAgICByZXR1cm4gZGF0YQorICAgIGRlZiB0ZXN0X2hlYWRlcl9idWZmZXJpbmdfb2Zfc2VuZF9lcnJvcihzZWxmKToKIAogICAgICAgICBpbnB1dCA9IEJ5dGVzSU8oYidHRVQgLyBIVFRQLzEuMVxyXG5cclxuJykKLSAgICAgICAgb3V0cHV0ID0gQnl0ZXNJTygpCi0gICAgICAgIHNlbGYuaGFuZGxlci5yZmlsZSA9IGlucHV0Ci0gICAgICAgIHNlbGYuaGFuZGxlci53ZmlsZSA9IG91dHB1dAotICAgICAgICBzZWxmLmhhbmRsZXIucmVxdWVzdF92ZXJzaW9uID0gJ0hUVFAvMS4xJworICAgICAgICBvdXRwdXQgPSBBdWRpdGFibGVCeXRlc0lPKCkKKyAgICAgICAgaGFuZGxlciA9IFNvY2tldGxlc3NSZXF1ZXN0SGFuZGxlcigpCisgICAgICAgIGhhbmRsZXIucmZpbGUgPSBpbnB1dAorICAgICAgICBoYW5kbGVyLndmaWxlID0gb3V0cHV0CisgICAgICAgIGhhbmRsZXIucmVxdWVzdF92ZXJzaW9uID0gJ0hUVFAvMS4xJworICAgICAgICBoYW5kbGVyLnJlcXVlc3RsaW5lID0gJycKKyAgICAgICAgaGFuZGxlci5jb21tYW5kID0gTm9uZQogCi0gICAgICAgIHNlbGYuaGFuZGxlci5zZW5kX2hlYWRlcignRm9vJywgJ2ZvbycpCi0gICAgICAgIHNlbGYuaGFuZGxlci5zZW5kX2hlYWRlcignYmFyJywgJ2JhcicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX3JlYWRBbmRSZXNlZWsob3V0cHV0KSwgYicnKQotICAgICAgICBzZWxmLmhhbmRsZXIuZW5kX2hlYWRlcnMoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9yZWFkQW5kUmVzZWVrKG91dHB1dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgYidGb286IGZvb1xyXG5iYXI6IGJhclxyXG5cclxuJykKKyAgICAgICAgaGFuZGxlci5zZW5kX2Vycm9yKDQxOCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXRwdXQubnVtV3JpdGVzLCAyKQorCisgICAgZGVmIHRlc3RfaGVhZGVyX2J1ZmZlcmluZ19vZl9zZW5kX3Jlc3BvbnNlX29ubHkoc2VsZik6CisKKyAgICAgICAgaW5wdXQgPSBCeXRlc0lPKGInR0VUIC8gSFRUUC8xLjFcclxuXHJcbicpCisgICAgICAgIG91dHB1dCA9IEF1ZGl0YWJsZUJ5dGVzSU8oKQorICAgICAgICBoYW5kbGVyID0gU29ja2V0bGVzc1JlcXVlc3RIYW5kbGVyKCkKKyAgICAgICAgaGFuZGxlci5yZmlsZSA9IGlucHV0CisgICAgICAgIGhhbmRsZXIud2ZpbGUgPSBvdXRwdXQKKyAgICAgICAgaGFuZGxlci5yZXF1ZXN0X3ZlcnNpb24gPSAnSFRUUC8xLjEnCisKKyAgICAgICAgaGFuZGxlci5zZW5kX3Jlc3BvbnNlX29ubHkoNDE4KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dHB1dC5udW1Xcml0ZXMsIDApCisgICAgICAgIGhhbmRsZXIuZW5kX2hlYWRlcnMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dHB1dC5udW1Xcml0ZXMsIDEpCisKKyAgICBkZWYgdGVzdF9oZWFkZXJfYnVmZmVyaW5nX29mX3NlbmRfaGVhZGVyKHNlbGYpOgorCisgICAgICAgIGlucHV0ID0gQnl0ZXNJTyhiJ0dFVCAvIEhUVFAvMS4xXHJcblxyXG4nKQorICAgICAgICBvdXRwdXQgPSBBdWRpdGFibGVCeXRlc0lPKCkKKyAgICAgICAgaGFuZGxlciA9IFNvY2tldGxlc3NSZXF1ZXN0SGFuZGxlcigpCisgICAgICAgIGhhbmRsZXIucmZpbGUgPSBpbnB1dAorICAgICAgICBoYW5kbGVyLndmaWxlID0gb3V0cHV0CisgICAgICAgIGhhbmRsZXIucmVxdWVzdF92ZXJzaW9uID0gJ0hUVFAvMS4xJworCisgICAgICAgIGhhbmRsZXIuc2VuZF9oZWFkZXIoJ0ZvbycsICdmb28nKQorICAgICAgICBoYW5kbGVyLnNlbmRfaGVhZGVyKCdiYXInLCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXRwdXQubnVtV3JpdGVzLCAwKQorICAgICAgICBoYW5kbGVyLmVuZF9oZWFkZXJzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXRwdXQuZ2V0RGF0YSgpLCBiJ0ZvbzogZm9vXHJcbmJhcjogYmFyXHJcblxyXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dHB1dC5udW1Xcml0ZXMsIDEpCiAKICAgICBkZWYgdGVzdF9oZWFkZXJfdW5idWZmZXJlZF93aGVuX2NvbnRpbnVlKHNlbGYpOgogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ltYXBsaWIucHkgYi9MaWIvdGVzdC90ZXN0X2ltYXBsaWIucHkKaW5kZXggNWM5OWE1OC4uNTEyYmJhOSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9pbWFwbGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaW1hcGxpYi5weQpAQCAtMTEsOSArMTEsOSBAQAogaW1wb3J0IHRpbWUKIGltcG9ydCBjYWxlbmRhcgogCi1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcmVhcF90aHJlYWRzLCB2ZXJib3NlLCB0cmFuc2llbnRfaW50ZXJuZXQsIHJ1bl93aXRoX3R6Citmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcmVhcF90aHJlYWRzLCB2ZXJib3NlLCB0cmFuc2llbnRfaW50ZXJuZXQsIHJ1bl93aXRoX3R6LCBydW5fd2l0aF9sb2NhbGUKIGltcG9ydCB1bml0dGVzdAotCitmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZXpvbmUsIHRpbWVkZWx0YQogdHJ5OgogICAgIGltcG9ydCBzc2wKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKQEAgLTQzLDE0ICs0MywzMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltYXBsaWIuSW50ZXJuYWxkYXRlMnR1cGxlKAogICAgICAgICAgICAgYicyNSAoSU5URVJOQUxEQVRFICIwMi1BcHItMjAwMCAwMzozMDowMCArMDAwMCIpJykpCiAKLSAgICBkZWYgdGVzdF90aGF0X1RpbWUySW50ZXJuYWxkYXRlX3JldHVybnNfYV9yZXN1bHQoc2VsZik6Ci0gICAgICAgICMgV2UgY2FuIGNoZWNrIG9ubHkgdGhhdCBpdCBzdWNjZXNzZnVsbHkgcHJvZHVjZXMgYSByZXN1bHQsCi0gICAgICAgICMgbm90IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUgcmVzdWx0IGl0c2VsZiwgc2luY2UgdGhlIHJlc3VsdAotICAgICAgICAjIGRlcGVuZHMgb24gdGhlIHRpbWV6b25lIHRoZSBtYWNoaW5lIGlzIGluLgotICAgICAgICB0aW1ldmFsdWVzID0gWzIwMDAwMDAwMDAsIDIwMDAwMDAwMDAuMCwgdGltZS5sb2NhbHRpbWUoMjAwMDAwMDAwMCksCi0gICAgICAgICAgICAgICAgICAgICAgJyIxOC1NYXktMjAzMyAwNTozMzoyMCArMDIwMCInXQogCi0gICAgICAgIGZvciB0IGluIHRpbWV2YWx1ZXM6CisKKyAgICBkZWYgdGltZXZhbHVlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFsyMDAwMDAwMDAwLCAyMDAwMDAwMDAwLjAsIHRpbWUubG9jYWx0aW1lKDIwMDAwMDAwMDApLAorICAgICAgICAgICAgICAgICgyMDMzLCA1LCAxOCwgNSwgMzMsIDIwLCAtMSwgLTEsIC0xKSwKKyAgICAgICAgICAgICAgICAoMjAzMywgNSwgMTgsIDUsIDMzLCAyMCwgLTEsIC0xLCAxKSwKKyAgICAgICAgICAgICAgICBkYXRldGltZS5mcm9tdGltZXN0YW1wKDIwMDAwMDAwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lem9uZSh0aW1lZGVsdGEoMCwgMio2MCo2MCkpKSwKKyAgICAgICAgICAgICAgICAnIjE4LU1heS0yMDMzIDA1OjMzOjIwICswMjAwIiddCisKKyAgICBAcnVuX3dpdGhfbG9jYWxlKCdMQ19BTEwnLCAnZGVfREUnLCAnZnJfRlInKQorICAgIEBydW5fd2l0aF90eignU1RELTFEU1QnKQorICAgIGRlZiB0ZXN0X1RpbWUySW50ZXJuYWxkYXRlKHNlbGYpOgorICAgICAgICBleHBlY3RlZCA9ICciMTgtTWF5LTIwMzMgMDU6MzM6MjAgKzAyMDAiJworCisgICAgICAgIGZvciB0IGluIHNlbGYudGltZXZhbHVlcygpOgorICAgICAgICAgICAgaW50ZXJuYWwgPSBpbWFwbGliLlRpbWUySW50ZXJuYWxkYXRlKHQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludGVybmFsLCBleHBlY3RlZCkKKworICAgIGRlZiB0ZXN0X3RoYXRfVGltZTJJbnRlcm5hbGRhdGVfcmV0dXJuc19hX3Jlc3VsdChzZWxmKToKKyAgICAgICAgIyBXaXRob3V0IHR6c2V0LCB3ZSBjYW4gY2hlY2sgb25seSB0aGF0IGl0IHN1Y2Nlc3NmdWxseQorICAgICAgICAjIHByb2R1Y2VzIGEgcmVzdWx0LCBub3QgdGhlIGNvcnJlY3RuZXNzIG9mIHRoZSByZXN1bHQgaXRzZWxmLAorICAgICAgICAjIHNpbmNlIHRoZSByZXN1bHQgZGVwZW5kcyBvbiB0aGUgdGltZXpvbmUgdGhlIG1hY2hpbmUgaXMgaW4uCisgICAgICAgIGZvciB0IGluIHNlbGYudGltZXZhbHVlcygpOgogICAgICAgICAgICAgaW1hcGxpYi5UaW1lMkludGVybmFsZGF0ZSh0KQogCiAKQEAgLTI2NSwxMSArMjgxLDU4IEBACiAgICAgcG9ydCA9IDk5MwogICAgIGltYXBfY2xhc3MgPSBJTUFQNF9TU0wKIAorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgY3JlYXRlX3NzbF9jb250ZXh0KHNlbGYpOgorICAgICAgICBzc2xfY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9TU0x2MjMpCisgICAgICAgIHNzbF9jb250ZXh0LmxvYWRfY2VydF9jaGFpbihDRVJURklMRSkKKyAgICAgICAgcmV0dXJuIHNzbF9jb250ZXh0CisKKyAgICBkZWYgY2hlY2tfbG9naW5jYXBhKHNlbGYsIHNlcnZlcik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBjYXAgaW4gc2VydmVyLmNhcGFiaWxpdGllczoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoY2FwLCBzdHIpCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdMT0dJTkRJU0FCTEVEJywgc2VydmVyLmNhcGFiaWxpdGllcykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0FVVEg9UExBSU4nLCBzZXJ2ZXIuY2FwYWJpbGl0aWVzKQorICAgICAgICAgICAgcnMgPSBzZXJ2ZXIubG9naW4oc2VsZi51c2VybmFtZSwgc2VsZi5wYXNzd29yZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnNbMF0sICdPSycpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZXJ2ZXIubG9nb3V0KCkKKwogICAgIGRlZiB0ZXN0X2xvZ2luY2FwYShzZWxmKToKLSAgICAgICAgZm9yIGNhcCBpbiBzZWxmLnNlcnZlci5jYXBhYmlsaXRpZXM6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoY2FwLCBzdHIpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ0xPR0lORElTQUJMRUQnLCBzZWxmLnNlcnZlci5jYXBhYmlsaXRpZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0FVVEg9UExBSU4nLCBzZWxmLnNlcnZlci5jYXBhYmlsaXRpZXMpCisgICAgICAgIHdpdGggdHJhbnNpZW50X2ludGVybmV0KHNlbGYuaG9zdCk6CisgICAgICAgICAgICBfc2VydmVyID0gc2VsZi5pbWFwX2NsYXNzKHNlbGYuaG9zdCwgc2VsZi5wb3J0KQorICAgICAgICAgICAgc2VsZi5jaGVja19sb2dpbmNhcGEoX3NlcnZlcikKKworICAgIGRlZiB0ZXN0X2xvZ2luY2FwYV93aXRoX2NsaWVudF9jZXJ0ZmlsZShzZWxmKToKKyAgICAgICAgd2l0aCB0cmFuc2llbnRfaW50ZXJuZXQoc2VsZi5ob3N0KToKKyAgICAgICAgICAgIF9zZXJ2ZXIgPSBzZWxmLmltYXBfY2xhc3Moc2VsZi5ob3N0LCBzZWxmLnBvcnQsIGNlcnRmaWxlPUNFUlRGSUxFKQorICAgICAgICAgICAgc2VsZi5jaGVja19sb2dpbmNhcGEoX3NlcnZlcikKKworICAgIGRlZiB0ZXN0X2xvZ2luY2FwYV93aXRoX2NsaWVudF9zc2xfY29udGV4dChzZWxmKToKKyAgICAgICAgd2l0aCB0cmFuc2llbnRfaW50ZXJuZXQoc2VsZi5ob3N0KToKKyAgICAgICAgICAgIF9zZXJ2ZXIgPSBzZWxmLmltYXBfY2xhc3Moc2VsZi5ob3N0LCBzZWxmLnBvcnQsIHNzbF9jb250ZXh0PXNlbGYuY3JlYXRlX3NzbF9jb250ZXh0KCkpCisgICAgICAgICAgICBzZWxmLmNoZWNrX2xvZ2luY2FwYShfc2VydmVyKQorCisgICAgZGVmIHRlc3RfbG9nb3V0KHNlbGYpOgorICAgICAgICB3aXRoIHRyYW5zaWVudF9pbnRlcm5ldChzZWxmLmhvc3QpOgorICAgICAgICAgICAgX3NlcnZlciA9IHNlbGYuaW1hcF9jbGFzcyhzZWxmLmhvc3QsIHNlbGYucG9ydCkKKyAgICAgICAgICAgIHJzID0gX3NlcnZlci5sb2dvdXQoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyc1swXSwgJ0JZRScpCisKKyAgICBkZWYgdGVzdF9zc2xfY29udGV4dF9jZXJ0ZmlsZV9leGNsdXNpdmUoc2VsZik6CisgICAgICAgIHdpdGggdHJhbnNpZW50X2ludGVybmV0KHNlbGYuaG9zdCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLmltYXBfY2xhc3MsIHNlbGYuaG9zdCwgc2VsZi5wb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydGZpbGU9Q0VSVEZJTEUsIHNzbF9jb250ZXh0PXNlbGYuY3JlYXRlX3NzbF9jb250ZXh0KCkpCisKKyAgICBkZWYgdGVzdF9zc2xfY29udGV4dF9rZXlmaWxlX2V4Y2x1c2l2ZShzZWxmKToKKyAgICAgICAgd2l0aCB0cmFuc2llbnRfaW50ZXJuZXQoc2VsZi5ob3N0KToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlbGYuaW1hcF9jbGFzcywgc2VsZi5ob3N0LCBzZWxmLnBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlmaWxlPUNFUlRGSUxFLCBzc2xfY29udGV4dD1zZWxmLmNyZWF0ZV9zc2xfY29udGV4dCgpKQogCiAKIGRlZiB0ZXN0X21haW4oKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaW1wLnB5IGIvTGliL3Rlc3QvdGVzdF9pbXAucHkKaW5kZXggNTUxYWQxYi4uN2IwYzcyNyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9pbXAucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9pbXAucHkKQEAgLTEsMTEgKzEsMTIgQEAKIGltcG9ydCBpbXAKK2ltcG9ydCBpbXBvcnRsaWIKIGltcG9ydCBvcwogaW1wb3J0IG9zLnBhdGgKIGltcG9ydCBzaHV0aWwKIGltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0Ci1pbXBvcnQgaW1wb3J0bGliCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB3YXJuaW5ncwogCiBjbGFzcyBMb2NrVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogCkBAIC01OCw2ICs1OSwxMCBAQAogICAgICAgICAgICAgd2l0aCBpbXAuZmluZF9tb2R1bGUoJ21vZHVsZV8nICsgbW9kLCBzZWxmLnRlc3RfcGF0aClbMF0gYXMgZmQ6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmZC5lbmNvZGluZywgZW5jb2RpbmcpCiAKKyAgICAgICAgcGF0aCA9IFtvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pXQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFN5bnRheEVycm9yKToKKyAgICAgICAgICAgIGltcC5maW5kX21vZHVsZSgnYmFkc3ludGF4X3BlcDMxMjAnLCBwYXRoKQorCiAgICAgZGVmIHRlc3RfaXNzdWUxMjY3KHNlbGYpOgogICAgICAgICBmb3IgbW9kLCBlbmNvZGluZywgXyBpbiBzZWxmLnRlc3Rfc3RyaW5nczoKICAgICAgICAgICAgIGZwLCBmaWxlbmFtZSwgaW5mbyAgPSBpbXAuZmluZF9tb2R1bGUoJ21vZHVsZV8nICsgbW9kLApAQCAtMTUwLDE4ICsxNTUsMjQgQEAKICAgICAgICAgICAgICAgICBtb2QgPSBpbXAubG9hZF9tb2R1bGUodGVtcF9tb2RfbmFtZSwgZmlsZSwgZmlsZW5hbWUsIGluZm8pCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2QuYSwgMSkKIAotICAgICAgICAgICAgbW9kID0gaW1wLmxvYWRfc291cmNlKHRlbXBfbW9kX25hbWUsIHRlbXBfbW9kX25hbWUgKyAnLnB5JykKKyAgICAgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKKyAgICAgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoJ2lnbm9yZScpCisgICAgICAgICAgICAgICAgbW9kID0gaW1wLmxvYWRfc291cmNlKHRlbXBfbW9kX25hbWUsIHRlbXBfbW9kX25hbWUgKyAnLnB5JykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kLmEsIDEpCiAKLSAgICAgICAgICAgIG1vZCA9IGltcC5sb2FkX2NvbXBpbGVkKAotICAgICAgICAgICAgICAgIHRlbXBfbW9kX25hbWUsIGltcC5jYWNoZV9mcm9tX3NvdXJjZSh0ZW1wX21vZF9uYW1lICsgJy5weScpKQorICAgICAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcignaWdub3JlJykKKyAgICAgICAgICAgICAgICBtb2QgPSBpbXAubG9hZF9jb21waWxlZCgKKyAgICAgICAgICAgICAgICAgICAgdGVtcF9tb2RfbmFtZSwgaW1wLmNhY2hlX2Zyb21fc291cmNlKHRlbXBfbW9kX25hbWUgKyAnLnB5JykpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZC5hLCAxKQogCiAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHModGVzdF9wYWNrYWdlX25hbWUpOgogICAgICAgICAgICAgICAgIG9zLm1rZGlyKHRlc3RfcGFja2FnZV9uYW1lKQogICAgICAgICAgICAgd2l0aCBvcGVuKGluaXRfZmlsZV9uYW1lLCAndycpIGFzIGZpbGU6CiAgICAgICAgICAgICAgICAgZmlsZS53cml0ZSgnYiA9IDJcbicpCi0gICAgICAgICAgICBwYWNrYWdlID0gaW1wLmxvYWRfcGFja2FnZSh0ZXN0X3BhY2thZ2VfbmFtZSwgdGVzdF9wYWNrYWdlX25hbWUpCisgICAgICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdpZ25vcmUnKQorICAgICAgICAgICAgICAgIHBhY2thZ2UgPSBpbXAubG9hZF9wYWNrYWdlKHRlc3RfcGFja2FnZV9uYW1lLCB0ZXN0X3BhY2thZ2VfbmFtZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFja2FnZS5iLCAyKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgZGVsIHN5cy5wYXRoWzBdCkBAIC0xNzUsNiArMTg2LDE3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN5bnRheEVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICBpbXAuZmluZF9tb2R1bGUsICJiYWRzeW50YXhfcGVwMzEyMCIsIFtwYXRoXSkKIAorICAgIGRlZiB0ZXN0X2xvYWRfZHluYW1pY19JbXBvcnRFcnJvcl9wYXRoKHNlbGYpOgorICAgICAgICAjIElzc3VlICMxNTU5NTQ5IGFkZGVkIGBuYW1lYCBhbmQgYHBhdGhgIGF0dHJpYnV0ZXMgdG8gSW1wb3J0RXJyb3IKKyAgICAgICAgIyBpbiBvcmRlciB0byBwcm92aWRlIGJldHRlciBkZXRhaWwuIElzc3VlICMxMDg1NCBpbXBsZW1lbnRlZCB0aG9zZQorICAgICAgICAjIGF0dHJpYnV0ZXMgb24gaW1wb3J0IGZhaWx1cmVzIG9mIGV4dGVuc2lvbnMgb24gV2luZG93cy4KKyAgICAgICAgcGF0aCA9ICdib2d1cyBmaWxlIHBhdGgnCisgICAgICAgIG5hbWUgPSAnZXh0ZW5zaW9uJworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKSBhcyBlcnI6CisgICAgICAgICAgICBpbXAubG9hZF9keW5hbWljKG5hbWUsIHBhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4ocGF0aCwgZXJyLmV4Y2VwdGlvbi5wYXRoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWUsIGVyci5leGNlcHRpb24ubmFtZSkKKwogCiBjbGFzcyBSZWxvYWRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTIxMiw2OSArMjM0LDYyIEBACiAgICAgZGVmIHRlc3RfY2FjaGVfZnJvbV9zb3VyY2Uoc2VsZik6CiAgICAgICAgICMgR2l2ZW4gdGhlIHBhdGggdG8gYSAucHkgZmlsZSwgcmV0dXJuIHRoZSBwYXRoIHRvIGl0cyBQRVAgMzE0NwogICAgICAgICAjIGRlZmluZWQgLnB5YyBmaWxlIChpLmUuIHVuZGVyIF9fcHljYWNoZV9fKS4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGltcC5jYWNoZV9mcm9tX3NvdXJjZSgnL2Zvby9iYXIvYmF6L3F1eC5weScsIFRydWUpLAotICAgICAgICAgICAgJy9mb28vYmFyL2Jhei9fX3B5Y2FjaGVfXy9xdXgue30ucHljJy5mb3JtYXQoc2VsZi50YWcpKQorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKCdmb28nLCAnYmFyJywgJ2JheicsICdxdXgucHknKQorICAgICAgICBleHBlY3QgPSBvcy5wYXRoLmpvaW4oJ2ZvbycsICdiYXInLCAnYmF6JywgJ19fcHljYWNoZV9fJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdxdXgue30ucHljJy5mb3JtYXQoc2VsZi50YWcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGltcC5jYWNoZV9mcm9tX3NvdXJjZShwYXRoLCBUcnVlKSwgZXhwZWN0KQorCisgICAgZGVmIHRlc3RfY2FjaGVfZnJvbV9zb3VyY2Vfbm9fZG90KHNlbGYpOgorICAgICAgICAjIERpcmVjdG9yeSB3aXRoIGEgZG90LCBmaWxlbmFtZSB3aXRob3V0IGRvdC4KKyAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbignZm9vLmJhcicsICdmaWxlJykKKyAgICAgICAgZXhwZWN0ID0gb3MucGF0aC5qb2luKCdmb28uYmFyJywgJ19fcHljYWNoZV9fJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWxle30ucHljJy5mb3JtYXQoc2VsZi50YWcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGltcC5jYWNoZV9mcm9tX3NvdXJjZShwYXRoLCBUcnVlKSwgZXhwZWN0KQogCiAgICAgZGVmIHRlc3RfY2FjaGVfZnJvbV9zb3VyY2Vfb3B0aW1pemVkKHNlbGYpOgogICAgICAgICAjIEdpdmVuIHRoZSBwYXRoIHRvIGEgLnB5IGZpbGUsIHJldHVybiB0aGUgcGF0aCB0byBpdHMgUEVQIDMxNDcKICAgICAgICAgIyBkZWZpbmVkIC5weW8gZmlsZSAoaS5lLiB1bmRlciBfX3B5Y2FjaGVfXykuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBpbXAuY2FjaGVfZnJvbV9zb3VyY2UoJy9mb28vYmFyL2Jhei9xdXgucHknLCBGYWxzZSksCi0gICAgICAgICAgICAnL2Zvby9iYXIvYmF6L19fcHljYWNoZV9fL3F1eC57fS5weW8nLmZvcm1hdChzZWxmLnRhZykpCisgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oJ2ZvbycsICdiYXInLCAnYmF6JywgJ3F1eC5weScpCisgICAgICAgIGV4cGVjdCA9IG9zLnBhdGguam9pbignZm9vJywgJ2JhcicsICdiYXonLCAnX19weWNhY2hlX18nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3F1eC57fS5weW8nLmZvcm1hdChzZWxmLnRhZykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1wLmNhY2hlX2Zyb21fc291cmNlKHBhdGgsIEZhbHNlKSwgZXhwZWN0KQogCiAgICAgZGVmIHRlc3RfY2FjaGVfZnJvbV9zb3VyY2VfY3dkKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGltcC5jYWNoZV9mcm9tX3NvdXJjZSgnZm9vLnB5JywgVHJ1ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgb3Muc2VwLmpvaW4oKCdfX3B5Y2FjaGVfXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb28ue30ucHljJy5mb3JtYXQoc2VsZi50YWcpKSkpCisgICAgICAgIHBhdGggPSAnZm9vLnB5JworICAgICAgICBleHBlY3QgPSBvcy5wYXRoLmpvaW4oJ19fcHljYWNoZV9fJywgJ2Zvby57fS5weWMnLmZvcm1hdChzZWxmLnRhZykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1wLmNhY2hlX2Zyb21fc291cmNlKHBhdGgsIFRydWUpLCBleHBlY3QpCiAKICAgICBkZWYgdGVzdF9jYWNoZV9mcm9tX3NvdXJjZV9vdmVycmlkZShzZWxmKToKICAgICAgICAgIyBXaGVuIGRlYnVnX292ZXJyaWRlIGlzIG5vdCBOb25lLCBpdCBjYW4gYmUgYW55IHRydWUtaXNoIG9yIGZhbHNlLWlzaAogICAgICAgICAjIHZhbHVlLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaW1wLmNhY2hlX2Zyb21fc291cmNlKCcvZm9vL2Jhci9iYXoucHknLCBbXSksCi0gICAgICAgICAgICAnL2Zvby9iYXIvX19weWNhY2hlX18vYmF6Lnt9LnB5bycuZm9ybWF0KHNlbGYudGFnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIGltcC5jYWNoZV9mcm9tX3NvdXJjZSgnL2Zvby9iYXIvYmF6LnB5JywgWzE3XSksCi0gICAgICAgICAgICAnL2Zvby9iYXIvX19weWNhY2hlX18vYmF6Lnt9LnB5YycuZm9ybWF0KHNlbGYudGFnKSkKKyAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbignZm9vJywgJ2JhcicsICdiYXoucHknKQorICAgICAgICBwYXJ0aWFsX2V4cGVjdCA9IG9zLnBhdGguam9pbignZm9vJywgJ2JhcicsICdfX3B5Y2FjaGVfXycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYXoue30ucHknLmZvcm1hdChzZWxmLnRhZykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1wLmNhY2hlX2Zyb21fc291cmNlKHBhdGgsIFtdKSwgcGFydGlhbF9leHBlY3QgKyAnbycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1wLmNhY2hlX2Zyb21fc291cmNlKHBhdGgsIFsxN10pLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpYWxfZXhwZWN0ICsgJ2MnKQogICAgICAgICAjIEhvd2V2ZXIgaWYgdGhlIGJvb2wtaXNobmVzcyBjYW4ndCBiZSBkZXRlcm1pbmVkLCB0aGUgZXhjZXB0aW9uCiAgICAgICAgICMgcHJvcGFnYXRlcy4KICAgICAgICAgY2xhc3MgQmVhcmlzaDoKICAgICAgICAgICAgIGRlZiBfX2Jvb2xfXyhzZWxmKTogcmFpc2UgUnVudGltZUVycm9yCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgUnVudGltZUVycm9yLAotICAgICAgICAgICAgaW1wLmNhY2hlX2Zyb21fc291cmNlLCAnL2Zvby9iYXIvYmF6LnB5JywgQmVhcmlzaCgpKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvcik6CisgICAgICAgICAgICBpbXAuY2FjaGVfZnJvbV9zb3VyY2UoJy9mb28vYmFyL2Jhei5weScsIEJlYXJpc2goKSkKIAotICAgIEB1bml0dGVzdC5za2lwSWYob3MuYWx0c2VwIGlzIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAndGVzdCBtZWFuaW5nZnVsIG9ubHkgd2hlcmUgb3MuYWx0c2VwIGlzIGRlZmluZWQnKQotICAgIGRlZiB0ZXN0X2FsdHNlcF9jYWNoZV9mcm9tX3NvdXJjZShzZWxmKToKLSAgICAgICAgIyBXaW5kb3dzIHBhdGggYW5kIFBFUCAzMTQ3LgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgaW1wLmNhY2hlX2Zyb21fc291cmNlKCdcXGZvb1xcYmFyXFxiYXpcXHF1eC5weScsIFRydWUpLAotICAgICAgICAgICAgJ1xcZm9vXFxiYXJcXGJhelxcX19weWNhY2hlX19cXHF1eC57fS5weWMnLmZvcm1hdChzZWxmLnRhZykpCi0KLSAgICBAdW5pdHRlc3Quc2tpcElmKG9zLmFsdHNlcCBpcyBOb25lLAotICAgICAgICAgICAgICAgICAgICAgJ3Rlc3QgbWVhbmluZ2Z1bCBvbmx5IHdoZXJlIG9zLmFsdHNlcCBpcyBkZWZpbmVkJykKLSAgICBkZWYgdGVzdF9hbHRzZXBfYW5kX3NlcF9jYWNoZV9mcm9tX3NvdXJjZShzZWxmKToKLSAgICAgICAgIyBXaW5kb3dzIHBhdGggYW5kIFBFUCAzMTQ3IHdoZXJlIGFsdHNlcCBpcyByaWdodCBvZiBzZXAuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBpbXAuY2FjaGVfZnJvbV9zb3VyY2UoJ1xcZm9vXFxiYXIvYmF6XFxxdXgucHknLCBUcnVlKSwKLSAgICAgICAgICAgICdcXGZvb1xcYmFyL2JhelxcX19weWNhY2hlX19cXHF1eC57fS5weWMnLmZvcm1hdChzZWxmLnRhZykpCi0KLSAgICBAdW5pdHRlc3Quc2tpcElmKG9zLmFsdHNlcCBpcyBOb25lLAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLnNlcCA9PSAnXFwnIGFuZCBvcy5hbHRzZXAgPT0gJy8nLAogICAgICAgICAgICAgICAgICAgICAgJ3Rlc3QgbWVhbmluZ2Z1bCBvbmx5IHdoZXJlIG9zLmFsdHNlcCBpcyBkZWZpbmVkJykKICAgICBkZWYgdGVzdF9zZXBfYWx0c2VwX2FuZF9zZXBfY2FjaGVfZnJvbV9zb3VyY2Uoc2VsZik6CiAgICAgICAgICMgV2luZG93cyBwYXRoIGFuZCBQRVAgMzE0NyB3aGVyZSBzZXAgaXMgcmlnaHQgb2YgYWx0c2VwLgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAogICAgICAgICAgICAgaW1wLmNhY2hlX2Zyb21fc291cmNlKCdcXGZvb1xcYmFyXFxiYXovcXV4LnB5JywgVHJ1ZSksCi0gICAgICAgICAgICAnXFxmb29cXGJhclxcYmF6L19fcHljYWNoZV9fL3F1eC57fS5weWMnLmZvcm1hdChzZWxmLnRhZykpCisgICAgICAgICAgICAnXFxmb29cXGJhclxcYmF6XFxfX3B5Y2FjaGVfX1xccXV4Lnt9LnB5YycuZm9ybWF0KHNlbGYudGFnKSkKIAogICAgIGRlZiB0ZXN0X3NvdXJjZV9mcm9tX2NhY2hlKHNlbGYpOgogICAgICAgICAjIEdpdmVuIHRoZSBwYXRoIHRvIGEgUEVQIDMxNDcgZGVmaW5lZCAucHljIGZpbGUsIHJldHVybiB0aGUgcGF0aCB0bwogICAgICAgICAjIGl0cyBzb3VyY2UuICBUaGlzIHRlc3RzIHRoZSBnb29kIHBhdGguCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1wLnNvdXJjZV9mcm9tX2NhY2hlKAotICAgICAgICAgICAgJy9mb28vYmFyL2Jhei9fX3B5Y2FjaGVfXy9xdXgue30ucHljJy5mb3JtYXQoc2VsZi50YWcpKSwKLSAgICAgICAgICAgICcvZm9vL2Jhci9iYXovcXV4LnB5JykKKyAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbignZm9vJywgJ2JhcicsICdiYXonLCAnX19weWNhY2hlX18nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdxdXgue30ucHljJy5mb3JtYXQoc2VsZi50YWcpKQorICAgICAgICBleHBlY3QgPSBvcy5wYXRoLmpvaW4oJ2ZvbycsICdiYXInLCAnYmF6JywgJ3F1eC5weScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1wLnNvdXJjZV9mcm9tX2NhY2hlKHBhdGgpLCBleHBlY3QpCiAKICAgICBkZWYgdGVzdF9zb3VyY2VfZnJvbV9jYWNoZV9iYWRfcGF0aChzZWxmKToKICAgICAgICAgIyBXaGVuIHRoZSBwYXRoIHRvIGEgcHljIGZpbGUgaXMgbm90IGluIFBFUCAzMTQ3IGZvcm1hdCwgYSBWYWx1ZUVycm9yCkBAIC0zMDUsNiArMzIwLDEyIEBACiAgICAgICAgICAgICAnL2Zvby9iYXIvZm9vLmNweXRob24tMzIuZm9vLnB5YycpCiAKICAgICBkZWYgdGVzdF9wYWNrYWdlX19fZmlsZV9fKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBtID0gX19pbXBvcnRfXygncGVwMzE0NycpCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgicGVwMzE0NyBtb2R1bGUgYWxyZWFkeSBleGlzdHM6ICVyIiAlIChtLCkpCiAgICAgICAgICMgVGVzdCB0aGF0IGEgcGFja2FnZSdzIF9fZmlsZV9fIHBvaW50cyB0byB0aGUgcmlnaHQgc291cmNlIGRpcmVjdG9yeS4KICAgICAgICAgb3MubWtkaXIoJ3BlcDMxNDcnKQogICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MuY3VyZGlyKQpAQCAtMzE0LDE0ICszMzUsMTYgQEAKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoJ3BlcDMxNDcnKQogICAgICAgICBzZWxmLmFkZENsZWFudXAoY2xlYW51cCkKICAgICAgICAgIyBUb3VjaCB0aGUgX19pbml0X18ucHkgZmlsZS4KLSAgICAgICAgd2l0aCBvcGVuKCdwZXAzMTQ3L19faW5pdF9fLnB5JywgJ3cnKToKLSAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc3VwcG9ydC5jcmVhdGVfZW1wdHlfZmlsZSgncGVwMzE0Ny9fX2luaXRfXy5weScpCisgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCisgICAgICAgIGV4cGVjdGVkX19fZmlsZV9fID0gb3Muc2VwLmpvaW4oKCcuJywgJ3BlcDMxNDcnLCAnX19pbml0X18ucHknKSkKICAgICAgICAgbSA9IF9faW1wb3J0X18oJ3BlcDMxNDcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0uX19maWxlX18sIGV4cGVjdGVkX19fZmlsZV9fLCAobS5fX2ZpbGVfXywgbS5fX3BhdGhfXywgc3lzLnBhdGgsIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlKSkKICAgICAgICAgIyBFbnN1cmUgd2UgbG9hZCB0aGUgcHljIGZpbGUuCi0gICAgICAgIHN1cHBvcnQuZm9yZ2V0KCdwZXAzMTQ3JykKKyAgICAgICAgc3VwcG9ydC51bmxvYWQoJ3BlcDMxNDcnKQogICAgICAgICBtID0gX19pbXBvcnRfXygncGVwMzE0NycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5fX2ZpbGVfXywKLSAgICAgICAgICAgICAgICAgICAgICAgICBvcy5zZXAuam9pbigoJy4nLCAncGVwMzE0NycsICdfX2luaXRfXy5weScpKSkKKyAgICAgICAgc3VwcG9ydC51bmxvYWQoJ3BlcDMxNDcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0uX19maWxlX18sIGV4cGVjdGVkX19fZmlsZV9fLCAobS5fX2ZpbGVfXywgbS5fX3BhdGhfXywgc3lzLnBhdGgsIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlKSkKIAogCiBjbGFzcyBOdWxsSW1wb3J0ZXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2ltcG9ydC5weSBiL0xpYi90ZXN0L3Rlc3RfaW1wb3J0LnB5CmluZGV4IDQ4NDQzZWEuLjEwOTExNTggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaW1wb3J0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfaW1wb3J0LnB5CkBAIC0xLDcgKzEsOCBAQAogaW1wb3J0IGJ1aWx0aW5zCiBpbXBvcnQgaW1wCi1mcm9tIGltcG9ydGxpYi50ZXN0LmltcG9ydF8gaW1wb3J0IHRlc3RfcmVsYXRpdmVfaW1wb3J0cworZnJvbSBpbXBvcnRsaWIudGVzdC5pbXBvcnRfIGltcG9ydCB0ZXN0X3N1aXRlIGFzIGltcG9ydGxpYl9pbXBvcnRfdGVzdF9zdWl0ZQogZnJvbSBpbXBvcnRsaWIudGVzdC5pbXBvcnRfIGltcG9ydCB1dGlsIGFzIGltcG9ydGxpYl91dGlsCitpbXBvcnQgaW1wb3J0bGliCiBpbXBvcnQgbWFyc2hhbAogaW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZvcm0KQEAgLTEyLDExICsxMywxMyBAQAogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgdGV4dHdyYXAKIGltcG9ydCBlcnJubworaW1wb3J0IHNodXRpbAogCitpbXBvcnQgdGVzdC5zdXBwb3J0CiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgKAogICAgIEVudmlyb25tZW50VmFyR3VhcmQsIFRFU1RGTiwgY2hlY2tfd2FybmluZ3MsIGZvcmdldCwgaXNfanl0aG9uLAogICAgIG1ha2VfbGVnYWN5X3B5Yywgcm10cmVlLCBydW5fdW5pdHRlc3QsIHN3YXBfYXR0ciwgc3dhcF9pdGVtLCB0ZW1wX3VtYXNrLAotICAgIHVubGluaywgdW5sb2FkKQorICAgIHVubGluaywgdW5sb2FkLCBjcmVhdGVfZW1wdHlfZmlsZSwgY3B5dGhvbl9vbmx5KQogZnJvbSB0ZXN0IGltcG9ydCBzY3JpcHRfaGVscGVyCiAKIApAQCAtMzQsNiArMzcsNyBAQAogCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICByZW1vdmVfZmlsZXMoVEVTVEZOKQorICAgICAgICBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICB1bmxvYWQoVEVTVEZOKQpAQCAtNzEsNiArNzUsNyBAQAogCiAgICAgICAgICAgICBpZiBURVNURk4gaW4gc3lzLm1vZHVsZXM6CiAgICAgICAgICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW1RFU1RGTl0KKyAgICAgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBtb2QgPSBfX2ltcG9ydF9fKFRFU1RGTikKQEAgLTk4LDI1ICsxMDMsMjQgQEAKIAogICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLm5hbWUgPT0gJ3Bvc2l4JywKICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdCBtZWFuaW5nZnVsIG9ubHkgb24gcG9zaXggc3lzdGVtcyIpCi0gICAgZGVmIHRlc3RfZXhlY3V0ZV9iaXRfbm90X2NvcGllZChzZWxmKToKLSAgICAgICAgIyBJc3N1ZSA2MDcwOiB1bmRlciBwb3NpeCAucHljIGZpbGVzIGdvdCB0aGVpciBleGVjdXRlIGJpdCBzZXQgaWYKLSAgICAgICAgIyB0aGUgLnB5IGZpbGUgaGFkIHRoZSBleGVjdXRlIGJpdCBzZXQsIGJ1dCB0aGV5IGFyZW4ndCBleGVjdXRhYmxlLgotICAgICAgICB3aXRoIHRlbXBfdW1hc2soMG8wMjIpOgorICAgIGRlZiB0ZXN0X2NyZWF0aW9uX21vZGUoc2VsZik6CisgICAgICAgIG1hc2sgPSAwbzAyMgorICAgICAgICB3aXRoIHRlbXBfdW1hc2sobWFzayk6CiAgICAgICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MuY3VyZGlyKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGZuYW1lID0gVEVTVEZOICsgb3MuZXh0c2VwICsgInB5IgotICAgICAgICAgICAgICAgIG9wZW4oZm5hbWUsICd3JykuY2xvc2UoKQotICAgICAgICAgICAgICAgIG9zLmNobW9kKGZuYW1lLCAoc3RhdC5TX0lSVVNSIHwgc3RhdC5TX0lSR1JQIHwgc3RhdC5TX0lST1RIIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXQuU19JWFVTUiB8IHN0YXQuU19JWEdSUCB8IHN0YXQuU19JWE9USCkpCisgICAgICAgICAgICAgICAgY3JlYXRlX2VtcHR5X2ZpbGUoZm5hbWUpCiAgICAgICAgICAgICAgICAgZm4gPSBpbXAuY2FjaGVfZnJvbV9zb3VyY2UoZm5hbWUpCiAgICAgICAgICAgICAgICAgdW5saW5rKGZuKQorICAgICAgICAgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgICAgICAgICAgX19pbXBvcnRfXyhURVNURk4pCiAgICAgICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZuKToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJfX2ltcG9ydF9fIGRpZCBub3QgcmVzdWx0IGluIGNyZWF0aW9uIG9mICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlaXRoZXIgYSAucHljIG9yIC5weW8gZmlsZSIpCiAgICAgICAgICAgICAgICAgcyA9IG9zLnN0YXQoZm4pCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0LlNfSU1PREUocy5zdF9tb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXQuU19JUlVTUiB8IHN0YXQuU19JUkdSUCB8IHN0YXQuU19JUk9USCkKKyAgICAgICAgICAgICAgICAjIENoZWNrIHRoYXQgdGhlIHVtYXNrIGlzIHJlc3BlY3RlZCwgYW5kIHRoZSBleGVjdXRhYmxlIGJpdHMKKyAgICAgICAgICAgICAgICAjIGFyZW4ndCBzZXQuCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0LlNfSU1PREUocy5zdF9tb2RlKSwgMG82NjYgJiB+bWFzaykKICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgZGVsIHN5cy5wYXRoWzBdCiAgICAgICAgICAgICAgICAgcmVtb3ZlX2ZpbGVzKFRFU1RGTikKQEAgLTE3MCw2ICsxNzQsNyBAQAogCiAgICAgICAgICMgTmVlZCB0byBiZSBhYmxlIHRvIGxvYWQgZnJvbSBjdXJyZW50IGRpci4KICAgICAgICAgc3lzLnBhdGguYXBwZW5kKCcnKQorICAgICAgICBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKQogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG1ha2VfbGVnYWN5X3B5YyhmaWxlbmFtZSkKQEAgLTI2Miw2ICsyNjcsNyBAQAogICAgICAgICAgICAgb3MucmVtb3ZlKHNvdXJjZSkKICAgICAgICAgICAgIGRlbCBzeXMubW9kdWxlc1tURVNURk5dCiAgICAgICAgICAgICBtYWtlX2xlZ2FjeV9weWMoc291cmNlKQorICAgICAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKICAgICAgICAgICAgIG1vZCA9IF9faW1wb3J0X18oVEVTVEZOKQogICAgICAgICAgICAgYmFzZSwgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChtb2QuX19maWxlX18pCiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKGV4dCwgKCcucHljJywgJy5weW8nKSkKQEAgLTI4MiwxMiArMjg4LDYgQEAKICAgICAgICAgaW1wb3J0IHRlc3Quc3VwcG9ydCBhcyB5CiAgICAgICAgIHNlbGYuYXNzZXJ0SXMoeSwgdGVzdC5zdXBwb3J0LCB5Ll9fbmFtZV9fKQogCi0gICAgZGVmIHRlc3RfaW1wb3J0X2luaXRsZXNzX2RpcmVjdG9yeV93YXJuaW5nKHNlbGYpOgotICAgICAgICB3aXRoIGNoZWNrX3dhcm5pbmdzKCgnJywgSW1wb3J0V2FybmluZykpOgotICAgICAgICAgICAgIyBKdXN0IGEgcmFuZG9tIG5vbi1wYWNrYWdlIGRpcmVjdG9yeSB3ZSBhbHdheXMgZXhwZWN0IHRvIGJlCi0gICAgICAgICAgICAjIHNvbWV3aGVyZSBpbiBzeXMucGF0aC4uLgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IsIF9faW1wb3J0X18sICJzaXRlLXBhY2thZ2VzIikKLQogICAgIGRlZiB0ZXN0X2ltcG9ydF9ieV9maWxlbmFtZShzZWxmKToKICAgICAgICAgcGF0aCA9IG9zLnBhdGguYWJzcGF0aChURVNURk4pCiAgICAgICAgIGVuY29kaW5nID0gc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpCkBAIC0yOTcsOCArMjk3LDYgQEAKICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoJ3BhdGggaXMgbm90IGVuY29kYWJsZSB0byB7fScuZm9ybWF0KGVuY29kaW5nKSkKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcikgYXMgYzoKICAgICAgICAgICAgIF9faW1wb3J0X18ocGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiSW1wb3J0IGJ5IGZpbGVuYW1lIGlzIG5vdCBzdXBwb3J0ZWQuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjLmV4Y2VwdGlvbi5hcmdzWzBdKQogCiAgICAgZGVmIHRlc3RfaW1wb3J0X2luX2RlbF9kb2VzX25vdF9jcmFzaChzZWxmKToKICAgICAgICAgIyBJc3N1ZSA0MjM2CkBAIC0zNjIsNiArMzYwLDcgQEAKICAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZV9uYW1lLCAidyIpIGFzIGY6CiAgICAgICAgICAgICBmLndyaXRlKHNlbGYubW9kdWxlX3NvdXJjZSkKICAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHNlbGYuZGlyX25hbWUpCisgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIHN5cy5wYXRoWzpdID0gc2VsZi5zeXNfcGF0aApAQCAtNDAxLDYgKzQwMCw3IEBACiAgICAgICAgIHB5X2NvbXBpbGUuY29tcGlsZShzZWxmLmZpbGVfbmFtZSwgZGZpbGU9dGFyZ2V0KQogICAgICAgICBvcy5yZW1vdmUoc2VsZi5maWxlX25hbWUpCiAgICAgICAgIHB5Y19maWxlID0gbWFrZV9sZWdhY3lfcHljKHNlbGYuZmlsZV9uYW1lKQorICAgICAgICBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKQogICAgICAgICBtb2QgPSBzZWxmLmltcG9ydF9tb2R1bGUoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZC5tb2R1bGVfZmlsZW5hbWUsIHB5Y19maWxlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZC5jb2RlX2ZpbGVuYW1lLCB0YXJnZXQpCkBAIC00MDksNyArNDA5LDcgQEAKICAgICBkZWYgdGVzdF9mb3JlaWduX2NvZGUoc2VsZik6CiAgICAgICAgIHB5X2NvbXBpbGUuY29tcGlsZShzZWxmLmZpbGVfbmFtZSkKICAgICAgICAgd2l0aCBvcGVuKHNlbGYuY29tcGlsZWRfbmFtZSwgInJiIikgYXMgZjoKLSAgICAgICAgICAgIGhlYWRlciA9IGYucmVhZCg4KQorICAgICAgICAgICAgaGVhZGVyID0gZi5yZWFkKDEyKQogICAgICAgICAgICAgY29kZSA9IG1hcnNoYWwubG9hZChmKQogICAgICAgICBjb25zdGFudHMgPSBsaXN0KGNvZGUuY29fY29uc3RzKQogICAgICAgICBmb3JlaWduX2NvZGUgPSB0ZXN0X21haW4uX19jb2RlX18KQEAgLTQ1MSw5ICs0NTEsMTEgQEAKICAgICAgICAgdW5sb2FkKCJ0ZXN0X3RyYWlsaW5nX3NsYXNoIikKIAogICAgICMgUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMzY3Ny4KLSAgICBkZWYgX3Rlc3RfVU5DX3BhdGgoc2VsZik6CisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3lzLnBsYXRmb3JtID09ICd3aW4zMicsICdXaW5kb3dzLXNwZWNpZmljJykKKyAgICBkZWYgdGVzdF9VTkNfcGF0aChzZWxmKToKICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihzZWxmLnBhdGgsICd0ZXN0X3RyYWlsaW5nX3NsYXNoLnB5JyksICd3JykgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoInRlc3RkYXRhID0gJ3Rlc3RfdHJhaWxpbmdfc2xhc2gnIikKKyAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKICAgICAgICAgIyBDcmVhdGUgdGhlIFVOQyBwYXRoLCBsaWtlIFxcbXlob3N0XGMkXGZvb1xiYXIuCiAgICAgICAgIHBhdGggPSBvcy5wYXRoLmFic3BhdGgoc2VsZi5wYXRoKQogICAgICAgICBpbXBvcnQgc29ja2V0CkBAIC00NjEsMTMgKzQ2MywxMyBAQAogICAgICAgICBkcml2ZSA9IHBhdGhbMF0KICAgICAgICAgdW5jID0gIlxcXFwlc1xcJXMkIiUoaG4sIGRyaXZlKQogICAgICAgICB1bmMgKz0gcGF0aFsyOl0KLSAgICAgICAgc3lzLnBhdGguYXBwZW5kKHBhdGgpCi0gICAgICAgIG1vZCA9IF9faW1wb3J0X18oInRlc3RfdHJhaWxpbmdfc2xhc2giKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZC50ZXN0ZGF0YSwgJ3Rlc3RfdHJhaWxpbmdfc2xhc2gnKQotICAgICAgICB1bmxvYWQoInRlc3RfdHJhaWxpbmdfc2xhc2giKQotCi0gICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgICAgIHRlc3RfVU5DX3BhdGggPSBfdGVzdF9VTkNfcGF0aAorICAgICAgICBzeXMucGF0aC5hcHBlbmQodW5jKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBtb2QgPSBfX2ltcG9ydF9fKCJ0ZXN0X3RyYWlsaW5nX3NsYXNoIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9kLnRlc3RkYXRhLCAndGVzdF90cmFpbGluZ19zbGFzaCcpCisgICAgICAgICAgICB1bmxvYWQoInRlc3RfdHJhaWxpbmdfc2xhc2giKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc3lzLnBhdGgucmVtb3ZlKHVuYykKIAogCiBjbGFzcyBSZWxhdGl2ZUltcG9ydFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTUwOCw3ICs1MTAsNyBAQAogCiAgICAgICAgICMgQ2hlY2sgcmVsYXRpdmUgaW1wb3J0IGZhaWxzIHdpdGggcGFja2FnZSBzZXQgdG8gYSBub24tc3RyaW5nCiAgICAgICAgIG5zID0gZGljdChfX3BhY2thZ2VfXz1vYmplY3QoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgY2hlY2tfcmVsYXRpdmUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY2hlY2tfcmVsYXRpdmUpCiAKICAgICBkZWYgdGVzdF9hYnNvbHV0ZV9pbXBvcnRfd2l0aG91dF9mdXR1cmUoc2VsZik6CiAgICAgICAgICMgSWYgZXhwbGljaXQgcmVsYXRpdmUgaW1wb3J0IHN5bnRheCBpcyB1c2VkLCB0aGVuIGRvIG5vdCB0cnkKQEAgLTU1Niw2ICs1NTgsNyBAQAogICAgICAgICB3aXRoIG9wZW4oc2VsZi5zb3VyY2UsICd3JykgYXMgZnA6CiAgICAgICAgICAgICBwcmludCgnIyBUaGlzIGlzIGEgdGVzdCBmaWxlIHdyaXR0ZW4gYnkgdGVzdF9pbXBvcnQucHknLCBmaWxlPWZwKQogICAgICAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MuY3VyZGlyKQorICAgICAgICBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBhc3NlcnQgc3lzLnBhdGhbMF0gPT0gb3MuY3VyZGlyLCAnVW5leHBlY3RlZCBzeXMucGF0aFswXScKQEAgLTYwMyw2ICs2MDYsNyBAQAogICAgICAgICBweWNfZmlsZSA9IG1ha2VfbGVnYWN5X3B5YyhzZWxmLnNvdXJjZSkKICAgICAgICAgb3MucmVtb3ZlKHNlbGYuc291cmNlKQogICAgICAgICB1bmxvYWQoVEVTVEZOKQorICAgICAgICBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKQogICAgICAgICBtID0gX19pbXBvcnRfXyhURVNURk4pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5fX2ZpbGVfXywKICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4ob3MuY3VyZGlyLCBvcy5wYXRoLnJlbHBhdGgocHljX2ZpbGUpKSkKQEAgLTYyMyw2ICs2MjcsNyBAQAogICAgICAgICBweWNfZmlsZSA9IG1ha2VfbGVnYWN5X3B5YyhzZWxmLnNvdXJjZSkKICAgICAgICAgb3MucmVtb3ZlKHNlbGYuc291cmNlKQogICAgICAgICB1bmxvYWQoVEVTVEZOKQorICAgICAgICBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKQogICAgICAgICBtID0gX19pbXBvcnRfXyhURVNURk4pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5fX2NhY2hlZF9fLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5jdXJkaXIsIG9zLnBhdGgucmVscGF0aChweWNfZmlsZSkpKQpAQCAtNjMxLDYgKzYzNiw4IEBACiAgICAgICAgICMgTGlrZSB0ZXN0X19fY2FjaGVkX18gYnV0IGZvciBwYWNrYWdlcy4KICAgICAgICAgZGVmIGNsZWFudXAoKToKICAgICAgICAgICAgIHJtdHJlZSgncGVwMzE0NycpCisgICAgICAgICAgICB1bmxvYWQoJ3BlcDMxNDcuZm9vJykKKyAgICAgICAgICAgIHVubG9hZCgncGVwMzE0NycpCiAgICAgICAgIG9zLm1rZGlyKCdwZXAzMTQ3JykKICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGNsZWFudXApCiAgICAgICAgICMgVG91Y2ggdGhlIF9faW5pdF9fLnB5CkBAIC02MzgsOCArNjQ1LDcgQEAKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbigncGVwMzE0NycsICdmb28ucHknKSwgJ3cnKToKICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgdW5sb2FkKCdwZXAzMTQ3LmZvbycpCi0gICAgICAgIHVubG9hZCgncGVwMzE0NycpCisgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgIG0gPSBfX2ltcG9ydF9fKCdwZXAzMTQ3LmZvbycpCiAgICAgICAgIGluaXRfcHljID0gaW1wLmNhY2hlX2Zyb21fc291cmNlKAogICAgICAgICAgICAgb3MucGF0aC5qb2luKCdwZXAzMTQ3JywgJ19faW5pdF9fLnB5JykpCkBAIC02NTMsMTggKzY1OSwyMCBAQAogICAgICAgICAjIFBFUCAzMTQ3IHB5YyBmaWxlLgogICAgICAgICBkZWYgY2xlYW51cCgpOgogICAgICAgICAgICAgcm10cmVlKCdwZXAzMTQ3JykKKyAgICAgICAgICAgIHVubG9hZCgncGVwMzE0Ny5mb28nKQorICAgICAgICAgICAgdW5sb2FkKCdwZXAzMTQ3JykKICAgICAgICAgb3MubWtkaXIoJ3BlcDMxNDcnKQogICAgICAgICBzZWxmLmFkZENsZWFudXAoY2xlYW51cCkKLSAgICAgICAgdW5sb2FkKCdwZXAzMTQ3LmZvbycpCi0gICAgICAgIHVubG9hZCgncGVwMzE0NycpCiAgICAgICAgICMgVG91Y2ggdGhlIF9faW5pdF9fLnB5CiAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oJ3BlcDMxNDcnLCAnX19pbml0X18ucHknKSwgJ3cnKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbigncGVwMzE0NycsICdmb28ucHknKSwgJ3cnKToKICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKICAgICAgICAgbSA9IF9faW1wb3J0X18oJ3BlcDMxNDcuZm9vJykKICAgICAgICAgdW5sb2FkKCdwZXAzMTQ3LmZvbycpCiAgICAgICAgIHVubG9hZCgncGVwMzE0NycpCisgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgIG0gPSBfX2ltcG9ydF9fKCdwZXAzMTQ3LmZvbycpCiAgICAgICAgIGluaXRfcHljID0gaW1wLmNhY2hlX2Zyb21fc291cmNlKAogICAgICAgICAgICAgb3MucGF0aC5qb2luKCdwZXAzMTQ3JywgJ19faW5pdF9fLnB5JykpCkBAIC02NzMsMjIgKzY4MSwxOTggQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzeXMubW9kdWxlc1sncGVwMzE0Ny5mb28nXS5fX2NhY2hlZF9fLAogICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5jdXJkaXIsIGZvb19weWMpKQogCisgICAgZGVmIHRlc3RfcmVjb21wdXRlX3B5Y19zYW1lX3NlY29uZChzZWxmKToKKyAgICAgICAgIyBFdmVuIHdoZW4gdGhlIHNvdXJjZSBmaWxlIGRvZXNuJ3QgY2hhbmdlIHRpbWVzdGFtcCwgYSBjaGFuZ2UgaW4KKyAgICAgICAgIyBzb3VyY2Ugc2l6ZSBpcyBlbm91Z2ggdG8gdHJpZ2dlciByZWNvbXB1dGF0aW9uIG9mIHRoZSBweWMgZmlsZS4KKyAgICAgICAgX19pbXBvcnRfXyhURVNURk4pCisgICAgICAgIHVubG9hZChURVNURk4pCisgICAgICAgIHdpdGggb3BlbihzZWxmLnNvdXJjZSwgJ2EnKSBhcyBmcDoKKyAgICAgICAgICAgIHByaW50KCJ4ID0gNSIsIGZpbGU9ZnApCisgICAgICAgIG0gPSBfX2ltcG9ydF9fKFRFU1RGTikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLngsIDUpCiAKLWNsYXNzIFJlbGF0aXZlSW1wb3J0RnJvbUltcG9ydGxpYlRlc3RzKHRlc3RfcmVsYXRpdmVfaW1wb3J0cy5SZWxhdGl2ZUltcG9ydHMpOgorCitjbGFzcyBUZXN0U3ltYm9saWNhbGx5TGlua2VkUGFja2FnZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgcGFja2FnZV9uYW1lID0gJ3NhbXBsZScKIAogICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5faW1wb3J0bGliX3V0aWxfZmxhZyA9IGltcG9ydGxpYl91dGlsLnVzaW5nX19faW1wb3J0X18KLSAgICAgICAgaW1wb3J0bGliX3V0aWwudXNpbmdfX19pbXBvcnRfXyA9IFRydWUKKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2VsZi50YWdnZWQpOgorICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLnRhZ2dlZCkKKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2VsZi5wYWNrYWdlX25hbWUpOgorICAgICAgICAgICAgb3MucmVtb3ZlKHNlbGYucGFja2FnZV9uYW1lKQorICAgICAgICBzZWxmLm9yaWdfc3lzX3BhdGggPSBzeXMucGF0aFs6XQorCisgICAgICAgICMgY3JlYXRlIGEgc2FtcGxlIHBhY2thZ2U7IGltYWdpbmUgeW91IGhhdmUgYSBwYWNrYWdlIHdpdGggYSB0YWcgYW5kCisgICAgICAgICMgIHlvdSB3YW50IHRvIHN5bWJvbGljYWxseSBsaW5rIGl0IGZyb20gaXRzIHVudGFnZ2VkIG5hbWUuCisgICAgICAgIG9zLm1rZGlyKHNlbGYudGFnZ2VkKQorICAgICAgICBpbml0X2ZpbGUgPSBvcy5wYXRoLmpvaW4oc2VsZi50YWdnZWQsICdfX2luaXRfXy5weScpCisgICAgICAgIG9wZW4oaW5pdF9maWxlLCAndycpLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5wYXRoLmV4aXN0cyhpbml0X2ZpbGUpLCBUcnVlKQorCisgICAgICAgICMgbm93IGNyZWF0ZSBhIHN5bWxpbmsgdG8gdGhlIHRhZ2dlZCBwYWNrYWdlCisgICAgICAgICMgc2FtcGxlIC0+IHNhbXBsZS10YWdnZWQKKyAgICAgICAgb3Muc3ltbGluayhzZWxmLnRhZ2dlZCwgc2VsZi5wYWNrYWdlX25hbWUpCisKKyAgICAgICAgIyBkaXNhYmxlZCBiZWNhdXNlIG9zLmlzZGlyIGN1cnJlbnRseSBmYWlscyAoc2VlIGlzc3VlIDE1MDkzKQorICAgICAgICAjIHNlbGYuYXNzZXJ0RXF1YWwob3MucGF0aC5pc2RpcihzZWxmLnBhY2thZ2VfbmFtZSksIFRydWUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIG9zLnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihzZWxmLnBhY2thZ2VfbmFtZSwgJ19faW5pdF9fLnB5JykpLAorICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRhZ2dlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucGFja2FnZV9uYW1lICsgJy10YWdnZWQnCisKKyAgICAjIHJlZ3Jlc3Npb24gdGVzdCBmb3IgaXNzdWU2NzI3CisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoCisgICAgICAgIG5vdCBoYXNhdHRyKHN5cywgJ2dldHdpbmRvd3N2ZXJzaW9uJykKKyAgICAgICAgb3Igc3lzLmdldHdpbmRvd3N2ZXJzaW9uKCkgPj0gKDYsIDApLAorICAgICAgICAiV2luZG93cyBWaXN0YSBvciBsYXRlciByZXF1aXJlZCIpCisgICAgQHRlc3Quc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoCisgICAgICAgIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInLAorICAgICAgICAiVGVzdCBmYWlsaW5nIG9uIFVuaXggKHNlZSBpc3N1ZTE1MDkxKSIKKyAgICAgICAgKQorICAgIGRlZiB0ZXN0X3N5bWxpbmtlZF9kaXJfaW1wb3J0YWJsZShzZWxmKToKKyAgICAgICAgIyBtYWtlIHN1cmUgc2FtcGxlIGNhbiBvbmx5IGJlIGltcG9ydGVkIGZyb20gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgorICAgICAgICBzeXMucGF0aFs6XSA9IFsnLiddCisKKyAgICAgICAgIyBhbmQgdHJ5IHRvIGltcG9ydCB0aGUgcGFja2FnZQorICAgICAgICBfX2ltcG9ydF9fKHNlbGYucGFja2FnZV9uYW1lKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICBpbXBvcnRsaWJfdXRpbC51c2luZ19fX2ltcG9ydF9fID0gc2VsZi5faW1wb3J0bGliX3V0aWxfZmxhZworICAgICAgICAjIG5vdyBjbGVhbnVwCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHNlbGYucGFja2FnZV9uYW1lKToKKyAgICAgICAgICAgIG9zLnJlbW92ZShzZWxmLnBhY2thZ2VfbmFtZSkKKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2VsZi50YWdnZWQpOgorICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLnRhZ2dlZCkKKyAgICAgICAgc3lzLnBhdGhbOl0gPSBzZWxmLm9yaWdfc3lzX3BhdGgKKworCitAY3B5dGhvbl9vbmx5CitjbGFzcyBJbXBvcnRsaWJCb290c3RyYXBUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIyBUaGVzZSB0ZXN0cyBjaGVjayB0aGF0IGltcG9ydGxpYiBpcyBib290c3RyYXBwZWQuCisKKyAgICBkZWYgdGVzdF9mcm96ZW5faW1wb3J0bGliKHNlbGYpOgorICAgICAgICBtb2QgPSBzeXMubW9kdWxlc1snX2Zyb3plbl9pbXBvcnRsaWInXQorICAgICAgICBzZWxmLmFzc2VydFRydWUobW9kKQorCisgICAgZGVmIHRlc3RfZnJvemVuX2ltcG9ydGxpYl9pc19ib290c3RyYXAoc2VsZik6CisgICAgICAgIGZyb20gaW1wb3J0bGliIGltcG9ydCBfYm9vdHN0cmFwCisgICAgICAgIG1vZCA9IHN5cy5tb2R1bGVzWydfZnJvemVuX2ltcG9ydGxpYiddCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobW9kLCBfYm9vdHN0cmFwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vZC5fX25hbWVfXywgJ2ltcG9ydGxpYi5fYm9vdHN0cmFwJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2QuX19wYWNrYWdlX18sICdpbXBvcnRsaWInKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobW9kLl9fZmlsZV9fLmVuZHN3aXRoKCdfYm9vdHN0cmFwLnB5JyksIG1vZC5fX2ZpbGVfXykKKworCitjbGFzcyBJbXBvcnRUcmFjZWJhY2tUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIG9zLm1rZGlyKFRFU1RGTikKKyAgICAgICAgc2VsZi5vbGRfcGF0aCA9IHN5cy5wYXRoWzpdCisgICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBURVNURk4pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHN5cy5wYXRoWzpdID0gc2VsZi5vbGRfcGF0aAorICAgICAgICBybXRyZWUoVEVTVEZOKQorCisgICAgZGVmIGNyZWF0ZV9tb2R1bGUoc2VsZiwgbW9kLCBjb250ZW50cyk6CisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oVEVTVEZOLCBtb2QgKyAiLnB5IiksICJ3IikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUoY29udGVudHMpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cCh1bmxvYWQsIG1vZCkKKyAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKKworICAgIGRlZiBhc3NlcnRfdHJhY2ViYWNrKHNlbGYsIHRiLCBmaWxlcyk6CisgICAgICAgIGRlZHVwZWRfZmlsZXMgPSBbXQorICAgICAgICB3aGlsZSB0YjoKKyAgICAgICAgICAgIGNvZGUgPSB0Yi50Yl9mcmFtZS5mX2NvZGUKKyAgICAgICAgICAgIGZuID0gY29kZS5jb19maWxlbmFtZQorICAgICAgICAgICAgaWYgbm90IGRlZHVwZWRfZmlsZXMgb3IgZm4gIT0gZGVkdXBlZF9maWxlc1stMV06CisgICAgICAgICAgICAgICAgZGVkdXBlZF9maWxlcy5hcHBlbmQoZm4pCisgICAgICAgICAgICB0YiA9IHRiLnRiX25leHQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGVkdXBlZF9maWxlcyksIGxlbihmaWxlcyksIGRlZHVwZWRfZmlsZXMpCisgICAgICAgIGZvciBmbiwgcGF0IGluIHppcChkZWR1cGVkX2ZpbGVzLCBmaWxlcyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEluKHBhdCwgZm4pCisKKyAgICBkZWYgdGVzdF9ub25leGlzdGVudF9tb2R1bGUoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgYXNzZXJ0UmFpc2VzKCkgY2xlYXJzIF9fdHJhY2ViYWNrX18KKyAgICAgICAgICAgIGltcG9ydCBub25leGlzdGVudF94eXp6eQorICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgZToKKyAgICAgICAgICAgIHRiID0gZS5fX3RyYWNlYmFja19fCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoIkltcG9ydEVycm9yIHNob3VsZCBoYXZlIGJlZW4gcmFpc2VkIikKKyAgICAgICAgc2VsZi5hc3NlcnRfdHJhY2ViYWNrKHRiLCBbX19maWxlX19dKQorCisgICAgZGVmIHRlc3Rfbm9uZXhpc3RlbnRfbW9kdWxlX25lc3RlZChzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVfbW9kdWxlKCJmb28iLCAiaW1wb3J0IG5vbmV4aXN0ZW50X3h5enp5IikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW1wb3J0IGZvbworICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgZToKKyAgICAgICAgICAgIHRiID0gZS5fX3RyYWNlYmFja19fCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoIkltcG9ydEVycm9yIHNob3VsZCBoYXZlIGJlZW4gcmFpc2VkIikKKyAgICAgICAgc2VsZi5hc3NlcnRfdHJhY2ViYWNrKHRiLCBbX19maWxlX18sICdmb28ucHknXSkKKworICAgIGRlZiB0ZXN0X2V4ZWNfZmFpbHVyZShzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVfbW9kdWxlKCJmb28iLCAiMS8wIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW1wb3J0IGZvbworICAgICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3IgYXMgZToKKyAgICAgICAgICAgIHRiID0gZS5fX3RyYWNlYmFja19fCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoIlplcm9EaXZpc2lvbkVycm9yIHNob3VsZCBoYXZlIGJlZW4gcmFpc2VkIikKKyAgICAgICAgc2VsZi5hc3NlcnRfdHJhY2ViYWNrKHRiLCBbX19maWxlX18sICdmb28ucHknXSkKKworICAgIGRlZiB0ZXN0X2V4ZWNfZmFpbHVyZV9uZXN0ZWQoc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlX21vZHVsZSgiZm9vIiwgImltcG9ydCBiYXIiKQorICAgICAgICBzZWxmLmNyZWF0ZV9tb2R1bGUoImJhciIsICIxLzAiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpbXBvcnQgZm9vCisgICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvciBhcyBlOgorICAgICAgICAgICAgdGIgPSBlLl9fdHJhY2ViYWNrX18KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgiWmVyb0RpdmlzaW9uRXJyb3Igc2hvdWxkIGhhdmUgYmVlbiByYWlzZWQiKQorICAgICAgICBzZWxmLmFzc2VydF90cmFjZWJhY2sodGIsIFtfX2ZpbGVfXywgJ2Zvby5weScsICdiYXIucHknXSkKKworICAgIEBjcHl0aG9uX29ubHkKKyAgICBkZWYgdGVzdF9pbXBvcnRfYnVnKHNlbGYpOgorICAgICAgICAjIFdlIHNpbXVsYXRlIGEgYnVnIGluIGltcG9ydGxpYiBhbmQgY2hlY2sgdGhhdCBpdCdzIG5vdCBzdHJpcHBlZAorICAgICAgICAjIGF3YXkgZnJvbSB0aGUgdHJhY2ViYWNrLgorICAgICAgICBzZWxmLmNyZWF0ZV9tb2R1bGUoImZvbyIsICIiKQorICAgICAgICBpbXBvcnRsaWIgPSBzeXMubW9kdWxlc1snX2Zyb3plbl9pbXBvcnRsaWInXQorICAgICAgICBvbGRfbG9hZF9tb2R1bGUgPSBpbXBvcnRsaWIuU291cmNlTG9hZGVyLmxvYWRfbW9kdWxlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRlZiBsb2FkX21vZHVsZSgqYXJncyk6CisgICAgICAgICAgICAgICAgMS8wCisgICAgICAgICAgICBpbXBvcnRsaWIuU291cmNlTG9hZGVyLmxvYWRfbW9kdWxlID0gbG9hZF9tb2R1bGUKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpbXBvcnQgZm9vCisgICAgICAgICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICB0YiA9IGUuX190cmFjZWJhY2tfXworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIlplcm9EaXZpc2lvbkVycm9yIHNob3VsZCBoYXZlIGJlZW4gcmFpc2VkIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0X3RyYWNlYmFjayh0YiwgW19fZmlsZV9fLCAnPGZyb3plbiBpbXBvcnRsaWInLCBfX2ZpbGVfX10pCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBpbXBvcnRsaWIuU291cmNlTG9hZGVyLmxvYWRfbW9kdWxlID0gb2xkX2xvYWRfbW9kdWxlCiAKIAogZGVmIHRlc3RfbWFpbih2ZXJib3NlPU5vbmUpOgotICAgIHJ1bl91bml0dGVzdChJbXBvcnRUZXN0cywgUHljYWNoZVRlc3RzLAotICAgICAgICAgICAgICAgICBQeWNSZXdyaXRpbmdUZXN0cywgUGF0aHNUZXN0cywgUmVsYXRpdmVJbXBvcnRUZXN0cywKLSAgICAgICAgICAgICAgICAgT3ZlcnJpZGluZ0ltcG9ydEJ1aWx0aW5UZXN0cywKLSAgICAgICAgICAgICAgICAgUmVsYXRpdmVJbXBvcnRGcm9tSW1wb3J0bGliVGVzdHMpCisgICAgZmxhZyA9IGltcG9ydGxpYl91dGlsLnVzaW5nX19faW1wb3J0X18KKyAgICB0cnk6CisgICAgICAgIGltcG9ydGxpYl91dGlsLnVzaW5nX19faW1wb3J0X18gPSBUcnVlCisgICAgICAgIHJ1bl91bml0dGVzdChJbXBvcnRUZXN0cywgUHljYWNoZVRlc3RzLAorICAgICAgICAgICAgICAgICAgICAgUHljUmV3cml0aW5nVGVzdHMsIFBhdGhzVGVzdHMsIFJlbGF0aXZlSW1wb3J0VGVzdHMsCisgICAgICAgICAgICAgICAgICAgICBPdmVycmlkaW5nSW1wb3J0QnVpbHRpblRlc3RzLAorICAgICAgICAgICAgICAgICAgICAgSW1wb3J0bGliQm9vdHN0cmFwVGVzdHMsCisgICAgICAgICAgICAgICAgICAgICBUZXN0U3ltYm9saWNhbGx5TGlua2VkUGFja2FnZSwKKyAgICAgICAgICAgICAgICAgICAgIEltcG9ydFRyYWNlYmFja1Rlc3RzLAorICAgICAgICAgICAgICAgICAgICAgaW1wb3J0bGliX2ltcG9ydF90ZXN0X3N1aXRlKCkpCisgICAgZmluYWxseToKKyAgICAgICAgaW1wb3J0bGliX3V0aWwudXNpbmdfX19pbXBvcnRfXyA9IGZsYWcKIAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9pbXBvcnRob29rcy5weSBiL0xpYi90ZXN0L3Rlc3RfaW1wb3J0aG9va3MucHkKaW5kZXggZWM2NzMwZS4uMmEyMmQxYSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9pbXBvcnRob29rcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2ltcG9ydGhvb2tzLnB5CkBAIC01MSw3ICs1MSw3IEBACiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aD10ZXN0X3BhdGgpOgogICAgICAgICBpZiBwYXRoICE9IHRlc3RfcGF0aDoKLSAgICAgICAgICAgICMgaWYgb3V0IGNsYXNzIGlzIG9uIHN5cy5wYXRoX2hvb2tzLCB3ZSBtdXN0IHJhaXNlCisgICAgICAgICAgICAjIGlmIG91ciBjbGFzcyBpcyBvbiBzeXMucGF0aF9ob29rcywgd2UgbXVzdCByYWlzZQogICAgICAgICAgICAgIyBJbXBvcnRFcnJvciBmb3IgYW55IHBhdGggaXRlbSB0aGF0IHdlIGNhbid0IGhhbmRsZS4KICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yCiAgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKQEAgLTIxNSw3ICsyMTUsNyBAQAogICAgICAgICBzZWxmLmRvVGVzdEltcG9ydHMoaSkKIAogICAgIGRlZiB0ZXN0UGF0aEhvb2soc2VsZik6Ci0gICAgICAgIHN5cy5wYXRoX2hvb2tzLmFwcGVuZChQYXRoSW1wb3J0ZXIpCisgICAgICAgIHN5cy5wYXRoX2hvb2tzLmluc2VydCgwLCBQYXRoSW1wb3J0ZXIpCiAgICAgICAgIHN5cy5wYXRoLmFwcGVuZCh0ZXN0X3BhdGgpCiAgICAgICAgIHNlbGYuZG9UZXN0SW1wb3J0cygpCiAKQEAgLTIyOCw4ICsyMjgsMTAgQEAKICAgICBkZWYgdGVzdEltcFdyYXBwZXIoc2VsZik6CiAgICAgICAgIGkgPSBJbXBXcmFwcGVyKCkKICAgICAgICAgc3lzLm1ldGFfcGF0aC5hcHBlbmQoaSkKLSAgICAgICAgc3lzLnBhdGhfaG9va3MuYXBwZW5kKEltcFdyYXBwZXIpCi0gICAgICAgIG1uYW1lcyA9ICgiY29sb3JzeXMiLCAidXJsbGliLnBhcnNlIiwgImRpc3R1dGlscy5jb3JlIikKKyAgICAgICAgc3lzLnBhdGhfaG9va3MuaW5zZXJ0KDAsIEltcFdyYXBwZXIpCisgICAgICAgIG1uYW1lcyA9ICgKKyAgICAgICAgICAgICJjb2xvcnN5cyIsICJ1cmxsaWIucGFyc2UiLCAiZGlzdHV0aWxzLmNvcmUiLCAic3lzIiwKKyAgICAgICAgKQogICAgICAgICBmb3IgbW5hbWUgaW4gbW5hbWVzOgogICAgICAgICAgICAgcGFyZW50ID0gbW5hbWUuc3BsaXQoIi4iKVswXQogICAgICAgICAgICAgZm9yIG4gaW4gbGlzdChzeXMubW9kdWxlcyk6CkBAIC0yMzcsNyArMjM5LDggQEAKICAgICAgICAgICAgICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW25dCiAgICAgICAgIGZvciBtbmFtZSBpbiBtbmFtZXM6CiAgICAgICAgICAgICBtID0gX19pbXBvcnRfXyhtbmFtZSwgZ2xvYmFscygpLCBsb2NhbHMoKSwgWyJfX2R1bW15X18iXSkKLSAgICAgICAgICAgIG0uX19sb2FkZXJfXyAgIyB0byBtYWtlIHN1cmUgd2UgYWN0dWFsbHkgaGFuZGxlZCB0aGUgaW1wb3J0CisgICAgICAgICAgICAjIHRvIG1ha2Ugc3VyZSB3ZSBhY3R1YWxseSBoYW5kbGVkIHRoZSBpbXBvcnQKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKG0sICJfX2xvYWRlcl9fIikpCiAKIAogZGVmIHRlc3RfbWFpbigpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9pbnNwZWN0LnB5IGIvTGliL3Rlc3QvdGVzdF9pbnNwZWN0LnB5CmluZGV4IDRiN2VlNGUuLjgwZGIwM2IgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaW5zcGVjdC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2luc3BlY3QucHkKQEAgLTQxLDExICs0MSw2IEBACiAKIGltcG9ydCBidWlsdGlucwogCi10cnk6Ci0gICAgMS8wCi1leGNlcHQ6Ci0gICAgdGIgPSBzeXMuZXhjX2luZm8oKVsyXQotCiBnaXQgPSBtb2QuU3R1cGlkR2l0KCkKIAogY2xhc3MgSXNUZXN0QmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC03OSwyMyArNzQsMzEgQEAKIAogCiAgICAgZGVmIHRlc3RfZXhjbHVkaW5nX3ByZWRpY2F0ZXMoc2VsZik6CisgICAgICAgIGdsb2JhbCB0YgogICAgICAgICBzZWxmLmlzdGVzdChpbnNwZWN0LmlzYnVpbHRpbiwgJ3N5cy5leGl0JykKICAgICAgICAgc2VsZi5pc3Rlc3QoaW5zcGVjdC5pc2J1aWx0aW4sICdbXS5hcHBlbmQnKQogICAgICAgICBzZWxmLmlzdGVzdChpbnNwZWN0LmlzY29kZSwgJ21vZC5zcGFtLl9fY29kZV9fJykKLSAgICAgICAgc2VsZi5pc3Rlc3QoaW5zcGVjdC5pc2ZyYW1lLCAndGIudGJfZnJhbWUnKQorICAgICAgICB0cnk6CisgICAgICAgICAgICAxLzAKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgdGIgPSBzeXMuZXhjX2luZm8oKVsyXQorICAgICAgICAgICAgc2VsZi5pc3Rlc3QoaW5zcGVjdC5pc2ZyYW1lLCAndGIudGJfZnJhbWUnKQorICAgICAgICAgICAgc2VsZi5pc3Rlc3QoaW5zcGVjdC5pc3RyYWNlYmFjaywgJ3RiJykKKyAgICAgICAgICAgIGlmIGhhc2F0dHIodHlwZXMsICdHZXRTZXREZXNjcmlwdG9yVHlwZScpOgorICAgICAgICAgICAgICAgIHNlbGYuaXN0ZXN0KGluc3BlY3QuaXNnZXRzZXRkZXNjcmlwdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlKHRiLnRiX2ZyYW1lKS5mX2xvY2FscycpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5zcGVjdC5pc2dldHNldGRlc2NyaXB0b3IodHlwZSh0Yi50Yl9mcmFtZSkuZl9sb2NhbHMpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgIyBDbGVhciB0cmFjZWJhY2sgYW5kIGFsbCB0aGUgZnJhbWVzIGFuZCBsb2NhbCB2YXJpYWJsZXMgaGFuZ2luZyB0byBpdC4KKyAgICAgICAgICAgIHRiID0gTm9uZQogICAgICAgICBzZWxmLmlzdGVzdChpbnNwZWN0LmlzZnVuY3Rpb24sICdtb2Quc3BhbScpCiAgICAgICAgIHNlbGYuaXN0ZXN0KGluc3BlY3QuaXNmdW5jdGlvbiwgJ21vZC5TdHVwaWRHaXQuYWJ1c2UnKQogICAgICAgICBzZWxmLmlzdGVzdChpbnNwZWN0LmlzbWV0aG9kLCAnZ2l0LmFyZ3VlJykKICAgICAgICAgc2VsZi5pc3Rlc3QoaW5zcGVjdC5pc21vZHVsZSwgJ21vZCcpCi0gICAgICAgIHNlbGYuaXN0ZXN0KGluc3BlY3QuaXN0cmFjZWJhY2ssICd0YicpCiAgICAgICAgIHNlbGYuaXN0ZXN0KGluc3BlY3QuaXNkYXRhZGVzY3JpcHRvciwgJ2NvbGxlY3Rpb25zLmRlZmF1bHRkaWN0LmRlZmF1bHRfZmFjdG9yeScpCiAgICAgICAgIHNlbGYuaXN0ZXN0KGluc3BlY3QuaXNnZW5lcmF0b3IsICcoeCBmb3IgeCBpbiByYW5nZSgyKSknKQogICAgICAgICBzZWxmLmlzdGVzdChpbnNwZWN0LmlzZ2VuZXJhdG9yZnVuY3Rpb24sICdnZW5lcmF0b3JfZnVuY3Rpb25fZXhhbXBsZScpCi0gICAgICAgIGlmIGhhc2F0dHIodHlwZXMsICdHZXRTZXREZXNjcmlwdG9yVHlwZScpOgotICAgICAgICAgICAgc2VsZi5pc3Rlc3QoaW5zcGVjdC5pc2dldHNldGRlc2NyaXB0b3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAndHlwZSh0Yi50Yl9mcmFtZSkuZl9sb2NhbHMnKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbnNwZWN0LmlzZ2V0c2V0ZGVzY3JpcHRvcih0eXBlKHRiLnRiX2ZyYW1lKS5mX2xvY2FscykpCiAgICAgICAgIGlmIGhhc2F0dHIodHlwZXMsICdNZW1iZXJEZXNjcmlwdG9yVHlwZScpOgogICAgICAgICAgICAgc2VsZi5pc3Rlc3QoaW5zcGVjdC5pc21lbWJlcmRlc2NyaXB0b3IsICdkYXRldGltZS50aW1lZGVsdGEuZGF5cycpCiAgICAgICAgIGVsc2U6CkBAIC0yODIsNyArMjg1LDEwIEBACiAgICAgICAgIGNvID0gY29tcGlsZSgiTm9uZSIsIGZuLCAiZXhlYyIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zcGVjdC5nZXRzb3VyY2VmaWxlKGNvKSwgTm9uZSkKICAgICAgICAgbGluZWNhY2hlLmNhY2hlW2NvLmNvX2ZpbGVuYW1lXSA9ICgxLCBOb25lLCAiTm9uZSIsIGNvLmNvX2ZpbGVuYW1lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5vcm1jYXNlKGluc3BlY3QuZ2V0c291cmNlZmlsZShjbykpLCBmbikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChub3JtY2FzZShpbnNwZWN0LmdldHNvdXJjZWZpbGUoY28pKSwgZm4pCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBkZWwgbGluZWNhY2hlLmNhY2hlW2NvLmNvX2ZpbGVuYW1lXQogCiAgICAgZGVmIHRlc3RfZ2V0ZmlsZShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LmdldGZpbGUobW9kLlN0dXBpZEdpdCksIG1vZC5fX2ZpbGVfXykKQEAgLTMwNCw3ICszMTAsNyBAQAogICAgICAgICBnZXRsaW5lcyA9IGxpbmVjYWNoZS5nZXRsaW5lcwogICAgICAgICBkZWYgbW9ua2V5KGZpbGVuYW1lLCBtb2R1bGVfZ2xvYmFscz1Ob25lKToKICAgICAgICAgICAgIGlmIGZpbGVuYW1lID09IGZuOgotICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3BsaXRsaW5lcyhUcnVlKQorICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2Uuc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0bGluZXMoZmlsZW5hbWUsIG1vZHVsZV9nbG9iYWxzKQogICAgICAgICBsaW5lY2FjaGUuZ2V0bGluZXMgPSBtb25rZXkKQEAgLTQwNCw4ICs0MTAsMTEgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgaW5zcGVjdC5maW5kc291cmNlLCBjbykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSU9FcnJvciwgaW5zcGVjdC5nZXRzb3VyY2UsIGNvKQogICAgICAgICBsaW5lY2FjaGUuY2FjaGVbY28uY29fZmlsZW5hbWVdID0gKDEsIE5vbmUsIGxpbmVzLCBjby5jb19maWxlbmFtZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LmZpbmRzb3VyY2UoY28pLCAobGluZXMsMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zcGVjdC5nZXRzb3VyY2UoY28pLCBsaW5lc1swXSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LmZpbmRzb3VyY2UoY28pLCAobGluZXMsMCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3QuZ2V0c291cmNlKGNvKSwgbGluZXNbMF0pCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBkZWwgbGluZWNhY2hlLmNhY2hlW2NvLmNvX2ZpbGVuYW1lXQogCiBjbGFzcyBUZXN0Tm9FT0woR2V0U291cmNlQmFzZSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CkBAIC02NjIsNiArNjcxLDEyOSBAQAogICAgICAgICBzZWxmLmFzc2VydEluKCgnZicsIGIuZiksIGluc3BlY3QuZ2V0bWVtYmVycyhiLCBpbnNwZWN0LmlzbWV0aG9kKSkKIAogCitfZ2xvYmFsX3JlZiA9IG9iamVjdCgpCitjbGFzcyBUZXN0R2V0Q2xvc3VyZVZhcnModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfbmFtZV9yZXNvbHV0aW9uKHNlbGYpOgorICAgICAgICAjIEJhc2ljIHRlc3Qgb2YgdGhlIDQgZGlmZmVyZW50IHJlc29sdXRpb24gbWVjaGFuaXNtcworICAgICAgICBkZWYgZihub25sb2NhbF9yZWYpOgorICAgICAgICAgICAgZGVmIGcobG9jYWxfcmVmKToKKyAgICAgICAgICAgICAgICBwcmludChsb2NhbF9yZWYsIG5vbmxvY2FsX3JlZiwgX2dsb2JhbF9yZWYsIHVuYm91bmRfcmVmKQorICAgICAgICAgICAgcmV0dXJuIGcKKyAgICAgICAgX2FyZyA9IG9iamVjdCgpCisgICAgICAgIG5vbmxvY2FsX3ZhcnMgPSB7Im5vbmxvY2FsX3JlZiI6IF9hcmd9CisgICAgICAgIGdsb2JhbF92YXJzID0geyJfZ2xvYmFsX3JlZiI6IF9nbG9iYWxfcmVmfQorICAgICAgICBidWlsdGluX3ZhcnMgPSB7InByaW50IjogcHJpbnR9CisgICAgICAgIHVuYm91bmRfbmFtZXMgPSB7InVuYm91bmRfcmVmIn0KKyAgICAgICAgZXhwZWN0ZWQgPSBpbnNwZWN0LkNsb3N1cmVWYXJzKG5vbmxvY2FsX3ZhcnMsIGdsb2JhbF92YXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbHRpbl92YXJzLCB1bmJvdW5kX25hbWVzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3QuZ2V0Y2xvc3VyZXZhcnMoZihfYXJnKSksIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3RfZ2VuZXJhdG9yX2Nsb3N1cmUoc2VsZik6CisgICAgICAgIGRlZiBmKG5vbmxvY2FsX3JlZik6CisgICAgICAgICAgICBkZWYgZyhsb2NhbF9yZWYpOgorICAgICAgICAgICAgICAgIHByaW50KGxvY2FsX3JlZiwgbm9ubG9jYWxfcmVmLCBfZ2xvYmFsX3JlZiwgdW5ib3VuZF9yZWYpCisgICAgICAgICAgICAgICAgeWllbGQKKyAgICAgICAgICAgIHJldHVybiBnCisgICAgICAgIF9hcmcgPSBvYmplY3QoKQorICAgICAgICBub25sb2NhbF92YXJzID0geyJub25sb2NhbF9yZWYiOiBfYXJnfQorICAgICAgICBnbG9iYWxfdmFycyA9IHsiX2dsb2JhbF9yZWYiOiBfZ2xvYmFsX3JlZn0KKyAgICAgICAgYnVpbHRpbl92YXJzID0geyJwcmludCI6IHByaW50fQorICAgICAgICB1bmJvdW5kX25hbWVzID0geyJ1bmJvdW5kX3JlZiJ9CisgICAgICAgIGV4cGVjdGVkID0gaW5zcGVjdC5DbG9zdXJlVmFycyhub25sb2NhbF92YXJzLCBnbG9iYWxfdmFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWx0aW5fdmFycywgdW5ib3VuZF9uYW1lcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LmdldGNsb3N1cmV2YXJzKGYoX2FyZykpLCBleHBlY3RlZCkKKworICAgIGRlZiB0ZXN0X21ldGhvZF9jbG9zdXJlKHNlbGYpOgorICAgICAgICBjbGFzcyBDOgorICAgICAgICAgICAgZGVmIGYoc2VsZiwgbm9ubG9jYWxfcmVmKToKKyAgICAgICAgICAgICAgICBkZWYgZyhsb2NhbF9yZWYpOgorICAgICAgICAgICAgICAgICAgICBwcmludChsb2NhbF9yZWYsIG5vbmxvY2FsX3JlZiwgX2dsb2JhbF9yZWYsIHVuYm91bmRfcmVmKQorICAgICAgICAgICAgICAgIHJldHVybiBnCisgICAgICAgIF9hcmcgPSBvYmplY3QoKQorICAgICAgICBub25sb2NhbF92YXJzID0geyJub25sb2NhbF9yZWYiOiBfYXJnfQorICAgICAgICBnbG9iYWxfdmFycyA9IHsiX2dsb2JhbF9yZWYiOiBfZ2xvYmFsX3JlZn0KKyAgICAgICAgYnVpbHRpbl92YXJzID0geyJwcmludCI6IHByaW50fQorICAgICAgICB1bmJvdW5kX25hbWVzID0geyJ1bmJvdW5kX3JlZiJ9CisgICAgICAgIGV4cGVjdGVkID0gaW5zcGVjdC5DbG9zdXJlVmFycyhub25sb2NhbF92YXJzLCBnbG9iYWxfdmFycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWx0aW5fdmFycywgdW5ib3VuZF9uYW1lcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LmdldGNsb3N1cmV2YXJzKEMoKS5mKF9hcmcpKSwgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF9ub25sb2NhbF92YXJzKHNlbGYpOgorICAgICAgICAjIE1vcmUgY29tcGxleCB0ZXN0cyBvZiBub25sb2NhbCByZXNvbHV0aW9uCisgICAgICAgIGRlZiBfbm9ubG9jYWxfdmFycyhmKToKKyAgICAgICAgICAgIHJldHVybiBpbnNwZWN0LmdldGNsb3N1cmV2YXJzKGYpLm5vbmxvY2FscworCisgICAgICAgIGRlZiBtYWtlX2FkZGVyKHgpOgorICAgICAgICAgICAgZGVmIGFkZCh5KToKKyAgICAgICAgICAgICAgICByZXR1cm4geCArIHkKKyAgICAgICAgICAgIHJldHVybiBhZGQKKworICAgICAgICBkZWYgY3VycnkoZnVuYywgYXJnMSk6CisgICAgICAgICAgICByZXR1cm4gbGFtYmRhIGFyZzI6IGZ1bmMoYXJnMSwgYXJnMikKKworICAgICAgICBkZWYgbGVzc190aGFuKGEsIGIpOgorICAgICAgICAgICAgcmV0dXJuIGEgPCBiCisKKyAgICAgICAgIyBUaGUgaW5mYW1vdXMgWSBjb21iaW5hdG9yLgorICAgICAgICBkZWYgWShsZSk6CisgICAgICAgICAgICBkZWYgZyhmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gbGUobGFtYmRhIHg6IGYoZikoeCkpCisgICAgICAgICAgICBZLmdfcmVmID0gZworICAgICAgICAgICAgcmV0dXJuIGcoZykKKworICAgICAgICBkZWYgY2hlY2tfeV9jb21iaW5hdG9yKGZ1bmMpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfbm9ubG9jYWxfdmFycyhmdW5jKSwgeydmJzogWS5nX3JlZn0pCisKKyAgICAgICAgaW5jID0gbWFrZV9hZGRlcigxKQorICAgICAgICBhZGRfdHdvID0gbWFrZV9hZGRlcigyKQorICAgICAgICBncmVhdGVyX3RoYW5fZml2ZSA9IGN1cnJ5KGxlc3NfdGhhbiwgNSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9ub25sb2NhbF92YXJzKGluYyksIHsneCc6IDF9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9ub25sb2NhbF92YXJzKGFkZF90d28pLCB7J3gnOiAyfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfbm9ubG9jYWxfdmFycyhncmVhdGVyX3RoYW5fZml2ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgeydhcmcxJzogNSwgJ2Z1bmMnOiBsZXNzX3RoYW59KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9ub25sb2NhbF92YXJzKChsYW1iZGEgeDogbGFtYmRhIHk6IHggKyB5KSgzKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgeyd4JzogM30pCisgICAgICAgIFkoY2hlY2tfeV9jb21iaW5hdG9yKQorCisgICAgZGVmIHRlc3RfZ2V0Y2xvc3VyZXZhcnNfZW1wdHkoc2VsZik6CisgICAgICAgIGRlZiBmb28oKTogcGFzcworICAgICAgICBfZW1wdHkgPSBpbnNwZWN0LkNsb3N1cmVWYXJzKHt9LCB7fSwge30sIHNldCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3QuZ2V0Y2xvc3VyZXZhcnMobGFtYmRhOiBUcnVlKSwgX2VtcHR5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3QuZ2V0Y2xvc3VyZXZhcnMoZm9vKSwgX2VtcHR5KQorCisgICAgZGVmIHRlc3RfZ2V0Y2xvc3VyZXZhcnNfZXJyb3Ioc2VsZik6CisgICAgICAgIGNsYXNzIFQ6IHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpbnNwZWN0LmdldGNsb3N1cmV2YXJzLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGluc3BlY3QuZ2V0Y2xvc3VyZXZhcnMsIGxpc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW5zcGVjdC5nZXRjbG9zdXJldmFycywge30pCisKKyAgICBkZWYgX3ByaXZhdGVfZ2xvYmFscyhzZWxmKToKKyAgICAgICAgY29kZSA9ICIiImRlZiBmKCk6IHByaW50KHBhdGgpIiIiCisgICAgICAgIG5zID0ge30KKyAgICAgICAgZXhlYyhjb2RlLCBucykKKyAgICAgICAgcmV0dXJuIG5zWyJmIl0sIG5zCisKKyAgICBkZWYgdGVzdF9idWlsdGluc19mYWxsYmFjayhzZWxmKToKKyAgICAgICAgZiwgbnMgPSBzZWxmLl9wcml2YXRlX2dsb2JhbHMoKQorICAgICAgICBucy5wb3AoIl9fYnVpbHRpbnNfXyIsIE5vbmUpCisgICAgICAgIGV4cGVjdGVkID0gaW5zcGVjdC5DbG9zdXJlVmFycyh7fSwge30sIHsicHJpbnQiOnByaW50fSwgeyJwYXRoIn0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zcGVjdC5nZXRjbG9zdXJldmFycyhmKSwgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF9idWlsdGluc19hc19kaWN0KHNlbGYpOgorICAgICAgICBmLCBucyA9IHNlbGYuX3ByaXZhdGVfZ2xvYmFscygpCisgICAgICAgIG5zWyJfX2J1aWx0aW5zX18iXSA9IHsicGF0aCI6MX0KKyAgICAgICAgZXhwZWN0ZWQgPSBpbnNwZWN0LkNsb3N1cmVWYXJzKHt9LCB7fSwgeyJwYXRoIjoxfSwgeyJwcmludCJ9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3QuZ2V0Y2xvc3VyZXZhcnMoZiksIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3RfYnVpbHRpbnNfYXNfbW9kdWxlKHNlbGYpOgorICAgICAgICBmLCBucyA9IHNlbGYuX3ByaXZhdGVfZ2xvYmFscygpCisgICAgICAgIG5zWyJfX2J1aWx0aW5zX18iXSA9IG9zCisgICAgICAgIGV4cGVjdGVkID0gaW5zcGVjdC5DbG9zdXJlVmFycyh7fSwge30sIHsicGF0aCI6b3MucGF0aH0sIHsicHJpbnQifSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LmdldGNsb3N1cmV2YXJzKGYpLCBleHBlY3RlZCkKKworCiBjbGFzcyBUZXN0R2V0Y2FsbGFyZ3NGdW5jdGlvbnModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIGFzc2VydEVxdWFsQ2FsbEFyZ3Moc2VsZiwgZnVuYywgY2FsbF9wYXJhbXNfc3RyaW5nLCBsb2NzPU5vbmUpOgpAQCAtMTE2OSw2ICsxMzAxLDk3MiBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihuYW1lLCByZXByKHN0YXRlKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4obmFtZSwgc3RyKHN0YXRlKSkKIAorICAgIGRlZiB0ZXN0X2dldGdlbmVyYXRvcmxvY2FscyhzZWxmKToKKyAgICAgICAgZGVmIGVhY2gobHN0LCBhPU5vbmUpOgorICAgICAgICAgICAgYj0oMSwgMiwgMykKKyAgICAgICAgICAgIGZvciB2IGluIGxzdDoKKyAgICAgICAgICAgICAgICBpZiB2ID09IDM6CisgICAgICAgICAgICAgICAgICAgIGMgPSAxMgorICAgICAgICAgICAgICAgIHlpZWxkIHYKKworICAgICAgICBudW1iZXJzID0gZWFjaChbMSwgMiwgM10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zcGVjdC5nZXRnZW5lcmF0b3Jsb2NhbHMobnVtYmVycyksCisgICAgICAgICAgICAgICAgICAgICAgICAgeydhJzogTm9uZSwgJ2xzdCc6IFsxLCAyLCAzXX0pCisgICAgICAgIG5leHQobnVtYmVycykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LmdldGdlbmVyYXRvcmxvY2FscyhudW1iZXJzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB7J2EnOiBOb25lLCAnbHN0JzogWzEsIDIsIDNdLCAndic6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdiJzogKDEsIDIsIDMpfSkKKyAgICAgICAgbmV4dChudW1iZXJzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3QuZ2V0Z2VuZXJhdG9ybG9jYWxzKG51bWJlcnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHsnYSc6IE5vbmUsICdsc3QnOiBbMSwgMiwgM10sICd2JzogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2InOiAoMSwgMiwgMyl9KQorICAgICAgICBuZXh0KG51bWJlcnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zcGVjdC5nZXRnZW5lcmF0b3Jsb2NhbHMobnVtYmVycyksCisgICAgICAgICAgICAgICAgICAgICAgICAgeydhJzogTm9uZSwgJ2xzdCc6IFsxLCAyLCAzXSwgJ3YnOiAzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnYic6ICgxLCAyLCAzKSwgJ2MnOiAxMn0pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG5leHQobnVtYmVycykKKyAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zcGVjdC5nZXRnZW5lcmF0b3Jsb2NhbHMobnVtYmVycyksIHt9KQorCisgICAgZGVmIHRlc3RfZ2V0Z2VuZXJhdG9ybG9jYWxzX2VtcHR5KHNlbGYpOgorICAgICAgICBkZWYgeWllbGRfb25lKCk6CisgICAgICAgICAgICB5aWVsZCAxCisgICAgICAgIG9uZSA9IHlpZWxkX29uZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zcGVjdC5nZXRnZW5lcmF0b3Jsb2NhbHMob25lKSwge30pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG5leHQob25lKQorICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LmdldGdlbmVyYXRvcmxvY2FscyhvbmUpLCB7fSkKKworICAgIGRlZiB0ZXN0X2dldGdlbmVyYXRvcmxvY2Fsc19lcnJvcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpbnNwZWN0LmdldGdlbmVyYXRvcmxvY2FscywgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpbnNwZWN0LmdldGdlbmVyYXRvcmxvY2FscywgbGFtYmRhIHg6IFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW5zcGVjdC5nZXRnZW5lcmF0b3Jsb2NhbHMsIHNldCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpbnNwZWN0LmdldGdlbmVyYXRvcmxvY2FscywgKDIsMykpCisKKworY2xhc3MgVGVzdFNpZ25hdHVyZU9iamVjdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBzaWduYXR1cmUoZnVuYyk6CisgICAgICAgIHNpZyA9IGluc3BlY3Quc2lnbmF0dXJlKGZ1bmMpCisgICAgICAgIHJldHVybiAodHVwbGUoKHBhcmFtLm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICguLi4gaWYgcGFyYW0uZGVmYXVsdCBpcyBwYXJhbS5lbXB0eSBlbHNlIHBhcmFtLmRlZmF1bHQpLAorICAgICAgICAgICAgICAgICAgICAgICAoLi4uIGlmIHBhcmFtLmFubm90YXRpb24gaXMgcGFyYW0uZW1wdHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBwYXJhbS5hbm5vdGF0aW9uKSwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RyKHBhcmFtLmtpbmQpLmxvd2VyKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcGFyYW0gaW4gc2lnLnBhcmFtZXRlcnMudmFsdWVzKCkpLAorICAgICAgICAgICAgICAgICguLi4gaWYgc2lnLnJldHVybl9hbm5vdGF0aW9uIGlzIHNpZy5lbXB0eQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHNpZy5yZXR1cm5fYW5ub3RhdGlvbikpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfb2JqZWN0KHNlbGYpOgorICAgICAgICBTID0gaW5zcGVjdC5TaWduYXR1cmUKKyAgICAgICAgUCA9IGluc3BlY3QuUGFyYW1ldGVyCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoUygpKSwgJygpJykKKworICAgICAgICBkZWYgdGVzdChwbywgcGssICphcmdzLCBrbywgKiprd2FyZ3MpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZSh0ZXN0KQorICAgICAgICBwbyA9IHNpZy5wYXJhbWV0ZXJzWydwbyddLnJlcGxhY2Uoa2luZD1QLlBPU0lUSU9OQUxfT05MWSkKKyAgICAgICAgcGsgPSBzaWcucGFyYW1ldGVyc1sncGsnXQorICAgICAgICBhcmdzID0gc2lnLnBhcmFtZXRlcnNbJ2FyZ3MnXQorICAgICAgICBrbyA9IHNpZy5wYXJhbWV0ZXJzWydrbyddCisgICAgICAgIGt3YXJncyA9IHNpZy5wYXJhbWV0ZXJzWydrd2FyZ3MnXQorCisgICAgICAgIFMoKHBvLCBwaywgYXJncywga28sIGt3YXJncykpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICd3cm9uZyBwYXJhbWV0ZXIgb3JkZXInKToKKyAgICAgICAgICAgIFMoKHBrLCBwbywgYXJncywga28sIGt3YXJncykpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICd3cm9uZyBwYXJhbWV0ZXIgb3JkZXInKToKKyAgICAgICAgICAgIFMoKHBvLCBhcmdzLCBwaywga28sIGt3YXJncykpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICd3cm9uZyBwYXJhbWV0ZXIgb3JkZXInKToKKyAgICAgICAgICAgIFMoKGFyZ3MsIHBvLCBwaywga28sIGt3YXJncykpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICd3cm9uZyBwYXJhbWV0ZXIgb3JkZXInKToKKyAgICAgICAgICAgIFMoKHBvLCBwaywgYXJncywga3dhcmdzLCBrbykpCisKKyAgICAgICAga3dhcmdzMiA9IGt3YXJncy5yZXBsYWNlKG5hbWU9J2FyZ3MnKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ2R1cGxpY2F0ZSBwYXJhbWV0ZXIgbmFtZScpOgorICAgICAgICAgICAgUygocG8sIHBrLCBhcmdzLCBrd2FyZ3MyLCBrbykpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfaW1tdXRhYmlsaXR5KHNlbGYpOgorICAgICAgICBkZWYgdGVzdChhKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2lnID0gaW5zcGVjdC5zaWduYXR1cmUodGVzdCkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIHNpZy5mb28gPSAnYmFyJworCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIHNpZy5wYXJhbWV0ZXJzWydhJ10gPSBOb25lCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfb25fbm9hcmcoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUodGVzdCksICgoKSwgLi4uKSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9vbl93YXJncyhzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoYSwgYjonZm9vJykgLT4gMTIzOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHRlc3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYicsIC4uLiwgJ2ZvbycsICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIDEyMykpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfb25fd2t3b25seShzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoKiwgYTpmbG9hdCwgYjpzdHIpIC0+IGludDoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZSh0ZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIC4uLiwgZmxvYXQsICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYicsIC4uLiwgc3RyLCAia2V5d29yZF9vbmx5IikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9vbl9jb21wbGV4X2FyZ3Moc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KGEsIGI6J2Zvbyc9MTAsICphcmdzOidiYXInLCBzcGFtOidiYXonLCBoYW09MTIzLCAqKmt3YXJnczppbnQpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHRlc3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYicsIDEwLCAnZm9vJywgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhcmdzJywgLi4uLCAnYmFyJywgInZhcl9wb3NpdGlvbmFsIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ3NwYW0nLCAuLi4sICdiYXonLCAia2V5d29yZF9vbmx5IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2hhbScsIDEyMywgLi4uLCAia2V5d29yZF9vbmx5IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2t3YXJncycsIC4uLiwgaW50LCAidmFyX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfb25fYnVpbHRpbl9mdW5jdGlvbihzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICdub3Qgc3VwcG9ydGVkIGJ5IHNpZ25hdHVyZScpOgorICAgICAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUodHlwZSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICdub3Qgc3VwcG9ydGVkIGJ5IHNpZ25hdHVyZScpOgorICAgICAgICAgICAgIyBzdXBwb3J0IGZvciAnd3JhcHBlcl9kZXNjcmlwdG9yJworICAgICAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUodHlwZS5fX2NhbGxfXykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICdub3Qgc3VwcG9ydGVkIGJ5IHNpZ25hdHVyZScpOgorICAgICAgICAgICAgIyBzdXBwb3J0IGZvciAnbWV0aG9kLXdyYXBwZXInCisgICAgICAgICAgICBpbnNwZWN0LnNpZ25hdHVyZShtaW4uX19jYWxsX18pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdubyBzaWduYXR1cmUgZm91bmQgZm9yIGJ1aWx0aW4gZnVuY3Rpb24nKToKKyAgICAgICAgICAgICMgc3VwcG9ydCBmb3IgJ21ldGhvZC13cmFwcGVyJworICAgICAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUobWluKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX29uX25vbl9mdW5jdGlvbihzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgJ2lzIG5vdCBhIGNhbGxhYmxlIG9iamVjdCcpOgorICAgICAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUoNDIpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgJ2lzIG5vdCBhIFB5dGhvbiBmdW5jdGlvbicpOgorICAgICAgICAgICAgaW5zcGVjdC5TaWduYXR1cmUuZnJvbV9mdW5jdGlvbig0MikKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9vbl9tZXRob2Qoc2VsZik6CisgICAgICAgIGNsYXNzIFRlc3Q6CisgICAgICAgICAgICBkZWYgZm9vKHNlbGYsIGFyZzEsIGFyZzI9MSkgLT4gaW50OgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtZXRoID0gVGVzdCgpLmZvbworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUobWV0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2FyZzEnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhcmcyJywgMSwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQpKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX29uX2NsYXNzbWV0aG9kKHNlbGYpOgorICAgICAgICBjbGFzcyBUZXN0OgorICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAgICBkZWYgZm9vKGNscywgYXJnMSwgKiwgYXJnMj0xKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbWV0aCA9IFRlc3QoKS5mb28KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShtZXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYXJnMScsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2FyZzInLCAxLCAuLi4sICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICAgICAgbWV0aCA9IFRlc3QuZm9vCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUobWV0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2FyZzEnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhcmcyJywgMSwgLi4uLCAia2V5d29yZF9vbmx5IikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX29uX3N0YXRpY21ldGhvZChzZWxmKToKKyAgICAgICAgY2xhc3MgVGVzdDoKKyAgICAgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgICAgIGRlZiBmb28oY2xzLCAqLCBhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtZXRoID0gVGVzdCgpLmZvbworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKG1ldGgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdjbHMnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdhcmcnLCAuLi4sIC4uLiwgImtleXdvcmRfb25seSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgICAgICBtZXRoID0gVGVzdC5mb28KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShtZXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnY2xzJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYXJnJywgLi4uLCAuLi4sICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfb25fcGFydGlhbChzZWxmKToKKyAgICAgICAgZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHBhcnRpYWwKKworICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbCh0ZXN0KSksICgoKSwgLi4uKSkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgImhhcyBpbmNvcnJlY3QgYXJndW1lbnRzIik6CisgICAgICAgICAgICBpbnNwZWN0LnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QsIDEpKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAiaGFzIGluY29ycmVjdCBhcmd1bWVudHMiKToKKyAgICAgICAgICAgIGluc3BlY3Quc2lnbmF0dXJlKHBhcnRpYWwodGVzdCwgYT0xKSkKKworICAgICAgICBkZWYgdGVzdChhLCBiLCAqLCBjLCBkKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHBhcnRpYWwodGVzdCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYicsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2MnLCAuLi4sIC4uLiwgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdkJywgLi4uLCAuLi4sICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QsIDEpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYicsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2MnLCAuLi4sIC4uLiwgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdkJywgLi4uLCAuLi4sICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QsIDEsIGM9MikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdiJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYycsIDIsIC4uLiwgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdkJywgLi4uLCAuLi4sICJrZXl3b3JkX29ubHkiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QsIGI9MSwgYz0yKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdiJywgMSwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2MnLCAyLCAuLi4sICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnZCcsIC4uLiwgLi4uLCAia2V5d29yZF9vbmx5IikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCAwLCBiPTEsIGM9MikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdiJywgMSwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2MnLCAyLCAuLi4sICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnZCcsIC4uLiwgLi4uLCAia2V5d29yZF9vbmx5IiksKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgICAgICBkZWYgdGVzdChhLCAqYXJncywgYiwgKiprd2FyZ3MpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCAxKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2FyZ3MnLCAuLi4sIC4uLiwgInZhcl9wb3NpdGlvbmFsIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCAuLi4sIC4uLiwgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdrd2FyZ3MnLCAuLi4sIC4uLiwgInZhcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCAxLCAyLCAzKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2FyZ3MnLCAuLi4sIC4uLiwgInZhcl9wb3NpdGlvbmFsIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCAuLi4sIC4uLiwgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdrd2FyZ3MnLCAuLi4sIC4uLiwgInZhcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHRlc3QsIDEsIDIsIDMsIHRlc3Q9VHJ1ZSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhcmdzJywgLi4uLCAuLi4sICJ2YXJfcG9zaXRpb25hbCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdiJywgLi4uLCAuLi4sICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgna3dhcmdzJywgLi4uLCAuLi4sICJ2YXJfa2V5d29yZCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHBhcnRpYWwodGVzdCwgMSwgMiwgMywgdGVzdD0xLCBiPTApKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYXJncycsIC4uLiwgLi4uLCAidmFyX3Bvc2l0aW9uYWwiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYicsIDAsIC4uLiwgImtleXdvcmRfb25seSIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdrd2FyZ3MnLCAuLi4sIC4uLiwgInZhcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUocGFydGlhbCh0ZXN0LCBiPTApKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2FyZ3MnLCAuLi4sIC4uLiwgInZhcl9wb3NpdGlvbmFsIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCAwLCAuLi4sICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgna3dhcmdzJywgLi4uLCAuLi4sICJ2YXJfa2V5d29yZCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHBhcnRpYWwodGVzdCwgYj0wLCB0ZXN0PTEpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2FyZ3MnLCAuLi4sIC4uLiwgInZhcl9wb3NpdGlvbmFsIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2InLCAwLCAuLi4sICJrZXl3b3JkX29ubHkiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgna3dhcmdzJywgLi4uLCAuLi4sICJ2YXJfa2V5d29yZCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgICAgICBkZWYgdGVzdChhLCBiLCBjOmludCkgLT4gNDI6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgc2lnID0gdGVzdC5fX3NpZ25hdHVyZV9fID0gaW5zcGVjdC5zaWduYXR1cmUodGVzdCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKHBhcnRpYWwocGFydGlhbCh0ZXN0LCAxKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdiJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYycsIC4uLiwgaW50LCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICA0MikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShwYXJ0aWFsKHBhcnRpYWwodGVzdCwgMSksIDIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYycsIC4uLiwgaW50LCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgNDIpKQorCisgICAgICAgIHBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZShwYXJ0aWFsKHBhcnRpYWwodGVzdCwgMSksIDIpKQorCisgICAgICAgIGRlZiBmb28oYSk6CisgICAgICAgICAgICByZXR1cm4gYQorICAgICAgICBfZm9vID0gcGFydGlhbChwYXJ0aWFsKGZvbywgYT0xMCksIGE9MjApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoX2ZvbyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCAyMCwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKyAgICAgICAgIyBjaGVjayB0aGF0IHdlIGRvbid0IGhhdmUgYW55IHNpZGUtZWZmZWN0cyBpbiBzaWduYXR1cmUoKSwKKyAgICAgICAgIyBhbmQgdGhlIHBhcnRpYWwgb2JqZWN0IGlzIHN0aWxsIGZ1bmN0aW9uaW5nCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZvbygpLCAyMCkKKworICAgICAgICBkZWYgZm9vKGEsIGIsIGMpOgorICAgICAgICAgICAgcmV0dXJuIGEsIGIsIGMKKyAgICAgICAgX2ZvbyA9IHBhcnRpYWwocGFydGlhbChmb28sIDEsIGI9MjApLCBiPTMwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKF9mb28pLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdiJywgMzAsIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdjJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZvbyhjPTEwKSwgKDEsIDMwLCAxMCkpCisgICAgICAgIF9mb28gPSBwYXJ0aWFsKF9mb28sIDIpICMgbm93ICdiJyBoYXMgdHdvIHZhbHVlcyAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcG9zaXRpb25hbCBhbmQga2V5d29yZAorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgImhhcyBpbmNvcnJlY3QgYXJndW1lbnRzIik6CisgICAgICAgICAgICBpbnNwZWN0LnNpZ25hdHVyZShfZm9vKQorCisgICAgICAgIGRlZiBmb28oYSwgYiwgYywgKiwgZCk6CisgICAgICAgICAgICByZXR1cm4gYSwgYiwgYywgZAorICAgICAgICBfZm9vID0gcGFydGlhbChwYXJ0aWFsKGZvbywgZD0yMCwgYz0yMCksIGI9MTAsIGQ9MzApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoX2ZvbyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdiJywgMTAsIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdjJywgMjAsIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdkJywgMzAsIC4uLiwgImtleXdvcmRfb25seSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKyAgICAgICAgYmEgPSBpbnNwZWN0LnNpZ25hdHVyZShfZm9vKS5iaW5kKGE9MjAwLCBiPTExKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9mb28oKmJhLmFyZ3MsICoqYmEua3dhcmdzKSwgKDIwMCwgMTEsIDIwLCAzMCkpCisKKyAgICAgICAgZGVmIGZvbyhhPTEsIGI9MiwgYz0zKToKKyAgICAgICAgICAgIHJldHVybiBhLCBiLCBjCisgICAgICAgIF9mb28gPSBwYXJ0aWFsKGZvbywgYT0xMCwgYz0xMykKKyAgICAgICAgYmEgPSBpbnNwZWN0LnNpZ25hdHVyZShfZm9vKS5iaW5kKDExKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9mb28oKmJhLmFyZ3MsICoqYmEua3dhcmdzKSwgKDExLCAyLCAxMykpCisgICAgICAgIGJhID0gaW5zcGVjdC5zaWduYXR1cmUoX2ZvbykuYmluZCgxMSwgMTIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZvbygqYmEuYXJncywgKipiYS5rd2FyZ3MpLCAoMTEsIDEyLCAxMykpCisgICAgICAgIGJhID0gaW5zcGVjdC5zaWduYXR1cmUoX2ZvbykuYmluZCgxMSwgYj0xMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfZm9vKCpiYS5hcmdzLCAqKmJhLmt3YXJncyksICgxMSwgMTIsIDEzKSkKKyAgICAgICAgYmEgPSBpbnNwZWN0LnNpZ25hdHVyZShfZm9vKS5iaW5kKGI9MTIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZvbygqYmEuYXJncywgKipiYS5rd2FyZ3MpLCAoMTAsIDEyLCAxMykpCisgICAgICAgIF9mb28gPSBwYXJ0aWFsKF9mb28sIGI9MTApCisgICAgICAgIGJhID0gaW5zcGVjdC5zaWduYXR1cmUoX2ZvbykuYmluZCgxMiwgMTQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2ZvbygqYmEuYXJncywgKipiYS5rd2FyZ3MpLCAoMTIsIDE0LCAxMykpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfb25fZGVjb3JhdGVkKHNlbGYpOgorICAgICAgICBpbXBvcnQgZnVuY3Rvb2xzCisKKyAgICAgICAgZGVmIGRlY29yYXRvcihmdW5jKToKKyAgICAgICAgICAgIEBmdW5jdG9vbHMud3JhcHMoZnVuYykKKyAgICAgICAgICAgIGRlZiB3cmFwcGVyKCphcmdzLCAqKmt3YXJncykgLT4gaW50OgorICAgICAgICAgICAgICAgIHJldHVybiBmdW5jKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgICAgIHJldHVybiB3cmFwcGVyCisKKyAgICAgICAgY2xhc3MgRm9vOgorICAgICAgICAgICAgQGRlY29yYXRvcgorICAgICAgICAgICAgZGVmIGJhcihzZWxmLCBhLCBiKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShGb28uYmFyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnc2VsZicsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2EnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdiJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShGb28oKS5iYXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYicsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgICAgICMgVGVzdCB0aGF0IHdlIGhhbmRsZSBtZXRob2Qgd3JhcHBlcnMgY29ycmVjdGx5CisgICAgICAgIGRlZiBkZWNvcmF0b3IoZnVuYyk6CisgICAgICAgICAgICBAZnVuY3Rvb2xzLndyYXBzKGZ1bmMpCisgICAgICAgICAgICBkZWYgd3JhcHBlcigqYXJncywgKiprd2FyZ3MpIC0+IGludDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyg0MiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAgICAgc2lnID0gaW5zcGVjdC5zaWduYXR1cmUoZnVuYykKKyAgICAgICAgICAgIG5ld19wYXJhbXMgPSB0dXBsZShzaWcucGFyYW1ldGVycy52YWx1ZXMoKSlbMTpdCisgICAgICAgICAgICB3cmFwcGVyLl9fc2lnbmF0dXJlX18gPSBzaWcucmVwbGFjZShwYXJhbWV0ZXJzPW5ld19wYXJhbXMpCisgICAgICAgICAgICByZXR1cm4gd3JhcHBlcgorCisgICAgICAgIGNsYXNzIEZvbzoKKyAgICAgICAgICAgIEBkZWNvcmF0b3IKKyAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBhLCBiKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShGb28uX19jYWxsX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnYicsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoRm9vKCkuX19jYWxsX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdiJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX29uX2NsYXNzKHNlbGYpOgorICAgICAgICBjbGFzcyBDOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGEpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKEMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgICAgIGNsYXNzIENNKHR5cGUpOgorICAgICAgICAgICAgZGVmIF9fY2FsbF9fKGNscywgYSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBjbGFzcyBDKG1ldGFjbGFzcz1DTSk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgYik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoQyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2EnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICAgICAgY2xhc3MgQ00odHlwZSk6CisgICAgICAgICAgICBkZWYgX19uZXdfXyhtY2xzLCBuYW1lLCBiYXNlcywgZGN0LCAqLCBmb289MSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX19uZXdfXyhtY2xzLCBuYW1lLCBiYXNlcywgZGN0KQorICAgICAgICBjbGFzcyBDKG1ldGFjbGFzcz1DTSk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgYik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoQyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ2InLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShDTSksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ25hbWUnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdiYXNlcycsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2RjdCcsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2ZvbycsIDEsIC4uLiwgImtleXdvcmRfb25seSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgICAgICBjbGFzcyBDTU0odHlwZSk6CisgICAgICAgICAgICBkZWYgX19uZXdfXyhtY2xzLCBuYW1lLCBiYXNlcywgZGN0LCAqLCBmb289MSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX19uZXdfXyhtY2xzLCBuYW1lLCBiYXNlcywgZGN0KQorICAgICAgICAgICAgZGVmIF9fY2FsbF9fKGNscywgbm0sIGJzLCBkdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUobm0sIGJzLCBkdCkKKyAgICAgICAgY2xhc3MgQ00odHlwZSwgbWV0YWNsYXNzPUNNTSk6CisgICAgICAgICAgICBkZWYgX19uZXdfXyhtY2xzLCBuYW1lLCBiYXNlcywgZGN0LCAqLCBiYXI9Mik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuX19uZXdfXyhtY2xzLCBuYW1lLCBiYXNlcywgZGN0KQorICAgICAgICBjbGFzcyBDKG1ldGFjbGFzcz1DTSk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgYik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoQ01NKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnbmFtZScsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2Jhc2VzJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnZGN0JywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnZm9vJywgMSwgLi4uLCAia2V5d29yZF9vbmx5IikpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoQ00pLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdubScsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2JzJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgnZHQnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKEMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdiJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgICAgIGNsYXNzIENNKHR5cGUpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKGNscywgbmFtZSwgYmFzZXMsIGRjdCwgKiwgYmFyPTIpOgorICAgICAgICAgICAgICAgIHJldHVybiBzdXBlcigpLl9faW5pdF9fKG5hbWUsIGJhc2VzLCBkY3QpCisgICAgICAgIGNsYXNzIEMobWV0YWNsYXNzPUNNKToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBiKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShDTSksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgoJ25hbWUnLCAuLi4sIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdiYXNlcycsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2RjdCcsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoJ2JhcicsIDIsIC4uLiwgImtleXdvcmRfb25seSIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9vbl9jYWxsYWJsZV9vYmplY3RzKHNlbGYpOgorICAgICAgICBjbGFzcyBGb286CisgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgYSk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zaWduYXR1cmUoRm9vKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgLi4uLCAuLi4sICJwb3NpdGlvbmFsX29yX2tleXdvcmQiKSwpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pKQorCisgICAgICAgIGNsYXNzIFNwYW06CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICJpcyBub3QgYSBjYWxsYWJsZSBvYmplY3QiKToKKyAgICAgICAgICAgIGluc3BlY3Quc2lnbmF0dXJlKFNwYW0oKSkKKworICAgICAgICBjbGFzcyBCYXIoU3BhbSwgRm9vKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKEJhcigpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgICAgICBjbGFzcyBUb0ZhaWw6CisgICAgICAgICAgICBfX2NhbGxfXyA9IHR5cGUKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICJub3Qgc3VwcG9ydGVkIGJ5IHNpZ25hdHVyZSIpOgorICAgICAgICAgICAgaW5zcGVjdC5zaWduYXR1cmUoVG9GYWlsKCkpCisKKworICAgICAgICBjbGFzcyBXcmFwcGVkOgorICAgICAgICAgICAgcGFzcworICAgICAgICBXcmFwcGVkLl9fd3JhcHBlZF9fID0gbGFtYmRhIGE6IE5vbmUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNpZ25hdHVyZShXcmFwcGVkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKCgnYScsIC4uLiwgLi4uLCAicG9zaXRpb25hbF9vcl9rZXl3b3JkIiksKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9vbl9sYW1iZGFzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2lnbmF0dXJlKChsYW1iZGEgYT0xMDogYSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdhJywgMTAsIC4uLiwgInBvc2l0aW9uYWxfb3Jfa2V5d29yZCIpLCksCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfZXF1YWxpdHkoc2VsZik6CisgICAgICAgIGRlZiBmb28oYSwgKiwgYjppbnQpIC0+IGZsb2F0OiBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoaW5zcGVjdC5zaWduYXR1cmUoZm9vKSwgNDIpCisKKyAgICAgICAgZGVmIGJhcihhLCAqLCBiOmludCkgLT4gZmxvYXQ6IHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQorCisgICAgICAgIGRlZiBiYXIoYSwgKiwgYjppbnQpIC0+IGludDogcGFzcworICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisKKyAgICAgICAgZGVmIGJhcihhLCAqLCBiOmludCk6IHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQorCisgICAgICAgIGRlZiBiYXIoYSwgKiwgYjppbnQ9NDIpIC0+IGZsb2F0OiBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoaW5zcGVjdC5zaWduYXR1cmUoZm9vKSwgaW5zcGVjdC5zaWduYXR1cmUoYmFyKSkKKworICAgICAgICBkZWYgYmFyKGEsICosIGMpIC0+IGZsb2F0OiBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoaW5zcGVjdC5zaWduYXR1cmUoZm9vKSwgaW5zcGVjdC5zaWduYXR1cmUoYmFyKSkKKworICAgICAgICBkZWYgYmFyKGEsIGI6aW50KSAtPiBmbG9hdDogcGFzcworICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisgICAgICAgIGRlZiBzcGFtKGI6aW50LCBhKSAtPiBmbG9hdDogcGFzcworICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKHNwYW0pLCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQorCisgICAgICAgIGRlZiBmb28oKiwgYSwgYiwgYyk6IHBhc3MKKyAgICAgICAgZGVmIGJhcigqLCBjLCBiLCBhKTogcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisKKyAgICAgICAgZGVmIGZvbygqLCBhPTEsIGIsIGMpOiBwYXNzCisgICAgICAgIGRlZiBiYXIoKiwgYywgYiwgYT0xKTogcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisKKyAgICAgICAgZGVmIGZvbyhwb3MsICosIGE9MSwgYiwgYyk6IHBhc3MKKyAgICAgICAgZGVmIGJhcihwb3MsICosIGMsIGIsIGE9MSk6IHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnNwZWN0LnNpZ25hdHVyZShmb28pLCBpbnNwZWN0LnNpZ25hdHVyZShiYXIpKQorCisgICAgICAgIGRlZiBmb28ocG9zLCAqLCBhLCBiLCBjKTogcGFzcworICAgICAgICBkZWYgYmFyKHBvcywgKiwgYywgYiwgYT0xKTogcGFzcworICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisKKyAgICAgICAgZGVmIGZvbyhwb3MsICphcmdzLCBhPTQyLCBiLCBjLCAqKmt3YXJnczppbnQpOiBwYXNzCisgICAgICAgIGRlZiBiYXIocG9zLCAqYXJncywgYywgYiwgYT00MiwgKiprd2FyZ3M6aW50KTogcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluc3BlY3Quc2lnbmF0dXJlKGZvbyksIGluc3BlY3Quc2lnbmF0dXJlKGJhcikpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfdW5oYXNoYWJsZShzZWxmKToKKyAgICAgICAgZGVmIGZvbyhhKTogcGFzcworICAgICAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZShmb28pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICd1bmhhc2hhYmxlIHR5cGUnKToKKyAgICAgICAgICAgIGhhc2goc2lnKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX3N0cihzZWxmKToKKyAgICAgICAgZGVmIGZvbyhhOmludD0xLCAqLCBiLCBjPU5vbmUsICoqa3dhcmdzKSAtPiA0MjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoaW5zcGVjdC5zaWduYXR1cmUoZm9vKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgJyhhOmludD0xLCAqLCBiLCBjPU5vbmUsICoqa3dhcmdzKSAtPiA0MicpCisKKyAgICAgICAgZGVmIGZvbyhhOmludD0xLCAqYXJncywgYiwgYz1Ob25lLCAqKmt3YXJncykgLT4gNDI6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGluc3BlY3Quc2lnbmF0dXJlKGZvbykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICcoYTppbnQ9MSwgKmFyZ3MsIGIsIGM9Tm9uZSwgKiprd2FyZ3MpIC0+IDQyJykKKworICAgICAgICBkZWYgZm9vKCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGluc3BlY3Quc2lnbmF0dXJlKGZvbykpLCAnKCknKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX3N0cl9wb3NpdGlvbmFsX29ubHkoc2VsZik6CisgICAgICAgIFAgPSBpbnNwZWN0LlBhcmFtZXRlcgorCisgICAgICAgIGRlZiB0ZXN0KGFfcG8sICosIGIsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBhX3BvLCBrd2FyZ3MKKworICAgICAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZSh0ZXN0KQorICAgICAgICBuZXdfcGFyYW1zID0gbGlzdChzaWcucGFyYW1ldGVycy52YWx1ZXMoKSkKKyAgICAgICAgbmV3X3BhcmFtc1swXSA9IG5ld19wYXJhbXNbMF0ucmVwbGFjZShraW5kPVAuUE9TSVRJT05BTF9PTkxZKQorICAgICAgICB0ZXN0Ll9fc2lnbmF0dXJlX18gPSBzaWcucmVwbGFjZShwYXJhbWV0ZXJzPW5ld19wYXJhbXMpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoaW5zcGVjdC5zaWduYXR1cmUodGVzdCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICcoPGFfcG8+LCAqLCBiLCAqKmt3YXJncyknKQorCisgICAgICAgIHNpZyA9IGluc3BlY3Quc2lnbmF0dXJlKHRlc3QpCisgICAgICAgIG5ld19wYXJhbXMgPSBsaXN0KHNpZy5wYXJhbWV0ZXJzLnZhbHVlcygpKQorICAgICAgICBuZXdfcGFyYW1zWzBdID0gbmV3X3BhcmFtc1swXS5yZXBsYWNlKG5hbWU9Tm9uZSkKKyAgICAgICAgdGVzdC5fX3NpZ25hdHVyZV9fID0gc2lnLnJlcGxhY2UocGFyYW1ldGVycz1uZXdfcGFyYW1zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihpbnNwZWN0LnNpZ25hdHVyZSh0ZXN0KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgJyg8MD4sICosIGIsICoqa3dhcmdzKScpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcmVwbGFjZV9hbm5vKHNlbGYpOgorICAgICAgICBkZWYgdGVzdCgpIC0+IDQyOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHNpZyA9IGluc3BlY3Quc2lnbmF0dXJlKHRlc3QpCisgICAgICAgIHNpZyA9IHNpZy5yZXBsYWNlKHJldHVybl9hbm5vdGF0aW9uPU5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoc2lnLnJldHVybl9hbm5vdGF0aW9uLCBOb25lKQorICAgICAgICBzaWcgPSBzaWcucmVwbGFjZShyZXR1cm5fYW5ub3RhdGlvbj1zaWcuZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoc2lnLnJldHVybl9hbm5vdGF0aW9uLCBzaWcuZW1wdHkpCisgICAgICAgIHNpZyA9IHNpZy5yZXBsYWNlKHJldHVybl9hbm5vdGF0aW9uPTQyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpZy5yZXR1cm5fYW5ub3RhdGlvbiwgNDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2lnLCBpbnNwZWN0LnNpZ25hdHVyZSh0ZXN0KSkKKworCitjbGFzcyBUZXN0UGFyYW1ldGVyT2JqZWN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX2tpbmRzKHNlbGYpOgorICAgICAgICBQID0gaW5zcGVjdC5QYXJhbWV0ZXIKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFAuUE9TSVRJT05BTF9PTkxZIDwgUC5QT1NJVElPTkFMX09SX0tFWVdPUkQgPCBcCisgICAgICAgICAgICAgICAgICAgICAgICBQLlZBUl9QT1NJVElPTkFMIDwgUC5LRVlXT1JEX09OTFkgPCBQLlZBUl9LRVlXT1JEKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKFAuUE9TSVRJT05BTF9PTkxZKSwgJ1BPU0lUSU9OQUxfT05MWScpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnUE9TSVRJT05BTF9PTkxZJyBpbiByZXByKFAuUE9TSVRJT05BTF9PTkxZKSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9wYXJhbWV0ZXJfb2JqZWN0KHNlbGYpOgorICAgICAgICBwID0gaW5zcGVjdC5QYXJhbWV0ZXIoJ2ZvbycsIGRlZmF1bHQ9MTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPWluc3BlY3QuUGFyYW1ldGVyLlBPU0lUSU9OQUxfT05MWSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLm5hbWUsICdmb28nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuZGVmYXVsdCwgMTApCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocC5hbm5vdGF0aW9uLCBwLmVtcHR5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAua2luZCwgaW5zcGVjdC5QYXJhbWV0ZXIuUE9TSVRJT05BTF9PTkxZKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAnaW52YWxpZCB2YWx1ZScpOgorICAgICAgICAgICAgaW5zcGVjdC5QYXJhbWV0ZXIoJ2ZvbycsIGRlZmF1bHQ9MTAsIGtpbmQ9JzEyMycpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICdub3QgYSB2YWxpZCBwYXJhbWV0ZXIgbmFtZScpOgorICAgICAgICAgICAgaW5zcGVjdC5QYXJhbWV0ZXIoJzEnLCBraW5kPWluc3BlY3QuUGFyYW1ldGVyLlZBUl9LRVlXT1JEKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub24tcG9zaXRpb25hbC1vbmx5IHBhcmFtZXRlcicpOgorICAgICAgICAgICAgaW5zcGVjdC5QYXJhbWV0ZXIoTm9uZSwga2luZD1pbnNwZWN0LlBhcmFtZXRlci5WQVJfS0VZV09SRCkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ2Nhbm5vdCBoYXZlIGRlZmF1bHQgdmFsdWVzJyk6CisgICAgICAgICAgICBpbnNwZWN0LlBhcmFtZXRlcignYScsIGRlZmF1bHQ9NDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPWluc3BlY3QuUGFyYW1ldGVyLlZBUl9LRVlXT1JEKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChWYWx1ZUVycm9yLCAnY2Fubm90IGhhdmUgZGVmYXVsdCB2YWx1ZXMnKToKKyAgICAgICAgICAgIGluc3BlY3QuUGFyYW1ldGVyKCdhJywgZGVmYXVsdD00MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuVkFSX1BPU0lUSU9OQUwpCisKKyAgICAgICAgcCA9IGluc3BlY3QuUGFyYW1ldGVyKCdhJywgZGVmYXVsdD00MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuUE9TSVRJT05BTF9PUl9LRVlXT1JEKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ2Nhbm5vdCBoYXZlIGRlZmF1bHQgdmFsdWVzJyk6CisgICAgICAgICAgICBwLnJlcGxhY2Uoa2luZD1pbnNwZWN0LlBhcmFtZXRlci5WQVJfUE9TSVRJT05BTCkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUocmVwcihwKS5zdGFydHN3aXRoKCc8UGFyYW1ldGVyJykpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX2VxdWFsaXR5KHNlbGYpOgorICAgICAgICBQID0gaW5zcGVjdC5QYXJhbWV0ZXIKKyAgICAgICAgcCA9IFAoJ2ZvbycsIGRlZmF1bHQ9NDIsIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuS0VZV09SRF9PTkxZKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCwgcCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChwLCA0MikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAsIFAoJ2ZvbycsIGRlZmF1bHQ9NDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBraW5kPWluc3BlY3QuUGFyYW1ldGVyLktFWVdPUkRfT05MWSkpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX3VuaGFzaGFibGUoc2VsZik6CisgICAgICAgIHAgPSBpbnNwZWN0LlBhcmFtZXRlcignZm9vJywgZGVmYXVsdD00MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuS0VZV09SRF9PTkxZKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICd1bmhhc2hhYmxlIHR5cGUnKToKKyAgICAgICAgICAgIGhhc2gocCkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9wYXJhbWV0ZXJfcmVwbGFjZShzZWxmKToKKyAgICAgICAgcCA9IGluc3BlY3QuUGFyYW1ldGVyKCdmb28nLCBkZWZhdWx0PTQyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2luZD1pbnNwZWN0LlBhcmFtZXRlci5LRVlXT1JEX09OTFkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdChwLCBwLnJlcGxhY2UoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLCBwLnJlcGxhY2UoKSkKKworICAgICAgICBwMiA9IHAucmVwbGFjZShhbm5vdGF0aW9uPTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDIuYW5ub3RhdGlvbiwgMSkKKyAgICAgICAgcDIgPSBwMi5yZXBsYWNlKGFubm90YXRpb249cDIuZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocCwgcDIpCisKKyAgICAgICAgcDIgPSBwMi5yZXBsYWNlKG5hbWU9J2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDIubmFtZSwgJ2JhcicpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwocDIsIHApCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICdub3QgYSB2YWxpZCBwYXJhbWV0ZXIgbmFtZScpOgorICAgICAgICAgICAgcDIgPSBwMi5yZXBsYWNlKG5hbWU9cDIuZW1wdHkpCisKKyAgICAgICAgcDIgPSBwMi5yZXBsYWNlKG5hbWU9J2ZvbycsIGRlZmF1bHQ9Tm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhwMi5kZWZhdWx0LCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHAyLCBwKQorCisgICAgICAgIHAyID0gcDIucmVwbGFjZShuYW1lPSdmb28nLCBkZWZhdWx0PXAyLmVtcHR5KQorICAgICAgICBzZWxmLmFzc2VydElzKHAyLmRlZmF1bHQsIHAyLmVtcHR5KQorCisKKyAgICAgICAgcDIgPSBwMi5yZXBsYWNlKGRlZmF1bHQ9NDIsIGtpbmQ9cDIuUE9TSVRJT05BTF9PUl9LRVlXT1JEKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAyLmtpbmQsIHAyLlBPU0lUSU9OQUxfT1JfS0VZV09SRCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChwMiwgcCkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgJ2ludmFsaWQgdmFsdWUgZm9yJyk6CisgICAgICAgICAgICBwMiA9IHAyLnJlcGxhY2Uoa2luZD1wMi5lbXB0eSkKKworICAgICAgICBwMiA9IHAyLnJlcGxhY2Uoa2luZD1wMi5LRVlXT1JEX09OTFkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocDIsIHApCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX3Bvc2l0aW9uYWxfb25seShzZWxmKToKKyAgICAgICAgcCA9IGluc3BlY3QuUGFyYW1ldGVyKE5vbmUsIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuUE9TSVRJT05BTF9PTkxZKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgJzw+JykKKworICAgICAgICBwID0gcC5yZXBsYWNlKG5hbWU9JzEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihwKSwgJzwxPicpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfcGFyYW1ldGVyX2ltbXV0YWJpbGl0eShzZWxmKToKKyAgICAgICAgcCA9IGluc3BlY3QuUGFyYW1ldGVyKE5vbmUsIGtpbmQ9aW5zcGVjdC5QYXJhbWV0ZXIuUE9TSVRJT05BTF9PTkxZKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgcC5mb28gPSAnYmFyJworCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgcC5raW5kID0gMTIzCisKKworY2xhc3MgVGVzdFNpZ25hdHVyZUJpbmQodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgY2FsbChmdW5jLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZShmdW5jKQorICAgICAgICBiYSA9IHNpZy5iaW5kKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgcmV0dXJuIGZ1bmMoKmJhLmFyZ3MsICoqYmEua3dhcmdzKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2JpbmRfZW1wdHkoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICByZXR1cm4gNDIKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0KSwgNDIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEsIHNwYW09MTApCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICd0b28gbWFueSBrZXl3b3JkIGFyZ3VtZW50cycpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIHNwYW09MSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX3ZhcihzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBhcmdzLCBrd2FyZ3MKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0KSwgKCgpLCB7fSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEpLCAoKDEsKSwge30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCAyKSwgKCgxLCAyKSwge30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBmb289J2JhcicpLCAoKCksIHsnZm9vJzogJ2Jhcid9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgZm9vPSdiYXInKSwgKCgxLCksIHsnZm9vJzogJ2Jhcid9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgYXJncz0xMCksICgoKSwgeydhcmdzJzogMTB9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiwgZm9vPSdiYXInKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKDEsIDIpLCB7J2Zvbyc6ICdiYXInfSkpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfYmluZF9qdXN0X2FyZ3Moc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KGEsIGIsIGMpOgorICAgICAgICAgICAgcmV0dXJuIGEsIGIsIGMKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCAyLCAzKSwgKDEsIDIsIDMpKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEsIDIsIDMsIDQpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgIidiJyBwYXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0Iik6CisgICAgICAgICAgICBzZWxmLmNhbGwodGVzdCwgMSkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAiJ2EnIHBhcmFtZXRlciBsYWNraW5nIGRlZmF1bHQiKToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0KQorCisgICAgICAgIGRlZiB0ZXN0KGEsIGIsIGM9MTApOgorICAgICAgICAgICAgcmV0dXJuIGEsIGIsIGMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiwgMyksICgxLCAyLCAzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiksICgxLCAyLCAxMCkpCisKKyAgICAgICAgZGVmIHRlc3QoYT0xLCBiPTIsIGM9Myk6CisgICAgICAgICAgICByZXR1cm4gYSwgYiwgYworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBhPTEwLCBjPTEzKSwgKDEwLCAyLCAxMykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIGE9MTApLCAoMTAsIDIsIDMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBiPTEwKSwgKDEsIDEwLCAzKSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX3ZhcmFyZ3Nfb3JkZXIoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KCphcmdzKToKKyAgICAgICAgICAgIHJldHVybiBhcmdzCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCksICgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCAyLCAzKSwgKDEsIDIsIDMpKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2JpbmRfYXJnc19hbmRfdmFyYXJncyhzZWxmKToKKyAgICAgICAgZGVmIHRlc3QoYSwgYiwgYz0zLCAqYXJncyk6CisgICAgICAgICAgICByZXR1cm4gYSwgYiwgYywgYXJncworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIDIsIDMsIDQsIDUpLCAoMSwgMiwgMywgKDQsIDUpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiksICgxLCAyLCAzLCAoKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIGI9MSwgYT0yKSwgKDIsIDEsIDMsICgpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgYj0yKSwgKDEsIDIsIDMsICgpKSkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdWx0aXBsZSB2YWx1ZXMgZm9yIGFyZ3VtZW50ICdjJyIpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEsIDIsIDMsIGM9NCkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9iaW5kX2p1c3Rfa3dhcmdzKHNlbGYpOgorICAgICAgICBkZWYgdGVzdCgqKmt3YXJncyk6CisgICAgICAgICAgICByZXR1cm4ga3dhcmdzCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCksIHt9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBmb289J2JhcicsIHNwYW09J2hhbScpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHsnZm9vJzogJ2JhcicsICdzcGFtJzogJ2hhbSd9KQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2JpbmRfYXJnc19hbmRfa3dhcmdzKHNlbGYpOgorICAgICAgICBkZWYgdGVzdChhLCBiLCBjPTMsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBhLCBiLCBjLCBrd2FyZ3MKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCAyKSwgKDEsIDIsIDMsIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiwgZm9vPSdiYXInLCBzcGFtPSdoYW0nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMiwgMywgeydmb28nOiAnYmFyJywgJ3NwYW0nOiAnaGFtJ30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBiPTIsIGE9MSwgZm9vPSdiYXInLCBzcGFtPSdoYW0nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMiwgMywgeydmb28nOiAnYmFyJywgJ3NwYW0nOiAnaGFtJ30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBhPTEsIGI9MiwgZm9vPSdiYXInLCBzcGFtPSdoYW0nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMiwgMywgeydmb28nOiAnYmFyJywgJ3NwYW0nOiAnaGFtJ30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCBiPTIsIGZvbz0nYmFyJywgc3BhbT0naGFtJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIDMsIHsnZm9vJzogJ2JhcicsICdzcGFtJzogJ2hhbSd9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgYj0yLCBjPTQsIGZvbz0nYmFyJywgc3BhbT0naGFtJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIDQsIHsnZm9vJzogJ2JhcicsICdzcGFtJzogJ2hhbSd9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgMiwgNCwgZm9vPSdiYXInKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMiwgNCwgeydmb28nOiAnYmFyJ30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBjPTUsIGE9NCwgYj0zKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoNCwgMywgNSwge30pKQorCisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2JpbmRfa3dvbmx5KHNlbGYpOgorICAgICAgICBkZWYgdGVzdCgqLCBmb28pOgorICAgICAgICAgICAgcmV0dXJuIGZvbworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b28gbWFueSBwb3NpdGlvbmFsIGFyZ3VtZW50cycpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIGZvbz0xKSwgMSkKKworICAgICAgICBkZWYgdGVzdChhLCAqLCBmb289MSwgYmFyKToKKyAgICAgICAgICAgIHJldHVybiBmb28KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ2JhcicgcGFyYW1ldGVyIGxhY2tpbmcgZGVmYXVsdCB2YWx1ZSIpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEpCisKKyAgICAgICAgZGVmIHRlc3QoZm9vLCAqLCBiYXIpOgorICAgICAgICAgICAgcmV0dXJuIGZvbywgYmFyCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIDEsIGJhcj0yKSwgKDEsIDIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBiYXI9MiwgZm9vPTEpLCAoMSwgMikpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9vIG1hbnkga2V5d29yZCBhcmd1bWVudHMnKToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCBiYXI9MiwgZm9vPTEsIHNwYW09MTApCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9vIG1hbnkgcG9zaXRpb25hbCBhcmd1bWVudHMnKToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxLCAyKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvbyBtYW55IHBvc2l0aW9uYWwgYXJndW1lbnRzJyk6CisgICAgICAgICAgICBzZWxmLmNhbGwodGVzdCwgMSwgMiwgYmFyPTIpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9vIG1hbnkga2V5d29yZCBhcmd1bWVudHMnKToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCAxLCBiYXI9Miwgc3BhbT0naGFtJykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICInYmFyJyBwYXJhbWV0ZXIgbGFja2luZyBkZWZhdWx0IHZhbHVlIik6CisgICAgICAgICAgICBzZWxmLmNhbGwodGVzdCwgMSkKKworICAgICAgICBkZWYgdGVzdChmb28sICosIGJhciwgKipiaW4pOgorICAgICAgICAgICAgcmV0dXJuIGZvbywgYmFyLCBiaW4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgYmFyPTIpLCAoMSwgMiwge30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCBmb289MSwgYmFyPTIpLCAoMSwgMiwge30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCBiYXI9Miwgc3BhbT0naGFtJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIHsnc3BhbSc6ICdoYW0nfSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jYWxsKHRlc3QsIHNwYW09J2hhbScsIGZvbz0xLCBiYXI9MiksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIHsnc3BhbSc6ICdoYW0nfSkpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIidmb28nIHBhcmFtZXRlciBsYWNraW5nIGRlZmF1bHQgdmFsdWUiKToKKyAgICAgICAgICAgIHNlbGYuY2FsbCh0ZXN0LCBzcGFtPSdoYW0nLCBiYXI9MikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNhbGwodGVzdCwgMSwgYmFyPTIsIGJpbj0xLCBzcGFtPTEwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAoMSwgMiwgeydiaW4nOiAxLCAnc3BhbSc6IDEwfSkpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfYmluZF9hcmd1bWVudHMoc2VsZik6CisgICAgICAgIGRlZiB0ZXN0KGEsICphcmdzLCBiLCB6PTEwMCwgKiprd2FyZ3MpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzaWcgPSBpbnNwZWN0LnNpZ25hdHVyZSh0ZXN0KQorICAgICAgICBiYSA9IHNpZy5iaW5kKDEwLCAyMCwgYj0zMCwgYz00MCwgYXJncz01MCwga3dhcmdzPTYwKQorICAgICAgICAjIHdlIHdvbid0IGhhdmUgJ3onIGFyZ3VtZW50IGluIHRoZSBib3VuZCBhcmd1bWVudHMgb2JqZWN0LCBhcyB3ZSBkaWRuJ3QKKyAgICAgICAgIyBwYXNzIGl0IHRvIHRoZSAnYmluZCcKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0dXBsZShiYS5hcmd1bWVudHMuaXRlbXMoKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCgnYScsIDEwKSwgKCdhcmdzJywgKDIwLCkpLCAoJ2InLCAzMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgna3dhcmdzJywgeydjJzogNDAsICdhcmdzJzogNTAsICdrd2FyZ3MnOiA2MH0pKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYS5rd2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgeydiJzogMzAsICdjJzogNDAsICdhcmdzJzogNTAsICdrd2FyZ3MnOiA2MH0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmEuYXJncywgKDEwLCAyMCkpCisKKyAgICBkZWYgdGVzdF9zaWduYXR1cmVfYmluZF9wb3NpdGlvbmFsX29ubHkoc2VsZik6CisgICAgICAgIFAgPSBpbnNwZWN0LlBhcmFtZXRlcgorCisgICAgICAgIGRlZiB0ZXN0KGFfcG8sIGJfcG8sIGNfcG89MywgZm9vPTQyLCAqLCBiYXI9NTAsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBhX3BvLCBiX3BvLCBjX3BvLCBmb28sIGJhciwga3dhcmdzCisKKyAgICAgICAgc2lnID0gaW5zcGVjdC5zaWduYXR1cmUodGVzdCkKKyAgICAgICAgbmV3X3BhcmFtcyA9IGNvbGxlY3Rpb25zLk9yZGVyZWREaWN0KHR1cGxlKHNpZy5wYXJhbWV0ZXJzLml0ZW1zKCkpKQorICAgICAgICBmb3IgbmFtZSBpbiAoJ2FfcG8nLCAnYl9wbycsICdjX3BvJyk6CisgICAgICAgICAgICBuZXdfcGFyYW1zW25hbWVdID0gbmV3X3BhcmFtc1tuYW1lXS5yZXBsYWNlKGtpbmQ9UC5QT1NJVElPTkFMX09OTFkpCisgICAgICAgIG5ld19zaWcgPSBzaWcucmVwbGFjZShwYXJhbWV0ZXJzPW5ld19wYXJhbXMudmFsdWVzKCkpCisgICAgICAgIHRlc3QuX19zaWduYXR1cmVfXyA9IG5ld19zaWcKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2FsbCh0ZXN0LCAxLCAyLCA0LCA1LCBiYXI9NiksCisgICAgICAgICAgICAgICAgICAgICAgICAgKDEsIDIsIDQsIDUsIDYsIHt9KSkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAicGFyYW1ldGVyIGlzIHBvc2l0aW9uYWwgb25seSIpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIDEsIDIsIGNfcG89NCkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAicGFyYW1ldGVyIGlzIHBvc2l0aW9uYWwgb25seSIpOgorICAgICAgICAgICAgc2VsZi5jYWxsKHRlc3QsIGFfcG89MSwgYl9wbz0yKQorCisKK2NsYXNzIFRlc3RCb3VuZEFyZ3VtZW50cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3Rfc2lnbmF0dXJlX2JvdW5kX2FyZ3VtZW50c191bmhhc2hhYmxlKHNlbGYpOgorICAgICAgICBkZWYgZm9vKGEpOiBwYXNzCisgICAgICAgIGJhID0gaW5zcGVjdC5zaWduYXR1cmUoZm9vKS5iaW5kKDEpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgJ3VuaGFzaGFibGUgdHlwZScpOgorICAgICAgICAgICAgaGFzaChiYSkKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9ib3VuZF9hcmd1bWVudHNfZXF1YWxpdHkoc2VsZik6CisgICAgICAgIGRlZiBmb28oYSk6IHBhc3MKKyAgICAgICAgYmEgPSBpbnNwZWN0LnNpZ25hdHVyZShmb28pLmJpbmQoMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYSwgYmEpCisKKyAgICAgICAgYmEyID0gaW5zcGVjdC5zaWduYXR1cmUoZm9vKS5iaW5kKDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmEsIGJhMikKKworICAgICAgICBiYTMgPSBpbnNwZWN0LnNpZ25hdHVyZShmb28pLmJpbmQoMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChiYSwgYmEzKQorICAgICAgICBiYTMuYXJndW1lbnRzWydhJ10gPSAxCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmEsIGJhMykKKworICAgICAgICBkZWYgYmFyKGIpOiBwYXNzCisgICAgICAgIGJhNCA9IGluc3BlY3Quc2lnbmF0dXJlKGJhcikuYmluZCgxKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGJhLCBiYTQpCisKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHJ1bl91bml0dGVzdCgKQEAgLTExNzYsNyArMjI3NCw4IEBACiAgICAgICAgIFRlc3RJbnRlcnByZXRlclN0YWNrLCBUZXN0Q2xhc3Nlc0FuZEZ1bmN0aW9ucywgVGVzdFByZWRpY2F0ZXMsCiAgICAgICAgIFRlc3RHZXRjYWxsYXJnc0Z1bmN0aW9ucywgVGVzdEdldGNhbGxhcmdzTWV0aG9kcywKICAgICAgICAgVGVzdEdldGNhbGxhcmdzVW5ib3VuZE1ldGhvZHMsIFRlc3RHZXRhdHRyU3RhdGljLCBUZXN0R2V0R2VuZXJhdG9yU3RhdGUsCi0gICAgICAgIFRlc3ROb0VPTAorICAgICAgICBUZXN0Tm9FT0wsIFRlc3RTaWduYXR1cmVPYmplY3QsIFRlc3RTaWduYXR1cmVCaW5kLCBUZXN0UGFyYW1ldGVyT2JqZWN0LAorICAgICAgICBUZXN0Qm91bmRBcmd1bWVudHMsIFRlc3RHZXRDbG9zdXJlVmFycwogICAgICkKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaW8ucHkgYi9MaWIvdGVzdC90ZXN0X2lvLnB5CmluZGV4IDk1ZWNkOTAuLmVkODU2NGMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfaW8ucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9pby5weQpAQCAtMTksMjAgKzE5LDIxIEBACiAjIHRlc3QgYm90aCBpbXBsZW1lbnRhdGlvbnMuIFRoaXMgZmlsZSBoYXMgbG90cyBvZiBleGFtcGxlcy4KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKK2ltcG9ydCBhYmMKK2ltcG9ydCBhcnJheQoraW1wb3J0IGVycm5vCitpbXBvcnQgbG9jYWxlCiBpbXBvcnQgb3MKK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCByYW5kb20KK2ltcG9ydCBzaWduYWwKIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCi1pbXBvcnQgYXJyYXkKLWltcG9ydCByYW5kb20KIGltcG9ydCB1bml0dGVzdAotaW1wb3J0IHdlYWtyZWYKLWltcG9ydCBhYmMKLWltcG9ydCBzaWduYWwKLWltcG9ydCBlcnJubwogaW1wb3J0IHdhcm5pbmdzCi1pbXBvcnQgcGlja2xlCi1mcm9tIGl0ZXJ0b29scyBpbXBvcnQgY3ljbGUsIGNvdW50CitpbXBvcnQgd2Vha3JlZgogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKK2Zyb20gaXRlcnRvb2xzIGltcG9ydCBjeWNsZSwgY291bnQKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogCiBpbXBvcnQgY29kZWNzCkBAIC00OSw3ICs1MCw3IEBACiAKIGRlZiBfZGVmYXVsdF9jaHVua19zaXplKCk6CiAgICAgIiIiR2V0IHRoZSBkZWZhdWx0IFRleHRJT1dyYXBwZXIgY2h1bmsgc2l6ZSIiIgotICAgIHdpdGggb3BlbihfX2ZpbGVfXywgInIiLCBlbmNvZGluZz0ibGF0aW4xIikgYXMgZjoKKyAgICB3aXRoIG9wZW4oX19maWxlX18sICJyIiwgZW5jb2Rpbmc9ImxhdGluLTEiKSBhcyBmOgogICAgICAgICByZXR1cm4gZi5fQ0hVTktfU0laRQogCiAKQEAgLTYzNCw2ICs2MzUsMTUgQEAKICAgICAgICAgZm9yIG9iaiBpbiB0ZXN0OgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIob2JqLCAiX19kaWN0X18iKSkKIAorICAgIGRlZiB0ZXN0X29wZW5lcihzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4oc3VwcG9ydC5URVNURk4sICJ3IikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUoImVnZ1xuIikKKyAgICAgICAgZmQgPSBvcy5vcGVuKHN1cHBvcnQuVEVTVEZOLCBvcy5PX1JET05MWSkKKyAgICAgICAgZGVmIG9wZW5lcihwYXRoLCBmbGFncyk6CisgICAgICAgICAgICByZXR1cm4gZmQKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4oIm5vbi1leGlzdGVudCIsICJyIiwgb3BlbmVyPW9wZW5lcikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksICJlZ2dcbiIpCisKICAgICBkZWYgdGVzdF9maWxlaW9fY2xvc2VmZChzZWxmKToKICAgICAgICAgIyBJc3N1ZSAjNDg0MQogICAgICAgICB3aXRoIHNlbGYub3BlbihfX2ZpbGVfXywgJ3JiJykgYXMgZjEsIFwKQEAgLTY5Niw3ICs3MDYsNyBAQAogICAgICAgICBidWZpbyA9IHNlbGYudHAocmF3aW8pCiAgICAgICAgICMgSW52YWxpZCB3aGVuY2UKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgYnVmaW8uc2VlaywgMCwgLTEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGJ1ZmlvLnNlZWssIDAsIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGJ1ZmlvLnNlZWssIDAsIDkpCiAKICAgICBkZWYgdGVzdF9vdmVycmlkZV9kZXN0cnVjdG9yKHNlbGYpOgogICAgICAgICB0cCA9IHNlbGYudHAKQEAgLTg0OCw2ICs4NTgsMTIgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLCBiImdmIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWZpby5yZWFkaW50byhiKSwgMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLCBiImdmIikKKyAgICAgICAgcmF3aW8gPSBzZWxmLk1vY2tSYXdJTygoYiJhYmMiLCBOb25lKSkKKyAgICAgICAgYnVmaW8gPSBzZWxmLnRwKHJhd2lvKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1ZmlvLnJlYWRpbnRvKGIpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIsIGIiYWIiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1ZmlvLnJlYWRpbnRvKGIpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIsIGIiY2IiKQogCiAgICAgZGVmIHRlc3RfcmVhZGxpbmVzKHNlbGYpOgogICAgICAgICBkZWYgYnVmaW8oKToKQEAgLTEyMzksOSArMTI1NSw4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGJ1ZmlvLnRlbGwpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGJ1ZmlvLndyaXRlLCBiImFiY2RlZiIpCiAKLSAgICBkZWYgdGVzdF9tYXhfYnVmZmVyX3NpemVfZGVwcmVjYXRpb24oc2VsZik6Ci0gICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoIm1heF9idWZmZXJfc2l6ZSBpcyBkZXByZWNhdGVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcpKToKKyAgICBkZWYgdGVzdF9tYXhfYnVmZmVyX3NpemVfcmVtb3ZhbChzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgogICAgICAgICAgICAgc2VsZi50cChzZWxmLk1vY2tSYXdJTygpLCA4LCAxMikKIAogCkBAIC0xMjk3LDkgKzEzMTIsOCBAQAogICAgICAgICBwYWlyID0gc2VsZi50cChzZWxmLk1vY2tSYXdJTygpLCBzZWxmLk1vY2tSYXdJTygpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzZWxmLlVuc3VwcG9ydGVkT3BlcmF0aW9uLCBwYWlyLmRldGFjaCkKIAotICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9yX21heF9idWZmZXJfc2l6ZV9kZXByZWNhdGlvbihzZWxmKToKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgibWF4X2J1ZmZlcl9zaXplIGlzIGRlcHJlY2F0ZWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0aW9uV2FybmluZykpOgorICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9yX21heF9idWZmZXJfc2l6ZV9yZW1vdmFsKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CiAgICAgICAgICAgICBzZWxmLnRwKHNlbGYuTW9ja1Jhd0lPKCksIHNlbGYuTW9ja1Jhd0lPKCksIDgsIDEyKQogCiAgICAgZGVmIHRlc3RfY29uc3RydWN0b3Jfd2l0aF9ub3RfcmVhZGFibGUoc2VsZik6CkBAIC0xODE1LDExICsxODI5LDExIEBACiAgICAgICAgIHIgPSBzZWxmLkJ5dGVzSU8oYiJceGMzXHhhOVxuXG4iKQogICAgICAgICBiID0gc2VsZi5CdWZmZXJlZFJlYWRlcihyLCAxMDAwKQogICAgICAgICB0ID0gc2VsZi5UZXh0SU9XcmFwcGVyKGIpCi0gICAgICAgIHQuX19pbml0X18oYiwgZW5jb2Rpbmc9ImxhdGluMSIsIG5ld2xpbmU9IlxyXG4iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQuZW5jb2RpbmcsICJsYXRpbjEiKQorICAgICAgICB0Ll9faW5pdF9fKGIsIGVuY29kaW5nPSJsYXRpbi0xIiwgbmV3bGluZT0iXHJcbiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodC5lbmNvZGluZywgImxhdGluLTEiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQubGluZV9idWZmZXJpbmcsIEZhbHNlKQotICAgICAgICB0Ll9faW5pdF9fKGIsIGVuY29kaW5nPSJ1dGY4IiwgbGluZV9idWZmZXJpbmc9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LmVuY29kaW5nLCAidXRmOCIpCisgICAgICAgIHQuX19pbml0X18oYiwgZW5jb2Rpbmc9InV0Zi04IiwgbGluZV9idWZmZXJpbmc9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LmVuY29kaW5nLCAidXRmLTgiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQubGluZV9idWZmZXJpbmcsIFRydWUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlx4ZTlcbiIsIHQucmVhZGxpbmUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB0Ll9faW5pdF9fLCBiLCBuZXdsaW5lPTQyKQpAQCAtMTg2NiwxMSArMTg4MCwyOSBAQAogICAgICAgICB0LndyaXRlKCJBXHJCIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyLmdldHZhbHVlKCksIGIiWFlcblpBXHJCIikKIAorICAgIGRlZiB0ZXN0X2RlZmF1bHRfZW5jb2Rpbmcoc2VsZik6CisgICAgICAgIG9sZF9lbnZpcm9uID0gZGljdChvcy5lbnZpcm9uKQorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIHRyeSB0byBnZXQgYSB1c2VyIHByZWZlcnJlZCBlbmNvZGluZyBkaWZmZXJlbnQgdGhhbiB0aGUgY3VycmVudAorICAgICAgICAgICAgIyBsb2NhbGUgZW5jb2RpbmcgdG8gY2hlY2sgdGhhdCBUZXh0SU9XcmFwcGVyKCkgdXNlcyB0aGUgY3VycmVudAorICAgICAgICAgICAgIyBsb2NhbGUgZW5jb2RpbmcgYW5kIG5vdCB0aGUgdXNlciBwcmVmZXJyZWQgZW5jb2RpbmcKKyAgICAgICAgICAgIGZvciBrZXkgaW4gKCdMQ19BTEwnLCAnTEFORycsICdMQ19DVFlQRScpOgorICAgICAgICAgICAgICAgIGlmIGtleSBpbiBvcy5lbnZpcm9uOgorICAgICAgICAgICAgICAgICAgICBkZWwgb3MuZW52aXJvbltrZXldCisKKyAgICAgICAgICAgIGN1cnJlbnRfbG9jYWxlX2VuY29kaW5nID0gbG9jYWxlLmdldHByZWZlcnJlZGVuY29kaW5nKEZhbHNlKQorICAgICAgICAgICAgYiA9IHNlbGYuQnl0ZXNJTygpCisgICAgICAgICAgICB0ID0gc2VsZi5UZXh0SU9XcmFwcGVyKGIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQuZW5jb2RpbmcsIGN1cnJlbnRfbG9jYWxlX2VuY29kaW5nKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuZW52aXJvbi5jbGVhcigpCisgICAgICAgICAgICBvcy5lbnZpcm9uLnVwZGF0ZShvbGRfZW52aXJvbikKKwogICAgIGRlZiB0ZXN0X2VuY29kaW5nKHNlbGYpOgogICAgICAgICAjIENoZWNrIHRoZSBlbmNvZGluZyBhdHRyaWJ1dGUgaXMgYWx3YXlzIHNldCwgYW5kIHZhbGlkCiAgICAgICAgIGIgPSBzZWxmLkJ5dGVzSU8oKQotICAgICAgICB0ID0gc2VsZi5UZXh0SU9XcmFwcGVyKGIsIGVuY29kaW5nPSJ1dGY4IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LmVuY29kaW5nLCAidXRmOCIpCisgICAgICAgIHQgPSBzZWxmLlRleHRJT1dyYXBwZXIoYiwgZW5jb2Rpbmc9InV0Zi04IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LmVuY29kaW5nLCAidXRmLTgiKQogICAgICAgICB0ID0gc2VsZi5UZXh0SU9XcmFwcGVyKGIpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0LmVuY29kaW5nIGlzIG5vdCBOb25lKQogICAgICAgICBjb2RlY3MubG9va3VwKHQuZW5jb2RpbmcpCkBAIC0xOTYzLDggKzE5OTUsOCBAQAogICAgICAgICB0ZXN0ZGF0YSA9IGIiQUFBXG5CQlx4MDBCXG5DQ0NcckRERFxyRUVFXHJcbkZGRlxyXG5HR0ciCiAgICAgICAgIG5vcm1hbGl6ZWQgPSB0ZXN0ZGF0YS5yZXBsYWNlKGIiXHJcbiIsIGIiXG4iKS5yZXBsYWNlKGIiXHIiLCBiIlxuIikKICAgICAgICAgZm9yIG5ld2xpbmUsIGV4cGVjdGVkIGluIFsKLSAgICAgICAgICAgIChOb25lLCBub3JtYWxpemVkLmRlY29kZSgiYXNjaWkiKS5zcGxpdGxpbmVzKFRydWUpKSwKLSAgICAgICAgICAgICgiIiwgdGVzdGRhdGEuZGVjb2RlKCJhc2NpaSIpLnNwbGl0bGluZXMoVHJ1ZSkpLAorICAgICAgICAgICAgKE5vbmUsIG5vcm1hbGl6ZWQuZGVjb2RlKCJhc2NpaSIpLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkpLAorICAgICAgICAgICAgKCIiLCB0ZXN0ZGF0YS5kZWNvZGUoImFzY2lpIikuc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKSksCiAgICAgICAgICAgICAoIlxuIiwgWyJBQUFcbiIsICJCQlx4MDBCXG4iLCAiQ0NDXHJERERcckVFRVxyXG4iLCAiRkZGXHJcbiIsICJHR0ciXSksCiAgICAgICAgICAgICAoIlxyXG4iLCBbIkFBQVxuQkJceDAwQlxuQ0NDXHJERERcckVFRVxyXG4iLCAiRkZGXHJcbiIsICJHR0ciXSksCiAgICAgICAgICAgICAoIlxyIiwgIFsiQUFBXG5CQlx4MDBCXG5DQ0NcciIsICJERERcciIsICJFRUVcciIsICJcbkZGRlxyIiwgIlxuR0dHIl0pLApAQCAtMjA0OSw3ICsyMDgxLDcgQEAKIAogICAgIGRlZiB0ZXN0X2Jhc2ljX2lvKHNlbGYpOgogICAgICAgICBmb3IgY2h1bmtzaXplIGluICgxLCAyLCAzLCA0LCA1LCAxNSwgMTYsIDE3LCAzMSwgMzIsIDMzLCA2MywgNjQsIDY1KToKLSAgICAgICAgICAgIGZvciBlbmMgaW4gImFzY2lpIiwgImxhdGluMSIsICJ1dGY4IiA6IyAsICJ1dGYtMTYtYmUiLCAidXRmLTE2LWxlIjoKKyAgICAgICAgICAgIGZvciBlbmMgaW4gImFzY2lpIiwgImxhdGluLTEiLCAidXRmLTgiIDojICwgInV0Zi0xNi1iZSIsICJ1dGYtMTYtbGUiOgogICAgICAgICAgICAgICAgIGYgPSBzZWxmLm9wZW4oc3VwcG9ydC5URVNURk4sICJ3KyIsIGVuY29kaW5nPWVuYykKICAgICAgICAgICAgICAgICBmLl9DSFVOS19TSVpFID0gY2h1bmtzaXplCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLndyaXRlKCJhYmMiKSwgMykKQEAgLTIwOTksNyArMjEzMSw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmxpbmVzLCB3bGluZXMpCiAKICAgICBkZWYgdGVzdF90ZWxsaW5nKHNlbGYpOgotICAgICAgICBmID0gc2VsZi5vcGVuKHN1cHBvcnQuVEVTVEZOLCAidysiLCBlbmNvZGluZz0idXRmOCIpCisgICAgICAgIGYgPSBzZWxmLm9wZW4oc3VwcG9ydC5URVNURk4sICJ3KyIsIGVuY29kaW5nPSJ1dGYtOCIpCiAgICAgICAgIHAwID0gZi50ZWxsKCkKICAgICAgICAgZi53cml0ZSgiXHhmZlxuIikKICAgICAgICAgcDEgPSBmLnRlbGwoKQpAQCAtMjM0NSw2ICsyMzc3LDcgQEAKICAgICAgICAgd2l0aCBzZWxmLm9wZW4oc3VwcG9ydC5URVNURk4sICJ3IiwgZXJyb3JzPSJyZXBsYWNlIikgYXMgZjoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5lcnJvcnMsICJyZXBsYWNlIikKIAorICAgIEBzdXBwb3J0Lm5vX3RyYWNpbmcKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWRpbmcsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQogICAgIGRlZiB0ZXN0X3RocmVhZHNfd3JpdGUoc2VsZik6CiAgICAgICAgICMgSXNzdWU2NzUwOiBjb25jdXJyZW50IHdyaXRlcyBjb3VsZCBkdXBsaWNhdGUgZGF0YQpAQCAtMjY2MiwxMiArMjY5NSw2IEBACiAKICAgICBkZWYgdGVzdF9ibG9ja2luZ2lvZXJyb3Ioc2VsZik6CiAgICAgICAgICMgVmFyaW91cyBCbG9ja2luZ0lPRXJyb3IgaXNzdWVzCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5CbG9ja2luZ0lPRXJyb3IpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5CbG9ja2luZ0lPRXJyb3IsIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5CbG9ja2luZ0lPRXJyb3IsIDEsIDIsIDMsIDQpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5CbG9ja2luZ0lPRXJyb3IsIDEsICIiLCBOb25lKQotICAgICAgICBiID0gc2VsZi5CbG9ja2luZ0lPRXJyb3IoMSwgIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5jaGFyYWN0ZXJzX3dyaXR0ZW4sIDApCiAgICAgICAgIGNsYXNzIEMoc3RyKToKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgYyA9IEMoIiIpCkBAIC0yODA5LDYgKzI4MzYsNyBAQAogCiAgICAgICAgICAgICAgICAgZXhjZXB0IHNlbGYuQmxvY2tpbmdJT0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzWzBdLCBlcnJuby5FQUdBSU4pCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzWzJdLCBlLmNoYXJhY3RlcnNfd3JpdHRlbikKICAgICAgICAgICAgICAgICAgICAgc2VudFstMV0gPSBzZW50Wy0xXVs6ZS5jaGFyYWN0ZXJzX3dyaXR0ZW5dCiAgICAgICAgICAgICAgICAgICAgIHJlY2VpdmVkLmFwcGVuZChyZi5yZWFkKCkpCiAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGInQkxPQ0tFRCcKQEAgLTI4MjEsNiArMjg0OSw3IEBACiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgZXhjZXB0IHNlbGYuQmxvY2tpbmdJT0Vycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzWzBdLCBlcnJuby5FQUdBSU4pCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzWzJdLCBlLmNoYXJhY3RlcnNfd3JpdHRlbikKICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmNoYXJhY3RlcnNfd3JpdHRlbiwgMCkKICAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWQuYXBwZW5kKHJmLnJlYWQoKSkKIApAQCAtMjgzMSw2ICsyODYwLDE5IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh3Zi5jbG9zZWQpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZi5jbG9zZWQpCiAKKyAgICBkZWYgdGVzdF9jcmVhdGVfZmFpbChzZWxmKToKKyAgICAgICAgIyAneCcgbW9kZSBmYWlscyBpZiBmaWxlIGlzIGV4aXN0aW5nCisgICAgICAgIHdpdGggc2VsZi5vcGVuKHN1cHBvcnQuVEVTVEZOLCAndycpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhGaWxlRXhpc3RzRXJyb3IsIHNlbGYub3Blbiwgc3VwcG9ydC5URVNURk4sICd4JykKKworICAgIGRlZiB0ZXN0X2NyZWF0ZV93cml0ZXMoc2VsZik6CisgICAgICAgICMgJ3gnIG1vZGUgb3BlbnMgZm9yIHdyaXRpbmcKKyAgICAgICAgd2l0aCBzZWxmLm9wZW4oc3VwcG9ydC5URVNURk4sICd4YicpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKGIic3BhbSIpCisgICAgICAgIHdpdGggc2VsZi5vcGVuKHN1cHBvcnQuVEVTVEZOLCAncmInKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiInNwYW0iLCBmLnJlYWQoKSkKKwogY2xhc3MgQ01pc2NJT1Rlc3QoTWlzY0lPVGVzdCk6CiAgICAgaW8gPSBpbwogCkBAIC0yODUxLDE0ICsyODkzLDE0IEBACiAgICAgICAgIDEvMAogCiAgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkaW5nLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKLSAgICBAdW5pdHRlc3Quc2tpcElmKHN5cy5wbGF0Zm9ybSBpbiAoJ2ZyZWVic2Q1JywgJ2ZyZWVic2Q2JywgJ2ZyZWVic2Q3JyksCi0gICAgICAgICAgICAgICAgICAgICAnaXNzdWUgIzEyNDI5OiBza2lwIHRlc3Qgb24gRnJlZUJTRCA8PSA3JykKICAgICBkZWYgY2hlY2tfaW50ZXJydXB0ZWRfd3JpdGUoc2VsZiwgaXRlbSwgYnl0ZXMsICoqZmRvcGVuX2t3YXJncyk6CiAgICAgICAgICIiIkNoZWNrIHRoYXQgYSBwYXJ0aWFsIHdyaXRlLCB3aGVuIGl0IGdldHMgaW50ZXJydXB0ZWQsIHByb3Blcmx5CiAgICAgICAgIGludm9rZXMgdGhlIHNpZ25hbCBoYW5kbGVyLCBhbmQgYnViYmxlcyB1cCB0aGUgZXhjZXB0aW9uIHJhaXNlZAogICAgICAgICBpbiB0aGUgbGF0dGVyLiIiIgogICAgICAgICByZWFkX3Jlc3VsdHMgPSBbXQogICAgICAgICBkZWYgX3JlYWQoKToKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2lnbmFsLCAncHRocmVhZF9zaWdtYXNrJyk6CisgICAgICAgICAgICAgICAgc2lnbmFsLnB0aHJlYWRfc2lnbWFzayhzaWduYWwuU0lHX0JMT0NLLCBbc2lnbmFsLlNJR0FMUk1dKQogICAgICAgICAgICAgcyA9IG9zLnJlYWQociwgMSkKICAgICAgICAgICAgIHJlYWRfcmVzdWx0cy5hcHBlbmQocykKICAgICAgICAgdCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PV9yZWFkKQpAQCAtMjg3Niw3ICsyOTE4LDcgQEAKICAgICAgICAgICAgICMgVGhlIGJ1ZmZlcmVkIElPIGxheWVyIG11c3QgY2hlY2sgZm9yIHBlbmRpbmcgc2lnbmFsCiAgICAgICAgICAgICAjIGhhbmRsZXJzLCB3aGljaCBpbiB0aGlzIGNhc2Ugd2lsbCBpbnZva2UgYWxhcm1faW50ZXJydXB0KCkuCiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpby53cml0ZSwgaXRlbSAqICgxMDI0ICogMTAyNCkpCisgICAgICAgICAgICAgICAgICAgICAgICB3aW8ud3JpdGUsIGl0ZW0gKiAoc3VwcG9ydC5QSVBFX01BWF9TSVpFIC8vIGxlbihpdGVtKSkpCiAgICAgICAgICAgICB0LmpvaW4oKQogICAgICAgICAgICAgIyBXZSBnb3Qgb25lIGJ5dGUsIGdldCBhbm90aGVyIG9uZSBhbmQgY2hlY2sgdGhhdCBpdCBpc24ndCBhCiAgICAgICAgICAgICAjIHJlcGVhdCBvZiB0aGUgZmlyc3Qgb25lLgpAQCAtMjkwMyw2ICsyOTQ1LDcgQEAKICAgICBkZWYgdGVzdF9pbnRlcnJ1cHRlZF93cml0ZV90ZXh0KHNlbGYpOgogICAgICAgICBzZWxmLmNoZWNrX2ludGVycnVwdGVkX3dyaXRlKCJ4eSIsIGIieHkiLCBtb2RlPSJ3IiwgZW5jb2Rpbmc9ImFzY2lpIikKIAorICAgIEBzdXBwb3J0Lm5vX3RyYWNpbmcKICAgICBkZWYgY2hlY2tfcmVlbnRyYW50X3dyaXRlKHNlbGYsIGRhdGEsICoqZmRvcGVuX2t3YXJncyk6CiAgICAgICAgIGRlZiBvbl9hbGFybSgqYXJncyk6CiAgICAgICAgICAgICAjIFdpbGwgYmUgY2FsbGVkIHJlZW50cmFudGx5IGZyb20gdGhlIHNhbWUgdGhyZWFkCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2lwYWRkcmVzcy5weSBiL0xpYi90ZXN0L3Rlc3RfaXBhZGRyZXNzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYxOWZhNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC90ZXN0X2lwYWRkcmVzcy5weQpAQCAtMCwwICsxLDE2NTAgQEAKKyMgQ29weXJpZ2h0IDIwMDcgR29vZ2xlIEluYy4KKyMgIExpY2Vuc2VkIHRvIFBTRiB1bmRlciBhIENvbnRyaWJ1dG9yIEFncmVlbWVudC4KKworIiIiVW5pdHRlc3QgZm9yIGlwYWRkcmVzcyBtb2R1bGUuIiIiCisKKworaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgcmUKK2ltcG9ydCBjb250ZXh0bGliCitpbXBvcnQgaXBhZGRyZXNzCisKK2NsYXNzIEJhc2VUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIyBPbmUgYmlnIGNoYW5nZSBpbiBpcGFkZHJlc3Mgb3ZlciB0aGUgb3JpZ2luYWwgaXBhZGRyIG1vZHVsZSBpcworICAgICMgZXJyb3IgcmVwb3J0aW5nIHRoYXQgdHJpZXMgdG8gYXNzdW1lIHVzZXJzICpkb24ndCBrbm93IHRoZSBydWxlcyoKKyAgICAjIGZvciB3aGF0IGNvbnN0aXR1dGVzIGFuIFJGQyBjb21wbGlhbnQgSVAgYWRkcmVzcworCisgICAgIyBFbnN1cmluZyB0aGVzZSBlcnJvcnMgYXJlIGVtaXR0ZWQgY29ycmVjdGx5IGluIGFsbCByZWxldmFudCBjYXNlcworICAgICMgbWVhbnQgbW92aW5nIHRvIGEgbW9yZSBzeXN0ZW1hdGljIHRlc3Qgc3RydWN0dXJlIHRoYXQgYWxsb3dzIHRoZQorICAgICMgdGVzdCBzdHJ1Y3R1cmUgdG8gbWFwIG1vcmUgZGlyZWN0bHkgdG8gdGhlIG1vZHVsZSBzdHJ1Y3R1cmUKKworICAgICMgTm90ZSB0aGF0IGlmIHRoZSBjb25zdHJ1Y3RvcnMgYXJlIHJlZmFjdG9yZWQgc28gdGhhdCBhZGRyZXNzZXMgd2l0aAorICAgICMgbXVsdGlwbGUgcHJvYmxlbXMgZ2V0IGNsYXNzaWZpZWQgZGlmZmVyZW50bHksIHRoYXQncyBPSyAtIGp1c3QKKyAgICAjIG1vdmUgdGhlIGFmZmVjdGVkIGV4YW1wbGVzIHRvIHRoZSBuZXdseSBhcHByb3ByaWF0ZSB0ZXN0IGNhc2UuCisKKyAgICAjIFRoZXJlIGlzIHNvbWUgZHVwbGljYXRpb24gYmV0d2VlbiB0aGUgb3JpZ2luYWwgcmVsYXRpdmVseSBhZCBob2MKKyAgICAjIHRlc3Qgc3VpdGUgYW5kIHRoZSBuZXcgc3lzdGVtYXRpYyB0ZXN0cy4gV2hpbGUgc29tZSByZWR1bmRhbmN5IGluCisgICAgIyB0ZXN0aW5nIGlzIGNvbnNpZGVyZWQgcHJlZmVyYWJsZSB0byBhY2NpZGVudGFsbHkgZGVsZXRpbmcgYSB2YWxpZAorICAgICMgdGVzdCwgdGhlIG9yaWdpbmFsIHRlc3Qgc3VpdGUgd2lsbCBsaWtlbHkgYmUgcmVkdWNlZCBvdmVyIHRpbWUgYXMKKyAgICAjIHJlZHVuZGFudCB0ZXN0cyBhcmUgaWRlbnRpZmllZC4KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBmYWN0b3J5KHNlbGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorICAgIGRlZiBhc3NlcnRDbGVhbkVycm9yKHNlbGYsIGV4Y190eXBlLCBkZXRhaWxzLCAqYXJncyk6CisgICAgICAgICIiIgorICAgICAgICBFbnN1cmUgZXhjZXB0aW9uIGRvZXMgbm90IGRpc3BsYXkgYSBjb250ZXh0IGJ5IGRlZmF1bHQKKworICAgICAgICBXcmFwcyB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRSYWlzZXNSZWdleAorICAgICAgICAiIiIKKyAgICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgIGRldGFpbHMgPSBkZXRhaWxzICUgYXJncworICAgICAgICBjbSA9IHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoZXhjX3R5cGUsIGRldGFpbHMpCisgICAgICAgIHdpdGggY20gYXMgZXhjOgorICAgICAgICAgICAgeWllbGQgZXhjCisgICAgICAgICMgRW5zdXJlIHdlIHByb2R1Y2UgY2xlYW4gdHJhY2ViYWNrcyBvbiBmYWlsdXJlCisgICAgICAgIGlmIGV4Yy5leGNlcHRpb24uX19jb250ZXh0X18gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZXhjLmV4Y2VwdGlvbi5fX3N1cHByZXNzX2NvbnRleHRfXykKKworICAgIGRlZiBhc3NlcnRBZGRyZXNzRXJyb3Ioc2VsZiwgZGV0YWlscywgKmFyZ3MpOgorICAgICAgICAiIiJFbnN1cmUgYSBjbGVhbiBBZGRyZXNzVmFsdWVFcnJvciIiIgorICAgICAgICByZXR1cm4gc2VsZi5hc3NlcnRDbGVhbkVycm9yKGlwYWRkcmVzcy5BZGRyZXNzVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMsICphcmdzKQorCisgICAgZGVmIGFzc2VydE5ldG1hc2tFcnJvcihzZWxmLCBkZXRhaWxzLCAqYXJncyk6CisgICAgICAgICIiIkVuc3VyZSBhIGNsZWFuIE5ldG1hc2tWYWx1ZUVycm9yIiIiCisgICAgICAgIHJldHVybiBzZWxmLmFzc2VydENsZWFuRXJyb3IoaXBhZGRyZXNzLk5ldG1hc2tWYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzLCAqYXJncykKKworICAgIGRlZiBhc3NlcnRJbnN0YW5jZXNFcXVhbChzZWxmLCBsaHMsIHJocyk6CisgICAgICAgICIiIkNoZWNrIGNvbnN0cnVjdG9yIGFyZ3VtZW50cyBwcm9kdWNlIGVxdWl2YWxlbnQgaW5zdGFuY2VzIiIiCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5mYWN0b3J5KGxocyksIHNlbGYuZmFjdG9yeShyaHMpKQorCitjbGFzcyBDb21tb25UZXN0TWl4aW46CisKKyAgICBkZWYgdGVzdF9lbXB0eV9hZGRyZXNzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0QWRkcmVzc0Vycm9yKCJBZGRyZXNzIGNhbm5vdCBiZSBlbXB0eSIpOgorICAgICAgICAgICAgc2VsZi5mYWN0b3J5KCIiKQorCisgICAgZGVmIHRlc3RfZmxvYXRzX3JlamVjdGVkKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0QWRkcmVzc0Vycm9yKHJlLmVzY2FwZShyZXByKCIxLjAiKSkpOgorICAgICAgICAgICAgc2VsZi5mYWN0b3J5KDEuMCkKKworY2xhc3MgQ29tbW9uVGVzdE1peGluX3Y0KENvbW1vblRlc3RNaXhpbik6CisKKyAgICBkZWYgdGVzdF9sZWFkaW5nX3plcm9zKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEluc3RhbmNlc0VxdWFsKCIwMDAuMDAwLjAwMC4wMDAiLCAiMC4wLjAuMCIpCisgICAgICAgIHNlbGYuYXNzZXJ0SW5zdGFuY2VzRXF1YWwoIjE5Mi4xNjguMDAwLjAwMSIsICIxOTIuMTY4LjAuMSIpCisKKyAgICBkZWYgdGVzdF9pbnQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0SW5zdGFuY2VzRXF1YWwoMCwgIjAuMC4wLjAiKQorICAgICAgICBzZWxmLmFzc2VydEluc3RhbmNlc0VxdWFsKDMyMzIyMzU1MjEsICIxOTIuMTY4LjAuMSIpCisKKyAgICBkZWYgdGVzdF9wYWNrZWQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0SW5zdGFuY2VzRXF1YWwoYnl0ZXMuZnJvbWhleCgiMDAwMDAwMDAiKSwgIjAuMC4wLjAiKQorICAgICAgICBzZWxmLmFzc2VydEluc3RhbmNlc0VxdWFsKGJ5dGVzLmZyb21oZXgoImMwYTgwMDAxIiksICIxOTIuMTY4LjAuMSIpCisKKyAgICBkZWYgdGVzdF9uZWdhdGl2ZV9pbnRzX3JlamVjdGVkKHNlbGYpOgorICAgICAgICBtc2cgPSAiLTEgKDwgMCkgaXMgbm90IHBlcm1pdHRlZCBhcyBhbiBJUHY0IGFkZHJlc3MiCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRBZGRyZXNzRXJyb3IocmUuZXNjYXBlKG1zZykpOgorICAgICAgICAgICAgc2VsZi5mYWN0b3J5KC0xKQorCisgICAgZGVmIHRlc3RfbGFyZ2VfaW50c19yZWplY3RlZChzZWxmKToKKyAgICAgICAgbXNnID0gIiVkICg+PSAyKiozMikgaXMgbm90IHBlcm1pdHRlZCBhcyBhbiBJUHY0IGFkZHJlc3MiCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRBZGRyZXNzRXJyb3IocmUuZXNjYXBlKG1zZyAlIDIqKjMyKSk6CisgICAgICAgICAgICBzZWxmLmZhY3RvcnkoMioqMzIpCisKKyAgICBkZWYgdGVzdF9iYWRfcGFja2VkX2xlbmd0aChzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZExlbmd0aChsZW5ndGgpOgorICAgICAgICAgICAgYWRkciA9IGJ5dGVzKGxlbmd0aCkKKyAgICAgICAgICAgIG1zZyA9ICIlciAobGVuICVkICE9IDQpIGlzIG5vdCBwZXJtaXR0ZWQgYXMgYW4gSVB2NCBhZGRyZXNzIgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihyZS5lc2NhcGUobXNnICUgKGFkZHIsIGxlbmd0aCkpKToKKyAgICAgICAgICAgICAgICBzZWxmLmZhY3RvcnkoYWRkcikKKworICAgICAgICBhc3NlcnRCYWRMZW5ndGgoMykKKyAgICAgICAgYXNzZXJ0QmFkTGVuZ3RoKDUpCisKK2NsYXNzIENvbW1vblRlc3RNaXhpbl92NihDb21tb25UZXN0TWl4aW4pOgorCisgICAgZGVmIHRlc3RfbGVhZGluZ196ZXJvcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRJbnN0YW5jZXNFcXVhbCgiMDAwMDo6MDAwMCIsICI6OiIpCisgICAgICAgIHNlbGYuYXNzZXJ0SW5zdGFuY2VzRXF1YWwoIjAwMDo6YzBhODowMDAxIiwgIjo6YzBhODoxIikKKworICAgIGRlZiB0ZXN0X2ludChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRJbnN0YW5jZXNFcXVhbCgwLCAiOjoiKQorICAgICAgICBzZWxmLmFzc2VydEluc3RhbmNlc0VxdWFsKDMyMzIyMzU1MjEsICI6OmMwYTg6MSIpCisKKyAgICBkZWYgdGVzdF9wYWNrZWQoc2VsZik6CisgICAgICAgIGFkZHIgPSBieXRlcygxMikgKyBieXRlcy5mcm9taGV4KCIwMDAwMDAwMCIpCisgICAgICAgIHNlbGYuYXNzZXJ0SW5zdGFuY2VzRXF1YWwoYWRkciwgIjo6IikKKyAgICAgICAgYWRkciA9IGJ5dGVzKDEyKSArIGJ5dGVzLmZyb21oZXgoImMwYTgwMDAxIikKKyAgICAgICAgc2VsZi5hc3NlcnRJbnN0YW5jZXNFcXVhbChhZGRyLCAiOjpjMGE4OjEiKQorICAgICAgICBhZGRyID0gYnl0ZXMuZnJvbWhleCgiYzBhODAwMDEiKSArIGJ5dGVzKDEyKQorICAgICAgICBzZWxmLmFzc2VydEluc3RhbmNlc0VxdWFsKGFkZHIsICJjMGE4OjE6OiIpCisKKyAgICBkZWYgdGVzdF9uZWdhdGl2ZV9pbnRzX3JlamVjdGVkKHNlbGYpOgorICAgICAgICBtc2cgPSAiLTEgKDwgMCkgaXMgbm90IHBlcm1pdHRlZCBhcyBhbiBJUHY2IGFkZHJlc3MiCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRBZGRyZXNzRXJyb3IocmUuZXNjYXBlKG1zZykpOgorICAgICAgICAgICAgc2VsZi5mYWN0b3J5KC0xKQorCisgICAgZGVmIHRlc3RfbGFyZ2VfaW50c19yZWplY3RlZChzZWxmKToKKyAgICAgICAgbXNnID0gIiVkICg+PSAyKioxMjgpIGlzIG5vdCBwZXJtaXR0ZWQgYXMgYW4gSVB2NiBhZGRyZXNzIgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0QWRkcmVzc0Vycm9yKHJlLmVzY2FwZShtc2cgJSAyKioxMjgpKToKKyAgICAgICAgICAgIHNlbGYuZmFjdG9yeSgyKioxMjgpCisKKyAgICBkZWYgdGVzdF9iYWRfcGFja2VkX2xlbmd0aChzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZExlbmd0aChsZW5ndGgpOgorICAgICAgICAgICAgYWRkciA9IGJ5dGVzKGxlbmd0aCkKKyAgICAgICAgICAgIG1zZyA9ICIlciAobGVuICVkICE9IDE2KSBpcyBub3QgcGVybWl0dGVkIGFzIGFuIElQdjYgYWRkcmVzcyIKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRBZGRyZXNzRXJyb3IocmUuZXNjYXBlKG1zZyAlIChhZGRyLCBsZW5ndGgpKSk6CisgICAgICAgICAgICAgICAgc2VsZi5mYWN0b3J5KGFkZHIpCisgICAgICAgICAgICAgICAgc2VsZi5mYWN0b3J5KGFkZHIpCisKKyAgICAgICAgYXNzZXJ0QmFkTGVuZ3RoKDE1KQorICAgICAgICBhc3NlcnRCYWRMZW5ndGgoMTcpCisKKworY2xhc3MgQWRkcmVzc1Rlc3RDYXNlX3Y0KEJhc2VUZXN0Q2FzZSwgQ29tbW9uVGVzdE1peGluX3Y0KToKKyAgICBmYWN0b3J5ID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzCisKKyAgICBkZWYgdGVzdF9uZXR3b3JrX3Bhc3NlZF9hc19hZGRyZXNzKHNlbGYpOgorICAgICAgICBhZGRyID0gIjEyNy4wLjAuMS8yNCIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcigiVW5leHBlY3RlZCAnLycgaW4gJXIiLCBhZGRyKToKKyAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0QWRkcmVzcyhhZGRyKQorCisgICAgZGVmIHRlc3RfYmFkX2FkZHJlc3Nfc3BsaXQoc2VsZik6CisgICAgICAgIGRlZiBhc3NlcnRCYWRTcGxpdChhZGRyKToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRBZGRyZXNzRXJyb3IoIkV4cGVjdGVkIDQgb2N0ZXRzIGluICVyIiwgYWRkcik6CisgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRBZGRyZXNzKGFkZHIpCisKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjEyNy4wLjEiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiNDIuNDIuNDIuNDIuNDIiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiNDIuNDIuNDIiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiNDIuNDIiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiNDIiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiNDIuLjQyLjQyLjQyIikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjQyLjQyLjQyLjQyLiIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCI0Mi40Mi40Mi40Mi4uLiIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCIuNDIuNDIuNDIuNDIiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiLi4uNDIuNDIuNDIuNDIiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiMDE2LjAxNi4wMTYiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiMDE2LjAxNiIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCIwMTYiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiMDAwIikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjB4MGEuMHgwYS4weDBhIikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjB4MGEuMHgwYSIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCIweDBhIikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIi4iKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiYm9ndXMiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiYm9ndXMuY29tIikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjEwMDAiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiMTAwMDAwMDAwMDAwMDAwMCIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCIxOTIuMTY4LjAuMS5jb20iKQorCisgICAgZGVmIHRlc3RfZW1wdHlfb2N0ZXQoc2VsZik6CisgICAgICAgIGRlZiBhc3NlcnRCYWRPY3RldChhZGRyKToKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRBZGRyZXNzRXJyb3IoIkVtcHR5IG9jdGV0IG5vdCBwZXJtaXR0ZWQgaW4gJXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcik6CisgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRBZGRyZXNzKGFkZHIpCisKKyAgICAgICAgYXNzZXJ0QmFkT2N0ZXQoIjQyLi40Mi40MiIpCisgICAgICAgIGFzc2VydEJhZE9jdGV0KCIuLi4iKQorCisgICAgZGVmIHRlc3RfaW52YWxpZF9jaGFyYWN0ZXJzKHNlbGYpOgorICAgICAgICBkZWYgYXNzZXJ0QmFkT2N0ZXQoYWRkciwgb2N0ZXQpOgorICAgICAgICAgICAgbXNnID0gIk9ubHkgZGVjaW1hbCBkaWdpdHMgcGVybWl0dGVkIGluICVyIGluICVyIiAlIChvY3RldCwgYWRkcikKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRBZGRyZXNzRXJyb3IocmUuZXNjYXBlKG1zZykpOgorICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0QWRkcmVzcyhhZGRyKQorCisgICAgICAgIGFzc2VydEJhZE9jdGV0KCIweDBhLjB4MGEuMHgwYS4weDBhIiwgIjB4MGEiKQorICAgICAgICBhc3NlcnRCYWRPY3RldCgiMHhhLjB4MGEuMHgwYS4weDBhIiwgIjB4YSIpCisgICAgICAgIGFzc2VydEJhZE9jdGV0KCI0Mi40Mi40Mi4tMCIsICItMCIpCisgICAgICAgIGFzc2VydEJhZE9jdGV0KCI0Mi40Mi40Mi4rMCIsICIrMCIpCisgICAgICAgIGFzc2VydEJhZE9jdGV0KCI0Mi40Mi40Mi4tNDIiLCAiLTQyIikKKyAgICAgICAgYXNzZXJ0QmFkT2N0ZXQoIisxLisyLiszLjQiLCAiKzEiKQorICAgICAgICBhc3NlcnRCYWRPY3RldCgiMS4yLjMuNGUwIiwgIjRlMCIpCisgICAgICAgIGFzc2VydEJhZE9jdGV0KCIxLjIuMy40OjoiLCAiNDo6IikKKyAgICAgICAgYXNzZXJ0QmFkT2N0ZXQoIjEuYS4yLjMiLCAiYSIpCisKKyAgICBkZWYgdGVzdF9vY3RhbF9kZWNpbWFsX2FtYmlndWl0eShzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZE9jdGV0KGFkZHIsIG9jdGV0KToKKyAgICAgICAgICAgIG1zZyA9ICJBbWJpZ3VvdXMgKG9jdGFsL2RlY2ltYWwpIHZhbHVlIGluICVyIG5vdCBwZXJtaXR0ZWQgaW4gJXIiCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0QWRkcmVzc0Vycm9yKHJlLmVzY2FwZShtc2cgJSAob2N0ZXQsIGFkZHIpKSk6CisgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRBZGRyZXNzKGFkZHIpCisKKyAgICAgICAgYXNzZXJ0QmFkT2N0ZXQoIjAxNi4wMTYuMDE2LjAxNiIsICIwMTYiKQorICAgICAgICBhc3NlcnRCYWRPY3RldCgiMDAxLjAwMC4wMDguMDE2IiwgIjAwOCIpCisKKyAgICBkZWYgdGVzdF9vY3RldF9sZW5ndGgoc2VsZik6CisgICAgICAgIGRlZiBhc3NlcnRCYWRPY3RldChhZGRyLCBvY3RldCk6CisgICAgICAgICAgICBtc2cgPSAiQXQgbW9zdCAzIGNoYXJhY3RlcnMgcGVybWl0dGVkIGluICVyIGluICVyIgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihyZS5lc2NhcGUobXNnICUgKG9jdGV0LCBhZGRyKSkpOgorICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0QWRkcmVzcyhhZGRyKQorCisgICAgICAgIGFzc2VydEJhZE9jdGV0KCIwMDAwLjAwMC4wMDAuMDAwIiwgIjAwMDAiKQorICAgICAgICBhc3NlcnRCYWRPY3RldCgiMTIzNDUuNjc4OTkuLTU0MzIxLi05ODc2NSIsICIxMjM0NSIpCisKKyAgICBkZWYgdGVzdF9vY3RldF9saW1pdChzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZE9jdGV0KGFkZHIsIG9jdGV0KToKKyAgICAgICAgICAgIG1zZyA9ICJPY3RldCAlZCAoPiAyNTUpIG5vdCBwZXJtaXR0ZWQgaW4gJXIiICUgKG9jdGV0LCBhZGRyKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihyZS5lc2NhcGUobXNnKSk6CisgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRBZGRyZXNzKGFkZHIpCisKKyAgICAgICAgYXNzZXJ0QmFkT2N0ZXQoIjI1Ny4wLjAuMCIsIDI1NykKKyAgICAgICAgYXNzZXJ0QmFkT2N0ZXQoIjE5Mi4xNjguMC45OTkiLCA5OTkpCisKKworY2xhc3MgQWRkcmVzc1Rlc3RDYXNlX3Y2KEJhc2VUZXN0Q2FzZSwgQ29tbW9uVGVzdE1peGluX3Y2KToKKyAgICBmYWN0b3J5ID0gaXBhZGRyZXNzLklQdjZBZGRyZXNzCisKKyAgICBkZWYgdGVzdF9uZXR3b3JrX3Bhc3NlZF9hc19hZGRyZXNzKHNlbGYpOgorICAgICAgICBhZGRyID0gIjo6MS8yNCIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcigiVW5leHBlY3RlZCAnLycgaW4gJXIiLCBhZGRyKToKKyAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2QWRkcmVzcyhhZGRyKQorCisgICAgZGVmIHRlc3RfYmFkX2FkZHJlc3Nfc3BsaXRfdjZfbm90X2Vub3VnaF9wYXJ0cyhzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZFNwbGl0KGFkZHIpOgorICAgICAgICAgICAgbXNnID0gIkF0IGxlYXN0IDMgcGFydHMgZXhwZWN0ZWQgaW4gJXIiCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0QWRkcmVzc0Vycm9yKG1zZywgYWRkcik6CisgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZBZGRyZXNzKGFkZHIpCisKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjoiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiOjEiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiRkVEQzo5ODc4IikKKworICAgIGRlZiB0ZXN0X2JhZF9hZGRyZXNzX3NwbGl0X3Y2X3Rvb19tYW55X2NvbG9ucyhzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZFNwbGl0KGFkZHIpOgorICAgICAgICAgICAgbXNnID0gIkF0IG1vc3QgOCBjb2xvbnMgcGVybWl0dGVkIGluICVyIgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihtc2csIGFkZHIpOgorICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2QWRkcmVzcyhhZGRyKQorCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCI5Ojg6Nzo2OjU6NDozOjoyOjEiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiMTA6OTo4Ojc6Njo1OjQ6MzoyOjEiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiOjo4Ojc6Njo1OjQ6MzoyOjEiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiODo3OjY6NTo0OjM6MjoxOjoiKQorICAgICAgICAjIEEgdHJhaWxpbmcgSVB2NCBhZGRyZXNzIGlzIHR3byBwYXJ0cworICAgICAgICBhc3NlcnRCYWRTcGxpdCgiMTA6OTo4Ojc6Njo1OjQ6Mzo0Mi40Mi40Mi40MiIpCisKKyAgICBkZWYgdGVzdF9iYWRfYWRkcmVzc19zcGxpdF92Nl90b29fbWFueV9wYXJ0cyhzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZFNwbGl0KGFkZHIpOgorICAgICAgICAgICAgbXNnID0gIkV4YWN0bHkgOCBwYXJ0cyBleHBlY3RlZCB3aXRob3V0ICc6OicgaW4gJXIiCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0QWRkcmVzc0Vycm9yKG1zZywgYWRkcik6CisgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZBZGRyZXNzKGFkZHIpCisKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjNmZmU6MDowOjA6MDowOjA6MDoxIikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjk6ODo3OjY6NTo0OjM6MjoxIikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjc6Njo1OjQ6MzoyOjEiKQorICAgICAgICAjIEEgdHJhaWxpbmcgSVB2NCBhZGRyZXNzIGlzIHR3byBwYXJ0cworICAgICAgICBhc3NlcnRCYWRTcGxpdCgiOTo4Ojc6Njo1OjQ6Mzo0Mi40Mi40Mi40MiIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCI3OjY6NTo0OjM6NDIuNDIuNDIuNDIiKQorCisgICAgZGVmIHRlc3RfYmFkX2FkZHJlc3Nfc3BsaXRfdjZfdG9vX21hbnlfcGFydHNfd2l0aF9kb3VibGVfY29sb24oc2VsZik6CisgICAgICAgIGRlZiBhc3NlcnRCYWRTcGxpdChhZGRyKToKKyAgICAgICAgICAgIG1zZyA9ICJFeHBlY3RlZCBhdCBtb3N0IDcgb3RoZXIgcGFydHMgd2l0aCAnOjonIGluICVyIgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihtc2csIGFkZHIpOgorICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2QWRkcmVzcyhhZGRyKQorCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCIxOjI6Mzo0Ojo1OjY6Nzo4IikKKworICAgIGRlZiB0ZXN0X2JhZF9hZGRyZXNzX3NwbGl0X3Y2X3JlcGVhdGVkX2RvdWJsZV9jb2xvbihzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZFNwbGl0KGFkZHIpOgorICAgICAgICAgICAgbXNnID0gIkF0IG1vc3Qgb25lICc6OicgcGVybWl0dGVkIGluICVyIgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihtc2csIGFkZHIpOgorICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2QWRkcmVzcyhhZGRyKQorCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCIzZmZlOjoxOjoxIikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjE6OjI6OjM6OjQ6NSIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCIyMDAxOjpkYjo6OjEiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiM2ZmZTo6MTo6IikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjo6M2ZmZTo6MSIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCI6M2ZmZTo6MTo6MSIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCIzZmZlOjoxOjoxOiIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCI6M2ZmZTo6MTo6MToiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiOjo6IikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoJzIwMDE6ZGI4Ojo6MScpCisKKyAgICBkZWYgdGVzdF9iYWRfYWRkcmVzc19zcGxpdF92Nl9sZWFkaW5nX2NvbG9uKHNlbGYpOgorICAgICAgICBkZWYgYXNzZXJ0QmFkU3BsaXQoYWRkcik6CisgICAgICAgICAgICBtc2cgPSAiTGVhZGluZyAnOicgb25seSBwZXJtaXR0ZWQgYXMgcGFydCBvZiAnOjonIGluICVyIgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihtc2csIGFkZHIpOgorICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2QWRkcmVzcyhhZGRyKQorCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCI6MjAwMTpkYjg6OjEiKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiOjE6MjozOjQ6NTo2OjciKQorICAgICAgICBhc3NlcnRCYWRTcGxpdCgiOjE6MjozOjQ6NTo2OiIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCI6Njo1OjQ6MzoyOjE6OiIpCisKKyAgICBkZWYgdGVzdF9iYWRfYWRkcmVzc19zcGxpdF92Nl90cmFpbGluZ19jb2xvbihzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZFNwbGl0KGFkZHIpOgorICAgICAgICAgICAgbXNnID0gIlRyYWlsaW5nICc6JyBvbmx5IHBlcm1pdHRlZCBhcyBwYXJ0IG9mICc6OicgaW4gJXIiCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0QWRkcmVzc0Vycm9yKG1zZywgYWRkcik6CisgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZBZGRyZXNzKGFkZHIpCisKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjIwMDE6ZGI4OjoxOiIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCIxOjI6Mzo0OjU6Njo3OiIpCisgICAgICAgIGFzc2VydEJhZFNwbGl0KCI6OjEuMi4zLjQ6IikKKyAgICAgICAgYXNzZXJ0QmFkU3BsaXQoIjo6Nzo2OjU6NDozOjI6IikKKworICAgIGRlZiB0ZXN0X2JhZF92NF9wYXJ0X2luKHNlbGYpOgorICAgICAgICBkZWYgYXNzZXJ0QmFkQWRkcmVzc1BhcnQoYWRkciwgdjRfZXJyb3IpOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcigiJXMgaW4gJXIiLCB2NF9lcnJvciwgYWRkcik6CisgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZBZGRyZXNzKGFkZHIpCisKKyAgICAgICAgYXNzZXJ0QmFkQWRkcmVzc1BhcnQoIjNmZmU6OjEubmV0IiwgIkV4cGVjdGVkIDQgb2N0ZXRzIGluICcxLm5ldCciKQorICAgICAgICBhc3NlcnRCYWRBZGRyZXNzUGFydCgiM2ZmZTo6MTI3LjAuMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCA0IG9jdGV0cyBpbiAnMTI3LjAuMSciKQorICAgICAgICBhc3NlcnRCYWRBZGRyZXNzUGFydCgiOjoxLjIuMyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCA0IG9jdGV0cyBpbiAnMS4yLjMnIikKKyAgICAgICAgYXNzZXJ0QmFkQWRkcmVzc1BhcnQoIjo6MS4yLjMuNC41IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIDQgb2N0ZXRzIGluICcxLjIuMy40LjUnIikKKyAgICAgICAgYXNzZXJ0QmFkQWRkcmVzc1BhcnQoIjNmZmU6OjEuMS4xLm5ldCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPbmx5IGRlY2ltYWwgZGlnaXRzIHBlcm1pdHRlZCBpbiAnbmV0JyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbiAnMS4xLjEubmV0JyIpCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX2NoYXJhY3RlcnMoc2VsZik6CisgICAgICAgIGRlZiBhc3NlcnRCYWRQYXJ0KGFkZHIsIHBhcnQpOgorICAgICAgICAgICAgbXNnID0gIk9ubHkgaGV4IGRpZ2l0cyBwZXJtaXR0ZWQgaW4gJXIgaW4gJXIiICUgKHBhcnQsIGFkZHIpCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0QWRkcmVzc0Vycm9yKHJlLmVzY2FwZShtc2cpKToKKyAgICAgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NkFkZHJlc3MoYWRkcikKKworICAgICAgICBhc3NlcnRCYWRQYXJ0KCIzZmZlOjpnb29nIiwgImdvb2ciKQorICAgICAgICBhc3NlcnRCYWRQYXJ0KCIzZmZlOjotMCIsICItMCIpCisgICAgICAgIGFzc2VydEJhZFBhcnQoIjNmZmU6OiswIiwgIiswIikKKyAgICAgICAgYXNzZXJ0QmFkUGFydCgiM2ZmZTo6LTEiLCAiLTEiKQorICAgICAgICBhc3NlcnRCYWRQYXJ0KCIxLjIuMy40OjoiLCAiMS4yLjMuNCIpCisgICAgICAgIGFzc2VydEJhZFBhcnQoJzEyMzQ6YXh5OjpiJywgImF4eSIpCisKKyAgICBkZWYgdGVzdF9wYXJ0X2xlbmd0aChzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZFBhcnQoYWRkciwgcGFydCk6CisgICAgICAgICAgICBtc2cgPSAiQXQgbW9zdCA0IGNoYXJhY3RlcnMgcGVybWl0dGVkIGluICVyIGluICVyIgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihtc2csIHBhcnQsIGFkZHIpOgorICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2QWRkcmVzcyhhZGRyKQorCisgICAgICAgIGFzc2VydEJhZFBhcnQoIjo6MDAwMDAiLCAiMDAwMDAiKQorICAgICAgICBhc3NlcnRCYWRQYXJ0KCIzZmZlOjoxMDAwMCIsICIxMDAwMCIpCisgICAgICAgIGFzc2VydEJhZFBhcnQoIjAyMDAxOmRiODo6IiwgIjAyMDAxIikKKyAgICAgICAgYXNzZXJ0QmFkUGFydCgnMjAwMTo4ODg4ODg6OjEnLCAiODg4ODg4IikKKworCitjbGFzcyBOZXRtYXNrVGVzdE1peGluX3Y0KENvbW1vblRlc3RNaXhpbl92NCk6CisgICAgIiIiSW5wdXQgdmFsaWRhdGlvbiBvbiBpbnRlcmZhY2VzIGFuZCBuZXR3b3JrcyBpcyB2ZXJ5IHNpbWlsYXIiIiIKKworICAgIGRlZiB0ZXN0X3NwbGl0X25ldG1hc2soc2VsZik6CisgICAgICAgIGFkZHIgPSAiMS4yLjMuNC8zMi8yNCIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcigiT25seSBvbmUgJy8nIHBlcm1pdHRlZCBpbiAlciIgJSBhZGRyKToKKyAgICAgICAgICAgIHNlbGYuZmFjdG9yeShhZGRyKQorCisgICAgZGVmIHRlc3RfYWRkcmVzc19lcnJvcnMoc2VsZik6CisgICAgICAgIGRlZiBhc3NlcnRCYWRBZGRyZXNzKGFkZHIsIGRldGFpbHMpOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihkZXRhaWxzKToKKyAgICAgICAgICAgICAgICBzZWxmLmZhY3RvcnkoYWRkcikKKworICAgICAgICBhc3NlcnRCYWRBZGRyZXNzKCIvIiwgIkFkZHJlc3MgY2Fubm90IGJlIGVtcHR5IikKKyAgICAgICAgYXNzZXJ0QmFkQWRkcmVzcygiLzgiLCAiQWRkcmVzcyBjYW5ub3QgYmUgZW1wdHkiKQorICAgICAgICBhc3NlcnRCYWRBZGRyZXNzKCJib2d1cyIsICJFeHBlY3RlZCA0IG9jdGV0cyIpCisgICAgICAgIGFzc2VydEJhZEFkZHJlc3MoImdvb2dsZS5jb20iLCAiRXhwZWN0ZWQgNCBvY3RldHMiKQorICAgICAgICBhc3NlcnRCYWRBZGRyZXNzKCIxMC84IiwgIkV4cGVjdGVkIDQgb2N0ZXRzIikKKyAgICAgICAgYXNzZXJ0QmFkQWRkcmVzcygiOjoxLjIuMy40IiwgIk9ubHkgZGVjaW1hbCBkaWdpdHMiKQorICAgICAgICBhc3NlcnRCYWRBZGRyZXNzKCIxLjIuMy4yNTYiLCByZS5lc2NhcGUoIjI1NiAoPiAyNTUpIikpCisKKyAgICBkZWYgdGVzdF9uZXRtYXNrX2Vycm9ycyhzZWxmKToKKyAgICAgICAgZGVmIGFzc2VydEJhZE5ldG1hc2soYWRkciwgbmV0bWFzayk6CisgICAgICAgICAgICBtc2cgPSAiJXIgaXMgbm90IGEgdmFsaWQgbmV0bWFzayIKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnROZXRtYXNrRXJyb3IobXNnICUgbmV0bWFzayk6CisgICAgICAgICAgICAgICAgc2VsZi5mYWN0b3J5KCIlcy8lcyIgJSAoYWRkciwgbmV0bWFzaykpCisKKyAgICAgICAgYXNzZXJ0QmFkTmV0bWFzaygiMS4yLjMuNCIsICIiKQorICAgICAgICBhc3NlcnRCYWROZXRtYXNrKCIxLjIuMy40IiwgIjMzIikKKyAgICAgICAgYXNzZXJ0QmFkTmV0bWFzaygiMS4yLjMuNCIsICIyNTQuMjU0LjI1NS4yNTYiKQorICAgICAgICBhc3NlcnRCYWROZXRtYXNrKCIxLjEuMS4xIiwgIjI1NC54eXouMi4zIikKKyAgICAgICAgYXNzZXJ0QmFkTmV0bWFzaygiMS4xLjEuMSIsICIyNDAuMjU1LjAuMCIpCisgICAgICAgIGFzc2VydEJhZE5ldG1hc2soIjEuMS4xLjEiLCAicHVkZGluZyIpCisKK2NsYXNzIEludGVyZmFjZVRlc3RDYXNlX3Y0KEJhc2VUZXN0Q2FzZSwgTmV0bWFza1Rlc3RNaXhpbl92NCk6CisgICAgZmFjdG9yeSA9IGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlCisKK2NsYXNzIE5ldHdvcmtUZXN0Q2FzZV92NChCYXNlVGVzdENhc2UsIE5ldG1hc2tUZXN0TWl4aW5fdjQpOgorICAgIGZhY3RvcnkgPSBpcGFkZHJlc3MuSVB2NE5ldHdvcmsKKworCitjbGFzcyBOZXRtYXNrVGVzdE1peGluX3Y2KENvbW1vblRlc3RNaXhpbl92Nik6CisgICAgIiIiSW5wdXQgdmFsaWRhdGlvbiBvbiBpbnRlcmZhY2VzIGFuZCBuZXR3b3JrcyBpcyB2ZXJ5IHNpbWlsYXIiIiIKKworICAgIGRlZiB0ZXN0X3NwbGl0X25ldG1hc2soc2VsZik6CisgICAgICAgIGFkZHIgPSAiY2FmZTpjYWZlOjovMTI4LzE5MCIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcigiT25seSBvbmUgJy8nIHBlcm1pdHRlZCBpbiAlciIgJSBhZGRyKToKKyAgICAgICAgICAgIHNlbGYuZmFjdG9yeShhZGRyKQorCisgICAgZGVmIHRlc3RfYWRkcmVzc19lcnJvcnMoc2VsZik6CisgICAgICAgIGRlZiBhc3NlcnRCYWRBZGRyZXNzKGFkZHIsIGRldGFpbHMpOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydEFkZHJlc3NFcnJvcihkZXRhaWxzKToKKyAgICAgICAgICAgICAgICBzZWxmLmZhY3RvcnkoYWRkcikKKworICAgICAgICBhc3NlcnRCYWRBZGRyZXNzKCIvIiwgIkFkZHJlc3MgY2Fubm90IGJlIGVtcHR5IikKKyAgICAgICAgYXNzZXJ0QmFkQWRkcmVzcygiLzgiLCAiQWRkcmVzcyBjYW5ub3QgYmUgZW1wdHkiKQorICAgICAgICBhc3NlcnRCYWRBZGRyZXNzKCJnb29nbGUuY29tIiwgIkF0IGxlYXN0IDMgcGFydHMiKQorICAgICAgICBhc3NlcnRCYWRBZGRyZXNzKCIxLjIuMy40IiwgIkF0IGxlYXN0IDMgcGFydHMiKQorICAgICAgICBhc3NlcnRCYWRBZGRyZXNzKCIxMC84IiwgIkF0IGxlYXN0IDMgcGFydHMiKQorICAgICAgICBhc3NlcnRCYWRBZGRyZXNzKCIxMjM0OmF4eTo6YiIsICJPbmx5IGhleCBkaWdpdHMiKQorCisgICAgZGVmIHRlc3RfbmV0bWFza19lcnJvcnMoc2VsZik6CisgICAgICAgIGRlZiBhc3NlcnRCYWROZXRtYXNrKGFkZHIsIG5ldG1hc2spOgorICAgICAgICAgICAgbXNnID0gIiVyIGlzIG5vdCBhIHZhbGlkIG5ldG1hc2siCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0TmV0bWFza0Vycm9yKG1zZyAlIG5ldG1hc2spOgorICAgICAgICAgICAgICAgIHNlbGYuZmFjdG9yeSgiJXMvJXMiICUgKGFkZHIsIG5ldG1hc2spKQorCisgICAgICAgIGFzc2VydEJhZE5ldG1hc2soIjo6MSIsICIiKQorICAgICAgICBhc3NlcnRCYWROZXRtYXNrKCI6OjEiLCAiOjoxIikKKyAgICAgICAgYXNzZXJ0QmFkTmV0bWFzaygiOjoxIiwgIjE6OiIpCisgICAgICAgIGFzc2VydEJhZE5ldG1hc2soIjo6MSIsICIxMjkiKQorICAgICAgICBhc3NlcnRCYWROZXRtYXNrKCI6OjEiLCAicHVkZGluZyIpCisKK2NsYXNzIEludGVyZmFjZVRlc3RDYXNlX3Y2KEJhc2VUZXN0Q2FzZSwgTmV0bWFza1Rlc3RNaXhpbl92Nik6CisgICAgZmFjdG9yeSA9IGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlCisKK2NsYXNzIE5ldHdvcmtUZXN0Q2FzZV92NihCYXNlVGVzdENhc2UsIE5ldG1hc2tUZXN0TWl4aW5fdjYpOgorICAgIGZhY3RvcnkgPSBpcGFkZHJlc3MuSVB2Nk5ldHdvcmsKKworCitjbGFzcyBGYWN0b3J5RnVuY3Rpb25FcnJvcnMoQmFzZVRlc3RDYXNlKToKKworICAgIGRlZiBhc3NlcnRGYWN0b3J5RXJyb3Ioc2VsZiwgZmFjdG9yeSwga2luZCk6CisgICAgICAgICIiIkVuc3VyZSBhIGNsZWFuIFZhbHVlRXJyb3Igd2l0aCB0aGUgZXhwZWN0ZWQgbWVzc2FnZSIiIgorICAgICAgICBhZGRyID0gImNhbWVsb3QiCisgICAgICAgIG1zZyA9ICclciBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYW4gSVB2NCBvciBJUHY2ICVzJworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0Q2xlYW5FcnJvcihWYWx1ZUVycm9yLCBtc2csIGFkZHIsIGtpbmQpOgorICAgICAgICAgICAgZmFjdG9yeShhZGRyKQorCisgICAgZGVmIHRlc3RfaXBfYWRkcmVzcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRGYWN0b3J5RXJyb3IoaXBhZGRyZXNzLmlwX2FkZHJlc3MsICJhZGRyZXNzIikKKworICAgIGRlZiB0ZXN0X2lwX2ludGVyZmFjZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRGYWN0b3J5RXJyb3IoaXBhZGRyZXNzLmlwX2ludGVyZmFjZSwgImludGVyZmFjZSIpCisKKyAgICBkZWYgdGVzdF9pcF9uZXR3b3JrKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEZhY3RvcnlFcnJvcihpcGFkZHJlc3MuaXBfbmV0d29yaywgIm5ldHdvcmsiKQorCisKK2NsYXNzIENvbXBhcmlzb25UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICB2NGFkZHIgPSBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoMSkKKyAgICB2NG5ldCA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygxKQorICAgIHY0aW50ZiA9IGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlKDEpCisgICAgdjZhZGRyID0gaXBhZGRyZXNzLklQdjZBZGRyZXNzKDEpCisgICAgdjZuZXQgPSBpcGFkZHJlc3MuSVB2Nk5ldHdvcmsoMSkKKyAgICB2NmludGYgPSBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgxKQorCisgICAgdjRfYWRkcmVzc2VzID0gW3Y0YWRkciwgdjRpbnRmXQorICAgIHY0X29iamVjdHMgPSB2NF9hZGRyZXNzZXMgKyBbdjRuZXRdCisgICAgdjZfYWRkcmVzc2VzID0gW3Y2YWRkciwgdjZpbnRmXQorICAgIHY2X29iamVjdHMgPSB2Nl9hZGRyZXNzZXMgKyBbdjZuZXRdCisgICAgb2JqZWN0cyA9IHY0X29iamVjdHMgKyB2Nl9vYmplY3RzCisKKyAgICBkZWYgdGVzdF9mb3JlaWduX3R5cGVfZXF1YWxpdHkoc2VsZik6CisgICAgICAgICMgX19lcV9fIHNob3VsZCBuZXZlciByYWlzZSBUeXBlRXJyb3IgZGlyZWN0bHkKKyAgICAgICAgb3RoZXIgPSBvYmplY3QoKQorICAgICAgICBmb3Igb2JqIGluIHNlbGYub2JqZWN0czoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwob2JqLCBvdGhlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob2JqID09IG90aGVyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvYmouX19lcV9fKG90aGVyKSwgTm90SW1wbGVtZW50ZWQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9iai5fX25lX18ob3RoZXIpLCBOb3RJbXBsZW1lbnRlZCkKKworICAgIGRlZiB0ZXN0X21peGVkX3R5cGVfZXF1YWxpdHkoc2VsZik6CisgICAgICAgICMgRW5zdXJlIG5vbmUgb2YgdGhlIGludGVybmFsIG9iamVjdHMgYWNjaWRlbnRhbGx5CisgICAgICAgICMgZXhwb3NlIHRoZSByaWdodCBzZXQgb2YgYXR0cmlidXRlcyB0byBiZWNvbWUgImVxdWFsIgorICAgICAgICBmb3IgbGhzIGluIHNlbGYub2JqZWN0czoKKyAgICAgICAgICAgIGZvciByaHMgaW4gc2VsZi5vYmplY3RzOgorICAgICAgICAgICAgICAgIGlmIGxocyBpcyByaHM6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChsaHMsIHJocykKKworICAgIGRlZiB0ZXN0X2NvbnRhaW5tZW50KHNlbGYpOgorICAgICAgICBmb3Igb2JqIGluIHNlbGYudjRfYWRkcmVzc2VzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihvYmosIHNlbGYudjRuZXQpCisgICAgICAgIGZvciBvYmogaW4gc2VsZi52Nl9hZGRyZXNzZXM6CisgICAgICAgICAgICBzZWxmLmFzc2VydEluKG9iaiwgc2VsZi52Nm5ldCkKKyAgICAgICAgZm9yIG9iaiBpbiBzZWxmLnY0X29iamVjdHMgKyBbc2VsZi52Nm5ldF06CisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKG9iaiwgc2VsZi52Nm5ldCkKKyAgICAgICAgZm9yIG9iaiBpbiBzZWxmLnY2X29iamVjdHMgKyBbc2VsZi52NG5ldF06CisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKG9iaiwgc2VsZi52NG5ldCkKKworICAgIGRlZiB0ZXN0X21peGVkX3R5cGVfb3JkZXJpbmcoc2VsZik6CisgICAgICAgIGZvciBsaHMgaW4gc2VsZi5vYmplY3RzOgorICAgICAgICAgICAgZm9yIHJocyBpbiBzZWxmLm9iamVjdHM6CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShsaHMsIHR5cGUocmhzKSkgb3IgaXNpbnN0YW5jZShyaHMsIHR5cGUobGhzKSk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IGxocyA8IHJocykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogbGhzID4gcmhzKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBsaHMgPD0gcmhzKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBsaHMgPj0gcmhzKQorCisgICAgZGVmIHRlc3RfbWl4ZWRfdHlwZV9rZXkoc2VsZik6CisgICAgICAgICMgd2l0aCBnZXRfbWl4ZWRfdHlwZV9rZXksIHlvdSBjYW4gc29ydCBhZGRyZXNzZXMgYW5kIG5ldHdvcmsuCisgICAgICAgIHY0X29yZGVyZWQgPSBbc2VsZi52NGFkZHIsIHNlbGYudjRuZXQsIHNlbGYudjRpbnRmXQorICAgICAgICB2Nl9vcmRlcmVkID0gW3NlbGYudjZhZGRyLCBzZWxmLnY2bmV0LCBzZWxmLnY2aW50Zl0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2NF9vcmRlcmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRlZChzZWxmLnY0X29iamVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1pcGFkZHJlc3MuZ2V0X21peGVkX3R5cGVfa2V5KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2Nl9vcmRlcmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRlZChzZWxmLnY2X29iamVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1pcGFkZHJlc3MuZ2V0X21peGVkX3R5cGVfa2V5KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2NF9vcmRlcmVkICsgdjZfb3JkZXJlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0ZWQoc2VsZi5vYmplY3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9aXBhZGRyZXNzLmdldF9taXhlZF90eXBlX2tleSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm90SW1wbGVtZW50ZWQsIGlwYWRkcmVzcy5nZXRfbWl4ZWRfdHlwZV9rZXkob2JqZWN0KSkKKworICAgIGRlZiB0ZXN0X2luY29tcGF0aWJsZV92ZXJzaW9ucyhzZWxmKToKKyAgICAgICAgIyBUaGVzZSBzaG91bGQgYWx3YXlzIHJhaXNlIFR5cGVFcnJvcgorICAgICAgICB2NGFkZHIgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMS4xLjEuMScpCisgICAgICAgIHY0bmV0ID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEuMS4xLjEnKQorICAgICAgICB2NmFkZHIgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnOjoxJykKKyAgICAgICAgdjZuZXQgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnOjoxJykKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHY0YWRkci5fX2x0X18sIHY2YWRkcikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB2NGFkZHIuX19ndF9fLCB2NmFkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgdjRuZXQuX19sdF9fLCB2Nm5ldCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB2NG5ldC5fX2d0X18sIHY2bmV0KQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgdjZhZGRyLl9fbHRfXywgdjRhZGRyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHY2YWRkci5fX2d0X18sIHY0YWRkcikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB2Nm5ldC5fX2x0X18sIHY0bmV0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHY2bmV0Ll9fZ3RfXywgdjRuZXQpCisKKworCitjbGFzcyBJcGFkZHJVbml0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuaXB2NF9hZGRyZXNzID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjIuMy40JykKKyAgICAgICAgc2VsZi5pcHY0X2ludGVyZmFjZSA9IGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlKCcxLjIuMy40LzI0JykKKyAgICAgICAgc2VsZi5pcHY0X25ldHdvcmsgPSBpcGFkZHJlc3MuSVB2NE5ldHdvcmsoJzEuMi4zLjAvMjQnKQorICAgICAgICAjc2VsZi5pcHY0X2hvc3RtYXNrID0gaXBhZGRyZXNzLklQdjRJbnRlcmZhY2UoJzEwLjAuMC4xLzAuMjU1LjI1NS4yNTUnKQorICAgICAgICBzZWxmLmlwdjZfYWRkcmVzcyA9IGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKAorICAgICAgICAgICAgJzIwMDE6NjU4OjIyYTpjYWZlOjIwMDowOjA6MScpCisgICAgICAgIHNlbGYuaXB2Nl9pbnRlcmZhY2UgPSBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgKKyAgICAgICAgICAgICcyMDAxOjY1ODoyMmE6Y2FmZToyMDA6MDowOjEvNjQnKQorICAgICAgICBzZWxmLmlwdjZfbmV0d29yayA9IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnMjAwMTo2NTg6MjJhOmNhZmU6Oi82NCcpCisKKyAgICBkZWYgdGVzdFJlcHIoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIklQdjRJbnRlcmZhY2UoJzEuMi4zLjQvMzInKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcihpcGFkZHJlc3MuSVB2NEludGVyZmFjZSgnMS4yLjMuNCcpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiSVB2NkludGVyZmFjZSgnOjoxLzEyOCcpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICByZXByKGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKCc6OjEnKSkpCisKKyAgICAjIGlzc3VlNTcKKyAgICBkZWYgdGVzdEFkZHJlc3NJbnRNYXRoKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMS4xLjEuMScpICsgMjU1LAorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMS4xLjIuMCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMS4xLjEuMScpIC0gMjU2LAorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMS4xLjAuMScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwYWRkcmVzcy5JUHY2QWRkcmVzcygnOjoxJykgKyAoMioqMTYgLSAyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NkFkZHJlc3MoJzo6ZmZmZicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwYWRkcmVzcy5JUHY2QWRkcmVzcygnOjpmZmZmJykgLSAoMioqMTYgLSAyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NkFkZHJlc3MoJzo6MScpKQorCisgICAgZGVmIHRlc3RJbnZhbGlkSW50VG9CeXRlcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXBhZGRyZXNzLnY0X2ludF90b19wYWNrZWQsIC0xKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpcGFkZHJlc3MudjRfaW50X3RvX3BhY2tlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqKiBpcGFkZHJlc3MuSVBWNExFTkdUSCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXBhZGRyZXNzLnY2X2ludF90b19wYWNrZWQsIC0xKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpcGFkZHJlc3MudjZfaW50X3RvX3BhY2tlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqKiBpcGFkZHJlc3MuSVBWNkxFTkdUSCkKKworICAgIGRlZiB0ZXN0SW50ZXJuYWxzKHNlbGYpOgorICAgICAgICBmaXJzdCwgbGFzdCA9IGlwYWRkcmVzcy5fZmluZF9hZGRyZXNzX3JhbmdlKFsKKyAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMTAuMTAuMTAuMTAnKSwKKyAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMTAuMTAuMTAuMTInKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlyc3QsIGxhc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTI4LCBpcGFkZHJlc3MuX2NvdW50X3JpZ2h0aGFuZF96ZXJvX2JpdHMoMCwgMTI4KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiSVB2NE5ldHdvcmsoJzEuMi4zLjAvMjQnKSIsIHJlcHIoc2VsZi5pcHY0X25ldHdvcmspKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcweDEwMjAzMTgnLCBoZXgoc2VsZi5pcHY0X25ldHdvcmspKQorCisgICAgZGVmIHRlc3RNaXNzaW5nQWRkcmVzc1ZlcnNpb24oc2VsZik6CisgICAgICAgIGNsYXNzIEJyb2tlbihpcGFkZHJlc3MuX0Jhc2VBZGRyZXNzKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYnJva2VuID0gQnJva2VuKCcxMjcuMC4wLjEnKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoTm90SW1wbGVtZW50ZWRFcnJvciwgIkJyb2tlbi4qdmVyc2lvbiIpOgorICAgICAgICAgICAgYnJva2VuLnZlcnNpb24KKworICAgIGRlZiB0ZXN0TWlzc2luZ05ldHdvcmtWZXJzaW9uKHNlbGYpOgorICAgICAgICBjbGFzcyBCcm9rZW4oaXBhZGRyZXNzLl9CYXNlTmV0d29yayk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGJyb2tlbiA9IEJyb2tlbignMTI3LjAuMC4xJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KE5vdEltcGxlbWVudGVkRXJyb3IsICJCcm9rZW4uKnZlcnNpb24iKToKKyAgICAgICAgICAgIGJyb2tlbi52ZXJzaW9uCisKKyAgICBkZWYgdGVzdE1pc3NpbmdBZGRyZXNzQ2xhc3Moc2VsZik6CisgICAgICAgIGNsYXNzIEJyb2tlbihpcGFkZHJlc3MuX0Jhc2VOZXR3b3JrKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYnJva2VuID0gQnJva2VuKCcxMjcuMC4wLjEnKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoTm90SW1wbGVtZW50ZWRFcnJvciwgIkJyb2tlbi4qYWRkcmVzcyIpOgorICAgICAgICAgICAgYnJva2VuLl9hZGRyZXNzX2NsYXNzCisKKyAgICBkZWYgdGVzdEdldE5ldHdvcmsoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW50KHNlbGYuaXB2NF9uZXR3b3JrLm5ldHdvcmtfYWRkcmVzcyksIDE2OTA5MDU2KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihzZWxmLmlwdjRfbmV0d29yay5uZXR3b3JrX2FkZHJlc3MpLCAnMS4yLjMuMCcpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoc2VsZi5pcHY2X25ldHdvcmsubmV0d29ya19hZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICA0MjU0MDYxNjgyOTE4MjQ2OTQzMzQwMzY0NzI5NDAyMjA5MDc1MikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoc2VsZi5pcHY2X25ldHdvcmsubmV0d29ya19hZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnMjAwMTo2NTg6MjJhOmNhZmU6OicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHNlbGYuaXB2Nl9uZXR3b3JrLmhvc3RtYXNrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnOjpmZmZmOmZmZmY6ZmZmZjpmZmZmJykKKworICAgIGRlZiB0ZXN0SXBGcm9tSW50KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaXB2NF9pbnRlcmZhY2UuX2lwLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlKDE2OTA5MDYwKS5faXApCisKKyAgICAgICAgaXB2NCA9IGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxLjIuMy40JykKKyAgICAgICAgaXB2NiA9IGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcyMDAxOjY1ODoyMmE6Y2FmZToyMDA6MDowOjEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwdjQsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKGludChpcHY0KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXB2NiwgaXBhZGRyZXNzLmlwX25ldHdvcmsoaW50KGlwdjYpKSkKKworICAgICAgICB2Nl9pbnQgPSA0MjU0MDYxNjgyOTE4MjQ2OTQzMzU0Nzc2MjQ4MjA5Nzk0NjYyNQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaXB2Nl9pbnRlcmZhY2UuX2lwLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKHY2X2ludCkuX2lwKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXBhZGRyZXNzLmlwX25ldHdvcmsoc2VsZi5pcHY0X2FkZHJlc3MuX2lwKS52ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgIDQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXBhZGRyZXNzLmlwX25ldHdvcmsoc2VsZi5pcHY2X2FkZHJlc3MuX2lwKS52ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgIDYpCisKKyAgICBkZWYgdGVzdElwRnJvbVBhY2tlZChzZWxmKToKKyAgICAgICAgYWRkcmVzcyA9IGlwYWRkcmVzcy5pcF9hZGRyZXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5pcHY0X2ludGVyZmFjZS5faXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX2ludGVyZmFjZShiJ1x4MDFceDAyXHgwM1x4MDQnKS5faXApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcmVzcygnMjU1LjI1NC4yNTMuMjUyJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyhiJ1x4ZmZceGZlXHhmZFx4ZmMnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjZfaW50ZXJmYWNlLmlwLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9pbnRlcmZhY2UoCisgICAgICAgICAgICAgICAgICAgIGInXHgyMFx4MDFceDA2XHg1OFx4MDJceDJhXHhjYVx4ZmUnCisgICAgICAgICAgICAgICAgICAgIGInXHgwMlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDEnKS5pcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyZXNzKCdmZmZmOjI6Mzo0OmZmZmY6OicpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHJlc3MoYidceGZmXHhmZlx4MDBceDAyXHgwMFx4MDNceDAwXHgwNCcgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGInXHhmZlx4ZmYnICsgYidceDAwJyAqIDYpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHJlc3MoJzo6JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzcyhiJ1x4MDAnICogMTYpKQorCisgICAgZGVmIHRlc3RHZXRJcChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoc2VsZi5pcHY0X2ludGVyZmFjZS5pcCksIDE2OTA5MDYwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihzZWxmLmlwdjRfaW50ZXJmYWNlLmlwKSwgJzEuMi4zLjQnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW50KHNlbGYuaXB2Nl9pbnRlcmZhY2UuaXApLAorICAgICAgICAgICAgICAgICAgICAgICAgIDQyNTQwNjE2ODI5MTgyNDY5NDMzNTQ3NzYyNDgyMDk3OTQ2NjI1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihzZWxmLmlwdjZfaW50ZXJmYWNlLmlwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnMjAwMTo2NTg6MjJhOmNhZmU6MjAwOjoxJykKKworICAgIGRlZiB0ZXN0R2V0TmV0bWFzayhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoc2VsZi5pcHY0X25ldHdvcmsubmV0bWFzayksIDQyOTQ5NjcwNDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHNlbGYuaXB2NF9uZXR3b3JrLm5ldG1hc2spLCAnMjU1LjI1NS4yNTUuMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW50KHNlbGYuaXB2Nl9uZXR3b3JrLm5ldG1hc2spLAorICAgICAgICAgICAgICAgICAgICAgICAgIDM0MDI4MjM2NjkyMDkzODQ2MzQ0NDkyNzg2MzM1ODA1ODY1OTg0MCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjZfbmV0d29yay5wcmVmaXhsZW4sIDY0KQorCisgICAgZGVmIHRlc3RaZXJvTmV0bWFzayhzZWxmKToKKyAgICAgICAgaXB2NF96ZXJvX25ldG1hc2sgPSBpcGFkZHJlc3MuSVB2NEludGVyZmFjZSgnMS4yLjMuNC8wJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoaXB2NF96ZXJvX25ldG1hc2submV0d29yay5uZXRtYXNrKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwdjRfemVyb19uZXRtYXNrLm5ldHdvcmsuX2lzX3ZhbGlkX25ldG1hc2soCisgICAgICAgICAgICAgICAgc3RyKDApKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwdjRfemVyb19uZXRtYXNrLl9pc192YWxpZF9uZXRtYXNrKCcwJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcHY0X3plcm9fbmV0bWFzay5faXNfdmFsaWRfbmV0bWFzaygnMC4wLjAuMCcpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlwdjRfemVyb19uZXRtYXNrLl9pc192YWxpZF9uZXRtYXNrKCdpbnZhbGlkJykpCisKKyAgICAgICAgaXB2Nl96ZXJvX25ldG1hc2sgPSBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgnOjoxLzAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludChpcHY2X3plcm9fbmV0bWFzay5uZXR3b3JrLm5ldG1hc2spLCAwKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXB2Nl96ZXJvX25ldG1hc2submV0d29yay5faXNfdmFsaWRfbmV0bWFzaygKKyAgICAgICAgICAgICAgICBzdHIoMCkpKQorCisgICAgZGVmIHRlc3RJUHY0TmV0QW5kSG9zdG1hc2tzKHNlbGYpOgorICAgICAgICBuZXQgPSBzZWxmLmlwdjRfbmV0d29yaworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG5ldC5faXNfdmFsaWRfbmV0bWFzaygnaW52YWxpZCcpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobmV0Ll9pc192YWxpZF9uZXRtYXNrKCcxMjguMTI4LjEyOC4xMjgnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShuZXQuX2lzX3ZhbGlkX25ldG1hc2soJzEyOC4xMjguMTI4LjEyNycpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG5ldC5faXNfdmFsaWRfbmV0bWFzaygnMTI4LjEyOC4xMjguMjU1JykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShuZXQuX2lzX3ZhbGlkX25ldG1hc2soJzI1NS4xMjguMTI4LjEyOCcpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobmV0Ll9pc19ob3N0bWFzaygnaW52YWxpZCcpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobmV0Ll9pc19ob3N0bWFzaygnMTI4LjI1NS4yNTUuMjU1JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobmV0Ll9pc19ob3N0bWFzaygnMjU1LjI1NS4yNTUuMjU1JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobmV0Ll9pc19ob3N0bWFzaygnMS4yLjMuNCcpKQorCisgICAgICAgIG5ldCA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMTI3LjAuMC4wLzAuMC4wLjI1NScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjQsIG5ldC5wcmVmaXhsZW4pCisKKyAgICBkZWYgdGVzdEdldEJyb2FkY2FzdChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoc2VsZi5pcHY0X25ldHdvcmsuYnJvYWRjYXN0X2FkZHJlc3MpLCAxNjkwOTMxMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoc2VsZi5pcHY0X25ldHdvcmsuYnJvYWRjYXN0X2FkZHJlc3MpLCAnMS4yLjMuMjU1JykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludChzZWxmLmlwdjZfbmV0d29yay5icm9hZGNhc3RfYWRkcmVzcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgNDI1NDA2MTY4MjkxODI0Njk0NTE4NTAzOTEzNjc3MzE2NDIzNjcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHNlbGYuaXB2Nl9uZXR3b3JrLmJyb2FkY2FzdF9hZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnMjAwMTo2NTg6MjJhOmNhZmU6ZmZmZjpmZmZmOmZmZmY6ZmZmZicpCisKKyAgICBkZWYgdGVzdEdldFByZWZpeGxlbihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjRfaW50ZXJmYWNlLnByZWZpeGxlbiwgMjQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5pcHY2X2ludGVyZmFjZS5wcmVmaXhsZW4sIDY0KQorCisgICAgZGVmIHRlc3RHZXRTdXBlcm5ldChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjRfbmV0d29yay5zdXBlcm5ldCgpLnByZWZpeGxlbiwgMjMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHNlbGYuaXB2NF9uZXR3b3JrLnN1cGVybmV0KCkubmV0d29ya19hZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnMS4yLjIuMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NEludGVyZmFjZSgnMC4wLjAuMC8wJykubmV0d29yay5zdXBlcm5ldCgpLAorICAgICAgICAgICAgaXBhZGRyZXNzLklQdjROZXR3b3JrKCcwLjAuMC4wLzAnKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaXB2Nl9uZXR3b3JrLnN1cGVybmV0KCkucHJlZml4bGVuLCA2MykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoc2VsZi5pcHY2X25ldHdvcmsuc3VwZXJuZXQoKS5uZXR3b3JrX2FkZHJlc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICcyMDAxOjY1ODoyMmE6Y2FmZTo6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgnOjowLzAnKS5uZXR3b3JrLnN1cGVybmV0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZOZXR3b3JrKCc6OjAvMCcpKQorCisgICAgZGVmIHRlc3RHZXRTdXBlcm5ldDMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5pcHY0X25ldHdvcmsuc3VwZXJuZXQoMykucHJlZml4bGVuLCAyMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoc2VsZi5pcHY0X25ldHdvcmsuc3VwZXJuZXQoMykubmV0d29ya19hZGRyZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnMS4yLjAuMCcpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjZfbmV0d29yay5zdXBlcm5ldCgzKS5wcmVmaXhsZW4sIDYxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihzZWxmLmlwdjZfbmV0d29yay5zdXBlcm5ldCgzKS5uZXR3b3JrX2FkZHJlc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgICcyMDAxOjY1ODoyMmE6Y2FmODo6JykKKworICAgIGRlZiB0ZXN0R2V0U3VwZXJuZXQ0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLmlwdjRfbmV0d29yay5zdXBlcm5ldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4bGVuX2RpZmY9MiwgbmV3X3ByZWZpeD0xKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLmlwdjRfbmV0d29yay5zdXBlcm5ldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3ByZWZpeD0yNSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjRfbmV0d29yay5zdXBlcm5ldChwcmVmaXhsZW5fZGlmZj0yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlwdjRfbmV0d29yay5zdXBlcm5ldChuZXdfcHJlZml4PTIyKSkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLmlwdjZfbmV0d29yay5zdXBlcm5ldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4bGVuX2RpZmY9MiwgbmV3X3ByZWZpeD0xKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLmlwdjZfbmV0d29yay5zdXBlcm5ldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3ByZWZpeD02NSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjZfbmV0d29yay5zdXBlcm5ldChwcmVmaXhsZW5fZGlmZj0yKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlwdjZfbmV0d29yay5zdXBlcm5ldChuZXdfcHJlZml4PTYyKSkKKworICAgIGRlZiB0ZXN0SG9zdHMoc2VsZik6CisgICAgICAgIGhvc3RzID0gbGlzdChzZWxmLmlwdjRfbmV0d29yay5ob3N0cygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDI1NCwgbGVuKGhvc3RzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzEuMi4zLjEnKSwgaG9zdHNbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjIuMy4yNTQnKSwgaG9zdHNbLTFdKQorCisgICAgICAgICMgc3BlY2lhbCBjYXNlIHdoZXJlIG9ubHkgMSBiaXQgaXMgbGVmdCBmb3IgYWRkcmVzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzIuMC4wLjAnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcyLjAuMC4xJyldLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QoaXBhZGRyZXNzLmlwX25ldHdvcmsoJzIuMC4wLjAvMzEnKS5ob3N0cygpKSkKKworICAgIGRlZiB0ZXN0RmFuY3lTdWJuZXR0aW5nKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChzZWxmLmlwdjRfbmV0d29yay5zdWJuZXRzKHByZWZpeGxlbl9kaWZmPTMpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0ZWQoc2VsZi5pcHY0X25ldHdvcmsuc3VibmV0cyhuZXdfcHJlZml4PTI3KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXB2NF9uZXR3b3JrLnN1Ym5ldHMobmV3X3ByZWZpeD0yMykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXB2NF9uZXR3b3JrLnN1Ym5ldHMocHJlZml4bGVuX2RpZmY9MywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19wcmVmaXg9MjcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChzZWxmLmlwdjZfbmV0d29yay5zdWJuZXRzKHByZWZpeGxlbl9kaWZmPTQpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0ZWQoc2VsZi5pcHY2X25ldHdvcmsuc3VibmV0cyhuZXdfcHJlZml4PTY4KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXB2Nl9uZXR3b3JrLnN1Ym5ldHMobmV3X3ByZWZpeD02MykpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXB2Nl9uZXR3b3JrLnN1Ym5ldHMocHJlZml4bGVuX2RpZmY9NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19wcmVmaXg9NjgpKQorCisgICAgZGVmIHRlc3RHZXRTdWJuZXRzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc2VsZi5pcHY0X25ldHdvcmsuc3VibmV0cygpKVswXS5wcmVmaXhsZW4sIDI1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihsaXN0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLmlwdjRfbmV0d29yay5zdWJuZXRzKCkpWzBdLm5ldHdvcmtfYWRkcmVzcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJzEuMi4zLjAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihsaXN0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLmlwdjRfbmV0d29yay5zdWJuZXRzKCkpWzFdLm5ldHdvcmtfYWRkcmVzcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJzEuMi4zLjEyOCcpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHNlbGYuaXB2Nl9uZXR3b3JrLnN1Ym5ldHMoKSlbMF0ucHJlZml4bGVuLCA2NSkKKworICAgIGRlZiB0ZXN0R2V0U3VibmV0Rm9yU2luZ2xlMzIoc2VsZik6CisgICAgICAgIGlwID0gaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjIuMy40LzMyJykKKyAgICAgICAgc3VibmV0czEgPSBbc3RyKHgpIGZvciB4IGluIGlwLnN1Ym5ldHMoKV0KKyAgICAgICAgc3VibmV0czIgPSBbc3RyKHgpIGZvciB4IGluIGlwLnN1Ym5ldHMoMildCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3VibmV0czEsIFsnMS4yLjMuNC8zMiddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1Ym5ldHMxLCBzdWJuZXRzMikKKworICAgIGRlZiB0ZXN0R2V0U3VibmV0Rm9yU2luZ2xlMTI4KHNlbGYpOgorICAgICAgICBpcCA9IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnOjoxLzEyOCcpCisgICAgICAgIHN1Ym5ldHMxID0gW3N0cih4KSBmb3IgeCBpbiBpcC5zdWJuZXRzKCldCisgICAgICAgIHN1Ym5ldHMyID0gW3N0cih4KSBmb3IgeCBpbiBpcC5zdWJuZXRzKDIpXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1Ym5ldHMxLCBbJzo6MS8xMjgnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdWJuZXRzMSwgc3VibmV0czIpCisKKyAgICBkZWYgdGVzdFN1Ym5ldDIoc2VsZik6CisgICAgICAgIGlwcyA9IFtzdHIoeCkgZm9yIHggaW4gc2VsZi5pcHY0X25ldHdvcmsuc3VibmV0cygyKV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIGlwcywKKyAgICAgICAgICAgIFsnMS4yLjMuMC8yNicsICcxLjIuMy42NC8yNicsICcxLjIuMy4xMjgvMjYnLCAnMS4yLjMuMTkyLzI2J10pCisKKyAgICAgICAgaXBzdjYgPSBbc3RyKHgpIGZvciB4IGluIHNlbGYuaXB2Nl9uZXR3b3JrLnN1Ym5ldHMoMildCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBpcHN2NiwKKyAgICAgICAgICAgIFsnMjAwMTo2NTg6MjJhOmNhZmU6Oi82NicsCisgICAgICAgICAgICAgJzIwMDE6NjU4OjIyYTpjYWZlOjQwMDA6Oi82NicsCisgICAgICAgICAgICAgJzIwMDE6NjU4OjIyYTpjYWZlOjgwMDA6Oi82NicsCisgICAgICAgICAgICAgJzIwMDE6NjU4OjIyYTpjYWZlOmMwMDA6Oi82NiddKQorCisgICAgZGVmIHRlc3RTdWJuZXRGYWlsc0ZvckxhcmdlQ2lkckRpZmYoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXB2NF9pbnRlcmZhY2UubmV0d29yay5zdWJuZXRzKDkpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlwdjRfbmV0d29yay5zdWJuZXRzKDkpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlwdjZfaW50ZXJmYWNlLm5ldHdvcmsuc3VibmV0cyg2NSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXB2Nl9uZXR3b3JrLnN1Ym5ldHMoNjUpKQorCisgICAgZGVmIHRlc3RTdXBlcm5ldEZhaWxzRm9yTGFyZ2VDaWRyRGlmZihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pcHY0X2ludGVyZmFjZS5uZXR3b3JrLnN1cGVybmV0LCAyNSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pcHY2X2ludGVyZmFjZS5uZXR3b3JrLnN1cGVybmV0LCA2NSkKKworICAgIGRlZiB0ZXN0U3VibmV0RmFpbHNGb3JOZWdhdGl2ZUNpZHJEaWZmKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlwdjRfaW50ZXJmYWNlLm5ldHdvcmsuc3VibmV0cygtMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXB2NF9uZXR3b3JrLnN1Ym5ldHMoLTEpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlwdjZfaW50ZXJmYWNlLm5ldHdvcmsuc3VibmV0cygtMSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXB2Nl9uZXR3b3JrLnN1Ym5ldHMoLTEpKQorCisgICAgZGVmIHRlc3RHZXROdW1fQWRkcmVzc2VzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaXB2NF9uZXR3b3JrLm51bV9hZGRyZXNzZXMsIDI1NikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHNlbGYuaXB2NF9uZXR3b3JrLnN1Ym5ldHMoKSlbMF0ubnVtX2FkZHJlc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAxMjgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5pcHY0X25ldHdvcmsuc3VwZXJuZXQoKS5udW1fYWRkcmVzc2VzLCA1MTIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjZfbmV0d29yay5udW1fYWRkcmVzc2VzLCAxODQ0Njc0NDA3MzcwOTU1MTYxNikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHNlbGYuaXB2Nl9uZXR3b3JrLnN1Ym5ldHMoKSlbMF0ubnVtX2FkZHJlc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICA5MjIzMzcyMDM2ODU0Nzc1ODA4KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaXB2Nl9uZXR3b3JrLnN1cGVybmV0KCkubnVtX2FkZHJlc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAzNjg5MzQ4ODE0NzQxOTEwMzIzMikKKworICAgIGRlZiB0ZXN0Q29udGFpbnMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcGFkZHJlc3MuSVB2NEludGVyZmFjZSgnMS4yLjMuMTI4LzI1JykgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXB2NF9uZXR3b3JrKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlKCcxLjIuNC4xLzI0JykgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlwdjRfbmV0d29yaykKKyAgICAgICAgIyBXZSBjYW4gdGVzdCBhZGRyZXNzZXMgYW5kIHN0cmluZyBhcyB3ZWxsLgorICAgICAgICBhZGRyMSA9IGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMS4yLjMuMzcnKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYWRkcjEgaW4gc2VsZi5pcHY0X25ldHdvcmspCisgICAgICAgICMgaXNzdWUgNjEsIGJhZCBuZXR3b3JrIGNvbXBhcmlzb24gb24gbGlrZS1pcCdkIG5ldHdvcmsgb2JqZWN0cworICAgICAgICAjIHdpdGggaWRlbnRpY2FsIGJyb2FkY2FzdCBhZGRyZXNzZXMuCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjEuMC4wLzE2JykuX19jb250YWluc19fKAorICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4wLjAuMC8xNScpKSkKKworICAgIGRlZiB0ZXN0TnRoKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihzZWxmLmlwdjRfbmV0d29ya1s1XSksICcxLjIuMy41JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgc2VsZi5pcHY0X25ldHdvcmsuX19nZXRpdGVtX18sIDI1NikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihzZWxmLmlwdjZfbmV0d29ya1s1XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgJzIwMDE6NjU4OjIyYTpjYWZlOjo1JykKKworICAgIGRlZiB0ZXN0R2V0aXRlbShzZWxmKToKKyAgICAgICAgIyBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvaXBhZGRyLXB5L2lzc3Vlcy9kZXRhaWw/aWQ9MTUKKyAgICAgICAgYWRkciA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMTcyLjMxLjI1NS4xMjgvMjU1LjI1NS4yNTUuMjQwJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyOCwgYWRkci5wcmVmaXhsZW4pCisgICAgICAgIGFkZHJfbGlzdCA9IGxpc3QoYWRkcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMTcyLjMxLjI1NS4xMjgnLCBzdHIoYWRkcl9saXN0WzBdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMTcyLjMxLjI1NS4xMjgnLCBzdHIoYWRkclswXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzE3Mi4zMS4yNTUuMTQzJywgc3RyKGFkZHJfbGlzdFstMV0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcxNzIuMzEuMjU1LjE0MycsIHN0cihhZGRyWy0xXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcl9saXN0Wy0xXSwgYWRkclstMV0pCisKKyAgICBkZWYgdGVzdEVxdWFsKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5pcHY0X2ludGVyZmFjZSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRJbnRlcmZhY2UoJzEuMi4zLjQvMjQnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLmlwdjRfaW50ZXJmYWNlID09CisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRJbnRlcmZhY2UoJzEuMi4zLjQvMjMnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLmlwdjRfaW50ZXJmYWNlID09CisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZJbnRlcmZhY2UoJzo6MS4yLjMuNC8yNCcpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuaXB2NF9pbnRlcmZhY2UgPT0gJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5pcHY0X2ludGVyZmFjZSA9PSBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLmlwdjRfaW50ZXJmYWNlID09IDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuaXB2Nl9pbnRlcmZhY2UgPT0KKyAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKCcyMDAxOjY1ODoyMmE6Y2FmZToyMDA6OjEvNjQnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLmlwdjZfaW50ZXJmYWNlID09CisgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgnMjAwMTo2NTg6MjJhOmNhZmU6MjAwOjoxLzYzJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5pcHY2X2ludGVyZmFjZSA9PQorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlKCcxLjIuMy40LzIzJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5pcHY2X2ludGVyZmFjZSA9PSAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLmlwdjZfaW50ZXJmYWNlID09IFtdKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuaXB2Nl9pbnRlcmZhY2UgPT0gMikKKworICAgIGRlZiB0ZXN0Tm90RXF1YWwoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5pcHY0X2ludGVyZmFjZSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlKCcxLjIuMy40LzI0JykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmlwdjRfaW50ZXJmYWNlICE9CisgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NEludGVyZmFjZSgnMS4yLjMuNC8yMycpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5pcHY0X2ludGVyZmFjZSAhPQorICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZJbnRlcmZhY2UoJzo6MS4yLjMuNC8yNCcpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5pcHY0X2ludGVyZmFjZSAhPSAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuaXB2NF9pbnRlcmZhY2UgIT0gW10pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmlwdjRfaW50ZXJmYWNlICE9IDIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuaXB2NF9hZGRyZXNzICE9CisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjIuMy41JykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmlwdjRfYWRkcmVzcyAhPSAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuaXB2NF9hZGRyZXNzICE9IFtdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5pcHY0X2FkZHJlc3MgIT0gMikKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuaXB2Nl9pbnRlcmZhY2UgIT0KKyAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKCcyMDAxOjY1ODoyMmE6Y2FmZToyMDA6OjEvNjQnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuaXB2Nl9pbnRlcmZhY2UgIT0KKyAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKCcyMDAxOjY1ODoyMmE6Y2FmZToyMDA6OjEvNjMnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuaXB2Nl9pbnRlcmZhY2UgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlKCcxLjIuMy40LzIzJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmlwdjZfaW50ZXJmYWNlICE9ICcnKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5pcHY2X2ludGVyZmFjZSAhPSBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuaXB2Nl9pbnRlcmZhY2UgIT0gMikKKworICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5pcHY2X2FkZHJlc3MgIT0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMS4yLjMuNCcpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5pcHY2X2FkZHJlc3MgIT0gJycpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmlwdjZfYWRkcmVzcyAhPSBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuaXB2Nl9hZGRyZXNzICE9IDIpCisKKyAgICBkZWYgdGVzdFNsYXNoMzJDb25zdHJ1Y3RvcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoaXBhZGRyZXNzLklQdjRJbnRlcmZhY2UoCisgICAgICAgICAgICAgICAgICAgICcxLjIuMy40LzI1NS4yNTUuMjU1LjI1NScpKSwgJzEuMi4zLjQvMzInKQorCisgICAgZGVmIHRlc3RTbGFzaDEyOENvbnN0cnVjdG9yKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgnOjoxLzEyOCcpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnOjoxLzEyOCcpCisKKyAgICBkZWYgdGVzdFNsYXNoMENvbnN0cnVjdG9yKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihpcGFkZHJlc3MuSVB2NEludGVyZmFjZSgnMS4yLjMuNC8wLjAuMC4wJykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnMS4yLjMuNC8wJykKKworICAgIGRlZiB0ZXN0Q29sbGFwc2luZyhzZWxmKToKKyAgICAgICAgIyB0ZXN0IG9ubHkgSVAgYWRkcmVzc2VzIGluY2x1ZGluZyBzb21lIGR1cGxpY2F0ZXMKKyAgICAgICAgaXAxID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjEuMS4wJykKKyAgICAgICAgaXAyID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjEuMS4xJykKKyAgICAgICAgaXAzID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjEuMS4yJykKKyAgICAgICAgaXA0ID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjEuMS4zJykKKyAgICAgICAgaXA1ID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjEuMS40JykKKyAgICAgICAgaXA2ID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjEuMS4wJykKKyAgICAgICAgIyBjaGVjayB0aGF0IGFkZHJlc2VzIGFyZSBzdWJzdW1lZCBwcm9wZXJseS4KKyAgICAgICAgY29sbGFwc2VkID0gaXBhZGRyZXNzLmNvbGxhcHNlX2FkZHJlc3NlcygKKyAgICAgICAgICAgIFtpcDEsIGlwMiwgaXAzLCBpcDQsIGlwNSwgaXA2XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvbGxhcHNlZCksCisgICAgICAgICAgICAgICAgW2lwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4xLjEuMC8zMCcpLAorICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NE5ldHdvcmsoJzEuMS4xLjQvMzInKV0pCisKKyAgICAgICAgIyB0ZXN0IGEgbWl4IG9mIElQIGFkZHJlc3NlcyBhbmQgbmV0d29ya3MgaW5jbHVkaW5nIHNvbWUgZHVwbGljYXRlcworICAgICAgICBpcDEgPSBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzEuMS4xLjAnKQorICAgICAgICBpcDIgPSBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzEuMS4xLjEnKQorICAgICAgICBpcDMgPSBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzEuMS4xLjInKQorICAgICAgICBpcDQgPSBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzEuMS4xLjMnKQorICAgICAgICAjaXA1ID0gaXBhZGRyZXNzLklQdjRJbnRlcmZhY2UoJzEuMS4xLjQvMzAnKQorICAgICAgICAjaXA2ID0gaXBhZGRyZXNzLklQdjRJbnRlcmZhY2UoJzEuMS4xLjQvMzAnKQorICAgICAgICAjIGNoZWNrIHRoYXQgYWRkcmVzZXMgYXJlIHN1YnN1bWVkIHByb3Blcmx5LgorICAgICAgICBjb2xsYXBzZWQgPSBpcGFkZHJlc3MuY29sbGFwc2VfYWRkcmVzc2VzKFtpcDEsIGlwMiwgaXAzLCBpcDRdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29sbGFwc2VkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjEuMS4wLzMwJyldKQorCisgICAgICAgICMgdGVzdCBvbmx5IElQIG5ldHdvcmtzCisgICAgICAgIGlwMSA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4xLjAuMC8yNCcpCisgICAgICAgIGlwMiA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4xLjEuMC8yNCcpCisgICAgICAgIGlwMyA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4xLjIuMC8yNCcpCisgICAgICAgIGlwNCA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4xLjMuMC8yNCcpCisgICAgICAgIGlwNSA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4xLjQuMC8yNCcpCisgICAgICAgICMgc3RvcmVkIGluIG5vIHBhcnRpY3VsYXIgb3JkZXIgYi9jIHdlIHdhbnQgQ29sbGFwc2VBZGRyIHRvIGNhbGwKKyAgICAgICAgIyBbXS5zb3J0CisgICAgICAgIGlwNiA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4xLjAuMC8yMicpCisgICAgICAgICMgY2hlY2sgdGhhdCBhZGRyZXNlcyBhcmUgc3Vic3VtZWQgcHJvcGVybHkuCisgICAgICAgIGNvbGxhcHNlZCA9IGlwYWRkcmVzcy5jb2xsYXBzZV9hZGRyZXNzZXMoW2lwMSwgaXAyLCBpcDMsIGlwNCwgaXA1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcDZdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29sbGFwc2VkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjEuMC4wLzIyJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4xLjQuMC8yNCcpXSkKKworICAgICAgICAjIHRlc3QgdGhhdCB0d28gYWRkcmVzc2VzIGFyZSBzdXBlcm5ldCdlZCBwcm9wZXJseQorICAgICAgICBjb2xsYXBzZWQgPSBpcGFkZHJlc3MuY29sbGFwc2VfYWRkcmVzc2VzKFtpcDEsIGlwMl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb2xsYXBzZWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtpcGFkZHJlc3MuSVB2NE5ldHdvcmsoJzEuMS4wLjAvMjMnKV0pCisKKyAgICAgICAgIyB0ZXN0IHNhbWUgSVAgbmV0d29ya3MKKyAgICAgICAgaXBfc2FtZTEgPSBpcF9zYW1lMiA9IGlwYWRkcmVzcy5JUHY0TmV0d29yaygnMS4xLjEuMS8zMicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpcGFkZHJlc3MuY29sbGFwc2VfYWRkcmVzc2VzKAorICAgICAgICAgICAgICAgICAgICBbaXBfc2FtZTEsIGlwX3NhbWUyXSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtpcF9zYW1lMV0pCisKKyAgICAgICAgIyB0ZXN0IHNhbWUgSVAgYWRkcmVzc2VzCisgICAgICAgIGlwX3NhbWUxID0gaXBfc2FtZTIgPSBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzEuMS4xLjEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoaXBhZGRyZXNzLmNvbGxhcHNlX2FkZHJlc3NlcygKKyAgICAgICAgICAgICAgICAgICAgW2lwX3NhbWUxLCBpcF9zYW1lMl0pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEuMS4xLjEvMzInKV0pCisgICAgICAgIGlwMSA9IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnMjAwMTo6LzEwMCcpCisgICAgICAgIGlwMiA9IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnMjAwMTo6LzEyMCcpCisgICAgICAgIGlwMyA9IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnMjAwMTo6Lzk2JykKKyAgICAgICAgIyB0ZXN0IHRoYXQgaXB2NiBhZGRyZXNzZXMgYXJlIHN1YnN1bWVkIHByb3Blcmx5LgorICAgICAgICBjb2xsYXBzZWQgPSBpcGFkZHJlc3MuY29sbGFwc2VfYWRkcmVzc2VzKFtpcDEsIGlwMiwgaXAzXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvbGxhcHNlZCksIFtpcDNdKQorCisgICAgICAgICMgdGhlIHRvZWphbSB0ZXN0CisgICAgICAgIGFkZHJfdHVwbGVzID0gWworICAgICAgICAgICAgICAgIChpcGFkZHJlc3MuaXBfYWRkcmVzcygnMS4xLjEuMScpLAorICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfYWRkcmVzcygnOjoxJykpLAorICAgICAgICAgICAgICAgIChpcGFkZHJlc3MuSVB2NE5ldHdvcmsoJzEuMS4wLjAvMjQnKSwKKyAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZOZXR3b3JrKCcyMDAxOjovMTIwJykpLAorICAgICAgICAgICAgICAgIChpcGFkZHJlc3MuSVB2NE5ldHdvcmsoJzEuMS4wLjAvMzInKSwKKyAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZOZXR3b3JrKCcyMDAxOjovMTI4JykpLAorICAgICAgICBdCisgICAgICAgIGZvciBpcDEsIGlwMiBpbiBhZGRyX3R1cGxlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaXBhZGRyZXNzLmNvbGxhcHNlX2FkZHJlc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpcDEsIGlwMl0pCisKKyAgICBkZWYgdGVzdFN1bW1hcml6aW5nKHNlbGYpOgorICAgICAgICAjaXAgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcworICAgICAgICAjaXBuZXQgPSBpcGFkZHJlc3MuaXBfbmV0d29yaworICAgICAgICBzdW1tYXJpemUgPSBpcGFkZHJlc3Muc3VtbWFyaXplX2FkZHJlc3NfcmFuZ2UKKyAgICAgICAgaXAxID0gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEuMS4xLjAnKQorICAgICAgICBpcDIgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMS4xLjEuMjU1JykKKworICAgICAgICAjIHN1bW1hcml6ZSB3b3JrcyBvbmx5IGZvciBJUHY0ICYgSVB2NgorICAgICAgICBjbGFzcyBJUHY3QWRkcmVzcyhpcGFkZHJlc3MuSVB2NkFkZHJlc3MpOgorICAgICAgICAgICAgQHByb3BlcnR5CisgICAgICAgICAgICBkZWYgdmVyc2lvbihzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gNworICAgICAgICBpcF9pbnZhbGlkMSA9IElQdjdBZGRyZXNzKCc6OjEnKQorICAgICAgICBpcF9pbnZhbGlkMiA9IElQdjdBZGRyZXNzKCc6OjEnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJpemUoaXBfaW52YWxpZDEsIGlwX2ludmFsaWQyKSkKKyAgICAgICAgIyB0ZXN0IHRoYXQgYSBzdW1tYXJ5IG92ZXIgaXA0ICYgaXA2IGZhaWxzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyaXplKGlwMSwgaXBhZGRyZXNzLklQdjZBZGRyZXNzKCc6OjEnKSkpCisgICAgICAgICMgdGVzdCBhIC8yNCBpcyBzdW1tYXJpemVkIHByb3Blcmx5CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdW1tYXJpemUoaXAxLCBpcDIpKVswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfbmV0d29yaygnMS4xLjEuMC8yNCcpKQorICAgICAgICAjIHRlc3QgYW4gIElQdjQgcmFuZ2UgdGhhdCBpc24ndCBvbiBhIG5ldHdvcmsgYnl0ZSBib3VuZGFyeQorICAgICAgICBpcDIgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMS4xLjEuOCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChzdW1tYXJpemUoaXAxLCBpcDIpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEuMS4xLjAvMjknKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEuMS4xLjgnKV0pCisgICAgICAgICMgYWxsIQorICAgICAgICBpcDEgPSBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoMCkKKyAgICAgICAgaXAyID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKGlwYWRkcmVzcy5JUHY0QWRkcmVzcy5fQUxMX09ORVMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2lwYWRkcmVzcy5JUHY0TmV0d29yaygnMC4wLjAuMC8wJyldLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3Qoc3VtbWFyaXplKGlwMSwgaXAyKSkpCisKKyAgICAgICAgaXAxID0gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzE6OicpCisgICAgICAgIGlwMiA9IGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxOmZmZmY6ZmZmZjpmZmZmOmZmZmY6ZmZmZjpmZmZmOmZmZmYnKQorICAgICAgICAjIHRlc3QgYSBJUHY2IGlzIHN1bWFtcml6ZWQgcHJvcGVybHkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN1bW1hcml6ZShpcDEsIGlwMikpWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxOjovMTYnKSkKKyAgICAgICAgIyB0ZXN0IGFuIElQdjYgcmFuZ2UgdGhhdCBpc24ndCBvbiBhIG5ldHdvcmsgYnl0ZSBib3VuZGFyeQorICAgICAgICBpcDIgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMjo6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHN1bW1hcml6ZShpcDEsIGlwMikpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFtpcGFkZHJlc3MuaXBfbmV0d29yaygnMTo6LzE2JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcyOjovMTI4JyldKQorCisgICAgICAgICMgdGVzdCBleGNlcHRpb24gcmFpc2VkIHdoZW4gZmlyc3QgaXMgZ3JlYXRlciB0aGFuIGxhc3QKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyaXplKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxLjEuMS4wJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMS4xLjAuMCcpKSkKKyAgICAgICAgIyB0ZXN0IGV4Y2VwdGlvbiByYWlzZWQgd2hlbiBmaXJzdCBhbmQgbGFzdCBhcmVuJ3QgSVAgYWRkcmVzc2VzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyaXplKGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxLjEuMS4wJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfbmV0d29yaygnMS4xLjAuMCcpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdW1tYXJpemUoaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEuMS4xLjAnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxLjEuMC4wJykpKQorICAgICAgICAjIHRlc3QgZXhjZXB0aW9uIHJhaXNlZCB3aGVuIGZpcnN0IGFuZCBsYXN0IGFyZSBub3Qgc2FtZSB2ZXJzaW9uCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3VtbWFyaXplKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc6OicpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEuMS4wLjAnKSkpCisKKyAgICBkZWYgdGVzdEFkZHJlc3NDb21wYXJpc29uKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEuMS4xLjEnKSA8PQorICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEuMS4xLjEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxLjEuMS4xJykgPD0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxLjEuMS4yJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcGFkZHJlc3MuaXBfYWRkcmVzcygnOjoxJykgPD0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc6OjEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc6OjEnKSA8PQorICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzo6MicpKQorCisgICAgZGVmIHRlc3RJbnRlcmZhY2VDb21wYXJpc29uKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXBhZGRyZXNzLmlwX2ludGVyZmFjZSgnMS4xLjEuMScpIDw9CisgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfaW50ZXJmYWNlKCcxLjEuMS4xJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcGFkZHJlc3MuaXBfaW50ZXJmYWNlKCcxLjEuMS4xJykgPD0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9pbnRlcmZhY2UoJzEuMS4xLjInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwYWRkcmVzcy5pcF9pbnRlcmZhY2UoJzo6MScpIDw9CisgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfaW50ZXJmYWNlKCc6OjEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwYWRkcmVzcy5pcF9pbnRlcmZhY2UoJzo6MScpIDw9CisgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfaW50ZXJmYWNlKCc6OjInKSkKKworICAgIGRlZiB0ZXN0TmV0d29ya0NvbXBhcmlzb24oc2VsZik6CisgICAgICAgICMgaXAxIGFuZCBpcDIgaGF2ZSB0aGUgc2FtZSBuZXR3b3JrIGFkZHJlc3MKKyAgICAgICAgaXAxID0gaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjEuMS4wLzI0JykKKyAgICAgICAgaXAyID0gaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjEuMS4wLzMyJykKKyAgICAgICAgaXAzID0gaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjEuMi4wLzI0JykKKworICAgICAgICBzZWxmLmFzc2VydFRydWUoaXAxIDwgaXAzKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXAzID4gaXAyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXAxLmNvbXBhcmVfbmV0d29ya3MoaXAxKSwgMCkKKworICAgICAgICAjIGlmIGFkZHJlc3NlcyBhcmUgdGhlIHNhbWUsIHNvcnQgYnkgbmV0bWFzaworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwMS5jb21wYXJlX25ldHdvcmtzKGlwMiksIC0xKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwMi5jb21wYXJlX25ldHdvcmtzKGlwMSksIDEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcDEuY29tcGFyZV9uZXR3b3JrcyhpcDMpLCAtMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcDMuY29tcGFyZV9uZXR3b3JrcyhpcDEpLCAxKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXAxLl9nZXRfbmV0d29ya3Nfa2V5KCkgPCBpcDMuX2dldF9uZXR3b3Jrc19rZXkoKSkKKworICAgICAgICBpcDEgPSBpcGFkZHJlc3MuSVB2Nk5ldHdvcmsoJzIwMDE6MjAwMDo6Lzk2JykKKyAgICAgICAgaXAyID0gaXBhZGRyZXNzLklQdjZOZXR3b3JrKCcyMDAxOjIwMDE6Oi85NicpCisgICAgICAgIGlwMyA9IGlwYWRkcmVzcy5JUHY2TmV0d29yaygnMjAwMTpmZmZmOjIwMDA6Oi85NicpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwMSA8IGlwMykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwMyA+IGlwMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcDEuY29tcGFyZV9uZXR3b3JrcyhpcDMpLCAtMSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwMS5fZ2V0X25ldHdvcmtzX2tleSgpIDwgaXAzLl9nZXRfbmV0d29ya3Nfa2V5KCkpCisKKyAgICAgICAgIyBUZXN0IGNvbXBhcmluZyBkaWZmZXJlbnQgcHJvdG9jb2xzLgorICAgICAgICAjIFNob3VsZCBhbHdheXMgcmFpc2UgYSBUeXBlRXJyb3IuCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pcHY0X25ldHdvcmsuY29tcGFyZV9uZXR3b3JrcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pcHY2X25ldHdvcmspCisgICAgICAgIGlwdjYgPSBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgnOjovMCcpCisgICAgICAgIGlwdjQgPSBpcGFkZHJlc3MuSVB2NEludGVyZmFjZSgnMC4wLjAuMC8wJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpcHY0Ll9fbHRfXywgaXB2NikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpcHY0Ll9fZ3RfXywgaXB2NikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpcHY2Ll9fbHRfXywgaXB2NCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpcHY2Ll9fZ3RfXywgaXB2NCkKKworICAgICAgICAjIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaXNzdWUgMTkuCisgICAgICAgIGlwMSA9IGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxMC4xLjIuMTI4LzI1JykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpcDEgPCBpcDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXAxID4gaXAxKQorICAgICAgICBpcDIgPSBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTAuMS4zLjAvMjQnKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXAxIDwgaXAyKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlwMiA8IGlwMSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpcDEgPiBpcDIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcDIgPiBpcDEpCisgICAgICAgIGlwMyA9IGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxMC4xLjMuMC8yNScpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcDIgPCBpcDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaXAzIDwgaXAyKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlwMiA+IGlwMykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlwMyA+IGlwMikKKworICAgICAgICAjIFJlZ3Jlc3Npb24gdGVzdCBmb3IgaXNzdWUgMjguCisgICAgICAgIGlwMSA9IGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxMC4xMC4xMC4wLzMxJykKKyAgICAgICAgaXAyID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEwLjEwLjEwLjAnKQorICAgICAgICBpcDMgPSBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTAuMTAuMTAuMi8zMScpCisgICAgICAgIGlwNCA9IGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxMC4xMC4xMC4yJykKKyAgICAgICAgc29ydGVkID0gW2lwMSwgaXAyLCBpcDMsIGlwNF0KKyAgICAgICAgdW5zb3J0ZWQgPSBbaXAyLCBpcDQsIGlwMSwgaXAzXQorICAgICAgICB1bnNvcnRlZC5zb3J0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQsIHVuc29ydGVkKQorICAgICAgICB1bnNvcnRlZCA9IFtpcDQsIGlwMSwgaXAzLCBpcDJdCisgICAgICAgIHVuc29ydGVkLnNvcnQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZCwgdW5zb3J0ZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaXAxLl9fbHRfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEwLjEwLjEwLjAnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpcDIuX19sdF9fLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMTAuMTAuMTAuMCcpKQorCisgICAgICAgICMgPD0sID49CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcGFkZHJlc3MuaXBfbmV0d29yaygnMS4xLjEuMScpIDw9CisgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfbmV0d29yaygnMS4xLjEuMScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEuMS4xLjEnKSA8PQorICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEuMS4xLjInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpcGFkZHJlc3MuaXBfbmV0d29yaygnMS4xLjEuMicpIDw9CisgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfbmV0d29yaygnMS4xLjEuMScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXBhZGRyZXNzLmlwX25ldHdvcmsoJzo6MScpIDw9CisgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfbmV0d29yaygnOjoxJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpcGFkZHJlc3MuaXBfbmV0d29yaygnOjoxJykgPD0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCc6OjInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpcGFkZHJlc3MuaXBfbmV0d29yaygnOjoyJykgPD0KKyAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfbmV0d29yaygnOjoxJykpCisKKyAgICBkZWYgdGVzdFN0cmljdE5ldHdvcmtzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpcGFkZHJlc3MuaXBfbmV0d29yaywgJzE5Mi4xNjguMS4xLzI0JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXBhZGRyZXNzLmlwX25ldHdvcmssICc6OjEvMTIwJykKKworICAgIGRlZiB0ZXN0T3ZlcmxhcHMoc2VsZik6CisgICAgICAgIG90aGVyID0gaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjIuMy4wLzMwJykKKyAgICAgICAgb3RoZXIyID0gaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjIuMi4wLzI0JykKKyAgICAgICAgb3RoZXIzID0gaXBhZGRyZXNzLklQdjROZXR3b3JrKCcxLjIuMi42NC8yNicpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmlwdjRfbmV0d29yay5vdmVybGFwcyhvdGhlcikpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5pcHY0X25ldHdvcmsub3ZlcmxhcHMob3RoZXIyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG90aGVyMi5vdmVybGFwcyhvdGhlcjMpKQorCisgICAgZGVmIHRlc3RFbWJlZGRlZElwdjQoc2VsZik6CisgICAgICAgIGlwdjRfc3RyaW5nID0gJzE5Mi4xNjguMC4xJworICAgICAgICBpcHY0ID0gaXBhZGRyZXNzLklQdjRJbnRlcmZhY2UoaXB2NF9zdHJpbmcpCisgICAgICAgIHY0Y29tcGF0X2lwdjYgPSBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgnOjolcycgJSBpcHY0X3N0cmluZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQodjRjb21wYXRfaXB2Ni5pcCksIGludChpcHY0LmlwKSkKKyAgICAgICAgdjRtYXBwZWRfaXB2NiA9IGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKCc6OmZmZmY6JXMnICUgaXB2NF9zdHJpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwodjRtYXBwZWRfaXB2Ni5pcCwgaXB2NC5pcCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoaXBhZGRyZXNzLkFkZHJlc3NWYWx1ZUVycm9yLCBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJzIwMDE6MS4xLjEuMToxLjEuMS4xJykKKworICAgICMgSXNzdWUgNjc6IElQdjYgd2l0aCBlbWJlZGRlZCBJUHY0IGFkZHJlc3Mgbm90IHJlY29nbml6ZWQuCisgICAgZGVmIHRlc3RJUHY2QWRkcmVzc1Rvb0xhcmdlKHNlbGYpOgorICAgICAgICAjIFJGQzQyOTEgMi41LjUuMgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc6OkZGRkY6MTkyLjAuMi4xJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc6OkZGRkY6YzAwMDoyMDEnKSkKKyAgICAgICAgIyBSRkM0MjkxIDIuMiAocGFydCAzKSB4OjpkLmQuZC5kCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXBhZGRyZXNzLmlwX2FkZHJlc3MoJ0ZGRkY6OjE5Mi4wLjIuMScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfYWRkcmVzcygnRkZGRjo6YzAwMDoyMDEnKSkKKworICAgIGRlZiB0ZXN0SVBWZXJzaW9uKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaXB2NF9hZGRyZXNzLnZlcnNpb24sIDQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5pcHY2X2FkZHJlc3MudmVyc2lvbiwgNikKKworICAgIGRlZiB0ZXN0TWF4UHJlZml4TGVuZ3RoKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaXB2NF9pbnRlcmZhY2UubWF4X3ByZWZpeGxlbiwgMzIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5pcHY2X2ludGVyZmFjZS5tYXhfcHJlZml4bGVuLCAxMjgpCisKKyAgICBkZWYgdGVzdFBhY2tlZChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjRfYWRkcmVzcy5wYWNrZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgYidceDAxXHgwMlx4MDNceDA0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcGFkZHJlc3MuSVB2NEludGVyZmFjZSgnMjU1LjI1NC4yNTMuMjUyJykucGFja2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgIGInXHhmZlx4ZmVceGZkXHhmYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5pcHY2X2FkZHJlc3MucGFja2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgIGInXHgyMFx4MDFceDA2XHg1OFx4MDJceDJhXHhjYVx4ZmUnCisgICAgICAgICAgICAgICAgICAgICAgICAgYidceDAyXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXBhZGRyZXNzLklQdjZJbnRlcmZhY2UoJ2ZmZmY6MjozOjQ6ZmZmZjo6JykucGFja2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgIGInXHhmZlx4ZmZceDAwXHgwMlx4MDBceDAzXHgwMFx4MDRceGZmXHhmZicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGInXHgwMCcgKiA2KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKCc6OjE6MDowOjA6MCcpLnBhY2tlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJ1x4MDAnICogNiArIGInXHgwMFx4MDEnICsgYidceDAwJyAqIDgpCisKKyAgICBkZWYgdGVzdElwU3RyRnJvbVByZWZpeGxlbihzZWxmKToKKyAgICAgICAgaXB2NCA9IGlwYWRkcmVzcy5JUHY0SW50ZXJmYWNlKCcxLjIuMy40LzI0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcHY0Ll9pcF9zdHJpbmdfZnJvbV9wcmVmaXgoKSwgJzI1NS4yNTUuMjU1LjAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwdjQuX2lwX3N0cmluZ19mcm9tX3ByZWZpeCgyOCksICcyNTUuMjU1LjI1NS4yNDAnKQorCisgICAgZGVmIHRlc3RJcFR5cGUoc2VsZik6CisgICAgICAgIGlwdjRuZXQgPSBpcGFkZHJlc3MuaXBfbmV0d29yaygnMS4yLjMuNCcpCisgICAgICAgIGlwdjRhZGRyID0gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEuMi4zLjQnKQorICAgICAgICBpcHY2bmV0ID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzo6MS4yLjMuNCcpCisgICAgICAgIGlwdjZhZGRyID0gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzo6MS4yLjMuNCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXBhZGRyZXNzLklQdjROZXR3b3JrLCB0eXBlKGlwdjRuZXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwYWRkcmVzcy5JUHY0QWRkcmVzcywgdHlwZShpcHY0YWRkcikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXBhZGRyZXNzLklQdjZOZXR3b3JrLCB0eXBlKGlwdjZuZXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwYWRkcmVzcy5JUHY2QWRkcmVzcywgdHlwZShpcHY2YWRkcikpCisKKyAgICBkZWYgdGVzdFJlc2VydmVkSXB2NChzZWxmKToKKyAgICAgICAgIyB0ZXN0IG5ldHdvcmtzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlwX2ludGVyZmFjZSgKKyAgICAgICAgICAgICAgICAnMjI0LjEuMS4xLzMxJykuaXNfbXVsdGljYXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygnMjQwLjAuMC4wJykuaXNfbXVsdGljYXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcyNDAuMC4wLjAnKS5pc19yZXNlcnZlZCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9pbnRlcmZhY2UoCisgICAgICAgICAgICAgICAgJzE5Mi4xNjguMS4xLzE3JykuaXNfcHJpdmF0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX25ldHdvcmsoJzE5Mi4xNjkuMC4wJykuaXNfcHJpdmF0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygKKyAgICAgICAgICAgICAgICAnMTAuMjU1LjI1NS4yNTUnKS5pc19wcml2YXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTEuMC4wLjAnKS5pc19wcml2YXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTEuMC4wLjAnKS5pc19yZXNlcnZlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygKKyAgICAgICAgICAgICAgICAnMTcyLjMxLjI1NS4yNTUnKS5pc19wcml2YXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTcyLjMyLjAuMCcpLmlzX3ByaXZhdGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTY5LjI1NC4xLjAvMjQnKS5pc19saW5rX2xvY2FsKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX2ludGVyZmFjZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxNjkuMjU0LjEwMC4yMDAvMjQnKS5pc19saW5rX2xvY2FsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfaW50ZXJmYWNlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzE2OS4yNTUuMTAwLjIwMC8yNCcpLmlzX2xpbmtfbG9jYWwpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfbmV0d29yaygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcxMjcuMTAwLjIwMC4yNTQvMzInKS5pc19sb29wYmFjaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygKKyAgICAgICAgICAgICAgICAnMTI3LjQyLjAuMC8xNicpLmlzX2xvb3BiYWNrKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTI4LjAuMC4wJykuaXNfbG9vcGJhY2spCisKKyAgICAgICAgIyB0ZXN0IGFkZHJlc3NlcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcwLjAuMC4wJykuaXNfdW5zcGVjaWZpZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzIyNC4xLjEuMScpLmlzX211bHRpY2FzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzI0MC4wLjAuMCcpLmlzX211bHRpY2FzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMjQwLjAuMC4xJykuaXNfcmVzZXJ2ZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzIzOS4yNTUuMjU1LjI1NScpLmlzX3Jlc2VydmVkKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzE5Mi4xNjguMS4xJykuaXNfcHJpdmF0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzE5Mi4xNjkuMC4wJykuaXNfcHJpdmF0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygKKyAgICAgICAgICAgICAgICAnMTAuMjU1LjI1NS4yNTUnKS5pc19wcml2YXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMTEuMC4wLjAnKS5pc19wcml2YXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKAorICAgICAgICAgICAgICAgICcxNzIuMzEuMjU1LjI1NScpLmlzX3ByaXZhdGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxNzIuMzIuMC4wJykuaXNfcHJpdmF0ZSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzE2OS4yNTQuMTAwLjIwMCcpLmlzX2xpbmtfbG9jYWwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzE2OS4yNTUuMTAwLjIwMCcpLmlzX2xpbmtfbG9jYWwpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMTI3LjEwMC4yMDAuMjU0JykuaXNfbG9vcGJhY2spCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEyNy40Mi4wLjAnKS5pc19sb29wYmFjaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEyOC4wLjAuMCcpLmlzX2xvb3BiYWNrKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcwLjAuMC4wJykuaXNfdW5zcGVjaWZpZWQpCisKKyAgICBkZWYgdGVzdFJlc2VydmVkSXB2NihzZWxmKToKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCdmZmZmOjonKS5pc19tdWx0aWNhc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlwX25ldHdvcmsoMioqMTI4IC0gMSkuaXNfbXVsdGljYXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCdmZjAwOjonKS5pc19tdWx0aWNhc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCdmZGZmOjonKS5pc19tdWx0aWNhc3QpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygnZmVjZjo6JykuaXNfc2l0ZV9sb2NhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygKKyAgICAgICAgICAgICAgICAnZmVmZjpmZmZmOmZmZmY6ZmZmZjo6JykuaXNfc2l0ZV9sb2NhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX25ldHdvcmsoCisgICAgICAgICAgICAgICAgJ2ZiZjpmZmZmOjonKS5pc19zaXRlX2xvY2FsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygnZmYwMDo6JykuaXNfc2l0ZV9sb2NhbCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCdmYzAwOjonKS5pc19wcml2YXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKAorICAgICAgICAgICAgICAgICdmYzAwOmZmZmY6ZmZmZjpmZmZmOjonKS5pc19wcml2YXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygnZmJmZjpmZmZmOjonKS5pc19wcml2YXRlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfbmV0d29yaygnZmUwMDo6JykuaXNfcHJpdmF0ZSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCdmZWEwOjonKS5pc19saW5rX2xvY2FsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKAorICAgICAgICAgICAgICAgICdmZWJmOmZmZmY6OicpLmlzX2xpbmtfbG9jYWwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKAorICAgICAgICAgICAgICAgICdmZTdmOmZmZmY6OicpLmlzX2xpbmtfbG9jYWwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCdmZWMwOjonKS5pc19saW5rX2xvY2FsKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlwX2ludGVyZmFjZSgnMDowOjowOjAxJykuaXNfbG9vcGJhY2spCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9pbnRlcmZhY2UoJzo6MS8xMjcnKS5pc19sb29wYmFjaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX25ldHdvcmsoJzo6JykuaXNfbG9vcGJhY2spCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCc6OjInKS5pc19sb29wYmFjaykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcwOjowJykuaXNfdW5zcGVjaWZpZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCc6OjEnKS5pc191bnNwZWNpZmllZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX25ldHdvcmsoJzo6LzEyNycpLmlzX3Vuc3BlY2lmaWVkKQorCisgICAgICAgICMgdGVzdCBhZGRyZXNzZXMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygnZmZmZjo6JykuaXNfbXVsdGljYXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKDIqKjEyOCAtIDEpLmlzX211bHRpY2FzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygnZmYwMDo6JykuaXNfbXVsdGljYXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygnZmRmZjo6JykuaXNfbXVsdGljYXN0KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJ2ZlY2Y6OicpLmlzX3NpdGVfbG9jYWwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoCisgICAgICAgICAgICAgICAgJ2ZlZmY6ZmZmZjpmZmZmOmZmZmY6OicpLmlzX3NpdGVfbG9jYWwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKAorICAgICAgICAgICAgICAgICdmYmY6ZmZmZjo6JykuaXNfc2l0ZV9sb2NhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJ2ZmMDA6OicpLmlzX3NpdGVfbG9jYWwpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygnZmMwMDo6JykuaXNfcHJpdmF0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygKKyAgICAgICAgICAgICAgICAnZmMwMDpmZmZmOmZmZmY6ZmZmZjo6JykuaXNfcHJpdmF0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJ2ZiZmY6ZmZmZjo6JykuaXNfcHJpdmF0ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgaXBhZGRyZXNzLmlwX2FkZHJlc3MoJ2ZlMDA6OicpLmlzX3ByaXZhdGUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygnZmVhMDo6JykuaXNfbGlua19sb2NhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygKKyAgICAgICAgICAgICAgICAnZmViZjpmZmZmOjonKS5pc19saW5rX2xvY2FsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygKKyAgICAgICAgICAgICAgICAnZmU3ZjpmZmZmOjonKS5pc19saW5rX2xvY2FsKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZhbHNlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygnZmVjMDo6JykuaXNfbGlua19sb2NhbCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcwOjA6OjA6MDEnKS5pc19sb29wYmFjaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUcnVlLCBpcGFkZHJlc3MuaXBfYWRkcmVzcygnOjoxJykuaXNfbG9vcGJhY2spCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc6OjInKS5pc19sb29wYmFjaykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcwOjowJykuaXNfdW5zcGVjaWZpZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2UsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc6OjEnKS5pc191bnNwZWNpZmllZCkKKworICAgICAgICAjIHNvbWUgZ2VuZXJpYyBJRVRGIHJlc2VydmVkIGFkZHJlc3NlcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxMDA6OicpLmlzX3Jlc2VydmVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUsIGlwYWRkcmVzcy5pcF9uZXR3b3JrKCc0MDAwOjoxLzEyOCcpLmlzX3Jlc2VydmVkKQorCisgICAgZGVmIHRlc3RJcHY0TWFwcGVkKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc6OmZmZmY6MTkyLjE2OC4xLjEnKS5pcHY0X21hcHBlZCwKKyAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMTkyLjE2OC4xLjEnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcGFkZHJlc3MuaXBfYWRkcmVzcygnOjpjMGE4OjEwMScpLmlwdjRfbWFwcGVkLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlwYWRkcmVzcy5pcF9hZGRyZXNzKCc6OmZmZmY6YzBhODoxMDEnKS5pcHY0X21hcHBlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMTkyLjE2OC4xLjEnKSkKKworICAgIGRlZiB0ZXN0QWRkckV4Y2x1ZGUoc2VsZik6CisgICAgICAgIGFkZHIxID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEwLjEuMS4wLzI0JykKKyAgICAgICAgYWRkcjIgPSBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTAuMS4xLjAvMjYnKQorICAgICAgICBhZGRyMyA9IGlwYWRkcmVzcy5pcF9uZXR3b3JrKCcxMC4yLjEuMC8yNCcpCisgICAgICAgIGFkZHI0ID0gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEwLjEuMS4wJykKKyAgICAgICAgYWRkcjUgPSBpcGFkZHJlc3MuaXBfbmV0d29yaygnMjAwMTpkYjg6OjAvMzInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChsaXN0KGFkZHIxLmFkZHJlc3NfZXhjbHVkZShhZGRyMikpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEwLjEuMS42NC8yNicpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuaXBfbmV0d29yaygnMTAuMS4xLjEyOC8yNScpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbGlzdCwgYWRkcjEuYWRkcmVzc19leGNsdWRlKGFkZHIzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsaXN0LCBhZGRyMS5hZGRyZXNzX2V4Y2x1ZGUoYWRkcjQpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxpc3QsIGFkZHIxLmFkZHJlc3NfZXhjbHVkZShhZGRyNSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChhZGRyMS5hZGRyZXNzX2V4Y2x1ZGUoYWRkcjEpKSwgW10pCisKKyAgICBkZWYgdGVzdEhhc2goc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChpcGFkZHJlc3MuaXBfaW50ZXJmYWNlKCcxMC4xLjEuMC8yNCcpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoKGlwYWRkcmVzcy5pcF9pbnRlcmZhY2UoJzEwLjEuMS4wLzI0JykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2goaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEwLjEuMS4wLzI0JykpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2goaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEwLjEuMS4wLzI0JykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2goaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEwLjEuMS4wJykpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2goaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEwLjEuMS4wJykpKQorICAgICAgICAjIGk3MAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2goaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzEuMi4zLjQnKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaChpcGFkZHJlc3MuaXBfYWRkcmVzcygKKyAgICAgICAgICAgICAgICAgICAgaW50KGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcxLjIuMy40JykuX2lwKSkpKQorICAgICAgICBpcDEgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMTAuMS4xLjAnKQorICAgICAgICBpcDIgPSBpcGFkZHJlc3MuaXBfYWRkcmVzcygnMTo6JykKKyAgICAgICAgZHVtbXkgPSB7fQorICAgICAgICBkdW1teVtzZWxmLmlwdjRfYWRkcmVzc10gPSBOb25lCisgICAgICAgIGR1bW15W3NlbGYuaXB2Nl9hZGRyZXNzXSA9IE5vbmUKKyAgICAgICAgZHVtbXlbaXAxXSA9IE5vbmUKKyAgICAgICAgZHVtbXlbaXAyXSA9IE5vbmUKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuaXB2NF9hZGRyZXNzIGluIGR1bW15KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXAyIGluIGR1bW15KQorCisgICAgZGVmIHRlc3RJUEJhc2VzKHNlbGYpOgorICAgICAgICBuZXQgPSBzZWxmLmlwdjRfbmV0d29yaworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcxLjIuMy4wLzI0JywgbmV0LmNvbXByZXNzZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAgICAgbmV0Ll9pcF9pbnRfZnJvbV9wcmVmaXgoMjQpLAorICAgICAgICAgICAgICAgIG5ldC5faXBfaW50X2Zyb21fcHJlZml4KE5vbmUpKQorICAgICAgICBuZXQgPSBzZWxmLmlwdjZfbmV0d29yaworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBuZXQuX3N0cmluZ19mcm9tX2lwX2ludCwgMioqMTI4ICsgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgICAgICBzZWxmLmlwdjZfYWRkcmVzcy5fc3RyaW5nX2Zyb21faXBfaW50KHNlbGYuaXB2Nl9hZGRyZXNzLl9pcCksCisgICAgICAgICAgICAgICAgc2VsZi5pcHY2X2FkZHJlc3MuX3N0cmluZ19mcm9tX2lwX2ludChOb25lKSkKKworICAgIGRlZiB0ZXN0SVB2Nk5ldHdvcmtIZWxwZXJzKHNlbGYpOgorICAgICAgICBuZXQgPSBzZWxmLmlwdjZfbmV0d29yaworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyMDAxOjY1ODoyMmE6Y2FmZTo6LzY0JywgbmV0LndpdGhfcHJlZml4bGVuKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyMDAxOjY1ODoyMmE6Y2FmZTo6L2ZmZmY6ZmZmZjpmZmZmOmZmZmY6OicsCisgICAgICAgICAgICAgICAgICAgICAgICAgbmV0LndpdGhfbmV0bWFzaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMjAwMTo2NTg6MjJhOmNhZmU6Oi86OmZmZmY6ZmZmZjpmZmZmOmZmZmYnLAorICAgICAgICAgICAgICAgICAgICAgICAgIG5ldC53aXRoX2hvc3RtYXNrKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcyMDAxOjY1ODoyMmE6Y2FmZTo6LzY0Jywgc3RyKG5ldCkpCisKKyAgICBkZWYgdGVzdElQdjROZXR3b3JrSGVscGVycyhzZWxmKToKKyAgICAgICAgbmV0ID0gc2VsZi5pcHY0X25ldHdvcmsKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMS4yLjMuMC8yNCcsIG5ldC53aXRoX3ByZWZpeGxlbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMS4yLjMuMC8yNTUuMjU1LjI1NS4wJywgbmV0LndpdGhfbmV0bWFzaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMS4yLjMuMC8wLjAuMC4yNTUnLCBuZXQud2l0aF9ob3N0bWFzaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMS4yLjMuMC8yNCcsIHN0cihuZXQpKQorCisgICAgZGVmIHRlc3RDb3B5Q29uc3RydWN0b3Ioc2VsZik6CisgICAgICAgIGFkZHIxID0gaXBhZGRyZXNzLmlwX25ldHdvcmsoJzEwLjEuMS4wLzI0JykKKyAgICAgICAgYWRkcjIgPSBpcGFkZHJlc3MuaXBfbmV0d29yayhhZGRyMSkKKyAgICAgICAgYWRkcjMgPSBpcGFkZHJlc3MuaXBfaW50ZXJmYWNlKCcyMDAxOjY1ODoyMmE6Y2FmZToyMDA6OjEvNjQnKQorICAgICAgICBhZGRyNCA9IGlwYWRkcmVzcy5pcF9pbnRlcmZhY2UoYWRkcjMpCisgICAgICAgIGFkZHI1ID0gaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjEuMS4xJykKKyAgICAgICAgYWRkcjYgPSBpcGFkZHJlc3MuSVB2NkFkZHJlc3MoJzIwMDE6NjU4OjIyYTpjYWZlOjIwMDo6MScpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyMSwgYWRkcjIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkcjMsIGFkZHI0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHI1LCBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoYWRkcjUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkZHI2LCBpcGFkZHJlc3MuSVB2NkFkZHJlc3MoYWRkcjYpKQorCisgICAgZGVmIHRlc3RDb21wcmVzc0lQdjZBZGRyZXNzKHNlbGYpOgorICAgICAgICB0ZXN0X2FkZHJlc3NlcyA9IHsKKyAgICAgICAgICAgICcxOjI6Mzo0OjU6Njo3OjgnOiAnMToyOjM6NDo1OjY6Nzo4LzEyOCcsCisgICAgICAgICAgICAnMjAwMTowOjA6NDowOjA6MDo4JzogJzIwMDE6MDowOjQ6OjgvMTI4JywKKyAgICAgICAgICAgICcyMDAxOjA6MDo0OjU6Njo3OjgnOiAnMjAwMTo6NDo1OjY6Nzo4LzEyOCcsCisgICAgICAgICAgICAnMjAwMTowOjM6NDo1OjY6Nzo4JzogJzIwMDE6MDozOjQ6NTo2Ojc6OC8xMjgnLAorICAgICAgICAgICAgJzIwMDE6MDozOjQ6NTo2Ojc6OCc6ICcyMDAxOjA6Mzo0OjU6Njo3OjgvMTI4JywKKyAgICAgICAgICAgICcwOjA6MzowOjA6MDowOmZmZmYnOiAnMDowOjM6OmZmZmYvMTI4JywKKyAgICAgICAgICAgICcwOjA6MDo0OjA6MDowOmZmZmYnOiAnOjo0OjA6MDowOmZmZmYvMTI4JywKKyAgICAgICAgICAgICcwOjA6MDowOjU6MDowOmZmZmYnOiAnOjo1OjA6MDpmZmZmLzEyOCcsCisgICAgICAgICAgICAnMTowOjA6NDowOjA6Nzo4JzogJzE6OjQ6MDowOjc6OC8xMjgnLAorICAgICAgICAgICAgJzA6MDowOjA6MDowOjA6MCc6ICc6Oi8xMjgnLAorICAgICAgICAgICAgJzA6MDowOjA6MDowOjA6MC8wJzogJzo6LzAnLAorICAgICAgICAgICAgJzA6MDowOjA6MDowOjA6MSc6ICc6OjEvMTI4JywKKyAgICAgICAgICAgICcyMDAxOjA2NTg6MDIyYTpjYWZlOjAwMDA6MDAwMDowMDAwOjAwMDAvNjYnOgorICAgICAgICAgICAgJzIwMDE6NjU4OjIyYTpjYWZlOjovNjYnLAorICAgICAgICAgICAgJzo6MS4yLjMuNCc6ICc6OjEwMjozMDQvMTI4JywKKyAgICAgICAgICAgICcxOjI6Mzo0OjU6ZmZmZjoxLjIuMy40JzogJzE6MjozOjQ6NTpmZmZmOjEwMjozMDQvMTI4JywKKyAgICAgICAgICAgICc6Ojc6Njo1OjQ6MzoyOjEnOiAnMDo3OjY6NTo0OjM6MjoxLzEyOCcsCisgICAgICAgICAgICAnOjo3OjY6NTo0OjM6MjowJzogJzA6Nzo2OjU6NDozOjI6MC8xMjgnLAorICAgICAgICAgICAgJzc6Njo1OjQ6MzoyOjE6Oic6ICc3OjY6NTo0OjM6MjoxOjAvMTI4JywKKyAgICAgICAgICAgICcwOjY6NTo0OjM6MjoxOjonOiAnMDo2OjU6NDozOjI6MTowLzEyOCcsCisgICAgICAgICAgICB9CisgICAgICAgIGZvciB1bmNvbXByZXNzZWQsIGNvbXByZXNzZWQgaW4gbGlzdCh0ZXN0X2FkZHJlc3Nlcy5pdGVtcygpKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tcHJlc3NlZCwgc3RyKGlwYWRkcmVzcy5JUHY2SW50ZXJmYWNlKAorICAgICAgICAgICAgICAgIHVuY29tcHJlc3NlZCkpKQorCisgICAgZGVmIHRlc3RFeHBsb2RlU2hvcnRIYW5kSXBTdHIoc2VsZik6CisgICAgICAgIGFkZHIxID0gaXBhZGRyZXNzLklQdjZJbnRlcmZhY2UoJzIwMDE6OjEnKQorICAgICAgICBhZGRyMiA9IGlwYWRkcmVzcy5JUHY2QWRkcmVzcygnMjAwMTowOjVlZjU6NzlmZDowOjU5ZDphMGU1OmJhMScpCisgICAgICAgIGFkZHIzID0gaXBhZGRyZXNzLklQdjZOZXR3b3JrKCcyMDAxOjovOTYnKQorICAgICAgICBhZGRyNCA9IGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMTkyLjE2OC4xNzguMScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIwMDE6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMS8xMjgnLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFkZHIxLmV4cGxvZGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcwMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDEvMTI4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NkludGVyZmFjZSgnOjoxLzEyOCcpLmV4cGxvZGVkKQorICAgICAgICAjIGlzc3VlIDc3CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIwMDE6MDAwMDo1ZWY1Ojc5ZmQ6MDAwMDowNTlkOmEwZTU6MGJhMScsCisgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcjIuZXhwbG9kZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzIwMDE6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMC85NicsCisgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcjMuZXhwbG9kZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzE5Mi4xNjguMTc4LjEnLCBhZGRyNC5leHBsb2RlZCkKKworICAgIGRlZiB0ZXN0SW50UmVwcmVzZW50YXRpb24oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTY5MDkwNjAsIGludChzZWxmLmlwdjRfYWRkcmVzcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNDI1NDA2MTY4MjkxODI0Njk0MzM1NDc3NjI0ODIwOTc5NDY2MjUsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHNlbGYuaXB2Nl9hZGRyZXNzKSkKKworICAgIGRlZiB0ZXN0SGV4UmVwcmVzZW50YXRpb24oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGV4KDB4MTAyMDMwNCksCisgICAgICAgICAgICAgICAgICAgICAgICAgaGV4KHNlbGYuaXB2NF9hZGRyZXNzKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhleCgweDIwMDEwNjU4MDIyQUNBRkUwMjAwMDAwMDAwMDAwMDAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBoZXgoc2VsZi5pcHY2X2FkZHJlc3MpKQorCisgICAgZGVmIHRlc3RGb3JjZVZlcnNpb24oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaXBhZGRyZXNzLmlwX25ldHdvcmsoMSkudmVyc2lvbiwgNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcGFkZHJlc3MuSVB2Nk5ldHdvcmsoMSkudmVyc2lvbiwgNikKKworICAgIGRlZiB0ZXN0V2l0aFN0YXIoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHNlbGYuaXB2NF9pbnRlcmZhY2Uud2l0aF9wcmVmaXhsZW4pLCAiMS4yLjMuNC8yNCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHNlbGYuaXB2NF9pbnRlcmZhY2Uud2l0aF9uZXRtYXNrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMS4yLjMuNC8yNTUuMjU1LjI1NS4wIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoc2VsZi5pcHY0X2ludGVyZmFjZS53aXRoX2hvc3RtYXNrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiMS4yLjMuNC8wLjAuMC4yNTUiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHNlbGYuaXB2Nl9pbnRlcmZhY2Uud2l0aF9wcmVmaXhsZW4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICcyMDAxOjY1ODoyMmE6Y2FmZToyMDA6OjEvNjQnKQorICAgICAgICAjIHJmYzM1MTMgc2VjIDIuMyBzYXlzIHRoYXQgaXB2NiBvbmx5IHVzZXMgY2lkciBub3RhdGlvbiBmb3IKKyAgICAgICAgIyBzdWJuZXRzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHNlbGYuaXB2Nl9pbnRlcmZhY2Uud2l0aF9uZXRtYXNrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnMjAwMTo2NTg6MjJhOmNhZmU6MjAwOjoxLzY0JykKKyAgICAgICAgIyB0aGlzIHByb2JhYmx5IGRvbid0IG1ha2UgbXVjaCBzZW5zZSwgYnV0IGl0J3MgaW5jbHVkZWQgZm9yCisgICAgICAgICMgY29tcGF0aWJpbGl0eSB3aXRoIGlwdjQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoc2VsZi5pcHY2X2ludGVyZmFjZS53aXRoX2hvc3RtYXNrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnMjAwMTo2NTg6MjJhOmNhZmU6MjAwOjoxLzo6ZmZmZjpmZmZmOmZmZmY6ZmZmZicpCisKKyAgICBkZWYgdGVzdE5ldHdvcmtFbGVtZW50Q2FjaGluZyhzZWxmKToKKyAgICAgICAgIyBWNCAtIG1ha2Ugc3VyZSB3ZSdyZSBlbXB0eQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCduZXR3b3JrX2FkZHJlc3MnIGluIHNlbGYuaXB2NF9uZXR3b3JrLl9jYWNoZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnYnJvYWRjYXN0X2FkZHJlc3MnIGluIHNlbGYuaXB2NF9uZXR3b3JrLl9jYWNoZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnaG9zdG1hc2snIGluIHNlbGYuaXB2NF9uZXR3b3JrLl9jYWNoZSkKKworICAgICAgICAjIFY0IC0gcG9wdWxhdGUgYW5kIHRlc3QKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjRfbmV0d29yay5uZXR3b3JrX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjIuMy4wJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5pcHY0X25ldHdvcmsuYnJvYWRjYXN0X2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjRBZGRyZXNzKCcxLjIuMy4yNTUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjRfbmV0d29yay5ob3N0bWFzaywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzAuMC4wLjI1NScpKQorCisgICAgICAgICMgVjQgLSBjaGVjayB3ZSdyZSBjYWNoZWQKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdicm9hZGNhc3RfYWRkcmVzcycgaW4gc2VsZi5pcHY0X25ldHdvcmsuX2NhY2hlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2hvc3RtYXNrJyBpbiBzZWxmLmlwdjRfbmV0d29yay5fY2FjaGUpCisKKyAgICAgICAgIyBWNiAtIG1ha2Ugc3VyZSB3ZSdyZSBlbXB0eQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdicm9hZGNhc3RfYWRkcmVzcycgaW4gc2VsZi5pcHY2X25ldHdvcmsuX2NhY2hlKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdob3N0bWFzaycgaW4gc2VsZi5pcHY2X25ldHdvcmsuX2NhY2hlKQorCisgICAgICAgICMgVjYgLSBwb3B1bGF0ZSBhbmQgdGVzdAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaXB2Nl9uZXR3b3JrLm5ldHdvcmtfYWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NkFkZHJlc3MoJzIwMDE6NjU4OjIyYTpjYWZlOjonKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjZfaW50ZXJmYWNlLm5ldHdvcmsubmV0d29ya19hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2QWRkcmVzcygnMjAwMTo2NTg6MjJhOmNhZmU6OicpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBzZWxmLmlwdjZfbmV0d29yay5icm9hZGNhc3RfYWRkcmVzcywKKyAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2QWRkcmVzcygnMjAwMTo2NTg6MjJhOmNhZmU6ZmZmZjpmZmZmOmZmZmY6ZmZmZicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaXB2Nl9uZXR3b3JrLmhvc3RtYXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5JUHY2QWRkcmVzcygnOjpmZmZmOmZmZmY6ZmZmZjpmZmZmJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBzZWxmLmlwdjZfaW50ZXJmYWNlLm5ldHdvcmsuYnJvYWRjYXN0X2FkZHJlc3MsCisgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NkFkZHJlc3MoJzIwMDE6NjU4OjIyYTpjYWZlOmZmZmY6ZmZmZjpmZmZmOmZmZmYnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmlwdjZfaW50ZXJmYWNlLm5ldHdvcmsuaG9zdG1hc2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgaXBhZGRyZXNzLklQdjZBZGRyZXNzKCc6OmZmZmY6ZmZmZjpmZmZmOmZmZmYnKSkKKworICAgICAgICAjIFY2IC0gY2hlY2sgd2UncmUgY2FjaGVkCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnYnJvYWRjYXN0X2FkZHJlc3MnIGluIHNlbGYuaXB2Nl9uZXR3b3JrLl9jYWNoZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdob3N0bWFzaycgaW4gc2VsZi5pcHY2X25ldHdvcmsuX2NhY2hlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoCisgICAgICAgICAgICAgICAgJ2Jyb2FkY2FzdF9hZGRyZXNzJyBpbiBzZWxmLmlwdjZfaW50ZXJmYWNlLm5ldHdvcmsuX2NhY2hlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2hvc3RtYXNrJyBpbiBzZWxmLmlwdjZfaW50ZXJmYWNlLm5ldHdvcmsuX2NhY2hlKQorCisgICAgZGVmIHRlc3RUZXJlZG8oc2VsZik6CisgICAgICAgICMgc3RvbGVuIGZyb20gd2lraXBlZGlhCisgICAgICAgIHNlcnZlciA9IGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnNjUuNTQuMjI3LjEyMCcpCisgICAgICAgIGNsaWVudCA9IGlwYWRkcmVzcy5JUHY0QWRkcmVzcygnMTkyLjAuMi40NScpCisgICAgICAgIHRlcmVkb19hZGRyID0gJzIwMDE6MDAwMDo0MTM2OmUzNzg6ODAwMDo2M2JmOjNmZmY6ZmRkMicKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoc2VydmVyLCBjbGllbnQpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlwYWRkcmVzcy5pcF9hZGRyZXNzKHRlcmVkb19hZGRyKS50ZXJlZG8pCisgICAgICAgIGJhZF9hZGRyID0gJzIwMDA6OjQxMzY6ZTM3ODo4MDAwOjYzYmY6M2ZmZjpmZGQyJworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlwYWRkcmVzcy5pcF9hZGRyZXNzKGJhZF9hZGRyKS50ZXJlZG8pCisgICAgICAgIGJhZF9hZGRyID0gJzIwMDE6MDAwMTo0MTM2OmUzNzg6ODAwMDo2M2JmOjNmZmY6ZmRkMicKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpcGFkZHJlc3MuaXBfYWRkcmVzcyhiYWRfYWRkcikudGVyZWRvKQorCisgICAgICAgICMgaTc3CisgICAgICAgIHRlcmVkb19hZGRyID0gaXBhZGRyZXNzLklQdjZBZGRyZXNzKCcyMDAxOjA6NWVmNTo3OWZkOjA6NTlkOmEwZTU6YmExJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoaXBhZGRyZXNzLklQdjRBZGRyZXNzKCc5NC4yNDUuMTIxLjI1MycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzk1LjI2LjI0NC45NCcpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZXJlZG9fYWRkci50ZXJlZG8pCisKKyAgICBkZWYgdGVzdHNpeHRvZm91cihzZWxmKToKKyAgICAgICAgc2l4dG9mb3VyYWRkciA9IGlwYWRkcmVzcy5pcF9hZGRyZXNzKCcyMDAyOmFjMWQ6MmQ2NDo6MScpCisgICAgICAgIGJhZF9hZGRyID0gaXBhZGRyZXNzLmlwX2FkZHJlc3MoJzIwMDA6YWMxZDoyZDY0OjoxJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpcGFkZHJlc3MuSVB2NEFkZHJlc3MoJzE3Mi4yOS40NS4xMDAnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzaXh0b2ZvdXJhZGRyLnNpeHRvZm91cikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShiYWRfYWRkci5zaXh0b2ZvdXIpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfaXRlci5weSBiL0xpYi90ZXN0L3Rlc3RfaXRlci5weQppbmRleCBlNDI0MzAzLi5iMmYzZTY1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2l0ZXIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9pdGVyLnB5CkBAIC0yLDYgKzIsOCBAQAogCiBpbXBvcnQgdW5pdHRlc3QKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBydW5fdW5pdHRlc3QsIFRFU1RGTiwgdW5saW5rLCBjcHl0aG9uX29ubHkKK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCBjb2xsZWN0aW9ucy5hYmMKIAogIyBUZXN0IHJlc3VsdCBvZiB0cmlwbGUgbG9vcCAodG9vIGJpZyB0byBpbmxpbmUpCiBUUklQTEVUUyA9IFsoMCwgMCwgMCksICgwLCAwLCAxKSwgKDAsIDAsIDIpLApAQCAtMjgsNiArMzAsOCBAQAogICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgogICAgICAgICBzZWxmLmkgPSByZXMgKyAxCiAgICAgICAgIHJldHVybiByZXMKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmCiAKIGNsYXNzIEl0ZXJhdGluZ1NlcXVlbmNlQ2xhc3M6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG4pOgpAQCAtNDksNyArNTMsOSBAQAogY2xhc3MgVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgIyBIZWxwZXIgdG8gY2hlY2sgdGhhdCBhbiBpdGVyYXRvciByZXR1cm5zIGEgZ2l2ZW4gc2VxdWVuY2UKLSAgICBkZWYgY2hlY2tfaXRlcmF0b3Ioc2VsZiwgaXQsIHNlcSk6CisgICAgZGVmIGNoZWNrX2l0ZXJhdG9yKHNlbGYsIGl0LCBzZXEsIHBpY2tsZT1UcnVlKToKKyAgICAgICAgaWYgcGlja2xlOgorICAgICAgICAgICAgc2VsZi5jaGVja19waWNrbGUoaXQsIHNlcSkKICAgICAgICAgcmVzID0gW10KICAgICAgICAgd2hpbGUgMToKICAgICAgICAgICAgIHRyeToKQEAgLTYwLDEyICs2NiwzMyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgc2VxKQogCiAgICAgIyBIZWxwZXIgdG8gY2hlY2sgdGhhdCBhIGZvciBsb29wIGdlbmVyYXRlcyBhIGdpdmVuIHNlcXVlbmNlCi0gICAgZGVmIGNoZWNrX2Zvcl9sb29wKHNlbGYsIGV4cHIsIHNlcSk6CisgICAgZGVmIGNoZWNrX2Zvcl9sb29wKHNlbGYsIGV4cHIsIHNlcSwgcGlja2xlPVRydWUpOgorICAgICAgICBpZiBwaWNrbGU6CisgICAgICAgICAgICBzZWxmLmNoZWNrX3BpY2tsZShpdGVyKGV4cHIpLCBzZXEpCiAgICAgICAgIHJlcyA9IFtdCiAgICAgICAgIGZvciB2YWwgaW4gZXhwcjoKICAgICAgICAgICAgIHJlcy5hcHBlbmQodmFsKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgc2VxKQogCisgICAgIyBIZWxwZXIgdG8gY2hlY2sgcGlja2xhYmlsaXR5CisgICAgZGVmIGNoZWNrX3BpY2tsZShzZWxmLCBpdG9yZywgc2VxKToKKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdG9yZykKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgIyBDYW5ub3QgYXNzZXJ0IHR5cGUgZXF1YWxpdHkgYmVjYXVzZSBkaWN0IGl0ZXJhdG9ycyB1bnBpY2tsZSBhcyBsaXN0CisgICAgICAgICMgaXRlcmF0b3JzLgorICAgICAgICAjIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShpdG9yZyksIHR5cGUoaXQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShpdCwgY29sbGVjdGlvbnMuYWJjLkl0ZXJhdG9yKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0KSwgc2VxKQorCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG5leHQoaXQpCisgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXQpCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpdCksIHNlcVsxOl0pCisKICAgICAjIFRlc3QgYmFzaWMgdXNlIG9mIGl0ZXIoKSBmdW5jdGlvbgogICAgIGRlZiB0ZXN0X2l0ZXJfYmFzaWMoc2VsZik6CiAgICAgICAgIHNlbGYuY2hlY2tfaXRlcmF0b3IoaXRlcihyYW5nZSgxMCkpLCBsaXN0KHJhbmdlKDEwKSkpCkBAIC0xMzgsNyArMTY1LDcgQEAKICAgICAgICAgICAgICAgICBpZiBpID4gMTAwOgogICAgICAgICAgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yICMgRW1lcmdlbmN5IHN0b3AKICAgICAgICAgICAgICAgICByZXR1cm4gaQotICAgICAgICBzZWxmLmNoZWNrX2l0ZXJhdG9yKGl0ZXIoQygpLCAxMCksIGxpc3QocmFuZ2UoMTApKSkKKyAgICAgICAgc2VsZi5jaGVja19pdGVyYXRvcihpdGVyKEMoKSwgMTApLCBsaXN0KHJhbmdlKDEwKSksIHBpY2tsZT1GYWxzZSkKIAogICAgICMgVGVzdCB0d28tYXJndW1lbnQgaXRlcigpIHdpdGggZnVuY3Rpb24KICAgICBkZWYgdGVzdF9pdGVyX2Z1bmN0aW9uKHNlbGYpOgpAQCAtMTQ2LDcgKzE3Myw3IEBACiAgICAgICAgICAgICBpID0gc3RhdGVbMF0KICAgICAgICAgICAgIHN0YXRlWzBdID0gaSsxCiAgICAgICAgICAgICByZXR1cm4gaQotICAgICAgICBzZWxmLmNoZWNrX2l0ZXJhdG9yKGl0ZXIoc3BhbSwgMTApLCBsaXN0KHJhbmdlKDEwKSkpCisgICAgICAgIHNlbGYuY2hlY2tfaXRlcmF0b3IoaXRlcihzcGFtLCAxMCksIGxpc3QocmFuZ2UoMTApKSwgcGlja2xlPUZhbHNlKQogCiAgICAgIyBUZXN0IHR3by1hcmd1bWVudCBpdGVyKCkgd2l0aCBmdW5jdGlvbiB0aGF0IHJhaXNlcyBTdG9wSXRlcmF0aW9uCiAgICAgZGVmIHRlc3RfaXRlcl9mdW5jdGlvbl9zdG9wKHNlbGYpOgpAQCAtMTU2LDcgKzE4Myw3IEBACiAgICAgICAgICAgICAgICAgcmFpc2UgU3RvcEl0ZXJhdGlvbgogICAgICAgICAgICAgc3RhdGVbMF0gPSBpKzEKICAgICAgICAgICAgIHJldHVybiBpCi0gICAgICAgIHNlbGYuY2hlY2tfaXRlcmF0b3IoaXRlcihzcGFtLCAyMCksIGxpc3QocmFuZ2UoMTApKSkKKyAgICAgICAgc2VsZi5jaGVja19pdGVyYXRvcihpdGVyKHNwYW0sIDIwKSwgbGlzdChyYW5nZSgxMCkpLCBwaWNrbGU9RmFsc2UpCiAKICAgICAjIFRlc3QgZXhjZXB0aW9uIHByb3BhZ2F0aW9uIHRocm91Z2ggZnVuY3Rpb24gaXRlcmF0b3IKICAgICBkZWYgdGVzdF9leGNlcHRpb25fZnVuY3Rpb24oc2VsZik6CkBAIC0xOTgsNyArMjI1LDcgQEAKICAgICAgICAgICAgICAgICBpZiBpID09IDEwOgogICAgICAgICAgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCiAgICAgICAgICAgICAgICAgcmV0dXJuIFNlcXVlbmNlQ2xhc3MuX19nZXRpdGVtX18oc2VsZiwgaSkKLSAgICAgICAgc2VsZi5jaGVja19mb3JfbG9vcChNeVNlcXVlbmNlQ2xhc3MoMjApLCBsaXN0KHJhbmdlKDEwKSkpCisgICAgICAgIHNlbGYuY2hlY2tfZm9yX2xvb3AoTXlTZXF1ZW5jZUNsYXNzKDIwKSwgbGlzdChyYW5nZSgxMCkpLCBwaWNrbGU9RmFsc2UpCiAKICAgICAjIFRlc3QgYSBiaWcgcmFuZ2UKICAgICBkZWYgdGVzdF9pdGVyX2JpZ19yYW5nZShzZWxmKToKQEAgLTIzNyw4ICsyNjQsOCBAQAogICAgICAgICAgICAgZi5jbG9zZSgpCiAgICAgICAgIGYgPSBvcGVuKFRFU1RGTiwgInIiKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmNoZWNrX2Zvcl9sb29wKGYsIFsiMFxuIiwgIjFcbiIsICIyXG4iLCAiM1xuIiwgIjRcbiJdKQotICAgICAgICAgICAgc2VsZi5jaGVja19mb3JfbG9vcChmLCBbXSkKKyAgICAgICAgICAgIHNlbGYuY2hlY2tfZm9yX2xvb3AoZiwgWyIwXG4iLCAiMVxuIiwgIjJcbiIsICIzXG4iLCAiNFxuIl0sIHBpY2tsZT1GYWxzZSkKKyAgICAgICAgICAgIHNlbGYuY2hlY2tfZm9yX2xvb3AoZiwgW10sIHBpY2tsZT1GYWxzZSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIGYuY2xvc2UoKQogICAgICAgICAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9pdGVydG9vbHMucHkgYi9MaWIvdGVzdC90ZXN0X2l0ZXJ0b29scy5weQppbmRleCA4Y2RjNTk3Li45MGU4NWE5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2l0ZXJ0b29scy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2l0ZXJ0b29scy5weQpAQCAtMzcsNiArMzcsMTMgQEAKICAgICAnVGVzdCBwcmVkaWNhdGUnCiAgICAgcmV0dXJuIHglMj09MQogCitkZWYgdHVwbGVpemUoKmFyZ3MpOgorICAgIHJldHVybiBhcmdzCisKK2RlZiBpcmFuZ2Uobik6CisgICAgZm9yIGkgaW4gcmFuZ2Uobik6CisgICAgICAgIHlpZWxkIGkKKwogY2xhc3MgU3RvcE5vdzoKICAgICAnQ2xhc3MgZW11bGF0aW5nIGFuIGVtcHR5IGl0ZXJhYmxlLicKICAgICBkZWYgX19pdGVyX18oc2VsZik6CkBAIC01NSw4ICs2Miw1OSBAQAogICAgICdGYWN0b3JpYWwnCiAgICAgcmV0dXJuIHByb2QocmFuZ2UoMSwgbisxKSkKIAorIyByb290IGxldmVsIG1ldGhvZHMgZm9yIHBpY2tsaW5nIGFiaWxpdHkKK2RlZiB0ZXN0UihyKToKKyAgICByZXR1cm4gclswXQorCitkZWYgdGVzdFIyKHIpOgorICAgIHJldHVybiByWzJdCisKK2RlZiB1bmRlcnRlbih4KToKKyAgICByZXR1cm4geDwxMAorCiBjbGFzcyBUZXN0QmFzaWNPcHModW5pdHRlc3QuVGVzdENhc2UpOgogCisgICAgZGVmIHBpY2tsZXRlc3Qoc2VsZiwgaXQsIHN0b3A9NCwgdGFrZT0xLCBjb21wYXJlPU5vbmUpOgorICAgICAgICAiIiJUZXN0IHRoYXQgYW4gaXRlcmF0b3IgaXMgdGhlIHNhbWUgYWZ0ZXIgcGlja2xpbmcsIGFsc28gd2hlbiBwYXJ0LWNvbnN1bWVkIiIiCisgICAgICAgIGRlZiBleHBhbmQoaXQsIGk9MCk6CisgICAgICAgICAgICAjIFJlY3Vyc2l2ZWx5IGV4cGFuZCBpdGVyYWJsZXMsIHdpdGhpbiBzZW5zaWJsZSBib3VuZHMKKyAgICAgICAgICAgIGlmIGkgPiAxMDoKKyAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImluZmluaXRlIHJlY3Vyc2lvbiBlbmNvdW50ZXJlZCIpCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGl0LCBzdHIpOgorICAgICAgICAgICAgICAgIHJldHVybiBpdAorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGwgPSBsaXN0KGlzbGljZShpdCwgc3RvcCkpCisgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgIHJldHVybiBpdCAjIGNhbid0IGV4cGFuZCBpdAorICAgICAgICAgICAgcmV0dXJuIFtleHBhbmQoZSwgaSsxKSBmb3IgZSBpbiBsXQorCisgICAgICAgICMgVGVzdCB0aGUgaW5pdGlhbCBjb3B5IGFnYWluc3QgdGhlIG9yaWdpbmFsCisgICAgICAgIGR1bXAgPSBwaWNrbGUuZHVtcHMoaXQpCisgICAgICAgIGkyID0gcGlja2xlLmxvYWRzKGR1bXApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShpdCksIHR5cGUoaTIpKQorICAgICAgICBhLCBiID0gZXhwYW5kKGl0KSwgZXhwYW5kKGkyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEsIGIpCisgICAgICAgIGlmIGNvbXBhcmU6CisgICAgICAgICAgICBjID0gZXhwYW5kKGNvbXBhcmUpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEsIGMpCisKKyAgICAgICAgIyBUYWtlIGZyb20gdGhlIGNvcHksIGFuZCBjcmVhdGUgYW5vdGhlciBjb3B5IGFuZCBjb21wYXJlIHRoZW0uCisgICAgICAgIGkzID0gcGlja2xlLmxvYWRzKGR1bXApCisgICAgICAgIHRvb2sgPSAwCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHRha2UpOgorICAgICAgICAgICAgICAgIG5leHQoaTMpCisgICAgICAgICAgICAgICAgdG9vayArPSAxCisgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgcGFzcyAjaW4gY2FzZSB0aGVyZSBpcyBsZXNzIGRhdGEgdGhhbiAndGFrZScKKyAgICAgICAgZHVtcCA9IHBpY2tsZS5kdW1wcyhpMykKKyAgICAgICAgaTQgPSBwaWNrbGUubG9hZHMoZHVtcCkKKyAgICAgICAgYSwgYiA9IGV4cGFuZChpMyksIGV4cGFuZChpNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLCBiKQorICAgICAgICBpZiBjb21wYXJlOgorICAgICAgICAgICAgYyA9IGV4cGFuZChjb21wYXJlW3Rvb2s6XSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYSwgYyk7CisKICAgICBkZWYgdGVzdF9hY2N1bXVsYXRlKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoYWNjdW11bGF0ZShyYW5nZSgxMCkpKSwgICAgICAgICAgICAgICAjIG9uZSBwb3NpdGlvbmFsIGFyZwogICAgICAgICAgICAgICAgICAgICAgICAgICBbMCwgMSwgMywgNiwgMTAsIDE1LCAyMSwgMjgsIDM2LCA0NV0pCkBAIC02OSwxMSArMTI3LDIyIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChhY2N1bXVsYXRlKCdhYmMnKSksIFsnYScsICdhYicsICdhYmMnXSkgICAjIHdvcmtzIHdpdGggbm9uLW51bWVyaWMKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGFjY3VtdWxhdGUoW10pKSwgW10pICAgICAgICAgICAgICAgICAgIyBlbXB0eSBpdGVyYWJsZQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoYWNjdW11bGF0ZShbN10pKSwgWzddKSAgICAgICAgICAgICAgICAjIGl0ZXJhYmxlIG9mIGxlbmd0aCBvbmUKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBhY2N1bXVsYXRlLCByYW5nZSgxMCksIDUpICAgICAgIyB0b28gbWFueSBhcmdzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgYWNjdW11bGF0ZSwgcmFuZ2UoMTApLCA1LCA2KSAgICMgdG9vIG1hbnkgYXJncwogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGFjY3VtdWxhdGUpICAgICAgICAgICAgICAgICAgICAjIHRvbyBmZXcgYXJncwogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGFjY3VtdWxhdGUsIHg9cmFuZ2UoMTApKSAgICAgICAjIHVuZXhwZWN0ZWQga3dkIGFyZwogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxpc3QsIGFjY3VtdWxhdGUoWzEsIFtdXSkpICAgICAjIGFyZ3MgdGhhdCBkb24ndCBhZGQKIAorICAgICAgICBzID0gWzIsIDgsIDksIDUsIDcsIDAsIDMsIDQsIDEsIDZdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChhY2N1bXVsYXRlKHMsIG1pbikpLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsyLCAyLCAyLCAyLCAyLCAwLCAwLCAwLCAwLCAwXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGFjY3VtdWxhdGUocywgbWF4KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgWzIsIDgsIDksIDksIDksIDksIDksIDksIDksIDldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoYWNjdW11bGF0ZShzLCBvcGVyYXRvci5tdWwpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbMiwgMTYsIDE0NCwgNzIwLCA1MDQwLCAwLCAwLCAwLCAwLCAwXSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgbGlzdChhY2N1bXVsYXRlKHMsIGNocikpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHVuYXJ5LW9wZXJhdGlvbgorICAgICAgICBzZWxmLnBpY2tsZXRlc3QoYWNjdW11bGF0ZShyYW5nZSgxMCkpKSAgICAgICAgICAgICAgICAgICAgICAjIHRlc3QgcGlja2xpbmcKKwogICAgIGRlZiB0ZXN0X2NoYWluKHNlbGYpOgogCiAgICAgICAgIGRlZiBjaGFpbjIoKml0ZXJhYmxlcyk6CkBAIC05NiwxNCArMTY1LDQzIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFrZSg0LCBjaGFpbi5mcm9tX2l0ZXJhYmxlKFsnYWJjJywgJ2RlZiddKSksIGxpc3QoJ2FiY2QnKSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsaXN0LCBjaGFpbi5mcm9tX2l0ZXJhYmxlKFsyLCAzXSkpCiAKKyAgICBkZWYgdGVzdF9jaGFpbl9yZWR1Y2libGUoc2VsZik6CisgICAgICAgIG9wZXJhdG9ycyA9IFtjb3B5LmRlZXBjb3B5LAorICAgICAgICAgICAgICAgICAgICAgbGFtYmRhIHM6IHBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMocykpXQorICAgICAgICBmb3Igb3BlciBpbiBvcGVyYXRvcnM6CisgICAgICAgICAgICBpdCA9IGNoYWluKCdhYmMnLCAnZGVmJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChvcGVyKGl0KSksIGxpc3QoJ2FiY2RlZicpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXh0KGl0KSwgJ2EnKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG9wZXIoaXQpKSwgbGlzdCgnYmNkZWYnKSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG9wZXIoY2hhaW4oJycpKSksIFtdKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YWtlKDQsIG9wZXIoY2hhaW4oJ2FiYycsICdkZWYnKSkpLCBsaXN0KCdhYmNkJykpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxpc3QsIG9wZXIoY2hhaW4oMiwgMykpKQorICAgICAgICBzZWxmLnBpY2tsZXRlc3QoY2hhaW4oJ2FiYycsICdkZWYnKSwgY29tcGFyZT1saXN0KCdhYmNkZWYnKSkKKwogICAgIGRlZiB0ZXN0X2NvbWJpbmF0aW9ucyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjb21iaW5hdGlvbnMsICdhYmMnKSAgICAgICAjIG1pc3NpbmcgciBhcmd1bWVudAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGNvbWJpbmF0aW9ucywgJ2FiYycsIDIsIDEpICMgdG9vIG1hbnkgYXJndW1lbnRzCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY29tYmluYXRpb25zLCBOb25lKSAgICAgICAgIyBwb29sIGlzIG5vdCBpdGVyYWJsZQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjb21iaW5hdGlvbnMsICdhYmMnLCAtMikgICMgciBpcyBuZWdhdGl2ZQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29tYmluYXRpb25zKCdhYmMnLCAzMikpLCBbXSkgICAgICMgciA+IG4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvbWJpbmF0aW9ucyhyYW5nZSg0KSwgMykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoMCwxLDIpLCAoMCwxLDMpLCAoMCwyLDMpLCAoMSwyLDMpXSkKKworICAgICAgICBmb3Igb3AgaW4gKGxhbWJkYSBhOmEsIGxhbWJkYSBhOnBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMoYSkpKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChvcChjb21iaW5hdGlvbnMoJ2FiYycsIDMyKSkpLCBbXSkgICAgICMgciA+IG4KKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG9wKGNvbWJpbmF0aW9ucygnQUJDRCcsIDIpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ0EnLCdCJyksICgnQScsJ0MnKSwgKCdBJywnRCcpLCAoJ0InLCdDJyksICgnQicsJ0QnKSwgKCdDJywnRCcpXSkKKyAgICAgICAgICAgIHRlc3RJbnRlcm1lZGlhdGUgPSBjb21iaW5hdGlvbnMoJ0FCQ0QnLCAyKQorICAgICAgICAgICAgbmV4dCh0ZXN0SW50ZXJtZWRpYXRlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG9wKHRlc3RJbnRlcm1lZGlhdGUpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWygnQScsJ0MnKSwgKCdBJywnRCcpLCAoJ0InLCdDJyksICgnQicsJ0QnKSwgKCdDJywnRCcpXSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG9wKGNvbWJpbmF0aW9ucyhyYW5nZSg0KSwgMykpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWygwLDEsMiksICgwLDEsMyksICgwLDIsMyksICgxLDIsMyldKQorICAgICAgICAgICAgdGVzdEludGVybWVkaWF0ZSA9IGNvbWJpbmF0aW9ucyhyYW5nZSg0KSwgMykKKyAgICAgICAgICAgIG5leHQodGVzdEludGVybWVkaWF0ZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChvcCh0ZXN0SW50ZXJtZWRpYXRlKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoMCwxLDMpLCAoMCwyLDMpLCAoMSwyLDMpXSkKKwogCiAgICAgICAgIGRlZiBjb21iaW5hdGlvbnMxKGl0ZXJhYmxlLCByKToKICAgICAgICAgICAgICdQdXJlIHB5dGhvbiB2ZXJzaW9uIHNob3duIGluIHRoZSBkb2NzJwpAQCAtMTU4LDcgKzI1NiwxMSBAQAogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBsaXN0KGNvbWJpbmF0aW9uczIodmFsdWVzLCByKSkpICMgbWF0Y2hlcyBzZWNvbmQgcHVyZSBweXRob24gdmVyc2lvbgogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBsaXN0KGNvbWJpbmF0aW9uczModmFsdWVzLCByKSkpICMgbWF0Y2hlcyBzZWNvbmQgcHVyZSBweXRob24gdmVyc2lvbgogCisgICAgICAgICAgICAgICAgc2VsZi5waWNrbGV0ZXN0KGNvbWJpbmF0aW9ucyh2YWx1ZXMsIHIpKSAgICAgICAgICAgICAgICAgIyB0ZXN0IHBpY2tsaW5nCisKICAgICAgICAgIyBUZXN0IGltcGxlbWVudGF0aW9uIGRldGFpbDogIHR1cGxlIHJlLXVzZQorICAgIEBzdXBwb3J0LmltcGxfZGV0YWlsKCJ0dXBsZSByZXVzZSBpcyBzcGVjaWZpYyB0byBDUHl0aG9uIikKKyAgICBkZWYgdGVzdF9jb21iaW5hdGlvbnNfdHVwbGVfcmV1c2Uoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNldChtYXAoaWQsIGNvbWJpbmF0aW9ucygnYWJjZGUnLCAzKSkpKSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChsZW4oc2V0KG1hcChpZCwgbGlzdChjb21iaW5hdGlvbnMoJ2FiY2RlJywgMykpKSkpLCAxKQogCkBAIC0xNjgsOCArMjcwLDE1IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY3dyLCAnYWJjJywgMiwgMSkgIyB0b28gbWFueSBhcmd1bWVudHMKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjd3IsIE5vbmUpICAgICAgICAjIHBvb2wgaXMgbm90IGl0ZXJhYmxlCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGN3ciwgJ2FiYycsIC0yKSAgIyByIGlzIG5lZ2F0aXZlCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjd3IoJ0FCQycsIDIpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBbKCdBJywnQScpLCAoJ0EnLCdCJyksICgnQScsJ0MnKSwgKCdCJywnQicpLCAoJ0InLCdDJyksICgnQycsJ0MnKV0pCisKKyAgICAgICAgZm9yIG9wIGluIChsYW1iZGEgYTphLCBsYW1iZGEgYTpwaWNrbGUubG9hZHMocGlja2xlLmR1bXBzKGEpKSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qob3AoY3dyKCdBQkMnLCAyKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdBJywnQScpLCAoJ0EnLCdCJyksICgnQScsJ0MnKSwgKCdCJywnQicpLCAoJ0InLCdDJyksICgnQycsJ0MnKV0pCisgICAgICAgICAgICB0ZXN0SW50ZXJtZWRpYXRlID0gY3dyKCdBQkMnLCAyKQorICAgICAgICAgICAgbmV4dCh0ZXN0SW50ZXJtZWRpYXRlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG9wKHRlc3RJbnRlcm1lZGlhdGUpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWygnQScsJ0InKSwgKCdBJywnQycpLCAoJ0InLCdCJyksICgnQicsJ0MnKSwgKCdDJywnQycpXSkKKwogCiAgICAgICAgIGRlZiBjd3IxKGl0ZXJhYmxlLCByKToKICAgICAgICAgICAgICdQdXJlIHB5dGhvbiB2ZXJzaW9uIHNob3duIGluIHRoZSBkb2NzJwpAQCAtMjI4LDcgKzMzNywxMyBAQAogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBsaXN0KGN3cjEodmFsdWVzLCByKSkpICAgICAgICAgIyBtYXRjaGVzIGZpcnN0IHB1cmUgcHl0aG9uIHZlcnNpb24KICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgbGlzdChjd3IyKHZhbHVlcywgcikpKSAgICAgICAgICMgbWF0Y2hlcyBzZWNvbmQgcHVyZSBweXRob24gdmVyc2lvbgogCisgICAgICAgICAgICAgICAgc2VsZi5waWNrbGV0ZXN0KGN3cih2YWx1ZXMscikpICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRlc3QgcGlja2xpbmcKKwogICAgICAgICAjIFRlc3QgaW1wbGVtZW50YXRpb24gZGV0YWlsOiAgdHVwbGUgcmUtdXNlCisKKyAgICBAc3VwcG9ydC5pbXBsX2RldGFpbCgidHVwbGUgcmV1c2UgaXMgc3BlY2lmaWMgdG8gQ1B5dGhvbiIpCisgICAgZGVmIHRlc3RfY29tYmluYXRpb25zX3dpdGhfcmVwbGFjZW1lbnRfdHVwbGVfcmV1c2Uoc2VsZik6CisgICAgICAgIGN3ciA9IGNvbWJpbmF0aW9uc193aXRoX3JlcGxhY2VtZW50CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNldChtYXAoaWQsIGN3cignYWJjZGUnLCAzKSkpKSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChsZW4oc2V0KG1hcChpZCwgbGlzdChjd3IoJ2FiY2RlJywgMykpKSkpLCAxKQogCkBAIC0yOTIsNyArNDA3LDEwIEBACiAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBsaXN0KHBlcm11dGF0aW9ucyh2YWx1ZXMsIE5vbmUpKSkgIyB0ZXN0IHIgYXMgTm9uZQogICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgbGlzdChwZXJtdXRhdGlvbnModmFsdWVzKSkpICAgICAgICMgdGVzdCBkZWZhdWx0IHIKIAotICAgICAgICAjIFRlc3QgaW1wbGVtZW50YXRpb24gZGV0YWlsOiAgdHVwbGUgcmUtdXNlCisgICAgICAgICAgICAgICAgc2VsZi5waWNrbGV0ZXN0KHBlcm11dGF0aW9ucyh2YWx1ZXMsIHIpKSAgICAgICAgICAgICAgICAjIHRlc3QgcGlja2xpbmcKKworICAgIEBzdXBwb3J0LmltcGxfZGV0YWlsKCJ0dXBsZSByZXN1c2UgaXMgQ1B5dGhvbiBzcGVjaWZpYyIpCisgICAgZGVmIHRlc3RfcGVybXV0YXRpb25zX3R1cGxlX3JldXNlKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZXQobWFwKGlkLCBwZXJtdXRhdGlvbnMoJ2FiY2RlJywgMykpKSksIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwobGVuKHNldChtYXAoaWQsIGxpc3QocGVybXV0YXRpb25zKCdhYmNkZScsIDMpKSkpKSwgMSkKIApAQCAtMzQ1LDYgKzQ2MywyNCBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGNvbXByZXNzLCByYW5nZSg2KSkgICAgICAgICAgICAjIHRvbyBmZXcgYXJncwogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGNvbXByZXNzLCByYW5nZSg2KSwgTm9uZSkgICAgICAjIHRvbyBtYW55IGFyZ3MKIAorICAgICAgICAjIGNoZWNrIGNvcHksIGRlZXBjb3B5LCBwaWNrbGUKKyAgICAgICAgZm9yIG9wIGluIChsYW1iZGEgYTpjb3B5LmNvcHkoYSksIGxhbWJkYSBhOmNvcHkuZGVlcGNvcHkoYSksIGxhbWJkYSBhOnBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMoYSkpKToKKyAgICAgICAgICAgIGZvciBkYXRhLCBzZWxlY3RvcnMsIHJlc3VsdDEsIHJlc3VsdDIgaW4gWworICAgICAgICAgICAgICAgICgnQUJDREVGJywgWzEsMCwxLDAsMSwxXSwgJ0FDRUYnLCAnQ0VGJyksCisgICAgICAgICAgICAgICAgKCdBQkNERUYnLCBbMCwwLDAsMCwwLDBdLCAnJywgJycpLAorICAgICAgICAgICAgICAgICgnQUJDREVGJywgWzEsMSwxLDEsMSwxXSwgJ0FCQ0RFRicsICdCQ0RFRicpLAorICAgICAgICAgICAgICAgICgnQUJDREVGJywgWzEsMCwxXSwgJ0FDJywgJ0MnKSwKKyAgICAgICAgICAgICAgICAoJ0FCQycsIFswLDEsMSwxLDEsMV0sICdCQycsICdDJyksCisgICAgICAgICAgICAgICAgXToKKworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChvcChjb21wcmVzcyhkYXRhPWRhdGEsIHNlbGVjdG9ycz1zZWxlY3RvcnMpKSksIGxpc3QocmVzdWx0MSkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG9wKGNvbXByZXNzKGRhdGEsIHNlbGVjdG9ycykpKSwgbGlzdChyZXN1bHQxKSkKKyAgICAgICAgICAgICAgICB0ZXN0SW50ZXJtZWRpYXRlID0gY29tcHJlc3MoZGF0YSwgc2VsZWN0b3JzKQorICAgICAgICAgICAgICAgIGlmIHJlc3VsdDE6CisgICAgICAgICAgICAgICAgICAgIG5leHQodGVzdEludGVybWVkaWF0ZSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG9wKHRlc3RJbnRlcm1lZGlhdGUpKSwgbGlzdChyZXN1bHQyKSkKKworCiAgICAgZGVmIHRlc3RfY291bnQoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHppcCgnYWJjJyxjb3VudCgpKSwgWygnYScsIDApLCAoJ2InLCAxKSwgKCdjJywgMildKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGx6aXAoJ2FiYycsY291bnQoMykpLCBbKCdhJywgMyksICgnYicsIDQpLCAoJ2MnLCA1KV0pCkBAIC0zNzksNyArNTE1LDcgQEAKICAgICAgICAgICAgIGMgPSBjb3VudCh2YWx1ZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChjb3B5LmNvcHkoYykpLCB2YWx1ZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChjb3B5LmRlZXBjb3B5KGMpKSwgdmFsdWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5leHQocGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhjKSkpLCB2YWx1ZSkKKyAgICAgICAgICAgIHNlbGYucGlja2xldGVzdChjb3VudCh2YWx1ZSkpCiAKICAgICAgICAgI2NoZWNrIHByb3BlciBpbnRlcm5hbCBlcnJvciBoYW5kbGluZyBmb3IgbGFyZ2UgInN0ZXAnIHNpemVzCiAgICAgICAgIGNvdW50KDEsIG1heHNpemUrNSk7IHN5cy5leGNfaW5mbygpCkBAIC00MjYsNiArNTYyLDcgQEAKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICByMiA9ICgnY291bnQoJXIsICVyKScgJSAoaSwgaikpLnJlcGxhY2UoJ0wnLCAnJykKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHIxLCByMikKKyAgICAgICAgICAgICAgICBzZWxmLnBpY2tsZXRlc3QoY291bnQoaSwgaikpCiAKICAgICBkZWYgdGVzdF9jeWNsZShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YWtlKDEwLCBjeWNsZSgnYWJjJykpLCBsaXN0KCdhYmNhYmNhYmNhJykpCkBAIC00MzQsNiArNTcxLDE4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY3ljbGUsIDUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpc2xpY2UoY3ljbGUoZ2VuMygpKSwxMCkpLCBbMCwxLDIsMCwxLDIsMCwxLDIsMF0pCiAKKyAgICAgICAgIyBjaGVjayBjb3B5LCBkZWVwY29weSwgcGlja2xlCisgICAgICAgIGMgPSBjeWNsZSgnYWJjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXh0KGMpLCAnYScpCisgICAgICAgICNzaW1wbGUgY29weSBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCwgYmVjYXVzZSBfX3JlZHVjZV9fIHJldHVybnMKKyAgICAgICAgI2FuIGludGVybmFsIGl0ZXJhdG9yCisgICAgICAgICNzZWxmLmFzc2VydEVxdWFsKHRha2UoMTAsIGNvcHkuY29weShjKSksIGxpc3QoJ2JjYWJjYWJjYWInKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0YWtlKDEwLCBjb3B5LmRlZXBjb3B5KGMpKSwgbGlzdCgnYmNhYmNhYmNhYicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRha2UoMTAsIHBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMoYykpKSwgbGlzdCgnYmNhYmNhYmNhYicpKQorICAgICAgICBuZXh0KGMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFrZSgxMCwgcGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhjKSkpLCBsaXN0KCdjYWJjYWJjYWJjJykpCisgICAgICAgIHNlbGYucGlja2xldGVzdChjeWNsZSgnYWJjJykpCisKICAgICBkZWYgdGVzdF9ncm91cGJ5KHNlbGYpOgogICAgICAgICAjIENoZWNrIHdoZXRoZXIgaXQgYWNjZXB0cyBhcmd1bWVudHMgY29ycmVjdGx5CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGxpc3QoZ3JvdXBieShbXSkpKQpAQCAtNDUyLDE4ICs2MDEsMzcgQEAKICAgICAgICAgICAgICAgICBkdXAuYXBwZW5kKGVsZW0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocywgZHVwKQogCisgICAgICAgICMgQ2hlY2sgbm9ybWFsIHBpY2tsZWQKKyAgICAgICAgZHVwID0gW10KKyAgICAgICAgZm9yIGssIGcgaW4gcGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhncm91cGJ5KHMsIHRlc3RSKSkpOgorICAgICAgICAgICAgZm9yIGVsZW0gaW4gZzoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGssIGVsZW1bMF0pCisgICAgICAgICAgICAgICAgZHVwLmFwcGVuZChlbGVtKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMsIGR1cCkKKwogICAgICAgICAjIENoZWNrIG5lc3RlZCBjYXNlCiAgICAgICAgIGR1cCA9IFtdCi0gICAgICAgIGZvciBrLCBnIGluIGdyb3VwYnkocywgbGFtYmRhIHI6clswXSk6Ci0gICAgICAgICAgICBmb3IgaWssIGlnIGluIGdyb3VwYnkoZywgbGFtYmRhIHI6clsyXSk6CisgICAgICAgIGZvciBrLCBnIGluIGdyb3VwYnkocywgdGVzdFIpOgorICAgICAgICAgICAgZm9yIGlrLCBpZyBpbiBncm91cGJ5KGcsIHRlc3RSMik6CiAgICAgICAgICAgICAgICAgZm9yIGVsZW0gaW4gaWc6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaywgZWxlbVswXSkKICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpaywgZWxlbVsyXSkKICAgICAgICAgICAgICAgICAgICAgZHVwLmFwcGVuZChlbGVtKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMsIGR1cCkKIAorICAgICAgICAjIENoZWNrIG5lc3RlZCBhbmQgcGlja2xlZAorICAgICAgICBkdXAgPSBbXQorICAgICAgICBmb3IgaywgZyBpbiBwaWNrbGUubG9hZHMocGlja2xlLmR1bXBzKGdyb3VwYnkocywgdGVzdFIpKSk6CisgICAgICAgICAgICBmb3IgaWssIGlnIGluIHBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMoZ3JvdXBieShnLCB0ZXN0UjIpKSk6CisgICAgICAgICAgICAgICAgZm9yIGVsZW0gaW4gaWc6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaywgZWxlbVswXSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpaywgZWxlbVsyXSkKKyAgICAgICAgICAgICAgICAgICAgZHVwLmFwcGVuZChlbGVtKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMsIGR1cCkKKworCiAgICAgICAgICMgQ2hlY2sgY2FzZSB3aGVyZSBpbm5lciBpdGVyYXRvciBpcyBub3QgdXNlZAotICAgICAgICBrZXlzID0gW2sgZm9yIGssIGcgaW4gZ3JvdXBieShzLCBsYW1iZGEgcjpyWzBdKV0KKyAgICAgICAga2V5cyA9IFtrIGZvciBrLCBnIGluIGdyb3VwYnkocywgdGVzdFIpXQogICAgICAgICBleHBlY3RlZGtleXMgPSBzZXQoW3JbMF0gZm9yIHIgaW4gc10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KGtleXMpLCBleHBlY3RlZGtleXMpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGtleXMpLCBsZW4oZXhwZWN0ZWRrZXlzKSkKQEAgLTUzNCw2ICs3MDIsMjAgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmaWx0ZXIsIGlzRXZlbiwgMykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBuZXh0LCBmaWx0ZXIocmFuZ2UoNiksIHJhbmdlKDYpKSkKIAorICAgICAgICAjIGNoZWNrIGNvcHksIGRlZXBjb3B5LCBwaWNrbGUKKyAgICAgICAgYW5zID0gWzAsMiw0XQorCisgICAgICAgIGMgPSBmaWx0ZXIoaXNFdmVuLCByYW5nZSg2KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuY29weShjKSksIGFucykKKyAgICAgICAgYyA9IGZpbHRlcihpc0V2ZW4sIHJhbmdlKDYpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5kZWVwY29weShjKSksIGFucykKKyAgICAgICAgYyA9IGZpbHRlcihpc0V2ZW4sIHJhbmdlKDYpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhjKSkpLCBhbnMpCisgICAgICAgIG5leHQoYykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMoYykpKSwgYW5zWzE6XSkKKyAgICAgICAgYyA9IGZpbHRlcihpc0V2ZW4sIHJhbmdlKDYpKQorICAgICAgICBzZWxmLnBpY2tsZXRlc3QoYykKKwogICAgIGRlZiB0ZXN0X2ZpbHRlcmZhbHNlKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoZmlsdGVyZmFsc2UoaXNFdmVuLCByYW5nZSg2KSkpLCBbMSwzLDVdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoZmlsdGVyZmFsc2UoTm9uZSwgWzAsMSwwLDIsMF0pKSwgWzAsMCwwXSkKQEAgLTU0NCw2ICs3MjYsNyBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGZpbHRlcmZhbHNlLCBsYW1iZGEgeDp4LCByYW5nZSg2KSwgNykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmaWx0ZXJmYWxzZSwgaXNFdmVuLCAzKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG5leHQsIGZpbHRlcmZhbHNlKHJhbmdlKDYpLCByYW5nZSg2KSkpCisgICAgICAgIHNlbGYucGlja2xldGVzdChmaWx0ZXJmYWxzZShpc0V2ZW4sIHJhbmdlKDYpKSkKIAogICAgIGRlZiB0ZXN0X3ppcChzZWxmKToKICAgICAgICAgIyBYWFggVGhpcyBpcyByYXRoZXIgc2lsbHkgbm93IHRoYXQgYnVpbHRpbiB6aXAoKSBjYWxscyB6aXAoKS4uLgpAQCAtNTU2LDE2ICs3MzksMzUgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHppcCgpKSwgbHppcCgpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHppcCwgMykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB6aXAsIHJhbmdlKDMpLCAzKQotICAgICAgICAjIENoZWNrIHR1cGxlIHJlLXVzZSAoaW1wbGVtZW50YXRpb24gZGV0YWlsKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFt0dXBsZShsaXN0KHBhaXIpKSBmb3IgcGFpciBpbiB6aXAoJ2FiYycsICdkZWYnKV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbHppcCgnYWJjJywgJ2RlZicpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtwYWlyIGZvciBwYWlyIGluIHppcCgnYWJjJywgJ2RlZicpXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBsemlwKCdhYmMnLCAnZGVmJykpCisKKyAgICBAc3VwcG9ydC5pbXBsX2RldGFpbCgidHVwbGUgcmV1c2UgaXMgc3BlY2lmaWMgdG8gQ1B5dGhvbiIpCisgICAgZGVmIHRlc3RfemlwX3R1cGxlX3JldXNlKHNlbGYpOgogICAgICAgICBpZHMgPSBsaXN0KG1hcChpZCwgemlwKCdhYmMnLCAnZGVmJykpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1pbihpZHMpLCBtYXgoaWRzKSkKICAgICAgICAgaWRzID0gbGlzdChtYXAoaWQsIGxpc3QoemlwKCdhYmMnLCAnZGVmJykpKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGljdC5mcm9ta2V5cyhpZHMpKSwgbGVuKGlkcykpCiAKKyAgICAgICAgIyBjaGVjayBjb3B5LCBkZWVwY29weSwgcGlja2xlCisgICAgICAgIGFucyA9IFsoeCx5KSBmb3IgeCwgeSBpbiBjb3B5LmNvcHkoemlwKCdhYmMnLGNvdW50KCkpKV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbnMsIFsoJ2EnLCAwKSwgKCdiJywgMSksICgnYycsIDIpXSkKKworICAgICAgICBhbnMgPSBbKHgseSkgZm9yIHgsIHkgaW4gY29weS5kZWVwY29weSh6aXAoJ2FiYycsY291bnQoKSkpXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFucywgWygnYScsIDApLCAoJ2InLCAxKSwgKCdjJywgMildKQorCisgICAgICAgIGFucyA9IFsoeCx5KSBmb3IgeCwgeSBpbiBwaWNrbGUubG9hZHMocGlja2xlLmR1bXBzKHppcCgnYWJjJyxjb3VudCgpKSkpXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFucywgWygnYScsIDApLCAoJ2InLCAxKSwgKCdjJywgMildKQorCisgICAgICAgIHRlc3RJbnRlcm1lZGlhdGUgPSB6aXAoJ2FiYycsY291bnQoKSkKKyAgICAgICAgbmV4dCh0ZXN0SW50ZXJtZWRpYXRlKQorICAgICAgICBhbnMgPSBbKHgseSkgZm9yIHgsIHkgaW4gcGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyh0ZXN0SW50ZXJtZWRpYXRlKSldCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5zLCBbKCdiJywgMSksICgnYycsIDIpXSkKKworICAgICAgICBzZWxmLnBpY2tsZXRlc3QoemlwKCdhYmMnLCBjb3VudCgpKSkKKwogICAgIGRlZiB0ZXN0X3ppcGxvbmdlc3Qoc2VsZik6CiAgICAgICAgIGZvciBhcmdzIGluIFsKICAgICAgICAgICAgICAgICBbJ2FiYycsIHJhbmdlKDYpXSwKQEAgLTYwMywxNiArODA1LDI0IEBACiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnRGlkIG5vdCByYWlzZSBUeXBlIGluOiAgJyArIHN0bXQpCiAKLSAgICAgICAgIyBDaGVjayB0dXBsZSByZS11c2UgKGltcGxlbWVudGF0aW9uIGRldGFpbCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbdHVwbGUobGlzdChwYWlyKSkgZm9yIHBhaXIgaW4gemlwX2xvbmdlc3QoJ2FiYycsICdkZWYnKV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCh6aXAoJ2FiYycsICdkZWYnKSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW3BhaXIgZm9yIHBhaXIgaW4gemlwX2xvbmdlc3QoJ2FiYycsICdkZWYnKV0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCh6aXAoJ2FiYycsICdkZWYnKSkpCisKKyAgICBAc3VwcG9ydC5pbXBsX2RldGFpbCgidHVwbGUgcmV1c2UgaXMgc3BlY2lmaWMgdG8gQ1B5dGhvbiIpCisgICAgZGVmIHRlc3RfemlwX2xvbmdlc3RfdHVwbGVfcmV1c2Uoc2VsZik6CiAgICAgICAgIGlkcyA9IGxpc3QobWFwKGlkLCB6aXBfbG9uZ2VzdCgnYWJjJywgJ2RlZicpKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtaW4oaWRzKSwgbWF4KGlkcykpCiAgICAgICAgIGlkcyA9IGxpc3QobWFwKGlkLCBsaXN0KHppcF9sb25nZXN0KCdhYmMnLCAnZGVmJykpKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGljdC5mcm9ta2V5cyhpZHMpKSwgbGVuKGlkcykpCiAKKyAgICBkZWYgdGVzdF96aXBfbG9uZ2VzdF9waWNrbGluZyhzZWxmKToKKyAgICAgICAgc2VsZi5waWNrbGV0ZXN0KHppcF9sb25nZXN0KCJhYmMiLCAiZGVmIikpCisgICAgICAgIHNlbGYucGlja2xldGVzdCh6aXBfbG9uZ2VzdCgiYWJjIiwgImRlZmdoIikpCisgICAgICAgIHNlbGYucGlja2xldGVzdCh6aXBfbG9uZ2VzdCgiYWJjIiwgImRlZmdoIiwgZmlsbHZhbHVlPTEpKQorICAgICAgICBzZWxmLnBpY2tsZXRlc3QoemlwX2xvbmdlc3QoIiIsICJkZWZnaCIpKQorCiAgICAgZGVmIHRlc3RfYnVnXzcyNDQoc2VsZik6CiAKICAgICAgICAgY2xhc3MgUmVwZWF0ZXI6CkBAIC03MTEsMTAgKzkyMSwyNSBAQAogICAgICAgICAgICAgYXJncyA9IG1hcChpdGVyLCBhcmdzKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obGlzdChwcm9kdWN0KCphcmdzKSkpLCBleHBlY3RlZF9sZW4pCiAKLSAgICAgICAgIyBUZXN0IGltcGxlbWVudGF0aW9uIGRldGFpbDogIHR1cGxlIHJlLXVzZQorICAgIEBzdXBwb3J0LmltcGxfZGV0YWlsKCJ0dXBsZSByZXVzZSBpcyBzcGVjaWZpYyB0byBDUHl0aG9uIikKKyAgICBkZWYgdGVzdF9wcm9kdWN0X3R1cGxlX3JldXNlKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZXQobWFwKGlkLCBwcm9kdWN0KCdhYmMnLCAnZGVmJykpKSksIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwobGVuKHNldChtYXAoaWQsIGxpc3QocHJvZHVjdCgnYWJjJywgJ2RlZicpKSkpKSwgMSkKIAorICAgIGRlZiB0ZXN0X3Byb2R1Y3RfcGlja2xpbmcoc2VsZik6CisgICAgICAgICMgY2hlY2sgY29weSwgZGVlcGNvcHksIHBpY2tsZQorICAgICAgICBmb3IgYXJncywgcmVzdWx0IGluIFsKKyAgICAgICAgICAgIChbXSwgWygpXSksICAgICAgICAgICAgICAgICAgICAgIyB6ZXJvIGl0ZXJhYmxlcworICAgICAgICAgICAgKFsnYWInXSwgWygnYScsKSwgKCdiJywpXSksICAgICAjIG9uZSBpdGVyYWJsZQorICAgICAgICAgICAgKFtyYW5nZSgyKSwgcmFuZ2UoMyldLCBbKDAsMCksICgwLDEpLCAoMCwyKSwgKDEsMCksICgxLDEpLCAoMSwyKV0pLCAgICAgIyB0d28gaXRlcmFibGVzCisgICAgICAgICAgICAoW3JhbmdlKDApLCByYW5nZSgyKSwgcmFuZ2UoMyldLCBbXSksICAgICAgICAgICAjIGZpcnN0IGl0ZXJhYmxlIHdpdGggemVybyBsZW5ndGgKKyAgICAgICAgICAgIChbcmFuZ2UoMiksIHJhbmdlKDApLCByYW5nZSgzKV0sIFtdKSwgICAgICAgICAgICMgbWlkZGxlIGl0ZXJhYmxlIHdpdGggemVybyBsZW5ndGgKKyAgICAgICAgICAgIChbcmFuZ2UoMiksIHJhbmdlKDMpLCByYW5nZSgwKV0sIFtdKSwgICAgICAgICAgICMgbGFzdCBpdGVyYWJsZSB3aXRoIHplcm8gbGVuZ3RoCisgICAgICAgICAgICBdOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuY29weShwcm9kdWN0KCphcmdzKSkpLCByZXN1bHQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5kZWVwY29weShwcm9kdWN0KCphcmdzKSkpLCByZXN1bHQpCisgICAgICAgICAgICBzZWxmLnBpY2tsZXRlc3QocHJvZHVjdCgqYXJncykpCisKICAgICBkZWYgdGVzdF9yZXBlYXQoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChyZXBlYXQob2JqZWN0PSdhJywgdGltZXM9MykpLCBbJ2EnLCAnYScsICdhJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHppcChyYW5nZSgzKSxyZXBlYXQoJ2EnKSksCkBAIC03MzMsMTEgKzk1OCwxNiBAQAogICAgICAgICBsaXN0KHIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihyKSwgJ3JlcGVhdCgoMSswaiksIDApJykKIAorICAgICAgICAjIGNoZWNrIGNvcHksIGRlZXBjb3B5LCBwaWNrbGUKKyAgICAgICAgYyA9IHJlcGVhdChvYmplY3Q9J2EnLCB0aW1lcz0xMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXh0KGMpLCAnYScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFrZSgyLCBjb3B5LmNvcHkoYykpLCBsaXN0KCdhJyAqIDIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRha2UoMiwgY29weS5kZWVwY29weShjKSksIGxpc3QoJ2EnICogMikpCisgICAgICAgIHNlbGYucGlja2xldGVzdChyZXBlYXQob2JqZWN0PSdhJywgdGltZXM9MTApKQorCiAgICAgZGVmIHRlc3RfbWFwKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QobWFwKG9wZXJhdG9yLnBvdywgcmFuZ2UoMyksIHJhbmdlKDEsNykpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbMCoqMSwgMSoqMiwgMioqM10pCi0gICAgICAgIGRlZiB0dXBsZWl6ZSgqYXJncyk6Ci0gICAgICAgICAgICByZXR1cm4gYXJncwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QobWFwKHR1cGxlaXplLCAnYWJjJywgcmFuZ2UoNSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdhJywwKSwoJ2InLDEpLCgnYycsMildKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QobWFwKHR1cGxlaXplLCAnYWJjJywgY291bnQoKSkpLApAQCAtNzUyLDYgKzk4MiwxOCBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBuZXh0LCBtYXAoZXJyZnVuYywgWzRdLCBbNV0pKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG5leHQsIG1hcChvbmVhcmcsIFs0XSwgWzVdKSkKIAorICAgICAgICAjIGNoZWNrIGNvcHksIGRlZXBjb3B5LCBwaWNrbGUKKyAgICAgICAgYW5zID0gWygnYScsMCksKCdiJywxKSwoJ2MnLDIpXQorCisgICAgICAgIGMgPSBtYXAodHVwbGVpemUsICdhYmMnLCBjb3VudCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5jb3B5KGMpKSwgYW5zKQorCisgICAgICAgIGMgPSBtYXAodHVwbGVpemUsICdhYmMnLCBjb3VudCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5kZWVwY29weShjKSksIGFucykKKworICAgICAgICBjID0gbWFwKHR1cGxlaXplLCAnYWJjJywgY291bnQoKSkKKyAgICAgICAgc2VsZi5waWNrbGV0ZXN0KGMpCisKICAgICBkZWYgdGVzdF9zdGFybWFwKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3Qoc3Rhcm1hcChvcGVyYXRvci5wb3csIHppcChyYW5nZSgzKSwgcmFuZ2UoMSw3KSkpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbMCoqMSwgMSoqMiwgMioqM10pCkBAIC03NjYsNiArMTAwOCwxOCBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBuZXh0LCBzdGFybWFwKGVycmZ1bmMsIFsoNCw1KV0pKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG5leHQsIHN0YXJtYXAob25lYXJnLCBbKDQsNSldKSkKIAorICAgICAgICAjIGNoZWNrIGNvcHksIGRlZXBjb3B5LCBwaWNrbGUKKyAgICAgICAgYW5zID0gWzAqKjEsIDEqKjIsIDIqKjNdCisKKyAgICAgICAgYyA9IHN0YXJtYXAob3BlcmF0b3IucG93LCB6aXAocmFuZ2UoMyksIHJhbmdlKDEsNykpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5jb3B5KGMpKSwgYW5zKQorCisgICAgICAgIGMgPSBzdGFybWFwKG9wZXJhdG9yLnBvdywgemlwKHJhbmdlKDMpLCByYW5nZSgxLDcpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuZGVlcGNvcHkoYykpLCBhbnMpCisKKyAgICAgICAgYyA9IHN0YXJtYXAob3BlcmF0b3IucG93LCB6aXAocmFuZ2UoMyksIHJhbmdlKDEsNykpKQorICAgICAgICBzZWxmLnBpY2tsZXRlc3QoYykKKwogICAgIGRlZiB0ZXN0X2lzbGljZShzZWxmKToKICAgICAgICAgZm9yIGFyZ3MgaW4gWyAgICAgICAgICAjIGlzbGljZShhcmdzKSBzaG91bGQgYWdyZWUgd2l0aCByYW5nZShhcmdzKQogICAgICAgICAgICAgICAgICgxMCwgMjAsIDMpLApAQCAtNzk4LDE3ICsxMDUyLDE4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpdCksIGxpc3QocmFuZ2UoMywgMTApKSkKIAogICAgICAgICAjIFRlc3QgaW52YWxpZCBhcmd1bWVudHMKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpc2xpY2UsIHJhbmdlKDEwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpc2xpY2UsIHJhbmdlKDEwKSwgMSwgMiwgMywgNCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXNsaWNlLCByYW5nZSgxMCksIC01LCAxMCwgMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXNsaWNlLCByYW5nZSgxMCksIDEsIC01LCAtMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXNsaWNlLCByYW5nZSgxMCksIDEsIDEwLCAtMSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXNsaWNlLCByYW5nZSgxMCksIDEsIDEwLCAwKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpc2xpY2UsIHJhbmdlKDEwKSwgJ2EnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpc2xpY2UsIHJhbmdlKDEwKSwgJ2EnLCAxKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpc2xpY2UsIHJhbmdlKDEwKSwgMSwgJ2EnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpc2xpY2UsIHJhbmdlKDEwKSwgJ2EnLCAxLCAxKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpc2xpY2UsIHJhbmdlKDEwKSwgMSwgJ2EnLCAxKQorICAgICAgICByYSA9IHJhbmdlKDEwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGlzbGljZSwgcmEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaXNsaWNlLCByYSwgMSwgMiwgMywgNCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXNsaWNlLCByYSwgLTUsIDEwLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpc2xpY2UsIHJhLCAxLCAtNSwgLTEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGlzbGljZSwgcmEsIDEsIDEwLCAtMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXNsaWNlLCByYSwgMSwgMTAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGlzbGljZSwgcmEsICdhJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXNsaWNlLCByYSwgJ2EnLCAxKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBpc2xpY2UsIHJhLCAxLCAnYScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGlzbGljZSwgcmEsICdhJywgMSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgaXNsaWNlLCByYSwgMSwgJ2EnLCAxKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsaXN0KGlzbGljZShjb3VudCgpLCAxLCAxMCwgbWF4c2l6ZSkpKSwgMSkKIAogICAgICAgICAjIElzc3VlICMxMDMyMzogIExlc3MgaXNsaWNlIGluIGEgcHJlZGljdGFibGUgc3RhdGUKQEAgLTgxNiw5ICsxMDcxLDIyIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChpc2xpY2UoYywgMSwgMywgNTApKSwgWzFdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5leHQoYyksIDMpCiAKKyAgICAgICAgIyBjaGVjayBjb3B5LCBkZWVwY29weSwgcGlja2xlCisgICAgICAgIGZvciBhcmdzIGluIFsgICAgICAgICAgIyBpc2xpY2UoYXJncykgc2hvdWxkIGFncmVlIHdpdGggcmFuZ2UoYXJncykKKyAgICAgICAgICAgICAgICAoMTAsIDIwLCAzKSwKKyAgICAgICAgICAgICAgICAoMTAsIDMsIDIwKSwKKyAgICAgICAgICAgICAgICAoMTAsIDIwKSwKKyAgICAgICAgICAgICAgICAoMTAsIDMpLAorICAgICAgICAgICAgICAgICgyMCwpCisgICAgICAgICAgICAgICAgXToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmNvcHkoaXNsaWNlKHJhbmdlKDEwMCksICphcmdzKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KHJhbmdlKCphcmdzKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5kZWVwY29weShpc2xpY2UocmFuZ2UoMTAwKSwgKmFyZ3MpKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QocmFuZ2UoKmFyZ3MpKSkKKyAgICAgICAgICAgIHNlbGYucGlja2xldGVzdChpc2xpY2UocmFuZ2UoMTAwKSwgKmFyZ3MpKQorCiAgICAgZGVmIHRlc3RfdGFrZXdoaWxlKHNlbGYpOgogICAgICAgICBkYXRhID0gWzEsIDMsIDUsIDIwLCAyLCA0LCA2LCA4XQotICAgICAgICB1bmRlcnRlbiA9IGxhbWJkYSB4OiB4PDEwCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdCh0YWtld2hpbGUodW5kZXJ0ZW4sIGRhdGEpKSwgWzEsIDMsIDVdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QodGFrZXdoaWxlKHVuZGVydGVuLCBbXSkpLCBbXSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB0YWtld2hpbGUpCkBAIC04MzAsOSArMTA5OCwxNCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QodCksIFsxLCAxLCAxXSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgbmV4dCwgdCkKIAorICAgICAgICAjIGNoZWNrIGNvcHksIGRlZXBjb3B5LCBwaWNrbGUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuY29weSh0YWtld2hpbGUodW5kZXJ0ZW4sIGRhdGEpKSksIFsxLCAzLCA1XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuZGVlcGNvcHkodGFrZXdoaWxlKHVuZGVydGVuLCBkYXRhKSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgWzEsIDMsIDVdKQorICAgICAgICBzZWxmLnBpY2tsZXRlc3QodGFrZXdoaWxlKHVuZGVydGVuLCBkYXRhKSkKKwogICAgIGRlZiB0ZXN0X2Ryb3B3aGlsZShzZWxmKToKICAgICAgICAgZGF0YSA9IFsxLCAzLCA1LCAyMCwgMiwgNCwgNiwgOF0KLSAgICAgICAgdW5kZXJ0ZW4gPSBsYW1iZGEgeDogeDwxMAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoZHJvcHdoaWxlKHVuZGVydGVuLCBkYXRhKSksIFsyMCwgMiwgNCwgNiwgOF0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChkcm9wd2hpbGUodW5kZXJ0ZW4sIFtdKSksIFtdKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGRyb3B3aGlsZSkKQEAgLTg0MSwxMSArMTExNCwxNCBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG5leHQsIGRyb3B3aGlsZSgxMCwgWyg0LDUpXSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG5leHQsIGRyb3B3aGlsZShlcnJmdW5jLCBbKDQsNSldKSkKIAorICAgICAgICAjIGNoZWNrIGNvcHksIGRlZXBjb3B5LCBwaWNrbGUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuY29weShkcm9wd2hpbGUodW5kZXJ0ZW4sIGRhdGEpKSksIFsyMCwgMiwgNCwgNiwgOF0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmRlZXBjb3B5KGRyb3B3aGlsZSh1bmRlcnRlbiwgZGF0YSkpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFsyMCwgMiwgNCwgNiwgOF0pCisgICAgICAgIHNlbGYucGlja2xldGVzdChkcm9wd2hpbGUodW5kZXJ0ZW4sIGRhdGEpKQorCiAgICAgZGVmIHRlc3RfdGVlKHNlbGYpOgogICAgICAgICBuID0gMjAwCi0gICAgICAgIGRlZiBpcmFuZ2Uobik6Ci0gICAgICAgICAgICBmb3IgaSBpbiByYW5nZShuKToKLSAgICAgICAgICAgICAgICB5aWVsZCBpCiAKICAgICAgICAgYSwgYiA9IHRlZShbXSkgICAgICAgICMgdGVzdCBlbXB0eSBpdGVyYXRvcgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoYSksIFtdKQpAQCAtOTMwLDYgKzEyMDYsNjcgQEAKICAgICAgICAgZGVsIGEKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUmVmZXJlbmNlRXJyb3IsIGdldGF0dHIsIHAsICdfX2NsYXNzX18nKQogCisgICAgICAgIGFucyA9IGxpc3QoJ2FiYycpCisgICAgICAgIGxvbmdfYW5zID0gbGlzdChyYW5nZSgxMDAwMCkpCisKKyAgICAgICAgIyBjaGVjayBjb3B5CisgICAgICAgIGEsIGIgPSB0ZWUoJ2FiYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmNvcHkoYSkpLCBhbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmNvcHkoYikpLCBhbnMpCisgICAgICAgIGEsIGIgPSB0ZWUobGlzdChyYW5nZSgxMDAwMCkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5jb3B5KGEpKSwgbG9uZ19hbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmNvcHkoYikpLCBsb25nX2FucykKKworICAgICAgICAjIGNoZWNrIHBhcnRpYWxseSBjb25zdW1lZCBjb3B5CisgICAgICAgIGEsIGIgPSB0ZWUoJ2FiYycpCisgICAgICAgIHRha2UoMiwgYSkKKyAgICAgICAgdGFrZSgxLCBiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5jb3B5KGEpKSwgYW5zWzI6XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuY29weShiKSksIGFuc1sxOl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChhKSwgYW5zWzI6XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGIpLCBhbnNbMTpdKQorICAgICAgICBhLCBiID0gdGVlKHJhbmdlKDEwMDAwKSkKKyAgICAgICAgdGFrZSgxMDAsIGEpCisgICAgICAgIHRha2UoNjAsIGIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmNvcHkoYSkpLCBsb25nX2Fuc1sxMDA6XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuY29weShiKSksIGxvbmdfYW5zWzYwOl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChhKSwgbG9uZ19hbnNbMTAwOl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChiKSwgbG9uZ19hbnNbNjA6XSkKKworICAgICAgICAjIGNoZWNrIGRlZXBjb3B5CisgICAgICAgIGEsIGIgPSB0ZWUoJ2FiYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmRlZXBjb3B5KGEpKSwgYW5zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5kZWVwY29weShiKSksIGFucykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGEpLCBhbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChiKSwgYW5zKQorICAgICAgICBhLCBiID0gdGVlKHJhbmdlKDEwMDAwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuZGVlcGNvcHkoYSkpLCBsb25nX2FucykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuZGVlcGNvcHkoYikpLCBsb25nX2FucykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGEpLCBsb25nX2FucykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGIpLCBsb25nX2FucykKKworICAgICAgICAjIGNoZWNrIHBhcnRpYWxseSBjb25zdW1lZCBkZWVwY29weQorICAgICAgICBhLCBiID0gdGVlKCdhYmMnKQorICAgICAgICB0YWtlKDIsIGEpCisgICAgICAgIHRha2UoMSwgYikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGNvcHkuZGVlcGNvcHkoYSkpLCBhbnNbMjpdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5kZWVwY29weShiKSksIGFuc1sxOl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChhKSwgYW5zWzI6XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGIpLCBhbnNbMTpdKQorICAgICAgICBhLCBiID0gdGVlKHJhbmdlKDEwMDAwKSkKKyAgICAgICAgdGFrZSgxMDAsIGEpCisgICAgICAgIHRha2UoNjAsIGIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmRlZXBjb3B5KGEpKSwgbG9uZ19hbnNbMTAwOl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmRlZXBjb3B5KGIpKSwgbG9uZ19hbnNbNjA6XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGEpLCBsb25nX2Fuc1sxMDA6XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGIpLCBsb25nX2Fuc1s2MDpdKQorCisgICAgICAgICMgY2hlY2sgcGlja2xlCisgICAgICAgIHNlbGYucGlja2xldGVzdChpdGVyKHRlZSgnYWJjJykpKQorICAgICAgICBhLCBiID0gdGVlKCdhYmMnKQorICAgICAgICBzZWxmLnBpY2tsZXRlc3QoYSwgY29tcGFyZT1hbnMpCisgICAgICAgIHNlbGYucGlja2xldGVzdChiLCBjb21wYXJlPWFucykKKwogICAgIGRlZiB0ZXN0X1N0b3BJdGVyYXRpb24oc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN0b3BJdGVyYXRpb24sIG5leHQsIHppcCgpKQogCkBAIC05NTUsOSArMTI5MiwyMSBAQAogCiBjbGFzcyBUZXN0RXhhbXBsZXModW5pdHRlc3QuVGVzdENhc2UpOgogCi0gICAgZGVmIHRlc3RfYWNjdW1sYXRlKHNlbGYpOgorICAgIGRlZiB0ZXN0X2FjY3VtdWxhdGUoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChhY2N1bXVsYXRlKFsxLDIsMyw0LDVdKSksIFsxLCAzLCA2LCAxMCwgMTVdKQogCisgICAgZGVmIHRlc3RfYWNjdW11bGF0ZV9yZWR1Y2libGUoc2VsZik6CisgICAgICAgICMgY2hlY2sgY29weSwgZGVlcGNvcHksIHBpY2tsZQorICAgICAgICBkYXRhID0gWzEsIDIsIDMsIDQsIDVdCisgICAgICAgIGFjY3VtdWxhdGVkID0gWzEsIDMsIDYsIDEwLCAxNV0KKyAgICAgICAgaXQgPSBhY2N1bXVsYXRlKGRhdGEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHBpY2tsZS5sb2FkcyhwaWNrbGUuZHVtcHMoaXQpKSksIGFjY3VtdWxhdGVkWzpdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5leHQoaXQpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhpdCkpKSwgYWNjdW11bGF0ZWRbMTpdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoY29weS5kZWVwY29weShpdCkpLCBhY2N1bXVsYXRlZFsxOl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChjb3B5LmNvcHkoaXQpKSwgYWNjdW11bGF0ZWRbMTpdKQorCiAgICAgZGVmIHRlc3RfY2hhaW4oc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycuam9pbihjaGFpbignQUJDJywgJ0RFRicpKSwgJ0FCQ0RFRicpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfa2V5d29yZG9ubHlhcmcucHkgYi9MaWIvdGVzdC90ZXN0X2tleXdvcmRvbmx5YXJnLnB5CmluZGV4IDEwOGVkMTguLjA1MDNhN2YgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfa2V5d29yZG9ubHlhcmcucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9rZXl3b3Jkb25seWFyZy5weQpAQCAtNzgsNyArNzgsNyBAQAogICAgICAgICAgICAgcGFzcwogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcikgYXMgZXhjOgogICAgICAgICAgICAgZigxLCAyLCAzKQotICAgICAgICBleHBlY3RlZCA9ICJmKCkgdGFrZXMgYXQgbW9zdCAyIHBvc2l0aW9uYWwgYXJndW1lbnRzICgzIGdpdmVuKSIKKyAgICAgICAgZXhwZWN0ZWQgPSAiZigpIHRha2VzIGZyb20gMSB0byAyIHBvc2l0aW9uYWwgYXJndW1lbnRzIGJ1dCAzIHdlcmUgZ2l2ZW4iCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGV4Yy5leGNlcHRpb24pLCBleHBlY3RlZCkKIAogICAgIGRlZiB0ZXN0U3ludGF4RXJyb3JGb3JGdW5jdGlvbkNhbGwoc2VsZik6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2xpYjJ0bzMucHkgYi9MaWIvdGVzdC90ZXN0X2xpYjJ0bzMucHkKaW5kZXggMWFmYWY3MC4uZGY0YzM3YiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9saWIydG8zLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfbGliMnRvMy5weQpAQCAtOSw4ICs5LDggQEAKIGRlZiBzdWl0ZSgpOgogICAgIHRlc3RzID0gdW5pdHRlc3QuVGVzdFN1aXRlKCkKICAgICBsb2FkZXIgPSB1bml0dGVzdC5UZXN0TG9hZGVyKCkKLSAgICBmb3IgbSBpbiAodGVzdF9maXhlcnMsIHRlc3RfcHl0cmVlLHRlc3RfdXRpbCwgdGVzdF9yZWZhY3RvciwKLSAgICAgICAgICAgICAgdGVzdF9wYXJzZXIsIHRlc3RfbWFpbl8pOgorICAgIGZvciBtIGluICh0ZXN0X2ZpeGVycywgdGVzdF9weXRyZWUsIHRlc3RfdXRpbCwgdGVzdF9yZWZhY3RvciwgdGVzdF9wYXJzZXIsCisgICAgICAgICAgICAgIHRlc3RfbWFpbl8pOgogICAgICAgICB0ZXN0cy5hZGRUZXN0cyhsb2FkZXIubG9hZFRlc3RzRnJvbU1vZHVsZShtKSkKICAgICByZXR1cm4gdGVzdHMKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9saXN0LnB5IGIvTGliL3Rlc3QvdGVzdF9saXN0LnB5CmluZGV4IGQ3ZTY2MjkuLjMwMmMxZDggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbGlzdC5weQorKysgYi9MaWIvdGVzdC90ZXN0X2xpc3QucHkKQEAgLTEsNSArMSw2IEBACiBpbXBvcnQgc3lzCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQsIGxpc3RfdGVzdHMKK2ltcG9ydCBwaWNrbGUKIAogY2xhc3MgTGlzdFRlc3QobGlzdF90ZXN0cy5Db21tb25UZXN0KToKICAgICB0eXBlMnRlc3QgPSBsaXN0CkBAIC02OSw2ICs3MCwzMyBAQAogICAgICAgICBjaGVjaygxMCkgICAgICAgIyBjaGVjayBvdXIgY2hlY2tpbmcgY29kZQogICAgICAgICBjaGVjaygxMDAwMDAwKQogCisgICAgZGVmIHRlc3RfaXRlcmF0b3JfcGlja2xlKHNlbGYpOgorICAgICAgICAjIFVzZXJsaXN0IGl0ZXJhdG9ycyBkb24ndCBzdXBwb3J0IHBpY2tsaW5nIHlldCBzaW5jZQorICAgICAgICAjIHRoZXkgYXJlIGJhc2VkIG9uIGdlbmVyYXRvcnMuCisgICAgICAgIGRhdGEgPSBzZWxmLnR5cGUydGVzdChbNCwgNSwgNiwgN10pCisgICAgICAgIGl0ID0gaXRvcmcgPSBpdGVyKGRhdGEpCisgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXQpCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShpdG9yZyksIHR5cGUoaXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudHlwZTJ0ZXN0KGl0KSwgc2VsZi50eXBlMnRlc3QoZGF0YSkpCisKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgbmV4dChpdCkKKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnR5cGUydGVzdChpdCksIHNlbGYudHlwZTJ0ZXN0KGRhdGEpWzE6XSkKKworICAgIGRlZiB0ZXN0X3JldmVyc2VkX3BpY2tsZShzZWxmKToKKyAgICAgICAgZGF0YSA9IHNlbGYudHlwZTJ0ZXN0KFs0LCA1LCA2LCA3XSkKKyAgICAgICAgaXQgPSBpdG9yZyA9IHJldmVyc2VkKGRhdGEpCisgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXQpCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShpdG9yZyksIHR5cGUoaXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudHlwZTJ0ZXN0KGl0KSwgc2VsZi50eXBlMnRlc3QocmV2ZXJzZWQoZGF0YSkpKQorCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgIG5leHQoaXQpCisgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50eXBlMnRlc3QoaXQpLCBzZWxmLnR5cGUydGVzdChyZXZlcnNlZChkYXRhKSlbMTpdKQogCiBkZWYgdGVzdF9tYWluKHZlcmJvc2U9Tm9uZSk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoTGlzdFRlc3QpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2xvY2FsZS5weSBiL0xpYi90ZXN0L3Rlc3RfbG9jYWxlLnB5CmluZGV4IDhmNzU3NGIuLjUxYTdiY2EgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbG9jYWxlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfbG9jYWxlLnB5CkBAIC0xMSw3ICsxMSw3IEBACiAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgdGxvY3MgPSAoImVuX1VTLlVURi04IiwgImVuX1VTLklTTzg4NTktMSIsICJlbl9VUyIpCi0gICAgICAgIGlmIGludChvcy51bmFtZSgpWzJdLnNwbGl0KCcuJylbMF0pIDwgMTA6CisgICAgICAgIGlmIGludChvcy51bmFtZSgpLnJlbGVhc2Uuc3BsaXQoJy4nKVswXSkgPCAxMDoKICAgICAgICAgICAgICMgVGhlIGxvY2FsZSB0ZXN0IHdvcmsgZmluZSBvbiBPU1ggMTAuNiwgSSAocm9uYWxkb3Vzc29yZW4pCiAgICAgICAgICAgICAjIGhhdmVuJ3QgaGFkIHRpbWUgeWV0IHRvIHZlcmlmeSBpZiB0ZXN0cyB3b3JrIG9uIE9TWCAxMC41CiAgICAgICAgICAgICAjICgxMC40IGlzIGtub3duIHRvIGJlIGJhZCkKQEAgLTQwMSw2ICs0MDEsOCBAQAogICAgICAgICAgICAgIyBVbnN1cHBvcnRlZCBsb2NhbGUgb24gdGhpcyBzeXN0ZW0KICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoJ3Rlc3QgbmVlZHMgVHVya2lzaCBsb2NhbGUnKQogICAgICAgICBsb2MgPSBsb2NhbGUuZ2V0bG9jYWxlKGxvY2FsZS5MQ19DVFlQRSkKKyAgICAgICAgaWYgdmVyYm9zZToKKyAgICAgICAgICAgIHByaW50KCdnb3QgbG9jYWxlICVhJyAlIChsb2MsKSkKICAgICAgICAgbG9jYWxlLnNldGxvY2FsZShsb2NhbGUuTENfQ1RZUEUsIGxvYykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2MsIGxvY2FsZS5nZXRsb2NhbGUobG9jYWxlLkxDX0NUWVBFKSkKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9sb2dnaW5nLnB5IGIvTGliL3Rlc3QvdGVzdF9sb2dnaW5nLnB5CmluZGV4IDJkMjY0ZjguLmNiOTA4ZmIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbG9nZ2luZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X2xvZ2dpbmcucHkKQEAgLTM3LDEyICszNywxMSBAQAogaW1wb3J0IHJlCiBpbXBvcnQgc2VsZWN0CiBpbXBvcnQgc29ja2V0Ci1mcm9tIHNvY2tldHNlcnZlciBpbXBvcnQgVGhyZWFkaW5nVENQU2VydmVyLCBTdHJlYW1SZXF1ZXN0SGFuZGxlcgogaW1wb3J0IHN0cnVjdAogaW1wb3J0IHN5cwogaW1wb3J0IHRlbXBmaWxlCi1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgY2FwdHVyZWRfc3Rkb3V0LCBydW5fd2l0aF9sb2NhbGUsIHJ1bl91bml0dGVzdAotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IFRlc3RIYW5kbGVyLCBNYXRjaGVyCitmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgKGNhcHR1cmVkX3N0ZG91dCwgcnVuX3dpdGhfbG9jYWxlLCBydW5fdW5pdHRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGNoLCByZXF1aXJlc196bGliLCBUZXN0SGFuZGxlciwgTWF0Y2hlcikKIGltcG9ydCB0ZXh0d3JhcAogaW1wb3J0IHRpbWUKIGltcG9ydCB1bml0dGVzdApAQCAtNTAsOCArNDksMzEgQEAKIGltcG9ydCB3ZWFrcmVmCiB0cnk6CiAgICAgaW1wb3J0IHRocmVhZGluZworICAgICMgVGhlIGZvbGxvd2luZyBpbXBvcnRzIGFyZSBuZWVkZWQgb25seSBmb3IgdGVzdHMgd2hpY2gKKyAgICAjIHJlcXVpcmUgdGhyZWFkaW5nCisgICAgaW1wb3J0IGFzeW5jaGF0CisgICAgaW1wb3J0IGFzeW5jb3JlCisgICAgaW1wb3J0IGVycm5vCisgICAgZnJvbSBodHRwLnNlcnZlciBpbXBvcnQgSFRUUFNlcnZlciwgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlcgorICAgIGltcG9ydCBzbXRwZAorICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZSwgcGFyc2VfcXMKKyAgICBmcm9tIHNvY2tldHNlcnZlciBpbXBvcnQgKFRocmVhZGluZ1VEUFNlcnZlciwgRGF0YWdyYW1SZXF1ZXN0SGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZGluZ1RDUFNlcnZlciwgU3RyZWFtUmVxdWVzdEhhbmRsZXIpCiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgdGhyZWFkaW5nID0gTm9uZQordHJ5OgorICAgIGltcG9ydCB3aW4zMmV2dGxvZworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHdpbjMyZXZ0bG9nID0gTm9uZQordHJ5OgorICAgIGltcG9ydCB3aW4zMmV2dGxvZ3V0aWwKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICB3aW4zMmV2dGxvZ3V0aWwgPSBOb25lCisgICAgd2luMzJldnRsb2cgPSBOb25lCit0cnk6CisgICAgaW1wb3J0IHpsaWIKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBwYXNzCiAKIAogY2xhc3MgQmFzZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtNzksOSArMTAxLDcgQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIGxvZ2dpbmcuX3JlbGVhc2VMb2NrKCkKIAotICAgICAgICAjIFNldCB0d28gdW51c2VkIGxvZ2dlcnM6IG9uZSBub24tQVNDSUkgYW5kIG9uZSBVbmljb2RlLgotICAgICAgICAjIFRoaXMgaXMgdG8gdGVzdCBjb3JyZWN0IG9wZXJhdGlvbiB3aGVuIHNvcnRpbmcgZXhpc3RpbmcKLSAgICAgICAgIyBsb2dnZXJzIGluIHRoZSBjb25maWd1cmF0aW9uIGNvZGUuIFNlZSBpc3N1ZSA4MjAxLgorICAgICAgICAjIFNldCB0d28gdW51c2VkIGxvZ2dlcnMKICAgICAgICAgc2VsZi5sb2dnZXIxID0gbG9nZ2luZy5nZXRMb2dnZXIoIlx4YWJceGQ3XHhiYiIpCiAgICAgICAgIHNlbGYubG9nZ2VyMiA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJcdTAxM2ZcdTAwZDZcdTAwNDciKQogCkBAIC0xNDIsOCArMTYyLDcgQEAKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICAgICAgIyBTdHJpbmdJTy5TdHJpbmdJTyBsYWNrcyBhIHJlc2V0KCkgbWV0aG9kLgogICAgICAgICAgICAgYWN0dWFsX2xpbmVzID0gc3RyZWFtLmdldHZhbHVlKCkuc3BsaXRsaW5lcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFjdHVhbF9saW5lcyksIGxlbihleHBlY3RlZF92YWx1ZXMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnJXMgdnMuICVzJyAlIChhY3R1YWxfbGluZXMsIGV4cGVjdGVkX3ZhbHVlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFjdHVhbF9saW5lcyksIGxlbihleHBlY3RlZF92YWx1ZXMpKQogICAgICAgICBmb3IgYWN0dWFsLCBleHBlY3RlZCBpbiB6aXAoYWN0dWFsX2xpbmVzLCBleHBlY3RlZF92YWx1ZXMpOgogICAgICAgICAgICAgbWF0Y2ggPSBwYXQuc2VhcmNoKGFjdHVhbCkKICAgICAgICAgICAgIGlmIG5vdCBtYXRjaDoKQEAgLTE4MSwxNyArMjAwLDE3IEBACiAKICAgICAgICAgSU5GLmxvZyhsb2dnaW5nLkNSSVRJQ0FMLCBtKCkpCiAgICAgICAgIElORi5lcnJvcihtKCkpCi0gICAgICAgIElORi53YXJuKG0oKSkKKyAgICAgICAgSU5GLndhcm5pbmcobSgpKQogICAgICAgICBJTkYuaW5mbyhtKCkpCiAKICAgICAgICAgREVCLmxvZyhsb2dnaW5nLkNSSVRJQ0FMLCBtKCkpCiAgICAgICAgIERFQi5lcnJvcihtKCkpCi0gICAgICAgIERFQi53YXJuIChtKCkpCi0gICAgICAgIERFQi5pbmZvIChtKCkpCisgICAgICAgIERFQi53YXJuaW5nKG0oKSkKKyAgICAgICAgREVCLmluZm8obSgpKQogICAgICAgICBERUIuZGVidWcobSgpKQogCiAgICAgICAgICMgVGhlc2Ugc2hvdWxkIG5vdCBsb2cuCi0gICAgICAgIEVSUi53YXJuKG0oKSkKKyAgICAgICAgRVJSLndhcm5pbmcobSgpKQogICAgICAgICBFUlIuaW5mbyhtKCkpCiAgICAgICAgIEVSUi5kZWJ1ZyhtKCkpCiAKQEAgLTIyNSw3ICsyNDQsNyBAQAogICAgICAgICBJTkZfRVJSLmVycm9yKG0oKSkKIAogICAgICAgICAjIFRoZXNlIHNob3VsZCBub3QgbG9nLgotICAgICAgICBJTkZfRVJSLndhcm4obSgpKQorICAgICAgICBJTkZfRVJSLndhcm5pbmcobSgpKQogICAgICAgICBJTkZfRVJSLmluZm8obSgpKQogICAgICAgICBJTkZfRVJSLmRlYnVnKG0oKSkKIApAQCAtMjQ5LDE0ICsyNjgsMTQgQEAKICAgICAgICAgIyBUaGVzZSBzaG91bGQgbG9nLgogICAgICAgICBJTkZfVU5ERUYubG9nKGxvZ2dpbmcuQ1JJVElDQUwsIG0oKSkKICAgICAgICAgSU5GX1VOREVGLmVycm9yKG0oKSkKLSAgICAgICAgSU5GX1VOREVGLndhcm4obSgpKQorICAgICAgICBJTkZfVU5ERUYud2FybmluZyhtKCkpCiAgICAgICAgIElORl9VTkRFRi5pbmZvKG0oKSkKICAgICAgICAgSU5GX0VSUl9VTkRFRi5sb2cobG9nZ2luZy5DUklUSUNBTCwgbSgpKQogICAgICAgICBJTkZfRVJSX1VOREVGLmVycm9yKG0oKSkKIAogICAgICAgICAjIFRoZXNlIHNob3VsZCBub3QgbG9nLgogICAgICAgICBJTkZfVU5ERUYuZGVidWcobSgpKQotICAgICAgICBJTkZfRVJSX1VOREVGLndhcm4obSgpKQorICAgICAgICBJTkZfRVJSX1VOREVGLndhcm5pbmcobSgpKQogICAgICAgICBJTkZfRVJSX1VOREVGLmluZm8obSgpKQogICAgICAgICBJTkZfRVJSX1VOREVGLmRlYnVnKG0oKSkKIApAQCAtMjk1LDggKzMxNCw2IEBACiAgICAgICAgICAgICAoJ0lORi5CQURQQVJFTlQnLCAnSU5GTycsICc0JyksCiAgICAgICAgIF0pCiAKLSAgICBkZWYgdGVzdF9pbnZhbGlkX25hbWUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbG9nZ2luZy5nZXRMb2dnZXIsIGFueSkKIAogY2xhc3MgQmFzaWNGaWx0ZXJUZXN0KEJhc2VUZXN0KToKIApAQCAtMzU1LDYgKzM3MiwxMCBAQAogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgaGFuZGxlci5yZW1vdmVGaWx0ZXIoZmlsdGVyZnVuYykKIAorICAgIGRlZiB0ZXN0X2VtcHR5X2ZpbHRlcihzZWxmKToKKyAgICAgICAgZiA9IGxvZ2dpbmcuRmlsdGVyKCkKKyAgICAgICAgciA9IGxvZ2dpbmcubWFrZUxvZ1JlY29yZCh7J25hbWUnOiAnc3BhbS5lZ2dzJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmLmZpbHRlcihyKSkKIAogIwogIyAgIEZpcnN0LCB3ZSBkZWZpbmUgb3VyIGxldmVscy4gVGhlcmUgY2FuIGJlIGFzIG1hbnkgYXMgeW91IHdhbnQgLSB0aGUgb25seQpAQCAtNDk4LDYgKzUxOSw0NzggQEAKICAgICAgICAgICAgIGhhbmRsZXIucmVtb3ZlRmlsdGVyKGdhcnIpCiAKIAorY2xhc3MgSGFuZGxlclRlc3QoQmFzZVRlc3QpOgorICAgIGRlZiB0ZXN0X25hbWUoc2VsZik6CisgICAgICAgIGggPSBsb2dnaW5nLkhhbmRsZXIoKQorICAgICAgICBoLm5hbWUgPSAnZ2VuZXJpYycKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLm5hbWUsICdnZW5lcmljJykKKyAgICAgICAgaC5uYW1lID0gJ2Fub3RoZXJnZW5lcmljJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgubmFtZSwgJ2Fub3RoZXJnZW5lcmljJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgaC5lbWl0LCBOb25lKQorCisgICAgZGVmIHRlc3RfYnVpbHRpbl9oYW5kbGVycyhzZWxmKToKKyAgICAgICAgIyBXZSBjYW4ndCBhY3R1YWxseSAqdXNlKiB0b28gbWFueSBoYW5kbGVycyBpbiB0aGUgdGVzdHMsCisgICAgICAgICMgYnV0IHdlIGNhbiB0cnkgaW5zdGFudGlhdGluZyB0aGVtIHdpdGggdmFyaW91cyBvcHRpb25zCisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2xpbnV4JywgJ2RhcndpbicpOgorICAgICAgICAgICAgZm9yIGV4aXN0aW5nIGluIChUcnVlLCBGYWxzZSk6CisgICAgICAgICAgICAgICAgZmQsIGZuID0gdGVtcGZpbGUubWtzdGVtcCgpCisgICAgICAgICAgICAgICAgb3MuY2xvc2UoZmQpCisgICAgICAgICAgICAgICAgaWYgbm90IGV4aXN0aW5nOgorICAgICAgICAgICAgICAgICAgICBvcy51bmxpbmsoZm4pCisgICAgICAgICAgICAgICAgaCA9IGxvZ2dpbmcuaGFuZGxlcnMuV2F0Y2hlZEZpbGVIYW5kbGVyKGZuLCBkZWxheT1UcnVlKQorICAgICAgICAgICAgICAgIGlmIGV4aXN0aW5nOgorICAgICAgICAgICAgICAgICAgICBkZXYsIGlubyA9IGguZGV2LCBoLmlubworICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRldiwgLTEpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5vLCAtMSkKKyAgICAgICAgICAgICAgICAgICAgciA9IGxvZ2dpbmcubWFrZUxvZ1JlY29yZCh7J21zZyc6ICdUZXN0J30pCisgICAgICAgICAgICAgICAgICAgIGguaGFuZGxlKHIpCisgICAgICAgICAgICAgICAgICAgICMgTm93IHJlbW92ZSB0aGUgZmlsZS4KKyAgICAgICAgICAgICAgICAgICAgb3MudW5saW5rKGZuKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKGZuKSkKKyAgICAgICAgICAgICAgICAgICAgIyBUaGUgbmV4dCBjYWxsIHNob3VsZCByZWNyZWF0ZSB0aGUgZmlsZS4KKyAgICAgICAgICAgICAgICAgICAgaC5oYW5kbGUocikKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguZXhpc3RzKGZuKSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGguZGV2LCAtMSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmlubywgLTEpCisgICAgICAgICAgICAgICAgaC5jbG9zZSgpCisgICAgICAgICAgICAgICAgaWYgZXhpc3Rpbmc6CisgICAgICAgICAgICAgICAgICAgIG9zLnVubGluayhmbikKKyAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICAgICAgICAgICAgICBzb2NrbmFtZSA9ICcvdmFyL3J1bi9zeXNsb2cnCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNvY2tuYW1lID0gJy9kZXYvbG9nJworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGggPSBsb2dnaW5nLmhhbmRsZXJzLlN5c0xvZ0hhbmRsZXIoc29ja25hbWUpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLmZhY2lsaXR5LCBoLkxPR19VU0VSKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoLnVuaXhzb2NrZXQpCisgICAgICAgICAgICAgICAgaC5jbG9zZSgpCisgICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOiAjIHN5c2xvZ2QgbWlnaHQgbm90IGJlIGF2YWlsYWJsZQorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZm9yIG1ldGhvZCBpbiAoJ0dFVCcsICdQT1NUJywgJ1BVVCcpOgorICAgICAgICAgICAgaWYgbWV0aG9kID09ICdQVVQnOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxvZ2dpbmcuaGFuZGxlcnMuSFRUUEhhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvY2FsaG9zdCcsICcvbG9nJywgbWV0aG9kKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBoID0gbG9nZ2luZy5oYW5kbGVycy5IVFRQSGFuZGxlcignbG9jYWxob3N0JywgJy9sb2cnLCBtZXRob2QpCisgICAgICAgICAgICAgICAgaC5jbG9zZSgpCisgICAgICAgIGggPSBsb2dnaW5nLmhhbmRsZXJzLkJ1ZmZlcmluZ0hhbmRsZXIoMCkKKyAgICAgICAgciA9IGxvZ2dpbmcubWFrZUxvZ1JlY29yZCh7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGguc2hvdWxkRmx1c2gocikpCisgICAgICAgIGguY2xvc2UoKQorICAgICAgICBoID0gbG9nZ2luZy5oYW5kbGVycy5CdWZmZXJpbmdIYW5kbGVyKDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaC5zaG91bGRGbHVzaChyKSkKKyAgICAgICAgaC5jbG9zZSgpCisKKyAgICBAdW5pdHRlc3Quc2tpcElmKG9zLm5hbWUgPT0gJ250JywgJ1dhdGNoZWRGaWxlSGFuZGxlciBub3QgYXBwcm9wcmlhdGUgZm9yIFdpbmRvd3MuJykKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWRpbmcsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQorICAgIGRlZiB0ZXN0X3JhY2Uoc2VsZik6CisgICAgICAgICMgSXNzdWUgIzE0NjMyIHJlZmVycy4KKyAgICAgICAgZGVmIHJlbW92ZV9sb29wKGZuYW1lLCB0cmllcyk6CisgICAgICAgICAgICBmb3IgXyBpbiByYW5nZSh0cmllcyk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBvcy51bmxpbmsoZm5hbWUpCisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMDA0ICogcmFuZG9tLnJhbmRpbnQoMCwgNCkpCisKKyAgICAgICAgZGVsX2NvdW50ID0gNTAwCisgICAgICAgIGxvZ19jb3VudCA9IDUwMAorCisgICAgICAgIGZvciBkZWxheSBpbiAoRmFsc2UsIFRydWUpOgorICAgICAgICAgICAgZmQsIGZuID0gdGVtcGZpbGUubWtzdGVtcCgnLmxvZycsICd0ZXN0X2xvZ2dpbmctMy0nKQorICAgICAgICAgICAgb3MuY2xvc2UoZmQpCisgICAgICAgICAgICByZW1vdmVyID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9cmVtb3ZlX2xvb3AsIGFyZ3M9KGZuLCBkZWxfY291bnQpKQorICAgICAgICAgICAgcmVtb3Zlci5kYWVtb24gPSBUcnVlCisgICAgICAgICAgICByZW1vdmVyLnN0YXJ0KCkKKyAgICAgICAgICAgIGggPSBsb2dnaW5nLmhhbmRsZXJzLldhdGNoZWRGaWxlSGFuZGxlcihmbiwgZGVsYXk9ZGVsYXkpCisgICAgICAgICAgICBmID0gbG9nZ2luZy5Gb3JtYXR0ZXIoJyUoYXNjdGltZSlzOiAlKGxldmVsbmFtZSlzOiAlKG1lc3NhZ2UpcycpCisgICAgICAgICAgICBoLnNldEZvcm1hdHRlcihmKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKGxvZ19jb3VudCk6CisgICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4wMDUpCisgICAgICAgICAgICAgICAgICAgIHIgPSBsb2dnaW5nLm1ha2VMb2dSZWNvcmQoeydtc2cnOiAndGVzdGluZycgfSkKKyAgICAgICAgICAgICAgICAgICAgaC5oYW5kbGUocikKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgcmVtb3Zlci5qb2luKCkKKyAgICAgICAgICAgICAgICBoLmNsb3NlKCkKKyAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhmbik6CisgICAgICAgICAgICAgICAgICAgIG9zLnVubGluayhmbikKKworCitjbGFzcyBCYWRTdHJlYW0ob2JqZWN0KToKKyAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6CisgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcignZGVsaWJlcmF0ZSBtaXN0YWtlJykKKworY2xhc3MgVGVzdFN0cmVhbUhhbmRsZXIobG9nZ2luZy5TdHJlYW1IYW5kbGVyKToKKyAgICBkZWYgaGFuZGxlRXJyb3Ioc2VsZiwgcmVjb3JkKToKKyAgICAgICAgc2VsZi5lcnJvcl9yZWNvcmQgPSByZWNvcmQKKworY2xhc3MgU3RyZWFtSGFuZGxlclRlc3QoQmFzZVRlc3QpOgorICAgIGRlZiB0ZXN0X2Vycm9yX2hhbmRsaW5nKHNlbGYpOgorICAgICAgICBoID0gVGVzdFN0cmVhbUhhbmRsZXIoQmFkU3RyZWFtKCkpCisgICAgICAgIHIgPSBsb2dnaW5nLm1ha2VMb2dSZWNvcmQoe30pCisgICAgICAgIG9sZF9yYWlzZSA9IGxvZ2dpbmcucmFpc2VFeGNlcHRpb25zCisgICAgICAgIG9sZF9zdGRlcnIgPSBzeXMuc3RkZXJyCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGguaGFuZGxlKHIpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKGguZXJyb3JfcmVjb3JkLCByKQorICAgICAgICAgICAgaCA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihCYWRTdHJlYW0oKSkKKyAgICAgICAgICAgIHN5cy5zdGRlcnIgPSBzaW8gPSBpby5TdHJpbmdJTygpCisgICAgICAgICAgICBoLmhhbmRsZShyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbignXG5SdW50aW1lRXJyb3I6IGRlbGliZXJhdGUgbWlzdGFrZVxuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2lvLmdldHZhbHVlKCkpCisgICAgICAgICAgICBsb2dnaW5nLnJhaXNlRXhjZXB0aW9ucyA9IEZhbHNlCisgICAgICAgICAgICBzeXMuc3RkZXJyID0gc2lvID0gaW8uU3RyaW5nSU8oKQorICAgICAgICAgICAgaC5oYW5kbGUocikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIHNpby5nZXR2YWx1ZSgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgbG9nZ2luZy5yYWlzZUV4Y2VwdGlvbnMgPSBvbGRfcmFpc2UKKyAgICAgICAgICAgIHN5cy5zdGRlcnIgPSBvbGRfc3RkZXJyCisKKyMgLS0gVGhlIGZvbGxvd2luZyBzZWN0aW9uIGNvdWxkIGJlIG1vdmVkIGludG8gYSBzZXJ2ZXJfaGVscGVyLnB5IG1vZHVsZQorIyAtLSBpZiBpdCBwcm92ZXMgdG8gYmUgb2Ygd2lkZXIgdXRpbGl0eSB0aGFuIGp1c3QgdGVzdF9sb2dnaW5nCisKK2lmIHRocmVhZGluZzoKKyAgICBjbGFzcyBUZXN0U01UUENoYW5uZWwoc210cGQuU01UUENoYW5uZWwpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBkZXJpdmVkIGNsYXNzIGhhcyBoYWQgdG8gYmUgY3JlYXRlZCBiZWNhdXNlIHNtdHBkIGRvZXMgbm90CisgICAgICAgIHN1cHBvcnQgdXNlIG9mIGN1c3RvbSBjaGFubmVsIG1hcHMsIGFsdGhvdWdoIHRoZXkgYXJlIGFsbG93ZWQgYnkKKyAgICAgICAgYXN5bmNvcmUncyBkZXNpZ24uIElzc3VlICMxMTk1OSBoYXMgYmVlbiByYWlzZWQgdG8gYWRkcmVzcyB0aGlzLAorICAgICAgICBhbmQgaWYgcmVzb2x2ZWQgc2F0aXNmYWN0b3JpbHksIHNvbWUgb2YgdGhpcyBjb2RlIGNhbiBiZSByZW1vdmVkLgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlcnZlciwgY29ubiwgYWRkciwgc29ja21hcCk6CisgICAgICAgICAgICBhc3luY2hhdC5hc3luY19jaGF0Ll9faW5pdF9fKHNlbGYsIGNvbm4sIHNvY2ttYXApCisgICAgICAgICAgICBzZWxmLnNtdHBfc2VydmVyID0gc2VydmVyCisgICAgICAgICAgICBzZWxmLmNvbm4gPSBjb25uCisgICAgICAgICAgICBzZWxmLmFkZHIgPSBhZGRyCisgICAgICAgICAgICBzZWxmLmRhdGFfc2l6ZV9saW1pdCA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYucmVjZWl2ZWRfbGluZXMgPSBbXQorICAgICAgICAgICAgc2VsZi5zbXRwX3N0YXRlID0gc2VsZi5DT01NQU5ECisgICAgICAgICAgICBzZWxmLnNlZW5fZ3JlZXRpbmcgPSAnJworICAgICAgICAgICAgc2VsZi5tYWlsZnJvbSA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYucmNwdHRvcyA9IFtdCisgICAgICAgICAgICBzZWxmLnJlY2VpdmVkX2RhdGEgPSAnJworICAgICAgICAgICAgc2VsZi5mcWRuID0gc29ja2V0LmdldGZxZG4oKQorICAgICAgICAgICAgc2VsZi5udW1fYnl0ZXMgPSAwCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5wZWVyID0gY29ubi5nZXRwZWVybmFtZSgpCisgICAgICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGVycjoKKyAgICAgICAgICAgICAgICAjIGEgcmFjZSBjb25kaXRpb24gIG1heSBvY2N1ciBpZiB0aGUgb3RoZXIgZW5kIGlzIGNsb3NpbmcKKyAgICAgICAgICAgICAgICAjIGJlZm9yZSB3ZSBjYW4gZ2V0IHRoZSBwZWVybmFtZQorICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQorICAgICAgICAgICAgICAgIGlmIGVyci5hcmdzWzBdICE9IGVycm5vLkVOT1RDT05OOgorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgc2VsZi5wdXNoKCcyMjAgJXMgJXMnICUgKHNlbGYuZnFkbiwgc210cGQuX192ZXJzaW9uX18pKQorICAgICAgICAgICAgc2VsZi5zZXRfdGVybWluYXRvcihiJ1xyXG4nKQorICAgICAgICAgICAgc2VsZi5leHRlbmRlZF9zbXRwID0gRmFsc2UKKworCisgICAgY2xhc3MgVGVzdFNNVFBTZXJ2ZXIoc210cGQuU01UUFNlcnZlcik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGNsYXNzIGltcGxlbWVudHMgYSB0ZXN0IFNNVFAgc2VydmVyLgorCisgICAgICAgIDpwYXJhbSBhZGRyOiBBIChob3N0LCBwb3J0KSB0dXBsZSB3aGljaCB0aGUgc2VydmVyIGxpc3RlbnMgb24uCisgICAgICAgICAgICAgICAgICAgICBZb3UgY2FuIHNwZWNpZnkgYSBwb3J0IHZhbHVlIG9mIHplcm86IHRoZSBzZXJ2ZXIncworICAgICAgICAgICAgICAgICAgICAgKnBvcnQqIGF0dHJpYnV0ZSB3aWxsIGhvbGQgdGhlIGFjdHVhbCBwb3J0IG51bWJlcgorICAgICAgICAgICAgICAgICAgICAgdXNlZCwgd2hpY2ggY2FuIGJlIHVzZWQgaW4gY2xpZW50IGNvbm5lY3Rpb25zLgorICAgICAgICA6cGFyYW0gaGFuZGxlcjogQSBjYWxsYWJsZSB3aGljaCB3aWxsIGJlIGNhbGxlZCB0byBwcm9jZXNzCisgICAgICAgICAgICAgICAgICAgICAgICBpbmNvbWluZyBtZXNzYWdlcy4gVGhlIGhhbmRsZXIgd2lsbCBiZSBwYXNzZWQKKyAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBjbGllbnQgYWRkcmVzcyB0dXBsZSwgd2hvIHRoZSBtZXNzYWdlIGlzIGZyb20sCisgICAgICAgICAgICAgICAgICAgICAgICBhIGxpc3Qgb2YgcmVjaXBpZW50cyBhbmQgdGhlIG1lc3NhZ2UgZGF0YS4KKyAgICAgICAgOnBhcmFtIHBvbGxfaW50ZXJ2YWw6IFRoZSBpbnRlcnZhbCwgaW4gc2Vjb25kcywgdXNlZCBpbiB0aGUgdW5kZXJseWluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZ1bmM6YHNlbGVjdGAgb3IgOmZ1bmM6YHBvbGxgIGNhbGwgYnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpmdW5jOmBhc3luY29yZS5sb29wYC4KKyAgICAgICAgOnBhcmFtIHNvY2ttYXA6IEEgZGljdGlvbmFyeSB3aGljaCB3aWxsIGJlIHVzZWQgdG8gaG9sZAorICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzOmBhc3luY29yZS5kaXNwYXRjaGVyYCBpbnN0YW5jZXMgdXNlZCBieQorICAgICAgICAgICAgICAgICAgICAgICAgOmZ1bmM6YGFzeW5jb3JlLmxvb3BgLiBUaGlzIGF2b2lkcyBjaGFuZ2luZyB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIDptb2Q6YGFzeW5jb3JlYCBtb2R1bGUncyBnbG9iYWwgc3RhdGUuCisgICAgICAgICIiIgorICAgICAgICBjaGFubmVsX2NsYXNzID0gVGVzdFNNVFBDaGFubmVsCisKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHIsIGhhbmRsZXIsIHBvbGxfaW50ZXJ2YWwsIHNvY2ttYXApOgorICAgICAgICAgICAgc2VsZi5fbG9jYWxhZGRyID0gYWRkcgorICAgICAgICAgICAgc2VsZi5fcmVtb3RlYWRkciA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuZGF0YV9zaXplX2xpbWl0ID0gTm9uZQorICAgICAgICAgICAgc2VsZi5zb2NrbWFwID0gc29ja21hcAorICAgICAgICAgICAgYXN5bmNvcmUuZGlzcGF0Y2hlci5fX2luaXRfXyhzZWxmLCBtYXA9c29ja21hcCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzb2NrID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgICAgICAgICAgICAgIHNvY2suc2V0YmxvY2tpbmcoMCkKKyAgICAgICAgICAgICAgICBzZWxmLnNldF9zb2NrZXQoc29jaywgbWFwPXNvY2ttYXApCisgICAgICAgICAgICAgICAgIyB0cnkgdG8gcmUtdXNlIGEgc2VydmVyIHBvcnQgaWYgcG9zc2libGUKKyAgICAgICAgICAgICAgICBzZWxmLnNldF9yZXVzZV9hZGRyKCkKKyAgICAgICAgICAgICAgICBzZWxmLmJpbmQoYWRkcikKKyAgICAgICAgICAgICAgICBzZWxmLnBvcnQgPSBzb2NrLmdldHNvY2tuYW1lKClbMV0KKyAgICAgICAgICAgICAgICBzZWxmLmxpc3Rlbig1KQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHNlbGYuY2xvc2UoKQorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBzZWxmLl9oYW5kbGVyID0gaGFuZGxlcgorICAgICAgICAgICAgc2VsZi5fdGhyZWFkID0gTm9uZQorICAgICAgICAgICAgc2VsZi5wb2xsX2ludGVydmFsID0gcG9sbF9pbnRlcnZhbAorCisgICAgICAgIGRlZiBoYW5kbGVfYWNjZXB0ZWQoc2VsZiwgY29ubiwgYWRkcik6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFJlZGVmaW5lZCBvbmx5IGJlY2F1c2UgdGhlIGJhc2UgY2xhc3MgZG9lcyBub3QgcGFzcyBpbiBhCisgICAgICAgICAgICBtYXAsIGZvcmNpbmcgdXNlIG9mIGEgZ2xvYmFsIGluIDptb2Q6YGFzeW5jb3JlYC4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgY2hhbm5lbCA9IHNlbGYuY2hhbm5lbF9jbGFzcyhzZWxmLCBjb25uLCBhZGRyLCBzZWxmLnNvY2ttYXApCisKKyAgICAgICAgZGVmIHByb2Nlc3NfbWVzc2FnZShzZWxmLCBwZWVyLCBtYWlsZnJvbSwgcmNwdHRvcywgZGF0YSk6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIERlbGVnYXRlcyB0byB0aGUgaGFuZGxlciBwYXNzZWQgaW4gdG8gdGhlIHNlcnZlcidzIGNvbnN0cnVjdG9yLgorCisgICAgICAgICAgICBUeXBpY2FsbHksIHRoaXMgd2lsbCBiZSBhIHRlc3QgY2FzZSBtZXRob2QuCisgICAgICAgICAgICA6cGFyYW0gcGVlcjogVGhlIGNsaWVudCAoaG9zdCwgcG9ydCkgdHVwbGUuCisgICAgICAgICAgICA6cGFyYW0gbWFpbGZyb206IFRoZSBhZGRyZXNzIG9mIHRoZSBzZW5kZXIuCisgICAgICAgICAgICA6cGFyYW0gcmNwdHRvczogVGhlIGFkZHJlc3NlcyBvZiB0aGUgcmVjaXBpZW50cy4KKyAgICAgICAgICAgIDpwYXJhbSBkYXRhOiBUaGUgbWVzc2FnZS4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgc2VsZi5faGFuZGxlcihwZWVyLCBtYWlsZnJvbSwgcmNwdHRvcywgZGF0YSkKKworICAgICAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFN0YXJ0IHRoZSBzZXJ2ZXIgcnVubmluZyBvbiBhIHNlcGFyYXRlIGRhZW1vbiB0aHJlYWQuCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHNlbGYuX3RocmVhZCA9IHQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLnNlcnZlX2ZvcmV2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShzZWxmLnBvbGxfaW50ZXJ2YWwsKSkKKyAgICAgICAgICAgIHQuc2V0RGFlbW9uKFRydWUpCisgICAgICAgICAgICB0LnN0YXJ0KCkKKworICAgICAgICBkZWYgc2VydmVfZm9yZXZlcihzZWxmLCBwb2xsX2ludGVydmFsKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgUnVuIHRoZSA6bW9kOmBhc3luY29yZWAgbG9vcCB1bnRpbCBub3JtYWwgdGVybWluYXRpb24KKyAgICAgICAgICAgIGNvbmRpdGlvbnMgYXJpc2UuCisgICAgICAgICAgICA6cGFyYW0gcG9sbF9pbnRlcnZhbDogVGhlIGludGVydmFsLCBpbiBzZWNvbmRzLCB1c2VkIGluIHRoZSB1bmRlcmx5aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmZ1bmM6YHNlbGVjdGAgb3IgOmZ1bmM6YHBvbGxgIGNhbGwgYnkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ZnVuYzpgYXN5bmNvcmUubG9vcGAuCisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBhc3luY29yZS5sb29wKHBvbGxfaW50ZXJ2YWwsIG1hcD1zZWxmLnNvY2ttYXApCisgICAgICAgICAgICBleGNlcHQgc2VsZWN0LmVycm9yOgorICAgICAgICAgICAgICAgICMgT24gRnJlZUJTRCA4LCBjbG9zaW5nIHRoZSBzZXJ2ZXIgcmVwZWF0YWJseQorICAgICAgICAgICAgICAgICMgcmFpc2VzIHRoaXMgZXJyb3IuIFdlIHN3YWxsb3cgaXQgaWYgdGhlCisgICAgICAgICAgICAgICAgIyBzZXJ2ZXIgaGFzIGJlZW4gY2xvc2VkLgorICAgICAgICAgICAgICAgIGlmIHNlbGYuY29ubmVjdGVkIG9yIHNlbGYuYWNjZXB0aW5nOgorICAgICAgICAgICAgICAgICAgICByYWlzZQorCisgICAgICAgIGRlZiBzdG9wKHNlbGYsIHRpbWVvdXQ9Tm9uZSk6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFN0b3AgdGhlIHRocmVhZCBieSBjbG9zaW5nIHRoZSBzZXJ2ZXIgaW5zdGFuY2UuCisgICAgICAgICAgICBXYWl0IGZvciB0aGUgc2VydmVyIHRocmVhZCB0byB0ZXJtaW5hdGUuCisKKyAgICAgICAgICAgIDpwYXJhbSB0aW1lb3V0OiBIb3cgbG9uZyB0byB3YWl0IGZvciB0aGUgc2VydmVyIHRocmVhZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHRlcm1pbmF0ZS4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgc2VsZi5jbG9zZSgpCisgICAgICAgICAgICBzZWxmLl90aHJlYWQuam9pbih0aW1lb3V0KQorICAgICAgICAgICAgc2VsZi5fdGhyZWFkID0gTm9uZQorCisgICAgY2xhc3MgQ29udHJvbE1peGluKG9iamVjdCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIG1peGluIGlzIHVzZWQgdG8gc3RhcnQgYSBzZXJ2ZXIgb24gYSBzZXBhcmF0ZSB0aHJlYWQsIGFuZAorICAgICAgICBzaHV0IGl0IGRvd24gcHJvZ3JhbW1hdGljYWxseS4gUmVxdWVzdCBoYW5kbGluZyBpcyBzaW1wbGlmaWVkIC0gaW5zdGVhZAorICAgICAgICBvZiBuZWVkaW5nIHRvIGRlcml2ZSBhIHN1aXRhYmxlIFJlcXVlc3RIYW5kbGVyIHN1YmNsYXNzLCB5b3UganVzdAorICAgICAgICBwcm92aWRlIGEgY2FsbGFibGUgd2hpY2ggd2lsbCBiZSBwYXNzZWQgZWFjaCByZWNlaXZlZCByZXF1ZXN0IHRvIGJlCisgICAgICAgIHByb2Nlc3NlZC4KKworICAgICAgICA6cGFyYW0gaGFuZGxlcjogQSBoYW5kbGVyIGNhbGxhYmxlIHdoaWNoIHdpbGwgYmUgY2FsbGVkIHdpdGggYQorICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlIHBhcmFtZXRlciAtIHRoZSByZXF1ZXN0IC0gaW4gb3JkZXIgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MgdGhlIHJlcXVlc3QuIFRoaXMgaGFuZGxlciBpcyBjYWxsZWQgb24gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIgdGhyZWFkLCBlZmZlY3RpdmVseSBtZWFuaW5nIHRoYXQgcmVxdWVzdHMgYXJlCisgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWQgc2VyaWFsbHkuIFdoaWxlIG5vdCBxdWl0ZSBXZWIgc2NhbGUgOy0pLAorICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyBzaG91bGQgYmUgZmluZSBmb3IgdGVzdGluZyBhcHBsaWNhdGlvbnMuCisgICAgICAgIDpwYXJhbSBwb2xsX2ludGVydmFsOiBUaGUgcG9sbGluZyBpbnRlcnZhbCBpbiBzZWNvbmRzLgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhhbmRsZXIsIHBvbGxfaW50ZXJ2YWwpOgorICAgICAgICAgICAgc2VsZi5fdGhyZWFkID0gTm9uZQorICAgICAgICAgICAgc2VsZi5wb2xsX2ludGVydmFsID0gcG9sbF9pbnRlcnZhbAorICAgICAgICAgICAgc2VsZi5faGFuZGxlciA9IGhhbmRsZXIKKyAgICAgICAgICAgIHNlbGYucmVhZHkgPSB0aHJlYWRpbmcuRXZlbnQoKQorCisgICAgICAgIGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgQ3JlYXRlIGEgZGFlbW9uIHRocmVhZCB0byBydW4gdGhlIHNlcnZlciwgYW5kIHN0YXJ0IGl0LgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBzZWxmLl90aHJlYWQgPSB0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5zZXJ2ZV9mb3JldmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oc2VsZi5wb2xsX2ludGVydmFsLCkpCisgICAgICAgICAgICB0LnNldERhZW1vbihUcnVlKQorICAgICAgICAgICAgdC5zdGFydCgpCisKKyAgICAgICAgZGVmIHNlcnZlX2ZvcmV2ZXIoc2VsZiwgcG9sbF9pbnRlcnZhbCk6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFJ1biB0aGUgc2VydmVyLiBTZXQgdGhlIHJlYWR5IGZsYWcgYmVmb3JlIGVudGVyaW5nIHRoZQorICAgICAgICAgICAgc2VydmljZSBsb29wLgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBzZWxmLnJlYWR5LnNldCgpCisgICAgICAgICAgICBzdXBlcihDb250cm9sTWl4aW4sIHNlbGYpLnNlcnZlX2ZvcmV2ZXIocG9sbF9pbnRlcnZhbCkKKworICAgICAgICBkZWYgc3RvcChzZWxmLCB0aW1lb3V0PU5vbmUpOgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBUZWxsIHRoZSBzZXJ2ZXIgdGhyZWFkIHRvIHN0b3AsIGFuZCB3YWl0IGZvciBpdCB0byBkbyBzby4KKworICAgICAgICAgICAgOnBhcmFtIHRpbWVvdXQ6IEhvdyBsb25nIHRvIHdhaXQgZm9yIHRoZSBzZXJ2ZXIgdGhyZWFkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGVybWluYXRlLgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBzZWxmLnNodXRkb3duKCkKKyAgICAgICAgICAgIGlmIHNlbGYuX3RocmVhZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBzZWxmLl90aHJlYWQuam9pbih0aW1lb3V0KQorICAgICAgICAgICAgICAgIHNlbGYuX3RocmVhZCA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2Nsb3NlKCkKKyAgICAgICAgICAgIHNlbGYucmVhZHkuY2xlYXIoKQorCisgICAgY2xhc3MgVGVzdEhUVFBTZXJ2ZXIoQ29udHJvbE1peGluLCBIVFRQU2VydmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIEFuIEhUVFAgc2VydmVyIHdoaWNoIGlzIGNvbnRyb2xsYWJsZSB1c2luZyA6Y2xhc3M6YENvbnRyb2xNaXhpbmAuCisKKyAgICAgICAgOnBhcmFtIGFkZHI6IEEgdHVwbGUgd2l0aCB0aGUgSVAgYWRkcmVzcyBhbmQgcG9ydCB0byBsaXN0ZW4gb24uCisgICAgICAgIDpwYXJhbSBoYW5kbGVyOiBBIGhhbmRsZXIgY2FsbGFibGUgd2hpY2ggd2lsbCBiZSBjYWxsZWQgd2l0aCBhCisgICAgICAgICAgICAgICAgICAgICAgICBzaW5nbGUgcGFyYW1ldGVyIC0gdGhlIHJlcXVlc3QgLSBpbiBvcmRlciB0bworICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2VzcyB0aGUgcmVxdWVzdC4KKyAgICAgICAgOnBhcmFtIHBvbGxfaW50ZXJ2YWw6IFRoZSBwb2xsaW5nIGludGVydmFsIGluIHNlY29uZHMuCisgICAgICAgIDpwYXJhbSBsb2c6IFBhc3MgYGBUcnVlYGAgdG8gZW5hYmxlIGxvZyBtZXNzYWdlcy4KKyAgICAgICAgIiIiCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyLCBoYW5kbGVyLCBwb2xsX2ludGVydmFsPTAuNSwKKyAgICAgICAgICAgICAgICAgICAgIGxvZz1GYWxzZSwgc3NsY3R4PU5vbmUpOgorICAgICAgICAgICAgY2xhc3MgRGVsZWdhdGluZ0hUVFBSZXF1ZXN0SGFuZGxlcihCYXNlSFRUUFJlcXVlc3RIYW5kbGVyKToKKyAgICAgICAgICAgICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSwgZGVmYXVsdD1Ob25lKToKKyAgICAgICAgICAgICAgICAgICAgaWYgbmFtZS5zdGFydHN3aXRoKCdkb18nKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnByb2Nlc3NfcmVxdWVzdAorICAgICAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcihuYW1lKQorCisgICAgICAgICAgICAgICAgZGVmIHByb2Nlc3NfcmVxdWVzdChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIuX2hhbmRsZXIoc2VsZikKKworICAgICAgICAgICAgICAgIGRlZiBsb2dfbWVzc2FnZShzZWxmLCBmb3JtYXQsICphcmdzKToKKyAgICAgICAgICAgICAgICAgICAgaWYgbG9nOgorICAgICAgICAgICAgICAgICAgICAgICAgc3VwZXIoRGVsZWdhdGluZ0hUVFBSZXF1ZXN0SGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpLmxvZ19tZXNzYWdlKGZvcm1hdCwgKmFyZ3MpCisgICAgICAgICAgICBIVFRQU2VydmVyLl9faW5pdF9fKHNlbGYsIGFkZHIsIERlbGVnYXRpbmdIVFRQUmVxdWVzdEhhbmRsZXIpCisgICAgICAgICAgICBDb250cm9sTWl4aW4uX19pbml0X18oc2VsZiwgaGFuZGxlciwgcG9sbF9pbnRlcnZhbCkKKyAgICAgICAgICAgIHNlbGYuc3NsY3R4ID0gc3NsY3R4CisKKyAgICAgICAgZGVmIGdldF9yZXF1ZXN0KHNlbGYpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNvY2ssIGFkZHIgPSBzZWxmLnNvY2tldC5hY2NlcHQoKQorICAgICAgICAgICAgICAgIGlmIHNlbGYuc3NsY3R4OgorICAgICAgICAgICAgICAgICAgICBzb2NrID0gc2VsZi5zc2xjdHgud3JhcF9zb2NrZXQoc29jaywgc2VydmVyX3NpZGU9VHJ1ZSkKKyAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICAgICAgICAgICAgICAjIHNvY2tldCBlcnJvcnMgYXJlIHNpbGVuY2VkIGJ5IHRoZSBjYWxsZXIsIHByaW50IHRoZW0gaGVyZQorICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkdvdCBhbiBlcnJvcjpcbiVzXG4iICUgZSkKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgcmV0dXJuIHNvY2ssIGFkZHIKKworICAgIGNsYXNzIFRlc3RUQ1BTZXJ2ZXIoQ29udHJvbE1peGluLCBUaHJlYWRpbmdUQ1BTZXJ2ZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQSBUQ1Agc2VydmVyIHdoaWNoIGlzIGNvbnRyb2xsYWJsZSB1c2luZyA6Y2xhc3M6YENvbnRyb2xNaXhpbmAuCisKKyAgICAgICAgOnBhcmFtIGFkZHI6IEEgdHVwbGUgd2l0aCB0aGUgSVAgYWRkcmVzcyBhbmQgcG9ydCB0byBsaXN0ZW4gb24uCisgICAgICAgIDpwYXJhbSBoYW5kbGVyOiBBIGhhbmRsZXIgY2FsbGFibGUgd2hpY2ggd2lsbCBiZSBjYWxsZWQgd2l0aCBhIHNpbmdsZQorICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyIC0gdGhlIHJlcXVlc3QgLSBpbiBvcmRlciB0byBwcm9jZXNzIHRoZSByZXF1ZXN0LgorICAgICAgICA6cGFyYW0gcG9sbF9pbnRlcnZhbDogVGhlIHBvbGxpbmcgaW50ZXJ2YWwgaW4gc2Vjb25kcy4KKyAgICAgICAgOmJpbmRfYW5kX2FjdGl2YXRlOiBJZiBUcnVlICh0aGUgZGVmYXVsdCksIGJpbmRzIHRoZSBzZXJ2ZXIgYW5kIHN0YXJ0cyBpdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RlbmluZy4gSWYgRmFsc2UsIHlvdSBuZWVkIHRvIGNhbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6bWV0aDpgc2VydmVyX2JpbmRgIGFuZCA6bWV0aDpgc2VydmVyX2FjdGl2YXRlYCBhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvbWUgbGF0ZXIgdGltZSBiZWZvcmUgY2FsbGluZyA6bWV0aDpgc3RhcnRgLCBzbyB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHNlcnZlciB3aWxsIHNldCB1cCB0aGUgc29ja2V0IGFuZCBsaXN0ZW4gb24gaXQuCisgICAgICAgICIiIgorCisgICAgICAgIGFsbG93X3JldXNlX2FkZHJlc3MgPSBUcnVlCisKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHIsIGhhbmRsZXIsIHBvbGxfaW50ZXJ2YWw9MC41LAorICAgICAgICAgICAgICAgICAgICAgYmluZF9hbmRfYWN0aXZhdGU9VHJ1ZSk6CisgICAgICAgICAgICBjbGFzcyBEZWxlZ2F0aW5nVENQUmVxdWVzdEhhbmRsZXIoU3RyZWFtUmVxdWVzdEhhbmRsZXIpOgorCisgICAgICAgICAgICAgICAgZGVmIGhhbmRsZShzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIuX2hhbmRsZXIoc2VsZikKKyAgICAgICAgICAgIFRocmVhZGluZ1RDUFNlcnZlci5fX2luaXRfXyhzZWxmLCBhZGRyLCBEZWxlZ2F0aW5nVENQUmVxdWVzdEhhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluZF9hbmRfYWN0aXZhdGUpCisgICAgICAgICAgICBDb250cm9sTWl4aW4uX19pbml0X18oc2VsZiwgaGFuZGxlciwgcG9sbF9pbnRlcnZhbCkKKworICAgICAgICBkZWYgc2VydmVyX2JpbmQoc2VsZik6CisgICAgICAgICAgICBzdXBlcihUZXN0VENQU2VydmVyLCBzZWxmKS5zZXJ2ZXJfYmluZCgpCisgICAgICAgICAgICBzZWxmLnBvcnQgPSBzZWxmLnNvY2tldC5nZXRzb2NrbmFtZSgpWzFdCisKKyAgICBjbGFzcyBUZXN0VURQU2VydmVyKENvbnRyb2xNaXhpbiwgVGhyZWFkaW5nVURQU2VydmVyKToKKyAgICAgICAgIiIiCisgICAgICAgIEEgVURQIHNlcnZlciB3aGljaCBpcyBjb250cm9sbGFibGUgdXNpbmcgOmNsYXNzOmBDb250cm9sTWl4aW5gLgorCisgICAgICAgIDpwYXJhbSBhZGRyOiBBIHR1cGxlIHdpdGggdGhlIElQIGFkZHJlc3MgYW5kIHBvcnQgdG8gbGlzdGVuIG9uLgorICAgICAgICA6cGFyYW0gaGFuZGxlcjogQSBoYW5kbGVyIGNhbGxhYmxlIHdoaWNoIHdpbGwgYmUgY2FsbGVkIHdpdGggYQorICAgICAgICAgICAgICAgICAgICAgICAgc2luZ2xlIHBhcmFtZXRlciAtIHRoZSByZXF1ZXN0IC0gaW4gb3JkZXIgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MgdGhlIHJlcXVlc3QuCisgICAgICAgIDpwYXJhbSBwb2xsX2ludGVydmFsOiBUaGUgcG9sbGluZyBpbnRlcnZhbCBmb3Igc2h1dGRvd24gcmVxdWVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBzZWNvbmRzLgorICAgICAgICA6YmluZF9hbmRfYWN0aXZhdGU6IElmIFRydWUgKHRoZSBkZWZhdWx0KSwgYmluZHMgdGhlIHNlcnZlciBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydHMgaXQgbGlzdGVuaW5nLiBJZiBGYWxzZSwgeW91IG5lZWQgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsIDptZXRoOmBzZXJ2ZXJfYmluZGAgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgOm1ldGg6YHNlcnZlcl9hY3RpdmF0ZWAgYXQgc29tZSBsYXRlciB0aW1lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlIGNhbGxpbmcgOm1ldGg6YHN0YXJ0YCwgc28gdGhhdCB0aGUgc2VydmVyIHdpbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgdXAgdGhlIHNvY2tldCBhbmQgbGlzdGVuIG9uIGl0LgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHIsIGhhbmRsZXIsIHBvbGxfaW50ZXJ2YWw9MC41LAorICAgICAgICAgICAgICAgICAgICAgYmluZF9hbmRfYWN0aXZhdGU9VHJ1ZSk6CisgICAgICAgICAgICBjbGFzcyBEZWxlZ2F0aW5nVURQUmVxdWVzdEhhbmRsZXIoRGF0YWdyYW1SZXF1ZXN0SGFuZGxlcik6CisKKyAgICAgICAgICAgICAgICBkZWYgaGFuZGxlKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlci5faGFuZGxlcihzZWxmKQorCisgICAgICAgICAgICAgICAgZGVmIGZpbmlzaChzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYud2ZpbGUuZ2V0dmFsdWUoKQorICAgICAgICAgICAgICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cGVyKERlbGVnYXRpbmdVRFBSZXF1ZXN0SGFuZGxlciwgc2VsZikuZmluaXNoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyLl9jbG9zZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAgICAgIFRocmVhZGluZ1VEUFNlcnZlci5fX2luaXRfXyhzZWxmLCBhZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlbGVnYXRpbmdVRFBSZXF1ZXN0SGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kX2FuZF9hY3RpdmF0ZSkKKyAgICAgICAgICAgIENvbnRyb2xNaXhpbi5fX2luaXRfXyhzZWxmLCBoYW5kbGVyLCBwb2xsX2ludGVydmFsKQorICAgICAgICAgICAgc2VsZi5fY2xvc2VkID0gRmFsc2UKKworICAgICAgICBkZWYgc2VydmVyX2JpbmQoc2VsZik6CisgICAgICAgICAgICBzdXBlcihUZXN0VURQU2VydmVyLCBzZWxmKS5zZXJ2ZXJfYmluZCgpCisgICAgICAgICAgICBzZWxmLnBvcnQgPSBzZWxmLnNvY2tldC5nZXRzb2NrbmFtZSgpWzFdCisKKyAgICAgICAgZGVmIHNlcnZlcl9jbG9zZShzZWxmKToKKyAgICAgICAgICAgIHN1cGVyKFRlc3RVRFBTZXJ2ZXIsIHNlbGYpLnNlcnZlcl9jbG9zZSgpCisgICAgICAgICAgICBzZWxmLl9jbG9zZWQgPSBUcnVlCisKKyMgLSBlbmQgb2Ygc2VydmVyX2hlbHBlciBzZWN0aW9uCisKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZGluZywgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBTTVRQSGFuZGxlclRlc3QoQmFzZVRlc3QpOgorICAgIGRlZiB0ZXN0X2Jhc2ljKHNlbGYpOgorICAgICAgICBzb2NrbWFwID0ge30KKyAgICAgICAgc2VydmVyID0gVGVzdFNNVFBTZXJ2ZXIoKCdsb2NhbGhvc3QnLCAwKSwgc2VsZi5wcm9jZXNzX21lc3NhZ2UsIDAuMDAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrbWFwKQorICAgICAgICBzZXJ2ZXIuc3RhcnQoKQorICAgICAgICBhZGRyID0gKCdsb2NhbGhvc3QnLCBzZXJ2ZXIucG9ydCkKKyAgICAgICAgaCA9IGxvZ2dpbmcuaGFuZGxlcnMuU01UUEhhbmRsZXIoYWRkciwgJ21lJywgJ3lvdScsICdMb2cnLCB0aW1lb3V0PTUuMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoLnRvYWRkcnMsIFsneW91J10pCisgICAgICAgIHNlbGYubWVzc2FnZXMgPSBbXQorICAgICAgICByID0gbG9nZ2luZy5tYWtlTG9nUmVjb3JkKHsnbXNnJzogJ0hlbGxvJ30pCisgICAgICAgIHNlbGYuaGFuZGxlZCA9IHRocmVhZGluZy5FdmVudCgpCisgICAgICAgIGguaGFuZGxlKHIpCisgICAgICAgIHNlbGYuaGFuZGxlZC53YWl0KDUuMCkgICMgMTQzMTQ6IGRvbid0IHdhaXQgZm9yZXZlcgorICAgICAgICBzZXJ2ZXIuc3RvcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmhhbmRsZWQuaXNfc2V0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYubWVzc2FnZXMpLCAxKQorICAgICAgICBwZWVyLCBtYWlsZnJvbSwgcmNwdHRvcywgZGF0YSA9IHNlbGYubWVzc2FnZXNbMF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsZnJvbSwgJ21lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyY3B0dG9zLCBbJ3lvdSddKQorICAgICAgICBzZWxmLmFzc2VydEluKCdcblN1YmplY3Q6IExvZ1xuJywgZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRhdGEuZW5kc3dpdGgoJ1xuXG5IZWxsbycpKQorICAgICAgICBoLmNsb3NlKCkKKworICAgIGRlZiBwcm9jZXNzX21lc3NhZ2Uoc2VsZiwgKmFyZ3MpOgorICAgICAgICBzZWxmLm1lc3NhZ2VzLmFwcGVuZChhcmdzKQorICAgICAgICBzZWxmLmhhbmRsZWQuc2V0KCkKKwogY2xhc3MgTWVtb3J5SGFuZGxlclRlc3QoQmFzZVRlc3QpOgogCiAgICAgIiIiVGVzdHMgZm9yIHRoZSBNZW1vcnlIYW5kbGVyLiIiIgpAQCAtNTI1LDcgKzEwMTgsNyBAQAogICAgICAgICBzZWxmLm1lbV9sb2dnZXIuaW5mbyhzZWxmLm5leHRfbWVzc2FnZSgpKQogICAgICAgICBzZWxmLmFzc2VydF9sb2dfbGluZXMoW10pCiAgICAgICAgICMgVGhpcyB3aWxsIGZsdXNoIGJlY2F1c2UgdGhlIGxldmVsIGlzID49IGxvZ2dpbmcuV0FSTklORwotICAgICAgICBzZWxmLm1lbV9sb2dnZXIud2FybihzZWxmLm5leHRfbWVzc2FnZSgpKQorICAgICAgICBzZWxmLm1lbV9sb2dnZXIud2FybmluZyhzZWxmLm5leHRfbWVzc2FnZSgpKQogICAgICAgICBsaW5lcyA9IFsKICAgICAgICAgICAgICgnREVCVUcnLCAnMScpLAogICAgICAgICAgICAgKCdJTkZPJywgJzInKSwKQEAgLTg3MCw2OCArMTM2Myw2IEBACiAgICAgICAgICAgICAjIE9yaWdpbmFsIGxvZ2dlciBvdXRwdXQgaXMgZW1wdHkuCiAgICAgICAgICAgICBzZWxmLmFzc2VydF9sb2dfbGluZXMoW10pCiAKLWNsYXNzIExvZ1JlY29yZFN0cmVhbUhhbmRsZXIoU3RyZWFtUmVxdWVzdEhhbmRsZXIpOgotCi0gICAgIiIiSGFuZGxlciBmb3IgYSBzdHJlYW1pbmcgbG9nZ2luZyByZXF1ZXN0LiBJdCBzYXZlcyB0aGUgbG9nIG1lc3NhZ2UgaW4gdGhlCi0gICAgVENQIHNlcnZlcidzICdsb2dfb3V0cHV0JyBhdHRyaWJ1dGUuIiIiCi0KLSAgICBUQ1BfTE9HX0VORCA9ICIhISFFTkQhISEiCi0KLSAgICBkZWYgaGFuZGxlKHNlbGYpOgotICAgICAgICAiIiJIYW5kbGUgbXVsdGlwbGUgcmVxdWVzdHMgLSBlYWNoIGV4cGVjdGVkIHRvIGJlIG9mIDQtYnl0ZSBsZW5ndGgsCi0gICAgICAgIGZvbGxvd2VkIGJ5IHRoZSBMb2dSZWNvcmQgaW4gcGlja2xlIGZvcm1hdC4gTG9ncyB0aGUgcmVjb3JkCi0gICAgICAgIGFjY29yZGluZyB0byB3aGF0ZXZlciBwb2xpY3kgaXMgY29uZmlndXJlZCBsb2NhbGx5LiIiIgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgY2h1bmsgPSBzZWxmLmNvbm5lY3Rpb24ucmVjdig0KQotICAgICAgICAgICAgaWYgbGVuKGNodW5rKSA8IDQ6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIHNsZW4gPSBzdHJ1Y3QudW5wYWNrKCI+TCIsIGNodW5rKVswXQotICAgICAgICAgICAgY2h1bmsgPSBzZWxmLmNvbm5lY3Rpb24ucmVjdihzbGVuKQotICAgICAgICAgICAgd2hpbGUgbGVuKGNodW5rKSA8IHNsZW46Ci0gICAgICAgICAgICAgICAgY2h1bmsgPSBjaHVuayArIHNlbGYuY29ubmVjdGlvbi5yZWN2KHNsZW4gLSBsZW4oY2h1bmspKQotICAgICAgICAgICAgb2JqID0gc2VsZi51bnBpY2tsZShjaHVuaykKLSAgICAgICAgICAgIHJlY29yZCA9IGxvZ2dpbmcubWFrZUxvZ1JlY29yZChvYmopCi0gICAgICAgICAgICBzZWxmLmhhbmRsZV9sb2dfcmVjb3JkKHJlY29yZCkKLQotICAgIGRlZiB1bnBpY2tsZShzZWxmLCBkYXRhKToKLSAgICAgICAgcmV0dXJuIHBpY2tsZS5sb2FkcyhkYXRhKQotCi0gICAgZGVmIGhhbmRsZV9sb2dfcmVjb3JkKHNlbGYsIHJlY29yZCk6Ci0gICAgICAgICMgSWYgdGhlIGVuZC1vZi1tZXNzYWdlcyBzZW50aW5lbCBpcyBzZWVuLCB0ZWxsIHRoZSBzZXJ2ZXIgdG8KLSAgICAgICAgIyAgdGVybWluYXRlLgotICAgICAgICBpZiBzZWxmLlRDUF9MT0dfRU5EIGluIHJlY29yZC5tc2c6Ci0gICAgICAgICAgICBzZWxmLnNlcnZlci5hYm9ydCA9IDEKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLnNlcnZlci5sb2dfb3V0cHV0ICs9IHJlY29yZC5tc2cgKyAiXG4iCi0KLQotY2xhc3MgTG9nUmVjb3JkU29ja2V0UmVjZWl2ZXIoVGhyZWFkaW5nVENQU2VydmVyKToKLQotICAgICIiIkEgc2ltcGxlLW1pbmRlZCBUQ1Agc29ja2V0LWJhc2VkIGxvZ2dpbmcgcmVjZWl2ZXIgc3VpdGFibGUgZm9yIHRlc3QKLSAgICBwdXJwb3Nlcy4iIiIKLQotICAgIGFsbG93X3JldXNlX2FkZHJlc3MgPSAxCi0gICAgbG9nX291dHB1dCA9ICIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD0nbG9jYWxob3N0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydD1sb2dnaW5nLmhhbmRsZXJzLkRFRkFVTFRfVENQX0xPR0dJTkdfUE9SVCwKLSAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXI9TG9nUmVjb3JkU3RyZWFtSGFuZGxlcik6Ci0gICAgICAgIFRocmVhZGluZ1RDUFNlcnZlci5fX2luaXRfXyhzZWxmLCAoaG9zdCwgcG9ydCksIGhhbmRsZXIpCi0gICAgICAgIHNlbGYuYWJvcnQgPSBGYWxzZQotICAgICAgICBzZWxmLnRpbWVvdXQgPSAwLjEKLSAgICAgICAgc2VsZi5maW5pc2hlZCA9IHRocmVhZGluZy5FdmVudCgpCi0KLSAgICBkZWYgc2VydmVfdW50aWxfc3RvcHBlZChzZWxmKToKLSAgICAgICAgd2hpbGUgbm90IHNlbGYuYWJvcnQ6Ci0gICAgICAgICAgICByZCwgd3IsIGV4ID0gc2VsZWN0LnNlbGVjdChbc2VsZi5zb2NrZXQuZmlsZW5vKCldLCBbXSwgW10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRpbWVvdXQpCi0gICAgICAgICAgICBpZiByZDoKLSAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9yZXF1ZXN0KCkKLSAgICAgICAgIyBOb3RpZnkgdGhlIG1haW4gdGhyZWFkIHRoYXQgd2UncmUgYWJvdXQgdG8gZXhpdAotICAgICAgICBzZWxmLmZpbmlzaGVkLnNldCgpCi0gICAgICAgICMgY2xvc2UgdGhlIGxpc3RlbiBzb2NrZXQKLSAgICAgICAgc2VsZi5zZXJ2ZXJfY2xvc2UoKQotCiAKIEB1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZGluZywgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCiBjbGFzcyBTb2NrZXRIYW5kbGVyVGVzdChCYXNlVGVzdCk6CkBAIC05NDIsNDQgKzEzNzMsMjcwIEBACiAgICAgICAgICIiIlNldCB1cCBhIFRDUCBzZXJ2ZXIgdG8gcmVjZWl2ZSBsb2cgbWVzc2FnZXMsIGFuZCBhIFNvY2tldEhhbmRsZXIKICAgICAgICAgcG9pbnRpbmcgdG8gdGhhdCBzZXJ2ZXIncyBhZGRyZXNzIGFuZCBwb3J0LiIiIgogICAgICAgICBCYXNlVGVzdC5zZXRVcChzZWxmKQotICAgICAgICBzZWxmLnRjcHNlcnZlciA9IExvZ1JlY29yZFNvY2tldFJlY2VpdmVyKHBvcnQ9MCkKLSAgICAgICAgc2VsZi5wb3J0ID0gc2VsZi50Y3BzZXJ2ZXIuc29ja2V0LmdldHNvY2tuYW1lKClbMV0KLSAgICAgICAgc2VsZi50aHJlYWRzID0gWwotICAgICAgICAgICAgICAgIHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNlbGYudGNwc2VydmVyLnNlcnZlX3VudGlsX3N0b3BwZWQpXQotICAgICAgICBmb3IgdGhyZWFkIGluIHNlbGYudGhyZWFkczoKLSAgICAgICAgICAgIHRocmVhZC5zdGFydCgpCi0KLSAgICAgICAgc2VsZi5zb2NrX2hkbHIgPSBsb2dnaW5nLmhhbmRsZXJzLlNvY2tldEhhbmRsZXIoJ2xvY2FsaG9zdCcsIHNlbGYucG9ydCkKLSAgICAgICAgc2VsZi5zb2NrX2hkbHIuc2V0Rm9ybWF0dGVyKHNlbGYucm9vdF9mb3JtYXR0ZXIpCisgICAgICAgIGFkZHIgPSAoJ2xvY2FsaG9zdCcsIDApCisgICAgICAgIHNlbGYuc2VydmVyID0gc2VydmVyID0gVGVzdFRDUFNlcnZlcihhZGRyLCBzZWxmLmhhbmRsZV9zb2NrZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLjAxKQorICAgICAgICBzZXJ2ZXIuc3RhcnQoKQorICAgICAgICBzZXJ2ZXIucmVhZHkud2FpdCgpCisgICAgICAgIHNlbGYuc29ja19oZGxyID0gbG9nZ2luZy5oYW5kbGVycy5Tb2NrZXRIYW5kbGVyKCdsb2NhbGhvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucG9ydCkKKyAgICAgICAgc2VsZi5sb2dfb3V0cHV0ID0gJycKICAgICAgICAgc2VsZi5yb290X2xvZ2dlci5yZW1vdmVIYW5kbGVyKHNlbGYucm9vdF9sb2dnZXIuaGFuZGxlcnNbMF0pCiAgICAgICAgIHNlbGYucm9vdF9sb2dnZXIuYWRkSGFuZGxlcihzZWxmLnNvY2tfaGRscikKKyAgICAgICAgc2VsZi5oYW5kbGVkID0gdGhyZWFkaW5nLlNlbWFwaG9yZSgwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICAiIiJTaHV0ZG93biB0aGUgVENQIHNlcnZlci4iIiIKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi50Y3BzZXJ2ZXIuYWJvcnQgPSBUcnVlCi0gICAgICAgICAgICBkZWwgc2VsZi50Y3BzZXJ2ZXIKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoMi4wKQogICAgICAgICAgICAgc2VsZi5yb290X2xvZ2dlci5yZW1vdmVIYW5kbGVyKHNlbGYuc29ja19oZGxyKQogICAgICAgICAgICAgc2VsZi5zb2NrX2hkbHIuY2xvc2UoKQotICAgICAgICAgICAgZm9yIHRocmVhZCBpbiBzZWxmLnRocmVhZHM6Ci0gICAgICAgICAgICAgICAgdGhyZWFkLmpvaW4oMi4wKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgQmFzZVRlc3QudGVhckRvd24oc2VsZikKIAotICAgIGRlZiBnZXRfb3V0cHV0KHNlbGYpOgotICAgICAgICAiIiJHZXQgdGhlIGxvZyBvdXRwdXQgYXMgcmVjZWl2ZWQgYnkgdGhlIFRDUCBzZXJ2ZXIuIiIiCi0gICAgICAgICMgU2lnbmFsIHRoZSBUQ1AgcmVjZWl2ZXIgYW5kIHdhaXQgZm9yIGl0IHRvIHRlcm1pbmF0ZS4KLSAgICAgICAgc2VsZi5yb290X2xvZ2dlci5jcml0aWNhbChMb2dSZWNvcmRTdHJlYW1IYW5kbGVyLlRDUF9MT0dfRU5EKQotICAgICAgICBzZWxmLnRjcHNlcnZlci5maW5pc2hlZC53YWl0KDIuMCkKLSAgICAgICAgcmV0dXJuIHNlbGYudGNwc2VydmVyLmxvZ19vdXRwdXQKKyAgICBkZWYgaGFuZGxlX3NvY2tldChzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgY29ubiA9IHJlcXVlc3QuY29ubmVjdGlvbgorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgY2h1bmsgPSBjb25uLnJlY3YoNCkKKyAgICAgICAgICAgIGlmIGxlbihjaHVuaykgPCA0OgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBzbGVuID0gc3RydWN0LnVucGFjaygiPkwiLCBjaHVuaylbMF0KKyAgICAgICAgICAgIGNodW5rID0gY29ubi5yZWN2KHNsZW4pCisgICAgICAgICAgICB3aGlsZSBsZW4oY2h1bmspIDwgc2xlbjoKKyAgICAgICAgICAgICAgICBjaHVuayA9IGNodW5rICsgY29ubi5yZWN2KHNsZW4gLSBsZW4oY2h1bmspKQorICAgICAgICAgICAgb2JqID0gcGlja2xlLmxvYWRzKGNodW5rKQorICAgICAgICAgICAgcmVjb3JkID0gbG9nZ2luZy5tYWtlTG9nUmVjb3JkKG9iaikKKyAgICAgICAgICAgIHNlbGYubG9nX291dHB1dCArPSByZWNvcmQubXNnICsgJ1xuJworICAgICAgICAgICAgc2VsZi5oYW5kbGVkLnJlbGVhc2UoKQogCiAgICAgZGVmIHRlc3Rfb3V0cHV0KHNlbGYpOgogICAgICAgICAjIFRoZSBsb2cgbWVzc2FnZSBzZW50IHRvIHRoZSBTb2NrZXRIYW5kbGVyIGlzIHByb3Blcmx5IHJlY2VpdmVkLgogICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigidGNwIikKICAgICAgICAgbG9nZ2VyLmVycm9yKCJzcGFtIikKKyAgICAgICAgc2VsZi5oYW5kbGVkLmFjcXVpcmUoKQogICAgICAgICBsb2dnZXIuZGVidWcoImVnZ3MiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZ2V0X291dHB1dCgpLCAic3BhbVxuZWdnc1xuIikKKyAgICAgICAgc2VsZi5oYW5kbGVkLmFjcXVpcmUoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubG9nX291dHB1dCwgInNwYW1cbmVnZ3NcbiIpCiAKKyAgICBkZWYgdGVzdF9ub3NlcnZlcihzZWxmKToKKyAgICAgICAgIyBLaWxsIHRoZSBzZXJ2ZXIKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcCgyLjApCisgICAgICAgICNUaGUgbG9nZ2luZyBjYWxsIHNob3VsZCB0cnkgdG8gY29ubmVjdCwgd2hpY2ggc2hvdWxkIGZhaWwKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdEZWxpYmVyYXRlIG1pc3Rha2UnKQorICAgICAgICBleGNlcHQgUnVudGltZUVycm9yOgorICAgICAgICAgICAgc2VsZi5yb290X2xvZ2dlci5leGNlcHRpb24oJ05ldmVyIHNlbnQnKQorICAgICAgICBzZWxmLnJvb3RfbG9nZ2VyLmVycm9yKCdOZXZlciBzZW50LCBlaXRoZXInKQorICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5zb2NrX2hkbHIucmV0cnlUaW1lID4gbm93KQorICAgICAgICB0aW1lLnNsZWVwKHNlbGYuc29ja19oZGxyLnJldHJ5VGltZSAtIG5vdyArIDAuMDAxKQorICAgICAgICBzZWxmLnJvb3RfbG9nZ2VyLmVycm9yKCdOb3IgdGhpcycpCisKKworQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkaW5nLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK2NsYXNzIERhdGFncmFtSGFuZGxlclRlc3QoQmFzZVRlc3QpOgorCisgICAgIiIiVGVzdCBmb3IgRGF0YWdyYW1IYW5kbGVyLiIiIgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICAiIiJTZXQgdXAgYSBVRFAgc2VydmVyIHRvIHJlY2VpdmUgbG9nIG1lc3NhZ2VzLCBhbmQgYSBEYXRhZ3JhbUhhbmRsZXIKKyAgICAgICAgcG9pbnRpbmcgdG8gdGhhdCBzZXJ2ZXIncyBhZGRyZXNzIGFuZCBwb3J0LiIiIgorICAgICAgICBCYXNlVGVzdC5zZXRVcChzZWxmKQorICAgICAgICBhZGRyID0gKCdsb2NhbGhvc3QnLCAwKQorICAgICAgICBzZWxmLnNlcnZlciA9IHNlcnZlciA9IFRlc3RVRFBTZXJ2ZXIoYWRkciwgc2VsZi5oYW5kbGVfZGF0YWdyYW0sIDAuMDEpCisgICAgICAgIHNlcnZlci5zdGFydCgpCisgICAgICAgIHNlcnZlci5yZWFkeS53YWl0KCkKKyAgICAgICAgc2VsZi5zb2NrX2hkbHIgPSBsb2dnaW5nLmhhbmRsZXJzLkRhdGFncmFtSGFuZGxlcignbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucG9ydCkKKyAgICAgICAgc2VsZi5sb2dfb3V0cHV0ID0gJycKKyAgICAgICAgc2VsZi5yb290X2xvZ2dlci5yZW1vdmVIYW5kbGVyKHNlbGYucm9vdF9sb2dnZXIuaGFuZGxlcnNbMF0pCisgICAgICAgIHNlbGYucm9vdF9sb2dnZXIuYWRkSGFuZGxlcihzZWxmLnNvY2tfaGRscikKKyAgICAgICAgc2VsZi5oYW5kbGVkID0gdGhyZWFkaW5nLkV2ZW50KCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiU2h1dGRvd24gdGhlIFVEUCBzZXJ2ZXIuIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoMi4wKQorICAgICAgICAgICAgc2VsZi5yb290X2xvZ2dlci5yZW1vdmVIYW5kbGVyKHNlbGYuc29ja19oZGxyKQorICAgICAgICAgICAgc2VsZi5zb2NrX2hkbHIuY2xvc2UoKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgQmFzZVRlc3QudGVhckRvd24oc2VsZikKKworICAgIGRlZiBoYW5kbGVfZGF0YWdyYW0oc2VsZiwgcmVxdWVzdCk6CisgICAgICAgIHNsZW4gPSBzdHJ1Y3QucGFjaygnPkwnLCAwKSAjIGxlbmd0aCBvZiBwcmVmaXgKKyAgICAgICAgcGFja2V0ID0gcmVxdWVzdC5wYWNrZXRbbGVuKHNsZW4pOl0KKyAgICAgICAgb2JqID0gcGlja2xlLmxvYWRzKHBhY2tldCkKKyAgICAgICAgcmVjb3JkID0gbG9nZ2luZy5tYWtlTG9nUmVjb3JkKG9iaikKKyAgICAgICAgc2VsZi5sb2dfb3V0cHV0ICs9IHJlY29yZC5tc2cgKyAnXG4nCisgICAgICAgIHNlbGYuaGFuZGxlZC5zZXQoKQorCisgICAgZGVmIHRlc3Rfb3V0cHV0KHNlbGYpOgorICAgICAgICAjIFRoZSBsb2cgbWVzc2FnZSBzZW50IHRvIHRoZSBEYXRhZ3JhbUhhbmRsZXIgaXMgcHJvcGVybHkgcmVjZWl2ZWQuCisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ1ZHAiKQorICAgICAgICBsb2dnZXIuZXJyb3IoInNwYW0iKQorICAgICAgICBzZWxmLmhhbmRsZWQud2FpdCgpCisgICAgICAgIHNlbGYuaGFuZGxlZC5jbGVhcigpCisgICAgICAgIGxvZ2dlci5lcnJvcigiZWdncyIpCisgICAgICAgIHNlbGYuaGFuZGxlZC53YWl0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmxvZ19vdXRwdXQsICJzcGFtXG5lZ2dzXG4iKQorCisKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZGluZywgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBTeXNMb2dIYW5kbGVyVGVzdChCYXNlVGVzdCk6CisKKyAgICAiIiJUZXN0IGZvciBTeXNMb2dIYW5kbGVyIHVzaW5nIFVEUC4iIiIKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgIiIiU2V0IHVwIGEgVURQIHNlcnZlciB0byByZWNlaXZlIGxvZyBtZXNzYWdlcywgYW5kIGEgU3lzTG9nSGFuZGxlcgorICAgICAgICBwb2ludGluZyB0byB0aGF0IHNlcnZlcidzIGFkZHJlc3MgYW5kIHBvcnQuIiIiCisgICAgICAgIEJhc2VUZXN0LnNldFVwKHNlbGYpCisgICAgICAgIGFkZHIgPSAoJ2xvY2FsaG9zdCcsIDApCisgICAgICAgIHNlbGYuc2VydmVyID0gc2VydmVyID0gVGVzdFVEUFNlcnZlcihhZGRyLCBzZWxmLmhhbmRsZV9kYXRhZ3JhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMDEpCisgICAgICAgIHNlcnZlci5zdGFydCgpCisgICAgICAgIHNlcnZlci5yZWFkeS53YWl0KCkKKyAgICAgICAgc2VsZi5zbF9oZGxyID0gbG9nZ2luZy5oYW5kbGVycy5TeXNMb2dIYW5kbGVyKCgnbG9jYWxob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXIucG9ydCkpCisgICAgICAgIHNlbGYubG9nX291dHB1dCA9ICcnCisgICAgICAgIHNlbGYucm9vdF9sb2dnZXIucmVtb3ZlSGFuZGxlcihzZWxmLnJvb3RfbG9nZ2VyLmhhbmRsZXJzWzBdKQorICAgICAgICBzZWxmLnJvb3RfbG9nZ2VyLmFkZEhhbmRsZXIoc2VsZi5zbF9oZGxyKQorICAgICAgICBzZWxmLmhhbmRsZWQgPSB0aHJlYWRpbmcuRXZlbnQoKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAiIiJTaHV0ZG93biB0aGUgVURQIHNlcnZlci4iIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcCgyLjApCisgICAgICAgICAgICBzZWxmLnJvb3RfbG9nZ2VyLnJlbW92ZUhhbmRsZXIoc2VsZi5zbF9oZGxyKQorICAgICAgICAgICAgc2VsZi5zbF9oZGxyLmNsb3NlKCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIEJhc2VUZXN0LnRlYXJEb3duKHNlbGYpCisKKyAgICBkZWYgaGFuZGxlX2RhdGFncmFtKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBzZWxmLmxvZ19vdXRwdXQgPSByZXF1ZXN0LnBhY2tldAorICAgICAgICBzZWxmLmhhbmRsZWQuc2V0KCkKKworICAgIGRlZiB0ZXN0X291dHB1dChzZWxmKToKKyAgICAgICAgIyBUaGUgbG9nIG1lc3NhZ2Ugc2VudCB0byB0aGUgU3lzTG9nSGFuZGxlciBpcyBwcm9wZXJseSByZWNlaXZlZC4KKyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoInNsaCIpCisgICAgICAgIGxvZ2dlci5lcnJvcigic3BceGU0bSIpCisgICAgICAgIHNlbGYuaGFuZGxlZC53YWl0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmxvZ19vdXRwdXQsIGInPDExPnNwXHhjM1x4YTRtXHgwMCcpCisgICAgICAgIHNlbGYuaGFuZGxlZC5jbGVhcigpCisgICAgICAgIHNlbGYuc2xfaGRsci5hcHBlbmRfbnVsID0gRmFsc2UKKyAgICAgICAgbG9nZ2VyLmVycm9yKCJzcFx4ZTRtIikKKyAgICAgICAgc2VsZi5oYW5kbGVkLndhaXQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubG9nX291dHB1dCwgYic8MTE+c3BceGMzXHhhNG0nKQorICAgICAgICBzZWxmLmhhbmRsZWQuY2xlYXIoKQorICAgICAgICBzZWxmLnNsX2hkbHIuaWRlbnQgPSAiaFx4ZTRtLSIKKyAgICAgICAgbG9nZ2VyLmVycm9yKCJzcFx4ZTRtIikKKyAgICAgICAgc2VsZi5oYW5kbGVkLndhaXQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubG9nX291dHB1dCwgYic8MTE+aFx4YzNceGE0bS1zcFx4YzNceGE0bScpCisKKworQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkaW5nLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK2NsYXNzIEhUVFBIYW5kbGVyVGVzdChCYXNlVGVzdCk6CisgICAgIiIiVGVzdCBmb3IgSFRUUEhhbmRsZXIuIiIiCisKKyAgICBQRU1GSUxFID0gIiIiLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQorTUlJQ1hRSUJBQUtCZ1FER1Q0eFM1cjkxcmJMSlFLMm5VRGVuQmhCRzZxRmsrYlZPanVBR0MvTFNIbEFvQm52RworelFHM2FnT0crZTdjNXoyWFQ4bTJrdE9STHFHM0U0bVltYnhneWhEcnpQNmVpMkFuYytwc3ptbnhQb0szUHVoNQorYVhWK1hLdDBiVTBDMW0yK0FDbUdHSjB0M1A0MDhhcnQ4Mm5PeEJ3OFpIZ0lnOUR0cDZ4SVVDeU9xd0lEQVFBQgorQW9HQkFKRlRuRmJvYUtoNWVVckl6am1OcktzRzQ0akV5eSt2V3ZITi9GZ1NDNGwxMDNIeGhtV2l1TDVMdjNmNworMHRNcDF0WDdENnh2SHdJRzlWV3Z5S2IvQ3E5ckpzRGlibURWSU9zbG5PV2VRaEcrWHdKeWl0UjBwcS9LbEpJQgorNUxqT1JjQnc3OTVvS1dPQWk2UmNPYjFPTjU5dHlzRUZZaEFHUU85azZWTDYyMWdSQWtFQS9HYitZWFVMTHBicworcGlYTjNxNHpjSHplYVZBTm82OXRVWjZUamFRcU1lVHhFNHRPWU0wRzBab1NlSEVkYVA1OUFPWkdLWFhOR1NReQorMnovTWRkY1lHUUpCQU1rakxTWUlwT0xKWTExamE4T3d3c3dGRzJoRXpIZTBjUzliem8rK1IvamMxYkhBNVIwWQoraTZ2QTVpUGkrd29wUEZ2cHl0ZEJvbDdVdUVCZTV4WnJ4V01DUVFDV3hFTFJIaVAyeVdwRWVMSjNnR0R6b1hNTgorUHlkV2poUmp1N0J4M0F6a1R0ZitENmxhd3oxK2VHVHVFc3M1aTBKS0JrTUV3dnduTjJzMWNlK0V1RjRKQWtCYgorRTk2aDFsQXprVlc1T0FmWU9QWThSQ1BBOTBaTy9ob3lnN1BwU3hSMEVDdURyZ0VSUjhnWEllWVVZZmVqQmtFYQorcmFiNENmUm9WSktLTTI4WXEveFpBa0J2dXE2NzBKUkN3T2dmVVRkd3c3V3BkT1FCWVBrelFjY3NLTkNzbFFXOAorL0R5VzZ5MDZvUXVzU0VOVXZ5blQ2ZHIzTEp4dC9OZ1pQaFpYMitrMWVZRFYKKy0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCistLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KK01JSUNHekNDQVlTZ0F3SUJBZ0lKQUlxODRhMlEvT3ZsTUEwR0NTcUdTSWIzRFFFQkJRVUFNQlF4RWpBUUJnTlYKK0JBTVRDV3h2WTJGc2FHOXpkREFlRncweE1UQTFNakV4TURJek16TmFGdzAzTlRBek1qRXdNelUxTVRkYU1CUXgKK0VqQVFCZ05WQkFNVENXeHZZMkZzYUc5emREQ0JuekFOQmdrcWhraUc5dzBCQVFFRkFBT0JqUUF3Z1lrQ2dZRUEKK3hrK01VdWEvZGEyeXlVQ3RwMUEzcHdZUVJ1cWhaUG0xVG83Z0JndnkwaDVRS0FaN3hzMEJ0Mm9EaHZudTNPYzkKK2wwL0p0cExUa1M2aHR4T0ptSm04WU1vUTY4eitub3RnSjNQcWJNNXA4VDZDdHo3b2VXbDFmbHlyZEcxTkF0WnQKK3ZnQXBoaGlkTGR6K05QR3E3Zk5wenNRY1BHUjRDSVBRN2Flc1NGQXNqcXNDQXdFQUFhTjFNSE13SFFZRFZSME8KK0JCWUVGTFdhVVBPNk43ZWZHaXVvUzlpM0RWWWNVd24wTUVRR0ExVWRJd1E5TUR1QUZMV2FVUE82TjdlZkdpdW8KK1M5aTNEVlljVXduMG9SaWtGakFVTVJJd0VBWURWUVFERXdsc2IyTmhiR2h2YzNTQ0NRQ0t2T0d0a1B6cjVUQU0KK0JnTlZIUk1FQlRBREFRSC9NQTBHQ1NxR1NJYjNEUUVCQlFVQUE0R0JBTUs1d2hQakxOUUsxSXZ2azg4b3FKcXEKKzRmODg5T3dpa0dQMGVVaE9CaGJGbHNacytqcTVZWkMyVXpIeitldnpLQmxnQVAxdTRsUC9jQjg1Q25qdldxTSsKKzFjL2x5d0ZIUTZIT2REZVExTDcydFNZTXJOT0c0WE5tTG4waDdyeDZHb1RVN2RjRlJmc2VhaEJDcThtdjBJRHQKK0lSYlRwdmxIV1Bqc1N2SHowWk9ICistLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tIiIiCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgICIiIlNldCB1cCBhbiBIVFRQIHNlcnZlciB0byByZWNlaXZlIGxvZyBtZXNzYWdlcywgYW5kIGEgSFRUUEhhbmRsZXIKKyAgICAgICAgcG9pbnRpbmcgdG8gdGhhdCBzZXJ2ZXIncyBhZGRyZXNzIGFuZCBwb3J0LiIiIgorICAgICAgICBCYXNlVGVzdC5zZXRVcChzZWxmKQorICAgICAgICBzZWxmLmhhbmRsZWQgPSB0aHJlYWRpbmcuRXZlbnQoKQorCisgICAgZGVmIGhhbmRsZV9yZXF1ZXN0KHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBzZWxmLmNvbW1hbmQgPSByZXF1ZXN0LmNvbW1hbmQKKyAgICAgICAgc2VsZi5sb2dfZGF0YSA9IHVybHBhcnNlKHJlcXVlc3QucGF0aCkKKyAgICAgICAgaWYgc2VsZi5jb21tYW5kID09ICdQT1NUJzoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBybGVuID0gaW50KHJlcXVlc3QuaGVhZGVyc1snQ29udGVudC1MZW5ndGgnXSkKKyAgICAgICAgICAgICAgICBzZWxmLnBvc3RfZGF0YSA9IHJlcXVlc3QucmZpbGUucmVhZChybGVuKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHNlbGYucG9zdF9kYXRhID0gTm9uZQorICAgICAgICByZXF1ZXN0LnNlbmRfcmVzcG9uc2UoMjAwKQorICAgICAgICByZXF1ZXN0LmVuZF9oZWFkZXJzKCkKKyAgICAgICAgc2VsZi5oYW5kbGVkLnNldCgpCisKKyAgICBkZWYgdGVzdF9vdXRwdXQoc2VsZik6CisgICAgICAgICMgVGhlIGxvZyBtZXNzYWdlIHNlbnQgdG8gdGhlIEhUVFBIYW5kbGVyIGlzIHByb3Blcmx5IHJlY2VpdmVkLgorICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigiaHR0cCIpCisgICAgICAgIHJvb3RfbG9nZ2VyID0gc2VsZi5yb290X2xvZ2dlcgorICAgICAgICByb290X2xvZ2dlci5yZW1vdmVIYW5kbGVyKHNlbGYucm9vdF9sb2dnZXIuaGFuZGxlcnNbMF0pCisgICAgICAgIGZvciBzZWN1cmUgaW4gKEZhbHNlLCBUcnVlKToKKyAgICAgICAgICAgIGFkZHIgPSAoJ2xvY2FsaG9zdCcsIDApCisgICAgICAgICAgICBpZiBzZWN1cmU6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBpbXBvcnQgc3NsCisgICAgICAgICAgICAgICAgICAgIGZkLCBmbiA9IHRlbXBmaWxlLm1rc3RlbXAoKQorICAgICAgICAgICAgICAgICAgICBvcy5jbG9zZShmZCkKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBvcGVuKGZuLCAndycpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgICAgICBmLndyaXRlKHNlbGYuUEVNRklMRSkKKyAgICAgICAgICAgICAgICAgICAgc3NsY3R4ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1NTTHYyMykKKyAgICAgICAgICAgICAgICAgICAgc3NsY3R4LmxvYWRfY2VydF9jaGFpbihmbikKKyAgICAgICAgICAgICAgICAgICAgb3MudW5saW5rKGZuKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgc3NsY3R4ID0gTm9uZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzc2xjdHggPSBOb25lCisgICAgICAgICAgICBzZWxmLnNlcnZlciA9IHNlcnZlciA9IFRlc3RIVFRQU2VydmVyKGFkZHIsIHNlbGYuaGFuZGxlX3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC4wMSwgc3NsY3R4PXNzbGN0eCkKKyAgICAgICAgICAgIHNlcnZlci5zdGFydCgpCisgICAgICAgICAgICBzZXJ2ZXIucmVhZHkud2FpdCgpCisgICAgICAgICAgICBob3N0ID0gJ2xvY2FsaG9zdDolZCcgJSBzZXJ2ZXIuc2VydmVyX3BvcnQKKyAgICAgICAgICAgIHNlY3VyZV9jbGllbnQgPSBzZWN1cmUgYW5kIHNzbGN0eAorICAgICAgICAgICAgc2VsZi5oX2hkbHIgPSBsb2dnaW5nLmhhbmRsZXJzLkhUVFBIYW5kbGVyKGhvc3QsICcvZnJvYicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJlPXNlY3VyZV9jbGllbnQpCisgICAgICAgICAgICBzZWxmLmxvZ19kYXRhID0gTm9uZQorICAgICAgICAgICAgcm9vdF9sb2dnZXIuYWRkSGFuZGxlcihzZWxmLmhfaGRscikKKworICAgICAgICAgICAgZm9yIG1ldGhvZCBpbiAoJ0dFVCcsICdQT1NUJyk6CisgICAgICAgICAgICAgICAgc2VsZi5oX2hkbHIubWV0aG9kID0gbWV0aG9kCisgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVkLmNsZWFyKCkKKyAgICAgICAgICAgICAgICBtc2cgPSAic3BceGU0bSIKKyAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IobXNnKQorICAgICAgICAgICAgICAgIHNlbGYuaGFuZGxlZC53YWl0KCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubG9nX2RhdGEucGF0aCwgJy9mcm9iJykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY29tbWFuZCwgbWV0aG9kKQorICAgICAgICAgICAgICAgIGlmIG1ldGhvZCA9PSAnR0VUJzoKKyAgICAgICAgICAgICAgICAgICAgZCA9IHBhcnNlX3FzKHNlbGYubG9nX2RhdGEucXVlcnkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZCA9IHBhcnNlX3FzKHNlbGYucG9zdF9kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRbJ25hbWUnXSwgWydodHRwJ10pCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkWydmdW5jTmFtZSddLCBbJ3Rlc3Rfb3V0cHV0J10pCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkWydtc2cnXSwgW21zZ10pCisKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoMi4wKQorICAgICAgICAgICAgc2VsZi5yb290X2xvZ2dlci5yZW1vdmVIYW5kbGVyKHNlbGYuaF9oZGxyKQorICAgICAgICAgICAgc2VsZi5oX2hkbHIuY2xvc2UoKQogCiBjbGFzcyBNZW1vcnlUZXN0KEJhc2VUZXN0KToKIApAQCAtMTA4NywyOCArMTc0NCwzOSBAQAogICAgIGRlZiB0ZXN0X3dhcm5pbmdzKHNlbGYpOgogICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CiAgICAgICAgICAgICBsb2dnaW5nLmNhcHR1cmVXYXJuaW5ncyhUcnVlKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHdhcm5pbmdzLmZpbHRlcndhcm5pbmdzKCJhbHdheXMiLCBjYXRlZ29yeT1Vc2VyV2FybmluZykKLSAgICAgICAgICAgICAgICBmaWxlID0gaW8uU3RyaW5nSU8oKQotICAgICAgICAgICAgICAgIGggPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoZmlsZSkKLSAgICAgICAgICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigicHkud2FybmluZ3MiKQotICAgICAgICAgICAgICAgIGxvZ2dlci5hZGRIYW5kbGVyKGgpCi0gICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigiSSdtIHdhcm5pbmcgeW91Li4uIikKLSAgICAgICAgICAgICAgICBsb2dnZXIucmVtb3ZlSGFuZGxlcihoKQotICAgICAgICAgICAgICAgIHMgPSBmaWxlLmdldHZhbHVlKCkKLSAgICAgICAgICAgICAgICBoLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocy5maW5kKCJVc2VyV2FybmluZzogSSdtIHdhcm5pbmcgeW91Li4uXG4iKSA+IDApCisgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAobG9nZ2luZy5jYXB0dXJlV2FybmluZ3MsIEZhbHNlKQorICAgICAgICAgICAgd2FybmluZ3MuZmlsdGVyd2FybmluZ3MoImFsd2F5cyIsIGNhdGVnb3J5PVVzZXJXYXJuaW5nKQorICAgICAgICAgICAgc3RyZWFtID0gaW8uU3RyaW5nSU8oKQorICAgICAgICAgICAgaCA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihzdHJlYW0pCisgICAgICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigicHkud2FybmluZ3MiKQorICAgICAgICAgICAgbG9nZ2VyLmFkZEhhbmRsZXIoaCkKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oIkknbSB3YXJuaW5nIHlvdS4uLiIpCisgICAgICAgICAgICBsb2dnZXIucmVtb3ZlSGFuZGxlcihoKQorICAgICAgICAgICAgcyA9IHN0cmVhbS5nZXR2YWx1ZSgpCisgICAgICAgICAgICBoLmNsb3NlKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzLmZpbmQoIlVzZXJXYXJuaW5nOiBJJ20gd2FybmluZyB5b3UuLi5cbiIpID4gMCkKIAotICAgICAgICAgICAgICAgICNTZWUgaWYgYW4gZXhwbGljaXQgZmlsZSB1c2VzIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbgotICAgICAgICAgICAgICAgIGZpbGUgPSBpby5TdHJpbmdJTygpCi0gICAgICAgICAgICAgICAgd2FybmluZ3Muc2hvd3dhcm5pbmcoIkV4cGxpY2l0IiwgVXNlcldhcm5pbmcsICJkdW1teS5weSIsIDQyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUsICJEdW1teSBsaW5lIikKLSAgICAgICAgICAgICAgICBzID0gZmlsZS5nZXR2YWx1ZSgpCi0gICAgICAgICAgICAgICAgZmlsZS5jbG9zZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLAotICAgICAgICAgICAgICAgICAgICAgICAgImR1bW15LnB5OjQyOiBVc2VyV2FybmluZzogRXhwbGljaXRcbiAgRHVtbXkgbGluZVxuIikKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jYXB0dXJlV2FybmluZ3MoRmFsc2UpCisgICAgICAgICAgICAjU2VlIGlmIGFuIGV4cGxpY2l0IGZpbGUgdXNlcyB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICAgIGFfZmlsZSA9IGlvLlN0cmluZ0lPKCkKKyAgICAgICAgICAgIHdhcm5pbmdzLnNob3d3YXJuaW5nKCJFeHBsaWNpdCIsIFVzZXJXYXJuaW5nLCAiZHVtbXkucHkiLCA0MiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFfZmlsZSwgIkR1bW15IGxpbmUiKQorICAgICAgICAgICAgcyA9IGFfZmlsZS5nZXR2YWx1ZSgpCisgICAgICAgICAgICBhX2ZpbGUuY2xvc2UoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLAorICAgICAgICAgICAgICAgICJkdW1teS5weTo0MjogVXNlcldhcm5pbmc6IEV4cGxpY2l0XG4gIER1bW15IGxpbmVcbiIpCisKKyAgICBkZWYgdGVzdF93YXJuaW5nc19ub19oYW5kbGVycyhzZWxmKToKKyAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICAgICAgbG9nZ2luZy5jYXB0dXJlV2FybmluZ3MoVHJ1ZSkKKyAgICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChsb2dnaW5nLmNhcHR1cmVXYXJuaW5ncywgRmFsc2UpCisKKyAgICAgICAgICAgICMgY29uZmlybSBvdXIgYXNzdW1wdGlvbjogbm8gbG9nZ2VycyBhcmUgc2V0CisgICAgICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigicHkud2FybmluZ3MiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2dnZXIuaGFuZGxlcnMsIFtdKQorCisgICAgICAgICAgICB3YXJuaW5ncy5zaG93d2FybmluZygiRXhwbGljaXQiLCBVc2VyV2FybmluZywgImR1bW15LnB5IiwgNDIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsb2dnZXIuaGFuZGxlcnMpLCAxKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGxvZ2dlci5oYW5kbGVyc1swXSwgbG9nZ2luZy5OdWxsSGFuZGxlcikKIAogCiBkZWYgZm9ybWF0RnVuYyhmb3JtYXQsIGRhdGVmbXQ9Tm9uZSk6CkBAIC0xOTYxLDYgKzI2MjksNyBAQAogICAgICAgICAgICAgbG9nZ2luZy5jb25maWcuc3RvcExpc3RlbmluZygpCiAgICAgICAgICAgICB0LmpvaW4oMi4wKQogCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkaW5nLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKICAgICBkZWYgdGVzdF9saXN0ZW5fY29uZmlnXzEwX29rKHNlbGYpOgogICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIG91dHB1dDoKICAgICAgICAgICAgIHNlbGYuc2V0dXBfdmlhX2xpc3RlbmVyKGpzb24uZHVtcHMoc2VsZi5jb25maWcxMCkpCkBAIC0xOTgwLDYgKzI2NDksNyBAQAogICAgICAgICAgICAgICAgICgnRVJST1InLCAnNCcpLAogICAgICAgICAgICAgXSwgc3RyZWFtPW91dHB1dCkKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZGluZywgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCiAgICAgZGVmIHRlc3RfbGlzdGVuX2NvbmZpZ18xX29rKHNlbGYpOgogICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIG91dHB1dDoKICAgICAgICAgICAgIHNlbGYuc2V0dXBfdmlhX2xpc3RlbmVyKHRleHR3cmFwLmRlZGVudChDb25maWdGaWxlVGVzdC5jb25maWcxKSkKQEAgLTE5OTQsNiArMjY2NCwyNyBAQAogICAgICAgICAgICAgIyBPcmlnaW5hbCBsb2dnZXIgb3V0cHV0IGlzIGVtcHR5LgogICAgICAgICAgICAgc2VsZi5hc3NlcnRfbG9nX2xpbmVzKFtdKQogCisgICAgZGVmIHRlc3RfYmFzZWNvbmZpZyhzZWxmKToKKyAgICAgICAgZCA9IHsKKyAgICAgICAgICAgICdhdHVwbGUnOiAoMSwgMiwgMyksCisgICAgICAgICAgICAnYWxpc3QnOiBbJ2EnLCAnYicsICdjJ10sCisgICAgICAgICAgICAnYWRpY3QnOiB7J2QnOiAnZScsICdmJzogMyB9LAorICAgICAgICAgICAgJ25lc3QxJzogKCdnJywgKCdoJywgJ2knKSwgJ2onKSwKKyAgICAgICAgICAgICduZXN0Mic6IFsnaycsIFsnbCcsICdtJ10sICduJ10sCisgICAgICAgICAgICAnbmVzdDMnOiBbJ28nLCAnY2ZnOi8vYWxpc3QnLCAncCddLAorICAgICAgICB9CisgICAgICAgIGJjID0gbG9nZ2luZy5jb25maWcuQmFzZUNvbmZpZ3VyYXRvcihkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJjLmNvbnZlcnQoJ2NmZzovL2F0dXBsZVsxXScpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJjLmNvbnZlcnQoJ2NmZzovL2FsaXN0WzFdJyksICdiJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiYy5jb252ZXJ0KCdjZmc6Ly9uZXN0MVsxXVswXScpLCAnaCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmMuY29udmVydCgnY2ZnOi8vbmVzdDJbMV1bMV0nKSwgJ20nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJjLmNvbnZlcnQoJ2NmZzovL2FkaWN0LmQnKSwgJ2UnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJjLmNvbnZlcnQoJ2NmZzovL2FkaWN0W2ZdJyksIDMpCisgICAgICAgIHYgPSBiYy5jb252ZXJ0KCdjZmc6Ly9uZXN0MycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodi5wb3AoMSksIFsnYScsICdiJywgJ2MnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIGJjLmNvbnZlcnQsICdjZmc6Ly9ub3N1Y2gnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBiYy5jb252ZXJ0LCAnY2ZnOi8vIScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBiYy5jb252ZXJ0LCAnY2ZnOi8vYWRpY3RbMl0nKQogCiBjbGFzcyBNYW5hZ2VyVGVzdChCYXNlVGVzdCk6CiAgICAgZGVmIHRlc3RfbWFuYWdlcl9sb2dnZXJjbGFzcyhzZWxmKToKQEAgLTIwMTIsNiArMjcwMywxMSBAQAogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9nZ2VkLCBbJ3Nob3VsZCBhcHBlYXIgaW4gbG9nZ2VkJ10pCiAKKyAgICBkZWYgdGVzdF9zZXRfbG9nX3JlY29yZF9mYWN0b3J5KHNlbGYpOgorICAgICAgICBtYW4gPSBsb2dnaW5nLk1hbmFnZXIoTm9uZSkKKyAgICAgICAgZXhwZWN0ZWQgPSBvYmplY3QoKQorICAgICAgICBtYW4uc2V0TG9nUmVjb3JkRmFjdG9yeShleHBlY3RlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYW4ubG9nUmVjb3JkRmFjdG9yeSwgZXhwZWN0ZWQpCiAKIGNsYXNzIENoaWxkTG9nZ2VyVGVzdChCYXNlVGVzdCk6CiAgICAgZGVmIHRlc3RfY2hpbGRfbG9nZ2VycyhzZWxmKToKQEAgLTIxMTMsNiArMjgwOSwxOCBAQAogICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFuZGxlci5tYXRjaGVzKGxldmVsbm89bG9nZ2luZy5FUlJPUiwgbWVzc2FnZT0nMicpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFuZGxlci5tYXRjaGVzKGxldmVsbm89bG9nZ2luZy5DUklUSUNBTCwgbWVzc2FnZT0nMycpKQogCitaRVJPID0gZGF0ZXRpbWUudGltZWRlbHRhKDApCisKK2NsYXNzIFVUQyhkYXRldGltZS50emluZm8pOgorICAgIGRlZiB1dGNvZmZzZXQoc2VsZiwgZHQpOgorICAgICAgICByZXR1cm4gWkVSTworCisgICAgZHN0ID0gdXRjb2Zmc2V0CisKKyAgICBkZWYgdHpuYW1lKHNlbGYsIGR0KToKKyAgICAgICAgcmV0dXJuICdVVEMnCisKK3V0YyA9IFVUQygpCiAKIGNsYXNzIEZvcm1hdHRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKQEAgLTIxODYsNiArMjg5NCw3MSBAQAogICAgICAgICBmID0gbG9nZ2luZy5Gb3JtYXR0ZXIoJ2FzY3RpbWUnLCBzdHlsZT0nJCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZi51c2VzVGltZSgpKQogCisgICAgZGVmIHRlc3RfaW52YWxpZF9zdHlsZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbG9nZ2luZy5Gb3JtYXR0ZXIsIE5vbmUsIE5vbmUsICd4JykKKworICAgIGRlZiB0ZXN0X3RpbWUoc2VsZik6CisgICAgICAgIHIgPSBzZWxmLmdldF9yZWNvcmQoKQorICAgICAgICBkdCA9IGRhdGV0aW1lLmRhdGV0aW1lKDE5OTMsIDQsIDIxLCA4LCAzLCAwLCAwLCB1dGMpCisgICAgICAgICMgV2UgdXNlIE5vbmUgdG8gaW5kaWNhdGUgd2Ugd2FudCB0aGUgbG9jYWwgdGltZXpvbmUKKyAgICAgICAgIyBXZSdyZSBlc3NlbnRpYWxseSBjb252ZXJ0aW5nIGEgVVRDIHRpbWUgdG8gbG9jYWwgdGltZQorICAgICAgICByLmNyZWF0ZWQgPSB0aW1lLm1rdGltZShkdC5hc3RpbWV6b25lKE5vbmUpLnRpbWV0dXBsZSgpKQorICAgICAgICByLm1zZWNzID0gMTIzCisgICAgICAgIGYgPSBsb2dnaW5nLkZvcm1hdHRlcignJShhc2N0aW1lKXMgJShtZXNzYWdlKXMnKQorICAgICAgICBmLmNvbnZlcnRlciA9IHRpbWUuZ210aW1lCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5mb3JtYXRUaW1lKHIpLCAnMTk5My0wNC0yMSAwODowMzowMCwxMjMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZm9ybWF0VGltZShyLCAnJVk6JWQnKSwgJzE5OTM6MjEnKQorICAgICAgICBmLmZvcm1hdChyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHIuYXNjdGltZSwgJzE5OTMtMDQtMjEgMDg6MDM6MDAsMTIzJykKKworY2xhc3MgVGVzdEJ1ZmZlcmluZ0Zvcm1hdHRlcihsb2dnaW5nLkJ1ZmZlcmluZ0Zvcm1hdHRlcik6CisgICAgZGVmIGZvcm1hdEhlYWRlcihzZWxmLCByZWNvcmRzKToKKyAgICAgICAgcmV0dXJuICdbKCVkKScgJSBsZW4ocmVjb3JkcykKKworICAgIGRlZiBmb3JtYXRGb290ZXIoc2VsZiwgcmVjb3Jkcyk6CisgICAgICAgIHJldHVybiAnKCVkKV0nICUgbGVuKHJlY29yZHMpCisKK2NsYXNzIEJ1ZmZlcmluZ0Zvcm1hdHRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5yZWNvcmRzID0gWworICAgICAgICAgICAgbG9nZ2luZy5tYWtlTG9nUmVjb3JkKHsnbXNnJzogJ29uZSd9KSwKKyAgICAgICAgICAgIGxvZ2dpbmcubWFrZUxvZ1JlY29yZCh7J21zZyc6ICd0d28nfSksCisgICAgICAgIF0KKworICAgIGRlZiB0ZXN0X2RlZmF1bHQoc2VsZik6CisgICAgICAgIGYgPSBsb2dnaW5nLkJ1ZmZlcmluZ0Zvcm1hdHRlcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIGYuZm9ybWF0KFtdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnb25ldHdvJywgZi5mb3JtYXQoc2VsZi5yZWNvcmRzKSkKKworICAgIGRlZiB0ZXN0X2N1c3RvbShzZWxmKToKKyAgICAgICAgZiA9IFRlc3RCdWZmZXJpbmdGb3JtYXR0ZXIoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdbKDIpb25ldHdvKDIpXScsIGYuZm9ybWF0KHNlbGYucmVjb3JkcykpCisgICAgICAgIGxmID0gbG9nZ2luZy5Gb3JtYXR0ZXIoJzwlKG1lc3NhZ2Upcz4nKQorICAgICAgICBmID0gVGVzdEJ1ZmZlcmluZ0Zvcm1hdHRlcihsZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnWygyKTxvbmU+PHR3bz4oMildJywgZi5mb3JtYXQoc2VsZi5yZWNvcmRzKSkKKworY2xhc3MgRXhjZXB0aW9uVGVzdChCYXNlVGVzdCk6CisgICAgZGVmIHRlc3RfZm9ybWF0dGluZyhzZWxmKToKKyAgICAgICAgciA9IHNlbGYucm9vdF9sb2dnZXIKKyAgICAgICAgaCA9IFJlY29yZGluZ0hhbmRsZXIoKQorICAgICAgICByLmFkZEhhbmRsZXIoaCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdkZWxpYmVyYXRlIG1pc3Rha2UnKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBsb2dnaW5nLmV4Y2VwdGlvbignZmFpbGVkJywgc3RhY2tfaW5mbz1UcnVlKQorICAgICAgICByLnJlbW92ZUhhbmRsZXIoaCkKKyAgICAgICAgaC5jbG9zZSgpCisgICAgICAgIHIgPSBoLnJlY29yZHNbMF0KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHIuZXhjX3RleHQuc3RhcnRzd2l0aCgnVHJhY2ViYWNrIChtb3N0IHJlY2VudCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhbGwgbGFzdCk6XG4nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHIuZXhjX3RleHQuZW5kc3dpdGgoJ1xuUnVudGltZUVycm9yOiAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxpYmVyYXRlIG1pc3Rha2UnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHIuc3RhY2tfaW5mby5zdGFydHN3aXRoKCdTdGFjayAobW9zdCByZWNlbnQgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjYWxsIGxhc3QpOlxuJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyLnN0YWNrX2luZm8uZW5kc3dpdGgoJ2xvZ2dpbmcuZXhjZXB0aW9uKFwnZmFpbGVkXCcsICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YWNrX2luZm89VHJ1ZSknKSkKKworCiBjbGFzcyBMYXN0UmVzb3J0VGVzdChCYXNlVGVzdCk6CiAgICAgZGVmIHRlc3RfbGFzdF9yZXNvcnQoc2VsZik6CiAgICAgICAgICMgVGVzdCB0aGUgbGFzdCByZXNvcnQgaGFuZGxlcgpAQCAtMjE5Niw2ICsyOTY5LDggQEAKICAgICAgICAgb2xkX3JhaXNlX2V4Y2VwdGlvbnMgPSBsb2dnaW5nLnJhaXNlRXhjZXB0aW9ucwogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzeXMuc3RkZXJyID0gc2lvID0gaW8uU3RyaW5nSU8oKQorICAgICAgICAgICAgcm9vdC5kZWJ1ZygnVGhpcyBzaG91bGQgbm90IGFwcGVhcicpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpby5nZXR2YWx1ZSgpLCAnJykKICAgICAgICAgICAgIHJvb3Qud2FybmluZygnVGhpcyBpcyB5b3VyIGZpbmFsIGNoYW5jZSEnKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzaW8uZ2V0dmFsdWUoKSwgJ1RoaXMgaXMgeW91ciBmaW5hbCBjaGFuY2UhXG4nKQogICAgICAgICAgICAgI05vIGhhbmRsZXJzIGFuZCBubyBsYXN0IHJlc29ydCwgc28gJ05vIGhhbmRsZXJzJyBtZXNzYWdlCkBAIC0yMjIwLDYgKzI5OTUsNTg2IEBACiAgICAgICAgICAgICBsb2dnaW5nLnJhaXNlRXhjZXB0aW9ucyA9IG9sZF9yYWlzZV9leGNlcHRpb25zCiAKIAorY2xhc3MgRmFrZUhhbmRsZXI6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaWRlbnRpZmllciwgY2FsbGVkKToKKyAgICAgICAgZm9yIG1ldGhvZCBpbiAoJ2FjcXVpcmUnLCAnZmx1c2gnLCAnY2xvc2UnLCAncmVsZWFzZScpOgorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBtZXRob2QsIHNlbGYucmVjb3JkX2NhbGwoaWRlbnRpZmllciwgbWV0aG9kLCBjYWxsZWQpKQorCisgICAgZGVmIHJlY29yZF9jYWxsKHNlbGYsIGlkZW50aWZpZXIsIG1ldGhvZF9uYW1lLCBjYWxsZWQpOgorICAgICAgICBkZWYgaW5uZXIoKToKKyAgICAgICAgICAgIGNhbGxlZC5hcHBlbmQoJ3t9IC0ge30nLmZvcm1hdChpZGVudGlmaWVyLCBtZXRob2RfbmFtZSkpCisgICAgICAgIHJldHVybiBpbm5lcgorCisKK2NsYXNzIFJlY29yZGluZ0hhbmRsZXIobG9nZ2luZy5OdWxsSGFuZGxlcik6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoUmVjb3JkaW5nSGFuZGxlciwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLnJlY29yZHMgPSBbXQorCisgICAgZGVmIGhhbmRsZShzZWxmLCByZWNvcmQpOgorICAgICAgICAiIiJLZWVwIHRyYWNrIG9mIGFsbCB0aGUgZW1pdHRlZCByZWNvcmRzLiIiIgorICAgICAgICBzZWxmLnJlY29yZHMuYXBwZW5kKHJlY29yZCkKKworCitjbGFzcyBTaHV0ZG93blRlc3QoQmFzZVRlc3QpOgorCisgICAgIiIiVGVzdCBzdWl0ZSBmb3IgdGhlIHNodXRkb3duIG1ldGhvZC4iIiIKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoU2h1dGRvd25UZXN0LCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNlbGYuY2FsbGVkID0gW10KKworICAgICAgICByYWlzZV9leGNlcHRpb25zID0gbG9nZ2luZy5yYWlzZUV4Y2VwdGlvbnMKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNldGF0dHIsIGxvZ2dpbmcsICdyYWlzZUV4Y2VwdGlvbnMnLCByYWlzZV9leGNlcHRpb25zKQorCisgICAgZGVmIHJhaXNlX2Vycm9yKHNlbGYsIGVycm9yKToKKyAgICAgICAgZGVmIGlubmVyKCk6CisgICAgICAgICAgICByYWlzZSBlcnJvcigpCisgICAgICAgIHJldHVybiBpbm5lcgorCisgICAgZGVmIHRlc3Rfbm9fZmFpbHVyZShzZWxmKToKKyAgICAgICAgIyBjcmVhdGUgc29tZSBmYWtlIGhhbmRsZXJzCisgICAgICAgIGhhbmRsZXIwID0gRmFrZUhhbmRsZXIoMCwgc2VsZi5jYWxsZWQpCisgICAgICAgIGhhbmRsZXIxID0gRmFrZUhhbmRsZXIoMSwgc2VsZi5jYWxsZWQpCisgICAgICAgIGhhbmRsZXIyID0gRmFrZUhhbmRsZXIoMiwgc2VsZi5jYWxsZWQpCisKKyAgICAgICAgIyBjcmVhdGUgbGl2ZSB3ZWFrcmVmIHRvIHRob3NlIGhhbmRsZXJzCisgICAgICAgIGhhbmRsZXJzID0gbWFwKGxvZ2dpbmcud2Vha3JlZi5yZWYsIFtoYW5kbGVyMCwgaGFuZGxlcjEsIGhhbmRsZXIyXSkKKworICAgICAgICBsb2dnaW5nLnNodXRkb3duKGhhbmRsZXJMaXN0PWxpc3QoaGFuZGxlcnMpKQorCisgICAgICAgIGV4cGVjdGVkID0gWycyIC0gYWNxdWlyZScsICcyIC0gZmx1c2gnLCAnMiAtIGNsb3NlJywgJzIgLSByZWxlYXNlJywKKyAgICAgICAgICAgICAgICAgICAgJzEgLSBhY3F1aXJlJywgJzEgLSBmbHVzaCcsICcxIC0gY2xvc2UnLCAnMSAtIHJlbGVhc2UnLAorICAgICAgICAgICAgICAgICAgICAnMCAtIGFjcXVpcmUnLCAnMCAtIGZsdXNoJywgJzAgLSBjbG9zZScsICcwIC0gcmVsZWFzZSddCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHNlbGYuY2FsbGVkKQorCisgICAgZGVmIF90ZXN0X3dpdGhfZmFpbHVyZV9pbl9tZXRob2Qoc2VsZiwgbWV0aG9kLCBlcnJvcik6CisgICAgICAgIGhhbmRsZXIgPSBGYWtlSGFuZGxlcigwLCBzZWxmLmNhbGxlZCkKKyAgICAgICAgc2V0YXR0cihoYW5kbGVyLCBtZXRob2QsIHNlbGYucmFpc2VfZXJyb3IoZXJyb3IpKQorICAgICAgICBoYW5kbGVycyA9IFtsb2dnaW5nLndlYWtyZWYucmVmKGhhbmRsZXIpXQorCisgICAgICAgIGxvZ2dpbmcuc2h1dGRvd24oaGFuZGxlckxpc3Q9bGlzdChoYW5kbGVycykpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMCAtIHJlbGVhc2UnLCBzZWxmLmNhbGxlZFstMV0pCisKKyAgICBkZWYgdGVzdF93aXRoX2lvZXJyb3JfaW5fYWNxdWlyZShzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF93aXRoX2ZhaWx1cmVfaW5fbWV0aG9kKCdhY3F1aXJlJywgSU9FcnJvcikKKworICAgIGRlZiB0ZXN0X3dpdGhfaW9lcnJvcl9pbl9mbHVzaChzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF93aXRoX2ZhaWx1cmVfaW5fbWV0aG9kKCdmbHVzaCcsIElPRXJyb3IpCisKKyAgICBkZWYgdGVzdF93aXRoX2lvZXJyb3JfaW5fY2xvc2Uoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3Rfd2l0aF9mYWlsdXJlX2luX21ldGhvZCgnY2xvc2UnLCBJT0Vycm9yKQorCisgICAgZGVmIHRlc3Rfd2l0aF92YWx1ZWVycm9yX2luX2FjcXVpcmUoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3Rfd2l0aF9mYWlsdXJlX2luX21ldGhvZCgnYWNxdWlyZScsIFZhbHVlRXJyb3IpCisKKyAgICBkZWYgdGVzdF93aXRoX3ZhbHVlZXJyb3JfaW5fZmx1c2goc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3Rfd2l0aF9mYWlsdXJlX2luX21ldGhvZCgnZmx1c2gnLCBWYWx1ZUVycm9yKQorCisgICAgZGVmIHRlc3Rfd2l0aF92YWx1ZWVycm9yX2luX2Nsb3NlKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X3dpdGhfZmFpbHVyZV9pbl9tZXRob2QoJ2Nsb3NlJywgVmFsdWVFcnJvcikKKworICAgIGRlZiB0ZXN0X3dpdGhfb3RoZXJfZXJyb3JfaW5fYWNxdWlyZV93aXRob3V0X3JhaXNlKHNlbGYpOgorICAgICAgICBsb2dnaW5nLnJhaXNlRXhjZXB0aW9ucyA9IEZhbHNlCisgICAgICAgIHNlbGYuX3Rlc3Rfd2l0aF9mYWlsdXJlX2luX21ldGhvZCgnYWNxdWlyZScsIEluZGV4RXJyb3IpCisKKyAgICBkZWYgdGVzdF93aXRoX290aGVyX2Vycm9yX2luX2ZsdXNoX3dpdGhvdXRfcmFpc2Uoc2VsZik6CisgICAgICAgIGxvZ2dpbmcucmFpc2VFeGNlcHRpb25zID0gRmFsc2UKKyAgICAgICAgc2VsZi5fdGVzdF93aXRoX2ZhaWx1cmVfaW5fbWV0aG9kKCdmbHVzaCcsIEluZGV4RXJyb3IpCisKKyAgICBkZWYgdGVzdF93aXRoX290aGVyX2Vycm9yX2luX2Nsb3NlX3dpdGhvdXRfcmFpc2Uoc2VsZik6CisgICAgICAgIGxvZ2dpbmcucmFpc2VFeGNlcHRpb25zID0gRmFsc2UKKyAgICAgICAgc2VsZi5fdGVzdF93aXRoX2ZhaWx1cmVfaW5fbWV0aG9kKCdjbG9zZScsIEluZGV4RXJyb3IpCisKKyAgICBkZWYgdGVzdF93aXRoX290aGVyX2Vycm9yX2luX2FjcXVpcmVfd2l0aF9yYWlzZShzZWxmKToKKyAgICAgICAgbG9nZ2luZy5yYWlzZUV4Y2VwdGlvbnMgPSBUcnVlCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IsIHNlbGYuX3Rlc3Rfd2l0aF9mYWlsdXJlX2luX21ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjcXVpcmUnLCBJbmRleEVycm9yKQorCisgICAgZGVmIHRlc3Rfd2l0aF9vdGhlcl9lcnJvcl9pbl9mbHVzaF93aXRoX3JhaXNlKHNlbGYpOgorICAgICAgICBsb2dnaW5nLnJhaXNlRXhjZXB0aW9ucyA9IFRydWUKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgc2VsZi5fdGVzdF93aXRoX2ZhaWx1cmVfaW5fbWV0aG9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnZmx1c2gnLCBJbmRleEVycm9yKQorCisgICAgZGVmIHRlc3Rfd2l0aF9vdGhlcl9lcnJvcl9pbl9jbG9zZV93aXRoX3JhaXNlKHNlbGYpOgorICAgICAgICBsb2dnaW5nLnJhaXNlRXhjZXB0aW9ucyA9IFRydWUKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgc2VsZi5fdGVzdF93aXRoX2ZhaWx1cmVfaW5fbWV0aG9kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2UnLCBJbmRleEVycm9yKQorCisKK2NsYXNzIE1vZHVsZUxldmVsTWlzY1Rlc3QoQmFzZVRlc3QpOgorCisgICAgIiIiVGVzdCBzdWl0ZSBmb3Igc29tZSBtb2R1bGUgbGV2ZWwgbWV0aG9kcy4iIiIKKworICAgIGRlZiB0ZXN0X2Rpc2FibGUoc2VsZik6CisgICAgICAgIG9sZF9kaXNhYmxlID0gbG9nZ2luZy5yb290Lm1hbmFnZXIuZGlzYWJsZQorICAgICAgICAjIGNvbmZpcm0gb3VyIGFzc3VtcHRpb25zIGFyZSBjb3JyZWN0CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob2xkX2Rpc2FibGUsIDApCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChsb2dnaW5nLmRpc2FibGUsIG9sZF9kaXNhYmxlKQorCisgICAgICAgIGxvZ2dpbmcuZGlzYWJsZSg4MykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2dnaW5nLnJvb3QubWFuYWdlci5kaXNhYmxlLCA4MykKKworICAgIGRlZiBfdGVzdF9sb2coc2VsZiwgbWV0aG9kLCBsZXZlbD1Ob25lKToKKyAgICAgICAgY2FsbGVkID0gW10KKyAgICAgICAgcGF0Y2goc2VsZiwgbG9nZ2luZywgJ2Jhc2ljQ29uZmlnJywKKyAgICAgICAgICAgICAgbGFtYmRhICphLCAqKmt3OiBjYWxsZWQuYXBwZW5kKChhLCBrdykpKQorCisgICAgICAgIHJlY29yZGluZyA9IFJlY29yZGluZ0hhbmRsZXIoKQorICAgICAgICBsb2dnaW5nLnJvb3QuYWRkSGFuZGxlcihyZWNvcmRpbmcpCisKKyAgICAgICAgbG9nX21ldGhvZCA9IGdldGF0dHIobG9nZ2luZywgbWV0aG9kKQorICAgICAgICBpZiBsZXZlbCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGxvZ19tZXRob2QobGV2ZWwsICJ0ZXN0IG1lOiAlciIsIHJlY29yZGluZykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZ19tZXRob2QoInRlc3QgbWU6ICVyIiwgcmVjb3JkaW5nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlY29yZGluZy5yZWNvcmRzKSwgMSkKKyAgICAgICAgcmVjb3JkID0gcmVjb3JkaW5nLnJlY29yZHNbMF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWNvcmQuZ2V0TWVzc2FnZSgpLCAidGVzdCBtZTogJXIiICUgcmVjb3JkaW5nKQorCisgICAgICAgIGV4cGVjdGVkX2xldmVsID0gbGV2ZWwgaWYgbGV2ZWwgaXMgbm90IE5vbmUgZWxzZSBnZXRhdHRyKGxvZ2dpbmcsIG1ldGhvZC51cHBlcigpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlY29yZC5sZXZlbG5vLCBleHBlY3RlZF9sZXZlbCkKKworICAgICAgICAjIGJhc2ljQ29uZmlnIHdhcyBub3QgY2FsbGVkIQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhbGxlZCwgW10pCisKKyAgICBkZWYgdGVzdF9sb2coc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfbG9nKCdsb2cnLCBsb2dnaW5nLkVSUk9SKQorCisgICAgZGVmIHRlc3RfZGVidWcoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfbG9nKCdkZWJ1ZycpCisKKyAgICBkZWYgdGVzdF9pbmZvKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2xvZygnaW5mbycpCisKKyAgICBkZWYgdGVzdF93YXJuaW5nKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2xvZygnd2FybmluZycpCisKKyAgICBkZWYgdGVzdF9lcnJvcihzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9sb2coJ2Vycm9yJykKKworICAgIGRlZiB0ZXN0X2NyaXRpY2FsKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2xvZygnY3JpdGljYWwnKQorCisgICAgZGVmIHRlc3Rfc2V0X2xvZ2dlcl9jbGFzcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsb2dnaW5nLnNldExvZ2dlckNsYXNzLCBvYmplY3QpCisKKyAgICAgICAgY2xhc3MgTXlMb2dnZXIobG9nZ2luZy5Mb2dnZXIpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGxvZ2dpbmcuc2V0TG9nZ2VyQ2xhc3MoTXlMb2dnZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobG9nZ2luZy5nZXRMb2dnZXJDbGFzcygpLCBNeUxvZ2dlcikKKworICAgICAgICBsb2dnaW5nLnNldExvZ2dlckNsYXNzKGxvZ2dpbmcuTG9nZ2VyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZ2dpbmcuZ2V0TG9nZ2VyQ2xhc3MoKSwgbG9nZ2luZy5Mb2dnZXIpCisKK2NsYXNzIExvZ1JlY29yZFRlc3QoQmFzZVRlc3QpOgorICAgIGRlZiB0ZXN0X3N0cl9yZXAoc2VsZik6CisgICAgICAgIHIgPSBsb2dnaW5nLm1ha2VMb2dSZWNvcmQoe30pCisgICAgICAgIHMgPSBzdHIocikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuc3RhcnRzd2l0aCgnPExvZ1JlY29yZDogJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzLmVuZHN3aXRoKCc+JykpCisKKyAgICBkZWYgdGVzdF9kaWN0X2FyZyhzZWxmKToKKyAgICAgICAgaCA9IFJlY29yZGluZ0hhbmRsZXIoKQorICAgICAgICByID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorICAgICAgICByLmFkZEhhbmRsZXIoaCkKKyAgICAgICAgZCA9IHsnbGVzcycgOiAnbW9yZScgfQorICAgICAgICBsb2dnaW5nLndhcm5pbmcoJ2xlc3MgaXMgJShsZXNzKXMnLCBkKQorICAgICAgICBzZWxmLmFzc2VydElzKGgucmVjb3Jkc1swXS5hcmdzLCBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGgucmVjb3Jkc1swXS5tZXNzYWdlLCAnbGVzcyBpcyBtb3JlJykKKyAgICAgICAgci5yZW1vdmVIYW5kbGVyKGgpCisgICAgICAgIGguY2xvc2UoKQorCisgICAgZGVmIHRlc3RfbXVsdGlwcm9jZXNzaW5nKHNlbGYpOgorICAgICAgICByID0gbG9nZ2luZy5tYWtlTG9nUmVjb3JkKHt9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHIucHJvY2Vzc05hbWUsICdNYWluUHJvY2VzcycpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGltcG9ydCBtdWx0aXByb2Nlc3NpbmcgYXMgbXAKKyAgICAgICAgICAgIHIgPSBsb2dnaW5nLm1ha2VMb2dSZWNvcmQoe30pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHIucHJvY2Vzc05hbWUsIG1wLmN1cnJlbnRfcHJvY2VzcygpLm5hbWUpCisgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0X29wdGlvbmFsKHNlbGYpOgorICAgICAgICByID0gbG9nZ2luZy5tYWtlTG9nUmVjb3JkKHt9KQorICAgICAgICBOT1RfTk9ORSA9IHNlbGYuYXNzZXJ0SXNOb3ROb25lCisgICAgICAgIGlmIHRocmVhZGluZzoKKyAgICAgICAgICAgIE5PVF9OT05FKHIudGhyZWFkKQorICAgICAgICAgICAgTk9UX05PTkUoci50aHJlYWROYW1lKQorICAgICAgICBOT1RfTk9ORShyLnByb2Nlc3MpCisgICAgICAgIE5PVF9OT05FKHIucHJvY2Vzc05hbWUpCisgICAgICAgIGxvZ190aHJlYWRzID0gbG9nZ2luZy5sb2dUaHJlYWRzCisgICAgICAgIGxvZ19wcm9jZXNzZXMgPSBsb2dnaW5nLmxvZ1Byb2Nlc3NlcworICAgICAgICBsb2dfbXVsdGlwcm9jZXNzaW5nID0gbG9nZ2luZy5sb2dNdWx0aXByb2Nlc3NpbmcKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbG9nZ2luZy5sb2dUaHJlYWRzID0gRmFsc2UKKyAgICAgICAgICAgIGxvZ2dpbmcubG9nUHJvY2Vzc2VzID0gRmFsc2UKKyAgICAgICAgICAgIGxvZ2dpbmcubG9nTXVsdGlwcm9jZXNzaW5nID0gRmFsc2UKKyAgICAgICAgICAgIHIgPSBsb2dnaW5nLm1ha2VMb2dSZWNvcmQoe30pCisgICAgICAgICAgICBOT05FID0gc2VsZi5hc3NlcnRJc05vbmUKKyAgICAgICAgICAgIE5PTkUoci50aHJlYWQpCisgICAgICAgICAgICBOT05FKHIudGhyZWFkTmFtZSkKKyAgICAgICAgICAgIE5PTkUoci5wcm9jZXNzKQorICAgICAgICAgICAgTk9ORShyLnByb2Nlc3NOYW1lKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgbG9nZ2luZy5sb2dUaHJlYWRzID0gbG9nX3RocmVhZHMKKyAgICAgICAgICAgIGxvZ2dpbmcubG9nUHJvY2Vzc2VzID0gbG9nX3Byb2Nlc3NlcworICAgICAgICAgICAgbG9nZ2luZy5sb2dNdWx0aXByb2Nlc3NpbmcgPSBsb2dfbXVsdGlwcm9jZXNzaW5nCisKK2NsYXNzIEJhc2ljQ29uZmlnVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICAiIiJUZXN0IHN1aXRlIGZvciBsb2dnaW5nLmJhc2ljQ29uZmlnLiIiIgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihCYXNpY0NvbmZpZ1Rlc3QsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZi5oYW5kbGVycyA9IGxvZ2dpbmcucm9vdC5oYW5kbGVycworICAgICAgICBzZWxmLnNhdmVkX2hhbmRsZXJzID0gbG9nZ2luZy5faGFuZGxlcnMuY29weSgpCisgICAgICAgIHNlbGYuc2F2ZWRfaGFuZGxlcl9saXN0ID0gbG9nZ2luZy5faGFuZGxlckxpc3RbOl0KKyAgICAgICAgc2VsZi5vcmlnaW5hbF9sb2dnaW5nX2xldmVsID0gbG9nZ2luZy5yb290LmxldmVsCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZWxmLmNsZWFudXApCisgICAgICAgIGxvZ2dpbmcucm9vdC5oYW5kbGVycyA9IFtdCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGZvciBoIGluIGxvZ2dpbmcucm9vdC5oYW5kbGVyc1s6XToKKyAgICAgICAgICAgIGxvZ2dpbmcucm9vdC5yZW1vdmVIYW5kbGVyKGgpCisgICAgICAgICAgICBoLmNsb3NlKCkKKyAgICAgICAgc3VwZXIoQmFzaWNDb25maWdUZXN0LCBzZWxmKS50ZWFyRG93bigpCisKKyAgICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgc2V0YXR0cihsb2dnaW5nLnJvb3QsICdoYW5kbGVycycsIHNlbGYuaGFuZGxlcnMpCisgICAgICAgIGxvZ2dpbmcuX2hhbmRsZXJzLmNsZWFyKCkKKyAgICAgICAgbG9nZ2luZy5faGFuZGxlcnMudXBkYXRlKHNlbGYuc2F2ZWRfaGFuZGxlcnMpCisgICAgICAgIGxvZ2dpbmcuX2hhbmRsZXJMaXN0WzpdID0gc2VsZi5zYXZlZF9oYW5kbGVyX2xpc3QKKyAgICAgICAgbG9nZ2luZy5yb290LmxldmVsID0gc2VsZi5vcmlnaW5hbF9sb2dnaW5nX2xldmVsCisKKyAgICBkZWYgdGVzdF9ub19rd2FyZ3Moc2VsZik6CisgICAgICAgIGxvZ2dpbmcuYmFzaWNDb25maWcoKQorCisgICAgICAgICMgaGFuZGxlciBkZWZhdWx0cyB0byBhIFN0cmVhbUhhbmRsZXIgdG8gc3lzLnN0ZGVycgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsb2dnaW5nLnJvb3QuaGFuZGxlcnMpLCAxKQorICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5yb290LmhhbmRsZXJzWzBdCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShoYW5kbGVyLCBsb2dnaW5nLlN0cmVhbUhhbmRsZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFuZGxlci5zdHJlYW0sIHN5cy5zdGRlcnIpCisKKyAgICAgICAgZm9ybWF0dGVyID0gaGFuZGxlci5mb3JtYXR0ZXIKKyAgICAgICAgIyBmb3JtYXQgZGVmYXVsdHMgdG8gbG9nZ2luZy5CQVNJQ19GT1JNQVQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3JtYXR0ZXIuX3N0eWxlLl9mbXQsIGxvZ2dpbmcuQkFTSUNfRk9STUFUKQorICAgICAgICAjIGRhdGVmbXQgZGVmYXVsdHMgdG8gTm9uZQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShmb3JtYXR0ZXIuZGF0ZWZtdCkKKyAgICAgICAgIyBzdHlsZSBkZWZhdWx0cyB0byAlCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShmb3JtYXR0ZXIuX3N0eWxlLCBsb2dnaW5nLlBlcmNlbnRTdHlsZSkKKworICAgICAgICAjIGxldmVsIGlzIG5vdCBleHBsaWNpdGx5IHNldAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZ2dpbmcucm9vdC5sZXZlbCwgc2VsZi5vcmlnaW5hbF9sb2dnaW5nX2xldmVsKQorCisgICAgZGVmIHRlc3RfZmlsZW5hbWUoc2VsZik6CisgICAgICAgIGxvZ2dpbmcuYmFzaWNDb25maWcoZmlsZW5hbWU9J3Rlc3QubG9nJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsb2dnaW5nLnJvb3QuaGFuZGxlcnMpLCAxKQorICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5yb290LmhhbmRsZXJzWzBdCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShoYW5kbGVyLCBsb2dnaW5nLkZpbGVIYW5kbGVyKQorCisgICAgICAgIGV4cGVjdGVkID0gbG9nZ2luZy5GaWxlSGFuZGxlcigndGVzdC5sb2cnLCAnYScpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChleHBlY3RlZC5jbG9zZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYW5kbGVyLnN0cmVhbS5tb2RlLCBleHBlY3RlZC5zdHJlYW0ubW9kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYW5kbGVyLnN0cmVhbS5uYW1lLCBleHBlY3RlZC5zdHJlYW0ubmFtZSkKKworICAgIGRlZiB0ZXN0X2ZpbGVtb2RlKHNlbGYpOgorICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKGZpbGVuYW1lPSd0ZXN0LmxvZycsIGZpbGVtb2RlPSd3YicpCisKKyAgICAgICAgaGFuZGxlciA9IGxvZ2dpbmcucm9vdC5oYW5kbGVyc1swXQorICAgICAgICBleHBlY3RlZCA9IGxvZ2dpbmcuRmlsZUhhbmRsZXIoJ3Rlc3QubG9nJywgJ3diJykKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGV4cGVjdGVkLmNsb3NlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhbmRsZXIuc3RyZWFtLm1vZGUsIGV4cGVjdGVkLnN0cmVhbS5tb2RlKQorCisgICAgZGVmIHRlc3Rfc3RyZWFtKHNlbGYpOgorICAgICAgICBzdHJlYW0gPSBpby5TdHJpbmdJTygpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzdHJlYW0uY2xvc2UpCisgICAgICAgIGxvZ2dpbmcuYmFzaWNDb25maWcoc3RyZWFtPXN0cmVhbSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsb2dnaW5nLnJvb3QuaGFuZGxlcnMpLCAxKQorICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5yb290LmhhbmRsZXJzWzBdCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShoYW5kbGVyLCBsb2dnaW5nLlN0cmVhbUhhbmRsZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFuZGxlci5zdHJlYW0sIHN0cmVhbSkKKworICAgIGRlZiB0ZXN0X2Zvcm1hdChzZWxmKToKKyAgICAgICAgbG9nZ2luZy5iYXNpY0NvbmZpZyhmb3JtYXQ9J2ZvbycpCisKKyAgICAgICAgZm9ybWF0dGVyID0gbG9nZ2luZy5yb290LmhhbmRsZXJzWzBdLmZvcm1hdHRlcgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvcm1hdHRlci5fc3R5bGUuX2ZtdCwgJ2ZvbycpCisKKyAgICBkZWYgdGVzdF9kYXRlZm10KHNlbGYpOgorICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKGRhdGVmbXQ9J2JhcicpCisKKyAgICAgICAgZm9ybWF0dGVyID0gbG9nZ2luZy5yb290LmhhbmRsZXJzWzBdLmZvcm1hdHRlcgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvcm1hdHRlci5kYXRlZm10LCAnYmFyJykKKworICAgIGRlZiB0ZXN0X3N0eWxlKHNlbGYpOgorICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKHN0eWxlPSckJykKKworICAgICAgICBmb3JtYXR0ZXIgPSBsb2dnaW5nLnJvb3QuaGFuZGxlcnNbMF0uZm9ybWF0dGVyCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShmb3JtYXR0ZXIuX3N0eWxlLCBsb2dnaW5nLlN0cmluZ1RlbXBsYXRlU3R5bGUpCisKKyAgICBkZWYgdGVzdF9sZXZlbChzZWxmKToKKyAgICAgICAgb2xkX2xldmVsID0gbG9nZ2luZy5yb290LmxldmVsCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChsb2dnaW5nLnJvb3Quc2V0TGV2ZWwsIG9sZF9sZXZlbCkKKworICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKGxldmVsPTU3KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvZ2dpbmcucm9vdC5sZXZlbCwgNTcpCisgICAgICAgICMgVGVzdCB0aGF0IHNlY29uZCBjYWxsIGhhcyBubyBlZmZlY3QKKyAgICAgICAgbG9nZ2luZy5iYXNpY0NvbmZpZyhsZXZlbD01OCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsb2dnaW5nLnJvb3QubGV2ZWwsIDU3KQorCisgICAgZGVmIHRlc3RfaW5jb21wYXRpYmxlKHNlbGYpOgorICAgICAgICBhc3NlcnRSYWlzZXMgPSBzZWxmLmFzc2VydFJhaXNlcworICAgICAgICBoYW5kbGVycyA9IFtsb2dnaW5nLlN0cmVhbUhhbmRsZXIoKV0KKyAgICAgICAgc3RyZWFtID0gc3lzLnN0ZGVycgorICAgICAgICBhc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbG9nZ2luZy5iYXNpY0NvbmZpZywgZmlsZW5hbWU9J3Rlc3QubG9nJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtPXN0cmVhbSkKKyAgICAgICAgYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxvZ2dpbmcuYmFzaWNDb25maWcsIGZpbGVuYW1lPSd0ZXN0LmxvZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZXJzPWhhbmRsZXJzKQorICAgICAgICBhc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbG9nZ2luZy5iYXNpY0NvbmZpZywgc3RyZWFtPXN0cmVhbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnM9aGFuZGxlcnMpCisKKyAgICBkZWYgdGVzdF9oYW5kbGVycyhzZWxmKToKKyAgICAgICAgaGFuZGxlcnMgPSBbCisgICAgICAgICAgICBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoKSwKKyAgICAgICAgICAgIGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihzeXMuc3Rkb3V0KSwKKyAgICAgICAgICAgIGxvZ2dpbmcuU3RyZWFtSGFuZGxlcigpLAorICAgICAgICBdCisgICAgICAgIGYgPSBsb2dnaW5nLkZvcm1hdHRlcigpCisgICAgICAgIGhhbmRsZXJzWzJdLnNldEZvcm1hdHRlcihmKQorICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKGhhbmRsZXJzPWhhbmRsZXJzKQorICAgICAgICBzZWxmLmFzc2VydElzKGhhbmRsZXJzWzBdLCBsb2dnaW5nLnJvb3QuaGFuZGxlcnNbMF0pCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoaGFuZGxlcnNbMV0sIGxvZ2dpbmcucm9vdC5oYW5kbGVyc1sxXSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhoYW5kbGVyc1syXSwgbG9nZ2luZy5yb290LmhhbmRsZXJzWzJdKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShoYW5kbGVyc1swXS5mb3JtYXR0ZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGhhbmRsZXJzWzFdLmZvcm1hdHRlcikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhoYW5kbGVyc1syXS5mb3JtYXR0ZXIsIGYpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoaGFuZGxlcnNbMF0uZm9ybWF0dGVyLCBoYW5kbGVyc1sxXS5mb3JtYXR0ZXIpCisKKyAgICBkZWYgX3Rlc3RfbG9nKHNlbGYsIG1ldGhvZCwgbGV2ZWw9Tm9uZSk6CisgICAgICAgICMgbG9nZ2luZy5yb290IGhhcyBubyBoYW5kbGVycyBzbyBiYXNpY0NvbmZpZyBzaG91bGQgYmUgY2FsbGVkCisgICAgICAgIGNhbGxlZCA9IFtdCisKKyAgICAgICAgb2xkX2Jhc2ljX2NvbmZpZyA9IGxvZ2dpbmcuYmFzaWNDb25maWcKKyAgICAgICAgZGVmIG15X2Jhc2ljX2NvbmZpZygqYSwgKiprdyk6CisgICAgICAgICAgICBvbGRfYmFzaWNfY29uZmlnKCkKKyAgICAgICAgICAgIG9sZF9sZXZlbCA9IGxvZ2dpbmcucm9vdC5sZXZlbAorICAgICAgICAgICAgbG9nZ2luZy5yb290LnNldExldmVsKDEwMCkgICMgYXZvaWQgaGF2aW5nIG1lc3NhZ2VzIGluIHN0ZGVycgorICAgICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGxvZ2dpbmcucm9vdC5zZXRMZXZlbCwgb2xkX2xldmVsKQorICAgICAgICAgICAgY2FsbGVkLmFwcGVuZCgoYSwga3cpKQorCisgICAgICAgIHBhdGNoKHNlbGYsIGxvZ2dpbmcsICdiYXNpY0NvbmZpZycsIG15X2Jhc2ljX2NvbmZpZykKKworICAgICAgICBsb2dfbWV0aG9kID0gZ2V0YXR0cihsb2dnaW5nLCBtZXRob2QpCisgICAgICAgIGlmIGxldmVsIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgbG9nX21ldGhvZChsZXZlbCwgInRlc3QgbWUiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9nX21ldGhvZCgidGVzdCBtZSIpCisKKyAgICAgICAgIyBiYXNpY0NvbmZpZyB3YXMgY2FsbGVkIHdpdGggbm8gYXJndW1lbnRzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FsbGVkLCBbKCgpLCB7fSldKQorCisgICAgZGVmIHRlc3RfbG9nKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2xvZygnbG9nJywgbG9nZ2luZy5XQVJOSU5HKQorCisgICAgZGVmIHRlc3RfZGVidWcoc2VsZik6CisgICAgICAgIHNlbGYuX3Rlc3RfbG9nKCdkZWJ1ZycpCisKKyAgICBkZWYgdGVzdF9pbmZvKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2xvZygnaW5mbycpCisKKyAgICBkZWYgdGVzdF93YXJuaW5nKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2xvZygnd2FybmluZycpCisKKyAgICBkZWYgdGVzdF9lcnJvcihzZWxmKToKKyAgICAgICAgc2VsZi5fdGVzdF9sb2coJ2Vycm9yJykKKworICAgIGRlZiB0ZXN0X2NyaXRpY2FsKHNlbGYpOgorICAgICAgICBzZWxmLl90ZXN0X2xvZygnY3JpdGljYWwnKQorCisKK2NsYXNzIExvZ2dlckFkYXB0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoTG9nZ2VyQWRhcHRlclRlc3QsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgb2xkX2hhbmRsZXJfbGlzdCA9IGxvZ2dpbmcuX2hhbmRsZXJMaXN0WzpdCisKKyAgICAgICAgc2VsZi5yZWNvcmRpbmcgPSBSZWNvcmRpbmdIYW5kbGVyKCkKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnaW5nLnJvb3QKKyAgICAgICAgc2VsZi5sb2dnZXIuYWRkSGFuZGxlcihzZWxmLnJlY29yZGluZykKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNlbGYubG9nZ2VyLnJlbW92ZUhhbmRsZXIsIHNlbGYucmVjb3JkaW5nKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2VsZi5yZWNvcmRpbmcuY2xvc2UpCisKKyAgICAgICAgZGVmIGNsZWFudXAoKToKKyAgICAgICAgICAgIGxvZ2dpbmcuX2hhbmRsZXJMaXN0WzpdID0gb2xkX2hhbmRsZXJfbGlzdAorCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChjbGVhbnVwKQorICAgICAgICBzZWxmLmFkZENsZWFudXAobG9nZ2luZy5zaHV0ZG93bikKKyAgICAgICAgc2VsZi5hZGFwdGVyID0gbG9nZ2luZy5Mb2dnZXJBZGFwdGVyKGxvZ2dlcj1zZWxmLmxvZ2dlciwgZXh0cmE9Tm9uZSkKKworICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbihzZWxmKToKKyAgICAgICAgbXNnID0gJ3Rlc3RpbmcgZXhjZXB0aW9uOiAlcicKKyAgICAgICAgZXhjID0gTm9uZQorICAgICAgICB0cnk6CisgICAgICAgICAgICAxIC8gMAorICAgICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGV4YyA9IGUKKyAgICAgICAgICAgIHNlbGYuYWRhcHRlci5leGNlcHRpb24obXNnLCBzZWxmLnJlY29yZGluZykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzZWxmLnJlY29yZGluZy5yZWNvcmRzKSwgMSkKKyAgICAgICAgcmVjb3JkID0gc2VsZi5yZWNvcmRpbmcucmVjb3Jkc1swXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlY29yZC5sZXZlbG5vLCBsb2dnaW5nLkVSUk9SKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlY29yZC5tc2csIG1zZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWNvcmQuYXJncywgKHNlbGYucmVjb3JkaW5nLCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVjb3JkLmV4Y19pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgIChleGMuX19jbGFzc19fLCBleGMsIGV4Yy5fX3RyYWNlYmFja19fKSkKKworICAgIGRlZiB0ZXN0X2NyaXRpY2FsKHNlbGYpOgorICAgICAgICBtc2cgPSAnY3JpdGljYWwgdGVzdCEgJXInCisgICAgICAgIHNlbGYuYWRhcHRlci5jcml0aWNhbChtc2csIHNlbGYucmVjb3JkaW5nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYucmVjb3JkaW5nLnJlY29yZHMpLCAxKQorICAgICAgICByZWNvcmQgPSBzZWxmLnJlY29yZGluZy5yZWNvcmRzWzBdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVjb3JkLmxldmVsbm8sIGxvZ2dpbmcuQ1JJVElDQUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVjb3JkLm1zZywgbXNnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlY29yZC5hcmdzLCAoc2VsZi5yZWNvcmRpbmcsKSkKKworICAgIGRlZiB0ZXN0X2lzX2VuYWJsZWRfZm9yKHNlbGYpOgorICAgICAgICBvbGRfZGlzYWJsZSA9IHNlbGYuYWRhcHRlci5sb2dnZXIubWFuYWdlci5kaXNhYmxlCisgICAgICAgIHNlbGYuYWRhcHRlci5sb2dnZXIubWFuYWdlci5kaXNhYmxlID0gMzMKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNldGF0dHIsIHNlbGYuYWRhcHRlci5sb2dnZXIubWFuYWdlciwgJ2Rpc2FibGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgb2xkX2Rpc2FibGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5hZGFwdGVyLmlzRW5hYmxlZEZvcigzMikpCisKKyAgICBkZWYgdGVzdF9oYXNfaGFuZGxlcnMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLmFkYXB0ZXIuaGFzSGFuZGxlcnMoKSkKKworICAgICAgICBmb3IgaGFuZGxlciBpbiBzZWxmLmxvZ2dlci5oYW5kbGVyczoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLnJlbW92ZUhhbmRsZXIoaGFuZGxlcikKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYubG9nZ2VyLmhhc0hhbmRsZXJzKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5hZGFwdGVyLmhhc0hhbmRsZXJzKCkpCisKKworY2xhc3MgTG9nZ2VyVGVzdChCYXNlVGVzdCk6CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKExvZ2dlclRlc3QsIHNlbGYpLnNldFVwKCkKKyAgICAgICAgc2VsZi5yZWNvcmRpbmcgPSBSZWNvcmRpbmdIYW5kbGVyKCkKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnaW5nLkxvZ2dlcihuYW1lPSdibGFoJykKKyAgICAgICAgc2VsZi5sb2dnZXIuYWRkSGFuZGxlcihzZWxmLnJlY29yZGluZykKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNlbGYubG9nZ2VyLnJlbW92ZUhhbmRsZXIsIHNlbGYucmVjb3JkaW5nKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2VsZi5yZWNvcmRpbmcuY2xvc2UpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChsb2dnaW5nLnNodXRkb3duKQorCisgICAgZGVmIHRlc3Rfc2V0X2ludmFsaWRfbGV2ZWwoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5sb2dnZXIuc2V0TGV2ZWwsIG9iamVjdCgpKQorCisgICAgZGVmIHRlc3RfZXhjZXB0aW9uKHNlbGYpOgorICAgICAgICBtc2cgPSAndGVzdGluZyBleGNlcHRpb246ICVyJworICAgICAgICBleGMgPSBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIDEgLyAwCisgICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvciBhcyBlOgorICAgICAgICAgICAgZXhjID0gZQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXhjZXB0aW9uKG1zZywgc2VsZi5yZWNvcmRpbmcpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5yZWNvcmRpbmcucmVjb3JkcyksIDEpCisgICAgICAgIHJlY29yZCA9IHNlbGYucmVjb3JkaW5nLnJlY29yZHNbMF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWNvcmQubGV2ZWxubywgbG9nZ2luZy5FUlJPUikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWNvcmQubXNnLCBtc2cpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVjb3JkLmFyZ3MsIChzZWxmLnJlY29yZGluZywpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlY29yZC5leGNfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZXhjLl9fY2xhc3NfXywgZXhjLCBleGMuX190cmFjZWJhY2tfXykpCisKKyAgICBkZWYgdGVzdF9sb2dfaW52YWxpZF9sZXZlbF93aXRoX3JhaXNlKHNlbGYpOgorICAgICAgICBvbGRfcmFpc2UgPSBsb2dnaW5nLnJhaXNlRXhjZXB0aW9ucworICAgICAgICBzZWxmLmFkZENsZWFudXAoc2V0YXR0ciwgbG9nZ2luZywgJ3JhaXNlRXhlY3B0aW9ucycsIG9sZF9yYWlzZSkKKworICAgICAgICBsb2dnaW5nLnJhaXNlRXhjZXB0aW9ucyA9IFRydWUKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLmxvZ2dlci5sb2csICcxMCcsICd0ZXN0IG1lc3NhZ2UnKQorCisgICAgZGVmIHRlc3RfbG9nX2ludmFsaWRfbGV2ZWxfbm9fcmFpc2Uoc2VsZik6CisgICAgICAgIG9sZF9yYWlzZSA9IGxvZ2dpbmcucmFpc2VFeGNlcHRpb25zCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZXRhdHRyLCBsb2dnaW5nLCAncmFpc2VFeGVjcHRpb25zJywgb2xkX3JhaXNlKQorCisgICAgICAgIGxvZ2dpbmcucmFpc2VFeGNlcHRpb25zID0gRmFsc2UKKyAgICAgICAgc2VsZi5sb2dnZXIubG9nKCcxMCcsICd0ZXN0IG1lc3NhZ2UnKSAgIyBubyBleGNlcHRpb24gaGFwcGVucworCisgICAgZGVmIHRlc3RfZmluZF9jYWxsZXJfd2l0aF9zdGFja19pbmZvKHNlbGYpOgorICAgICAgICBjYWxsZWQgPSBbXQorICAgICAgICBwYXRjaChzZWxmLCBsb2dnaW5nLnRyYWNlYmFjaywgJ3ByaW50X3N0YWNrJywKKyAgICAgICAgICAgICAgbGFtYmRhIGYsIGZpbGU6IGNhbGxlZC5hcHBlbmQoZmlsZS5nZXR2YWx1ZSgpKSkKKworICAgICAgICBzZWxmLmxvZ2dlci5maW5kQ2FsbGVyKHN0YWNrX2luZm89VHJ1ZSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjYWxsZWQpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdTdGFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KTpcbicsIGNhbGxlZFswXSkKKworICAgIGRlZiB0ZXN0X21ha2VfcmVjb3JkX3dpdGhfZXh0cmFfb3ZlcndyaXRlKHNlbGYpOgorICAgICAgICBuYW1lID0gJ215IHJlY29yZCcKKyAgICAgICAgbGV2ZWwgPSAxMworICAgICAgICBmbiA9IGxubyA9IG1zZyA9IGFyZ3MgPSBleGNfaW5mbyA9IGZ1bmMgPSBzaW5mbyA9IE5vbmUKKyAgICAgICAgcnYgPSBsb2dnaW5nLl9sb2dSZWNvcmRGYWN0b3J5KG5hbWUsIGxldmVsLCBmbiwgbG5vLCBtc2csIGFyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNfaW5mbywgZnVuYywgc2luZm8pCisKKyAgICAgICAgZm9yIGtleSBpbiAoJ21lc3NhZ2UnLCAnYXNjdGltZScpICsgdHVwbGUocnYuX19kaWN0X18ua2V5cygpKToKKyAgICAgICAgICAgIGV4dHJhID0ge2tleTogJ3NvbWUgdmFsdWUnfQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHNlbGYubG9nZ2VyLm1ha2VSZWNvcmQsIG5hbWUsIGxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm4sIGxubywgbXNnLCBhcmdzLCBleGNfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhPWV4dHJhLCBzaW5mbz1zaW5mbykKKworICAgIGRlZiB0ZXN0X21ha2VfcmVjb3JkX3dpdGhfZXh0cmFfbm9fb3ZlcndyaXRlKHNlbGYpOgorICAgICAgICBuYW1lID0gJ215IHJlY29yZCcKKyAgICAgICAgbGV2ZWwgPSAxMworICAgICAgICBmbiA9IGxubyA9IG1zZyA9IGFyZ3MgPSBleGNfaW5mbyA9IGZ1bmMgPSBzaW5mbyA9IE5vbmUKKyAgICAgICAgZXh0cmEgPSB7J3ZhbGlkX2tleSc6ICdzb21lIHZhbHVlJ30KKyAgICAgICAgcmVzdWx0ID0gc2VsZi5sb2dnZXIubWFrZVJlY29yZChuYW1lLCBsZXZlbCwgZm4sIGxubywgbXNnLCBhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y19pbmZvLCBleHRyYT1leHRyYSwgc2luZm89c2luZm8pCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ3ZhbGlkX2tleScsIHJlc3VsdC5fX2RpY3RfXykKKworICAgIGRlZiB0ZXN0X2hhc19oYW5kbGVycyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubG9nZ2VyLmhhc0hhbmRsZXJzKCkpCisKKyAgICAgICAgZm9yIGhhbmRsZXIgaW4gc2VsZi5sb2dnZXIuaGFuZGxlcnM6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5yZW1vdmVIYW5kbGVyKGhhbmRsZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5sb2dnZXIuaGFzSGFuZGxlcnMoKSkKKworICAgIGRlZiB0ZXN0X2hhc19oYW5kbGVyc19ub19wcm9wYWdhdGUoc2VsZik6CisgICAgICAgIGNoaWxkX2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdibGFoLmNoaWxkJykKKyAgICAgICAgY2hpbGRfbG9nZ2VyLnByb3BhZ2F0ZSA9IEZhbHNlCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoY2hpbGRfbG9nZ2VyLmhhc0hhbmRsZXJzKCkpCisKKyAgICBkZWYgdGVzdF9pc19lbmFibGVkX2ZvcihzZWxmKToKKyAgICAgICAgb2xkX2Rpc2FibGUgPSBzZWxmLmxvZ2dlci5tYW5hZ2VyLmRpc2FibGUKKyAgICAgICAgc2VsZi5sb2dnZXIubWFuYWdlci5kaXNhYmxlID0gMjMKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNldGF0dHIsIHNlbGYubG9nZ2VyLm1hbmFnZXIsICdkaXNhYmxlJywgb2xkX2Rpc2FibGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5sb2dnZXIuaXNFbmFibGVkRm9yKDIyKSkKKworICAgIGRlZiB0ZXN0X3Jvb3RfbG9nZ2VyX2FsaWFzZXMoc2VsZik6CisgICAgICAgIHJvb3QgPSBsb2dnaW5nLmdldExvZ2dlcigpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocm9vdCwgbG9nZ2luZy5yb290KQorICAgICAgICBzZWxmLmFzc2VydElzKHJvb3QsIGxvZ2dpbmcuZ2V0TG9nZ2VyKE5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydElzKHJvb3QsIGxvZ2dpbmcuZ2V0TG9nZ2VyKCcnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhyb290LCBsb2dnaW5nLmdldExvZ2dlcignZm9vJykucm9vdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhyb290LCBsb2dnaW5nLmdldExvZ2dlcignZm9vLmJhcicpLnJvb3QpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocm9vdCwgbG9nZ2luZy5nZXRMb2dnZXIoJ2ZvbycpLnBhcmVudCkKKworICAgICAgICBzZWxmLmFzc2VydElzTm90KHJvb3QsIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdcMCcpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KHJvb3QsIGxvZ2dpbmcuZ2V0TG9nZ2VyKCdmb28uYmFyJykucGFyZW50KQorCisgICAgZGVmIHRlc3RfaW52YWxpZF9uYW1lcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsb2dnaW5nLmdldExvZ2dlciwgYW55KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxvZ2dpbmcuZ2V0TG9nZ2VyLCBiJ2ZvbycpCisKKwogY2xhc3MgQmFzZUZpbGVUZXN0KEJhc2VUZXN0KToKICAgICAiQmFzZSBjbGFzcyBmb3IgaGFuZGxlciB0ZXN0cyB0aGF0IHdyaXRlIGxvZyBmaWxlcyIKIApAQCAtMjIzOSwxMCArMzU5NCwyMSBAQAogICAgIGRlZiBhc3NlcnRMb2dGaWxlKHNlbGYsIGZpbGVuYW1lKToKICAgICAgICAgIkFzc2VydCBhIGxvZyBmaWxlIGlzIHRoZXJlIGFuZCByZWdpc3RlciBpdCBmb3IgZGVsZXRpb24iCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmV4aXN0cyhmaWxlbmFtZSksCi0gICAgICAgICAgICAgICAgICAgICAgICBtc2c9IkxvZyBmaWxlICVyIGRvZXMgbm90IGV4aXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZz0iTG9nIGZpbGUgJXIgZG9lcyBub3QgZXhpc3QiICUgZmlsZW5hbWUpCiAgICAgICAgIHNlbGYucm1maWxlcy5hcHBlbmQoZmlsZW5hbWUpCiAKIAorY2xhc3MgRmlsZUhhbmRsZXJUZXN0KEJhc2VGaWxlVGVzdCk6CisgICAgZGVmIHRlc3RfZGVsYXkoc2VsZik6CisgICAgICAgIG9zLnVubGluayhzZWxmLmZuKQorICAgICAgICBmaCA9IGxvZ2dpbmcuRmlsZUhhbmRsZXIoc2VsZi5mbiwgZGVsYXk9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoZmguc3RyZWFtKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKHNlbGYuZm4pKQorICAgICAgICBmaC5oYW5kbGUobG9nZ2luZy5tYWtlTG9nUmVjb3JkKHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUoZmguc3RyZWFtKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHMoc2VsZi5mbikpCisgICAgICAgIGZoLmNsb3NlKCkKKwogY2xhc3MgUm90YXRpbmdGaWxlSGFuZGxlclRlc3QoQmFzZUZpbGVUZXN0KToKICAgICBkZWYgbmV4dF9yZWMoc2VsZik6CiAgICAgICAgIHJldHVybiBsb2dnaW5nLkxvZ1JlY29yZCgnbicsIGxvZ2dpbmcuREVCVUcsICdwJywgMSwKQEAgLTIyNjgsMjAgKzM2MzQsMTE3IEBACiAgICAgICAgIHJoLmNsb3NlKCkKIAogICAgIGRlZiB0ZXN0X3JvbGxvdmVyX2ZpbGVuYW1lcyhzZWxmKToKKyAgICAgICAgZGVmIG5hbWVyKG5hbWUpOgorICAgICAgICAgICAgcmV0dXJuIG5hbWUgKyAiLnRlc3QiCiAgICAgICAgIHJoID0gbG9nZ2luZy5oYW5kbGVycy5Sb3RhdGluZ0ZpbGVIYW5kbGVyKAogICAgICAgICAgICAgc2VsZi5mbiwgYmFja3VwQ291bnQ9MiwgbWF4Qnl0ZXM9MSkKKyAgICAgICAgcmgubmFtZXIgPSBuYW1lcgogICAgICAgICByaC5lbWl0KHNlbGYubmV4dF9yZWMoKSkKICAgICAgICAgc2VsZi5hc3NlcnRMb2dGaWxlKHNlbGYuZm4pCiAgICAgICAgIHJoLmVtaXQoc2VsZi5uZXh0X3JlYygpKQotICAgICAgICBzZWxmLmFzc2VydExvZ0ZpbGUoc2VsZi5mbiArICIuMSIpCisgICAgICAgIHNlbGYuYXNzZXJ0TG9nRmlsZShuYW1lcihzZWxmLmZuICsgIi4xIikpCiAgICAgICAgIHJoLmVtaXQoc2VsZi5uZXh0X3JlYygpKQotICAgICAgICBzZWxmLmFzc2VydExvZ0ZpbGUoc2VsZi5mbiArICIuMiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5leGlzdHMoc2VsZi5mbiArICIuMyIpKQorICAgICAgICBzZWxmLmFzc2VydExvZ0ZpbGUobmFtZXIoc2VsZi5mbiArICIuMiIpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKG5hbWVyKHNlbGYuZm4gKyAiLjMiKSkpCisgICAgICAgIHJoLmNsb3NlKCkKKworICAgIEByZXF1aXJlc196bGliCisgICAgZGVmIHRlc3Rfcm90YXRvcihzZWxmKToKKyAgICAgICAgZGVmIG5hbWVyKG5hbWUpOgorICAgICAgICAgICAgcmV0dXJuIG5hbWUgKyAiLmd6IgorCisgICAgICAgIGRlZiByb3RhdG9yKHNvdXJjZSwgZGVzdCk6CisgICAgICAgICAgICB3aXRoIG9wZW4oc291cmNlLCAicmIiKSBhcyBzZjoKKyAgICAgICAgICAgICAgICBkYXRhID0gc2YucmVhZCgpCisgICAgICAgICAgICAgICAgY29tcHJlc3NlZCA9IHpsaWIuY29tcHJlc3MoZGF0YSwgOSkKKyAgICAgICAgICAgICAgICB3aXRoIG9wZW4oZGVzdCwgIndiIikgYXMgZGY6CisgICAgICAgICAgICAgICAgICAgIGRmLndyaXRlKGNvbXByZXNzZWQpCisgICAgICAgICAgICBvcy5yZW1vdmUoc291cmNlKQorCisgICAgICAgIHJoID0gbG9nZ2luZy5oYW5kbGVycy5Sb3RhdGluZ0ZpbGVIYW5kbGVyKAorICAgICAgICAgICAgc2VsZi5mbiwgYmFja3VwQ291bnQ9MiwgbWF4Qnl0ZXM9MSkKKyAgICAgICAgcmgucm90YXRvciA9IHJvdGF0b3IKKyAgICAgICAgcmgubmFtZXIgPSBuYW1lcgorICAgICAgICBtMSA9IHNlbGYubmV4dF9yZWMoKQorICAgICAgICByaC5lbWl0KG0xKQorICAgICAgICBzZWxmLmFzc2VydExvZ0ZpbGUoc2VsZi5mbikKKyAgICAgICAgbTIgPSBzZWxmLm5leHRfcmVjKCkKKyAgICAgICAgcmguZW1pdChtMikKKyAgICAgICAgZm4gPSBuYW1lcihzZWxmLmZuICsgIi4xIikKKyAgICAgICAgc2VsZi5hc3NlcnRMb2dGaWxlKGZuKQorICAgICAgICBuZXdsaW5lID0gb3MubGluZXNlcAorICAgICAgICB3aXRoIG9wZW4oZm4sICJyYiIpIGFzIGY6CisgICAgICAgICAgICBjb21wcmVzc2VkID0gZi5yZWFkKCkKKyAgICAgICAgICAgIGRhdGEgPSB6bGliLmRlY29tcHJlc3MoY29tcHJlc3NlZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YS5kZWNvZGUoImFzY2lpIiksIG0xLm1zZyArIG5ld2xpbmUpCisgICAgICAgIHJoLmVtaXQoc2VsZi5uZXh0X3JlYygpKQorICAgICAgICBmbiA9IG5hbWVyKHNlbGYuZm4gKyAiLjIiKQorICAgICAgICBzZWxmLmFzc2VydExvZ0ZpbGUoZm4pCisgICAgICAgIHdpdGggb3BlbihmbiwgInJiIikgYXMgZjoKKyAgICAgICAgICAgIGNvbXByZXNzZWQgPSBmLnJlYWQoKQorICAgICAgICAgICAgZGF0YSA9IHpsaWIuZGVjb21wcmVzcyhjb21wcmVzc2VkKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkYXRhLmRlY29kZSgiYXNjaWkiKSwgbTEubXNnICsgbmV3bGluZSkKKyAgICAgICAgcmguZW1pdChzZWxmLm5leHRfcmVjKCkpCisgICAgICAgIGZuID0gbmFtZXIoc2VsZi5mbiArICIuMiIpCisgICAgICAgIHdpdGggb3BlbihmbiwgInJiIikgYXMgZjoKKyAgICAgICAgICAgIGNvbXByZXNzZWQgPSBmLnJlYWQoKQorICAgICAgICAgICAgZGF0YSA9IHpsaWIuZGVjb21wcmVzcyhjb21wcmVzc2VkKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkYXRhLmRlY29kZSgiYXNjaWkiKSwgbTIubXNnICsgbmV3bGluZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmV4aXN0cyhuYW1lcihzZWxmLmZuICsgIi4zIikpKQogICAgICAgICByaC5jbG9zZSgpCiAKIGNsYXNzIFRpbWVkUm90YXRpbmdGaWxlSGFuZGxlclRlc3QoQmFzZUZpbGVUZXN0KToKLSAgICAjIHRlc3QgbWV0aG9kcyBhZGRlZCBiZWxvdwotICAgIHBhc3MKKyAgICAjIG90aGVyIHRlc3QgbWV0aG9kcyBhZGRlZCBiZWxvdworICAgIGRlZiB0ZXN0X3JvbGxvdmVyKHNlbGYpOgorICAgICAgICBmaCA9IGxvZ2dpbmcuaGFuZGxlcnMuVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyKHNlbGYuZm4sICdTJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrdXBDb3VudD0xKQorICAgICAgICBmbXQgPSBsb2dnaW5nLkZvcm1hdHRlcignJShhc2N0aW1lKXMgJShtZXNzYWdlKXMnKQorICAgICAgICBmaC5zZXRGb3JtYXR0ZXIoZm10KQorICAgICAgICByMSA9IGxvZ2dpbmcubWFrZUxvZ1JlY29yZCh7J21zZyc6ICd0ZXN0aW5nIC0gaW5pdGlhbCd9KQorICAgICAgICBmaC5lbWl0KHIxKQorICAgICAgICBzZWxmLmFzc2VydExvZ0ZpbGUoc2VsZi5mbikKKyAgICAgICAgdGltZS5zbGVlcCgxLjEpICAgICMgYSBsaXR0bGUgb3ZlciBhIHNlY29uZCAuLi4KKyAgICAgICAgcjIgPSBsb2dnaW5nLm1ha2VMb2dSZWNvcmQoeydtc2cnOiAndGVzdGluZyAtIGFmdGVyIGRlbGF5J30pCisgICAgICAgIGZoLmVtaXQocjIpCisgICAgICAgIGZoLmNsb3NlKCkKKyAgICAgICAgIyBBdCB0aGlzIHBvaW50LCB3ZSBzaG91bGQgaGF2ZSBhIHJlY2VudCByb3RhdGVkIGZpbGUgd2hpY2ggd2UKKyAgICAgICAgIyBjYW4gdGVzdCBmb3IgdGhlIGV4aXN0ZW5jZSBvZi4gSG93ZXZlciwgaW4gcHJhY3RpY2UsIG9uIHNvbWUKKyAgICAgICAgIyBtYWNoaW5lcyB3aGljaCBydW4gcmVhbGx5IHNsb3dseSwgd2UgZG9uJ3Qga25vdyBob3cgZmFyIGJhY2sKKyAgICAgICAgIyBpbiB0aW1lIHRvIGdvIHRvIGxvb2sgZm9yIHRoZSBsb2cgZmlsZS4gU28sIHdlIGdvIGJhY2sgYSBmYWlyCisgICAgICAgICMgYml0LCBhbmQgc3RvcCBhcyBzb29uIGFzIHdlIHNlZSBhIHJvdGF0ZWQgZmlsZS4gSW4gdGhlb3J5IHRoaXMKKyAgICAgICAgIyBjb3VsZCBvZiBjb3Vyc2Ugc3RpbGwgZmFpbCwgYnV0IHRoZSBjaGFuY2VzIGFyZSBsb3dlci4KKyAgICAgICAgZm91bmQgPSBGYWxzZQorICAgICAgICBub3cgPSBkYXRldGltZS5kYXRldGltZS5ub3coKQorICAgICAgICBHT19CQUNLID0gNSAqIDYwICMgc2Vjb25kcworICAgICAgICBmb3Igc2VjcyBpbiByYW5nZShHT19CQUNLKToKKyAgICAgICAgICAgIHByZXYgPSBub3cgLSBkYXRldGltZS50aW1lZGVsdGEoc2Vjb25kcz1zZWNzKQorICAgICAgICAgICAgZm4gPSBzZWxmLmZuICsgcHJldi5zdHJmdGltZSgiLiVZLSVtLSVkXyVILSVNLSVTIikKKyAgICAgICAgICAgIGZvdW5kID0gb3MucGF0aC5leGlzdHMoZm4pCisgICAgICAgICAgICBpZiBmb3VuZDoKKyAgICAgICAgICAgICAgICBzZWxmLnJtZmlsZXMuYXBwZW5kKGZuKQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIG1zZyA9ICdObyByb3RhdGVkIGZpbGVzIGZvdW5kLCB3ZW50IGJhY2sgJWQgc2Vjb25kcycgJSBHT19CQUNLCisgICAgICAgIGlmIG5vdCBmb3VuZDoKKyAgICAgICAgICAgICNwcmludCBhZGRpdGlvbmFsIGRpYWdub3N0aWNzCisgICAgICAgICAgICBkbiwgZm4gPSBvcy5wYXRoLnNwbGl0KHNlbGYuZm4pCisgICAgICAgICAgICBmaWxlcyA9IFtmIGZvciBmIGluIG9zLmxpc3RkaXIoZG4pIGlmIGYuc3RhcnRzd2l0aChmbildCisgICAgICAgICAgICBwcmludCgnVGVzdCB0aW1lOiAlcycgJSBub3cuc3RyZnRpbWUoIiVZLSVtLSVkICVILSVNLSVTIiksIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgICAgIHByaW50KCdUaGUgb25seSBtYXRjaGluZyBmaWxlcyBhcmU6ICVzJyAlIGZpbGVzLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgICAgICBmb3IgZiBpbiBmaWxlczoKKyAgICAgICAgICAgICAgICBwcmludCgnQ29udGVudHMgb2YgJXM6JyAlIGYpCisgICAgICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihkbiwgZikKKyAgICAgICAgICAgICAgICB3aXRoIG9wZW4ocGF0aCwgJ3InKSBhcyB0ZjoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQodGYucmVhZCgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZm91bmQsIG1zZz1tc2cpCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkKHNlbGYpOgorICAgICAgICBhc3NlcnRSYWlzZXMgPSBzZWxmLmFzc2VydFJhaXNlcworICAgICAgICBhc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbG9nZ2luZy5oYW5kbGVycy5UaW1lZFJvdGF0aW5nRmlsZUhhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICBzZWxmLmZuLCAnWCcsIGRlbGF5PVRydWUpCisgICAgICAgIGFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBsb2dnaW5nLmhhbmRsZXJzLlRpbWVkUm90YXRpbmdGaWxlSGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgIHNlbGYuZm4sICdXJywgZGVsYXk9VHJ1ZSkKKyAgICAgICAgYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGxvZ2dpbmcuaGFuZGxlcnMuVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgc2VsZi5mbiwgJ1c3JywgZGVsYXk9VHJ1ZSkKIAogZGVmIHNlY3MoKiprdyk6CiAgICAgcmV0dXJuIGRhdGV0aW1lLnRpbWVkZWx0YSgqKmt3KSAvLyBkYXRldGltZS50aW1lZGVsdGEoc2Vjb25kcz0xKQpAQCAtMjMyOSw0MyArMzc5MiwzNCBAQAogICAgICAgICByaC5jbG9zZSgpCiAgICAgc2V0YXR0cihUaW1lZFJvdGF0aW5nRmlsZUhhbmRsZXJUZXN0LCAidGVzdF9jb21wdXRlX3JvbGxvdmVyXyVzIiAlIHdoZW4sIHRlc3RfY29tcHV0ZV9yb2xsb3ZlcikKIAotY2xhc3MgSGFuZGxlclRlc3QoQmFzZVRlc3QpOgogCi0gICAgQHVuaXR0ZXN0LnNraXBJZihvcy5uYW1lID09ICdudCcsICdXYXRjaGVkRmlsZUhhbmRsZXIgbm90IGFwcHJvcHJpYXRlIGZvciBXaW5kb3dzLicpCi0gICAgQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkaW5nLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKLSAgICBkZWYgdGVzdF9yYWNlKHNlbGYpOgotICAgICAgICAjIElzc3VlICMxNDYzMiByZWZlcnMuCi0gICAgICAgIGRlZiByZW1vdmVfbG9vcChmbmFtZSwgdHJpZXMpOgotICAgICAgICAgICAgZm9yIF8gaW4gcmFuZ2UodHJpZXMpOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgb3MudW5saW5rKGZuYW1lKQotICAgICAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAwNCAqIHJhbmRvbS5yYW5kaW50KDAsIDQpKQotCi0gICAgICAgIGRlbF9jb3VudCA9IDUwMAotICAgICAgICBsb2dfY291bnQgPSA1MDAKLQotICAgICAgICBmb3IgZGVsYXkgaW4gKEZhbHNlLCBUcnVlKToKLSAgICAgICAgICAgIGZkLCBmbiA9IHRlbXBmaWxlLm1rc3RlbXAoJy5sb2cnLCAndGVzdF9sb2dnaW5nLTMtJykKLSAgICAgICAgICAgIG9zLmNsb3NlKGZkKQotICAgICAgICAgICAgcmVtb3ZlciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXJlbW92ZV9sb29wLCBhcmdzPShmbiwgZGVsX2NvdW50KSkKLSAgICAgICAgICAgIHJlbW92ZXIuZGFlbW9uID0gVHJ1ZQotICAgICAgICAgICAgcmVtb3Zlci5zdGFydCgpCi0gICAgICAgICAgICBoID0gbG9nZ2luZy5oYW5kbGVycy5XYXRjaGVkRmlsZUhhbmRsZXIoZm4sIGRlbGF5PWRlbGF5KQotICAgICAgICAgICAgZiA9IGxvZ2dpbmcuRm9ybWF0dGVyKCclKGFzY3RpbWUpczogJShsZXZlbG5hbWUpczogJShtZXNzYWdlKXMnKQotICAgICAgICAgICAgaC5zZXRGb3JtYXR0ZXIoZikKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBmb3IgXyBpbiByYW5nZShsb2dfY291bnQpOgotICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMDA1KQotICAgICAgICAgICAgICAgICAgICByID0gbG9nZ2luZy5tYWtlTG9nUmVjb3JkKHsnbXNnJzogJ3Rlc3RpbmcnIH0pCi0gICAgICAgICAgICAgICAgICAgIGguaGFuZGxlKHIpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIHJlbW92ZXIuam9pbigpCi0gICAgICAgICAgICAgICAgaC5jbG9zZSgpCi0gICAgICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoZm4pOgotICAgICAgICAgICAgICAgICAgICBvcy51bmxpbmsoZm4pCi0KK0B1bml0dGVzdC5za2lwVW5sZXNzKHdpbjMyZXZ0bG9nLCAnd2luMzJldnRsb2cvd2luMzJldnRsb2d1dGlsIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK2NsYXNzIE5URXZlbnRMb2dIYW5kbGVyVGVzdChCYXNlVGVzdCk6CisgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6CisgICAgICAgIGxvZ3R5cGUgPSAnQXBwbGljYXRpb24nCisgICAgICAgIGVsaCA9IHdpbjMyZXZ0bG9nLk9wZW5FdmVudExvZyhOb25lLCBsb2d0eXBlKQorICAgICAgICBudW1fcmVjcyA9IHdpbjMyZXZ0bG9nLkdldE51bWJlck9mRXZlbnRMb2dSZWNvcmRzKGVsaCkKKyAgICAgICAgaCA9IGxvZ2dpbmcuaGFuZGxlcnMuTlRFdmVudExvZ0hhbmRsZXIoJ3Rlc3RfbG9nZ2luZycpCisgICAgICAgIHIgPSBsb2dnaW5nLm1ha2VMb2dSZWNvcmQoeydtc2cnOiAnVGVzdCBMb2cgTWVzc2FnZSd9KQorICAgICAgICBoLmhhbmRsZShyKQorICAgICAgICBoLmNsb3NlKCkKKyAgICAgICAgIyBOb3cgc2VlIGlmIHRoZSBldmVudCBpcyByZWNvcmRlZAorICAgICAgICBzZWxmLmFzc2VydFRydWUobnVtX3JlY3MgPCB3aW4zMmV2dGxvZy5HZXROdW1iZXJPZkV2ZW50TG9nUmVjb3JkcyhlbGgpKQorICAgICAgICBmbGFncyA9IHdpbjMyZXZ0bG9nLkVWRU5UTE9HX0JBQ0tXQVJEU19SRUFEIHwgXAorICAgICAgICAgICAgICAgIHdpbjMyZXZ0bG9nLkVWRU5UTE9HX1NFUVVFTlRJQUxfUkVBRAorICAgICAgICBmb3VuZCA9IEZhbHNlCisgICAgICAgIEdPX0JBQ0sgPSAxMDAKKyAgICAgICAgZXZlbnRzID0gd2luMzJldnRsb2cuUmVhZEV2ZW50TG9nKGVsaCwgZmxhZ3MsIEdPX0JBQ0spCisgICAgICAgIGZvciBlIGluIGV2ZW50czoKKyAgICAgICAgICAgIGlmIGUuU291cmNlTmFtZSAhPSAndGVzdF9sb2dnaW5nJzoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgbXNnID0gd2luMzJldnRsb2d1dGlsLlNhZmVGb3JtYXRNZXNzYWdlKGUsIGxvZ3R5cGUpCisgICAgICAgICAgICBpZiBtc2cgIT0gJ1Rlc3QgTG9nIE1lc3NhZ2VcclxuJzoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZm91bmQgPSBUcnVlCisgICAgICAgICAgICBicmVhaworICAgICAgICBtc2cgPSAnUmVjb3JkIG5vdCBmb3VuZCBpbiBldmVudCBsb2csIHdlbnQgYmFjayAlZCByZWNvcmRzJyAlIEdPX0JBQ0sKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZvdW5kLCBtc2c9bXNnKQogCiAjIFNldCB0aGUgbG9jYWxlIHRvIHRoZSBwbGF0Zm9ybS1kZXBlbmRlbnQgZGVmYXVsdC4gIEkgaGF2ZSBubyBpZGVhCiAjIHdoeSB0aGUgdGVzdCBkb2VzIHRoaXMsIGJ1dCBpbiBhbnkgY2FzZSB3ZSBzYXZlIHRoZSBjdXJyZW50IGxvY2FsZQpAQCAtMjM3MywxNCArMzgyNywxNyBAQAogQHJ1bl93aXRoX2xvY2FsZSgnTENfQUxMJywgJycpCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgcnVuX3VuaXR0ZXN0KEJ1aWx0aW5MZXZlbHNUZXN0LCBCYXNpY0ZpbHRlclRlc3QsCi0gICAgICAgICAgICAgICAgIEN1c3RvbUxldmVsc0FuZEZpbHRlcnNUZXN0LCBNZW1vcnlIYW5kbGVyVGVzdCwKLSAgICAgICAgICAgICAgICAgQ29uZmlnRmlsZVRlc3QsIFNvY2tldEhhbmRsZXJUZXN0LCBNZW1vcnlUZXN0LAotICAgICAgICAgICAgICAgICBFbmNvZGluZ1Rlc3QsIFdhcm5pbmdzVGVzdCwgQ29uZmlnRGljdFRlc3QsIE1hbmFnZXJUZXN0LAotICAgICAgICAgICAgICAgICBGb3JtYXR0ZXJUZXN0LAotICAgICAgICAgICAgICAgICBMb2dSZWNvcmRGYWN0b3J5VGVzdCwgQ2hpbGRMb2dnZXJUZXN0LCBRdWV1ZUhhbmRsZXJUZXN0LAotICAgICAgICAgICAgICAgICBSb3RhdGluZ0ZpbGVIYW5kbGVyVGVzdCwKLSAgICAgICAgICAgICAgICAgTGFzdFJlc29ydFRlc3QsCi0gICAgICAgICAgICAgICAgIFRpbWVkUm90YXRpbmdGaWxlSGFuZGxlclRlc3QsIEhhbmRsZXJUZXN0LAorICAgICAgICAgICAgICAgICBDdXN0b21MZXZlbHNBbmRGaWx0ZXJzVGVzdCwgSGFuZGxlclRlc3QsIE1lbW9yeUhhbmRsZXJUZXN0LAorICAgICAgICAgICAgICAgICBDb25maWdGaWxlVGVzdCwgU29ja2V0SGFuZGxlclRlc3QsIERhdGFncmFtSGFuZGxlclRlc3QsCisgICAgICAgICAgICAgICAgIE1lbW9yeVRlc3QsIEVuY29kaW5nVGVzdCwgV2FybmluZ3NUZXN0LCBDb25maWdEaWN0VGVzdCwKKyAgICAgICAgICAgICAgICAgTWFuYWdlclRlc3QsIEZvcm1hdHRlclRlc3QsIEJ1ZmZlcmluZ0Zvcm1hdHRlclRlc3QsCisgICAgICAgICAgICAgICAgIFN0cmVhbUhhbmRsZXJUZXN0LCBMb2dSZWNvcmRGYWN0b3J5VGVzdCwgQ2hpbGRMb2dnZXJUZXN0LAorICAgICAgICAgICAgICAgICBRdWV1ZUhhbmRsZXJUZXN0LCBTaHV0ZG93blRlc3QsIE1vZHVsZUxldmVsTWlzY1Rlc3QsCisgICAgICAgICAgICAgICAgIEJhc2ljQ29uZmlnVGVzdCwgTG9nZ2VyQWRhcHRlclRlc3QsIExvZ2dlclRlc3QsCisgICAgICAgICAgICAgICAgIFNNVFBIYW5kbGVyVGVzdCwgRmlsZUhhbmRsZXJUZXN0LCBSb3RhdGluZ0ZpbGVIYW5kbGVyVGVzdCwKKyAgICAgICAgICAgICAgICAgTGFzdFJlc29ydFRlc3QsIExvZ1JlY29yZFRlc3QsIEV4Y2VwdGlvblRlc3QsCisgICAgICAgICAgICAgICAgIFN5c0xvZ0hhbmRsZXJUZXN0LCBIVFRQSGFuZGxlclRlc3QsIE5URXZlbnRMb2dIYW5kbGVyVGVzdCwKKyAgICAgICAgICAgICAgICAgVGltZWRSb3RhdGluZ0ZpbGVIYW5kbGVyVGVzdAogICAgICAgICAgICAgICAgICkKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbG9uZy5weSBiL0xpYi90ZXN0L3Rlc3RfbG9uZy5weQppbmRleCAzZWJjMWY3Li5iNDE3YmVhIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X2xvbmcucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9sb25nLnB5CkBAIC00Myw2ICs0Myw1MyBAQAogREJMX01BTlRfRElHID0gc3lzLmZsb2F0X2luZm8ubWFudF9kaWcKIERCTF9NSU5fT1ZFUkZMT1cgPSAyKipEQkxfTUFYX0VYUCAtIDIqKihEQkxfTUFYX0VYUCAtIERCTF9NQU5UX0RJRyAtIDEpCiAKKworIyBQdXJlIFB5dGhvbiB2ZXJzaW9uIG9mIGNvcnJlY3RseS1yb3VuZGVkIGludGVnZXItdG8tZmxvYXQgY29udmVyc2lvbi4KK2RlZiBpbnRfdG9fZmxvYXQobik6CisgICAgIiIiCisgICAgQ29ycmVjdGx5LXJvdW5kZWQgaW50ZWdlci10by1mbG9hdCBjb252ZXJzaW9uLgorCisgICAgIiIiCisgICAgIyBDb25zdGFudHMsIGRlcGVuZGluZyBvbmx5IG9uIHRoZSBmbG9hdGluZy1wb2ludCBmb3JtYXQgaW4gdXNlLgorICAgICMgV2UgdXNlIGFuIGV4dHJhIDIgYml0cyBvZiBwcmVjaXNpb24gZm9yIHJvdW5kaW5nIHB1cnBvc2VzLgorICAgIFBSRUNJU0lPTiA9IHN5cy5mbG9hdF9pbmZvLm1hbnRfZGlnICsgMgorICAgIFNISUZUX01BWCA9IHN5cy5mbG9hdF9pbmZvLm1heF9leHAgLSBQUkVDSVNJT04KKyAgICBRX01BWCA9IDEgPDwgUFJFQ0lTSU9OCisgICAgUk9VTkRfSEFMRl9UT19FVkVOX0NPUlJFQ1RJT04gPSBbMCwgLTEsIC0yLCAxLCAwLCAtMSwgMiwgMV0KKworICAgICMgUmVkdWNlIHRvIHRoZSBjYXNlIHdoZXJlIG4gaXMgcG9zaXRpdmUuCisgICAgaWYgbiA9PSAwOgorICAgICAgICByZXR1cm4gMC4wCisgICAgZWxpZiBuIDwgMDoKKyAgICAgICAgcmV0dXJuIC1pbnRfdG9fZmxvYXQoLW4pCisKKyAgICAjIENvbnZlcnQgbiB0byBhICdmbG9hdGluZy1wb2ludCcgbnVtYmVyIHEgKiAyKipzaGlmdCwgd2hlcmUgcSBpcyBhbgorICAgICMgaW50ZWdlciB3aXRoICdQUkVDSVNJT04nIHNpZ25pZmljYW50IGJpdHMuICBXaGVuIHNoaWZ0aW5nIG4gdG8gY3JlYXRlIHEsCisgICAgIyB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IG9mIHEgaXMgdHJlYXRlZCBhcyAnc3RpY2t5Jy4gIFRoYXQgaXMsIHRoZQorICAgICMgbGVhc3Qgc2lnbmlmaWNhbnQgYml0IG9mIHEgaXMgc2V0IGlmIGVpdGhlciB0aGUgY29ycmVzcG9uZGluZyBiaXQgb2YgbgorICAgICMgd2FzIGFscmVhZHkgc2V0LCBvciBhbnkgb25lIG9mIHRoZSBiaXRzIG9mIG4gbG9zdCBpbiB0aGUgc2hpZnQgd2FzIHNldC4KKyAgICBzaGlmdCA9IG4uYml0X2xlbmd0aCgpIC0gUFJFQ0lTSU9OCisgICAgcSA9IG4gPDwgLXNoaWZ0IGlmIHNoaWZ0IDwgMCBlbHNlIChuID4+IHNoaWZ0KSB8IGJvb2wobiAmIH4oLTEgPDwgc2hpZnQpKQorCisgICAgIyBSb3VuZCBoYWxmIHRvIGV2ZW4gKGFjdHVhbGx5IHJvdW5kcyB0byB0aGUgbmVhcmVzdCBtdWx0aXBsZSBvZiA0LAorICAgICMgcm91bmRpbmcgdGllcyB0byBhIG11bHRpcGxlIG9mIDgpLgorICAgIHEgKz0gUk9VTkRfSEFMRl9UT19FVkVOX0NPUlJFQ1RJT05bcSAmIDddCisKKyAgICAjIERldGVjdCBvdmVyZmxvdy4KKyAgICBpZiBzaGlmdCArIChxID09IFFfTUFYKSA+IFNISUZUX01BWDoKKyAgICAgICAgcmFpc2UgT3ZlcmZsb3dFcnJvcigiaW50ZWdlciB0b28gbGFyZ2UgdG8gY29udmVydCB0byBmbG9hdCIpCisKKyAgICAjIENoZWNrczogcSBpcyBleGFjdGx5IHJlcHJlc2VudGFibGUsIGFuZCBxKioyKipzaGlmdCBkb2Vzbid0IG92ZXJmbG93LgorICAgIGFzc2VydCBxICUgNCA9PSAwIGFuZCBxIC8vIDQgPD0gMioqKHN5cy5mbG9hdF9pbmZvLm1hbnRfZGlnKQorICAgIGFzc2VydCBxICogMioqc2hpZnQgPD0gc3lzLmZsb2F0X2luZm8ubWF4CisKKyAgICAjIFNvbWUgY2lyY3VsYXJpdHkgaGVyZSwgc2luY2UgZmxvYXQocSkgaXMgZG9pbmcgYW4gaW50LXRvLWZsb2F0CisgICAgIyBjb252ZXJzaW9uLiAgQnV0IGhlcmUgcSBpcyBvZiBib3VuZGVkIHNpemUsIGFuZCBpcyBleGFjdGx5IHJlcHJlc2VudGFibGUKKyAgICAjIGFzIGEgZmxvYXQuICBJbiBhIGxvdy1sZXZlbCBDLWxpa2UgbGFuZ3VhZ2UsIHRoaXMgb3BlcmF0aW9uIHdvdWxkIGJlIGEKKyAgICAjIHNpbXBsZSBjYXN0IChlLmcuLCBmcm9tIHVuc2lnbmVkIGxvbmcgbG9uZyB0byBkb3VibGUpLgorICAgIHJldHVybiBtYXRoLmxkZXhwKGZsb2F0KHEpLCBzaGlmdCkKKworCiAjIHB1cmUgUHl0aG9uIHZlcnNpb24gb2YgY29ycmVjdGx5LXJvdW5kZWQgdHJ1ZSBkaXZpc2lvbgogZGVmIHRydWVkaXYoYSwgYik6CiAgICAgIiIiQ29ycmVjdGx5LXJvdW5kZWQgdHJ1ZSBkaXZpc2lvbiBmb3IgaW50ZWdlcnMuIiIiCkBAIC0zNjcsNiArNDE0LDIzIEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIDE3MjkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnQoTG9uZ1RydW5jKCkpLCAxNzI5KQogCisgICAgZGVmIGNoZWNrX2Zsb2F0X2NvbnZlcnNpb24oc2VsZiwgbik6CisgICAgICAgICMgQ2hlY2sgdGhhdCBpbnQgLT4gZmxvYXQgY29udmVyc2lvbiBiZWhhdmlvdXIgbWF0Y2hlcworICAgICAgICAjIHRoYXQgb2YgdGhlIHB1cmUgUHl0aG9uIHZlcnNpb24gYWJvdmUuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFjdHVhbCA9IGZsb2F0KG4pCisgICAgICAgIGV4Y2VwdCBPdmVyZmxvd0Vycm9yOgorICAgICAgICAgICAgYWN0dWFsID0gJ292ZXJmbG93JworCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGV4cGVjdGVkID0gaW50X3RvX2Zsb2F0KG4pCisgICAgICAgIGV4Y2VwdCBPdmVyZmxvd0Vycm9yOgorICAgICAgICAgICAgZXhwZWN0ZWQgPSAnb3ZlcmZsb3cnCisKKyAgICAgICAgbXNnID0gKCJFcnJvciBpbiBjb252ZXJzaW9uIG9mIGludGVnZXIge30gdG8gZmxvYXQuICAiCisgICAgICAgICAgICAgICAiR290IHt9LCBleHBlY3RlZCB7fS4iLmZvcm1hdChuLCBhY3R1YWwsIGV4cGVjdGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsIGV4cGVjdGVkLCBtc2cpCisKICAgICBAc3VwcG9ydC5yZXF1aXJlc19JRUVFXzc1NAogICAgIGRlZiB0ZXN0X2Zsb2F0X2NvbnZlcnNpb24oc2VsZik6CiAKQEAgLTQyMSw2ICs0ODUsMjIgQEAKICAgICAgICAgICAgIHkgPSAyKipwICogMioqNTMKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW50KGZsb2F0KHgpKSwgeSkKIAorICAgICAgICAjIENvbXBhcmUgYnVpbHRpbiBmbG9hdCBjb252ZXJzaW9uIHdpdGggcHVyZSBQeXRob24gaW50X3RvX2Zsb2F0CisgICAgICAgICMgZnVuY3Rpb24gYWJvdmUuCisgICAgICAgIHRlc3RfdmFsdWVzID0gWworICAgICAgICAgICAgaW50X2RibF9tYXgtMSwgaW50X2RibF9tYXgsIGludF9kYmxfbWF4KzEsCisgICAgICAgICAgICBoYWxmd2F5LTEsIGhhbGZ3YXksIGhhbGZ3YXkgKyAxLAorICAgICAgICAgICAgdG9wX3Bvd2VyLTEsIHRvcF9wb3dlciwgdG9wX3Bvd2VyKzEsCisgICAgICAgICAgICAyKnRvcF9wb3dlci0xLCAyKnRvcF9wb3dlciwgdG9wX3Bvd2VyKnRvcF9wb3dlciwKKyAgICAgICAgXQorICAgICAgICB0ZXN0X3ZhbHVlcy5leHRlbmQoZXhhY3RfdmFsdWVzKQorICAgICAgICBmb3IgcCBpbiByYW5nZSgtNCwgOCk6CisgICAgICAgICAgICBmb3IgeCBpbiByYW5nZSgtMTI4LCAxMjgpOgorICAgICAgICAgICAgICAgIHRlc3RfdmFsdWVzLmFwcGVuZCgyKioocCs1MykgKyB4KQorICAgICAgICBmb3IgdmFsdWUgaW4gdGVzdF92YWx1ZXM6CisgICAgICAgICAgICBzZWxmLmNoZWNrX2Zsb2F0X2NvbnZlcnNpb24odmFsdWUpCisgICAgICAgICAgICBzZWxmLmNoZWNrX2Zsb2F0X2NvbnZlcnNpb24oLXZhbHVlKQorCiAgICAgZGVmIHRlc3RfZmxvYXRfb3ZlcmZsb3coc2VsZik6CiAgICAgICAgIGZvciB4IGluIC0yLjAsIC0xLjAsIDAuMCwgMS4wLCAyLjA6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZsb2F0KGludCh4KSksIHgpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X2x6bWEucHkgYi9MaWIvdGVzdC90ZXN0X2x6bWEucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTEzY2YzYgotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfbHptYS5weQpAQCAtMCwwICsxLDE1MTcgQEAKK2Zyb20gaW8gaW1wb3J0IEJ5dGVzSU8sIFVuc3VwcG9ydGVkT3BlcmF0aW9uCitpbXBvcnQgb3MKK2ltcG9ydCByYW5kb20KK2ltcG9ydCB1bml0dGVzdAorCitmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgKAorICAgIF80RywgVEVTVEZOLCBpbXBvcnRfbW9kdWxlLCBiaWdtZW10ZXN0LCBydW5fdW5pdHRlc3QsIHVubGluaworKQorCitsem1hID0gaW1wb3J0X21vZHVsZSgibHptYSIpCitmcm9tIGx6bWEgaW1wb3J0IExaTUFDb21wcmVzc29yLCBMWk1BRGVjb21wcmVzc29yLCBMWk1BRXJyb3IsIExaTUFGaWxlCisKKworY2xhc3MgQ29tcHJlc3NvckRlY29tcHJlc3NvclRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgICMgVGVzdCBlcnJvciBjYXNlcy4KKworICAgIGRlZiB0ZXN0X3NpbXBsZV9iYWRfYXJncyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBMWk1BQ29tcHJlc3NvciwgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgTFpNQUNvbXByZXNzb3IsIGZvcm1hdD0zLjQ1KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIExaTUFDb21wcmVzc29yLCBjaGVjaz0iIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBMWk1BQ29tcHJlc3NvciwgcHJlc2V0PSJhc2RmIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBMWk1BQ29tcHJlc3NvciwgZmlsdGVycz0zKQorICAgICAgICAjIENhbid0IHNwZWNpZnkgRk9STUFUX0FVVE8gd2hlbiBjb21wcmVzc2luZy4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgTFpNQUNvbXByZXNzb3IsIGZvcm1hdD1sem1hLkZPUk1BVF9BVVRPKQorICAgICAgICAjIENhbid0IHNwZWNpZnkgYSBwcmVzZXQgYW5kIGEgY3VzdG9tIGZpbHRlciBjaGFpbiBhdCB0aGUgc2FtZSB0aW1lLgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUNvbXByZXNzb3IocHJlc2V0PTcsIGZpbHRlcnM9W3siaWQiOiBsem1hLkZJTFRFUl9MWk1BMn1dKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgTFpNQURlY29tcHJlc3NvciwgKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgTFpNQURlY29tcHJlc3NvciwgbWVtbGltaXQ9YiJxdyIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIExaTUFEZWNvbXByZXNzb3IobHptYS5GT1JNQVRfUkFXLCBmaWx0ZXJzPSJ6enoiKQorICAgICAgICAjIENhbm5vdCBzcGVjaWZ5IGEgbWVtb3J5IGxpbWl0IHdpdGggRklMVEVSX1JBVy4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIExaTUFEZWNvbXByZXNzb3IobHptYS5GT1JNQVRfUkFXLCBtZW1saW1pdD0weDEwMDAwMDApCisgICAgICAgICMgQ2FuIG9ubHkgc3BlY2lmeSBhIGN1c3RvbSBmaWx0ZXIgY2hhaW4gd2l0aCBGSUxURVJfUkFXLgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBMWk1BRGVjb21wcmVzc29yLCBmaWx0ZXJzPUZJTFRFUlNfUkFXXzEpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBMWk1BRGVjb21wcmVzc29yKGZvcm1hdD1sem1hLkZPUk1BVF9YWiwgZmlsdGVycz1GSUxURVJTX1JBV18xKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgTFpNQURlY29tcHJlc3Nvcihmb3JtYXQ9bHptYS5GT1JNQVRfQUxPTkUsIGZpbHRlcnM9RklMVEVSU19SQVdfMSkKKworICAgICAgICBsemMgPSBMWk1BQ29tcHJlc3NvcigpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbHpjLmNvbXByZXNzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGx6Yy5jb21wcmVzcywgYiJmb28iLCBiImJhciIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbHpjLmZsdXNoLCBiImJsYWgiKQorICAgICAgICBlbXB0eSA9IGx6Yy5mbHVzaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGx6Yy5jb21wcmVzcywgYiJxdXV4IikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbHpjLmZsdXNoKQorCisgICAgICAgIGx6ZCA9IExaTUFEZWNvbXByZXNzb3IoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGx6ZC5kZWNvbXByZXNzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGx6ZC5kZWNvbXByZXNzLCBiImZvbyIsIGIiYmFyIikKKyAgICAgICAgbHpkLmRlY29tcHJlc3MoZW1wdHkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEVPRkVycm9yLCBsemQuZGVjb21wcmVzcywgYiJxdXV4IikKKworICAgIGRlZiB0ZXN0X2JhZF9maWx0ZXJfc3BlYyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBMWk1BQ29tcHJlc3NvciwgZmlsdGVycz1bYiJ3b2JzaXRlIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIExaTUFDb21wcmVzc29yLCBmaWx0ZXJzPVt7Inh5enp5IjogM31dKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBMWk1BQ29tcHJlc3NvciwgZmlsdGVycz1beyJpZCI6IDk4NzY1fV0pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBMWk1BQ29tcHJlc3NvcihmaWx0ZXJzPVt7ImlkIjogbHptYS5GSUxURVJfTFpNQTIsICJmb28iOiAwfV0pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBMWk1BQ29tcHJlc3NvcihmaWx0ZXJzPVt7ImlkIjogbHptYS5GSUxURVJfREVMVEEsICJmb28iOiAwfV0pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBMWk1BQ29tcHJlc3NvcihmaWx0ZXJzPVt7ImlkIjogbHptYS5GSUxURVJfWDg2LCAiZm9vIjogMH1dKQorCisgICAgZGVmIHRlc3RfZGVjb21wcmVzc29yX2FmdGVyX2VvZihzZWxmKToKKyAgICAgICAgbHpkID0gTFpNQURlY29tcHJlc3NvcigpCisgICAgICAgIGx6ZC5kZWNvbXByZXNzKENPTVBSRVNTRURfWFopCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEVPRkVycm9yLCBsemQuZGVjb21wcmVzcywgYiJueWFuIikKKworICAgIGRlZiB0ZXN0X2RlY29tcHJlc3Nvcl9tZW1saW1pdChzZWxmKToKKyAgICAgICAgbHpkID0gTFpNQURlY29tcHJlc3NvcihtZW1saW1pdD0xMDI0KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhMWk1BRXJyb3IsIGx6ZC5kZWNvbXByZXNzLCBDT01QUkVTU0VEX1haKQorCisgICAgICAgIGx6ZCA9IExaTUFEZWNvbXByZXNzb3IobHptYS5GT1JNQVRfWFosIG1lbWxpbWl0PTEwMjQpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKExaTUFFcnJvciwgbHpkLmRlY29tcHJlc3MsIENPTVBSRVNTRURfWFopCisKKyAgICAgICAgbHpkID0gTFpNQURlY29tcHJlc3Nvcihsem1hLkZPUk1BVF9BTE9ORSwgbWVtbGltaXQ9MTAyNCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yLCBsemQuZGVjb21wcmVzcywgQ09NUFJFU1NFRF9BTE9ORSkKKworICAgICMgVGVzdCBMWk1BRGVjb21wcmVzc29yIG9uIGtub3duLWdvb2QgaW5wdXQgZGF0YS4KKworICAgIGRlZiBfdGVzdF9kZWNvbXByZXNzb3Ioc2VsZiwgbHpkLCBkYXRhLCBjaGVjaywgdW51c2VkX2RhdGE9YiIiKToKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShsemQuZW9mKQorICAgICAgICBvdXQgPSBsemQuZGVjb21wcmVzcyhkYXRhKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dCwgSU5QVVQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHpkLmNoZWNrLCBjaGVjaykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGx6ZC5lb2YpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHpkLnVudXNlZF9kYXRhLCB1bnVzZWRfZGF0YSkKKworICAgIGRlZiB0ZXN0X2RlY29tcHJlc3Nvcl9hdXRvKHNlbGYpOgorICAgICAgICBsemQgPSBMWk1BRGVjb21wcmVzc29yKCkKKyAgICAgICAgc2VsZi5fdGVzdF9kZWNvbXByZXNzb3IobHpkLCBDT01QUkVTU0VEX1haLCBsem1hLkNIRUNLX0NSQzY0KQorCisgICAgICAgIGx6ZCA9IExaTUFEZWNvbXByZXNzb3IoKQorICAgICAgICBzZWxmLl90ZXN0X2RlY29tcHJlc3NvcihsemQsIENPTVBSRVNTRURfQUxPTkUsIGx6bWEuQ0hFQ0tfTk9ORSkKKworICAgIGRlZiB0ZXN0X2RlY29tcHJlc3Nvcl94eihzZWxmKToKKyAgICAgICAgbHpkID0gTFpNQURlY29tcHJlc3Nvcihsem1hLkZPUk1BVF9YWikKKyAgICAgICAgc2VsZi5fdGVzdF9kZWNvbXByZXNzb3IobHpkLCBDT01QUkVTU0VEX1haLCBsem1hLkNIRUNLX0NSQzY0KQorCisgICAgZGVmIHRlc3RfZGVjb21wcmVzc29yX2Fsb25lKHNlbGYpOgorICAgICAgICBsemQgPSBMWk1BRGVjb21wcmVzc29yKGx6bWEuRk9STUFUX0FMT05FKQorICAgICAgICBzZWxmLl90ZXN0X2RlY29tcHJlc3NvcihsemQsIENPTVBSRVNTRURfQUxPTkUsIGx6bWEuQ0hFQ0tfTk9ORSkKKworICAgIGRlZiB0ZXN0X2RlY29tcHJlc3Nvcl9yYXdfMShzZWxmKToKKyAgICAgICAgbHpkID0gTFpNQURlY29tcHJlc3Nvcihsem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfMSkKKyAgICAgICAgc2VsZi5fdGVzdF9kZWNvbXByZXNzb3IobHpkLCBDT01QUkVTU0VEX1JBV18xLCBsem1hLkNIRUNLX05PTkUpCisKKyAgICBkZWYgdGVzdF9kZWNvbXByZXNzb3JfcmF3XzIoc2VsZik6CisgICAgICAgIGx6ZCA9IExaTUFEZWNvbXByZXNzb3IobHptYS5GT1JNQVRfUkFXLCBmaWx0ZXJzPUZJTFRFUlNfUkFXXzIpCisgICAgICAgIHNlbGYuX3Rlc3RfZGVjb21wcmVzc29yKGx6ZCwgQ09NUFJFU1NFRF9SQVdfMiwgbHptYS5DSEVDS19OT05FKQorCisgICAgZGVmIHRlc3RfZGVjb21wcmVzc29yX3Jhd18zKHNlbGYpOgorICAgICAgICBsemQgPSBMWk1BRGVjb21wcmVzc29yKGx6bWEuRk9STUFUX1JBVywgZmlsdGVycz1GSUxURVJTX1JBV18zKQorICAgICAgICBzZWxmLl90ZXN0X2RlY29tcHJlc3NvcihsemQsIENPTVBSRVNTRURfUkFXXzMsIGx6bWEuQ0hFQ0tfTk9ORSkKKworICAgIGRlZiB0ZXN0X2RlY29tcHJlc3Nvcl9yYXdfNChzZWxmKToKKyAgICAgICAgbHpkID0gTFpNQURlY29tcHJlc3Nvcihsem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfNCkKKyAgICAgICAgc2VsZi5fdGVzdF9kZWNvbXByZXNzb3IobHpkLCBDT01QUkVTU0VEX1JBV180LCBsem1hLkNIRUNLX05PTkUpCisKKyAgICBkZWYgdGVzdF9kZWNvbXByZXNzb3JfY2h1bmtzKHNlbGYpOgorICAgICAgICBsemQgPSBMWk1BRGVjb21wcmVzc29yKCkKKyAgICAgICAgb3V0ID0gW10KKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKENPTVBSRVNTRURfWFopLCAxMCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGx6ZC5lb2YpCisgICAgICAgICAgICBvdXQuYXBwZW5kKGx6ZC5kZWNvbXByZXNzKENPTVBSRVNTRURfWFpbaTppKzEwXSkpCisgICAgICAgIG91dCA9IGIiIi5qb2luKG91dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXQsIElOUFVUKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGx6ZC5jaGVjaywgbHptYS5DSEVDS19DUkM2NCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGx6ZC5lb2YpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHpkLnVudXNlZF9kYXRhLCBiIiIpCisKKyAgICBkZWYgdGVzdF9kZWNvbXByZXNzb3JfdW51c2VkX2RhdGEoc2VsZik6CisgICAgICAgIGx6ZCA9IExaTUFEZWNvbXByZXNzb3IoKQorICAgICAgICBleHRyYSA9IGIiZm9vYmxpYmFyIgorICAgICAgICBzZWxmLl90ZXN0X2RlY29tcHJlc3NvcihsemQsIENPTVBSRVNTRURfWFogKyBleHRyYSwgbHptYS5DSEVDS19DUkM2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkX2RhdGE9ZXh0cmEpCisKKyAgICBkZWYgdGVzdF9kZWNvbXByZXNzb3JfYmFkX2lucHV0KHNlbGYpOgorICAgICAgICBsemQgPSBMWk1BRGVjb21wcmVzc29yKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yLCBsemQuZGVjb21wcmVzcywgQ09NUFJFU1NFRF9SQVdfMSkKKworICAgICAgICBsemQgPSBMWk1BRGVjb21wcmVzc29yKGx6bWEuRk9STUFUX1haKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhMWk1BRXJyb3IsIGx6ZC5kZWNvbXByZXNzLCBDT01QUkVTU0VEX0FMT05FKQorCisgICAgICAgIGx6ZCA9IExaTUFEZWNvbXByZXNzb3IobHptYS5GT1JNQVRfQUxPTkUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKExaTUFFcnJvciwgbHpkLmRlY29tcHJlc3MsIENPTVBSRVNTRURfWFopCisKKyAgICAgICAgbHpkID0gTFpNQURlY29tcHJlc3Nvcihsem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yLCBsemQuZGVjb21wcmVzcywgQ09NUFJFU1NFRF9YWikKKworICAgICMgVGVzdCB0aGF0IExaTUFDb21wcmVzc29yLT5MWk1BRGVjb21wcmVzc29yIHByZXNlcnZlcyB0aGUgaW5wdXQgZGF0YS4KKworICAgIGRlZiB0ZXN0X3JvdW5kdHJpcF94eihzZWxmKToKKyAgICAgICAgbHpjID0gTFpNQUNvbXByZXNzb3IoKQorICAgICAgICBjZGF0YSA9IGx6Yy5jb21wcmVzcyhJTlBVVCkgKyBsemMuZmx1c2goKQorICAgICAgICBsemQgPSBMWk1BRGVjb21wcmVzc29yKCkKKyAgICAgICAgc2VsZi5fdGVzdF9kZWNvbXByZXNzb3IobHpkLCBjZGF0YSwgbHptYS5DSEVDS19DUkM2NCkKKworICAgIGRlZiB0ZXN0X3JvdW5kdHJpcF9hbG9uZShzZWxmKToKKyAgICAgICAgbHpjID0gTFpNQUNvbXByZXNzb3IobHptYS5GT1JNQVRfQUxPTkUpCisgICAgICAgIGNkYXRhID0gbHpjLmNvbXByZXNzKElOUFVUKSArIGx6Yy5mbHVzaCgpCisgICAgICAgIGx6ZCA9IExaTUFEZWNvbXByZXNzb3IoKQorICAgICAgICBzZWxmLl90ZXN0X2RlY29tcHJlc3NvcihsemQsIGNkYXRhLCBsem1hLkNIRUNLX05PTkUpCisKKyAgICBkZWYgdGVzdF9yb3VuZHRyaXBfcmF3KHNlbGYpOgorICAgICAgICBsemMgPSBMWk1BQ29tcHJlc3Nvcihsem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfNCkKKyAgICAgICAgY2RhdGEgPSBsemMuY29tcHJlc3MoSU5QVVQpICsgbHpjLmZsdXNoKCkKKyAgICAgICAgbHpkID0gTFpNQURlY29tcHJlc3Nvcihsem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfNCkKKyAgICAgICAgc2VsZi5fdGVzdF9kZWNvbXByZXNzb3IobHpkLCBjZGF0YSwgbHptYS5DSEVDS19OT05FKQorCisgICAgZGVmIHRlc3Rfcm91bmR0cmlwX2NodW5rcyhzZWxmKToKKyAgICAgICAgbHpjID0gTFpNQUNvbXByZXNzb3IoKQorICAgICAgICBjZGF0YSA9IFtdCisgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihJTlBVVCksIDEwKToKKyAgICAgICAgICAgIGNkYXRhLmFwcGVuZChsemMuY29tcHJlc3MoSU5QVVRbaTppKzEwXSkpCisgICAgICAgIGNkYXRhLmFwcGVuZChsemMuZmx1c2goKSkKKyAgICAgICAgY2RhdGEgPSBiIiIuam9pbihjZGF0YSkKKyAgICAgICAgbHpkID0gTFpNQURlY29tcHJlc3NvcigpCisgICAgICAgIHNlbGYuX3Rlc3RfZGVjb21wcmVzc29yKGx6ZCwgY2RhdGEsIGx6bWEuQ0hFQ0tfQ1JDNjQpCisKKyAgICAjIExaTUFEZWNvbXByZXNzb3IgaW50ZW50aW9uYWxseSBkb2VzIG5vdCBoYW5kbGUgY29uY2F0ZW5hdGVkIHN0cmVhbXMuCisKKyAgICBkZWYgdGVzdF9kZWNvbXByZXNzb3JfbXVsdGlzdHJlYW0oc2VsZik6CisgICAgICAgIGx6ZCA9IExaTUFEZWNvbXByZXNzb3IoKQorICAgICAgICBzZWxmLl90ZXN0X2RlY29tcHJlc3NvcihsemQsIENPTVBSRVNTRURfWFogKyBDT01QUkVTU0VEX0FMT05FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsem1hLkNIRUNLX0NSQzY0LCB1bnVzZWRfZGF0YT1DT01QUkVTU0VEX0FMT05FKQorCisgICAgIyBUZXN0IHdpdGggaW5wdXRzIGxhcmdlciB0aGFuIDRHaUIuCisKKyAgICBAYmlnbWVtdGVzdChzaXplPV80RyArIDEwMCwgbWVtdXNlPTIpCisgICAgZGVmIHRlc3RfY29tcHJlc3Nvcl9iaWdtZW0oc2VsZiwgc2l6ZSk6CisgICAgICAgIGx6YyA9IExaTUFDb21wcmVzc29yKCkKKyAgICAgICAgY2RhdGEgPSBsemMuY29tcHJlc3MoYiJ4IiAqIHNpemUpICsgbHpjLmZsdXNoKCkKKyAgICAgICAgZGRhdGEgPSBsem1hLmRlY29tcHJlc3MoY2RhdGEpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRkYXRhKSwgc2l6ZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRkYXRhLnN0cmlwKGIieCIpKSwgMCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGRkYXRhID0gTm9uZQorCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcgKyAxMDAsIG1lbXVzZT0zKQorICAgIGRlZiB0ZXN0X2RlY29tcHJlc3Nvcl9iaWdtZW0oc2VsZiwgc2l6ZSk6CisgICAgICAgIGx6ZCA9IExaTUFEZWNvbXByZXNzb3IoKQorICAgICAgICBibG9ja3NpemUgPSAxMCAqIDEwMjQgKiAxMDI0CisgICAgICAgIGJsb2NrID0gcmFuZG9tLmdldHJhbmRiaXRzKGJsb2Nrc2l6ZSAqIDgpLnRvX2J5dGVzKGJsb2Nrc2l6ZSwgImxpdHRsZSIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlucHV0ID0gYmxvY2sgKiAoc2l6ZSAvLyBibG9ja3NpemUgKyAxKQorICAgICAgICAgICAgY2RhdGEgPSBsem1hLmNvbXByZXNzKGlucHV0KQorICAgICAgICAgICAgZGRhdGEgPSBsemQuZGVjb21wcmVzcyhjZGF0YSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGRhdGEsIGlucHV0KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgaW5wdXQgPSBjZGF0YSA9IGRkYXRhID0gTm9uZQorCisKK2NsYXNzIENvbXByZXNzRGVjb21wcmVzc0Z1bmN0aW9uVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgIyBUZXN0IGVycm9yIGNhc2VzOgorCisgICAgZGVmIHRlc3RfYmFkX2FyZ3Moc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbHptYS5jb21wcmVzcykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsem1hLmNvbXByZXNzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsem1hLmNvbXByZXNzLCBiIiIsIGZvcm1hdD0ieHoiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGx6bWEuY29tcHJlc3MsIGIiIiwgY2hlY2s9Im5vbmUiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGx6bWEuY29tcHJlc3MsIGIiIiwgcHJlc2V0PSJibGFoIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsem1hLmNvbXByZXNzLCBiIiIsIGZpbHRlcnM9MTAyNCkKKyAgICAgICAgIyBDYW4ndCBzcGVjaWZ5IGEgcHJlc2V0IGFuZCBhIGN1c3RvbSBmaWx0ZXIgY2hhaW4gYXQgdGhlIHNhbWUgdGltZS4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGx6bWEuY29tcHJlc3MoYiIiLCBwcmVzZXQ9MywgZmlsdGVycz1beyJpZCI6IGx6bWEuRklMVEVSX0xaTUEyfV0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsem1hLmRlY29tcHJlc3MpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbHptYS5kZWNvbXByZXNzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsem1hLmRlY29tcHJlc3MsIGIiIiwgZm9ybWF0PSJsem1hIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsem1hLmRlY29tcHJlc3MsIGIiIiwgbWVtbGltaXQ9Ny4zZTkpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIGx6bWEuZGVjb21wcmVzcyhiIiIsIGZvcm1hdD1sem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9e30pCisgICAgICAgICMgQ2Fubm90IHNwZWNpZnkgYSBtZW1vcnkgbGltaXQgd2l0aCBGSUxURVJfUkFXLgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgbHptYS5kZWNvbXByZXNzKGIiIiwgZm9ybWF0PWx6bWEuRk9STUFUX1JBVywgbWVtbGltaXQ9MHgxMDAwMDAwKQorICAgICAgICAjIENhbiBvbmx5IHNwZWNpZnkgYSBjdXN0b20gZmlsdGVyIGNoYWluIHdpdGggRklMVEVSX1JBVy4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGx6bWEuZGVjb21wcmVzcyhiIiIsIGZpbHRlcnM9RklMVEVSU19SQVdfMSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGx6bWEuZGVjb21wcmVzcyhiIiIsIGZvcm1hdD1sem1hLkZPUk1BVF9YWiwgZmlsdGVycz1GSUxURVJTX1JBV18xKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgbHptYS5kZWNvbXByZXNzKAorICAgICAgICAgICAgICAgICAgICBiIiIsIGZvcm1hdD1sem1hLkZPUk1BVF9BTE9ORSwgZmlsdGVycz1GSUxURVJTX1JBV18xKQorCisgICAgZGVmIHRlc3RfZGVjb21wcmVzc19tZW1saW1pdChzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhMWk1BRXJyb3IpOgorICAgICAgICAgICAgbHptYS5kZWNvbXByZXNzKENPTVBSRVNTRURfWFosIG1lbWxpbWl0PTEwMjQpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yKToKKyAgICAgICAgICAgIGx6bWEuZGVjb21wcmVzcygKKyAgICAgICAgICAgICAgICAgICAgQ09NUFJFU1NFRF9YWiwgZm9ybWF0PWx6bWEuRk9STUFUX1haLCBtZW1saW1pdD0xMDI0KQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKExaTUFFcnJvcik6CisgICAgICAgICAgICBsem1hLmRlY29tcHJlc3MoCisgICAgICAgICAgICAgICAgICAgIENPTVBSRVNTRURfQUxPTkUsIGZvcm1hdD1sem1hLkZPUk1BVF9BTE9ORSwgbWVtbGltaXQ9MTAyNCkKKworICAgICMgVGVzdCBMWk1BRGVjb21wcmVzc29yIG9uIGtub3duLWdvb2QgaW5wdXQgZGF0YS4KKworICAgIGRlZiB0ZXN0X2RlY29tcHJlc3NfZ29vZF9pbnB1dChzZWxmKToKKyAgICAgICAgZGRhdGEgPSBsem1hLmRlY29tcHJlc3MoQ09NUFJFU1NFRF9YWikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZGF0YSwgSU5QVVQpCisKKyAgICAgICAgZGRhdGEgPSBsem1hLmRlY29tcHJlc3MoQ09NUFJFU1NFRF9BTE9ORSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZGF0YSwgSU5QVVQpCisKKyAgICAgICAgZGRhdGEgPSBsem1hLmRlY29tcHJlc3MoQ09NUFJFU1NFRF9YWiwgbHptYS5GT1JNQVRfWFopCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGRhdGEsIElOUFVUKQorCisgICAgICAgIGRkYXRhID0gbHptYS5kZWNvbXByZXNzKENPTVBSRVNTRURfQUxPTkUsIGx6bWEuRk9STUFUX0FMT05FKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRkYXRhLCBJTlBVVCkKKworICAgICAgICBkZGF0YSA9IGx6bWEuZGVjb21wcmVzcygKKyAgICAgICAgICAgICAgICBDT01QUkVTU0VEX1JBV18xLCBsem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZGF0YSwgSU5QVVQpCisKKyAgICAgICAgZGRhdGEgPSBsem1hLmRlY29tcHJlc3MoCisgICAgICAgICAgICAgICAgQ09NUFJFU1NFRF9SQVdfMiwgbHptYS5GT1JNQVRfUkFXLCBmaWx0ZXJzPUZJTFRFUlNfUkFXXzIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGRhdGEsIElOUFVUKQorCisgICAgICAgIGRkYXRhID0gbHptYS5kZWNvbXByZXNzKAorICAgICAgICAgICAgICAgIENPTVBSRVNTRURfUkFXXzMsIGx6bWEuRk9STUFUX1JBVywgZmlsdGVycz1GSUxURVJTX1JBV18zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRkYXRhLCBJTlBVVCkKKworICAgICAgICBkZGF0YSA9IGx6bWEuZGVjb21wcmVzcygKKyAgICAgICAgICAgICAgICBDT01QUkVTU0VEX1JBV180LCBsem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZGF0YSwgSU5QVVQpCisKKyAgICBkZWYgdGVzdF9kZWNvbXByZXNzX2luY29tcGxldGVfaW5wdXQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKExaTUFFcnJvciwgbHptYS5kZWNvbXByZXNzLCBDT01QUkVTU0VEX1haWzoxMjhdKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhMWk1BRXJyb3IsIGx6bWEuZGVjb21wcmVzcywgQ09NUFJFU1NFRF9BTE9ORVs6MTI4XSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yLCBsem1hLmRlY29tcHJlc3MsIENPTVBSRVNTRURfUkFXXzFbOjEyOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD1sem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yLCBsem1hLmRlY29tcHJlc3MsIENPTVBSRVNTRURfUkFXXzJbOjEyOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD1sem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yLCBsem1hLmRlY29tcHJlc3MsIENPTVBSRVNTRURfUkFXXzNbOjEyOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD1sem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfMykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yLCBsem1hLmRlY29tcHJlc3MsIENPTVBSRVNTRURfUkFXXzRbOjEyOF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD1sem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfNCkKKworICAgIGRlZiB0ZXN0X2RlY29tcHJlc3NfYmFkX2lucHV0KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKExaTUFFcnJvcik6CisgICAgICAgICAgICBsem1hLmRlY29tcHJlc3MoQ09NUFJFU1NFRF9SQVdfMSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhMWk1BRXJyb3IpOgorICAgICAgICAgICAgbHptYS5kZWNvbXByZXNzKENPTVBSRVNTRURfQUxPTkUsIGZvcm1hdD1sem1hLkZPUk1BVF9YWikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhMWk1BRXJyb3IpOgorICAgICAgICAgICAgbHptYS5kZWNvbXByZXNzKENPTVBSRVNTRURfWFosIGZvcm1hdD1sem1hLkZPUk1BVF9BTE9ORSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhMWk1BRXJyb3IpOgorICAgICAgICAgICAgbHptYS5kZWNvbXByZXNzKENPTVBSRVNTRURfWFosIGZvcm1hdD1sem1hLkZPUk1BVF9SQVcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVycz1GSUxURVJTX1JBV18xKQorCisgICAgIyBUZXN0IHRoYXQgY29tcHJlc3MoKS0+ZGVjb21wcmVzcygpIHByZXNlcnZlcyB0aGUgaW5wdXQgZGF0YS4KKworICAgIGRlZiB0ZXN0X3JvdW5kdHJpcChzZWxmKToKKyAgICAgICAgY2RhdGEgPSBsem1hLmNvbXByZXNzKElOUFVUKQorICAgICAgICBkZGF0YSA9IGx6bWEuZGVjb21wcmVzcyhjZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZGF0YSwgSU5QVVQpCisKKyAgICAgICAgY2RhdGEgPSBsem1hLmNvbXByZXNzKElOUFVULCBsem1hLkZPUk1BVF9YWikKKyAgICAgICAgZGRhdGEgPSBsem1hLmRlY29tcHJlc3MoY2RhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGRhdGEsIElOUFVUKQorCisgICAgICAgIGNkYXRhID0gbHptYS5jb21wcmVzcyhJTlBVVCwgbHptYS5GT1JNQVRfQUxPTkUpCisgICAgICAgIGRkYXRhID0gbHptYS5kZWNvbXByZXNzKGNkYXRhKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRkYXRhLCBJTlBVVCkKKworICAgICAgICBjZGF0YSA9IGx6bWEuY29tcHJlc3MoSU5QVVQsIGx6bWEuRk9STUFUX1JBVywgZmlsdGVycz1GSUxURVJTX1JBV180KQorICAgICAgICBkZGF0YSA9IGx6bWEuZGVjb21wcmVzcyhjZGF0YSwgbHptYS5GT1JNQVRfUkFXLCBmaWx0ZXJzPUZJTFRFUlNfUkFXXzQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGRhdGEsIElOUFVUKQorCisgICAgIyBVbmxpa2UgTFpNQURlY29tcHJlc3NvciwgZGVjb21wcmVzcygpICpkb2VzKiBoYW5kbGUgY29uY2F0ZW5hdGVkIHN0cmVhbXMuCisKKyAgICBkZWYgdGVzdF9kZWNvbXByZXNzX211bHRpc3RyZWFtKHNlbGYpOgorICAgICAgICBkZGF0YSA9IGx6bWEuZGVjb21wcmVzcyhDT01QUkVTU0VEX1haICsgQ09NUFJFU1NFRF9BTE9ORSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZGF0YSwgSU5QVVQgKiAyKQorCisKK2NsYXNzIFRlbXBGaWxlOgorICAgICIiIkNvbnRleHQgbWFuYWdlciAtIGNyZWF0ZXMgYSBmaWxlLCBhbmQgZGVsZXRlcyBpdCBvbiBfX2V4aXRfXy4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgZGF0YT1iIiIpOgorICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKKyAgICAgICAgc2VsZi5kYXRhID0gZGF0YQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKHNlbGYuZGF0YSkKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncyk6CisgICAgICAgIHVubGluayhzZWxmLmZpbGVuYW1lKQorCisKK2NsYXNzIEZpbGVUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9pbml0KHNlbGYpOgorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpIGFzIGY6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTygpLCAidyIpIGFzIGY6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTygpLCAiYSIpIGFzIGY6CisgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVzdF9pbml0X3dpdGhfZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHdpdGggVGVtcEZpbGUoVEVTVEZOLCBDT01QUkVTU0VEX1haKToKKyAgICAgICAgICAgIHdpdGggTFpNQUZpbGUoVEVTVEZOKSBhcyBmOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHdpdGggTFpNQUZpbGUoVEVTVEZOLCAidyIpIGFzIGY6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgd2l0aCBMWk1BRmlsZShURVNURk4sICJhIikgYXMgZjoKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVzdF9pbml0X21vZGUoc2VsZik6CisgICAgICAgIHdpdGggVGVtcEZpbGUoVEVTVEZOKToKKyAgICAgICAgICAgIHdpdGggTFpNQUZpbGUoVEVTVEZOLCAiciIpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHdpdGggTFpNQUZpbGUoVEVTVEZOLCAicmIiKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKFRFU1RGTiwgInciKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKFRFU1RGTiwgIndiIik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgd2l0aCBMWk1BRmlsZShURVNURk4sICJhIik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgd2l0aCBMWk1BRmlsZShURVNURk4sICJhYiIpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0X2luaXRfYmFkX21vZGUoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopLCAoMywgIngiKSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWiksICIiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSwgIngiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSwgInJ0IikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWiksICJyKyIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopLCAid3QiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSwgIncrIikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWiksICJydyIpCisKKyAgICBkZWYgdGVzdF9pbml0X2JhZF9jaGVjayhzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTygpLCAidyIsIGNoZWNrPWIiYXNkIikKKyAgICAgICAgIyBDSEVDS19VTktOT1dOIGFuZCBhbnl0aGluZyBhYm92ZSBDSEVDS19JRF9NQVggc2hvdWxkIGJlIGludmFsaWQuCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciLCBjaGVjaz1sem1hLkNIRUNLX1VOS05PV04pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoTFpNQUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciLCBjaGVjaz1sem1hLkNIRUNLX0lEX01BWCArIDMpCisgICAgICAgICMgQ2Fubm90IHNwZWNpZnkgYSBjaGVjayB3aXRoIG1vZGU9InIiLgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSwgY2hlY2s9bHptYS5DSEVDS19OT05FKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSwgY2hlY2s9bHptYS5DSEVDS19DUkMzMikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWiksIGNoZWNrPWx6bWEuQ0hFQ0tfQ1JDNjQpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopLCBjaGVjaz1sem1hLkNIRUNLX1NIQTI1NikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWiksIGNoZWNrPWx6bWEuQ0hFQ0tfVU5LTk9XTikKKworICAgIGRlZiB0ZXN0X2luaXRfYmFkX3ByZXNldChzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTygpLCAidyIsIHByZXNldD00LjM5KQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKExaTUFFcnJvcik6CisgICAgICAgICAgICBMWk1BRmlsZShCeXRlc0lPKCksICJ3IiwgcHJlc2V0PTEwKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKExaTUFFcnJvcik6CisgICAgICAgICAgICBMWk1BRmlsZShCeXRlc0lPKCksICJ3IiwgcHJlc2V0PTIzKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTygpLCAidyIsIHByZXNldD0tMSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciLCBwcmVzZXQ9LTcpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciLCBwcmVzZXQ9ImZvbyIpCisgICAgICAgICMgQ2Fubm90IHNwZWNpZnkgYSBwcmVzZXQgd2l0aCBtb2RlPSJyIi4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWiksIHByZXNldD0zKQorCisgICAgZGVmIHRlc3RfaW5pdF9iYWRfZmlsdGVyX3NwZWMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciLCBmaWx0ZXJzPVtiIndvYnNpdGUiXSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciLCBmaWx0ZXJzPVt7Inh5enp5IjogM31dKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTygpLCAidyIsIGZpbHRlcnM9W3siaWQiOiA5ODc2NX1dKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgTFpNQUZpbGUoQnl0ZXNJTygpLCAidyIsCisgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzPVt7ImlkIjogbHptYS5GSUxURVJfTFpNQTIsICJmb28iOiAwfV0pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBMWk1BRmlsZShCeXRlc0lPKCksICJ3IiwKKyAgICAgICAgICAgICAgICAgICAgIGZpbHRlcnM9W3siaWQiOiBsem1hLkZJTFRFUl9ERUxUQSwgImZvbyI6IDB9XSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciLAorICAgICAgICAgICAgICAgICAgICAgZmlsdGVycz1beyJpZCI6IGx6bWEuRklMVEVSX1g4NiwgImZvbyI6IDB9XSkKKworICAgIGRlZiB0ZXN0X2luaXRfd2l0aF9wcmVzZXRfYW5kX2ZpbHRlcnMoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBMWk1BRmlsZShCeXRlc0lPKCksICJ3IiwgZm9ybWF0PWx6bWEuRk9STUFUX1JBVywKKyAgICAgICAgICAgICAgICAgICAgIHByZXNldD02LCBmaWx0ZXJzPUZJTFRFUlNfUkFXXzEpCisKKyAgICBkZWYgdGVzdF9jbG9zZShzZWxmKToKKyAgICAgICAgd2l0aCBCeXRlc0lPKENPTVBSRVNTRURfWFopIGFzIHNyYzoKKyAgICAgICAgICAgIGYgPSBMWk1BRmlsZShzcmMpCisgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgICAgICMgTFpNQUZpbGUuY2xvc2UoKSBzaG91bGQgbm90IGNsb3NlIHRoZSB1bmRlcmx5aW5nIGZpbGUgb2JqZWN0LgorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzcmMuY2xvc2VkKQorICAgICAgICAgICAgIyBUcnkgY2xvc2luZyBhbiBhbHJlYWR5LWNsb3NlZCBMWk1BRmlsZS4KKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzcmMuY2xvc2VkKQorCisgICAgICAgICMgVGVzdCB3aXRoIGEgcmVhbCBmaWxlIG9uIGRpc2ssIG9wZW5lZCBkaXJlY3RseSBieSBMWk1BRmlsZS4KKyAgICAgICAgd2l0aCBUZW1wRmlsZShURVNURk4sIENPTVBSRVNTRURfWFopOgorICAgICAgICAgICAgZiA9IExaTUFGaWxlKFRFU1RGTikKKyAgICAgICAgICAgIGZwID0gZi5fZnAKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICAgICAgIyBIZXJlLCBMWk1BRmlsZS5jbG9zZSgpICpzaG91bGQqIGNsb3NlIHRoZSB1bmRlcmx5aW5nIGZpbGUgb2JqZWN0LgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZwLmNsb3NlZCkKKyAgICAgICAgICAgICMgVHJ5IGNsb3NpbmcgYW4gYWxyZWFkeS1jbG9zZWQgTFpNQUZpbGUuCisgICAgICAgICAgICBmLmNsb3NlKCkKKworICAgIGRlZiB0ZXN0X2Nsb3NlZChzZWxmKToKKyAgICAgICAgZiA9IExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZi5jbG9zZWQpCisgICAgICAgICAgICBmLnJlYWQoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmLmNsb3NlZCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZi5jbG9zZWQpCisKKyAgICAgICAgZiA9IExaTUFGaWxlKEJ5dGVzSU8oKSwgInciKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGYuY2xvc2VkKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmLmNsb3NlZCkKKworICAgIGRlZiB0ZXN0X2ZpbGVubyhzZWxmKToKKyAgICAgICAgZiA9IExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuc3VwcG9ydGVkT3BlcmF0aW9uLCBmLmZpbGVubykKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmLmZpbGVubykKKyAgICAgICAgd2l0aCBUZW1wRmlsZShURVNURk4sIENPTVBSRVNTRURfWFopOgorICAgICAgICAgICAgZiA9IExaTUFGaWxlKFRFU1RGTikKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZmlsZW5vKCksIGYuX2ZwLmZpbGVubygpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShmLmZpbGVubygpLCBpbnQpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmLmZpbGVubykKKworICAgIGRlZiB0ZXN0X3NlZWthYmxlKHNlbGYpOgorICAgICAgICBmID0gTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGYuc2Vla2FibGUoKSkKKyAgICAgICAgICAgIGYucmVhZCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZi5zZWVrYWJsZSgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYuc2Vla2FibGUpCisKKyAgICAgICAgZiA9IExaTUFGaWxlKEJ5dGVzSU8oKSwgInciKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGYuc2Vla2FibGUoKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmLnNlZWthYmxlKQorCisgICAgICAgIHNyYyA9IEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikKKyAgICAgICAgc3JjLnNlZWthYmxlID0gbGFtYmRhOiBGYWxzZQorICAgICAgICBmID0gTFpNQUZpbGUoc3JjKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGYuc2Vla2FibGUoKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmLnNlZWthYmxlKQorCisgICAgZGVmIHRlc3RfcmVhZGFibGUoc2VsZik6CisgICAgICAgIGYgPSBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZi5yZWFkYWJsZSgpKQorICAgICAgICAgICAgZi5yZWFkKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShmLnJlYWRhYmxlKCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBmLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZi5yZWFkYWJsZSkKKworICAgICAgICBmID0gTFpNQUZpbGUoQnl0ZXNJTygpLCAidyIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZi5yZWFkYWJsZSgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYucmVhZGFibGUpCisKKyAgICBkZWYgdGVzdF93cml0YWJsZShzZWxmKToKKyAgICAgICAgZiA9IExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZi53cml0YWJsZSgpKQorICAgICAgICAgICAgZi5yZWFkKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZi53cml0YWJsZSgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYud3JpdGFibGUpCisKKyAgICAgICAgZiA9IExaTUFGaWxlKEJ5dGVzSU8oKSwgInciKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZi53cml0YWJsZSgpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYud3JpdGFibGUpCisKKyAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBJTlBVVCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIGIiIikKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfQUxPTkUpKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVQpCisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSwgZm9ybWF0PWx6bWEuRk9STUFUX1haKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBiIiIpCisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX0FMT05FKSwgZm9ybWF0PWx6bWEuRk9STUFUX0FMT05FKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBiIiIpCisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1JBV18xKSwKKyAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9bHptYS5GT1JNQVRfUkFXLCBmaWx0ZXJzPUZJTFRFUlNfUkFXXzEpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBJTlBVVCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIGIiIikKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfUkFXXzIpLAorICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD1sem1hLkZPUk1BVF9SQVcsIGZpbHRlcnM9RklMVEVSU19SQVdfMikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIElOUFVUKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgYiIiKQorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9SQVdfMyksCisgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0PWx6bWEuRk9STUFUX1JBVywgZmlsdGVycz1GSUxURVJTX1JBV18zKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBiIiIpCisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1JBV180KSwKKyAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9bHptYS5GT1JNQVRfUkFXLCBmaWx0ZXJzPUZJTFRFUlNfUkFXXzQpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBJTlBVVCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIGIiIikKKworICAgIGRlZiB0ZXN0X3JlYWRfMChzZWxmKToKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoMCksIGIiIikKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfQUxPTkUpKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoMCksIGIiIikKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopLCBmb3JtYXQ9bHptYS5GT1JNQVRfWFopIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgwKSwgYiIiKQorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9BTE9ORSksIGZvcm1hdD1sem1hLkZPUk1BVF9BTE9ORSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKDApLCBiIiIpCisKKyAgICBkZWYgdGVzdF9yZWFkXzEwKHNlbGYpOgorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpIGFzIGY6CisgICAgICAgICAgICBjaHVua3MgPSBbXQorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmLnJlYWQoMTApCisgICAgICAgICAgICAgICAgaWYgbm90IHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChsZW4ocmVzdWx0KSwgMTApCisgICAgICAgICAgICAgICAgY2h1bmtzLmFwcGVuZChyZXN1bHQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiIi5qb2luKGNodW5rcyksIElOUFVUKQorCisgICAgZGVmIHRlc3RfcmVhZF9tdWx0aXN0cmVhbShzZWxmKToKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFogKiA1KSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIElOUFVUICogNSkKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFogKyBDT01QUkVTU0VEX0FMT05FKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIElOUFVUICogMikKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfUkFXXzMgKiA0KSwKKyAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9bHptYS5GT1JNQVRfUkFXLCBmaWx0ZXJzPUZJTFRFUlNfUkFXXzMpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBJTlBVVCAqIDQpCisKKyAgICBkZWYgdGVzdF9yZWFkX211bHRpc3RyZWFtX2J1ZmZlcl9zaXplX2FsaWduZWQoc2VsZik6CisgICAgICAgICMgVGVzdCB0aGUgY2FzZSB3aGVyZSBhIHN0cmVhbSBib3VuZGFyeSBjb2luY2lkZXMgd2l0aCB0aGUgZW5kCisgICAgICAgICMgb2YgdGhlIHJhdyByZWFkIGJ1ZmZlci4KKyAgICAgICAgc2F2ZWRfYnVmZmVyX3NpemUgPSBsem1hLl9CVUZGRVJfU0laRQorICAgICAgICBsem1hLl9CVUZGRVJfU0laRSA9IGxlbihDT01QUkVTU0VEX1haKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWiAqICA1KSkgYXMgZjoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBJTlBVVCAqIDUpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBsem1hLl9CVUZGRVJfU0laRSA9IHNhdmVkX2J1ZmZlcl9zaXplCisKKyAgICBkZWYgdGVzdF9yZWFkX2Zyb21fZmlsZShzZWxmKToKKyAgICAgICAgd2l0aCBUZW1wRmlsZShURVNURk4sIENPTVBSRVNTRURfWFopOgorICAgICAgICAgICAgd2l0aCBMWk1BRmlsZShURVNURk4pIGFzIGY6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVQpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgYiIiKQorCisgICAgZGVmIHRlc3RfcmVhZF9mcm9tX2ZpbGVfd2l0aF9ieXRlc19maWxlbmFtZShzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYnl0ZXNfZmlsZW5hbWUgPSBURVNURk4uZW5jb2RlKCJhc2NpaSIpCisgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJUZW1wb3JhcnkgZmlsZSBuYW1lIG5lZWRzIHRvIGJlIEFTQ0lJIikKKyAgICAgICAgd2l0aCBUZW1wRmlsZShURVNURk4sIENPTVBSRVNTRURfWFopOgorICAgICAgICAgICAgd2l0aCBMWk1BRmlsZShieXRlc19maWxlbmFtZSkgYXMgZjoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBJTlBVVCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBiIiIpCisKKyAgICBkZWYgdGVzdF9yZWFkX2luY29tcGxldGUoc2VsZik6CisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haWzoxMjhdKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEVPRkVycm9yLCBmLnJlYWQpCisKKyAgICBkZWYgdGVzdF9yZWFkX2JhZF9hcmdzKHNlbGYpOgorICAgICAgICBmID0gTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkKKyAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYucmVhZCkKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKCksICJ3IikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYucmVhZCkKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmLnJlYWQsIE5vbmUpCisKKyAgICBkZWYgdGVzdF9yZWFkMShzZWxmKToKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgYmxvY2tzID0gW10KKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZi5yZWFkMSgpCisgICAgICAgICAgICAgICAgaWYgbm90IHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBibG9ja3MuYXBwZW5kKHJlc3VsdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiIiLmpvaW4oYmxvY2tzKSwgSU5QVVQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZDEoKSwgYiIiKQorCisgICAgZGVmIHRlc3RfcmVhZDFfMChzZWxmKToKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQxKDApLCBiIiIpCisKKyAgICBkZWYgdGVzdF9yZWFkMV8xMChzZWxmKToKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgYmxvY2tzID0gW10KKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gZi5yZWFkMSgxMCkKKyAgICAgICAgICAgICAgICBpZiBub3QgcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQocmVzdWx0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIiIuam9pbihibG9ja3MpLCBJTlBVVCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkMSgpLCBiIiIpCisKKyAgICBkZWYgdGVzdF9yZWFkMV9tdWx0aXN0cmVhbShzZWxmKToKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFogKiA1KSkgYXMgZjoKKyAgICAgICAgICAgIGJsb2NrcyA9IFtdCisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGYucmVhZDEoKQorICAgICAgICAgICAgICAgIGlmIG5vdCByZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChyZXN1bHQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiIi5qb2luKGJsb2NrcyksIElOUFVUICogNSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkMSgpLCBiIiIpCisKKyAgICBkZWYgdGVzdF9yZWFkMV9iYWRfYXJncyhzZWxmKToKKyAgICAgICAgZiA9IExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpCisgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmLnJlYWQxKQorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZi5yZWFkMSkKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmLnJlYWQxLCBOb25lKQorCisgICAgZGVmIHRlc3RfcGVlayhzZWxmKToKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgcmVzdWx0ID0gZi5wZWVrKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihsZW4ocmVzdWx0KSwgMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShJTlBVVC5zdGFydHN3aXRoKHJlc3VsdCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBJTlBVVCkKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgcmVzdWx0ID0gZi5wZWVrKDEwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGxlbihyZXN1bHQpLCAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKElOUFVULnN0YXJ0c3dpdGgocmVzdWx0KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIElOUFVUKQorCisgICAgZGVmIHRlc3RfcGVla19iYWRfYXJncyhzZWxmKToKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKCksICJ3IikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYucGVlaykKKworICAgIGRlZiB0ZXN0X2l0ZXJhdG9yKHNlbGYpOgorICAgICAgICB3aXRoIEJ5dGVzSU8oSU5QVVQpIGFzIGY6CisgICAgICAgICAgICBsaW5lcyA9IGYucmVhZGxpbmVzKCkKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRMaXN0RXF1YWwobGlzdChpdGVyKGYpKSwgbGluZXMpCisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX0FMT05FKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGlzdEVxdWFsKGxpc3QoaXRlcihmKSksIGxpbmVzKQorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWiksIGZvcm1hdD1sem1hLkZPUk1BVF9YWikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGlzdEVxdWFsKGxpc3QoaXRlcihmKSksIGxpbmVzKQorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9BTE9ORSksIGZvcm1hdD1sem1hLkZPUk1BVF9BTE9ORSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGlzdEVxdWFsKGxpc3QoaXRlcihmKSksIGxpbmVzKQorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9SQVdfMiksCisgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0PWx6bWEuRk9STUFUX1JBVywgZmlsdGVycz1GSUxURVJTX1JBV18yKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRMaXN0RXF1YWwobGlzdChpdGVyKGYpKSwgbGluZXMpCisKKyAgICBkZWYgdGVzdF9yZWFkbGluZShzZWxmKToKKyAgICAgICAgd2l0aCBCeXRlc0lPKElOUFVUKSBhcyBmOgorICAgICAgICAgICAgbGluZXMgPSBmLnJlYWRsaW5lcygpCisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkgYXMgZjoKKyAgICAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkbGluZSgpLCBsaW5lKQorCisgICAgZGVmIHRlc3RfcmVhZGxpbmVzKHNlbGYpOgorICAgICAgICB3aXRoIEJ5dGVzSU8oSU5QVVQpIGFzIGY6CisgICAgICAgICAgICBsaW5lcyA9IGYucmVhZGxpbmVzKCkKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRMaXN0RXF1YWwoZi5yZWFkbGluZXMoKSwgbGluZXMpCisKKyAgICBkZWYgdGVzdF93cml0ZShzZWxmKToKKyAgICAgICAgd2l0aCBCeXRlc0lPKCkgYXMgZHN0OgorICAgICAgICAgICAgd2l0aCBMWk1BRmlsZShkc3QsICJ3IikgYXMgZjoKKyAgICAgICAgICAgICAgICBmLndyaXRlKElOUFVUKQorICAgICAgICAgICAgZXhwZWN0ZWQgPSBsem1hLmNvbXByZXNzKElOUFVUKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkc3QuZ2V0dmFsdWUoKSwgZXhwZWN0ZWQpCisgICAgICAgIHdpdGggQnl0ZXNJTygpIGFzIGRzdDoKKyAgICAgICAgICAgIHdpdGggTFpNQUZpbGUoZHN0LCAidyIsIGZvcm1hdD1sem1hLkZPUk1BVF9YWikgYXMgZjoKKyAgICAgICAgICAgICAgICBmLndyaXRlKElOUFVUKQorICAgICAgICAgICAgZXhwZWN0ZWQgPSBsem1hLmNvbXByZXNzKElOUFVULCBmb3JtYXQ9bHptYS5GT1JNQVRfWFopCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRzdC5nZXR2YWx1ZSgpLCBleHBlY3RlZCkKKyAgICAgICAgd2l0aCBCeXRlc0lPKCkgYXMgZHN0OgorICAgICAgICAgICAgd2l0aCBMWk1BRmlsZShkc3QsICJ3IiwgZm9ybWF0PWx6bWEuRk9STUFUX0FMT05FKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUoSU5QVVQpCisgICAgICAgICAgICBleHBlY3RlZCA9IGx6bWEuY29tcHJlc3MoSU5QVVQsIGZvcm1hdD1sem1hLkZPUk1BVF9BTE9ORSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHN0LmdldHZhbHVlKCksIGV4cGVjdGVkKQorICAgICAgICB3aXRoIEJ5dGVzSU8oKSBhcyBkc3Q6CisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKGRzdCwgInciLCBmb3JtYXQ9bHptYS5GT1JNQVRfUkFXLAorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzPUZJTFRFUlNfUkFXXzIpIGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZShJTlBVVCkKKyAgICAgICAgICAgIGV4cGVjdGVkID0gbHptYS5jb21wcmVzcyhJTlBVVCwgZm9ybWF0PWx6bWEuRk9STUFUX1JBVywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJzPUZJTFRFUlNfUkFXXzIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRzdC5nZXR2YWx1ZSgpLCBleHBlY3RlZCkKKworICAgIGRlZiB0ZXN0X3dyaXRlXzEwKHNlbGYpOgorICAgICAgICB3aXRoIEJ5dGVzSU8oKSBhcyBkc3Q6CisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKGRzdCwgInciKSBhcyBmOgorICAgICAgICAgICAgICAgIGZvciBzdGFydCBpbiByYW5nZSgwLCBsZW4oSU5QVVQpLCAxMCk6CisgICAgICAgICAgICAgICAgICAgIGYud3JpdGUoSU5QVVRbc3RhcnQ6c3RhcnQrMTBdKQorICAgICAgICAgICAgZXhwZWN0ZWQgPSBsem1hLmNvbXByZXNzKElOUFVUKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkc3QuZ2V0dmFsdWUoKSwgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF93cml0ZV9hcHBlbmQoc2VsZik6CisgICAgICAgIHBhcnQxID0gSU5QVVRbOjEwMjRdCisgICAgICAgIHBhcnQyID0gSU5QVVRbMTAyNDoxNTM2XQorICAgICAgICBwYXJ0MyA9IElOUFVUWzE1MzY6XQorICAgICAgICBleHBlY3RlZCA9IGIiIi5qb2luKGx6bWEuY29tcHJlc3MoeCkgZm9yIHggaW4gKHBhcnQxLCBwYXJ0MiwgcGFydDMpKQorICAgICAgICB3aXRoIEJ5dGVzSU8oKSBhcyBkc3Q6CisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKGRzdCwgInciKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUocGFydDEpCisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKGRzdCwgImEiKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUocGFydDIpCisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKGRzdCwgImEiKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUocGFydDMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRzdC5nZXR2YWx1ZSgpLCBleHBlY3RlZCkKKworICAgIGRlZiB0ZXN0X3dyaXRlX3RvX2ZpbGUoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggTFpNQUZpbGUoVEVTVEZOLCAidyIpIGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZShJTlBVVCkKKyAgICAgICAgICAgIGV4cGVjdGVkID0gbHptYS5jb21wcmVzcyhJTlBVVCkKKyAgICAgICAgICAgIHdpdGggb3BlbihURVNURk4sICJyYiIpIGFzIGY6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgZXhwZWN0ZWQpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICB1bmxpbmsoVEVTVEZOKQorCisgICAgZGVmIHRlc3Rfd3JpdGVfdG9fZmlsZV93aXRoX2J5dGVzX2ZpbGVuYW1lKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBieXRlc19maWxlbmFtZSA9IFRFU1RGTi5lbmNvZGUoImFzY2lpIikKKyAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIlRlbXBvcmFyeSBmaWxlIG5hbWUgbmVlZHMgdG8gYmUgQVNDSUkiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKGJ5dGVzX2ZpbGVuYW1lLCAidyIpIGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZShJTlBVVCkKKyAgICAgICAgICAgIGV4cGVjdGVkID0gbHptYS5jb21wcmVzcyhJTlBVVCkKKyAgICAgICAgICAgIHdpdGggb3BlbihURVNURk4sICJyYiIpIGFzIGY6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgZXhwZWN0ZWQpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICB1bmxpbmsoVEVTVEZOKQorCisgICAgZGVmIHRlc3Rfd3JpdGVfYXBwZW5kX3RvX2ZpbGUoc2VsZik6CisgICAgICAgIHBhcnQxID0gSU5QVVRbOjEwMjRdCisgICAgICAgIHBhcnQyID0gSU5QVVRbMTAyNDoxNTM2XQorICAgICAgICBwYXJ0MyA9IElOUFVUWzE1MzY6XQorICAgICAgICBleHBlY3RlZCA9IGIiIi5qb2luKGx6bWEuY29tcHJlc3MoeCkgZm9yIHggaW4gKHBhcnQxLCBwYXJ0MiwgcGFydDMpKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKFRFU1RGTiwgInciKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUocGFydDEpCisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKFRFU1RGTiwgImEiKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUocGFydDIpCisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKFRFU1RGTiwgImEiKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUocGFydDMpCisgICAgICAgICAgICB3aXRoIG9wZW4oVEVTVEZOLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIGV4cGVjdGVkKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgdW5saW5rKFRFU1RGTikKKworICAgIGRlZiB0ZXN0X3dyaXRlX2JhZF9hcmdzKHNlbGYpOgorICAgICAgICBmID0gTFpNQUZpbGUoQnl0ZXNJTygpLCAidyIpCisgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmLndyaXRlLCBiImZvbyIpCisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSwgInIiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZi53cml0ZSwgYiJiYXIiKQorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmLndyaXRlLCBOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmLndyaXRlLCAidGV4dCIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGYud3JpdGUsIDc4OSkKKworICAgIGRlZiB0ZXN0X3dyaXRlbGluZXMoc2VsZik6CisgICAgICAgIHdpdGggQnl0ZXNJTyhJTlBVVCkgYXMgZjoKKyAgICAgICAgICAgIGxpbmVzID0gZi5yZWFkbGluZXMoKQorICAgICAgICB3aXRoIEJ5dGVzSU8oKSBhcyBkc3Q6CisgICAgICAgICAgICB3aXRoIExaTUFGaWxlKGRzdCwgInciKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGVsaW5lcyhsaW5lcykKKyAgICAgICAgICAgIGV4cGVjdGVkID0gbHptYS5jb21wcmVzcyhJTlBVVCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHN0LmdldHZhbHVlKCksIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3Rfc2Vla19mb3J3YXJkKHNlbGYpOgorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpIGFzIGY6CisgICAgICAgICAgICBmLnNlZWsoNTU1KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVRbNTU1Ol0pCisKKyAgICBkZWYgdGVzdF9zZWVrX2ZvcndhcmRfYWNyb3NzX3N0cmVhbXMoc2VsZik6CisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haICogMikpIGFzIGY6CisgICAgICAgICAgICBmLnNlZWsobGVuKElOUFVUKSArIDEyMykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIElOUFVUWzEyMzpdKQorCisgICAgZGVmIHRlc3Rfc2Vla19mb3J3YXJkX3JlbGF0aXZlX3RvX2N1cnJlbnQoc2VsZik6CisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkgYXMgZjoKKyAgICAgICAgICAgIGYucmVhZCgxMDApCisgICAgICAgICAgICBmLnNlZWsoMTIzNiwgMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIElOUFVUWzEzMzY6XSkKKworICAgIGRlZiB0ZXN0X3NlZWtfZm9yd2FyZF9yZWxhdGl2ZV90b19lbmQoc2VsZik6CisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkgYXMgZjoKKyAgICAgICAgICAgIGYuc2VlaygtNTU1LCAyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVRbLTU1NTpdKQorCisgICAgZGVmIHRlc3Rfc2Vla19iYWNrd2FyZChzZWxmKToKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgZi5yZWFkKDEwMDEpCisgICAgICAgICAgICBmLnNlZWsoMjExKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVRbMjExOl0pCisKKyAgICBkZWYgdGVzdF9zZWVrX2JhY2t3YXJkX2Fjcm9zc19zdHJlYW1zKHNlbGYpOgorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWiAqIDIpKSBhcyBmOgorICAgICAgICAgICAgZi5yZWFkKGxlbihJTlBVVCkgKyAzMzMpCisgICAgICAgICAgICBmLnNlZWsoNzM3KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVRbNzM3Ol0gKyBJTlBVVCkKKworICAgIGRlZiB0ZXN0X3NlZWtfYmFja3dhcmRfcmVsYXRpdmVfdG9fZW5kKHNlbGYpOgorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpIGFzIGY6CisgICAgICAgICAgICBmLnNlZWsoLTE1MCwgMikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIElOUFVUWy0xNTA6XSkKKworICAgIGRlZiB0ZXN0X3NlZWtfcGFzdF9lbmQoc2VsZik6CisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkgYXMgZjoKKyAgICAgICAgICAgIGYuc2VlayhsZW4oSU5QVVQpICsgOTAwMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi50ZWxsKCksIGxlbihJTlBVVCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBiIiIpCisKKyAgICBkZWYgdGVzdF9zZWVrX3Bhc3Rfc3RhcnQoc2VsZik6CisgICAgICAgIHdpdGggTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkgYXMgZjoKKyAgICAgICAgICAgIGYuc2VlaygtODgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYudGVsbCgpLCAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVQpCisKKyAgICBkZWYgdGVzdF9zZWVrX2JhZF9hcmdzKHNlbGYpOgorICAgICAgICBmID0gTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkKKyAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYuc2VlaywgMCkKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKCksICJ3IikgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYuc2VlaywgMCkKKyAgICAgICAgd2l0aCBMWk1BRmlsZShCeXRlc0lPKENPTVBSRVNTRURfWFopKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZi5zZWVrLCAwLCAzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZi5zZWVrLCA5LCAoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgZi5zZWVrLCBOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmLnNlZWssIGIiZGVycCIpCisKKyAgICBkZWYgdGVzdF90ZWxsKHNlbGYpOgorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oQ09NUFJFU1NFRF9YWikpIGFzIGY6CisgICAgICAgICAgICBwb3MgPSAwCisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi50ZWxsKCksIHBvcykKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBmLnJlYWQoMTgzKQorICAgICAgICAgICAgICAgIGlmIG5vdCByZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgcG9zICs9IGxlbihyZXN1bHQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYudGVsbCgpLCBsZW4oSU5QVVQpKQorICAgICAgICB3aXRoIExaTUFGaWxlKEJ5dGVzSU8oKSwgInciKSBhcyBmOgorICAgICAgICAgICAgZm9yIHBvcyBpbiByYW5nZSgwLCBsZW4oSU5QVVQpLCAxNDQpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi50ZWxsKCksIHBvcykKKyAgICAgICAgICAgICAgICBmLndyaXRlKElOUFVUW3Bvczpwb3MrMTQ0XSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi50ZWxsKCksIGxlbihJTlBVVCkpCisKKyAgICBkZWYgdGVzdF90ZWxsX2JhZF9hcmdzKHNlbGYpOgorICAgICAgICBmID0gTFpNQUZpbGUoQnl0ZXNJTyhDT01QUkVTU0VEX1haKSkKKyAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGYudGVsbCkKKworCitjbGFzcyBPcGVuVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfYmluYXJ5X21vZGVzKHNlbGYpOgorICAgICAgICB3aXRoIGx6bWEub3BlbihCeXRlc0lPKENPTVBSRVNTRURfWFopLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVQpCisgICAgICAgIHdpdGggQnl0ZXNJTygpIGFzIGJpbzoKKyAgICAgICAgICAgIHdpdGggbHptYS5vcGVuKGJpbywgIndiIikgYXMgZjoKKyAgICAgICAgICAgICAgICBmLndyaXRlKElOUFVUKQorICAgICAgICAgICAgZmlsZV9kYXRhID0gbHptYS5kZWNvbXByZXNzKGJpby5nZXR2YWx1ZSgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIElOUFVUKQorICAgICAgICAgICAgd2l0aCBsem1hLm9wZW4oYmlvLCAiYWIiKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUoSU5QVVQpCisgICAgICAgICAgICBmaWxlX2RhdGEgPSBsem1hLmRlY29tcHJlc3MoYmlvLmdldHZhbHVlKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgSU5QVVQgKiAyKQorCisgICAgZGVmIHRlc3RfdGV4dF9tb2RlcyhzZWxmKToKKyAgICAgICAgdW5jb21wcmVzc2VkID0gSU5QVVQuZGVjb2RlKCJhc2NpaSIpCisgICAgICAgIHVuY29tcHJlc3NlZF9yYXcgPSB1bmNvbXByZXNzZWQucmVwbGFjZSgiXG4iLCBvcy5saW5lc2VwKQorICAgICAgICB3aXRoIGx6bWEub3BlbihCeXRlc0lPKENPTVBSRVNTRURfWFopLCAicnQiKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgdW5jb21wcmVzc2VkKQorICAgICAgICB3aXRoIEJ5dGVzSU8oKSBhcyBiaW86CisgICAgICAgICAgICB3aXRoIGx6bWEub3BlbihiaW8sICJ3dCIpIGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZSh1bmNvbXByZXNzZWQpCisgICAgICAgICAgICBmaWxlX2RhdGEgPSBsem1hLmRlY29tcHJlc3MoYmlvLmdldHZhbHVlKCkpLmRlY29kZSgiYXNjaWkiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIHVuY29tcHJlc3NlZF9yYXcpCisgICAgICAgICAgICB3aXRoIGx6bWEub3BlbihiaW8sICJhdCIpIGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZSh1bmNvbXByZXNzZWQpCisgICAgICAgICAgICBmaWxlX2RhdGEgPSBsem1hLmRlY29tcHJlc3MoYmlvLmdldHZhbHVlKCkpLmRlY29kZSgiYXNjaWkiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIHVuY29tcHJlc3NlZF9yYXcgKiAyKQorCisgICAgZGVmIHRlc3RfZmlsZW5hbWUoc2VsZik6CisgICAgICAgIHdpdGggVGVtcEZpbGUoVEVTVEZOKToKKyAgICAgICAgICAgIHdpdGggbHptYS5vcGVuKFRFU1RGTiwgIndiIikgYXMgZjoKKyAgICAgICAgICAgICAgICBmLndyaXRlKElOUFVUKQorICAgICAgICAgICAgd2l0aCBvcGVuKFRFU1RGTiwgInJiIikgYXMgZjoKKyAgICAgICAgICAgICAgICBmaWxlX2RhdGEgPSBsem1hLmRlY29tcHJlc3MoZi5yZWFkKCkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIElOUFVUKQorICAgICAgICAgICAgd2l0aCBsem1hLm9wZW4oVEVTVEZOLCAicmIiKSBhcyBmOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIElOUFVUKQorICAgICAgICAgICAgd2l0aCBsem1hLm9wZW4oVEVTVEZOLCAiYWIiKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUoSU5QVVQpCisgICAgICAgICAgICB3aXRoIGx6bWEub3BlbihURVNURk4sICJyYiIpIGFzIGY6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgSU5QVVQgKiAyKQorCisgICAgZGVmIHRlc3RfYmFkX3BhcmFtcyhzZWxmKToKKyAgICAgICAgIyBUZXN0IGludmFsaWQgcGFyYW1ldGVyIGNvbWJpbmF0aW9ucy4KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGx6bWEub3BlbihURVNURk4sICIiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgbHptYS5vcGVuKFRFU1RGTiwgIngiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgbHptYS5vcGVuKFRFU1RGTiwgInJidCIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBsem1hLm9wZW4oVEVTVEZOLCAicmIiLCBlbmNvZGluZz0idXRmLTgiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgbHptYS5vcGVuKFRFU1RGTiwgInJiIiwgZXJyb3JzPSJpZ25vcmUiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgbHptYS5vcGVuKFRFU1RGTiwgInJiIiwgbmV3bGluZT0iXG4iKQorCisgICAgZGVmIHRlc3RfZm9ybWF0X2FuZF9maWx0ZXJzKHNlbGYpOgorICAgICAgICAjIFRlc3Qgbm9uLWRlZmF1bHQgZm9ybWF0IGFuZCBmaWx0ZXIgY2hhaW4uCisgICAgICAgIG9wdGlvbnMgPSB7ImZvcm1hdCI6IGx6bWEuRk9STUFUX1JBVywgImZpbHRlcnMiOiBGSUxURVJTX1JBV18xfQorICAgICAgICB3aXRoIGx6bWEub3BlbihCeXRlc0lPKENPTVBSRVNTRURfUkFXXzEpLCAicmIiLCAqKm9wdGlvbnMpIGFzIGY6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYucmVhZCgpLCBJTlBVVCkKKyAgICAgICAgd2l0aCBCeXRlc0lPKCkgYXMgYmlvOgorICAgICAgICAgICAgd2l0aCBsem1hLm9wZW4oYmlvLCAid2IiLCAqKm9wdGlvbnMpIGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZShJTlBVVCkKKyAgICAgICAgICAgIGZpbGVfZGF0YSA9IGx6bWEuZGVjb21wcmVzcyhiaW8uZ2V0dmFsdWUoKSwgKipvcHRpb25zKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWxlX2RhdGEsIElOUFVUKQorCisgICAgZGVmIHRlc3RfZW5jb2Rpbmcoc2VsZik6CisgICAgICAgICMgVGVzdCBub24tZGVmYXVsdCBlbmNvZGluZy4KKyAgICAgICAgdW5jb21wcmVzc2VkID0gSU5QVVQuZGVjb2RlKCJhc2NpaSIpCisgICAgICAgIHVuY29tcHJlc3NlZF9yYXcgPSB1bmNvbXByZXNzZWQucmVwbGFjZSgiXG4iLCBvcy5saW5lc2VwKQorICAgICAgICB3aXRoIEJ5dGVzSU8oKSBhcyBiaW86CisgICAgICAgICAgICB3aXRoIGx6bWEub3BlbihiaW8sICJ3dCIsIGVuY29kaW5nPSJ1dGYtMTYtbGUiKSBhcyBmOgorICAgICAgICAgICAgICAgIGYud3JpdGUodW5jb21wcmVzc2VkKQorICAgICAgICAgICAgZmlsZV9kYXRhID0gbHptYS5kZWNvbXByZXNzKGJpby5nZXR2YWx1ZSgpKS5kZWNvZGUoInV0Zi0xNi1sZSIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVfZGF0YSwgdW5jb21wcmVzc2VkX3JhdykKKyAgICAgICAgICAgIGJpby5zZWVrKDApCisgICAgICAgICAgICB3aXRoIGx6bWEub3BlbihiaW8sICJydCIsIGVuY29kaW5nPSJ1dGYtMTYtbGUiKSBhcyBmOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksIHVuY29tcHJlc3NlZCkKKworICAgIGRlZiB0ZXN0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXIoc2VsZik6CisgICAgICAgICMgVGVzdCB3aWggbm9uLWRlZmF1bHQgZW5jb2RpbmcgZXJyb3IgaGFuZGxlci4KKyAgICAgICAgd2l0aCBCeXRlc0lPKGx6bWEuY29tcHJlc3MoYiJmb29ceGZmYmFyIikpIGFzIGJpbzoKKyAgICAgICAgICAgIHdpdGggbHptYS5vcGVuKGJpbywgInJ0IiwgZW5jb2Rpbmc9ImFzY2lpIiwgZXJyb3JzPSJpZ25vcmUiKSBhcyBmOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksICJmb29iYXIiKQorCisgICAgZGVmIHRlc3RfbmV3bGluZShzZWxmKToKKyAgICAgICAgIyBUZXN0IHdpdGggZXhwbGljaXQgbmV3bGluZSAodW5pdmVyc2FsIG5ld2xpbmUgbW9kZSBkaXNhYmxlZCkuCisgICAgICAgIHRleHQgPSBJTlBVVC5kZWNvZGUoImFzY2lpIikKKyAgICAgICAgd2l0aCBCeXRlc0lPKCkgYXMgYmlvOgorICAgICAgICAgICAgd2l0aCBsem1hLm9wZW4oYmlvLCAid3QiLCBuZXdsaW5lPSJcbiIpIGFzIGY6CisgICAgICAgICAgICAgICAgZi53cml0ZSh0ZXh0KQorICAgICAgICAgICAgYmlvLnNlZWsoMCkKKyAgICAgICAgICAgIHdpdGggbHptYS5vcGVuKGJpbywgInJ0IiwgbmV3bGluZT0iXHIiKSBhcyBmOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkbGluZXMoKSwgW3RleHRdKQorCisKK2NsYXNzIE1pc2NlbGxhbmVvdXNUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9pc19jaGVja19zdXBwb3J0ZWQoc2VsZik6CisgICAgICAgICMgQ0hFQ0tfTk9ORSBhbmQgQ0hFQ0tfQ1JDMzIgc2hvdWxkIGFsd2F5cyBiZSBzdXBwb3J0ZWQsCisgICAgICAgICMgcmVnYXJkbGVzcyBvZiB0aGUgb3B0aW9ucyBsaWJsem1hIHdhcyBjb21waWxlZCB3aXRoLgorICAgICAgICBzZWxmLmFzc2VydFRydWUobHptYS5pc19jaGVja19zdXBwb3J0ZWQobHptYS5DSEVDS19OT05FKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGx6bWEuaXNfY2hlY2tfc3VwcG9ydGVkKGx6bWEuQ0hFQ0tfQ1JDMzIpKQorCisgICAgICAgICMgVGhlIC54eiBmb3JtYXQgc3BlYyBjYW5ub3Qgc3RvcmUgY2hlY2sgSURzIGFib3ZlIHRoaXMgdmFsdWUuCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobHptYS5pc19jaGVja19zdXBwb3J0ZWQobHptYS5DSEVDS19JRF9NQVggKyAxKSkKKworICAgICAgICAjIFRoaXMgdmFsdWUgc2hvdWxkIG5vdCBiZSBhIHZhbGlkIGNoZWNrIElELgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGx6bWEuaXNfY2hlY2tfc3VwcG9ydGVkKGx6bWEuQ0hFQ0tfVU5LTk9XTikpCisKKyAgICBkZWYgdGVzdF9fZW5jb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBsem1hLl9lbmNvZGVfZmlsdGVyX3Byb3BlcnRpZXMoYiJub3QgYSBkaWN0IikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGx6bWEuX2VuY29kZV9maWx0ZXJfcHJvcGVydGllcyh7ImlkIjogMHgxMDB9KQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgbHptYS5fZW5jb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKHsiaWQiOiBsem1hLkZJTFRFUl9MWk1BMiwgImp1bmsiOiAxMn0pCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMobHptYS5MWk1BRXJyb3IpOgorICAgICAgICAgICAgbHptYS5fZW5jb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKHsiaWQiOiBsem1hLkZJTFRFUl9ERUxUQSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGlzdCI6IDkwMDF9KQorCisgICAgICAgICMgVGVzdCB3aXRoIHBhcmFtZXRlcnMgdXNlZCBieSB6aXBmaWxlIG1vZHVsZS4KKyAgICAgICAgcHJvcHMgPSBsem1hLl9lbmNvZGVfZmlsdGVyX3Byb3BlcnRpZXMoeworICAgICAgICAgICAgICAgICJpZCI6IGx6bWEuRklMVEVSX0xaTUExLAorICAgICAgICAgICAgICAgICJwYiI6IDIsCisgICAgICAgICAgICAgICAgImxwIjogMCwKKyAgICAgICAgICAgICAgICAibGMiOiAzLAorICAgICAgICAgICAgICAgICJkaWN0X3NpemUiOiA4IDw8IDIwLAorICAgICAgICAgICAgfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm9wcywgYiJdXHgwMFx4MDBceDgwXHgwMCIpCisKKyAgICBkZWYgdGVzdF9fZGVjb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBsem1hLl9kZWNvZGVfZmlsdGVyX3Byb3BlcnRpZXMobHptYS5GSUxURVJfWDg2LCB7InNob3VsZCBiZSI6IGJ5dGVzfSkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhsem1hLkxaTUFFcnJvcik6CisgICAgICAgICAgICBsem1hLl9kZWNvZGVfZmlsdGVyX3Byb3BlcnRpZXMobHptYS5GSUxURVJfREVMVEEsIGIidG9vIGxvbmciKQorCisgICAgICAgICMgVGVzdCB3aXRoIHBhcmFtZXRlcnMgdXNlZCBieSB6aXBmaWxlIG1vZHVsZS4KKyAgICAgICAgZmlsdGVyc3BlYyA9IGx6bWEuX2RlY29kZV9maWx0ZXJfcHJvcGVydGllcygKKyAgICAgICAgICAgICAgICBsem1hLkZJTFRFUl9MWk1BMSwgYiJdXHgwMFx4MDBceDgwXHgwMCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsdGVyc3BlY1siaWQiXSwgbHptYS5GSUxURVJfTFpNQTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsdGVyc3BlY1sicGIiXSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaWx0ZXJzcGVjWyJscCJdLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbHRlcnNwZWNbImxjIl0sIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsdGVyc3BlY1siZGljdF9zaXplIl0sIDggPDwgMjApCisKKyAgICBkZWYgdGVzdF9maWx0ZXJfcHJvcGVydGllc19yb3VuZHRyaXAoc2VsZik6CisgICAgICAgIHNwZWMxID0gbHptYS5fZGVjb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKAorICAgICAgICAgICAgICAgIGx6bWEuRklMVEVSX0xaTUExLCBiIl1ceDAwXHgwMFx4ODBceDAwIikKKyAgICAgICAgcmVlbmNvZGVkID0gbHptYS5fZW5jb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKHNwZWMxKQorICAgICAgICBzcGVjMiA9IGx6bWEuX2RlY29kZV9maWx0ZXJfcHJvcGVydGllcyhsem1hLkZJTFRFUl9MWk1BMSwgcmVlbmNvZGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNwZWMxLCBzcGVjMikKKworCisjIFRlc3QgZGF0YToKKworSU5QVVQgPSBiIiIiCitMQUVSVEVTCisKKyAgICAgICBPLCBmZWFyIG1lIG5vdC4KKyAgICAgICBJIHN0YXkgdG9vIGxvbmc6IGJ1dCBoZXJlIG15IGZhdGhlciBjb21lcy4KKworICAgICAgIEVudGVyIFBPTE9OSVVTCisKKyAgICAgICBBIGRvdWJsZSBibGVzc2luZyBpcyBhIGRvdWJsZSBncmFjZSwKKyAgICAgICBPY2Nhc2lvbiBzbWlsZXMgdXBvbiBhIHNlY29uZCBsZWF2ZS4KKworTE9SRCBQT0xPTklVUworCisgICAgICAgWWV0IGhlcmUsIExhZXJ0ZXMhIGFib2FyZCwgYWJvYXJkLCBmb3Igc2hhbWUhCisgICAgICAgVGhlIHdpbmQgc2l0cyBpbiB0aGUgc2hvdWxkZXIgb2YgeW91ciBzYWlsLAorICAgICAgIEFuZCB5b3UgYXJlIHN0YXknZCBmb3IuIFRoZXJlOyBteSBibGVzc2luZyB3aXRoIHRoZWUhCisgICAgICAgQW5kIHRoZXNlIGZldyBwcmVjZXB0cyBpbiB0aHkgbWVtb3J5CisgICAgICAgU2VlIHRob3UgY2hhcmFjdGVyLiBHaXZlIHRoeSB0aG91Z2h0cyBubyB0b25ndWUsCisgICAgICAgTm9yIGFueSB1bnByb3BvcnRpb25lZCB0aG91Z2h0IGhpcyBhY3QuCisgICAgICAgQmUgdGhvdSBmYW1pbGlhciwgYnV0IGJ5IG5vIG1lYW5zIHZ1bGdhci4KKyAgICAgICBUaG9zZSBmcmllbmRzIHRob3UgaGFzdCwgYW5kIHRoZWlyIGFkb3B0aW9uIHRyaWVkLAorICAgICAgIEdyYXBwbGUgdGhlbSB0byB0aHkgc291bCB3aXRoIGhvb3BzIG9mIHN0ZWVsOworICAgICAgIEJ1dCBkbyBub3QgZHVsbCB0aHkgcGFsbSB3aXRoIGVudGVydGFpbm1lbnQKKyAgICAgICBPZiBlYWNoIG5ldy1oYXRjaCdkLCB1bmZsZWRnZWQgY29tcmFkZS4gQmV3YXJlCisgICAgICAgT2YgZW50cmFuY2UgdG8gYSBxdWFycmVsLCBidXQgYmVpbmcgaW4sCisgICAgICAgQmVhcid0IHRoYXQgdGhlIG9wcG9zZWQgbWF5IGJld2FyZSBvZiB0aGVlLgorICAgICAgIEdpdmUgZXZlcnkgbWFuIHRoeSBlYXIsIGJ1dCBmZXcgdGh5IHZvaWNlOworICAgICAgIFRha2UgZWFjaCBtYW4ncyBjZW5zdXJlLCBidXQgcmVzZXJ2ZSB0aHkganVkZ21lbnQuCisgICAgICAgQ29zdGx5IHRoeSBoYWJpdCBhcyB0aHkgcHVyc2UgY2FuIGJ1eSwKKyAgICAgICBCdXQgbm90IGV4cHJlc3MnZCBpbiBmYW5jeTsgcmljaCwgbm90IGdhdWR5OworICAgICAgIEZvciB0aGUgYXBwYXJlbCBvZnQgcHJvY2xhaW1zIHRoZSBtYW4sCisgICAgICAgQW5kIHRoZXkgaW4gRnJhbmNlIG9mIHRoZSBiZXN0IHJhbmsgYW5kIHN0YXRpb24KKyAgICAgICBBcmUgb2YgYSBtb3N0IHNlbGVjdCBhbmQgZ2VuZXJvdXMgY2hpZWYgaW4gdGhhdC4KKyAgICAgICBOZWl0aGVyIGEgYm9ycm93ZXIgbm9yIGEgbGVuZGVyIGJlOworICAgICAgIEZvciBsb2FuIG9mdCBsb3NlcyBib3RoIGl0c2VsZiBhbmQgZnJpZW5kLAorICAgICAgIEFuZCBib3Jyb3dpbmcgZHVsbHMgdGhlIGVkZ2Ugb2YgaHVzYmFuZHJ5LgorICAgICAgIFRoaXMgYWJvdmUgYWxsOiB0byB0aGluZSBvd25zZWxmIGJlIHRydWUsCisgICAgICAgQW5kIGl0IG11c3QgZm9sbG93LCBhcyB0aGUgbmlnaHQgdGhlIGRheSwKKyAgICAgICBUaG91IGNhbnN0IG5vdCB0aGVuIGJlIGZhbHNlIHRvIGFueSBtYW4uCisgICAgICAgRmFyZXdlbGw6IG15IGJsZXNzaW5nIHNlYXNvbiB0aGlzIGluIHRoZWUhCisKK0xBRVJURVMKKworICAgICAgIE1vc3QgaHVtYmx5IGRvIEkgdGFrZSBteSBsZWF2ZSwgbXkgbG9yZC4KKworTE9SRCBQT0xPTklVUworCisgICAgICAgVGhlIHRpbWUgaW52aXRlcyB5b3U7IGdvOyB5b3VyIHNlcnZhbnRzIHRlbmQuCisKK0xBRVJURVMKKworICAgICAgIEZhcmV3ZWxsLCBPcGhlbGlhOyBhbmQgcmVtZW1iZXIgd2VsbAorICAgICAgIFdoYXQgSSBoYXZlIHNhaWQgdG8geW91LgorCitPUEhFTElBCisKKyAgICAgICAnVGlzIGluIG15IG1lbW9yeSBsb2NrJ2QsCisgICAgICAgQW5kIHlvdSB5b3Vyc2VsZiBzaGFsbCBrZWVwIHRoZSBrZXkgb2YgaXQuCisKK0xBRVJURVMKKworICAgICAgIEZhcmV3ZWxsLgorIiIiCisKK0NPTVBSRVNTRURfWFogPSAoCisgICAgYiJceGZkN3pYWlx4MDBceDAwXHgwNFx4ZTZceGQ2XHhiNEZceDAyXHgwMCFceDAxXHgxNlx4MDBceDAwXHgwMHQvXHhlNVx4YTMiCisgICAgYiJceGUwXHgwN1x4ODBceDAzXHhkZl1ceDAwXHgwNVx4MTRceDA3YlhceDE5XHhjZFx4ZGRuXHg5OFx4MTVceGU0XHhiNFx4OWQiCisgICAgYiJvXHgxZFx4YzRceGU1XG5ceDAzXHhjYzJoXHhjN1xcXHg4Nlx4ZmZceGY4XHhlMlx4ZmNceGU3XHhkOVx4ZmU2XHhiOCgiCisgICAgYiJceGE4d2RceGMyXCJ1Lm5ceDFlXHhjM1x4ZjJceDhlXHg4ZFx4OGZceDAyXHgxNy9ceGE2PVx4ZjBceGEyXHhkZi9NXHg4OSIKKyAgICBiIlx4YmVceGRlXHhhN1x4MWN6XHgxOC1dXHhkNVx4ZWZceDEzXHg4ZnJaXHgxNVx4ODBceDhjXHhmOFx4OGRvXHhmYVx4MTIiCisgICAgYiJceDliI3ovXHhlZlx4ZjBceGZhRlx4MDFceDgyXHhhM01ceDhlXHhhMXRceGNhNiBCRiRceGU1UVx4YTRceDk4XHhlZVx4ZGUiCisgICAgYiJsXHhlOFx4N2ZceGYwXHg5ZCxiblx4MGJceDEzXHhkNFx4YThceDgxXHhlNE5ceGM4XHg4Nlx4MTUzXHhmNXgyXHhhMk8iCisgICAgYiJceDEzQFFceGExXHgwMC9ceGE1XHhkME9ceDk3XHhkY29ceGFlXHhmN3pceGM0XHhjZFNceGI2dDxceDE2XHhmMlx4OWNJIyIKKyAgICBiIlx4ODl1ZFx4YzY2WVx4ZDlceGVlXHhlNlx4Y2VceDEyXVx4ZTVceGYwXHhhYVx4OTYtUGVceGFkZTpceDA0XHRceDFiXHhmNyIKKyAgICBiIlx4ZGI3XG5ceDg2XHgxZnBceGM4Slx4YmFceGY0XHhmMFZceGE5XHhkY1x4ZjBceDAyJUdceGY5XHhkZj0/XHgxNVx4MWIiCisgICAgYiJceGUxKFx4Y2VceDgyPVx4ZDZJXHhhYzNceDEyXHgwY1JceGI3XHhhZVxyXHhiMWlceDAzXHg5NVx4MDFceGJkXHhiZVx4ZmEiCisgICAgYiJceDAyc1x4MDFQXHg5ZFx4OTZYXHhiMTJqXHhjOExceGE4XHg4NGJceGY2XHhjM1x4ZDRjLUhceDkzb0psXHhkMGlRXHhlNGsiCisgICAgYiJceDg0XHgwYlx4YzFceGI3XHhiY1x4YjFceDE3XHg4OFx4YjFceGNhP0BceGY2XHgwN1x4ZWFceGU2eFx4ZjFIMTJQXHgwZiIKKyAgICBiIlx4OGFceGM5XHhlYXV3XHhlM1x4YmVceGFhaVx4YTlXXHhkMFx4ODBceGNkI2NiNVx4OTlceGQ4XVx4YTlkXHgwY1x4YmQiCisgICAgYiJceGEyXHhkY1dsXHhlZFVHXHhiZlx4ODl5Rlx4Zjc3XHg4MXZceGJkNVx4OThceGJlaDhceDE4V1x4MDhceGYwXHgxYlx4OTkiCisgICAgYiI1Olx4MWE/ckRceDk2XHhhMVx4MDRceDBmXHhhZVx4YmFceDg1XHhlYlx4OWQ1QFx4ZjVceDgzXHhkMzdceDgzXHg4YWMiCisgICAgYiJceDA2XHhkNFx4OTdpXHhjZHRceDE2U1x4ODJrXHhmNktceDAxdnlceDg4XHg5MVx4OWI2VFx4ZGFlXHJceGZkXTprXHhiYWwiCisgICAgYiJceGE5XHhiYmFceGMzNFx4ZjlyXHhlYn1yXHhkYlx4YzdceGRiKlx4OGZceDAzelx4ZGM4aFx4Y2NceGM5XHhkM1x4YmNsIgorICAgIGIiXHhhNS1ceGNiXHhlYUtceGEyXHhjNVx4MTVceGMwXHhlM1x4YzFceDg2Wlx4ZmJceGViTFx4ZTEzXHhjZlx4OWNceGUzIgorICAgIGIiXHgxZFx4YzlceGVkXHhjMlx4MDZceGNjXHhjZSFceDkyXHhlNVx4ZmVceDljXlx4YTU5dyBceDliUFx4YTNQS1x4MDhkIgorICAgIGIiXHhmOVx4ZTJafVx4YTdceGJmXHhlZFx4ZWIlJFx4MGNceDgyXHhiOC9ceGIwXHgwMVx4YTkmLFx4ZjdxaHtRXHg5NilceGYyIgorICAgIGIicVx4OTZceGMzXHg4MFx4YjRceDEyXHhiMFx4YmFceGU2b1x4ZjQhXHhiNFtceGQ0XHg4YXdceDEwXHhmN3RceDBjXHhiMyIKKyAgICBiIlx4ZDlceGQ1XHhjM2BeXHg4MVx4MTE/P1xcXHhhNFx4OTlceDg1Ulx4ZDRceDhlXHg4M1x4YzlceDFlWFx4YmZhXHhmMSIKKyAgICBiIlx4YWNceGIwXHhlYVx4ZWFceGQ3XHhkMFx4YWJceDE4XHhlMlx4ZjJceGVkXHhlMVx4YjdceGM5XHgxOFx4Y2JTXHhlND4iCisgICAgYiJceGM5XHg5NUhceGU4XHhjYlx0XHIlXHhlYlx4YzckLm9ceGYxXHhmM1JceDE3XHgxZGJceGJiXHhkOFVceGE1Xlx4Y2NTIgorICAgIGIiXHgxNlx4MDFceDg3XHhmMy9ceDkzXHhkMVx4ZjB2XHhjMHJceGQ3XHhjY1x4YTJHa3pceGNhXHg4MFx4MGVceGZkXHhkMCIKKyAgICBiIlx4OGJceGJiXHhkMkl4XHhiM1x4MWV5XHhjYS0wXHhlM3peXHhkNlx4ZDZceDhmX1x4ZjFceDlkUFx4OWZpXHhhN1x4ZDEiCisgICAgYiJceGU4XHg5MFx4ODRceGRjXHhiZlx4Y2RreVx4OGVceGRjXHg4MVx4N2ZceGEzXHhiMitceGJmXHgwNFx4ZWZceGQ4XFwiCisgICAgYiJceGM0XHhkZlx4ZTFceGIwXHgwMVx4ZTlceDkzXHhlM1lceGYxXHgxZFlceGU4aFx4ODFceGNmXHhmMXdceGNjXHhiNFx4ZWYiCisgICAgYiIgXHg4YnxceDA0XHhlYVx4ODNlalx4YmVceDFmXHhkNHpceDljYFx4ZDNceDFhXHg5MkFceDA2XHhlNVx4OGZceGE5XHgxMyIKKyAgICBiIlx0XHg5ZT1ceGZhXHgxY1x4ZTVfXHg5ZiV2XHgxYm9ceDExWk9ceGQ4XHhmNFx0XHhkZE1ceDE2LVx4MDRceGZjXHgxODxcIiIKKyAgICBiIkNNXHhkZGd+Ylx4ZjZceGVmXHg4ZVx4MGNceGQwXHhkZXxceGEwJ1x4OGFceDBjXHhkNnhceGFlIUpceGE2Rlx4ODhceDE1dSIKKyAgICBiIlx4MDA4XHgxN1x4YmM3eVx4YjNceGQ4dVx4YWNfXHg4NVx4OGRceGU3XHhjMUBceDljXHhlY3FjXHhhMyNceGFkXHhmMSIKKyAgICBiIlx4OTM1XHhiNSlfXHJceGVjM11ceDBmb101XHhkMG15XHgwN1x4OWJceGVlXHg4MVx4YjVceDBmXHhjZksrXHgwMFx4YzAiCisgICAgYiJceGU0Ylx4MTBceGU0XHgwY1x4MWEgXHg5Ylx4ZTBceDk3dFx4ZjZceGExXHg5ZVx4ODUwXHhiYVx4MGNceDlhXHg4ZFx4YzgiCisgICAgYiJceDhmXHgwN1x4ZDdceGFlXHhjOFx4ZjkraVx4ZGNceGI5a1x4YjA+Zlx4MTlceGI4XHJceGE4XHhmOFx4MWYkXHhhNXtwIgorICAgIGIiXHhjNlx4ODgwXHhjZVx4ZGJceGNmXHhjYV9ceDg2XHhhY1x4ODhoNlx4OGJaJSdceGQwXG5ceGJmXHgwZlx4OWNcIlx4YmEiCisgICAgYiJceGU1XHg4Nlx4OWZceDBmN1g9bU5YW1x4Y2NceDE5RlVceGM5XHg4NjBceGJjXHg5MGErKiBceGFlXyRceDAzXHgxZVx4ZDMiCisgICAgYiJceGNkX1x4YTBceDljXHhkZVx4YWY0NnFceGE1XHhjOVx4OTJceGQ3XHhjYVx4ZTNgXHg5ZFx4ODV9XHhiNFx4ZmZceGIzIgorICAgIGIiXHg4M1x4ZmJceGI2XHhjYVx4YWVgXHgwYndceDdmXHhmY1x4ZDhceGFjVmVceDE5XHhjOFx4MTdceDBiWlx4YWRceDg4IgorICAgIGIiXHhlYiNceDk3XHgwM1x4MTNceGIxZFx4MGZ7XHgwY1x4MDR3XHgwN1xyXHg5N1x4YmRceGQ2XHhjMVx4YzNCOlx4OTVceDA4IgorICAgIGIiXlx4MTBWXHhhZWFIXHgwMlx4ZDlceGUzXG5cXFx4MDFYXHhmNlx4OWNceDhhXHgwNnUjJVx4YmUqXHhhMVx4MTh2XHg4NSIKKyAgICBiIlx4ZWMhXHQ0XHgwMFx4MDBceDAwXHgwMFZqP3VMVVx4ZjNceGE2XHgwMFx4MDFceGZiXHgwN1x4ODFceDBmXHgwMFx4MDB0dyIKKyAgICBiIlx4OTlQXHhiMVx4YzRnXHhmYlx4MDJceDAwXHgwMFx4MDBceDAwXHgwNFlaIgorKQorCitDT01QUkVTU0VEX0FMT05FID0gKAorICAgIGIiXVx4MDBceDAwXHg4MFx4MDBceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4MDBceDA1XHgxNFx4MDdiWFx4MTkiCisgICAgYiJceGNkXHhkZG5ceDk4XHgxNVx4ZTRceGI0XHg5ZG9ceDFkXHhjNFx4ZTVcblx4MDNceGNjMmhceGM3XFxceDg2XHhmZlx4ZjgiCisgICAgYiJceGUyXHhmY1x4ZTdceGQ5XHhmZTZceGI4KFx4YTh3ZFx4YzJcInUublx4MWVceGMzXHhmMlx4OGVceDhkXHg4Zlx4MDIiCisgICAgYiJceDE3L1x4YTY9XHhmMFx4YTJceGRmL01ceDg5XHhiZVx4ZGVceGE3XHgxY3pceDE4LV1ceGQ1XHhlZlx4MTNceDhmcloiCisgICAgYiJceDE1XHg4MFx4OGNceGY4XHg4ZG9ceGZhXHgxMlx4OWIjei9ceGVmXHhmMFx4ZmFGXHgwMVx4ODJceGEzTVx4OGVceGExdCIKKyAgICBiIlx4Y2E2IEJGJFx4ZTVRXHhhNFx4OThceGVlXHhkZWxceGU4XHg3Zlx4ZjBceDlkLGJuXHgwYlx4MTNceGQ0XHhhOFx4ODEiCisgICAgYiJceGU0Tlx4YzhceDg2XHgxNTNceGY1eDJceGEyT1x4MTNAUVx4YTFceDAwL1x4YTVceGQwT1x4OTdceGRjb1x4YWVceGY3eiIKKyAgICBiIlx4YzRceGNkU1x4YjZ0PFx4MTZceGYyXHg5Y0kjXHg4OXVkXHhjNjZZXHhkOVx4ZWVceGU2XHhjZVx4MTJdXHhlNVx4ZjAiCisgICAgYiJceGFhXHg5Ni1QZVx4YWRlOlx4MDRcdFx4MWJceGY3XHhkYjdcblx4ODZceDFmcFx4YzhKXHhiYVx4ZjRceGYwVlx4YTkiCisgICAgYiJceGRjXHhmMFx4MDIlR1x4ZjlceGRmPT9ceDE1XHgxYlx4ZTEoXHhjZVx4ODI9XHhkNklceGFjM1x4MTJceDBjUlx4YjciCisgICAgYiJceGFlXHJceGIxaVx4MDNceDk1XHgwMVx4YmRceGJlXHhmYVx4MDJzXHgwMVBceDlkXHg5NlhceGIxMmpceGM4TFx4YTgiCisgICAgYiJceDg0Ylx4ZjhceDFlcGxceGVhanJceGQxPVx0XHgwM1x4ZGRceDEzXHgxYjMhRVx4Zjl2Vlx4ZGFGXHhmM1x4ZDdceGI0IgorICAgIGIiXHgwY1x4YTlQflx4ZWNceGRlRVx4ZTM3XHhmNlx4MWRceGM2XHhiYlx4ZGRjJVx4YjZceDBmSVx4MDdceGYwO1x4YWZceGU3IgorICAgIGIiXHhhMFx4OGJceGE3Wlx4OTkoXHhlOVx4ZTJceGYwb1x4MTg+YFx4ZTFceGFhXHhhOFx4ZDlceGExXHhiMn1ceGU3XHg4ZCIKKyAgICBiIlx4ODM0VFx4YjZceGVmXHhjMVx4ZGVceGUzXHg5OFx4YmNEXHgwM01BQFx4ZDhceGVkXHhkY1x4YzhceDkzXHgwM1x4MWEiCisgICAgYiJceDkzXHgwYlx4N2ZceDk0XHgxMlx4MGJceDAyU2FceDE4XHhjOVx4YzVceDliVEpFfVx4ZjZceGM4Z1x4MTcjWlZceDAxIgorICAgIGIiXHhjOVx4OWRjXHg4M1x4MGU+MFx4MTZceDkwU1x4YjgvXHgwM3lfXHgxOFx4ZmEoXHhkN1x4MGJyXHhhMlx4YjBceGJhPyIKKyAgICBiIlx4OGNceGU2XHg4M0BceDg0XHhkZlx4MDI6XHhjNXpceDllXHhhNlx4ODRceGM5XHhmNUJleVhceDgzXHgxYVx4ZjEgOlx0IgorICAgIGIiXHhmN1x4MTlceGZleERcXCZHXHhmM1x4ODVZXHhhMkpceGY5XHgwYnZ7XHg4OVx4ZjZceGU3KUFceGFmXHgwNG9ceDAwIgorICAgIGIiXHgwNzVceGQzXHhlMFx4N2ZceDk3XHg5OEZceDBmP3ZceDkzXHhlZFZ0VGZceGI1XHg5N1x4ODNceGVkXHgxOVx4ZDdceDFhIgorICAgIGIiJ2tceGQ3XHhkOVx4YzVcXFlceGQxXHhkY1x4MDdceDE1fHdceGJjXHhhY2RceDg3XHgwOGRceGVjXHhhN1x4ZjZceDgyIgorICAgIGIiXHhmY1x4YjNceDkzXHhlYlx4YjkgXHg4ZFx4YmMgLFx4YjNYXHhiMFx4ZDJzXHhkN1x4ZDFceGZmdlx4MDVceGRmfVx4YTIiCisgICAgYiJceDk2XHhmYiVcblx4ZGZceGEyXHg3Zlx4MDguXHhhMTZcblx4ZTBceDE5XHg5M1x4N2ZoXG5ceDFjXHg4Y1x4MGYgXHgxMSIKKyAgICBiIlx4YzZCbFx4OTVceDE5VX1ceGU0c1x4YjVceDEwSFx4ZWFceDg2cEJceGU4OFx4OTVceGJlXHg4Y1pceGRiXHhlNFx4OTRBIgorICAgIGIiXHg5Mlx4Yjk7elx4YWFceGE3e1x4MWM1IVx4YzBceGFmXHhjMUFceGY5XHhkYVx4ZjAkXHhiMFx4MDJxZ1x4YzhceGM3L3wiCisgICAgYiJceGFmclx4OTleXHg5MVx4ODhceGJmXHgwM1x4ZDk9XHhkN25ceGRhNns+OFxuXHhjNzpceGE5J1x4YmEuXHgwYlx4ZTIiCisgICAgYiJceGI1XHgxZFx4MGVcblx4OWFceDhlXHgwNlx4OGY6XHhkZFx4ODInW1x4YzNcIndEJFx4YTd3XHhlY3FceDhjLDFceDkzIgorICAgIGIiXHhkMCxceGFlMndceDkzXHgxMiRKZFx4MTltZ1x4MDJceDkzXHg5Y0FceDk1XHg5ZCZceGNhOGlceDljXHhiMDtceGU3TlEiCisgICAgYiJceDFmcmhceDhiZUw7XHhiMG1ceGVlXHgwN1FceDliXHhjNlx4ZDhceDAzXHhiNVx4ZGVOXHhkNFx4ZmVceDk4XHhkMFx4ZGMiCisgICAgYiJceDFhW1x4MDRceGRlXHgxYVx4ZjZceDkxalx4ZjhFT2xpXHg4ZUJeXHgxZFx4ODJceDA3XHhiMlx4YjVSXVx4YjdceGQ3IgorICAgIGIiXHhlOVx4YTZceGMzLlx4ZmJceGYwLVx4YjRlXHg5Ylx4ZGVceDAzXHg4OFx4YzZceGMxaU5ceDBlXHg4NHdiUVx4ZGZ+IgorICAgIGIiXHhlOVx4YTRceDg4NFx4OTZrTVx4YmMpVFx4ZjNceDg5XHg5N1x4MGZceDE0M1x4ZTcpXHhhMFx4YjNCXHgwMFx4YThceGFmIgorICAgIGIiXHg4Ml5ceGNiXHhjNy4uXHhkYlx4YzdcdFx4OWRIXHhlZTVceGU5I1x4ZTZOVlx4OTRceGNiJEtrXHhlM1x4N2Zcclx4ZTN0IgorICAgIGIiXHgxMlx4Y2YnXHhlZlJceDhiXHhmNDJceGNmLUxIXHhhY1x4ZTVceDFmMH4/U09ceGViXHhjMUVceDFhXHgxY11ceGYyIgorICAgIGIiXHhjNDxceDExXHgwMlx4MTBaMGEqP1x4ZTRyXHhmZlx4ZmJceGZmXHhmNlx4MTRuR1x4ZWFkXlx4ZDZceGVmOFx4YjZ1RUkiCisgICAgYiJceDk5XG5WXHhlMlx4YjNceDk1XHg4ZVx4ODNceGY2aSFceGI1JjFGXHhiMURQXHhmNCBTTzNEIXdceDk5X0dceDdmK1x4OTAiCisgICAgYiIuXHhhYlx4YmJdXHg5MT5ceGM5I2g7XHgwZjVKXHg5MUtceGY0Xi1bXHg5ZVx4OGFcXFx4OTRceGNhXHhhZlx4ZjZceDE5IgorICAgIGIiXHhkNFx4YTFceDliXHhjNFx4YjhwXHhhMVx4YWVceDE1XHhlOXJceDg0XHhlMFx4Y2FyLmwgW11ceDhiXHhhZiswXHhmMmciCisgICAgYiJceDAxYUtZXHhkZklceGNmLFxuXHhlOFx4ZjBceGU3Vlx4ODBfI1x4YjJceGYyXHhhOVx4MDZceDhjPndceGUyVyxceGY0IgorICAgIGIiXHg4Y1xyXHhmOTYzXHhmNUpceGNjMlx4MDU9a1RceGVhVXRpXHhlNV9ceGNlXHgxYlx4ZmFceDhkbFx4MDJoXHhlZlx4YTgiCisgICAgYiJceGZiZlx4N2ZceGZmXHhmMFx4MTlceGVheCIKKykKKworRklMVEVSU19SQVdfMSA9IFt7ImlkIjogbHptYS5GSUxURVJfTFpNQTIsICJwcmVzZXQiOiAzfV0KK0NPTVBSRVNTRURfUkFXXzEgPSAoCisgICAgYiJceGUwXHgwN1x4ODBceDAzXHhmZF1ceDAwXHgwNVx4MTRceDA3YlhceDE5XHhjZFx4ZGRuXHg5NmN5cVx4YTFceGRkXHhlZSIKKyAgICBiIlx4ZjhceGZhbVx4ZTMnXHg4OFx4ZDNceGZmXHhlNFx4OWUgXHhjZVFceDkxXHhhNFx4MTRJXHhmNlx4YjlceDlkVkw4XHgxNSIKKyAgICBiIl9ceDBlXHgxMlx4YzNceGViXHhiY1x4YTVceGNkXG5XXHgxZCQ9UjtceDFkXHhmOGs4XHRceGIxe1x4ZDRceGM1K1x4OWQiCisgICAgYiJceDg3Y1x4ZTVceGVmXHg5OFx4YjRceGQ3UzNceGNkXHhjY1x4ZDJceGVkXHhhNFx4MGVtXHhlNVx4ZjRceGRkXHhkMGIiCisgICAgYiJceGJlNCpceGFhXHgwYlx4YzVceDA4XHgxMFx4ODUrXHg4MS5ceDE3XHhhZjlceGM5Ylx4ZWFackFceGUyMFx4N2ZzXCJyIgorICAgIGIiXHhkYUdceDgxXHhkZVx4OTBjdVx4YTVceGRiXHhhOS5BXHgwOGxceGIwPFx4ZjZceDAzXHhkZE9pXHhkMFx4YzVceGI0IgorICAgIGIiXHhlY1x4ZWNnNHQ2XCJceGE2XHhiOG9ceGI1P1x4MThefVx4YjZ9XHgwM1s6XHhlYlx4MDNceGE5XG5bXHg4OWxceDE5ZyIKKyAgICBiIlx4MTZceGM4Mlx4ZWRceDBiXHhmYlx4ODZuXHhhMlx4ODU3QFx4OTNceGNkNlRceGMzdVx4YjBcdFx4ZjlceDFiXHg5MTgiCisgICAgYiJceGZjW1x4MWJceDFlNFx4YjNceDE0XHgwNlBDVlx4YThcIlx4ZjVceDgxeH5ceGU5XHhiNU5ceDljS1x4OWZceGM2XHhjMyUiCisgICAgYiJceGM4azp7Nlx4ZTdceGY3XHhiZFx4MDVceDAyXHhiNFx4YzRceGMzXHhkM1x4ZmRceGMzXHhhOFxcXHhmY0BceGIxRl8iCisgICAgYiJceGM4XHg5MFx4ZDlzVVx4OThceGFkOFx4MDVceDA3XHhkZTdKXHg4Yk1ceGQwXHhiMztYXHhlY1x4ODdceGVmXHhhZVx4YjMiCisgICAgYiJlTyxceGIxeixkXHgxMXlceGVlamxCXHgwMlx4MWRceGYyOFx4MWYjXHg4OTZceGNlXHgwYlx4ZjBceGY1XHhhOVBLXHgwZiIKKyAgICBiIlx4YjNceDEzUFx4ZDhceDg4XHhkMlx4YTFceDA4XHgwNEM/XHhkYlx4OTRfXHg5YVwiXHhlOVx4ZTNlXHgxZFx4ZGVceDliIgorICAgIGIiXHhhMVx4ZTg+SFx4OThceDEwO1x4YzVceDAzI1x4YjVceDlkNFx4MDFceGU3XHhjNVx4YmEldlx4YTQ5XHg5N0FceGUwXCIiCisgICAgYiJceDhjXHhjMjJceGUzaVx4YzFceDlkXHhhYjNceGRmXHhiZVx4ZmREbTdceDFiXHg5ZFx4YWJceGI1XHgxNW86Slx4OTIiCisgICAgYiJceGRiXHg4MTZceDE3XHhjMk9ceDk5XHgxYlx4MGVceDhkXHhmM1x0UVx4ZWRceDhlXHg5NVMvXHgxNk1ceGIyU1x4MDQiCisgICAgYiJceDBmXHhjM0pceGM2XHhjN1x4ZTRceGNiXHhjNVx4ZjRceGU3ZFx4MTRceGU0PV5CXHhmYlx4ZDNFXHhkM1x4MWVceGNkIgorICAgIGIiXHg5MVx4YTVceGQwR1x4OGYuXHhmNlx4ZjlceDBiYiZceGQ5XHg5Zlx4YzJceGZkalx4YTJceDllXHhjNFxcXHgwZVx4MWRDIgorICAgIGIidlx4ZThceGQyXHg4YT9eSFx4ZWNceGFlXHhlYj5ceGZlXHhiOFx4YWJceGQ0SXFZXHg4Y1x4ZDRLN1x4MTFceGY0RFx4ZDBXIgorICAgIGIiXHhhNVx4YmVceGVhT1x4YmZceGQwXHgwNFx4ZmRsXHgxMFx4YWU1XHhkNFVceDE5XHgwNlx4Zjl7XHhhYVx4ZTBceDgxIgorICAgIGIiXHgwZlx4Y2ZceGEza3tceDk1XHhiZFx4MTlceGEyXHhmOFx4ZTRceGEzXHgwOE8qXHhmMVx4ZjFCLVx4YzcoXHgwZVJceGZkIgorICAgIGIiQEVceDlmXHhkM1x4MWU6XHhmZFZceGI3XHgwNFlceDk0XHhlYl1ceDgzXHhjNFx4YTVceGQ3XHhjMGdYXHg5OFx4Y2ZceDBmIgorICAgIGIiXHhjZDNceDAwXW5ceDE3XHhlY1x4YmRceGEzWVx4ODZceGM1XHhmM3VceGY2Klx4YmRUXHhlZEEkQVx4ZDlBXHhlN1x4OTgiCisgICAgYiJceGVmXHgxNFx4MDJceDlhXHhmZGl3XHhlY1x4YTBceDg3XHgxMVx4ZDklXHhjNVx4ZWJceDhhPVx4YWVceGMwXHhjNFx4YzYiCisgICAgYiJEXHg4MFx4OGZceGE4XHhkMVx4YmJxXHhiMlx4YzBceGEwXHhmNUNxcFx4ZWVMXHhlM1x4ZTVceGRjIFx4ODRcIlx4ZTkiCisgICAgYiJceDgwdFx4ODNceDA1XHhiYVx4ZjFceGM1flx4OTNceGM5XHhmMFx4MDFjXHhjZWl4XHg5ZFx4ZWRceGM1KWxceDE2KVx4ZDEiCisgICAgYiJceDAzQGxceDA0XHg3Zlx4ODdceGE1eW5ceDFiXHgwMURceGFhOlx4ZDJceDk2XHhiNFx4YjM/XHhiMFx4ZjlceGNlXHgwNyIKKyAgICBiIlx4ZWJceDgxXHgwMFx4ZTRceGMzXHhmNSVfXHhhZVx4ZDRceGY5XHhlYlx4ZTJccmhceGIyI1x4ZDY3UVx4MTZEXHg4MmhuIgorICAgIGIiXHhkMVx4YTNfP3FceGYwXHhlMlx4YWNceGYzMTdceDllXHhkMF9ceDgzfFx4ZjFceGNhXHhiN1x4OTVTXHhhYldceDEyIgorICAgIGIiXHhmZlx4ZGR0XHhmNjlMXHgwMVx4ZjJ8XHhkYVdceGRhXHhlZXNceDk4TFx4MThceGI4X1x4ZTgkXHg4Mlx4ZWFceGQ2IgorICAgIGIiXHhkMUZceGQ0XHgwYlx4Y2RrXHgwMXZmXHg4OGhceGMzXHhhZVx4YjkxXHhjN1FceDlmXHhhNUdceGQ5XHhjY1x4MWZceGUzIgorICAgIGIiNVx4YjFceGRjeVx4N2ZJXHg4YmN3XHg4ZVx4MTBySXBceDAyOlx4MTlwX1x4Yzh2XHhjZWFcIlx4YzFceGQ5XHg5MVx4MDMiCisgICAgYiJceGJmZVx4YmVceGE2XHhiM1x4YThceDE0XHgxOFx4YzNceGFiSCptfVx4YzJceGMxXHg5YX0+bCVceGNlXHg4NFx4OTkiCisgICAgYiJceGIzZFx4YWZceGQzXHg4Mlx4MTVceGRmXHhjMVx4ZmM1Zk9nXHg5Ylx4ZmNceDhlXiZcdEBceGNlXHg5Zlx4MDZKXHhiOCIKKyAgICBiIlx4YjVceDg2XHgxZFx4ZGF7XHg5Zlx4YWVceGIwXHhmZlx4MDJceDgxclx4OTJ6XHg4Y01ceGI3aG9ceGM5Xlx4OWNceGI2IgorICAgIGIiXHg5Y1x4YWVceGQxXHhjOVx4ZjRceGRmVTdceGQ2XFwhXHhlYVx4MGJceDk0a1x4YjlVZH5ceDk4XHhlN1x4ODZceDhheiIKKyAgICBiIlx4MTA7XHhlM1x4MWRceGU1UEdceGY4XHhhNFx4MTJceDA1d1x4OTheXHhjNFx4YjFceGJiXHhmYlx4Y2ZceGUwXHg3ZiIKKyAgICBiIlx4MDMzU2ZceDBjIFx4YjFceGY2QFx4OTRceGU1XHhhM1x4YjJceGE3XHgxMFx4OWFceGMwXHgxNFx4YzNzXHhiNXhSRCIKKyAgICBiIlx4ZjRgV1x4ZDlceGU1XHhkM1x4Y2ZceDkxXHJUWi1YXHhiZVx4YmZceGI1XHhlMlx4ZWV8XHgxYVx4YmZceGZiXHgwOCIKKyAgICBiIlx4OTFceGUxXHhmY1x4OWFceDE4XHhhM1x4OGJceGQ2Xlx4ODlceGY1W1x4ZWZceDg3XHhkMVx4MDZceDFjN1x4ZDZceGEyIgorICAgIGIiXHRcdFE1L0BTXHhjMDVceGQyVmhBS1x4MDNWQ1xyXHg5Ylx4OTNceGQ2TVx4ZjF4T1x4YWFPXHhlZFx4Yjk8XHgwY1x4ZGFlIgorICAgIGIiKlx4ZDBceDA3SGs2XHg5ZkcrXHhhMSlceGNkXHg5Y2xceDg3XHhkYlx4ZTFceGU3XHhlZkt9XHg4NzVceGFiXHhhMFx4MTl1IgorICAgIGIiXHhmNipGXHhiMzJceDAwXHgwMFx4MDAiCispCisKK0ZJTFRFUlNfUkFXXzIgPSBbeyJpZCI6IGx6bWEuRklMVEVSX0RFTFRBLCAiZGlzdCI6IDJ9LAorICAgICAgICAgICAgICAgICB7ImlkIjogbHptYS5GSUxURVJfTFpNQTIsCisgICAgICAgICAgICAgICAgICAicHJlc2V0IjogbHptYS5QUkVTRVRfREVGQVVMVCB8IGx6bWEuUFJFU0VUX0VYVFJFTUV9XQorQ09NUFJFU1NFRF9SQVdfMiA9ICgKKyAgICBiIlx4ZTBceDA3XHg4MFx4MDVceDkxXVx4MDBceDA1XHgxNFx4MDYtXHhkNFx4YThkP1x4ZWZceGJlXHhhZkhceGVlXHgwNDIiCisgICAgYiJceGNiLlx4YjVnXHg4Zlx4ZmJceDE0XHhhYlx4YTVceDlmXHgwMjV6XHhhNFx4ZGRceGQ4XHRbfVdceGY4XHgwY1x4MWRtSCIKKyAgICBiIlx4ZmFceDA1XHhmY2dceGJhXHhlNVx4MDFRXHgwYlx4ODNSXHhiNkFceDg4NVx4YzBceGJhXHhlZVxuXHgxY3Z+XHhkZTpvIgorICAgIGIiXHgwNjpKXHhhN1x4MTFDY1x4ZWFceGY3XHhlNSpvXHhmN1x4ODNcXGxceGJkRVx4MTlceDFmXHJceGE4XHgxMFx4YjQyIgorICAgIGIiXHgwY2FVe1x4ZDdceGI4d1x4ZGNceGJlXHgxYlx4ZmM4XHhiNFx4Y2NceGQzOFxcXHhmNlx4MTNceGY2XHhlN1x4OThceGZhIgorICAgIGIiXHhjN1tceDE3XzlceDg2JVx4YThceGY4XHhhYVx4YjhceDhkZnMjXHgxZT1ceGVkPFx4OTJceDEwXFx0XHhmZlx4ODZceGZiIgorICAgIGIiPVx4OWU3XHgxOFx4MWRmdFxcXHhiNVx4MDFceDk1UVx4YzVceDE5XHhiMzhceGUwXHhkNFx4YWFceDA3XHhjM1x4N2ZceGQ4IgorICAgIGIiXHhhMlx4MDA+LVx4ZDNceDhlXHhhMSNceGZhXHg4M0FyQW1ceGRiSn5ceDkzXHhhM0JceDgyXHhlMFx4YzdceGNjKFx4MDhgIgorICAgIGIiV0tceGFkXHgxYlx4OTRrYWpceDA0IFx4ZGVceGZjXHhlMVx4ZWRceGIwXHg4Mlx4OTFceGVmU1x4ODQlXHg4Nlx4ZmJpIgorICAgIGIiXHg5OVhceGYxQlx4ZTdceDkwO0VceGZkZVx4OThceGRhXHhjYVx4ZDZUXHhiNGJnXHhhNFxuXHg5YWpceGQxXHg4M1x4OWVdIgorICAgIGIiXCJceDdmTVx4YjVceDBmclx4ZDJcXFx4YTVqflBceDEwR0hceGJmTipaXHgxMC5ceDgxXHRwRVx4OGFceDA4XHhiZTFceGJkIgorICAgIGIiXHhjZFx4YTlceGUxXHg4ZFx4MWZceDA0XHhmOVx4MGVIXHhiOVx4YWVceGQ2XHhjM1x4YzFceGE1XHhhOVx4OTVQXHhkY34iCisgICAgYiJceGZmXHgwMVx4OTMwXHhhOVx4MDRceGY2XHgwM1x4ZmVceGI1SktceGMzXVx4ZGQ5XHhiMVx4ZDNceGQ3Rlx4ZjVceGQxIgorICAgIGIiXHgxZVx4YTBceDFjX1x4ZWRbXHgwY1x4YWVceGQ0XHg4Ylx4OTQ2XHhlYlx4YmZceGJiXHhlMyRrU3tceGI1XHg4MCxmOlNqIgorICAgIGIiXHgwZlx4MDh6XHgxY1x4ZjVceGU4XHhlNlx4YWVceDk4XHhiMFF+clx4MGZceGIwXHgwNT9ceGI2XHg5MFx4MTlceDAyJiIKKyAgICBiIlx4Y2JceDgwXHRceGM0XHhlYVx4OWN8eFx4Y2VceDEwXHg5Y1x4YzV8XHhjYmRoaCtceDBjJ1x4YzVceDgxXHhjMzNceGI1IgorICAgIGIiXHgxNHFceGQ2XHhjNVx4ZTNgWiNceGRjXHg4YVx4YWJceGRkXHhlYVx4MDhceGMySVx4ZTdceDAybHtceGVjXHgxOTZceDA2IgorICAgIGIiXHg5MVx4OGRceGRjXHhkNVx4YjN4XHhlMWh6JVx4ZDFceGY4XHhhNVx4ZGRceDk4IVx4OGNceDFjXHhjMVx4MTdSVWFceGJiIgorICAgIGIiXHg5NVx4MGZceGU0WFx4ZWExXHgwY1x4ZjE9Ulx4YmVceGM2MFx4ZTNceGE0XHg5YVx4OTBiZFx4OTckXUJceDAxXHhkZCIKKyAgICBiIlx4MWZceGUzaDJjXHgxZVx4YTBMYDRceGM2eFx4YTNaXHg4YVxyXHgxNF1UXlx4ZDhceDg5XHgxYlx4OTJccjtceGVkWSIKKyAgICBiIlx4MGNceGVmXHg4ZDl6XHhmM29ceGI2KWZceGE5XSRuXHJwXHg5M1x4ZDBceDEwXHhhNFx4MDhceGI4XHhiMlx4OGJceGI2IgorICAgIGIiXHg4Zlx4ODBceGFlO1x4ZGNRXHhmMVx4ZmFceDlhXHgwNlx4OGVceGE1XHgwZVx4OGNLXHg5YyBAXHhhYTpVY1hcbiFceGM2IgorICAgIGIiXHgwMlx4MTJceGNiXHgxYlwiPVx4MTYuXHgxZlx4MTc2XHhmMmc9XHhlMVduXHhlOVx4ZTFceGQ0XHhmMU9ceGFkXHgxNSIKKyAgICBiIlx4ODZceGU5XHhhM1RceGFmXHhhOVx4ZDdEXHhiNVx4ZDFXM3BudFx4MTFceGM3Vk9qXHhiN01ceGM0aVx4YTFceGYxJDMiCisgICAgYiJceGJiXHhkY1x4OGFmXHhiMFx4YzVZXHJceGQxXHhmYlx4ZjJceGU3S1x4ZTZceGM1aHdPXHhmZVx4OGMyXiZceDA3XHhkNSIKKyAgICBiIlx4MWZWXHgxOVx4ZmRcclx4MTRceGQyaT15Wlx4ZTZvXHhhZlx4YzZceGI2XHg5Mlx4OWRceGM0XHJceGIzXHhhZndceGFjJSIKKyAgICBiIlx4Y2ZjXHgxYVx4ZjFgXVx4ZjJceDFhXHg5ZVx4ODA4XHhlZG1ceGVkUVx4YjJceGZlXHhlNGhgW3FceGFlXHhlMFx4MGYiCisgICAgYiJceGJhMGdceGI2XCJOXHhjM1x4ZmJceGNmUlx4MTFceGM1XHgxOCkoXHhjNDBcXFx4YTNceDAyXHhkOUchXHhjZVx4MWIiCisgICAgYiJceGMxXHg5NnhceGI1XHhjOHpceDFmXHgwMVx4YjRceGFmXHhkZVx4YzJceGNkXHgwN1x4ZTdIXHhiM3lceGE4TVxuXFxBXHQiCisgICAgYiJhclx4ZGRNXHg4Ylx4OWFceGVhXHg4NFx4OWIhXHhmMVx4OGRceGIxXHhmMX5ceDFlXHJceGE1SFx4YmFceGYxXHg4NG8iCisgICAgYiJceGRhXHg4N1x4MDFoXHhlOVx4YTJceGJlXHhiZXFOXHg5ZFx4ODRceDBiIVdHXHhkYVx4YTFceGE1QVx4YjdceGM3YGoiCisgICAgYiJceDE1XHhmMlx4ZTlceGRkP1x4MDE1Qlx4ZDJ+RVx4MDZceDExXHhlMFx4OTEhXHgwNV5ceDgwXHhkZFx4YTh5XHgxNX0iCisgICAgYiJceGExKVx4YjEpXHg4MVx4MThceGY0XHhmNFx4ZjhceGMwXHhlZkRceGUzXHhkYjJmXHgxZVx4MTJceGFidVx4YzlceDk3IgorICAgIGIiXHhjZFx4MWVceGE3XHgwY1x4MDJ4NF82XHgwM1x4YzQkdFx4ZjM5XHg5NFx4MWQ9XHhjYlx4YmZ2XFxceGY1XHhhM1x4MWQiCisgICAgYiJceDlkOGprXHg5NVx4MTMpZmZceGY5blx4YzRceGE5XHhlM1x4MDFceGI4XHhkYVx4ZmJceGFiXHhkZk1ceDk5XHhmYlx4MDUiCisgICAgYiJceGUwXHhlOVx4YjBJXHhmNEVceGFiXHhlMlx4MTVceGEzXHgwMzVceGU3XHhkZVRceGVlXHg4MnBceGI0XHg4OFx4ZDMiCisgICAgYiJceDg5M1x4OWMvXHhjMFx4ZDZceDhmb3U7XHhmNlx4OTVQUlx4YTlceGIyXHhjMVx4ZWZGalx4ZTJceGE3JFx4ZjdoXHhmMSIKKyAgICBiIlx4ZGZLKFx4YzljXHhiYTdceGU4XHhlMylceGRkXHhiMixceDgzXHhmYlx4ODRceDE4LnlceDE4UWlceDg4XHhmOGBoLSIKKyAgICBiIlx4ZWZceGQ1XHhlZFx4OGNcdFx4ZDhceGMzXlx4MGZceDAwXHhiN1x4ZDBbIVx4YWZNXHg5Ylx4ZDcuXHgwN1x4ZDhceGZiIgorICAgIGIiXHhkOVx4ZTItUytceGFhOCxceGEwXHgwM1x4MWIgXHhlYVx4YThceDAwXHhjM1x4YWJ+XHhkMCRlXHhhNVx4N2ZceGY3IgorICAgIGIiXHg5NVBdXHgxMlx4MTlpXHhkOVx4N2ZvXHgwY1x4ZDhnXlxyRVx4YTVceDgwXHgxOFx4YzVceDAxXHg4MFx4YWVrYFx4ZmZ+IgorICAgIGIiXHhiNnlceGU3K1x4ZTVceDExXkRceGE3XHg4NVx4MThcIiFceGQ2XHhkMlx4YTdceGY0XHgxZVRceGRiXHgwMlx4ZTE1IgorICAgIGIiXHgwMllceGJjXHgxNzRaXHhlN1x4OWNIXHgxY1x4YmZceDBmXHhjNlx4ZTlmXVx4Y2ZceDhjeFx4YmNceGU1XHgxNVx4OTQiCisgICAgYiJceGZjM1x4YmNceGE3VFVIXHhmMVx4ODRceDFiXHhmN1x4YTl5XHhjMDdceDg0XHhmOFhceGQ4XHhlZlx4ZmMgXHgxY1x4ZDgiCisgICAgYiIoIC9ceGYyXHhiN1x4ZWNceGMxXFxceDhjXHhmNlx4OTVceGExXHgwM0pceDgzdlA4XHhlMVx4ZTNceGJiflx4YzI0a0EiCisgICAgYiJceDk4eVx4YTFceGYyUFx4ZTlceDlkXHhjOUpceGY4Tlx4OTlceGI0XHhjZWFPXHhkZVx4MTZceDFlXHhjMlx4MTlceGE3IgorICAgIGIiXHgwM1x4ZDJceGUwXHg4ZjpceDE1XHhmM1x4ODRceDllXHhlZVx4ZTZlXHhiOFx4MDJxXHhjN0FDXHgxZW13XHhmZFx0IgorICAgIGIiXHg5YVx4MWV1XHhjMVx4YTlceGNhQ3dVUFx4MDBceGE1XHhmNzhMNHchXHg5MUwyIFx4ODdceGQwXHhmMlx4MDZceDgxaiIKKyAgICBiIlx4ODA7XHgwM1ZceDA2XHg4N1x4OTJceGNiXHg5MGx2QEVceDhkXHg4ZFx4YTVceGE2XHhlN1pbXHhkZlx4ZDZFXHgwM2A+IgorICAgIGIiXHg4Zlx4ZGVceGExYlpceDg0XHhkMFx4YTlgXHgwNVx4MGV7XHg4MDtceGUzXHhiZWZceDhkXHgxZFx4ZWJrMS5ceGUzIgorICAgIGIiXHhlOU5ceDE1XHhmN1x4ZDQoXHhmYVx4YmJceDE1XHhiZHVceGY3XHg3Zlx4ODZceGFlIVx4MDNMXHgxZFx4YjVceGMxIgorICAgIGIiXHhiOVx4MTFceGRiXHhkMFx4OTNceGU0XHgwMlx4ZTFceGQyXHhjYkJqY19ceGU4fWRceGRiXHhjM1x4YTBZXHhiZVx4YzkvIgorICAgIGIiXHg5NVx4MDFceGEzLFx4ZTZibEBceDAxXHhkYnBceGMyXHhjZVx4MTRceDE2OFx4YzJxXHhlM3VIXHg4OVhceGE0XHhhOSIKKyAgICBiIlx4MTlceDFkXHhjMX1ceDdmT1hceDE5XHg5Zlx4ZGRceGJlXHg4NVx4ODNceGZmXHg5Nlx4MWVlXHg4Mk9gQ0Y9S1x4ZWIkSSIKKyAgICBiIlx4MTdfXHhlZlhceDhiSid2XHhkZVx4MWYrXHhkOS52XHhmOFR2XHgxN1x4ZjJceDlmNVx4MTlceGUxXHhiOVx4OTFceGE4UyIKKyAgICBiIlx4ODZceGJkXHgxYVwiKFx4YTV4XHg4ZENceDAzWFx4ODFceDkxXHhhOFx4MTFceGM0cFNceDEzXHhiY1x4ZjInSlx4YWUhIgorICAgIGIiXHhlZlx4ZWZceDg0R1x0XHg4ZFx4YzRceDEwXHgxMzJceDAwb1NceDllXHhlMFx4ZTRkXHg4Zlx4Yjh5XHhhY1x4YTZceDlmIgorICAgIGIiLFx4YjhmXHg4N1xyXHhkZlx4OWVFXHgwZlx4ZTFceGQwXFxMXHgwMFx4YjJceGUxaFx4ODRceGVmfVx4OThceGE4XHgxMSIKKyAgICBiIlx4Y2NXI1xcXHg4M1x4N2ZvXHhiYnpceDhmXHgwMCIKKykKKworRklMVEVSU19SQVdfMyA9IFt7ImlkIjogbHptYS5GSUxURVJfSUE2NCwgInN0YXJ0X29mZnNldCI6IDB4MTAwfSwKKyAgICAgICAgICAgICAgICAgeyJpZCI6IGx6bWEuRklMVEVSX0xaTUEyfV0KK0NPTVBSRVNTRURfUkFXXzMgPSAoCisgICAgYiJceGUwXHgwN1x4ODBceDAzXHhkZl1ceDAwXHgwNVx4MTRceDA3YlhceDE5XHhjZFx4ZGRuXHg5OFx4MTVceGU0XHhiNFx4OWQiCisgICAgYiJvXHgxZFx4YzRceGU1XG5ceDAzXHhjYzJoXHhjN1xcXHg4Nlx4ZmZceGY4XHhlMlx4ZmNceGU3XHhkOVx4ZmU2XHhiOCgiCisgICAgYiJceGE4d2RceGMyXCJ1Lm5ceDFlXHhjM1x4ZjJceDhlXHg4ZFx4OGZceDAyXHgxNy9ceGE2PVx4ZjBceGEyXHhkZi9NXHg4OSIKKyAgICBiIlx4YmVceGRlXHhhN1x4MWN6XHgxOC1dXHhkNVx4ZWZceDEzXHg4ZnJaXHgxNVx4ODBceDhjXHhmOFx4OGRvXHhmYVx4MTIiCisgICAgYiJceDliI3ovXHhlZlx4ZjBceGZhRlx4MDFceDgyXHhhM01ceDhlXHhhMXRceGNhNiBCRiRceGU1UVx4YTRceDk4XHhlZVx4ZGUiCisgICAgYiJsXHhlOFx4N2ZceGYwXHg5ZCxiblx4MGJceDEzXHhkNFx4YThceDgxXHhlNE5ceGM4XHg4Nlx4MTUzXHhmNXgyXHhhMk8iCisgICAgYiJceDEzQFFceGExXHgwMC9ceGE1XHhkME9ceDk3XHhkY29ceGFlXHhmN3pceGM0XHhjZFNceGI2dDxceDE2XHhmMlx4OWNJIyIKKyAgICBiIlx4ODl1ZFx4YzY2WVx4ZDlceGVlXHhlNlx4Y2VceDEyXVx4ZTVceGYwXHhhYVx4OTYtUGVceGFkZTpceDA0XHRceDFiXHhmNyIKKyAgICBiIlx4ZGI3XG5ceDg2XHgxZnBceGM4Slx4YmFceGY0XHhmMFZceGE5XHhkY1x4ZjBceDAyJUdceGY5XHhkZj0/XHgxNVx4MWIiCisgICAgYiJceGUxKFx4Y2VceDgyPVx4ZDZJXHhhYzNceDEyXHgwY1JceGI3XHhhZVxyXHhiMWlceDAzXHg5NVx4MDFceGJkXHhiZVx4ZmEiCisgICAgYiJceDAyc1x4MDFQXHg5ZFx4OTZYXHhiMTJqXHhjOExceGE4XHg4NGJceGY2XHhjM1x4ZDRjLUhceDkzb0psXHhkMGlRXHhlNGsiCisgICAgYiJceDg0XHgwYlx4YzFceGI3XHhiY1x4YjFceDE3XHg4OFx4YjFceGNhP0BceGY2XHgwN1x4ZWFceGU2eFx4ZjFIMTJQXHgwZiIKKyAgICBiIlx4OGFceGM5XHhlYXV3XHhlM1x4YmVceGFhaVx4YTlXXHhkMFx4ODBceGNkI2NiNVx4OTlceGQ4XVx4YTlkXHgwY1x4YmQiCisgICAgYiJceGEyXHhkY1dsXHhlZFVHXHhiZlx4ODl5Rlx4Zjc3XHg4MXZceGJkNVx4OThceGJlaDhceDE4V1x4MDhceGYwXHgxYlx4OTkiCisgICAgYiI1Olx4MWE/ckRceDk2XHhhMVx4MDRceDBmXHhhZVx4YmFceDg1XHhlYlx4OWQ1QFx4ZjVceDgzXHhkMzdceDgzXHg4YWMiCisgICAgYiJceDA2XHhkNFx4OTdpXHhjZHRceDE2U1x4ODJrXHhmNktceDAxdnlceDg4XHg5MVx4OWI2VFx4ZGFlXHJceGZkXTprXHhiYWwiCisgICAgYiJceGE5XHhiYmFceGMzNFx4ZjlyXHhlYn1yXHhkYlx4YzdceGRiKlx4OGZceDAzelx4ZGM4aFx4Y2NceGM5XHhkM1x4YmNsIgorICAgIGIiXHhhNS1ceGNiXHhlYUtceGEyXHhjNVx4MTVceGMwXHhlM1x4YzFceDg2Wlx4ZmJceGViTFx4ZTEzXHhjZlx4OWNceGUzIgorICAgIGIiXHgxZFx4YzlceGVkXHhjMlx4MDZceGNjXHhjZSFceDkyXHhlNVx4ZmVceDljXlx4YTU5dyBceDliUFx4YTNQS1x4MDhkIgorICAgIGIiXHhmOVx4ZTJafVx4YTdceGJmXHhlZFx4ZWIlJFx4MGNceDgyXHhiOC9ceGIwXHgwMVx4YTkmLFx4ZjdxaHtRXHg5NilceGYyIgorICAgIGIicVx4OTZceGMzXHg4MFx4YjRceDEyXHhiMFx4YmFceGU2b1x4ZjQhXHhiNFtceGQ0XHg4YXdceDEwXHhmN3RceDBjXHhiMyIKKyAgICBiIlx4ZDlceGQ1XHhjM2BeXHg4MVx4MTE/P1xcXHhhNFx4OTlceDg1Ulx4ZDRceDhlXHg4M1x4YzlceDFlWFx4YmZhXHhmMSIKKyAgICBiIlx4YWNceGIwXHhlYVx4ZWFceGQ3XHhkMFx4YWJceDE4XHhlMlx4ZjJceGVkXHhlMVx4YjdceGM5XHgxOFx4Y2JTXHhlND4iCisgICAgYiJceGM5XHg5NUhceGU4XHhjYlx0XHIlXHhlYlx4YzckLm9ceGYxXHhmM1JceDE3XHgxZGJceGJiXHhkOFVceGE1Xlx4Y2NTIgorICAgIGIiXHgxNlx4MDFceDg3XHhmMy9ceDkzXHhkMVx4ZjB2XHhjMHJceGQ3XHhjY1x4YTJHa3pceGNhXHg4MFx4MGVceGZkXHhkMCIKKyAgICBiIlx4OGJceGJiXHhkMkl4XHhiM1x4MWV5XHhjYS0wXHhlM3peXHhkNlx4ZDZceDhmX1x4ZjFceDlkUFx4OWZpXHhhN1x4ZDEiCisgICAgYiJceGU4XHg5MFx4ODRceGRjXHhiZlx4Y2RreVx4OGVceGRjXHg4MVx4N2ZceGEzXHhiMitceGJmXHgwNFx4ZWZceGQ4XFwiCisgICAgYiJceGM0XHhkZlx4ZTFceGIwXHgwMVx4ZTlceDkzXHhlM1lceGYxXHgxZFlceGU4aFx4ODFceGNmXHhmMXdceGNjXHhiNFx4ZWYiCisgICAgYiIgXHg4YnxceDA0XHhlYVx4ODNlalx4YmVceDFmXHhkNHpceDljYFx4ZDNceDFhXHg5MkFceDA2XHhlNVx4OGZceGE5XHgxMyIKKyAgICBiIlx0XHg5ZT1ceGZhXHgxY1x4ZTVfXHg5ZiV2XHgxYm9ceDExWk9ceGQ4XHhmNFx0XHhkZE1ceDE2LVx4MDRceGZjXHgxODxcIiIKKyAgICBiIkNNXHhkZGd+Ylx4ZjZceGVmXHg4ZVx4MGNceGQwXHhkZXxceGEwJ1x4OGFceDBjXHhkNnhceGFlIUpceGE2Rlx4ODhceDE1dSIKKyAgICBiIlx4MDA4XHgxN1x4YmM3eVx4YjNceGQ4dVx4YWNfXHg4NVx4OGRceGU3XHhjMUBceDljXHhlY3FjXHhhMyNceGFkXHhmMSIKKyAgICBiIlx4OTM1XHhiNSlfXHJceGVjM11ceDBmb101XHhkMG15XHgwN1x4OWJceGVlXHg4MVx4YjVceDBmXHhjZksrXHgwMFx4YzAiCisgICAgYiJceGU0Ylx4MTBceGU0XHgwY1x4MWEgXHg5Ylx4ZTBceDk3dFx4ZjZceGExXHg5ZVx4ODUwXHhiYVx4MGNceDlhXHg4ZFx4YzgiCisgICAgYiJceDhmXHgwN1x4ZDdceGFlXHhjOFx4ZjkraVx4ZGNceGI5a1x4YjA+Zlx4MTlceGI4XHJceGE4XHhmOFx4MWYkXHhhNXtwIgorICAgIGIiXHhjNlx4ODgwXHhjZVx4ZGJceGNmXHhjYV9ceDg2XHhhY1x4ODhoNlx4OGJaJSdceGQwXG5ceGJmXHgwZlx4OWNcIlx4YmEiCisgICAgYiJceGU1XHg4Nlx4OWZceDBmN1g9bU5YW1x4Y2NceDE5RlVceGM5XHg4NjBceGJjXHg5MGErKiBceGFlXyRceDAzXHgxZVx4ZDMiCisgICAgYiJceGNkX1x4YTBceDljXHhkZVx4YWY0NnFceGE1XHhjOVx4OTJceGQ3XHhjYVx4ZTNgXHg5ZFx4ODV9XHhiNFx4ZmZceGIzIgorICAgIGIiXHg4M1x4ZmJceGI2XHhjYVx4YWVgXHgwYndceDdmXHhmY1x4ZDhceGFjVmVceDE5XHhjOFx4MTdceDBiWlx4YWRceDg4IgorICAgIGIiXHhlYiNceDk3XHgwM1x4MTNceGIxZFx4MGZ7XHgwY1x4MDR3XHgwN1xyXHg5N1x4YmRceGQ2XHhjMVx4YzNCOlx4OTVceDA4IgorICAgIGIiXlx4MTBWXHhhZWFIXHgwMlx4ZDlceGUzXG5cXFx4MDFYXHhmNlx4OWNceDhhXHgwNnUjJVx4YmUqXHhhMVx4MTh2XHg4NSIKKyAgICBiIlx4ZWMhXHQ0XHgwMFx4MDBceDAwIgorKQorCitGSUxURVJTX1JBV180ID0gW3siaWQiOiBsem1hLkZJTFRFUl9ERUxUQSwgImRpc3QiOiA0fSwKKyAgICAgICAgICAgICAgICAgeyJpZCI6IGx6bWEuRklMVEVSX1g4NiwgInN0YXJ0X29mZnNldCI6IDB4NDB9LAorICAgICAgICAgICAgICAgICB7ImlkIjogbHptYS5GSUxURVJfTFpNQTIsICJwcmVzZXQiOiA0LCAibGMiOiAyfV0KK0NPTVBSRVNTRURfUkFXXzQgPSAoCisgICAgYiJceGUwXHgwN1x4ODBceDA2XHgwZVxcXHgwMFx4MDVceDE0XHgwN2JXXHhhYWhceGRkXHgxMFx4ZGMnXHhkNlx4OTAsXHhjNnYiCisgICAgYiJKcSBceDE0bFx4YjdceDgzeEJceDBiXHg5N2Y9JmZ4XHhiYVxuPlRuXHhiZlx4OGZceGZiXHgxZEZceGNhXHhjM3ZfXHhjYT8iCisgICAgYiJceGZiVjxceDkyI1x4ZDR3XHhhNlx4OGFceGViXHhmNlx4MDNceGMwXHgwMVx4OTRceGQ4XHg5ZVx4MTNceDEyXHg5OFx4ZDEiCisgICAgYiIqXHhmYV1jXHhlOFx4MWV+XHhhZlx4YjVdRWdceGZiXHg5ZVx4MDFcIjhceGIyXHg5MFx4MDY9flx4ZTlceDkxV1x4Y2QiCisgICAgYiJceGVjRFx4MTJceGM3XHhmYVx4ZTFceDkxXHgwNlx4YzdceDk5XHhiOVx4ZTNceDkwMVx4ODdceDE5dVx4MGZceDg2OVx4ZmYiCisgICAgYiJceGMxXHhiMGh3fFx4YjBceGRjbFx4Y2NrXHhiMTZvN1x4ODVceGVle1lfYlx4YmZceGJjJFx4ZjM9XHg4ZFx4OGJ3XHhlNVoiCisgICAgYiJceDA4QFx4YzRrbUVceGFkXHhmYlx4ZjYqXHhkOFx4YWRceGExXHhmYlx4YzV7XHhkZWosKVx4MWVtQlx4MWY8XHhhZWNhIgorICAgIGIiXHg4MChceGVlXHgwNyBceGRmXHhlOVx4ZjhceGViXHgwZS1ceDk3XHg4Nlx4OTBjXHhmOVx4ZWEnQlx4ZjdgXHhkN1x4YjAiCisgICAgYiJceDkyXHhiZFx4YTBceDgyXVx4YmRceDBlXHgwZUJceDE5XHhkY1x4OTZceGM2XHgxOVx4ZDg2RFx4ZjBceGQ1XHg4MzEiCisgICAgYiJceDAzXHhiN1x4MWNceGY3JjVceDFhXHg4ZiBQWiZqXHhmOFx4OThceDFib1x4Y2NceDg2XHg5YlNceGQzXHhhNVx4Y2R1IgorICAgIGIiXHhmOSRceGNjXHg5N29ceGU1Vn5ceGZiXHg5N1x4YjVceDBiXHgxN1x4OWNceGZkeFdceDEwXHhmZXA0XHg4MFx4ZGFIRFkiCisgICAgYiJceGZhKVx4ZmV0XHhiNVwiXHhkNFx4ZDNGXHg4MVx4ZjRceDEzXHgxZlx4ZWNceGRmXHhhNVx4MTNceGZjXCJceDkxeFx4YjciCisgICAgYiJceDk5XHhjZVx4YzhceDkyXG5ceGViW1x4MTBsKllceGQ4XHhiMUBceDA2XHhjOG9ceDhkN3JceGVidVx4ZmQ1XHgwZVx4N2YiCisgICAgYiJceGYxJFV7XHR9XHgxZlFceGNmeE5ceDlkXHg5ZlhYXHhlOWBceDgzXHhjMVx4MDZceGY0XHg4N3YtZlx4MTFceGRiL1xcIgorICAgIGIiXHgwNlx4ZmZceGQ3KUJceGYzZ1x4MDZceDg4IzJceDFlQjI0NFx4N2Y0cVx0XHhjODkzP21QWFx4OTVceGE2YVx4ZmIpZCIKKyAgICBiIlx4OWJceGZjXHg5OFx4OWFqXHgwNFx4YWVceDliXHg5ZFx4MTl3XHhiYVx4ZjkyXHhmYUFceDExXFxceDE3XHg5N0MzXHhhNCIKKyAgICBiIlx4YmMhXHg4OFx4Y2RvW1x4ZWM6XHgwMzBceDkxLlx4ODVceGUwQFxcNFx4MTZceDEyXHg5ZFx4Y2FKdlx4OTdceGIwNCIKKyAgICBiIlx4YWNrXHhjYmtmXHhhM3NzXHhmY1x4MTZeXHg4Y2VceDg1YVx4YTU9Jlx4ZWNyXHhiM3BceGQxRVx4ZDVceDgweVx4YzciCisgICAgYiJceGRhXHhmNlx4ZmVrXHhiY1RceGJmSFx4ZWVceDE1b1x4YzVceDhjXHg4MzBceGVjXHgxZFx4MDFceGFlXHgwYy1lXFwiCisgICAgYiJceDkxXHg5MFx4OTRceGIyXHhmOFx4ODhceDkxXHhlOFx4MGJceGFlXHhhNz5ceDk4XHhmNlx4OWNrXHhkMlx4YzZceDA4IgorICAgIGIiXHhlNlx4YWJcdFx4OThceGYyIVx4YTBceDhjXlx4YWNxQVx4OTk8XHgxY0VHXHg5N1x4YzhceGYxXHhiNlx4YjlceDgyIgorICAgIGIiXHg4ZFx4ZjdceDA4c1x4OThhXHhmZlx4ZTNceGNjXHg5Mlx4MGVceGQyXHhiNlVceGQ3XHhkOVx4ODZceDdmYVx4ZTVceDFjIgorICAgIGIiXHg4ZFRHQFx0XHgxZVx4MGU3Klx4ZmNceGRlXHhiY102Tlx4ZjdceGYxXHg4NFx4OWVceDlmXHhjZlx4ZTlceDFlXHhiNSciCisgICAgYiJceGY0PFx4ZGZceDk5c3FceGQwXHg5ZFx4YmRceDk5XHgwYlx4YjQlcDRceGJme1x4YmJceDhhXHhkMlx4MGJceGJjPU0iCisgICAgYiJceDk0SDpceGY1XHhhOFx4ZDZceGE0XHhjOTBceGMyRFx4YjlceGQzXHhhOFx4YjBTXHg4NyBgXHhhMlx4ZWJceGYzV1x4Y2UiCisgICAgYiIgN1x4ZjlOI1xyXHhlNlx4YmVcdFx4OWRceGU3XHg4MTFceGY5XHgxMFx4YzFceGMyXHgxNFx4ZjZceGZjXHhjYmFceGI3IgorICAgIGIiXHhiMVx4N2ZceDk1bFx4ZTRcdGpBXHhlYzpceDEwXHhlNVx4ZmVceGMyXFw9RFx4ZTJceDBjXHgwYjNdXHhmN1x4YzFceGY3IgorICAgIGIiXHhiY2VaXHhiMUFceGVhXHgxNlx4ZTVceGZkZGdGUVx4ZWRceGFmXHgwNFx4YTNceGQzXHhmOFx4YTJxXHgxOUJceGQ0ciIKKyAgICBiIlx4YzVceDBjXHg5YVx4MTRceDk0XHhlYVx4OTFceGM0b1x4ZTRceGJiXHhiNFx4OTlceGY0QFx4ZDFceGU2XHgwY1x4ZTMiCisgICAgYiJceGM2ZFx4YTBRXG5ceGYyL1x4ZDhceGI4UzVceDhhXHgxODpceGI1Z1x4YWNceDk1RFx4Y2VceDE3XHgwN1x4ZDR6XHhkYSIKKyAgICBiIlx4OTBceGU2NVx4MDdceDE5SCFcdFx4ZmR1XHgxNlx4OGVceDBlUlx4MTlceGY0XHg4Y2xceDBjXHhmOVFceGYxXHg4MCIKKyAgICBiIlx4ZTNceGJmXHhkN09ceGY4XHg4Y1x4MThceDBiXHg5Y1x4ZjFceDFmYlx4ZTFcdFJceGIyXHhmMVx4ZTFBXHhlYSBceGNmLSIKKyAgICBiIklHRVx4ZjFceDE0XHg5OCRceDgzXHgxNVx4YzlceGQ4alx4YmZceDE5XHgwZlx4ZDVceGQxXHhhYVx4YjNceGYzXHhhNUkycyIKKyAgICBiIlx4OGRceDE0NVx4Y2FceGQ1XHhkOTNceDljXHhiOEQwXHhlNlx4YWElXHhkMFx4YzBQfUpPXmhceDhlXHgwOFx4YWRsVi4iCisgICAgYiJceDE4XHg4OFx4MTNceDA1b1x4YjBceDA3XHhlYXdceGUwXHhiNlx4YTRceGQ1Klx4ZTRyXHhlZlx4MDdHK1x4YzFceGJlaVsiCisgICAgYiJ3XHhlOFx4YWJAX1x4ZWZceDE1eVx4ZTVceDEyXHhjOVdceDFiLlx4YWRceDg1LVx4YzJceGY3XHhlM21VNmdceDhlU0EiCisgICAgYiJceDAxKFx4ZDNceGRiXHgxNlx4MTM9XHhkZVx4OTJceGY5LERceGI4XHg4YVx4YjJceGI0XHhjOVx4YzNceGVmbkVceGU4XFwiCisgICAgYiJceGE2XHhlMllceGQyXHhjZlx4Y2JceDhjXHhiNlx4ZDVceGU5XHgxZFx4MWVceDlhXHg4Yn5ceGUyXHhhNlxyRVx4ODR1ViIKKyAgICBiIlx4ZWRceGM2XHg5OVx4ZGRtPFx4MTBbXHgwZnVceDFmXHhjMVx4MWQxXG5ceGNmd1x4YjIlIVx4ZjBbXHhjZVx4ODdceDgzQiIKKyAgICBiIlx4MDhceGFhLFx4MDglZFx4Y2VmXHg5NFwiXHhkOWcuXHhjODNceGNiWFkrNFx4ZWNceDg1cUFcblx4MWQ9OVx4ZjAqXHhiMSIKKyAgICBiIlx4MWYvXHhmM3NceGQ2MWJceDdmQFx4ZmJceDlkXHhlM0ZRXFxceGJkXHg4Mlx4MWVceDAwXHhmM1x4Y2VceGQzXHhlMSIKKyAgICBiIlx4Y2EsRVx4ZmQ3W1x4YWJceGI2XHhiN1x4YWMhbUF9XHhiZFx4OWQzUjVceDljRlx4YWJIXHhlYlx4OTIpY2NceDEzXHhkMCIKKyAgICBiIlx4YmRceGVlXHhlOW57XHgxZElKQlx4YTVceGViXHgxMVx4ZThgdyZgXHg4Yn1AT3hlXHRceDhhXHgwN1x4MDJceDk1XHhmMiIKKyAgICBiIlx4ZWRceGRhfFx4YjFlXHhiZVx4YWFceGJiZ1x4MTlAXHhlMVlceDg3OFx4ODRceDBmXHg4Y1x4ZTNceGM5OFx4ZjJceDllIgorICAgIGIiXHhkNU5ceGI1Slx4ZWZceGFiIVx4ZTJceDhkcVx4ZTFceGU1cVx4YzVceGVlXHgxMVdceGI3XHhlNGsqXHgwMjdceGEwIgorICAgIGIiXHhhM0pceGY0XHhkOG1ceGQwcVx4OTRceGNiXHgwN1xuOlx4YjZgLlx4ZTRceDljXHgxNStceGMwKVx4ZGVceDgwWFx4ZDQiCisgICAgYiJceGNmUW1ceDAxXHhjMmNQXHgxY0FceDg1J1x4YzlceGFjXHg4Ylx4ZTZceGIyKVx4ZTZceDg0dFx4MWNceDkyXHhlNFoiCisgICAgYiJceDFjUlx4YjBceDllXHg5Nlx4ZDFceGZiXHgxY1x4YTZceDhiXHhjYmBceDEwXHgxMl1ceGYyZ1JceDliRlRceGUwXHhjOEgiCisgICAgYiJTXHhmYlx4YWM8XHgwNFx4YzdceGMxXHhlOFx4ZWRQXHhmNFx4MTZceGRiXHhjMFx4ZDdlXHhjMlx4MTdKXlx4MWZceGFiIgorICAgIGIiXHhmZltceDA4XHgxOVx4YjRceGY1XHhmYlx4MTlceGI0XHgwNFx4ZTVjfiddXHhjYlx4YzJBXHhlY1x4OTBceGQwXHhlZCIKKyAgICBiIlx4MDYsXHhjNUt7XHg4Nlx4MDNceGIxXHhjZE14XHhkZVFceDhjM1x4ZjlceDhhXHhlYT1ceDg5XHhhYmFceGQyXHhjODlhIgorICAgIGIiXHhkNzJceGYwXHhjM1x4MTlceDhhXHhkZnNceGQ0XHhmZFx4YmJceDgxYlx4ZWFFXCJceGQ4XHhmNGRceDBjRFx4ZjdJSiEiCisgICAgYiJceGU1ZFx4YmJHXHhlOVx4Y2FtXHhhYVx4MGZfclx4OTVceDkxTkJxXHhjYVBceGNlXHhhN1x4YTlceGI1XHgxMFx4OTRlUCEiCisgICAgYiJ8XHg4NTZceGNkXHhiZklpclx4YjhlXHg5YmpQXHg5N3FceGFid1M3XHgxYVx4MGVoTVx4ZTdceGNhXHg4Nj9ceGRlUH15fiIKKyAgICBiIlx4MGZceDk1SVx4ZmNceDEzXHhlMTxRXHgxYlx4ODY4XHgxZFx4MTFceGRmXHg5NFx4ZjRceDgyPnJceGE5a1x4ODhceGNiIgorICAgIGIiXHhmZFx4YzN2XHhlMlx4YjlceDhhXHgwMlx4OGVxXHg5MklceGY4XHhmNlx4ZjFceDAzc1x4OWJceGI4XHhlM1wiXHhlMyIKKyAgICBiIlx4YTlceGE1PkRceGI4XHg5NjtceGU3XHg5Mlx4ZDEzM1x4ZThceGRkJ2VceGM5Llx4ZGM7XHgxN1x4MWZceGY1SFx4MTNxIgorICAgIGIiXHhhNFdceDBjXHhkYn5ceDk4XHgwMVx4ZWJceGRmXHhlMzJceDEzXHgwZlx4ZGR4XG42XHhhMFx0XHgxMFx4YjZceGJiIgorICAgIGIiXHhiMFx4YzNceDE4XHhiNjtceDlmaltceGQ5XHhkNVx4YzlceDA2XHg4YVx4ODdceGNkXHhlNVx4ZWVceGZjXHg5Yy0lQCIKKyAgICBiIlx4ZWVceGUwXHhlYlx4ZDJceGUzXHhlOFx4ZmJceGMwXHgxMjJcXFx4YzdceGFmXHhjMlx4YTFPdGhceGIzXHg4Zlx4ODIiCisgICAgYiJceGIzXHgxOFx4YThceDA3XHhkNVx4ZWVfXHhiZVx4ZTBceDFjQVx4MWVfXHJceDlhXHhiMFx4MTdXJlx4YTJEXHg5MVx4OTQiCisgICAgYiJceDFhXHhiMlx4ZWZceGYyXHhkY1x4ODU7WFx4YjAsXHhlYj4tN1NceGU1XHhjYVx4MDcpXHgxZnBceDdmXHhjYVFCTFx4Y2EiCisgICAgYiJceGYzXHhiOWRceGZjXHhiNXN1XHhiMFx4YzhceDk1XHg5MFx4ZWIqKVx4YTB2XHhlNFx4OWF7RldceGY0bFx4ZGVceGNkaiIKKyAgICBiIlx4MDAiCispCisKKworZGVmIHRlc3RfbWFpbigpOgorICAgIHJ1bl91bml0dGVzdCgKKyAgICAgICAgQ29tcHJlc3NvckRlY29tcHJlc3NvclRlc3RDYXNlLAorICAgICAgICBDb21wcmVzc0RlY29tcHJlc3NGdW5jdGlvblRlc3RDYXNlLAorICAgICAgICBGaWxlVGVzdENhc2UsCisgICAgICAgIE9wZW5UZXN0Q2FzZSwKKyAgICAgICAgTWlzY2VsbGFuZW91c1Rlc3RDYXNlLAorICAgICkKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9tYWlsYm94LnB5IGIvTGliL3Rlc3QvdGVzdF9tYWlsYm94LnB5CmluZGV4IDlmMWZkYWQuLjUyZDJjZDYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbWFpbGJveC5weQorKysgYi9MaWIvdGVzdC90ZXN0X21haWxib3gucHkKQEAgLTIyLDYgKzIyLDEwIEBACiAKIGNsYXNzIFRlc3RCYXNlOgogCisgICAgYWxsX21haWxib3hfdHlwZXMgPSAobWFpbGJveC5NZXNzYWdlLCBtYWlsYm94Lk1haWxkaXJNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1haWxib3gubWJveE1lc3NhZ2UsIG1haWxib3guTUhNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1haWxib3guQmFieWxNZXNzYWdlLCBtYWlsYm94Lk1NREZNZXNzYWdlKQorCiAgICAgZGVmIF9jaGVja19zYW1wbGUoc2VsZiwgbXNnKToKICAgICAgICAgIyBJbnNwZWN0IGEgbWFpbGJveC5NZXNzYWdlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBzYW1wbGUgbWVzc2FnZQogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobXNnLCBlbWFpbC5tZXNzYWdlLk1lc3NhZ2UpCkBAIC05MSwxNCArOTUsMTQgQEAKICAgICAgICAgICAgICIiIikKIAogICAgIGRlZiB0ZXN0X2FkZF9pbnZhbGlkXzhiaXRfYnl0ZXNfaGVhZGVyKHNlbGYpOgotICAgICAgICBrZXkgPSBzZWxmLl9ib3guYWRkKHNlbGYuX25vbmFzY2lpX21zZy5lbmNvZGUoJ2xhdGluMScpKQorICAgICAgICBrZXkgPSBzZWxmLl9ib3guYWRkKHNlbGYuX25vbmFzY2lpX21zZy5lbmNvZGUoJ2xhdGluLTEnKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5fYm94KSwgMSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9ib3guZ2V0X2J5dGVzKGtleSksCi0gICAgICAgICAgICBzZWxmLl9ub25hc2NpaV9tc2cuZW5jb2RlKCdsYXRpbjEnKSkKKyAgICAgICAgICAgIHNlbGYuX25vbmFzY2lpX21zZy5lbmNvZGUoJ2xhdGluLTEnKSkKIAogICAgIGRlZiB0ZXN0X2ludmFsaWRfbm9uYXNjaWlfaGVhZGVyX2FzX3N0cmluZyhzZWxmKToKICAgICAgICAgc3ViaiA9IHNlbGYuX25vbmFzY2lpX21zZy5zcGxpdGxpbmVzKClbMV0KLSAgICAgICAga2V5ID0gc2VsZi5fYm94LmFkZChzdWJqLmVuY29kZSgnbGF0aW4xJykpCisgICAgICAgIGtleSA9IHNlbGYuX2JveC5hZGQoc3Viai5lbmNvZGUoJ2xhdGluLTEnKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9ib3guZ2V0X3N0cmluZyhrZXkpLAogICAgICAgICAgICAgJ1N1YmplY3Q6ID0/dW5rbm93bi04Yml0P2I/Um1Gc2FXNWhjSFRoY2lCbzRYcG9iM3B6ZXVGc2JPMTA0WE56JwogICAgICAgICAgICAgJ1lXd3VJRTNoY2lCeVpXNWtaV3gwNld3Lz89XG5cbicpCkBAIC05MzYsOCArOTQwLDcgQEAKICAgICAgICAgIyB0aGUgbXRpbWUgYW5kIHNob3VsZCBjYXVzZSBhIHJlLXJlYWQuIE5vdGUgdGhhdCAic2xlZXAKICAgICAgICAgIyBlbXVsYXRpb24iIGlzIHN0aWxsIGluIGVmZmVjdCwgYXMgc2tld2ZhY3RvciBpcyAtMy4KICAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4oc2VsZi5fcGF0aCwgJ2N1cicsICdzdHJheS1maWxlJykKLSAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICd3JykKLSAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIHN1cHBvcnQuY3JlYXRlX2VtcHR5X2ZpbGUoZmlsZW5hbWUpCiAgICAgICAgIG9zLnVubGluayhmaWxlbmFtZSkKICAgICAgICAgc2VsZi5fYm94Ll9yZWZyZXNoKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlZnJlc2hlZCgpKQpAQCAtMTM4MCw2ICsxMzgzLDE0IEBACiAgICAgICAgICMgSW5pdGlhbGl6ZSB3aXRoIGludmFsaWQgYXJndW1lbnQKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IHNlbGYuX2ZhY3Rvcnkob2JqZWN0KCkpKQogCisgICAgZGVmIHRlc3RfYWxsX2VNTV9hdHRyaWJ1ZXNfZXhpc3Qoc2VsZik6CisgICAgICAgICMgSXNzdWUgMTI1MzcKKyAgICAgICAgZU1NID0gZW1haWwubWVzc2FnZV9mcm9tX3N0cmluZyhfc2FtcGxlX21lc3NhZ2UpCisgICAgICAgIG1zZyA9IHNlbGYuX2ZhY3RvcnkoX3NhbXBsZV9tZXNzYWdlKQorICAgICAgICBmb3IgYXR0ciBpbiBlTU0uX19kaWN0X186CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoYXR0ciBpbiBtc2cuX19kaWN0X18sCisgICAgICAgICAgICAgICAgJ3t9IGF0dHJpYnV0ZSBkb2VzIG5vdCBleGlzdCcuZm9ybWF0KGF0dHIpKQorCiAgICAgZGVmIHRlc3RfYmVjb21lX21lc3NhZ2Uoc2VsZik6CiAgICAgICAgICMgVGFrZSBvbiB0aGUgc3RhdGUgb2YgYW5vdGhlciBtZXNzYWdlCiAgICAgICAgIGVNTSA9IGVtYWlsLm1lc3NhZ2VfZnJvbV9zdHJpbmcoX3NhbXBsZV9tZXNzYWdlKQpAQCAtMTM5MSw5ICsxNDAyLDcgQEAKICAgICAgICAgIyBDb3B5IHNlbGYncyBmb3JtYXQtc3BlY2lmaWMgZGF0YSB0byBvdGhlciBtZXNzYWdlIGZvcm1hdHMuCiAgICAgICAgICMgVGhpcyB0ZXN0IGlzIHN1cGVyZmljaWFsOyBiZXR0ZXIgb25lcyBhcmUgaW4gVGVzdE1lc3NhZ2VDb252ZXJzaW9uLgogICAgICAgICBtc2cgPSBzZWxmLl9mYWN0b3J5KCkKLSAgICAgICAgZm9yIGNsYXNzXyBpbiAobWFpbGJveC5NZXNzYWdlLCBtYWlsYm94Lk1haWxkaXJNZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICBtYWlsYm94Lm1ib3hNZXNzYWdlLCBtYWlsYm94Lk1ITWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgbWFpbGJveC5CYWJ5bE1lc3NhZ2UsIG1haWxib3guTU1ERk1lc3NhZ2UpOgorICAgICAgICBmb3IgY2xhc3NfIGluIHNlbGYuYWxsX21haWxib3hfdHlwZXM6CiAgICAgICAgICAgICBvdGhlcl9tc2cgPSBjbGFzc18oKQogICAgICAgICAgICAgbXNnLl9leHBsYWluX3RvKG90aGVyX21zZykKICAgICAgICAgb3RoZXJfbXNnID0gZW1haWwubWVzc2FnZS5NZXNzYWdlKCkKQEAgLTE2MjUsMzcgKzE2MzQsNDQgQEAKIAogICAgIGRlZiB0ZXN0X3BsYWluX3RvX3goc2VsZik6CiAgICAgICAgICMgQ29udmVydCBNZXNzYWdlIHRvIGFsbCBmb3JtYXRzCi0gICAgICAgIGZvciBjbGFzc18gaW4gKG1haWxib3guTWVzc2FnZSwgbWFpbGJveC5NYWlsZGlyTWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgbWFpbGJveC5tYm94TWVzc2FnZSwgbWFpbGJveC5NSE1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgIG1haWxib3guQmFieWxNZXNzYWdlLCBtYWlsYm94Lk1NREZNZXNzYWdlKToKKyAgICAgICAgZm9yIGNsYXNzXyBpbiBzZWxmLmFsbF9tYWlsYm94X3R5cGVzOgogICAgICAgICAgICAgbXNnX3BsYWluID0gbWFpbGJveC5NZXNzYWdlKF9zYW1wbGVfbWVzc2FnZSkKICAgICAgICAgICAgIG1zZyA9IGNsYXNzXyhtc2dfcGxhaW4pCiAgICAgICAgICAgICBzZWxmLl9jaGVja19zYW1wbGUobXNnKQogCiAgICAgZGVmIHRlc3RfeF90b19wbGFpbihzZWxmKToKICAgICAgICAgIyBDb252ZXJ0IGFsbCBmb3JtYXRzIHRvIE1lc3NhZ2UKLSAgICAgICAgZm9yIGNsYXNzXyBpbiAobWFpbGJveC5NZXNzYWdlLCBtYWlsYm94Lk1haWxkaXJNZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICBtYWlsYm94Lm1ib3hNZXNzYWdlLCBtYWlsYm94Lk1ITWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgbWFpbGJveC5CYWJ5bE1lc3NhZ2UsIG1haWxib3guTU1ERk1lc3NhZ2UpOgorICAgICAgICBmb3IgY2xhc3NfIGluIHNlbGYuYWxsX21haWxib3hfdHlwZXM6CiAgICAgICAgICAgICBtc2cgPSBjbGFzc18oX3NhbXBsZV9tZXNzYWdlKQogICAgICAgICAgICAgbXNnX3BsYWluID0gbWFpbGJveC5NZXNzYWdlKG1zZykKICAgICAgICAgICAgIHNlbGYuX2NoZWNrX3NhbXBsZShtc2dfcGxhaW4pCiAKICAgICBkZWYgdGVzdF94X2Zyb21fYnl0ZXMoc2VsZik6CiAgICAgICAgICMgQ29udmVydCBhbGwgZm9ybWF0cyB0byBNZXNzYWdlCi0gICAgICAgIGZvciBjbGFzc18gaW4gKG1haWxib3guTWVzc2FnZSwgbWFpbGJveC5NYWlsZGlyTWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgbWFpbGJveC5tYm94TWVzc2FnZSwgbWFpbGJveC5NSE1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgIG1haWxib3guQmFieWxNZXNzYWdlLCBtYWlsYm94Lk1NREZNZXNzYWdlKToKKyAgICAgICAgZm9yIGNsYXNzXyBpbiBzZWxmLmFsbF9tYWlsYm94X3R5cGVzOgogICAgICAgICAgICAgbXNnID0gY2xhc3NfKF9ieXRlc19zYW1wbGVfbWVzc2FnZSkKICAgICAgICAgICAgIHNlbGYuX2NoZWNrX3NhbXBsZShtc2cpCiAKICAgICBkZWYgdGVzdF94X3RvX2ludmFsaWQoc2VsZik6CiAgICAgICAgICMgQ29udmVydCBhbGwgZm9ybWF0cyB0byBhbiBpbnZhbGlkIGZvcm1hdAotICAgICAgICBmb3IgY2xhc3NfIGluIChtYWlsYm94Lk1lc3NhZ2UsIG1haWxib3guTWFpbGRpck1lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgIG1haWxib3gubWJveE1lc3NhZ2UsIG1haWxib3guTUhNZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICBtYWlsYm94LkJhYnlsTWVzc2FnZSwgbWFpbGJveC5NTURGTWVzc2FnZSk6CisgICAgICAgIGZvciBjbGFzc18gaW4gc2VsZi5hbGxfbWFpbGJveF90eXBlczoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBjbGFzc18oRmFsc2UpKQogCisgICAgZGVmIHRlc3RfdHlwZV9zcGVjaWZpY19hdHRyaWJ1dGVzX3JlbW92ZWRfb25fY29udmVyc2lvbihzZWxmKToKKyAgICAgICAgcmVmZXJlbmNlID0ge2NsYXNzXzogY2xhc3NfKF9zYW1wbGVfbWVzc2FnZSkuX19kaWN0X18KKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBjbGFzc18gaW4gc2VsZi5hbGxfbWFpbGJveF90eXBlc30KKyAgICAgICAgZm9yIGNsYXNzMSBpbiBzZWxmLmFsbF9tYWlsYm94X3R5cGVzOgorICAgICAgICAgICAgZm9yIGNsYXNzMiBpbiBzZWxmLmFsbF9tYWlsYm94X3R5cGVzOgorICAgICAgICAgICAgICAgIGlmIGNsYXNzMSBpcyBjbGFzczI6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgc291cmNlID0gY2xhc3MxKF9zYW1wbGVfbWVzc2FnZSkKKyAgICAgICAgICAgICAgICB0YXJnZXQgPSBjbGFzczIoc291cmNlKQorICAgICAgICAgICAgICAgIHR5cGVfc3BlY2lmaWMgPSBbYSBmb3IgYSBpbiByZWZlcmVuY2VbY2xhc3MxXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhIG5vdCBpbiByZWZlcmVuY2VbY2xhc3MyXV0KKyAgICAgICAgICAgICAgICBmb3IgYXR0ciBpbiB0eXBlX3NwZWNpZmljOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKGF0dHIsIHRhcmdldC5fX2RpY3RfXywKKyAgICAgICAgICAgICAgICAgICAgICAgICJ3aGlsZSBjb252ZXJ0aW5nIHt9IHRvIHt9Ii5mb3JtYXQoY2xhc3MxLCBjbGFzczIpKQorCiAgICAgZGVmIHRlc3RfbWFpbGRpcl90b19tYWlsZGlyKHNlbGYpOgogICAgICAgICAjIENvbnZlcnQgTWFpbGRpck1lc3NhZ2UgdG8gTWFpbGRpck1lc3NhZ2UKICAgICAgICAgbXNnX21haWxkaXIgPSBtYWlsYm94Lk1haWxkaXJNZXNzYWdlKF9zYW1wbGVfbWVzc2FnZSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbWFpbGNhcC5weSBiL0xpYi90ZXN0L3Rlc3RfbWFpbGNhcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGNkMDljCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvdGVzdF9tYWlsY2FwLnB5CkBAIC0wLDAgKzEsMjIxIEBACitpbXBvcnQgbWFpbGNhcAoraW1wb3J0IG9zCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgdGVzdC5zdXBwb3J0CitpbXBvcnQgdW5pdHRlc3QKKworIyBMb2NhdGlvbiBvZiBtYWlsY2FwIGZpbGUKK01BSUxDQVBGSUxFID0gdGVzdC5zdXBwb3J0LmZpbmRmaWxlKCJtYWlsY2FwLnR4dCIpCisKKyMgRGljdCB0byBhY3QgYXMgbW9jayBtYWlsY2FwIGVudHJ5IGZvciB0aGlzIHRlc3QKKyMgVGhlIGtleXMgYW5kIHZhbHVlcyBzaG91bGQgbWF0Y2ggdGhlIGNvbnRlbnRzIG9mIE1BSUxDQVBGSUxFCitNQUlMQ0FQRElDVCA9IHsKKyAgICAnYXBwbGljYXRpb24veC1tb3ZpZSc6CisgICAgICAgIFt7J2NvbXBvc2UnOiAnbW92aWVtYWtlciAlcycsCisgICAgICAgICAgJ3gxMS1iaXRtYXAnOiAnIi91c3IvbGliL1ptYWlsL2JpdG1hcHMvbW92aWUueGJtIicsCisgICAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJyJNb3ZpZSInLAorICAgICAgICAgICd2aWV3JzogJ21vdmllcGxheWVyICVzJ31dLAorICAgICdhcHBsaWNhdGlvbi8qJzoKKyAgICAgICAgW3snY29waW91c291dHB1dCc6ICcnLAorICAgICAgICAgICd2aWV3JzogJ2VjaG8gIlRoaXMgaXMgXFwiJXRcXCIgYnV0ICAgICAgICBpcyA1MCBcXCUgR3JlZWsgdG8gbWUiIFxcOyBjYXQgJXMnfV0sCisgICAgJ2F1ZGlvL2Jhc2ljJzoKKyAgICAgICAgW3snZWRpdCc6ICdhdWRpb2NvbXBvc2UgJXMnLAorICAgICAgICAgICdjb21wb3NlJzogJ2F1ZGlvY29tcG9zZSAlcycsCisgICAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJyJBbiBhdWRpbyBmcmFnbWVudCInLAorICAgICAgICAgICd2aWV3JzogJ3Nob3dhdWRpbyAlcyd9XSwKKyAgICAndmlkZW8vbXBlZyc6CisgICAgICAgIFt7J3ZpZXcnOiAnbXBlZ19wbGF5ICVzJ31dLAorICAgICdhcHBsaWNhdGlvbi9wb3N0c2NyaXB0JzoKKyAgICAgICAgW3snbmVlZHN0ZXJtaW5hbCc6ICcnLCAndmlldyc6ICdwcy10by10ZXJtaW5hbCAlcyd9LAorICAgICAgICAgeydjb21wb3NlJzogJ2lkcmF3ICVzJywgJ3ZpZXcnOiAncHMtdG8tdGVybWluYWwgJXMnfV0sCisgICAgJ2FwcGxpY2F0aW9uL3gtZHZpJzoKKyAgICAgICAgW3sndmlldyc6ICd4ZHZpICVzJ31dLAorICAgICdtZXNzYWdlL2V4dGVybmFsLWJvZHknOgorICAgICAgICBbeydjb21wb3NldHlwZWQnOiAnZXh0Y29tcG9zZSAlcycsCisgICAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJyJBIHJlZmVyZW5jZSB0byBkYXRhIHN0b3JlZCBpbiBhbiBleHRlcm5hbCBsb2NhdGlvbiInLAorICAgICAgICAgICduZWVkc3Rlcm1pbmFsJzogJycsCisgICAgICAgICAgJ3ZpZXcnOiAnc2hvd2V4dGVybmFsICVzICV7YWNjZXNzLXR5cGV9ICV7bmFtZX0gJXtzaXRlfSAgICAgJXtkaXJlY3Rvcnl9ICV7bW9kZX0gJXtzZXJ2ZXJ9J31dLAorICAgICd0ZXh0L3JpY2h0ZXh0JzoKKyAgICAgICAgW3sndGVzdCc6ICd0ZXN0ICJgZWNobyAgICAgJXtjaGFyc2V0fSB8IHRyIFwnW0EtWl1cJyBcJ1thLXpdXCdgIiAgPSBpc28tODg1OS04JywKKyAgICAgICAgICAnY29waW91c291dHB1dCc6ICcnLAorICAgICAgICAgICd2aWV3JzogJ3Nob3dub25hc2NpaSBpc28tODg1OS04IC1lIHJpY2h0ZXh0IC1wICVzJ31dLAorICAgICdpbWFnZS94LXh3aW5kb3dkdW1wJzoKKyAgICAgICAgW3sndmlldyc6ICdkaXNwbGF5ICVzJ31dLAorICAgICdhdWRpby8qJzoKKyAgICAgICAgW3sndmlldyc6ICcvdXNyL2xvY2FsL2Jpbi9zaG93YXVkaW8gJXQnfV0sCisgICAgJ3ZpZGVvLyonOgorICAgICAgICBbeyd2aWV3JzogJ2FuaW1hdGUgJXMnfV0sCisgICAgJ2FwcGxpY2F0aW9uL2ZyYW1lJzoKKyAgICAgICAgW3sncHJpbnQnOiAnImNhdCAlcyB8IGxwIicsICd2aWV3JzogJ3Nob3dmcmFtZSAlcyd9XSwKKyAgICAnaW1hZ2UvcmdiJzoKKyAgICAgICAgW3sndmlldyc6ICdkaXNwbGF5ICVzJ31dCit9CisKKworY2xhc3MgSGVscGVyRnVuY3Rpb25UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2xpc3RtYWlsY2FwZmlsZXMoc2VsZik6CisgICAgICAgICMgVGhlIHJldHVybiB2YWx1ZSBmb3IgbGlzdG1haWxjYXBmaWxlcygpIHdpbGwgdmFyeSBieSBzeXN0ZW0uCisgICAgICAgICMgU28gdmVyaWZ5IHRoYXQgbGlzdG1haWxjYXBmaWxlcygpIHJldHVybnMgYSBsaXN0IG9mIHN0cmluZ3MgdGhhdCBpcyBvZgorICAgICAgICAjIG5vbi16ZXJvIGxlbmd0aC4KKyAgICAgICAgbWNmaWxlcyA9IG1haWxjYXAubGlzdG1haWxjYXBmaWxlcygpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtY2ZpbGVzLCBsaXN0KQorICAgICAgICBmb3IgbSBpbiBtY2ZpbGVzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG0sIHN0cikKKyAgICAgICAgd2l0aCB0ZXN0LnN1cHBvcnQuRW52aXJvbm1lbnRWYXJHdWFyZCgpIGFzIGVudjoKKyAgICAgICAgICAgICMgQWNjb3JkaW5nIHRvIFJGQyAxNTI0LCBpZiBNQUlMQ0FQUyBlbnYgdmFyaWFibGUgZXhpc3RzLCB1c2UgdGhhdAorICAgICAgICAgICAgIyBhbmQgb25seSB0aGF0LgorICAgICAgICAgICAgaWYgIk1BSUxDQVBTIiBpbiBlbnY6CisgICAgICAgICAgICAgICAgZW52X21haWxjYXBzID0gZW52WyJNQUlMQ0FQUyJdLnNwbGl0KG9zLnBhdGhzZXApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVudl9tYWlsY2FwcyA9IFsiL3Rlc3RkaXIxLy5tYWlsY2FwIiwgIi90ZXN0ZGlyMi9tYWlsY2FwIl0KKyAgICAgICAgICAgICAgICBlbnZbIk1BSUxDQVBTIl0gPSBvcy5wYXRoc2VwLmpvaW4oZW52X21haWxjYXBzKQorICAgICAgICAgICAgICAgIG1jZmlsZXMgPSBtYWlsY2FwLmxpc3RtYWlsY2FwZmlsZXMoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVudl9tYWlsY2FwcywgbWNmaWxlcykKKworICAgIGRlZiB0ZXN0X3JlYWRtYWlsY2FwZmlsZShzZWxmKToKKyAgICAgICAgIyBUZXN0IHJlYWRtYWlsY2FwZmlsZSgpIHVzaW5nIHRlc3QgZmlsZS4gSXQgc2hvdWxkIG1hdGNoIE1BSUxDQVBESUNULgorICAgICAgICB3aXRoIG9wZW4oTUFJTENBUEZJTEUsICdyJykgYXMgbWNmOgorICAgICAgICAgICAgZCA9IG1haWxjYXAucmVhZG1haWxjYXBmaWxlKG1jZikKKyAgICAgICAgc2VsZi5hc3NlcnREaWN0RXF1YWwoZCwgTUFJTENBUERJQ1QpCisKKyAgICBkZWYgdGVzdF9sb29rdXAoc2VsZik6CisgICAgICAgICMgVGVzdCB3aXRob3V0IGtleQorICAgICAgICBleHBlY3RlZCA9IFt7J3ZpZXcnOiAnbXBlZ19wbGF5ICVzJ30sIHsndmlldyc6ICdhbmltYXRlICVzJ31dCisgICAgICAgIGFjdHVhbCA9IG1haWxjYXAubG9va3VwKE1BSUxDQVBESUNULCAndmlkZW8vbXBlZycpCisgICAgICAgIHNlbGYuYXNzZXJ0TGlzdEVxdWFsKGV4cGVjdGVkLCBhY3R1YWwpCisKKyAgICAgICAgIyBUZXN0IHdpdGgga2V5CisgICAgICAgIGtleSA9ICdjb21wb3NlJworICAgICAgICBleHBlY3RlZCA9IFt7J2VkaXQnOiAnYXVkaW9jb21wb3NlICVzJywKKyAgICAgICAgICAgICAgICAgICAgICdjb21wb3NlJzogJ2F1ZGlvY29tcG9zZSAlcycsCisgICAgICAgICAgICAgICAgICAgICAnZGVzY3JpcHRpb24nOiAnIkFuIGF1ZGlvIGZyYWdtZW50IicsCisgICAgICAgICAgICAgICAgICAgICAndmlldyc6ICdzaG93YXVkaW8gJXMnfV0KKyAgICAgICAgYWN0dWFsID0gbWFpbGNhcC5sb29rdXAoTUFJTENBUERJQ1QsICdhdWRpby9iYXNpYycsIGtleSkKKyAgICAgICAgc2VsZi5hc3NlcnRMaXN0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKKworICAgIGRlZiB0ZXN0X3N1YnN0KHNlbGYpOgorICAgICAgICBwbGlzdCA9IFsnaWQ9MScsICdudW1iZXI9MicsICd0b3RhbD0zJ10KKyAgICAgICAgIyB0ZXN0IGNhc2U6IChbZmllbGQsIE1JTUV0eXBlLCBmaWxlbmFtZSwgcGxpc3Q9W11dLCA8ZXhwZWN0ZWQgc3RyaW5nPikKKyAgICAgICAgdGVzdF9jYXNlcyA9IFsKKyAgICAgICAgICAgIChbIiIsICJhdWRpby8qIiwgImZvby50eHQiXSwgIiIpLAorICAgICAgICAgICAgKFsiZWNobyBmb28iLCAiYXVkaW8vKiIsICJmb28udHh0Il0sICJlY2hvIGZvbyIpLAorICAgICAgICAgICAgKFsiZWNobyAlcyIsICJhdWRpby8qIiwgImZvby50eHQiXSwgImVjaG8gZm9vLnR4dCIpLAorICAgICAgICAgICAgKFsiZWNobyAldCIsICJhdWRpby8qIiwgImZvby50eHQiXSwgImVjaG8gYXVkaW8vKiIpLAorICAgICAgICAgICAgKFsiZWNobyBcJXQiLCAiYXVkaW8vKiIsICJmb28udHh0Il0sICJlY2hvICV0IiksCisgICAgICAgICAgICAoWyJlY2hvIGZvbyIsICJhdWRpby8qIiwgImZvby50eHQiLCBwbGlzdF0sICJlY2hvIGZvbyIpLAorICAgICAgICAgICAgKFsiZWNobyAle3RvdGFsfSIsICJhdWRpby8qIiwgImZvby50eHQiLCBwbGlzdF0sICJlY2hvIDMiKQorICAgICAgICBdCisgICAgICAgIGZvciB0YyBpbiB0ZXN0X2Nhc2VzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYWlsY2FwLnN1YnN0KCp0Y1swXSksIHRjWzFdKQorCisKK2NsYXNzIEdldGNhcHNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X21vY2tfZ2V0Y2FwcyhzZWxmKToKKyAgICAgICAgIyBUZXN0IG1haWxjYXAuZ2V0Y2FwcygpIHVzaW5nIG1vY2sgbWFpbGNhcCBmaWxlIGluIHRoaXMgZGlyLgorICAgICAgICAjIFRlbXBvcmFyaWx5IG92ZXJyaWRlIGFueSBleGlzdGluZyBzeXN0ZW0gbWFpbGNhcCBmaWxlIGJ5IHBvaW50aW5nIHRoZQorICAgICAgICAjIE1BSUxDQVBTIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIG91ciBtb2NrIGZpbGUuCisgICAgICAgIHdpdGggdGVzdC5zdXBwb3J0LkVudmlyb25tZW50VmFyR3VhcmQoKSBhcyBlbnY6CisgICAgICAgICAgICBlbnZbIk1BSUxDQVBTIl0gPSBNQUlMQ0FQRklMRQorICAgICAgICAgICAgY2FwcyA9IG1haWxjYXAuZ2V0Y2FwcygpCisgICAgICAgICAgICBzZWxmLmFzc2VydERpY3RFcXVhbChjYXBzLCBNQUlMQ0FQRElDVCkKKworICAgIGRlZiB0ZXN0X3N5c3RlbV9tYWlsY2FwKHNlbGYpOgorICAgICAgICAjIFRlc3QgbWFpbGNhcC5nZXRjYXBzKCkgd2l0aCBtYWlsY2FwIGZpbGUocykgb24gc3lzdGVtLCBpZiBhbnkuCisgICAgICAgIGNhcHMgPSBtYWlsY2FwLmdldGNhcHMoKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoY2FwcywgZGljdCkKKyAgICAgICAgbWFpbGNhcGZpbGVzID0gbWFpbGNhcC5saXN0bWFpbGNhcGZpbGVzKCkKKyAgICAgICAgZXhpc3RpbmdtY2ZpbGVzID0gW21jZiBmb3IgbWNmIGluIG1haWxjYXBmaWxlcyBpZiBvcy5wYXRoLmV4aXN0cyhtY2YpXQorICAgICAgICBpZiBleGlzdGluZ21jZmlsZXM6CisgICAgICAgICAgICAjIEF0IGxlYXN0IDEgbWFpbGNhcCBmaWxlIGV4aXN0cywgc28gdGVzdCB0aGF0LgorICAgICAgICAgICAgZm9yIChrLCB2KSBpbiBjYXBzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGssIHN0cikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UodiwgbGlzdCkKKyAgICAgICAgICAgICAgICBmb3IgZSBpbiB2OgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZSwgZGljdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgTm8gbWFpbGNhcCBmaWxlcyBvbiBzeXN0ZW0uIGdldGNhcHMoKSBzaG91bGQgcmV0dXJuIGVtcHR5IGRpY3QuCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHt9LCBjYXBzKQorCisKK2NsYXNzIEZpbmRtYXRjaFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfZmluZG1hdGNoKHNlbGYpOgorCisgICAgICAgICMgZGVmYXVsdCBmaW5kbWF0Y2ggYXJndW1lbnRzCisgICAgICAgIGMgPSBNQUlMQ0FQRElDVAorICAgICAgICBmbmFtZSA9ICJmb28udHh0IgorICAgICAgICBwbGlzdCA9IFsiYWNjZXNzLXR5cGU9ZGVmYXVsdCIsICJuYW1lPWpvaG4iLCAic2l0ZT1weXRob24ub3JnIiwKKyAgICAgICAgICAgICAgICAgImRpcmVjdG9yeT0vdG1wIiwgIm1vZGU9Zm9vIiwgInNlcnZlcj1iYXIiXQorICAgICAgICBhdWRpb19iYXNpY19lbnRyeSA9IHsKKyAgICAgICAgICAgICdlZGl0JzogJ2F1ZGlvY29tcG9zZSAlcycsCisgICAgICAgICAgICAnY29tcG9zZSc6ICdhdWRpb2NvbXBvc2UgJXMnLAorICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJyJBbiBhdWRpbyBmcmFnbWVudCInLAorICAgICAgICAgICAgJ3ZpZXcnOiAnc2hvd2F1ZGlvICVzJworICAgICAgICB9CisgICAgICAgIGF1ZGlvX2VudHJ5ID0geyJ2aWV3IjogIi91c3IvbG9jYWwvYmluL3Nob3dhdWRpbyAldCJ9CisgICAgICAgIHZpZGVvX2VudHJ5ID0geyd2aWV3JzogJ2FuaW1hdGUgJXMnfQorICAgICAgICBtZXNzYWdlX2VudHJ5ID0geworICAgICAgICAgICAgJ2NvbXBvc2V0eXBlZCc6ICdleHRjb21wb3NlICVzJywKKyAgICAgICAgICAgICdkZXNjcmlwdGlvbic6ICciQSByZWZlcmVuY2UgdG8gZGF0YSBzdG9yZWQgaW4gYW4gZXh0ZXJuYWwgbG9jYXRpb24iJywgJ25lZWRzdGVybWluYWwnOiAnJywKKyAgICAgICAgICAgICd2aWV3JzogJ3Nob3dleHRlcm5hbCAlcyAle2FjY2Vzcy10eXBlfSAle25hbWV9ICV7c2l0ZX0gICAgICV7ZGlyZWN0b3J5fSAle21vZGV9ICV7c2VydmVyfScKKyAgICAgICAgfQorCisgICAgICAgICMgdGVzdCBjYXNlOiAoZmluZG1hdGNoIGFyZ3MsIGZpbmRtYXRjaCBrZXl3b3JkIGFyZ3MsIGV4cGVjdGVkIG91dHB1dCkKKyAgICAgICAgIyAgIHBvc2l0aW9uYWwgYXJnczogY2FwcywgTUlNRXR5cGUKKyAgICAgICAgIyAgIGtleXdvcmQgYXJnczoga2V5PSJ2aWV3IiwgZmlsZW5hbWU9Ii9kZXYvbnVsbCIsIHBsaXN0PVtdCisgICAgICAgICMgICBvdXRwdXQ6IChjb21tYW5kIGxpbmUsIG1haWxjYXAgZW50cnkpCisgICAgICAgIGNhc2VzID0gWworICAgICAgICAgICAgKFt7fSwgInZpZGVvL21wZWciXSwge30sIChOb25lLCBOb25lKSksCisgICAgICAgICAgICAoW2MsICJmb28vYmFyIl0sIHt9LCAoTm9uZSwgTm9uZSkpLAorICAgICAgICAgICAgKFtjLCAidmlkZW8vbXBlZyJdLCB7fSwgKCdtcGVnX3BsYXkgL2Rldi9udWxsJywgeyd2aWV3JzogJ21wZWdfcGxheSAlcyd9KSksCisgICAgICAgICAgICAoW2MsICJhdWRpby9iYXNpYyIsICJlZGl0Il0sIHt9LCAoImF1ZGlvY29tcG9zZSAvZGV2L251bGwiLCBhdWRpb19iYXNpY19lbnRyeSkpLAorICAgICAgICAgICAgKFtjLCAiYXVkaW8vYmFzaWMiLCAiY29tcG9zZSJdLCB7fSwgKCJhdWRpb2NvbXBvc2UgL2Rldi9udWxsIiwgYXVkaW9fYmFzaWNfZW50cnkpKSwKKyAgICAgICAgICAgIChbYywgImF1ZGlvL2Jhc2ljIiwgImRlc2NyaXB0aW9uIl0sIHt9LCAoJyJBbiBhdWRpbyBmcmFnbWVudCInLCBhdWRpb19iYXNpY19lbnRyeSkpLAorICAgICAgICAgICAgKFtjLCAiYXVkaW8vYmFzaWMiLCAiZm9vYmFyIl0sIHt9LCAoTm9uZSwgTm9uZSkpLAorICAgICAgICAgICAgKFtjLCAidmlkZW8vKiJdLCB7ImZpbGVuYW1lIjogZm5hbWV9LCAoImFuaW1hdGUgJXMiICUgZm5hbWUsIHZpZGVvX2VudHJ5KSksCisgICAgICAgICAgICAoW2MsICJhdWRpby9iYXNpYyIsICJjb21wb3NlIl0sCisgICAgICAgICAgICAgeyJmaWxlbmFtZSI6IGZuYW1lfSwKKyAgICAgICAgICAgICAoImF1ZGlvY29tcG9zZSAlcyIgJSBmbmFtZSwgYXVkaW9fYmFzaWNfZW50cnkpKSwKKyAgICAgICAgICAgIChbYywgImF1ZGlvL2Jhc2ljIl0sCisgICAgICAgICAgICAgeyJrZXkiOiAiZGVzY3JpcHRpb24iLCAiZmlsZW5hbWUiOiBmbmFtZX0sCisgICAgICAgICAgICAgKCciQW4gYXVkaW8gZnJhZ21lbnQiJywgYXVkaW9fYmFzaWNfZW50cnkpKSwKKyAgICAgICAgICAgIChbYywgImF1ZGlvLyoiXSwKKyAgICAgICAgICAgICB7ImZpbGVuYW1lIjogZm5hbWV9LAorICAgICAgICAgICAgICgiL3Vzci9sb2NhbC9iaW4vc2hvd2F1ZGlvIGF1ZGlvLyoiLCBhdWRpb19lbnRyeSkpLAorICAgICAgICAgICAgKFtjLCAibWVzc2FnZS9leHRlcm5hbC1ib2R5Il0sCisgICAgICAgICAgICAgeyJwbGlzdCI6IHBsaXN0fSwKKyAgICAgICAgICAgICAoInNob3dleHRlcm5hbCAvZGV2L251bGwgZGVmYXVsdCBqb2huIHB5dGhvbi5vcmcgICAgIC90bXAgZm9vIGJhciIsIG1lc3NhZ2VfZW50cnkpKQorICAgICAgICBdCisgICAgICAgIHNlbGYuX3J1bl9jYXNlcyhjYXNlcykKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLm5hbWUgPT0gInBvc2l4IiwgIlJlcXVpcmVzICd0ZXN0JyBjb21tYW5kIG9uIHN5c3RlbSIpCisgICAgZGVmIHRlc3RfdGVzdChzZWxmKToKKyAgICAgICAgIyBmaW5kbWF0Y2goKSB3aWxsIGF1dG9tYXRpY2FsbHkgY2hlY2sgYW55ICJ0ZXN0IiBjb25kaXRpb25zIGFuZCBza2lwCisgICAgICAgICMgdGhlIGVudHJ5IGlmIHRoZSBjaGVjayBmYWlscy4KKyAgICAgICAgY2FwcyA9IHsidGVzdC9wYXNzIjogW3sidGVzdCI6ICJ0ZXN0IDEgLWVxIDEifV0sCisgICAgICAgICAgICAgICAgInRlc3QvZmFpbCI6IFt7InRlc3QiOiAidGVzdCAxIC1lcSAwIn1dfQorICAgICAgICAjIHRlc3QgY2FzZTogKGZpbmRtYXRjaCBhcmdzLCBmaW5kbWF0Y2gga2V5d29yZCBhcmdzLCBleHBlY3RlZCBvdXRwdXQpCisgICAgICAgICMgICBwb3NpdGlvbmFsIGFyZ3M6IGNhcHMsIE1JTUV0eXBlLCBrZXkgKCJ0ZXN0IikKKyAgICAgICAgIyAgIGtleXdvcmQgYXJnczogTi9BCisgICAgICAgICMgICBvdXRwdXQ6IChjb21tYW5kIGxpbmUsIG1haWxjYXAgZW50cnkpCisgICAgICAgIGNhc2VzID0gWworICAgICAgICAgICAgIyBmaW5kbWF0Y2ggd2lsbCByZXR1cm4gdGhlIG1haWxjYXAgZW50cnkgZm9yIHRlc3QvcGFzcyBiZWNhdXNlIGl0IGV2YWx1YXRlcyB0byB0cnVlCisgICAgICAgICAgICAoW2NhcHMsICJ0ZXN0L3Bhc3MiLCAidGVzdCJdLCB7fSwgKCJ0ZXN0IDEgLWVxIDEiLCB7InRlc3QiOiAidGVzdCAxIC1lcSAxIn0pKSwKKyAgICAgICAgICAgICMgZmluZG1hdGNoIHdpbGwgcmV0dXJuIE5vbmUgYmVjYXVzZSB0ZXN0L2ZhaWwgZXZhbHVhdGVzIHRvIGZhbHNlCisgICAgICAgICAgICAoW2NhcHMsICJ0ZXN0L2ZhaWwiLCAidGVzdCJdLCB7fSwgKE5vbmUsIE5vbmUpKQorICAgICAgICBdCisgICAgICAgIHNlbGYuX3J1bl9jYXNlcyhjYXNlcykKKworICAgIGRlZiBfcnVuX2Nhc2VzKHNlbGYsIGNhc2VzKToKKyAgICAgICAgZm9yIGMgaW4gY2FzZXM6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1haWxjYXAuZmluZG1hdGNoKCpjWzBdLCAqKmNbMV0pLCBjWzJdKQorCisKK2RlZiB0ZXN0X21haW4oKToKKyAgICB0ZXN0LnN1cHBvcnQucnVuX3VuaXR0ZXN0KEhlbHBlckZ1bmN0aW9uVGVzdCwgR2V0Y2Fwc1Rlc3QsIEZpbmRtYXRjaFRlc3QpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9tYXJzaGFsLnB5IGIvTGliL3Rlc3QvdGVzdF9tYXJzaGFsLnB5CmluZGV4IDk2YTcwZWMuLjgzYzM0OGMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbWFyc2hhbC5weQorKysgYi9MaWIvdGVzdC90ZXN0X21hcnNoYWwucHkKQEAgLTYsNiArNiw3IEBACiBpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIGltcG9ydCBvcworaW1wb3J0IHR5cGVzCiAKIGNsYXNzIEhlbHBlck1peGluOgogICAgIGRlZiBoZWxwZXIoc2VsZiwgc2FtcGxlLCAqZXh0cmEpOgpAQCAtMTE0LDYgKzExNSwyMiBAQAogICAgICAgICBjb2RlcyA9IChFeGNlcHRpb25UZXN0Q2FzZS50ZXN0X2V4Y2VwdGlvbnMuX19jb2RlX18sKSAqIGNvdW50CiAgICAgICAgIG1hcnNoYWwubG9hZHMobWFyc2hhbC5kdW1wcyhjb2RlcykpCiAKKyAgICBkZWYgdGVzdF9kaWZmZXJlbnRfZmlsZW5hbWVzKHNlbGYpOgorICAgICAgICBjbzEgPSBjb21waWxlKCJ4IiwgImYxIiwgImV4ZWMiKQorICAgICAgICBjbzIgPSBjb21waWxlKCJ5IiwgImYyIiwgImV4ZWMiKQorICAgICAgICBjbzEsIGNvMiA9IG1hcnNoYWwubG9hZHMobWFyc2hhbC5kdW1wcygoY28xLCBjbzIpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbzEuY29fZmlsZW5hbWUsICJmMSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY28yLmNvX2ZpbGVuYW1lLCAiZjIiKQorCisgICAgQHN1cHBvcnQuY3B5dGhvbl9vbmx5CisgICAgZGVmIHRlc3Rfc2FtZV9maWxlbmFtZV91c2VkKHNlbGYpOgorICAgICAgICBzID0gIiIiZGVmIGYoKTogcGFzc1xuZGVmIGcoKTogcGFzcyIiIgorICAgICAgICBjbyA9IGNvbXBpbGUocywgIm15ZmlsZSIsICJleGVjIikKKyAgICAgICAgY28gPSBtYXJzaGFsLmxvYWRzKG1hcnNoYWwuZHVtcHMoY28pKQorICAgICAgICBmb3Igb2JqIGluIGNvLmNvX2NvbnN0czoKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCB0eXBlcy5Db2RlVHlwZSk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhjby5jb19maWxlbmFtZSwgb2JqLmNvX2ZpbGVuYW1lKQorCiBjbGFzcyBDb250YWluZXJUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSwgSGVscGVyTWl4aW4pOgogICAgIGQgPSB7J2FzdHJpbmcnOiAnZm9vQGJhci5iYXouc3BhbScsCiAgICAgICAgICAnYWZsb2F0JzogNzI4My40MywKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbWF0aC5weSBiL0xpYi90ZXN0L3Rlc3RfbWF0aC5weQppbmRleCBkZGRjODg5Li43MTUwMDNhIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X21hdGgucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9tYXRoLnB5CkBAIC0yLDExICsyLDEyIEBACiAjIFhYWFggU2hvdWxkIG5vdCBkbyB0ZXN0cyBhcm91bmQgemVybyBvbmx5CiAKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBydW5fdW5pdHRlc3QsIHZlcmJvc2UsIHJlcXVpcmVzX0lFRUVfNzU0Citmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIGltcG9ydCB1bml0dGVzdAogaW1wb3J0IG1hdGgKIGltcG9ydCBvcworaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgc3lzCi1pbXBvcnQgcmFuZG9tCiBpbXBvcnQgc3RydWN0CiBpbXBvcnQgc3lzY29uZmlnCiAKQEAgLTQ1NywxMiArNDU4LDEyIEBACiAKICAgICBkZWYgdGVzdEZtb2Qoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbWF0aC5mbW9kKQotICAgICAgICBzZWxmLmZ0ZXN0KCdmbW9kKDEwLDEpJywgbWF0aC5mbW9kKDEwLDEpLCAwKQotICAgICAgICBzZWxmLmZ0ZXN0KCdmbW9kKDEwLDAuNSknLCBtYXRoLmZtb2QoMTAsMC41KSwgMCkKLSAgICAgICAgc2VsZi5mdGVzdCgnZm1vZCgxMCwxLjUpJywgbWF0aC5mbW9kKDEwLDEuNSksIDEpCi0gICAgICAgIHNlbGYuZnRlc3QoJ2Ztb2QoLTEwLDEpJywgbWF0aC5mbW9kKC0xMCwxKSwgMCkKLSAgICAgICAgc2VsZi5mdGVzdCgnZm1vZCgtMTAsMC41KScsIG1hdGguZm1vZCgtMTAsMC41KSwgMCkKLSAgICAgICAgc2VsZi5mdGVzdCgnZm1vZCgtMTAsMS41KScsIG1hdGguZm1vZCgtMTAsMS41KSwgLTEpCisgICAgICAgIHNlbGYuZnRlc3QoJ2Ztb2QoMTAsIDEpJywgbWF0aC5mbW9kKDEwLCAxKSwgMC4wKQorICAgICAgICBzZWxmLmZ0ZXN0KCdmbW9kKDEwLCAwLjUpJywgbWF0aC5mbW9kKDEwLCAwLjUpLCAwLjApCisgICAgICAgIHNlbGYuZnRlc3QoJ2Ztb2QoMTAsIDEuNSknLCBtYXRoLmZtb2QoMTAsIDEuNSksIDEuMCkKKyAgICAgICAgc2VsZi5mdGVzdCgnZm1vZCgtMTAsIDEpJywgbWF0aC5mbW9kKC0xMCwgMSksIC0wLjApCisgICAgICAgIHNlbGYuZnRlc3QoJ2Ztb2QoLTEwLCAwLjUpJywgbWF0aC5mbW9kKC0xMCwgMC41KSwgLTAuMCkKKyAgICAgICAgc2VsZi5mdGVzdCgnZm1vZCgtMTAsIDEuNSknLCBtYXRoLmZtb2QoLTEwLCAxLjUpLCAtMS4wKQogICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0aC5pc25hbihtYXRoLmZtb2QoTkFOLCAxLikpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0aC5pc25hbihtYXRoLmZtb2QoMS4sIE5BTikpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0aC5pc25hbihtYXRoLmZtb2QoTkFOLCBOQU4pKSkKQEAgLTY1MCw2ICs2NTEsMzMgQEAKICAgICAgICAgbj0gMioqOTAKICAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChtYXRoLmxvZzFwKG4pLCBtYXRoLmxvZzFwKGZsb2F0KG4pKSkKIAorICAgIEByZXF1aXJlc19JRUVFXzc1NAorICAgIGRlZiB0ZXN0TG9nMihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtYXRoLmxvZzIpCisKKyAgICAgICAgIyBDaGVjayBzb21lIGludGVnZXIgdmFsdWVzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWF0aC5sb2cyKDEpLCAwLjApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWF0aC5sb2cyKDIpLCAxLjApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWF0aC5sb2cyKDQpLCAyLjApCisKKyAgICAgICAgIyBMYXJnZSBpbnRlZ2VyIHZhbHVlcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1hdGgubG9nMigyKioxMDIzKSwgMTAyMy4wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1hdGgubG9nMigyKioxMDI0KSwgMTAyNC4wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1hdGgubG9nMigyKioyMDAwKSwgMjAwMC4wKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG1hdGgubG9nMiwgLTEuNSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgbWF0aC5sb2cyLCBOSU5GKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0aC5pc25hbihtYXRoLmxvZzIoTkFOKSkpCisKKyAgICBAcmVxdWlyZXNfSUVFRV83NTQKKyAgICAjIGxvZzIoKSBpcyBub3QgYWNjdXJhdGUgZW5vdWdoIG9uIE1hYyBPUyBYIFRpZ2VyICgxMC40KQorICAgIEBzdXBwb3J0LnJlcXVpcmVzX21hY192ZXIoMTAsIDUpCisgICAgZGVmIHRlc3RMb2cyRXhhY3Qoc2VsZik6CisgICAgICAgICMgQ2hlY2sgdGhhdCB3ZSBnZXQgZXhhY3QgZXF1YWxpdHkgZm9yIGxvZzIgb2YgcG93ZXJzIG9mIDIuCisgICAgICAgIGFjdHVhbCA9IFttYXRoLmxvZzIobWF0aC5sZGV4cCgxLjAsIG4pKSBmb3IgbiBpbiByYW5nZSgtMTA3NCwgMTAyNCldCisgICAgICAgIGV4cGVjdGVkID0gW2Zsb2F0KG4pIGZvciBuIGluIHJhbmdlKC0xMDc0LCAxMDI0KV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsIGV4cGVjdGVkKQorCiAgICAgZGVmIHRlc3RMb2cxMChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtYXRoLmxvZzEwKQogICAgICAgICBzZWxmLmZ0ZXN0KCdsb2cxMCgwLjEpJywgbWF0aC5sb2cxMCgwLjEpLCAtMSkKQEAgLTEwMTAsNyArMTAzOCw2IEBACiAKICAgICBAcmVxdWlyZXNfSUVFRV83NTQKICAgICBkZWYgdGVzdF9tdGVzdGZpbGUoc2VsZik6Ci0gICAgICAgIEFMTE9XRURfRVJST1IgPSAyMCAgIyBwZXJtaXR0ZWQgZXJyb3IsIGluIHVscHMKICAgICAgICAgZmFpbF9mbXQgPSAie306e30oeyFyfSk6IGV4cGVjdGVkIHshcn0sIGdvdCB7IXJ9IgogCiAgICAgICAgIGZhaWx1cmVzID0gW10KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbWVtb3J5dmlldy5weSBiL0xpYi90ZXN0L3Rlc3RfbWVtb3J5dmlldy5weQppbmRleCAwYmZkZGQ5Li41YTMzZDAzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X21lbW9yeXZpZXcucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9tZW1vcnl2aWV3LnB5CkBAIC0yNCwxNSArMjQsMTQgQEAKICAgICAgICAgcmV0dXJuIGZpbHRlcihOb25lLCBbc2VsZi5yb190eXBlLCBzZWxmLnJ3X3R5cGVdKQogCiAgICAgZGVmIGNoZWNrX2dldGl0ZW1fd2l0aF90eXBlKHNlbGYsIHRwKToKLSAgICAgICAgaXRlbSA9IHNlbGYuZ2V0aXRlbV90eXBlCiAgICAgICAgIGIgPSB0cChzZWxmLl9zb3VyY2UpCiAgICAgICAgIG9sZHJlZmNvdW50ID0gc3lzLmdldHJlZmNvdW50KGIpCiAgICAgICAgIG0gPSBzZWxmLl92aWV3KGIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVswXSwgaXRlbShiImEiKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1bMF0sIGJ5dGVzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bNV0sIGl0ZW0oYiJmIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVstMV0sIGl0ZW0oYiJmIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVstNl0sIGl0ZW0oYiJhIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVswXSwgb3JkKGIiYSIpKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobVswXSwgaW50KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bNV0sIG9yZChiImYiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtWy0xXSwgb3JkKGIiZiIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1bLTZdLCBvcmQoYiJhIikpCiAgICAgICAgICMgQm91bmRzIGNoZWNraW5nCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IsIGxhbWJkYTogbVs2XSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW5kZXhFcnJvciwgbGFtYmRhOiBtWy03XSkKQEAgLTc2LDcgKzc1LDkgQEAKICAgICAgICAgYiA9IHNlbGYucndfdHlwZShzZWxmLl9zb3VyY2UpCiAgICAgICAgIG9sZHJlZmNvdW50ID0gc3lzLmdldHJlZmNvdW50KGIpCiAgICAgICAgIG0gPSBzZWxmLl92aWV3KGIpCi0gICAgICAgIG1bMF0gPSB0cChiIjAiKQorICAgICAgICBtWzBdID0gb3JkKGInMScpCisgICAgICAgIHNlbGYuX2NoZWNrX2NvbnRlbnRzKHRwLCBiLCBiIjFiY2RlZiIpCisgICAgICAgIG1bMDoxXSA9IHRwKGIiMCIpCiAgICAgICAgIHNlbGYuX2NoZWNrX2NvbnRlbnRzKHRwLCBiLCBiIjBiY2RlZiIpCiAgICAgICAgIG1bMTozXSA9IHRwKGIiMTIiKQogICAgICAgICBzZWxmLl9jaGVja19jb250ZW50cyh0cCwgYiwgYiIwMTJkZWYiKQpAQCAtMTAyLDEwICsxMDMsMTcgQEAKICAgICAgICAgIyBXcm9uZyBpbmRleC9zbGljZSB0eXBlcwogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGl0ZW0sIDAuMCwgYiJhIikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZXRpdGVtLCAoMCwpLCBiImEiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGl0ZW0sIChzbGljZSgwLDEsMSksIDApLCBiImEiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGl0ZW0sICgwLCBzbGljZSgwLDEsMSkpLCBiImEiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNldGl0ZW0sICgwLCksIGIiYSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2V0aXRlbSwgImEiLCBiImEiKQorICAgICAgICAjIE5vdCBpbXBsZW1lbnRlZDogbXVsdGlkaW1lbnNpb25hbCBzbGljZXMKKyAgICAgICAgc2xpY2VzID0gKHNsaWNlKDAsMSwxKSwgc2xpY2UoMCwxLDIpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhOb3RJbXBsZW1lbnRlZEVycm9yLCBzZXRpdGVtLCBzbGljZXMsIGIiYSIpCiAgICAgICAgICMgVHJ5aW5nIHRvIHJlc2l6ZSB0aGUgbWVtb3J5IG9iamVjdAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZXRpdGVtLCAwLCBiIiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNldGl0ZW0sIDAsIGIiYWIiKQorICAgICAgICBleGMgPSBWYWx1ZUVycm9yIGlmIG0uZm9ybWF0ID09ICdjJyBlbHNlIFR5cGVFcnJvcgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhleGMsIHNldGl0ZW0sIDAsIGIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZXhjLCBzZXRpdGVtLCAwLCBiImFiIikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2V0aXRlbSwgc2xpY2UoMSwxKSwgYiJhIikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2V0aXRlbSwgc2xpY2UoMCwyKSwgYiJhIikKIApAQCAtMTc1LDcgKzE4Myw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5zaGFwZSwgKDYsKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obSksIDYpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5zdHJpZGVzLCAoc2VsZi5pdGVtc2l6ZSwpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0uc3Vib2Zmc2V0cywgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLnN1Ym9mZnNldHMsICgpKQogICAgICAgICByZXR1cm4gbQogCiAgICAgZGVmIHRlc3RfYXR0cmlidXRlc19yZWFkb25seShzZWxmKToKQEAgLTIwOSwxMiArMjE3LDE2IEBACiAgICAgICAgICAgICAgICAgIyBJZiB0cCBpcyBhIGZhY3RvcnkgcmF0aGVyIHRoYW4gYSBwbGFpbiB0eXBlLCBza2lwCiAgICAgICAgICAgICAgICAgY29udGludWUKIAorICAgICAgICAgICAgY2xhc3MgTXlWaWV3KCk6CisgICAgICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJhc2UpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLm0gPSBtZW1vcnl2aWV3KGJhc2UpCiAgICAgICAgICAgICBjbGFzcyBNeVNvdXJjZSh0cCk6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgY2xhc3MgTXlPYmplY3Q6CiAgICAgICAgICAgICAgICAgcGFzcwogCi0gICAgICAgICAgICAjIENyZWF0ZSBhIHJlZmVyZW5jZSBjeWNsZSB0aHJvdWdoIGEgbWVtb3J5dmlldyBvYmplY3QKKyAgICAgICAgICAgICMgQ3JlYXRlIGEgcmVmZXJlbmNlIGN5Y2xlIHRocm91Z2ggYSBtZW1vcnl2aWV3IG9iamVjdC4KKyAgICAgICAgICAgICMgVGhpcyBleGVyY2lzZXMgbWJ1Zl9jbGVhcigpLgogICAgICAgICAgICAgYiA9IE15U291cmNlKHRwKGInYWJjJykpCiAgICAgICAgICAgICBtID0gc2VsZi5fdmlldyhiKQogICAgICAgICAgICAgbyA9IE15T2JqZWN0KCkKQEAgLTIyNiw2ICsyMzgsMTcgQEAKICAgICAgICAgICAgIGdjLmNvbGxlY3QoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHdyKCkgaXMgTm9uZSwgd3IoKSkKIAorICAgICAgICAgICAgIyBUaGlzIGV4ZXJjaXNlcyBtZW1vcnlfY2xlYXIoKS4KKyAgICAgICAgICAgIG0gPSBNeVZpZXcodHAoYidhYmMnKSkKKyAgICAgICAgICAgIG8gPSBNeU9iamVjdCgpCisgICAgICAgICAgICBtLnggPSBtCisgICAgICAgICAgICBtLm8gPSBvCisgICAgICAgICAgICB3ciA9IHdlYWtyZWYucmVmKG8pCisgICAgICAgICAgICBtID0gbyA9IE5vbmUKKyAgICAgICAgICAgICMgVGhlIGN5Y2xlIG11c3QgYmUgYnJva2VuCisgICAgICAgICAgICBnYy5jb2xsZWN0KCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh3cigpIGlzIE5vbmUsIHdyKCkpCisKICAgICBkZWYgX2NoZWNrX3JlbGVhc2VkKHNlbGYsIG0sIHRwKToKICAgICAgICAgY2hlY2sgPSBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICJyZWxlYXNlZCIpCiAgICAgICAgIHdpdGggY2hlY2s6IGJ5dGVzKG0pCkBAIC0yODMsNiArMzA2LDUxIEBACiAgICAgICAgIGkgPSBpby5CeXRlc0lPKGInWlpaWicpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaS5yZWFkaW50bywgbSkKIAorICAgIGRlZiB0ZXN0X2dldGJ1Zl9mYWlsKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuX3ZpZXcsIHt9KQorCisgICAgZGVmIHRlc3RfaGFzaChzZWxmKToKKyAgICAgICAgIyBNZW1vcnl2aWV3cyBvZiByZWFkb25seSAoaGFzaGFibGUpIHR5cGVzIGFyZSBoYXNoYWJsZSwgYW5kIHRoZXkKKyAgICAgICAgIyBoYXNoIGFzIGhhc2gob2JqLnRvYnl0ZXMoKSkuCisgICAgICAgIHRwID0gc2VsZi5yb190eXBlCisgICAgICAgIGlmIHRwIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJubyByZWFkLW9ubHkgdHlwZSB0byB0ZXN0IikKKyAgICAgICAgYiA9IHRwKHNlbGYuX3NvdXJjZSkKKyAgICAgICAgbSA9IHNlbGYuX3ZpZXcoYikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNoKG0pLCBoYXNoKGIiYWJjZGVmIikpCisgICAgICAgICMgUmVsZWFzaW5nIHRoZSBtZW1vcnl2aWV3IGtlZXBzIHRoZSBzdG9yZWQgaGFzaCB2YWx1ZSAoYXMgd2l0aCB3ZWFrcmVmcykKKyAgICAgICAgbS5yZWxlYXNlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNoKG0pLCBoYXNoKGIiYWJjZGVmIikpCisgICAgICAgICMgSGFzaGluZyBhIG1lbW9yeXZpZXcgZm9yIHRoZSBmaXJzdCB0aW1lIGFmdGVyIGl0IGlzIHJlbGVhc2VkCisgICAgICAgICMgcmVzdWx0cyBpbiBhbiBlcnJvciAoYXMgd2l0aCB3ZWFrcmVmcykuCisgICAgICAgIG0gPSBzZWxmLl92aWV3KGIpCisgICAgICAgIG0ucmVsZWFzZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGhhc2gsIG0pCisKKyAgICBkZWYgdGVzdF9oYXNoX3dyaXRhYmxlKHNlbGYpOgorICAgICAgICAjIE1lbW9yeXZpZXdzIG9mIHdyaXRhYmxlIHR5cGVzIGFyZSB1bmhhc2hhYmxlCisgICAgICAgIHRwID0gc2VsZi5yd190eXBlCisgICAgICAgIGlmIHRwIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJubyB3cml0YWJsZSB0eXBlIHRvIHRlc3QiKQorICAgICAgICBiID0gdHAoc2VsZi5fc291cmNlKQorICAgICAgICBtID0gc2VsZi5fdmlldyhiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBoYXNoLCBtKQorCisgICAgZGVmIHRlc3Rfd2Vha3JlZihzZWxmKToKKyAgICAgICAgIyBDaGVjayBtZW1vcnl2aWV3cyBhcmUgd2Vha3JlZmFibGUKKyAgICAgICAgZm9yIHRwIGluIHNlbGYuX3R5cGVzOgorICAgICAgICAgICAgYiA9IHRwKHNlbGYuX3NvdXJjZSkKKyAgICAgICAgICAgIG0gPSBzZWxmLl92aWV3KGIpCisgICAgICAgICAgICBMID0gW10KKyAgICAgICAgICAgIGRlZiBjYWxsYmFjayh3ciwgYj1iKToKKyAgICAgICAgICAgICAgICBMLmFwcGVuZChiKQorICAgICAgICAgICAgd3IgPSB3ZWFrcmVmLnJlZihtLCBjYWxsYmFjaykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMod3IoKSwgbSkKKyAgICAgICAgICAgIGRlbCBtCisgICAgICAgICAgICB0ZXN0LnN1cHBvcnQuZ2NfY29sbGVjdCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHdyKCksIE5vbmUpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKExbMF0sIGIpCisKICMgVmFyaWF0aW9ucyBvbiBzb3VyY2Ugb2JqZWN0cyBmb3IgdGhlIGJ1ZmZlcjogYnl0ZXMtbGlrZSBvYmplY3RzLCB0aGVuIGFycmF5cwogIyB3aXRoIGl0ZW1zaXplID4gMS4KICMgTk9URTogc3VwcG9ydCBmb3IgbXVsdGktZGltZW5zaW9uYWwgb2JqZWN0cyBpcyB1bmltcGxlbWVudGVkLgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9tZXRhY2xhc3MucHkgYi9MaWIvdGVzdC90ZXN0X21ldGFjbGFzcy5weQppbmRleCAyMTlhYjk5Li5lNmZlMjBhIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X21ldGFjbGFzcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X21ldGFjbGFzcy5weQpAQCAtMTU5LDYgKzE1OSw3IEBACiAgICAgLi4uICAgICBiYXIgPSAxMjMKICAgICAuLi4KICAgICBkWydfX21vZHVsZV9fJ10gPSAndGVzdC50ZXN0X21ldGFjbGFzcycKKyAgICBkWydfX3F1YWxuYW1lX18nXSA9ICdDJwogICAgIGRbJ2ZvbyddID0gNAogICAgIGRbJ2ZvbyddID0gNDIKICAgICBkWydiYXInXSA9IDEyMwpAQCAtMTc3LDEyICsxNzgsMTIgQEAKICAgICAuLi4gICAgIGIgPSAyNAogICAgIC4uLgogICAgIG1ldGE6IEMgKCkKLSAgICBuczogWygnX19tb2R1bGVfXycsICd0ZXN0LnRlc3RfbWV0YWNsYXNzJyksICgnYScsIDQyKSwgKCdiJywgMjQpXQorICAgIG5zOiBbKCdfX21vZHVsZV9fJywgJ3Rlc3QudGVzdF9tZXRhY2xhc3MnKSwgKCdfX3F1YWxuYW1lX18nLCAnQycpLCAoJ2EnLCA0MiksICgnYicsIDI0KV0KICAgICBrdzogW10KICAgICA+Pj4gdHlwZShDKSBpcyBkaWN0CiAgICAgVHJ1ZQogICAgID4+PiBwcmludChzb3J0ZWQoQy5pdGVtcygpKSkKLSAgICBbKCdfX21vZHVsZV9fJywgJ3Rlc3QudGVzdF9tZXRhY2xhc3MnKSwgKCdhJywgNDIpLCAoJ2InLCAyNCldCisgICAgWygnX19tb2R1bGVfXycsICd0ZXN0LnRlc3RfbWV0YWNsYXNzJyksICgnX19xdWFsbmFtZV9fJywgJ0MnKSwgKCdhJywgNDIpLCAoJ2InLCAyNCldCiAgICAgPj4+CiAKIEFuZCBhZ2Fpbiwgd2l0aCBhIF9fcHJlcGFyZV9fIGF0dHJpYnV0ZS4KQEAgLTE5OSwxMSArMjAwLDEyIEBACiAgICAgLi4uCiAgICAgcHJlcGFyZTogQyAoKSBbKCdvdGhlcicsICdib29oJyldCiAgICAgZFsnX19tb2R1bGVfXyddID0gJ3Rlc3QudGVzdF9tZXRhY2xhc3MnCisgICAgZFsnX19xdWFsbmFtZV9fJ10gPSAnQycKICAgICBkWydhJ10gPSAxCiAgICAgZFsnYSddID0gMgogICAgIGRbJ2InXSA9IDMKICAgICBtZXRhOiBDICgpCi0gICAgbnM6IFsoJ19fbW9kdWxlX18nLCAndGVzdC50ZXN0X21ldGFjbGFzcycpLCAoJ2EnLCAyKSwgKCdiJywgMyldCisgICAgbnM6IFsoJ19fbW9kdWxlX18nLCAndGVzdC50ZXN0X21ldGFjbGFzcycpLCAoJ19fcXVhbG5hbWVfXycsICdDJyksICgnYScsIDIpLCAoJ2InLCAzKV0KICAgICBrdzogWygnb3RoZXInLCAnYm9vaCcpXQogICAgID4+PgogCkBAIC0yNDYsNyArMjQ4LDEzIEBACiAKICIiIgogCi1fX3Rlc3RfXyA9IHsnZG9jdGVzdHMnIDogZG9jdGVzdHN9CitpbXBvcnQgc3lzCisKKyMgVHJhY2UgZnVuY3Rpb24gaW50cm9kdWNlcyBfX2xvY2Fsc19fIHdoaWNoIGNhdXNlcyB2YXJpb3VzIHRlc3RzIHRvIGZhaWwuCitpZiBoYXNhdHRyKHN5cywgJ2dldHRyYWNlJykgYW5kIHN5cy5nZXR0cmFjZSgpOgorICAgIF9fdGVzdF9fID0ge30KK2Vsc2U6CisgICAgX190ZXN0X18gPSB7J2RvY3Rlc3RzJyA6IGRvY3Rlc3RzfQogCiBkZWYgdGVzdF9tYWluKHZlcmJvc2U9RmFsc2UpOgogICAgIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9taW5pZG9tLnB5IGIvTGliL3Rlc3QvdGVzdF9taW5pZG9tLnB5CmluZGV4IDRhNjliMDAuLmNjNGM5NWIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbWluaWRvbS5weQorKysgYi9MaWIvdGVzdC90ZXN0X21pbmlkb20ucHkKQEAgLTQsOSArNCw3IEBACiBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgdmVyYm9zZSwgcnVuX3VuaXR0ZXN0LCBmaW5kZmlsZQogaW1wb3J0IHVuaXR0ZXN0CiAKLWltcG9ydCB4bWwuZG9tCiBpbXBvcnQgeG1sLmRvbS5taW5pZG9tCi1pbXBvcnQgeG1sLnBhcnNlcnMuZXhwYXQKIAogZnJvbSB4bWwuZG9tLm1pbmlkb20gaW1wb3J0IHBhcnNlLCBOb2RlLCBEb2N1bWVudCwgcGFyc2VTdHJpbmcKIGZyb20geG1sLmRvbS5taW5pZG9tIGltcG9ydCBnZXRET01JbXBsZW1lbnRhdGlvbgpAQCAtMTQsNyArMTIsNiBAQAogCiB0c3RmaWxlID0gZmluZGZpbGUoInRlc3QueG1sIiwgc3ViZGlyPSJ4bWx0ZXN0ZGF0YSIpCiAKLQogIyBUaGUgdGVzdHMgb2YgRG9jdW1lbnRUeXBlIGltcG9ydGluZyB1c2UgdGhlc2UgaGVscGVycyB0byBjb25zdHJ1Y3QKICMgdGhlIGRvY3VtZW50cyB0byB3b3JrIHdpdGgsIHNpbmNlIG5vdCBhbGwgRE9NIGJ1aWxkZXJzIGFjdHVhbGx5CiAjIGNyZWF0ZSB0aGUgRG9jdW1lbnRUeXBlIG5vZGVzLgpAQCAtNTAsNyArNDcsNyBAQAogCiAgICAgZGVmIGNoZWNrV2hvbGVUZXh0KHNlbGYsIG5vZGUsIHMpOgogICAgICAgICB0ID0gbm9kZS53aG9sZVRleHQKLSAgICAgICAgc2VsZi5jb25maXJtKHQgPT0gcywgImxvb2tpbmcgZm9yICVzLCBmb3VuZCAlcyIgJSAocmVwcihzKSwgcmVwcih0KSkpCisgICAgICAgIHNlbGYuY29uZmlybSh0ID09IHMsICJsb29raW5nIGZvciAlciwgZm91bmQgJXIiICUgKHMsIHQpKQogCiAgICAgZGVmIHRlc3RQYXJzZUZyb21GaWxlKHNlbGYpOgogICAgICAgICB3aXRoIG9wZW4odHN0ZmlsZSkgYXMgZmlsZToKQEAgLTI4Miw2ICsyNzksNyBAQAogCiAgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgiZGVmIiwgImdoaSIpCiAgICAgICAgIHNlbGYuY29uZmlybShsZW4oY2hpbGQuYXR0cmlidXRlcykgPT0gMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoeG1sLmRvbS5Ob3RGb3VuZEVyciwgY2hpbGQucmVtb3ZlQXR0cmlidXRlLCAiZm9vIikKICAgICAgICAgY2hpbGQucmVtb3ZlQXR0cmlidXRlKCJkZWYiKQogICAgICAgICBzZWxmLmNvbmZpcm0obGVuKGNoaWxkLmF0dHJpYnV0ZXMpID09IDApCiAgICAgICAgIGRvbS51bmxpbmsoKQpAQCAtMjkzLDYgKzI5MSw4IEBACiAgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnczLm9yZyIsICJ4bWxuczpweXRob24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHA6Ly93d3cucHl0aG9uLm9yZyIpCiAgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3LnB5dGhvbi5vcmciLCAicHl0aG9uOmFiY2F0dHIiLCAiZm9vIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoeG1sLmRvbS5Ob3RGb3VuZEVyciwgY2hpbGQucmVtb3ZlQXR0cmlidXRlTlMsCisgICAgICAgICAgICAiZm9vIiwgImh0dHA6Ly93d3cucHl0aG9uLm9yZyIpCiAgICAgICAgIHNlbGYuY29uZmlybShsZW4oY2hpbGQuYXR0cmlidXRlcykgPT0gMikKICAgICAgICAgY2hpbGQucmVtb3ZlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cucHl0aG9uLm9yZyIsICJhYmNhdHRyIikKICAgICAgICAgc2VsZi5jb25maXJtKGxlbihjaGlsZC5hdHRyaWJ1dGVzKSA9PSAxKQpAQCAtMzA0LDExICszMDQsMjMgQEAKICAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCJzcGFtIiwgImphbSIpCiAgICAgICAgIHNlbGYuY29uZmlybShsZW4oY2hpbGQuYXR0cmlidXRlcykgPT0gMSkKICAgICAgICAgbm9kZSA9IGNoaWxkLmdldEF0dHJpYnV0ZU5vZGUoInNwYW0iKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh4bWwuZG9tLk5vdEZvdW5kRXJyLCBjaGlsZC5yZW1vdmVBdHRyaWJ1dGVOb2RlLAorICAgICAgICAgICAgTm9uZSkKICAgICAgICAgY2hpbGQucmVtb3ZlQXR0cmlidXRlTm9kZShub2RlKQogICAgICAgICBzZWxmLmNvbmZpcm0obGVuKGNoaWxkLmF0dHJpYnV0ZXMpID09IDAKICAgICAgICAgICAgICAgICBhbmQgY2hpbGQuZ2V0QXR0cmlidXRlTm9kZSgic3BhbSIpIGlzIE5vbmUpCisgICAgICAgIGRvbTIgPSBEb2N1bWVudCgpCisgICAgICAgIGNoaWxkMiA9IGRvbTIuYXBwZW5kQ2hpbGQoZG9tLmNyZWF0ZUVsZW1lbnQoImZvbyIpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh4bWwuZG9tLk5vdEZvdW5kRXJyLCBjaGlsZC5yZW1vdmVBdHRyaWJ1dGVOb2RlLAorICAgICAgICAgICAgbm9kZSkKICAgICAgICAgZG9tLnVubGluaygpCiAKKyAgICBkZWYgdGVzdEhhc0F0dHJpYnV0ZShzZWxmKToKKyAgICAgICAgZG9tID0gRG9jdW1lbnQoKQorICAgICAgICBjaGlsZCA9IGRvbS5hcHBlbmRDaGlsZChkb20uY3JlYXRlRWxlbWVudCgiZm9vIikpCisgICAgICAgIGNoaWxkLnNldEF0dHJpYnV0ZSgic3BhbSIsICJqYW0iKQorICAgICAgICBzZWxmLmNvbmZpcm0oY2hpbGQuaGFzQXR0cmlidXRlKCJzcGFtIikpCisKICAgICBkZWYgdGVzdENoYW5nZUF0dHIoc2VsZik6CiAgICAgICAgIGRvbSA9IHBhcnNlU3RyaW5nKCI8YWJjLz4iKQogICAgICAgICBlbCA9IGRvbS5kb2N1bWVudEVsZW1lbnQKQEAgLTU5Miw3ICs2MDQsMTMgQEAKIAogICAgIGRlZiB0ZXN0Rmlyc3RDaGlsZChzZWxmKTogcGFzcwogCi0gICAgZGVmIHRlc3RIYXNDaGlsZE5vZGVzKHNlbGYpOiBwYXNzCisgICAgZGVmIHRlc3RIYXNDaGlsZE5vZGVzKHNlbGYpOgorICAgICAgICBkb20gPSBwYXJzZVN0cmluZygiPGRvYz48Zm9vLz48L2RvYz4iKQorICAgICAgICBkb2MgPSBkb20uZG9jdW1lbnRFbGVtZW50CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkb20uaGFzQ2hpbGROb2RlcygpKQorICAgICAgICBkb20yID0gcGFyc2VTdHJpbmcoIjxkb2MvPiIpCisgICAgICAgIGRvYzIgPSBkb20yLmRvY3VtZW50RWxlbWVudAorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGRvYzIuaGFzQ2hpbGROb2RlcygpKQogCiAgICAgZGVmIF90ZXN0Q2xvbmVFbGVtZW50Q29waWVzQXR0cmlidXRlcyhzZWxmLCBlMSwgZTIsIHRlc3QpOgogICAgICAgICBhdHRyczEgPSBlMS5hdHRyaWJ1dGVzCkBAIC0xMDQxLDQxICsxMDU5LDYgQEAKICAgICAgICAgICAgICAgICAidGVzdCBOb2RlTGlzdC5pdGVtKCkiKQogICAgICAgICBkb2MudW5saW5rKCkKIAotICAgIGRlZiB0ZXN0U0FYMkRPTShzZWxmKToKLSAgICAgICAgZnJvbSB4bWwuZG9tIGltcG9ydCBwdWxsZG9tCi0KLSAgICAgICAgc2F4MmRvbSA9IHB1bGxkb20uU0FYMkRPTSgpCi0gICAgICAgIHNheDJkb20uc3RhcnREb2N1bWVudCgpCi0gICAgICAgIHNheDJkb20uc3RhcnRFbGVtZW50KCJkb2MiLCB7fSkKLSAgICAgICAgc2F4MmRvbS5jaGFyYWN0ZXJzKCJ0ZXh0IikKLSAgICAgICAgc2F4MmRvbS5zdGFydEVsZW1lbnQoInN1YmVsbSIsIHt9KQotICAgICAgICBzYXgyZG9tLmNoYXJhY3RlcnMoInRleHQiKQotICAgICAgICBzYXgyZG9tLmVuZEVsZW1lbnQoInN1YmVsbSIpCi0gICAgICAgIHNheDJkb20uY2hhcmFjdGVycygidGV4dCIpCi0gICAgICAgIHNheDJkb20uZW5kRWxlbWVudCgiZG9jIikKLSAgICAgICAgc2F4MmRvbS5lbmREb2N1bWVudCgpCi0KLSAgICAgICAgZG9jID0gc2F4MmRvbS5kb2N1bWVudAotICAgICAgICByb290ID0gZG9jLmRvY3VtZW50RWxlbWVudAotICAgICAgICAodGV4dDEsIGVsbTEsIHRleHQyKSA9IHJvb3QuY2hpbGROb2RlcwotICAgICAgICB0ZXh0MyA9IGVsbTEuY2hpbGROb2Rlc1swXQotCi0gICAgICAgIHNlbGYuY29uZmlybSh0ZXh0MS5wcmV2aW91c1NpYmxpbmcgaXMgTm9uZSBhbmQKLSAgICAgICAgICAgICAgICB0ZXh0MS5uZXh0U2libGluZyBpcyBlbG0xIGFuZAotICAgICAgICAgICAgICAgIGVsbTEucHJldmlvdXNTaWJsaW5nIGlzIHRleHQxIGFuZAotICAgICAgICAgICAgICAgIGVsbTEubmV4dFNpYmxpbmcgaXMgdGV4dDIgYW5kCi0gICAgICAgICAgICAgICAgdGV4dDIucHJldmlvdXNTaWJsaW5nIGlzIGVsbTEgYW5kCi0gICAgICAgICAgICAgICAgdGV4dDIubmV4dFNpYmxpbmcgaXMgTm9uZSBhbmQKLSAgICAgICAgICAgICAgICB0ZXh0My5wcmV2aW91c1NpYmxpbmcgaXMgTm9uZSBhbmQKLSAgICAgICAgICAgICAgICB0ZXh0My5uZXh0U2libGluZyBpcyBOb25lLCAidGVzdFNBWDJET00gLSBzaWJsaW5ncyIpCi0KLSAgICAgICAgc2VsZi5jb25maXJtKHJvb3QucGFyZW50Tm9kZSBpcyBkb2MgYW5kCi0gICAgICAgICAgICAgICAgdGV4dDEucGFyZW50Tm9kZSBpcyByb290IGFuZAotICAgICAgICAgICAgICAgIGVsbTEucGFyZW50Tm9kZSBpcyByb290IGFuZAotICAgICAgICAgICAgICAgIHRleHQyLnBhcmVudE5vZGUgaXMgcm9vdCBhbmQKLSAgICAgICAgICAgICAgICB0ZXh0My5wYXJlbnROb2RlIGlzIGVsbTEsICJ0ZXN0U0FYMkRPTSAtIHBhcmVudHMiKQotICAgICAgICBkb2MudW5saW5rKCkKLQogICAgIGRlZiB0ZXN0RW5jb2RpbmdzKHNlbGYpOgogICAgICAgICBkb2MgPSBwYXJzZVN0cmluZygnPGZvbz4mI3gyMGFjOzwvZm9vPicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZG9jLnRveG1sKCksCkBAIC0xNTIyLDEyICsxNTA1LDIxIEBACiAgICAgICAgIGRvYy5hcHBlbmRDaGlsZChkb2MuY3JlYXRlQ29tbWVudCgiZm9vLS1iYXIiKSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZG9jLnRveG1sKQogCisKICAgICBkZWYgdGVzdEVtcHR5WE1MTlNWYWx1ZShzZWxmKToKICAgICAgICAgZG9jID0gcGFyc2VTdHJpbmcoIjxlbGVtZW50IHhtbG5zPScnPlxuIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiPGZvby8+XG48L2VsZW1lbnQ+IikKICAgICAgICAgZG9jMiA9IHBhcnNlU3RyaW5nKGRvYy50b3htbCgpKQogICAgICAgICBzZWxmLmNvbmZpcm0oZG9jMi5uYW1lc3BhY2VVUkkgPT0geG1sLmRvbS5FTVBUWV9OQU1FU1BBQ0UpCiAKKyAgICBkZWYgdGVzdERvY1JlbW92ZUNoaWxkKHNlbGYpOgorICAgICAgICBkb2MgPSBwYXJzZSh0c3RmaWxlKQorICAgICAgICB0aXRsZV90YWcgPSBkb2MuZG9jdW1lbnRFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJUSVRMRSIpWzBdCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKCB4bWwuZG9tLk5vdEZvdW5kRXJyLCBkb2MucmVtb3ZlQ2hpbGQsIHRpdGxlX3RhZykKKyAgICAgICAgbnVtX2NoaWxkcmVuX2JlZm9yZSA9IGxlbihkb2MuY2hpbGROb2RlcykKKyAgICAgICAgZG9jLnJlbW92ZUNoaWxkKGRvYy5jaGlsZE5vZGVzWzBdKQorICAgICAgICBudW1fY2hpbGRyZW5fYWZ0ZXIgPSBsZW4oZG9jLmNoaWxkTm9kZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShudW1fY2hpbGRyZW5fYWZ0ZXIgPT0gbnVtX2NoaWxkcmVuX2JlZm9yZSAtIDEpCiAKIGRlZiB0ZXN0X21haW4oKToKICAgICBydW5fdW5pdHRlc3QoTWluaWRvbVRlc3QpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X21tYXAucHkgYi9MaWIvdGVzdC90ZXN0X21tYXAucHkKaW5kZXggMGUxOGFhYi4uMjIzMDAyOCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9tbWFwLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfbW1hcC5weQpAQCAtNDE3LDYgKzQxNywzNSBAQAogICAgICAgICAgICAgbVt4XSA9IGIKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobVt4XSwgYikKIAorICAgIGRlZiB0ZXN0X3JlYWRfYWxsKHNlbGYpOgorICAgICAgICBtID0gbW1hcC5tbWFwKC0xLCAxNikKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKG0uY2xvc2UpCisKKyAgICAgICAgIyBXaXRoIG5vIHBhcmFtZXRlcnMsIG9yIE5vbmUgb3IgYSBuZWdhdGl2ZSBhcmd1bWVudCwgcmVhZHMgYWxsCisgICAgICAgIG0ud3JpdGUoYnl0ZXMocmFuZ2UoMTYpKSkKKyAgICAgICAgbS5zZWVrKDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5yZWFkKCksIGJ5dGVzKHJhbmdlKDE2KSkpCisgICAgICAgIG0uc2Vlayg4KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0ucmVhZCgpLCBieXRlcyhyYW5nZSg4LCAxNikpKQorICAgICAgICBtLnNlZWsoMTYpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5yZWFkKCksIGInJykKKyAgICAgICAgbS5zZWVrKDMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5yZWFkKE5vbmUpLCBieXRlcyhyYW5nZSgzLCAxNikpKQorICAgICAgICBtLnNlZWsoNCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLnJlYWQoLTEpLCBieXRlcyhyYW5nZSg0LCAxNikpKQorICAgICAgICBtLnNlZWsoNSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLnJlYWQoLTIpLCBieXRlcyhyYW5nZSg1LCAxNikpKQorICAgICAgICBtLnNlZWsoOSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLnJlYWQoLTQyKSwgYnl0ZXMocmFuZ2UoOSwgMTYpKSkKKworICAgIGRlZiB0ZXN0X3JlYWRfaW52YWxpZF9hcmcoc2VsZik6CisgICAgICAgIG0gPSBtbWFwLm1tYXAoLTEsIDE2KQorICAgICAgICBzZWxmLmFkZENsZWFudXAobS5jbG9zZSkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG0ucmVhZCwgJ2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbS5yZWFkLCA1LjUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbS5yZWFkLCBbMSwgMiwgM10pCisKICAgICBkZWYgdGVzdF9leHRlbmRlZF9nZXRzbGljZShzZWxmKToKICAgICAgICAgIyBUZXN0IGV4dGVuZGVkIHNsaWNpbmcgYnkgY29tcGFyaW5nIHdpdGggbGlzdCBzbGljaW5nLgogICAgICAgICBzID0gYnl0ZXMocmV2ZXJzZWQocmFuZ2UoMjU2KSkpCkBAIC01MzQsOCArNTYzLDcgQEAKICAgICAgICAgZi5jbG9zZSgpCiAKICAgICBkZWYgdGVzdF9lcnJvcihzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MobW1hcC5lcnJvciwgRW52aXJvbm1lbnRFcnJvcikpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oIm1tYXAuZXJyb3IiLCBzdHIobW1hcC5lcnJvcikpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobW1hcC5lcnJvciwgT1NFcnJvcikKIAogICAgIGRlZiB0ZXN0X2lvX21ldGhvZHMoc2VsZik6CiAgICAgICAgIGRhdGEgPSBiIjAxMjM0NTY3ODkiCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X21vZHVsZS5weSBiL0xpYi90ZXN0L3Rlc3RfbW9kdWxlLnB5CmluZGV4IDE1ODM2Y2EuLmU1YTI1MjUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbW9kdWxlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfbW9kdWxlLnB5CkBAIC01LDYgKzUsMTUgQEAKIGltcG9ydCBzeXMKIE1vZHVsZVR5cGUgPSB0eXBlKHN5cykKIAorY2xhc3MgRnVsbExvYWRlcjoKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbW9kdWxlX3JlcHIoY2xzLCBtKToKKyAgICAgICAgcmV0dXJuICI8bW9kdWxlICd7fScgKGNyYWZ0ZWQpPiIuZm9ybWF0KG0uX19uYW1lX18pCisKK2NsYXNzIEJhcmVMb2FkZXI6CisgICAgcGFzcworCisKIGNsYXNzIE1vZHVsZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF91bmluaXRpYWxpemVkKHNlbGYpOgogICAgICAgICAjIEFuIHVuaW5pdGlhbGl6ZWQgbW9kdWxlIGhhcyBubyBfX2RpY3RfXyBvciBfX25hbWVfXywKQEAgLTcwLDE2ICs3OSwxMDAgQEAKICAgICAgICAgbSA9IE1vZHVsZVR5cGUoImZvbyIpCiAgICAgICAgIG0uZGVzdHJveWVkID0gZGVzdHJveWVkCiAgICAgICAgIHMgPSAiIiJjbGFzcyBBOgotICAgIGRlZiBfX2RlbF9fKHNlbGYsIGRlc3Ryb3llZD1kZXN0cm95ZWQpOgotICAgICAgICBkZXN0cm95ZWQuYXBwZW5kKDEpCi1hID0gQSgpIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGwpOgorICAgICAgICBzZWxmLmwgPSBsCisgICAgZGVmIF9fZGVsX18oc2VsZik6CisgICAgICAgIHNlbGYubC5hcHBlbmQoMSkKK2EgPSBBKGRlc3Ryb3llZCkiIiIKICAgICAgICAgZXhlYyhzLCBtLl9fZGljdF9fKQogICAgICAgICBkZWwgbQogICAgICAgICBnY19jb2xsZWN0KCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZXN0cm95ZWQsIFsxXSkKIAorICAgIGRlZiB0ZXN0X21vZHVsZV9yZXByX21pbmltYWwoc2VsZik6CisgICAgICAgICMgcmVwcnMgd2hlbiBtb2R1bGVzIGhhdmUgbm8gX19maWxlX18sIF9fbmFtZV9fLCBvciBfX2xvYWRlcl9fCisgICAgICAgIG0gPSBNb2R1bGVUeXBlKCdmb28nKQorICAgICAgICBkZWwgbS5fX25hbWVfXworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobSksICI8bW9kdWxlICc/Jz4iKQorCisgICAgZGVmIHRlc3RfbW9kdWxlX3JlcHJfd2l0aF9uYW1lKHNlbGYpOgorICAgICAgICBtID0gTW9kdWxlVHlwZSgnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKG0pLCAiPG1vZHVsZSAnZm9vJz4iKQorCisgICAgZGVmIHRlc3RfbW9kdWxlX3JlcHJfd2l0aF9uYW1lX2FuZF9maWxlbmFtZShzZWxmKToKKyAgICAgICAgbSA9IE1vZHVsZVR5cGUoJ2ZvbycpCisgICAgICAgIG0uX19maWxlX18gPSAnL3RtcC9mb28ucHknCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihtKSwgIjxtb2R1bGUgJ2ZvbycgZnJvbSAnL3RtcC9mb28ucHknPiIpCisKKyAgICBkZWYgdGVzdF9tb2R1bGVfcmVwcl93aXRoX2ZpbGVuYW1lX29ubHkoc2VsZik6CisgICAgICAgIG0gPSBNb2R1bGVUeXBlKCdmb28nKQorICAgICAgICBkZWwgbS5fX25hbWVfXworICAgICAgICBtLl9fZmlsZV9fID0gJy90bXAvZm9vLnB5JworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobSksICI8bW9kdWxlICc/JyBmcm9tICcvdG1wL2Zvby5weSc+IikKKworICAgIGRlZiB0ZXN0X21vZHVsZV9yZXByX3dpdGhfYmFyZV9sb2FkZXJfYnV0X25vX25hbWUoc2VsZik6CisgICAgICAgIG0gPSBNb2R1bGVUeXBlKCdmb28nKQorICAgICAgICBkZWwgbS5fX25hbWVfXworICAgICAgICAjIFllcywgYSBjbGFzcyBub3QgYW4gaW5zdGFuY2UuCisgICAgICAgIG0uX19sb2FkZXJfXyA9IEJhcmVMb2FkZXIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIHJlcHIobSksICI8bW9kdWxlICc/JyAoPGNsYXNzICd0ZXN0LnRlc3RfbW9kdWxlLkJhcmVMb2FkZXInPik+IikKKworICAgIGRlZiB0ZXN0X21vZHVsZV9yZXByX3dpdGhfZnVsbF9sb2FkZXJfYnV0X25vX25hbWUoc2VsZik6CisgICAgICAgICMgbS5fX2xvYWRlcl9fLm1vZHVsZV9yZXByKCkgd2lsbCBmYWlsIGJlY2F1c2UgdGhlIG1vZHVsZSBoYXMgbm8KKyAgICAgICAgIyBtLl9fbmFtZV9fLiAgVGhpcyBleGNlcHRpb24gd2lsbCBnZXQgc3VwcHJlc3NlZCBhbmQgaW5zdGVhZCB0aGUKKyAgICAgICAgIyBsb2FkZXIncyByZXByIHdpbGwgYmUgdXNlZC4KKyAgICAgICAgbSA9IE1vZHVsZVR5cGUoJ2ZvbycpCisgICAgICAgIGRlbCBtLl9fbmFtZV9fCisgICAgICAgICMgWWVzLCBhIGNsYXNzIG5vdCBhbiBpbnN0YW5jZS4KKyAgICAgICAgbS5fX2xvYWRlcl9fID0gRnVsbExvYWRlcgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgcmVwcihtKSwgIjxtb2R1bGUgJz8nICg8Y2xhc3MgJ3Rlc3QudGVzdF9tb2R1bGUuRnVsbExvYWRlcic+KT4iKQorCisgICAgZGVmIHRlc3RfbW9kdWxlX3JlcHJfd2l0aF9iYXJlX2xvYWRlcihzZWxmKToKKyAgICAgICAgbSA9IE1vZHVsZVR5cGUoJ2ZvbycpCisgICAgICAgICMgWWVzLCBhIGNsYXNzIG5vdCBhbiBpbnN0YW5jZS4KKyAgICAgICAgbS5fX2xvYWRlcl9fID0gQmFyZUxvYWRlcgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgcmVwcihtKSwgIjxtb2R1bGUgJ2ZvbycgKDxjbGFzcyAndGVzdC50ZXN0X21vZHVsZS5CYXJlTG9hZGVyJz4pPiIpCisKKyAgICBkZWYgdGVzdF9tb2R1bGVfcmVwcl93aXRoX2Z1bGxfbG9hZGVyKHNlbGYpOgorICAgICAgICBtID0gTW9kdWxlVHlwZSgnZm9vJykKKyAgICAgICAgIyBZZXMsIGEgY2xhc3Mgbm90IGFuIGluc3RhbmNlLgorICAgICAgICBtLl9fbG9hZGVyX18gPSBGdWxsTG9hZGVyCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICByZXByKG0pLCAiPG1vZHVsZSAnZm9vJyAoY3JhZnRlZCk+IikKKworICAgIGRlZiB0ZXN0X21vZHVsZV9yZXByX3dpdGhfYmFyZV9sb2FkZXJfYW5kX2ZpbGVuYW1lKHNlbGYpOgorICAgICAgICAjIEJlY2F1c2UgdGhlIGxvYWRlciBoYXMgbm8gbW9kdWxlX3JlcHIoKSwgdXNlIHRoZSBmaWxlIG5hbWUuCisgICAgICAgIG0gPSBNb2R1bGVUeXBlKCdmb28nKQorICAgICAgICAjIFllcywgYSBjbGFzcyBub3QgYW4gaW5zdGFuY2UuCisgICAgICAgIG0uX19sb2FkZXJfXyA9IEJhcmVMb2FkZXIKKyAgICAgICAgbS5fX2ZpbGVfXyA9ICcvdG1wL2Zvby5weScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKG0pLCAiPG1vZHVsZSAnZm9vJyBmcm9tICcvdG1wL2Zvby5weSc+IikKKworICAgIGRlZiB0ZXN0X21vZHVsZV9yZXByX3dpdGhfZnVsbF9sb2FkZXJfYW5kX2ZpbGVuYW1lKHNlbGYpOgorICAgICAgICAjIEV2ZW4gdGhvdWdoIHRoZSBtb2R1bGUgaGFzIGFuIF9fZmlsZV9fLCB1c2UgX19sb2FkZXJfXy5tb2R1bGVfcmVwcigpCisgICAgICAgIG0gPSBNb2R1bGVUeXBlKCdmb28nKQorICAgICAgICAjIFllcywgYSBjbGFzcyBub3QgYW4gaW5zdGFuY2UuCisgICAgICAgIG0uX19sb2FkZXJfXyA9IEZ1bGxMb2FkZXIKKyAgICAgICAgbS5fX2ZpbGVfXyA9ICcvdG1wL2Zvby5weScKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKG0pLCAiPG1vZHVsZSAnZm9vJyAoY3JhZnRlZCk+IikKKworICAgIGRlZiB0ZXN0X21vZHVsZV9yZXByX2J1aWx0aW4oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihzeXMpLCAiPG1vZHVsZSAnc3lzJyAoYnVpbHQtaW4pPiIpCisKKyAgICBkZWYgdGVzdF9tb2R1bGVfcmVwcl9zb3VyY2Uoc2VsZik6CisgICAgICAgIHIgPSByZXByKHVuaXR0ZXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJbOjI1XSwgIjxtb2R1bGUgJ3VuaXR0ZXN0JyBmcm9tICciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJbLTEzOl0sICJfX2luaXRfXy5weSc+IikKKworICAgICMgZnJvemVuIGFuZCBuYW1lc3BhY2UgbW9kdWxlIHJlcHJzIGFyZSB0ZXN0ZWQgaW4gaW1wb3J0bGliLgorCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBydW5fdW5pdHRlc3QoTW9kdWxlVGVzdHMpCiAKKwogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9tb2R1bGVmaW5kZXIucHkgYi9MaWIvdGVzdC90ZXN0X21vZHVsZWZpbmRlci5weQppbmRleCBhMTg0MjE3Li5jNWZjMzIwIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X21vZHVsZWZpbmRlci5weQorKysgYi9MaWIvdGVzdC90ZXN0X21vZHVsZWZpbmRlci5weQpAQCAtMSw3ICsxLDcgQEAKLWltcG9ydCBfX2Z1dHVyZV9fCiBpbXBvcnQgb3MKK2ltcG9ydCBlcnJubworaW1wb3J0IHNodXRpbAogaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgZGlzdHV0aWxzLmRpcl91dGlsCiBpbXBvcnQgdGVtcGZpbGUKIAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CkBAIC05LDcgKzksNyBAQAogaW1wb3J0IG1vZHVsZWZpbmRlcgogCiBURVNUX0RJUiA9IHRlbXBmaWxlLm1rZHRlbXAoKQotVEVTVF9QQVRIID0gW1RFU1RfRElSLCBvcy5wYXRoLmRpcm5hbWUoX19mdXR1cmVfXy5fX2ZpbGVfXyldCitURVNUX1BBVEggPSBbVEVTVF9ESVIsIG9zLnBhdGguZGlybmFtZSh0ZW1wZmlsZS5fX2ZpbGVfXyldCiAKICMgRWFjaCB0ZXN0IGRlc2NyaXB0aW9uIGlzIGEgbGlzdCBvZiA1IGl0ZW1zOgogIwpAQCAtMTk2LDEyICsxOTYsMTcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAuIGltcG9ydCBiYXIKICIiIl0KIAorCiBkZWYgb3Blbl9maWxlKHBhdGgpOgotICAgICMjcHJpbnQgIiMiLCBvcy5wYXRoLmFic3BhdGgocGF0aCkKICAgICBkaXJuYW1lID0gb3MucGF0aC5kaXJuYW1lKHBhdGgpCi0gICAgZGlzdHV0aWxzLmRpcl91dGlsLm1rcGF0aChkaXJuYW1lKQorICAgIHRyeToKKyAgICAgICAgb3MubWFrZWRpcnMoZGlybmFtZSkKKyAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVFWElTVDoKKyAgICAgICAgICAgIHJhaXNlCiAgICAgcmV0dXJuIG9wZW4ocGF0aCwgInciKQogCisKIGRlZiBjcmVhdGVfcGFja2FnZShzb3VyY2UpOgogICAgIG9maSA9IE5vbmUKICAgICB0cnk6CkBAIC0yMTYsNiArMjIxLDcgQEAKICAgICAgICAgaWYgb2ZpOgogICAgICAgICAgICAgb2ZpLmNsb3NlKCkKIAorCiBjbGFzcyBNb2R1bGVGaW5kZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgX2RvX3Rlc3Qoc2VsZiwgaW5mbywgcmVwb3J0PUZhbHNlKToKICAgICAgICAgaW1wb3J0X3RoaXMsIG1vZHVsZXMsIG1pc3NpbmcsIG1heWJlX21pc3NpbmcsIHNvdXJjZSA9IGluZm8KQEAgLTIzNCwxOSArMjQwLDE3IEBACiAjIyAgICAgICAgICAgICAgICAgICAgaW1wb3J0IHRyYWNlYmFjazsgdHJhY2ViYWNrLnByaW50X2V4YygpCiAjIyAgICAgICAgICAgICAgICBzeXMucGF0aCA9IG9wYXRoCiAjIyAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIG1vZHVsZXMgPSBzZXQobW9kdWxlcykKLSAgICAgICAgICAgIGZvdW5kID0gc2V0KG1mLm1vZHVsZXMua2V5cygpKQotICAgICAgICAgICAgbW9yZSA9IGxpc3QoZm91bmQgLSBtb2R1bGVzKQotICAgICAgICAgICAgbGVzcyA9IGxpc3QobW9kdWxlcyAtIGZvdW5kKQorICAgICAgICAgICAgbW9kdWxlcyA9IHNvcnRlZChzZXQobW9kdWxlcykpCisgICAgICAgICAgICBmb3VuZCA9IHNvcnRlZChtZi5tb2R1bGVzKQogICAgICAgICAgICAgIyBjaGVjayBpZiB3ZSBmb3VuZCB3aGF0IHdlIGV4cGVjdGVkLCBub3QgbW9yZSwgbm90IGxlc3MKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKG1vcmUsIGxlc3MpLCAoW10sIFtdKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm91bmQsIG1vZHVsZXMpCiAKICAgICAgICAgICAgICMgY2hlY2sgZm9yIG1pc3NpbmcgYW5kIG1heWJlIG1pc3NpbmcgbW9kdWxlcwogICAgICAgICAgICAgYmFkLCBtYXliZSA9IG1mLmFueV9taXNzaW5nX21heWJlKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmFkLCBtaXNzaW5nKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtYXliZSwgbWF5YmVfbWlzc2luZykKICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGRpc3R1dGlscy5kaXJfdXRpbC5yZW1vdmVfdHJlZShURVNUX0RJUikKKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoVEVTVF9ESVIpCiAKICAgICBkZWYgdGVzdF9wYWNrYWdlKHNlbGYpOgogICAgICAgICBzZWxmLl9kb190ZXN0KHBhY2thZ2VfdGVzdCkKQEAgLTI1NCwyNSArMjU4LDIzIEBACiAgICAgZGVmIHRlc3RfbWF5YmUoc2VsZik6CiAgICAgICAgIHNlbGYuX2RvX3Rlc3QobWF5YmVfdGVzdCkKIAotICAgIGlmIGdldGF0dHIoX19mdXR1cmVfXywgImFic29sdXRlX2ltcG9ydCIsIE5vbmUpOgorICAgIGRlZiB0ZXN0X21heWJlX25ldyhzZWxmKToKKyAgICAgICAgc2VsZi5fZG9fdGVzdChtYXliZV90ZXN0X25ldykKIAotICAgICAgICBkZWYgdGVzdF9tYXliZV9uZXcoc2VsZik6Ci0gICAgICAgICAgICBzZWxmLl9kb190ZXN0KG1heWJlX3Rlc3RfbmV3KQorICAgIGRlZiB0ZXN0X2Fic29sdXRlX2ltcG9ydHMoc2VsZik6CisgICAgICAgIHNlbGYuX2RvX3Rlc3QoYWJzb2x1dGVfaW1wb3J0X3Rlc3QpCiAKLSAgICAgICAgZGVmIHRlc3RfYWJzb2x1dGVfaW1wb3J0cyhzZWxmKToKLSAgICAgICAgICAgIHNlbGYuX2RvX3Rlc3QoYWJzb2x1dGVfaW1wb3J0X3Rlc3QpCisgICAgZGVmIHRlc3RfcmVsYXRpdmVfaW1wb3J0cyhzZWxmKToKKyAgICAgICAgc2VsZi5fZG9fdGVzdChyZWxhdGl2ZV9pbXBvcnRfdGVzdCkKIAotICAgICAgICBkZWYgdGVzdF9yZWxhdGl2ZV9pbXBvcnRzKHNlbGYpOgotICAgICAgICAgICAgc2VsZi5fZG9fdGVzdChyZWxhdGl2ZV9pbXBvcnRfdGVzdCkKKyAgICBkZWYgdGVzdF9yZWxhdGl2ZV9pbXBvcnRzXzIoc2VsZik6CisgICAgICAgIHNlbGYuX2RvX3Rlc3QocmVsYXRpdmVfaW1wb3J0X3Rlc3RfMikKIAotICAgICAgICBkZWYgdGVzdF9yZWxhdGl2ZV9pbXBvcnRzXzIoc2VsZik6Ci0gICAgICAgICAgICBzZWxmLl9kb190ZXN0KHJlbGF0aXZlX2ltcG9ydF90ZXN0XzIpCisgICAgZGVmIHRlc3RfcmVsYXRpdmVfaW1wb3J0c18zKHNlbGYpOgorICAgICAgICBzZWxmLl9kb190ZXN0KHJlbGF0aXZlX2ltcG9ydF90ZXN0XzMpCiAKLSAgICAgICAgZGVmIHRlc3RfcmVsYXRpdmVfaW1wb3J0c18zKHNlbGYpOgotICAgICAgICAgICAgc2VsZi5fZG9fdGVzdChyZWxhdGl2ZV9pbXBvcnRfdGVzdF8zKQogCiBkZWYgdGVzdF9tYWluKCk6Ci0gICAgZGlzdHV0aWxzLmxvZy5zZXRfdGhyZXNob2xkKGRpc3R1dGlscy5sb2cuV0FSTikKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChNb2R1bGVGaW5kZXJUZXN0KQogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9tdWx0aWJ5dGVjb2RlYy5weSBiL0xpYi90ZXN0L3Rlc3RfbXVsdGlieXRlY29kZWMucHkKaW5kZXggODZjNjhkYy4uZmViN2JkNSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9tdWx0aWJ5dGVjb2RlYy5weQorKysgYi9MaWIvdGVzdC90ZXN0X211bHRpYnl0ZWNvZGVjLnB5CkBAIC0yNDcsMjAgKzI0NywxNiBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShhbnkoeCA+IDB4ODAgZm9yIHggaW4gZSkpCiAKICAgICBkZWYgdGVzdF9idWcxNTcyODMyKHNlbGYpOgotICAgICAgICBpZiBzeXMubWF4dW5pY29kZSA+PSAweDEwMDAwOgotICAgICAgICAgICAgbXl1bmljaHIgPSBjaHIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG15dW5pY2hyID0gbGFtYmRhIHg6IGNocigweEQ3QzArKHg+PjEwKSkgKyBjaHIoMHhEQzAwKyh4JjB4M0ZGKSkKLQogICAgICAgICBmb3IgeCBpbiByYW5nZSgweDEwMDAwLCAweDExMDAwMCk6CiAgICAgICAgICAgICAjIEFueSBJU08gMjAyMiBjb2RlYyB3aWxsIGNhdXNlIHRoZSBzZWdmYXVsdAotICAgICAgICAgICAgbXl1bmljaHIoeCkuZW5jb2RlKCdpc29fMjAyMl9qcCcsICdpZ25vcmUnKQorICAgICAgICAgICAgY2hyKHgpLmVuY29kZSgnaXNvXzIwMjJfanAnLCAnaWdub3JlJykKIAogY2xhc3MgVGVzdFN0YXRlZnVsKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICB0ZXh0ID0gJ1x1NEUxNlx1NEUxNicKICAgICBlbmNvZGluZyA9ICdpc28tMjAyMi1qcCcKICAgICBleHBlY3RlZCA9IGInXHgxYiRCQCRAJCcKLSAgICBleHBlY3RlZF9yZXNldCA9IGInXHgxYiRCQCRAJFx4MWIoQicKKyAgICByZXNldCA9IGInXHgxYihCJworICAgIGV4cGVjdGVkX3Jlc2V0ID0gZXhwZWN0ZWQgKyByZXNldAogCiAgICAgZGVmIHRlc3RfZW5jb2RlKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudGV4dC5lbmNvZGUoc2VsZi5lbmNvZGluZyksIHNlbGYuZXhwZWN0ZWRfcmVzZXQpCkBAIC0yNzEsNiArMjY3LDggQEAKICAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGNoYXIpCiAgICAgICAgICAgICBmb3IgY2hhciBpbiBzZWxmLnRleHQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0cHV0LCBzZWxmLmV4cGVjdGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVuY29kZXIuZW5jb2RlKCcnLCBmaW5hbD1UcnVlKSwgc2VsZi5yZXNldCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbmNvZGVyLmVuY29kZSgnJywgZmluYWw9VHJ1ZSksIGInJykKIAogICAgIGRlZiB0ZXN0X2luY3JlbWVudGFsZW5jb2Rlcl9maW5hbChzZWxmKToKICAgICAgICAgZW5jb2RlciA9IGNvZGVjcy5nZXRpbmNyZW1lbnRhbGVuY29kZXIoc2VsZi5lbmNvZGluZykoKQpAQCAtMjc5LDEyICsyNzcsMTQgQEAKICAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlKGNoYXIsIGluZGV4ID09IGxhc3RfaW5kZXgpCiAgICAgICAgICAgICBmb3IgaW5kZXgsIGNoYXIgaW4gZW51bWVyYXRlKHNlbGYudGV4dCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0cHV0LCBzZWxmLmV4cGVjdGVkX3Jlc2V0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVuY29kZXIuZW5jb2RlKCcnLCBmaW5hbD1UcnVlKSwgYicnKQogCiBjbGFzcyBUZXN0SFpTdGF0ZWZ1bChUZXN0U3RhdGVmdWwpOgogICAgIHRleHQgPSAnXHU4MDRhXHU4MDRhJwogICAgIGVuY29kaW5nID0gJ2h6JwogICAgIGV4cGVjdGVkID0gYid+e0FEQUQnCi0gICAgZXhwZWN0ZWRfcmVzZXQgPSBiJ357QURBRH59JworICAgIHJlc2V0ID0gYid+fScKKyAgICBleHBlY3RlZF9yZXNldCA9IGV4cGVjdGVkICsgcmVzZXQKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KF9fbmFtZV9fKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9tdWx0aXByb2Nlc3NpbmcucHkgYi9MaWIvdGVzdC90ZXN0X211bHRpcHJvY2Vzc2luZy5weQppbmRleCBiODEyZTQ4Li5mNmY0ZjczIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X211bHRpcHJvY2Vzc2luZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X211bHRpcHJvY2Vzc2luZy5weQpAQCAtOCw2ICs4LDcgQEAKIGltcG9ydCBxdWV1ZSBhcyBweXF1ZXVlCiBpbXBvcnQgdGltZQogaW1wb3J0IGlvCitpbXBvcnQgaXRlcnRvb2xzCiBpbXBvcnQgc3lzCiBpbXBvcnQgb3MKIGltcG9ydCBnYwpAQCAtMTcsNiArMTgsNyBAQAogaW1wb3J0IHNvY2tldAogaW1wb3J0IHJhbmRvbQogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBzdHJ1Y3QKIGltcG9ydCB0ZXN0LnN1cHBvcnQKIAogCkBAIC04Myw2ICs4NSwxMyBAQAogCiBXSU4zMiA9IChzeXMucGxhdGZvcm0gPT0gIndpbjMyIikKIAorZnJvbSBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbiBpbXBvcnQgd2FpdAorCitkZWYgd2FpdF9mb3JfaGFuZGxlKGhhbmRsZSwgdGltZW91dCk6CisgICAgaWYgdGltZW91dCBpcyBub3QgTm9uZSBhbmQgdGltZW91dCA8IDAuMDoKKyAgICAgICAgdGltZW91dCA9IE5vbmUKKyAgICByZXR1cm4gd2FpdChbaGFuZGxlXSwgdGltZW91dCkKKwogdHJ5OgogICAgIE1BWEZEID0gb3Muc3lzY29uZigiU0NfT1BFTl9NQVgiKQogZXhjZXB0OgpAQCAtMTk2LDYgKzIwNSwxOCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGN1cnJlbnQuaWRlbnQsIG9zLmdldHBpZCgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGN1cnJlbnQuZXhpdGNvZGUsIE5vbmUpCiAKKyAgICBkZWYgdGVzdF9kYWVtb25fYXJndW1lbnQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuVFlQRSA9PSAidGhyZWFkcyI6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIEJ5IGRlZmF1bHQgdXNlcyB0aGUgY3VycmVudCBwcm9jZXNzJ3MgZGFlbW9uIGZsYWcuCisgICAgICAgIHByb2MwID0gc2VsZi5Qcm9jZXNzKHRhcmdldD1zZWxmLl90ZXN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb2MwLmRhZW1vbiwgc2VsZi5jdXJyZW50X3Byb2Nlc3MoKS5kYWVtb24pCisgICAgICAgIHByb2MxID0gc2VsZi5Qcm9jZXNzKHRhcmdldD1zZWxmLl90ZXN0LCBkYWVtb249VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHByb2MxLmRhZW1vbikKKyAgICAgICAgcHJvYzIgPSBzZWxmLlByb2Nlc3ModGFyZ2V0PXNlbGYuX3Rlc3QsIGRhZW1vbj1GYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShwcm9jMi5kYWVtb24pCisKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgX3Rlc3QoY2xzLCBxLCAqYXJncywgKiprd2RzKToKICAgICAgICAgY3VycmVudCA9IGNscy5jdXJyZW50X3Byb2Nlc3MoKQpAQCAtMjYxLDkgKzI4MiwxOCBAQAogICAgICAgICBzZWxmLmFzc2VydEluKHAsIHNlbGYuYWN0aXZlX2NoaWxkcmVuKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5leGl0Y29kZSwgTm9uZSkKIAorICAgICAgICBqb2luID0gVGltaW5nV3JhcHBlcihwLmpvaW4pCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChqb2luKDApLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFRpbWluZ0FsbW9zdEVxdWFsKGpvaW4uZWxhcHNlZCwgMC4wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuaXNfYWxpdmUoKSwgVHJ1ZSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpvaW4oLTEpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFRpbWluZ0FsbW9zdEVxdWFsKGpvaW4uZWxhcHNlZCwgMC4wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuaXNfYWxpdmUoKSwgVHJ1ZSkKKwogICAgICAgICBwLnRlcm1pbmF0ZSgpCiAKLSAgICAgICAgam9pbiA9IFRpbWluZ1dyYXBwZXIocC5qb2luKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGpvaW4oKSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRUaW1pbmdBbG1vc3RFcXVhbChqb2luLmVsYXBzZWQsIDAuMCkKIApAQCAtMzI4LDYgKzM1OCwyNiBAQAogICAgICAgICAgICAgXQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgZXhwZWN0ZWQpCiAKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3Rlc3Rfc2VudGluZWwoY2xzLCBldmVudCk6CisgICAgICAgIGV2ZW50LndhaXQoMTAuMCkKKworICAgIGRlZiB0ZXN0X3NlbnRpbmVsKHNlbGYpOgorICAgICAgICBpZiBzZWxmLlRZUEUgPT0gInRocmVhZHMiOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGV2ZW50ID0gc2VsZi5FdmVudCgpCisgICAgICAgIHAgPSBzZWxmLlByb2Nlc3ModGFyZ2V0PXNlbGYuX3Rlc3Rfc2VudGluZWwsIGFyZ3M9KGV2ZW50LCkpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBwLnNlbnRpbmVsCisgICAgICAgIHAuc3RhcnQoKQorICAgICAgICBzZWxmLmFkZENsZWFudXAocC5qb2luKQorICAgICAgICBzZW50aW5lbCA9IHAuc2VudGluZWwKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHNlbnRpbmVsLCBpbnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uod2FpdF9mb3JfaGFuZGxlKHNlbnRpbmVsLCB0aW1lb3V0PTAuMCkpCisgICAgICAgIGV2ZW50LnNldCgpCisgICAgICAgIHAuam9pbigpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh3YWl0X2Zvcl9oYW5kbGUoc2VudGluZWwsIHRpbWVvdXQ9REVMVEEpKQorCiAjCiAjCiAjCkBAIC04NjcsNiArOTE3LDEwNCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgRmFsc2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0VGltaW5nQWxtb3N0RXF1YWwod2FpdC5lbGFwc2VkLCBUSU1FT1VUMSkKIAorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfdGVzdF93YWl0Zm9yX2YoY2xzLCBjb25kLCBzdGF0ZSk6CisgICAgICAgIHdpdGggY29uZDoKKyAgICAgICAgICAgIHN0YXRlLnZhbHVlID0gMAorICAgICAgICAgICAgY29uZC5ub3RpZnkoKQorICAgICAgICAgICAgcmVzdWx0ID0gY29uZC53YWl0X2ZvcihsYW1iZGEgOiBzdGF0ZS52YWx1ZT09NCkKKyAgICAgICAgICAgIGlmIG5vdCByZXN1bHQgb3Igc3RhdGUudmFsdWUgIT0gNDoKKyAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoSEFTX1NIQVJFRENUWVBFUywgJ25lZWRzIHNoYXJlZGN0eXBlcycpCisgICAgZGVmIHRlc3Rfd2FpdGZvcihzZWxmKToKKyAgICAgICAgIyBiYXNlZCBvbiB0ZXN0IGluIHRlc3QvbG9ja190ZXN0cy5weQorICAgICAgICBjb25kID0gc2VsZi5Db25kaXRpb24oKQorICAgICAgICBzdGF0ZSA9IHNlbGYuVmFsdWUoJ2knLCAtMSkKKworICAgICAgICBwID0gc2VsZi5Qcm9jZXNzKHRhcmdldD1zZWxmLl90ZXN0X3dhaXRmb3JfZiwgYXJncz0oY29uZCwgc3RhdGUpKQorICAgICAgICBwLmRhZW1vbiA9IFRydWUKKyAgICAgICAgcC5zdGFydCgpCisKKyAgICAgICAgd2l0aCBjb25kOgorICAgICAgICAgICAgcmVzdWx0ID0gY29uZC53YWl0X2ZvcihsYW1iZGEgOiBzdGF0ZS52YWx1ZT09MCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXN1bHQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXRlLnZhbHVlLCAwKQorCisgICAgICAgIGZvciBpIGluIHJhbmdlKDQpOgorICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAxKQorICAgICAgICAgICAgd2l0aCBjb25kOgorICAgICAgICAgICAgICAgIHN0YXRlLnZhbHVlICs9IDEKKyAgICAgICAgICAgICAgICBjb25kLm5vdGlmeSgpCisKKyAgICAgICAgcC5qb2luKDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocC5pc19hbGl2ZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuZXhpdGNvZGUsIDApCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3Rlc3Rfd2FpdGZvcl90aW1lb3V0X2YoY2xzLCBjb25kLCBzdGF0ZSwgc3VjY2Vzcywgc2VtKToKKyAgICAgICAgc2VtLnJlbGVhc2UoKQorICAgICAgICB3aXRoIGNvbmQ6CisgICAgICAgICAgICBleHBlY3RlZCA9IDAuMQorICAgICAgICAgICAgZHQgPSB0aW1lLnRpbWUoKQorICAgICAgICAgICAgcmVzdWx0ID0gY29uZC53YWl0X2ZvcihsYW1iZGEgOiBzdGF0ZS52YWx1ZT09NCwgdGltZW91dD1leHBlY3RlZCkKKyAgICAgICAgICAgIGR0ID0gdGltZS50aW1lKCkgLSBkdAorICAgICAgICAgICAgIyBib3Jyb3cgbG9naWMgaW4gYXNzZXJ0VGltZW91dCgpIGZyb20gdGVzdC9sb2NrX3Rlc3RzLnB5CisgICAgICAgICAgICBpZiBub3QgcmVzdWx0IGFuZCBleHBlY3RlZCAqIDAuNiA8IGR0IDwgZXhwZWN0ZWQgKiAxMC4wOgorICAgICAgICAgICAgICAgIHN1Y2Nlc3MudmFsdWUgPSBUcnVlCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhIQVNfU0hBUkVEQ1RZUEVTLCAnbmVlZHMgc2hhcmVkY3R5cGVzJykKKyAgICBkZWYgdGVzdF93YWl0Zm9yX3RpbWVvdXQoc2VsZik6CisgICAgICAgICMgYmFzZWQgb24gdGVzdCBpbiB0ZXN0L2xvY2tfdGVzdHMucHkKKyAgICAgICAgY29uZCA9IHNlbGYuQ29uZGl0aW9uKCkKKyAgICAgICAgc3RhdGUgPSBzZWxmLlZhbHVlKCdpJywgMCkKKyAgICAgICAgc3VjY2VzcyA9IHNlbGYuVmFsdWUoJ2knLCBGYWxzZSkKKyAgICAgICAgc2VtID0gc2VsZi5TZW1hcGhvcmUoMCkKKworICAgICAgICBwID0gc2VsZi5Qcm9jZXNzKHRhcmdldD1zZWxmLl90ZXN0X3dhaXRmb3JfdGltZW91dF9mLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGNvbmQsIHN0YXRlLCBzdWNjZXNzLCBzZW0pKQorICAgICAgICBwLmRhZW1vbiA9IFRydWUKKyAgICAgICAgcC5zdGFydCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZW0uYWNxdWlyZSh0aW1lb3V0PTEwKSkKKworICAgICAgICAjIE9ubHkgaW5jcmVtZW50IDMgdGltZXMsIHNvIHN0YXRlID09IDQgaXMgbmV2ZXIgcmVhY2hlZC4KKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMyk6CisgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMDEpCisgICAgICAgICAgICB3aXRoIGNvbmQ6CisgICAgICAgICAgICAgICAgc3RhdGUudmFsdWUgKz0gMQorICAgICAgICAgICAgICAgIGNvbmQubm90aWZ5KCkKKworICAgICAgICBwLmpvaW4oNSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN1Y2Nlc3MudmFsdWUpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3Rlc3Rfd2FpdF9yZXN1bHQoY2xzLCBjLCBwaWQpOgorICAgICAgICB3aXRoIGM6CisgICAgICAgICAgICBjLm5vdGlmeSgpCisgICAgICAgIHRpbWUuc2xlZXAoMSkKKyAgICAgICAgaWYgcGlkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgb3Mua2lsbChwaWQsIHNpZ25hbC5TSUdJTlQpCisKKyAgICBkZWYgdGVzdF93YWl0X3Jlc3VsdChzZWxmKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLCBQcm9jZXNzZXNNaXhpbikgYW5kIHN5cy5wbGF0Zm9ybSAhPSAnd2luMzInOgorICAgICAgICAgICAgcGlkID0gb3MuZ2V0cGlkKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHBpZCA9IE5vbmUKKworICAgICAgICBjID0gc2VsZi5Db25kaXRpb24oKQorICAgICAgICB3aXRoIGM6CisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGMud2FpdCgwKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYy53YWl0KDAuMSkpCisKKyAgICAgICAgICAgIHAgPSBzZWxmLlByb2Nlc3ModGFyZ2V0PXNlbGYuX3Rlc3Rfd2FpdF9yZXN1bHQsIGFyZ3M9KGMsIHBpZCkpCisgICAgICAgICAgICBwLnN0YXJ0KCkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGMud2FpdCgxMCkpCisgICAgICAgICAgICBpZiBwaWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5Ym9hcmRJbnRlcnJ1cHQsIGMud2FpdCwgMTApCisKKyAgICAgICAgICAgIHAuam9pbigpCisKIAogY2xhc3MgX1Rlc3RFdmVudChCYXNlVGVzdENhc2UpOgogCkBAIC05MTAsNiArMTA1OCwzNDAgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3YWl0KCksIFRydWUpCiAKICMKKyMgVGVzdHMgZm9yIEJhcnJpZXIgLSBhZGFwdGVkIGZyb20gdGVzdHMgaW4gdGVzdC9sb2NrX3Rlc3RzLnB5CisjCisKKyMgTWFueSBvZiB0aGUgdGVzdHMgZm9yIHRocmVhZGluZy5CYXJyaWVyIHVzZSBhIGxpc3QgYXMgYW4gYXRvbWljCisjIGNvdW50ZXI6IGEgdmFsdWUgaXMgYXBwZW5kZWQgdG8gaW5jcmVtZW50IHRoZSBjb3VudGVyLCBhbmQgdGhlCisjIGxlbmd0aCBvZiB0aGUgbGlzdCBnaXZlcyB0aGUgdmFsdWUuICBXZSB1c2UgdGhlIGNsYXNzIER1bW15TGlzdAorIyBmb3IgdGhlIHNhbWUgcHVycG9zZS4KKworY2xhc3MgX0R1bW15TGlzdChvYmplY3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICB3cmFwcGVyID0gbXVsdGlwcm9jZXNzaW5nLmhlYXAuQnVmZmVyV3JhcHBlcihzdHJ1Y3QuY2FsY3NpemUoJ2knKSkKKyAgICAgICAgbG9jayA9IG11bHRpcHJvY2Vzc2luZy5Mb2NrKCkKKyAgICAgICAgc2VsZi5fX3NldHN0YXRlX18oKHdyYXBwZXIsIGxvY2spKQorICAgICAgICBzZWxmLl9sZW5ndGhidWZbMF0gPSAwCisKKyAgICBkZWYgX19zZXRzdGF0ZV9fKHNlbGYsIHN0YXRlKToKKyAgICAgICAgKHNlbGYuX3dyYXBwZXIsIHNlbGYuX2xvY2spID0gc3RhdGUKKyAgICAgICAgc2VsZi5fbGVuZ3RoYnVmID0gc2VsZi5fd3JhcHBlci5jcmVhdGVfbWVtb3J5dmlldygpLmNhc3QoJ2knKQorCisgICAgZGVmIF9fZ2V0c3RhdGVfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIChzZWxmLl93cmFwcGVyLCBzZWxmLl9sb2NrKQorCisgICAgZGVmIGFwcGVuZChzZWxmLCBfKToKKyAgICAgICAgd2l0aCBzZWxmLl9sb2NrOgorICAgICAgICAgICAgc2VsZi5fbGVuZ3RoYnVmWzBdICs9IDEKKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuX2xvY2s6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fbGVuZ3RoYnVmWzBdCisKK2RlZiBfd2FpdCgpOgorICAgICMgQSBjcnVkZSB3YWl0L3lpZWxkIGZ1bmN0aW9uIG5vdCByZWx5aW5nIG9uIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzLgorICAgIHRpbWUuc2xlZXAoMC4wMSkKKworCitjbGFzcyBCdW5jaChvYmplY3QpOgorICAgICIiIgorICAgIEEgYnVuY2ggb2YgdGhyZWFkcy4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZXNwYWNlLCBmLCBhcmdzLCBuLCB3YWl0X2JlZm9yZV9leGl0PUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIENvbnN0cnVjdCBhIGJ1bmNoIG9mIGBuYCB0aHJlYWRzIHJ1bm5pbmcgdGhlIHNhbWUgZnVuY3Rpb24gYGZgLgorICAgICAgICBJZiBgd2FpdF9iZWZvcmVfZXhpdGAgaXMgVHJ1ZSwgdGhlIHRocmVhZHMgd29uJ3QgdGVybWluYXRlIHVudGlsCisgICAgICAgIGRvX2ZpbmlzaCgpIGlzIGNhbGxlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuZiA9IGYKKyAgICAgICAgc2VsZi5hcmdzID0gYXJncworICAgICAgICBzZWxmLm4gPSBuCisgICAgICAgIHNlbGYuc3RhcnRlZCA9IG5hbWVzcGFjZS5EdW1teUxpc3QoKQorICAgICAgICBzZWxmLmZpbmlzaGVkID0gbmFtZXNwYWNlLkR1bW15TGlzdCgpCisgICAgICAgIHNlbGYuX2Nhbl9leGl0ID0gbmFtZXNwYWNlLkV2ZW50KCkKKyAgICAgICAgaWYgbm90IHdhaXRfYmVmb3JlX2V4aXQ6CisgICAgICAgICAgICBzZWxmLl9jYW5fZXhpdC5zZXQoKQorICAgICAgICBmb3IgaSBpbiByYW5nZShuKToKKyAgICAgICAgICAgIHAgPSBuYW1lc3BhY2UuUHJvY2Vzcyh0YXJnZXQ9c2VsZi50YXNrKQorICAgICAgICAgICAgcC5kYWVtb24gPSBUcnVlCisgICAgICAgICAgICBwLnN0YXJ0KCkKKworICAgIGRlZiB0YXNrKHNlbGYpOgorICAgICAgICBwaWQgPSBvcy5nZXRwaWQoKQorICAgICAgICBzZWxmLnN0YXJ0ZWQuYXBwZW5kKHBpZCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5mKCpzZWxmLmFyZ3MpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLmZpbmlzaGVkLmFwcGVuZChwaWQpCisgICAgICAgICAgICBzZWxmLl9jYW5fZXhpdC53YWl0KDMwKQorICAgICAgICAgICAgYXNzZXJ0IHNlbGYuX2Nhbl9leGl0LmlzX3NldCgpCisKKyAgICBkZWYgd2FpdF9mb3Jfc3RhcnRlZChzZWxmKToKKyAgICAgICAgd2hpbGUgbGVuKHNlbGYuc3RhcnRlZCkgPCBzZWxmLm46CisgICAgICAgICAgICBfd2FpdCgpCisKKyAgICBkZWYgd2FpdF9mb3JfZmluaXNoZWQoc2VsZik6CisgICAgICAgIHdoaWxlIGxlbihzZWxmLmZpbmlzaGVkKSA8IHNlbGYubjoKKyAgICAgICAgICAgIF93YWl0KCkKKworICAgIGRlZiBkb19maW5pc2goc2VsZik6CisgICAgICAgIHNlbGYuX2Nhbl9leGl0LnNldCgpCisKKworY2xhc3MgQXBwZW5kVHJ1ZShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvYmopOgorICAgICAgICBzZWxmLm9iaiA9IG9iagorICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAgICAgICAgc2VsZi5vYmouYXBwZW5kKFRydWUpCisKKworY2xhc3MgX1Rlc3RCYXJyaWVyKEJhc2VUZXN0Q2FzZSk6CisgICAgIiIiCisgICAgVGVzdHMgZm9yIEJhcnJpZXIgb2JqZWN0cy4KKyAgICAiIiIKKyAgICBOID0gNQorICAgIGRlZmF1bHRUaW1lb3V0ID0gMzAuMCAgIyBYWFggU2xvdyBXaW5kb3dzIGJ1aWxkYm90cyBuZWVkIGdlbmVyb3VzIHRpbWVvdXQKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5iYXJyaWVyID0gc2VsZi5CYXJyaWVyKHNlbGYuTiwgdGltZW91dD1zZWxmLmRlZmF1bHRUaW1lb3V0KQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBzZWxmLmJhcnJpZXIuYWJvcnQoKQorICAgICAgICBzZWxmLmJhcnJpZXIgPSBOb25lCisKKyAgICBkZWYgRHVtbXlMaXN0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLlRZUEUgPT0gJ3RocmVhZHMnOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGVsaWYgc2VsZi5UWVBFID09ICdtYW5hZ2VyJzoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm1hbmFnZXIubGlzdCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gX0R1bW15TGlzdCgpCisKKyAgICBkZWYgcnVuX3RocmVhZHMoc2VsZiwgZiwgYXJncyk6CisgICAgICAgIGIgPSBCdW5jaChzZWxmLCBmLCBhcmdzLCBzZWxmLk4tMSkKKyAgICAgICAgZigqYXJncykKKyAgICAgICAgYi53YWl0X2Zvcl9maW5pc2hlZCgpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbXVsdGlwYXNzKGNscywgYmFycmllciwgcmVzdWx0cywgbik6CisgICAgICAgIG0gPSBiYXJyaWVyLnBhcnRpZXMKKyAgICAgICAgYXNzZXJ0IG0gPT0gY2xzLk4KKyAgICAgICAgZm9yIGkgaW4gcmFuZ2Uobik6CisgICAgICAgICAgICByZXN1bHRzWzBdLmFwcGVuZChUcnVlKQorICAgICAgICAgICAgYXNzZXJ0IGxlbihyZXN1bHRzWzFdKSA9PSBpICogbQorICAgICAgICAgICAgYmFycmllci53YWl0KCkKKyAgICAgICAgICAgIHJlc3VsdHNbMV0uYXBwZW5kKFRydWUpCisgICAgICAgICAgICBhc3NlcnQgbGVuKHJlc3VsdHNbMF0pID09IChpICsgMSkgKiBtCisgICAgICAgICAgICBiYXJyaWVyLndhaXQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBhc3NlcnQgYmFycmllci5uX3dhaXRpbmcgPT0gMAorICAgICAgICBleGNlcHQgTm90SW1wbGVtZW50ZWRFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgYXNzZXJ0IG5vdCBiYXJyaWVyLmJyb2tlbgorCisgICAgZGVmIHRlc3RfYmFycmllcihzZWxmLCBwYXNzZXM9MSk6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHRoYXQgYSBiYXJyaWVyIGlzIHBhc3NlZCBpbiBsb2Nrc3RlcAorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0cyA9IFtzZWxmLkR1bW15TGlzdCgpLCBzZWxmLkR1bW15TGlzdCgpXQorICAgICAgICBzZWxmLnJ1bl90aHJlYWRzKHNlbGYubXVsdGlwYXNzLCAoc2VsZi5iYXJyaWVyLCByZXN1bHRzLCBwYXNzZXMpKQorCisgICAgZGVmIHRlc3RfYmFycmllcl8xMChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgdGhhdCBhIGJhcnJpZXIgd29ya3MgZm9yIDEwIGNvbnNlY3V0aXZlIHJ1bnMKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzZWxmLnRlc3RfYmFycmllcigxMCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfdGVzdF93YWl0X3JldHVybl9mKGNscywgYmFycmllciwgcXVldWUpOgorICAgICAgICByZXMgPSBiYXJyaWVyLndhaXQoKQorICAgICAgICBxdWV1ZS5wdXQocmVzKQorCisgICAgZGVmIHRlc3Rfd2FpdF9yZXR1cm4oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICB0ZXN0IHRoZSByZXR1cm4gdmFsdWUgZnJvbSBiYXJyaWVyLndhaXQKKyAgICAgICAgIiIiCisgICAgICAgIHF1ZXVlID0gc2VsZi5RdWV1ZSgpCisgICAgICAgIHNlbGYucnVuX3RocmVhZHMoc2VsZi5fdGVzdF93YWl0X3JldHVybl9mLCAoc2VsZi5iYXJyaWVyLCBxdWV1ZSkpCisgICAgICAgIHJlc3VsdHMgPSBbcXVldWUuZ2V0KCkgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5OKV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHRzLmNvdW50KDApLCAxKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF90ZXN0X2FjdGlvbl9mKGNscywgYmFycmllciwgcmVzdWx0cyk6CisgICAgICAgIGJhcnJpZXIud2FpdCgpCisgICAgICAgIGlmIGxlbihyZXN1bHRzKSAhPSAxOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yCisKKyAgICBkZWYgdGVzdF9hY3Rpb24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHRoZSAnYWN0aW9uJyBjYWxsYmFjaworICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0cyA9IHNlbGYuRHVtbXlMaXN0KCkKKyAgICAgICAgYmFycmllciA9IHNlbGYuQmFycmllcihzZWxmLk4sIGFjdGlvbj1BcHBlbmRUcnVlKHJlc3VsdHMpKQorICAgICAgICBzZWxmLnJ1bl90aHJlYWRzKHNlbGYuX3Rlc3RfYWN0aW9uX2YsIChiYXJyaWVyLCByZXN1bHRzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVzdWx0cyksIDEpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3Rlc3RfYWJvcnRfZihjbHMsIGJhcnJpZXIsIHJlc3VsdHMxLCByZXN1bHRzMik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGkgPSBiYXJyaWVyLndhaXQoKQorICAgICAgICAgICAgaWYgaSA9PSBjbHMuTi8vMjoKKyAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IKKyAgICAgICAgICAgIGJhcnJpZXIud2FpdCgpCisgICAgICAgICAgICByZXN1bHRzMS5hcHBlbmQoVHJ1ZSkKKyAgICAgICAgZXhjZXB0IHRocmVhZGluZy5Ccm9rZW5CYXJyaWVyRXJyb3I6CisgICAgICAgICAgICByZXN1bHRzMi5hcHBlbmQoVHJ1ZSkKKyAgICAgICAgZXhjZXB0IFJ1bnRpbWVFcnJvcjoKKyAgICAgICAgICAgIGJhcnJpZXIuYWJvcnQoKQorCisgICAgZGVmIHRlc3RfYWJvcnQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHRoYXQgYW4gYWJvcnQgd2lsbCBwdXQgdGhlIGJhcnJpZXIgaW4gYSBicm9rZW4gc3RhdGUKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdHMxID0gc2VsZi5EdW1teUxpc3QoKQorICAgICAgICByZXN1bHRzMiA9IHNlbGYuRHVtbXlMaXN0KCkKKyAgICAgICAgc2VsZi5ydW5fdGhyZWFkcyhzZWxmLl90ZXN0X2Fib3J0X2YsCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuYmFycmllciwgcmVzdWx0czEsIHJlc3VsdHMyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVzdWx0czEpLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXN1bHRzMiksIHNlbGYuTi0xKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5iYXJyaWVyLmJyb2tlbikKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfdGVzdF9yZXNldF9mKGNscywgYmFycmllciwgcmVzdWx0czEsIHJlc3VsdHMyLCByZXN1bHRzMyk6CisgICAgICAgIGkgPSBiYXJyaWVyLndhaXQoKQorICAgICAgICBpZiBpID09IGNscy5OLy8yOgorICAgICAgICAgICAgIyBXYWl0IHVudGlsIHRoZSBvdGhlciB0aHJlYWRzIGFyZSBhbGwgaW4gdGhlIGJhcnJpZXIuCisgICAgICAgICAgICB3aGlsZSBiYXJyaWVyLm5fd2FpdGluZyA8IGNscy5OLTE6CisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAwMSkKKyAgICAgICAgICAgIGJhcnJpZXIucmVzZXQoKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGJhcnJpZXIud2FpdCgpCisgICAgICAgICAgICAgICAgcmVzdWx0czEuYXBwZW5kKFRydWUpCisgICAgICAgICAgICBleGNlcHQgdGhyZWFkaW5nLkJyb2tlbkJhcnJpZXJFcnJvcjoKKyAgICAgICAgICAgICAgICByZXN1bHRzMi5hcHBlbmQoVHJ1ZSkKKyAgICAgICAgIyBOb3csIHBhc3MgdGhlIGJhcnJpZXIgYWdhaW4KKyAgICAgICAgYmFycmllci53YWl0KCkKKyAgICAgICAgcmVzdWx0czMuYXBwZW5kKFRydWUpCisKKyAgICBkZWYgdGVzdF9yZXNldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgdGhhdCBhICdyZXNldCcgb24gYSBiYXJyaWVyIGZyZWVzIHRoZSB3YWl0aW5nIHRocmVhZHMKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdHMxID0gc2VsZi5EdW1teUxpc3QoKQorICAgICAgICByZXN1bHRzMiA9IHNlbGYuRHVtbXlMaXN0KCkKKyAgICAgICAgcmVzdWx0czMgPSBzZWxmLkR1bW15TGlzdCgpCisgICAgICAgIHNlbGYucnVuX3RocmVhZHMoc2VsZi5fdGVzdF9yZXNldF9mLAorICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmJhcnJpZXIsIHJlc3VsdHMxLCByZXN1bHRzMiwgcmVzdWx0czMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXN1bHRzMSksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlc3VsdHMyKSwgc2VsZi5OLTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlc3VsdHMzKSwgc2VsZi5OKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF90ZXN0X2Fib3J0X2FuZF9yZXNldF9mKGNscywgYmFycmllciwgYmFycmllcjIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMxLCByZXN1bHRzMiwgcmVzdWx0czMpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpID0gYmFycmllci53YWl0KCkKKyAgICAgICAgICAgIGlmIGkgPT0gY2xzLk4vLzI6CisgICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yCisgICAgICAgICAgICBiYXJyaWVyLndhaXQoKQorICAgICAgICAgICAgcmVzdWx0czEuYXBwZW5kKFRydWUpCisgICAgICAgIGV4Y2VwdCB0aHJlYWRpbmcuQnJva2VuQmFycmllckVycm9yOgorICAgICAgICAgICAgcmVzdWx0czIuYXBwZW5kKFRydWUpCisgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6CisgICAgICAgICAgICBiYXJyaWVyLmFib3J0KCkKKyAgICAgICAgIyBTeW5jaHJvbml6ZSBhbmQgcmVzZXQgdGhlIGJhcnJpZXIuICBNdXN0IHN5bmNocm9uaXplIGZpcnN0IHNvCisgICAgICAgICMgdGhhdCBldmVyeW9uZSBoYXMgbGVmdCBpdCB3aGVuIHdlIHJlc2V0LCBhbmQgYWZ0ZXIgc28gdGhhdCBubworICAgICAgICAjIG9uZSBlbnRlcnMgaXQgYmVmb3JlIHRoZSByZXNldC4KKyAgICAgICAgaWYgYmFycmllcjIud2FpdCgpID09IGNscy5OLy8yOgorICAgICAgICAgICAgYmFycmllci5yZXNldCgpCisgICAgICAgIGJhcnJpZXIyLndhaXQoKQorICAgICAgICBiYXJyaWVyLndhaXQoKQorICAgICAgICByZXN1bHRzMy5hcHBlbmQoVHJ1ZSkKKworICAgIGRlZiB0ZXN0X2Fib3J0X2FuZF9yZXNldChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgdGhhdCBhIGJhcnJpZXIgY2FuIGJlIHJlc2V0IGFmdGVyIGJlaW5nIGJyb2tlbi4KKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdHMxID0gc2VsZi5EdW1teUxpc3QoKQorICAgICAgICByZXN1bHRzMiA9IHNlbGYuRHVtbXlMaXN0KCkKKyAgICAgICAgcmVzdWx0czMgPSBzZWxmLkR1bW15TGlzdCgpCisgICAgICAgIGJhcnJpZXIyID0gc2VsZi5CYXJyaWVyKHNlbGYuTikKKworICAgICAgICBzZWxmLnJ1bl90aHJlYWRzKHNlbGYuX3Rlc3RfYWJvcnRfYW5kX3Jlc2V0X2YsCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuYmFycmllciwgYmFycmllcjIsIHJlc3VsdHMxLCByZXN1bHRzMiwgcmVzdWx0czMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXN1bHRzMSksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlc3VsdHMyKSwgc2VsZi5OLTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHJlc3VsdHMzKSwgc2VsZi5OKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF90ZXN0X3RpbWVvdXRfZihjbHMsIGJhcnJpZXIsIHJlc3VsdHMpOgorICAgICAgICBpID0gYmFycmllci53YWl0KCkKKyAgICAgICAgaWYgaSA9PSBjbHMuTi8vMjoKKyAgICAgICAgICAgICMgT25lIHRocmVhZCBpcyBsYXRlIQorICAgICAgICAgICAgdGltZS5zbGVlcCgxLjApCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGJhcnJpZXIud2FpdCgwLjUpCisgICAgICAgIGV4Y2VwdCB0aHJlYWRpbmcuQnJva2VuQmFycmllckVycm9yOgorICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3RpbWVvdXQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHdhaXQodGltZW91dCkKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdHMgPSBzZWxmLkR1bW15TGlzdCgpCisgICAgICAgIHNlbGYucnVuX3RocmVhZHMoc2VsZi5fdGVzdF90aW1lb3V0X2YsIChzZWxmLmJhcnJpZXIsIHJlc3VsdHMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXN1bHRzKSwgc2VsZi5iYXJyaWVyLnBhcnRpZXMpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX3Rlc3RfZGVmYXVsdF90aW1lb3V0X2YoY2xzLCBiYXJyaWVyLCByZXN1bHRzKToKKyAgICAgICAgaSA9IGJhcnJpZXIud2FpdChjbHMuZGVmYXVsdFRpbWVvdXQpCisgICAgICAgIGlmIGkgPT0gY2xzLk4vLzI6CisgICAgICAgICAgICAjIE9uZSB0aHJlYWQgaXMgbGF0ZXIgdGhhbiB0aGUgZGVmYXVsdCB0aW1lb3V0CisgICAgICAgICAgICB0aW1lLnNsZWVwKDEuMCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYmFycmllci53YWl0KCkKKyAgICAgICAgZXhjZXB0IHRocmVhZGluZy5Ccm9rZW5CYXJyaWVyRXJyb3I6CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChUcnVlKQorCisgICAgZGVmIHRlc3RfZGVmYXVsdF90aW1lb3V0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCB0aGUgYmFycmllcidzIGRlZmF1bHQgdGltZW91dAorICAgICAgICAiIiIKKyAgICAgICAgYmFycmllciA9IHNlbGYuQmFycmllcihzZWxmLk4sIHRpbWVvdXQ9MC41KQorICAgICAgICByZXN1bHRzID0gc2VsZi5EdW1teUxpc3QoKQorICAgICAgICBzZWxmLnJ1bl90aHJlYWRzKHNlbGYuX3Rlc3RfZGVmYXVsdF90aW1lb3V0X2YsIChiYXJyaWVyLCByZXN1bHRzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVzdWx0cyksIGJhcnJpZXIucGFydGllcykKKworICAgIGRlZiB0ZXN0X3NpbmdsZV90aHJlYWQoc2VsZik6CisgICAgICAgIGIgPSBzZWxmLkJhcnJpZXIoMSkKKyAgICAgICAgYi53YWl0KCkKKyAgICAgICAgYi53YWl0KCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfdGVzdF90aG91c2FuZF9mKGNscywgYmFycmllciwgcGFzc2VzLCBjb25uLCBsb2NrKToKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UocGFzc2VzKToKKyAgICAgICAgICAgIGJhcnJpZXIud2FpdCgpCisgICAgICAgICAgICB3aXRoIGxvY2s6CisgICAgICAgICAgICAgICAgY29ubi5zZW5kKGkpCisKKyAgICBkZWYgdGVzdF90aG91c2FuZChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5UWVBFID09ICdtYW5hZ2VyJzoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBwYXNzZXMgPSAxMDAwCisgICAgICAgIGxvY2sgPSBzZWxmLkxvY2soKQorICAgICAgICBjb25uLCBjaGlsZF9jb25uID0gc2VsZi5QaXBlKEZhbHNlKQorICAgICAgICBmb3IgaiBpbiByYW5nZShzZWxmLk4pOgorICAgICAgICAgICAgcCA9IHNlbGYuUHJvY2Vzcyh0YXJnZXQ9c2VsZi5fdGVzdF90aG91c2FuZF9mLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oc2VsZi5iYXJyaWVyLCBwYXNzZXMsIGNoaWxkX2Nvbm4sIGxvY2spKQorICAgICAgICAgICAgcC5zdGFydCgpCisKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UocGFzc2VzKToKKyAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKHNlbGYuTik6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb25uLnJlY3YoKSwgaSkKKworIwogIwogIwogCkBAIC0xMTI5LDYgKzE2MTEsOSBAQAogICAgIHRpbWUuc2xlZXAod2FpdCkKICAgICByZXR1cm4geCp4CiAKK2RlZiBtdWwoeCwgeSk6CisgICAgcmV0dXJuIHgqeQorCiBjbGFzcyBfVGVzdFBvb2woQmFzZVRlc3RDYXNlKToKIAogICAgIGRlZiB0ZXN0X2FwcGx5KHNlbGYpOgpAQCAtMTE0Miw2ICsxNjI3LDIwIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG1hcChzcXIsIGxpc3QocmFuZ2UoMTAwKSksIGNodW5rc2l6ZT0yMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChtYXAoc3FyLCBsaXN0KHJhbmdlKDEwMCkpKSkpCiAKKyAgICBkZWYgdGVzdF9zdGFybWFwKHNlbGYpOgorICAgICAgICBwc21hcCA9IHNlbGYucG9vbC5zdGFybWFwCisgICAgICAgIHR1cGxlcyA9IGxpc3QoemlwKHJhbmdlKDEwKSwgcmFuZ2UoOSwtMSwgLTEpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwc21hcChtdWwsIHR1cGxlcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChpdGVydG9vbHMuc3Rhcm1hcChtdWwsIHR1cGxlcykpKQorICAgICAgICB0dXBsZXMgPSBsaXN0KHppcChyYW5nZSgxMDApLCByYW5nZSg5OSwtMSwgLTEpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwc21hcChtdWwsIHR1cGxlcywgY2h1bmtzaXplPTIwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KGl0ZXJ0b29scy5zdGFybWFwKG11bCwgdHVwbGVzKSkpCisKKyAgICBkZWYgdGVzdF9zdGFybWFwX2FzeW5jKHNlbGYpOgorICAgICAgICB0dXBsZXMgPSBsaXN0KHppcChyYW5nZSgxMDApLCByYW5nZSg5OSwtMSwgLTEpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnBvb2wuc3Rhcm1hcF9hc3luYyhtdWwsIHR1cGxlcykuZ2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChpdGVydG9vbHMuc3Rhcm1hcChtdWwsIHR1cGxlcykpKQorCiAgICAgZGVmIHRlc3RfbWFwX2NodW5rc2l6ZShzZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5wb29sLm1hcF9hc3luYyhzcXIsIFtdLCBjaHVua3NpemU9MSkuZ2V0KHRpbWVvdXQ9VElNRU9VVDEpCkBAIC0xMjIwLDYgKzE3MTksMTUgQEAKICAgICAgICAgcC5jbG9zZSgpCiAgICAgICAgIHAuam9pbigpCiAKKyAgICBkZWYgdGVzdF9jb250ZXh0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLlRZUEUgPT0gJ3Byb2Nlc3Nlcyc6CisgICAgICAgICAgICBMID0gbGlzdChyYW5nZSgxMCkpCisgICAgICAgICAgICBleHBlY3RlZCA9IFtzcXIoaSkgZm9yIGkgaW4gTF0KKyAgICAgICAgICAgIHdpdGggbXVsdGlwcm9jZXNzaW5nLlBvb2woMikgYXMgcDoKKyAgICAgICAgICAgICAgICByID0gcC5tYXBfYXN5bmMoc3FyLCBMKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoci5nZXQoKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgcC5tYXBfYXN5bmMsIHNxciwgTCkKKwogZGVmIHJhaXNpbmcoKToKICAgICByYWlzZSBLZXlFcnJvcigia2V5IikKIApAQCAtMTMyMSw2ICsxODI5LDExIEBACiAgICAgIyBydW4gYWZ0ZXIgYWxsIHRoZSBvdGhlciB0ZXN0cyBmb3IgdGhlIG1hbmFnZXIuICBJdCB0ZXN0cyB0aGF0CiAgICAgIyB0aGVyZSBoYXZlIGJlZW4gbm8gInJlZmVyZW5jZSBsZWFrcyIgZm9yIHRoZSBtYW5hZ2VyJ3Mgc2hhcmVkCiAgICAgIyBvYmplY3RzLiAgTm90ZSB0aGUgY29tbWVudCBpbiBfVGVzdFBvb2wudGVzdF90ZXJtaW5hdGUoKS4KKworICAgICMgSWYgc29tZSBvdGhlciB0ZXN0IHVzaW5nIE1hbmFnZXJNaXhpbi5tYW5hZ2VyIGZhaWxzLCB0aGVuIHRoZQorICAgICMgcmFpc2VkIGV4Y2VwdGlvbiBtYXkga2VlcCBhbGl2ZSBhIGZyYW1lIHdoaWNoIGhvbGRzIGEgcmVmZXJlbmNlCisgICAgIyB0byBhIG1hbmFnZWQgb2JqZWN0LiAgVGhpcyB3aWxsIGNhdXNlIHRlc3RfbnVtYmVyX29mX29iamVjdHMgdG8KKyAgICAjIGFsc28gZmFpbC4KICAgICBBTExPV0VEX1RZUEVTID0gKCdtYW5hZ2VyJywpCiAKICAgICBkZWYgdGVzdF9udW1iZXJfb2Zfb2JqZWN0cyhzZWxmKToKQEAgLTEzNzUsNyArMTg4OCwyNyBAQAogICAgIGRlZiB0ZXN0X215bWFuYWdlcihzZWxmKToKICAgICAgICAgbWFuYWdlciA9IE15TWFuYWdlcigpCiAgICAgICAgIG1hbmFnZXIuc3RhcnQoKQorICAgICAgICBzZWxmLmNvbW1vbihtYW5hZ2VyKQorICAgICAgICBtYW5hZ2VyLnNodXRkb3duKCkKIAorICAgICAgICAjIElmIHRoZSBtYW5hZ2VyIHByb2Nlc3MgZXhpdGVkIGNsZWFubHkgdGhlbiB0aGUgZXhpdGNvZGUKKyAgICAgICAgIyB3aWxsIGJlIHplcm8uICBPdGhlcndpc2UgKGFmdGVyIGEgc2hvcnQgdGltZW91dCkKKyAgICAgICAgIyB0ZXJtaW5hdGUoKSBpcyB1c2VkLCByZXN1bHRpbmcgaW4gYW4gZXhpdGNvZGUgb2YgLVNJR1RFUk0uCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFuYWdlci5fcHJvY2Vzcy5leGl0Y29kZSwgMCkKKworICAgIGRlZiB0ZXN0X215bWFuYWdlcl9jb250ZXh0KHNlbGYpOgorICAgICAgICB3aXRoIE15TWFuYWdlcigpIGFzIG1hbmFnZXI6CisgICAgICAgICAgICBzZWxmLmNvbW1vbihtYW5hZ2VyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1hbmFnZXIuX3Byb2Nlc3MuZXhpdGNvZGUsIDApCisKKyAgICBkZWYgdGVzdF9teW1hbmFnZXJfY29udGV4dF9wcmVzdGFydGVkKHNlbGYpOgorICAgICAgICBtYW5hZ2VyID0gTXlNYW5hZ2VyKCkKKyAgICAgICAgbWFuYWdlci5zdGFydCgpCisgICAgICAgIHdpdGggbWFuYWdlcjoKKyAgICAgICAgICAgIHNlbGYuY29tbW9uKG1hbmFnZXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFuYWdlci5fcHJvY2Vzcy5leGl0Y29kZSwgMCkKKworICAgIGRlZiBjb21tb24oc2VsZiwgbWFuYWdlcik6CiAgICAgICAgIGZvbyA9IG1hbmFnZXIuRm9vKCkKICAgICAgICAgYmFyID0gbWFuYWdlci5CYXIoKQogICAgICAgICBiYXogPSBtYW5hZ2VyLmJheigpCkBAIC0xMzk4LDcgKzE5MzEsNiBAQAogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChiYXopLCBbaSppIGZvciBpIGluIHJhbmdlKDEwKV0pCiAKLSAgICAgICAgbWFuYWdlci5zaHV0ZG93bigpCiAKICMKICMgVGVzdCBvZiBjb25uZWN0aW5nIHRvIGEgcmVtb3RlIHNlcnZlciBhbmQgdXNpbmcgeG1scnBjbGliIGZvciBzZXJpYWxpemF0aW9uCkBAIC0xNTY5LDYgKzIxMDEsOSBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvbGwoKSwgRmFsc2UpCiAgICAgICAgIHNlbGYuYXNzZXJ0VGltaW5nQWxtb3N0RXF1YWwocG9sbC5lbGFwc2VkLCAwKQogCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9sbCgtMSksIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydFRpbWluZ0FsbW9zdEVxdWFsKHBvbGwuZWxhcHNlZCwgMCkKKwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvbGwoVElNRU9VVDEpLCBGYWxzZSkKICAgICAgICAgc2VsZi5hc3NlcnRUaW1pbmdBbG1vc3RFcXVhbChwb2xsLmVsYXBzZWQsIFRJTUVPVVQxKQogCkBAIC0xNzU0LDYgKzIyODksNDMgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCByZWR1Y3Rpb24ucmVjdl9oYW5kbGUsIGNvbm4pCiAgICAgICAgIHAuam9pbigpCiAKKyAgICBkZWYgdGVzdF9jb250ZXh0KHNlbGYpOgorICAgICAgICBhLCBiID0gc2VsZi5QaXBlKCkKKworICAgICAgICB3aXRoIGEsIGI6CisgICAgICAgICAgICBhLnNlbmQoMTcyOSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYi5yZWN2KCksIDE3MjkpCisgICAgICAgICAgICBpZiBzZWxmLlRZUEUgPT0gJ3Byb2Nlc3Nlcyc6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShhLmNsb3NlZCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGIuY2xvc2VkKQorCisgICAgICAgIGlmIHNlbGYuVFlQRSA9PSAncHJvY2Vzc2VzJzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShhLmNsb3NlZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShiLmNsb3NlZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGEucmVjdikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIGIucmVjdikKKworY2xhc3MgX1Rlc3RMaXN0ZW5lcihCYXNlVGVzdENhc2UpOgorCisgICAgQUxMT1dFRF9UWVBFUyA9ICgncHJvY2Vzc2VzJywpCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9iaW5kKHNlbGYpOgorICAgICAgICBmb3IgZmFtaWx5IGluIHNlbGYuY29ubmVjdGlvbi5mYW1pbGllczoKKyAgICAgICAgICAgIGwgPSBzZWxmLmNvbm5lY3Rpb24uTGlzdGVuZXIoZmFtaWx5PWZhbWlseSkKKyAgICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChsLmNsb3NlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2VsZi5jb25uZWN0aW9uLkxpc3RlbmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbC5hZGRyZXNzLCBmYW1pbHkpCisKKyAgICBkZWYgdGVzdF9jb250ZXh0KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuY29ubmVjdGlvbi5MaXN0ZW5lcigpIGFzIGw6CisgICAgICAgICAgICB3aXRoIHNlbGYuY29ubmVjdGlvbi5DbGllbnQobC5hZGRyZXNzKSBhcyBjOgorICAgICAgICAgICAgICAgIHdpdGggbC5hY2NlcHQoKSBhcyBkOgorICAgICAgICAgICAgICAgICAgICBjLnNlbmQoMTcyOSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLnJlY3YoKSwgMTcyOSkKKworICAgICAgICBpZiBzZWxmLlRZUEUgPT0gJ3Byb2Nlc3Nlcyc6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBsLmFjY2VwdCkKKwogY2xhc3MgX1Rlc3RMaXN0ZW5lckNsaWVudChCYXNlVGVzdENhc2UpOgogCiAgICAgQUxMT1dFRF9UWVBFUyA9ICgncHJvY2Vzc2VzJywgJ3RocmVhZHMnKQpAQCAtMTc5MSw1MiArMjM2MywxMzcgQEAKICAgICAgICAgcC5qb2luKCkKICAgICAgICAgbC5jbG9zZSgpCiAKK2NsYXNzIF9UZXN0UG9sbCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBBTExPV0VEX1RZUEVTID0gKCdwcm9jZXNzZXMnLCAndGhyZWFkcycpCisKKyAgICBkZWYgdGVzdF9lbXB0eV9zdHJpbmcoc2VsZik6CisgICAgICAgIGEsIGIgPSBzZWxmLlBpcGUoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucG9sbCgpLCBGYWxzZSkKKyAgICAgICAgYi5zZW5kX2J5dGVzKGInJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLnBvbGwoKSwgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLnBvbGwoKSwgVHJ1ZSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfY2hpbGRfc3RyaW5ncyhjbHMsIGNvbm4sIHN0cmluZ3MpOgorICAgICAgICBmb3IgcyBpbiBzdHJpbmdzOgorICAgICAgICAgICAgdGltZS5zbGVlcCgwLjEpCisgICAgICAgICAgICBjb25uLnNlbmRfYnl0ZXMocykKKyAgICAgICAgY29ubi5jbG9zZSgpCisKKyAgICBkZWYgdGVzdF9zdHJpbmdzKHNlbGYpOgorICAgICAgICBzdHJpbmdzID0gKGInaGVsbG8nLCBiJycsIGInYScsIGInYicsIGInJywgYidieWUnLCBiJycsIGInbG9wJykKKyAgICAgICAgYSwgYiA9IHNlbGYuUGlwZSgpCisgICAgICAgIHAgPSBzZWxmLlByb2Nlc3ModGFyZ2V0PXNlbGYuX2NoaWxkX3N0cmluZ3MsIGFyZ3M9KGIsIHN0cmluZ3MpKQorICAgICAgICBwLnN0YXJ0KCkKKworICAgICAgICBmb3IgcyBpbiBzdHJpbmdzOgorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMjAwKToKKyAgICAgICAgICAgICAgICBpZiBhLnBvbGwoMC4wMSk6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICB4ID0gYS5yZWN2X2J5dGVzKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocywgeCkKKworICAgICAgICBwLmpvaW4oKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9jaGlsZF9ib3VuZGFyaWVzKGNscywgcik6CisgICAgICAgICMgUG9sbGluZyBtYXkgInB1bGwiIGEgbWVzc2FnZSBpbiB0byB0aGUgY2hpbGQgcHJvY2VzcywgYnV0IHdlCisgICAgICAgICMgZG9uJ3Qgd2FudCBpdCB0byBwdWxsIG9ubHkgcGFydCBvZiBhIG1lc3NhZ2UsIGFzIHRoYXQgd291bGQKKyAgICAgICAgIyBjb3JydXB0IHRoZSBwaXBlIGZvciBhbnkgb3RoZXIgcHJvY2Vzc2VzIHdoaWNoIG1pZ2h0IGxhdGVyCisgICAgICAgICMgcmVhZCBmcm9tIGl0LgorICAgICAgICByLnBvbGwoNSkKKworICAgIGRlZiB0ZXN0X2JvdW5kYXJpZXMoc2VsZik6CisgICAgICAgIHIsIHcgPSBzZWxmLlBpcGUoRmFsc2UpCisgICAgICAgIHAgPSBzZWxmLlByb2Nlc3ModGFyZ2V0PXNlbGYuX2NoaWxkX2JvdW5kYXJpZXMsIGFyZ3M9KHIsKSkKKyAgICAgICAgcC5zdGFydCgpCisgICAgICAgIHRpbWUuc2xlZXAoMikKKyAgICAgICAgTCA9IFtiImZpcnN0IiwgYiJzZWNvbmQiXQorICAgICAgICBmb3Igb2JqIGluIEw6CisgICAgICAgICAgICB3LnNlbmRfYnl0ZXMob2JqKQorICAgICAgICB3LmNsb3NlKCkKKyAgICAgICAgcC5qb2luKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbihyLnJlY3ZfYnl0ZXMoKSwgTCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfY2hpbGRfZG9udF9tZXJnZShjbHMsIGIpOgorICAgICAgICBiLnNlbmRfYnl0ZXMoYidhJykKKyAgICAgICAgYi5zZW5kX2J5dGVzKGInYicpCisgICAgICAgIGIuc2VuZF9ieXRlcyhiJ2NkJykKKworICAgIGRlZiB0ZXN0X2RvbnRfbWVyZ2Uoc2VsZik6CisgICAgICAgIGEsIGIgPSBzZWxmLlBpcGUoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucG9sbCgwLjApLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLnBvbGwoMC4xKSwgRmFsc2UpCisKKyAgICAgICAgcCA9IHNlbGYuUHJvY2Vzcyh0YXJnZXQ9c2VsZi5fY2hpbGRfZG9udF9tZXJnZSwgYXJncz0oYiwpKQorICAgICAgICBwLnN0YXJ0KCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucmVjdl9ieXRlcygpLCBiJ2EnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucG9sbCgxLjApLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucG9sbCgxLjApLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucmVjdl9ieXRlcygpLCBiJ2InKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucG9sbCgxLjApLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucG9sbCgxLjApLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucG9sbCgwLjApLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGEucmVjdl9ieXRlcygpLCBiJ2NkJykKKworICAgICAgICBwLmpvaW4oKQorCiAjCiAjIFRlc3Qgb2Ygc2VuZGluZyBjb25uZWN0aW9uIGFuZCBzb2NrZXQgb2JqZWN0cyBiZXR3ZWVuIHByb2Nlc3NlcwogIwotIiIiCisKKyMgSW50ZXJtaXR0ZW50IGZhaWxzIG9uIE1hYyBPUyBYIC0tIHNlZSBJc3N1ZTE0NjY5IGFuZCBJc3N1ZTEyOTU4CitAdW5pdHRlc3Quc2tpcElmKHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIiwgImZkIHBhc3NpbmcgdW5yZWxpYWJsZSBvbiBNYWMgT1MgWCIpCitAdW5pdHRlc3Quc2tpcFVubGVzcyhIQVNfUkVEVUNUSU9OLCAidGVzdCBuZWVkcyBtdWx0aXByb2Nlc3NpbmcucmVkdWN0aW9uIikKIGNsYXNzIF9UZXN0UGlja2xpbmdDb25uZWN0aW9ucyhCYXNlVGVzdENhc2UpOgogCiAgICAgQUxMT1dFRF9UWVBFUyA9ICgncHJvY2Vzc2VzJywpCiAKLSAgICBkZWYgX2xpc3RlbmVyKHNlbGYsIGNvbm4sIGZhbWlsaWVzKToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgorICAgICAgICBmcm9tIG11bHRpcHJvY2Vzc2luZy5yZWR1Y3Rpb24gaW1wb3J0IHJlc291cmNlX3NoYXJlcgorICAgICAgICByZXNvdXJjZV9zaGFyZXIuc3RvcCh0aW1lb3V0PTUpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX2xpc3RlbmVyKGNscywgY29ubiwgZmFtaWxpZXMpOgogICAgICAgICBmb3IgZmFtIGluIGZhbWlsaWVzOgotICAgICAgICAgICAgbCA9IHNlbGYuY29ubmVjdGlvbi5MaXN0ZW5lcihmYW1pbHk9ZmFtKQorICAgICAgICAgICAgbCA9IGNscy5jb25uZWN0aW9uLkxpc3RlbmVyKGZhbWlseT1mYW0pCiAgICAgICAgICAgICBjb25uLnNlbmQobC5hZGRyZXNzKQogICAgICAgICAgICAgbmV3X2Nvbm4gPSBsLmFjY2VwdCgpCiAgICAgICAgICAgICBjb25uLnNlbmQobmV3X2Nvbm4pCisgICAgICAgICAgICBuZXdfY29ubi5jbG9zZSgpCisgICAgICAgICAgICBsLmNsb3NlKCkKIAotICAgICAgICBpZiBzZWxmLlRZUEUgPT0gJ3Byb2Nlc3Nlcyc6Ci0gICAgICAgICAgICBsID0gc29ja2V0LnNvY2tldCgpCi0gICAgICAgICAgICBsLmJpbmQoKCdsb2NhbGhvc3QnLCAwKSkKLSAgICAgICAgICAgIGNvbm4uc2VuZChsLmdldHNvY2tuYW1lKCkpCi0gICAgICAgICAgICBsLmxpc3RlbigxKQotICAgICAgICAgICAgbmV3X2Nvbm4sIGFkZHIgPSBsLmFjY2VwdCgpCi0gICAgICAgICAgICBjb25uLnNlbmQobmV3X2Nvbm4pCisgICAgICAgIGwgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgbC5iaW5kKCgnbG9jYWxob3N0JywgMCkpCisgICAgICAgIGwubGlzdGVuKDEpCisgICAgICAgIGNvbm4uc2VuZChsLmdldHNvY2tuYW1lKCkpCisgICAgICAgIG5ld19jb25uLCBhZGRyID0gbC5hY2NlcHQoKQorICAgICAgICBjb25uLnNlbmQobmV3X2Nvbm4pCisgICAgICAgIG5ld19jb25uLmNsb3NlKCkKKyAgICAgICAgbC5jbG9zZSgpCiAKICAgICAgICAgY29ubi5yZWN2KCkKIAotICAgIGRlZiBfcmVtb3RlKHNlbGYsIGNvbm4pOgorICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfcmVtb3RlKGNscywgY29ubik6CiAgICAgICAgIGZvciAoYWRkcmVzcywgbXNnKSBpbiBpdGVyKGNvbm4ucmVjdiwgTm9uZSk6Ci0gICAgICAgICAgICBjbGllbnQgPSBzZWxmLmNvbm5lY3Rpb24uQ2xpZW50KGFkZHJlc3MpCisgICAgICAgICAgICBjbGllbnQgPSBjbHMuY29ubmVjdGlvbi5DbGllbnQoYWRkcmVzcykKICAgICAgICAgICAgIGNsaWVudC5zZW5kKG1zZy51cHBlcigpKQogICAgICAgICAgICAgY2xpZW50LmNsb3NlKCkKIAotICAgICAgICBpZiBzZWxmLlRZUEUgPT0gJ3Byb2Nlc3Nlcyc6Ci0gICAgICAgICAgICBhZGRyZXNzLCBtc2cgPSBjb25uLnJlY3YoKQotICAgICAgICAgICAgY2xpZW50ID0gc29ja2V0LnNvY2tldCgpCi0gICAgICAgICAgICBjbGllbnQuY29ubmVjdChhZGRyZXNzKQotICAgICAgICAgICAgY2xpZW50LnNlbmRhbGwobXNnLnVwcGVyKCkpCi0gICAgICAgICAgICBjbGllbnQuY2xvc2UoKQorICAgICAgICBhZGRyZXNzLCBtc2cgPSBjb25uLnJlY3YoKQorICAgICAgICBjbGllbnQgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgY2xpZW50LmNvbm5lY3QoYWRkcmVzcykKKyAgICAgICAgY2xpZW50LnNlbmRhbGwobXNnLnVwcGVyKCkpCisgICAgICAgIGNsaWVudC5jbG9zZSgpCiAKICAgICAgICAgY29ubi5jbG9zZSgpCiAKICAgICBkZWYgdGVzdF9waWNrbGluZyhzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbXVsdGlwcm9jZXNzaW5nLmFsbG93X2Nvbm5lY3Rpb25fcGlja2xpbmcoKQotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4KLQogICAgICAgICBmYW1pbGllcyA9IHNlbGYuY29ubmVjdGlvbi5mYW1pbGllcwogCiAgICAgICAgIGxjb25uLCBsY29ubjAgPSBzZWxmLlBpcGUoKQpAQCAtMTg2MCwxNiArMjUxNywxOSBAQAogCiAgICAgICAgIHJjb25uLnNlbmQoTm9uZSkKIAotICAgICAgICBpZiBzZWxmLlRZUEUgPT0gJ3Byb2Nlc3Nlcyc6Ci0gICAgICAgICAgICBtc2cgPSBsYXRpbignVGhpcyBjb25uZWN0aW9uIHVzZXMgYSBub3JtYWwgc29ja2V0JykKLSAgICAgICAgICAgIGFkZHJlc3MgPSBsY29ubi5yZWN2KCkKLSAgICAgICAgICAgIHJjb25uLnNlbmQoKGFkZHJlc3MsIG1zZykpCi0gICAgICAgICAgICBpZiBoYXNhdHRyKHNvY2tldCwgJ2Zyb21mZCcpOgotICAgICAgICAgICAgICAgIG5ld19jb25uID0gbGNvbm4ucmVjdigpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfY29ubi5yZWN2KDEwMCksIG1zZy51cHBlcigpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIFhYWCBPbiBXaW5kb3dzIHdpdGggUHkyLjYgbmVlZCB0byBiYWNrcG9ydCBmcm9tZmQoKQotICAgICAgICAgICAgICAgIGRpc2NhcmQgPSBsY29ubi5yZWN2X2J5dGVzKCkKKyAgICAgICAgbXNnID0gbGF0aW4oJ1RoaXMgY29ubmVjdGlvbiB1c2VzIGEgbm9ybWFsIHNvY2tldCcpCisgICAgICAgIGFkZHJlc3MgPSBsY29ubi5yZWN2KCkKKyAgICAgICAgcmNvbm4uc2VuZCgoYWRkcmVzcywgbXNnKSkKKyAgICAgICAgbmV3X2Nvbm4gPSBsY29ubi5yZWN2KCkKKyAgICAgICAgYnVmID0gW10KKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHMgPSBuZXdfY29ubi5yZWN2KDEwMCkKKyAgICAgICAgICAgIGlmIG5vdCBzOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBidWYuYXBwZW5kKHMpCisgICAgICAgIGJ1ZiA9IGInJy5qb2luKGJ1ZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYsIG1zZy51cHBlcigpKQorICAgICAgICBuZXdfY29ubi5jbG9zZSgpCiAKICAgICAgICAgbGNvbm4uc2VuZChOb25lKQogCkBAIC0xODc4LDcgKzI1MzgsNDYgQEAKIAogICAgICAgICBscC5qb2luKCkKICAgICAgICAgcnAuam9pbigpCi0iIiIKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBjaGlsZF9hY2Nlc3MoY2xzLCBjb25uKToKKyAgICAgICAgdyA9IGNvbm4ucmVjdigpCisgICAgICAgIHcuc2VuZCgnYWxsIGlzIHdlbGwnKQorICAgICAgICB3LmNsb3NlKCkKKworICAgICAgICByID0gY29ubi5yZWN2KCkKKyAgICAgICAgbXNnID0gci5yZWN2KCkKKyAgICAgICAgY29ubi5zZW5kKG1zZyoyKQorCisgICAgICAgIGNvbm4uY2xvc2UoKQorCisgICAgZGVmIHRlc3RfYWNjZXNzKHNlbGYpOgorICAgICAgICAjIE9uIFdpbmRvd3MsIGlmIHdlIGRvIG5vdCBzcGVjaWZ5IGEgZGVzdGluYXRpb24gcGlkIHdoZW4KKyAgICAgICAgIyB1c2luZyBEdXBIYW5kbGUgdGhlbiB3ZSBuZWVkIHRvIGJlIGNhcmVmdWwgdG8gdXNlIHRoZQorICAgICAgICAjIGNvcnJlY3QgYWNjZXNzIGZsYWdzIGZvciBEdXBsaWNhdGVIYW5kbGUoKSwgb3IgZWxzZQorICAgICAgICAjIER1cEhhbmRsZS5kZXRhY2goKSB3aWxsIHJhaXNlIFBlcm1pc3Npb25FcnJvci4gIEZvciBleGFtcGxlLAorICAgICAgICAjIGZvciBhIHJlYWQgb25seSBwaXBlIGhhbmRsZSB3ZSBzaG91bGQgdXNlCisgICAgICAgICMgYWNjZXNzPUZJTEVfR0VORVJJQ19SRUFELiAgKFVuZm9ydHVuYXRlbHkKKyAgICAgICAgIyBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MgZG9lcyBub3Qgd29yay4pCisgICAgICAgIGNvbm4sIGNoaWxkX2Nvbm4gPSBzZWxmLlBpcGUoKQorICAgICAgICBwID0gc2VsZi5Qcm9jZXNzKHRhcmdldD1zZWxmLmNoaWxkX2FjY2VzcywgYXJncz0oY2hpbGRfY29ubiwpKQorICAgICAgICBwLmRhZW1vbiA9IFRydWUKKyAgICAgICAgcC5zdGFydCgpCisgICAgICAgIGNoaWxkX2Nvbm4uY2xvc2UoKQorCisgICAgICAgIHIsIHcgPSBzZWxmLlBpcGUoZHVwbGV4PUZhbHNlKQorICAgICAgICBjb25uLnNlbmQodykKKyAgICAgICAgdy5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoci5yZWN2KCksICdhbGwgaXMgd2VsbCcpCisgICAgICAgIHIuY2xvc2UoKQorCisgICAgICAgIHIsIHcgPSBzZWxmLlBpcGUoZHVwbGV4PUZhbHNlKQorICAgICAgICBjb25uLnNlbmQocikKKyAgICAgICAgci5jbG9zZSgpCisgICAgICAgIHcuc2VuZCgnZm9vYmFyJykKKyAgICAgICAgdy5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29ubi5yZWN2KCksICdmb29iYXInKjIpCisKICMKICMKICMKQEAgLTIxNzMsOSArMjg3MiwxNSBAQAogCiAgICAgQHVuaXR0ZXN0LnNraXBJZihXSU4zMiwgInNraXBwZWQgb24gV2luZG93cyIpCiAgICAgZGVmIHRlc3RfaW52YWxpZF9oYW5kbGVzKHNlbGYpOgotICAgICAgICBjb25uID0gX211bHRpcHJvY2Vzc2luZy5Db25uZWN0aW9uKDQ0OTc3NjA4KQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhJT0Vycm9yLCBjb25uLnBvbGwpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKElPRXJyb3IsIF9tdWx0aXByb2Nlc3NpbmcuQ29ubmVjdGlvbiwgLTEpCisgICAgICAgIGNvbm4gPSBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbi5Db25uZWN0aW9uKDQ0OTc3NjA4KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygoVmFsdWVFcnJvciwgSU9FcnJvciksIGNvbm4ucG9sbCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICMgSGFjayBwcml2YXRlIGF0dHJpYnV0ZSBfaGFuZGxlIHRvIGF2b2lkIHByaW50aW5nIGFuIGVycm9yCisgICAgICAgICAgICAjIGluIGNvbm4uX19kZWxfXworICAgICAgICAgICAgY29ubi5faGFuZGxlID0gTm9uZQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygoVmFsdWVFcnJvciwgSU9FcnJvciksCisgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uLkNvbm5lY3Rpb24sIC0xKQogCiAjCiAjIEZ1bmN0aW9ucyB1c2VkIHRvIGNyZWF0ZSB0ZXN0IGNhc2VzIGZyb20gdGhlIGJhc2Ugb25lcyBpbiB0aGlzIG1vZHVsZQpAQCAtMjE5NCwxMCArMjg5OSwxMiBAQAogICAgIHJlc3VsdCA9IHt9CiAgICAgZ2xvYiA9IGdsb2JhbHMoKQogICAgIFR5cGUgPSB0eXBlLmNhcGl0YWxpemUoKQorICAgIEFMTF9UWVBFUyA9IHsncHJvY2Vzc2VzJywgJ3RocmVhZHMnLCAnbWFuYWdlcid9CiAKICAgICBmb3IgbmFtZSBpbiBsaXN0KGdsb2Iua2V5cygpKToKICAgICAgICAgaWYgbmFtZS5zdGFydHN3aXRoKCdfVGVzdCcpOgogICAgICAgICAgICAgYmFzZSA9IGdsb2JbbmFtZV0KKyAgICAgICAgICAgIGFzc2VydCBzZXQoYmFzZS5BTExPV0VEX1RZUEVTKSA8PSBBTExfVFlQRVMsIHNldChiYXNlLkFMTE9XRURfVFlQRVMpCiAgICAgICAgICAgICBpZiB0eXBlIGluIGJhc2UuQUxMT1dFRF9UWVBFUzoKICAgICAgICAgICAgICAgICBuZXduYW1lID0gJ1dpdGgnICsgVHlwZSArIG5hbWVbMTpdCiAgICAgICAgICAgICAgICAgY2xhc3MgVGVtcChiYXNlLCB1bml0dGVzdC5UZXN0Q2FzZSwgTWl4aW4pOgpAQCAtMjIxNiw3ICsyOTIzLDcgQEAKICAgICBQcm9jZXNzID0gbXVsdGlwcm9jZXNzaW5nLlByb2Nlc3MKICAgICBsb2NhbHMoKS51cGRhdGUoZ2V0X2F0dHJpYnV0ZXMobXVsdGlwcm9jZXNzaW5nLCAoCiAgICAgICAgICdRdWV1ZScsICdMb2NrJywgJ1JMb2NrJywgJ1NlbWFwaG9yZScsICdCb3VuZGVkU2VtYXBob3JlJywKLSAgICAgICAgJ0NvbmRpdGlvbicsICdFdmVudCcsICdWYWx1ZScsICdBcnJheScsICdSYXdWYWx1ZScsCisgICAgICAgICdDb25kaXRpb24nLCAnRXZlbnQnLCAnQmFycmllcicsICdWYWx1ZScsICdBcnJheScsICdSYXdWYWx1ZScsCiAgICAgICAgICdSYXdBcnJheScsICdjdXJyZW50X3Byb2Nlc3MnLCAnYWN0aXZlX2NoaWxkcmVuJywgJ1BpcGUnLAogICAgICAgICAnY29ubmVjdGlvbicsICdKb2luYWJsZVF1ZXVlJywgJ1Bvb2wnCiAgICAgICAgICkpKQpAQCAtMjIzMSw3ICsyOTM4LDcgQEAKICAgICBtYW5hZ2VyID0gb2JqZWN0Ll9fbmV3X18obXVsdGlwcm9jZXNzaW5nLm1hbmFnZXJzLlN5bmNNYW5hZ2VyKQogICAgIGxvY2FscygpLnVwZGF0ZShnZXRfYXR0cmlidXRlcyhtYW5hZ2VyLCAoCiAgICAgICAgICdRdWV1ZScsICdMb2NrJywgJ1JMb2NrJywgJ1NlbWFwaG9yZScsICdCb3VuZGVkU2VtYXBob3JlJywKLSAgICAgICAnQ29uZGl0aW9uJywgJ0V2ZW50JywgJ1ZhbHVlJywgJ0FycmF5JywgJ2xpc3QnLCAnZGljdCcsCisgICAgICAgICdDb25kaXRpb24nLCAnRXZlbnQnLCAnQmFycmllcicsICdWYWx1ZScsICdBcnJheScsICdsaXN0JywgJ2RpY3QnLAogICAgICAgICAnTmFtZXNwYWNlJywgJ0pvaW5hYmxlUXVldWUnLCAnUG9vbCcKICAgICAgICAgKSkpCiAKQEAgLTIyNDQsNyArMjk1MSw3IEBACiAgICAgUHJvY2VzcyA9IG11bHRpcHJvY2Vzc2luZy5kdW1teS5Qcm9jZXNzCiAgICAgbG9jYWxzKCkudXBkYXRlKGdldF9hdHRyaWJ1dGVzKG11bHRpcHJvY2Vzc2luZy5kdW1teSwgKAogICAgICAgICAnUXVldWUnLCAnTG9jaycsICdSTG9jaycsICdTZW1hcGhvcmUnLCAnQm91bmRlZFNlbWFwaG9yZScsCi0gICAgICAgICdDb25kaXRpb24nLCAnRXZlbnQnLCAnVmFsdWUnLCAnQXJyYXknLCAnY3VycmVudF9wcm9jZXNzJywKKyAgICAgICAgJ0NvbmRpdGlvbicsICdFdmVudCcsICdCYXJyaWVyJywgJ1ZhbHVlJywgJ0FycmF5JywgJ2N1cnJlbnRfcHJvY2VzcycsCiAgICAgICAgICdhY3RpdmVfY2hpbGRyZW4nLCAnUGlwZScsICdjb25uZWN0aW9uJywgJ2RpY3QnLCAnbGlzdCcsCiAgICAgICAgICdOYW1lc3BhY2UnLCAnSm9pbmFibGVRdWV1ZScsICdQb29sJwogICAgICAgICApKSkKQEAgLTIyOTYsNiArMzAwMyw3IEBACiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIHNlbGYubWdyLnNodXRkb3duKCkKKyAgICAgICAgc2VsZi5tZ3Iuam9pbigpCiAKICAgICBkZWYgdGVzdF9tYW5hZ2VyX2luaXRpYWxpemVyKHNlbGYpOgogICAgICAgICBtID0gbXVsdGlwcm9jZXNzaW5nLm1hbmFnZXJzLlN5bmNNYW5hZ2VyKCkKQEAgLTIzMDMsNiArMzAxMSw3IEBACiAgICAgICAgIG0uc3RhcnQoaW5pdGlhbGl6ZXIsIChzZWxmLm5zLCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5ucy50ZXN0LCAxKQogICAgICAgICBtLnNodXRkb3duKCkKKyAgICAgICAgbS5qb2luKCkKIAogICAgIGRlZiB0ZXN0X3Bvb2xfaW5pdGlhbGl6ZXIoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbXVsdGlwcm9jZXNzaW5nLlBvb2wsIGluaXRpYWxpemVyPTEpCkBAIC0yMzM1LDYgKzMwNDQsOCBAQAogZGVmIHBvb2xfaW5fcHJvY2VzcygpOgogICAgIHBvb2wgPSBtdWx0aXByb2Nlc3NpbmcuUG9vbChwcm9jZXNzZXM9NCkKICAgICB4ID0gcG9vbC5tYXAoX2FmdW5jLCBbMSwgMiwgMywgNCwgNSwgNiwgN10pCisgICAgcG9vbC5jbG9zZSgpCisgICAgcG9vbC5qb2luKCkKIAogY2xhc3MgX2ZpbGVfbGlrZShvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkZWxlZ2F0ZSk6CkBAIC0yMzc5LDYgKzMwOTAsMTgwIEBACiAgICAgICAgIGFzc2VydCBzaW8uZ2V0dmFsdWUoKSA9PSAnZm9vJwogCiAKK2NsYXNzIFRlc3RXYWl0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfY2hpbGRfdGVzdF93YWl0KGNscywgdywgc2xvdyk6CisgICAgICAgIGZvciBpIGluIHJhbmdlKDEwKToKKyAgICAgICAgICAgIGlmIHNsb3c6CisgICAgICAgICAgICAgICAgdGltZS5zbGVlcChyYW5kb20ucmFuZG9tKCkqMC4xKQorICAgICAgICAgICAgdy5zZW5kKChpLCBvcy5nZXRwaWQoKSkpCisgICAgICAgIHcuY2xvc2UoKQorCisgICAgZGVmIHRlc3Rfd2FpdChzZWxmLCBzbG93PUZhbHNlKToKKyAgICAgICAgZnJvbSBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbiBpbXBvcnQgd2FpdAorICAgICAgICByZWFkZXJzID0gW10KKyAgICAgICAgcHJvY3MgPSBbXQorICAgICAgICBtZXNzYWdlcyA9IFtdCisKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoNCk6CisgICAgICAgICAgICByLCB3ID0gbXVsdGlwcm9jZXNzaW5nLlBpcGUoZHVwbGV4PUZhbHNlKQorICAgICAgICAgICAgcCA9IG11bHRpcHJvY2Vzc2luZy5Qcm9jZXNzKHRhcmdldD1zZWxmLl9jaGlsZF90ZXN0X3dhaXQsIGFyZ3M9KHcsIHNsb3cpKQorICAgICAgICAgICAgcC5kYWVtb24gPSBUcnVlCisgICAgICAgICAgICBwLnN0YXJ0KCkKKyAgICAgICAgICAgIHcuY2xvc2UoKQorICAgICAgICAgICAgcmVhZGVycy5hcHBlbmQocikKKyAgICAgICAgICAgIHByb2NzLmFwcGVuZChwKQorICAgICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHAuam9pbikKKworICAgICAgICB3aGlsZSByZWFkZXJzOgorICAgICAgICAgICAgZm9yIHIgaW4gd2FpdChyZWFkZXJzKToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG1zZyA9IHIucmVjdigpCisgICAgICAgICAgICAgICAgZXhjZXB0IEVPRkVycm9yOgorICAgICAgICAgICAgICAgICAgICByZWFkZXJzLnJlbW92ZShyKQorICAgICAgICAgICAgICAgICAgICByLmNsb3NlKCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5hcHBlbmQobXNnKQorCisgICAgICAgIG1lc3NhZ2VzLnNvcnQoKQorICAgICAgICBleHBlY3RlZCA9IHNvcnRlZCgoaSwgcC5waWQpIGZvciBpIGluIHJhbmdlKDEwKSBmb3IgcCBpbiBwcm9jcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtZXNzYWdlcywgZXhwZWN0ZWQpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX2NoaWxkX3Rlc3Rfd2FpdF9zb2NrZXQoY2xzLCBhZGRyZXNzLCBzbG93KToKKyAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICBzLmNvbm5lY3QoYWRkcmVzcykKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTApOgorICAgICAgICAgICAgaWYgc2xvdzoKKyAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKHJhbmRvbS5yYW5kb20oKSowLjEpCisgICAgICAgICAgICBzLnNlbmRhbGwoKCclc1xuJyAlIGkpLmVuY29kZSgnYXNjaWknKSkKKyAgICAgICAgcy5jbG9zZSgpCisKKyAgICBkZWYgdGVzdF93YWl0X3NvY2tldChzZWxmLCBzbG93PUZhbHNlKToKKyAgICAgICAgZnJvbSBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbiBpbXBvcnQgd2FpdAorICAgICAgICBsID0gc29ja2V0LnNvY2tldCgpCisgICAgICAgIGwuYmluZCgoJycsIDApKQorICAgICAgICBsLmxpc3Rlbig0KQorICAgICAgICBhZGRyID0gKCdsb2NhbGhvc3QnLCBsLmdldHNvY2tuYW1lKClbMV0pCisgICAgICAgIHJlYWRlcnMgPSBbXQorICAgICAgICBwcm9jcyA9IFtdCisgICAgICAgIGRpYyA9IHt9CisKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoNCk6CisgICAgICAgICAgICBwID0gbXVsdGlwcm9jZXNzaW5nLlByb2Nlc3ModGFyZ2V0PXNlbGYuX2NoaWxkX3Rlc3Rfd2FpdF9zb2NrZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oYWRkciwgc2xvdykpCisgICAgICAgICAgICBwLmRhZW1vbiA9IFRydWUKKyAgICAgICAgICAgIHAuc3RhcnQoKQorICAgICAgICAgICAgcHJvY3MuYXBwZW5kKHApCisgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAocC5qb2luKQorCisgICAgICAgIGZvciBpIGluIHJhbmdlKDQpOgorICAgICAgICAgICAgciwgXyA9IGwuYWNjZXB0KCkKKyAgICAgICAgICAgIHJlYWRlcnMuYXBwZW5kKHIpCisgICAgICAgICAgICBkaWNbcl0gPSBbXQorICAgICAgICBsLmNsb3NlKCkKKworICAgICAgICB3aGlsZSByZWFkZXJzOgorICAgICAgICAgICAgZm9yIHIgaW4gd2FpdChyZWFkZXJzKToKKyAgICAgICAgICAgICAgICBtc2cgPSByLnJlY3YoMzIpCisgICAgICAgICAgICAgICAgaWYgbm90IG1zZzoKKyAgICAgICAgICAgICAgICAgICAgcmVhZGVycy5yZW1vdmUocikKKyAgICAgICAgICAgICAgICAgICAgci5jbG9zZSgpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZGljW3JdLmFwcGVuZChtc2cpCisKKyAgICAgICAgZXhwZWN0ZWQgPSAnJy5qb2luKCclc1xuJyAlIGkgZm9yIGkgaW4gcmFuZ2UoMTApKS5lbmNvZGUoJ2FzY2lpJykKKyAgICAgICAgZm9yIHYgaW4gZGljLnZhbHVlcygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiJycuam9pbih2KSwgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF93YWl0X3Nsb3coc2VsZik6CisgICAgICAgIHNlbGYudGVzdF93YWl0KFRydWUpCisKKyAgICBkZWYgdGVzdF93YWl0X3NvY2tldF9zbG93KHNlbGYpOgorICAgICAgICBzZWxmLnRlc3Rfd2FpdF9zb2NrZXQoVHJ1ZSkKKworICAgIGRlZiB0ZXN0X3dhaXRfdGltZW91dChzZWxmKToKKyAgICAgICAgZnJvbSBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbiBpbXBvcnQgd2FpdAorCisgICAgICAgIGV4cGVjdGVkID0gNQorICAgICAgICBhLCBiID0gbXVsdGlwcm9jZXNzaW5nLlBpcGUoKQorCisgICAgICAgIHN0YXJ0ID0gdGltZS50aW1lKCkKKyAgICAgICAgcmVzID0gd2FpdChbYSwgYl0sIGV4cGVjdGVkKQorICAgICAgICBkZWx0YSA9IHRpbWUudGltZSgpIC0gc3RhcnQKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhkZWx0YSwgZXhwZWN0ZWQgKiAyKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIoZGVsdGEsIGV4cGVjdGVkICogMC41KQorCisgICAgICAgIGIuc2VuZChOb25lKQorCisgICAgICAgIHN0YXJ0ID0gdGltZS50aW1lKCkKKyAgICAgICAgcmVzID0gd2FpdChbYSwgYl0sIDIwKQorICAgICAgICBkZWx0YSA9IHRpbWUudGltZSgpIC0gc3RhcnQKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgW2FdKQorICAgICAgICBzZWxmLmFzc2VydExlc3MoZGVsdGEsIDAuNCkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBzaWduYWxfYW5kX3NsZWVwKGNscywgc2VtLCBwZXJpb2QpOgorICAgICAgICBzZW0ucmVsZWFzZSgpCisgICAgICAgIHRpbWUuc2xlZXAocGVyaW9kKQorCisgICAgZGVmIHRlc3Rfd2FpdF9pbnRlZ2VyKHNlbGYpOgorICAgICAgICBmcm9tIG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uIGltcG9ydCB3YWl0CisKKyAgICAgICAgZXhwZWN0ZWQgPSAzCisgICAgICAgIHNlbSA9IG11bHRpcHJvY2Vzc2luZy5TZW1hcGhvcmUoMCkKKyAgICAgICAgYSwgYiA9IG11bHRpcHJvY2Vzc2luZy5QaXBlKCkKKyAgICAgICAgcCA9IG11bHRpcHJvY2Vzc2luZy5Qcm9jZXNzKHRhcmdldD1zZWxmLnNpZ25hbF9hbmRfc2xlZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShzZW0sIGV4cGVjdGVkKSkKKworICAgICAgICBwLnN0YXJ0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHAuc2VudGluZWwsIGludCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbS5hY3F1aXJlKHRpbWVvdXQ9MjApKQorCisgICAgICAgIHN0YXJ0ID0gdGltZS50aW1lKCkKKyAgICAgICAgcmVzID0gd2FpdChbYSwgcC5zZW50aW5lbCwgYl0sIGV4cGVjdGVkICsgMjApCisgICAgICAgIGRlbHRhID0gdGltZS50aW1lKCkgLSBzdGFydAorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCBbcC5zZW50aW5lbF0pCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhkZWx0YSwgZXhwZWN0ZWQgKyAyKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIoZGVsdGEsIGV4cGVjdGVkIC0gMikKKworICAgICAgICBhLnNlbmQoTm9uZSkKKworICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCisgICAgICAgIHJlcyA9IHdhaXQoW2EsIHAuc2VudGluZWwsIGJdLCAyMCkKKyAgICAgICAgZGVsdGEgPSB0aW1lLnRpbWUoKSAtIHN0YXJ0CisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsIFtwLnNlbnRpbmVsLCBiXSkKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzKGRlbHRhLCAwLjQpCisKKyAgICAgICAgYi5zZW5kKE5vbmUpCisKKyAgICAgICAgc3RhcnQgPSB0aW1lLnRpbWUoKQorICAgICAgICByZXMgPSB3YWl0KFthLCBwLnNlbnRpbmVsLCBiXSwgMjApCisgICAgICAgIGRlbHRhID0gdGltZS50aW1lKCkgLSBzdGFydAorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCBbYSwgcC5zZW50aW5lbCwgYl0pCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhkZWx0YSwgMC40KQorCisgICAgICAgIHAudGVybWluYXRlKCkKKyAgICAgICAgcC5qb2luKCkKKworICAgIGRlZiB0ZXN0X25lZ190aW1lb3V0KHNlbGYpOgorICAgICAgICBmcm9tIG11bHRpcHJvY2Vzc2luZy5jb25uZWN0aW9uIGltcG9ydCB3YWl0CisgICAgICAgIGEsIGIgPSBtdWx0aXByb2Nlc3NpbmcuUGlwZSgpCisgICAgICAgIHQgPSB0aW1lLnRpbWUoKQorICAgICAgICByZXMgPSB3YWl0KFthXSwgdGltZW91dD0tMSkKKyAgICAgICAgdCA9IHRpbWUudGltZSgpIC0gdAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcywgW10pCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyh0LCAxKQorICAgICAgICBhLmNsb3NlKCkKKyAgICAgICAgYi5jbG9zZSgpCisKICMKICMgSXNzdWUgMTQxNTE6IFRlc3QgaW52YWxpZCBmYW1pbHkgb24gaW52YWxpZCBlbnZpcm9ubWVudAogIwpAQCAtMjM5NSw5ICszMjgwLDQxIEBACiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CiAgICAgICAgICAgICBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbi5MaXN0ZW5lcignL3Zhci90ZXN0LnBpcGUnKQogCisjCisjIElzc3VlIDEyMDk4OiBjaGVjayBzeXMuZmxhZ3Mgb2YgY2hpbGQgbWF0Y2hlcyB0aGF0IGZvciBwYXJlbnQKKyMKKworY2xhc3MgVGVzdEZsYWdzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcnVuX2luX2dyYW5kY2hpbGQoY2xzLCBjb25uKToKKyAgICAgICAgY29ubi5zZW5kKHR1cGxlKHN5cy5mbGFncykpCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcnVuX2luX2NoaWxkKGNscyk6CisgICAgICAgIGltcG9ydCBqc29uCisgICAgICAgIHIsIHcgPSBtdWx0aXByb2Nlc3NpbmcuUGlwZShkdXBsZXg9RmFsc2UpCisgICAgICAgIHAgPSBtdWx0aXByb2Nlc3NpbmcuUHJvY2Vzcyh0YXJnZXQ9Y2xzLnJ1bl9pbl9ncmFuZGNoaWxkLCBhcmdzPSh3LCkpCisgICAgICAgIHAuc3RhcnQoKQorICAgICAgICBncmFuZGNoaWxkX2ZsYWdzID0gci5yZWN2KCkKKyAgICAgICAgcC5qb2luKCkKKyAgICAgICAgci5jbG9zZSgpCisgICAgICAgIHcuY2xvc2UoKQorICAgICAgICBmbGFncyA9ICh0dXBsZShzeXMuZmxhZ3MpLCBncmFuZGNoaWxkX2ZsYWdzKQorICAgICAgICBwcmludChqc29uLmR1bXBzKGZsYWdzKSkKKworICAgIGRlZiB0ZXN0X2ZsYWdzKHNlbGYpOgorICAgICAgICBpbXBvcnQganNvbiwgc3VicHJvY2VzcworICAgICAgICAjIHN0YXJ0IGNoaWxkIHByb2Nlc3MgdXNpbmcgdW51c3VhbCBmbGFncworICAgICAgICBwcm9nID0gKCdmcm9tIHRlc3QudGVzdF9tdWx0aXByb2Nlc3NpbmcgaW1wb3J0IFRlc3RGbGFnczsgJyArCisgICAgICAgICAgICAgICAgJ1Rlc3RGbGFncy5ydW5faW5fY2hpbGQoKScpCisgICAgICAgIGRhdGEgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgKKyAgICAgICAgICAgIFtzeXMuZXhlY3V0YWJsZSwgJy1FJywgJy1TJywgJy1PJywgJy1jJywgcHJvZ10pCisgICAgICAgIGNoaWxkX2ZsYWdzLCBncmFuZGNoaWxkX2ZsYWdzID0ganNvbi5sb2FkcyhkYXRhLmRlY29kZSgnYXNjaWknKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjaGlsZF9mbGFncywgZ3JhbmRjaGlsZF9mbGFncykKIAogdGVzdGNhc2VzX290aGVyID0gW090aGVyVGVzdCwgVGVzdEludmFsaWRIYW5kbGUsIFRlc3RJbml0aWFsaXplcnMsCi0gICAgICAgICAgICAgICAgICAgVGVzdFN0ZGluQmFkZmlsZWRlc2NyaXB0b3IsIFRlc3RJbnZhbGlkRmFtaWx5XQorICAgICAgICAgICAgICAgICAgIFRlc3RTdGRpbkJhZGZpbGVkZXNjcmlwdG9yLCBUZXN0V2FpdCwgVGVzdEludmFsaWRGYW1pbHksCisgICAgICAgICAgICAgICAgICAgVGVzdEZsYWdzXQogCiAjCiAjCkBAIC0yNDM0LDE0ICszMzUxLDE4IEBACiAKICAgICBsb2FkVGVzdHNGcm9tVGVzdENhc2UgPSB1bml0dGVzdC5kZWZhdWx0VGVzdExvYWRlci5sb2FkVGVzdHNGcm9tVGVzdENhc2UKICAgICBzdWl0ZSA9IHVuaXR0ZXN0LlRlc3RTdWl0ZShsb2FkVGVzdHNGcm9tVGVzdENhc2UodGMpIGZvciB0YyBpbiB0ZXN0Y2FzZXMpCi0gICAgcnVuKHN1aXRlKQotCi0gICAgVGhyZWFkc01peGluLnBvb2wudGVybWluYXRlKCkKLSAgICBQcm9jZXNzZXNNaXhpbi5wb29sLnRlcm1pbmF0ZSgpCi0gICAgTWFuYWdlck1peGluLnBvb2wudGVybWluYXRlKCkKLSAgICBNYW5hZ2VyTWl4aW4ubWFuYWdlci5zaHV0ZG93bigpCi0KLSAgICBkZWwgUHJvY2Vzc2VzTWl4aW4ucG9vbCwgVGhyZWFkc01peGluLnBvb2wsIE1hbmFnZXJNaXhpbi5wb29sCisgICAgdHJ5OgorICAgICAgICBydW4oc3VpdGUpCisgICAgZmluYWxseToKKyAgICAgICAgVGhyZWFkc01peGluLnBvb2wudGVybWluYXRlKCkKKyAgICAgICAgUHJvY2Vzc2VzTWl4aW4ucG9vbC50ZXJtaW5hdGUoKQorICAgICAgICBNYW5hZ2VyTWl4aW4ucG9vbC50ZXJtaW5hdGUoKQorICAgICAgICBNYW5hZ2VyTWl4aW4ucG9vbC5qb2luKCkKKyAgICAgICAgTWFuYWdlck1peGluLm1hbmFnZXIuc2h1dGRvd24oKQorICAgICAgICBNYW5hZ2VyTWl4aW4ubWFuYWdlci5qb2luKCkKKyAgICAgICAgVGhyZWFkc01peGluLnBvb2wuam9pbigpCisgICAgICAgIFByb2Nlc3Nlc01peGluLnBvb2wuam9pbigpCisgICAgICAgIGRlbCBQcm9jZXNzZXNNaXhpbi5wb29sLCBUaHJlYWRzTWl4aW4ucG9vbCwgTWFuYWdlck1peGluLnBvb2wKIAogZGVmIG1haW4oKToKICAgICB0ZXN0X21haW4odW5pdHRlc3QuVGV4dFRlc3RSdW5uZXIodmVyYm9zaXR5PTIpLnJ1bikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbXV0YW50cy5weSBiL0xpYi90ZXN0L3Rlc3RfbXV0YW50cy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjQzZmE0Ny4uMDAwMDAwMAotLS0gYS9MaWIvdGVzdC90ZXN0X211dGFudHMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyOTEgKzAsMCBAQAotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHZlcmJvc2UsIFRFU1RGTgotaW1wb3J0IHJhbmRvbQotaW1wb3J0IG9zCi0KLSMgRnJvbSBTRiBidWcgIzQyMjEyMTogIEluc2VjdXJpdGllcyBpbiBkaWN0IGNvbXBhcmlzb24uCi0KLSMgU2FmZXR5IG9mIGNvZGUgZG9pbmcgY29tcGFyaXNvbnMgaGFzIGJlZW4gYW4gaGlzdG9yaWNhbCBQeXRob24gd2VhayBzcG90LgotIyBUaGUgcHJvYmxlbSBpcyB0aGF0IGNvbXBhcmlzb24gb2Ygc3RydWN0dXJlcyB3cml0dGVuIGluIEMgKm5hdHVyYWxseSoKLSMgd2FudHMgdG8gaG9sZCBvbiB0byB0aGluZ3MgbGlrZSB0aGUgc2l6ZSBvZiB0aGUgY29udGFpbmVyLCBvciAidGhlCi0jIGJpZ2dlc3QiIGNvbnRhaW5lZSBzbyBmYXIsIGFjcm9zcyBhIHRyYXZlcnNhbCBvZiB0aGUgY29udGFpbmVyOyBidXQKLSMgY29kZSB0byBkbyBjb250YWluZWUgY29tcGFyaXNvbnMgY2FuIGNhbGwgYmFjayBpbnRvIFB5dGhvbiBhbmQgbXV0YXRlCi0jIHRoZSBjb250YWluZXIgaW4gYXJiaXRyYXJ5IHdheXMgd2hpbGUgdGhlIEMgbG9vcCBpcyBpbiBtaWRzdHJlYW0uICBJZiB0aGUKLSMgQyBjb2RlIGlzbid0IGV4dHJlbWVseSBwYXJhbm9pZCBhYm91dCBkaWdnaW5nIHRoaW5ncyBvdXQgb2YgbWVtb3J5IG9uCi0jIGVhY2ggdHJpcCwgYW5kIGFydGlmaWNpYWxseSBib29zdGluZyByZWZjb3VudHMgZm9yIHRoZSBkdXJhdGlvbiwgYW55dGhpbmcKLSMgZnJvbSBpbmZpbml0ZSBsb29wcyB0byBPUyBjcmFzaGVzIGNhbiByZXN1bHQgKHllcywgSSB1c2UgV2luZG93cyA8d2luaz4pLgotIwotIyBUaGUgb3RoZXIgcHJvYmxlbSBpcyB0aGF0IGNvZGUgZGVzaWduZWQgdG8gcHJvdm9rZSBhIHdlYWtuZXNzIGlzIHVzdWFsbHkKLSMgd2hpdGUtYm94IGNvZGUsIGFuZCBzbyBjYXRjaGVzIG9ubHkgdGhlIHBhcnRpY3VsYXIgdnVsbmVyYWJpbGl0aWVzIHRoZQotIyBhdXRob3Iga25ldyB0byBwcm90ZWN0IGFnYWluc3QuICBGb3IgZXhhbXBsZSwgUHl0aG9uJ3MgbGlzdC5zb3J0KCkgY29kZQotIyB3ZW50IHRocnUgbWFueSBpdGVyYXRpb25zIGFzIG9uZSAibmV3IiB2dWxuZXJhYmlsaXR5IGFmdGVyIGFub3RoZXIgd2FzCi0jIGRpc2NvdmVyZWQuCi0jCi0jIFNvIHRoZSBkaWN0IGNvbXBhcmlzb24gdGVzdCBoZXJlIHVzZXMgYSBibGFjay1ib3ggYXBwcm9hY2ggaW5zdGVhZCwKLSMgZ2VuZXJhdGluZyBkaWN0cyBvZiB2YXJpb3VzIHNpemVzIGF0IHJhbmRvbSwgYW5kIHBlcmZvcm1pbmcgcmFuZG9tCi0jIG11dGF0aW9ucyBvbiB0aGVtIGF0IHJhbmRvbSB0aW1lcy4gIFRoaXMgcHJvdmVkIHZlcnkgZWZmZWN0aXZlLAotIyB0cmlnZ2VyaW5nIGF0IGxlYXN0IHNpeCBkaXN0aW5jdCBmYWlsdXJlIG1vZGVzIHRoZSBmaXJzdCAyMCB0aW1lcyBJCi0jIHJhbiBpdC4gIEluZGVlZCwgYXQgdGhlIHN0YXJ0LCB0aGUgZHJpdmVyIG5ldmVyIGdvdCBiZXlvbmQgNiBpdGVyYXRpb25zCi0jIGJlZm9yZSB0aGUgdGVzdCBkaWVkLgotCi0jIFRoZSBkaWN0cyBhcmUgZ2xvYmFsIHRvIG1ha2UgaXQgZWFzeSB0byBtdXRhdGUgdGhhbSBmcm9tIHdpdGhpbiBmdW5jdGlvbnMuCi1kaWN0MSA9IHt9Ci1kaWN0MiA9IHt9Ci0KLSMgVGhlIGN1cnJlbnQgc2V0IG9mIGtleXMgaW4gZGljdDEgYW5kIGRpY3QyLiAgVGhlc2UgYXJlIG1hdGVyaWFsaXplZCBhcwotIyBsaXN0cyB0byBtYWtlIGl0IGVhc3kgdG8gcGljayBhIGRpY3Qga2V5IGF0IHJhbmRvbS4KLWRpY3Qxa2V5cyA9IFtdCi1kaWN0MmtleXMgPSBbXQotCi0jIEdsb2JhbCBmbGFnIHRlbGxpbmcgbWF5YmVfbXV0YXRlKCkgd2hldGhlciB0byAqY29uc2lkZXIqIG11dGF0aW5nLgotbXV0YXRlID0gMAotCi0jIElmIGdsb2JhbCBtdXRhdGUgaXMgdHJ1ZSwgY29uc2lkZXIgbXV0YXRpbmcgYSBkaWN0LiAgTWF5IG9yIG1heSBub3QKLSMgbXV0YXRlIGEgZGljdCBldmVuIGlmIG11dGF0ZSBpcyB0cnVlLiAgSWYgaXQgZG9lcyBkZWNpZGUgdG8gbXV0YXRlIGEKLSMgZGljdCwgaXQgcGlja3Mgb25lIG9mIHtkaWN0MSwgZGljdDJ9IGF0IHJhbmRvbSwgYW5kIGRlbGV0ZXMgYSByYW5kb20KLSMgZW50cnkgZnJvbSBpdDsgb3IsIG1vcmUgcmFyZWx5LCBhZGRzIGEgcmFuZG9tIGVsZW1lbnQuCi0KLWRlZiBtYXliZV9tdXRhdGUoKToKLSAgICBnbG9iYWwgbXV0YXRlCi0gICAgaWYgbm90IG11dGF0ZToKLSAgICAgICAgcmV0dXJuCi0gICAgaWYgcmFuZG9tLnJhbmRvbSgpIDwgMC41OgotICAgICAgICByZXR1cm4KLQotICAgIGlmIHJhbmRvbS5yYW5kb20oKSA8IDAuNToKLSAgICAgICAgdGFyZ2V0LCBrZXlzID0gZGljdDEsIGRpY3Qxa2V5cwotICAgIGVsc2U6Ci0gICAgICAgIHRhcmdldCwga2V5cyA9IGRpY3QyLCBkaWN0MmtleXMKLQotICAgIGlmIHJhbmRvbS5yYW5kb20oKSA8IDAuMjoKLSAgICAgICAgIyBJbnNlcnQgYSBuZXcga2V5LgotICAgICAgICBtdXRhdGUgPSAwICAgIyBkaXNhYmxlIG11dGF0aW9uIHVudGlsIGtleSBpbnNlcnRlZAotICAgICAgICB3aGlsZSAxOgotICAgICAgICAgICAgbmV3a2V5ID0gSG9ycmlkKHJhbmRvbS5yYW5kcmFuZ2UoMTAwKSkKLSAgICAgICAgICAgIGlmIG5ld2tleSBub3QgaW4gdGFyZ2V0OgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIHRhcmdldFtuZXdrZXldID0gSG9ycmlkKHJhbmRvbS5yYW5kcmFuZ2UoMTAwKSkKLSAgICAgICAga2V5cy5hcHBlbmQobmV3a2V5KQotICAgICAgICBtdXRhdGUgPSAxCi0KLSAgICBlbGlmIGtleXM6Ci0gICAgICAgICMgRGVsZXRlIGEga2V5IGF0IHJhbmRvbS4KLSAgICAgICAgbXV0YXRlID0gMCAgICMgZGlzYWJsZSBtdXRhdGlvbiB1bnRpbCBrZXkgZGVsZXRlZAotICAgICAgICBpID0gcmFuZG9tLnJhbmRyYW5nZShsZW4oa2V5cykpCi0gICAgICAgIGtleSA9IGtleXNbaV0KLSAgICAgICAgZGVsIHRhcmdldFtrZXldCi0gICAgICAgIGRlbCBrZXlzW2ldCi0gICAgICAgIG11dGF0ZSA9IDEKLQotIyBBIGhvcnJpZCBjbGFzcyB0aGF0IHRyaWdnZXJzIHJhbmRvbSBtdXRhdGlvbnMgb2YgZGljdDEgYW5kIGRpY3QyIHdoZW4KLSMgaW5zdGFuY2VzIGFyZSBjb21wYXJlZC4KLQotY2xhc3MgSG9ycmlkOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpKToKLSAgICAgICAgIyBDb21wYXJpc29uIG91dGNvbWVzIGFyZSBkZXRlcm1pbmVkIGJ5IHRoZSB2YWx1ZSBvZiBpLgotICAgICAgICBzZWxmLmkgPSBpCi0KLSAgICAgICAgIyBBbiBhcnRpZmljaWFsIGhhc2hjb2RlIGlzIHNlbGVjdGVkIGF0IHJhbmRvbSBzbyB0aGF0IHdlIGRvbid0Ci0gICAgICAgICMgaGF2ZSBhbnkgc3lzdGVtYXRpYyByZWxhdGlvbnNoaXAgYmV0d2VlbiBjb21wYXJpc29uIG91dGNvbWVzCi0gICAgICAgICMgKGJhc2VkIG9uIHNlbGYuaSBhbmQgb3RoZXIuaSkgYW5kIHJlbGF0aXZlIHBvc2l0aW9uIHdpdGhpbiB0aGUKLSAgICAgICAgIyBoYXNoIHZlY3RvciAoYmFzZWQgb24gaGFzaGNvZGUpLgotICAgICAgICAjIFhYWCBUaGlzIGlzIG5vIGxvbmdlciBlZmZlY3RpdmUuCi0gICAgICAgICMjc2VsZi5oYXNoY29kZSA9IHJhbmRvbS5yYW5kcmFuZ2UoMTAwMDAwMDAwMCkKLQotICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIDQyCi0gICAgICAgIHJldHVybiBzZWxmLmhhc2hjb2RlCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgbWF5YmVfbXV0YXRlKCkgICAjIFRoZSBwb2ludCBvZiB0aGUgdGVzdC4KLSAgICAgICAgcmV0dXJuIHNlbGYuaSA9PSBvdGhlci5pCi0KLSAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJJIGRpZG4ndCBleHBlY3Qgc29tZSBraW5kIG9mIFNwYW5pc2ggaW5xdWlzaXRpb24hIikKLQotICAgIF9fbHRfXyA9IF9fbGVfXyA9IF9fZ3RfXyA9IF9fZ2VfXyA9IF9fbmVfXwotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIkhvcnJpZCglZCkiICUgc2VsZi5pCi0KLSMgRmlsbCBkaWN0IGQgd2l0aCBudW1lbnRyaWVzIChIb3JyaWQoaSksIEhvcnJpZChqKSkga2V5LXZhbHVlIHBhaXJzLAotIyB3aGVyZSBpIGFuZCBqIGFyZSBzZWxlY3RlZCBhdCByYW5kb20gZnJvbSB0aGUgY2FuZGlkYXRlcyBsaXN0LgotIyBSZXR1cm4gZC5rZXlzKCkgYWZ0ZXIgZmlsbGluZy4KLQotZGVmIGZpbGxfZGljdChkLCBjYW5kaWRhdGVzLCBudW1lbnRyaWVzKToKLSAgICBkLmNsZWFyKCkKLSAgICBmb3IgaSBpbiByYW5nZShudW1lbnRyaWVzKToKLSAgICAgICAgZFtIb3JyaWQocmFuZG9tLmNob2ljZShjYW5kaWRhdGVzKSldID0gXAotICAgICAgICAgICAgSG9ycmlkKHJhbmRvbS5jaG9pY2UoY2FuZGlkYXRlcykpCi0gICAgcmV0dXJuIGxpc3QoZC5rZXlzKCkpCi0KLSMgVGVzdCBvbmUgcGFpciBvZiByYW5kb21seSBnZW5lcmF0ZWQgZGljdHMsIGVhY2ggd2l0aCBuIGVudHJpZXMuCi0jIE5vdGUgdGhhdCBkaWN0IGNvbXBhcmlzb24gaXMgdHJpdmlhbCBpZiB0aGV5IGRvbid0IGhhdmUgdGhlIHNhbWUgbnVtYmVyCi0jIG9mIGVudGlyZXMgKHRoZW4gdGhlICJzaG9ydGVyIiBkaWN0IGlzIGluc3RhbnRseSBjb25zaWRlcmVkIHRvIGJlIHRoZQotIyBzbWFsbGVyIG9uZSwgd2l0aG91dCBldmVuIGxvb2tpbmcgYXQgdGhlIGVudHJpZXMpLgotCi1kZWYgdGVzdF9vbmUobik6Ci0gICAgZ2xvYmFsIG11dGF0ZSwgZGljdDEsIGRpY3QyLCBkaWN0MWtleXMsIGRpY3Qya2V5cwotCi0gICAgIyBGaWxsIHRoZSBkaWN0cyB3aXRob3V0IG11dGF0aW5nIHRoZW0uCi0gICAgbXV0YXRlID0gMAotICAgIGRpY3Qxa2V5cyA9IGZpbGxfZGljdChkaWN0MSwgcmFuZ2UobiksIG4pCi0gICAgZGljdDJrZXlzID0gZmlsbF9kaWN0KGRpY3QyLCByYW5nZShuKSwgbikKLQotICAgICMgRW5hYmxlIG11dGF0aW9uLCB0aGVuIGNvbXBhcmUgdGhlIGRpY3RzIHNvIGxvbmcgYXMgdGhleSBoYXZlIHRoZQotICAgICMgc2FtZSBzaXplLgotICAgIG11dGF0ZSA9IDEKLSAgICBpZiB2ZXJib3NlOgotICAgICAgICBwcmludCgidHJ5aW5nIHcvIGxlbmd0aHMiLCBsZW4oZGljdDEpLCBsZW4oZGljdDIpLCBlbmQ9JyAnKQotICAgIHdoaWxlIGRpY3QxIGFuZCBsZW4oZGljdDEpID09IGxlbihkaWN0Mik6Ci0gICAgICAgIGlmIHZlcmJvc2U6Ci0gICAgICAgICAgICBwcmludCgiLiIsIGVuZD0nICcpCi0gICAgICAgIGMgPSBkaWN0MSA9PSBkaWN0MgotICAgIGlmIHZlcmJvc2U6Ci0gICAgICAgIHByaW50KCkKLQotIyBSdW4gdGVzdF9vbmUgbiB0aW1lcy4gIEF0IHRoZSBzdGFydCAoYmVmb3JlIHRoZSBidWdzIHdlcmUgZml4ZWQpLCAyMAotIyBjb25zZWN1dGl2ZSBydW5zIG9mIHRoaXMgdGVzdCBlYWNoIGJsZXcgdXAgb24gb3IgYmVmb3JlIHRoZSBzaXh0aCB0aW1lCi0jIHRlc3Rfb25lIHdhcyBydW4uICBTbyBuIGRvZXNuJ3QgaGF2ZSB0byBiZSBsYXJnZSB0byBnZXQgYW4gaW50ZXJlc3RpbmcKLSMgdGVzdC4KLSMgT1RPSCwgY2FsbGluZyB3aXRoIGxhcmdlIG4gaXMgYWxzbyBpbnRlcmVzdGluZywgdG8gZW5zdXJlIHRoYXQgdGhlIGZpeGVkCi0jIGNvZGUgZG9lc24ndCBob2xkIG9uIHRvIHJlZmNvdW50cyAqdG9vKiBsb25nIChpbiB3aGljaCBjYXNlIG1lbW9yeSB3b3VsZAotIyBsZWFrKS4KLQotZGVmIHRlc3Qobik6Ci0gICAgZm9yIGkgaW4gcmFuZ2Uobik6Ci0gICAgICAgIHRlc3Rfb25lKHJhbmRvbS5yYW5kcmFuZ2UoMSwgMTAwKSkKLQotIyBTZWUgbGFzdCBjb21tZW50IGJsb2NrIGZvciBjbHVlcyBhYm91dCBnb29kIHZhbHVlcyBmb3Igbi4KLXRlc3QoMTAwKQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBBbm90aGVyIHNlZ2ZhdWx0IGJ1ZywgZGlzdGlsbGVkIGJ5IE1pY2hhZWwgSHVkc29uIGZyb20gYSBjLmwucHkgcG9zdC4KLQotY2xhc3MgQ2hpbGQ6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgIHNlbGYuX19kaWN0X19bJ3BhcmVudCddID0gcGFyZW50Ci0gICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHIpOgotICAgICAgICBzZWxmLnBhcmVudC5hID0gMQotICAgICAgICBzZWxmLnBhcmVudC5iID0gMQotICAgICAgICBzZWxmLnBhcmVudC5jID0gMQotICAgICAgICBzZWxmLnBhcmVudC5kID0gMQotICAgICAgICBzZWxmLnBhcmVudC5lID0gMQotICAgICAgICBzZWxmLnBhcmVudC5mID0gMQotICAgICAgICBzZWxmLnBhcmVudC5nID0gMQotICAgICAgICBzZWxmLnBhcmVudC5oID0gMQotICAgICAgICBzZWxmLnBhcmVudC5pID0gMQotICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLnBhcmVudCwgYXR0cikKLQotY2xhc3MgUGFyZW50OgotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5hID0gQ2hpbGQoc2VsZikKLQotIyBIYXJkIHRvIHNheSB3aGF0IHRoaXMgd2lsbCBwcmludCEgIE1heSB2YXJ5IGZyb20gdGltZSB0byB0aW1lLiAgQnV0Ci0jIHdlJ3JlIHNwZWNpZmljYWxseSB0cnlpbmcgdG8gdGVzdCB0aGUgdHBfcHJpbnQgc2xvdCBoZXJlLCBhbmQgdGhpcyBpcwotIyB0aGUgY2xlYXJlc3Qgd2F5IHRvIGRvIGl0LiAgV2UgcHJpbnQgdGhlIHJlc3VsdCB0byBhIHRlbXAgZmlsZSBzbyB0aGF0Ci0jIHRoZSBleHBlY3RlZC1vdXRwdXQgZmlsZSBkb2Vzbid0IG5lZWQgdG8gY2hhbmdlLgotCi1mID0gb3BlbihURVNURk4sICJ3IikKLXByaW50KFBhcmVudCgpLl9fZGljdF9fLCBmaWxlPWYpCi1mLmNsb3NlKCkKLW9zLnVubGluayhURVNURk4pCi0KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIEFuZCBhbm90aGVyIGNvcmUtZHVtcGVyIGZyb20gTWljaGFlbCBIdWRzb24uCi0KLWRpY3QgPSB7fQotCi0jIEZvcmNlIGRpY3QgdG8gbWFsbG9jIGl0cyB0YWJsZS4KLWZvciBpIGluIHJhbmdlKDEsIDEwKToKLSAgICBkaWN0W2ldID0gaQotCi1mID0gb3BlbihURVNURk4sICJ3IikKLQotY2xhc3MgTWFjaGlhdmVsbGk6Ci0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICBkaWN0LmNsZWFyKCkKLQotICAgICAgICAjIE1pY2hhZWwgc2V6OiAgImRvZXNuJ3QgY3Jhc2ggd2l0aG91dCB0aGlzLiAgZG9uJ3Qga25vdyB3aHkuIgotICAgICAgICAjIFRpbSBzZXo6ICAibHVjayBvZiB0aGUgZHJhdzsgY3Jhc2hlcyB3aXRoIG9yIHdpdGhvdXQgZm9yIG1lLiIKLSAgICAgICAgcHJpbnQoZmlsZT1mKQotCi0gICAgICAgIHJldHVybiByZXByKCJtYWNoaWF2ZWxsaSIpCi0KLSAgICBkZWYgX19oYXNoX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAwCi0KLWRpY3RbTWFjaGlhdmVsbGkoKV0gPSBNYWNoaWF2ZWxsaSgpCi0KLXByaW50KHN0cihkaWN0KSwgZmlsZT1mKQotZi5jbG9zZSgpCi1vcy51bmxpbmsoVEVTVEZOKQotZGVsIGYsIGRpY3QKLQotCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBBbmQgYW5vdGhlciBjb3JlLWR1bXBlciBmcm9tIE1pY2hhZWwgSHVkc29uLgotCi1kaWN0ID0ge30KLQotIyBsZXQncyBmb3JjZSBkaWN0IHRvIG1hbGxvYyBpdHMgdGFibGUKLWZvciBpIGluIHJhbmdlKDEsIDEwKToKLSAgICBkaWN0W2ldID0gaQotCi1jbGFzcyBNYWNoaWF2ZWxsaTI6Ci0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIGRpY3QuY2xlYXIoKQotICAgICAgICByZXR1cm4gMQotCi0gICAgZGVmIF9faGFzaF9fKHNlbGYpOgotICAgICAgICByZXR1cm4gMAotCi1kaWN0W01hY2hpYXZlbGxpMigpXSA9IE1hY2hpYXZlbGxpMigpCi0KLXRyeToKLSAgICBkaWN0W01hY2hpYXZlbGxpMigpXQotZXhjZXB0IEtleUVycm9yOgotICAgIHBhc3MKLQotZGVsIGRpY3QKLQotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQW5kIGFub3RoZXIgY29yZS1kdW1wZXIgZnJvbSBNaWNoYWVsIEh1ZHNvbi4KLQotZGljdCA9IHt9Ci0KLSMgbGV0J3MgZm9yY2UgZGljdCB0byBtYWxsb2MgaXRzIHRhYmxlCi1mb3IgaSBpbiByYW5nZSgxLCAxMCk6Ci0gICAgZGljdFtpXSA9IGkKLQotY2xhc3MgTWFjaGlhdmVsbGkzOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpZCk6Ci0gICAgICAgIHNlbGYuaWQgPSBpZAotCi0gICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6Ci0gICAgICAgIGlmIHNlbGYuaWQgPT0gb3RoZXIuaWQ6Ci0gICAgICAgICAgICBkaWN0LmNsZWFyKCkKLSAgICAgICAgICAgIHJldHVybiAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gMAotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIiVzKCVzKSIlKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLmlkKQotCi0gICAgZGVmIF9faGFzaF9fKHNlbGYpOgotICAgICAgICByZXR1cm4gMAotCi1kaWN0W01hY2hpYXZlbGxpMygxKV0gPSBNYWNoaWF2ZWxsaTMoMCkKLWRpY3RbTWFjaGlhdmVsbGkzKDIpXSA9IE1hY2hpYXZlbGxpMygwKQotCi1mID0gb3BlbihURVNURk4sICJ3IikKLXRyeToKLSAgICB0cnk6Ci0gICAgICAgIHByaW50KGRpY3RbTWFjaGlhdmVsbGkzKDIpXSwgZmlsZT1mKQotICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgcGFzcwotZmluYWxseToKLSAgICBmLmNsb3NlKCkKLSAgICBvcy51bmxpbmsoVEVTVEZOKQotCi1kZWwgZGljdAotZGVsIGRpY3QxLCBkaWN0MiwgZGljdDFrZXlzLCBkaWN0MmtleXMKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbmFtZXNwYWNlX3BrZ3MucHkgYi9MaWIvdGVzdC90ZXN0X25hbWVzcGFjZV9wa2dzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY2OTNkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC90ZXN0X25hbWVzcGFjZV9wa2dzLnB5CkBAIC0wLDAgKzEsMjk0IEBACitpbXBvcnQgc3lzCitpbXBvcnQgY29udGV4dGxpYgoraW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgb3MKKworaW1wb3J0IGltcG9ydGxpYi50ZXN0LnV0aWwKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBydW5fdW5pdHRlc3QKKworIyBuZWVkZWQgdGVzdHM6CisjCisjIG5lZWQgdG8gdGVzdCB3aGVuIG5lc3RlZCwgc28gdGhhdCB0aGUgdG9wLWxldmVsIHBhdGggaXNuJ3Qgc3lzLnBhdGgKKyMgbmVlZCB0byB0ZXN0IGR5bmFtaWMgcGF0aCBkZXRlY3Rpb24sIGJvdGggYXQgdG9wLWxldmVsIGFuZCBuZXN0ZWQKKyMgd2l0aCBkeW5hbWljIHBhdGgsIGNoZWNrIHdoZW4gYSBsb2FkZXIgaXMgcmV0dXJuZWQgb24gcGF0aCByZWxvYWQgKHRoYXQgaXMsCisjICB0cnlpbmcgdG8gc3dpdGNoIGZyb20gYSBuYW1lc3BhY2UgcGFja2FnZSB0byBhIHJlZ3VsYXIgcGFja2FnZSkKKworCitAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorZGVmIHN5c19tb2R1bGVzX2NvbnRleHQoKToKKyAgICAiIiIKKyAgICBNYWtlIHN1cmUgc3lzLm1vZHVsZXMgaXMgdGhlIHNhbWUgb2JqZWN0IGFuZCBoYXMgdGhlIHNhbWUgY29udGVudAorICAgIHdoZW4gZXhpdGluZyB0aGUgY29udGV4dCBhcyB3aGVuIGVudGVyaW5nLgorCisgICAgU2ltaWxhciB0byBpbXBvcnRsaWIudGVzdC51dGlsLnVuY2FjaGUsIGJ1dCBkb2Vzbid0IHJlcXVpcmUgZXhwbGljaXQKKyAgICBuYW1lcy4KKyAgICAiIiIKKyAgICBzeXNfbW9kdWxlc19zYXZlZCA9IHN5cy5tb2R1bGVzCisgICAgc3lzX21vZHVsZXNfY29weSA9IHN5cy5tb2R1bGVzLmNvcHkoKQorICAgIHRyeToKKyAgICAgICAgeWllbGQKKyAgICBmaW5hbGx5OgorICAgICAgICBzeXMubW9kdWxlcyA9IHN5c19tb2R1bGVzX3NhdmVkCisgICAgICAgIHN5cy5tb2R1bGVzLmNsZWFyKCkKKyAgICAgICAgc3lzLm1vZHVsZXMudXBkYXRlKHN5c19tb2R1bGVzX2NvcHkpCisKKworQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKK2RlZiBuYW1lc3BhY2VfdHJlZV9jb250ZXh0KCoqa3dhcmdzKToKKyAgICAiIiIKKyAgICBTYXZlIGltcG9ydCBzdGF0ZSBhbmQgc3lzLm1vZHVsZXMgY2FjaGUgYW5kIHJlc3RvcmUgaXQgb24gZXhpdC4KKyAgICBUeXBpY2FsIHVzYWdlOgorCisgICAgPj4+IHdpdGggbmFtZXNwYWNlX3RyZWVfY29udGV4dChwYXRoPVsnL3RtcC94eHl5L3BvcnRpb24xJywKKyAgICAuLi4gICAgICAgICAnL3RtcC94eHl5L3BvcnRpb24yJ10pOgorICAgIC4uLiAgICAgcGFzcworICAgICIiIgorICAgICMgdXNlIGRlZmF1bHQgbWV0YV9wYXRoIGFuZCBwYXRoX2hvb2tzIHVubGVzcyBzcGVjaWZpZWQgb3RoZXJ3aXNlCisgICAga3dhcmdzLnNldGRlZmF1bHQoJ21ldGFfcGF0aCcsIHN5cy5tZXRhX3BhdGgpCisgICAga3dhcmdzLnNldGRlZmF1bHQoJ3BhdGhfaG9va3MnLCBzeXMucGF0aF9ob29rcykKKyAgICBpbXBvcnRfY29udGV4dCA9IGltcG9ydGxpYi50ZXN0LnV0aWwuaW1wb3J0X3N0YXRlKCoqa3dhcmdzKQorICAgIHdpdGggaW1wb3J0X2NvbnRleHQsIHN5c19tb2R1bGVzX2NvbnRleHQoKToKKyAgICAgICAgeWllbGQKKworY2xhc3MgTmFtZXNwYWNlUGFja2FnZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIgorICAgIFN1YmNsYXNzZXMgc2hvdWxkIGRlZmluZSBzZWxmLnJvb3QgYW5kIHNlbGYucGF0aHMgKHVuZGVyIHRoYXQgcm9vdCkKKyAgICB0byBiZSBhZGRlZCB0byBzeXMucGF0aC4KKyAgICAiIiIKKyAgICByb290ID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICduYW1lc3BhY2VfcGtncycpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYucmVzb2x2ZWRfcGF0aHMgPSBbCisgICAgICAgICAgICBvcy5wYXRoLmpvaW4oc2VsZi5yb290LCBwYXRoKSBmb3IgcGF0aCBpbiBzZWxmLnBhdGhzCisgICAgICAgIF0KKyAgICAgICAgc2VsZi5jdHggPSBuYW1lc3BhY2VfdHJlZV9jb250ZXh0KHBhdGg9c2VsZi5yZXNvbHZlZF9wYXRocykKKyAgICAgICAgc2VsZi5jdHguX19lbnRlcl9fKCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIyBUT0RPOiB3aWxsIHdlIGV2ZXIgd2FudCB0byBwYXNzIGV4Y19pbmZvIHRvIF9fZXhpdF9fPworICAgICAgICBzZWxmLmN0eC5fX2V4aXRfXyhOb25lLCBOb25lLCBOb25lKQorCitjbGFzcyBTaW5nbGVOYW1lc3BhY2VQYWNrYWdlKE5hbWVzcGFjZVBhY2thZ2VUZXN0KToKKyAgICBwYXRocyA9IFsncG9ydGlvbjEnXQorCisgICAgZGVmIHRlc3Rfc2ltcGxlX3BhY2thZ2Uoc2VsZik6CisgICAgICAgIGltcG9ydCBmb28ub25lCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLm9uZS5hdHRyLCAncG9ydGlvbjEgZm9vIG9uZScpCisKKyAgICBkZWYgdGVzdF9jYW50X2ltcG9ydF9vdGhlcihzZWxmKToKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgICAgICBpbXBvcnQgZm9vLnR3bworCisgICAgZGVmIHRlc3RfbW9kdWxlX3JlcHIoc2VsZik6CisgICAgICAgIGltcG9ydCBmb28ub25lCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihmb28pLCAiPG1vZHVsZSAnZm9vJyAobmFtZXNwYWNlKT4iKQorCisKK2NsYXNzIER5bmFtaWNQYXRoZU5hbWVzcGFjZVBhY2thZ2UoTmFtZXNwYWNlUGFja2FnZVRlc3QpOgorICAgIHBhdGhzID0gWydwb3J0aW9uMSddCisKKyAgICBkZWYgdGVzdF9keW5hbWljX3BhdGgoc2VsZik6CisgICAgICAgICMgTWFrZSBzdXJlIG9ubHkgJ2Zvby5vbmUnIGNhbiBiZSBpbXBvcnRlZAorICAgICAgICBpbXBvcnQgZm9vLm9uZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5vbmUuYXR0ciwgJ3BvcnRpb24xIGZvbyBvbmUnKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICAgICAgaW1wb3J0IGZvby50d28KKworICAgICAgICAjIE5vdyBtb2RpZnkgc3lzLnBhdGgKKyAgICAgICAgc3lzLnBhdGguYXBwZW5kKG9zLnBhdGguam9pbihzZWxmLnJvb3QsICdwb3J0aW9uMicpKQorCisgICAgICAgICMgQW5kIG1ha2Ugc3VyZSBmb28udHdvIGlzIG5vdyBpbXBvcnRhYmxlCisgICAgICAgIGltcG9ydCBmb28udHdvCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLnR3by5hdHRyLCAncG9ydGlvbjIgZm9vIHR3bycpCisKKworY2xhc3MgQ29tYmluZWROYW1lc3BhY2VQYWNrYWdlcyhOYW1lc3BhY2VQYWNrYWdlVGVzdCk6CisgICAgcGF0aHMgPSBbJ2JvdGhfcG9ydGlvbnMnXQorCisgICAgZGVmIHRlc3RfaW1wb3J0cyhzZWxmKToKKyAgICAgICAgaW1wb3J0IGZvby5vbmUKKyAgICAgICAgaW1wb3J0IGZvby50d28KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28ub25lLmF0dHIsICdib3RoX3BvcnRpb25zIGZvbyBvbmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby50d28uYXR0ciwgJ2JvdGhfcG9ydGlvbnMgZm9vIHR3bycpCisKKworY2xhc3MgU2VwYXJhdGVkTmFtZXNwYWNlUGFja2FnZXMoTmFtZXNwYWNlUGFja2FnZVRlc3QpOgorICAgIHBhdGhzID0gWydwb3J0aW9uMScsICdwb3J0aW9uMiddCisKKyAgICBkZWYgdGVzdF9pbXBvcnRzKHNlbGYpOgorICAgICAgICBpbXBvcnQgZm9vLm9uZQorICAgICAgICBpbXBvcnQgZm9vLnR3bworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5vbmUuYXR0ciwgJ3BvcnRpb24xIGZvbyBvbmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby50d28uYXR0ciwgJ3BvcnRpb24yIGZvbyB0d28nKQorCisKK2NsYXNzIFNlcGFyYXRlZE92ZXJsYXBwaW5nTmFtZXNwYWNlUGFja2FnZXMoTmFtZXNwYWNlUGFja2FnZVRlc3QpOgorICAgIHBhdGhzID0gWydwb3J0aW9uMScsICdib3RoX3BvcnRpb25zJ10KKworICAgIGRlZiB0ZXN0X2ZpcnN0X3BhdGhfd2lucyhzZWxmKToKKyAgICAgICAgaW1wb3J0IGZvby5vbmUKKyAgICAgICAgaW1wb3J0IGZvby50d28KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28ub25lLmF0dHIsICdwb3J0aW9uMSBmb28gb25lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28udHdvLmF0dHIsICdib3RoX3BvcnRpb25zIGZvbyB0d28nKQorCisgICAgZGVmIHRlc3RfZmlyc3RfcGF0aF93aW5zX2FnYWluKHNlbGYpOgorICAgICAgICBzeXMucGF0aC5yZXZlcnNlKCkKKyAgICAgICAgaW1wb3J0IGZvby5vbmUKKyAgICAgICAgaW1wb3J0IGZvby50d28KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28ub25lLmF0dHIsICdib3RoX3BvcnRpb25zIGZvbyBvbmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby50d28uYXR0ciwgJ2JvdGhfcG9ydGlvbnMgZm9vIHR3bycpCisKKyAgICBkZWYgdGVzdF9maXJzdF9wYXRoX3dpbnNfaW1wb3J0aW5nX3NlY29uZF9maXJzdChzZWxmKToKKyAgICAgICAgaW1wb3J0IGZvby50d28KKyAgICAgICAgaW1wb3J0IGZvby5vbmUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28ub25lLmF0dHIsICdwb3J0aW9uMSBmb28gb25lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28udHdvLmF0dHIsICdib3RoX3BvcnRpb25zIGZvbyB0d28nKQorCisKK2NsYXNzIFNpbmdsZVppcE5hbWVzcGFjZVBhY2thZ2UoTmFtZXNwYWNlUGFja2FnZVRlc3QpOgorICAgIHBhdGhzID0gWyd0b3BfbGV2ZWxfcG9ydGlvbjEuemlwJ10KKworICAgIGRlZiB0ZXN0X3NpbXBsZV9wYWNrYWdlKHNlbGYpOgorICAgICAgICBpbXBvcnQgZm9vLm9uZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5vbmUuYXR0ciwgJ3BvcnRpb24xIGZvbyBvbmUnKQorCisgICAgZGVmIHRlc3RfY2FudF9pbXBvcnRfb3RoZXIoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IpOgorICAgICAgICAgICAgaW1wb3J0IGZvby50d28KKworCitjbGFzcyBTZXBhcmF0ZWRaaXBOYW1lc3BhY2VQYWNrYWdlcyhOYW1lc3BhY2VQYWNrYWdlVGVzdCk6CisgICAgcGF0aHMgPSBbJ3RvcF9sZXZlbF9wb3J0aW9uMS56aXAnLCAncG9ydGlvbjInXQorCisgICAgZGVmIHRlc3RfaW1wb3J0cyhzZWxmKToKKyAgICAgICAgaW1wb3J0IGZvby5vbmUKKyAgICAgICAgaW1wb3J0IGZvby50d28KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28ub25lLmF0dHIsICdwb3J0aW9uMSBmb28gb25lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28udHdvLmF0dHIsICdwb3J0aW9uMiBmb28gdHdvJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbigndG9wX2xldmVsX3BvcnRpb24xLnppcCcsIGZvby5vbmUuX19maWxlX18pCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJy56aXAnLCBmb28udHdvLl9fZmlsZV9fKQorCisKK2NsYXNzIFNpbmdsZU5lc3RlZFppcE5hbWVzcGFjZVBhY2thZ2UoTmFtZXNwYWNlUGFja2FnZVRlc3QpOgorICAgIHBhdGhzID0gWyduZXN0ZWRfcG9ydGlvbjEuemlwL25lc3RlZF9wb3J0aW9uMSddCisKKyAgICBkZWYgdGVzdF9zaW1wbGVfcGFja2FnZShzZWxmKToKKyAgICAgICAgaW1wb3J0IGZvby5vbmUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28ub25lLmF0dHIsICdwb3J0aW9uMSBmb28gb25lJykKKworICAgIGRlZiB0ZXN0X2NhbnRfaW1wb3J0X290aGVyKHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIGltcG9ydCBmb28udHdvCisKKworY2xhc3MgU2VwYXJhdGVkTmVzdGVkWmlwTmFtZXNwYWNlUGFja2FnZXMoTmFtZXNwYWNlUGFja2FnZVRlc3QpOgorICAgIHBhdGhzID0gWyduZXN0ZWRfcG9ydGlvbjEuemlwL25lc3RlZF9wb3J0aW9uMScsICdwb3J0aW9uMiddCisKKyAgICBkZWYgdGVzdF9pbXBvcnRzKHNlbGYpOgorICAgICAgICBpbXBvcnQgZm9vLm9uZQorICAgICAgICBpbXBvcnQgZm9vLnR3bworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5vbmUuYXR0ciwgJ3BvcnRpb24xIGZvbyBvbmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby50d28uYXR0ciwgJ3BvcnRpb24yIGZvbyB0d28nKQorICAgICAgICBmbiA9IG9zLnBhdGguam9pbignbmVzdGVkX3BvcnRpb24xLnppcCcsICduZXN0ZWRfcG9ydGlvbjEnKQorICAgICAgICBzZWxmLmFzc2VydEluKGZuLCBmb28ub25lLl9fZmlsZV9fKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCcuemlwJywgZm9vLnR3by5fX2ZpbGVfXykKKworCitjbGFzcyBMZWdhY3lTdXBwb3J0KE5hbWVzcGFjZVBhY2thZ2VUZXN0KToKKyAgICBwYXRocyA9IFsnbm90X2FfbmFtZXNwYWNlX3BrZycsICdwb3J0aW9uMScsICdwb3J0aW9uMicsICdib3RoX3BvcnRpb25zJ10KKworICAgIGRlZiB0ZXN0X25vbl9uYW1lc3BhY2VfcGFja2FnZV90YWtlc19wcmVjZWRlbmNlKHNlbGYpOgorICAgICAgICBpbXBvcnQgZm9vLm9uZQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEltcG9ydEVycm9yKToKKyAgICAgICAgICAgIGltcG9ydCBmb28udHdvCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ19faW5pdF9fJywgZm9vLl9fZmlsZV9fKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCduYW1lc3BhY2UnLCBzdHIoZm9vLl9fbG9hZGVyX18pLmxvd2VyKCkpCisKKworY2xhc3MgRHluYW1pY1BhdGhDYWxjdWxhdGlvbihOYW1lc3BhY2VQYWNrYWdlVGVzdCk6CisgICAgcGF0aHMgPSBbJ3Byb2plY3QxJywgJ3Byb2plY3QyJ10KKworICAgIGRlZiB0ZXN0X3Byb2plY3QzX2ZhaWxzKHNlbGYpOgorICAgICAgICBpbXBvcnQgcGFyZW50LmNoaWxkLm9uZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuX19wYXRoX18pLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuY2hpbGQuX19wYXRoX18pLCAyKQorICAgICAgICBpbXBvcnQgcGFyZW50LmNoaWxkLnR3bworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuX19wYXRoX18pLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuY2hpbGQuX19wYXRoX18pLCAyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyZW50LmNoaWxkLm9uZS5hdHRyLCAncGFyZW50IGNoaWxkIG9uZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyZW50LmNoaWxkLnR3by5hdHRyLCAncGFyZW50IGNoaWxkIHR3bycpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgICAgICBpbXBvcnQgcGFyZW50LmNoaWxkLnRocmVlCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGFyZW50Ll9fcGF0aF9fKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocGFyZW50LmNoaWxkLl9fcGF0aF9fKSwgMikKKworICAgIGRlZiB0ZXN0X3Byb2plY3QzX3N1Y2NlZWRzKHNlbGYpOgorICAgICAgICBpbXBvcnQgcGFyZW50LmNoaWxkLm9uZQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuX19wYXRoX18pLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuY2hpbGQuX19wYXRoX18pLCAyKQorICAgICAgICBpbXBvcnQgcGFyZW50LmNoaWxkLnR3bworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuX19wYXRoX18pLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuY2hpbGQuX19wYXRoX18pLCAyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyZW50LmNoaWxkLm9uZS5hdHRyLCAncGFyZW50IGNoaWxkIG9uZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyZW50LmNoaWxkLnR3by5hdHRyLCAncGFyZW50IGNoaWxkIHR3bycpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbXBvcnRFcnJvcik6CisgICAgICAgICAgICBpbXBvcnQgcGFyZW50LmNoaWxkLnRocmVlCisKKyAgICAgICAgIyBub3cgYWRkIHByb2plY3QzCisgICAgICAgIHN5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmpvaW4oc2VsZi5yb290LCAncHJvamVjdDMnKSkKKyAgICAgICAgaW1wb3J0IHBhcmVudC5jaGlsZC50aHJlZQorCisgICAgICAgICMgdGhlIHBhdGhzIGR5bmFtaWNhbGx5IGdldCBsb25nZXIsIHRvIGluY2x1ZGUgdGhlIG5ldyBkaXJlY3RvcmllcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuX19wYXRoX18pLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihwYXJlbnQuY2hpbGQuX19wYXRoX18pLCAzKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyZW50LmNoaWxkLnRocmVlLmF0dHIsICdwYXJlbnQgY2hpbGQgdGhyZWUnKQorCisKK2NsYXNzIFppcFdpdGhNaXNzaW5nRGlyZWN0b3J5KE5hbWVzcGFjZVBhY2thZ2VUZXN0KToKKyAgICBwYXRocyA9IFsnbWlzc2luZ19kaXJlY3RvcnkuemlwJ10KKworICAgIEB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmUKKyAgICBkZWYgdGVzdF9taXNzaW5nX2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgIyBUaGlzIHdpbGwgZmFpbCBiZWNhdXNlIG1pc3NpbmdfZGlyZWN0b3J5LnppcCBjb250YWluczoKKyAgICAgICAgIyAgIExlbmd0aCAgICAgIERhdGUgICAgVGltZSAgICBOYW1lCisgICAgICAgICMgLS0tLS0tLS0tICAtLS0tLS0tLS0tIC0tLS0tICAgLS0tLQorICAgICAgICAjICAgICAgICAyOSAgMjAxMi0wNS0wMyAxODoxMyAgIGZvby9vbmUucHkKKyAgICAgICAgIyAgICAgICAgIDAgIDIwMTItMDUtMDMgMjA6NTcgICBiYXIvCisgICAgICAgICMgICAgICAgIDM4ICAyMDEyLTA1LTAzIDIwOjU3ICAgYmFyL3R3by5weQorICAgICAgICAjIC0tLS0tLS0tLSAgICAgICAgICAgICAgICAgICAgIC0tLS0tLS0KKyAgICAgICAgIyAgICAgICAgNjcgICAgICAgICAgICAgICAgICAgICAzIGZpbGVzCisKKyAgICAgICAgIyBCZWNhdXNlIHRoZXJlIGlzIG5vICdmb28vJywgdGhlIHppcGltcG9ydGVyIGN1cnJlbnRseSBkb2Vzbid0CisgICAgICAgICMgIGtub3cgdGhhdCBmb28gaXMgYSBuYW1lc3BhY2UgcGFja2FnZQorCisgICAgICAgIGltcG9ydCBmb28ub25lCisKKyAgICBkZWYgdGVzdF9wcmVzZW50X2RpcmVjdG9yeShzZWxmKToKKyAgICAgICAgIyBUaGlzIHN1Y2NlZWRzIGJlY2F1c2UgdGhlcmUgaXMgYSAiYmFyLyIgaW4gdGhlIHppcCBmaWxlCisgICAgICAgIGltcG9ydCBiYXIudHdvCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYmFyLnR3by5hdHRyLCAnbWlzc2luZ19kaXJlY3RvcnkgZm9vIHR3bycpCisKKworY2xhc3MgTW9kdWxlQW5kTmFtZXNwYWNlUGFja2FnZUluU2FtZURpcihOYW1lc3BhY2VQYWNrYWdlVGVzdCk6CisgICAgcGF0aHMgPSBbJ21vZHVsZV9hbmRfbmFtZXNwYWNlX3BhY2thZ2UnXQorCisgICAgZGVmIHRlc3RfbW9kdWxlX2JlZm9yZV9uYW1lc3BhY2VfcGFja2FnZShzZWxmKToKKyAgICAgICAgIyBNYWtlIHN1cmUgd2UgZmluZCB0aGUgbW9kdWxlIGluIHByZWZlcmVuY2UgdG8gdGhlCisgICAgICAgICMgIG5hbWVzcGFjZSBwYWNrYWdlLgorICAgICAgICBpbXBvcnQgYV90ZXN0CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYV90ZXN0LmF0dHIsICdpbiBtb2R1bGUnKQorCisKK2RlZiB0ZXN0X21haW4oKToKKyAgICBydW5fdW5pdHRlc3QoKk5hbWVzcGFjZVBhY2thZ2VUZXN0Ll9fc3ViY2xhc3Nlc19fKCkpCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9ubnRwbGliLnB5IGIvTGliL3Rlc3QvdGVzdF9ubnRwbGliLnB5CmluZGV4IDczMzViMjMuLjE5ZmIxMGEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfbm50cGxpYi5weQorKysgYi9MaWIvdGVzdC90ZXN0X25udHBsaWIucHkKQEAgLTEsNCArMSw1IEBACiBpbXBvcnQgaW8KK2ltcG9ydCBzb2NrZXQKIGltcG9ydCBkYXRldGltZQogaW1wb3J0IHRleHR3cmFwCiBpbXBvcnQgdW5pdHRlc3QKQEAgLTI1Nyw2ICsyNTgsMjYgQEAKICAgICAgICAgICAgICMgdmFsdWUKICAgICAgICAgICAgIHNldGF0dHIoY2xzLCBuYW1lLCB3cmFwX21ldGgobWV0aCkpCiAKKyAgICBkZWYgdGVzdF93aXRoX3N0YXRlbWVudChzZWxmKToKKyAgICAgICAgZGVmIGlzX2Nvbm5lY3RlZCgpOgorICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VydmVyLCAnZmlsZScpOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlcnZlci5oZWxwKCkKKyAgICAgICAgICAgIGV4Y2VwdCAoc29ja2V0LmVycm9yLCBFT0ZFcnJvcik6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHdpdGggc2VsZi5OTlRQX0NMQVNTKHNlbGYuTk5UUF9IT1NULCB0aW1lb3V0PVRJTUVPVVQsIHVzZW5ldHJjPUZhbHNlKSBhcyBzZXJ2ZXI6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfY29ubmVjdGVkKCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VydmVyLmhlbHAoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpc19jb25uZWN0ZWQoKSkKKworICAgICAgICB3aXRoIHNlbGYuTk5UUF9DTEFTUyhzZWxmLk5OVFBfSE9TVCwgdGltZW91dD1USU1FT1VULCB1c2VuZXRyYz1GYWxzZSkgYXMgc2VydmVyOgorICAgICAgICAgICAgc2VydmVyLnF1aXQoKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlzX2Nvbm5lY3RlZCgpKQorCisKIE5ldHdvcmtlZE5OVFBUZXN0c01peGluLndyYXBfbWV0aG9kcygpCiAKIApAQCAtODk0LDcgKzkxNSw3IEBACiAKICAgICBkZWYgX2NoZWNrX2FydGljbGVfYm9keShzZWxmLCBsaW5lcyk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGxpbmVzKSwgNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lc1stMV0uZGVjb2RlKCd1dGY4JyksICItLSBTaWduZWQgYnkgQW5kcsOpLiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluZXNbLTFdLmRlY29kZSgndXRmLTgnKSwgIi0tIFNpZ25lZCBieSBBbmRyw6kuIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lc1stMl0sIGIiIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lc1stM10sIGIiLkhlcmUgaXMgYSBkb3Qtc3RhcnRpbmcgbGluZS4iKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmVzWy00XSwgYiJUaGlzIGlzIGp1c3QgYSB0ZXN0IGFydGljbGUuIikKQEAgLTExMzMsMTIgKzExNTQsMTIgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLCBzdWNjZXNzX3Jlc3ApCiAgICAgICAgICMgV2l0aCBhbiBpdGVyYWJsZSBvZiB0ZXJtaW5hdGVkIGxpbmVzCiAgICAgICAgIGRlZiBpdGVybGluZXMoYik6Ci0gICAgICAgICAgICByZXR1cm4gaXRlcihiLnNwbGl0bGluZXMoVHJ1ZSkpCisgICAgICAgICAgICByZXR1cm4gaXRlcihiLnNwbGl0bGluZXMoa2VlcGVuZHM9VHJ1ZSkpCiAgICAgICAgIHJlc3AgPSBzZWxmLl9jaGVja19wb3N0X2loYXZlX3N1YihmdW5jLCAqYXJncywgZmlsZV9mYWN0b3J5PWl0ZXJsaW5lcykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLCBzdWNjZXNzX3Jlc3ApCiAgICAgICAgICMgV2l0aCBhbiBpdGVyYWJsZSBvZiBub24tdGVybWluYXRlZCBsaW5lcwogICAgICAgICBkZWYgaXRlcmxpbmVzKGIpOgotICAgICAgICAgICAgcmV0dXJuIGl0ZXIoYi5zcGxpdGxpbmVzKEZhbHNlKSkKKyAgICAgICAgICAgIHJldHVybiBpdGVyKGIuc3BsaXRsaW5lcyhrZWVwZW5kcz1GYWxzZSkpCiAgICAgICAgIHJlc3AgPSBzZWxmLl9jaGVja19wb3N0X2loYXZlX3N1YihmdW5jLCAqYXJncywgZmlsZV9mYWN0b3J5PWl0ZXJsaW5lcykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLCBzdWNjZXNzX3Jlc3ApCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfbnRwYXRoLnB5IGIvTGliL3Rlc3QvdGVzdF9udHBhdGgucHkKaW5kZXggNjQ2NDk1MC4uMmM5ZGFiOSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9udHBhdGgucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9udHBhdGgucHkKQEAgLTEsMTAgKzEsMTEgQEAKIGltcG9ydCBudHBhdGgKIGltcG9ydCBvcwogaW1wb3J0IHN5cworaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgd2FybmluZ3MKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBUZXN0RmFpbGVkCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQsIHRlc3RfZ2VuZXJpY3BhdGgKIGZyb20gdGVtcGZpbGUgaW1wb3J0IFRlbXBvcmFyeUZpbGUKLWltcG9ydCB1bml0dGVzdAogCiAKIGRlZiB0ZXN0ZXIoZm4sIHdhbnRSZXN1bHQpOgpAQCAtMjEsNyArMjIsOSBAQAogICAgIGZuID0gZm4ucmVwbGFjZSgnWyInLCAnW2IiJykKICAgICBmbiA9IGZuLnJlcGxhY2UoIiwgJyIsICIsIGInIikKICAgICBmbiA9IGZuLnJlcGxhY2UoJywgIicsICcsIGIiJykKLSAgICBnb3RSZXN1bHQgPSBldmFsKGZuKQorICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKKyAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJpZ25vcmUiLCBEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgIGdvdFJlc3VsdCA9IGV2YWwoZm4pCiAgICAgaWYgaXNpbnN0YW5jZSh3YW50UmVzdWx0LCBzdHIpOgogICAgICAgICB3YW50UmVzdWx0ID0gd2FudFJlc3VsdC5lbmNvZGUoJ2FzY2lpJykKICAgICBlbGlmIGlzaW5zdGFuY2Uod2FudFJlc3VsdCwgdHVwbGUpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9udW1lcmljX3Rvd2VyLnB5IGIvTGliL3Rlc3QvdGVzdF9udW1lcmljX3Rvd2VyLnB5CmluZGV4IGJlZjNkNGMuLjM0MjNkNGUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfbnVtZXJpY190b3dlci5weQorKysgYi9MaWIvdGVzdC90ZXN0X251bWVyaWNfdG93ZXIucHkKQEAgLTE1MCw3ICsxNTAsNyBAQAogICAgICAgICAjIGludCwgZmxvYXQsIEZyYWN0aW9uLCBEZWNpbWFsCiAgICAgICAgIHRlc3RfdmFsdWVzID0gWwogICAgICAgICAgICAgZmxvYXQoJy1pbmYnKSwKLSAgICAgICAgICAgIEQoJy0xZTk5OTk5OTk5OScpLAorICAgICAgICAgICAgRCgnLTFlNDI1MDAwMDAwJyksCiAgICAgICAgICAgICAtMWUzMDgsCiAgICAgICAgICAgICBGKC0yMiwgNyksCiAgICAgICAgICAgICAtMy4xNCwKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfb3B0cGFyc2UucHkgYi9MaWIvdGVzdC90ZXN0X29wdHBhcnNlLnB5CmluZGV4IDdiOTU2MTIuLmQxYWU3NTcgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfb3B0cGFyc2UucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9vcHRwYXJzZS5weQpAQCAtNjMxLDcgKzYzMSw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbl9saXN0PW9wdGlvbnMpCiAKICAgICBkZWYgdGVzdF9yZXF1aXJlZF92YWx1ZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRQYXJzZUZhaWwoWyItYSJdLCAiLWEgb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IikKKyAgICAgICAgc2VsZi5hc3NlcnRQYXJzZUZhaWwoWyItYSJdLCAiLWEgb3B0aW9uIHJlcXVpcmVzIDEgYXJndW1lbnQiKQogCiAgICAgZGVmIHRlc3RfaW52YWxpZF9pbnRlZ2VyKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFBhcnNlRmFpbChbIi1iIiwgIjV4Il0sCkBAIC0xMDIzLDcgKzEwMjMsNyBAQAogICAgICAgICBUWVBFX0NIRUNLRVJbImZpbGUiXSA9IGNoZWNrX2ZpbGUKIAogICAgIGRlZiB0ZXN0X2ZpbGV0eXBlX29rKHNlbGYpOgotICAgICAgICBvcGVuKHN1cHBvcnQuVEVTVEZOLCAidyIpLmNsb3NlKCkKKyAgICAgICAgc3VwcG9ydC5jcmVhdGVfZW1wdHlfZmlsZShzdXBwb3J0LlRFU1RGTikKICAgICAgICAgc2VsZi5hc3NlcnRQYXJzZU9LKFsiLS1maWxlIiwgc3VwcG9ydC5URVNURk4sICItYWZvbyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeydmaWxlJzogc3VwcG9ydC5URVNURk4sICdhJzogJ2Zvbyd9LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgW10pCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X29zLnB5IGIvTGliL3Rlc3QvdGVzdF9vcy5weQppbmRleCA2MDVkMmE0Li43YzczZjFlIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X29zLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfb3MucHkKQEAgLTE0LDIwICsxNCw0MCBAQAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBpbXBvcnQgY29udGV4dGxpYgogaW1wb3J0IG1tYXAKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHJlCiBpbXBvcnQgdXVpZAoraW1wb3J0IGFzeW5jb3JlCitpbXBvcnQgYXN5bmNoYXQKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCBpdGVydG9vbHMKIGltcG9ydCBzdGF0CitpbXBvcnQgbG9jYWxlCitpbXBvcnQgY29kZWNzCit0cnk6CisgICAgaW1wb3J0IHRocmVhZGluZworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHRocmVhZGluZyA9IE5vbmUKIGZyb20gdGVzdC5zY3JpcHRfaGVscGVyIGltcG9ydCBhc3NlcnRfcHl0aG9uX29rCiAKK3dpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKKyAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImlnbm9yZSIsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICBvcy5zdGF0X2Zsb2F0X3RpbWVzKFRydWUpCitzdCA9IG9zLnN0YXQoX19maWxlX18pCitzdGF0X3N1cHBvcnRzX3N1YnNlY29uZCA9ICgKKyAgICAjIGNoZWNrIGlmIGZsb2F0IGFuZCBpbnQgdGltZXN0YW1wcyBhcmUgZGlmZmVyZW50CisgICAgKHN0LnN0X2F0aW1lICE9IHN0WzddKQorICAgIG9yIChzdC5zdF9tdGltZSAhPSBzdFs4XSkKKyAgICBvciAoc3Quc3RfY3RpbWUgIT0gc3RbOV0pKQorCiAjIERldGVjdCB3aGV0aGVyIHdlJ3JlIG9uIGEgTGludXggc3lzdGVtIHRoYXQgdXNlcyB0aGUgKG5vdyBvdXRkYXRlZAogIyBhbmQgdW5tYWludGFpbmVkKSBsaW51eHRocmVhZHMgdGhyZWFkaW5nIGxpYnJhcnkuICBUaGVyZSdzIGFuIGlzc3VlCiAjIHdoZW4gY29tYmluaW5nIGxpbnV4dGhyZWFkcyB3aXRoIGEgZmFpbGVkIGV4ZWN2IGNhbGw6IHNlZQogIyBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlNDk3MC4KLWlmIChoYXNhdHRyKG9zLCAiY29uZnN0cl9uYW1lcyIpIGFuZAotICAgICJDU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OIiBpbiBvcy5jb25mc3RyX25hbWVzKToKLSAgICBsaWJwdGhyZWFkID0gb3MuY29uZnN0cigiQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTiIpCi0gICAgVVNJTkdfTElOVVhUSFJFQURTPSBsaWJwdGhyZWFkLnN0YXJ0c3dpdGgoImxpbnV4dGhyZWFkcyIpCitpZiBoYXNhdHRyKHN5cywgJ3RocmVhZF9pbmZvJykgYW5kIHN5cy50aHJlYWRfaW5mby52ZXJzaW9uOgorICAgIFVTSU5HX0xJTlVYVEhSRUFEUyA9IHN5cy50aHJlYWRfaW5mby52ZXJzaW9uLnN0YXJ0c3dpdGgoImxpbnV4dGhyZWFkcyIpCiBlbHNlOgotICAgIFVTSU5HX0xJTlVYVEhSRUFEUz0gRmFsc2UKKyAgICBVU0lOR19MSU5VWFRIUkVBRFMgPSBGYWxzZQogCiAjIFRlc3RzIGNyZWF0aW5nIFRFU1RGTgogY2xhc3MgRmlsZVRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTEyNCw2ICsxNDQsMTggQEAKICAgICAgICAgc2VsZi5mZG9wZW5faGVscGVyKCdyJykKICAgICAgICAgc2VsZi5mZG9wZW5faGVscGVyKCdyJywgMTAwKQogCisgICAgZGVmIHRlc3RfcmVwbGFjZShzZWxmKToKKyAgICAgICAgVEVTVEZOMiA9IHN1cHBvcnQuVEVTVEZOICsgIi4yIgorICAgICAgICB3aXRoIG9wZW4oc3VwcG9ydC5URVNURk4sICd3JykgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUoIjEiKQorICAgICAgICB3aXRoIG9wZW4oVEVTVEZOMiwgJ3cnKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSgiMiIpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChvcy51bmxpbmssIFRFU1RGTjIpCisgICAgICAgIG9zLnJlcGxhY2Uoc3VwcG9ydC5URVNURk4sIFRFU1RGTjIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEZpbGVOb3RGb3VuZEVycm9yLCBvcy5zdGF0LCBzdXBwb3J0LlRFU1RGTikKKyAgICAgICAgd2l0aCBvcGVuKFRFU1RGTjIsICdyJykgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5yZWFkKCksICIxIikKKwogCiAjIFRlc3QgYXR0cmlidXRlcyBvbiByZXR1cm4gdmFsdWVzIGZyb20gb3MuKnN0YXQqIGZhbWlseS4KIGNsYXNzIFN0YXRBdHRyaWJ1dGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0xNDIsNyArMTc0LDYgQEAKICAgICAgICAgaWYgbm90IGhhc2F0dHIob3MsICJzdGF0Iik6CiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBpbXBvcnQgc3RhdAogICAgICAgICByZXN1bHQgPSBvcy5zdGF0KGZuYW1lKQogCiAgICAgICAgICMgTWFrZSBzdXJlIGRpcmVjdCBhY2Nlc3Mgd29ya3MKQEAgLTE2Miw2ICsxOTMsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbZ2V0YXR0cihzdGF0LCBuYW1lKV0pCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihhdHRyLCBtZW1iZXJzKQogCisgICAgICAgICMgTWFrZSBzdXJlIHRoYXQgdGhlIHN0Xz90aW1lIGFuZCBzdF8/dGltZV9ucyBmaWVsZHMgcm91Z2hseSBhZ3JlZQorICAgICAgICAjICh0aGV5IHNob3VsZCBhbHdheXMgYWdyZWUgdXAgdG8gYXJvdW5kIHRlbnMtb2YtbWljcm9zZWNvbmRzKQorICAgICAgICBmb3IgbmFtZSBpbiAnc3RfYXRpbWUgc3RfbXRpbWUgc3RfY3RpbWUnLnNwbGl0KCk6CisgICAgICAgICAgICBmbG9hdHkgPSBpbnQoZ2V0YXR0cihyZXN1bHQsIG5hbWUpICogMTAwMDAwKQorICAgICAgICAgICAgbmFub3NlY29uZHkgPSBnZXRhdHRyKHJlc3VsdCwgbmFtZSArICJfbnMiKSAvLyAxMDAwMAorICAgICAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChmbG9hdHksIG5hbm9zZWNvbmR5LCBkZWx0YT0yKQorCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJlc3VsdFsyMDBdCiAgICAgICAgICAgICBzZWxmLmZhaWwoIk5vIGV4Y2VwdGlvbiB0aHJvd24iKQpAQCAtMjA4LDcgKzI0Niw5IEBACiAgICAgICAgICAgICBmbmFtZSA9IHNlbGYuZm5hbWUuZW5jb2RlKHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSkKICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoImNhbm5vdCBlbmNvZGUgJWEgZm9yIHRoZSBmaWxlc3lzdGVtIiAlIHNlbGYuZm5hbWUpCi0gICAgICAgIHNlbGYuY2hlY2tfc3RhdF9hdHRyaWJ1dGVzKGZuYW1lKQorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImlnbm9yZSIsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIHNlbGYuY2hlY2tfc3RhdF9hdHRyaWJ1dGVzKGZuYW1lKQogCiAgICAgZGVmIHRlc3Rfc3RhdHZmc19hdHRyaWJ1dGVzKHNlbGYpOgogICAgICAgICBpZiBub3QgaGFzYXR0cihvcywgInN0YXR2ZnMiKToKQEAgLTI2NSw2ICszMDUsMTQzIEBACiAgICAgICAgIHN0MiA9IG9zLnN0YXQoc3VwcG9ydC5URVNURk4pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3QyLnN0X210aW1lLCBpbnQoc3Quc3RfbXRpbWUtZGVsdGEpKQogCisgICAgZGVmIF90ZXN0X3V0aW1lKHNlbGYsIGZpbGVuYW1lLCBhdHRyLCB1dGltZSwgZGVsdGEpOgorICAgICAgICAjIElzc3VlICMxMzMyNyByZW1vdmVkIHRoZSByZXF1aXJlbWVudCB0byBwYXNzIE5vbmUgYXMgdGhlCisgICAgICAgICMgc2Vjb25kIGFyZ3VtZW50LiBDaGVjayB0aGF0IHRoZSBwcmV2aW91cyBtZXRob2RzIG9mIHBhc3NpbmcKKyAgICAgICAgIyBhIHRpbWUgdHVwbGUgb3IgTm9uZSB3b3JrIGluIGFkZGl0aW9uIHRvIG5vIGFyZ3VtZW50LgorICAgICAgICBzdDAgPSBvcy5zdGF0KGZpbGVuYW1lKQorICAgICAgICAjIERvZXNuJ3Qgc2V0IGFueXRoaW5nIG5ldywgYnV0IHNldHMgdGhlIHRpbWUgdHVwbGUgd2F5CisgICAgICAgIHV0aW1lKGZpbGVuYW1lLCAoYXR0cihzdDAsICJzdF9hdGltZSIpLCBhdHRyKHN0MCwgInN0X210aW1lIikpKQorICAgICAgICAjIFNldHRpbmcgdGhlIHRpbWUgdG8gdGhlIHRpbWUgeW91IGp1c3QgcmVhZCwgdGhlbiByZWFkaW5nIGFnYWluLAorICAgICAgICAjIHNob3VsZCBhbHdheXMgcmV0dXJuIGV4YWN0bHkgdGhlIHNhbWUgdGltZXMuCisgICAgICAgIHN0MSA9IG9zLnN0YXQoZmlsZW5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXR0cihzdDAsICJzdF9tdGltZSIpLCBhdHRyKHN0MSwgInN0X210aW1lIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXR0cihzdDAsICJzdF9hdGltZSIpLCBhdHRyKHN0MSwgInN0X2F0aW1lIikpCisgICAgICAgICMgU2V0IHRvIHRoZSBjdXJyZW50IHRpbWUgaW4gdGhlIG9sZCBleHBsaWNpdCB3YXkuCisgICAgICAgIG9zLnV0aW1lKGZpbGVuYW1lLCBOb25lKQorICAgICAgICBzdDIgPSBvcy5zdGF0KHN1cHBvcnQuVEVTVEZOKQorICAgICAgICAjIFNldCB0byB0aGUgY3VycmVudCB0aW1lIGluIHRoZSBuZXcgd2F5CisgICAgICAgIG9zLnV0aW1lKGZpbGVuYW1lKQorICAgICAgICBzdDMgPSBvcy5zdGF0KGZpbGVuYW1lKQorICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKGF0dHIoc3QyLCAic3RfbXRpbWUiKSwgYXR0cihzdDMsICJzdF9tdGltZSIpLCBkZWx0YT1kZWx0YSkKKworICAgIGRlZiB0ZXN0X3V0aW1lKHNlbGYpOgorICAgICAgICBkZWYgdXRpbWUoZmlsZSwgdGltZXMpOgorICAgICAgICAgICAgcmV0dXJuIG9zLnV0aW1lKGZpbGUsIHRpbWVzKQorICAgICAgICBzZWxmLl90ZXN0X3V0aW1lKHNlbGYuZm5hbWUsIGdldGF0dHIsIHV0aW1lLCAxMCkKKyAgICAgICAgc2VsZi5fdGVzdF91dGltZShzdXBwb3J0LlRFU1RGTiwgZ2V0YXR0ciwgdXRpbWUsIDEwKQorCisKKyAgICBkZWYgX3Rlc3RfdXRpbWVfbnMoc2VsZiwgc2V0X3RpbWVzX25zLCB0ZXN0X2Rpcj1UcnVlKToKKyAgICAgICAgZGVmIGdldGF0dHJfbnMobywgYXR0cik6CisgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihvLCBhdHRyICsgIl9ucyIpCisgICAgICAgIHRlbl9zID0gMTAgKiAxMDAwICogMTAwMCAqIDEwMDAKKyAgICAgICAgc2VsZi5fdGVzdF91dGltZShzZWxmLmZuYW1lLCBnZXRhdHRyX25zLCBzZXRfdGltZXNfbnMsIHRlbl9zKQorICAgICAgICBpZiB0ZXN0X2RpcjoKKyAgICAgICAgICAgIHNlbGYuX3Rlc3RfdXRpbWUoc3VwcG9ydC5URVNURk4sIGdldGF0dHJfbnMsIHNldF90aW1lc19ucywgdGVuX3MpCisKKyAgICBkZWYgdGVzdF91dGltZV9ucyhzZWxmKToKKyAgICAgICAgZGVmIHV0aW1lX25zKGZpbGUsIHRpbWVzKToKKyAgICAgICAgICAgIHJldHVybiBvcy51dGltZShmaWxlLCBucz10aW1lcykKKyAgICAgICAgc2VsZi5fdGVzdF91dGltZV9ucyh1dGltZV9ucykKKworICAgIHJlcXVpcmVzX3V0aW1lX2Rpcl9mZCA9IHVuaXR0ZXN0LnNraXBVbmxlc3MoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnV0aW1lIGluIG9zLnN1cHBvcnRzX2Rpcl9mZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpcl9mZCBzdXBwb3J0IGZvciB1dGltZSByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LiIpCisgICAgcmVxdWlyZXNfdXRpbWVfZmQgPSB1bml0dGVzdC5za2lwVW5sZXNzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy51dGltZSBpbiBvcy5zdXBwb3J0c19mZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZkIHN1cHBvcnQgZm9yIHV0aW1lIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuIikKKyAgICByZXF1aXJlc191dGltZV9ub2ZvbGxvd19zeW1saW5rcyA9IHVuaXR0ZXN0LnNraXBVbmxlc3MoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnV0aW1lIGluIG9zLnN1cHBvcnRzX2ZvbGxvd19zeW1saW5rcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvbGxvd19zeW1saW5rcyBzdXBwb3J0IGZvciB1dGltZSByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LiIpCisKKyAgICBAcmVxdWlyZXNfdXRpbWVfbm9mb2xsb3dfc3ltbGlua3MKKyAgICBkZWYgdGVzdF9sdXRpbWVzX25zKHNlbGYpOgorICAgICAgICBkZWYgbHV0aW1lc19ucyhmaWxlLCB0aW1lcyk6CisgICAgICAgICAgICByZXR1cm4gb3MudXRpbWUoZmlsZSwgbnM9dGltZXMsIGZvbGxvd19zeW1saW5rcz1GYWxzZSkKKyAgICAgICAgc2VsZi5fdGVzdF91dGltZV9ucyhsdXRpbWVzX25zKQorCisgICAgQHJlcXVpcmVzX3V0aW1lX2ZkCisgICAgZGVmIHRlc3RfZnV0aW1lc19ucyhzZWxmKToKKyAgICAgICAgZGVmIGZ1dGltZXNfbnMoZmlsZSwgdGltZXMpOgorICAgICAgICAgICAgd2l0aCBvcGVuKGZpbGUsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICAgICAgb3MudXRpbWUoZi5maWxlbm8oKSwgbnM9dGltZXMpCisgICAgICAgIHNlbGYuX3Rlc3RfdXRpbWVfbnMoZnV0aW1lc19ucywgdGVzdF9kaXI9RmFsc2UpCisKKyAgICBkZWYgX3V0aW1lX2ludmFsaWRfYXJndW1lbnRzKHNlbGYsIG5hbWUsIGFyZyk6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBnZXRhdHRyKG9zLCBuYW1lKShhcmcsICg1LCA1KSwgbnM9KDUsIDUpKQorCisgICAgZGVmIHRlc3RfdXRpbWVfaW52YWxpZF9hcmd1bWVudHMoc2VsZik6CisgICAgICAgIHNlbGYuX3V0aW1lX2ludmFsaWRfYXJndW1lbnRzKCd1dGltZScsIHNlbGYuZm5hbWUpCisKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHN0YXRfc3VwcG9ydHNfc3Vic2Vjb25kLAorICAgICAgICAgICAgICAgICAgICAgICAgICJvcy5zdGF0KCkgZG9lc24ndCBoYXMgYSBzdWJzZWNvbmQgcmVzb2x1dGlvbiIpCisgICAgZGVmIF90ZXN0X3V0aW1lX3N1YnNlY29uZChzZWxmLCBzZXRfdGltZV9mdW5jKToKKyAgICAgICAgYXNlYywgYW1zZWMgPSAxLCA5MDEKKyAgICAgICAgYXRpbWUgPSBhc2VjICsgYW1zZWMgKiAxZS0zCisgICAgICAgIG1zZWMsIG1tc2VjID0gMiwgOTAxCisgICAgICAgIG10aW1lID0gbXNlYyArIG1tc2VjICogMWUtMworICAgICAgICBmaWxlbmFtZSA9IHNlbGYuZm5hbWUKKyAgICAgICAgb3MudXRpbWUoZmlsZW5hbWUsICgwLCAwKSkKKyAgICAgICAgc2V0X3RpbWVfZnVuYyhmaWxlbmFtZSwgYXRpbWUsIG10aW1lKQorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImlnbm9yZSIsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIG9zLnN0YXRfZmxvYXRfdGltZXMoVHJ1ZSkKKyAgICAgICAgc3QgPSBvcy5zdGF0KGZpbGVuYW1lKQorICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKHN0LnN0X2F0aW1lLCBhdGltZSwgcGxhY2VzPTMpCisgICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoc3Quc3RfbXRpbWUsIG10aW1lLCBwbGFjZXM9MykKKworICAgIGRlZiB0ZXN0X3V0aW1lX3N1YnNlY29uZChzZWxmKToKKyAgICAgICAgZGVmIHNldF90aW1lKGZpbGVuYW1lLCBhdGltZSwgbXRpbWUpOgorICAgICAgICAgICAgb3MudXRpbWUoZmlsZW5hbWUsIChhdGltZSwgbXRpbWUpKQorICAgICAgICBzZWxmLl90ZXN0X3V0aW1lX3N1YnNlY29uZChzZXRfdGltZSkKKworICAgIEByZXF1aXJlc191dGltZV9mZAorICAgIGRlZiB0ZXN0X2Z1dGltZXNfc3Vic2Vjb25kKHNlbGYpOgorICAgICAgICBkZWYgc2V0X3RpbWUoZmlsZW5hbWUsIGF0aW1lLCBtdGltZSk6CisgICAgICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICAgICAgb3MudXRpbWUoZi5maWxlbm8oKSwgdGltZXM9KGF0aW1lLCBtdGltZSkpCisgICAgICAgIHNlbGYuX3Rlc3RfdXRpbWVfc3Vic2Vjb25kKHNldF90aW1lKQorCisgICAgQHJlcXVpcmVzX3V0aW1lX2ZkCisgICAgZGVmIHRlc3RfZnV0aW1lbnNfc3Vic2Vjb25kKHNlbGYpOgorICAgICAgICBkZWYgc2V0X3RpbWUoZmlsZW5hbWUsIGF0aW1lLCBtdGltZSk6CisgICAgICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICAgICAgb3MudXRpbWUoZi5maWxlbm8oKSwgdGltZXM9KGF0aW1lLCBtdGltZSkpCisgICAgICAgIHNlbGYuX3Rlc3RfdXRpbWVfc3Vic2Vjb25kKHNldF90aW1lKQorCisgICAgQHJlcXVpcmVzX3V0aW1lX2Rpcl9mZAorICAgIGRlZiB0ZXN0X2Z1dGltZXNhdF9zdWJzZWNvbmQoc2VsZik6CisgICAgICAgIGRlZiBzZXRfdGltZShmaWxlbmFtZSwgYXRpbWUsIG10aW1lKToKKyAgICAgICAgICAgIGRpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUoZmlsZW5hbWUpCisgICAgICAgICAgICBkaXJmZCA9IG9zLm9wZW4oZGlybmFtZSwgb3MuT19SRE9OTFkpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgb3MudXRpbWUob3MucGF0aC5iYXNlbmFtZShmaWxlbmFtZSksIGRpcl9mZD1kaXJmZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXM9KGF0aW1lLCBtdGltZSkpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIG9zLmNsb3NlKGRpcmZkKQorICAgICAgICBzZWxmLl90ZXN0X3V0aW1lX3N1YnNlY29uZChzZXRfdGltZSkKKworICAgIEByZXF1aXJlc191dGltZV9ub2ZvbGxvd19zeW1saW5rcworICAgIGRlZiB0ZXN0X2x1dGltZXNfc3Vic2Vjb25kKHNlbGYpOgorICAgICAgICBkZWYgc2V0X3RpbWUoZmlsZW5hbWUsIGF0aW1lLCBtdGltZSk6CisgICAgICAgICAgICBvcy51dGltZShmaWxlbmFtZSwgKGF0aW1lLCBtdGltZSksIGZvbGxvd19zeW1saW5rcz1GYWxzZSkKKyAgICAgICAgc2VsZi5fdGVzdF91dGltZV9zdWJzZWNvbmQoc2V0X3RpbWUpCisKKyAgICBAcmVxdWlyZXNfdXRpbWVfZGlyX2ZkCisgICAgZGVmIHRlc3RfdXRpbWVuc2F0X3N1YnNlY29uZChzZWxmKToKKyAgICAgICAgZGVmIHNldF90aW1lKGZpbGVuYW1lLCBhdGltZSwgbXRpbWUpOgorICAgICAgICAgICAgZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShmaWxlbmFtZSkKKyAgICAgICAgICAgIGRpcmZkID0gb3Mub3BlbihkaXJuYW1lLCBvcy5PX1JET05MWSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBvcy51dGltZShvcy5wYXRoLmJhc2VuYW1lKGZpbGVuYW1lKSwgZGlyX2ZkPWRpcmZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lcz0oYXRpbWUsIG10aW1lKSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgb3MuY2xvc2UoZGlyZmQpCisgICAgICAgIHNlbGYuX3Rlc3RfdXRpbWVfc3Vic2Vjb25kKHNldF90aW1lKQorCiAgICAgIyBSZXN0cmljdCB0ZXN0IHRvIFdpbjMyLCBzaW5jZSB0aGVyZSBpcyBubyBndWFyYW50ZWUgb3RoZXIKICAgICAjIHN5c3RlbXMgc3VwcG9ydCBjZW50aXNlY29uZHMKICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKQEAgLTI5Niw2ICs0NzMsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJDb3VsZCBub3Qgc3RhdCBwYWdlZmlsZS5zeXMiKQogCisgICAgICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICJwaXBlIiksICJyZXF1aXJlcyBvcy5waXBlKCkiKQorICAgICAgICBkZWYgdGVzdF8xNTI2MShzZWxmKToKKyAgICAgICAgICAgICMgVmVyaWZ5IHRoYXQgc3RhdCdpbmcgYSBjbG9zZWQgZmQgZG9lcyBub3QgY2F1c2UgY3Jhc2gKKyAgICAgICAgICAgIHIsIHcgPSBvcy5waXBlKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBvcy5zdGF0KHIpICAgICAgICAgICMgc2hvdWxkIG5vdCByYWlzZSBlcnJvcgorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBvcy5jbG9zZShyKQorICAgICAgICAgICAgICAgIG9zLmNsb3NlKHcpCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGN0eDoKKyAgICAgICAgICAgICAgICBvcy5zdGF0KHIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGN0eC5leGNlcHRpb24uZXJybm8sIGVycm5vLkVCQURGKQorCiBmcm9tIHRlc3QgaW1wb3J0IG1hcHBpbmdfdGVzdHMKIAogY2xhc3MgRW52aXJvblRlc3RzKG1hcHBpbmdfdGVzdHMuQmFzaWNUZXN0TWFwcGluZ1Byb3RvY29sKToKQEAgLTQyNyw4ICs2MTcsOCBAQAogCiAgICAgIyBPbiBGcmVlQlNEIDwgNyBhbmQgT1MgWCA8IDEwLjYsIHVuc2V0ZW52KCkgZG9lc24ndCByZXR1cm4gYSB2YWx1ZSAoaXNzdWUKICAgICAjICMxMzQxNSkuCi0gICAgQHVuaXR0ZXN0LnNraXBJZihzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgoJ2ZyZWVic2QnLCAnZGFyd2luJykpLAotICAgICAgICAgICAgICAgICAgICAgImR1ZSB0byBrbm93biBPUyBidWc6IHNlZSBpc3N1ZSAjMTM0MTUiKQorICAgIEBzdXBwb3J0LnJlcXVpcmVzX2ZyZWVic2RfdmVyc2lvbig3KQorICAgIEBzdXBwb3J0LnJlcXVpcmVzX21hY192ZXIoMTAsIDYpCiAgICAgZGVmIHRlc3RfdW5zZXRfZXJyb3Ioc2VsZik6CiAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgogICAgICAgICAgICAgIyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBsaW1pdGVkIHRvIDMyLDc2NyBjaGFyYWN0ZXJzCkBAIC00NDIsNyArNjMyLDcgQEAKIGNsYXNzIFdhbGtUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIiIiVGVzdHMgZm9yIG9zLndhbGsoKS4iIiIKIAotICAgIGRlZiB0ZXN0X3RyYXZlcnNhbChzZWxmKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIGltcG9ydCBvcwogICAgICAgICBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4KIApAQCAtNDU2LDYgKzY0Niw3IEBACiAgICAgICAgICMgICAgICAgICBTVUIyLyAgICAgICAgICAgICBhIGZpbGUga2lkIGFuZCBhIGRpcnN5bWxpbmsga2lkCiAgICAgICAgICMgICAgICAgICAgIHRtcDMKICAgICAgICAgIyAgICAgICAgICAgbGluay8gICAgICAgICAgIGEgc3ltbGluayB0byBURVNURk4uMgorICAgICAgICAjICAgICAgICAgICBicm9rZW5fbGluawogICAgICAgICAjICAgICAgIFRFU1QyLwogICAgICAgICAjICAgICAgICAgdG1wNCAgICAgICAgICAgICAgYSBsb25lIGZpbGUKICAgICAgICAgd2Fsa19wYXRoID0gam9pbihzdXBwb3J0LlRFU1RGTiwgIlRFU1QxIikKQEAgLTQ2OCw2ICs2NTksOCBAQAogICAgICAgICBsaW5rX3BhdGggPSBqb2luKHN1YjJfcGF0aCwgImxpbmsiKQogICAgICAgICB0Ml9wYXRoID0gam9pbihzdXBwb3J0LlRFU1RGTiwgIlRFU1QyIikKICAgICAgICAgdG1wNF9wYXRoID0gam9pbihzdXBwb3J0LlRFU1RGTiwgIlRFU1QyIiwgInRtcDQiKQorICAgICAgICBsaW5rX3BhdGggPSBqb2luKHN1YjJfcGF0aCwgImxpbmsiKQorICAgICAgICBicm9rZW5fbGlua19wYXRoID0gam9pbihzdWIyX3BhdGgsICJicm9rZW5fbGluayIpCiAKICAgICAgICAgIyBDcmVhdGUgc3R1ZmYuCiAgICAgICAgIG9zLm1ha2VkaXJzKHN1YjExX3BhdGgpCkBAIC00ODQsNyArNjc3LDggQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc3ltbGlua190b19kaXIgPSBvcy5zeW1saW5rCiAgICAgICAgICAgICBzeW1saW5rX3RvX2Rpcihvcy5wYXRoLmFic3BhdGgodDJfcGF0aCksIGxpbmtfcGF0aCkKLSAgICAgICAgICAgIHN1YjJfdHJlZSA9IChzdWIyX3BhdGgsIFsibGluayJdLCBbInRtcDMiXSkKKyAgICAgICAgICAgIHN5bWxpbmtfdG9fZGlyKCdicm9rZW4nLCBicm9rZW5fbGlua19wYXRoKQorICAgICAgICAgICAgc3ViMl90cmVlID0gKHN1YjJfcGF0aCwgWyJsaW5rIl0sIFsiYnJva2VuX2xpbmsiLCAidG1wMyJdKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc3ViMl90cmVlID0gKHN1YjJfcGF0aCwgW10sIFsidG1wMyJdKQogCkBAIC00OTYsNiArNjkwLDcgQEAKICAgICAgICAgIyAgICAgZmxpcHBlZDogIFRFU1RGTiwgU1VCMiwgU1VCMSwgU1VCMTEKICAgICAgICAgZmxpcHBlZCA9IGFsbFswXVsxXVswXSAhPSAiU1VCMSIKICAgICAgICAgYWxsWzBdWzFdLnNvcnQoKQorICAgICAgICBhbGxbMyAtIDIgKiBmbGlwcGVkXVstMV0uc29ydCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWxsWzBdLCAod2Fsa19wYXRoLCBbIlNVQjEiLCAiU1VCMiJdLCBbInRtcDEiXSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWxsWzEgKyBmbGlwcGVkXSwgKHN1YjFfcGF0aCwgWyJTVUIxMSJdLCBbInRtcDIiXSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWxsWzIgKyBmbGlwcGVkXSwgKHN1YjExX3BhdGgsIFtdLCBbXSkpCkBAIC01MTEsNiArNzA2LDcgQEAKICAgICAgICAgICAgICAgICBkaXJzLnJlbW92ZSgnU1VCMScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFsbCksIDIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWxsWzBdLCAod2Fsa19wYXRoLCBbIlNVQjIiXSwgWyJ0bXAxIl0pKQorICAgICAgICBhbGxbMV1bLTFdLnNvcnQoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFsbFsxXSwgc3ViMl90cmVlKQogCiAgICAgICAgICMgV2FsayBib3R0b20tdXAuCkBAIC01MjEsNiArNzE3LDcgQEAKICAgICAgICAgIyAgICAgZmxpcHBlZDogIFNVQjIsIFNVQjExLCBTVUIxLCBURVNURk4KICAgICAgICAgZmxpcHBlZCA9IGFsbFszXVsxXVswXSAhPSAiU1VCMSIKICAgICAgICAgYWxsWzNdWzFdLnNvcnQoKQorICAgICAgICBhbGxbMiAtIDIgKiBmbGlwcGVkXVstMV0uc29ydCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWxsWzNdLCAod2Fsa19wYXRoLCBbIlNVQjEiLCAiU1VCMiJdLCBbInRtcDEiXSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWxsW2ZsaXBwZWRdLCAoc3ViMTFfcGF0aCwgW10sIFtdKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbGxbZmxpcHBlZCArIDFdLCAoc3ViMV9wYXRoLCBbIlNVQjExIl0sIFsidG1wMiJdKSkKQEAgLTU1Miw2ICs3NDksODEgQEAKICAgICAgICAgICAgICAgICAgICAgb3MucmVtb3ZlKGRpcm5hbWUpCiAgICAgICAgIG9zLnJtZGlyKHN1cHBvcnQuVEVTVEZOKQogCisKK0B1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdmd2FsaycpLCAiVGVzdCBuZWVkcyBvcy5md2FsaygpIikKK2NsYXNzIEZ3YWxrVGVzdHMoV2Fsa1Rlc3RzKToKKyAgICAiIiJUZXN0cyBmb3Igb3MuZndhbGsoKS4iIiIKKworICAgIGRlZiBfY29tcGFyZV90b193YWxrKHNlbGYsIHdhbGtfa3dhcmdzLCBmd2Fsa19rd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgY29tcGFyZSB3aXRoIHdhbGsoKSByZXN1bHRzLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yIHRvcGRvd24sIGZvbGxvd2xpbmtzIGluIGl0ZXJ0b29scy5wcm9kdWN0KChUcnVlLCBGYWxzZSksIHJlcGVhdD0yKToKKyAgICAgICAgICAgIGQgPSB7J3RvcGRvd24nOiB0b3Bkb3duLCAnZm9sbG93bGlua3MnOiBmb2xsb3dsaW5rc30KKyAgICAgICAgICAgIHdhbGtfa3dhcmdzLnVwZGF0ZShkKQorICAgICAgICAgICAgZndhbGtfa3dhcmdzLnVwZGF0ZShkKQorCisgICAgICAgICAgICBleHBlY3RlZCA9IHt9CisgICAgICAgICAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMgaW4gb3Mud2FsaygqKndhbGtfa3dhcmdzKToKKyAgICAgICAgICAgICAgICBleHBlY3RlZFtyb290XSA9IChzZXQoZGlycyksIHNldChmaWxlcykpCisKKyAgICAgICAgICAgIGZvciByb290LCBkaXJzLCBmaWxlcywgcm9vdGZkIGluIG9zLmZ3YWxrKCoqZndhbGtfa3dhcmdzKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHJvb3QsIGV4cGVjdGVkKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRbcm9vdF0sIChzZXQoZGlycyksIHNldChmaWxlcykpKQorCisgICAgZGVmIHRlc3RfY29tcGFyZV90b193YWxrKHNlbGYpOgorICAgICAgICBrd2FyZ3MgPSB7J3RvcCc6IHN1cHBvcnQuVEVTVEZOfQorICAgICAgICBzZWxmLl9jb21wYXJlX3RvX3dhbGsoa3dhcmdzLCBrd2FyZ3MpCisKKyAgICBkZWYgdGVzdF9kaXJfZmQoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZkID0gb3Mub3BlbigiLiIsIG9zLk9fUkRPTkxZKQorICAgICAgICAgICAgd2Fsa19rd2FyZ3MgPSB7J3RvcCc6IHN1cHBvcnQuVEVTVEZOfQorICAgICAgICAgICAgZndhbGtfa3dhcmdzID0gd2Fsa19rd2FyZ3MuY29weSgpCisgICAgICAgICAgICBmd2Fsa19rd2FyZ3NbJ2Rpcl9mZCddID0gZmQKKyAgICAgICAgICAgIHNlbGYuX2NvbXBhcmVfdG9fd2Fsayh3YWxrX2t3YXJncywgZndhbGtfa3dhcmdzKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuY2xvc2UoZmQpCisKKyAgICBkZWYgdGVzdF95aWVsZHNfY29ycmVjdF9kaXJfZmQoc2VsZik6CisgICAgICAgICMgY2hlY2sgcmV0dXJuZWQgZmlsZSBkZXNjcmlwdG9ycworICAgICAgICBmb3IgdG9wZG93biwgZm9sbG93bGlua3MgaW4gaXRlcnRvb2xzLnByb2R1Y3QoKFRydWUsIEZhbHNlKSwgcmVwZWF0PTIpOgorICAgICAgICAgICAgYXJncyA9IHN1cHBvcnQuVEVTVEZOLCB0b3Bkb3duLCBOb25lLCBmb2xsb3dsaW5rcworICAgICAgICAgICAgZm9yIHJvb3QsIGRpcnMsIGZpbGVzLCByb290ZmQgaW4gb3MuZndhbGsoKmFyZ3MpOgorICAgICAgICAgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgRkQgaXMgdmFsaWQKKyAgICAgICAgICAgICAgICBvcy5mc3RhdChyb290ZmQpCisgICAgICAgICAgICAgICAgIyByZWR1bmRhbnQgY2hlY2sKKyAgICAgICAgICAgICAgICBvcy5zdGF0KHJvb3RmZCkKKyAgICAgICAgICAgICAgICAjIGNoZWNrIHRoYXQgbGlzdGRpcigpIHJldHVybnMgY29uc2lzdGVudCBpbmZvcm1hdGlvbgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KG9zLmxpc3RkaXIocm9vdGZkKSksIHNldChkaXJzKSB8IHNldChmaWxlcykpCisKKyAgICBkZWYgdGVzdF9mZF9sZWFrKHNlbGYpOgorICAgICAgICAjIFNpbmNlIHdlJ3JlIG9wZW5pbmcgYSBsb3Qgb2YgRkRzLCB3ZSBtdXN0IGJlIGNhcmVmdWwgdG8gYXZvaWQgbGVha3M6CisgICAgICAgICMgd2UgYm90aCBjaGVjayB0aGF0IGNhbGxpbmcgZndhbGsoKSBhIGxhcmdlIG51bWJlciBvZiB0aW1lcyBkb2Vzbid0CisgICAgICAgICMgeWllbGQgRU1GSUxFLCBhbmQgdGhhdCB0aGUgbWluaW11bSBhbGxvY2F0ZWQgRkQgaGFzbid0IGNoYW5nZWQuCisgICAgICAgIG1pbmZkID0gb3MuZHVwKDEpCisgICAgICAgIG9zLmNsb3NlKG1pbmZkKQorICAgICAgICBmb3IgaSBpbiByYW5nZSgyNTYpOgorICAgICAgICAgICAgZm9yIHggaW4gb3MuZndhbGsoc3VwcG9ydC5URVNURk4pOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbmV3ZmQgPSBvcy5kdXAoMSkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKG9zLmNsb3NlLCBuZXdmZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdmZCwgbWluZmQpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgY2xlYW51cAorICAgICAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMsIHJvb3RmZCBpbiBvcy5md2FsayhzdXBwb3J0LlRFU1RGTiwgdG9wZG93bj1GYWxzZSk6CisgICAgICAgICAgICBmb3IgbmFtZSBpbiBmaWxlczoKKyAgICAgICAgICAgICAgICBvcy51bmxpbmsobmFtZSwgZGlyX2ZkPXJvb3RmZCkKKyAgICAgICAgICAgIGZvciBuYW1lIGluIGRpcnM6CisgICAgICAgICAgICAgICAgc3QgPSBvcy5zdGF0KG5hbWUsIGRpcl9mZD1yb290ZmQsIGZvbGxvd19zeW1saW5rcz1GYWxzZSkKKyAgICAgICAgICAgICAgICBpZiBzdGF0LlNfSVNESVIoc3Quc3RfbW9kZSk6CisgICAgICAgICAgICAgICAgICAgIG9zLnJtZGlyKG5hbWUsIGRpcl9mZD1yb290ZmQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgb3MudW5saW5rKG5hbWUsIGRpcl9mZD1yb290ZmQpCisgICAgICAgIG9zLnJtZGlyKHN1cHBvcnQuVEVTVEZOKQorCisKIGNsYXNzIE1ha2VkaXJUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBvcy5ta2RpcihzdXBwb3J0LlRFU1RGTikKQEAgLTU3NSwxNCArODQ3LDEyIEBACiAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oc3VwcG9ydC5URVNURk4sICdkaXIxJykKICAgICAgICAgbW9kZSA9IDBvNzc3CiAgICAgICAgIG9sZF9tYXNrID0gb3MudW1hc2soMG8wMjIpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG9zLm1ha2VkaXJzKHBhdGgsIG1vZGUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5tYWtlZGlycywgcGF0aCwgbW9kZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG9zLm1ha2VkaXJzLCBwYXRoLCBtb2RlLCBleGlzdF9vaz1GYWxzZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG9zLm1ha2VkaXJzLCBwYXRoLCAwbzc3NiwgZXhpc3Rfb2s9VHJ1ZSkKLSAgICAgICAgICAgIG9zLm1ha2VkaXJzKHBhdGgsIG1vZGU9bW9kZSwgZXhpc3Rfb2s9VHJ1ZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIG9zLnVtYXNrKG9sZF9tYXNrKQorICAgICAgICBvcy5tYWtlZGlycyhwYXRoLCBtb2RlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5tYWtlZGlycywgcGF0aCwgbW9kZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgb3MubWFrZWRpcnMsIHBhdGgsIG1vZGUsIGV4aXN0X29rPUZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5tYWtlZGlycywgcGF0aCwgMG83NzYsIGV4aXN0X29rPVRydWUpCisgICAgICAgIG9zLm1ha2VkaXJzKHBhdGgsIG1vZGU9bW9kZSwgZXhpc3Rfb2s9VHJ1ZSkKKyAgICAgICAgb3MudW1hc2sob2xkX21hc2spCiAKICAgICBkZWYgdGVzdF9leGlzdF9va19zX2lzZ2lkX2RpcmVjdG9yeShzZWxmKToKICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihzdXBwb3J0LlRFU1RGTiwgJ2RpcjEnKQpAQCAtODQ2LDEwICsxMTE2LDEyIEBACiAKICAgICBkZWYgdGVzdF9mcGF0aGNvbmYoc2VsZik6CiAgICAgICAgIGlmIGhhc2F0dHIob3MsICJmcGF0aGNvbmYiKToKKyAgICAgICAgICAgIHNlbGYuY2hlY2sob3MucGF0aGNvbmYsICJQQ19OQU1FX01BWCIpCiAgICAgICAgICAgICBzZWxmLmNoZWNrKG9zLmZwYXRoY29uZiwgIlBDX05BTUVfTUFYIikKIAogICAgIGRlZiB0ZXN0X2Z0cnVuY2F0ZShzZWxmKToKICAgICAgICAgaWYgaGFzYXR0cihvcywgImZ0cnVuY2F0ZSIpOgorICAgICAgICAgICAgc2VsZi5jaGVjayhvcy50cnVuY2F0ZSwgMCkKICAgICAgICAgICAgIHNlbGYuY2hlY2sob3MuZnRydW5jYXRlLCAwKQogCiAgICAgZGVmIHRlc3RfbHNlZWsoc2VsZik6CkBAIC04ODMsNyArMTE1NSw5IEBACiAgICAgICAgIHdpdGggb3BlbihmaWxlMSwgInciKSBhcyBmMToKICAgICAgICAgICAgIGYxLndyaXRlKCJ0ZXN0IikKIAotICAgICAgICBvcy5saW5rKGZpbGUxLCBmaWxlMikKKyAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJpZ25vcmUiLCBEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgICAgICBvcy5saW5rKGZpbGUxLCBmaWxlMikKICAgICAgICAgd2l0aCBvcGVuKGZpbGUxLCAiciIpIGFzIGYxLCBvcGVuKGZpbGUyLCAiciIpIGFzIGYyOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguc2FtZW9wZW5maWxlKGYxLmZpbGVubygpLCBmMi5maWxlbm8oKSkpCiAKQEAgLTk4Niw4ICsxMjYwLDcgQEAKICAgICAgICAgICAgIG9zLm1rZGlyKHNlbGYuZGlyKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGZvciBmbiBpbiBieXRlc2ZuOgotICAgICAgICAgICAgICAgICAgICBmID0gb3Blbihvcy5wYXRoLmpvaW4oc2VsZi5iZGlyLCBmbiksICJ3IikKLSAgICAgICAgICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICAgICAgICAgICAgIHN1cHBvcnQuY3JlYXRlX2VtcHR5X2ZpbGUob3MucGF0aC5qb2luKHNlbGYuYmRpciwgZm4pKQogICAgICAgICAgICAgICAgICAgICBmbiA9IG9zLmZzZGVjb2RlKGZuKQogICAgICAgICAgICAgICAgICAgICBpZiBmbiBpbiBzZWxmLnVuaWNvZGVmbjoKICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImR1cGxpY2F0ZSBmaWxlbmFtZSIpCkBAIC0xMDAzLDYgKzEyNzYsMTMgQEAKICAgICAgICAgICAgIGV4cGVjdGVkID0gc2VsZi51bmljb2RlZm4KICAgICAgICAgICAgIGZvdW5kID0gc2V0KG9zLmxpc3RkaXIoc2VsZi5kaXIpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3VuZCwgZXhwZWN0ZWQpCisgICAgICAgICAgICAjIHRlc3QgbGlzdGRpciB3aXRob3V0IGFyZ3VtZW50cworICAgICAgICAgICAgY3VycmVudF9kaXJlY3RvcnkgPSBvcy5nZXRjd2QoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG9zLmNoZGlyKG9zLnNlcCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChvcy5saXN0ZGlyKCkpLCBzZXQob3MubGlzdGRpcihvcy5zZXApKSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgb3MuY2hkaXIoY3VycmVudF9kaXJlY3RvcnkpCiAKICAgICAgICAgZGVmIHRlc3Rfb3BlbihzZWxmKToKICAgICAgICAgICAgIGZvciBmbiBpbiBzZWxmLnVuaWNvZGVmbjoKQEAgLTEyMDYsOCArMTQ4NiwxMCBAQAogICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKG9zLmxzdGF0KGxpbmspLCBvcy5zdGF0KGxpbmspKQogCiAgICAgICAgIGJ5dGVzX2xpbmsgPSBvcy5mc2VuY29kZShsaW5rKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnN0YXQoYnl0ZXNfbGluayksIG9zLnN0YXQodGFyZ2V0KSkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChvcy5sc3RhdChieXRlc19saW5rKSwgb3Muc3RhdChieXRlc19saW5rKSkKKyAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJpZ25vcmUiLCBEZXByZWNhdGlvbldhcm5pbmcpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnN0YXQoYnl0ZXNfbGluayksIG9zLnN0YXQodGFyZ2V0KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwob3MubHN0YXQoYnl0ZXNfbGluayksIG9zLnN0YXQoYnl0ZXNfbGluaykpCiAKICAgICBkZWYgdGVzdF8xMjA4NChzZWxmKToKICAgICAgICAgbGV2ZWwxID0gb3MucGF0aC5hYnNwYXRoKHN1cHBvcnQuVEVTVEZOKQpAQCAtMTI2Niw2ICsxNTQ4LDIyIEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLmZzZGVjb2RlKGJ5dGVzZm4pLCBmbikKIAogCisKK2NsYXNzIERldmljZUVuY29kaW5nVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfYmFkX2ZkKHNlbGYpOgorICAgICAgICAjIFJldHVybiBOb25lIHdoZW4gYW4gZmQgZG9lc24ndCBhY3R1YWxseSBleGlzdC4KKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUob3MuZGV2aWNlX2VuY29kaW5nKDEyMzQ1NikpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhvcy5pc2F0dHkoMCkgYW5kIChzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykgb3IKKyAgICAgICAgICAgIChoYXNhdHRyKGxvY2FsZSwgJ25sX2xhbmdpbmZvJykgYW5kIGhhc2F0dHIobG9jYWxlLCAnQ09ERVNFVCcpKSksCisgICAgICAgICAgICAndGVzdCByZXF1aXJlcyBhIHR0eSBhbmQgZWl0aGVyIFdpbmRvd3Mgb3IgbmxfbGFuZ2luZm8oQ09ERVNFVCknKQorICAgIGRlZiB0ZXN0X2RldmljZV9lbmNvZGluZyhzZWxmKToKKyAgICAgICAgZW5jb2RpbmcgPSBvcy5kZXZpY2VfZW5jb2RpbmcoMCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUoZW5jb2RpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjb2RlY3MubG9va3VwKGVuY29kaW5nKSkKKworCiBjbGFzcyBQaWRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihvcywgJ2dldHBwaWQnKSwgInRlc3QgbmVlZHMgb3MuZ2V0cHBpZCIpCiAgICAgZGVmIHRlc3RfZ2V0cHBpZChzZWxmKToKQEAgLTEyODcsMTIgKzE1ODUsNDcxIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwobGVuKHVzZXJfbmFtZSksIDApCiAKIAorQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihvcywgJ2dldHByaW9yaXR5JykgYW5kIGhhc2F0dHIob3MsICdzZXRwcmlvcml0eScpLAorICAgICAgICAgICAgICAgICAgICAgIm5lZWRzIG9zLmdldHByaW9yaXR5IGFuZCBvcy5zZXRwcmlvcml0eSIpCitjbGFzcyBQcm9ncmFtUHJpb3JpdHlUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiVGVzdHMgZm9yIG9zLmdldHByaW9yaXR5KCkgYW5kIG9zLnNldHByaW9yaXR5KCkuIiIiCisKKyAgICBkZWYgdGVzdF9zZXRfZ2V0X3ByaW9yaXR5KHNlbGYpOgorCisgICAgICAgIGJhc2UgPSBvcy5nZXRwcmlvcml0eShvcy5QUklPX1BST0NFU1MsIG9zLmdldHBpZCgpKQorICAgICAgICBvcy5zZXRwcmlvcml0eShvcy5QUklPX1BST0NFU1MsIG9zLmdldHBpZCgpLCBiYXNlICsgMSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbmV3X3ByaW8gPSBvcy5nZXRwcmlvcml0eShvcy5QUklPX1BST0NFU1MsIG9zLmdldHBpZCgpKQorICAgICAgICAgICAgaWYgYmFzZSA+PSAxOSBhbmQgbmV3X3ByaW8gPD0gMTk6CisgICAgICAgICAgICAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoCisgICAgICAidW5hYmxlIHRvIHJlbGlhYmx5IHRlc3Qgc2V0cHJpb3JpdHkgYXQgY3VycmVudCBuaWNlIGxldmVsIG9mICVzIiAlIGJhc2UpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X3ByaW8sIGJhc2UgKyAxKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG9zLnNldHByaW9yaXR5KG9zLlBSSU9fUFJPQ0VTUywgb3MuZ2V0cGlkKCksIGJhc2UpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlcnI6CisgICAgICAgICAgICAgICAgaWYgZXJyLmVycm5vICE9IGVycm5vLkVBQ0NFUzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKworCitpZiB0aHJlYWRpbmcgaXMgbm90IE5vbmU6CisgICAgY2xhc3MgU2VuZGZpbGVUZXN0U2VydmVyKGFzeW5jb3JlLmRpc3BhdGNoZXIsIHRocmVhZGluZy5UaHJlYWQpOgorCisgICAgICAgIGNsYXNzIEhhbmRsZXIoYXN5bmNoYXQuYXN5bmNfY2hhdCk6CisKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25uKToKKyAgICAgICAgICAgICAgICBhc3luY2hhdC5hc3luY19jaGF0Ll9faW5pdF9fKHNlbGYsIGNvbm4pCisgICAgICAgICAgICAgICAgc2VsZi5pbl9idWZmZXIgPSBbXQorICAgICAgICAgICAgICAgIHNlbGYuY2xvc2VkID0gRmFsc2UKKyAgICAgICAgICAgICAgICBzZWxmLnB1c2goYiIyMjAgcmVhZHlcclxuIikKKworICAgICAgICAgICAgZGVmIGhhbmRsZV9yZWFkKHNlbGYpOgorICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLnJlY3YoNDA5NikKKyAgICAgICAgICAgICAgICBzZWxmLmluX2J1ZmZlci5hcHBlbmQoZGF0YSkKKworICAgICAgICAgICAgZGVmIGdldF9kYXRhKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBiJycuam9pbihzZWxmLmluX2J1ZmZlcikKKworICAgICAgICAgICAgZGVmIGhhbmRsZV9jbG9zZShzZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLmNsb3NlKCkKKyAgICAgICAgICAgICAgICBzZWxmLmNsb3NlZCA9IFRydWUKKworICAgICAgICAgICAgZGVmIGhhbmRsZV9lcnJvcihzZWxmKToKKyAgICAgICAgICAgICAgICByYWlzZQorCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzKToKKyAgICAgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZikKKyAgICAgICAgICAgIGFzeW5jb3JlLmRpc3BhdGNoZXIuX19pbml0X18oc2VsZikKKyAgICAgICAgICAgIHNlbGYuY3JlYXRlX3NvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgICAgICAgICAgc2VsZi5iaW5kKGFkZHJlc3MpCisgICAgICAgICAgICBzZWxmLmxpc3Rlbig1KQorICAgICAgICAgICAgc2VsZi5ob3N0LCBzZWxmLnBvcnQgPSBzZWxmLnNvY2tldC5nZXRzb2NrbmFtZSgpWzoyXQorICAgICAgICAgICAgc2VsZi5oYW5kbGVyX2luc3RhbmNlID0gTm9uZQorICAgICAgICAgICAgc2VsZi5fYWN0aXZlID0gRmFsc2UKKyAgICAgICAgICAgIHNlbGYuX2FjdGl2ZV9sb2NrID0gdGhyZWFkaW5nLkxvY2soKQorCisgICAgICAgICMgLS0tIHB1YmxpYyBBUEkKKworICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgZGVmIHJ1bm5pbmcoc2VsZik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fYWN0aXZlCisKKyAgICAgICAgZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0IG5vdCBzZWxmLnJ1bm5pbmcKKyAgICAgICAgICAgIHNlbGYuX19mbGFnID0gdGhyZWFkaW5nLkV2ZW50KCkKKyAgICAgICAgICAgIHRocmVhZGluZy5UaHJlYWQuc3RhcnQoc2VsZikKKyAgICAgICAgICAgIHNlbGYuX19mbGFnLndhaXQoKQorCisgICAgICAgIGRlZiBzdG9wKHNlbGYpOgorICAgICAgICAgICAgYXNzZXJ0IHNlbGYucnVubmluZworICAgICAgICAgICAgc2VsZi5fYWN0aXZlID0gRmFsc2UKKyAgICAgICAgICAgIHNlbGYuam9pbigpCisKKyAgICAgICAgZGVmIHdhaXQoc2VsZik6CisgICAgICAgICAgICAjIHdhaXQgZm9yIGhhbmRsZXIgY29ubmVjdGlvbiB0byBiZSBjbG9zZWQsIHRoZW4gc3RvcCB0aGUgc2VydmVyCisgICAgICAgICAgICB3aGlsZSBub3QgZ2V0YXR0cihzZWxmLmhhbmRsZXJfaW5zdGFuY2UsICJjbG9zZWQiLCBGYWxzZSk6CisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAwMSkKKyAgICAgICAgICAgIHNlbGYuc3RvcCgpCisKKyAgICAgICAgIyAtLS0gaW50ZXJuYWxzCisKKyAgICAgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgICAgIHNlbGYuX2FjdGl2ZSA9IFRydWUKKyAgICAgICAgICAgIHNlbGYuX19mbGFnLnNldCgpCisgICAgICAgICAgICB3aGlsZSBzZWxmLl9hY3RpdmUgYW5kIGFzeW5jb3JlLnNvY2tldF9tYXA6CisgICAgICAgICAgICAgICAgc2VsZi5fYWN0aXZlX2xvY2suYWNxdWlyZSgpCisgICAgICAgICAgICAgICAgYXN5bmNvcmUubG9vcCh0aW1lb3V0PTAuMDAxLCBjb3VudD0xKQorICAgICAgICAgICAgICAgIHNlbGYuX2FjdGl2ZV9sb2NrLnJlbGVhc2UoKQorICAgICAgICAgICAgYXN5bmNvcmUuY2xvc2VfYWxsKCkKKworICAgICAgICBkZWYgaGFuZGxlX2FjY2VwdChzZWxmKToKKyAgICAgICAgICAgIGNvbm4sIGFkZHIgPSBzZWxmLmFjY2VwdCgpCisgICAgICAgICAgICBzZWxmLmhhbmRsZXJfaW5zdGFuY2UgPSBzZWxmLkhhbmRsZXIoY29ubikKKworICAgICAgICBkZWYgaGFuZGxlX2Nvbm5lY3Qoc2VsZik6CisgICAgICAgICAgICBzZWxmLmNsb3NlKCkKKyAgICAgICAgaGFuZGxlX3JlYWQgPSBoYW5kbGVfY29ubmVjdAorCisgICAgICAgIGRlZiB3cml0YWJsZShzZWxmKToKKyAgICAgICAgICAgIHJldHVybiAwCisKKyAgICAgICAgZGVmIGhhbmRsZV9lcnJvcihzZWxmKToKKyAgICAgICAgICAgIHJhaXNlCisKKworQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkaW5nIGlzIG5vdCBOb25lLCAidGVzdCBuZWVkcyB0aHJlYWRpbmcgbW9kdWxlIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdzZW5kZmlsZScpLCAidGVzdCBuZWVkcyBvcy5zZW5kZmlsZSgpIikKK2NsYXNzIFRlc3RTZW5kZmlsZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBEQVRBID0gYiIxMjM0NWFiY2RlIiAqIDE2ICogMTAyNCAgIyAxNjAgS0IKKyAgICBTVVBQT1JUX0hFQURFUlNfVFJBSUxFUlMgPSBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoImxpbnV4IikgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoInNvbGFyaXMiKSBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgic3Vub3MiKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKKyAgICAgICAgd2l0aCBvcGVuKHN1cHBvcnQuVEVTVEZOLCAid2IiKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZShjbHMuREFUQSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6CisgICAgICAgIHN1cHBvcnQudW5saW5rKHN1cHBvcnQuVEVTVEZOKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnNlcnZlciA9IFNlbmRmaWxlVGVzdFNlcnZlcigoc3VwcG9ydC5IT1NULCAwKSkKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQorICAgICAgICBzZWxmLmNsaWVudCA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICBzZWxmLmNsaWVudC5jb25uZWN0KChzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KSkKKyAgICAgICAgc2VsZi5jbGllbnQuc2V0dGltZW91dCgxKQorICAgICAgICAjIHN5bmNocm9uaXplIGJ5IHdhaXRpbmcgZm9yICIyMjAgcmVhZHkiIHJlc3BvbnNlCisgICAgICAgIHNlbGYuY2xpZW50LnJlY3YoMTAyNCkKKyAgICAgICAgc2VsZi5zb2Nrbm8gPSBzZWxmLmNsaWVudC5maWxlbm8oKQorICAgICAgICBzZWxmLmZpbGUgPSBvcGVuKHN1cHBvcnQuVEVTVEZOLCAncmInKQorICAgICAgICBzZWxmLmZpbGVubyA9IHNlbGYuZmlsZS5maWxlbm8oKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBzZWxmLmZpbGUuY2xvc2UoKQorICAgICAgICBzZWxmLmNsaWVudC5jbG9zZSgpCisgICAgICAgIGlmIHNlbGYuc2VydmVyLnJ1bm5pbmc6CisgICAgICAgICAgICBzZWxmLnNlcnZlci5zdG9wKCkKKworICAgIGRlZiBzZW5kZmlsZV93cmFwcGVyKHNlbGYsIHNvY2ssIGZpbGUsIG9mZnNldCwgbmJ5dGVzLCBoZWFkZXJzPVtdLCB0cmFpbGVycz1bXSk6CisgICAgICAgICIiIkEgaGlnaGVyIGxldmVsIHdyYXBwZXIgcmVwcmVzZW50aW5nIGhvdyBhbiBhcHBsaWNhdGlvbiBpcworICAgICAgICBzdXBwb3NlZCB0byB1c2Ugc2VuZGZpbGUoKS4KKyAgICAgICAgIiIiCisgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5TVVBQT1JUX0hFQURFUlNfVFJBSUxFUlM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcy5zZW5kZmlsZShzb2NrLCBmaWxlLCBvZmZzZXQsIG5ieXRlcywgaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsZXJzKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcy5zZW5kZmlsZShzb2NrLCBmaWxlLCBvZmZzZXQsIG5ieXRlcykKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGVycjoKKyAgICAgICAgICAgICAgICBpZiBlcnIuZXJybm8gPT0gZXJybm8uRUNPTk5SRVNFVDoKKyAgICAgICAgICAgICAgICAgICAgIyBkaXNjb25uZWN0ZWQKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgICAgICBlbGlmIGVyci5lcnJubyBpbiAoZXJybm8uRUFHQUlOLCBlcnJuby5FQlVTWSk6CisgICAgICAgICAgICAgICAgICAgICMgd2UgaGF2ZSB0byByZXRyeSBzZW5kIGRhdGEKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByYWlzZQorCisgICAgZGVmIHRlc3Rfc2VuZF93aG9sZV9maWxlKHNlbGYpOgorICAgICAgICAjIG5vcm1hbCBzZW5kCisgICAgICAgIHRvdGFsX3NlbnQgPSAwCisgICAgICAgIG9mZnNldCA9IDAKKyAgICAgICAgbmJ5dGVzID0gNDA5NgorICAgICAgICB3aGlsZSB0b3RhbF9zZW50IDwgbGVuKHNlbGYuREFUQSk6CisgICAgICAgICAgICBzZW50ID0gc2VsZi5zZW5kZmlsZV93cmFwcGVyKHNlbGYuc29ja25vLCBzZWxmLmZpbGVubywgb2Zmc2V0LCBuYnl0ZXMpCisgICAgICAgICAgICBpZiBzZW50ID09IDA6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIG9mZnNldCArPSBzZW50CisgICAgICAgICAgICB0b3RhbF9zZW50ICs9IHNlbnQKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZW50IDw9IG5ieXRlcykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob2Zmc2V0LCB0b3RhbF9zZW50KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG90YWxfc2VudCwgbGVuKHNlbGYuREFUQSkpCisgICAgICAgIHNlbGYuY2xpZW50LnNodXRkb3duKHNvY2tldC5TSFVUX1JEV1IpCisgICAgICAgIHNlbGYuY2xpZW50LmNsb3NlKCkKKyAgICAgICAgc2VsZi5zZXJ2ZXIud2FpdCgpCisgICAgICAgIGRhdGEgPSBzZWxmLnNlcnZlci5oYW5kbGVyX2luc3RhbmNlLmdldF9kYXRhKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YSksIGxlbihzZWxmLkRBVEEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGEsIHNlbGYuREFUQSkKKworICAgIGRlZiB0ZXN0X3NlbmRfYXRfY2VydGFpbl9vZmZzZXQoc2VsZik6CisgICAgICAgICMgc3RhcnQgc2VuZGluZyBhIGZpbGUgYXQgYSBjZXJ0YWluIG9mZnNldAorICAgICAgICB0b3RhbF9zZW50ID0gMAorICAgICAgICBvZmZzZXQgPSBsZW4oc2VsZi5EQVRBKSAvLyAyCisgICAgICAgIG11c3Rfc2VuZCA9IGxlbihzZWxmLkRBVEEpIC0gb2Zmc2V0CisgICAgICAgIG5ieXRlcyA9IDQwOTYKKyAgICAgICAgd2hpbGUgdG90YWxfc2VudCA8IG11c3Rfc2VuZDoKKyAgICAgICAgICAgIHNlbnQgPSBzZWxmLnNlbmRmaWxlX3dyYXBwZXIoc2VsZi5zb2Nrbm8sIHNlbGYuZmlsZW5vLCBvZmZzZXQsIG5ieXRlcykKKyAgICAgICAgICAgIGlmIHNlbnQgPT0gMDoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgb2Zmc2V0ICs9IHNlbnQKKyAgICAgICAgICAgIHRvdGFsX3NlbnQgKz0gc2VudAorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbnQgPD0gbmJ5dGVzKQorCisgICAgICAgIHNlbGYuY2xpZW50LnNodXRkb3duKHNvY2tldC5TSFVUX1JEV1IpCisgICAgICAgIHNlbGYuY2xpZW50LmNsb3NlKCkKKyAgICAgICAgc2VsZi5zZXJ2ZXIud2FpdCgpCisgICAgICAgIGRhdGEgPSBzZWxmLnNlcnZlci5oYW5kbGVyX2luc3RhbmNlLmdldF9kYXRhKCkKKyAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLkRBVEFbbGVuKHNlbGYuREFUQSkgLy8gMjpdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodG90YWxfc2VudCwgbGVuKGV4cGVjdGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YSksIGxlbihleHBlY3RlZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGF0YSwgZXhwZWN0ZWQpCisKKyAgICBkZWYgdGVzdF9vZmZzZXRfb3ZlcmZsb3coc2VsZik6CisgICAgICAgICMgc3BlY2lmeSBhbiBvZmZzZXQgPiBmaWxlIHNpemUKKyAgICAgICAgb2Zmc2V0ID0gbGVuKHNlbGYuREFUQSkgKyA0MDk2CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbnQgPSBvcy5zZW5kZmlsZShzZWxmLnNvY2tubywgc2VsZi5maWxlbm8sIG9mZnNldCwgNDA5NikKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgICMgU29sYXJpcyBjYW4gcmFpc2UgRUlOVkFMIGlmIG9mZnNldCA+PSBmaWxlIGxlbmd0aCwgaWdub3JlLgorICAgICAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FSU5WQUw6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VudCwgMCkKKyAgICAgICAgc2VsZi5jbGllbnQuc2h1dGRvd24oc29ja2V0LlNIVVRfUkRXUikKKyAgICAgICAgc2VsZi5jbGllbnQuY2xvc2UoKQorICAgICAgICBzZWxmLnNlcnZlci53YWl0KCkKKyAgICAgICAgZGF0YSA9IHNlbGYuc2VydmVyLmhhbmRsZXJfaW5zdGFuY2UuZ2V0X2RhdGEoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGEsIGInJykKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfb2Zmc2V0KHNlbGYpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgb3Muc2VuZGZpbGUoc2VsZi5zb2Nrbm8sIHNlbGYuZmlsZW5vLCAtMSwgNDA5NikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVJTlZBTCkKKworICAgICMgLS0tIGhlYWRlcnMgLyB0cmFpbGVycyB0ZXN0cworCisgICAgaWYgU1VQUE9SVF9IRUFERVJTX1RSQUlMRVJTOgorCisgICAgICAgIGRlZiB0ZXN0X2hlYWRlcnMoc2VsZik6CisgICAgICAgICAgICB0b3RhbF9zZW50ID0gMAorICAgICAgICAgICAgc2VudCA9IG9zLnNlbmRmaWxlKHNlbGYuc29ja25vLCBzZWxmLmZpbGVubywgMCwgNDA5NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPVtiIngiICogNTEyXSkKKyAgICAgICAgICAgIHRvdGFsX3NlbnQgKz0gc2VudAorICAgICAgICAgICAgb2Zmc2V0ID0gNDA5NgorICAgICAgICAgICAgbmJ5dGVzID0gNDA5NgorICAgICAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgICAgICBzZW50ID0gc2VsZi5zZW5kZmlsZV93cmFwcGVyKHNlbGYuc29ja25vLCBzZWxmLmZpbGVubywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0LCBuYnl0ZXMpCisgICAgICAgICAgICAgICAgaWYgc2VudCA9PSAwOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIHRvdGFsX3NlbnQgKz0gc2VudAorICAgICAgICAgICAgICAgIG9mZnNldCArPSBzZW50CisKKyAgICAgICAgICAgIGV4cGVjdGVkX2RhdGEgPSBiIngiICogNTEyICsgc2VsZi5EQVRBCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRvdGFsX3NlbnQsIGxlbihleHBlY3RlZF9kYXRhKSkKKyAgICAgICAgICAgIHNlbGYuY2xpZW50LmNsb3NlKCkKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLndhaXQoKQorICAgICAgICAgICAgZGF0YSA9IHNlbGYuc2VydmVyLmhhbmRsZXJfaW5zdGFuY2UuZ2V0X2RhdGEoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNoKGRhdGEpLCBoYXNoKGV4cGVjdGVkX2RhdGEpKQorCisgICAgICAgIGRlZiB0ZXN0X3RyYWlsZXJzKHNlbGYpOgorICAgICAgICAgICAgVEVTVEZOMiA9IHN1cHBvcnQuVEVTVEZOICsgIjIiCisgICAgICAgICAgICB3aXRoIG9wZW4oVEVTVEZOMiwgJ3diJykgYXMgZjoKKyAgICAgICAgICAgICAgICBmLndyaXRlKGIiYWJjZGUiKQorICAgICAgICAgICAgd2l0aCBvcGVuKFRFU1RGTjIsICdyYicpYXMgZjoKKyAgICAgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAob3MucmVtb3ZlLCBURVNURk4yKQorICAgICAgICAgICAgICAgIG9zLnNlbmRmaWxlKHNlbGYuc29ja25vLCBmLmZpbGVubygpLCAwLCA0MDk2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWlsZXJzPVtiIjEyMzQ1Il0pCisgICAgICAgICAgICAgICAgc2VsZi5jbGllbnQuY2xvc2UoKQorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLndhaXQoKQorICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLnNlcnZlci5oYW5kbGVyX2luc3RhbmNlLmdldF9kYXRhKCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRhdGEsIGIiYWJjZGUxMjM0NSIpCisKKyAgICAgICAgaWYgaGFzYXR0cihvcywgIlNGX05PRElTS0lPIik6CisgICAgICAgICAgICBkZWYgdGVzdF9mbGFncyhzZWxmKToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG9zLnNlbmRmaWxlKHNlbGYuc29ja25vLCBzZWxmLmZpbGVubywgMCwgNDA5NiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3M9b3MuU0ZfTk9ESVNLSU8pCisgICAgICAgICAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgICAgICAgICBpZiBlcnIuZXJybm8gbm90IGluIChlcnJuby5FQlVTWSwgZXJybm8uRUFHQUlOKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisKKworZGVmIHN1cHBvcnRzX2V4dGVuZGVkX2F0dHJpYnV0ZXMoKToKKyAgICBpZiBub3QgaGFzYXR0cihvcywgInNldHhhdHRyIik6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIHRyeToKKyAgICAgICAgd2l0aCBvcGVuKHN1cHBvcnQuVEVTVEZOLCAid2IiKSBhcyBmcDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBvcy5zZXR4YXR0cihmcC5maWxlbm8oKSwgYiJ1c2VyLnRlc3QiLCBiIiIpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBmaW5hbGx5OgorICAgICAgICBzdXBwb3J0LnVubGluayhzdXBwb3J0LlRFU1RGTikKKyAgICAjIEtlcm5lbHMgPCAyLjYuMzkgZG9uJ3QgcmVzcGVjdCBzZXR4YXR0ciBmbGFncy4KKyAgICBrZXJuZWxfdmVyc2lvbiA9IHBsYXRmb3JtLnJlbGVhc2UoKQorICAgIG0gPSByZS5tYXRjaCgiMi42LihcZHsxLDJ9KSIsIGtlcm5lbF92ZXJzaW9uKQorICAgIHJldHVybiBtIGlzIE5vbmUgb3IgaW50KG0uZ3JvdXAoMSkpID49IDM5CisKKworQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydHNfZXh0ZW5kZWRfYXR0cmlidXRlcygpLAorICAgICAgICAgICAgICAgICAgICAgIm5vIG5vbi1icm9rZW4gZXh0ZW5kZWQgYXR0cmlidXRlIHN1cHBvcnQiKQorY2xhc3MgRXh0ZW5kZWRBdHRyaWJ1dGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHN1cHBvcnQudW5saW5rKHN1cHBvcnQuVEVTVEZOKQorCisgICAgZGVmIF9jaGVja194YXR0cnNfc3RyKHNlbGYsIHMsIGdldHhhdHRyLCBzZXR4YXR0ciwgcmVtb3ZleGF0dHIsIGxpc3R4YXR0ciwgKiprd2FyZ3MpOgorICAgICAgICBmbiA9IHN1cHBvcnQuVEVTVEZOCisgICAgICAgIG9wZW4oZm4sICJ3YiIpLmNsb3NlKCkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKKyAgICAgICAgICAgIGdldHhhdHRyKGZuLCBzKCJ1c2VyLnRlc3QiKSwgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm5vLCBlcnJuby5FTk9EQVRBKQorICAgICAgICBpbml0X3hhdHRyID0gbGlzdHhhdHRyKGZuKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaW5pdF94YXR0ciwgbGlzdCkKKyAgICAgICAgc2V0eGF0dHIoZm4sIHMoInVzZXIudGVzdCIpLCBiIiIsICoqa3dhcmdzKQorICAgICAgICB4YXR0ciA9IHNldChpbml0X3hhdHRyKQorICAgICAgICB4YXR0ci5hZGQoInVzZXIudGVzdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KGxpc3R4YXR0cihmbikpLCB4YXR0cikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXR4YXR0cihmbiwgYiJ1c2VyLnRlc3QiLCAqKmt3YXJncyksIGIiIikKKyAgICAgICAgc2V0eGF0dHIoZm4sIHMoInVzZXIudGVzdCIpLCBiImhlbGxvIiwgb3MuWEFUVFJfUkVQTEFDRSwgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0eGF0dHIoZm4sIGIidXNlci50ZXN0IiwgKiprd2FyZ3MpLCBiImhlbGxvIikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKKyAgICAgICAgICAgIHNldHhhdHRyKGZuLCBzKCJ1c2VyLnRlc3QiKSwgYiJieWUiLCBvcy5YQVRUUl9DUkVBVEUsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJubywgZXJybm8uRUVYSVNUKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgc2V0eGF0dHIoZm4sIHMoInVzZXIudGVzdDIiKSwgYiJieWUiLCBvcy5YQVRUUl9SRVBMQUNFLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVOT0RBVEEpCisgICAgICAgIHNldHhhdHRyKGZuLCBzKCJ1c2VyLnRlc3QyIiksIGIiZm9vIiwgb3MuWEFUVFJfQ1JFQVRFLCAqKmt3YXJncykKKyAgICAgICAgeGF0dHIuYWRkKCJ1c2VyLnRlc3QyIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQobGlzdHhhdHRyKGZuKSksIHhhdHRyKQorICAgICAgICByZW1vdmV4YXR0cihmbiwgcygidXNlci50ZXN0IiksICoqa3dhcmdzKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgZ2V0eGF0dHIoZm4sIHMoInVzZXIudGVzdCIpLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVOT0RBVEEpCisgICAgICAgIHhhdHRyLnJlbW92ZSgidXNlci50ZXN0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQobGlzdHhhdHRyKGZuKSksIHhhdHRyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldHhhdHRyKGZuLCBzKCJ1c2VyLnRlc3QyIiksICoqa3dhcmdzKSwgYiJmb28iKQorICAgICAgICBzZXR4YXR0cihmbiwgcygidXNlci50ZXN0IiksIGIiYSIqMTAyNCwgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0eGF0dHIoZm4sIHMoInVzZXIudGVzdCIpLCAqKmt3YXJncyksIGIiYSIqMTAyNCkKKyAgICAgICAgcmVtb3ZleGF0dHIoZm4sIHMoInVzZXIudGVzdCIpLCAqKmt3YXJncykKKyAgICAgICAgbWFueSA9IHNvcnRlZCgidXNlci50ZXN0e30iLmZvcm1hdChpKSBmb3IgaSBpbiByYW5nZSgxMDApKQorICAgICAgICBmb3IgdGhpbmcgaW4gbWFueToKKyAgICAgICAgICAgIHNldHhhdHRyKGZuLCB0aGluZywgYiJ4IiwgKiprd2FyZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KGxpc3R4YXR0cihmbikpLCBzZXQoaW5pdF94YXR0cikgfCBzZXQobWFueSkpCisKKyAgICBkZWYgX2NoZWNrX3hhdHRycyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBkZWYgbWFrZV9ieXRlcyhzKToKKyAgICAgICAgICAgIHJldHVybiBieXRlcyhzLCAiYXNjaWkiKQorICAgICAgICBzZWxmLl9jaGVja194YXR0cnNfc3RyKHN0ciwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzdXBwb3J0LnVubGluayhzdXBwb3J0LlRFU1RGTikKKyAgICAgICAgc2VsZi5fY2hlY2tfeGF0dHJzX3N0cihtYWtlX2J5dGVzLCAqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgdGVzdF9zaW1wbGUoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX3hhdHRycyhvcy5nZXR4YXR0ciwgb3Muc2V0eGF0dHIsIG9zLnJlbW92ZXhhdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MubGlzdHhhdHRyKQorCisgICAgZGVmIHRlc3RfbHBhdGgoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX3hhdHRycyhvcy5nZXR4YXR0ciwgb3Muc2V0eGF0dHIsIG9zLnJlbW92ZXhhdHRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MubGlzdHhhdHRyLCBmb2xsb3dfc3ltbGlua3M9RmFsc2UpCisKKyAgICBkZWYgdGVzdF9mZHMoc2VsZik6CisgICAgICAgIGRlZiBnZXR4YXR0cihwYXRoLCAqYXJncyk6CisgICAgICAgICAgICB3aXRoIG9wZW4ocGF0aCwgInJiIikgYXMgZnA6CisgICAgICAgICAgICAgICAgcmV0dXJuIG9zLmdldHhhdHRyKGZwLmZpbGVubygpLCAqYXJncykKKyAgICAgICAgZGVmIHNldHhhdHRyKHBhdGgsICphcmdzKToKKyAgICAgICAgICAgIHdpdGggb3BlbihwYXRoLCAid2IiKSBhcyBmcDoKKyAgICAgICAgICAgICAgICBvcy5zZXR4YXR0cihmcC5maWxlbm8oKSwgKmFyZ3MpCisgICAgICAgIGRlZiByZW1vdmV4YXR0cihwYXRoLCAqYXJncyk6CisgICAgICAgICAgICB3aXRoIG9wZW4ocGF0aCwgIndiIikgYXMgZnA6CisgICAgICAgICAgICAgICAgb3MucmVtb3ZleGF0dHIoZnAuZmlsZW5vKCksICphcmdzKQorICAgICAgICBkZWYgbGlzdHhhdHRyKHBhdGgsICphcmdzKToKKyAgICAgICAgICAgIHdpdGggb3BlbihwYXRoLCAicmIiKSBhcyBmcDoKKyAgICAgICAgICAgICAgICByZXR1cm4gb3MubGlzdHhhdHRyKGZwLmZpbGVubygpLCAqYXJncykKKyAgICAgICAgc2VsZi5fY2hlY2tfeGF0dHJzKGdldHhhdHRyLCBzZXR4YXR0ciwgcmVtb3ZleGF0dHIsIGxpc3R4YXR0cikKKworCitAdW5pdHRlc3Quc2tpcFVubGVzcyhzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwgIldpbjMyIHNwZWNpZmljIHRlc3RzIikKK2NsYXNzIFdpbjMyRGVwcmVjYXRlZEJ5dGVzQVBJKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9kZXByZWNhdGVkKHNlbGYpOgorICAgICAgICBpbXBvcnQgbnQKKyAgICAgICAgZmlsZW5hbWUgPSBvcy5mc2VuY29kZShzdXBwb3J0LlRFU1RGTikKKyAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJlcnJvciIsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIGZvciBmdW5jLCAqYXJncyBpbiAoCisgICAgICAgICAgICAgICAgKG50Ll9nZXRmdWxscGF0aG5hbWUsIGZpbGVuYW1lKSwKKyAgICAgICAgICAgICAgICAobnQuX2lzZGlyLCBmaWxlbmFtZSksCisgICAgICAgICAgICAgICAgKG9zLmFjY2VzcywgZmlsZW5hbWUsIG9zLlJfT0spLAorICAgICAgICAgICAgICAgIChvcy5jaGRpciwgZmlsZW5hbWUpLAorICAgICAgICAgICAgICAgIChvcy5jaG1vZCwgZmlsZW5hbWUsIDBvNzc3KSwKKyAgICAgICAgICAgICAgICAob3MuZ2V0Y3dkYiwpLAorICAgICAgICAgICAgICAgIChvcy5saW5rLCBmaWxlbmFtZSwgZmlsZW5hbWUpLAorICAgICAgICAgICAgICAgIChvcy5saXN0ZGlyLCBmaWxlbmFtZSksCisgICAgICAgICAgICAgICAgKG9zLmxzdGF0LCBmaWxlbmFtZSksCisgICAgICAgICAgICAgICAgKG9zLm1rZGlyLCBmaWxlbmFtZSksCisgICAgICAgICAgICAgICAgKG9zLm9wZW4sIGZpbGVuYW1lLCBvcy5PX1JET05MWSksCisgICAgICAgICAgICAgICAgKG9zLnJlbmFtZSwgZmlsZW5hbWUsIGZpbGVuYW1lKSwKKyAgICAgICAgICAgICAgICAob3Mucm1kaXIsIGZpbGVuYW1lKSwKKyAgICAgICAgICAgICAgICAob3Muc3RhcnRmaWxlLCBmaWxlbmFtZSksCisgICAgICAgICAgICAgICAgKG9zLnN0YXQsIGZpbGVuYW1lKSwKKyAgICAgICAgICAgICAgICAob3MudW5saW5rLCBmaWxlbmFtZSksCisgICAgICAgICAgICAgICAgKG9zLnV0aW1lLCBmaWxlbmFtZSksCisgICAgICAgICAgICApOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKERlcHJlY2F0aW9uV2FybmluZywgZnVuYywgKmFyZ3MpCisKKyAgICBAc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCisgICAgZGVmIHRlc3Rfc3ltbGluayhzZWxmKToKKyAgICAgICAgZmlsZW5hbWUgPSBvcy5mc2VuY29kZShzdXBwb3J0LlRFU1RGTikKKyAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJlcnJvciIsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKERlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnN5bWxpbmssIGZpbGVuYW1lLCBmaWxlbmFtZSkKKworCitAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKG9zLCAnZ2V0X3Rlcm1pbmFsX3NpemUnKSwgInJlcXVpcmVzIG9zLmdldF90ZXJtaW5hbF9zaXplIikKK2NsYXNzIFRlcm1zaXplVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2RvZXNfbm90X2NyYXNoKHNlbGYpOgorICAgICAgICAiIiJDaGVjayBpZiBnZXRfdGVybWluYWxfc2l6ZSgpIHJldHVybnMgYSBtZWFuaW5nZnVsIHZhbHVlLgorCisgICAgICAgIFRoZXJlJ3Mgbm8gZWFzeSBwb3J0YWJsZSB3YXkgdG8gYWN0dWFsbHkgY2hlY2sgdGhlIHNpemUgb2YgdGhlCisgICAgICAgIHRlcm1pbmFsLCBzbyBsZXQncyBjaGVjayBpZiBpdCByZXR1cm5zIHNvbWV0aGluZyBzZW5zaWJsZSBpbnN0ZWFkLgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2l6ZSA9IG9zLmdldF90ZXJtaW5hbF9zaXplKCkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiIG9yIGUuZXJybm8gaW4gKGVycm5vLkVJTlZBTCwgZXJybm8uRU5PVFRZKToKKyAgICAgICAgICAgICAgICAjIFVuZGVyIHdpbjMyIGEgZ2VuZXJpYyBPU0Vycm9yIGNhbiBiZSB0aHJvd24gaWYgdGhlCisgICAgICAgICAgICAgICAgIyBoYW5kbGUgY2Fubm90IGJlIHJldHJpZXZlZAorICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoImZhaWxlZCB0byBxdWVyeSB0ZXJtaW5hbCBzaXplIikKKyAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwoc2l6ZS5jb2x1bW5zLCAwKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChzaXplLmxpbmVzLCAwKQorCisgICAgZGVmIHRlc3Rfc3R0eV9tYXRjaChzZWxmKToKKyAgICAgICAgIiIiQ2hlY2sgaWYgc3R0eSByZXR1cm5zIHRoZSBzYW1lIHJlc3VsdHMKKworICAgICAgICBzdHR5IGFjdHVhbGx5IHRlc3RzIHN0ZGluLCBzbyBnZXRfdGVybWluYWxfc2l6ZSBpcyBpbnZva2VkIG9uCisgICAgICAgIHN0ZGluIGV4cGxpY2l0bHkuIElmIHN0dHkgc3VjY2VlZGVkLCB0aGVuIGdldF90ZXJtaW5hbF9zaXplKCkKKyAgICAgICAgc2hvdWxkIHdvcmsgdG9vLgorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2l6ZSA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsnc3R0eScsICdzaXplJ10pLmRlY29kZSgpLnNwbGl0KCkKKyAgICAgICAgZXhjZXB0IChGaWxlTm90Rm91bmRFcnJvciwgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IpOgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgic3R0eSBpbnZvY2F0aW9uIGZhaWxlZCIpCisgICAgICAgIGV4cGVjdGVkID0gKGludChzaXplWzFdKSwgaW50KHNpemVbMF0pKSAjIHJldmVyc2VkIG9yZGVyCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYWN0dWFsID0gb3MuZ2V0X3Rlcm1pbmFsX3NpemUoc3lzLl9fc3RkaW5fXy5maWxlbm8oKSkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiIG9yIGUuZXJybm8gaW4gKGVycm5vLkVJTlZBTCwgZXJybm8uRU5PVFRZKToKKyAgICAgICAgICAgICAgICAjIFVuZGVyIHdpbjMyIGEgZ2VuZXJpYyBPU0Vycm9yIGNhbiBiZSB0aHJvd24gaWYgdGhlCisgICAgICAgICAgICAgICAgIyBoYW5kbGUgY2Fubm90IGJlIHJldHJpZXZlZAorICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoImZhaWxlZCB0byBxdWVyeSB0ZXJtaW5hbCBzaXplIikKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKKworCitAc3VwcG9ydC5yZWFwX3RocmVhZHMKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgKICAgICAgICAgRmlsZVRlc3RzLAogICAgICAgICBTdGF0QXR0cmlidXRlVGVzdHMsCiAgICAgICAgIEVudmlyb25UZXN0cywKICAgICAgICAgV2Fsa1Rlc3RzLAorICAgICAgICBGd2Fsa1Rlc3RzLAogICAgICAgICBNYWtlZGlyVGVzdHMsCiAgICAgICAgIERldk51bGxUZXN0cywKICAgICAgICAgVVJhbmRvbVRlc3RzLApAQCAtMTMwNCw5ICsyMDYxLDE1IEBACiAgICAgICAgIFdpbjMyS2lsbFRlc3RzLAogICAgICAgICBXaW4zMlN5bWxpbmtUZXN0cywKICAgICAgICAgRlNFbmNvZGluZ1Rlc3RzLAorICAgICAgICBEZXZpY2VFbmNvZGluZ1Rlc3RzLAogICAgICAgICBQaWRUZXN0cywKICAgICAgICAgTG9naW5UZXN0cywKICAgICAgICAgTGlua1Rlc3RzLAorICAgICAgICBUZXN0U2VuZGZpbGUsCisgICAgICAgIFByb2dyYW1Qcmlvcml0eVRlc3RzLAorICAgICAgICBFeHRlbmRlZEF0dHJpYnV0ZVRlc3RzLAorICAgICAgICBXaW4zMkRlcHJlY2F0ZWRCeXRlc0FQSSwKKyAgICAgICAgVGVybXNpemVUZXN0cywKICAgICApCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X29zc2F1ZGlvZGV2LnB5IGIvTGliL3Rlc3QvdGVzdF9vc3NhdWRpb2Rldi5weQppbmRleCA5Y2I4OWQ2Li4zOTA4YTA1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X29zc2F1ZGlvZGV2LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfb3NzYXVkaW9kZXYucHkKQEAgLTE3MCw2ICsxNzAsMjIgQEAKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRzcC5jbG9zZWQpCiAKKyAgICBkZWYgdGVzdF9vbl9jbG9zZWQoc2VsZik6CisgICAgICAgIGRzcCA9IG9zc2F1ZGlvZGV2Lm9wZW4oJ3cnKQorICAgICAgICBkc3AuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBkc3AuZmlsZW5vKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBkc3AucmVhZCwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZHNwLndyaXRlLCBiJ3gnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBkc3Aud3JpdGVhbGwsIGIneCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGRzcC5idWZzaXplKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBkc3Aub2J1ZmNvdW50KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBkc3Aub2J1ZmNvdW50KQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBkc3Aub2J1ZmZyZWUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGRzcC5nZXRwdHIpCisKKyAgICAgICAgbWl4ZXIgPSBvc3NhdWRpb2Rldi5vcGVubWl4ZXIoKQorICAgICAgICBtaXhlci5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG1peGVyLmZpbGVubykKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHRyeToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfb3N4X2Vudi5weSBiL0xpYi90ZXN0L3Rlc3Rfb3N4X2Vudi5weQppbmRleCA4YjNkZjM3Li4yNGVjMmI0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X29zeF9lbnYucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9vc3hfZW52LnB5CkBAIC01LDYgKzUsNyBAQAogZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IEVudmlyb25tZW50VmFyR3VhcmQsIHJ1bl91bml0dGVzdAogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBzeXMKK2ltcG9ydCBzeXNjb25maWcKIGltcG9ydCB1bml0dGVzdAogCiBjbGFzcyBPU1hFbnZpcm9ubWVudFZhcmlhYmxlVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtMjcsOCArMjgsNiBAQAogICAgICAgICBzZWxmLl9jaGVja19zeXMoJ1BZVEhPTkVYRUNVVEFCTEUnLCAnPT0nLCAnc3lzLmV4ZWN1dGFibGUnKQogCiBkZWYgdGVzdF9tYWluKCk6Ci0gICAgZnJvbSBkaXN0dXRpbHMgaW1wb3J0IHN5c2NvbmZpZwotCiAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nIGFuZCBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ1dJVEhfTkVYVF9GUkFNRVdPUksnKToKICAgICAgICAgcnVuX3VuaXR0ZXN0KE9TWEVudmlyb25tZW50VmFyaWFibGVUZXN0Q2FzZSkKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wYXJzZXIucHkgYi9MaWIvdGVzdC90ZXN0X3BhcnNlci5weQppbmRleCBjYWUwOWRmLi5lMTk5NzI4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BhcnNlci5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BhcnNlci5weQpAQCAtNTAsNiArNTAsMTAgQEAKICAgICAgICAgc2VsZi5jaGVja19zdWl0ZSgiZGVmIGYoKTogKHlpZWxkIDEpKjIiKQogICAgICAgICBzZWxmLmNoZWNrX3N1aXRlKCJkZWYgZigpOiByZXR1cm47IHlpZWxkIDEiKQogICAgICAgICBzZWxmLmNoZWNrX3N1aXRlKCJkZWYgZigpOiB5aWVsZCAxOyByZXR1cm4iKQorICAgICAgICBzZWxmLmNoZWNrX3N1aXRlKCJkZWYgZigpOiB5aWVsZCBmcm9tIDEiKQorICAgICAgICBzZWxmLmNoZWNrX3N1aXRlKCJkZWYgZigpOiB4ID0geWllbGQgZnJvbSAxIikKKyAgICAgICAgc2VsZi5jaGVja19zdWl0ZSgiZGVmIGYoKTogZigoeWllbGQgZnJvbSAxKSkiKQorICAgICAgICBzZWxmLmNoZWNrX3N1aXRlKCJkZWYgZigpOiB5aWVsZCAxOyByZXR1cm4gMSIpCiAgICAgICAgIHNlbGYuY2hlY2tfc3VpdGUoImRlZiBmKCk6XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICBmb3IgeCBpbiByYW5nZSgzMCk6XG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgeWllbGQgeFxuIikKQEAgLTY3OCw2ICs2ODIsMTIgQEAKIAogICAgICMgWFhYIHRlc3RzIGZvciBwaWNrbGluZyBhbmQgdW5waWNrbGluZyBvZiBTVCBvYmplY3RzIHNob3VsZCBnbyBoZXJlCiAKK2NsYXNzIE90aGVyUGFyc2VyQ2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF90d29fYXJnc190b19leHByKHNlbGYpOgorICAgICAgICAjIFNlZSBidWcgIzEyMjY0CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIHBhcnNlci5leHByKCJhIiwgImIiKQogCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoCkBAIC02ODYsNiArNjk2LDcgQEAKICAgICAgICAgQ29tcGlsZVRlc3RDYXNlLAogICAgICAgICBQYXJzZXJTdGFja0xpbWl0VGVzdENhc2UsCiAgICAgICAgIFNUT2JqZWN0VGVzdENhc2UsCisgICAgICAgIE90aGVyUGFyc2VyQ2FzZSwKICAgICApCiAKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wZGIucHkgYi9MaWIvdGVzdC90ZXN0X3BkYi5weQppbmRleCBkMjhiMDQyLi4wZjdhOTg0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BkYi5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BkYi5weQpAQCAtMjEsOSArMjEsMTIgQEAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgogICAgICAgICBzZWxmLnJlYWxfc3RkaW4gPSBzeXMuc3RkaW4KICAgICAgICAgc3lzLnN0ZGluID0gX0Zha2VJbnB1dChzZWxmLmlucHV0KQorICAgICAgICBzZWxmLm9yaWdfdHJhY2UgPSBzeXMuZ2V0dHJhY2UoKSBpZiBoYXNhdHRyKHN5cywgJ2dldHRyYWNlJykgZWxzZSBOb25lCiAKICAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4Yyk6CiAgICAgICAgIHN5cy5zdGRpbiA9IHNlbGYucmVhbF9zdGRpbgorICAgICAgICBpZiBzZWxmLm9yaWdfdHJhY2U6CisgICAgICAgICAgICBzeXMuc2V0dHJhY2Uoc2VsZi5vcmlnX3RyYWNlKQogCiAKIGRlZiB0ZXN0X3BkYl9kaXNwbGF5aG9vaygpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wZWVwaG9sZXIucHkgYi9MaWIvdGVzdC90ZXN0X3BlZXBob2xlci5weQppbmRleCA1MzcxOWQzLi4xZTc4MmNmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BlZXBob2xlci5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BlZXBob2xlci5weQpAQCAtMywxMyArMywxNiBAQAogaW1wb3J0IHN5cwogZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KIGltcG9ydCB1bml0dGVzdAorZnJvbSBtYXRoIGltcG9ydCBjb3B5c2lnbgogCiBkZWYgZGlzYXNzZW1ibGUoZnVuYyk6CiAgICAgZiA9IFN0cmluZ0lPKCkKICAgICB0bXAgPSBzeXMuc3Rkb3V0CiAgICAgc3lzLnN0ZG91dCA9IGYKLSAgICBkaXMuZGlzKGZ1bmMpCi0gICAgc3lzLnN0ZG91dCA9IHRtcAorICAgIHRyeToKKyAgICAgICAgZGlzLmRpcyhmdW5jKQorICAgIGZpbmFsbHk6CisgICAgICAgIHN5cy5zdGRvdXQgPSB0bXAKICAgICByZXN1bHQgPSBmLmdldHZhbHVlKCkKICAgICBmLmNsb3NlKCkKICAgICByZXR1cm4gcmVzdWx0CkBAIC0xNyw2ICsyMCw3IEBACiBkZWYgZGlzX3NpbmdsZShsaW5lKToKICAgICByZXR1cm4gZGlzYXNzZW1ibGUoY29tcGlsZShsaW5lLCAnJywgJ3NpbmdsZScpKQogCisKIGNsYXNzIFRlc3RUcmFuZm9ybXModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfdW5vdChzZWxmKToKQEAgLTk5LDYgKzEwMywxMiBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihlbGVtLCBhc20pCiAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdCVUlMRF9UVVBMRScsIGFzbSkKIAorICAgICAgICAjIExvbmcgdHVwbGVzIHNob3VsZCBiZSBmb2xkZWQgdG9vLgorICAgICAgICBhc20gPSBkaXNfc2luZ2xlKHJlcHIodHVwbGUocmFuZ2UoMTAwMDApKSkpCisgICAgICAgICMgT25lIExPQURfQ09OU1QgZm9yIHRoZSB0dXBsZSwgb25lIGZvciB0aGUgTm9uZSByZXR1cm4gdmFsdWUKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhc20uY291bnQoJ0xPQURfQ09OU1QnKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbignQlVJTERfVFVQTEUnLCBhc20pCisKICAgICAgICAgIyBCdWcgMTA1MzgxOTogIFR1cGxlIG9mIGNvbnN0YW50cyBtaXNpZGVudGlmaWVkIHdoZW4gcHJlc2VudGVkIHdpdGg6CiAgICAgICAgICMgLiAuIC4gb3Bjb2RlX3dpdGhfYXJnIDEwMCAgIHVuYXJ5X29wY29kZSAgIEJVSUxEX1RVUExFIDEgIC4gLiAuCiAgICAgICAgICMgVGhlIGZvbGxvd2luZyB3b3VsZCBzZWdmYXVsdCB1cG9uIGNvbXBpbGF0aW9uCkBAIC0yMDgsMTQgKzIxOCwxMyBAQAogICAgICAgICAjIG91dCBvZiByYW5nZQogICAgICAgICBhc20gPSBkaXNfc2luZ2xlKCciZnV1IlsxMF0nKQogICAgICAgICBzZWxmLmFzc2VydEluKCdCSU5BUllfU1VCU0NSJywgYXNtKQotICAgICAgICAjIG5vbi1CTVAgY2hhciAoc2VlICM1MDU3KQotICAgICAgICBhc20gPSBkaXNfc2luZ2xlKCciXFUwMDAxMjM0NSJbMF0nKQotICAgICAgICBzZWxmLmFzc2VydEluKCdCSU5BUllfU1VCU0NSJywgYXNtKQotCiAKICAgICBkZWYgdGVzdF9mb2xkaW5nX29mX3VuYXJ5b3BzX29uX2NvbnN0YW50cyhzZWxmKToKICAgICAgICAgZm9yIGxpbmUsIGVsZW0gaW4gKAogICAgICAgICAgICAgKCctMC41JywgJygtMC41KScpLCAgICAgICAgICAgICAgICAgICAgICMgdW5hcnkgbmVnYXRpdmUKKyAgICAgICAgICAgICgnLTAuMCcsICcoLTAuMCknKSwgICAgICAgICAgICAgICAgICAgICAjIC0wLjAKKyAgICAgICAgICAgICgnLSgxLjAtMS4wKScsJygtMC4wKScpLCAgICAgICAgICAgICAgICAjIC0wLjAgYWZ0ZXIgZm9sZGluZworICAgICAgICAgICAgKCctMCcsICcoMCknKSwgICAgICAgICAgICAgICAgICAgICAgICAgICMgLTAKICAgICAgICAgICAgICgnfi0yJywgJygxKScpLCAgICAgICAgICAgICAgICAgICAgICAgICAjIHVuYXJ5IGludmVydAogICAgICAgICAgICAgKCcrMScsICcoMSknKSwgICAgICAgICAgICAgICAgICAgICAgICAgICMgdW5hcnkgcG9zaXRpdmUKICAgICAgICAgKToKQEAgLTIyMyw2ICsyMzIsMTMgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oZWxlbSwgYXNtLCBhc20pCiAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdVTkFSWV8nLCBhc20pCiAKKyAgICAgICAgIyBDaGVjayB0aGF0IC0wLjAgd29ya3MgYWZ0ZXIgbWFyc2hhbGluZworICAgICAgICBkZWYgbmVnemVybygpOgorICAgICAgICAgICAgcmV0dXJuIC0oMS4wLTEuMCkKKworICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdVTkFSWV8nLCBkaXNhc3NlbWJsZShuZWd6ZXJvKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNvcHlzaWduKDEuMCwgbmVnemVybygpKSA8IDApCisKICAgICAgICAgIyBWZXJpZnkgdGhhdCB1bmZvbGRhYmxlcyBhcmUgc2tpcHBlZAogICAgICAgICBmb3IgbGluZSwgZWxlbSBpbiAoCiAgICAgICAgICAgICAoJy0iYWJjIicsICIoJ2FiYycpIiksICAgICAgICAgICAgICAgICAgIyB1bmFyeSBuZWdhdGl2ZQpAQCAtMjg1LDYgKzMwMSwyNSBAQAogICAgICAgICBhc20gPSBkaXNhc3NlbWJsZShmKQogICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdCSU5BUllfQUREJywgYXNtKQogCisgICAgZGVmIHRlc3RfY29uc3RhbnRfZm9sZGluZyhzZWxmKToKKyAgICAgICAgIyBJc3N1ZSAjMTEyNDQ6IGFnZ3Jlc3NpdmUgY29uc3RhbnQgZm9sZGluZy4KKyAgICAgICAgZXhwcnMgPSBbCisgICAgICAgICAgICAiMyAqIC01IiwKKyAgICAgICAgICAgICItMyAqIDUiLAorICAgICAgICAgICAgIjIgKiAoMyAqIDQpIiwKKyAgICAgICAgICAgICIoMiAqIDMpICogNCIsCisgICAgICAgICAgICAiKC0xLCAyLCAzKSIsCisgICAgICAgICAgICAiKDEsIC0yLCAzKSIsCisgICAgICAgICAgICAiKDEsIDIsIC0zKSIsCisgICAgICAgICAgICAiKDEsIDIsIC0zKSAqIDYiLAorICAgICAgICAgICAgImxhbWJkYSB4OiB4IGluIHsoMyAqIC01KSArICgtMSAtIDYpLCAoMSwgLTIsIDMpICogMiwgTm9uZX0iLAorICAgICAgICBdCisgICAgICAgIGZvciBlIGluIGV4cHJzOgorICAgICAgICAgICAgYXNtID0gZGlzX3NpbmdsZShlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbignVU5BUllfJywgYXNtLCBlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbignQklOQVJZXycsIGFzbSwgZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ0JVSUxEXycsIGFzbSwgZSkKKwogY2xhc3MgVGVzdEJ1Z2xldHModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfYnVnXzExNTEwKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wZXAyNzcucHkgYi9MaWIvdGVzdC90ZXN0X3BlcDI3Ny5weQppbmRleCA2ZDg5MWU1Li40YjE2Y2JiIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BlcDI3Ny5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BlcDI3Ny5weQpAQCAtMSw2ICsxLDkgQEAKICMgVGVzdCB0aGUgVW5pY29kZSB2ZXJzaW9ucyBvZiBub3JtYWwgZmlsZSBmdW5jdGlvbnMKICMgb3Blbiwgb3Mub3Blbiwgb3Muc3RhdC4gb3MubGlzdGRpciwgb3MucmVuYW1lLCBvcy5yZW1vdmUsIG9zLm1rZGlyLCBvcy5jaGRpciwgb3Mucm1kaXIKLWltcG9ydCBzeXMsIG9zLCB1bml0dGVzdAoraW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB3YXJuaW5ncwogZnJvbSB1bmljb2RlZGF0YSBpbXBvcnQgbm9ybWFsaXplCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIApAQCAtMzgsOCArNDEsOCBAQAogICAgICAgICAnMTdfXHUyMDAxXHUyMDAxXHUyMDAxQScsCiAgICAgICAgICcxOF9cdTIwMDNcdTIwMDNcdTIwMDNBJywgICMgPT0gTkZDKCdcdTIwMDFcdTIwMDFcdTIwMDFBJykKICAgICAgICAgJzE5X1x1MDAyMFx1MDAyMFx1MDAyMEEnLCAgIyAnXHUwMDIwJyA9PSAnICcgPT0gTkZLQygnXHUyMDAwJykgPT0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgTkZLQygnXHUyMDAxJykgPT0gTkZLQygnXHUyMDAzJykKLV0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIE5GS0MoJ1x1MjAwMScpID09IE5GS0MoJ1x1MjAwMycpCisgICAgXSkKIAogCiAjIElzIGl0IFVuaWNvZGUtZnJpZW5kbHk/CkBAIC03MSw3ICs3NCw3IEBACiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy5ta2RpcihzdXBwb3J0LlRFU1RGTikKLSAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgIGV4Y2VwdCBGaWxlRXhpc3RzRXJyb3I6CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGZpbGVzID0gc2V0KCkKICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi5maWxlczoKQEAgLTkwLDE1ICs5MywxNyBAQAogICAgICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZShzZWxmLm5vcm1hbF9mb3JtLCBzKQogICAgICAgICByZXR1cm4gcwogCi0gICAgZGVmIF9hcHBseV9mYWlsdXJlKHNlbGYsIGZuLCBmaWxlbmFtZSwgZXhwZWN0ZWRfZXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICBjaGVja19mbl9pbl9leGNlcHRpb24gPSBUcnVlKToKKyAgICBkZWYgX2FwcGx5X2ZhaWx1cmUoc2VsZiwgZm4sIGZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9leGNlcHRpb249RmlsZU5vdEZvdW5kRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2ZpbGVuYW1lPVRydWUpOgogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKGV4cGVjdGVkX2V4Y2VwdGlvbikgYXMgYzoKICAgICAgICAgICAgIGZuKGZpbGVuYW1lKQogICAgICAgICBleGNfZmlsZW5hbWUgPSBjLmV4Y2VwdGlvbi5maWxlbmFtZQotICAgICAgICAjIHRoZSAiZmlsZW5hbWUiIGV4Y2VwdGlvbiBhdHRyaWJ1dGUgbWF5IGJlIGVuY29kZWQKLSAgICAgICAgaWYgaXNpbnN0YW5jZShleGNfZmlsZW5hbWUsIGJ5dGVzKToKLSAgICAgICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUuZW5jb2RlKHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSkKLSAgICAgICAgaWYgY2hlY2tfZm5faW5fZXhjZXB0aW9uOgorICAgICAgICAjIGxpc3RkaXIgbWF5IGFwcGVuZCBhIHdpbGRjYXJkIHRvIHRoZSBmaWxlbmFtZQorICAgICAgICBpZiBmbiBpcyBvcy5saXN0ZGlyIGFuZCBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgICAgIGV4Y19maWxlbmFtZSwgXywgd2lsZGNhcmQgPSBleGNfZmlsZW5hbWUucnBhcnRpdGlvbihvcy5zZXApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdpbGRjYXJkLCAnKi4qJykKKyAgICAgICAgaWYgY2hlY2tfZmlsZW5hbWU6CiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4Y19maWxlbmFtZSwgZmlsZW5hbWUsICJGdW5jdGlvbiAnJXMoJWEpIGZhaWxlZCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoIGJhZCBmaWxlbmFtZSBpbiB0aGUgZXhjZXB0aW9uOiAlYSIgJQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm4uX19uYW1lX18sIGZpbGVuYW1lLCBleGNfZmlsZW5hbWUpKQpAQCAtMTA3LDEzICsxMTIsMTggQEAKICAgICAgICAgIyBQYXNzIG5vbi1leGlzdGluZyBVbmljb2RlIGZpbGVuYW1lcyBhbGwgb3ZlciB0aGUgcGxhY2UuCiAgICAgICAgIGZvciBuYW1lIGluIHNlbGYuZmlsZXM6CiAgICAgICAgICAgICBuYW1lID0gIm5vdF8iICsgbmFtZQotICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcGVuLCBuYW1lLCBJT0Vycm9yKQotICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcy5zdGF0LCBuYW1lLCBPU0Vycm9yKQotICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcy5jaGRpciwgbmFtZSwgT1NFcnJvcikKLSAgICAgICAgICAgIHNlbGYuX2FwcGx5X2ZhaWx1cmUob3Mucm1kaXIsIG5hbWUsIE9TRXJyb3IpCi0gICAgICAgICAgICBzZWxmLl9hcHBseV9mYWlsdXJlKG9zLnJlbW92ZSwgbmFtZSwgT1NFcnJvcikKLSAgICAgICAgICAgICMgbGlzdGRpciBtYXkgYXBwZW5kIGEgd2lsZGNhcmQgdG8gdGhlIGZpbGVuYW1lLCBzbyBkb250IGNoZWNrCi0gICAgICAgICAgICBzZWxmLl9hcHBseV9mYWlsdXJlKG9zLmxpc3RkaXIsIG5hbWUsIE9TRXJyb3IsIEZhbHNlKQorICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcGVuLCBuYW1lKQorICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcy5zdGF0LCBuYW1lKQorICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcy5jaGRpciwgbmFtZSkKKyAgICAgICAgICAgIHNlbGYuX2FwcGx5X2ZhaWx1cmUob3Mucm1kaXIsIG5hbWUpCisgICAgICAgICAgICBzZWxmLl9hcHBseV9mYWlsdXJlKG9zLnJlbW92ZSwgbmFtZSkKKyAgICAgICAgICAgIHNlbGYuX2FwcGx5X2ZhaWx1cmUob3MubGlzdGRpciwgbmFtZSkKKworICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgorICAgICAgICAjIFdpbmRvd3MgaXMgbHVuYXRpYy4gSXNzdWUgIzEzMzY2LgorICAgICAgICBfbGlzdGRpcl9mYWlsdXJlID0gTm90QURpcmVjdG9yeUVycm9yLCBGaWxlTm90Rm91bmRFcnJvcgorICAgIGVsc2U6CisgICAgICAgIF9saXN0ZGlyX2ZhaWx1cmUgPSBOb3RBRGlyZWN0b3J5RXJyb3IKIAogICAgIGRlZiB0ZXN0X29wZW4oc2VsZik6CiAgICAgICAgIGZvciBuYW1lIGluIHNlbGYuZmlsZXM6CkBAIC0xMjEsMTIgKzEzMSwxMyBAQAogICAgICAgICAgICAgZi53cml0ZSgobmFtZSsnXG4nKS5lbmNvZGUoInV0Zi04IikpCiAgICAgICAgICAgICBmLmNsb3NlKCkKICAgICAgICAgICAgIG9zLnN0YXQobmFtZSkKKyAgICAgICAgICAgIHNlbGYuX2FwcGx5X2ZhaWx1cmUob3MubGlzdGRpciwgbmFtZSwgc2VsZi5fbGlzdGRpcl9mYWlsdXJlKQogCiAgICAgIyBTa2lwIHRoZSB0ZXN0IG9uIGRhcndpbiwgYmVjYXVzZSBkYXJ3aW4gZG9lcyBub3JtYWxpemUgdGhlIGZpbGVuYW1lIHRvCiAgICAgIyBORkQgKGEgdmFyaWFudCBvZiBVbmljb2RlIE5GRCBmb3JtKS4gTm9ybWFsaXplIHRoZSBmaWxlbmFtZSB0byBORkMsIE5GS0MsCiAgICAgIyBORktEIGluIFB5dGhvbiBpcyB1c2VsZXNzLCBiZWNhdXNlIGRhcndpbiB3aWxsIG5vcm1hbGl6ZSBpdCBsYXRlciBhbmQgc28KICAgICAjIG9wZW4oKSwgb3Muc3RhdCgpLCBldGMuIGRvbid0IHJhaXNlIGFueSBleGNlcHRpb24uCi0gICAgQHVuaXR0ZXN0LnNraXBJZihzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicsICdpcnJldmVsYW50IHRlc3Qgb24gTWFjIE9TIFgnKQorICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nLCAnaXJyZWxldmFudCB0ZXN0IG9uIE1hYyBPUyBYJykKICAgICBkZWYgdGVzdF9ub3JtYWxpemUoc2VsZik6CiAgICAgICAgIGZpbGVzID0gc2V0KHNlbGYuZmlsZXMpCiAgICAgICAgIG90aGVycyA9IHNldCgpCkBAIC0xMzQsMjEgKzE0NSwyMiBAQAogICAgICAgICAgICAgb3RoZXJzIHw9IHNldChub3JtYWxpemUobmYsIGZpbGUpIGZvciBmaWxlIGluIGZpbGVzKQogICAgICAgICBvdGhlcnMgLT0gZmlsZXMKICAgICAgICAgZm9yIG5hbWUgaW4gb3RoZXJzOgotICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcGVuLCBuYW1lLCBJT0Vycm9yKQotICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcy5zdGF0LCBuYW1lLCBPU0Vycm9yKQotICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcy5jaGRpciwgbmFtZSwgT1NFcnJvcikKLSAgICAgICAgICAgIHNlbGYuX2FwcGx5X2ZhaWx1cmUob3Mucm1kaXIsIG5hbWUsIE9TRXJyb3IpCi0gICAgICAgICAgICBzZWxmLl9hcHBseV9mYWlsdXJlKG9zLnJlbW92ZSwgbmFtZSwgT1NFcnJvcikKLSAgICAgICAgICAgICMgbGlzdGRpciBtYXkgYXBwZW5kIGEgd2lsZGNhcmQgdG8gdGhlIGZpbGVuYW1lLCBzbyBkb250IGNoZWNrCi0gICAgICAgICAgICBzZWxmLl9hcHBseV9mYWlsdXJlKG9zLmxpc3RkaXIsIG5hbWUsIE9TRXJyb3IsIEZhbHNlKQorICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcGVuLCBuYW1lKQorICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcy5zdGF0LCBuYW1lKQorICAgICAgICAgICAgc2VsZi5fYXBwbHlfZmFpbHVyZShvcy5jaGRpciwgbmFtZSkKKyAgICAgICAgICAgIHNlbGYuX2FwcGx5X2ZhaWx1cmUob3Mucm1kaXIsIG5hbWUpCisgICAgICAgICAgICBzZWxmLl9hcHBseV9mYWlsdXJlKG9zLnJlbW92ZSwgbmFtZSkKKyAgICAgICAgICAgIHNlbGYuX2FwcGx5X2ZhaWx1cmUob3MubGlzdGRpciwgbmFtZSkKIAogICAgICMgU2tpcCB0aGUgdGVzdCBvbiBkYXJ3aW4sIGJlY2F1c2UgZGFyd2luIHVzZXMgYSBub3JtYWxpemF0aW9uIGRpZmZlcmVudAogICAgICMgdGhhbiBQeXRob24gTkZEIG5vcm1hbGl6YXRpb246IGZpbGVuYW1lcyBhcmUgZGlmZmVyZW50IGV2ZW4gaWYgd2UgdXNlCiAgICAgIyBQeXRob24gTkZEIG5vcm1hbGl6YXRpb24uCi0gICAgQHVuaXR0ZXN0LnNraXBJZihzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicsICdpcnJldmVsYW50IHRlc3Qgb24gTWFjIE9TIFgnKQorICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nLCAnaXJyZWxldmFudCB0ZXN0IG9uIE1hYyBPUyBYJykKICAgICBkZWYgdGVzdF9saXN0ZGlyKHNlbGYpOgogICAgICAgICBzZjAgPSBzZXQoc2VsZi5maWxlcykKLSAgICAgICAgZjEgPSBvcy5saXN0ZGlyKHN1cHBvcnQuVEVTVEZOLmVuY29kZShzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCkpKQorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImlnbm9yZSIsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIGYxID0gb3MubGlzdGRpcihzdXBwb3J0LlRFU1RGTi5lbmNvZGUoc3lzLmdldGZpbGVzeXN0ZW1lbmNvZGluZygpKSkKICAgICAgICAgZjIgPSBvcy5saXN0ZGlyKHN1cHBvcnQuVEVTVEZOKQogICAgICAgICBzZjIgPSBzZXQob3MucGF0aC5qb2luKHN1cHBvcnQuVEVTVEZOLCBmKSBmb3IgZiBpbiBmMikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZjAsIHNmMiwgIiVhICE9ICVhIiAlIChzZjAsIHNmMikpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3BlcDI5Mi5weSBiL0xpYi90ZXN0L3Rlc3RfcGVwMjkyLnB5CmluZGV4IDExOWM3ZWEuLjZkYThkMmUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfcGVwMjkyLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcGVwMjkyLnB5CkBAIC00MiwxOSArNDIsNiBAQAogICAgICAgICBzID0gVGVtcGxhdGUoJyR3aG8gbGlrZXMgJCQnKQogICAgICAgICBlcShzLnN1YnN0aXR1dGUoZGljdCh3aG89J3RpbScsIHdoYXQ9J2hhbScpKSwgJ3RpbSBsaWtlcyAkJykKIAotICAgIGRlZiB0ZXN0X2ludmFsaWQoc2VsZik6Ci0gICAgICAgIGNsYXNzIE15UGF0dGVybihUZW1wbGF0ZSk6Ci0gICAgICAgICAgICBwYXR0ZXJuID0gciIiIgotICAgICAgICAgICAgKD86Ci0gICAgICAgICAgICAoP1A8aW52YWxpZD4pICAgICAgICAgICAgfAotICAgICAgICAgICAgKD9QPGVzY2FwZWQ+JShkZWxpbSlzKSAgIHwKLSAgICAgICAgICAgIEAoP1A8bmFtZWQ+JShpZClzKSAgICAgICB8Ci0gICAgICAgICAgICBAeyg/UDxicmFjZWQ+JShpZClzKX0gICAgCi0gICAgICAgICAgICApCi0gICAgICAgICAgICAiIiIKLSAgICAgICAgcyA9IE15UGF0dGVybignJCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHMuc3Vic3RpdHV0ZSwgZGljdCgpKSAKLQogICAgIGRlZiB0ZXN0X3BlcmNlbnRzKHNlbGYpOgogICAgICAgICBlcSA9IHNlbGYuYXNzZXJ0RXF1YWwKICAgICAgICAgcyA9IFRlbXBsYXRlKCclKGZvbylzICRmb28gJHtmb299JykKQEAgLTE3Miw2ICsxNTksMjYgQEAKICAgICAgICAgdmFsID0gdC5zYWZlX3N1YnN0aXR1dGUoeydsb2NhdGlvbic6ICdDbGV2ZWxhbmQnfSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YWwsICdQeUNvbiBpbiBDbGV2ZWxhbmQnKQogCisgICAgZGVmIHRlc3RfaW52YWxpZF93aXRoX25vX2xpbmVzKHNlbGYpOgorICAgICAgICAjIFRoZSBlcnJvciBmb3JtYXR0aW5nIGZvciBpbnZhbGlkIHRlbXBsYXRlcworICAgICAgICAjIGhhcyBhIHNwZWNpYWwgY2FzZSBmb3Igbm8gZGF0YSB0aGF0IHRoZSBkZWZhdWx0CisgICAgICAgICMgcGF0dGVybiBjYW4ndCB0cmlnZ2VyIChhbHdheXMgaGFzIGF0IGxlYXN0ICckJykKKyAgICAgICAgIyBTbyB3ZSBjcmFmdCBhIHBhdHRlcm4gdGhhdCBpcyBhbHdheXMgaW52YWxpZAorICAgICAgICAjIHdpdGggbm8gbGVhZGluZyBkYXRhLgorICAgICAgICBjbGFzcyBNeVRlbXBsYXRlKFRlbXBsYXRlKToKKyAgICAgICAgICAgIHBhdHRlcm4gPSByIiIiCisgICAgICAgICAgICAgICg/UDxpbnZhbGlkPikgfAorICAgICAgICAgICAgICB1bnJlYWNoYWJsZSgKKyAgICAgICAgICAgICAgICAoP1A8bmFtZWQ+KSAgIHwKKyAgICAgICAgICAgICAgICAoP1A8YnJhY2VkPikgIHwKKyAgICAgICAgICAgICAgICAoP1A8ZXNjYXBlZD4pCisgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICIiIgorICAgICAgICBzID0gTXlUZW1wbGF0ZSgnJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBlcnI6CisgICAgICAgICAgICBzLnN1YnN0aXR1dGUoe30pCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2xpbmUgMSwgY29sIDEnLCBzdHIoZXJyLmV4Y2VwdGlvbikpCisKICAgICBkZWYgdGVzdF91bmljb2RlX3ZhbHVlcyhzZWxmKToKICAgICAgICAgcyA9IFRlbXBsYXRlKCckd2hvIGxpa2VzICR3aGF0JykKICAgICAgICAgZCA9IGRpY3Qod2hvPSd0XHhmZm0nLCB3aGF0PSdmXHhmZVxmZWQnKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wZXAzMTMxLnB5IGIvTGliL3Rlc3QvdGVzdF9wZXAzMTMxLnB5CmluZGV4IGRmMGY2NGQuLjJlNmI5MGEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfcGVwMzEzMS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BlcDMxMzEucHkKQEAgLTE3LDEyICsxNyw3IEBACiAKICAgICBkZWYgdGVzdF9ub25fYm1wX25vcm1hbGl6ZWQoc2VsZik6CiAgICAgICAgIPCdlJjwnZSr8J2UpvCdlKDwnZSs8J2UofCdlKIgPSAxCi0gICAgICAgICMgT24gd2lkZSBidWlsZHMsIHRoaXMgaXMgbm9ybWFsaXplZCwgYnV0IG9uIG5hcnJvdyBvbmVzIGl0IGlzIG5vdC4gU2VlCi0gICAgICAgICMgIzEyNzQ2LgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEluKCLwnZSY8J2Uq/CdlKbwnZSg8J2UrPCdlKHwnZSiIiwgZGlyKCkpCi0gICAgICAgIGV4Y2VwdCBBc3NlcnRpb25FcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LmNhc2UuX0V4cGVjdGVkRmFpbHVyZShzeXMuZXhjX2luZm8oKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbigiVW5pY29kZSIsIGRpcigpKQogCiAgICAgZGVmIHRlc3RfaW52YWxpZChzZWxmKToKICAgICAgICAgdHJ5OgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wZXAzMTUxLnB5IGIvTGliL3Rlc3QvdGVzdF9wZXAzMTUxLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OTJjMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGVzdC90ZXN0X3BlcDMxNTEucHkKQEAgLTAsMCArMSwyMTEgQEAKK2ltcG9ydCBidWlsdGlucworaW1wb3J0IG9zCitpbXBvcnQgc2VsZWN0CitpbXBvcnQgc29ja2V0CitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBlcnJubworZnJvbSBlcnJubyBpbXBvcnQgRUVYSVNUCisKK2Zyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAorCitjbGFzcyBTdWJPU0Vycm9yKE9TRXJyb3IpOgorICAgIHBhc3MKKworY2xhc3MgU3ViT1NFcnJvcldpdGhJbml0KE9TRXJyb3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlLCBiYXIpOgorICAgICAgICBzZWxmLmJhciA9IGJhcgorICAgICAgICBzdXBlcigpLl9faW5pdF9fKG1lc3NhZ2UpCisKK2NsYXNzIFN1Yk9TRXJyb3JXaXRoTmV3KE9TRXJyb3IpOgorICAgIGRlZiBfX25ld19fKGNscywgbWVzc2FnZSwgYmF6KToKKyAgICAgICAgc2VsZiA9IHN1cGVyKCkuX19uZXdfXyhjbHMsIG1lc3NhZ2UpCisgICAgICAgIHNlbGYuYmF6ID0gYmF6CisgICAgICAgIHJldHVybiBzZWxmCisKK2NsYXNzIFN1Yk9TRXJyb3JDb21iaW5lZEluaXRGaXJzdChTdWJPU0Vycm9yV2l0aEluaXQsIFN1Yk9TRXJyb3JXaXRoTmV3KToKKyAgICBwYXNzCisKK2NsYXNzIFN1Yk9TRXJyb3JDb21iaW5lZE5ld0ZpcnN0KFN1Yk9TRXJyb3JXaXRoTmV3LCBTdWJPU0Vycm9yV2l0aEluaXQpOgorICAgIHBhc3MKKworY2xhc3MgU3ViT1NFcnJvcldpdGhTdGFuZGFsb25lSW5pdChPU0Vycm9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHBhc3MKKworCitjbGFzcyBIaWVyYXJjaHlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2J1aWx0aW5fZXJyb3JzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE9TRXJyb3IuX19uYW1lX18sICdPU0Vycm9yJykKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhJT0Vycm9yLCBPU0Vycm9yKQorICAgICAgICBzZWxmLmFzc2VydElzKEVudmlyb25tZW50RXJyb3IsIE9TRXJyb3IpCisKKyAgICBkZWYgdGVzdF9zb2NrZXRfZXJyb3JzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydElzKHNvY2tldC5lcnJvciwgSU9FcnJvcikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhzb2NrZXQuZ2FpZXJyb3IuX19iYXNlX18sIE9TRXJyb3IpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoc29ja2V0LmhlcnJvci5fX2Jhc2VfXywgT1NFcnJvcikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhzb2NrZXQudGltZW91dC5fX2Jhc2VfXywgT1NFcnJvcikKKworICAgIGRlZiB0ZXN0X3NlbGVjdF9lcnJvcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhzZWxlY3QuZXJyb3IsIE9TRXJyb3IpCisKKyAgICAjIG1tYXAuZXJyb3IgaXMgdGVzdGVkIGluIHRlc3RfbW1hcAorCisgICAgX3BlcF9tYXAgPSAiIiIKKyAgICAgICAgKy0tIEJsb2NraW5nSU9FcnJvciAgICAgICAgRUFHQUlOLCBFQUxSRUFEWSwgRVdPVUxEQkxPQ0ssIEVJTlBST0dSRVNTCisgICAgICAgICstLSBDaGlsZFByb2Nlc3NFcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVDSElMRAorICAgICAgICArLS0gQ29ubmVjdGlvbkVycm9yCisgICAgICAgICAgICArLS0gQnJva2VuUGlwZUVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVBJUEUsIEVTSFVURE9XTgorICAgICAgICAgICAgKy0tIENvbm5lY3Rpb25BYm9ydGVkRXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICBFQ09OTkFCT1JURUQKKyAgICAgICAgICAgICstLSBDb25uZWN0aW9uUmVmdXNlZEVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgRUNPTk5SRUZVU0VECisgICAgICAgICAgICArLS0gQ29ubmVjdGlvblJlc2V0RXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUNPTk5SRVNFVAorICAgICAgICArLS0gRmlsZUV4aXN0c0Vycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRVhJU1QKKyAgICAgICAgKy0tIEZpbGVOb3RGb3VuZEVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRU5PRU5UCisgICAgICAgICstLSBJbnRlcnJ1cHRlZEVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFSU5UUgorICAgICAgICArLS0gSXNBRGlyZWN0b3J5RXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFSVNESVIKKyAgICAgICAgKy0tIE5vdEFEaXJlY3RvcnlFcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFTk9URElSCisgICAgICAgICstLSBQZXJtaXNzaW9uRXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRUFDQ0VTLCBFUEVSTQorICAgICAgICArLS0gUHJvY2Vzc0xvb2t1cEVycm9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVNSQ0gKKyAgICAgICAgKy0tIFRpbWVvdXRFcnJvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVRJTUVET1VUCisgICAgIiIiCisgICAgZGVmIF9tYWtlX21hcChzKToKKyAgICAgICAgX21hcCA9IHt9CisgICAgICAgIGZvciBsaW5lIGluIHMuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoJystICcpCisgICAgICAgICAgICBpZiBub3QgbGluZToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZXhjbmFtZSwgXywgZXJybmFtZXMgPSBsaW5lLnBhcnRpdGlvbignICcpCisgICAgICAgICAgICBmb3IgZXJybmFtZSBpbiBmaWx0ZXIoTm9uZSwgZXJybmFtZXMuc3RyaXAoKS5zcGxpdCgnLCAnKSk6CisgICAgICAgICAgICAgICAgX21hcFtnZXRhdHRyKGVycm5vLCBlcnJuYW1lKV0gPSBnZXRhdHRyKGJ1aWx0aW5zLCBleGNuYW1lKQorICAgICAgICByZXR1cm4gX21hcAorICAgIF9tYXAgPSBfbWFrZV9tYXAoX3BlcF9tYXApCisKKyAgICBkZWYgdGVzdF9lcnJub19tYXBwaW5nKHNlbGYpOgorICAgICAgICAjIFRoZSBPU0Vycm9yIGNvbnN0cnVjdG9yIG1hcHMgZXJybm9zIHRvIHN1YmNsYXNzZXMKKyAgICAgICAgIyBBIHNhbXBsZSB0ZXN0IGZvciB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eQorICAgICAgICBlID0gT1NFcnJvcihFRVhJU1QsICJCYWQgZmlsZSBkZXNjcmlwdG9yIikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKGUpLCBGaWxlRXhpc3RzRXJyb3IpCisgICAgICAgICMgRXhoYXVzdGl2ZSB0ZXN0aW5nCisgICAgICAgIGZvciBlcnJjb2RlLCBleGMgaW4gc2VsZi5fbWFwLml0ZW1zKCk6CisgICAgICAgICAgICBlID0gT1NFcnJvcihlcnJjb2RlLCAiU29tZSBtZXNzYWdlIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShlKSwgZXhjKQorICAgICAgICBvdGhlcmNvZGVzID0gc2V0KGVycm5vLmVycm9yY29kZSkgLSBzZXQoc2VsZi5fbWFwKQorICAgICAgICBmb3IgZXJyY29kZSBpbiBvdGhlcmNvZGVzOgorICAgICAgICAgICAgZSA9IE9TRXJyb3IoZXJyY29kZSwgIlNvbWUgbWVzc2FnZSIpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUoZSksIE9TRXJyb3IpCisKKyAgICBkZWYgdGVzdF90cnlfZXhjZXB0KHNlbGYpOgorICAgICAgICBmaWxlbmFtZSA9ICJzb21lX2hvcGVmdWxseV9ub25fZXhpc3RpbmdfZmlsZSIKKworICAgICAgICAjIFRoaXMgY2hlY2tzIHRoYXQgdHJ5IC4uIGV4Y2VwdCBjaGVja3MgdGhlIGNvbmNyZXRlIGV4Y2VwdGlvbgorICAgICAgICAjIChGaWxlTm90Rm91bmRFcnJvcikgYW5kIG5vdCB0aGUgYmFzZSB0eXBlIHNwZWNpZmllZCB3aGVuCisgICAgICAgICMgUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lT2JqZWN0IHdhcyBjYWxsZWQuCisgICAgICAgICMgKGl0IGlzIHRoZXJlZm9yZSBkZWxpYmVyYXRlIHRoYXQgaXQgZG9lc24ndCB1c2UgYXNzZXJ0UmFpc2VzKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcGVuKGZpbGVuYW1lKQorICAgICAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoInNob3VsZCBoYXZlIHJhaXNlZCBhIEZpbGVOb3RGb3VuZEVycm9yIikKKworICAgICAgICAjIEFub3RoZXIgdGVzdCBmb3IgUHlFcnJfU2V0RXhjRnJvbVdpbmRvd3NFcnJXaXRoRmlsZW5hbWVPYmplY3QoKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3MudW5saW5rKGZpbGVuYW1lKQorICAgICAgICBleGNlcHQgRmlsZU5vdEZvdW5kRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoInNob3VsZCBoYXZlIHJhaXNlZCBhIEZpbGVOb3RGb3VuZEVycm9yIikKKworCitjbGFzcyBBdHRyaWJ1dGVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF93aW5kb3dzX2Vycm9yKHNlbGYpOgorICAgICAgICBpZiBvcy5uYW1lID09ICJudCI6CisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCd3aW5lcnJvcicsIGRpcihPU0Vycm9yKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oJ3dpbmVycm9yJywgZGlyKE9TRXJyb3IpKQorCisgICAgZGVmIHRlc3RfcG9zaXhfZXJyb3Ioc2VsZik6CisgICAgICAgIGUgPSBPU0Vycm9yKEVFWElTVCwgIkZpbGUgYWxyZWFkeSBleGlzdHMiLCAiZm9vLnR4dCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5lcnJubywgRUVYSVNUKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuYXJnc1swXSwgRUVYSVNUKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuc3RyZXJyb3IsICJGaWxlIGFscmVhZHkgZXhpc3RzIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmZpbGVuYW1lLCAiZm9vLnR4dCIpCisgICAgICAgIGlmIG9zLm5hbWUgPT0gIm50IjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS53aW5lcnJvciwgTm9uZSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLm5hbWUgPT0gIm50IiwgIldpbmRvd3Mtc3BlY2lmaWMgdGVzdCIpCisgICAgZGVmIHRlc3RfZXJybm9fdHJhbnNsYXRpb24oc2VsZik6CisgICAgICAgICMgRVJST1JfQUxSRUFEWV9FWElTVFMgKDE4MykgLT4gRUVYSVNUCisgICAgICAgIGUgPSBPU0Vycm9yKDAsICJGaWxlIGFscmVhZHkgZXhpc3RzIiwgImZvby50eHQiLCAxODMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS53aW5lcnJvciwgMTgzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuZXJybm8sIEVFWElTVCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmFyZ3NbMF0sIEVFWElTVCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLnN0cmVycm9yLCAiRmlsZSBhbHJlYWR5IGV4aXN0cyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5maWxlbmFtZSwgImZvby50eHQiKQorCisgICAgZGVmIHRlc3RfYmxvY2tpbmdpb2Vycm9yKHNlbGYpOgorICAgICAgICBhcmdzID0gKCJhIiwgImIiLCAiYyIsICJkIiwgImUiKQorICAgICAgICBmb3IgbiBpbiByYW5nZSg2KToKKyAgICAgICAgICAgIGUgPSBCbG9ja2luZ0lPRXJyb3IoKmFyZ3NbOm5dKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICAgICAgZS5jaGFyYWN0ZXJzX3dyaXR0ZW4KKyAgICAgICAgZSA9IEJsb2NraW5nSU9FcnJvcigiYSIsICJiIiwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmNoYXJhY3RlcnNfd3JpdHRlbiwgMykKKyAgICAgICAgZS5jaGFyYWN0ZXJzX3dyaXR0ZW4gPSA1CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5jaGFyYWN0ZXJzX3dyaXR0ZW4sIDUpCisKKyAgICAjIFhYWCBWTVNFcnJvciBub3QgdGVzdGVkCisKKworY2xhc3MgRXhwbGljaXRTdWJjbGFzc2luZ1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfZXJybm9fbWFwcGluZyhzZWxmKToKKyAgICAgICAgIyBXaGVuIGNvbnN0cnVjdGluZyBhbiBPU0Vycm9yIHN1YmNsYXNzLCBlcnJubyBtYXBwaW5nIGlzbid0IGRvbmUKKyAgICAgICAgZSA9IFN1Yk9TRXJyb3IoRUVYSVNULCAiQmFkIGZpbGUgZGVzY3JpcHRvciIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShlKSwgU3ViT1NFcnJvcikKKworICAgIGRlZiB0ZXN0X2luaXRfb3ZlcnJpZGVuKHNlbGYpOgorICAgICAgICBlID0gU3ViT1NFcnJvcldpdGhJbml0KCJzb21lIG1lc3NhZ2UiLCAiYmF6IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmJhciwgImJheiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzLCAoInNvbWUgbWVzc2FnZSIsKSkKKworICAgIGRlZiB0ZXN0X2luaXRfa3dkYXJncyhzZWxmKToKKyAgICAgICAgZSA9IFN1Yk9TRXJyb3JXaXRoSW5pdCgic29tZSBtZXNzYWdlIiwgYmFyPSJiYXoiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuYmFyLCAiYmF6IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmFyZ3MsICgic29tZSBtZXNzYWdlIiwpKQorCisgICAgZGVmIHRlc3RfbmV3X292ZXJyaWRlbihzZWxmKToKKyAgICAgICAgZSA9IFN1Yk9TRXJyb3JXaXRoTmV3KCJzb21lIG1lc3NhZ2UiLCAiYmF6IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmJheiwgImJheiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzLCAoInNvbWUgbWVzc2FnZSIsKSkKKworICAgIGRlZiB0ZXN0X25ld19rd2RhcmdzKHNlbGYpOgorICAgICAgICBlID0gU3ViT1NFcnJvcldpdGhOZXcoInNvbWUgbWVzc2FnZSIsIGJhej0iYmF6IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmJheiwgImJheiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzLCAoInNvbWUgbWVzc2FnZSIsKSkKKworICAgIGRlZiB0ZXN0X2luaXRfbmV3X292ZXJyaWRlbihzZWxmKToKKyAgICAgICAgZSA9IFN1Yk9TRXJyb3JDb21iaW5lZEluaXRGaXJzdCgic29tZSBtZXNzYWdlIiwgImJheiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5iYXIsICJiYXoiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuYmF6LCAiYmF6IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmFyZ3MsICgic29tZSBtZXNzYWdlIiwpKQorICAgICAgICBlID0gU3ViT1NFcnJvckNvbWJpbmVkTmV3Rmlyc3QoInNvbWUgbWVzc2FnZSIsICJiYXoiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuYmFyLCAiYmF6IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmJheiwgImJheiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzLCAoInNvbWUgbWVzc2FnZSIsKSkKKworICAgIGRlZiB0ZXN0X2luaXRfc3RhbmRhbG9uZShzZWxmKToKKyAgICAgICAgIyBfX2luaXRfXyBkb2Vzbid0IHByb3BhZ2F0ZSB0byBPU0Vycm9yLl9faW5pdF9fIChzZWUgaXNzdWUgIzE1MjI5KQorICAgICAgICBlID0gU3ViT1NFcnJvcldpdGhTdGFuZGFsb25lSW5pdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzLCAoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZSksICcnKQorCisKK2RlZiB0ZXN0X21haW4oKToKKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChfX25hbWVfXykKKworaWYgX19uYW1lX189PSJfX21haW5fXyI6CisgICAgdGVzdF9tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcGVwMzgwLnB5IGIvTGliL3Rlc3QvdGVzdF9wZXAzODAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU4YmNiOQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfcGVwMzgwLnB5CkBAIC0wLDAgKzEsOTUxIEBACisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQorCisiIiIKK1Rlc3Qgc3VpdGUgZm9yIFBFUCAzODAgaW1wbGVtZW50YXRpb24KKworYWRhcHRlZCBmcm9tIG9yaWdpbmFsIHRlc3RzIHdyaXR0ZW4gYnkgR3JlZyBFd2luZworc2VlIDxodHRwOi8vd3d3LmNvc2MuY2FudGVyYnVyeS5hYy5uei9ncmVnLmV3aW5nL3B5dGhvbi95aWVsZC1mcm9tL1lpZWxkRnJvbS1QeXRob24zLjEuMi1yZXY1LnppcD4KKyIiIgorCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBpbworaW1wb3J0IHN5cworaW1wb3J0IGluc3BlY3QKK2ltcG9ydCBwYXJzZXIKKworZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGNhcHR1cmVkX3N0ZGVycgorCitjbGFzcyBUZXN0UEVQMzgwT3BlcmF0aW9uKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiIKKyAgICBUZXN0IHNlbWFudGljcy4KKyAgICAiIiIKKworICAgIGRlZiB0ZXN0X2RlbGVnYXRpb25fb2ZfaW5pdGlhbF9uZXh0X3RvX3N1YmdlbmVyYXRvcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgZGVsZWdhdGlvbiBvZiBpbml0aWFsIG5leHQoKSBjYWxsIHRvIHN1YmdlbmVyYXRvcgorICAgICAgICAiIiIKKyAgICAgICAgdHJhY2UgPSBbXQorICAgICAgICBkZWYgZzEoKToKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiU3RhcnRpbmcgZzEiKQorICAgICAgICAgICAgeWllbGQgZnJvbSBnMigpCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkZpbmlzaGluZyBnMSIpCisgICAgICAgIGRlZiBnMigpOgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTdGFydGluZyBnMiIpCisgICAgICAgICAgICB5aWVsZCA0MgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJGaW5pc2hpbmcgZzIiKQorICAgICAgICBmb3IgeCBpbiBnMSgpOgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJZaWVsZGVkICVzIiAlICh4LCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgIlN0YXJ0aW5nIGcxIiwKKyAgICAgICAgICAgICJTdGFydGluZyBnMiIsCisgICAgICAgICAgICAiWWllbGRlZCA0MiIsCisgICAgICAgICAgICAiRmluaXNoaW5nIGcyIiwKKyAgICAgICAgICAgICJGaW5pc2hpbmcgZzEiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfcmFpc2luZ19leGNlcHRpb25faW5faW5pdGlhbF9uZXh0X2NhbGwoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHJhaXNpbmcgZXhjZXB0aW9uIGluIGluaXRpYWwgbmV4dCgpIGNhbGwKKyAgICAgICAgIiIiCisgICAgICAgIHRyYWNlID0gW10KKyAgICAgICAgZGVmIGcxKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTdGFydGluZyBnMSIpCisgICAgICAgICAgICAgICAgeWllbGQgZnJvbSBnMigpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRmluaXNoaW5nIGcxIikKKyAgICAgICAgZGVmIGcyKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTdGFydGluZyBnMiIpCisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigic3BhbmlzaCBpbnF1aXNpdGlvbiBvY2N1cnJlZCIpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRmluaXNoaW5nIGcyIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm9yIHggaW4gZzEoKToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIllpZWxkZWQgJXMiICUgKHgsKSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzWzBdLCAic3BhbmlzaCBpbnF1aXNpdGlvbiBvY2N1cnJlZCIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoInN1YmdlbmVyYXRvciBmYWlsZWQgdG8gcmFpc2UgVmFsdWVFcnJvciIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgIlN0YXJ0aW5nIGcxIiwKKyAgICAgICAgICAgICJTdGFydGluZyBnMiIsCisgICAgICAgICAgICAiRmluaXNoaW5nIGcyIiwKKyAgICAgICAgICAgICJGaW5pc2hpbmcgZzEiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfZGVsZWdhdGlvbl9vZl9uZXh0X2NhbGxfdG9fc3ViZ2VuZXJhdG9yKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCBkZWxlZ2F0aW9uIG9mIG5leHQoKSBjYWxsIHRvIHN1YmdlbmVyYXRvcgorICAgICAgICAiIiIKKyAgICAgICAgdHJhY2UgPSBbXQorICAgICAgICBkZWYgZzEoKToKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiU3RhcnRpbmcgZzEiKQorICAgICAgICAgICAgeWllbGQgImcxIGhhbSIKKyAgICAgICAgICAgIHlpZWxkIGZyb20gZzIoKQorICAgICAgICAgICAgeWllbGQgImcxIGVnZ3MiCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkZpbmlzaGluZyBnMSIpCisgICAgICAgIGRlZiBnMigpOgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTdGFydGluZyBnMiIpCisgICAgICAgICAgICB5aWVsZCAiZzIgc3BhbSIKKyAgICAgICAgICAgIHlpZWxkICJnMiBtb3JlIHNwYW0iCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkZpbmlzaGluZyBnMiIpCisgICAgICAgIGZvciB4IGluIGcxKCk6CisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIllpZWxkZWQgJXMiICUgKHgsKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFjZSxbCisgICAgICAgICAgICAiU3RhcnRpbmcgZzEiLAorICAgICAgICAgICAgIllpZWxkZWQgZzEgaGFtIiwKKyAgICAgICAgICAgICJTdGFydGluZyBnMiIsCisgICAgICAgICAgICAiWWllbGRlZCBnMiBzcGFtIiwKKyAgICAgICAgICAgICJZaWVsZGVkIGcyIG1vcmUgc3BhbSIsCisgICAgICAgICAgICAiRmluaXNoaW5nIGcyIiwKKyAgICAgICAgICAgICJZaWVsZGVkIGcxIGVnZ3MiLAorICAgICAgICAgICAgIkZpbmlzaGluZyBnMSIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9yYWlzaW5nX2V4Y2VwdGlvbl9pbl9kZWxlZ2F0ZWRfbmV4dF9jYWxsKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCByYWlzaW5nIGV4Y2VwdGlvbiBpbiBkZWxlZ2F0ZWQgbmV4dCgpIGNhbGwKKyAgICAgICAgIiIiCisgICAgICAgIHRyYWNlID0gW10KKyAgICAgICAgZGVmIGcxKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTdGFydGluZyBnMSIpCisgICAgICAgICAgICAgICAgeWllbGQgImcxIGhhbSIKKyAgICAgICAgICAgICAgICB5aWVsZCBmcm9tIGcyKCkKKyAgICAgICAgICAgICAgICB5aWVsZCAiZzEgZWdncyIKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJGaW5pc2hpbmcgZzEiKQorICAgICAgICBkZWYgZzIoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIlN0YXJ0aW5nIGcyIikKKyAgICAgICAgICAgICAgICB5aWVsZCAiZzIgc3BhbSIKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJob3ZlcmNyYWZ0IGlzIGZ1bGwgb2YgZWVscyIpCisgICAgICAgICAgICAgICAgeWllbGQgImcyIG1vcmUgc3BhbSIKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJGaW5pc2hpbmcgZzIiKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBmb3IgeCBpbiBnMSgpOgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiWWllbGRlZCAlcyIgJSAoeCwpKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmFyZ3NbMF0sICJob3ZlcmNyYWZ0IGlzIGZ1bGwgb2YgZWVscyIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoInN1YmdlbmVyYXRvciBmYWlsZWQgdG8gcmFpc2UgVmFsdWVFcnJvciIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgIlN0YXJ0aW5nIGcxIiwKKyAgICAgICAgICAgICJZaWVsZGVkIGcxIGhhbSIsCisgICAgICAgICAgICAiU3RhcnRpbmcgZzIiLAorICAgICAgICAgICAgIllpZWxkZWQgZzIgc3BhbSIsCisgICAgICAgICAgICAiRmluaXNoaW5nIGcyIiwKKyAgICAgICAgICAgICJGaW5pc2hpbmcgZzEiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfZGVsZWdhdGlvbl9vZl9zZW5kKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCBkZWxlZ2F0aW9uIG9mIHNlbmQoKQorICAgICAgICAiIiIKKyAgICAgICAgdHJhY2UgPSBbXQorICAgICAgICBkZWYgZzEoKToKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiU3RhcnRpbmcgZzEiKQorICAgICAgICAgICAgeCA9IHlpZWxkICJnMSBoYW0iCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcxIHJlY2VpdmVkICVzIiAlICh4LCkpCisgICAgICAgICAgICB5aWVsZCBmcm9tIGcyKCkKKyAgICAgICAgICAgIHggPSB5aWVsZCAiZzEgZWdncyIKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiZzEgcmVjZWl2ZWQgJXMiICUgKHgsKSkKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRmluaXNoaW5nIGcxIikKKyAgICAgICAgZGVmIGcyKCk6CisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIlN0YXJ0aW5nIGcyIikKKyAgICAgICAgICAgIHggPSB5aWVsZCAiZzIgc3BhbSIKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiZzIgcmVjZWl2ZWQgJXMiICUgKHgsKSkKKyAgICAgICAgICAgIHggPSB5aWVsZCAiZzIgbW9yZSBzcGFtIgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnMiByZWNlaXZlZCAlcyIgJSAoeCwpKQorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJGaW5pc2hpbmcgZzIiKQorICAgICAgICBnID0gZzEoKQorICAgICAgICB5ID0gbmV4dChnKQorICAgICAgICB4ID0gMQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aGlsZSAxOgorICAgICAgICAgICAgICAgIHkgPSBnLnNlbmQoeCkKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIllpZWxkZWQgJXMiICUgKHksKSkKKyAgICAgICAgICAgICAgICB4ICs9IDEKKyAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgIlN0YXJ0aW5nIGcxIiwKKyAgICAgICAgICAgICJnMSByZWNlaXZlZCAxIiwKKyAgICAgICAgICAgICJTdGFydGluZyBnMiIsCisgICAgICAgICAgICAiWWllbGRlZCBnMiBzcGFtIiwKKyAgICAgICAgICAgICJnMiByZWNlaXZlZCAyIiwKKyAgICAgICAgICAgICJZaWVsZGVkIGcyIG1vcmUgc3BhbSIsCisgICAgICAgICAgICAiZzIgcmVjZWl2ZWQgMyIsCisgICAgICAgICAgICAiRmluaXNoaW5nIGcyIiwKKyAgICAgICAgICAgICJZaWVsZGVkIGcxIGVnZ3MiLAorICAgICAgICAgICAgImcxIHJlY2VpdmVkIDQiLAorICAgICAgICAgICAgIkZpbmlzaGluZyBnMSIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9oYW5kbGluZ19leGNlcHRpb25fd2hpbGVfZGVsZWdhdGluZ19zZW5kKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCBoYW5kbGluZyBleGNlcHRpb24gd2hpbGUgZGVsZWdhdGluZyAnc2VuZCcKKyAgICAgICAgIiIiCisgICAgICAgIHRyYWNlID0gW10KKyAgICAgICAgZGVmIGcxKCk6CisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIlN0YXJ0aW5nIGcxIikKKyAgICAgICAgICAgIHggPSB5aWVsZCAiZzEgaGFtIgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnMSByZWNlaXZlZCAlcyIgJSAoeCwpKQorICAgICAgICAgICAgeWllbGQgZnJvbSBnMigpCisgICAgICAgICAgICB4ID0geWllbGQgImcxIGVnZ3MiCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcxIHJlY2VpdmVkICVzIiAlICh4LCkpCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkZpbmlzaGluZyBnMSIpCisgICAgICAgIGRlZiBnMigpOgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTdGFydGluZyBnMiIpCisgICAgICAgICAgICB4ID0geWllbGQgImcyIHNwYW0iCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcyIHJlY2VpdmVkICVzIiAlICh4LCkpCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJob3ZlcmNyYWZ0IGlzIGZ1bGwgb2YgZWVscyIpCisgICAgICAgICAgICB4ID0geWllbGQgImcyIG1vcmUgc3BhbSIKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiZzIgcmVjZWl2ZWQgJXMiICUgKHgsKSkKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRmluaXNoaW5nIGcyIikKKyAgICAgICAgZGVmIHJ1bigpOgorICAgICAgICAgICAgZyA9IGcxKCkKKyAgICAgICAgICAgIHkgPSBuZXh0KGcpCisgICAgICAgICAgICB4ID0gMQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICAgICAgICAgIHkgPSBnLnNlbmQoeCkKKyAgICAgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJZaWVsZGVkICVzIiAlICh5LCkpCisgICAgICAgICAgICAgICAgICAgIHggKz0gMQorICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTdG9wSXRlcmF0aW9uIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcixydW4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgIlN0YXJ0aW5nIGcxIiwKKyAgICAgICAgICAgICJnMSByZWNlaXZlZCAxIiwKKyAgICAgICAgICAgICJTdGFydGluZyBnMiIsCisgICAgICAgICAgICAiWWllbGRlZCBnMiBzcGFtIiwKKyAgICAgICAgICAgICJnMiByZWNlaXZlZCAyIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2RlbGVnYXRpbmdfY2xvc2Uoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IGRlbGVnYXRpbmcgJ2Nsb3NlJworICAgICAgICAiIiIKKyAgICAgICAgdHJhY2UgPSBbXQorICAgICAgICBkZWYgZzEoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIlN0YXJ0aW5nIGcxIikKKyAgICAgICAgICAgICAgICB5aWVsZCAiZzEgaGFtIgorICAgICAgICAgICAgICAgIHlpZWxkIGZyb20gZzIoKQorICAgICAgICAgICAgICAgIHlpZWxkICJnMSBlZ2dzIgorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkZpbmlzaGluZyBnMSIpCisgICAgICAgIGRlZiBnMigpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiU3RhcnRpbmcgZzIiKQorICAgICAgICAgICAgICAgIHlpZWxkICJnMiBzcGFtIgorICAgICAgICAgICAgICAgIHlpZWxkICJnMiBtb3JlIHNwYW0iCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRmluaXNoaW5nIGcyIikKKyAgICAgICAgZyA9IGcxKCkKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMik6CisgICAgICAgICAgICB4ID0gbmV4dChnKQorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJZaWVsZGVkICVzIiAlICh4LCkpCisgICAgICAgIGcuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYWNlLFsKKyAgICAgICAgICAgICJTdGFydGluZyBnMSIsCisgICAgICAgICAgICAiWWllbGRlZCBnMSBoYW0iLAorICAgICAgICAgICAgIlN0YXJ0aW5nIGcyIiwKKyAgICAgICAgICAgICJZaWVsZGVkIGcyIHNwYW0iLAorICAgICAgICAgICAgIkZpbmlzaGluZyBnMiIsCisgICAgICAgICAgICAiRmluaXNoaW5nIGcxIgorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfaGFuZGluZ19leGNlcHRpb25fd2hpbGVfZGVsZWdhdGluZ19jbG9zZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgaGFuZGxpbmcgZXhjZXB0aW9uIHdoaWxlIGRlbGVnYXRpbmcgJ2Nsb3NlJworICAgICAgICAiIiIKKyAgICAgICAgdHJhY2UgPSBbXQorICAgICAgICBkZWYgZzEoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIlN0YXJ0aW5nIGcxIikKKyAgICAgICAgICAgICAgICB5aWVsZCAiZzEgaGFtIgorICAgICAgICAgICAgICAgIHlpZWxkIGZyb20gZzIoKQorICAgICAgICAgICAgICAgIHlpZWxkICJnMSBlZ2dzIgorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkZpbmlzaGluZyBnMSIpCisgICAgICAgIGRlZiBnMigpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiU3RhcnRpbmcgZzIiKQorICAgICAgICAgICAgICAgIHlpZWxkICJnMiBzcGFtIgorICAgICAgICAgICAgICAgIHlpZWxkICJnMiBtb3JlIHNwYW0iCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRmluaXNoaW5nIGcyIikKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJueWJibGVzIGhhdmUgZXhwbG9kZWQgd2l0aCBkZWxpZ2h0IikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZyA9IGcxKCkKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDIpOgorICAgICAgICAgICAgICAgIHggPSBuZXh0KGcpCisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJZaWVsZGVkICVzIiAlICh4LCkpCisgICAgICAgICAgICBnLmNsb3NlKCkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzWzBdLCAibnliYmxlcyBoYXZlIGV4cGxvZGVkIHdpdGggZGVsaWdodCIpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZS5fX2NvbnRleHRfXywgR2VuZXJhdG9yRXhpdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgic3ViZ2VuZXJhdG9yIGZhaWxlZCB0byByYWlzZSBWYWx1ZUVycm9yIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFjZSxbCisgICAgICAgICAgICAiU3RhcnRpbmcgZzEiLAorICAgICAgICAgICAgIllpZWxkZWQgZzEgaGFtIiwKKyAgICAgICAgICAgICJTdGFydGluZyBnMiIsCisgICAgICAgICAgICAiWWllbGRlZCBnMiBzcGFtIiwKKyAgICAgICAgICAgICJGaW5pc2hpbmcgZzIiLAorICAgICAgICAgICAgIkZpbmlzaGluZyBnMSIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9kZWxlZ2F0aW5nX3Rocm93KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCBkZWxlZ2F0aW5nICd0aHJvdycKKyAgICAgICAgIiIiCisgICAgICAgIHRyYWNlID0gW10KKyAgICAgICAgZGVmIGcxKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTdGFydGluZyBnMSIpCisgICAgICAgICAgICAgICAgeWllbGQgImcxIGhhbSIKKyAgICAgICAgICAgICAgICB5aWVsZCBmcm9tIGcyKCkKKyAgICAgICAgICAgICAgICB5aWVsZCAiZzEgZWdncyIKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJGaW5pc2hpbmcgZzEiKQorICAgICAgICBkZWYgZzIoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIlN0YXJ0aW5nIGcyIikKKyAgICAgICAgICAgICAgICB5aWVsZCAiZzIgc3BhbSIKKyAgICAgICAgICAgICAgICB5aWVsZCAiZzIgbW9yZSBzcGFtIgorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkZpbmlzaGluZyBnMiIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGcgPSBnMSgpCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgyKToKKyAgICAgICAgICAgICAgICB4ID0gbmV4dChnKQorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiWWllbGRlZCAlcyIgJSAoeCwpKQorICAgICAgICAgICAgZSA9IFZhbHVlRXJyb3IoInRvbWF0byBlamVjdGVkIikKKyAgICAgICAgICAgIGcudGhyb3coZSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzWzBdLCAidG9tYXRvIGVqZWN0ZWQiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCJzdWJnZW5lcmF0b3IgZmFpbGVkIHRvIHJhaXNlIFZhbHVlRXJyb3IiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYWNlLFsKKyAgICAgICAgICAgICJTdGFydGluZyBnMSIsCisgICAgICAgICAgICAiWWllbGRlZCBnMSBoYW0iLAorICAgICAgICAgICAgIlN0YXJ0aW5nIGcyIiwKKyAgICAgICAgICAgICJZaWVsZGVkIGcyIHNwYW0iLAorICAgICAgICAgICAgIkZpbmlzaGluZyBnMiIsCisgICAgICAgICAgICAiRmluaXNoaW5nIGcxIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3ZhbHVlX2F0dHJpYnV0ZV9vZl9TdG9wSXRlcmF0aW9uX2V4Y2VwdGlvbihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgJ3ZhbHVlJyBhdHRyaWJ1dGUgb2YgU3RvcEl0ZXJhdGlvbiBleGNlcHRpb24KKyAgICAgICAgIiIiCisgICAgICAgIHRyYWNlID0gW10KKyAgICAgICAgZGVmIHBleChlKToKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiJXM6ICVzIiAlIChlLl9fY2xhc3NfXy5fX25hbWVfXywgZSkpCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoInZhbHVlID0gJXMiICUgKGUudmFsdWUsKSkKKyAgICAgICAgZSA9IFN0b3BJdGVyYXRpb24oKQorICAgICAgICBwZXgoZSkKKyAgICAgICAgZSA9IFN0b3BJdGVyYXRpb24oInNwYW0iKQorICAgICAgICBwZXgoZSkKKyAgICAgICAgZS52YWx1ZSA9ICJlZ2dzIgorICAgICAgICBwZXgoZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFjZSxbCisgICAgICAgICAgICAiU3RvcEl0ZXJhdGlvbjogIiwKKyAgICAgICAgICAgICJ2YWx1ZSA9IE5vbmUiLAorICAgICAgICAgICAgIlN0b3BJdGVyYXRpb246IHNwYW0iLAorICAgICAgICAgICAgInZhbHVlID0gc3BhbSIsCisgICAgICAgICAgICAiU3RvcEl0ZXJhdGlvbjogc3BhbSIsCisgICAgICAgICAgICAidmFsdWUgPSBlZ2dzIiwKKyAgICAgICAgXSkKKworCisgICAgZGVmIHRlc3RfZXhjZXB0aW9uX3ZhbHVlX2NyYXNoKHNlbGYpOgorICAgICAgICAjIFRoZXJlIHVzZWQgdG8gYmUgYSByZWZjb3VudCBlcnJvciB3aGVuIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgICAgIyBzdG9yZWQgaW4gdGhlIFN0b3BJdGVyYXRpb24gaGFzIGEgcmVmY291bnQgb2YgMS4KKyAgICAgICAgZGVmIGcxKCk6CisgICAgICAgICAgICB5aWVsZCBmcm9tIGcyKCkKKyAgICAgICAgZGVmIGcyKCk6CisgICAgICAgICAgICB5aWVsZCAiZzIiCisgICAgICAgICAgICByZXR1cm4gWzQyXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoZzEoKSksIFsiZzIiXSkKKworCisgICAgZGVmIHRlc3RfZ2VuZXJhdG9yX3JldHVybl92YWx1ZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgZ2VuZXJhdG9yIHJldHVybiB2YWx1ZQorICAgICAgICAiIiIKKyAgICAgICAgdHJhY2UgPSBbXQorICAgICAgICBkZWYgZzEoKToKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiU3RhcnRpbmcgZzEiKQorICAgICAgICAgICAgeWllbGQgImcxIGhhbSIKKyAgICAgICAgICAgIHJldCA9IHlpZWxkIGZyb20gZzIoKQorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnMiByZXR1cm5lZCAlcyIgJSAocmV0LCkpCisgICAgICAgICAgICByZXQgPSB5aWVsZCBmcm9tIGcyKDQyKQorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnMiByZXR1cm5lZCAlcyIgJSAocmV0LCkpCisgICAgICAgICAgICB5aWVsZCAiZzEgZWdncyIKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRmluaXNoaW5nIGcxIikKKyAgICAgICAgZGVmIGcyKHYgPSBOb25lKToKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiU3RhcnRpbmcgZzIiKQorICAgICAgICAgICAgeWllbGQgImcyIHNwYW0iCisgICAgICAgICAgICB5aWVsZCAiZzIgbW9yZSBzcGFtIgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJGaW5pc2hpbmcgZzIiKQorICAgICAgICAgICAgaWYgdjoKKyAgICAgICAgICAgICAgICByZXR1cm4gdgorICAgICAgICBmb3IgeCBpbiBnMSgpOgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJZaWVsZGVkICVzIiAlICh4LCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgIlN0YXJ0aW5nIGcxIiwKKyAgICAgICAgICAgICJZaWVsZGVkIGcxIGhhbSIsCisgICAgICAgICAgICAiU3RhcnRpbmcgZzIiLAorICAgICAgICAgICAgIllpZWxkZWQgZzIgc3BhbSIsCisgICAgICAgICAgICAiWWllbGRlZCBnMiBtb3JlIHNwYW0iLAorICAgICAgICAgICAgIkZpbmlzaGluZyBnMiIsCisgICAgICAgICAgICAiZzIgcmV0dXJuZWQgTm9uZSIsCisgICAgICAgICAgICAiU3RhcnRpbmcgZzIiLAorICAgICAgICAgICAgIllpZWxkZWQgZzIgc3BhbSIsCisgICAgICAgICAgICAiWWllbGRlZCBnMiBtb3JlIHNwYW0iLAorICAgICAgICAgICAgIkZpbmlzaGluZyBnMiIsCisgICAgICAgICAgICAiZzIgcmV0dXJuZWQgNDIiLAorICAgICAgICAgICAgIllpZWxkZWQgZzEgZWdncyIsCisgICAgICAgICAgICAiRmluaXNoaW5nIGcxIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2RlbGVnYXRpb25fb2ZfbmV4dF90b19ub25fZ2VuZXJhdG9yKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCBkZWxlZ2F0aW9uIG9mIG5leHQoKSB0byBub24tZ2VuZXJhdG9yCisgICAgICAgICIiIgorICAgICAgICB0cmFjZSA9IFtdCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICB5aWVsZCBmcm9tIHJhbmdlKDMpCisgICAgICAgIGZvciB4IGluIGcoKToKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiWWllbGRlZCAlcyIgJSAoeCwpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYWNlLFsKKyAgICAgICAgICAgICJZaWVsZGVkIDAiLAorICAgICAgICAgICAgIllpZWxkZWQgMSIsCisgICAgICAgICAgICAiWWllbGRlZCAyIiwKKyAgICAgICAgXSkKKworCisgICAgZGVmIHRlc3RfY29udmVyc2lvbl9vZl9zZW5kTm9uZV90b19uZXh0KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCBjb252ZXJzaW9uIG9mIHNlbmQoTm9uZSkgdG8gbmV4dCgpCisgICAgICAgICIiIgorICAgICAgICB0cmFjZSA9IFtdCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICB5aWVsZCBmcm9tIHJhbmdlKDMpCisgICAgICAgIGdpID0gZygpCisgICAgICAgIGZvciB4IGluIHJhbmdlKDMpOgorICAgICAgICAgICAgeSA9IGdpLnNlbmQoTm9uZSkKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiWWllbGRlZDogJXMiICUgKHksKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFjZSxbCisgICAgICAgICAgICAiWWllbGRlZDogMCIsCisgICAgICAgICAgICAiWWllbGRlZDogMSIsCisgICAgICAgICAgICAiWWllbGRlZDogMiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9kZWxlZ2F0aW9uX29mX2Nsb3NlX3RvX25vbl9nZW5lcmF0b3Ioc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IGRlbGVnYXRpb24gb2YgY2xvc2UoKSB0byBub24tZ2VuZXJhdG9yCisgICAgICAgICIiIgorICAgICAgICB0cmFjZSA9IFtdCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJzdGFydGluZyBnIikKKyAgICAgICAgICAgICAgICB5aWVsZCBmcm9tIHJhbmdlKDMpCisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnIHNob3VsZCBub3QgYmUgaGVyZSIpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiZmluaXNoaW5nIGciKQorICAgICAgICBnaSA9IGcoKQorICAgICAgICBuZXh0KGdpKQorICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZGVycigpIGFzIG91dHB1dDoKKyAgICAgICAgICAgIGdpLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXRwdXQuZ2V0dmFsdWUoKSwgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgInN0YXJ0aW5nIGciLAorICAgICAgICAgICAgImZpbmlzaGluZyBnIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2RlbGVnYXRpbmdfdGhyb3dfdG9fbm9uX2dlbmVyYXRvcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgZGVsZWdhdGluZyAndGhyb3cnIHRvIG5vbi1nZW5lcmF0b3IKKyAgICAgICAgIiIiCisgICAgICAgIHRyYWNlID0gW10KKyAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIlN0YXJ0aW5nIGciKQorICAgICAgICAgICAgICAgIHlpZWxkIGZyb20gcmFuZ2UoMTApCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRmluaXNoaW5nIGciKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBnaSA9IGcoKQorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoNSk6CisgICAgICAgICAgICAgICAgeCA9IG5leHQoZ2kpCisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJZaWVsZGVkICVzIiAlICh4LCkpCisgICAgICAgICAgICBlID0gVmFsdWVFcnJvcigidG9tYXRvIGVqZWN0ZWQiKQorICAgICAgICAgICAgZ2kudGhyb3coZSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hcmdzWzBdLCJ0b21hdG8gZWplY3RlZCIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoInN1YmdlbmVyYXRvciBmYWlsZWQgdG8gcmFpc2UgVmFsdWVFcnJvciIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgIlN0YXJ0aW5nIGciLAorICAgICAgICAgICAgIllpZWxkZWQgMCIsCisgICAgICAgICAgICAiWWllbGRlZCAxIiwKKyAgICAgICAgICAgICJZaWVsZGVkIDIiLAorICAgICAgICAgICAgIllpZWxkZWQgMyIsCisgICAgICAgICAgICAiWWllbGRlZCA0IiwKKyAgICAgICAgICAgICJGaW5pc2hpbmcgZyIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9hdHRlbXB0aW5nX3RvX3NlbmRfdG9fbm9uX2dlbmVyYXRvcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgYXR0ZW1wdGluZyB0byBzZW5kIHRvIG5vbi1nZW5lcmF0b3IKKyAgICAgICAgIiIiCisgICAgICAgIHRyYWNlID0gW10KKyAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoInN0YXJ0aW5nIGciKQorICAgICAgICAgICAgICAgIHlpZWxkIGZyb20gcmFuZ2UoMykKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcgc2hvdWxkIG5vdCBiZSBoZXJlIikKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJmaW5pc2hpbmcgZyIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGdpID0gZygpCisgICAgICAgICAgICBuZXh0KGdpKQorICAgICAgICAgICAgZm9yIHggaW4gcmFuZ2UoMyk6CisgICAgICAgICAgICAgICAgeSA9IGdpLnNlbmQoNDIpCisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTaG91bGQgbm90IGhhdmUgeWllbGRlZDoiLCB5KQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3IgYXMgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oInNlbmQiLCBlLmFyZ3NbMF0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoIndhcyBhYmxlIHRvIHNlbmQgaW50byBub24tZ2VuZXJhdG9yIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFjZSxbCisgICAgICAgICAgICAic3RhcnRpbmcgZyIsCisgICAgICAgICAgICAiZmluaXNoaW5nIGciLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfYnJva2VuX2dldGF0dHJfaGFuZGxpbmcoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHN1Yml0ZXJhdG9yIHdpdGggYSBicm9rZW4gZ2V0YXR0ciBpbXBsZW1lbnRhdGlvbgorICAgICAgICAiIiIKKyAgICAgICAgY2xhc3MgQnJva2VuOgorICAgICAgICAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICAgICBkZWYgX19uZXh0X18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBhdHRyKToKKyAgICAgICAgICAgICAgICAxLzAKKworICAgICAgICBkZWYgZygpOgorICAgICAgICAgICAgeWllbGQgZnJvbSBCcm9rZW4oKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgorICAgICAgICAgICAgZ2kgPSBnKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChnaSksIDEpCisgICAgICAgICAgICBnaS5zZW5kKDEpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhaZXJvRGl2aXNpb25FcnJvcik6CisgICAgICAgICAgICBnaSA9IGcoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXh0KGdpKSwgMSkKKyAgICAgICAgICAgIGdpLnRocm93KEF0dHJpYnV0ZUVycm9yKQorCisgICAgICAgIHdpdGggY2FwdHVyZWRfc3RkZXJyKCkgYXMgb3V0cHV0OgorICAgICAgICAgICAgZ2kgPSBnKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChnaSksIDEpCisgICAgICAgICAgICBnaS5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1plcm9EaXZpc2lvbkVycm9yJywgb3V0cHV0LmdldHZhbHVlKCkpCisKKyAgICBkZWYgdGVzdF9leGNlcHRpb25faW5faW5pdGlhbF9uZXh0X2NhbGwoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IGV4Y2VwdGlvbiBpbiBpbml0aWFsIG5leHQoKSBjYWxsCisgICAgICAgICIiIgorICAgICAgICB0cmFjZSA9IFtdCisgICAgICAgIGRlZiBnMSgpOgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnMSBhYm91dCB0byB5aWVsZCBmcm9tIGcyIikKKyAgICAgICAgICAgIHlpZWxkIGZyb20gZzIoKQorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnMSBzaG91bGQgbm90IGJlIGhlcmUiKQorICAgICAgICBkZWYgZzIoKToKKyAgICAgICAgICAgIHlpZWxkIDEvMAorICAgICAgICBkZWYgcnVuKCk6CisgICAgICAgICAgICBnaSA9IGcxKCkKKyAgICAgICAgICAgIG5leHQoZ2kpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFplcm9EaXZpc2lvbkVycm9yLHJ1bikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFjZSxbCisgICAgICAgICAgICAiZzEgYWJvdXQgdG8geWllbGQgZnJvbSBnMiIKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X2F0dGVtcHRlZF95aWVsZF9mcm9tX2xvb3Aoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IGF0dGVtcHRlZCB5aWVsZC1mcm9tIGxvb3AKKyAgICAgICAgIiIiCisgICAgICAgIHRyYWNlID0gW10KKyAgICAgICAgZGVmIGcxKCk6CisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcxOiBzdGFydGluZyIpCisgICAgICAgICAgICB5aWVsZCAieTEiCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcxOiBhYm91dCB0byB5aWVsZCBmcm9tIGcyIikKKyAgICAgICAgICAgIHlpZWxkIGZyb20gZzIoKQorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnMSBzaG91bGQgbm90IGJlIGhlcmUiKQorCisgICAgICAgIGRlZiBnMigpOgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnMjogc3RhcnRpbmciKQorICAgICAgICAgICAgeWllbGQgInkyIgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnMjogYWJvdXQgdG8geWllbGQgZnJvbSBnMSIpCisgICAgICAgICAgICB5aWVsZCBmcm9tIGdpCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcyIHNob3VsZCBub3QgYmUgaGVyZSIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGdpID0gZzEoKQorICAgICAgICAgICAgZm9yIHkgaW4gZ2k6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJZaWVsZGVkOiAlcyIgJSAoeSwpKQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmFyZ3NbMF0sImdlbmVyYXRvciBhbHJlYWR5IGV4ZWN1dGluZyIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoInN1YmdlbmVyYXRvciBkaWRuJ3QgcmFpc2UgVmFsdWVFcnJvciIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgImcxOiBzdGFydGluZyIsCisgICAgICAgICAgICAiWWllbGRlZDogeTEiLAorICAgICAgICAgICAgImcxOiBhYm91dCB0byB5aWVsZCBmcm9tIGcyIiwKKyAgICAgICAgICAgICJnMjogc3RhcnRpbmciLAorICAgICAgICAgICAgIllpZWxkZWQ6IHkyIiwKKyAgICAgICAgICAgICJnMjogYWJvdXQgdG8geWllbGQgZnJvbSBnMSIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9yZXR1cm5pbmdfdmFsdWVfZnJvbV9kZWxlZ2F0ZWRfdGhyb3coc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHJldHVybmluZyB2YWx1ZSBmcm9tIGRlbGVnYXRlZCAndGhyb3cnCisgICAgICAgICIiIgorICAgICAgICB0cmFjZSA9IFtdCisgICAgICAgIGRlZiBnMSgpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiU3RhcnRpbmcgZzEiKQorICAgICAgICAgICAgICAgIHlpZWxkICJnMSBoYW0iCisgICAgICAgICAgICAgICAgeWllbGQgZnJvbSBnMigpCisgICAgICAgICAgICAgICAgeWllbGQgImcxIGVnZ3MiCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRmluaXNoaW5nIGcxIikKKyAgICAgICAgZGVmIGcyKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJTdGFydGluZyBnMiIpCisgICAgICAgICAgICAgICAgeWllbGQgImcyIHNwYW0iCisgICAgICAgICAgICAgICAgeWllbGQgImcyIG1vcmUgc3BhbSIKKyAgICAgICAgICAgIGV4Y2VwdCBMdW5jaEVycm9yOgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiQ2F1Z2h0IEx1bmNoRXJyb3IgaW4gZzIiKQorICAgICAgICAgICAgICAgIHlpZWxkICJnMiBsdW5jaCBzYXZlZCIKKyAgICAgICAgICAgICAgICB5aWVsZCAiZzIgeWV0IG1vcmUgc3BhbSIKKyAgICAgICAgY2xhc3MgTHVuY2hFcnJvcihFeGNlcHRpb24pOgorICAgICAgICAgICAgcGFzcworICAgICAgICBnID0gZzEoKQorICAgICAgICBmb3IgaSBpbiByYW5nZSgyKToKKyAgICAgICAgICAgIHggPSBuZXh0KGcpCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIllpZWxkZWQgJXMiICUgKHgsKSkKKyAgICAgICAgZSA9IEx1bmNoRXJyb3IoInRvbWF0byBlamVjdGVkIikKKyAgICAgICAgZy50aHJvdyhlKQorICAgICAgICBmb3IgeCBpbiBnOgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJZaWVsZGVkICVzIiAlICh4LCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgIlN0YXJ0aW5nIGcxIiwKKyAgICAgICAgICAgICJZaWVsZGVkIGcxIGhhbSIsCisgICAgICAgICAgICAiU3RhcnRpbmcgZzIiLAorICAgICAgICAgICAgIllpZWxkZWQgZzIgc3BhbSIsCisgICAgICAgICAgICAiQ2F1Z2h0IEx1bmNoRXJyb3IgaW4gZzIiLAorICAgICAgICAgICAgIllpZWxkZWQgZzIgeWV0IG1vcmUgc3BhbSIsCisgICAgICAgICAgICAiWWllbGRlZCBnMSBlZ2dzIiwKKyAgICAgICAgICAgICJGaW5pc2hpbmcgZzEiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfbmV4dF9hbmRfcmV0dXJuX3dpdGhfdmFsdWUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IG5leHQgYW5kIHJldHVybiB3aXRoIHZhbHVlCisgICAgICAgICIiIgorICAgICAgICB0cmFjZSA9IFtdCisgICAgICAgIGRlZiBmKHIpOgorICAgICAgICAgICAgZ2kgPSBnKHIpCisgICAgICAgICAgICBuZXh0KGdpKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiZiByZXN1bWluZyBnIikKKyAgICAgICAgICAgICAgICBuZXh0KGdpKQorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiZiBTSE9VTEQgTk9UIEJFIEhFUkUiKQorICAgICAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb24gYXMgZToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImYgY2F1Z2h0ICVzIiAlIChyZXByKGUpLCkpCisgICAgICAgIGRlZiBnKHIpOgorICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJnIHN0YXJ0aW5nIikKKyAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcgcmV0dXJuaW5nICVzIiAlIChyLCkpCisgICAgICAgICAgICByZXR1cm4gcgorICAgICAgICBmKE5vbmUpCisgICAgICAgIGYoNDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgImcgc3RhcnRpbmciLAorICAgICAgICAgICAgImYgcmVzdW1pbmcgZyIsCisgICAgICAgICAgICAiZyByZXR1cm5pbmcgTm9uZSIsCisgICAgICAgICAgICAiZiBjYXVnaHQgU3RvcEl0ZXJhdGlvbigpIiwKKyAgICAgICAgICAgICJnIHN0YXJ0aW5nIiwKKyAgICAgICAgICAgICJmIHJlc3VtaW5nIGciLAorICAgICAgICAgICAgImcgcmV0dXJuaW5nIDQyIiwKKyAgICAgICAgICAgICJmIGNhdWdodCBTdG9wSXRlcmF0aW9uKDQyLCkiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3Rfc2VuZF9hbmRfcmV0dXJuX3dpdGhfdmFsdWUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHNlbmQgYW5kIHJldHVybiB3aXRoIHZhbHVlCisgICAgICAgICIiIgorICAgICAgICB0cmFjZSA9IFtdCisgICAgICAgIGRlZiBmKHIpOgorICAgICAgICAgICAgZ2kgPSBnKHIpCisgICAgICAgICAgICBuZXh0KGdpKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiZiBzZW5kaW5nIHNwYW0gdG8gZyIpCisgICAgICAgICAgICAgICAgZ2kuc2VuZCgic3BhbSIpCisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJmIFNIT1VMRCBOT1QgQkUgSEVSRSIpCisgICAgICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiZiBjYXVnaHQgJXIiICUgKGUsKSkKKyAgICAgICAgZGVmIGcocik6CisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcgc3RhcnRpbmciKQorICAgICAgICAgICAgeCA9IHlpZWxkCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImcgcmVjZWl2ZWQgJXMiICUgKHgsKSkKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiZyByZXR1cm5pbmcgJXMiICUgKHIsKSkKKyAgICAgICAgICAgIHJldHVybiByCisgICAgICAgIGYoTm9uZSkKKyAgICAgICAgZig0MikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFjZSxbCisgICAgICAgICAgICAiZyBzdGFydGluZyIsCisgICAgICAgICAgICAiZiBzZW5kaW5nIHNwYW0gdG8gZyIsCisgICAgICAgICAgICAiZyByZWNlaXZlZCBzcGFtIiwKKyAgICAgICAgICAgICJnIHJldHVybmluZyBOb25lIiwKKyAgICAgICAgICAgICJmIGNhdWdodCBTdG9wSXRlcmF0aW9uKCkiLAorICAgICAgICAgICAgImcgc3RhcnRpbmciLAorICAgICAgICAgICAgImYgc2VuZGluZyBzcGFtIHRvIGciLAorICAgICAgICAgICAgImcgcmVjZWl2ZWQgc3BhbSIsCisgICAgICAgICAgICAiZyByZXR1cm5pbmcgNDIiLAorICAgICAgICAgICAgImYgY2F1Z2h0IFN0b3BJdGVyYXRpb24oNDIsKSIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF9jYXRjaGluZ19leGNlcHRpb25fZnJvbV9zdWJnZW5fYW5kX3JldHVybmluZyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgY2F0Y2hpbmcgYW4gZXhjZXB0aW9uIHRocm93biBpbnRvIGEKKyAgICAgICAgc3ViZ2VuZXJhdG9yIGFuZCByZXR1cm5pbmcgYSB2YWx1ZQorICAgICAgICAiIiIKKyAgICAgICAgdHJhY2UgPSBbXQorICAgICAgICBkZWYgaW5uZXIoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB5aWVsZCAxCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImlubmVyIGNhdWdodCBWYWx1ZUVycm9yIikKKyAgICAgICAgICAgIHJldHVybiAyCisKKyAgICAgICAgZGVmIG91dGVyKCk6CisgICAgICAgICAgICB2ID0geWllbGQgZnJvbSBpbm5lcigpCisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoImlubmVyIHJldHVybmVkICVyIHRvIG91dGVyIiAlIHYpCisgICAgICAgICAgICB5aWVsZCB2CisgICAgICAgIGcgPSBvdXRlcigpCisgICAgICAgIHRyYWNlLmFwcGVuZChuZXh0KGcpKQorICAgICAgICB0cmFjZS5hcHBlbmQoZy50aHJvdyhWYWx1ZUVycm9yKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFjZSxbCisgICAgICAgICAgICAxLAorICAgICAgICAgICAgImlubmVyIGNhdWdodCBWYWx1ZUVycm9yIiwKKyAgICAgICAgICAgICJpbm5lciByZXR1cm5lZCAyIHRvIG91dGVyIiwKKyAgICAgICAgICAgIDIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF90aHJvd2luZ19HZW5lcmF0b3JFeGl0X2ludG9fc3ViZ2VuX3RoYXRfcmV0dXJucyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRlc3QgdGhyb3dpbmcgR2VuZXJhdG9yRXhpdCBpbnRvIGEgc3ViZ2VuZXJhdG9yIHRoYXQKKyAgICAgICAgY2F0Y2hlcyBpdCBhbmQgcmV0dXJucyBub3JtYWxseS4KKyAgICAgICAgIiIiCisgICAgICAgIHRyYWNlID0gW10KKyAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkVudGVyIGYiKQorICAgICAgICAgICAgICAgIHlpZWxkCisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJFeGl0IGYiKQorICAgICAgICAgICAgZXhjZXB0IEdlbmVyYXRvckV4aXQ6CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkVudGVyIGciKQorICAgICAgICAgICAgeWllbGQgZnJvbSBmKCkKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRXhpdCBnIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZ2kgPSBnKCkKKyAgICAgICAgICAgIG5leHQoZ2kpCisgICAgICAgICAgICBnaS50aHJvdyhHZW5lcmF0b3JFeGl0KQorICAgICAgICBleGNlcHQgR2VuZXJhdG9yRXhpdDoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgic3ViZ2VuZXJhdG9yIGZhaWxlZCB0byByYWlzZSBHZW5lcmF0b3JFeGl0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0cmFjZSxbCisgICAgICAgICAgICAiRW50ZXIgZyIsCisgICAgICAgICAgICAiRW50ZXIgZiIsCisgICAgICAgIF0pCisKKyAgICBkZWYgdGVzdF90aHJvd2luZ19HZW5lcmF0b3JFeGl0X2ludG9fc3ViZ2VuZXJhdG9yX3RoYXRfeWllbGRzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCB0aHJvd2luZyBHZW5lcmF0b3JFeGl0IGludG8gYSBzdWJnZW5lcmF0b3IgdGhhdAorICAgICAgICBjYXRjaGVzIGl0IGFuZCB5aWVsZHMuCisgICAgICAgICIiIgorICAgICAgICB0cmFjZSA9IFtdCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJFbnRlciBmIikKKyAgICAgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRXhpdCBmIikKKyAgICAgICAgICAgIGV4Y2VwdCBHZW5lcmF0b3JFeGl0OgorICAgICAgICAgICAgICAgIHlpZWxkCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkVudGVyIGciKQorICAgICAgICAgICAgeWllbGQgZnJvbSBmKCkKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRXhpdCBnIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZ2kgPSBnKCkKKyAgICAgICAgICAgIG5leHQoZ2kpCisgICAgICAgICAgICBnaS50aHJvdyhHZW5lcmF0b3JFeGl0KQorICAgICAgICBleGNlcHQgUnVudGltZUVycm9yIGFzIGU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUuYXJnc1swXSwgImdlbmVyYXRvciBpZ25vcmVkIEdlbmVyYXRvckV4aXQiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCJzdWJnZW5lcmF0b3IgZmFpbGVkIHRvIHJhaXNlIEdlbmVyYXRvckV4aXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYWNlLFsKKyAgICAgICAgICAgICJFbnRlciBnIiwKKyAgICAgICAgICAgICJFbnRlciBmIiwKKyAgICAgICAgXSkKKworICAgIGRlZiB0ZXN0X3Rocm93aW5nX0dlbmVyYXRvckV4aXRfaW50b19zdWJnZW5fdGhhdF9yYWlzZXMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHRocm93aW5nIEdlbmVyYXRvckV4aXQgaW50byBhIHN1YmdlbmVyYXRvciB0aGF0CisgICAgICAgIGNhdGNoZXMgaXQgYW5kIHJhaXNlcyBhIGRpZmZlcmVudCBleGNlcHRpb24uCisgICAgICAgICIiIgorICAgICAgICB0cmFjZSA9IFtdCisgICAgICAgIGRlZiBmKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdHJhY2UuYXBwZW5kKCJFbnRlciBmIikKKyAgICAgICAgICAgICAgICB5aWVsZAorICAgICAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRXhpdCBmIikKKyAgICAgICAgICAgIGV4Y2VwdCBHZW5lcmF0b3JFeGl0OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlZvcnBhbCBidW5ueSBlbmNvdW50ZXJlZCIpCisgICAgICAgIGRlZiBnKCk6CisgICAgICAgICAgICB0cmFjZS5hcHBlbmQoIkVudGVyIGciKQorICAgICAgICAgICAgeWllbGQgZnJvbSBmKCkKKyAgICAgICAgICAgIHRyYWNlLmFwcGVuZCgiRXhpdCBnIikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZ2kgPSBnKCkKKyAgICAgICAgICAgIG5leHQoZ2kpCisgICAgICAgICAgICBnaS50aHJvdyhHZW5lcmF0b3JFeGl0KQorICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmFyZ3NbMF0sICJWb3JwYWwgYnVubnkgZW5jb3VudGVyZWQiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGUuX19jb250ZXh0X18sIEdlbmVyYXRvckV4aXQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoInN1YmdlbmVyYXRvciBmYWlsZWQgdG8gcmFpc2UgVmFsdWVFcnJvciIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhY2UsWworICAgICAgICAgICAgIkVudGVyIGciLAorICAgICAgICAgICAgIkVudGVyIGYiLAorICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfeWllbGRfZnJvbV9lbXB0eShzZWxmKToKKyAgICAgICAgZGVmIGcoKToKKyAgICAgICAgICAgIHlpZWxkIGZyb20gKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgbmV4dCwgZygpKQorCisgICAgZGVmIHRlc3RfZGVsZWdhdGluZ19nZW5lcmF0b3JzX2NsYWltX3RvX2JlX3J1bm5pbmcoc2VsZik6CisgICAgICAgICMgQ2hlY2sgd2l0aCBiYXNpYyBpdGVyYXRpb24KKyAgICAgICAgZGVmIG9uZSgpOgorICAgICAgICAgICAgeWllbGQgMAorICAgICAgICAgICAgeWllbGQgZnJvbSB0d28oKQorICAgICAgICAgICAgeWllbGQgMworICAgICAgICBkZWYgdHdvKCk6CisgICAgICAgICAgICB5aWVsZCAxCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgeWllbGQgZnJvbSBnMQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgeWllbGQgMgorICAgICAgICBnMSA9IG9uZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChnMSksIFswLCAxLCAyLCAzXSkKKyAgICAgICAgIyBDaGVjayB3aXRoIHNlbmQKKyAgICAgICAgZzEgPSBvbmUoKQorICAgICAgICByZXMgPSBbbmV4dChnMSldCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZChnMS5zZW5kKDQyKSkKKyAgICAgICAgZXhjZXB0IFN0b3BJdGVyYXRpb246CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzLCBbMCwgMSwgMiwgM10pCisgICAgICAgICMgQ2hlY2sgd2l0aCB0aHJvdworICAgICAgICBjbGFzcyBNeUVycihFeGNlcHRpb24pOgorICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgb25lKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgeWllbGQgMAorICAgICAgICAgICAgZXhjZXB0IE15RXJyOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHlpZWxkIGZyb20gdHdvKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB5aWVsZCAzCisgICAgICAgICAgICBleGNlcHQgTXlFcnI6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBkZWYgdHdvKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgeWllbGQgMQorICAgICAgICAgICAgZXhjZXB0IE15RXJyOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB5aWVsZCBmcm9tIGcxCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgeWllbGQgMgorICAgICAgICAgICAgZXhjZXB0IE15RXJyOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZzEgPSBvbmUoKQorICAgICAgICByZXMgPSBbbmV4dChnMSldCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgcmVzLmFwcGVuZChnMS50aHJvdyhNeUVycikpCisgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgcGFzcworICAgICAgICAjIENoZWNrIHdpdGggY2xvc2UKKyAgICAgICAgY2xhc3MgTXlJdChvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICAgICBkZWYgX19uZXh0X18oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIDQyCisgICAgICAgICAgICBkZWYgY2xvc2Uoc2VsZl8pOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShnMS5naV9ydW5uaW5nKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIG5leHQsIGcxKQorICAgICAgICBkZWYgb25lKCk6CisgICAgICAgICAgICB5aWVsZCBmcm9tIE15SXQoKQorICAgICAgICBnMSA9IG9uZSgpCisgICAgICAgIG5leHQoZzEpCisgICAgICAgIGcxLmNsb3NlKCkKKworICAgIGRlZiB0ZXN0X2RlbGVnYXRvcl9pc192aXNpYmxlX3RvX2RlYnVnZ2VyKHNlbGYpOgorICAgICAgICBkZWYgY2FsbF9zdGFjaygpOgorICAgICAgICAgICAgcmV0dXJuIFtmWzNdIGZvciBmIGluIGluc3BlY3Quc3RhY2soKV0KKworICAgICAgICBkZWYgZ2VuKCk6CisgICAgICAgICAgICB5aWVsZCBjYWxsX3N0YWNrKCkKKyAgICAgICAgICAgIHlpZWxkIGNhbGxfc3RhY2soKQorICAgICAgICAgICAgeWllbGQgY2FsbF9zdGFjaygpCisKKyAgICAgICAgZGVmIHNwYW0oZyk6CisgICAgICAgICAgICB5aWVsZCBmcm9tIGcKKworICAgICAgICBkZWYgZWdncyhnKToKKyAgICAgICAgICAgIHlpZWxkIGZyb20gZworCisgICAgICAgIGZvciBzdGFjayBpbiBzcGFtKGdlbigpKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnc3BhbScgaW4gc3RhY2spCisKKyAgICAgICAgZm9yIHN0YWNrIGluIHNwYW0oZWdncyhnZW4oKSkpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdzcGFtJyBpbiBzdGFjayBhbmQgJ2VnZ3MnIGluIHN0YWNrKQorCisKK2RlZiB0ZXN0X21haW4oKToKKyAgICBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKKyAgICB0ZXN0X2NsYXNzZXMgPSBbVGVzdFBFUDM4ME9wZXJhdGlvbl0KKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgqdGVzdF9jbGFzc2VzKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdGVzdF9tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcGlja2xlLnB5IGIvTGliL3Rlc3QvdGVzdF9waWNrbGUucHkKaW5kZXggOWRhMmNhZS4uZjUyZDRiZCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9waWNrbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9waWNrbGUucHkKQEAgLTEsNSArMSw2IEBACiBpbXBvcnQgcGlja2xlCiBpbXBvcnQgaW8KK2ltcG9ydCBjb2xsZWN0aW9ucwogCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIApAQCAtNyw2ICs4LDcgQEAKIGZyb20gdGVzdC5waWNrbGV0ZXN0ZXIgaW1wb3J0IEFic3RyYWN0UGlja2xlTW9kdWxlVGVzdHMKIGZyb20gdGVzdC5waWNrbGV0ZXN0ZXIgaW1wb3J0IEFic3RyYWN0UGVyc2lzdGVudFBpY2tsZXJUZXN0cwogZnJvbSB0ZXN0LnBpY2tsZXRlc3RlciBpbXBvcnQgQWJzdHJhY3RQaWNrbGVyVW5waWNrbGVyT2JqZWN0VGVzdHMKK2Zyb20gdGVzdC5waWNrbGV0ZXN0ZXIgaW1wb3J0IEFic3RyYWN0RGlzcGF0Y2hUYWJsZVRlc3RzCiBmcm9tIHRlc3QucGlja2xldGVzdGVyIGltcG9ydCBCaWdtZW1QaWNrbGVUZXN0cwogCiB0cnk6CkBAIC04MCw2ICs4MiwxOCBAQAogICAgIHVucGlja2xlcl9jbGFzcyA9IHBpY2tsZS5fVW5waWNrbGVyCiAKIAorY2xhc3MgUHlEaXNwYXRjaFRhYmxlVGVzdHMoQWJzdHJhY3REaXNwYXRjaFRhYmxlVGVzdHMpOgorICAgIHBpY2tsZXJfY2xhc3MgPSBwaWNrbGUuX1BpY2tsZXIKKyAgICBkZWYgZ2V0X2Rpc3BhdGNoX3RhYmxlKHNlbGYpOgorICAgICAgICByZXR1cm4gcGlja2xlLmRpc3BhdGNoX3RhYmxlLmNvcHkoKQorCisKK2NsYXNzIFB5Q2hhaW5EaXNwYXRjaFRhYmxlVGVzdHMoQWJzdHJhY3REaXNwYXRjaFRhYmxlVGVzdHMpOgorICAgIHBpY2tsZXJfY2xhc3MgPSBwaWNrbGUuX1BpY2tsZXIKKyAgICBkZWYgZ2V0X2Rpc3BhdGNoX3RhYmxlKHNlbGYpOgorICAgICAgICByZXR1cm4gY29sbGVjdGlvbnMuQ2hhaW5NYXAoe30sIHBpY2tsZS5kaXNwYXRjaF90YWJsZSkKKworCiBpZiBoYXNfY19pbXBsZW1lbnRhdGlvbjoKICAgICBjbGFzcyBDUGlja2xlclRlc3RzKFB5UGlja2xlclRlc3RzKToKICAgICAgICAgcGlja2xlciA9IF9waWNrbGUuUGlja2xlcgpAQCAtMTAxLDE0ICsxMTUsMjYgQEAKICAgICAgICAgcGlja2xlcl9jbGFzcyA9IF9waWNrbGUuUGlja2xlcgogICAgICAgICB1bnBpY2tsZXJfY2xhc3MgPSBfcGlja2xlLlVucGlja2xlcgogCisgICAgY2xhc3MgQ0Rpc3BhdGNoVGFibGVUZXN0cyhBYnN0cmFjdERpc3BhdGNoVGFibGVUZXN0cyk6CisgICAgICAgIHBpY2tsZXJfY2xhc3MgPSBwaWNrbGUuUGlja2xlcgorICAgICAgICBkZWYgZ2V0X2Rpc3BhdGNoX3RhYmxlKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHBpY2tsZS5kaXNwYXRjaF90YWJsZS5jb3B5KCkKKworICAgIGNsYXNzIENDaGFpbkRpc3BhdGNoVGFibGVUZXN0cyhBYnN0cmFjdERpc3BhdGNoVGFibGVUZXN0cyk6CisgICAgICAgIHBpY2tsZXJfY2xhc3MgPSBwaWNrbGUuUGlja2xlcgorICAgICAgICBkZWYgZ2V0X2Rpc3BhdGNoX3RhYmxlKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25zLkNoYWluTWFwKHt9LCBwaWNrbGUuZGlzcGF0Y2hfdGFibGUpCisKIAogZGVmIHRlc3RfbWFpbigpOgotICAgIHRlc3RzID0gW1BpY2tsZVRlc3RzLCBQeVBpY2tsZXJUZXN0cywgUHlQZXJzUGlja2xlclRlc3RzXQorICAgIHRlc3RzID0gW1BpY2tsZVRlc3RzLCBQeVBpY2tsZXJUZXN0cywgUHlQZXJzUGlja2xlclRlc3RzLAorICAgICAgICAgICAgIFB5RGlzcGF0Y2hUYWJsZVRlc3RzLCBQeUNoYWluRGlzcGF0Y2hUYWJsZVRlc3RzXQogICAgIGlmIGhhc19jX2ltcGxlbWVudGF0aW9uOgogICAgICAgICB0ZXN0cy5leHRlbmQoW0NQaWNrbGVyVGVzdHMsIENQZXJzUGlja2xlclRlc3RzLAogICAgICAgICAgICAgICAgICAgICAgIENEdW1wUGlja2xlX0xvYWRQaWNrbGUsIER1bXBQaWNrbGVfQ0xvYWRQaWNrbGUsCiAgICAgICAgICAgICAgICAgICAgICAgUHlQaWNrbGVyVW5waWNrbGVyT2JqZWN0VGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgQ1BpY2tsZXJVbnBpY2tsZXJPYmplY3RUZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICBDRGlzcGF0Y2hUYWJsZVRlc3RzLCBDQ2hhaW5EaXNwYXRjaFRhYmxlVGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgSW5NZW1vcnlQaWNrbGVUZXN0c10pCiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoKnRlc3RzKQogICAgIHN1cHBvcnQucnVuX2RvY3Rlc3QocGlja2xlKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9waXBlcy5weSBiL0xpYi90ZXN0L3Rlc3RfcGlwZXMucHkKaW5kZXggZDViODg2Zi4uNmE3YjQ1ZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9waXBlcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BpcGVzLnB5CkBAIC03OSwyMSArNzksNiBAQAogICAgICAgICB3aXRoIG9wZW4oVEVTVEZOKSBhcyBmOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmLnJlYWQoKSwgZCkKIAotICAgIGRlZiB0ZXN0UXVvdGluZyhzZWxmKToKLSAgICAgICAgc2FmZXVucXVvdGVkID0gc3RyaW5nLmFzY2lpX2xldHRlcnMgKyBzdHJpbmcuZGlnaXRzICsgJ0AlXy0rPTosLi8nCi0gICAgICAgIHVuaWNvZGVfc2FtcGxlID0gJ1x4ZTlceGUwXHhkZicgICMgZSArIGFjdXRlIGFjY2VudCwgYSArIGdyYXZlLCBzaGFycCBzCi0gICAgICAgIHVuc2FmZSA9ICciYCRcXCEnICsgdW5pY29kZV9zYW1wbGUKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBpcGVzLnF1b3RlKCcnKSwgIicnIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwaXBlcy5xdW90ZShzYWZldW5xdW90ZWQpLCBzYWZldW5xdW90ZWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGlwZXMucXVvdGUoJ3Rlc3QgZmlsZSBuYW1lJyksICIndGVzdCBmaWxlIG5hbWUnIikKLSAgICAgICAgZm9yIHUgaW4gdW5zYWZlOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwaXBlcy5xdW90ZSgndGVzdCVzbmFtZScgJSB1KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIndGVzdCVzbmFtZSciICUgdSkKLSAgICAgICAgZm9yIHUgaW4gdW5zYWZlOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwaXBlcy5xdW90ZSgidGVzdCVzJ25hbWUnIiAlIHUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ3Rlc3QlcydcIidcIiduYW1lJ1wiJ1wiJyciICUgdSkKLQogICAgIGRlZiB0ZXN0UmVwcihzZWxmKToKICAgICAgICAgdCA9IHBpcGVzLlRlbXBsYXRlKCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKHQpLCAiPFRlbXBsYXRlIGluc3RhbmNlLCBzdGVwcz1bXT4iKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wa2cucHkgYi9MaWIvdGVzdC90ZXN0X3BrZy5weQppbmRleCBhNGRkYjE1Li4zNTVlZmU3IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BrZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BrZy5weQpAQCAtMjMsNiArMjMsOCBAQAogZGVmIGZpeGRpcihsc3QpOgogICAgIGlmICJfX2J1aWx0aW5zX18iIGluIGxzdDoKICAgICAgICAgbHN0LnJlbW92ZSgiX19idWlsdGluc19fIikKKyAgICBpZiAiX19pbml0aWFsaXppbmdfXyIgaW4gbHN0OgorICAgICAgICBsc3QucmVtb3ZlKCJfX2luaXRpYWxpemluZ19fIikKICAgICByZXR1cm4gbHN0CiAKIApAQCAtMTk2LDE0ICsxOTgsMTUgQEAKIAogICAgICAgICBpbXBvcnQgdDUKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaXhkaXIoZGlyKHQ1KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgWydfX2NhY2hlZF9fJywgJ19fZG9jX18nLCAnX19maWxlX18nLCAnX19uYW1lX18nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnX19wYWNrYWdlX18nLCAnX19wYXRoX18nLCAnZm9vJywgJ3N0cmluZycsICd0NSddKQorICAgICAgICAgICAgICAgICAgICAgICAgIFsnX19jYWNoZWRfXycsICdfX2RvY19fJywgJ19fZmlsZV9fJywgJ19fbG9hZGVyX18nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnX19uYW1lX18nLCAnX19wYWNrYWdlX18nLCAnX19wYXRoX18nLCAnZm9vJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmluZycsICd0NSddKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpeGRpcihkaXIodDUuZm9vKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgWydfX2NhY2hlZF9fJywgJ19fZG9jX18nLCAnX19maWxlX18nLCAnX19uYW1lX18nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnX19wYWNrYWdlX18nLCAnc3RyaW5nJ10pCisgICAgICAgICAgICAgICAgICAgICAgICAgWydfX2NhY2hlZF9fJywgJ19fZG9jX18nLCAnX19maWxlX18nLCAnX19sb2FkZXJfXycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdfX25hbWVfXycsICdfX3BhY2thZ2VfXycsICdzdHJpbmcnXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaXhkaXIoZGlyKHQ1LnN0cmluZykpLAotICAgICAgICAgICAgICAgICAgICAgICAgIFsnX19jYWNoZWRfXycsICdfX2RvY19fJywgJ19fZmlsZV9fJywgJ19fbmFtZV9fJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fcGFja2FnZV9fJywgJ3NwYW0nXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBbJ19fY2FjaGVkX18nLCAnX19kb2NfXycsICdfX2ZpbGVfXycsICdfX2xvYWRlcl9fJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fbmFtZV9fJywgJ19fcGFja2FnZV9fJywgJ3NwYW0nXSkKIAogICAgIGRlZiB0ZXN0XzYoc2VsZik6CiAgICAgICAgIGhpZXIgPSBbCkBAIC0yMTksMTQgKzIyMiwxNCBAQAogICAgICAgICBpbXBvcnQgdDYKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmaXhkaXIoZGlyKHQ2KSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgWydfX2FsbF9fJywgJ19fY2FjaGVkX18nLCAnX19kb2NfXycsICdfX2ZpbGVfXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdfX25hbWVfXycsICdfX3BhY2thZ2VfXycsICdfX3BhdGhfXyddKQorICAgICAgICAgICAgICAgICAgICAgICAgICAnX19sb2FkZXJfXycsICdfX25hbWVfXycsICdfX3BhY2thZ2VfXycsICdfX3BhdGhfXyddKQogICAgICAgICBzID0gIiIiCiAgICAgICAgICAgICBpbXBvcnQgdDYKICAgICAgICAgICAgIGZyb20gdDYgaW1wb3J0ICoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZml4ZGlyKGRpcih0NikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ19fYWxsX18nLCAnX19jYWNoZWRfXycsICdfX2RvY19fJywgJ19fZmlsZV9fJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfX25hbWVfXycsICdfX3BhY2thZ2VfXycsICdfX3BhdGhfXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWdncycsICdoYW0nLCAnc3BhbSddKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fbG9hZGVyX18nLCAnX19uYW1lX18nLCAnX19wYWNrYWdlX18nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fcGF0aF9fJywgJ2VnZ3MnLCAnaGFtJywgJ3NwYW0nXSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGlyKCksIFsnZWdncycsICdoYW0nLCAnc2VsZicsICdzcGFtJywgJ3Q2J10pCiAgICAgICAgICAgICAiIiIKICAgICAgICAgc2VsZi5ydW5fY29kZShzKQpAQCAtMjUyLDE5ICsyNTUsMTkgQEAKICAgICAgICAgdDcsIHN1Yiwgc3Vic3ViID0gTm9uZSwgTm9uZSwgTm9uZQogICAgICAgICBpbXBvcnQgdDcgYXMgdGFzCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZml4ZGlyKGRpcih0YXMpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBbJ19fY2FjaGVkX18nLCAnX19kb2NfXycsICdfX2ZpbGVfXycsICdfX25hbWVfXycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdfX3BhY2thZ2VfXycsICdfX3BhdGhfXyddKQorICAgICAgICAgICAgICAgICAgICAgICAgIFsnX19jYWNoZWRfXycsICdfX2RvY19fJywgJ19fZmlsZV9fJywgJ19fbG9hZGVyX18nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnX19uYW1lX18nLCAnX19wYWNrYWdlX18nLCAnX19wYXRoX18nXSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh0NykKICAgICAgICAgZnJvbSB0NyBpbXBvcnQgc3ViIGFzIHN1YnBhcgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpeGRpcihkaXIoc3VicGFyKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgWydfX2NhY2hlZF9fJywgJ19fZG9jX18nLCAnX19maWxlX18nLCAnX19uYW1lX18nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAnX19wYWNrYWdlX18nLCAnX19wYXRoX18nXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBbJ19fY2FjaGVkX18nLCAnX19kb2NfXycsICdfX2ZpbGVfXycsICdfX2xvYWRlcl9fJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ19fbmFtZV9fJywgJ19fcGFja2FnZV9fJywgJ19fcGF0aF9fJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UodDcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc3ViKQogICAgICAgICBmcm9tIHQ3LnN1YiBpbXBvcnQgc3Vic3ViIGFzIHN1YnN1YnN1YgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpeGRpcihkaXIoc3Vic3Vic3ViKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgWydfX2NhY2hlZF9fJywgJ19fZG9jX18nLCAnX19maWxlX18nLCAnX19uYW1lX18nLAotICAgICAgICAgICAgICAgICAgICAgICAgICdfX3BhY2thZ2VfXycsICdfX3BhdGhfXycsICdzcGFtJ10pCisgICAgICAgICAgICAgICAgICAgICAgICAgWydfX2NhY2hlZF9fJywgJ19fZG9jX18nLCAnX19maWxlX18nLCAnX19sb2FkZXJfXycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdfX25hbWVfXycsICdfX3BhY2thZ2VfXycsICdfX3BhdGhfXycsICdzcGFtJ10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UodDcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc3ViKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHN1YnN1YikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcGtnaW1wb3J0LnB5IGIvTGliL3Rlc3QvdGVzdF9wa2dpbXBvcnQucHkKaW5kZXggYzM3ZTkzNi4uYTg0MjZiNSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9wa2dpbXBvcnQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9wa2dpbXBvcnQucHkKQEAgLTcsNyArNyw3IEBACiBpbXBvcnQgdW5pdHRlc3QKIAogZnJvbSBpbXAgaW1wb3J0IGNhY2hlX2Zyb21fc291cmNlCi1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0Citmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0LCBjcmVhdGVfZW1wdHlfZmlsZQogCiBjbGFzcyBUZXN0SW1wb3J0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIApAQCAtMjksNyArMjksNyBAQAogICAgICAgICBzZWxmLnBhY2thZ2VfZGlyID0gb3MucGF0aC5qb2luKHNlbGYudGVzdF9kaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wYWNrYWdlX25hbWUpCiAgICAgICAgIG9zLm1rZGlyKHNlbGYucGFja2FnZV9kaXIpCi0gICAgICAgIG9wZW4ob3MucGF0aC5qb2luKHNlbGYucGFja2FnZV9kaXIsICdfX2luaXRfXy5weScpLCAndycpLmNsb3NlKCkKKyAgICAgICAgY3JlYXRlX2VtcHR5X2ZpbGUob3MucGF0aC5qb2luKHNlbGYucGFja2FnZV9kaXIsICdfX2luaXRfXy5weScpKQogICAgICAgICBzZWxmLm1vZHVsZV9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYucGFja2FnZV9kaXIsICdmb28ucHknKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wa2d1dGlsLnB5IGIvTGliL3Rlc3QvdGVzdF9wa2d1dGlsLnB5CmluZGV4IDYwMjViY2QuLmE0MWI1ZjUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfcGtndXRpbC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BrZ3V0aWwucHkKQEAgLTEzOCwxMCArMTM4LDExIEBACiAgICAgICAgIGRlbCBzeXMubW9kdWxlc1snZm9vJ10KIAogCisjIFRoZXNlIHRlc3RzLCBlc3BlY2lhbGx5IHRoZSBzZXR1cCBhbmQgY2xlYW51cCwgYXJlIGhpZGVvdXMuIFRoZXkKKyMgbmVlZCB0byBiZSBjbGVhbmVkIHVwIG9uY2UgaXNzdWUgMTQ3MTUgaXMgYWRkcmVzc2VkLgogY2xhc3MgRXh0ZW5kUGF0aFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgY3JlYXRlX2luaXQoc2VsZiwgcGtnbmFtZSk6CiAgICAgICAgIGRpcm5hbWUgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNodXRpbC5ybXRyZWUsIGRpcm5hbWUpCiAgICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBkaXJuYW1lKQogCiAgICAgICAgIHBrZ2RpciA9IG9zLnBhdGguam9pbihkaXJuYW1lLCBwa2duYW1lKQpAQCAtMTU2LDIyICsxNTcsMTIgQEAKICAgICAgICAgd2l0aCBvcGVuKG1vZHVsZV9uYW1lLCAndycpIGFzIGZsOgogICAgICAgICAgICAgcHJpbnQoJ3ZhbHVlPXt9Jy5mb3JtYXQodmFsdWUpLCBmaWxlPWZsKQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAjIENyZWF0ZSAyIGRpcmVjdG9yaWVzIG9uIHN5cy5wYXRoCi0gICAgICAgIHNlbGYucGtnbmFtZSA9ICdmb28nCi0gICAgICAgIHNlbGYuZGlybmFtZV8wID0gc2VsZi5jcmVhdGVfaW5pdChzZWxmLnBrZ25hbWUpCi0gICAgICAgIHNlbGYuZGlybmFtZV8xID0gc2VsZi5jcmVhdGVfaW5pdChzZWxmLnBrZ25hbWUpCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIGRlbCBzeXMucGF0aFswXQotICAgICAgICBkZWwgc3lzLnBhdGhbMF0KLSAgICAgICAgZGVsIHN5cy5tb2R1bGVzWydmb28nXQotICAgICAgICBkZWwgc3lzLm1vZHVsZXNbJ2Zvby5iYXInXQotICAgICAgICBkZWwgc3lzLm1vZHVsZXNbJ2Zvby5iYXonXQotCiAgICAgZGVmIHRlc3Rfc2ltcGxlKHNlbGYpOgotICAgICAgICBzZWxmLmNyZWF0ZV9zdWJtb2R1bGUoc2VsZi5kaXJuYW1lXzAsIHNlbGYucGtnbmFtZSwgJ2JhcicsIDApCi0gICAgICAgIHNlbGYuY3JlYXRlX3N1Ym1vZHVsZShzZWxmLmRpcm5hbWVfMSwgc2VsZi5wa2duYW1lLCAnYmF6JywgMSkKKyAgICAgICAgcGtnbmFtZSA9ICdmb28nCisgICAgICAgIGRpcm5hbWVfMCA9IHNlbGYuY3JlYXRlX2luaXQocGtnbmFtZSkKKyAgICAgICAgZGlybmFtZV8xID0gc2VsZi5jcmVhdGVfaW5pdChwa2duYW1lKQorICAgICAgICBzZWxmLmNyZWF0ZV9zdWJtb2R1bGUoZGlybmFtZV8wLCBwa2duYW1lLCAnYmFyJywgMCkKKyAgICAgICAgc2VsZi5jcmVhdGVfc3VibW9kdWxlKGRpcm5hbWVfMSwgcGtnbmFtZSwgJ2JheicsIDEpCiAgICAgICAgIGltcG9ydCBmb28uYmFyCiAgICAgICAgIGltcG9ydCBmb28uYmF6CiAgICAgICAgICMgRW5zdXJlIHdlIHJlYWQgdGhlIGV4cGVjdGVkIHZhbHVlcwpAQCAtMTgwLDggKzE3MSw0NSBAQAogCiAgICAgICAgICMgRW5zdXJlIHRoZSBwYXRoIGlzIHNldCB1cCBjb3JyZWN0bHkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb3J0ZWQoZm9vLl9fcGF0aF9fKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0ZWQoW29zLnBhdGguam9pbihzZWxmLmRpcm5hbWVfMCwgc2VsZi5wa2duYW1lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihzZWxmLmRpcm5hbWVfMSwgc2VsZi5wa2duYW1lKV0pKQorICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRlZChbb3MucGF0aC5qb2luKGRpcm5hbWVfMCwgcGtnbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oZGlybmFtZV8xLCBwa2duYW1lKV0pKQorCisgICAgICAgICMgQ2xlYW51cAorICAgICAgICBzaHV0aWwucm10cmVlKGRpcm5hbWVfMCkKKyAgICAgICAgc2h1dGlsLnJtdHJlZShkaXJuYW1lXzEpCisgICAgICAgIGRlbCBzeXMucGF0aFswXQorICAgICAgICBkZWwgc3lzLnBhdGhbMF0KKyAgICAgICAgZGVsIHN5cy5tb2R1bGVzWydmb28nXQorICAgICAgICBkZWwgc3lzLm1vZHVsZXNbJ2Zvby5iYXInXQorICAgICAgICBkZWwgc3lzLm1vZHVsZXNbJ2Zvby5iYXonXQorCisgICAgZGVmIHRlc3RfbWl4ZWRfbmFtZXNwYWNlKHNlbGYpOgorICAgICAgICBwa2duYW1lID0gJ2ZvbycKKyAgICAgICAgZGlybmFtZV8wID0gc2VsZi5jcmVhdGVfaW5pdChwa2duYW1lKQorICAgICAgICBkaXJuYW1lXzEgPSBzZWxmLmNyZWF0ZV9pbml0KHBrZ25hbWUpCisgICAgICAgIHNlbGYuY3JlYXRlX3N1Ym1vZHVsZShkaXJuYW1lXzAsIHBrZ25hbWUsICdiYXInLCAwKQorICAgICAgICAjIFR1cm4gdGhpcyBpbnRvIGEgUEVQIDQyMCBuYW1lc3BhY2UgcGFja2FnZQorICAgICAgICBvcy51bmxpbmsob3MucGF0aC5qb2luKGRpcm5hbWVfMCwgcGtnbmFtZSwgJ19faW5pdF9fLnB5JykpCisgICAgICAgIHNlbGYuY3JlYXRlX3N1Ym1vZHVsZShkaXJuYW1lXzEsIHBrZ25hbWUsICdiYXonLCAxKQorICAgICAgICBpbXBvcnQgZm9vLmJhcgorICAgICAgICBpbXBvcnQgZm9vLmJhegorICAgICAgICAjIEVuc3VyZSB3ZSByZWFkIHRoZSBleHBlY3RlZCB2YWx1ZXMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uYmFyLnZhbHVlLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5iYXoudmFsdWUsIDEpCisKKyAgICAgICAgIyBFbnN1cmUgdGhlIHBhdGggaXMgc2V0IHVwIGNvcnJlY3RseQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChmb28uX19wYXRoX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnRlZChbb3MucGF0aC5qb2luKGRpcm5hbWVfMCwgcGtnbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oZGlybmFtZV8xLCBwa2duYW1lKV0pKQorCisgICAgICAgICMgQ2xlYW51cAorICAgICAgICBzaHV0aWwucm10cmVlKGRpcm5hbWVfMCkKKyAgICAgICAgc2h1dGlsLnJtdHJlZShkaXJuYW1lXzEpCisgICAgICAgIGRlbCBzeXMucGF0aFswXQorICAgICAgICBkZWwgc3lzLnBhdGhbMF0KKyAgICAgICAgZGVsIHN5cy5tb2R1bGVzWydmb28nXQorICAgICAgICBkZWwgc3lzLm1vZHVsZXNbJ2Zvby5iYXInXQorICAgICAgICBkZWwgc3lzLm1vZHVsZXNbJ2Zvby5iYXonXQogCiAgICAgIyBYWFg6IHRlc3QgLnBrZyBmaWxlcwogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3BsYXRmb3JtLnB5IGIvTGliL3Rlc3QvdGVzdF9wbGF0Zm9ybS5weQppbmRleCA4NzUxYWE4Li42YWJmNDQzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BsYXRmb3JtLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcGxhdGZvcm0ucHkKQEAgLTEsOCArMSw5IEBACi1pbXBvcnQgc3lzCiBpbXBvcnQgb3MKLWltcG9ydCB1bml0dGVzdAogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHN5cworaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgd2FybmluZ3MKIAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiAKQEAgLTU2LDEzICs1NywxMSBAQAogCiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnNhdmVfdmVyc2lvbiA9IHN5cy52ZXJzaW9uCi0gICAgICAgIHNlbGYuc2F2ZV9zdWJ2ZXJzaW9uID0gc3lzLnN1YnZlcnNpb24KICAgICAgICAgc2VsZi5zYXZlX21lcmN1cmlhbCA9IHN5cy5fbWVyY3VyaWFsCiAgICAgICAgIHNlbGYuc2F2ZV9wbGF0Zm9ybSA9IHN5cy5wbGF0Zm9ybQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBzeXMudmVyc2lvbiA9IHNlbGYuc2F2ZV92ZXJzaW9uCi0gICAgICAgIHN5cy5zdWJ2ZXJzaW9uID0gc2VsZi5zYXZlX3N1YnZlcnNpb24KICAgICAgICAgc3lzLl9tZXJjdXJpYWwgPSBzZWxmLnNhdmVfbWVyY3VyaWFsCiAgICAgICAgIHN5cy5wbGF0Zm9ybSA9IHNlbGYuc2F2ZV9wbGF0Zm9ybQogCkBAIC03Nyw3ICs3Niw3IEBACiAgICAgICAgICAgICAgKCdJcm9uUHl0aG9uJywgJzEuMC4wJywgJycsICcnLCAnJywgJycsICcuTkVUIDIuMC41MDcyNy40MicpKSwKICAgICAgICAgICAgICk6CiAgICAgICAgICAgICAjIGJyYW5jaCBhbmQgcmV2aXNpb24gYXJlIG5vdCAicGFyc2VkIiwgYnV0IGZldGNoZWQKLSAgICAgICAgICAgICMgZnJvbSBzeXMuc3VidmVyc2lvbi4gIElnbm9yZSB0aGVtCisgICAgICAgICAgICAjIGZyb20gc3lzLl9tZXJjdXJpYWwuICBJZ25vcmUgdGhlbQogICAgICAgICAgICAgKG5hbWUsIHZlcnNpb24sIGJyYW5jaCwgcmV2aXNpb24sIGJ1aWxkbm8sIGJ1aWxkZGF0ZSwgY29tcGlsZXIpIFwKICAgICAgICAgICAgICAgICAgICA9IHBsYXRmb3JtLl9zeXNfdmVyc2lvbihpbnB1dCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCkBAIC0xMTMsOCArMTEyLDYgQEAKICAgICAgICAgICAgIGlmIHN1YnZlcnNpb24gaXMgTm9uZToKICAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHN5cywgIl9tZXJjdXJpYWwiKToKICAgICAgICAgICAgICAgICAgICAgZGVsIHN5cy5fbWVyY3VyaWFsCi0gICAgICAgICAgICAgICAgaWYgaGFzYXR0cihzeXMsICJzdWJ2ZXJzaW9uIik6Ci0gICAgICAgICAgICAgICAgICAgIGRlbCBzeXMuc3VidmVyc2lvbgogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBzeXMuX21lcmN1cmlhbCA9IHN1YnZlcnNpb24KICAgICAgICAgICAgIGlmIHN5c19wbGF0Zm9ybSBpcyBub3QgTm9uZToKQEAgLTEzNiw2ICsxMzMsMTIgQEAKICAgICBkZWYgdGVzdF91bmFtZShzZWxmKToKICAgICAgICAgcmVzID0gcGxhdGZvcm0udW5hbWUoKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoYW55KHJlcykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzWzBdLCByZXMuc3lzdGVtKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc1sxXSwgcmVzLm5vZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzWzJdLCByZXMucmVsZWFzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNbM10sIHJlcy52ZXJzaW9uKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc1s0XSwgcmVzLm1hY2hpbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzWzVdLCByZXMucHJvY2Vzc29yKQogCiAgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpLCAid2luZG93cyBvbmx5IHRlc3QiKQogICAgIGRlZiB0ZXN0X3VuYW1lX3dpbjMyX0FSQ0hJVEVXNjQzMihzZWxmKToKQEAgLTE2OSw3ICsxNzIsNyBAQAogICAgIGRlZiB0ZXN0X21hY192ZXIoc2VsZik6CiAgICAgICAgIHJlcyA9IHBsYXRmb3JtLm1hY192ZXIoKQogCi0gICAgICAgIGlmIHBsYXRmb3JtLnVuYW1lKClbMF0gPT0gJ0Rhcndpbic6CisgICAgICAgIGlmIHBsYXRmb3JtLnVuYW1lKCkuc3lzdGVtID09ICdEYXJ3aW4nOgogICAgICAgICAgICAgIyBXZSdyZSBvbiBhIE1hY09TWCBzeXN0ZW0sIGNoZWNrIHRoYXQKICAgICAgICAgICAgICMgdGhlIHJpZ2h0IHZlcnNpb24gaW5mb3JtYXRpb24gaXMgcmV0dXJuZWQKICAgICAgICAgICAgIGZkID0gb3MucG9wZW4oJ3N3X3ZlcnMnLCAncicpCkBAIC0yNDcsNiArMjUwLDM4IEBACiAgICAgICAgICAgICApOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwbGF0Zm9ybS5fcGFyc2VfcmVsZWFzZV9maWxlKGlucHV0KSwgb3V0cHV0KQogCisgICAgZGVmIHRlc3RfcG9wZW4oc2VsZik6CisgICAgICAgIG1zd2luZG93cyA9IChzeXMucGxhdGZvcm0gPT0gIndpbjMyIikKKworICAgICAgICBpZiBtc3dpbmRvd3M6CisgICAgICAgICAgICBjb21tYW5kID0gJyJ7fSIgLWMgInByaW50KFwnSGVsbG9cJykiJy5mb3JtYXQoc3lzLmV4ZWN1dGFibGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb21tYW5kID0gIid7fScgLWMgJ3ByaW50KFwiSGVsbG9cIiknIi5mb3JtYXQoc3lzLmV4ZWN1dGFibGUpCisgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiaWdub3JlIiwgRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgd2l0aCBwbGF0Zm9ybS5wb3Blbihjb21tYW5kKSBhcyBzdGRvdXQ6CisgICAgICAgICAgICAgICAgaGVsbG8gPSBzdGRvdXQucmVhZCgpLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBzdGRvdXQuY2xvc2UoKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVsbG8sICJIZWxsbyIpCisKKyAgICAgICAgZGF0YSA9ICdwbG9wJworICAgICAgICBpZiBtc3dpbmRvd3M6CisgICAgICAgICAgICBjb21tYW5kID0gJyJ7fSIgLWMgImltcG9ydCBzeXM7IGRhdGE9c3lzLnN0ZGluLnJlYWQoKTsgZXhpdChsZW4oZGF0YSkpIicKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbW1hbmQgPSAiJ3t9JyAtYyAnaW1wb3J0IHN5czsgZGF0YT1zeXMuc3RkaW4ucmVhZCgpOyBleGl0KGxlbihkYXRhKSknIgorICAgICAgICBjb21tYW5kID0gY29tbWFuZC5mb3JtYXQoc3lzLmV4ZWN1dGFibGUpCisgICAgICAgIHdpdGggd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiaWdub3JlIiwgRGVwcmVjYXRpb25XYXJuaW5nKQorICAgICAgICAgICAgd2l0aCBwbGF0Zm9ybS5wb3Blbihjb21tYW5kLCAndycpIGFzIHN0ZGluOgorICAgICAgICAgICAgICAgIHN0ZG91dCA9IHN0ZGluLndyaXRlKGRhdGEpCisgICAgICAgICAgICAgICAgcmV0ID0gc3RkaW4uY2xvc2UoKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJldCkKKyAgICAgICAgICAgICAgICBpZiBvcy5uYW1lID09ICdudCc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybmNvZGUgPSByZXQKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm5jb2RlID0gcmV0ID4+IDgKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJldHVybmNvZGUsIGxlbihkYXRhKSkKKwogCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3BsaXN0bGliLnB5IGIvTGliL3Rlc3QvdGVzdF9wbGlzdGxpYi5weQppbmRleCA1Zjk4MGQwLi5hOWUzNDNlIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BsaXN0bGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcGxpc3RsaWIucHkKQEAgLTU1LDYgKzU1LDEwIEBACiAgICAgICAgIDwvYXJyYXk+CiAgICAgICAgIDxrZXk+YVN0cmluZzwva2V5PgogICAgICAgICA8c3RyaW5nPkRvb2RhaDwvc3RyaW5nPgorICAgICAgICA8a2V5PmFuRW1wdHlEaWN0PC9rZXk+CisgICAgICAgIDxkaWN0Lz4KKyAgICAgICAgPGtleT5hbkVtcHR5TGlzdDwva2V5PgorICAgICAgICA8YXJyYXkvPgogICAgICAgICA8a2V5PmFuSW50PC9rZXk+CiAgICAgICAgIDxpbnRlZ2VyPjcyODwvaW50ZWdlcj4KICAgICAgICAgPGtleT5uZXN0ZWREYXRhPC9rZXk+CkBAIC0xMTIsNiArMTE2LDggQEAKICAgICAgICAgICAgIHNvbWVNb3JlRGF0YSA9IHBsaXN0bGliLkRhdGEoYiI8bG90cyBvZiBiaW5hcnkgZ3Vuaz5cMFwxXDJcMyIgKiAxMCksCiAgICAgICAgICAgICBuZXN0ZWREYXRhID0gW3BsaXN0bGliLkRhdGEoYiI8bG90cyBvZiBiaW5hcnkgZ3Vuaz5cMFwxXDJcMyIgKiAxMCldLAogICAgICAgICAgICAgYURhdGUgPSBkYXRldGltZS5kYXRldGltZSgyMDA0LCAxMCwgMjYsIDEwLCAzMywgMzMpLAorICAgICAgICAgICAgYW5FbXB0eURpY3QgPSBkaWN0KCksCisgICAgICAgICAgICBhbkVtcHR5TGlzdCA9IGxpc3QoKQogICAgICAgICApCiAgICAgICAgIHBsWydceGM1YmVucmFhJ10gPSAiVGhhdCB3YXMgYSB1bmljb2RlIGtleS4iCiAgICAgICAgIHJldHVybiBwbApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wb3BsaWIucHkgYi9MaWIvdGVzdC90ZXN0X3BvcGxpYi5weQppbmRleCBlMzkwMWI4Li5jMDkyOWEwIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3BvcGxpYi5weQorKysgYi9MaWIvdGVzdC90ZXN0X3BvcGxpYi5weQpAQCAtMTA4LDYgKzEwOCwxMCBAQAogICAgIGRlZiBjbWRfYXBvcChzZWxmLCBhcmcpOgogICAgICAgICBzZWxmLnB1c2goJytPSyBkb25lIG5vdGhpbmcuJykKIAorICAgIGRlZiBjbWRfcXVpdChzZWxmLCBhcmcpOgorICAgICAgICBzZWxmLnB1c2goJytPSyBjbG9zaW5nLicpCisgICAgICAgIHNlbGYuY2xvc2Vfd2hlbl9kb25lKCkKKwogCiBjbGFzcyBEdW1teVBPUDNTZXJ2ZXIoYXN5bmNvcmUuZGlzcGF0Y2hlciwgdGhyZWFkaW5nLlRocmVhZCk6CiAKQEAgLTE2NSwxMCArMTY5LDEwIEBACiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnNlcnZlciA9IER1bW15UE9QM1NlcnZlcigoSE9TVCwgUE9SVCkpCiAgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KCkKLSAgICAgICAgc2VsZi5jbGllbnQgPSBwb3BsaWIuUE9QMyhzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KQorICAgICAgICBzZWxmLmNsaWVudCA9IHBvcGxpYi5QT1AzKHNlbGYuc2VydmVyLmhvc3QsIHNlbGYuc2VydmVyLnBvcnQsIHRpbWVvdXQ9MykKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgc2VsZi5jbGllbnQucXVpdCgpCisgICAgICAgIHNlbGYuY2xpZW50LmNsb3NlKCkKICAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcCgpCiAKICAgICBkZWYgdGVzdF9nZXR3ZWxjb21lKHNlbGYpOgpAQCAtMjI4LDYgKzIzMiwxMiBAQAogICAgICAgICBzZWxmLmNsaWVudC51aWRsKCkKICAgICAgICAgc2VsZi5jbGllbnQudWlkbCgnZm9vJykKIAorICAgIGRlZiB0ZXN0X3F1aXQoc2VsZik6CisgICAgICAgIHJlc3AgPSBzZWxmLmNsaWVudC5xdWl0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3ApCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYuY2xpZW50LnNvY2spCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHNlbGYuY2xpZW50LmZpbGUpCisKIAogU1VQUE9SVFNfU1NMID0gRmFsc2UKIGlmIGhhc2F0dHIocG9wbGliLCAnUE9QM19TU0wnKToKQEAgLTI3NCw2ICsyODQsNyBAQAogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBEdW1teVBPUDNIYW5kbGVyLmhhbmRsZV9yZWFkKHNlbGYpCiAKKwogICAgIGNsYXNzIFRlc3RQT1AzX1NTTENsYXNzKFRlc3RQT1AzQ2xhc3MpOgogICAgICAgICAjIHJlcGVhdCBwcmV2aW91cyB0ZXN0cyBieSB1c2luZyBwb3BsaWIuUE9QM19TU0wKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wb3NpeC5weSBiL0xpYi90ZXN0L3Rlc3RfcG9zaXgucHkKaW5kZXggYzA0YzY3OS4uZjBhZDkyZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9wb3NpeC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3Bvc2l4LnB5CkBAIC05LDYgKzksNyBAQAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGltcG9ydCBvcworaW1wb3J0IGZjbnRsCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBwd2QKIGltcG9ydCBzaHV0aWwKQEAgLTQzLDcgKzQ0LDcgQEAKICAgICAgICAgTk9fQVJHX0ZVTkNUSU9OUyA9IFsgImN0ZXJtaWQiLCAiZ2V0Y3dkIiwgImdldGN3ZGIiLCAidW5hbWUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGltZXMiLCAiZ2V0bG9hZGF2ZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXRlZ2lkIiwgImdldGV1aWQiLCAiZ2V0Z2lkIiwgImdldGdyb3VwcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXRwaWQiLCAiZ2V0cGdycCIsICJnZXRwcGlkIiwgImdldHVpZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJnZXRwaWQiLCAiZ2V0cGdycCIsICJnZXRwcGlkIiwgImdldHVpZCIsICJzeW5jIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KIAogICAgICAgICBmb3IgbmFtZSBpbiBOT19BUkdfRlVOQ1RJT05TOgpAQCAtMTI4LDYgKzEyOSw3IEBACiAgICAgICAgICAgICBmcCA9IG9wZW4oc3VwcG9ydC5URVNURk4pCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvc2l4LmZzdGF0dmZzKGZwLmZpbGVubygpKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocG9zaXguc3RhdHZmcyhmcC5maWxlbm8oKSkpCiAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgIGZwLmNsb3NlKCkKIApAQCAtMTQyLDYgKzE0NCwxNTEgQEAKICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgZnAuY2xvc2UoKQogCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihwb3NpeCwgJ3RydW5jYXRlJyksICJ0ZXN0IG5lZWRzIHBvc2l4LnRydW5jYXRlKCkiKQorICAgIGRlZiB0ZXN0X3RydW5jYXRlKHNlbGYpOgorICAgICAgICB3aXRoIG9wZW4oc3VwcG9ydC5URVNURk4sICd3JykgYXMgZnA6CisgICAgICAgICAgICBmcC53cml0ZSgndGVzdCcpCisgICAgICAgICAgICBmcC5mbHVzaCgpCisgICAgICAgIHBvc2l4LnRydW5jYXRlKHN1cHBvcnQuVEVTVEZOLCAwKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoZ2V0YXR0cihvcywgJ2V4ZWN2ZScsIE5vbmUpIGluIG9zLnN1cHBvcnRzX2ZkLCAidGVzdCBuZWVkcyBleGVjdmUoKSB0byBzdXBwb3J0IHRoZSBmZCBwYXJhbWV0ZXIiKQorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdmb3JrJyksICJ0ZXN0IG5lZWRzIG9zLmZvcmsoKSIpCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihvcywgJ3dhaXRwaWQnKSwgInRlc3QgbmVlZHMgb3Mud2FpdHBpZCgpIikKKyAgICBkZWYgdGVzdF9mZXhlY3ZlKHNlbGYpOgorICAgICAgICBmcCA9IG9zLm9wZW4oc3lzLmV4ZWN1dGFibGUsIG9zLk9fUkRPTkxZKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwaWQgPSBvcy5mb3JrKCkKKyAgICAgICAgICAgIGlmIHBpZCA9PSAwOgorICAgICAgICAgICAgICAgIG9zLmNoZGlyKG9zLnBhdGguc3BsaXQoc3lzLmV4ZWN1dGFibGUpWzBdKQorICAgICAgICAgICAgICAgIHBvc2l4LmV4ZWN2ZShmcCwgW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAncGFzcyddLCBvcy5lbnZpcm9uKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLndhaXRwaWQocGlkLCAwKSwgKHBpZCwgMCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5jbG9zZShmcCkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIocG9zaXgsICd3YWl0aWQnKSwgInRlc3QgbmVlZHMgcG9zaXgud2FpdGlkKCkiKQorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdmb3JrJyksICJ0ZXN0IG5lZWRzIG9zLmZvcmsoKSIpCisgICAgZGVmIHRlc3Rfd2FpdGlkKHNlbGYpOgorICAgICAgICBwaWQgPSBvcy5mb3JrKCkKKyAgICAgICAgaWYgcGlkID09IDA6CisgICAgICAgICAgICBvcy5jaGRpcihvcy5wYXRoLnNwbGl0KHN5cy5leGVjdXRhYmxlKVswXSkKKyAgICAgICAgICAgIHBvc2l4LmV4ZWN2ZShzeXMuZXhlY3V0YWJsZSwgW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAncGFzcyddLCBvcy5lbnZpcm9uKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzID0gcG9zaXgud2FpdGlkKHBvc2l4LlBfUElELCBwaWQsIHBvc2l4LldFWElURUQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBpZCwgcmVzLnNpX3BpZCkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIocG9zaXgsICdsb2NrZicpLCAidGVzdCBuZWVkcyBwb3NpeC5sb2NrZigpIikKKyAgICBkZWYgdGVzdF9sb2NrZihzZWxmKToKKyAgICAgICAgZmQgPSBvcy5vcGVuKHN1cHBvcnQuVEVTVEZOLCBvcy5PX1dST05MWSB8IG9zLk9fQ1JFQVQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9zLndyaXRlKGZkLCBiJ3Rlc3QnKQorICAgICAgICAgICAgb3MubHNlZWsoZmQsIDAsIG9zLlNFRUtfU0VUKQorICAgICAgICAgICAgcG9zaXgubG9ja2YoZmQsIHBvc2l4LkZfTE9DSywgNCkKKyAgICAgICAgICAgICMgc2VjdGlvbiBpcyBsb2NrZWQKKyAgICAgICAgICAgIHBvc2l4LmxvY2tmKGZkLCBwb3NpeC5GX1VMT0NLLCA0KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuY2xvc2UoZmQpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHBvc2l4LCAncHJlYWQnKSwgInRlc3QgbmVlZHMgcG9zaXgucHJlYWQoKSIpCisgICAgZGVmIHRlc3RfcHJlYWQoc2VsZik6CisgICAgICAgIGZkID0gb3Mub3BlbihzdXBwb3J0LlRFU1RGTiwgb3MuT19SRFdSIHwgb3MuT19DUkVBVCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3Mud3JpdGUoZmQsIGIndGVzdCcpCisgICAgICAgICAgICBvcy5sc2VlayhmZCwgMCwgb3MuU0VFS19TRVQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGInZXMnLCBwb3NpeC5wcmVhZChmZCwgMiwgMSkpCisgICAgICAgICAgICAjIHRoZSBmaXJzdCBwcmVhZCgpIHNob3VsZG4ndCBkaXN0dXJiIHRoZSBmaWxlIG9mZnNldAorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiJ3RlJywgcG9zaXgucmVhZChmZCwgMikpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5jbG9zZShmZCkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIocG9zaXgsICdwd3JpdGUnKSwgInRlc3QgbmVlZHMgcG9zaXgucHdyaXRlKCkiKQorICAgIGRlZiB0ZXN0X3B3cml0ZShzZWxmKToKKyAgICAgICAgZmQgPSBvcy5vcGVuKHN1cHBvcnQuVEVTVEZOLCBvcy5PX1JEV1IgfCBvcy5PX0NSRUFUKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcy53cml0ZShmZCwgYid0ZXN0JykKKyAgICAgICAgICAgIG9zLmxzZWVrKGZkLCAwLCBvcy5TRUVLX1NFVCkKKyAgICAgICAgICAgIHBvc2l4LnB3cml0ZShmZCwgYid4eCcsIDEpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIndHh4dCcsIHBvc2l4LnJlYWQoZmQsIDQpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuY2xvc2UoZmQpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHBvc2l4LCAncG9zaXhfZmFsbG9jYXRlJyksCisgICAgICAgICJ0ZXN0IG5lZWRzIHBvc2l4LnBvc2l4X2ZhbGxvY2F0ZSgpIikKKyAgICBkZWYgdGVzdF9wb3NpeF9mYWxsb2NhdGUoc2VsZik6CisgICAgICAgIGZkID0gb3Mub3BlbihzdXBwb3J0LlRFU1RGTiwgb3MuT19XUk9OTFkgfCBvcy5PX0NSRUFUKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwb3NpeC5wb3NpeF9mYWxsb2NhdGUoZmQsIDAsIDEwKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBpbnN0OgorICAgICAgICAgICAgIyBpc3N1ZTEwODEyLCBaRlMgZG9lc24ndCBhcHBlYXIgdG8gc3VwcG9ydCBwb3NpeF9mYWxsb2NhdGUsCisgICAgICAgICAgICAjIHNvIHNraXAgU29sYXJpcy1iYXNlZCBzaW5jZSB0aGV5IGFyZSBsaWtlbHkgdG8gaGF2ZSBaRlMuCisgICAgICAgICAgICBpZiBpbnN0LmVycm5vICE9IGVycm5vLkVJTlZBTCBvciBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoInN1bm9zIik6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG9zLmNsb3NlKGZkKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihwb3NpeCwgJ3Bvc2l4X2ZhZHZpc2UnKSwKKyAgICAgICAgInRlc3QgbmVlZHMgcG9zaXgucG9zaXhfZmFkdmlzZSgpIikKKyAgICBkZWYgdGVzdF9wb3NpeF9mYWR2aXNlKHNlbGYpOgorICAgICAgICBmZCA9IG9zLm9wZW4oc3VwcG9ydC5URVNURk4sIG9zLk9fUkRPTkxZKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwb3NpeC5wb3NpeF9mYWR2aXNlKGZkLCAwLCAwLCBwb3NpeC5QT1NJWF9GQURWX1dJTExORUVEKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuY2xvc2UoZmQpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhvcy51dGltZSBpbiBvcy5zdXBwb3J0c19mZCwgInRlc3QgbmVlZHMgZmQgc3VwcG9ydCBpbiBvcy51dGltZSIpCisgICAgZGVmIHRlc3RfdXRpbWVfd2l0aF9mZChzZWxmKToKKyAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAgICAgZmQgPSBvcy5vcGVuKHN1cHBvcnQuVEVTVEZOLCBvcy5PX1JET05MWSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcG9zaXgudXRpbWUoZmQpCisgICAgICAgICAgICBwb3NpeC51dGltZShmZCwgTm9uZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcG9zaXgudXRpbWUsIGZkLCAoTm9uZSwgTm9uZSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHBvc2l4LnV0aW1lLCBmZCwgKG5vdywgTm9uZSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHBvc2l4LnV0aW1lLCBmZCwgKE5vbmUsIG5vdykpCisgICAgICAgICAgICBwb3NpeC51dGltZShmZCwgKGludChub3cpLCBpbnQobm93KSkpCisgICAgICAgICAgICBwb3NpeC51dGltZShmZCwgKG5vdywgbm93KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBvc2l4LnV0aW1lLCBmZCwgKG5vdywgbm93KSwgbnM9KG5vdywgbm93KSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBvc2l4LnV0aW1lLCBmZCwgKG5vdywgMCksIG5zPShOb25lLCBOb25lKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBvc2l4LnV0aW1lLCBmZCwgKE5vbmUsIE5vbmUpLCBucz0obm93LCAwKSkKKyAgICAgICAgICAgIHBvc2l4LnV0aW1lKGZkLCAoaW50KG5vdyksIGludCgobm93IC0gaW50KG5vdykpICogMWU5KSkpCisgICAgICAgICAgICBwb3NpeC51dGltZShmZCwgbnM9KGludChub3cpLCBpbnQoKG5vdyAtIGludChub3cpKSAqIDFlOSkpKQorCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5jbG9zZShmZCkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLnV0aW1lIGluIG9zLnN1cHBvcnRzX2ZvbGxvd19zeW1saW5rcywgInRlc3QgbmVlZHMgZm9sbG93X3N5bWxpbmtzIHN1cHBvcnQgaW4gb3MudXRpbWUiKQorICAgIGRlZiB0ZXN0X3V0aW1lX25vZm9sbG93X3N5bWxpbmtzKHNlbGYpOgorICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQorICAgICAgICBwb3NpeC51dGltZShzdXBwb3J0LlRFU1RGTiwgTm9uZSwgZm9sbG93X3N5bWxpbmtzPUZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHBvc2l4LnV0aW1lLCBzdXBwb3J0LlRFU1RGTiwgKE5vbmUsIE5vbmUpLCBmb2xsb3dfc3ltbGlua3M9RmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcG9zaXgudXRpbWUsIHN1cHBvcnQuVEVTVEZOLCAobm93LCBOb25lKSwgZm9sbG93X3N5bWxpbmtzPUZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHBvc2l4LnV0aW1lLCBzdXBwb3J0LlRFU1RGTiwgKE5vbmUsIG5vdyksIGZvbGxvd19zeW1saW5rcz1GYWxzZSkKKyAgICAgICAgcG9zaXgudXRpbWUoc3VwcG9ydC5URVNURk4sIChpbnQobm93KSwgaW50KG5vdykpLCBmb2xsb3dfc3ltbGlua3M9RmFsc2UpCisgICAgICAgIHBvc2l4LnV0aW1lKHN1cHBvcnQuVEVTVEZOLCAobm93LCBub3cpLCBmb2xsb3dfc3ltbGlua3M9RmFsc2UpCisgICAgICAgIHBvc2l4LnV0aW1lKHN1cHBvcnQuVEVTVEZOLCBmb2xsb3dfc3ltbGlua3M9RmFsc2UpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHBvc2l4LCAnd3JpdGV2JyksICJ0ZXN0IG5lZWRzIHBvc2l4LndyaXRldigpIikKKyAgICBkZWYgdGVzdF93cml0ZXYoc2VsZik6CisgICAgICAgIGZkID0gb3Mub3BlbihzdXBwb3J0LlRFU1RGTiwgb3MuT19SRFdSIHwgb3MuT19DUkVBVCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3Mud3JpdGV2KGZkLCAoYid0ZXN0MScsIGIndHQyJywgYid0MycpKQorICAgICAgICAgICAgb3MubHNlZWsoZmQsIDAsIG9zLlNFRUtfU0VUKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiJ3Rlc3QxdHQydDMnLCBwb3NpeC5yZWFkKGZkLCAxMCkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5jbG9zZShmZCkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIocG9zaXgsICdyZWFkdicpLCAidGVzdCBuZWVkcyBwb3NpeC5yZWFkdigpIikKKyAgICBkZWYgdGVzdF9yZWFkdihzZWxmKToKKyAgICAgICAgZmQgPSBvcy5vcGVuKHN1cHBvcnQuVEVTVEZOLCBvcy5PX1JEV1IgfCBvcy5PX0NSRUFUKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcy53cml0ZShmZCwgYid0ZXN0MXR0MnQzJykKKyAgICAgICAgICAgIG9zLmxzZWVrKGZkLCAwLCBvcy5TRUVLX1NFVCkKKyAgICAgICAgICAgIGJ1ZiA9IFtieXRlYXJyYXkoaSkgZm9yIGkgaW4gWzUsIDMsIDJdXQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3NpeC5yZWFkdihmZCwgYnVmKSwgMTApCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtiJ3Rlc3QxJywgYid0dDInLCBiJ3QzJ10sIFtieXRlcyhpKSBmb3IgaSBpbiBidWZdKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MuY2xvc2UoZmQpCisKICAgICBkZWYgdGVzdF9kdXAoc2VsZik6CiAgICAgICAgIGlmIGhhc2F0dHIocG9zaXgsICdkdXAnKToKICAgICAgICAgICAgIGZwID0gb3BlbihzdXBwb3J0LlRFU1RGTikKQEAgLTE2Nyw2ICszMTQsMTMgQEAKICAgICAgICAgICAgICAgICBmcDEuY2xvc2UoKQogICAgICAgICAgICAgICAgIGZwMi5jbG9zZSgpCiAKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKG9zLCAnT19DTE9FWEVDJyksICJuZWVkcyBvcy5PX0NMT0VYRUMiKQorICAgIEBzdXBwb3J0LnJlcXVpcmVzX2xpbnV4X3ZlcnNpb24oMiwgNiwgMjMpCisgICAgZGVmIHRlc3Rfb3NjbG9leGVjKHNlbGYpOgorICAgICAgICBmZCA9IG9zLm9wZW4oc3VwcG9ydC5URVNURk4sIG9zLk9fUkRPTkxZfG9zLk9fQ0xPRVhFQykKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKG9zLmNsb3NlLCBmZCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZjbnRsLmZjbnRsKGZkLCBmY250bC5GX0dFVEZEKSAmIGZjbnRsLkZEX0NMT0VYRUMpCisKICAgICBkZWYgdGVzdF9vc2V4bG9jayhzZWxmKToKICAgICAgICAgaWYgaGFzYXR0cihwb3NpeCwgIk9fRVhMT0NLIik6CiAgICAgICAgICAgICBmZCA9IG9zLm9wZW4oc3VwcG9ydC5URVNURk4sCkBAIC0yMDMsNiArMzU3LDcgQEAKICAgICAgICAgICAgIGZwID0gb3BlbihzdXBwb3J0LlRFU1RGTikKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocG9zaXguZnN0YXQoZnAuZmlsZW5vKCkpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3NpeC5zdGF0KGZwLmZpbGVubygpKSkKICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgZnAuY2xvc2UoKQogCkBAIC0yNjUsNyArNDIwLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgcG9zaXguY2hvd24sIHN1cHBvcnQuVEVTVEZOLCAtMSwgLTEpCiAKICAgICAgICAgIyByZS1jcmVhdGUgdGhlIGZpbGUKLSAgICAgICAgb3BlbihzdXBwb3J0LlRFU1RGTiwgJ3cnKS5jbG9zZSgpCisgICAgICAgIHN1cHBvcnQuY3JlYXRlX2VtcHR5X2ZpbGUoc3VwcG9ydC5URVNURk4pCiAgICAgICAgIHNlbGYuX3Rlc3RfYWxsX2Nob3duX2NvbW1vbihwb3NpeC5jaG93biwgc3VwcG9ydC5URVNURk4pCiAKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHBvc2l4LCAnZmNob3duJyksICJ0ZXN0IG5lZWRzIG9zLmZjaG93bigpIikKQEAgLTI5MywxMyArNDQ4LDMyIEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBwb3NpeC5jaGRpciwgc3VwcG9ydC5URVNURk4pCiAKICAgICBkZWYgdGVzdF9saXN0ZGlyKHNlbGYpOgotICAgICAgICBpZiBoYXNhdHRyKHBvc2l4LCAnbGlzdGRpcicpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN1cHBvcnQuVEVTVEZOIGluIHBvc2l4Lmxpc3RkaXIob3MuY3VyZGlyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN1cHBvcnQuVEVTVEZOIGluIHBvc2l4Lmxpc3RkaXIob3MuY3VyZGlyKSkKIAogICAgIGRlZiB0ZXN0X2xpc3RkaXJfZGVmYXVsdChzZWxmKToKLSAgICAgICAgIyBXaGVuIGxpc3RkaXIgaXMgY2FsbGVkIHdpdGhvdXQgYXJndW1lbnQsIGl0J3MgdGhlIHNhbWUgYXMgbGlzdGRpcihvcy5jdXJkaXIpCi0gICAgICAgIGlmIGhhc2F0dHIocG9zaXgsICdsaXN0ZGlyJyk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc3VwcG9ydC5URVNURk4gaW4gcG9zaXgubGlzdGRpcigpKQorICAgICAgICAjIFdoZW4gbGlzdGRpciBpcyBjYWxsZWQgd2l0aG91dCBhcmd1bWVudCwKKyAgICAgICAgIyBpdCdzIHRoZSBzYW1lIGFzIGxpc3RkaXIob3MuY3VyZGlyKS4KKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN1cHBvcnQuVEVTVEZOIGluIHBvc2l4Lmxpc3RkaXIoKSkKKworICAgIGRlZiB0ZXN0X2xpc3RkaXJfYnl0ZXMoc2VsZik6CisgICAgICAgICMgV2hlbiBsaXN0ZGlyIGlzIGNhbGxlZCB3aXRoIGEgYnl0ZXMgb2JqZWN0LAorICAgICAgICAjIHRoZSByZXR1cm5lZCBzdHJpbmdzIGFyZSBvZiB0eXBlIGJ5dGVzLgorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MuZnNlbmNvZGUoc3VwcG9ydC5URVNURk4pIGluIHBvc2l4Lmxpc3RkaXIoYicuJykpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhwb3NpeC5saXN0ZGlyIGluIG9zLnN1cHBvcnRzX2ZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG5lZWRzIGZkIHN1cHBvcnQgZm9yIHBvc2l4Lmxpc3RkaXIoKSIpCisgICAgZGVmIHRlc3RfbGlzdGRpcl9mZChzZWxmKToKKyAgICAgICAgZiA9IHBvc2l4Lm9wZW4ocG9zaXguZ2V0Y3dkKCksIHBvc2l4Lk9fUkRPTkxZKQorICAgICAgICBzZWxmLmFkZENsZWFudXAocG9zaXguY2xvc2UsIGYpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBzb3J0ZWQocG9zaXgubGlzdGRpcignLicpKSwKKyAgICAgICAgICAgIHNvcnRlZChwb3NpeC5saXN0ZGlyKGYpKQorICAgICAgICAgICAgKQorICAgICAgICAjIENoZWNrIHRoYXQgdGhlIGZkIG9mZnNldCB3YXMgcmVzZXQgKGlzc3VlICMxMzczOSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIHNvcnRlZChwb3NpeC5saXN0ZGlyKCcuJykpLAorICAgICAgICAgICAgc29ydGVkKHBvc2l4Lmxpc3RkaXIoZikpCisgICAgICAgICAgICApCiAKICAgICBkZWYgdGVzdF9hY2Nlc3Moc2VsZik6CiAgICAgICAgIGlmIGhhc2F0dHIocG9zaXgsICdhY2Nlc3MnKToKQEAgLTMyMSw2ICs0OTUsMzIgQEAKICAgICAgICAgICAgIG9zLmNsb3NlKHJlYWRlcikKICAgICAgICAgICAgIG9zLmNsb3NlKHdyaXRlcikKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdwaXBlMicpLCAidGVzdCBuZWVkcyBvcy5waXBlMigpIikKKyAgICBAc3VwcG9ydC5yZXF1aXJlc19saW51eF92ZXJzaW9uKDIsIDYsIDI3KQorICAgIGRlZiB0ZXN0X3BpcGUyKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9zLnBpcGUyLCAnREVBREJFRUYnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG9zLnBpcGUyLCAwLCAwKQorCisgICAgICAgICMgdHJ5IGNhbGxpbmcgd2l0aCBmbGFncyA9IDAsIGxpa2Ugb3MucGlwZSgpCisgICAgICAgIHIsIHcgPSBvcy5waXBlMigwKQorICAgICAgICBvcy5jbG9zZShyKQorICAgICAgICBvcy5jbG9zZSh3KQorCisgICAgICAgICMgdGVzdCBmbGFncworICAgICAgICByLCB3ID0gb3MucGlwZTIob3MuT19DTE9FWEVDfG9zLk9fTk9OQkxPQ0spCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChvcy5jbG9zZSwgcikKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKG9zLmNsb3NlLCB3KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZmNudGwuZmNudGwociwgZmNudGwuRl9HRVRGRCkgJiBmY250bC5GRF9DTE9FWEVDKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZmNudGwuZmNudGwodywgZmNudGwuRl9HRVRGRCkgJiBmY250bC5GRF9DTE9FWEVDKQorICAgICAgICAjIHRyeSByZWFkaW5nIGZyb20gYW4gZW1wdHkgcGlwZTogdGhpcyBzaG91bGQgZmFpbCwgbm90IGJsb2NrCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG9zLnJlYWQsIHIsIDEpCisgICAgICAgICMgdHJ5IGEgd3JpdGUgYmlnIGVub3VnaCB0byBmaWxsLXVwIHRoZSBwaXBlOiB0aGlzIHNob3VsZCBlaXRoZXIKKyAgICAgICAgIyBmYWlsIG9yIHBlcmZvcm0gYSBwYXJ0aWFsIHdyaXRlLCBub3QgYmxvY2sKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3Mud3JpdGUodywgYid4JyAqIHN1cHBvcnQuUElQRV9NQVhfU0laRSkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICBwYXNzCisKICAgICBkZWYgdGVzdF91dGltZShzZWxmKToKICAgICAgICAgaWYgaGFzYXR0cihwb3NpeCwgJ3V0aW1lJyk6CiAgICAgICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQpAQCAtMzMxLDEwICs1MzEsMTAgQEAKICAgICAgICAgICAgIHBvc2l4LnV0aW1lKHN1cHBvcnQuVEVTVEZOLCAoaW50KG5vdyksIGludChub3cpKSkKICAgICAgICAgICAgIHBvc2l4LnV0aW1lKHN1cHBvcnQuVEVTVEZOLCAobm93LCBub3cpKQogCi0gICAgZGVmIF90ZXN0X2NoZmxhZ3NfcmVndWxhcl9maWxlKHNlbGYsIGNoZmxhZ3NfZnVuYywgdGFyZ2V0X2ZpbGUpOgorICAgIGRlZiBfdGVzdF9jaGZsYWdzX3JlZ3VsYXJfZmlsZShzZWxmLCBjaGZsYWdzX2Z1bmMsIHRhcmdldF9maWxlLCAqKmt3YXJncyk6CiAgICAgICAgIHN0ID0gb3Muc3RhdCh0YXJnZXRfZmlsZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoc3QsICdzdF9mbGFncycpKQotICAgICAgICBjaGZsYWdzX2Z1bmModGFyZ2V0X2ZpbGUsIHN0LnN0X2ZsYWdzIHwgc3RhdC5VRl9JTU1VVEFCTEUpCisgICAgICAgIGNoZmxhZ3NfZnVuYyh0YXJnZXRfZmlsZSwgc3Quc3RfZmxhZ3MgfCBzdGF0LlVGX0lNTVVUQUJMRSwgKiprd2FyZ3MpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG5ld19zdCA9IG9zLnN0YXQodGFyZ2V0X2ZpbGUpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0LnN0X2ZsYWdzIHwgc3RhdC5VRl9JTU1VVEFCTEUsIG5ld19zdC5zdF9mbGFncykKQEAgLTM1Miw2ICs1NTIsNyBAQAogICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIocG9zaXgsICdsY2hmbGFncycpLCAndGVzdCBuZWVkcyBvcy5sY2hmbGFncygpJykKICAgICBkZWYgdGVzdF9sY2hmbGFnc19yZWd1bGFyX2ZpbGUoc2VsZik6CiAgICAgICAgIHNlbGYuX3Rlc3RfY2hmbGFnc19yZWd1bGFyX2ZpbGUocG9zaXgubGNoZmxhZ3MsIHN1cHBvcnQuVEVTVEZOKQorICAgICAgICBzZWxmLl90ZXN0X2NoZmxhZ3NfcmVndWxhcl9maWxlKHBvc2l4LmNoZmxhZ3MsIHN1cHBvcnQuVEVTVEZOLCBmb2xsb3dfc3ltbGlua3M9RmFsc2UpCiAKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHBvc2l4LCAnbGNoZmxhZ3MnKSwgJ3Rlc3QgbmVlZHMgb3MubGNoZmxhZ3MoKScpCiAgICAgZGVmIHRlc3RfbGNoZmxhZ3Nfc3ltbGluayhzZWxmKToKQEAgLTM2MywxNyArNTY0LDIxIEBACiAgICAgICAgIHNlbGYudGVhcmRvd25fZmlsZXMuYXBwZW5kKF9EVU1NWV9TWU1MSU5LKQogICAgICAgICBkdW1teV9zeW1saW5rX3N0ID0gb3MubHN0YXQoX0RVTU1ZX1NZTUxJTkspCiAKLSAgICAgICAgcG9zaXgubGNoZmxhZ3MoX0RVTU1ZX1NZTUxJTkssCi0gICAgICAgICAgICAgICAgICAgICAgIGR1bW15X3N5bWxpbmtfc3Quc3RfZmxhZ3MgfCBzdGF0LlVGX0lNTVVUQUJMRSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbmV3X3Rlc3Rmbl9zdCA9IG9zLnN0YXQoc3VwcG9ydC5URVNURk4pCi0gICAgICAgICAgICBuZXdfZHVtbXlfc3ltbGlua19zdCA9IG9zLmxzdGF0KF9EVU1NWV9TWU1MSU5LKQorICAgICAgICBkZWYgY2hmbGFnc19ub2ZvbGxvdyhwYXRoLCBmbGFncyk6CisgICAgICAgICAgICByZXR1cm4gcG9zaXguY2hmbGFncyhwYXRoLCBmbGFncywgZm9sbG93X3N5bWxpbmtzPUZhbHNlKQogCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3Rmbl9zdC5zdF9mbGFncywgbmV3X3Rlc3Rmbl9zdC5zdF9mbGFncykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHVtbXlfc3ltbGlua19zdC5zdF9mbGFncyB8IHN0YXQuVUZfSU1NVVRBQkxFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfZHVtbXlfc3ltbGlua19zdC5zdF9mbGFncykKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHBvc2l4LmxjaGZsYWdzKF9EVU1NWV9TWU1MSU5LLCBkdW1teV9zeW1saW5rX3N0LnN0X2ZsYWdzKQorICAgICAgICBmb3IgZm4gaW4gKHBvc2l4LmxjaGZsYWdzLCBjaGZsYWdzX25vZm9sbG93KToKKyAgICAgICAgICAgIGZuKF9EVU1NWV9TWU1MSU5LLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtbXlfc3ltbGlua19zdC5zdF9mbGFncyB8IHN0YXQuVUZfSU1NVVRBQkxFKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG5ld190ZXN0Zm5fc3QgPSBvcy5zdGF0KHN1cHBvcnQuVEVTVEZOKQorICAgICAgICAgICAgICAgIG5ld19kdW1teV9zeW1saW5rX3N0ID0gb3MubHN0YXQoX0RVTU1ZX1NZTUxJTkspCisKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3Rmbl9zdC5zdF9mbGFncywgbmV3X3Rlc3Rmbl9zdC5zdF9mbGFncykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGR1bW15X3N5bWxpbmtfc3Quc3RfZmxhZ3MgfCBzdGF0LlVGX0lNTVVUQUJMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19kdW1teV9zeW1saW5rX3N0LnN0X2ZsYWdzKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBmbihfRFVNTVlfU1lNTElOSywgZHVtbXlfc3ltbGlua19zdC5zdF9mbGFncykKIAogICAgIGRlZiB0ZXN0X2Vudmlyb24oc2VsZik6CiAgICAgICAgIGlmIG9zLm5hbWUgPT0gIm50IjoKQEAgLTQyMSw2ICs2MjYsMjIgQEAKICAgICAgICAgICAgICAgICBvcy5jaGRpcihjdXJkaXIpCiAgICAgICAgICAgICAgICAgc3VwcG9ydC5ybXRyZWUoYmFzZV9wYXRoKQogCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihwb3NpeCwgJ2dldGdyb3VwbGlzdCcpLCAidGVzdCBuZWVkcyBwb3NpeC5nZXRncm91cGxpc3QoKSIpCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihwd2QsICdnZXRwd3VpZCcpLCAidGVzdCBuZWVkcyBwd2QuZ2V0cHd1aWQoKSIpCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihvcywgJ2dldHVpZCcpLCAidGVzdCBuZWVkcyBvcy5nZXR1aWQoKSIpCisgICAgZGVmIHRlc3RfZ2V0Z3JvdXBsaXN0KHNlbGYpOgorICAgICAgICB3aXRoIG9zLnBvcGVuKCdpZCAtRycpIGFzIGlkZzoKKyAgICAgICAgICAgIGdyb3VwcyA9IGlkZy5yZWFkKCkuc3RyaXAoKQorICAgICAgICAgICAgcmV0ID0gaWRnLmNsb3NlKCkKKworICAgICAgICBpZiByZXQgIT0gTm9uZSBvciBub3QgZ3JvdXBzOgorICAgICAgICAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoIm5lZWQgd29ya2luZyAnaWQgLUcnIikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgc2V0KFtpbnQoeCkgZm9yIHggaW4gZ3JvdXBzLnNwbGl0KCldKSwKKyAgICAgICAgICAgIHNldChwb3NpeC5nZXRncm91cGxpc3QocHdkLmdldHB3dWlkKG9zLmdldHVpZCgpKVswXSwKKyAgICAgICAgICAgICAgICBwd2QuZ2V0cHd1aWQob3MuZ2V0dWlkKCkpWzNdKSkpCisKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKG9zLCAnZ2V0ZWdpZCcpLCAidGVzdCBuZWVkcyBvcy5nZXRlZ2lkKCkiKQogICAgIGRlZiB0ZXN0X2dldGdyb3VwcyhzZWxmKToKICAgICAgICAgd2l0aCBvcy5wb3BlbignaWQgLUcnKSBhcyBpZGc6CkBAIC00MzgsNiArNjU5LDM4OSBAQAogICAgICAgICAgICAgICAgIHNldChbaW50KHgpIGZvciB4IGluIGdyb3Vwcy5zcGxpdCgpXSksCiAgICAgICAgICAgICAgICAgc2V0KHBvc2l4LmdldGdyb3VwcygpICsgW3Bvc2l4LmdldGVnaWQoKV0pKQogCisgICAgIyB0ZXN0cyBmb3IgdGhlIHBvc2l4ICphdCBmdW5jdGlvbnMgZm9sbG93CisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhvcy5hY2Nlc3MgaW4gb3Muc3VwcG9ydHNfZGlyX2ZkLCAidGVzdCBuZWVkcyBkaXJfZmQgc3VwcG9ydCBmb3Igb3MuYWNjZXNzKCkiKQorICAgIGRlZiB0ZXN0X2FjY2Vzc19kaXJfZmQoc2VsZik6CisgICAgICAgIGYgPSBwb3NpeC5vcGVuKHBvc2l4LmdldGN3ZCgpLCBwb3NpeC5PX1JET05MWSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvc2l4LmFjY2VzcyhzdXBwb3J0LlRFU1RGTiwgb3MuUl9PSywgZGlyX2ZkPWYpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcG9zaXguY2xvc2UoZikKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLmNobW9kIGluIG9zLnN1cHBvcnRzX2Rpcl9mZCwgInRlc3QgbmVlZHMgZGlyX2ZkIHN1cHBvcnQgaW4gb3MuY2htb2QoKSIpCisgICAgZGVmIHRlc3RfY2htb2RfZGlyX2ZkKHNlbGYpOgorICAgICAgICBvcy5jaG1vZChzdXBwb3J0LlRFU1RGTiwgc3RhdC5TX0lSVVNSKQorCisgICAgICAgIGYgPSBwb3NpeC5vcGVuKHBvc2l4LmdldGN3ZCgpLCBwb3NpeC5PX1JET05MWSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcG9zaXguY2htb2Qoc3VwcG9ydC5URVNURk4sIHN0YXQuU19JUlVTUiB8IHN0YXQuU19JV1VTUiwgZGlyX2ZkPWYpCisKKyAgICAgICAgICAgIHMgPSBwb3NpeC5zdGF0KHN1cHBvcnQuVEVTVEZOKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzWzBdICYgc3RhdC5TX0lSV1hVLCBzdGF0LlNfSVJVU1IgfCBzdGF0LlNfSVdVU1IpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwb3NpeC5jbG9zZShmKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Mob3MuY2hvd24gaW4gb3Muc3VwcG9ydHNfZGlyX2ZkLCAidGVzdCBuZWVkcyBkaXJfZmQgc3VwcG9ydCBpbiBvcy5jaG93bigpIikKKyAgICBkZWYgdGVzdF9jaG93bl9kaXJfZmQoc2VsZik6CisgICAgICAgIHN1cHBvcnQudW5saW5rKHN1cHBvcnQuVEVTVEZOKQorICAgICAgICBzdXBwb3J0LmNyZWF0ZV9lbXB0eV9maWxlKHN1cHBvcnQuVEVTVEZOKQorCisgICAgICAgIGYgPSBwb3NpeC5vcGVuKHBvc2l4LmdldGN3ZCgpLCBwb3NpeC5PX1JET05MWSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcG9zaXguY2hvd24oc3VwcG9ydC5URVNURk4sIG9zLmdldHVpZCgpLCBvcy5nZXRnaWQoKSwgZGlyX2ZkPWYpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwb3NpeC5jbG9zZShmKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Mob3Muc3RhdCBpbiBvcy5zdXBwb3J0c19kaXJfZmQsICJ0ZXN0IG5lZWRzIGRpcl9mZCBzdXBwb3J0IGluIG9zLnN0YXQoKSIpCisgICAgZGVmIHRlc3Rfc3RhdF9kaXJfZmQoc2VsZik6CisgICAgICAgIHN1cHBvcnQudW5saW5rKHN1cHBvcnQuVEVTVEZOKQorICAgICAgICB3aXRoIG9wZW4oc3VwcG9ydC5URVNURk4sICd3JykgYXMgb3V0ZmlsZToKKyAgICAgICAgICAgIG91dGZpbGUud3JpdGUoInRlc3RsaW5lXG4iKQorCisgICAgICAgIGYgPSBwb3NpeC5vcGVuKHBvc2l4LmdldGN3ZCgpLCBwb3NpeC5PX1JET05MWSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgczEgPSBwb3NpeC5zdGF0KHN1cHBvcnQuVEVTVEZOKQorICAgICAgICAgICAgczIgPSBwb3NpeC5zdGF0KHN1cHBvcnQuVEVTVEZOLCBkaXJfZmQ9ZikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoczEsIHMyKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcG9zaXguY2xvc2UoZikKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLnV0aW1lIGluIG9zLnN1cHBvcnRzX2Rpcl9mZCwgInRlc3QgbmVlZHMgZGlyX2ZkIHN1cHBvcnQgaW4gb3MudXRpbWUoKSIpCisgICAgZGVmIHRlc3RfdXRpbWVfZGlyX2ZkKHNlbGYpOgorICAgICAgICBmID0gcG9zaXgub3Blbihwb3NpeC5nZXRjd2QoKSwgcG9zaXguT19SRE9OTFkpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG5vdyA9IHRpbWUudGltZSgpCisgICAgICAgICAgICBwb3NpeC51dGltZShzdXBwb3J0LlRFU1RGTiwgTm9uZSwgZGlyX2ZkPWYpCisgICAgICAgICAgICBwb3NpeC51dGltZShzdXBwb3J0LlRFU1RGTiwgZGlyX2ZkPWYpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHBvc2l4LnV0aW1lLCBzdXBwb3J0LlRFU1RGTiwgbm93LCBkaXJfZmQ9ZikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcG9zaXgudXRpbWUsIHN1cHBvcnQuVEVTVEZOLCAoTm9uZSwgTm9uZSksIGRpcl9mZD1mKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBwb3NpeC51dGltZSwgc3VwcG9ydC5URVNURk4sIChub3csIE5vbmUpLCBkaXJfZmQ9ZikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcG9zaXgudXRpbWUsIHN1cHBvcnQuVEVTVEZOLCAoTm9uZSwgbm93KSwgZGlyX2ZkPWYpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHBvc2l4LnV0aW1lLCBzdXBwb3J0LlRFU1RGTiwgKG5vdywgIngiKSwgZGlyX2ZkPWYpCisgICAgICAgICAgICBwb3NpeC51dGltZShzdXBwb3J0LlRFU1RGTiwgKGludChub3cpLCBpbnQobm93KSksIGRpcl9mZD1mKQorICAgICAgICAgICAgcG9zaXgudXRpbWUoc3VwcG9ydC5URVNURk4sIChub3csIG5vdyksIGRpcl9mZD1mKQorICAgICAgICAgICAgcG9zaXgudXRpbWUoc3VwcG9ydC5URVNURk4sCisgICAgICAgICAgICAgICAgICAgIChpbnQobm93KSwgaW50KChub3cgLSBpbnQobm93KSkgKiAxZTkpKSwgZGlyX2ZkPWYpCisgICAgICAgICAgICBwb3NpeC51dGltZShzdXBwb3J0LlRFU1RGTiwgZGlyX2ZkPWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXM9KGludChub3cpLCBpbnQoKG5vdyAtIGludChub3cpKSAqIDFlOSkpKQorCisgICAgICAgICAgICAjIHRyeSBkaXJfZmQgYW5kIGZvbGxvd19zeW1saW5rcyB0b2dldGhlcgorICAgICAgICAgICAgaWYgb3MudXRpbWUgaW4gb3Muc3VwcG9ydHNfZm9sbG93X3N5bWxpbmtzOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcG9zaXgudXRpbWUoc3VwcG9ydC5URVNURk4sIGZvbGxvd19zeW1saW5rcz1GYWxzZSwgZGlyX2ZkPWYpCisgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgICMgd2hvb3BzISAgdXNpbmcgYm90aCB0b2dldGhlciBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0uCisgICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcG9zaXguY2xvc2UoZikKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLmxpbmsgaW4gb3Muc3VwcG9ydHNfZGlyX2ZkLCAidGVzdCBuZWVkcyBkaXJfZmQgc3VwcG9ydCBpbiBvcy5saW5rKCkiKQorICAgIGRlZiB0ZXN0X2xpbmtfZGlyX2ZkKHNlbGYpOgorICAgICAgICBmID0gcG9zaXgub3Blbihwb3NpeC5nZXRjd2QoKSwgcG9zaXguT19SRE9OTFkpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBvc2l4Lmxpbmsoc3VwcG9ydC5URVNURk4sIHN1cHBvcnQuVEVTVEZOICsgJ2xpbmsnLCBzcmNfZGlyX2ZkPWYsIGRzdF9kaXJfZmQ9ZikKKyAgICAgICAgICAgICMgc2hvdWxkIGhhdmUgc2FtZSBpbm9kZXMKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9zaXguc3RhdChzdXBwb3J0LlRFU1RGTilbMV0sCisgICAgICAgICAgICAgICAgcG9zaXguc3RhdChzdXBwb3J0LlRFU1RGTiArICdsaW5rJylbMV0pCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwb3NpeC5jbG9zZShmKQorICAgICAgICAgICAgc3VwcG9ydC51bmxpbmsoc3VwcG9ydC5URVNURk4gKyAnbGluaycpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhvcy5ta2RpciBpbiBvcy5zdXBwb3J0c19kaXJfZmQsICJ0ZXN0IG5lZWRzIGRpcl9mZCBzdXBwb3J0IGluIG9zLm1rZGlyKCkiKQorICAgIGRlZiB0ZXN0X21rZGlyX2Rpcl9mZChzZWxmKToKKyAgICAgICAgZiA9IHBvc2l4Lm9wZW4ocG9zaXguZ2V0Y3dkKCksIHBvc2l4Lk9fUkRPTkxZKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwb3NpeC5ta2RpcihzdXBwb3J0LlRFU1RGTiArICdkaXInLCBkaXJfZmQ9ZikKKyAgICAgICAgICAgIHBvc2l4LnN0YXQoc3VwcG9ydC5URVNURk4gKyAnZGlyJykgIyBzaG91bGQgbm90IHJhaXNlIGV4Y2VwdGlvbgorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcG9zaXguY2xvc2UoZikKKyAgICAgICAgICAgIHN1cHBvcnQucm10cmVlKHN1cHBvcnQuVEVTVEZOICsgJ2RpcicpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcygob3MubWtub2QgaW4gb3Muc3VwcG9ydHNfZGlyX2ZkKSBhbmQgaGFzYXR0cihzdGF0LCAnU19JRklGTycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0IHJlcXVpcmVzIGJvdGggc3RhdC5TX0lGSUZPIGFuZCBkaXJfZmQgc3VwcG9ydCBmb3Igb3MubWtub2QoKSIpCisgICAgZGVmIHRlc3RfbWtub2RfZGlyX2ZkKHNlbGYpOgorICAgICAgICAjIFRlc3QgdXNpbmcgbWtub2RhdCgpIHRvIGNyZWF0ZSBhIEZJRk8gKHRoZSBvbmx5IHVzZSBzcGVjaWZpZWQKKyAgICAgICAgIyBieSBQT1NJWCkuCisgICAgICAgIHN1cHBvcnQudW5saW5rKHN1cHBvcnQuVEVTVEZOKQorICAgICAgICBtb2RlID0gc3RhdC5TX0lGSUZPIHwgc3RhdC5TX0lSVVNSIHwgc3RhdC5TX0lXVVNSCisgICAgICAgIGYgPSBwb3NpeC5vcGVuKHBvc2l4LmdldGN3ZCgpLCBwb3NpeC5PX1JET05MWSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcG9zaXgubWtub2Qoc3VwcG9ydC5URVNURk4sIG1vZGUsIDAsIGRpcl9mZD1mKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgIyBTb21lIG9sZCBzeXN0ZW1zIGRvbid0IGFsbG93IHVucHJpdmlsZWdlZCB1c2VycyB0byB1c2UKKyAgICAgICAgICAgICMgbWtub2QoKSwgb3Igb25seSBzdXBwb3J0IGNyZWF0aW5nIGRldmljZSBub2Rlcy4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oZS5lcnJubywgKGVycm5vLkVQRVJNLCBlcnJuby5FSU5WQUwpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHN0YXQuU19JU0ZJRk8ocG9zaXguc3RhdChzdXBwb3J0LlRFU1RGTikuc3RfbW9kZSkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwb3NpeC5jbG9zZShmKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Mob3Mub3BlbiBpbiBvcy5zdXBwb3J0c19kaXJfZmQsICJ0ZXN0IG5lZWRzIGRpcl9mZCBzdXBwb3J0IGluIG9zLm9wZW4oKSIpCisgICAgZGVmIHRlc3Rfb3Blbl9kaXJfZmQoc2VsZik6CisgICAgICAgIHN1cHBvcnQudW5saW5rKHN1cHBvcnQuVEVTVEZOKQorICAgICAgICB3aXRoIG9wZW4oc3VwcG9ydC5URVNURk4sICd3JykgYXMgb3V0ZmlsZToKKyAgICAgICAgICAgIG91dGZpbGUud3JpdGUoInRlc3RsaW5lXG4iKQorICAgICAgICBhID0gcG9zaXgub3Blbihwb3NpeC5nZXRjd2QoKSwgcG9zaXguT19SRE9OTFkpCisgICAgICAgIGIgPSBwb3NpeC5vcGVuKHN1cHBvcnQuVEVTVEZOLCBwb3NpeC5PX1JET05MWSwgZGlyX2ZkPWEpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlcyA9IHBvc2l4LnJlYWQoYiwgOSkuZGVjb2RlKGVuY29kaW5nPSJ1dGYtOCIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXN0bGluZVxuIiwgcmVzKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcG9zaXguY2xvc2UoYSkKKyAgICAgICAgICAgIHBvc2l4LmNsb3NlKGIpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhvcy5yZWFkbGluayBpbiBvcy5zdXBwb3J0c19kaXJfZmQsICJ0ZXN0IG5lZWRzIGRpcl9mZCBzdXBwb3J0IGluIG9zLnJlYWRsaW5rKCkiKQorICAgIGRlZiB0ZXN0X3JlYWRsaW5rX2Rpcl9mZChzZWxmKToKKyAgICAgICAgb3Muc3ltbGluayhzdXBwb3J0LlRFU1RGTiwgc3VwcG9ydC5URVNURk4gKyAnbGluaycpCisgICAgICAgIGYgPSBwb3NpeC5vcGVuKHBvc2l4LmdldGN3ZCgpLCBwb3NpeC5PX1JET05MWSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3NpeC5yZWFkbGluayhzdXBwb3J0LlRFU1RGTiArICdsaW5rJyksCisgICAgICAgICAgICAgICAgcG9zaXgucmVhZGxpbmsoc3VwcG9ydC5URVNURk4gKyAnbGluaycsIGRpcl9mZD1mKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHN1cHBvcnQudW5saW5rKHN1cHBvcnQuVEVTVEZOICsgJ2xpbmsnKQorICAgICAgICAgICAgcG9zaXguY2xvc2UoZikKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLnJlbmFtZSBpbiBvcy5zdXBwb3J0c19kaXJfZmQsICJ0ZXN0IG5lZWRzIGRpcl9mZCBzdXBwb3J0IGluIG9zLnJlbmFtZSgpIikKKyAgICBkZWYgdGVzdF9yZW5hbWVfZGlyX2ZkKHNlbGYpOgorICAgICAgICBzdXBwb3J0LnVubGluayhzdXBwb3J0LlRFU1RGTikKKyAgICAgICAgc3VwcG9ydC5jcmVhdGVfZW1wdHlfZmlsZShzdXBwb3J0LlRFU1RGTiArICdyZW4nKQorICAgICAgICBmID0gcG9zaXgub3Blbihwb3NpeC5nZXRjd2QoKSwgcG9zaXguT19SRE9OTFkpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBvc2l4LnJlbmFtZShzdXBwb3J0LlRFU1RGTiArICdyZW4nLCBzdXBwb3J0LlRFU1RGTiwgc3JjX2Rpcl9mZD1mLCBkc3RfZGlyX2ZkPWYpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHBvc2l4LnJlbmFtZShzdXBwb3J0LlRFU1RGTiArICdyZW4nLCBzdXBwb3J0LlRFU1RGTikKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwb3NpeC5zdGF0KHN1cHBvcnQuVEVTVEZOKSAjIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwb3NpeC5jbG9zZShmKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Mob3Muc3ltbGluayBpbiBvcy5zdXBwb3J0c19kaXJfZmQsICJ0ZXN0IG5lZWRzIGRpcl9mZCBzdXBwb3J0IGluIG9zLnN5bWxpbmsoKSIpCisgICAgZGVmIHRlc3Rfc3ltbGlua19kaXJfZmQoc2VsZik6CisgICAgICAgIGYgPSBwb3NpeC5vcGVuKHBvc2l4LmdldGN3ZCgpLCBwb3NpeC5PX1JET05MWSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcG9zaXguc3ltbGluayhzdXBwb3J0LlRFU1RGTiwgc3VwcG9ydC5URVNURk4gKyAnbGluaycsIGRpcl9mZD1mKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3NpeC5yZWFkbGluayhzdXBwb3J0LlRFU1RGTiArICdsaW5rJyksIHN1cHBvcnQuVEVTVEZOKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcG9zaXguY2xvc2UoZikKKyAgICAgICAgICAgIHN1cHBvcnQudW5saW5rKHN1cHBvcnQuVEVTVEZOICsgJ2xpbmsnKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Mob3MudW5saW5rIGluIG9zLnN1cHBvcnRzX2Rpcl9mZCwgInRlc3QgbmVlZHMgZGlyX2ZkIHN1cHBvcnQgaW4gb3MudW5saW5rKCkiKQorICAgIGRlZiB0ZXN0X3VubGlua19kaXJfZmQoc2VsZik6CisgICAgICAgIGYgPSBwb3NpeC5vcGVuKHBvc2l4LmdldGN3ZCgpLCBwb3NpeC5PX1JET05MWSkKKyAgICAgICAgc3VwcG9ydC5jcmVhdGVfZW1wdHlfZmlsZShzdXBwb3J0LlRFU1RGTiArICdkZWwnKQorICAgICAgICBwb3NpeC5zdGF0KHN1cHBvcnQuVEVTVEZOICsgJ2RlbCcpICMgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcG9zaXgudW5saW5rKHN1cHBvcnQuVEVTVEZOICsgJ2RlbCcsIGRpcl9mZD1mKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBzdXBwb3J0LnVubGluayhzdXBwb3J0LlRFU1RGTiArICdkZWwnKQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHBvc2l4LnN0YXQsIHN1cHBvcnQuVEVTVEZOICsgJ2xpbmsnKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcG9zaXguY2xvc2UoZikKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKG9zLm1rZmlmbyBpbiBvcy5zdXBwb3J0c19kaXJfZmQsICJ0ZXN0IG5lZWRzIGRpcl9mZCBzdXBwb3J0IGluIG9zLm1rZmlmbygpIikKKyAgICBkZWYgdGVzdF9ta2ZpZm9fZGlyX2ZkKHNlbGYpOgorICAgICAgICBzdXBwb3J0LnVubGluayhzdXBwb3J0LlRFU1RGTikKKyAgICAgICAgZiA9IHBvc2l4Lm9wZW4ocG9zaXguZ2V0Y3dkKCksIHBvc2l4Lk9fUkRPTkxZKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwb3NpeC5ta2ZpZm8oc3VwcG9ydC5URVNURk4sIHN0YXQuU19JUlVTUiB8IHN0YXQuU19JV1VTUiwgZGlyX2ZkPWYpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoc3RhdC5TX0lTRklGTyhwb3NpeC5zdGF0KHN1cHBvcnQuVEVTVEZOKS5zdF9tb2RlKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBvc2l4LmNsb3NlKGYpCisKKyAgICByZXF1aXJlc19zY2hlZF9oID0gdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHBvc2l4LCAnc2NoZWRfeWllbGQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9uJ3QgaGF2ZSBzY2hlZHVsaW5nIHN1cHBvcnQiKQorICAgIHJlcXVpcmVzX3NjaGVkX2FmZmluaXR5ID0gdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHBvc2l4LCAnY3B1X3NldCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9uJ3QgaGF2ZSBzY2hlZCBhZmZpbml0eSBzdXBwb3J0IikKKworICAgIEByZXF1aXJlc19zY2hlZF9oCisgICAgZGVmIHRlc3Rfc2NoZWRfeWllbGQoc2VsZik6CisgICAgICAgICMgVGhpcyBoYXMgbm8gZXJyb3IgY29uZGl0aW9ucyAoYXQgbGVhc3Qgb24gTGludXgpLgorICAgICAgICBwb3NpeC5zY2hlZF95aWVsZCgpCisKKyAgICBAcmVxdWlyZXNfc2NoZWRfaAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIocG9zaXgsICdzY2hlZF9nZXRfcHJpb3JpdHlfbWF4JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVpcmVzIHNjaGVkX2dldF9wcmlvcml0eV9tYXgoKSIpCisgICAgZGVmIHRlc3Rfc2NoZWRfcHJpb3JpdHkoc2VsZik6CisgICAgICAgICMgUm91bmQtcm9iaW4gdXN1YWxseSBoYXMgaW50ZXJlc3RpbmcgcHJpb3JpdGllcy4KKyAgICAgICAgcG9sID0gcG9zaXguU0NIRURfUlIKKyAgICAgICAgbG8gPSBwb3NpeC5zY2hlZF9nZXRfcHJpb3JpdHlfbWluKHBvbCkKKyAgICAgICAgaGkgPSBwb3NpeC5zY2hlZF9nZXRfcHJpb3JpdHlfbWF4KHBvbCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGxvLCBpbnQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShoaSwgaW50KQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChoaSwgbG8pCisgICAgICAgICMgT1NYIGV2aWRlbnRseSBqdXN0IHJldHVybnMgMTUgd2l0aG91dCBjaGVja2luZyB0aGUgYXJndW1lbnQuCisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSAhPSAiZGFyd2luIjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHBvc2l4LnNjaGVkX2dldF9wcmlvcml0eV9taW4sIC0yMykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHBvc2l4LnNjaGVkX2dldF9wcmlvcml0eV9tYXgsIC0yMykKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIocG9zaXgsICdzY2hlZF9zZXRzY2hlZHVsZXInKSwgImNhbid0IGNoYW5nZSBzY2hlZHVsZXIiKQorICAgIGRlZiB0ZXN0X2dldF9hbmRfc2V0X3NjaGVkdWxlcl9hbmRfcGFyYW0oc2VsZik6CisgICAgICAgIHBvc3NpYmxlX3NjaGVkdWxlcnMgPSBbc2NoZWQgZm9yIG5hbWUsIHNjaGVkIGluIHBvc2l4Ll9fZGljdF9fLml0ZW1zKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoIlNDSEVEXyIpXQorICAgICAgICBtaW5lID0gcG9zaXguc2NoZWRfZ2V0c2NoZWR1bGVyKDApCisgICAgICAgIHNlbGYuYXNzZXJ0SW4obWluZSwgcG9zc2libGVfc2NoZWR1bGVycykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGFyZW50ID0gcG9zaXguc2NoZWRfZ2V0c2NoZWR1bGVyKG9zLmdldHBwaWQoKSkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRVBFUk06CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4ocGFyZW50LCBwb3NzaWJsZV9zY2hlZHVsZXJzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBwb3NpeC5zY2hlZF9nZXRzY2hlZHVsZXIsIC0xKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBwb3NpeC5zY2hlZF9nZXRwYXJhbSwgLTEpCisgICAgICAgIHBhcmFtID0gcG9zaXguc2NoZWRfZ2V0cGFyYW0oMCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHBhcmFtLnNjaGVkX3ByaW9yaXR5LCBpbnQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBvc2l4LnNjaGVkX3NldHNjaGVkdWxlcigwLCBtaW5lLCBwYXJhbSkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRVBFUk06CisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgICAgICAjIFBPU0lYIHN0YXRlcyB0aGF0IGNhbGxpbmcgc2NoZWRfc2V0cGFyYW0oKSBvbiBhIHByb2Nlc3Mgd2l0aCBhCisgICAgICAgICMgc2NoZWR1bGluZyBwb2xpY3kgb3RoZXIgdGhhbiBTQ0hFRF9GSUZPIG9yIFNDSEVEX1JSIGlzCisgICAgICAgICMgaW1wbGVtZW50YXRpb24tZGVmaW5lZDogRnJlZUJTRCByZXR1cm5zIEVJTlZBTC4KKyAgICAgICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdmcmVlYnNkJyk6CisgICAgICAgICAgICBwb3NpeC5zY2hlZF9zZXRwYXJhbSgwLCBwYXJhbSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHBvc2l4LnNjaGVkX3NldHBhcmFtLCAtMSwgcGFyYW0pCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgcG9zaXguc2NoZWRfc2V0c2NoZWR1bGVyLCAtMSwgbWluZSwgcGFyYW0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcG9zaXguc2NoZWRfc2V0c2NoZWR1bGVyLCAwLCBtaW5lLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHBvc2l4LnNjaGVkX3NldHBhcmFtLCAwLCA0MykKKyAgICAgICAgcGFyYW0gPSBwb3NpeC5zY2hlZF9wYXJhbShOb25lKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHBvc2l4LnNjaGVkX3NldHBhcmFtLCAwLCBwYXJhbSkKKyAgICAgICAgbGFyZ2UgPSAyMTQ3NDgzNjQ3MDAKKyAgICAgICAgcGFyYW0gPSBwb3NpeC5zY2hlZF9wYXJhbShsYXJnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgcG9zaXguc2NoZWRfc2V0cGFyYW0sIDAsIHBhcmFtKQorICAgICAgICBwYXJhbSA9IHBvc2l4LnNjaGVkX3BhcmFtKHNjaGVkX3ByaW9yaXR5PS1sYXJnZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgcG9zaXguc2NoZWRfc2V0cGFyYW0sIDAsIHBhcmFtKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihwb3NpeCwgInNjaGVkX3JyX2dldF9pbnRlcnZhbCIpLCAibm8gZnVuY3Rpb24iKQorICAgIGRlZiB0ZXN0X3NjaGVkX3JyX2dldF9pbnRlcnZhbChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW50ZXJ2YWwgPSBwb3NpeC5zY2hlZF9ycl9nZXRfaW50ZXJ2YWwoMCkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgICAgICMgVGhpcyBsaWtlbHkgbWVhbnMgdGhhdCBzY2hlZF9ycl9nZXRfaW50ZXJ2YWwgaXMgb25seSB2YWxpZCBmb3IKKyAgICAgICAgICAgICMgcHJvY2Vzc2VzIHdpdGggdGhlIFNDSEVEX1JSIHNjaGVkdWxlciBpbiBlZmZlY3QuCisgICAgICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVJTlZBTDoKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgib25seSB3b3JrcyBvbiBTQ0hFRF9SUiBwcm9jZXNzZXMiKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaW50ZXJ2YWwsIGZsb2F0KQorICAgICAgICAjIFJlYXNvbmFibGUgY29uc3RyYWludHMsIEkgdGhpbmsuCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGludGVydmFsLCAwLikKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzKGludGVydmFsLCAxLikKKworICAgIEByZXF1aXJlc19zY2hlZF9hZmZpbml0eQorICAgIGRlZiB0ZXN0X3NjaGVkX2FmZmluaXR5KHNlbGYpOgorICAgICAgICBtYXNrID0gcG9zaXguc2NoZWRfZ2V0YWZmaW5pdHkoMCwgMTAyNCkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwobWFzay5jb3VudCgpLCAxKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobWFzaywgcG9zaXguY3B1X3NldCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgcG9zaXguc2NoZWRfZ2V0YWZmaW5pdHksIC0xLCAxMDI0KQorICAgICAgICBlbXB0eSA9IHBvc2l4LmNwdV9zZXQoMTApCisgICAgICAgIHBvc2l4LnNjaGVkX3NldGFmZmluaXR5KDAsIG1hc2spCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHBvc2l4LnNjaGVkX3NldGFmZmluaXR5LCAwLCBlbXB0eSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgcG9zaXguc2NoZWRfc2V0YWZmaW5pdHksIC0xLCBtYXNrKQorCisgICAgQHJlcXVpcmVzX3NjaGVkX2FmZmluaXR5CisgICAgZGVmIHRlc3RfY3B1X3NldF9iYXNpYyhzZWxmKToKKyAgICAgICAgcyA9IHBvc2l4LmNwdV9zZXQoMTApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHMpLCAxMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmNvdW50KCksIDApCisgICAgICAgIHMuc2V0KDApCisgICAgICAgIHMuc2V0KDkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzLmlzc2V0KDApKQorICAgICAgICBzZWxmLmFzc2VydFRydWUocy5pc3NldCg5KSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzLmlzc2V0KDUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuY291bnQoKSwgMikKKyAgICAgICAgcy5jbGVhcigwKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHMuaXNzZXQoMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5jb3VudCgpLCAxKQorICAgICAgICBzLnplcm8oKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHMuaXNzZXQoMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uocy5pc3NldCg5KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmNvdW50KCksIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHMuc2V0LCAtMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcy5zZXQsIDEwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzLmNsZWFyLCAtMSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcy5jbGVhciwgMTApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHMuaXNzZXQsIC0xKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzLmlzc2V0LCAxMCkKKworICAgIEByZXF1aXJlc19zY2hlZF9hZmZpbml0eQorICAgIGRlZiB0ZXN0X2NwdV9zZXRfY21wKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHBvc2l4LmNwdV9zZXQoMTEpLCBwb3NpeC5jcHVfc2V0KDEyKSkKKyAgICAgICAgbCA9IHBvc2l4LmNwdV9zZXQoMTApCisgICAgICAgIHIgPSBwb3NpeC5jcHVfc2V0KDEwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGwsIHIpCisgICAgICAgIGwuc2V0KDEpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwobCwgcikKKyAgICAgICAgci5zZXQoMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsLCByKQorCisgICAgQHJlcXVpcmVzX3NjaGVkX2FmZmluaXR5CisgICAgZGVmIHRlc3RfY3B1X3NldF9iaXR3aXNlKHNlbGYpOgorICAgICAgICBsID0gcG9zaXguY3B1X3NldCg1KQorICAgICAgICBsLnNldCgwKQorICAgICAgICBsLnNldCgxKQorICAgICAgICByID0gcG9zaXguY3B1X3NldCg1KQorICAgICAgICByLnNldCgxKQorICAgICAgICByLnNldCgyKQorICAgICAgICBiID0gbCAmIHIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmNvdW50KCksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShiLmlzc2V0KDEpKQorICAgICAgICBiID0gbCB8IHIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLmNvdW50KCksIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShiLmlzc2V0KDApKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYi5pc3NldCgxKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGIuaXNzZXQoMikpCisgICAgICAgIGIgPSBsIF4gcgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIuY291bnQoKSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGIuaXNzZXQoMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYi5pc3NldCgxKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGIuaXNzZXQoMikpCisgICAgICAgIGIgPSBsCisgICAgICAgIGIgfD0gcgorICAgICAgICBzZWxmLmFzc2VydElzKGIsIGwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobC5jb3VudCgpLCAzKQorCisgICAgZGVmIHRlc3RfcnRsZF9jb25zdGFudHMoc2VsZik6CisgICAgICAgICMgY2hlY2sgcHJlc2VuY2Ugb2YgbWFqb3IgUlRMRF8qIGNvbnN0YW50cworICAgICAgICBwb3NpeC5SVExEX0xBWlkKKyAgICAgICAgcG9zaXguUlRMRF9OT1cKKyAgICAgICAgcG9zaXguUlRMRF9HTE9CQUwKKyAgICAgICAgcG9zaXguUlRMRF9MT0NBTAorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihvcywgJ1NFRUtfSE9MRScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0IG5lZWRzIGFuIE9TIHRoYXQgcmVwb3J0cyBmaWxlIGhvbGVzIikKKyAgICBkZWYgdGVzdF9mc19ob2xlcyhzZWxmKToKKyAgICAgICAgIyBFdmVuIGlmIHRoZSBmaWxlc3lzdGVtIGRvZXNuJ3QgcmVwb3J0IGhvbGVzLAorICAgICAgICAjIGlmIHRoZSBPUyBzdXBwb3J0cyBpdCB0aGUgU0VFS18qIGNvbnN0YW50cworICAgICAgICAjIHdpbGwgYmUgZGVmaW5lZCBhbmQgd2lsbCBoYXZlIGEgY29uc2lzdGVudAorICAgICAgICAjIGJlaGF2aW91cjoKKyAgICAgICAgIyBvcy5TRUVLX0RBVEEgPSBjdXJyZW50IHBvc2l0aW9uCisgICAgICAgICMgb3MuU0VFS19IT0xFID0gZW5kIG9mIGZpbGUgcG9zaXRpb24KKyAgICAgICAgd2l0aCBvcGVuKHN1cHBvcnQuVEVTVEZOLCAncitiJykgYXMgZnA6CisgICAgICAgICAgICBmcC53cml0ZShiImhlbGxvIikKKyAgICAgICAgICAgIGZwLmZsdXNoKCkKKyAgICAgICAgICAgIHNpemUgPSBmcC50ZWxsKCkKKyAgICAgICAgICAgIGZubyA9IGZwLmZpbGVubygpCisgICAgICAgICAgICB0cnkgOgorICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKHNpemUpOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGksIG9zLmxzZWVrKGZubywgaSwgb3MuU0VFS19EQVRBKSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwoc2l6ZSwgb3MubHNlZWsoZm5vLCBpLCBvcy5TRUVLX0hPTEUpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIG9zLmxzZWVrLCBmbm8sIHNpemUsIG9zLlNFRUtfREFUQSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5sc2VlaywgZm5vLCBzaXplLCBvcy5TRUVLX0hPTEUpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvciA6CisgICAgICAgICAgICAgICAgIyBTb21lIE9TcyBjbGFpbSB0byBzdXBwb3J0IFNFRUtfSE9MRS9TRUVLX0RBVEEKKyAgICAgICAgICAgICAgICAjIGJ1dCBpdCBpcyBub3QgdHJ1ZS4KKyAgICAgICAgICAgICAgICAjIEZvciBpbnN0YW5jZToKKyAgICAgICAgICAgICAgICAjIGh0dHA6Ly9saXN0cy5mcmVlYnNkLm9yZy9waXBlcm1haWwvZnJlZWJzZC1hbWQ2NC8yMDEyLUphbnVhcnkvMDE0MzMyLmh0bWwKKyAgICAgICAgICAgICAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdCgiT1NFcnJvciByYWlzZWQhIikKKwogY2xhc3MgUG9zaXhHcm91cHNUZXN0ZXIodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgpAQCAtNDczLDkgKzEwNzcsMTEgQEAKICAgICAgICAgICAgIHBvc2l4LnNldGdyb3Vwcyhncm91cHMpCiAgICAgICAgICAgICBzZWxmLmFzc2VydExpc3RFcXVhbChncm91cHMsIHBvc2l4LmdldGdyb3VwcygpKQogCi0KIGRlZiB0ZXN0X21haW4oKToKLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChQb3NpeFRlc3RlciwgUG9zaXhHcm91cHNUZXN0ZXIpCisgICAgdHJ5OgorICAgICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChQb3NpeFRlc3RlciwgUG9zaXhHcm91cHNUZXN0ZXIpCisgICAgZmluYWxseToKKyAgICAgICAgc3VwcG9ydC5yZWFwX2NoaWxkcmVuKCkKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9wb3NpeHBhdGgucHkgYi9MaWIvdGVzdC90ZXN0X3Bvc2l4cGF0aC5weQppbmRleCBhN2EzZTRhLi5kYWViZWFhIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3Bvc2l4cGF0aC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3Bvc2l4cGF0aC5weQpAQCAtMSwxMCArMSwxMCBAQAotaW1wb3J0IHVuaXR0ZXN0Ci1mcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQsIHRlc3RfZ2VuZXJpY3BhdGgKLQotaW1wb3J0IHBvc2l4cGF0aAogaW1wb3J0IG9zCitpbXBvcnQgcG9zaXhwYXRoCiBpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB3YXJuaW5ncwogZnJvbSBwb3NpeHBhdGggaW1wb3J0IHJlYWxwYXRoLCBhYnNwYXRoLCBkaXJuYW1lLCBiYXNlbmFtZQorZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0LCB0ZXN0X2dlbmVyaWNwYXRoCiAKIHRyeToKICAgICBpbXBvcnQgcG9zaXgKQEAgLTIzMSw3ICsyMzEsOSBAQAogCiAgICAgZGVmIHRlc3RfaXNtb3VudChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRJcyhwb3NpeHBhdGguaXNtb3VudCgiLyIpLCBUcnVlKQotICAgICAgICBzZWxmLmFzc2VydElzKHBvc2l4cGF0aC5pc21vdW50KGIiLyIpLCBUcnVlKQorICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImlnbm9yZSIsIERlcHJlY2F0aW9uV2FybmluZykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMocG9zaXhwYXRoLmlzbW91bnQoYiIvIiksIFRydWUpCiAKICAgICBkZWYgdGVzdF9pc21vdW50X25vbl9leGlzdGVudChzZWxmKToKICAgICAgICAgIyBOb24tZXhpc3RlbnQgbW91bnRwb2ludC4KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcHByaW50LnB5IGIvTGliL3Rlc3QvdGVzdF9wcHJpbnQucHkKaW5kZXggNGU1M2NkOC4uYjI2MjkxYiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9wcHJpbnQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9wcHJpbnQucHkKQEAgLTIxOSw2ICsyMTksOCBAQAogIG90aGVycy5zaG91bGQubm90LmJlOiBsaWtlLnRoaXN9IiIiCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRG90dGVkUHJldHR5UHJpbnRlcigpLnBmb3JtYXQobyksIGV4cCkKIAorICAgIEB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmUKKyAgICAjU2VlIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUxMzkwNwogICAgIEB0ZXN0LnN1cHBvcnQuY3B5dGhvbl9vbmx5CiAgICAgZGVmIHRlc3Rfc2V0X3JlcHJzKHNlbGYpOgogICAgICAgICAjIFRoaXMgdGVzdCBjcmVhdGVzIGEgY29tcGxleCBhcnJhbmdlbWVudCBvZiBmcm96ZW5zZXRzIGFuZApAQCAtMjQxLDEwICsyNDMsMTIgQEAKICAgICAgICAgIyBDb25zZXF1ZW50bHksIHRoaXMgdGVzdCBpcyBmcmFnaWxlIGFuZAogICAgICAgICAjIGltcGxlbWVudGF0aW9uLWRlcGVuZGVudC4gIFNtYWxsIGNoYW5nZXMgdG8gUHl0aG9uJ3Mgc29ydAogICAgICAgICAjIGFsZ29yaXRobSBjYXVzZSB0aGUgdGVzdCB0byBmYWlsIHdoZW4gaXQgc2hvdWxkIHBhc3MuCisgICAgICAgICMgWFhYIE9yIGNoYW5nZXMgdG8gdGhlIGRpY3Rpb25hcnkgaW1wbG1lbnRhdGlvbi4uLgogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHByaW50LnBmb3JtYXQoc2V0KCkpLCAnc2V0KCknKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBwcmludC5wZm9ybWF0KHNldChyYW5nZSgzKSkpLCAnezAsIDEsIDJ9JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcHJpbnQucGZvcm1hdChmcm96ZW5zZXQoKSksICdmcm96ZW5zZXQoKScpCisKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcHJpbnQucGZvcm1hdChmcm96ZW5zZXQocmFuZ2UoMykpKSwgJ2Zyb3plbnNldCh7MCwgMSwgMn0pJykKICAgICAgICAgY3ViZV9yZXByX3RndCA9ICIiIlwKIHtmcm96ZW5zZXQoKTogZnJvemVuc2V0KHtmcm96ZW5zZXQoezJ9KSwgZnJvemVuc2V0KHswfSksIGZyb3plbnNldCh7MX0pfSksCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3ByaW50LnB5IGIvTGliL3Rlc3QvdGVzdF9wcmludC5weQppbmRleCA4ZDM3YmJjLi45ZDZkYmVhIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3ByaW50LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcHJpbnQucHkKQEAgLTExMSw2ICsxMTEsMzIgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBwcmludCwgJycsIGVuZD0zKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgcHJpbnQsICcnLCBmaWxlPScnKQogCisgICAgZGVmIHRlc3RfcHJpbnRfZmx1c2goc2VsZik6CisgICAgICAgICMgb3BlcmF0aW9uIG9mIHRoZSBmbHVzaCBmbGFnCisgICAgICAgIGNsYXNzIGZpbGVsaWtlKCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi53cml0dGVuID0gJycKKyAgICAgICAgICAgICAgICBzZWxmLmZsdXNoZWQgPSAwCisgICAgICAgICAgICBkZWYgd3JpdGUoc2VsZiwgc3RyKToKKyAgICAgICAgICAgICAgICBzZWxmLndyaXR0ZW4gKz0gc3RyCisgICAgICAgICAgICBkZWYgZmx1c2goc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5mbHVzaGVkICs9IDEKKworICAgICAgICBmID0gZmlsZWxpa2UoKQorICAgICAgICBwcmludCgxLCBmaWxlPWYsIGVuZD0nJywgZmx1c2g9VHJ1ZSkKKyAgICAgICAgcHJpbnQoMiwgZmlsZT1mLCBlbmQ9JycsIGZsdXNoPVRydWUpCisgICAgICAgIHByaW50KDMsIGZpbGU9ZiwgZmx1c2g9RmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi53cml0dGVuLCAnMTIzXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuZmx1c2hlZCwgMikKKworICAgICAgICAjIGVuc3VyZSBleGNlcHRpb25zIGZyb20gZmx1c2ggYXJlIHBhc3NlZCB0aHJvdWdoCisgICAgICAgIGNsYXNzIG5vZmx1c2goKToKKyAgICAgICAgICAgIGRlZiB3cml0ZShzZWxmLCBzdHIpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGRlZiBmbHVzaChzZWxmKToKKyAgICAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBwcmludCwgMSwgZmlsZT1ub2ZsdXNoKCksIGZsdXNoPVRydWUpCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChUZXN0UHJpbnQpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcHJvcGVydHkucHkgYi9MaWIvdGVzdC90ZXN0X3Byb3BlcnR5LnB5CmluZGV4IGNjNmE4NzIuLjcyNmQ2ZmUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfcHJvcGVydHkucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9wcm9wZXJ0eS5weQpAQCAtMTI4LDYgKzEyOCwyOSBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld2dldHRlci5zcGFtLCA4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld2dldHRlci5fX2NsYXNzX18uc3BhbS5fX2RvY19fLCAibmV3IGRvY3N0cmluZyIpCiAKKyAgICBkZWYgdGVzdF9wcm9wZXJ0eV9fX2lzYWJzdHJhY3RtZXRob2RfX2Rlc2NyaXB0b3Ioc2VsZik6CisgICAgICAgIGZvciB2YWwgaW4gKFRydWUsIEZhbHNlLCBbXSwgWzFdLCAnJywgJzEnKToKKyAgICAgICAgICAgIGNsYXNzIEMob2JqZWN0KToKKyAgICAgICAgICAgICAgICBkZWYgZm9vKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZm9vLl9faXNhYnN0cmFjdG1ldGhvZF9fID0gdmFsCisgICAgICAgICAgICAgICAgZm9vID0gcHJvcGVydHkoZm9vKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhDLmZvby5fX2lzYWJzdHJhY3RtZXRob2RfXywgYm9vbCh2YWwpKQorCisgICAgICAgICMgY2hlY2sgdGhhdCB0aGUgcHJvcGVydHkncyBfX2lzYWJzdHJhY3RtZXRob2RfXyBkZXNjcmlwdG9yIGRvZXMgdGhlCisgICAgICAgICMgcmlnaHQgdGhpbmcgd2hlbiBwcmVzZW50ZWQgd2l0aCBhIHZhbHVlIHRoYXQgZmFpbHMgdHJ1dGggdGVzdGluZzoKKyAgICAgICAgY2xhc3MgTm90Qm9vbChvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9fbm9uemVyb19fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKQorICAgICAgICAgICAgX19sZW5fXyA9IF9fbm9uemVyb19fCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBjbGFzcyBDKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIGZvbyhzZWxmKToKKyAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGZvby5fX2lzYWJzdHJhY3RtZXRob2RfXyA9IE5vdEJvb2woKQorICAgICAgICAgICAgICAgIGZvbyA9IHByb3BlcnR5KGZvbykKKyAgICAgICAgICAgIEMuZm9vLl9faXNhYnN0cmFjdG1ldGhvZF9fCisKIAogIyBJc3N1ZSA1ODkwOiBzdWJjbGFzc2VzIG9mIHByb3BlcnR5IGRvIG5vdCBwcmVzZXJ2ZSBtZXRob2QgX19kb2NfXyBzdHJpbmdzCiBjbGFzcyBQcm9wZXJ0eVN1Yihwcm9wZXJ0eSk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3B0eS5weSBiL0xpYi90ZXN0L3Rlc3RfcHR5LnB5CmluZGV4IDRmMTI1MWMuLmVmOTUyNjggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfcHR5LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcHR5LnB5CkBAIC0yMDUsNiArMjA1LDcgQEAKICAgICAgICAgc2VsZi5vcmlnX3N0ZG91dF9maWxlbm8gPSBwdHkuU1RET1VUX0ZJTEVOTwogICAgICAgICBzZWxmLm9yaWdfcHR5X3NlbGVjdCA9IHB0eS5zZWxlY3QKICAgICAgICAgc2VsZi5mZHMgPSBbXSAgIyBBIGxpc3Qgb2YgZmlsZSBkZXNjcmlwdG9ycyB0byBjbG9zZS4KKyAgICAgICAgc2VsZi5maWxlcyA9IFtdCiAgICAgICAgIHNlbGYuc2VsZWN0X3JmZHNfbGVuZ3RocyA9IFtdCiAgICAgICAgIHNlbGYuc2VsZWN0X3JmZHNfcmVzdWx0cyA9IFtdCiAKQEAgLTIxMiwxMCArMjEzLDE1IEBACiAgICAgICAgIHB0eS5TVERJTl9GSUxFTk8gPSBzZWxmLm9yaWdfc3RkaW5fZmlsZW5vCiAgICAgICAgIHB0eS5TVERPVVRfRklMRU5PID0gc2VsZi5vcmlnX3N0ZG91dF9maWxlbm8KICAgICAgICAgcHR5LnNlbGVjdCA9IHNlbGYub3JpZ19wdHlfc2VsZWN0CisgICAgICAgIGZvciBmaWxlIGluIHNlbGYuZmlsZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZmlsZS5jbG9zZSgpCisgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGZvciBmZCBpbiBzZWxmLmZkczoKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBvcy5jbG9zZShmZCkKLSAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgogICAgICAgICAgICAgICAgIHBhc3MKIAogICAgIGRlZiBfcGlwZShzZWxmKToKQEAgLTIyMyw2ICsyMjksMTEgQEAKICAgICAgICAgc2VsZi5mZHMuZXh0ZW5kKHBpcGVfZmRzKQogICAgICAgICByZXR1cm4gcGlwZV9mZHMKIAorICAgIGRlZiBfc29ja2V0cGFpcihzZWxmKToKKyAgICAgICAgc29ja2V0cGFpciA9IHNvY2tldC5zb2NrZXRwYWlyKCkKKyAgICAgICAgc2VsZi5maWxlcy5leHRlbmQoc29ja2V0cGFpcikKKyAgICAgICAgcmV0dXJuIHNvY2tldHBhaXIKKwogICAgIGRlZiBfbW9ja19zZWxlY3Qoc2VsZiwgcmZkcywgd2ZkcywgeGZkcyk6CiAgICAgICAgICMgVGhpcyB3aWxsIHJhaXNlIEluZGV4RXJyb3Igd2hlbiBubyBtb3JlIGV4cGVjdGVkIGNhbGxzIGV4aXN0LgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2VsZWN0X3JmZHNfbGVuZ3Rocy5wb3AoMCksIGxlbihyZmRzKSkKQEAgLTIzNCw5ICsyNDUsOCBAQAogICAgICAgICBwdHkuU1RET1VUX0ZJTEVOTyA9IG1vY2tfc3Rkb3V0X2ZkCiAgICAgICAgIG1vY2tfc3RkaW5fZmQsIHdyaXRlX3RvX3N0ZGluX2ZkID0gc2VsZi5fcGlwZSgpCiAgICAgICAgIHB0eS5TVERJTl9GSUxFTk8gPSBtb2NrX3N0ZGluX2ZkCi0gICAgICAgIHNvY2tldHBhaXIgPSBzb2NrZXQuc29ja2V0cGFpcigpCisgICAgICAgIHNvY2tldHBhaXIgPSBzZWxmLl9zb2NrZXRwYWlyKCkKICAgICAgICAgbWFzdGVycyA9IFtzLmZpbGVubygpIGZvciBzIGluIHNvY2tldHBhaXJdCi0gICAgICAgIHNlbGYuZmRzLmV4dGVuZChtYXN0ZXJzKQogCiAgICAgICAgICMgRmVlZCBkYXRhLiAgU21hbGxlciB0aGFuIFBJUEVCVUYuICBUaGVzZSB3cml0ZXMgd2lsbCBub3QgYmxvY2suCiAgICAgICAgIG9zLndyaXRlKG1hc3RlcnNbMV0sIGInZnJvbSBtYXN0ZXInKQpAQCAtMjYzLDkgKzI3Myw4IEBACiAgICAgICAgIHB0eS5TVERPVVRfRklMRU5PID0gbW9ja19zdGRvdXRfZmQKICAgICAgICAgbW9ja19zdGRpbl9mZCwgd3JpdGVfdG9fc3RkaW5fZmQgPSBzZWxmLl9waXBlKCkKICAgICAgICAgcHR5LlNURElOX0ZJTEVOTyA9IG1vY2tfc3RkaW5fZmQKLSAgICAgICAgc29ja2V0cGFpciA9IHNvY2tldC5zb2NrZXRwYWlyKCkKKyAgICAgICAgc29ja2V0cGFpciA9IHNlbGYuX3NvY2tldHBhaXIoKQogICAgICAgICBtYXN0ZXJzID0gW3MuZmlsZW5vKCkgZm9yIHMgaW4gc29ja2V0cGFpcl0KLSAgICAgICAgc2VsZi5mZHMuZXh0ZW5kKG1hc3RlcnMpCiAKICAgICAgICAgb3MuY2xvc2UobWFzdGVyc1sxXSkKICAgICAgICAgc29ja2V0cGFpclsxXS5jbG9zZSgpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3B1bGxkb20ucHkgYi9MaWIvdGVzdC90ZXN0X3B1bGxkb20ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjgxYTU5NQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfcHVsbGRvbS5weQpAQCAtMCwwICsxLDM0NyBAQAoraW1wb3J0IGlvCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBzeXMKK2ltcG9ydCB4bWwuc2F4CisKK2Zyb20geG1sLnNheC54bWxyZWFkZXIgaW1wb3J0IEF0dHJpYnV0ZXNJbXBsCitmcm9tIHhtbC5kb20gaW1wb3J0IHB1bGxkb20KKworZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHJ1bl91bml0dGVzdCwgZmluZGZpbGUKKworCit0c3RmaWxlID0gZmluZGZpbGUoInRlc3QueG1sIiwgc3ViZGlyPSJ4bWx0ZXN0ZGF0YSIpCisKKyMgQSBoYW5keSBYTUwgc25pcHBldCwgY29udGFpbmluZyBhdHRyaWJ1dGVzLCBhIG5hbWVzcGFjZSBwcmVmaXgsIGFuZCBhCisjIHNlbGYtY2xvc2luZyB0YWc6CitTTUFMTF9TQU1QTEUgPSAiIiI8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxuczp4ZGM9Imh0dHA6Ly93d3cueG1sLmNvbS9ib29rcyI+Cis8IS0tIEEgY29tbWVudCAtLT4KKzx0aXRsZT5JbnRyb2R1Y3Rpb24gdG8gWFNMPC90aXRsZT4KKzxoci8+Cis8cD48eGRjOmF1dGhvciB4ZGM6YXR0cmliPSJwcmVmaXhlZCBhdHRyaWJ1dGUiIGF0dHJpYj0ib3RoZXIgYXR0cmliIj5BLiBOYW1lc3BhY2U8L3hkYzphdXRob3I+PC9wPgorPC9odG1sPiIiIgorCisKK2NsYXNzIFB1bGxET01UZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9wYXJzZShzZWxmKToKKyAgICAgICAgIiIiTWluaW1hbCB0ZXN0IG9mIERPTUV2ZW50U3RyZWFtLnBhcnNlKCkiIiIKKworICAgICAgICAjIFRoaXMganVzdCB0ZXN0cyB0aGF0IHBhcnNpbmcgZnJvbSBhIHN0cmVhbSB3b3Jrcy4gQWN0dWFsIHBhcnNlcgorICAgICAgICAjIHNlbWFudGljcyBhcmUgdGVzdGVkIHVzaW5nIHBhcnNlU3RyaW5nIHdpdGggYSBtb3JlIGZvY3VzZWQgWE1MCisgICAgICAgICMgZnJhZ21lbnQuCisKKyAgICAgICAgIyBUZXN0IHdpdGggYSBmaWxlbmFtZToKKyAgICAgICAgaGFuZGxlciA9IHB1bGxkb20ucGFyc2UodHN0ZmlsZSkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKGhhbmRsZXIuc3RyZWFtLmNsb3NlKQorICAgICAgICBsaXN0KGhhbmRsZXIpCisKKyAgICAgICAgIyBUZXN0IHdpdGggYSBmaWxlIG9iamVjdDoKKyAgICAgICAgd2l0aCBvcGVuKHRzdGZpbGUsICJyYiIpIGFzIGZpbjoKKyAgICAgICAgICAgIGxpc3QocHVsbGRvbS5wYXJzZShmaW4pKQorCisgICAgZGVmIHRlc3RfcGFyc2Vfc2VtYW50aWNzKHNlbGYpOgorICAgICAgICAiIiJUZXN0IERPTUV2ZW50U3RyZWFtIHBhcnNpbmcgc2VtYW50aWNzLiIiIgorCisgICAgICAgIGl0ZW1zID0gcHVsbGRvbS5wYXJzZVN0cmluZyhTTUFMTF9TQU1QTEUpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgICMgSnVzdCBjaGVjayB0aGUgbm9kZSBpcyBhIERvY3VtZW50OgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihub2RlLCAiY3JlYXRlRWxlbWVudCIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB1bGxkb20uU1RBUlRfRE9DVU1FTlQsIGV2dCkKKyAgICAgICAgZXZ0LCBub2RlID0gbmV4dChpdGVtcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLlNUQVJUX0VMRU1FTlQsIGV2dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiaHRtbCIsIG5vZGUudGFnTmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4obm9kZS5hdHRyaWJ1dGVzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChub2RlLmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCJ4bWxuczp4ZGMiKS52YWx1ZSwKKyAgICAgICAgICAgICAgImh0dHA6Ly93d3cueG1sLmNvbS9ib29rcyIpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5DSEFSQUNURVJTLCBldnQpICMgTGluZSBicmVhaworICAgICAgICBldnQsIG5vZGUgPSBuZXh0KGl0ZW1zKQorICAgICAgICAjIFhYWCAtIEEgY29tbWVudCBzaG91bGQgYmUgcmVwb3J0ZWQgaGVyZSEKKyAgICAgICAgIyBzZWxmLmFzc2VydEVxdWFsKHB1bGxkb20uQ09NTUVOVCwgZXZ0KQorICAgICAgICAjIExpbmUgYnJlYWsgYWZ0ZXIgc3dhbGxvd2VkIGNvbW1lbnQ6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5DSEFSQUNURVJTLCBldnQpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRpdGxlIiwgbm9kZS50YWdOYW1lKQorICAgICAgICB0aXRsZV9ub2RlID0gbm9kZQorICAgICAgICBldnQsIG5vZGUgPSBuZXh0KGl0ZW1zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB1bGxkb20uQ0hBUkFDVEVSUywgZXZ0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJJbnRyb2R1Y3Rpb24gdG8gWFNMIiwgbm9kZS5kYXRhKQorICAgICAgICBldnQsIG5vZGUgPSBuZXh0KGl0ZW1zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB1bGxkb20uRU5EX0VMRU1FTlQsIGV2dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGl0bGUiLCBub2RlLnRhZ05hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0aXRsZV9ub2RlIGlzIG5vZGUpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5DSEFSQUNURVJTLCBldnQpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5TVEFSVF9FTEVNRU5ULCBldnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoImhyIiwgbm9kZS50YWdOYW1lKQorICAgICAgICBldnQsIG5vZGUgPSBuZXh0KGl0ZW1zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB1bGxkb20uRU5EX0VMRU1FTlQsIGV2dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiaHIiLCBub2RlLnRhZ05hbWUpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5DSEFSQUNURVJTLCBldnQpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5TVEFSVF9FTEVNRU5ULCBldnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInAiLCBub2RlLnRhZ05hbWUpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5TVEFSVF9FTEVNRU5ULCBldnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInhkYzphdXRob3IiLCBub2RlLnRhZ05hbWUpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5DSEFSQUNURVJTLCBldnQpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQoaXRlbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5FTkRfRUxFTUVOVCwgZXZ0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ4ZGM6YXV0aG9yIiwgbm9kZS50YWdOYW1lKQorICAgICAgICBldnQsIG5vZGUgPSBuZXh0KGl0ZW1zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB1bGxkb20uRU5EX0VMRU1FTlQsIGV2dCkKKyAgICAgICAgZXZ0LCBub2RlID0gbmV4dChpdGVtcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLkNIQVJBQ1RFUlMsIGV2dCkKKyAgICAgICAgZXZ0LCBub2RlID0gbmV4dChpdGVtcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLkVORF9FTEVNRU5ULCBldnQpCisgICAgICAgICMgWFhYIE5vIEVORF9ET0NVTUVOVCBpdGVtIGlzIGV2ZXIgb2J0YWluZWQ6CisgICAgICAgICNldnQsIG5vZGUgPSBuZXh0KGl0ZW1zKQorICAgICAgICAjc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLkVORF9ET0NVTUVOVCwgZXZ0KQorCisgICAgZGVmIHRlc3RfZXhwYW5kSXRlbShzZWxmKToKKyAgICAgICAgIiIiRW5zdXJlIGV4cGFuZEl0ZW0gd29ya3MgYXMgZXhwZWN0ZWQuIiIiCisgICAgICAgIGl0ZW1zID0gcHVsbGRvbS5wYXJzZVN0cmluZyhTTUFMTF9TQU1QTEUpCisgICAgICAgICMgTG9vcCB0aHJvdWdoIHRoZSBub2RlcyB1bnRpbCB3ZSBnZXQgdG8gYSAidGl0bGUiIHN0YXJ0IHRhZzoKKyAgICAgICAgZm9yIGV2dCwgaXRlbSBpbiBpdGVtczoKKyAgICAgICAgICAgIGlmIGV2dCA9PSBwdWxsZG9tLlNUQVJUX0VMRU1FTlQgYW5kIGl0ZW0udGFnTmFtZSA9PSAidGl0bGUiOgorICAgICAgICAgICAgICAgIGl0ZW1zLmV4cGFuZE5vZGUoaXRlbSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihpdGVtLmNoaWxkTm9kZXMpKQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoIk5vIFwidGl0bGVcIiBlbGVtZW50IGRldGVjdGVkIGluIFNNQUxMX1NBTVBMRSEiKQorICAgICAgICAjIExvb3AgdW50aWwgd2UgZ2V0IHRvIHRoZSBuZXh0IHN0YXJ0LWVsZW1lbnQ6CisgICAgICAgIGZvciBldnQsIG5vZGUgaW4gaXRlbXM6CisgICAgICAgICAgICBpZiBldnQgPT0gcHVsbGRvbS5TVEFSVF9FTEVNRU5UOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoImhyIiwgbm9kZS50YWdOYW1lLAorICAgICAgICAgICAgImV4cGFuZE5vZGUgZGlkIG5vdCBsZWF2ZSBET01FdmVudFN0cmVhbSBpbiB0aGUgY29ycmVjdCBzdGF0ZS4iKQorICAgICAgICAjIEF0dGVtcHQgdG8gZXhwYW5kIGEgc3RhbmRhbG9uZSBlbGVtZW50OgorICAgICAgICBpdGVtcy5leHBhbmROb2RlKG5vZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV4dChpdGVtcylbMF0sIHB1bGxkb20uQ0hBUkFDVEVSUykKKyAgICAgICAgZXZ0LCBub2RlID0gbmV4dChpdGVtcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChub2RlLnRhZ05hbWUsICJwIikKKyAgICAgICAgaXRlbXMuZXhwYW5kTm9kZShub2RlKQorICAgICAgICBuZXh0KGl0ZW1zKSAjIFNraXAgY2hhcmFjdGVyIGRhdGEKKyAgICAgICAgZXZ0LCBub2RlID0gbmV4dChpdGVtcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChub2RlLnRhZ05hbWUsICJodG1sIikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uKToKKyAgICAgICAgICAgIG5leHQoaXRlbXMpCisgICAgICAgIGl0ZW1zLmNsZWFyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoaXRlbXMucGFyc2VyKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShpdGVtcy5zdHJlYW0pCisKKyAgICBAdW5pdHRlc3QuZXhwZWN0ZWRGYWlsdXJlCisgICAgZGVmIHRlc3RfY29tbWVudChzZWxmKToKKyAgICAgICAgIiIiUHVsbERPTSBkb2VzIG5vdCByZWNlaXZlICJjb21tZW50IiBldmVudHMuIiIiCisgICAgICAgIGl0ZW1zID0gcHVsbGRvbS5wYXJzZVN0cmluZyhTTUFMTF9TQU1QTEUpCisgICAgICAgIGZvciBldnQsIF8gaW4gaXRlbXM6CisgICAgICAgICAgICBpZiBldnQgPT0gcHVsbGRvbS5DT01NRU5UOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmZhaWwoIk5vIGNvbW1lbnQgd2FzIGVuY291bnRlcmVkIikKKworICAgIEB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmUKKyAgICBkZWYgdGVzdF9lbmRfZG9jdW1lbnQoc2VsZik6CisgICAgICAgICIiIlB1bGxET00gZG9lcyBub3QgcmVjZWl2ZSAiZW5kLWRvY3VtZW50IiBldmVudHMuIiIiCisgICAgICAgIGl0ZW1zID0gcHVsbGRvbS5wYXJzZVN0cmluZyhTTUFMTF9TQU1QTEUpCisgICAgICAgICMgUmVhZCBhbGwgb2YgdGhlIG5vZGVzIHVwIHRvIGFuZCBpbmNsdWRpbmcgPC9odG1sPjoKKyAgICAgICAgZm9yIGV2dCwgbm9kZSBpbiBpdGVtczoKKyAgICAgICAgICAgIGlmIGV2dCA9PSBwdWxsZG9tLkVORF9FTEVNRU5UIGFuZCBub2RlLnRhZ05hbWUgPT0gImh0bWwiOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgQXNzZXJ0IHRoYXQgdGhlIG5leHQgbm9kZSBpcyBFTkRfRE9DVU1FTlQ6CisgICAgICAgICAgICBldnQsIG5vZGUgPSBuZXh0KGl0ZW1zKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLkVORF9ET0NVTUVOVCwgZXZ0KQorICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgIHNlbGYuZmFpbCgKKyAgICAgICAgICAgICAgICAiUmFuIG91dCBvZiBldmVudHMsIGJ1dCBzaG91bGQgaGF2ZSByZWNlaXZlZCBFTkRfRE9DVU1FTlQiKQorCisKK2NsYXNzIFRob3JvdWdoVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICIiIlRlc3QgdGhlIGhhcmQtdG8tcmVhY2ggcGFydHMgb2YgcHVsbGRvbS4iIiIKKworICAgIGRlZiB0ZXN0X3Rob3JvdWdoX3BhcnNlKHNlbGYpOgorICAgICAgICAiIiJUZXN0IHNvbWUgb2YgdGhlIGhhcmQtdG8tcmVhY2ggcGFydHMgb2YgUHVsbERPTS4iIiIKKyAgICAgICAgc2VsZi5fdGVzdF90aG9yb3VnaChwdWxsZG9tLnBhcnNlKE5vbmUsIHBhcnNlcj1TQVhFeGVyY2lzZXIoKSkpCisKKyAgICBAdW5pdHRlc3QuZXhwZWN0ZWRGYWlsdXJlCisgICAgZGVmIHRlc3Rfc2F4MmRvbV9mYWlsKHNlbGYpOgorICAgICAgICAiIiJTQVgyRE9NIGNhbiJ0IGhhbmRsZSBhIFBJIGJlZm9yZSB0aGUgcm9vdCBlbGVtZW50LiIiIgorICAgICAgICBwZCA9IFNBWDJET01UZXN0SGVscGVyKE5vbmUsIFNBWEV4ZXJjaXNlcigpLCAxMikKKyAgICAgICAgc2VsZi5fdGVzdF90aG9yb3VnaChwZCkKKworICAgIGRlZiB0ZXN0X3Rob3JvdWdoX3NheDJkb20oc2VsZik6CisgICAgICAgICIiIlRlc3Qgc29tZSBvZiB0aGUgaGFyZC10by1yZWFjaCBwYXJ0cyBvZiBTQVgyRE9NLiIiIgorICAgICAgICBwZCA9IFNBWDJET01UZXN0SGVscGVyKE5vbmUsIFNBWDJET01FeGVyY2lzZXIoKSwgMTIpCisgICAgICAgIHNlbGYuX3Rlc3RfdGhvcm91Z2gocGQsIEZhbHNlKQorCisgICAgZGVmIF90ZXN0X3Rob3JvdWdoKHNlbGYsIHBkLCBiZWZvcmVfcm9vdD1UcnVlKToKKyAgICAgICAgIiIiVGVzdCBzb21lIG9mIHRoZSBoYXJkLXRvLXJlYWNoIHBhcnRzIG9mIHRoZSBwYXJzZXIsIHVzaW5nIGEgbW9jaworICAgICAgICBwYXJzZXIuIiIiCisKKyAgICAgICAgZXZ0LCBub2RlID0gbmV4dChwZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLlNUQVJUX0RPQ1VNRU5ULCBldnQpCisgICAgICAgICMgSnVzdCBjaGVjayB0aGUgbm9kZSBpcyBhIERvY3VtZW50OgorICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihub2RlLCAiY3JlYXRlRWxlbWVudCIpKQorCisgICAgICAgIGlmIGJlZm9yZV9yb290OgorICAgICAgICAgICAgZXZ0LCBub2RlID0gbmV4dChwZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5DT01NRU5ULCBldnQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJhIGNvbW1lbnQiLCBub2RlLmRhdGEpCisgICAgICAgICAgICBldnQsIG5vZGUgPSBuZXh0KHBkKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLlBST0NFU1NJTkdfSU5TVFJVQ1RJT04sIGV2dCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRhcmdldCIsIG5vZGUudGFyZ2V0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiZGF0YSIsIG5vZGUuZGF0YSkKKworICAgICAgICBldnQsIG5vZGUgPSBuZXh0KHBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB1bGxkb20uU1RBUlRfRUxFTUVOVCwgZXZ0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJodG1sIiwgbm9kZS50YWdOYW1lKQorCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQocGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5DT01NRU5ULCBldnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoImEgY29tbWVudCIsIG5vZGUuZGF0YSkKKyAgICAgICAgZXZ0LCBub2RlID0gbmV4dChwZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLlBST0NFU1NJTkdfSU5TVFJVQ1RJT04sIGV2dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGFyZ2V0Iiwgbm9kZS50YXJnZXQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoImRhdGEiLCBub2RlLmRhdGEpCisKKyAgICAgICAgZXZ0LCBub2RlID0gbmV4dChwZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLlNUQVJUX0VMRU1FTlQsIGV2dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgicCIsIG5vZGUudGFnTmFtZSkKKworICAgICAgICBldnQsIG5vZGUgPSBuZXh0KHBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB1bGxkb20uQ0hBUkFDVEVSUywgZXZ0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXh0Iiwgbm9kZS5kYXRhKQorICAgICAgICBldnQsIG5vZGUgPSBuZXh0KHBkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB1bGxkb20uRU5EX0VMRU1FTlQsIGV2dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgicCIsIG5vZGUudGFnTmFtZSkKKyAgICAgICAgZXZ0LCBub2RlID0gbmV4dChwZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwdWxsZG9tLkVORF9FTEVNRU5ULCBldnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoImh0bWwiLCBub2RlLnRhZ05hbWUpCisgICAgICAgIGV2dCwgbm9kZSA9IG5leHQocGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHVsbGRvbS5FTkRfRE9DVU1FTlQsIGV2dCkKKworCitjbGFzcyBTQVhFeGVyY2lzZXIob2JqZWN0KToKKyAgICAiIiJBIGZha2Ugc2F4IHBhcnNlciB0aGF0IGNhbGxzIHNvbWUgb2YgdGhlIGhhcmRlci10by1yZWFjaCBzYXggbWV0aG9kcyB0bworICAgIGVuc3VyZSBpdCBlbWl0cyB0aGUgY29ycmVjdCBldmVudHMiIiIKKworICAgIGRlZiBzZXRDb250ZW50SGFuZGxlcihzZWxmLCBoYW5kbGVyKToKKyAgICAgICAgc2VsZi5faGFuZGxlciA9IGhhbmRsZXIKKworICAgIGRlZiBwYXJzZShzZWxmLCBfKToKKyAgICAgICAgaCA9IHNlbGYuX2hhbmRsZXIKKyAgICAgICAgaC5zdGFydERvY3VtZW50KCkKKworICAgICAgICAjIFRoZSBuZXh0IHR3byBpdGVtcyBlbnN1cmUgdGhhdCBpdGVtcyBwcmVjZWRpbmcgdGhlIGZpcnN0CisgICAgICAgICMgc3RhcnRfZWxlbWVudCBhcmUgcHJvcGVybHkgc3RvcmVkIGFuZCBlbWl0dGVkOgorICAgICAgICBoLmNvbW1lbnQoImEgY29tbWVudCIpCisgICAgICAgIGgucHJvY2Vzc2luZ0luc3RydWN0aW9uKCJ0YXJnZXQiLCAiZGF0YSIpCisKKyAgICAgICAgaC5zdGFydEVsZW1lbnQoImh0bWwiLCBBdHRyaWJ1dGVzSW1wbCh7fSkpCisKKyAgICAgICAgaC5jb21tZW50KCJhIGNvbW1lbnQiKQorICAgICAgICBoLnByb2Nlc3NpbmdJbnN0cnVjdGlvbigidGFyZ2V0IiwgImRhdGEiKQorCisgICAgICAgIGguc3RhcnRFbGVtZW50KCJwIiwgQXR0cmlidXRlc0ltcGwoeyJjbGFzcyI6ICJwYXJhY2xhc3MifSkpCisgICAgICAgIGguY2hhcmFjdGVycygidGV4dCIpCisgICAgICAgIGguZW5kRWxlbWVudCgicCIpCisgICAgICAgIGguZW5kRWxlbWVudCgiaHRtbCIpCisgICAgICAgIGguZW5kRG9jdW1lbnQoKQorCisgICAgZGVmIHN0dWIoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiU3R1YiBtZXRob2QuIERvZXMgbm90aGluZy4iIiIKKyAgICAgICAgcGFzcworICAgIHNldFByb3BlcnR5ID0gc3R1YgorICAgIHNldEZlYXR1cmUgPSBzdHViCisKKworY2xhc3MgU0FYMkRPTUV4ZXJjaXNlcihTQVhFeGVyY2lzZXIpOgorICAgICIiIlRoZSBzYW1lIGFzIFNBWEV4ZXJjaXNlciwgYnV0IHdpdGhvdXQgdGhlIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gYW5kCisgICAgY29tbWVudCBiZWZvcmUgdGhlIHJvb3QgZWxlbWVudCwgYmVjYXVzZSBTMkQgY2FuInQgaGFuZGxlIGl0IiIiCisKKyAgICBkZWYgcGFyc2Uoc2VsZiwgXyk6CisgICAgICAgIGggPSBzZWxmLl9oYW5kbGVyCisgICAgICAgIGguc3RhcnREb2N1bWVudCgpCisgICAgICAgIGguc3RhcnRFbGVtZW50KCJodG1sIiwgQXR0cmlidXRlc0ltcGwoe30pKQorICAgICAgICBoLmNvbW1lbnQoImEgY29tbWVudCIpCisgICAgICAgIGgucHJvY2Vzc2luZ0luc3RydWN0aW9uKCJ0YXJnZXQiLCAiZGF0YSIpCisgICAgICAgIGguc3RhcnRFbGVtZW50KCJwIiwgQXR0cmlidXRlc0ltcGwoeyJjbGFzcyI6ICJwYXJhY2xhc3MifSkpCisgICAgICAgIGguY2hhcmFjdGVycygidGV4dCIpCisgICAgICAgIGguZW5kRWxlbWVudCgicCIpCisgICAgICAgIGguZW5kRWxlbWVudCgiaHRtbCIpCisgICAgICAgIGguZW5kRG9jdW1lbnQoKQorCisKK2NsYXNzIFNBWDJET01UZXN0SGVscGVyKHB1bGxkb20uRE9NRXZlbnRTdHJlYW0pOgorICAgICIiIkFsbG93cyB1cyB0byBkcml2ZSBTQVgyRE9NIGZyb20gYSBET01FdmVudFN0cmVhbS4iIiIKKworICAgIGRlZiByZXNldChzZWxmKToKKyAgICAgICAgc2VsZi5wdWxsZG9tID0gcHVsbGRvbS5TQVgyRE9NKCkKKyAgICAgICAgIyBUaGlzIGNvbnRlbnQgaGFuZGxlciByZWxpZXMgb24gbmFtZXNwYWNlIHN1cHBvcnQKKyAgICAgICAgc2VsZi5wYXJzZXIuc2V0RmVhdHVyZSh4bWwuc2F4LmhhbmRsZXIuZmVhdHVyZV9uYW1lc3BhY2VzLCAxKQorICAgICAgICBzZWxmLnBhcnNlci5zZXRDb250ZW50SGFuZGxlcihzZWxmLnB1bGxkb20pCisKKworY2xhc3MgU0FYMkRPTVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBjb25maXJtKHNlbGYsIHRlc3QsIHRlc3RuYW1lPSJUZXN0Iik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0ZXN0LCB0ZXN0bmFtZSkKKworICAgIGRlZiB0ZXN0X2Jhc2ljKHNlbGYpOgorICAgICAgICAiIiJFbnN1cmUgU0FYMkRPTSBjYW4gcGFyc2UgZnJvbSBhIHN0cmVhbS4iIiIKKyAgICAgICAgd2l0aCBpby5TdHJpbmdJTyhTTUFMTF9TQU1QTEUpIGFzIGZpbjoKKyAgICAgICAgICAgIHNkID0gU0FYMkRPTVRlc3RIZWxwZXIoZmluLCB4bWwuc2F4Lm1ha2VfcGFyc2VyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihTTUFMTF9TQU1QTEUpKQorICAgICAgICAgICAgZm9yIGV2dCwgbm9kZSBpbiBzZDoKKyAgICAgICAgICAgICAgICBpZiBldnQgPT0gcHVsbGRvbS5TVEFSVF9FTEVNRU5UIGFuZCBub2RlLnRhZ05hbWUgPT0gImh0bWwiOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgIyBCZWNhdXNlIHRoZSBidWZmZXIgaXMgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBYTUwsIGFsbCB0aGUKKyAgICAgICAgICAgICMgbm9kZXMgc2hvdWxkIGhhdmUgYmVlbiBwYXJzZWQgYW5kIGFkZGVkOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGxlbihub2RlLmNoaWxkTm9kZXMpLCAwKQorCisgICAgZGVmIHRlc3RTQVgyRE9NKHNlbGYpOgorICAgICAgICAiIiJFbnN1cmUgU0FYMkRPTSBleHBhbmRzIG5vZGVzIGFzIGV4cGVjdGVkLiIiIgorICAgICAgICBzYXgyZG9tID0gcHVsbGRvbS5TQVgyRE9NKCkKKyAgICAgICAgc2F4MmRvbS5zdGFydERvY3VtZW50KCkKKyAgICAgICAgc2F4MmRvbS5zdGFydEVsZW1lbnQoImRvYyIsIHt9KQorICAgICAgICBzYXgyZG9tLmNoYXJhY3RlcnMoInRleHQiKQorICAgICAgICBzYXgyZG9tLnN0YXJ0RWxlbWVudCgic3ViZWxtIiwge30pCisgICAgICAgIHNheDJkb20uY2hhcmFjdGVycygidGV4dCIpCisgICAgICAgIHNheDJkb20uZW5kRWxlbWVudCgic3ViZWxtIikKKyAgICAgICAgc2F4MmRvbS5jaGFyYWN0ZXJzKCJ0ZXh0IikKKyAgICAgICAgc2F4MmRvbS5lbmRFbGVtZW50KCJkb2MiKQorICAgICAgICBzYXgyZG9tLmVuZERvY3VtZW50KCkKKworICAgICAgICBkb2MgPSBzYXgyZG9tLmRvY3VtZW50CisgICAgICAgIHJvb3QgPSBkb2MuZG9jdW1lbnRFbGVtZW50CisgICAgICAgICh0ZXh0MSwgZWxtMSwgdGV4dDIpID0gcm9vdC5jaGlsZE5vZGVzCisgICAgICAgIHRleHQzID0gZWxtMS5jaGlsZE5vZGVzWzBdCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUodGV4dDEucHJldmlvdXNTaWJsaW5nKQorICAgICAgICBzZWxmLmFzc2VydElzKHRleHQxLm5leHRTaWJsaW5nLCBlbG0xKQorICAgICAgICBzZWxmLmFzc2VydElzKGVsbTEucHJldmlvdXNTaWJsaW5nLCB0ZXh0MSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhlbG0xLm5leHRTaWJsaW5nLCB0ZXh0MikKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0ZXh0Mi5wcmV2aW91c1NpYmxpbmcsIGVsbTEpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHRleHQyLm5leHRTaWJsaW5nKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh0ZXh0My5wcmV2aW91c1NpYmxpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHRleHQzLm5leHRTaWJsaW5nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocm9vdC5wYXJlbnROb2RlLCBkb2MpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModGV4dDEucGFyZW50Tm9kZSwgcm9vdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhlbG0xLnBhcmVudE5vZGUsIHJvb3QpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModGV4dDIucGFyZW50Tm9kZSwgcm9vdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0ZXh0My5wYXJlbnROb2RlLCBlbG0xKQorICAgICAgICBkb2MudW5saW5rKCkKKworCitkZWYgdGVzdF9tYWluKCk6CisgICAgcnVuX3VuaXR0ZXN0KFB1bGxET01UZXN0Q2FzZSwgVGhvcm91Z2hUZXN0Q2FzZSwgU0FYMkRPTVRlc3RDYXNlKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgdGVzdF9tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcHlkb2MucHkgYi9MaWIvdGVzdC90ZXN0X3B5ZG9jLnB5CmluZGV4IGM1YThlOTguLjhlMjAwMWIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfcHlkb2MucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9weWRvYy5weQpAQCAtMTk4LDcgKzE5OCw3IEBACiBtaXNzaW5nX3BhdHRlcm4gPSAibm8gUHl0aG9uIGRvY3VtZW50YXRpb24gZm91bmQgZm9yICclcyciCiAKICMgb3V0cHV0IHBhdHRlcm4gZm9yIG1vZHVsZSB3aXRoIGJhZCBpbXBvcnRzCi1iYWRpbXBvcnRfcGF0dGVybiA9ICJwcm9ibGVtIGluICVzIC0gSW1wb3J0RXJyb3I6IE5vIG1vZHVsZSBuYW1lZCAlcyIKK2JhZGltcG9ydF9wYXR0ZXJuID0gInByb2JsZW0gaW4gJXMgLSBJbXBvcnRFcnJvcjogTm8gbW9kdWxlIG5hbWVkICVyIgogCiBkZWYgcnVuX3B5ZG9jKG1vZHVsZV9uYW1lLCAqYXJncywgKiplbnYpOgogICAgICIiIgpAQCAtMjM2LDggKzIzNiw4IEBACiBkZWYgcHJpbnRfZGlmZnModGV4dDEsIHRleHQyKToKICAgICAiUHJpbnRzIHVuaWZpZWQgZGlmZnMgZm9yIHR3byB0ZXh0cyIKICAgICAjIFhYWCBub3cgb2Jzb2xldGUsIHVzZSB1bml0dGVzdCBidWlsdC1pbiBzdXBwb3J0Ci0gICAgbGluZXMxID0gdGV4dDEuc3BsaXRsaW5lcyhUcnVlKQotICAgIGxpbmVzMiA9IHRleHQyLnNwbGl0bGluZXMoVHJ1ZSkKKyAgICBsaW5lczEgPSB0ZXh0MS5zcGxpdGxpbmVzKGtlZXBlbmRzPVRydWUpCisgICAgbGluZXMyID0gdGV4dDIuc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKQogICAgIGRpZmZzID0gZGlmZmxpYi51bmlmaWVkX2RpZmYobGluZXMxLCBsaW5lczIsIG49MCwgZnJvbWZpbGU9J2V4cGVjdGVkJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvZmlsZT0nZ290JykKICAgICBwcmludCgnXG4nICsgJycuam9pbihkaWZmcykpCkBAIC0yNTQsNiArMjU0LDggQEAKIAogICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLmZsYWdzLm9wdGltaXplID49IDIsCiAgICAgICAgICAgICAgICAgICAgICAiRG9jc3RyaW5ncyBhcmUgb21pdHRlZCB3aXRoIC1PMiBhbmQgYWJvdmUiKQorICAgIEB1bml0dGVzdC5za2lwSWYoaGFzYXR0cihzeXMsICdnZXR0cmFjZScpIGFuZCBzeXMuZ2V0dHJhY2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICd0cmFjZSBmdW5jdGlvbiBpbnRyb2R1Y2VzIF9fbG9jYWxzX18gdW5leHBlY3RlZGx5JykKICAgICBkZWYgdGVzdF9odG1sX2RvYyhzZWxmKToKICAgICAgICAgcmVzdWx0LCBkb2NfbG9jID0gZ2V0X3B5ZG9jX2h0bWwocHlkb2NfbW9kKQogICAgICAgICBtb2RfZmlsZSA9IGluc3BlY3QuZ2V0YWJzZmlsZShweWRvY19tb2QpCkBAIC0yNjksNiArMjcxLDggQEAKIAogICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLmZsYWdzLm9wdGltaXplID49IDIsCiAgICAgICAgICAgICAgICAgICAgICAiRG9jc3RyaW5ncyBhcmUgb21pdHRlZCB3aXRoIC1PMiBhbmQgYWJvdmUiKQorICAgIEB1bml0dGVzdC5za2lwSWYoaGFzYXR0cihzeXMsICdnZXR0cmFjZScpIGFuZCBzeXMuZ2V0dHJhY2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICd0cmFjZSBmdW5jdGlvbiBpbnRyb2R1Y2VzIF9fbG9jYWxzX18gdW5leHBlY3RlZGx5JykKICAgICBkZWYgdGVzdF90ZXh0X2RvYyhzZWxmKToKICAgICAgICAgcmVzdWx0LCBkb2NfbG9jID0gZ2V0X3B5ZG9jX3RleHQocHlkb2NfbW9kKQogICAgICAgICBleHBlY3RlZF90ZXh0ID0gZXhwZWN0ZWRfdGV4dF9wYXR0ZXJuICUgXApAQCAtMzIxLDYgKzMyNSw4IEBACiAKICAgICBAdW5pdHRlc3Quc2tpcElmKHN5cy5mbGFncy5vcHRpbWl6ZSA+PSAyLAogICAgICAgICAgICAgICAgICAgICAgJ0RvY3N0cmluZ3MgYXJlIG9taXR0ZWQgd2l0aCAtTzIgYW5kIGFib3ZlJykKKyAgICBAdW5pdHRlc3Quc2tpcElmKGhhc2F0dHIoc3lzLCAnZ2V0dHJhY2UnKSBhbmQgc3lzLmdldHRyYWNlKCksCisgICAgICAgICAgICAgICAgICAgICAndHJhY2UgZnVuY3Rpb24gaW50cm9kdWNlcyBfX2xvY2Fsc19fIHVuZXhwZWN0ZWRseScpCiAgICAgZGVmIHRlc3RfaGVscF9vdXRwdXRfcmVkaXJlY3Qoc2VsZik6CiAgICAgICAgICMgaXNzdWUgOTQwMjg2LCBpZiBvdXRwdXQgaXMgc2V0IGluIEhlbHBlciwgdGhlbiBhbGwgb3V0cHV0IGZyb20KICAgICAgICAgIyBIZWxwZXIuaGVscCBzaG91bGQgYmUgcmVkaXJlY3RlZApAQCAtMzg4LDExICszOTQsMTAgQEAKICAgICAgICAgbW9kbmFtZSA9ICd0ZXN0bW9kX3h5enp5JwogICAgICAgICB0ZXN0cGFpcnMgPSAoCiAgICAgICAgICAgICAoJ2lfYW1fbm90X2hlcmUnLCAnaV9hbV9ub3RfaGVyZScpLAotICAgICAgICAgICAgKCd0ZXN0LmlfYW1fbm90X2hlcmVfZWl0aGVyJywgJ2lfYW1fbm90X2hlcmVfZWl0aGVyJyksCi0gICAgICAgICAgICAoJ3Rlc3QuaV9hbV9ub3RfaGVyZS5uZWl0aGVyX2FtX2knLCAnaV9hbV9ub3RfaGVyZS5uZWl0aGVyX2FtX2knKSwKLSAgICAgICAgICAgICgnaV9hbV9ub3RfaGVyZS57fScuZm9ybWF0KG1vZG5hbWUpLAotICAgICAgICAgICAgICdpX2FtX25vdF9oZXJlLnt9Jy5mb3JtYXQobW9kbmFtZSkpLAotICAgICAgICAgICAgKCd0ZXN0Lnt9Jy5mb3JtYXQobW9kbmFtZSksIG1vZG5hbWUpLAorICAgICAgICAgICAgKCd0ZXN0LmlfYW1fbm90X2hlcmVfZWl0aGVyJywgJ3Rlc3QuaV9hbV9ub3RfaGVyZV9laXRoZXInKSwKKyAgICAgICAgICAgICgndGVzdC5pX2FtX25vdF9oZXJlLm5laXRoZXJfYW1faScsICd0ZXN0LmlfYW1fbm90X2hlcmUnKSwKKyAgICAgICAgICAgICgnaV9hbV9ub3RfaGVyZS57fScuZm9ybWF0KG1vZG5hbWUpLCAnaV9hbV9ub3RfaGVyZScpLAorICAgICAgICAgICAgKCd0ZXN0Lnt9Jy5mb3JtYXQobW9kbmFtZSksICd0ZXN0Lnt9Jy5mb3JtYXQobW9kbmFtZSkpLAogICAgICAgICAgICAgKQogCiAgICAgICAgIHNvdXJjZWZuID0gb3MucGF0aC5qb2luKFRFU1RGTiwgbW9kbmFtZSkgKyBvcy5leHRzZXAgKyAicHkiCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3JhaXNlLnB5IGIvTGliL3Rlc3QvdGVzdF9yYWlzZS5weQppbmRleCBlMDJjMWFmLi5iZTVjMWM2IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3JhaXNlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcmFpc2UucHkKQEAgLTQsNiArNCw3IEBACiAiIiJUZXN0cyBmb3IgdGhlIHJhaXNlIHN0YXRlbWVudC4iIiIKIAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CitpbXBvcnQgcmUKIGltcG9ydCBzeXMKIGltcG9ydCB0eXBlcwogaW1wb3J0IHVuaXR0ZXN0CkBAIC03Nyw2ICs3OCwxNiBAQAogICAgICAgICAgICAgICAgIG5lc3RlZF9yZXJhaXNlKCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCByZXJhaXNlKQogCisgICAgZGVmIHRlc3RfcmFpc2VfZnJvbV9Ob25lKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJmb28iKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoKSBmcm9tIE5vbmUKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKGUuX19jb250ZXh0X18sIFR5cGVFcnJvcikpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShlLl9fY2F1c2VfXykKKwogICAgIGRlZiB0ZXN0X3dpdGhfcmVyYWlzZTEoc2VsZik6CiAgICAgICAgIGRlZiByZXJhaXNlKCk6CiAgICAgICAgICAgICB0cnk6CkBAIC0xMzAsOCArMTQxLDM1IEBACiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKICAgICAgICAgICAgIHJhaXNlIE15RXhjZXB0aW9uCiAKKyAgICBkZWYgdGVzdF9hc3NlcnRfd2l0aF90dXBsZV9hcmcoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgKDMsKQorICAgICAgICBleGNlcHQgQXNzZXJ0aW9uRXJyb3IgYXMgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGUpLCAiKDMsKSIpCisKKwogCiBjbGFzcyBUZXN0Q2F1c2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RDYXVzZVN5bnRheChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvciBmcm9tIE5vbmUKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGV4YzoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShleGMuX19jYXVzZV9fKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShleGMuX19zdXBwcmVzc19jb250ZXh0X18pCisgICAgICAgICAgICAgICAgZXhjLl9fc3VwcHJlc3NfY29udGV4dF9fID0gRmFsc2UKKyAgICAgICAgICAgICAgICByYWlzZSBleGMKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZXhjOgorICAgICAgICAgICAgZSA9IGV4YworCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKGUuX19jYXVzZV9fKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGUuX19zdXBwcmVzc19jb250ZXh0X18pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShlLl9fY29udGV4dF9fLCBUeXBlRXJyb3IpCisKICAgICBkZWYgdGVzdF9pbnZhbGlkX2NhdXNlKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yIGZyb20gNQpAQCAtMTcxLDYgKzIwOSw3IEBACiAKIAogY2xhc3MgVGVzdFRyYWNlYmFjayh1bml0dGVzdC5UZXN0Q2FzZSk6CisKICAgICBkZWYgdGVzdF9zZXRzX3RyYWNlYmFjayhzZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmFpc2UgSW5kZXhFcnJvcigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3JhbmRvbS5weSBiL0xpYi90ZXN0L3Rlc3RfcmFuZG9tLnB5CmluZGV4IDc3NmQwYzQuLmI1OTMxYmEgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfcmFuZG9tLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfcmFuZG9tLnB5CkBAIC0zNCw4ICszNCwxMiBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJhbmRzZXEsIHNlbGYucmFuZG9tbGlzdChOKSkKIAogICAgIGRlZiB0ZXN0X3NlZWRhcmdzKHNlbGYpOgorICAgICAgICAjIFNlZWQgdmFsdWUgd2l0aCBhIG5lZ2F0aXZlIGhhc2guCisgICAgICAgIGNsYXNzIE15U2VlZChvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9faGFzaF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAtMTcyOQogICAgICAgICBmb3IgYXJnIGluIFtOb25lLCAwLCAwLCAxLCAxLCAtMSwgLTEsIDEwKioyMCwgLSgxMCoqMjApLAotICAgICAgICAgICAgICAgICAgICAzLjE0LCAxKzJqLCAnYScsIHR1cGxlKCdhYmMnKV06CisgICAgICAgICAgICAgICAgICAgIDMuMTQsIDErMmosICdhJywgdHVwbGUoJ2FiYycpLCBNeVNlZWQoKV06CiAgICAgICAgICAgICBzZWxmLmdlbi5zZWVkKGFyZykKICAgICAgICAgZm9yIGFyZyBpbiBbbGlzdChyYW5nZSgzKSksIGRpY3Qob25lPTEpXToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5nZW4uc2VlZCwgYXJnKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9yYW5nZS5weSBiL0xpYi90ZXN0L3Rlc3RfcmFuZ2UucHkKaW5kZXggZWRlMDc5MS4uZjE4MDQ2ZCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9yYW5nZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3JhbmdlLnB5CkBAIC0zNDEsMTMgKzM0MSwzNSBAQAogCiAgICAgZGVmIHRlc3RfcGlja2xpbmcoc2VsZik6CiAgICAgICAgIHRlc3RjYXNlcyA9IFsoMTMsKSwgKDAsIDExKSwgKC0yMiwgMTApLCAoMjAsIDMsIC0xKSwKLSAgICAgICAgICAgICAgICAgICAgICgxMywgMjEsIDMpLCAoLTIsIDIsIDIpXQorICAgICAgICAgICAgICAgICAgICAgKDEzLCAyMSwgMyksICgtMiwgMiwgMiksICgyKio2NSwgMioqNjUrMildCiAgICAgICAgIGZvciBwcm90byBpbiByYW5nZShwaWNrbGUuSElHSEVTVF9QUk9UT0NPTCArIDEpOgogICAgICAgICAgICAgZm9yIHQgaW4gdGVzdGNhc2VzOgogICAgICAgICAgICAgICAgIHIgPSByYW5nZSgqdCkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QocGlja2xlLmxvYWRzKHBpY2tsZS5kdW1wcyhyLCBwcm90bykpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QocikpCiAKKyAgICBkZWYgdGVzdF9pdGVyYXRvcl9waWNrbGluZyhzZWxmKToKKyAgICAgICAgdGVzdGNhc2VzID0gWygxMywpLCAoMCwgMTEpLCAoLTIyLCAxMCksICgyMCwgMywgLTEpLAorICAgICAgICAgICAgICAgICAgICAgKDEzLCAyMSwgMyksICgtMiwgMiwgMiksICgyKio2NSwgMioqNjUrMildCisgICAgICAgIGZvciBwcm90byBpbiByYW5nZShwaWNrbGUuSElHSEVTVF9QUk9UT0NPTCArIDEpOgorICAgICAgICAgICAgZm9yIHQgaW4gdGVzdGNhc2VzOgorICAgICAgICAgICAgICAgIGl0ID0gaXRvcmcgPSBpdGVyKHJhbmdlKCp0KSkKKyAgICAgICAgICAgICAgICBkYXRhID0gbGlzdChyYW5nZSgqdCkpCisKKyAgICAgICAgICAgICAgICBkID0gcGlja2xlLmR1bXBzKGl0KQorICAgICAgICAgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0eXBlKGl0b3JnKSwgdHlwZShpdCkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0KSwgZGF0YSkKKworICAgICAgICAgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBuZXh0KGl0KQorICAgICAgICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXQpCisgICAgICAgICAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoaXQpLCBkYXRhWzE6XSkKKwogICAgIGRlZiB0ZXN0X29kZF9idWcoc2VsZik6CiAgICAgICAgICMgVGhpcyB1c2VkIHRvIHJhaXNlIGEgIlN5c3RlbUVycm9yOiBOVUxMIHJlc3VsdCB3aXRob3V0IGVycm9yIgogICAgICAgICAjIGJlY2F1c2UgdGhlIHJhbmdlIHZhbGlkYXRpb24gc3RlcCB3YXMgZWF0aW5nIHRoZSBleGNlcHRpb24KQEAgLTUwNyw2ICs1MjksODcgQEAKICAgICAgICAgICAgICAgICBmb3IgayBpbiB2YWx1ZXMgLSB7MH06CiAgICAgICAgICAgICAgICAgICAgIHJbaTpqOmtdCiAKKyAgICBkZWYgdGVzdF9jb21wYXJpc29uKHNlbGYpOgorICAgICAgICB0ZXN0X3JhbmdlcyA9IFtyYW5nZSgwKSwgcmFuZ2UoMCwgLTEpLCByYW5nZSgxLCAxLCAzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UoMSksIHJhbmdlKDUsIDYpLCByYW5nZSg1LCA2LCAyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UoNSwgNywgMiksIHJhbmdlKDIpLCByYW5nZSgwLCA0LCAyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UoMCwgNSwgMiksIHJhbmdlKDAsIDYsIDIpXQorICAgICAgICB0ZXN0X3R1cGxlcyA9IGxpc3QobWFwKHR1cGxlLCB0ZXN0X3JhbmdlcykpCisKKyAgICAgICAgIyBDaGVjayB0aGF0IGVxdWFsaXR5IG9mIHJhbmdlcyBtYXRjaGVzIGVxdWFsaXR5IG9mIHRoZSBjb3JyZXNwb25kaW5nCisgICAgICAgICMgdHVwbGVzIGZvciBlYWNoIHBhaXIgZnJvbSB0aGUgdGVzdCBsaXN0cyBhYm92ZS4KKyAgICAgICAgcmFuZ2VzX2VxID0gW2EgPT0gYiBmb3IgYSBpbiB0ZXN0X3JhbmdlcyBmb3IgYiBpbiB0ZXN0X3Jhbmdlc10KKyAgICAgICAgdHVwbGVzX2VxID0gW2EgPT0gYiBmb3IgYSBpbiB0ZXN0X3R1cGxlcyBmb3IgYiBpbiB0ZXN0X3R1cGxlc10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyYW5nZXNfZXEsIHR1cGxlc19lcSkKKworICAgICAgICAjIENoZWNrIHRoYXQgIT0gY29ycmVjdGx5IGdpdmVzIHRoZSBsb2dpY2FsIG5lZ2F0aW9uIG9mID09CisgICAgICAgIHJhbmdlc19uZSA9IFthICE9IGIgZm9yIGEgaW4gdGVzdF9yYW5nZXMgZm9yIGIgaW4gdGVzdF9yYW5nZXNdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmFuZ2VzX25lLCBbbm90IHggZm9yIHggaW4gcmFuZ2VzX2VxXSkKKworICAgICAgICAjIEVxdWFsIHJhbmdlcyBzaG91bGQgaGF2ZSBlcXVhbCBoYXNoZXMuCisgICAgICAgIGZvciBhIGluIHRlc3RfcmFuZ2VzOgorICAgICAgICAgICAgZm9yIGIgaW4gdGVzdF9yYW5nZXM6CisgICAgICAgICAgICAgICAgaWYgYSA9PSBiOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2goYSksIGhhc2goYikpCisKKyAgICAgICAgIyBSYW5nZXMgYXJlIHVuZXF1YWwgdG8gb3RoZXIgdHlwZXMgKGV2ZW4gc2VxdWVuY2UgdHlwZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMocmFuZ2UoMCkgPT0gKCksIEZhbHNlKQorICAgICAgICBzZWxmLmFzc2VydElzKCgpID09IHJhbmdlKDApLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhyYW5nZSgyKSA9PSBbMCwgMV0sIEZhbHNlKQorCisgICAgICAgICMgSHVnZSBpbnRlZ2VycyBhcmVuJ3QgYSBwcm9ibGVtLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJhbmdlKDAsIDIqKjEwMCAtIDEsIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlKDAsIDIqKjEwMCwgMikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChyYW5nZSgwLCAyKioxMDAgLSAxLCAyKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaChyYW5nZSgwLCAyKioxMDAsIDIpKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChyYW5nZSgwLCAyKioxMDAsIDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlKDAsIDIqKjEwMCArIDEsIDIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJhbmdlKDIqKjIwMCwgMioqMjAxIC0gMioqOTksIDIqKjEwMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgcmFuZ2UoMioqMjAwLCAyKioyMDEsIDIqKjEwMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChyYW5nZSgyKioyMDAsIDIqKjIwMSAtIDIqKjk5LCAyKioxMDApKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBoYXNoKHJhbmdlKDIqKjIwMCwgMioqMjAxLCAyKioxMDApKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChyYW5nZSgyKioyMDAsIDIqKjIwMSwgMioqMTAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSgyKioyMDAsIDIqKjIwMSArIDEsIDIqKjEwMCkpCisKKyAgICAgICAgIyBPcmRlciBjb21wYXJpc29ucyBhcmUgbm90IGltcGxlbWVudGVkIGZvciByYW5nZXMuCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIHJhbmdlKDApIDwgcmFuZ2UoMCkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgcmFuZ2UoMCkgPiByYW5nZSgwKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICByYW5nZSgwKSA8PSByYW5nZSgwKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICByYW5nZSgwKSA+PSByYW5nZSgwKQorCisKKyAgICBkZWYgdGVzdF9hdHRyaWJ1dGVzKHNlbGYpOgorICAgICAgICAjIHRlc3QgdGhlIHN0YXJ0LCBzdG9wIGFuZCBzdGVwIGF0dHJpYnV0ZXMgb2YgcmFuZ2Ugb2JqZWN0cworICAgICAgICBzZWxmLmFzc2VydF9hdHRycyhyYW5nZSgwKSwgMCwgMCwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRfYXR0cnMocmFuZ2UoMTApLCAwLCAxMCwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRfYXR0cnMocmFuZ2UoLTEwKSwgMCwgLTEwLCAxKQorICAgICAgICBzZWxmLmFzc2VydF9hdHRycyhyYW5nZSgwLCAxMCwgMSksIDAsIDEwLCAxKQorICAgICAgICBzZWxmLmFzc2VydF9hdHRycyhyYW5nZSgwLCAxMCwgMyksIDAsIDEwLCAzKQorICAgICAgICBzZWxmLmFzc2VydF9hdHRycyhyYW5nZSgxMCwgMCwgLTEpLCAxMCwgMCwgLTEpCisgICAgICAgIHNlbGYuYXNzZXJ0X2F0dHJzKHJhbmdlKDEwLCAwLCAtMyksIDEwLCAwLCAtMykKKworICAgIGRlZiBhc3NlcnRfYXR0cnMoc2VsZiwgcmFuZ2VvYmosIHN0YXJ0LCBzdG9wLCBzdGVwKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyYW5nZW9iai5zdGFydCwgc3RhcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmFuZ2VvYmouc3RvcCwgc3RvcCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyYW5nZW9iai5zdGVwLCBzdGVwKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgcmFuZ2VvYmouc3RhcnQgPSAwCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgcmFuZ2VvYmouc3RvcCA9IDEwCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgcmFuZ2VvYmouc3RlcCA9IDEKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIGRlbCByYW5nZW9iai5zdGFydAorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIGRlbCByYW5nZW9iai5zdG9wCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IpOgorICAgICAgICAgICAgZGVsIHJhbmdlb2JqLnN0ZXAKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHRlc3Quc3VwcG9ydC5ydW5fdW5pdHRlc3QoUmFuZ2VUZXN0KQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9yZS5weSBiL0xpYi90ZXN0L3Rlc3RfcmUucHkKaW5kZXggOTQwYmEzOS4uOWIwYWE3NSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9yZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3JlLnB5CkBAIC00NjYsNyArNDY2LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLnNwYW4oKSwgc3BhbikKIAogICAgIGRlZiB0ZXN0X3JlX2VzY2FwZShzZWxmKToKLSAgICAgICAgYWxudW1fY2hhcnMgPSBzdHJpbmcuYXNjaWlfbGV0dGVycyArIHN0cmluZy5kaWdpdHMKKyAgICAgICAgYWxudW1fY2hhcnMgPSBzdHJpbmcuYXNjaWlfbGV0dGVycyArIHN0cmluZy5kaWdpdHMgKyAnXycKICAgICAgICAgcCA9ICcnLmpvaW4oY2hyKGkpIGZvciBpIGluIHJhbmdlKDI1NikpCiAgICAgICAgIGZvciBjIGluIHA6CiAgICAgICAgICAgICBpZiBjIGluIGFsbnVtX2NoYXJzOgpAQCAtNDc5LDcgKzQ3OSw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0TWF0Y2gocmUuZXNjYXBlKHApLCBwKQogCiAgICAgZGVmIHRlc3RfcmVfZXNjYXBlX2J5dGUoc2VsZik6Ci0gICAgICAgIGFsbnVtX2NoYXJzID0gKHN0cmluZy5hc2NpaV9sZXR0ZXJzICsgc3RyaW5nLmRpZ2l0cykuZW5jb2RlKCdhc2NpaScpCisgICAgICAgIGFsbnVtX2NoYXJzID0gKHN0cmluZy5hc2NpaV9sZXR0ZXJzICsgc3RyaW5nLmRpZ2l0cyArICdfJykuZW5jb2RlKCdhc2NpaScpCiAgICAgICAgIHAgPSBieXRlcyhyYW5nZSgyNTYpKQogICAgICAgICBmb3IgaSBpbiBwOgogICAgICAgICAgICAgYiA9IGJ5dGVzKFtpXSkKQEAgLTUyNiwyNCArNTI2LDkyIEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHJlLmNvbXBpbGUoJ15wYXR0ZXJuJCcsIGZsYWcpLCBOb25lKQogCiAgICAgZGVmIHRlc3Rfc3JlX2NoYXJhY3Rlcl9saXRlcmFscyhzZWxmKToKLSAgICAgICAgZm9yIGkgaW4gWzAsIDgsIDE2LCAzMiwgNjQsIDEyNywgMTI4LCAyNTVdOgotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChyZS5tYXRjaChyIlwlMDNvIiAlIGksIGNocihpKSksIE5vbmUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHJlLm1hdGNoKHIiXCUwM28wIiAlIGksIGNocihpKSsiMCIpLCBOb25lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChyZS5tYXRjaChyIlwlMDNvOCIgJSBpLCBjaHIoaSkrIjgiKSwgTm9uZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwocmUubWF0Y2gociJceCUwMngiICUgaSwgY2hyKGkpKSwgTm9uZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwocmUubWF0Y2gociJceCUwMngwIiAlIGksIGNocihpKSsiMCIpLCBOb25lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChyZS5tYXRjaChyIlx4JTAyeHoiICUgaSwgY2hyKGkpKyJ6IiksIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHJlLmVycm9yLCByZS5tYXRjaCwgIlw5MTEiLCAiIikKKyAgICAgICAgZm9yIGkgaW4gWzAsIDgsIDE2LCAzMiwgNjQsIDEyNywgMTI4LCAyNTUsIDI1NiwgMHhGRkZGLCAweDEwMDAwLCAweDEwRkZGRl06CisgICAgICAgICAgICBpZiBpIDwgMjU2OgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiXCUwM28iICUgaSwgY2hyKGkpKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIlwlMDNvMCIgJSBpLCBjaHIoaSkrIjAiKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIlwlMDNvOCIgJSBpLCBjaHIoaSkrIjgiKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIlx4JTAyeCIgJSBpLCBjaHIoaSkpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiXHglMDJ4MCIgJSBpLCBjaHIoaSkrIjAiKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIlx4JTAyeHoiICUgaSwgY2hyKGkpKyJ6IikpCisgICAgICAgICAgICBpZiBpIDwgMHgxMDAwMDoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIlx1JTA0eCIgJSBpLCBjaHIoaSkpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiXHUlMDR4MCIgJSBpLCBjaHIoaSkrIjAiKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIlx1JTA0eHoiICUgaSwgY2hyKGkpKyJ6IikpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIlxVJTA4eCIgJSBpLCBjaHIoaSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2gociJcVSUwOHgwIiAlIGksIGNocihpKSsiMCIpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2gociJcVSUwOHh6IiAlIGksIGNocihpKSsieiIpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIlwwIiwgIlwwMDAiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2gociJcMDgiLCAiXDAwMDgiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2gociJcMDEiLCAiXDAwMSIpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIlwwMTgiLCAiXDAwMTgiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2gociJcNTY3IiwgY2hyKDBvMTY3KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHJlLmVycm9yLCByZS5tYXRjaCwgciJcOTExIiwgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHJlLmVycm9yLCByZS5tYXRjaCwgciJceDEiLCAiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMocmUuZXJyb3IsIHJlLm1hdGNoLCByIlx4MXoiLCAiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMocmUuZXJyb3IsIHJlLm1hdGNoLCByIlx1MTIzIiwgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHJlLmVycm9yLCByZS5tYXRjaCwgciJcdTEyM3oiLCAiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMocmUuZXJyb3IsIHJlLm1hdGNoLCByIlxVMDAwMTIzNCIsICIiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhyZS5lcnJvciwgcmUubWF0Y2gsIHIiXFUwMDAxMjM0eiIsICIiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhyZS5lcnJvciwgcmUubWF0Y2gsIHIiXFUwMDExMDAwMCIsICIiKQogCiAgICAgZGVmIHRlc3Rfc3JlX2NoYXJhY3Rlcl9jbGFzc19saXRlcmFscyhzZWxmKToKKyAgICAgICAgZm9yIGkgaW4gWzAsIDgsIDE2LCAzMiwgNjQsIDEyNywgMTI4LCAyNTUsIDI1NiwgMHhGRkZGLCAweDEwMDAwLCAweDEwRkZGRl06CisgICAgICAgICAgICBpZiBpIDwgMjU2OgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiW1wlb10iICUgaSwgY2hyKGkpKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIltcJW84XSIgJSBpLCBjaHIoaSkpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiW1wlMDNvXSIgJSBpLCBjaHIoaSkpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiW1wlMDNvMF0iICUgaSwgY2hyKGkpKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIltcJTAzbzhdIiAlIGksIGNocihpKSkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2gociJbXHglMDJ4XSIgJSBpLCBjaHIoaSkpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiW1x4JTAyeDBdIiAlIGksIGNocihpKSkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2gociJbXHglMDJ4el0iICUgaSwgY2hyKGkpKSkKKyAgICAgICAgICAgIGlmIGkgPCAweDEwMDAwOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiW1x1JTA0eF0iICUgaSwgY2hyKGkpKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIltcdSUwNHgwXSIgJSBpLCBjaHIoaSkpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiW1x1JTA0eHpdIiAlIGksIGNocihpKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIltcVSUwOHhdIiAlIGksIGNocihpKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChyIltcVSUwOHgwXSIgJSBpLCBjaHIoaSkrIjAiKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKHIiW1xVJTA4eHpdIiAlIGksIGNocihpKSsieiIpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhyZS5lcnJvciwgcmUubWF0Y2gsIHIiW1w5MTFdIiwgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHJlLmVycm9yLCByZS5tYXRjaCwgciJbXHgxel0iLCAiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMocmUuZXJyb3IsIHJlLm1hdGNoLCByIltcdTEyM3pdIiwgIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHJlLmVycm9yLCByZS5tYXRjaCwgciJbXFUwMDAxMjM0el0iLCAiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMocmUuZXJyb3IsIHJlLm1hdGNoLCByIltcVTAwMTEwMDAwXSIsICIiKQorCisgICAgZGVmIHRlc3Rfc3JlX2J5dGVfbGl0ZXJhbHMoc2VsZik6CiAgICAgICAgIGZvciBpIGluIFswLCA4LCAxNiwgMzIsIDY0LCAxMjcsIDEyOCwgMjU1XToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwocmUubWF0Y2gociJbXCUwM29dIiAlIGksIGNocihpKSksIE5vbmUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHJlLm1hdGNoKHIiW1wlMDNvMF0iICUgaSwgY2hyKGkpKSwgTm9uZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwocmUubWF0Y2gociJbXCUwM284XSIgJSBpLCBjaHIoaSkpLCBOb25lKQotICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChyZS5tYXRjaChyIltceCUwMnhdIiAlIGksIGNocihpKSksIE5vbmUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHJlLm1hdGNoKHIiW1x4JTAyeDBdIiAlIGksIGNocihpKSksIE5vbmUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHJlLm1hdGNoKHIiW1x4JTAyeHpdIiAlIGksIGNocihpKSksIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHJlLmVycm9yLCByZS5tYXRjaCwgIltcOTExXSIsICIiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiXCUwM28iICUgaSkuZW5jb2RlKCksIGJ5dGVzKFtpXSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiXCUwM28wIiAlIGkpLmVuY29kZSgpLCBieXRlcyhbaV0pK2IiMCIpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiXCUwM284IiAlIGkpLmVuY29kZSgpLCBieXRlcyhbaV0pK2IiOCIpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiXHglMDJ4IiAlIGkpLmVuY29kZSgpLCBieXRlcyhbaV0pKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKChyIlx4JTAyeDAiICUgaSkuZW5jb2RlKCksIGJ5dGVzKFtpXSkrYiIwIikpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaCgociJceCUwMnh6IiAlIGkpLmVuY29kZSgpLCBieXRlcyhbaV0pK2IieiIpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChiciJcdSIsIGIndScpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChiciJcVSIsIGInVScpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChiciJcMCIsIGIiXDAwMCIpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChiciJcMDgiLCBiIlwwMDA4IikpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKGJyIlwwMSIsIGIiXDAwMSIpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChiciJcMDE4IiwgYiJcMDAxOCIpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5tYXRjaChiciJcNTY3IiwgYnl0ZXMoWzBvMTY3XSkpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhyZS5lcnJvciwgcmUubWF0Y2gsIGJyIlw5MTEiLCBiIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHJlLmVycm9yLCByZS5tYXRjaCwgYnIiXHgxIiwgYiIiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhyZS5lcnJvciwgcmUubWF0Y2gsIGJyIlx4MXoiLCBiIiIpCisKKyAgICBkZWYgdGVzdF9zcmVfYnl0ZV9jbGFzc19saXRlcmFscyhzZWxmKToKKyAgICAgICAgZm9yIGkgaW4gWzAsIDgsIDE2LCAzMiwgNjQsIDEyNywgMTI4LCAyNTVdOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiW1wlb10iICUgaSkuZW5jb2RlKCksIGJ5dGVzKFtpXSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiW1wlbzhdIiAlIGkpLmVuY29kZSgpLCBieXRlcyhbaV0pKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKChyIltcJTAzb10iICUgaSkuZW5jb2RlKCksIGJ5dGVzKFtpXSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiW1wlMDNvMF0iICUgaSkuZW5jb2RlKCksIGJ5dGVzKFtpXSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiW1wlMDNvOF0iICUgaSkuZW5jb2RlKCksIGJ5dGVzKFtpXSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiW1x4JTAyeF0iICUgaSkuZW5jb2RlKCksIGJ5dGVzKFtpXSkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goKHIiW1x4JTAyeDBdIiAlIGkpLmVuY29kZSgpLCBieXRlcyhbaV0pKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKChyIltceCUwMnh6XSIgJSBpKS5lbmNvZGUoKSwgYnl0ZXMoW2ldKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLm1hdGNoKGJyIltcdV0iLCBiJ3UnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUubWF0Y2goYnIiW1xVXSIsIGInVScpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhyZS5lcnJvciwgcmUubWF0Y2gsIGJyIltcOTExXSIsICIiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhyZS5lcnJvciwgcmUubWF0Y2gsIGJyIltceDF6XSIsICIiKQogCiAgICAgZGVmIHRlc3RfYnVnXzExMzI1NChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZS5tYXRjaChyJyhhKXwoYiknLCAnYicpLnN0YXJ0KDEpLCAtMSkKQEAgLTY1Miw2ICs3MjAsMjYgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbaXRlbS5ncm91cCgwKSBmb3IgaXRlbSBpbiBpdGVyXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBbIjoiLCAiOjoiLCAiOjo6Il0pCiAKKyAgICAgICAgcGF0ID0gcmUuY29tcGlsZShyIjorIikKKyAgICAgICAgaXRlciA9IHBhdC5maW5kaXRlcigiYTpiOjpjOjo6ZCIsIDEsIDEwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtpdGVtLmdyb3VwKDApIGZvciBpdGVtIGluIGl0ZXJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsiOiIsICI6OiIsICI6OjoiXSkKKworICAgICAgICBwYXQgPSByZS5jb21waWxlKHIiOisiKQorICAgICAgICBpdGVyID0gcGF0LmZpbmRpdGVyKCJhOmI6OmM6OjpkIiwgcG9zPTEsIGVuZHBvcz0xMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbaXRlbS5ncm91cCgwKSBmb3IgaXRlbSBpbiBpdGVyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbIjoiLCAiOjoiLCAiOjo6Il0pCisKKyAgICAgICAgcGF0ID0gcmUuY29tcGlsZShyIjorIikKKyAgICAgICAgaXRlciA9IHBhdC5maW5kaXRlcigiYTpiOjpjOjo6ZCIsIGVuZHBvcz0xMCwgcG9zPTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2l0ZW0uZ3JvdXAoMCkgZm9yIGl0ZW0gaW4gaXRlcl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgWyI6IiwgIjo6IiwgIjo6OiJdKQorCisgICAgICAgIHBhdCA9IHJlLmNvbXBpbGUociI6KyIpCisgICAgICAgIGl0ZXIgPSBwYXQuZmluZGl0ZXIoImE6Yjo6Yzo6OmQiLCBwb3M9MywgZW5kcG9zPTgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2l0ZW0uZ3JvdXAoMCkgZm9yIGl0ZW0gaW4gaXRlcl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgWyI6OiIsICI6OiJdKQorCiAgICAgZGVmIHRlc3RfYnVnXzkyNjA3NShzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlLmNvbXBpbGUoJ2J1Z185MjYwNzUnKSBpcyBub3QKICAgICAgICAgICAgICAgICAgICAgIHJlLmNvbXBpbGUoYididWdfOTI2MDc1JykpCkBAIC04MTgsNiArOTA2LDEzIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIF9zcmUuY29tcGlsZSwgImFiYyIsIDAsIFtsb25nX292ZXJmbG93XSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBfc3JlLmNvbXBpbGUsIHt9LCAwLCBbXSkKIAorICAgIGRlZiB0ZXN0X3NlYXJjaF9kb3RfdW5pY29kZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUocmUuc2VhcmNoKCIxMjMuKi0iLCAnMTIzYWJjLScpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5zZWFyY2goIjEyMy4qLSIsICcxMjNceGU5LScpKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShyZS5zZWFyY2goIjEyMy4qLSIsICcxMjNcdTIwYWMtJykpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLnNlYXJjaCgiMTIzLiotIiwgJzEyM1xVMDAxMGZmZmYtJykpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKHJlLnNlYXJjaCgiMTIzLiotIiwgJzEyM1x4ZTlcdTIwYWNcVTAwMTBmZmZmLScpKQorCiAgICAgZGVmIHRlc3RfY29tcGlsZShzZWxmKToKICAgICAgICAgIyBUZXN0IHJldHVybiB2YWx1ZSB3aGVuIGdpdmVuIHN0cmluZyBhbmQgcGF0dGVybiBhcyBwYXJhbWV0ZXIKICAgICAgICAgcGF0dGVybiA9IHJlLmNvbXBpbGUoJ3JhbmRvbSBwYXR0ZXJuJykKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcmVwcmxpYi5weSBiL0xpYi90ZXN0L3Rlc3RfcmVwcmxpYi5weQppbmRleCBiMGRjNGQ3Li41ODllY2RkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3JlcHJsaWIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9yZXBybGliLnB5CkBAIC0zLDEyICszLDE0IEBACiAgIE5pY2sgTWF0aGV3c29uCiAiIiIKIAoraW1wb3J0IGltcAogaW1wb3J0IHN5cwogaW1wb3J0IG9zCiBpbXBvcnQgc2h1dGlsCitpbXBvcnQgaW1wb3J0bGliCiBpbXBvcnQgdW5pdHRlc3QKIAotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHJ1bl91bml0dGVzdAorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHJ1bl91bml0dGVzdCwgY3JlYXRlX2VtcHR5X2ZpbGUsIHZlcmJvc2UKIGZyb20gcmVwcmxpYiBpbXBvcnQgcmVwciBhcyByICMgRG9uJ3Qgc2hhZG93IGJ1aWx0aW4gcmVwcgogZnJvbSByZXBybGliIGltcG9ydCBSZXByCiBmcm9tIHJlcHJsaWIgaW1wb3J0IHJlY3Vyc2l2ZV9yZXByCkBAIC0xMjksOCArMTMxLDggQEAKICAgICAgICAgc2VsZi5hc3NlcnRJbihzLmZpbmQoIi4uLiIpLCBbMTIsIDEzXSkKIAogICAgIGRlZiB0ZXN0X2xhbWJkYShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcHIobGFtYmRhIHg6IHgpLnN0YXJ0c3dpdGgoCi0gICAgICAgICAgICAiPGZ1bmN0aW9uIDxsYW1iZGEiKSkKKyAgICAgICAgciA9IHJlcHIobGFtYmRhIHg6IHgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyLnN0YXJ0c3dpdGgoIjxmdW5jdGlvbiBSZXByVGVzdHMudGVzdF9sYW1iZGEuPGxvY2Fscz4uPGxhbWJkYSIpLCByKQogICAgICAgICAjIFhYWCBhbm9ueW1vdXMgZnVuY3Rpb25zPyAgc2VlIGZ1bmNfcmVwcgogCiAgICAgZGVmIHRlc3RfYnVpbHRpbl9mdW5jdGlvbihzZWxmKToKQEAgLTE5MywyNiArMTk1LDI5IEBACiAgICAgICAgIHIoeSkKICAgICAgICAgcih6KQogCi1kZWYgdG91Y2gocGF0aCwgdGV4dD0nJyk6Ci0gICAgZnAgPSBvcGVuKHBhdGgsICd3JykKLSAgICBmcC53cml0ZSh0ZXh0KQotICAgIGZwLmNsb3NlKCkKK2RlZiB3cml0ZV9maWxlKHBhdGgsIHRleHQpOgorICAgIHdpdGggb3BlbihwYXRoLCAndycsIGVuY29kaW5nPSdBU0NJSScpIGFzIGZwOgorICAgICAgICBmcC53cml0ZSh0ZXh0KQogCiBjbGFzcyBMb25nUmVwclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGxvbmduYW1lID0gJ2FyZWFsbHlsb25ncGFja2FnZWFuZG1vZHVsZW5hbWV0b3Rlc3RyZXBydHJ1bmNhdGlvbicKKwogICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgbG9uZ25hbWUgPSAnYXJlYWxseWxvbmdwYWNrYWdlYW5kbW9kdWxlbmFtZXRvdGVzdHJlcHJ0cnVuY2F0aW9uJwotICAgICAgICBzZWxmLnBrZ25hbWUgPSBvcy5wYXRoLmpvaW4obG9uZ25hbWUpCi0gICAgICAgIHNlbGYuc3VicGtnbmFtZSA9IG9zLnBhdGguam9pbihsb25nbmFtZSwgbG9uZ25hbWUpCisgICAgICAgIHNlbGYucGtnbmFtZSA9IG9zLnBhdGguam9pbihzZWxmLmxvbmduYW1lKQorICAgICAgICBzZWxmLnN1YnBrZ25hbWUgPSBvcy5wYXRoLmpvaW4oc2VsZi5sb25nbmFtZSwgc2VsZi5sb25nbmFtZSkKICAgICAgICAgIyBNYWtlIHRoZSBwYWNrYWdlIGFuZCBzdWJwYWNrYWdlCiAgICAgICAgIHNodXRpbC5ybXRyZWUoc2VsZi5wa2duYW1lLCBpZ25vcmVfZXJyb3JzPVRydWUpCiAgICAgICAgIG9zLm1rZGlyKHNlbGYucGtnbmFtZSkKLSAgICAgICAgdG91Y2gob3MucGF0aC5qb2luKHNlbGYucGtnbmFtZSwgJ19faW5pdF9fLnB5JykpCisgICAgICAgIGNyZWF0ZV9lbXB0eV9maWxlKG9zLnBhdGguam9pbihzZWxmLnBrZ25hbWUsICdfX2luaXRfXy5weScpKQogICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYuc3VicGtnbmFtZSwgaWdub3JlX2Vycm9ycz1UcnVlKQogICAgICAgICBvcy5ta2RpcihzZWxmLnN1YnBrZ25hbWUpCi0gICAgICAgIHRvdWNoKG9zLnBhdGguam9pbihzZWxmLnN1YnBrZ25hbWUsICdfX2luaXRfXy5weScpKQorICAgICAgICBjcmVhdGVfZW1wdHlfZmlsZShvcy5wYXRoLmpvaW4oc2VsZi5zdWJwa2duYW1lLCAnX19pbml0X18ucHknKSkKICAgICAgICAgIyBSZW1lbWJlciB3aGVyZSB3ZSBhcmUKICAgICAgICAgc2VsZi5oZXJlID0gb3MuZ2V0Y3dkKCkKICAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIHNlbGYuaGVyZSkKKyAgICAgICAgIyBXaGVuIHJlZ3J0ZXN0IGlzIHJ1biB3aXRoIGl0cyAtaiBvcHRpb24sIHRoaXMgY29tbWFuZCBhbG9uZSBpcyBub3QKKyAgICAgICAgIyBlbm91Z2guCisgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIGFjdGlvbnMgPSBbXQpAQCAtMjI5LDIwICsyMzQsNDAgQEAKICAgICAgICAgICAgICAgICBvcy5yZW1vdmUocCkKICAgICAgICAgZGVsIHN5cy5wYXRoWzBdCiAKKyAgICBkZWYgX2NoZWNrX3BhdGhfbGltaXRhdGlvbnMoc2VsZiwgbW9kdWxlX25hbWUpOgorICAgICAgICAjIGJhc2UgZGlyZWN0b3J5CisgICAgICAgIHNvdXJjZV9wYXRoX2xlbiA9IGxlbihzZWxmLmhlcmUpCisgICAgICAgICMgYSBwYXRoIHNlcGFyYXRvciArIGBsb25nbmFtZWAgKHR3aWNlKQorICAgICAgICBzb3VyY2VfcGF0aF9sZW4gKz0gMiAqIChsZW4oc2VsZi5sb25nbmFtZSkgKyAxKQorICAgICAgICAjIGEgcGF0aCBzZXBhcmF0b3IgKyBgbW9kdWxlX25hbWVgICsgIi5weSIKKyAgICAgICAgc291cmNlX3BhdGhfbGVuICs9IGxlbihtb2R1bGVfbmFtZSkgKyAxICsgbGVuKCIucHkiKQorICAgICAgICBjYWNoZWRfcGF0aF9sZW4gPSBzb3VyY2VfcGF0aF9sZW4gKyBsZW4oaW1wLmNhY2hlX2Zyb21fc291cmNlKCJ4LnB5IikpIC0gbGVuKCJ4LnB5IikKKyAgICAgICAgaWYgb3MubmFtZSA9PSAnbnQnIGFuZCBjYWNoZWRfcGF0aF9sZW4gPj0gMjU4OgorICAgICAgICAgICAgIyBVbmRlciBXaW5kb3dzLCB0aGUgbWF4IHBhdGggbGVuIGlzIDI2MCBpbmNsdWRpbmcgQydzIHRlcm1pbmF0aW5nCisgICAgICAgICAgICAjIE5VTCBjaGFyYWN0ZXIuCisgICAgICAgICAgICAjIChzZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9hYTM2NTI0NyUyOHY9dnMuODUlMjkuYXNweCNtYXhwYXRoKQorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgidGVzdCBwYXRocyB0b28gbG9uZyAoJWQgY2hhcmFjdGVycykgZm9yIFdpbmRvd3MnIDI2MCBjaGFyYWN0ZXIgbGltaXQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICUgY2FjaGVkX3BhdGhfbGVuKQorICAgICAgICBlbGlmIG9zLm5hbWUgPT0gJ250JyBhbmQgdmVyYm9zZToKKyAgICAgICAgICAgIHByaW50KCJjYWNoZWRfcGF0aF9sZW4gPSIsIGNhY2hlZF9wYXRoX2xlbikKKwogICAgIGRlZiB0ZXN0X21vZHVsZShzZWxmKToKLSAgICAgICAgZXEgPSBzZWxmLmFzc2VydEVxdWFsCi0gICAgICAgIHRvdWNoKG9zLnBhdGguam9pbihzZWxmLnN1YnBrZ25hbWUsIHNlbGYucGtnbmFtZSArICcucHknKSkKKyAgICAgICAgc2VsZi5fY2hlY2tfcGF0aF9saW1pdGF0aW9ucyhzZWxmLnBrZ25hbWUpCisgICAgICAgIGNyZWF0ZV9lbXB0eV9maWxlKG9zLnBhdGguam9pbihzZWxmLnN1YnBrZ25hbWUsIHNlbGYucGtnbmFtZSArICcucHknKSkKKyAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKICAgICAgICAgZnJvbSBhcmVhbGx5bG9uZ3BhY2thZ2VhbmRtb2R1bGVuYW1ldG90ZXN0cmVwcnRydW5jYXRpb24uYXJlYWxseWxvbmdwYWNrYWdlYW5kbW9kdWxlbmFtZXRvdGVzdHJlcHJ0cnVuY2F0aW9uIGltcG9ydCBhcmVhbGx5bG9uZ3BhY2thZ2VhbmRtb2R1bGVuYW1ldG90ZXN0cmVwcnRydW5jYXRpb24KLSAgICAgICAgZXEocmVwcihhcmVhbGx5bG9uZ3BhY2thZ2VhbmRtb2R1bGVuYW1ldG90ZXN0cmVwcnRydW5jYXRpb24pLAotICAgICAgICAgICAiPG1vZHVsZSAnJXMnIGZyb20gJyVzJz4iICUgKGFyZWFsbHlsb25ncGFja2FnZWFuZG1vZHVsZW5hbWV0b3Rlc3RyZXBydHJ1bmNhdGlvbi5fX25hbWVfXywgYXJlYWxseWxvbmdwYWNrYWdlYW5kbW9kdWxlbmFtZXRvdGVzdHJlcHJ0cnVuY2F0aW9uLl9fZmlsZV9fKSkKLSAgICAgICAgZXEocmVwcihzeXMpLCAiPG1vZHVsZSAnc3lzJyAoYnVpbHQtaW4pPiIpCisgICAgICAgIG1vZHVsZSA9IGFyZWFsbHlsb25ncGFja2FnZWFuZG1vZHVsZW5hbWV0b3Rlc3RyZXBydHJ1bmNhdGlvbgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobW9kdWxlKSwgIjxtb2R1bGUgJXIgZnJvbSAlcj4iICUgKG1vZHVsZS5fX25hbWVfXywgbW9kdWxlLl9fZmlsZV9fKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKHN5cyksICI8bW9kdWxlICdzeXMnIChidWlsdC1pbik+IikKIAogICAgIGRlZiB0ZXN0X3R5cGUoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX3BhdGhfbGltaXRhdGlvbnMoJ2ZvbycpCiAgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAotICAgICAgICB0b3VjaChvcy5wYXRoLmpvaW4oc2VsZi5zdWJwa2duYW1lLCAnZm9vLnB5JyksICcnJ1wKKyAgICAgICAgd3JpdGVfZmlsZShvcy5wYXRoLmpvaW4oc2VsZi5zdWJwa2duYW1lLCAnZm9vLnB5JyksICcnJ1wKIGNsYXNzIGZvbyhvYmplY3QpOgogICAgIHBhc3MKICcnJykKKyAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKICAgICAgICAgZnJvbSBhcmVhbGx5bG9uZ3BhY2thZ2VhbmRtb2R1bGVuYW1ldG90ZXN0cmVwcnRydW5jYXRpb24uYXJlYWxseWxvbmdwYWNrYWdlYW5kbW9kdWxlbmFtZXRvdGVzdHJlcHJ0cnVuY2F0aW9uIGltcG9ydCBmb28KICAgICAgICAgZXEocmVwcihmb28uZm9vKSwKICAgICAgICAgICAgICAgICI8Y2xhc3MgJyVzLmZvbyc+IiAlIGZvby5fX25hbWVfXykKQEAgLTI1MywzOSArMjc4LDQ2IEBACiAgICAgICAgIHBhc3MKIAogICAgIGRlZiB0ZXN0X2NsYXNzKHNlbGYpOgotICAgICAgICB0b3VjaChvcy5wYXRoLmpvaW4oc2VsZi5zdWJwa2duYW1lLCAnYmFyLnB5JyksICcnJ1wKKyAgICAgICAgc2VsZi5fY2hlY2tfcGF0aF9saW1pdGF0aW9ucygnYmFyJykKKyAgICAgICAgd3JpdGVfZmlsZShvcy5wYXRoLmpvaW4oc2VsZi5zdWJwa2duYW1lLCAnYmFyLnB5JyksICcnJ1wKIGNsYXNzIGJhcjoKICAgICBwYXNzCiAnJycpCisgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgIGZyb20gYXJlYWxseWxvbmdwYWNrYWdlYW5kbW9kdWxlbmFtZXRvdGVzdHJlcHJ0cnVuY2F0aW9uLmFyZWFsbHlsb25ncGFja2FnZWFuZG1vZHVsZW5hbWV0b3Rlc3RyZXBydHJ1bmNhdGlvbiBpbXBvcnQgYmFyCiAgICAgICAgICMgTW9kdWxlIG5hbWUgbWF5IGJlIHByZWZpeGVkIHdpdGggInRlc3QuIiwgZGVwZW5kaW5nIG9uIGhvdyBydW4uCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihiYXIuYmFyKSwgIjxjbGFzcyAnJXMuYmFyJz4iICUgYmFyLl9fbmFtZV9fKQogCiAgICAgZGVmIHRlc3RfaW5zdGFuY2Uoc2VsZik6Ci0gICAgICAgIHRvdWNoKG9zLnBhdGguam9pbihzZWxmLnN1YnBrZ25hbWUsICdiYXoucHknKSwgJycnXAorICAgICAgICBzZWxmLl9jaGVja19wYXRoX2xpbWl0YXRpb25zKCdiYXonKQorICAgICAgICB3cml0ZV9maWxlKG9zLnBhdGguam9pbihzZWxmLnN1YnBrZ25hbWUsICdiYXoucHknKSwgJycnXAogY2xhc3MgYmF6OgogICAgIHBhc3MKICcnJykKKyAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKICAgICAgICAgZnJvbSBhcmVhbGx5bG9uZ3BhY2thZ2VhbmRtb2R1bGVuYW1ldG90ZXN0cmVwcnRydW5jYXRpb24uYXJlYWxseWxvbmdwYWNrYWdlYW5kbW9kdWxlbmFtZXRvdGVzdHJlcHJ0cnVuY2F0aW9uIGltcG9ydCBiYXoKICAgICAgICAgaWJheiA9IGJhei5iYXooKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocmVwcihpYmF6KS5zdGFydHN3aXRoKAogICAgICAgICAgICAgIjwlcy5iYXogb2JqZWN0IGF0IDB4IiAlIGJhei5fX25hbWVfXykpCiAKICAgICBkZWYgdGVzdF9tZXRob2Qoc2VsZik6CisgICAgICAgIHNlbGYuX2NoZWNrX3BhdGhfbGltaXRhdGlvbnMoJ3F1eCcpCiAgICAgICAgIGVxID0gc2VsZi5hc3NlcnRFcXVhbAotICAgICAgICB0b3VjaChvcy5wYXRoLmpvaW4oc2VsZi5zdWJwa2duYW1lLCAncXV4LnB5JyksICcnJ1wKKyAgICAgICAgd3JpdGVfZmlsZShvcy5wYXRoLmpvaW4oc2VsZi5zdWJwa2duYW1lLCAncXV4LnB5JyksICcnJ1wKIGNsYXNzIGFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhOgogICAgIGRlZiBhbWV0aG9kKHNlbGYpOiBwYXNzCiAnJycpCisgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgIGZyb20gYXJlYWxseWxvbmdwYWNrYWdlYW5kbW9kdWxlbmFtZXRvdGVzdHJlcHJ0cnVuY2F0aW9uLmFyZWFsbHlsb25ncGFja2FnZWFuZG1vZHVsZW5hbWV0b3Rlc3RyZXBydHJ1bmNhdGlvbiBpbXBvcnQgcXV4CiAgICAgICAgICMgVW5ib3VuZCBtZXRob2RzIGZpcnN0Ci0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXByKHF1eC5hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYS5hbWV0aG9kKS5zdGFydHN3aXRoKAotICAgICAgICAnPGZ1bmN0aW9uIGFtZXRob2QnKSkKKyAgICAgICAgciA9IHJlcHIocXV4LmFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhLmFtZXRob2QpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyLnN0YXJ0c3dpdGgoJzxmdW5jdGlvbiBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYS5hbWV0aG9kJyksIHIpCiAgICAgICAgICMgQm91bmQgbWV0aG9kIG5leHQKICAgICAgICAgaXF1eCA9IHF1eC5hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXByKGlxdXguYW1ldGhvZCkuc3RhcnRzd2l0aCgKKyAgICAgICAgciA9IHJlcHIoaXF1eC5hbWV0aG9kKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoci5zdGFydHN3aXRoKAogICAgICAgICAgICAgJzxib3VuZCBtZXRob2QgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEuYW1ldGhvZCBvZiA8JXMuYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEgb2JqZWN0IGF0IDB4JyBcCi0gICAgICAgICAgICAlIChxdXguX19uYW1lX18sKSApKQorICAgICAgICAgICAgJSAocXV4Ll9fbmFtZV9fLCkgKSwgcikKIAogICAgIGRlZiB0ZXN0X2J1aWx0aW5fZnVuY3Rpb24oc2VsZik6CiAgICAgICAgICMgWFhYIHRlc3QgYnVpbHQtaW4gZnVuY3Rpb25zIGFuZCBtZXRob2RzIHdpdGggcmVhbGx5IGxvbmcgbmFtZXMKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfcmljaGNtcC5weSBiL0xpYi90ZXN0L3Rlc3RfcmljaGNtcC5weQppbmRleCBmOGYzNzE3Li4wYjYyOWRjIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3JpY2hjbXAucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9yaWNoY21wLnB5CkBAIC0yMjAsNiArMjIwLDcgQEAKICAgICAgICAgZm9yIGZ1bmMgaW4gKGRvLCBvcGVyYXRvci5ub3RfKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEV4YywgZnVuYywgQmFkKCkpCiAKKyAgICBAc3VwcG9ydC5ub190cmFjaW5nCiAgICAgZGVmIHRlc3RfcmVjdXJzaW9uKHNlbGYpOgogICAgICAgICAjIENoZWNrIHRoYXQgY29tcGFyaXNvbiBmb3IgcmVjdXJzaXZlIG9iamVjdHMgZmFpbHMgZ3JhY2VmdWxseQogICAgICAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBVc2VyTGlzdApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9ydW5weS5weSBiL0xpYi90ZXN0L3Rlc3RfcnVucHkucHkKaW5kZXggN2ZmYjZhZi4uZGU0NGRmMCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9ydW5weS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3J1bnB5LnB5CkBAIC01LDggKzUsMTEgQEAKIGltcG9ydCBzeXMKIGltcG9ydCByZQogaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgaW1wb3J0bGliCiBpbXBvcnQgcHlfY29tcGlsZQotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGZvcmdldCwgbWFrZV9sZWdhY3lfcHljLCBydW5fdW5pdHRlc3QsIHVubG9hZCwgdmVyYm9zZQorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0ICgKKyAgICBmb3JnZXQsIG1ha2VfbGVnYWN5X3B5YywgcnVuX3VuaXR0ZXN0LCB1bmxvYWQsIHZlcmJvc2UsIG5vX3RyYWNpbmcsCisgICAgY3JlYXRlX2VtcHR5X2ZpbGUpCiBmcm9tIHRlc3Quc2NyaXB0X2hlbHBlciBpbXBvcnQgKAogICAgIG1ha2VfcGtnLCBtYWtlX3NjcmlwdCwgbWFrZV96aXBfcGtnLCBtYWtlX3ppcF9zY3JpcHQsIHRlbXBfZGlyKQogCkBAIC0xMTIsOCArMTE1LDcgQEAKICAgICBkZWYgX2FkZF9wa2dfZGlyKHNlbGYsIHBrZ19kaXIpOgogICAgICAgICBvcy5ta2Rpcihwa2dfZGlyKQogICAgICAgICBwa2dfZm5hbWUgPSBvcy5wYXRoLmpvaW4ocGtnX2RpciwgIl9faW5pdF9fLnB5IikKLSAgICAgICAgcGtnX2ZpbGUgPSBvcGVuKHBrZ19mbmFtZSwgInciKQotICAgICAgICBwa2dfZmlsZS5jbG9zZSgpCisgICAgICAgIGNyZWF0ZV9lbXB0eV9maWxlKHBrZ19mbmFtZSkKICAgICAgICAgcmV0dXJuIHBrZ19mbmFtZQogCiAgICAgZGVmIF9tYWtlX3BrZyhzZWxmLCBzb3VyY2UsIGRlcHRoLCBtb2RfYmFzZT0icnVucHlfdGVzdCIpOgpAQCAtMTcxLDExICsxNzMsMTMgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIngiLCBkMSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZDFbIngiXSwgMSkKICAgICAgICAgICAgIGRlbCBkMSAjIEVuc3VyZSBfX2xvYWRlcl9fIGVudHJ5IGRvZXNuJ3Qga2VlcCBmaWxlIG9wZW4KKyAgICAgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgICAgICBfX2ltcG9ydF9fKG1vZF9uYW1lKQogICAgICAgICAgICAgb3MucmVtb3ZlKG1vZF9mbmFtZSkKICAgICAgICAgICAgIG1ha2VfbGVnYWN5X3B5Yyhtb2RfZm5hbWUpCiAgICAgICAgICAgICB1bmxvYWQobW9kX25hbWUpICAjIEluIGNhc2UgbG9hZGVyIGNhY2hlcyBwYXRocwogICAgICAgICAgICAgaWYgdmVyYm9zZTogcHJpbnQoIlJ1bm5pbmcgZnJvbSBjb21waWxlZDoiLCBtb2RfbmFtZSkKKyAgICAgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgICAgICBkMiA9IHJ1bl9tb2R1bGUobW9kX25hbWUpICMgUmVhZCBmcm9tIGJ5dGVjb2RlCiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJ4IiwgZDIpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGQyWyJ4Il0sIDEpCkBAIC0xOTUsMTEgKzE5OSwxMyBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigieCIsIGQxKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGQxWyJ4Il0gPT0gMSkKICAgICAgICAgICAgIGRlbCBkMSAjIEVuc3VyZSBfX2xvYWRlcl9fIGVudHJ5IGRvZXNuJ3Qga2VlcCBmaWxlIG9wZW4KKyAgICAgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgICAgICBfX2ltcG9ydF9fKG1vZF9uYW1lKQogICAgICAgICAgICAgb3MucmVtb3ZlKG1vZF9mbmFtZSkKICAgICAgICAgICAgIG1ha2VfbGVnYWN5X3B5Yyhtb2RfZm5hbWUpCiAgICAgICAgICAgICB1bmxvYWQobW9kX25hbWUpICAjIEluIGNhc2UgbG9hZGVyIGNhY2hlcyBwYXRocwogICAgICAgICAgICAgaWYgdmVyYm9zZTogcHJpbnQoIlJ1bm5pbmcgZnJvbSBjb21waWxlZDoiLCBwa2dfbmFtZSkKKyAgICAgICAgICAgIGltcG9ydGxpYi5pbnZhbGlkYXRlX2NhY2hlcygpCiAgICAgICAgICAgICBkMiA9IHJ1bl9tb2R1bGUocGtnX25hbWUpICMgUmVhZCBmcm9tIGJ5dGVjb2RlCiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJ4IiwgZDIpCiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoZDJbIngiXSA9PSAxKQpAQCAtMjE4LDggKzIyNCw3IEBACiAgICAgICAgICAgICBtb2R1bGVfZGlyID0gb3MucGF0aC5qb2luKG1vZHVsZV9kaXIsIHBrZ19uYW1lKQogICAgICAgICAjIEFkZCBzaWJsaW5nIG1vZHVsZQogICAgICAgICBzaWJsaW5nX2ZuYW1lID0gb3MucGF0aC5qb2luKG1vZHVsZV9kaXIsICJzaWJsaW5nLnB5IikKLSAgICAgICAgc2libGluZ19maWxlID0gb3BlbihzaWJsaW5nX2ZuYW1lLCAidyIpCi0gICAgICAgIHNpYmxpbmdfZmlsZS5jbG9zZSgpCisgICAgICAgIGNyZWF0ZV9lbXB0eV9maWxlKHNpYmxpbmdfZm5hbWUpCiAgICAgICAgIGlmIHZlcmJvc2U6IHByaW50KCIgIEFkZGVkIHNpYmxpbmcgbW9kdWxlOiIsIHNpYmxpbmdfZm5hbWUpCiAgICAgICAgICMgQWRkIG5lcGhldyBtb2R1bGUKICAgICAgICAgdW5jbGVfZGlyID0gb3MucGF0aC5qb2luKHBhcmVudF9kaXIsICJ1bmNsZSIpCkBAIC0yMjksOCArMjM0LDcgQEAKICAgICAgICAgc2VsZi5fYWRkX3BrZ19kaXIoY291c2luX2RpcikKICAgICAgICAgaWYgdmVyYm9zZTogcHJpbnQoIiAgQWRkZWQgY291c2luIHBhY2thZ2U6IiwgY291c2luX2RpcikKICAgICAgICAgbmVwaGV3X2ZuYW1lID0gb3MucGF0aC5qb2luKGNvdXNpbl9kaXIsICJuZXBoZXcucHkiKQotICAgICAgICBuZXBoZXdfZmlsZSA9IG9wZW4obmVwaGV3X2ZuYW1lLCAidyIpCi0gICAgICAgIG5lcGhld19maWxlLmNsb3NlKCkKKyAgICAgICAgY3JlYXRlX2VtcHR5X2ZpbGUobmVwaGV3X2ZuYW1lKQogICAgICAgICBpZiB2ZXJib3NlOiBwcmludCgiICBBZGRlZCBuZXBoZXcgbW9kdWxlOiIsIG5lcGhld19mbmFtZSkKIAogICAgIGRlZiBfY2hlY2tfcmVsYXRpdmVfaW1wb3J0cyhzZWxmLCBkZXB0aCwgcnVuX25hbWU9Tm9uZSk6CkBAIC0yNTEsMTEgKzI1NSwxMyBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigic2libGluZyIsIGQxKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigibmVwaGV3IiwgZDEpCiAgICAgICAgICAgICBkZWwgZDEgIyBFbnN1cmUgX19sb2FkZXJfXyBlbnRyeSBkb2Vzbid0IGtlZXAgZmlsZSBvcGVuCisgICAgICAgICAgICBpbXBvcnRsaWIuaW52YWxpZGF0ZV9jYWNoZXMoKQogICAgICAgICAgICAgX19pbXBvcnRfXyhtb2RfbmFtZSkKICAgICAgICAgICAgIG9zLnJlbW92ZShtb2RfZm5hbWUpCiAgICAgICAgICAgICBtYWtlX2xlZ2FjeV9weWMobW9kX2ZuYW1lKQogICAgICAgICAgICAgdW5sb2FkKG1vZF9uYW1lKSAgIyBJbiBjYXNlIHRoZSBsb2FkZXIgY2FjaGVzIHBhdGhzCiAgICAgICAgICAgICBpZiB2ZXJib3NlOiBwcmludCgiUnVubmluZyBmcm9tIGNvbXBpbGVkOiIsIG1vZF9uYW1lKQorICAgICAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKICAgICAgICAgICAgIGQyID0gcnVuX21vZHVsZShtb2RfbmFtZSwgcnVuX25hbWU9cnVuX25hbWUpICMgUmVhZCBmcm9tIGJ5dGVjb2RlCiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJfX3BhY2thZ2VfXyIsIGQyKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGQyWyJfX3BhY2thZ2VfXyJdID09IHBrZ19uYW1lKQpAQCAtMzk1LDYgKzQwMSw3IEBACiAgICAgICAgICAgICBtc2cgPSAiY2FuJ3QgZmluZCAnX19tYWluX18nIG1vZHVsZSBpbiAlciIgJSB6aXBfbmFtZQogICAgICAgICAgICAgc2VsZi5fY2hlY2tfaW1wb3J0X2Vycm9yKHppcF9uYW1lLCBtc2cpCiAKKyAgICBAbm9fdHJhY2luZwogICAgIGRlZiB0ZXN0X21haW5fcmVjdXJzaW9uX2Vycm9yKHNlbGYpOgogICAgICAgICB3aXRoIHRlbXBfZGlyKCkgYXMgc2NyaXB0X2RpciwgdGVtcF9kaXIoKSBhcyBkdW1teV9kaXI6CiAgICAgICAgICAgICBtb2RfbmFtZSA9ICdfX21haW5fXycKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc2F4LnB5IGIvTGliL3Rlc3QvdGVzdF9zYXgucHkKaW5kZXggMTIyNWQ2ZS4uOGUwMDg4OSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zYXgucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zYXgucHkKQEAgLTIwLDggKzIwLDggQEAKIFRFU1RfWE1MRklMRSA9IGZpbmRmaWxlKCJ0ZXN0LnhtbCIsIHN1YmRpcj0ieG1sdGVzdGRhdGEiKQogVEVTVF9YTUxGSUxFX09VVCA9IGZpbmRmaWxlKCJ0ZXN0LnhtbC5vdXQiLCBzdWJkaXI9InhtbHRlc3RkYXRhIikKIHRyeToKLSAgICBURVNUX1hNTEZJTEUuZW5jb2RlKCJ1dGY4IikKLSAgICBURVNUX1hNTEZJTEVfT1VULmVuY29kZSgidXRmOCIpCisgICAgVEVTVF9YTUxGSUxFLmVuY29kZSgidXRmLTgiKQorICAgIFRFU1RfWE1MRklMRV9PVVQuZW5jb2RlKCJ1dGYtOCIpCiBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgogICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KCJmaWxlbmFtZSBpcyBub3QgZW5jb2RhYmxlIHRvIHV0ZjgiKQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NjaGVkLnB5IGIvTGliL3Rlc3QvdGVzdF9zY2hlZC5weQppbmRleCA5MWI4ZjBjLi41MGFkYTUyIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NjaGVkLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc2NoZWQucHkKQEAgLTYzLDE1ICs2MywzOSBAQAogCiAgICAgZGVmIHRlc3RfcXVldWUoc2VsZik6CiAgICAgICAgIGwgPSBbXQotICAgICAgICBldmVudHMgPSBbXQogICAgICAgICBmdW4gPSBsYW1iZGEgeDogbC5hcHBlbmQoeCkKICAgICAgICAgc2NoZWR1bGVyID0gc2NoZWQuc2NoZWR1bGVyKHRpbWUudGltZSwgdGltZS5zbGVlcCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzY2hlZHVsZXIuX3F1ZXVlLCBbXSkKLSAgICAgICAgZm9yIHggaW4gWzAuMDUsIDAuMDQsIDAuMDMsIDAuMDIsIDAuMDFdOgotICAgICAgICAgICAgZXZlbnRzLmFwcGVuZChzY2hlZHVsZXIuZW50ZXJhYnMoeCwgMSwgZnVuLCAoeCwpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzY2hlZHVsZXIuX3F1ZXVlLnNvcnQoKSwgZXZlbnRzLnNvcnQoKSkKKyAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAgICAgZTUgPSBzY2hlZHVsZXIuZW50ZXJhYnMobm93ICsgMC4wNSwgMSwgZnVuKQorICAgICAgICBlMSA9IHNjaGVkdWxlci5lbnRlcmFicyhub3cgKyAwLjAxLCAxLCBmdW4pCisgICAgICAgIGUyID0gc2NoZWR1bGVyLmVudGVyYWJzKG5vdyArIDAuMDIsIDEsIGZ1bikKKyAgICAgICAgZTQgPSBzY2hlZHVsZXIuZW50ZXJhYnMobm93ICsgMC4wNCwgMSwgZnVuKQorICAgICAgICBlMyA9IHNjaGVkdWxlci5lbnRlcmFicyhub3cgKyAwLjAzLCAxLCBmdW4pCisgICAgICAgICMgcXVldWUgcHJvcGVydHkgaXMgc3VwcG9zZWQgdG8gcmV0dXJuIGFuIG9yZGVyIGxpc3Qgb2YKKyAgICAgICAgIyB1cGNvbWluZyBldmVudHMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHNjaGVkdWxlci5xdWV1ZSksIFtlMSwgZTIsIGUzLCBlNCwgZTVdKQorCisgICAgZGVmIHRlc3RfYXJnc19rd2FyZ3Moc2VsZik6CisgICAgICAgIGZsYWcgPSBbXQorCisgICAgICAgIGRlZiBmdW4oKmEsICoqYik6CisgICAgICAgICAgICBmbGFnLmFwcGVuZChOb25lKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLCAoMSwyLDMpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiLCB7ImZvbyI6MX0pCisKKyAgICAgICAgc2NoZWR1bGVyID0gc2NoZWQuc2NoZWR1bGVyKHRpbWUudGltZSwgdGltZS5zbGVlcCkKKyAgICAgICAgeiA9IHNjaGVkdWxlci5lbnRlcmFicygwLjAxLCAxLCBmdW4sIGFyZ3VtZW50PSgxLDIsMyksIGt3YXJncz17ImZvbyI6MX0pCiAgICAgICAgIHNjaGVkdWxlci5ydW4oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNjaGVkdWxlci5fcXVldWUsIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZsYWcsIFtOb25lXSkKKworICAgIGRlZiB0ZXN0X3J1bl9ub25fYmxvY2tpbmcoc2VsZik6CisgICAgICAgIGwgPSBbXQorICAgICAgICBmdW4gPSBsYW1iZGEgeDogbC5hcHBlbmQoeCkKKyAgICAgICAgc2NoZWR1bGVyID0gc2NoZWQuc2NoZWR1bGVyKHRpbWUudGltZSwgdGltZS5zbGVlcCkKKyAgICAgICAgZm9yIHggaW4gWzEwLCA5LCA4LCA3LCA2XToKKyAgICAgICAgICAgIHNjaGVkdWxlci5lbnRlcih4LCAxLCBmdW4sICh4LCkpCisgICAgICAgIHNjaGVkdWxlci5ydW4oYmxvY2tpbmc9RmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobCwgW10pCiAKIAogZGVmIHRlc3RfbWFpbigpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zY29wZS5weSBiL0xpYi90ZXN0L3Rlc3Rfc2NvcGUucHkKaW5kZXggZmJjODdhYS4uMTI5YTE4YSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zY29wZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3Njb3BlLnB5CkBAIC0xLDUgKzEsNSBAQAogaW1wb3J0IHVuaXR0ZXN0Ci1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgY2hlY2tfc3ludGF4X2Vycm9yLCBydW5fdW5pdHRlc3QKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBjaGVja19zeW50YXhfZXJyb3IsIGNweXRob25fb25seSwgcnVuX3VuaXR0ZXN0CiAKIAogY2xhc3MgU2NvcGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC00OTYsMjMgKzQ5NiwyMiBAQAogICAgICAgICBzZWxmLmFzc2VydE5vdEluKCJ4IiwgdmFybmFtZXMpCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oInkiLCB2YXJuYW1lcykKIAorICAgIEBjcHl0aG9uX29ubHkKICAgICBkZWYgdGVzdExvY2Fsc0NsYXNzX1dpdGhUcmFjZShzZWxmKToKICAgICAgICAgIyBJc3N1ZTIzNzI4OiBhZnRlciB0aGUgdHJhY2UgZnVuY3Rpb24gcmV0dXJucywgdGhlIGxvY2FscygpCiAgICAgICAgICMgZGljdGlvbmFyeSBpcyB1c2VkIHRvIHVwZGF0ZSBhbGwgdmFyaWFibGVzLCB0aGlzIHVzZWQgdG8KICAgICAgICAgIyBpbmNsdWRlIGZyZWUgdmFyaWFibGVzLiBCdXQgaW4gY2xhc3Mgc3RhdGVtZW50cywgZnJlZQogICAgICAgICAjIHZhcmlhYmxlcyBhcmUgbm90IGluc2VydGVkLi4uCiAgICAgICAgIGltcG9ydCBzeXMKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHN5cy5zZXR0cmFjZSwgc3lzLmdldHRyYWNlKCkpCiAgICAgICAgIHN5cy5zZXR0cmFjZShsYW1iZGEgYSxiLGM6Tm9uZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgeCA9IDEyCisgICAgICAgIHggPSAxMgogCi0gICAgICAgICAgICBjbGFzcyBDOgotICAgICAgICAgICAgICAgIGRlZiBmKHNlbGYpOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4geAorICAgICAgICBjbGFzcyBDOgorICAgICAgICAgICAgZGVmIGYoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHgKIAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCAxMikgIyBVc2VkIHRvIHJhaXNlIFVuYm91bmRMb2NhbEVycm9yCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzeXMuc2V0dHJhY2UoTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LCAxMikgIyBVc2VkIHRvIHJhaXNlIFVuYm91bmRMb2NhbEVycm9yCiAKICAgICBkZWYgdGVzdEJvdW5kQW5kRnJlZShzZWxmKToKICAgICAgICAgIyB2YXIgaXMgYm91bmQgYW5kIGZyZWUgaW4gY2xhc3MKQEAgLTUyNyw2ICs1MjYsNyBAQAogICAgICAgICBpbnN0ID0gZigzKSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5zdC5hLCBpbnN0Lm0oKSkKIAorICAgIEBjcHl0aG9uX29ubHkKICAgICBkZWYgdGVzdEludGVyYWN0aW9uV2l0aFRyYWNlRnVuYyhzZWxmKToKIAogICAgICAgICBpbXBvcnQgc3lzCkBAIC01NDMsNiArNTQzLDcgQEAKICAgICAgICAgY2xhc3MgVGVzdENsYXNzOgogICAgICAgICAgICAgcGFzcwogCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzeXMuc2V0dHJhY2UsIHN5cy5nZXR0cmFjZSgpKQogICAgICAgICBzeXMuc2V0dHJhY2UodHJhY2VyKQogICAgICAgICBhZGFwdGdldHRlcigiZm9vIiwgVGVzdENsYXNzLCAoMSwgIiIpKQogICAgICAgICBzeXMuc2V0dHJhY2UoTm9uZSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc2VsZWN0LnB5IGIvTGliL3Rlc3QvdGVzdF9zZWxlY3QucHkKaW5kZXggZmU5MmY0NS4uMzE0NGM1NCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zZWxlY3QucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zZWxlY3QucHkKQEAgLTEsOCArMSw5IEBACi1mcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHNlbGVjdAoraW1wb3J0IGVycm5vCiBpbXBvcnQgb3MKK2ltcG9ydCBzZWxlY3QKIGltcG9ydCBzeXMKK2ltcG9ydCB1bml0dGVzdAorZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiAKIEB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtWzozXSBpbiAoJ3dpbicsICdvczInLCAncmlzY29zJyksCiAgICAgICAgICAgICAgICAgICJjYW4ndCBlYXNpbHkgdGVzdCBvbiB0aGlzIHN5c3RlbSIpCkBAIC0yMCw2ICsyMSwyMSBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGVjdC5zZWxlY3QsIFtzZWxmLk5vcGUoKV0sIFtdLCBbXSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxlY3Quc2VsZWN0LCBbc2VsZi5BbG1vc3QoKV0sIFtdLCBbXSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxlY3Quc2VsZWN0LCBbXSwgW10sIFtdLCAibm90IGEgbnVtYmVyIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZWN0LnNlbGVjdCwgW10sIFtdLCBbXSwgLTEpCisKKyAgICAjIElzc3VlICMxMjM2NzogaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jZ2kvcXVlcnktcHIuY2dpP3ByPWtlcm4vMTU1NjA2CisgICAgQHVuaXR0ZXN0LnNraXBJZihzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnZnJlZWJzZCcpLAorICAgICAgICAgICAgICAgICAgICAgJ3NraXAgYmVjYXVzZSBvZiBhIEZyZWVCU0QgYnVnOiBrZXJuLzE1NTYwNicpCisgICAgZGVmIHRlc3RfZXJybm8oc2VsZik6CisgICAgICAgIHdpdGggb3BlbihfX2ZpbGVfXywgJ3JiJykgYXMgZnA6CisgICAgICAgICAgICBmZCA9IGZwLmZpbGVubygpCisgICAgICAgICAgICBmcC5jbG9zZSgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZWN0LnNlbGVjdChbZmRdLCBbXSwgW10sIDApCisgICAgICAgICAgICBleGNlcHQgc2VsZWN0LmVycm9yIGFzIGVycjoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVyci5lcnJubywgZXJybm8uRUJBREYpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgiZXhjZXB0aW9uIG5vdCByYWlzZWQiKQogCiAgICAgZGVmIHRlc3RfcmV0dXJuZWRfbGlzdF9pZGVudGl0eShzZWxmKToKICAgICAgICAgIyBTZWUgaXNzdWUgIzgzMjkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc2V0LnB5IGIvTGliL3Rlc3QvdGVzdF9zZXQucHkKaW5kZXggNjY0MjQ0MC4uOGU5ZTU4NyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zZXQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zZXQucHkKQEAgLTksNiArOSw3IEBACiBpbXBvcnQgc3lzCiBpbXBvcnQgd2FybmluZ3MKIGltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IGNvbGxlY3Rpb25zLmFiYwogCiBjbGFzcyBQYXNzVGhydShFeGNlcHRpb24pOgogICAgIHBhc3MKQEAgLTIzNCw2ICsyMzUsMjYgQEAKICAgICAgICAgICAgICAgICBkdXAgPSBwaWNrbGUubG9hZHMocCkKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucy54LCBkdXAueCkKIAorICAgIGRlZiB0ZXN0X2l0ZXJhdG9yX3BpY2tsaW5nKHNlbGYpOgorICAgICAgICBpdG9yZyA9IGl0ZXIoc2VsZi5zKQorICAgICAgICBkYXRhID0gc2VsZi50aGV0eXBlKHNlbGYucykKKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdG9yZykKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgIyBTZXQgaXRlcmF0b3JzIHVucGlja2xlIGFzIGxpc3QgaXRlcmF0b3JzIGR1ZSB0byB0aGUKKyAgICAgICAgIyB1bmRlZmluZWQgb3JkZXIgb2Ygc2V0IGl0ZW1zLgorICAgICAgICAjIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShpdG9yZyksIHR5cGUoaXQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShpdCwgY29sbGVjdGlvbnMuYWJjLkl0ZXJhdG9yKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnRoZXR5cGUoaXQpLCBkYXRhKQorCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRyb3AgPSBuZXh0KGl0KQorICAgICAgICBleGNlcHQgU3RvcEl0ZXJhdGlvbjoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBkID0gcGlja2xlLmR1bXBzKGl0KQorICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudGhldHlwZShpdCksIGRhdGEgLSBzZWxmLnRoZXR5cGUoKGRyb3AsKSkpCisKICAgICBkZWYgdGVzdF9kZWVwY29weShzZWxmKToKICAgICAgICAgY2xhc3MgVHJhY2VyOgogICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVlKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc2hlbHZlLnB5IGIvTGliL3Rlc3QvdGVzdF9zaGVsdmUucHkKaW5kZXggM2U3M2Y1Mi4uMTNjMTI2NSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zaGVsdmUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zaGVsdmUucHkKQEAgLTIsNyArMiw3IEBACiBpbXBvcnQgc2hlbHZlCiBpbXBvcnQgZ2xvYgogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0Ci1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBNdXRhYmxlTWFwcGluZworZnJvbSBjb2xsZWN0aW9ucy5hYmMgaW1wb3J0IE11dGFibGVNYXBwaW5nCiBmcm9tIHRlc3QudGVzdF9kYm0gaW1wb3J0IGRibV9pdGVyYXRvcgogCiBkZWYgTDEocyk6CkBAIC0xMjksOCArMTI5LDggQEAKICAgICAgICAgc2hlbHZlLlNoZWxmKGQpW2tleV0gPSBbMV0KICAgICAgICAgc2VsZi5hc3NlcnRJbihrZXkuZW5jb2RlKCd1dGYtOCcpLCBkKQogICAgICAgICAjIGJ1dCBhIGRpZmZlcmVudCBvbmUgY2FuIGJlIGdpdmVuCi0gICAgICAgIHNoZWx2ZS5TaGVsZihkLCBrZXllbmNvZGluZz0nbGF0aW4xJylba2V5XSA9IFsxXQotICAgICAgICBzZWxmLmFzc2VydEluKGtleS5lbmNvZGUoJ2xhdGluMScpLCBkKQorICAgICAgICBzaGVsdmUuU2hlbGYoZCwga2V5ZW5jb2Rpbmc9J2xhdGluLTEnKVtrZXldID0gWzFdCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oa2V5LmVuY29kZSgnbGF0aW4tMScpLCBkKQogICAgICAgICAjIHdpdGggYWxsIGNvbnNlcXVlbmNlcwogICAgICAgICBzID0gc2hlbHZlLlNoZWxmKGQsIGtleWVuY29kaW5nPSdhc2NpaScpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaWNvZGVFbmNvZGVFcnJvciwgcy5fX3NldGl0ZW1fXywga2V5LCBbMV0pCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NobGV4LnB5IGIvTGliL3Rlc3QvdGVzdF9zaGxleC5weQppbmRleCAyNWU0YjZkLi5kNDQ2M2YzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NobGV4LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc2hsZXgucHkKQEAgLTEsNiArMSw3IEBACi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCBvcywgc3lzLCBpbworaW1wb3J0IGlvCiBpbXBvcnQgc2hsZXgKK2ltcG9ydCBzdHJpbmcKK2ltcG9ydCB1bml0dGVzdAogCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIApAQCAtMTczLDYgKzE3NCwyMiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXM6ICVzICE9ICVzIiAlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmRhdGFbaV1bMF0sIGwsIHNlbGYuZGF0YVtpXVsxOl0pKQogCisgICAgZGVmIHRlc3RRdW90ZShzZWxmKToKKyAgICAgICAgc2FmZXVucXVvdGVkID0gc3RyaW5nLmFzY2lpX2xldHRlcnMgKyBzdHJpbmcuZGlnaXRzICsgJ0AlXy0rPTosLi8nCisgICAgICAgIHVuaWNvZGVfc2FtcGxlID0gJ1x4ZTlceGUwXHhkZicgICMgZSArIGFjdXRlIGFjY2VudCwgYSArIGdyYXZlLCBzaGFycCBzCisgICAgICAgIHVuc2FmZSA9ICciYCRcXCEnICsgdW5pY29kZV9zYW1wbGUKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNobGV4LnF1b3RlKCcnKSwgIicnIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzaGxleC5xdW90ZShzYWZldW5xdW90ZWQpLCBzYWZldW5xdW90ZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2hsZXgucXVvdGUoJ3Rlc3QgZmlsZSBuYW1lJyksICIndGVzdCBmaWxlIG5hbWUnIikKKyAgICAgICAgZm9yIHUgaW4gdW5zYWZlOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzaGxleC5xdW90ZSgndGVzdCVzbmFtZScgJSB1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIid0ZXN0JXNuYW1lJyIgJSB1KQorICAgICAgICBmb3IgdSBpbiB1bnNhZmU6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNobGV4LnF1b3RlKCJ0ZXN0JXMnbmFtZSciICUgdSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIndGVzdCVzJ1wiJ1wiJ25hbWUnXCInXCInJyIgJSB1KQorCisKICMgQWxsb3cgdGhpcyB0ZXN0IHRvIGJlIHVzZWQgd2l0aCBvbGQgc2hsZXgucHkKIGlmIG5vdCBnZXRhdHRyKHNobGV4LCAic3BsaXQiLCBOb25lKToKICAgICBmb3IgbWV0aG5hbWUgaW4gZGlyKFNobGV4VGVzdCk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NodXRpbC5weSBiL0xpYi90ZXN0L3Rlc3Rfc2h1dGlsLnB5CmluZGV4IDFhMDE2YjkuLmEyYjZlODggMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc2h1dGlsLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc2h1dGlsLnB5CkBAIC03LDggKzcsOSBAQAogaW1wb3J0IHN0YXQKIGltcG9ydCBvcwogaW1wb3J0IG9zLnBhdGgKLWltcG9ydCBmdW5jdG9vbHMKIGltcG9ydCBlcnJubworaW1wb3J0IGZ1bmN0b29scworaW1wb3J0IHN1YnByb2Nlc3MKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IFRFU1RGTgogZnJvbSBvcy5wYXRoIGltcG9ydCBzcGxpdGRyaXZlCkBAIC0yMiw3ICsyMyw3IEBACiBpbXBvcnQgd2FybmluZ3MKIAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0Ci1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgVEVTVEZOLCBjaGVja193YXJuaW5ncywgY2FwdHVyZWRfc3Rkb3V0Citmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgVEVTVEZOLCBjaGVja193YXJuaW5ncywgY2FwdHVyZWRfc3Rkb3V0LCByZXF1aXJlc196bGliCiAKIHRyeToKICAgICBpbXBvcnQgYnoyCkBAIC00MCwxMSArNDEsNiBAQAogICAgIFVJRF9HSURfU1VQUE9SVCA9IEZhbHNlCiAKIHRyeToKLSAgICBpbXBvcnQgemxpYgotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHpsaWIgPSBOb25lCi0KLXRyeToKICAgICBpbXBvcnQgemlwZmlsZQogICAgIFpJUF9TVVBQT1JUID0gVHJ1ZQogZXhjZXB0IEltcG9ydEVycm9yOgpAQCAtNTIsNyArNDgsNyBAQAogCiBkZWYgX2Zha2VfcmVuYW1lKCphcmdzLCAqKmt3YXJncyk6CiAgICAgIyBQcmV0ZW5kIHRoZSBkZXN0aW5hdGlvbiBwYXRoIGlzIG9uIGEgZGlmZmVyZW50IGZpbGVzeXN0ZW0uCi0gICAgcmFpc2UgT1NFcnJvcigpCisgICAgcmFpc2UgT1NFcnJvcihnZXRhdHRyKGVycm5vLCAnRVhERVYnLCAxOCksICJJbnZhbGlkIGNyb3NzLWRldmljZSBsaW5rIikKIAogZGVmIG1vY2tfcmVuYW1lKGZ1bmMpOgogICAgIEBmdW5jdG9vbHMud3JhcHMoZnVuYykKQEAgLTY1LDYgKzYxLDMxIEBACiAgICAgICAgICAgICBvcy5yZW5hbWUgPSBidWlsdGluX3JlbmFtZQogICAgIHJldHVybiB3cmFwCiAKK2RlZiB3cml0ZV9maWxlKHBhdGgsIGNvbnRlbnQsIGJpbmFyeT1GYWxzZSk6CisgICAgIiIiV3JpdGUgKmNvbnRlbnQqIHRvIGEgZmlsZSBsb2NhdGVkIGF0ICpwYXRoKi4KKworICAgIElmICpwYXRoKiBpcyBhIHR1cGxlIGluc3RlYWQgb2YgYSBzdHJpbmcsIG9zLnBhdGguam9pbiB3aWxsIGJlIHVzZWQgdG8KKyAgICBtYWtlIGEgcGF0aC4gIElmICpiaW5hcnkqIGlzIHRydWUsIHRoZSBmaWxlIHdpbGwgYmUgb3BlbmVkIGluIGJpbmFyeQorICAgIG1vZGUuCisgICAgIiIiCisgICAgaWYgaXNpbnN0YW5jZShwYXRoLCB0dXBsZSk6CisgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oKnBhdGgpCisgICAgd2l0aCBvcGVuKHBhdGgsICd3YicgaWYgYmluYXJ5IGVsc2UgJ3cnKSBhcyBmcDoKKyAgICAgICAgZnAud3JpdGUoY29udGVudCkKKworZGVmIHJlYWRfZmlsZShwYXRoLCBiaW5hcnk9RmFsc2UpOgorICAgICIiIlJldHVybiBjb250ZW50cyBmcm9tIGEgZmlsZSBsb2NhdGVkIGF0ICpwYXRoKi4KKworICAgIElmICpwYXRoKiBpcyBhIHR1cGxlIGluc3RlYWQgb2YgYSBzdHJpbmcsIG9zLnBhdGguam9pbiB3aWxsIGJlIHVzZWQgdG8KKyAgICBtYWtlIGEgcGF0aC4gIElmICpiaW5hcnkqIGlzIHRydWUsIHRoZSBmaWxlIHdpbGwgYmUgb3BlbmVkIGluIGJpbmFyeQorICAgIG1vZGUuCisgICAgIiIiCisgICAgaWYgaXNpbnN0YW5jZShwYXRoLCB0dXBsZSk6CisgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oKnBhdGgpCisgICAgd2l0aCBvcGVuKHBhdGgsICdyYicgaWYgYmluYXJ5IGVsc2UgJ3InKSBhcyBmcDoKKyAgICAgICAgcmV0dXJuIGZwLnJlYWQoKQorCisKIGNsYXNzIFRlc3RTaHV0aWwodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgpAQCAtNzcsMTkgKzk4LDYgQEAKICAgICAgICAgICAgIGQgPSBzZWxmLnRlbXBkaXJzLnBvcCgpCiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKGQsIG9zLm5hbWUgaW4gKCdudCcsICdjeWd3aW4nKSkKIAotICAgIGRlZiB3cml0ZV9maWxlKHNlbGYsIHBhdGgsIGNvbnRlbnQ9J3h4eCcpOgotICAgICAgICAiIiJXcml0ZXMgYSBmaWxlIGluIHRoZSBnaXZlbiBwYXRoLgotCi0KLSAgICAgICAgcGF0aCBjYW4gYmUgYSBzdHJpbmcgb3IgYSBzZXF1ZW5jZS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2UocGF0aCwgKGxpc3QsIHR1cGxlKSk6Ci0gICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKCpwYXRoKQotICAgICAgICBmID0gb3BlbihwYXRoLCAndycpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGYud3JpdGUoY29udGVudCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGYuY2xvc2UoKQogCiAgICAgZGVmIG1rZHRlbXAoc2VsZik6CiAgICAgICAgICIiIkNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgdGhhdCB3aWxsIGJlIGNsZWFuZWQgdXAuCkBAIC0xMDAsNiArMTA4LDQ3IEBACiAgICAgICAgIHNlbGYudGVtcGRpcnMuYXBwZW5kKGQpCiAgICAgICAgIHJldHVybiBkCiAKKyAgICBkZWYgdGVzdF9ybXRyZWVfd29ya3Nfb25fYnl0ZXMoc2VsZik6CisgICAgICAgIHRtcCA9IHNlbGYubWtkdGVtcCgpCisgICAgICAgIHZpY3RpbSA9IG9zLnBhdGguam9pbih0bXAsICdraWxsbWUnKQorICAgICAgICBvcy5ta2Rpcih2aWN0aW0pCisgICAgICAgIHdyaXRlX2ZpbGUob3MucGF0aC5qb2luKHZpY3RpbSwgJ3NvbWVmaWxlJyksICdmb28nKQorICAgICAgICB2aWN0aW0gPSBvcy5mc2VuY29kZSh2aWN0aW0pCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZSh2aWN0aW0sIGJ5dGVzKQorICAgICAgICBzaHV0aWwucm10cmVlKHZpY3RpbSkKKworICAgIEBzdXBwb3J0LnNraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9ybXRyZWVfZmFpbHNfb25fc3ltbGluayhzZWxmKToKKyAgICAgICAgdG1wID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgZGlyXyA9IG9zLnBhdGguam9pbih0bXAsICdkaXInKQorICAgICAgICBvcy5ta2RpcihkaXJfKQorICAgICAgICBsaW5rID0gb3MucGF0aC5qb2luKHRtcCwgJ2xpbmsnKQorICAgICAgICBvcy5zeW1saW5rKGRpcl8sIGxpbmspCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHNodXRpbC5ybXRyZWUsIGxpbmspCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmV4aXN0cyhkaXJfKSkKKworICAgIEBzdXBwb3J0LnNraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9ybXRyZWVfd29ya3Nfb25fc3ltbGlua3Moc2VsZik6CisgICAgICAgIHRtcCA9IHNlbGYubWtkdGVtcCgpCisgICAgICAgIGRpcjEgPSBvcy5wYXRoLmpvaW4odG1wLCAnZGlyMScpCisgICAgICAgIGRpcjIgPSBvcy5wYXRoLmpvaW4oZGlyMSwgJ2RpcjInKQorICAgICAgICBkaXIzID0gb3MucGF0aC5qb2luKHRtcCwgJ2RpcjMnKQorICAgICAgICBmb3IgZCBpbiBkaXIxLCBkaXIyLCBkaXIzOgorICAgICAgICAgICAgb3MubWtkaXIoZCkKKyAgICAgICAgZmlsZTEgPSBvcy5wYXRoLmpvaW4odG1wLCAnZmlsZTEnKQorICAgICAgICB3cml0ZV9maWxlKGZpbGUxLCAnZm9vJykKKyAgICAgICAgbGluazEgPSBvcy5wYXRoLmpvaW4oZGlyMSwgJ2xpbmsxJykKKyAgICAgICAgb3Muc3ltbGluayhkaXIyLCBsaW5rMSkKKyAgICAgICAgbGluazIgPSBvcy5wYXRoLmpvaW4oZGlyMSwgJ2xpbmsyJykKKyAgICAgICAgb3Muc3ltbGluayhkaXIzLCBsaW5rMikKKyAgICAgICAgbGluazMgPSBvcy5wYXRoLmpvaW4oZGlyMSwgJ2xpbmszJykKKyAgICAgICAgb3Muc3ltbGluayhmaWxlMSwgbGluazMpCisgICAgICAgICMgbWFrZSBzdXJlIHN5bWxpbmtzIGFyZSByZW1vdmVkIGJ1dCBub3QgZm9sbG93ZWQKKyAgICAgICAgc2h1dGlsLnJtdHJlZShkaXIxKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKGRpcjEpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHMoZGlyMykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmV4aXN0cyhmaWxlMSkpCisKICAgICBkZWYgdGVzdF9ybXRyZWVfZXJyb3JzKHNlbGYpOgogICAgICAgICAjIGZpbGVuYW1lIGlzIGd1YXJhbnRlZWQgbm90IHRvIGV4aXN0CiAgICAgICAgIGZpbGVuYW1lID0gdGVtcGZpbGUubWt0ZW1wKCkKQEAgLTExMiwzMCArMTYxLDM0IEBACiAgICAgICAgIGRlZiB0ZXN0X29uX2Vycm9yKHNlbGYpOgogICAgICAgICAgICAgc2VsZi5lcnJvclN0YXRlID0gMAogICAgICAgICAgICAgb3MubWtkaXIoVEVTVEZOKQotICAgICAgICAgICAgc2VsZi5jaGlsZHBhdGggPSBvcy5wYXRoLmpvaW4oVEVTVEZOLCAnYScpCi0gICAgICAgICAgICBmID0gb3BlbihzZWxmLmNoaWxkcGF0aCwgJ3cnKQotICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAoc2h1dGlsLnJtdHJlZSwgVEVTVEZOKQorCisgICAgICAgICAgICBzZWxmLmNoaWxkX2ZpbGVfcGF0aCA9IG9zLnBhdGguam9pbihURVNURk4sICdhJykKKyAgICAgICAgICAgIHNlbGYuY2hpbGRfZGlyX3BhdGggPSBvcy5wYXRoLmpvaW4oVEVTVEZOLCAnYicpCisgICAgICAgICAgICBzdXBwb3J0LmNyZWF0ZV9lbXB0eV9maWxlKHNlbGYuY2hpbGRfZmlsZV9wYXRoKQorICAgICAgICAgICAgb3MubWtkaXIoc2VsZi5jaGlsZF9kaXJfcGF0aCkKICAgICAgICAgICAgIG9sZF9kaXJfbW9kZSA9IG9zLnN0YXQoVEVTVEZOKS5zdF9tb2RlCi0gICAgICAgICAgICBvbGRfY2hpbGRfbW9kZSA9IG9zLnN0YXQoc2VsZi5jaGlsZHBhdGgpLnN0X21vZGUKKyAgICAgICAgICAgIG9sZF9jaGlsZF9maWxlX21vZGUgPSBvcy5zdGF0KHNlbGYuY2hpbGRfZmlsZV9wYXRoKS5zdF9tb2RlCisgICAgICAgICAgICBvbGRfY2hpbGRfZGlyX21vZGUgPSBvcy5zdGF0KHNlbGYuY2hpbGRfZGlyX3BhdGgpLnN0X21vZGUKICAgICAgICAgICAgICMgTWFrZSB1bndyaXRhYmxlLgotICAgICAgICAgICAgb3MuY2htb2Qoc2VsZi5jaGlsZHBhdGgsIHN0YXQuU19JUkVBRCkKLSAgICAgICAgICAgIG9zLmNobW9kKFRFU1RGTiwgc3RhdC5TX0lSRUFEKQorICAgICAgICAgICAgbmV3X21vZGUgPSBzdGF0LlNfSVJFQUR8c3RhdC5TX0lFWEVDCisgICAgICAgICAgICBvcy5jaG1vZChzZWxmLmNoaWxkX2ZpbGVfcGF0aCwgbmV3X21vZGUpCisgICAgICAgICAgICBvcy5jaG1vZChzZWxmLmNoaWxkX2Rpcl9wYXRoLCBuZXdfbW9kZSkKKyAgICAgICAgICAgIG9zLmNobW9kKFRFU1RGTiwgbmV3X21vZGUpCisKKyAgICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChvcy5jaG1vZCwgVEVTVEZOLCBvbGRfZGlyX21vZGUpCisgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAob3MuY2htb2QsIHNlbGYuY2hpbGRfZmlsZV9wYXRoLCBvbGRfY2hpbGRfZmlsZV9tb2RlKQorICAgICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKG9zLmNobW9kLCBzZWxmLmNoaWxkX2Rpcl9wYXRoLCBvbGRfY2hpbGRfZGlyX21vZGUpCiAKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoVEVTVEZOLCBvbmVycm9yPXNlbGYuY2hlY2tfYXJnc190b19vbmVycm9yKQogICAgICAgICAgICAgIyBUZXN0IHdoZXRoZXIgb25lcnJvciBoYXMgYWN0dWFsbHkgYmVlbiBjYWxsZWQuCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZXJyb3JTdGF0ZSwgMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4cGVjdGVkIGNhbGwgdG8gb25lcnJvciBmdW5jdGlvbiBkaWQgbm90IGhhcHBlbi4iKQotCi0gICAgICAgICAgICAjIE1ha2Ugd3JpdGFibGUgYWdhaW4uCi0gICAgICAgICAgICBvcy5jaG1vZChURVNURk4sIG9sZF9kaXJfbW9kZSkKLSAgICAgICAgICAgIG9zLmNobW9kKHNlbGYuY2hpbGRwYXRoLCBvbGRfY2hpbGRfbW9kZSkKLQotICAgICAgICAgICAgIyBDbGVhbiB1cC4KLSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoVEVTVEZOKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmVycm9yU3RhdGUsIDMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFeHBlY3RlZCBjYWxsIHRvIG9uZXJyb3IgZnVuY3Rpb24gZGlkIG5vdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoYXBwZW4uIikKIAogICAgIGRlZiBjaGVja19hcmdzX3RvX29uZXJyb3Ioc2VsZiwgZnVuYywgYXJnLCBleGMpOgogICAgICAgICAjIHRlc3Rfcm10cmVlX2Vycm9ycyBkZWxpYmVyYXRlbHkgcnVucyBybXRyZWUKLSAgICAgICAgIyBvbiBhIGRpcmVjdG9yeSB0aGF0IGlzIGNobW9kIDQwMCwgd2hpY2ggd2lsbCBmYWlsLgorICAgICAgICAjIG9uIGEgZGlyZWN0b3J5IHRoYXQgaXMgY2htb2QgNTAwLCB3aGljaCB3aWxsIGZhaWwuCiAgICAgICAgICMgVGhpcyBmdW5jdGlvbiBpcyBydW4gd2hlbiBzaHV0aWwucm10cmVlIGZhaWxzLgogICAgICAgICAjIDk5LjklIG9mIHRoZSB0aW1lIGl0IGluaXRpYWxseSBmYWlscyB0byByZW1vdmUKICAgICAgICAgIyBhIGZpbGUgaW4gdGhlIGRpcmVjdG9yeSwgc28gdGhlIGZpcnN0IHRpbWUgdGhyb3VnaApAQCAtMTQ0LDk5ICsxOTcsNDI3IEBACiAgICAgICAgICMgRlVTRSBleHBlcmllbmNlZCBhIGZhaWx1cmUgZWFybGllciBpbiB0aGUgcHJvY2VzcwogICAgICAgICAjIGF0IG9zLmxpc3RkaXIuICBUaGUgZmlyc3QgZmFpbHVyZSBtYXkgbGVnYWxseQogICAgICAgICAjIGJlIGVpdGhlci4KLSAgICAgICAgaWYgc2VsZi5lcnJvclN0YXRlID09IDA6Ci0gICAgICAgICAgICBpZiBmdW5jIGlzIG9zLnJlbW92ZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZywgc2VsZi5jaGlsZHBhdGgpCisgICAgICAgIGlmIHNlbGYuZXJyb3JTdGF0ZSA8IDI6CisgICAgICAgICAgICBpZiBmdW5jIGlzIG9zLnVubGluazoKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZywgc2VsZi5jaGlsZF9maWxlX3BhdGgpCisgICAgICAgICAgICBlbGlmIGZ1bmMgaXMgb3Mucm1kaXI6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmcsIHNlbGYuY2hpbGRfZGlyX3BhdGgpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoZnVuYywgb3MubGlzdGRpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmdW5jIG11c3QgYmUgZWl0aGVyIG9zLnJlbW92ZSBvciBvcy5saXN0ZGlyIikKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZywgVEVTVEZOKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoZnVuYywgb3MubGlzdGRpcikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKGFyZywgW1RFU1RGTiwgc2VsZi5jaGlsZF9kaXJfcGF0aF0pCiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhleGNbMF0sIE9TRXJyb3IpKQotICAgICAgICAgICAgc2VsZi5lcnJvclN0YXRlID0gMQorICAgICAgICAgICAgc2VsZi5lcnJvclN0YXRlICs9IDEKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnVuYywgb3Mucm1kaXIpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZywgVEVTVEZOKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoZXhjWzBdLCBPU0Vycm9yKSkKLSAgICAgICAgICAgIHNlbGYuZXJyb3JTdGF0ZSA9IDIKKyAgICAgICAgICAgIHNlbGYuZXJyb3JTdGF0ZSA9IDMKKworICAgIGRlZiB0ZXN0X3JtdHJlZV9kb2VzX25vdF9jaG9rZV9vbl9mYWlsaW5nX2xzdGF0KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcmlnX2xzdGF0ID0gb3MubHN0YXQKKyAgICAgICAgICAgIGRlZiByYWlzZXIoZm4sICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgaWYgZm4gIT0gVEVTVEZOOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBPU0Vycm9yKCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3JpZ19sc3RhdChmbikKKyAgICAgICAgICAgIG9zLmxzdGF0ID0gcmFpc2VyCisKKyAgICAgICAgICAgIG9zLm1rZGlyKFRFU1RGTikKKyAgICAgICAgICAgIHdyaXRlX2ZpbGUoKFRFU1RGTiwgJ2ZvbycpLCAnZm9vJykKKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoVEVTVEZOKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3MubHN0YXQgPSBvcmlnX2xzdGF0CisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKG9zLCAnY2htb2QnKSwgJ3JlcXVpcmVzIG9zLmNobW9kJykKKyAgICBAc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCisgICAgZGVmIHRlc3RfY29weW1vZGVfZm9sbG93X3N5bWxpbmtzKHNlbGYpOgorICAgICAgICB0bXBfZGlyID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgc3JjID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdmb28nKQorICAgICAgICBkc3QgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2JhcicpCisgICAgICAgIHNyY19saW5rID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdiYXonKQorICAgICAgICBkc3RfbGluayA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAncXV1eCcpCisgICAgICAgIHdyaXRlX2ZpbGUoc3JjLCAnZm9vJykKKyAgICAgICAgd3JpdGVfZmlsZShkc3QsICdmb28nKQorICAgICAgICBvcy5zeW1saW5rKHNyYywgc3JjX2xpbmspCisgICAgICAgIG9zLnN5bWxpbmsoZHN0LCBkc3RfbGluaykKKyAgICAgICAgb3MuY2htb2Qoc3JjLCBzdGF0LlNfSVJXWFV8c3RhdC5TX0lSV1hHKQorICAgICAgICAjIGZpbGUgdG8gZmlsZQorICAgICAgICBvcy5jaG1vZChkc3QsIHN0YXQuU19JUldYTykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChvcy5zdGF0KHNyYykuc3RfbW9kZSwgb3Muc3RhdChkc3QpLnN0X21vZGUpCisgICAgICAgIHNodXRpbC5jb3B5bW9kZShzcmMsIGRzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5zdGF0KHNyYykuc3RfbW9kZSwgb3Muc3RhdChkc3QpLnN0X21vZGUpCisgICAgICAgICMgZm9sbG93IHNyYyBsaW5rCisgICAgICAgIG9zLmNobW9kKGRzdCwgc3RhdC5TX0lSV1hPKQorICAgICAgICBzaHV0aWwuY29weW1vZGUoc3JjX2xpbmssIGRzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5zdGF0KHNyYykuc3RfbW9kZSwgb3Muc3RhdChkc3QpLnN0X21vZGUpCisgICAgICAgICMgZm9sbG93IGRzdCBsaW5rCisgICAgICAgIG9zLmNobW9kKGRzdCwgc3RhdC5TX0lSV1hPKQorICAgICAgICBzaHV0aWwuY29weW1vZGUoc3JjLCBkc3RfbGluaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5zdGF0KHNyYykuc3RfbW9kZSwgb3Muc3RhdChkc3QpLnN0X21vZGUpCisgICAgICAgICMgZm9sbG93IGJvdGggbGlua3MKKyAgICAgICAgb3MuY2htb2QoZHN0LCBzdGF0LlNfSVJXWE8pCisgICAgICAgIHNodXRpbC5jb3B5bW9kZShzcmNfbGluaywgZHN0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnN0YXQoc3JjKS5zdF9tb2RlLCBvcy5zdGF0KGRzdCkuc3RfbW9kZSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdsY2htb2QnKSwgJ3JlcXVpcmVzIG9zLmxjaG1vZCcpCisgICAgQHN1cHBvcnQuc2tpcF91bmxlc3Nfc3ltbGluaworICAgIGRlZiB0ZXN0X2NvcHltb2RlX3N5bWxpbmtfdG9fc3ltbGluayhzZWxmKToKKyAgICAgICAgdG1wX2RpciA9IHNlbGYubWtkdGVtcCgpCisgICAgICAgIHNyYyA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnZm9vJykKKyAgICAgICAgZHN0ID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdiYXInKQorICAgICAgICBzcmNfbGluayA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnYmF6JykKKyAgICAgICAgZHN0X2xpbmsgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ3F1dXgnKQorICAgICAgICB3cml0ZV9maWxlKHNyYywgJ2ZvbycpCisgICAgICAgIHdyaXRlX2ZpbGUoZHN0LCAnZm9vJykKKyAgICAgICAgb3Muc3ltbGluayhzcmMsIHNyY19saW5rKQorICAgICAgICBvcy5zeW1saW5rKGRzdCwgZHN0X2xpbmspCisgICAgICAgIG9zLmNobW9kKHNyYywgc3RhdC5TX0lSV1hVfHN0YXQuU19JUldYRykKKyAgICAgICAgb3MuY2htb2QoZHN0LCBzdGF0LlNfSVJXWFUpCisgICAgICAgIG9zLmxjaG1vZChzcmNfbGluaywgc3RhdC5TX0lSV1hPfHN0YXQuU19JUldYRykKKyAgICAgICAgIyBsaW5rIHRvIGxpbmsKKyAgICAgICAgb3MubGNobW9kKGRzdF9saW5rLCBzdGF0LlNfSVJXWE8pCisgICAgICAgIHNodXRpbC5jb3B5bW9kZShzcmNfbGluaywgZHN0X2xpbmssIHN5bWxpbmtzPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MubHN0YXQoc3JjX2xpbmspLnN0X21vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgb3MubHN0YXQoZHN0X2xpbmspLnN0X21vZGUpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwob3Muc3RhdChzcmMpLnN0X21vZGUsIG9zLnN0YXQoZHN0KS5zdF9tb2RlKQorICAgICAgICAjIHNyYyBsaW5rIC0gdXNlIGNobW9kCisgICAgICAgIG9zLmxjaG1vZChkc3RfbGluaywgc3RhdC5TX0lSV1hPKQorICAgICAgICBzaHV0aWwuY29weW1vZGUoc3JjX2xpbmssIGRzdCwgc3ltbGlua3M9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5zdGF0KHNyYykuc3RfbW9kZSwgb3Muc3RhdChkc3QpLnN0X21vZGUpCisgICAgICAgICMgZHN0IGxpbmsgLSB1c2UgY2htb2QKKyAgICAgICAgb3MubGNobW9kKGRzdF9saW5rLCBzdGF0LlNfSVJXWE8pCisgICAgICAgIHNodXRpbC5jb3B5bW9kZShzcmMsIGRzdF9saW5rLCBzeW1saW5rcz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnN0YXQoc3JjKS5zdF9tb2RlLCBvcy5zdGF0KGRzdCkuc3RfbW9kZSkKKworICAgIEB1bml0dGVzdC5za2lwSWYoaGFzYXR0cihvcywgJ2xjaG1vZCcpLCAncmVxdWlyZXMgb3MubGNobW9kIHRvIGJlIG1pc3NpbmcnKQorICAgIEBzdXBwb3J0LnNraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9jb3B5bW9kZV9zeW1saW5rX3RvX3N5bWxpbmtfd29fbGNobW9kKHNlbGYpOgorICAgICAgICB0bXBfZGlyID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgc3JjID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdmb28nKQorICAgICAgICBkc3QgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2JhcicpCisgICAgICAgIHNyY19saW5rID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdiYXonKQorICAgICAgICBkc3RfbGluayA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAncXV1eCcpCisgICAgICAgIHdyaXRlX2ZpbGUoc3JjLCAnZm9vJykKKyAgICAgICAgd3JpdGVfZmlsZShkc3QsICdmb28nKQorICAgICAgICBvcy5zeW1saW5rKHNyYywgc3JjX2xpbmspCisgICAgICAgIG9zLnN5bWxpbmsoZHN0LCBkc3RfbGluaykKKyAgICAgICAgc2h1dGlsLmNvcHltb2RlKHNyY19saW5rLCBkc3RfbGluaywgc3ltbGlua3M9VHJ1ZSkgICMgc2lsZW50IGZhaWwKKworICAgIEBzdXBwb3J0LnNraXBfdW5sZXNzX3N5bWxpbmsKKyAgICBkZWYgdGVzdF9jb3B5c3RhdF9zeW1saW5rcyhzZWxmKToKKyAgICAgICAgdG1wX2RpciA9IHNlbGYubWtkdGVtcCgpCisgICAgICAgIHNyYyA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnZm9vJykKKyAgICAgICAgZHN0ID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdiYXInKQorICAgICAgICBzcmNfbGluayA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnYmF6JykKKyAgICAgICAgZHN0X2xpbmsgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ3F1eCcpCisgICAgICAgIHdyaXRlX2ZpbGUoc3JjLCAnZm9vJykKKyAgICAgICAgc3JjX3N0YXQgPSBvcy5zdGF0KHNyYykKKyAgICAgICAgb3MudXRpbWUoc3JjLCAoc3JjX3N0YXQuc3RfYXRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgIHNyY19zdGF0LnN0X210aW1lIC0gNDIuMCkpICAjIGVuc3VyZSBkaWZmZXJlbnQgbXRpbWVzCisgICAgICAgIHdyaXRlX2ZpbGUoZHN0LCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChvcy5zdGF0KHNyYykuc3RfbXRpbWUsIG9zLnN0YXQoZHN0KS5zdF9tdGltZSkKKyAgICAgICAgb3Muc3ltbGluayhzcmMsIHNyY19saW5rKQorICAgICAgICBvcy5zeW1saW5rKGRzdCwgZHN0X2xpbmspCisgICAgICAgIGlmIGhhc2F0dHIob3MsICdsY2htb2QnKToKKyAgICAgICAgICAgIG9zLmxjaG1vZChzcmNfbGluaywgc3RhdC5TX0lSV1hPKQorICAgICAgICBpZiBoYXNhdHRyKG9zLCAnbGNoZmxhZ3MnKSBhbmQgaGFzYXR0cihzdGF0LCAnVUZfTk9EVU1QJyk6CisgICAgICAgICAgICBvcy5sY2hmbGFncyhzcmNfbGluaywgc3RhdC5VRl9OT0RVTVApCisgICAgICAgIHNyY19saW5rX3N0YXQgPSBvcy5sc3RhdChzcmNfbGluaykKKyAgICAgICAgIyBmb2xsb3cKKyAgICAgICAgaWYgaGFzYXR0cihvcywgJ2xjaG1vZCcpOgorICAgICAgICAgICAgc2h1dGlsLmNvcHlzdGF0KHNyY19saW5rLCBkc3RfbGluaywgc3ltbGlua3M9RmFsc2UpCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHNyY19saW5rX3N0YXQuc3RfbW9kZSwgb3Muc3RhdChkc3QpLnN0X21vZGUpCisgICAgICAgICMgZG9uJ3QgZm9sbG93CisgICAgICAgIHNodXRpbC5jb3B5c3RhdChzcmNfbGluaywgZHN0X2xpbmssIHN5bWxpbmtzPVRydWUpCisgICAgICAgIGRzdF9saW5rX3N0YXQgPSBvcy5sc3RhdChkc3RfbGluaykKKyAgICAgICAgaWYgb3MudXRpbWUgaW4gb3Muc3VwcG9ydHNfZm9sbG93X3N5bWxpbmtzOgorICAgICAgICAgICAgZm9yIGF0dHIgaW4gJ3N0X2F0aW1lJywgJ3N0X210aW1lJzoKKyAgICAgICAgICAgICAgICAjIFRoZSBtb2RpZmljYXRpb24gdGltZXMgbWF5IGJlIHRydW5jYXRlZCBpbiB0aGUgbmV3IGZpbGUuCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwoZ2V0YXR0cihzcmNfbGlua19zdGF0LCBhdHRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKGRzdF9saW5rX3N0YXQsIGF0dHIpICsgMSkKKyAgICAgICAgaWYgaGFzYXR0cihvcywgJ2xjaG1vZCcpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzcmNfbGlua19zdGF0LnN0X21vZGUsIGRzdF9saW5rX3N0YXQuc3RfbW9kZSkKKyAgICAgICAgaWYgaGFzYXR0cihvcywgJ2xjaGZsYWdzJykgYW5kIGhhc2F0dHIoc3JjX2xpbmtfc3RhdCwgJ3N0X2ZsYWdzJyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNyY19saW5rX3N0YXQuc3RfZmxhZ3MsIGRzdF9saW5rX3N0YXQuc3RfZmxhZ3MpCisgICAgICAgICMgdGVsbCB0byBmb2xsb3cgYnV0IGRzdCBpcyBub3QgYSBsaW5rCisgICAgICAgIHNodXRpbC5jb3B5c3RhdChzcmNfbGluaywgZHN0LCBzeW1saW5rcz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYWJzKG9zLnN0YXQoc3JjKS5zdF9tdGltZSAtIG9zLnN0YXQoZHN0KS5zdF9tdGltZSkgPAorICAgICAgICAgICAgICAgICAgICAgICAgMDAwMDAuMSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdjaGZsYWdzJykgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgaGFzYXR0cihlcnJubywgJ0VPUE5PVFNVUFAnKSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICBoYXNhdHRyKGVycm5vLCAnRU5PVFNVUCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJyZXF1aXJlcyBvcy5jaGZsYWdzLCBFT1BOT1RTVVBQICYgRU5PVFNVUCIpCisgICAgZGVmIHRlc3RfY29weXN0YXRfaGFuZGxlc19oYXJtbGVzc19jaGZsYWdzX2Vycm9ycyhzZWxmKToKKyAgICAgICAgdG1wZGlyID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgZmlsZTEgPSBvcy5wYXRoLmpvaW4odG1wZGlyLCAnZmlsZTEnKQorICAgICAgICBmaWxlMiA9IG9zLnBhdGguam9pbih0bXBkaXIsICdmaWxlMicpCisgICAgICAgIHdyaXRlX2ZpbGUoZmlsZTEsICd4eHgnKQorICAgICAgICB3cml0ZV9maWxlKGZpbGUyLCAneHh4JykKKworICAgICAgICBkZWYgbWFrZV9jaGZsYWdzX3JhaXNlcihlcnIpOgorICAgICAgICAgICAgZXggPSBPU0Vycm9yKCkKKworICAgICAgICAgICAgZGVmIF9jaGZsYWdzX3JhaXNlcihwYXRoLCBmbGFncywgKiwgZm9sbG93X3N5bWxpbmtzPVRydWUpOgorICAgICAgICAgICAgICAgIGV4LmVycm5vID0gZXJyCisgICAgICAgICAgICAgICAgcmFpc2UgZXgKKyAgICAgICAgICAgIHJldHVybiBfY2hmbGFnc19yYWlzZXIKKyAgICAgICAgb2xkX2NoZmxhZ3MgPSBvcy5jaGZsYWdzCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBlcnIgaW4gZXJybm8uRU9QTk9UU1VQUCwgZXJybm8uRU5PVFNVUDoKKyAgICAgICAgICAgICAgICBvcy5jaGZsYWdzID0gbWFrZV9jaGZsYWdzX3JhaXNlcihlcnIpCisgICAgICAgICAgICAgICAgc2h1dGlsLmNvcHlzdGF0KGZpbGUxLCBmaWxlMikKKyAgICAgICAgICAgICMgYXNzZXJ0IG90aGVycyBlcnJvcnMgYnJlYWsgaXQKKyAgICAgICAgICAgIG9zLmNoZmxhZ3MgPSBtYWtlX2NoZmxhZ3NfcmFpc2VyKGVycm5vLkVPUE5PVFNVUFAgKyBlcnJuby5FTk9UU1VQKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2h1dGlsLmNvcHlzdGF0LCBmaWxlMSwgZmlsZTIpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5jaGZsYWdzID0gb2xkX2NoZmxhZ3MKKworICAgIEBzdXBwb3J0LnNraXBfdW5sZXNzX3hhdHRyCisgICAgZGVmIHRlc3RfY29weXhhdHRyKHNlbGYpOgorICAgICAgICB0bXBfZGlyID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgc3JjID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdmb28nKQorICAgICAgICB3cml0ZV9maWxlKHNyYywgJ2ZvbycpCisgICAgICAgIGRzdCA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnYmFyJykKKyAgICAgICAgd3JpdGVfZmlsZShkc3QsICdiYXInKQorCisgICAgICAgICMgbm8geGF0dHIgPT0gbm8gcHJvYmxlbQorICAgICAgICBzaHV0aWwuX2NvcHl4YXR0cihzcmMsIGRzdCkKKyAgICAgICAgIyBjb21tb24gY2FzZQorICAgICAgICBvcy5zZXR4YXR0cihzcmMsICd1c2VyLmZvbycsIGInNDInKQorICAgICAgICBvcy5zZXR4YXR0cihzcmMsICd1c2VyLmJhcicsIGInNDMnKQorICAgICAgICBzaHV0aWwuX2NvcHl4YXR0cihzcmMsIGRzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5saXN0eGF0dHIoc3JjKSwgb3MubGlzdHhhdHRyKGRzdCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAgICAgb3MuZ2V0eGF0dHIoc3JjLCAndXNlci5mb28nKSwKKyAgICAgICAgICAgICAgICBvcy5nZXR4YXR0cihkc3QsICd1c2VyLmZvbycpKQorICAgICAgICAjIGNoZWNrIGVycm9ycyBkb24ndCBhZmZlY3Qgb3RoZXIgYXR0cnMKKyAgICAgICAgb3MucmVtb3ZlKGRzdCkKKyAgICAgICAgd3JpdGVfZmlsZShkc3QsICdiYXInKQorICAgICAgICBvc19lcnJvciA9IE9TRXJyb3IoZXJybm8uRVBFUk0sICdFUEVSTScpCisKKyAgICAgICAgZGVmIF9yYWlzZV9vbl91c2VyX2ZvbyhmbmFtZSwgYXR0ciwgdmFsLCAqKmt3YXJncyk6CisgICAgICAgICAgICBpZiBhdHRyID09ICd1c2VyLmZvbyc6CisgICAgICAgICAgICAgICAgcmFpc2Ugb3NfZXJyb3IKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgb3JpZ19zZXR4YXR0cihmbmFtZSwgYXR0ciwgdmFsLCAqKmt3YXJncykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3JpZ19zZXR4YXR0ciA9IG9zLnNldHhhdHRyCisgICAgICAgICAgICBvcy5zZXR4YXR0ciA9IF9yYWlzZV9vbl91c2VyX2ZvbworICAgICAgICAgICAgc2h1dGlsLl9jb3B5eGF0dHIoc3JjLCBkc3QpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCd1c2VyLmJhcicsIG9zLmxpc3R4YXR0cihkc3QpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgb3Muc2V0eGF0dHIgPSBvcmlnX3NldHhhdHRyCisKKyAgICBAc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCisgICAgQHN1cHBvcnQuc2tpcF91bmxlc3NfeGF0dHIKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKG9zLCAnZ2V0ZXVpZCcpIGFuZCBvcy5nZXRldWlkKCkgPT0gMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAncm9vdCBwcml2aWxlZ2VzIHJlcXVpcmVkJykKKyAgICBkZWYgdGVzdF9jb3B5eGF0dHJfc3ltbGlua3Moc2VsZik6CisgICAgICAgICMgT24gTGludXgsIGl0J3Mgb25seSBwb3NzaWJsZSB0byBhY2Nlc3Mgbm9uLXVzZXIgeGF0dHIgZm9yIHN5bWxpbmtzOworICAgICAgICAjIHdoaWNoIGluIHR1cm4gcmVxdWlyZSByb290IHByaXZpbGVnZXMuIFRoaXMgdGVzdCBzaG91bGQgYmUgZXhwYW5kZWQKKyAgICAgICAgIyBhcyBzb29uIGFzIG90aGVyIHBsYXRmb3JtcyBnYWluIHN1cHBvcnQgZm9yIGV4dGVuZGVkIGF0dHJpYnV0ZXMuCisgICAgICAgIHRtcF9kaXIgPSBzZWxmLm1rZHRlbXAoKQorICAgICAgICBzcmMgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2ZvbycpCisgICAgICAgIHNyY19saW5rID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdiYXonKQorICAgICAgICB3cml0ZV9maWxlKHNyYywgJ2ZvbycpCisgICAgICAgIG9zLnN5bWxpbmsoc3JjLCBzcmNfbGluaykKKyAgICAgICAgb3Muc2V0eGF0dHIoc3JjLCAndHJ1c3RlZC5mb28nLCBiJzQyJykKKyAgICAgICAgb3Muc2V0eGF0dHIoc3JjX2xpbmssICd0cnVzdGVkLmZvbycsIGInNDMnLCBmb2xsb3dfc3ltbGlua3M9RmFsc2UpCisgICAgICAgIGRzdCA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnYmFyJykKKyAgICAgICAgZHN0X2xpbmsgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ3F1eCcpCisgICAgICAgIHdyaXRlX2ZpbGUoZHN0LCAnYmFyJykKKyAgICAgICAgb3Muc3ltbGluayhkc3QsIGRzdF9saW5rKQorICAgICAgICBzaHV0aWwuX2NvcHl4YXR0cihzcmNfbGluaywgZHN0X2xpbmssIHN5bWxpbmtzPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MuZ2V0eGF0dHIoZHN0X2xpbmssICd0cnVzdGVkLmZvbycsIGZvbGxvd19zeW1saW5rcz1GYWxzZSksIGInNDMnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBvcy5nZXR4YXR0ciwgZHN0LCAndHJ1c3RlZC5mb28nKQorICAgICAgICBzaHV0aWwuX2NvcHl4YXR0cihzcmNfbGluaywgZHN0LCBzeW1saW5rcz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLmdldHhhdHRyKGRzdCwgJ3RydXN0ZWQuZm9vJyksIGInNDMnKQorCisgICAgQHN1cHBvcnQuc2tpcF91bmxlc3Nfc3ltbGluaworICAgIGRlZiB0ZXN0X2NvcHlfc3ltbGlua3Moc2VsZik6CisgICAgICAgIHRtcF9kaXIgPSBzZWxmLm1rZHRlbXAoKQorICAgICAgICBzcmMgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2ZvbycpCisgICAgICAgIGRzdCA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnYmFyJykKKyAgICAgICAgc3JjX2xpbmsgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2JheicpCisgICAgICAgIHdyaXRlX2ZpbGUoc3JjLCAnZm9vJykKKyAgICAgICAgb3Muc3ltbGluayhzcmMsIHNyY19saW5rKQorICAgICAgICBpZiBoYXNhdHRyKG9zLCAnbGNobW9kJyk6CisgICAgICAgICAgICBvcy5sY2htb2Qoc3JjX2xpbmssIHN0YXQuU19JUldYVSB8IHN0YXQuU19JUldYTykKKyAgICAgICAgIyBkb24ndCBmb2xsb3cKKyAgICAgICAgc2h1dGlsLmNvcHkoc3JjX2xpbmssIGRzdCwgc3ltbGlua3M9RmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5pc2xpbmsoZHN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWFkX2ZpbGUoc3JjKSwgcmVhZF9maWxlKGRzdCkpCisgICAgICAgIG9zLnJlbW92ZShkc3QpCisgICAgICAgICMgZm9sbG93CisgICAgICAgIHNodXRpbC5jb3B5KHNyY19saW5rLCBkc3QsIHN5bWxpbmtzPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzbGluayhkc3QpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnJlYWRsaW5rKGRzdCksIG9zLnJlYWRsaW5rKHNyY19saW5rKSkKKyAgICAgICAgaWYgaGFzYXR0cihvcywgJ2xjaG1vZCcpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5sc3RhdChzcmNfbGluaykuc3RfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MubHN0YXQoZHN0KS5zdF9tb2RlKQorCisgICAgQHN1cHBvcnQuc2tpcF91bmxlc3Nfc3ltbGluaworICAgIGRlZiB0ZXN0X2NvcHkyX3N5bWxpbmtzKHNlbGYpOgorICAgICAgICB0bXBfZGlyID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgc3JjID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdmb28nKQorICAgICAgICBkc3QgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2JhcicpCisgICAgICAgIHNyY19saW5rID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdiYXonKQorICAgICAgICB3cml0ZV9maWxlKHNyYywgJ2ZvbycpCisgICAgICAgIG9zLnN5bWxpbmsoc3JjLCBzcmNfbGluaykKKyAgICAgICAgaWYgaGFzYXR0cihvcywgJ2xjaG1vZCcpOgorICAgICAgICAgICAgb3MubGNobW9kKHNyY19saW5rLCBzdGF0LlNfSVJXWFUgfCBzdGF0LlNfSVJXWE8pCisgICAgICAgIGlmIGhhc2F0dHIob3MsICdsY2hmbGFncycpIGFuZCBoYXNhdHRyKHN0YXQsICdVRl9OT0RVTVAnKToKKyAgICAgICAgICAgIG9zLmxjaGZsYWdzKHNyY19saW5rLCBzdGF0LlVGX05PRFVNUCkKKyAgICAgICAgc3JjX3N0YXQgPSBvcy5zdGF0KHNyYykKKyAgICAgICAgc3JjX2xpbmtfc3RhdCA9IG9zLmxzdGF0KHNyY19saW5rKQorICAgICAgICAjIGZvbGxvdworICAgICAgICBzaHV0aWwuY29weTIoc3JjX2xpbmssIGRzdCwgc3ltbGlua3M9RmFsc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5pc2xpbmsoZHN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWFkX2ZpbGUoc3JjKSwgcmVhZF9maWxlKGRzdCkpCisgICAgICAgIG9zLnJlbW92ZShkc3QpCisgICAgICAgICMgZG9uJ3QgZm9sbG93CisgICAgICAgIHNodXRpbC5jb3B5MihzcmNfbGluaywgZHN0LCBzeW1saW5rcz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2xpbmsoZHN0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5yZWFkbGluayhkc3QpLCBvcy5yZWFkbGluayhzcmNfbGluaykpCisgICAgICAgIGRzdF9zdGF0ID0gb3MubHN0YXQoZHN0KQorICAgICAgICBpZiBvcy51dGltZSBpbiBvcy5zdXBwb3J0c19mb2xsb3dfc3ltbGlua3M6CisgICAgICAgICAgICBmb3IgYXR0ciBpbiAnc3RfYXRpbWUnLCAnc3RfbXRpbWUnOgorICAgICAgICAgICAgICAgICMgVGhlIG1vZGlmaWNhdGlvbiB0aW1lcyBtYXkgYmUgdHJ1bmNhdGVkIGluIHRoZSBuZXcgZmlsZS4KKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChnZXRhdHRyKHNyY19saW5rX3N0YXQsIGF0dHIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIoZHN0X3N0YXQsIGF0dHIpICsgMSkKKyAgICAgICAgaWYgaGFzYXR0cihvcywgJ2xjaG1vZCcpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzcmNfbGlua19zdGF0LnN0X21vZGUsIGRzdF9zdGF0LnN0X21vZGUpCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHNyY19zdGF0LnN0X21vZGUsIGRzdF9zdGF0LnN0X21vZGUpCisgICAgICAgIGlmIGhhc2F0dHIob3MsICdsY2hmbGFncycpIGFuZCBoYXNhdHRyKHNyY19saW5rX3N0YXQsICdzdF9mbGFncycpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzcmNfbGlua19zdGF0LnN0X2ZsYWdzLCBkc3Rfc3RhdC5zdF9mbGFncykKKworICAgIEBzdXBwb3J0LnNraXBfdW5sZXNzX3hhdHRyCisgICAgZGVmIHRlc3RfY29weTJfeGF0dHIoc2VsZik6CisgICAgICAgIHRtcF9kaXIgPSBzZWxmLm1rZHRlbXAoKQorICAgICAgICBzcmMgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2ZvbycpCisgICAgICAgIGRzdCA9IG9zLnBhdGguam9pbih0bXBfZGlyLCAnYmFyJykKKyAgICAgICAgd3JpdGVfZmlsZShzcmMsICdmb28nKQorICAgICAgICBvcy5zZXR4YXR0cihzcmMsICd1c2VyLmZvbycsIGInNDInKQorICAgICAgICBzaHV0aWwuY29weTIoc3JjLCBkc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICAgICAgb3MuZ2V0eGF0dHIoc3JjLCAndXNlci5mb28nKSwKKyAgICAgICAgICAgICAgICBvcy5nZXR4YXR0cihkc3QsICd1c2VyLmZvbycpKQorICAgICAgICBvcy5yZW1vdmUoZHN0KQorCisgICAgQHN1cHBvcnQuc2tpcF91bmxlc3Nfc3ltbGluaworICAgIGRlZiB0ZXN0X2NvcHlmaWxlX3N5bWxpbmtzKHNlbGYpOgorICAgICAgICB0bXBfZGlyID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgc3JjID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdzcmMnKQorICAgICAgICBkc3QgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2RzdCcpCisgICAgICAgIGRzdF9saW5rID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdkc3RfbGluaycpCisgICAgICAgIGxpbmsgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2xpbmsnKQorICAgICAgICB3cml0ZV9maWxlKHNyYywgJ2ZvbycpCisgICAgICAgIG9zLnN5bWxpbmsoc3JjLCBsaW5rKQorICAgICAgICAjIGRvbid0IGZvbGxvdworICAgICAgICBzaHV0aWwuY29weWZpbGUobGluaywgZHN0X2xpbmssIHN5bWxpbmtzPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzbGluayhkc3RfbGluaykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MucmVhZGxpbmsobGluayksIG9zLnJlYWRsaW5rKGRzdF9saW5rKSkKKyAgICAgICAgIyBmb2xsb3cKKyAgICAgICAgc2h1dGlsLmNvcHlmaWxlKGxpbmssIGRzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmlzbGluayhkc3QpKQorCisgICAgZGVmIHRlc3Rfcm10cmVlX3VzZXNfc2FmZV9mZF92ZXJzaW9uX2lmX2F2YWlsYWJsZShzZWxmKToKKyAgICAgICAgX3VzZV9mZF9mdW5jdGlvbnMgPSAoe29zLm9wZW4sIG9zLnN0YXQsIG9zLnVubGluaywgb3Mucm1kaXJ9IDw9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnN1cHBvcnRzX2Rpcl9mZCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MubGlzdGRpciBpbiBvcy5zdXBwb3J0c19mZCBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Muc3RhdCBpbiBvcy5zdXBwb3J0c19mb2xsb3dfc3ltbGlua3MpCisgICAgICAgIGlmIF91c2VfZmRfZnVuY3Rpb25zOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNodXRpbC5fdXNlX2ZkX2Z1bmN0aW9ucykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzaHV0aWwucm10cmVlLmF2b2lkc19zeW1saW5rX2F0dGFja3MpCisgICAgICAgICAgICB0bXBfZGlyID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgICAgIGQgPSBvcy5wYXRoLmpvaW4odG1wX2RpciwgJ2EnKQorICAgICAgICAgICAgb3MubWtkaXIoZCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZWFsX3JtdHJlZSA9IHNodXRpbC5fcm10cmVlX3NhZmVfZmQKKyAgICAgICAgICAgICAgICBjbGFzcyBDYWxsZWQoRXhjZXB0aW9uKTogcGFzcworICAgICAgICAgICAgICAgIGRlZiBfcmFpc2VyKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIENhbGxlZAorICAgICAgICAgICAgICAgIHNodXRpbC5fcm10cmVlX3NhZmVfZmQgPSBfcmFpc2VyCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQ2FsbGVkLCBzaHV0aWwucm10cmVlLCBkKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBzaHV0aWwuX3JtdHJlZV9zYWZlX2ZkID0gcmVhbF9ybXRyZWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2h1dGlsLl91c2VfZmRfZnVuY3Rpb25zKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzaHV0aWwucm10cmVlLmF2b2lkc19zeW1saW5rX2F0dGFja3MpCiAKICAgICBkZWYgdGVzdF9ybXRyZWVfZG9udF9kZWxldGVfZmlsZShzZWxmKToKICAgICAgICAgIyBXaGVuIGNhbGxlZCBvbiBhIGZpbGUgaW5zdGVhZCBvZiBhIGRpcmVjdG9yeSwgZG9uJ3QgZGVsZXRlIGl0LgogICAgICAgICBoYW5kbGUsIHBhdGggPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKLSAgICAgICAgb3MuZmRvcGVuKGhhbmRsZSkuY2xvc2UoKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCBzaHV0aWwucm10cmVlLCBwYXRoKQorICAgICAgICBvcy5jbG9zZShoYW5kbGUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEFEaXJlY3RvcnlFcnJvciwgc2h1dGlsLnJtdHJlZSwgcGF0aCkKICAgICAgICAgb3MucmVtb3ZlKHBhdGgpCiAKLSAgICBkZWYgX3dyaXRlX2RhdGEoc2VsZiwgcGF0aCwgZGF0YSk6Ci0gICAgICAgIGYgPSBvcGVuKHBhdGgsICJ3IikKLSAgICAgICAgZi53cml0ZShkYXRhKQotICAgICAgICBmLmNsb3NlKCkKLQogICAgIGRlZiB0ZXN0X2NvcHl0cmVlX3NpbXBsZShzZWxmKToKLQotICAgICAgICBkZWYgcmVhZF9kYXRhKHBhdGgpOgotICAgICAgICAgICAgZiA9IG9wZW4ocGF0aCkKLSAgICAgICAgICAgIGRhdGEgPSBmLnJlYWQoKQotICAgICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgICAgICByZXR1cm4gZGF0YQotCiAgICAgICAgIHNyY19kaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKICAgICAgICAgZHN0X2RpciA9IG9zLnBhdGguam9pbih0ZW1wZmlsZS5ta2R0ZW1wKCksICdkZXN0aW5hdGlvbicpCi0gICAgICAgIHNlbGYuX3dyaXRlX2RhdGEob3MucGF0aC5qb2luKHNyY19kaXIsICd0ZXN0LnR4dCcpLCAnMTIzJykKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNodXRpbC5ybXRyZWUsIHNyY19kaXIpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzaHV0aWwucm10cmVlLCBvcy5wYXRoLmRpcm5hbWUoZHN0X2RpcikpCisgICAgICAgIHdyaXRlX2ZpbGUoKHNyY19kaXIsICd0ZXN0LnR4dCcpLCAnMTIzJykKICAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNyY19kaXIsICd0ZXN0X2RpcicpKQotICAgICAgICBzZWxmLl93cml0ZV9kYXRhKG9zLnBhdGguam9pbihzcmNfZGlyLCAndGVzdF9kaXInLCAndGVzdC50eHQnKSwgJzQ1NicpCisgICAgICAgIHdyaXRlX2ZpbGUoKHNyY19kaXIsICd0ZXN0X2RpcicsICd0ZXN0LnR4dCcpLCAnNDU2JykKIAotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzaHV0aWwuY29weXRyZWUoc3JjX2RpciwgZHN0X2RpcikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzZmlsZShvcy5wYXRoLmpvaW4oZHN0X2RpciwgJ3Rlc3QudHh0JykpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKGRzdF9kaXIsICd0ZXN0X2RpcicpKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzZmlsZShvcy5wYXRoLmpvaW4oZHN0X2RpciwgJ3Rlc3RfZGlyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3QudHh0JykpKQotICAgICAgICAgICAgYWN0dWFsID0gcmVhZF9kYXRhKG9zLnBhdGguam9pbihkc3RfZGlyLCAndGVzdC50eHQnKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWN0dWFsLCAnMTIzJykKLSAgICAgICAgICAgIGFjdHVhbCA9IHJlYWRfZGF0YShvcy5wYXRoLmpvaW4oZHN0X2RpciwgJ3Rlc3RfZGlyJywgJ3Rlc3QudHh0JykpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbCwgJzQ1NicpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBmb3IgcGF0aCBpbiAoCi0gICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihzcmNfZGlyLCAndGVzdC50eHQnKSwKLSAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKGRzdF9kaXIsICd0ZXN0LnR4dCcpLAotICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oc3JjX2RpciwgJ3Rlc3RfZGlyJywgJ3Rlc3QudHh0JyksCi0gICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihkc3RfZGlyLCAndGVzdF9kaXInLCAndGVzdC50eHQnKSwKLSAgICAgICAgICAgICAgICApOgotICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHBhdGgpOgotICAgICAgICAgICAgICAgICAgICBvcy5yZW1vdmUocGF0aCkKLSAgICAgICAgICAgIGZvciBwYXRoIGluIChzcmNfZGlyLAotICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoZHN0X2RpcikKLSAgICAgICAgICAgICAgICApOgotICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHBhdGgpOgotICAgICAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHBhdGgpCisgICAgICAgIHNodXRpbC5jb3B5dHJlZShzcmNfZGlyLCBkc3RfZGlyKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2ZpbGUob3MucGF0aC5qb2luKGRzdF9kaXIsICd0ZXN0LnR4dCcpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKGRzdF9kaXIsICd0ZXN0X2RpcicpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihkc3RfZGlyLCAndGVzdF9kaXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0LnR4dCcpKSkKKyAgICAgICAgYWN0dWFsID0gcmVhZF9maWxlKChkc3RfZGlyLCAndGVzdC50eHQnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhY3R1YWwsICcxMjMnKQorICAgICAgICBhY3R1YWwgPSByZWFkX2ZpbGUoKGRzdF9kaXIsICd0ZXN0X2RpcicsICd0ZXN0LnR4dCcpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbCwgJzQ1NicpCisKKyAgICBAc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCisgICAgZGVmIHRlc3RfY29weXRyZWVfc3ltbGlua3Moc2VsZik6CisgICAgICAgIHRtcF9kaXIgPSBzZWxmLm1rZHRlbXAoKQorICAgICAgICBzcmNfZGlyID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdzcmMnKQorICAgICAgICBkc3RfZGlyID0gb3MucGF0aC5qb2luKHRtcF9kaXIsICdkc3QnKQorICAgICAgICBzdWJfZGlyID0gb3MucGF0aC5qb2luKHNyY19kaXIsICdzdWInKQorICAgICAgICBvcy5ta2RpcihzcmNfZGlyKQorICAgICAgICBvcy5ta2RpcihzdWJfZGlyKQorICAgICAgICB3cml0ZV9maWxlKChzcmNfZGlyLCAnZmlsZS50eHQnKSwgJ2ZvbycpCisgICAgICAgIHNyY19saW5rID0gb3MucGF0aC5qb2luKHN1Yl9kaXIsICdsaW5rJykKKyAgICAgICAgZHN0X2xpbmsgPSBvcy5wYXRoLmpvaW4oZHN0X2RpciwgJ3N1Yi9saW5rJykKKyAgICAgICAgb3Muc3ltbGluayhvcy5wYXRoLmpvaW4oc3JjX2RpciwgJ2ZpbGUudHh0JyksCisgICAgICAgICAgICAgICAgICAgc3JjX2xpbmspCisgICAgICAgIGlmIGhhc2F0dHIob3MsICdsY2htb2QnKToKKyAgICAgICAgICAgIG9zLmxjaG1vZChzcmNfbGluaywgc3RhdC5TX0lSV1hVIHwgc3RhdC5TX0lSV1hPKQorICAgICAgICBpZiBoYXNhdHRyKG9zLCAnbGNoZmxhZ3MnKSBhbmQgaGFzYXR0cihzdGF0LCAnVUZfTk9EVU1QJyk6CisgICAgICAgICAgICBvcy5sY2hmbGFncyhzcmNfbGluaywgc3RhdC5VRl9OT0RVTVApCisgICAgICAgIHNyY19zdGF0ID0gb3MubHN0YXQoc3JjX2xpbmspCisgICAgICAgIHNodXRpbC5jb3B5dHJlZShzcmNfZGlyLCBkc3RfZGlyLCBzeW1saW5rcz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2xpbmsob3MucGF0aC5qb2luKGRzdF9kaXIsICdzdWInLCAnbGluaycpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5yZWFkbGluayhvcy5wYXRoLmpvaW4oZHN0X2RpciwgJ3N1YicsICdsaW5rJykpLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihzcmNfZGlyLCAnZmlsZS50eHQnKSkKKyAgICAgICAgZHN0X3N0YXQgPSBvcy5sc3RhdChkc3RfbGluaykKKyAgICAgICAgaWYgaGFzYXR0cihvcywgJ2xjaG1vZCcpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkc3Rfc3RhdC5zdF9tb2RlLCBzcmNfc3RhdC5zdF9tb2RlKQorICAgICAgICBpZiBoYXNhdHRyKG9zLCAnbGNoZmxhZ3MnKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHN0X3N0YXQuc3RfZmxhZ3MsIHNyY19zdGF0LnN0X2ZsYWdzKQogCiAgICAgZGVmIHRlc3RfY29weXRyZWVfd2l0aF9leGNsdWRlKHNlbGYpOgotCi0gICAgICAgIGRlZiByZWFkX2RhdGEocGF0aCk6Ci0gICAgICAgICAgICBmID0gb3BlbihwYXRoKQotICAgICAgICAgICAgZGF0YSA9IGYucmVhZCgpCi0gICAgICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgICAgIHJldHVybiBkYXRhCi0KICAgICAgICAgIyBjcmVhdGluZyBkYXRhCiAgICAgICAgIGpvaW4gPSBvcy5wYXRoLmpvaW4KICAgICAgICAgZXhpc3RzID0gb3MucGF0aC5leGlzdHMKICAgICAgICAgc3JjX2RpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBkc3RfZGlyID0gam9pbih0ZW1wZmlsZS5ta2R0ZW1wKCksICdkZXN0aW5hdGlvbicpCi0gICAgICAgICAgICBzZWxmLl93cml0ZV9kYXRhKGpvaW4oc3JjX2RpciwgJ3Rlc3QudHh0JyksICcxMjMnKQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfZGF0YShqb2luKHNyY19kaXIsICd0ZXN0LnRtcCcpLCAnMTIzJykKKyAgICAgICAgICAgIHdyaXRlX2ZpbGUoKHNyY19kaXIsICd0ZXN0LnR4dCcpLCAnMTIzJykKKyAgICAgICAgICAgIHdyaXRlX2ZpbGUoKHNyY19kaXIsICd0ZXN0LnRtcCcpLCAnMTIzJykKICAgICAgICAgICAgIG9zLm1rZGlyKGpvaW4oc3JjX2RpciwgJ3Rlc3RfZGlyJykpCi0gICAgICAgICAgICBzZWxmLl93cml0ZV9kYXRhKGpvaW4oc3JjX2RpciwgJ3Rlc3RfZGlyJywgJ3Rlc3QudHh0JyksICc0NTYnKQorICAgICAgICAgICAgd3JpdGVfZmlsZSgoc3JjX2RpciwgJ3Rlc3RfZGlyJywgJ3Rlc3QudHh0JyksICc0NTYnKQogICAgICAgICAgICAgb3MubWtkaXIoam9pbihzcmNfZGlyLCAndGVzdF9kaXIyJykpCi0gICAgICAgICAgICBzZWxmLl93cml0ZV9kYXRhKGpvaW4oc3JjX2RpciwgJ3Rlc3RfZGlyMicsICd0ZXN0LnR4dCcpLCAnNDU2JykKKyAgICAgICAgICAgIHdyaXRlX2ZpbGUoKHNyY19kaXIsICd0ZXN0X2RpcjInLCAndGVzdC50eHQnKSwgJzQ1NicpCiAgICAgICAgICAgICBvcy5ta2Rpcihqb2luKHNyY19kaXIsICd0ZXN0X2RpcjInLCAnc3ViZGlyJykpCiAgICAgICAgICAgICBvcy5ta2Rpcihqb2luKHNyY19kaXIsICd0ZXN0X2RpcjInLCAnc3ViZGlyMicpKQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfZGF0YShqb2luKHNyY19kaXIsICd0ZXN0X2RpcjInLCAnc3ViZGlyJywgJ3Rlc3QudHh0JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICc0NTYnKQotICAgICAgICAgICAgc2VsZi5fd3JpdGVfZGF0YShqb2luKHNyY19kaXIsICd0ZXN0X2RpcjInLCAnc3ViZGlyMicsICd0ZXN0LnB5JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICc0NTYnKQotCisgICAgICAgICAgICB3cml0ZV9maWxlKChzcmNfZGlyLCAndGVzdF9kaXIyJywgJ3N1YmRpcicsICd0ZXN0LnR4dCcpLCAnNDU2JykKKyAgICAgICAgICAgIHdyaXRlX2ZpbGUoKHNyY19kaXIsICd0ZXN0X2RpcjInLCAnc3ViZGlyMicsICd0ZXN0LnB5JyksICc0NTYnKQogCiAgICAgICAgICAgICAjIHRlc3RpbmcgZ2xvYi1saWtlIHBhdHRlcm5zCiAgICAgICAgICAgICB0cnk6CkBAIC0yNDQsMjEgKzYyNSwxOSBAQAogICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5dHJlZShzcmNfZGlyLCBkc3RfZGlyLCBpZ25vcmU9cGF0dGVybnMpCiAgICAgICAgICAgICAgICAgIyBjaGVja2luZyB0aGUgcmVzdWx0OiBzb21lIGVsZW1lbnRzIHNob3VsZCBub3QgYmUgY29waWVkCiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4aXN0cyhqb2luKGRzdF9kaXIsICd0ZXN0LnR4dCcpKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGV4aXN0cyhqb2luKGRzdF9kaXIsICd0ZXN0LnRtcCcpKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGV4aXN0cyhqb2luKGRzdF9kaXIsICd0ZXN0X2RpcjInKSkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShleGlzdHMoam9pbihkc3RfZGlyLCAndGVzdC50bXAnKSkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShleGlzdHMoam9pbihkc3RfZGlyLCAndGVzdF9kaXIyJykpKQogICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhkc3RfZGlyKToKLSAgICAgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkc3RfZGlyKQorICAgICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZHN0X2RpcikKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBwYXR0ZXJucyA9IHNodXRpbC5pZ25vcmVfcGF0dGVybnMoJyoudG1wJywgJ3N1YmRpcionKQogICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5dHJlZShzcmNfZGlyLCBkc3RfZGlyLCBpZ25vcmU9cGF0dGVybnMpCiAgICAgICAgICAgICAgICAgIyBjaGVja2luZyB0aGUgcmVzdWx0OiBzb21lIGVsZW1lbnRzIHNob3VsZCBub3QgYmUgY29waWVkCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCBleGlzdHMoam9pbihkc3RfZGlyLCAndGVzdC50bXAnKSkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCBleGlzdHMoam9pbihkc3RfZGlyLCAndGVzdF9kaXIyJywgJ3N1YmRpcjInKSkpCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCBleGlzdHMoam9pbihkc3RfZGlyLCAndGVzdF9kaXIyJywgJ3N1YmRpcicpKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGV4aXN0cyhqb2luKGRzdF9kaXIsICd0ZXN0LnRtcCcpKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGV4aXN0cyhqb2luKGRzdF9kaXIsICd0ZXN0X2RpcjInLCAnc3ViZGlyMicpKSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGV4aXN0cyhqb2luKGRzdF9kaXIsICd0ZXN0X2RpcjInLCAnc3ViZGlyJykpKQogICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhkc3RfZGlyKToKLSAgICAgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkc3RfZGlyKQorICAgICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZHN0X2RpcikKIAogICAgICAgICAgICAgIyB0ZXN0aW5nIGNhbGxhYmxlLXN0eWxlCiAgICAgICAgICAgICB0cnk6CkBAIC0yNzcsMTMgKzY1NiwxMiBAQAogICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5dHJlZShzcmNfZGlyLCBkc3RfZGlyLCBpZ25vcmU9X2ZpbHRlcikKIAogICAgICAgICAgICAgICAgICMgY2hlY2tpbmcgdGhlIHJlc3VsdDogc29tZSBlbGVtZW50cyBzaG91bGQgbm90IGJlIGNvcGllZAotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3QgZXhpc3RzKGpvaW4oZHN0X2RpciwgJ3Rlc3RfZGlyMicsICdzdWJkaXIyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGVzdC5weScpKSkKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGV4aXN0cyhqb2luKGRzdF9kaXIsICd0ZXN0X2RpcjInLCAnc3ViZGlyJykpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXhpc3RzKGpvaW4oZHN0X2RpciwgJ3Rlc3RfZGlyMicsICdzdWJkaXIyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0LnB5JykpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXhpc3RzKGpvaW4oZHN0X2RpciwgJ3Rlc3RfZGlyMicsICdzdWJkaXInKSkpCiAKICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoZHN0X2Rpcik6Ci0gICAgICAgICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZHN0X2RpcikKKyAgICAgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRzdF9kaXIpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHNyY19kaXIpCiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKG9zLnBhdGguZGlybmFtZShkc3RfZGlyKSkKQEAgLTMwOCwzNSArNjg2LDYgQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoVEVTVEZOLCBpZ25vcmVfZXJyb3JzPVRydWUpCiAKLSAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKG9zLCAnY2hmbGFncycpIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2F0dHIoZXJybm8sICdFT1BOT1RTVVBQJykgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgaGFzYXR0cihlcnJubywgJ0VOT1RTVVAnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAicmVxdWlyZXMgb3MuY2hmbGFncywgRU9QTk9UU1VQUCAmIEVOT1RTVVAiKQotICAgIGRlZiB0ZXN0X2NvcHlzdGF0X2hhbmRsZXNfaGFybWxlc3NfY2hmbGFnc19lcnJvcnMoc2VsZik6Ci0gICAgICAgIHRtcGRpciA9IHNlbGYubWtkdGVtcCgpCi0gICAgICAgIGZpbGUxID0gb3MucGF0aC5qb2luKHRtcGRpciwgJ2ZpbGUxJykKLSAgICAgICAgZmlsZTIgPSBvcy5wYXRoLmpvaW4odG1wZGlyLCAnZmlsZTInKQotICAgICAgICBzZWxmLndyaXRlX2ZpbGUoZmlsZTEsICd4eHgnKQotICAgICAgICBzZWxmLndyaXRlX2ZpbGUoZmlsZTIsICd4eHgnKQotCi0gICAgICAgIGRlZiBtYWtlX2NoZmxhZ3NfcmFpc2VyKGVycik6Ci0gICAgICAgICAgICBleCA9IE9TRXJyb3IoKQotCi0gICAgICAgICAgICBkZWYgX2NoZmxhZ3NfcmFpc2VyKHBhdGgsIGZsYWdzKToKLSAgICAgICAgICAgICAgICBleC5lcnJubyA9IGVycgotICAgICAgICAgICAgICAgIHJhaXNlIGV4Ci0gICAgICAgICAgICByZXR1cm4gX2NoZmxhZ3NfcmFpc2VyCi0gICAgICAgIG9sZF9jaGZsYWdzID0gb3MuY2hmbGFncwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmb3IgZXJyIGluIGVycm5vLkVPUE5PVFNVUFAsIGVycm5vLkVOT1RTVVA6Ci0gICAgICAgICAgICAgICAgb3MuY2hmbGFncyA9IG1ha2VfY2hmbGFnc19yYWlzZXIoZXJyKQotICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5c3RhdChmaWxlMSwgZmlsZTIpCi0gICAgICAgICAgICAjIGFzc2VydCBvdGhlcnMgZXJyb3JzIGJyZWFrIGl0Ci0gICAgICAgICAgICBvcy5jaGZsYWdzID0gbWFrZV9jaGZsYWdzX3JhaXNlcihlcnJuby5FT1BOT1RTVVBQICsgZXJybm8uRU5PVFNVUCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHNodXRpbC5jb3B5c3RhdCwgZmlsZTEsIGZpbGUyKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgb3MuY2hmbGFncyA9IG9sZF9jaGZsYWdzCi0KICAgICBAc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCiAgICAgZGVmIHRlc3RfZG9udF9jb3B5X2ZpbGVfb250b19zeW1saW5rX3RvX2l0c2VsZihzZWxmKToKICAgICAgICAgIyBidWcgODUxMTIzLgpAQCAtMzY3LDYgKzcxNiw3IEBACiAgICAgICAgICAgICBvcy5ta2RpcihzcmMpCiAgICAgICAgICAgICBvcy5zeW1saW5rKHNyYywgZHN0KQogICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2h1dGlsLnJtdHJlZSwgZHN0KQorICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShkc3QsIGlnbm9yZV9lcnJvcnM9VHJ1ZSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoVEVTVEZOLCBpZ25vcmVfZXJyb3JzPVRydWUpCiAKQEAgLTQwNyw5ICs3NTcsOSBAQAogCiAgICAgICAgIHNyY19kaXIgPSBzZWxmLm1rZHRlbXAoKQogICAgICAgICBkc3RfZGlyID0gb3MucGF0aC5qb2luKHNlbGYubWtkdGVtcCgpLCAnZGVzdGluYXRpb24nKQotICAgICAgICBzZWxmLl93cml0ZV9kYXRhKG9zLnBhdGguam9pbihzcmNfZGlyLCAndGVzdC50eHQnKSwgJzEyMycpCisgICAgICAgIHdyaXRlX2ZpbGUoKHNyY19kaXIsICd0ZXN0LnR4dCcpLCAnMTIzJykKICAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKHNyY19kaXIsICd0ZXN0X2RpcicpKQotICAgICAgICBzZWxmLl93cml0ZV9kYXRhKG9zLnBhdGguam9pbihzcmNfZGlyLCAndGVzdF9kaXInLCAndGVzdC50eHQnKSwgJzQ1NicpCisgICAgICAgIHdyaXRlX2ZpbGUoKHNyY19kaXIsICd0ZXN0X2RpcicsICd0ZXN0LnR4dCcpLCAnNDU2JykKIAogICAgICAgICBjb3BpZWQgPSBbXQogICAgICAgICBkZWYgX2NvcHkoc3JjLCBkc3QpOgpAQCAtNDI2LDcgKzc3Niw3IEBACiAgICAgICAgIGRzdF9kaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5ta2R0ZW1wKCksICdkZXN0aW5hdGlvbicpCiAgICAgICAgIG9zLnN5bWxpbmsoJ0lET05URVhJU1QnLCBvcy5wYXRoLmpvaW4oc3JjX2RpciwgJ3Rlc3QudHh0JykpCiAgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihzcmNfZGlyLCAndGVzdF9kaXInKSkKLSAgICAgICAgc2VsZi5fd3JpdGVfZGF0YShvcy5wYXRoLmpvaW4oc3JjX2RpciwgJ3Rlc3RfZGlyJywgJ3Rlc3QudHh0JyksICc0NTYnKQorICAgICAgICB3cml0ZV9maWxlKChzcmNfZGlyLCAndGVzdF9kaXInLCAndGVzdC50eHQnKSwgJzQ1NicpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEVycm9yLCBzaHV0aWwuY29weXRyZWUsIHNyY19kaXIsIGRzdF9kaXIpCiAKICAgICAgICAgIyBhIGRhbmdsaW5nIHN5bWxpbmsgaXMgaWdub3JlZCB3aXRoIHRoZSBwcm9wZXIgZmxhZwpAQCAtNDQyLDcgKzc5Miw3IEBACiAgICAgZGVmIF9jb3B5X2ZpbGUoc2VsZiwgbWV0aG9kKToKICAgICAgICAgZm5hbWUgPSAndGVzdC50eHQnCiAgICAgICAgIHRtcGRpciA9IHNlbGYubWtkdGVtcCgpCi0gICAgICAgIHNlbGYud3JpdGVfZmlsZShbdG1wZGlyLCBmbmFtZV0pCisgICAgICAgIHdyaXRlX2ZpbGUoKHRtcGRpciwgZm5hbWUpLCAneHh4JykKICAgICAgICAgZmlsZTEgPSBvcy5wYXRoLmpvaW4odG1wZGlyLCBmbmFtZSkKICAgICAgICAgdG1wZGlyMiA9IHNlbGYubWtkdGVtcCgpCiAgICAgICAgIG1ldGhvZChmaWxlMSwgdG1wZGlyMikKQEAgLTQ3NCwxNCArODI0LDE0IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldGF0dHIoZmlsZTFfc3RhdCwgJ3N0X2ZsYWdzJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIoZmlsZTJfc3RhdCwgJ3N0X2ZsYWdzJykpCiAKLSAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh6bGliLCAicmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF9tYWtlX3RhcmJhbGwoc2VsZik6CiAgICAgICAgICMgY3JlYXRpbmcgc29tZXRoaW5nIHRvIHRhcgogICAgICAgICB0bXBkaXIgPSBzZWxmLm1rZHRlbXAoKQotICAgICAgICBzZWxmLndyaXRlX2ZpbGUoW3RtcGRpciwgJ2ZpbGUxJ10sICd4eHgnKQotICAgICAgICBzZWxmLndyaXRlX2ZpbGUoW3RtcGRpciwgJ2ZpbGUyJ10sICd4eHgnKQorICAgICAgICB3cml0ZV9maWxlKCh0bXBkaXIsICdmaWxlMScpLCAneHh4JykKKyAgICAgICAgd3JpdGVfZmlsZSgodG1wZGlyLCAnZmlsZTInKSwgJ3h4eCcpCiAgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbih0bXBkaXIsICdzdWInKSkKLSAgICAgICAgc2VsZi53cml0ZV9maWxlKFt0bXBkaXIsICdzdWInLCAnZmlsZTMnXSwgJ3h4eCcpCisgICAgICAgIHdyaXRlX2ZpbGUoKHRtcGRpciwgJ3N1YicsICdmaWxlMycpLCAneHh4JykKIAogICAgICAgICB0bXBkaXIyID0gc2VsZi5ta2R0ZW1wKCkKICAgICAgICAgIyBmb3JjZSBzaHV0aWwgdG8gY3JlYXRlIHRoZSBkaXJlY3RvcnkKQEAgLTUyOCwxNiArODc4LDE2IEBACiAgICAgICAgIHRtcGRpciA9IHNlbGYubWtkdGVtcCgpCiAgICAgICAgIGRpc3QgPSBvcy5wYXRoLmpvaW4odG1wZGlyLCAnZGlzdCcpCiAgICAgICAgIG9zLm1rZGlyKGRpc3QpCi0gICAgICAgIHNlbGYud3JpdGVfZmlsZShbZGlzdCwgJ2ZpbGUxJ10sICd4eHgnKQotICAgICAgICBzZWxmLndyaXRlX2ZpbGUoW2Rpc3QsICdmaWxlMiddLCAneHh4JykKKyAgICAgICAgd3JpdGVfZmlsZSgoZGlzdCwgJ2ZpbGUxJyksICd4eHgnKQorICAgICAgICB3cml0ZV9maWxlKChkaXN0LCAnZmlsZTInKSwgJ3h4eCcpCiAgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihkaXN0LCAnc3ViJykpCi0gICAgICAgIHNlbGYud3JpdGVfZmlsZShbZGlzdCwgJ3N1YicsICdmaWxlMyddLCAneHh4JykKKyAgICAgICAgd3JpdGVfZmlsZSgoZGlzdCwgJ3N1YicsICdmaWxlMycpLCAneHh4JykKICAgICAgICAgb3MubWtkaXIob3MucGF0aC5qb2luKGRpc3QsICdzdWIyJykpCiAgICAgICAgIHRtcGRpcjIgPSBzZWxmLm1rZHRlbXAoKQogICAgICAgICBiYXNlX25hbWUgPSBvcy5wYXRoLmpvaW4odG1wZGlyMiwgJ2FyY2hpdmUnKQogICAgICAgICByZXR1cm4gdG1wZGlyLCB0bXBkaXIyLCBiYXNlX25hbWUKIAotICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHpsaWIsICJSZXF1aXJlcyB6bGliIikKKyAgICBAcmVxdWlyZXNfemxpYgogICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGZpbmRfZXhlY3V0YWJsZSgndGFyJykgYW5kIGZpbmRfZXhlY3V0YWJsZSgnZ3ppcCcpLAogICAgICAgICAgICAgICAgICAgICAgICAgICdOZWVkIHRoZSB0YXIgY29tbWFuZCB0byBydW4nKQogICAgIGRlZiB0ZXN0X3RhcmZpbGVfdnNfdGFyKHNlbGYpOgpAQCAtNTkyLDEzICs5NDIsMTMgQEAKICAgICAgICAgdGFyYmFsbCA9IGJhc2VfbmFtZSArICcudGFyJwogICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHModGFyYmFsbCkpCiAKLSAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh6bGliLCAiUmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhaSVBfU1VQUE9SVCwgJ05lZWQgemlwIHN1cHBvcnQgdG8gcnVuJykKICAgICBkZWYgdGVzdF9tYWtlX3ppcGZpbGUoc2VsZik6CiAgICAgICAgICMgY3JlYXRpbmcgc29tZXRoaW5nIHRvIHRhcgogICAgICAgICB0bXBkaXIgPSBzZWxmLm1rZHRlbXAoKQotICAgICAgICBzZWxmLndyaXRlX2ZpbGUoW3RtcGRpciwgJ2ZpbGUxJ10sICd4eHgnKQotICAgICAgICBzZWxmLndyaXRlX2ZpbGUoW3RtcGRpciwgJ2ZpbGUyJ10sICd4eHgnKQorICAgICAgICB3cml0ZV9maWxlKCh0bXBkaXIsICdmaWxlMScpLCAneHh4JykKKyAgICAgICAgd3JpdGVfZmlsZSgodG1wZGlyLCAnZmlsZTInKSwgJ3h4eCcpCiAKICAgICAgICAgdG1wZGlyMiA9IHNlbGYubWtkdGVtcCgpCiAgICAgICAgICMgZm9yY2Ugc2h1dGlsIHRvIGNyZWF0ZSB0aGUgZGlyZWN0b3J5CkBAIC02MTYsNyArOTY2LDcgQEAKICAgICAgICAgYmFzZV9uYW1lID0gb3MucGF0aC5qb2luKHRtcGRpciwgJ2FyY2hpdmUnKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtYWtlX2FyY2hpdmUsIGJhc2VfbmFtZSwgJ3h4eCcpCiAKLSAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh6bGliLCAiUmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF9tYWtlX2FyY2hpdmVfb3duZXJfZ3JvdXAoc2VsZik6CiAgICAgICAgICMgdGVzdGluZyBtYWtlX2FyY2hpdmUgd2l0aCBvd25lciBhbmQgZ3JvdXAsIHdpdGggdmFyaW91cyBjb21iaW5hdGlvbnMKICAgICAgICAgIyB0aGlzIHdvcmtzIGV2ZW4gaWYgdGhlcmUncyBub3QgZ2lkL3VpZCBzdXBwb3J0CkBAIC02NDQsNyArOTk0LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguZXhpc3RzKHJlcykpCiAKIAotICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHpsaWIsICJSZXF1aXJlcyB6bGliIikKKyAgICBAcmVxdWlyZXNfemxpYgogICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKFVJRF9HSURfU1VQUE9SVCwgIlJlcXVpcmVzIGdycCBhbmQgcHdkIHN1cHBvcnQiKQogICAgIGRlZiB0ZXN0X3RhcmZpbGVfcm9vdF9vd25lcihzZWxmKToKICAgICAgICAgdG1wZGlyLCB0bXBkaXIyLCBiYXNlX25hbWUgPSAgc2VsZi5fY3JlYXRlX2ZpbGVzKCkKQEAgLTcxMyw3ICsxMDYzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgZGlmZi5hcHBlbmQoZmlsZV8pCiAgICAgICAgIHJldHVybiBkaWZmCiAKLSAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh6bGliLCAiUmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF91bnBhY2tfYXJjaGl2ZShzZWxmKToKICAgICAgICAgZm9ybWF0cyA9IFsndGFyJywgJ2d6dGFyJywgJ3ppcCddCiAgICAgICAgIGlmIEJaMl9TVVBQT1JURUQ6CkBAIC03NjQsNiArMTExNCwxNjIgQEAKICAgICAgICAgdW5yZWdpc3Rlcl91bnBhY2tfZm9ybWF0KCdCb28yJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfdW5wYWNrX2Zvcm1hdHMoKSwgZm9ybWF0cykKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2h1dGlsLCAnZGlza191c2FnZScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNrX3VzYWdlIG5vdCBhdmFpbGFibGUgb24gdGhpcyBwbGF0Zm9ybSIpCisgICAgZGVmIHRlc3RfZGlza191c2FnZShzZWxmKToKKyAgICAgICAgdXNhZ2UgPSBzaHV0aWwuZGlza191c2FnZShvcy5nZXRjd2QoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKHVzYWdlLnRvdGFsLCAwKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIodXNhZ2UudXNlZCwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwodXNhZ2UuZnJlZSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwodXNhZ2UudG90YWwsIHVzYWdlLnVzZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcih1c2FnZS50b3RhbCwgdXNhZ2UuZnJlZSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKFVJRF9HSURfU1VQUE9SVCwgIlJlcXVpcmVzIGdycCBhbmQgcHdkIHN1cHBvcnQiKQorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdjaG93bicpLCAncmVxdWlyZXMgb3MuY2hvd24nKQorICAgIGRlZiB0ZXN0X2Nob3duKHNlbGYpOgorCisgICAgICAgICMgY2xlYW5lZC11cCBhdXRvbWF0aWNhbGx5IGJ5IFRlc3RTaHV0aWwudGVhckRvd24gbWV0aG9kCisgICAgICAgIGRpcm5hbWUgPSBzZWxmLm1rZHRlbXAoKQorICAgICAgICBmaWxlbmFtZSA9IHRlbXBmaWxlLm1rdGVtcChkaXI9ZGlybmFtZSkKKyAgICAgICAgd3JpdGVfZmlsZShmaWxlbmFtZSwgJ3Rlc3RpbmcgY2hvd24gZnVuY3Rpb24nKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBzaHV0aWwuY2hvd24oZmlsZW5hbWUpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhMb29rdXBFcnJvcik6CisgICAgICAgICAgICBzaHV0aWwuY2hvd24oZmlsZW5hbWUsIHVzZXI9J25vbi1leGlzaW5nIHVzZXJuYW1lJykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKExvb2t1cEVycm9yKToKKyAgICAgICAgICAgIHNodXRpbC5jaG93bihmaWxlbmFtZSwgZ3JvdXA9J25vbi1leGlzaW5nIGdyb3VwbmFtZScpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgc2h1dGlsLmNob3duKGZpbGVuYW1lLCBiJ3NwYW0nKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIHNodXRpbC5jaG93bihmaWxlbmFtZSwgMy4xNCkKKworICAgICAgICB1aWQgPSBvcy5nZXR1aWQoKQorICAgICAgICBnaWQgPSBvcy5nZXRnaWQoKQorCisgICAgICAgIGRlZiBjaGVja19jaG93bihwYXRoLCB1aWQ9Tm9uZSwgZ2lkPU5vbmUpOgorICAgICAgICAgICAgcyA9IG9zLnN0YXQoZmlsZW5hbWUpCisgICAgICAgICAgICBpZiB1aWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1aWQsIHMuc3RfdWlkKQorICAgICAgICAgICAgaWYgZ2lkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2lkLCBzLnN0X2dpZCkKKworICAgICAgICBzaHV0aWwuY2hvd24oZmlsZW5hbWUsIHVpZCwgZ2lkKQorICAgICAgICBjaGVja19jaG93bihmaWxlbmFtZSwgdWlkLCBnaWQpCisgICAgICAgIHNodXRpbC5jaG93bihmaWxlbmFtZSwgdWlkKQorICAgICAgICBjaGVja19jaG93bihmaWxlbmFtZSwgdWlkKQorICAgICAgICBzaHV0aWwuY2hvd24oZmlsZW5hbWUsIHVzZXI9dWlkKQorICAgICAgICBjaGVja19jaG93bihmaWxlbmFtZSwgdWlkKQorICAgICAgICBzaHV0aWwuY2hvd24oZmlsZW5hbWUsIGdyb3VwPWdpZCkKKyAgICAgICAgY2hlY2tfY2hvd24oZmlsZW5hbWUsIGdpZD1naWQpCisKKyAgICAgICAgc2h1dGlsLmNob3duKGRpcm5hbWUsIHVpZCwgZ2lkKQorICAgICAgICBjaGVja19jaG93bihkaXJuYW1lLCB1aWQsIGdpZCkKKyAgICAgICAgc2h1dGlsLmNob3duKGRpcm5hbWUsIHVpZCkKKyAgICAgICAgY2hlY2tfY2hvd24oZGlybmFtZSwgdWlkKQorICAgICAgICBzaHV0aWwuY2hvd24oZGlybmFtZSwgdXNlcj11aWQpCisgICAgICAgIGNoZWNrX2Nob3duKGRpcm5hbWUsIHVpZCkKKyAgICAgICAgc2h1dGlsLmNob3duKGRpcm5hbWUsIGdyb3VwPWdpZCkKKyAgICAgICAgY2hlY2tfY2hvd24oZGlybmFtZSwgZ2lkPWdpZCkKKworICAgICAgICB1c2VyID0gcHdkLmdldHB3dWlkKHVpZClbMF0KKyAgICAgICAgZ3JvdXAgPSBncnAuZ2V0Z3JnaWQoZ2lkKVswXQorICAgICAgICBzaHV0aWwuY2hvd24oZmlsZW5hbWUsIHVzZXIsIGdyb3VwKQorICAgICAgICBjaGVja19jaG93bihmaWxlbmFtZSwgdWlkLCBnaWQpCisgICAgICAgIHNodXRpbC5jaG93bihkaXJuYW1lLCB1c2VyLCBncm91cCkKKyAgICAgICAgY2hlY2tfY2hvd24oZGlybmFtZSwgdWlkLCBnaWQpCisKKyAgICBkZWYgdGVzdF9jb3B5X3JldHVybl92YWx1ZShzZWxmKToKKyAgICAgICAgIyBjb3B5IGFuZCBjb3B5MiBib3RoIHJldHVybiB0aGVpciBkZXN0aW5hdGlvbiBwYXRoLgorICAgICAgICBmb3IgZm4gaW4gKHNodXRpbC5jb3B5LCBzaHV0aWwuY29weTIpOgorICAgICAgICAgICAgc3JjX2RpciA9IHNlbGYubWtkdGVtcCgpCisgICAgICAgICAgICBkc3RfZGlyID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgICAgIHNyYyA9IG9zLnBhdGguam9pbihzcmNfZGlyLCAnZm9vJykKKyAgICAgICAgICAgIHdyaXRlX2ZpbGUoc3JjLCAnZm9vJykKKyAgICAgICAgICAgIHJ2ID0gZm4oc3JjLCBkc3RfZGlyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydiwgb3MucGF0aC5qb2luKGRzdF9kaXIsICdmb28nKSkKKyAgICAgICAgICAgIHJ2ID0gZm4oc3JjLCBvcy5wYXRoLmpvaW4oZHN0X2RpciwgJ2JhcicpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydiwgb3MucGF0aC5qb2luKGRzdF9kaXIsICdiYXInKSkKKworICAgIGRlZiB0ZXN0X2NvcHlmaWxlX3JldHVybl92YWx1ZShzZWxmKToKKyAgICAgICAgIyBjb3B5dHJlZSByZXR1cm5zIGl0cyBkZXN0aW5hdGlvbiBwYXRoLgorICAgICAgICBzcmNfZGlyID0gc2VsZi5ta2R0ZW1wKCkKKyAgICAgICAgZHN0X2RpciA9IHNlbGYubWtkdGVtcCgpCisgICAgICAgIGRzdF9maWxlID0gb3MucGF0aC5qb2luKGRzdF9kaXIsICdiYXInKQorICAgICAgICBzcmNfZmlsZSA9IG9zLnBhdGguam9pbihzcmNfZGlyLCAnZm9vJykKKyAgICAgICAgd3JpdGVfZmlsZShzcmNfZmlsZSwgJ2ZvbycpCisgICAgICAgIHJ2ID0gc2h1dGlsLmNvcHlmaWxlKHNyY19maWxlLCBkc3RfZmlsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguZXhpc3RzKHJ2KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWFkX2ZpbGUoc3JjX2ZpbGUpLCByZWFkX2ZpbGUoZHN0X2ZpbGUpKQorCisgICAgZGVmIHRlc3RfY29weXRyZWVfcmV0dXJuX3ZhbHVlKHNlbGYpOgorICAgICAgICAjIGNvcHl0cmVlIHJldHVybnMgaXRzIGRlc3RpbmF0aW9uIHBhdGguCisgICAgICAgIHNyY19kaXIgPSBzZWxmLm1rZHRlbXAoKQorICAgICAgICBkc3RfZGlyID0gc3JjX2RpciArICJkZXN0IgorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2h1dGlsLnJtdHJlZSwgZHN0X2RpciwgVHJ1ZSkKKyAgICAgICAgc3JjID0gb3MucGF0aC5qb2luKHNyY19kaXIsICdmb28nKQorICAgICAgICB3cml0ZV9maWxlKHNyYywgJ2ZvbycpCisgICAgICAgIHJ2ID0gc2h1dGlsLmNvcHl0cmVlKHNyY19kaXIsIGRzdF9kaXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydmb28nXSwgb3MubGlzdGRpcihydikpCisKKworY2xhc3MgVGVzdFdoaWNoKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi50ZW1wX2RpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2h1dGlsLnJtdHJlZSwgc2VsZi50ZW1wX2RpciwgVHJ1ZSkKKyAgICAgICAgIyBHaXZlIHRoZSB0ZW1wX2ZpbGUgYW4gIi5leGUiIHN1ZmZpeCBmb3IgYWxsLgorICAgICAgICAjIEl0J3MgbmVlZGVkIG9uIFdpbmRvd3MgYW5kIG5vdCBoYXJtZnVsIG9uIG90aGVyIHBsYXRmb3Jtcy4KKyAgICAgICAgc2VsZi50ZW1wX2ZpbGUgPSB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoZGlyPXNlbGYudGVtcF9kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeD0iLmV4ZSIpCisgICAgICAgIG9zLmNobW9kKHNlbGYudGVtcF9maWxlLm5hbWUsIHN0YXQuU19JWFVTUikKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNlbGYudGVtcF9maWxlLmNsb3NlKQorICAgICAgICBzZWxmLmRpciwgc2VsZi5maWxlID0gb3MucGF0aC5zcGxpdChzZWxmLnRlbXBfZmlsZS5uYW1lKQorCisgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6CisgICAgICAgICMgR2l2ZW4gYW4gRVhFIGluIGEgZGlyZWN0b3J5LCBpdCBzaG91bGQgYmUgcmV0dXJuZWQuCisgICAgICAgIHJ2ID0gc2h1dGlsLndoaWNoKHNlbGYuZmlsZSwgcGF0aD1zZWxmLmRpcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydiwgc2VsZi50ZW1wX2ZpbGUubmFtZSkKKworICAgIGRlZiB0ZXN0X2Z1bGxfcGF0aF9zaG9ydF9jaXJjdWl0KHNlbGYpOgorICAgICAgICAjIFdoZW4gZ2l2ZW4gdGhlIGZ1bGx5IHF1YWxpZmllZCBwYXRoIHRvIGFuIGV4ZWN1dGFibGUgdGhhdCBleGlzdHMsCisgICAgICAgICMgaXQgc2hvdWxkIGJlIHJldHVybmVkLgorICAgICAgICBydiA9IHNodXRpbC53aGljaChzZWxmLnRlbXBfZmlsZS5uYW1lLCBwYXRoPXNlbGYudGVtcF9kaXIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi50ZW1wX2ZpbGUubmFtZSwgcnYpCisKKyAgICBkZWYgdGVzdF9ub25fbWF0Y2hpbmdfbW9kZShzZWxmKToKKyAgICAgICAgIyBTZXQgdGhlIGZpbGUgcmVhZC1vbmx5IGFuZCBhc2sgZm9yIHdyaXRlYWJsZSBmaWxlcy4KKyAgICAgICAgb3MuY2htb2Qoc2VsZi50ZW1wX2ZpbGUubmFtZSwgc3RhdC5TX0lSRUFEKQorICAgICAgICBydiA9IHNodXRpbC53aGljaChzZWxmLmZpbGUsIHBhdGg9c2VsZi5kaXIsIG1vZGU9b3MuV19PSykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocnYpCisKKyAgICBkZWYgdGVzdF9yZWxhdGl2ZShzZWxmKToKKyAgICAgICAgb2xkX2N3ZCA9IG9zLmdldGN3ZCgpCisgICAgICAgIGJhc2VfZGlyLCB0YWlsX2RpciA9IG9zLnBhdGguc3BsaXQoc2VsZi5kaXIpCisgICAgICAgIG9zLmNoZGlyKGJhc2VfZGlyKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBydiA9IHNodXRpbC53aGljaChzZWxmLmZpbGUsIHBhdGg9dGFpbF9kaXIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJ2LCBvcy5wYXRoLmpvaW4odGFpbF9kaXIsIHNlbGYuZmlsZSkpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5jaGRpcihvbGRfY3dkKQorCisgICAgZGVmIHRlc3Rfbm9uZXhpc3RlbnRfZmlsZShzZWxmKToKKyAgICAgICAgIyBSZXR1cm4gTm9uZSB3aGVuIG5vIG1hdGNoaW5nIGV4ZWN1dGFibGUgZmlsZSBpcyBmb3VuZCBvbiB0aGUgcGF0aC4KKyAgICAgICAgcnYgPSBzaHV0aWwud2hpY2goImZvby5leGUiLCBwYXRoPXNlbGYuZGlyKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShydikKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRoZXh0IGNoZWNrIGlzIFdpbmRvd3Mtb25seSIpCisgICAgZGVmIHRlc3RfcGF0aGV4dF9jaGVja2luZyhzZWxmKToKKyAgICAgICAgIyBBc2sgZm9yIHRoZSBmaWxlIHdpdGhvdXQgdGhlICIuZXhlIiBleHRlbnNpb24sIHRoZW4gZW5zdXJlIHRoYXQKKyAgICAgICAgIyBpdCBnZXRzIGZvdW5kIHByb3Blcmx5IHdpdGggdGhlIGV4dGVuc2lvbi4KKyAgICAgICAgcnYgPSBzaHV0aWwud2hpY2goc2VsZi50ZW1wX2ZpbGUubmFtZVs6LTRdLCBwYXRoPXNlbGYuZGlyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudGVtcF9maWxlLm5hbWUsIHJ2KQorCiAKIGNsYXNzIFRlc3RNb3ZlKHVuaXR0ZXN0LlRlc3RDYXNlKToKIApAQCAtODc3LDYgKzEzODMsNTggQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoVEVTVEZOLCBpZ25vcmVfZXJyb3JzPVRydWUpCiAKKyAgICBAc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCisgICAgQG1vY2tfcmVuYW1lCisgICAgZGVmIHRlc3RfbW92ZV9maWxlX3N5bWxpbmsoc2VsZik6CisgICAgICAgIGRzdCA9IG9zLnBhdGguam9pbihzZWxmLnNyY19kaXIsICdiYXInKQorICAgICAgICBvcy5zeW1saW5rKHNlbGYuc3JjX2ZpbGUsIGRzdCkKKyAgICAgICAgc2h1dGlsLm1vdmUoZHN0LCBzZWxmLmRzdF9maWxlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2xpbmsoc2VsZi5kc3RfZmlsZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLnNhbWVmaWxlKHNlbGYuc3JjX2ZpbGUsIHNlbGYuZHN0X2ZpbGUpKQorCisgICAgQHN1cHBvcnQuc2tpcF91bmxlc3Nfc3ltbGluaworICAgIEBtb2NrX3JlbmFtZQorICAgIGRlZiB0ZXN0X21vdmVfZmlsZV9zeW1saW5rX3RvX2RpcihzZWxmKToKKyAgICAgICAgZmlsZW5hbWUgPSAiYmFyIgorICAgICAgICBkc3QgPSBvcy5wYXRoLmpvaW4oc2VsZi5zcmNfZGlyLCBmaWxlbmFtZSkKKyAgICAgICAgb3Muc3ltbGluayhzZWxmLnNyY19maWxlLCBkc3QpCisgICAgICAgIHNodXRpbC5tb3ZlKGRzdCwgc2VsZi5kc3RfZGlyKQorICAgICAgICBmaW5hbF9saW5rID0gb3MucGF0aC5qb2luKHNlbGYuZHN0X2RpciwgZmlsZW5hbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzbGluayhmaW5hbF9saW5rKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguc2FtZWZpbGUoc2VsZi5zcmNfZmlsZSwgZmluYWxfbGluaykpCisKKyAgICBAc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCisgICAgQG1vY2tfcmVuYW1lCisgICAgZGVmIHRlc3RfbW92ZV9kYW5nbGluZ19zeW1saW5rKHNlbGYpOgorICAgICAgICBzcmMgPSBvcy5wYXRoLmpvaW4oc2VsZi5zcmNfZGlyLCAnYmF6JykKKyAgICAgICAgZHN0ID0gb3MucGF0aC5qb2luKHNlbGYuc3JjX2RpciwgJ2JhcicpCisgICAgICAgIG9zLnN5bWxpbmsoc3JjLCBkc3QpCisgICAgICAgIGRzdF9saW5rID0gb3MucGF0aC5qb2luKHNlbGYuZHN0X2RpciwgJ3F1dXgnKQorICAgICAgICBzaHV0aWwubW92ZShkc3QsIGRzdF9saW5rKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2xpbmsoZHN0X2xpbmspKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGgucmVhbHBhdGgoc3JjKSwgb3MucGF0aC5yZWFscGF0aChkc3RfbGluaykpCisKKyAgICBAc3VwcG9ydC5za2lwX3VubGVzc19zeW1saW5rCisgICAgQG1vY2tfcmVuYW1lCisgICAgZGVmIHRlc3RfbW92ZV9kaXJfc3ltbGluayhzZWxmKToKKyAgICAgICAgc3JjID0gb3MucGF0aC5qb2luKHNlbGYuc3JjX2RpciwgJ2JheicpCisgICAgICAgIGRzdCA9IG9zLnBhdGguam9pbihzZWxmLnNyY19kaXIsICdiYXInKQorICAgICAgICBvcy5ta2RpcihzcmMpCisgICAgICAgIG9zLnN5bWxpbmsoc3JjLCBkc3QpCisgICAgICAgIGRzdF9saW5rID0gb3MucGF0aC5qb2luKHNlbGYuZHN0X2RpciwgJ3F1dXgnKQorICAgICAgICBzaHV0aWwubW92ZShkc3QsIGRzdF9saW5rKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2xpbmsoZHN0X2xpbmspKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5zYW1lZmlsZShzcmMsIGRzdF9saW5rKSkKKworICAgIGRlZiB0ZXN0X21vdmVfcmV0dXJuX3ZhbHVlKHNlbGYpOgorICAgICAgICBydiA9IHNodXRpbC5tb3ZlKHNlbGYuc3JjX2ZpbGUsIHNlbGYuZHN0X2RpcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChydiwKKyAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oc2VsZi5kc3RfZGlyLCBvcy5wYXRoLmJhc2VuYW1lKHNlbGYuc3JjX2ZpbGUpKSkKKworICAgIGRlZiB0ZXN0X21vdmVfYXNfcmVuYW1lX3JldHVybl92YWx1ZShzZWxmKToKKyAgICAgICAgcnYgPSBzaHV0aWwubW92ZShzZWxmLnNyY19maWxlLCBvcy5wYXRoLmpvaW4oc2VsZi5kc3RfZGlyLCAnYmFyJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocnYsIG9zLnBhdGguam9pbihzZWxmLmRzdF9kaXIsICdiYXInKSkKKwogCiBjbGFzcyBUZXN0Q29weUZpbGUodW5pdHRlc3QuVGVzdENhc2UpOgogCkBAIC05ODYsNiArMTU0NCw3IEBACiAgICAgICAgICMgYnV0IGEgZGlmZmVyZW50IGNhc2UuCiAKICAgICAgICAgc2VsZi5zcmNfZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzaHV0aWwucm10cmVlLCBzZWxmLnNyY19kaXIsIFRydWUpCiAgICAgICAgIGRzdF9kaXIgPSBvcy5wYXRoLmpvaW4oCiAgICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKHNlbGYuc3JjX2RpciksCiAgICAgICAgICAgICAgICAgb3MucGF0aC5iYXNlbmFtZShzZWxmLnNyY19kaXIpLnVwcGVyKCkpCkBAIC05OTUsMTMgKzE1NTQsNTcgQEAKICAgICAgICAgICAgIHNodXRpbC5tb3ZlKHNlbGYuc3JjX2RpciwgZHN0X2RpcikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzZGlyKGRzdF9kaXIpKQogICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoZHN0X2Rpcik6Ci0gICAgICAgICAgICAgICAgb3Mucm1kaXIoZHN0X2RpcikKKyAgICAgICAgICAgIG9zLnJtZGlyKGRzdF9kaXIpCiAKK2NsYXNzIFRlcm1zaXplVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2RvZXNfbm90X2NyYXNoKHNlbGYpOgorICAgICAgICAiIiJDaGVjayBpZiBnZXRfdGVybWluYWxfc2l6ZSgpIHJldHVybnMgYSBtZWFuaW5nZnVsIHZhbHVlLgorCisgICAgICAgIFRoZXJlJ3Mgbm8gZWFzeSBwb3J0YWJsZSB3YXkgdG8gYWN0dWFsbHkgY2hlY2sgdGhlIHNpemUgb2YgdGhlCisgICAgICAgIHRlcm1pbmFsLCBzbyBsZXQncyBjaGVjayBpZiBpdCByZXR1cm5zIHNvbWV0aGluZyBzZW5zaWJsZSBpbnN0ZWFkLgorICAgICAgICAiIiIKKyAgICAgICAgc2l6ZSA9IHNodXRpbC5nZXRfdGVybWluYWxfc2l6ZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKHNpemUuY29sdW1ucywgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwoc2l6ZS5saW5lcywgMCkKKworICAgIGRlZiB0ZXN0X29zX2Vudmlyb25fZmlyc3Qoc2VsZik6CisgICAgICAgICJDaGVjayBpZiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaGF2ZSBwcmVjZWRlbmNlIgorCisgICAgICAgIHdpdGggc3VwcG9ydC5FbnZpcm9ubWVudFZhckd1YXJkKCkgYXMgZW52OgorICAgICAgICAgICAgZW52WydDT0xVTU5TJ10gPSAnNzc3JworICAgICAgICAgICAgc2l6ZSA9IHNodXRpbC5nZXRfdGVybWluYWxfc2l6ZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2l6ZS5jb2x1bW5zLCA3NzcpCisKKyAgICAgICAgd2l0aCBzdXBwb3J0LkVudmlyb25tZW50VmFyR3VhcmQoKSBhcyBlbnY6CisgICAgICAgICAgICBlbnZbJ0xJTkVTJ10gPSAnODg4JworICAgICAgICAgICAgc2l6ZSA9IHNodXRpbC5nZXRfdGVybWluYWxfc2l6ZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2l6ZS5saW5lcywgODg4KQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Mob3MuaXNhdHR5KHN5cy5fX3N0ZG91dF9fLmZpbGVubygpKSwgIm5vdCBvbiB0dHkiKQorICAgIGRlZiB0ZXN0X3N0dHlfbWF0Y2goc2VsZik6CisgICAgICAgICIiIkNoZWNrIGlmIHN0dHkgcmV0dXJucyB0aGUgc2FtZSByZXN1bHRzIGlnbm9yaW5nIGVudgorCisgICAgICAgIFRoaXMgdGVzdCB3aWxsIGZhaWwgaWYgc3RkaW4gYW5kIHN0ZG91dCBhcmUgY29ubmVjdGVkIHRvCisgICAgICAgIGRpZmZlcmVudCB0ZXJtaW5hbHMgd2l0aCBkaWZmZXJlbnQgc2l6ZXMuIE5ldmVydGhlbGVzcywgc3VjaAorICAgICAgICBzaXR1YXRpb25zIHNob3VsZCBiZSBwcmV0dHkgcmFyZS4KKyAgICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNpemUgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbJ3N0dHknLCAnc2l6ZSddKS5kZWNvZGUoKS5zcGxpdCgpCisgICAgICAgIGV4Y2VwdCAoRmlsZU5vdEZvdW5kRXJyb3IsIHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoInN0dHkgaW52b2NhdGlvbiBmYWlsZWQiKQorICAgICAgICBleHBlY3RlZCA9IChpbnQoc2l6ZVsxXSksIGludChzaXplWzBdKSkgIyByZXZlcnNlZCBvcmRlcgorCisgICAgICAgIHdpdGggc3VwcG9ydC5FbnZpcm9ubWVudFZhckd1YXJkKCkgYXMgZW52OgorICAgICAgICAgICAgZGVsIGVudlsnTElORVMnXQorICAgICAgICAgICAgZGVsIGVudlsnQ09MVU1OUyddCisgICAgICAgICAgICBhY3R1YWwgPSBzaHV0aWwuZ2V0X3Rlcm1pbmFsX3NpemUoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIGFjdHVhbCkKIAogCiBkZWYgdGVzdF9tYWluKCk6Ci0gICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoVGVzdFNodXRpbCwgVGVzdE1vdmUsIFRlc3RDb3B5RmlsZSkKKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChUZXN0U2h1dGlsLCBUZXN0TW92ZSwgVGVzdENvcHlGaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgIFRlcm1zaXplVGVzdHMsIFRlc3RXaGljaCkKIAogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zaWduYWwucHkgYi9MaWIvdGVzdC90ZXN0X3NpZ25hbC5weQppbmRleCA4ZGYxYmYwLi42YmUyNTliIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3NpZ25hbC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3NpZ25hbC5weQpAQCAtMSwxNyArMSwxOSBAQAotaW1wb3J0IGVycm5vCi1pbXBvcnQgZ2MKLWltcG9ydCBvcwotaW1wb3J0IHBpY2tsZQotaW1wb3J0IHNlbGVjdAotaW1wb3J0IHNpZ25hbAotaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKLWltcG9ydCB0aW1lCi1pbXBvcnQgdHJhY2ViYWNrCiBpbXBvcnQgdW5pdHRlc3QKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogZnJvbSBjb250ZXh0bGliIGltcG9ydCBjbG9zaW5nCitpbXBvcnQgZ2MKK2ltcG9ydCBwaWNrbGUKK2ltcG9ydCBzZWxlY3QKK2ltcG9ydCBzaWduYWwKK2ltcG9ydCBzdHJ1Y3QKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgdHJhY2ViYWNrCitpbXBvcnQgc3lzLCBvcywgdGltZSwgZXJybm8KIGZyb20gdGVzdC5zY3JpcHRfaGVscGVyIGltcG9ydCBhc3NlcnRfcHl0aG9uX29rLCBzcGF3bl9weXRob24KK3RyeToKKyAgICBpbXBvcnQgdGhyZWFkaW5nCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgdGhyZWFkaW5nID0gTm9uZQogCiBpZiBzeXMucGxhdGZvcm0gaW4gKCdvczInLCAncmlzY29zJyk6CiAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoIkNhbid0IHRlc3Qgc2lnbmFsIG9uICVzIiAlIHN5cy5wbGF0Zm9ybSkKQEAgLTU3LDE1ICs1OSw5IEBACiAKICAgICBkZWYgaGFuZGxlckEoc2VsZiwgc2lnbnVtLCBmcmFtZSk6CiAgICAgICAgIHNlbGYuYV9jYWxsZWQgPSBUcnVlCi0gICAgICAgIGlmIHN1cHBvcnQudmVyYm9zZToKLSAgICAgICAgICAgIHByaW50KCJoYW5kbGVyQSBpbnZva2VkIGZyb20gc2lnbmFsICVzIGF0OlxuJXMiICUgKAotICAgICAgICAgICAgICAgIHNpZ251bSwgc2VsZi5mb3JtYXRfZnJhbWUoZnJhbWUsIGxpbWl0PTEpKSkKIAogICAgIGRlZiBoYW5kbGVyQihzZWxmLCBzaWdudW0sIGZyYW1lKToKICAgICAgICAgc2VsZi5iX2NhbGxlZCA9IFRydWUKLSAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgotICAgICAgICAgICAgcHJpbnQgKCJoYW5kbGVyQiBpbnZva2VkIGZyb20gc2lnbmFsICVzIGF0OlxuJXMiICUgKAotICAgICAgICAgICAgICAgIHNpZ251bSwgc2VsZi5mb3JtYXRfZnJhbWUoZnJhbWUsIGxpbWl0PTEpKSkKICAgICAgICAgcmFpc2UgSGFuZGxlckJDYWxsZWQoc2lnbnVtLCBzZWxmLmZvcm1hdF9mcmFtZShmcmFtZSkpCiAKICAgICBkZWYgd2FpdChzZWxmLCBjaGlsZCk6CkBAIC05Miw4ICs4OCw2IEBACiAKICAgICAgICAgIyBMZXQgdGhlIHN1Yi1wcm9jZXNzZXMga25vdyB3aG8gdG8gc2VuZCBzaWduYWxzIHRvLgogICAgICAgICBwaWQgPSBvcy5nZXRwaWQoKQotICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6Ci0gICAgICAgICAgICBwcmludCgidGVzdCBydW5uZXIncyBwaWQgaXMiLCBwaWQpCiAKICAgICAgICAgY2hpbGQgPSBpZ25vcmluZ19laW50cihzdWJwcm9jZXNzLlBvcGVuLCBbJ2tpbGwnLCAnLUhVUCcsIHN0cihwaWQpXSkKICAgICAgICAgaWYgY2hpbGQ6CkBAIC0xMTcsOCArMTExLDYgQEAKICAgICAgICAgZXhjZXB0IEhhbmRsZXJCQ2FsbGVkOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYuYl9jYWxsZWQpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYuYV9jYWxsZWQpCi0gICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIkhhbmRsZXJCQ2FsbGVkIGV4Y2VwdGlvbiBjYXVnaHQiKQogCiAgICAgICAgIGNoaWxkID0gaWdub3JpbmdfZWludHIoc3VicHJvY2Vzcy5Qb3BlbiwgWydraWxsJywgJy1VU1IyJywgc3RyKHBpZCldKQogICAgICAgICBpZiBjaGlsZDoKQEAgLTEzNCw4ICsxMjYsNyBAQAogICAgICAgICAgICAgIyBtYXkgcmV0dXJuIGVhcmx5LgogICAgICAgICAgICAgdGltZS5zbGVlcCgxKQogICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIktleWJvYXJkSW50ZXJydXB0ICh0aGUgYWxhcm0oKSB3ZW50IG9mZikiKQorICAgICAgICAgICAgcGFzcwogICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgICBzZWxmLmZhaWwoIlNvbWUgb3RoZXIgZXhjZXB0aW9uIHdva2UgdXMgZnJvbSBwYXVzZTogJXMiICUKICAgICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2suZm9ybWF0X2V4YygpKQpAQCAtMTkxLDcgKzE4Miw3IEBACiAKIAogQHVuaXR0ZXN0LnNraXBJZihzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwgIk5vdCB2YWxpZCBvbiBXaW5kb3dzIikKLWNsYXNzIEJhc2ljU2lnbmFsVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorY2xhc3MgUG9zaXhUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRyaXZpYWxfc2lnbmFsX2hhbmRsZXIoc2VsZiwgKmFyZ3MpOgogICAgICAgICBwYXNzCiAKQEAgLTIzMywzMSArMjI0LDQ0IEBACiAKIEB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsICJOb3QgdmFsaWQgb24gV2luZG93cyIpCiBjbGFzcyBXYWtldXBTaWduYWxUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgZGVmIGNoZWNrX3dha2V1cChzZWxmLCB0ZXN0X2JvZHkpOgotICAgICAgICAjIHVzZSBhIHN1YnByb2Nlc3MgdG8gaGF2ZSBvbmx5IG9uZSB0aHJlYWQgYW5kIHRvIG5vdCBjaGFuZ2Ugc2lnbmFsCi0gICAgICAgICMgaGFuZGxpbmcgb2YgdGhlIHBhcmVudCBwcm9jZXNzCisgICAgZGVmIGNoZWNrX3dha2V1cChzZWxmLCB0ZXN0X2JvZHksICpzaWduYWxzLCBvcmRlcmVkPVRydWUpOgorICAgICAgICAjIHVzZSBhIHN1YnByb2Nlc3MgdG8gaGF2ZSBvbmx5IG9uZSB0aHJlYWQKICAgICAgICAgY29kZSA9ICIiImlmIDE6CiAgICAgICAgIGltcG9ydCBmY250bAogICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgaW1wb3J0IHNpZ25hbAorICAgICAgICBpbXBvcnQgc3RydWN0CisKKyAgICAgICAgc2lnbmFscyA9IHshcn0KIAogICAgICAgICBkZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKICAgICAgICAgICAgIHBhc3MKIAorICAgICAgICBkZWYgY2hlY2tfc2lnbnVtKHNpZ25hbHMpOgorICAgICAgICAgICAgZGF0YSA9IG9zLnJlYWQocmVhZCwgbGVuKHNpZ25hbHMpKzEpCisgICAgICAgICAgICByYWlzZWQgPSBzdHJ1Y3QudW5wYWNrKCcldUInICUgbGVuKGRhdGEpLCBkYXRhKQorICAgICAgICAgICAgaWYgbm90IHshcn06CisgICAgICAgICAgICAgICAgcmFpc2VkID0gc2V0KHJhaXNlZCkKKyAgICAgICAgICAgICAgICBzaWduYWxzID0gc2V0KHNpZ25hbHMpCisgICAgICAgICAgICBpZiByYWlzZWQgIT0gc2lnbmFsczoKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIiVyICE9ICVyIiAlIChyYWlzZWQsIHNpZ25hbHMpKQorCiAgICAgICAgIHt9CiAKICAgICAgICAgc2lnbmFsLnNpZ25hbChzaWduYWwuU0lHQUxSTSwgaGFuZGxlcikKICAgICAgICAgcmVhZCwgd3JpdGUgPSBvcy5waXBlKCkKLSAgICAgICAgZmxhZ3MgPSBmY250bC5mY250bCh3cml0ZSwgZmNudGwuRl9HRVRGTCwgMCkKLSAgICAgICAgZmxhZ3MgPSBmbGFncyB8IG9zLk9fTk9OQkxPQ0sKLSAgICAgICAgZmNudGwuZmNudGwod3JpdGUsIGZjbnRsLkZfU0VURkwsIGZsYWdzKQorICAgICAgICBmb3IgZmQgaW4gKHJlYWQsIHdyaXRlKToKKyAgICAgICAgICAgIGZsYWdzID0gZmNudGwuZmNudGwoZmQsIGZjbnRsLkZfR0VURkwsIDApCisgICAgICAgICAgICBmbGFncyA9IGZsYWdzIHwgb3MuT19OT05CTE9DSworICAgICAgICAgICAgZmNudGwuZmNudGwoZmQsIGZjbnRsLkZfU0VURkwsIGZsYWdzKQogICAgICAgICBzaWduYWwuc2V0X3dha2V1cF9mZCh3cml0ZSkKIAogICAgICAgICB0ZXN0KCkKKyAgICAgICAgY2hlY2tfc2lnbnVtKHNpZ25hbHMpCiAKICAgICAgICAgb3MuY2xvc2UocmVhZCkKICAgICAgICAgb3MuY2xvc2Uod3JpdGUpCi0gICAgICAgICIiIi5mb3JtYXQodGVzdF9ib2R5KQorICAgICAgICAiIiIuZm9ybWF0KHNpZ25hbHMsIG9yZGVyZWQsIHRlc3RfYm9keSkKIAogICAgICAgICBhc3NlcnRfcHl0aG9uX29rKCctYycsIGNvZGUpCiAKQEAgLTI4Myw3ICsyODcsNyBAQAogICAgICAgICAgICAgZHQgPSBhZnRlcl90aW1lIC0gbWlkX3RpbWUKICAgICAgICAgICAgIGlmIGR0ID49IFRJTUVPVVRfSEFMRjoKICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIiVzID49ICVzIiAlIChkdCwgVElNRU9VVF9IQUxGKSkKLSAgICAgICAgIiIiKQorICAgICAgICAiIiIsIHNpZ25hbC5TSUdBTFJNKQogCiAgICAgZGVmIHRlc3Rfd2FrZXVwX2ZkX2R1cmluZyhzZWxmKToKICAgICAgICAgc2VsZi5jaGVja193YWtldXAoIiIiZGVmIHRlc3QoKToKQEAgLTMwNiw3ICszMTAsMzIgQEAKICAgICAgICAgICAgIGR0ID0gYWZ0ZXJfdGltZSAtIGJlZm9yZV90aW1lCiAgICAgICAgICAgICBpZiBkdCA+PSBUSU1FT1VUX0hBTEY6CiAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCIlcyA+PSAlcyIgJSAoZHQsIFRJTUVPVVRfSEFMRikpCi0gICAgICAgICIiIikKKyAgICAgICAgIiIiLCBzaWduYWwuU0lHQUxSTSkKKworICAgIGRlZiB0ZXN0X3NpZ251bShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja193YWtldXAoIiIiZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR1VTUjEsIGhhbmRsZXIpCisgICAgICAgICAgICBvcy5raWxsKG9zLmdldHBpZCgpLCBzaWduYWwuU0lHVVNSMSkKKyAgICAgICAgICAgIG9zLmtpbGwob3MuZ2V0cGlkKCksIHNpZ25hbC5TSUdBTFJNKQorICAgICAgICAiIiIsIHNpZ25hbC5TSUdVU1IxLCBzaWduYWwuU0lHQUxSTSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2lnbmFsLCAncHRocmVhZF9zaWdtYXNrJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ25lZWQgc2lnbmFsLnB0aHJlYWRfc2lnbWFzaygpJykKKyAgICBkZWYgdGVzdF9wZW5kaW5nKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX3dha2V1cCgiIiJkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2lnbnVtMSA9IHNpZ25hbC5TSUdVU1IxCisgICAgICAgICAgICBzaWdudW0yID0gc2lnbmFsLlNJR1VTUjIKKworICAgICAgICAgICAgc2lnbmFsLnNpZ25hbChzaWdudW0xLCBoYW5kbGVyKQorICAgICAgICAgICAgc2lnbmFsLnNpZ25hbChzaWdudW0yLCBoYW5kbGVyKQorCisgICAgICAgICAgICBzaWduYWwucHRocmVhZF9zaWdtYXNrKHNpZ25hbC5TSUdfQkxPQ0ssIChzaWdudW0xLCBzaWdudW0yKSkKKyAgICAgICAgICAgIG9zLmtpbGwob3MuZ2V0cGlkKCksIHNpZ251bTEpCisgICAgICAgICAgICBvcy5raWxsKG9zLmdldHBpZCgpLCBzaWdudW0yKQorICAgICAgICAgICAgIyBVbmJsb2NraW5nIHRoZSAyIHNpZ25hbHMgY2FsbHMgdGhlIEMgc2lnbmFsIGhhbmRsZXIgdHdpY2UKKyAgICAgICAgICAgIHNpZ25hbC5wdGhyZWFkX3NpZ21hc2soc2lnbmFsLlNJR19VTkJMT0NLLCAoc2lnbnVtMSwgc2lnbnVtMikpCisgICAgICAgICIiIiwgIHNpZ25hbC5TSUdVU1IxLCBzaWduYWwuU0lHVVNSMiwgb3JkZXJlZD1GYWxzZSkKKwogCiBAdW5pdHRlc3Quc2tpcElmKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLCAiTm90IHZhbGlkIG9uIFdpbmRvd3MiKQogY2xhc3MgU2lnaW50ZXJydXB0VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0zMTYsOSArMzQ1LDYgQEAKICAgICAgICAgcmVhZCBpcyBpbnRlcnJ1cHRlZCBieSB0aGUgc2lnbmFsIGFuZCByYWlzZXMgYW4gZXhjZXB0aW9uLiAgUmV0dXJuIEZhbHNlCiAgICAgICAgIGlmIGl0IHJldHVybnMgbm9ybWFsbHkuCiAgICAgICAgICIiIgotICAgICAgICBjbGFzcyBUaW1lb3V0KEV4Y2VwdGlvbik6Ci0gICAgICAgICAgICBwYXNzCi0KICAgICAgICAgIyB1c2UgYSBzdWJwcm9jZXNzIHRvIGhhdmUgb25seSBvbmUgdGhyZWFkLCB0byBoYXZlIGEgdGltZW91dCBvbiB0aGUKICAgICAgICAgIyBibG9ja2luZyByZWFkIGFuZCB0byBub3QgdG91Y2ggc2lnbmFsIGhhbmRsaW5nIGluIHRoaXMgcHJvY2VzcwogICAgICAgICBjb2RlID0gIiIiaWYgMToKQEAgLTM1OSwxOCArMzg1LDggQEAKICAgICAgICAgICAgICAgICAjIHdhaXQgdW50aWwgdGhlIGNoaWxkIHByb2Nlc3MgaXMgbG9hZGVkIGFuZCBoYXMgc3RhcnRlZAogICAgICAgICAgICAgICAgIGZpcnN0X2xpbmUgPSBwcm9jZXNzLnN0ZG91dC5yZWFkbGluZSgpCiAKLSAgICAgICAgICAgICAgICAjIFdhaXQgdGhlIHByb2Nlc3Mgd2l0aCBhIHRpbWVvdXQgb2YgNSBzZWNvbmRzCi0gICAgICAgICAgICAgICAgdGltZW91dCA9IHRpbWUudGltZSgpICsgNS4wCi0gICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICAgICAgaWYgdGltZW91dCA8IHRpbWUudGltZSgpOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVGltZW91dCgpCi0gICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IHByb2Nlc3MucG9sbCgpCi0gICAgICAgICAgICAgICAgICAgIGlmIHN0YXR1cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4xKQotCi0gICAgICAgICAgICAgICAgc3Rkb3V0LCBzdGRlcnIgPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKLSAgICAgICAgICAgIGV4Y2VwdCBUaW1lb3V0OgorICAgICAgICAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSh0aW1lb3V0PTUuMCkKKyAgICAgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLlRpbWVvdXRFeHBpcmVkOgogICAgICAgICAgICAgICAgIHByb2Nlc3Mua2lsbCgpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgICAgICBlbHNlOgpAQCAtNDE5LDggKzQzNSw2IEBACiAKICAgICBkZWYgc2lnX2Fscm0oc2VsZiwgKmFyZ3MpOgogICAgICAgICBzZWxmLmhuZGxfY2FsbGVkID0gVHJ1ZQotICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6Ci0gICAgICAgICAgICBwcmludCgiU0lHQUxSTSBoYW5kbGVyIGludm9rZWQiLCBhcmdzKQogCiAgICAgZGVmIHNpZ192dGFscm0oc2VsZiwgKmFyZ3MpOgogICAgICAgICBzZWxmLmhuZGxfY2FsbGVkID0gVHJ1ZQpAQCAtNDMyLDIxICs0NDYsMTMgQEAKICAgICAgICAgZWxpZiBzZWxmLmhuZGxfY291bnQgPT0gMzoKICAgICAgICAgICAgICMgZGlzYWJsZSBJVElNRVJfVklSVFVBTCwgdGhpcyBmdW5jdGlvbiBzaG91bGRuJ3QgYmUgY2FsbGVkIGFueW1vcmUKICAgICAgICAgICAgIHNpZ25hbC5zZXRpdGltZXIoc2lnbmFsLklUSU1FUl9WSVJUVUFMLCAwKQotICAgICAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgotICAgICAgICAgICAgICAgIHByaW50KCJsYXN0IFNJR1ZUQUxSTSBoYW5kbGVyIGNhbGwiKQogCiAgICAgICAgIHNlbGYuaG5kbF9jb3VudCArPSAxCiAKLSAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgotICAgICAgICAgICAgcHJpbnQoIlNJR1ZUQUxSTSBoYW5kbGVyIGludm9rZWQiLCBhcmdzKQotCiAgICAgZGVmIHNpZ19wcm9mKHNlbGYsICphcmdzKToKICAgICAgICAgc2VsZi5obmRsX2NhbGxlZCA9IFRydWUKICAgICAgICAgc2lnbmFsLnNldGl0aW1lcihzaWduYWwuSVRJTUVSX1BST0YsIDApCiAKLSAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgotICAgICAgICAgICAgcHJpbnQoIlNJR1BST0YgaGFuZGxlciBpbnZva2VkIiwgYXJncykKLQogICAgIGRlZiB0ZXN0X2l0aW1lcl9leGMoc2VsZik6CiAgICAgICAgICMgWFhYIEknbSBhc3N1bWluZyAtMSBpcyBhbiBpbnZhbGlkIGl0aW1lciwgYnV0IG1heWJlIHNvbWUgcGxhdGZvcm0KICAgICAgICAgIyBkZWZpbmVzIGl0ID8KQEAgLTQ1OSwxMCArNDY1LDcgQEAKICAgICBkZWYgdGVzdF9pdGltZXJfcmVhbChzZWxmKToKICAgICAgICAgc2VsZi5pdGltZXIgPSBzaWduYWwuSVRJTUVSX1JFQUwKICAgICAgICAgc2lnbmFsLnNldGl0aW1lcihzZWxmLml0aW1lciwgMS4wKQotICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6Ci0gICAgICAgICAgICBwcmludCgiXG5jYWxsIHBhdXNlKCkuLi4iKQogICAgICAgICBzaWduYWwucGF1c2UoKQotCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5obmRsX2NhbGxlZCwgVHJ1ZSkKIAogICAgICMgSXNzdWUgMzg2NCwgdW5rbm93biBpZiB0aGlzIGFmZmVjdHMgZWFybGllciB2ZXJzaW9ucyBvZiBmcmVlYnNkIGFsc28KQEAgLTUxMSwxMSArNTE0LDM1OSBAQAogICAgICAgICAjIGFuZCB0aGUgaGFuZGxlciBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuaG5kbF9jYWxsZWQsIFRydWUpCiAKKworY2xhc3MgUGVuZGluZ1NpZ25hbHNUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiCisgICAgVGVzdCBwdGhyZWFkX3NpZ21hc2soKSwgcHRocmVhZF9raWxsKCksIHNpZ3BlbmRpbmcoKSBhbmQgc2lnd2FpdCgpCisgICAgZnVuY3Rpb25zLgorICAgICIiIgorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2lnbmFsLCAnc2lncGVuZGluZycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5zaWdwZW5kaW5nKCknKQorICAgIGRlZiB0ZXN0X3NpZ3BlbmRpbmdfZW1wdHkoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2lnbmFsLnNpZ3BlbmRpbmcoKSwgc2V0KCkpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNpZ25hbCwgJ3B0aHJlYWRfc2lnbWFzaycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5wdGhyZWFkX3NpZ21hc2soKScpCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzaWduYWwsICdzaWdwZW5kaW5nJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ25lZWQgc2lnbmFsLnNpZ3BlbmRpbmcoKScpCisgICAgZGVmIHRlc3Rfc2lncGVuZGluZyhzZWxmKToKKyAgICAgICAgY29kZSA9ICIiImlmIDE6CisgICAgICAgICAgICBpbXBvcnQgb3MKKyAgICAgICAgICAgIGltcG9ydCBzaWduYWwKKworICAgICAgICAgICAgZGVmIGhhbmRsZXIoc2lnbnVtLCBmcmFtZSk6CisgICAgICAgICAgICAgICAgMS8wCisKKyAgICAgICAgICAgIHNpZ251bSA9IHNpZ25hbC5TSUdVU1IxCisgICAgICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ251bSwgaGFuZGxlcikKKworICAgICAgICAgICAgc2lnbmFsLnB0aHJlYWRfc2lnbWFzayhzaWduYWwuU0lHX0JMT0NLLCBbc2lnbnVtXSkKKyAgICAgICAgICAgIG9zLmtpbGwob3MuZ2V0cGlkKCksIHNpZ251bSkKKyAgICAgICAgICAgIHBlbmRpbmcgPSBzaWduYWwuc2lncGVuZGluZygpCisgICAgICAgICAgICBpZiBwZW5kaW5nICE9IHtzaWdudW19OgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXMgIT0geyVzfScgJSAocGVuZGluZywgc2lnbnVtKSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzaWduYWwucHRocmVhZF9zaWdtYXNrKHNpZ25hbC5TSUdfVU5CTE9DSywgW3NpZ251bV0pCisgICAgICAgICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3I6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlplcm9EaXZpc2lvbkVycm9yIG5vdCByYWlzZWQiKQorICAgICAgICAiIiIKKyAgICAgICAgYXNzZXJ0X3B5dGhvbl9vaygnLWMnLCBjb2RlKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzaWduYWwsICdwdGhyZWFkX2tpbGwnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbmVlZCBzaWduYWwucHRocmVhZF9raWxsKCknKQorICAgIGRlZiB0ZXN0X3B0aHJlYWRfa2lsbChzZWxmKToKKyAgICAgICAgY29kZSA9ICIiImlmIDE6CisgICAgICAgICAgICBpbXBvcnQgc2lnbmFsCisgICAgICAgICAgICBpbXBvcnQgdGhyZWFkaW5nCisgICAgICAgICAgICBpbXBvcnQgc3lzCisKKyAgICAgICAgICAgIHNpZ251bSA9IHNpZ25hbC5TSUdVU1IxCisKKyAgICAgICAgICAgIGRlZiBoYW5kbGVyKHNpZ251bSwgZnJhbWUpOgorICAgICAgICAgICAgICAgIDEvMAorCisgICAgICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ251bSwgaGFuZGxlcikKKworICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdmcmVlYnNkNic6CisgICAgICAgICAgICAgICAgIyBJc3N1ZSAjMTIzOTIgYW5kICMxMjQ2OTogc2VuZCBhIHNpZ25hbCB0byB0aGUgbWFpbiB0aHJlYWQKKyAgICAgICAgICAgICAgICAjIGRvZXNuJ3Qgd29yayBiZWZvcmUgdGhlIGNyZWF0aW9uIG9mIHRoZSBmaXJzdCB0aHJlYWQgb24KKyAgICAgICAgICAgICAgICAjIEZyZWVCU0QgNgorICAgICAgICAgICAgICAgIGRlZiBub29wKCk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICB0aHJlYWQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1ub29wKQorICAgICAgICAgICAgICAgIHRocmVhZC5zdGFydCgpCisgICAgICAgICAgICAgICAgdGhyZWFkLmpvaW4oKQorCisgICAgICAgICAgICB0aWQgPSB0aHJlYWRpbmcuZ2V0X2lkZW50KCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzaWduYWwucHRocmVhZF9raWxsKHRpZCwgc2lnbnVtKQorICAgICAgICAgICAgZXhjZXB0IFplcm9EaXZpc2lvbkVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJaZXJvRGl2aXNpb25FcnJvciBub3QgcmFpc2VkIikKKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydF9weXRob25fb2soJy1jJywgY29kZSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2lnbmFsLCAncHRocmVhZF9zaWdtYXNrJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ25lZWQgc2lnbmFsLnB0aHJlYWRfc2lnbWFzaygpJykKKyAgICBkZWYgd2FpdF9oZWxwZXIoc2VsZiwgYmxvY2tlZCwgdGVzdCk6CisgICAgICAgICIiIgorICAgICAgICB0ZXN0OiBib2R5IG9mIHRoZSAiZGVmIHRlc3Qoc2lnbnVtKToiIGZ1bmN0aW9uLgorICAgICAgICBibG9ja2VkOiBudW1iZXIgb2YgdGhlIGJsb2NrZWQgc2lnbmFsCisgICAgICAgICIiIgorICAgICAgICBjb2RlID0gJycnaWYgMToKKyAgICAgICAgaW1wb3J0IHNpZ25hbAorICAgICAgICBpbXBvcnQgc3lzCisKKyAgICAgICAgZGVmIGhhbmRsZXIoc2lnbnVtLCBmcmFtZSk6CisgICAgICAgICAgICAxLzAKKworICAgICAgICAlcworCisgICAgICAgIGJsb2NrZWQgPSAlcworICAgICAgICBzaWdudW0gPSBzaWduYWwuU0lHQUxSTQorCisgICAgICAgICMgY2hpbGQ6IGJsb2NrIGFuZCB3YWl0IHRoZSBzaWduYWwKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2lnbmFsLnNpZ25hbChzaWdudW0sIGhhbmRsZXIpCisgICAgICAgICAgICBzaWduYWwucHRocmVhZF9zaWdtYXNrKHNpZ25hbC5TSUdfQkxPQ0ssIFtibG9ja2VkXSkKKworICAgICAgICAgICAgIyBEbyB0aGUgdGVzdHMKKyAgICAgICAgICAgIHRlc3Qoc2lnbnVtKQorCisgICAgICAgICAgICAjIFRoZSBoYW5kbGVyIG11c3Qgbm90IGJlIGNhbGxlZCBvbiB1bmJsb2NrCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2lnbmFsLnB0aHJlYWRfc2lnbWFzayhzaWduYWwuU0lHX1VOQkxPQ0ssIFtibG9ja2VkXSkKKyAgICAgICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvcjoKKyAgICAgICAgICAgICAgICBwcmludCgidGhlIHNpZ25hbCBoYW5kbGVyIGhhcyBiZWVuIGNhbGxlZCIsCisgICAgICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uIGFzIGVycjoKKyAgICAgICAgICAgIHByaW50KCJlcnJvcjoge30iLmZvcm1hdChlcnIpLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgICAgICBzeXMuc3RkZXJyLmZsdXNoKCkKKyAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgICcnJyAlICh0ZXN0LnN0cmlwKCksIGJsb2NrZWQpCisKKyAgICAgICAgIyBzaWcqd2FpdCogbXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgc2lnbmFsIGJsb2NrZWQ6IHNpbmNlIHRoZSBjdXJyZW50CisgICAgICAgICMgcHJvY2VzcyBtaWdodCBoYXZlIHNldmVyYWwgdGhyZWFkcyBydW5uaW5nLCB1c2UgYSBzdWJwcm9jZXNzIHRvIGhhdmUKKyAgICAgICAgIyBhIHNpbmdsZSB0aHJlYWQuCisgICAgICAgIGFzc2VydF9weXRob25fb2soJy1jJywgY29kZSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2lnbmFsLCAnc2lnd2FpdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5zaWd3YWl0KCknKQorICAgIGRlZiB0ZXN0X3NpZ3dhaXQoc2VsZik6CisgICAgICAgIHNlbGYud2FpdF9oZWxwZXIoc2lnbmFsLlNJR0FMUk0sICcnJworICAgICAgICBkZWYgdGVzdChzaWdudW0pOgorICAgICAgICAgICAgc2lnbmFsLmFsYXJtKDEpCisgICAgICAgICAgICByZWNlaXZlZCA9IHNpZ25hbC5zaWd3YWl0KFtzaWdudW1dKQorICAgICAgICAgICAgaWYgcmVjZWl2ZWQgIT0gc2lnbnVtOgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigncmVjZWl2ZWQgJXMsIG5vdCAlcycgJSAocmVjZWl2ZWQsIHNpZ251bSkpCisgICAgICAgICcnJykKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2lnbmFsLCAnc2lnd2FpdGluZm8nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbmVlZCBzaWduYWwuc2lnd2FpdGluZm8oKScpCisgICAgZGVmIHRlc3Rfc2lnd2FpdGluZm8oc2VsZik6CisgICAgICAgIHNlbGYud2FpdF9oZWxwZXIoc2lnbmFsLlNJR0FMUk0sICcnJworICAgICAgICBkZWYgdGVzdChzaWdudW0pOgorICAgICAgICAgICAgc2lnbmFsLmFsYXJtKDEpCisgICAgICAgICAgICBpbmZvID0gc2lnbmFsLnNpZ3dhaXRpbmZvKFtzaWdudW1dKQorICAgICAgICAgICAgaWYgaW5mby5zaV9zaWdubyAhPSBzaWdudW06CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJpbmZvLnNpX3NpZ25vICE9ICVzIiAlIHNpZ251bSkKKyAgICAgICAgJycnKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzaWduYWwsICdzaWd0aW1lZHdhaXQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbmVlZCBzaWduYWwuc2lndGltZWR3YWl0KCknKQorICAgIGRlZiB0ZXN0X3NpZ3RpbWVkd2FpdChzZWxmKToKKyAgICAgICAgc2VsZi53YWl0X2hlbHBlcihzaWduYWwuU0lHQUxSTSwgJycnCisgICAgICAgIGRlZiB0ZXN0KHNpZ251bSk6CisgICAgICAgICAgICBzaWduYWwuYWxhcm0oMSkKKyAgICAgICAgICAgIGluZm8gPSBzaWduYWwuc2lndGltZWR3YWl0KFtzaWdudW1dLCAxMC4xMDAwKQorICAgICAgICAgICAgaWYgaW5mby5zaV9zaWdubyAhPSBzaWdudW06CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdpbmZvLnNpX3NpZ25vICE9ICVzJyAlIHNpZ251bSkKKyAgICAgICAgJycnKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzaWduYWwsICdzaWd0aW1lZHdhaXQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbmVlZCBzaWduYWwuc2lndGltZWR3YWl0KCknKQorICAgIGRlZiB0ZXN0X3NpZ3RpbWVkd2FpdF9wb2xsKHNlbGYpOgorICAgICAgICAjIGNoZWNrIHRoYXQgcG9sbGluZyB3aXRoIHNpZ3RpbWVkd2FpdCB3b3JrcworICAgICAgICBzZWxmLndhaXRfaGVscGVyKHNpZ25hbC5TSUdBTFJNLCAnJycKKyAgICAgICAgZGVmIHRlc3Qoc2lnbnVtKToKKyAgICAgICAgICAgIGltcG9ydCBvcworICAgICAgICAgICAgb3Mua2lsbChvcy5nZXRwaWQoKSwgc2lnbnVtKQorICAgICAgICAgICAgaW5mbyA9IHNpZ25hbC5zaWd0aW1lZHdhaXQoW3NpZ251bV0sIDApCisgICAgICAgICAgICBpZiBpbmZvLnNpX3NpZ25vICE9IHNpZ251bToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ2luZm8uc2lfc2lnbm8gIT0gJXMnICUgc2lnbnVtKQorICAgICAgICAnJycpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNpZ25hbCwgJ3NpZ3RpbWVkd2FpdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5zaWd0aW1lZHdhaXQoKScpCisgICAgZGVmIHRlc3Rfc2lndGltZWR3YWl0X3RpbWVvdXQoc2VsZik6CisgICAgICAgIHNlbGYud2FpdF9oZWxwZXIoc2lnbmFsLlNJR0FMUk0sICcnJworICAgICAgICBkZWYgdGVzdChzaWdudW0pOgorICAgICAgICAgICAgcmVjZWl2ZWQgPSBzaWduYWwuc2lndGltZWR3YWl0KFtzaWdudW1dLCAxLjApCisgICAgICAgICAgICBpZiByZWNlaXZlZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oInJlY2VpdmVkPSVyIiAlIChyZWNlaXZlZCwpKQorICAgICAgICAnJycpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNpZ25hbCwgJ3NpZ3RpbWVkd2FpdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5zaWd0aW1lZHdhaXQoKScpCisgICAgZGVmIHRlc3Rfc2lndGltZWR3YWl0X25lZ2F0aXZlX3RpbWVvdXQoc2VsZik6CisgICAgICAgIHNpZ251bSA9IHNpZ25hbC5TSUdBTFJNCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNpZ25hbC5zaWd0aW1lZHdhaXQsIFtzaWdudW1dLCAtMS4wKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzaWduYWwsICdzaWd3YWl0aW5mbycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5zaWd3YWl0aW5mbygpJykKKyAgICBkZWYgdGVzdF9zaWd3YWl0aW5mb19pbnRlcnJ1cHRlZChzZWxmKToKKyAgICAgICAgc2VsZi53YWl0X2hlbHBlcihzaWduYWwuU0lHVVNSMSwgJycnCisgICAgICAgIGRlZiB0ZXN0KHNpZ251bSk6CisgICAgICAgICAgICBpbXBvcnQgZXJybm8KKworICAgICAgICAgICAgaG5kbF9jYWxsZWQgPSBUcnVlCisgICAgICAgICAgICBkZWYgYWxhcm1faGFuZGxlcihzaWdudW0sIGZyYW1lKToKKyAgICAgICAgICAgICAgICBobmRsX2NhbGxlZCA9IEZhbHNlCisKKyAgICAgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR0FMUk0sIGFsYXJtX2hhbmRsZXIpCisgICAgICAgICAgICBzaWduYWwuYWxhcm0oMSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzaWduYWwuc2lnd2FpdGluZm8oW3NpZ25hbC5TSUdVU1IxXSkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FSU5UUjoKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGhuZGxfY2FsbGVkOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJTSUdBTFJNIGhhbmRsZXIgbm90IGNhbGxlZCIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJFeHBlY3RlZCBFSU5UUiB0byBiZSByYWlzZWQgYnkgc2lnd2FpdGluZm8iKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkV4cGVjdGVkIEVJTlRSIHRvIGJlIHJhaXNlZCBieSBzaWd3YWl0aW5mbyIpCisgICAgICAgICcnJykKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2lnbmFsLCAnc2lnd2FpdCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5zaWd3YWl0KCknKQorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2lnbmFsLCAncHRocmVhZF9zaWdtYXNrJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ25lZWQgc2lnbmFsLnB0aHJlYWRfc2lnbWFzaygpJykKKyAgICBAdW5pdHRlc3Quc2tpcElmKHRocmVhZGluZyBpcyBOb25lLCAidGVzdCBuZWVkcyB0aHJlYWRpbmcgbW9kdWxlIikKKyAgICBkZWYgdGVzdF9zaWd3YWl0X3RocmVhZChzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IGNhbGxpbmcgc2lnd2FpdCgpIGZyb20gYSB0aHJlYWQgZG9lc24ndCBzdXNwZW5kIHRoZSB3aG9sZQorICAgICAgICAjIHByb2Nlc3MuIEEgbmV3IGludGVycHJldGVyIGlzIHNwYXduZWQgdG8gYXZvaWQgcHJvYmxlbXMgd2hlbiBtaXhpbmcKKyAgICAgICAgIyB0aHJlYWRzIGFuZCBmb3JrKCk6IG9ubHkgYXN5bmMtc2FmZSBmdW5jdGlvbnMgYXJlIGFsbG93ZWQgYmV0d2VlbgorICAgICAgICAjIGZvcmsoKSBhbmQgZXhlYygpLgorICAgICAgICBhc3NlcnRfcHl0aG9uX29rKCItYyIsICIiImlmIFRydWU6CisgICAgICAgICAgICBpbXBvcnQgb3MsIHRocmVhZGluZywgc3lzLCB0aW1lLCBzaWduYWwKKworICAgICAgICAgICAgIyB0aGUgZGVmYXVsdCBoYW5kbGVyIHRlcm1pbmF0ZXMgdGhlIHByb2Nlc3MKKyAgICAgICAgICAgIHNpZ251bSA9IHNpZ25hbC5TSUdVU1IxCisKKyAgICAgICAgICAgIGRlZiBraWxsX2xhdGVyKCk6CisgICAgICAgICAgICAgICAgIyB3YWl0IHVudGlsIHRoZSBtYWluIHRocmVhZCBpcyB3YWl0aW5nIGluIHNpZ3dhaXQoKQorICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKKyAgICAgICAgICAgICAgICBvcy5raWxsKG9zLmdldHBpZCgpLCBzaWdudW0pCisKKyAgICAgICAgICAgICMgdGhlIHNpZ25hbCBtdXN0IGJlIGJsb2NrZWQgYnkgYWxsIHRoZSB0aHJlYWRzCisgICAgICAgICAgICBzaWduYWwucHRocmVhZF9zaWdtYXNrKHNpZ25hbC5TSUdfQkxPQ0ssIFtzaWdudW1dKQorICAgICAgICAgICAga2lsbGVyID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9a2lsbF9sYXRlcikKKyAgICAgICAgICAgIGtpbGxlci5zdGFydCgpCisgICAgICAgICAgICByZWNlaXZlZCA9IHNpZ25hbC5zaWd3YWl0KFtzaWdudW1dKQorICAgICAgICAgICAgaWYgcmVjZWl2ZWQgIT0gc2lnbnVtOgorICAgICAgICAgICAgICAgIHByaW50KCJzaWd3YWl0KCkgcmVjZWl2ZWQgJXMsIG5vdCAlcyIgJSAocmVjZWl2ZWQsIHNpZ251bSksCisgICAgICAgICAgICAgICAgICAgICAgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCisgICAgICAgICAgICBraWxsZXIuam9pbigpCisgICAgICAgICAgICAjIHVuYmxvY2sgdGhlIHNpZ25hbCwgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiBjbGVhcmVkIGJ5IHNpZ3dhaXQoKQorICAgICAgICAgICAgc2lnbmFsLnB0aHJlYWRfc2lnbWFzayhzaWduYWwuU0lHX1VOQkxPQ0ssIFtzaWdudW1dKQorICAgICAgICAiIiIpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNpZ25hbCwgJ3B0aHJlYWRfc2lnbWFzaycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5wdGhyZWFkX3NpZ21hc2soKScpCisgICAgZGVmIHRlc3RfcHRocmVhZF9zaWdtYXNrX2FyZ3VtZW50cyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzaWduYWwucHRocmVhZF9zaWdtYXNrKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNpZ25hbC5wdGhyZWFkX3NpZ21hc2ssIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2lnbmFsLnB0aHJlYWRfc2lnbWFzaywgMSwgMiwgMykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvciwgc2lnbmFsLnB0aHJlYWRfc2lnbWFzaywgMTcwMCwgW10pCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNpZ25hbCwgJ3B0aHJlYWRfc2lnbWFzaycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5wdGhyZWFkX3NpZ21hc2soKScpCisgICAgZGVmIHRlc3RfcHRocmVhZF9zaWdtYXNrKHNlbGYpOgorICAgICAgICBjb2RlID0gIiIiaWYgMToKKyAgICAgICAgaW1wb3J0IHNpZ25hbAorICAgICAgICBpbXBvcnQgb3M7IGltcG9ydCB0aHJlYWRpbmcKKworICAgICAgICBkZWYgaGFuZGxlcihzaWdudW0sIGZyYW1lKToKKyAgICAgICAgICAgIDEvMAorCisgICAgICAgIGRlZiBraWxsKHNpZ251bSk6CisgICAgICAgICAgICBvcy5raWxsKG9zLmdldHBpZCgpLCBzaWdudW0pCisKKyAgICAgICAgZGVmIHJlYWRfc2lnbWFzaygpOgorICAgICAgICAgICAgcmV0dXJuIHNpZ25hbC5wdGhyZWFkX3NpZ21hc2soc2lnbmFsLlNJR19CTE9DSywgW10pCisKKyAgICAgICAgc2lnbnVtID0gc2lnbmFsLlNJR1VTUjEKKworICAgICAgICAjIEluc3RhbGwgb3VyIHNpZ25hbCBoYW5kbGVyCisgICAgICAgIG9sZF9oYW5kbGVyID0gc2lnbmFsLnNpZ25hbChzaWdudW0sIGhhbmRsZXIpCisKKyAgICAgICAgIyBVbmJsb2NrIFNJR1VTUjEgKGFuZCBjb3B5IHRoZSBvbGQgbWFzaykgdG8gdGVzdCBvdXIgc2lnbmFsIGhhbmRsZXIKKyAgICAgICAgb2xkX21hc2sgPSBzaWduYWwucHRocmVhZF9zaWdtYXNrKHNpZ25hbC5TSUdfVU5CTE9DSywgW3NpZ251bV0pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGtpbGwoc2lnbnVtKQorICAgICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlplcm9EaXZpc2lvbkVycm9yIG5vdCByYWlzZWQiKQorCisgICAgICAgICMgQmxvY2sgYW5kIHRoZW4gcmFpc2UgU0lHVVNSMS4gVGhlIHNpZ25hbCBpcyBibG9ja2VkOiB0aGUgc2lnbmFsCisgICAgICAgICMgaGFuZGxlciBpcyBub3QgY2FsbGVkLCBhbmQgdGhlIHNpZ25hbCBpcyBub3cgcGVuZGluZworICAgICAgICBzaWduYWwucHRocmVhZF9zaWdtYXNrKHNpZ25hbC5TSUdfQkxPQ0ssIFtzaWdudW1dKQorICAgICAgICBraWxsKHNpZ251bSkKKworICAgICAgICAjIENoZWNrIHRoZSBuZXcgbWFzaworICAgICAgICBibG9ja2VkID0gcmVhZF9zaWdtYXNrKCkKKyAgICAgICAgaWYgc2lnbnVtIG5vdCBpbiBibG9ja2VkOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCIlcyBub3QgaW4gJXMiICUgKHNpZ251bSwgYmxvY2tlZCkpCisgICAgICAgIGlmIG9sZF9tYXNrIF4gYmxvY2tlZCAhPSB7c2lnbnVtfToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiJXMgXiAlcyAhPSB7JXN9IiAlIChvbGRfbWFzaywgYmxvY2tlZCwgc2lnbnVtKSkKKworICAgICAgICAjIFVuYmxvY2sgU0lHVVNSMQorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIHVuYmxvY2sgdGhlIHBlbmRpbmcgc2lnbmFsIGNhbGxzIGltbWVkaWF0bHkgdGhlIHNpZ25hbCBoYW5kbGVyCisgICAgICAgICAgICBzaWduYWwucHRocmVhZF9zaWdtYXNrKHNpZ25hbC5TSUdfVU5CTE9DSywgW3NpZ251bV0pCisgICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiWmVyb0RpdmlzaW9uRXJyb3Igbm90IHJhaXNlZCIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGtpbGwoc2lnbnVtKQorICAgICAgICBleGNlcHQgWmVyb0RpdmlzaW9uRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlplcm9EaXZpc2lvbkVycm9yIG5vdCByYWlzZWQiKQorCisgICAgICAgICMgQ2hlY2sgdGhlIG5ldyBtYXNrCisgICAgICAgIHVuYmxvY2tlZCA9IHJlYWRfc2lnbWFzaygpCisgICAgICAgIGlmIHNpZ251bSBpbiB1bmJsb2NrZWQ6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIiVzIGluICVzIiAlIChzaWdudW0sIHVuYmxvY2tlZCkpCisgICAgICAgIGlmIGJsb2NrZWQgXiB1bmJsb2NrZWQgIT0ge3NpZ251bX06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIiVzIF4gJXMgIT0geyVzfSIgJSAoYmxvY2tlZCwgdW5ibG9ja2VkLCBzaWdudW0pKQorICAgICAgICBpZiBvbGRfbWFzayAhPSB1bmJsb2NrZWQ6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIiVzICE9ICVzIiAlIChvbGRfbWFzaywgdW5ibG9ja2VkKSkKKyAgICAgICAgIiIiCisgICAgICAgIGFzc2VydF9weXRob25fb2soJy1jJywgY29kZSkKKworICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLnBsYXRmb3JtID09ICdmcmVlYnNkNicsCisgICAgICAgICJpc3N1ZSAjMTIzOTI6IHNlbmQgYSBzaWduYWwgdG8gdGhlIG1haW4gdGhyZWFkIGRvZXNuJ3Qgd29yayAiCisgICAgICAgICJiZWZvcmUgdGhlIGNyZWF0aW9uIG9mIHRoZSBmaXJzdCB0aHJlYWQgb24gRnJlZUJTRCA2IikKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNpZ25hbCwgJ3B0aHJlYWRfa2lsbCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHNpZ25hbC5wdGhyZWFkX2tpbGwoKScpCisgICAgZGVmIHRlc3RfcHRocmVhZF9raWxsX21haW5fdGhyZWFkKHNlbGYpOgorICAgICAgICAjIFRlc3QgdGhhdCBhIHNpZ25hbCBjYW4gYmUgc2VudCB0byB0aGUgbWFpbiB0aHJlYWQgd2l0aCBwdGhyZWFkX2tpbGwoKQorICAgICAgICAjIGJlZm9yZSBhbnkgb3RoZXIgdGhyZWFkIGhhcyBiZWVuIGNyZWF0ZWQgKHNlZSBpc3N1ZSAjMTIzOTIpLgorICAgICAgICBjb2RlID0gIiIiaWYgVHJ1ZToKKyAgICAgICAgICAgIGltcG9ydCB0aHJlYWRpbmcKKyAgICAgICAgICAgIGltcG9ydCBzaWduYWwKKyAgICAgICAgICAgIGltcG9ydCBzeXMKKworICAgICAgICAgICAgZGVmIGhhbmRsZXIoc2lnbnVtLCBmcmFtZSk6CisgICAgICAgICAgICAgICAgc3lzLmV4aXQoMykKKworICAgICAgICAgICAgc2lnbmFsLnNpZ25hbChzaWduYWwuU0lHVVNSMSwgaGFuZGxlcikKKyAgICAgICAgICAgIHNpZ25hbC5wdGhyZWFkX2tpbGwodGhyZWFkaW5nLmdldF9pZGVudCgpLCBzaWduYWwuU0lHVVNSMSkKKyAgICAgICAgICAgIHN5cy5leGl0KDIpCisgICAgICAgICIiIgorCisgICAgICAgIHdpdGggc3Bhd25fcHl0aG9uKCctYycsIGNvZGUpIGFzIHByb2Nlc3M6CisgICAgICAgICAgICBzdGRvdXQsIHN0ZGVyciA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQorICAgICAgICAgICAgZXhpdGNvZGUgPSBwcm9jZXNzLndhaXQoKQorICAgICAgICAgICAgaWYgZXhpdGNvZGUgIT0gMzoKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNoaWxkIGVycm9yIChleGl0IGNvZGUgJXMpOiAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhpdGNvZGUsIHN0ZG91dCkpCisKKwogZGVmIHRlc3RfbWFpbigpOgogICAgIHRyeToKLSAgICAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoQmFzaWNTaWduYWxUZXN0cywgSW50ZXJQcm9jZXNzU2lnbmFsVGVzdHMsCisgICAgICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KFBvc2l4VGVzdHMsIEludGVyUHJvY2Vzc1NpZ25hbFRlc3RzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXYWtldXBTaWduYWxUZXN0cywgU2lnaW50ZXJydXB0VGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXRpbWVyVGVzdCwgV2luZG93c1NpZ25hbFRlc3RzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJdGltZXJUZXN0LCBXaW5kb3dzU2lnbmFsVGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBlbmRpbmdTaWduYWxzVGVzdHMpCiAgICAgZmluYWxseToKICAgICAgICAgc3VwcG9ydC5yZWFwX2NoaWxkcmVuKCkKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zaXRlLnB5IGIvTGliL3Rlc3QvdGVzdF9zaXRlLnB5CmluZGV4IGJhNDI2NDkuLjI5Mjg2YzcgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc2l0ZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3NpdGUucHkKQEAgLTM5LDYgKzM5LDcgQEAKICAgICAgICAgc2VsZi5vbGRfYmFzZSA9IHNpdGUuVVNFUl9CQVNFCiAgICAgICAgIHNlbGYub2xkX3NpdGUgPSBzaXRlLlVTRVJfU0lURQogICAgICAgICBzZWxmLm9sZF9wcmVmaXhlcyA9IHNpdGUuUFJFRklYRVMKKyAgICAgICAgc2VsZi5vcmlnaW5hbF92YXJzID0gc3lzY29uZmlnLl9DT05GSUdfVkFSUwogICAgICAgICBzZWxmLm9sZF92YXJzID0gY29weShzeXNjb25maWcuX0NPTkZJR19WQVJTKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgpAQCAtNDcsNyArNDgsOSBAQAogICAgICAgICBzaXRlLlVTRVJfQkFTRSA9IHNlbGYub2xkX2Jhc2UKICAgICAgICAgc2l0ZS5VU0VSX1NJVEUgPSBzZWxmLm9sZF9zaXRlCiAgICAgICAgIHNpdGUuUFJFRklYRVMgPSBzZWxmLm9sZF9wcmVmaXhlcwotICAgICAgICBzeXNjb25maWcuX0NPTkZJR19WQVJTID0gc2VsZi5vbGRfdmFycworICAgICAgICBzeXNjb25maWcuX0NPTkZJR19WQVJTID0gc2VsZi5vcmlnaW5hbF92YXJzCisgICAgICAgIHN5c2NvbmZpZy5fQ09ORklHX1ZBUlMuY2xlYXIoKQorICAgICAgICBzeXNjb25maWcuX0NPTkZJR19WQVJTLnVwZGF0ZShzZWxmLm9sZF92YXJzKQogCiAgICAgZGVmIHRlc3RfbWFrZXBhdGgoc2VsZik6CiAgICAgICAgICMgVGVzdCBtYWtlcGF0aCgpIGhhdmUgYW4gYWJzb2x1dGUgcGF0aCBmb3IgaXRzIGZpcnN0IHJldHVybiB2YWx1ZQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zbXRwZC5weSBiL0xpYi90ZXN0L3Rlc3Rfc210cGQucHkKaW5kZXggNjhjY2MyOS4uOTNmMTRjNCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zbXRwZC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3NtdHBkLnB5CkBAIC0xLDQgKzEsNCBAQAotZnJvbSB1bml0dGVzdCBpbXBvcnQgVGVzdENhc2UKK2ltcG9ydCB1bml0dGVzdAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0LCBtb2NrX3NvY2tldAogaW1wb3J0IHNvY2tldAogaW1wb3J0IGlvCkBAIC0yNiw3ICsyNiw3IEBACiAgICAgICAgIHJhaXNlIER1bW15RGlzcGF0Y2hlckJyb2tlbigpCiAKIAotY2xhc3MgU01UUERTZXJ2ZXJUZXN0KFRlc3RDYXNlKToKK2NsYXNzIFNNVFBEU2VydmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzbXRwZC5zb2NrZXQgPSBhc3luY29yZS5zb2NrZXQgPSBtb2NrX3NvY2tldAogCkBAIC0zOSw2ICszOSw3IEBACiAgICAgICAgICAgICBjaGFubmVsLnNvY2tldC5xdWV1ZV9yZWN2KGxpbmUpCiAgICAgICAgICAgICBjaGFubmVsLmhhbmRsZV9yZWFkKCkKIAorICAgICAgICB3cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKICAgICAgICAgd3JpdGVfbGluZShiJ01BSUwgRnJvbTplZ2dzQGV4YW1wbGUnKQogICAgICAgICB3cml0ZV9saW5lKGInUkNQVCBUbzpzcGFtQGV4YW1wbGUnKQogICAgICAgICB3cml0ZV9saW5lKGInREFUQScpCkBAIC00OSw3ICs1MCw3IEBACiAgICAgICAgIGFzeW5jb3JlLnNvY2tldCA9IHNtdHBkLnNvY2tldCA9IHNvY2tldAogCiAKLWNsYXNzIFNNVFBEQ2hhbm5lbFRlc3QoVGVzdENhc2UpOgorY2xhc3MgU01UUERDaGFubmVsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzbXRwZC5zb2NrZXQgPSBhc3luY29yZS5zb2NrZXQgPSBtb2NrX3NvY2tldAogICAgICAgICBzZWxmLm9sZF9kZWJ1Z3N0cmVhbSA9IHNtdHBkLkRFQlVHU1RSRUFNCkBAIC03OCwzMSArNzksOTQgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgYic1MDAgRXJyb3I6IGJhZCBzeW50YXhcclxuJykKIAotICAgIGRlZiB0ZXN0X0VITE9fbm90X2ltcGxlbWVudGVkKHNlbGYpOgotICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidFSExPIHRlc3QuZXhhbXBsZScpCisgICAgZGVmIHRlc3RfRUhMTyhzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjUwIEhFTFBcclxuJykKKworICAgIGRlZiB0ZXN0X0VITE9fYmFkX3N5bnRheChzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgIGInNTAyIEVycm9yOiBjb21tYW5kICJFSExPIiBub3QgaW1wbGVtZW50ZWRcclxuJykKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJzUwMSBTeW50YXg6IEVITE8gaG9zdG5hbWVcclxuJykKKworICAgIGRlZiB0ZXN0X0VITE9fZHVwbGljYXRlKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidFSExPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidFSExPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJzUwMyBEdXBsaWNhdGUgSEVMTy9FSExPXHJcbicpCisKKyAgICBkZWYgdGVzdF9FSExPX0hFTE9fZHVwbGljYXRlKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidFSExPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJzUwMyBEdXBsaWNhdGUgSEVMTy9FSExPXHJcbicpCiAKICAgICBkZWYgdGVzdF9IRUxPKHNlbGYpOgogICAgICAgICBuYW1lID0gc210cGQuc29ja2V0LmdldGZxZG4oKQotICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIHRlc3QuZXhhbXBsZScpCisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTE8gZXhhbXBsZScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICcyNTAge31cclxuJy5mb3JtYXQobmFtZSkuZW5jb2RlKCdhc2NpaScpKQogCisgICAgZGVmIHRlc3RfSEVMT19FSExPX2R1cGxpY2F0ZShzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgYic1MDMgRHVwbGljYXRlIEhFTE8vRUhMT1xyXG4nKQorCisgICAgZGVmIHRlc3RfSEVMUChzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMUCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGInMjUwIFN1cHBvcnRlZCBjb21tYW5kczogRUhMTyBIRUxPIE1BSUwgUkNQVCAnICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGInREFUQSBSU0VUIE5PT1AgUVVJVCBWUkZZXHJcbicpCisKKyAgICBkZWYgdGVzdF9IRUxQX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTFAgTUFJTCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGInMjUwIFN5bnRheDogTUFJTCBGUk9NOiA8YWRkcmVzcz5cclxuJykKKworICAgIGRlZiB0ZXN0X0hFTFBfY29tbWFuZF91bmtub3duKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxQIFNQQU0nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJzUwMSBTdXBwb3J0ZWQgY29tbWFuZHM6IEVITE8gSEVMTyBNQUlMIFJDUFQgJyArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJ0RBVEEgUlNFVCBOT09QIFFVSVQgVlJGWVxyXG4nKQorCiAgICAgZGVmIHRlc3RfSEVMT19iYWRfc3ludGF4KHNlbGYpOgogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgYic1MDEgU3ludGF4OiBIRUxPIGhvc3RuYW1lXHJcbicpCiAKICAgICBkZWYgdGVzdF9IRUxPX2R1cGxpY2F0ZShzZWxmKToKLSAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyB0ZXN0LmV4YW1wbGUnKQotICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIHRlc3QuZXhhbXBsZScpCisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTE8gZXhhbXBsZScpCisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTE8gZXhhbXBsZScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgIGInNTAzIER1cGxpY2F0ZSBIRUxPL0VITE9cclxuJykKIAorICAgIGRlZiB0ZXN0X0hFTE9fcGFyYW1ldGVyX3JlamVjdGVkX3doZW5fZXh0ZW5zaW9uc19ub3RfZW5hYmxlZChzZWxmKToKKyAgICAgICAgc2VsZi5leHRlbmRlZF9zbXRwID0gRmFsc2UKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBmcm9tOjxmb29AZXhhbXBsZS5jb20+IFNJWkU9MTIzNCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGInNTAxIFN5bnRheDogTUFJTCBGUk9NOiA8YWRkcmVzcz5cclxuJykKKworICAgIGRlZiB0ZXN0X01BSUxfYWxsb3dzX3NwYWNlX2FmdGVyX2NvbG9uKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIGZyb206ICAgPGZvb0BleGFtcGxlLmNvbT4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJzI1MCBPS1xyXG4nKQorCisgICAgZGVmIHRlc3RfZXh0ZW5kZWRfTUFJTF9hbGxvd3Nfc3BhY2VfYWZ0ZXJfY29sb24oc2VsZik6CisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0VITE8gZXhhbXBsZScpCisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ01BSUwgZnJvbTogICA8Zm9vQGV4YW1wbGUuY29tPiBzaXplPTIwJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgYicyNTAgT0tcclxuJykKKwogICAgIGRlZiB0ZXN0X05PT1Aoc2VsZik6CiAgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ05PT1AnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT2tcclxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjUwIE9LXHJcbicpCisKKyAgICBkZWYgdGVzdF9IRUxPX05PT1Aoc2VsZik6CisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTE8gZXhhbXBsZScpCisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ05PT1AnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT0tcclxuJykKIAogICAgIGRlZiB0ZXN0X05PT1BfYmFkX3N5bnRheChzZWxmKToKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTk9PUCBoaScpCkBAIC0xMTMsMjYgKzE3Nyw0NyBAQAogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidRVUlUJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjIxIEJ5ZVxyXG4nKQogCisgICAgZGVmIHRlc3RfSEVMT19RVUlUKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidRVUlUJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjIxIEJ5ZVxyXG4nKQorCiAgICAgZGVmIHRlc3RfUVVJVF9hcmdfaWdub3JlZChzZWxmKToKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUVVJVCBieWUgYnllJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjIxIEJ5ZVxyXG4nKQogCiAgICAgZGVmIHRlc3RfYmFkX3N0YXRlKHNlbGYpOgogICAgICAgICBzZWxmLmNoYW5uZWwuc210cF9zdGF0ZSA9ICdCQUQgU1RBVEUnCi0gICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTE8nKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICBiJzQ1MSBJbnRlcm5hbCBjb25mdXNpb25cclxuJykKIAogICAgIGRlZiB0ZXN0X2NvbW1hbmRfdG9vX2xvbmcoc2VsZik6Ci0gICAgICAgIHNlbGYud3JpdGVfbGluZShiJ01BSUwgZnJvbSAnICsKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBmcm9tOiAnICsKICAgICAgICAgICAgICAgICAgICAgICAgIGInYScgKiBzZWxmLmNoYW5uZWwuY29tbWFuZF9zaXplX2xpbWl0ICsKICAgICAgICAgICAgICAgICAgICAgICAgIGInQGV4YW1wbGUnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICBiJzUwMCBFcnJvcjogbGluZSB0b28gbG9uZ1xyXG4nKQogCi0gICAgZGVmIHRlc3RfZGF0YV90b29fbG9uZyhzZWxmKToKLSAgICAgICAgIyBTbWFsbCBoYWNrLiBTZXR0aW5nIGxpbWl0IHRvIDJLIG9jdGV0cyBoZXJlIHdpbGwgc2F2ZSB1cyBzb21lIHRpbWUuCi0gICAgICAgIHNlbGYuY2hhbm5lbC5kYXRhX3NpemVfbGltaXQgPSAyMDQ4CisgICAgZGVmIHRlc3RfTUFJTF9jb21tYW5kX2xpbWl0X2V4dGVuZGVkX3dpdGhfU0laRShzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgZmlsbF9sZW4gPSBzZWxmLmNoYW5uZWwuY29tbWFuZF9zaXplX2xpbWl0IC0gbGVuKCdNQUlMIGZyb206PEBleGFtcGxlPicpCisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ01BSUwgZnJvbTo8JyArCisgICAgICAgICAgICAgICAgICAgICAgICBiJ2EnICogZmlsbF9sZW4gKworICAgICAgICAgICAgICAgICAgICAgICAgYidAZXhhbXBsZT4gU0laRT0xMjM0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjUwIE9LXHJcbicpCisKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBmcm9tOjwnICsKKyAgICAgICAgICAgICAgICAgICAgICAgIGInYScgKiAoZmlsbF9sZW4gKyAyNikgKworICAgICAgICAgICAgICAgICAgICAgICAgYidAZXhhbXBsZT4gU0laRT0xMjM0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgYic1MDAgRXJyb3I6IGxpbmUgdG9vIGxvbmdcclxuJykKKworICAgIGRlZiB0ZXN0X2RhdGFfbG9uZ2VyX3RoYW5fZGVmYXVsdF9kYXRhX3NpemVfbGltaXQoc2VsZik6CisgICAgICAgICMgSGFjayB0aGUgZGVmYXVsdCBzbyB3ZSBkb24ndCBoYXZlIHRvIGdlbmVyYXRlIHNvIG11Y2ggZGF0YS4KKyAgICAgICAgc2VsZi5jaGFubmVsLmRhdGFfc2l6ZV9saW1pdCA9IDEwNDgKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGcm9tOmVnZ3NAZXhhbXBsZScpCiAgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ1JDUFQgVG86c3BhbUBleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInREFUQScpCkBAIC0xNDEsNjQgKzIyNiwxODMgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgYic1NTIgRXJyb3I6IFRvbyBtdWNoIG1haWwgZGF0YVxyXG4nKQogCisgICAgZGVmIHRlc3RfTUFJTF9zaXplX3BhcmFtZXRlcihzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGUk9NOjxlZ2dzQGV4YW1wbGU+IFNJWkU9NTEyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgYicyNTAgT0tcclxuJykKKworICAgIGRlZiB0ZXN0X01BSUxfaW52YWxpZF9zaXplX3BhcmFtZXRlcihzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGUk9NOjxlZ2dzQGV4YW1wbGU+IFNJWkU9aW52YWxpZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgYic1MDEgU3ludGF4OiBNQUlMIEZST006IDxhZGRyZXNzPiBbU1AgPG1haWwtcGFyYW1ldGVycz5dXHJcbicpCisKKyAgICBkZWYgdGVzdF9NQUlMX1JDUFRfdW5rbm93bl9wYXJhbWV0ZXJzKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidFSExPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIEZST006PGVnZ3NAZXhhbXBsZT4gaGFtPWdyZWVuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCisgICAgICAgICAgICBiJzU1NSBNQUlMIEZST00gcGFyYW1ldGVycyBub3QgcmVjb2duaXplZCBvciBub3QgaW1wbGVtZW50ZWRcclxuJykKKworICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIEZST006PGVnZ3NAZXhhbXBsZT4nKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidSQ1BUIFRPOjxlZ2dzQGV4YW1wbGU+IGhhbT1ncmVlbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgYic1NTUgUkNQVCBUTyBwYXJhbWV0ZXJzIG5vdCByZWNvZ25pemVkIG9yIG5vdCBpbXBsZW1lbnRlZFxyXG4nKQorCisgICAgZGVmIHRlc3RfTUFJTF9zaXplX3BhcmFtZXRlcl9sYXJnZXJfdGhhbl9kZWZhdWx0X2RhdGFfc2l6ZV9saW1pdChzZWxmKToKKyAgICAgICAgc2VsZi5jaGFubmVsLmRhdGFfc2l6ZV9saW1pdCA9IDEwNDgKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGUk9NOjxlZ2dzQGV4YW1wbGU+IFNJWkU9MjA5NicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgYic1NTIgRXJyb3I6IG1lc3NhZ2Ugc2l6ZSBleGNlZWRzIGZpeGVkIG1heGltdW0gbWVzc2FnZSBzaXplXHJcbicpCisKICAgICBkZWYgdGVzdF9uZWVkX01BSUwoc2VsZik6CisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTE8gZXhhbXBsZScpCiAgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ1JDUFQgdG86c3BhbUBleGFtcGxlJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCiAgICAgICAgICAgICBiJzUwMyBFcnJvcjogbmVlZCBNQUlMIGNvbW1hbmRcclxuJykKIAotICAgIGRlZiB0ZXN0X01BSUxfc3ludGF4KHNlbGYpOgorICAgIGRlZiB0ZXN0X01BSUxfc3ludGF4X0hFTE8oc2VsZik6CisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTE8gZXhhbXBsZScpCiAgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ01BSUwgZnJvbSBlZ2dzQGV4YW1wbGUnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKLSAgICAgICAgICAgIGInNTAxIFN5bnRheDogTUFJTCBGUk9NOjxhZGRyZXNzPlxyXG4nKQorICAgICAgICAgICAgYic1MDEgU3ludGF4OiBNQUlMIEZST006IDxhZGRyZXNzPlxyXG4nKQogCi0gICAgZGVmIHRlc3RfTUFJTF9taXNzaW5nX2Zyb20oc2VsZik6CisgICAgZGVmIHRlc3RfTUFJTF9zeW50YXhfRUhMTyhzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBmcm9tIGVnZ3NAZXhhbXBsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgYic1MDEgU3ludGF4OiBNQUlMIEZST006IDxhZGRyZXNzPiBbU1AgPG1haWwtcGFyYW1ldGVycz5dXHJcbicpCisKKyAgICBkZWYgdGVzdF9NQUlMX21pc3NpbmdfYWRkcmVzcyhzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBmcm9tOicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAotICAgICAgICAgICAgYic1MDEgU3ludGF4OiBNQUlMIEZST006PGFkZHJlc3M+XHJcbicpCisgICAgICAgICAgICBiJzUwMSBTeW50YXg6IE1BSUwgRlJPTTogPGFkZHJlc3M+XHJcbicpCiAKICAgICBkZWYgdGVzdF9NQUlMX2NoZXZyb25zKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIGZyb206PGVnZ3NAZXhhbXBsZT4nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT2tcclxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjUwIE9LXHJcbicpCisKKyAgICBkZWYgdGVzdF9NQUlMX2VtcHR5X2NoZXZyb25zKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidFSExPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIGZyb206PD4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT0tcclxuJykKKworICAgIGRlZiB0ZXN0X01BSUxfcXVvdGVkX2xvY2FscGFydChzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBmcm9tOiA8IkZyZWQgQmxvZ3MiQGV4YW1wbGUuY29tPicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzI1MCBPS1xyXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5tYWlsZnJvbSwgJyJGcmVkIEJsb2dzIkBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9NQUlMX3F1b3RlZF9sb2NhbHBhcnRfbm9fYW5nbGVzKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidFSExPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIGZyb206ICJGcmVkIEJsb2dzIkBleGFtcGxlLmNvbScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzI1MCBPS1xyXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5tYWlsZnJvbSwgJyJGcmVkIEJsb2dzIkBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9NQUlMX3F1b3RlZF9sb2NhbHBhcnRfd2l0aF9zaXplKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidFSExPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIGZyb206IDwiRnJlZCBCbG9ncyJAZXhhbXBsZS5jb20+IFNJWkU9MTAwMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzI1MCBPS1xyXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5tYWlsZnJvbSwgJyJGcmVkIEJsb2dzIkBleGFtcGxlLmNvbScpCisKKyAgICBkZWYgdGVzdF9NQUlMX3F1b3RlZF9sb2NhbHBhcnRfd2l0aF9zaXplX25vX2FuZ2xlcyhzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBmcm9tOiAiRnJlZCBCbG9ncyJAZXhhbXBsZS5jb20gU0laRT0xMDAwJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjUwIE9LXHJcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLm1haWxmcm9tLCAnIkZyZWQgQmxvZ3MiQGV4YW1wbGUuY29tJykKIAogICAgIGRlZiB0ZXN0X25lc3RlZF9NQUlMKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIGZyb206ZWdnc0BleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBmcm9tOnNwYW1AZXhhbXBsZScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAogICAgICAgICAgICAgYic1MDMgRXJyb3I6IG5lc3RlZCBNQUlMIGNvbW1hbmRcclxuJykKIAorICAgIGRlZiB0ZXN0X1ZSRlkoc2VsZik6CisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ1ZSRlkgZWdnc0BleGFtcGxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCisgICAgICAgICAgICBiJzI1MiBDYW5ub3QgVlJGWSB1c2VyLCBidXQgd2lsbCBhY2NlcHQgbWVzc2FnZSBhbmQgYXR0ZW1wdCAnICsgXAorICAgICAgICAgICAgYidkZWxpdmVyeVxyXG4nKQorCisgICAgZGVmIHRlc3RfVlJGWV9zeW50YXgoc2VsZik6CisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ1ZSRlknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgIGInNTAxIFN5bnRheDogVlJGWSA8YWRkcmVzcz5cclxuJykKKworICAgIGRlZiB0ZXN0X0VYUE5fbm90X2ltcGxlbWVudGVkKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidFWFBOJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCisgICAgICAgICAgICBiJzUwMiBFWFBOIG5vdCBpbXBsZW1lbnRlZFxyXG4nKQorCisgICAgZGVmIHRlc3Rfbm9fSEVMT19NQUlMKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIGZyb206PGZvb0BleGFtcGxlLmNvbT4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJzUwMyBFcnJvcjogc2VuZCBIRUxPIGZpcnN0XHJcbicpCisKICAgICBkZWYgdGVzdF9uZWVkX1JDUFQoc2VsZik6CisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTE8gZXhhbXBsZScpCiAgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ01BSUwgRnJvbTplZ2dzQGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidEQVRBJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCiAgICAgICAgICAgICBiJzUwMyBFcnJvcjogbmVlZCBSQ1BUIGNvbW1hbmRcclxuJykKIAotICAgIGRlZiB0ZXN0X1JDUFRfc3ludGF4KHNlbGYpOgotICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIEZyb206ZWdnc0BleGFtcGxlJykKKyAgICBkZWYgdGVzdF9SQ1BUX3N5bnRheF9IRUxPKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIEZyb206IGVnZ3NAZXhhbXBsZScpCiAgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ1JDUFQgdG8gZWdnc0BleGFtcGxlJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsCiAgICAgICAgICAgICBiJzUwMSBTeW50YXg6IFJDUFQgVE86IDxhZGRyZXNzPlxyXG4nKQogCisgICAgZGVmIHRlc3RfUkNQVF9zeW50YXhfRUhMTyhzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInRUhMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGcm9tOiBlZ2dzQGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidSQ1BUIHRvIGVnZ3NAZXhhbXBsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgYic1MDEgU3ludGF4OiBSQ1BUIFRPOiA8YWRkcmVzcz4gW1NQIDxtYWlsLXBhcmFtZXRlcnM+XVxyXG4nKQorCisgICAgZGVmIHRlc3RfUkNQVF9sb3dlcmNhc2VfdG9fT0soc2VsZik6CisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0hFTE8gZXhhbXBsZScpCisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ01BSUwgRnJvbTogZWdnc0BleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUkNQVCB0bzogPGVnZ3NAZXhhbXBsZT4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT0tcclxuJykKKworICAgIGRlZiB0ZXN0X25vX0hFTE9fUkNQVChzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUkNQVCB0byBlZ2dzQGV4YW1wbGUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJzUwMyBFcnJvcjogc2VuZCBIRUxPIGZpcnN0XHJcbicpCisKICAgICBkZWYgdGVzdF9kYXRhX2RpYWxvZyhzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGcm9tOmVnZ3NAZXhhbXBsZScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzI1MCBPa1xyXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT0tcclxuJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUkNQVCBUbzpzcGFtQGV4YW1wbGUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT2tcclxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjUwIE9LXHJcbicpCiAKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInREFUQScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAogICAgICAgICAgICAgYiczNTQgRW5kIGRhdGEgd2l0aCA8Q1I+PExGPi48Q1I+PExGPlxyXG4nKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidkYXRhXHJcbm1vcmVcclxuLicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzI1MCBPa1xyXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT0tcclxuJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNlcnZlci5tZXNzYWdlcywKICAgICAgICAgICAgIFsoJ3BlZXInLCAnZWdnc0BleGFtcGxlJywgWydzcGFtQGV4YW1wbGUnXSwgJ2RhdGFcbm1vcmUnKV0pCiAKICAgICBkZWYgdGVzdF9EQVRBX3N5bnRheChzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGcm9tOmVnZ3NAZXhhbXBsZScpCiAgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ1JDUFQgVG86c3BhbUBleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInREFUQSBzcGFtJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInNTAxIFN5bnRheDogREFUQVxyXG4nKQogCisgICAgZGVmIHRlc3Rfbm9fSEVMT19EQVRBKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidEQVRBIHNwYW0nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJzUwMyBFcnJvcjogc2VuZCBIRUxPIGZpcnN0XHJcbicpCisKICAgICBkZWYgdGVzdF9kYXRhX3RyYW5zcGFyZW5jeV9zZWN0aW9uXzRfNV8yKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIEZyb206ZWdnc0BleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUkNQVCBUbzpzcGFtQGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidEQVRBJykKQEAgLTIwNiw2ICs0MTAsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5yZWNlaXZlZF9kYXRhLCAnLicpCiAKICAgICBkZWYgdGVzdF9tdWx0aXBsZV9SQ1BUKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIEZyb206ZWdnc0BleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUkNQVCBUbzpzcGFtQGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidSQ1BUIFRvOmhhbUBleGFtcGxlJykKQEAgLTIxNiw2ICs0MjEsNyBAQAogCiAgICAgZGVmIHRlc3RfbWFudWFsX3N0YXR1cyhzZWxmKToKICAgICAgICAgIyBjaGVja3MgdGhhdCB0aGUgQ2hhbm5lbCBpcyBhYmxlIHRvIHJldHVybiBhIGN1c3RvbSBzdGF0dXMgbWVzc2FnZQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIEZyb206ZWdnc0BleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUkNQVCBUbzpzcGFtQGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidEQVRBJykKQEAgLTIyMywxMCArNDI5LDExIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzI1MCBPa2lzaFxyXG4nKQogCiAgICAgZGVmIHRlc3RfUlNFVChzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGcm9tOmVnZ3NAZXhhbXBsZScpCiAgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ1JDUFQgVG86c3BhbUBleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUlNFVCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzI1MCBPa1xyXG4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT0tcclxuJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGcm9tOmZvb0BleGFtcGxlJykKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUkNQVCBUbzplZ2dzQGV4YW1wbGUnKQogICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidEQVRBJykKQEAgLTIzNCw1OCArNDQxLDExNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2VydmVyLm1lc3NhZ2VzLAogICAgICAgICAgICAgWygncGVlcicsICdmb29AZXhhbXBsZScsIFsnZWdnc0BleGFtcGxlJ10sICdkYXRhJyldKQogCisgICAgZGVmIHRlc3RfSEVMT19SU0VUKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidSU0VUJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjUwIE9LXHJcbicpCisKICAgICBkZWYgdGVzdF9SU0VUX3N5bnRheChzZWxmKToKICAgICAgICAgc2VsZi53cml0ZV9saW5lKGInUlNFVCBoaScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzUwMSBTeW50YXg6IFJTRVRcclxuJykKIAorICAgIGRlZiB0ZXN0X3Vua25vd25fY29tbWFuZChzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInVU5LTk9XTl9DTUQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJzUwMCBFcnJvcjogY29tbWFuZCAiVU5LTk9XTl9DTUQiIG5vdCAnICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgIGIncmVjb2duaXplZFxyXG4nKQorCiAgICAgZGVmIHRlc3RfYXR0cmlidXRlX2RlcHJlY2F0aW9ucyhzZWxmKToKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNwYW0gPSBzZWxmLmNoYW5uZWwuX1NNVFBDaGFubmVsX19zZXJ2ZXIKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNlbGYuY2hhbm5lbC5fU01UUENoYW5uZWxfX3NlcnZlciA9ICdzcGFtJwotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgc3BhbSA9IHNlbGYuY2hhbm5lbC5fU01UUENoYW5uZWxfX2xpbmUKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNlbGYuY2hhbm5lbC5fU01UUENoYW5uZWxfX2xpbmUgPSAnc3BhbScKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNwYW0gPSBzZWxmLmNoYW5uZWwuX1NNVFBDaGFubmVsX19zdGF0ZQotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgc2VsZi5jaGFubmVsLl9TTVRQQ2hhbm5lbF9fc3RhdGUgPSAnc3BhbScKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNwYW0gPSBzZWxmLmNoYW5uZWwuX1NNVFBDaGFubmVsX19ncmVldGluZwotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgc2VsZi5jaGFubmVsLl9TTVRQQ2hhbm5lbF9fZ3JlZXRpbmcgPSAnc3BhbScKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNwYW0gPSBzZWxmLmNoYW5uZWwuX1NNVFBDaGFubmVsX19tYWlsZnJvbQotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgc2VsZi5jaGFubmVsLl9TTVRQQ2hhbm5lbF9fbWFpbGZyb20gPSAnc3BhbScKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNwYW0gPSBzZWxmLmNoYW5uZWwuX1NNVFBDaGFubmVsX19yY3B0dG9zCi0gICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcpKToKKyAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgRGVwcmVjYXRpb25XYXJuaW5nKSk6CiAgICAgICAgICAgICBzZWxmLmNoYW5uZWwuX1NNVFBDaGFubmVsX19yY3B0dG9zID0gJ3NwYW0nCi0gICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcpKToKKyAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgRGVwcmVjYXRpb25XYXJuaW5nKSk6CiAgICAgICAgICAgICBzcGFtID0gc2VsZi5jaGFubmVsLl9TTVRQQ2hhbm5lbF9fZGF0YQotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgc2VsZi5jaGFubmVsLl9TTVRQQ2hhbm5lbF9fZGF0YSA9ICdzcGFtJwotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgc3BhbSA9IHNlbGYuY2hhbm5lbC5fU01UUENoYW5uZWxfX2ZxZG4KLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNlbGYuY2hhbm5lbC5fU01UUENoYW5uZWxfX2ZxZG4gPSAnc3BhbScKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNwYW0gPSBzZWxmLmNoYW5uZWwuX1NNVFBDaGFubmVsX19wZWVyCi0gICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcpKToKKyAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgRGVwcmVjYXRpb25XYXJuaW5nKSk6CiAgICAgICAgICAgICBzZWxmLmNoYW5uZWwuX1NNVFBDaGFubmVsX19wZWVyID0gJ3NwYW0nCi0gICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcpKToKKyAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgRGVwcmVjYXRpb25XYXJuaW5nKSk6CiAgICAgICAgICAgICBzcGFtID0gc2VsZi5jaGFubmVsLl9TTVRQQ2hhbm5lbF9fY29ubgotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgc2VsZi5jaGFubmVsLl9TTVRQQ2hhbm5lbF9fY29ubiA9ICdzcGFtJwotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygoJycsIERlcHJlY2F0aW9uV2FybmluZykpOgogICAgICAgICAgICAgc3BhbSA9IHNlbGYuY2hhbm5lbC5fU01UUENoYW5uZWxfX2FkZHIKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCgnJywgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNlbGYuY2hhbm5lbC5fU01UUENoYW5uZWxfX2FkZHIgPSAnc3BhbScKIAotZGVmIHRlc3RfbWFpbigpOgotICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KFNNVFBEU2VydmVyVGVzdCwgU01UUERDaGFubmVsVGVzdCkKKworY2xhc3MgU01UUERDaGFubmVsV2l0aERhdGFTaXplTGltaXRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc210cGQuc29ja2V0ID0gYXN5bmNvcmUuc29ja2V0ID0gbW9ja19zb2NrZXQKKyAgICAgICAgc2VsZi5vbGRfZGVidWdzdHJlYW0gPSBzbXRwZC5ERUJVR1NUUkVBTQorICAgICAgICBzZWxmLmRlYnVnID0gc210cGQuREVCVUdTVFJFQU0gPSBpby5TdHJpbmdJTygpCisgICAgICAgIHNlbGYuc2VydmVyID0gRHVtbXlTZXJ2ZXIoJ2EnLCAnYicpCisgICAgICAgIGNvbm4sIGFkZHIgPSBzZWxmLnNlcnZlci5hY2NlcHQoKQorICAgICAgICAjIFNldCBEQVRBIHNpemUgbGltaXQgdG8gMzIgYnl0ZXMgZm9yIGVhc3kgdGVzdGluZworICAgICAgICBzZWxmLmNoYW5uZWwgPSBzbXRwZC5TTVRQQ2hhbm5lbChzZWxmLnNlcnZlciwgY29ubiwgYWRkciwgMzIpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGFzeW5jb3JlLmNsb3NlX2FsbCgpCisgICAgICAgIGFzeW5jb3JlLnNvY2tldCA9IHNtdHBkLnNvY2tldCA9IHNvY2tldAorICAgICAgICBzbXRwZC5ERUJVR1NUUkVBTSA9IHNlbGYub2xkX2RlYnVnc3RyZWFtCisKKyAgICBkZWYgd3JpdGVfbGluZShzZWxmLCBsaW5lKToKKyAgICAgICAgc2VsZi5jaGFubmVsLnNvY2tldC5xdWV1ZV9yZWN2KGxpbmUpCisgICAgICAgIHNlbGYuY2hhbm5lbC5oYW5kbGVfcmVhZCgpCisKKyAgICBkZWYgdGVzdF9kYXRhX2xpbWl0X2RpYWxvZyhzZWxmKToKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInSEVMTyBleGFtcGxlJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInTUFJTCBGcm9tOmVnZ3NAZXhhbXBsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzI1MCBPS1xyXG4nKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidSQ1BUIFRvOnNwYW1AZXhhbXBsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LCBiJzI1MCBPS1xyXG4nKQorCisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ0RBVEEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwKKyAgICAgICAgICAgIGInMzU0IEVuZCBkYXRhIHdpdGggPENSPjxMRj4uPENSPjxMRj5cclxuJykKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInZGF0YVxyXG5tb3JlXHJcbi4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2hhbm5lbC5zb2NrZXQubGFzdCwgYicyNTAgT0tcclxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNlcnZlci5tZXNzYWdlcywKKyAgICAgICAgICAgIFsoJ3BlZXInLCAnZWdnc0BleGFtcGxlJywgWydzcGFtQGV4YW1wbGUnXSwgJ2RhdGFcbm1vcmUnKV0pCisKKyAgICBkZWYgdGVzdF9kYXRhX2xpbWl0X2RpYWxvZ190b29fbXVjaF9kYXRhKHNlbGYpOgorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidIRUxPIGV4YW1wbGUnKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidNQUlMIEZyb206ZWdnc0BleGFtcGxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjUwIE9LXHJcbicpCisgICAgICAgIHNlbGYud3JpdGVfbGluZShiJ1JDUFQgVG86c3BhbUBleGFtcGxlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNoYW5uZWwuc29ja2V0Lmxhc3QsIGInMjUwIE9LXHJcbicpCisKKyAgICAgICAgc2VsZi53cml0ZV9saW5lKGInREFUQScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgYiczNTQgRW5kIGRhdGEgd2l0aCA8Q1I+PExGPi48Q1I+PExGPlxyXG4nKQorICAgICAgICBzZWxmLndyaXRlX2xpbmUoYidUaGlzIG1lc3NhZ2UgaXMgbG9uZ2VyIHRoYW4gMzIgYnl0ZXNcclxuLicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jaGFubmVsLnNvY2tldC5sYXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgIGInNTUyIEVycm9yOiBUb28gbXVjaCBtYWlsIGRhdGFcclxuJykKKwogCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgIHRlc3RfbWFpbigpCisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NtdHBsaWIucHkgYi9MaWIvdGVzdC90ZXN0X3NtdHBsaWIucHkKaW5kZXggMmNiMGQxYS4uYmVmYzQ5ZSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zbXRwbGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc210cGxpYi5weQpAQCAtOSw2ICs5LDcgQEAKIGltcG9ydCBzeXMKIGltcG9ydCB0aW1lCiBpbXBvcnQgc2VsZWN0CitpbXBvcnQgZXJybm8KIAogaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQsIG1vY2tfc29ja2V0CkBAIC03Miw2ICs3MywxNCBAQAogICAgICAgICBzbXRwID0gc210cGxpYi5TTVRQKEhPU1QsIHNlbGYucG9ydCkKICAgICAgICAgc210cC5jbG9zZSgpCiAKKyAgICBkZWYgdGVzdFNvdXJjZUFkZHJlc3Moc2VsZik6CisgICAgICAgIG1vY2tfc29ja2V0LnJlcGx5X3dpdGgoYiIyMjAgSG9sYSBtdW5kbyIpCisgICAgICAgICMgY29ubmVjdHMKKyAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUChIT1NULCBzZWxmLnBvcnQsCisgICAgICAgICAgICAgICAgc291cmNlX2FkZHJlc3M9KCcxMjcuMC4wLjEnLDE5ODc2KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzbXRwLnNvdXJjZV9hZGRyZXNzLCAoJzEyNy4wLjAuMScsIDE5ODc2KSkKKyAgICAgICAgc210cC5jbG9zZSgpCisKICAgICBkZWYgdGVzdEJhc2ljMihzZWxmKToKICAgICAgICAgbW9ja19zb2NrZXQucmVwbHlfd2l0aChiIjIyMCBIb2xhIG11bmRvIikKICAgICAgICAgIyBjb25uZWN0cywgaW5jbHVkZSBwb3J0IGluIGhvc3QgbmFtZQpAQCAtMjA0LDE1ICsyMTMsMjkgQEAKICAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUChIT1NULCBzZWxmLnBvcnQsIGxvY2FsX2hvc3RuYW1lPSdsb2NhbGhvc3QnLCB0aW1lb3V0PTMpCiAgICAgICAgIHNtdHAucXVpdCgpCiAKKyAgICBkZWYgdGVzdFNvdXJjZUFkZHJlc3Moc2VsZik6CisgICAgICAgICMgY29ubmVjdAorICAgICAgICBwb3J0ID0gc3VwcG9ydC5maW5kX3VudXNlZF9wb3J0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUChIT1NULCBzZWxmLnBvcnQsIGxvY2FsX2hvc3RuYW1lPSdsb2NhbGhvc3QnLAorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PTMsIHNvdXJjZV9hZGRyZXNzPSgnMTI3LjAuMC4xJywgcG9ydCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNtdHAuc291cmNlX2FkZHJlc3MsICgnMTI3LjAuMC4xJywgcG9ydCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNtdHAubG9jYWxfaG9zdG5hbWUsICdsb2NhbGhvc3QnKQorICAgICAgICAgICAgc210cC5xdWl0KCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gPT0gZXJybm8uRUFERFJJTlVTRToKKyAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJjb3VsZG4ndCBiaW5kIHRvIHBvcnQgJWQiICUgcG9ydCkKKyAgICAgICAgICAgIHJhaXNlCisKICAgICBkZWYgdGVzdE5PT1Aoc2VsZik6CiAgICAgICAgIHNtdHAgPSBzbXRwbGliLlNNVFAoSE9TVCwgc2VsZi5wb3J0LCBsb2NhbF9ob3N0bmFtZT0nbG9jYWxob3N0JywgdGltZW91dD0zKQotICAgICAgICBleHBlY3RlZCA9ICgyNTAsIGInT2snKQorICAgICAgICBleHBlY3RlZCA9ICgyNTAsIGInT0snKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNtdHAubm9vcCgpLCBleHBlY3RlZCkKICAgICAgICAgc210cC5xdWl0KCkKIAogICAgIGRlZiB0ZXN0UlNFVChzZWxmKToKICAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUChIT1NULCBzZWxmLnBvcnQsIGxvY2FsX2hvc3RuYW1lPSdsb2NhbGhvc3QnLCB0aW1lb3V0PTMpCi0gICAgICAgIGV4cGVjdGVkID0gKDI1MCwgYidPaycpCisgICAgICAgIGV4cGVjdGVkID0gKDI1MCwgYidPSycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc210cC5yc2V0KCksIGV4cGVjdGVkKQogICAgICAgICBzbXRwLnF1aXQoKQogCkBAIC0yMjMsMTAgKzI0NiwxOCBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNtdHAuZWhsbygpLCBleHBlY3RlZCkKICAgICAgICAgc210cC5xdWl0KCkKIAotICAgIGRlZiB0ZXN0VlJGWShzZWxmKToKLSAgICAgICAgIyBWUkZZIGlzbid0IGltcGxlbWVudGVkIGluIERlYnVnZ2luZ1NlcnZlcgorICAgIGRlZiB0ZXN0Tm90SW1wbGVtZW50ZWQoc2VsZik6CisgICAgICAgICMgRVhQTiBpc24ndCBpbXBsZW1lbnRlZCBpbiBEZWJ1Z2dpbmdTZXJ2ZXIKICAgICAgICAgc210cCA9IHNtdHBsaWIuU01UUChIT1NULCBzZWxmLnBvcnQsIGxvY2FsX2hvc3RuYW1lPSdsb2NhbGhvc3QnLCB0aW1lb3V0PTMpCi0gICAgICAgIGV4cGVjdGVkID0gKDUwMiwgYidFcnJvcjogY29tbWFuZCAiVlJGWSIgbm90IGltcGxlbWVudGVkJykKKyAgICAgICAgZXhwZWN0ZWQgPSAoNTAyLCBiJ0VYUE4gbm90IGltcGxlbWVudGVkJykKKyAgICAgICAgc210cC5wdXRjbWQoJ0VYUE4nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNtdHAuZ2V0cmVwbHkoKSwgZXhwZWN0ZWQpCisgICAgICAgIHNtdHAucXVpdCgpCisKKyAgICBkZWYgdGVzdFZSRlkoc2VsZik6CisgICAgICAgIHNtdHAgPSBzbXRwbGliLlNNVFAoSE9TVCwgc2VsZi5wb3J0LCBsb2NhbF9ob3N0bmFtZT0nbG9jYWxob3N0JywgdGltZW91dD0zKQorICAgICAgICBleHBlY3RlZCA9ICgyNTIsIGInQ2Fubm90IFZSRlkgdXNlciwgYnV0IHdpbGwgYWNjZXB0IG1lc3NhZ2UgJyArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiJ2FuZCBhdHRlbXB0IGRlbGl2ZXJ5JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzbXRwLnZyZnkoJ25vYm9keUBub3doZXJlLmNvbScpLCBleHBlY3RlZCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzbXRwLnZlcmlmeSgnbm9ib2R5QG5vd2hlcmUuY29tJyksIGV4cGVjdGVkKQogICAgICAgICBzbXRwLnF1aXQoKQpAQCAtMjQyLDcgKzI3Myw4IEBACiAKICAgICBkZWYgdGVzdEhFTFAoc2VsZik6CiAgICAgICAgIHNtdHAgPSBzbXRwbGliLlNNVFAoSE9TVCwgc2VsZi5wb3J0LCBsb2NhbF9ob3N0bmFtZT0nbG9jYWxob3N0JywgdGltZW91dD0zKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNtdHAuaGVscCgpLCBiJ0Vycm9yOiBjb21tYW5kICJIRUxQIiBub3QgaW1wbGVtZW50ZWQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNtdHAuaGVscCgpLCBiJ1N1cHBvcnRlZCBjb21tYW5kczogRUhMTyBIRUxPIE1BSUwgJyArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYidSQ1BUIERBVEEgUlNFVCBOT09QIFFVSVQgVlJGWScpCiAgICAgICAgIHNtdHAucXVpdCgpCiAKICAgICBkZWYgdGVzdFNlbmQoc2VsZik6CkBAIC01NjAsNiArNTkyLDkgQEAKICMgU2ltdWxhdGVkIFNNVFAgY2hhbm5lbCAmIHNlcnZlcgogY2xhc3MgU2ltU01UUENoYW5uZWwoc210cGQuU01UUENoYW5uZWwpOgogCisgICAgIyBGb3IgdGVzdGluZyBmYWlsdXJlcyBpbiBRVUlUIHdoZW4gdXNpbmcgdGhlIGNvbnRleHQgbWFuYWdlciBBUEkuCisgICAgcXVpdF9yZXNwb25zZSA9IE5vbmUKKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleHRyYV9mZWF0dXJlcywgKmFyZ3MsICoqa3cpOgogICAgICAgICBzZWxmLl9leHRyYWZlYXR1cmVzID0gJycuam9pbigKICAgICAgICAgICAgIFsgIjI1MC17MH1cclxuIi5mb3JtYXQoeCkgZm9yIHggaW4gZXh0cmFfZmVhdHVyZXMgXSkKQEAgLTYxMCwxOSArNjQ1LDMxIEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLnB1c2goJzU1MCBObyBhY2Nlc3MgZm9yIHlvdSEnKQogCisgICAgZGVmIHNtdHBfUVVJVChzZWxmLCBhcmcpOgorICAgICAgICAjIGFyZ3MgaXMgaWdub3JlZAorICAgICAgICBpZiBzZWxmLnF1aXRfcmVzcG9uc2UgaXMgTm9uZToKKyAgICAgICAgICAgIHN1cGVyKFNpbVNNVFBDaGFubmVsLCBzZWxmKS5zbXRwX1FVSVQoYXJnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5wdXNoKHNlbGYucXVpdF9yZXNwb25zZSkKKyAgICAgICAgICAgIHNlbGYuY2xvc2Vfd2hlbl9kb25lKCkKKwogICAgIGRlZiBoYW5kbGVfZXJyb3Ioc2VsZik6CiAgICAgICAgIHJhaXNlCiAKIAogY2xhc3MgU2ltU01UUFNlcnZlcihzbXRwZC5TTVRQU2VydmVyKToKIAorICAgICMgRm9yIHRlc3RpbmcgZmFpbHVyZXMgaW4gUVVJVCB3aGVuIHVzaW5nIHRoZSBjb250ZXh0IG1hbmFnZXIgQVBJLgorICAgIHF1aXRfcmVzcG9uc2UgPSBOb25lCisKICAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3cpOgogICAgICAgICBzZWxmLl9leHRyYV9mZWF0dXJlcyA9IFtdCiAgICAgICAgIHNtdHBkLlNNVFBTZXJ2ZXIuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3cpCiAKICAgICBkZWYgaGFuZGxlX2FjY2VwdGVkKHNlbGYsIGNvbm4sIGFkZHIpOgotICAgICAgICBzZWxmLl9TTVRQY2hhbm5lbCA9IFNpbVNNVFBDaGFubmVsKHNlbGYuX2V4dHJhX2ZlYXR1cmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIGNvbm4sIGFkZHIpCisgICAgICAgIHNlbGYuX1NNVFBjaGFubmVsID0gU2ltU01UUENoYW5uZWwoCisgICAgICAgICAgICBzZWxmLl9leHRyYV9mZWF0dXJlcywgc2VsZiwgY29ubiwgYWRkcikKKyAgICAgICAgc2VsZi5fU01UUGNoYW5uZWwucXVpdF9yZXNwb25zZSA9IHNlbGYucXVpdF9yZXNwb25zZQogCiAgICAgZGVmIHByb2Nlc3NfbWVzc2FnZShzZWxmLCBwZWVyLCBtYWlsZnJvbSwgcmNwdHRvcywgZGF0YSk6CiAgICAgICAgIHBhc3MKQEAgLTc1Miw2ICs3OTksMjUgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2ltX2F1dGhfY3JlZGVudGlhbHNbJ2NyYW0tbWQ1J10sIHN0cihlcnIpKQogICAgICAgICBzbXRwLmNsb3NlKCkKIAorICAgIGRlZiB0ZXN0X3dpdGhfc3RhdGVtZW50KHNlbGYpOgorICAgICAgICB3aXRoIHNtdHBsaWIuU01UUChIT1NULCBzZWxmLnBvcnQpIGFzIHNtdHA6CisgICAgICAgICAgICBjb2RlLCBtZXNzYWdlID0gc210cC5ub29wKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29kZSwgMjUwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzbXRwbGliLlNNVFBTZXJ2ZXJEaXNjb25uZWN0ZWQsIHNtdHAuc2VuZCwgYidmb28nKQorICAgICAgICB3aXRoIHNtdHBsaWIuU01UUChIT1NULCBzZWxmLnBvcnQpIGFzIHNtdHA6CisgICAgICAgICAgICBzbXRwLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc210cGxpYi5TTVRQU2VydmVyRGlzY29ubmVjdGVkLCBzbXRwLnNlbmQsIGInZm9vJykKKworICAgIGRlZiB0ZXN0X3dpdGhfc3RhdGVtZW50X1FVSVRfZmFpbHVyZShzZWxmKToKKyAgICAgICAgc2VsZi5zZXJ2LnF1aXRfcmVzcG9uc2UgPSAnNDIxIFFVSVQgRkFJTEVEJworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNtdHBsaWIuU01UUFJlc3BvbnNlRXhjZXB0aW9uKSBhcyBlcnJvcjoKKyAgICAgICAgICAgIHdpdGggc210cGxpYi5TTVRQKEhPU1QsIHNlbGYucG9ydCkgYXMgc210cDoKKyAgICAgICAgICAgICAgICBzbXRwLm5vb3AoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVycm9yLmV4Y2VwdGlvbi5zbXRwX2NvZGUsIDQyMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlcnJvci5leGNlcHRpb24uc210cF9lcnJvciwgYidRVUlUIEZBSUxFRCcpCisgICAgICAgICMgV2UgZG9uJ3QgbmVlZCB0byBjbGVhbiB1cCBzZWxmLnNlcnYucXVpdF9yZXNwb25zZSBiZWNhdXNlIGEgbmV3CisgICAgICAgICMgc2VydmVyIGlzIGFsd2F5cyBpbnN0YW50aWF0ZWQgaW4gdGhlIHNldFVwKCkuCisKICAgICAjVE9ETzogYWRkIHRlc3RzIGZvciBjb3JyZWN0IEFVVEggbWV0aG9kIGZhbGxiYWNrIG5vdyB0aGF0IHRoZQogICAgICN0ZXN0IGluZnJhc3RydWN0dXJlIGNhbiBzdXBwb3J0IGl0LgogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NtdHBuZXQucHkgYi9MaWIvdGVzdC90ZXN0X3NtdHBuZXQucHkKaW5kZXggMDE5OGFiNi4uODYyMjRlZiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zbXRwbmV0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc210cG5ldC5weQpAQCAtNCwyOCArNCw2MCBAQAogZnJvbSB0ZXN0IGltcG9ydCBzdXBwb3J0CiBpbXBvcnQgc210cGxpYgogCitzc2wgPSBzdXBwb3J0LmltcG9ydF9tb2R1bGUoInNzbCIpCisKIHN1cHBvcnQucmVxdWlyZXMoIm5ldHdvcmsiKQogCisKK2NsYXNzIFNtdHBUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICB0ZXN0U2VydmVyID0gJ3NtdHAuZ21haWwuY29tJworICAgIHJlbW90ZVBvcnQgPSAyNQorICAgIGNvbnRleHQgPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfU1NMdjIzKQorCisgICAgZGVmIHRlc3RfY29ubmVjdF9zdGFydHRscyhzZWxmKToKKyAgICAgICAgc3VwcG9ydC5nZXRfYXR0cmlidXRlKHNtdHBsaWIsICdTTVRQX1NTTCcpCisgICAgICAgIHdpdGggc3VwcG9ydC50cmFuc2llbnRfaW50ZXJuZXQoc2VsZi50ZXN0U2VydmVyKToKKyAgICAgICAgICAgIHNlcnZlciA9IHNtdHBsaWIuU01UUChzZWxmLnRlc3RTZXJ2ZXIsIHNlbGYucmVtb3RlUG9ydCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZXJ2ZXIuc3RhcnR0bHMoY29udGV4dD1zZWxmLmNvbnRleHQpCisgICAgICAgICAgICBleGNlcHQgc210cGxpYi5TTVRQRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgaWYgZS5hcmdzWzBdID09ICdTVEFSVFRMUyBleHRlbnNpb24gbm90IHN1cHBvcnRlZCBieSBzZXJ2ZXIuJzoKKyAgICAgICAgICAgICAgICAgICAgdW5pdHRlc3Quc2tpcChlLmFyZ3NbMF0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHNlcnZlci5laGxvKCkKKyAgICAgICAgICAgIHNlcnZlci5xdWl0KCkKKworCiBjbGFzcyBTbXRwU1NMVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgdGVzdFNlcnZlciA9ICdzbXRwLmdtYWlsLmNvbScKICAgICByZW1vdGVQb3J0ID0gNDY1CisgICAgY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9TU0x2MjMpCiAKICAgICBkZWYgdGVzdF9jb25uZWN0KHNlbGYpOgogICAgICAgICBzdXBwb3J0LmdldF9hdHRyaWJ1dGUoc210cGxpYiwgJ1NNVFBfU1NMJykKICAgICAgICAgd2l0aCBzdXBwb3J0LnRyYW5zaWVudF9pbnRlcm5ldChzZWxmLnRlc3RTZXJ2ZXIpOgogICAgICAgICAgICAgc2VydmVyID0gc210cGxpYi5TTVRQX1NTTChzZWxmLnRlc3RTZXJ2ZXIsIHNlbGYucmVtb3RlUG9ydCkKLSAgICAgICAgc2VydmVyLmVobG8oKQotICAgICAgICBzZXJ2ZXIucXVpdCgpCisgICAgICAgICAgICBzZXJ2ZXIuZWhsbygpCisgICAgICAgICAgICBzZXJ2ZXIucXVpdCgpCiAKICAgICBkZWYgdGVzdF9jb25uZWN0X2RlZmF1bHRfcG9ydChzZWxmKToKICAgICAgICAgc3VwcG9ydC5nZXRfYXR0cmlidXRlKHNtdHBsaWIsICdTTVRQX1NTTCcpCiAgICAgICAgIHdpdGggc3VwcG9ydC50cmFuc2llbnRfaW50ZXJuZXQoc2VsZi50ZXN0U2VydmVyKToKICAgICAgICAgICAgIHNlcnZlciA9IHNtdHBsaWIuU01UUF9TU0woc2VsZi50ZXN0U2VydmVyKQotICAgICAgICBzZXJ2ZXIuZWhsbygpCi0gICAgICAgIHNlcnZlci5xdWl0KCkKKyAgICAgICAgICAgIHNlcnZlci5laGxvKCkKKyAgICAgICAgICAgIHNlcnZlci5xdWl0KCkKKworICAgIGRlZiB0ZXN0X2Nvbm5lY3RfdXNpbmdfc3NsY29udGV4dChzZWxmKToKKyAgICAgICAgc3VwcG9ydC5nZXRfYXR0cmlidXRlKHNtdHBsaWIsICdTTVRQX1NTTCcpCisgICAgICAgIHdpdGggc3VwcG9ydC50cmFuc2llbnRfaW50ZXJuZXQoc2VsZi50ZXN0U2VydmVyKToKKyAgICAgICAgICAgIHNlcnZlciA9IHNtdHBsaWIuU01UUF9TU0woc2VsZi50ZXN0U2VydmVyLCBzZWxmLnJlbW90ZVBvcnQsIGNvbnRleHQ9c2VsZi5jb250ZXh0KQorICAgICAgICAgICAgc2VydmVyLmVobG8oKQorICAgICAgICAgICAgc2VydmVyLnF1aXQoKQorCiAKIGRlZiB0ZXN0X21haW4oKToKLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChTbXRwU1NMVGVzdCkKKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChTbXRwVGVzdCwgU210cFNTTFRlc3QpCiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgdGVzdF9tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc29ja2V0LnB5IGIvTGliL3Rlc3QvdGVzdF9zb2NrZXQucHkKaW5kZXggY2NlMGQxYi4uNzcxNmQzMyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zb2NrZXQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zb2NrZXQucHkKQEAgLTIsMTEgKzIsMTQgQEAKIAogaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKK2Zyb20gdW5pdHRlc3QuY2FzZSBpbXBvcnQgX0V4cGVjdGVkRmFpbHVyZQogCiBpbXBvcnQgZXJybm8KIGltcG9ydCBpbwogaW1wb3J0IHNvY2tldAogaW1wb3J0IHNlbGVjdAoraW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgX3Rlc3RjYXBpCiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHF1ZXVlCkBAIC0xOCwzNCArMjEsMTkgQEAKIGZyb20gd2Vha3JlZiBpbXBvcnQgcHJveHkKIGltcG9ydCBzaWduYWwKIGltcG9ydCBtYXRoCitpbXBvcnQgcGlja2xlCitpbXBvcnQgc3RydWN0CiB0cnk6CiAgICAgaW1wb3J0IGZjbnRsCiBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgZmNudGwgPSBGYWxzZQotCi1kZWYgdHJ5X2FkZHJlc3MoaG9zdCwgcG9ydD0wLCBmYW1pbHk9c29ja2V0LkFGX0lORVQpOgotICAgICIiIlRyeSB0byBiaW5kIGEgc29ja2V0IG9uIHRoZSBnaXZlbiBob3N0OnBvcnQgYW5kIHJldHVybiBUcnVlCi0gICAgaWYgdGhhdCBoYXMgYmVlbiBwb3NzaWJsZS4iIiIKLSAgICB0cnk6Ci0gICAgICAgIHNvY2sgPSBzb2NrZXQuc29ja2V0KGZhbWlseSwgc29ja2V0LlNPQ0tfU1RSRUFNKQotICAgICAgICBzb2NrLmJpbmQoKGhvc3QsIHBvcnQpKQotICAgIGV4Y2VwdCAoc29ja2V0LmVycm9yLCBzb2NrZXQuZ2FpZXJyb3IpOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICBlbHNlOgotICAgICAgICBzb2NrLmNsb3NlKCkKLSAgICAgICAgcmV0dXJuIFRydWUKLQotZGVmIGxpbnV4X3ZlcnNpb24oKToKLSAgICB0cnk6Ci0gICAgICAgICMgcGxhdGZvcm0ucmVsZWFzZSgpIGlzIHNvbWV0aGluZyBsaWtlICcyLjYuMzMuNy1kZXNrdG9wLTJtbmInCi0gICAgICAgIHZlcnNpb25fc3RyaW5nID0gcGxhdGZvcm0ucmVsZWFzZSgpLnNwbGl0KCctJylbMF0KLSAgICAgICAgcmV0dXJuIHR1cGxlKG1hcChpbnQsIHZlcnNpb25fc3RyaW5nLnNwbGl0KCcuJykpKQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICByZXR1cm4gMCwgMCwgMAordHJ5OgorICAgIGltcG9ydCBtdWx0aXByb2Nlc3NpbmcKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBtdWx0aXByb2Nlc3NpbmcgPSBGYWxzZQogCiBIT1NUID0gc3VwcG9ydC5IT1NUCi1NU0cgPSAnTWljaGFlbCBHaWxmaXggd2FzIGhlcmVcdTEyMzRcclxuJy5lbmNvZGUoJ3V0ZjgnKSAjIyB0ZXN0IHVuaWNvZGUgc3RyaW5nIGFuZCBjYXJyaWFnZSByZXR1cm4KLVNVUFBPUlRTX0lQVjYgPSBzb2NrZXQuaGFzX2lwdjYgYW5kIHRyeV9hZGRyZXNzKCc6OjEnLCBmYW1pbHk9c29ja2V0LkFGX0lORVQ2KQorTVNHID0gJ01pY2hhZWwgR2lsZml4IHdhcyBoZXJlXHUxMjM0XHJcbicuZW5jb2RlKCd1dGYtOCcpICMjIHRlc3QgdW5pY29kZSBzdHJpbmcgYW5kIGNhcnJpYWdlIHJldHVybgogCiB0cnk6CiAgICAgaW1wb3J0IF90aHJlYWQgYXMgdGhyZWFkCkBAIC01NCw2ICs0MiwzMyBAQAogICAgIHRocmVhZCA9IE5vbmUKICAgICB0aHJlYWRpbmcgPSBOb25lCiAKK2RlZiBfaGF2ZV9zb2NrZXRfY2FuKCk6CisgICAgIiIiQ2hlY2sgd2hldGhlciBDQU4gc29ja2V0cyBhcmUgc3VwcG9ydGVkIG9uIHRoaXMgaG9zdC4iIiIKKyAgICB0cnk6CisgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5QRl9DQU4sIHNvY2tldC5TT0NLX1JBVywgc29ja2V0LkNBTl9SQVcpCisgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgc29ja2V0LmVycm9yLCBPU0Vycm9yKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgZWxzZToKKyAgICAgICAgcy5jbG9zZSgpCisgICAgcmV0dXJuIFRydWUKKworZGVmIF9oYXZlX3NvY2tldF9yZHMoKToKKyAgICAiIiJDaGVjayB3aGV0aGVyIFJEUyBzb2NrZXRzIGFyZSBzdXBwb3J0ZWQgb24gdGhpcyBob3N0LiIiIgorICAgIHRyeToKKyAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LlBGX1JEUywgc29ja2V0LlNPQ0tfU0VRUEFDS0VULCAwKQorICAgIGV4Y2VwdCAoQXR0cmlidXRlRXJyb3IsIE9TRXJyb3IpOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBlbHNlOgorICAgICAgICBzLmNsb3NlKCkKKyAgICByZXR1cm4gVHJ1ZQorCitIQVZFX1NPQ0tFVF9DQU4gPSBfaGF2ZV9zb2NrZXRfY2FuKCkKKworSEFWRV9TT0NLRVRfUkRTID0gX2hhdmVfc29ja2V0X3JkcygpCisKKyMgU2l6ZSBpbiBieXRlcyBvZiB0aGUgaW50IHR5cGUKK1NJWkVPRl9JTlQgPSBhcnJheS5hcnJheSgiaSIpLml0ZW1zaXplCisKIGNsYXNzIFNvY2tldFRDUFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHNldFVwKHNlbGYpOgpAQCAtNzUsNiArOTAsNjMgQEAKICAgICAgICAgc2VsZi5zZXJ2LmNsb3NlKCkKICAgICAgICAgc2VsZi5zZXJ2ID0gTm9uZQogCitjbGFzcyBUaHJlYWRTYWZlQ2xlYW51cFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJTdWJjbGFzcyBvZiB1bml0dGVzdC5UZXN0Q2FzZSB3aXRoIHRocmVhZC1zYWZlIGNsZWFudXAgbWV0aG9kcy4KKworICAgIFRoaXMgc3ViY2xhc3MgcHJvdGVjdHMgdGhlIGFkZENsZWFudXAoKSBhbmQgZG9DbGVhbnVwcygpIG1ldGhvZHMKKyAgICB3aXRoIGEgcmVjdXJzaXZlIGxvY2suCisgICAgIiIiCisKKyAgICBpZiB0aHJlYWRpbmc6CisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICBzZWxmLl9jbGVhbnVwX2xvY2sgPSB0aHJlYWRpbmcuUkxvY2soKQorCisgICAgICAgIGRlZiBhZGRDbGVhbnVwKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICB3aXRoIHNlbGYuX2NsZWFudXBfbG9jazoKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5hZGRDbGVhbnVwKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBkZWYgZG9DbGVhbnVwcyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgd2l0aCBzZWxmLl9jbGVhbnVwX2xvY2s6CisgICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyKCkuZG9DbGVhbnVwcygqYXJncywgKiprd2FyZ3MpCisKK2NsYXNzIFNvY2tldENBTlRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgIiIiVG8gYmUgYWJsZSB0byBydW4gdGhpcyB0ZXN0LCBhIGB2Y2FuMGAgQ0FOIGludGVyZmFjZSBjYW4gYmUgY3JlYXRlZCB3aXRoCisgICAgdGhlIGZvbGxvd2luZyBjb21tYW5kczoKKyAgICAjIG1vZHByb2JlIHZjYW4KKyAgICAjIGlwIGxpbmsgYWRkIGRldiB2Y2FuMCB0eXBlIHZjYW4KKyAgICAjIGlmY29uZmlnIHZjYW4wIHVwCisgICAgIiIiCisgICAgaW50ZXJmYWNlID0gJ3ZjYW4wJworICAgIGJ1ZnNpemUgPSAxMjgKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5zID0gc29ja2V0LnNvY2tldChzb2NrZXQuUEZfQ0FOLCBzb2NrZXQuU09DS19SQVcsIHNvY2tldC5DQU5fUkFXKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2VsZi5zLmNsb3NlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnMuYmluZCgoc2VsZi5pbnRlcmZhY2UsKSkKKyAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoJ25ldHdvcmsgaW50ZXJmYWNlIGAlc2AgZG9lcyBub3QgZXhpc3QnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW50ZXJmYWNlKQorCisKK2NsYXNzIFNvY2tldFJEU1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgIiIiVG8gYmUgYWJsZSB0byBydW4gdGhpcyB0ZXN0LCB0aGUgYHJkc2Aga2VybmVsIG1vZHVsZSBtdXN0IGJlIGxvYWRlZDoKKyAgICAjIG1vZHByb2JlIHJkcworICAgICIiIgorICAgIGJ1ZnNpemUgPSA4MTkyCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuc2VydiA9IHNvY2tldC5zb2NrZXQoc29ja2V0LlBGX1JEUywgc29ja2V0LlNPQ0tfU0VRUEFDS0VULCAwKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2VsZi5zZXJ2LmNsb3NlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnBvcnQgPSBzdXBwb3J0LmJpbmRfcG9ydChzZWxmLnNlcnYpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgndW5hYmxlIHRvIGJpbmQgUkRTIHNvY2tldCcpCisKKwogY2xhc3MgVGhyZWFkYWJsZVRlc3Q6CiAgICAgIiIiVGhyZWFkYWJsZSBUZXN0IGNsYXNzCiAKQEAgLTEzMiw2ICsyMDQsNyBAQAogICAgICAgICBzZWxmLmNsaWVudF9yZWFkeSA9IHRocmVhZGluZy5FdmVudCgpCiAgICAgICAgIHNlbGYuZG9uZSA9IHRocmVhZGluZy5FdmVudCgpCiAgICAgICAgIHNlbGYucXVldWUgPSBxdWV1ZS5RdWV1ZSgxKQorICAgICAgICBzZWxmLnNlcnZlcl9jcmFzaGVkID0gRmFsc2UKIAogICAgICAgICAjIERvIHNvbWUgbXVuZ2luZyB0byBzdGFydCB0aGUgY2xpZW50IHRlc3QuCiAgICAgICAgIG1ldGhvZG5hbWUgPSBzZWxmLmlkKCkKQEAgLTE0MSw4ICsyMTQsMTIgQEAKICAgICAgICAgc2VsZi5jbGllbnRfdGhyZWFkID0gdGhyZWFkLnN0YXJ0X25ld190aHJlYWQoCiAgICAgICAgICAgICBzZWxmLmNsaWVudFJ1biwgKHRlc3RfbWV0aG9kLCkpCiAKLSAgICAgICAgc2VsZi5fX3NldFVwKCkKLSAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyX3JlYWR5LmlzX3NldCgpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9fc2V0VXAoKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBzZWxmLnNlcnZlcl9jcmFzaGVkID0gVHJ1ZQorICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHNlbGYuc2VydmVyX3JlYWR5LnNldCgpCiAgICAgICAgIHNlbGYuY2xpZW50X3JlYWR5LndhaXQoKQogCkBAIC0xNTgsMTAgKzIzNSwxNiBAQAogICAgICAgICBzZWxmLnNlcnZlcl9yZWFkeS53YWl0KCkKICAgICAgICAgc2VsZi5jbGllbnRTZXRVcCgpCiAgICAgICAgIHNlbGYuY2xpZW50X3JlYWR5LnNldCgpCisgICAgICAgIGlmIHNlbGYuc2VydmVyX2NyYXNoZWQ6CisgICAgICAgICAgICBzZWxmLmNsaWVudFRlYXJEb3duKCkKKyAgICAgICAgICAgIHJldHVybgogICAgICAgICBpZiBub3QgaGFzYXR0cih0ZXN0X2Z1bmMsICdfX2NhbGxfXycpOgogICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJ0ZXN0X2Z1bmMgbXVzdCBiZSBhIGNhbGxhYmxlIGZ1bmN0aW9uIikKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdGVzdF9mdW5jKCkKKyAgICAgICAgZXhjZXB0IF9FeHBlY3RlZEZhaWx1cmU6CisgICAgICAgICAgICAjIFdlIGRlbGliZXJhdGVseSBpZ25vcmUgZXhwZWN0ZWQgZmFpbHVyZXMKKyAgICAgICAgICAgIHBhc3MKICAgICAgICAgZXhjZXB0IEJhc2VFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIHNlbGYucXVldWUucHV0KGUpCiAgICAgICAgIGZpbmFsbHk6CkBAIC0yMDIsNiArMjg1LDQ4IEBACiAgICAgICAgIHNlbGYuY2xpID0gTm9uZQogICAgICAgICBUaHJlYWRhYmxlVGVzdC5jbGllbnRUZWFyRG93bihzZWxmKQogCitjbGFzcyBUaHJlYWRlZENBTlNvY2tldFRlc3QoU29ja2V0Q0FOVGVzdCwgVGhyZWFkYWJsZVRlc3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGhvZE5hbWU9J3J1blRlc3QnKToKKyAgICAgICAgU29ja2V0Q0FOVGVzdC5fX2luaXRfXyhzZWxmLCBtZXRob2ROYW1lPW1ldGhvZE5hbWUpCisgICAgICAgIFRocmVhZGFibGVUZXN0Ll9faW5pdF9fKHNlbGYpCisKKyAgICBkZWYgY2xpZW50U2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuY2xpID0gc29ja2V0LnNvY2tldChzb2NrZXQuUEZfQ0FOLCBzb2NrZXQuU09DS19SQVcsIHNvY2tldC5DQU5fUkFXKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmNsaS5iaW5kKChzZWxmLmludGVyZmFjZSwpKQorICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgorICAgICAgICAgICAgIyBza2lwVGVzdCBzaG91bGQgbm90IGJlIGNhbGxlZCBoZXJlLCBhbmQgd2lsbCBiZSBjYWxsZWQgaW4gdGhlCisgICAgICAgICAgICAjIHNlcnZlciBpbnN0ZWFkCisgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgY2xpZW50VGVhckRvd24oc2VsZik6CisgICAgICAgIHNlbGYuY2xpLmNsb3NlKCkKKyAgICAgICAgc2VsZi5jbGkgPSBOb25lCisgICAgICAgIFRocmVhZGFibGVUZXN0LmNsaWVudFRlYXJEb3duKHNlbGYpCisKK2NsYXNzIFRocmVhZGVkUkRTU29ja2V0VGVzdChTb2NrZXRSRFNUZXN0LCBUaHJlYWRhYmxlVGVzdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWV0aG9kTmFtZT0ncnVuVGVzdCcpOgorICAgICAgICBTb2NrZXRSRFNUZXN0Ll9faW5pdF9fKHNlbGYsIG1ldGhvZE5hbWU9bWV0aG9kTmFtZSkKKyAgICAgICAgVGhyZWFkYWJsZVRlc3QuX19pbml0X18oc2VsZikKKworICAgIGRlZiBjbGllbnRTZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5jbGkgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5QRl9SRFMsIHNvY2tldC5TT0NLX1NFUVBBQ0tFVCwgMCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBSRFMgc29ja2V0cyBtdXN0IGJlIGJvdW5kIGV4cGxpY2l0bHkgdG8gc2VuZCBvciByZWNlaXZlIGRhdGEKKyAgICAgICAgICAgIHNlbGYuY2xpLmJpbmQoKEhPU1QsIDApKQorICAgICAgICAgICAgc2VsZi5jbGlfYWRkciA9IHNlbGYuY2xpLmdldHNvY2tuYW1lKCkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAjIHNraXBUZXN0IHNob3VsZCBub3QgYmUgY2FsbGVkIGhlcmUsIGFuZCB3aWxsIGJlIGNhbGxlZCBpbiB0aGUKKyAgICAgICAgICAgICMgc2VydmVyIGluc3RlYWQKKyAgICAgICAgICAgIHBhc3MKKworICAgIGRlZiBjbGllbnRUZWFyRG93bihzZWxmKToKKyAgICAgICAgc2VsZi5jbGkuY2xvc2UoKQorICAgICAgICBzZWxmLmNsaSA9IE5vbmUKKyAgICAgICAgVGhyZWFkYWJsZVRlc3QuY2xpZW50VGVhckRvd24oc2VsZikKKwogY2xhc3MgU29ja2V0Q29ubmVjdGVkVGVzdChUaHJlYWRlZFRDUFNvY2tldFRlc3QpOgogICAgICIiIlNvY2tldCB0ZXN0cyBmb3IgY2xpZW50LXNlcnZlciBjb25uZWN0aW9uLgogCkBAIC0yNTcsNiArMzgyLDI0MyBAQAogICAgICAgICBUaHJlYWRhYmxlVGVzdC5jbGllbnRUZWFyRG93bihzZWxmKQogCiAKKyMgVGhlIGZvbGxvd2luZyBjbGFzc2VzIGFyZSB1c2VkIGJ5IHRoZSBzZW5kbXNnKCkvcmVjdm1zZygpIHRlc3RzLgorIyBDb21iaW5pbmcsIGZvciBpbnN0YW5jZSwgQ29ubmVjdGVkU3RyZWFtVGVzdE1peGluIGFuZCBUQ1BUZXN0QmFzZQorIyBnaXZlcyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIFNvY2tldENvbm5lY3RlZFRlc3QsIGJ1dCBkaWZmZXJlbnQKKyMgYWRkcmVzcyBmYW1pbGllcyBjYW4gYmUgdXNlZCwgYW5kIHRoZSBhdHRyaWJ1dGVzIHNlcnZfYWRkciBhbmQKKyMgY2xpX2FkZHIgd2lsbCBiZSBzZXQgdG8gdGhlIGFkZHJlc3NlcyBvZiB0aGUgZW5kcG9pbnRzLgorCitjbGFzcyBTb2NrZXRUZXN0QmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiQSBiYXNlIGNsYXNzIGZvciBzb2NrZXQgdGVzdHMuCisKKyAgICBTdWJjbGFzc2VzIG11c3QgcHJvdmlkZSBtZXRob2RzIG5ld1NvY2tldCgpIHRvIHJldHVybiBhIG5ldyBzb2NrZXQKKyAgICBhbmQgYmluZFNvY2soc29jaykgdG8gYmluZCBpdCB0byBhbiB1bnVzZWQgYWRkcmVzcy4KKworICAgIENyZWF0ZXMgYSBzb2NrZXQgc2VsZi5zZXJ2IGFuZCBzZXRzIHNlbGYuc2Vydl9hZGRyIHRvIGl0cyBhZGRyZXNzLgorICAgICIiIgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnNlcnYgPSBzZWxmLm5ld1NvY2tldCgpCisgICAgICAgIHNlbGYuYmluZFNlcnZlcigpCisKKyAgICBkZWYgYmluZFNlcnZlcihzZWxmKToKKyAgICAgICAgIiIiQmluZCBzZXJ2ZXIgc29ja2V0IGFuZCBzZXQgc2VsZi5zZXJ2X2FkZHIgdG8gaXRzIGFkZHJlc3MuIiIiCisgICAgICAgIHNlbGYuYmluZFNvY2soc2VsZi5zZXJ2KQorICAgICAgICBzZWxmLnNlcnZfYWRkciA9IHNlbGYuc2Vydi5nZXRzb2NrbmFtZSgpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHNlbGYuc2Vydi5jbG9zZSgpCisgICAgICAgIHNlbGYuc2VydiA9IE5vbmUKKworCitjbGFzcyBTb2NrZXRMaXN0ZW5pbmdUZXN0TWl4aW4oU29ja2V0VGVzdEJhc2UpOgorICAgICIiIk1peGluIHRvIGxpc3RlbiBvbiB0aGUgc2VydmVyIHNvY2tldC4iIiIKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoKS5zZXRVcCgpCisgICAgICAgIHNlbGYuc2Vydi5saXN0ZW4oMSkKKworCitjbGFzcyBUaHJlYWRlZFNvY2tldFRlc3RNaXhpbihUaHJlYWRTYWZlQ2xlYW51cFRlc3RDYXNlLCBTb2NrZXRUZXN0QmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZGFibGVUZXN0KToKKyAgICAiIiJNaXhpbiB0byBhZGQgY2xpZW50IHNvY2tldCBhbmQgYWxsb3cgY2xpZW50L3NlcnZlciB0ZXN0cy4KKworICAgIENsaWVudCBzb2NrZXQgaXMgc2VsZi5jbGkgYW5kIGl0cyBhZGRyZXNzIGlzIHNlbGYuY2xpX2FkZHIuICBTZWUKKyAgICBUaHJlYWRhYmxlVGVzdCBmb3IgdXNhZ2UgaW5mb3JtYXRpb24uCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAgIFRocmVhZGFibGVUZXN0Ll9faW5pdF9fKHNlbGYpCisKKyAgICBkZWYgY2xpZW50U2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuY2xpID0gc2VsZi5uZXdDbGllbnRTb2NrZXQoKQorICAgICAgICBzZWxmLmJpbmRDbGllbnQoKQorCisgICAgZGVmIG5ld0NsaWVudFNvY2tldChzZWxmKToKKyAgICAgICAgIiIiUmV0dXJuIGEgbmV3IHNvY2tldCBmb3IgdXNlIGFzIGNsaWVudC4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYubmV3U29ja2V0KCkKKworICAgIGRlZiBiaW5kQ2xpZW50KHNlbGYpOgorICAgICAgICAiIiJCaW5kIGNsaWVudCBzb2NrZXQgYW5kIHNldCBzZWxmLmNsaV9hZGRyIHRvIGl0cyBhZGRyZXNzLiIiIgorICAgICAgICBzZWxmLmJpbmRTb2NrKHNlbGYuY2xpKQorICAgICAgICBzZWxmLmNsaV9hZGRyID0gc2VsZi5jbGkuZ2V0c29ja25hbWUoKQorCisgICAgZGVmIGNsaWVudFRlYXJEb3duKHNlbGYpOgorICAgICAgICBzZWxmLmNsaS5jbG9zZSgpCisgICAgICAgIHNlbGYuY2xpID0gTm9uZQorICAgICAgICBUaHJlYWRhYmxlVGVzdC5jbGllbnRUZWFyRG93bihzZWxmKQorCisKK2NsYXNzIENvbm5lY3RlZFN0cmVhbVRlc3RNaXhpbihTb2NrZXRMaXN0ZW5pbmdUZXN0TWl4aW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkZWRTb2NrZXRUZXN0TWl4aW4pOgorICAgICIiIk1peGluIHRvIGFsbG93IGNsaWVudC9zZXJ2ZXIgc3RyZWFtIHRlc3RzIHdpdGggY29ubmVjdGVkIGNsaWVudC4KKworICAgIFNlcnZlcidzIHNvY2tldCByZXByZXNlbnRpbmcgY29ubmVjdGlvbiB0byBjbGllbnQgaXMgc2VsZi5jbGlfY29ubgorICAgIGFuZCBjbGllbnQncyBjb25uZWN0aW9uIHRvIHNlcnZlciBpcyBzZWxmLnNlcnZfY29ubi4gIChCYXNlZCBvbgorICAgIFNvY2tldENvbm5lY3RlZFRlc3QuKQorICAgICIiIgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcigpLnNldFVwKCkKKyAgICAgICAgIyBJbmRpY2F0ZSBleHBsaWNpdGx5IHdlJ3JlIHJlYWR5IGZvciB0aGUgY2xpZW50IHRocmVhZCB0bworICAgICAgICAjIHByb2NlZWQgYW5kIHRoZW4gcGVyZm9ybSB0aGUgYmxvY2tpbmcgY2FsbCB0byBhY2NlcHQKKyAgICAgICAgc2VsZi5zZXJ2ZXJFeHBsaWNpdFJlYWR5KCkKKyAgICAgICAgY29ubiwgYWRkciA9IHNlbGYuc2Vydi5hY2NlcHQoKQorICAgICAgICBzZWxmLmNsaV9jb25uID0gY29ubgorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBzZWxmLmNsaV9jb25uLmNsb3NlKCkKKyAgICAgICAgc2VsZi5jbGlfY29ubiA9IE5vbmUKKyAgICAgICAgc3VwZXIoKS50ZWFyRG93bigpCisKKyAgICBkZWYgY2xpZW50U2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKCkuY2xpZW50U2V0VXAoKQorICAgICAgICBzZWxmLmNsaS5jb25uZWN0KHNlbGYuc2Vydl9hZGRyKQorICAgICAgICBzZWxmLnNlcnZfY29ubiA9IHNlbGYuY2xpCisKKyAgICBkZWYgY2xpZW50VGVhckRvd24oc2VsZik6CisgICAgICAgIHNlbGYuc2Vydl9jb25uLmNsb3NlKCkKKyAgICAgICAgc2VsZi5zZXJ2X2Nvbm4gPSBOb25lCisgICAgICAgIHN1cGVyKCkuY2xpZW50VGVhckRvd24oKQorCisKK2NsYXNzIFVuaXhTb2NrZXRUZXN0QmFzZShTb2NrZXRUZXN0QmFzZSk6CisgICAgIiIiQmFzZSBjbGFzcyBmb3IgVW5peC1kb21haW4gc29ja2V0IHRlc3RzLiIiIgorCisgICAgIyBUaGlzIGNsYXNzIGlzIHVzZWQgZm9yIGZpbGUgZGVzY3JpcHRvciBwYXNzaW5nIHRlc3RzLCBzbyB3ZQorICAgICMgY3JlYXRlIHRoZSBzb2NrZXRzIGluIGEgcHJpdmF0ZSBkaXJlY3Rvcnkgc28gdGhhdCBvdGhlciB1c2VycworICAgICMgY2FuJ3Qgc2VuZCBhbnl0aGluZyB0aGF0IG1pZ2h0IGJlIHByb2JsZW1hdGljIGZvciBhIHByaXZpbGVnZWQKKyAgICAjIHVzZXIgcnVubmluZyB0aGUgdGVzdHMuCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGlyX3BhdGggPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKG9zLnJtZGlyLCBzZWxmLmRpcl9wYXRoKQorICAgICAgICBzdXBlcigpLnNldFVwKCkKKworICAgIGRlZiBiaW5kU29jayhzZWxmLCBzb2NrKToKKyAgICAgICAgcGF0aCA9IHRlbXBmaWxlLm1rdGVtcChkaXI9c2VsZi5kaXJfcGF0aCkKKyAgICAgICAgc29jay5iaW5kKHBhdGgpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzdXBwb3J0LnVubGluaywgcGF0aCkKKworY2xhc3MgVW5peFN0cmVhbUJhc2UoVW5peFNvY2tldFRlc3RCYXNlKToKKyAgICAiIiJCYXNlIGNsYXNzIGZvciBVbml4LWRvbWFpbiBTT0NLX1NUUkVBTSB0ZXN0cy4iIiIKKworICAgIGRlZiBuZXdTb2NrZXQoc2VsZik6CisgICAgICAgIHJldHVybiBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9VTklYLCBzb2NrZXQuU09DS19TVFJFQU0pCisKKworY2xhc3MgSW5ldFRlc3RCYXNlKFNvY2tldFRlc3RCYXNlKToKKyAgICAiIiJCYXNlIGNsYXNzIGZvciBJUHY0IHNvY2tldCB0ZXN0cy4iIiIKKworICAgIGhvc3QgPSBIT1NUCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKCkuc2V0VXAoKQorICAgICAgICBzZWxmLnBvcnQgPSBzZWxmLnNlcnZfYWRkclsxXQorCisgICAgZGVmIGJpbmRTb2NrKHNlbGYsIHNvY2spOgorICAgICAgICBzdXBwb3J0LmJpbmRfcG9ydChzb2NrLCBob3N0PXNlbGYuaG9zdCkKKworY2xhc3MgVENQVGVzdEJhc2UoSW5ldFRlc3RCYXNlKToKKyAgICAiIiJCYXNlIGNsYXNzIGZvciBUQ1Atb3Zlci1JUHY0IHRlc3RzLiIiIgorCisgICAgZGVmIG5ld1NvY2tldChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKKworY2xhc3MgVURQVGVzdEJhc2UoSW5ldFRlc3RCYXNlKToKKyAgICAiIiJCYXNlIGNsYXNzIGZvciBVRFAtb3Zlci1JUHY0IHRlc3RzLiIiIgorCisgICAgZGVmIG5ld1NvY2tldChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX0RHUkFNKQorCitjbGFzcyBTQ1RQU3RyZWFtQmFzZShJbmV0VGVzdEJhc2UpOgorICAgICIiIkJhc2UgY2xhc3MgZm9yIFNDVFAgdGVzdHMgaW4gb25lLXRvLW9uZSAoU09DS19TVFJFQU0pIG1vZGUuIiIiCisKKyAgICBkZWYgbmV3U29ja2V0KHNlbGYpOgorICAgICAgICByZXR1cm4gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RSRUFNLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuSVBQUk9UT19TQ1RQKQorCisKK2NsYXNzIEluZXQ2VGVzdEJhc2UoSW5ldFRlc3RCYXNlKToKKyAgICAiIiJCYXNlIGNsYXNzIGZvciBJUHY2IHNvY2tldCB0ZXN0cy4iIiIKKworICAgICMgRG9uJ3QgdXNlICJsb2NhbGhvc3QiIGhlcmUgLSBpdCBtYXkgbm90IGhhdmUgYW4gSVB2NiBhZGRyZXNzCisgICAgIyBhc3NpZ25lZCB0byBpdCBieSBkZWZhdWx0IChlLmcuIGluIC9ldGMvaG9zdHMpLCBhbmQgaWYgc29tZW9uZQorICAgICMgaGFzIGFzc2lnbmVkIGl0IGFuIElQdjQtbWFwcGVkIGFkZHJlc3MsIHRoZW4gaXQncyB1bmxpa2VseSB0bworICAgICMgd29yayB3aXRoIHRoZSBmdWxsIElQdjYgQVBJLgorICAgIGhvc3QgPSAiOjoxIgorCitjbGFzcyBVRFA2VGVzdEJhc2UoSW5ldDZUZXN0QmFzZSk6CisgICAgIiIiQmFzZSBjbGFzcyBmb3IgVURQLW92ZXItSVB2NiB0ZXN0cy4iIiIKKworICAgIGRlZiBuZXdTb2NrZXQoc2VsZik6CisgICAgICAgIHJldHVybiBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVUNiwgc29ja2V0LlNPQ0tfREdSQU0pCisKKworIyBUZXN0LXNraXBwaW5nIGRlY29yYXRvcnMgZm9yIHVzZSB3aXRoIFRocmVhZGFibGVUZXN0LgorCitkZWYgc2tpcFdpdGhDbGllbnRJZihjb25kaXRpb24sIHJlYXNvbik6CisgICAgIiIiU2tpcCBkZWNvcmF0ZWQgdGVzdCBpZiBjb25kaXRpb24gaXMgdHJ1ZSwgYWRkIGNsaWVudF9za2lwIGRlY29yYXRvci4KKworICAgIElmIHRoZSBkZWNvcmF0ZWQgb2JqZWN0IGlzIG5vdCBhIGNsYXNzLCBzZXRzIGl0cyBhdHRyaWJ1dGUKKyAgICAiY2xpZW50X3NraXAiIHRvIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgcmV0dXJuIGFuIGVtcHR5IGZ1bmN0aW9uCisgICAgaWYgdGhlIHRlc3QgaXMgdG8gYmUgc2tpcHBlZCwgb3IgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uIGlmIGl0IGlzCisgICAgbm90LiAgVGhpcyBjYW4gYmUgdXNlZCB0byBhdm9pZCBydW5uaW5nIHRoZSBjbGllbnQgcGFydCBvZiBhCisgICAgc2tpcHBlZCB0ZXN0IHdoZW4gdXNpbmcgVGhyZWFkYWJsZVRlc3QuCisgICAgIiIiCisgICAgZGVmIGNsaWVudF9wYXNzKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHBhc3MKKyAgICBkZWYgc2tpcGRlYyhvYmopOgorICAgICAgICByZXR2YWwgPSB1bml0dGVzdC5za2lwKHJlYXNvbikob2JqKQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvYmosIHR5cGUpOgorICAgICAgICAgICAgcmV0dmFsLmNsaWVudF9za2lwID0gbGFtYmRhIGY6IGNsaWVudF9wYXNzCisgICAgICAgIHJldHVybiByZXR2YWwKKyAgICBkZWYgbm9za2lwZGVjKG9iaik6CisgICAgICAgIGlmIG5vdCAoaXNpbnN0YW5jZShvYmosIHR5cGUpIG9yIGhhc2F0dHIob2JqLCAiY2xpZW50X3NraXAiKSk6CisgICAgICAgICAgICBvYmouY2xpZW50X3NraXAgPSBsYW1iZGEgZjogZgorICAgICAgICByZXR1cm4gb2JqCisgICAgcmV0dXJuIHNraXBkZWMgaWYgY29uZGl0aW9uIGVsc2Ugbm9za2lwZGVjCisKKworZGVmIHJlcXVpcmVBdHRycyhvYmosICphdHRyaWJ1dGVzKToKKyAgICAiIiJTa2lwIGRlY29yYXRlZCB0ZXN0IGlmIG9iaiBpcyBtaXNzaW5nIGFueSBvZiB0aGUgZ2l2ZW4gYXR0cmlidXRlcy4KKworICAgIFNldHMgY2xpZW50X3NraXAgYXR0cmlidXRlIGFzIHNraXBXaXRoQ2xpZW50SWYoKSBkb2VzLgorICAgICIiIgorICAgIG1pc3NpbmcgPSBbbmFtZSBmb3IgbmFtZSBpbiBhdHRyaWJ1dGVzIGlmIG5vdCBoYXNhdHRyKG9iaiwgbmFtZSldCisgICAgcmV0dXJuIHNraXBXaXRoQ2xpZW50SWYoCisgICAgICAgIG1pc3NpbmcsICJkb24ndCBoYXZlICIgKyAiLCAiLmpvaW4obmFtZSBmb3IgbmFtZSBpbiBtaXNzaW5nKSkKKworCitkZWYgcmVxdWlyZVNvY2tldCgqYXJncyk6CisgICAgIiIiU2tpcCBkZWNvcmF0ZWQgdGVzdCBpZiBhIHNvY2tldCBjYW5ub3QgYmUgY3JlYXRlZCB3aXRoIGdpdmVuIGFyZ3VtZW50cy4KKworICAgIFdoZW4gYW4gYXJndW1lbnQgaXMgZ2l2ZW4gYXMgYSBzdHJpbmcsIHdpbGwgdXNlIHRoZSB2YWx1ZSBvZiB0aGF0CisgICAgYXR0cmlidXRlIG9mIHRoZSBzb2NrZXQgbW9kdWxlLCBvciBza2lwIHRoZSB0ZXN0IGlmIGl0IGRvZXNuJ3QKKyAgICBleGlzdC4gIFNldHMgY2xpZW50X3NraXAgYXR0cmlidXRlIGFzIHNraXBXaXRoQ2xpZW50SWYoKSBkb2VzLgorICAgICIiIgorICAgIGVyciA9IE5vbmUKKyAgICBtaXNzaW5nID0gW29iaiBmb3Igb2JqIGluIGFyZ3MgaWYKKyAgICAgICAgICAgICAgIGlzaW5zdGFuY2Uob2JqLCBzdHIpIGFuZCBub3QgaGFzYXR0cihzb2NrZXQsIG9iaildCisgICAgaWYgbWlzc2luZzoKKyAgICAgICAgZXJyID0gImRvbid0IGhhdmUgIiArICIsICIuam9pbihuYW1lIGZvciBuYW1lIGluIG1pc3NpbmcpCisgICAgZWxzZToKKyAgICAgICAgY2FsbGFyZ3MgPSBbZ2V0YXR0cihzb2NrZXQsIG9iaikgaWYgaXNpbnN0YW5jZShvYmosIHN0cikgZWxzZSBvYmoKKyAgICAgICAgICAgICAgICAgICAgZm9yIG9iaiBpbiBhcmdzXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzID0gc29ja2V0LnNvY2tldCgqY2FsbGFyZ3MpCisgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICAgICAgICAgICMgWFhYOiBjaGVjayBlcnJubz8KKyAgICAgICAgICAgIGVyciA9IHN0cihlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcy5jbG9zZSgpCisgICAgcmV0dXJuIHNraXBXaXRoQ2xpZW50SWYoCisgICAgICAgIGVyciBpcyBub3QgTm9uZSwKKyAgICAgICAgImNhbid0IGNyZWF0ZSBzb2NrZXQoezB9KTogezF9Ii5mb3JtYXQoCisgICAgICAgICAgICAiLCAiLmpvaW4oc3RyKG8pIGZvciBvIGluIGFyZ3MpLCBlcnIpKQorCisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIyBCZWdpbiBUZXN0cwogCkBAIC0yODIsMTggKzY0NCwxMyBAQAogCiAgICAgZGVmIHRlc3RTb2NrZXRFcnJvcihzZWxmKToKICAgICAgICAgIyBUZXN0aW5nIHNvY2tldCBtb2R1bGUgZXhjZXB0aW9ucwotICAgICAgICBkZWYgcmFpc2VfZXJyb3IoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgbXNnID0gIkVycm9yIHJhaXNpbmcgc29ja2V0IGV4Y2VwdGlvbiAoJXMpLiIKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIG1zZz1tc2cgJSAnc29ja2V0LmVycm9yJyk6CiAgICAgICAgICAgICByYWlzZSBzb2NrZXQuZXJyb3IKLSAgICAgICAgZGVmIHJhaXNlX2hlcnJvcigqYXJncywgKiprd2FyZ3MpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgbXNnPW1zZyAlICdzb2NrZXQuaGVycm9yJyk6CiAgICAgICAgICAgICByYWlzZSBzb2NrZXQuaGVycm9yCi0gICAgICAgIGRlZiByYWlzZV9nYWllcnJvcigqYXJncywgKiprd2FyZ3MpOgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgbXNnPW1zZyAlICdzb2NrZXQuZ2FpZXJyb3InKToKICAgICAgICAgICAgIHJhaXNlIHNvY2tldC5nYWllcnJvcgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHJhaXNlX2Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yIHJhaXNpbmcgc29ja2V0IGV4Y2VwdGlvbi4iKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHJhaXNlX2hlcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFcnJvciByYWlzaW5nIHNvY2tldCBleGNlcHRpb24uIikKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCByYWlzZV9nYWllcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFcnJvciByYWlzaW5nIHNvY2tldCBleGNlcHRpb24uIikKIAogICAgIGRlZiB0ZXN0U2VuZHRvRXJyb3JzKHNlbGYpOgogICAgICAgICAjIFRlc3RpbmcgdGhhdCBzZW5kdG8gZG9lbnMndCBtYXNrcyBmYWlsdXJlcy4gU2VlICMxMDE2OS4KQEAgLTM2OSw2ICs3MjYsNTIgQEAKICAgICAgICAgaWYgbm90IGZxaG4gaW4gYWxsX2hvc3RfbmFtZXM6CiAgICAgICAgICAgICBzZWxmLmZhaWwoIkVycm9yIHRlc3RpbmcgaG9zdCByZXNvbHV0aW9uIG1lY2hhbmlzbXMuIChmcWRuOiAlcywgYWxsOiAlcykiICUgKGZxaG4sIHJlcHIoYWxsX2hvc3RfbmFtZXMpKSkKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc29ja2V0LCAnc2V0aG9zdG5hbWUnKSwgInRlc3QgbmVlZHMgc29ja2V0LnNldGhvc3RuYW1lKCkiKQorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc29ja2V0LCAnZ2V0aG9zdG5hbWUnKSwgInRlc3QgbmVlZHMgc29ja2V0LmdldGhvc3RuYW1lKCkiKQorICAgIGRlZiB0ZXN0X3NldGhvc3RuYW1lKHNlbGYpOgorICAgICAgICBvbGRobiA9IHNvY2tldC5nZXRob3N0bmFtZSgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNvY2tldC5zZXRob3N0bmFtZSgnbmV3JykKKyAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgZS5lcnJubyA9PSBlcnJuby5FUEVSTToKKyAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJ0ZXN0IHNob3VsZCBiZSBydW4gYXMgcm9vdCIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgcnVubmluZyB0ZXN0IGFzIHJvb3QhCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvY2tldC5nZXRob3N0bmFtZSgpLCAnbmV3JykKKyAgICAgICAgICAgICMgU2hvdWxkIHdvcmsgd2l0aCBieXRlcyBvYmplY3RzIHRvbworICAgICAgICAgICAgc29ja2V0LnNldGhvc3RuYW1lKGInYmFyJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29ja2V0LmdldGhvc3RuYW1lKCksICdiYXInKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc29ja2V0LnNldGhvc3RuYW1lKG9sZGhuKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzb2NrZXQsICdpZl9uYW1laW5kZXgnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnc29ja2V0LmlmX25hbWVpbmRleCgpIG5vdCBhdmFpbGFibGUuJykKKyAgICBkZWYgdGVzdEludGVyZmFjZU5hbWVJbmRleChzZWxmKToKKyAgICAgICAgaW50ZXJmYWNlcyA9IHNvY2tldC5pZl9uYW1laW5kZXgoKQorICAgICAgICBmb3IgaW5kZXgsIG5hbWUgaW4gaW50ZXJmYWNlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShpbmRleCwgaW50KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG5hbWUsIHN0cikKKyAgICAgICAgICAgICMgaW50ZXJmYWNlIGluZGljZXMgYXJlIG5vbi16ZXJvIGludGVnZXJzCisgICAgICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXIoaW5kZXgsIDApCisgICAgICAgICAgICBfaW5kZXggPSBzb2NrZXQuaWZfbmFtZXRvaW5kZXgobmFtZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShfaW5kZXgsIGludCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5kZXgsIF9pbmRleCkKKyAgICAgICAgICAgIF9uYW1lID0gc29ja2V0LmlmX2luZGV4dG9uYW1lKGluZGV4KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKF9uYW1lLCBzdHIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5hbWUsIF9uYW1lKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzb2NrZXQsICdpZl9uYW1laW5kZXgnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnc29ja2V0LmlmX25hbWVpbmRleCgpIG5vdCBhdmFpbGFibGUuJykKKyAgICBkZWYgdGVzdEludmFsaWRJbnRlcmZhY2VOYW1lSW5kZXgoc2VsZik6CisgICAgICAgICMgdGVzdCBub25leGlzdGVudCBpbnRlcmZhY2UgaW5kZXgvbmFtZQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHNvY2tldC5pZl9pbmRleHRvbmFtZSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzb2NrZXQuaWZfbmFtZXRvaW5kZXgsICdfREVBREJFRUYnKQorICAgICAgICAjIHRlc3Qgd2l0aCBpbnZhbGlkIHZhbHVlcworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNvY2tldC5pZl9uYW1ldG9pbmRleCwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzb2NrZXQuaWZfaW5kZXh0b25hbWUsICdfREVBREJFRUYnKQorCiAgICAgZGVmIHRlc3RSZWZDb3VudEdldE5hbWVJbmZvKHNlbGYpOgogICAgICAgICAjIFRlc3RpbmcgcmVmZXJlbmNlIGNvdW50IGZvciBnZXRuYW1laW5mbwogICAgICAgICBpZiBoYXNhdHRyKHN5cywgImdldHJlZmNvdW50Iik6CkBAIC00MjEsMTAgKzgyNCw4IEBACiAgICAgICAgICMgRmluZCBvbmUgc2VydmljZSB0aGF0IGV4aXN0cywgdGhlbiBjaGVjayBhbGwgdGhlIHJlbGF0ZWQgaW50ZXJmYWNlcy4KICAgICAgICAgIyBJJ3ZlIG9yZGVyZWQgdGhpcyBieSBwcm90b2NvbHMgdGhhdCBoYXZlIGJvdGggYSB0Y3AgYW5kIHVkcAogICAgICAgICAjIHByb3RvY29sLCBhdCBsZWFzdCBmb3IgbW9kZXJuIExpbnV4ZXMuCi0gICAgICAgIGlmIChzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnbGludXgnKSBvcgotICAgICAgICAgICAgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ2ZyZWVic2QnKSBvcgotICAgICAgICAgICAgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ25ldGJzZCcpIG9yCi0gICAgICAgICAgICBzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicpOgorICAgICAgICBpZiAoc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoKCdmcmVlYnNkJywgJ25ldGJzZCcpKQorICAgICAgICAgICAgb3Igc3lzLnBsYXRmb3JtIGluICgnbGludXgnLCAnZGFyd2luJykpOgogICAgICAgICAgICAgIyBhdm9pZCB0aGUgJ2VjaG8nIHNlcnZpY2Ugb24gdGhpcyBwbGF0Zm9ybSwgYXMgdGhlcmUgaXMgYW4KICAgICAgICAgICAgICMgYXNzdW1wdGlvbiBicmVha2luZyBub24tc3RhbmRhcmQgcG9ydC9wcm90b2NvbCBlbnRyeQogICAgICAgICAgICAgc2VydmljZXMgPSAoJ2RheXRpbWUnLCAncW90ZCcsICdkb21haW4nKQpAQCAtNzE5LDcgKzExMjAsNyBAQAogICAgICAgICBzb2NrZXQuZ2V0YWRkcmluZm8oJ2xvY2FsaG9zdCcsIDgwKQogICAgICAgICBzb2NrZXQuZ2V0YWRkcmluZm8oJzEyNy4wLjAuMScsIDgwKQogICAgICAgICBzb2NrZXQuZ2V0YWRkcmluZm8oTm9uZSwgODApCi0gICAgICAgIGlmIFNVUFBPUlRTX0lQVjY6CisgICAgICAgIGlmIHN1cHBvcnQuSVBWNl9FTkFCTEVEOgogICAgICAgICAgICAgc29ja2V0LmdldGFkZHJpbmZvKCc6OjEnLCA4MCkKICAgICAgICAgIyBwb3J0IGNhbiBiZSBhIHN0cmluZyBzZXJ2aWNlIG5hbWUgc3VjaCBhcyAiaHR0cCIsIGEgbnVtZXJpYwogICAgICAgICAjIHBvcnQgbnVtYmVyIG9yIE5vbmUKQEAgLTc3Miw3ICsxMTczLDEyIEBACiAgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5pc19yZXNvdXJjZV9lbmFibGVkKCduZXR3b3JrJyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ25ldHdvcmsgaXMgbm90IGVuYWJsZWQnKQogICAgIGRlZiB0ZXN0X2lkbmEoc2VsZik6Ci0gICAgICAgIHN1cHBvcnQucmVxdWlyZXMoJ25ldHdvcmsnKQorICAgICAgICAjIENoZWNrIGZvciBpbnRlcm5ldCBhY2Nlc3MgYmVmb3JlIHJ1bm5pbmcgdGVzdCAoaXNzdWUgIzEyODA0KS4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc29ja2V0LmdldGhvc3RieW5hbWUoJ3B5dGhvbi5vcmcnKQorICAgICAgICBleGNlcHQgc29ja2V0LmdhaWVycm9yIGFzIGU6CisgICAgICAgICAgICBpZiBlLmVycm5vID09IHNvY2tldC5FQUlfTk9EQVRBOgorICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoJ2ludGVybmV0IGFjY2VzcyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0JykKICAgICAgICAgIyB0aGVzZSBzaG91bGQgYWxsIGJlIHN1Y2Nlc3NmdWwKICAgICAgICAgc29ja2V0LmdldGhvc3RieW5hbWUoJ9C40YHQv9GL0YLQsNC90LjQtS5weXRob24ub3JnJykKICAgICAgICAgc29ja2V0LmdldGhvc3RieW5hbWVfZXgoJ9C40YHQv9GL0YLQsNC90LjQtS5weXRob24ub3JnJykKQEAgLTgzOSwxNCArMTI0NSwyMCBAQAogICAgICAgICAgICAgZnAuY2xvc2UoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGZwKSwgIjxfaW8uQnVmZmVyZWRSZWFkZXIgbmFtZT0tMT4iKQogCi0gICAgZGVmIHRlc3RMaXN0ZW5CYWNrbG9nMChzZWxmKToKKyAgICBkZWYgdGVzdF9waWNrbGUoc2VsZik6CisgICAgICAgIHNvY2sgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgd2l0aCBzb2NrOgorICAgICAgICAgICAgZm9yIHByb3RvY29sIGluIHJhbmdlKHBpY2tsZS5ISUdIRVNUX1BST1RPQ09MICsgMSk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBwaWNrbGUuZHVtcHMsIHNvY2ssIHByb3RvY29sKQorCisgICAgZGVmIHRlc3RfbGlzdGVuX2JhY2tsb2cwKHNlbGYpOgogICAgICAgICBzcnYgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pCiAgICAgICAgIHNydi5iaW5kKChIT1NULCAwKSkKICAgICAgICAgIyBiYWNrbG9nID0gMAogICAgICAgICBzcnYubGlzdGVuKDApCiAgICAgICAgIHNydi5jbG9zZSgpCiAKLSAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhTVVBQT1JUU19JUFY2LCAnSVB2NiByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5JUFY2X0VOQUJMRUQsICdJUHY2IHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKICAgICBkZWYgdGVzdF9mbG93aW5mbyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgc29ja2V0LmdldG5hbWVpbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoJzo6MScsMCwgMHhmZmZmZmZmZiksIDApCkBAIC04NTQsNiArMTI2NiwyMjIgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHMuYmluZCwgKCc6OjEnLCAwLCAtMTApKQogCiAKK0B1bml0dGVzdC5za2lwVW5sZXNzKEhBVkVfU09DS0VUX0NBTiwgJ1NvY2tldENhbiByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBCYXNpY0NBTlRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RDcnVjaWFsQ29uc3RhbnRzKHNlbGYpOgorICAgICAgICBzb2NrZXQuQUZfQ0FOCisgICAgICAgIHNvY2tldC5QRl9DQU4KKyAgICAgICAgc29ja2V0LkNBTl9SQVcKKworICAgIGRlZiB0ZXN0Q3JlYXRlU29ja2V0KHNlbGYpOgorICAgICAgICB3aXRoIHNvY2tldC5zb2NrZXQoc29ja2V0LlBGX0NBTiwgc29ja2V0LlNPQ0tfUkFXLCBzb2NrZXQuQ0FOX1JBVykgYXMgczoKKyAgICAgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0QmluZEFueShzZWxmKToKKyAgICAgICAgd2l0aCBzb2NrZXQuc29ja2V0KHNvY2tldC5QRl9DQU4sIHNvY2tldC5TT0NLX1JBVywgc29ja2V0LkNBTl9SQVcpIGFzIHM6CisgICAgICAgICAgICBzLmJpbmQoKCcnLCApKQorCisgICAgZGVmIHRlc3RUb29Mb25nSW50ZXJmYWNlTmFtZShzZWxmKToKKyAgICAgICAgIyBtb3N0IHN5c3RlbXMgbGltaXQgSUZOQU1TSVogdG8gMTYsIHRha2UgMTAyNCB0byBiZSBzdXJlCisgICAgICAgIHdpdGggc29ja2V0LnNvY2tldChzb2NrZXQuUEZfQ0FOLCBzb2NrZXQuU09DS19SQVcsIHNvY2tldC5DQU5fUkFXKSBhcyBzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleChzb2NrZXQuZXJyb3IsICdpbnRlcmZhY2UgbmFtZSB0b28gbG9uZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMuYmluZCwgKCd4JyAqIDEwMjQsKSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc29ja2V0LCAiQ0FOX1JBV19MT09QQkFDSyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICdzb2NrZXQuQ0FOX1JBV19MT09QQkFDSyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCisgICAgZGVmIHRlc3RMb29wYmFjayhzZWxmKToKKyAgICAgICAgd2l0aCBzb2NrZXQuc29ja2V0KHNvY2tldC5QRl9DQU4sIHNvY2tldC5TT0NLX1JBVywgc29ja2V0LkNBTl9SQVcpIGFzIHM6CisgICAgICAgICAgICBmb3IgbG9vcGJhY2sgaW4gKDAsIDEpOgorICAgICAgICAgICAgICAgIHMuc2V0c29ja29wdChzb2NrZXQuU09MX0NBTl9SQVcsIHNvY2tldC5DQU5fUkFXX0xPT1BCQUNLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb29wYmFjaykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxvb3BiYWNrLAorICAgICAgICAgICAgICAgICAgICBzLmdldHNvY2tvcHQoc29ja2V0LlNPTF9DQU5fUkFXLCBzb2NrZXQuQ0FOX1JBV19MT09QQkFDSykpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNvY2tldCwgIkNBTl9SQVdfRklMVEVSIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvY2tldC5DQU5fUkFXX0ZJTFRFUiByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCisgICAgZGVmIHRlc3RGaWx0ZXIoc2VsZik6CisgICAgICAgIGNhbl9pZCwgY2FuX21hc2sgPSAweDIwMCwgMHg3MDAKKyAgICAgICAgY2FuX2ZpbHRlciA9IHN0cnVjdC5wYWNrKCI9SUkiLCBjYW5faWQsIGNhbl9tYXNrKQorICAgICAgICB3aXRoIHNvY2tldC5zb2NrZXQoc29ja2V0LlBGX0NBTiwgc29ja2V0LlNPQ0tfUkFXLCBzb2NrZXQuQ0FOX1JBVykgYXMgczoKKyAgICAgICAgICAgIHMuc2V0c29ja29wdChzb2NrZXQuU09MX0NBTl9SQVcsIHNvY2tldC5DQU5fUkFXX0ZJTFRFUiwgY2FuX2ZpbHRlcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FuX2ZpbHRlciwKKyAgICAgICAgICAgICAgICAgICAgcy5nZXRzb2Nrb3B0KHNvY2tldC5TT0xfQ0FOX1JBVywgc29ja2V0LkNBTl9SQVdfRklMVEVSLCA4KSkKKworCitAdW5pdHRlc3Quc2tpcFVubGVzcyhIQVZFX1NPQ0tFVF9DQU4sICdTb2NrZXRDYW4gcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQorQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK2NsYXNzIENBTlRlc3QoVGhyZWFkZWRDQU5Tb2NrZXRUZXN0KToKKworICAgICIiIlRoZSBDQU4gZnJhbWUgc3RydWN0dXJlIGlzIGRlZmluZWQgaW4gPGxpbnV4L2Nhbi5oPjoKKworICAgIHN0cnVjdCBjYW5fZnJhbWUgeworICAgICAgICBjYW5pZF90IGNhbl9pZDsgIC8qIDMyIGJpdCBDQU5fSUQgKyBFRkYvUlRSL0VSUiBmbGFncyAqLworICAgICAgICBfX3U4ICAgIGNhbl9kbGM7IC8qIGRhdGEgbGVuZ3RoIGNvZGU6IDAgLi4gOCAqLworICAgICAgICBfX3U4ICAgIGRhdGFbOF0gX19hdHRyaWJ1dGVfXygoYWxpZ25lZCg4KSkpOworICAgIH07CisgICAgIiIiCisgICAgY2FuX2ZyYW1lX2ZtdCA9ICI9SUIzeDhzIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGhvZE5hbWU9J3J1blRlc3QnKToKKyAgICAgICAgVGhyZWFkZWRDQU5Tb2NrZXRUZXN0Ll9faW5pdF9fKHNlbGYsIG1ldGhvZE5hbWU9bWV0aG9kTmFtZSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBidWlsZF9jYW5fZnJhbWUoY2xzLCBjYW5faWQsIGRhdGEpOgorICAgICAgICAiIiJCdWlsZCBhIENBTiBmcmFtZS4iIiIKKyAgICAgICAgY2FuX2RsYyA9IGxlbihkYXRhKQorICAgICAgICBkYXRhID0gZGF0YS5sanVzdCg4LCBiJ1x4MDAnKQorICAgICAgICByZXR1cm4gc3RydWN0LnBhY2soY2xzLmNhbl9mcmFtZV9mbXQsIGNhbl9pZCwgY2FuX2RsYywgZGF0YSkKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBkaXNzZWN0X2Nhbl9mcmFtZShjbHMsIGZyYW1lKToKKyAgICAgICAgIiIiRGlzc2VjdCBhIENBTiBmcmFtZS4iIiIKKyAgICAgICAgY2FuX2lkLCBjYW5fZGxjLCBkYXRhID0gc3RydWN0LnVucGFjayhjbHMuY2FuX2ZyYW1lX2ZtdCwgZnJhbWUpCisgICAgICAgIHJldHVybiAoY2FuX2lkLCBjYW5fZGxjLCBkYXRhWzpjYW5fZGxjXSkKKworICAgIGRlZiB0ZXN0U2VuZEZyYW1lKHNlbGYpOgorICAgICAgICBjZiwgYWRkciA9IHNlbGYucy5yZWN2ZnJvbShzZWxmLmJ1ZnNpemUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jZiwgY2YpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkclswXSwgc2VsZi5pbnRlcmZhY2UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYWRkclsxXSwgc29ja2V0LkFGX0NBTikKKworICAgIGRlZiBfdGVzdFNlbmRGcmFtZShzZWxmKToKKyAgICAgICAgc2VsZi5jZiA9IHNlbGYuYnVpbGRfY2FuX2ZyYW1lKDB4MDAsIGInXHgwMVx4MDJceDAzXHgwNFx4MDUnKQorICAgICAgICBzZWxmLmNsaS5zZW5kKHNlbGYuY2YpCisKKyAgICBkZWYgdGVzdFNlbmRNYXhGcmFtZShzZWxmKToKKyAgICAgICAgY2YsIGFkZHIgPSBzZWxmLnMucmVjdmZyb20oc2VsZi5idWZzaXplKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuY2YsIGNmKQorCisgICAgZGVmIF90ZXN0U2VuZE1heEZyYW1lKHNlbGYpOgorICAgICAgICBzZWxmLmNmID0gc2VsZi5idWlsZF9jYW5fZnJhbWUoMHgwMCwgYidceDA3JyAqIDgpCisgICAgICAgIHNlbGYuY2xpLnNlbmQoc2VsZi5jZikKKworICAgIGRlZiB0ZXN0U2VuZE11bHRpRnJhbWVzKHNlbGYpOgorICAgICAgICBjZiwgYWRkciA9IHNlbGYucy5yZWN2ZnJvbShzZWxmLmJ1ZnNpemUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5jZjEsIGNmKQorCisgICAgICAgIGNmLCBhZGRyID0gc2VsZi5zLnJlY3Zmcm9tKHNlbGYuYnVmc2l6ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNmMiwgY2YpCisKKyAgICBkZWYgX3Rlc3RTZW5kTXVsdGlGcmFtZXMoc2VsZik6CisgICAgICAgIHNlbGYuY2YxID0gc2VsZi5idWlsZF9jYW5fZnJhbWUoMHgwNywgYidceDQ0XHgzM1x4MjJceDExJykKKyAgICAgICAgc2VsZi5jbGkuc2VuZChzZWxmLmNmMSkKKworICAgICAgICBzZWxmLmNmMiA9IHNlbGYuYnVpbGRfY2FuX2ZyYW1lKDB4MTIsIGInXHg5OVx4MjJceDMzJykKKyAgICAgICAgc2VsZi5jbGkuc2VuZChzZWxmLmNmMikKKworCitAdW5pdHRlc3Quc2tpcFVubGVzcyhIQVZFX1NPQ0tFVF9SRFMsICdSRFMgc29ja2V0cyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBCYXNpY1JEU1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RDcnVjaWFsQ29uc3RhbnRzKHNlbGYpOgorICAgICAgICBzb2NrZXQuQUZfUkRTCisgICAgICAgIHNvY2tldC5QRl9SRFMKKworICAgIGRlZiB0ZXN0Q3JlYXRlU29ja2V0KHNlbGYpOgorICAgICAgICB3aXRoIHNvY2tldC5zb2NrZXQoc29ja2V0LlBGX1JEUywgc29ja2V0LlNPQ0tfU0VRUEFDS0VULCAwKSBhcyBzOgorICAgICAgICAgICAgcGFzcworCisgICAgZGVmIHRlc3RTb2NrZXRCdWZmZXJTaXplKHNlbGYpOgorICAgICAgICBidWZzaXplID0gMTYzODQKKyAgICAgICAgd2l0aCBzb2NrZXQuc29ja2V0KHNvY2tldC5QRl9SRFMsIHNvY2tldC5TT0NLX1NFUVBBQ0tFVCwgMCkgYXMgczoKKyAgICAgICAgICAgIHMuc2V0c29ja29wdChzb2NrZXQuU09MX1NPQ0tFVCwgc29ja2V0LlNPX1JDVkJVRiwgYnVmc2l6ZSkKKyAgICAgICAgICAgIHMuc2V0c29ja29wdChzb2NrZXQuU09MX1NPQ0tFVCwgc29ja2V0LlNPX1NOREJVRiwgYnVmc2l6ZSkKKworCitAdW5pdHRlc3Quc2tpcFVubGVzcyhIQVZFX1NPQ0tFVF9SRFMsICdSRFMgc29ja2V0cyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWQsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQorY2xhc3MgUkRTVGVzdChUaHJlYWRlZFJEU1NvY2tldFRlc3QpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGhvZE5hbWU9J3J1blRlc3QnKToKKyAgICAgICAgVGhyZWFkZWRSRFNTb2NrZXRUZXN0Ll9faW5pdF9fKHNlbGYsIG1ldGhvZE5hbWU9bWV0aG9kTmFtZSkKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoKS5zZXRVcCgpCisgICAgICAgIHNlbGYuZXZ0ID0gdGhyZWFkaW5nLkV2ZW50KCkKKworICAgIGRlZiB0ZXN0U2VuZEFuZFJlY3Yoc2VsZik6CisgICAgICAgIGRhdGEsIGFkZHIgPSBzZWxmLnNlcnYucmVjdmZyb20oc2VsZi5idWZzaXplKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGF0YSwgZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmNsaV9hZGRyLCBhZGRyKQorCisgICAgZGVmIF90ZXN0U2VuZEFuZFJlY3Yoc2VsZik6CisgICAgICAgIHNlbGYuZGF0YSA9IGInc3BhbScKKyAgICAgICAgc2VsZi5jbGkuc2VuZHRvKHNlbGYuZGF0YSwgMCwgKEhPU1QsIHNlbGYucG9ydCkpCisKKyAgICBkZWYgdGVzdFBlZWsoc2VsZik6CisgICAgICAgIGRhdGEsIGFkZHIgPSBzZWxmLnNlcnYucmVjdmZyb20oc2VsZi5idWZzaXplLCBzb2NrZXQuTVNHX1BFRUspCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kYXRhLCBkYXRhKQorICAgICAgICBkYXRhLCBhZGRyID0gc2VsZi5zZXJ2LnJlY3Zmcm9tKHNlbGYuYnVmc2l6ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRhdGEsIGRhdGEpCisKKyAgICBkZWYgX3Rlc3RQZWVrKHNlbGYpOgorICAgICAgICBzZWxmLmRhdGEgPSBiJ3NwYW0nCisgICAgICAgIHNlbGYuY2xpLnNlbmR0byhzZWxmLmRhdGEsIDAsIChIT1NULCBzZWxmLnBvcnQpKQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQuc29ja2V0LCAncmVjdm1zZycpCisgICAgZGVmIHRlc3RTZW5kQW5kUmVjdk1zZyhzZWxmKToKKyAgICAgICAgZGF0YSwgYW5jZGF0YSwgbXNnX2ZsYWdzLCBhZGRyID0gc2VsZi5zZXJ2LnJlY3Ztc2coc2VsZi5idWZzaXplKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGF0YSwgZGF0YSkKKworICAgIEByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgJ3NlbmRtc2cnKQorICAgIGRlZiBfdGVzdFNlbmRBbmRSZWN2TXNnKHNlbGYpOgorICAgICAgICBzZWxmLmRhdGEgPSBiJ2hlbGxvICcgKiAxMAorICAgICAgICBzZWxmLmNsaS5zZW5kbXNnKFtzZWxmLmRhdGFdLCAoKSwgMCwgKEhPU1QsIHNlbGYucG9ydCkpCisKKyAgICBkZWYgdGVzdFNlbmRBbmRSZWN2TXVsdGkoc2VsZik6CisgICAgICAgIGRhdGEsIGFkZHIgPSBzZWxmLnNlcnYucmVjdmZyb20oc2VsZi5idWZzaXplKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGF0YTEsIGRhdGEpCisKKyAgICAgICAgZGF0YSwgYWRkciA9IHNlbGYuc2Vydi5yZWN2ZnJvbShzZWxmLmJ1ZnNpemUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kYXRhMiwgZGF0YSkKKworICAgIGRlZiBfdGVzdFNlbmRBbmRSZWN2TXVsdGkoc2VsZik6CisgICAgICAgIHNlbGYuZGF0YTEgPSBiJ2JhY29uJworICAgICAgICBzZWxmLmNsaS5zZW5kdG8oc2VsZi5kYXRhMSwgMCwgKEhPU1QsIHNlbGYucG9ydCkpCisKKyAgICAgICAgc2VsZi5kYXRhMiA9IGInZWdnJworICAgICAgICBzZWxmLmNsaS5zZW5kdG8oc2VsZi5kYXRhMiwgMCwgKEhPU1QsIHNlbGYucG9ydCkpCisKKyAgICBkZWYgdGVzdFNlbGVjdChzZWxmKToKKyAgICAgICAgciwgdywgeCA9IHNlbGVjdC5zZWxlY3QoW3NlbGYuc2Vydl0sIFtdLCBbXSwgMy4wKQorICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYuc2VydiwgcikKKyAgICAgICAgZGF0YSwgYWRkciA9IHNlbGYuc2Vydi5yZWN2ZnJvbShzZWxmLmJ1ZnNpemUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kYXRhLCBkYXRhKQorCisgICAgZGVmIF90ZXN0U2VsZWN0KHNlbGYpOgorICAgICAgICBzZWxmLmRhdGEgPSBiJ3NlbGVjdCcKKyAgICAgICAgc2VsZi5jbGkuc2VuZHRvKHNlbGYuZGF0YSwgMCwgKEhPU1QsIHNlbGYucG9ydCkpCisKKyAgICBkZWYgdGVzdENvbmdlc3Rpb24oc2VsZik6CisgICAgICAgICMgd2FpdCB1bnRpbCB0aGUgc2VuZGVyIGlzIGRvbmUKKyAgICAgICAgc2VsZi5ldnQud2FpdCgpCisKKyAgICBkZWYgX3Rlc3RDb25nZXN0aW9uKHNlbGYpOgorICAgICAgICAjIHRlc3QgdGhlIGJlaGF2aW9yIGluIGNhc2Ugb2YgY29uZ2VzdGlvbgorICAgICAgICBzZWxmLmRhdGEgPSBiJ2ZpbGwnCisgICAgICAgIHNlbGYuY2xpLnNldGJsb2NraW5nKEZhbHNlKQorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIHRyeSB0byBsb3dlciB0aGUgcmVjZWl2ZXIncyBzb2NrZXQgYnVmZmVyIHNpemUKKyAgICAgICAgICAgIHNlbGYuY2xpLnNldHNvY2tvcHQoc29ja2V0LlNPTF9TT0NLRVQsIHNvY2tldC5TT19SQ1ZCVUYsIDE2Mzg0KQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yKSBhcyBjbToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAjIGZpbGwgdGhlIHJlY2VpdmVyJ3Mgc29ja2V0IGJ1ZmZlcgorICAgICAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xpLnNlbmR0byhzZWxmLmRhdGEsIDAsIChIT1NULCBzZWxmLnBvcnQpKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICAjIHNpZ25hbCB0aGUgcmVjZWl2ZXIgd2UncmUgZG9uZQorICAgICAgICAgICAgICAgIHNlbGYuZXZ0LnNldCgpCisgICAgICAgICMgc2VuZHRvKCkgc2hvdWxkIGhhdmUgZmFpbGVkIHdpdGggRU5PQlVGUworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJubywgZXJybm8uRU5PQlVGUykKKyAgICAgICAgIyBhbmQgd2Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb25nZXN0aW9uIG5vdGlmaWNhdGlvbiB0aHJvdWdoIHBvbGwKKyAgICAgICAgciwgdywgeCA9IHNlbGVjdC5zZWxlY3QoW3NlbGYuc2Vydl0sIFtdLCBbXSwgMy4wKQorICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYuc2VydiwgcikKKworCiBAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWQsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQogY2xhc3MgQmFzaWNUQ1BUZXN0KFNvY2tldENvbm5lY3RlZFRlc3QpOgogCkBAIC05OTMsNiArMTYyMSwxODUyIEBACiAgICAgZGVmIF90ZXN0UmVjdkZyb21OZWdhdGl2ZShzZWxmKToKICAgICAgICAgc2VsZi5jbGkuc2VuZHRvKE1TRywgMCwgKEhPU1QsIHNlbGYucG9ydCkpCiAKKyMgVGVzdHMgZm9yIHRoZSBzZW5kbXNnKCkvcmVjdm1zZygpIGludGVyZmFjZS4gIFdoZXJlIHBvc3NpYmxlLCB0aGUKKyMgc2FtZSB0ZXN0IGNvZGUgaXMgdXNlZCB3aXRoIGRpZmZlcmVudCBmYW1pbGllcyBhbmQgdHlwZXMgb2Ygc29ja2V0CisjIChlLmcuIHN0cmVhbSwgZGF0YWdyYW0pLCBhbmQgdGVzdHMgdXNpbmcgcmVjdm1zZygpIGFyZSByZXBlYXRlZAorIyB1c2luZyByZWN2bXNnX2ludG8oKS4KKyMKKyMgVGhlIGdlbmVyaWMgdGVzdCBjbGFzc2VzIHN1Y2ggYXMgU2VuZG1zZ1Rlc3RzIGFuZAorIyBSZWN2bXNnR2VuZXJpY1Rlc3RzIGluaGVyaXQgZnJvbSBTZW5kcmVjdm1zZ0Jhc2UgYW5kIGV4cGVjdCB0byBiZQorIyBzdXBwbGllZCB3aXRoIHNvY2tldHMgY2xpX3NvY2sgYW5kIHNlcnZfc29jayByZXByZXNlbnRpbmcgdGhlCisjIGNsaWVudCdzIGFuZCB0aGUgc2VydmVyJ3MgZW5kIG9mIHRoZSBjb25uZWN0aW9uIHJlc3BlY3RpdmVseSwgYW5kCisjIGF0dHJpYnV0ZXMgY2xpX2FkZHIgYW5kIHNlcnZfYWRkciBob2xkaW5nIHRoZWlyIChudW1lcmljIHdoZXJlCisjIGFwcHJvcHJpYXRlKSBhZGRyZXNzZXMuCisjCisjIFRoZSBmaW5hbCBjb25jcmV0ZSB0ZXN0IGNsYXNzZXMgY29tYmluZSB0aGVzZSB3aXRoIHN1YmNsYXNzZXMgb2YKKyMgU29ja2V0VGVzdEJhc2Ugd2hpY2ggc2V0IHVwIGNsaWVudCBhbmQgc2VydmVyIHNvY2tldHMgb2YgYSBzcGVjaWZpYworIyB0eXBlLCBhbmQgd2l0aCBzdWJjbGFzc2VzIG9mIFNlbmRyZWN2bXNnQmFzZSBzdWNoIGFzCisjIFNlbmRyZWN2bXNnRGdyYW1CYXNlIGFuZCBTZW5kcmVjdm1zZ0Nvbm5lY3RlZEJhc2Ugd2hpY2ggbWFwIHRoZXNlCisjIHNvY2tldHMgdG8gY2xpX3NvY2sgYW5kIHNlcnZfc29jayBhbmQgb3ZlcnJpZGUgdGhlIG1ldGhvZHMgYW5kCisjIGF0dHJpYnV0ZXMgb2YgU2VuZHJlY3Ztc2dCYXNlIHRvIGZpbGwgaW4gZGVzdGluYXRpb24gYWRkcmVzc2VzIGlmCisjIG5lZWRlZCB3aGVuIHNlbmRpbmcsIGNoZWNrIGZvciBzcGVjaWZpYyBmbGFncyBpbiBtc2dfZmxhZ3MsIGV0Yy4KKyMKKyMgUmVjdm1zZ0ludG9NaXhpbiBwcm92aWRlcyBhIHZlcnNpb24gb2YgZG9SZWN2bXNnKCkgaW1wbGVtZW50ZWQgdXNpbmcKKyMgcmVjdm1zZ19pbnRvKCkuCisKKyMgWFhYOiBsaWtlIHRoZSBvdGhlciBkYXRhZ3JhbSAoVURQKSB0ZXN0cyBpbiB0aGlzIG1vZHVsZSwgdGhlIGNvZGUKKyMgaGVyZSBhc3N1bWVzIHRoYXQgZGF0YWdyYW0gZGVsaXZlcnkgb24gdGhlIGxvY2FsIG1hY2hpbmUgd2lsbCBiZQorIyByZWxpYWJsZS4KKworY2xhc3MgU2VuZHJlY3Ztc2dCYXNlKFRocmVhZFNhZmVDbGVhbnVwVGVzdENhc2UpOgorICAgICMgQmFzZSBjbGFzcyBmb3Igc2VuZG1zZygpL3JlY3Ztc2coKSB0ZXN0cy4KKworICAgICMgVGltZSBpbiBzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIGNvbnNpZGVyaW5nIGEgdGVzdCBmYWlsZWQsIG9yCisgICAgIyBOb25lIGZvciBubyB0aW1lb3V0LiAgTm90IGFsbCB0ZXN0cyBhY3R1YWxseSBzZXQgYSB0aW1lb3V0LgorICAgIGZhaWxfdGltZW91dCA9IDMuMAorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLm1pc2NfZXZlbnQgPSB0aHJlYWRpbmcuRXZlbnQoKQorICAgICAgICBzdXBlcigpLnNldFVwKCkKKworICAgIGRlZiBzZW5kVG9TZXJ2ZXIoc2VsZiwgbXNnKToKKyAgICAgICAgIyBTZW5kIG1zZyB0byB0aGUgc2VydmVyLgorICAgICAgICByZXR1cm4gc2VsZi5jbGlfc29jay5zZW5kKG1zZykKKworICAgICMgVHVwbGUgb2YgYWx0ZXJuYXRpdmUgZGVmYXVsdCBhcmd1bWVudHMgZm9yIHNlbmRtc2coKSB3aGVuIGNhbGxlZAorICAgICMgdmlhIHNlbmRtc2dUb1NlcnZlcigpIChlLmcuIHRvIGluY2x1ZGUgYSBkZXN0aW5hdGlvbiBhZGRyZXNzKS4KKyAgICBzZW5kbXNnX3RvX3NlcnZlcl9kZWZhdWx0cyA9ICgpCisKKyAgICBkZWYgc2VuZG1zZ1RvU2VydmVyKHNlbGYsICphcmdzKToKKyAgICAgICAgIyBDYWxsIHNlbmRtc2coKSBvbiBzZWxmLmNsaV9zb2NrIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50cywKKyAgICAgICAgIyBmaWxsaW5nIGluIGFueSBhcmd1bWVudHMgd2hpY2ggYXJlIG5vdCBzdXBwbGllZCB3aXRoIHRoZQorICAgICAgICAjIGNvcnJlc3BvbmRpbmcgaXRlbXMgb2Ygc2VsZi5zZW5kbXNnX3RvX3NlcnZlcl9kZWZhdWx0cywgaWYKKyAgICAgICAgIyBhbnkuCisgICAgICAgIHJldHVybiBzZWxmLmNsaV9zb2NrLnNlbmRtc2coCisgICAgICAgICAgICAqKGFyZ3MgKyBzZWxmLnNlbmRtc2dfdG9fc2VydmVyX2RlZmF1bHRzW2xlbihhcmdzKTpdKSkKKworICAgIGRlZiBkb1JlY3Ztc2coc2VsZiwgc29jaywgYnVmc2l6ZSwgKmFyZ3MpOgorICAgICAgICAjIENhbGwgcmVjdm1zZygpIG9uIHNvY2sgd2l0aCBnaXZlbiBhcmd1bWVudHMgYW5kIHJldHVybiBpdHMKKyAgICAgICAgIyByZXN1bHQuICBTaG91bGQgYmUgdXNlZCBmb3IgdGVzdHMgd2hpY2ggY2FuIHVzZSBlaXRoZXIKKyAgICAgICAgIyByZWN2bXNnKCkgb3IgcmVjdm1zZ19pbnRvKCkgLSBSZWN2bXNnSW50b01peGluIG92ZXJyaWRlcworICAgICAgICAjIHRoaXMgbWV0aG9kIHdpdGggb25lIHdoaWNoIGVtdWxhdGVzIGl0IHVzaW5nIHJlY3Ztc2dfaW50bygpLAorICAgICAgICAjIHRodXMgYWxsb3dpbmcgdGhlIHNhbWUgdGVzdCB0byBiZSB1c2VkIGZvciBib3RoIG1ldGhvZHMuCisgICAgICAgIHJlc3VsdCA9IHNvY2sucmVjdm1zZyhidWZzaXplLCAqYXJncykKKyAgICAgICAgc2VsZi5yZWdpc3RlclJlY3Ztc2dSZXN1bHQocmVzdWx0KQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICBkZWYgcmVnaXN0ZXJSZWN2bXNnUmVzdWx0KHNlbGYsIHJlc3VsdCk6CisgICAgICAgICMgQ2FsbGVkIGJ5IGRvUmVjdm1zZygpIHdpdGggdGhlIHJldHVybiB2YWx1ZSBvZiByZWN2bXNnKCkgb3IKKyAgICAgICAgIyByZWN2bXNnX2ludG8oKS4gIENhbiBiZSBvdmVycmlkZGVuIHRvIGFycmFuZ2UgY2xlYW51cCBiYXNlZAorICAgICAgICAjIG9uIHRoZSByZXR1cm5lZCBhbmNpbGxhcnkgZGF0YSwgZm9yIGluc3RhbmNlLgorICAgICAgICBwYXNzCisKKyAgICBkZWYgY2hlY2tSZWN2bXNnQWRkcmVzcyhzZWxmLCBhZGRyMSwgYWRkcjIpOgorICAgICAgICAjIENhbGxlZCB0byBjb21wYXJlIHRoZSByZWNlaXZlZCBhZGRyZXNzIHdpdGggdGhlIGFkZHJlc3Mgb2YKKyAgICAgICAgIyB0aGUgcGVlci4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhZGRyMSwgYWRkcjIpCisKKyAgICAjIEZsYWdzIHRoYXQgYXJlIG5vcm1hbGx5IHVuc2V0IGluIG1zZ19mbGFncworICAgIG1zZ19mbGFnc19jb21tb25fdW5zZXQgPSAwCisgICAgZm9yIG5hbWUgaW4gKCJNU0dfQ1RSVU5DIiwgIk1TR19PT0IiKToKKyAgICAgICAgbXNnX2ZsYWdzX2NvbW1vbl91bnNldCB8PSBnZXRhdHRyKHNvY2tldCwgbmFtZSwgMCkKKworICAgICMgRmxhZ3MgdGhhdCBhcmUgbm9ybWFsbHkgc2V0CisgICAgbXNnX2ZsYWdzX2NvbW1vbl9zZXQgPSAwCisKKyAgICAjIEZsYWdzIHNldCB3aGVuIGEgY29tcGxldGUgcmVjb3JkIGhhcyBiZWVuIHJlY2VpdmVkIChlLmcuIE1TR19FT1IKKyAgICAjIGZvciBTQ1RQKQorICAgIG1zZ19mbGFnc19lb3JfaW5kaWNhdG9yID0gMAorCisgICAgIyBGbGFncyBzZXQgd2hlbiBhIGNvbXBsZXRlIHJlY29yZCBoYXMgbm90IGJlZW4gcmVjZWl2ZWQKKyAgICAjIChlLmcuIE1TR19UUlVOQyBmb3IgZGF0YWdyYW0gc29ja2V0cykKKyAgICBtc2dfZmxhZ3Nfbm9uX2Vvcl9pbmRpY2F0b3IgPSAwCisKKyAgICBkZWYgY2hlY2tGbGFncyhzZWxmLCBmbGFncywgZW9yPU5vbmUsIGNoZWNrc2V0PTAsIGNoZWNrdW5zZXQ9MCwgaWdub3JlPTApOgorICAgICAgICAjIE1ldGhvZCB0byBjaGVjayB0aGUgdmFsdWUgb2YgbXNnX2ZsYWdzIHJldHVybmVkIGJ5IHJlY3Ztc2dbX2ludG9dKCkuCisgICAgICAgICMKKyAgICAgICAgIyBDaGVja3MgdGhhdCBhbGwgYml0cyBpbiBtc2dfZmxhZ3NfY29tbW9uX3NldCBhdHRyaWJ1dGUgYXJlCisgICAgICAgICMgc2V0IGluICJmbGFncyIgYW5kIGFsbCBiaXRzIGluIG1zZ19mbGFnc19jb21tb25fdW5zZXQgYXJlCisgICAgICAgICMgdW5zZXQuCisgICAgICAgICMKKyAgICAgICAgIyBUaGUgImVvciIgYXJndW1lbnQgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIGZsYWdzIHNob3VsZAorICAgICAgICAjIGluZGljYXRlIHRoYXQgYSBmdWxsIHJlY29yZCAob3IgZGF0YWdyYW0pIGhhcyBiZWVuIHJlY2VpdmVkLgorICAgICAgICAjIElmICJlb3IiIGlzIE5vbmUsIG5vIGNoZWNrcyBhcmUgZG9uZTsgb3RoZXJ3aXNlLCBjaGVja3MKKyAgICAgICAgIyB0aGF0OgorICAgICAgICAjCisgICAgICAgICMgICogaWYgImVvciIgaXMgdHJ1ZSwgYWxsIGJpdHMgaW4gbXNnX2ZsYWdzX2Vvcl9pbmRpY2F0b3IgYXJlCisgICAgICAgICMgICAgc2V0IGFuZCBhbGwgYml0cyBpbiBtc2dfZmxhZ3Nfbm9uX2Vvcl9pbmRpY2F0b3IgYXJlIHVuc2V0CisgICAgICAgICMKKyAgICAgICAgIyAgKiBpZiAiZW9yIiBpcyBmYWxzZSwgYWxsIGJpdHMgaW4gbXNnX2ZsYWdzX25vbl9lb3JfaW5kaWNhdG9yCisgICAgICAgICMgICAgYXJlIHNldCBhbmQgYWxsIGJpdHMgaW4gbXNnX2ZsYWdzX2Vvcl9pbmRpY2F0b3IgYXJlIHVuc2V0CisgICAgICAgICMKKyAgICAgICAgIyBJZiAiY2hlY2tzZXQiIGFuZC9vciAiY2hlY2t1bnNldCIgYXJlIHN1cHBsaWVkLCB0aGV5IHJlcXVpcmUKKyAgICAgICAgIyB0aGUgZ2l2ZW4gYml0cyB0byBiZSBzZXQgb3IgdW5zZXQgcmVzcGVjdGl2ZWx5LCBvdmVycmlkaW5nCisgICAgICAgICMgd2hhdCB0aGUgYXR0cmlidXRlcyByZXF1aXJlIGZvciB0aG9zZSBiaXRzLgorICAgICAgICAjCisgICAgICAgICMgSWYgYW55IGJpdHMgYXJlIHNldCBpbiAiaWdub3JlIiwgdGhleSB3aWxsIG5vdCBiZSBjaGVja2VkLAorICAgICAgICAjIHJlZ2FyZGxlc3Mgb2YgdGhlIG90aGVyIGlucHV0cy4KKyAgICAgICAgIworICAgICAgICAjIFdpbGwgcmFpc2UgRXhjZXB0aW9uIGlmIHRoZSBpbnB1dHMgcmVxdWlyZSBhIGJpdCB0byBiZSBib3RoCisgICAgICAgICMgc2V0IGFuZCB1bnNldCwgYW5kIGl0IGlzIG5vdCBpZ25vcmVkLgorCisgICAgICAgIGRlZmF1bHRzZXQgPSBzZWxmLm1zZ19mbGFnc19jb21tb25fc2V0CisgICAgICAgIGRlZmF1bHR1bnNldCA9IHNlbGYubXNnX2ZsYWdzX2NvbW1vbl91bnNldAorCisgICAgICAgIGlmIGVvcjoKKyAgICAgICAgICAgIGRlZmF1bHRzZXQgfD0gc2VsZi5tc2dfZmxhZ3NfZW9yX2luZGljYXRvcgorICAgICAgICAgICAgZGVmYXVsdHVuc2V0IHw9IHNlbGYubXNnX2ZsYWdzX25vbl9lb3JfaW5kaWNhdG9yCisgICAgICAgIGVsaWYgZW9yIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZGVmYXVsdHNldCB8PSBzZWxmLm1zZ19mbGFnc19ub25fZW9yX2luZGljYXRvcgorICAgICAgICAgICAgZGVmYXVsdHVuc2V0IHw9IHNlbGYubXNnX2ZsYWdzX2Vvcl9pbmRpY2F0b3IKKworICAgICAgICAjIEZ1bmN0aW9uIGFyZ3VtZW50cyBvdmVycmlkZSBkZWZhdWx0cworICAgICAgICBkZWZhdWx0c2V0ICY9IH5jaGVja3Vuc2V0CisgICAgICAgIGRlZmF1bHR1bnNldCAmPSB+Y2hlY2tzZXQKKworICAgICAgICAjIE1lcmdlIGFyZ3VtZW50cyB3aXRoIHJlbWFpbmluZyBkZWZhdWx0cywgYW5kIGNoZWNrIGZvciBjb25mbGljdHMKKyAgICAgICAgY2hlY2tzZXQgfD0gZGVmYXVsdHNldAorICAgICAgICBjaGVja3Vuc2V0IHw9IGRlZmF1bHR1bnNldAorICAgICAgICBpbmJvdGggPSBjaGVja3NldCAmIGNoZWNrdW5zZXQgJiB+aWdub3JlCisgICAgICAgIGlmIGluYm90aDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiY29udHJhZGljdG9yeSBzZXQsIHVuc2V0IHJlcXVpcmVtZW50cyBmb3IgZmxhZ3MgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ7MDojeH0iLmZvcm1hdChpbmJvdGgpKQorCisgICAgICAgICMgQ29tcGFyZSB3aXRoIGdpdmVuIG1zZ19mbGFncyB2YWx1ZQorICAgICAgICBtYXNrID0gKGNoZWNrc2V0IHwgY2hlY2t1bnNldCkgJiB+aWdub3JlCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhZ3MgJiBtYXNrLCBjaGVja3NldCAmIG1hc2spCisKKworY2xhc3MgUmVjdm1zZ0ludG9NaXhpbihTZW5kcmVjdm1zZ0Jhc2UpOgorICAgICMgTWl4aW4gdG8gaW1wbGVtZW50IGRvUmVjdm1zZygpIHVzaW5nIHJlY3Ztc2dfaW50bygpLgorCisgICAgZGVmIGRvUmVjdm1zZyhzZWxmLCBzb2NrLCBidWZzaXplLCAqYXJncyk6CisgICAgICAgIGJ1ZiA9IGJ5dGVhcnJheShidWZzaXplKQorICAgICAgICByZXN1bHQgPSBzb2NrLnJlY3Ztc2dfaW50byhbYnVmXSwgKmFyZ3MpCisgICAgICAgIHNlbGYucmVnaXN0ZXJSZWN2bXNnUmVzdWx0KHJlc3VsdCkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwocmVzdWx0WzBdLCAwKQorICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChyZXN1bHRbMF0sIGJ1ZnNpemUpCisgICAgICAgIHJldHVybiAoYnl0ZXMoYnVmWzpyZXN1bHRbMF1dKSwpICsgcmVzdWx0WzE6XQorCisKK2NsYXNzIFNlbmRyZWN2bXNnRGdyYW1GbGFnc0Jhc2UoU2VuZHJlY3Ztc2dCYXNlKToKKyAgICAjIERlZmluZXMgZmxhZ3MgdG8gYmUgY2hlY2tlZCBpbiBtc2dfZmxhZ3MgZm9yIGRhdGFncmFtIHNvY2tldHMuCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbXNnX2ZsYWdzX25vbl9lb3JfaW5kaWNhdG9yKHNlbGYpOgorICAgICAgICByZXR1cm4gc3VwZXIoKS5tc2dfZmxhZ3Nfbm9uX2Vvcl9pbmRpY2F0b3IgfCBzb2NrZXQuTVNHX1RSVU5DCisKKworY2xhc3MgU2VuZHJlY3Ztc2dTQ1RQRmxhZ3NCYXNlKFNlbmRyZWN2bXNnQmFzZSk6CisgICAgIyBEZWZpbmVzIGZsYWdzIHRvIGJlIGNoZWNrZWQgaW4gbXNnX2ZsYWdzIGZvciBTQ1RQIHNvY2tldHMuCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbXNnX2ZsYWdzX2Vvcl9pbmRpY2F0b3Ioc2VsZik6CisgICAgICAgIHJldHVybiBzdXBlcigpLm1zZ19mbGFnc19lb3JfaW5kaWNhdG9yIHwgc29ja2V0Lk1TR19FT1IKKworCitjbGFzcyBTZW5kcmVjdm1zZ0Nvbm5lY3Rpb25sZXNzQmFzZShTZW5kcmVjdm1zZ0Jhc2UpOgorICAgICMgQmFzZSBjbGFzcyBmb3IgdGVzdHMgb24gY29ubmVjdGlvbmxlc3MtbW9kZSBzb2NrZXRzLiAgVXNlcnMgbXVzdAorICAgICMgc3VwcGx5IHNvY2tldHMgb24gYXR0cmlidXRlcyBjbGkgYW5kIHNlcnYgdG8gYmUgbWFwcGVkIHRvCisgICAgIyBjbGlfc29jayBhbmQgc2Vydl9zb2NrIHJlc3BlY3RpdmVseS4KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzZXJ2X3NvY2soc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlcnYKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjbGlfc29jayhzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY2xpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2VuZG1zZ190b19zZXJ2ZXJfZGVmYXVsdHMoc2VsZik6CisgICAgICAgIHJldHVybiAoW10sIFtdLCAwLCBzZWxmLnNlcnZfYWRkcikKKworICAgIGRlZiBzZW5kVG9TZXJ2ZXIoc2VsZiwgbXNnKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY2xpX3NvY2suc2VuZHRvKG1zZywgc2VsZi5zZXJ2X2FkZHIpCisKKworY2xhc3MgU2VuZHJlY3Ztc2dDb25uZWN0ZWRCYXNlKFNlbmRyZWN2bXNnQmFzZSk6CisgICAgIyBCYXNlIGNsYXNzIGZvciB0ZXN0cyBvbiBjb25uZWN0ZWQgc29ja2V0cy4gIFVzZXJzIG11c3Qgc3VwcGx5CisgICAgIyBzb2NrZXRzIG9uIGF0dHJpYnV0ZXMgc2Vydl9jb25uIGFuZCBjbGlfY29ubiAocmVwcmVzZW50aW5nIHRoZQorICAgICMgY29ubmVjdGlvbnMgKnRvKiB0aGUgc2VydmVyIGFuZCB0aGUgY2xpZW50KSwgdG8gYmUgbWFwcGVkIHRvCisgICAgIyBjbGlfc29jayBhbmQgc2Vydl9zb2NrIHJlc3BlY3RpdmVseS4KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzZXJ2X3NvY2soc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmNsaV9jb25uCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgY2xpX3NvY2soc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlcnZfY29ubgorCisgICAgZGVmIGNoZWNrUmVjdm1zZ0FkZHJlc3Moc2VsZiwgYWRkcjEsIGFkZHIyKToKKyAgICAgICAgIyBBZGRyZXNzIGlzIGN1cnJlbnRseSAidW5zcGVjaWZpZWQiIGZvciBhIGNvbm5lY3RlZCBzb2NrZXQsCisgICAgICAgICMgc28gd2UgZG9uJ3QgZXhhbWluZSBpdAorICAgICAgICBwYXNzCisKKworY2xhc3MgU2VuZHJlY3Ztc2dTZXJ2ZXJUaW1lb3V0QmFzZShTZW5kcmVjdm1zZ0Jhc2UpOgorICAgICMgQmFzZSBjbGFzcyB0byBzZXQgYSB0aW1lb3V0IG9uIHNlcnZlcidzIHNvY2tldC4KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoKS5zZXRVcCgpCisgICAgICAgIHNlbGYuc2Vydl9zb2NrLnNldHRpbWVvdXQoc2VsZi5mYWlsX3RpbWVvdXQpCisKKworY2xhc3MgU2VuZG1zZ1Rlc3RzKFNlbmRyZWN2bXNnU2VydmVyVGltZW91dEJhc2UpOgorICAgICMgVGVzdHMgZm9yIHNlbmRtc2coKSB3aGljaCBjYW4gdXNlIGFueSBzb2NrZXQgdHlwZSBhbmQgZG8gbm90CisgICAgIyBpbnZvbHZlIHJlY3Ztc2coKSBvciByZWN2bXNnX2ludG8oKS4KKworICAgIGRlZiB0ZXN0U2VuZG1zZyhzZWxmKToKKyAgICAgICAgIyBTZW5kIGEgc2ltcGxlIG1lc3NhZ2Ugd2l0aCBzZW5kbXNnKCkuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zZXJ2X3NvY2sucmVjdihsZW4oTVNHKSksIE1TRykKKworICAgIGRlZiBfdGVzdFNlbmRtc2coc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zZW5kbXNnVG9TZXJ2ZXIoW01TR10pLCBsZW4oTVNHKSkKKworICAgIGRlZiB0ZXN0U2VuZG1zZ0RhdGFHZW5lcmF0b3Ioc2VsZik6CisgICAgICAgICMgU2VuZCBmcm9tIGJ1ZmZlciBvYnRhaW5lZCBmcm9tIGEgZ2VuZXJhdG9yIChub3QgYSBzZXF1ZW5jZSkuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zZXJ2X3NvY2sucmVjdihsZW4oTVNHKSksIE1TRykKKworICAgIGRlZiBfdGVzdFNlbmRtc2dEYXRhR2VuZXJhdG9yKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2VuZG1zZ1RvU2VydmVyKChvIGZvciBvIGluIFtNU0ddKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKE1TRykpCisKKyAgICBkZWYgdGVzdFNlbmRtc2dBbmNpbGxhcnlHZW5lcmF0b3Ioc2VsZik6CisgICAgICAgICMgR2F0aGVyIChlbXB0eSkgYW5jaWxsYXJ5IGRhdGEgZnJvbSBhIGdlbmVyYXRvci4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNlcnZfc29jay5yZWN2KGxlbihNU0cpKSwgTVNHKQorCisgICAgZGVmIF90ZXN0U2VuZG1zZ0FuY2lsbGFyeUdlbmVyYXRvcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNlbmRtc2dUb1NlcnZlcihbTVNHXSwgKG8gZm9yIG8gaW4gW10pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oTVNHKSkKKworICAgIGRlZiB0ZXN0U2VuZG1zZ0FycmF5KHNlbGYpOgorICAgICAgICAjIFNlbmQgZGF0YSBmcm9tIGFuIGFycmF5IGluc3RlYWQgb2YgdGhlIHVzdWFsIGJ5dGVzIG9iamVjdC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNlcnZfc29jay5yZWN2KGxlbihNU0cpKSwgTVNHKQorCisgICAgZGVmIF90ZXN0U2VuZG1zZ0FycmF5KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2VuZG1zZ1RvU2VydmVyKFthcnJheS5hcnJheSgiQiIsIE1TRyldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oTVNHKSkKKworICAgIGRlZiB0ZXN0U2VuZG1zZ0dhdGhlcihzZWxmKToKKyAgICAgICAgIyBTZW5kIG1lc3NhZ2UgZGF0YSBmcm9tIG1vcmUgdGhhbiBvbmUgYnVmZmVyIChnYXRoZXIgd3JpdGUpLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2Vydl9zb2NrLnJlY3YobGVuKE1TRykpLCBNU0cpCisKKyAgICBkZWYgX3Rlc3RTZW5kbXNnR2F0aGVyKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2VuZG1zZ1RvU2VydmVyKFtNU0dbOjNdLCBNU0dbMzpdXSksIGxlbihNU0cpKQorCisgICAgZGVmIHRlc3RTZW5kbXNnQmFkQXJncyhzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IHNlbmRtc2coKSByZWplY3RzIGludmFsaWQgYXJndW1lbnRzLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2Vydl9zb2NrLnJlY3YoMTAwMCksIGIiZG9uZSIpCisKKyAgICBkZWYgX3Rlc3RTZW5kbXNnQmFkQXJncyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLmNsaV9zb2NrLnNlbmRtc2cpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGIibm90IGluIGFuIGl0ZXJhYmxlIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnNlbmRtc2dUb1NlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtvYmplY3QoKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtNU0csIG9iamVjdCgpXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnNlbmRtc2dUb1NlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW01TR10sIG9iamVjdCgpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuc2VuZG1zZ1RvU2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbTVNHXSwgW10sIG9iamVjdCgpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuc2VuZG1zZ1RvU2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbTVNHXSwgW10sIDAsIG9iamVjdCgpKQorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihiImRvbmUiKQorCisgICAgZGVmIHRlc3RTZW5kbXNnQmFkQ21zZyhzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IGludmFsaWQgYW5jaWxsYXJ5IGRhdGEgaXRlbXMgYXJlIHJlamVjdGVkLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2Vydl9zb2NrLnJlY3YoMTAwMCksIGIiZG9uZSIpCisKKyAgICBkZWYgX3Rlc3RTZW5kbXNnQmFkQ21zZyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnNlbmRtc2dUb1NlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW01TR10sIFtvYmplY3QoKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtNU0ddLCBbKG9iamVjdCgpLCAwLCBiImRhdGEiKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtNU0ddLCBbKDAsIG9iamVjdCgpLCBiImRhdGEiKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtNU0ddLCBbKDAsIDAsIG9iamVjdCgpKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtNU0ddLCBbKDAsIDApXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnNlbmRtc2dUb1NlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW01TR10sIFsoMCwgMCwgYiJkYXRhIiwgNDIpXSkKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoYiJkb25lIikKKworICAgIEByZXF1aXJlQXR0cnMoc29ja2V0LCAiQ01TR19TUEFDRSIpCisgICAgZGVmIHRlc3RTZW5kbXNnQmFkTXVsdGlDbXNnKHNlbGYpOgorICAgICAgICAjIENoZWNrIHRoYXQgaW52YWxpZCBhbmNpbGxhcnkgZGF0YSBpdGVtcyBhcmUgcmVqZWN0ZWQgd2hlbgorICAgICAgICAjIG1vcmUgdGhhbiBvbmUgaXRlbSBpcyBwcmVzZW50LgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2Vydl9zb2NrLnJlY3YoMTAwMCksIGIiZG9uZSIpCisKKyAgICBAdGVzdFNlbmRtc2dCYWRNdWx0aUNtc2cuY2xpZW50X3NraXAKKyAgICBkZWYgX3Rlc3RTZW5kbXNnQmFkTXVsdGlDbXNnKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuc2VuZG1zZ1RvU2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbTVNHXSwgWzAsIDAsIGIiIl0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtNU0ddLCBbKDAsIDAsIGIiIiksIG9iamVjdCgpXSkKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoYiJkb25lIikKKworICAgIGRlZiB0ZXN0U2VuZG1zZ0V4Y2Vzc0Ntc2dSZWplY3Qoc2VsZik6CisgICAgICAgICMgQ2hlY2sgdGhhdCBzZW5kbXNnKCkgcmVqZWN0cyBleGNlc3MgYW5jaWxsYXJ5IGRhdGEgaXRlbXMKKyAgICAgICAgIyB3aGVuIHRoZSBudW1iZXIgdGhhdCBjYW4gYmUgc2VudCBpcyBsaW1pdGVkLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2Vydl9zb2NrLnJlY3YoMTAwMCksIGIiZG9uZSIpCisKKyAgICBkZWYgX3Rlc3RTZW5kbXNnRXhjZXNzQ21zZ1JlamVjdChzZWxmKToKKyAgICAgICAgaWYgbm90IGhhc2F0dHIoc29ja2V0LCAiQ01TR19TUEFDRSIpOgorICAgICAgICAgICAgIyBDYW4gb25seSBzZW5kIG9uZSBpdGVtCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvcikgYXMgY206CisgICAgICAgICAgICAgICAgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIoW01TR10sIFsoMCwgMCwgYiIiKSwgKDAsIDAsIGIiIildKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoY20uZXhjZXB0aW9uLmVycm5vKQorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihiImRvbmUiKQorCisgICAgZGVmIHRlc3RTZW5kbXNnQWZ0ZXJDbG9zZShzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IHNlbmRtc2coKSBmYWlscyBvbiBhIGNsb3NlZCBzb2NrZXQuCisgICAgICAgIHBhc3MKKworICAgIGRlZiBfdGVzdFNlbmRtc2dBZnRlckNsb3NlKHNlbGYpOgorICAgICAgICBzZWxmLmNsaV9zb2NrLmNsb3NlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzZWxmLnNlbmRtc2dUb1NlcnZlciwgW01TR10pCisKKworY2xhc3MgU2VuZG1zZ1N0cmVhbVRlc3RzKFNlbmRtc2dUZXN0cyk6CisgICAgIyBUZXN0cyBmb3Igc2VuZG1zZygpIHdoaWNoIHJlcXVpcmUgYSBzdHJlYW0gc29ja2V0IGFuZCBkbyBub3QKKyAgICAjIGludm9sdmUgcmVjdm1zZygpIG9yIHJlY3Ztc2dfaW50bygpLgorCisgICAgZGVmIHRlc3RTZW5kbXNnRXhwbGljaXROb25lQWRkcihzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IHBlZXIgYWRkcmVzcyBjYW4gYmUgc3BlY2lmaWVkIGFzIE5vbmUuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zZXJ2X3NvY2sucmVjdihsZW4oTVNHKSksIE1TRykKKworICAgIGRlZiBfdGVzdFNlbmRtc2dFeHBsaWNpdE5vbmVBZGRyKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2VuZG1zZ1RvU2VydmVyKFtNU0ddLCBbXSwgMCwgTm9uZSksIGxlbihNU0cpKQorCisgICAgZGVmIHRlc3RTZW5kbXNnVGltZW91dChzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IHRpbWVvdXQgd29ya3Mgd2l0aCBzZW5kbXNnKCkuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zZXJ2X3NvY2sucmVjdig1MTIpLCBiImEiKjUxMikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWlzY19ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5mYWlsX3RpbWVvdXQpKQorCisgICAgZGVmIF90ZXN0U2VuZG1zZ1RpbWVvdXQoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuY2xpX3NvY2suc2V0dGltZW91dCgwLjAzKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQudGltZW91dCk6CisgICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIoW2IiYSIqNTEyXSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYubWlzY19ldmVudC5zZXQoKQorCisgICAgIyBYWFg6IHdvdWxkIGJlIG5pY2UgdG8gaGF2ZSBtb3JlIHRlc3RzIGZvciBzZW5kbXNnIGZsYWdzIGFyZ3VtZW50LgorCisgICAgIyBMaW51eCBzdXBwb3J0cyBNU0dfRE9OVFdBSVQgd2hlbiBzZW5kaW5nLCBidXQgaW4gZ2VuZXJhbCwgaXQKKyAgICAjIG9ubHkgd29ya3Mgd2hlbiByZWNlaXZpbmcuICBDb3VsZCBhZGQgb3RoZXIgcGxhdGZvcm1zIGlmIHRoZXkKKyAgICAjIHN1cHBvcnQgaXQgdG9vLgorICAgIEBza2lwV2l0aENsaWVudElmKHN5cy5wbGF0Zm9ybSBub3QgaW4geyJsaW51eDIifSwKKyAgICAgICAgICAgICAgICAgICAgICAiTVNHX0RPTlRXQUlUIG5vdCBrbm93biB0byB3b3JrIG9uIHRoaXMgcGxhdGZvcm0gd2hlbiAiCisgICAgICAgICAgICAgICAgICAgICAgInNlbmRpbmciKQorICAgIGRlZiB0ZXN0U2VuZG1zZ0RvbnRXYWl0KHNlbGYpOgorICAgICAgICAjIENoZWNrIHRoYXQgTVNHX0RPTlRXQUlUIGluIGZsYWdzIGNhdXNlcyBub24tYmxvY2tpbmcgYmVoYXZpb3VyLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuc2Vydl9zb2NrLnJlY3YoNTEyKSwgYiJhIio1MTIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLm1pc2NfZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuZmFpbF90aW1lb3V0KSkKKworICAgIEB0ZXN0U2VuZG1zZ0RvbnRXYWl0LmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0U2VuZG1zZ0RvbnRXYWl0KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvcikgYXMgY206CisgICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIoW2IiYSIqNTEyXSwgW10sIHNvY2tldC5NU0dfRE9OVFdBSVQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKGNtLmV4Y2VwdGlvbi5lcnJubywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm5vLkVBR0FJTiwgZXJybm8uRVdPVUxEQkxPQ0spKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc2VsZi5taXNjX2V2ZW50LnNldCgpCisKKworY2xhc3MgU2VuZG1zZ0Nvbm5lY3Rpb25sZXNzVGVzdHMoU2VuZG1zZ1Rlc3RzKToKKyAgICAjIFRlc3RzIGZvciBzZW5kbXNnKCkgd2hpY2ggcmVxdWlyZSBhIGNvbm5lY3Rpb25sZXNzLW1vZGUKKyAgICAjIChlLmcuIGRhdGFncmFtKSBzb2NrZXQsIGFuZCBkbyBub3QgaW52b2x2ZSByZWN2bXNnKCkgb3IKKyAgICAjIHJlY3Ztc2dfaW50bygpLgorCisgICAgZGVmIHRlc3RTZW5kbXNnTm9EZXN0QWRkcihzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IHNlbmRtc2coKSBmYWlscyB3aGVuIG5vIGRlc3RpbmF0aW9uIGFkZHJlc3MgaXMKKyAgICAgICAgIyBnaXZlbiBmb3IgdW5jb25uZWN0ZWQgc29ja2V0LgorICAgICAgICBwYXNzCisKKyAgICBkZWYgX3Rlc3RTZW5kbXNnTm9EZXN0QWRkcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yLCBzZWxmLmNsaV9zb2NrLnNlbmRtc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtNU0ddKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQuZXJyb3IsIHNlbGYuY2xpX3NvY2suc2VuZG1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW01TR10sIFtdLCAwLCBOb25lKQorCisKK2NsYXNzIFJlY3Ztc2dHZW5lcmljVGVzdHMoU2VuZHJlY3Ztc2dCYXNlKToKKyAgICAjIFRlc3RzIGZvciByZWN2bXNnKCkgd2hpY2ggY2FuIGFsc28gYmUgZW11bGF0ZWQgdXNpbmcKKyAgICAjIHJlY3Ztc2dfaW50bygpLCBhbmQgY2FuIHVzZSBhbnkgc29ja2V0IHR5cGUuCisKKyAgICBkZWYgdGVzdFJlY3Ztc2coc2VsZik6CisgICAgICAgICMgUmVjZWl2ZSBhIHNpbXBsZSBtZXNzYWdlIHdpdGggcmVjdm1zZ1tfaW50b10oKS4KKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHNlbGYuZG9SZWN2bXNnKHNlbGYuc2Vydl9zb2NrLCBsZW4oTVNHKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUpCisKKyAgICBkZWYgX3Rlc3RSZWN2bXNnKHNlbGYpOgorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihNU0cpCisKKyAgICBkZWYgdGVzdFJlY3Ztc2dFeHBsaWNpdERlZmF1bHRzKHNlbGYpOgorICAgICAgICAjIFRlc3QgcmVjdm1zZ1tfaW50b10oKSB3aXRoIGRlZmF1bHQgYXJndW1lbnRzIHByb3ZpZGVkIGV4cGxpY2l0bHkuCisgICAgICAgIG1zZywgYW5jZGF0YSwgZmxhZ3MsIGFkZHIgPSBzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihNU0cpLCAwLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZywgTVNHKQorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0FkZHJlc3MoYWRkciwgc2VsZi5jbGlfYWRkcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmNkYXRhLCBbXSkKKyAgICAgICAgc2VsZi5jaGVja0ZsYWdzKGZsYWdzLCBlb3I9VHJ1ZSkKKworICAgIGRlZiBfdGVzdFJlY3Ztc2dFeHBsaWNpdERlZmF1bHRzKHNlbGYpOgorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihNU0cpCisKKyAgICBkZWYgdGVzdFJlY3Ztc2dTaG9ydGVyKHNlbGYpOgorICAgICAgICAjIFJlY2VpdmUgYSBtZXNzYWdlIHNtYWxsZXIgdGhhbiBidWZmZXIuCisgICAgICAgIG1zZywgYW5jZGF0YSwgZmxhZ3MsIGFkZHIgPSBzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihNU0cpICsgNDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLCBNU0cpCisgICAgICAgIHNlbGYuY2hlY2tSZWN2bXNnQWRkcmVzcyhhZGRyLCBzZWxmLmNsaV9hZGRyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuY2RhdGEsIFtdKQorICAgICAgICBzZWxmLmNoZWNrRmxhZ3MoZmxhZ3MsIGVvcj1UcnVlKQorCisgICAgZGVmIF90ZXN0UmVjdm1zZ1Nob3J0ZXIoc2VsZik6CisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgICMgRnJlZUJTRCA8IDggZG9lc24ndCBhbHdheXMgc2V0IHRoZSBNU0dfVFJVTkMgZmxhZyB3aGVuIGEgdHJ1bmNhdGVkCisgICAgIyBkYXRhZ3JhbSBpcyByZWNlaXZlZCAoaXNzdWUgIzEzMDAxKS4KKyAgICBAc3VwcG9ydC5yZXF1aXJlc19mcmVlYnNkX3ZlcnNpb24oOCkKKyAgICBkZWYgdGVzdFJlY3Ztc2dUcnVuYyhzZWxmKToKKyAgICAgICAgIyBSZWNlaXZlIHBhcnQgb2YgbWVzc2FnZSwgY2hlY2sgZm9yIHRydW5jYXRpb24gaW5kaWNhdG9ycy4KKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHNlbGYuZG9SZWN2bXNnKHNlbGYuc2Vydl9zb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKE1TRykgLSAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZywgTVNHWzotM10pCisgICAgICAgIHNlbGYuY2hlY2tSZWN2bXNnQWRkcmVzcyhhZGRyLCBzZWxmLmNsaV9hZGRyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuY2RhdGEsIFtdKQorICAgICAgICBzZWxmLmNoZWNrRmxhZ3MoZmxhZ3MsIGVvcj1GYWxzZSkKKworICAgIEBzdXBwb3J0LnJlcXVpcmVzX2ZyZWVic2RfdmVyc2lvbig4KQorICAgIGRlZiBfdGVzdFJlY3Ztc2dUcnVuYyhzZWxmKToKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoTVNHKQorCisgICAgZGVmIHRlc3RSZWN2bXNnU2hvcnRBbmNpbGxhcnlCdWYoc2VsZik6CisgICAgICAgICMgVGVzdCBhbmNpbGxhcnkgZGF0YSBidWZmZXIgdG9vIHNtYWxsIHRvIGhvbGQgYW55IGFuY2lsbGFyeSBkYXRhLgorICAgICAgICBtc2csIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oTVNHKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUpCisKKyAgICBkZWYgX3Rlc3RSZWN2bXNnU2hvcnRBbmNpbGxhcnlCdWYoc2VsZik6CisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgIGRlZiB0ZXN0UmVjdm1zZ0xvbmdBbmNpbGxhcnlCdWYoc2VsZik6CisgICAgICAgICMgVGVzdCBsYXJnZSBhbmNpbGxhcnkgZGF0YSBidWZmZXIuCisgICAgICAgIG1zZywgYW5jZGF0YSwgZmxhZ3MsIGFkZHIgPSBzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihNU0cpLCAxMDI0MCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUpCisKKyAgICBkZWYgX3Rlc3RSZWN2bXNnTG9uZ0FuY2lsbGFyeUJ1ZihzZWxmKToKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoTVNHKQorCisgICAgZGVmIHRlc3RSZWN2bXNnQWZ0ZXJDbG9zZShzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IHJlY3Ztc2dbX2ludG9dKCkgZmFpbHMgb24gYSBjbG9zZWQgc29ja2V0LgorICAgICAgICBzZWxmLnNlcnZfc29jay5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgc2VsZi5kb1JlY3Ztc2csIHNlbGYuc2Vydl9zb2NrLCAxMDI0KQorCisgICAgZGVmIF90ZXN0UmVjdm1zZ0FmdGVyQ2xvc2Uoc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB0ZXN0UmVjdm1zZ1RpbWVvdXQoc2VsZik6CisgICAgICAgICMgQ2hlY2sgdGhhdCB0aW1lb3V0IHdvcmtzLgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnNlcnZfc29jay5zZXR0aW1lb3V0KDAuMDMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzb2NrZXQudGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZG9SZWN2bXNnLCBzZWxmLnNlcnZfc29jaywgbGVuKE1TRykpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLm1pc2NfZXZlbnQuc2V0KCkKKworICAgIGRlZiBfdGVzdFJlY3Ztc2dUaW1lb3V0KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5taXNjX2V2ZW50LndhaXQodGltZW91dD1zZWxmLmZhaWxfdGltZW91dCkpCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIk1TR19QRUVLIikKKyAgICBkZWYgdGVzdFJlY3Ztc2dQZWVrKHNlbGYpOgorICAgICAgICAjIENoZWNrIHRoYXQgTVNHX1BFRUsgaW4gZmxhZ3MgZW5hYmxlcyBleGFtaW5hdGlvbiBvZiBwZW5kaW5nCisgICAgICAgICMgZGF0YSB3aXRob3V0IGNvbnN1bWluZyBpdC4KKworICAgICAgICAjIFJlY2VpdmUgcGFydCBvZiBkYXRhIHdpdGggTVNHX1BFRUsuCisgICAgICAgIG1zZywgYW5jZGF0YSwgZmxhZ3MsIGFkZHIgPSBzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihNU0cpIC0gMywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5NU0dfUEVFSykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TR1s6LTNdKQorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0FkZHJlc3MoYWRkciwgc2VsZi5jbGlfYWRkcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmNkYXRhLCBbXSkKKyAgICAgICAgIyBJZ25vcmluZyBNU0dfVFJVTkMgaGVyZSAoc28gdGhpcyB0ZXN0IGlzIHRoZSBzYW1lIGZvciBzdHJlYW0KKyAgICAgICAgIyBhbmQgZGF0YWdyYW0gc29ja2V0cykuICBTb21lIHdvcmRpbmcgaW4gUE9TSVggc2VlbXMgdG8KKyAgICAgICAgIyBzdWdnZXN0IHRoYXQgaXQgbmVlZG4ndCBiZSBzZXQgd2hlbiBwZWVraW5nLCBidXQgdGhhdCBtYXkKKyAgICAgICAgIyBqdXN0IGJlIGEgc2xpcC4KKyAgICAgICAgc2VsZi5jaGVja0ZsYWdzKGZsYWdzLCBlb3I9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmU9Z2V0YXR0cihzb2NrZXQsICJNU0dfVFJVTkMiLCAwKSkKKworICAgICAgICAjIFJlY2VpdmUgYWxsIGRhdGEgd2l0aCBNU0dfUEVFSy4KKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHNlbGYuZG9SZWN2bXNnKHNlbGYuc2Vydl9zb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKE1TRyksIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuTVNHX1BFRUspCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLCBNU0cpCisgICAgICAgIHNlbGYuY2hlY2tSZWN2bXNnQWRkcmVzcyhhZGRyLCBzZWxmLmNsaV9hZGRyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuY2RhdGEsIFtdKQorICAgICAgICBzZWxmLmNoZWNrRmxhZ3MoZmxhZ3MsIGVvcj1UcnVlKQorCisgICAgICAgICMgQ2hlY2sgdGhhdCB0aGUgc2FtZSBkYXRhIGNhbiBzdGlsbCBiZSByZWNlaXZlZCBub3JtYWxseS4KKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHNlbGYuZG9SZWN2bXNnKHNlbGYuc2Vydl9zb2NrLCBsZW4oTVNHKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUpCisKKyAgICBAdGVzdFJlY3Ztc2dQZWVrLmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0UmVjdm1zZ1BlZWsoc2VsZik6CisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgIEByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInNlbmRtc2ciKQorICAgIGRlZiB0ZXN0UmVjdm1zZ0Zyb21TZW5kbXNnKHNlbGYpOgorICAgICAgICAjIFRlc3QgcmVjZWl2aW5nIHdpdGggcmVjdm1zZ1tfaW50b10oKSB3aGVuIG1lc3NhZ2UgaXMgc2VudAorICAgICAgICAjIHVzaW5nIHNlbmRtc2coKS4KKyAgICAgICAgc2VsZi5zZXJ2X3NvY2suc2V0dGltZW91dChzZWxmLmZhaWxfdGltZW91dCkKKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHNlbGYuZG9SZWN2bXNnKHNlbGYuc2Vydl9zb2NrLCBsZW4oTVNHKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUpCisKKyAgICBAdGVzdFJlY3Ztc2dGcm9tU2VuZG1zZy5jbGllbnRfc2tpcAorICAgIGRlZiBfdGVzdFJlY3Ztc2dGcm9tU2VuZG1zZyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNlbmRtc2dUb1NlcnZlcihbTVNHWzozXSwgTVNHWzM6XV0pLCBsZW4oTVNHKSkKKworCitjbGFzcyBSZWN2bXNnR2VuZXJpY1N0cmVhbVRlc3RzKFJlY3Ztc2dHZW5lcmljVGVzdHMpOgorICAgICMgVGVzdHMgd2hpY2ggcmVxdWlyZSBhIHN0cmVhbSBzb2NrZXQgYW5kIGNhbiB1c2UgZWl0aGVyIHJlY3Ztc2coKQorICAgICMgb3IgcmVjdm1zZ19pbnRvKCkuCisKKyAgICBkZWYgdGVzdFJlY3Ztc2dFT0Yoc2VsZik6CisgICAgICAgICMgUmVjZWl2ZSBlbmQtb2Ytc3RyZWFtIGluZGljYXRvciAoYiIiLCBwZWVyIHNvY2tldCBjbG9zZWQpLgorICAgICAgICBtc2csIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssIDEwMjQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLCBiIiIpCisgICAgICAgIHNlbGYuY2hlY2tSZWN2bXNnQWRkcmVzcyhhZGRyLCBzZWxmLmNsaV9hZGRyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuY2RhdGEsIFtdKQorICAgICAgICBzZWxmLmNoZWNrRmxhZ3MoZmxhZ3MsIGVvcj1Ob25lKSAjIE1pZ2h0IG5vdCBoYXZlIGVuZC1vZi1yZWNvcmQgbWFya2VyCisKKyAgICBkZWYgX3Rlc3RSZWN2bXNnRU9GKHNlbGYpOgorICAgICAgICBzZWxmLmNsaV9zb2NrLmNsb3NlKCkKKworICAgIGRlZiB0ZXN0UmVjdm1zZ092ZXJmbG93KHNlbGYpOgorICAgICAgICAjIFJlY2VpdmUgYSBtZXNzYWdlIGluIG1vcmUgdGhhbiBvbmUgY2h1bmsuCisgICAgICAgIHNlZzEsIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKE1TRykgLSAzKQorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0FkZHJlc3MoYWRkciwgc2VsZi5jbGlfYWRkcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmNkYXRhLCBbXSkKKyAgICAgICAgc2VsZi5jaGVja0ZsYWdzKGZsYWdzLCBlb3I9RmFsc2UpCisKKyAgICAgICAgc2VnMiwgYW5jZGF0YSwgZmxhZ3MsIGFkZHIgPSBzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywgMTAyNCkKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUpCisKKyAgICAgICAgbXNnID0gc2VnMSArIHNlZzIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKworICAgIGRlZiBfdGVzdFJlY3Ztc2dPdmVyZmxvdyhzZWxmKToKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoTVNHKQorCisKK2NsYXNzIFJlY3Ztc2dUZXN0cyhSZWN2bXNnR2VuZXJpY1Rlc3RzKToKKyAgICAjIFRlc3RzIGZvciByZWN2bXNnKCkgd2hpY2ggY2FuIHVzZSBhbnkgc29ja2V0IHR5cGUuCisKKyAgICBkZWYgdGVzdFJlY3Ztc2dCYWRBcmdzKHNlbGYpOgorICAgICAgICAjIENoZWNrIHRoYXQgcmVjdm1zZygpIHJlamVjdHMgaW52YWxpZCBhcmd1bWVudHMuCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZXJ2X3NvY2sucmVjdm1zZykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi5zZXJ2X3NvY2sucmVjdm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLTEsIDAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlbGYuc2Vydl9zb2NrLnJlY3Ztc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihNU0cpLCAtMSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnNlcnZfc29jay5yZWN2bXNnLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbYnl0ZWFycmF5KDEwKV0sIDAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZXJ2X3NvY2sucmVjdm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0KCksIDAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZXJ2X3NvY2sucmVjdm1zZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKE1TRyksIG9iamVjdCgpLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuc2Vydl9zb2NrLnJlY3Ztc2csCisgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihNU0cpLCAwLCBvYmplY3QoKSkKKworICAgICAgICBtc2csIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5zZXJ2X3NvY2sucmVjdm1zZyhsZW4oTVNHKSwgMCwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUpCisKKyAgICBkZWYgX3Rlc3RSZWN2bXNnQmFkQXJncyhzZWxmKToKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoTVNHKQorCisKK2NsYXNzIFJlY3Ztc2dJbnRvVGVzdHMoUmVjdm1zZ0ludG9NaXhpbiwgUmVjdm1zZ0dlbmVyaWNUZXN0cyk6CisgICAgIyBUZXN0cyBmb3IgcmVjdm1zZ19pbnRvKCkgd2hpY2ggY2FuIHVzZSBhbnkgc29ja2V0IHR5cGUuCisKKyAgICBkZWYgdGVzdFJlY3Ztc2dJbnRvQmFkQXJncyhzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IHJlY3Ztc2dfaW50bygpIHJlamVjdHMgaW52YWxpZCBhcmd1bWVudHMuCisgICAgICAgIGJ1ZiA9IGJ5dGVhcnJheShsZW4oTVNHKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnNlcnZfc29jay5yZWN2bXNnX2ludG8pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZXJ2X3NvY2sucmVjdm1zZ19pbnRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oTVNHKSwgMCwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnNlcnZfc29jay5yZWN2bXNnX2ludG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgMCwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLnNlcnZfc29jay5yZWN2bXNnX2ludG8sCisgICAgICAgICAgICAgICAgICAgICAgICAgIFtvYmplY3QoKV0sIDAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZXJ2X3NvY2sucmVjdm1zZ19pbnRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbYiJJJ20gbm90IHdyaXRhYmxlIl0sIDAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5zZXJ2X3NvY2sucmVjdm1zZ19pbnRvLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbYnVmLCBvYmplY3QoKV0sIDAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlbGYuc2Vydl9zb2NrLnJlY3Ztc2dfaW50bywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1Zl0sIC0xLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuc2Vydl9zb2NrLnJlY3Ztc2dfaW50bywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1Zl0sIG9iamVjdCgpLCAwKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuc2Vydl9zb2NrLnJlY3Ztc2dfaW50bywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgW2J1Zl0sIDAsIG9iamVjdCgpKQorCisgICAgICAgIG5ieXRlcywgYW5jZGF0YSwgZmxhZ3MsIGFkZHIgPSBzZWxmLnNlcnZfc29jay5yZWN2bXNnX2ludG8oW2J1Zl0sIDAsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmJ5dGVzLCBsZW4oTVNHKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChidWYsIGJ5dGVhcnJheShNU0cpKQorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0FkZHJlc3MoYWRkciwgc2VsZi5jbGlfYWRkcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmNkYXRhLCBbXSkKKyAgICAgICAgc2VsZi5jaGVja0ZsYWdzKGZsYWdzLCBlb3I9VHJ1ZSkKKworICAgIGRlZiBfdGVzdFJlY3Ztc2dJbnRvQmFkQXJncyhzZWxmKToKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoTVNHKQorCisgICAgZGVmIHRlc3RSZWN2bXNnSW50b0dlbmVyYXRvcihzZWxmKToKKyAgICAgICAgIyBSZWNlaXZlIGludG8gYnVmZmVyIG9idGFpbmVkIGZyb20gYSBnZW5lcmF0b3IgKG5vdCBhIHNlcXVlbmNlKS4KKyAgICAgICAgYnVmID0gYnl0ZWFycmF5KGxlbihNU0cpKQorICAgICAgICBuYnl0ZXMsIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5zZXJ2X3NvY2sucmVjdm1zZ19pbnRvKAorICAgICAgICAgICAgKG8gZm9yIG8gaW4gW2J1Zl0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ieXRlcywgbGVuKE1TRykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLCBieXRlYXJyYXkoTVNHKSkKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUpCisKKyAgICBkZWYgX3Rlc3RSZWN2bXNnSW50b0dlbmVyYXRvcihzZWxmKToKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoTVNHKQorCisgICAgZGVmIHRlc3RSZWN2bXNnSW50b0FycmF5KHNlbGYpOgorICAgICAgICAjIFJlY2VpdmUgaW50byBhbiBhcnJheSByYXRoZXIgdGhhbiB0aGUgdXN1YWwgYnl0ZWFycmF5LgorICAgICAgICBidWYgPSBhcnJheS5hcnJheSgiQiIsIFswXSAqIGxlbihNU0cpKQorICAgICAgICBuYnl0ZXMsIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5zZXJ2X3NvY2sucmVjdm1zZ19pbnRvKFtidWZdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ieXRlcywgbGVuKE1TRykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYnVmLnRvYnl0ZXMoKSwgTVNHKQorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0FkZHJlc3MoYWRkciwgc2VsZi5jbGlfYWRkcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmNkYXRhLCBbXSkKKyAgICAgICAgc2VsZi5jaGVja0ZsYWdzKGZsYWdzLCBlb3I9VHJ1ZSkKKworICAgIGRlZiBfdGVzdFJlY3Ztc2dJbnRvQXJyYXkoc2VsZik6CisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgIGRlZiB0ZXN0UmVjdm1zZ0ludG9TY2F0dGVyKHNlbGYpOgorICAgICAgICAjIFJlY2VpdmUgaW50byBtdWx0aXBsZSBidWZmZXJzIChzY2F0dGVyIHdyaXRlKS4KKyAgICAgICAgYjEgPSBieXRlYXJyYXkoYiItLS0tIikKKyAgICAgICAgYjIgPSBieXRlYXJyYXkoYiIwMTIzNDU2Nzg5IikKKyAgICAgICAgYjMgPSBieXRlYXJyYXkoYiItLS0tLS0tLS0tLS0tLSIpCisgICAgICAgIG5ieXRlcywgYW5jZGF0YSwgZmxhZ3MsIGFkZHIgPSBzZWxmLnNlcnZfc29jay5yZWN2bXNnX2ludG8oCisgICAgICAgICAgICBbYjEsIG1lbW9yeXZpZXcoYjIpWzI6OV0sIGIzXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYnl0ZXMsIGxlbihiIk1hcnkgaGFkIGEgbGl0dGxlIGxhbWIiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiMSwgYnl0ZWFycmF5KGIiTWFyeSIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIyLCBieXRlYXJyYXkoYiIwMSBoYWQgYSA5IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYjMsIGJ5dGVhcnJheShiImxpdHRsZSBsYW1iLS0tIikpCisgICAgICAgIHNlbGYuY2hlY2tSZWN2bXNnQWRkcmVzcyhhZGRyLCBzZWxmLmNsaV9hZGRyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFuY2RhdGEsIFtdKQorICAgICAgICBzZWxmLmNoZWNrRmxhZ3MoZmxhZ3MsIGVvcj1UcnVlKQorCisgICAgZGVmIF90ZXN0UmVjdm1zZ0ludG9TY2F0dGVyKHNlbGYpOgorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihiIk1hcnkgaGFkIGEgbGl0dGxlIGxhbWIiKQorCisKK2NsYXNzIENtc2dNYWNyb1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAjIFRlc3QgdGhlIGZ1bmN0aW9ucyBDTVNHX0xFTigpIGFuZCBDTVNHX1NQQUNFKCkuICBUZXN0cworICAgICMgYXNzdW1wdGlvbnMgdXNlZCBieSBzZW5kbXNnKCkgYW5kIHJlY3Ztc2dbX2ludG9dKCksIHdoaWNoIHNoYXJlCisgICAgIyBjb2RlIHdpdGggdGhlc2UgZnVuY3Rpb25zLgorCisgICAgIyBNYXRjaCB0aGUgZGVmaW5pdGlvbiBpbiBzb2NrZXRtb2R1bGUuYworICAgIHNvY2tsZW5fdF9saW1pdCA9IG1pbigweDdmZmZmZmZmLCBfdGVzdGNhcGkuSU5UX01BWCkKKworICAgIEByZXF1aXJlQXR0cnMoc29ja2V0LCAiQ01TR19MRU4iKQorICAgIGRlZiB0ZXN0Q01TR19MRU4oc2VsZik6CisgICAgICAgICMgVGVzdCBDTVNHX0xFTigpIHdpdGggdmFyaW91cyB2YWxpZCBhbmQgaW52YWxpZCB2YWx1ZXMsCisgICAgICAgICMgY2hlY2tpbmcgdGhlIGFzc3VtcHRpb25zIHVzZWQgYnkgcmVjdm1zZygpIGFuZCBzZW5kbXNnKCkuCisgICAgICAgIHRvb2JpZyA9IHNlbGYuc29ja2xlbl90X2xpbWl0IC0gc29ja2V0LkNNU0dfTEVOKDApICsgMQorICAgICAgICB2YWx1ZXMgPSBsaXN0KHJhbmdlKDI1NykpICsgbGlzdChyYW5nZSh0b29iaWcgLSAyNTcsIHRvb2JpZykpCisKKyAgICAgICAgIyBzdHJ1Y3QgY21zZ2hkciBoYXMgYXQgbGVhc3QgdGhyZWUgbWVtYmVycywgdHdvIG9mIHdoaWNoIGFyZSBpbnRzCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihzb2NrZXQuQ01TR19MRU4oMCksIGFycmF5LmFycmF5KCJpIikuaXRlbXNpemUgKiAyKQorICAgICAgICBmb3IgbiBpbiB2YWx1ZXM6CisgICAgICAgICAgICByZXQgPSBzb2NrZXQuQ01TR19MRU4obikKKyAgICAgICAgICAgICMgVGhpcyBpcyBob3cgcmVjdm1zZygpIGNhbGN1bGF0ZXMgdGhlIGRhdGEgc2l6ZQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXQgLSBzb2NrZXQuQ01TR19MRU4oMCksIG4pCisgICAgICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChyZXQsIHNlbGYuc29ja2xlbl90X2xpbWl0KQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHNvY2tldC5DTVNHX0xFTiwgLTEpCisgICAgICAgICMgc2VuZG1zZygpIHNoYXJlcyBjb2RlIHdpdGggdGhlc2UgZnVuY3Rpb25zLCBhbmQgcmVxdWlyZXMKKyAgICAgICAgIyB0aGF0IGl0IHJlamVjdCB2YWx1ZXMgb3ZlciB0aGUgbGltaXQuCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHNvY2tldC5DTVNHX0xFTiwgdG9vYmlnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBzb2NrZXQuQ01TR19MRU4sIHN5cy5tYXhzaXplKQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJDTVNHX1NQQUNFIikKKyAgICBkZWYgdGVzdENNU0dfU1BBQ0Uoc2VsZik6CisgICAgICAgICMgVGVzdCBDTVNHX1NQQUNFKCkgd2l0aCB2YXJpb3VzIHZhbGlkIGFuZCBpbnZhbGlkIHZhbHVlcywKKyAgICAgICAgIyBjaGVja2luZyB0aGUgYXNzdW1wdGlvbnMgdXNlZCBieSBzZW5kbXNnKCkuCisgICAgICAgIHRvb2JpZyA9IHNlbGYuc29ja2xlbl90X2xpbWl0IC0gc29ja2V0LkNNU0dfU1BBQ0UoMSkgKyAxCisgICAgICAgIHZhbHVlcyA9IGxpc3QocmFuZ2UoMjU3KSkgKyBsaXN0KHJhbmdlKHRvb2JpZyAtIDI1NywgdG9vYmlnKSkKKworICAgICAgICBsYXN0ID0gc29ja2V0LkNNU0dfU1BBQ0UoMCkKKyAgICAgICAgIyBzdHJ1Y3QgY21zZ2hkciBoYXMgYXQgbGVhc3QgdGhyZWUgbWVtYmVycywgdHdvIG9mIHdoaWNoIGFyZSBpbnRzCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihsYXN0LCBhcnJheS5hcnJheSgiaSIpLml0ZW1zaXplICogMikKKyAgICAgICAgZm9yIG4gaW4gdmFsdWVzOgorICAgICAgICAgICAgcmV0ID0gc29ja2V0LkNNU0dfU1BBQ0UobikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKHJldCwgbGFzdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKHJldCwgc29ja2V0LkNNU0dfTEVOKG4pKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwocmV0LCBuICsgc29ja2V0LkNNU0dfTEVOKDApKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwocmV0LCBzZWxmLnNvY2tsZW5fdF9saW1pdCkKKyAgICAgICAgICAgIGxhc3QgPSByZXQKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBzb2NrZXQuQ01TR19TUEFDRSwgLTEpCisgICAgICAgICMgc2VuZG1zZygpIHNoYXJlcyBjb2RlIHdpdGggdGhlc2UgZnVuY3Rpb25zLCBhbmQgcmVxdWlyZXMKKyAgICAgICAgIyB0aGF0IGl0IHJlamVjdCB2YWx1ZXMgb3ZlciB0aGUgbGltaXQuCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHNvY2tldC5DTVNHX1NQQUNFLCB0b29iaWcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHNvY2tldC5DTVNHX1NQQUNFLCBzeXMubWF4c2l6ZSkKKworCitjbGFzcyBTQ01SaWdodHNUZXN0KFNlbmRyZWN2bXNnU2VydmVyVGltZW91dEJhc2UpOgorICAgICMgVGVzdHMgZm9yIGZpbGUgZGVzY3JpcHRvciBwYXNzaW5nIG9uIFVuaXgtZG9tYWluIHNvY2tldHMuCisKKyAgICAjIEludmFsaWQgZmlsZSBkZXNjcmlwdG9yIHZhbHVlIHRoYXQncyB1bmxpa2VseSB0byBldmFsdWF0ZSB0byBhCisgICAgIyByZWFsIEZEIGV2ZW4gaWYgb25lIG9mIGl0cyBieXRlcyBpcyByZXBsYWNlZCB3aXRoIGEgZGlmZmVyZW50CisgICAgIyB2YWx1ZSAod2hpY2ggc2hvdWxkbid0IGFjdHVhbGx5IGhhcHBlbikuCisgICAgYmFkZmQgPSAtMHg1NTU1CisKKyAgICBkZWYgbmV3RkRzKHNlbGYsIG4pOgorICAgICAgICAjIFJldHVybiBhIGxpc3Qgb2YgbiBmaWxlIGRlc2NyaXB0b3JzIGZvciBuZXdseS1jcmVhdGVkIGZpbGVzCisgICAgICAgICMgY29udGFpbmluZyB0aGVpciBsaXN0IGluZGljZXMgYXMgQVNDSUkgbnVtYmVycy4KKyAgICAgICAgZmRzID0gW10KKyAgICAgICAgZm9yIGkgaW4gcmFuZ2Uobik6CisgICAgICAgICAgICBmZCwgcGF0aCA9IHRlbXBmaWxlLm1rc3RlbXAoKQorICAgICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKG9zLnVubGluaywgcGF0aCkKKyAgICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChvcy5jbG9zZSwgZmQpCisgICAgICAgICAgICBvcy53cml0ZShmZCwgc3RyKGkpLmVuY29kZSgpKQorICAgICAgICAgICAgZmRzLmFwcGVuZChmZCkKKyAgICAgICAgcmV0dXJuIGZkcworCisgICAgZGVmIGNoZWNrRkRzKHNlbGYsIGZkcyk6CisgICAgICAgICMgQ2hlY2sgdGhhdCB0aGUgZmlsZSBkZXNjcmlwdG9ycyBpbiB0aGUgZ2l2ZW4gbGlzdCBjb250YWluCisgICAgICAgICMgdGhlaXIgY29ycmVjdCBsaXN0IGluZGljZXMgYXMgQVNDSUkgbnVtYmVycy4KKyAgICAgICAgZm9yIG4sIGZkIGluIGVudW1lcmF0ZShmZHMpOgorICAgICAgICAgICAgb3MubHNlZWsoZmQsIDAsIG9zLlNFRUtfU0VUKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5yZWFkKGZkLCAxMDI0KSwgc3RyKG4pLmVuY29kZSgpKQorCisgICAgZGVmIHJlZ2lzdGVyUmVjdm1zZ1Jlc3VsdChzZWxmLCByZXN1bHQpOgorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2VsZi5jbG9zZVJlY3Ztc2dGRHMsIHJlc3VsdCkKKworICAgIGRlZiBjbG9zZVJlY3Ztc2dGRHMoc2VsZiwgcmVjdm1zZ19yZXN1bHQpOgorICAgICAgICAjIENsb3NlIGFsbCBmaWxlIGRlc2NyaXB0b3JzIHNwZWNpZmllZCBpbiB0aGUgYW5jaWxsYXJ5IGRhdGEKKyAgICAgICAgIyBvZiB0aGUgZ2l2ZW4gcmV0dXJuIHZhbHVlIGZyb20gcmVjdm1zZygpIG9yIHJlY3Ztc2dfaW50bygpLgorICAgICAgICBmb3IgY21zZ19sZXZlbCwgY21zZ190eXBlLCBjbXNnX2RhdGEgaW4gcmVjdm1zZ19yZXN1bHRbMV06CisgICAgICAgICAgICBpZiAoY21zZ19sZXZlbCA9PSBzb2NrZXQuU09MX1NPQ0tFVCBhbmQKKyAgICAgICAgICAgICAgICAgICAgY21zZ190eXBlID09IHNvY2tldC5TQ01fUklHSFRTKToKKyAgICAgICAgICAgICAgICBmZHMgPSBhcnJheS5hcnJheSgiaSIpCisgICAgICAgICAgICAgICAgZmRzLmZyb21ieXRlcyhjbXNnX2RhdGFbOgorICAgICAgICAgICAgICAgICAgICAgICAgbGVuKGNtc2dfZGF0YSkgLSAobGVuKGNtc2dfZGF0YSkgJSBmZHMuaXRlbXNpemUpXSkKKyAgICAgICAgICAgICAgICBmb3IgZmQgaW4gZmRzOgorICAgICAgICAgICAgICAgICAgICBvcy5jbG9zZShmZCkKKworICAgIGRlZiBjcmVhdGVBbmRTZW5kRkRzKHNlbGYsIG4pOgorICAgICAgICAjIFNlbmQgbiBuZXcgZmlsZSBkZXNjcmlwdG9ycyBjcmVhdGVkIGJ5IG5ld0ZEcygpIHRvIHRoZQorICAgICAgICAjIHNlcnZlciwgd2l0aCB0aGUgY29uc3RhbnQgTVNHIGFzIHRoZSBub24tYW5jaWxsYXJ5IGRhdGEuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBzZWxmLnNlbmRtc2dUb1NlcnZlcihbTVNHXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoc29ja2V0LlNPTF9TT0NLRVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5TQ01fUklHSFRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheS5hcnJheSgiaSIsIHNlbGYubmV3RkRzKG4pKSldKSwKKyAgICAgICAgICAgIGxlbihNU0cpKQorCisgICAgZGVmIGNoZWNrUmVjdm1zZ0ZEcyhzZWxmLCBudW1mZHMsIHJlc3VsdCwgbWF4Y21zZ3M9MSwgaWdub3JlZmxhZ3M9MCk6CisgICAgICAgICMgQ2hlY2sgdGhhdCBjb25zdGFudCBNU0cgd2FzIHJlY2VpdmVkIHdpdGggbnVtZmRzIGZpbGUKKyAgICAgICAgIyBkZXNjcmlwdG9ycyBpbiBhIG1heGltdW0gb2YgbWF4Y21zZ3MgY29udHJvbCBtZXNzYWdlcyAod2hpY2gKKyAgICAgICAgIyBtdXN0IGNvbnRhaW4gb25seSBjb21wbGV0ZSBpbnRlZ2VycykuICBCeSBkZWZhdWx0LCBjaGVjaworICAgICAgICAjIHRoYXQgTVNHX0NUUlVOQyBpcyB1bnNldCwgYnV0IGlnbm9yZSBhbnkgZmxhZ3MgaW4KKyAgICAgICAgIyBpZ25vcmVmbGFncy4KKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHJlc3VsdAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZywgTVNHKQorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0FkZHJlc3MoYWRkciwgc2VsZi5jbGlfYWRkcikKKyAgICAgICAgc2VsZi5jaGVja0ZsYWdzKGZsYWdzLCBlb3I9VHJ1ZSwgY2hlY2t1bnNldD1zb2NrZXQuTVNHX0NUUlVOQywKKyAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZT1pZ25vcmVmbGFncykKKworICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoYW5jZGF0YSwgbGlzdCkKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwobGVuKGFuY2RhdGEpLCBtYXhjbXNncykKKyAgICAgICAgZmRzID0gYXJyYXkuYXJyYXkoImkiKQorICAgICAgICBmb3IgaXRlbSBpbiBhbmNkYXRhOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGl0ZW0sIHR1cGxlKQorICAgICAgICAgICAgY21zZ19sZXZlbCwgY21zZ190eXBlLCBjbXNnX2RhdGEgPSBpdGVtCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtc2dfbGV2ZWwsIHNvY2tldC5TT0xfU09DS0VUKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbXNnX3R5cGUsIHNvY2tldC5TQ01fUklHSFRTKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGNtc2dfZGF0YSwgYnl0ZXMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjbXNnX2RhdGEpICUgU0laRU9GX0lOVCwgMCkKKyAgICAgICAgICAgIGZkcy5mcm9tYnl0ZXMoY21zZ19kYXRhKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZkcyksIG51bWZkcykKKyAgICAgICAgc2VsZi5jaGVja0ZEcyhmZHMpCisKKyAgICBkZWYgdGVzdEZEUGFzc1NpbXBsZShzZWxmKToKKyAgICAgICAgIyBQYXNzIGEgc2luZ2xlIEZEIChhcnJheSByZWFkIGZyb20gYnl0ZXMgb2JqZWN0KS4KKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dGRHMoMSwgc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihNU0cpLCAxMDI0MCkpCisKKyAgICBkZWYgX3Rlc3RGRFBhc3NTaW1wbGUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBzZWxmLnNlbmRtc2dUb1NlcnZlcigKKyAgICAgICAgICAgICAgICBbTVNHXSwKKyAgICAgICAgICAgICAgICBbKHNvY2tldC5TT0xfU09DS0VULAorICAgICAgICAgICAgICAgICAgc29ja2V0LlNDTV9SSUdIVFMsCisgICAgICAgICAgICAgICAgICBhcnJheS5hcnJheSgiaSIsIHNlbGYubmV3RkRzKDEpKS50b2J5dGVzKCkpXSksCisgICAgICAgICAgICBsZW4oTVNHKSkKKworICAgIGRlZiB0ZXN0TXVsdGlwbGVGRFBhc3Moc2VsZik6CisgICAgICAgICMgUGFzcyBtdWx0aXBsZSBGRHMgaW4gYSBzaW5nbGUgYXJyYXkuCisgICAgICAgIHNlbGYuY2hlY2tSZWN2bXNnRkRzKDQsIHNlbGYuZG9SZWN2bXNnKHNlbGYuc2Vydl9zb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oTVNHKSwgMTAyNDApKQorCisgICAgZGVmIF90ZXN0TXVsdGlwbGVGRFBhc3Moc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlQW5kU2VuZEZEcyg0KQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJDTVNHX1NQQUNFIikKKyAgICBkZWYgdGVzdEZEUGFzc0NNU0dfU1BBQ0Uoc2VsZik6CisgICAgICAgICMgVGVzdCB1c2luZyBDTVNHX1NQQUNFKCkgdG8gY2FsY3VsYXRlIGFuY2lsbGFyeSBidWZmZXIgc2l6ZS4KKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dGRHMoCisgICAgICAgICAgICA0LCBzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywgbGVuKE1TRyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuQ01TR19TUEFDRSg0ICogU0laRU9GX0lOVCkpKQorCisgICAgQHRlc3RGRFBhc3NDTVNHX1NQQUNFLmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0RkRQYXNzQ01TR19TUEFDRShzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVBbmRTZW5kRkRzKDQpCisKKyAgICBkZWYgdGVzdEZEUGFzc0NNU0dfTEVOKHNlbGYpOgorICAgICAgICAjIFRlc3QgdXNpbmcgQ01TR19MRU4oKSB0byBjYWxjdWxhdGUgYW5jaWxsYXJ5IGJ1ZmZlciBzaXplLgorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0ZEcygxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywgbGVuKE1TRyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5DTVNHX0xFTig0ICogU0laRU9GX0lOVCkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFJGQyAzNTQyIHNheXMgaW1wbGVtZW50YXRpb25zIG1heSBzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBNU0dfQ1RSVU5DIGlmIHRoZXJlIGlzbid0IGVub3VnaCBzcGFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZvciB0cmFpbGluZyBwYWRkaW5nLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVmbGFncz1zb2NrZXQuTVNHX0NUUlVOQykKKworICAgIGRlZiBfdGVzdEZEUGFzc0NNU0dfTEVOKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZUFuZFNlbmRGRHMoMSkKKworICAgICMgSXNzdWUgIzEyOTU4OiBUaGUgZm9sbG93aW5nIHRlc3QgaGFzIHByb2JsZW1zIG9uIE1hYyBPUyBYCisgICAgQHN1cHBvcnQuYW50aWNpcGF0ZV9mYWlsdXJlKHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIikKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIkNNU0dfU1BBQ0UiKQorICAgIGRlZiB0ZXN0RkRQYXNzU2VwYXJhdGUoc2VsZik6CisgICAgICAgICMgUGFzcyB0d28gRkRzIGluIHR3byBzZXBhcmF0ZSBhcnJheXMuICBBcnJheXMgbWF5IGJlIGNvbWJpbmVkCisgICAgICAgICMgaW50byBhIHNpbmdsZSBjb250cm9sIG1lc3NhZ2UgYnkgdGhlIE9TLgorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0ZEcygyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywgbGVuKE1TRyksIDEwMjQwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Y21zZ3M9MikKKworICAgIEB0ZXN0RkRQYXNzU2VwYXJhdGUuY2xpZW50X3NraXAKKyAgICBAc3VwcG9ydC5hbnRpY2lwYXRlX2ZhaWx1cmUoc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iKQorICAgIGRlZiBfdGVzdEZEUGFzc1NlcGFyYXRlKHNlbGYpOgorICAgICAgICBmZDAsIGZkMSA9IHNlbGYubmV3RkRzKDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBzZWxmLnNlbmRtc2dUb1NlcnZlcihbTVNHXSwgWyhzb2NrZXQuU09MX1NPQ0tFVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5TQ01fUklHSFRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuYXJyYXkoImkiLCBbZmQwXSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc29ja2V0LlNPTF9TT0NLRVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuU0NNX1JJR0hUUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LmFycmF5KCJpIiwgW2ZkMV0pKV0pLAorICAgICAgICAgICAgbGVuKE1TRykpCisKKyAgICAjIElzc3VlICMxMjk1ODogVGhlIGZvbGxvd2luZyB0ZXN0IGhhcyBwcm9ibGVtcyBvbiBNYWMgT1MgWAorICAgIEBzdXBwb3J0LmFudGljaXBhdGVfZmFpbHVyZShzeXMucGxhdGZvcm0gPT0gImRhcndpbiIpCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJDTVNHX1NQQUNFIikKKyAgICBkZWYgdGVzdEZEUGFzc1NlcGFyYXRlTWluU3BhY2Uoc2VsZik6CisgICAgICAgICMgUGFzcyB0d28gRkRzIGluIHR3byBzZXBhcmF0ZSBhcnJheXMsIHJlY2VpdmluZyB0aGVtIGludG8gdGhlCisgICAgICAgICMgbWluaW11bSBzcGFjZSBmb3IgdHdvIGFycmF5cy4KKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dGRHMoMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssIGxlbihNU0cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuQ01TR19TUEFDRShTSVpFT0ZfSU5UKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5DTVNHX0xFTihTSVpFT0ZfSU5UKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGNtc2dzPTIsIGlnbm9yZWZsYWdzPXNvY2tldC5NU0dfQ1RSVU5DKQorCisgICAgQHRlc3RGRFBhc3NTZXBhcmF0ZU1pblNwYWNlLmNsaWVudF9za2lwCisgICAgQHN1cHBvcnQuYW50aWNpcGF0ZV9mYWlsdXJlKHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIikKKyAgICBkZWYgX3Rlc3RGRFBhc3NTZXBhcmF0ZU1pblNwYWNlKHNlbGYpOgorICAgICAgICBmZDAsIGZkMSA9IHNlbGYubmV3RkRzKDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCisgICAgICAgICAgICBzZWxmLnNlbmRtc2dUb1NlcnZlcihbTVNHXSwgWyhzb2NrZXQuU09MX1NPQ0tFVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5TQ01fUklHSFRTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuYXJyYXkoImkiLCBbZmQwXSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc29ja2V0LlNPTF9TT0NLRVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuU0NNX1JJR0hUUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5LmFycmF5KCJpIiwgW2ZkMV0pKV0pLAorICAgICAgICAgICAgbGVuKE1TRykpCisKKyAgICBkZWYgc2VuZEFuY2lsbGFyeUlmUG9zc2libGUoc2VsZiwgbXNnLCBhbmNkYXRhKToKKyAgICAgICAgIyBUcnkgdG8gc2VuZCBtc2cgYW5kIGFuY2RhdGEgdG8gc2VydmVyLCBidXQgaWYgdGhlIHN5c3RlbQorICAgICAgICAjIGNhbGwgZmFpbHMsIGp1c3Qgc2VuZCBtc2cgd2l0aCBubyBhbmNpbGxhcnkgZGF0YS4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbmJ5dGVzID0gc2VsZi5zZW5kbXNnVG9TZXJ2ZXIoW21zZ10sIGFuY2RhdGEpCisgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICAgICAgICAgICMgQ2hlY2sgdGhhdCBpdCB3YXMgdGhlIHN5c3RlbSBjYWxsIHRoYXQgZmFpbGVkCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoZS5lcnJubywgaW50KQorICAgICAgICAgICAgbmJ5dGVzID0gc2VsZi5zZW5kbXNnVG9TZXJ2ZXIoW21zZ10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmJ5dGVzLCBsZW4obXNnKSkKKworICAgIGRlZiB0ZXN0RkRQYXNzRW1wdHkoc2VsZik6CisgICAgICAgICMgVHJ5IHRvIHBhc3MgYW4gZW1wdHkgRkQgYXJyYXkuICBDYW4gcmVjZWl2ZSBlaXRoZXIgbm8gYXJyYXkKKyAgICAgICAgIyBvciBhbiBlbXB0eSBhcnJheS4KKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dGRHMoMCwgc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihNU0cpLCAxMDI0MCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZWZsYWdzPXNvY2tldC5NU0dfQ1RSVU5DKQorCisgICAgZGVmIF90ZXN0RkRQYXNzRW1wdHkoc2VsZik6CisgICAgICAgIHNlbGYuc2VuZEFuY2lsbGFyeUlmUG9zc2libGUoTVNHLCBbKHNvY2tldC5TT0xfU09DS0VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuU0NNX1JJR0hUUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiIiKV0pCisKKyAgICBkZWYgdGVzdEZEUGFzc1BhcnRpYWxJbnQoc2VsZik6CisgICAgICAgICMgVHJ5IHRvIHBhc3MgYSB0cnVuY2F0ZWQgRkQgYXJyYXkuCisgICAgICAgIG1zZywgYW5jZGF0YSwgZmxhZ3MsIGFkZHIgPSBzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihNU0cpLCAxMDI0MCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUsIGlnbm9yZT1zb2NrZXQuTVNHX0NUUlVOQykKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwobGVuKGFuY2RhdGEpLCAxKQorICAgICAgICBmb3IgY21zZ19sZXZlbCwgY21zZ190eXBlLCBjbXNnX2RhdGEgaW4gYW5jZGF0YToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY21zZ19sZXZlbCwgc29ja2V0LlNPTF9TT0NLRVQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtc2dfdHlwZSwgc29ja2V0LlNDTV9SSUdIVFMpCisgICAgICAgICAgICBzZWxmLmFzc2VydExlc3MobGVuKGNtc2dfZGF0YSksIFNJWkVPRl9JTlQpCisKKyAgICBkZWYgX3Rlc3RGRFBhc3NQYXJ0aWFsSW50KHNlbGYpOgorICAgICAgICBzZWxmLnNlbmRBbmNpbGxhcnlJZlBvc3NpYmxlKAorICAgICAgICAgICAgTVNHLAorICAgICAgICAgICAgWyhzb2NrZXQuU09MX1NPQ0tFVCwKKyAgICAgICAgICAgICAgc29ja2V0LlNDTV9SSUdIVFMsCisgICAgICAgICAgICAgIGFycmF5LmFycmF5KCJpIiwgW3NlbGYuYmFkZmRdKS50b2J5dGVzKClbOi0xXSldKQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJDTVNHX1NQQUNFIikKKyAgICBkZWYgdGVzdEZEUGFzc1BhcnRpYWxJbnRJbk1pZGRsZShzZWxmKToKKyAgICAgICAgIyBUcnkgdG8gcGFzcyB0d28gRkQgYXJyYXlzLCB0aGUgZmlyc3Qgb2Ygd2hpY2ggaXMgdHJ1bmNhdGVkLgorICAgICAgICBtc2csIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oTVNHKSwgMTAyNDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLCBNU0cpCisgICAgICAgIHNlbGYuY2hlY2tSZWN2bXNnQWRkcmVzcyhhZGRyLCBzZWxmLmNsaV9hZGRyKQorICAgICAgICBzZWxmLmNoZWNrRmxhZ3MoZmxhZ3MsIGVvcj1UcnVlLCBpZ25vcmU9c29ja2V0Lk1TR19DVFJVTkMpCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzc0VxdWFsKGxlbihhbmNkYXRhKSwgMikKKyAgICAgICAgZmRzID0gYXJyYXkuYXJyYXkoImkiKQorICAgICAgICAjIEFycmF5cyBtYXkgaGF2ZSBiZWVuIGNvbWJpbmVkIGluIGEgc2luZ2xlIGNvbnRyb2wgbWVzc2FnZQorICAgICAgICBmb3IgY21zZ19sZXZlbCwgY21zZ190eXBlLCBjbXNnX2RhdGEgaW4gYW5jZGF0YToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY21zZ19sZXZlbCwgc29ja2V0LlNPTF9TT0NLRVQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtc2dfdHlwZSwgc29ja2V0LlNDTV9SSUdIVFMpCisgICAgICAgICAgICBmZHMuZnJvbWJ5dGVzKGNtc2dfZGF0YVs6CisgICAgICAgICAgICAgICAgICAgIGxlbihjbXNnX2RhdGEpIC0gKGxlbihjbXNnX2RhdGEpICUgZmRzLml0ZW1zaXplKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzc0VxdWFsKGxlbihmZHMpLCAyKQorICAgICAgICBzZWxmLmNoZWNrRkRzKGZkcykKKworICAgIEB0ZXN0RkRQYXNzUGFydGlhbEludEluTWlkZGxlLmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0RkRQYXNzUGFydGlhbEludEluTWlkZGxlKHNlbGYpOgorICAgICAgICBmZDAsIGZkMSA9IHNlbGYubmV3RkRzKDIpCisgICAgICAgIHNlbGYuc2VuZEFuY2lsbGFyeUlmUG9zc2libGUoCisgICAgICAgICAgICBNU0csCisgICAgICAgICAgICBbKHNvY2tldC5TT0xfU09DS0VULAorICAgICAgICAgICAgICBzb2NrZXQuU0NNX1JJR0hUUywKKyAgICAgICAgICAgICAgYXJyYXkuYXJyYXkoImkiLCBbZmQwLCBzZWxmLmJhZGZkXSkudG9ieXRlcygpWzotMV0pLAorICAgICAgICAgICAgIChzb2NrZXQuU09MX1NPQ0tFVCwKKyAgICAgICAgICAgICAgc29ja2V0LlNDTV9SSUdIVFMsCisgICAgICAgICAgICAgIGFycmF5LmFycmF5KCJpIiwgW2ZkMV0pKV0pCisKKyAgICBkZWYgY2hlY2tUcnVuY2F0ZWRIZWFkZXIoc2VsZiwgcmVzdWx0LCBpZ25vcmVmbGFncz0wKToKKyAgICAgICAgIyBDaGVjayB0aGF0IG5vIGFuY2lsbGFyeSBkYXRhIGl0ZW1zIGFyZSByZXR1cm5lZCB3aGVuIGRhdGEgaXMKKyAgICAgICAgIyB0cnVuY2F0ZWQgaW5zaWRlIHRoZSBjbXNnaGRyIHN0cnVjdHVyZS4KKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHJlc3VsdAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZywgTVNHKQorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0FkZHJlc3MoYWRkciwgc2VsZi5jbGlfYWRkcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhbmNkYXRhLCBbXSkKKyAgICAgICAgc2VsZi5jaGVja0ZsYWdzKGZsYWdzLCBlb3I9VHJ1ZSwgY2hlY2tzZXQ9c29ja2V0Lk1TR19DVFJVTkMsCisgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmU9aWdub3JlZmxhZ3MpCisKKyAgICBkZWYgdGVzdENtc2dUcnVuY05vQnVmU2l6ZShzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IG5vIGFuY2lsbGFyeSBkYXRhIGlzIHJlY2VpdmVkIHdoZW4gbm8gYnVmZmVyIHNpemUKKyAgICAgICAgIyBpcyBzcGVjaWZpZWQuCisgICAgICAgIHNlbGYuY2hlY2tUcnVuY2F0ZWRIZWFkZXIoc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssIGxlbihNU0cpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEJTRCBzZWVtcyB0byBzZXQgTVNHX0NUUlVOQyBvbmx5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBhbiBpdGVtIGhhcyBiZWVuIHBhcnRpYWxseQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVjZWl2ZWQuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlZmxhZ3M9c29ja2V0Lk1TR19DVFJVTkMpCisKKyAgICBkZWYgX3Rlc3RDbXNnVHJ1bmNOb0J1ZlNpemUoc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlQW5kU2VuZEZEcygxKQorCisgICAgZGVmIHRlc3RDbXNnVHJ1bmMwKHNlbGYpOgorICAgICAgICAjIENoZWNrIHRoYXQgbm8gYW5jaWxsYXJ5IGRhdGEgaXMgcmVjZWl2ZWQgd2hlbiBidWZmZXIgc2l6ZSBpcyAwLgorICAgICAgICBzZWxmLmNoZWNrVHJ1bmNhdGVkSGVhZGVyKHNlbGYuZG9SZWN2bXNnKHNlbGYuc2Vydl9zb2NrLCBsZW4oTVNHKSwgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlZmxhZ3M9c29ja2V0Lk1TR19DVFJVTkMpCisKKyAgICBkZWYgX3Rlc3RDbXNnVHJ1bmMwKHNlbGYpOgorICAgICAgICBzZWxmLmNyZWF0ZUFuZFNlbmRGRHMoMSkKKworICAgICMgQ2hlY2sgdGhhdCBubyBhbmNpbGxhcnkgZGF0YSBpcyByZXR1cm5lZCBmb3IgdmFyaW91cyBub24temVybworICAgICMgKGJ1dCBzdGlsbCB0b28gc21hbGwpIGJ1ZmZlciBzaXplcy4KKworICAgIGRlZiB0ZXN0Q21zZ1RydW5jMShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja1RydW5jYXRlZEhlYWRlcihzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywgbGVuKE1TRyksIDEpKQorCisgICAgZGVmIF90ZXN0Q21zZ1RydW5jMShzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVBbmRTZW5kRkRzKDEpCisKKyAgICBkZWYgdGVzdENtc2dUcnVuYzJJbnQoc2VsZik6CisgICAgICAgICMgVGhlIGNtc2doZHIgc3RydWN0dXJlIGhhcyBhdCBsZWFzdCB0aHJlZSBtZW1iZXJzLCB0d28gb2YKKyAgICAgICAgIyB3aGljaCBhcmUgaW50cywgc28gd2Ugc3RpbGwgc2hvdWxkbid0IHNlZSBhbnkgYW5jaWxsYXJ5CisgICAgICAgICMgZGF0YS4KKyAgICAgICAgc2VsZi5jaGVja1RydW5jYXRlZEhlYWRlcihzZWxmLmRvUmVjdm1zZyhzZWxmLnNlcnZfc29jaywgbGVuKE1TRyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0laRU9GX0lOVCAqIDIpKQorCisgICAgZGVmIF90ZXN0Q21zZ1RydW5jMkludChzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVBbmRTZW5kRkRzKDEpCisKKyAgICBkZWYgdGVzdENtc2dUcnVuY0xlbjBNaW51czEoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tUcnVuY2F0ZWRIZWFkZXIoc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssIGxlbihNU0cpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5DTVNHX0xFTigwKSAtIDEpKQorCisgICAgZGVmIF90ZXN0Q21zZ1RydW5jTGVuME1pbnVzMShzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVBbmRTZW5kRkRzKDEpCisKKyAgICAjIFRoZSBmb2xsb3dpbmcgdGVzdHMgdHJ5IHRvIHRydW5jYXRlIHRoZSBjb250cm9sIG1lc3NhZ2UgaW4gdGhlCisgICAgIyBtaWRkbGUgb2YgdGhlIEZEIGFycmF5LgorCisgICAgZGVmIGNoZWNrVHJ1bmNhdGVkQXJyYXkoc2VsZiwgYW5jYnVmLCBtYXhkYXRhLCBtaW5kYXRhPTApOgorICAgICAgICAjIENoZWNrIHRoYXQgZmlsZSBkZXNjcmlwdG9yIGRhdGEgaXMgdHJ1bmNhdGVkIHRvIGJldHdlZW4KKyAgICAgICAgIyBtaW5kYXRhIGFuZCBtYXhkYXRhIGJ5dGVzIHdoZW4gcmVjZWl2ZWQgd2l0aCBidWZmZXIgc2l6ZQorICAgICAgICAjIGFuY2J1ZiwgYW5kIHRoYXQgYW55IGNvbXBsZXRlIGZpbGUgZGVzY3JpcHRvciBudW1iZXJzIGFyZQorICAgICAgICAjIHZhbGlkLgorICAgICAgICBtc2csIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oTVNHKSwgYW5jYnVmKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZywgTVNHKQorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0FkZHJlc3MoYWRkciwgc2VsZi5jbGlfYWRkcikKKyAgICAgICAgc2VsZi5jaGVja0ZsYWdzKGZsYWdzLCBlb3I9VHJ1ZSwgY2hlY2tzZXQ9c29ja2V0Lk1TR19DVFJVTkMpCisKKyAgICAgICAgaWYgbWluZGF0YSA9PSAwIGFuZCBhbmNkYXRhID09IFtdOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFuY2RhdGEpLCAxKQorICAgICAgICBjbXNnX2xldmVsLCBjbXNnX3R5cGUsIGNtc2dfZGF0YSA9IGFuY2RhdGFbMF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbXNnX2xldmVsLCBzb2NrZXQuU09MX1NPQ0tFVCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbXNnX3R5cGUsIHNvY2tldC5TQ01fUklHSFRTKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChsZW4oY21zZ19kYXRhKSwgbWluZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwobGVuKGNtc2dfZGF0YSksIG1heGRhdGEpCisgICAgICAgIGZkcyA9IGFycmF5LmFycmF5KCJpIikKKyAgICAgICAgZmRzLmZyb21ieXRlcyhjbXNnX2RhdGFbOgorICAgICAgICAgICAgICAgIGxlbihjbXNnX2RhdGEpIC0gKGxlbihjbXNnX2RhdGEpICUgZmRzLml0ZW1zaXplKV0pCisgICAgICAgIHNlbGYuY2hlY2tGRHMoZmRzKQorCisgICAgZGVmIHRlc3RDbXNnVHJ1bmNMZW4wKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrVHJ1bmNhdGVkQXJyYXkoYW5jYnVmPXNvY2tldC5DTVNHX0xFTigwKSwgbWF4ZGF0YT0wKQorCisgICAgZGVmIF90ZXN0Q21zZ1RydW5jTGVuMChzZWxmKToKKyAgICAgICAgc2VsZi5jcmVhdGVBbmRTZW5kRkRzKDEpCisKKyAgICBkZWYgdGVzdENtc2dUcnVuY0xlbjBQbHVzMShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja1RydW5jYXRlZEFycmF5KGFuY2J1Zj1zb2NrZXQuQ01TR19MRU4oMCkgKyAxLCBtYXhkYXRhPTEpCisKKyAgICBkZWYgX3Rlc3RDbXNnVHJ1bmNMZW4wUGx1czEoc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlQW5kU2VuZEZEcygyKQorCisgICAgZGVmIHRlc3RDbXNnVHJ1bmNMZW4xKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrVHJ1bmNhdGVkQXJyYXkoYW5jYnVmPXNvY2tldC5DTVNHX0xFTihTSVpFT0ZfSU5UKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGRhdGE9U0laRU9GX0lOVCkKKworICAgIGRlZiBfdGVzdENtc2dUcnVuY0xlbjEoc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlQW5kU2VuZEZEcygyKQorCisgICAgZGVmIHRlc3RDbXNnVHJ1bmNMZW4yTWludXMxKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrVHJ1bmNhdGVkQXJyYXkoYW5jYnVmPXNvY2tldC5DTVNHX0xFTigyICogU0laRU9GX0lOVCkgLSAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4ZGF0YT0oMiAqIFNJWkVPRl9JTlQpIC0gMSkKKworICAgIGRlZiBfdGVzdENtc2dUcnVuY0xlbjJNaW51czEoc2VsZik6CisgICAgICAgIHNlbGYuY3JlYXRlQW5kU2VuZEZEcygyKQorCisKK2NsYXNzIFJGQzM1NDJBbmNpbGxhcnlUZXN0KFNlbmRyZWN2bXNnU2VydmVyVGltZW91dEJhc2UpOgorICAgICMgVGVzdCBzZW5kbXNnKCkgYW5kIHJlY3Ztc2dbX2ludG9dKCkgdXNpbmcgdGhlIGFuY2lsbGFyeSBkYXRhCisgICAgIyBmZWF0dXJlcyBvZiB0aGUgUkZDIDM1NDIgQWR2YW5jZWQgU29ja2V0cyBBUEkgZm9yIElQdjYuCisgICAgIyBDdXJyZW50bHkgd2UgY2FuIG9ubHkgaGFuZGxlIGNlcnRhaW4gZGF0YSBpdGVtcyAoZS5nLiB0cmFmZmljCisgICAgIyBjbGFzcywgaG9wIGxpbWl0LCBNVFUgZGlzY292ZXJ5IGFuZCBmcmFnbWVudGF0aW9uIHNldHRpbmdzKQorICAgICMgd2l0aG91dCByZXNvcnRpbmcgdG8gdW5wb3J0YWJsZSBtZWFucyBzdWNoIGFzIHRoZSBzdHJ1Y3QgbW9kdWxlLAorICAgICMgYnV0IHRoZSB0ZXN0cyBoZXJlIGFyZSBhaW1lZCBhdCB0ZXN0aW5nIHRoZSBhbmNpbGxhcnkgZGF0YQorICAgICMgaGFuZGxpbmcgaW4gc2VuZG1zZygpIGFuZCByZWN2bXNnKCkgcmF0aGVyIHRoYW4gdGhlIElQdjYgQVBJCisgICAgIyBpdHNlbGYuCisKKyAgICAjIFRlc3QgdmFsdWUgdG8gdXNlIHdoZW4gc2V0dGluZyBob3AgbGltaXQgb2YgcGFja2V0CisgICAgaG9wX2xpbWl0ID0gMgorCisgICAgIyBUZXN0IHZhbHVlIHRvIHVzZSB3aGVuIHNldHRpbmcgdHJhZmZpYyBjbGFzcyBvZiBwYWNrZXQuCisgICAgIyAtMSBtZWFucyAidXNlIGtlcm5lbCBkZWZhdWx0Ii4KKyAgICB0cmFmZmljX2NsYXNzID0gLTEKKworICAgIGRlZiBhbmNpbGxhcnlNYXBwaW5nKHNlbGYsIGFuY2RhdGEpOgorICAgICAgICAjIEdpdmVuIGFuY2lsbGFyeSBkYXRhIGxpc3QgYW5jZGF0YSwgcmV0dXJuIGEgbWFwcGluZyBmcm9tCisgICAgICAgICMgcGFpcnMgKGNtc2dfbGV2ZWwsIGNtc2dfdHlwZSkgdG8gY29ycmVzcG9uZGluZyBjbXNnX2RhdGEuCisgICAgICAgICMgQ2hlY2sgdGhhdCBubyAobGV2ZWwsIHR5cGUpIHBhaXIgYXBwZWFycyBtb3JlIHRoYW4gb25jZS4KKyAgICAgICAgZCA9IHt9CisgICAgICAgIGZvciBjbXNnX2xldmVsLCBjbXNnX3R5cGUsIGNtc2dfZGF0YSBpbiBhbmNkYXRhOgorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbigoY21zZ19sZXZlbCwgY21zZ190eXBlKSwgZCkKKyAgICAgICAgICAgIGRbKGNtc2dfbGV2ZWwsIGNtc2dfdHlwZSldID0gY21zZ19kYXRhCisgICAgICAgIHJldHVybiBkCisKKyAgICBkZWYgY2hlY2tIb3BMaW1pdChzZWxmLCBhbmNidWZzaXplLCBtYXhob3A9MjU1LCBpZ25vcmVmbGFncz0wKToKKyAgICAgICAgIyBSZWNlaXZlIGhvcCBsaW1pdCBpbnRvIGFuY2J1ZnNpemUgYnl0ZXMgb2YgYW5jaWxsYXJ5IGRhdGEKKyAgICAgICAgIyBzcGFjZS4gIENoZWNrIHRoYXQgZGF0YSBpcyBNU0csIGFuY2lsbGFyeSBkYXRhIGlzIG5vdAorICAgICAgICAjIHRydW5jYXRlZCAoYnV0IGlnbm9yZSBhbnkgZmxhZ3MgaW4gaWdub3JlZmxhZ3MpLCBhbmQgaG9wCisgICAgICAgICMgbGltaXQgaXMgYmV0d2VlbiAwIGFuZCBtYXhob3AgaW5jbHVzaXZlLgorICAgICAgICBzZWxmLnNlcnZfc29jay5zZXRzb2Nrb3B0KHNvY2tldC5JUFBST1RPX0lQVjYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LklQVjZfUkVDVkhPUExJTUlULCAxKQorICAgICAgICBzZWxmLm1pc2NfZXZlbnQuc2V0KCkKKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHNlbGYuZG9SZWN2bXNnKHNlbGYuc2Vydl9zb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKE1TRyksIGFuY2J1ZnNpemUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUsIGNoZWNrdW5zZXQ9c29ja2V0Lk1TR19DVFJVTkMsCisgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmU9aWdub3JlZmxhZ3MpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYW5jZGF0YSksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShhbmNkYXRhWzBdLCB0dXBsZSkKKyAgICAgICAgY21zZ19sZXZlbCwgY21zZ190eXBlLCBjbXNnX2RhdGEgPSBhbmNkYXRhWzBdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY21zZ19sZXZlbCwgc29ja2V0LklQUFJPVE9fSVBWNikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbXNnX3R5cGUsIHNvY2tldC5JUFY2X0hPUExJTUlUKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoY21zZ19kYXRhLCBieXRlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY21zZ19kYXRhKSwgU0laRU9GX0lOVCkKKyAgICAgICAgYSA9IGFycmF5LmFycmF5KCJpIikKKyAgICAgICAgYS5mcm9tYnl0ZXMoY21zZ19kYXRhKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChhWzBdLCAwKQorICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChhWzBdLCBtYXhob3ApCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIklQVjZfUkVDVkhPUExJTUlUIiwgIklQVjZfSE9QTElNSVQiKQorICAgIGRlZiB0ZXN0UmVjdkhvcExpbWl0KHNlbGYpOgorICAgICAgICAjIFRlc3QgcmVjZWl2aW5nIHRoZSBwYWNrZXQgaG9wIGxpbWl0IGFzIGFuY2lsbGFyeSBkYXRhLgorICAgICAgICBzZWxmLmNoZWNrSG9wTGltaXQoYW5jYnVmc2l6ZT0xMDI0MCkKKworICAgIEB0ZXN0UmVjdkhvcExpbWl0LmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0UmVjdkhvcExpbWl0KHNlbGYpOgorICAgICAgICAjIE5lZWQgdG8gd2FpdCB1bnRpbCBzZXJ2ZXIgaGFzIGFza2VkIHRvIHJlY2VpdmUgYW5jaWxsYXJ5CisgICAgICAgICMgZGF0YSwgYXMgaW1wbGVtZW50YXRpb25zIGFyZSBub3QgcmVxdWlyZWQgdG8gYnVmZmVyIGl0CisgICAgICAgICMgb3RoZXJ3aXNlLgorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5taXNjX2V2ZW50LndhaXQodGltZW91dD1zZWxmLmZhaWxfdGltZW91dCkpCisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgIEByZXF1aXJlQXR0cnMoc29ja2V0LCAiQ01TR19TUEFDRSIsICJJUFY2X1JFQ1ZIT1BMSU1JVCIsICJJUFY2X0hPUExJTUlUIikKKyAgICBkZWYgdGVzdFJlY3ZIb3BMaW1pdENNU0dfU1BBQ0Uoc2VsZik6CisgICAgICAgICMgVGVzdCByZWNlaXZpbmcgaG9wIGxpbWl0LCB1c2luZyBDTVNHX1NQQUNFIHRvIGNhbGN1bGF0ZSBidWZmZXIgc2l6ZS4KKyAgICAgICAgc2VsZi5jaGVja0hvcExpbWl0KGFuY2J1ZnNpemU9c29ja2V0LkNNU0dfU1BBQ0UoU0laRU9GX0lOVCkpCisKKyAgICBAdGVzdFJlY3ZIb3BMaW1pdENNU0dfU1BBQ0UuY2xpZW50X3NraXAKKyAgICBkZWYgX3Rlc3RSZWN2SG9wTGltaXRDTVNHX1NQQUNFKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5taXNjX2V2ZW50LndhaXQodGltZW91dD1zZWxmLmZhaWxfdGltZW91dCkpCisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgICMgQ291bGQgdGVzdCByZWNlaXZpbmcgaW50byBidWZmZXIgc2l6ZWQgdXNpbmcgQ01TR19MRU4sIGJ1dCBSRkMKKyAgICAjIDM1NDIgc2F5cyBwb3J0YWJsZSBhcHBsaWNhdGlvbnMgbXVzdCBwcm92aWRlIHNwYWNlIGZvciB0cmFpbGluZworICAgICMgcGFkZGluZy4gIEltcGxlbWVudGF0aW9ucyBtYXkgc2V0IE1TR19DVFJVTkMgaWYgdGhlcmUgaXNuJ3QKKyAgICAjIGVub3VnaCBzcGFjZSBmb3IgdGhlIHBhZGRpbmcuCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJzZW5kbXNnIikKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIklQVjZfUkVDVkhPUExJTUlUIiwgIklQVjZfSE9QTElNSVQiKQorICAgIGRlZiB0ZXN0U2V0SG9wTGltaXQoc2VsZik6CisgICAgICAgICMgVGVzdCBzZXR0aW5nIGhvcCBsaW1pdCBvbiBvdXRnb2luZyBwYWNrZXQgYW5kIHJlY2VpdmluZyBpdAorICAgICAgICAjIGF0IHRoZSBvdGhlciBlbmQuCisgICAgICAgIHNlbGYuY2hlY2tIb3BMaW1pdChhbmNidWZzaXplPTEwMjQwLCBtYXhob3A9c2VsZi5ob3BfbGltaXQpCisKKyAgICBAdGVzdFNldEhvcExpbWl0LmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0U2V0SG9wTGltaXQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLm1pc2NfZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuZmFpbF90aW1lb3V0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIHNlbGYuc2VuZG1zZ1RvU2VydmVyKFtNU0ddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhzb2NrZXQuSVBQUk9UT19JUFY2LCBzb2NrZXQuSVBWNl9IT1BMSU1JVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuYXJyYXkoImkiLCBbc2VsZi5ob3BfbGltaXRdKSldKSwKKyAgICAgICAgICAgIGxlbihNU0cpKQorCisgICAgZGVmIGNoZWNrVHJhZmZpY0NsYXNzQW5kSG9wTGltaXQoc2VsZiwgYW5jYnVmc2l6ZSwgbWF4aG9wPTI1NSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVmbGFncz0wKToKKyAgICAgICAgIyBSZWNlaXZlIHRyYWZmaWMgY2xhc3MgYW5kIGhvcCBsaW1pdCBpbnRvIGFuY2J1ZnNpemUgYnl0ZXMgb2YKKyAgICAgICAgIyBhbmNpbGxhcnkgZGF0YSBzcGFjZS4gIENoZWNrIHRoYXQgZGF0YSBpcyBNU0csIGFuY2lsbGFyeQorICAgICAgICAjIGRhdGEgaXMgbm90IHRydW5jYXRlZCAoYnV0IGlnbm9yZSBhbnkgZmxhZ3MgaW4gaWdub3JlZmxhZ3MpLAorICAgICAgICAjIGFuZCB0cmFmZmljIGNsYXNzIGFuZCBob3AgbGltaXQgYXJlIGluIHJhbmdlIChob3AgbGltaXQgbm8KKyAgICAgICAgIyBtb3JlIHRoYW4gbWF4aG9wKS4KKyAgICAgICAgc2VsZi5zZXJ2X3NvY2suc2V0c29ja29wdChzb2NrZXQuSVBQUk9UT19JUFY2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5JUFY2X1JFQ1ZIT1BMSU1JVCwgMSkKKyAgICAgICAgc2VsZi5zZXJ2X3NvY2suc2V0c29ja29wdChzb2NrZXQuSVBQUk9UT19JUFY2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5JUFY2X1JFQ1ZUQ0xBU1MsIDEpCisgICAgICAgIHNlbGYubWlzY19ldmVudC5zZXQoKQorICAgICAgICBtc2csIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oTVNHKSwgYW5jYnVmc2l6ZSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1zZywgTVNHKQorICAgICAgICBzZWxmLmNoZWNrUmVjdm1zZ0FkZHJlc3MoYWRkciwgc2VsZi5jbGlfYWRkcikKKyAgICAgICAgc2VsZi5jaGVja0ZsYWdzKGZsYWdzLCBlb3I9VHJ1ZSwgY2hlY2t1bnNldD1zb2NrZXQuTVNHX0NUUlVOQywKKyAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZT1pZ25vcmVmbGFncykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYW5jZGF0YSksIDIpCisgICAgICAgIGFuY21hcCA9IHNlbGYuYW5jaWxsYXJ5TWFwcGluZyhhbmNkYXRhKQorCisgICAgICAgIHRjZGF0YSA9IGFuY21hcFsoc29ja2V0LklQUFJPVE9fSVBWNiwgc29ja2V0LklQVjZfVENMQVNTKV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odGNkYXRhKSwgU0laRU9GX0lOVCkKKyAgICAgICAgYSA9IGFycmF5LmFycmF5KCJpIikKKyAgICAgICAgYS5mcm9tYnl0ZXModGNkYXRhKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChhWzBdLCAwKQorICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChhWzBdLCAyNTUpCisKKyAgICAgICAgaGxkYXRhID0gYW5jbWFwWyhzb2NrZXQuSVBQUk9UT19JUFY2LCBzb2NrZXQuSVBWNl9IT1BMSU1JVCldCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGhsZGF0YSksIFNJWkVPRl9JTlQpCisgICAgICAgIGEgPSBhcnJheS5hcnJheSgiaSIpCisgICAgICAgIGEuZnJvbWJ5dGVzKGhsZGF0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwoYVswXSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwoYVswXSwgbWF4aG9wKQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJJUFY2X1JFQ1ZIT1BMSU1JVCIsICJJUFY2X0hPUExJTUlUIiwKKyAgICAgICAgICAgICAgICAgICJJUFY2X1JFQ1ZUQ0xBU1MiLCAiSVBWNl9UQ0xBU1MiKQorICAgIGRlZiB0ZXN0UmVjdlRyYWZmaWNDbGFzc0FuZEhvcExpbWl0KHNlbGYpOgorICAgICAgICAjIFRlc3QgcmVjZWl2aW5nIHRyYWZmaWMgY2xhc3MgYW5kIGhvcCBsaW1pdCBhcyBhbmNpbGxhcnkgZGF0YS4KKyAgICAgICAgc2VsZi5jaGVja1RyYWZmaWNDbGFzc0FuZEhvcExpbWl0KGFuY2J1ZnNpemU9MTAyNDApCisKKyAgICBAdGVzdFJlY3ZUcmFmZmljQ2xhc3NBbmRIb3BMaW1pdC5jbGllbnRfc2tpcAorICAgIGRlZiBfdGVzdFJlY3ZUcmFmZmljQ2xhc3NBbmRIb3BMaW1pdChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWlzY19ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5mYWlsX3RpbWVvdXQpKQorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihNU0cpCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIkNNU0dfU1BBQ0UiLCAiSVBWNl9SRUNWSE9QTElNSVQiLCAiSVBWNl9IT1BMSU1JVCIsCisgICAgICAgICAgICAgICAgICAiSVBWNl9SRUNWVENMQVNTIiwgIklQVjZfVENMQVNTIikKKyAgICBkZWYgdGVzdFJlY3ZUcmFmZmljQ2xhc3NBbmRIb3BMaW1pdENNU0dfU1BBQ0Uoc2VsZik6CisgICAgICAgICMgVGVzdCByZWNlaXZpbmcgdHJhZmZpYyBjbGFzcyBhbmQgaG9wIGxpbWl0LCB1c2luZworICAgICAgICAjIENNU0dfU1BBQ0UoKSB0byBjYWxjdWxhdGUgYnVmZmVyIHNpemUuCisgICAgICAgIHNlbGYuY2hlY2tUcmFmZmljQ2xhc3NBbmRIb3BMaW1pdCgKKyAgICAgICAgICAgIGFuY2J1ZnNpemU9c29ja2V0LkNNU0dfU1BBQ0UoU0laRU9GX0lOVCkgKiAyKQorCisgICAgQHRlc3RSZWN2VHJhZmZpY0NsYXNzQW5kSG9wTGltaXRDTVNHX1NQQUNFLmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0UmVjdlRyYWZmaWNDbGFzc0FuZEhvcExpbWl0Q01TR19TUEFDRShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWlzY19ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5mYWlsX3RpbWVvdXQpKQorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihNU0cpCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJzZW5kbXNnIikKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIkNNU0dfU1BBQ0UiLCAiSVBWNl9SRUNWSE9QTElNSVQiLCAiSVBWNl9IT1BMSU1JVCIsCisgICAgICAgICAgICAgICAgICAiSVBWNl9SRUNWVENMQVNTIiwgIklQVjZfVENMQVNTIikKKyAgICBkZWYgdGVzdFNldFRyYWZmaWNDbGFzc0FuZEhvcExpbWl0KHNlbGYpOgorICAgICAgICAjIFRlc3Qgc2V0dGluZyB0cmFmZmljIGNsYXNzIGFuZCBob3AgbGltaXQgb24gb3V0Z29pbmcgcGFja2V0LAorICAgICAgICAjIGFuZCByZWNlaXZpbmcgdGhlbSBhdCB0aGUgb3RoZXIgZW5kLgorICAgICAgICBzZWxmLmNoZWNrVHJhZmZpY0NsYXNzQW5kSG9wTGltaXQoYW5jYnVmc2l6ZT0xMDI0MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGhvcD1zZWxmLmhvcF9saW1pdCkKKworICAgIEB0ZXN0U2V0VHJhZmZpY0NsYXNzQW5kSG9wTGltaXQuY2xpZW50X3NraXAKKyAgICBkZWYgX3Rlc3RTZXRUcmFmZmljQ2xhc3NBbmRIb3BMaW1pdChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWlzY19ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5mYWlsX3RpbWVvdXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgc2VsZi5zZW5kbXNnVG9TZXJ2ZXIoW01TR10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHNvY2tldC5JUFBST1RPX0lQVjYsIHNvY2tldC5JUFY2X1RDTEFTUywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuYXJyYXkoImkiLCBbc2VsZi50cmFmZmljX2NsYXNzXSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzb2NrZXQuSVBQUk9UT19JUFY2LCBzb2NrZXQuSVBWNl9IT1BMSU1JVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXkuYXJyYXkoImkiLCBbc2VsZi5ob3BfbGltaXRdKSldKSwKKyAgICAgICAgICAgIGxlbihNU0cpKQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQuc29ja2V0LCAic2VuZG1zZyIpCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJDTVNHX1NQQUNFIiwgIklQVjZfUkVDVkhPUExJTUlUIiwgIklQVjZfSE9QTElNSVQiLAorICAgICAgICAgICAgICAgICAgIklQVjZfUkVDVlRDTEFTUyIsICJJUFY2X1RDTEFTUyIpCisgICAgZGVmIHRlc3RPZGRDbXNnU2l6ZShzZWxmKToKKyAgICAgICAgIyBUcnkgdG8gc2VuZCBhbmNpbGxhcnkgZGF0YSB3aXRoIGZpcnN0IGl0ZW0gb25lIGJ5dGUgdG9vCisgICAgICAgICMgbG9uZy4gIEZhbGwgYmFjayB0byBzZW5kaW5nIHdpdGggY29ycmVjdCBzaXplIGlmIHRoaXMgZmFpbHMsCisgICAgICAgICMgYW5kIGNoZWNrIHRoYXQgc2Vjb25kIGl0ZW0gd2FzIGhhbmRsZWQgY29ycmVjdGx5LgorICAgICAgICBzZWxmLmNoZWNrVHJhZmZpY0NsYXNzQW5kSG9wTGltaXQoYW5jYnVmc2l6ZT0xMDI0MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGhvcD1zZWxmLmhvcF9saW1pdCkKKworICAgIEB0ZXN0T2RkQ21zZ1NpemUuY2xpZW50X3NraXAKKyAgICBkZWYgX3Rlc3RPZGRDbXNnU2l6ZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWlzY19ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5mYWlsX3RpbWVvdXQpKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBuYnl0ZXMgPSBzZWxmLnNlbmRtc2dUb1NlcnZlcigKKyAgICAgICAgICAgICAgICBbTVNHXSwKKyAgICAgICAgICAgICAgICBbKHNvY2tldC5JUFBST1RPX0lQVjYsIHNvY2tldC5JUFY2X1RDTEFTUywKKyAgICAgICAgICAgICAgICAgIGFycmF5LmFycmF5KCJpIiwgW3NlbGYudHJhZmZpY19jbGFzc10pLnRvYnl0ZXMoKSArIGIiXHgwMCIpLAorICAgICAgICAgICAgICAgICAoc29ja2V0LklQUFJPVE9fSVBWNiwgc29ja2V0LklQVjZfSE9QTElNSVQsCisgICAgICAgICAgICAgICAgICBhcnJheS5hcnJheSgiaSIsIFtzZWxmLmhvcF9saW1pdF0pKV0pCisgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShlLmVycm5vLCBpbnQpCisgICAgICAgICAgICBuYnl0ZXMgPSBzZWxmLnNlbmRtc2dUb1NlcnZlcigKKyAgICAgICAgICAgICAgICBbTVNHXSwKKyAgICAgICAgICAgICAgICBbKHNvY2tldC5JUFBST1RPX0lQVjYsIHNvY2tldC5JUFY2X1RDTEFTUywKKyAgICAgICAgICAgICAgICAgIGFycmF5LmFycmF5KCJpIiwgW3NlbGYudHJhZmZpY19jbGFzc10pKSwKKyAgICAgICAgICAgICAgICAgKHNvY2tldC5JUFBST1RPX0lQVjYsIHNvY2tldC5JUFY2X0hPUExJTUlULAorICAgICAgICAgICAgICAgICAgYXJyYXkuYXJyYXkoImkiLCBbc2VsZi5ob3BfbGltaXRdKSldKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuYnl0ZXMsIGxlbihNU0cpKQorCisgICAgIyBUZXN0cyBmb3IgcHJvcGVyIGhhbmRsaW5nIG9mIHRydW5jYXRlZCBhbmNpbGxhcnkgZGF0YQorCisgICAgZGVmIGNoZWNrSG9wTGltaXRUcnVuY2F0ZWRIZWFkZXIoc2VsZiwgYW5jYnVmc2l6ZSwgaWdub3JlZmxhZ3M9MCk6CisgICAgICAgICMgUmVjZWl2ZSBob3AgbGltaXQgaW50byBhbmNidWZzaXplIGJ5dGVzIG9mIGFuY2lsbGFyeSBkYXRhCisgICAgICAgICMgc3BhY2UsIHdoaWNoIHNob3VsZCBiZSB0b28gc21hbGwgdG8gY29udGFpbiB0aGUgYW5jaWxsYXJ5CisgICAgICAgICMgZGF0YSBoZWFkZXIgKGlmIGFuY2J1ZnNpemUgaXMgTm9uZSwgcGFzcyBubyBzZWNvbmQgYXJndW1lbnQKKyAgICAgICAgIyB0byByZWN2bXNnKCkpLiAgQ2hlY2sgdGhhdCBkYXRhIGlzIE1TRywgTVNHX0NUUlVOQyBpcyBzZXQKKyAgICAgICAgIyAodW5sZXNzIGluY2x1ZGVkIGluIGlnbm9yZWZsYWdzKSwgYW5kIG5vIGFuY2lsbGFyeSBkYXRhIGlzCisgICAgICAgICMgcmV0dXJuZWQuCisgICAgICAgIHNlbGYuc2Vydl9zb2NrLnNldHNvY2tvcHQoc29ja2V0LklQUFJPVE9fSVBWNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuSVBWNl9SRUNWSE9QTElNSVQsIDEpCisgICAgICAgIHNlbGYubWlzY19ldmVudC5zZXQoKQorICAgICAgICBhcmdzID0gKCkgaWYgYW5jYnVmc2l6ZSBpcyBOb25lIGVsc2UgKGFuY2J1ZnNpemUsKQorICAgICAgICBtc2csIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5kb1JlY3Ztc2coc2VsZi5zZXJ2X3NvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oTVNHKSwgKmFyZ3MpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUsIGNoZWNrc2V0PXNvY2tldC5NU0dfQ1RSVU5DLAorICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlPWlnbm9yZWZsYWdzKQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJJUFY2X1JFQ1ZIT1BMSU1JVCIsICJJUFY2X0hPUExJTUlUIikKKyAgICBkZWYgdGVzdENtc2dUcnVuY05vQnVmU2l6ZShzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IG5vIGFuY2lsbGFyeSBkYXRhIGlzIHJlY2VpdmVkIHdoZW4gbm8gYW5jaWxsYXJ5CisgICAgICAgICMgYnVmZmVyIHNpemUgaXMgcHJvdmlkZWQuCisgICAgICAgIHNlbGYuY2hlY2tIb3BMaW1pdFRydW5jYXRlZEhlYWRlcihhbmNidWZzaXplPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEJTRCBzZWVtcyB0byBzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgTVNHX0NUUlVOQyBvbmx5IGlmIGFuIGl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaGFzIGJlZW4gcGFydGlhbGx5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlY2VpdmVkLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlZmxhZ3M9c29ja2V0Lk1TR19DVFJVTkMpCisKKyAgICBAdGVzdENtc2dUcnVuY05vQnVmU2l6ZS5jbGllbnRfc2tpcAorICAgIGRlZiBfdGVzdENtc2dUcnVuY05vQnVmU2l6ZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWlzY19ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5mYWlsX3RpbWVvdXQpKQorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihNU0cpCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIklQVjZfUkVDVkhPUExJTUlUIiwgIklQVjZfSE9QTElNSVQiKQorICAgIGRlZiB0ZXN0U2luZ2xlQ21zZ1RydW5jMChzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IG5vIGFuY2lsbGFyeSBkYXRhIGlzIHJlY2VpdmVkIHdoZW4gYW5jaWxsYXJ5CisgICAgICAgICMgYnVmZmVyIHNpemUgaXMgemVyby4KKyAgICAgICAgc2VsZi5jaGVja0hvcExpbWl0VHJ1bmNhdGVkSGVhZGVyKGFuY2J1ZnNpemU9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZWZsYWdzPXNvY2tldC5NU0dfQ1RSVU5DKQorCisgICAgQHRlc3RTaW5nbGVDbXNnVHJ1bmMwLmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0U2luZ2xlQ21zZ1RydW5jMChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWlzY19ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5mYWlsX3RpbWVvdXQpKQorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihNU0cpCisKKyAgICAjIENoZWNrIHRoYXQgbm8gYW5jaWxsYXJ5IGRhdGEgaXMgcmV0dXJuZWQgZm9yIHZhcmlvdXMgbm9uLXplcm8KKyAgICAjIChidXQgc3RpbGwgdG9vIHNtYWxsKSBidWZmZXIgc2l6ZXMuCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIklQVjZfUkVDVkhPUExJTUlUIiwgIklQVjZfSE9QTElNSVQiKQorICAgIGRlZiB0ZXN0U2luZ2xlQ21zZ1RydW5jMShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja0hvcExpbWl0VHJ1bmNhdGVkSGVhZGVyKGFuY2J1ZnNpemU9MSkKKworICAgIEB0ZXN0U2luZ2xlQ21zZ1RydW5jMS5jbGllbnRfc2tpcAorICAgIGRlZiBfdGVzdFNpbmdsZUNtc2dUcnVuYzEoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLm1pc2NfZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuZmFpbF90aW1lb3V0KSkKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoTVNHKQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJJUFY2X1JFQ1ZIT1BMSU1JVCIsICJJUFY2X0hPUExJTUlUIikKKyAgICBkZWYgdGVzdFNpbmdsZUNtc2dUcnVuYzJJbnQoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tIb3BMaW1pdFRydW5jYXRlZEhlYWRlcihhbmNidWZzaXplPTIgKiBTSVpFT0ZfSU5UKQorCisgICAgQHRlc3RTaW5nbGVDbXNnVHJ1bmMySW50LmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0U2luZ2xlQ21zZ1RydW5jMkludChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWlzY19ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5mYWlsX3RpbWVvdXQpKQorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihNU0cpCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIklQVjZfUkVDVkhPUExJTUlUIiwgIklQVjZfSE9QTElNSVQiKQorICAgIGRlZiB0ZXN0U2luZ2xlQ21zZ1RydW5jTGVuME1pbnVzMShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja0hvcExpbWl0VHJ1bmNhdGVkSGVhZGVyKGFuY2J1ZnNpemU9c29ja2V0LkNNU0dfTEVOKDApIC0gMSkKKworICAgIEB0ZXN0U2luZ2xlQ21zZ1RydW5jTGVuME1pbnVzMS5jbGllbnRfc2tpcAorICAgIGRlZiBfdGVzdFNpbmdsZUNtc2dUcnVuY0xlbjBNaW51czEoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLm1pc2NfZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuZmFpbF90aW1lb3V0KSkKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoTVNHKQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJJUFY2X1JFQ1ZIT1BMSU1JVCIsICJJUFY2X0hPUExJTUlUIikKKyAgICBkZWYgdGVzdFNpbmdsZUNtc2dUcnVuY0luRGF0YShzZWxmKToKKyAgICAgICAgIyBUZXN0IHRydW5jYXRpb24gb2YgYSBjb250cm9sIG1lc3NhZ2UgaW5zaWRlIGl0cyBhc3NvY2lhdGVkCisgICAgICAgICMgZGF0YS4gIFRoZSBtZXNzYWdlIG1heSBiZSByZXR1cm5lZCB3aXRoIGl0cyBkYXRhIHRydW5jYXRlZCwKKyAgICAgICAgIyBvciBub3QgcmV0dXJuZWQgYXQgYWxsLgorICAgICAgICBzZWxmLnNlcnZfc29jay5zZXRzb2Nrb3B0KHNvY2tldC5JUFBST1RPX0lQVjYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LklQVjZfUkVDVkhPUExJTUlULCAxKQorICAgICAgICBzZWxmLm1pc2NfZXZlbnQuc2V0KCkKKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHNlbGYuZG9SZWN2bXNnKAorICAgICAgICAgICAgc2VsZi5zZXJ2X3NvY2ssIGxlbihNU0cpLCBzb2NrZXQuQ01TR19MRU4oU0laRU9GX0lOVCkgLSAxKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXNnLCBNU0cpCisgICAgICAgIHNlbGYuY2hlY2tSZWN2bXNnQWRkcmVzcyhhZGRyLCBzZWxmLmNsaV9hZGRyKQorICAgICAgICBzZWxmLmNoZWNrRmxhZ3MoZmxhZ3MsIGVvcj1UcnVlLCBjaGVja3NldD1zb2NrZXQuTVNHX0NUUlVOQykKKworICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChsZW4oYW5jZGF0YSksIDEpCisgICAgICAgIGlmIGFuY2RhdGE6CisgICAgICAgICAgICBjbXNnX2xldmVsLCBjbXNnX3R5cGUsIGNtc2dfZGF0YSA9IGFuY2RhdGFbMF0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY21zZ19sZXZlbCwgc29ja2V0LklQUFJPVE9fSVBWNikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY21zZ190eXBlLCBzb2NrZXQuSVBWNl9IT1BMSU1JVCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhsZW4oY21zZ19kYXRhKSwgU0laRU9GX0lOVCkKKworICAgIEB0ZXN0U2luZ2xlQ21zZ1RydW5jSW5EYXRhLmNsaWVudF9za2lwCisgICAgZGVmIF90ZXN0U2luZ2xlQ21zZ1RydW5jSW5EYXRhKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5taXNjX2V2ZW50LndhaXQodGltZW91dD1zZWxmLmZhaWxfdGltZW91dCkpCisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgIGRlZiBjaGVja1RydW5jYXRlZFNlY29uZEhlYWRlcihzZWxmLCBhbmNidWZzaXplLCBpZ25vcmVmbGFncz0wKToKKyAgICAgICAgIyBSZWNlaXZlIHRyYWZmaWMgY2xhc3MgYW5kIGhvcCBsaW1pdCBpbnRvIGFuY2J1ZnNpemUgYnl0ZXMgb2YKKyAgICAgICAgIyBhbmNpbGxhcnkgZGF0YSBzcGFjZSwgd2hpY2ggc2hvdWxkIGJlIGxhcmdlIGVub3VnaCB0bworICAgICAgICAjIGNvbnRhaW4gdGhlIGZpcnN0IGl0ZW0sIGJ1dCB0b28gc21hbGwgdG8gY29udGFpbiB0aGUgaGVhZGVyCisgICAgICAgICMgb2YgdGhlIHNlY29uZC4gIENoZWNrIHRoYXQgZGF0YSBpcyBNU0csIE1TR19DVFJVTkMgaXMgc2V0CisgICAgICAgICMgKHVubGVzcyBpbmNsdWRlZCBpbiBpZ25vcmVmbGFncyksIGFuZCBvbmx5IG9uZSBhbmNpbGxhcnkKKyAgICAgICAgIyBkYXRhIGl0ZW0gaXMgcmV0dXJuZWQuCisgICAgICAgIHNlbGYuc2Vydl9zb2NrLnNldHNvY2tvcHQoc29ja2V0LklQUFJPVE9fSVBWNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuSVBWNl9SRUNWSE9QTElNSVQsIDEpCisgICAgICAgIHNlbGYuc2Vydl9zb2NrLnNldHNvY2tvcHQoc29ja2V0LklQUFJPVE9fSVBWNiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuSVBWNl9SRUNWVENMQVNTLCAxKQorICAgICAgICBzZWxmLm1pc2NfZXZlbnQuc2V0KCkKKyAgICAgICAgbXNnLCBhbmNkYXRhLCBmbGFncywgYWRkciA9IHNlbGYuZG9SZWN2bXNnKHNlbGYuc2Vydl9zb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKE1TRyksIGFuY2J1ZnNpemUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUsIGNoZWNrc2V0PXNvY2tldC5NU0dfQ1RSVU5DLAorICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlPWlnbm9yZWZsYWdzKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFuY2RhdGEpLCAxKQorICAgICAgICBjbXNnX2xldmVsLCBjbXNnX3R5cGUsIGNtc2dfZGF0YSA9IGFuY2RhdGFbMF0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbXNnX2xldmVsLCBzb2NrZXQuSVBQUk9UT19JUFY2KQorICAgICAgICBzZWxmLmFzc2VydEluKGNtc2dfdHlwZSwge3NvY2tldC5JUFY2X1RDTEFTUywgc29ja2V0LklQVjZfSE9QTElNSVR9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjbXNnX2RhdGEpLCBTSVpFT0ZfSU5UKQorICAgICAgICBhID0gYXJyYXkuYXJyYXkoImkiKQorICAgICAgICBhLmZyb21ieXRlcyhjbXNnX2RhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGFbMF0sIDApCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzc0VxdWFsKGFbMF0sIDI1NSkKKworICAgICMgVHJ5IHRoZSBhYm92ZSB0ZXN0IHdpdGggdmFyaW91cyBidWZmZXIgc2l6ZXMuCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldCwgIkNNU0dfU1BBQ0UiLCAiSVBWNl9SRUNWSE9QTElNSVQiLCAiSVBWNl9IT1BMSU1JVCIsCisgICAgICAgICAgICAgICAgICAiSVBWNl9SRUNWVENMQVNTIiwgIklQVjZfVENMQVNTIikKKyAgICBkZWYgdGVzdFNlY29uZENtc2dUcnVuYzAoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tUcnVuY2F0ZWRTZWNvbmRIZWFkZXIoc29ja2V0LkNNU0dfU1BBQ0UoU0laRU9GX0lOVCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlZmxhZ3M9c29ja2V0Lk1TR19DVFJVTkMpCisKKyAgICBAdGVzdFNlY29uZENtc2dUcnVuYzAuY2xpZW50X3NraXAKKyAgICBkZWYgX3Rlc3RTZWNvbmRDbXNnVHJ1bmMwKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5taXNjX2V2ZW50LndhaXQodGltZW91dD1zZWxmLmZhaWxfdGltZW91dCkpCisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgIEByZXF1aXJlQXR0cnMoc29ja2V0LCAiQ01TR19TUEFDRSIsICJJUFY2X1JFQ1ZIT1BMSU1JVCIsICJJUFY2X0hPUExJTUlUIiwKKyAgICAgICAgICAgICAgICAgICJJUFY2X1JFQ1ZUQ0xBU1MiLCAiSVBWNl9UQ0xBU1MiKQorICAgIGRlZiB0ZXN0U2Vjb25kQ21zZ1RydW5jMShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja1RydW5jYXRlZFNlY29uZEhlYWRlcihzb2NrZXQuQ01TR19TUEFDRShTSVpFT0ZfSU5UKSArIDEpCisKKyAgICBAdGVzdFNlY29uZENtc2dUcnVuYzEuY2xpZW50X3NraXAKKyAgICBkZWYgX3Rlc3RTZWNvbmRDbXNnVHJ1bmMxKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5taXNjX2V2ZW50LndhaXQodGltZW91dD1zZWxmLmZhaWxfdGltZW91dCkpCisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgIEByZXF1aXJlQXR0cnMoc29ja2V0LCAiQ01TR19TUEFDRSIsICJJUFY2X1JFQ1ZIT1BMSU1JVCIsICJJUFY2X0hPUExJTUlUIiwKKyAgICAgICAgICAgICAgICAgICJJUFY2X1JFQ1ZUQ0xBU1MiLCAiSVBWNl9UQ0xBU1MiKQorICAgIGRlZiB0ZXN0U2Vjb25kQ21zZ1RydW5jMkludChzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja1RydW5jYXRlZFNlY29uZEhlYWRlcihzb2NrZXQuQ01TR19TUEFDRShTSVpFT0ZfSU5UKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqIFNJWkVPRl9JTlQpCisKKyAgICBAdGVzdFNlY29uZENtc2dUcnVuYzJJbnQuY2xpZW50X3NraXAKKyAgICBkZWYgX3Rlc3RTZWNvbmRDbXNnVHJ1bmMySW50KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VsZi5taXNjX2V2ZW50LndhaXQodGltZW91dD1zZWxmLmZhaWxfdGltZW91dCkpCisgICAgICAgIHNlbGYuc2VuZFRvU2VydmVyKE1TRykKKworICAgIEByZXF1aXJlQXR0cnMoc29ja2V0LCAiQ01TR19TUEFDRSIsICJJUFY2X1JFQ1ZIT1BMSU1JVCIsICJJUFY2X0hPUExJTUlUIiwKKyAgICAgICAgICAgICAgICAgICJJUFY2X1JFQ1ZUQ0xBU1MiLCAiSVBWNl9UQ0xBU1MiKQorICAgIGRlZiB0ZXN0U2Vjb25kQ21zZ1RydW5jTGVuME1pbnVzMShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja1RydW5jYXRlZFNlY29uZEhlYWRlcihzb2NrZXQuQ01TR19TUEFDRShTSVpFT0ZfSU5UKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LkNNU0dfTEVOKDApIC0gMSkKKworICAgIEB0ZXN0U2Vjb25kQ21zZ1RydW5jTGVuME1pbnVzMS5jbGllbnRfc2tpcAorICAgIGRlZiBfdGVzdFNlY29uZENtc2dUcnVuY0xlbjBNaW51czEoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLm1pc2NfZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuZmFpbF90aW1lb3V0KSkKKyAgICAgICAgc2VsZi5zZW5kVG9TZXJ2ZXIoTVNHKQorCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQsICJDTVNHX1NQQUNFIiwgIklQVjZfUkVDVkhPUExJTUlUIiwgIklQVjZfSE9QTElNSVQiLAorICAgICAgICAgICAgICAgICAgIklQVjZfUkVDVlRDTEFTUyIsICJJUFY2X1RDTEFTUyIpCisgICAgZGVmIHRlc3RTZWNvbWRDbXNnVHJ1bmNJbkRhdGEoc2VsZik6CisgICAgICAgICMgVGVzdCB0cnVuY2F0aW9uIG9mIHRoZSBzZWNvbmQgb2YgdHdvIGNvbnRyb2wgbWVzc2FnZXMgaW5zaWRlCisgICAgICAgICMgaXRzIGFzc29jaWF0ZWQgZGF0YS4KKyAgICAgICAgc2VsZi5zZXJ2X3NvY2suc2V0c29ja29wdChzb2NrZXQuSVBQUk9UT19JUFY2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5JUFY2X1JFQ1ZIT1BMSU1JVCwgMSkKKyAgICAgICAgc2VsZi5zZXJ2X3NvY2suc2V0c29ja29wdChzb2NrZXQuSVBQUk9UT19JUFY2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldC5JUFY2X1JFQ1ZUQ0xBU1MsIDEpCisgICAgICAgIHNlbGYubWlzY19ldmVudC5zZXQoKQorICAgICAgICBtc2csIGFuY2RhdGEsIGZsYWdzLCBhZGRyID0gc2VsZi5kb1JlY3Ztc2coCisgICAgICAgICAgICBzZWxmLnNlcnZfc29jaywgbGVuKE1TRyksCisgICAgICAgICAgICBzb2NrZXQuQ01TR19TUEFDRShTSVpFT0ZfSU5UKSArIHNvY2tldC5DTVNHX0xFTihTSVpFT0ZfSU5UKSAtIDEpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIE1TRykKKyAgICAgICAgc2VsZi5jaGVja1JlY3Ztc2dBZGRyZXNzKGFkZHIsIHNlbGYuY2xpX2FkZHIpCisgICAgICAgIHNlbGYuY2hlY2tGbGFncyhmbGFncywgZW9yPVRydWUsIGNoZWNrc2V0PXNvY2tldC5NU0dfQ1RSVU5DKQorCisgICAgICAgIGNtc2dfdHlwZXMgPSB7c29ja2V0LklQVjZfVENMQVNTLCBzb2NrZXQuSVBWNl9IT1BMSU1JVH0KKworICAgICAgICBjbXNnX2xldmVsLCBjbXNnX3R5cGUsIGNtc2dfZGF0YSA9IGFuY2RhdGEucG9wKDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY21zZ19sZXZlbCwgc29ja2V0LklQUFJPVE9fSVBWNikKKyAgICAgICAgY21zZ190eXBlcy5yZW1vdmUoY21zZ190eXBlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjbXNnX2RhdGEpLCBTSVpFT0ZfSU5UKQorICAgICAgICBhID0gYXJyYXkuYXJyYXkoImkiKQorICAgICAgICBhLmZyb21ieXRlcyhjbXNnX2RhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGFbMF0sIDApCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzc0VxdWFsKGFbMF0sIDI1NSkKKworICAgICAgICBpZiBhbmNkYXRhOgorICAgICAgICAgICAgY21zZ19sZXZlbCwgY21zZ190eXBlLCBjbXNnX2RhdGEgPSBhbmNkYXRhLnBvcCgwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbXNnX2xldmVsLCBzb2NrZXQuSVBQUk9UT19JUFY2KQorICAgICAgICAgICAgY21zZ190eXBlcy5yZW1vdmUoY21zZ190eXBlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRMZXNzKGxlbihjbXNnX2RhdGEpLCBTSVpFT0ZfSU5UKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYW5jZGF0YSwgW10pCisKKyAgICBAdGVzdFNlY29tZENtc2dUcnVuY0luRGF0YS5jbGllbnRfc2tpcAorICAgIGRlZiBfdGVzdFNlY29tZENtc2dUcnVuY0luRGF0YShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNlbGYubWlzY19ldmVudC53YWl0KHRpbWVvdXQ9c2VsZi5mYWlsX3RpbWVvdXQpKQorICAgICAgICBzZWxmLnNlbmRUb1NlcnZlcihNU0cpCisKKworIyBEZXJpdmUgY29uY3JldGUgdGVzdCBjbGFzc2VzIGZvciBkaWZmZXJlbnQgc29ja2V0IHR5cGVzLgorCitjbGFzcyBTZW5kcmVjdm1zZ1VEUFRlc3RCYXNlKFNlbmRyZWN2bXNnRGdyYW1GbGFnc0Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRyZWN2bXNnQ29ubmVjdGlvbmxlc3NCYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJlYWRlZFNvY2tldFRlc3RNaXhpbiwgVURQVGVzdEJhc2UpOgorICAgIHBhc3MKKworQHJlcXVpcmVBdHRycyhzb2NrZXQuc29ja2V0LCAic2VuZG1zZyIpCitAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWQsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQorY2xhc3MgU2VuZG1zZ1VEUFRlc3QoU2VuZG1zZ0Nvbm5lY3Rpb25sZXNzVGVzdHMsIFNlbmRyZWN2bXNnVURQVGVzdEJhc2UpOgorICAgIHBhc3MKKworQHJlcXVpcmVBdHRycyhzb2NrZXQuc29ja2V0LCAicmVjdm1zZyIpCitAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWQsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQorY2xhc3MgUmVjdm1zZ1VEUFRlc3QoUmVjdm1zZ1Rlc3RzLCBTZW5kcmVjdm1zZ1VEUFRlc3RCYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInJlY3Ztc2dfaW50byIpCitAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWQsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQorY2xhc3MgUmVjdm1zZ0ludG9VRFBUZXN0KFJlY3Ztc2dJbnRvVGVzdHMsIFNlbmRyZWN2bXNnVURQVGVzdEJhc2UpOgorICAgIHBhc3MKKworCitjbGFzcyBTZW5kcmVjdm1zZ1VEUDZUZXN0QmFzZShTZW5kcmVjdm1zZ0RncmFtRmxhZ3NCYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZHJlY3Ztc2dDb25uZWN0aW9ubGVzc0Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJlYWRlZFNvY2tldFRlc3RNaXhpbiwgVURQNlRlc3RCYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInNlbmRtc2ciKQorQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5JUFY2X0VOQUJMRUQsICdJUHY2IHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK0ByZXF1aXJlU29ja2V0KCJBRl9JTkVUNiIsICJTT0NLX0RHUkFNIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBTZW5kbXNnVURQNlRlc3QoU2VuZG1zZ0Nvbm5lY3Rpb25sZXNzVGVzdHMsIFNlbmRyZWN2bXNnVURQNlRlc3RCYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInJlY3Ztc2ciKQorQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5JUFY2X0VOQUJMRUQsICdJUHY2IHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK0ByZXF1aXJlU29ja2V0KCJBRl9JTkVUNiIsICJTT0NLX0RHUkFNIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBSZWN2bXNnVURQNlRlc3QoUmVjdm1zZ1Rlc3RzLCBTZW5kcmVjdm1zZ1VEUDZUZXN0QmFzZSk6CisgICAgcGFzcworCitAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJyZWN2bXNnX2ludG8iKQorQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5JUFY2X0VOQUJMRUQsICdJUHY2IHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK0ByZXF1aXJlU29ja2V0KCJBRl9JTkVUNiIsICJTT0NLX0RHUkFNIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBSZWN2bXNnSW50b1VEUDZUZXN0KFJlY3Ztc2dJbnRvVGVzdHMsIFNlbmRyZWN2bXNnVURQNlRlc3RCYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInJlY3Ztc2ciKQorQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5JUFY2X0VOQUJMRUQsICdJUHY2IHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK0ByZXF1aXJlQXR0cnMoc29ja2V0LCAiSVBQUk9UT19JUFY2IikKK0ByZXF1aXJlU29ja2V0KCJBRl9JTkVUNiIsICJTT0NLX0RHUkFNIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBSZWN2bXNnUkZDMzU0MkFuY2lsbGFyeVVEUDZUZXN0KFJGQzM1NDJBbmNpbGxhcnlUZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kcmVjdm1zZ1VEUDZUZXN0QmFzZSk6CisgICAgcGFzcworCitAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJyZWN2bXNnX2ludG8iKQorQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3VwcG9ydC5JUFY2X0VOQUJMRUQsICdJUHY2IHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK0ByZXF1aXJlQXR0cnMoc29ja2V0LCAiSVBQUk9UT19JUFY2IikKK0ByZXF1aXJlU29ja2V0KCJBRl9JTkVUNiIsICJTT0NLX0RHUkFNIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBSZWN2bXNnSW50b1JGQzM1NDJBbmNpbGxhcnlVRFA2VGVzdChSZWN2bXNnSW50b01peGluLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUkZDMzU0MkFuY2lsbGFyeVRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kcmVjdm1zZ1VEUDZUZXN0QmFzZSk6CisgICAgcGFzcworCisKK2NsYXNzIFNlbmRyZWN2bXNnVENQVGVzdEJhc2UoU2VuZHJlY3Ztc2dDb25uZWN0ZWRCYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25uZWN0ZWRTdHJlYW1UZXN0TWl4aW4sIFRDUFRlc3RCYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInNlbmRtc2ciKQorQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK2NsYXNzIFNlbmRtc2dUQ1BUZXN0KFNlbmRtc2dTdHJlYW1UZXN0cywgU2VuZHJlY3Ztc2dUQ1BUZXN0QmFzZSk6CisgICAgcGFzcworCitAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJyZWN2bXNnIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBSZWN2bXNnVENQVGVzdChSZWN2bXNnVGVzdHMsIFJlY3Ztc2dHZW5lcmljU3RyZWFtVGVzdHMsCisgICAgICAgICAgICAgICAgICAgICBTZW5kcmVjdm1zZ1RDUFRlc3RCYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInJlY3Ztc2dfaW50byIpCitAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWQsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQorY2xhc3MgUmVjdm1zZ0ludG9UQ1BUZXN0KFJlY3Ztc2dJbnRvVGVzdHMsIFJlY3Ztc2dHZW5lcmljU3RyZWFtVGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZHJlY3Ztc2dUQ1BUZXN0QmFzZSk6CisgICAgcGFzcworCisKK2NsYXNzIFNlbmRyZWN2bXNnU0NUUFN0cmVhbVRlc3RCYXNlKFNlbmRyZWN2bXNnU0NUUEZsYWdzQmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRyZWN2bXNnQ29ubmVjdGVkQmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbm5lY3RlZFN0cmVhbVRlc3RNaXhpbiwgU0NUUFN0cmVhbUJhc2UpOgorICAgIHBhc3MKKworQHJlcXVpcmVBdHRycyhzb2NrZXQuc29ja2V0LCAic2VuZG1zZyIpCitAcmVxdWlyZVNvY2tldCgiQUZfSU5FVCIsICJTT0NLX1NUUkVBTSIsICJJUFBST1RPX1NDVFAiKQorQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK2NsYXNzIFNlbmRtc2dTQ1RQU3RyZWFtVGVzdChTZW5kbXNnU3RyZWFtVGVzdHMsIFNlbmRyZWN2bXNnU0NUUFN0cmVhbVRlc3RCYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInJlY3Ztc2ciKQorQHJlcXVpcmVTb2NrZXQoIkFGX0lORVQiLCAiU09DS19TVFJFQU0iLCAiSVBQUk9UT19TQ1RQIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBSZWN2bXNnU0NUUFN0cmVhbVRlc3QoUmVjdm1zZ1Rlc3RzLCBSZWN2bXNnR2VuZXJpY1N0cmVhbVRlc3RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRyZWN2bXNnU0NUUFN0cmVhbVRlc3RCYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInJlY3Ztc2dfaW50byIpCitAcmVxdWlyZVNvY2tldCgiQUZfSU5FVCIsICJTT0NLX1NUUkVBTSIsICJJUFBST1RPX1NDVFAiKQorQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK2NsYXNzIFJlY3Ztc2dJbnRvU0NUUFN0cmVhbVRlc3QoUmVjdm1zZ0ludG9UZXN0cywgUmVjdm1zZ0dlbmVyaWNTdHJlYW1UZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VuZHJlY3Ztc2dTQ1RQU3RyZWFtVGVzdEJhc2UpOgorICAgIHBhc3MKKworCitjbGFzcyBTZW5kcmVjdm1zZ1VuaXhTdHJlYW1UZXN0QmFzZShTZW5kcmVjdm1zZ0Nvbm5lY3RlZEJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25uZWN0ZWRTdHJlYW1UZXN0TWl4aW4sIFVuaXhTdHJlYW1CYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInNlbmRtc2ciKQorQHJlcXVpcmVBdHRycyhzb2NrZXQsICJBRl9VTklYIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBTZW5kbXNnVW5peFN0cmVhbVRlc3QoU2VuZG1zZ1N0cmVhbVRlc3RzLCBTZW5kcmVjdm1zZ1VuaXhTdHJlYW1UZXN0QmFzZSk6CisgICAgcGFzcworCitAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJyZWN2bXNnIikKK0ByZXF1aXJlQXR0cnMoc29ja2V0LCAiQUZfVU5JWCIpCitAdW5pdHRlc3Quc2tpcFVubGVzcyh0aHJlYWQsICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQorY2xhc3MgUmVjdm1zZ1VuaXhTdHJlYW1UZXN0KFJlY3Ztc2dUZXN0cywgUmVjdm1zZ0dlbmVyaWNTdHJlYW1UZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kcmVjdm1zZ1VuaXhTdHJlYW1UZXN0QmFzZSk6CisgICAgcGFzcworCitAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJyZWN2bXNnX2ludG8iKQorQHJlcXVpcmVBdHRycyhzb2NrZXQsICJBRl9VTklYIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBSZWN2bXNnSW50b1VuaXhTdHJlYW1UZXN0KFJlY3Ztc2dJbnRvVGVzdHMsIFJlY3Ztc2dHZW5lcmljU3RyZWFtVGVzdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbmRyZWN2bXNnVW5peFN0cmVhbVRlc3RCYXNlKToKKyAgICBwYXNzCisKK0ByZXF1aXJlQXR0cnMoc29ja2V0LnNvY2tldCwgInNlbmRtc2ciLCAicmVjdm1zZyIpCitAcmVxdWlyZUF0dHJzKHNvY2tldCwgIkFGX1VOSVgiLCAiU09MX1NPQ0tFVCIsICJTQ01fUklHSFRTIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBSZWN2bXNnU0NNUmlnaHRzU3RyZWFtVGVzdChTQ01SaWdodHNUZXN0LCBTZW5kcmVjdm1zZ1VuaXhTdHJlYW1UZXN0QmFzZSk6CisgICAgcGFzcworCitAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJzZW5kbXNnIiwgInJlY3Ztc2dfaW50byIpCitAcmVxdWlyZUF0dHJzKHNvY2tldCwgIkFGX1VOSVgiLCAiU09MX1NPQ0tFVCIsICJTQ01fUklHSFRTIikKK0B1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCitjbGFzcyBSZWN2bXNnSW50b1NDTVJpZ2h0c1N0cmVhbVRlc3QoUmVjdm1zZ0ludG9NaXhpbiwgU0NNUmlnaHRzVGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZW5kcmVjdm1zZ1VuaXhTdHJlYW1UZXN0QmFzZSk6CisgICAgcGFzcworCisKKyMgVGVzdCBpbnRlcnJ1cHRpbmcgdGhlIGludGVycnVwdGlibGUgc2VuZC9yZWNlaXZlIG1ldGhvZHMgd2l0aCBhCisjIHNpZ25hbCB3aGVuIGEgdGltZW91dCBpcyBzZXQuICBUaGVzZSB0ZXN0cyBhdm9pZCBoYXZpbmcgbXVsdGlwbGUKKyMgdGhyZWFkcyBhbGl2ZSBkdXJpbmcgdGhlIHRlc3Qgc28gdGhhdCB0aGUgT1MgY2Fubm90IGRlbGl2ZXIgdGhlCisjIHNpZ25hbCB0byB0aGUgd3Jvbmcgb25lLgorCitjbGFzcyBJbnRlcnJ1cHRlZFRpbWVvdXRCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAjIEJhc2UgY2xhc3MgZm9yIGludGVycnVwdGVkIHNlbmQvcmVjZWl2ZSB0ZXN0cy4gIEluc3RhbGxzIGFuCisgICAgIyBlbXB0eSBoYW5kbGVyIGZvciBTSUdBTFJNIGFuZCByZW1vdmVzIGl0IG9uIHRlYXJkb3duLCBhbG9uZyB3aXRoCisgICAgIyBhbnkgc2NoZWR1bGVkIGFsYXJtcy4KKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoKS5zZXRVcCgpCisgICAgICAgIG9yaWdfYWxybV9oYW5kbGVyID0gc2lnbmFsLnNpZ25hbChzaWduYWwuU0lHQUxSTSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSBzaWdudW0sIGZyYW1lOiBOb25lKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2lnbmFsLnNpZ25hbCwgc2lnbmFsLlNJR0FMUk0sIG9yaWdfYWxybV9oYW5kbGVyKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2VsZi5zZXRBbGFybSwgMCkKKworICAgICMgVGltZW91dCBmb3Igc29ja2V0IG9wZXJhdGlvbnMKKyAgICB0aW1lb3V0ID0gNC4wCisKKyAgICAjIFByb3ZpZGUgc2V0QWxhcm0oKSBtZXRob2QgdG8gc2NoZWR1bGUgZGVsaXZlcnkgb2YgU0lHQUxSTSBhZnRlcgorICAgICMgZ2l2ZW4gbnVtYmVyIG9mIHNlY29uZHMsIG9yIGNhbmNlbCBpdCBpZiB6ZXJvLCBhbmQgYW4KKyAgICAjIGFwcHJvcHJpYXRlIHRpbWUgdmFsdWUgdG8gdXNlLiAgVXNlIHNldGl0aW1lcigpIGlmIGF2YWlsYWJsZS4KKyAgICBpZiBoYXNhdHRyKHNpZ25hbCwgInNldGl0aW1lciIpOgorICAgICAgICBhbGFybV90aW1lID0gMC4wNQorCisgICAgICAgIGRlZiBzZXRBbGFybShzZWxmLCBzZWNvbmRzKToKKyAgICAgICAgICAgIHNpZ25hbC5zZXRpdGltZXIoc2lnbmFsLklUSU1FUl9SRUFMLCBzZWNvbmRzKQorICAgIGVsc2U6CisgICAgICAgICMgT2xkIHN5c3RlbXMgbWF5IGRlbGl2ZXIgdGhlIGFsYXJtIHVwIHRvIG9uZSBzZWNvbmQgZWFybHkKKyAgICAgICAgYWxhcm1fdGltZSA9IDIKKworICAgICAgICBkZWYgc2V0QWxhcm0oc2VsZiwgc2Vjb25kcyk6CisgICAgICAgICAgICBzaWduYWwuYWxhcm0oc2Vjb25kcykKKworCisjIFJlcXVpcmUgc2lnaW50ZXJydXB0KCkgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgc3lzdGVtIGNhbGxzIGFyZQorIyBpbnRlcnJ1cHRlZCBieSBkZWZhdWx0LgorQHJlcXVpcmVBdHRycyhzaWduYWwsICJzaWdpbnRlcnJ1cHQiKQorQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzaWduYWwsICJhbGFybSIpIG9yIGhhc2F0dHIoc2lnbmFsLCAic2V0aXRpbWVyIiksCisgICAgICAgICAgICAgICAgICAgICAiRG9uJ3QgaGF2ZSBzaWduYWwuYWxhcm0gb3Igc2lnbmFsLnNldGl0aW1lciIpCitjbGFzcyBJbnRlcnJ1cHRlZFJlY3ZUaW1lb3V0VGVzdChJbnRlcnJ1cHRlZFRpbWVvdXRCYXNlLCBVRFBUZXN0QmFzZSk6CisgICAgIyBUZXN0IGludGVycnVwdGluZyB0aGUgcmVjdiooKSBtZXRob2RzIHdpdGggc2lnbmFscyB3aGVuIGEKKyAgICAjIHRpbWVvdXQgaXMgc2V0LgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcigpLnNldFVwKCkKKyAgICAgICAgc2VsZi5zZXJ2LnNldHRpbWVvdXQoc2VsZi50aW1lb3V0KQorCisgICAgZGVmIGNoZWNrSW50ZXJydXB0ZWRSZWN2KHNlbGYsIGZ1bmMsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICMgQ2hlY2sgdGhhdCBmdW5jKCphcmdzLCAqKmt3YXJncykgcmFpc2VzIHNvY2tldC5lcnJvciB3aXRoIGFuCisgICAgICAgICMgZXJybm8gb2YgRUlOVFIgd2hlbiBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbC4KKyAgICAgICAgc2VsZi5zZXRBbGFybShzZWxmLmFsYXJtX3RpbWUpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoc29ja2V0LmVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIGZ1bmMoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmFzc2VydE5vdElzSW5zdGFuY2UoY20uZXhjZXB0aW9uLCBzb2NrZXQudGltZW91dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVJTlRSKQorCisgICAgZGVmIHRlc3RJbnRlcnJ1cHRlZFJlY3ZUaW1lb3V0KHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrSW50ZXJydXB0ZWRSZWN2KHNlbGYuc2Vydi5yZWN2LCAxMDI0KQorCisgICAgZGVmIHRlc3RJbnRlcnJ1cHRlZFJlY3ZJbnRvVGltZW91dChzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja0ludGVycnVwdGVkUmVjdihzZWxmLnNlcnYucmVjdl9pbnRvLCBieXRlYXJyYXkoMTAyNCkpCisKKyAgICBkZWYgdGVzdEludGVycnVwdGVkUmVjdmZyb21UaW1lb3V0KHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrSW50ZXJydXB0ZWRSZWN2KHNlbGYuc2Vydi5yZWN2ZnJvbSwgMTAyNCkKKworICAgIGRlZiB0ZXN0SW50ZXJydXB0ZWRSZWN2ZnJvbUludG9UaW1lb3V0KHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrSW50ZXJydXB0ZWRSZWN2KHNlbGYuc2Vydi5yZWN2ZnJvbV9pbnRvLCBieXRlYXJyYXkoMTAyNCkpCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJyZWN2bXNnIikKKyAgICBkZWYgdGVzdEludGVycnVwdGVkUmVjdm1zZ1RpbWVvdXQoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tJbnRlcnJ1cHRlZFJlY3Yoc2VsZi5zZXJ2LnJlY3Ztc2csIDEwMjQpCisKKyAgICBAcmVxdWlyZUF0dHJzKHNvY2tldC5zb2NrZXQsICJyZWN2bXNnX2ludG8iKQorICAgIGRlZiB0ZXN0SW50ZXJydXB0ZWRSZWN2bXNnSW50b1RpbWVvdXQoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tJbnRlcnJ1cHRlZFJlY3Yoc2VsZi5zZXJ2LnJlY3Ztc2dfaW50bywgW2J5dGVhcnJheSgxMDI0KV0pCisKKworIyBSZXF1aXJlIHNpZ2ludGVycnVwdCgpIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHN5c3RlbSBjYWxscyBhcmUKKyMgaW50ZXJydXB0ZWQgYnkgZGVmYXVsdC4KK0ByZXF1aXJlQXR0cnMoc2lnbmFsLCAic2lnaW50ZXJydXB0IikKK0B1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2lnbmFsLCAiYWxhcm0iKSBvciBoYXNhdHRyKHNpZ25hbCwgInNldGl0aW1lciIpLAorICAgICAgICAgICAgICAgICAgICAgIkRvbid0IGhhdmUgc2lnbmFsLmFsYXJtIG9yIHNpZ25hbC5zZXRpdGltZXIiKQorQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKK2NsYXNzIEludGVycnVwdGVkU2VuZFRpbWVvdXRUZXN0KEludGVycnVwdGVkVGltZW91dEJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJlYWRTYWZlQ2xlYW51cFRlc3RDYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ja2V0TGlzdGVuaW5nVGVzdE1peGluLCBUQ1BUZXN0QmFzZSk6CisgICAgIyBUZXN0IGludGVycnVwdGluZyB0aGUgaW50ZXJydXB0aWJsZSBzZW5kKigpIG1ldGhvZHMgd2l0aCBzaWduYWxzCisgICAgIyB3aGVuIGEgdGltZW91dCBpcyBzZXQuCisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cGVyKCkuc2V0VXAoKQorICAgICAgICBzZWxmLnNlcnZfY29ubiA9IHNlbGYubmV3U29ja2V0KCkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNlbGYuc2Vydl9jb25uLmNsb3NlKQorICAgICAgICAjIFVzZSBhIHRocmVhZCB0byBjb21wbGV0ZSB0aGUgY29ubmVjdGlvbiwgYnV0IHdhaXQgZm9yIGl0IHRvCisgICAgICAgICMgdGVybWluYXRlIGJlZm9yZSBydW5uaW5nIHRoZSB0ZXN0LCBzbyB0aGF0IHRoZXJlIGlzIG9ubHkgb25lCisgICAgICAgICMgdGhyZWFkIHRvIGFjY2VwdCB0aGUgc2lnbmFsLgorICAgICAgICBjbGlfdGhyZWFkID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5kb0Nvbm5lY3QpCisgICAgICAgIGNsaV90aHJlYWQuc3RhcnQoKQorICAgICAgICBzZWxmLmNsaV9jb25uLCBhZGRyID0gc2VsZi5zZXJ2LmFjY2VwdCgpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzZWxmLmNsaV9jb25uLmNsb3NlKQorICAgICAgICBjbGlfdGhyZWFkLmpvaW4oKQorICAgICAgICBzZWxmLnNlcnZfY29ubi5zZXR0aW1lb3V0KHNlbGYudGltZW91dCkKKworICAgIGRlZiBkb0Nvbm5lY3Qoc2VsZik6CisgICAgICAgIHNlbGYuc2Vydl9jb25uLmNvbm5lY3Qoc2VsZi5zZXJ2X2FkZHIpCisKKyAgICBkZWYgY2hlY2tJbnRlcnJ1cHRlZFNlbmQoc2VsZiwgZnVuYywgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIyBDaGVjayB0aGF0IGZ1bmMoKmFyZ3MsICoqa3dhcmdzKSwgcnVuIGluIGEgbG9vcCwgcmFpc2VzCisgICAgICAgICMgc29ja2V0LmVycm9yIHdpdGggYW4gZXJybm8gb2YgRUlOVFIgd2hlbiBpbnRlcnJ1cHRlZCBieSBhCisgICAgICAgICMgc2lnbmFsLgorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvcikgYXMgY206CisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIHNlbGYuc2V0QWxhcm0oc2VsZi5hbGFybV90aW1lKQorICAgICAgICAgICAgICAgIGZ1bmMoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBzZWxmLmFzc2VydE5vdElzSW5zdGFuY2UoY20uZXhjZXB0aW9uLCBzb2NrZXQudGltZW91dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uZXJybm8sIGVycm5vLkVJTlRSKQorCisgICAgIyBJc3N1ZSAjMTI5NTg6IFRoZSBmb2xsb3dpbmcgdGVzdHMgaGF2ZSBwcm9ibGVtcyBvbiBNYWMgT1MgWAorICAgIEBzdXBwb3J0LmFudGljaXBhdGVfZmFpbHVyZShzeXMucGxhdGZvcm0gPT0gImRhcndpbiIpCisgICAgZGVmIHRlc3RJbnRlcnJ1cHRlZFNlbmRUaW1lb3V0KHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrSW50ZXJydXB0ZWRTZW5kKHNlbGYuc2Vydl9jb25uLnNlbmQsIGIiYSIqNTEyKQorCisgICAgQHN1cHBvcnQuYW50aWNpcGF0ZV9mYWlsdXJlKHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIikKKyAgICBkZWYgdGVzdEludGVycnVwdGVkU2VuZHRvVGltZW91dChzZWxmKToKKyAgICAgICAgIyBQYXNzaW5nIGFuIGFjdHVhbCBhZGRyZXNzIGhlcmUgYXMgUHl0aG9uJ3Mgd3JhcHBlciBmb3IKKyAgICAgICAgIyBzZW5kdG8oKSBkb2Vzbid0IGFsbG93IHBhc3NpbmcgYSB6ZXJvLWxlbmd0aCBvbmU7IFBPU0lYCisgICAgICAgICMgcmVxdWlyZXMgdGhhdCB0aGUgYWRkcmVzcyBpcyBpZ25vcmVkIHNpbmNlIHRoZSBzb2NrZXQgaXMKKyAgICAgICAgIyBjb25uZWN0aW9uLW1vZGUsIGhvd2V2ZXIuCisgICAgICAgIHNlbGYuY2hlY2tJbnRlcnJ1cHRlZFNlbmQoc2VsZi5zZXJ2X2Nvbm4uc2VuZHRvLCBiImEiKjUxMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZfYWRkcikKKworICAgIEBzdXBwb3J0LmFudGljaXBhdGVfZmFpbHVyZShzeXMucGxhdGZvcm0gPT0gImRhcndpbiIpCisgICAgQHJlcXVpcmVBdHRycyhzb2NrZXQuc29ja2V0LCAic2VuZG1zZyIpCisgICAgZGVmIHRlc3RJbnRlcnJ1cHRlZFNlbmRtc2dUaW1lb3V0KHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrSW50ZXJydXB0ZWRTZW5kKHNlbGYuc2Vydl9jb25uLnNlbmRtc2csIFtiImEiKjUxMl0pCisKKwogQHVuaXR0ZXN0LnNraXBVbmxlc3ModGhyZWFkLCAnVGhyZWFkaW5nIHJlcXVpcmVkIGZvciB0aGlzIHRlc3QuJykKIGNsYXNzIFRDUENsb3NlclRlc3QoVGhyZWFkZWRUQ1BTb2NrZXRUZXN0KToKIApAQCAtMTA2OSwxMSArMzU0Myw4IEBACiAgICAgICAgIHBhc3MKIAogICAgIGlmIGhhc2F0dHIoc29ja2V0LCAiU09DS19OT05CTE9DSyIpOgorICAgICAgICBAc3VwcG9ydC5yZXF1aXJlc19saW51eF92ZXJzaW9uKDIsIDYsIDI4KQogICAgICAgICBkZWYgdGVzdEluaXROb25CbG9ja2luZyhzZWxmKToKLSAgICAgICAgICAgIHYgPSBsaW51eF92ZXJzaW9uKCkKLSAgICAgICAgICAgIGlmIHYgPCAoMiwgNiwgMjgpOgotICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIkxpbnV4IGtlcm5lbCAyLjYuMjggb3IgaGlnaGVyIHJlcXVpcmVkLCBub3QgJXMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlICIuIi5qb2luKG1hcChzdHIsIHYpKSkKICAgICAgICAgICAgICMgcmVpbml0IHNlcnZlciBzb2NrZXQKICAgICAgICAgICAgIHNlbGYuc2Vydi5jbG9zZSgpCiAgICAgICAgICAgICBzZWxmLnNlcnYgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0gfApAQCAtMTE3NSw3ICszNjQ2LDcgQEAKICAgICAiIiIKIAogICAgIGJ1ZnNpemUgPSAtMSAjIFVzZSBkZWZhdWx0IGJ1ZmZlciBzaXplCi0gICAgZW5jb2RpbmcgPSAndXRmOCcKKyAgICBlbmNvZGluZyA9ICd1dGYtOCcKICAgICBlcnJvcnMgPSAnc3RyaWN0JwogICAgIG5ld2xpbmUgPSBOb25lCiAKQEAgLTEzNTYsNyArMzgyNyw3IEBACiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIF9yYWlzZV9laW50cigpOgotICAgICAgICByYWlzZSBzb2NrZXQuZXJyb3IoZXJybm8uRUlOVFIpCisgICAgICAgIHJhaXNlIHNvY2tldC5lcnJvcihlcnJuby5FSU5UUiwgImludGVycnVwdGVkIikKIAogICAgIGRlZiBfdGV4dGlvd3JhcF9tb2NrX3NvY2tldChzZWxmLCBtb2NrLCBidWZmZXJpbmc9LTEpOgogICAgICAgICByYXcgPSBzb2NrZXQuU29ja2V0SU8obW9jaywgInIiKQpAQCAtMTM5Niw3ICszODY3LDcgQEAKICAgICAgICAgICAgIGRhdGEgPSBiJycKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGRhdGEgPSAnJwotICAgICAgICAgICAgZXhwZWN0aW5nID0gZXhwZWN0aW5nLmRlY29kZSgndXRmOCcpCisgICAgICAgICAgICBleHBlY3RpbmcgPSBleHBlY3RpbmcuZGVjb2RlKCd1dGYtOCcpCiAgICAgICAgIHdoaWxlIGxlbihkYXRhKSAhPSBsZW4oZXhwZWN0aW5nKToKICAgICAgICAgICAgIHBhcnQgPSBmby5yZWFkKHNpemUpCiAgICAgICAgICAgICBpZiBub3QgcGFydDoKQEAgLTE1NTgsNyArNDAyOSw3IEBACiAgICAgIiIiVGVzdHMgZm9yIHNvY2tldC5tYWtlZmlsZSgpIGluIHRleHQgbW9kZSAocmF0aGVyIHRoYW4gYmluYXJ5KSIiIgogCiAgICAgcmVhZF9tb2RlID0gJ3InCi0gICAgcmVhZF9tc2cgPSBNU0cuZGVjb2RlKCd1dGY4JykKKyAgICByZWFkX21zZyA9IE1TRy5kZWNvZGUoJ3V0Zi04JykKICAgICB3cml0ZV9tb2RlID0gJ3diJwogICAgIHdyaXRlX21zZyA9IE1TRwogICAgIG5ld2xpbmUgPSAnJwpAQCAtMTU3MCw3ICs0MDQxLDcgQEAKICAgICByZWFkX21vZGUgPSAncmInCiAgICAgcmVhZF9tc2cgPSBNU0cKICAgICB3cml0ZV9tb2RlID0gJ3cnCi0gICAgd3JpdGVfbXNnID0gTVNHLmRlY29kZSgndXRmOCcpCisgICAgd3JpdGVfbXNnID0gTVNHLmRlY29kZSgndXRmLTgnKQogICAgIG5ld2xpbmUgPSAnJwogCiAKQEAgLTE1NzgsOSArNDA0OSw5IEBACiAgICAgIiIiVGVzdHMgZm9yIHNvY2tldC5tYWtlZmlsZSgpIGluIHRleHQgbW9kZSAocmF0aGVyIHRoYW4gYmluYXJ5KSIiIgogCiAgICAgcmVhZF9tb2RlID0gJ3InCi0gICAgcmVhZF9tc2cgPSBNU0cuZGVjb2RlKCd1dGY4JykKKyAgICByZWFkX21zZyA9IE1TRy5kZWNvZGUoJ3V0Zi04JykKICAgICB3cml0ZV9tb2RlID0gJ3cnCi0gICAgd3JpdGVfbXNnID0gTVNHLmRlY29kZSgndXRmOCcpCisgICAgd3JpdGVfbXNnID0gTVNHLmRlY29kZSgndXRmLTgnKQogICAgIG5ld2xpbmUgPSAnJwogCiAKQEAgLTE4NTIsNiArNDMyMyw3OCBAQAogICAgICAgICB3aXRoIHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX1VOSVgsIHNvY2tldC5TT0NLX1NUUkVBTSkgYXMgczoKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNvY2tldC5lcnJvciwgcy5iaW5kLCBhZGRyZXNzKQogCisgICAgZGVmIHRlc3RTdHJOYW1lKHNlbGYpOgorICAgICAgICAjIENoZWNrIHRoYXQgYW4gYWJzdHJhY3QgbmFtZSBjYW4gYmUgcGFzc2VkIGFzIGEgc3RyaW5nLgorICAgICAgICBzID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfVU5JWCwgc29ja2V0LlNPQ0tfU1RSRUFNKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzLmJpbmQoIlx4MDBweXRob25ceDAwdGVzdFx4MDAiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHNvY2tuYW1lKCksIGIiXHgwMHB5dGhvblx4MDB0ZXN0XHgwMCIpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzLmNsb3NlKCkKKworY2xhc3MgVGVzdFVuaXhEb21haW4odW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLnNvY2sgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9VTklYLCBzb2NrZXQuU09DS19TVFJFQU0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHNlbGYuc29jay5jbG9zZSgpCisKKyAgICBkZWYgZW5jb2RlZChzZWxmLCBwYXRoKToKKyAgICAgICAgIyBSZXR1cm4gdGhlIGdpdmVuIHBhdGggZW5jb2RlZCBpbiB0aGUgZmlsZSBzeXN0ZW0gZW5jb2RpbmcsCisgICAgICAgICMgb3Igc2tpcCB0aGUgdGVzdCBpZiB0aGlzIGlzIG5vdCBwb3NzaWJsZS4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIG9zLmZzZW5jb2RlKHBhdGgpCisgICAgICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJQYXRobmFtZSB7MCFhfSBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgaW4gZmlsZSAiCisgICAgICAgICAgICAgICAgInN5c3RlbSBlbmNvZGluZyB7MSFyfSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICBwYXRoLCBzeXMuZ2V0ZmlsZXN5c3RlbWVuY29kaW5nKCkpKQorCisgICAgZGVmIGJpbmQoc2VsZiwgc29jaywgcGF0aCk6CisgICAgICAgICMgQmluZCB0aGUgc29ja2V0CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNvY2suYmluZChwYXRoKQorICAgICAgICBleGNlcHQgT1NFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYgc3RyKGUpID09ICJBRl9VTklYIHBhdGggdG9vIGxvbmciOgorICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgICAgICJQYXRobmFtZSB7MCFhfSBpcyB0b28gbG9uZyB0byBzZXJ2ZSBhcyBhIEFGX1VOSVggcGF0aCIKKyAgICAgICAgICAgICAgICAgICAgLmZvcm1hdChwYXRoKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UKKworICAgIGRlZiB0ZXN0U3RyQWRkcihzZWxmKToKKyAgICAgICAgIyBUZXN0IGJpbmRpbmcgdG8gYW5kIHJldHJpZXZpbmcgYSBub3JtYWwgc3RyaW5nIHBhdGhuYW1lLgorICAgICAgICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKHN1cHBvcnQuVEVTVEZOKQorICAgICAgICBzZWxmLmJpbmQoc2VsZi5zb2NrLCBwYXRoKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3VwcG9ydC51bmxpbmssIHBhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zb2NrLmdldHNvY2tuYW1lKCksIHBhdGgpCisKKyAgICBkZWYgdGVzdEJ5dGVzQWRkcihzZWxmKToKKyAgICAgICAgIyBUZXN0IGJpbmRpbmcgdG8gYSBieXRlcyBwYXRobmFtZS4KKyAgICAgICAgcGF0aCA9IG9zLnBhdGguYWJzcGF0aChzdXBwb3J0LlRFU1RGTikKKyAgICAgICAgc2VsZi5iaW5kKHNlbGYuc29jaywgc2VsZi5lbmNvZGVkKHBhdGgpKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3VwcG9ydC51bmxpbmssIHBhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zb2NrLmdldHNvY2tuYW1lKCksIHBhdGgpCisKKyAgICBkZWYgdGVzdFN1cnJvZ2F0ZWVzY2FwZUJpbmQoc2VsZik6CisgICAgICAgICMgVGVzdCBiaW5kaW5nIHRvIGEgdmFsaWQgbm9uLUFTQ0lJIHBhdGhuYW1lLCB3aXRoIHRoZQorICAgICAgICAjIG5vbi1BU0NJSSBieXRlcyBzdXBwbGllZCB1c2luZyBzdXJyb2dhdGVlc2NhcGUgZW5jb2RpbmcuCisgICAgICAgIHBhdGggPSBvcy5wYXRoLmFic3BhdGgoc3VwcG9ydC5URVNURk5fVU5JQ09ERSkKKyAgICAgICAgYiA9IHNlbGYuZW5jb2RlZChwYXRoKQorICAgICAgICBzZWxmLmJpbmQoc2VsZi5zb2NrLCBiLmRlY29kZSgiYXNjaWkiLCAic3Vycm9nYXRlZXNjYXBlIikpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzdXBwb3J0LnVubGluaywgcGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnNvY2suZ2V0c29ja25hbWUoKSwgcGF0aCkKKworICAgIGRlZiB0ZXN0VW5lbmNvZGFibGVBZGRyKHNlbGYpOgorICAgICAgICAjIFRlc3QgYmluZGluZyB0byBhIHBhdGhuYW1lIHRoYXQgY2Fubm90IGJlIGVuY29kZWQgaW4gdGhlCisgICAgICAgICMgZmlsZSBzeXN0ZW0gZW5jb2RpbmcuCisgICAgICAgIGlmIHN1cHBvcnQuVEVTVEZOX1VORU5DT0RBQkxFIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJObyB1bmVuY29kYWJsZSBmaWxlbmFtZSBhdmFpbGFibGUiKQorICAgICAgICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKHN1cHBvcnQuVEVTVEZOX1VORU5DT0RBQkxFKQorICAgICAgICBzZWxmLmJpbmQoc2VsZi5zb2NrLCBwYXRoKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3VwcG9ydC51bmxpbmssIHBhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5zb2NrLmdldHNvY2tuYW1lKCksIHBhdGgpCiAKIEB1bml0dGVzdC5za2lwVW5sZXNzKHRocmVhZCwgJ1RocmVhZGluZyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0LicpCiBjbGFzcyBCdWZmZXJJT1Rlc3QoU29ja2V0Q29ubmVjdGVkVGVzdCk6CkBAIC0yMDUyLDExICs0NTk1LDggQEAKICAgICAgICAgICAgICAgICAgICAgICJTT0NLX0NMT0VYRUMgbm90IGRlZmluZWQiKQogQHVuaXR0ZXN0LnNraXBVbmxlc3MoZmNudGwsICJtb2R1bGUgZmNudGwgbm90IGF2YWlsYWJsZSIpCiBjbGFzcyBDbG9leGVjQ29uc3RhbnRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBAc3VwcG9ydC5yZXF1aXJlc19saW51eF92ZXJzaW9uKDIsIDYsIDI4KQogICAgIGRlZiB0ZXN0X1NPQ0tfQ0xPRVhFQyhzZWxmKToKLSAgICAgICAgdiA9IGxpbnV4X3ZlcnNpb24oKQotICAgICAgICBpZiB2IDwgKDIsIDYsIDI4KToKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIkxpbnV4IGtlcm5lbCAyLjYuMjggb3IgaGlnaGVyIHJlcXVpcmVkLCBub3QgJXMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICUgIi4iLmpvaW4obWFwKHN0ciwgdikpKQogICAgICAgICB3aXRoIHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXQuU09DS19TVFJFQU0gfCBzb2NrZXQuU09DS19DTE9FWEVDKSBhcyBzOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMudHlwZSAmIHNvY2tldC5TT0NLX0NMT0VYRUMpCkBAIC0yMDc0LDExICs0NjE0LDggQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uocy50eXBlICYgc29ja2V0LlNPQ0tfTk9OQkxPQ0spCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dGltZW91dCgpLCBOb25lKQogCisgICAgQHN1cHBvcnQucmVxdWlyZXNfbGludXhfdmVyc2lvbigyLCA2LCAyOCkKICAgICBkZWYgdGVzdF9TT0NLX05PTkJMT0NLKHNlbGYpOgotICAgICAgICB2ID0gbGludXhfdmVyc2lvbigpCi0gICAgICAgIGlmIHYgPCAoMiwgNiwgMjgpOgotICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgiTGludXgga2VybmVsIDIuNi4yOCBvciBoaWdoZXIgcmVxdWlyZWQsIG5vdCAlcyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJSAiLiIuam9pbihtYXAoc3RyLCB2KSkpCiAgICAgICAgICMgYSBsb3Qgb2YgaXQgc2VlbXMgc2lsbHkgYW5kIHJlZHVuZGFudCwgYnV0IEkgd2FudGVkIHRvIHRlc3QgdGhhdAogICAgICAgICAjIGNoYW5naW5nIGJhY2sgYW5kIGZvcnRoIHdvcmtlZCBvawogICAgICAgICB3aXRoIHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsCkBAIC0yMTExLDYgKzQ2NDgsMTA5IEBACiAgICAgICAgIHNvY2tldC5zZXRkZWZhdWx0dGltZW91dCh0KQogCiAKK0B1bml0dGVzdC5za2lwVW5sZXNzKG9zLm5hbWUgPT0gIm50IiwgIldpbmRvd3Mgc3BlY2lmaWMiKQorQHVuaXR0ZXN0LnNraXBVbmxlc3MobXVsdGlwcm9jZXNzaW5nLCAibmVlZCBtdWx0aXByb2Nlc3NpbmciKQorY2xhc3MgVGVzdFNvY2tldFNoYXJpbmcoU29ja2V0VENQVGVzdCk6CisgICAgIyBUaGlzIG11c3QgYmUgY2xhc3NtZXRob2QgYW5kIG5vdCBzdGF0aWNtZXRob2Qgb3IgbXVsdGlwcm9jZXNzaW5nCisgICAgIyB3b24ndCBiZSBhYmxlIHRvIGJvb3RzdHJhcCBpdC4KKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgcmVtb3RlUHJvY2Vzc1NlcnZlcihjbHMsIHEpOgorICAgICAgICAjIFJlY3JlYXRlIHNvY2tldCBmcm9tIHNoYXJlZCBkYXRhCisgICAgICAgIHNkYXRhID0gcS5nZXQoKQorICAgICAgICBtZXNzYWdlID0gcS5nZXQoKQorCisgICAgICAgIHMgPSBzb2NrZXQuZnJvbXNoYXJlKHNkYXRhKQorICAgICAgICBzMiwgYyA9IHMuYWNjZXB0KCkKKworICAgICAgICAjIFNlbmQgdGhlIG1lc3NhZ2UKKyAgICAgICAgczIuc2VuZGFsbChtZXNzYWdlKQorICAgICAgICBzMi5jbG9zZSgpCisgICAgICAgIHMuY2xvc2UoKQorCisgICAgZGVmIHRlc3RTaGFyZShzZWxmKToKKyAgICAgICAgIyBUcmFuc2ZlciB0aGUgbGlzdGVuaW5nIHNlcnZlciBzb2NrZXQgdG8gYW5vdGhlciBwcm9jZXNzCisgICAgICAgICMgYW5kIHNlcnZpY2UgaXQgZnJvbSB0aGVyZS4KKworICAgICAgICAjIENyZWF0ZSBwcm9jZXNzOgorICAgICAgICBxID0gbXVsdGlwcm9jZXNzaW5nLlF1ZXVlKCkKKyAgICAgICAgcCA9IG11bHRpcHJvY2Vzc2luZy5Qcm9jZXNzKHRhcmdldD1zZWxmLnJlbW90ZVByb2Nlc3NTZXJ2ZXIsIGFyZ3M9KHEsKSkKKyAgICAgICAgcC5zdGFydCgpCisKKyAgICAgICAgIyBHZXQgdGhlIHNoYXJlZCBzb2NrZXQgZGF0YQorICAgICAgICBkYXRhID0gc2VsZi5zZXJ2LnNoYXJlKHAucGlkKQorCisgICAgICAgICMgUGFzcyB0aGUgc2hhcmVkIHNvY2tldCB0byB0aGUgb3RoZXIgcHJvY2VzcworICAgICAgICBhZGRyID0gc2VsZi5zZXJ2LmdldHNvY2tuYW1lKCkKKyAgICAgICAgc2VsZi5zZXJ2LmNsb3NlKCkKKyAgICAgICAgcS5wdXQoZGF0YSkKKworICAgICAgICAjIFRoZSBkYXRhIHRoYXQgdGhlIHNlcnZlciB3aWxsIHNlbmQgdXMKKyAgICAgICAgbWVzc2FnZSA9IGIic2xhcG1haGZybyIKKyAgICAgICAgcS5wdXQobWVzc2FnZSkKKworICAgICAgICAjIENvbm5lY3QKKyAgICAgICAgcyA9IHNvY2tldC5jcmVhdGVfY29ubmVjdGlvbihhZGRyKQorICAgICAgICAjICBsaXN0ZW4gZm9yIHRoZSBkYXRhCisgICAgICAgIG0gPSBbXQorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgZGF0YSA9IHMucmVjdigxMDApCisgICAgICAgICAgICBpZiBub3QgZGF0YToKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgbS5hcHBlbmQoZGF0YSkKKyAgICAgICAgcy5jbG9zZSgpCisgICAgICAgIHJlY2VpdmVkID0gYiIiLmpvaW4obSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZWNlaXZlZCwgbWVzc2FnZSkKKyAgICAgICAgcC5qb2luKCkKKworICAgIGRlZiB0ZXN0U2hhcmVMZW5ndGgoc2VsZik6CisgICAgICAgIGRhdGEgPSBzZWxmLnNlcnYuc2hhcmUob3MuZ2V0cGlkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNvY2tldC5mcm9tc2hhcmUsIGRhdGFbOi0xXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc29ja2V0LmZyb21zaGFyZSwgZGF0YStiImZvbyIpCisKKyAgICBkZWYgY29tcGFyZVNvY2tldHMoc2VsZiwgb3JnLCBvdGhlcik6CisgICAgICAgICMgc29ja2V0IHNoYXJpbmcgaXMgZXhwZWN0ZWQgdG8gd29yayBvbmx5IGZvciBibG9ja2luZyBzb2NrZXQKKyAgICAgICAgIyBzaW5jZSB0aGUgaW50ZXJuYWwgcHl0aG9uIHRpbW91dCB2YWx1ZSBpc24ndCB0cmFuc2ZlcmVkLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9yZy5nZXR0aW1lb3V0KCksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3JnLmdldHRpbWVvdXQoKSwgb3RoZXIuZ2V0dGltZW91dCgpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3JnLmZhbWlseSwgb3RoZXIuZmFtaWx5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9yZy50eXBlLCBvdGhlci50eXBlKQorICAgICAgICAjIElmIHRoZSB1c2VyIHNwZWNpZmllZCAiMCIgZm9yIHByb3RvLCB0aGVuCisgICAgICAgICMgaW50ZXJuYWxseSB3aW5kb3dzIHdpbGwgaGF2ZSBwaWNrZWQgdGhlIGNvcnJlY3QgdmFsdWUuCisgICAgICAgICMgUHl0aG9uIGludHJvc3BlY3Rpb24gb24gdGhlIHNvY2tldCBob3dldmVyIHdpbGwgc3RpbGwgcmV0dXJuCisgICAgICAgICMgMC4gIEZvciB0aGUgc2hhcmVkIHNvY2tldCwgdGhlIHB5dGhvbiB2YWx1ZSBpcyByZWNyZWF0ZWQKKyAgICAgICAgIyBmcm9tIHRoZSBhY3R1YWwgdmFsdWUsIHNvIGl0IG1heSBub3QgY29tcGFyZSBjb3JyZWN0bHkuCisgICAgICAgIGlmIG9yZy5wcm90byAhPSAwOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcmcucHJvdG8sIG90aGVyLnByb3RvKQorCisgICAgZGVmIHRlc3RTaGFyZUxvY2FsKHNlbGYpOgorICAgICAgICBkYXRhID0gc2VsZi5zZXJ2LnNoYXJlKG9zLmdldHBpZCgpKQorICAgICAgICBzID0gc29ja2V0LmZyb21zaGFyZShkYXRhKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmNvbXBhcmVTb2NrZXRzKHNlbGYuc2VydiwgcykKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHMuY2xvc2UoKQorCisgICAgZGVmIHRlc3RUeXBlcyhzZWxmKToKKyAgICAgICAgZmFtaWxpZXMgPSBbc29ja2V0LkFGX0lORVQsIHNvY2tldC5BRl9JTkVUNl0KKyAgICAgICAgdHlwZXMgPSBbc29ja2V0LlNPQ0tfU1RSRUFNLCBzb2NrZXQuU09DS19ER1JBTV0KKyAgICAgICAgZm9yIGYgaW4gZmFtaWxpZXM6CisgICAgICAgICAgICBmb3IgdCBpbiB0eXBlczoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZSA9IHNvY2tldC5zb2NrZXQoZiwgdCkKKyAgICAgICAgICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUgIyBUaGlzIGNvbWJpbmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBzb3VyY2Uuc2hhcmUob3MuZ2V0cGlkKCkpCisgICAgICAgICAgICAgICAgICAgIHNoYXJlZCA9IHNvY2tldC5mcm9tc2hhcmUoZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21wYXJlU29ja2V0cyhzb3VyY2UsIHNoYXJlZCkKKyAgICAgICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoYXJlZC5jbG9zZSgpCisgICAgICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICAgICAgc291cmNlLmNsb3NlKCkKKworCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgdGVzdHMgPSBbR2VuZXJhbE1vZHVsZVRlc3RzLCBCYXNpY1RDUFRlc3QsIFRDUENsb3NlclRlc3QsIFRDUFRpbWVvdXRUZXN0LAogICAgICAgICAgICAgIFRlc3RFeGNlcHRpb25zLCBCdWZmZXJJT1Rlc3QsIEJhc2ljVENQVGVzdDIsIEJhc2ljVURQVGVzdCwgVURQVGltZW91dFRlc3QgXQpAQCAtMjEzNCwxMSArNDc3NCw0MSBAQAogICAgIF0pCiAgICAgaWYgaGFzYXR0cihzb2NrZXQsICJzb2NrZXRwYWlyIik6CiAgICAgICAgIHRlc3RzLmFwcGVuZChCYXNpY1NvY2tldFBhaXJUZXN0KQotICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnbGludXgyJzoKKyAgICBpZiBoYXNhdHRyKHNvY2tldCwgIkFGX1VOSVgiKToKKyAgICAgICAgdGVzdHMuYXBwZW5kKFRlc3RVbml4RG9tYWluKQorICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnbGludXgnOgogICAgICAgICB0ZXN0cy5hcHBlbmQoVGVzdExpbnV4QWJzdHJhY3ROYW1lc3BhY2UpCiAgICAgaWYgaXNUaXBjQXZhaWxhYmxlKCk6CiAgICAgICAgIHRlc3RzLmFwcGVuZChUSVBDVGVzdCkKICAgICAgICAgdGVzdHMuYXBwZW5kKFRJUENUaHJlYWRhYmxlVGVzdCkKKyAgICB0ZXN0cy5leHRlbmQoW0Jhc2ljQ0FOVGVzdCwgQ0FOVGVzdF0pCisgICAgdGVzdHMuZXh0ZW5kKFtCYXNpY1JEU1Rlc3QsIFJEU1Rlc3RdKQorICAgIHRlc3RzLmV4dGVuZChbCisgICAgICAgIENtc2dNYWNyb1Rlc3RzLAorICAgICAgICBTZW5kbXNnVURQVGVzdCwKKyAgICAgICAgUmVjdm1zZ1VEUFRlc3QsCisgICAgICAgIFJlY3Ztc2dJbnRvVURQVGVzdCwKKyAgICAgICAgU2VuZG1zZ1VEUDZUZXN0LAorICAgICAgICBSZWN2bXNnVURQNlRlc3QsCisgICAgICAgIFJlY3Ztc2dSRkMzNTQyQW5jaWxsYXJ5VURQNlRlc3QsCisgICAgICAgIFJlY3Ztc2dJbnRvUkZDMzU0MkFuY2lsbGFyeVVEUDZUZXN0LAorICAgICAgICBSZWN2bXNnSW50b1VEUDZUZXN0LAorICAgICAgICBTZW5kbXNnVENQVGVzdCwKKyAgICAgICAgUmVjdm1zZ1RDUFRlc3QsCisgICAgICAgIFJlY3Ztc2dJbnRvVENQVGVzdCwKKyAgICAgICAgU2VuZG1zZ1NDVFBTdHJlYW1UZXN0LAorICAgICAgICBSZWN2bXNnU0NUUFN0cmVhbVRlc3QsCisgICAgICAgIFJlY3Ztc2dJbnRvU0NUUFN0cmVhbVRlc3QsCisgICAgICAgIFNlbmRtc2dVbml4U3RyZWFtVGVzdCwKKyAgICAgICAgUmVjdm1zZ1VuaXhTdHJlYW1UZXN0LAorICAgICAgICBSZWN2bXNnSW50b1VuaXhTdHJlYW1UZXN0LAorICAgICAgICBSZWN2bXNnU0NNUmlnaHRzU3RyZWFtVGVzdCwKKyAgICAgICAgUmVjdm1zZ0ludG9TQ01SaWdodHNTdHJlYW1UZXN0LAorICAgICAgICAjIFRoZXNlIGFyZSBzbG93IHdoZW4gc2V0aXRpbWVyKCkgaXMgbm90IGF2YWlsYWJsZQorICAgICAgICBJbnRlcnJ1cHRlZFJlY3ZUaW1lb3V0VGVzdCwKKyAgICAgICAgSW50ZXJydXB0ZWRTZW5kVGltZW91dFRlc3QsCisgICAgICAgIFRlc3RTb2NrZXRTaGFyaW5nLAorICAgIF0pCiAKICAgICB0aHJlYWRfaW5mbyA9IHN1cHBvcnQudGhyZWFkaW5nX3NldHVwKCkKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgqdGVzdHMpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NvY2tldHNlcnZlci5weSBiL0xpYi90ZXN0L3Rlc3Rfc29ja2V0c2VydmVyLnB5CmluZGV4IGNhMjMzMDEuLjM1M2Y4ZmYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc29ja2V0c2VydmVyLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc29ja2V0c2VydmVyLnB5CkBAIC0yNDQsNyArMjQ0LDcgQEAKICAgICAgICAgICAgICAgICBzZWxmLmNhbGxlZCArPSAxCiAgICAgICAgICAgICAgICAgaWYgc2VsZi5jYWxsZWQgPT0gMToKICAgICAgICAgICAgICAgICAgICAgIyByYWlzZSB0aGUgZXhjZXB0aW9uIG9uIGZpcnN0IGNhbGwKLSAgICAgICAgICAgICAgICAgICAgcmFpc2Ugc2VsZWN0LmVycm9yKGVycm5vLkVJTlRSLCBvcy5zdHJlcnJvcihlcnJuby5FSU5UUikpCisgICAgICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJyb3IoZXJybm8uRUlOVFIsIG9zLnN0cmVycm9yKGVycm5vLkVJTlRSKSkKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAjIFJldHVybiByZWFsIHNlbGVjdCB2YWx1ZSBmb3IgY29uc2VjdXRpdmUgY2FsbHMKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9sZF9zZWxlY3QoKmFyZ3MpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3NzbC5weSBiL0xpYi90ZXN0L3Rlc3Rfc3NsLnB5CmluZGV4IDU1MTE1MWUuLjUxNzYyY2YgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3Rfc3NsLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfc3NsLnB5CkBAIC00Miw2ICs0Miw5IEBACiBPTkxZS0VZID0gZGF0YV9maWxlKCJzc2xfa2V5LnBlbSIpCiBCWVRFU19PTkxZQ0VSVCA9IG9zLmZzZW5jb2RlKE9OTFlDRVJUKQogQllURVNfT05MWUtFWSA9IG9zLmZzZW5jb2RlKE9OTFlLRVkpCitDRVJURklMRV9QUk9URUNURUQgPSBkYXRhX2ZpbGUoImtleWNlcnQucGFzc3dkLnBlbSIpCitPTkxZS0VZX1BST1RFQ1RFRCA9IGRhdGFfZmlsZSgic3NsX2tleS5wYXNzd2QucGVtIikKK0tFWV9QQVNTV09SRCA9ICJzb21lcGFzcyIKIENBUEFUSCA9IGRhdGFfZmlsZSgiY2FwYXRoIikKIEJZVEVTX0NBUEFUSCA9IG9zLmZzZW5jb2RlKENBUEFUSCkKIApAQCAtNTMsNiArNTYsOCBAQAogQkFES0VZID0gZGF0YV9maWxlKCJiYWRrZXkucGVtIikKIE5PS0lBQ0VSVCA9IGRhdGFfZmlsZSgibm9raWEucGVtIikKIAorREhGSUxFID0gZGF0YV9maWxlKCJkaDUxMi5wZW0iKQorQllURVNfREhGSUxFID0gb3MuZnNlbmNvZGUoREhGSUxFKQogCiBkZWYgaGFuZGxlX2Vycm9yKHByZWZpeCk6CiAgICAgZXhjX2Zvcm1hdCA9ICcgJy5qb2luKHRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKCpzeXMuZXhjX2luZm8oKSkpCkBAIC05NSw3ICsxMDAsMTQgQEAKICAgICAgICAgc3NsLkNFUlRfTk9ORQogICAgICAgICBzc2wuQ0VSVF9PUFRJT05BTAogICAgICAgICBzc2wuQ0VSVF9SRVFVSVJFRAorICAgICAgICBzc2wuT1BfQ0lQSEVSX1NFUlZFUl9QUkVGRVJFTkNFCisgICAgICAgIHNzbC5PUF9TSU5HTEVfREhfVVNFCisgICAgICAgIGlmIHNzbC5IQVNfRUNESDoKKyAgICAgICAgICAgIHNzbC5PUF9TSU5HTEVfRUNESF9VU0UKKyAgICAgICAgaWYgc3NsLk9QRU5TU0xfVkVSU0lPTl9JTkZPID49ICgxLCAwKToKKyAgICAgICAgICAgIHNzbC5PUF9OT19DT01QUkVTU0lPTgogICAgICAgICBzZWxmLmFzc2VydEluKHNzbC5IQVNfU05JLCB7VHJ1ZSwgRmFsc2V9KQorICAgICAgICBzZWxmLmFzc2VydEluKHNzbC5IQVNfRUNESCwge1RydWUsIEZhbHNlfSkKIAogICAgIGRlZiB0ZXN0X3JhbmRvbShzZWxmKToKICAgICAgICAgdiA9IHNzbC5SQU5EX3N0YXR1cygpCkBAIC0xMDMsNiArMTE1LDE2IEBACiAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJcbiBSQU5EX3N0YXR1cyBpcyAlZCAoJXMpXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHYsICh2IGFuZCAic3VmZmljaWVudCByYW5kb21uZXNzIikgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImluc3VmZmljaWVudCByYW5kb21uZXNzIikpCisKKyAgICAgICAgZGF0YSwgaXNfY3J5cHRvZ3JhcGhpYyA9IHNzbC5SQU5EX3BzZXVkb19ieXRlcygxNikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YSksIDE2KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlzX2NyeXB0b2dyYXBoaWMsIHYgPT0gMSkKKyAgICAgICAgaWYgdjoKKyAgICAgICAgICAgIGRhdGEgPSBzc2wuUkFORF9ieXRlcygxNikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRhdGEpLCAxNikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHNzbC5TU0xFcnJvciwgc3NsLlJBTkRfYnl0ZXMsIDE2KQorCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNzbC5SQU5EX2VnZCgxKQogICAgICAgICBleGNlcHQgVHlwZUVycm9yOgpAQCAtMzM3LDYgKzM1OSwyNSBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgY3R4LndyYXBfc29ja2V0LCBzb2NrLCBUcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2hvc3RuYW1lPSJzb21lLmhvc3RuYW1lIikKIAorICAgIGRlZiB0ZXN0X3Vua25vd25fY2hhbm5lbF9iaW5kaW5nKHNlbGYpOgorICAgICAgICAjIHNob3VsZCByYWlzZSBWYWx1ZUVycm9yIGZvciB1bmtub3duIHR5cGUKKyAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQpCisgICAgICAgIHNzID0gc3NsLndyYXBfc29ja2V0KHMpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICBzcy5nZXRfY2hhbm5lbF9iaW5kaW5nKCJ1bmtub3duLXR5cGUiKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoInRscy11bmlxdWUiIGluIHNzbC5DSEFOTkVMX0JJTkRJTkdfVFlQRVMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIid0bHMtdW5pcXVlJyBjaGFubmVsIGJpbmRpbmcgbm90IGF2YWlsYWJsZSIpCisgICAgZGVmIHRlc3RfdGxzX3VuaXF1ZV9jaGFubmVsX2JpbmRpbmcoc2VsZik6CisgICAgICAgICMgdW5jb25uZWN0ZWQgc2hvdWxkIHJldHVybiBOb25lIGZvciBrbm93biB0eXBlCisgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVUKQorICAgICAgICBzcyA9IHNzbC53cmFwX3NvY2tldChzKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShzcy5nZXRfY2hhbm5lbF9iaW5kaW5nKCJ0bHMtdW5pcXVlIikpCisgICAgICAgICMgdGhlIHNhbWUgZm9yIHNlcnZlci1zaWRlCisgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVUKQorICAgICAgICBzcyA9IHNzbC53cmFwX3NvY2tldChzLCBzZXJ2ZXJfc2lkZT1UcnVlLCBjZXJ0ZmlsZT1DRVJURklMRSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc3MuZ2V0X2NoYW5uZWxfYmluZGluZygidGxzLXVuaXF1ZSIpKQorCiBjbGFzcyBDb250ZXh0VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgQHNraXBfaWZfYnJva2VuX3VidW50dV9zc2wKQEAgLTQyNyw2ICs0NjgsNjAgQEAKICAgICAgICAgY3R4ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1RMU3YxKQogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoc3NsLlNTTEVycm9yLCAia2V5IHZhbHVlcyBtaXNtYXRjaCIpOgogICAgICAgICAgICAgY3R4LmxvYWRfY2VydF9jaGFpbihTVk5fUFlUSE9OX09SR19ST09UX0NFUlQsIE9OTFlLRVkpCisgICAgICAgICMgUGFzc3dvcmQgcHJvdGVjdGVkIGtleSBhbmQgY2VydAorICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFX1BST1RFQ1RFRCwgcGFzc3dvcmQ9S0VZX1BBU1NXT1JEKQorICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFX1BST1RFQ1RFRCwgcGFzc3dvcmQ9S0VZX1BBU1NXT1JELmVuY29kZSgpKQorICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFX1BST1RFQ1RFRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzd29yZD1ieXRlYXJyYXkoS0VZX1BBU1NXT1JELmVuY29kZSgpKSkKKyAgICAgICAgY3R4LmxvYWRfY2VydF9jaGFpbihPTkxZQ0VSVCwgT05MWUtFWV9QUk9URUNURUQsIEtFWV9QQVNTV09SRCkKKyAgICAgICAgY3R4LmxvYWRfY2VydF9jaGFpbihPTkxZQ0VSVCwgT05MWUtFWV9QUk9URUNURUQsIEtFWV9QQVNTV09SRC5lbmNvZGUoKSkKKyAgICAgICAgY3R4LmxvYWRfY2VydF9jaGFpbihPTkxZQ0VSVCwgT05MWUtFWV9QUk9URUNURUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZWFycmF5KEtFWV9QQVNTV09SRC5lbmNvZGUoKSkpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChUeXBlRXJyb3IsICJzaG91bGQgYmUgYSBzdHJpbmciKToKKyAgICAgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEVfUFJPVEVDVEVELCBwYXNzd29yZD1UcnVlKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHNzbC5TU0xFcnJvcik6CisgICAgICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFX1BST1RFQ1RFRCwgcGFzc3dvcmQ9ImJhZHBhc3MiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVmFsdWVFcnJvciwgImNhbm5vdCBiZSBsb25nZXIiKToKKyAgICAgICAgICAgICMgb3BlbnNzbCBoYXMgYSBmaXhlZCBsaW1pdCBvbiB0aGUgcGFzc3dvcmQgYnVmZmVyLgorICAgICAgICAgICAgIyBQRU1fQlVGU0laRSBpcyBnZW5lcmFsbHkgc2V0IHRvIDFrYi4KKyAgICAgICAgICAgICMgUmV0dXJuIGEgc3RyaW5nIGxhcmdlciB0aGFuIHRoaXMuCisgICAgICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFX1BST1RFQ1RFRCwgcGFzc3dvcmQ9YidhJyAqIDEwMjQwMCkKKyAgICAgICAgIyBQYXNzd29yZCBjYWxsYmFjaworICAgICAgICBkZWYgZ2V0cGFzc191bmljb2RlKCk6CisgICAgICAgICAgICByZXR1cm4gS0VZX1BBU1NXT1JECisgICAgICAgIGRlZiBnZXRwYXNzX2J5dGVzKCk6CisgICAgICAgICAgICByZXR1cm4gS0VZX1BBU1NXT1JELmVuY29kZSgpCisgICAgICAgIGRlZiBnZXRwYXNzX2J5dGVhcnJheSgpOgorICAgICAgICAgICAgcmV0dXJuIGJ5dGVhcnJheShLRVlfUEFTU1dPUkQuZW5jb2RlKCkpCisgICAgICAgIGRlZiBnZXRwYXNzX2JhZHBhc3MoKToKKyAgICAgICAgICAgIHJldHVybiAiYmFkcGFzcyIKKyAgICAgICAgZGVmIGdldHBhc3NfaHVnZSgpOgorICAgICAgICAgICAgcmV0dXJuIGInYScgKiAoMTAyNCAqIDEwMjQpCisgICAgICAgIGRlZiBnZXRwYXNzX2JhZF90eXBlKCk6CisgICAgICAgICAgICByZXR1cm4gOQorICAgICAgICBkZWYgZ2V0cGFzc19leGNlcHRpb24oKToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignZ2V0cGFzcyBlcnJvcicpCisgICAgICAgIGNsYXNzIEdldFBhc3NDYWxsYWJsZToKKyAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gS0VZX1BBU1NXT1JECisgICAgICAgICAgICBkZWYgZ2V0cGFzcyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gS0VZX1BBU1NXT1JECisgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEVfUFJPVEVDVEVELCBwYXNzd29yZD1nZXRwYXNzX3VuaWNvZGUpCisgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEVfUFJPVEVDVEVELCBwYXNzd29yZD1nZXRwYXNzX2J5dGVzKQorICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFX1BST1RFQ1RFRCwgcGFzc3dvcmQ9Z2V0cGFzc19ieXRlYXJyYXkpCisgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEVfUFJPVEVDVEVELCBwYXNzd29yZD1HZXRQYXNzQ2FsbGFibGUoKSkKKyAgICAgICAgY3R4LmxvYWRfY2VydF9jaGFpbihDRVJURklMRV9QUk9URUNURUQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ9R2V0UGFzc0NhbGxhYmxlKCkuZ2V0cGFzcykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzc2wuU1NMRXJyb3IpOgorICAgICAgICAgICAgY3R4LmxvYWRfY2VydF9jaGFpbihDRVJURklMRV9QUk9URUNURUQsIHBhc3N3b3JkPWdldHBhc3NfYmFkcGFzcykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFZhbHVlRXJyb3IsICJjYW5ub3QgYmUgbG9uZ2VyIik6CisgICAgICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFX1BST1RFQ1RFRCwgcGFzc3dvcmQ9Z2V0cGFzc19odWdlKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAibXVzdCByZXR1cm4gYSBzdHJpbmciKToKKyAgICAgICAgICAgIGN0eC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEVfUFJPVEVDVEVELCBwYXNzd29yZD1nZXRwYXNzX2JhZF90eXBlKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoRXhjZXB0aW9uLCAiZ2V0cGFzcyBlcnJvciIpOgorICAgICAgICAgICAgY3R4LmxvYWRfY2VydF9jaGFpbihDRVJURklMRV9QUk9URUNURUQsIHBhc3N3b3JkPWdldHBhc3NfZXhjZXB0aW9uKQorICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgcGFzc3dvcmQgZnVuY3Rpb24gaXNuJ3QgY2FsbGVkIGlmIGl0IGlzbid0IG5lZWRlZAorICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFLCBwYXNzd29yZD1nZXRwYXNzX2V4Y2VwdGlvbikKIAogICAgIGRlZiB0ZXN0X2xvYWRfdmVyaWZ5X2xvY2F0aW9ucyhzZWxmKToKICAgICAgICAgY3R4ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1RMU3YxKQpAQCAtNDQ3LDYgKzU0MiwxOSBAQAogICAgICAgICAjIElzc3VlICMxMDk4OTogY3Jhc2ggaWYgdGhlIHNlY29uZCBhcmd1bWVudCB0eXBlIGlzIGludmFsaWQKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjdHgubG9hZF92ZXJpZnlfbG9jYXRpb25zLCBOb25lLCBUcnVlKQogCisgICAgZGVmIHRlc3RfbG9hZF9kaF9wYXJhbXMoc2VsZik6CisgICAgICAgIGN0eCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKKyAgICAgICAgY3R4LmxvYWRfZGhfcGFyYW1zKERIRklMRSkKKyAgICAgICAgaWYgb3MubmFtZSAhPSAnbnQnOgorICAgICAgICAgICAgY3R4LmxvYWRfZGhfcGFyYW1zKEJZVEVTX0RIRklMRSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjdHgubG9hZF9kaF9wYXJhbXMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY3R4LmxvYWRfZGhfcGFyYW1zLCBOb25lKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEZpbGVOb3RGb3VuZEVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIGN0eC5sb2FkX2RoX3BhcmFtcyhXUk9OR0NFUlQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm5vLCBlcnJuby5FTk9FTlQpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoc3NsLlNTTEVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIGN0eC5sb2FkX2RoX3BhcmFtcyhDRVJURklMRSkKKwogICAgIEBza2lwX2lmX2Jyb2tlbl91YnVudHVfc3NsCiAgICAgZGVmIHRlc3Rfc2Vzc2lvbl9zdGF0cyhzZWxmKToKICAgICAgICAgZm9yIHByb3RvIGluIFBST1RPQ09MUzoKQEAgLTQ3MSw2ICs1NzksNTcgQEAKICAgICAgICAgY3R4ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1RMU3YxKQogICAgICAgICBjdHguc2V0X2RlZmF1bHRfdmVyaWZ5X3BhdGhzKCkKIAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHNzbC5IQVNfRUNESCwgIkVDREggZGlzYWJsZWQgb24gdGhpcyBPcGVuU1NMIGJ1aWxkIikKKyAgICBkZWYgdGVzdF9zZXRfZWNkaF9jdXJ2ZShzZWxmKToKKyAgICAgICAgY3R4ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1RMU3YxKQorICAgICAgICBjdHguc2V0X2VjZGhfY3VydmUoInByaW1lMjU2djEiKQorICAgICAgICBjdHguc2V0X2VjZGhfY3VydmUoYiJwcmltZTI1NnYxIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBjdHguc2V0X2VjZGhfY3VydmUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgY3R4LnNldF9lY2RoX2N1cnZlLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjdHguc2V0X2VjZGhfY3VydmUsICJmb28iKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjdHguc2V0X2VjZGhfY3VydmUsIGIiZm9vIikKKworCitjbGFzcyBTU0xFcnJvclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X3N0cihzZWxmKToKKyAgICAgICAgIyBUaGUgc3RyKCkgb2YgYSBTU0xFcnJvciBkb2Vzbid0IGluY2x1ZGUgdGhlIGVycm5vCisgICAgICAgIGUgPSBzc2wuU1NMRXJyb3IoMSwgImZvbyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGUpLCAiZm9vIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmVycm5vLCAxKQorICAgICAgICAjIFNhbWUgZm9yIGEgc3ViY2xhc3MKKyAgICAgICAgZSA9IHNzbC5TU0xaZXJvUmV0dXJuRXJyb3IoMSwgImZvbyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGUpLCAiZm9vIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlLmVycm5vLCAxKQorCisgICAgZGVmIHRlc3RfbGliX3JlYXNvbihzZWxmKToKKyAgICAgICAgIyBUZXN0IHRoZSBsaWJyYXJ5IGFuZCByZWFzb24gYXR0cmlidXRlcworICAgICAgICBjdHggPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfVExTdjEpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoc3NsLlNTTEVycm9yKSBhcyBjbToKKyAgICAgICAgICAgIGN0eC5sb2FkX2RoX3BhcmFtcyhDRVJURklMRSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24ubGlicmFyeSwgJ1BFTScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLnJlYXNvbiwgJ05PX1NUQVJUX0xJTkUnKQorICAgICAgICBzID0gc3RyKGNtLmV4Y2VwdGlvbikKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHMuc3RhcnRzd2l0aCgiW1BFTTogTk9fU1RBUlRfTElORV0gbm8gc3RhcnQgbGluZSIpLCBzKQorCisgICAgZGVmIHRlc3Rfc3ViY2xhc3Moc2VsZik6CisgICAgICAgICMgQ2hlY2sgdGhhdCB0aGUgYXBwcm9wcmlhdGUgU1NMRXJyb3Igc3ViY2xhc3MgaXMgcmFpc2VkCisgICAgICAgICMgKHRoaXMgb25seSB0ZXN0cyBvbmUgb2YgdGhlbSkKKyAgICAgICAgY3R4ID0gc3NsLlNTTENvbnRleHQoc3NsLlBST1RPQ09MX1RMU3YxKQorICAgICAgICB3aXRoIHNvY2tldC5zb2NrZXQoKSBhcyBzOgorICAgICAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgMCkpCisgICAgICAgICAgICBzLmxpc3Rlbig1KQorICAgICAgICAgICAgd2l0aCBzb2NrZXQuc29ja2V0KCkgYXMgYzoKKyAgICAgICAgICAgICAgICBjLmNvbm5lY3Qocy5nZXRzb2NrbmFtZSgpKQorICAgICAgICAgICAgICAgIGMuc2V0YmxvY2tpbmcoRmFsc2UpCisgICAgICAgICAgICAgICAgYyA9IGN0eC53cmFwX3NvY2tldChjLCBGYWxzZSwgZG9faGFuZHNoYWtlX29uX2Nvbm5lY3Q9RmFsc2UpCisgICAgICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhzc2wuU1NMV2FudFJlYWRFcnJvcikgYXMgY206CisgICAgICAgICAgICAgICAgICAgIGMuZG9faGFuZHNoYWtlKCkKKyAgICAgICAgICAgICAgICBzID0gc3RyKGNtLmV4Y2VwdGlvbikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocy5zdGFydHN3aXRoKCJUaGUgb3BlcmF0aW9uIGRpZCBub3QgY29tcGxldGUgKHJlYWQpIiksIHMpCisgICAgICAgICAgICAgICAgIyBGb3IgY29tcGF0aWJpbGl0eQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY20uZXhjZXB0aW9uLmVycm5vLCBzc2wuU1NMX0VSUk9SX1dBTlRfUkVBRCkKKwogCiBjbGFzcyBOZXR3b3JrZWRUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTUzMywxMyArNjkyLDEwIEBACiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAgICAgIHMuZG9faGFuZHNoYWtlKCkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBzc2wuU1NMRXJyb3IgYXMgZXJyOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgZXJyLmFyZ3NbMF0gPT0gc3NsLlNTTF9FUlJPUl9XQU5UX1JFQUQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNlbGVjdChbc10sIFtdLCBbXSwgNS4wKQotICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBlcnIuYXJnc1swXSA9PSBzc2wuU1NMX0VSUk9SX1dBTlRfV1JJVEU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNlbGVjdChbXSwgW3NdLCBbXSwgNS4wKQotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgc3NsLlNTTFdhbnRSZWFkRXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2VsZWN0KFtzXSwgW10sIFtdLCA1LjApCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBzc2wuU1NMV2FudFdyaXRlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2VsZWN0KFtdLCBbc10sIFtdLCA1LjApCiAgICAgICAgICAgICAgICAgIyBTU0wgZXN0YWJsaXNoZWQKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocy5nZXRwZWVyY2VydCgpKQogICAgICAgICAgICAgZmluYWxseToKQEAgLTY1OSwzNyArODE1LDM5IEBACiAgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDEKICAgICAgICAgICAgICAgICAgICAgcy5kb19oYW5kc2hha2UoKQogICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGV4Y2VwdCBzc2wuU1NMRXJyb3IgYXMgZXJyOgotICAgICAgICAgICAgICAgICAgICBpZiBlcnIuYXJnc1swXSA9PSBzc2wuU1NMX0VSUk9SX1dBTlRfUkVBRDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZWxlY3QoW3NdLCBbXSwgW10pCi0gICAgICAgICAgICAgICAgICAgIGVsaWYgZXJyLmFyZ3NbMF0gPT0gc3NsLlNTTF9FUlJPUl9XQU5UX1dSSVRFOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0LnNlbGVjdChbXSwgW3NdLCBbXSkKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICAgICAgZXhjZXB0IHNzbC5TU0xXYW50UmVhZEVycm9yOgorICAgICAgICAgICAgICAgICAgICBzZWxlY3Quc2VsZWN0KFtzXSwgW10sIFtdKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBzc2wuU1NMV2FudFdyaXRlRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZWxlY3QoW10sIFtzXSwgW10pCiAgICAgICAgICAgICBzLmNsb3NlKCkKICAgICAgICAgICAgIGlmIHN1cHBvcnQudmVyYm9zZToKICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJcbk5lZWRlZCAlZCBjYWxscyB0byBkb19oYW5kc2hha2UoKSB0byBlc3RhYmxpc2ggc2Vzc2lvbi5cbiIgJSBjb3VudCkKIAogICAgIGRlZiB0ZXN0X2dldF9zZXJ2ZXJfY2VydGlmaWNhdGUoc2VsZik6Ci0gICAgICAgIHdpdGggc3VwcG9ydC50cmFuc2llbnRfaW50ZXJuZXQoInN2bi5weXRob24ub3JnIik6Ci0gICAgICAgICAgICBwZW0gPSBzc2wuZ2V0X3NlcnZlcl9jZXJ0aWZpY2F0ZSgoInN2bi5weXRob24ub3JnIiwgNDQzKSkKLSAgICAgICAgICAgIGlmIG5vdCBwZW06Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJObyBzZXJ2ZXIgY2VydGlmaWNhdGUgb24gc3ZuLnB5dGhvbi5vcmc6NDQzISIpCisgICAgICAgIGRlZiBfdGVzdF9nZXRfc2VydmVyX2NlcnRpZmljYXRlKGhvc3QsIHBvcnQsIGNlcnQ9Tm9uZSk6CisgICAgICAgICAgICB3aXRoIHN1cHBvcnQudHJhbnNpZW50X2ludGVybmV0KGhvc3QpOgorICAgICAgICAgICAgICAgIHBlbSA9IHNzbC5nZXRfc2VydmVyX2NlcnRpZmljYXRlKChob3N0LCBwb3J0KSkKKyAgICAgICAgICAgICAgICBpZiBub3QgcGVtOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIk5vIHNlcnZlciBjZXJ0aWZpY2F0ZSBvbiAlczolcyEiICUgKGhvc3QsIHBvcnQpKQogCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcGVtID0gc3NsLmdldF9zZXJ2ZXJfY2VydGlmaWNhdGUoKCJzdm4ucHl0aG9uLm9yZyIsIDQ0MyksIGNhX2NlcnRzPUNFUlRGSUxFKQotICAgICAgICAgICAgZXhjZXB0IHNzbC5TU0xFcnJvciBhcyB4OgotICAgICAgICAgICAgICAgICNzaG91bGQgZmFpbAorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcGVtID0gc3NsLmdldF9zZXJ2ZXJfY2VydGlmaWNhdGUoKGhvc3QsIHBvcnQpLCBjYV9jZXJ0cz1DRVJURklMRSkKKyAgICAgICAgICAgICAgICBleGNlcHQgc3NsLlNTTEVycm9yIGFzIHg6CisgICAgICAgICAgICAgICAgICAgICNzaG91bGQgZmFpbAorICAgICAgICAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCIlc1xuIiAlIHgpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJHb3Qgc2VydmVyIGNlcnRpZmljYXRlICVzIGZvciAlczolcyEiICUgKHBlbSwgaG9zdCwgcG9ydCkpCisKKyAgICAgICAgICAgICAgICBwZW0gPSBzc2wuZ2V0X3NlcnZlcl9jZXJ0aWZpY2F0ZSgoaG9zdCwgcG9ydCksIGNhX2NlcnRzPWNlcnQpCisgICAgICAgICAgICAgICAgaWYgbm90IHBlbToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJObyBzZXJ2ZXIgY2VydGlmaWNhdGUgb24gJXM6JXMhIiAlIChob3N0LCBwb3J0KSkKICAgICAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIiVzXG4iICUgeCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJHb3Qgc2VydmVyIGNlcnRpZmljYXRlICVzIGZvciBzdm4ucHl0aG9uLm9yZyEiICUgcGVtKQorICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJcblZlcmlmaWVkIGNlcnRpZmljYXRlIGZvciAlczolcyBpc1xuJXNcbiIgJSAoaG9zdCwgcG9ydCAscGVtKSkKIAotICAgICAgICAgICAgcGVtID0gc3NsLmdldF9zZXJ2ZXJfY2VydGlmaWNhdGUoKCJzdm4ucHl0aG9uLm9yZyIsIDQ0MyksIGNhX2NlcnRzPVNWTl9QWVRIT05fT1JHX1JPT1RfQ0VSVCkKLSAgICAgICAgICAgIGlmIG5vdCBwZW06Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCJObyBzZXJ2ZXIgY2VydGlmaWNhdGUgb24gc3ZuLnB5dGhvbi5vcmc6NDQzISIpCi0gICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiXG5WZXJpZmllZCBjZXJ0aWZpY2F0ZSBmb3Igc3ZuLnB5dGhvbi5vcmc6NDQzIGlzXG4lc1xuIiAlIHBlbSkKKyAgICAgICAgX3Rlc3RfZ2V0X3NlcnZlcl9jZXJ0aWZpY2F0ZSgnc3ZuLnB5dGhvbi5vcmcnLCA0NDMsIFNWTl9QWVRIT05fT1JHX1JPT1RfQ0VSVCkKKyAgICAgICAgaWYgc3VwcG9ydC5JUFY2X0VOQUJMRUQ6CisgICAgICAgICAgICBfdGVzdF9nZXRfc2VydmVyX2NlcnRpZmljYXRlKCdpcHY2Lmdvb2dsZS5jb20nLCA0NDMpCiAKICAgICBkZWYgdGVzdF9jaXBoZXJzKHNlbGYpOgogICAgICAgICByZW1vdGUgPSAoInN2bi5weXRob24ub3JnIiwgNDQzKQpAQCAtNzY3LDYgKzkyNSw3IEBACiAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICBzZWxmLnNzbGNvbm4gPSBzZWxmLnNlcnZlci5jb250ZXh0LndyYXBfc29ja2V0KAogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zb2NrLCBzZXJ2ZXJfc2lkZT1UcnVlKQorICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlci5zZWxlY3RlZF9wcm90b2NvbHMuYXBwZW5kKHNlbGYuc3NsY29ubi5zZWxlY3RlZF9ucG5fcHJvdG9jb2woKSkKICAgICAgICAgICAgICAgICBleGNlcHQgc3NsLlNTTEVycm9yIGFzIGU6CiAgICAgICAgICAgICAgICAgICAgICMgWFhYIFZhcmlvdXMgZXJyb3JzIGNhbiBoYXZlIGhhcHBlbmVkIGhlcmUsIGZvciBleGFtcGxlCiAgICAgICAgICAgICAgICAgICAgICMgYSBtaXNtYXRjaGluZyBwcm90b2NvbCB2ZXJzaW9uLCBhbiBpbnZhbGlkIGNlcnRpZmljYXRlLApAQCAtNzg5LDYgKzk0OCw4IEBACiAgICAgICAgICAgICAgICAgICAgIGNpcGhlciA9IHNlbGYuc3NsY29ubi5jaXBoZXIoKQogICAgICAgICAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2UgYW5kIHNlbGYuc2VydmVyLmNoYXR0eToKICAgICAgICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIiBzZXJ2ZXI6IGNvbm5lY3Rpb24gY2lwaGVyIGlzIG5vdyAiICsgc3RyKGNpcGhlcikgKyAiXG4iKQorICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiIHNlcnZlcjogc2VsZWN0ZWQgcHJvdG9jb2wgaXMgbm93ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBzdHIoc2VsZi5zc2xjb25uLnNlbGVjdGVkX25wbl9wcm90b2NvbCgpKSArICJcbiIpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICAgICAgICAgIGRlZiByZWFkKHNlbGYpOgpAQCAtODQzLDYgKzEwMDQsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNzbGNvbm4gPSBOb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlIGFuZCBzZWxmLnNlcnZlci5jb25uZWN0aW9uY2hhdHR5OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCIgc2VydmVyOiBjb25uZWN0aW9uIGlzIG5vdyB1bmVuY3J5cHRlZC4uLlxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgc3RyaXBwZWQgPT0gYidDQiB0bHMtdW5pcXVlJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2UgYW5kIHNlbGYuc2VydmVyLmNvbm5lY3Rpb25jaGF0dHk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIiBzZXJ2ZXI6IHJlYWQgQ0IgdGxzLXVuaXF1ZSBmcm9tIGNsaWVudCwgc2VuZGluZyBvdXIgQ0IgZGF0YS4uLlxuIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5zc2xjb25uLmdldF9jaGFubmVsX2JpbmRpbmcoInRscy11bmlxdWUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYud3JpdGUocmVwcihkYXRhKS5lbmNvZGUoInVzLWFzY2lpIikgKyBiIlxuIikKICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnQudmVyYm9zZSBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIuY29ubmVjdGlvbmNoYXR0eSk6CkBAIC04NjIsNyArMTAyOCw3IEBACiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjZXJ0aWZpY2F0ZT1Ob25lLCBzc2xfdmVyc2lvbj1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgY2VydHJlcXM9Tm9uZSwgY2FjZXJ0cz1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PVRydWUsIGNvbm5lY3Rpb25jaGF0dHk9RmFsc2UsIHN0YXJ0dGxzX3NlcnZlcj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIGNpcGhlcnM9Tm9uZSwgY29udGV4dD1Ob25lKToKKyAgICAgICAgICAgICAgICAgICAgIG5wbl9wcm90b2NvbHM9Tm9uZSwgY2lwaGVycz1Ob25lLCBjb250ZXh0PU5vbmUpOgogICAgICAgICAgICAgaWYgY29udGV4dDoKICAgICAgICAgICAgICAgICBzZWxmLmNvbnRleHQgPSBjb250ZXh0CiAgICAgICAgICAgICBlbHNlOgpAQCAtODc1LDYgKzEwNDEsOCBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbnRleHQubG9hZF92ZXJpZnlfbG9jYXRpb25zKGNhY2VydHMpCiAgICAgICAgICAgICAgICAgaWYgY2VydGlmaWNhdGU6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29udGV4dC5sb2FkX2NlcnRfY2hhaW4oY2VydGlmaWNhdGUpCisgICAgICAgICAgICAgICAgaWYgbnBuX3Byb3RvY29sczoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jb250ZXh0LnNldF9ucG5fcHJvdG9jb2xzKG5wbl9wcm90b2NvbHMpCiAgICAgICAgICAgICAgICAgaWYgY2lwaGVyczoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb250ZXh0LnNldF9jaXBoZXJzKGNpcGhlcnMpCiAgICAgICAgICAgICBzZWxmLmNoYXR0eSA9IGNoYXR0eQpAQCAtODg0LDYgKzEwNTIsNyBAQAogICAgICAgICAgICAgc2VsZi5wb3J0ID0gc3VwcG9ydC5iaW5kX3BvcnQoc2VsZi5zb2NrKQogICAgICAgICAgICAgc2VsZi5mbGFnID0gTm9uZQogICAgICAgICAgICAgc2VsZi5hY3RpdmUgPSBGYWxzZQorICAgICAgICAgICAgc2VsZi5zZWxlY3RlZF9wcm90b2NvbHMgPSBbXQogICAgICAgICAgICAgc2VsZi5jb25uX2Vycm9ycyA9IFtdCiAgICAgICAgICAgICB0aHJlYWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCiAgICAgICAgICAgICBzZWxmLmRhZW1vbiA9IFRydWUKQEAgLTk1MSwxMiArMTEyMCwxMSBAQAogICAgICAgICAgICAgICAgIGRlZiBfZG9fc3NsX2hhbmRzaGFrZShzZWxmKToKICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zb2NrZXQuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHNzbC5TU0xFcnJvciBhcyBlcnI6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBlcnIuYXJnc1swXSBpbiAoc3NsLlNTTF9FUlJPUl9XQU5UX1JFQUQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsLlNTTF9FUlJPUl9XQU5UX1dSSVRFKToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgZXJyLmFyZ3NbMF0gPT0gc3NsLlNTTF9FUlJPUl9FT0Y6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaGFuZGxlX2Nsb3NlKCkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IChzc2wuU1NMV2FudFJlYWRFcnJvciwgc3NsLlNTTFdhbnRXcml0ZUVycm9yKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgICAgICBleGNlcHQgc3NsLlNTTEVPRkVycm9yOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaGFuZGxlX2Nsb3NlKCkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHNzbC5TU0xFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZXJyOgogICAgICAgICAgICAgICAgICAgICAgICAgaWYgZXJyLmFyZ3NbMF0gPT0gZXJybm8uRUNPTk5BQk9SVEVEOgpAQCAtMTA3OSw2ICsxMjQ3LDcgQEAKICAgICAgICAgTGF1bmNoIGEgc2VydmVyLCBjb25uZWN0IGEgY2xpZW50IHRvIGl0IGFuZCB0cnkgdmFyaW91cyByZWFkcwogICAgICAgICBhbmQgd3JpdGVzLgogICAgICAgICAiIiIKKyAgICAgICAgc3RhdHMgPSB7fQogICAgICAgICBzZXJ2ZXIgPSBUaHJlYWRlZEVjaG9TZXJ2ZXIoY29udGV4dD1zZXJ2ZXJfY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXR0eT1jaGF0dHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uY2hhdHR5PUZhbHNlKQpAQCAtMTEwNCw3ICsxMjczLDE0IEBACiAgICAgICAgICAgICAgICAgaWYgY29ubmVjdGlvbmNoYXR0eToKICAgICAgICAgICAgICAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgogICAgICAgICAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgiIGNsaWVudDogIGNsb3NpbmcgY29ubmVjdGlvbi5cbiIpCisgICAgICAgICAgICAgICAgc3RhdHMudXBkYXRlKHsKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXByZXNzaW9uJzogcy5jb21wcmVzc2lvbigpLAorICAgICAgICAgICAgICAgICAgICAnY2lwaGVyJzogcy5jaXBoZXIoKSwKKyAgICAgICAgICAgICAgICAgICAgJ2NsaWVudF9ucG5fcHJvdG9jb2wnOiBzLnNlbGVjdGVkX25wbl9wcm90b2NvbCgpCisgICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgICBzLmNsb3NlKCkKKyAgICAgICAgICAgIHN0YXRzWydzZXJ2ZXJfbnBuX3Byb3RvY29scyddID0gc2VydmVyLnNlbGVjdGVkX3Byb3RvY29scworICAgICAgICByZXR1cm4gc3RhdHMKIAogICAgIGRlZiB0cnlfcHJvdG9jb2xfY29tYm8oc2VydmVyX3Byb3RvY29sLCBjbGllbnRfcHJvdG9jb2wsIGV4cGVjdF9zdWNjZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydHNyZXFzPU5vbmUsIHNlcnZlcl9vcHRpb25zPTAsIGNsaWVudF9vcHRpb25zPTApOgpAQCAtMTI1Niw3ICsxNDMyLDggQEAKICAgICAgICAgICAgICAgICB0LmpvaW4oKQogCiAgICAgICAgIEBza2lwX2lmX2Jyb2tlbl91YnVudHVfc3NsCi0gICAgICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc3NsLCAnUFJPVE9DT0xfU1NMdjInKSwgIm5lZWQgU1NMdjIiKQorICAgICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNzbCwgJ1BST1RPQ09MX1NTTHYyJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJPcGVuU1NMIGlzIGNvbXBpbGVkIHdpdGhvdXQgU1NMdjIgc3VwcG9ydCIpCiAgICAgICAgIGRlZiB0ZXN0X3Byb3RvY29sX3NzbHYyKHNlbGYpOgogICAgICAgICAgICAgIiIiQ29ubmVjdGluZyB0byBhbiBTU0x2MiBzZXJ2ZXIgd2l0aCB2YXJpb3VzIGNsaWVudCBvcHRpb25zIiIiCiAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6CkBAIC0xNTYyLDYgKzE3MzksMTUgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgICAgICAgICAjIGNvbnN1bWUgZGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgcy5yZWFkKCkKKworICAgICAgICAgICAgICAgICMgTWFrZSBzdXJlIHNlbmRtc2cgZXQgYWwgYXJlIGRpc2FsbG93ZWQgdG8gYXZvaWQKKyAgICAgICAgICAgICAgICAjIGluYWR2ZXJ0ZW50IGRpc2Nsb3N1cmUgb2YgZGF0YSBhbmQvb3IgY29ycnVwdGlvbgorICAgICAgICAgICAgICAgICMgb2YgdGhlIGVuY3J5cHRlZCBkYXRhIHN0cmVhbQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIHMuc2VuZG1zZywgW2IiZGF0YSJdKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIHMucmVjdm1zZywgMTAwKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy5yZWN2bXNnX2ludG8sIGJ5dGVhcnJheSgxMDApKQorCiAgICAgICAgICAgICAgICAgcy53cml0ZShiIm92ZXJcbiIpCiAgICAgICAgICAgICAgICAgcy5jbG9zZSgpCiAKQEAgLTE2MzAsNiArMTgxNiwxMzUgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHMuY29ubmVjdCgoSE9TVCwgc2VydmVyLnBvcnQpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigibm8gc2hhcmVkIGNpcGhlciIsIHN0cihzZXJ2ZXIuY29ubl9lcnJvcnNbMF0pKQogCisgICAgICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKCJ0bHMtdW5pcXVlIiBpbiBzc2wuQ0hBTk5FTF9CSU5ESU5HX1RZUEVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ3Rscy11bmlxdWUnIGNoYW5uZWwgYmluZGluZyBub3QgYXZhaWxhYmxlIikKKyAgICAgICAgZGVmIHRlc3RfdGxzX3VuaXF1ZV9jaGFubmVsX2JpbmRpbmcoc2VsZik6CisgICAgICAgICAgICAiIiJUZXN0IHRscy11bmlxdWUgY2hhbm5lbCBiaW5kaW5nLiIiIgorICAgICAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIlxuIikKKworICAgICAgICAgICAgc2VydmVyID0gVGhyZWFkZWRFY2hvU2VydmVyKENFUlRGSUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRyZXFzPXNzbC5DRVJUX05PTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsX3ZlcnNpb249c3NsLlBST1RPQ09MX1RMU3YxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2VydHM9Q0VSVEZJTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbmNoYXR0eT1GYWxzZSkKKyAgICAgICAgICAgIHdpdGggc2VydmVyOgorICAgICAgICAgICAgICAgIHMgPSBzc2wud3JhcF9zb2NrZXQoc29ja2V0LnNvY2tldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX3NpZGU9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0ZmlsZT1DRVJURklMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhX2NlcnRzPUNFUlRGSUxFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydF9yZXFzPXNzbC5DRVJUX05PTkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfdmVyc2lvbj1zc2wuUFJPVE9DT0xfVExTdjEpCisgICAgICAgICAgICAgICAgcy5jb25uZWN0KChIT1NULCBzZXJ2ZXIucG9ydCkpCisgICAgICAgICAgICAgICAgIyBnZXQgdGhlIGRhdGEKKyAgICAgICAgICAgICAgICBjYl9kYXRhID0gcy5nZXRfY2hhbm5lbF9iaW5kaW5nKCJ0bHMtdW5pcXVlIikKKyAgICAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6CisgICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIiBnb3QgY2hhbm5lbCBiaW5kaW5nIGRhdGE6IHswIXJ9XG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmZvcm1hdChjYl9kYXRhKSkKKworICAgICAgICAgICAgICAgICMgY2hlY2sgaWYgaXQgaXMgc2FuZQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGNiX2RhdGEpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY2JfZGF0YSksIDEyKSAjIFRydWUgZm9yIFRMU3YxCisKKyAgICAgICAgICAgICAgICAjIGFuZCBjb21wYXJlIHdpdGggdGhlIHBlZXJzIHZlcnNpb24KKyAgICAgICAgICAgICAgICBzLndyaXRlKGIiQ0IgdGxzLXVuaXF1ZVxuIikKKyAgICAgICAgICAgICAgICBwZWVyX2RhdGFfcmVwciA9IHMucmVhZCgpLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBlZXJfZGF0YV9yZXByLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcihjYl9kYXRhKS5lbmNvZGUoInVzLWFzY2lpIikpCisgICAgICAgICAgICAgICAgcy5jbG9zZSgpCisKKyAgICAgICAgICAgICAgICAjIG5vdywgYWdhaW4KKyAgICAgICAgICAgICAgICBzID0gc3NsLndyYXBfc29ja2V0KHNvY2tldC5zb2NrZXQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9zaWRlPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydGZpbGU9Q0VSVEZJTEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYV9jZXJ0cz1DRVJURklMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRfcmVxcz1zc2wuQ0VSVF9OT05FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3NsX3ZlcnNpb249c3NsLlBST1RPQ09MX1RMU3YxKQorICAgICAgICAgICAgICAgIHMuY29ubmVjdCgoSE9TVCwgc2VydmVyLnBvcnQpKQorICAgICAgICAgICAgICAgIG5ld19jYl9kYXRhID0gcy5nZXRfY2hhbm5lbF9iaW5kaW5nKCJ0bHMtdW5pcXVlIikKKyAgICAgICAgICAgICAgICBpZiBzdXBwb3J0LnZlcmJvc2U6CisgICAgICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIiBnb3QgYW5vdGhlciBjaGFubmVsIGJpbmRpbmcgZGF0YTogezAhcn1cbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KG5ld19jYl9kYXRhKSkKKyAgICAgICAgICAgICAgICAjIGlzIGl0IHJlYWxseSB1bmlxdWUKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGNiX2RhdGEsIG5ld19jYl9kYXRhKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3ROb25lKGNiX2RhdGEpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oY2JfZGF0YSksIDEyKSAjIFRydWUgZm9yIFRMU3YxCisgICAgICAgICAgICAgICAgcy53cml0ZShiIkNCIHRscy11bmlxdWVcbiIpCisgICAgICAgICAgICAgICAgcGVlcl9kYXRhX3JlcHIgPSBzLnJlYWQoKS5zdHJpcCgpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwZWVyX2RhdGFfcmVwciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHIobmV3X2NiX2RhdGEpLmVuY29kZSgidXMtYXNjaWkiKSkKKyAgICAgICAgICAgICAgICBzLmNsb3NlKCkKKworICAgICAgICBkZWYgdGVzdF9jb21wcmVzc2lvbihzZWxmKToKKyAgICAgICAgICAgIGNvbnRleHQgPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfVExTdjEpCisgICAgICAgICAgICBjb250ZXh0LmxvYWRfY2VydF9jaGFpbihDRVJURklMRSkKKyAgICAgICAgICAgIHN0YXRzID0gc2VydmVyX3BhcmFtc190ZXN0KGNvbnRleHQsIGNvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGF0dHk9VHJ1ZSwgY29ubmVjdGlvbmNoYXR0eT1UcnVlKQorICAgICAgICAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoIiBnb3QgY29tcHJlc3Npb246IHshcn1cbiIuZm9ybWF0KHN0YXRzWydjb21wcmVzc2lvbiddKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc3RhdHNbJ2NvbXByZXNzaW9uJ10sIHsgTm9uZSwgJ1pMSUInLCAnUkxFJyB9KQorCisgICAgICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc3NsLCAnT1BfTk9fQ09NUFJFU1NJT04nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNzbC5PUF9OT19DT01QUkVTU0lPTiBuZWVkZWQgZm9yIHRoaXMgdGVzdCIpCisgICAgICAgIGRlZiB0ZXN0X2NvbXByZXNzaW9uX2Rpc2FibGVkKHNlbGYpOgorICAgICAgICAgICAgY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKKyAgICAgICAgICAgIGNvbnRleHQubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFKQorICAgICAgICAgICAgY29udGV4dC5vcHRpb25zIHw9IHNzbC5PUF9OT19DT01QUkVTU0lPTgorICAgICAgICAgICAgc3RhdHMgPSBzZXJ2ZXJfcGFyYW1zX3Rlc3QoY29udGV4dCwgY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXR0eT1UcnVlLCBjb25uZWN0aW9uY2hhdHR5PVRydWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHN0YXRzWydjb21wcmVzc2lvbiddLCBOb25lKQorCisgICAgICAgIGRlZiB0ZXN0X2RoX3BhcmFtcyhzZWxmKToKKyAgICAgICAgICAgICMgQ2hlY2sgd2UgY2FuIGdldCBhIGNvbm5lY3Rpb24gd2l0aCBlcGhlbWVyYWwgRGlmZmllLUhlbGxtYW4KKyAgICAgICAgICAgIGNvbnRleHQgPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfVExTdjEpCisgICAgICAgICAgICBjb250ZXh0LmxvYWRfY2VydF9jaGFpbihDRVJURklMRSkKKyAgICAgICAgICAgIGNvbnRleHQubG9hZF9kaF9wYXJhbXMoREhGSUxFKQorICAgICAgICAgICAgY29udGV4dC5zZXRfY2lwaGVycygia0VESCIpCisgICAgICAgICAgICBzdGF0cyA9IHNlcnZlcl9wYXJhbXNfdGVzdChjb250ZXh0LCBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PVRydWUsIGNvbm5lY3Rpb25jaGF0dHk9VHJ1ZSkKKyAgICAgICAgICAgIGNpcGhlciA9IHN0YXRzWyJjaXBoZXIiXVswXQorICAgICAgICAgICAgcGFydHMgPSBjaXBoZXIuc3BsaXQoIi0iKQorICAgICAgICAgICAgaWYgIkFESCIgbm90IGluIHBhcnRzIGFuZCAiRURIIiBub3QgaW4gcGFydHMgYW5kICJESEUiIG5vdCBpbiBwYXJ0czoKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoIk5vbi1ESCBjaXBoZXI6ICIgKyBjaXBoZXJbMF0pCisKKyAgICAgICAgZGVmIHRlc3Rfc2VsZWN0ZWRfbnBuX3Byb3RvY29sKHNlbGYpOgorICAgICAgICAgICAgIyBzZWxlY3RlZF9ucG5fcHJvdG9jb2woKSBpcyBOb25lIHVubGVzcyBOUE4gaXMgdXNlZAorICAgICAgICAgICAgY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKKyAgICAgICAgICAgIGNvbnRleHQubG9hZF9jZXJ0X2NoYWluKENFUlRGSUxFKQorICAgICAgICAgICAgc3RhdHMgPSBzZXJ2ZXJfcGFyYW1zX3Rlc3QoY29udGV4dCwgY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXR0eT1UcnVlLCBjb25uZWN0aW9uY2hhdHR5PVRydWUpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHN0YXRzWydjbGllbnRfbnBuX3Byb3RvY29sJ10sIE5vbmUpCisKKyAgICAgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3NsLkhBU19OUE4sICJOUE4gc3VwcG9ydCBuZWVkZWQgZm9yIHRoaXMgdGVzdCIpCisgICAgICAgIGRlZiB0ZXN0X25wbl9wcm90b2NvbHMoc2VsZik6CisgICAgICAgICAgICBzZXJ2ZXJfcHJvdG9jb2xzID0gWydodHRwLzEuMScsICdzcGR5LzInXQorICAgICAgICAgICAgcHJvdG9jb2xfdGVzdHMgPSBbCisgICAgICAgICAgICAgICAgKFsnaHR0cC8xLjEnLCAnc3BkeS8yJ10sICdodHRwLzEuMScpLAorICAgICAgICAgICAgICAgIChbJ3NwZHkvMicsICdodHRwLzEuMSddLCAnaHR0cC8xLjEnKSwKKyAgICAgICAgICAgICAgICAoWydzcGR5LzInLCAndGVzdCddLCAnc3BkeS8yJyksCisgICAgICAgICAgICAgICAgKFsnYWJjJywgJ2RlZiddLCAnYWJjJykKKyAgICAgICAgICAgIF0KKyAgICAgICAgICAgIGZvciBjbGllbnRfcHJvdG9jb2xzLCBleHBlY3RlZCBpbiBwcm90b2NvbF90ZXN0czoKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKKyAgICAgICAgICAgICAgICBzZXJ2ZXJfY29udGV4dC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEUpCisgICAgICAgICAgICAgICAgc2VydmVyX2NvbnRleHQuc2V0X25wbl9wcm90b2NvbHMoc2VydmVyX3Byb3RvY29scykKKyAgICAgICAgICAgICAgICBjbGllbnRfY29udGV4dCA9IHNzbC5TU0xDb250ZXh0KHNzbC5QUk9UT0NPTF9UTFN2MSkKKyAgICAgICAgICAgICAgICBjbGllbnRfY29udGV4dC5sb2FkX2NlcnRfY2hhaW4oQ0VSVEZJTEUpCisgICAgICAgICAgICAgICAgY2xpZW50X2NvbnRleHQuc2V0X25wbl9wcm90b2NvbHMoY2xpZW50X3Byb3RvY29scykKKyAgICAgICAgICAgICAgICBzdGF0cyA9IHNlcnZlcl9wYXJhbXNfdGVzdChjbGllbnRfY29udGV4dCwgc2VydmVyX2NvbnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhdHR5PVRydWUsIGNvbm5lY3Rpb25jaGF0dHk9VHJ1ZSkKKworICAgICAgICAgICAgICAgIG1zZyA9ICJmYWlsZWQgdHJ5aW5nICVzIChzKSBhbmQgJXMgKGMpLlxuIiBcCisgICAgICAgICAgICAgICAgICAgICAgIndhcyBleHBlY3RpbmcgJXMsIGJ1dCBnb3QgJSVzIGZyb20gdGhlICUlcyIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAlIChzdHIoc2VydmVyX3Byb3RvY29scyksIHN0cihjbGllbnRfcHJvdG9jb2xzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGV4cGVjdGVkKSkKKyAgICAgICAgICAgICAgICBjbGllbnRfcmVzdWx0ID0gc3RhdHNbJ2NsaWVudF9ucG5fcHJvdG9jb2wnXQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xpZW50X3Jlc3VsdCwgZXhwZWN0ZWQsIG1zZyAlIChjbGllbnRfcmVzdWx0LCAiY2xpZW50IikpCisgICAgICAgICAgICAgICAgc2VydmVyX3Jlc3VsdCA9IHN0YXRzWydzZXJ2ZXJfbnBuX3Byb3RvY29scyddWy0xXSBcCisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihzdGF0c1snc2VydmVyX25wbl9wcm90b2NvbHMnXSkgZWxzZSAnbm90aGluZycKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlcnZlcl9yZXN1bHQsIGV4cGVjdGVkLCBtc2cgJSAoc2VydmVyX3Jlc3VsdCwgInNlcnZlciIpKQorCiAKIGRlZiB0ZXN0X21haW4odmVyYm9zZT1GYWxzZSk6CiAgICAgaWYgc3VwcG9ydC52ZXJib3NlOgpAQCAtMTY1Nyw3ICsxOTcyLDcgQEAKICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lKToKICAgICAgICAgICAgIHJhaXNlIHN1cHBvcnQuVGVzdEZhaWxlZCgiQ2FuJ3QgcmVhZCBjZXJ0aWZpY2F0ZSBmaWxlICVyIiAlIGZpbGVuYW1lKQogCi0gICAgdGVzdHMgPSBbQ29udGV4dFRlc3RzLCBCYXNpY1NvY2tldFRlc3RzXQorICAgIHRlc3RzID0gW0NvbnRleHRUZXN0cywgQmFzaWNTb2NrZXRUZXN0cywgU1NMRXJyb3JUZXN0c10KIAogICAgIGlmIHN1cHBvcnQuaXNfcmVzb3VyY2VfZW5hYmxlZCgnbmV0d29yaycpOgogICAgICAgICB0ZXN0cy5hcHBlbmQoTmV0d29ya2VkVGVzdHMpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3N0YXQucHkgYi9MaWIvdGVzdC90ZXN0X3N0YXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDhkNWUzOAotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3Rfc3RhdC5weQpAQCAtMCwwICsxLDY2IEBACitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBvcworaW1wb3J0IHN0YXQKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBURVNURk4sIHJ1bl91bml0dGVzdAorCisKK2RlZiBnZXRfbW9kZShmbmFtZT1URVNURk4pOgorICAgIHJldHVybiBzdGF0LmZpbGVtb2RlKG9zLmxzdGF0KGZuYW1lKS5zdF9tb2RlKQorCisKK2NsYXNzIFRlc3RGaWxlbW9kZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9zLnJlbW92ZShURVNURk4pCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG9zLnJtZGlyKFRFU1RGTikKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICB0ZWFyRG93biA9IHNldFVwCisKKyAgICBkZWYgdGVzdF9tb2RlKHNlbGYpOgorICAgICAgICB3aXRoIG9wZW4oVEVTVEZOLCAndycpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBpZiBvcy5uYW1lID09ICdwb3NpeCc6CisgICAgICAgICAgICBvcy5jaG1vZChURVNURk4sIDBvNzAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfbW9kZSgpLCAnLXJ3eC0tLS0tLScpCisgICAgICAgICAgICBvcy5jaG1vZChURVNURk4sIDBvMDcwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfbW9kZSgpLCAnLS0tLXJ3eC0tLScpCisgICAgICAgICAgICBvcy5jaG1vZChURVNURk4sIDBvMDA3KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfbW9kZSgpLCAnLS0tLS0tLXJ3eCcpCisgICAgICAgICAgICBvcy5jaG1vZChURVNURk4sIDBvNDQ0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfbW9kZSgpLCAnLXItLXItLXItLScpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvcy5jaG1vZChURVNURk4sIDBvNzAwKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfbW9kZSgpWzozXSwgJy1ydycpCisKKyAgICBkZWYgdGVzdF9kaXJlY3Rvcnkoc2VsZik6CisgICAgICAgIG9zLm1rZGlyKFRFU1RGTikKKyAgICAgICAgb3MuY2htb2QoVEVTVEZOLCAwbzcwMCkKKyAgICAgICAgaWYgb3MubmFtZSA9PSAncG9zaXgnOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChnZXRfbW9kZSgpLCAnZHJ3eC0tLS0tLScpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldF9tb2RlKClbMF0sICdkJykKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdzeW1saW5rJyksICdvcy5zeW1saW5rIG5vdCBhdmFpbGFibGUnKQorICAgIGRlZiB0ZXN0X2xpbmsoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9zLnN5bWxpbmsob3MuZ2V0Y3dkKCksIFRFU1RGTikKKyAgICAgICAgZXhjZXB0IChPU0Vycm9yLCBOb3RJbXBsZW1lbnRlZEVycm9yKSBhcyBlcnI6CisgICAgICAgICAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdChzdHIoZXJyKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZ2V0X21vZGUoKVswXSwgJ2wnKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihvcywgJ21rZmlmbycpLCAnb3MubWtmaWZvIG5vdCBhdmFpbGFibGUnKQorICAgIGRlZiB0ZXN0X2ZpZm8oc2VsZik6CisgICAgICAgIG9zLm1rZmlmbyhURVNURk4sIDBvNzAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldF9tb2RlKCksICdwcnd4LS0tLS0tJykKKworCitkZWYgdGVzdF9tYWluKCk6CisgICAgcnVuX3VuaXR0ZXN0KFRlc3RGaWxlbW9kZSkKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zdHJpbmcucHkgYi9MaWIvdGVzdC90ZXN0X3N0cmluZy5weQppbmRleCBhMzUyZWUzLi4xNjE1NzMyIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3N0cmluZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N0cmluZy5weQpAQCAtMjYsMTUgKzI2LDM4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyaW5nLmNhcHdvcmRzKCdcdGFCY1x0RGVGXHQnKSwgJ0FiYyBEZWYnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmluZy5jYXB3b3JkcygnXHRhQmNcdERlRlx0JywgJ1x0JyksICdcdEFiY1x0RGVmXHQnKQogCi0gICAgZGVmIHRlc3RfZm9ybWF0dGVyKHNlbGYpOgorICAgIGRlZiB0ZXN0X2Jhc2ljX2Zvcm1hdHRlcihzZWxmKToKICAgICAgICAgZm10ID0gc3RyaW5nLkZvcm1hdHRlcigpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm10LmZvcm1hdCgiZm9vIiksICJmb28iKQotCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm10LmZvcm1hdCgiZm9vezB9IiwgImJhciIpLCAiZm9vYmFyIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmbXQuZm9ybWF0KCJmb297MX17MH0tezF9IiwgImJhciIsIDYpLCAiZm9vNmJhci02IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmbXQuZm9ybWF0KCIte2FyZyFyfS0iLCBhcmc9J3Rlc3QnKSwgIi0ndGVzdCctIikKIAotICAgICAgICAjIG92ZXJyaWRlIGdldF92YWx1ZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgIGRlZiB0ZXN0X2NvbnZlcnNpb25fc3BlY2lmaWVycyhzZWxmKToKKyAgICAgICAgZm10ID0gc3RyaW5nLkZvcm1hdHRlcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm10LmZvcm1hdCgiLXthcmchcn0tIiwgYXJnPSd0ZXN0JyksICItJ3Rlc3QnLSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm10LmZvcm1hdCgiezAhc30iLCAndGVzdCcpLCAndGVzdCcpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGZtdC5mb3JtYXQsICJ7MCFofSIsICd0ZXN0JykKKworICAgIGRlZiB0ZXN0X25hbWVfbG9va3VwKHNlbGYpOgorICAgICAgICBmbXQgPSBzdHJpbmcuRm9ybWF0dGVyKCkKKyAgICAgICAgY2xhc3MgQW55QXR0cjoKKyAgICAgICAgICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBhdHRyKToKKyAgICAgICAgICAgICAgICByZXR1cm4gYXR0cgorICAgICAgICB4ID0gQW55QXR0cigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm10LmZvcm1hdCgiezAubHVtYmVyfXswLmphY2t9IiwgeCksICdsdW1iZXJqYWNrJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBmbXQuZm9ybWF0KCJ7MC5sdW1iZXJ9ezAuamFja30iLCAnJykKKworICAgIGRlZiB0ZXN0X2luZGV4X2xvb2t1cChzZWxmKToKKyAgICAgICAgZm10ID0gc3RyaW5nLkZvcm1hdHRlcigpCisgICAgICAgIGxvb2t1cCA9IFsiZWdncyIsICJhbmQiLCAic3BhbSJdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm10LmZvcm1hdCgiezBbMl19ezBbMF19IiwgbG9va3VwKSwgJ3NwYW1lZ2dzJykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhJbmRleEVycm9yKToKKyAgICAgICAgICAgIGZtdC5mb3JtYXQoInswWzJdfXswWzBdfSIsIFtdKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yKToKKyAgICAgICAgICAgIGZtdC5mb3JtYXQoInswWzJdfXswWzBdfSIsIHt9KQorCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfZ2V0X3ZhbHVlKHNlbGYpOgogICAgICAgICBjbGFzcyBOYW1lc3BhY2VGb3JtYXR0ZXIoc3RyaW5nLkZvcm1hdHRlcik6CiAgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZXNwYWNlPXt9KToKICAgICAgICAgICAgICAgICBzdHJpbmcuRm9ybWF0dGVyLl9faW5pdF9fKHNlbGYpCkBAIC01NCw3ICs3Nyw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm10LmZvcm1hdCgie2dyZWV0aW5nfSwgd29ybGQhIiksICdoZWxsbywgd29ybGQhJykKIAogCi0gICAgICAgICMgb3ZlcnJpZGUgZm9ybWF0X2ZpZWxkICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfZm9ybWF0X2ZpZWxkKHNlbGYpOgogICAgICAgICBjbGFzcyBDYWxsRm9ybWF0dGVyKHN0cmluZy5Gb3JtYXR0ZXIpOgogICAgICAgICAgICAgZGVmIGZvcm1hdF9maWVsZChzZWxmLCB2YWx1ZSwgZm9ybWF0X3NwZWMpOgogICAgICAgICAgICAgICAgIHJldHVybiBmb3JtYXQodmFsdWUoKSwgZm9ybWF0X3NwZWMpCkBAIC02MywxOCArODYsMTggQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmbXQuZm9ybWF0KCcqezB9KicsIGxhbWJkYSA6ICdyZXN1bHQnKSwgJypyZXN1bHQqJykKIAogCi0gICAgICAgICMgb3ZlcnJpZGUgY29udmVydF9maWVsZCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgZGVmIHRlc3Rfb3ZlcnJpZGVfY29udmVydF9maWVsZChzZWxmKToKICAgICAgICAgY2xhc3MgWEZvcm1hdHRlcihzdHJpbmcuRm9ybWF0dGVyKToKICAgICAgICAgICAgIGRlZiBjb252ZXJ0X2ZpZWxkKHNlbGYsIHZhbHVlLCBjb252ZXJzaW9uKToKICAgICAgICAgICAgICAgICBpZiBjb252ZXJzaW9uID09ICd4JzoKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIoWEZvcm1hdHRlciwgc2VsZikuY29udmVydF9maWVsZCh2YWx1ZSwgY29udmVyc2lvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5jb252ZXJ0X2ZpZWxkKHZhbHVlLCBjb252ZXJzaW9uKQogCiAgICAgICAgIGZtdCA9IFhGb3JtYXR0ZXIoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZtdC5mb3JtYXQoInswIXJ9OnswIXh9IiwgJ2ZvbycsICdmb28nKSwgIidmb28nOk5vbmUiKQogCiAKLSAgICAgICAgIyBvdmVycmlkZSBwYXJzZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyAgICBkZWYgdGVzdF9vdmVycmlkZV9wYXJzZShzZWxmKToKICAgICAgICAgY2xhc3MgQmFyRm9ybWF0dGVyKHN0cmluZy5Gb3JtYXR0ZXIpOgogICAgICAgICAgICAgIyByZXR1cm5zIGFuIGl0ZXJhYmxlIHRoYXQgY29udGFpbnMgdHVwbGVzIG9mIHRoZSBmb3JtOgogICAgICAgICAgICAgIyAobGl0ZXJhbF90ZXh0LCBmaWVsZF9uYW1lLCBmb3JtYXRfc3BlYywgY29udmVyc2lvbikKQEAgLTkwLDcgKzExMyw3IEBACiAgICAgICAgIGZtdCA9IEJhckZvcm1hdHRlcigpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm10LmZvcm1hdCgnKnwrMDpeMTBzfConLCAnZm9vJyksICcqICAgZm9vICAgIConKQogCi0gICAgICAgICMgdGVzdCBhbGwgcGFyYW1ldGVycyB1c2VkCisgICAgZGVmIHRlc3RfY2hlY2tfdW51c2VkX2FyZ3Moc2VsZik6CiAgICAgICAgIGNsYXNzIENoZWNrQWxsVXNlZEZvcm1hdHRlcihzdHJpbmcuRm9ybWF0dGVyKToKICAgICAgICAgICAgIGRlZiBjaGVja191bnVzZWRfYXJncyhzZWxmLCB1c2VkX2FyZ3MsIGFyZ3MsIGt3YXJncyk6CiAgICAgICAgICAgICAgICAgIyBUcmFjayB3aGljaCBhcmd1bWVudHMgYWN0dWFsbHkgZ290IHVzZWQKQEAgLTExMiwyOCArMTM1LDEzIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGZtdC5mb3JtYXQsICJ7MH0iLCAxMCwgMjAsIGk9MTAwKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmbXQuZm9ybWF0LCAie2l9IiwgMTAsIDIwLCBpPTEwMCkKIAotICAgIGRlZiB0ZXN0X3Zmb3JtYXRfYXNzZXJ0KHNlbGYpOgotICAgICAgICBjbHMgPSBzdHJpbmcuRm9ybWF0dGVyKCkKLSAgICAgICAga3dhcmdzID0gewotICAgICAgICAgICAgImkiOiAxMDAKLSAgICAgICAgfQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjbHMuX3Zmb3JtYXQsCi0gICAgICAgICAgICAgICAgY2xzLmZvcm1hdCwgInswfSIsIGt3YXJncywgc2V0KCksIC0yKQotCi0gICAgZGVmIHRlc3RfY29udmVydF9maWVsZChzZWxmKToKLSAgICAgICAgY2xzID0gc3RyaW5nLkZvcm1hdHRlcigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2xzLmZvcm1hdCgiezAhc30iLCAnZm9vJyksICdmb28nKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBjbHMuZm9ybWF0LCAiezAhaH0iLCAnZm9vJykKLQotICAgIGRlZiB0ZXN0X2dldF9maWVsZChzZWxmKToKLSAgICAgICAgY2xzID0gc3RyaW5nLkZvcm1hdHRlcigpCi0gICAgICAgIGNsYXNzIE15Q2xhc3M6Ci0gICAgICAgICAgICBuYW1lID0gJ2x1bWJlcmphY2snCi0gICAgICAgIHggPSBNeUNsYXNzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbHMuZm9ybWF0KCJ7MC5uYW1lfSIsIHgpLCAnbHVtYmVyamFjaycpCi0KLSAgICAgICAgbG9va3VwID0gWyJlZ2dzIiwgImFuZCIsICJzcGFtIl0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbHMuZm9ybWF0KCJ7MFsyXX0iLCBsb29rdXApLCAnc3BhbScpCisgICAgZGVmIHRlc3RfdmZvcm1hdF9yZWN1cnNpb25fbGltaXQoc2VsZik6CisgICAgICAgIGZtdCA9IHN0cmluZy5Gb3JtYXR0ZXIoKQorICAgICAgICBhcmdzID0gKCkKKyAgICAgICAga3dhcmdzID0gZGljdChpPTEwMCkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBlcnI6CisgICAgICAgICAgICBmbXQuX3Zmb3JtYXQoIntpfSIsIGFyZ3MsIGt3YXJncywgc2V0KCksIC0xKQorICAgICAgICBzZWxmLmFzc2VydEluKCJyZWN1cnNpb24iLCBzdHIoZXJyLmV4Y2VwdGlvbikpCiAKIAogZGVmIHRlc3RfbWFpbigpOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zdHJsaXQucHkgYi9MaWIvdGVzdC90ZXN0X3N0cmxpdC5weQppbmRleCA2YmRjNmU0Li4wN2JjNDg4IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3N0cmxpdC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N0cmxpdC5weQpAQCAtMiwxMCArMiwxMCBAQAogCiBUaGVyZSBhcmUgZm91ciB0eXBlcyBvZiBzdHJpbmcgbGl0ZXJhbHM6CiAKLSAgICAnYWJjJyAgIC0tIG5vcm1hbCBzdHIKLSAgICByJ2FiYycgIC0tIHJhdyBzdHIKLSAgICBiJ3h5eicgIC0tIG5vcm1hbCBieXRlcwotICAgIGJyJ3h5eicgLS0gcmF3IGJ5dGVzCisgICAgJ2FiYycgICAgICAgICAgICAgLS0gbm9ybWFsIHN0cgorICAgIHInYWJjJyAgICAgICAgICAgIC0tIHJhdyBzdHIKKyAgICBiJ3h5eicgICAgICAgICAgICAtLSBub3JtYWwgYnl0ZXMKKyAgICBicid4eXonIHwgcmIneHl6JyAtLSByYXcgYnl0ZXMKIAogVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBub3JtYWwgYW5kIHJhdyBzdHJpbmdzIGlzIG9mIGNvdXJzZSB0aGF0IGluIGEKIHJhdyBzdHJpbmcsIFwgZXNjYXBlcyAod2hpbGUgc3RpbGwgdXNlZCB0byBkZXRlcm1pbmUgdGhlIGVuZCBvZiB0aGUKQEAgLTEwMywxMiArMTAzLDM0IEBACiAKICAgICBkZWYgdGVzdF9ldmFsX2J5dGVzX3JhdyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmFsKCIiIiBicid4JyAiIiIpLCBiJ3gnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwoIiIiIHJiJ3gnICIiIiksIGIneCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZhbChyIiIiIGJyJ1x4MDEnICIiIiksIGInXFwnICsgYid4MDEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwociIiIiByYidceDAxJyAiIiIpLCBiJ1xcJyArIGIneDAxJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChldmFsKCIiIiBicidceDAxJyAiIiIpLCBieXRlKDEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwoIiIiIHJiJ1x4MDEnICIiIiksIGJ5dGUoMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZhbChyIiIiIGJyJ1x4ODEnICIiIiksIGIiXFwiICsgYiJ4ODEiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwociIiIiByYidceDgxJyAiIiIpLCBiIlxcIiArIGIieDgxIikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIGV2YWwsICIiIiBicidceDgxJyAiIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN5bnRheEVycm9yLCBldmFsLCAiIiIgcmInXHg4MScgIiIiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwociIiIiBicidcdTE4ODEnICIiIiksIGIiXFwiICsgYiJ1MTg4MSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZhbChyIiIiIHJiJ1x1MTg4MScgIiIiKSwgYiJcXCIgKyBiInUxODgxIikKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIGV2YWwsICIiIiBicidcdTE4ODEnICIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIGV2YWwsICIiIiByYidcdTE4ODEnICIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIGV2YWwsICIiIiBiYicnICIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIGV2YWwsICIiIiBycicnICIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIGV2YWwsICIiIiBicnInJyAiIiIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN5bnRheEVycm9yLCBldmFsLCAiIiIgYmJyJycgIiIiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTeW50YXhFcnJvciwgZXZhbCwgIiIiIHJyYicnICIiIikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIGV2YWwsICIiIiByYmInJyAiIiIpCisKKyAgICBkZWYgdGVzdF9ldmFsX3N0cl91KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwoIiIiIHUneCcgIiIiKSwgJ3gnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwoIiIiIFUnXHUwMGU0JyAiIiIpLCAnw6QnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV2YWwoIiIiIHUnXE57TEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBESUFFUkVTSVN9JyAiIiIpLCAnw6QnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTeW50YXhFcnJvciwgZXZhbCwgIiIiIHVyJycgIiIiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTeW50YXhFcnJvciwgZXZhbCwgIiIiIHJ1JycgIiIiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTeW50YXhFcnJvciwgZXZhbCwgIiIiIGJ1JycgIiIiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTeW50YXhFcnJvciwgZXZhbCwgIiIiIHViJycgIiIiKQogCiAgICAgZGVmIGNoZWNrX2VuY29kaW5nKHNlbGYsIGVuY29kaW5nLCBleHRyYT0iIik6CiAgICAgICAgIG1vZG5hbWUgPSAieHhfIiArIGVuY29kaW5nLnJlcGxhY2UoIi0iLCAiXyIpCkBAIC0xMzEsNyArMTUzLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IsIHNlbGYuY2hlY2tfZW5jb2RpbmcsICJ1dGYtOCIsIGV4dHJhKQogCiAgICAgZGVmIHRlc3RfZmlsZV91dGY4KHNlbGYpOgotICAgICAgICBzZWxmLmNoZWNrX2VuY29kaW5nKCJ1dGY4IikKKyAgICAgICAgc2VsZi5jaGVja19lbmNvZGluZygidXRmLTgiKQogCiAgICAgZGVmIHRlc3RfZmlsZV9pc29fODg1OV8xKHNlbGYpOgogICAgICAgICBzZWxmLmNoZWNrX2VuY29kaW5nKCJpc28tODg1OS0xIikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc3RydWN0LnB5IGIvTGliL3Rlc3QvdGVzdF9zdHJ1Y3QucHkKaW5kZXggMmNjYWFkMi4uZGM3NTg1OCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zdHJ1Y3QucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zdHJ1Y3QucHkKQEAgLTgsOSArOCwxOSBAQAogSVNCSUdFTkRJQU4gPSBzeXMuYnl0ZW9yZGVyID09ICJiaWciCiBJUzMyQklUID0gc3lzLm1heHNpemUgPT0gMHg3ZmZmZmZmZgogCi1pbnRlZ2VyX2NvZGVzID0gJ2InLCAnQicsICdoJywgJ0gnLCAnaScsICdJJywgJ2wnLCAnTCcsICdxJywgJ1EnCitpbnRlZ2VyX2NvZGVzID0gJ2InLCAnQicsICdoJywgJ0gnLCAnaScsICdJJywgJ2wnLCAnTCcsICdxJywgJ1EnLCAnbicsICdOJwogYnl0ZW9yZGVycyA9ICcnLCAnQCcsICc9JywgJzwnLCAnPicsICchJwogCitkZWYgaXRlcl9pbnRlZ2VyX2Zvcm1hdHMoYnl0ZW9yZGVycz1ieXRlb3JkZXJzKToKKyAgICBmb3IgY29kZSBpbiBpbnRlZ2VyX2NvZGVzOgorICAgICAgICBmb3IgYnl0ZW9yZGVyIGluIGJ5dGVvcmRlcnM6CisgICAgICAgICAgICBpZiAoYnl0ZW9yZGVyIGluICgnJywgJ0AnKSBhbmQgY29kZSBpbiAoJ3EnLCAnUScpIGFuZAorICAgICAgICAgICAgICAgIG5vdCBIQVZFX0xPTkdfTE9ORyk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIChieXRlb3JkZXIgbm90IGluICgnJywgJ0AnKSBhbmQgY29kZSBpbiAoJ24nLCAnTicpKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgeWllbGQgY29kZSwgYnl0ZW9yZGVyCisKICMgTmF0aXZlICdxJyBwYWNraW5nIGlzbid0IGF2YWlsYWJsZSBvbiBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgQwogIyBsb25nIGxvbmcgdHlwZS4KIHRyeToKQEAgLTE0MSwxNCArMTUxLDEzIEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgIyBzdGFuZGFyZCBpbnRlZ2VyIHNpemVzCi0gICAgICAgIGZvciBjb2RlIGluIGludGVnZXJfY29kZXM6Ci0gICAgICAgICAgICBmb3IgYnl0ZW9yZGVyIGluICc9JywgJzwnLCAnPicsICchJzoKLSAgICAgICAgICAgICAgICBmb3JtYXQgPSBieXRlb3JkZXIrY29kZQotICAgICAgICAgICAgICAgIHNpemUgPSBzdHJ1Y3QuY2FsY3NpemUoZm9ybWF0KQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2l6ZSwgZXhwZWN0ZWRfc2l6ZVtjb2RlXSkKKyAgICAgICAgZm9yIGNvZGUsIGJ5dGVvcmRlciBpbiBpdGVyX2ludGVnZXJfZm9ybWF0cygoJz0nLCAnPCcsICc+JywgJyEnKSk6CisgICAgICAgICAgICBmb3JtYXQgPSBieXRlb3JkZXIrY29kZQorICAgICAgICAgICAgc2l6ZSA9IHN0cnVjdC5jYWxjc2l6ZShmb3JtYXQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpemUsIGV4cGVjdGVkX3NpemVbY29kZV0pCiAKICAgICAgICAgIyBuYXRpdmUgaW50ZWdlciBzaXplcwotICAgICAgICBuYXRpdmVfcGFpcnMgPSAnYkInLCAnaEgnLCAnaUknLCAnbEwnCisgICAgICAgIG5hdGl2ZV9wYWlycyA9ICdiQicsICdoSCcsICdpSScsICdsTCcsICduTicKICAgICAgICAgaWYgSEFWRV9MT05HX0xPTkc6CiAgICAgICAgICAgICBuYXRpdmVfcGFpcnMgKz0gJ3FRJywKICAgICAgICAgZm9yIGZvcm1hdF9wYWlyIGluIG5hdGl2ZV9wYWlyczoKQEAgLTE2Niw5ICsxNzUsMTEgQEAKICAgICAgICAgaWYgSEFWRV9MT05HX0xPTkc6CiAgICAgICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbCg4LCBzdHJ1Y3QuY2FsY3NpemUoJ3EnKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0TGVzc0VxdWFsKHN0cnVjdC5jYWxjc2l6ZSgnbCcpLCBzdHJ1Y3QuY2FsY3NpemUoJ3EnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyRXF1YWwoc3RydWN0LmNhbGNzaXplKCduJyksIHN0cnVjdC5jYWxjc2l6ZSgnaScpKQorICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbChzdHJ1Y3QuY2FsY3NpemUoJ24nKSwgc3RydWN0LmNhbGNzaXplKCdQJykpCiAKICAgICBkZWYgdGVzdF9pbnRlZ2VycyhzZWxmKToKLSAgICAgICAgIyBJbnRlZ2VyIHRlc3RzIChiQmhIaUlsTHFRKS4KKyAgICAgICAgIyBJbnRlZ2VyIHRlc3RzIChiQmhIaUlsTHFRbk4pLgogICAgICAgICBpbXBvcnQgYmluYXNjaWkKIAogICAgICAgICBjbGFzcyBJbnRUZXN0ZXIodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtMTgyLDExICsxOTMsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJ5dGVvcmRlcikKICAgICAgICAgICAgICAgICBzZWxmLmJ5dGVzaXplID0gc3RydWN0LmNhbGNzaXplKGZvcm1hdCkKICAgICAgICAgICAgICAgICBzZWxmLmJpdHNpemUgPSBzZWxmLmJ5dGVzaXplICogOAotICAgICAgICAgICAgICAgIGlmIHNlbGYuY29kZSBpbiB0dXBsZSgnYmhpbHEnKToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmNvZGUgaW4gdHVwbGUoJ2JoaWxxbicpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLnNpZ25lZCA9IFRydWUKICAgICAgICAgICAgICAgICAgICAgc2VsZi5taW5fdmFsdWUgPSAtKDIqKihzZWxmLmJpdHNpemUtMSkpCiAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF4X3ZhbHVlID0gMioqKHNlbGYuYml0c2l6ZS0xKSAtIDEKLSAgICAgICAgICAgICAgICBlbGlmIHNlbGYuY29kZSBpbiB0dXBsZSgnQkhJTFEnKToKKyAgICAgICAgICAgICAgICBlbGlmIHNlbGYuY29kZSBpbiB0dXBsZSgnQkhJTFFOJyk6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2lnbmVkID0gRmFsc2UKICAgICAgICAgICAgICAgICAgICAgc2VsZi5taW5fdmFsdWUgPSAwCiAgICAgICAgICAgICAgICAgICAgIHNlbGYubWF4X3ZhbHVlID0gMioqc2VsZi5iaXRzaXplIC0gMQpAQCAtMzE2LDE0ICszMjcsMjMgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0LnBhY2ssIHNlbGYuZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmopCiAKLSAgICAgICAgZm9yIGNvZGUgaW4gaW50ZWdlcl9jb2RlczoKLSAgICAgICAgICAgIGZvciBieXRlb3JkZXIgaW4gYnl0ZW9yZGVyczoKLSAgICAgICAgICAgICAgICBpZiAoYnl0ZW9yZGVyIGluICgnJywgJ0AnKSBhbmQgY29kZSBpbiAoJ3EnLCAnUScpIGFuZAotICAgICAgICAgICAgICAgICAgICBub3QgSEFWRV9MT05HX0xPTkcpOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBmb3IgY29kZSwgYnl0ZW9yZGVyIGluIGl0ZXJfaW50ZWdlcl9mb3JtYXRzKCk6CisgICAgICAgICAgICBmb3JtYXQgPSBieXRlb3JkZXIrY29kZQorICAgICAgICAgICAgdCA9IEludFRlc3Rlcihmb3JtYXQpCisgICAgICAgICAgICB0LnJ1bigpCisKKyAgICBkZWYgdGVzdF9uTl9jb2RlKHNlbGYpOgorICAgICAgICAjIG4gYW5kIE4gZG9uJ3QgZXhpc3QgaW4gc3RhbmRhcmQgc2l6ZXMKKyAgICAgICAgZGVmIGFzc2VydFN0cnVjdEVycm9yKGZ1bmMsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHN0cnVjdC5lcnJvcikgYXMgY206CisgICAgICAgICAgICAgICAgZnVuYygqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJiYWQgY2hhciBpbiBzdHJ1Y3QgZm9ybWF0Iiwgc3RyKGNtLmV4Y2VwdGlvbikpCisgICAgICAgIGZvciBjb2RlIGluICduTic6CisgICAgICAgICAgICBmb3IgYnl0ZW9yZGVyIGluICgnPScsICc8JywgJz4nLCAnIScpOgogICAgICAgICAgICAgICAgIGZvcm1hdCA9IGJ5dGVvcmRlcitjb2RlCi0gICAgICAgICAgICAgICAgdCA9IEludFRlc3Rlcihmb3JtYXQpCi0gICAgICAgICAgICAgICAgdC5ydW4oKQorICAgICAgICAgICAgICAgIGFzc2VydFN0cnVjdEVycm9yKHN0cnVjdC5jYWxjc2l6ZSwgZm9ybWF0KQorICAgICAgICAgICAgICAgIGFzc2VydFN0cnVjdEVycm9yKHN0cnVjdC5wYWNrLCBmb3JtYXQsIDApCisgICAgICAgICAgICAgICAgYXNzZXJ0U3RydWN0RXJyb3Ioc3RydWN0LnVucGFjaywgZm9ybWF0LCBiIiIpCiAKICAgICBkZWYgdGVzdF9wX2NvZGUoc2VsZik6CiAgICAgICAgICMgVGVzdCBwICgiUGFzY2FsIHN0cmluZyIpIGNvZGUuCkBAIC0zNzcsMTQgKzM5NywxMCBAQAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBzdHJ1Y3QucGFjaywgIj5mIiwgYmlnKQogCiAgICAgZGVmIHRlc3RfMTUzMDU1OShzZWxmKToKLSAgICAgICAgZm9yIGJ5dGVvcmRlciBpbiAnJywgJ0AnLCAnPScsICc8JywgJz4nLCAnISc6Ci0gICAgICAgICAgICBmb3IgY29kZSBpbiBpbnRlZ2VyX2NvZGVzOgotICAgICAgICAgICAgICAgIGlmIChieXRlb3JkZXIgaW4gKCcnLCAnQCcpIGFuZCBjb2RlIGluICgncScsICdRJykgYW5kCi0gICAgICAgICAgICAgICAgICAgIG5vdCBIQVZFX0xPTkdfTE9ORyk6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgZm9ybWF0ID0gYnl0ZW9yZGVyICsgY29kZQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHN0cnVjdC5lcnJvciwgc3RydWN0LnBhY2ssIGZvcm1hdCwgMS4wKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHN0cnVjdC5lcnJvciwgc3RydWN0LnBhY2ssIGZvcm1hdCwgMS41KQorICAgICAgICBmb3IgY29kZSwgYnl0ZW9yZGVyIGluIGl0ZXJfaW50ZWdlcl9mb3JtYXRzKCk6CisgICAgICAgICAgICBmb3JtYXQgPSBieXRlb3JkZXIgKyBjb2RlCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzdHJ1Y3QuZXJyb3IsIHN0cnVjdC5wYWNrLCBmb3JtYXQsIDEuMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHN0cnVjdC5lcnJvciwgc3RydWN0LnBhY2ssIGZvcm1hdCwgMS41KQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhzdHJ1Y3QuZXJyb3IsIHN0cnVjdC5wYWNrLCAnUCcsIDEuMCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc3RydWN0LmVycm9yLCBzdHJ1Y3QucGFjaywgJ1AnLCAxLjUpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc3RydWN0c2VxLnB5IGIvTGliL3Rlc3QvdGVzdF9zdHJ1Y3RzZXEucHkKaW5kZXggZDZjNjNiNy4uYTg5ZTk1NSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zdHJ1Y3RzZXEucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zdHJ1Y3RzZXEucHkKQEAgLTc4LDggKzc4LDkgQEAKIAogICAgIGRlZiB0ZXN0X2ZpZWxkcyhzZWxmKToKICAgICAgICAgdCA9IHRpbWUuZ210aW1lKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4odCksIHQubl9maWVsZHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodC5uX2ZpZWxkcywgdC5uX3NlcXVlbmNlX2ZpZWxkcyt0Lm5fdW5uYW1lZF9maWVsZHMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHQpLCB0Lm5fc2VxdWVuY2VfZmllbGRzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQubl91bm5hbWVkX2ZpZWxkcywgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0Lm5fZmllbGRzLCB0aW1lLl9TVFJVQ1RfVE1fSVRFTVMpCiAKICAgICBkZWYgdGVzdF9jb25zdHJ1Y3RvcihzZWxmKToKICAgICAgICAgdCA9IHRpbWUuc3RydWN0X3RpbWUKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc3VicHJvY2Vzcy5weSBiL0xpYi90ZXN0L3Rlc3Rfc3VicHJvY2Vzcy5weQppbmRleCA2MTUwZTg4Li5jMjFkMTViIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3N1YnByb2Nlc3MucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zdWJwcm9jZXNzLnB5CkBAIC02MCw2ICs2MCw4IEBACiAgICAgICAgICMgc2h1dGRvd24gdGltZS4gIFRoYXQgZnJ1c3RyYXRlcyB0ZXN0cyB0cnlpbmcgdG8gY2hlY2sgc3RkZXJyIHByb2R1Y2VkCiAgICAgICAgICMgZnJvbSBhIHNwYXduZWQgUHl0aG9uIHByb2Nlc3MuCiAgICAgICAgIGFjdHVhbCA9IHN1cHBvcnQuc3RyaXBfcHl0aG9uX3N0ZGVycihzdGRlcnIpCisgICAgICAgICMgc3RyaXBfcHl0aG9uX3N0ZGVyciBhbHNvIHN0cmlwcyB3aGl0ZXNwYWNlLCBzbyB3ZSBkbyB0b28uCisgICAgICAgIGV4cGVjdGVkID0gZXhwZWN0ZWQuc3RyaXAoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQsIG1zZykKIAogCkBAIC03MSw2ICs3MywxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImltcG9ydCBzeXM7IHN5cy5leGl0KDQ3KSJdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJjLCA0NykKIAorICAgIGRlZiB0ZXN0X2NhbGxfdGltZW91dChzZWxmKToKKyAgICAgICAgIyBjYWxsKCkgZnVuY3Rpb24gd2l0aCB0aW1lb3V0IGFyZ3VtZW50OyB3ZSB3YW50IHRvIHRlc3QgdGhhdCB0aGUgY2hpbGQKKyAgICAgICAgIyBwcm9jZXNzIGdldHMga2lsbGVkIHdoZW4gdGhlIHRpbWVvdXQgZXhwaXJlcy4gIElmIHRoZSBjaGlsZCBpc24ndAorICAgICAgICAjIGtpbGxlZCwgdGhpcyBjYWxsIHdpbGwgZGVhZGxvY2sgc2luY2Ugc3VicHJvY2Vzcy5jYWxsIHdhaXRzIGZvciB0aGUKKyAgICAgICAgIyBjaGlsZC4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZCwgc3VicHJvY2Vzcy5jYWxsLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbc3lzLmV4ZWN1dGFibGUsICItYyIsICJ3aGlsZSBUcnVlOiBwYXNzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9MC4xKQorCiAgICAgZGVmIHRlc3RfY2hlY2tfY2FsbF96ZXJvKHNlbGYpOgogICAgICAgICAjIGNoZWNrX2NhbGwoKSBmdW5jdGlvbiB3aXRoIHplcm8gcmV0dXJuIGNvZGUKICAgICAgICAgcmMgPSBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoW3N5cy5leGVjdXRhYmxlLCAiLWMiLApAQCAtMTEzLDYgKzEyNCwyMSBAQAogICAgICAgICAgICAgc2VsZi5mYWlsKCJFeHBlY3RlZCBWYWx1ZUVycm9yIHdoZW4gc3Rkb3V0IGFyZyBzdXBwbGllZC4iKQogICAgICAgICBzZWxmLmFzc2VydEluKCdzdGRvdXQnLCBjLmV4Y2VwdGlvbi5hcmdzWzBdKQogCisgICAgZGVmIHRlc3RfY2hlY2tfb3V0cHV0X3RpbWVvdXQoc2VsZik6CisgICAgICAgICMgY2hlY2tfb3V0cHV0KCkgZnVuY3Rpb24gd2l0aCB0aW1lb3V0IGFyZworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQpIGFzIGM6CisgICAgICAgICAgICBvdXRwdXQgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgKKyAgICAgICAgICAgICAgICAgICAgW3N5cy5leGVjdXRhYmxlLCAiLWMiLAorICAgICAgICAgICAgICAgICAgICAgImltcG9ydCBzeXMsIHRpbWVcbiIKKyAgICAgICAgICAgICAgICAgICAgICJzeXMuc3Rkb3V0LndyaXRlKCdCREZMJylcbiIKKyAgICAgICAgICAgICAgICAgICAgICJzeXMuc3Rkb3V0LmZsdXNoKClcbiIKKyAgICAgICAgICAgICAgICAgICAgICJ0aW1lLnNsZWVwKDM2MDApIl0sCisgICAgICAgICAgICAgICAgICAgICMgU29tZSBoZWF2aWx5IGxvYWRlZCBidWlsZGJvdHMgKHNwYXJjIERlYmlhbiAzLngpIHJlcXVpcmUKKyAgICAgICAgICAgICAgICAgICAgIyB0aGlzIG11Y2ggdGltZSB0byBzdGFydCBhbmQgcHJpbnQuCisgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9MykKKyAgICAgICAgICAgIHNlbGYuZmFpbCgiRXhwZWN0ZWQgVGltZW91dEV4cGlyZWQuIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjLmV4Y2VwdGlvbi5vdXRwdXQsIGInQkRGTCcpCisKICAgICBkZWYgdGVzdF9jYWxsX2t3YXJncyhzZWxmKToKICAgICAgICAgIyBjYWxsKCkgZnVuY3Rpb24gd2l0aCBrZXl3b3JkIGFyZ3MKICAgICAgICAgbmV3ZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKQEAgLTE2Myw2ICsxODksOCBAQAogICAgICAgICBwLndhaXQoKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuc3RkZXJyLCBOb25lKQogCisgICAgQHVuaXR0ZXN0LnNraXBJZihzeXMuYmFzZV9wcmVmaXggIT0gc3lzLnByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICdUZXN0IGlzIG5vdCB2ZW52LWNvbXBhdGlibGUnKQogICAgIGRlZiB0ZXN0X2V4ZWN1dGFibGVfd2l0aF9jd2Qoc2VsZik6CiAgICAgICAgIHB5dGhvbl9kaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChzeXMuZXhlY3V0YWJsZSkpCiAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKFsic29tZXRoaW5neW91ZG9udGhhdmUiLCAiLWMiLApAQCAtMTcxLDYgKzE5OSw4IEBACiAgICAgICAgIHAud2FpdCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5yZXR1cm5jb2RlLCA0NykKIAorICAgIEB1bml0dGVzdC5za2lwSWYoc3lzLmJhc2VfcHJlZml4ICE9IHN5cy5wcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAnVGVzdCBpcyBub3QgdmVudi1jb21wYXRpYmxlJykKICAgICBAdW5pdHRlc3Quc2tpcElmKHN5c2NvbmZpZy5pc19weXRob25fYnVpbGQoKSwKICAgICAgICAgICAgICAgICAgICAgICJuZWVkIGFuIGluc3RhbGxlZCBQeXRob24uIFNlZSAjNzc3NCIpCiAgICAgZGVmIHRlc3RfZXhlY3V0YWJsZV93aXRob3V0X2N3ZChzZWxmKToKQEAgLTMxMiw2ICszNDIsMzEgQEAKICAgICAgICAgcmMgPSBzdWJwcm9jZXNzLmNhbGwoW3N5cy5leGVjdXRhYmxlLCAiLWMiLCBjbWRdLCBzdGRvdXQ9MSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyYywgMikKIAorICAgIGRlZiB0ZXN0X3N0ZG91dF9kZXZudWxsKHNlbGYpOgorICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsICItYyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9yIGkgaW4gcmFuZ2UoMTAyNDApOicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmludCgieCIgKiAxMDI0KSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuREVWTlVMTCkKKyAgICAgICAgcC53YWl0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnN0ZG91dCwgTm9uZSkKKworICAgIGRlZiB0ZXN0X3N0ZGVycl9kZXZudWxsKHNlbGYpOgorICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsICItYyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1wb3J0IHN5c1xuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZvciBpIGluIHJhbmdlKDEwMjQwKTonCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3lzLnN0ZGVyci53cml0ZSgieCIgKiAxMDI0KSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuREVWTlVMTCkKKyAgICAgICAgcC53YWl0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLnN0ZGVyciwgTm9uZSkKKworICAgIGRlZiB0ZXN0X3N0ZGluX2Rldm51bGwoc2VsZik6CisgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbXBvcnQgc3lzOycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3RkaW4ucmVhZCgxKSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkaW49c3VicHJvY2Vzcy5ERVZOVUxMKQorICAgICAgICBwLndhaXQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAuc3RkaW4sIE5vbmUpCisKICAgICBkZWYgdGVzdF9jd2Qoc2VsZik6CiAgICAgICAgIHRtcGRpciA9IHRlbXBmaWxlLmdldHRlbXBkaXIoKQogICAgICAgICAjIFdlIGNhbm5vdCB1c2Ugb3MucGF0aC5yZWFscGF0aCB0byBjYW5vbmljYWxpemUgdGhlIHBhdGgsCkBAIC00MDAsNiArNDU1LDQxIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LCBiImJhbmFuYSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0U3RkZXJyRXF1YWwoc3RkZXJyLCBiInBpbmVhcHBsZSIpCiAKKyAgICBkZWYgdGVzdF9jb21tdW5pY2F0ZV90aW1lb3V0KHNlbGYpOgorICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsICItYyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1wb3J0IHN5cyxvcyx0aW1lOycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3RkZXJyLndyaXRlKCJwaW5lYXBwbGVcXG4iKTsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZS5zbGVlcCgxKTsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3lzLnN0ZGVyci53cml0ZSgicGVhclxcbiIpOycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3Rkb3V0LndyaXRlKHN5cy5zdGRpbi5yZWFkKCkpJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXZlcnNhbF9uZXdsaW5lcz1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQsIHAuY29tbXVuaWNhdGUsICJiYW5hbmEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PTAuMykKKyAgICAgICAgIyBNYWtlIHN1cmUgd2UgY2FuIGtlZXAgd2FpdGluZyBmb3IgaXQsIGFuZCB0aGF0IHdlIGdldCB0aGUgd2hvbGUgb3V0cHV0CisgICAgICAgICMgYWZ0ZXIgaXQgY29tcGxldGVzLgorICAgICAgICAoc3Rkb3V0LCBzdGRlcnIpID0gcC5jb21tdW5pY2F0ZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Rkb3V0LCAiYmFuYW5hIikKKyAgICAgICAgc2VsZi5hc3NlcnRTdGRlcnJFcXVhbChzdGRlcnIuZW5jb2RlKCksIGIicGluZWFwcGxlXG5wZWFyXG4iKQorCisgICAgZGVmIHRlc3RfY29tbXVuaWNhdGVfdGltZW91dF9sYXJnZV9vdXB1dChzZWxmKToKKyAgICAgICAgIyBUZXN0IGFuIGV4cGlyaW5nIHRpbWVvdXQgd2hpbGUgdGhlIGNoaWxkIGlzIG91dHB1dHRpbmcgbG90cyBvZiBkYXRhLgorICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsICItYyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1wb3J0IHN5cyxvcyx0aW1lOycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3Rkb3V0LndyaXRlKCJhIiAqICg2NCAqIDEwMjQpKTsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZS5zbGVlcCgwLjIpOycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3Rkb3V0LndyaXRlKCJhIiAqICg2NCAqIDEwMjQpKTsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZS5zbGVlcCgwLjIpOycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3Rkb3V0LndyaXRlKCJhIiAqICg2NCAqIDEwMjQpKTsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZS5zbGVlcCgwLjIpOycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3Rkb3V0LndyaXRlKCJhIiAqICg2NCAqIDEwMjQpKTsnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoc3VicHJvY2Vzcy5UaW1lb3V0RXhwaXJlZCwgcC5jb21tdW5pY2F0ZSwgdGltZW91dD0wLjQpCisgICAgICAgIChzdGRvdXQsIF8pID0gcC5jb21tdW5pY2F0ZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHN0ZG91dCksIDQgKiA2NCAqIDEwMjQpCisKICAgICAjIFRlc3QgZm9yIHRoZSBmZCBsZWFrIHJlcG9ydGVkIGluIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWUyNzkxLgogICAgIGRlZiB0ZXN0X2NvbW11bmljYXRlX3BpcGVfZmRfbGVhayhzZWxmKToKICAgICAgICAgZm9yIHN0ZGluX3BpcGUgaW4gKEZhbHNlLCBUcnVlKToKQEAgLTQzNiwyNCArNTI2LDIxIEBACiAgICAgICAgICMgVGhpcyB0ZXN0IHdpbGwgcHJvYmFibHkgZGVhZGxvY2sgcmF0aGVyIHRoYW4gZmFpbCwgaWYKICAgICAgICAgIyBjb21tdW5pY2F0ZSgpIGRvZXMgbm90IHdvcmsgcHJvcGVybHkuCiAgICAgICAgIHgsIHkgPSBvcy5waXBlKCkKLSAgICAgICAgaWYgbXN3aW5kb3dzOgotICAgICAgICAgICAgcGlwZV9idWYgPSA1MTIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHBpcGVfYnVmID0gb3MuZnBhdGhjb25mKHgsICJQQ19QSVBFX0JVRiIpCiAgICAgICAgIG9zLmNsb3NlKHgpCiAgICAgICAgIG9zLmNsb3NlKHkpCiAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbXBvcnQgc3lzLG9zOycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3Rkb3V0LndyaXRlKHN5cy5zdGRpbi5yZWFkKDQ3KSk7JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N5cy5zdGRlcnIud3JpdGUoInh5eiIqJWQpOycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3Rkb3V0LndyaXRlKHN5cy5zdGRpbi5yZWFkKCkpJyAlIHBpcGVfYnVmXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeXMuc3RkZXJyLndyaXRlKCJ4IiAqICVkKTsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3lzLnN0ZG91dC53cml0ZShzeXMuc3RkaW4ucmVhZCgpKScgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydC5QSVBFX01BWF9TSVpFXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkaW49c3VicHJvY2Vzcy5QSVBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQogICAgICAgICBzZWxmLmFkZENsZWFudXAocC5zdGRvdXQuY2xvc2UpCiAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChwLnN0ZGVyci5jbG9zZSkKICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHAuc3RkaW4uY2xvc2UpCi0gICAgICAgIHN0cmluZ190b193cml0ZSA9IGIiYWJjIipwaXBlX2J1ZgorICAgICAgICBzdHJpbmdfdG9fd3JpdGUgPSBiImEiICogc3VwcG9ydC5QSVBFX01BWF9TSVpFCiAgICAgICAgIChzdGRvdXQsIHN0ZGVycikgPSBwLmNvbW11bmljYXRlKHN0cmluZ190b193cml0ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGRvdXQsIHN0cmluZ190b193cml0ZSkKIApAQCAtNjAzLDMwICs2OTAsMzIgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdWJwcm9jZXNzLmxpc3QyY21kbGluZShbJ2FiJywgJyddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAnYWIgIiInKQogCi0KICAgICBkZWYgdGVzdF9wb2xsKHNlbGYpOgotICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICItYyIsICJpbXBvcnQgdGltZTsgdGltZS5zbGVlcCgxKSJdKQotICAgICAgICBjb3VudCA9IDAKLSAgICAgICAgd2hpbGUgcC5wb2xsKCkgaXMgTm9uZToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4xKQotICAgICAgICAgICAgY291bnQgKz0gMQotICAgICAgICAjIFdlIGV4cGVjdCB0aGF0IHRoZSBwb2xsIGxvb3AgcHJvYmFibHkgd2VudCBhcm91bmQgYWJvdXQgMTAgdGltZXMsCi0gICAgICAgICMgYnV0LCBiYXNlZCBvbiBzeXN0ZW0gc2NoZWR1bGluZyB3ZSBjYW4ndCBjb250cm9sLCBpdCdzIHBvc3NpYmxlCi0gICAgICAgICMgcG9sbCgpIG5ldmVyIHJldHVybmVkIE5vbmUuICBJdCAic2hvdWxkIGJlIiB2ZXJ5IHJhcmUgdGhhdCBpdAotICAgICAgICAjIGRpZG4ndCBnbyBhcm91bmQgYXQgbGVhc3QgdHdpY2UuCi0gICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlckVxdWFsKGNvdW50LCAyKQorICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsICItYyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IG9zOyBvcy5yZWFkKDAsIDEpIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGluPXN1YnByb2Nlc3MuUElQRSkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHAuc3RkaW4uY2xvc2UpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHAucG9sbCgpKQorICAgICAgICBvcy53cml0ZShwLnN0ZGluLmZpbGVubygpLCBiJ0EnKQorICAgICAgICBwLndhaXQoKQogICAgICAgICAjIFN1YnNlcXVlbnQgaW52b2NhdGlvbnMgc2hvdWxkIGp1c3QgcmV0dXJuIHRoZSByZXR1cm5jb2RlCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5wb2xsKCksIDApCiAKLQogICAgIGRlZiB0ZXN0X3dhaXQoc2VsZik6Ci0gICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKFtzeXMuZXhlY3V0YWJsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIi1jIiwgImltcG9ydCB0aW1lOyB0aW1lLnNsZWVwKDIpIl0pCisgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKFtzeXMuZXhlY3V0YWJsZSwgIi1jIiwgInBhc3MiXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLndhaXQoKSwgMCkKICAgICAgICAgIyBTdWJzZXF1ZW50IGludm9jYXRpb25zIHNob3VsZCBqdXN0IHJldHVybiB0aGUgcmV0dXJuY29kZQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHAud2FpdCgpLCAwKQogCisgICAgZGVmIHRlc3Rfd2FpdF90aW1lb3V0KHNlbGYpOgorICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLWMiLCAiaW1wb3J0IHRpbWU7IHRpbWUuc2xlZXAoMC4xKSJdKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWQpIGFzIGM6CisgICAgICAgICAgICBwLndhaXQodGltZW91dD0wLjAxKQorICAgICAgICBzZWxmLmFzc2VydEluKCIwLjAxIiwgc3RyKGMuZXhjZXB0aW9uKSkgICMgRm9yIGNvdmVyYWdlIG9mIF9fc3RyX18uCisgICAgICAgICMgU29tZSBoZWF2aWx5IGxvYWRlZCBidWlsZGJvdHMgKHNwYXJjIERlYmlhbiAzLngpIHJlcXVpcmUgdGhpcyBtdWNoCisgICAgICAgICMgdGltZSB0byBzdGFydC4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwLndhaXQodGltZW91dD0zKSwgMCkKIAogICAgIGRlZiB0ZXN0X2ludmFsaWRfYnVmc2l6ZShzZWxmKToKICAgICAgICAgIyBhbiBpbnZhbGlkIHR5cGUgb2YgdGhlIGJ1ZnNpemUgYXJndW1lbnQgc2hvdWxkIHJhaXNlCkBAIC03MDUsMjUgKzc5NCwyOSBAQAogICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3Blbihbc3lzLmV4ZWN1dGFibGUsICItYyIsICdwYXNzJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGluPXN1YnByb2Nlc3MuUElQRSkKICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHAuc3RkaW4uY2xvc2UpCi0gICAgICAgIHRpbWUuc2xlZXAoMikKKyAgICAgICAgcC53YWl0KCkKICAgICAgICAgcC5jb21tdW5pY2F0ZShiIngiICogMioqMjApCiAKLSAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHNpZ25hbCwgJ1NJR0FMUk0nKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiUmVxdWlyZXMgc2lnbmFsLlNJR0FMUk0iKQorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIoc2lnbmFsLCAnU0lHVVNSMScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJSZXF1aXJlcyBzaWduYWwuU0lHVVNSMSIpCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihvcywgJ2tpbGwnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUmVxdWlyZXMgb3Mua2lsbCIpCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihvcywgJ2dldHBwaWQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiUmVxdWlyZXMgb3MuZ2V0cHBpZCIpCiAgICAgZGVmIHRlc3RfY29tbXVuaWNhdGVfZWludHIoc2VsZik6CiAgICAgICAgICMgSXNzdWUgIzEyNDkzOiBjb21tdW5pY2F0ZSgpIHNob3VsZCBoYW5kbGUgRUlOVFIKICAgICAgICAgZGVmIGhhbmRsZXIoc2lnbnVtLCBmcmFtZSk6CiAgICAgICAgICAgICBwYXNzCi0gICAgICAgIG9sZF9oYW5kbGVyID0gc2lnbmFsLnNpZ25hbChzaWduYWwuU0lHQUxSTSwgaGFuZGxlcikKLSAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHNpZ25hbC5zaWduYWwsIHNpZ25hbC5TSUdBTFJNLCBvbGRfaGFuZGxlcikKKyAgICAgICAgb2xkX2hhbmRsZXIgPSBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdVU1IxLCBoYW5kbGVyKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc2lnbmFsLnNpZ25hbCwgc2lnbmFsLlNJR1VTUjEsIG9sZF9oYW5kbGVyKQogCi0gICAgICAgICMgdGhlIHByb2Nlc3MgaXMgcnVubmluZyBmb3IgMiBzZWNvbmRzCi0gICAgICAgIGFyZ3MgPSBbc3lzLmV4ZWN1dGFibGUsICItYyIsICdpbXBvcnQgdGltZTsgdGltZS5zbGVlcCgyKSddCisgICAgICAgIGFyZ3MgPSBbc3lzLmV4ZWN1dGFibGUsICItYyIsCisgICAgICAgICAgICAgICAgJ2ltcG9ydCBvcywgc2lnbmFsOycKKyAgICAgICAgICAgICAgICAnb3Mua2lsbChvcy5nZXRwcGlkKCksIHNpZ25hbC5TSUdVU1IxKSddCiAgICAgICAgIGZvciBzdHJlYW0gaW4gKCdzdGRvdXQnLCAnc3RkZXJyJyk6CiAgICAgICAgICAgICBrdyA9IHtzdHJlYW06IHN1YnByb2Nlc3MuUElQRX0KICAgICAgICAgICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihhcmdzLCAqKmt3KSBhcyBwcm9jZXNzOgotICAgICAgICAgICAgICAgIHNpZ25hbC5hbGFybSgxKQotICAgICAgICAgICAgICAgICMgY29tbXVuaWNhdGUoKSB3aWxsIGJlIGludGVycnVwdGVkIGJ5IFNJR0FMUk0KKyAgICAgICAgICAgICAgICAjIGNvbW11bmljYXRlKCkgd2lsbCBiZSBpbnRlcnJ1cHRlZCBieSBTSUdVU1IxCiAgICAgICAgICAgICAgICAgcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCiAKIApAQCAtMTI1NCw2ICsxMzQ3LDExIEBACiAgICAgICAgIGV4aXRjb2RlID0gc3VicHJvY2Vzcy5jYWxsKFthYnNfcHJvZ3JhbSwgIi1jIiwgInBhc3MiXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleGl0Y29kZSwgMCkKIAorICAgICAgICAjIGFic29sdXRlIGJ5dGVzIHBhdGggYXMgYSBzdHJpbmcKKyAgICAgICAgY21kID0gYiInIiArIGFic19wcm9ncmFtICsgYiInIC1jIHBhc3MiCisgICAgICAgIGV4aXRjb2RlID0gc3VicHJvY2Vzcy5jYWxsKGNtZCwgc2hlbGw9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleGl0Y29kZSwgMCkKKwogICAgICAgICAjIGJ5dGVzIHByb2dyYW0sIHVuaWNvZGUgUEFUSAogICAgICAgICBlbnYgPSBvcy5lbnZpcm9uLmNvcHkoKQogICAgICAgICBlbnZbIlBBVEgiXSA9IHBhdGgKQEAgLTE0MzcsNyArMTUzNSw3IEBACiAgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gcC5jb21tdW5pY2F0ZSgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgcC5yZXR1cm5jb2RlLCAic2lnY2hpbGRfaWdub3JlLnB5IGV4aXRlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAiIG5vbi16ZXJvIHdpdGggdGhpcyBlcnJvcjpcbiVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyLmRlY29kZSgndXRmOCcpKQorICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVyci5kZWNvZGUoJ3V0Zi04JykpCiAKICAgICBkZWYgdGVzdF9zZWxlY3RfdW5idWZmZXJlZChzZWxmKToKICAgICAgICAgIyBJc3N1ZSAjMTE0NTk6IGJ1ZnNpemU9MCBzaG91bGQgcmVhbGx5IHNldCB0aGUgcGlwZXMgYXMKQEAgLTE2ODQsMjggKzE3ODIsNiBAQAogICAgICAgICBQcm9jZXNzVGVzdENhc2UudGVhckRvd24oc2VsZikKIAogCi1AdW5pdHRlc3Quc2tpcFVubGVzcyhnZXRhdHRyKHN1YnByb2Nlc3MsICdfcG9zaXhzdWJwcm9jZXNzJywgRmFsc2UpLAotICAgICAgICAgICAgICAgICAgICAgIl9wb3NpeHN1YnByb2Nlc3MgZXh0ZW5zaW9uIG1vZHVsZSBub3QgZm91bmQuIikKLWNsYXNzIFByb2Nlc3NUZXN0Q2FzZVBPU0lYUHVyZVB5dGhvbihQcm9jZXNzVGVzdENhc2UsIFBPU0lYUHJvY2Vzc1Rlc3RDYXNlKToKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBnbG9iYWwgc3VicHJvY2VzcwotICAgICAgICBhc3NlcnQgc3VicHJvY2Vzcy5fcG9zaXhzdWJwcm9jZXNzCi0gICAgICAgICMgUmVpbXBvcnQgc3VicHJvY2VzcyB3aGlsZSBmb3JjaW5nIF9wb3NpeHN1YnByb2Nlc3MgdG8gbm90IGV4aXN0LgotICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcuKl9wb3NpeHN1YnByb2Nlc3MgLiogbm90IGJlaW5nIHVzZWQuKicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVudGltZVdhcm5pbmcpKToKLSAgICAgICAgICAgIHN1YnByb2Nlc3MgPSBzdXBwb3J0LmltcG9ydF9mcmVzaF9tb2R1bGUoCi0gICAgICAgICAgICAgICAgICAgICdzdWJwcm9jZXNzJywgYmxvY2tlZD1bJ19wb3NpeHN1YnByb2Nlc3MnXSkKLSAgICAgICAgYXNzZXJ0IG5vdCBzdWJwcm9jZXNzLl9wb3NpeHN1YnByb2Nlc3MKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6Ci0gICAgICAgIGdsb2JhbCBzdWJwcm9jZXNzCi0gICAgICAgICMgUmVpbXBvcnQgc3VicHJvY2VzcyBhcyBpdCBzaG91bGQgYmUsIHJlc3RvcmluZyBvcmRlciB0byB0aGUgdW5pdmVyc2UuCi0gICAgICAgIHN1YnByb2Nlc3MgPSBzdXBwb3J0LmltcG9ydF9mcmVzaF9tb2R1bGUoJ3N1YnByb2Nlc3MnKQotICAgICAgICBhc3NlcnQgc3VicHJvY2Vzcy5fcG9zaXhzdWJwcm9jZXNzCi0KLQogY2xhc3MgSGVscGVyRnVuY3Rpb25UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgQHVuaXR0ZXN0LnNraXBJZihtc3dpbmRvd3MsICJlcnJubyBhbmQgRUlOVFIgbWFrZSBubyBzZW5zZSBvbiB3aW5kb3dzIikKICAgICBkZWYgdGVzdF9laW50cl9yZXRyeV9jYWxsKHNlbGYpOgpAQCAtMTgxNCw3ICsxODkwLDYgQEAKICAgICB1bml0X3Rlc3RzID0gKFByb2Nlc3NUZXN0Q2FzZSwKICAgICAgICAgICAgICAgICAgIFBPU0lYUHJvY2Vzc1Rlc3RDYXNlLAogICAgICAgICAgICAgICAgICAgV2luMzJQcm9jZXNzVGVzdENhc2UsCi0gICAgICAgICAgICAgICAgICBQcm9jZXNzVGVzdENhc2VQT1NJWFB1cmVQeXRob24sCiAgICAgICAgICAgICAgICAgICBDb21tYW5kVGVzdHMsCiAgICAgICAgICAgICAgICAgICBQcm9jZXNzVGVzdENhc2VOb1BvbGwsCiAgICAgICAgICAgICAgICAgICBIZWxwZXJGdW5jdGlvblRlc3RzLApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF9zdXBlci5weSBiL0xpYi90ZXN0L3Rlc3Rfc3VwZXIucHkKaW5kZXggOTE0MjE2ZC4uMzJlYjFjMCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zdXBlci5weQorKysgYi9MaWIvdGVzdC90ZXN0X3N1cGVyLnB5CkBAIC04MSw2ICs4MSw0MCBAQAogCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRSgpLmYoKSwgJ0FFJykKIAorICAgIEB1bml0dGVzdC5leHBlY3RlZEZhaWx1cmUKKyAgICBkZWYgdGVzdF9fX2NsYXNzX19fc2V0KHNlbGYpOgorICAgICAgICAjIFNlZSBpc3N1ZSAjMTIzNzAKKyAgICAgICAgY2xhc3MgWChBKToKKyAgICAgICAgICAgIGRlZiBmKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzdXBlcigpLmYoKQorICAgICAgICAgICAgX19jbGFzc19fID0gNDEzCisgICAgICAgIHggPSBYKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh4LmYoKSwgJ0EnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHguX19jbGFzc19fLCA0MTMpCisKKyAgICBkZWYgdGVzdF9fX2NsYXNzX19faW5zdGFuY2VtZXRob2Qoc2VsZik6CisgICAgICAgICMgU2VlIGlzc3VlICMxNDg1NworICAgICAgICBjbGFzcyBYOgorICAgICAgICAgICAgZGVmIGYoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIF9fY2xhc3NfXworICAgICAgICBzZWxmLmFzc2VydElzKFgoKS5mKCksIFgpCisKKyAgICBkZWYgdGVzdF9fX2NsYXNzX19fY2xhc3NtZXRob2Qoc2VsZik6CisgICAgICAgICMgU2VlIGlzc3VlICMxNDg1NworICAgICAgICBjbGFzcyBYOgorICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAgICBkZWYgZihjbHMpOgorICAgICAgICAgICAgICAgIHJldHVybiBfX2NsYXNzX18KKyAgICAgICAgc2VsZi5hc3NlcnRJcyhYLmYoKSwgWCkKKworICAgIGRlZiB0ZXN0X19fY2xhc3NfX19zdGF0aWNtZXRob2Qoc2VsZik6CisgICAgICAgICMgU2VlIGlzc3VlICMxNDg1NworICAgICAgICBjbGFzcyBYOgorICAgICAgICAgICAgQHN0YXRpY21ldGhvZAorICAgICAgICAgICAgZGVmIGYoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gX19jbGFzc19fCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoWC5mKCksIFgpCisKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KFRlc3RTdXBlcikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc3VwcG9ydC5weSBiL0xpYi90ZXN0L3Rlc3Rfc3VwcG9ydC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNGZjZGJmCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3Rlc3QvdGVzdF9zdXBwb3J0LnB5CkBAIC0wLDAgKzEsMTkwIEBACisjIS91c3IvYmluL2VudiBweXRob24KKworaW1wb3J0IGltcG9ydGxpYgoraW1wb3J0IHN5cworaW1wb3J0IG9zCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IGVycm5vCitmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKKworVEVTVEZOID0gc3VwcG9ydC5URVNURk4KK1RFU1RESVJOID0gb3MucGF0aC5iYXNlbmFtZSh0ZW1wZmlsZS5ta2R0ZW1wKGRpcj0nLicpKQorCisKK2NsYXNzIFRlc3RTdXBwb3J0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHN1cHBvcnQudW5saW5rKFRFU1RGTikKKyAgICAgICAgc3VwcG9ydC5ybXRyZWUoVEVTVERJUk4pCisgICAgdGVhckRvd24gPSBzZXRVcAorCisgICAgZGVmIHRlc3RfaW1wb3J0X21vZHVsZShzZWxmKToKKyAgICAgICAgc3VwcG9ydC5pbXBvcnRfbW9kdWxlKCJmdHBsaWIiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh1bml0dGVzdC5Ta2lwVGVzdCwgc3VwcG9ydC5pbXBvcnRfbW9kdWxlLCAiZm9vIikKKworICAgIGRlZiB0ZXN0X2ltcG9ydF9mcmVzaF9tb2R1bGUoc2VsZik6CisgICAgICAgIHN1cHBvcnQuaW1wb3J0X2ZyZXNoX21vZHVsZSgiZnRwbGliIikKKworICAgIGRlZiB0ZXN0X2dldF9hdHRyaWJ1dGUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3VwcG9ydC5nZXRfYXR0cmlidXRlKHNlbGYsICJ0ZXN0X2dldF9hdHRyaWJ1dGUiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF9nZXRfYXR0cmlidXRlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh1bml0dGVzdC5Ta2lwVGVzdCwgc3VwcG9ydC5nZXRfYXR0cmlidXRlLCBzZWxmLCAiZm9vIikKKworICAgIEB1bml0dGVzdC5za2lwKCJmYWlsaW5nIGJ1aWxkYm90cyIpCisgICAgZGVmIHRlc3RfZ2V0X29yaWdpbmFsX3N0ZG91dChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdXBwb3J0LmdldF9vcmlnaW5hbF9zdGRvdXQoKSwgc3lzLnN0ZG91dCkKKworICAgIGRlZiB0ZXN0X3VubG9hZChzZWxmKToKKyAgICAgICAgaW1wb3J0IHNjaGVkCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oInNjaGVkIiwgc3lzLm1vZHVsZXMpCisgICAgICAgIHN1cHBvcnQudW5sb2FkKCJzY2hlZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oInNjaGVkIiwgc3lzLm1vZHVsZXMpCisKKyAgICBkZWYgdGVzdF91bmxpbmsoc2VsZik6CisgICAgICAgIHdpdGggb3BlbihURVNURk4sICJ3IikgYXMgZjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc3VwcG9ydC51bmxpbmsoVEVTVEZOKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKFRFU1RGTikpCisgICAgICAgIHN1cHBvcnQudW5saW5rKFRFU1RGTikKKworICAgIGRlZiB0ZXN0X3JtdHJlZShzZWxmKToKKyAgICAgICAgb3MubWtkaXIoVEVTVERJUk4pCisgICAgICAgIG9zLm1rZGlyKG9zLnBhdGguam9pbihURVNURElSTiwgVEVTVERJUk4pKQorICAgICAgICBzdXBwb3J0LnJtdHJlZShURVNURElSTikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmV4aXN0cyhURVNURElSTikpCisgICAgICAgIHN1cHBvcnQucm10cmVlKFRFU1RESVJOKQorCisgICAgZGVmIHRlc3RfZm9yZ2V0KHNlbGYpOgorICAgICAgICBtb2RfZmlsZW5hbWUgPSBURVNURk4gKyAnLnB5JworICAgICAgICB3aXRoIG9wZW4obW9kX2ZpbGVuYW1lLCAndycpIGFzIGY6CisgICAgICAgICAgICBwcmludCgnZm9vID0gMScsIGZpbGU9ZikKKyAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIG9zLmN1cmRpcikKKyAgICAgICAgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbW9kID0gX19pbXBvcnRfXyhURVNURk4pCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKFRFU1RGTiwgc3lzLm1vZHVsZXMpCisKKyAgICAgICAgICAgIHN1cHBvcnQuZm9yZ2V0KFRFU1RGTikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oVEVTVEZOLCBzeXMubW9kdWxlcykKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGRlbCBzeXMucGF0aFswXQorICAgICAgICAgICAgc3VwcG9ydC51bmxpbmsobW9kX2ZpbGVuYW1lKQorCisgICAgZGVmIHRlc3RfSE9TVChzZWxmKToKKyAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICBzLmJpbmQoKHN1cHBvcnQuSE9TVCwgMCkpCisgICAgICAgIHMuY2xvc2UoKQorCisgICAgZGVmIHRlc3RfZmluZF91bnVzZWRfcG9ydChzZWxmKToKKyAgICAgICAgcG9ydCA9IHN1cHBvcnQuZmluZF91bnVzZWRfcG9ydCgpCisgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAgICAgcy5iaW5kKChzdXBwb3J0LkhPU1QsIHBvcnQpKQorICAgICAgICBzLmNsb3NlKCkKKworICAgIGRlZiB0ZXN0X2JpbmRfcG9ydChzZWxmKToKKyAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICBzdXBwb3J0LmJpbmRfcG9ydChzKQorICAgICAgICBzLmxpc3RlbigxKQorICAgICAgICBzLmNsb3NlKCkKKworICAgIGRlZiB0ZXN0X3RlbXBfY3dkKHNlbGYpOgorICAgICAgICBoZXJlID0gb3MuZ2V0Y3dkKCkKKyAgICAgICAgd2l0aCBzdXBwb3J0LnRlbXBfY3dkKG5hbWU9VEVTVEZOKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MucGF0aC5iYXNlbmFtZShvcy5nZXRjd2QoKSksIFRFU1RGTikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmV4aXN0cyhURVNURk4pKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5iYXNlbmFtZShvcy5nZXRjd2QoKSksIGhlcmUpCisKKyAgICBkZWYgdGVzdF9zb3J0ZGljdChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdXBwb3J0LnNvcnRkaWN0KHszOjMsIDI6MiwgMToxfSksICJ7MTogMSwgMjogMiwgMzogM30iKQorCisgICAgZGVmIHRlc3RfbWFrZV9iYWRfZmQoc2VsZik6CisgICAgICAgIGZkID0gc3VwcG9ydC5tYWtlX2JhZF9mZCgpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoT1NFcnJvcikgYXMgY206CisgICAgICAgICAgICBvcy53cml0ZShmZCwgYiJmb28iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNtLmV4Y2VwdGlvbi5lcnJubywgZXJybm8uRUJBREYpCisKKyAgICBkZWYgdGVzdF9jaGVja19zeW50YXhfZXJyb3Ioc2VsZik6CisgICAgICAgIHN1cHBvcnQuY2hlY2tfc3ludGF4X2Vycm9yKHNlbGYsICJkZWYgY2xhc3MiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgc3VwcG9ydC5jaGVja19zeW50YXhfZXJyb3IsIHNlbGYsICIxIikKKworICAgIGRlZiB0ZXN0X0NsZWFuSW1wb3J0KHNlbGYpOgorICAgICAgICBpbXBvcnQgaW1wb3J0bGliCisgICAgICAgIHdpdGggc3VwcG9ydC5DbGVhbkltcG9ydCgiYXN5bmNvcmUiKToKKyAgICAgICAgICAgIGltcG9ydGxpYi5pbXBvcnRfbW9kdWxlKCJhc3luY29yZSIpCisKKyAgICBkZWYgdGVzdF9EaXJzT25TeXNQYXRoKHNlbGYpOgorICAgICAgICB3aXRoIHN1cHBvcnQuRGlyc09uU3lzUGF0aCgnZm9vJywgJ2JhcicpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigiZm9vIiwgc3lzLnBhdGgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJiYXIiLCBzeXMucGF0aCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbigiZm9vIiwgc3lzLnBhdGgpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oImJhciIsIHN5cy5wYXRoKQorCisgICAgZGVmIHRlc3RfY2FwdHVyZWRfc3Rkb3V0KHNlbGYpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2FwdHVyZWRfc3Rkb3V0KCkgYXMgczoKKyAgICAgICAgICAgIHByaW50KCJoZWxsbyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocy5nZXR2YWx1ZSgpLCAiaGVsbG9cbiIpCisKKyAgICBkZWYgdGVzdF9jYXB0dXJlZF9zdGRlcnIoc2VsZik6CisgICAgICAgIHdpdGggc3VwcG9ydC5jYXB0dXJlZF9zdGRlcnIoKSBhcyBzOgorICAgICAgICAgICAgcHJpbnQoImhlbGxvIiwgZmlsZT1zeXMuc3RkZXJyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuZ2V0dmFsdWUoKSwgImhlbGxvXG4iKQorCisgICAgZGVmIHRlc3RfY2FwdHVyZWRfc3RkaW4oc2VsZik6CisgICAgICAgIHdpdGggc3VwcG9ydC5jYXB0dXJlZF9zdGRpbigpIGFzIHM6CisgICAgICAgICAgICBwcmludCgiaGVsbG8iLCBmaWxlPXN5cy5zdGRpbikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLmdldHZhbHVlKCksICJoZWxsb1xuIikKKworICAgIGRlZiB0ZXN0X2djX2NvbGxlY3Qoc2VsZik6CisgICAgICAgIHN1cHBvcnQuZ2NfY29sbGVjdCgpCisKKyAgICBkZWYgdGVzdF9weXRob25faXNfb3B0aW1pemVkKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc3VwcG9ydC5weXRob25faXNfb3B0aW1pemVkKCksIGJvb2wpCisKKyAgICBkZWYgdGVzdF9zd2FwX2F0dHIoc2VsZik6CisgICAgICAgIGNsYXNzIE9iajoKKyAgICAgICAgICAgIHggPSAxCisgICAgICAgIG9iaiA9IE9iaigpCisgICAgICAgIHdpdGggc3VwcG9ydC5zd2FwX2F0dHIob2JqLCAieCIsIDUpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvYmoueCwgNSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvYmoueCwgMSkKKworICAgIGRlZiB0ZXN0X3N3YXBfaXRlbShzZWxmKToKKyAgICAgICAgRCA9IHsiaXRlbSI6MX0KKyAgICAgICAgd2l0aCBzdXBwb3J0LnN3YXBfaXRlbShELCAiaXRlbSIsIDUpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChEWyJpdGVtIl0sIDUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRFsiaXRlbSJdLCAxKQorCisgICAgIyBYWFggLWZvbGxvd3MgYSBsaXN0IG9mIHVudGVzdGVkIEFQSQorICAgICMgbWFrZV9sZWdhY3lfcHljCisgICAgIyBpc19yZXNvdXJjZV9lbmFibGVkCisgICAgIyByZXF1aXJlcworICAgICMgZmNtcAorICAgICMgdW1ha3MKKyAgICAjIGZpbmRmaWxlCisgICAgIyBjaGVja193YXJuaW5ncworICAgICMgRW52aXJvbm1lbnRWYXJHdWFyZAorICAgICMgVHJhbnNpZW50UmVzb3VyY2UKKyAgICAjIHRyYW5zaWVudF9pbnRlcm5ldAorICAgICMgcnVuX3dpdGhfbG9jYWxlCisgICAgIyBzZXRfbWVtbGltaXQKKyAgICAjIGJpZ21lbXRlc3QKKyAgICAjIHByZWNpc2lvbmJpZ21lbXRlc3QKKyAgICAjIGJpZ2FkZHJzcGFjZXRlc3QKKyAgICAjIHJlcXVpcmVzX3Jlc291cmNlCisgICAgIyBydW5fZG9jdGVzdAorICAgICMgdGhyZWFkaW5nX2NsZWFudXAKKyAgICAjIHJlYXBfdGhyZWFkcworICAgICMgcmVhcF9jaGlsZHJlbgorICAgICMgc3RyaXBfcHl0aG9uX3N0ZGVycgorICAgICMgYXJnc19mcm9tX2ludGVycHJldGVyX2ZsYWdzCisgICAgIyBjYW5fc3ltbGluaworICAgICMgc2tpcF91bmxlc3Nfc3ltbGluaworCisKK2RlZiB0ZXN0X21haW4oKToKKyAgICB0ZXN0cyA9IFtUZXN0U3VwcG9ydF0KKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgqdGVzdHMpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdGVzdF9tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc3lzLnB5IGIvTGliL3Rlc3QvdGVzdF9zeXMucHkKaW5kZXggMzI2OGIxYS4uOWE2ZGQ1YiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zeXMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zeXMucHkKQEAgLTMwMyw2ICszMDMsNyBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzeXMuZ2V0ZGxvcGVuZmxhZ3MoKSwgb2xkZmxhZ3MrMSkKICAgICAgICAgICAgIHN5cy5zZXRkbG9wZW5mbGFncyhvbGRmbGFncykKIAorICAgIEB0ZXN0LnN1cHBvcnQucmVmY291bnRfdGVzdAogICAgIGRlZiB0ZXN0X3JlZmNvdW50KHNlbGYpOgogICAgICAgICAjIG4gaGVyZSBtdXN0IGJlIGEgZ2xvYmFsIGluIG9yZGVyIGZvciB0aGlzIHRlc3QgdG8gcGFzcyB3aGlsZQogICAgICAgICAjIHRyYWNpbmcgd2l0aCBhIHB5dGhvbiBmdW5jdGlvbi4gIFRyYWNpbmcgY2FsbHMgUHlGcmFtZV9GYXN0VG9Mb2NhbHMKQEAgLTM0Miw3ICszNDMsNyBAQAogICAgICMgVGVzdCBzeXMuX2N1cnJlbnRfZnJhbWVzKCkgaW4gYSBXSVRIX1RIUkVBRFMgYnVpbGQuCiAgICAgQHRlc3Quc3VwcG9ydC5yZWFwX3RocmVhZHMKICAgICBkZWYgY3VycmVudF9mcmFtZXNfd2l0aF90aHJlYWRzKHNlbGYpOgotICAgICAgICBpbXBvcnQgdGhyZWFkaW5nLCBfdGhyZWFkCisgICAgICAgIGltcG9ydCB0aHJlYWRpbmcKICAgICAgICAgaW1wb3J0IHRyYWNlYmFjawogCiAgICAgICAgICMgU3Bhd24gYSB0aHJlYWQgdGhhdCBibG9ja3MgYXQgYSBrbm93biBwbGFjZS4gIFRoZW4gdGhlIG1haW4KQEAgLTM1Niw3ICszNTcsNyBAQAogICAgICAgICAgICAgZzQ1NigpCiAKICAgICAgICAgZGVmIGc0NTYoKToKLSAgICAgICAgICAgIHRocmVhZF9pbmZvLmFwcGVuZChfdGhyZWFkLmdldF9pZGVudCgpKQorICAgICAgICAgICAgdGhyZWFkX2luZm8uYXBwZW5kKHRocmVhZGluZy5nZXRfaWRlbnQoKSkKICAgICAgICAgICAgIGVudGVyZWRfZy5zZXQoKQogICAgICAgICAgICAgbGVhdmVfZy53YWl0KCkKIApAQCAtMzcyLDcgKzM3Myw3IEBACiAKICAgICAgICAgZCA9IHN5cy5fY3VycmVudF9mcmFtZXMoKQogCi0gICAgICAgIG1haW5faWQgPSBfdGhyZWFkLmdldF9pZGVudCgpCisgICAgICAgIG1haW5faWQgPSB0aHJlYWRpbmcuZ2V0X2lkZW50KCkKICAgICAgICAgc2VsZi5hc3NlcnRJbihtYWluX2lkLCBkKQogICAgICAgICBzZWxmLmFzc2VydEluKHRocmVhZF9pZCwgZCkKIApAQCAtNDE4LDYgKzQxOSw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShzeXMuYnVpbHRpbl9tb2R1bGVfbmFtZXMsIHR1cGxlKQogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc3lzLmNvcHlyaWdodCwgc3RyKQogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc3lzLmV4ZWNfcHJlZml4LCBzdHIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShzeXMuYmFzZV9leGVjX3ByZWZpeCwgc3RyKQogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc3lzLmV4ZWN1dGFibGUsIHN0cikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc3lzLmZsb2F0X2luZm8pLCAxMSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzeXMuZmxvYXRfaW5mby5yYWRpeCwgMikKQEAgLTQ0Niw4ICs0NDgsMTAgQEAKIAogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc3lzLm1heHNpemUsIGludCkKICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHN5cy5tYXh1bmljb2RlLCBpbnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3lzLm1heHVuaWNvZGUsIDB4MTBGRkZGKQogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2Uoc3lzLnBsYXRmb3JtLCBzdHIpCiAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShzeXMucHJlZml4LCBzdHIpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShzeXMuYmFzZV9wcmVmaXgsIHN0cikKICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHN5cy52ZXJzaW9uLCBzdHIpCiAgICAgICAgIHZpID0gc3lzLnZlcnNpb25faW5mbwogICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UodmlbOl0sIHR1cGxlKQpAQCAtNDczLDYgKzQ3NywxNCBAQAogICAgICAgICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbicpOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHN5cy5hYmlmbGFncywgc3RyKQogCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cihzeXMsICd0aHJlYWRfaW5mbycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICdUaHJlYWRpbmcgcmVxdWlyZWQgZm9yIHRoaXMgdGVzdC4nKQorICAgIGRlZiB0ZXN0X3RocmVhZF9pbmZvKHNlbGYpOgorICAgICAgICBpbmZvID0gc3lzLnRocmVhZF9pbmZvCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGluZm8pLCAzKQorICAgICAgICBzZWxmLmFzc2VydEluKGluZm8ubmFtZSwgKCdudCcsICdvczInLCAncHRocmVhZCcsICdzb2xhcmlzJywgTm9uZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oaW5mby5sb2NrLCAoJ3NlbWFwaG9yZScsICdtdXRleCtjb25kJywgTm9uZSkpCisKICAgICBkZWYgdGVzdF80MzU4MShzZWxmKToKICAgICAgICAgIyBDYW4ndCB1c2Ugc3lzLnN0ZG91dCwgYXMgdGhpcyBpcyBhIFN0cmluZ0lPIG9iamVjdCB3aGVuCiAgICAgICAgICMgdGhlIHRlc3QgcnVucyB1bmRlciByZWdydGVzdC4KQEAgLTUwMCw3ICs1MTIsNyBAQAogCiAgICAgZGVmIHRlc3Rfc3lzX2ZsYWdzKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFRydWUoc3lzLmZsYWdzKQotICAgICAgICBhdHRycyA9ICgiZGVidWciLCAiZGl2aXNpb25fd2FybmluZyIsCisgICAgICAgIGF0dHJzID0gKCJkZWJ1ZyIsCiAgICAgICAgICAgICAgICAgICJpbnNwZWN0IiwgImludGVyYWN0aXZlIiwgIm9wdGltaXplIiwgImRvbnRfd3JpdGVfYnl0ZWNvZGUiLAogICAgICAgICAgICAgICAgICAibm9fdXNlcl9zaXRlIiwgIm5vX3NpdGUiLCAiaWdub3JlX2Vudmlyb25tZW50IiwgInZlcmJvc2UiLAogICAgICAgICAgICAgICAgICAiYnl0ZXNfd2FybmluZyIsICJxdWlldCIsICJoYXNoX3JhbmRvbWl6YXRpb24iKQpAQCAtNTMxLDYgKzU0Myw4IEBACiAgICAgICAgIG91dCA9IHAuY29tbXVuaWNhdGUoKVswXS5zdHJpcCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3V0LCBiJz8nKQogCisgICAgQHVuaXR0ZXN0LnNraXBJZihzeXMuYmFzZV9wcmVmaXggIT0gc3lzLnByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICdUZXN0IGlzIG5vdCB2ZW52LWNvbXBhdGlibGUnKQogICAgIGRlZiB0ZXN0X2V4ZWN1dGFibGUoc2VsZik6CiAgICAgICAgICMgc3lzLmV4ZWN1dGFibGUgc2hvdWxkIGJlIGFic29sdXRlCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKHN5cy5leGVjdXRhYmxlKSwgc3lzLmV4ZWN1dGFibGUpCkBAIC01NjcsNiArNTgxLDM0IEBACiAgICAgICAgICAgICBleHBlY3RlZCA9IE5vbmUKICAgICAgICAgc2VsZi5jaGVja19mc2VuY29kaW5nKGZzX2VuY29kaW5nLCBleHBlY3RlZCkKIAorICAgIGRlZiB0ZXN0X2ltcGxlbWVudGF0aW9uKHNlbGYpOgorICAgICAgICAjIFRoaXMgdGVzdCBhcHBsaWVzIHRvIGFsbCBpbXBsZW1lbnRhdGlvbnMgZXF1YWxseS4KKworICAgICAgICBsZXZlbHMgPSB7J2FscGhhJzogMHhBLCAnYmV0YSc6IDB4QiwgJ2NhbmRpZGF0ZSc6IDB4QywgJ3JlbGVhc2UnOiAweEZ9CisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoc3lzLmltcGxlbWVudGF0aW9uLCAnbmFtZScpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFzYXR0cihzeXMuaW1wbGVtZW50YXRpb24sICd2ZXJzaW9uJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKHN5cy5pbXBsZW1lbnRhdGlvbiwgJ2hleHZlcnNpb24nKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIoc3lzLmltcGxlbWVudGF0aW9uLCAnY2FjaGVfdGFnJykpCisKKyAgICAgICAgdmVyc2lvbiA9IHN5cy5pbXBsZW1lbnRhdGlvbi52ZXJzaW9uCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmVyc2lvbls6Ml0sICh2ZXJzaW9uLm1ham9yLCB2ZXJzaW9uLm1pbm9yKSkKKworICAgICAgICBoZXh2ZXJzaW9uID0gKHZlcnNpb24ubWFqb3IgPDwgMjQgfCB2ZXJzaW9uLm1pbm9yIDw8IDE2IHwKKyAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uLm1pY3JvIDw8IDggfCBsZXZlbHNbdmVyc2lvbi5yZWxlYXNlbGV2ZWxdIDw8IDQgfAorICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24uc2VyaWFsIDw8IDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3lzLmltcGxlbWVudGF0aW9uLmhleHZlcnNpb24sIGhleHZlcnNpb24pCisKKyAgICAgICAgIyBQRVAgNDIxIHJlcXVpcmVzIHRoYXQgLm5hbWUgYmUgbG93ZXIgY2FzZS4KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzeXMuaW1wbGVtZW50YXRpb24ubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzeXMuaW1wbGVtZW50YXRpb24ubmFtZS5sb3dlcigpKQorCisgICAgZGVmIHRlc3RfZGVidWdtYWxsb2NzdGF0cyhzZWxmKToKKyAgICAgICAgIyBUZXN0IHN5cy5fZGVidWdtYWxsb2NzdGF0cygpCisgICAgICAgIGZyb20gdGVzdC5zY3JpcHRfaGVscGVyIGltcG9ydCBhc3NlcnRfcHl0aG9uX29rCisgICAgICAgIGFyZ3MgPSBbJy1jJywgJ2ltcG9ydCBzeXM7IHN5cy5fZGVidWdtYWxsb2NzdGF0cygpJ10KKyAgICAgICAgcmV0LCBvdXQsIGVyciA9IGFzc2VydF9weXRob25fb2soKmFyZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oYiJmcmVlIFB5RGljdE9iamVjdHMiLCBlcnIpCiAKIGNsYXNzIFNpemVvZlRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCkBAIC02NTksMjcgKzcwMSwyNyBAQAogICAgICAgICAgICAgcmV0dXJuIGlubmVyCiAgICAgICAgIGNoZWNrKGdldF9jZWxsKCkuX19jbG9zdXJlX19bMF0sIHNpemUoaCArICdQJykpCiAgICAgICAgICMgY29kZQotICAgICAgICBjaGVjayhnZXRfY2VsbCgpLl9fY29kZV9fLCBzaXplKGggKyAnNWk4UGkzUCcpKQorICAgICAgICBjaGVjayhnZXRfY2VsbCgpLl9fY29kZV9fLCBzaXplKGggKyAnNWk5UGkzUCcpKQogICAgICAgICAjIGNvbXBsZXgKICAgICAgICAgY2hlY2soY29tcGxleCgwLDEpLCBzaXplKGggKyAnMmQnKSkKICAgICAgICAgIyBtZXRob2RfZGVzY3JpcHRvciAoZGVzY3JpcHRvciBvYmplY3QpCi0gICAgICAgIGNoZWNrKHN0ci5sb3dlciwgc2l6ZShoICsgJzJQUCcpKQorICAgICAgICBjaGVjayhzdHIubG93ZXIsIHNpemUoaCArICczUFAnKSkKICAgICAgICAgIyBjbGFzc21ldGhvZF9kZXNjcmlwdG9yIChkZXNjcmlwdG9yIG9iamVjdCkKICAgICAgICAgIyBYWFgKICAgICAgICAgIyBtZW1iZXJfZGVzY3JpcHRvciAoZGVzY3JpcHRvciBvYmplY3QpCiAgICAgICAgIGltcG9ydCBkYXRldGltZQotICAgICAgICBjaGVjayhkYXRldGltZS50aW1lZGVsdGEuZGF5cywgc2l6ZShoICsgJzJQUCcpKQorICAgICAgICBjaGVjayhkYXRldGltZS50aW1lZGVsdGEuZGF5cywgc2l6ZShoICsgJzNQUCcpKQogICAgICAgICAjIGdldHNldF9kZXNjcmlwdG9yIChkZXNjcmlwdG9yIG9iamVjdCkKICAgICAgICAgaW1wb3J0IGNvbGxlY3Rpb25zCi0gICAgICAgIGNoZWNrKGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0LmRlZmF1bHRfZmFjdG9yeSwgc2l6ZShoICsgJzJQUCcpKQorICAgICAgICBjaGVjayhjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdC5kZWZhdWx0X2ZhY3RvcnksIHNpemUoaCArICczUFAnKSkKICAgICAgICAgIyB3cmFwcGVyX2Rlc2NyaXB0b3IgKGRlc2NyaXB0b3Igb2JqZWN0KQotICAgICAgICBjaGVjayhpbnQuX19hZGRfXywgc2l6ZShoICsgJzJQMlAnKSkKKyAgICAgICAgY2hlY2soaW50Ll9fYWRkX18sIHNpemUoaCArICczUDJQJykpCiAgICAgICAgICMgbWV0aG9kLXdyYXBwZXIgKGRlc2NyaXB0b3Igb2JqZWN0KQogICAgICAgICBjaGVjayh7fS5fX2l0ZXJfXywgc2l6ZShoICsgJzJQJykpCiAgICAgICAgICMgZGljdAotICAgICAgICBjaGVjayh7fSwgc2l6ZShoICsgJzNQMlAnICsgOConUDJQJykpCisgICAgICAgIGNoZWNrKHt9LCBzaXplKGggKyAnM1AnICsgJzRQJyArIDgqJ1AyUCcpKQogICAgICAgICBsb25nZGljdCA9IHsxOjEsIDI6MiwgMzozLCA0OjQsIDU6NSwgNjo2LCA3OjcsIDg6OH0KLSAgICAgICAgY2hlY2sobG9uZ2RpY3QsIHNpemUoaCArICczUDJQJyArIDgqJ1AyUCcpICsgMTYqc2l6ZSgnUDJQJykpCisgICAgICAgIGNoZWNrKGxvbmdkaWN0LCBzaXplKGggKyAnM1AnICsgJzRQJykgKyAxNipzaXplKCdQMlAnKSkKICAgICAgICAgIyBkaWN0aW9uYXJ5LWtleWl0ZXJhdG9yCiAgICAgICAgIGNoZWNrKHt9LmtleXMoKSwgc2l6ZShoICsgJ1AnKSkKICAgICAgICAgIyBkaWN0aW9uYXJ5LXZhbHVlaXRlcmF0b3IKQEAgLTY5MCwxNCArNzMyLDE0IEBACiAgICAgICAgIGNsYXNzIEMob2JqZWN0KTogcGFzcwogICAgICAgICBjaGVjayhDLl9fZGljdF9fLCBzaXplKGggKyAnUCcpKQogICAgICAgICAjIEJhc2VFeGNlcHRpb24KLSAgICAgICAgY2hlY2soQmFzZUV4Y2VwdGlvbigpLCBzaXplKGggKyAnNVAnKSkKKyAgICAgICAgY2hlY2soQmFzZUV4Y2VwdGlvbigpLCBzaXplKGggKyAnNVBpJykpCiAgICAgICAgICMgVW5pY29kZUVuY29kZUVycm9yCi0gICAgICAgIGNoZWNrKFVuaWNvZGVFbmNvZGVFcnJvcigiIiwgIiIsIDAsIDAsICIiKSwgc2l6ZShoICsgJzVQIDJQMlBQJykpCisgICAgICAgIGNoZWNrKFVuaWNvZGVFbmNvZGVFcnJvcigiIiwgIiIsIDAsIDAsICIiKSwgc2l6ZShoICsgJzVQaSAyUDJQUCcpKQogICAgICAgICAjIFVuaWNvZGVEZWNvZGVFcnJvcgogICAgICAgICAjIFhYWAogIyAgICAgICAgY2hlY2soVW5pY29kZURlY29kZUVycm9yKCIiLCAiIiwgMCwgMCwgIiIpLCBzaXplKGggKyAnNVAyUFAnKSkKICAgICAgICAgIyBVbmljb2RlVHJhbnNsYXRlRXJyb3IKLSAgICAgICAgY2hlY2soVW5pY29kZVRyYW5zbGF0ZUVycm9yKCIiLCAwLCAxLCAiIiksIHNpemUoaCArICc1UCAyUDJQUCcpKQorICAgICAgICBjaGVjayhVbmljb2RlVHJhbnNsYXRlRXJyb3IoIiIsIDAsIDEsICIiKSwgc2l6ZShoICsgJzVQaSAyUDJQUCcpKQogICAgICAgICAjIGVsbGlwc2VzCiAgICAgICAgIGNoZWNrKEVsbGlwc2lzLCBzaXplKGggKyAnJykpCiAgICAgICAgICMgRW5jb2RpbmdNYXAKQEAgLTcyMyw3ICs3NjUsNyBAQAogICAgICAgICBjaGVjayh4LCBzaXplKHZoICsgJzEyUDNpJyArIENPX01BWEJMT0NLUyonM2knICsgJ1AnICsgZXh0cmFzKidQJykpCiAgICAgICAgICMgZnVuY3Rpb24KICAgICAgICAgZGVmIGZ1bmMoKTogcGFzcwotICAgICAgICBjaGVjayhmdW5jLCBzaXplKGggKyAnMTFQJykpCisgICAgICAgIGNoZWNrKGZ1bmMsIHNpemUoaCArICcxMlAnKSkKICAgICAgICAgY2xhc3MgYygpOgogICAgICAgICAgICAgQHN0YXRpY21ldGhvZAogICAgICAgICAgICAgZGVmIGZvbygpOgpAQCAtNzMyLDkgKzc3NCw5IEBACiAgICAgICAgICAgICBkZWYgYmFyKGNscyk6CiAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgIyBzdGF0aWNtZXRob2QKLSAgICAgICAgICAgIGNoZWNrKGZvbywgc2l6ZShoICsgJ1AnKSkKKyAgICAgICAgICAgIGNoZWNrKGZvbywgc2l6ZShoICsgJ1BQJykpCiAgICAgICAgICAgICAjIGNsYXNzbWV0aG9kCi0gICAgICAgICAgICBjaGVjayhiYXIsIHNpemUoaCArICdQJykpCisgICAgICAgICAgICBjaGVjayhiYXIsIHNpemUoaCArICdQUCcpKQogICAgICAgICAjIGdlbmVyYXRvcgogICAgICAgICBkZWYgZ2V0X2dlbigpOiB5aWVsZCAxCiAgICAgICAgIGNoZWNrKGdldF9nZW4oKSwgc2l6ZShoICsgJ1BpMlAnKSkKQEAgLTc2Myw4ICs4MDUsOCBAQAogICAgICAgICBjaGVjayhpbnQoUHlMb25nX0JBU0UpLCBzaXplKHZoKSArIDIqc2VsZi5sb25nZGlnaXQpCiAgICAgICAgIGNoZWNrKGludChQeUxvbmdfQkFTRSoqMi0xKSwgc2l6ZSh2aCkgKyAyKnNlbGYubG9uZ2RpZ2l0KQogICAgICAgICBjaGVjayhpbnQoUHlMb25nX0JBU0UqKjIpLCBzaXplKHZoKSArIDMqc2VsZi5sb25nZGlnaXQpCi0gICAgICAgICMgbWVtb3J5Ci0gICAgICAgIGNoZWNrKG1lbW9yeXZpZXcoYicnKSwgc2l6ZShoICsgJ1BQMlAyaTdQJykpCisgICAgICAgICMgbWVtb3J5dmlldworICAgICAgICBjaGVjayhtZW1vcnl2aWV3KGInJyksIHNpemUoaCArICdQUGlQNFAyaTVQM2MyUCcpKQogICAgICAgICAjIG1vZHVsZQogICAgICAgICBjaGVjayh1bml0dGVzdCwgc2l6ZShoICsgJzNQJykpCiAgICAgICAgICMgTm9uZQpAQCAtODE5LDIxICs4NjEsNDkgQEAKICAgICAgICAgY2hlY2soKCksIHNpemUodmgpKQogICAgICAgICBjaGVjaygoMSwyLDMpLCBzaXplKHZoKSArIDMqc2VsZi5QKQogICAgICAgICAjIHR5cGUKLSAgICAgICAgIyAoUHlUeXBlT2JqZWN0ICsgUHlOdW1iZXJNZXRob2RzICsgUHlNYXBwaW5nTWV0aG9kcyArCi0gICAgICAgICMgIFB5U2VxdWVuY2VNZXRob2RzICsgUHlCdWZmZXJQcm9jcykKLSAgICAgICAgcyA9IHNpemUodmggKyAnUDJQMTVQbDRQUDlQUDExUEknKSArIHNpemUoJzE2UGkxN1AgM1AgMTBQIDJQIDJQJykKKyAgICAgICAgIyBzdGF0aWMgdHlwZTogUHlUeXBlT2JqZWN0CisgICAgICAgIHMgPSBzaXplKHZoICsgJ1AyUDE1UGw0UFA5UFAxMVBJJykKICAgICAgICAgY2hlY2soaW50LCBzKQorICAgICAgICAjIChQeVR5cGVPYmplY3QgKyBQeU51bWJlck1ldGhvZHMgKyBQeU1hcHBpbmdNZXRob2RzICsKKyAgICAgICAgIyAgUHlTZXF1ZW5jZU1ldGhvZHMgKyBQeUJ1ZmZlclByb2NzICsgNFApCisgICAgICAgIHMgPSBzaXplKHZoICsgJ1AyUDE1UGw0UFA5UFAxMVBJJykgKyBzaXplKCczNFAgM1AgMTBQIDJQIDRQJykKKyAgICAgICAgIyBTZXBhcmF0ZSBibG9jayBmb3IgUHlEaWN0S2V5c09iamVjdCB3aXRoIDQgZW50cmllcworICAgICAgICBzICs9IHNpemUoIlBQUFAiKSArIDQqc2l6ZSgiUFBQIikKICAgICAgICAgIyBjbGFzcwogICAgICAgICBjbGFzcyBuZXdzdHlsZWNsYXNzKG9iamVjdCk6IHBhc3MKICAgICAgICAgY2hlY2sobmV3c3R5bGVjbGFzcywgcykKKyAgICAgICAgIyBkaWN0IHdpdGggc2hhcmVkIGtleXMKKyAgICAgICAgY2hlY2sobmV3c3R5bGVjbGFzcygpLl9fZGljdF9fLCBzaXplKGgrIlBQUDRQIikpCiAgICAgICAgICMgdW5pY29kZQotICAgICAgICB1c2l6ZSA9IGxlbignXDAnLmVuY29kZSgndW5pY29kZS1pbnRlcm5hbCcpKQotICAgICAgICBzYW1wbGVzID0gWycnLCAnMScqMTAwXQotICAgICAgICAjIHdlIG5lZWQgdG8gdGVzdCBmb3IgYm90aCBzaXplcywgYmVjYXVzZSB3ZSBkb24ndCBrbm93IGlmIHRoZSBzdHJpbmcKLSAgICAgICAgIyBoYXMgYmVlbiBjYWNoZWQKKyAgICAgICAgIyBlYWNoIHR1cGxlIGNvbnRhaW5zIGEgc3RyaW5nIGFuZCBpdHMgZXhwZWN0ZWQgY2hhcmFjdGVyIHNpemUKKyAgICAgICAgIyBkb24ndCBwdXQgYW55IHN0YXRpYyBzdHJpbmdzIGhlcmUsIGFzIHRoZXkgbWF5IGNvbnRhaW4KKyAgICAgICAgIyB3Y2hhcl90IG9yIFVURi04IHJlcHJlc2VudGF0aW9ucworICAgICAgICBzYW1wbGVzID0gWycxJyoxMDAsICdceGZmJyo1MCwKKyAgICAgICAgICAgICAgICAgICAnXHUwMTAwJyo0MCwgJ1x1ZmZmZicqMTAwLAorICAgICAgICAgICAgICAgICAgICdcVTAwMDEwMDAwJyozMCwgJ1xVMDAxMGZmZmYnKjEwMF0KKyAgICAgICAgYXNjaWlmaWVsZHMgPSBoICsgIlBQaVAiCisgICAgICAgIGNvbXBhY3RmaWVsZHMgPSBhc2NpaWZpZWxkcyArICJQUFAiCisgICAgICAgIHVuaWNvZGVmaWVsZHMgPSBjb21wYWN0ZmllbGRzICsgIlAiCiAgICAgICAgIGZvciBzIGluIHNhbXBsZXM6Ci0gICAgICAgICAgICBiYXNpY3NpemUgPSAgc2l6ZShoICsgJ1BQUGlQJykgKyB1c2l6ZSAqIChsZW4ocykgKyAxKQotICAgICAgICAgICAgY2hlY2socywgYmFzaWNzaXplKQorICAgICAgICAgICAgbWF4Y2hhciA9IG9yZChtYXgocykpCisgICAgICAgICAgICBpZiBtYXhjaGFyIDwgMTI4OgorICAgICAgICAgICAgICAgIEwgPSBzaXplKGFzY2lpZmllbGRzKSArIGxlbihzKSArIDEKKyAgICAgICAgICAgIGVsaWYgbWF4Y2hhciA8IDI1NjoKKyAgICAgICAgICAgICAgICBMID0gc2l6ZShjb21wYWN0ZmllbGRzKSArIGxlbihzKSArIDEKKyAgICAgICAgICAgIGVsaWYgbWF4Y2hhciA8IDY1NTM2OgorICAgICAgICAgICAgICAgIEwgPSBzaXplKGNvbXBhY3RmaWVsZHMpICsgMioobGVuKHMpICsgMSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgTCA9IHNpemUoY29tcGFjdGZpZWxkcykgKyA0KihsZW4ocykgKyAxKQorICAgICAgICAgICAgY2hlY2socywgTCkKKyAgICAgICAgIyB2ZXJpZnkgdGhhdCB0aGUgVVRGLTggc2l6ZSBpcyBhY2NvdW50ZWQgZm9yCisgICAgICAgIHMgPSBjaHIoMHg0MDAwKSAgICMgNCBieXRlcyBjYW5vbmljYWwgcmVwcmVzZW50YXRpb24KKyAgICAgICAgY2hlY2socywgc2l6ZShjb21wYWN0ZmllbGRzKSArIDQpCisgICAgICAgICMgY29tcGlsZSgpIHdpbGwgdHJpZ2dlciB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgVVRGLTgKKyAgICAgICAgIyByZXByZXNlbnRhdGlvbiBhcyBhIHNpZGUgZWZmZWN0CisgICAgICAgIGNvbXBpbGUocywgIjxzdGRpbj4iLCAiZXZhbCIpCisgICAgICAgIGNoZWNrKHMsIHNpemUoY29tcGFjdGZpZWxkcykgKyA0ICsgNCkKKyAgICAgICAgIyBUT0RPOiBhZGQgY2hlY2sgdGhhdCBmb3JjZXMgdGhlIHByZXNlbmNlIG9mIHdjaGFyX3QgcmVwcmVzZW50YXRpb24KKyAgICAgICAgIyBUT0RPOiBhZGQgY2hlY2sgdGhhdCBmb3JjZXMgbGF5b3V0IG9mIHVuaWNvZGVmaWVsZHMKICAgICAgICAgIyB3ZWFrcmVmCiAgICAgICAgIGltcG9ydCB3ZWFrcmVmCiAgICAgICAgIGNoZWNrKHdlYWtyZWYucmVmKGludCksIHNpemUoaCArICcyUGwyUCcpKQpAQCAtODUwLDEwICs5MjAsNyBAQAogICAgICAgICBjaGVjayA9IHNlbGYuY2hlY2tfc2l6ZW9mCiAgICAgICAgICMgX2FzdC5BU1QKICAgICAgICAgaW1wb3J0IF9hc3QKLSAgICAgICAgY2hlY2soX2FzdC5BU1QoKSwgc2l6ZShoICsgJycpKQotICAgICAgICAjIGltcC5OdWxsSW1wb3J0ZXIKLSAgICAgICAgaW1wb3J0IGltcAotICAgICAgICBjaGVjayhpbXAuTnVsbEltcG9ydGVyKHNlbGYuZmlsZS5uYW1lKSwgc2l6ZShoICsgJycpKQorICAgICAgICBjaGVjayhfYXN0LkFTVCgpLCBzaXplKGggKyAnUCcpKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IKICAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc3lzX3NldHRyYWNlLnB5IGIvTGliL3Rlc3QvdGVzdF9zeXNfc2V0dHJhY2UucHkKaW5kZXggZWEyYmIyOS4uZmRmOTU4YyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zeXNfc2V0dHJhY2UucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zeXNfc2V0dHJhY2UucHkKQEAgLTI1MSw2ICsyNTEsNyBAQAogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi51c2luZ19nYyA9IGdjLmlzZW5hYmxlZCgpCiAgICAgICAgIGdjLmRpc2FibGUoKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3lzLnNldHRyYWNlLCBzeXMuZ2V0dHJhY2UoKSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgaWYgc2VsZi51c2luZ19nYzoKQEAgLTM4OSw2ICszOTAsOSBAQAogCiAKIGNsYXNzIFJhaXNpbmdUcmFjZUZ1bmNUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3lzLnNldHRyYWNlLCBzeXMuZ2V0dHJhY2UoKSkKKwogICAgIGRlZiB0cmFjZShzZWxmLCBmcmFtZSwgZXZlbnQsIGFyZyk6CiAgICAgICAgICIiIkEgdHJhY2UgZnVuY3Rpb24gdGhhdCByYWlzZXMgYW4gZXhjZXB0aW9uIGluIHJlc3BvbnNlIHRvIGEKICAgICAgICAgc3BlY2lmaWMgdHJhY2UgZXZlbnQuIiIiCkBAIC02OTYsNiArNzAwLDEwIEBACiAKIAogY2xhc3MgSnVtcFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzeXMuc2V0dHJhY2UsIHN5cy5nZXR0cmFjZSgpKQorICAgICAgICBzeXMuc2V0dHJhY2UoTm9uZSkKKwogICAgIGRlZiBjb21wYXJlX2p1bXBfb3V0cHV0KHNlbGYsIGV4cGVjdGVkLCByZWNlaXZlZCk6CiAgICAgICAgIGlmIHJlY2VpdmVkICE9IGV4cGVjdGVkOgogICAgICAgICAgICAgc2VsZi5mYWlsKCAiT3V0cHV0cyBkb24ndCBtYXRjaDpcbiIgKwpAQCAtNzQ3LDYgKzc1NSw4IEBACiAgICAgZGVmIHRlc3RfMThfbm9fanVtcF90b19ub25faW50ZWdlcnMoc2VsZik6CiAgICAgICAgIHNlbGYucnVuX3Rlc3Qobm9fanVtcF90b19ub25faW50ZWdlcnMpCiAgICAgZGVmIHRlc3RfMTlfbm9fanVtcF93aXRob3V0X3RyYWNlX2Z1bmN0aW9uKHNlbGYpOgorICAgICAgICAjIE11c3Qgc2V0IHN5cy5zZXR0cmFjZShOb25lKSBpbiBzZXRVcCgpLCBlbHNlIGNvbmRpdGlvbiBpcyBub3QKKyAgICAgICAgIyB0cmlnZ2VyZWQuCiAgICAgICAgIG5vX2p1bXBfd2l0aG91dF90cmFjZV9mdW5jdGlvbigpCiAgICAgZGVmIHRlc3RfanVtcF9hY3Jvc3Nfd2l0aChzZWxmKToKICAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHN1cHBvcnQudW5saW5rLCBzdXBwb3J0LlRFU1RGTikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3Rfc3lzY29uZmlnLnB5IGIvTGliL3Rlc3QvdGVzdF9zeXNjb25maWcucHkKaW5kZXggYWFiYjZmYS4uYWE1ZDU4MiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF9zeXNjb25maWcucHkKKysrIGIvTGliL3Rlc3QvdGVzdF9zeXNjb25maWcucHkKQEAgLTEsMTEgKzEsOSBAQAotIiIiVGVzdHMgZm9yIHN5c2NvbmZpZy4iIiIKLQogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQgc3lzCiBpbXBvcnQgb3MKIGltcG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc2h1dGlsCi1mcm9tIGNvcHkgaW1wb3J0IGNvcHksIGRlZXBjb3B5Citmcm9tIGNvcHkgaW1wb3J0IGNvcHkKIAogZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IChydW5fdW5pdHRlc3QsIFRFU1RGTiwgdW5saW5rLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjYXB0dXJlZF9zdGRvdXQsIHNraXBfdW5sZXNzX3N5bWxpbmspCkBAIC0xOSw3ICsxNyw2IEBACiBjbGFzcyBUZXN0U3lzQ29uZmlnKHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIiTWFrZSBhIGNvcHkgb2Ygc3lzLnBhdGgiIiIKICAgICAgICAgc3VwZXIoVGVzdFN5c0NvbmZpZywgc2VsZikuc2V0VXAoKQogICAgICAgICBzZWxmLnN5c19wYXRoID0gc3lzLnBhdGhbOl0KICAgICAgICAgIyBwYXRjaGluZyBvcy51bmFtZQpAQCAtMjgsNyArMjUsNyBAQAogICAgICAgICAgICAgc2VsZi5fdW5hbWUgPSBvcy51bmFtZSgpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLnVuYW1lID0gTm9uZQotICAgICAgICAgICAgc2VsZi5fdW5hbWUgPSBOb25lCisgICAgICAgICAgICBzZWxmLl9zZXRfdW5hbWUoKCcnLCkqNSkKICAgICAgICAgb3MudW5hbWUgPSBzZWxmLl9nZXRfdW5hbWUKICAgICAgICAgIyBzYXZpbmcgdGhlIGVudmlyb25tZW50CiAgICAgICAgIHNlbGYubmFtZSA9IG9zLm5hbWUKQEAgLTM4LDExICszNSwxNiBAQAogICAgICAgICBzZWxmLmpvaW4gPSBvcy5wYXRoLmpvaW4KICAgICAgICAgc2VsZi5pc2FicyA9IG9zLnBhdGguaXNhYnMKICAgICAgICAgc2VsZi5zcGxpdGRyaXZlID0gb3MucGF0aC5zcGxpdGRyaXZlCi0gICAgICAgIHNlbGYuX2NvbmZpZ192YXJzID0gY29weShzeXNjb25maWcuX0NPTkZJR19WQVJTKQotICAgICAgICBzZWxmLm9sZF9lbnZpcm9uID0gZGVlcGNvcHkob3MuZW52aXJvbikKKyAgICAgICAgc2VsZi5fY29uZmlnX3ZhcnMgPSBzeXNjb25maWcuX0NPTkZJR19WQVJTLCBjb3B5KHN5c2NvbmZpZy5fQ09ORklHX1ZBUlMpCisgICAgICAgIHNlbGYuX2FkZGVkX2VudnZhcnMgPSBbXQorICAgICAgICBzZWxmLl9jaGFuZ2VkX2VudnZhcnMgPSBbXQorICAgICAgICBmb3IgdmFyIGluICgnTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUJywgJ1BBVEgnKToKKyAgICAgICAgICAgIGlmIHZhciBpbiBvcy5lbnZpcm9uOgorICAgICAgICAgICAgICAgIHNlbGYuX2NoYW5nZWRfZW52dmFycy5hcHBlbmQoKHZhciwgb3MuZW52aXJvblt2YXJdKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5fYWRkZWRfZW52dmFycy5hcHBlbmQodmFyKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJSZXN0b3JlIHN5cy5wYXRoIiIiCiAgICAgICAgIHN5cy5wYXRoWzpdID0gc2VsZi5zeXNfcGF0aAogICAgICAgICBzZWxmLl9jbGVhbnVwX3Rlc3RmbigpCiAgICAgICAgIGlmIHNlbGYudW5hbWUgaXMgbm90IE5vbmU6CkBAIC01NiwxOSArNTgsMTggQEAKICAgICAgICAgb3MucGF0aC5qb2luID0gc2VsZi5qb2luCiAgICAgICAgIG9zLnBhdGguaXNhYnMgPSBzZWxmLmlzYWJzCiAgICAgICAgIG9zLnBhdGguc3BsaXRkcml2ZSA9IHNlbGYuc3BsaXRkcml2ZQotICAgICAgICBzeXNjb25maWcuX0NPTkZJR19WQVJTID0gY29weShzZWxmLl9jb25maWdfdmFycykKLSAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc2VsZi5vbGRfZW52aXJvbi5pdGVtcygpOgotICAgICAgICAgICAgaWYgb3MuZW52aXJvbi5nZXQoa2V5KSAhPSB2YWx1ZToKLSAgICAgICAgICAgICAgICBvcy5lbnZpcm9uW2tleV0gPSB2YWx1ZQotCi0gICAgICAgIGZvciBrZXkgaW4gbGlzdChvcy5lbnZpcm9uLmtleXMoKSk6Ci0gICAgICAgICAgICBpZiBrZXkgbm90IGluIHNlbGYub2xkX2Vudmlyb246Ci0gICAgICAgICAgICAgICAgZGVsIG9zLmVudmlyb25ba2V5XQorICAgICAgICBzeXNjb25maWcuX0NPTkZJR19WQVJTID0gc2VsZi5fY29uZmlnX3ZhcnNbMF0KKyAgICAgICAgc3lzY29uZmlnLl9DT05GSUdfVkFSUy5jbGVhcigpCisgICAgICAgIHN5c2NvbmZpZy5fQ09ORklHX1ZBUlMudXBkYXRlKHNlbGYuX2NvbmZpZ192YXJzWzFdKQorICAgICAgICBmb3IgdmFyLCB2YWx1ZSBpbiBzZWxmLl9jaGFuZ2VkX2VudnZhcnM6CisgICAgICAgICAgICBvcy5lbnZpcm9uW3Zhcl0gPSB2YWx1ZQorICAgICAgICBmb3IgdmFyIGluIHNlbGYuX2FkZGVkX2VudnZhcnM6CisgICAgICAgICAgICBvcy5lbnZpcm9uLnBvcCh2YXIsIE5vbmUpCiAKICAgICAgICAgc3VwZXIoVGVzdFN5c0NvbmZpZywgc2VsZikudGVhckRvd24oKQogCiAgICAgZGVmIF9zZXRfdW5hbWUoc2VsZiwgdW5hbWUpOgotICAgICAgICBzZWxmLl91bmFtZSA9IHVuYW1lCisgICAgICAgIHNlbGYuX3VuYW1lID0gb3MudW5hbWVfcmVzdWx0KHVuYW1lKQogCiAgICAgZGVmIF9nZXRfdW5hbWUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl91bmFtZQpAQCAtODcsMjEgKzg4LDE5IEBACiAgICAgICAgIHNjaGVtZSA9IGdldF9wYXRocygpCiAgICAgICAgIGRlZmF1bHRfc2NoZW1lID0gX2dldF9kZWZhdWx0X3NjaGVtZSgpCiAgICAgICAgIHdhbnRlZCA9IF9leHBhbmRfdmFycyhkZWZhdWx0X3NjaGVtZSwgTm9uZSkKLSAgICAgICAgd2FudGVkID0gbGlzdCh3YW50ZWQuaXRlbXMoKSkKLSAgICAgICAgd2FudGVkLnNvcnQoKQotICAgICAgICBzY2hlbWUgPSBsaXN0KHNjaGVtZS5pdGVtcygpKQotICAgICAgICBzY2hlbWUuc29ydCgpCisgICAgICAgIHdhbnRlZCA9IHNvcnRlZCh3YW50ZWQuaXRlbXMoKSkKKyAgICAgICAgc2NoZW1lID0gc29ydGVkKHNjaGVtZS5pdGVtcygpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNjaGVtZSwgd2FudGVkKQogCiAgICAgZGVmIHRlc3RfZ2V0X3BhdGgoc2VsZik6Ci0gICAgICAgICMgeHh4IG1ha2UgcmVhbCB0ZXN0cyBoZXJlCisgICAgICAgICMgWFhYIG1ha2UgcmVhbCB0ZXN0cyBoZXJlCiAgICAgICAgIGZvciBzY2hlbWUgaW4gX0lOU1RBTExfU0NIRU1FUzoKICAgICAgICAgICAgIGZvciBuYW1lIGluIF9JTlNUQUxMX1NDSEVNRVNbc2NoZW1lXToKICAgICAgICAgICAgICAgICByZXMgPSBnZXRfcGF0aChuYW1lLCBzY2hlbWUpCiAKICAgICBkZWYgdGVzdF9nZXRfY29uZmlnX3ZhcnMoc2VsZik6CiAgICAgICAgIGN2YXJzID0gZ2V0X2NvbmZpZ192YXJzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UoY3ZhcnMsIGRpY3QpKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoY3ZhcnMsIGRpY3QpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjdmFycykKIAogICAgIGRlZiB0ZXN0X2dldF9wbGF0Zm9ybShzZWxmKToKQEAgLTEzNSw4ICsxMzQsNiBAQAogICAgICAgICAgICAgICAgICAgICgnRGFyd2luIEtlcm5lbCBWZXJzaW9uIDguMTEuMTogJwogICAgICAgICAgICAgICAgICAgICAnV2VkIE9jdCAxMCAxODoyMzoyOCBQRFQgMjAwNzsgJwogICAgICAgICAgICAgICAgICAgICAncm9vdDp4bnUtNzkyLjI1LjIwfjEvUkVMRUFTRV9JMzg2JyksICdQb3dlclBDJykpCi0KLQogICAgICAgICBnZXRfY29uZmlnX3ZhcnMoKVsnTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUJ10gPSAnMTAuMycKIAogICAgICAgICBnZXRfY29uZmlnX3ZhcnMoKVsnQ0ZMQUdTJ10gPSAoJy1mbm8tc3RyaWN0LWFsaWFzaW5nIC1ETkRFQlVHIC1nICcKQEAgLTE1MSw3ICsxNDgsNiBAQAogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgc3lzLm1heHNpemUgPSBtYXhpbnQKIAotCiAgICAgICAgIHNlbGYuX3NldF91bmFtZSgoJ0RhcndpbicsICdtYWN6aWFkZScsICc4LjExLjEnLAogICAgICAgICAgICAgICAgICAgICgnRGFyd2luIEtlcm5lbCBWZXJzaW9uIDguMTEuMTogJwogICAgICAgICAgICAgICAgICAgICAnV2VkIE9jdCAxMCAxODoyMzoyOCBQRFQgMjAwNzsgJwpAQCAtMjA5LDkgKzIwNSw5IEBACiAgICAgICAgICAgICBnZXRfY29uZmlnX3ZhcnMoKVsnQ0ZMQUdTJ10gPSAoJy1hcmNoICVzIC1pc3lzcm9vdCAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy9EZXZlbG9wZXIvU0RLcy9NYWNPU1gxMC40dS5zZGsgICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLWZuby1zdHJpY3QtYWxpYXNpbmcgLWZuby1jb21tb24gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctZHluYW1pYyAtRE5ERUJVRyAtZyAtTzMnJShhcmNoLCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1keW5hbWljIC1ETkRFQlVHIC1nIC1PMycgJSBhcmNoKQogCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldF9wbGF0Zm9ybSgpLCAnbWFjb3N4LTEwLjQtJXMnJShhcmNoLCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGdldF9wbGF0Zm9ybSgpLCAnbWFjb3N4LTEwLjQtJXMnICUgYXJjaCkKIAogICAgICAgICAjIGxpbnV4IGRlYmlhbiBzYXJnZQogICAgICAgICBvcy5uYW1lID0gJ3Bvc2l4JwpAQCAtMjM5LDggKzIzNSw4IEBACiAgICAgICAgICMgT24gV2luZG93cywgdGhlIEVYRSBuZWVkcyB0byBrbm93IHdoZXJlIHB5dGhvblhZLmRsbCBpcyBhdCBzbyB3ZSBoYXZlCiAgICAgICAgICMgdG8gYWRkIHRoZSBkaXJlY3RvcnkgdG8gdGhlIHBhdGguCiAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgotICAgICAgICAgICAgb3MuZW52aXJvblsiUGF0aCJdID0gInt9O3t9Ii5mb3JtYXQoCi0gICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKHN5cy5leGVjdXRhYmxlKSwgb3MuZW52aXJvblsiUGF0aCJdKQorICAgICAgICAgICAgb3MuZW52aXJvblsiUEFUSCJdID0gInt9O3t9Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKHN5cy5leGVjdXRhYmxlKSwgb3MuZW52aXJvblsiUEFUSCJdKQogCiAgICAgICAgICMgSXNzdWUgNzg4MAogICAgICAgICBkZWYgZ2V0KHB5dGhvbik6CkBAIC0yNjQsMTIgKzI2MCwxNyBAQAogICAgICAgICAjIHRoZSBnbG9iYWwgc2NoZW1lIG1pcnJvcnMgdGhlIGRpc3RpbmN0aW9uIGJldHdlZW4gcHJlZml4IGFuZAogICAgICAgICAjIGV4ZWMtcHJlZml4IGJ1dCBub3QgdGhlIHVzZXIgc2NoZW1lLCBzbyB3ZSBoYXZlIHRvIGFkYXB0IHRoZSBwYXRocwogICAgICAgICAjIGJlZm9yZSBjb21wYXJpbmcgKGlzc3VlICM5MTAwKQotICAgICAgICBhZGFwdCA9IHN5cy5wcmVmaXggIT0gc3lzLmV4ZWNfcHJlZml4CisgICAgICAgIGFkYXB0ID0gc3lzLmJhc2VfcHJlZml4ICE9IHN5cy5iYXNlX2V4ZWNfcHJlZml4CiAgICAgICAgIGZvciBuYW1lIGluICgnc3RkbGliJywgJ3BsYXRzdGRsaWInLCAncHVyZWxpYicsICdwbGF0bGliJyk6CiAgICAgICAgICAgICBnbG9iYWxfcGF0aCA9IGdldF9wYXRoKG5hbWUsICdwb3NpeF9wcmVmaXgnKQogICAgICAgICAgICAgaWYgYWRhcHQ6Ci0gICAgICAgICAgICAgICAgZ2xvYmFsX3BhdGggPSBnbG9iYWxfcGF0aC5yZXBsYWNlKHN5cy5leGVjX3ByZWZpeCwgc3lzLnByZWZpeCkKLSAgICAgICAgICAgICAgICBiYXNlID0gYmFzZS5yZXBsYWNlKHN5cy5leGVjX3ByZWZpeCwgc3lzLnByZWZpeCkKKyAgICAgICAgICAgICAgICBnbG9iYWxfcGF0aCA9IGdsb2JhbF9wYXRoLnJlcGxhY2Uoc3lzLmV4ZWNfcHJlZml4LCBzeXMuYmFzZV9wcmVmaXgpCisgICAgICAgICAgICAgICAgYmFzZSA9IGJhc2UucmVwbGFjZShzeXMuZXhlY19wcmVmaXgsIHN5cy5iYXNlX3ByZWZpeCkKKyAgICAgICAgICAgIGVsaWYgc3lzLmJhc2VfcHJlZml4ICE9IHN5cy5wcmVmaXg6CisgICAgICAgICAgICAgICAgIyB2aXJ0dWFsIGVudmlyb25tZW50PyBMaWtld2lzZSwgd2UgaGF2ZSB0byBhZGFwdCB0aGUgcGF0aHMKKyAgICAgICAgICAgICAgICAjIGJlZm9yZSBjb21wYXJpbmcKKyAgICAgICAgICAgICAgICBnbG9iYWxfcGF0aCA9IGdsb2JhbF9wYXRoLnJlcGxhY2Uoc3lzLmJhc2VfcHJlZml4LCBzeXMucHJlZml4KQorICAgICAgICAgICAgICAgIGJhc2UgPSBiYXNlLnJlcGxhY2Uoc3lzLmJhc2VfcHJlZml4LCBzeXMucHJlZml4KQogICAgICAgICAgICAgdXNlcl9wYXRoID0gZ2V0X3BhdGgobmFtZSwgJ3Bvc2l4X3VzZXInKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1c2VyX3BhdGgsIGdsb2JhbF9wYXRoLnJlcGxhY2UoYmFzZSwgdXNlciwgMSkpCiAKQEAgLTI4Niw3ICsyODcsNiBAQAogCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4obGRmbGFncywgbGRzaGFyZWQpCiAKLQogICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIiwgInRlc3Qgb25seSByZWxldmFudCBvbiBNYWNPU1giKQogICAgIGRlZiB0ZXN0X3BsYXRmb3JtX2luX3N1YnByb2Nlc3Moc2VsZik6CiAgICAgICAgIG15X3BsYXRmb3JtID0gc3lzY29uZmlnLmdldF9wbGF0Zm9ybSgpCkBAIC0zMTIsMjggKzMxMiwyOSBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXR1cywgMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChteV9wbGF0Zm9ybSwgdGVzdF9wbGF0Zm9ybSkKIAotCiAgICAgICAgICMgVGVzdCB3aXRoIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCBpbiB0aGUgZW52aXJvbm1lbnQsIGFuZAogICAgICAgICAjIHVzaW5nIGEgdmFsdWUgdGhhdCBpcyB1bmxpa2VseSB0byBiZSB0aGUgZGVmYXVsdCBvbmUuCiAgICAgICAgIGVudiA9IG9zLmVudmlyb24uY29weSgpCiAgICAgICAgIGVudlsnTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUJ10gPSAnMTAuMScKIAotICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3BlbihbCi0gICAgICAgICAgICAgICAgc3lzLmV4ZWN1dGFibGUsICctYycsCi0gICAgICAgICAgICAgICAgJ2ltcG9ydCBzeXNjb25maWc7IHByaW50KHN5c2NvbmZpZy5nZXRfcGxhdGZvcm0oKSknLAotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCi0gICAgICAgICAgICBzdGRlcnI9b3BlbignL2Rldi9udWxsJyksCi0gICAgICAgICAgICBlbnY9ZW52KQotICAgICAgICB0ZXN0X3BsYXRmb3JtID0gcC5jb21tdW5pY2F0ZSgpWzBdLnN0cmlwKCkKLSAgICAgICAgdGVzdF9wbGF0Zm9ybSA9IHRlc3RfcGxhdGZvcm0uZGVjb2RlKCd1dGYtOCcpCi0gICAgICAgIHN0YXR1cyA9IHAud2FpdCgpCisgICAgICAgIHdpdGggb3BlbignL2Rldi9udWxsJykgYXMgZGV2X251bGw6CisgICAgICAgICAgICBwID0gc3VicHJvY2Vzcy5Qb3BlbihbCisgICAgICAgICAgICAgICAgICAgIHN5cy5leGVjdXRhYmxlLCAnLWMnLAorICAgICAgICAgICAgICAgICAgICAnaW1wb3J0IHN5c2NvbmZpZzsgcHJpbnQoc3lzY29uZmlnLmdldF9wbGF0Zm9ybSgpKScsCisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgIHN0ZGVycj1kZXZfbnVsbCwKKyAgICAgICAgICAgICAgICBlbnY9ZW52KQorICAgICAgICAgICAgdGVzdF9wbGF0Zm9ybSA9IHAuY29tbXVuaWNhdGUoKVswXS5zdHJpcCgpCisgICAgICAgICAgICB0ZXN0X3BsYXRmb3JtID0gdGVzdF9wbGF0Zm9ybS5kZWNvZGUoJ3V0Zi04JykKKyAgICAgICAgICAgIHN0YXR1cyA9IHAud2FpdCgpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0dXMsIDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXlfcGxhdGZvcm0sIHRlc3RfcGxhdGZvcm0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXR1cywgMCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXlfcGxhdGZvcm0sIHRlc3RfcGxhdGZvcm0pCiAKIAogY2xhc3MgTWFrZWZpbGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKICAgICBAdW5pdHRlc3Quc2tpcElmKHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4nKSwKICAgICAgICAgICAgICAgICAgICAgICdUZXN0IGlzIG5vdCBXaW5kb3dzIGNvbXBhdGlibGUnKQogICAgIGRlZiB0ZXN0X2dldF9tYWtlZmlsZV9maWxlbmFtZShzZWxmKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdGFyZmlsZS5weSBiL0xpYi90ZXN0L3Rlc3RfdGFyZmlsZS5weQppbmRleCBmMzJlYjhjLi5jN2JmNzc0IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RhcmZpbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90YXJmaWxlLnB5CkBAIC0yMSw2ICsyMSwxMCBAQAogICAgIGltcG9ydCBiejIKIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICBiejIgPSBOb25lCit0cnk6CisgICAgaW1wb3J0IGx6bWEKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBsem1hID0gTm9uZQogCiBkZWYgbWQ1c3VtKGRhdGEpOgogICAgIHJldHVybiBtZDUoZGF0YSkuaGV4ZGlnZXN0KCkKQEAgLTI5LDYgKzMzLDcgQEAKIHRhcm5hbWUgPSBzdXBwb3J0LmZpbmRmaWxlKCJ0ZXN0dGFyLnRhciIpCiBnemlwbmFtZSA9IG9zLnBhdGguam9pbihURU1QRElSLCAidGVzdHRhci50YXIuZ3oiKQogYnoybmFtZSA9IG9zLnBhdGguam9pbihURU1QRElSLCAidGVzdHRhci50YXIuYnoyIikKK3h6bmFtZSA9IG9zLnBhdGguam9pbihURU1QRElSLCAidGVzdHRhci50YXIueHoiKQogdG1wbmFtZSA9IG9zLnBhdGguam9pbihURU1QRElSLCAidG1wLnRhciIpCiAKIG1kNV9yZWd0eXBlID0gIjY1ZjQ3N2M4MThhZDllMTVmN2ZlYWIwYzZkMzc3NDJmIgpAQCAtNTEsMTMgKzU2LDEwIEBACiAKICAgICBkZWYgdGVzdF9maWxlb2JqX3JlZ3VsYXJfZmlsZShzZWxmKToKICAgICAgICAgdGFyaW5mbyA9IHNlbGYudGFyLmdldG1lbWJlcigidXN0YXIvcmVndHlwZSIpCi0gICAgICAgIGZvYmogPSBzZWxmLnRhci5leHRyYWN0ZmlsZSh0YXJpbmZvKQotICAgICAgICB0cnk6CisgICAgICAgIHdpdGggc2VsZi50YXIuZXh0cmFjdGZpbGUodGFyaW5mbykgYXMgZm9iajoKICAgICAgICAgICAgIGRhdGEgPSBmb2JqLnJlYWQoKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKChsZW4oZGF0YSksIG1kNXN1bShkYXRhKSkgPT0gKHRhcmluZm8uc2l6ZSwgbWQ1X3JlZ3R5cGUpLAogICAgICAgICAgICAgICAgICAgICAicmVndWxhciBmaWxlIGV4dHJhY3Rpb24gZmFpbGVkIikKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGZvYmouY2xvc2UoKQogCiAgICAgZGVmIHRlc3RfZmlsZW9ial9yZWFkbGluZXMoc2VsZik6CiAgICAgICAgIHNlbGYudGFyLmV4dHJhY3QoInVzdGFyL3JlZ3R5cGUiLCBURU1QRElSKQpAQCAtNjUsOCArNjcsNyBAQAogICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKFRFTVBESVIsICJ1c3Rhci9yZWd0eXBlIiksICJyIikgYXMgZm9iajE6CiAgICAgICAgICAgICBsaW5lczEgPSBmb2JqMS5yZWFkbGluZXMoKQogCi0gICAgICAgIGZvYmogPSBzZWxmLnRhci5leHRyYWN0ZmlsZSh0YXJpbmZvKQotICAgICAgICB0cnk6CisgICAgICAgIHdpdGggc2VsZi50YXIuZXh0cmFjdGZpbGUodGFyaW5mbykgYXMgZm9iajoKICAgICAgICAgICAgIGZvYmoyID0gaW8uVGV4dElPV3JhcHBlcihmb2JqKQogICAgICAgICAgICAgbGluZXMyID0gZm9iajIucmVhZGxpbmVzKCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsaW5lczEgPT0gbGluZXMyLApAQCAtNzYsMjEgKzc3LDE2IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobGluZXMyWzgzXSA9PQogICAgICAgICAgICAgICAgICAgICAiSSB3aWxsIGdsYWRseSBhZG1pdCB0aGF0IFB5dGhvbiBpcyBub3QgdGhlIGZhc3Rlc3QgcnVubmluZyBzY3JpcHRpbmcgbGFuZ3VhZ2UuXG4iLAogICAgICAgICAgICAgICAgICAgICAiZmlsZW9iai5yZWFkbGluZXMoKSBmYWlsZWQiKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZm9iai5jbG9zZSgpCiAKICAgICBkZWYgdGVzdF9maWxlb2JqX2l0ZXIoc2VsZik6CiAgICAgICAgIHNlbGYudGFyLmV4dHJhY3QoInVzdGFyL3JlZ3R5cGUiLCBURU1QRElSKQogICAgICAgICB0YXJpbmZvID0gc2VsZi50YXIuZ2V0bWVtYmVyKCJ1c3Rhci9yZWd0eXBlIikKLSAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihURU1QRElSLCAidXN0YXIvcmVndHlwZSIpLCAiclUiKSBhcyBmb2JqMToKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihURU1QRElSLCAidXN0YXIvcmVndHlwZSIpLCAiciIpIGFzIGZvYmoxOgogICAgICAgICAgICAgbGluZXMxID0gZm9iajEucmVhZGxpbmVzKCkKLSAgICAgICAgZm9iajIgPSBzZWxmLnRhci5leHRyYWN0ZmlsZSh0YXJpbmZvKQotICAgICAgICB0cnk6CisgICAgICAgIHdpdGggc2VsZi50YXIuZXh0cmFjdGZpbGUodGFyaW5mbykgYXMgZm9iajI6CiAgICAgICAgICAgICBsaW5lczIgPSBsaXN0KGlvLlRleHRJT1dyYXBwZXIoZm9iajIpKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxpbmVzMSA9PSBsaW5lczIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGVvYmouX19pdGVyX18oKSBmYWlsZWQiKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgZm9iajIuY2xvc2UoKQogCiAgICAgZGVmIHRlc3RfZmlsZW9ial9zZWVrKHNlbGYpOgogICAgICAgICBzZWxmLnRhci5leHRyYWN0KCJ1c3Rhci9yZWd0eXBlIiwgVEVNUERJUikKQEAgLTE0MiwxNyArMTM4LDI0IEBACiAgICAgICAgICAgICAgICAgICAgICAicmVhZCgpIGFmdGVyIHJlYWRsaW5lKCkgZmFpbGVkIikKICAgICAgICAgZm9iai5jbG9zZSgpCiAKKyAgICBkZWYgdGVzdF9maWxlb2JqX3RleHQoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi50YXIuZXh0cmFjdGZpbGUoInVzdGFyL3JlZ3R5cGUiKSBhcyBmb2JqOgorICAgICAgICAgICAgZm9iaiA9IGlvLlRleHRJT1dyYXBwZXIoZm9iaikKKyAgICAgICAgICAgIGRhdGEgPSBmb2JqLnJlYWQoKS5lbmNvZGUoImlzbzg4NTktMSIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1kNXN1bShkYXRhKSwgbWQ1X3JlZ3R5cGUpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZm9iai5zZWVrKDEwMCkKKyAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICAjIElzc3VlICMxMzgxNTogc2VlaygpIGNvbXBsYWluZWQgYWJvdXQgYSBtaXNzaW5nCisgICAgICAgICAgICAgICAgIyBmbHVzaCgpIG1ldGhvZC4KKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoInNlZWtpbmcgZmFpbGVkIGluIHRleHQgbW9kZSIpCisKICAgICAjIFRlc3QgaWYgc3ltYm9saWMgYW5kIGhhcmQgbGlua3MgYXJlIHJlc29sdmVkIGJ5IGV4dHJhY3RmaWxlKCkuICBUaGUKICAgICAjIHRlc3QgbGluayBtZW1iZXJzIGVhY2ggcG9pbnQgdG8gYSByZWd1bGFyIG1lbWJlciB3aG9zZSBkYXRhIGlzCiAgICAgIyBzdXBwb3NlZCB0byBiZSBleHBvcnRlZC4KICAgICBkZWYgX3Rlc3RfZmlsZW9ial9saW5rKHNlbGYsIGxua3R5cGUsIHJlZ3R5cGUpOgotICAgICAgICBhID0gc2VsZi50YXIuZXh0cmFjdGZpbGUobG5rdHlwZSkKLSAgICAgICAgYiA9IHNlbGYudGFyLmV4dHJhY3RmaWxlKHJlZ3R5cGUpCi0gICAgICAgIHRyeToKKyAgICAgICAgd2l0aCBzZWxmLnRhci5leHRyYWN0ZmlsZShsbmt0eXBlKSBhcyBhLCBzZWxmLnRhci5leHRyYWN0ZmlsZShyZWd0eXBlKSBhcyBiOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhLm5hbWUsIGIubmFtZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGEuY2xvc2UoKQotICAgICAgICAgICAgYi5jbG9zZSgpCiAKICAgICBkZWYgdGVzdF9maWxlb2JqX2xpbmsxKHNlbGYpOgogICAgICAgICBzZWxmLl90ZXN0X2ZpbGVvYmpfbGluaygidXN0YXIvbG5rdHlwZSIsICJ1c3Rhci9yZWd0eXBlIikKQEAgLTIwNCwxMyArMjA3LDE1IEBACiAgICAgICAgICAgICBfb3BlbiA9IGd6aXAuR3ppcEZpbGUKICAgICAgICAgZWxpZiBzZWxmLm1vZGUuZW5kc3dpdGgoIjpiejIiKToKICAgICAgICAgICAgIF9vcGVuID0gYnoyLkJaMkZpbGUKKyAgICAgICAgZWxpZiBzZWxmLm1vZGUuZW5kc3dpdGgoIjp4eiIpOgorICAgICAgICAgICAgX29wZW4gPSBsem1hLkxaTUFGaWxlCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBfb3BlbiA9IG9wZW4KKyAgICAgICAgICAgIF9vcGVuID0gaW8uRmlsZUlPCiAKICAgICAgICAgZm9yIGNoYXIgaW4gKGInXDAnLCBiJ2EnKToKICAgICAgICAgICAgICMgVGVzdCBpZiBFT0ZIZWFkZXJFcnJvciAoJ1wwJykgYW5kIEludmFsaWRIZWFkZXJFcnJvciAoJ2EnKQogICAgICAgICAgICAgIyBhcmUgaWdub3JlZCBjb3JyZWN0bHkuCi0gICAgICAgICAgICB3aXRoIF9vcGVuKHRtcG5hbWUsICJ3YiIpIGFzIGZvYmo6CisgICAgICAgICAgICB3aXRoIF9vcGVuKHRtcG5hbWUsICJ3IikgYXMgZm9iajoKICAgICAgICAgICAgICAgICBmb2JqLndyaXRlKGNoYXIgKiAxMDI0KQogICAgICAgICAgICAgICAgIGZvYmoud3JpdGUodGFyZmlsZS5UYXJJbmZvKCJmb28iKS50b2J1ZigpKQogCkBAIC0yMjUsNiArMjMwLDEwIEBACiBjbGFzcyBNaXNjUmVhZFRlc3QoQ29tbW9uUmVhZFRlc3QpOgogCiAgICAgZGVmIHRlc3Rfbm9fbmFtZV9hcmd1bWVudChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5tb2RlLmVuZHN3aXRoKCgiYnoyIiwgInh6IikpOgorICAgICAgICAgICAgIyBCWjJGaWxlIGFuZCBMWk1BRmlsZSBoYXZlIG5vIG5hbWUgYXR0cmlidXRlLgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgibm8gbmFtZSBhdHRyaWJ1dGUiKQorCiAgICAgICAgIHdpdGggb3BlbihzZWxmLnRhcm5hbWUsICJyYiIpIGFzIGZvYmo6CiAgICAgICAgICAgICB0YXIgPSB0YXJmaWxlLm9wZW4oZmlsZW9iaj1mb2JqLCBtb2RlPXNlbGYubW9kZSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGFyLm5hbWUsIG9zLnBhdGguYWJzcGF0aChmb2JqLm5hbWUpKQpAQCAtMjU0LDkgKzI2Myw4IEBACiAgICAgICAgICAgICB0ID0gdGFyLm5leHQoKQogICAgICAgICAgICAgbmFtZSA9IHQubmFtZQogICAgICAgICAgICAgb2Zmc2V0ID0gdC5vZmZzZXQKLSAgICAgICAgICAgIGYgPSB0YXIuZXh0cmFjdGZpbGUodCkKLSAgICAgICAgICAgIGRhdGEgPSBmLnJlYWQoKQotICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICAgICB3aXRoIHRhci5leHRyYWN0ZmlsZSh0KSBhcyBmOgorICAgICAgICAgICAgICAgIGRhdGEgPSBmLnJlYWQoKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgdGFyLmNsb3NlKCkKIApAQCAtMjY1LDEwICsyNzMsMTIgQEAKICAgICAgICAgICAgIF9vcGVuID0gZ3ppcC5HemlwRmlsZQogICAgICAgICBlbGlmIHNlbGYubW9kZS5lbmRzd2l0aCgiOmJ6MiIpOgogICAgICAgICAgICAgX29wZW4gPSBiejIuQloyRmlsZQorICAgICAgICBlbGlmIHNlbGYubW9kZS5lbmRzd2l0aCgiOnh6Iik6CisgICAgICAgICAgICBfb3BlbiA9IGx6bWEuTFpNQUZpbGUKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIF9vcGVuID0gb3BlbgotICAgICAgICBmb2JqID0gX29wZW4oc2VsZi50YXJuYW1lLCAicmIiKQotICAgICAgICB0cnk6CisgICAgICAgICAgICBfb3BlbiA9IGlvLkZpbGVJTworCisgICAgICAgIHdpdGggX29wZW4oc2VsZi50YXJuYW1lKSBhcyBmb2JqOgogICAgICAgICAgICAgZm9iai5zZWVrKG9mZnNldCkKIAogICAgICAgICAgICAgIyBUZXN0IGlmIHRoZSB0YXJmaWxlIHN0YXJ0cyB3aXRoIHRoZSBzZWNvbmQgbWVtYmVyLgpAQCAtMjgxLDggKzI5MSw2IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRhci5leHRyYWN0ZmlsZSh0KS5yZWFkKCksIGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICJzZWVrIGJhY2sgZGlkIG5vdCB3b3JrIikKICAgICAgICAgICAgIHRhci5jbG9zZSgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBmb2JqLmNsb3NlKCkKIAogICAgIGRlZiB0ZXN0X2ZhaWxfY29tcChzZWxmKToKICAgICAgICAgIyBGb3IgR3ppcCBhbmQgQnoyIFRlc3RzOiBmYWlsIHdpdGggYSBSZWFkRXJyb3Igb24gYW4gdW5jb21wcmVzc2VkIGZpbGUuCkBAIC00MjgsMjcgKzQzNiwyNiBAQAogICAgICAgICBmb3IgdGFyaW5mbyBpbiBzZWxmLnRhcjoKICAgICAgICAgICAgIGlmIG5vdCB0YXJpbmZvLmlzcmVnKCk6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGZvYmogPSBzZWxmLnRhci5leHRyYWN0ZmlsZSh0YXJpbmZvKQotICAgICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZiA9IGZvYmoucmVhZCg1MTIpCi0gICAgICAgICAgICAgICAgZXhjZXB0IHRhcmZpbGUuU3RyZWFtRXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgic2ltcGxlIHJlYWQtdGhyb3VnaCB1c2luZyBUYXJGaWxlLmV4dHJhY3RmaWxlKCkgZmFpbGVkIikKLSAgICAgICAgICAgICAgICBpZiBub3QgYnVmOgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZm9iai5jbG9zZSgpCisgICAgICAgICAgICB3aXRoIHNlbGYudGFyLmV4dHJhY3RmaWxlKHRhcmluZm8pIGFzIGZvYmo6CisgICAgICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgYnVmID0gZm9iai5yZWFkKDUxMikKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHRhcmZpbGUuU3RyZWFtRXJyb3I6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoInNpbXBsZSByZWFkLXRocm91Z2ggdXNpbmcgVGFyRmlsZS5leHRyYWN0ZmlsZSgpIGZhaWxlZCIpCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBidWY6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogCiAgICAgZGVmIHRlc3RfZmlsZW9ial9yZWd1bGFyX2ZpbGUoc2VsZik6CiAgICAgICAgIHRhcmluZm8gPSBzZWxmLnRhci5uZXh0KCkgIyBnZXQgInJlZ3R5cGUiIChjYW4ndCB1c2UgZ2V0bWVtYmVyKQotICAgICAgICBmb2JqID0gc2VsZi50YXIuZXh0cmFjdGZpbGUodGFyaW5mbykKLSAgICAgICAgZGF0YSA9IGZvYmoucmVhZCgpCisgICAgICAgIHdpdGggc2VsZi50YXIuZXh0cmFjdGZpbGUodGFyaW5mbykgYXMgZm9iajoKKyAgICAgICAgICAgIGRhdGEgPSBmb2JqLnJlYWQoKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoKGxlbihkYXRhKSwgbWQ1c3VtKGRhdGEpKSA9PSAodGFyaW5mby5zaXplLCBtZDVfcmVndHlwZSksCiAgICAgICAgICAgICAgICAgInJlZ3VsYXIgZmlsZSBleHRyYWN0aW9uIGZhaWxlZCIpCiAKICAgICBkZWYgdGVzdF9wcm92b2tlX3N0cmVhbV9lcnJvcihzZWxmKToKICAgICAgICAgdGFyaW5mb3MgPSBzZWxmLnRhci5nZXRtZW1iZXJzKCkKLSAgICAgICAgZiA9IHNlbGYudGFyLmV4dHJhY3RmaWxlKHRhcmluZm9zWzBdKSAjIHJlYWQgdGhlIGZpcnN0IG1lbWJlcgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh0YXJmaWxlLlN0cmVhbUVycm9yLCBmLnJlYWQpCisgICAgICAgIHdpdGggc2VsZi50YXIuZXh0cmFjdGZpbGUodGFyaW5mb3NbMF0pIGFzIGY6ICMgcmVhZCB0aGUgZmlyc3QgbWVtYmVyCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh0YXJmaWxlLlN0cmVhbUVycm9yLCBmLnJlYWQpCiAKICAgICBkZWYgdGVzdF9jb21wYXJlX21lbWJlcnMoc2VsZik6CiAgICAgICAgIHRhcjEgPSB0YXJmaWxlLm9wZW4odGFybmFtZSwgZW5jb2Rpbmc9Imlzbzg4NTktMSIpCkBAIC01MjYsNiArNTMzLDE4IEBACiAgICAgICAgICAgICB0ZXN0ZnVuYyhiejJuYW1lLCAicnwqIikKICAgICAgICAgICAgIHRlc3RmdW5jKGJ6Mm5hbWUsICJyfGJ6MiIpCiAKKyAgICAgICAgaWYgbHptYToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHRhcmZpbGUuUmVhZEVycm9yLCB0YXJmaWxlLm9wZW4sIHRhcm5hbWUsIG1vZGU9InI6eHoiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXModGFyZmlsZS5SZWFkRXJyb3IsIHRhcmZpbGUub3BlbiwgdGFybmFtZSwgbW9kZT0icnx4eiIpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh0YXJmaWxlLlJlYWRFcnJvciwgdGFyZmlsZS5vcGVuLCB4em5hbWUsIG1vZGU9InI6IikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHRhcmZpbGUuUmVhZEVycm9yLCB0YXJmaWxlLm9wZW4sIHh6bmFtZSwgbW9kZT0icnwiKQorCisgICAgICAgICAgICB0ZXN0ZnVuYyh4em5hbWUsICJyIikKKyAgICAgICAgICAgIHRlc3RmdW5jKHh6bmFtZSwgInI6KiIpCisgICAgICAgICAgICB0ZXN0ZnVuYyh4em5hbWUsICJyOnh6IikKKyAgICAgICAgICAgIHRlc3RmdW5jKHh6bmFtZSwgInJ8KiIpCisgICAgICAgICAgICB0ZXN0ZnVuYyh4em5hbWUsICJyfHh6IikKKwogICAgIGRlZiB0ZXN0X2RldGVjdF9maWxlKHNlbGYpOgogICAgICAgICBzZWxmLl90ZXN0X21vZGVzKHNlbGYuX3Rlc3RmdW5jX2ZpbGUpCiAKQEAgLTcyMyw3ICs3NDIsNyBAQAogICAgICAgICAjIFJldHVybiBUcnVlIGlmIHRoZSBwbGF0Zm9ybSBrbm93cyB0aGUgc3RfYmxvY2tzIHN0YXQgYXR0cmlidXRlIGFuZAogICAgICAgICAjIHVzZXMgc3RfYmxvY2tzIHVuaXRzIG9mIDUxMiBieXRlcywgYW5kIGlmIHRoZSBmaWxlc3lzdGVtIGlzIGFibGUgdG8KICAgICAgICAgIyBzdG9yZSBob2xlcyBpbiBmaWxlcy4KLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJsaW51eDIiOgorICAgICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgibGludXgiKToKICAgICAgICAgICAgICMgTGludXggZXZpZGVudGlhbGx5IGhhcyA1MTIgYnl0ZSBzdF9ibG9ja3MgdW5pdHMuCiAgICAgICAgICAgICBuYW1lID0gb3MucGF0aC5qb2luKFRFTVBESVIsICJzcGFyc2UtdGVzdCIpCiAgICAgICAgICAgICB3aXRoIG9wZW4obmFtZSwgIndiIikgYXMgZm9iajoKQEAgLTkxMyw3ICs5MzIsNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmb3IgbmFtZSBpbiAoImZvbyIsICJiYXIiLCAiYmF6Iik6CiAgICAgICAgICAgICAgICAgbmFtZSA9IG9zLnBhdGguam9pbih0ZW1wZGlyLCBuYW1lKQotICAgICAgICAgICAgICAgIG9wZW4obmFtZSwgIndiIikuY2xvc2UoKQorICAgICAgICAgICAgICAgIHN1cHBvcnQuY3JlYXRlX2VtcHR5X2ZpbGUobmFtZSkKIAogICAgICAgICAgICAgZXhjbHVkZSA9IG9zLnBhdGguaXNmaWxlCiAKQEAgLTk0MCw3ICs5NTksNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmb3IgbmFtZSBpbiAoImZvbyIsICJiYXIiLCAiYmF6Iik6CiAgICAgICAgICAgICAgICAgbmFtZSA9IG9zLnBhdGguam9pbih0ZW1wZGlyLCBuYW1lKQotICAgICAgICAgICAgICAgIG9wZW4obmFtZSwgIndiIikuY2xvc2UoKQorICAgICAgICAgICAgICAgIHN1cHBvcnQuY3JlYXRlX2VtcHR5X2ZpbGUobmFtZSkKIAogICAgICAgICAgICAgZGVmIGZpbHRlcih0YXJpbmZvKToKICAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmJhc2VuYW1lKHRhcmluZm8ubmFtZSkgPT0gImJhciI6CkBAIC05NzksNyArOTk4LDcgQEAKICAgICAgICAgIyBhbmQgY29tcGFyZSB0aGUgc3RvcmVkIG5hbWUgd2l0aCB0aGUgb3JpZ2luYWwuCiAgICAgICAgIGZvbyA9IG9zLnBhdGguam9pbihURU1QRElSLCAiZm9vIikKICAgICAgICAgaWYgbm90IGRpcjoKLSAgICAgICAgICAgIG9wZW4oZm9vLCAidyIpLmNsb3NlKCkKKyAgICAgICAgICAgIHN1cHBvcnQuY3JlYXRlX2VtcHR5X2ZpbGUoZm9vKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgb3MubWtkaXIoZm9vKQogCkBAIC0xMDk2LDYgKzExMTUsOSBAQAogICAgICAgICAgICAgZGF0YSA9IGRlYy5kZWNvbXByZXNzKGRhdGEpCiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKGRlYy51bnVzZWRfZGF0YSkgPT0gMCwKICAgICAgICAgICAgICAgICAgICAgImZvdW5kIHRyYWlsaW5nIGRhdGEiKQorICAgICAgICBlbGlmIHNlbGYubW9kZS5lbmRzd2l0aCgieHoiKToKKyAgICAgICAgICAgIHdpdGggbHptYS5MWk1BRmlsZSh0bXBuYW1lKSBhcyBmb2JqOgorICAgICAgICAgICAgICAgIGRhdGEgPSBmb2JqLnJlYWQoKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgd2l0aCBvcGVuKHRtcG5hbWUsICJyYiIpIGFzIGZvYmo6CiAgICAgICAgICAgICAgICAgZGF0YSA9IGZvYmoucmVhZCgpCkBAIC0xMzM5LDcgKzEzNjEsNyBAQAogICAgICAgICBzZWxmLl90ZXN0X3VuaWNvZGVfZmlsZW5hbWUoInV0ZjciKQogCiAgICAgZGVmIHRlc3RfdXRmOF9maWxlbmFtZShzZWxmKToKLSAgICAgICAgc2VsZi5fdGVzdF91bmljb2RlX2ZpbGVuYW1lKCJ1dGY4IikKKyAgICAgICAgc2VsZi5fdGVzdF91bmljb2RlX2ZpbGVuYW1lKCJ1dGYtOCIpCiAKICAgICBkZWYgX3Rlc3RfdW5pY29kZV9maWxlbmFtZShzZWxmLCBlbmNvZGluZyk6CiAgICAgICAgIHRhciA9IHRhcmZpbGUub3Blbih0bXBuYW1lLCAidyIsIGZvcm1hdD1zZWxmLmZvcm1hdCwgZW5jb2Rpbmc9ZW5jb2RpbmcsIGVycm9ycz0ic3RyaWN0IikKQEAgLTE0MTgsNyArMTQ0MCw3IEBACiAgICAgZGVmIHRlc3RfYmFkX3BheF9oZWFkZXIoc2VsZik6CiAgICAgICAgICMgVGVzdCBmb3IgaXNzdWUgIzg2MzMuIEdOVSB0YXIgPD0gMS4yMyBjcmVhdGVzIHJhdyBiaW5hcnkgZmllbGRzCiAgICAgICAgICMgd2l0aG91dCBhIGhkcmNoYXJzZXQ9QklOQVJZIGhlYWRlci4KLSAgICAgICAgZm9yIGVuY29kaW5nLCBuYW1lIGluICgoInV0ZjgiLCAicGF4L2JhZC1wYXgtXHVkY2U0XHVkY2Y2XHVkY2ZjIiksCisgICAgICAgIGZvciBlbmNvZGluZywgbmFtZSBpbiAoKCJ1dGYtOCIsICJwYXgvYmFkLXBheC1cdWRjZTRcdWRjZjZcdWRjZmMiKSwKICAgICAgICAgICAgICAgICAoImlzbzg4NTktMSIsICJwYXgvYmFkLXBheC1ceGU0XHhmNlx4ZmMiKSwpOgogICAgICAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4odGFybmFtZSwgZW5jb2Rpbmc9ZW5jb2RpbmcsIGVycm9ycz0ic3Vycm9nYXRlZXNjYXBlIikgYXMgdGFyOgogICAgICAgICAgICAgICAgIHRyeToKQEAgLTE0MzMsNyArMTQ1NSw3IEBACiAKICAgICBkZWYgdGVzdF9iaW5hcnlfaGVhZGVyKHNlbGYpOgogICAgICAgICAjIFRlc3QgYSBQT1NJWC4xLTIwMDggY29tcGF0aWJsZSBoZWFkZXIgd2l0aCBhIGhkcmNoYXJzZXQ9QklOQVJZIGZpZWxkLgotICAgICAgICBmb3IgZW5jb2RpbmcsIG5hbWUgaW4gKCgidXRmOCIsICJwYXgvaGRyY2hhcnNldC1cdWRjZTRcdWRjZjZcdWRjZmMiKSwKKyAgICAgICAgZm9yIGVuY29kaW5nLCBuYW1lIGluICgoInV0Zi04IiwgInBheC9oZHJjaGFyc2V0LVx1ZGNlNFx1ZGNmNlx1ZGNmYyIpLAogICAgICAgICAgICAgICAgICgiaXNvODg1OS0xIiwgInBheC9oZHJjaGFyc2V0LVx4ZTRceGY2XHhmYyIpLCk6CiAgICAgICAgICAgICB3aXRoIHRhcmZpbGUub3Blbih0YXJuYW1lLCBlbmNvZGluZz1lbmNvZGluZywgZXJyb3JzPSJzdXJyb2dhdGVlc2NhcGUiKSBhcyB0YXI6CiAgICAgICAgICAgICAgICAgdHJ5OgpAQCAtMTQ1OCwxMiArMTQ4MCw5IEBACiAgICAgICAgIHdpdGggdGFyZmlsZS5vcGVuKHRhcm5hbWUsIGVuY29kaW5nPSJpc284ODU5LTEiKSBhcyBzcmM6CiAgICAgICAgICAgICB0ID0gc3JjLmdldG1lbWJlcigidXN0YXIvcmVndHlwZSIpCiAgICAgICAgICAgICB0Lm5hbWUgPSAiZm9vIgotICAgICAgICAgICAgZiA9IHNyYy5leHRyYWN0ZmlsZSh0KQotICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBzcmMuZXh0cmFjdGZpbGUodCkgYXMgZjoKICAgICAgICAgICAgICAgICB3aXRoIHRhcmZpbGUub3BlbihzZWxmLnRhcm5hbWUsIG1vZGUpIGFzIHRhcjoKICAgICAgICAgICAgICAgICAgICAgdGFyLmFkZGZpbGUodCwgZikKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgZi5jbG9zZSgpCiAKICAgICBkZWYgX3Rlc3Qoc2VsZiwgbmFtZXM9WyJiYXIiXSwgZmlsZW9iaj1Ob25lKToKICAgICAgICAgd2l0aCB0YXJmaWxlLm9wZW4oc2VsZi50YXJuYW1lLCBmaWxlb2JqPWZpbGVvYmopIGFzIHRhcjoKQEAgLTE1MTAsNiArMTUyOSwxMiBAQAogICAgICAgICBzZWxmLl9jcmVhdGVfdGVzdHRhcigidzpiejIiKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyh0YXJmaWxlLlJlYWRFcnJvciwgdGFyZmlsZS5vcGVuLCB0bXBuYW1lLCAiYSIpCiAKKyAgICBkZWYgdGVzdF9hcHBlbmRfbHptYShzZWxmKToKKyAgICAgICAgaWYgbHptYSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgibHptYSBtb2R1bGUgbm90IGF2YWlsYWJsZSIpCisgICAgICAgIHNlbGYuX2NyZWF0ZV90ZXN0dGFyKCJ3Onh6IikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXModGFyZmlsZS5SZWFkRXJyb3IsIHRhcmZpbGUub3BlbiwgdG1wbmFtZSwgImEiKQorCiAgICAgIyBBcHBlbmQgbW9kZSBpcyBzdXBwb3NlZCB0byBmYWlsIGlmIHRoZSB0YXJmaWxlIHRvIGFwcGVuZCB0bwogICAgICMgZG9lcyBub3QgZW5kIHdpdGggYSB6ZXJvIGJsb2NrLgogICAgIGRlZiBfdGVzdF9lcnJvcihzZWxmLCBkYXRhKToKQEAgLTE3ODgsNiArMTgxMywyMSBAQAogICAgICAgICBzZWxmLl90ZXN0X3BhcnRpYWxfaW5wdXQoInI6YnoyIikKIAogCitjbGFzcyBMem1hTWlzY1JlYWRUZXN0KE1pc2NSZWFkVGVzdCk6CisgICAgdGFybmFtZSA9IHh6bmFtZQorICAgIG1vZGUgPSAicjp4eiIKK2NsYXNzIEx6bWFVc3RhclJlYWRUZXN0KFVzdGFyUmVhZFRlc3QpOgorICAgIHRhcm5hbWUgPSB4em5hbWUKKyAgICBtb2RlID0gInI6eHoiCitjbGFzcyBMem1hU3RyZWFtUmVhZFRlc3QoU3RyZWFtUmVhZFRlc3QpOgorICAgIHRhcm5hbWUgPSB4em5hbWUKKyAgICBtb2RlID0gInJ8eHoiCitjbGFzcyBMem1hV3JpdGVUZXN0KFdyaXRlVGVzdCk6CisgICAgbW9kZSA9ICJ3Onh6IgorY2xhc3MgTHptYVN0cmVhbVdyaXRlVGVzdChTdHJlYW1Xcml0ZVRlc3QpOgorICAgIG1vZGUgPSAid3x4eiIKKworCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC51bmxpbmsoVEVNUERJUikKICAgICBvcy5tYWtlZGlycyhURU1QRElSKQpAQCAtMTg1MCw2ICsxODkwLDIwIEBACiAgICAgICAgICAgICBCejJQYXJ0aWFsUmVhZFRlc3QsCiAgICAgICAgIF0KIAorICAgIGlmIGx6bWE6CisgICAgICAgICMgQ3JlYXRlIHRlc3R0YXIudGFyLnh6IGFuZCBhZGQgbHptYS1zcGVjaWZpYyB0ZXN0cy4KKyAgICAgICAgc3VwcG9ydC51bmxpbmsoeHpuYW1lKQorICAgICAgICB3aXRoIGx6bWEuTFpNQUZpbGUoeHpuYW1lLCAidyIpIGFzIHRhcjoKKyAgICAgICAgICAgIHRhci53cml0ZShkYXRhKQorCisgICAgICAgIHRlc3RzICs9IFsKKyAgICAgICAgICAgIEx6bWFNaXNjUmVhZFRlc3QsCisgICAgICAgICAgICBMem1hVXN0YXJSZWFkVGVzdCwKKyAgICAgICAgICAgIEx6bWFTdHJlYW1SZWFkVGVzdCwKKyAgICAgICAgICAgIEx6bWFXcml0ZVRlc3QsCisgICAgICAgICAgICBMem1hU3RyZWFtV3JpdGVUZXN0LAorICAgICAgICBdCisKICAgICB0cnk6CiAgICAgICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KCp0ZXN0cykKICAgICBmaW5hbGx5OgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90ZWxuZXRsaWIucHkgYi9MaWIvdGVzdC90ZXN0X3RlbG5ldGxpYi5weQppbmRleCA4NzQxOGY1Li5lNThjMTBmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RlbG5ldGxpYi5weQorKysgYi9MaWIvdGVzdC90ZXN0X3RlbG5ldGxpYi5weQpAQCAtMzUsNiArMzUsNyBAQAogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBzZWxmLnRocmVhZC5qb2luKCkKKyAgICAgICAgZGVsIHNlbGYudGhyZWFkICAjIENsZWFyIG91dCBhbnkgZGFuZ2xpbmcgVGhyZWFkIG9iamVjdHMuCiAKICAgICBkZWYgdGVzdEJhc2ljKHNlbGYpOgogICAgICAgICAjIGNvbm5lY3RzCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3RlbXBmaWxlLnB5IGIvTGliL3Rlc3QvdGVzdF90ZW1wZmlsZS5weQppbmRleCA1MGNmM2I0Li5kNzlmMzE5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RlbXBmaWxlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdGVtcGZpbGUucHkKQEAgLTIxLDcgKzIxLDcgQEAKIAogIyBURVNUX0ZJTEVTIG1heSBuZWVkIHRvIGJlIHR3ZWFrZWQgZm9yIHN5c3RlbXMgZGVwZW5kaW5nIG9uIHRoZSBtYXhpbXVtCiAjIG51bWJlciBvZiBmaWxlcyB0aGF0IGNhbiBiZSBvcGVuZWQgYXQgb25lIHRpbWUgKHNlZSB1bGltaXQgLW4pCi1pZiBzeXMucGxhdGZvcm0gaW4gKCdvcGVuYnNkMycsICdvcGVuYnNkNCcpOgoraWYgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ29wZW5ic2QnKToKICAgICBURVNUX0ZJTEVTID0gNDgKIGVsc2U6CiAgICAgVEVTVF9GSUxFUyA9IDEwMApAQCAtMzEsNyArMzEsNyBAQAogIyB0aHJlYWRzIGlzIG5vdCBkb25lIGhlcmUuCiAKICMgQ29tbW9uIGZ1bmN0aW9uYWxpdHkuCi1jbGFzcyBUQyh1bml0dGVzdC5UZXN0Q2FzZSk6CitjbGFzcyBCYXNlVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgc3RyX2NoZWNrID0gcmUuY29tcGlsZShyIlthLXpBLVowLTlfLV17Nn0kIikKIApAQCAtNDUsMTEgKzQ1LDYgQEAKICAgICAgICAgc2VsZi5fd2FybmluZ3NfbWFuYWdlci5fX2V4aXRfXyhOb25lLCBOb25lLCBOb25lKQogCiAKLSAgICBkZWYgZmFpbE9uRXhjZXB0aW9uKHNlbGYsIHdoYXQsIGVpPU5vbmUpOgotICAgICAgICBpZiBlaSBpcyBOb25lOgotICAgICAgICAgICAgZWkgPSBzeXMuZXhjX2luZm8oKQotICAgICAgICBzZWxmLmZhaWwoIiVzIHJhaXNlZCAlczogJXMiICUgKHdoYXQsIGVpWzBdLCBlaVsxXSkpCi0KICAgICBkZWYgbmFtZUNoZWNrKHNlbGYsIG5hbWUsIGRpciwgcHJlLCBzdWYpOgogICAgICAgICAobmRpciwgbmJhc2UpID0gb3MucGF0aC5zcGxpdChuYW1lKQogICAgICAgICBucHJlICA9IG5iYXNlWzpsZW4ocHJlKV0KQEAgLTY4LDkgKzYzLDggQEAKICAgICAgICAgICAgICAgICAgICAgICJyYW5kb20gc3RyaW5nICclcycgZG9lcyBub3QgbWF0Y2ggL15bYS16QS1aMC05Xy1dezZ9JC8iCiAgICAgICAgICAgICAgICAgICAgICAlIG5iYXNlKQogCi10ZXN0X2NsYXNzZXMgPSBbXQogCi1jbGFzcyB0ZXN0X2V4cG9ydHMoVEMpOgorY2xhc3MgVGVzdEV4cG9ydHMoQmFzZVRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9leHBvcnRzKHNlbGYpOgogICAgICAgICAjIFRoZXJlIGFyZSBubyBzdXJwcmlzaW5nIHN5bWJvbHMgaW4gdGhlIHRlbXBmaWxlIG1vZHVsZQogICAgICAgICBkaWN0ID0gdGVtcGZpbGUuX19kaWN0X18KQEAgLTk3LDEwICs5MSw4IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsZW4odW5leHApID09IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAidW5leHBlY3RlZCBrZXlzOiAlcyIgJSB1bmV4cCkKIAotdGVzdF9jbGFzc2VzLmFwcGVuZCh0ZXN0X2V4cG9ydHMpCiAKLQotY2xhc3MgdGVzdF9fUmFuZG9tTmFtZVNlcXVlbmNlKFRDKToKK2NsYXNzIFRlc3RSYW5kb21OYW1lU2VxdWVuY2UoQmFzZVRlc3RDYXNlKToKICAgICAiIiJUZXN0IHRoZSBpbnRlcm5hbCBpdGVyYXRvciBvYmplY3QgX1JhbmRvbU5hbWVTZXF1ZW5jZS4iIiIKIAogICAgIGRlZiBzZXRVcChzZWxmKToKQEAgLTEyOCwxMyArMTIwLDEwIEBACiAKICAgICAgICAgaSA9IDAKICAgICAgICAgciA9IHNlbGYucgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmb3IgcyBpbiByOgotICAgICAgICAgICAgICAgIGkgKz0gMQotICAgICAgICAgICAgICAgIGlmIGkgPT0gMjA6Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHNlbGYuZmFpbE9uRXhjZXB0aW9uKCJpdGVyYXRpb24iKQorICAgICAgICBmb3IgcyBpbiByOgorICAgICAgICAgICAgaSArPSAxCisgICAgICAgICAgICBpZiBpID09IDIwOgorICAgICAgICAgICAgICAgIGJyZWFrCiAKICAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKG9zLCAnZm9yaycpLAogICAgICAgICAib3MuZm9yayBpcyByZXF1aXJlZCBmb3IgdGhpcyB0ZXN0IikKQEAgLTE2NywxMCArMTU2LDggQEAKICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChjaGlsZF92YWx1ZSwgcGFyZW50X3ZhbHVlKQogCiAKLXRlc3RfY2xhc3Nlcy5hcHBlbmQodGVzdF9fUmFuZG9tTmFtZVNlcXVlbmNlKQogCi0KLWNsYXNzIHRlc3RfX2NhbmRpZGF0ZV90ZW1wZGlyX2xpc3QoVEMpOgorY2xhc3MgVGVzdENhbmRpZGF0ZVRlbXBkaXJMaXN0KEJhc2VUZXN0Q2FzZSk6CiAgICAgIiIiVGVzdCB0aGUgaW50ZXJuYWwgZnVuY3Rpb24gX2NhbmRpZGF0ZV90ZW1wZGlyX2xpc3QuIiIiCiAKICAgICBkZWYgdGVzdF9ub25lbXB0eV9saXN0KHNlbGYpOgpAQCAtMjA5LDEzICsxOTYsMTEgQEAKICAgICAgICAgICAgICMgTm90IHByYWN0aWNhbCB0byB0cnkgdG8gdmVyaWZ5IHRoZSBwcmVzZW5jZSBvZiBPUy1zcGVjaWZpYwogICAgICAgICAgICAgIyBwYXRocyBpbiB0aGlzIGxpc3QuCiAKLXRlc3RfY2xhc3Nlcy5hcHBlbmQodGVzdF9fY2FuZGlkYXRlX3RlbXBkaXJfbGlzdCkKLQogCiAjIFdlIHRlc3QgX2dldF9kZWZhdWx0X3RlbXBkaXIgYnkgdGVzdGluZyBnZXR0ZW1wZGlyLgogCiAKLWNsYXNzIHRlc3RfX2dldF9jYW5kaWRhdGVfbmFtZXMoVEMpOgorY2xhc3MgVGVzdEdldENhbmRpZGF0ZU5hbWVzKEJhc2VUZXN0Q2FzZSk6CiAgICAgIiIiVGVzdCB0aGUgaW50ZXJuYWwgZnVuY3Rpb24gX2dldF9jYW5kaWRhdGVfbmFtZXMuIiIiCiAKICAgICBkZWYgdGVzdF9yZXR2YWwoc2VsZik6CkBAIC0yMzAsMTAgKzIxNSw4IEBACiAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGEgaXMgYikKIAotdGVzdF9jbGFzc2VzLmFwcGVuZCh0ZXN0X19nZXRfY2FuZGlkYXRlX25hbWVzKQogCi0KLWNsYXNzIHRlc3RfX21rc3RlbXBfaW5uZXIoVEMpOgorY2xhc3MgVGVzdE1rc3RlbXBJbm5lcihCYXNlVGVzdENhc2UpOgogICAgICIiIlRlc3QgdGhlIGludGVybmFsIGZ1bmN0aW9uIF9ta3N0ZW1wX2lubmVyLiIiIgogCiAgICAgY2xhc3MgbWtzdGVtcGVkOgpAQCAtMjU4LDEwICsyNDEsNyBAQAogICAgIGRlZiBkb19jcmVhdGUoc2VsZiwgZGlyPU5vbmUsIHByZT0iIiwgc3VmPSIiLCBiaW49MSk6CiAgICAgICAgIGlmIGRpciBpcyBOb25lOgogICAgICAgICAgICAgZGlyID0gdGVtcGZpbGUuZ2V0dGVtcGRpcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZpbGUgPSBzZWxmLm1rc3RlbXBlZChkaXIsIHByZSwgc3VmLCBiaW4pCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHNlbGYuZmFpbE9uRXhjZXB0aW9uKCJfbWtzdGVtcF9pbm5lciIpCisgICAgICAgIGZpbGUgPSBzZWxmLm1rc3RlbXBlZChkaXIsIHByZSwgc3VmLCBiaW4pCiAKICAgICAgICAgc2VsZi5uYW1lQ2hlY2soZmlsZS5uYW1lLCBkaXIsIHByZSwgc3VmKQogICAgICAgICByZXR1cm4gZmlsZQpAQCAtMzUzLDEwICszMzMsOCBAQAogICAgICAgICBvcy5sc2VlayhmLmZkLCAwLCBvcy5TRUVLX1NFVCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcy5yZWFkKGYuZmQsIDIwKSwgYiJibGF0IikKIAotdGVzdF9jbGFzc2VzLmFwcGVuZCh0ZXN0X19ta3N0ZW1wX2lubmVyKQogCi0KLWNsYXNzIHRlc3RfZ2V0dGVtcHByZWZpeChUQyk6CitjbGFzcyBUZXN0R2V0VGVtcFByZWZpeChCYXNlVGVzdENhc2UpOgogICAgICIiIlRlc3QgZ2V0dGVtcHByZWZpeCgpLiIiIgogCiAgICAgZGVmIHRlc3Rfc2FuZV90ZW1wbGF0ZShzZWxmKToKQEAgLTM3NiwxOSArMzU0LDE0IEBACiAgICAgICAgIGQgPSB0ZW1wZmlsZS5ta2R0ZW1wKHByZWZpeD0iIikKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcCA9IG9zLnBhdGguam9pbihkLCBwKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGZkID0gb3Mub3BlbihwLCBvcy5PX1JEV1IgfCBvcy5PX0NSRUFUKQotICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbE9uRXhjZXB0aW9uKCJvcy5vcGVuIikKKyAgICAgICAgICAgIGZkID0gb3Mub3BlbihwLCBvcy5PX1JEV1IgfCBvcy5PX0NSRUFUKQogICAgICAgICAgICAgb3MuY2xvc2UoZmQpCiAgICAgICAgICAgICBvcy51bmxpbmsocCkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIG9zLnJtZGlyKGQpCiAKLXRlc3RfY2xhc3Nlcy5hcHBlbmQodGVzdF9nZXR0ZW1wcHJlZml4KQogCi0KLWNsYXNzIHRlc3RfZ2V0dGVtcGRpcihUQyk6CitjbGFzcyBUZXN0R2V0VGVtcERpcihCYXNlVGVzdENhc2UpOgogICAgICIiIlRlc3QgZ2V0dGVtcGRpcigpLiIiIgogCiAgICAgZGVmIHRlc3RfZGlyZWN0b3J5X2V4aXN0cyhzZWxmKToKQEAgLTQwNiwxMiArMzc5LDkgQEAKICAgICAgICAgIyBzbmVha3k6IGp1c3QgaW5zdGFudGlhdGUgYSBOYW1lZFRlbXBvcmFyeUZpbGUsIHdoaWNoCiAgICAgICAgICMgZGVmYXVsdHMgdG8gd3JpdGluZyBpbnRvIHRoZSBkaXJlY3RvcnkgcmV0dXJuZWQgYnkKICAgICAgICAgIyBnZXR0ZW1wZGlyLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmaWxlID0gdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKCkKLSAgICAgICAgICAgIGZpbGUud3JpdGUoYiJibGF0IikKLSAgICAgICAgICAgIGZpbGUuY2xvc2UoKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBzZWxmLmZhaWxPbkV4Y2VwdGlvbigiY3JlYXRlIGZpbGUgaW4gJXMiICUgdGVtcGZpbGUuZ2V0dGVtcGRpcigpKQorICAgICAgICBmaWxlID0gdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKCkKKyAgICAgICAgZmlsZS53cml0ZShiImJsYXQiKQorICAgICAgICBmaWxlLmNsb3NlKCkKIAogICAgIGRlZiB0ZXN0X3NhbWVfdGhpbmcoc2VsZik6CiAgICAgICAgICMgZ2V0dGVtcGRpciBhbHdheXMgcmV0dXJucyB0aGUgc2FtZSBvYmplY3QKQEAgLTQyMCwyMyArMzkwLDE4IEBACiAKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGEgaXMgYikKIAotdGVzdF9jbGFzc2VzLmFwcGVuZCh0ZXN0X2dldHRlbXBkaXIpCiAKLQotY2xhc3MgdGVzdF9ta3N0ZW1wKFRDKToKK2NsYXNzIFRlc3RNa3N0ZW1wKEJhc2VUZXN0Q2FzZSk6CiAgICAgIiIiVGVzdCBta3N0ZW1wKCkuIiIiCiAKICAgICBkZWYgZG9fY3JlYXRlKHNlbGYsIGRpcj1Ob25lLCBwcmU9IiIsIHN1Zj0iIik6CiAgICAgICAgIGlmIGRpciBpcyBOb25lOgogICAgICAgICAgICAgZGlyID0gdGVtcGZpbGUuZ2V0dGVtcGRpcigpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIChmZCwgbmFtZSkgPSB0ZW1wZmlsZS5ta3N0ZW1wKGRpcj1kaXIsIHByZWZpeD1wcmUsIHN1ZmZpeD1zdWYpCi0gICAgICAgICAgICAobmRpciwgbmJhc2UpID0gb3MucGF0aC5zcGxpdChuYW1lKQotICAgICAgICAgICAgYWRpciA9IG9zLnBhdGguYWJzcGF0aChkaXIpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkaXIsIG5kaXIsCi0gICAgICAgICAgICAgICAgIkRpcmVjdG9yeSAnJXMnIGluY29ycmVjdGx5IHJldHVybmVkIGFzICclcyciICUgKGFkaXIsIG5kaXIpKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBzZWxmLmZhaWxPbkV4Y2VwdGlvbigibWtzdGVtcCIpCisgICAgICAgIChmZCwgbmFtZSkgPSB0ZW1wZmlsZS5ta3N0ZW1wKGRpcj1kaXIsIHByZWZpeD1wcmUsIHN1ZmZpeD1zdWYpCisgICAgICAgIChuZGlyLCBuYmFzZSkgPSBvcy5wYXRoLnNwbGl0KG5hbWUpCisgICAgICAgIGFkaXIgPSBvcy5wYXRoLmFic3BhdGgoZGlyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFkaXIsIG5kaXIsCisgICAgICAgICAgICAiRGlyZWN0b3J5ICclcycgaW5jb3JyZWN0bHkgcmV0dXJuZWQgYXMgJyVzJyIgJSAoYWRpciwgbmRpcikpCiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5uYW1lQ2hlY2sobmFtZSwgZGlyLCBwcmUsIHN1ZikKQEAgLTQ2MSwxOSArNDI2LDE0IEBACiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBvcy5ybWRpcihkaXIpCiAKLXRlc3RfY2xhc3Nlcy5hcHBlbmQodGVzdF9ta3N0ZW1wKQogCi0KLWNsYXNzIHRlc3RfbWtkdGVtcChUQyk6CitjbGFzcyBUZXN0TWtkdGVtcChCYXNlVGVzdENhc2UpOgogICAgICIiIlRlc3QgbWtkdGVtcCgpLiIiIgogCiAgICAgZGVmIGRvX2NyZWF0ZShzZWxmLCBkaXI9Tm9uZSwgcHJlPSIiLCBzdWY9IiIpOgogICAgICAgICBpZiBkaXIgaXMgTm9uZToKICAgICAgICAgICAgIGRpciA9IHRlbXBmaWxlLmdldHRlbXBkaXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBuYW1lID0gdGVtcGZpbGUubWtkdGVtcChkaXI9ZGlyLCBwcmVmaXg9cHJlLCBzdWZmaXg9c3VmKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBzZWxmLmZhaWxPbkV4Y2VwdGlvbigibWtkdGVtcCIpCisgICAgICAgIG5hbWUgPSB0ZW1wZmlsZS5ta2R0ZW1wKGRpcj1kaXIsIHByZWZpeD1wcmUsIHN1ZmZpeD1zdWYpCiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5uYW1lQ2hlY2sobmFtZSwgZGlyLCBwcmUsIHN1ZikKQEAgLTUyOCwxMCArNDg4LDggQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIG9zLnJtZGlyKGRpcikKIAotdGVzdF9jbGFzc2VzLmFwcGVuZCh0ZXN0X21rZHRlbXApCiAKLQotY2xhc3MgdGVzdF9ta3RlbXAoVEMpOgorY2xhc3MgVGVzdE1rdGVtcChCYXNlVGVzdENhc2UpOgogICAgICIiIlRlc3QgbWt0ZW1wKCkuIiIiCiAKICAgICAjIEZvciBzYWZldHksIGFsbCB1c2Ugb2YgbWt0ZW1wIG11c3Qgb2NjdXIgaW4gYSBwcml2YXRlIGRpcmVjdG9yeS4KQEAgLTU2MCwxMCArNTE4LDcgQEAKICAgICAgICAgICAgIHNlbGYuX3VubGluayhzZWxmLm5hbWUpCiAKICAgICBkZWYgZG9fY3JlYXRlKHNlbGYsIHByZT0iIiwgc3VmPSIiKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZmlsZSA9IHNlbGYubWt0ZW1wZWQoc2VsZi5kaXIsIHByZSwgc3VmKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBzZWxmLmZhaWxPbkV4Y2VwdGlvbigibWt0ZW1wIikKKyAgICAgICAgZmlsZSA9IHNlbGYubWt0ZW1wZWQoc2VsZi5kaXIsIHByZSwgc3VmKQogCiAgICAgICAgIHNlbGYubmFtZUNoZWNrKGZpbGUubmFtZSwgc2VsZi5kaXIsIHByZSwgc3VmKQogICAgICAgICByZXR1cm4gZmlsZQpAQCAtNTkwLDIzICs1NDUsMTggQEAKICMjICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZVdhcm5pbmcsCiAjIyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBmaWxlLm1rdGVtcCwgZGlyPXNlbGYuZGlyKQogCi10ZXN0X2NsYXNzZXMuYXBwZW5kKHRlc3RfbWt0ZW1wKQotCiAKICMgV2UgdGVzdCBfVGVtcG9yYXJ5RmlsZVdyYXBwZXIgYnkgdGVzdGluZyBOYW1lZFRlbXBvcmFyeUZpbGUuCiAKIAotY2xhc3MgdGVzdF9OYW1lZFRlbXBvcmFyeUZpbGUoVEMpOgorY2xhc3MgVGVzdE5hbWVkVGVtcG9yYXJ5RmlsZShCYXNlVGVzdENhc2UpOgogICAgICIiIlRlc3QgTmFtZWRUZW1wb3JhcnlGaWxlKCkuIiIiCiAKICAgICBkZWYgZG9fY3JlYXRlKHNlbGYsIGRpcj1Ob25lLCBwcmU9IiIsIHN1Zj0iIiwgZGVsZXRlPVRydWUpOgogICAgICAgICBpZiBkaXIgaXMgTm9uZToKICAgICAgICAgICAgIGRpciA9IHRlbXBmaWxlLmdldHRlbXBkaXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmaWxlID0gdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKGRpcj1kaXIsIHByZWZpeD1wcmUsIHN1ZmZpeD1zdWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZT1kZWxldGUpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHNlbGYuZmFpbE9uRXhjZXB0aW9uKCJOYW1lZFRlbXBvcmFyeUZpbGUiKQorICAgICAgICBmaWxlID0gdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKGRpcj1kaXIsIHByZWZpeD1wcmUsIHN1ZmZpeD1zdWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlPWRlbGV0ZSkKIAogICAgICAgICBzZWxmLm5hbWVDaGVjayhmaWxlLm5hbWUsIGRpciwgcHJlLCBzdWYpCiAgICAgICAgIHJldHVybiBmaWxlCkBAIC02NTksMTEgKzYwOSw4IEBACiAgICAgICAgIGYgPSB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoKQogICAgICAgICBmLndyaXRlKGInYWJjXG4nKQogICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgc2VsZi5mYWlsT25FeGNlcHRpb24oImNsb3NlIikKKyAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIGYuY2xvc2UoKQogCiAgICAgZGVmIHRlc3RfY29udGV4dF9tYW5hZ2VyKHNlbGYpOgogICAgICAgICAjIEEgTmFtZWRUZW1wb3JhcnlGaWxlIGNhbiBiZSB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyCkBAIC02NzcsMTggKzYyNCwxNCBAQAogCiAgICAgIyBIb3cgdG8gdGVzdCB0aGUgbW9kZSBhbmQgYnVmc2l6ZSBwYXJhbWV0ZXJzPwogCi10ZXN0X2NsYXNzZXMuYXBwZW5kKHRlc3RfTmFtZWRUZW1wb3JhcnlGaWxlKQogCi1jbGFzcyB0ZXN0X1Nwb29sZWRUZW1wb3JhcnlGaWxlKFRDKToKK2NsYXNzIFRlc3RTcG9vbGVkVGVtcG9yYXJ5RmlsZShCYXNlVGVzdENhc2UpOgogICAgICIiIlRlc3QgU3Bvb2xlZFRlbXBvcmFyeUZpbGUoKS4iIiIKIAogICAgIGRlZiBkb19jcmVhdGUoc2VsZiwgbWF4X3NpemU9MCwgZGlyPU5vbmUsIHByZT0iIiwgc3VmPSIiKToKICAgICAgICAgaWYgZGlyIGlzIE5vbmU6CiAgICAgICAgICAgICBkaXIgPSB0ZW1wZmlsZS5nZXR0ZW1wZGlyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZmlsZSA9IHRlbXBmaWxlLlNwb29sZWRUZW1wb3JhcnlGaWxlKG1heF9zaXplPW1heF9zaXplLCBkaXI9ZGlyLCBwcmVmaXg9cHJlLCBzdWZmaXg9c3VmKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBzZWxmLmZhaWxPbkV4Y2VwdGlvbigiU3Bvb2xlZFRlbXBvcmFyeUZpbGUiKQorICAgICAgICBmaWxlID0gdGVtcGZpbGUuU3Bvb2xlZFRlbXBvcmFyeUZpbGUobWF4X3NpemU9bWF4X3NpemUsIGRpcj1kaXIsIHByZWZpeD1wcmUsIHN1ZmZpeD1zdWYpCiAKICAgICAgICAgcmV0dXJuIGZpbGUKIApAQCAtNzc2LDExICs3MTksOCBAQAogICAgICAgICBmLndyaXRlKGInYWJjXG4nKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGYuX3JvbGxlZCkKICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGYuY2xvc2UoKQotICAgICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHNlbGYuZmFpbE9uRXhjZXB0aW9uKCJjbG9zZSIpCisgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBmLmNsb3NlKCkKIAogICAgIGRlZiB0ZXN0X211bHRpcGxlX2Nsb3NlX2FmdGVyX3JvbGxvdmVyKHNlbGYpOgogICAgICAgICAjIEEgU3Bvb2xlZFRlbXBvcmFyeUZpbGUgY2FuIGJlIGNsb3NlZCBtYW55IHRpbWVzIHdpdGhvdXQgZXJyb3IKQEAgLTc4OCwxMSArNzI4LDggQEAKICAgICAgICAgZi53cml0ZShiJ2FiY1xuJykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGYuX3JvbGxlZCkKICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGYuY2xvc2UoKQotICAgICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHNlbGYuZmFpbE9uRXhjZXB0aW9uKCJjbG9zZSIpCisgICAgICAgIGYuY2xvc2UoKQorICAgICAgICBmLmNsb3NlKCkKIAogICAgIGRlZiB0ZXN0X2JvdW5kX21ldGhvZHMoc2VsZik6CiAgICAgICAgICMgSXQgc2hvdWxkIGJlIE9LIHRvIHN0ZWFsIGEgYm91bmQgbWV0aG9kIGZyb20gYSBTcG9vbGVkVGVtcG9yYXJ5RmlsZQpAQCAtODc4LDY2ICs4MTUsNzYgQEAKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHVzZV9jbG9zZWQpCiAKLQotdGVzdF9jbGFzc2VzLmFwcGVuZCh0ZXN0X1Nwb29sZWRUZW1wb3JhcnlGaWxlKQotCi0KLWNsYXNzIHRlc3RfVGVtcG9yYXJ5RmlsZShUQyk6Ci0gICAgIiIiVGVzdCBUZW1wb3JhcnlGaWxlKCkuIiIiCi0KLSAgICBkZWYgdGVzdF9iYXNpYyhzZWxmKToKLSAgICAgICAgIyBUZW1wb3JhcnlGaWxlIGNhbiBjcmVhdGUgZmlsZXMKLSAgICAgICAgIyBObyBwb2ludCBpbiB0ZXN0aW5nIHRoZSBuYW1lIHBhcmFtcyAtIHRoZSBmaWxlIGhhcyBubyBuYW1lLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0ZW1wZmlsZS5UZW1wb3JhcnlGaWxlKCkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgc2VsZi5mYWlsT25FeGNlcHRpb24oIlRlbXBvcmFyeUZpbGUiKQotCi0gICAgZGVmIHRlc3RfaGFzX25vX25hbWUoc2VsZik6Ci0gICAgICAgICMgVGVtcG9yYXJ5RmlsZSBjcmVhdGVzIGZpbGVzIHdpdGggbm8gbmFtZXMgKG9uIHRoaXMgc3lzdGVtKQotICAgICAgICBkaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAgICAgZiA9IHRlbXBmaWxlLlRlbXBvcmFyeUZpbGUoZGlyPWRpcikKLSAgICAgICAgZi53cml0ZShiJ2JsYXQnKQotCi0gICAgICAgICMgU25lYWt5OiBiZWNhdXNlIHRoaXMgZmlsZSBoYXMgbm8gbmFtZSwgaXQgc2hvdWxkIG5vdCBwcmV2ZW50Ci0gICAgICAgICMgdXMgZnJvbSByZW1vdmluZyB0aGUgZGlyZWN0b3J5IGl0IHdhcyBjcmVhdGVkIGluLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBvcy5ybWRpcihkaXIpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIGVpID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgICAgICMgY2xlYW51cAotICAgICAgICAgICAgZi5jbG9zZSgpCi0gICAgICAgICAgICBvcy5ybWRpcihkaXIpCi0gICAgICAgICAgICBzZWxmLmZhaWxPbkV4Y2VwdGlvbigicm1kaXIiLCBlaSkKLQotICAgIGRlZiB0ZXN0X211bHRpcGxlX2Nsb3NlKHNlbGYpOgotICAgICAgICAjIEEgVGVtcG9yYXJ5RmlsZSBjYW4gYmUgY2xvc2VkIG1hbnkgdGltZXMgd2l0aG91dCBlcnJvcgotICAgICAgICBmID0gdGVtcGZpbGUuVGVtcG9yYXJ5RmlsZSgpCi0gICAgICAgIGYud3JpdGUoYidhYmNcbicpCi0gICAgICAgIGYuY2xvc2UoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmLmNsb3NlKCkKLSAgICAgICAgICAgIGYuY2xvc2UoKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBzZWxmLmZhaWxPbkV4Y2VwdGlvbigiY2xvc2UiKQotCi0gICAgIyBIb3cgdG8gdGVzdCB0aGUgbW9kZSBhbmQgYnVmc2l6ZSBwYXJhbWV0ZXJzPwotICAgIGRlZiB0ZXN0X21vZGVfYW5kX2VuY29kaW5nKHNlbGYpOgotCi0gICAgICAgIGRlZiByb3VuZHRyaXAoaW5wdXQsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICAgICB3aXRoIHRlbXBmaWxlLlRlbXBvcmFyeUZpbGUoKmFyZ3MsICoqa3dhcmdzKSBhcyBmaWxlb2JqOgotICAgICAgICAgICAgICAgIGZpbGVvYmoud3JpdGUoaW5wdXQpCi0gICAgICAgICAgICAgICAgZmlsZW9iai5zZWVrKDApCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbnB1dCwgZmlsZW9iai5yZWFkKCkpCi0KLSAgICAgICAgcm91bmR0cmlwKGIiMTIzNCIsICJ3K2IiKQotICAgICAgICByb3VuZHRyaXAoImFiZGNcbiIsICJ3KyIpCi0gICAgICAgIHJvdW5kdHJpcCgiXHUwMzlCIiwgIncrIiwgZW5jb2Rpbmc9InV0Zi0xNiIpCi0gICAgICAgIHJvdW5kdHJpcCgiZm9vXHJcbiIsICJ3KyIsIG5ld2xpbmU9IiIpCisgICAgZGVmIHRlc3RfdHJ1bmNhdGVfd2l0aF9zaXplX3BhcmFtZXRlcihzZWxmKToKKyAgICAgICAgIyBBIFNwb29sZWRUZW1wb3JhcnlGaWxlIGNhbiBiZSB0cnVuY2F0ZWQgdG8gemVybyBzaXplCisgICAgICAgIGYgPSB0ZW1wZmlsZS5TcG9vbGVkVGVtcG9yYXJ5RmlsZShtYXhfc2l6ZT0xMCkKKyAgICAgICAgZi53cml0ZShiJ2FiY2RlZmdcbicpCisgICAgICAgIGYuc2VlaygwKQorICAgICAgICBmLnRydW5jYXRlKCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShmLl9yb2xsZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZi5fZmlsZS5nZXR2YWx1ZSgpLCBiJycpCisgICAgICAgICMgQSBTcG9vbGVkVGVtcG9yYXJ5RmlsZSBjYW4gYmUgdHJ1bmNhdGVkIHRvIGEgc3BlY2lmaWMgc2l6ZQorICAgICAgICBmID0gdGVtcGZpbGUuU3Bvb2xlZFRlbXBvcmFyeUZpbGUobWF4X3NpemU9MTApCisgICAgICAgIGYud3JpdGUoYidhYmNkZWZnXG4nKQorICAgICAgICBmLnRydW5jYXRlKDQpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZi5fcm9sbGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGYuX2ZpbGUuZ2V0dmFsdWUoKSwgYidhYmNkJykKKyAgICAgICAgIyBBIFNwb29sZWRUZW1wb3JhcnlGaWxlIHJvbGxzIG92ZXIgaWYgdHJ1bmNhdGVkIHRvIGxhcmdlIHNpemUKKyAgICAgICAgZiA9IHRlbXBmaWxlLlNwb29sZWRUZW1wb3JhcnlGaWxlKG1heF9zaXplPTEwKQorICAgICAgICBmLndyaXRlKGInYWJjZGVmZ1xuJykKKyAgICAgICAgZi50cnVuY2F0ZSgyMCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGYuX3JvbGxlZCkKKyAgICAgICAgaWYgaGFzX3N0YXQ6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLmZzdGF0KGYuZmlsZW5vKCkpLnN0X3NpemUsIDIwKQogCiAKIGlmIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZSBpcyBub3QgdGVtcGZpbGUuVGVtcG9yYXJ5RmlsZToKLSAgICB0ZXN0X2NsYXNzZXMuYXBwZW5kKHRlc3RfVGVtcG9yYXJ5RmlsZSkKKworICAgIGNsYXNzIFRlc3RUZW1wb3JhcnlGaWxlKEJhc2VUZXN0Q2FzZSk6CisgICAgICAgICIiIlRlc3QgVGVtcG9yYXJ5RmlsZSgpLiIiIgorCisgICAgICAgIGRlZiB0ZXN0X2Jhc2ljKHNlbGYpOgorICAgICAgICAgICAgIyBUZW1wb3JhcnlGaWxlIGNhbiBjcmVhdGUgZmlsZXMKKyAgICAgICAgICAgICMgTm8gcG9pbnQgaW4gdGVzdGluZyB0aGUgbmFtZSBwYXJhbXMgLSB0aGUgZmlsZSBoYXMgbm8gbmFtZS4KKyAgICAgICAgICAgIHRlbXBmaWxlLlRlbXBvcmFyeUZpbGUoKQorCisgICAgICAgIGRlZiB0ZXN0X2hhc19ub19uYW1lKHNlbGYpOgorICAgICAgICAgICAgIyBUZW1wb3JhcnlGaWxlIGNyZWF0ZXMgZmlsZXMgd2l0aCBubyBuYW1lcyAob24gdGhpcyBzeXN0ZW0pCisgICAgICAgICAgICBkaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICAgICAgICAgIGYgPSB0ZW1wZmlsZS5UZW1wb3JhcnlGaWxlKGRpcj1kaXIpCisgICAgICAgICAgICBmLndyaXRlKGInYmxhdCcpCisKKyAgICAgICAgICAgICMgU25lYWt5OiBiZWNhdXNlIHRoaXMgZmlsZSBoYXMgbm8gbmFtZSwgaXQgc2hvdWxkIG5vdCBwcmV2ZW50CisgICAgICAgICAgICAjIHVzIGZyb20gcmVtb3ZpbmcgdGhlIGRpcmVjdG9yeSBpdCB3YXMgY3JlYXRlZCBpbi4KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBvcy5ybWRpcihkaXIpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgIyBjbGVhbnVwCisgICAgICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICAgICAgICAgb3Mucm1kaXIoZGlyKQorICAgICAgICAgICAgICAgIHJhaXNlCisKKyAgICAgICAgZGVmIHRlc3RfbXVsdGlwbGVfY2xvc2Uoc2VsZik6CisgICAgICAgICAgICAjIEEgVGVtcG9yYXJ5RmlsZSBjYW4gYmUgY2xvc2VkIG1hbnkgdGltZXMgd2l0aG91dCBlcnJvcgorICAgICAgICAgICAgZiA9IHRlbXBmaWxlLlRlbXBvcmFyeUZpbGUoKQorICAgICAgICAgICAgZi53cml0ZShiJ2FiY1xuJykKKyAgICAgICAgICAgIGYuY2xvc2UoKQorICAgICAgICAgICAgZi5jbG9zZSgpCisgICAgICAgICAgICBmLmNsb3NlKCkKKworICAgICAgICAjIEhvdyB0byB0ZXN0IHRoZSBtb2RlIGFuZCBidWZzaXplIHBhcmFtZXRlcnM/CisgICAgICAgIGRlZiB0ZXN0X21vZGVfYW5kX2VuY29kaW5nKHNlbGYpOgorCisgICAgICAgICAgICBkZWYgcm91bmR0cmlwKGlucHV0LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgIHdpdGggdGVtcGZpbGUuVGVtcG9yYXJ5RmlsZSgqYXJncywgKiprd2FyZ3MpIGFzIGZpbGVvYmo6CisgICAgICAgICAgICAgICAgICAgIGZpbGVvYmoud3JpdGUoaW5wdXQpCisgICAgICAgICAgICAgICAgICAgIGZpbGVvYmouc2VlaygwKQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlucHV0LCBmaWxlb2JqLnJlYWQoKSkKKworICAgICAgICAgICAgcm91bmR0cmlwKGIiMTIzNCIsICJ3K2IiKQorICAgICAgICAgICAgcm91bmR0cmlwKCJhYmRjXG4iLCAidysiKQorICAgICAgICAgICAgcm91bmR0cmlwKCJcdTAzOUIiLCAidysiLCBlbmNvZGluZz0idXRmLTE2IikKKyAgICAgICAgICAgIHJvdW5kdHJpcCgiZm9vXHJcbiIsICJ3KyIsIG5ld2xpbmU9IiIpCiAKIAogIyBIZWxwZXIgZm9yIHRlc3RfZGVsX29uX3NodXRkb3duCkBAIC05NTYsMTYgKzkwMywxMyBAQAogICAgICAgICAgICAgZC5jbGVhcigpCiAgICAgICAgICAgICBkLnVwZGF0ZShjKQogCi1jbGFzcyB0ZXN0X1RlbXBvcmFyeURpcmVjdG9yeShUQyk6CitjbGFzcyBUZXN0VGVtcG9yYXJ5RGlyZWN0b3J5KEJhc2VUZXN0Q2FzZSk6CiAgICAgIiIiVGVzdCBUZW1wb3JhcnlEaXJlY3RvcnkoKS4iIiIKIAogICAgIGRlZiBkb19jcmVhdGUoc2VsZiwgZGlyPU5vbmUsIHByZT0iIiwgc3VmPSIiLCByZWN1cnNlPTEpOgogICAgICAgICBpZiBkaXIgaXMgTm9uZToKICAgICAgICAgICAgIGRpciA9IHRlbXBmaWxlLmdldHRlbXBkaXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0bXAgPSB0ZW1wZmlsZS5UZW1wb3JhcnlEaXJlY3RvcnkoZGlyPWRpciwgcHJlZml4PXByZSwgc3VmZml4PXN1ZikKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgc2VsZi5mYWlsT25FeGNlcHRpb24oIlRlbXBvcmFyeURpcmVjdG9yeSIpCisgICAgICAgIHRtcCA9IHRlbXBmaWxlLlRlbXBvcmFyeURpcmVjdG9yeShkaXI9ZGlyLCBwcmVmaXg9cHJlLCBzdWZmaXg9c3VmKQogICAgICAgICBzZWxmLm5hbWVDaGVjayh0bXAubmFtZSwgZGlyLCBwcmUsIHN1ZikKICAgICAgICAgIyBDcmVhdGUgYSBzdWJkaXJlY3RvcnkgYW5kIHNvbWUgZmlsZXMKICAgICAgICAgaWYgcmVjdXJzZToKQEAgLTEwODksMTEgKzEwMzMsOCBAQAogICAgICAgICAjIENhbiBiZSBjbGVhbmVkLXVwIG1hbnkgdGltZXMgd2l0aG91dCBlcnJvcgogICAgICAgICBkID0gc2VsZi5kb19jcmVhdGUoKQogICAgICAgICBkLmNsZWFudXAoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkLmNsZWFudXAoKQotICAgICAgICAgICAgZC5jbGVhbnVwKCkKLSAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgc2VsZi5mYWlsT25FeGNlcHRpb24oImNsZWFudXAiKQorICAgICAgICBkLmNsZWFudXAoKQorICAgICAgICBkLmNsZWFudXAoKQogCiAgICAgZGVmIHRlc3RfY29udGV4dF9tYW5hZ2VyKHNlbGYpOgogICAgICAgICAjIENhbiBiZSB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyCkBAIC0xMTA0LDEwICsxMDQ1LDggQEAKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmV4aXN0cyhuYW1lKSkKIAogCi10ZXN0X2NsYXNzZXMuYXBwZW5kKHRlc3RfVGVtcG9yYXJ5RGlyZWN0b3J5KQotCiBkZWYgdGVzdF9tYWluKCk6Ci0gICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoKnRlc3RfY2xhc3NlcykKKyAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChfX25hbWVfXykKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90ZXh0d3JhcC5weSBiL0xpYi90ZXN0L3Rlc3RfdGV4dHdyYXAucHkKaW5kZXggOTA1ZGQ0Yy4uYmI0YTg1MSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF90ZXh0d3JhcC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3RleHR3cmFwLnB5CkBAIC0xMSw3ICsxMSw3IEBACiBpbXBvcnQgdW5pdHRlc3QKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogCi1mcm9tIHRleHR3cmFwIGltcG9ydCBUZXh0V3JhcHBlciwgd3JhcCwgZmlsbCwgZGVkZW50Citmcm9tIHRleHR3cmFwIGltcG9ydCBUZXh0V3JhcHBlciwgd3JhcCwgZmlsbCwgZGVkZW50LCBpbmRlbnQKIAogCiBjbGFzcyBCYXNlVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgpAQCAtOTEsNiArOTEsMTQgQEAKICAgICAgICAgcmVzdWx0ID0gd3JhcHBlci5maWxsKHRleHQpCiAgICAgICAgIHNlbGYuY2hlY2socmVzdWx0LCAnXG4nLmpvaW4oZXhwZWN0KSkKIAorICAgICAgICB0ZXh0ID0gIlx0VGVzdFx0ZGVmYXVsdFx0XHR0YWJzaXplLiIKKyAgICAgICAgZXhwZWN0ID0gWyIgICAgICAgIFRlc3QgICAgZGVmYXVsdCAgICAgICAgIHRhYnNpemUuIl0KKyAgICAgICAgc2VsZi5jaGVja193cmFwKHRleHQsIDgwLCBleHBlY3QpCisKKyAgICAgICAgdGV4dCA9ICJcdFRlc3RcdGN1c3RvbVx0XHR0YWJzaXplLiIKKyAgICAgICAgZXhwZWN0ID0gWyIgICAgVGVzdCAgICBjdXN0b20gICAgICB0YWJzaXplLiJdCisgICAgICAgIHNlbGYuY2hlY2tfd3JhcCh0ZXh0LCA4MCwgZXhwZWN0LCB0YWJzaXplPTQpCisKICAgICBkZWYgdGVzdF9maXhfc2VudGVuY2VfZW5kaW5ncyhzZWxmKToKICAgICAgICAgd3JhcHBlciA9IFRleHRXcmFwcGVyKDYwLCBmaXhfc2VudGVuY2VfZW5kaW5ncz1UcnVlKQogCkBAIC01ODYsMTEgKzU5NCwxNDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3QsIGRlZGVudCh0ZXh0KSkKIAogCisjIFRlc3QgdGV4dHdyYXAuaW5kZW50CitjbGFzcyBJbmRlbnRUZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIyBUaGUgZXhhbXBsZXMgdXNlZCBmb3IgdGVzdHMuIElmIGFueSBvZiB0aGVzZSBjaGFuZ2UsIHRoZSBleHBlY3RlZAorICAgICMgcmVzdWx0cyBpbiB0aGUgdmFyaW91cyB0ZXN0IGNhc2VzIG11c3QgYWxzbyBiZSB1cGRhdGVkLgorICAgICMgVGhlIHJvdW5kdHJpcCBjYXNlcyBhcmUgc2VwYXJhdGUsIGJlY2F1c2UgdGV4dHdyYXAuZGVkZW50IGRvZXNuJ3QKKyAgICAjIGhhbmRsZSBXaW5kb3dzIGxpbmUgZW5kaW5ncworICAgIFJPVU5EVFJJUF9DQVNFUyA9ICgKKyAgICAgICMgQmFzaWMgdGVzdCBjYXNlCisgICAgICAiSGkuXG5UaGlzIGlzIGEgdGVzdC5cblRlc3RpbmcuIiwKKyAgICAgICMgSW5jbHVkZSBhIGJsYW5rIGxpbmUKKyAgICAgICJIaS5cblRoaXMgaXMgYSB0ZXN0LlxuXG5UZXN0aW5nLiIsCisgICAgICAjIEluY2x1ZGUgbGVhZGluZyBhbmQgdHJhaWxpbmcgYmxhbmsgbGluZXMKKyAgICAgICJcbkhpLlxuVGhpcyBpcyBhIHRlc3QuXG5UZXN0aW5nLlxuIiwKKyAgICApCisgICAgQ0FTRVMgPSBST1VORFRSSVBfQ0FTRVMgKyAoCisgICAgICAjIFVzZSBXaW5kb3dzIGxpbmUgZW5kaW5ncworICAgICAgIkhpLlxyXG5UaGlzIGlzIGEgdGVzdC5cclxuVGVzdGluZy5cclxuIiwKKyAgICAgICMgUGF0aG9sb2dpY2FsIGNhc2UKKyAgICAgICJcbkhpLlxyXG5UaGlzIGlzIGEgdGVzdC5cblxyXG5UZXN0aW5nLlxyXG5cbiIsCisgICAgKQorCisgICAgZGVmIHRlc3RfaW5kZW50X25vbWFyZ2luX2RlZmF1bHQoc2VsZik6CisgICAgICAgICMgaW5kZW50IHNob3VsZCBkbyBub3RoaW5nIGlmICdwcmVmaXgnIGlzIGVtcHR5LgorICAgICAgICBmb3IgdGV4dCBpbiBzZWxmLkNBU0VTOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmRlbnQodGV4dCwgJycpLCB0ZXh0KQorCisgICAgZGVmIHRlc3RfaW5kZW50X25vbWFyZ2luX2V4cGxpY2l0X2RlZmF1bHQoc2VsZik6CisgICAgICAgICMgVGhlIHNhbWUgYXMgdGVzdF9pbmRlbnRfbm9tYXJnaW4sIGJ1dCBleHBsaWNpdGx5IHJlcXVlc3RpbmcKKyAgICAgICAgIyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgYnkgcGFzc2luZyBOb25lIGFzIHRoZSBwcmVkaWNhdGUKKyAgICAgICAgZm9yIHRleHQgaW4gc2VsZi5DQVNFUzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5kZW50KHRleHQsICcnLCBOb25lKSwgdGV4dCkKKworICAgIGRlZiB0ZXN0X2luZGVudF9ub21hcmdpbl9hbGxfbGluZXMoc2VsZik6CisgICAgICAgICMgVGhlIHNhbWUgYXMgdGVzdF9pbmRlbnRfbm9tYXJnaW4sIGJ1dCB1c2luZyB0aGUgb3B0aW9uYWwKKyAgICAgICAgIyBwcmVkaWNhdGUgYXJndW1lbnQKKyAgICAgICAgcHJlZGljYXRlID0gbGFtYmRhIGxpbmU6IFRydWUKKyAgICAgICAgZm9yIHRleHQgaW4gc2VsZi5DQVNFUzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5kZW50KHRleHQsICcnLCBwcmVkaWNhdGUpLCB0ZXh0KQorCisgICAgZGVmIHRlc3RfaW5kZW50X25vX2xpbmVzKHNlbGYpOgorICAgICAgICAjIEV4cGxpY2l0bHkgc2tpcCBpbmRlbnRpbmcgYW55IGxpbmVzCisgICAgICAgIHByZWRpY2F0ZSA9IGxhbWJkYSBsaW5lOiBGYWxzZQorICAgICAgICBmb3IgdGV4dCBpbiBzZWxmLkNBU0VTOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmRlbnQodGV4dCwgJyAgICAnLCBwcmVkaWNhdGUpLCB0ZXh0KQorCisgICAgZGVmIHRlc3Rfcm91bmR0cmlwX3NwYWNlcyhzZWxmKToKKyAgICAgICAgIyBBIHdoaXRlc3BhY2UgcHJlZml4IHNob3VsZCByb3VuZHRyaXAgd2l0aCBkZWRlbnQKKyAgICAgICAgZm9yIHRleHQgaW4gc2VsZi5ST1VORFRSSVBfQ0FTRVM6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlZGVudChpbmRlbnQodGV4dCwgJyAgICAnKSksIHRleHQpCisKKyAgICBkZWYgdGVzdF9yb3VuZHRyaXBfdGFicyhzZWxmKToKKyAgICAgICAgIyBBIHdoaXRlc3BhY2UgcHJlZml4IHNob3VsZCByb3VuZHRyaXAgd2l0aCBkZWRlbnQKKyAgICAgICAgZm9yIHRleHQgaW4gc2VsZi5ST1VORFRSSVBfQ0FTRVM6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlZGVudChpbmRlbnQodGV4dCwgJ1x0XHQnKSksIHRleHQpCisKKyAgICBkZWYgdGVzdF9yb3VuZHRyaXBfbWl4ZWQoc2VsZik6CisgICAgICAgICMgQSB3aGl0ZXNwYWNlIHByZWZpeCBzaG91bGQgcm91bmR0cmlwIHdpdGggZGVkZW50CisgICAgICAgIGZvciB0ZXh0IGluIHNlbGYuUk9VTkRUUklQX0NBU0VTOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWRlbnQoaW5kZW50KHRleHQsICcgXHQgIFx0ICcpKSwgdGV4dCkKKworICAgIGRlZiB0ZXN0X2luZGVudF9kZWZhdWx0KHNlbGYpOgorICAgICAgICAjIFRlc3QgZGVmYXVsdCBpbmRlbnRpbmcgb2YgbGluZXMgdGhhdCBhcmUgbm90IHdoaXRlc3BhY2Ugb25seQorICAgICAgICBwcmVmaXggPSAnICAnCisgICAgICAgIGV4cGVjdGVkID0gKAorICAgICAgICAgICMgQmFzaWMgdGVzdCBjYXNlCisgICAgICAgICAgIiAgSGkuXG4gIFRoaXMgaXMgYSB0ZXN0LlxuICBUZXN0aW5nLiIsCisgICAgICAgICAgIyBJbmNsdWRlIGEgYmxhbmsgbGluZQorICAgICAgICAgICIgIEhpLlxuICBUaGlzIGlzIGEgdGVzdC5cblxuICBUZXN0aW5nLiIsCisgICAgICAgICAgIyBJbmNsdWRlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIGJsYW5rIGxpbmVzCisgICAgICAgICAgIlxuICBIaS5cbiAgVGhpcyBpcyBhIHRlc3QuXG4gIFRlc3RpbmcuXG4iLAorICAgICAgICAgICMgVXNlIFdpbmRvd3MgbGluZSBlbmRpbmdzCisgICAgICAgICAgIiAgSGkuXHJcbiAgVGhpcyBpcyBhIHRlc3QuXHJcbiAgVGVzdGluZy5cclxuIiwKKyAgICAgICAgICAjIFBhdGhvbG9naWNhbCBjYXNlCisgICAgICAgICAgIlxuICBIaS5cclxuICBUaGlzIGlzIGEgdGVzdC5cblxyXG4gIFRlc3RpbmcuXHJcblxuIiwKKyAgICAgICAgKQorICAgICAgICBmb3IgdGV4dCwgZXhwZWN0IGluIHppcChzZWxmLkNBU0VTLCBleHBlY3RlZCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZGVudCh0ZXh0LCBwcmVmaXgpLCBleHBlY3QpCisKKyAgICBkZWYgdGVzdF9pbmRlbnRfZXhwbGljaXRfZGVmYXVsdChzZWxmKToKKyAgICAgICAgIyBUZXN0IGRlZmF1bHQgaW5kZW50aW5nIG9mIGxpbmVzIHRoYXQgYXJlIG5vdCB3aGl0ZXNwYWNlIG9ubHkKKyAgICAgICAgcHJlZml4ID0gJyAgJworICAgICAgICBleHBlY3RlZCA9ICgKKyAgICAgICAgICAjIEJhc2ljIHRlc3QgY2FzZQorICAgICAgICAgICIgIEhpLlxuICBUaGlzIGlzIGEgdGVzdC5cbiAgVGVzdGluZy4iLAorICAgICAgICAgICMgSW5jbHVkZSBhIGJsYW5rIGxpbmUKKyAgICAgICAgICAiICBIaS5cbiAgVGhpcyBpcyBhIHRlc3QuXG5cbiAgVGVzdGluZy4iLAorICAgICAgICAgICMgSW5jbHVkZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBibGFuayBsaW5lcworICAgICAgICAgICJcbiAgSGkuXG4gIFRoaXMgaXMgYSB0ZXN0LlxuICBUZXN0aW5nLlxuIiwKKyAgICAgICAgICAjIFVzZSBXaW5kb3dzIGxpbmUgZW5kaW5ncworICAgICAgICAgICIgIEhpLlxyXG4gIFRoaXMgaXMgYSB0ZXN0LlxyXG4gIFRlc3RpbmcuXHJcbiIsCisgICAgICAgICAgIyBQYXRob2xvZ2ljYWwgY2FzZQorICAgICAgICAgICJcbiAgSGkuXHJcbiAgVGhpcyBpcyBhIHRlc3QuXG5cclxuICBUZXN0aW5nLlxyXG5cbiIsCisgICAgICAgICkKKyAgICAgICAgZm9yIHRleHQsIGV4cGVjdCBpbiB6aXAoc2VsZi5DQVNFUywgZXhwZWN0ZWQpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmRlbnQodGV4dCwgcHJlZml4LCBOb25lKSwgZXhwZWN0KQorCisgICAgZGVmIHRlc3RfaW5kZW50X2FsbF9saW5lcyhzZWxmKToKKyAgICAgICAgIyBBZGQgJ3ByZWZpeCcgdG8gYWxsIGxpbmVzLCBpbmNsdWRpbmcgd2hpdGVzcGFjZS1vbmx5IG9uZXMuCisgICAgICAgIHByZWZpeCA9ICcgICcKKyAgICAgICAgZXhwZWN0ZWQgPSAoCisgICAgICAgICAgIyBCYXNpYyB0ZXN0IGNhc2UKKyAgICAgICAgICAiICBIaS5cbiAgVGhpcyBpcyBhIHRlc3QuXG4gIFRlc3RpbmcuIiwKKyAgICAgICAgICAjIEluY2x1ZGUgYSBibGFuayBsaW5lCisgICAgICAgICAgIiAgSGkuXG4gIFRoaXMgaXMgYSB0ZXN0LlxuICBcbiAgVGVzdGluZy4iLAorICAgICAgICAgICMgSW5jbHVkZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBibGFuayBsaW5lcworICAgICAgICAgICIgIFxuICBIaS5cbiAgVGhpcyBpcyBhIHRlc3QuXG4gIFRlc3RpbmcuXG4iLAorICAgICAgICAgICMgVXNlIFdpbmRvd3MgbGluZSBlbmRpbmdzCisgICAgICAgICAgIiAgSGkuXHJcbiAgVGhpcyBpcyBhIHRlc3QuXHJcbiAgVGVzdGluZy5cclxuIiwKKyAgICAgICAgICAjIFBhdGhvbG9naWNhbCBjYXNlCisgICAgICAgICAgIiAgXG4gIEhpLlxyXG4gIFRoaXMgaXMgYSB0ZXN0LlxuICBcclxuICBUZXN0aW5nLlxyXG4gIFxuIiwKKyAgICAgICAgKQorICAgICAgICBwcmVkaWNhdGUgPSBsYW1iZGEgbGluZTogVHJ1ZQorICAgICAgICBmb3IgdGV4dCwgZXhwZWN0IGluIHppcChzZWxmLkNBU0VTLCBleHBlY3RlZCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZGVudCh0ZXh0LCBwcmVmaXgsIHByZWRpY2F0ZSksIGV4cGVjdCkKKworICAgIGRlZiB0ZXN0X2luZGVudF9lbXB0eV9saW5lcyhzZWxmKToKKyAgICAgICAgIyBBZGQgJ3ByZWZpeCcgc29sZWx5IHRvIHdoaXRlc3BhY2Utb25seSBsaW5lcy4KKyAgICAgICAgcHJlZml4ID0gJyAgJworICAgICAgICBleHBlY3RlZCA9ICgKKyAgICAgICAgICAjIEJhc2ljIHRlc3QgY2FzZQorICAgICAgICAgICJIaS5cblRoaXMgaXMgYSB0ZXN0LlxuVGVzdGluZy4iLAorICAgICAgICAgICMgSW5jbHVkZSBhIGJsYW5rIGxpbmUKKyAgICAgICAgICAiSGkuXG5UaGlzIGlzIGEgdGVzdC5cbiAgXG5UZXN0aW5nLiIsCisgICAgICAgICAgIyBJbmNsdWRlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIGJsYW5rIGxpbmVzCisgICAgICAgICAgIiAgXG5IaS5cblRoaXMgaXMgYSB0ZXN0LlxuVGVzdGluZy5cbiIsCisgICAgICAgICAgIyBVc2UgV2luZG93cyBsaW5lIGVuZGluZ3MKKyAgICAgICAgICAiSGkuXHJcblRoaXMgaXMgYSB0ZXN0LlxyXG5UZXN0aW5nLlxyXG4iLAorICAgICAgICAgICMgUGF0aG9sb2dpY2FsIGNhc2UKKyAgICAgICAgICAiICBcbkhpLlxyXG5UaGlzIGlzIGEgdGVzdC5cbiAgXHJcblRlc3RpbmcuXHJcbiAgXG4iLAorICAgICAgICApCisgICAgICAgIHByZWRpY2F0ZSA9IGxhbWJkYSBsaW5lOiBub3QgbGluZS5zdHJpcCgpCisgICAgICAgIGZvciB0ZXh0LCBleHBlY3QgaW4gemlwKHNlbGYuQ0FTRVMsIGV4cGVjdGVkKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5kZW50KHRleHQsIHByZWZpeCwgcHJlZGljYXRlKSwgZXhwZWN0KQorCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChXcmFwVGVzdENhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMb25nV29yZFRlc3RDYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kZW50VGVzdENhc2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVkZW50VGVzdENhc2UpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWRlbnRUZXN0Q2FzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGVudFRlc3RDYXNlKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHRlc3RfbWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3RocmVhZGVkX2ltcG9ydC5weSBiL0xpYi90ZXN0L3Rlc3RfdGhyZWFkZWRfaW1wb3J0LnB5CmluZGV4IDc3OTE5MzUuLmY1NDBiZGMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdGhyZWFkZWRfaW1wb3J0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdGhyZWFkZWRfaW1wb3J0LnB5CkBAIC0xMSw4ICsxMSw4IEBACiBpbXBvcnQgdGltZQogaW1wb3J0IHNodXRpbAogaW1wb3J0IHVuaXR0ZXN0Ci1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgdmVyYm9zZSwgaW1wb3J0X21vZHVsZSwgcnVuX3VuaXR0ZXN0LCBURVNURk4KLXRocmVhZCA9IGltcG9ydF9tb2R1bGUoJ190aHJlYWQnKQorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0ICgKKyAgICB2ZXJib3NlLCBpbXBvcnRfbW9kdWxlLCBydW5fdW5pdHRlc3QsIFRFU1RGTiwgcmVhcF90aHJlYWRzLCBmb3JnZXQsIHVubGluaykKIHRocmVhZGluZyA9IGltcG9ydF9tb2R1bGUoJ3RocmVhZGluZycpCiAKIGRlZiB0YXNrKE4sIGRvbmUsIGRvbmVfdGFza3MsIGVycm9ycyk6CkBAIC0zMCw3ICszMCw3IEBACiAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICBlcnJvcnMuYXBwZW5kKGUud2l0aF90cmFjZWJhY2soTm9uZSkpCiAgICAgZmluYWxseToKLSAgICAgICAgZG9uZV90YXNrcy5hcHBlbmQodGhyZWFkLmdldF9pZGVudCgpKQorICAgICAgICBkb25lX3Rhc2tzLmFwcGVuZCh0aHJlYWRpbmcuZ2V0X2lkZW50KCkpCiAgICAgICAgIGZpbmlzaGVkID0gbGVuKGRvbmVfdGFza3MpID09IE4KICAgICAgICAgaWYgZmluaXNoZWQ6CiAgICAgICAgICAgICBkb25lLnNldCgpCkBAIC02Miw3ICs2Miw3IEBACiAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBzZWxmLm51bWNhbGxzID0gMAogICAgICAgICBzZWxmLnggPSAwCi0gICAgICAgIHNlbGYubG9jayA9IHRocmVhZC5hbGxvY2F0ZV9sb2NrKCkKKyAgICAgICAgc2VsZi5sb2NrID0gdGhyZWFkaW5nLkxvY2soKQogCiAgICAgZGVmIGZpbmRfbW9kdWxlKHNlbGYsIG5hbWUsIHBhdGg9Tm9uZSk6CiAgICAgICAgICMgU2ltdWxhdGUgc29tZSB0aHJlYWQtdW5zYWZlIGJlaGF2aW91ci4gSWYgY2FsbHMgdG8gZmluZF9tb2R1bGUoKQpAQCAtMTEzLDcgKzExMyw5IEBACiAgICAgICAgICAgICBkb25lX3Rhc2tzID0gW10KICAgICAgICAgICAgIGRvbmUuY2xlYXIoKQogICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoTik6Ci0gICAgICAgICAgICAgICAgdGhyZWFkLnN0YXJ0X25ld190aHJlYWQodGFzaywgKE4sIGRvbmUsIGRvbmVfdGFza3MsIGVycm9ycywpKQorICAgICAgICAgICAgICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD10YXNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KE4sIGRvbmUsIGRvbmVfdGFza3MsIGVycm9ycywpKQorICAgICAgICAgICAgICAgIHQuc3RhcnQoKQogICAgICAgICAgICAgZG9uZS53YWl0KDYwKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShlcnJvcnMpCiAgICAgICAgICAgICBpZiB2ZXJib3NlOgpAQCAtMTI0LDcgKzEyNiw3IEBACiAKICAgICBkZWYgdGVzdF9wYXJhbGxlbF9tZXRhX3BhdGgoc2VsZik6CiAgICAgICAgIGZpbmRlciA9IEZpbmRlcigpCi0gICAgICAgIHN5cy5tZXRhX3BhdGguYXBwZW5kKGZpbmRlcikKKyAgICAgICAgc3lzLm1ldGFfcGF0aC5pbnNlcnQoMCwgZmluZGVyKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLmNoZWNrX3BhcmFsbGVsX21vZHVsZV9pbml0KCkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcihmaW5kZXIubnVtY2FsbHMsIDApCkBAIC0xNDMsNyArMTQ1LDcgQEAKICAgICAgICAgZGVmIHBhdGhfaG9vayhwYXRoKToKICAgICAgICAgICAgIGZpbmRlci5maW5kX21vZHVsZSgnJykKICAgICAgICAgICAgIHJhaXNlIEltcG9ydEVycm9yCi0gICAgICAgIHN5cy5wYXRoX2hvb2tzLmFwcGVuZChwYXRoX2hvb2spCisgICAgICAgIHN5cy5wYXRoX2hvb2tzLmluc2VydCgwLCBwYXRoX2hvb2spCiAgICAgICAgIHN5cy5tZXRhX3BhdGguYXBwZW5kKGZsdXNoaW5nX2ZpbmRlcikKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgIyBGbHVzaCB0aGUgY2FjaGUgYSBmaXJzdCB0aW1lCkBAIC0xODUsNyArMTg3LDcgQEAKICAgICAgICAgICAgIGNvbnRlbnRzID0gY29udGVudHMgJSB7J2RlbGF5JzogZGVsYXl9CiAgICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKFRFU1RGTiwgbmFtZSArICIucHkiKSwgIndiIikgYXMgZjoKICAgICAgICAgICAgICAgICBmLndyaXRlKGNvbnRlbnRzLmVuY29kZSgndXRmLTgnKSkKLSAgICAgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzeXMubW9kdWxlcy5wb3AsIG5hbWUsIE5vbmUpCisgICAgICAgICAgICBzZWxmLmFkZENsZWFudXAoZm9yZ2V0LCBuYW1lKQogCiAgICAgICAgIHJlc3VsdHMgPSBbXQogICAgICAgICBkZWYgaW1wb3J0X2FiKCk6CkBAIC0yMDIsNyArMjA0LDI1IEBACiAgICAgICAgIHQyLmpvaW4oKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldChyZXN1bHRzKSwgeydhJywgJ2InfSkKIAorICAgIGRlZiB0ZXN0X3NpZGVfZWZmZWN0X2ltcG9ydChzZWxmKToKKyAgICAgICAgY29kZSA9ICIiImlmIDE6CisgICAgICAgICAgICBpbXBvcnQgdGhyZWFkaW5nCisgICAgICAgICAgICBkZWYgdGFyZ2V0KCk6CisgICAgICAgICAgICAgICAgaW1wb3J0IHJhbmRvbQorICAgICAgICAgICAgdCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXRhcmdldCkKKyAgICAgICAgICAgIHQuc3RhcnQoKQorICAgICAgICAgICAgdC5qb2luKCkiIiIKKyAgICAgICAgc3lzLnBhdGguaW5zZXJ0KDAsIG9zLmN1cmRpcikKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHN5cy5wYXRoLnJlbW92ZSwgb3MuY3VyZGlyKQorICAgICAgICBmaWxlbmFtZSA9IFRFU1RGTiArICIucHkiCisgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgIndiIikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUoY29kZS5lbmNvZGUoJ3V0Zi04JykpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cCh1bmxpbmssIGZpbGVuYW1lKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoZm9yZ2V0LCBURVNURk4pCisgICAgICAgIF9faW1wb3J0X18oVEVTVEZOKQogCisKK0ByZWFwX3RocmVhZHMKIGRlZiB0ZXN0X21haW4oKToKICAgICBydW5fdW5pdHRlc3QoVGhyZWFkZWRJbXBvcnRUZXN0cykKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90aHJlYWRpbmcucHkgYi9MaWIvdGVzdC90ZXN0X3RocmVhZGluZy5weQppbmRleCAxN2JlODRiLi5iYjhkOWI2IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RocmVhZGluZy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3RocmVhZGluZy5weQpAQCAtMTc1LDcgKzE3NSw3IEBACiAgICAgICAgIGV4Y2VwdGlvbiA9IGN0eXBlcy5weV9vYmplY3QoQXN5bmNFeGMpCiAKICAgICAgICAgIyBGaXJzdCBjaGVjayBpdCB3b3JrcyB3aGVuIHNldHRpbmcgdGhlIGV4Y2VwdGlvbiBmcm9tIHRoZSBzYW1lIHRocmVhZC4KLSAgICAgICAgdGlkID0gX3RocmVhZC5nZXRfaWRlbnQoKQorICAgICAgICB0aWQgPSB0aHJlYWRpbmcuZ2V0X2lkZW50KCkKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICByZXN1bHQgPSBzZXRfYXN5bmNfZXhjKGN0eXBlcy5jX2xvbmcodGlkKSwgZXhjZXB0aW9uKQpAQCAtMjA0LDcgKzIwNCw3IEBACiAKICAgICAgICAgY2xhc3MgV29ya2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgICAgICAgICBzZWxmLmlkID0gX3RocmVhZC5nZXRfaWRlbnQoKQorICAgICAgICAgICAgICAgIHNlbGYuaWQgPSB0aHJlYWRpbmcuZ2V0X2lkZW50KCkKICAgICAgICAgICAgICAgICBzZWxmLmZpbmlzaGVkID0gRmFsc2UKIAogICAgICAgICAgICAgICAgIHRyeToKQEAgLTQwOSw2ICs0MDksMTQgQEAKICAgICAgICAgdC5kYWVtb24gPSBUcnVlCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnZGFlbW9uJyBpbiByZXByKHQpKQogCisgICAgZGVmIHRlc3RfZGVhbW9uX3BhcmFtKHNlbGYpOgorICAgICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UodC5kYWVtb24pCisgICAgICAgIHQgPSB0aHJlYWRpbmcuVGhyZWFkKGRhZW1vbj1GYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh0LmRhZW1vbikKKyAgICAgICAgdCA9IHRocmVhZGluZy5UaHJlYWQoZGFlbW9uPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0LmRhZW1vbikKKwogICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIob3MsICdmb3JrJyksICd0ZXN0IG5lZWRzIGZvcmsoKScpCiAgICAgZGVmIHRlc3RfZHVtbXlfdGhyZWFkX2FmdGVyX2Zvcmsoc2VsZik6CiAgICAgICAgICMgSXNzdWUgIzE0MzA4OiBhIGR1bW15IHRocmVhZCBpbiB0aGUgYWN0aXZlIGxpc3QgZG9lc24ndCBtZXNzIHVwCkBAIC03NDIsNiArNzUwLDEwIEBACiAgICAgICAgIHRocmVhZC5zdGFydCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2V0YXR0ciwgdGhyZWFkLCAiZGFlbW9uIiwgVHJ1ZSkKIAorICAgIGRlZiB0ZXN0X3JlbGVhc2luZ191bmFjcXVpcmVkX2xvY2soc2VsZik6CisgICAgICAgIGxvY2sgPSB0aHJlYWRpbmcuTG9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgbG9jay5yZWxlYXNlKQorCiAgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3Moc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nLCAndGVzdCBtYWNvc3ggcHJvYmxlbScpCiAgICAgZGVmIHRlc3RfcmVjdXJzaW9uX2xpbWl0KHNlbGYpOgogICAgICAgICAjIElzc3VlIDk2NzAKQEAgLTgwMyw2ICs4MTUsNyBAQAogY2xhc3MgQmFycmllclRlc3RzKGxvY2tfdGVzdHMuQmFycmllclRlc3RzKToKICAgICBiYXJyaWVydHlwZSA9IHN0YXRpY21ldGhvZCh0aHJlYWRpbmcuQmFycmllcikKIAorCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgdGVzdC5zdXBwb3J0LnJ1bl91bml0dGVzdChMb2NrVGVzdHMsIFB5UkxvY2tUZXN0cywgQ1JMb2NrVGVzdHMsIEV2ZW50VGVzdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25kaXRpb25Bc1JMb2NrVGVzdHMsIENvbmRpdGlvblRlc3RzLApAQCAtODEwLDcgKzgyMyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaHJlYWRUZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRocmVhZEpvaW5PblNodXRkb3duLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhyZWFkaW5nRXhjZXB0aW9uVGVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJyaWVyVGVzdHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnJpZXJUZXN0cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdGhyZWFkc2lnbmFscy5weSBiL0xpYi90ZXN0L3Rlc3RfdGhyZWFkc2lnbmFscy5weQppbmRleCBlMGFmMzFkLi5mOTc1YTc1IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RocmVhZHNpZ25hbHMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90aHJlYWRzaWduYWxzLnB5CkBAIC0xNCwxMCArMTQsOCBAQAogcHJvY2Vzc19waWQgPSBvcy5nZXRwaWQoKQogc2lnbmFsbGVkX2FsbD10aHJlYWQuYWxsb2NhdGVfbG9jaygpCiAKLSMgSXNzdWUgIzExMjIzOiBMb2NrcyBhcmUgaW1wbGVtZW50ZWQgdXNpbmcgYSBtdXRleCBhbmQgYSBjb25kaXRpb24gdmFyaWFibGUgb2YKLSMgdGhlIHB0aHJlYWQgbGlicmFyeSBvbiBGcmVlQlNENi4gUE9TSVggY29uZGl0aW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUKLSMgaW50ZXJydXB0ZWQgYnkgc2lnbmFscyAoc2VlIHB0aHJlYWRfY29uZF93YWl0IG1hbnVhbCBwYWdlKS4KLVVTSU5HX1BUSFJFQURfQ09ORCA9IChzeXMucGxhdGZvcm0gPT0gJ2ZyZWVic2Q2JykKK1VTSU5HX1BUSFJFQURfQ09ORCA9IChzeXMudGhyZWFkX2luZm8ubmFtZSA9PSAncHRocmVhZCcKKyAgICAgICAgICAgICAgICAgICAgICBhbmQgc3lzLnRocmVhZF9pbmZvLmxvY2sgPT0gJ211dGV4K2NvbmQnKQogCiBkZWYgcmVnaXN0ZXJTaWduYWxzKGZvcl91c3IxLCBmb3JfdXNyMiwgZm9yX2Fscm0pOgogICAgIHVzcjEgPSBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdVU1IxLCBmb3JfdXNyMSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdGltZS5weSBiL0xpYi90ZXN0L3Rlc3RfdGltZS5weQppbmRleCBjZTU3ZDg3Li42M2UxNDUzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RpbWUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90aW1lLnB5CkBAIC00LDcgKzQsMTcgQEAKIGltcG9ydCBsb2NhbGUKIGltcG9ydCBzeXNjb25maWcKIGltcG9ydCBzeXMKLWltcG9ydCB3YXJuaW5ncworaW1wb3J0IHBsYXRmb3JtCit0cnk6CisgICAgaW1wb3J0IHRocmVhZGluZworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHRocmVhZGluZyA9IE5vbmUKKworIyBNYXggeWVhciBpcyBvbmx5IGxpbWl0ZWQgYnkgdGhlIHNpemUgb2YgQyBpbnQuCitTSVpFT0ZfSU5UID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdTSVpFT0ZfSU5UJykgb3IgNAorVElNRV9NQVhZRUFSID0gKDEgPDwgOCAqIFNJWkVPRl9JTlQgLSAxKSAtIDEKK1RJTUVfTUlOWUVBUiA9IC1USU1FX01BWFlFQVIgLSAxCisKIAogY2xhc3MgVGltZVRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKIApAQCAtMTcsOSArMjcsNTMgQEAKICAgICAgICAgdGltZS50aW1lem9uZQogICAgICAgICB0aW1lLnR6bmFtZQogCisgICAgZGVmIHRlc3RfdGltZShzZWxmKToKKyAgICAgICAgdGltZS50aW1lKCkKKyAgICAgICAgaW5mbyA9IHRpbWUuZ2V0X2Nsb2NrX2luZm8oJ3RpbWUnKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGluZm8ubW9ub3RvbmljKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby5hZGp1c3RhYmxlKQorCiAgICAgZGVmIHRlc3RfY2xvY2soc2VsZik6CiAgICAgICAgIHRpbWUuY2xvY2soKQogCisgICAgICAgIGluZm8gPSB0aW1lLmdldF9jbG9ja19pbmZvKCdjbG9jaycpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpbmZvLm1vbm90b25pYykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmFkanVzdGFibGUpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHRpbWUsICdjbG9ja19nZXR0aW1lJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ25lZWQgdGltZS5jbG9ja19nZXR0aW1lKCknKQorICAgIGRlZiB0ZXN0X2Nsb2NrX3JlYWx0aW1lKHNlbGYpOgorICAgICAgICB0aW1lLmNsb2NrX2dldHRpbWUodGltZS5DTE9DS19SRUFMVElNRSkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIodGltZSwgJ2Nsb2NrX2dldHRpbWUnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbmVlZCB0aW1lLmNsb2NrX2dldHRpbWUoKScpCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cih0aW1lLCAnQ0xPQ0tfTU9OT1RPTklDJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ25lZWQgdGltZS5DTE9DS19NT05PVE9OSUMnKQorICAgIGRlZiB0ZXN0X2Nsb2NrX21vbm90b25pYyhzZWxmKToKKyAgICAgICAgYSA9IHRpbWUuY2xvY2tfZ2V0dGltZSh0aW1lLkNMT0NLX01PTk9UT05JQykKKyAgICAgICAgYiA9IHRpbWUuY2xvY2tfZ2V0dGltZSh0aW1lLkNMT0NLX01PTk9UT05JQykKKyAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwoYSwgYikKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIodGltZSwgJ2Nsb2NrX2dldHJlcycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZWVkIHRpbWUuY2xvY2tfZ2V0cmVzKCknKQorICAgIGRlZiB0ZXN0X2Nsb2NrX2dldHJlcyhzZWxmKToKKyAgICAgICAgcmVzID0gdGltZS5jbG9ja19nZXRyZXModGltZS5DTE9DS19SRUFMVElNRSkKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKHJlcywgMC4wKQorICAgICAgICBzZWxmLmFzc2VydExlc3NFcXVhbChyZXMsIDEuMCkKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIodGltZSwgJ2Nsb2NrX3NldHRpbWUnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbmVlZCB0aW1lLmNsb2NrX3NldHRpbWUoKScpCisgICAgZGVmIHRlc3RfY2xvY2tfc2V0dGltZShzZWxmKToKKyAgICAgICAgdCA9IHRpbWUuY2xvY2tfZ2V0dGltZSh0aW1lLkNMT0NLX1JFQUxUSU1FKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0aW1lLmNsb2NrX3NldHRpbWUodGltZS5DTE9DS19SRUFMVElNRSwgdCkKKyAgICAgICAgZXhjZXB0IFBlcm1pc3Npb25FcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBpZiBoYXNhdHRyKHRpbWUsICdDTE9DS19NT05PVE9OSUMnKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLmNsb2NrX3NldHRpbWUsIHRpbWUuQ0xPQ0tfTU9OT1RPTklDLCAwKQorCiAgICAgZGVmIHRlc3RfY29udmVyc2lvbnMoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGltZS5jdGltZShzZWxmLnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUuYXNjdGltZSh0aW1lLmxvY2FsdGltZShzZWxmLnQpKSkKQEAgLTI3LDYgKzgxLDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQoc2VsZi50KSkKIAogICAgIGRlZiB0ZXN0X3NsZWVwKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCB0aW1lLnNsZWVwLCAtMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgdGltZS5zbGVlcCwgLTEpCiAgICAgICAgIHRpbWUuc2xlZXAoMS4yKQogCiAgICAgZGVmIHRlc3Rfc3RyZnRpbWUoc2VsZik6CkBAIC00NywyOCArMTAzLDM0IEBACiAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgogICAgICAgICAgICAgICAgIHRpbWUuc3RyZnRpbWUoJyVmJykKIAotICAgIGRlZiBfYm91bmRzX2NoZWNraW5nKHNlbGYsIGZ1bmM9dGltZS5zdHJmdGltZSk6CisgICAgZGVmIF9ib3VuZHNfY2hlY2tpbmcoc2VsZiwgZnVuYyk6CiAgICAgICAgICMgTWFrZSBzdXJlIHRoYXQgc3RyZnRpbWUoKSBjaGVja3MgdGhlIGJvdW5kcyBvZiB0aGUgdmFyaW91cyBwYXJ0cwotICAgICAgICAjb2YgdGhlIHRpbWUgdHVwbGUgKDAgaXMgdmFsaWQgZm9yICphbGwqIHZhbHVlcykuCisgICAgICAgICMgb2YgdGhlIHRpbWUgdHVwbGUgKDAgaXMgdmFsaWQgZm9yICphbGwqIHZhbHVlcykuCiAKICAgICAgICAgIyBUaGUgeWVhciBmaWVsZCBpcyB0ZXN0ZWQgYnkgb3RoZXIgdGVzdCBjYXNlcyBhYm92ZQogCiAgICAgICAgICMgQ2hlY2sgbW9udGggWzEsIDEyXSArIHplcm8gc3VwcG9ydAorICAgICAgICBmdW5jKCgxOTAwLCAwLCAxLCAwLCAwLCAwLCAwLCAxLCAtMSkpCisgICAgICAgIGZ1bmMoKDE5MDAsIDEyLCAxLCAwLCAwLCAwLCAwLCAxLCAtMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDE5MDAsIC0xLCAxLCAwLCAwLCAwLCAwLCAxLCAtMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDE5MDAsIDEzLCAxLCAwLCAwLCAwLCAwLCAxLCAtMSkpCiAgICAgICAgICMgQ2hlY2sgZGF5IG9mIG1vbnRoIFsxLCAzMV0gKyB6ZXJvIHN1cHBvcnQKKyAgICAgICAgZnVuYygoMTkwMCwgMSwgMCwgMCwgMCwgMCwgMCwgMSwgLTEpKQorICAgICAgICBmdW5jKCgxOTAwLCAxLCAzMSwgMCwgMCwgMCwgMCwgMSwgLTEpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxOTAwLCAxLCAtMSwgMCwgMCwgMCwgMCwgMSwgLTEpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxOTAwLCAxLCAzMiwgMCwgMCwgMCwgMCwgMSwgLTEpKQogICAgICAgICAjIENoZWNrIGhvdXIgWzAsIDIzXQorICAgICAgICBmdW5jKCgxOTAwLCAxLCAxLCAyMywgMCwgMCwgMCwgMSwgLTEpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxOTAwLCAxLCAxLCAtMSwgMCwgMCwgMCwgMSwgLTEpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxOTAwLCAxLCAxLCAyNCwgMCwgMCwgMCwgMSwgLTEpKQogICAgICAgICAjIENoZWNrIG1pbnV0ZSBbMCwgNTldCisgICAgICAgIGZ1bmMoKDE5MDAsIDEsIDEsIDAsIDU5LCAwLCAwLCAxLCAtMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDE5MDAsIDEsIDEsIDAsIC0xLCAwLCAwLCAxLCAtMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGZ1bmMsCkBAIC03OCwxNSArMTQwLDIxIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDE5MDAsIDEsIDEsIDAsIDAsIC0xLCAwLCAxLCAtMSkpCiAgICAgICAgICMgQzk5IG9ubHkgcmVxdWlyZXMgYWxsb3dpbmcgZm9yIG9uZSBsZWFwIHNlY29uZCwgYnV0IFB5dGhvbidzIGRvY3Mgc2F5CiAgICAgICAgICMgYWxsb3cgdHdvIGxlYXAgc2Vjb25kcyAoMC4uNjEpCisgICAgICAgIGZ1bmMoKDE5MDAsIDEsIDEsIDAsIDAsIDYwLCAwLCAxLCAtMSkpCisgICAgICAgIGZ1bmMoKDE5MDAsIDEsIDEsIDAsIDAsIDYxLCAwLCAxLCAtMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDE5MDAsIDEsIDEsIDAsIDAsIDYyLCAwLCAxLCAtMSkpCiAgICAgICAgICMgTm8gY2hlY2sgZm9yIHVwcGVyLWJvdW5kIGRheSBvZiB3ZWVrOwogICAgICAgICAjICB2YWx1ZSBmb3JjZWQgaW50byByYW5nZSBieSBhIGBgJSA3YGAgY2FsY3VsYXRpb24uCiAgICAgICAgICMgU3RhcnQgY2hlY2sgYXQgLTIgc2luY2UgZ2V0dG1hcmcoKSBpbmNyZW1lbnRzIHZhbHVlIGJlZm9yZSB0YWtpbmcKICAgICAgICAgIyAgbW9kdWxvLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoKDE5MDAsIDEsIDEsIDAsIDAsIDAsIC0xLCAxLCAtMSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmMoKDE5MDAsIDEsIDEsIDAsIDAsIDAsICs2LCAxLCAtMSkpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxOTAwLCAxLCAxLCAwLCAwLCAwLCAtMiwgMSwgLTEpKQogICAgICAgICAjIENoZWNrIGRheSBvZiB0aGUgeWVhciBbMSwgMzY2XSArIHplcm8gc3VwcG9ydAorICAgICAgICBmdW5jKCgxOTAwLCAxLCAxLCAwLCAwLCAwLCAwLCAwLCAtMSkpCisgICAgICAgIGZ1bmMoKDE5MDAsIDEsIDEsIDAsIDAsIDAsIDAsIDM2NiwgLTEpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICgxOTAwLCAxLCAxLCAwLCAwLCAwLCAwLCAtMSwgLTEpKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBmdW5jLApAQCAtOTYsMTIgKzE2NCwxMyBAQAogICAgICAgICBzZWxmLl9ib3VuZHNfY2hlY2tpbmcobGFtYmRhIHR1cDogdGltZS5zdHJmdGltZSgnJywgdHVwKSkKIAogICAgIGRlZiB0ZXN0X2RlZmF1bHRfdmFsdWVzX2Zvcl96ZXJvKHNlbGYpOgotICAgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHVzaW5nIGFsbCB6ZXJvcyB1c2VzIHRoZSBwcm9wZXIgZGVmYXVsdCB2YWx1ZXMuCi0gICAgICAgICMgTm8gdGVzdCBmb3IgZGF5bGlnaHQgc2F2aW5ncyBzaW5jZSBzdHJmdGltZSgpIGRvZXMgbm90IGNoYW5nZSBvdXRwdXQKLSAgICAgICAgIyBiYXNlZCBvbiBpdHMgdmFsdWUuCisgICAgICAgICMgTWFrZSBzdXJlIHRoYXQgdXNpbmcgYWxsIHplcm9zIHVzZXMgdGhlIHByb3BlciBkZWZhdWx0CisgICAgICAgICMgdmFsdWVzLiAgTm8gdGVzdCBmb3IgZGF5bGlnaHQgc2F2aW5ncyBzaW5jZSBzdHJmdGltZSgpIGRvZXMKKyAgICAgICAgIyBub3QgY2hhbmdlIG91dHB1dCBiYXNlZCBvbiBpdHMgdmFsdWUgYW5kIG5vIHRlc3QgZm9yIHllYXIKKyAgICAgICAgIyBiZWNhdXNlIHN5c3RlbXMgdmFyeSBpbiB0aGVpciBzdXBwb3J0IGZvciB5ZWFyIDAuCiAgICAgICAgIGV4cGVjdGVkID0gIjIwMDAgMDEgMDEgMDAgMDAgMDAgMSAwMDEiCiAgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygpOgotICAgICAgICAgICAgcmVzdWx0ID0gdGltZS5zdHJmdGltZSgiJVkgJW0gJWQgJUggJU0gJVMgJXcgJWoiLCAoMCwpKjkpCisgICAgICAgICAgICByZXN1bHQgPSB0aW1lLnN0cmZ0aW1lKCIlWSAlbSAlZCAlSCAlTSAlUyAldyAlaiIsICgyMDAwLCkrKDAsKSo4KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXN1bHQpCiAKICAgICBkZWYgdGVzdF9zdHJwdGltZShzZWxmKToKQEAgLTEyOCwxMSArMTk3LDEzIEBACiAgICAgICAgIHRpbWUuYXNjdGltZSh0aW1lLmdtdGltZShzZWxmLnQpKQogCiAgICAgICAgICMgTWF4IHllYXIgaXMgb25seSBsaW1pdGVkIGJ5IHRoZSBzaXplIG9mIEMgaW50LgotICAgICAgICBzaXplb2ZfaW50ID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdTSVpFT0ZfSU5UJykgb3IgNAotICAgICAgICBiaWd5ZWFyID0gKDEgPDwgOCAqIHNpemVvZl9pbnQgLSAxKSAtIDEKLSAgICAgICAgYXNjID0gdGltZS5hc2N0aW1lKChiaWd5ZWFyLCA2LCAxKSArICgwLCkqNikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhc2NbLWxlbihzdHIoYmlneWVhcikpOl0sIHN0cihiaWd5ZWFyKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgdGltZS5hc2N0aW1lLCAoYmlneWVhciArIDEsKSArICgwLCkqOCkKKyAgICAgICAgZm9yIGJpZ3llYXIgaW4gVElNRV9NQVhZRUFSLCBUSU1FX01JTllFQVI6CisgICAgICAgICAgICBhc2MgPSB0aW1lLmFzY3RpbWUoKGJpZ3llYXIsIDYsIDEpICsgKDAsKSAqIDYpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFzY1stbGVuKHN0cihiaWd5ZWFyKSk6XSwgc3RyKGJpZ3llYXIpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCB0aW1lLmFzY3RpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIChUSU1FX01BWFlFQVIgKyAxLCkgKyAoMCwpICogOCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgdGltZS5hc2N0aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAoVElNRV9NSU5ZRUFSIC0gMSwpICsgKDAsKSAqIDgpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgdGltZS5hc2N0aW1lLCAwKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHRpbWUuYXNjdGltZSwgKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgdGltZS5hc2N0aW1lLCAoMCwpICogMTApCkBAIC0xNTUsOCArMjI2LDggQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0aW1lLmN0aW1lKHRlc3R2YWwpWzIwOl0sIHN0cih5ZWFyKSkKIAotICAgIEB1bml0dGVzdC5za2lwSWYobm90IGhhc2F0dHIodGltZSwgInR6c2V0IiksCi0gICAgICAgICJ0aW1lIG1vZHVsZSBoYXMgbm8gYXR0cmlidXRlIHR6c2V0IikKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHRpbWUsICJ0enNldCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lIG1vZHVsZSBoYXMgbm8gYXR0cmlidXRlIHR6c2V0IikKICAgICBkZWYgdGVzdF90enNldChzZWxmKToKIAogICAgICAgICBmcm9tIG9zIGltcG9ydCBlbnZpcm9uCkBAIC0yMDgsMTEgKzI3OSwxMyBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh0aW1lLmdtdGltZSh4bWFzMjAwMiksIHRpbWUubG9jYWx0aW1lKHhtYXMyMDAyKSkKIAogICAgICAgICAgICAgIyBJc3N1ZSAjMTE4ODY6IEF1c3RyYWxpYW4gRWFzdGVybiBTdGFuZGFyZCBUaW1lIChVVEMrMTApIGlzIGNhbGxlZAotICAgICAgICAgICAgIyAiRVNUIiAoYXMgRWFzdGVybiBTdGFuZGFyZCBUaW1lLCBVVEMtNSkgaW5zdGVhZCBvZiAiQUVTVCIgb24gc29tZQotICAgICAgICAgICAgIyBvcGVyYXRpbmcgc3lzdGVtcyAoZS5nLiBGcmVlQlNEKSwgd2hpY2ggaXMgd3JvbmcuIFNlZSBmb3IgZXhhbXBsZQotICAgICAgICAgICAgIyB0aGlzIGJ1ZzogaHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTkzODEwCisgICAgICAgICAgICAjICJFU1QiIChhcyBFYXN0ZXJuIFN0YW5kYXJkIFRpbWUsIFVUQy01KSBpbnN0ZWFkIG9mICJBRVNUIgorICAgICAgICAgICAgIyAobm9uLURTVCB0aW1lem9uZSksIGFuZCAiRURUIiBpbnN0ZWFkIG9mICJBRURUIiAoRFNUIHRpbWV6b25lKSwKKyAgICAgICAgICAgICMgb24gc29tZSBvcGVyYXRpbmcgc3lzdGVtcyAoZS5nLiBGcmVlQlNEKSwgd2hpY2ggaXMgd3JvbmcuIFNlZSBmb3IKKyAgICAgICAgICAgICMgZXhhbXBsZSB0aGlzIGJ1ZzoKKyAgICAgICAgICAgICMgaHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTkzODEwCiAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHRpbWUudHpuYW1lWzBdLCAoJ0FFU1QnICdFU1QnKSwgdGltZS50em5hbWVbMF0pCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGltZS50em5hbWVbMV0gPT0gJ0FFRFQnLCBzdHIodGltZS50em5hbWVbMV0pKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHRpbWUudHpuYW1lWzFdIGluICgnQUVEVCcsICdFRFQnKSwgc3RyKHRpbWUudHpuYW1lWzFdKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHRpbWUudHpuYW1lKSwgMikKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGltZS5kYXlsaWdodCwgMSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGltZS50aW1lem9uZSwgLTM2MDAwKQpAQCAtMjM1LDcgKzMwOCw3IEBACiAgICAgICAgICMgcmVzdWx0cyEpLgogICAgICAgICBmb3IgZnVuYyBpbiB0aW1lLmN0aW1lLCB0aW1lLmdtdGltZSwgdGltZS5sb2NhbHRpbWU6CiAgICAgICAgICAgICBmb3IgdW5yZWFzb25hYmxlIGluIC0xZTIwMCwgMWUyMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZnVuYywgdW5yZWFzb25hYmxlKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIGZ1bmMsIHVucmVhc29uYWJsZSkKIAogICAgIGRlZiB0ZXN0X2N0aW1lX3dpdGhvdXRfYXJnKHNlbGYpOgogICAgICAgICAjIE5vdCBzdXJlIGhvdyB0byBjaGVjayB0aGUgdmFsdWVzLCBzaW5jZSB0aGUgY2xvY2sgY291bGQgdGljawpAQCAtMjU4LDYgKzMzMSwxMTcgQEAKICAgICAgICAgdDEgPSB0aW1lLm1rdGltZShsdDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwodDEsIHQwLCBkZWx0YT0wLjIpCiAKKyAgICBkZWYgdGVzdF9ta3RpbWUoc2VsZik6CisgICAgICAgICMgSXNzdWUgIzE3MjY2ODcKKyAgICAgICAgZm9yIHQgaW4gKC0yLCAtMSwgMCwgMSk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdHQgPSB0aW1lLmxvY2FsdGltZSh0KQorICAgICAgICAgICAgZXhjZXB0IChPdmVyZmxvd0Vycm9yLCBPU0Vycm9yKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGltZS5ta3RpbWUodHQpLCB0KQorCisgICAgIyBJc3N1ZSAjMTMzMDk6IHBhc3NpbmcgZXh0cmVtZSB2YWx1ZXMgdG8gbWt0aW1lKCkgb3IgbG9jYWx0aW1lKCkKKyAgICAjIGJvcmtzIHRoZSBnbGliYydzIGludGVybmFsIHRpbWV6b25lIGRhdGEuCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MocGxhdGZvcm0ubGliY192ZXIoKVswXSAhPSAnZ2xpYmMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNhYmxlZCBiZWNhdXNlIG9mIGEgYnVnIGluIGdsaWJjLiBJc3N1ZSAjMTMzMDkiKQorICAgIGRlZiB0ZXN0X21rdGltZV9lcnJvcihzZWxmKToKKyAgICAgICAgIyBJdCBtYXkgbm90IGJlIHBvc3NpYmxlIHRvIHJlbGlhYmx5IG1ha2UgbWt0aW1lIHJldHVybiBlcnJvcgorICAgICAgICAjIG9uIGFsbCBwbGF0Zm9tLiAgVGhpcyB3aWxsIG1ha2Ugc3VyZSB0aGF0IG5vIG90aGVyIGV4Y2VwdGlvbgorICAgICAgICAjIHRoYW4gT3ZlcmZsb3dFcnJvciBpcyByYWlzZWQgZm9yIGFuIGV4dHJlbWUgdmFsdWUuCisgICAgICAgIHR0ID0gdGltZS5nbXRpbWUoc2VsZi50KQorICAgICAgICB0em5hbWUgPSB0aW1lLnN0cmZ0aW1lKCclWicsIHR0KQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHR6bmFtZSwgJ0xNVCcpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRpbWUubWt0aW1lKCgtMSwgMSwgMSwgMCwgMCwgMCwgLTEsIC0xLCAtMSkpCisgICAgICAgIGV4Y2VwdCBPdmVyZmxvd0Vycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRpbWUuc3RyZnRpbWUoJyVaJywgdHQpLCB0em5hbWUpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhoYXNhdHRyKHRpbWUsICdtb25vdG9uaWMnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbmVlZCB0aW1lLm1vbm90b25pYycpCisgICAgZGVmIHRlc3RfbW9ub3RvbmljKHNlbGYpOgorICAgICAgICB0MSA9IHRpbWUubW9ub3RvbmljKCkKKyAgICAgICAgdGltZS5zbGVlcCgwLjEpCisgICAgICAgIHQyID0gdGltZS5tb25vdG9uaWMoKQorICAgICAgICBkdCA9IHQyIC0gdDEKKyAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKHQyLCB0MSkKKyAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChkdCwgMC4xLCBkZWx0YT0wLjIpCisKKyAgICAgICAgaW5mbyA9IHRpbWUuZ2V0X2Nsb2NrX2luZm8oJ21vbm90b25pYycpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpbmZvLm1vbm90b25pYykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpbmZvLmFkanVzdGFibGUpCisKKyAgICBkZWYgdGVzdF9wZXJmX2NvdW50ZXIoc2VsZik6CisgICAgICAgIHRpbWUucGVyZl9jb3VudGVyKCkKKworICAgIGRlZiB0ZXN0X3Byb2Nlc3NfdGltZShzZWxmKToKKyAgICAgICAgIyBwcm9jZXNzX3RpbWUoKSBzaG91bGQgbm90IGluY2x1ZGUgdGltZSBzcGVuZCBkdXJpbmcgYSBzbGVlcAorICAgICAgICBzdGFydCA9IHRpbWUucHJvY2Vzc190aW1lKCkKKyAgICAgICAgdGltZS5zbGVlcCgwLjEwMCkKKyAgICAgICAgc3RvcCA9IHRpbWUucHJvY2Vzc190aW1lKCkKKyAgICAgICAgIyB1c2UgMjAgbXMgYmVjYXVzZSBwcm9jZXNzX3RpbWUoKSBoYXMgdXN1YWxseSBhIHJlc29sdXRpb24gb2YgMTUgbXMKKyAgICAgICAgIyBvbiBXaW5kb3dzCisgICAgICAgIHNlbGYuYXNzZXJ0TGVzcyhzdG9wIC0gc3RhcnQsIDAuMDIwKQorCisgICAgICAgIGluZm8gPSB0aW1lLmdldF9jbG9ja19pbmZvKCdwcm9jZXNzX3RpbWUnKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaW5mby5tb25vdG9uaWMpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaW5mby5hZGp1c3RhYmxlKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3MoaGFzYXR0cih0aW1lLCAnbW9ub3RvbmljJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ25lZWQgdGltZS5tb25vdG9uaWMnKQorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKGhhc2F0dHIodGltZSwgJ2Nsb2NrX3NldHRpbWUnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbmVlZCB0aW1lLmNsb2NrX3NldHRpbWUnKQorICAgIGRlZiB0ZXN0X21vbm90b25pY19zZXR0aW1lKHNlbGYpOgorICAgICAgICB0MSA9IHRpbWUubW9ub3RvbmljKCkKKyAgICAgICAgcmVhbHRpbWUgPSB0aW1lLmNsb2NrX2dldHRpbWUodGltZS5DTE9DS19SRUFMVElNRSkKKyAgICAgICAgIyBqdW1wIGJhY2t3YXJkIHdpdGggYW4gb2Zmc2V0IG9mIDEgaG91cgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0aW1lLmNsb2NrX3NldHRpbWUodGltZS5DTE9DS19SRUFMVElNRSwgcmVhbHRpbWUgLSAzNjAwKQorICAgICAgICBleGNlcHQgUGVybWlzc2lvbkVycm9yIGFzIGVycjoKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoZXJyKQorICAgICAgICB0MiA9IHRpbWUubW9ub3RvbmljKCkKKyAgICAgICAgdGltZS5jbG9ja19zZXR0aW1lKHRpbWUuQ0xPQ0tfUkVBTFRJTUUsIHJlYWx0aW1lKQorICAgICAgICAjIG1vbm90b25pYyBtdXN0IG5vdCBiZSBhZmZlY3RlZCBieSBzeXN0ZW0gY2xvY2sgdXBkYXRlcworICAgICAgICBzZWxmLmFzc2VydEdyZWF0ZXJFcXVhbCh0MiwgdDEpCisKKyAgICBkZWYgdGVzdF9sb2NhbHRpbWVfZmFpbHVyZShzZWxmKToKKyAgICAgICAgIyBJc3N1ZSAjMTM4NDc6IGNoZWNrIGZvciBsb2NhbHRpbWUoKSBmYWlsdXJlCisgICAgICAgIGludmFsaWRfdGltZV90ID0gTm9uZQorICAgICAgICBmb3IgdGltZV90IGluICgtMSwgMioqMzAsIDIqKjMzLCAyKio2MCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdGltZS5sb2NhbHRpbWUodGltZV90KQorICAgICAgICAgICAgZXhjZXB0IE92ZXJmbG93RXJyb3I6CisgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgibmVlZCA2NC1iaXQgdGltZV90IikKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgICAgIGludmFsaWRfdGltZV90ID0gdGltZV90CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgaWYgaW52YWxpZF90aW1lX3QgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoInVuYWJsZSB0byBmaW5kIGFuIGludmFsaWQgdGltZV90IHZhbHVlIikKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPU0Vycm9yLCB0aW1lLmxvY2FsdGltZSwgaW52YWxpZF90aW1lX3QpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE9TRXJyb3IsIHRpbWUuY3RpbWUsIGludmFsaWRfdGltZV90KQorCisgICAgZGVmIHRlc3RfZ2V0X2Nsb2NrX2luZm8oc2VsZik6CisgICAgICAgIGNsb2NrcyA9IFsnY2xvY2snLCAncGVyZl9jb3VudGVyJywgJ3Byb2Nlc3NfdGltZScsICd0aW1lJ10KKyAgICAgICAgaWYgaGFzYXR0cih0aW1lLCAnbW9ub3RvbmljJyk6CisgICAgICAgICAgICBjbG9ja3MuYXBwZW5kKCdtb25vdG9uaWMnKQorCisgICAgICAgIGZvciBuYW1lIGluIGNsb2NrczoKKyAgICAgICAgICAgIGluZm8gPSB0aW1lLmdldF9jbG9ja19pbmZvKG5hbWUpCisgICAgICAgICAgICAjc2VsZi5hc3NlcnRJc0luc3RhbmNlKGluZm8sIGRpY3QpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaW5mby5pbXBsZW1lbnRhdGlvbiwgc3RyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChpbmZvLmltcGxlbWVudGF0aW9uLCAnJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShpbmZvLm1vbm90b25pYywgYm9vbCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShpbmZvLnJlc29sdXRpb24sIGZsb2F0KQorICAgICAgICAgICAgIyAwLjAgPCByZXNvbHV0aW9uIDw9IDEuMAorICAgICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKGluZm8ucmVzb2x1dGlvbiwgMC4wKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRMZXNzRXF1YWwoaW5mby5yZXNvbHV0aW9uLCAxLjApCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaW5mby5hZGp1c3RhYmxlLCBib29sKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHRpbWUuZ2V0X2Nsb2NrX2luZm8sICd4eHgnKQorCisKIGNsYXNzIFRlc3RMb2NhbGUodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5vbGRsb2MgPSBsb2NhbGUuc2V0bG9jYWxlKGxvY2FsZS5MQ19BTEwpCkBAIC0yNzYsMTkgKzQ2MCwxMiBAQAogCiAKIGNsYXNzIF9CYXNlWWVhclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgIGFjY2VwdDJkeWVhciA9IE5vbmUKLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zYXZlZF9hY2NlcHQyZHllYXIgPSB0aW1lLmFjY2VwdDJkeWVhcgotICAgICAgICB0aW1lLmFjY2VwdDJkeWVhciA9IHNlbGYuYWNjZXB0MmR5ZWFyCi0KLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIHRpbWUuYWNjZXB0MmR5ZWFyID0gc2VsZi5zYXZlZF9hY2NlcHQyZHllYXIKLQogICAgIGRlZiB5ZWFyc3RyKHNlbGYsIHkpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCkKIAogY2xhc3MgX1Rlc3RBc2N0aW1lWWVhcjoKKyAgICBfZm9ybWF0ID0gJyVkJworCiAgICAgZGVmIHllYXJzdHIoc2VsZiwgeSk6CiAgICAgICAgIHJldHVybiB0aW1lLmFzY3RpbWUoKHksKSArICgwLCkgKiA4KS5zcGxpdCgpWy0xXQogCkBAIC0yOTgsMTE0ICs0NzUsMjExIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi55ZWFyc3RyKDEyMzQ1Njc4OSksICcxMjM0NTY3ODknKQogCiBjbGFzcyBfVGVzdFN0cmZ0aW1lWWVhcjoKLSAgICBkZWYgeWVhcnN0cihzZWxmLCB5KToKLSAgICAgICAgcmV0dXJuIHRpbWUuc3RyZnRpbWUoJyVZJywgKHksKSArICgwLCkgKiA4KS5zcGxpdCgpWy0xXQogCi0gICAgZGVmIHRlc3RfbGFyZ2VfeWVhcihzZWxmKToKKyAgICAjIElzc3VlIDEzMzA1OiAgRm9yIHllYXJzIDwgMTAwMCwgdGhlIHZhbHVlIGlzIG5vdCBhbHdheXMKKyAgICAjIHBhZGRlZCB0byA0IGRpZ2l0cyBhY3Jvc3MgcGxhdGZvcm1zLiAgVGhlIEMgc3RhbmRhcmQKKyAgICAjIGFzc3VtZXMgeWVhciA+PSAxOTAwLCBzbyBpdCBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBudW1iZXIKKyAgICAjIG9mIGRpZ2l0cy4KKworICAgIGlmIHRpbWUuc3RyZnRpbWUoJyVZJywgKDEsKSArICgwLCkgKiA4KSA9PSAnMDAwMSc6CisgICAgICAgIF9mb3JtYXQgPSAnJTA0ZCcKKyAgICBlbHNlOgorICAgICAgICBfZm9ybWF0ID0gJyVkJworCisgICAgZGVmIHllYXJzdHIoc2VsZiwgeSk6CisgICAgICAgIHJldHVybiB0aW1lLnN0cmZ0aW1lKCclWScsICh5LCkgKyAoMCwpICogOCkKKworICAgIGRlZiB0ZXN0XzRkeWVhcihzZWxmKToKKyAgICAgICAgIyBDaGVjayB0aGF0IHdlIGNhbiByZXR1cm4gdGhlIHplcm8gcGFkZGVkIHZhbHVlLgorICAgICAgICBpZiBzZWxmLl9mb3JtYXQgPT0gJyUwNGQnOgorICAgICAgICAgICAgc2VsZi50ZXN0X3llYXIoJyUwNGQnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZGVmIHllYXI0ZCh5KToKKyAgICAgICAgICAgICAgICByZXR1cm4gdGltZS5zdHJmdGltZSgnJTRZJywgKHksKSArICgwLCkgKiA4KQorICAgICAgICAgICAgc2VsZi50ZXN0X3llYXIoJyUwNGQnLCBmdW5jPXllYXI0ZCkKKworICAgIGRlZiBza2lwX2lmX25vdF9zdXBwb3J0ZWQoeSk6CisgICAgICAgIG1zZyA9ICJzdHJmdGltZSgpIGlzIGxpbWl0ZWQgdG8gWzE7IDk5OTldIHdpdGggVmlzdWFsIFN0dWRpbyIKICAgICAgICAgIyBDaGVjayB0aGF0IGl0IGRvZXNuJ3QgY3Jhc2ggZm9yIHllYXIgPiA5OTk5CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHRleHQgPSBzZWxmLnllYXJzdHIoMTIzNDUpCisgICAgICAgICAgICB0aW1lLnN0cmZ0aW1lKCclWScsICh5LCkgKyAoMCwpICogOCkKICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICAjIHN0cmZ0aW1lKCkgaXMgbGltaXRlZCB0byBbMTsgOTk5OV0gd2l0aCBWaXN1YWwgU3R1ZGlvCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXh0LCAnMTIzNDUnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYueWVhcnN0cigxMjM0NTY3ODkpLCAnMTIzNDU2Nzg5JykKKyAgICAgICAgICAgIGNvbmQgPSBGYWxzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29uZCA9IFRydWUKKyAgICAgICAgcmV0dXJuIHVuaXR0ZXN0LnNraXBVbmxlc3MoY29uZCwgbXNnKQogCi1jbGFzcyBfVGVzdDJkWWVhcihfQmFzZVllYXJUZXN0KToKLSAgICBhY2NlcHQyZHllYXIgPSAxCisgICAgQHNraXBfaWZfbm90X3N1cHBvcnRlZCgxMDAwMCkKKyAgICBkZWYgdGVzdF9sYXJnZV95ZWFyKHNlbGYpOgorICAgICAgICByZXR1cm4gc3VwZXIoKS50ZXN0X2xhcmdlX3llYXIoKQogCi0gICAgZGVmIHRlc3RfeWVhcihzZWxmKToKLSAgICAgICAgd2l0aCBzdXBwb3J0LmNoZWNrX3dhcm5pbmdzKCk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYueWVhcnN0cigwKSwgJzIwMDAnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnllYXJzdHIoNjkpLCAnMTk2OScpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYueWVhcnN0cig2OCksICcyMDY4JykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi55ZWFyc3RyKDk5KSwgJzE5OTknKQorICAgIEBza2lwX2lmX25vdF9zdXBwb3J0ZWQoMCkKKyAgICBkZWYgdGVzdF9uZWdhdGl2ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHN1cGVyKCkudGVzdF9uZWdhdGl2ZSgpCiAKLSAgICBkZWYgdGVzdF9pbnZhbGlkKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLnllYXJzdHIsIC0xKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLnllYXJzdHIsIDEwMCkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi55ZWFyc3RyLCA5OTkpCisgICAgZGVsIHNraXBfaWZfbm90X3N1cHBvcnRlZAorCiAKIGNsYXNzIF9UZXN0NGRZZWFyKF9CYXNlWWVhclRlc3QpOgotICAgIGFjY2VwdDJkeWVhciA9IDAKKyAgICBfZm9ybWF0ID0gJyVkJwogCi0gICAgZGVmIHRlc3RfeWVhcihzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnllYXJzdHIoMSksICAgICAoJzEnLCAnMDAwMScpKQotICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYueWVhcnN0cig2OCksICAgKCc2OCcsICcwMDY4JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi55ZWFyc3RyKDY5KSwgICAoJzY5JywgJzAwNjknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRJbihzZWxmLnllYXJzdHIoOTkpLCAgICgnOTknLCAnMDA5OScpKQotICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYueWVhcnN0cig5OTkpLCAoJzk5OScsICcwOTk5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi55ZWFyc3RyKDk5OTkpLCAnOTk5OScpCisgICAgZGVmIHRlc3RfeWVhcihzZWxmLCBmbXQ9Tm9uZSwgZnVuYz1Ob25lKToKKyAgICAgICAgZm10ID0gZm10IG9yIHNlbGYuX2Zvcm1hdAorICAgICAgICBmdW5jID0gZnVuYyBvciBzZWxmLnllYXJzdHIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKDEpLCAgICBmbXQgJSAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoNjgpLCAgIGZtdCAlIDY4KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoNjkpLCAgIGZtdCAlIDY5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoOTkpLCAgIGZtdCAlIDk5KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZ1bmMoOTk5KSwgIGZtdCAlIDk5OSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmdW5jKDk5OTkpLCBmbXQgJSA5OTk5KQorCisgICAgZGVmIHRlc3RfbGFyZ2VfeWVhcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnllYXJzdHIoMTIzNDUpLCAnMTIzNDUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYueWVhcnN0cigxMjM0NTY3ODkpLCAnMTIzNDU2Nzg5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnllYXJzdHIoVElNRV9NQVhZRUFSKSwgc3RyKFRJTUVfTUFYWUVBUikpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHNlbGYueWVhcnN0ciwgVElNRV9NQVhZRUFSICsgMSkKIAogICAgIGRlZiB0ZXN0X25lZ2F0aXZlKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0ZXh0ID0gc2VsZi55ZWFyc3RyKC0xKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICMgc3RyZnRpbWUoKSBpcyBsaW1pdGVkIHRvIFsxOyA5OTk5XSB3aXRoIFZpc3VhbCBTdHVkaW8KLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLmFzc2VydEluKHRleHQsICgnLTEnLCAnLTAwMScpKQotCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi55ZWFyc3RyKC0xKSwgc2VsZi5fZm9ybWF0ICUgLTEpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi55ZWFyc3RyKC0xMjM0KSwgJy0xMjM0JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnllYXJzdHIoLTEyMzQ1NiksICctMTIzNDU2JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnllYXJzdHIoLTEyMzQ1Njc4OSksIHN0cigtMTIzNDU2Nzg5KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnllYXJzdHIoLTEyMzQ1Njc4OTApLCBzdHIoLTEyMzQ1Njc4OTApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYueWVhcnN0cihUSU1FX01JTllFQVIgKyAxOTAwKSwgc3RyKFRJTUVfTUlOWUVBUiArIDE5MDApKQorICAgICAgICAjIElzc3VlICMxMzMxMjogaXQgbWF5IHJldHVybiB3cm9uZyB2YWx1ZSBmb3IgeWVhciA8IFRJTUVfTUlOWUVBUiArIDE5MDAKKyAgICAgICAgIyBTa2lwIHRoZSB2YWx1ZSB0ZXN0LCBidXQgY2hlY2sgdGhhdCBubyBlcnJvciBpcyByYWlzZWQKKyAgICAgICAgc2VsZi55ZWFyc3RyKFRJTUVfTUlOWUVBUikKKyAgICAgICAgIyBzZWxmLmFzc2VydEVxdWFsKHNlbGYueWVhcnN0cihUSU1FX01JTllFQVIpLCBzdHIoVElNRV9NSU5ZRUFSKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgc2VsZi55ZWFyc3RyLCBUSU1FX01JTllFQVIgLSAxKQogCiAKLSAgICBkZWYgdGVzdF9ta3RpbWUoc2VsZik6Ci0gICAgICAgICMgSXNzdWUgIzE3MjY2ODcKLSAgICAgICAgZm9yIHQgaW4gKC0yLCAtMSwgMCwgMSk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdHQgPSB0aW1lLmxvY2FsdGltZSh0KQotICAgICAgICAgICAgZXhjZXB0IChPdmVyZmxvd0Vycm9yLCBWYWx1ZUVycm9yKToKLSAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGltZS5ta3RpbWUodHQpLCB0KQotICAgICAgICAjIEl0IG1heSBub3QgYmUgcG9zc2libGUgdG8gcmVsaWFibHkgbWFrZSBta3RpbWUgcmV0dXJuIGVycm9yCi0gICAgICAgICMgb24gYWxsIHBsYXRmb20uICBUaGlzIHdpbGwgbWFrZSBzdXJlIHRoYXQgbm8gb3RoZXIgZXhjZXB0aW9uCi0gICAgICAgICMgdGhhbiBPdmVyZmxvd0Vycm9yIGlzIHJhaXNlZCBmb3IgYW4gZXh0cmVtZSB2YWx1ZS4KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5ta3RpbWUoKC0xLCAxLCAxLCAwLCAwLCAwLCAtMSwgLTEsIC0xKSkKLSAgICAgICAgZXhjZXB0IE92ZXJmbG93RXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0KLWNsYXNzIFRlc3RBc2N0aW1lQWNjZXB0MmRZZWFyKF9UZXN0QXNjdGltZVllYXIsIF9UZXN0MmRZZWFyKToKLSAgICBwYXNzCi0KLWNsYXNzIFRlc3RTdHJmdGltZUFjY2VwdDJkWWVhcihfVGVzdFN0cmZ0aW1lWWVhciwgX1Rlc3QyZFllYXIpOgotICAgIHBhc3MKLQogY2xhc3MgVGVzdEFzY3RpbWU0ZHllYXIoX1Rlc3RBc2N0aW1lWWVhciwgX1Rlc3Q0ZFllYXIpOgogICAgIHBhc3MKIAogY2xhc3MgVGVzdFN0cmZ0aW1lNGR5ZWFyKF9UZXN0U3RyZnRpbWVZZWFyLCBfVGVzdDRkWWVhcik6CiAgICAgcGFzcwogCi1jbGFzcyBUZXN0MmR5ZWFyQm9vbChfVGVzdEFzY3RpbWVZZWFyLCBfVGVzdDJkWWVhcik6Ci0gICAgYWNjZXB0MmR5ZWFyID0gVHJ1ZQogCi1jbGFzcyBUZXN0NGR5ZWFyQm9vbChfVGVzdEFzY3RpbWVZZWFyLCBfVGVzdDRkWWVhcik6Ci0gICAgYWNjZXB0MmR5ZWFyID0gRmFsc2UKK2NsYXNzIFRlc3RQeXRpbWUodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5pbnZhbGlkX3ZhbHVlcyA9ICgKKyAgICAgICAgICAgIC0oMiAqKiAxMDApLCAyICoqIDEwMCwKKyAgICAgICAgICAgIC0oMi4wICoqIDEwMC4wKSwgMi4wICoqIDEwMC4wLAorICAgICAgICApCiAKLWNsYXNzIFRlc3RBY2NlcHQyWWVhckJhZChfVGVzdEFzY3RpbWVZZWFyLCBfQmFzZVllYXJUZXN0KToKLSAgICBjbGFzcyBYOgotICAgICAgICBkZWYgX19ib29sX18oc2VsZik6Ci0gICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ2JvbycpCi0gICAgYWNjZXB0MmR5ZWFyID0gWCgpCi0gICAgZGVmIHRlc3RfMmR5ZWFyKHNlbGYpOgotICAgICAgICBwYXNzCi0gICAgZGVmIHRlc3RfaW52YWxpZChzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCBzZWxmLnllYXJzdHIsIDIwMCkKKyAgICBkZWYgdGVzdF90aW1lX3Qoc2VsZik6CisgICAgICAgIGZyb20gX3Rlc3RjYXBpIGltcG9ydCBweXRpbWVfb2JqZWN0X3RvX3RpbWVfdAorICAgICAgICBmb3Igb2JqLCB0aW1lX3QgaW4gKAorICAgICAgICAgICAgKDAsIDApLAorICAgICAgICAgICAgKC0xLCAtMSksCisgICAgICAgICAgICAoLTEuMCwgLTEpLAorICAgICAgICAgICAgKC0xLjksIC0xKSwKKyAgICAgICAgICAgICgxLjAsIDEpLAorICAgICAgICAgICAgKDEuOSwgMSksCisgICAgICAgICk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB5dGltZV9vYmplY3RfdG9fdGltZV90KG9iaiksIHRpbWVfdCkKIAorICAgICAgICBmb3IgaW52YWxpZCBpbiBzZWxmLmludmFsaWRfdmFsdWVzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoT3ZlcmZsb3dFcnJvciwgcHl0aW1lX29iamVjdF90b190aW1lX3QsIGludmFsaWQpCisKKyAgICBkZWYgdGVzdF90aW1ldmFsKHNlbGYpOgorICAgICAgICBmcm9tIF90ZXN0Y2FwaSBpbXBvcnQgcHl0aW1lX29iamVjdF90b190aW1ldmFsCisgICAgICAgIGZvciBvYmosIHRpbWV2YWwgaW4gKAorICAgICAgICAgICAgKDAsICgwLCAwKSksCisgICAgICAgICAgICAoLTEsICgtMSwgMCkpLAorICAgICAgICAgICAgKC0xLjAsICgtMSwgMCkpLAorICAgICAgICAgICAgKDFlLTYsICgwLCAxKSksCisgICAgICAgICAgICAoLTFlLTYsICgtMSwgOTk5OTk5KSksCisgICAgICAgICAgICAoLTEuMiwgKC0yLCA4MDAwMDApKSwKKyAgICAgICAgICAgICgxLjEyMzQ1NjAsICgxLCAxMjM0NTYpKSwKKyAgICAgICAgICAgICgxLjEyMzQ1NjksICgxLCAxMjM0NTYpKSwKKyAgICAgICAgICAgICgtMS4xMjM0NTYwLCAoLTIsIDg3NjU0NCkpLAorICAgICAgICAgICAgKC0xLjEyMzQ1NjEsICgtMiwgODc2NTQzKSksCisgICAgICAgICk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB5dGltZV9vYmplY3RfdG9fdGltZXZhbChvYmopLCB0aW1ldmFsKQorCisgICAgICAgIGZvciBpbnZhbGlkIGluIHNlbGYuaW52YWxpZF92YWx1ZXM6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCBweXRpbWVfb2JqZWN0X3RvX3RpbWV2YWwsIGludmFsaWQpCisKKyAgICBkZWYgdGVzdF90aW1lc3BlYyhzZWxmKToKKyAgICAgICAgZnJvbSBfdGVzdGNhcGkgaW1wb3J0IHB5dGltZV9vYmplY3RfdG9fdGltZXNwZWMKKyAgICAgICAgZm9yIG9iaiwgdGltZXNwZWMgaW4gKAorICAgICAgICAgICAgKDAsICgwLCAwKSksCisgICAgICAgICAgICAoLTEsICgtMSwgMCkpLAorICAgICAgICAgICAgKC0xLjAsICgtMSwgMCkpLAorICAgICAgICAgICAgKDFlLTksICgwLCAxKSksCisgICAgICAgICAgICAoLTFlLTksICgtMSwgOTk5OTk5OTk5KSksCisgICAgICAgICAgICAoLTEuMiwgKC0yLCA4MDAwMDAwMDApKSwKKyAgICAgICAgICAgICgxLjEyMzQ1Njc4OTAsICgxLCAxMjM0NTY3ODkpKSwKKyAgICAgICAgICAgICgxLjEyMzQ1Njc4OTksICgxLCAxMjM0NTY3ODkpKSwKKyAgICAgICAgICAgICgtMS4xMjM0NTY3ODkwLCAoLTIsIDg3NjU0MzIxMSkpLAorICAgICAgICAgICAgKC0xLjEyMzQ1Njc4OTEsICgtMiwgODc2NTQzMjEwKSksCisgICAgICAgICk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB5dGltZV9vYmplY3RfdG9fdGltZXNwZWMob2JqKSwgdGltZXNwZWMpCisKKyAgICAgICAgZm9yIGludmFsaWQgaW4gc2VsZi5pbnZhbGlkX3ZhbHVlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIHB5dGltZV9vYmplY3RfdG9fdGltZXNwZWMsIGludmFsaWQpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh0aW1lLl9TVFJVQ1RfVE1fSVRFTVMgPT0gMTEsICJuZWVkcyB0bV96b25lIHN1cHBvcnQiKQorICAgIGRlZiB0ZXN0X2xvY2FsdGltZV90aW1lem9uZShzZWxmKToKKworICAgICAgICAjIEdldCB0aGUgbG9jYWx0aW1lIGFuZCBleGFtaW5lIGl0IGZvciB0aGUgb2Zmc2V0IGFuZCB6b25lLgorICAgICAgICBsdCA9IHRpbWUubG9jYWx0aW1lKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIobHQsICJ0bV9nbXRvZmYiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIobHQsICJ0bV96b25lIikpCisKKyAgICAgICAgIyBTZWUgaWYgdGhlIG9mZnNldCBhbmQgem9uZSBhcmUgc2ltaWxhciB0byB0aGUgbW9kdWxlCisgICAgICAgICMgYXR0cmlidXRlcy4KKyAgICAgICAgaWYgbHQudG1fZ210b2ZmIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IGhhc2F0dHIodGltZSwgInRpbWV6b25lIikpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGx0LnRtX2dtdG9mZiwgLVt0aW1lLnRpbWV6b25lLCB0aW1lLmFsdHpvbmVdW2x0LnRtX2lzZHN0XSkKKyAgICAgICAgaWYgbHQudG1fem9uZSBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCBoYXNhdHRyKHRpbWUsICJ0em5hbWUiKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHQudG1fem9uZSwgdGltZS50em5hbWVbbHQudG1faXNkc3RdKQorCisgICAgICAgICMgVHJ5IGFuZCBtYWtlIFVOSVggdGltZXMgZnJvbSB0aGUgbG9jYWx0aW1lIGFuZCBhIDktdHVwbGUKKyAgICAgICAgIyBjcmVhdGVkIGZyb20gdGhlIGxvY2FsdGltZS4gVGVzdCB0byBzZWUgdGhhdCB0aGUgdGltZXMgYXJlCisgICAgICAgICMgdGhlIHNhbWUuCisgICAgICAgIHQgPSB0aW1lLm1rdGltZShsdCk7IHQ5ID0gdGltZS5ta3RpbWUobHRbOjldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHQsIHQ5KQorCisgICAgICAgICMgTWFrZSBsb2NhbHRpbWVzIGZyb20gdGhlIFVOSVggdGltZXMgYW5kIGNvbXBhcmUgdGhlbSB0bworICAgICAgICAjIHRoZSBvcmlnaW5hbCBsb2NhbHRpbWUsIHRodXMgbWFraW5nIGEgcm91bmQgdHJpcC4KKyAgICAgICAgbmV3X2x0ID0gdGltZS5sb2NhbHRpbWUodCk7IG5ld19sdDkgPSB0aW1lLmxvY2FsdGltZSh0OSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfbHQsIGx0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19sdC50bV9nbXRvZmYsIGx0LnRtX2dtdG9mZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfbHQudG1fem9uZSwgbHQudG1fem9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfbHQ5LCBsdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfbHQudG1fZ210b2ZmLCBsdC50bV9nbXRvZmYpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2x0OS50bV96b25lLCBsdC50bV96b25lKQorCisgICAgQHVuaXR0ZXN0LnNraXBVbmxlc3ModGltZS5fU1RSVUNUX1RNX0lURU1TID09IDExLCAibmVlZHMgdG1fem9uZSBzdXBwb3J0IikKKyAgICBkZWYgdGVzdF9zdHJwdGltZV90aW1lem9uZShzZWxmKToKKyAgICAgICAgdCA9IHRpbWUuc3RycHRpbWUoIlVUQyIsICIlWiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodC50bV96b25lLCAnVVRDJykKKyAgICAgICAgdCA9IHRpbWUuc3RycHRpbWUoIiswNTAwIiwgIiV6IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0LnRtX2dtdG9mZiwgNSAqIDM2MDApCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh0aW1lLl9TVFJVQ1RfVE1fSVRFTVMgPT0gMTEsICJuZWVkcyB0bV96b25lIHN1cHBvcnQiKQorICAgIGRlZiB0ZXN0X3Nob3J0X3RpbWVzKHNlbGYpOgorCisgICAgICAgIGltcG9ydCBwaWNrbGUKKworICAgICAgICAjIExvYWQgYSBzaG9ydCB0aW1lIHN0cnVjdHVyZSB1c2luZyBwaWNrbGUuCisgICAgICAgIHN0ID0gYiJjdGltZVxuc3RydWN0X3RpbWVcbnAwXG4oKEkyMDA3XG5JOFxuSTExXG5JMVxuSTI0XG5JNDlcbkk1XG5JMjIzXG5JMVxudHAxXG4oZHAyXG50cDNcblJwNFxuLiIKKyAgICAgICAgbHQgPSBwaWNrbGUubG9hZHMoc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobHQudG1fZ210b2ZmLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydElzKGx0LnRtX3pvbmUsIE5vbmUpCiAKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgKICAgICAgICAgVGltZVRlc3RDYXNlLAogICAgICAgICBUZXN0TG9jYWxlLAotICAgICAgICBUZXN0QXNjdGltZUFjY2VwdDJkWWVhciwKLSAgICAgICAgVGVzdFN0cmZ0aW1lQWNjZXB0MmRZZWFyLAogICAgICAgICBUZXN0QXNjdGltZTRkeWVhciwKICAgICAgICAgVGVzdFN0cmZ0aW1lNGR5ZWFyLAotICAgICAgICBUZXN0MmR5ZWFyQm9vbCwKLSAgICAgICAgVGVzdDRkeWVhckJvb2wsCi0gICAgICAgIFRlc3RBY2NlcHQyWWVhckJhZCkKKyAgICAgICAgVGVzdFB5dGltZSkKIAogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90b2tlbml6ZS5weSBiL0xpYi90ZXN0L3Rlc3RfdG9rZW5pemUucHkKaW5kZXggYjZhOWNhMS4uMjEzZTliNCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF90b2tlbml6ZS5weQorKysgYi9MaWIvdGVzdC90ZXN0X3Rva2VuaXplLnB5CkBAIC0yODksNiArMjg5LDY0IEBACiAgICAgT1AgICAgICAgICAnKycgICAgICAgICAgICgxLCAyOSkgKDEsIDMwKQogICAgIFNUUklORyAgICAgJ1IiQUJDIicgICAgICAoMSwgMzEpICgxLCAzNykKIAorICAgID4+PiBkdW1wX3Rva2VucygidSdhYmMnICsgVSdhYmMnIikKKyAgICBFTkNPRElORyAgICd1dGYtOCcgICAgICAgKDAsIDApICgwLCAwKQorICAgIFNUUklORyAgICAgInUnYWJjJyIgICAgICAoMSwgMCkgKDEsIDYpCisgICAgT1AgICAgICAgICAnKycgICAgICAgICAgICgxLCA3KSAoMSwgOCkKKyAgICBTVFJJTkcgICAgICJVJ2FiYyciICAgICAgKDEsIDkpICgxLCAxNSkKKyAgICA+Pj4gZHVtcF90b2tlbnMoJ3UiYWJjIiArIFUiYWJjIicpCisgICAgRU5DT0RJTkcgICAndXRmLTgnICAgICAgICgwLCAwKSAoMCwgMCkKKyAgICBTVFJJTkcgICAgICd1ImFiYyInICAgICAgKDEsIDApICgxLCA2KQorICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgNykgKDEsIDgpCisgICAgU1RSSU5HICAgICAnVSJhYmMiJyAgICAgICgxLCA5KSAoMSwgMTUpCisKKyAgICA+Pj4gZHVtcF90b2tlbnMoImInYWJjJyArIEInYWJjJyIpCisgICAgRU5DT0RJTkcgICAndXRmLTgnICAgICAgICgwLCAwKSAoMCwgMCkKKyAgICBTVFJJTkcgICAgICJiJ2FiYyciICAgICAgKDEsIDApICgxLCA2KQorICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgNykgKDEsIDgpCisgICAgU1RSSU5HICAgICAiQidhYmMnIiAgICAgICgxLCA5KSAoMSwgMTUpCisgICAgPj4+IGR1bXBfdG9rZW5zKCdiImFiYyIgKyBCImFiYyInKQorICAgIEVOQ09ESU5HICAgJ3V0Zi04JyAgICAgICAoMCwgMCkgKDAsIDApCisgICAgU1RSSU5HICAgICAnYiJhYmMiJyAgICAgICgxLCAwKSAoMSwgNikKKyAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDcpICgxLCA4KQorICAgIFNUUklORyAgICAgJ0IiYWJjIicgICAgICAoMSwgOSkgKDEsIDE1KQorICAgID4+PiBkdW1wX3Rva2VucygiYnInYWJjJyArIGJSJ2FiYycgKyBCcidhYmMnICsgQlInYWJjJyIpCisgICAgRU5DT0RJTkcgICAndXRmLTgnICAgICAgICgwLCAwKSAoMCwgMCkKKyAgICBTVFJJTkcgICAgICJicidhYmMnIiAgICAgKDEsIDApICgxLCA3KQorICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgOCkgKDEsIDkpCisgICAgU1RSSU5HICAgICAiYlInYWJjJyIgICAgICgxLCAxMCkgKDEsIDE3KQorICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgMTgpICgxLCAxOSkKKyAgICBTVFJJTkcgICAgICJCcidhYmMnIiAgICAgKDEsIDIwKSAoMSwgMjcpCisgICAgT1AgICAgICAgICAnKycgICAgICAgICAgICgxLCAyOCkgKDEsIDI5KQorICAgIFNUUklORyAgICAgIkJSJ2FiYyciICAgICAoMSwgMzApICgxLCAzNykKKyAgICA+Pj4gZHVtcF90b2tlbnMoJ2JyImFiYyIgKyBiUiJhYmMiICsgQnIiYWJjIiArIEJSImFiYyInKQorICAgIEVOQ09ESU5HICAgJ3V0Zi04JyAgICAgICAoMCwgMCkgKDAsIDApCisgICAgU1RSSU5HICAgICAnYnIiYWJjIicgICAgICgxLCAwKSAoMSwgNykKKyAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDgpICgxLCA5KQorICAgIFNUUklORyAgICAgJ2JSImFiYyInICAgICAoMSwgMTApICgxLCAxNykKKyAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDE4KSAoMSwgMTkpCisgICAgU1RSSU5HICAgICAnQnIiYWJjIicgICAgICgxLCAyMCkgKDEsIDI3KQorICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgMjgpICgxLCAyOSkKKyAgICBTVFJJTkcgICAgICdCUiJhYmMiJyAgICAgKDEsIDMwKSAoMSwgMzcpCisgICAgPj4+IGR1bXBfdG9rZW5zKCJyYidhYmMnICsgckInYWJjJyArIFJiJ2FiYycgKyBSQidhYmMnIikKKyAgICBFTkNPRElORyAgICd1dGYtOCcgICAgICAgKDAsIDApICgwLCAwKQorICAgIFNUUklORyAgICAgInJiJ2FiYyciICAgICAoMSwgMCkgKDEsIDcpCisgICAgT1AgICAgICAgICAnKycgICAgICAgICAgICgxLCA4KSAoMSwgOSkKKyAgICBTVFJJTkcgICAgICJyQidhYmMnIiAgICAgKDEsIDEwKSAoMSwgMTcpCisgICAgT1AgICAgICAgICAnKycgICAgICAgICAgICgxLCAxOCkgKDEsIDE5KQorICAgIFNUUklORyAgICAgIlJiJ2FiYyciICAgICAoMSwgMjApICgxLCAyNykKKyAgICBPUCAgICAgICAgICcrJyAgICAgICAgICAgKDEsIDI4KSAoMSwgMjkpCisgICAgU1RSSU5HICAgICAiUkInYWJjJyIgICAgICgxLCAzMCkgKDEsIDM3KQorICAgID4+PiBkdW1wX3Rva2VucygncmIiYWJjIiArIHJCImFiYyIgKyBSYiJhYmMiICsgUkIiYWJjIicpCisgICAgRU5DT0RJTkcgICAndXRmLTgnICAgICAgICgwLCAwKSAoMCwgMCkKKyAgICBTVFJJTkcgICAgICdyYiJhYmMiJyAgICAgKDEsIDApICgxLCA3KQorICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgOCkgKDEsIDkpCisgICAgU1RSSU5HICAgICAnckIiYWJjIicgICAgICgxLCAxMCkgKDEsIDE3KQorICAgIE9QICAgICAgICAgJysnICAgICAgICAgICAoMSwgMTgpICgxLCAxOSkKKyAgICBTVFJJTkcgICAgICdSYiJhYmMiJyAgICAgKDEsIDIwKSAoMSwgMjcpCisgICAgT1AgICAgICAgICAnKycgICAgICAgICAgICgxLCAyOCkgKDEsIDI5KQorICAgIFNUUklORyAgICAgJ1JCImFiYyInICAgICAoMSwgMzApICgxLCAzNykKKwogT3BlcmF0b3JzCiAKICAgICA+Pj4gZHVtcF90b2tlbnMoImRlZiBkMjIoYSwgYiwgYz0yLCBkPTIsICprKTogcGFzcyIpCkBAIC01NjMsMTUgKzYyMSwyOCBAQAogICAgIE5BTUUgICAgICAgJ2dyw7xuJyAgICAgICAgKDIsIDApICgyLCA0KQogICAgIE9QICAgICAgICAgJz0nICAgICAgICAgICAoMiwgNSkgKDIsIDYpCiAgICAgU1RSSU5HICAgICAiJ2dyZWVuJyIgICAgICgyLCA3KSAoMiwgMTQpCisKK0xlZ2FjeSB1bmljb2RlIGxpdGVyYWxzOgorCisgICAgPj4+IGR1bXBfdG9rZW5zKCLDlnJ0ZXIgPSB1J3BsYWNlcydcXG5ncsO8biA9IFUnZ3JlZW4nIikKKyAgICBFTkNPRElORyAgICd1dGYtOCcgICAgICAgKDAsIDApICgwLCAwKQorICAgIE5BTUUgICAgICAgJ8OWcnRlcicgICAgICAgKDEsIDApICgxLCA1KQorICAgIE9QICAgICAgICAgJz0nICAgICAgICAgICAoMSwgNikgKDEsIDcpCisgICAgU1RSSU5HICAgICAidSdwbGFjZXMnIiAgICgxLCA4KSAoMSwgMTcpCisgICAgTkVXTElORSAgICAnXFxuJyAgICAgICAgICAoMSwgMTcpICgxLCAxOCkKKyAgICBOQU1FICAgICAgICdncsO8bicgICAgICAgICgyLCAwKSAoMiwgNCkKKyAgICBPUCAgICAgICAgICc9JyAgICAgICAgICAgKDIsIDUpICgyLCA2KQorICAgIFNUUklORyAgICAgIlUnZ3JlZW4nIiAgICAoMiwgNykgKDIsIDE1KQogIiIiCiAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAogZnJvbSB0b2tlbml6ZSBpbXBvcnQgKHRva2VuaXplLCBfdG9rZW5pemUsIHVudG9rZW5pemUsIE5VTUJFUiwgTkFNRSwgT1AsCi0gICAgICAgICAgICAgICAgICAgICBTVFJJTkcsIEVORE1BUktFUiwgdG9rX25hbWUsIGRldGVjdF9lbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgIFNUUklORywgRU5ETUFSS0VSLCBFTkNPRElORywgdG9rX25hbWUsIGRldGVjdF9lbmNvZGluZywKICAgICAgICAgICAgICAgICAgICAgIG9wZW4gYXMgdG9rZW5pemVfb3BlbikKIGZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KIGZyb20gdW5pdHRlc3QgaW1wb3J0IFRlc3RDYXNlCiBpbXBvcnQgb3MsIHN5cywgZ2xvYgoraW1wb3J0IHRva2VuCiAKIGRlZiBkdW1wX3Rva2VucyhzKToKICAgICAiIiJQcmludCBvdXQgdGhlIHRva2VucyBpbiBzIGluIGEgdGFibGUgZm9ybWF0LgpAQCAtNjAwLDcgKzY3MSw3IEBACiAgICAgICAgIGYuY2xvc2UoKQogICAgIHRva2VuczEgPSBbdG9rWzoyXSBmb3IgdG9rIGluIHRva2VuX2xpc3RdCiAgICAgbmV3X2J5dGVzID0gdW50b2tlbml6ZSh0b2tlbnMxKQotICAgIHJlYWRsaW5lID0gKGxpbmUgZm9yIGxpbmUgaW4gbmV3X2J5dGVzLnNwbGl0bGluZXMoMSkpLl9fbmV4dF9fCisgICAgcmVhZGxpbmUgPSAobGluZSBmb3IgbGluZSBpbiBuZXdfYnl0ZXMuc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKSkuX19uZXh0X18KICAgICB0b2tlbnMyID0gW3Rva1s6Ml0gZm9yIHRvayBpbiB0b2tlbml6ZShyZWFkbGluZSldCiAgICAgcmV0dXJuIHRva2VuczEgPT0gdG9rZW5zMgogCkBAIC04OTUsNiArOTY2LDM1IEBACiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZwLmVuY29kaW5nLCAndXRmLTgtc2lnJykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnAubW9kZSwgJ3InKQogCisgICAgZGVmIHRlc3RfZmlsZW5hbWVfaW5fZXhjZXB0aW9uKHNlbGYpOgorICAgICAgICAjIFdoZW4gcG9zc2libGUsIGluY2x1ZGUgdGhlIGZpbGUgbmFtZSBpbiB0aGUgZXhjZXB0aW9uLgorICAgICAgICBwYXRoID0gJ3NvbWVfZmlsZV9wYXRoJworICAgICAgICBsaW5lcyA9ICgKKyAgICAgICAgICAgIGIncHJpbnQoIlx4ZGYiKScsICMgTGF0aW4tMTogTEFUSU4gU01BTEwgTEVUVEVSIFNIQVJQIFMKKyAgICAgICAgICAgICkKKyAgICAgICAgY2xhc3MgQnVuazoKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsaW5lcywgcGF0aCk6CisgICAgICAgICAgICAgICAgc2VsZi5uYW1lID0gcGF0aAorICAgICAgICAgICAgICAgIHNlbGYuX2xpbmVzID0gbGluZXMKKyAgICAgICAgICAgICAgICBzZWxmLl9pbmRleCA9IDAKKworICAgICAgICAgICAgZGVmIHJlYWRsaW5lKHNlbGYpOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuX2luZGV4ID09IGxlbihsaW5lcyk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb24KKyAgICAgICAgICAgICAgICBsaW5lID0gbGluZXNbc2VsZi5faW5kZXhdCisgICAgICAgICAgICAgICAgc2VsZi5faW5kZXggKz0gMQorICAgICAgICAgICAgICAgIHJldHVybiBsaW5lCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTeW50YXhFcnJvcik6CisgICAgICAgICAgICBpbnMgPSBCdW5rKGxpbmVzLCBwYXRoKQorICAgICAgICAgICAgIyBNYWtlIHN1cmUgbGFja2luZyBhIG5hbWUgaXNuJ3QgYW4gaXNzdWUuCisgICAgICAgICAgICBkZWwgaW5zLm5hbWUKKyAgICAgICAgICAgIGRldGVjdF9lbmNvZGluZyhpbnMucmVhZGxpbmUpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXNSZWdleChTeW50YXhFcnJvciwgJy4qe30nLmZvcm1hdChwYXRoKSk6CisgICAgICAgICAgICBpbnMgPSBCdW5rKGxpbmVzLCBwYXRoKQorICAgICAgICAgICAgZGV0ZWN0X2VuY29kaW5nKGlucy5yZWFkbGluZSkKKworCiBjbGFzcyBUZXN0VG9rZW5pemUoVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfdG9rZW5pemUoc2VsZik6CkBAIC05MzYsNiArMTAzNiw3OCBAQAogCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShlbmNvZGluZ191c2VkLCBlbmNvZGluZykKIAorICAgIGRlZiBhc3NlcnRFeGFjdFR5cGVFcXVhbChzZWxmLCBvcHN0ciwgKm9wdHlwZXMpOgorICAgICAgICB0b2tlbnMgPSBsaXN0KHRva2VuaXplKEJ5dGVzSU8ob3BzdHIuZW5jb2RlKCd1dGYtOCcpKS5yZWFkbGluZSkpCisgICAgICAgIG51bV9vcHR5cGVzID0gbGVuKG9wdHlwZXMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHRva2VucyksIDIgKyBudW1fb3B0eXBlcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0b2tlbi50b2tfbmFtZVt0b2tlbnNbMF0uZXhhY3RfdHlwZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4udG9rX25hbWVbRU5DT0RJTkddKQorICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fb3B0eXBlcyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRva2VuLnRva19uYW1lW3Rva2Vuc1tpICsgMV0uZXhhY3RfdHlwZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnRva19uYW1lW29wdHlwZXNbaV1dKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRva2VuLnRva19uYW1lW3Rva2Vuc1sxICsgbnVtX29wdHlwZXNdLmV4YWN0X3R5cGVdLAorICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLnRva19uYW1lW3Rva2VuLkVORE1BUktFUl0pCisKKyAgICBkZWYgdGVzdF9leGFjdF90eXBlKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCcoKScsIHRva2VuLkxQQVIsIHRva2VuLlJQQVIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJ1tdJywgdG9rZW4uTFNRQiwgdG9rZW4uUlNRQikKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnOicsIHRva2VuLkNPTE9OKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCcsJywgdG9rZW4uQ09NTUEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJzsnLCB0b2tlbi5TRU1JKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCcrJywgdG9rZW4uUExVUykKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnLScsIHRva2VuLk1JTlVTKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCcqJywgdG9rZW4uU1RBUikKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnLycsIHRva2VuLlNMQVNIKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCd8JywgdG9rZW4uVkJBUikKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnJicsIHRva2VuLkFNUEVSKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCc8JywgdG9rZW4uTEVTUykKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnPicsIHRva2VuLkdSRUFURVIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJz0nLCB0b2tlbi5FUVVBTCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnLicsIHRva2VuLkRPVCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnJScsIHRva2VuLlBFUkNFTlQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJ3t9JywgdG9rZW4uTEJSQUNFLCB0b2tlbi5SQlJBQ0UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJz09JywgdG9rZW4uRVFFUVVBTCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnIT0nLCB0b2tlbi5OT1RFUVVBTCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnPD0nLCB0b2tlbi5MRVNTRVFVQUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJz49JywgdG9rZW4uR1JFQVRFUkVRVUFMKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCd+JywgdG9rZW4uVElMREUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJ14nLCB0b2tlbi5DSVJDVU1GTEVYKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCc8PCcsIHRva2VuLkxFRlRTSElGVCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnPj4nLCB0b2tlbi5SSUdIVFNISUZUKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCcqKicsIHRva2VuLkRPVUJMRVNUQVIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJys9JywgdG9rZW4uUExVU0VRVUFMKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCctPScsIHRva2VuLk1JTkVRVUFMKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCcqPScsIHRva2VuLlNUQVJFUVVBTCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnLz0nLCB0b2tlbi5TTEFTSEVRVUFMKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCclPScsIHRva2VuLlBFUkNFTlRFUVVBTCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnJj0nLCB0b2tlbi5BTVBFUkVRVUFMKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCd8PScsIHRva2VuLlZCQVJFUVVBTCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnXj0nLCB0b2tlbi5DSVJDVU1GTEVYRVFVQUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJ149JywgdG9rZW4uQ0lSQ1VNRkxFWEVRVUFMKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCc8PD0nLCB0b2tlbi5MRUZUU0hJRlRFUVVBTCkKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnPj49JywgdG9rZW4uUklHSFRTSElGVEVRVUFMKQorICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCcqKj0nLCB0b2tlbi5ET1VCTEVTVEFSRVFVQUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJy8vJywgdG9rZW4uRE9VQkxFU0xBU0gpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJy8vPScsIHRva2VuLkRPVUJMRVNMQVNIRVFVQUwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJ0AnLCB0b2tlbi5BVCkKKworICAgICAgICBzZWxmLmFzc2VydEV4YWN0VHlwZUVxdWFsKCdhKioyK2IqKjI9PWMqKjInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BTUUsIHRva2VuLkRPVUJMRVNUQVIsIE5VTUJFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5QTFVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BTUUsIHRva2VuLkRPVUJMRVNUQVIsIE5VTUJFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5FUUVRVUFMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BTUUsIHRva2VuLkRPVUJMRVNUQVIsIE5VTUJFUikKKyAgICAgICAgc2VsZi5hc3NlcnRFeGFjdFR5cGVFcXVhbCgnezEsIDIsIDN9JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5MQlJBQ0UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uTlVNQkVSLCB0b2tlbi5DT01NQSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5OVU1CRVIsIHRva2VuLkNPTU1BLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLk5VTUJFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5SQlJBQ0UpCisgICAgICAgIHNlbGYuYXNzZXJ0RXhhY3RUeXBlRXF1YWwoJ14oeCAmIDB4MSknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLkNJUkNVTUZMRVgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW4uTFBBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2tlbi5OQU1FLCB0b2tlbi5BTVBFUiwgdG9rZW4uTlVNQkVSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuLlJQQVIpCiAKIF9fdGVzdF9fID0geyJkb2N0ZXN0cyIgOiBkb2N0ZXN0cywgJ2RlY2lzdG10JzogZGVjaXN0bXR9CiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdG9vbHMucHkgYi9MaWIvdGVzdC90ZXN0X3Rvb2xzLnB5CmluZGV4IGNmZTEzYWMuLjdhMjUwNjkgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdG9vbHMucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90b29scy5weQpAQCAtNiw4ICs2LDkgQEAKIAogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCi1pbXBvcnQgaW1wCitpbXBvcnQgaW1wb3J0bGliLm1hY2hpbmVyeQogaW1wb3J0IHVuaXR0ZXN0Citmcm9tIHVuaXR0ZXN0IGltcG9ydCBtb2NrCiBpbXBvcnQgc3lzY29uZmlnCiBpbXBvcnQgdGVtcGZpbGUKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydApAQCAtMTgsOCArMTksOCBAQAogICAgICMgYW5kIHJ1biB0aGUgdGVzdHMgaW4gdGhhdCBjYXNlIHRvbz8KICAgICByYWlzZSB1bml0dGVzdC5Ta2lwVGVzdCgndGVzdCBpcnJlbGV2YW50IGZvciBhbiBpbnN0YWxsZWQgUHl0aG9uJykKIAotc3JjZGlyID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdwcm9qZWN0YmFzZScpCi1iYXNlcGF0aCA9IG9zLnBhdGguam9pbihvcy5nZXRjd2QoKSwgc3JjZGlyLCAnVG9vbHMnKQorYmFzZXBhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKSksCisgICAgICAgICAgICAgICAgICAgICAgICAnVG9vbHMnKQogc2NyaXB0c2RpciA9IG9zLnBhdGguam9pbihiYXNlcGF0aCwgJ3NjcmlwdHMnKQogCiAKQEAgLTQwLDcgKzQxLDcgQEAKICAgICAjIGFkZGVkIGZvciBhIHNjcmlwdCBpdCBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHdoaXRlbGlzdCBiZWxvdy4KIAogICAgICMgc2NyaXB0cyB0aGF0IGhhdmUgaW5kZXBlbmRlbnQgdGVzdHMuCi0gICAgd2hpdGVsaXN0ID0gWydyZWluZGVudC5weSddCisgICAgd2hpdGVsaXN0ID0gWydyZWluZGVudC5weScsICdwZGVwcy5weScsICdncHJvZjJodG1sJ10KICAgICAjIHNjcmlwdHMgdGhhdCBjYW4ndCBiZSBpbXBvcnRlZCB3aXRob3V0IHJ1bm5pbmcKICAgICBibGFja2xpc3QgPSBbJ21ha2VfY3R5cGUucHknXQogICAgICMgc2NyaXB0cyB0aGF0IHVzZSB3aW5kb3dzLW9ubHkgbW9kdWxlcwpAQCAtNzksNyArODAsOCBAQAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBzZXRVcENsYXNzKHNlbGYpOgogICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHNjcmlwdHNkaXIsICdwZGVwcy5weScpCi0gICAgICAgIHNlbGYucGRlcHMgPSBpbXAubG9hZF9zb3VyY2UoJ3BkZXBzJywgcGF0aCkKKyAgICAgICAgbG9hZGVyID0gaW1wb3J0bGliLm1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyKCdwZGVwcycsIHBhdGgpCisgICAgICAgIHNlbGYucGRlcHMgPSBsb2FkZXIubG9hZF9tb2R1bGUoKQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIHRlYXJEb3duQ2xhc3Moc2VsZik6CkBAIC05OSw2ICsxMDEsMzUgQEAKICAgICAgICAgc2VsZi5wZGVwcy5pbnZlcnNlKHsnYSc6IFtdfSkKIAogCitjbGFzcyBHcHJvZjJodG1sVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHNjcmlwdHNkaXIsICdncHJvZjJodG1sLnB5JykKKyAgICAgICAgbG9hZGVyID0gaW1wb3J0bGliLm1hY2hpbmVyeS5Tb3VyY2VGaWxlTG9hZGVyKCdncHJvZjJodG1sJywgcGF0aCkKKyAgICAgICAgc2VsZi5ncHJvZiA9IGxvYWRlci5sb2FkX21vZHVsZSgpCisgICAgICAgIG9sZGFyZ3YgPSBzeXMuYXJndgorICAgICAgICBkZWYgZml4dXAoKToKKyAgICAgICAgICAgIHN5cy5hcmd2ID0gb2xkYXJndgorICAgICAgICBzZWxmLmFkZENsZWFudXAoZml4dXApCisgICAgICAgIHN5cy5hcmd2ID0gW10KKworICAgIGRlZiB0ZXN0X2dwcm9mKHNlbGYpOgorICAgICAgICAjIElzc3VlICMxNDUwODogdGhpcyB1c2VkIHRvIGZhaWwgd2l0aCBhbiBOYW1lRXJyb3IuCisgICAgICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3Qoc2VsZi5ncHJvZiwgJ3dlYmJyb3dzZXInKSBhcyB3bW9jaywgXAorICAgICAgICAgICAgICAgIHRlbXBmaWxlLlRlbXBvcmFyeURpcmVjdG9yeSgpIGFzIHRtcGRpcjoKKyAgICAgICAgICAgIGZuID0gb3MucGF0aC5qb2luKHRtcGRpciwgJ2FiYycpCisgICAgICAgICAgICBvcGVuKGZuLCAndycpLmNsb3NlKCkKKyAgICAgICAgICAgIHN5cy5hcmd2ID0gWydncHJvZjJodG1sJywgZm5dCisgICAgICAgICAgICBzZWxmLmdwcm9mLm1haW4oKQorICAgICAgICBzZWxmLmFzc2VydFRydWUod21vY2sub3Blbi5jYWxsZWQpCisKKworIyBSdW4gdGhlIHRlc3RzIGluIFRvb2xzL3BhcnNlci90ZXN0X3VucGFyc2UucHkKK3dpdGggc3VwcG9ydC5EaXJzT25TeXNQYXRoKG9zLnBhdGguam9pbihiYXNlcGF0aCwgJ3BhcnNlcicpKToKKyAgICBmcm9tIHRlc3RfdW5wYXJzZSBpbXBvcnQgVW5wYXJzZVRlc3RDYXNlCisgICAgZnJvbSB0ZXN0X3VucGFyc2UgaW1wb3J0IERpcmVjdG9yeVRlc3RDYXNlCisKKwogZGVmIHRlc3RfbWFpbigpOgogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KCpbb2JqIGZvciBvYmogaW4gZ2xvYmFscygpLnZhbHVlcygpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIHR5cGUpXSkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdHJhY2UucHkgYi9MaWIvdGVzdC90ZXN0X3RyYWNlLnB5CmluZGV4IDQ2MWQxZDguLmFjM2ExYTMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdHJhY2UucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90cmFjZS5weQpAQCAtMTAyLDYgKzEwMiw3IEBACiBjbGFzcyBUZXN0TGluZUNvdW50cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIiIiV2hpdGUtYm94IHRlc3Rpbmcgb2YgbGluZS1jb3VudGluZywgdmlhIHJ1bmZ1bmMiIiIKICAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzeXMuc2V0dHJhY2UsIHN5cy5nZXR0cmFjZSgpKQogICAgICAgICBzZWxmLnRyYWNlciA9IFRyYWNlKGNvdW50PTEsIHRyYWNlPTAsIGNvdW50ZnVuY3M9MCwgY291bnRjYWxsZXJzPTApCiAgICAgICAgIHNlbGYubXlfcHlfZmlsZW5hbWUgPSBmaXhfZXh0X3B5KF9fZmlsZV9fKQogCkBAIC0xOTIsNiArMTkzLDcgQEAKICAgICAiIiJBIHNpbXBsZSBzYW5pdHkgdGVzdCBvZiBsaW5lLWNvdW50aW5nLCB2aWEgcnVuY3R4IChleGVjKSIiIgogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5teV9weV9maWxlbmFtZSA9IGZpeF9leHRfcHkoX19maWxlX18pCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzeXMuc2V0dHJhY2UsIHN5cy5nZXR0cmFjZSgpKQogCiAgICAgZGVmIHRlc3RfZXhlY19jb3VudHMoc2VsZik6CiAgICAgICAgIHNlbGYudHJhY2VyID0gVHJhY2UoY291bnQ9MSwgdHJhY2U9MCwgY291bnRmdW5jcz0wLCBjb3VudGNhbGxlcnM9MCkKQEAgLTIxOCw2ICsyMjAsNyBAQAogY2xhc3MgVGVzdEZ1bmNzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAiIiJXaGl0ZS1ib3ggdGVzdGluZyBvZiBmdW5jcyB0cmFjaW5nIiIiCiAgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3lzLnNldHRyYWNlLCBzeXMuZ2V0dHJhY2UoKSkKICAgICAgICAgc2VsZi50cmFjZXIgPSBUcmFjZShjb3VudD0wLCB0cmFjZT0wLCBjb3VudGZ1bmNzPTEpCiAgICAgICAgIHNlbGYuZmlsZW1vZCA9IG15X2ZpbGVfYW5kX21vZG5hbWUoKQogCkBAIC0yNDIsNiArMjQ1LDggQEAKICAgICAgICAgfQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudHJhY2VyLnJlc3VsdHMoKS5jYWxsZWRmdW5jcywgZXhwZWN0ZWQpCiAKKyAgICBAdW5pdHRlc3Quc2tpcElmKGhhc2F0dHIoc3lzLCAnZ2V0dHJhY2UnKSBhbmQgc3lzLmdldHRyYWNlKCksCisgICAgICAgICAgICAgICAgICAgICAncHJlLWV4aXN0aW5nIHRyYWNlIGZ1bmN0aW9uIHRocm93cyBvZmYgbWVhc3VyZW1lbnRzJykKICAgICBkZWYgdGVzdF9pbnN0X21ldGhvZF9jYWxsaW5nKHNlbGYpOgogICAgICAgICBvYmogPSBUcmFjZWRDbGFzcygyMCkKICAgICAgICAgc2VsZi50cmFjZXIucnVuZnVuYyhvYmouaW5zdF9tZXRob2RfY2FsbGluZywgMSkKQEAgLTI1Nyw5ICsyNjIsMTIgQEAKIGNsYXNzIFRlc3RDYWxsZXJzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAiIiJXaGl0ZS1ib3ggdGVzdGluZyBvZiBjYWxsZXJzIHRyYWNpbmciIiIKICAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChzeXMuc2V0dHJhY2UsIHN5cy5nZXR0cmFjZSgpKQogICAgICAgICBzZWxmLnRyYWNlciA9IFRyYWNlKGNvdW50PTAsIHRyYWNlPTAsIGNvdW50Y2FsbGVycz0xKQogICAgICAgICBzZWxmLmZpbGVtb2QgPSBteV9maWxlX2FuZF9tb2RuYW1lKCkKIAorICAgIEB1bml0dGVzdC5za2lwSWYoaGFzYXR0cihzeXMsICdnZXR0cmFjZScpIGFuZCBzeXMuZ2V0dHJhY2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICdwcmUtZXhpc3RpbmcgdHJhY2UgZnVuY3Rpb24gdGhyb3dzIG9mZiBtZWFzdXJlbWVudHMnKQogICAgIGRlZiB0ZXN0X2xvb3BfY2FsbGVyX2ltcG9ydGluZyhzZWxmKToKICAgICAgICAgc2VsZi50cmFjZXIucnVuZnVuYyh0cmFjZWRfZnVuY19pbXBvcnRpbmdfY2FsbGVyLCAxKQogCkBAIC0yODAsNiArMjg4LDkgQEAKIAogIyBDcmVhdGVkIHNlcGFyYXRlbHkgZm9yIGlzc3VlICMzODIxCiBjbGFzcyBUZXN0Q292ZXJhZ2UodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHN5cy5zZXR0cmFjZSwgc3lzLmdldHRyYWNlKCkpCisKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIHJtdHJlZShURVNURk4pCiAgICAgICAgIHVubGluayhURVNURk4pCkBAIC0zMDUsMTMgKzMxNiwxMyBAQAogICAgICAgICAjIElnbm9yZSBhbGwgZmlsZXMsIG5vdGhpbmcgc2hvdWxkIGJlIHRyYWNlZCBub3IgcHJpbnRlZAogICAgICAgICBsaWJwYXRoID0gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmRpcm5hbWUob3MuX19maWxlX18pKQogICAgICAgICAjIHN5cy5wcmVmaXggZG9lcyBub3Qgd29yayB3aGVuIHJ1bm5pbmcgZnJvbSBhIGNoZWNrb3V0Ci0gICAgICAgIHRyYWNlciA9IHRyYWNlLlRyYWNlKGlnbm9yZWRpcnM9W3N5cy5wcmVmaXgsIHN5cy5leGVjX3ByZWZpeCwgbGlicGF0aF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlPTAsIGNvdW50PTEpCisgICAgICAgIHRyYWNlciA9IHRyYWNlLlRyYWNlKGlnbm9yZWRpcnM9W3N5cy5iYXNlX3ByZWZpeCwgc3lzLmJhc2VfZXhlY19wcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnBhdGhdLCB0cmFjZT0wLCBjb3VudD0xKQogICAgICAgICB3aXRoIGNhcHR1cmVkX3N0ZG91dCgpIGFzIHN0ZG91dDoKICAgICAgICAgICAgIHNlbGYuX2NvdmVyYWdlKHRyYWNlcikKICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoVEVTVEZOKToKICAgICAgICAgICAgIGZpbGVzID0gb3MubGlzdGRpcihURVNURk4pCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZpbGVzLCBbXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmlsZXMsIFsnX2ltcG9ydGxpYi5jb3ZlciddKSAgIyBJZ25vcmUgX19pbXBvcnRfXwogCiAgICAgZGVmIHRlc3RfaXNzdWU5OTM2KHNlbGYpOgogICAgICAgICB0cmFjZXIgPSB0cmFjZS5UcmFjZSh0cmFjZT0wLCBjb3VudD0xKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90cmFjZWJhY2sucHkgYi9MaWIvdGVzdC90ZXN0X3RyYWNlYmFjay5weQppbmRleCA0NzUyZDM3Li41YmNlMmFmIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3RyYWNlYmFjay5weQorKysgYi9MaWIvdGVzdC90ZXN0X3RyYWNlYmFjay5weQpAQCAtMjQ2LDYgKzI0NiwyMSBAQAogICAgICAgICBzZWxmLmNoZWNrX3plcm9fZGl2KGJsb2Nrc1swXSkKICAgICAgICAgc2VsZi5hc3NlcnRJbignaW5uZXJfcmFpc2UoKSAjIE1hcmtlcicsIGJsb2Nrc1syXSkKIAorICAgIGRlZiB0ZXN0X2NvbnRleHRfc3VwcHJlc3Npb24oc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24KKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICByYWlzZSBaZXJvRGl2aXNpb25FcnJvciBmcm9tIE5vbmUKKyAgICAgICAgZXhjZXB0IFplcm9EaXZpc2lvbkVycm9yIGFzIF86CisgICAgICAgICAgICBlID0gXworICAgICAgICBsaW5lcyA9IHNlbGYuZ2V0X3JlcG9ydChlKS5zcGxpdGxpbmVzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obGluZXMpLCA0KQorICAgICAgICBzZWxmLmFzc2VydFRydWUobGluZXNbMF0uc3RhcnRzd2l0aCgnVHJhY2ViYWNrJykpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsaW5lc1sxXS5zdGFydHN3aXRoKCcgIEZpbGUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignWmVyb0RpdmlzaW9uRXJyb3IgZnJvbSBOb25lJywgbGluZXNbMl0pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsaW5lc1szXS5zdGFydHN3aXRoKCdaZXJvRGl2aXNpb25FcnJvcicpKQorCiAgICAgZGVmIHRlc3RfY2F1c2VfYW5kX2NvbnRleHQoc2VsZik6CiAgICAgICAgICMgV2hlbiBib3RoIGEgY2F1c2UgYW5kIGEgY29udGV4dCBhcmUgc2V0LCBvbmx5IHRoZSBjYXVzZSBzaG91bGQgYmUKICAgICAgICAgIyBkaXNwbGF5ZWQgYW5kIHRoZSBjb250ZXh0IHNob3VsZCBiZSBtdXRlZC4KZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdHVwbGUucHkgYi9MaWIvdGVzdC90ZXN0X3R1cGxlLnB5CmluZGV4IDE0NjRhMGUuLmQ5MjhkYjIgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdHVwbGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF90dXBsZS5weQpAQCAtMSw2ICsxLDcgQEAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydCwgc2VxX3Rlc3RzCiAKIGltcG9ydCBnYworaW1wb3J0IHBpY2tsZQogCiBjbGFzcyBUdXBsZVRlc3Qoc2VxX3Rlc3RzLkNvbW1vblRlc3QpOgogICAgIHR5cGUydGVzdCA9IHR1cGxlCkBAIC0xNjQsNiArMTY1LDM0IEBACiAgICAgICAgIGNoZWNrKDEwKSAgICAgICAjIGNoZWNrIG91ciBjaGVja2luZyBjb2RlCiAgICAgICAgIGNoZWNrKDEwMDAwMDApCiAKKyAgICBkZWYgdGVzdF9pdGVyYXRvcl9waWNrbGUoc2VsZik6CisgICAgICAgICMgVXNlcmxpc3QgaXRlcmF0b3JzIGRvbid0IHN1cHBvcnQgcGlja2xpbmcgeWV0IHNpbmNlCisgICAgICAgICMgdGhleSBhcmUgYmFzZWQgb24gZ2VuZXJhdG9ycy4KKyAgICAgICAgZGF0YSA9IHNlbGYudHlwZTJ0ZXN0KFs0LCA1LCA2LCA3XSkKKyAgICAgICAgaXRvcmcgPSBpdGVyKGRhdGEpCisgICAgICAgIGQgPSBwaWNrbGUuZHVtcHMoaXRvcmcpCisgICAgICAgIGl0ID0gcGlja2xlLmxvYWRzKGQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShpdG9yZyksIHR5cGUoaXQpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudHlwZTJ0ZXN0KGl0KSwgc2VsZi50eXBlMnRlc3QoZGF0YSkpCisKKyAgICAgICAgaXQgPSBwaWNrbGUubG9hZHMoZCkKKyAgICAgICAgbmV4dChpdCkKKyAgICAgICAgZCA9IHBpY2tsZS5kdW1wcyhpdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnR5cGUydGVzdChpdCksIHNlbGYudHlwZTJ0ZXN0KGRhdGEpWzE6XSkKKworICAgIGRlZiB0ZXN0X3JldmVyc2VkX3BpY2tsZShzZWxmKToKKyAgICAgICAgZGF0YSA9IHNlbGYudHlwZTJ0ZXN0KFs0LCA1LCA2LCA3XSkKKyAgICAgICAgaXRvcmcgPSByZXZlcnNlZChkYXRhKQorICAgICAgICBkID0gcGlja2xlLmR1bXBzKGl0b3JnKQorICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUoaXRvcmcpLCB0eXBlKGl0KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnR5cGUydGVzdChpdCksIHNlbGYudHlwZTJ0ZXN0KHJldmVyc2VkKGRhdGEpKSkKKworICAgICAgICBpdCA9IHBpY2tsZS5sb2FkcyhkKQorICAgICAgICBuZXh0KGl0KQorICAgICAgICBkID0gcGlja2xlLmR1bXBzKGl0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYudHlwZTJ0ZXN0KGl0KSwgc2VsZi50eXBlMnRlc3QocmV2ZXJzZWQoZGF0YSkpWzE6XSkKKwogZGVmIHRlc3RfbWFpbigpOgogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KFR1cGxlVGVzdCkKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF90eXBlcy5weSBiL0xpYi90ZXN0L3Rlc3RfdHlwZXMucHkKaW5kZXggOGE5OGEwMy4uMzFlYmQ5YyAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF90eXBlcy5weQorKysgYi9MaWIvdGVzdC90ZXN0X3R5cGVzLnB5CkBAIC0xLDkgKzEsMTEgQEAKICMgUHl0aG9uIHRlc3Qgc2V0IC0tIHBhcnQgNiwgYnVpbHQtaW4gdHlwZXMKIAogZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IHJ1bl91bml0dGVzdCwgcnVuX3dpdGhfbG9jYWxlCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCBzeXMKK2ltcG9ydCBjb2xsZWN0aW9ucwogaW1wb3J0IGxvY2FsZQoraW1wb3J0IHN5cworaW1wb3J0IHR5cGVzCitpbXBvcnQgdW5pdHRlc3QKIAogY2xhc3MgVHlwZXNUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKQEAgLTU2OSw4ICs1NzEsNTc0IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0R3JlYXRlcih0dXBsZS5fX2l0ZW1zaXplX18sIDApCiAKIAorY2xhc3MgTWFwcGluZ1Byb3h5VGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgorICAgIG1hcHBpbmdwcm94eSA9IHR5cGVzLk1hcHBpbmdQcm94eVR5cGUKKworICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9yKHNlbGYpOgorICAgICAgICBjbGFzcyB1c2VyZGljdChkaWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtYXBwaW5nID0geyd4JzogMSwgJ3knOiAyfQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubWFwcGluZ3Byb3h5KG1hcHBpbmcpLCBtYXBwaW5nKQorICAgICAgICBtYXBwaW5nID0gdXNlcmRpY3QoeD0xLCB5PTIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYXBwaW5ncHJveHkobWFwcGluZyksIG1hcHBpbmcpCisgICAgICAgIG1hcHBpbmcgPSBjb2xsZWN0aW9ucy5DaGFpbk1hcCh7J3gnOiAxfSwgeyd5JzogMn0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5tYXBwaW5ncHJveHkobWFwcGluZyksIG1hcHBpbmcpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLm1hcHBpbmdwcm94eSwgMTApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5tYXBwaW5ncHJveHksICgiYSIsICJ0dXBsZSIpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYubWFwcGluZ3Byb3h5LCBbImEiLCAibGlzdCJdKQorCisgICAgZGVmIHRlc3RfbWV0aG9kcyhzZWxmKToKKyAgICAgICAgYXR0cnMgPSBzZXQoZGlyKHNlbGYubWFwcGluZ3Byb3h5KHt9KSkpIC0gc2V0KGRpcihvYmplY3QoKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXR0cnMsIHsKKyAgICAgICAgICAgICAnX19jb250YWluc19fJywKKyAgICAgICAgICAgICAnX19nZXRpdGVtX18nLAorICAgICAgICAgICAgICdfX2l0ZXJfXycsCisgICAgICAgICAgICAgJ19fbGVuX18nLAorICAgICAgICAgICAgICdjb3B5JywKKyAgICAgICAgICAgICAnZ2V0JywKKyAgICAgICAgICAgICAnaXRlbXMnLAorICAgICAgICAgICAgICdrZXlzJywKKyAgICAgICAgICAgICAndmFsdWVzJywKKyAgICAgICAgfSkKKworICAgIGRlZiB0ZXN0X2dldChzZWxmKToKKyAgICAgICAgdmlldyA9IHNlbGYubWFwcGluZ3Byb3h5KHsnYSc6ICdBJywgJ2InOiAnQid9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZpZXdbJ2EnXSwgJ0EnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZpZXdbJ2InXSwgJ0InKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgdmlldy5fX2dldGl0ZW1fXywgJ3h4eCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmlldy5nZXQoJ2EnKSwgJ0EnKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh2aWV3LmdldCgneHh4JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmlldy5nZXQoJ3h4eCcsIDQyKSwgNDIpCisKKyAgICBkZWYgdGVzdF9taXNzaW5nKHNlbGYpOgorICAgICAgICBjbGFzcyBkaWN0bWlzc2luZyhkaWN0KToKKyAgICAgICAgICAgIGRlZiBfX21pc3NpbmdfXyhzZWxmLCBrZXkpOgorICAgICAgICAgICAgICAgIHJldHVybiAibWlzc2luZz0lcyIgJSBrZXkKKworICAgICAgICB2aWV3ID0gc2VsZi5tYXBwaW5ncHJveHkoZGljdG1pc3NpbmcoeD0xKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2aWV3Wyd4J10sIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmlld1sneSddLCAnbWlzc2luZz15JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2aWV3LmdldCgneCcpLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZpZXcuZ2V0KCd5JyksIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmlldy5nZXQoJ3knLCA0MiksIDQyKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3gnIGluIHZpZXcpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoJ3knIGluIHZpZXcpCisKKyAgICBkZWYgdGVzdF9jdXN0b21kaWN0KHNlbGYpOgorICAgICAgICBjbGFzcyBjdXN0b21kaWN0KGRpY3QpOgorICAgICAgICAgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBrZXkpOgorICAgICAgICAgICAgICAgIGlmIGtleSA9PSAnbWFnaWMnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBkaWN0Ll9fY29udGFpbnNfXyhzZWxmLCBrZXkpCisKKyAgICAgICAgICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gaXRlcigoJ2l0ZXInLCkpCisKKyAgICAgICAgICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiA1MDAKKworICAgICAgICAgICAgZGVmIGNvcHkoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuICdjb3B5JworCisgICAgICAgICAgICBkZWYga2V5cyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2tleXMnCisKKyAgICAgICAgICAgIGRlZiBpdGVtcyhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gJ2l0ZW1zJworCisgICAgICAgICAgICBkZWYgdmFsdWVzKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiAndmFsdWVzJworCisgICAgICAgICAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKKyAgICAgICAgICAgICAgICByZXR1cm4gImdldGl0ZW09JXMiICUgZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkpCisKKyAgICAgICAgICAgIGRlZiBnZXQoc2VsZiwga2V5LCBkZWZhdWx0PU5vbmUpOgorICAgICAgICAgICAgICAgIHJldHVybiAiZ2V0PSVzIiAlIGRpY3QuZ2V0KHNlbGYsIGtleSwgJ2RlZmF1bHQ9JXInICUgZGVmYXVsdCkKKworICAgICAgICBjdXN0b20gPSBjdXN0b21kaWN0KHsna2V5JzogJ3ZhbHVlJ30pCisgICAgICAgIHZpZXcgPSBzZWxmLm1hcHBpbmdwcm94eShjdXN0b20pCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgna2V5JyBpbiB2aWV3KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ21hZ2ljJyBpbiB2aWV3KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCd4eHgnIGluIHZpZXcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmlld1sna2V5J10sICdnZXRpdGVtPXZhbHVlJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHZpZXcuX19nZXRpdGVtX18sICd4eHgnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR1cGxlKHZpZXcpLCAoJ2l0ZXInLCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHZpZXcpLCA1MDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmlldy5jb3B5KCksICdjb3B5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2aWV3LmdldCgna2V5JyksICdnZXQ9dmFsdWUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZpZXcuZ2V0KCd4eHgnKSwgJ2dldD1kZWZhdWx0PU5vbmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZpZXcuaXRlbXMoKSwgJ2l0ZW1zJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2aWV3LmtleXMoKSwgJ2tleXMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZpZXcudmFsdWVzKCksICd2YWx1ZXMnKQorCisgICAgZGVmIHRlc3RfY2hhaW5tYXAoc2VsZik6CisgICAgICAgIGQxID0geyd4JzogMX0KKyAgICAgICAgZDIgPSB7J3knOiAyfQorICAgICAgICBtYXBwaW5nID0gY29sbGVjdGlvbnMuQ2hhaW5NYXAoZDEsIGQyKQorICAgICAgICB2aWV3ID0gc2VsZi5tYXBwaW5ncHJveHkobWFwcGluZykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCd4JyBpbiB2aWV3KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ3knIGluIHZpZXcpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoJ3onIGluIHZpZXcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmlld1sneCddLCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZpZXdbJ3knXSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIHZpZXcuX19nZXRpdGVtX18sICd6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0dXBsZShzb3J0ZWQodmlldykpLCAoJ3gnLCAneScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbih2aWV3KSwgMikKKyAgICAgICAgY29weSA9IHZpZXcuY29weSgpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoY29weSwgbWFwcGluZykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGNvcHksIGNvbGxlY3Rpb25zLkNoYWluTWFwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvcHksIG1hcHBpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmlldy5nZXQoJ3gnKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2aWV3LmdldCgneScpLCAyKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh2aWV3LmdldCgneicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR1cGxlKHNvcnRlZCh2aWV3Lml0ZW1zKCkpKSwgKCgneCcsIDEpLCAoJ3knLCAyKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHVwbGUoc29ydGVkKHZpZXcua2V5cygpKSksICgneCcsICd5JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHVwbGUoc29ydGVkKHZpZXcudmFsdWVzKCkpKSwgKDEsIDIpKQorCisgICAgZGVmIHRlc3RfY29udGFpbnMoc2VsZik6CisgICAgICAgIHZpZXcgPSBzZWxmLm1hcHBpbmdwcm94eShkaWN0LmZyb21rZXlzKCdhYmMnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdhJyBpbiB2aWV3KQorICAgICAgICBzZWxmLmFzc2VydFRydWUoJ2InIGluIHZpZXcpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnYycgaW4gdmlldykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgneHh4JyBpbiB2aWV3KQorCisgICAgZGVmIHRlc3Rfdmlld3Moc2VsZik6CisgICAgICAgIG1hcHBpbmcgPSB7fQorICAgICAgICB2aWV3ID0gc2VsZi5tYXBwaW5ncHJveHkobWFwcGluZykKKyAgICAgICAga2V5cyA9IHZpZXcua2V5cygpCisgICAgICAgIHZhbHVlcyA9IHZpZXcudmFsdWVzKCkKKyAgICAgICAgaXRlbXMgPSB2aWV3Lml0ZW1zKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGtleXMpLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHZhbHVlcyksIFtdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoaXRlbXMpLCBbXSkKKyAgICAgICAgbWFwcGluZ1sna2V5J10gPSAndmFsdWUnCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChrZXlzKSwgWydrZXknXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KHZhbHVlcyksIFsndmFsdWUnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KGl0ZW1zKSwgWygna2V5JywgJ3ZhbHVlJyldKQorCisgICAgZGVmIHRlc3RfbGVuKHNlbGYpOgorICAgICAgICBmb3IgZXhwZWN0ZWQgaW4gcmFuZ2UoNik6CisgICAgICAgICAgICBkYXRhID0gZGljdC5mcm9ta2V5cygnYWJjZGUnWzpleHBlY3RlZF0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkYXRhKSwgZXhwZWN0ZWQpCisgICAgICAgICAgICB2aWV3ID0gc2VsZi5tYXBwaW5ncHJveHkoZGF0YSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHZpZXcpLCBleHBlY3RlZCkKKworICAgIGRlZiB0ZXN0X2l0ZXJhdG9ycyhzZWxmKToKKyAgICAgICAga2V5cyA9ICgneCcsICd5JykKKyAgICAgICAgdmFsdWVzID0gKDEsIDIpCisgICAgICAgIGl0ZW1zID0gdHVwbGUoemlwKGtleXMsIHZhbHVlcykpCisgICAgICAgIHZpZXcgPSBzZWxmLm1hcHBpbmdwcm94eShkaWN0KGl0ZW1zKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQodmlldyksIHNldChrZXlzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQodmlldy5rZXlzKCkpLCBzZXQoa2V5cykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHZpZXcudmFsdWVzKCkpLCBzZXQodmFsdWVzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQodmlldy5pdGVtcygpKSwgc2V0KGl0ZW1zKSkKKworICAgIGRlZiB0ZXN0X2NvcHkoc2VsZik6CisgICAgICAgIG9yaWdpbmFsID0geydrZXkxJzogMjcsICdrZXkyJzogNTEsICdrZXkzJzogOTN9CisgICAgICAgIHZpZXcgPSBzZWxmLm1hcHBpbmdwcm94eShvcmlnaW5hbCkKKyAgICAgICAgY29weSA9IHZpZXcuY29weSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHlwZShjb3B5KSwgZGljdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb3B5LCBvcmlnaW5hbCkKKyAgICAgICAgb3JpZ2luYWxbJ2tleTEnXSA9IDcwCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmlld1sna2V5MSddLCA3MCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb3B5WydrZXkxJ10sIDI3KQorCisKK2NsYXNzIENsYXNzQ3JlYXRpb25UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBjbGFzcyBNZXRhKHR5cGUpOgorICAgICAgICBkZWYgX19pbml0X18oY2xzLCBuYW1lLCBiYXNlcywgbnMsICoqa3cpOgorICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhuYW1lLCBiYXNlcywgbnMpCisgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgZGVmIF9fbmV3X18obWNscywgbmFtZSwgYmFzZXMsIG5zLCAqKmt3KToKKyAgICAgICAgICAgIHJldHVybiBzdXBlcigpLl9fbmV3X18obWNscywgbmFtZSwgYmFzZXMsIG5zKQorICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgZGVmIF9fcHJlcGFyZV9fKG1jbHMsIG5hbWUsIGJhc2VzLCAqKmt3KToKKyAgICAgICAgICAgIG5zID0gc3VwZXIoKS5fX3ByZXBhcmVfXyhuYW1lLCBiYXNlcykKKyAgICAgICAgICAgIG5zWyJ5Il0gPSAxCisgICAgICAgICAgICBucy51cGRhdGUoa3cpCisgICAgICAgICAgICByZXR1cm4gbnMKKworICAgIGRlZiB0ZXN0X25ld19jbGFzc19iYXNpY3Moc2VsZik6CisgICAgICAgIEMgPSB0eXBlcy5uZXdfY2xhc3MoIkMiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEMuX19uYW1lX18sICJDIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDLl9fYmFzZXNfXywgKG9iamVjdCwpKQorCisgICAgZGVmIHRlc3RfbmV3X2NsYXNzX3N1YmNsYXNzKHNlbGYpOgorICAgICAgICBDID0gdHlwZXMubmV3X2NsYXNzKCJDIiwgKGludCwpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNzdWJjbGFzcyhDLCBpbnQpKQorCisgICAgZGVmIHRlc3RfbmV3X2NsYXNzX21ldGEoc2VsZik6CisgICAgICAgIE1ldGEgPSBzZWxmLk1ldGEKKyAgICAgICAgc2V0dGluZ3MgPSB7Im1ldGFjbGFzcyI6IE1ldGEsICJ6IjogMn0KKyAgICAgICAgIyBXZSBkbyB0aGlzIHR3aWNlIHRvIG1ha2Ugc3VyZSB0aGUgcGFzc2VkIGluIGRpY3QgaXNuJ3QgbXV0YXRlZAorICAgICAgICBmb3IgaSBpbiByYW5nZSgyKToKKyAgICAgICAgICAgIEMgPSB0eXBlcy5uZXdfY2xhc3MoIkMiICsgc3RyKGkpLCAoKSwgc2V0dGluZ3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoQywgTWV0YSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQy55LCAxKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDLnosIDIpCisKKyAgICBkZWYgdGVzdF9uZXdfY2xhc3NfZXhlY19ib2R5KHNlbGYpOgorICAgICAgICBNZXRhID0gc2VsZi5NZXRhCisgICAgICAgIGRlZiBmdW5jKG5zKToKKyAgICAgICAgICAgIG5zWyJ4Il0gPSAwCisgICAgICAgIEMgPSB0eXBlcy5uZXdfY2xhc3MoIkMiLCAoKSwgeyJtZXRhY2xhc3MiOiBNZXRhLCAieiI6IDJ9LCBmdW5jKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoQywgTWV0YSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDLngsIDApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQy55LCAxKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEMueiwgMikKKworICAgIGRlZiB0ZXN0X25ld19jbGFzc19leGVjX2JvZHkoc2VsZik6CisgICAgICAgICNUZXN0IHRoYXQga2V5d29yZHMgYXJlIHBhc3NlZCB0byB0aGUgbWV0YWNsYXNzOgorICAgICAgICBkZWYgbWV0YV9mdW5jKG5hbWUsIGJhc2VzLCBucywgKiprdyk6CisgICAgICAgICAgICByZXR1cm4gbmFtZSwgYmFzZXMsIG5zLCBrdworICAgICAgICByZXMgPSB0eXBlcy5uZXdfY2xhc3MoIlgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludCwgb2JqZWN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3QobWV0YWNsYXNzPW1ldGFfZnVuYywgeD0wKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXMsICgiWCIsIChpbnQsIG9iamVjdCksIHt9LCB7IngiOiAwfSkpCisKKyAgICBkZWYgdGVzdF9uZXdfY2xhc3NfZGVmYXVsdHMoc2VsZik6CisgICAgICAgICMgVGVzdCBkZWZhdWx0cy9rZXl3b3JkczoKKyAgICAgICAgQyA9IHR5cGVzLm5ld19jbGFzcygiQyIsICgpLCB7fSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDLl9fbmFtZV9fLCAiQyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQy5fX2Jhc2VzX18sIChvYmplY3QsKSkKKworICAgIGRlZiB0ZXN0X25ld19jbGFzc19tZXRhX3dpdGhfYmFzZShzZWxmKToKKyAgICAgICAgTWV0YSA9IHNlbGYuTWV0YQorICAgICAgICBkZWYgZnVuYyhucyk6CisgICAgICAgICAgICBuc1sieCJdID0gMAorICAgICAgICBDID0gdHlwZXMubmV3X2NsYXNzKG5hbWU9IkMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VzPShpbnQsKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2RzPWRpY3QobWV0YWNsYXNzPU1ldGEsIHo9MiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY19ib2R5PWZ1bmMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKEMsIGludCkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShDLCBNZXRhKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEMueCwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChDLnksIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQy56LCAyKQorCisgICAgIyBNYW55IG9mIHRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIGRlcml2ZWQgZnJvbSB0ZXN0X2Rlc2NyLnB5CisgICAgZGVmIHRlc3RfcHJlcGFyZV9jbGFzcyhzZWxmKToKKyAgICAgICAgIyBCYXNpYyB0ZXN0IG9mIG1ldGFjbGFzcyBkZXJpdmF0aW9uCisgICAgICAgIGV4cGVjdGVkX25zID0ge30KKyAgICAgICAgY2xhc3MgQSh0eXBlKToKKyAgICAgICAgICAgIGRlZiBfX25ld19fKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUuX19uZXdfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgICAgIGRlZiBfX3ByZXBhcmVfXygqYXJncyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkX25zCisKKyAgICAgICAgQiA9IHR5cGVzLm5ld19jbGFzcygiQiIsIChvYmplY3QsKSkKKyAgICAgICAgQyA9IHR5cGVzLm5ld19jbGFzcygiQyIsIChvYmplY3QsKSwgeyJtZXRhY2xhc3MiOiBBfSkKKworICAgICAgICAjIFRoZSBtb3N0IGRlcml2ZWQgbWV0YWNsYXNzIG9mIEQgaXMgQSByYXRoZXIgdGhhbiB0eXBlLgorICAgICAgICBtZXRhLCBucywga3dkcyA9IHR5cGVzLnByZXBhcmVfY2xhc3MoIkQiLCAoQiwgQyksIHsibWV0YWNsYXNzIjogdHlwZX0pCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobWV0YSwgQSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhucywgZXhwZWN0ZWRfbnMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGt3ZHMpLCAwKQorCisgICAgZGVmIHRlc3RfbWV0YWNsYXNzX2Rlcml2YXRpb24oc2VsZik6CisgICAgICAgICMgaXNzdWUxMjk0MjMyOiBjb3JyZWN0IG1ldGFjbGFzcyBjYWxjdWxhdGlvbgorICAgICAgICBuZXdfY2FsbHMgPSBbXSAgIyB0byBjaGVjayB0aGUgb3JkZXIgb2YgX19uZXdfXyBjYWxscworICAgICAgICBjbGFzcyBBTWV0YSh0eXBlKToKKyAgICAgICAgICAgIGRlZiBfX25ld19fKG1jbHMsIG5hbWUsIGJhc2VzLCBucyk6CisgICAgICAgICAgICAgICAgbmV3X2NhbGxzLmFwcGVuZCgnQU1ldGEnKQorICAgICAgICAgICAgICAgIHJldHVybiBzdXBlcigpLl9fbmV3X18obWNscywgbmFtZSwgYmFzZXMsIG5zKQorICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAgICBkZWYgX19wcmVwYXJlX18obWNscywgbmFtZSwgYmFzZXMpOgorICAgICAgICAgICAgICAgIHJldHVybiB7fQorCisgICAgICAgIGNsYXNzIEJNZXRhKEFNZXRhKToKKyAgICAgICAgICAgIGRlZiBfX25ld19fKG1jbHMsIG5hbWUsIGJhc2VzLCBucyk6CisgICAgICAgICAgICAgICAgbmV3X2NhbGxzLmFwcGVuZCgnQk1ldGEnKQorICAgICAgICAgICAgICAgIHJldHVybiBzdXBlcigpLl9fbmV3X18obWNscywgbmFtZSwgYmFzZXMsIG5zKQorICAgICAgICAgICAgQGNsYXNzbWV0aG9kCisgICAgICAgICAgICBkZWYgX19wcmVwYXJlX18obWNscywgbmFtZSwgYmFzZXMpOgorICAgICAgICAgICAgICAgIG5zID0gc3VwZXIoKS5fX3ByZXBhcmVfXyhuYW1lLCBiYXNlcykKKyAgICAgICAgICAgICAgICBuc1snQk1ldGFfd2FzX2hlcmUnXSA9IFRydWUKKyAgICAgICAgICAgICAgICByZXR1cm4gbnMKKworICAgICAgICBBID0gdHlwZXMubmV3X2NsYXNzKCJBIiwgKCksIHsibWV0YWNsYXNzIjogQU1ldGF9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19jYWxscywgWydBTWV0YSddKQorICAgICAgICBuZXdfY2FsbHMuY2xlYXIoKQorCisgICAgICAgIEIgPSB0eXBlcy5uZXdfY2xhc3MoIkIiLCAoKSwgeyJtZXRhY2xhc3MiOiBCTWV0YX0pCisgICAgICAgICMgQk1ldGEuX19uZXdfXyBjYWxscyBBTWV0YS5fX25ld19fIHdpdGggc3VwZXI6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2NhbGxzLCBbJ0JNZXRhJywgJ0FNZXRhJ10pCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCisKKyAgICAgICAgQyA9IHR5cGVzLm5ld19jbGFzcygiQyIsIChBLCBCKSkKKyAgICAgICAgIyBUaGUgbW9zdCBkZXJpdmVkIG1ldGFjbGFzcyBpcyBCTWV0YToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfY2FsbHMsIFsnQk1ldGEnLCAnQU1ldGEnXSkKKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKKyAgICAgICAgIyBCTWV0YS5fX3ByZXBhcmVfXyBzaG91bGQndmUgYmVlbiBjYWxsZWQ6CisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0JNZXRhX3dhc19oZXJlJywgQy5fX2RpY3RfXykKKworICAgICAgICAjIFRoZSBvcmRlciBvZiB0aGUgYmFzZXMgc2hvdWxkbid0IG1hdHRlcjoKKyAgICAgICAgQzIgPSB0eXBlcy5uZXdfY2xhc3MoIkMyIiwgKEIsIEEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19jYWxscywgWydCTWV0YScsICdBTWV0YSddKQorICAgICAgICBuZXdfY2FsbHMuY2xlYXIoKQorICAgICAgICBzZWxmLmFzc2VydEluKCdCTWV0YV93YXNfaGVyZScsIEMyLl9fZGljdF9fKQorCisgICAgICAgICMgQ2hlY2sgY29ycmVjdCBtZXRhY2xhc3MgY2FsY3VsYXRpb24gd2hlbiBhIG1ldGFjbGFzcyBpcyBkZWNsYXJlZDoKKyAgICAgICAgRCA9IHR5cGVzLm5ld19jbGFzcygiRCIsIChDLCksIHsibWV0YWNsYXNzIjogdHlwZX0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2NhbGxzLCBbJ0JNZXRhJywgJ0FNZXRhJ10pCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0JNZXRhX3dhc19oZXJlJywgRC5fX2RpY3RfXykKKworICAgICAgICBFID0gdHlwZXMubmV3X2NsYXNzKCJFIiwgKEMsKSwgeyJtZXRhY2xhc3MiOiBBTWV0YX0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2NhbGxzLCBbJ0JNZXRhJywgJ0FNZXRhJ10pCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ0JNZXRhX3dhc19oZXJlJywgRS5fX2RpY3RfXykKKworICAgIGRlZiB0ZXN0X21ldGFjbGFzc19vdmVycmlkZV9mdW5jdGlvbihzZWxmKToKKyAgICAgICAgIyBTcGVjaWFsIGNhc2U6IHRoZSBnaXZlbiBtZXRhY2xhc3MgaXNuJ3QgYSBjbGFzcywKKyAgICAgICAgIyBzbyB0aGVyZSBpcyBubyBtZXRhY2xhc3MgY2FsY3VsYXRpb24uCisgICAgICAgIGNsYXNzIEEobWV0YWNsYXNzPXNlbGYuTWV0YSk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbWFya2VyID0gb2JqZWN0KCkKKyAgICAgICAgZGVmIGZ1bmMoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBtYXJrZXIKKworICAgICAgICBYID0gdHlwZXMubmV3X2NsYXNzKCJYIiwgKCksIHsibWV0YWNsYXNzIjogZnVuY30pCisgICAgICAgIFkgPSB0eXBlcy5uZXdfY2xhc3MoIlkiLCAob2JqZWN0LCksIHsibWV0YWNsYXNzIjogZnVuY30pCisgICAgICAgIFogPSB0eXBlcy5uZXdfY2xhc3MoIloiLCAoQSwpLCB7Im1ldGFjbGFzcyI6IGZ1bmN9KQorICAgICAgICBzZWxmLmFzc2VydElzKG1hcmtlciwgWCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhtYXJrZXIsIFkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobWFya2VyLCBaKQorCisgICAgZGVmIHRlc3RfbWV0YWNsYXNzX292ZXJyaWRlX2NhbGxhYmxlKHNlbGYpOgorICAgICAgICAjIFRoZSBnaXZlbiBtZXRhY2xhc3MgaXMgYSBjbGFzcywKKyAgICAgICAgIyBidXQgbm90IGEgZGVzY2VuZGFudCBvZiB0eXBlLgorICAgICAgICBuZXdfY2FsbHMgPSBbXSAgIyB0byBjaGVjayB0aGUgb3JkZXIgb2YgX19uZXdfXyBjYWxscworICAgICAgICBwcmVwYXJlX2NhbGxzID0gW10gICMgdG8gdHJhY2sgX19wcmVwYXJlX18gY2FsbHMKKyAgICAgICAgY2xhc3MgQU5vdE1ldGE6CisgICAgICAgICAgICBkZWYgX19uZXdfXyhtY2xzLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgIG5ld19jYWxscy5hcHBlbmQoJ0FOb3RNZXRhJykKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5fX25ld19fKG1jbHMpCisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiBfX3ByZXBhcmVfXyhtY2xzLCBuYW1lLCBiYXNlcyk6CisgICAgICAgICAgICAgICAgcHJlcGFyZV9jYWxscy5hcHBlbmQoJ0FOb3RNZXRhJykKKyAgICAgICAgICAgICAgICByZXR1cm4ge30KKworICAgICAgICBjbGFzcyBCTm90TWV0YShBTm90TWV0YSk6CisgICAgICAgICAgICBkZWYgX19uZXdfXyhtY2xzLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgIG5ld19jYWxscy5hcHBlbmQoJ0JOb3RNZXRhJykKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5fX25ld19fKG1jbHMpCisgICAgICAgICAgICBAY2xhc3NtZXRob2QKKyAgICAgICAgICAgIGRlZiBfX3ByZXBhcmVfXyhtY2xzLCBuYW1lLCBiYXNlcyk6CisgICAgICAgICAgICAgICAgcHJlcGFyZV9jYWxscy5hcHBlbmQoJ0JOb3RNZXRhJykKKyAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIoKS5fX3ByZXBhcmVfXyhuYW1lLCBiYXNlcykKKworICAgICAgICBBID0gdHlwZXMubmV3X2NsYXNzKCJBIiwgKCksIHsibWV0YWNsYXNzIjogQU5vdE1ldGF9KQorICAgICAgICBzZWxmLmFzc2VydElzKEFOb3RNZXRhLCB0eXBlKEEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByZXBhcmVfY2FsbHMsIFsnQU5vdE1ldGEnXSkKKyAgICAgICAgcHJlcGFyZV9jYWxscy5jbGVhcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2NhbGxzLCBbJ0FOb3RNZXRhJ10pCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCisKKyAgICAgICAgQiA9IHR5cGVzLm5ld19jbGFzcygiQiIsICgpLCB7Im1ldGFjbGFzcyI6IEJOb3RNZXRhfSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhCTm90TWV0YSwgdHlwZShCKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcmVwYXJlX2NhbGxzLCBbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10pCisgICAgICAgIHByZXBhcmVfY2FsbHMuY2xlYXIoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19jYWxscywgWydCTm90TWV0YScsICdBTm90TWV0YSddKQorICAgICAgICBuZXdfY2FsbHMuY2xlYXIoKQorCisgICAgICAgIEMgPSB0eXBlcy5uZXdfY2xhc3MoIkMiLCAoQSwgQikpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoQk5vdE1ldGEsIHR5cGUoQykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJlcGFyZV9jYWxscywgWydCTm90TWV0YScsICdBTm90TWV0YSddKQorICAgICAgICBwcmVwYXJlX2NhbGxzLmNsZWFyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfY2FsbHMsIFsnQk5vdE1ldGEnLCAnQU5vdE1ldGEnXSkKKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKKworICAgICAgICBDMiA9IHR5cGVzLm5ld19jbGFzcygiQzIiLCAoQiwgQSkpCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoQk5vdE1ldGEsIHR5cGUoQzIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByZXBhcmVfY2FsbHMsIFsnQk5vdE1ldGEnLCAnQU5vdE1ldGEnXSkKKyAgICAgICAgcHJlcGFyZV9jYWxscy5jbGVhcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2NhbGxzLCBbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10pCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCisKKyAgICAgICAgIyBUaGlzIGlzIGEgVHlwZUVycm9yLCBiZWNhdXNlIG9mIGEgbWV0YWNsYXNzIGNvbmZsaWN0OgorICAgICAgICAjIEJOb3RNZXRhIGlzIG5laXRoZXIgYSBzdWJjbGFzcywgbm9yIGEgc3VwZXJjbGFzcyBvZiB0eXBlCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIEQgPSB0eXBlcy5uZXdfY2xhc3MoIkQiLCAoQywpLCB7Im1ldGFjbGFzcyI6IHR5cGV9KQorCisgICAgICAgIEUgPSB0eXBlcy5uZXdfY2xhc3MoIkUiLCAoQywpLCB7Im1ldGFjbGFzcyI6IEFOb3RNZXRhfSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhCTm90TWV0YSwgdHlwZShFKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcmVwYXJlX2NhbGxzLCBbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10pCisgICAgICAgIHByZXBhcmVfY2FsbHMuY2xlYXIoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld19jYWxscywgWydCTm90TWV0YScsICdBTm90TWV0YSddKQorICAgICAgICBuZXdfY2FsbHMuY2xlYXIoKQorCisgICAgICAgIEYgPSB0eXBlcy5uZXdfY2xhc3MoIkYiLCAob2JqZWN0KCksIEMpKQorICAgICAgICBzZWxmLmFzc2VydElzKEJOb3RNZXRhLCB0eXBlKEYpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByZXBhcmVfY2FsbHMsIFsnQk5vdE1ldGEnLCAnQU5vdE1ldGEnXSkKKyAgICAgICAgcHJlcGFyZV9jYWxscy5jbGVhcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3X2NhbGxzLCBbJ0JOb3RNZXRhJywgJ0FOb3RNZXRhJ10pCisgICAgICAgIG5ld19jYWxscy5jbGVhcigpCisKKyAgICAgICAgRjIgPSB0eXBlcy5uZXdfY2xhc3MoIkYyIiwgKEMsIG9iamVjdCgpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhCTm90TWV0YSwgdHlwZShGMikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJlcGFyZV9jYWxscywgWydCTm90TWV0YScsICdBTm90TWV0YSddKQorICAgICAgICBwcmVwYXJlX2NhbGxzLmNsZWFyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdfY2FsbHMsIFsnQk5vdE1ldGEnLCAnQU5vdE1ldGEnXSkKKyAgICAgICAgbmV3X2NhbGxzLmNsZWFyKCkKKworICAgICAgICAjIFR5cGVFcnJvcjogQk5vdE1ldGEgaXMgbmVpdGhlciBhCisgICAgICAgICMgc3ViY2xhc3MsIG5vciBhIHN1cGVyY2xhc3Mgb2YgaW50CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIFggPSB0eXBlcy5uZXdfY2xhc3MoIlgiLCAoQywgaW50KCkpKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICBYID0gdHlwZXMubmV3X2NsYXNzKCJYIiwgKGludCgpLCBDKSkKKworCitjbGFzcyBTaW1wbGVOYW1lc3BhY2VUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9jb25zdHJ1Y3RvcihzZWxmKToKKyAgICAgICAgbnMxID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKCkKKyAgICAgICAgbnMyID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKHg9MSwgeT0yKQorICAgICAgICBuczMgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoKipkaWN0KHg9MSwgeT0yKSkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoMSwgMiwgMykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihuczEuX19kaWN0X18pLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhcnMobnMxKSwge30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG5zMi5fX2RpY3RfXyksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodmFycyhuczIpLCB7J3knOiAyLCAneCc6IDF9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihuczMuX19kaWN0X18pLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhcnMobnMzKSwgeyd5JzogMiwgJ3gnOiAxfSkKKworICAgIGRlZiB0ZXN0X3VuYm91bmQoc2VsZik6CisgICAgICAgIG5zMSA9IHZhcnModHlwZXMuU2ltcGxlTmFtZXNwYWNlKCkpCisgICAgICAgIG5zMiA9IHZhcnModHlwZXMuU2ltcGxlTmFtZXNwYWNlKHg9MSwgeT0yKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5zMSwge30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobnMyLCB7J3knOiAyLCAneCc6IDF9KQorCisgICAgZGVmIHRlc3RfdW5kZXJseWluZ19kaWN0KHNlbGYpOgorICAgICAgICBuczEgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoKQorICAgICAgICBuczIgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoeD0xLCB5PTIpCisgICAgICAgIG5zMyA9IHR5cGVzLlNpbXBsZU5hbWVzcGFjZShhPVRydWUsIGI9RmFsc2UpCisgICAgICAgIG1hcHBpbmcgPSBuczMuX19kaWN0X18KKyAgICAgICAgZGVsIG5zMworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobnMxLl9fZGljdF9fLCB7fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuczIuX19kaWN0X18sIHsneSc6IDIsICd4JzogMX0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobWFwcGluZywgZGljdChhPVRydWUsIGI9RmFsc2UpKQorCisgICAgZGVmIHRlc3RfYXR0cmdldChzZWxmKToKKyAgICAgICAgbnMgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoeD0xLCB5PTIsIHc9MykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5zLngsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobnMueSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChucy53LCAzKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKKyAgICAgICAgICAgIG5zLnoKKworICAgIGRlZiB0ZXN0X2F0dHJzZXQoc2VsZik6CisgICAgICAgIG5zMSA9IHR5cGVzLlNpbXBsZU5hbWVzcGFjZSgpCisgICAgICAgIG5zMiA9IHR5cGVzLlNpbXBsZU5hbWVzcGFjZSh4PTEsIHk9Miwgdz0zKQorICAgICAgICBuczEuYSA9ICdzcGFtJworICAgICAgICBuczEuYiA9ICdoYW0nCisgICAgICAgIG5zMi56ID0gNAorICAgICAgICBuczIudGhldGEgPSBOb25lCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuczEuX19kaWN0X18sIGRpY3QoYT0nc3BhbScsIGI9J2hhbScpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5zMi5fX2RpY3RfXywgZGljdCh4PTEsIHk9Miwgdz0zLCB6PTQsIHRoZXRhPU5vbmUpKQorCisgICAgZGVmIHRlc3RfYXR0cmRlbChzZWxmKToKKyAgICAgICAgbnMxID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKCkKKyAgICAgICAgbnMyID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKHg9MSwgeT0yLCB3PTMpCisKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBkZWwgbnMxLnNwYW0KKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvcik6CisgICAgICAgICAgICBkZWwgbnMyLnNwYW0KKworICAgICAgICBkZWwgbnMyLnkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YXJzKG5zMiksIGRpY3Qodz0zLCB4PTEpKQorICAgICAgICBuczIueSA9ICdzcGFtJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhcnMobnMyKSwgZGljdCh3PTMsIHg9MSwgeT0nc3BhbScpKQorICAgICAgICBkZWwgbnMyLnkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YXJzKG5zMiksIGRpY3Qodz0zLCB4PTEpKQorCisgICAgICAgIG5zMS5zcGFtID0gNQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhcnMobnMxKSwgZGljdChzcGFtPTUpKQorICAgICAgICBkZWwgbnMxLnNwYW0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YXJzKG5zMSksIHt9KQorCisgICAgZGVmIHRlc3RfcmVwcihzZWxmKToKKyAgICAgICAgbnMxID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKHg9MSwgeT0yLCB3PTMpCisgICAgICAgIG5zMiA9IHR5cGVzLlNpbXBsZU5hbWVzcGFjZSgpCisgICAgICAgIG5zMi54ID0gInNwYW0iCisgICAgICAgIG5zMi5feSA9IDUKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobnMxKSwgIm5hbWVzcGFjZSh3PTMsIHg9MSwgeT0yKSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihuczIpLCAibmFtZXNwYWNlKF95PTUsIHg9J3NwYW0nKSIpCisKKyAgICBkZWYgdGVzdF9uZXN0ZWQoc2VsZik6CisgICAgICAgIG5zMSA9IHR5cGVzLlNpbXBsZU5hbWVzcGFjZShhPTEsIGI9MikKKyAgICAgICAgbnMyID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKCkKKyAgICAgICAgbnMzID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKHg9bnMxKQorICAgICAgICBuczIuc3BhbSA9IG5zMQorICAgICAgICBuczIuaGFtID0gJz8nCisgICAgICAgIG5zMi5zcGFtID0gbnMzCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YXJzKG5zMSksIGRpY3QoYT0xLCBiPTIpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHZhcnMobnMyKSwgZGljdChzcGFtPW5zMywgaGFtPSc/JykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobnMyLnNwYW0sIG5zMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2YXJzKG5zMyksIGRpY3QoeD1uczEpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5zMy54LmEsIDEpCisKKyAgICBkZWYgdGVzdF9yZWN1cnNpdmUoc2VsZik6CisgICAgICAgIG5zMSA9IHR5cGVzLlNpbXBsZU5hbWVzcGFjZShjPSdjb29raWUnKQorICAgICAgICBuczIgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoKQorICAgICAgICBuczMgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoeD0xKQorICAgICAgICBuczEuc3BhbSA9IG5zMQorICAgICAgICBuczIuc3BhbSA9IG5zMworICAgICAgICBuczMuc3BhbSA9IG5zMgorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobnMxLnNwYW0sIG5zMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuczEuc3BhbS5zcGFtLCBuczEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobnMxLnNwYW0uc3BhbSwgbnMxLnNwYW0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobnMyLnNwYW0sIG5zMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuczMuc3BhbSwgbnMyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5zMi5zcGFtLnNwYW0sIG5zMikKKworICAgIGRlZiB0ZXN0X3JlY3Vyc2l2ZV9yZXByKHNlbGYpOgorICAgICAgICBuczEgPSB0eXBlcy5TaW1wbGVOYW1lc3BhY2UoYz0nY29va2llJykKKyAgICAgICAgbnMyID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKCkKKyAgICAgICAgbnMzID0gdHlwZXMuU2ltcGxlTmFtZXNwYWNlKHg9MSkKKyAgICAgICAgbnMxLnNwYW0gPSBuczEKKyAgICAgICAgbnMyLnNwYW0gPSBuczMKKyAgICAgICAgbnMzLnNwYW0gPSBuczIKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobnMxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZXNwYWNlKGM9J2Nvb2tpZScsIHNwYW09bmFtZXNwYWNlKC4uLikpIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKG5zMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWVzcGFjZShzcGFtPW5hbWVzcGFjZShzcGFtPW5hbWVzcGFjZSguLi4pLCB4PTEpKSIpCisKKyAgICBkZWYgdGVzdF9hc19kaWN0KHNlbGYpOgorICAgICAgICBucyA9IHR5cGVzLlNpbXBsZU5hbWVzcGFjZShzcGFtPSdzcGFtc3BhbXNwYW0nKQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIGxlbihucykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgaXRlcihucykKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IpOgorICAgICAgICAgICAgJ3NwYW0nIGluIG5zCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIG5zWydzcGFtJ10KKworCiBkZWYgdGVzdF9tYWluKCk6Ci0gICAgcnVuX3VuaXR0ZXN0KFR5cGVzVGVzdHMpCisgICAgcnVuX3VuaXR0ZXN0KFR5cGVzVGVzdHMsIE1hcHBpbmdQcm94eVRlc3RzLCBDbGFzc0NyZWF0aW9uVGVzdHMsCisgICAgICAgICAgICAgICAgIFNpbXBsZU5hbWVzcGFjZVRlc3RzKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHRlc3RfbWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3Vjbi5weSBiL0xpYi90ZXN0L3Rlc3RfdWNuLnB5CmluZGV4IGZkNjIwZjAuLjY4YTMyMTkgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdWNuLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdWNuLnB5CkBAIC04LDggKzgsMTEgQEAKICIiIiMiCiAKIGltcG9ydCB1bml0dGVzdAoraW1wb3J0IHVuaWNvZGVkYXRhCiAKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAorZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRUUEV4Y2VwdGlvbgorZnJvbSB0ZXN0LnRlc3Rfbm9ybWFsaXphdGlvbiBpbXBvcnQgY2hlY2tfdmVyc2lvbgogCiBjbGFzcyBVbmljb2RlTmFtZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIApAQCAtNTksOCArNjIsNiBAQAogICAgICAgICApCiAKICAgICBkZWYgdGVzdF9hc2NpaV9sZXR0ZXJzKHNlbGYpOgotICAgICAgICBpbXBvcnQgdW5pY29kZWRhdGEKLQogICAgICAgICBmb3IgY2hhciBpbiAiIi5qb2luKG1hcChjaHIsIHJhbmdlKG9yZCgiYSIpLCBvcmQoInoiKSkpKToKICAgICAgICAgICAgIG5hbWUgPSAiTEFUSU4gU01BTEwgTEVUVEVSICVzIiAlIGNoYXIudXBwZXIoKQogICAgICAgICAgICAgY29kZSA9IHVuaWNvZGVkYXRhLmxvb2t1cChuYW1lKQpAQCAtODEsNyArODIsNiBAQAogICAgICAgICBzZWxmLmNoZWNrbGV0dGVyKCJIQU5HVUwgU1lMTEFCTEUgSFdFT0siLCAiXHVkNmY4IikKICAgICAgICAgc2VsZi5jaGVja2xldHRlcigiSEFOR1VMIFNZTExBQkxFIEhJSCIsICJcdWQ3YTMiKQogCi0gICAgICAgIGltcG9ydCB1bmljb2RlZGF0YQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCB1bmljb2RlZGF0YS5uYW1lLCAiXHVkN2E0IikKIAogICAgIGRlZiB0ZXN0X2Nqa191bmlmaWVkX2lkZW9ncmFwaHMoc2VsZik6CkBAIC05NywxNCArOTcsMTEgQEAKICAgICAgICAgc2VsZi5jaGVja2xldHRlcigiQ0pLIFVOSUZJRUQgSURFT0dSQVBILTJCODFEIiwgIlxVMDAwMkI4MUQiKQogCiAgICAgZGVmIHRlc3RfYm1wX2NoYXJhY3RlcnMoc2VsZik6Ci0gICAgICAgIGltcG9ydCB1bmljb2RlZGF0YQotICAgICAgICBjb3VudCA9IDAKICAgICAgICAgZm9yIGNvZGUgaW4gcmFuZ2UoMHgxMDAwMCk6CiAgICAgICAgICAgICBjaGFyID0gY2hyKGNvZGUpCiAgICAgICAgICAgICBuYW1lID0gdW5pY29kZWRhdGEubmFtZShjaGFyLCBOb25lKQogICAgICAgICAgICAgaWYgbmFtZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVuaWNvZGVkYXRhLmxvb2t1cChuYW1lKSwgY2hhcikKLSAgICAgICAgICAgICAgICBjb3VudCArPSAxCiAKICAgICBkZWYgdGVzdF9taXNjX3N5bWJvbHMoc2VsZik6CiAgICAgICAgIHNlbGYuY2hlY2tsZXR0ZXIoIlBJTENST1cgU0lHTiIsICJcdTAwYjYiKQpAQCAtMTEyLDggKzEwOSw4NSBAQAogICAgICAgICBzZWxmLmNoZWNrbGV0dGVyKCJIQUxGV0lEVEggS0FUQUtBTkEgU0VNSS1WT0lDRUQgU09VTkQgTUFSSyIsICJcdUZGOUYiKQogICAgICAgICBzZWxmLmNoZWNrbGV0dGVyKCJGVUxMV0lEVEggTEFUSU4gU01BTEwgTEVUVEVSIEEiLCAiXHVGRjQxIikKIAorICAgIGRlZiB0ZXN0X2FsaWFzZXMoc2VsZik6CisgICAgICAgICMgQ2hlY2sgdGhhdCB0aGUgYWxpYXNlcyBkZWZpbmVkIGluIHRoZSBOYW1lQWxpYXNlcy50eHQgZmlsZSB3b3JrLgorICAgICAgICAjIFRoaXMgc2hvdWxkIGJlIHVwZGF0ZWQgd2hlbiBuZXcgYWxpYXNlcyBhcmUgYWRkZWQgb3IgdGhlIGZpbGUKKyAgICAgICAgIyBzaG91bGQgYmUgZG93bmxvYWRlZCBhbmQgcGFyc2VkIGluc3RlYWQuICBTZWUgIzEyNzUzLgorICAgICAgICBhbGlhc2VzID0gWworICAgICAgICAgICAgKCdMQVRJTiBDQVBJVEFMIExFVFRFUiBHSEEnLCAweDAxQTIpLAorICAgICAgICAgICAgKCdMQVRJTiBTTUFMTCBMRVRURVIgR0hBJywgMHgwMUEzKSwKKyAgICAgICAgICAgICgnS0FOTkFEQSBMRVRURVIgTExMQScsIDB4MENERSksCisgICAgICAgICAgICAoJ0xBTyBMRVRURVIgRk8gRk9OJywgMHgwRTlEKSwKKyAgICAgICAgICAgICgnTEFPIExFVFRFUiBGTyBGQVknLCAweDBFOUYpLAorICAgICAgICAgICAgKCdMQU8gTEVUVEVSIFJPJywgMHgwRUEzKSwKKyAgICAgICAgICAgICgnTEFPIExFVFRFUiBMTycsIDB4MEVBNSksCisgICAgICAgICAgICAoJ1RJQkVUQU4gTUFSSyBCS0EtIFNIT0cgR0kgTUdPIFJHWUFOJywgMHgwRkQwKSwKKyAgICAgICAgICAgICgnWUkgU1lMTEFCTEUgSVRFUkFUSU9OIE1BUksnLCAweEEwMTUpLAorICAgICAgICAgICAgKCdQUkVTRU5UQVRJT04gRk9STSBGT1IgVkVSVElDQUwgUklHSFQgV0hJVEUgTEVOVElDVUxBUiBCUkFDS0VUJywgMHhGRTE4KSwKKyAgICAgICAgICAgICgnQllaQU5USU5FIE1VU0lDQUwgU1lNQk9MIEZUSE9SQSBTS0xJUk9OIENIUk9NQSBWQVNJUycsIDB4MUQwQzUpCisgICAgICAgIF0KKyAgICAgICAgZm9yIGFsaWFzLCBjb2RlcG9pbnQgaW4gYWxpYXNlczoKKyAgICAgICAgICAgIHNlbGYuY2hlY2tsZXR0ZXIoYWxpYXMsIGNocihjb2RlcG9pbnQpKQorICAgICAgICAgICAgbmFtZSA9IHVuaWNvZGVkYXRhLm5hbWUoY2hyKGNvZGVwb2ludCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKG5hbWUsIGFsaWFzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bmljb2RlZGF0YS5sb29rdXAoYWxpYXMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlZGF0YS5sb29rdXAobmFtZSkpCisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yKToKKyAgICAgICAgICAgICAgICB1bmljb2RlZGF0YS51Y2RfM18yXzAubG9va3VwKGFsaWFzKQorCisgICAgZGVmIHRlc3RfYWxpYXNlc19uYW1lc19pbl9wdWFfcmFuZ2Uoc2VsZik6CisgICAgICAgICMgV2UgYXJlIHN0b3JpbmcgYWxpYXNlcyBpbiB0aGUgUFVBIDE1LCBidXQgdGhlaXIgbmFtZXMgc2hvdWxkbid0IGxlYWsKKyAgICAgICAgZm9yIGNwIGluIHJhbmdlKDB4ZjAwMDAsIDB4ZjAxMDApOgorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKSBhcyBjbToKKyAgICAgICAgICAgICAgICB1bmljb2RlZGF0YS5uYW1lKGNocihjcCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihjbS5leGNlcHRpb24pLCAnbm8gc3VjaCBuYW1lJykKKworICAgIGRlZiB0ZXN0X25hbWVkX3NlcXVlbmNlc19uYW1lc19pbl9wdWFfcmFuZ2Uoc2VsZik6CisgICAgICAgICMgV2UgYXJlIHN0b3JpbmcgbmFtZWQgc2VxIGluIHRoZSBQVUEgMTUsIGJ1dCB0aGVpciBuYW1lcyBzaG91bGRuJ3QgbGVhaworICAgICAgICBmb3IgY3AgaW4gcmFuZ2UoMHhmMDEwMCwgMHhmMGZmZik6CisgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgICAgIHVuaWNvZGVkYXRhLm5hbWUoY2hyKGNwKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNtLmV4Y2VwdGlvbiksICdubyBzdWNoIG5hbWUnKQorCisgICAgZGVmIHRlc3RfbmFtZWRfc2VxdWVuY2VzX3NhbXBsZShzZWxmKToKKyAgICAgICAgIyBDaGVjayBhIGZldyBuYW1lZCBzZXF1ZW5jZXMuICBTZWUgIzEyNzUzLgorICAgICAgICBzZXF1ZW5jZXMgPSBbCisgICAgICAgICAgICAoJ0xBVElOIFNNQUxMIExFVFRFUiBSIFdJVEggVElMREUnLCAnXHUwMDcyXHUwMzAzJyksCisgICAgICAgICAgICAoJ1RBTUlMIFNZTExBQkxFIFNBSScsICdcdTBCQjhcdTBCQzgnKSwKKyAgICAgICAgICAgICgnVEFNSUwgU1lMTEFCTEUgTU9PJywgJ1x1MEJBRVx1MEJDQicpLAorICAgICAgICAgICAgKCdUQU1JTCBTWUxMQUJMRSBOTk9PJywgJ1x1MEJBM1x1MEJDQicpLAorICAgICAgICAgICAgKCdUQU1JTCBDT05TT05BTlQgS1NTJywgJ1x1MEI5NVx1MEJDRFx1MEJCN1x1MEJDRCcpLAorICAgICAgICBdCisgICAgICAgIGZvciBzZXFuYW1lLCBjb2RlcG9pbnRzIGluIHNlcXVlbmNlczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodW5pY29kZWRhdGEubG9va3VwKHNlcW5hbWUpLCBjb2RlcG9pbnRzKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhTeW50YXhFcnJvcik6CisgICAgICAgICAgICAgICAgc2VsZi5jaGVja2xldHRlcihzZXFuYW1lLCBOb25lKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvcik6CisgICAgICAgICAgICAgICAgdW5pY29kZWRhdGEudWNkXzNfMl8wLmxvb2t1cChzZXFuYW1lKQorCisgICAgZGVmIHRlc3RfbmFtZWRfc2VxdWVuY2VzX2Z1bGwoc2VsZik6CisgICAgICAgICMgQ2hlY2sgYWxsIHRoZSBuYW1lZCBzZXF1ZW5jZXMKKyAgICAgICAgdXJsID0gKCJodHRwOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy8lcy91Y2QvTmFtZWRTZXF1ZW5jZXMudHh0IiAlCisgICAgICAgICAgICAgICB1bmljb2RlZGF0YS51bmlkYXRhX3ZlcnNpb24pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRlc3RkYXRhID0gc3VwcG9ydC5vcGVuX3VybHJlc291cmNlKHVybCwgZW5jb2Rpbmc9InV0Zi04IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrPWNoZWNrX3ZlcnNpb24pCisgICAgICAgIGV4Y2VwdCAoSU9FcnJvciwgSFRUUEV4Y2VwdGlvbik6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJDb3VsZCBub3QgcmV0cmlldmUgIiArIHVybCkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHRlc3RkYXRhLmNsb3NlKQorICAgICAgICBmb3IgbGluZSBpbiB0ZXN0ZGF0YToKKyAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKKyAgICAgICAgICAgIGlmIG5vdCBsaW5lIG9yIGxpbmUuc3RhcnRzd2l0aCgnIycpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBzZXFuYW1lLCBjb2RlcG9pbnRzID0gbGluZS5zcGxpdCgnOycpCisgICAgICAgICAgICBjb2RlcG9pbnRzID0gJycuam9pbihjaHIoaW50KGNwLCAxNikpIGZvciBjcCBpbiBjb2RlcG9pbnRzLnNwbGl0KCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVuaWNvZGVkYXRhLmxvb2t1cChzZXFuYW1lKSwgY29kZXBvaW50cykKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoU3ludGF4RXJyb3IpOgorICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tsZXR0ZXIoc2VxbmFtZSwgTm9uZSkKKyAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IpOgorICAgICAgICAgICAgICAgIHVuaWNvZGVkYXRhLnVjZF8zXzJfMC5sb29rdXAoc2VxbmFtZSkKKwogICAgIGRlZiB0ZXN0X2Vycm9ycyhzZWxmKToKLSAgICAgICAgaW1wb3J0IHVuaWNvZGVkYXRhCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgdW5pY29kZWRhdGEubmFtZSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB1bmljb2RlZGF0YS5uYW1lLCAneHgnKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHVuaWNvZGVkYXRhLmxvb2t1cCkKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdW5pY29kZS5weSBiL0xpYi90ZXN0L3Rlc3RfdW5pY29kZS5weQppbmRleCAxOWIwNmEwLi40MDI0YmU3IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3VuaWNvZGUucHkKKysrIGIvTGliL3Rlc3QvdGVzdF91bmljb2RlLnB5CkBAIC01LDE3ICs1LDEzIEBACiAoYykgQ29weXJpZ2h0IENOUkksIEFsbCBSaWdodHMgUmVzZXJ2ZWQuIE5PIFdBUlJBTlRZLgogCiAiIiIjIgoraW1wb3J0IF9zdHJpbmcKIGltcG9ydCBjb2RlY3MKIGltcG9ydCBzdHJ1Y3QKIGltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAogaW1wb3J0IHdhcm5pbmdzCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQsIHN0cmluZ190ZXN0cwotaW1wb3J0IF9zdHJpbmcKLQotIyBkZWNvcmF0b3IgdG8gc2tpcCB0ZXN0cyBvbiBuYXJyb3cgYnVpbGRzCi1yZXF1aXJlc193aWRlX2J1aWxkID0gdW5pdHRlc3Quc2tpcElmKHN5cy5tYXh1bmljb2RlID09IDY1NTM1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVxdWlyZXMgd2lkZSBidWlsZCcpCiAKICMgRXJyb3IgaGFuZGxpbmcgKGJhZCBkZWNvZGVyIHJldHVybikKIGRlZiBzZWFyY2hfZnVuY3Rpb24oZW5jb2RpbmcpOgpAQCAtMTc1LDYgKzE3MSwxNSBAQAogCiAgICAgZGVmIHRlc3RfZmluZChzZWxmKToKICAgICAgICAgc3RyaW5nX3Rlc3RzLkNvbW1vblRlc3QudGVzdF9maW5kKHNlbGYpCisgICAgICAgICMgdGVzdCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIG9mIHRoZSBtZW1jaHIgZmFzdCBwYXRoCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbCgxMDAsICdhJyAqIDEwMCArICdcdTAxMDInLCAnZmluZCcsICdcdTAxMDInKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoLTEsICdhJyAqIDEwMCArICdcdTAxMDInLCAnZmluZCcsICdcdTAyMDEnKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoLTEsICdhJyAqIDEwMCArICdcdTAxMDInLCAnZmluZCcsICdcdTAxMjAnKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoLTEsICdhJyAqIDEwMCArICdcdTAxMDInLCAnZmluZCcsICdcdTAyMjAnKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoMTAwLCAnYScgKiAxMDAgKyAnXFUwMDEwMDMwNCcsICdmaW5kJywgJ1xVMDAxMDAzMDQnKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoLTEsICdhJyAqIDEwMCArICdcVTAwMTAwMzA0JywgJ2ZpbmQnLCAnXFUwMDEwMDIwNCcpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbCgtMSwgJ2EnICogMTAwICsgJ1xVMDAxMDAzMDQnLCAnZmluZCcsICdcVTAwMTAyMDA0JykKKyAgICAgICAgIyBjaGVjayBtaXhlZCBhcmd1bWVudCB0eXBlcwogICAgICAgICBzZWxmLmNoZWNrZXF1YWxub2ZpeCgwLCAgJ2FiY2RlZmdoaWFiYycsICdmaW5kJywgJ2FiYycpCiAgICAgICAgIHNlbGYuY2hlY2tlcXVhbG5vZml4KDksICAnYWJjZGVmZ2hpYWJjJywgJ2ZpbmQnLCAnYWJjJywgMSkKICAgICAgICAgc2VsZi5jaGVja2VxdWFsbm9maXgoLTEsICdhYmNkZWZnaGlhYmMnLCAnZmluZCcsICdkZWYnLCA0KQpAQCAtMTg0LDYgKzE4OSwxNCBAQAogCiAgICAgZGVmIHRlc3RfcmZpbmQoc2VsZik6CiAgICAgICAgIHN0cmluZ190ZXN0cy5Db21tb25UZXN0LnRlc3RfcmZpbmQoc2VsZikKKyAgICAgICAgIyB0ZXN0IGltcGxlbWVudGF0aW9uIGRldGFpbHMgb2YgdGhlIG1lbXJjaHIgZmFzdCBwYXRoCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbCgwLCAnXHUwMTAyJyArICdhJyAqIDEwMCAsICdyZmluZCcsICdcdTAxMDInKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoLTEsICdcdTAxMDInICsgJ2EnICogMTAwICwgJ3JmaW5kJywgJ1x1MDIwMScpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbCgtMSwgJ1x1MDEwMicgKyAnYScgKiAxMDAgLCAncmZpbmQnLCAnXHUwMTIwJykKKyAgICAgICAgc2VsZi5jaGVja2VxdWFsKC0xLCAnXHUwMTAyJyArICdhJyAqIDEwMCAsICdyZmluZCcsICdcdTAyMjAnKQorICAgICAgICBzZWxmLmNoZWNrZXF1YWwoMCwgJ1xVMDAxMDAzMDQnICsgJ2EnICogMTAwLCAncmZpbmQnLCAnXFUwMDEwMDMwNCcpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbCgtMSwgJ1xVMDAxMDAzMDQnICsgJ2EnICogMTAwLCAncmZpbmQnLCAnXFUwMDEwMDIwNCcpCisgICAgICAgIHNlbGYuY2hlY2tlcXVhbCgtMSwgJ1xVMDAxMDAzMDQnICsgJ2EnICogMTAwLCAncmZpbmQnLCAnXFUwMDEwMjAwNCcpCiAgICAgICAgICMgY2hlY2sgbWl4ZWQgYXJndW1lbnQgdHlwZXMKICAgICAgICAgc2VsZi5jaGVja2VxdWFsbm9maXgoOSwgICAnYWJjZGVmZ2hpYWJjJywgJ3JmaW5kJywgJ2FiYycpCiAgICAgICAgIHNlbGYuY2hlY2tlcXVhbG5vZml4KDEyLCAgJ2FiY2RlZmdoaWFiYycsICdyZmluZCcsICcnKQpAQCAtMjgwLDYgKzI5MywxMiBAQAogICAgICAgICBzZWxmLmNoZWNrZXF1YWxub2ZpeCgnb25lQHR3byF0aHJlZSEnLCAnb25lIXR3byF0aHJlZSEnLCAncmVwbGFjZScsICchJywgJ0AnLCAxKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsICdyZXBsYWNlJy5yZXBsYWNlLCAiciIsIDQyKQogCisgICAgQHN1cHBvcnQuY3B5dGhvbl9vbmx5CisgICAgZGVmIHRlc3RfcmVwbGFjZV9pZChzZWxmKToKKyAgICAgICAgcGF0dGVybiA9ICdhYmMnCisgICAgICAgIHRleHQgPSAnYWJjIGRlZicKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0ZXh0LnJlcGxhY2UocGF0dGVybiwgcGF0dGVybiksIHRleHQpCisKICAgICBkZWYgdGVzdF9ieXRlc19jb21wYXJpc29uKHNlbGYpOgogICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKToKICAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcignaWdub3JlJywgQnl0ZXNXYXJuaW5nKQpAQCAtMzUwLDYgKzM2OSw4IEBACiAgICAgZGVmIHRlc3RfaXNsb3dlcihzZWxmKToKICAgICAgICAgc3RyaW5nX3Rlc3RzLk1peGluU3RyVW5pY29kZVVzZXJTdHJpbmdUZXN0LnRlc3RfaXNsb3dlcihzZWxmKQogICAgICAgICBzZWxmLmNoZWNrZXF1YWxub2ZpeChGYWxzZSwgJ1x1MUZGYycsICdpc2xvd2VyJykKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnXHUyMTY3Jy5pc2xvd2VyKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnXHUyMTc3Jy5pc2xvd2VyKCkpCiAgICAgICAgICMgbm9uLUJNUCwgdXBwZXJjYXNlCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoJ1xVMDAwMTA0MDEnLmlzbG93ZXIoKSkKICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnXFUwMDAxMDQyNycuaXNsb3dlcigpKQpAQCAtMzY0LDYgKzM4NSw4IEBACiAgICAgICAgIHN0cmluZ190ZXN0cy5NaXhpblN0clVuaWNvZGVVc2VyU3RyaW5nVGVzdC50ZXN0X2lzdXBwZXIoc2VsZikKICAgICAgICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdqYXZhJyk6CiAgICAgICAgICAgICBzZWxmLmNoZWNrZXF1YWxub2ZpeChGYWxzZSwgJ1x1MUZGYycsICdpc3VwcGVyJykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdcdTIxNjcnLmlzdXBwZXIoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSgnXHUyMTc3Jy5pc3VwcGVyKCkpCiAgICAgICAgICMgbm9uLUJNUCwgdXBwZXJjYXNlCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnXFUwMDAxMDQwMScuaXN1cHBlcigpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoJ1xVMDAwMTA0MjcnLmlzdXBwZXIoKSkKQEAgLTUyMCw3ICs1NDMsNiBAQAogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWV0aChzKSwgJyVhLiVzKCkgaXMgRmFsc2UnICUgKHMsIG1ldGhfbmFtZSkpCiAKIAotICAgIEByZXF1aXJlc193aWRlX2J1aWxkCiAgICAgZGVmIHRlc3RfbG93ZXIoc2VsZik6CiAgICAgICAgIHN0cmluZ190ZXN0cy5Db21tb25UZXN0LnRlc3RfbG93ZXIoc2VsZikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXFUwMDAxMDQyNycubG93ZXIoKSwgJ1xVMDAwMTA0NEYnKQpAQCAtNTMwLDggKzU1MiwyNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICdcVTAwMDEwNDRGXFUwMDAxMDQ0RicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1hcVTAwMDEwNDI3eFxVMDAwMTA0NEYnLmxvd2VyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3hcVTAwMDEwNDRGeFxVMDAwMTA0NEYnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCfvrIEnLmxvd2VyKCksICfvrIEnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcdTAxMzAnLmxvd2VyKCksICdcdTAwNjlcdTAzMDcnKQorICAgICAgICAjIFNwZWNpYWwgY2FzZSBmb3IgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEgVSswM0EzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x1MDNhMycubG93ZXIoKSwgJ1x1MDNjMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x1MDM0NVx1MDNhMycubG93ZXIoKSwgJ1x1MDM0NVx1MDNjMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FcdTAzNDVcdTAzYTMnLmxvd2VyKCksICdhXHUwMzQ1XHUwM2MyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQVx1MDM0NVx1MDNhM2EnLmxvd2VyKCksICdhXHUwMzQ1XHUwM2MzYScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FcdTAzNDVcdTAzYTMnLmxvd2VyKCksICdhXHUwMzQ1XHUwM2MyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQVx1MDNhM1x1MDM0NScubG93ZXIoKSwgJ2FcdTAzYzJcdTAzNDUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcdTAzYTNcdTAzNDUgJy5sb3dlcigpLCAnXHUwM2MzXHUwMzQ1ICcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xVMDAwOGZmZmUnLmxvd2VyKCksICdcVTAwMDhmZmZlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHUyMTc3Jy5sb3dlcigpLCAnXHUyMTc3JykKIAotICAgIEByZXF1aXJlc193aWRlX2J1aWxkCisgICAgZGVmIHRlc3RfY2FzZWZvbGQoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2hlbGxvJy5jYXNlZm9sZCgpLCAnaGVsbG8nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdoRUxsbycuY2FzZWZvbGQoKSwgJ2hlbGxvJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnw58nLmNhc2Vmb2xkKCksICdzcycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ++sgScuY2FzZWZvbGQoKSwgJ2ZpJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHUwM2EzJy5jYXNlZm9sZCgpLCAnXHUwM2MzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQVx1MDM0NVx1MDNhMycuY2FzZWZvbGQoKSwgJ2FcdTAzYjlcdTAzYzMnKQorCiAgICAgZGVmIHRlc3RfdXBwZXIoc2VsZik6CiAgICAgICAgIHN0cmluZ190ZXN0cy5Db21tb25UZXN0LnRlc3RfdXBwZXIoc2VsZikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXFUwMDAxMDQ0RicudXBwZXIoKSwgJ1xVMDAwMTA0MjcnKQpAQCAtNTQxLDggKzU4MiwxNCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICdcVTAwMDEwNDI3XFUwMDAxMDQyNycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1hcVTAwMDEwNDI3eFxVMDAwMTA0NEYnLnVwcGVyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1hcVTAwMDEwNDI3WFxVMDAwMTA0MjcnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCfvrIEnLnVwcGVyKCksICdGSScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x1MDEzMCcudXBwZXIoKSwgJ1x1MDEzMCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x1MDNhMycudXBwZXIoKSwgJ1x1MDNhMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ8OfJy51cHBlcigpLCAnU1MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcdTFmZDInLnVwcGVyKCksICdcdTAzOTlcdTAzMDhcdTAzMDAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcVTAwMDhmZmZlJy51cHBlcigpLCAnXFUwMDA4ZmZmZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x1MjE3NycudXBwZXIoKSwgJ1x1MjE2NycpCiAKLSAgICBAcmVxdWlyZXNfd2lkZV9idWlsZAogICAgIGRlZiB0ZXN0X2NhcGl0YWxpemUoc2VsZik6CiAgICAgICAgIHN0cmluZ190ZXN0cy5Db21tb25UZXN0LnRlc3RfY2FwaXRhbGl6ZShzZWxmKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcVTAwMDEwNDRGJy5jYXBpdGFsaXplKCksICdcVTAwMDEwNDI3JykKQEAgLTU1NCw4ICs2MDEsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAnXFUwMDAxMDQyN1xVMDAwMTA0NEYnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdYXFUwMDAxMDQyN3hcVTAwMDEwNDRGJy5jYXBpdGFsaXplKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1hcVTAwMDEwNDRGeFxVMDAwMTA0NEYnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdoXHUwMTMwJy5jYXBpdGFsaXplKCksICdIXHUwMDY5XHUwMzA3JykKKyAgICAgICAgZXhwID0gJ1x1MDM5OVx1MDMwOFx1MDMwMFx1MDA2OVx1MDMwNycKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHUxZmQyXHUwMTMwJy5jYXBpdGFsaXplKCksIGV4cCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn76yBbm5pc2gnLmNhcGl0YWxpemUoKSwgJ0ZJbm5pc2gnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdBXHUwMzQ1XHUwM2EzJy5jYXBpdGFsaXplKCksICdBXHUwMzQ1XHUwM2MyJykKIAotICAgIEByZXF1aXJlc193aWRlX2J1aWxkCiAgICAgZGVmIHRlc3RfdGl0bGUoc2VsZik6CiAgICAgICAgIHN0cmluZ190ZXN0cy5NaXhpblN0clVuaWNvZGVVc2VyU3RyaW5nVGVzdC50ZXN0X3RpdGxlKHNlbGYpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xVMDAwMTA0NEYnLnRpdGxlKCksICdcVTAwMDEwNDI3JykKQEAgLTU2OSw4ICs2MjAsMTAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAnXFUwMDAxMDQyN1xVMDAwMTA0NEYgXFUwMDAxMDQyN1xVMDAwMTA0NEYnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdYXFUwMDAxMDQyN3hcVTAwMDEwNDRGIFhcVTAwMDEwNDI3eFxVMDAwMTA0NEYnLnRpdGxlKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1hcVTAwMDEwNDRGeFxVMDAwMTA0NEYgWFxVMDAwMTA0NEZ4XFUwMDAxMDQ0RicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ++sgU5OSVNIJy50aXRsZSgpLCAnRmlubmlzaCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FcdTAzYTMgXHUxZmExeHknLnRpdGxlKCksICdBXHUwM2MyIFx1MWZhOXh5JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQVx1MDNhM0EnLnRpdGxlKCksICdBXHUwM2MzYScpCiAKLSAgICBAcmVxdWlyZXNfd2lkZV9idWlsZAogICAgIGRlZiB0ZXN0X3N3YXBjYXNlKHNlbGYpOgogICAgICAgICBzdHJpbmdfdGVzdHMuQ29tbW9uVGVzdC50ZXN0X3N3YXBjYXNlKHNlbGYpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xVMDAwMTA0NEYnLnN3YXBjYXNlKCksICdcVTAwMDEwNDI3JykKQEAgLTU4Myw2ICs2MzYsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAnXFUwMDAxMDQyN1xVMDAwMTA0NEYnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdYXFUwMDAxMDQyN3hcVTAwMDEwNDRGJy5zd2FwY2FzZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICd4XFUwMDAxMDQ0RlhcVTAwMDEwNDI3JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn76yBJy5zd2FwY2FzZSgpLCAnRkknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcdTAxMzAnLnN3YXBjYXNlKCksICdcdTAwNjlcdTAzMDcnKQorICAgICAgICAjIFNwZWNpYWwgY2FzZSBmb3IgR1JFRUsgQ0FQSVRBTCBMRVRURVIgU0lHTUEgVSswM0EzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x1MDNhMycuc3dhcGNhc2UoKSwgJ1x1MDNjMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x1MDM0NVx1MDNhMycuc3dhcGNhc2UoKSwgJ1x1MDM5OVx1MDNjMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FcdTAzNDVcdTAzYTMnLnN3YXBjYXNlKCksICdhXHUwMzk5XHUwM2MyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQVx1MDM0NVx1MDNhM2EnLnN3YXBjYXNlKCksICdhXHUwMzk5XHUwM2MzQScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FcdTAzNDVcdTAzYTMnLnN3YXBjYXNlKCksICdhXHUwMzk5XHUwM2MyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnQVx1MDNhM1x1MDM0NScuc3dhcGNhc2UoKSwgJ2FcdTAzYzJcdTAzOTknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcdTAzYTNcdTAzNDUgJy5zd2FwY2FzZSgpLCAnXHUwM2MzXHUwMzk5ICcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x1MDNhMycuc3dhcGNhc2UoKSwgJ1x1MDNjMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ8OfJy5zd2FwY2FzZSgpLCAnU1MnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcdTFmZDInLnN3YXBjYXNlKCksICdcdTAzOTlcdTAzMDhcdTAzMDAnKQogCiAgICAgZGVmIHRlc3RfY29udGFpbnMoc2VsZik6CiAgICAgICAgICMgVGVzdGluZyBVbmljb2RlIGNvbnRhaW5zIG1ldGhvZApAQCAtNzc2LDcgKzg0Miw3IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3swIXN9Jy5mb3JtYXQoRygnZGF0YScpKSwgJ3N0cmluZyBpcyBkYXRhJykKIAogICAgICAgICBtc2cgPSAnb2JqZWN0Ll9fZm9ybWF0X18gd2l0aCBhIG5vbi1lbXB0eSBmb3JtYXQgc3RyaW5nIGlzIGRlcHJlY2F0ZWQnCi0gICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygobXNnLCBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nKSk6CisgICAgICAgIHdpdGggc3VwcG9ydC5jaGVja193YXJuaW5ncygobXNnLCBEZXByZWNhdGlvbldhcm5pbmcpKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3swOl4xMH0nLmZvcm1hdChFKCdkYXRhJykpLCAnIEUoZGF0YSkgICcpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd7MDpeMTBzfScuZm9ybWF0KEUoJ2RhdGEnKSksICcgRShkYXRhKSAgJykKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3swOj4xNXN9Jy5mb3JtYXQoRygnZGF0YScpKSwgJyBzdHJpbmcgaXMgZGF0YScpCkBAIC04NTgsNiArOTI0LDE0IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGZvcm1hdCwgJycsICcjJykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZm9ybWF0LCAnJywgJyMyMCcpCiAKKyAgICAgICAgIyBOb24tQVNDSUkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiezA6c317MTpzfSIuZm9ybWF0KCJBQkMiLCAiXHUwNDEwXHUwNDExXHUwNDEyIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ0FCQ1x1MDQxMFx1MDQxMVx1MDQxMicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInswOi4zc30iLmZvcm1hdCgiQUJDXHUwNDEwXHUwNDExXHUwNDEyIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgJ0FCQycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInswOi4wc30iLmZvcm1hdCgiQUJDXHUwNDEwXHUwNDExXHUwNDEyIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgJycpCisKICAgICBkZWYgdGVzdF9mb3JtYXRfbWFwKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLmZvcm1hdF9tYXAoe30pLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnYScuZm9ybWF0X21hcCh7fSksICdhJykKQEAgLTk5MCw2ICsxMDY0LDEwIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyVmJyAlIElORiwgJ2luZicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyVGJyAlIElORiwgJ0lORicpCiAKKyAgICAgICAgIyBQRVAgMzkzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJyUuMXMnICUgImFceGU5XHUyMGFjIiwgJ2EnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCclLjJzJyAlICJhXHhlOVx1MjBhYyIsICdhXHhlOScpCisKICAgICBkZWYgdGVzdF9zdGFydHN3aXRoX2VuZHN3aXRoX2Vycm9ycyhzZWxmKToKICAgICAgICAgZm9yIG1ldGggaW4gKCdmb28nLnN0YXJ0c3dpdGgsICdmb28nLmVuZHN3aXRoKToKICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKSBhcyBjbToKQEAgLTEwMTQsMTAgKzEwOTIsMTMgQEAKICAgICAgICAgY2xhc3MgVW5pY29kZVN1YmNsYXNzKHN0cik6CiAgICAgICAgICAgICBwYXNzCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIHN0cihVbmljb2RlU3ViY2xhc3MoJ3VuaWNvZGUgc3ViY2xhc3MgYmVjb21lcyB1bmljb2RlJykpLAotICAgICAgICAgICAgJ3VuaWNvZGUgc3ViY2xhc3MgYmVjb21lcyB1bmljb2RlJwotICAgICAgICApCisgICAgICAgIGZvciB0ZXh0IGluICgnYXNjaWknLCAnXHhlOScsICdcdTIwYWMnLCAnXFUwMDEwRkZGRicpOgorICAgICAgICAgICAgc3ViY2xhc3MgPSBVbmljb2RlU3ViY2xhc3ModGV4dCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHN1YmNsYXNzKSwgdGV4dCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHN1YmNsYXNzKSwgbGVuKHRleHQpKQorICAgICAgICAgICAgaWYgdGV4dCA9PSAnYXNjaWknOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3ViY2xhc3MuZW5jb2RlKCdhc2NpaScpLCBiJ2FzY2lpJykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN1YmNsYXNzLmVuY29kZSgndXRmLTgnKSwgYidhc2NpaScpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAgICAgIHN0cignc3RyaW5ncyBhcmUgY29udmVydGVkIHRvIHVuaWNvZGUnKSwKQEAgLTExMjMsMTUgKzEyMDQsMTIgQEAKICAgICBkZWYgdGVzdF9jb2RlY3NfdXRmOChzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnJy5lbmNvZGUoJ3V0Zi04JyksIGInJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHUyMGFjJy5lbmNvZGUoJ3V0Zi04JyksIGInXHhlMlx4ODJceGFjJykKLSAgICAgICAgaWYgc3lzLm1heHVuaWNvZGUgPT0gNjU1MzU6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcdWQ4MDBcdWRjMDInLmVuY29kZSgndXRmLTgnKSwgYidceGYwXHg5MFx4ODBceDgyJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x1ZDg0ZFx1ZGM1NicuZW5jb2RlKCd1dGYtOCcpLCBiJ1x4ZjBceGEzXHg5MVx4OTYnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcVTAwMDEwMDAyJy5lbmNvZGUoJ3V0Zi04JyksIGInXHhmMFx4OTBceDgwXHg4MicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1xVMDAwMjM0NTYnLmVuY29kZSgndXRmLTgnKSwgYidceGYwXHhhM1x4OTFceDk2JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHVkODAwJy5lbmNvZGUoJ3V0Zi04JywgJ3N1cnJvZ2F0ZXBhc3MnKSwgYidceGVkXHhhMFx4ODAnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcdWRjMDAnLmVuY29kZSgndXRmLTgnLCAnc3Vycm9nYXRlcGFzcycpLCBiJ1x4ZWRceGIwXHg4MCcpCi0gICAgICAgIGlmIHN5cy5tYXh1bmljb2RlID09IDY1NTM1OgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICAoJ1x1ZDgwMFx1ZGMwMicqMTAwMCkuZW5jb2RlKCd1dGYtOCcpLAotICAgICAgICAgICAgICAgIGInXHhmMFx4OTBceDgwXHg4MicqMTAwMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoJ1xVMDAwMTAwMDInKjEwKS5lbmNvZGUoJ3V0Zi04JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgYidceGYwXHg5MFx4ODBceDgyJyoxMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAgICAgICdcdTZiNjNcdTc4YmFcdTMwNmJcdThhMDBcdTMwNDZcdTMwNjhcdTdmZmJcdThhMzNcdTMwNmYnCiAgICAgICAgICAgICAnXHUzMDU1XHUzMDhjXHUzMDY2XHUzMDQ0XHUzMDdlXHUzMDViXHUzMDkzXHUzMDAyXHU0ZTAwJwpAQCAtMTM0NCwxNCArMTQyMiw2IEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc3RyLCBiImhlbGxvIiwgInRlc3QudW5pY29kZTIiKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsICJoZWxsbyIuZW5jb2RlLCAidGVzdC51bmljb2RlMSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgImhlbGxvIi5lbmNvZGUsICJ0ZXN0LnVuaWNvZGUyIikKLSAgICAgICAgIyBleGVjdXRlcyBQeVVuaWNvZGVfRW5jb2RlKCkKLSAgICAgICAgaW1wb3J0IGltcAotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgIEltcG9ydEVycm9yLAotICAgICAgICAgICAgaW1wLmZpbmRfbW9kdWxlLAotICAgICAgICAgICAgIm5vbi1leGlzdGluZyBtb2R1bGUiLAotICAgICAgICAgICAgWyJub24tZXhpc3RpbmcgZGlyIl0KLSAgICAgICAgKQogCiAgICAgICAgICMgRXJyb3IgaGFuZGxpbmcgKHdyb25nIGFyZ3VtZW50cykKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCAiaGVsbG8iLmVuY29kZSwgNDIsIDQyLCA0MikKQEAgLTEzNjksMTggKzE0MzksMjUgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaGVsbG8nLmVuY29kZSgnYXNjaWknKSwgYidoZWxsbycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2hlbGxvJy5lbmNvZGUoJ3V0Zi03JyksIGInaGVsbG8nKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdoZWxsbycuZW5jb2RlKCd1dGYtOCcpLCBiJ2hlbGxvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaGVsbG8nLmVuY29kZSgndXRmOCcpLCBiJ2hlbGxvJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaGVsbG8nLmVuY29kZSgndXRmLTgnKSwgYidoZWxsbycpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2hlbGxvJy5lbmNvZGUoJ3V0Zi0xNi1sZScpLCBiJ2hcMDAwZVwwMDBsXDAwMGxcMDAwb1wwMDAnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdoZWxsbycuZW5jb2RlKCd1dGYtMTYtYmUnKSwgYidcMDAwaFwwMDBlXDAwMGxcMDAwbFwwMDBvJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnaGVsbG8nLmVuY29kZSgnbGF0aW4tMScpLCBiJ2hlbGxvJykKIAorICAgICAgICAjIERlZmF1bHQgZW5jb2RpbmcgaXMgdXRmLTgKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHUyNjAzJy5lbmNvZGUoKSwgYidceGUyXHg5OFx4ODMnKQorCiAgICAgICAgICMgUm91bmR0cmlwIHNhZmV0eSBmb3IgQk1QIChqdXN0IHRoZSBmaXJzdCAxMDI0IGNoYXJzKQogICAgICAgICBmb3IgYyBpbiByYW5nZSgxMDI0KToKICAgICAgICAgICAgIHUgPSBjaHIoYykKICAgICAgICAgICAgIGZvciBlbmNvZGluZyBpbiAoJ3V0Zi03JywgJ3V0Zi04JywgJ3V0Zi0xNicsICd1dGYtMTYtbGUnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXRmLTE2LWJlJywgJ3Jhd191bmljb2RlX2VzY2FwZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1bmljb2RlX2VzY2FwZScsICd1bmljb2RlX2ludGVybmFsJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIodS5lbmNvZGUoZW5jb2RpbmcpLGVuY29kaW5nKSwgdSkKKyAgICAgICAgICAgICAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKCk6CisgICAgICAgICAgICAgICAgICAgICMgdW5pY29kZS1pbnRlcm5hbCBoYXMgYmVlbiBkZXByZWNhdGVkCisgICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiaWdub3JlIiwgRGVwcmVjYXRpb25XYXJuaW5nKQorCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHUuZW5jb2RlKGVuY29kaW5nKSxlbmNvZGluZyksIHUpCiAKICAgICAgICAgIyBSb3VuZHRyaXAgc2FmZXR5IGZvciBCTVAgKGp1c3QgdGhlIGZpcnN0IDI1NiBjaGFycykKICAgICAgICAgZm9yIGMgaW4gcmFuZ2UoMjU2KToKQEAgLTEzOTUsMTggKzE0NzIsMjAgQEAKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cih1LmVuY29kZShlbmNvZGluZyksZW5jb2RpbmcpLCB1KQogCiAgICAgICAgICMgUm91bmR0cmlwIHNhZmV0eSBmb3Igbm9uLUJNUCAoanVzdCBhIGZldyBjaGFycykKLSAgICAgICAgdSA9ICdcVTAwMDEwMDAxXFUwMDAyMDAwMlxVMDAwMzAwMDNcVTAwMDQwMDA0XFUwMDA1MDAwNScKLSAgICAgICAgZm9yIGVuY29kaW5nIGluICgndXRmLTgnLCAndXRmLTE2JywgJ3V0Zi0xNi1sZScsICd1dGYtMTYtYmUnLAotICAgICAgICAgICAgICAgICAgICAgICAgICMncmF3X3VuaWNvZGVfZXNjYXBlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAndW5pY29kZV9lc2NhcGUnLCAndW5pY29kZV9pbnRlcm5hbCcpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIodS5lbmNvZGUoZW5jb2RpbmcpLGVuY29kaW5nKSwgdSkKKyAgICAgICAgd2l0aCB3YXJuaW5ncy5jYXRjaF93YXJuaW5ncygpOgorICAgICAgICAgICAgIyB1bmljb2RlLWludGVybmFsIGhhcyBiZWVuIGRlcHJlY2F0ZWQKKyAgICAgICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcigiaWdub3JlIiwgRGVwcmVjYXRpb25XYXJuaW5nKQogCi0gICAgICAgICMgVVRGLTggbXVzdCBiZSByb3VuZHRyaXAgc2FmZSBmb3IgYWxsIFVDUy0yIGNvZGUgcG9pbnRzCi0gICAgICAgICMgVGhpcyBleGNsdWRlcyBzdXJyb2dhdGVzOiBpbiB0aGUgZnVsbCByYW5nZSwgdGhlcmUgd291bGQgYmUKLSAgICAgICAgIyBhIHN1cnJvZ2F0ZSBwYWlyIChcdWRiZmZcdWRjMDApLCB3aGljaCBnZXRzIGNvbnZlcnRlZCBiYWNrCi0gICAgICAgICMgdG8gYSBub24tQk1QIGNoYXJhY3RlciAoXFUwMDEwZmMwMCkKLSAgICAgICAgdSA9ICcnLmpvaW4obWFwKGNociwgbGlzdChyYW5nZSgwLDB4ZDgwMCkpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChyYW5nZSgweGUwMDAsMHgxMDAwMCkpKSkKKyAgICAgICAgICAgIHUgPSAnXFUwMDAxMDAwMVxVMDAwMjAwMDJcVTAwMDMwMDAzXFUwMDA0MDAwNFxVMDAwNTAwMDUnCisgICAgICAgICAgICBmb3IgZW5jb2RpbmcgaW4gKCd1dGYtOCcsICd1dGYtMTYnLCAndXRmLTE2LWxlJywgJ3V0Zi0xNi1iZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyYXdfdW5pY29kZV9lc2NhcGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndW5pY29kZV9lc2NhcGUnLCAndW5pY29kZV9pbnRlcm5hbCcpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHUuZW5jb2RlKGVuY29kaW5nKSxlbmNvZGluZyksIHUpCisKKyAgICAgICAgIyBVVEYtOCBtdXN0IGJlIHJvdW5kdHJpcCBzYWZlIGZvciBhbGwgY29kZSBwb2ludHMKKyAgICAgICAgIyAoZXhjZXB0IHN1cnJvZ2F0ZXMsIHdoaWNoIGFyZSBmb3JiaWRkZW4pLgorICAgICAgICB1ID0gJycuam9pbihtYXAoY2hyLCBsaXN0KHJhbmdlKDAsIDB4ZDgwMCkpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChyYW5nZSgweGUwMDAsIDB4MTEwMDAwKSkpKQogICAgICAgICBmb3IgZW5jb2RpbmcgaW4gKCd1dGYtOCcsKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKHUuZW5jb2RlKGVuY29kaW5nKSxlbmNvZGluZyksIHUpCiAKQEAgLTE1OTEsMTcgKzE2NzAsMzkgQEAKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCAndFx0dFx0Jy5leHBhbmR0YWJzLCBzeXMubWF4c2l6ZSkKIAorICAgIEBzdXBwb3J0LmNweXRob25fb25seQorICAgIGRlZiB0ZXN0X2V4cGFuZHRhYnNfb3B0aW1pemF0aW9uKHNlbGYpOgorICAgICAgICBzID0gJ2FiYycKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhzLmV4cGFuZHRhYnMoKSwgcykKKwogICAgIGRlZiB0ZXN0X3JhaXNlTWVtRXJyb3Ioc2VsZik6Ci0gICAgICAgICMgRW5zdXJlIHRoYXQgdGhlIGZyZWVsaXN0IGNvbnRhaW5zIGEgY29uc2lzdGVudCBvYmplY3QsIGV2ZW4KLSAgICAgICAgIyB3aGVuIGEgc3RyaW5nIGFsbG9jYXRpb24gZmFpbHMgd2l0aCBhIE1lbW9yeUVycm9yLgotICAgICAgICAjIFRoaXMgdXNlZCB0byBjcmFzaCB0aGUgaW50ZXJwcmV0ZXIsCi0gICAgICAgICMgb3IgbGVhayByZWZlcmVuY2VzIHdoZW4gdGhlIG51bWJlciB3YXMgc21hbGxlci4KLSAgICAgICAgY2hhcndpZHRoID0gNCBpZiBzeXMubWF4dW5pY29kZSA+PSAweDEwMDAwIGVsc2UgMgotICAgICAgICAjIE5vdGU6IHN5cy5tYXhzaXplIGlzIGhhbGYgb2YgdGhlIGFjdHVhbCBtYXggYWxsb2NhdGlvbiBiZWNhdXNlIG9mCi0gICAgICAgICMgdGhlIHNpZ25lZG5lc3Mgb2YgUHlfc3NpemVfdC4KLSAgICAgICAgYWxsb2MgPSBsYW1iZGE6ICJhIiAqIChzeXMubWF4c2l6ZSAvLyBjaGFyd2lkdGggKiAyKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhNZW1vcnlFcnJvciwgYWxsb2MpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE1lbW9yeUVycm9yLCBhbGxvYykKKyAgICAgICAgaWYgc3RydWN0LmNhbGNzaXplKCdQJykgPT0gODoKKyAgICAgICAgICAgICMgNjQgYml0cyBwb2ludGVycworICAgICAgICAgICAgYXNjaWlfc3RydWN0X3NpemUgPSA0OAorICAgICAgICAgICAgY29tcGFjdF9zdHJ1Y3Rfc2l6ZSA9IDcyCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIDMyIGJpdHMgcG9pbnRlcnMKKyAgICAgICAgICAgIGFzY2lpX3N0cnVjdF9zaXplID0gMjQKKyAgICAgICAgICAgIGNvbXBhY3Rfc3RydWN0X3NpemUgPSAzNgorCisgICAgICAgIGZvciBjaGFyIGluICgnYScsICdceGU5JywgJ1x1MjBhYycsICdcVTAwMTBmZmZmJyk6CisgICAgICAgICAgICBjb2RlID0gb3JkKGNoYXIpCisgICAgICAgICAgICBpZiBjb2RlIDwgMHgxMDA6CisgICAgICAgICAgICAgICAgY2hhcl9zaXplID0gMSAgIyBzaXplb2YoUHlfVUNTMSkKKyAgICAgICAgICAgICAgICBzdHJ1Y3Rfc2l6ZSA9IGFzY2lpX3N0cnVjdF9zaXplCisgICAgICAgICAgICBlbGlmIGNvZGUgPCAweDEwMDAwOgorICAgICAgICAgICAgICAgIGNoYXJfc2l6ZSA9IDIgICMgc2l6ZW9mKFB5X1VDUzIpCisgICAgICAgICAgICAgICAgc3RydWN0X3NpemUgPSBjb21wYWN0X3N0cnVjdF9zaXplCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNoYXJfc2l6ZSA9IDQgICMgc2l6ZW9mKFB5X1VDUzQpCisgICAgICAgICAgICAgICAgc3RydWN0X3NpemUgPSBjb21wYWN0X3N0cnVjdF9zaXplCisgICAgICAgICAgICAjIE5vdGU6IHN5cy5tYXhzaXplIGlzIGhhbGYgb2YgdGhlIGFjdHVhbCBtYXggYWxsb2NhdGlvbiBiZWNhdXNlIG9mCisgICAgICAgICAgICAjIHRoZSBzaWduZWRuZXNzIG9mIFB5X3NzaXplX3QuIFN0cmluZ3Mgb2YgbWF4bGVuLTEgc2hvdWxkIGluIHByaW5jaXBsZQorICAgICAgICAgICAgIyBiZSBhbGxvY2F0YWJsZSwgZ2l2ZW4gZW5vdWdoIG1lbW9yeS4KKyAgICAgICAgICAgIG1heGxlbiA9ICgoc3lzLm1heHNpemUgLSBzdHJ1Y3Rfc2l6ZSkgLy8gY2hhcl9zaXplKQorICAgICAgICAgICAgYWxsb2MgPSBsYW1iZGE6IGNoYXIgKiBtYXhsZW4KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE1lbW9yeUVycm9yLCBhbGxvYykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE1lbW9yeUVycm9yLCBhbGxvYykKIAogICAgIGRlZiB0ZXN0X2Zvcm1hdF9zdWJjbGFzcyhzZWxmKToKICAgICAgICAgY2xhc3MgUyhzdHIpOgpAQCAtMTYxNCwxMSArMTcxNSwxMCBAQAogICAgICMgVGVzdCBQeVVuaWNvZGVfRnJvbUZvcm1hdCgpCiAgICAgZGVmIHRlc3RfZnJvbV9mb3JtYXQoc2VsZik6CiAgICAgICAgIHN1cHBvcnQuaW1wb3J0X21vZHVsZSgnY3R5cGVzJykKLSAgICAgICAgZnJvbSBjdHlwZXMgaW1wb3J0IHB5dGhvbmFwaSwgcHlfb2JqZWN0LCBjX2ludAotICAgICAgICBpZiBzeXMubWF4dW5pY29kZSA9PSA2NTUzNToKLSAgICAgICAgICAgIG5hbWUgPSAiUHlVbmljb2RlVUNTMl9Gcm9tRm9ybWF0IgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbmFtZSA9ICJQeVVuaWNvZGVVQ1M0X0Zyb21Gb3JtYXQiCisgICAgICAgIGZyb20gY3R5cGVzIGltcG9ydCAocHl0aG9uYXBpLCBweV9vYmplY3QsCisgICAgICAgICAgICBjX2ludCwgY19sb25nLCBjX2xvbmdsb25nLCBjX3NzaXplX3QsCisgICAgICAgICAgICBjX3VpbnQsIGNfdWxvbmcsIGNfdWxvbmdsb25nLCBjX3NpemVfdCkKKyAgICAgICAgbmFtZSA9ICJQeVVuaWNvZGVfRnJvbUZvcm1hdCIKICAgICAgICAgX1B5VW5pY29kZV9Gcm9tRm9ybWF0ID0gZ2V0YXR0cihweXRob25hcGksIG5hbWUpCiAgICAgICAgIF9QeVVuaWNvZGVfRnJvbUZvcm1hdC5yZXN0eXBlID0gcHlfb2JqZWN0CiAKQEAgLTE2MzksMTMgKzE3MzksNDAgQEAKICAgICAgICAgICAgICdzdHJpbmcsIGdvdCBhIG5vbi1BU0NJSSBieXRlOiAweGU5JCcsCiAgICAgICAgICAgICBQeVVuaWNvZGVfRnJvbUZvcm1hdCwgYid1bmljb2RlXHhlOT0lcycsICdhc2NpaScpCiAKKyAgICAgICAgIyB0ZXN0ICIlYyIKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyVjJywgY19pbnQoMHhhYmNkKSksICdcdWFiY2QnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJWMnLCBjX2ludCgweDEwZmZmZikpLCAnXFUwMDEwZmZmZicpCiAKLSAgICAgICAgIyBvdGhlciB0ZXN0cworICAgICAgICAjIHRlc3QgIiUiCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclJyksICclJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUlJyksICclJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUlcycpLCAnJXMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInWyUlXScpLCAnWyVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUlJXMnLCBiJ2FiYycpLCAnJWFiYycpCisKKyAgICAgICAgIyB0ZXN0IGludGVnZXIgZm9ybWF0cyAoJWksICVkLCAldSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUwM2knLCBjX2ludCgxMCkpLCAnMDEwJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUwLjRpJywgY19pbnQoMTApKSwgJzAwMTAnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJWknLCBjX2ludCgtMTIzKSksICctMTIzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyVsaScsIGNfbG9uZygtMTIzKSksICctMTIzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyVsbGknLCBjX2xvbmdsb25nKC0xMjMpKSwgJy0xMjMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJXppJywgY19zc2l6ZV90KC0xMjMpKSwgJy0xMjMnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclZCcsIGNfaW50KC0xMjMpKSwgJy0xMjMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJWxkJywgY19sb25nKC0xMjMpKSwgJy0xMjMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJWxsZCcsIGNfbG9uZ2xvbmcoLTEyMykpLCAnLTEyMycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclemQnLCBjX3NzaXplX3QoLTEyMykpLCAnLTEyMycpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyV1JywgY191aW50KDEyMykpLCAnMTIzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyVsdScsIGNfdWxvbmcoMTIzKSksICcxMjMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJWxsdScsIGNfdWxvbmdsb25nKDEyMykpLCAnMTIzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyV6dScsIGNfc2l6ZV90KDEyMykpLCAnMTIzJykKKworICAgICAgICAjIHRlc3QgJUEKICAgICAgICAgdGV4dCA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KGInJSVBOiVBJywgJ2FiY1x4ZTlcdWFiY2RcVTAwMTBmZmZmJykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXh0LCByIiVBOidhYmNceGU5XHVhYmNkXFUwMDEwZmZmZiciKQogCisgICAgICAgICMgdGVzdCAlVgogICAgICAgICB0ZXh0ID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoYidyZXByPSVWJywgJ2FiYycsIGIneHl6JykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXh0LCAncmVwcj1hYmMnKQogCkBAIC0xNjU5LDYgKzE3ODYsMTMgQEAKICAgICAgICAgdGV4dCA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KGIncmVwcj0lVicsIE5vbmUsIGInYWJjXHhmZicpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGV4dCwgJ3JlcHI9YWJjXHVmZmZkJykKIAorICAgICAgICAjIG5vdCBzdXBwb3J0ZWQ6IGNvcHkgdGhlIHJhdyBmb3JtYXQgc3RyaW5nLiB0aGVzZSB0ZXN0cyBhcmUganVzdCBoZXJlCisgICAgICAgICMgdG8gY2hlY2sgZm9yIGNyYXNocyBhbmQgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGFzIHNwZWNpZmljYXRpb25zCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclMSVzJywgYidhYmMnKSwgJyVzJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUxYWJjJyksICclMWFiYycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUHlVbmljb2RlX0Zyb21Gb3JtYXQoYiclK2knLCBjX2ludCgxMCkpLCAnJStpJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQeVVuaWNvZGVfRnJvbUZvcm1hdChiJyUuJXMnLCBiJ2FiYycpLCAnJS4lcycpCisKICAgICAjIFRlc3QgUHlVbmljb2RlX0FzV2lkZUNoYXIoKQogICAgIGRlZiB0ZXN0X2Fzd2lkZWNoYXIoc2VsZik6CiAgICAgICAgIGZyb20gX3Rlc3RjYXBpIGltcG9ydCB1bmljb2RlX2Fzd2lkZWNoYXIKQEAgLTE3MTksNiArMTg1Myw1MSBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNpemUsIG5jaGFyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHdjaGFyLCBub25ibXAgKyAnXDAnKQogCisgICAgZGVmIHRlc3Rfc3ViY2xhc3NfYWRkKHNlbGYpOgorICAgICAgICBjbGFzcyBTKHN0cik6CisgICAgICAgICAgICBkZWYgX19hZGRfXyhzZWxmLCBvKToKKyAgICAgICAgICAgICAgICByZXR1cm4gIjMiCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUygiNCIpICsgUygiNSIpLCAiMyIpCisgICAgICAgIGNsYXNzIFMoc3RyKToKKyAgICAgICAgICAgIGRlZiBfX2lhZGRfXyhzZWxmLCBvKToKKyAgICAgICAgICAgICAgICByZXR1cm4gIjMiCisgICAgICAgIHMgPSBTKCIxIikKKyAgICAgICAgcyArPSAiNCIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzLCAiMyIpCisKKyAgICBkZWYgdGVzdF9lbmNvZGVfZGVjaW1hbChzZWxmKToKKyAgICAgICAgZnJvbSBfdGVzdGNhcGkgaW1wb3J0IHVuaWNvZGVfZW5jb2RlZGVjaW1hbAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVuaWNvZGVfZW5jb2RlZGVjaW1hbCgnMTIzJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgYicxMjMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVuaWNvZGVfZW5jb2RlZGVjaW1hbCgnXHUwNjYzLlx1MDY2MVx1MDY2NCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGInMy4xNCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodW5pY29kZV9lbmNvZGVkZWNpbWFsKCJcTntFTSBTUEFDRX0zLjE0XE57RU4gU1BBQ0V9IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgYicgMy4xNCAnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhVbmljb2RlRW5jb2RlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGVfZW5jb2RlZGVjaW1hbCwgIjEyM1x1MjBhYyIsICJzdHJpY3QiKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KAorICAgICAgICAgICAgVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJeJ2RlY2ltYWwnIGNvZGVjIGNhbid0IGVuY29kZSBjaGFyYWN0ZXIiLAorICAgICAgICAgICAgdW5pY29kZV9lbmNvZGVkZWNpbWFsLCAiMTIzXHUyMGFjIiwgInJlcGxhY2UiKQorCisgICAgZGVmIHRlc3RfdHJhbnNmb3JtX2RlY2ltYWwoc2VsZik6CisgICAgICAgIGZyb20gX3Rlc3RjYXBpIGltcG9ydCB1bmljb2RlX3RyYW5zZm9ybWRlY2ltYWx0b2FzY2lpIGFzIHRyYW5zZm9ybV9kZWNpbWFsCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhbnNmb3JtX2RlY2ltYWwoJzEyMycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICcxMjMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZm9ybV9kZWNpbWFsKCdcdTA2NjMuXHUwNjYxXHUwNjY0JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgJzMuMTQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZm9ybV9kZWNpbWFsKCJcTntFTSBTUEFDRX0zLjE0XE57RU4gU1BBQ0V9IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgIlxOe0VNIFNQQUNFfTMuMTRcTntFTiBTUEFDRX0iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZm9ybV9kZWNpbWFsKCcxMjNcdTIwYWMnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnMTIzXHUyMGFjJykKKworICAgIGRlZiB0ZXN0X2dldG5ld2FyZ3Moc2VsZik6CisgICAgICAgIHRleHQgPSAnYWJjJworICAgICAgICBhcmdzID0gdGV4dC5fX2dldG5ld2FyZ3NfXygpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb3QoYXJnc1swXSwgdGV4dCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzWzBdLCB0ZXh0KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhcmdzKSwgMSkKKwogCiBjbGFzcyBTdHJpbmdNb2R1bGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9mb3JtYXR0ZXJfcGFyc2VyKHNlbGYpOgpAQCAtMTc3MCw0MiArMTk0OSw2IEBACiAgICAgICAgICAgICBdXSkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBfc3RyaW5nLmZvcm1hdHRlcl9maWVsZF9uYW1lX3NwbGl0LCAxKQogCi0gICAgZGVmIHRlc3RfZW5jb2RlX2RlY2ltYWwoc2VsZik6Ci0gICAgICAgIGZyb20gX3Rlc3RjYXBpIGltcG9ydCB1bmljb2RlX2VuY29kZWRlY2ltYWwKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bmljb2RlX2VuY29kZWRlY2ltYWwoJzEyMycpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGInMTIzJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bmljb2RlX2VuY29kZWRlY2ltYWwoJ1x1MDY2My5cdTA2NjFcdTA2NjQnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBiJzMuMTQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVuaWNvZGVfZW5jb2RlZGVjaW1hbCgiXE57RU0gU1BBQ0V9My4xNFxOe0VOIFNQQUNFfSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGInIDMuMTQgJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVW5pY29kZUVuY29kZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlX2VuY29kZWRlY2ltYWwsICIxMjNcdTIwYWMiLCAic3RyaWN0IikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bmljb2RlX2VuY29kZWRlY2ltYWwoIjEyM1x1MjBhYyIsICJyZXBsYWNlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgYicxMjM/JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bmljb2RlX2VuY29kZWRlY2ltYWwoIjEyM1x1MjBhYyIsICJpZ25vcmUiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBiJzEyMycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodW5pY29kZV9lbmNvZGVkZWNpbWFsKCIxMjNcdTIwYWMiLCAieG1sY2hhcnJlZnJlcGxhY2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBiJzEyMyYjODM2NDsnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVuaWNvZGVfZW5jb2RlZGVjaW1hbCgiMTIzXHUyMGFjIiwgImJhY2tzbGFzaHJlcGxhY2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBiJzEyM1xcdTIwYWMnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHVuaWNvZGVfZW5jb2RlZGVjaW1hbCgiMTIzXHUyMGFjXE57RU0gU1BBQ0V9IiwgInJlcGxhY2UiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBiJzEyMz8gJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1bmljb2RlX2VuY29kZWRlY2ltYWwoIjEyM1x1MjBhY1x1MjBhYyIsICJyZXBsYWNlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgYicxMjM/PycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodW5pY29kZV9lbmNvZGVkZWNpbWFsKCIxMjNcdTIwYWNcdTA2NjAiLCAicmVwbGFjZSIpLAotICAgICAgICAgICAgICAgICAgICAgICAgIGInMTIzPzAnKQotCi0gICAgZGVmIHRlc3RfdHJhbnNmb3JtX2RlY2ltYWwoc2VsZik6Ci0gICAgICAgIGZyb20gX3Rlc3RjYXBpIGltcG9ydCB1bmljb2RlX3RyYW5zZm9ybWRlY2ltYWx0b2FzY2lpIGFzIHRyYW5zZm9ybV9kZWNpbWFsCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodHJhbnNmb3JtX2RlY2ltYWwoJzEyMycpLAotICAgICAgICAgICAgICAgICAgICAgICAgICcxMjMnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZm9ybV9kZWNpbWFsKCdcdTA2NjMuXHUwNjYxXHUwNjY0JyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgJzMuMTQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZm9ybV9kZWNpbWFsKCJcTntFTSBTUEFDRX0zLjE0XE57RU4gU1BBQ0V9IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIlxOe0VNIFNQQUNFfTMuMTRcTntFTiBTUEFDRX0iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyYW5zZm9ybV9kZWNpbWFsKCcxMjNcdTIwYWMnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAnMTIzXHUyMGFjJykKLQogCiBkZWYgdGVzdF9tYWluKCk6CiAgICAgc3VwcG9ydC5ydW5fdW5pdHRlc3QoX19uYW1lX18pCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3VuaWNvZGVfZmlsZS5weSBiL0xpYi90ZXN0L3Rlc3RfdW5pY29kZV9maWxlLnB5CmluZGV4IDZjMjAxMWEuLmZhYThkYTMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdW5pY29kZV9maWxlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdW5pY29kZV9maWxlLnB5CkBAIC02LDcgKzYsNyBAQAogCiBpbXBvcnQgdW5pdHRlc3QKIGZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCAocnVuX3VuaXR0ZXN0LCBybXRyZWUsCi0gICAgVEVTVEZOX0VOQ09ESU5HLCBURVNURk5fVU5JQ09ERSwgVEVTVEZOX1VORU5DT0RBQkxFKQorICAgIFRFU1RGTl9FTkNPRElORywgVEVTVEZOX1VOSUNPREUsIFRFU1RGTl9VTkVOQ09EQUJMRSwgY3JlYXRlX2VtcHR5X2ZpbGUpCiAKIGlmIG5vdCBvcy5wYXRoLnN1cHBvcnRzX3VuaWNvZGVfZmlsZW5hbWVzOgogICAgIHRyeToKQEAgLTU2LDE2ICs1NiwyMCBAQAogICAgICAgICAjIFNob3VsZCBiZSBhYmxlIHRvIHJlbmFtZSB0aGUgZmlsZSB1c2luZyBlaXRoZXIgbmFtZS4KICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguaXNmaWxlKGZpbGVuYW1lMSkpICMgbXVzdCBleGlzdC4KICAgICAgICAgb3MucmVuYW1lKGZpbGVuYW1lMSwgZmlsZW5hbWUyICsgIi5uZXciKQotICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2ZpbGUoZmlsZW5hbWUxKyIubmV3IikpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5pc2ZpbGUoZmlsZW5hbWUyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguaXNmaWxlKGZpbGVuYW1lMSArICcubmV3JykpCiAgICAgICAgIG9zLnJlbmFtZShmaWxlbmFtZTEgKyAiLm5ldyIsIGZpbGVuYW1lMikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShvcy5wYXRoLmlzZmlsZShmaWxlbmFtZTEgKyAnLm5ldycpKQogICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2ZpbGUoZmlsZW5hbWUyKSkKIAogICAgICAgICBzaHV0aWwuY29weShmaWxlbmFtZTEsIGZpbGVuYW1lMiArICIubmV3IikKICAgICAgICAgb3MudW5saW5rKGZpbGVuYW1lMSArICIubmV3IikgIyByZW1vdmUgdXNpbmcgZXF1aXYgbmFtZS4KICAgICAgICAgIyBBbmQgYSBjb3VwbGUgb2YgbW92ZXMsIG9uZSB1c2luZyBlYWNoIG5hbWUuCiAgICAgICAgIHNodXRpbC5tb3ZlKGZpbGVuYW1lMSwgZmlsZW5hbWUyICsgIi5uZXciKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobm90IG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lMikpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uob3MucGF0aC5leGlzdHMoZmlsZW5hbWUyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lMSArICcubmV3JykpCiAgICAgICAgIHNodXRpbC5tb3ZlKGZpbGVuYW1lMSArICIubmV3IiwgZmlsZW5hbWUyKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lMiArICcubmV3JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmV4aXN0cyhmaWxlbmFtZTEpKQogICAgICAgICAjIE5vdGUgLSBkdWUgdG8gdGhlIGltcGxlbWVudGF0aW9uIG9mIHNodXRpbC5tb3ZlLAogICAgICAgICAjIGl0IHRyaWVzIGEgcmVuYW1lIGZpcnN0LiAgVGhpcyBvbmx5IGZhaWxzIG9uIFdpbmRvd3Mgd2hlbiBvbgpAQCAtNzMsMTAgKzc3LDEyIEBACiAgICAgICAgICMgU28gd2UgdGVzdCB0aGUgc2h1dGlsLmNvcHkyIGZ1bmN0aW9uLCB3aGljaCBpcyB0aGUgdGhpbmcgbW9zdAogICAgICAgICAjIGxpa2VseSB0byBmYWlsLgogICAgICAgICBzaHV0aWwuY29weTIoZmlsZW5hbWUxLCBmaWxlbmFtZTIgKyAiLm5ldyIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5wYXRoLmlzZmlsZShmaWxlbmFtZTEgKyAnLm5ldycpKQogICAgICAgICBvcy51bmxpbmsoZmlsZW5hbWUxICsgIi5uZXciKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lMiArICcubmV3JykpCiAKICAgICBkZWYgX2RvX2RpcmVjdG9yeShzZWxmLCBtYWtlX25hbWUsIGNoZGlyX25hbWUpOgotICAgICAgICBjd2QgPSBvcy5nZXRjd2RiKCkKKyAgICAgICAgY3dkID0gb3MuZ2V0Y3dkKCkKICAgICAgICAgaWYgb3MucGF0aC5pc2RpcihtYWtlX25hbWUpOgogICAgICAgICAgICAgcm10cmVlKG1ha2VfbmFtZSkKICAgICAgICAgb3MubWtkaXIobWFrZV9uYW1lKQpAQCAtOTksOCArMTA1LDcgQEAKICAgICAjIHRvcC1sZXZlbCAndGVzdCcgZnVuY3Rpb25zIHdvdWxkIGJlIGlmIHRoZXkgY291bGQgdGFrZSBwYXJhbXMKICAgICBkZWYgX3Rlc3Rfc2luZ2xlKHNlbGYsIGZpbGVuYW1lKToKICAgICAgICAgcmVtb3ZlX2lmX2V4aXN0cyhmaWxlbmFtZSkKLSAgICAgICAgZiA9IG9wZW4oZmlsZW5hbWUsICJ3IikKLSAgICAgICAgZi5jbG9zZSgpCisgICAgICAgIGNyZWF0ZV9lbXB0eV9maWxlKGZpbGVuYW1lKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLl9kb19zaW5nbGUoZmlsZW5hbWUpCiAgICAgICAgIGZpbmFsbHk6CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3VuaWNvZGVkYXRhLnB5IGIvTGliL3Rlc3QvdGVzdF91bmljb2RlZGF0YS5weQppbmRleCA5NzQ0MjU2Li45OWFhMDAzIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3VuaWNvZGVkYXRhLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdW5pY29kZWRhdGEucHkKQEAgLTIxLDcgKzIxLDcgQEAKIGNsYXNzIFVuaWNvZGVNZXRob2RzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKICAgICAjIHVwZGF0ZSB0aGlzLCBpZiB0aGUgZGF0YWJhc2UgY2hhbmdlcwotICAgIGV4cGVjdGVkY2hlY2tzdW0gPSAnMjFiOTBmMWFlZDAwMDgxYjgxY2E3OTQyYjIyMTk2YWYwOTAwMTVhMCcKKyAgICBleHBlY3RlZGNoZWNrc3VtID0gJ2JmN2E3OGYxYTUzMjQyMWI1MDMzNjAwMTAyZTIzYTkyMDQ0ZGJiYTknCiAKICAgICBkZWYgdGVzdF9tZXRob2RfY2hlY2tzdW0oc2VsZik6CiAgICAgICAgIGggPSBoYXNobGliLnNoYTEoKQpAQCAtODAsNyArODAsNyBAQAogY2xhc3MgVW5pY29kZUZ1bmN0aW9uc1Rlc3QoVW5pY29kZURhdGFiYXNlVGVzdCk6CiAKICAgICAjIHVwZGF0ZSB0aGlzLCBpZiB0aGUgZGF0YWJhc2UgY2hhbmdlcwotICAgIGV4cGVjdGVkY2hlY2tzdW0gPSAnYzIzZGZjMGI1ZWFmM2NhMmFhZDMyZDczM2RlOTZiYjE4MmNjZGE1MCcKKyAgICBleHBlY3RlZGNoZWNrc3VtID0gJzE3ZmUyZjEyYjc4OGU0ZmZmNTQ3OWI0NjljNDQwNGJiNmVjZjg0MWYnCiAgICAgZGVmIHRlc3RfZnVuY3Rpb25fY2hlY2tzdW0oc2VsZik6CiAgICAgICAgIGRhdGEgPSBbXQogICAgICAgICBoID0gaGFzaGxpYi5zaGExKCkKQEAgLTEwOCw2ICsxMDgsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGIuZGlnaXQoJ1x1MjE1YicsIE5vbmUpLCBOb25lKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGIuZGlnaXQoJ1x1MjQ2OCcpLCA5KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGIuZGlnaXQoJ1xVMDAwMjAwMDAnLCBOb25lKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRiLmRpZ2l0KCdcVTAwMDFEN0ZEJyksIDcpCiAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLmRiLmRpZ2l0KQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuZGIuZGlnaXQsICd4eCcpCkBAIC0xMjAsNiArMTIxLDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRiLm51bWVyaWMoJ1x1MjQ2OCcpLCA5LjApCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kYi5udW1lcmljKCdcdWE2MjcnKSwgNy4wKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGIubnVtZXJpYygnXFUwMDAyMDAwMCcsIE5vbmUpLCBOb25lKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGIubnVtZXJpYygnXFUwMDAxMDEyQScpLCA5MDAwKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5kYi5udW1lcmljKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuZGIubnVtZXJpYywgJ3h4JykKQEAgLTEzMSw2ICsxMzMsNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGIuZGVjaW1hbCgnXHUyMTViJywgTm9uZSksIE5vbmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kYi5kZWNpbWFsKCdcdTI0NjgnLCBOb25lKSwgTm9uZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRiLmRlY2ltYWwoJ1xVMDAwMjAwMDAnLCBOb25lKSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRiLmRlY2ltYWwoJ1xVMDAwMUQ3RkQnKSwgNykKIAogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuZGIuZGVjaW1hbCkKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLmRiLmRlY2ltYWwsICd4eCcpCkBAIC0xNDEsNiArMTQ0LDcgQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRiLmNhdGVnb3J5KCdhJyksICdMbCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5kYi5jYXRlZ29yeSgnQScpLCAnTHUnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGIuY2F0ZWdvcnkoJ1xVMDAwMjAwMDAnKSwgJ0xvJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRiLmNhdGVnb3J5KCdcVTAwMDEwMTJBJyksICdObycpCiAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBzZWxmLmRiLmNhdGVnb3J5KQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHNlbGYuZGIuY2F0ZWdvcnksICd4eCcpCkBAIC0zMDgsMTQgKzMxMiw2IEBACiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4obGluZXMpLCAxLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgciJcdSUuNHggc2hvdWxkIG5vdCBiZSBhIGxpbmVicmVhayIgJSBpKQogCi0gICAgZGVmIHRlc3RfVUNTNChzZWxmKToKLSAgICAgICAgIyB1bmljb2RlZGF0YSBzaG91bGQgd29yayB3aXRoIGNvZGUgcG9pbnRzIG91dHNpZGUgdGhlIEJNUAotICAgICAgICAjIGV2ZW4gb24gYSBuYXJyb3cgVW5pY29kZSBidWlsZAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuZGIuY2F0ZWdvcnkoIlxVMDAwMTAxMkEiKSwgIk5vIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRiLm51bWVyaWMoIlxVMDAwMTAxMkEiKSwgOTAwMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRiLmRlY2ltYWwoIlxVMDAwMUQ3RkQiKSwgNykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmRiLmRpZ2l0KCJcVTAwMDFEN0ZEIiksIDcpCi0KIGRlZiB0ZXN0X21haW4oKToKICAgICB0ZXN0LnN1cHBvcnQucnVuX3VuaXR0ZXN0KAogICAgICAgICBVbmljb2RlTWlzY1Rlc3QsCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3VybGxpYi5weSBiL0xpYi90ZXN0L3Rlc3RfdXJsbGliLnB5CmluZGV4IGM2ZjZmNjEuLjIyYWRhNTYgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdXJsbGliLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdXJsbGliLnB5CkBAIC0yOTgsNiArMjk4LDEwIEBACiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLnVuZmFrZWh0dHAoKQogCisgICAgZGVmIHRlc3RfVVJMb3BlbmVyX2RlcHJlY2F0aW9uKHNlbGYpOgorICAgICAgICB3aXRoIHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKCcnLERlcHJlY2F0aW9uV2FybmluZykpOgorICAgICAgICAgICAgd2FybiA9IHVybGxpYi5yZXF1ZXN0LlVSTG9wZW5lcigpCisKIGNsYXNzIHVybHJldHJpZXZlX0ZpbGVUZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgIiIiVGVzdCB1cmxsaWIudXJscmV0cmlldmUoKSBvbiBsb2NhbCBmaWxlcyIiIgogCkBAIC0zMzEsNyArMzM1LDcgQEAKICAgICBkZWYgY29uc3RydWN0TG9jYWxGaWxlVXJsKHNlbGYsIGZpbGVQYXRoKToKICAgICAgICAgZmlsZVBhdGggPSBvcy5wYXRoLmFic3BhdGgoZmlsZVBhdGgpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIGZpbGVQYXRoLmVuY29kZSgidXRmOCIpCisgICAgICAgICAgICBmaWxlUGF0aC5lbmNvZGUoInV0Zi04IikKICAgICAgICAgZXhjZXB0IFVuaWNvZGVFbmNvZGVFcnJvcjoKICAgICAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KCJmaWxlUGF0aCBpcyBub3QgZW5jb2RhYmxlIHRvIHV0ZjgiKQogICAgICAgICByZXR1cm4gImZpbGU6Ly8lcyIgJSB1cmxsaWIucmVxdWVzdC5wYXRobmFtZTJ1cmwoZmlsZVBhdGgpCkBAIC0zODQsMTEgKzM4OCwxMSBAQAogCiAgICAgZGVmIHRlc3RfcmVwb3J0aG9vayhzZWxmKToKICAgICAgICAgIyBNYWtlIHN1cmUgdGhhdCB0aGUgcmVwb3J0aG9vayB3b3Jrcy4KLSAgICAgICAgZGVmIGhvb2t0ZXN0ZXIoY291bnQsIGJsb2NrX3NpemUsIHRvdGFsX3NpemUsIGNvdW50X2hvbGRlcj1bMF0pOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGNvdW50LCBpbnQpCi0gICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoYmxvY2tfc2l6ZSwgaW50KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHRvdGFsX3NpemUsIGludCkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY291bnQsIGNvdW50X2hvbGRlclswXSkKKyAgICAgICAgZGVmIGhvb2t0ZXN0ZXIoYmxvY2tfY291bnQsIGJsb2NrX3JlYWRfc2l6ZSwgZmlsZV9zaXplLCBjb3VudF9ob2xkZXI9WzBdKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShibG9ja19jb3VudCwgaW50KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGJsb2NrX3JlYWRfc2l6ZSwgaW50KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGZpbGVfc2l6ZSwgaW50KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChibG9ja19jb3VudCwgY291bnRfaG9sZGVyWzBdKQogICAgICAgICAgICAgY291bnRfaG9sZGVyWzBdID0gY291bnRfaG9sZGVyWzBdICsgMQogICAgICAgICBzZWNvbmRfdGVtcCA9ICIlcy4yIiAlIHN1cHBvcnQuVEVTVEZOCiAgICAgICAgIHNlbGYucmVnaXN0ZXJGaWxlRm9yQ2xlYW5VcChzZWNvbmRfdGVtcCkKQEAgLTM5OSw4ICs0MDMsOCBAQAogICAgIGRlZiB0ZXN0X3JlcG9ydGhvb2tfMF9ieXRlcyhzZWxmKToKICAgICAgICAgIyBUZXN0IG9uIHplcm8gbGVuZ3RoIGZpbGUuIFNob3VsZCBjYWxsIHJlcG9ydGhvb2sgb25seSAxIHRpbWUuCiAgICAgICAgIHJlcG9ydCA9IFtdCi0gICAgICAgIGRlZiBob29rdGVzdGVyKGNvdW50LCBibG9ja19zaXplLCB0b3RhbF9zaXplLCBfcmVwb3J0PXJlcG9ydCk6Ci0gICAgICAgICAgICBfcmVwb3J0LmFwcGVuZCgoY291bnQsIGJsb2NrX3NpemUsIHRvdGFsX3NpemUpKQorICAgICAgICBkZWYgaG9va3Rlc3RlcihibG9ja19jb3VudCwgYmxvY2tfcmVhZF9zaXplLCBmaWxlX3NpemUsIF9yZXBvcnQ9cmVwb3J0KToKKyAgICAgICAgICAgIF9yZXBvcnQuYXBwZW5kKChibG9ja19jb3VudCwgYmxvY2tfcmVhZF9zaXplLCBmaWxlX3NpemUpKQogICAgICAgICBzcmNGaWxlTmFtZSA9IHNlbGYuY3JlYXRlTmV3VGVtcEZpbGUoKQogICAgICAgICB1cmxsaWIucmVxdWVzdC51cmxyZXRyaWV2ZShzZWxmLmNvbnN0cnVjdExvY2FsRmlsZVVybChzcmNGaWxlTmFtZSksCiAgICAgICAgICAgICBzdXBwb3J0LlRFU1RGTiwgaG9va3Rlc3RlcikKQEAgLTQxMCwzMSArNDE0LDMxIEBACiAgICAgZGVmIHRlc3RfcmVwb3J0aG9va181X2J5dGVzKHNlbGYpOgogICAgICAgICAjIFRlc3Qgb24gNSBieXRlIGZpbGUuIFNob3VsZCBjYWxsIHJlcG9ydGhvb2sgb25seSAyIHRpbWVzIChvbmNlIHdoZW4KICAgICAgICAgIyB0aGUgIm5ldHdvcmsgY29ubmVjdGlvbiIgaXMgZXN0YWJsaXNoZWQgYW5kIG9uY2Ugd2hlbiB0aGUgYmxvY2sgaXMKLSAgICAgICAgIyByZWFkKS4gU2luY2UgdGhlIGJsb2NrIHNpemUgaXMgODE5MiBieXRlcywgb25seSBvbmUgYmxvY2sgcmVhZCBpcwotICAgICAgICAjIHJlcXVpcmVkIHRvIHJlYWQgdGhlIGVudGlyZSBmaWxlLgorICAgICAgICAjIHJlYWQpLgogICAgICAgICByZXBvcnQgPSBbXQotICAgICAgICBkZWYgaG9va3Rlc3Rlcihjb3VudCwgYmxvY2tfc2l6ZSwgdG90YWxfc2l6ZSwgX3JlcG9ydD1yZXBvcnQpOgotICAgICAgICAgICAgX3JlcG9ydC5hcHBlbmQoKGNvdW50LCBibG9ja19zaXplLCB0b3RhbF9zaXplKSkKKyAgICAgICAgZGVmIGhvb2t0ZXN0ZXIoYmxvY2tfY291bnQsIGJsb2NrX3JlYWRfc2l6ZSwgZmlsZV9zaXplLCBfcmVwb3J0PXJlcG9ydCk6CisgICAgICAgICAgICBfcmVwb3J0LmFwcGVuZCgoYmxvY2tfY291bnQsIGJsb2NrX3JlYWRfc2l6ZSwgZmlsZV9zaXplKSkKICAgICAgICAgc3JjRmlsZU5hbWUgPSBzZWxmLmNyZWF0ZU5ld1RlbXBGaWxlKGIieCIgKiA1KQogICAgICAgICB1cmxsaWIucmVxdWVzdC51cmxyZXRyaWV2ZShzZWxmLmNvbnN0cnVjdExvY2FsRmlsZVVybChzcmNGaWxlTmFtZSksCiAgICAgICAgICAgICBzdXBwb3J0LlRFU1RGTiwgaG9va3Rlc3RlcikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4ocmVwb3J0KSwgMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBvcnRbMF1bMV0sIDgxOTIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwb3J0WzBdWzJdLCA1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG9ydFswXVsxXSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBvcnRbMV1bMV0sIDUpCiAKICAgICBkZWYgdGVzdF9yZXBvcnRob29rXzgxOTNfYnl0ZXMoc2VsZik6CiAgICAgICAgICMgVGVzdCBvbiA4MTkzIGJ5dGUgZmlsZS4gU2hvdWxkIGNhbGwgcmVwb3J0aG9vayBvbmx5IDMgdGltZXMgKG9uY2UKICAgICAgICAgIyB3aGVuIHRoZSAibmV0d29yayBjb25uZWN0aW9uIiBpcyBlc3RhYmxpc2hlZCwgb25jZSBmb3IgdGhlIG5leHQgODE5MgogICAgICAgICAjIGJ5dGVzLCBhbmQgb25jZSBmb3IgdGhlIGxhc3QgYnl0ZSkuCiAgICAgICAgIHJlcG9ydCA9IFtdCi0gICAgICAgIGRlZiBob29rdGVzdGVyKGNvdW50LCBibG9ja19zaXplLCB0b3RhbF9zaXplLCBfcmVwb3J0PXJlcG9ydCk6Ci0gICAgICAgICAgICBfcmVwb3J0LmFwcGVuZCgoY291bnQsIGJsb2NrX3NpemUsIHRvdGFsX3NpemUpKQorICAgICAgICBkZWYgaG9va3Rlc3RlcihibG9ja19jb3VudCwgYmxvY2tfcmVhZF9zaXplLCBmaWxlX3NpemUsIF9yZXBvcnQ9cmVwb3J0KToKKyAgICAgICAgICAgIF9yZXBvcnQuYXBwZW5kKChibG9ja19jb3VudCwgYmxvY2tfcmVhZF9zaXplLCBmaWxlX3NpemUpKQogICAgICAgICBzcmNGaWxlTmFtZSA9IHNlbGYuY3JlYXRlTmV3VGVtcEZpbGUoYiJ4IiAqIDgxOTMpCiAgICAgICAgIHVybGxpYi5yZXF1ZXN0LnVybHJldHJpZXZlKHNlbGYuY29uc3RydWN0TG9jYWxGaWxlVXJsKHNyY0ZpbGVOYW1lKSwKICAgICAgICAgICAgIHN1cHBvcnQuVEVTVEZOLCBob29rdGVzdGVyKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXBvcnQpLCAzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG9ydFswXVsxXSwgODE5MikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBvcnRbMF1bMl0sIDgxOTMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwb3J0WzBdWzFdLCAwKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG9ydFsxXVsxXSwgODE5MikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBvcnRbMl1bMV0sIDEpCiAKIAogY2xhc3MgdXJscmV0cmlldmVfSHR0cFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlLCBGYWtlSFRUUE1peGluKToKQEAgLTEyNDUsNiArMTI0OSwyOCBAQAogIyAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnRwLmZ0cC5zb2NrLmdldHRpbWVvdXQoKSwgMzApCiAjICAgICAgICAgZnRwLmNsb3NlKCkKIAorY2xhc3MgUmVxdWVzdFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJVbml0IHRlc3RzIGZvciB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0LiIiIgorCisgICAgZGVmIHRlc3RfZGVmYXVsdF92YWx1ZXMoc2VsZik6CisgICAgICAgIFJlcXVlc3QgPSB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0CisgICAgICAgIHJlcXVlc3QgPSBSZXF1ZXN0KCJodHRwOi8vd3d3LnB5dGhvbi5vcmciKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcXVlc3QuZ2V0X21ldGhvZCgpLCAnR0VUJykKKyAgICAgICAgcmVxdWVzdCA9IFJlcXVlc3QoImh0dHA6Ly93d3cucHl0aG9uLm9yZyIsIHt9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcXVlc3QuZ2V0X21ldGhvZCgpLCAnUE9TVCcpCisKKyAgICBkZWYgdGVzdF93aXRoX21ldGhvZF9hcmcoc2VsZik6CisgICAgICAgIFJlcXVlc3QgPSB1cmxsaWIucmVxdWVzdC5SZXF1ZXN0CisgICAgICAgIHJlcXVlc3QgPSBSZXF1ZXN0KCJodHRwOi8vd3d3LnB5dGhvbi5vcmciLCBtZXRob2Q9J0hFQUQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcXVlc3QubWV0aG9kLCAnSEVBRCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxdWVzdC5nZXRfbWV0aG9kKCksICdIRUFEJykKKyAgICAgICAgcmVxdWVzdCA9IFJlcXVlc3QoImh0dHA6Ly93d3cucHl0aG9uLm9yZyIsIHt9LCBtZXRob2Q9J0hFQUQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcXVlc3QubWV0aG9kLCAnSEVBRCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxdWVzdC5nZXRfbWV0aG9kKCksICdIRUFEJykKKyAgICAgICAgcmVxdWVzdCA9IFJlcXVlc3QoImh0dHA6Ly93d3cucHl0aG9uLm9yZyIsIG1ldGhvZD0nR0VUJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LmdldF9tZXRob2QoKSwgJ0dFVCcpCisgICAgICAgIHJlcXVlc3QubWV0aG9kID0gJ0hFQUQnCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVxdWVzdC5nZXRfbWV0aG9kKCksICdIRUFEJykKIAogCiBkZWYgdGVzdF9tYWluKCk6CkBAIC0xMjYxLDYgKzEyODcsNyBAQAogICAgICAgICBVdGlsaXR5X1Rlc3RzLAogICAgICAgICBVUkxvcGVuZXJfVGVzdHMsCiAgICAgICAgICNGVFBXcmFwcGVyVGVzdHMsCisgICAgICAgIFJlcXVlc3RUZXN0cywKICAgICApCiAKIApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF91cmxsaWIyLnB5IGIvTGliL3Rlc3QvdGVzdF91cmxsaWIyLnB5CmluZGV4IDNhY2U2NmUuLmIyY2VjN2UgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdXJsbGliMi5weQorKysgYi9MaWIvdGVzdC90ZXN0X3VybGxpYjIucHkKQEAgLTUsNiArNSw3IEBACiBpbXBvcnQgaW8KIGltcG9ydCBzb2NrZXQKIGltcG9ydCBhcnJheQoraW1wb3J0IHN5cwogCiBpbXBvcnQgdXJsbGliLnJlcXVlc3QKICMgVGhlIHByb3h5IGJ5cGFzcyBtZXRob2QgaW1wb3J0ZWQgYmVsb3cgaGFzIGxvZ2ljIHNwZWNpZmljIHRvIHRoZSBPU1gKQEAgLTE4LDYgKzE5LDIyIEBACiAjIHBhcnNlX2tlcXZfbGlzdCwgcGFyc2VfaHR0cF9saXN0LCBIVFRQRGlnZXN0QXV0aEhhbmRsZXIKIAogY2xhc3MgVHJpdmlhbFRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X19fYWxsX18oc2VsZik6CisgICAgICAgICMgVmVyaWZ5IHdoaWNoIG5hbWVzIGFyZSBleHBvc2VkCisgICAgICAgIGZvciBtb2R1bGUgaW4gJ3JlcXVlc3QnLCAncmVzcG9uc2UnLCAncGFyc2UnLCAnZXJyb3InLCAncm9ib3RwYXJzZXInOgorICAgICAgICAgICAgY29udGV4dCA9IHt9CisgICAgICAgICAgICBleGVjKCdmcm9tIHVybGxpYi4lcyBpbXBvcnQgKicgJSBtb2R1bGUsIGNvbnRleHQpCisgICAgICAgICAgICBkZWwgY29udGV4dFsnX19idWlsdGluc19fJ10KKyAgICAgICAgICAgIGlmIG1vZHVsZSA9PSAncmVxdWVzdCcgYW5kIG9zLm5hbWUgPT0gJ250JzoKKyAgICAgICAgICAgICAgICB1LCBwID0gY29udGV4dC5wb3AoJ3VybDJwYXRobmFtZScpLCBjb250ZXh0LnBvcCgncGF0aG5hbWUydXJsJykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHUuX19tb2R1bGVfXywgJ250dXJsMnBhdGgnKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocC5fX21vZHVsZV9fLCAnbnR1cmwycGF0aCcpCisgICAgICAgICAgICBmb3IgaywgdiBpbiBjb250ZXh0Lml0ZW1zKCk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2Ll9fbW9kdWxlX18sICd1cmxsaWIuJXMnICUgbW9kdWxlLAorICAgICAgICAgICAgICAgICAgICAiJXIgaXMgZXhwb3NlZCBpbiAndXJsbGliLiVzJyBidXQgZGVmaW5lZCBpbiAlciIgJQorICAgICAgICAgICAgICAgICAgICAoaywgbW9kdWxlLCB2Ll9fbW9kdWxlX18pKQorCiAgICAgZGVmIHRlc3RfdHJpdmlhbChzZWxmKToKICAgICAgICAgIyBBIGNvdXBsZSB0cml2aWFsIHRlc3RzCiAKQEAgLTUzNiwxMCArNTUzLDYgQEAKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXModXJsbGliLmVycm9yLlVSTEVycm9yLCBvLm9wZW4sIHJlcSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvLmNhbGxzLCBbKGhhbmRsZXJzWzBdLCAiaHR0cF9vcGVuIiwgKHJlcSwpLCB7fSldKQogCi0jIyAgICAgZGVmIHRlc3RfZXJyb3Ioc2VsZik6Ci0jIyAgICAgICAgICMgWFhYIHRoaXMgZG9lc24ndCBhY3R1YWxseSBzZWVtIHRvIGJlIHVzZWQgaW4gc3RhbmRhcmQgbGlicmFyeSwKLSMjICAgICAgICAgIyAgYnV0IHNob3VsZCByZWFsbHkgYmUgdGVzdGVkIGFueXdheS4uLgotCiAgICAgZGVmIHRlc3RfaHR0cF9lcnJvcihzZWxmKToKICAgICAgICAgIyBYWFggaHR0cF9lcnJvcl9kZWZhdWx0CiAgICAgICAgICMgaHR0cCBlcnJvcnMgYXJlIGEgc3BlY2lhbCBjYXNlCkBAIC01NjcsNiArNTgwLDcgQEAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoKGhhbmRsZXIsIG1ldGhvZF9uYW1lKSwgZ290WzoyXSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgZ290WzJdKQogCisKICAgICBkZWYgdGVzdF9wcm9jZXNzb3JzKHNlbGYpOgogICAgICAgICAjICpfcmVxdWVzdCAvICpfcmVzcG9uc2UgbWV0aG9kcyBnZXQgY2FsbGVkIGFwcHJvcHJpYXRlbHkKICAgICAgICAgbyA9IE9wZW5lckRpcmVjdG9yKCkKQEAgLTYwMiwxMCArNjE2LDI4IEBACiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGFyZ3NbMV0gaXMgTm9uZSBvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc2luc3RhbmNlKGFyZ3NbMV0sIE1vY2tSZXNwb25zZSkpCiAKKyAgICBkZWYgdGVzdF9tZXRob2RfZGVwcmVjYXRpb25zKHNlbGYpOgorICAgICAgICByZXEgPSBSZXF1ZXN0KCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0V2FybnMoRGVwcmVjYXRpb25XYXJuaW5nKToKKyAgICAgICAgICAgIHJlcS5hZGRfZGF0YSgiZGF0YSIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhEZXByZWNhdGlvbldhcm5pbmcpOgorICAgICAgICAgICAgcmVxLmhhc19kYXRhKCkKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zKERlcHJlY2F0aW9uV2FybmluZyk6CisgICAgICAgICAgICByZXEuZ2V0X2RhdGEoKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0V2FybnMoRGVwcmVjYXRpb25XYXJuaW5nKToKKyAgICAgICAgICAgIHJlcS5nZXRfaG9zdCgpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhEZXByZWNhdGlvbldhcm5pbmcpOgorICAgICAgICAgICAgcmVxLmdldF9zZWxlY3RvcigpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhEZXByZWNhdGlvbldhcm5pbmcpOgorICAgICAgICAgICAgcmVxLmlzX3VudmVyaWZpYWJsZSgpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhEZXByZWNhdGlvbldhcm5pbmcpOgorICAgICAgICAgICAgcmVxLmdldF9vcmlnaW5fcmVxX2hvc3QoKQorCiAKIGRlZiBzYW5lcGF0aG5hbWUydXJsKHBhdGgpOgogICAgIHRyeToKLSAgICAgICAgcGF0aC5lbmNvZGUoInV0ZjgiKQorICAgICAgICBwYXRoLmVuY29kZSgidXRmLTgiKQogICAgIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CiAgICAgICAgIHJhaXNlIHVuaXR0ZXN0LlNraXBUZXN0KCJwYXRoIGlzIG5vdCBlbmNvZGFibGUgdG8gdXRmOCIpCiAgICAgdXJscGF0aCA9IHVybGxpYi5yZXF1ZXN0LnBhdGhuYW1lMnVybChwYXRoKQpAQCAtMTE3OSw2ICsxMjExLDggQEAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXEuZ2V0X2hvc3QoKSwgInByb3h5LmV4YW1wbGUuY29tOjMxMjgiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcS5nZXRfaGVhZGVyKCJQcm94eS1hdXRob3JpemF0aW9uIiksIkZvb0JhciIpCiAKKyAgICAjIFRPRE86IFRoaXMgc2hvdWxkIGJlIG9ubHkgZm9yIE9TWAorICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJywgIm9ubHkgcmVsZXZhbnQgZm9yIE9TWCIpCiAgICAgZGVmIHRlc3Rfb3N4X3Byb3h5X2J5cGFzcyhzZWxmKToKICAgICAgICAgYnlwYXNzID0gewogICAgICAgICAgICAgJ2V4Y2x1ZGVfc2ltcGxlJzogRmFsc2UsCkBAIC0xMjk4LDYgKzEzMzIsMjYgQEAKICAgICAgICAgIyBfdGVzdF9iYXNpY19hdXRoIGNhbGxlZCAub3BlbigpIHR3aWNlKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZW5lci5yZWNvcmRlZCwgWyJkaWdlc3QiLCAiYmFzaWMiXSoyKQogCisgICAgZGVmIHRlc3RfdW5zdXBwb3J0ZWRfYXV0aF9kaWdlc3RfaGFuZGxlcihzZWxmKToKKyAgICAgICAgb3BlbmVyID0gT3BlbmVyRGlyZWN0b3IoKQorICAgICAgICAjIFdoaWxlIHVzaW5nIERpZ2VzdEF1dGhIYW5kbGVyCisgICAgICAgIGRpZ2VzdF9hdXRoX2hhbmRsZXIgPSB1cmxsaWIucmVxdWVzdC5IVFRQRGlnZXN0QXV0aEhhbmRsZXIoTm9uZSkKKyAgICAgICAgaHR0cF9oYW5kbGVyID0gTW9ja0hUVFBIYW5kbGVyKAorICAgICAgICAgICAgNDAxLCAnV1dXLUF1dGhlbnRpY2F0ZTogS2VyYmVyb3NcclxuXHJcbicpCisgICAgICAgIG9wZW5lci5hZGRfaGFuZGxlcihkaWdlc3RfYXV0aF9oYW5kbGVyKQorICAgICAgICBvcGVuZXIuYWRkX2hhbmRsZXIoaHR0cF9oYW5kbGVyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLG9wZW5lci5vcGVuLCJodHRwOi8vd3d3LmV4YW1wbGUuY29tIikKKworICAgIGRlZiB0ZXN0X3Vuc3VwcG9ydGVkX2F1dGhfYmFzaWNfaGFuZGxlcihzZWxmKToKKyAgICAgICAgIyBXaGlsZSB1c2luZyBCYXNpY0F1dGhIYW5kbGVyCisgICAgICAgIG9wZW5lciA9IE9wZW5lckRpcmVjdG9yKCkKKyAgICAgICAgYmFzaWNfYXV0aF9oYW5kbGVyID0gdXJsbGliLnJlcXVlc3QuSFRUUEJhc2ljQXV0aEhhbmRsZXIoTm9uZSkKKyAgICAgICAgaHR0cF9oYW5kbGVyID0gTW9ja0hUVFBIYW5kbGVyKAorICAgICAgICAgICAgNDAxLCAnV1dXLUF1dGhlbnRpY2F0ZTogTlRMTVxyXG5cclxuJykKKyAgICAgICAgb3BlbmVyLmFkZF9oYW5kbGVyKGJhc2ljX2F1dGhfaGFuZGxlcikKKyAgICAgICAgb3BlbmVyLmFkZF9oYW5kbGVyKGh0dHBfaGFuZGxlcikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcixvcGVuZXIub3BlbiwiaHR0cDovL3d3dy5leGFtcGxlLmNvbSIpCisKICAgICBkZWYgX3Rlc3RfYmFzaWNfYXV0aChzZWxmLCBvcGVuZXIsIGF1dGhfaGFuZGxlciwgYXV0aF9oZWFkZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhbG0sIGh0dHBfaGFuZGxlciwgcGFzc3dvcmRfbWFuYWdlciwKICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X3VybCwgcHJvdGVjdGVkX3VybCk6CkBAIC0xMzM1LDYgKzEzODksNyBAQAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihodHRwX2hhbmRsZXIucmVxdWVzdHMpLCAxKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGh0dHBfaGFuZGxlci5yZXF1ZXN0c1swXS5oYXNfaGVhZGVyKGF1dGhfaGVhZGVyKSkKIAorCiBjbGFzcyBNaXNjVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3RfYnVpbGRfb3BlbmVyKHNlbGYpOgpAQCAtMTQ0Myw3ICsxNDk4LDkgQEAKICAgICBJc3N1ZSAxMzIxMSByZXZlYWxzIHRoYXQgSFRUUEVycm9yIGRpZG4ndCBpbXBsZW1lbnQgdGhlIFVSTEVycm9yCiAgICAgaW50ZXJmYWNlIGV2ZW4gdGhvdWdoIEhUVFBFcnJvciBpcyBhIHN1YmNsYXNzIG9mIFVSTEVycm9yLgogCi0gICAgPj4+IGVyciA9IHVybGxpYi5lcnJvci5IVFRQRXJyb3IobXNnPSdzb21ldGhpbmcgYmFkIGhhcHBlbmVkJywgdXJsPU5vbmUsIGNvZGU9Tm9uZSwgaGRycz1Ob25lLCBmcD1Ob25lKQorICAgID4+PiBtc2cgPSAnc29tZXRoaW5nIGJhZCBoYXBwZW5lZCcKKyAgICA+Pj4gdXJsID0gY29kZSA9IGhkcnMgPSBmcCA9IE5vbmUKKyAgICA+Pj4gZXJyID0gdXJsbGliLmVycm9yLkhUVFBFcnJvcih1cmwsIGNvZGUsIG1zZywgaGRycywgZnApCiAgICAgPj4+IGFzc2VydCBoYXNhdHRyKGVyciwgJ3JlYXNvbicpCiAgICAgPj4+IGVyci5yZWFzb24KICAgICAnc29tZXRoaW5nIGJhZCBoYXBwZW5lZCcKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdXJsbGliMl9sb2NhbG5ldC5weSBiL0xpYi90ZXN0L3Rlc3RfdXJsbGliMl9sb2NhbG5ldC5weQppbmRleCA5ZTFjZTViLi42ZWY0MjAwIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3VybGxpYjJfbG9jYWxuZXQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF91cmxsaWIyX2xvY2FsbmV0LnB5CkBAIC00NzQsNiArNDc0LDEzIEBACiAgICAgICAgICAgICBzZWxmLnVybG9wZW4oImh0dHBzOi8vbG9jYWxob3N0OiVzL2JpemFycmUiICUgaGFuZGxlci5wb3J0LAogICAgICAgICAgICAgICAgICAgICAgICAgIGNhZmlsZT1DRVJUX2Zha2Vob3N0bmFtZSkKIAorICAgIGRlZiB0ZXN0X2h0dHBzX3dpdGhfY2FkZWZhdWx0KHNlbGYpOgorICAgICAgICBoYW5kbGVyID0gc2VsZi5zdGFydF9odHRwc19zZXJ2ZXIoY2VydGZpbGU9Q0VSVF9sb2NhbGhvc3QpCisgICAgICAgICMgU2VsZi1zaWduZWQgY2VydCBzaG91bGQgZmFpbCB2ZXJpZmljYXRpb24gd2l0aCBzeXN0ZW0gY2VydGlmaWNhdGUgc3RvcmUKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyh1cmxsaWIuZXJyb3IuVVJMRXJyb3IpIGFzIGNtOgorICAgICAgICAgICAgc2VsZi51cmxvcGVuKCJodHRwczovL2xvY2FsaG9zdDolcy9iaXphcnJlIiAlIGhhbmRsZXIucG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjYWRlZmF1bHQ9VHJ1ZSkKKwogICAgIGRlZiB0ZXN0X3NlbmRpbmdfaGVhZGVycyhzZWxmKToKICAgICAgICAgaGFuZGxlciA9IHNlbGYuc3RhcnRfc2VydmVyKCkKICAgICAgICAgcmVxID0gdXJsbGliLnJlcXVlc3QuUmVxdWVzdCgiaHR0cDovL2xvY2FsaG9zdDolcy8iICUgaGFuZGxlci5wb3J0LApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF91cmxsaWIybmV0LnB5IGIvTGliL3Rlc3QvdGVzdF91cmxsaWIybmV0LnB5CmluZGV4IDVmY2I0Y2IuLmZjNTUyN2UgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdXJsbGliMm5ldC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3VybGxpYjJuZXQucHkKQEAgLTgzLDEyICs4MywxMyBAQAogICAgIGRlZiB0ZXN0X2Nsb3NlKHNlbGYpOgogICAgICAgICAjIGNhbGxpbmcgLmNsb3NlKCkgb24gdXJsbGliMidzIHJlc3BvbnNlIG9iamVjdHMgc2hvdWxkIGNsb3NlIHRoZQogICAgICAgICAjIHVuZGVybHlpbmcgc29ja2V0Ci0KLSAgICAgICAgcmVzcG9uc2UgPSBfdXJsb3Blbl93aXRoX3JldHJ5KCJodHRwOi8vd3d3LnB5dGhvbi5vcmcvIikKLSAgICAgICAgc29jayA9IHJlc3BvbnNlLmZwCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3Qgc29jay5jbG9zZWQpCi0gICAgICAgIHJlc3BvbnNlLmNsb3NlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHNvY2suY2xvc2VkKQorICAgICAgICB1cmwgPSAiaHR0cDovL3d3dy5weXRob24ub3JnLyIKKyAgICAgICAgd2l0aCBzdXBwb3J0LnRyYW5zaWVudF9pbnRlcm5ldCh1cmwpOgorICAgICAgICAgICAgcmVzcG9uc2UgPSBfdXJsb3Blbl93aXRoX3JldHJ5KHVybCkKKyAgICAgICAgICAgIHNvY2sgPSByZXNwb25zZS5mcAorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG5vdCBzb2NrLmNsb3NlZCkKKyAgICAgICAgICAgIHJlc3BvbnNlLmNsb3NlKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzb2NrLmNsb3NlZCkKIAogY2xhc3MgT3RoZXJOZXR3b3JrVGVzdHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdXNlcmxpc3QucHkgYi9MaWIvdGVzdC90ZXN0X3VzZXJsaXN0LnB5CmluZGV4IDg2OGVkMjQuLjYzODEwNzAgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfdXNlcmxpc3QucHkKKysrIGIvTGliL3Rlc3QvdGVzdF91c2VybGlzdC5weQpAQCAtNTIsNiArNTIsMTIgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gc3RyKGtleSkgKyAnISEhJwogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5leHQoaXRlcihUKCgxLDIpKSkpLCAiMCEhISIpCiAKKyAgICBkZWYgdGVzdF91c2VybGlzdF9jb3B5KHNlbGYpOgorICAgICAgICB1ID0gc2VsZi50eXBlMnRlc3QoWzYsIDgsIDEsIDksIDFdKQorICAgICAgICB2ID0gdS5jb3B5KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1LCB2KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHR5cGUodSksIHR5cGUodikpCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChVc2VyTGlzdFRlc3QpCiAKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfdXNlcnN0cmluZy5weSBiL0xpYi90ZXN0L3Rlc3RfdXNlcnN0cmluZy5weQppbmRleCA3YThiOTMyLi5kNWQwYzg5IDEwMDc1NQotLS0gYS9MaWIvdGVzdC90ZXN0X3VzZXJzdHJpbmcucHkKKysrIGIvTGliL3Rlc3QvdGVzdF91c2Vyc3RyaW5nLnB5CkBAIC0xNywxMSArMTcsMTEgQEAKICAgICAjIE92ZXJ3cml0ZSB0aGUgdGhyZWUgdGVzdGluZyBtZXRob2RzLCBiZWNhdXNlIFVzZXJTdHJpbmcKICAgICAjIGNhbid0IGNvcGUgd2l0aCBhcmd1bWVudHMgcHJvcGFnYXRlZCB0byBVc2VyU3RyaW5nCiAgICAgIyAoYW5kIHdlIGRvbid0IHRlc3Qgd2l0aCBzdWJjbGFzc2VzKQotICAgIGRlZiBjaGVja2VxdWFsKHNlbGYsIHJlc3VsdCwgb2JqZWN0LCBtZXRob2RuYW1lLCAqYXJncyk6CisgICAgZGVmIGNoZWNrZXF1YWwoc2VsZiwgcmVzdWx0LCBvYmplY3QsIG1ldGhvZG5hbWUsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIHJlc3VsdCA9IHNlbGYuZml4dHlwZShyZXN1bHQpCiAgICAgICAgIG9iamVjdCA9IHNlbGYuZml4dHlwZShvYmplY3QpCiAgICAgICAgICMgd2UgZG9uJ3QgZml4IHRoZSBhcmd1bWVudHMsIGJlY2F1c2UgVXNlclN0cmluZyBjYW4ndCBjb3BlIHdpdGggaXQKLSAgICAgICAgcmVhbHJlc3VsdCA9IGdldGF0dHIob2JqZWN0LCBtZXRob2RuYW1lKSgqYXJncykKKyAgICAgICAgcmVhbHJlc3VsdCA9IGdldGF0dHIob2JqZWN0LCBtZXRob2RuYW1lKSgqYXJncywgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCiAgICAgICAgICAgICByZXN1bHQsCiAgICAgICAgICAgICByZWFscmVzdWx0CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3V1aWQucHkgYi9MaWIvdGVzdC90ZXN0X3V1aWQucHkKaW5kZXggNDNmYTY1Ni4uN2JjNTllZCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF91dWlkLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfdXVpZC5weQpAQCAtNDcxLDE0ICs0NzEsMTQgQEAKICAgICAgICAgaWYgcGlkID09IDA6CiAgICAgICAgICAgICBvcy5jbG9zZShmZHNbMF0pCiAgICAgICAgICAgICB2YWx1ZSA9IHV1aWQudXVpZDQoKQotICAgICAgICAgICAgb3Mud3JpdGUoZmRzWzFdLCB2YWx1ZS5oZXguZW5jb2RlKCdsYXRpbjEnKSkKKyAgICAgICAgICAgIG9zLndyaXRlKGZkc1sxXSwgdmFsdWUuaGV4LmVuY29kZSgnbGF0aW4tMScpKQogICAgICAgICAgICAgb3MuX2V4aXQoMCkKIAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgb3MuY2xvc2UoZmRzWzFdKQogICAgICAgICAgICAgcGFyZW50X3ZhbHVlID0gdXVpZC51dWlkNCgpLmhleAogICAgICAgICAgICAgb3Mud2FpdHBpZChwaWQsIDApCi0gICAgICAgICAgICBjaGlsZF92YWx1ZSA9IG9zLnJlYWQoZmRzWzBdLCAxMDApLmRlY29kZSgnbGF0aW4xJykKKyAgICAgICAgICAgIGNoaWxkX3ZhbHVlID0gb3MucmVhZChmZHNbMF0sIDEwMCkuZGVjb2RlKCdsYXRpbi0xJykKIAogICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChwYXJlbnRfdmFsdWUsIGNoaWxkX3ZhbHVlKQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3ZlbnYucHkgYi9MaWIvdGVzdC90ZXN0X3ZlbnYucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzc1MGMzNgotLS0gL2Rldi9udWxsCisrKyBiL0xpYi90ZXN0L3Rlc3RfdmVudi5weQpAQCAtMCwwICsxLDE3MSBAQAorIiIiCitUZXN0IGhhcm5lc3MgZm9yIHRoZSB2ZW52IG1vZHVsZS4KKworQ29weXJpZ2h0IChDKSAyMDExLTIwMTIgVmluYXkgU2FqaXAuCitMaWNlbnNlZCB0byB0aGUgUFNGIHVuZGVyIGEgY29udHJpYnV0b3IgYWdyZWVtZW50LgorIiIiCisKK2ltcG9ydCBvcworaW1wb3J0IG9zLnBhdGgKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCAoY2FwdHVyZWRfc3Rkb3V0LCBjYXB0dXJlZF9zdGRlcnIsIHJ1bl91bml0dGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuX3N5bWxpbmspCitpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB2ZW52CisKK2NsYXNzIEJhc2VUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAiIiJCYXNlIGNsYXNzIGZvciB2ZW52IHRlc3RzLiIiIgorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmVudl9kaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICAgICAgaWYgb3MubmFtZSA9PSAnbnQnOgorICAgICAgICAgICAgc2VsZi5iaW5kaXIgPSAnU2NyaXB0cycKKyAgICAgICAgICAgIHNlbGYucHlkb2NuYW1lID0gJ3B5ZG9jLnB5JworICAgICAgICAgICAgc2VsZi5saWIgPSAoJ0xpYicsKQorICAgICAgICAgICAgc2VsZi5pbmNsdWRlID0gJ0luY2x1ZGUnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmJpbmRpciA9ICdiaW4nCisgICAgICAgICAgICBzZWxmLnB5ZG9jbmFtZSA9ICdweWRvYycKKyAgICAgICAgICAgIHNlbGYubGliID0gKCdsaWInLCAncHl0aG9uJXMnICUgc3lzLnZlcnNpb25bOjNdKQorICAgICAgICAgICAgc2VsZi5pbmNsdWRlID0gJ2luY2x1ZGUnCisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgJ19fUFlWRU5WX0xBVU5DSEVSX18nIGluIG9zLmVudmlyb246CisgICAgICAgICAgICBleGVjdXRhYmxlID0gb3MuZW52aXJvblsnX19QWVZFTlZfTEFVTkNIRVJfXyddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleGVjdXRhYmxlID0gc3lzLmV4ZWN1dGFibGUKKyAgICAgICAgc2VsZi5leGUgPSBvcy5wYXRoLnNwbGl0KGV4ZWN1dGFibGUpWy0xXQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYuZW52X2RpcikKKworICAgIGRlZiBydW5fd2l0aF9jYXB0dXJlKHNlbGYsIGZ1bmMsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHdpdGggY2FwdHVyZWRfc3Rkb3V0KCkgYXMgb3V0cHV0OgorICAgICAgICAgICAgd2l0aCBjYXB0dXJlZF9zdGRlcnIoKSBhcyBlcnJvcjoKKyAgICAgICAgICAgICAgICBmdW5jKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgcmV0dXJuIG91dHB1dC5nZXR2YWx1ZSgpLCBlcnJvci5nZXR2YWx1ZSgpCisKKyAgICBkZWYgZ2V0X2Vudl9maWxlKHNlbGYsICphcmdzKToKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihzZWxmLmVudl9kaXIsICphcmdzKQorCisgICAgZGVmIGdldF90ZXh0X2ZpbGVfY29udGVudHMoc2VsZiwgKmFyZ3MpOgorICAgICAgICB3aXRoIG9wZW4oc2VsZi5nZXRfZW52X2ZpbGUoKmFyZ3MpLCAncicpIGFzIGY6CisgICAgICAgICAgICByZXN1bHQgPSBmLnJlYWQoKQorICAgICAgICByZXR1cm4gcmVzdWx0CisKK2NsYXNzIEJhc2ljVGVzdChCYXNlVGVzdCk6CisgICAgIiIiVGVzdCB2ZW52IG1vZHVsZSBmdW5jdGlvbmFsaXR5LiIiIgorCisgICAgZGVmIGlzZGlyKHNlbGYsICphcmdzKToKKyAgICAgICAgZm4gPSBzZWxmLmdldF9lbnZfZmlsZSgqYXJncykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguaXNkaXIoZm4pKQorCisgICAgZGVmIHRlc3RfZGVmYXVsdHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHRoZSBjcmVhdGUgZnVuY3Rpb24gd2l0aCBkZWZhdWx0IGFyZ3VtZW50cy4KKyAgICAgICAgIiIiCisgICAgICAgIHNodXRpbC5ybXRyZWUoc2VsZi5lbnZfZGlyKQorICAgICAgICBzZWxmLnJ1bl93aXRoX2NhcHR1cmUodmVudi5jcmVhdGUsIHNlbGYuZW52X2RpcikKKyAgICAgICAgc2VsZi5pc2RpcihzZWxmLmJpbmRpcikKKyAgICAgICAgc2VsZi5pc2RpcihzZWxmLmluY2x1ZGUpCisgICAgICAgIHNlbGYuaXNkaXIoKnNlbGYubGliKQorICAgICAgICBkYXRhID0gc2VsZi5nZXRfdGV4dF9maWxlX2NvbnRlbnRzKCdweXZlbnYuY2ZnJykKKyAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nIGFuZCAoJ19fUFlWRU5WX0xBVU5DSEVSX18nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIG9zLmVudmlyb24pOgorICAgICAgICAgICAgZXhlY3V0YWJsZSA9ICBvcy5lbnZpcm9uWydfX1BZVkVOVl9MQVVOQ0hFUl9fJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBzeXMuZXhlY3V0YWJsZQorICAgICAgICBwYXRoID0gb3MucGF0aC5kaXJuYW1lKGV4ZWN1dGFibGUpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2hvbWUgPSAlcycgJSBwYXRoLCBkYXRhKQorICAgICAgICBkYXRhID0gc2VsZi5nZXRfdGV4dF9maWxlX2NvbnRlbnRzKHNlbGYuYmluZGlyLCBzZWxmLnB5ZG9jbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRhdGEuc3RhcnRzd2l0aCgnIyElcyVzJyAlIChzZWxmLmVudl9kaXIsIG9zLnNlcCkpKQorICAgICAgICBmbiA9IHNlbGYuZ2V0X2Vudl9maWxlKHNlbGYuYmluZGlyLCBzZWxmLmV4ZSkKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZuKTogICMgZGlhZ25vc3RpY3MgZm9yIFdpbmRvd3MgYnVpbGRib3QgZmFpbHVyZXMKKyAgICAgICAgICAgIGJkID0gc2VsZi5nZXRfZW52X2ZpbGUoc2VsZi5iaW5kaXIpCisgICAgICAgICAgICBwcmludCgnQ29udGVudHMgb2YgJXI6JyAlIGJkKQorICAgICAgICAgICAgcHJpbnQoJyAgICAlcicgJSBvcy5saXN0ZGlyKGJkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG9zLnBhdGguZXhpc3RzKGZuKSwgJ0ZpbGUgJXIgc2hvdWxkIGV4aXN0LicgJSBmbikKKworICAgIGRlZiB0ZXN0X3ByZWZpeGVzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCB0aGF0IHRoZSBwcmVmaXggdmFsdWVzIGFyZSBhcyBleHBlY3RlZC4KKyAgICAgICAgIiIiCisgICAgICAgICNjaGVjayBvdXIgcHJlZml4ZXMKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzeXMuYmFzZV9wcmVmaXgsIHN5cy5wcmVmaXgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3lzLmJhc2VfZXhlY19wcmVmaXgsIHN5cy5leGVjX3ByZWZpeCkKKworICAgICAgICAjIGNoZWNrIGEgdmVudidzIHByZWZpeGVzCisgICAgICAgIHNodXRpbC5ybXRyZWUoc2VsZi5lbnZfZGlyKQorICAgICAgICBzZWxmLnJ1bl93aXRoX2NhcHR1cmUodmVudi5jcmVhdGUsIHNlbGYuZW52X2RpcikKKyAgICAgICAgZW52cHkgPSBvcy5wYXRoLmpvaW4oc2VsZi5lbnZfZGlyLCBzZWxmLmJpbmRpciwgc2VsZi5leGUpCisgICAgICAgIGNtZCA9IFtlbnZweSwgJy1jJywgTm9uZV0KKyAgICAgICAgZm9yIHByZWZpeCwgZXhwZWN0ZWQgaW4gKAorICAgICAgICAgICAgKCdwcmVmaXgnLCBzZWxmLmVudl9kaXIpLAorICAgICAgICAgICAgKCdwcmVmaXgnLCBzZWxmLmVudl9kaXIpLAorICAgICAgICAgICAgKCdiYXNlX3ByZWZpeCcsIHN5cy5wcmVmaXgpLAorICAgICAgICAgICAgKCdiYXNlX2V4ZWNfcHJlZml4Jywgc3lzLmV4ZWNfcHJlZml4KSk6CisgICAgICAgICAgICBjbWRbMl0gPSAnaW1wb3J0IHN5czsgcHJpbnQoc3lzLiVzKScgJSBwcmVmaXgKKyAgICAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCisgICAgICAgICAgICBvdXQsIGVyciA9IHAuY29tbXVuaWNhdGUoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvdXRbOi0xXSwgZXhwZWN0ZWQuZW5jb2RlKCkpCisKKyAgICBkZWYgdGVzdF9vdmVyd3JpdGVfZXhpc3Rpbmcoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IGNvbnRyb2wgb2Ygb3ZlcndyaXRpbmcgYW4gZXhpc3RpbmcgZW52aXJvbm1lbnQgZGlyZWN0b3J5LgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgdmVudi5jcmVhdGUsIHNlbGYuZW52X2RpcikKKyAgICAgICAgYnVpbGRlciA9IHZlbnYuRW52QnVpbGRlcihjbGVhcj1UcnVlKQorICAgICAgICBidWlsZGVyLmNyZWF0ZShzZWxmLmVudl9kaXIpCisKKyAgICBkZWYgdGVzdF91cGdyYWRlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCB1cGdyYWRpbmcgYW4gZXhpc3RpbmcgZW52aXJvbm1lbnQgZGlyZWN0b3J5LgorICAgICAgICAiIiIKKyAgICAgICAgYnVpbGRlciA9IHZlbnYuRW52QnVpbGRlcih1cGdyYWRlPVRydWUpCisgICAgICAgIHNlbGYucnVuX3dpdGhfY2FwdHVyZShidWlsZGVyLmNyZWF0ZSwgc2VsZi5lbnZfZGlyKQorICAgICAgICBzZWxmLmlzZGlyKHNlbGYuYmluZGlyKQorICAgICAgICBzZWxmLmlzZGlyKHNlbGYuaW5jbHVkZSkKKyAgICAgICAgc2VsZi5pc2Rpcigqc2VsZi5saWIpCisgICAgICAgIGZuID0gc2VsZi5nZXRfZW52X2ZpbGUoc2VsZi5iaW5kaXIsIHNlbGYuZXhlKQorICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZm4pOiAgIyBkaWFnbm9zdGljcyBmb3IgV2luZG93cyBidWlsZGJvdCBmYWlsdXJlcworICAgICAgICAgICAgYmQgPSBzZWxmLmdldF9lbnZfZmlsZShzZWxmLmJpbmRpcikKKyAgICAgICAgICAgIHByaW50KCdDb250ZW50cyBvZiAlcjonICUgYmQpCisgICAgICAgICAgICBwcmludCgnICAgICVyJyAlIG9zLmxpc3RkaXIoYmQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHMoZm4pLCAnRmlsZSAlciBzaG91bGQgZXhpc3QuJyAlIGZuKQorCisgICAgZGVmIHRlc3RfaXNvbGF0aW9uKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGVzdCBpc29sYXRpb24gZnJvbSBzeXN0ZW0gc2l0ZS1wYWNrYWdlcworICAgICAgICAiIiIKKyAgICAgICAgZm9yIHNzcCwgcyBpbiAoKFRydWUsICd0cnVlJyksIChGYWxzZSwgJ2ZhbHNlJykpOgorICAgICAgICAgICAgYnVpbGRlciA9IHZlbnYuRW52QnVpbGRlcihjbGVhcj1UcnVlLCBzeXN0ZW1fc2l0ZV9wYWNrYWdlcz1zc3ApCisgICAgICAgICAgICBidWlsZGVyLmNyZWF0ZShzZWxmLmVudl9kaXIpCisgICAgICAgICAgICBkYXRhID0gc2VsZi5nZXRfdGV4dF9maWxlX2NvbnRlbnRzKCdweXZlbnYuY2ZnJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2luY2x1ZGUtc3lzdGVtLXNpdGUtcGFja2FnZXMgPSAlc1xuJyAlIHMsIGRhdGEpCisKKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyhjYW5fc3ltbGluaygpLCAnTmVlZHMgc3ltbGlua3MnKQorICAgIGRlZiB0ZXN0X3N5bWxpbmtpbmcoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBUZXN0IHN5bWxpbmtpbmcgd29ya3MgYXMgZXhwZWN0ZWQKKyAgICAgICAgIiIiCisgICAgICAgIGZvciB1c2wgaW4gKEZhbHNlLCBUcnVlKToKKyAgICAgICAgICAgIGJ1aWxkZXIgPSB2ZW52LkVudkJ1aWxkZXIoY2xlYXI9VHJ1ZSwgc3ltbGlua3M9dXNsKQorICAgICAgICAgICAgaWYgKHVzbCBhbmQgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nIGFuZAorICAgICAgICAgICAgICAgICdfX1BZVkVOVl9MQVVOQ0hFUl9fJyBpbiBvcy5lbnZpcm9uKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBidWlsZGVyLmNyZWF0ZSwgc2VsZi5lbnZfZGlyKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBidWlsZGVyLmNyZWF0ZShzZWxmLmVudl9kaXIpCisgICAgICAgICAgICAgICAgZm4gPSBzZWxmLmdldF9lbnZfZmlsZShzZWxmLmJpbmRpciwgc2VsZi5leGUpCisgICAgICAgICAgICAgICAgIyBEb24ndCB0ZXN0IHdoZW4gRmFsc2UsIGJlY2F1c2UgZS5nLiAncHl0aG9uJyBpcyBhbHdheXMKKyAgICAgICAgICAgICAgICAjIHN5bWxpbmtlZCB0byAncHl0aG9uMy4zJyBpbiB0aGUgZW52LCBldmVuIHdoZW4gc3ltbGlua2luZyBpbgorICAgICAgICAgICAgICAgICMgZ2VuZXJhbCBpc24ndCB3YW50ZWQuCisgICAgICAgICAgICAgICAgaWYgdXNsOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5pc2xpbmsoZm4pKQorCitkZWYgdGVzdF9tYWluKCk6CisgICAgcnVuX3VuaXR0ZXN0KEJhc2ljVGVzdCkKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICB0ZXN0X21haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF93YWl0My5weSBiL0xpYi90ZXN0L3Rlc3Rfd2FpdDMucHkKaW5kZXggNzg2ZTYwYi4uYmQwNmM4ZCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF93YWl0My5weQorKysgYi9MaWIvdGVzdC90ZXN0X3dhaXQzLnB5CkBAIC0xOSwxMyArMTksMTYgQEAKIAogY2xhc3MgV2FpdDNUZXN0KEZvcmtXYWl0KToKICAgICBkZWYgd2FpdF9pbXBsKHNlbGYsIGNwaWQpOgotICAgICAgICBmb3IgaSBpbiByYW5nZSgxMCk6CisgICAgICAgICMgVGhpcyBtYW55IGl0ZXJhdGlvbnMgY2FuIGJlIHJlcXVpcmVkLCBzaW5jZSBzb21lIHByZXZpb3VzbHkgcnVuCisgICAgICAgICMgdGVzdHMgKGUuZy4gdGVzdF9jdHlwZXMpIGNvdWxkIGhhdmUgc3Bhd25lZCBhIGxvdCBvZiBjaGlsZHJlbgorICAgICAgICAjIHZlcnkgcXVpY2tseS4KKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMzApOgogICAgICAgICAgICAgIyB3YWl0MygpIHNob3VsZG4ndCBoYW5nLCBidXQgc29tZSBvZiB0aGUgYnVpbGRib3RzIHNlZW0gdG8gaGFuZwogICAgICAgICAgICAgIyBpbiB0aGUgZm9ya2luZyB0ZXN0cy4gIFRoaXMgaXMgYW4gYXR0ZW1wdCB0byBmaXggdGhlIHByb2JsZW0uCiAgICAgICAgICAgICBzcGlkLCBzdGF0dXMsIHJ1c2FnZSA9IG9zLndhaXQzKG9zLldOT0hBTkcpCiAgICAgICAgICAgICBpZiBzcGlkID09IGNwaWQ6CiAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoMS4wKQorICAgICAgICAgICAgdGltZS5zbGVlcCgwLjEpCiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzcGlkLCBjcGlkKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXR1cywgMCwgImNhdXNlID0gJWQsIGV4aXQgPSAlZCIgJSAoc3RhdHVzJjB4ZmYsIHN0YXR1cz4+OCkpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3dhcm5pbmdzLnB5IGIvTGliL3Rlc3QvdGVzdF93YXJuaW5ncy5weQppbmRleCA3OWJlODM1Li45NTNiMjgyIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3dhcm5pbmdzLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfd2FybmluZ3MucHkKQEAgLTUxMiwxMiArNTEyLDExIEBACiAgICAgZGVmIHRlc3Rfc2hvd3dhcm5pbmdfbm90X2NhbGxhYmxlKHNlbGYpOgogICAgICAgICB3aXRoIG9yaWdpbmFsX3dhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKG1vZHVsZT1zZWxmLm1vZHVsZSk6CiAgICAgICAgICAgICBzZWxmLm1vZHVsZS5maWx0ZXJ3YXJuaW5ncygiYWx3YXlzIiwgY2F0ZWdvcnk9VXNlcldhcm5pbmcpCi0gICAgICAgICAgICBvbGRfc2hvd3dhcm5pbmcgPSBzZWxmLm1vZHVsZS5zaG93d2FybmluZworICAgICAgICAgICAgc2VsZi5tb2R1bGUuc2hvd3dhcm5pbmcgPSBwcmludAorICAgICAgICAgICAgd2l0aCBzdXBwb3J0LmNhcHR1cmVkX291dHB1dCgnc3Rkb3V0Jyk6CisgICAgICAgICAgICAgICAgc2VsZi5tb2R1bGUud2FybignV2FybmluZyEnKQogICAgICAgICAgICAgc2VsZi5tb2R1bGUuc2hvd3dhcm5pbmcgPSAyMwotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5tb2R1bGUud2FybiwgIldhcm5pbmchIikKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgc2VsZi5tb2R1bGUuc2hvd3dhcm5pbmcgPSBvbGRfc2hvd3dhcm5pbmcKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgc2VsZi5tb2R1bGUud2FybiwgIldhcm5pbmchIikKIAogICAgIGRlZiB0ZXN0X3Nob3dfd2FybmluZ19vdXRwdXQoc2VsZik6CiAgICAgICAgICMgV2l0aCBzaG93YXJuaW5nKCkgbWlzc2luZywgbWFrZSBzdXJlIHRoYXQgb3V0cHV0IGlzIG9rYXkuCkBAIC01NDcsMTAgKzU0NiwxMyBAQAogICAgICAgICBnbG9iYWxzX2RpY3QgPSBnbG9iYWxzKCkKICAgICAgICAgb2xkZmlsZSA9IGdsb2JhbHNfZGljdFsnX19maWxlX18nXQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3aXRoIG9yaWdpbmFsX3dhcm5pbmdzLmNhdGNoX3dhcm5pbmdzKG1vZHVsZT1zZWxmLm1vZHVsZSkgYXMgdzoKKyAgICAgICAgICAgIGNhdGNoID0gb3JpZ2luYWxfd2FybmluZ3MuY2F0Y2hfd2FybmluZ3MocmVjb3JkPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZT1zZWxmLm1vZHVsZSkKKyAgICAgICAgICAgIHdpdGggY2F0Y2ggYXMgdzoKICAgICAgICAgICAgICAgICBzZWxmLm1vZHVsZS5maWx0ZXJ3YXJuaW5ncygiYWx3YXlzIiwgY2F0ZWdvcnk9VXNlcldhcm5pbmcpCiAgICAgICAgICAgICAgICAgZ2xvYmFsc19kaWN0WydfX2ZpbGVfXyddID0gTm9uZQogICAgICAgICAgICAgICAgIG9yaWdpbmFsX3dhcm5pbmdzLndhcm4oJ3Rlc3QnLCBVc2VyV2FybmluZykKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKHcpKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgZ2xvYmFsc19kaWN0WydfX2ZpbGVfXyddID0gb2xkZmlsZQogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3dzZ2lyZWYucHkgYi9MaWIvdGVzdC90ZXN0X3dzZ2lyZWYucHkKaW5kZXggYTA4ZjY2Yi4uMzk4YzUzYSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF93c2dpcmVmLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3Rfd3NnaXJlZi5weQpAQCAtOSw2ICs5LDggQEAKIGZyb20gd3NnaXJlZi5zaW1wbGVfc2VydmVyIGltcG9ydCBtYWtlX3NlcnZlcgogZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8sIEJ5dGVzSU8sIEJ1ZmZlcmVkUmVhZGVyCiBmcm9tIHNvY2tldHNlcnZlciBpbXBvcnQgQmFzZVNlcnZlcgorZnJvbSBwbGF0Zm9ybSBpbXBvcnQgcHl0aG9uX2ltcGxlbWVudGF0aW9uCisKIGltcG9ydCBvcwogaW1wb3J0IHJlCiBpbXBvcnQgc3lzCkBAIC0xMjksOSArMTMxLDExIEBACiBjbGFzcyBJbnRlZ3JhdGlvblRlc3RzKFRlc3RDYXNlKToKIAogICAgIGRlZiBjaGVja19oZWxsbyhzZWxmLCBvdXQsIGhhc19sZW5ndGg9VHJ1ZSk6CisgICAgICAgIHB5dmVyID0gKHB5dGhvbl9pbXBsZW1lbnRhdGlvbigpICsgIi8iICsKKyAgICAgICAgICAgICAgICBzeXMudmVyc2lvbi5zcGxpdCgpWzBdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG91dCwKICAgICAgICAgICAgICgiSFRUUC8xLjAgMjAwIE9LXHJcbiIKLSAgICAgICAgICAgICJTZXJ2ZXI6IFdTR0lTZXJ2ZXIvMC4yIFB5dGhvbi8iK3N5cy52ZXJzaW9uLnNwbGl0KClbMF0rIlxyXG4iCisgICAgICAgICAgICAiU2VydmVyOiBXU0dJU2VydmVyLzAuMiAiICsgcHl2ZXIgKyJcclxuIgogICAgICAgICAgICAgIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpblxyXG4iCiAgICAgICAgICAgICAiRGF0ZTogTW9uLCAwNSBKdW4gMjAwNiAxODo0OTo1NCBHTVRcclxuIiArCiAgICAgICAgICAgICAoaGFzX2xlbmd0aCBhbmQgICJDb250ZW50LUxlbmd0aDogMTNcclxuIiBvciAiIikgKwpAQCAtMTg1LDkgKzE4OSwxMSBAQAogICAgICAgICBvdXQsIGVyciA9IHJ1bl9hbW9jayh2YWxpZGF0b3IoYXBwKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGVyci5lbmRzd2l0aCgnIkdFVCAvIEhUVFAvMS4wIiAyMDAgNFxuJykpCiAgICAgICAgIHZlciA9IHN5cy52ZXJzaW9uLnNwbGl0KClbMF0uZW5jb2RlKCdhc2NpaScpCisgICAgICAgIHB5ICA9IHB5dGhvbl9pbXBsZW1lbnRhdGlvbigpLmVuY29kZSgnYXNjaWknKQorICAgICAgICBweXZlciA9IHB5ICsgYiIvIiArIHZlcgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAogICAgICAgICAgICAgICAgIGIiSFRUUC8xLjAgMjAwIE9LXHJcbiIKLSAgICAgICAgICAgICAgICBiIlNlcnZlcjogV1NHSVNlcnZlci8wLjIgUHl0aG9uLyIgKyB2ZXIgKyBiIlxyXG4iCisgICAgICAgICAgICAgICAgYiJTZXJ2ZXI6IFdTR0lTZXJ2ZXIvMC4yICIrIHB5dmVyICsgYiJcclxuIgogICAgICAgICAgICAgICAgIGIiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04XHJcbiIKICAgICAgICAgICAgICAgICBiIkRhdGU6IFdlZCwgMjQgRGVjIDIwMDggMTM6Mjk6MzIgR01UXHJcbiIKICAgICAgICAgICAgICAgICBiIlxyXG4iCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3htbF9ldHJlZS5weSBiL0xpYi90ZXN0L3Rlc3RfeG1sX2V0cmVlLnB5CmluZGV4IGI3YTk5NmMuLmMxZmM5NTUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfeG1sX2V0cmVlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfeG1sX2V0cmVlLnB5CkBAIC0xLDI4ICsxLDM0IEBACiAjIHhtbC5ldHJlZSB0ZXN0LiAgVGhpcyBmaWxlIGNvbnRhaW5zIGVub3VnaCB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdAogIyBhbGwgaW5jbHVkZWQgY29tcG9uZW50cyB3b3JrIGFzIHRoZXkgc2hvdWxkLgogIyBMYXJnZSBwYXJ0cyBhcmUgZXh0cmFjdGVkIGZyb20gdGhlIHVwc3RyZWFtIHRlc3Qgc3VpdGUuCi0KLSMgSU1QT1JUQU5UOiB0aGUgc2FtZSBkb2N0ZXN0cyBhcmUgcnVuIGZyb20gInRlc3RfeG1sX2V0cmVlX2MiIGluCi0jIG9yZGVyIHRvIGVuc3VyZSBjb25zaXN0ZW5jeSBiZXR3ZWVuIHRoZSBDIGltcGxlbWVudGF0aW9uIGFuZCB0aGUKLSMgUHl0aG9uIGltcGxlbWVudGF0aW9uLgorIworIyBQTEVBU0Ugd3JpdGUgYWxsIG5ldyB0ZXN0cyB1c2luZyB0aGUgc3RhbmRhcmQgdW5pdHRlc3QgaW5mcmFzdHJ1Y3R1cmUgYW5kCisjIG5vdCBkb2N0ZXN0LgorIworIyBJTVBPUlRBTlQ6IHRoZSBzYW1lIHRlc3RzIGFyZSBydW4gZnJvbSAidGVzdF94bWxfZXRyZWVfYyIgaW4gb3JkZXIKKyMgdG8gZW5zdXJlIGNvbnNpc3RlbmN5IGJldHdlZW4gdGhlIEMgaW1wbGVtZW50YXRpb24gYW5kIHRoZSBQeXRob24KKyMgaW1wbGVtZW50YXRpb24uCiAjCiAjIEZvciB0aGlzIHB1cnBvc2UsIHRoZSBtb2R1bGUtbGV2ZWwgIkVUIiBzeW1ib2wgaXMgdGVtcG9yYXJpbHkKICMgbW9ua2V5LXBhdGNoZWQgd2hlbiBydW5uaW5nIHRoZSAidGVzdF94bWxfZXRyZWVfYyIgdGVzdCBzdWl0ZS4KICMgRG9uJ3QgcmUtaW1wb3J0ICJ4bWwuZXRyZWUuRWxlbWVudFRyZWUiIG1vZHVsZSBpbiB0aGUgZG9jc3RyaW5nLAogIyBleGNlcHQgaWYgdGhlIHRlc3QgaXMgc3BlY2lmaWMgdG8gdGhlIFB5dGhvbiBpbXBsZW1lbnRhdGlvbi4KIAotaW1wb3J0IHN5cwogaW1wb3J0IGh0bWwKK2ltcG9ydCBpbworaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgd2Vha3JlZgogCiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKLWZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBmaW5kZmlsZQorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGZpbmRmaWxlLCBpbXBvcnRfZnJlc2hfbW9kdWxlLCBnY19jb2xsZWN0CiAKLWZyb20geG1sLmV0cmVlIGltcG9ydCBFbGVtZW50VHJlZSBhcyBFVAorcHlFVCA9IE5vbmUKK0VUID0gTm9uZQogCiBTSU1QTEVfWE1MRklMRSA9IGZpbmRmaWxlKCJzaW1wbGUueG1sIiwgc3ViZGlyPSJ4bWx0ZXN0ZGF0YSIpCiB0cnk6Ci0gICAgU0lNUExFX1hNTEZJTEUuZW5jb2RlKCJ1dGY4IikKKyAgICBTSU1QTEVfWE1MRklMRS5lbmNvZGUoInV0Zi04IikKIGV4Y2VwdCBVbmljb2RlRW5jb2RlRXJyb3I6CiAgICAgcmFpc2UgdW5pdHRlc3QuU2tpcFRlc3QoImZpbGVuYW1lIGlzIG5vdCBlbmNvZGFibGUgdG8gdXRmOCIpCiBTSU1QTEVfTlNfWE1MRklMRSA9IGZpbmRmaWxlKCJzaW1wbGUtbnMueG1sIiwgc3ViZGlyPSJ4bWx0ZXN0ZGF0YSIpCkBAIC01Nyw2ICs2MywyMiBAQAogPC9ib2R5PgogIiIiCiAKK1NBTVBMRV9YTUxfTlNfRUxFTVMgPSAiIiIKKzxyb290PgorPGg6dGFibGUgeG1sbnM6aD0iaGVsbG8iPgorICA8aDp0cj4KKyAgICA8aDp0ZD5BcHBsZXM8L2g6dGQ+CisgICAgPGg6dGQ+QmFuYW5hczwvaDp0ZD4KKyAgPC9oOnRyPgorPC9oOnRhYmxlPgorCis8Zjp0YWJsZSB4bWxuczpmPSJmb28iPgorICA8ZjpuYW1lPkFmcmljYW4gQ29mZmVlIFRhYmxlPC9mOm5hbWU+CisgIDxmOndpZHRoPjgwPC9mOndpZHRoPgorICA8ZjpsZW5ndGg+MTIwPC9mOmxlbmd0aD4KKzwvZjp0YWJsZT4KKzwvcm9vdD4KKyIiIgogCiBkZWYgc2FuaXR5KCk6CiAgICAgIiIiCkBAIC0xODgsMTAgKzIxMCw4IEBACiAKICAgICBUaGVzZSBtZXRob2RzIHJldHVybiBhbiBpdGVyYWJsZS4gU2VlIGJ1ZyA2NDcyLgogCi0gICAgPj4+IGNoZWNrX21ldGhvZChlbGVtZW50Lml0ZXIoInRhZyIpLl9fbmV4dF9fKQogICAgID4+PiBjaGVja19tZXRob2QoZWxlbWVudC5pdGVyZmluZCgidGFnIikuX19uZXh0X18pCiAgICAgPj4+IGNoZWNrX21ldGhvZChlbGVtZW50Lml0ZXJmaW5kKCIqIikuX19uZXh0X18pCi0gICAgPj4+IGNoZWNrX21ldGhvZCh0cmVlLml0ZXIoInRhZyIpLl9fbmV4dF9fKQogICAgID4+PiBjaGVja19tZXRob2QodHJlZS5pdGVyZmluZCgidGFnIikuX19uZXh0X18pCiAgICAgPj4+IGNoZWNrX21ldGhvZCh0cmVlLml0ZXJmaW5kKCIqIikuX19uZXh0X18pCiAKQEAgLTI3MCw0MiArMjkwLDYgQEAKICAgICAnPHRhZz5oZWxsbzwvdGFnPicKICAgICAiIiIKIAotIyBPbmx5IHdpdGggUHl0aG9uIGltcGxlbWVudGF0aW9uCi1kZWYgc2ltcGxlZmluZCgpOgotICAgICIiIgotICAgIFRlc3QgZmluZCBtZXRob2RzIHVzaW5nIHRoZSBlbGVtZW50cGF0aCBmYWxsYmFjay4KLQotICAgID4+PiBmcm9tIHhtbC5ldHJlZSBpbXBvcnQgRWxlbWVudFRyZWUKLQotICAgID4+PiBDdXJyZW50RWxlbWVudFBhdGggPSBFbGVtZW50VHJlZS5FbGVtZW50UGF0aAotICAgID4+PiBFbGVtZW50VHJlZS5FbGVtZW50UGF0aCA9IEVsZW1lbnRUcmVlLl9TaW1wbGVFbGVtZW50UGF0aCgpCi0gICAgPj4+IGVsZW0gPSBFbGVtZW50VHJlZS5YTUwoU0FNUExFX1hNTCkKLSAgICA+Pj4gZWxlbS5maW5kKCJ0YWciKS50YWcKLSAgICAndGFnJwotICAgID4+PiBFbGVtZW50VHJlZS5FbGVtZW50VHJlZShlbGVtKS5maW5kKCJ0YWciKS50YWcKLSAgICAndGFnJwotICAgID4+PiBlbGVtLmZpbmR0ZXh0KCJ0YWciKQotICAgICd0ZXh0JwotICAgID4+PiBlbGVtLmZpbmR0ZXh0KCJ0b2ciKQotICAgID4+PiBlbGVtLmZpbmR0ZXh0KCJ0b2ciLCAiZGVmYXVsdCIpCi0gICAgJ2RlZmF1bHQnCi0gICAgPj4+IEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlKGVsZW0pLmZpbmR0ZXh0KCJ0YWciKQotICAgICd0ZXh0JwotICAgID4+PiBzdW1tYXJpemVfbGlzdChlbGVtLmZpbmRhbGwoInRhZyIpKQotICAgIFsndGFnJywgJ3RhZyddCi0gICAgPj4+IHN1bW1hcml6ZV9saXN0KGVsZW0uZmluZGFsbCgiLi8vdGFnIikpCi0gICAgWyd0YWcnLCAndGFnJywgJ3RhZyddCi0KLSAgICBQYXRoIHN5bnRheCBkb2Vzbid0IHdvcmsgaW4gdGhpcyBjYXNlLgotCi0gICAgPj4+IGVsZW0uZmluZCgic2VjdGlvbi90YWciKQotICAgID4+PiBlbGVtLmZpbmR0ZXh0KCJzZWN0aW9uL3RhZyIpCi0gICAgPj4+IHN1bW1hcml6ZV9saXN0KGVsZW0uZmluZGFsbCgic2VjdGlvbi90YWciKSkKLSAgICBbXQotCi0gICAgPj4+IEVsZW1lbnRUcmVlLkVsZW1lbnRQYXRoID0gQ3VycmVudEVsZW1lbnRQYXRoCi0gICAgIiIiCi0KIGRlZiBmaW5kKCk6CiAgICAgIiIiCiAgICAgVGVzdCBmaW5kIG1ldGhvZHMgKGluY2x1ZGluZyB4cGF0aCBzeW50YXgpLgpAQCAtNDYwLDE3ICs0NDQsMTkgQEAKICAgICAiIiIKICAgICBDaGVjayB0aGF0IHRoZSBwYXRoIGNhY2hlIGJlaGF2ZXMgc2FuZWx5LgogCisgICAgPj4+IGZyb20geG1sLmV0cmVlIGltcG9ydCBFbGVtZW50UGF0aAorCiAgICAgPj4+IGVsZW0gPSBFVC5YTUwoU0FNUExFX1hNTCkKICAgICA+Pj4gZm9yIGkgaW4gcmFuZ2UoMTApOiBFVC5FbGVtZW50VHJlZShlbGVtKS5maW5kKCcuLycrc3RyKGkpKQotICAgID4+PiBjYWNoZV9sZW5fMTAgPSBsZW4oRVQuRWxlbWVudFBhdGguX2NhY2hlKQorICAgID4+PiBjYWNoZV9sZW5fMTAgPSBsZW4oRWxlbWVudFBhdGguX2NhY2hlKQogICAgID4+PiBmb3IgaSBpbiByYW5nZSgxMCk6IEVULkVsZW1lbnRUcmVlKGVsZW0pLmZpbmQoJy4vJytzdHIoaSkpCi0gICAgPj4+IGxlbihFVC5FbGVtZW50UGF0aC5fY2FjaGUpID09IGNhY2hlX2xlbl8xMAorICAgID4+PiBsZW4oRWxlbWVudFBhdGguX2NhY2hlKSA9PSBjYWNoZV9sZW5fMTAKICAgICBUcnVlCiAgICAgPj4+IGZvciBpIGluIHJhbmdlKDIwKTogRVQuRWxlbWVudFRyZWUoZWxlbSkuZmluZCgnLi8nK3N0cihpKSkKLSAgICA+Pj4gbGVuKEVULkVsZW1lbnRQYXRoLl9jYWNoZSkgPiBjYWNoZV9sZW5fMTAKKyAgICA+Pj4gbGVuKEVsZW1lbnRQYXRoLl9jYWNoZSkgPiBjYWNoZV9sZW5fMTAKICAgICBUcnVlCiAgICAgPj4+IGZvciBpIGluIHJhbmdlKDYwMCk6IEVULkVsZW1lbnRUcmVlKGVsZW0pLmZpbmQoJy4vJytzdHIoaSkpCi0gICAgPj4+IGxlbihFVC5FbGVtZW50UGF0aC5fY2FjaGUpIDwgNTAwCisgICAgPj4+IGxlbihFbGVtZW50UGF0aC5fY2FjaGUpIDwgNTAwCiAgICAgVHJ1ZQogICAgICIiIgogCkBAIC05NzksMzYgKzk2NSw2IEBACiAgICAgJzEgPCAyXG4nCiAgICAgIiIiCiAKLWRlZiBpdGVyYXRvcnMoKToKLSAgICAiIiIKLSAgICBUZXN0IGl0ZXJhdG9ycy4KLQotICAgID4+PiBlID0gRVQuWE1MKCI8aHRtbD48Ym9keT50aGlzIGlzIGEgPGk+cGFyYWdyYXBoPC9pPi48L2JvZHk+Li48L2h0bWw+IikKLSAgICA+Pj4gc3VtbWFyaXplX2xpc3QoZS5pdGVyKCkpCi0gICAgWydodG1sJywgJ2JvZHknLCAnaSddCi0gICAgPj4+IHN1bW1hcml6ZV9saXN0KGUuZmluZCgiYm9keSIpLml0ZXIoKSkKLSAgICBbJ2JvZHknLCAnaSddCi0gICAgPj4+IHN1bW1hcml6ZShuZXh0KGUuaXRlcigpKSkKLSAgICAnaHRtbCcKLSAgICA+Pj4gIiIuam9pbihlLml0ZXJ0ZXh0KCkpCi0gICAgJ3RoaXMgaXMgYSBwYXJhZ3JhcGguLi4nCi0gICAgPj4+ICIiLmpvaW4oZS5maW5kKCJib2R5IikuaXRlcnRleHQoKSkKLSAgICAndGhpcyBpcyBhIHBhcmFncmFwaC4nCi0gICAgPj4+IG5leHQoZS5pdGVydGV4dCgpKQotICAgICd0aGlzIGlzIGEgJwotCi0gICAgTWV0aG9kIGl0ZXJwYXJzZSBzaG91bGQgcmV0dXJuIGFuIGl0ZXJhdG9yLiBTZWUgYnVnIDY0NzIuCi0KLSAgICA+Pj4gc291cmNlZmlsZSA9IHNlcmlhbGl6ZShlLCB0b19zdHJpbmc9RmFsc2UpCi0gICAgPj4+IG5leHQoRVQuaXRlcnBhcnNlKHNvdXJjZWZpbGUpKSAgIyBkb2N0ZXN0OiArRUxMSVBTSVMKLSAgICAoJ2VuZCcsIDxFbGVtZW50ICdpJyBhdCAweC4uLj4pCi0KLSAgICA+Pj4gdHJlZSA9IEVULkVsZW1lbnRUcmVlKE5vbmUpCi0gICAgPj4+IHRyZWUuaXRlcigpCi0gICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgotICAgIEF0dHJpYnV0ZUVycm9yOiAnTm9uZVR5cGUnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICdpdGVyJwotICAgICIiIgotCiBFTlRJVFlfWE1MID0gIiIiXAogPCFET0NUWVBFIHBvaW50cyBbCiA8IUVOVElUWSAlIHVzZXItZW50aXRpZXMgU1lTVEVNICd1c2VyLWVudGl0aWVzLnhtbCc+CkBAIC0xMDQ5LDI2ICsxMDA1LDYgQEAKICAgICAnPGRvY3VtZW50PnRleHQ8L2RvY3VtZW50PicKICAgICAiIiIKIAotZGVmIGVycm9yKHhtbCk6Ci0gICAgIiIiCi0KLSAgICBUZXN0IGVycm9yIGhhbmRsaW5nLgotCi0gICAgPj4+IGlzc3ViY2xhc3MoRVQuUGFyc2VFcnJvciwgU3ludGF4RXJyb3IpCi0gICAgVHJ1ZQotICAgID4+PiBlcnJvcigiZm9vIikucG9zaXRpb24KLSAgICAoMSwgMCkKLSAgICA+Pj4gZXJyb3IoIjx0YWc+JmZvbzs8L3RhZz4iKS5wb3NpdGlvbgotICAgICgxLCA1KQotICAgID4+PiBlcnJvcigiZm9vYmFyPCIpLnBvc2l0aW9uCi0gICAgKDEsIDYpCi0KLSAgICAiIiIKLSAgICB0cnk6Ci0gICAgICAgIEVULlhNTCh4bWwpCi0gICAgZXhjZXB0IEVULlBhcnNlRXJyb3I6Ci0gICAgICAgIHJldHVybiBzeXMuZXhjX2luZm8oKVsxXQotCiBkZWYgbmFtZXNwYWNlKCk6CiAgICAgIiIiCiAgICAgVGVzdCBuYW1lc3BhY2UgaXNzdWVzLgpAQCAtMTI1Niw4ICsxMTkyLDggQEAKIAogICAgID4+PiBFVC50b3N0cmluZyhFVC5QSSgndGVzdCcsICc8dGVzdGluZyY+JykpCiAgICAgYic8P3Rlc3QgPHRlc3RpbmcmPj8+JwotICAgID4+PiBFVC50b3N0cmluZyhFVC5QSSgndGVzdCcsICc8dGVzdGluZyY+XHhlMycpLCAnbGF0aW4xJykKLSAgICBiIjw/eG1sIHZlcnNpb249JzEuMCcgZW5jb2Rpbmc9J2xhdGluMSc/Plxcbjw/dGVzdCA8dGVzdGluZyY+XFx4ZTM/PiIKKyAgICA+Pj4gRVQudG9zdHJpbmcoRVQuUEkoJ3Rlc3QnLCAnPHRlc3RpbmcmPlx4ZTMnKSwgJ2xhdGluLTEnKQorICAgIGIiPD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nbGF0aW4tMSc/Plxcbjw/dGVzdCA8dGVzdGluZyY+XFx4ZTM/PiIKICAgICAiIiIKIAogIwpAQCAtMTMzNiwyMSArMTI3MiwyMCBAQAogPC9kb2N1bWVudD4KICIiIi5mb3JtYXQoaHRtbC5lc2NhcGUoU0lNUExFX1hNTEZJTEUsIFRydWUpKQogCisKIGRlZiB4aW5jbHVkZV9sb2FkZXIoaHJlZiwgcGFyc2U9InhtbCIsIGVuY29kaW5nPU5vbmUpOgogICAgIHRyeToKICAgICAgICAgZGF0YSA9IFhJTkNMVURFW2hyZWZdCiAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICByYWlzZSBJT0Vycm9yKCJyZXNvdXJjZSBub3QgZm91bmQiKQorICAgICAgICByYWlzZSBPU0Vycm9yKCJyZXNvdXJjZSBub3QgZm91bmQiKQogICAgIGlmIHBhcnNlID09ICJ4bWwiOgotICAgICAgICBmcm9tIHhtbC5ldHJlZS5FbGVtZW50VHJlZSBpbXBvcnQgWE1MCi0gICAgICAgIHJldHVybiBYTUwoZGF0YSkKKyAgICAgICAgZGF0YSA9IEVULlhNTChkYXRhKQogICAgIHJldHVybiBkYXRhCiAKIGRlZiB4aW5jbHVkZSgpOgogICAgIHIiIiIKICAgICBCYXNpYyBpbmNsdXNpb24gZXhhbXBsZSAoWEluY2x1ZGUgQy4xKQogCi0gICAgPj4+IGZyb20geG1sLmV0cmVlIGltcG9ydCBFbGVtZW50VHJlZSBhcyBFVAogICAgID4+PiBmcm9tIHhtbC5ldHJlZSBpbXBvcnQgRWxlbWVudEluY2x1ZGUKIAogICAgID4+PiBkb2N1bWVudCA9IHhpbmNsdWRlX2xvYWRlcigiQzEueG1sIikKQEAgLTE0MDUsMjYgKzEzNDAsMTAgQEAKICAgICA+Pj4gZG9jdW1lbnQgPSB4aW5jbHVkZV9sb2FkZXIoIkM1LnhtbCIpCiAgICAgPj4+IEVsZW1lbnRJbmNsdWRlLmluY2x1ZGUoZG9jdW1lbnQsIHhpbmNsdWRlX2xvYWRlcikKICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Ci0gICAgSU9FcnJvcjogcmVzb3VyY2Ugbm90IGZvdW5kCisgICAgT1NFcnJvcjogcmVzb3VyY2Ugbm90IGZvdW5kCiAgICAgPj4+ICMgcHJpbnQoc2VyaWFsaXplKGRvY3VtZW50KSkgIyBDNQogICAgICIiIgogCi1kZWYgeGluY2x1ZGVfZGVmYXVsdCgpOgotICAgICIiIgotICAgID4+PiBmcm9tIHhtbC5ldHJlZSBpbXBvcnQgRWxlbWVudEluY2x1ZGUKLQotICAgID4+PiBkb2N1bWVudCA9IHhpbmNsdWRlX2xvYWRlcigiZGVmYXVsdC54bWwiKQotICAgID4+PiBFbGVtZW50SW5jbHVkZS5pbmNsdWRlKGRvY3VtZW50KQotICAgID4+PiBwcmludChzZXJpYWxpemUoZG9jdW1lbnQpKSAjIGRlZmF1bHQKLSAgICA8ZG9jdW1lbnQ+Ci0gICAgICA8cD5FeGFtcGxlLjwvcD4KLSAgICAgIDxyb290PgotICAgICAgIDxlbGVtZW50IGtleT0idmFsdWUiPnRleHQ8L2VsZW1lbnQ+Ci0gICAgICAgPGVsZW1lbnQ+dGV4dDwvZWxlbWVudD50YWlsCi0gICAgICAgPGVtcHR5LWVsZW1lbnQgLz4KLSAgICA8L3Jvb3Q+Ci0gICAgPC9kb2N1bWVudD4KLSAgICAiIiIKIAogIwogIyBiYWRseSBmb3JtYXR0ZWQgeGk6aW5jbHVkZSB0YWdzCkBAIC0xNjEyLDcgKzE1MzEsNyBAQAogCiBjbGFzcyBFeGNlcHRpb25GaWxlOgogICAgIGRlZiByZWFkKHNlbGYsIHgpOgotICAgICAgICByYWlzZSBJT0Vycm9yCisgICAgICAgIHJhaXNlIE9TRXJyb3IKIAogZGVmIHhtbHRvb2xraXQ2MCgpOgogICAgICIiIgpAQCAtMTYyMCw3ICsxNTM5LDcgQEAKICAgICBIYW5kbGUgY3Jhc2ggaW4gc3RyZWFtIHNvdXJjZS4KICAgICA+Pj4gdHJlZSA9IEVULnBhcnNlKEV4Y2VwdGlvbkZpbGUoKSkKICAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Ci0gICAgSU9FcnJvcgorICAgIE9TRXJyb3IKIAogICAgICIiIgogCkBAIC0xODU0LDYgKzE3NzMsNDc3IEBACiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIAorY2xhc3MgQmFzaWNFbGVtZW50VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfYXVnbWVudGF0aW9uX3R5cGVfZXJyb3JzKHNlbGYpOgorICAgICAgICBlID0gRVQuRWxlbWVudCgnam9lJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBlLmFwcGVuZCwgJ2InKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGUuZXh0ZW5kLCBbRVQuRWxlbWVudCgnYmFyJyksICdmb28nXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBlLmluc2VydCwgMCwgJ2ZvbycpCisKKyAgICBkZWYgdGVzdF9jeWNsaWNfZ2Moc2VsZik6CisgICAgICAgIGNsYXNzIER1bW15OgorICAgICAgICAgICAgcGFzcworCisgICAgICAgICMgVGVzdCB0aGUgc2hvcnRlc3QgY3ljbGU6IGQtPmVsZW1lbnQtPmQKKyAgICAgICAgZCA9IER1bW15KCkKKyAgICAgICAgZC5kdW1teXJlZiA9IEVULkVsZW1lbnQoJ2pvZScsIGF0dHI9ZCkKKyAgICAgICAgd3JlZiA9IHdlYWtyZWYucmVmKGQpCisgICAgICAgIGRlbCBkCisgICAgICAgIGdjX2NvbGxlY3QoKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh3cmVmKCkpCisKKyAgICAgICAgIyBBIGxvbmdlciBjeWNsZTogZC0+ZS0+ZTItPmQKKyAgICAgICAgZSA9IEVULkVsZW1lbnQoJ2pvZScpCisgICAgICAgIGQgPSBEdW1teSgpCisgICAgICAgIGQuZHVtbXlyZWYgPSBlCisgICAgICAgIHdyZWYgPSB3ZWFrcmVmLnJlZihkKQorICAgICAgICBlMiA9IEVULlN1YkVsZW1lbnQoZSwgJ2ZvbycsIGF0dHI9ZCkKKyAgICAgICAgZGVsIGQsIGUsIGUyCisgICAgICAgIGdjX2NvbGxlY3QoKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZSh3cmVmKCkpCisKKyAgICAgICAgIyBBIGN5Y2xlIGJldHdlZW4gRWxlbWVudCBvYmplY3RzIGFzIGNoaWxkcmVuIG9mIG9uZSBhbm90aGVyCisgICAgICAgICMgZTEtPmUyLT5lMy0+ZTEKKyAgICAgICAgZTEgPSBFVC5FbGVtZW50KCdlMScpCisgICAgICAgIGUyID0gRVQuRWxlbWVudCgnZTInKQorICAgICAgICBlMyA9IEVULkVsZW1lbnQoJ2UzJykKKyAgICAgICAgZTEuYXBwZW5kKGUyKQorICAgICAgICBlMi5hcHBlbmQoZTIpCisgICAgICAgIGUzLmFwcGVuZChlMSkKKyAgICAgICAgd3JlZiA9IHdlYWtyZWYucmVmKGUxKQorICAgICAgICBkZWwgZTEsIGUyLCBlMworICAgICAgICBnY19jb2xsZWN0KCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUod3JlZigpKQorCisgICAgZGVmIHRlc3Rfd2Vha3JlZihzZWxmKToKKyAgICAgICAgZmxhZyA9IEZhbHNlCisgICAgICAgIGRlZiB3cmVmX2NiKHcpOgorICAgICAgICAgICAgbm9ubG9jYWwgZmxhZworICAgICAgICAgICAgZmxhZyA9IFRydWUKKyAgICAgICAgZSA9IEVULkVsZW1lbnQoJ2UnKQorICAgICAgICB3cmVmID0gd2Vha3JlZi5yZWYoZSwgd3JlZl9jYikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmVmKCkudGFnLCAnZScpCisgICAgICAgIGRlbCBlCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZmxhZywgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh3cmVmKCksIE5vbmUpCisKKworY2xhc3MgRWxlbWVudFRyZWVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9pc3R5cGUoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShFVC5QYXJzZUVycm9yLCB0eXBlKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoRVQuUU5hbWUsIHR5cGUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShFVC5FbGVtZW50VHJlZSwgdHlwZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKEVULkVsZW1lbnQsIHR5cGUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShFVC5UcmVlQnVpbGRlciwgdHlwZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKEVULlhNTFBhcnNlciwgdHlwZSkKKworICAgIGRlZiB0ZXN0X0VsZW1lbnRfc3ViY2xhc3NfdHJpdmlhbChzZWxmKToKKyAgICAgICAgY2xhc3MgTXlFbGVtZW50KEVULkVsZW1lbnQpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG15ZSA9IE15RWxlbWVudCgnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG15ZSwgRVQuRWxlbWVudCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG15ZSwgTXlFbGVtZW50KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG15ZS50YWcsICdmb28nKQorCisgICAgICAgICMgdGVzdCB0aGF0IGF0dHJpYnV0ZSBhc3NpZ25tZW50IHdvcmtzIChpc3N1ZSAxNDg0OSkKKyAgICAgICAgbXllLnRleHQgPSAiam9lIgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG15ZS50ZXh0LCAiam9lIikKKworICAgIGRlZiB0ZXN0X0VsZW1lbnRfc3ViY2xhc3NfY29uc3RydWN0b3Ioc2VsZik6CisgICAgICAgIGNsYXNzIE15RWxlbWVudChFVC5FbGVtZW50KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YWcsIGF0dHJpYj17fSwgKipleHRyYSk6CisgICAgICAgICAgICAgICAgc3VwZXIoTXlFbGVtZW50LCBzZWxmKS5fX2luaXRfXyh0YWcgKyAnX18nLCBhdHRyaWIsICoqZXh0cmEpCisKKyAgICAgICAgbXllID0gTXlFbGVtZW50KCdmb28nLCB7J2EnOiAxLCAnYic6IDJ9LCBjPTMsIGQ9NCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChteWUudGFnLCAnZm9vX18nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvcnRlZChteWUuaXRlbXMoKSksCisgICAgICAgICAgICBbKCdhJywgMSksICgnYicsIDIpLCAoJ2MnLCAzKSwgKCdkJywgNCldKQorCisgICAgZGVmIHRlc3RfRWxlbWVudF9zdWJjbGFzc19uZXdfbWV0aG9kKHNlbGYpOgorICAgICAgICBjbGFzcyBNeUVsZW1lbnQoRVQuRWxlbWVudCk6CisgICAgICAgICAgICBkZWYgbmV3bWV0aG9kKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnRhZworCisgICAgICAgIG15ZSA9IE15RWxlbWVudCgnam9lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChteWUubmV3bWV0aG9kKCksICdqb2UnKQorCisKK2NsYXNzIEVsZW1lbnRJdGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIF9pbGlzdChzZWxmLCBlbGVtLCB0YWc9Tm9uZSk6CisgICAgICAgIHJldHVybiBzdW1tYXJpemVfbGlzdChlbGVtLml0ZXIodGFnKSkKKworICAgIGRlZiB0ZXN0X2Jhc2ljKHNlbGYpOgorICAgICAgICBkb2MgPSBFVC5YTUwoIjxodG1sPjxib2R5PnRoaXMgaXMgYSA8aT5wYXJhZ3JhcGg8L2k+LjwvYm9keT4uLjwvaHRtbD4iKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2lsaXN0KGRvYyksIFsnaHRtbCcsICdib2R5JywgJ2knXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9pbGlzdChkb2MuZmluZCgnYm9keScpKSwgWydib2R5JywgJ2knXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXh0KGRvYy5pdGVyKCkpLnRhZywgJ2h0bWwnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLmpvaW4oZG9jLml0ZXJ0ZXh0KCkpLCAndGhpcyBpcyBhIHBhcmFncmFwaC4uLicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycuam9pbihkb2MuZmluZCgnYm9keScpLml0ZXJ0ZXh0KCkpLAorICAgICAgICAgICAgJ3RoaXMgaXMgYSBwYXJhZ3JhcGguJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXh0KGRvYy5pdGVydGV4dCgpKSwgJ3RoaXMgaXMgYSAnKQorCisgICAgICAgICMgaXRlcnBhcnNlIHNob3VsZCByZXR1cm4gYW4gaXRlcmF0b3IKKyAgICAgICAgc291cmNlZmlsZSA9IHNlcmlhbGl6ZShkb2MsIHRvX3N0cmluZz1GYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXh0KEVULml0ZXJwYXJzZShzb3VyY2VmaWxlKSlbMF0sICdlbmQnKQorCisgICAgICAgIHRyZWUgPSBFVC5FbGVtZW50VHJlZShOb25lKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgdHJlZS5pdGVyKQorCisgICAgZGVmIHRlc3RfY29ybmVycyhzZWxmKToKKyAgICAgICAgIyBzaW5nbGUgcm9vdCwgbm8gc3ViZWxlbWVudHMKKyAgICAgICAgYSA9IEVULkVsZW1lbnQoJ2EnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2lsaXN0KGEpLCBbJ2EnXSkKKworICAgICAgICAjIG9uZSBjaGlsZAorICAgICAgICBiID0gRVQuU3ViRWxlbWVudChhLCAnYicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5faWxpc3QoYSksIFsnYScsICdiJ10pCisKKyAgICAgICAgIyBvbmUgY2hpbGQgYW5kIG9uZSBncmFuZGNoaWxkCisgICAgICAgIGMgPSBFVC5TdWJFbGVtZW50KGIsICdjJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9pbGlzdChhKSwgWydhJywgJ2InLCAnYyddKQorCisgICAgICAgICMgdHdvIGNoaWxkcmVuLCBvbmx5IGZpcnN0IHdpdGggZ3JhbmRjaGlsZAorICAgICAgICBkID0gRVQuU3ViRWxlbWVudChhLCAnZCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5faWxpc3QoYSksIFsnYScsICdiJywgJ2MnLCAnZCddKQorCisgICAgICAgICMgcmVwbGFjZSBmaXJzdCBjaGlsZCBieSBzZWNvbmQKKyAgICAgICAgYVswXSA9IGFbMV0KKyAgICAgICAgZGVsIGFbMV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9pbGlzdChhKSwgWydhJywgJ2QnXSkKKworICAgIGRlZiB0ZXN0X2l0ZXJfYnlfdGFnKHNlbGYpOgorICAgICAgICBkb2MgPSBFVC5YTUwoJycnCisgICAgICAgICAgICA8ZG9jdW1lbnQ+CisgICAgICAgICAgICAgICAgPGhvdXNlPgorICAgICAgICAgICAgICAgICAgICA8cm9vbT5iZWRyb29tMTwvcm9vbT4KKyAgICAgICAgICAgICAgICAgICAgPHJvb20+YmVkcm9vbTI8L3Jvb20+CisgICAgICAgICAgICAgICAgPC9ob3VzZT4KKyAgICAgICAgICAgICAgICA8c2hlZD5ub3RoaW5nIGhlcmUKKyAgICAgICAgICAgICAgICA8L3NoZWQ+CisgICAgICAgICAgICAgICAgPGhvdXNlPgorICAgICAgICAgICAgICAgICAgICA8cm9vbT5iZWRyb29tODwvcm9vbT4KKyAgICAgICAgICAgICAgICA8L2hvdXNlPgorICAgICAgICAgICAgPC9kb2N1bWVudD4nJycpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9pbGlzdChkb2MsICdyb29tJyksIFsncm9vbSddICogMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9pbGlzdChkb2MsICdob3VzZScpLCBbJ2hvdXNlJ10gKiAyKQorCisgICAgICAgICMgbWFrZSBzdXJlIGJvdGggdGFnPU5vbmUgYW5kIHRhZz0nKicgcmV0dXJuIGFsbCB0YWdzCisgICAgICAgIGFsbF90YWdzID0gWydkb2N1bWVudCcsICdob3VzZScsICdyb29tJywgJ3Jvb20nLAorICAgICAgICAgICAgICAgICAgICAnc2hlZCcsICdob3VzZScsICdyb29tJ10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9pbGlzdChkb2MpLCBhbGxfdGFncykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9pbGlzdChkb2MsICcqJyksIGFsbF90YWdzKQorCisKK2NsYXNzIFRyZWVCdWlsZGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgc2FtcGxlMSA9ICgnPCFET0NUWVBFIGh0bWwgUFVCTElDJworICAgICAgICAnICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiInCisgICAgICAgICcgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPicKKyAgICAgICAgJzxodG1sPnRleHQ8L2h0bWw+JykKKworICAgIHNhbXBsZTIgPSAnJyc8dG9wbGV2ZWw+c29tZXRleHQ8L3RvcGxldmVsPicnJworCisgICAgZGVmIHRlc3RfZHVtbXlfYnVpbGRlcihzZWxmKToKKyAgICAgICAgY2xhc3MgQmFzZUR1bW15QnVpbGRlcjoKKyAgICAgICAgICAgIGRlZiBjbG9zZShzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gNDIKKworICAgICAgICBjbGFzcyBEdW1teUJ1aWxkZXIoQmFzZUR1bW15QnVpbGRlcik6CisgICAgICAgICAgICBkYXRhID0gc3RhcnQgPSBlbmQgPSBsYW1iZGEgKmE6IE5vbmUKKworICAgICAgICBwYXJzZXIgPSBFVC5YTUxQYXJzZXIodGFyZ2V0PUR1bW15QnVpbGRlcigpKQorICAgICAgICBwYXJzZXIuZmVlZChzZWxmLnNhbXBsZTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyc2VyLmNsb3NlKCksIDQyKQorCisgICAgICAgIHBhcnNlciA9IEVULlhNTFBhcnNlcih0YXJnZXQ9QmFzZUR1bW15QnVpbGRlcigpKQorICAgICAgICBwYXJzZXIuZmVlZChzZWxmLnNhbXBsZTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFyc2VyLmNsb3NlKCksIDQyKQorCisgICAgICAgIHBhcnNlciA9IEVULlhNTFBhcnNlcih0YXJnZXQ9b2JqZWN0KCkpCisgICAgICAgIHBhcnNlci5mZWVkKHNlbGYuc2FtcGxlMSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocGFyc2VyLmNsb3NlKCkpCisKKyAgICBkZWYgdGVzdF9zdWJjbGFzcyhzZWxmKToKKyAgICAgICAgY2xhc3MgTXlUcmVlQnVpbGRlcihFVC5UcmVlQnVpbGRlcik6CisgICAgICAgICAgICBkZWYgZm9vYmFyKHNlbGYsIHgpOgorICAgICAgICAgICAgICAgIHJldHVybiB4ICogMgorCisgICAgICAgIHRiID0gTXlUcmVlQnVpbGRlcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGIuZm9vYmFyKDEwKSwgMjApCisKKyAgICAgICAgcGFyc2VyID0gRVQuWE1MUGFyc2VyKHRhcmdldD10YikKKyAgICAgICAgcGFyc2VyLmZlZWQoc2VsZi5zYW1wbGUxKQorCisgICAgICAgIGUgPSBwYXJzZXIuY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUudGFnLCAnaHRtbCcpCisKKyAgICBkZWYgdGVzdF9lbGVtZW50X2ZhY3Rvcnkoc2VsZik6CisgICAgICAgIGxzdCA9IFtdCisgICAgICAgIGRlZiBteWZhY3RvcnkodGFnLCBhdHRyaWIpOgorICAgICAgICAgICAgbm9ubG9jYWwgbHN0CisgICAgICAgICAgICBsc3QuYXBwZW5kKHRhZykKKyAgICAgICAgICAgIHJldHVybiBFVC5FbGVtZW50KHRhZywgYXR0cmliKQorCisgICAgICAgIHRiID0gRVQuVHJlZUJ1aWxkZXIoZWxlbWVudF9mYWN0b3J5PW15ZmFjdG9yeSkKKyAgICAgICAgcGFyc2VyID0gRVQuWE1MUGFyc2VyKHRhcmdldD10YikKKyAgICAgICAgcGFyc2VyLmZlZWQoc2VsZi5zYW1wbGUyKQorICAgICAgICBwYXJzZXIuY2xvc2UoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobHN0LCBbJ3RvcGxldmVsJ10pCisKKyAgICBkZWYgdGVzdF9kb2N0eXBlKHNlbGYpOgorICAgICAgICBjbGFzcyBEb2N0eXBlUGFyc2VyOgorICAgICAgICAgICAgX2RvY3R5cGUgPSBOb25lCisKKyAgICAgICAgICAgIGRlZiBkb2N0eXBlKHNlbGYsIG5hbWUsIHB1YmlkLCBzeXN0ZW0pOgorICAgICAgICAgICAgICAgIHNlbGYuX2RvY3R5cGUgPSAobmFtZSwgcHViaWQsIHN5c3RlbSkKKworICAgICAgICAgICAgZGVmIGNsb3NlKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9kb2N0eXBlCisKKyAgICAgICAgcGFyc2VyID0gRVQuWE1MUGFyc2VyKHRhcmdldD1Eb2N0eXBlUGFyc2VyKCkpCisgICAgICAgIHBhcnNlci5mZWVkKHNlbGYuc2FtcGxlMSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBhcnNlci5jbG9zZSgpLAorICAgICAgICAgICAgKCdodG1sJywgJy0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOJywKKyAgICAgICAgICAgICAnaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCcpKQorCisKK2NsYXNzIFhpbmNsdWRlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIF9teV9sb2FkZXIoc2VsZiwgaHJlZiwgcGFyc2UpOgorICAgICAgICAjIFVzZWQgdG8gYXZvaWQgYSB0ZXN0LWRlcGVuZGVuY3kgcHJvYmxlbSB3aGVyZSB0aGUgZGVmYXVsdCBsb2FkZXIKKyAgICAgICAgIyBvZiBFbGVtZW50SW5jbHVkZSB1c2VzIHRoZSBweUVUIHBhcnNlciBmb3IgY0VUIHRlc3RzLgorICAgICAgICBpZiBwYXJzZSA9PSAneG1sJzoKKyAgICAgICAgICAgIHdpdGggb3BlbihocmVmLCAncmInKSBhcyBmOgorICAgICAgICAgICAgICAgIHJldHVybiBFVC5wYXJzZShmKS5nZXRyb290KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgdGVzdF94aW5jbHVkZV9kZWZhdWx0KHNlbGYpOgorICAgICAgICBmcm9tIHhtbC5ldHJlZSBpbXBvcnQgRWxlbWVudEluY2x1ZGUKKyAgICAgICAgZG9jID0geGluY2x1ZGVfbG9hZGVyKCdkZWZhdWx0LnhtbCcpCisgICAgICAgIEVsZW1lbnRJbmNsdWRlLmluY2x1ZGUoZG9jLCBzZWxmLl9teV9sb2FkZXIpCisgICAgICAgIHMgPSBzZXJpYWxpemUoZG9jKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuc3RyaXAoKSwgJycnPGRvY3VtZW50PgorICA8cD5FeGFtcGxlLjwvcD4KKyAgPHJvb3Q+CisgICA8ZWxlbWVudCBrZXk9InZhbHVlIj50ZXh0PC9lbGVtZW50PgorICAgPGVsZW1lbnQ+dGV4dDwvZWxlbWVudD50YWlsCisgICA8ZW1wdHktZWxlbWVudCAvPgorPC9yb290PgorPC9kb2N1bWVudD4nJycpCisKKworY2xhc3MgWE1MUGFyc2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgc2FtcGxlMSA9ICc8ZmlsZT48bGluZT4yMjwvbGluZT48L2ZpbGU+JworICAgIHNhbXBsZTIgPSAoJzwhRE9DVFlQRSBodG1sIFBVQkxJQycKKyAgICAgICAgJyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iJworICAgICAgICAnICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4nCisgICAgICAgICc8aHRtbD50ZXh0PC9odG1sPicpCisKKyAgICBkZWYgX2NoZWNrX3NhbXBsZV9lbGVtZW50KHNlbGYsIGUpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUudGFnLCAnZmlsZScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZVswXS50YWcsICdsaW5lJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlWzBdLnRleHQsICcyMicpCisKKyAgICBkZWYgdGVzdF9jb25zdHJ1Y3Rvcl9hcmdzKHNlbGYpOgorICAgICAgICAjIFBvc2l0aW9uYWwgYXJncy4gVGhlIGZpcnN0IChodG1sKSBpcyBub3Qgc3VwcG9ydGVkLCBidXQgc2hvdWxkIGJlCisgICAgICAgICMgbmV2ZXJ0aGVsZXNzIGNvcnJlY3RseSBhY2NlcHRlZC4KKyAgICAgICAgcGFyc2VyID0gRVQuWE1MUGFyc2VyKE5vbmUsIEVULlRyZWVCdWlsZGVyKCksICd1dGYtOCcpCisgICAgICAgIHBhcnNlci5mZWVkKHNlbGYuc2FtcGxlMSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc2FtcGxlX2VsZW1lbnQocGFyc2VyLmNsb3NlKCkpCisKKyAgICAgICAgIyBOb3cgYXMga2V5d29yZCBhcmdzLgorICAgICAgICBwYXJzZXIyID0gRVQuWE1MUGFyc2VyKGVuY29kaW5nPSd1dGYtOCcsIGh0bWw9W3t9XSwgdGFyZ2V0PUVULlRyZWVCdWlsZGVyKCkpCisgICAgICAgIHBhcnNlcjIuZmVlZChzZWxmLnNhbXBsZTEpCisgICAgICAgIHNlbGYuX2NoZWNrX3NhbXBsZV9lbGVtZW50KHBhcnNlcjIuY2xvc2UoKSkKKworICAgIGRlZiB0ZXN0X3N1YmNsYXNzKHNlbGYpOgorICAgICAgICBjbGFzcyBNeVBhcnNlcihFVC5YTUxQYXJzZXIpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBwYXJzZXIgPSBNeVBhcnNlcigpCisgICAgICAgIHBhcnNlci5mZWVkKHNlbGYuc2FtcGxlMSkKKyAgICAgICAgc2VsZi5fY2hlY2tfc2FtcGxlX2VsZW1lbnQocGFyc2VyLmNsb3NlKCkpCisKKyAgICBkZWYgdGVzdF9zdWJjbGFzc19kb2N0eXBlKHNlbGYpOgorICAgICAgICBfZG9jdHlwZSA9IE5vbmUKKyAgICAgICAgY2xhc3MgTXlQYXJzZXJXaXRoRG9jdHlwZShFVC5YTUxQYXJzZXIpOgorICAgICAgICAgICAgZGVmIGRvY3R5cGUoc2VsZiwgbmFtZSwgcHViaWQsIHN5c3RlbSk6CisgICAgICAgICAgICAgICAgbm9ubG9jYWwgX2RvY3R5cGUKKyAgICAgICAgICAgICAgICBfZG9jdHlwZSA9IChuYW1lLCBwdWJpZCwgc3lzdGVtKQorCisgICAgICAgIHBhcnNlciA9IE15UGFyc2VyV2l0aERvY3R5cGUoKQorICAgICAgICBwYXJzZXIuZmVlZChzZWxmLnNhbXBsZTIpCisgICAgICAgIHBhcnNlci5jbG9zZSgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2RvY3R5cGUsCisgICAgICAgICAgICAoJ2h0bWwnLCAnLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4nLAorICAgICAgICAgICAgICdodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkJykpCisKKworY2xhc3MgTmFtZXNwYWNlUGFyc2VUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9maW5kX3dpdGhfbmFtZXNwYWNlKHNlbGYpOgorICAgICAgICBuc21hcCA9IHsnaCc6ICdoZWxsbycsICdmJzogJ2Zvbyd9CisgICAgICAgIGRvYyA9IEVULmZyb21zdHJpbmcoU0FNUExFX1hNTF9OU19FTEVNUykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihkb2MuZmluZGFsbCgne2hlbGxvfXRhYmxlJywgbnNtYXApKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZG9jLmZpbmRhbGwoJy4vL3toZWxsb310ZCcsIG5zbWFwKSksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGRvYy5maW5kYWxsKCcuLy97Zm9vfW5hbWUnLCBuc21hcCkpLCAxKQorCisKK2NsYXNzIEVsZW1lbnRTbGljaW5nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIF9lbGVtX3RhZ3Moc2VsZiwgZWxlbWxpc3QpOgorICAgICAgICByZXR1cm4gW2UudGFnIGZvciBlIGluIGVsZW1saXN0XQorCisgICAgZGVmIF9zdWJlbGVtX3RhZ3Moc2VsZiwgZWxlbSk6CisgICAgICAgIHJldHVybiBzZWxmLl9lbGVtX3RhZ3MobGlzdChlbGVtKSkKKworICAgIGRlZiBfbWFrZV9lbGVtX3dpdGhfY2hpbGRyZW4oc2VsZiwgbnVtY2hpbGRyZW4pOgorICAgICAgICAiIiJDcmVhdGUgYW4gRWxlbWVudCB3aXRoIGEgdGFnICdhJywgd2l0aCB0aGUgZ2l2ZW4gYW1vdW50IG9mIGNoaWxkcmVuCisgICAgICAgICAgIG5hbWVkICdhMCcsICdhMScgLi4uIGFuZCBzbyBvbi4KKworICAgICAgICAiIiIKKyAgICAgICAgZSA9IEVULkVsZW1lbnQoJ2EnKQorICAgICAgICBmb3IgaSBpbiByYW5nZShudW1jaGlsZHJlbik6CisgICAgICAgICAgICBFVC5TdWJFbGVtZW50KGUsICdhJXMnICUgaSkKKyAgICAgICAgcmV0dXJuIGUKKworICAgIGRlZiB0ZXN0X2dldHNsaWNlX3NpbmdsZV9pbmRleChzZWxmKToKKyAgICAgICAgZSA9IHNlbGYuX21ha2VfZWxlbV93aXRoX2NoaWxkcmVuKDEwKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZVsxXS50YWcsICdhMScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZVstMl0udGFnLCAnYTgnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEluZGV4RXJyb3IsIGxhbWJkYTogZVsxMl0pCisKKyAgICBkZWYgdGVzdF9nZXRzbGljZV9yYW5nZShzZWxmKToKKyAgICAgICAgZSA9IHNlbGYuX21ha2VfZWxlbV93aXRoX2NoaWxkcmVuKDYpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9lbGVtX3RhZ3MoZVszOl0pLCBbJ2EzJywgJ2E0JywgJ2E1J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZWxlbV90YWdzKGVbMzo2XSksIFsnYTMnLCAnYTQnLCAnYTUnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9lbGVtX3RhZ3MoZVszOjE2XSksIFsnYTMnLCAnYTQnLCAnYTUnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9lbGVtX3RhZ3MoZVszOjVdKSwgWydhMycsICdhNCddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2VsZW1fdGFncyhlWzM6LTFdKSwgWydhMycsICdhNCddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2VsZW1fdGFncyhlWzoyXSksIFsnYTAnLCAnYTEnXSkKKworICAgIGRlZiB0ZXN0X2dldHNsaWNlX3N0ZXBzKHNlbGYpOgorICAgICAgICBlID0gc2VsZi5fbWFrZV9lbGVtX3dpdGhfY2hpbGRyZW4oMTApCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9lbGVtX3RhZ3MoZVs4OjEwOjFdKSwgWydhOCcsICdhOSddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2VsZW1fdGFncyhlWzo6M10pLCBbJ2EwJywgJ2EzJywgJ2E2JywgJ2E5J10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZWxlbV90YWdzKGVbOjo4XSksIFsnYTAnLCAnYTgnXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9lbGVtX3RhZ3MoZVsxOjo4XSksIFsnYTEnLCAnYTknXSkKKworICAgIGRlZiB0ZXN0X2dldHNsaWNlX25lZ2F0aXZlX3N0ZXBzKHNlbGYpOgorICAgICAgICBlID0gc2VsZi5fbWFrZV9lbGVtX3dpdGhfY2hpbGRyZW4oNCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2VsZW1fdGFncyhlWzo6LTFdKSwgWydhMycsICdhMicsICdhMScsICdhMCddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2VsZW1fdGFncyhlWzo6LTJdKSwgWydhMycsICdhMSddKQorCisgICAgZGVmIHRlc3RfZGVsc2xpY2Uoc2VsZik6CisgICAgICAgIGUgPSBzZWxmLl9tYWtlX2VsZW1fd2l0aF9jaGlsZHJlbig0KQorICAgICAgICBkZWwgZVswOjJdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fc3ViZWxlbV90YWdzKGUpLCBbJ2EyJywgJ2EzJ10pCisKKyAgICAgICAgZSA9IHNlbGYuX21ha2VfZWxlbV93aXRoX2NoaWxkcmVuKDQpCisgICAgICAgIGRlbCBlWzA6XQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX3N1YmVsZW1fdGFncyhlKSwgW10pCisKKyAgICAgICAgZSA9IHNlbGYuX21ha2VfZWxlbV93aXRoX2NoaWxkcmVuKDQpCisgICAgICAgIGRlbCBlWzo6LTFdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fc3ViZWxlbV90YWdzKGUpLCBbXSkKKworICAgICAgICBlID0gc2VsZi5fbWFrZV9lbGVtX3dpdGhfY2hpbGRyZW4oNCkKKyAgICAgICAgZGVsIGVbOjotMl0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9zdWJlbGVtX3RhZ3MoZSksIFsnYTAnLCAnYTInXSkKKworICAgICAgICBlID0gc2VsZi5fbWFrZV9lbGVtX3dpdGhfY2hpbGRyZW4oNCkKKyAgICAgICAgZGVsIGVbMTo6Ml0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9zdWJlbGVtX3RhZ3MoZSksIFsnYTAnLCAnYTInXSkKKworICAgICAgICBlID0gc2VsZi5fbWFrZV9lbGVtX3dpdGhfY2hpbGRyZW4oMikKKyAgICAgICAgZGVsIGVbOjoyXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX3N1YmVsZW1fdGFncyhlKSwgWydhMSddKQorCisKK2NsYXNzIFN0cmluZ0lPVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfcmVhZF9mcm9tX3N0cmluZ2lvKHNlbGYpOgorICAgICAgICB0cmVlID0gRVQuRWxlbWVudFRyZWUoKQorICAgICAgICBzdHJlYW0gPSBpby5TdHJpbmdJTygpCisgICAgICAgIHN0cmVhbS53cml0ZSgnJyc8P3htbCB2ZXJzaW9uPSIxLjAiPz48c2l0ZT48L3NpdGU+JycnKQorICAgICAgICBzdHJlYW0uc2VlaygwKQorICAgICAgICB0cmVlLnBhcnNlKHN0cmVhbSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRyZWUuZ2V0cm9vdCgpLnRhZywgJ3NpdGUnKQorCisKK2NsYXNzIFBhcnNlRXJyb3JUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9zdWJjbGFzcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKEVULlBhcnNlRXJyb3IoKSwgU3ludGF4RXJyb3IpCisKKyAgICBkZWYgX2dldF9lcnJvcihzZWxmLCBzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgRVQuZnJvbXN0cmluZyhzKQorICAgICAgICBleGNlcHQgRVQuUGFyc2VFcnJvciBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGUKKworICAgIGRlZiB0ZXN0X2Vycm9yX3Bvc2l0aW9uKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2dldF9lcnJvcignZm9vJykucG9zaXRpb24sICgxLCAwKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9nZXRfZXJyb3IoJzx0YWc+JmZvbzs8L3RhZz4nKS5wb3NpdGlvbiwgKDEsIDUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2dldF9lcnJvcignZm9vYmFyPCcpLnBvc2l0aW9uLCAoMSwgNikpCisKKyAgICBkZWYgdGVzdF9lcnJvcl9jb2RlKHNlbGYpOgorICAgICAgICBpbXBvcnQgeG1sLnBhcnNlcnMuZXhwYXQuZXJyb3JzIGFzIEVSUk9SUworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYuX2dldF9lcnJvcignZm9vJykuY29kZSwKKyAgICAgICAgICAgICAgICBFUlJPUlMuY29kZXNbRVJST1JTLlhNTF9FUlJPUl9TWU5UQVhdKQorCisKK2NsYXNzIEtleXdvcmRBcmdzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIyBUZXN0IHZhcmlvdXMgaXNzdWVzIHdpdGgga2V5d29yZCBhcmd1bWVudHMgcGFzc2VkIHRvIEVULkVsZW1lbnQKKyAgICAjIGNvbnN0cnVjdG9yIGFuZCBtZXRob2RzCisgICAgZGVmIHRlc3RfaXNzdWUxNDgxOChzZWxmKToKKyAgICAgICAgeCA9IEVULlhNTCgiPGE+Zm9vPC9hPiIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC5maW5kKCdhJywgTm9uZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgeC5maW5kKHBhdGg9J2EnLCBuYW1lc3BhY2VzPU5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHguZmluZHRleHQoJ2EnLCBOb25lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB4LmZpbmR0ZXh0KHBhdGg9J2EnLCBkZWZhdWx0PU5vbmUsIG5hbWVzcGFjZXM9Tm9uZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoeC5maW5kYWxsKCdhJywgTm9uZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgeC5maW5kYWxsKHBhdGg9J2EnLCBuYW1lc3BhY2VzPU5vbmUpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QoeC5pdGVyZmluZCgnYScsIE5vbmUpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0KHguaXRlcmZpbmQocGF0aD0nYScsIG5hbWVzcGFjZXM9Tm9uZSkpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRVQuRWxlbWVudCgnYScpLmF0dHJpYiwge30pCisgICAgICAgIGVsZW1lbnRzID0gWworICAgICAgICAgICAgRVQuRWxlbWVudCgnYScsIGRpY3QoaHJlZj0iIyIsIGlkPSJmb28iKSksCisgICAgICAgICAgICBFVC5FbGVtZW50KCdhJywgYXR0cmliPWRpY3QoaHJlZj0iIyIsIGlkPSJmb28iKSksCisgICAgICAgICAgICBFVC5FbGVtZW50KCdhJywgZGljdChocmVmPSIjIiksIGlkPSJmb28iKSwKKyAgICAgICAgICAgIEVULkVsZW1lbnQoJ2EnLCBocmVmPSIjIiwgaWQ9ImZvbyIpLAorICAgICAgICAgICAgRVQuRWxlbWVudCgnYScsIGRpY3QoaHJlZj0iIyIsIGlkPSJmb28iKSwgaHJlZj0iIyIsIGlkPSJmb28iKSwKKyAgICAgICAgXQorICAgICAgICBmb3IgZSBpbiBlbGVtZW50czoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS50YWcsICdhJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS5hdHRyaWIsIGRpY3QoaHJlZj0iIyIsIGlkPSJmb28iKSkKKworICAgICAgICBlMiA9IEVULlN1YkVsZW1lbnQoZWxlbWVudHNbMF0sICdmb29iYXInLCBhdHRyaWI9eydrZXkxJzogJ3ZhbHVlMSd9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGUyLmF0dHJpYlsna2V5MSddLCAndmFsdWUxJykKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXgoVHlwZUVycm9yLCAnbXVzdCBiZSBkaWN0LCBub3Qgc3RyJyk6CisgICAgICAgICAgICBFVC5FbGVtZW50KCdhJywgIkknbSBub3QgYSBkaWN0IikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KFR5cGVFcnJvciwgJ211c3QgYmUgZGljdCwgbm90IHN0cicpOgorICAgICAgICAgICAgRVQuRWxlbWVudCgnYScsIGF0dHJpYj0iSSdtIG5vdCBhIGRpY3QiKQorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0B1bml0dGVzdC5za2lwVW5sZXNzKHB5RVQsICdvbmx5IGZvciB0aGUgUHl0aG9uIHZlcnNpb24nKQorY2xhc3MgTm9BY2NlbGVyYXRvclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgICMgVGVzdCB0aGF0IHRoZSBDIGFjY2VsZXJhdG9yIHdhcyBub3QgaW1wb3J0ZWQgZm9yIHB5RVQKKyAgICBkZWYgdGVzdF9jb3JyZWN0X2ltcG9ydF9weUVUKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHB5RVQuRWxlbWVudC5fX21vZHVsZV9fLCAneG1sLmV0cmVlLkVsZW1lbnRUcmVlJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChweUVULlN1YkVsZW1lbnQuX19tb2R1bGVfXywgJ3htbC5ldHJlZS5FbGVtZW50VHJlZScpCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCiBjbGFzcyBDbGVhbkNvbnRleHQob2JqZWN0KToKICAgICAiIiJQcm92aWRlIGRlZmF1bHQgbmFtZXNwYWNlIG1hcHBpbmcgYW5kIHBhdGggY2FjaGUuIiIiCiAgICAgY2hlY2t3YXJuaW5ncyA9IE5vbmUKQEAgLTE4NzIsNDQgKzIyNjIsNjkgQEAKICAgICAgICAgICAgICgiVGhpcyBtZXRob2Qgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucy4gICIKICAgICAgICAgICAgICAiVXNlIC4rIGluc3RlYWQuIiwgRGVwcmVjYXRpb25XYXJuaW5nKSwKICAgICAgICAgICAgICgiVGhpcyBtZXRob2Qgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZSB2ZXJzaW9ucy4gICIKLSAgICAgICAgICAgICAiVXNlIC4rIGluc3RlYWQuIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyksCi0gICAgICAgICAgICAjIFhNTFBhcnNlci5kb2N0eXBlKCkgaXMgZGVwcmVjYXRlZC4KLSAgICAgICAgICAgICgiVGhpcyBtZXRob2Qgb2YgWE1MUGFyc2VyIGlzIGRlcHJlY2F0ZWQuICBEZWZpbmUgZG9jdHlwZS4uICIKLSAgICAgICAgICAgICAibWV0aG9kIG9uIHRoZSBUcmVlQnVpbGRlciB0YXJnZXQuIiwgRGVwcmVjYXRpb25XYXJuaW5nKSkKKyAgICAgICAgICAgICAiVXNlIC4rIGluc3RlYWQuIiwgUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZykpCiAgICAgICAgIHNlbGYuY2hlY2t3YXJuaW5ncyA9IHN1cHBvcnQuY2hlY2tfd2FybmluZ3MoKmRlcHJlY2F0aW9ucywgcXVpZXQ9cXVpZXQpCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBmcm9tIHhtbC5ldHJlZSBpbXBvcnQgRWxlbWVudFRyZWUKLSAgICAgICAgc2VsZi5fbnNtYXAgPSBFbGVtZW50VHJlZS5fbmFtZXNwYWNlX21hcAotICAgICAgICBzZWxmLl9wYXRoX2NhY2hlID0gRWxlbWVudFRyZWUuRWxlbWVudFBhdGguX2NhY2hlCisgICAgICAgIGZyb20geG1sLmV0cmVlIGltcG9ydCBFbGVtZW50UGF0aAorICAgICAgICBzZWxmLl9uc21hcCA9IEVULnJlZ2lzdGVyX25hbWVzcGFjZS5fbmFtZXNwYWNlX21hcAogICAgICAgICAjIENvcHkgdGhlIGRlZmF1bHQgbmFtZXNwYWNlIG1hcHBpbmcKLSAgICAgICAgRWxlbWVudFRyZWUuX25hbWVzcGFjZV9tYXAgPSBzZWxmLl9uc21hcC5jb3B5KCkKKyAgICAgICAgc2VsZi5fbnNtYXBfY29weSA9IHNlbGYuX25zbWFwLmNvcHkoKQogICAgICAgICAjIENvcHkgdGhlIHBhdGggY2FjaGUgKHNob3VsZCBiZSBlbXB0eSkKLSAgICAgICAgRWxlbWVudFRyZWUuRWxlbWVudFBhdGguX2NhY2hlID0gc2VsZi5fcGF0aF9jYWNoZS5jb3B5KCkKKyAgICAgICAgc2VsZi5fcGF0aF9jYWNoZSA9IEVsZW1lbnRQYXRoLl9jYWNoZQorICAgICAgICBFbGVtZW50UGF0aC5fY2FjaGUgPSBzZWxmLl9wYXRoX2NhY2hlLmNvcHkoKQogICAgICAgICBzZWxmLmNoZWNrd2FybmluZ3MuX19lbnRlcl9fKCkKIAogICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncyk6Ci0gICAgICAgIGZyb20geG1sLmV0cmVlIGltcG9ydCBFbGVtZW50VHJlZQorICAgICAgICBmcm9tIHhtbC5ldHJlZSBpbXBvcnQgRWxlbWVudFBhdGgKICAgICAgICAgIyBSZXN0b3JlIG1hcHBpbmcgYW5kIHBhdGggY2FjaGUKLSAgICAgICAgRWxlbWVudFRyZWUuX25hbWVzcGFjZV9tYXAgPSBzZWxmLl9uc21hcAotICAgICAgICBFbGVtZW50VHJlZS5FbGVtZW50UGF0aC5fY2FjaGUgPSBzZWxmLl9wYXRoX2NhY2hlCisgICAgICAgIHNlbGYuX25zbWFwLmNsZWFyKCkKKyAgICAgICAgc2VsZi5fbnNtYXAudXBkYXRlKHNlbGYuX25zbWFwX2NvcHkpCisgICAgICAgIEVsZW1lbnRQYXRoLl9jYWNoZSA9IHNlbGYuX3BhdGhfY2FjaGUKICAgICAgICAgc2VsZi5jaGVja3dhcm5pbmdzLl9fZXhpdF9fKCphcmdzKQogCiAKLWRlZiB0ZXN0X21haW4obW9kdWxlX25hbWU9J3htbC5ldHJlZS5FbGVtZW50VHJlZScpOgotICAgIGZyb20gdGVzdCBpbXBvcnQgdGVzdF94bWxfZXRyZWUKK2RlZiB0ZXN0X21haW4obW9kdWxlPU5vbmUpOgorICAgICMgV2hlbiBpbnZva2VkIHdpdGhvdXQgYSBtb2R1bGUsIHJ1bnMgdGhlIFB5dGhvbiBFVCB0ZXN0cyBieSBsb2FkaW5nIHB5RVQuCisgICAgIyBPdGhlcndpc2UsIHVzZXMgdGhlIGdpdmVuIG1vZHVsZSBhcyB0aGUgRVQuCisgICAgaWYgbW9kdWxlIGlzIE5vbmU6CisgICAgICAgIGdsb2JhbCBweUVUCisgICAgICAgIHB5RVQgPSBpbXBvcnRfZnJlc2hfbW9kdWxlKCd4bWwuZXRyZWUuRWxlbWVudFRyZWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibG9ja2VkPVsnX2VsZW1lbnR0cmVlJ10pCisgICAgICAgIG1vZHVsZSA9IHB5RVQKIAotICAgIHVzZV9weV9tb2R1bGUgPSAobW9kdWxlX25hbWUgPT0gJ3htbC5ldHJlZS5FbGVtZW50VHJlZScpCisgICAgZ2xvYmFsIEVUCisgICAgRVQgPSBtb2R1bGUKIAotICAgICMgVGhlIHNhbWUgZG9jdGVzdHMgYXJlIHVzZWQgZm9yIGJvdGggdGhlIFB5dGhvbiBhbmQgdGhlIEMgaW1wbGVtZW50YXRpb25zCi0gICAgYXNzZXJ0IHRlc3RfeG1sX2V0cmVlLkVULl9fbmFtZV9fID09IG1vZHVsZV9uYW1lCisgICAgdGVzdF9jbGFzc2VzID0gWworICAgICAgICBFbGVtZW50U2xpY2luZ1Rlc3QsCisgICAgICAgIEJhc2ljRWxlbWVudFRlc3QsCisgICAgICAgIFN0cmluZ0lPVGVzdCwKKyAgICAgICAgUGFyc2VFcnJvclRlc3QsCisgICAgICAgIFhpbmNsdWRlVGVzdCwKKyAgICAgICAgRWxlbWVudFRyZWVUZXN0LAorICAgICAgICBFbGVtZW50SXRlclRlc3QsCisgICAgICAgIFRyZWVCdWlsZGVyVGVzdCwKKyAgICAgICAgXQogCi0gICAgIyBYWFggdGhlIEMgbW9kdWxlIHNob3VsZCBnaXZlIHRoZSBzYW1lIHdhcm5pbmdzIGFzIHRoZSBQeXRob24gbW9kdWxlCi0gICAgd2l0aCBDbGVhbkNvbnRleHQocXVpZXQ9bm90IHVzZV9weV9tb2R1bGUpOgotICAgICAgICBzdXBwb3J0LnJ1bl9kb2N0ZXN0KHRlc3RfeG1sX2V0cmVlLCB2ZXJib3NpdHk9VHJ1ZSkKKyAgICAjIFRoZXNlIHRlc3RzIHdpbGwgb25seSBydW4gZm9yIHRoZSBwdXJlLVB5dGhvbiB2ZXJzaW9uIHRoYXQgZG9lc24ndCBpbXBvcnQKKyAgICAjIF9lbGVtZW50dHJlZS4gV2UgY2FuJ3QgdXNlIHNraXBVbmxlc3MgaGVyZSwgYmVjYXVzZSBweUVUIGlzIGZpbGxlZCBpbiBvbmx5CisgICAgIyBhZnRlciB0aGUgbW9kdWxlIGlzIGxvYWRlZC4KKyAgICBpZiBweUVUOgorICAgICAgICB0ZXN0X2NsYXNzZXMuZXh0ZW5kKFsKKyAgICAgICAgICAgIE5vQWNjZWxlcmF0b3JUZXN0LAorICAgICAgICAgICAgXSkKIAotICAgICMgVGhlIG1vZHVsZSBzaG91bGQgbm90IGJlIGNoYW5nZWQgYnkgdGhlIHRlc3RzCi0gICAgYXNzZXJ0IHRlc3RfeG1sX2V0cmVlLkVULl9fbmFtZV9fID09IG1vZHVsZV9uYW1lCisgICAgdHJ5OgorICAgICAgICBzdXBwb3J0LnJ1bl91bml0dGVzdCgqdGVzdF9jbGFzc2VzKQorCisgICAgICAgICMgWFhYIHRoZSBDIG1vZHVsZSBzaG91bGQgZ2l2ZSB0aGUgc2FtZSB3YXJuaW5ncyBhcyB0aGUgUHl0aG9uIG1vZHVsZQorICAgICAgICB3aXRoIENsZWFuQ29udGV4dChxdWlldD0obW9kdWxlIGlzIG5vdCBweUVUKSk6CisgICAgICAgICAgICBzdXBwb3J0LnJ1bl9kb2N0ZXN0KHN5cy5tb2R1bGVzW19fbmFtZV9fXSwgdmVyYm9zaXR5PVRydWUpCisgICAgZmluYWxseToKKyAgICAgICAgIyBkb24ndCBpbnRlcmZlcmUgd2l0aCBzdWJzZXF1ZW50IHRlc3RzCisgICAgICAgIEVUID0gcHlFVCA9IE5vbmUKKwogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHRlc3RfbWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3htbF9ldHJlZV9jLnB5IGIvTGliL3Rlc3QvdGVzdF94bWxfZXRyZWVfYy5weQppbmRleCAyZmYxMThmLi5lYWVlYjU2IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3htbF9ldHJlZV9jLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfeG1sX2V0cmVlX2MucHkKQEAgLTEsMzYgKzEsMTEgQEAKICMgeG1sLmV0cmVlIHRlc3QgZm9yIGNFbGVtZW50VHJlZQotCitpbXBvcnQgc3lzLCBzdHJ1Y3QKIGZyb20gdGVzdCBpbXBvcnQgc3VwcG9ydAotZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGJpZ21lbXRlc3QsIF8yRworZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGltcG9ydF9mcmVzaF9tb2R1bGUKIGltcG9ydCB1bml0dGVzdAogCi1jRVQgPSBzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ3htbC5ldHJlZS5jRWxlbWVudFRyZWUnKQotCi0KLSMgY0VsZW1lbnRUcmVlIHNwZWNpZmljIHRlc3RzCi0KLWRlZiBzYW5pdHkoKToKLSAgICByIiIiCi0gICAgSW1wb3J0IHNhbml0eS4KLQotICAgID4+PiBmcm9tIHhtbC5ldHJlZSBpbXBvcnQgY0VsZW1lbnRUcmVlCi0KLSAgICBJc3N1ZSAjNjY5Ny4KLQotICAgID4+PiBlID0gY0VsZW1lbnRUcmVlLkVsZW1lbnQoJ2EnKQotICAgID4+PiBnZXRhdHRyKGUsICdcdUQ4MDAnKSAgICAgICAgICAgIyBkb2N0ZXN0OiArRUxMSVBTSVMKLSAgICBUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6Ci0gICAgICAuLi4KLSAgICBVbmljb2RlRW5jb2RlRXJyb3I6IC4uLgotCi0gICAgPj4+IHAgPSBjRWxlbWVudFRyZWUuWE1MUGFyc2VyKCkKLSAgICA+Pj4gcC52ZXJzaW9uLnNwbGl0KClbMF0KLSAgICAnRXhwYXQnCi0gICAgPj4+IGdldGF0dHIocCwgJ1x1RDgwMCcpCi0gICAgVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgotICAgICAuLi4KLSAgICBBdHRyaWJ1dGVFcnJvcjogJ1hNTFBhcnNlcicgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ1x1ZDgwMCcKLSAgICAiIiIKK2NFVCA9IGltcG9ydF9mcmVzaF9tb2R1bGUoJ3htbC5ldHJlZS5FbGVtZW50VHJlZScsIGZyZXNoPVsnX2VsZW1lbnR0cmVlJ10pCitjRVRfYWxpYXMgPSBpbXBvcnRfZnJlc2hfbW9kdWxlKCd4bWwuZXRyZWUuY0VsZW1lbnRUcmVlJywgZnJlc2g9WydfZWxlbWVudHRyZWUnLCAneG1sLmV0cmVlJ10pCiAKIAogY2xhc3MgTWlzY1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKQEAgLTQ3LDI3ICsyMiw3MiBAQAogICAgICAgICAgICAgZGF0YSA9IE5vbmUKIAogCitAdW5pdHRlc3Quc2tpcFVubGVzcyhjRVQsICdyZXF1aXJlcyBfZWxlbWVudHRyZWUnKQorY2xhc3MgVGVzdEFsaWFzV29ya2luZyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIyBUZXN0IHRoYXQgdGhlIGNFVCBhbGlhcyBtb2R1bGUgaXMgYWxpdmUKKyAgICBkZWYgdGVzdF9hbGlhc193b3JraW5nKHNlbGYpOgorICAgICAgICBlID0gY0VUX2FsaWFzLkVsZW1lbnQoJ2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZS50YWcsICdmb28nKQorCisKK0B1bml0dGVzdC5za2lwVW5sZXNzKGNFVCwgJ3JlcXVpcmVzIF9lbGVtZW50dHJlZScpCitjbGFzcyBUZXN0QWNjZWxlcmF0b3JJbXBvcnRlZCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIyBUZXN0IHRoYXQgdGhlIEMgYWNjZWxlcmF0b3Igd2FzIGltcG9ydGVkLCBhcyBleHBlY3RlZAorICAgIGRlZiB0ZXN0X2NvcnJlY3RfaW1wb3J0X2NFVChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjRVQuU3ViRWxlbWVudC5fX21vZHVsZV9fLCAnX2VsZW1lbnR0cmVlJykKKworICAgIGRlZiB0ZXN0X2NvcnJlY3RfaW1wb3J0X2NFVF9hbGlhcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjRVRfYWxpYXMuU3ViRWxlbWVudC5fX21vZHVsZV9fLCAnX2VsZW1lbnR0cmVlJykKKworCitAdW5pdHRlc3Quc2tpcFVubGVzcyhjRVQsICdyZXF1aXJlcyBfZWxlbWVudHRyZWUnKQorY2xhc3MgU2l6ZW9mVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBpbXBvcnQgX3Rlc3RjYXBpCisgICAgICAgIGdjX2hlYWRzaXplID0gX3Rlc3RjYXBpLlNJWkVPRl9QWUdDX0hFQUQKKyAgICAgICAgIyBvYmplY3QgaGVhZGVyCisgICAgICAgIGhlYWRlciA9ICdQUCcKKyAgICAgICAgaWYgaGFzYXR0cihzeXMsICJnZXR0b3RhbHJlZmNvdW50Iik6CisgICAgICAgICAgICAjIGRlYnVnIGhlYWRlcgorICAgICAgICAgICAgaGVhZGVyID0gJ1BQJyArIGhlYWRlcgorICAgICAgICAjIGZpZWxkcworICAgICAgICBlbGVtZW50ID0gaGVhZGVyICsgJzVQJworICAgICAgICBzZWxmLmVsZW1lbnRzaXplID0gZ2NfaGVhZHNpemUgKyBzdHJ1Y3QuY2FsY3NpemUoZWxlbWVudCkKKyAgICAgICAgIyBleHRyYQorICAgICAgICBzZWxmLmV4dHJhID0gc3RydWN0LmNhbGNzaXplKCdQaWlQNFAnKQorCisgICAgZGVmIHRlc3RfZWxlbWVudChzZWxmKToKKyAgICAgICAgZSA9IGNFVC5FbGVtZW50KCdhJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzeXMuZ2V0c2l6ZW9mKGUpLCBzZWxmLmVsZW1lbnRzaXplKQorCisgICAgZGVmIHRlc3RfZWxlbWVudF93aXRoX2F0dHJpYihzZWxmKToKKyAgICAgICAgZSA9IGNFVC5FbGVtZW50KCdhJywgaHJlZj0nYWJvdXQ6JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzeXMuZ2V0c2l6ZW9mKGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZWxlbWVudHNpemUgKyBzZWxmLmV4dHJhKQorCisgICAgZGVmIHRlc3RfZWxlbWVudF93aXRoX2NoaWxkcmVuKHNlbGYpOgorICAgICAgICBlID0gY0VULkVsZW1lbnQoJ2EnKQorICAgICAgICBmb3IgaSBpbiByYW5nZSg1KToKKyAgICAgICAgICAgIGNFVC5TdWJFbGVtZW50KGUsICdzcGFuJykKKyAgICAgICAgIyBzaG91bGQgaGF2ZSBzcGFjZSBmb3IgOCBjaGlsZHJlbiBub3cKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzeXMuZ2V0c2l6ZW9mKGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZWxlbWVudHNpemUgKyBzZWxmLmV4dHJhICsKKyAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QuY2FsY3NpemUoJzhQJykpCisKIGRlZiB0ZXN0X21haW4oKToKICAgICBmcm9tIHRlc3QgaW1wb3J0IHRlc3RfeG1sX2V0cmVlLCB0ZXN0X3htbF9ldHJlZV9jCiAKICAgICAjIFJ1biB0aGUgdGVzdHMgc3BlY2lmaWMgdG8gdGhlIEMgaW1wbGVtZW50YXRpb24KLSAgICBzdXBwb3J0LnJ1bl9kb2N0ZXN0KHRlc3RfeG1sX2V0cmVlX2MsIHZlcmJvc2l0eT1UcnVlKQorICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KAorICAgICAgICBNaXNjVGVzdHMsCisgICAgICAgIFRlc3RBbGlhc1dvcmtpbmcsCisgICAgICAgIFRlc3RBY2NlbGVyYXRvckltcG9ydGVkLAorICAgICAgICBTaXplb2ZUZXN0LAorICAgICAgICApCiAKLSAgICBzdXBwb3J0LnJ1bl91bml0dGVzdChNaXNjVGVzdHMpCisgICAgIyBSdW4gdGhlIHNhbWUgdGVzdCBzdWl0ZSBhcyB0aGUgUHl0aG9uIG1vZHVsZQorICAgIHRlc3RfeG1sX2V0cmVlLnRlc3RfbWFpbihtb2R1bGU9Y0VUKQogCi0gICAgIyBBc3NpZ24gdGhlIEMgaW1wbGVtZW50YXRpb24gYmVmb3JlIHJ1bm5pbmcgdGhlIGRvY3Rlc3RzCi0gICAgIyBQYXRjaCB0aGUgX19uYW1lX18sIHRvIHByZXZlbnQgY29uZnVzaW9uIHdpdGggdGhlIHB1cmUgUHl0aG9uIHRlc3QKLSAgICBweUVUID0gdGVzdF94bWxfZXRyZWUuRVQKLSAgICBweV9fbmFtZV9fID0gdGVzdF94bWxfZXRyZWUuX19uYW1lX18KLSAgICB0ZXN0X3htbF9ldHJlZS5FVCA9IGNFVAotICAgIGlmIF9fbmFtZV9fICE9ICdfX21haW5fXyc6Ci0gICAgICAgIHRlc3RfeG1sX2V0cmVlLl9fbmFtZV9fID0gX19uYW1lX18KLSAgICB0cnk6Ci0gICAgICAgICMgUnVuIHRoZSBzYW1lIHRlc3Qgc3VpdGUgYXMgeG1sLmV0cmVlLkVsZW1lbnRUcmVlCi0gICAgICAgIHRlc3RfeG1sX2V0cmVlLnRlc3RfbWFpbihtb2R1bGVfbmFtZT0neG1sLmV0cmVlLmNFbGVtZW50VHJlZScpCi0gICAgZmluYWxseToKLSAgICAgICAgdGVzdF94bWxfZXRyZWUuRVQgPSBweUVUCi0gICAgICAgIHRlc3RfeG1sX2V0cmVlLl9fbmFtZV9fID0gcHlfX25hbWVfXwogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHRlc3RfbWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3htbHJwYy5weSBiL0xpYi90ZXN0L3Rlc3RfeG1scnBjLnB5CmluZGV4IDM4MTQxOTEuLjE2Zjg1YzUgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfeG1scnBjLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfeG1scnBjLnB5CkBAIC0yNCw2ICsyNCw4IEBACiAgICAgICAgICAgJ2FzaG9ydGxvbmcnOiAyLAogICAgICAgICAgICdhbm90aGVybGlzdCc6IFsnLnp5eC40MSddLAogICAgICAgICAgICdhYmFzZTY0JzogeG1scnBjbGliLkJpbmFyeShiIm15IGRvZyBoYXMgZmxlYXMiKSwKKyAgICAgICAgICAnYjY0Ynl0ZXMnOiBiIm15IGRvZyBoYXMgZmxlYXMiLAorICAgICAgICAgICdiNjRieXRlYXJyYXknOiBieXRlYXJyYXkoYiJteSBkb2cgaGFzIGZsZWFzIiksCiAgICAgICAgICAgJ2Jvb2xlYW4nOiBGYWxzZSwKICAgICAgICAgICAndW5pY29kZSc6ICdcdTQwMDBcdTYwMDBcdTgwMDAnLAogICAgICAgICAgICd1a2V5XHU0MDAwJzogJ3JlZ3VsYXIgdmFsdWUnLApAQCAtNDQsMjcgKzQ2LDU0IEBACiAgICAgZGVmIHRlc3RfZHVtcF9iYXJlX2RhdGV0aW1lKHNlbGYpOgogICAgICAgICAjIFRoaXMgY2hlY2tzIHRoYXQgYW4gdW53cmFwcGVkIGRhdGV0aW1lLmRhdGUgb2JqZWN0IGNhbiBiZSBoYW5kbGVkCiAgICAgICAgICMgYnkgdGhlIG1hcnNoYWxsaW5nIGNvZGUuICBUaGlzIGNhbid0IGJlIGRvbmUgdmlhIHRlc3RfZHVtcF9sb2FkKCkKLSAgICAgICAgIyBzaW5jZSB3aXRoIHVzZV9kYXRldGltZSBzZXQgdG8gMSB0aGUgdW5tYXJzaGFsbGVyIHdvdWxkIGNyZWF0ZQorICAgICAgICAjIHNpbmNlIHdpdGggdXNlX2J1aWx0aW5fdHlwZXMgc2V0IHRvIDEgdGhlIHVubWFyc2hhbGxlciB3b3VsZCBjcmVhdGUKICAgICAgICAgIyBkYXRldGltZSBvYmplY3RzIGZvciB0aGUgJ2RhdGV0aW1lWzEyM10nIGtleXMgYXMgd2VsbAogICAgICAgICBkdCA9IGRhdGV0aW1lLmRhdGV0aW1lKDIwMDUsIDIsIDEwLCAxMSwgNDEsIDIzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGR0LCB4bWxycGNsaWIuRGF0ZVRpbWUoJzIwMDUwMjEwVDExOjQxOjIzJykpCiAgICAgICAgIHMgPSB4bWxycGNsaWIuZHVtcHMoKGR0LCkpCi0gICAgICAgIChuZXdkdCwpLCBtID0geG1scnBjbGliLmxvYWRzKHMsIHVzZV9kYXRldGltZT0xKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld2R0LCBkdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLCBOb25lKQogCi0gICAgICAgIChuZXdkdCwpLCBtID0geG1scnBjbGliLmxvYWRzKHMsIHVzZV9kYXRldGltZT0wKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld2R0LCB4bWxycGNsaWIuRGF0ZVRpbWUoJzIwMDUwMjEwVDExOjQxOjIzJykpCisgICAgICAgIHJlc3VsdCwgbSA9IHhtbHJwY2xpYi5sb2FkcyhzLCB1c2VfYnVpbHRpbl90eXBlcz1UcnVlKQorICAgICAgICAobmV3ZHQsKSA9IHJlc3VsdAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld2R0LCBkdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKG5ld2R0KSwgZGF0ZXRpbWUuZGF0ZXRpbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKG0pCisKKyAgICAgICAgcmVzdWx0LCBtID0geG1scnBjbGliLmxvYWRzKHMsIHVzZV9idWlsdGluX3R5cGVzPUZhbHNlKQorICAgICAgICAobmV3ZHQsKSA9IHJlc3VsdAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG5ld2R0LCBkdCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyh0eXBlKG5ld2R0KSwgeG1scnBjbGliLkRhdGVUaW1lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtKQorCisgICAgICAgIHJlc3VsdCwgbSA9IHhtbHJwY2xpYi5sb2FkcyhzLCB1c2VfZGF0ZXRpbWU9VHJ1ZSkKKyAgICAgICAgKG5ld2R0LCkgPSByZXN1bHQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdkdCwgZHQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShuZXdkdCksIGRhdGV0aW1lLmRhdGV0aW1lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtKQorCisgICAgICAgIHJlc3VsdCwgbSA9IHhtbHJwY2xpYi5sb2FkcyhzLCB1c2VfZGF0ZXRpbWU9RmFsc2UpCisgICAgICAgIChuZXdkdCwpID0gcmVzdWx0CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3ZHQsIGR0KQorICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUobmV3ZHQpLCB4bWxycGNsaWIuRGF0ZVRpbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKG0pCisKIAogICAgIGRlZiB0ZXN0X2RhdGV0aW1lX2JlZm9yZV8xOTAwKHNlbGYpOgogICAgICAgICAjIHNhbWUgYXMgYmVmb3JlIGJ1dCB3aXRoIGEgZGF0ZSBiZWZvcmUgMTkwMAogICAgICAgICBkdCA9IGRhdGV0aW1lLmRhdGV0aW1lKDEsICAyLCAxMCwgMTEsIDQxLCAyMykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkdCwgeG1scnBjbGliLkRhdGVUaW1lKCcwMDAxMDIxMFQxMTo0MToyMycpKQogICAgICAgICBzID0geG1scnBjbGliLmR1bXBzKChkdCwpKQotICAgICAgICAobmV3ZHQsKSwgbSA9IHhtbHJwY2xpYi5sb2FkcyhzLCB1c2VfZGF0ZXRpbWU9MSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdkdCwgZHQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSwgTm9uZSkKIAotICAgICAgICAobmV3ZHQsKSwgbSA9IHhtbHJwY2xpYi5sb2FkcyhzLCB1c2VfZGF0ZXRpbWU9MCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdkdCwgeG1scnBjbGliLkRhdGVUaW1lKCcwMDAxMDIxMFQxMTo0MToyMycpKQorICAgICAgICByZXN1bHQsIG0gPSB4bWxycGNsaWIubG9hZHMocywgdXNlX2J1aWx0aW5fdHlwZXM9VHJ1ZSkKKyAgICAgICAgKG5ld2R0LCkgPSByZXN1bHQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdkdCwgZHQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShuZXdkdCksIGRhdGV0aW1lLmRhdGV0aW1lKQorICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtKQorCisgICAgICAgIHJlc3VsdCwgbSA9IHhtbHJwY2xpYi5sb2FkcyhzLCB1c2VfYnVpbHRpbl90eXBlcz1GYWxzZSkKKyAgICAgICAgKG5ld2R0LCkgPSByZXN1bHQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChuZXdkdCwgZHQpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShuZXdkdCksIHhtbHJwY2xpYi5EYXRlVGltZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobSkKIAogICAgIGRlZiB0ZXN0X2J1Z18xMTY0OTEyIChzZWxmKToKICAgICAgICAgZCA9IHhtbHJwY2xpYi5EYXRlVGltZSgpCkBAIC0xMjUsNiArMTU0LDIyIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE92ZXJmbG93RXJyb3IsIG0uZHVtcF9pbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbHJwY2xpYi5NSU5JTlQtMSwgZHVtbXlfd3JpdGUpCiAKKyAgICBkZWYgdGVzdF9kdW1wX2RvdWJsZShzZWxmKToKKyAgICAgICAgeG1scnBjbGliLmR1bXBzKChmbG9hdCgyICoqIDM0KSwpKQorICAgICAgICB4bWxycGNsaWIuZHVtcHMoKGZsb2F0KHhtbHJwY2xpYi5NQVhJTlQpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KHhtbHJwY2xpYi5NSU5JTlQpKSkKKyAgICAgICAgeG1scnBjbGliLmR1bXBzKChmbG9hdCh4bWxycGNsaWIuTUFYSU5UICsgNDIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0KHhtbHJwY2xpYi5NSU5JTlQgLSA0MikpKQorCisgICAgICAgIGRlZiBkdW1teV93cml0ZShzKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtID0geG1scnBjbGliLk1hcnNoYWxsZXIoKQorICAgICAgICBtLmR1bXBfZG91YmxlKHhtbHJwY2xpYi5NQVhJTlQsIGR1bW15X3dyaXRlKQorICAgICAgICBtLmR1bXBfZG91YmxlKHhtbHJwY2xpYi5NSU5JTlQsIGR1bW15X3dyaXRlKQorICAgICAgICBtLmR1bXBfZG91YmxlKHhtbHJwY2xpYi5NQVhJTlQgKyA0MiwgZHVtbXlfd3JpdGUpCisgICAgICAgIG0uZHVtcF9kb3VibGUoeG1scnBjbGliLk1JTklOVCAtIDQyLCBkdW1teV93cml0ZSkKKwogICAgIGRlZiB0ZXN0X2R1bXBfbm9uZShzZWxmKToKICAgICAgICAgdmFsdWUgPSBhbGlzdCArIFtOb25lXQogICAgICAgICBhcmcxID0gKGFsaXN0ICsgW05vbmVdLCkKQEAgLTEzMyw2ICsxNzgsMjUgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1scnBjbGliLmxvYWRzKHN0cmcpWzBdWzBdKQogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHhtbHJwY2xpYi5kdW1wcywgKGFyZzEsKSkKIAorICAgIGRlZiB0ZXN0X2R1bXBfYnl0ZXMoc2VsZik6CisgICAgICAgIHNhbXBsZSA9IGIibXkgZG9nIGhhcyBmbGVhcyIKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzYW1wbGUsIHhtbHJwY2xpYi5CaW5hcnkoc2FtcGxlKSkKKyAgICAgICAgZm9yIHR5cGVfIGluIGJ5dGVzLCBieXRlYXJyYXksIHhtbHJwY2xpYi5CaW5hcnk6CisgICAgICAgICAgICB2YWx1ZSA9IHR5cGVfKHNhbXBsZSkKKyAgICAgICAgICAgIHMgPSB4bWxycGNsaWIuZHVtcHMoKHZhbHVlLCkpCisKKyAgICAgICAgICAgIHJlc3VsdCwgbSA9IHhtbHJwY2xpYi5sb2FkcyhzLCB1c2VfYnVpbHRpbl90eXBlcz1UcnVlKQorICAgICAgICAgICAgKG5ld3ZhbHVlLCkgPSByZXN1bHQKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3dmFsdWUsIHNhbXBsZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShuZXd2YWx1ZSksIGJ5dGVzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobSkKKworICAgICAgICAgICAgcmVzdWx0LCBtID0geG1scnBjbGliLmxvYWRzKHMsIHVzZV9idWlsdGluX3R5cGVzPUZhbHNlKQorICAgICAgICAgICAgKG5ld3ZhbHVlLCkgPSByZXN1bHQKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobmV3dmFsdWUsIHNhbXBsZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShuZXd2YWx1ZSksIHhtbHJwY2xpYi5CaW5hcnkpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtKQorCiAgICAgZGVmIHRlc3RfZ2V0X2hvc3RfaW5mbyhzZWxmKToKICAgICAgICAgIyBzZWUgYnVnICMzNjEzLCB0aGlzIHJhaXNlZCBhIFR5cGVFcnJvcgogICAgICAgICB0cmFuc3AgPSB4bWxycGMuY2xpZW50LlRyYW5zcG9ydCgpCkBAIC0xNDAsOSArMjA0LDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdob3N0LnRsZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdBdXRob3JpemF0aW9uJywgJ0Jhc2ljIGRYTmxjZz09JyldLCB7fSkpCiAKLSAgICBkZWYgdGVzdF9kdW1wX2J5dGVzKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHhtbHJwY2xpYi5kdW1wcywgKGIibXkgZG9nIGhhcyBmbGVhcyIsKSkKLQogICAgIGRlZiB0ZXN0X3NzbF9wcmVzZW5jZShzZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgaW1wb3J0IHNzbApAQCAtOTgwLDEwICsxMDQxLDQ0IEBACiAgICAgICAgICAgICBsZW4oY29udGVudCkpCiAKIAorY2xhc3MgVXNlQnVpbHRpblR5cGVzVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfdXNlX2J1aWx0aW5fdHlwZXMoc2VsZik6CisgICAgICAgICMgU2ltcGxlWE1MUlBDRGlzcGF0Y2hlci5fX2luaXRfXyBhY2NlcHRzIHVzZV9idWlsdGluX3R5cGVzLCB3aGljaAorICAgICAgICAjIG1ha2VzIGFsbCBkaXNwYXRjaCBvZiBiaW5hcnkgZGF0YSBhcyBieXRlcyBpbnN0YW5jZXMsIGFuZCBhbGwKKyAgICAgICAgIyBkaXNwYXRjaCBvZiBkYXRldGltZSBhcmd1bWVudCBhcyBkYXRldGltZS5kYXRldGltZSBpbnN0YW5jZXMuCisgICAgICAgIHNlbGYubG9nID0gW10KKyAgICAgICAgZXhwZWN0ZWRfYnl0ZXMgPSBiIm15IGRvZyBoYXMgZmxlYXMiCisgICAgICAgIGV4cGVjdGVkX2RhdGUgPSBkYXRldGltZS5kYXRldGltZSgyMDA4LCA1LCAyNiwgMTgsIDI1LCAxMikKKyAgICAgICAgbWFyc2hhbGVkID0geG1scnBjbGliLmR1bXBzKChleHBlY3RlZF9ieXRlcywgZXhwZWN0ZWRfZGF0ZSksICdmb29iYXInKQorICAgICAgICBkZWYgZm9vYmFyKCphcmdzKToKKyAgICAgICAgICAgIHNlbGYubG9nLmV4dGVuZChhcmdzKQorICAgICAgICBoYW5kbGVyID0geG1scnBjLnNlcnZlci5TaW1wbGVYTUxSUENEaXNwYXRjaGVyKAorICAgICAgICAgICAgYWxsb3dfbm9uZT1UcnVlLCBlbmNvZGluZz1Ob25lLCB1c2VfYnVpbHRpbl90eXBlcz1UcnVlKQorICAgICAgICBoYW5kbGVyLnJlZ2lzdGVyX2Z1bmN0aW9uKGZvb2JhcikKKyAgICAgICAgaGFuZGxlci5fbWFyc2hhbGVkX2Rpc3BhdGNoKG1hcnNoYWxlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VsZi5sb2cpLCAyKQorICAgICAgICBteWJ5dGVzLCBteWRhdGUgPSBzZWxmLmxvZworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYubG9nLCBbZXhwZWN0ZWRfYnl0ZXMsIGV4cGVjdGVkX2RhdGVdKQorICAgICAgICBzZWxmLmFzc2VydElzKHR5cGUobXlkYXRlKSwgZGF0ZXRpbWUuZGF0ZXRpbWUpCisgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShteWJ5dGVzKSwgYnl0ZXMpCisKKyAgICBkZWYgdGVzdF9jZ2loYW5kbGVyX2hhc191c2VfYnVpbHRpbl90eXBlc19mbGFnKHNlbGYpOgorICAgICAgICBoYW5kbGVyID0geG1scnBjLnNlcnZlci5DR0lYTUxSUENSZXF1ZXN0SGFuZGxlcih1c2VfYnVpbHRpbl90eXBlcz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaGFuZGxlci51c2VfYnVpbHRpbl90eXBlcykKKworICAgIGRlZiB0ZXN0X3htbHJwY3NlcnZlcl9oYXNfdXNlX2J1aWx0aW5fdHlwZXNfZmxhZyhzZWxmKToKKyAgICAgICAgc2VydmVyID0geG1scnBjLnNlcnZlci5TaW1wbGVYTUxSUENTZXJ2ZXIoKCJsb2NhbGhvc3QiLCAwKSwKKyAgICAgICAgICAgIHVzZV9idWlsdGluX3R5cGVzPVRydWUpCisgICAgICAgIHNlcnZlci5zZXJ2ZXJfY2xvc2UoKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoc2VydmVyLnVzZV9idWlsdGluX3R5cGVzKQorCisKIEBzdXBwb3J0LnJlYXBfdGhyZWFkcwogZGVmIHRlc3RfbWFpbigpOgogICAgIHhtbHJwY190ZXN0cyA9IFtYTUxSUENUZXN0Q2FzZSwgSGVscGVyVGVzdENhc2UsIERhdGVUaW1lVGVzdENhc2UsCiAgICAgICAgICBCaW5hcnlUZXN0Q2FzZSwgRmF1bHRUZXN0Q2FzZV0KKyAgICB4bWxycGNfdGVzdHMuYXBwZW5kKFVzZUJ1aWx0aW5UeXBlc1Rlc3RDYXNlKQogICAgIHhtbHJwY190ZXN0cy5hcHBlbmQoU2ltcGxlU2VydmVyVGVzdENhc2UpCiAgICAgeG1scnBjX3Rlc3RzLmFwcGVuZChLZWVwYWxpdmVTZXJ2ZXJUZXN0Q2FzZTEpCiAgICAgeG1scnBjX3Rlc3RzLmFwcGVuZChLZWVwYWxpdmVTZXJ2ZXJUZXN0Q2FzZTIpCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3htbHJwY19uZXQucHkgYi9MaWIvdGVzdC90ZXN0X3htbHJwY19uZXQucHkKaW5kZXggZDcyZjhhYy4uZGZiNWY5YSAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF94bWxycGNfbmV0LnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfeG1scnBjX25ldC5weQpAQCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHB5dGhvbjMKIAotaW1wb3J0IGNvbGxlY3Rpb25zCitpbXBvcnQgY29sbGVjdGlvbnMuYWJjCiBpbXBvcnQgZXJybm8KIGltcG9ydCBzb2NrZXQKIGltcG9ydCBzeXMKQEAgLTQ5LDcgKzQ5LDcgQEAKIAogICAgICAgICAjIFBlcmZvcm0gYSBtaW5pbWFsIHNhbml0eSBjaGVjayBvbiB0aGUgcmVzdWx0LCBqdXN0IHRvIGJlIHN1cmUKICAgICAgICAgIyB0aGUgcmVxdWVzdCBtZWFucyB3aGF0IHdlIHRoaW5rIGl0IG1lYW5zLgotICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoYnVpbGRlcnMsIGNvbGxlY3Rpb25zLlNlcXVlbmNlKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoYnVpbGRlcnMsIGNvbGxlY3Rpb25zLmFiYy5TZXF1ZW5jZSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKFt4IGZvciB4IGluIGJ1aWxkZXJzIGlmICIzLngiIGluIHhdLCBidWlsZGVycykKIAogCmRpZmYgLS1naXQgYS9MaWIvdGVzdC90ZXN0X3ppcGZpbGUucHkgYi9MaWIvdGVzdC90ZXN0X3ppcGZpbGUucHkKaW5kZXggNTFkOGI0NS4uMmU1MmM2OCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF96aXBmaWxlLnB5CisrKyBiL0xpYi90ZXN0L3Rlc3RfemlwZmlsZS5weQpAQCAtMSw5ICsxLDMgQEAKLSMgV2UgY2FuIHRlc3QgcGFydCBvZiB0aGUgbW9kdWxlIHdpdGhvdXQgemxpYi4KLXRyeToKLSAgICBpbXBvcnQgemxpYgotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHpsaWIgPSBOb25lCi0KIGltcG9ydCBpbwogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCkBAIC0xOSw3ICsxMyw3IEBACiBmcm9tIHJhbmRvbSBpbXBvcnQgcmFuZGludCwgcmFuZG9tCiBmcm9tIHVuaXR0ZXN0IGltcG9ydCBza2lwVW5sZXNzCiAKLWZyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBURVNURk4sIHJ1bl91bml0dGVzdCwgZmluZGZpbGUsIHVubGluaworZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IFRFU1RGTiwgcnVuX3VuaXR0ZXN0LCBmaW5kZmlsZSwgdW5saW5rLCByZXF1aXJlc196bGliLCByZXF1aXJlc19iejIsIHJlcXVpcmVzX2x6bWEKIAogVEVTVEZOMiA9IFRFU1RGTiArICIyIgogVEVTVEZORElSID0gVEVTVEZOICsgImQiCkBAIC0yNjksNDQgKzI2Myw0NCBAQAogICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgogICAgICAgICAgICAgc2VsZi56aXBfaXRlcmxpbmVzX3Rlc3QoZiwgemlwZmlsZS5aSVBfU1RPUkVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfZGVmbGF0ZWQoc2VsZik6CiAgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CiAgICAgICAgICAgICBzZWxmLnppcF90ZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCiAKLSAgICBAc2tpcFVubGVzcyh6bGliLCAicmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF9vcGVuX2RlZmxhdGVkKHNlbGYpOgogICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgogICAgICAgICAgICAgc2VsZi56aXBfb3Blbl90ZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfcmFuZG9tX29wZW5fZGVmbGF0ZWQoc2VsZik6CiAgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CiAgICAgICAgICAgICBzZWxmLnppcF9yYW5kb21fb3Blbl90ZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfcmVhZGxpbmVfcmVhZF9kZWZsYXRlZChzZWxmKToKICAgICAgICAgIyBJc3N1ZSAjNzYxMDogY2FsbHMgdG8gcmVhZGxpbmUoKSBpbnRlcmxlYXZlZCB3aXRoIGNhbGxzIHRvIHJlYWQoKS4KICAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKICAgICAgICAgICAgIHNlbGYuemlwX3JlYWRsaW5lX3JlYWRfdGVzdChmLCB6aXBmaWxlLlpJUF9ERUZMQVRFRCkKIAotICAgIEBza2lwVW5sZXNzKHpsaWIsICJyZXF1aXJlcyB6bGliIikKKyAgICBAcmVxdWlyZXNfemxpYgogICAgIGRlZiB0ZXN0X3JlYWRsaW5lX2RlZmxhdGVkKHNlbGYpOgogICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgogICAgICAgICAgICAgc2VsZi56aXBfcmVhZGxpbmVfdGVzdChmLCB6aXBmaWxlLlpJUF9ERUZMQVRFRCkKIAotICAgIEBza2lwVW5sZXNzKHpsaWIsICJyZXF1aXJlcyB6bGliIikKKyAgICBAcmVxdWlyZXNfemxpYgogICAgIGRlZiB0ZXN0X3JlYWRsaW5lc19kZWZsYXRlZChzZWxmKToKICAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKICAgICAgICAgICAgIHNlbGYuemlwX3JlYWRsaW5lc190ZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfaXRlcmxpbmVzX2RlZmxhdGVkKHNlbGYpOgogICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgogICAgICAgICAgICAgc2VsZi56aXBfaXRlcmxpbmVzX3Rlc3QoZiwgemlwZmlsZS5aSVBfREVGTEFURUQpCiAKLSAgICBAc2tpcFVubGVzcyh6bGliLCAicmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF9sb3dfY29tcHJlc3Npb24oc2VsZik6CiAgICAgICAgICIiIkNoZWNrIGZvciBjYXNlcyB3aGVyZSBjb21wcmVzc2VkIGRhdGEgaXMgbGFyZ2VyIHRoYW4gb3JpZ2luYWwuIiIiCiAgICAgICAgICMgQ3JlYXRlIHRoZSBaSVAgYXJjaGl2ZQpAQCAtMzE5LDYgKzMxMywxMDMgQEAKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZW5vYmoucmVhZCgxKSwgYicxJykKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZW5vYmoucmVhZCgxKSwgYicyJykKIAorICAgIEByZXF1aXJlc19iejIKKyAgICBkZWYgdGVzdF9iemlwMihzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYuemlwX3Rlc3QoZiwgemlwZmlsZS5aSVBfQlpJUDIpCisKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3Rfb3Blbl9iemlwMihzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYuemlwX29wZW5fdGVzdChmLCB6aXBmaWxlLlpJUF9CWklQMikKKworICAgIEByZXF1aXJlc19iejIKKyAgICBkZWYgdGVzdF9yYW5kb21fb3Blbl9iemlwMihzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYuemlwX3JhbmRvbV9vcGVuX3Rlc3QoZiwgemlwZmlsZS5aSVBfQlpJUDIpCisKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3RfcmVhZGxpbmVfcmVhZF9iemlwMihzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYuemlwX3JlYWRsaW5lX3JlYWRfdGVzdChmLCB6aXBmaWxlLlpJUF9CWklQMikKKworICAgIEByZXF1aXJlc19iejIKKyAgICBkZWYgdGVzdF9yZWFkbGluZV9iemlwMihzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYuemlwX3JlYWRsaW5lX3Rlc3QoZiwgemlwZmlsZS5aSVBfQlpJUDIpCisKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3RfcmVhZGxpbmVzX2J6aXAyKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi56aXBfcmVhZGxpbmVzX3Rlc3QoZiwgemlwZmlsZS5aSVBfQlpJUDIpCisKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3RfaXRlcmxpbmVzX2J6aXAyKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi56aXBfaXRlcmxpbmVzX3Rlc3QoZiwgemlwZmlsZS5aSVBfQlpJUDIpCisKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3RfbG93X2NvbXByZXNzaW9uX2J6aXAyKHNlbGYpOgorICAgICAgICAiIiJDaGVjayBmb3IgY2FzZXMgd2hlcmUgY29tcHJlc3NlZCBkYXRhIGlzIGxhcmdlciB0aGFuIG9yaWdpbmFsLiIiIgorICAgICAgICAjIENyZWF0ZSB0aGUgWklQIGFyY2hpdmUKKyAgICAgICAgd2l0aCB6aXBmaWxlLlppcEZpbGUoVEVTVEZOMiwgInciLCB6aXBmaWxlLlpJUF9CWklQMikgYXMgemlwZnA6CisgICAgICAgICAgICB6aXBmcC53cml0ZXN0cigic3RyZmlsZSIsICcxMicpCisKKyAgICAgICAgIyBHZXQgYW4gb3BlbiBvYmplY3QgZm9yIHN0cmZpbGUKKyAgICAgICAgd2l0aCB6aXBmaWxlLlppcEZpbGUoVEVTVEZOMiwgInIiLCB6aXBmaWxlLlpJUF9CWklQMikgYXMgemlwZnA6CisgICAgICAgICAgICB3aXRoIHppcGZwLm9wZW4oInN0cmZpbGUiKSBhcyBvcGVub2JqOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3Blbm9iai5yZWFkKDEpLCBiJzEnKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3Blbm9iai5yZWFkKDEpLCBiJzInKQorCisgICAgQHJlcXVpcmVzX2x6bWEKKyAgICBkZWYgdGVzdF9sem1hKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi56aXBfdGVzdChmLCB6aXBmaWxlLlpJUF9MWk1BKQorCisgICAgQHJlcXVpcmVzX2x6bWEKKyAgICBkZWYgdGVzdF9vcGVuX2x6bWEoc2VsZik6CisgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CisgICAgICAgICAgICBzZWxmLnppcF9vcGVuX3Rlc3QoZiwgemlwZmlsZS5aSVBfTFpNQSkKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfcmFuZG9tX29wZW5fbHptYShzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYuemlwX3JhbmRvbV9vcGVuX3Rlc3QoZiwgemlwZmlsZS5aSVBfTFpNQSkKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfcmVhZGxpbmVfcmVhZF9sem1hKHNlbGYpOgorICAgICAgICAjIElzc3VlICM3NjEwOiBjYWxscyB0byByZWFkbGluZSgpIGludGVybGVhdmVkIHdpdGggY2FsbHMgdG8gcmVhZCgpLgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi56aXBfcmVhZGxpbmVfcmVhZF90ZXN0KGYsIHppcGZpbGUuWklQX0xaTUEpCisKKyAgICBAcmVxdWlyZXNfbHptYQorICAgIGRlZiB0ZXN0X3JlYWRsaW5lX2x6bWEoc2VsZik6CisgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CisgICAgICAgICAgICBzZWxmLnppcF9yZWFkbGluZV90ZXN0KGYsIHppcGZpbGUuWklQX0xaTUEpCisKKyAgICBAcmVxdWlyZXNfbHptYQorICAgIGRlZiB0ZXN0X3JlYWRsaW5lc19sem1hKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi56aXBfcmVhZGxpbmVzX3Rlc3QoZiwgemlwZmlsZS5aSVBfTFpNQSkKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfaXRlcmxpbmVzX2x6bWEoc2VsZik6CisgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CisgICAgICAgICAgICBzZWxmLnppcF9pdGVybGluZXNfdGVzdChmLCB6aXBmaWxlLlpJUF9MWk1BKQorCisgICAgQHJlcXVpcmVzX2x6bWEKKyAgICBkZWYgdGVzdF9sb3dfY29tcHJlc3Npb25fbHptYShzZWxmKToKKyAgICAgICAgIiIiQ2hlY2sgZm9yIGNhc2VzIHdoZXJlIGNvbXByZXNzZWQgZGF0YSBpcyBsYXJnZXIgdGhhbiBvcmlnaW5hbC4iIiIKKyAgICAgICAgIyBDcmVhdGUgdGhlIFpJUCBhcmNoaXZlCisgICAgICAgIHdpdGggemlwZmlsZS5aaXBGaWxlKFRFU1RGTjIsICJ3IiwgemlwZmlsZS5aSVBfTFpNQSkgYXMgemlwZnA6CisgICAgICAgICAgICB6aXBmcC53cml0ZXN0cigic3RyZmlsZSIsICcxMicpCisKKyAgICAgICAgIyBHZXQgYW4gb3BlbiBvYmplY3QgZm9yIHN0cmZpbGUKKyAgICAgICAgd2l0aCB6aXBmaWxlLlppcEZpbGUoVEVTVEZOMiwgInIiLCB6aXBmaWxlLlpJUF9MWk1BKSBhcyB6aXBmcDoKKyAgICAgICAgICAgIHdpdGggemlwZnAub3Blbigic3RyZmlsZSIpIGFzIG9wZW5vYmo6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVub2JqLnJlYWQoMSksIGInMScpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVub2JqLnJlYWQoMSksIGInMicpCisKICAgICBkZWYgdGVzdF9hYnNvbHV0ZV9hcmNuYW1lcyhzZWxmKToKICAgICAgICAgd2l0aCB6aXBmaWxlLlppcEZpbGUoVEVTVEZOMiwgInciLCB6aXBmaWxlLlpJUF9TVE9SRUQpIGFzIHppcGZwOgogICAgICAgICAgICAgemlwZnAud3JpdGUoVEVTVEZOLCAiL2Fic29sdXRlIikKQEAgLTM3Nyw3ICs0NjgsNyBAQAogICAgICAgICAgICAgd2l0aCBvcGVuKFRFU1RGTiwgInJiIikgYXMgZjoKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHppcGZwLnJlYWQoVEVTVEZOKSwgZi5yZWFkKCkpCiAKLSAgICBAc2tpcFVubGVzcyh6bGliLCAicmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF9wZXJfZmlsZV9jb21wcmVzc2lvbihzZWxmKToKICAgICAgICAgIiIiQ2hlY2sgdGhhdCBmaWxlcyB3aXRoaW4gYSBaaXAgYXJjaGl2ZSBjYW4gaGF2ZSBkaWZmZXJlbnQKICAgICAgICAgY29tcHJlc3Npb24gb3B0aW9ucy4iIiIKQEAgLTQ0NiwxOSArNTM3LDMyIEBACiAgICAgICAgICMgcmVtb3ZlIHRoZSB0ZXN0IGZpbGUgc3ViZGlyZWN0b3JpZXMKICAgICAgICAgc2h1dGlsLnJtdHJlZShvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksICd6aXB0ZXN0MmRpcicpKQogCi0gICAgZGVmIHRlc3Rfd3JpdGVzdHJfY29tcHJlc3Npb24oc2VsZik6CisgICAgZGVmIHRlc3Rfd3JpdGVzdHJfY29tcHJlc3Npb25fc3RvcmVkKHNlbGYpOgogICAgICAgICB6aXBmcCA9IHppcGZpbGUuWmlwRmlsZShURVNURk4yLCAidyIpCiAgICAgICAgIHppcGZwLndyaXRlc3RyKCJhLnR4dCIsICJoZWxsbyB3b3JsZCIsIGNvbXByZXNzX3R5cGU9emlwZmlsZS5aSVBfU1RPUkVEKQotICAgICAgICBpZiB6bGliOgotICAgICAgICAgICAgemlwZnAud3JpdGVzdHIoImIudHh0IiwgImhlbGxvIHdvcmxkIiwgY29tcHJlc3NfdHlwZT16aXBmaWxlLlpJUF9ERUZMQVRFRCkKLQogICAgICAgICBpbmZvID0gemlwZnAuZ2V0aW5mbygnYS50eHQnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGluZm8uY29tcHJlc3NfdHlwZSwgemlwZmlsZS5aSVBfU1RPUkVEKQogCi0gICAgICAgIGlmIHpsaWI6Ci0gICAgICAgICAgICBpbmZvID0gemlwZnAuZ2V0aW5mbygnYi50eHQnKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvLmNvbXByZXNzX3R5cGUsIHppcGZpbGUuWklQX0RFRkxBVEVEKQorICAgIEByZXF1aXJlc196bGliCisgICAgZGVmIHRlc3Rfd3JpdGVzdHJfY29tcHJlc3Npb25fZGVmbGF0ZWQoc2VsZik6CisgICAgICAgIHppcGZwID0gemlwZmlsZS5aaXBGaWxlKFRFU1RGTjIsICJ3IikKKyAgICAgICAgemlwZnAud3JpdGVzdHIoImIudHh0IiwgImhlbGxvIHdvcmxkIiwgY29tcHJlc3NfdHlwZT16aXBmaWxlLlpJUF9ERUZMQVRFRCkKKyAgICAgICAgaW5mbyA9IHppcGZwLmdldGluZm8oJ2IudHh0JykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbmZvLmNvbXByZXNzX3R5cGUsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCisgICAgQHJlcXVpcmVzX2J6MgorICAgIGRlZiB0ZXN0X3dyaXRlc3RyX2NvbXByZXNzaW9uX2J6aXAyKHNlbGYpOgorICAgICAgICB6aXBmcCA9IHppcGZpbGUuWmlwRmlsZShURVNURk4yLCAidyIpCisgICAgICAgIHppcGZwLndyaXRlc3RyKCJiLnR4dCIsICJoZWxsbyB3b3JsZCIsIGNvbXByZXNzX3R5cGU9emlwZmlsZS5aSVBfQlpJUDIpCisgICAgICAgIGluZm8gPSB6aXBmcC5nZXRpbmZvKCdiLnR4dCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mby5jb21wcmVzc190eXBlLCB6aXBmaWxlLlpJUF9CWklQMikKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3Rfd3JpdGVzdHJfY29tcHJlc3Npb25fbHptYShzZWxmKToKKyAgICAgICAgemlwZnAgPSB6aXBmaWxlLlppcEZpbGUoVEVTVEZOMiwgInciKQorICAgICAgICB6aXBmcC53cml0ZXN0cigiYi50eHQiLCAiaGVsbG8gd29ybGQiLCBjb21wcmVzc190eXBlPXppcGZpbGUuWklQX0xaTUEpCisgICAgICAgIGluZm8gPSB6aXBmcC5nZXRpbmZvKCdiLnR4dCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5mby5jb21wcmVzc190eXBlLCB6aXBmaWxlLlpJUF9MWk1BKQogCiAgICAgZGVmIHppcF90ZXN0X3dyaXRlc3RyX3Blcm1pc3Npb25zKHNlbGYsIGYsIGNvbXByZXNzaW9uKToKICAgICAgICAgIyBNYWtlIHN1cmUgdGhhdCB3cml0ZXN0ciBjcmVhdGVzIGZpbGVzIHdpdGggbW9kZSAwNjAwLApAQCAtNTE0LDcgKzYxOCwxMiBAQAogICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgemlwZnAud3JpdGUsIFRFU1RGTikKIAogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorCisKKworCisKKyAgICBAcmVxdWlyZXNfemxpYgogICAgIGRlZiB0ZXN0X3VuaWNvZGVfZmlsZW5hbWVzKHNlbGYpOgogICAgICAgICAjIGJ1ZyAjMTA4MDEKICAgICAgICAgZm5hbWUgPSBmaW5kZmlsZSgnemlwX2NwNDM3X2hlYWRlci56aXAnKQpAQCAtNjIzLDExICs3MzIsMjEgQEAKICAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKICAgICAgICAgICAgIHNlbGYuemlwX3Rlc3QoZiwgemlwZmlsZS5aSVBfU1RPUkVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfZGVmbGF0ZWQoc2VsZik6CiAgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CiAgICAgICAgICAgICBzZWxmLnppcF90ZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCisgICAgQHJlcXVpcmVzX2J6MgorICAgIGRlZiB0ZXN0X2J6aXAyKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi56aXBfdGVzdChmLCB6aXBmaWxlLlpJUF9CWklQMikKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfbHptYShzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYuemlwX3Rlc3QoZiwgemlwZmlsZS5aSVBfTFpNQSkKKwogICAgIGRlZiB0ZXN0X2Fic29sdXRlX2FyY25hbWVzKHNlbGYpOgogICAgICAgICB3aXRoIHppcGZpbGUuWmlwRmlsZShURVNURk4yLCAidyIsIHppcGZpbGUuWklQX1NUT1JFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3daaXA2ND1UcnVlKSBhcyB6aXBmcDoKQEAgLTc1Niw4ICs4NzUsNDAgQEAKICAgICAgICAgICAgIGInXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDgwXHgwMVx4MDBceDAwXHgwMCcKICAgICAgICAgICAgIGInXHgwMGFmaWxlUEtceDA1XHgwNlx4MDBceDAwXHgwMFx4MDBceDAxXHgwMCcKICAgICAgICAgICAgIGInXHgwMVx4MDAzXHgwMFx4MDBceDAwM1x4MDBceDAwXHgwMFx4MDBceDAwJyksCisgICAgICAgIHppcGZpbGUuWklQX0JaSVAyOiAoCisgICAgICAgICAgICBiJ1BLXHgwM1x4MDRceDE0XHgwM1x4MDBceDAwXHgwY1x4MDBudVx4MGM9RkEnCisgICAgICAgICAgICBiJ0tFOFx4MDBceDAwXHgwMG5ceDAwXHgwMFx4MDBceDA1XHgwMFx4MDBceDAwYWYnCisgICAgICAgICAgICBiJ2lsZUJaaDkxQVkmU1lceGQ0XHhhOFx4Y2EnCisgICAgICAgICAgICBiJ1x4N2ZceDAwXHgwMFx4MGZceDExXHg4MEBceDAwXHgwNkRceDkwXHg4MCBceDAwIFx4YTUnCisgICAgICAgICAgICBiJ1BceGQ5IVx4MDNceDAzXHgxM1x4MTNceDEzXHg4OVx4YTlceGE5XHhjMnU1Olx4OWYnCisgICAgICAgICAgICBiJ1x4OGJceGI5Ilx4OWMoSGpUZT9ceDgwUEtceDAxXHgwMlx4MTQnCisgICAgICAgICAgICBiJ1x4MDNceDE0XHgwM1x4MDBceDAwXHgwY1x4MDBudVx4MGM9RkFLRTgnCisgICAgICAgICAgICBiJ1x4MDBceDAwXHgwMG5ceDAwXHgwMFx4MDBceDA1XHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDAnCisgICAgICAgICAgICBiJ1x4MDAgXHg4MFx4ODBceDgxXHgwMFx4MDBceDAwXHgwMGFmaWxlUEsnCisgICAgICAgICAgICBiJ1x4MDVceDA2XHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMVx4MDAzXHgwMFx4MDBceDAwW1x4MDAnCisgICAgICAgICAgICBiJ1x4MDBceDAwXHgwMFx4MDAnKSwKKyAgICAgICAgemlwZmlsZS5aSVBfTFpNQTogKAorICAgICAgICAgICAgYidQS1x4MDNceDA0XHgxNFx4MDNceDAwXHgwMFx4MGVceDAwbnVceDBjPUZBJworICAgICAgICAgICAgYidLRVx4MWJceDAwXHgwMFx4MDBuXHgwMFx4MDBceDAwXHgwNVx4MDBceDAwXHgwMGFmJworICAgICAgICAgICAgYidpbGVcdFx4MDRceDA1XHgwMF1ceDAwXHgwMFx4MDBceDA0XHgwMDRceDE5SScKKyAgICAgICAgICAgIGInXHhlZVx4OGRceGU5XHgxN1x4ODk6M2BcdHEhLjhceDAwUEsnCisgICAgICAgICAgICBiJ1x4MDFceDAyXHgxNFx4MDNceDE0XHgwM1x4MDBceDAwXHgwZVx4MDBudVx4MGM9RkEnCisgICAgICAgICAgICBiJ0tFXHgxYlx4MDBceDAwXHgwMG5ceDAwXHgwMFx4MDBceDA1XHgwMFx4MDBceDAwXHgwMFx4MDAnCisgICAgICAgICAgICBiJ1x4MDBceDAwXHgwMFx4MDAgXHg4MFx4ODBceDgxXHgwMFx4MDBceDAwXHgwMGFmaWwnCisgICAgICAgICAgICBiJ2VQS1x4MDVceDA2XHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMVx4MDAzXHgwMFx4MDAnCisgICAgICAgICAgICBiJ1x4MDA+XHgwMFx4MDBceDAwXHgwMFx4MDAnKSwKICAgICB9CiAKKyAgICBkZWYgdGVzdF91bnN1cHBvcnRlZF92ZXJzaW9uKHNlbGYpOgorICAgICAgICAjIEZpbGUgaGFzIGFuIGV4dHJhY3RfdmVyc2lvbiBvZiAxMjAKKyAgICAgICAgZGF0YSA9IChiJ1BLXHgwM1x4MDR4XHgwMFx4MDBceDAwXHgwMFx4MDAhcFx4YTFAXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwJworICAgICAgICBiJ1x4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMFx4MDB4UEtceDAxXHgwMnhceDAzeFx4MDBceDAwXHgwMFx4MDAnCisgICAgICAgIGInXHgwMCFwXHhhMUBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMFx4MDAnCisgICAgICAgIGInXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHg4MFx4MDFceDAwXHgwMFx4MDBceDAweFBLXHgwNVx4MDYnCisgICAgICAgIGInXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMVx4MDAvXHgwMFx4MDBceDAwXHgxZlx4MDBceDAwXHgwMFx4MDBceDAwJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTm90SW1wbGVtZW50ZWRFcnJvciwgemlwZmlsZS5aaXBGaWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpby5CeXRlc0lPKGRhdGEpLCAncicpCisKICAgICBkZWYgdGVzdF91bmljb2RlX2ZpbGVuYW1lcyhzZWxmKToKICAgICAgICAgd2l0aCB6aXBmaWxlLlppcEZpbGUoVEVTVEZOLCAidyIpIGFzIHpmOgogICAgICAgICAgICAgemYud3JpdGVzdHIoImZvby50eHQiLCAiVGVzdCBmb3IgdW5pY29kZSBmaWxlbmFtZSIpCkBAIC05MjIsNiArMTA3MywxNyBAQAogICAgICAgICBjYXVnaHQuIiIiCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgemlwZmlsZS5aaXBGaWxlLCBURVNURk4sICJ3IiwgLTEpCiAKKyAgICBkZWYgdGVzdF91bnN1cHBvcnRlZF9jb21wcmVzc2lvbihzZWxmKToKKyAgICAgICAgIyBkYXRhIGlzIGRlY2xhcmVkIGFzIHNocnVuaywgYnV0IGFjdHVhbGx5IGRlZmxhdGVkCisgICAgICAgIGRhdGEgPSAoYidQS1x4MDNceDA0Llx4MDBceDAwXHgwMFx4MDFceDAwXHhlNENceGExQFx4MDBceDAwXHgwMCcKKyAgICAgICAgYidceDAwXHgwMlx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMFx4MDBceDAweFx4MDNceDAwUEtceDAxJworICAgICAgICBiJ1x4MDIuXHgwMy5ceDAwXHgwMFx4MDBceDAxXHgwMFx4ZTRDXHhhMUBceDAwXHgwMFx4MDBceDAwXHgwMlx4MDBceDAwJworICAgICAgICBiJ1x4MDBceDAwXHgwMFx4MDBceDAwXHgwMVx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceDAwJworICAgICAgICBiJ1x4ODBceDAxXHgwMFx4MDBceDAwXHgwMHhQS1x4MDVceDA2XHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMVx4MDAnCisgICAgICAgIGInL1x4MDBceDAwXHgwMCFceDAwXHgwMFx4MDBceDAwXHgwMCcpCisgICAgICAgIHdpdGggemlwZmlsZS5aaXBGaWxlKGlvLkJ5dGVzSU8oZGF0YSksICdyJykgYXMgemlwZjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5vdEltcGxlbWVudGVkRXJyb3IsIHppcGYub3BlbiwgJ3gnKQorCiAgICAgZGVmIHRlc3RfbnVsbF9ieXRlX2luX2ZpbGVuYW1lKHNlbGYpOgogICAgICAgICAiIiJDaGVjayB0aGF0IGEgZmlsZW5hbWUgY29udGFpbmluZyBhIG51bGwgYnl0ZSBpcyBwcm9wZXJseQogICAgICAgICB0ZXJtaW5hdGVkLiIiIgpAQCAtMTAyMywxMCArMTE4NSwxOCBAQAogICAgIGRlZiB0ZXN0X3Rlc3R6aXBfd2l0aF9iYWRfY3JjX3N0b3JlZChzZWxmKToKICAgICAgICAgc2VsZi5jaGVja190ZXN0emlwX3dpdGhfYmFkX2NyYyh6aXBmaWxlLlpJUF9TVE9SRUQpCiAKLSAgICBAc2tpcFVubGVzcyh6bGliLCAicmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF90ZXN0emlwX3dpdGhfYmFkX2NyY19kZWZsYXRlZChzZWxmKToKICAgICAgICAgc2VsZi5jaGVja190ZXN0emlwX3dpdGhfYmFkX2NyYyh6aXBmaWxlLlpJUF9ERUZMQVRFRCkKIAorICAgIEByZXF1aXJlc19iejIKKyAgICBkZWYgdGVzdF90ZXN0emlwX3dpdGhfYmFkX2NyY19iemlwMihzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja190ZXN0emlwX3dpdGhfYmFkX2NyYyh6aXBmaWxlLlpJUF9CWklQMikKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfdGVzdHppcF93aXRoX2JhZF9jcmNfbHptYShzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja190ZXN0emlwX3dpdGhfYmFkX2NyYyh6aXBmaWxlLlpJUF9MWk1BKQorCiAgICAgZGVmIGNoZWNrX3JlYWRfd2l0aF9iYWRfY3JjKHNlbGYsIGNvbXByZXNzaW9uKToKICAgICAgICAgIiIiVGVzdHMgdGhhdCBmaWxlcyB3aXRoIGJhZCBDUkNzIHJhaXNlIGEgQmFkWmlwRmlsZSBleGNlcHRpb24gd2hlbiByZWFkLiIiIgogICAgICAgICB6aXBkYXRhID0gc2VsZi56aXBzX3dpdGhfYmFkX2NyY1tjb21wcmVzc2lvbl0KQEAgLTEwNTEsMTAgKzEyMjEsMTggQEAKICAgICBkZWYgdGVzdF9yZWFkX3dpdGhfYmFkX2NyY19zdG9yZWQoc2VsZik6CiAgICAgICAgIHNlbGYuY2hlY2tfcmVhZF93aXRoX2JhZF9jcmMoemlwZmlsZS5aSVBfU1RPUkVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfcmVhZF93aXRoX2JhZF9jcmNfZGVmbGF0ZWQoc2VsZik6CiAgICAgICAgIHNlbGYuY2hlY2tfcmVhZF93aXRoX2JhZF9jcmMoemlwZmlsZS5aSVBfREVGTEFURUQpCiAKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3RfcmVhZF93aXRoX2JhZF9jcmNfYnppcDIoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfcmVhZF93aXRoX2JhZF9jcmMoemlwZmlsZS5aSVBfQlpJUDIpCisKKyAgICBAcmVxdWlyZXNfbHptYQorICAgIGRlZiB0ZXN0X3JlYWRfd2l0aF9iYWRfY3JjX2x6bWEoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfcmVhZF93aXRoX2JhZF9jcmMoemlwZmlsZS5aSVBfTFpNQSkKKwogICAgIGRlZiBjaGVja19yZWFkX3JldHVybl9zaXplKHNlbGYsIGNvbXByZXNzaW9uKToKICAgICAgICAgIyBJc3N1ZSAjOTgzNzogWmlwRXh0RmlsZS5yZWFkKCkgc2hvdWxkbid0IHJldHVybiBtb3JlIGJ5dGVzCiAgICAgICAgICMgdGhhbiByZXF1ZXN0ZWQuCkBAIC0xMDcxLDEwICsxMjQ5LDE4IEBACiAgICAgZGVmIHRlc3RfcmVhZF9yZXR1cm5fc2l6ZV9zdG9yZWQoc2VsZik6CiAgICAgICAgIHNlbGYuY2hlY2tfcmVhZF9yZXR1cm5fc2l6ZSh6aXBmaWxlLlpJUF9TVE9SRUQpCiAKLSAgICBAc2tpcFVubGVzcyh6bGliLCAicmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF9yZWFkX3JldHVybl9zaXplX2RlZmxhdGVkKHNlbGYpOgogICAgICAgICBzZWxmLmNoZWNrX3JlYWRfcmV0dXJuX3NpemUoemlwZmlsZS5aSVBfREVGTEFURUQpCiAKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3RfcmVhZF9yZXR1cm5fc2l6ZV9iemlwMihzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19yZWFkX3JldHVybl9zaXplKHppcGZpbGUuWklQX0JaSVAyKQorCisgICAgQHJlcXVpcmVzX2x6bWEKKyAgICBkZWYgdGVzdF9yZWFkX3JldHVybl9zaXplX2x6bWEoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfcmVhZF9yZXR1cm5fc2l6ZSh6aXBmaWxlLlpJUF9MWk1BKQorCiAgICAgZGVmIHRlc3RfZW1wdHlfemlwZmlsZShzZWxmKToKICAgICAgICAgIyBDaGVjayB0aGF0IGNyZWF0aW5nIGEgZmlsZSBpbiAndycgb3IgJ2EnIG1vZGUgYW5kIGNsb3Npbmcgd2l0aG91dAogICAgICAgICAjIGFkZGluZyBhbnkgZmlsZXMgdG8gdGhlIGFyY2hpdmVzIGNyZWF0ZXMgYSB2YWxpZCBlbXB0eSBaSVAgZmlsZQpAQCAtMTE2MSw3ICsxMzQ3LDcgQEAKICAgICAgICAgc2VsZi56aXAyLnNldHBhc3N3b3JkKGIicGVybCIpCiAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvciwgc2VsZi56aXAyLnJlYWQsICJ6ZXJvIikKIAotICAgIEBza2lwVW5sZXNzKHpsaWIsICJyZXF1aXJlcyB6bGliIikKKyAgICBAcmVxdWlyZXNfemxpYgogICAgIGRlZiB0ZXN0X2dvb2RfcGFzc3dvcmQoc2VsZik6CiAgICAgICAgIHNlbGYuemlwLnNldHBhc3N3b3JkKGIicHl0aG9uIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnppcC5yZWFkKCJ0ZXN0LnR4dCIpLCBzZWxmLnBsYWluKQpAQCAtMTIxMSwxMSArMTM5NywyMSBAQAogICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgogICAgICAgICAgICAgc2VsZi56aXBfdGVzdChmLCB6aXBmaWxlLlpJUF9TVE9SRUQpCiAKLSAgICBAc2tpcFVubGVzcyh6bGliLCAicmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF9kZWZsYXRlZChzZWxmKToKICAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKICAgICAgICAgICAgIHNlbGYuemlwX3Rlc3QoZiwgemlwZmlsZS5aSVBfREVGTEFURUQpCiAKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3RfYnppcDIoc2VsZik6CisgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CisgICAgICAgICAgICBzZWxmLnppcF90ZXN0KGYsIHppcGZpbGUuWklQX0JaSVAyKQorCisgICAgQHJlcXVpcmVzX2x6bWEKKyAgICBkZWYgdGVzdF9sem1hKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi56aXBfdGVzdChmLCB6aXBmaWxlLlpJUF9MWk1BKQorCiAgICAgZGVmIHppcF9vcGVuX3Rlc3Qoc2VsZiwgZiwgY29tcHJlc3Npb24pOgogICAgICAgICBzZWxmLm1ha2VfdGVzdF9hcmNoaXZlKGYsIGNvbXByZXNzaW9uKQogCkBAIC0xMjUxLDExICsxNDQ3LDIxIEBACiAgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CiAgICAgICAgICAgICBzZWxmLnppcF9vcGVuX3Rlc3QoZiwgemlwZmlsZS5aSVBfU1RPUkVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3Rfb3Blbl9kZWZsYXRlZChzZWxmKToKICAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKICAgICAgICAgICAgIHNlbGYuemlwX29wZW5fdGVzdChmLCB6aXBmaWxlLlpJUF9ERUZMQVRFRCkKIAorICAgIEByZXF1aXJlc19iejIKKyAgICBkZWYgdGVzdF9vcGVuX2J6aXAyKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi56aXBfb3Blbl90ZXN0KGYsIHppcGZpbGUuWklQX0JaSVAyKQorCisgICAgQHJlcXVpcmVzX2x6bWEKKyAgICBkZWYgdGVzdF9vcGVuX2x6bWEoc2VsZik6CisgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CisgICAgICAgICAgICBzZWxmLnppcF9vcGVuX3Rlc3QoZiwgemlwZmlsZS5aSVBfTFpNQSkKKwogICAgIGRlZiB6aXBfcmFuZG9tX29wZW5fdGVzdChzZWxmLCBmLCBjb21wcmVzc2lvbik6CiAgICAgICAgIHNlbGYubWFrZV90ZXN0X2FyY2hpdmUoZiwgY29tcHJlc3Npb24pCiAKQEAgLTEyNzksMTMgKzE0ODUsMjMgQEAKICAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKICAgICAgICAgICAgIHNlbGYuemlwX3JhbmRvbV9vcGVuX3Rlc3QoZiwgemlwZmlsZS5aSVBfU1RPUkVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfcmFuZG9tX29wZW5fZGVmbGF0ZWQoc2VsZik6CiAgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CiAgICAgICAgICAgICBzZWxmLnppcF9yYW5kb21fb3Blbl90ZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCisgICAgQHJlcXVpcmVzX2J6MgorICAgIGRlZiB0ZXN0X3JhbmRvbV9vcGVuX2J6aXAyKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi56aXBfcmFuZG9tX29wZW5fdGVzdChmLCB6aXBmaWxlLlpJUF9CWklQMikKIAotQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfcmFuZG9tX29wZW5fbHptYShzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYuemlwX3JhbmRvbV9vcGVuX3Rlc3QoZiwgemlwZmlsZS5aSVBfTFpNQSkKKworCitAcmVxdWlyZXNfemxpYgogY2xhc3MgVGVzdHNXaXRoTXVsdGlwbGVPcGVucyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICAjIENyZWF0ZSB0aGUgWklQIGFyY2hpdmUKQEAgLTE0NzcsMzIgKzE2OTMsODIgQEAKICAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKICAgICAgICAgICAgIHNlbGYuaXRlcmxpbmVzX3Rlc3QoZiwgemlwZmlsZS5aSVBfU1RPUkVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfcmVhZF9kZWZsYXRlZChzZWxmKToKICAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKICAgICAgICAgICAgIHNlbGYucmVhZF90ZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfcmVhZGxpbmVfcmVhZF9kZWZsYXRlZChzZWxmKToKICAgICAgICAgIyBJc3N1ZSAjNzYxMDogY2FsbHMgdG8gcmVhZGxpbmUoKSBpbnRlcmxlYXZlZCB3aXRoIGNhbGxzIHRvIHJlYWQoKS4KICAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKICAgICAgICAgICAgIHNlbGYucmVhZGxpbmVfcmVhZF90ZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfcmVhZGxpbmVfZGVmbGF0ZWQoc2VsZik6CiAgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CiAgICAgICAgICAgICBzZWxmLnJlYWRsaW5lX3Rlc3QoZiwgemlwZmlsZS5aSVBfREVGTEFURUQpCiAKLSAgICBAc2tpcFVubGVzcyh6bGliLCAicmVxdWlyZXMgemxpYiIpCisgICAgQHJlcXVpcmVzX3psaWIKICAgICBkZWYgdGVzdF9yZWFkbGluZXNfZGVmbGF0ZWQoc2VsZik6CiAgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CiAgICAgICAgICAgICBzZWxmLnJlYWRsaW5lc190ZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCi0gICAgQHNraXBVbmxlc3MoemxpYiwgInJlcXVpcmVzIHpsaWIiKQorICAgIEByZXF1aXJlc196bGliCiAgICAgZGVmIHRlc3RfaXRlcmxpbmVzX2RlZmxhdGVkKHNlbGYpOgogICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgogICAgICAgICAgICAgc2VsZi5pdGVybGluZXNfdGVzdChmLCB6aXBmaWxlLlpJUF9ERUZMQVRFRCkKIAorICAgIEByZXF1aXJlc19iejIKKyAgICBkZWYgdGVzdF9yZWFkX2J6aXAyKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi5yZWFkX3Rlc3QoZiwgemlwZmlsZS5aSVBfQlpJUDIpCisKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3RfcmVhZGxpbmVfcmVhZF9iemlwMihzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYucmVhZGxpbmVfcmVhZF90ZXN0KGYsIHppcGZpbGUuWklQX0JaSVAyKQorCisgICAgQHJlcXVpcmVzX2J6MgorICAgIGRlZiB0ZXN0X3JlYWRsaW5lX2J6aXAyKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi5yZWFkbGluZV90ZXN0KGYsIHppcGZpbGUuWklQX0JaSVAyKQorCisgICAgQHJlcXVpcmVzX2J6MgorICAgIGRlZiB0ZXN0X3JlYWRsaW5lc19iemlwMihzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYucmVhZGxpbmVzX3Rlc3QoZiwgemlwZmlsZS5aSVBfQlpJUDIpCisKKyAgICBAcmVxdWlyZXNfYnoyCisgICAgZGVmIHRlc3RfaXRlcmxpbmVzX2J6aXAyKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi5pdGVybGluZXNfdGVzdChmLCB6aXBmaWxlLlpJUF9CWklQMikKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfcmVhZF9sem1hKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi5yZWFkX3Rlc3QoZiwgemlwZmlsZS5aSVBfTFpNQSkKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfcmVhZGxpbmVfcmVhZF9sem1hKHNlbGYpOgorICAgICAgICBmb3IgZiBpbiAoVEVTVEZOMiwgVGVtcG9yYXJ5RmlsZSgpLCBpby5CeXRlc0lPKCkpOgorICAgICAgICAgICAgc2VsZi5yZWFkbGluZV9yZWFkX3Rlc3QoZiwgemlwZmlsZS5aSVBfTFpNQSkKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfcmVhZGxpbmVfbHptYShzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYucmVhZGxpbmVfdGVzdChmLCB6aXBmaWxlLlpJUF9MWk1BKQorCisgICAgQHJlcXVpcmVzX2x6bWEKKyAgICBkZWYgdGVzdF9yZWFkbGluZXNfbHptYShzZWxmKToKKyAgICAgICAgZm9yIGYgaW4gKFRFU1RGTjIsIFRlbXBvcmFyeUZpbGUoKSwgaW8uQnl0ZXNJTygpKToKKyAgICAgICAgICAgIHNlbGYucmVhZGxpbmVzX3Rlc3QoZiwgemlwZmlsZS5aSVBfTFpNQSkKKworICAgIEByZXF1aXJlc19sem1hCisgICAgZGVmIHRlc3RfaXRlcmxpbmVzX2x6bWEoc2VsZik6CisgICAgICAgIGZvciBmIGluIChURVNURk4yLCBUZW1wb3JhcnlGaWxlKCksIGlvLkJ5dGVzSU8oKSk6CisgICAgICAgICAgICBzZWxmLml0ZXJsaW5lc190ZXN0KGYsIHppcGZpbGUuWklQX0xaTUEpCisKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIGZvciBzZXAsIGZuIGluIHNlbGYuYXJjZmlsZXMuaXRlbXMoKToKICAgICAgICAgICAgIG9zLnJlbW92ZShmbikKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfemlwZmlsZTY0LnB5IGIvTGliL3Rlc3QvdGVzdF96aXBmaWxlNjQucHkKaW5kZXggMGU3ZDczZi4uYThmYjdhYiAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdGVzdF96aXBmaWxlNjQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF96aXBmaWxlNjQucHkKQEAgLTExLDEyICsxMSw2IEBACiAgICAgICAgICd0ZXN0IHJlcXVpcmVzIGxvYWRzIG9mIGRpc2stc3BhY2UgYnl0ZXMgYW5kIGEgbG9uZyB0aW1lIHRvIHJ1bicKICAgICApCiAKLSMgV2UgY2FuIHRlc3QgcGFydCBvZiB0aGUgbW9kdWxlIHdpdGhvdXQgemxpYi4KLXRyeToKLSAgICBpbXBvcnQgemxpYgotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHpsaWIgPSBOb25lCi0KIGltcG9ydCB6aXBmaWxlLCBvcywgdW5pdHRlc3QKIGltcG9ydCB0aW1lCiBpbXBvcnQgc3lzCkBAIC0yNCw3ICsxOCw3IEBACiBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogZnJvbSB0ZW1wZmlsZSBpbXBvcnQgVGVtcG9yYXJ5RmlsZQogCi1mcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgVEVTVEZOLCBydW5fdW5pdHRlc3QKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBURVNURk4sIHJ1bl91bml0dGVzdCwgcmVxdWlyZXNfemxpYgogCiBURVNURk4yID0gVEVTVEZOICsgIjIiCiAKQEAgLTgxLDEyICs3NSwxMiBAQAogICAgICAgICBmb3IgZiBpbiBUZW1wb3JhcnlGaWxlKCksIFRFU1RGTjI6CiAgICAgICAgICAgICBzZWxmLnppcFRlc3QoZiwgemlwZmlsZS5aSVBfU1RPUkVEKQogCi0gICAgaWYgemxpYjoKLSAgICAgICAgZGVmIHRlc3REZWZsYXRlZChzZWxmKToKLSAgICAgICAgICAgICMgVHJ5IHRoZSB0ZW1wIGZpbGUgZmlyc3QuICBJZiB3ZSBkbyBURVNURk4yIGZpcnN0LCB0aGVuIGl0IGhvZ3MKLSAgICAgICAgICAgICMgZ2lnYWJ5dGVzIG9mIGRpc2sgc3BhY2UgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgdGVzdC4KLSAgICAgICAgICAgIGZvciBmIGluIFRlbXBvcmFyeUZpbGUoKSwgVEVTVEZOMjoKLSAgICAgICAgICAgICAgICBzZWxmLnppcFRlc3QoZiwgemlwZmlsZS5aSVBfREVGTEFURUQpCisgICAgQHJlcXVpcmVzX3psaWIKKyAgICBkZWYgdGVzdERlZmxhdGVkKHNlbGYpOgorICAgICAgICAjIFRyeSB0aGUgdGVtcCBmaWxlIGZpcnN0LiAgSWYgd2UgZG8gVEVTVEZOMiBmaXJzdCwgdGhlbiBpdCBob2dzCisgICAgICAgICMgZ2lnYWJ5dGVzIG9mIGRpc2sgc3BhY2UgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgdGVzdC4KKyAgICAgICAgZm9yIGYgaW4gVGVtcG9yYXJ5RmlsZSgpLCBURVNURk4yOgorICAgICAgICAgICAgc2VsZi56aXBUZXN0KGYsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBmb3IgZm5hbWUgaW4gVEVTVEZOLCBURVNURk4yOgpkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGVzdF96aXBpbXBvcnQucHkgYi9MaWIvdGVzdC90ZXN0X3ppcGltcG9ydC5weQppbmRleCBkZjVmZjlkLi5mN2NiOGI5IDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3ppcGltcG9ydC5weQorKysgYi9MaWIvdGVzdC90ZXN0X3ppcGltcG9ydC5weQpAQCAtOSwxMiArOSw2IEBACiBmcm9tIHRlc3QgaW1wb3J0IHN1cHBvcnQKIGZyb20gdGVzdC50ZXN0X2ltcG9ydGhvb2tzIGltcG9ydCBJbXBvcnRIb29rc0Jhc2VUZXN0Q2FzZSwgdGVzdF9zcmMsIHRlc3RfY28KIAotIyBzb21lIHRlc3RzIGNhbiBiZSByYW4gZXZlbiB3aXRob3V0IHpsaWIKLXRyeToKLSAgICBpbXBvcnQgemxpYgotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHpsaWIgPSBOb25lCi0KIGZyb20gemlwZmlsZSBpbXBvcnQgWmlwRmlsZSwgWmlwSW5mbywgWklQX1NUT1JFRCwgWklQX0RFRkxBVEVECiAKIGltcG9ydCB6aXBpbXBvcnQKQEAgLTI1LDcgKzE5LDcgQEAKIGZyb20gdHJhY2ViYWNrIGltcG9ydCBleHRyYWN0X3RiLCBleHRyYWN0X3N0YWNrLCBwcmludF90YgogcmFpc2Vfc3JjID0gJ2RlZiBkb19yYWlzZSgpOiByYWlzZSBUeXBlRXJyb3JcbicKIAotZGVmIG1ha2VfcHljKGNvLCBtdGltZSk6CitkZWYgbWFrZV9weWMoY28sIG10aW1lLCBzaXplKToKICAgICBkYXRhID0gbWFyc2hhbC5kdW1wcyhjbykKICAgICBpZiB0eXBlKG10aW1lKSBpcyB0eXBlKDAuMCk6CiAgICAgICAgICMgTWFjIG10aW1lcyBuZWVkIGEgYml0IG9mIHNwZWNpYWwgY2FzaW5nCkBAIC0zMywxNCArMjcsMTQgQEAKICAgICAgICAgICAgIG10aW1lID0gaW50KG10aW1lKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbXRpbWUgPSBpbnQoLTB4MTAwMDAwMDAwICsgaW50KG10aW1lKSkKLSAgICBweWMgPSBpbXAuZ2V0X21hZ2ljKCkgKyBzdHJ1Y3QucGFjaygiPGkiLCBpbnQobXRpbWUpKSArIGRhdGEKKyAgICBweWMgPSBpbXAuZ2V0X21hZ2ljKCkgKyBzdHJ1Y3QucGFjaygiPGlpIiwgaW50KG10aW1lKSwgc2l6ZSAmIDB4RkZGRkZGRkYpICsgZGF0YQogICAgIHJldHVybiBweWMKIAogZGVmIG1vZHVsZV9wYXRoX3RvX2RvdHRlZF9uYW1lKHBhdGgpOgogICAgIHJldHVybiBwYXRoLnJlcGxhY2Uob3Muc2VwLCAnLicpCiAKIE5PVyA9IHRpbWUudGltZSgpCi10ZXN0X3B5YyA9IG1ha2VfcHljKHRlc3RfY28sIE5PVykKK3Rlc3RfcHljID0gbWFrZV9weWModGVzdF9jbywgTk9XLCBsZW4odGVzdF9zcmMpKQogCiAKIFRFU1RNT0QgPSAiemlwdGVzdG1vZHVsZSIKQEAgLTIxMSw2ICsyMDUsMTAgQEAKICAgICAgICAgICAgIG1vZCA9IHppLmxvYWRfbW9kdWxlKFRFU1RQQUNLKQogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh6aS5nZXRfZmlsZW5hbWUoVEVTVFBBQ0spLCBtb2QuX19maWxlX18pCiAKKyAgICAgICAgICAgIGV4aXN0aW5nX3BhY2tfcGF0aCA9IF9faW1wb3J0X18oVEVTVFBBQ0spLl9fcGF0aF9fWzBdCisgICAgICAgICAgICBleHBlY3RlZF9wYXRoX3BhdGggPSBvcy5wYXRoLmpvaW4oVEVNUF9aSVAsIFRFU1RQQUNLKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleGlzdGluZ19wYWNrX3BhdGgsIGV4cGVjdGVkX3BhdGhfcGF0aCkKKwogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh6aS5pc19wYWNrYWdlKHBhY2tkaXIgKyAnX19pbml0X18nKSwgRmFsc2UpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHppLmlzX3BhY2thZ2UocGFja2RpciArIFRFU1RQQUNLMiksIFRydWUpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHppLmlzX3BhY2thZ2UocGFja2RpcjIgKyBURVNUTU9EKSwgRmFsc2UpCkBAIC0yOTksNyArMjk3LDcgQEAKICAgICAgICAgICAgIHJldHVybiBfX2ZpbGVfXwogICAgICAgICBpZiBfX2xvYWRlcl9fLmdldF9kYXRhKCJzb21lLmRhdGEiKSAhPSBiInNvbWUgZGF0YSI6CiAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiYmFkIGRhdGEiKVxuIiIiCi0gICAgICAgIHB5YyA9IG1ha2VfcHljKGNvbXBpbGUoc3JjLCAiPD8/Pz4iLCAiZXhlYyIpLCBOT1cpCisgICAgICAgIHB5YyA9IG1ha2VfcHljKGNvbXBpbGUoc3JjLCAiPD8/Pz4iLCAiZXhlYyIpLCBOT1csIGxlbihzcmMpKQogICAgICAgICBmaWxlcyA9IHtURVNUTU9EICsgcHljX2V4dDogKE5PVywgcHljKSwKICAgICAgICAgICAgICAgICAgInNvbWUuZGF0YSI6IChOT1csICJzb21lIGRhdGEiKX0KICAgICAgICAgc2VsZi5kb1Rlc3QocHljX2V4dCwgZmlsZXMsIFRFU1RNT0QpCkBAIC0zMTksNyArMzE3LDcgQEAKICAgICAgICAgc2VsZi5kb1Rlc3QoIi5weSIsIGZpbGVzLCBURVNUTU9ELCBjYWxsPXNlbGYuYXNzZXJ0TW9kdWxlU291cmNlKQogCiAgICAgZGVmIHRlc3RHZXRDb21waWxlZFNvdXJjZShzZWxmKToKLSAgICAgICAgcHljID0gbWFrZV9weWMoY29tcGlsZSh0ZXN0X3NyYywgIjw/Pz8+IiwgImV4ZWMiKSwgTk9XKQorICAgICAgICBweWMgPSBtYWtlX3B5Yyhjb21waWxlKHRlc3Rfc3JjLCAiPD8/Pz4iLCAiZXhlYyIpLCBOT1csIGxlbih0ZXN0X3NyYykpCiAgICAgICAgIGZpbGVzID0ge1RFU1RNT0QgKyAiLnB5IjogKE5PVywgdGVzdF9zcmMpLAogICAgICAgICAgICAgICAgICBURVNUTU9EICsgcHljX2V4dDogKE5PVywgcHljKX0KICAgICAgICAgc2VsZi5kb1Rlc3QocHljX2V4dCwgZmlsZXMsIFRFU1RNT0QsIGNhbGw9c2VsZi5hc3NlcnRNb2R1bGVTb3VyY2UpCkBAIC0zOTIsNyArMzkwLDcgQEAKICAgICAgICAgICAgIG9zLnJlbW92ZShmaWxlbmFtZSkKIAogCi1AdW5pdHRlc3Quc2tpcFVubGVzcyh6bGliLCAicmVxdWlyZXMgemxpYiIpCitAc3VwcG9ydC5yZXF1aXJlc196bGliCiBjbGFzcyBDb21wcmVzc2VkWmlwSW1wb3J0VGVzdENhc2UoVW5jb21wcmVzc2VkWmlwSW1wb3J0VGVzdENhc2UpOgogICAgIGNvbXByZXNzaW9uID0gWklQX0RFRkxBVEVECiAKQEAgLTQxNyw3ICs0MTUsNyBAQAogCiAgICAgZGVmIHRlc3RFbXB0eUZpbGUoc2VsZik6CiAgICAgICAgIHN1cHBvcnQudW5saW5rKFRFU1RNT0QpCi0gICAgICAgIG9wZW4oVEVTVE1PRCwgJ3crJykuY2xvc2UoKQorICAgICAgICBzdXBwb3J0LmNyZWF0ZV9lbXB0eV9maWxlKFRFU1RNT0QpCiAgICAgICAgIHNlbGYuYXNzZXJ0WmlwRmFpbHVyZShURVNUTU9EKQogCiAgICAgZGVmIHRlc3RGaWxlVW5yZWFkYWJsZShzZWxmKToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfemlwaW1wb3J0X3N1cHBvcnQucHkgYi9MaWIvdGVzdC90ZXN0X3ppcGltcG9ydF9zdXBwb3J0LnB5CmluZGV4IGE1NThkN2QuLjBjOTNhOGMgMTAwNjQ0Ci0tLSBhL0xpYi90ZXN0L3Rlc3RfemlwaW1wb3J0X3N1cHBvcnQucHkKKysrIGIvTGliL3Rlc3QvdGVzdF96aXBpbXBvcnRfc3VwcG9ydC5weQpAQCAtMTU2LDIwICsxNTYsMTkgQEAKICAgICAgICAgICAgICAgICAgICAgdGVzdF96aXBwZWRfZG9jdGVzdC50ZXN0X0RvY1Rlc3RSdW5uZXIudmVyYm9zZV9mbGFnLAogICAgICAgICAgICAgICAgICAgICB0ZXN0X3ppcHBlZF9kb2N0ZXN0LnRlc3RfRXhhbXBsZSwKICAgICAgICAgICAgICAgICAgICAgdGVzdF96aXBwZWRfZG9jdGVzdC50ZXN0X2RlYnVnLAotICAgICAgICAgICAgICAgICAgICB0ZXN0X3ppcHBlZF9kb2N0ZXN0LnRlc3RfcGRiX3NldF90cmFjZSwKLSAgICAgICAgICAgICAgICAgICAgdGVzdF96aXBwZWRfZG9jdGVzdC50ZXN0X3BkYl9zZXRfdHJhY2VfbmVzdGVkLAogICAgICAgICAgICAgICAgICAgICB0ZXN0X3ppcHBlZF9kb2N0ZXN0LnRlc3RfdGVzdHNvdXJjZSwKICAgICAgICAgICAgICAgICAgICAgdGVzdF96aXBwZWRfZG9jdGVzdC50ZXN0X3RyYWlsaW5nX3NwYWNlX2luX3Rlc3QsCiAgICAgICAgICAgICAgICAgICAgIHRlc3RfemlwcGVkX2RvY3Rlc3QudGVzdF9Eb2NUZXN0U3VpdGUsCiAgICAgICAgICAgICAgICAgICAgIHRlc3RfemlwcGVkX2RvY3Rlc3QudGVzdF9Eb2NUZXN0RmluZGVyLAogICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAjIFRoZXNlIHJlbWFpbmluZyB0ZXN0cyBhcmUgdGhlIG9uZXMgd2hpY2ggbmVlZCBhY2Nlc3MKKyAgICAgICAgICAgICAgICAjIFRoZXNlIHRlc3RzIGFyZSB0aGUgb25lcyB3aGljaCBuZWVkIGFjY2VzcwogICAgICAgICAgICAgICAgICMgdG8gdGhlIGRhdGEgZmlsZXMsIHNvIHdlIGRvbid0IHJ1biB0aGVtCiAgICAgICAgICAgICAgICAgZmFpbF9kdWVfdG9fbWlzc2luZ19kYXRhX2ZpbGVzID0gWwogICAgICAgICAgICAgICAgICAgICB0ZXN0X3ppcHBlZF9kb2N0ZXN0LnRlc3RfRG9jRmlsZVN1aXRlLAogICAgICAgICAgICAgICAgICAgICB0ZXN0X3ppcHBlZF9kb2N0ZXN0LnRlc3RfdGVzdGZpbGUsCiAgICAgICAgICAgICAgICAgICAgIHRlc3RfemlwcGVkX2RvY3Rlc3QudGVzdF91bml0dGVzdF9yZXBvcnRmbGFncywKICAgICAgICAgICAgICAgICBdCisKICAgICAgICAgICAgICAgICBmb3Igb2JqIGluIGtub3duX2dvb2RfdGVzdHM6CiAgICAgICAgICAgICAgICAgICAgIF9ydW5fb2JqZWN0X2RvY3Rlc3Qob2JqLCB0ZXN0X3ppcHBlZF9kb2N0ZXN0KQogICAgICAgICAgICAgZmluYWxseToKZGlmZiAtLWdpdCBhL0xpYi90ZXN0L3Rlc3RfemxpYi5weSBiL0xpYi90ZXN0L3Rlc3RfemxpYi5weQppbmRleCA2MDA4MWUyLi5kNjM3YzJkIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90ZXN0X3psaWIucHkKKysrIGIvTGliL3Rlc3QvdGVzdF96bGliLnB5CkBAIC03LDEwICs3LDE2IEBACiAKIHpsaWIgPSBzdXBwb3J0LmltcG9ydF9tb2R1bGUoJ3psaWInKQogCi10cnk6Ci0gICAgaW1wb3J0IG1tYXAKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBtbWFwID0gTm9uZQorCitjbGFzcyBWZXJzaW9uVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfbGlicmFyeV92ZXJzaW9uKHNlbGYpOgorICAgICAgICAjIFRlc3QgdGhhdCB0aGUgbWFqb3IgdmVyc2lvbiBvZiB0aGUgYWN0dWFsIGxpYnJhcnkgaW4gdXNlIG1hdGNoZXMgdGhlCisgICAgICAgICMgbWFqb3IgdmVyc2lvbiB0aGF0IHdlIHdlcmUgY29tcGlsZWQgYWdhaW5zdC4gV2UgY2FuJ3QgZ3VhcmFudGVlIHRoYXQKKyAgICAgICAgIyB0aGUgbWlub3IgdmVyc2lvbnMgd2lsbCBtYXRjaCAoZXZlbiBvbiB0aGUgbWFjaGluZSBvbiB3aGljaCB0aGUgbW9kdWxlCisgICAgICAgICMgd2FzIGNvbXBpbGVkKSwgYW5kIHRoZSBBUEkgaXMgc3RhYmxlIGJldHdlZW4gbWlub3IgdmVyc2lvbnMsIHNvCisgICAgICAgICMgdGVzdGluZyBvbmx5IHRoZSBtYWpvciB2ZXJzaW9ucyBhdm9pZHMgc3B1cmlvdXMgZmFpbHVyZXMuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoemxpYi5aTElCX1JVTlRJTUVfVkVSU0lPTlswXSwgemxpYi5aTElCX1ZFUlNJT05bMF0pCiAKIAogY2xhc3MgQ2hlY2tzdW1UZXN0Q2FzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0xNzMsMTAgKzE3OSw4IEBACiAgICAgZGVmIHRlc3RfYmlnX2RlY29tcHJlc3NfYnVmZmVyKHNlbGYsIHNpemUpOgogICAgICAgICBzZWxmLmNoZWNrX2JpZ19kZWNvbXByZXNzX2J1ZmZlcihzaXplLCB6bGliLmRlY29tcHJlc3MpCiAKLSAgICBAYmlnbWVtdGVzdChzaXplPV80RyArIDEwMCwgbWVtdXNlPTEpCisgICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcgKyAxMDAsIG1lbXVzZT0xLCBkcnlfcnVuPUZhbHNlKQogICAgIGRlZiB0ZXN0X2xlbmd0aF9vdmVyZmxvdyhzZWxmLCBzaXplKToKLSAgICAgICAgaWYgc2l6ZSA8IF80RyArIDEwMDoKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoIm5vdCBlbm91Z2ggZnJlZSBtZW1vcnksIG5lZWQgYXQgbGVhc3QgNCBHQiIpCiAgICAgICAgIGRhdGEgPSBiJ3gnICogc2l6ZQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhPdmVyZmxvd0Vycm9yLCB6bGliLmNvbXByZXNzLCBkYXRhLCAxKQpAQCAtNDIxLDYgKzQyNSwzNSBAQAogICAgICAgICBkY28gPSB6bGliLmRlY29tcHJlc3NvYmooKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRjby5mbHVzaCgpLCBiIiIpICMgUmV0dXJucyBub3RoaW5nCiAKKyAgICBkZWYgdGVzdF9kaWN0aW9uYXJ5KHNlbGYpOgorICAgICAgICBoID0gSEFNTEVUX1NDRU5FCisgICAgICAgICMgQnVpbGQgYSBzaW11bGF0ZWQgZGljdGlvbmFyeSBvdXQgb2YgdGhlIHdvcmRzIGluIEhBTUxFVC4KKyAgICAgICAgd29yZHMgPSBoLnNwbGl0KCkKKyAgICAgICAgcmFuZG9tLnNodWZmbGUod29yZHMpCisgICAgICAgIHpkaWN0ID0gYicnLmpvaW4od29yZHMpCisgICAgICAgICMgVXNlIGl0IHRvIGNvbXByZXNzIEhBTUxFVC4KKyAgICAgICAgY28gPSB6bGliLmNvbXByZXNzb2JqKHpkaWN0PXpkaWN0KQorICAgICAgICBjZCA9IGNvLmNvbXByZXNzKGgpICsgY28uZmx1c2goKQorICAgICAgICAjIFZlcmlmeSB0aGF0IGl0IHdpbGwgZGVjb21wcmVzcyB3aXRoIHRoZSBkaWN0aW9uYXJ5LgorICAgICAgICBkY28gPSB6bGliLmRlY29tcHJlc3NvYmooemRpY3Q9emRpY3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZGNvLmRlY29tcHJlc3MoY2QpICsgZGNvLmZsdXNoKCksIGgpCisgICAgICAgICMgVmVyaWZ5IHRoYXQgaXQgZmFpbHMgd2hlbiBub3QgZ2l2ZW4gdGhlIGRpY3Rpb25hcnkuCisgICAgICAgIGRjbyA9IHpsaWIuZGVjb21wcmVzc29iaigpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKHpsaWIuZXJyb3IsIGRjby5kZWNvbXByZXNzLCBjZCkKKworICAgIGRlZiB0ZXN0X2RpY3Rpb25hcnlfc3RyZWFtaW5nKHNlbGYpOgorICAgICAgICAjIFRoaXMgc2ltdWxhdGVzIHRoZSByZXVzZSBvZiBhIGNvbXByZXNzb3Igb2JqZWN0IGZvciBjb21wcmVzc2luZworICAgICAgICAjIHNldmVyYWwgc2VwYXJhdGUgZGF0YSBzdHJlYW1zLgorICAgICAgICBjbyA9IHpsaWIuY29tcHJlc3NvYmooemRpY3Q9SEFNTEVUX1NDRU5FKQorICAgICAgICBkbyA9IHpsaWIuZGVjb21wcmVzc29iaih6ZGljdD1IQU1MRVRfU0NFTkUpCisgICAgICAgIHBpZWNlID0gSEFNTEVUX1NDRU5FWzEwMDA6MTUwMF0KKyAgICAgICAgZDAgPSBjby5jb21wcmVzcyhwaWVjZSkgKyBjby5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgZDEgPSBjby5jb21wcmVzcyhwaWVjZVsxMDA6XSkgKyBjby5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKKyAgICAgICAgZDIgPSBjby5jb21wcmVzcyhwaWVjZVs6LTEwMF0pICsgY28uZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZG8uZGVjb21wcmVzcyhkMCksIHBpZWNlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRvLmRlY29tcHJlc3MoZDEpLCBwaWVjZVsxMDA6XSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkby5kZWNvbXByZXNzKGQyKSwgcGllY2VbOi0xMDBdKQorCiAgICAgZGVmIHRlc3RfZGVjb21wcmVzc19pbmNvbXBsZXRlX3N0cmVhbShzZWxmKToKICAgICAgICAgIyBUaGlzIGlzICdmb28nLCBkZWZsYXRlZAogICAgICAgICB4ID0gYid4XHg5Y0tceGNiXHhjZlx4MDdceDAwXHgwMlx4ODJceDAxRScKQEAgLTQzNCw2ICs0NjcsMjYgQEAKICAgICAgICAgeSArPSBkY28uZmx1c2goKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHksIGInZm9vJykKIAorICAgIGRlZiB0ZXN0X2RlY29tcHJlc3NfZW9mKHNlbGYpOgorICAgICAgICB4ID0gYid4XHg5Y0tceGNiXHhjZlx4MDdceDAwXHgwMlx4ODJceDAxRScgICMgJ2ZvbycKKyAgICAgICAgZGNvID0gemxpYi5kZWNvbXByZXNzb2JqKCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShkY28uZW9mKQorICAgICAgICBkY28uZGVjb21wcmVzcyh4WzotNV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZGNvLmVvZikKKyAgICAgICAgZGNvLmRlY29tcHJlc3MoeFstNTpdKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoZGNvLmVvZikKKyAgICAgICAgZGNvLmZsdXNoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRjby5lb2YpCisKKyAgICBkZWYgdGVzdF9kZWNvbXByZXNzX2VvZl9pbmNvbXBsZXRlX3N0cmVhbShzZWxmKToKKyAgICAgICAgeCA9IGIneFx4OWNLXHhjYlx4Y2ZceDA3XHgwMFx4MDJceDgyXHgwMUUnICAjICdmb28nCisgICAgICAgIGRjbyA9IHpsaWIuZGVjb21wcmVzc29iaigpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZGNvLmVvZikKKyAgICAgICAgZGNvLmRlY29tcHJlc3MoeFs6LTVdKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGRjby5lb2YpCisgICAgICAgIGRjby5mbHVzaCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZGNvLmVvZikKKwogICAgIGlmIGhhc2F0dHIoemxpYi5jb21wcmVzc29iaigpLCAiY29weSIpOgogICAgICAgICBkZWYgdGVzdF9jb21wcmVzc2NvcHkoc2VsZik6CiAgICAgICAgICAgICAjIFRlc3QgY29weWluZyBhIGNvbXByZXNzaW9uIG9iamVjdApAQCAtNTEwLDEwICs1NjMsOCBAQAogICAgICAgICBkZWNvbXByZXNzID0gbGFtYmRhIHM6IGQuZGVjb21wcmVzcyhzKSArIGQuZmx1c2goKQogICAgICAgICBzZWxmLmNoZWNrX2JpZ19kZWNvbXByZXNzX2J1ZmZlcihzaXplLCBkZWNvbXByZXNzKQogCi0gICAgQGJpZ21lbXRlc3Qoc2l6ZT1fNEcgKyAxMDAsIG1lbXVzZT0xKQorICAgIEBiaWdtZW10ZXN0KHNpemU9XzRHICsgMTAwLCBtZW11c2U9MSwgZHJ5X3J1bj1GYWxzZSkKICAgICBkZWYgdGVzdF9sZW5ndGhfb3ZlcmZsb3coc2VsZiwgc2l6ZSk6Ci0gICAgICAgIGlmIHNpemUgPCBfNEcgKyAxMDA6Ci0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KCJub3QgZW5vdWdoIGZyZWUgbWVtb3J5LCBuZWVkIGF0IGxlYXN0IDQgR0IiKQogICAgICAgICBkYXRhID0gYid4JyAqIHNpemUKICAgICAgICAgYyA9IHpsaWIuY29tcHJlc3NvYmooMSkKICAgICAgICAgZCA9IHpsaWIuZGVjb21wcmVzc29iaigpCkBAIC02MTQsNiArNjY1LDcgQEAKIAogZGVmIHRlc3RfbWFpbigpOgogICAgIHN1cHBvcnQucnVuX3VuaXR0ZXN0KAorICAgICAgICBWZXJzaW9uVGVzdENhc2UsCiAgICAgICAgIENoZWNrc3VtVGVzdENhc2UsCiAgICAgICAgIENoZWNrc3VtQmlnQnVmZmVyVGVzdENhc2UsCiAgICAgICAgIEV4Y2VwdGlvblRlc3RDYXNlLApkaWZmIC0tZ2l0IGEvTGliL3Rlc3QvdGhyZWFkZWRfaW1wb3J0X2hhbmdlcnMucHkgYi9MaWIvdGVzdC90aHJlYWRlZF9pbXBvcnRfaGFuZ2Vycy5weQppbmRleCBhZGYwM2UzLi41NDg0ZTYwIDEwMDY0NAotLS0gYS9MaWIvdGVzdC90aHJlYWRlZF9pbXBvcnRfaGFuZ2Vycy5weQorKysgYi9MaWIvdGVzdC90aHJlYWRlZF9pbXBvcnRfaGFuZ2Vycy5weQpAQCAtMzUsOCArMzUsMTEgQEAKICAgICAgICAgKCJvcy5wYXRoLmFic3BhdGgiLCBvcy5wYXRoLmFic3BhdGgsICgnLicsKSksCiAgICAgICAgIF06CiAKLSAgICB0ID0gV29ya2VyKGZ1bmMsIGFyZ3MpCi0gICAgdC5zdGFydCgpCi0gICAgdC5qb2luKFRJTUVPVVQpCi0gICAgaWYgdC5pc19hbGl2ZSgpOgotICAgICAgICBlcnJvcnMuYXBwZW5kKCIlcyBhcHBlYXJlZCB0byBoYW5nIiAlIG5hbWUpCisgICAgdHJ5OgorICAgICAgICB0ID0gV29ya2VyKGZ1bmMsIGFyZ3MpCisgICAgICAgIHQuc3RhcnQoKQorICAgICAgICB0LmpvaW4oVElNRU9VVCkKKyAgICAgICAgaWYgdC5pc19hbGl2ZSgpOgorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgiJXMgYXBwZWFyZWQgdG8gaGFuZyIgJSBuYW1lKQorICAgIGZpbmFsbHk6CisgICAgICAgIGRlbCB0CmRpZmYgLS1naXQgYS9MaWIvdGVzdC90b2tlbml6ZV90ZXN0cy50eHQgYi9MaWIvdGVzdC90b2tlbml6ZV90ZXN0cy50eHQKaW5kZXggMDZjODNiMC4uMmM1ZmIxMCAxMDA2NDQKLS0tIGEvTGliL3Rlc3QvdG9rZW5pemVfdGVzdHMudHh0CisrKyBiL0xpYi90ZXN0L3Rva2VuaXplX3Rlc3RzLnR4dApAQCAtMTE0LDggKzExNCwxMiBAQAogeSA9IGIiYWJjIiArIEIiQUJDIgogeCA9IGJyJ2FiYycgKyBCcidBQkMnICsgYlInQUJDJyArIEJSJ0FCQycKIHkgPSBiciJhYmMiICsgQnIiQUJDIiArIGJSIkFCQyIgKyBCUiJBQkMiCit4ID0gcmInYWJjJyArIHJCJ0FCQycgKyBSYidBQkMnICsgUkInQUJDJworeSA9IHJiImFiYyIgKyByQiJBQkMiICsgUmIiQUJDIiArIFJCIkFCQyIKIHggPSBicidcXCcgKyBCUidcXCcKK3ggPSByYidcXCcgKyBSQidcXCcKIHggPSBicidcJycgKyAnJworeCA9IHJiJ1wnJyArICcnCiB5ID0gYnInJycKIGZvbyBiYXIgXFwKIGJheicnJyArIEJSJycnCkBAIC0xMjQsNiArMTI4LDEwIEBACiBiYXIgXFwgYmF6CiAiIiIgKyBiUicnJ3NwYW0KICcnJworeSA9IHJCIiIiZm9vCitiYXIgXFwgYmF6CisiIiIgKyBSYicnJ3NwYW0KKycnJwogCiAjIEluZGVudGF0aW9uCiBpZiAxOgpkaWZmIC0tZ2l0IGEvTGliL3RleHR3cmFwLnB5IGIvTGliL3RleHR3cmFwLnB5CmluZGV4IGRmYjQwMDUuLjcwMjRkNGQgMTAwNjQ0Ci0tLSBhL0xpYi90ZXh0d3JhcC5weQorKysgYi9MaWIvdGV4dHdyYXAucHkKQEAgLTUsOSArNSw5IEBACiAjIENvcHlyaWdodCAoQykgMjAwMiwgMjAwMyBQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbi4KICMgV3JpdHRlbiBieSBHcmVnIFdhcmQgPGd3YXJkQHB5dGhvbi5uZXQ+CiAKLWltcG9ydCBzdHJpbmcsIHJlCitpbXBvcnQgcmUKIAotX19hbGxfXyA9IFsnVGV4dFdyYXBwZXInLCAnd3JhcCcsICdmaWxsJywgJ2RlZGVudCddCitfX2FsbF9fID0gWydUZXh0V3JhcHBlcicsICd3cmFwJywgJ2ZpbGwnLCAnZGVkZW50JywgJ2luZGVudCddCiAKICMgSGFyZGNvZGUgdGhlIHJlY29nbml6ZWQgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzIHRvIHRoZSBVUy1BU0NJSQogIyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMuICBUaGUgbWFpbiByZWFzb24gZm9yIGRvaW5nIHRoaXMgaXMgdGhhdCBpbgpAQCAtMzksOCArMzksMTEgQEAKICAgICAgICAgb2Ygd3JhcHBlZCBvdXRwdXQ7IGFsc28gY291bnRzIHRvd2FyZHMgZWFjaCBsaW5lJ3Mgd2lkdGguCiAgICAgICBleHBhbmRfdGFicyAoZGVmYXVsdDogdHJ1ZSkKICAgICAgICAgRXhwYW5kIHRhYnMgaW4gaW5wdXQgdGV4dCB0byBzcGFjZXMgYmVmb3JlIGZ1cnRoZXIgcHJvY2Vzc2luZy4KLSAgICAgICAgRWFjaCB0YWIgd2lsbCBiZWNvbWUgMSAuLiA4IHNwYWNlcywgZGVwZW5kaW5nIG9uIGl0cyBwb3NpdGlvbiBpbgotICAgICAgICBpdHMgbGluZS4gIElmIGZhbHNlLCBlYWNoIHRhYiBpcyB0cmVhdGVkIGFzIGEgc2luZ2xlIGNoYXJhY3Rlci4KKyAgICAgICAgRWFjaCB0YWIgd2lsbCBiZWNvbWUgMCAuLiAndGFic2l6ZScgc3BhY2VzLCBkZXBlbmRpbmcgb24gaXRzIHBvc2l0aW9uCisgICAgICAgIGluIGl0cyBsaW5lLiAgSWYgZmFsc2UsIGVhY2ggdGFiIGlzIHRyZWF0ZWQgYXMgYSBzaW5nbGUgY2hhcmFjdGVyLgorICAgICAgdGFic2l6ZSAoZGVmYXVsdDogOCkKKyAgICAgICAgRXhwYW5kIHRhYnMgaW4gaW5wdXQgdGV4dCB0byAwIC4uICd0YWJzaXplJyBzcGFjZXMsIHVubGVzcworICAgICAgICAnZXhwYW5kX3RhYnMnIGlzIGZhbHNlLgogICAgICAgcmVwbGFjZV93aGl0ZXNwYWNlIChkZWZhdWx0OiB0cnVlKQogICAgICAgICBSZXBsYWNlIGFsbCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgaW4gdGhlIGlucHV0IHRleHQgYnkgc3BhY2VzCiAgICAgICAgIGFmdGVyIHRhYiBleHBhbnNpb24uICBOb3RlIHRoYXQgaWYgZXhwYW5kX3RhYnMgaXMgZmFsc2UgYW5kCkBAIC0xMDAsNyArMTAzLDggQEAKICAgICAgICAgICAgICAgICAgZml4X3NlbnRlbmNlX2VuZGluZ3M9RmFsc2UsCiAgICAgICAgICAgICAgICAgIGJyZWFrX2xvbmdfd29yZHM9VHJ1ZSwKICAgICAgICAgICAgICAgICAgZHJvcF93aGl0ZXNwYWNlPVRydWUsCi0gICAgICAgICAgICAgICAgIGJyZWFrX29uX2h5cGhlbnM9VHJ1ZSk6CisgICAgICAgICAgICAgICAgIGJyZWFrX29uX2h5cGhlbnM9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgdGFic2l6ZT04KToKICAgICAgICAgc2VsZi53aWR0aCA9IHdpZHRoCiAgICAgICAgIHNlbGYuaW5pdGlhbF9pbmRlbnQgPSBpbml0aWFsX2luZGVudAogICAgICAgICBzZWxmLnN1YnNlcXVlbnRfaW5kZW50ID0gc3Vic2VxdWVudF9pbmRlbnQKQEAgLTExMCw2ICsxMTQsNyBAQAogICAgICAgICBzZWxmLmJyZWFrX2xvbmdfd29yZHMgPSBicmVha19sb25nX3dvcmRzCiAgICAgICAgIHNlbGYuZHJvcF93aGl0ZXNwYWNlID0gZHJvcF93aGl0ZXNwYWNlCiAgICAgICAgIHNlbGYuYnJlYWtfb25faHlwaGVucyA9IGJyZWFrX29uX2h5cGhlbnMKKyAgICAgICAgc2VsZi50YWJzaXplID0gdGFic2l6ZQogCiAKICAgICAjIC0tIFByaXZhdGUgbWV0aG9kcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTIzLDcgKzEyOCw3IEBACiAgICAgICAgIGJlY29tZXMgIiBmb28gICAgYmFyICBiYXoiLgogICAgICAgICAiIiIKICAgICAgICAgaWYgc2VsZi5leHBhbmRfdGFiczoKLSAgICAgICAgICAgIHRleHQgPSB0ZXh0LmV4cGFuZHRhYnMoKQorICAgICAgICAgICAgdGV4dCA9IHRleHQuZXhwYW5kdGFicyhzZWxmLnRhYnNpemUpCiAgICAgICAgIGlmIHNlbGYucmVwbGFjZV93aGl0ZXNwYWNlOgogICAgICAgICAgICAgdGV4dCA9IHRleHQudHJhbnNsYXRlKHNlbGYudW5pY29kZV93aGl0ZXNwYWNlX3RyYW5zKQogICAgICAgICByZXR1cm4gdGV4dApAQCAtMzgxLDYgKzM4NiwyNSBAQAogICAgICAgICB0ZXh0ID0gcmUuc3ViKHInKD9tKV4nICsgbWFyZ2luLCAnJywgdGV4dCkKICAgICByZXR1cm4gdGV4dAogCisKK2RlZiBpbmRlbnQodGV4dCwgcHJlZml4LCBwcmVkaWNhdGU9Tm9uZSk6CisgICAgIiIiQWRkcyAncHJlZml4JyB0byB0aGUgYmVnaW5uaW5nIG9mIHNlbGVjdGVkIGxpbmVzIGluICd0ZXh0Jy4KKworICAgIElmICdwcmVkaWNhdGUnIGlzIHByb3ZpZGVkLCAncHJlZml4JyB3aWxsIG9ubHkgYmUgYWRkZWQgdG8gdGhlIGxpbmVzCisgICAgd2hlcmUgJ3ByZWRpY2F0ZShsaW5lKScgaXMgVHJ1ZS4gSWYgJ3ByZWRpY2F0ZScgaXMgbm90IHByb3ZpZGVkLAorICAgIGl0IHdpbGwgZGVmYXVsdCB0byBhZGRpbmcgJ3ByZWZpeCcgdG8gYWxsIG5vbi1lbXB0eSBsaW5lcyB0aGF0IGRvIG5vdAorICAgIGNvbnNpc3Qgc29sZWx5IG9mIHdoaXRlc3BhY2UgY2hhcmFjdGVycy4KKyAgICAiIiIKKyAgICBpZiBwcmVkaWNhdGUgaXMgTm9uZToKKyAgICAgICAgZGVmIHByZWRpY2F0ZShsaW5lKToKKyAgICAgICAgICAgIHJldHVybiBsaW5lLnN0cmlwKCkKKworICAgIGRlZiBwcmVmaXhlZF9saW5lcygpOgorICAgICAgICBmb3IgbGluZSBpbiB0ZXh0LnNwbGl0bGluZXMoVHJ1ZSk6CisgICAgICAgICAgICB5aWVsZCAocHJlZml4ICsgbGluZSBpZiBwcmVkaWNhdGUobGluZSkgZWxzZSBsaW5lKQorICAgIHJldHVybiAnJy5qb2luKHByZWZpeGVkX2xpbmVzKCkpCisKKwogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgICAjcHJpbnQgZGVkZW50KCJcdGZvb1xuXHRiYXIiKQogICAgICNwcmludCBkZWRlbnQoIiAgXHRoZWxsbyB0aGVyZVxuICBcdCAgaG93IGFyZSB5b3U/IikKZGlmZiAtLWdpdCBhL0xpYi90aHJlYWRpbmcucHkgYi9MaWIvdGhyZWFkaW5nLnB5CmluZGV4IDU4ZmZhN2UuLjZjMzRkNDkgMTAwNjQ0Ci0tLSBhL0xpYi90aHJlYWRpbmcucHkKKysrIGIvTGliL3RocmVhZGluZy5weQpAQCAtMyw3ICszLDExIEBACiBpbXBvcnQgc3lzIGFzIF9zeXMKIGltcG9ydCBfdGhyZWFkCiAKLWZyb20gdGltZSBpbXBvcnQgdGltZSBhcyBfdGltZSwgc2xlZXAgYXMgX3NsZWVwCitmcm9tIHRpbWUgaW1wb3J0IHNsZWVwIGFzIF9zbGVlcAordHJ5OgorICAgIGZyb20gdGltZSBpbXBvcnQgbW9ub3RvbmljIGFzIF90aW1lCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSB0aW1lIGltcG9ydCB0aW1lIGFzIF90aW1lCiBmcm9tIHRyYWNlYmFjayBpbXBvcnQgZm9ybWF0X2V4YyBhcyBfZm9ybWF0X2V4YwogZnJvbSBfd2Vha3JlZnNldCBpbXBvcnQgV2Vha1NldAogCkBAIC0xOSwxMiArMjMsMTIgQEAKIAogX19hbGxfXyA9IFsnYWN0aXZlX2NvdW50JywgJ0NvbmRpdGlvbicsICdjdXJyZW50X3RocmVhZCcsICdlbnVtZXJhdGUnLCAnRXZlbnQnLAogICAgICAgICAgICAnTG9jaycsICdSTG9jaycsICdTZW1hcGhvcmUnLCAnQm91bmRlZFNlbWFwaG9yZScsICdUaHJlYWQnLCAnQmFycmllcicsCi0gICAgICAgICAgICdUaW1lcicsICdzZXRwcm9maWxlJywgJ3NldHRyYWNlJywgJ2xvY2FsJywgJ3N0YWNrX3NpemUnXQorICAgICAgICAgICAnVGltZXInLCAnVGhyZWFkRXJyb3InLCAnc2V0cHJvZmlsZScsICdzZXR0cmFjZScsICdsb2NhbCcsICdzdGFja19zaXplJ10KIAogIyBSZW5hbWUgc29tZSBzdHVmZiBzbyAiZnJvbSB0aHJlYWRpbmcgaW1wb3J0ICoiIGlzIHNhZmUKIF9zdGFydF9uZXdfdGhyZWFkID0gX3RocmVhZC5zdGFydF9uZXdfdGhyZWFkCiBfYWxsb2NhdGVfbG9jayA9IF90aHJlYWQuYWxsb2NhdGVfbG9jawotX2dldF9pZGVudCA9IF90aHJlYWQuZ2V0X2lkZW50CitnZXRfaWRlbnQgPSBfdGhyZWFkLmdldF9pZGVudAogVGhyZWFkRXJyb3IgPSBfdGhyZWFkLmVycm9yCiB0cnk6CiAgICAgX0NSTG9jayA9IF90aHJlYWQuUkxvY2sKQEAgLTM0LDQwICszOCw2IEBACiBkZWwgX3RocmVhZAogCiAKLSMgRGVidWcgc3VwcG9ydCAoYWRhcHRlZCBmcm9tIGlob29rcy5weSkuCi0KLV9WRVJCT1NFID0gRmFsc2UKLQotaWYgX19kZWJ1Z19fOgotCi0gICAgY2xhc3MgX1ZlcmJvc2Uob2JqZWN0KToKLQotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgdmVyYm9zZT1Ob25lKToKLSAgICAgICAgICAgIGlmIHZlcmJvc2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICB2ZXJib3NlID0gX1ZFUkJPU0UKLSAgICAgICAgICAgIHNlbGYuX3ZlcmJvc2UgPSB2ZXJib3NlCi0KLSAgICAgICAgZGVmIF9ub3RlKHNlbGYsIGZvcm1hdCwgKmFyZ3MpOgotICAgICAgICAgICAgaWYgc2VsZi5fdmVyYm9zZToKLSAgICAgICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQgJSBhcmdzCi0gICAgICAgICAgICAgICAgIyBJc3N1ZSAjNDE4ODogY2FsbGluZyBjdXJyZW50X3RocmVhZCgpIGNhbiBpbmN1ciBhbiBpbmZpbml0ZQotICAgICAgICAgICAgICAgICMgcmVjdXJzaW9uIGlmIGl0IGhhcyB0byBjcmVhdGUgYSBEdW1teVRocmVhZCBvbiB0aGUgZmx5LgotICAgICAgICAgICAgICAgIGlkZW50ID0gX2dldF9pZGVudCgpCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBuYW1lID0gX2FjdGl2ZVtpZGVudF0ubmFtZQotICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9ICI8T1MgdGhyZWFkICVkPiIgJSBpZGVudAotICAgICAgICAgICAgICAgIGZvcm1hdCA9ICIlczogJXNcbiIgJSAobmFtZSwgZm9ybWF0KQotICAgICAgICAgICAgICAgIF9zeXMuc3RkZXJyLndyaXRlKGZvcm1hdCkKLQotZWxzZToKLSAgICAjIERpc2FibGUgdGhpcyB3aGVuIHVzaW5nICJweXRob24gLU8iCi0gICAgY2xhc3MgX1ZlcmJvc2Uob2JqZWN0KToKLSAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZlcmJvc2U9Tm9uZSk6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGRlZiBfbm90ZShzZWxmLCAqYXJncyk6Ci0gICAgICAgICAgICBwYXNzCi0KICMgU3VwcG9ydCBmb3IgcHJvZmlsZSBhbmQgdHJhY2UgaG9va3MKIAogX3Byb2ZpbGVfaG9vayA9IE5vbmUKQEAgLTg1LDE3ICs1NSwxNCBAQAogCiBMb2NrID0gX2FsbG9jYXRlX2xvY2sKIAotZGVmIFJMb2NrKHZlcmJvc2U9Tm9uZSwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICBpZiB2ZXJib3NlIGlzIE5vbmU6Ci0gICAgICAgIHZlcmJvc2UgPSBfVkVSQk9TRQotICAgIGlmIChfX2RlYnVnX18gYW5kIHZlcmJvc2UpIG9yIF9DUkxvY2sgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIF9QeVJMb2NrKHZlcmJvc2UsICphcmdzLCAqKmt3YXJncykKK2RlZiBSTG9jaygqYXJncywgKiprd2FyZ3MpOgorICAgIGlmIF9DUkxvY2sgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIF9QeVJMb2NrKCphcmdzLCAqKmt3YXJncykKICAgICByZXR1cm4gX0NSTG9jaygqYXJncywgKiprd2FyZ3MpCiAKLWNsYXNzIF9STG9jayhfVmVyYm9zZSk6CitjbGFzcyBfUkxvY2s6CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdmVyYm9zZT1Ob25lKToKLSAgICAgICAgX1ZlcmJvc2UuX19pbml0X18oc2VsZiwgdmVyYm9zZSkKKyAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYuX2Jsb2NrID0gX2FsbG9jYXRlX2xvY2soKQogICAgICAgICBzZWxmLl9vd25lciA9IE5vbmUKICAgICAgICAgc2VsZi5fY291bnQgPSAwCkBAIC0xMTAsMzcgKzc3LDI1IEBACiAgICAgICAgICAgICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIG93bmVyLCBzZWxmLl9jb3VudCkKIAogICAgIGRlZiBhY3F1aXJlKHNlbGYsIGJsb2NraW5nPVRydWUsIHRpbWVvdXQ9LTEpOgotICAgICAgICBtZSA9IF9nZXRfaWRlbnQoKQorICAgICAgICBtZSA9IGdldF9pZGVudCgpCiAgICAgICAgIGlmIHNlbGYuX293bmVyID09IG1lOgogICAgICAgICAgICAgc2VsZi5fY291bnQgPSBzZWxmLl9jb3VudCArIDEKLSAgICAgICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy5hY3F1aXJlKCVzKTogcmVjdXJzaXZlIHN1Y2Nlc3MiLCBzZWxmLCBibG9ja2luZykKICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgIHJjID0gc2VsZi5fYmxvY2suYWNxdWlyZShibG9ja2luZywgdGltZW91dCkKICAgICAgICAgaWYgcmM6CiAgICAgICAgICAgICBzZWxmLl9vd25lciA9IG1lCiAgICAgICAgICAgICBzZWxmLl9jb3VudCA9IDEKLSAgICAgICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy5hY3F1aXJlKCVzKTogaW5pdGlhbCBzdWNjZXNzIiwgc2VsZiwgYmxvY2tpbmcpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBfX2RlYnVnX186Ci0gICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMuYWNxdWlyZSglcyk6IGZhaWx1cmUiLCBzZWxmLCBibG9ja2luZykKICAgICAgICAgcmV0dXJuIHJjCiAKICAgICBfX2VudGVyX18gPSBhY3F1aXJlCiAKICAgICBkZWYgcmVsZWFzZShzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fb3duZXIgIT0gX2dldF9pZGVudCgpOgorICAgICAgICBpZiBzZWxmLl9vd25lciAhPSBnZXRfaWRlbnQoKToKICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiY2Fubm90IHJlbGVhc2UgdW4tYWNxdWlyZWQgbG9jayIpCiAgICAgICAgIHNlbGYuX2NvdW50ID0gY291bnQgPSBzZWxmLl9jb3VudCAtIDEKICAgICAgICAgaWYgbm90IGNvdW50OgogICAgICAgICAgICAgc2VsZi5fb3duZXIgPSBOb25lCiAgICAgICAgICAgICBzZWxmLl9ibG9jay5yZWxlYXNlKCkKLSAgICAgICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy5yZWxlYXNlKCk6IGZpbmFsIHJlbGVhc2UiLCBzZWxmKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgICAgIHNlbGYuX25vdGUoIiVzLnJlbGVhc2UoKTogbm9uLWZpbmFsIHJlbGVhc2UiLCBzZWxmKQogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsIHQsIHYsIHRiKToKICAgICAgICAgc2VsZi5yZWxlYXNlKCkKQEAgLTE1MCwxMiArMTA1LDEwIEBACiAgICAgZGVmIF9hY3F1aXJlX3Jlc3RvcmUoc2VsZiwgc3RhdGUpOgogICAgICAgICBzZWxmLl9ibG9jay5hY3F1aXJlKCkKICAgICAgICAgc2VsZi5fY291bnQsIHNlbGYuX293bmVyID0gc3RhdGUKLSAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMuX2FjcXVpcmVfcmVzdG9yZSgpIiwgc2VsZikKIAogICAgIGRlZiBfcmVsZWFzZV9zYXZlKHNlbGYpOgotICAgICAgICBpZiBfX2RlYnVnX186Ci0gICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy5fcmVsZWFzZV9zYXZlKCkiLCBzZWxmKQorICAgICAgICBpZiBzZWxmLl9jb3VudCA9PSAwOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJjYW5ub3QgcmVsZWFzZSB1bi1hY3F1aXJlZCBsb2NrIikKICAgICAgICAgY291bnQgPSBzZWxmLl9jb3VudAogICAgICAgICBzZWxmLl9jb3VudCA9IDAKICAgICAgICAgb3duZXIgPSBzZWxmLl9vd25lcgpAQCAtMTY0LDE4ICsxMTcsMTQgQEAKICAgICAgICAgcmV0dXJuIChjb3VudCwgb3duZXIpCiAKICAgICBkZWYgX2lzX293bmVkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fb3duZXIgPT0gX2dldF9pZGVudCgpCisgICAgICAgIHJldHVybiBzZWxmLl9vd25lciA9PSBnZXRfaWRlbnQoKQogCiBfUHlSTG9jayA9IF9STG9jawogCiAKLWRlZiBDb25kaXRpb24oKmFyZ3MsICoqa3dhcmdzKToKLSAgICByZXR1cm4gX0NvbmRpdGlvbigqYXJncywgKiprd2FyZ3MpCitjbGFzcyBDb25kaXRpb246CiAKLWNsYXNzIF9Db25kaXRpb24oX1ZlcmJvc2UpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvY2s9Tm9uZSwgdmVyYm9zZT1Ob25lKToKLSAgICAgICAgX1ZlcmJvc2UuX19pbml0X18oc2VsZiwgdmVyYm9zZSkKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9jaz1Ob25lKToKICAgICAgICAgaWYgbG9jayBpcyBOb25lOgogICAgICAgICAgICAgbG9jayA9IFJMb2NrKCkKICAgICAgICAgc2VsZi5fbG9jayA9IGxvY2sKQEAgLTIzNCwyMyArMTgzLDE2IEBACiAgICAgICAgICAgICBpZiB0aW1lb3V0IGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgd2FpdGVyLmFjcXVpcmUoKQogICAgICAgICAgICAgICAgIGdvdGl0ID0gVHJ1ZQotICAgICAgICAgICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMud2FpdCgpOiBnb3QgaXQiLCBzZWxmKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBpZiB0aW1lb3V0ID4gMDoKICAgICAgICAgICAgICAgICAgICAgZ290aXQgPSB3YWl0ZXIuYWNxdWlyZShUcnVlLCB0aW1lb3V0KQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIGdvdGl0ID0gd2FpdGVyLmFjcXVpcmUoRmFsc2UpCiAgICAgICAgICAgICAgICAgaWYgbm90IGdvdGl0OgotICAgICAgICAgICAgICAgICAgICBpZiBfX2RlYnVnX186Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy53YWl0KCVzKTogdGltZWQgb3V0Iiwgc2VsZiwgdGltZW91dCkKICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fd2FpdGVycy5yZW1vdmUod2FpdGVyKQogICAgICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBpZiBfX2RlYnVnX186Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy53YWl0KCVzKTogZ290IGl0Iiwgc2VsZiwgdGltZW91dCkKICAgICAgICAgICAgIHJldHVybiBnb3RpdAogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgc2VsZi5fYWNxdWlyZV9yZXN0b3JlKHNhdmVkX3N0YXRlKQpAQCAtMjY2LDE5ICsyMDgsOSBAQAogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHdhaXR0aW1lID0gZW5kdGltZSAtIF90aW1lKCkKICAgICAgICAgICAgICAgICAgICAgaWYgd2FpdHRpbWUgPD0gMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy53YWl0X2ZvciglciwgJXIpOiBUaW1lZCBvdXQuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIHByZWRpY2F0ZSwgdGltZW91dCkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBpZiBfX2RlYnVnX186Ci0gICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMud2FpdF9mb3IoJXIsICVyKTogV2FpdGluZyB3aXRoIHRpbWVvdXQ9JXMuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIHByZWRpY2F0ZSwgdGltZW91dCwgd2FpdHRpbWUpCiAgICAgICAgICAgICBzZWxmLndhaXQod2FpdHRpbWUpCiAgICAgICAgICAgICByZXN1bHQgPSBwcmVkaWNhdGUoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgICAgIHNlbGYuX25vdGUoIiVzLndhaXRfZm9yKCVyLCAlcik6IFN1Y2Nlc3MuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIHByZWRpY2F0ZSwgdGltZW91dCkKICAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAgICAgZGVmIG5vdGlmeShzZWxmLCBuPTEpOgpAQCAtMjg3LDExICsyMTksNyBAQAogICAgICAgICBfX3dhaXRlcnMgPSBzZWxmLl93YWl0ZXJzCiAgICAgICAgIHdhaXRlcnMgPSBfX3dhaXRlcnNbOm5dCiAgICAgICAgIGlmIG5vdCB3YWl0ZXJzOgotICAgICAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgICAgIHNlbGYuX25vdGUoIiVzLm5vdGlmeSgpOiBubyB3YWl0ZXJzIiwgc2VsZikKICAgICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLl9ub3RlKCIlcy5ub3RpZnkoKTogbm90aWZ5aW5nICVkIHdhaXRlciVzIiwgc2VsZiwgbiwKLSAgICAgICAgICAgICAgICAgICBuIT0xIGFuZCAicyIgb3IgIiIpCiAgICAgICAgIGZvciB3YWl0ZXIgaW4gd2FpdGVyczoKICAgICAgICAgICAgIHdhaXRlci5yZWxlYXNlKCkKICAgICAgICAgICAgIHRyeToKQEAgLTMwNSwxNyArMjMzLDEzIEBACiAgICAgbm90aWZ5QWxsID0gbm90aWZ5X2FsbAogCiAKLWRlZiBTZW1hcGhvcmUoKmFyZ3MsICoqa3dhcmdzKToKLSAgICByZXR1cm4gX1NlbWFwaG9yZSgqYXJncywgKiprd2FyZ3MpCi0KLWNsYXNzIF9TZW1hcGhvcmUoX1ZlcmJvc2UpOgorY2xhc3MgU2VtYXBob3JlOgogCiAgICAgIyBBZnRlciBUaW0gUGV0ZXJzJyBzZW1hcGhvcmUgY2xhc3MsIGJ1dCBub3QgcXVpdGUgdGhlIHNhbWUgKG5vIG1heGltdW0pCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsdWU9MSwgdmVyYm9zZT1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsdWU9MSk6CiAgICAgICAgIGlmIHZhbHVlIDwgMDoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInNlbWFwaG9yZSBpbml0aWFsIHZhbHVlIG11c3QgYmUgPj0gMCIpCi0gICAgICAgIF9WZXJib3NlLl9faW5pdF9fKHNlbGYsIHZlcmJvc2UpCiAgICAgICAgIHNlbGYuX2NvbmQgPSBDb25kaXRpb24oTG9jaygpKQogICAgICAgICBzZWxmLl92YWx1ZSA9IHZhbHVlCiAKQEAgLTMyOCw5ICsyNTIsNiBAQAogICAgICAgICB3aGlsZSBzZWxmLl92YWx1ZSA9PSAwOgogICAgICAgICAgICAgaWYgbm90IGJsb2NraW5nOgogICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBpZiBfX2RlYnVnX186Ci0gICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMuYWNxdWlyZSglcyk6IGJsb2NrZWQgd2FpdGluZywgdmFsdWU9JXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwgYmxvY2tpbmcsIHNlbGYuX3ZhbHVlKQogICAgICAgICAgICAgaWYgdGltZW91dCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBpZiBlbmR0aW1lIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIGVuZHRpbWUgPSBfdGltZSgpICsgdGltZW91dApAQCAtMzQxLDkgKzI2Miw2IEBACiAgICAgICAgICAgICBzZWxmLl9jb25kLndhaXQodGltZW91dCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX3ZhbHVlID0gc2VsZi5fdmFsdWUgLSAxCi0gICAgICAgICAgICBpZiBfX2RlYnVnX186Ci0gICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMuYWNxdWlyZTogc3VjY2VzcywgdmFsdWU9JXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZiwgc2VsZi5fdmFsdWUpCiAgICAgICAgICAgICByYyA9IFRydWUKICAgICAgICAgc2VsZi5fY29uZC5yZWxlYXNlKCkKICAgICAgICAgcmV0dXJuIHJjCkBAIC0zNTMsOSArMjcxLDYgQEAKICAgICBkZWYgcmVsZWFzZShzZWxmKToKICAgICAgICAgc2VsZi5fY29uZC5hY3F1aXJlKCkKICAgICAgICAgc2VsZi5fdmFsdWUgPSBzZWxmLl92YWx1ZSArIDEKLSAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMucmVsZWFzZTogc3VjY2VzcywgdmFsdWU9JXMiLAotICAgICAgICAgICAgICAgICAgICAgICBzZWxmLCBzZWxmLl92YWx1ZSkKICAgICAgICAgc2VsZi5fY29uZC5ub3RpZnkoKQogICAgICAgICBzZWxmLl9jb25kLnJlbGVhc2UoKQogCkBAIC0zNjMsMzAgKzI3OCwyMyBAQAogICAgICAgICBzZWxmLnJlbGVhc2UoKQogCiAKLWRlZiBCb3VuZGVkU2VtYXBob3JlKCphcmdzLCAqKmt3YXJncyk6Ci0gICAgcmV0dXJuIF9Cb3VuZGVkU2VtYXBob3JlKCphcmdzLCAqKmt3YXJncykKLQotY2xhc3MgX0JvdW5kZWRTZW1hcGhvcmUoX1NlbWFwaG9yZSk6CitjbGFzcyBCb3VuZGVkU2VtYXBob3JlKFNlbWFwaG9yZSk6CiAgICAgIiIiU2VtYXBob3JlIHRoYXQgY2hlY2tzIHRoYXQgIyByZWxlYXNlcyBpcyA8PSAjIGFjcXVpcmVzIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVlPTEsIHZlcmJvc2U9Tm9uZSk6Ci0gICAgICAgIF9TZW1hcGhvcmUuX19pbml0X18oc2VsZiwgdmFsdWUsIHZlcmJvc2UpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHZhbHVlPTEpOgorICAgICAgICBTZW1hcGhvcmUuX19pbml0X18oc2VsZiwgdmFsdWUpCiAgICAgICAgIHNlbGYuX2luaXRpYWxfdmFsdWUgPSB2YWx1ZQogCiAgICAgZGVmIHJlbGVhc2Uoc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX3ZhbHVlID49IHNlbGYuX2luaXRpYWxfdmFsdWU6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTZW1hcGhvcmUgcmVsZWFzZWQgdG9vIG1hbnkgdGltZXMiKQotICAgICAgICByZXR1cm4gX1NlbWFwaG9yZS5yZWxlYXNlKHNlbGYpCisgICAgICAgIHJldHVybiBTZW1hcGhvcmUucmVsZWFzZShzZWxmKQogCiAKLWRlZiBFdmVudCgqYXJncywgKiprd2FyZ3MpOgotICAgIHJldHVybiBfRXZlbnQoKmFyZ3MsICoqa3dhcmdzKQotCi1jbGFzcyBfRXZlbnQoX1ZlcmJvc2UpOgorY2xhc3MgRXZlbnQ6CiAKICAgICAjIEFmdGVyIFRpbSBQZXRlcnMnIGV2ZW50IGNsYXNzICh3aXRob3V0IGlzX3Bvc3RlZCgpKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHZlcmJvc2U9Tm9uZSk6Ci0gICAgICAgIF9WZXJib3NlLl9faW5pdF9fKHNlbGYsIHZlcmJvc2UpCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBzZWxmLl9jb25kID0gQ29uZGl0aW9uKExvY2soKSkKICAgICAgICAgc2VsZi5fZmxhZyA9IEZhbHNlCiAKQEAgLTQzNiwxMyArMzQ0LDEzIEBACiAjIHNpbmNlIHRoZSBwcmV2aW91cyBjeWNsZS4gIEluIGFkZGl0aW9uLCBhICdyZXNldHRpbmcnIHN0YXRlIGV4aXN0cyB3aGljaCBpcwogIyBzaW1pbGFyIHRvICdkcmFpbmluZycgZXhjZXB0IHRoYXQgdGhyZWFkcyBsZWF2ZSB3aXRoIGEgQnJva2VuQmFycmllckVycm9yLAogIyBhbmQgYSAnYnJva2VuJyBzdGF0ZSBpbiB3aGljaCBhbGwgdGhyZWFkcyBnZXQgdGhlIGV4Y2VwdGlvbi4KLWNsYXNzIEJhcnJpZXIoX1ZlcmJvc2UpOgorY2xhc3MgQmFycmllcjoKICAgICAiIiIKICAgICBCYXJyaWVyLiAgVXNlZnVsIGZvciBzeW5jaHJvbml6aW5nIGEgZml4ZWQgbnVtYmVyIG9mIHRocmVhZHMKICAgICBhdCBrbm93biBzeW5jaHJvbml6YXRpb24gcG9pbnRzLiAgVGhyZWFkcyBibG9jayBvbiAnd2FpdCgpJyBhbmQgYXJlCiAgICAgc2ltdWx0YW5lb3VzbHkgb25jZSB0aGV5IGhhdmUgYWxsIG1hZGUgdGhhdCBjYWxsLgogICAgICIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJ0aWVzLCBhY3Rpb249Tm9uZSwgdGltZW91dD1Ob25lLCB2ZXJib3NlPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJ0aWVzLCBhY3Rpb249Tm9uZSwgdGltZW91dD1Ob25lKToKICAgICAgICAgIiIiCiAgICAgICAgIENyZWF0ZSBhIGJhcnJpZXIsIGluaXRpYWxpc2VkIHRvICdwYXJ0aWVzJyB0aHJlYWRzLgogICAgICAgICAnYWN0aW9uJyBpcyBhIGNhbGxhYmxlIHdoaWNoLCB3aGVuIHN1cHBsaWVkLCB3aWxsIGJlIGNhbGxlZApAQCAtNDUxLDcgKzM1OSw2IEBACiAgICAgICAgIElmIGEgJ3RpbWVvdXQnIGlzIHByb3ZpZGVkLCBpdCBpcyB1c2VzIGFzIHRoZSBkZWZhdWx0IGZvcgogICAgICAgICBhbGwgc3Vic2VxdWVudCAnd2FpdCgpJyBjYWxscy4KICAgICAgICAgIiIiCi0gICAgICAgIF9WZXJib3NlLl9faW5pdF9fKHNlbGYsIHZlcmJvc2UpCiAgICAgICAgIHNlbGYuX2NvbmQgPSBDb25kaXRpb24oTG9jaygpKQogICAgICAgICBzZWxmLl9hY3Rpb24gPSBhY3Rpb24KICAgICAgICAgc2VsZi5fdGltZW91dCA9IHRpbWVvdXQKQEAgLTYxMiw3ICs1MTksNyBAQAogCiAjIE1haW4gY2xhc3MgZm9yIHRocmVhZHMKIAotY2xhc3MgVGhyZWFkKF9WZXJib3NlKToKK2NsYXNzIFRocmVhZDoKIAogICAgIF9faW5pdGlhbGl6ZWQgPSBGYWxzZQogICAgICMgTmVlZCB0byBzdG9yZSBhIHJlZmVyZW5jZSB0byBzeXMuZXhjX2luZm8gZm9yIHByaW50aW5nCkBAIC02MjUsMTYgKzUzMiwxOCBAQAogICAgICNYWFggX19leGNfY2xlYXIgPSBfc3lzLmV4Y19jbGVhcgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGdyb3VwPU5vbmUsIHRhcmdldD1Ob25lLCBuYW1lPU5vbmUsCi0gICAgICAgICAgICAgICAgIGFyZ3M9KCksIGt3YXJncz1Ob25lLCB2ZXJib3NlPU5vbmUpOgorICAgICAgICAgICAgICAgICBhcmdzPSgpLCBrd2FyZ3M9Tm9uZSwgKiwgZGFlbW9uPU5vbmUpOgogICAgICAgICBhc3NlcnQgZ3JvdXAgaXMgTm9uZSwgImdyb3VwIGFyZ3VtZW50IG11c3QgYmUgTm9uZSBmb3Igbm93IgotICAgICAgICBfVmVyYm9zZS5fX2luaXRfXyhzZWxmLCB2ZXJib3NlKQogICAgICAgICBpZiBrd2FyZ3MgaXMgTm9uZToKICAgICAgICAgICAgIGt3YXJncyA9IHt9CiAgICAgICAgIHNlbGYuX3RhcmdldCA9IHRhcmdldAogICAgICAgICBzZWxmLl9uYW1lID0gc3RyKG5hbWUgb3IgX25ld25hbWUoKSkKICAgICAgICAgc2VsZi5fYXJncyA9IGFyZ3MKICAgICAgICAgc2VsZi5fa3dhcmdzID0ga3dhcmdzCi0gICAgICAgIHNlbGYuX2RhZW1vbmljID0gc2VsZi5fc2V0X2RhZW1vbigpCisgICAgICAgIGlmIGRhZW1vbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2RhZW1vbmljID0gZGFlbW9uCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLl9kYWVtb25pYyA9IGN1cnJlbnRfdGhyZWFkKCkuZGFlbW9uCiAgICAgICAgIHNlbGYuX2lkZW50ID0gTm9uZQogICAgICAgICBzZWxmLl9zdGFydGVkID0gRXZlbnQoKQogICAgICAgICBzZWxmLl9zdG9wcGVkID0gRmFsc2UKQEAgLTY1MiwxMCArNTYxLDYgQEAKICAgICAgICAgICAgIHNlbGYuX2Jsb2NrLl9faW5pdF9fKCkKICAgICAgICAgc2VsZi5fc3RhcnRlZC5fcmVzZXRfaW50ZXJuYWxfbG9ja3MoKQogCi0gICAgZGVmIF9zZXRfZGFlbW9uKHNlbGYpOgotICAgICAgICAjIE92ZXJyaWRkZW4gaW4gX01haW5UaHJlYWQgYW5kIF9EdW1teVRocmVhZAotICAgICAgICByZXR1cm4gY3VycmVudF90aHJlYWQoKS5kYWVtb24KLQogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICAgYXNzZXJ0IHNlbGYuX2luaXRpYWxpemVkLCAiVGhyZWFkLl9faW5pdF9fKCkgd2FzIG5vdCBjYWxsZWQiCiAgICAgICAgIHN0YXR1cyA9ICJpbml0aWFsIgpAQCAtNjc1LDggKzU4MCw2IEBACiAKICAgICAgICAgaWYgc2VsZi5fc3RhcnRlZC5pc19zZXQoKToKICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigidGhyZWFkcyBjYW4gb25seSBiZSBzdGFydGVkIG9uY2UiKQotICAgICAgICBpZiBfX2RlYnVnX186Ci0gICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy5zdGFydCgpOiBzdGFydGluZyB0aHJlYWQiLCBzZWxmKQogICAgICAgICB3aXRoIF9hY3RpdmVfbGltYm9fbG9jazoKICAgICAgICAgICAgIF9saW1ib1tzZWxmXSA9IHNlbGYKICAgICAgICAgdHJ5OgpAQCAtNzE3LDcgKzYyMCw3IEBACiAgICAgICAgICAgICByYWlzZQogCiAgICAgZGVmIF9zZXRfaWRlbnQoc2VsZik6Ci0gICAgICAgIHNlbGYuX2lkZW50ID0gX2dldF9pZGVudCgpCisgICAgICAgIHNlbGYuX2lkZW50ID0gZ2V0X2lkZW50KCkKIAogICAgIGRlZiBfYm9vdHN0cmFwX2lubmVyKHNlbGYpOgogICAgICAgICB0cnk6CkBAIC03MjYsMjQgKzYyOSwxNyBAQAogICAgICAgICAgICAgd2l0aCBfYWN0aXZlX2xpbWJvX2xvY2s6CiAgICAgICAgICAgICAgICAgX2FjdGl2ZVtzZWxmLl9pZGVudF0gPSBzZWxmCiAgICAgICAgICAgICAgICAgZGVsIF9saW1ib1tzZWxmXQotICAgICAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgICAgIHNlbGYuX25vdGUoIiVzLl9ib290c3RyYXAoKTogdGhyZWFkIHN0YXJ0ZWQiLCBzZWxmKQogCiAgICAgICAgICAgICBpZiBfdHJhY2VfaG9vazoKLSAgICAgICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy5fYm9vdHN0cmFwKCk6IHJlZ2lzdGVyaW5nIHRyYWNlIGhvb2siLCBzZWxmKQogICAgICAgICAgICAgICAgIF9zeXMuc2V0dHJhY2UoX3RyYWNlX2hvb2spCiAgICAgICAgICAgICBpZiBfcHJvZmlsZV9ob29rOgotICAgICAgICAgICAgICAgIHNlbGYuX25vdGUoIiVzLl9ib290c3RyYXAoKTogcmVnaXN0ZXJpbmcgcHJvZmlsZSBob29rIiwgc2VsZikKICAgICAgICAgICAgICAgICBfc3lzLnNldHByb2ZpbGUoX3Byb2ZpbGVfaG9vaykKIAogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHNlbGYucnVuKCkKICAgICAgICAgICAgIGV4Y2VwdCBTeXN0ZW1FeGl0OgotICAgICAgICAgICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMuX2Jvb3RzdHJhcCgpOiByYWlzZWQgU3lzdGVtRXhpdCIsIHNlbGYpCisgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMuX2Jvb3RzdHJhcCgpOiB1bmhhbmRsZWQgZXhjZXB0aW9uIiwgc2VsZikKICAgICAgICAgICAgICAgICAjIElmIHN5cy5zdGRlcnIgaXMgbm8gbW9yZSAobW9zdCBsaWtlbHkgZnJvbSBpbnRlcnByZXRlcgogICAgICAgICAgICAgICAgICMgc2h1dGRvd24pIHVzZSBzZWxmLl9zdGRlcnIuICBPdGhlcndpc2Ugc3RpbGwgdXNlIHN5cyAoYXMgaW4KICAgICAgICAgICAgICAgICAjIF9zeXMpIGluIGNhc2Ugc3lzLnN0ZGVyciB3YXMgcmVkZWZpbmVkIHNpbmNlIHRoZSBjcmVhdGlvbiBvZgpAQCAtNzc0LDkgKzY3MCw2IEBACiAgICAgICAgICAgICAgICAgICAgICMgaG9nOyBkZWxldGluZyBldmVyeXRoaW5nIGVsc2UgaXMganVzdCBmb3IgdGhvcm91Z2huZXNzCiAgICAgICAgICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgICAgICAgICBkZWwgZXhjX3R5cGUsIGV4Y192YWx1ZSwgZXhjX3RiCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMuX2Jvb3RzdHJhcCgpOiBub3JtYWwgcmV0dXJuIiwgc2VsZikKICAgICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgIyBQcmV2ZW50IGEgcmFjZSBpbgogICAgICAgICAgICAgICAgICMgdGVzdF90aHJlYWRpbmcudGVzdF9ub19yZWZjeWNsZV90aHJvdWdoX3RhcmdldCB3aGVuCkBAIC03OTAsNyArNjgzLDcgQEAKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICMgV2UgZG9uJ3QgY2FsbCBzZWxmLl9kZWxldGUoKSBiZWNhdXNlIGl0IGFsc28KICAgICAgICAgICAgICAgICAgICAgIyBncmFicyBfYWN0aXZlX2xpbWJvX2xvY2suCi0gICAgICAgICAgICAgICAgICAgIGRlbCBfYWN0aXZlW19nZXRfaWRlbnQoKV0KKyAgICAgICAgICAgICAgICAgICAgZGVsIF9hY3RpdmVbZ2V0X2lkZW50KCldCiAgICAgICAgICAgICAgICAgZXhjZXB0OgogICAgICAgICAgICAgICAgICAgICBwYXNzCiAKQEAgLTgyNiw3ICs3MTksNyBAQAogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHdpdGggX2FjdGl2ZV9saW1ib19sb2NrOgotICAgICAgICAgICAgICAgIGRlbCBfYWN0aXZlW19nZXRfaWRlbnQoKV0KKyAgICAgICAgICAgICAgICBkZWwgX2FjdGl2ZVtnZXRfaWRlbnQoKV0KICAgICAgICAgICAgICAgICAjIFRoZXJlIG11c3Qgbm90IGJlIGFueSBweXRob24gY29kZSBiZXR3ZWVuIHRoZSBwcmV2aW91cyBsaW5lCiAgICAgICAgICAgICAgICAgIyBhbmQgYWZ0ZXIgdGhlIGxvY2sgaXMgcmVsZWFzZWQuICBPdGhlcndpc2UgYSB0cmFjaW5nIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAgIyBjb3VsZCB0cnkgdG8gYWNxdWlyZSB0aGUgbG9jayBhZ2FpbiBpbiB0aGUgc2FtZSB0aHJlYWQsIChpbgpAQCAtODQzLDI5ICs3MzYsMTggQEAKICAgICAgICAgaWYgc2VsZiBpcyBjdXJyZW50X3RocmVhZCgpOgogICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJjYW5ub3Qgam9pbiBjdXJyZW50IHRocmVhZCIpCiAKLSAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgaWYgbm90IHNlbGYuX3N0b3BwZWQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMuam9pbigpOiB3YWl0aW5nIHVudGlsIHRocmVhZCBzdG9wcyIsIHNlbGYpCi0KICAgICAgICAgc2VsZi5fYmxvY2suYWNxdWlyZSgpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlmIHRpbWVvdXQgaXMgTm9uZToKICAgICAgICAgICAgICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcHBlZDoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fYmxvY2sud2FpdCgpCi0gICAgICAgICAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9ub3RlKCIlcy5qb2luKCk6IHRocmVhZCBzdG9wcGVkIiwgc2VsZikKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZGVhZGxpbmUgPSBfdGltZSgpICsgdGltZW91dAogICAgICAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxmLl9zdG9wcGVkOgogICAgICAgICAgICAgICAgICAgICBkZWxheSA9IGRlYWRsaW5lIC0gX3RpbWUoKQogICAgICAgICAgICAgICAgICAgICBpZiBkZWxheSA8PSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX25vdGUoIiVzLmpvaW4oKTogdGltZWQgb3V0Iiwgc2VsZikKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Jsb2NrLndhaXQoZGVsYXkpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgaWYgX19kZWJ1Z19fOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbm90ZSgiJXMuam9pbigpOiB0aHJlYWQgc3RvcHBlZCIsIHNlbGYpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLl9ibG9jay5yZWxlYXNlKCkKIApAQCAtOTE3LDEwICs3OTksNyBAQAogCiAjIFRoZSB0aW1lciBjbGFzcyB3YXMgY29udHJpYnV0ZWQgYnkgSXRhbWFyIFNodHVsbC1UcmF1cmluZwogCi1kZWYgVGltZXIoKmFyZ3MsICoqa3dhcmdzKToKLSAgICByZXR1cm4gX1RpbWVyKCphcmdzLCAqKmt3YXJncykKLQotY2xhc3MgX1RpbWVyKFRocmVhZCk6CitjbGFzcyBUaW1lcihUaHJlYWQpOgogICAgICIiIkNhbGwgYSBmdW5jdGlvbiBhZnRlciBhIHNwZWNpZmllZCBudW1iZXIgb2Ygc2Vjb25kczoKIAogICAgIHQgPSBUaW1lcigzMC4wLCBmLCBhcmdzPVtdLCBrd2FyZ3M9e30pCkBAIC05NTIsMjYgKzgzMSwxOCBAQAogY2xhc3MgX01haW5UaHJlYWQoVGhyZWFkKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgVGhyZWFkLl9faW5pdF9fKHNlbGYsIG5hbWU9Ik1haW5UaHJlYWQiKQorICAgICAgICBUaHJlYWQuX19pbml0X18oc2VsZiwgbmFtZT0iTWFpblRocmVhZCIsIGRhZW1vbj1GYWxzZSkKICAgICAgICAgc2VsZi5fc3RhcnRlZC5zZXQoKQogICAgICAgICBzZWxmLl9zZXRfaWRlbnQoKQogICAgICAgICB3aXRoIF9hY3RpdmVfbGltYm9fbG9jazoKICAgICAgICAgICAgIF9hY3RpdmVbc2VsZi5faWRlbnRdID0gc2VsZgogCi0gICAgZGVmIF9zZXRfZGFlbW9uKHNlbGYpOgotICAgICAgICByZXR1cm4gRmFsc2UKLQogICAgIGRlZiBfZXhpdGZ1bmMoc2VsZik6CiAgICAgICAgIHNlbGYuX3N0b3AoKQogICAgICAgICB0ID0gX3BpY2tTb21lTm9uRGFlbW9uVGhyZWFkKCkKLSAgICAgICAgaWYgdDoKLSAgICAgICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgICAgICBzZWxmLl9ub3RlKCIlczogd2FpdGluZyBmb3Igb3RoZXIgdGhyZWFkcyIsIHNlbGYpCiAgICAgICAgIHdoaWxlIHQ6CiAgICAgICAgICAgICB0LmpvaW4oKQogICAgICAgICAgICAgdCA9IF9waWNrU29tZU5vbkRhZW1vblRocmVhZCgpCi0gICAgICAgIGlmIF9fZGVidWdfXzoKLSAgICAgICAgICAgIHNlbGYuX25vdGUoIiVzOiBleGl0aW5nIiwgc2VsZikKICAgICAgICAgc2VsZi5fZGVsZXRlKCkKIAogZGVmIF9waWNrU29tZU5vbkRhZW1vblRocmVhZCgpOgpAQCAtOTkyLDcgKzg2Myw3IEBACiBjbGFzcyBfRHVtbXlUaHJlYWQoVGhyZWFkKToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgVGhyZWFkLl9faW5pdF9fKHNlbGYsIG5hbWU9X25ld25hbWUoIkR1bW15LSVkIikpCisgICAgICAgIFRocmVhZC5fX2luaXRfXyhzZWxmLCBuYW1lPV9uZXduYW1lKCJEdW1teS0lZCIpLCBkYWVtb249VHJ1ZSkKIAogICAgICAgICAjIFRocmVhZC5fYmxvY2sgY29uc3VtZXMgYW4gT1MtbGV2ZWwgbG9ja2luZyBwcmltaXRpdmUsIHdoaWNoCiAgICAgICAgICMgY2FuIG5ldmVyIGJlIHVzZWQgYnkgYSBfRHVtbXlUaHJlYWQuICBTaW5jZSBhIF9EdW1teVRocmVhZApAQCAtMTAwNCw5ICs4NzUsNiBAQAogICAgICAgICB3aXRoIF9hY3RpdmVfbGltYm9fbG9jazoKICAgICAgICAgICAgIF9hY3RpdmVbc2VsZi5faWRlbnRdID0gc2VsZgogCi0gICAgZGVmIF9zZXRfZGFlbW9uKHNlbGYpOgotICAgICAgICByZXR1cm4gVHJ1ZQotCiAgICAgZGVmIF9zdG9wKHNlbGYpOgogICAgICAgICBwYXNzCiAKQEAgLTEwMTgsOSArODg2LDggQEAKIAogZGVmIGN1cnJlbnRfdGhyZWFkKCk6CiAgICAgdHJ5OgotICAgICAgICByZXR1cm4gX2FjdGl2ZVtfZ2V0X2lkZW50KCldCisgICAgICAgIHJldHVybiBfYWN0aXZlW2dldF9pZGVudCgpXQogICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgIyNwcmludCAiY3VycmVudF90aHJlYWQoKTogbm8gY3VycmVudCB0aHJlYWQgZm9yIiwgX2dldF9pZGVudCgpCiAgICAgICAgIHJldHVybiBfRHVtbXlUaHJlYWQoKQogCiBjdXJyZW50VGhyZWFkID0gY3VycmVudF90aHJlYWQKQEAgLTEwNzcsNyArOTQ0LDcgQEAKICAgICAgICAgICAgIGlmIHRocmVhZCBpcyBjdXJyZW50OgogICAgICAgICAgICAgICAgICMgVGhlcmUgaXMgb25seSBvbmUgYWN0aXZlIHRocmVhZC4gV2UgcmVzZXQgdGhlIGlkZW50IHRvCiAgICAgICAgICAgICAgICAgIyBpdHMgbmV3IHZhbHVlIHNpbmNlIGl0IGNhbiBoYXZlIGNoYW5nZWQuCi0gICAgICAgICAgICAgICAgaWRlbnQgPSBfZ2V0X2lkZW50KCkKKyAgICAgICAgICAgICAgICBpZGVudCA9IGdldF9pZGVudCgpCiAgICAgICAgICAgICAgICAgdGhyZWFkLl9pZGVudCA9IGlkZW50CiAgICAgICAgICAgICAgICAgbmV3X2FjdGl2ZVtpZGVudF0gPSB0aHJlYWQKICAgICAgICAgICAgIGVsc2U6CmRpZmYgLS1naXQgYS9MaWIvdGltZWl0LnB5IGIvTGliL3RpbWVpdC5weQppbmRleCAxYWU1OWUwLi40ZjdkMjhmIDEwMDY0NAotLS0gYS9MaWIvdGltZWl0LnB5CisrKyBiL0xpYi90aW1laXQucHkKQEAgLTksMTQgKzksMTUgQEAKIExpYnJhcnkgdXNhZ2U6IHNlZSB0aGUgVGltZXIgY2xhc3MuCiAKIENvbW1hbmQgbGluZSB1c2FnZToKLSAgICBweXRob24gdGltZWl0LnB5IFstbiBOXSBbLXIgTl0gWy1zIFNdIFstdF0gWy1jXSBbLWhdIFstLV0gW3N0YXRlbWVudF0KKyAgICBweXRob24gdGltZWl0LnB5IFstbiBOXSBbLXIgTl0gWy1zIFNdIFstdF0gWy1jXSBbLXBdIFstaF0gWy0tXSBbc3RhdGVtZW50XQogCiBPcHRpb25zOgogICAtbi8tLW51bWJlciBOOiBob3cgbWFueSB0aW1lcyB0byBleGVjdXRlICdzdGF0ZW1lbnQnIChkZWZhdWx0OiBzZWUgYmVsb3cpCiAgIC1yLy0tcmVwZWF0IE46IGhvdyBtYW55IHRpbWVzIHRvIHJlcGVhdCB0aGUgdGltZXIgKGRlZmF1bHQgMykKICAgLXMvLS1zZXR1cCBTOiBzdGF0ZW1lbnQgdG8gYmUgZXhlY3V0ZWQgb25jZSBpbml0aWFsbHkgKGRlZmF1bHQgJ3Bhc3MnKQotICAtdC8tLXRpbWU6IHVzZSB0aW1lLnRpbWUoKSAoZGVmYXVsdCBvbiBVbml4KQotICAtYy8tLWNsb2NrOiB1c2UgdGltZS5jbG9jaygpIChkZWZhdWx0IG9uIFdpbmRvd3MpCisgIC1wLy0tcHJvY2VzczogdXNlIHRpbWUucHJvY2Vzc190aW1lKCkgKGRlZmF1bHQgaXMgdGltZS5wZXJmX2NvdW50ZXIoKSkKKyAgLXQvLS10aW1lOiB1c2UgdGltZS50aW1lKCkgKGRlcHJlY2F0ZWQpCisgIC1jLy0tY2xvY2s6IHVzZSB0aW1lLmNsb2NrKCkgKGRlcHJlY2F0ZWQpCiAgIC12Ly0tdmVyYm9zZTogcHJpbnQgcmF3IHRpbWluZyByZXN1bHRzOyByZXBlYXQgZm9yIG1vcmUgZGlnaXRzIHByZWNpc2lvbgogICAtaC8tLWhlbHA6IHByaW50IHRoaXMgdXNhZ2UgbWVzc2FnZSBhbmQgZXhpdAogICAtLTogc2VwYXJhdGUgb3B0aW9ucyBmcm9tIHN0YXRlbWVudCwgdXNlIHdoZW4gc3RhdGVtZW50IHN0YXJ0cyB3aXRoIC0KQEAgLTY2LDIzICs2NywxNyBAQAogZHVtbXlfc3JjX25hbWUgPSAiPHRpbWVpdC1zcmM+IgogZGVmYXVsdF9udW1iZXIgPSAxMDAwMDAwCiBkZWZhdWx0X3JlcGVhdCA9IDMKLQotaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgIyBPbiBXaW5kb3dzLCB0aGUgYmVzdCB0aW1lciBpcyB0aW1lLmNsb2NrKCkKLSAgICBkZWZhdWx0X3RpbWVyID0gdGltZS5jbG9jawotZWxzZToKLSAgICAjIE9uIG1vc3Qgb3RoZXIgcGxhdGZvcm1zIHRoZSBiZXN0IHRpbWVyIGlzIHRpbWUudGltZSgpCi0gICAgZGVmYXVsdF90aW1lciA9IHRpbWUudGltZQorZGVmYXVsdF90aW1lciA9IHRpbWUucGVyZl9jb3VudGVyCiAKICMgRG9uJ3QgY2hhbmdlIHRoZSBpbmRlbnRhdGlvbiBvZiB0aGUgdGVtcGxhdGU7IHRoZSByZWluZGVudCgpIGNhbGxzCiAjIGluIFRpbWVyLl9faW5pdF9fKCkgZGVwZW5kIG9uIHNldHVwIGJlaW5nIGluZGVudGVkIDQgc3BhY2VzIGFuZCBzdG10CiAjIGJlaW5nIGluZGVudGVkIDggc3BhY2VzLgogdGVtcGxhdGUgPSAiIiIKIGRlZiBpbm5lcihfaXQsIF90aW1lcik6Ci0gICAgJShzZXR1cClzCisgICAge3NldHVwfQogICAgIF90MCA9IF90aW1lcigpCiAgICAgZm9yIF9pIGluIF9pdDoKLSAgICAgICAgJShzdG10KXMKKyAgICAgICAge3N0bXR9CiAgICAgX3QxID0gX3RpbWVyKCkKICAgICByZXR1cm4gX3QxIC0gX3QwCiAiIiIKQEAgLTEyNiw5ICsxMjEsOSBAQAogICAgICAgICAgICAgc3RtdCA9IHJlaW5kZW50KHN0bXQsIDgpCiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNldHVwLCBzdHIpOgogICAgICAgICAgICAgICAgIHNldHVwID0gcmVpbmRlbnQoc2V0dXAsIDQpCi0gICAgICAgICAgICAgICAgc3JjID0gdGVtcGxhdGUgJSB7J3N0bXQnOiBzdG10LCAnc2V0dXAnOiBzZXR1cH0KKyAgICAgICAgICAgICAgICBzcmMgPSB0ZW1wbGF0ZS5mb3JtYXQoc3RtdD1zdG10LCBzZXR1cD1zZXR1cCkKICAgICAgICAgICAgIGVsaWYgY2FsbGFibGUoc2V0dXApOgotICAgICAgICAgICAgICAgIHNyYyA9IHRlbXBsYXRlICUgeydzdG10Jzogc3RtdCwgJ3NldHVwJzogJ19zZXR1cCgpJ30KKyAgICAgICAgICAgICAgICBzcmMgPSB0ZW1wbGF0ZS5mb3JtYXQoc3RtdD1zdG10LCBzZXR1cD0nX3NldHVwKCknKQogICAgICAgICAgICAgICAgIG5zWydfc2V0dXAnXSA9IHNldHVwCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInNldHVwIGlzIG5laXRoZXIgYSBzdHJpbmcgbm9yIGNhbGxhYmxlIikKQEAgLTI1NSw5ICsyNTAsMTAgQEAKICAgICAgICAgYXJncyA9IHN5cy5hcmd2WzE6XQogICAgIGltcG9ydCBnZXRvcHQKICAgICB0cnk6Ci0gICAgICAgIG9wdHMsIGFyZ3MgPSBnZXRvcHQuZ2V0b3B0KGFyZ3MsICJuOnM6cjp0Y3ZoIiwKKyAgICAgICAgb3B0cywgYXJncyA9IGdldG9wdC5nZXRvcHQoYXJncywgIm46czpyOnRjcHZoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyJudW1iZXI9IiwgInNldHVwPSIsICJyZXBlYXQ9IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lIiwgImNsb2NrIiwgInZlcmJvc2UiLCAiaGVscCJdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbWUiLCAiY2xvY2siLCAicHJvY2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVyYm9zZSIsICJoZWxwIl0pCiAgICAgZXhjZXB0IGdldG9wdC5lcnJvciBhcyBlcnI6CiAgICAgICAgIHByaW50KGVycikKICAgICAgICAgcHJpbnQoInVzZSAtaC8tLWhlbHAgZm9yIGNvbW1hbmQgbGluZSBoZWxwIikKQEAgLTI4Miw2ICsyNzgsOCBAQAogICAgICAgICAgICAgdGltZXIgPSB0aW1lLnRpbWUKICAgICAgICAgaWYgbyBpbiAoIi1jIiwgIi0tY2xvY2siKToKICAgICAgICAgICAgIHRpbWVyID0gdGltZS5jbG9jaworICAgICAgICBpZiBvIGluICgiLXAiLCAiLS1wcm9jZXNzIik6CisgICAgICAgICAgICB0aW1lciA9IHRpbWUucHJvY2Vzc190aW1lCiAgICAgICAgIGlmIG8gaW4gKCItdiIsICItLXZlcmJvc2UiKToKICAgICAgICAgICAgIGlmIHZlcmJvc2U6CiAgICAgICAgICAgICAgICAgcHJlY2lzaW9uICs9IDEKZGlmZiAtLWdpdCBhL0xpYi90a2ludGVyL19faW5pdF9fLnB5IGIvTGliL3RraW50ZXIvX19pbml0X18ucHkKaW5kZXggZGU4NWJmOS4uODA2M2RkNiAxMDA2NDQKLS0tIGEvTGliL3RraW50ZXIvX19pbml0X18ucHkKKysrIGIvTGliL3RraW50ZXIvX19pbml0X18ucHkKQEAgLTMwLDE2ICszMCwxOCBAQAogdGsubWFpbmxvb3AoKQogIiIiCiAKLV9fdmVyc2lvbl9fID0gIiRSZXZpc2lvbiQiCi0KIGltcG9ydCBzeXMKIGlmIHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiOgogICAgICMgQXR0ZW1wdCB0byBjb25maWd1cmUgVGNsL1RrIHdpdGhvdXQgcmVxdWlyaW5nIFBBVEgKICAgICBmcm9tIHRraW50ZXIgaW1wb3J0IF9maXgKKworaW1wb3J0IHdhcm5pbmdzCisKIGltcG9ydCBfdGtpbnRlciAjIElmIHRoaXMgZmFpbHMgeW91ciBQeXRob24gbWF5IG5vdCBiZSBjb25maWd1cmVkIGZvciBUawogVGNsRXJyb3IgPSBfdGtpbnRlci5UY2xFcnJvcgogZnJvbSB0a2ludGVyLmNvbnN0YW50cyBpbXBvcnQgKgogCisKIHdhbnRvYmplY3RzID0gMQogCiBUa1ZlcnNpb24gPSBmbG9hdChfdGtpbnRlci5US19WRVJTSU9OKQpAQCAtMTU3LDYgKzE1OSw3IEBACiAgICAgU3ViY2xhc3NlcyBTdHJpbmdWYXIsIEludFZhciwgRG91YmxlVmFyLCBCb29sZWFuVmFyIGFyZSBzcGVjaWFsaXphdGlvbnMKICAgICB0aGF0IGNvbnN0cmFpbiB0aGUgdHlwZSBvZiB0aGUgdmFsdWUgcmV0dXJuZWQgZnJvbSBnZXQoKS4iIiIKICAgICBfZGVmYXVsdCA9ICIiCisgICAgX3RrID0gTm9uZQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYXN0ZXI9Tm9uZSwgdmFsdWU9Tm9uZSwgbmFtZT1Ob25lKToKICAgICAgICAgIiIiQ29uc3RydWN0IGEgdmFyaWFibGUKIApAQCAtMTY3LDYgKzE3MCwxMSBAQAogICAgICAgICBJZiBOQU1FIG1hdGNoZXMgYW4gZXhpc3RpbmcgdmFyaWFibGUgYW5kIFZBTFVFIGlzIG9taXR0ZWQKICAgICAgICAgdGhlbiB0aGUgZXhpc3RpbmcgdmFsdWUgaXMgcmV0YWluZWQuCiAgICAgICAgICIiIgorICAgICAgICAjIGNoZWNrIGZvciB0eXBlIG9mIE5BTUUgcGFyYW1ldGVyIHRvIG92ZXJyaWRlIHdlaXJkIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgIyByYWlzZWQgZnJvbSBNb2R1bGVzL190a2ludGVyLmM6U2V0VmFyIGxpa2U6CisgICAgICAgICMgVHlwZUVycm9yOiBzZXR2YXIoKSB0YWtlcyBleGFjdGx5IDMgYXJndW1lbnRzICgyIGdpdmVuKQorICAgICAgICBpZiBuYW1lIGlzIG5vdCBOb25lIGFuZCBub3QgaXNpbnN0YW5jZShuYW1lLCBzdHIpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJuYW1lIG11c3QgYmUgYSBzdHJpbmciKQogICAgICAgICBnbG9iYWwgX3Zhcm51bQogICAgICAgICBpZiBub3QgbWFzdGVyOgogICAgICAgICAgICAgbWFzdGVyID0gX2RlZmF1bHRfcm9vdApAQCAtMTc4LDE4ICsxODYsMjEgQEAKICAgICAgICAgICAgIHNlbGYuX25hbWUgPSAnUFlfVkFSJyArIHJlcHIoX3Zhcm51bSkKICAgICAgICAgICAgIF92YXJudW0gKz0gMQogICAgICAgICBpZiB2YWx1ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuc2V0KHZhbHVlKQorICAgICAgICAgICAgc2VsZi5pbml0aWFsaXplKHZhbHVlKQogICAgICAgICBlbGlmIG5vdCBzZWxmLl90ay5jYWxsKCJpbmZvIiwgImV4aXN0cyIsIHNlbGYuX25hbWUpOgotICAgICAgICAgICAgc2VsZi5zZXQoc2VsZi5fZGVmYXVsdCkKKyAgICAgICAgICAgIHNlbGYuaW5pdGlhbGl6ZShzZWxmLl9kZWZhdWx0KQogICAgIGRlZiBfX2RlbF9fKHNlbGYpOgogICAgICAgICAiIiJVbnNldCB0aGUgdmFyaWFibGUgaW4gVGNsLiIiIgotICAgICAgICBzZWxmLl90ay5nbG9iYWx1bnNldHZhcihzZWxmLl9uYW1lKQorICAgICAgICBpZiAoc2VsZi5fdGsgaXMgbm90IE5vbmUgYW5kIHNlbGYuX3RrLmNhbGwoImluZm8iLCAiZXhpc3RzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX25hbWUpKToKKyAgICAgICAgICAgIHNlbGYuX3RrLmdsb2JhbHVuc2V0dmFyKHNlbGYuX25hbWUpCiAgICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgICIiIlJldHVybiB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUgaW4gVGNsLiIiIgogICAgICAgICByZXR1cm4gc2VsZi5fbmFtZQogICAgIGRlZiBzZXQoc2VsZiwgdmFsdWUpOgogICAgICAgICAiIiJTZXQgdGhlIHZhcmlhYmxlIHRvIFZBTFVFLiIiIgogICAgICAgICByZXR1cm4gc2VsZi5fdGsuZ2xvYmFsc2V0dmFyKHNlbGYuX25hbWUsIHZhbHVlKQorICAgIGluaXRpYWxpemUgPSBzZXQKICAgICBkZWYgZ2V0KHNlbGYpOgogICAgICAgICAiIiJSZXR1cm4gdmFsdWUgb2YgdmFyaWFibGUuIiIiCiAgICAgICAgIHJldHVybiBzZWxmLl90ay5nbG9iYWxnZXR2YXIoc2VsZi5fbmFtZSkKQEAgLTI2NCwxMiArMjc1LDYgQEAKICAgICAgICAgIiIiCiAgICAgICAgIFZhcmlhYmxlLl9faW5pdF9fKHNlbGYsIG1hc3RlciwgdmFsdWUsIG5hbWUpCiAKLSAgICBkZWYgc2V0KHNlbGYsIHZhbHVlKToKLSAgICAgICAgIiIiU2V0IHRoZSB2YXJpYWJsZSB0byB2YWx1ZSwgY29udmVydGluZyBib29sZWFucyB0byBpbnRlZ2Vycy4iIiIKLSAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgYm9vbCk6Ci0gICAgICAgICAgICB2YWx1ZSA9IGludCh2YWx1ZSkKLSAgICAgICAgcmV0dXJuIFZhcmlhYmxlLnNldChzZWxmLCB2YWx1ZSkKLQogICAgIGRlZiBnZXQoc2VsZik6CiAgICAgICAgICIiIlJldHVybiB0aGUgdmFsdWUgb2YgdGhlIHZhcmlhYmxlIGFzIGFuIGludGVnZXIuIiIiCiAgICAgICAgIHJldHVybiBnZXRpbnQoc2VsZi5fdGsuZ2xvYmFsZ2V0dmFyKHNlbGYuX25hbWUpKQpAQCAtMzEwLDcgKzMxNSwxMCBAQAogCiAgICAgZGVmIGdldChzZWxmKToKICAgICAgICAgIiIiUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgdmFyaWFibGUgYXMgYSBib29sLiIiIgotICAgICAgICByZXR1cm4gc2VsZi5fdGsuZ2V0Ym9vbGVhbihzZWxmLl90ay5nbG9iYWxnZXR2YXIoc2VsZi5fbmFtZSkpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl90ay5nZXRib29sZWFuKHNlbGYuX3RrLmdsb2JhbGdldHZhcihzZWxmLl9uYW1lKSkKKyAgICAgICAgZXhjZXB0IFRjbEVycm9yOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiaW52YWxpZCBsaXRlcmFsIGZvciBnZXRib29sZWFuKCkiKQogCiBkZWYgbWFpbmxvb3Aobj0wKToKICAgICAiIiJSdW4gdGhlIG1haW4gbG9vcCBvZiBUY2wuIiIiCkBAIC0zMjIsNyArMzMwLDEwIEBACiAKIGRlZiBnZXRib29sZWFuKHMpOgogICAgICIiIkNvbnZlcnQgdHJ1ZSBhbmQgZmFsc2UgdG8gaW50ZWdlciB2YWx1ZXMgMSBhbmQgMC4iIiIKLSAgICByZXR1cm4gX2RlZmF1bHRfcm9vdC50ay5nZXRib29sZWFuKHMpCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gX2RlZmF1bHRfcm9vdC50ay5nZXRib29sZWFuKHMpCisgICAgZXhjZXB0IFRjbEVycm9yOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpbnZhbGlkIGxpdGVyYWwgZm9yIGdldGJvb2xlYW4oKSIpCiAKICMgTWV0aG9kcyBkZWZpbmVkIG9uIGJvdGggdG9wbGV2ZWwgYW5kIGludGVyaW9yIHdpZGdldHMKIGNsYXNzIE1pc2M6CkBAIC00MTIsNyArNDIzLDEwIEBACiAgICAgZ2V0ZG91YmxlID0gZmxvYXQKICAgICBkZWYgZ2V0Ym9vbGVhbihzZWxmLCBzKToKICAgICAgICAgIiIiUmV0dXJuIGEgYm9vbGVhbiB2YWx1ZSBmb3IgVGNsIGJvb2xlYW4gdmFsdWVzIHRydWUgYW5kIGZhbHNlIGdpdmVuIGFzIHBhcmFtZXRlci4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYudGsuZ2V0Ym9vbGVhbihzKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi50ay5nZXRib29sZWFuKHMpCisgICAgICAgIGV4Y2VwdCBUY2xFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImludmFsaWQgbGl0ZXJhbCBmb3IgZ2V0Ym9vbGVhbigpIikKICAgICBkZWYgZm9jdXNfc2V0KHNlbGYpOgogICAgICAgICAiIiJEaXJlY3QgaW5wdXQgZm9jdXMgdG8gdGhpcyB3aWRnZXQuCiAKQEAgLTExODUsNyArMTE5OSw2IEBACiAgICAgICAgIHJldHVybiAoZSwpCiAgICAgZGVmIF9yZXBvcnRfZXhjZXB0aW9uKHNlbGYpOgogICAgICAgICAiIiJJbnRlcm5hbCBmdW5jdGlvbi4iIiIKLSAgICAgICAgaW1wb3J0IHN5cwogICAgICAgICBleGMsIHZhbCwgdGIgPSBzeXMuZXhjX2luZm8oKQogICAgICAgICByb290ID0gc2VsZi5fcm9vdCgpCiAgICAgICAgIHJvb3QucmVwb3J0X2NhbGxiYWNrX2V4Y2VwdGlvbihleGMsIHZhbCwgdGIpCkBAIC0xMjYwLDYgKzEyNzMsMTMgQEAKICAgICAgICAgICAgICAgICAgICBzZWxmLnRrLmNhbGwoCiAgICAgICAgICAgICAgICAgICAgICAgICdwbGFjZScsICdzbGF2ZXMnLCBzZWxmLl93KSldCiAgICAgIyBHcmlkIG1ldGhvZHMgdGhhdCBhcHBseSB0byB0aGUgbWFzdGVyCisgICAgZGVmIGdyaWRfYW5jaG9yKHNlbGYsIGFuY2hvcj1Ob25lKTogIyBuZXcgaW4gVGsgOC41CisgICAgICAgICIiIlRoZSBhbmNob3IgdmFsdWUgY29udHJvbHMgaG93IHRvIHBsYWNlIHRoZSBncmlkIHdpdGhpbiB0aGUKKyAgICAgICAgbWFzdGVyIHdoZW4gbm8gcm93L2NvbHVtbiBoYXMgYW55IHdlaWdodC4KKworICAgICAgICBUaGUgZGVmYXVsdCBhbmNob3IgaXMgbncuIiIiCisgICAgICAgIHNlbGYudGsuY2FsbCgnZ3JpZCcsICdhbmNob3InLCBzZWxmLl93LCBhbmNob3IpCisgICAgYW5jaG9yID0gZ3JpZF9hbmNob3IKICAgICBkZWYgZ3JpZF9iYm94KHNlbGYsIGNvbHVtbj1Ob25lLCByb3c9Tm9uZSwgY29sMj1Ob25lLCByb3cyPU5vbmUpOgogICAgICAgICAiIiJSZXR1cm4gYSB0dXBsZSBvZiBpbnRlZ2VyIGNvb3JkaW5hdGVzIGZvciB0aGUgYm91bmRpbmcKICAgICAgICAgYm94IG9mIHRoaXMgd2lkZ2V0IGNvbnRyb2xsZWQgYnkgdGhlIGdlb21ldHJ5IG1hbmFnZXIgZ3JpZC4KQEAgLTEyNzgsNyArMTI5OCw2IEBACiAgICAgICAgIGlmIGNvbDIgaXMgbm90IE5vbmUgYW5kIHJvdzIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBhcmdzID0gYXJncyArIChjb2wyLCByb3cyKQogICAgICAgICByZXR1cm4gc2VsZi5fZ2V0aW50cyhzZWxmLnRrLmNhbGwoKmFyZ3MpKSBvciBOb25lCi0KICAgICBiYm94ID0gZ3JpZF9iYm94CiAgICAgZGVmIF9ncmlkX2NvbmZpZ3VyZShzZWxmLCBjb21tYW5kLCBpbmRleCwgY25mLCBrdyk6CiAgICAgICAgICIiIkludGVybmFsIGZ1bmN0aW9uLiIiIgpAQCAtMTUzNyw2ICsxNTU2LDE0IEBACiAgICAgICAgIHRoZSBmb2N1cy4gUmV0dXJuIGN1cnJlbnQgZm9jdXMgbW9kZWwgaWYgTU9ERUwgaXMgTm9uZS4iIiIKICAgICAgICAgcmV0dXJuIHNlbGYudGsuY2FsbCgnd20nLCAnZm9jdXNtb2RlbCcsIHNlbGYuX3csIG1vZGVsKQogICAgIGZvY3VzbW9kZWwgPSB3bV9mb2N1c21vZGVsCisgICAgZGVmIHdtX2ZvcmdldChzZWxmLCB3aW5kb3cpOiAjIG5ldyBpbiBUayA4LjUKKyAgICAgICAgIiIiVGhlIHdpbmRvdyB3aWxsIGJlIHVubWFwcGVuZCBmcm9tIHRoZSBzY3JlZW4gYW5kIHdpbGwgbm8gbG9uZ2VyCisgICAgICAgIGJlIG1hbmFnZWQgYnkgd20uIHRvcGxldmVsIHdpbmRvd3Mgd2lsbCBiZSB0cmVhdGVkIGxpa2UgZnJhbWUKKyAgICAgICAgd2luZG93cyBvbmNlIHRoZXkgYXJlIG5vIGxvbmdlciBtYW5hZ2VkIGJ5IHdtLCBob3dldmVyLCB0aGUgbWVudQorICAgICAgICBvcHRpb24gY29uZmlndXJhdGlvbiB3aWxsIGJlIHJlbWVtYmVyZWQgYW5kIHRoZSBtZW51cyB3aWxsIHJldHVybgorICAgICAgICBvbmNlIHRoZSB3aWRnZXQgaXMgbWFuYWdlZCBhZ2Fpbi4iIiIKKyAgICAgICAgc2VsZi50ay5jYWxsKCd3bScsICdmb3JnZXQnLCB3aW5kb3cpCisgICAgZm9yZ2V0ID0gd21fZm9yZ2V0CiAgICAgZGVmIHdtX2ZyYW1lKHNlbGYpOgogICAgICAgICAiIiJSZXR1cm4gaWRlbnRpZmllciBmb3IgZGVjb3JhdGl2ZSBmcmFtZSBvZiB0aGlzIHdpZGdldCBpZiBwcmVzZW50LiIiIgogICAgICAgICByZXR1cm4gc2VsZi50ay5jYWxsKCd3bScsICdmcmFtZScsIHNlbGYuX3cpCkBAIC0xNTkwLDYgKzE2MTcsMzEgQEAKICAgICAgICAgTm9uZSBpcyBnaXZlbi4iIiIKICAgICAgICAgcmV0dXJuIHNlbGYudGsuY2FsbCgnd20nLCAnaWNvbm5hbWUnLCBzZWxmLl93LCBuZXdOYW1lKQogICAgIGljb25uYW1lID0gd21faWNvbm5hbWUKKyAgICBkZWYgd21faWNvbnBob3RvKHNlbGYsIGRlZmF1bHQ9RmFsc2UsICphcmdzKTogIyBuZXcgaW4gVGsgOC41CisgICAgICAgICIiIlNldHMgdGhlIHRpdGxlYmFyIGljb24gZm9yIHRoaXMgd2luZG93IGJhc2VkIG9uIHRoZSBuYW1lZCBwaG90bworICAgICAgICBpbWFnZXMgcGFzc2VkIHRocm91Z2ggYXJncy4gSWYgZGVmYXVsdCBpcyBUcnVlLCB0aGlzIGlzIGFwcGxpZWQgdG8KKyAgICAgICAgYWxsIGZ1dHVyZSBjcmVhdGVkIHRvcGxldmVscyBhcyB3ZWxsLgorCisgICAgICAgIFRoZSBkYXRhIGluIHRoZSBpbWFnZXMgaXMgdGFrZW4gYXMgYSBzbmFwc2hvdCBhdCB0aGUgdGltZSBvZgorICAgICAgICBpbnZvY2F0aW9uLiBJZiB0aGUgaW1hZ2VzIGFyZSBsYXRlciBjaGFuZ2VkLCB0aGlzIGlzIG5vdCByZWZsZWN0ZWQKKyAgICAgICAgdG8gdGhlIHRpdGxlYmFyIGljb25zLiBNdWx0aXBsZSBpbWFnZXMgYXJlIGFjY2VwdGVkIHRvIGFsbG93CisgICAgICAgIGRpZmZlcmVudCBpbWFnZXMgc2l6ZXMgdG8gYmUgcHJvdmlkZWQuIFRoZSB3aW5kb3cgbWFuYWdlciBtYXkgc2NhbGUKKyAgICAgICAgcHJvdmlkZWQgaWNvbnMgdG8gYW4gYXBwcm9wcmlhdGUgc2l6ZS4KKworICAgICAgICBPbiBXaW5kb3dzLCB0aGUgaW1hZ2VzIGFyZSBwYWNrZWQgaW50byBhIFdpbmRvd3MgaWNvbiBzdHJ1Y3R1cmUuCisgICAgICAgIFRoaXMgd2lsbCBvdmVycmlkZSBhbiBpY29uIHNwZWNpZmllZCB0byB3bV9pY29uYml0bWFwLCBhbmQgdmljZQorICAgICAgICB2ZXJzYS4KKworICAgICAgICBPbiBYLCB0aGUgaW1hZ2VzIGFyZSBhcnJhbmdlZCBpbnRvIHRoZSBfTkVUX1dNX0lDT04gWCBwcm9wZXJ0eSwKKyAgICAgICAgd2hpY2ggbW9zdCBtb2Rlcm4gd2luZG93IG1hbmFnZXJzIHN1cHBvcnQuIEFuIGljb24gc3BlY2lmaWVkIGJ5CisgICAgICAgIHdtX2ljb25iaXRtYXAgbWF5IGV4aXN0IHNpbXV1bHRhbmVvdXNseS4KKworICAgICAgICBPbiBNYWNpbnRvc2gsIHRoaXMgY3VycmVudGx5IGRvZXMgbm90aGluZy4iIiIKKyAgICAgICAgaWYgZGVmYXVsdDoKKyAgICAgICAgICAgIHNlbGYudGsuY2FsbCgnd20nLCAnaWNvbnBob3RvJywgc2VsZi5fdywgIi1kZWZhdWx0IiwgKmFyZ3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnRrLmNhbGwoJ3dtJywgJ2ljb25waG90bycsIHNlbGYuX3csICphcmdzKQorICAgIGljb25waG90byA9IHdtX2ljb25waG90bwogICAgIGRlZiB3bV9pY29ucG9zaXRpb24oc2VsZiwgeD1Ob25lLCB5PU5vbmUpOgogICAgICAgICAiIiJTZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSBpY29uIG9mIHRoaXMgd2lkZ2V0IHRvIFggYW5kIFkuIFJldHVybgogICAgICAgICBhIHR1cGxlIG9mIHRoZSBjdXJyZW50IHZhbHVlcyBvZiBYIGFuZCBYIGlmIE5vbmUgaXMgZ2l2ZW4uIiIiCkBAIC0xNjAxLDYgKzE2NTMsMTIgQEAKICAgICAgICAgdmFsdWUgaWYgTm9uZSBpcyBnaXZlbi4iIiIKICAgICAgICAgcmV0dXJuIHNlbGYudGsuY2FsbCgnd20nLCAnaWNvbndpbmRvdycsIHNlbGYuX3csIHBhdGhOYW1lKQogICAgIGljb253aW5kb3cgPSB3bV9pY29ud2luZG93CisgICAgZGVmIHdtX21hbmFnZShzZWxmLCB3aWRnZXQpOiAjIG5ldyBpbiBUayA4LjUKKyAgICAgICAgIiIiVGhlIHdpZGdldCBzcGVjaWZpZWQgd2lsbCBiZWNvbWUgYSBzdGFuZCBhbG9uZSB0b3AtbGV2ZWwgd2luZG93LgorICAgICAgICBUaGUgd2luZG93IHdpbGwgYmUgZGVjb3JhdGVkIHdpdGggdGhlIHdpbmRvdyBtYW5hZ2VycyB0aXRsZSBiYXIsCisgICAgICAgIGV0Yy4iIiIKKyAgICAgICAgc2VsZi50ay5jYWxsKCd3bScsICdtYW5hZ2UnLCB3aWRnZXQpCisgICAgbWFuYWdlID0gd21fbWFuYWdlCiAgICAgZGVmIHdtX21heHNpemUoc2VsZiwgd2lkdGg9Tm9uZSwgaGVpZ2h0PU5vbmUpOgogICAgICAgICAiIiJTZXQgbWF4IFdJRFRIIGFuZCBIRUlHSFQgZm9yIHRoaXMgd2lkZ2V0LiBJZiB0aGUgd2luZG93IGlzIGdyaWRkZWQKICAgICAgICAgdGhlIHZhbHVlcyBhcmUgZ2l2ZW4gaW4gZ3JpZCB1bml0cy4gUmV0dXJuIHRoZSBjdXJyZW50IHZhbHVlcyBpZiBOb25lCkBAIC0xNjg5LDcgKzE3NDcsNyBAQAogICAgICAgICAjIGVuc3VyZSB0aGF0IHNlbGYudGsgaXMgYWx3YXlzIF9zb21ldGhpbmdfLgogICAgICAgICBzZWxmLnRrID0gTm9uZQogICAgICAgICBpZiBiYXNlTmFtZSBpcyBOb25lOgotICAgICAgICAgICAgaW1wb3J0IHN5cywgb3MKKyAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICAgYmFzZU5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHN5cy5hcmd2WzBdKQogICAgICAgICAgICAgYmFzZU5hbWUsIGV4dCA9IG9zLnBhdGguc3BsaXRleHQoYmFzZU5hbWUpCiAgICAgICAgICAgICBpZiBleHQgbm90IGluICgnLnB5JywgJy5weWMnLCAnLnB5bycpOgpAQCAtMTc2Myw3ICsxODIxLDcgQEAKICAgICAgICAgICAgIGV4ZWMob3BlbihiYXNlX3B5KS5yZWFkKCksIGRpcikKICAgICBkZWYgcmVwb3J0X2NhbGxiYWNrX2V4Y2VwdGlvbihzZWxmLCBleGMsIHZhbCwgdGIpOgogICAgICAgICAiIiJJbnRlcm5hbCBmdW5jdGlvbi4gSXQgcmVwb3J0cyBleGNlcHRpb24gb24gc3lzLnN0ZGVyci4iIiIKLSAgICAgICAgaW1wb3J0IHRyYWNlYmFjaywgc3lzCisgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRXhjZXB0aW9uIGluIFRraW50ZXIgY2FsbGJhY2tcbiIpCiAgICAgICAgIHN5cy5sYXN0X3R5cGUgPSBleGMKICAgICAgICAgc3lzLmxhc3RfdmFsdWUgPSB2YWwKQEAgLTIwODgsMjUgKzIxNDYsNDUgQEAKICAgICAgICAgIiIiCiAgICAgICAgIHJldHVybiBzZWxmLnRrLmNhbGwoc2VsZi5fdywgJ2ludm9rZScpCiAKKwogIyBJbmRpY2VzOgogIyBYWFggSSBkb24ndCBsaWtlIHRoZXNlIC0tIHRha2UgdGhlbSBhd2F5CiBkZWYgQXRFbmQoKToKKyAgICB3YXJuaW5ncy53YXJuKCJ0a2ludGVyLkF0RW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAzLjQiLAorICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCiAgICAgcmV0dXJuICdlbmQnCisKKwogZGVmIEF0SW5zZXJ0KCphcmdzKToKKyAgICB3YXJuaW5ncy53YXJuKCJ0a2ludGVyLkF0SW5zZXJ0IHdpbGwgYmUgcmVtb3ZlZCBpbiAzLjQiLAorICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCiAgICAgcyA9ICdpbnNlcnQnCiAgICAgZm9yIGEgaW4gYXJnczoKICAgICAgICAgaWYgYTogcyA9IHMgKyAoJyAnICsgYSkKICAgICByZXR1cm4gcworCisKIGRlZiBBdFNlbEZpcnN0KCk6CisgICAgd2FybmluZ3Mud2FybigidGtpbnRlci5BdFNlbEZpcnN0IHdpbGwgYmUgcmVtb3ZlZCBpbiAzLjQiLAorICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCiAgICAgcmV0dXJuICdzZWwuZmlyc3QnCisKKwogZGVmIEF0U2VsTGFzdCgpOgorICAgIHdhcm5pbmdzLndhcm4oInRraW50ZXIuQXRTZWxMYXN0IHdpbGwgYmUgcmVtb3ZlZCBpbiAzLjQiLAorICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCiAgICAgcmV0dXJuICdzZWwubGFzdCcKKworCiBkZWYgQXQoeCwgeT1Ob25lKToKKyAgICB3YXJuaW5ncy53YXJuKCJ0a2ludGVyLkF0IHdpbGwgYmUgcmVtb3ZlZCBpbiAzLjQiLAorICAgICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLCBzdGFja2xldmVsPTIpCiAgICAgaWYgeSBpcyBOb25lOgogICAgICAgICByZXR1cm4gJ0AlcicgJSAoeCwpCiAgICAgZWxzZToKICAgICAgICAgcmV0dXJuICdAJXIsJXInICUgKHgsIHkpCiAKKwogY2xhc3MgQ2FudmFzKFdpZGdldCwgWFZpZXcsIFlWaWV3KToKICAgICAiIiJDYW52YXMgd2lkZ2V0IHRvIGRpc3BsYXkgZ3JhcGhpY2FsIGVsZW1lbnRzIGxpa2UgbGluZXMgb3IgdGV4dC4iIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgbWFzdGVyPU5vbmUsIGNuZj17fSwgKiprdyk6CkBAIC0yNjkyLDYgKzI3NzAsMTAgQEAKICAgICBkZWYgdW5wb3N0KHNlbGYpOgogICAgICAgICAiIiJVbm1hcCBhIG1lbnUuIiIiCiAgICAgICAgIHNlbGYudGsuY2FsbChzZWxmLl93LCAndW5wb3N0JykKKyAgICBkZWYgeHBvc2l0aW9uKHNlbGYsIGluZGV4KTogIyBuZXcgaW4gVGsgOC41CisgICAgICAgICIiIlJldHVybiB0aGUgeC1wb3NpdGlvbiBvZiB0aGUgbGVmdG1vc3QgcGl4ZWwgb2YgdGhlIG1lbnUgaXRlbQorICAgICAgICBhdCBJTkRFWC4iIiIKKyAgICAgICAgcmV0dXJuIGdldGludChzZWxmLnRrLmNhbGwoc2VsZi5fdywgJ3hwb3NpdGlvbicsIGluZGV4KSkKICAgICBkZWYgeXBvc2l0aW9uKHNlbGYsIGluZGV4KToKICAgICAgICAgIiIiUmV0dXJuIHRoZSB5LXBvc2l0aW9uIG9mIHRoZSB0b3Btb3N0IHBpeGVsIG9mIHRoZSBtZW51IGl0ZW0gYXQgSU5ERVguIiIiCiAgICAgICAgIHJldHVybiBnZXRpbnQoc2VsZi50ay5jYWxsKApAQCAtMjg1MSw2ICsyOTMzLDI1IEBACiAgICAgICAgIHJlbGF0aW9uIE9QIGlzIHNhdGlzZmllZC4gT1AgaXMgb25lIG9mIDwsIDw9LCA9PSwgPj0sID4sIG9yICE9LiIiIgogICAgICAgICByZXR1cm4gc2VsZi50ay5nZXRib29sZWFuKHNlbGYudGsuY2FsbCgKICAgICAgICAgICAgIHNlbGYuX3csICdjb21wYXJlJywgaW5kZXgxLCBvcCwgaW5kZXgyKSkKKyAgICBkZWYgY291bnQoc2VsZiwgaW5kZXgxLCBpbmRleDIsICphcmdzKTogIyBuZXcgaW4gVGsgOC41CisgICAgICAgICIiIkNvdW50cyB0aGUgbnVtYmVyIG9mIHJlbGV2YW50IHRoaW5ncyBiZXR3ZWVuIHRoZSB0d28gaW5kaWNlcy4KKyAgICAgICAgSWYgaW5kZXgxIGlzIGFmdGVyIGluZGV4MiwgdGhlIHJlc3VsdCB3aWxsIGJlIGEgbmVnYXRpdmUgbnVtYmVyCisgICAgICAgIChhbmQgdGhpcyBob2xkcyBmb3IgZWFjaCBvZiB0aGUgcG9zc2libGUgb3B0aW9ucykuCisKKyAgICAgICAgVGhlIGFjdHVhbCBpdGVtcyB3aGljaCBhcmUgY291bnRlZCBkZXBlbmRzIG9uIHRoZSBvcHRpb25zIGdpdmVuIGJ5CisgICAgICAgIGFyZ3MuIFRoZSByZXN1bHQgaXMgYSBsaXN0IG9mIGludGVnZXJzLCBvbmUgZm9yIHRoZSByZXN1bHQgb2YgZWFjaAorICAgICAgICBjb3VudGluZyBvcHRpb24gZ2l2ZW4uIFZhbGlkIGNvdW50aW5nIG9wdGlvbnMgYXJlICJjaGFycyIsCisgICAgICAgICJkaXNwbGF5Y2hhcnMiLCAiZGlzcGxheWluZGljZXMiLCAiZGlzcGxheWxpbmVzIiwgImluZGljZXMiLAorICAgICAgICAibGluZXMiLCAieHBpeGVscyIgYW5kICJ5cGl4ZWxzIi4gVGhlcmUgaXMgYW4gYWRkaXRpb25hbCBwb3NzaWJsZQorICAgICAgICBvcHRpb24gInVwZGF0ZSIsIHdoaWNoIGlmIGdpdmVuIHRoZW4gYWxsIHN1YnNlcXVlbnQgb3B0aW9ucyBlbnN1cmUKKyAgICAgICAgdGhhdCBhbnkgcG9zc2libGUgb3V0IG9mIGRhdGUgaW5mb3JtYXRpb24gaXMgcmVjYWxjdWxhdGVkLiIiIgorICAgICAgICBhcmdzID0gWyctJXMnICUgYXJnIGZvciBhcmcgaW4gYXJncyBpZiBub3QgYXJnLnN0YXJ0c3dpdGgoJy0nKV0KKyAgICAgICAgYXJncyArPSBbaW5kZXgxLCBpbmRleDJdCisgICAgICAgIHJlcyA9IHNlbGYudGsuY2FsbChzZWxmLl93LCAnY291bnQnLCAqYXJncykgb3IgTm9uZQorICAgICAgICBpZiByZXMgaXMgbm90IE5vbmUgYW5kIGxlbihhcmdzKSA8PSAzOgorICAgICAgICAgICAgcmV0dXJuIChyZXMsICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiByZXMKICAgICBkZWYgZGVidWcoc2VsZiwgYm9vbGVhbj1Ob25lKToKICAgICAgICAgIiIiVHVybiBvbiB0aGUgaW50ZXJuYWwgY29uc2lzdGVuY3kgY2hlY2tzIG9mIHRoZSBCLVRyZWUgaW5zaWRlIHRoZSB0ZXh0CiAgICAgICAgIHdpZGdldCBhY2NvcmRpbmcgdG8gQk9PTEVBTi4iIiIKQEAgLTMwMTMsNiArMzExNCwyNCBAQAogICAgIGRlZiBtYXJrX3ByZXZpb3VzKHNlbGYsIGluZGV4KToKICAgICAgICAgIiIiUmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBwcmV2aW91cyBtYXJrIGJlZm9yZSBJTkRFWC4iIiIKICAgICAgICAgcmV0dXJuIHNlbGYudGsuY2FsbChzZWxmLl93LCAnbWFyaycsICdwcmV2aW91cycsIGluZGV4KSBvciBOb25lCisgICAgZGVmIHBlZXJfY3JlYXRlKHNlbGYsIG5ld1BhdGhOYW1lLCBjbmY9e30sICoqa3cpOiAjIG5ldyBpbiBUayA4LjUKKyAgICAgICAgIiIiQ3JlYXRlcyBhIHBlZXIgdGV4dCB3aWRnZXQgd2l0aCB0aGUgZ2l2ZW4gbmV3UGF0aE5hbWUsIGFuZCBhbnkKKyAgICAgICAgb3B0aW9uYWwgc3RhbmRhcmQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBCeSBkZWZhdWx0IHRoZSBwZWVyIHdpbGwKKyAgICAgICAgaGF2ZSB0aGUgc2FtZSBzdGFydCBhbmQgYW5kIGVuZCBsaW5lIGFzIHRoZSBwYXJlbnQgd2lkZ2V0LCBidXQKKyAgICAgICAgdGhlc2UgY2FuIGJlIG92ZXJyaWRlbiB3aXRoIHRoZSBzdGFuZGFyZCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIiIiCisgICAgICAgIHNlbGYudGsuY2FsbChzZWxmLl93LCAncGVlcicsICdjcmVhdGUnLCBuZXdQYXRoTmFtZSwKKyAgICAgICAgICAgICpzZWxmLl9vcHRpb25zKGNuZiwga3cpKQorICAgIGRlZiBwZWVyX25hbWVzKHNlbGYpOiAjIG5ldyBpbiBUayA4LjUKKyAgICAgICAgIiIiUmV0dXJucyBhIGxpc3Qgb2YgcGVlcnMgb2YgdGhpcyB3aWRnZXQgKHRoaXMgZG9lcyBub3QgaW5jbHVkZQorICAgICAgICB0aGUgd2lkZ2V0IGl0c2VsZikuIiIiCisgICAgICAgIHJldHVybiBzZWxmLnRrLnNwbGl0bGlzdChzZWxmLnRrLmNhbGwoc2VsZi5fdywgJ3BlZXInLCAnbmFtZXMnKSkKKyAgICBkZWYgcmVwbGFjZShzZWxmLCBpbmRleDEsIGluZGV4MiwgY2hhcnMsICphcmdzKTogIyBuZXcgaW4gVGsgOC41CisgICAgICAgICIiIlJlcGxhY2VzIHRoZSByYW5nZSBvZiBjaGFyYWN0ZXJzIGJldHdlZW4gaW5kZXgxIGFuZCBpbmRleDIgd2l0aAorICAgICAgICB0aGUgZ2l2ZW4gY2hhcmFjdGVycyBhbmQgdGFncyBzcGVjaWZpZWQgYnkgYXJncy4KKworICAgICAgICBTZWUgdGhlIG1ldGhvZCBpbnNlcnQgZm9yIHNvbWUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBhcmdzLCBhbmQgdGhlCisgICAgICAgIG1ldGhvZCBkZWxldGUgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBpbmRpY2VzLiIiIgorICAgICAgICBzZWxmLnRrLmNhbGwoc2VsZi5fdywgJ3JlcGxhY2UnLCBpbmRleDEsIGluZGV4MiwgY2hhcnMsICphcmdzKQogICAgIGRlZiBzY2FuX21hcmsoc2VsZiwgeCwgeSk6CiAgICAgICAgICIiIlJlbWVtYmVyIHRoZSBjdXJyZW50IFgsIFkgY29vcmRpbmF0ZXMuIiIiCiAgICAgICAgIHNlbGYudGsuY2FsbChzZWxmLl93LCAnc2NhbicsICdtYXJrJywgeCwgeSkKZGlmZiAtLWdpdCBhL0xpYi90a2ludGVyL19maXgucHkgYi9MaWIvdGtpbnRlci9fZml4LnB5CmluZGV4IDVhNjlkODkuLjVmMzJkMjUgMTAwNjQ0Ci0tLSBhL0xpYi90a2ludGVyL19maXgucHkKKysrIGIvTGliL3RraW50ZXIvX2ZpeC5weQpAQCAtNDYsMTAgKzQ2LDEwIEBACiAgICAgICAgICAgICBzID0gIlxcIiArIHNbMzpdCiAgICAgICAgIHJldHVybiBzCiAKLXByZWZpeCA9IG9zLnBhdGguam9pbihzeXMucHJlZml4LCJ0Y2wiKQorcHJlZml4ID0gb3MucGF0aC5qb2luKHN5cy5iYXNlX3ByZWZpeCwidGNsIikKIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhwcmVmaXgpOgogICAgICMgZGV2ZGlyLy4uL3RjbHRrL2xpYgotICAgIHByZWZpeCA9IG9zLnBhdGguam9pbihzeXMucHJlZml4LCBvcy5wYXRoLnBhcmRpciwgInRjbHRrIiwgImxpYiIpCisgICAgcHJlZml4ID0gb3MucGF0aC5qb2luKHN5cy5iYXNlX3ByZWZpeCwgb3MucGF0aC5wYXJkaXIsICJ0Y2x0ayIsICJsaWIiKQogICAgIHByZWZpeCA9IG9zLnBhdGguYWJzcGF0aChwcmVmaXgpCiAjIGlmIHRoaXMgZG9lcyBub3QgZXhpc3QsIG5vIGZ1cnRoZXIgc2VhcmNoIGlzIG5lZWRlZAogaWYgb3MucGF0aC5leGlzdHMocHJlZml4KToKZGlmZiAtLWdpdCBhL0xpYi90a2ludGVyL2ZpbGVkaWFsb2cucHkgYi9MaWIvdGtpbnRlci9maWxlZGlhbG9nLnB5CmluZGV4IDk4ZDJkNWMuLjNmZmIyNTIgMTAwNjQ0Ci0tLSBhL0xpYi90a2ludGVyL2ZpbGVkaWFsb2cucHkKKysrIGIvTGliL3RraW50ZXIvZmlsZWRpYWxvZy5weQpAQCAtMzA2LDcgKzMwNiw2IEBACiAgICAgZGVmIF9maXhyZXN1bHQoc2VsZiwgd2lkZ2V0LCByZXN1bHQpOgogICAgICAgICBpZiByZXN1bHQ6CiAgICAgICAgICAgICAjIGtlZXAgZGlyZWN0b3J5IGFuZCBmaWxlbmFtZSB1bnRpbCBuZXh0IHRpbWUKLSAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICAgIyBjb252ZXJ0IFRjbCBwYXRoIG9iamVjdHMgdG8gc3RyaW5ncwogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdHJpbmcKQEAgLTMzMyw3ICszMzIsNiBAQAogICAgICAgICAgICAgIyBtdWx0aXBsZSByZXN1bHRzOgogICAgICAgICAgICAgcmVzdWx0ID0gdHVwbGUoW2dldGF0dHIociwgInN0cmluZyIsIHIpIGZvciByIGluIHJlc3VsdF0pCiAgICAgICAgICAgICBpZiByZXN1bHQ6Ci0gICAgICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgICAgICAgcGF0aCwgZmlsZSA9IG9zLnBhdGguc3BsaXQocmVzdWx0WzBdKQogICAgICAgICAgICAgICAgIHNlbGYub3B0aW9uc1siaW5pdGlhbGRpciJdID0gcGF0aAogICAgICAgICAgICAgICAgICMgZG9uJ3Qgc2V0IGluaXRpYWxmaWxlIG9yIGZpbGVuYW1lLCBhcyB3ZSBoYXZlIG11bHRpcGxlIG9mIHRoZXNlCmRpZmYgLS1naXQgYS9MaWIvdGtpbnRlci9mb250LnB5IGIvTGliL3RraW50ZXIvZm9udC5weQppbmRleCA1NDI1YjA2Li40OTI5MjQxIDEwMDY0NAotLS0gYS9MaWIvdGtpbnRlci9mb250LnB5CisrKyBiL0xpYi90a2ludGVyL2ZvbnQucHkKQEAgLTIsMjcgKzIsMjcgQEAKICMKICMgd3JpdHRlbiBieSBGcmVkcmlrIEx1bmRoLCBGZWJydWFyeSAxOTk4CiAjCi0jIEZJWE1FOiBzaG91bGQgYWRkICdkaXNwbGF5b2YnIG9wdGlvbiB3aGVyZSByZWxldmFudCAoYWN0dWFsLCBmYW1pbGllcywKLSMgICAgICAgIG1lYXN1cmUsIGFuZCBtZXRyaWNzKQotIwogCiBfX3ZlcnNpb25fXyA9ICIwLjkiCiAKK2ltcG9ydCBpdGVydG9vbHMKIGltcG9ydCB0a2ludGVyCiAKKwogIyB3ZWlnaHQvc2xhbnQKIE5PUk1BTCA9ICJub3JtYWwiCiBST01BTiA9ICJyb21hbiIKIEJPTEQgICA9ICJib2xkIgogSVRBTElDID0gIml0YWxpYyIKIAorCiBkZWYgbmFtZXRvZm9udChuYW1lKToKICAgICAiIiJHaXZlbiB0aGUgbmFtZSBvZiBhIHRrIG5hbWVkIGZvbnQsIHJldHVybnMgYSBGb250IHJlcHJlc2VudGF0aW9uLgogICAgICIiIgogICAgIHJldHVybiBGb250KG5hbWU9bmFtZSwgZXhpc3RzPVRydWUpCiAKLWNsYXNzIEZvbnQ6CiAKK2NsYXNzIEZvbnQ6CiAgICAgIiIiUmVwcmVzZW50cyBhIG5hbWVkIGZvbnQuCiAKICAgICBDb25zdHJ1Y3RvciBvcHRpb25zIGFyZToKQEAgLTQ0LDYgKzQ0LDggQEAKIAogICAgICIiIgogCisgICAgY291bnRlciA9IGl0ZXJ0b29scy5jb3VudCgxKQorCiAgICAgZGVmIF9zZXQoc2VsZiwga3cpOgogICAgICAgICBvcHRpb25zID0gW10KICAgICAgICAgZm9yIGssIHYgaW4ga3cuaXRlbXMoKToKQEAgLTYzLDcgKzY1LDggQEAKICAgICAgICAgICAgIG9wdGlvbnNbYXJnc1tpXVsxOl1dID0gYXJnc1tpKzFdCiAgICAgICAgIHJldHVybiBvcHRpb25zCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdD1Ob25lLCBmb250PU5vbmUsIG5hbWU9Tm9uZSwgZXhpc3RzPUZhbHNlLCAqKm9wdGlvbnMpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290PU5vbmUsIGZvbnQ9Tm9uZSwgbmFtZT1Ob25lLCBleGlzdHM9RmFsc2UsCisgICAgICAgICAgICAgICAgICoqb3B0aW9ucyk6CiAgICAgICAgIGlmIG5vdCByb290OgogICAgICAgICAgICAgcm9vdCA9IHRraW50ZXIuX2RlZmF1bHRfcm9vdAogICAgICAgICBpZiBmb250OgpAQCAtNzIsNyArNzUsNyBAQAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZm9udCA9IHNlbGYuX3NldChvcHRpb25zKQogICAgICAgICBpZiBub3QgbmFtZToKLSAgICAgICAgICAgIG5hbWUgPSAiZm9udCIgKyBzdHIoaWQoc2VsZikpCisgICAgICAgICAgICBuYW1lID0gImZvbnQiICsgc3RyKG5leHQoc2VsZi5jb3VudGVyKSkKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogCiAgICAgICAgIGlmIGV4aXN0czoKQEAgLTExOCwxNCArMTIxLDE3IEBACiAgICAgICAgICJSZXR1cm4gYSBkaXN0aW5jdCBjb3B5IG9mIHRoZSBjdXJyZW50IGZvbnQiCiAgICAgICAgIHJldHVybiBGb250KHNlbGYuX3Jvb3QsICoqc2VsZi5hY3R1YWwoKSkKIAotICAgIGRlZiBhY3R1YWwoc2VsZiwgb3B0aW9uPU5vbmUpOgorICAgIGRlZiBhY3R1YWwoc2VsZiwgb3B0aW9uPU5vbmUsIGRpc3BsYXlvZj1Ob25lKToKICAgICAgICAgIlJldHVybiBhY3R1YWwgZm9udCBhdHRyaWJ1dGVzIgorICAgICAgICBhcmdzID0gKCkKKyAgICAgICAgaWYgZGlzcGxheW9mOgorICAgICAgICAgICAgYXJncyA9ICgnLWRpc3BsYXlvZicsIGRpc3BsYXlvZikKICAgICAgICAgaWYgb3B0aW9uOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2NhbGwoImZvbnQiLCAiYWN0dWFsIiwgc2VsZi5uYW1lLCAiLSIrb3B0aW9uKQorICAgICAgICAgICAgYXJncyA9IGFyZ3MgKyAoJy0nICsgb3B0aW9uLCApCisgICAgICAgICAgICByZXR1cm4gc2VsZi5fY2FsbCgiZm9udCIsICJhY3R1YWwiLCBzZWxmLm5hbWUsICphcmdzKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX21rZGljdCgKLSAgICAgICAgICAgICAgICBzZWxmLl9zcGxpdChzZWxmLl9jYWxsKCJmb250IiwgImFjdHVhbCIsIHNlbGYubmFtZSkpCi0gICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHNlbGYuX3NwbGl0KHNlbGYuX2NhbGwoImZvbnQiLCAiYWN0dWFsIiwgc2VsZi5uYW1lLCAqYXJncykpKQogCiAgICAgZGVmIGNnZXQoc2VsZiwgb3B0aW9uKToKICAgICAgICAgIkdldCBmb250IGF0dHJpYnV0ZSIKQEAgLTEzOCwzNyArMTQ0LDQ3IEBACiAgICAgICAgICAgICAgICAgICAqc2VsZi5fc2V0KG9wdGlvbnMpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX21rZGljdCgKLSAgICAgICAgICAgICAgICBzZWxmLl9zcGxpdChzZWxmLl9jYWxsKCJmb250IiwgImNvbmZpZyIsIHNlbGYubmFtZSkpCi0gICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHNlbGYuX3NwbGl0KHNlbGYuX2NhbGwoImZvbnQiLCAiY29uZmlnIiwgc2VsZi5uYW1lKSkpCiAKICAgICBjb25maWd1cmUgPSBjb25maWcKIAotICAgIGRlZiBtZWFzdXJlKHNlbGYsIHRleHQpOgorICAgIGRlZiBtZWFzdXJlKHNlbGYsIHRleHQsIGRpc3BsYXlvZj1Ob25lKToKICAgICAgICAgIlJldHVybiB0ZXh0IHdpZHRoIgotICAgICAgICByZXR1cm4gaW50KHNlbGYuX2NhbGwoImZvbnQiLCAibWVhc3VyZSIsIHNlbGYubmFtZSwgdGV4dCkpCisgICAgICAgIGFyZ3MgPSAodGV4dCwpCisgICAgICAgIGlmIGRpc3BsYXlvZjoKKyAgICAgICAgICAgIGFyZ3MgPSAoJy1kaXNwbGF5b2YnLCBkaXNwbGF5b2YsIHRleHQpCisgICAgICAgIHJldHVybiBpbnQoc2VsZi5fY2FsbCgiZm9udCIsICJtZWFzdXJlIiwgc2VsZi5uYW1lLCAqYXJncykpCiAKLSAgICBkZWYgbWV0cmljcyhzZWxmLCAqb3B0aW9ucyk6CisgICAgZGVmIG1ldHJpY3Moc2VsZiwgKm9wdGlvbnMsICoqa3cpOgogICAgICAgICAiIiJSZXR1cm4gZm9udCBtZXRyaWNzLgogCiAgICAgICAgIEZvciBiZXN0IHBlcmZvcm1hbmNlLCBjcmVhdGUgYSBkdW1teSB3aWRnZXQKICAgICAgICAgdXNpbmcgdGhpcyBmb250IGJlZm9yZSBjYWxsaW5nIHRoaXMgbWV0aG9kLiIiIgotCisgICAgICAgIGFyZ3MgPSAoKQorICAgICAgICBkaXNwbGF5b2YgPSBrdy5wb3AoJ2Rpc3BsYXlvZicsIE5vbmUpCisgICAgICAgIGlmIGRpc3BsYXlvZjoKKyAgICAgICAgICAgIGFyZ3MgPSAoJy1kaXNwbGF5b2YnLCBkaXNwbGF5b2YpCiAgICAgICAgIGlmIG9wdGlvbnM6CisgICAgICAgICAgICBhcmdzID0gYXJncyArIHNlbGYuX2dldChvcHRpb25zKQogICAgICAgICAgICAgcmV0dXJuIGludCgKLSAgICAgICAgICAgICAgICBzZWxmLl9jYWxsKCJmb250IiwgIm1ldHJpY3MiLCBzZWxmLm5hbWUsIHNlbGYuX2dldChvcHRpb25zKSkKLSAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgc2VsZi5fY2FsbCgiZm9udCIsICJtZXRyaWNzIiwgc2VsZi5uYW1lLCAqYXJncykpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXMgPSBzZWxmLl9zcGxpdChzZWxmLl9jYWxsKCJmb250IiwgIm1ldHJpY3MiLCBzZWxmLm5hbWUpKQorICAgICAgICAgICAgcmVzID0gc2VsZi5fc3BsaXQoc2VsZi5fY2FsbCgiZm9udCIsICJtZXRyaWNzIiwgc2VsZi5uYW1lLCAqYXJncykpCiAgICAgICAgICAgICBvcHRpb25zID0ge30KICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbihyZXMpLCAyKToKICAgICAgICAgICAgICAgICBvcHRpb25zW3Jlc1tpXVsxOl1dID0gaW50KHJlc1tpKzFdKQogICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMKIAotZGVmIGZhbWlsaWVzKHJvb3Q9Tm9uZSk6CisKK2RlZiBmYW1pbGllcyhyb290PU5vbmUsIGRpc3BsYXlvZj1Ob25lKToKICAgICAiR2V0IGZvbnQgZmFtaWxpZXMgKGFzIGEgdHVwbGUpIgogICAgIGlmIG5vdCByb290OgogICAgICAgICByb290ID0gdGtpbnRlci5fZGVmYXVsdF9yb290Ci0gICAgcmV0dXJuIHJvb3QudGsuc3BsaXRsaXN0KHJvb3QudGsuY2FsbCgiZm9udCIsICJmYW1pbGllcyIpKQorICAgIGFyZ3MgPSAoKQorICAgIGlmIGRpc3BsYXlvZjoKKyAgICAgICAgYXJncyA9ICgnLWRpc3BsYXlvZicsIGRpc3BsYXlvZikKKyAgICByZXR1cm4gcm9vdC50ay5zcGxpdGxpc3Qocm9vdC50ay5jYWxsKCJmb250IiwgImZhbWlsaWVzIiwgKmFyZ3MpKQorCiAKIGRlZiBuYW1lcyhyb290PU5vbmUpOgogICAgICJHZXQgbmFtZXMgb2YgZGVmaW5lZCBmb250cyAoYXMgYSB0dXBsZSkiCkBAIC0xNzYsNiArMTkyLDcgQEAKICAgICAgICAgcm9vdCA9IHRraW50ZXIuX2RlZmF1bHRfcm9vdAogICAgIHJldHVybiByb290LnRrLnNwbGl0bGlzdChyb290LnRrLmNhbGwoImZvbnQiLCAibmFtZXMiKSkKIAorCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIHRlc3Qgc3R1ZmYKIApAQCAtMTk4LDEwICsyMTUsMTAgQEAKIAogICAgIHByaW50KGYubWVhc3VyZSgiaGVsbG8iKSwgZi5tZXRyaWNzKCJsaW5lc3BhY2UiKSkKIAotICAgIHByaW50KGYubWV0cmljcygpKQorICAgIHByaW50KGYubWV0cmljcyhkaXNwbGF5b2Y9cm9vdCkpCiAKICAgICBmID0gRm9udChmb250PSgiQ291cmllciIsIDIwLCAiYm9sZCIpKQotICAgIHByaW50KGYubWVhc3VyZSgiaGVsbG8iKSwgZi5tZXRyaWNzKCJsaW5lc3BhY2UiKSkKKyAgICBwcmludChmLm1lYXN1cmUoImhlbGxvIiksIGYubWV0cmljcygibGluZXNwYWNlIiwgZGlzcGxheW9mPXJvb3QpKQogCiAgICAgdyA9IHRraW50ZXIuTGFiZWwocm9vdCwgdGV4dD0iSGVsbG8sIHdvcmxkIiwgZm9udD1mKQogICAgIHcucGFjaygpCmRpZmYgLS1naXQgYS9MaWIvdGtpbnRlci90ZXN0L3Rlc3RfdGtpbnRlci90ZXN0X3ZhcmlhYmxlcy5weSBiL0xpYi90a2ludGVyL3Rlc3QvdGVzdF90a2ludGVyL3Rlc3RfdmFyaWFibGVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkYjdhY2EKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdGtpbnRlci90ZXN0L3Rlc3RfdGtpbnRlci90ZXN0X3ZhcmlhYmxlcy5weQpAQCAtMCwwICsxLDE2NSBAQAoraW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gdGtpbnRlciBpbXBvcnQgVmFyaWFibGUsIFN0cmluZ1ZhciwgSW50VmFyLCBEb3VibGVWYXIsIEJvb2xlYW5WYXIsIFRrCisKKworY2xhc3MgVmFyKFZhcmlhYmxlKToKKworICAgIF9kZWZhdWx0ID0gImRlZmF1bHQiCisgICAgc2lkZV9lZmZlY3QgPSBGYWxzZQorCisgICAgZGVmIHNldChzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYuc2lkZV9lZmZlY3QgPSBUcnVlCisgICAgICAgIHN1cGVyKCkuc2V0KHZhbHVlKQorCisKK2NsYXNzIFRlc3RCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5yb290ID0gVGsoKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBzZWxmLnJvb3QuZGVzdHJveSgpCisKKworY2xhc3MgVGVzdFZhcmlhYmxlKFRlc3RCYXNlKToKKworICAgIGRlZiB0ZXN0X2RlZmF1bHQoc2VsZik6CisgICAgICAgIHYgPSBWYXJpYWJsZShzZWxmLnJvb3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiIsIHYuZ2V0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXgoc3RyKHYpLCByIl5QWV9WQVIoXGQrKSQiKQorCisgICAgZGVmIHRlc3RfbmFtZV9hbmRfdmFsdWUoc2VsZik6CisgICAgICAgIHYgPSBWYXJpYWJsZShzZWxmLnJvb3QsICJzYW1wbGUgc3RyaW5nIiwgInZhcm5hbWUiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJzYW1wbGUgc3RyaW5nIiwgdi5nZXQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidmFybmFtZSIsIHN0cih2KSkKKworICAgIGRlZiB0ZXN0X19fZGVsX18oc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5yb290LmNhbGwoImluZm8iLCAiZXhpc3RzIiwgInZhcm5hbWUiKSkKKyAgICAgICAgdiA9IFZhcmlhYmxlKHNlbGYucm9vdCwgInNhbXBsZSBzdHJpbmciLCAidmFybmFtZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShzZWxmLnJvb3QuY2FsbCgiaW5mbyIsICJleGlzdHMiLCAidmFybmFtZSIpKQorICAgICAgICBkZWwgdgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYucm9vdC5jYWxsKCJpbmZvIiwgImV4aXN0cyIsICJ2YXJuYW1lIikpCisKKyAgICBkZWYgdGVzdF9kb250X3Vuc2V0X25vdF9leGlzdGluZyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShzZWxmLnJvb3QuY2FsbCgiaW5mbyIsICJleGlzdHMiLCAidmFybmFtZSIpKQorICAgICAgICB2MSA9IFZhcmlhYmxlKHNlbGYucm9vdCwgbmFtZT0ibmFtZSIpCisgICAgICAgIHYyID0gVmFyaWFibGUoc2VsZi5yb290LCBuYW1lPSJuYW1lIikKKyAgICAgICAgZGVsIHYxCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoc2VsZi5yb290LmNhbGwoImluZm8iLCAiZXhpc3RzIiwgIm5hbWUiKSkKKyAgICAgICAgIyBzaG91bGRuJ3QgcmFpc2UgZXhjZXB0aW9uCisgICAgICAgIGRlbCB2MgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHNlbGYucm9vdC5jYWxsKCJpbmZvIiwgImV4aXN0cyIsICJuYW1lIikpCisKKyAgICBkZWYgdGVzdF9fX2VxX18oc2VsZik6CisgICAgICAgICMgdmFsdWVzIGRvZXNuJ3QgbWF0dGVyLCBvbmx5IGNsYXNzIGFuZCBuYW1lIGFyZSBjaGVja2VkCisgICAgICAgIHYxID0gVmFyaWFibGUoc2VsZi5yb290LCBuYW1lPSJhYmMiKQorICAgICAgICB2MiA9IFZhcmlhYmxlKHNlbGYucm9vdCwgbmFtZT0iYWJjIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh2MSwgdjIpCisKKyAgICAgICAgdjMgPSBWYXJpYWJsZShzZWxmLnJvb3QsIG5hbWU9ImFiYyIpCisgICAgICAgIHY0ID0gU3RyaW5nVmFyKHNlbGYucm9vdCwgbmFtZT0iYWJjIikKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbCh2MywgdjQpCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX25hbWUoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yKToKKyAgICAgICAgICAgIFZhcmlhYmxlKHNlbGYucm9vdCwgbmFtZT0xMjMpCisKKyAgICBkZWYgdGVzdF9pbml0aWFsaXplKHNlbGYpOgorICAgICAgICB2ID0gVmFyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZSh2LnNpZGVfZWZmZWN0KQorICAgICAgICB2LnNldCgidmFsdWUiKQorICAgICAgICBzZWxmLmFzc2VydFRydWUodi5zaWRlX2VmZmVjdCkKKworCitjbGFzcyBUZXN0U3RyaW5nVmFyKFRlc3RCYXNlKToKKworICAgIGRlZiB0ZXN0X2RlZmF1bHQoc2VsZik6CisgICAgICAgIHYgPSBTdHJpbmdWYXIoc2VsZi5yb290KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIiLCB2LmdldCgpKQorCisgICAgZGVmIHRlc3RfZ2V0KHNlbGYpOgorICAgICAgICB2ID0gU3RyaW5nVmFyKHNlbGYucm9vdCwgImFiYyIsICJuYW1lIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiYWJjIiwgdi5nZXQoKSkKKyAgICAgICAgc2VsZi5yb290Lmdsb2JhbHNldHZhcigibmFtZSIsIFRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIjEiLCB2LmdldCgpKQorCisKK2NsYXNzIFRlc3RJbnRWYXIoVGVzdEJhc2UpOgorCisgICAgZGVmIHRlc3RfZGVmYXVsdChzZWxmKToKKyAgICAgICAgdiA9IEludFZhcihzZWxmLnJvb3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgdi5nZXQoKSkKKworICAgIGRlZiB0ZXN0X2dldChzZWxmKToKKyAgICAgICAgdiA9IEludFZhcihzZWxmLnJvb3QsIDEyMywgIm5hbWUiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEyMywgdi5nZXQoKSkKKyAgICAgICAgc2VsZi5yb290Lmdsb2JhbHNldHZhcigibmFtZSIsICIzNDUiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDM0NSwgdi5nZXQoKSkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfdmFsdWUoc2VsZik6CisgICAgICAgIHYgPSBJbnRWYXIoc2VsZi5yb290LCBuYW1lPSJuYW1lIikKKyAgICAgICAgc2VsZi5yb290Lmdsb2JhbHNldHZhcigibmFtZSIsICJ2YWx1ZSIpCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvcik6CisgICAgICAgICAgICB2LmdldCgpCisgICAgICAgIHNlbGYucm9vdC5nbG9iYWxzZXR2YXIoIm5hbWUiLCAiMzQ1LjAiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgdi5nZXQoKQorCisKK2NsYXNzIFRlc3REb3VibGVWYXIoVGVzdEJhc2UpOgorCisgICAgZGVmIHRlc3RfZGVmYXVsdChzZWxmKToKKyAgICAgICAgdiA9IERvdWJsZVZhcihzZWxmLnJvb3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMC4wLCB2LmdldCgpKQorCisgICAgZGVmIHRlc3RfZ2V0KHNlbGYpOgorICAgICAgICB2ID0gRG91YmxlVmFyKHNlbGYucm9vdCwgMS4yMywgIm5hbWUiKQorICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKDEuMjMsIHYuZ2V0KCkpCisgICAgICAgIHNlbGYucm9vdC5nbG9iYWxzZXR2YXIoIm5hbWUiLCAiMy40NSIpCisgICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoMy40NSwgdi5nZXQoKSkKKworICAgIGRlZiB0ZXN0X2dldF9mcm9tX2ludChzZWxmKToKKyAgICAgICAgdiA9IERvdWJsZVZhcihzZWxmLnJvb3QsIDEuMjMsICJuYW1lIikKKyAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbCgxLjIzLCB2LmdldCgpKQorICAgICAgICBzZWxmLnJvb3QuZ2xvYmFsc2V0dmFyKCJuYW1lIiwgIjMuNDUiKQorICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFsKDMuNDUsIHYuZ2V0KCkpCisgICAgICAgIHNlbGYucm9vdC5nbG9iYWxzZXR2YXIoIm5hbWUiLCAiNDU2IikKKyAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbCg0NTYsIHYuZ2V0KCkpCisKKyAgICBkZWYgdGVzdF9pbnZhbGlkX3ZhbHVlKHNlbGYpOgorICAgICAgICB2ID0gRG91YmxlVmFyKHNlbGYucm9vdCwgbmFtZT0ibmFtZSIpCisgICAgICAgIHNlbGYucm9vdC5nbG9iYWxzZXR2YXIoIm5hbWUiLCAidmFsdWUiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgdi5nZXQoKQorCisKK2NsYXNzIFRlc3RCb29sZWFuVmFyKFRlc3RCYXNlKToKKworICAgIGRlZiB0ZXN0X2RlZmF1bHQoc2VsZik6CisgICAgICAgIHYgPSBCb29sZWFuVmFyKHNlbGYucm9vdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgdi5nZXQoKSkKKworICAgIGRlZiB0ZXN0X2dldChzZWxmKToKKyAgICAgICAgdiA9IEJvb2xlYW5WYXIoc2VsZi5yb290LCBUcnVlLCAibmFtZSIpCisgICAgICAgIHNlbGYuYXNzZXJ0QWxtb3N0RXF1YWwoVHJ1ZSwgdi5nZXQoKSkKKyAgICAgICAgc2VsZi5yb290Lmdsb2JhbHNldHZhcigibmFtZSIsICIwIikKKyAgICAgICAgc2VsZi5hc3NlcnRBbG1vc3RFcXVhbChGYWxzZSwgdi5nZXQoKSkKKworICAgIGRlZiB0ZXN0X2ludmFsaWRfdmFsdWVfZG9tYWluKHNlbGYpOgorICAgICAgICB2ID0gQm9vbGVhblZhcihzZWxmLnJvb3QsIG5hbWU9Im5hbWUiKQorICAgICAgICBzZWxmLnJvb3QuZ2xvYmFsc2V0dmFyKCJuYW1lIiwgInZhbHVlIikKKyAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIHYuZ2V0KCkKKyAgICAgICAgc2VsZi5yb290Lmdsb2JhbHNldHZhcigibmFtZSIsICIxLjAiKQorICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICAgICAgdi5nZXQoKQorCisKK3Rlc3RzX2d1aSA9IChUZXN0VmFyaWFibGUsIFRlc3RTdHJpbmdWYXIsIFRlc3RJbnRWYXIsCisgICAgICAgICAgICAgVGVzdERvdWJsZVZhciwgVGVzdEJvb2xlYW5WYXIpCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBmcm9tIHRlc3Quc3VwcG9ydCBpbXBvcnQgcnVuX3VuaXR0ZXN0CisgICAgcnVuX3VuaXR0ZXN0KCp0ZXN0c19ndWkpCmRpZmYgLS1naXQgYS9MaWIvdG9rZW4ucHkgYi9MaWIvdG9rZW4ucHkKaW5kZXggNmI1MzIwZC4uMzFmYWUwYSAxMDA3NTUKLS0tIGEvTGliL3Rva2VuLnB5CisrKyBiL0xpYi90b2tlbi5weQpAQCAtNzAsNyArNzAsNyBAQAogCiB0b2tfbmFtZSA9IHt2YWx1ZTogbmFtZQogICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGdsb2JhbHMoKS5pdGVtcygpCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBpbnQpfQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgaW50KSBhbmQgbm90IG5hbWUuc3RhcnRzd2l0aCgnXycpfQogX19hbGxfXy5leHRlbmQodG9rX25hbWUudmFsdWVzKCkpCiAKIGRlZiBJU1RFUk1JTkFMKHgpOgpkaWZmIC0tZ2l0IGEvTGliL3Rva2VuaXplLnB5IGIvTGliL3Rva2VuaXplLnB5CmluZGV4IDU5MDgxZDMuLmQ2Njk0MTIgMTAwNjQ0Ci0tLSBhL0xpYi90b2tlbml6ZS5weQorKysgYi9MaWIvdG9rZW5pemUucHkKQEAgLTQ1LDYgKzQ1LDUxIEBACiBFTkNPRElORyA9IE5fVE9LRU5TICsgMgogdG9rX25hbWVbRU5DT0RJTkddID0gJ0VOQ09ESU5HJwogTl9UT0tFTlMgKz0gMworRVhBQ1RfVE9LRU5fVFlQRVMgPSB7CisgICAgJygnOiAgIExQQVIsCisgICAgJyknOiAgIFJQQVIsCisgICAgJ1snOiAgIExTUUIsCisgICAgJ10nOiAgIFJTUUIsCisgICAgJzonOiAgIENPTE9OLAorICAgICcsJzogICBDT01NQSwKKyAgICAnOyc6ICAgU0VNSSwKKyAgICAnKyc6ICAgUExVUywKKyAgICAnLSc6ICAgTUlOVVMsCisgICAgJyonOiAgIFNUQVIsCisgICAgJy8nOiAgIFNMQVNILAorICAgICd8JzogICBWQkFSLAorICAgICcmJzogICBBTVBFUiwKKyAgICAnPCc6ICAgTEVTUywKKyAgICAnPic6ICAgR1JFQVRFUiwKKyAgICAnPSc6ICAgRVFVQUwsCisgICAgJy4nOiAgIERPVCwKKyAgICAnJSc6ICAgUEVSQ0VOVCwKKyAgICAneyc6ICAgTEJSQUNFLAorICAgICd9JzogICBSQlJBQ0UsCisgICAgJz09JzogIEVRRVFVQUwsCisgICAgJyE9JzogIE5PVEVRVUFMLAorICAgICc8PSc6ICBMRVNTRVFVQUwsCisgICAgJz49JzogIEdSRUFURVJFUVVBTCwKKyAgICAnfic6ICAgVElMREUsCisgICAgJ14nOiAgIENJUkNVTUZMRVgsCisgICAgJzw8JzogIExFRlRTSElGVCwKKyAgICAnPj4nOiAgUklHSFRTSElGVCwKKyAgICAnKionOiAgRE9VQkxFU1RBUiwKKyAgICAnKz0nOiAgUExVU0VRVUFMLAorICAgICctPSc6ICBNSU5FUVVBTCwKKyAgICAnKj0nOiAgU1RBUkVRVUFMLAorICAgICcvPSc6ICBTTEFTSEVRVUFMLAorICAgICclPSc6ICBQRVJDRU5URVFVQUwsCisgICAgJyY9JzogIEFNUEVSRVFVQUwsCisgICAgJ3w9JzogIFZCQVJFUVVBTCwKKyAgICAnXj0nOiBDSVJDVU1GTEVYRVFVQUwsCisgICAgJzw8PSc6IExFRlRTSElGVEVRVUFMLAorICAgICc+Pj0nOiBSSUdIVFNISUZURVFVQUwsCisgICAgJyoqPSc6IERPVUJMRVNUQVJFUVVBTCwKKyAgICAnLy8nOiAgRE9VQkxFU0xBU0gsCisgICAgJy8vPSc6IERPVUJMRVNMQVNIRVFVQUwsCisgICAgJ0AnOiAgIEFUCit9CiAKIGNsYXNzIFRva2VuSW5mbyhjb2xsZWN0aW9ucy5uYW1lZHR1cGxlKCdUb2tlbkluZm8nLCAndHlwZSBzdHJpbmcgc3RhcnQgZW5kIGxpbmUnKSk6CiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgpAQCAtNTIsNiArOTcsMTMgQEAKICAgICAgICAgcmV0dXJuICgnVG9rZW5JbmZvKHR5cGU9JXMsIHN0cmluZz0lciwgc3RhcnQ9JXIsIGVuZD0lciwgbGluZT0lciknICUKICAgICAgICAgICAgICAgICBzZWxmLl9yZXBsYWNlKHR5cGU9YW5ub3RhdGVkX3R5cGUpKQogCisgICAgQHByb3BlcnR5CisgICAgZGVmIGV4YWN0X3R5cGUoc2VsZik6CisgICAgICAgIGlmIHNlbGYudHlwZSA9PSBPUCBhbmQgc2VsZi5zdHJpbmcgaW4gRVhBQ1RfVE9LRU5fVFlQRVM6CisgICAgICAgICAgICByZXR1cm4gRVhBQ1RfVE9LRU5fVFlQRVNbc2VsZi5zdHJpbmddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi50eXBlCisKIGRlZiBncm91cCgqY2hvaWNlcyk6IHJldHVybiAnKCcgKyAnfCcuam9pbihjaG9pY2VzKSArICcpJwogZGVmIGFueSgqY2hvaWNlcyk6IHJldHVybiBncm91cCgqY2hvaWNlcykgKyAnKicKIGRlZiBtYXliZSgqY2hvaWNlcyk6IHJldHVybiBncm91cCgqY2hvaWNlcykgKyAnPycKQEAgLTc1LDYgKzEyNyw4IEBACiBJbWFnbnVtYmVyID0gZ3JvdXAocidbMC05XStbakpdJywgRmxvYXRudW1iZXIgKyByJ1tqSl0nKQogTnVtYmVyID0gZ3JvdXAoSW1hZ251bWJlciwgRmxvYXRudW1iZXIsIEludG51bWJlcikKIAorU3RyaW5nUHJlZml4ID0gcicoPzpbYkJdW3JSXT98W3JSXVtiQl0/fFt1VV0pPycKKwogIyBUYWlsIGVuZCBvZiAnIHN0cmluZy4KIFNpbmdsZSA9IHIiW14nXFxdKig/OlxcLlteJ1xcXSopKiciCiAjIFRhaWwgZW5kIG9mICIgc3RyaW5nLgpAQCAtODMsMTAgKzEzNywxMCBAQAogU2luZ2xlMyA9IHIiW14nXFxdKig/Oig/OlxcLnwnKD8hJycpKVteJ1xcXSopKicnJyIKICMgVGFpbCBlbmQgb2YgIiIiIHN0cmluZy4KIERvdWJsZTMgPSByJ1teIlxcXSooPzooPzpcXC58Iig/ISIiKSlbXiJcXF0qKSoiIiInCi1UcmlwbGUgPSBncm91cCgiW2JCXT9bclJdPycnJyIsICdbYkJdP1tyUl0/IiIiJykKK1RyaXBsZSA9IGdyb3VwKFN0cmluZ1ByZWZpeCArICInJyciLCBTdHJpbmdQcmVmaXggKyAnIiIiJykKICMgU2luZ2xlLWxpbmUgJyBvciAiIHN0cmluZy4KLVN0cmluZyA9IGdyb3VwKHIiW2JCXT9bclJdPydbXlxuJ1xcXSooPzpcXC5bXlxuJ1xcXSopKiciLAotICAgICAgICAgICAgICAgcidbYkJdP1tyUl0/IlteXG4iXFxdKig/OlxcLlteXG4iXFxdKikqIicpCitTdHJpbmcgPSBncm91cChTdHJpbmdQcmVmaXggKyByIidbXlxuJ1xcXSooPzpcXC5bXlxuJ1xcXSopKiciLAorICAgICAgICAgICAgICAgU3RyaW5nUHJlZml4ICsgciciW15cbiJcXF0qKD86XFwuW15cbiJcXF0qKSoiJykKIAogIyBCZWNhdXNlIG9mIGxlZnRtb3N0LXRoZW4tbG9uZ2VzdCBtYXRjaCBzZW1hbnRpY3MsIGJlIHN1cmUgdG8gcHV0IHRoZQogIyBsb25nZXN0IG9wZXJhdG9ycyBmaXJzdCAoZS5nLiwgaWYgPSBjYW1lIGJlZm9yZSA9PSwgPT0gd291bGQgZ2V0CkBAIC0xMDQsOSArMTU4LDkgQEAKIFRva2VuID0gSWdub3JlICsgUGxhaW5Ub2tlbgogCiAjIEZpcnN0IChvciBvbmx5KSBsaW5lIG9mICcgb3IgIiBzdHJpbmcuCi1Db250U3RyID0gZ3JvdXAociJbYkJdP1tyUl0/J1teXG4nXFxdKig/OlxcLlteXG4nXFxdKikqIiArCitDb250U3RyID0gZ3JvdXAoU3RyaW5nUHJlZml4ICsgciInW15cbidcXF0qKD86XFwuW15cbidcXF0qKSoiICsKICAgICAgICAgICAgICAgICBncm91cCgiJyIsIHInXFxccj9cbicpLAotICAgICAgICAgICAgICAgIHInW2JCXT9bclJdPyJbXlxuIlxcXSooPzpcXC5bXlxuIlxcXSopKicgKworICAgICAgICAgICAgICAgIFN0cmluZ1ByZWZpeCArIHInIlteXG4iXFxdKig/OlxcLlteXG4iXFxdKikqJyArCiAgICAgICAgICAgICAgICAgZ3JvdXAoJyInLCByJ1xcXHI/XG4nKSkKIFBzZXVkb0V4dHJhcyA9IGdyb3VwKHInXFxccj9cbicsIENvbW1lbnQsIFRyaXBsZSkKIFBzZXVkb1Rva2VuID0gV2hpdGVzcGFjZSArIGdyb3VwKFBzZXVkb0V4dHJhcywgTnVtYmVyLCBGdW5ueSwgQ29udFN0ciwgTmFtZSkKQEAgLTExNCwzNyArMTY4LDQ5IEBACiBkZWYgX2NvbXBpbGUoZXhwcik6CiAgICAgcmV0dXJuIHJlLmNvbXBpbGUoZXhwciwgcmUuVU5JQ09ERSkKIAotdG9rZW5wcm9nLCBwc2V1ZG9wcm9nLCBzaW5nbGUzcHJvZywgZG91YmxlM3Byb2cgPSBtYXAoCi0gICAgX2NvbXBpbGUsIChUb2tlbiwgUHNldWRvVG9rZW4sIFNpbmdsZTMsIERvdWJsZTMpKQotZW5kcHJvZ3MgPSB7IiciOiBfY29tcGlsZShTaW5nbGUpLCAnIic6IF9jb21waWxlKERvdWJsZSksCi0gICAgICAgICAgICAiJycnIjogc2luZ2xlM3Byb2csICciIiInOiBkb3VibGUzcHJvZywKLSAgICAgICAgICAgICJyJycnIjogc2luZ2xlM3Byb2csICdyIiIiJzogZG91YmxlM3Byb2csCi0gICAgICAgICAgICAiYicnJyI6IHNpbmdsZTNwcm9nLCAnYiIiIic6IGRvdWJsZTNwcm9nLAotICAgICAgICAgICAgImJyJycnIjogc2luZ2xlM3Byb2csICdiciIiIic6IGRvdWJsZTNwcm9nLAotICAgICAgICAgICAgIlInJyciOiBzaW5nbGUzcHJvZywgJ1IiIiInOiBkb3VibGUzcHJvZywKLSAgICAgICAgICAgICJCJycnIjogc2luZ2xlM3Byb2csICdCIiIiJzogZG91YmxlM3Byb2csCi0gICAgICAgICAgICAiYlInJyciOiBzaW5nbGUzcHJvZywgJ2JSIiIiJzogZG91YmxlM3Byb2csCi0gICAgICAgICAgICAiQnInJyciOiBzaW5nbGUzcHJvZywgJ0JyIiIiJzogZG91YmxlM3Byb2csCi0gICAgICAgICAgICAiQlInJyciOiBzaW5nbGUzcHJvZywgJ0JSIiIiJzogZG91YmxlM3Byb2csCi0gICAgICAgICAgICAncic6IE5vbmUsICdSJzogTm9uZSwgJ2InOiBOb25lLCAnQic6IE5vbmV9CitlbmRwYXRzID0geyInIjogU2luZ2xlLCAnIic6IERvdWJsZSwKKyAgICAgICAgICAgIicnJyI6IFNpbmdsZTMsICciIiInOiBEb3VibGUzLAorICAgICAgICAgICAicicnJyI6IFNpbmdsZTMsICdyIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgImInJyciOiBTaW5nbGUzLCAnYiIiIic6IERvdWJsZTMsCisgICAgICAgICAgICJSJycnIjogU2luZ2xlMywgJ1IiIiInOiBEb3VibGUzLAorICAgICAgICAgICAiQicnJyI6IFNpbmdsZTMsICdCIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgImJyJycnIjogU2luZ2xlMywgJ2JyIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgImJSJycnIjogU2luZ2xlMywgJ2JSIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgIkJyJycnIjogU2luZ2xlMywgJ0JyIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgIkJSJycnIjogU2luZ2xlMywgJ0JSIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgInJiJycnIjogU2luZ2xlMywgJ3JiIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgIlJiJycnIjogU2luZ2xlMywgJ1JiIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgInJCJycnIjogU2luZ2xlMywgJ3JCIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgIlJCJycnIjogU2luZ2xlMywgJ1JCIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgInUnJyciOiBTaW5nbGUzLCAndSIiIic6IERvdWJsZTMsCisgICAgICAgICAgICJSJycnIjogU2luZ2xlMywgJ1IiIiInOiBEb3VibGUzLAorICAgICAgICAgICAiVScnJyI6IFNpbmdsZTMsICdVIiIiJzogRG91YmxlMywKKyAgICAgICAgICAgJ3InOiBOb25lLCAnUic6IE5vbmUsICdiJzogTm9uZSwgJ0InOiBOb25lLAorICAgICAgICAgICAndSc6IE5vbmUsICdVJzogTm9uZX0KIAogdHJpcGxlX3F1b3RlZCA9IHt9CiBmb3IgdCBpbiAoIicnJyIsICciIiInLAogICAgICAgICAgICJyJycnIiwgJ3IiIiInLCAiUicnJyIsICdSIiIiJywKICAgICAgICAgICAiYicnJyIsICdiIiIiJywgIkInJyciLCAnQiIiIicsCiAgICAgICAgICAgImJyJycnIiwgJ2JyIiIiJywgIkJyJycnIiwgJ0JyIiIiJywKLSAgICAgICAgICAiYlInJyciLCAnYlIiIiInLCAiQlInJyciLCAnQlIiIiInKToKKyAgICAgICAgICAiYlInJyciLCAnYlIiIiInLCAiQlInJyciLCAnQlIiIiInLAorICAgICAgICAgICJyYicnJyIsICdyYiIiIicsICJyQicnJyIsICdyQiIiIicsCisgICAgICAgICAgIlJiJycnIiwgJ1JiIiIiJywgIlJCJycnIiwgJ1JCIiIiJywKKyAgICAgICAgICAidScnJyIsICd1IiIiJywgIlUnJyciLCAnVSIiIicsCisgICAgICAgICAgKToKICAgICB0cmlwbGVfcXVvdGVkW3RdID0gdAogc2luZ2xlX3F1b3RlZCA9IHt9CiBmb3IgdCBpbiAoIiciLCAnIicsCiAgICAgICAgICAgInInIiwgJ3IiJywgIlInIiwgJ1IiJywKICAgICAgICAgICAiYiciLCAnYiInLCAiQiciLCAnQiInLAogICAgICAgICAgICJiciciLCAnYnIiJywgIkJyJyIsICdCciInLAotICAgICAgICAgICJiUiciLCAnYlIiJywgIkJSJyIsICdCUiInICk6CisgICAgICAgICAgImJSJyIsICdiUiInLCAiQlInIiwgJ0JSIicgLAorICAgICAgICAgICJyYiciLCAncmIiJywgInJCJyIsICdyQiInLAorICAgICAgICAgICJSYiciLCAnUmIiJywgIlJCJyIsICdSQiInICwKKyAgICAgICAgICAidSciLCAndSInLCAiVSciLCAnVSInLAorICAgICAgICAgICk6CiAgICAgc2luZ2xlX3F1b3RlZFt0XSA9IHQKIAotZGVsIF9jb21waWxlCi0KIHRhYnNpemUgPSA4CiAKIGNsYXNzIFRva2VuRXJyb3IoRXhjZXB0aW9uKTogcGFzcwpAQCAtMjgxLDYgKzM0NywxMCBAQAogCiAgICAgSWYgbm8gZW5jb2RpbmcgaXMgc3BlY2lmaWVkLCB0aGVuIHRoZSBkZWZhdWx0IG9mICd1dGYtOCcgd2lsbCBiZSByZXR1cm5lZC4KICAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGZpbGVuYW1lID0gcmVhZGxpbmUuX19zZWxmX18ubmFtZQorICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgZmlsZW5hbWUgPSBOb25lCiAgICAgYm9tX2ZvdW5kID0gRmFsc2UKICAgICBlbmNvZGluZyA9IE5vbmUKICAgICBkZWZhdWx0ID0gJ3V0Zi04JwpAQCAtMjk3LDcgKzM2NywxMCBAQAogICAgICAgICAgICAgIyBwZXIgZGVmYXVsdCBlbmNvZGluZy4KICAgICAgICAgICAgIGxpbmVfc3RyaW5nID0gbGluZS5kZWNvZGUoJ3V0Zi04JykKICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKCJpbnZhbGlkIG9yIG1pc3NpbmcgZW5jb2RpbmcgZGVjbGFyYXRpb24iKQorICAgICAgICAgICAgbXNnID0gImludmFsaWQgb3IgbWlzc2luZyBlbmNvZGluZyBkZWNsYXJhdGlvbiIKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIG1zZyA9ICd7fSBmb3IgeyFyfScuZm9ybWF0KG1zZywgZmlsZW5hbWUpCisgICAgICAgICAgICByYWlzZSBTeW50YXhFcnJvcihtc2cpCiAKICAgICAgICAgbWF0Y2hlcyA9IGNvb2tpZV9yZS5maW5kYWxsKGxpbmVfc3RyaW5nKQogICAgICAgICBpZiBub3QgbWF0Y2hlczoKQEAgLTMwNywxMiArMzgwLDIxIEBACiAgICAgICAgICAgICBjb2RlYyA9IGxvb2t1cChlbmNvZGluZykKICAgICAgICAgZXhjZXB0IExvb2t1cEVycm9yOgogICAgICAgICAgICAgIyBUaGlzIGJlaGF2aW91ciBtaW1pY3MgdGhlIFB5dGhvbiBpbnRlcnByZXRlcgotICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IoInVua25vd24gZW5jb2Rpbmc6ICIgKyBlbmNvZGluZykKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgbXNnID0gInVua25vd24gZW5jb2Rpbmc6ICIgKyBlbmNvZGluZworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtc2cgPSAidW5rbm93biBlbmNvZGluZyBmb3IgeyFyfToge30iLmZvcm1hdChmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nKQorICAgICAgICAgICAgcmFpc2UgU3ludGF4RXJyb3IobXNnKQogCiAgICAgICAgIGlmIGJvbV9mb3VuZDoKICAgICAgICAgICAgIGlmIGVuY29kaW5nICE9ICd1dGYtOCc6CiAgICAgICAgICAgICAgICAgIyBUaGlzIGJlaGF2aW91ciBtaW1pY3MgdGhlIFB5dGhvbiBpbnRlcnByZXRlcgotICAgICAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKCdlbmNvZGluZyBwcm9ibGVtOiB1dGYtOCcpCisgICAgICAgICAgICAgICAgaWYgZmlsZW5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgbXNnID0gJ2VuY29kaW5nIHByb2JsZW06IHV0Zi04JworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG1zZyA9ICdlbmNvZGluZyBwcm9ibGVtIGZvciB7IXJ9OiB1dGYtOCcuZm9ybWF0KGZpbGVuYW1lKQorICAgICAgICAgICAgICAgIHJhaXNlIFN5bnRheEVycm9yKG1zZykKICAgICAgICAgICAgIGVuY29kaW5nICs9ICctc2lnJwogICAgICAgICByZXR1cm4gZW5jb2RpbmcKIApAQCAtNDY5LDcgKzU1MSw3IEBACiAgICAgICAgICAgICBjb250aW51ZWQgPSAwCiAKICAgICAgICAgd2hpbGUgcG9zIDwgbWF4OgotICAgICAgICAgICAgcHNldWRvbWF0Y2ggPSBwc2V1ZG9wcm9nLm1hdGNoKGxpbmUsIHBvcykKKyAgICAgICAgICAgIHBzZXVkb21hdGNoID0gX2NvbXBpbGUoUHNldWRvVG9rZW4pLm1hdGNoKGxpbmUsIHBvcykKICAgICAgICAgICAgIGlmIHBzZXVkb21hdGNoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzY2FuIGZvciB0b2tlbnMKICAgICAgICAgICAgICAgICBzdGFydCwgZW5kID0gcHNldWRvbWF0Y2guc3BhbigxKQogICAgICAgICAgICAgICAgIHNwb3MsIGVwb3MsIHBvcyA9IChsbnVtLCBzdGFydCksIChsbnVtLCBlbmQpLCBlbmQKQEAgLTQ4NSw3ICs1NjcsNyBAQAogICAgICAgICAgICAgICAgICAgICBhc3NlcnQgbm90IHRva2VuLmVuZHN3aXRoKCJcbiIpCiAgICAgICAgICAgICAgICAgICAgIHlpZWxkIFRva2VuSW5mbyhDT01NRU5ULCB0b2tlbiwgc3BvcywgZXBvcywgbGluZSkKICAgICAgICAgICAgICAgICBlbGlmIHRva2VuIGluIHRyaXBsZV9xdW90ZWQ6Ci0gICAgICAgICAgICAgICAgICAgIGVuZHByb2cgPSBlbmRwcm9nc1t0b2tlbl0KKyAgICAgICAgICAgICAgICAgICAgZW5kcHJvZyA9IF9jb21waWxlKGVuZHBhdHNbdG9rZW5dKQogICAgICAgICAgICAgICAgICAgICBlbmRtYXRjaCA9IGVuZHByb2cubWF0Y2gobGluZSwgcG9zKQogICAgICAgICAgICAgICAgICAgICBpZiBlbmRtYXRjaDogICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFsbCBvbiBvbmUgbGluZQogICAgICAgICAgICAgICAgICAgICAgICAgcG9zID0gZW5kbWF0Y2guZW5kKDApCkBAIC01MDEsOCArNTgzLDkgQEAKICAgICAgICAgICAgICAgICAgICAgdG9rZW5bOjNdIGluIHNpbmdsZV9xdW90ZWQ6CiAgICAgICAgICAgICAgICAgICAgIGlmIHRva2VuWy0xXSA9PSAnXG4nOiAgICAgICAgICAgICAgICAgICMgY29udGludWVkIHN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgc3Ryc3RhcnQgPSAobG51bSwgc3RhcnQpCi0gICAgICAgICAgICAgICAgICAgICAgICBlbmRwcm9nID0gKGVuZHByb2dzW2luaXRpYWxdIG9yIGVuZHByb2dzW3Rva2VuWzFdXSBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwcm9nc1t0b2tlblsyXV0pCisgICAgICAgICAgICAgICAgICAgICAgICBlbmRwcm9nID0gX2NvbXBpbGUoZW5kcGF0c1tpbml0aWFsXSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBhdHNbdG9rZW5bMV1dIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcGF0c1t0b2tlblsyXV0pCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250c3RyLCBuZWVkY29udCA9IGxpbmVbc3RhcnQ6XSwgMQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGxpbmUgPSBsaW5lCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawpAQCAtNTMzLDI3ICs2MTYsNjUgQEAKIGRlZiBnZW5lcmF0ZV90b2tlbnMocmVhZGxpbmUpOgogICAgIHJldHVybiBfdG9rZW5pemUocmVhZGxpbmUsIE5vbmUpCiAKK2RlZiBtYWluKCk6CisgICAgaW1wb3J0IGFyZ3BhcnNlCisKKyAgICAjIEhlbHBlciBlcnJvciBoYW5kbGluZyByb3V0aW5lcworICAgIGRlZiBwZXJyb3IobWVzc2FnZSk6CisgICAgICAgIHByaW50KG1lc3NhZ2UsIGZpbGU9c3lzLnN0ZGVycikKKworICAgIGRlZiBlcnJvcihtZXNzYWdlLCBmaWxlbmFtZT1Ob25lLCBsb2NhdGlvbj1Ob25lKToKKyAgICAgICAgaWYgbG9jYXRpb246CisgICAgICAgICAgICBhcmdzID0gKGZpbGVuYW1lLCkgKyBsb2NhdGlvbiArIChtZXNzYWdlLCkKKyAgICAgICAgICAgIHBlcnJvcigiJXM6JWQ6JWQ6IGVycm9yOiAlcyIgJSBhcmdzKQorICAgICAgICBlbGlmIGZpbGVuYW1lOgorICAgICAgICAgICAgcGVycm9yKCIlczogZXJyb3I6ICVzIiAlIChmaWxlbmFtZSwgbWVzc2FnZSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwZXJyb3IoImVycm9yOiAlcyIgJSBtZXNzYWdlKQorICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgIyBQYXJzZSB0aGUgYXJndW1lbnRzIGFuZCBvcHRpb25zCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIocHJvZz0ncHl0aG9uIC1tIHRva2VuaXplJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KGRlc3Q9J2ZpbGVuYW1lJywgbmFyZ3M9Jz8nLAorICAgICAgICAgICAgICAgICAgICAgICAgbWV0YXZhcj0nZmlsZW5hbWUucHknLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ndGhlIGZpbGUgdG8gdG9rZW5pemU7IGRlZmF1bHRzIHRvIHN0ZGluJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctZScsICctLWV4YWN0JywgZGVzdD0nZXhhY3QnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nZGlzcGxheSB0b2tlbiBuYW1lcyB1c2luZyB0aGUgZXhhY3QgdHlwZScpCisgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKworICAgIHRyeToKKyAgICAgICAgIyBUb2tlbml6ZSB0aGUgaW5wdXQKKyAgICAgICAgaWYgYXJncy5maWxlbmFtZToKKyAgICAgICAgICAgIGZpbGVuYW1lID0gYXJncy5maWxlbmFtZQorICAgICAgICAgICAgd2l0aCBidWlsdGlucy5vcGVuKGZpbGVuYW1lLCAncmInKSBhcyBmOgorICAgICAgICAgICAgICAgIHRva2VucyA9IGxpc3QodG9rZW5pemUoZi5yZWFkbGluZSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmaWxlbmFtZSA9ICI8c3RkaW4+IgorICAgICAgICAgICAgdG9rZW5zID0gX3Rva2VuaXplKHN5cy5zdGRpbi5yZWFkbGluZSwgTm9uZSkKKworICAgICAgICAjIE91dHB1dCB0aGUgdG9rZW5pemF0aW9uCisgICAgICAgIGZvciB0b2tlbiBpbiB0b2tlbnM6CisgICAgICAgICAgICB0b2tlbl90eXBlID0gdG9rZW4udHlwZQorICAgICAgICAgICAgaWYgYXJncy5leGFjdDoKKyAgICAgICAgICAgICAgICB0b2tlbl90eXBlID0gdG9rZW4uZXhhY3RfdHlwZQorICAgICAgICAgICAgdG9rZW5fcmFuZ2UgPSAiJWQsJWQtJWQsJWQ6IiAlICh0b2tlbi5zdGFydCArIHRva2VuLmVuZCkKKyAgICAgICAgICAgIHByaW50KCIlLTIwcyUtMTVzJS0xNXIiICUKKyAgICAgICAgICAgICAgICAgICh0b2tlbl9yYW5nZSwgdG9rX25hbWVbdG9rZW5fdHlwZV0sIHRva2VuLnN0cmluZykpCisgICAgZXhjZXB0IEluZGVudGF0aW9uRXJyb3IgYXMgZXJyOgorICAgICAgICBsaW5lLCBjb2x1bW4gPSBlcnIuYXJnc1sxXVsxOjNdCisgICAgICAgIGVycm9yKGVyci5hcmdzWzBdLCBmaWxlbmFtZSwgKGxpbmUsIGNvbHVtbikpCisgICAgZXhjZXB0IFRva2VuRXJyb3IgYXMgZXJyOgorICAgICAgICBsaW5lLCBjb2x1bW4gPSBlcnIuYXJnc1sxXQorICAgICAgICBlcnJvcihlcnIuYXJnc1swXSwgZmlsZW5hbWUsIChsaW5lLCBjb2x1bW4pKQorICAgIGV4Y2VwdCBTeW50YXhFcnJvciBhcyBlcnI6CisgICAgICAgIGVycm9yKGVyciwgZmlsZW5hbWUpCisgICAgZXhjZXB0IElPRXJyb3IgYXMgZXJyOgorICAgICAgICBlcnJvcihlcnIpCisgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICBwcmludCgiaW50ZXJydXB0ZWRcbiIpCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlcnI6CisgICAgICAgIHBlcnJvcigidW5leHBlY3RlZCBlcnJvcjogJXMiICUgZXJyKQorICAgICAgICByYWlzZQorCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgICMgUXVpY2sgc2FuaXR5IGNoZWNrCi0gICAgcyA9IGInJydkZWYgcGFyc2VsaW5lKHNlbGYsIGxpbmUpOgotICAgICAgICAgICAgIiIiUGFyc2UgdGhlIGxpbmUgaW50byBhIGNvbW1hbmQgbmFtZSBhbmQgYSBzdHJpbmcgY29udGFpbmluZwotICAgICAgICAgICAgdGhlIGFyZ3VtZW50cy4gIFJldHVybnMgYSB0dXBsZSBjb250YWluaW5nIChjb21tYW5kLCBhcmdzLCBsaW5lKS4KLSAgICAgICAgICAgICdjb21tYW5kJyBhbmQgJ2FyZ3MnIG1heSBiZSBOb25lIGlmIHRoZSBsaW5lIGNvdWxkbid0IGJlIHBhcnNlZC4KLSAgICAgICAgICAgICIiIgotICAgICAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQotICAgICAgICAgICAgaWYgbm90IGxpbmU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIGxpbmUKLSAgICAgICAgICAgIGVsaWYgbGluZVswXSA9PSAnPyc6Ci0gICAgICAgICAgICAgICAgbGluZSA9ICdoZWxwICcgKyBsaW5lWzE6XQotICAgICAgICAgICAgZWxpZiBsaW5lWzBdID09ICchJzoKLSAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdkb19zaGVsbCcpOgotICAgICAgICAgICAgICAgICAgICBsaW5lID0gJ3NoZWxsICcgKyBsaW5lWzE6XQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lLCBOb25lLCBsaW5lCi0gICAgICAgICAgICBpLCBuID0gMCwgbGVuKGxpbmUpCi0gICAgICAgICAgICB3aGlsZSBpIDwgbiBhbmQgbGluZVtpXSBpbiBzZWxmLmlkZW50Y2hhcnM6IGkgPSBpKzEKLSAgICAgICAgICAgIGNtZCwgYXJnID0gbGluZVs6aV0sIGxpbmVbaTpdLnN0cmlwKCkKLSAgICAgICAgICAgIHJldHVybiBjbWQsIGFyZywgbGluZQotICAgICcnJwotICAgIGZvciB0b2sgaW4gdG9rZW5pemUoaXRlcihzLnNwbGl0bGluZXMoKSkuX19uZXh0X18pOgotICAgICAgICBwcmludCh0b2spCisgICAgbWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdHJhY2UucHkgYi9MaWIvdHJhY2UucHkKaW5kZXggODUwMzY5Yi4uMzE3YjVmZCAxMDA2NDQKLS0tIGEvTGliL3RyYWNlLnB5CisrKyBiL0xpYi90cmFjZS5weQpAQCAtMzksOCArMzksOCBAQAogCiAgICMgY3JlYXRlIGEgVHJhY2Ugb2JqZWN0LCB0ZWxsaW5nIGl0IHdoYXQgdG8gaWdub3JlLCBhbmQgd2hldGhlciB0bwogICAjIGRvIHRyYWNpbmcgb3IgbGluZS1jb3VudGluZyBvciBib3RoLgotICB0cmFjZXIgPSB0cmFjZS5UcmFjZShpZ25vcmVkaXJzPVtzeXMucHJlZml4LCBzeXMuZXhlY19wcmVmaXgsXSwgdHJhY2U9MCwKLSAgICAgICAgICAgICAgICAgICAgY291bnQ9MSkKKyAgdHJhY2VyID0gdHJhY2UuVHJhY2UoaWdub3JlZGlycz1bc3lzLmJhc2VfcHJlZml4LCBzeXMuYmFzZV9leGVjX3ByZWZpeCxdLAorICAgICAgICAgICAgICAgICAgICAgICB0cmFjZT0wLCBjb3VudD0xKQogICAjIHJ1biB0aGUgbmV3IGNvbW1hbmQgdXNpbmcgdGhlIGdpdmVuIHRyYWNlcgogICB0cmFjZXIucnVuKCdtYWluKCknKQogICAjIG1ha2UgYSByZXBvcnQsIHBsYWNpbmcgb3V0cHV0IGluIC90bXAKQEAgLTQ4LDE5ICs0OCwyMCBAQAogICByLndyaXRlX3Jlc3VsdHMoc2hvd19taXNzaW5nPVRydWUsIGNvdmVyZGlyPSIvdG1wIikKICIiIgogX19hbGxfXyA9IFsnVHJhY2UnLCAnQ292ZXJhZ2VSZXN1bHRzJ10KLWltcG9ydCBpbwogaW1wb3J0IGxpbmVjYWNoZQogaW1wb3J0IG9zCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKLWltcG9ydCB0aW1lCiBpbXBvcnQgdG9rZW4KIGltcG9ydCB0b2tlbml6ZQogaW1wb3J0IGluc3BlY3QKIGltcG9ydCBnYwogaW1wb3J0IGRpcwogaW1wb3J0IHBpY2tsZQotZnJvbSB3YXJuaW5ncyBpbXBvcnQgd2FybiBhcyBfd2FybgordHJ5OgorICAgIGZyb20gdGltZSBpbXBvcnQgbW9ub3RvbmljIGFzIF90aW1lCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZnJvbSB0aW1lIGltcG9ydCB0aW1lIGFzIF90aW1lCiAKIHRyeToKICAgICBpbXBvcnQgdGhyZWFkaW5nCkBAIC0yNDQsOCArMjQ1LDcgQEAKICAgICAgICAgIiIiUmV0dXJuIFRydWUgaWYgdGhlIGZpbGVuYW1lIGRvZXMgbm90IHJlZmVyIHRvIGEgZmlsZQogICAgICAgICB3ZSB3YW50IHRvIGhhdmUgcmVwb3J0ZWQuCiAgICAgICAgICIiIgotICAgICAgICByZXR1cm4gKGZpbGVuYW1lID09ICI8c3RyaW5nPiIgb3IKLSAgICAgICAgICAgICAgICBmaWxlbmFtZS5zdGFydHN3aXRoKCI8ZG9jdGVzdCAiKSkKKyAgICAgICAgcmV0dXJuIGZpbGVuYW1lLnN0YXJ0c3dpdGgoJzwnKSBhbmQgZmlsZW5hbWUuZW5kc3dpdGgoJz4nKQogCiAgICAgZGVmIHVwZGF0ZShzZWxmLCBvdGhlcik6CiAgICAgICAgICIiIk1lcmdlIGluIHRoZSBkYXRhIGZyb20gYW5vdGhlciBDb3ZlcmFnZVJlc3VsdHMiIiIKQEAgLTQ3Nyw3ICs0NzcsNyBAQAogICAgICAgICBzZWxmLl9jYWxsZXJfY2FjaGUgPSB7fQogICAgICAgICBzZWxmLnN0YXJ0X3RpbWUgPSBOb25lCiAgICAgICAgIGlmIHRpbWluZzoKLSAgICAgICAgICAgIHNlbGYuc3RhcnRfdGltZSA9IHRpbWUudGltZSgpCisgICAgICAgICAgICBzZWxmLnN0YXJ0X3RpbWUgPSBfdGltZSgpCiAgICAgICAgIGlmIGNvdW50Y2FsbGVyczoKICAgICAgICAgICAgIHNlbGYuZ2xvYmFsdHJhY2UgPSBzZWxmLmdsb2JhbHRyYWNlX3RyYWNrY2FsbGVycwogICAgICAgICBlbGlmIGNvdW50ZnVuY3M6CkBAIC02MTUsNyArNjE1LDcgQEAKICAgICAgICAgICAgIHNlbGYuY291bnRzW2tleV0gPSBzZWxmLmNvdW50cy5nZXQoa2V5LCAwKSArIDEKIAogICAgICAgICAgICAgaWYgc2VsZi5zdGFydF90aW1lOgotICAgICAgICAgICAgICAgIHByaW50KCclLjJmJyAlICh0aW1lLnRpbWUoKSAtIHNlbGYuc3RhcnRfdGltZSksIGVuZD0nICcpCisgICAgICAgICAgICAgICAgcHJpbnQoJyUuMmYnICUgKF90aW1lKCkgLSBzZWxmLnN0YXJ0X3RpbWUpLCBlbmQ9JyAnKQogICAgICAgICAgICAgYm5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGZpbGVuYW1lKQogICAgICAgICAgICAgcHJpbnQoIiVzKCVkKTogJXMiICUgKGJuYW1lLCBsaW5lbm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZWNhY2hlLmdldGxpbmUoZmlsZW5hbWUsIGxpbmVubykpLCBlbmQ9JycpCkBAIC02MjgsNyArNjI4LDcgQEAKICAgICAgICAgICAgIGxpbmVubyA9IGZyYW1lLmZfbGluZW5vCiAKICAgICAgICAgICAgIGlmIHNlbGYuc3RhcnRfdGltZToKLSAgICAgICAgICAgICAgICBwcmludCgnJS4yZicgJSAodGltZS50aW1lKCkgLSBzZWxmLnN0YXJ0X3RpbWUpLCBlbmQ9JyAnKQorICAgICAgICAgICAgICAgIHByaW50KCclLjJmJyAlIChfdGltZSgpIC0gc2VsZi5zdGFydF90aW1lKSwgZW5kPScgJykKICAgICAgICAgICAgIGJuYW1lID0gb3MucGF0aC5iYXNlbmFtZShmaWxlbmFtZSkKICAgICAgICAgICAgIHByaW50KCIlcyglZCk6ICVzIiAlIChibmFtZSwgbGluZW5vLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVjYWNoZS5nZXRsaW5lKGZpbGVuYW1lLCBsaW5lbm8pKSwgZW5kPScnKQpAQCAtNzUwLDEwICs3NTAsMTAgQEAKICAgICAgICAgICAgICAgICAjIHNob3VsZCBJIGFsc28gY2FsbCBleHBhbmR1c2VyPyAoYWZ0ZXIgYWxsLCBjb3VsZCB1c2UgJEhPTUUpCiAKICAgICAgICAgICAgICAgICBzID0gcy5yZXBsYWNlKCIkcHJlZml4IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihzeXMucHJlZml4LCAibGliIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihzeXMuYmFzZV9wcmVmaXgsICJsaWIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJweXRob24iICsgc3lzLnZlcnNpb25bOjNdKSkKICAgICAgICAgICAgICAgICBzID0gcy5yZXBsYWNlKCIkZXhlY19wcmVmaXgiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKHN5cy5leGVjX3ByZWZpeCwgImxpYiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oc3lzLmJhc2VfZXhlY19wcmVmaXgsICJsaWIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJweXRob24iICsgc3lzLnZlcnNpb25bOjNdKSkKICAgICAgICAgICAgICAgICBzID0gb3MucGF0aC5ub3JtcGF0aChzKQogICAgICAgICAgICAgICAgIGlnbm9yZV9kaXJzLmFwcGVuZChzKQpkaWZmIC0tZ2l0IGEvTGliL3RyYWNlYmFjay5weSBiL0xpYi90cmFjZWJhY2sucHkKaW5kZXggOGQ0ZTk2ZS4uZWViOWU3MyAxMDA2NDQKLS0tIGEvTGliL3RyYWNlYmFjay5weQorKysgYi9MaWIvdHJhY2ViYWNrLnB5CkBAIC0xMTksMTUgKzExOSwxNiBAQAogICAgICAgICBzZWVuID0gc2V0KCkKICAgICBzZWVuLmFkZChleGMpCiAgICAgaXRzID0gW10KKyAgICBjb250ZXh0ID0gZXhjLl9fY29udGV4dF9fCiAgICAgY2F1c2UgPSBleGMuX19jYXVzZV9fCiAgICAgaWYgY2F1c2UgaXMgbm90IE5vbmUgYW5kIGNhdXNlIG5vdCBpbiBzZWVuOgotICAgICAgICBpdHMuYXBwZW5kKF9pdGVyX2NoYWluKGNhdXNlLCBOb25lLCBzZWVuKSkKKyAgICAgICAgaXRzLmFwcGVuZChfaXRlcl9jaGFpbihjYXVzZSwgRmFsc2UsIHNlZW4pKQogICAgICAgICBpdHMuYXBwZW5kKFsoX2NhdXNlX21lc3NhZ2UsIE5vbmUpXSkKLSAgICBlbHNlOgotICAgICAgICBjb250ZXh0ID0gZXhjLl9fY29udGV4dF9fCi0gICAgICAgIGlmIGNvbnRleHQgaXMgbm90IE5vbmUgYW5kIGNvbnRleHQgbm90IGluIHNlZW46Ci0gICAgICAgICAgICBpdHMuYXBwZW5kKF9pdGVyX2NoYWluKGNvbnRleHQsIE5vbmUsIHNlZW4pKQotICAgICAgICAgICAgaXRzLmFwcGVuZChbKF9jb250ZXh0X21lc3NhZ2UsIE5vbmUpXSkKKyAgICBlbGlmIChjb250ZXh0IGlzIG5vdCBOb25lIGFuZAorICAgICAgICAgIG5vdCBleGMuX19zdXBwcmVzc19jb250ZXh0X18gYW5kCisgICAgICAgICAgY29udGV4dCBub3QgaW4gc2Vlbik6CisgICAgICAgIGl0cy5hcHBlbmQoX2l0ZXJfY2hhaW4oY29udGV4dCwgTm9uZSwgc2VlbikpCisgICAgICAgIGl0cy5hcHBlbmQoWyhfY29udGV4dF9tZXNzYWdlLCBOb25lKV0pCiAgICAgaXRzLmFwcGVuZChbKGV4YywgY3VzdG9tX3RiIG9yIGV4Yy5fX3RyYWNlYmFja19fKV0pCiAgICAgIyBpdGVydG9vbHMuY2hhaW4gaXMgaW4gYW4gZXh0ZW5zaW9uIG1vZHVsZSBhbmQgbWF5IGJlIHVuYXZhaWxhYmxlCiAgICAgZm9yIGl0IGluIGl0czoKZGlmZiAtLWdpdCBhL0xpYi90dXJ0bGUucHkgYi9MaWIvdHVydGxlLnB5CmluZGV4IGFjMGMzMmMuLmE0NDc0MzMgMTAwNjQ0Ci0tLSBhL0xpYi90dXJ0bGUucHkKKysrIGIvTGliL3R1cnRsZS5weQpAQCAtMTA4LDcgKzEwOCw2IEBACiBpbXBvcnQgdHlwZXMKIGltcG9ydCBtYXRoCiBpbXBvcnQgdGltZQotaW1wb3J0IG9zCiBpbXBvcnQgaW5zcGVjdAogCiBmcm9tIG9zLnBhdGggaW1wb3J0IGlzZmlsZSwgc3BsaXQsIGpvaW4KZGlmZiAtLWdpdCBhL0xpYi90eXBlcy5weSBiL0xpYi90eXBlcy5weQppbmRleCBhYjM1NGQxLi5jZmQwOWVhIDEwMDY0NAotLS0gYS9MaWIvdHlwZXMucHkKKysrIGIvTGliL3R5cGVzLnB5CkBAIC0xMiw2ICsxMiw4IEBACiBGdW5jdGlvblR5cGUgPSB0eXBlKF9mKQogTGFtYmRhVHlwZSA9IHR5cGUobGFtYmRhOiBOb25lKSAgICAgICAgICMgU2FtZSBhcyBGdW5jdGlvblR5cGUKIENvZGVUeXBlID0gdHlwZShfZi5fX2NvZGVfXykKK01hcHBpbmdQcm94eVR5cGUgPSB0eXBlKHR5cGUuX19kaWN0X18pCitTaW1wbGVOYW1lc3BhY2UgPSB0eXBlKHN5cy5pbXBsZW1lbnRhdGlvbikKIAogZGVmIF9nKCk6CiAgICAgeWllbGQgMQpAQCAtMzksMyArNDEsNjEgQEAKIE1lbWJlckRlc2NyaXB0b3JUeXBlID0gdHlwZShGdW5jdGlvblR5cGUuX19nbG9iYWxzX18pCiAKIGRlbCBzeXMsIF9mLCBfZywgX0MsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBOb3QgZm9yIGV4cG9ydAorCisKKyMgUHJvdmlkZSBhIFBFUCAzMTE1IGNvbXBsaWFudCBtZWNoYW5pc20gZm9yIGNsYXNzIGNyZWF0aW9uCitkZWYgbmV3X2NsYXNzKG5hbWUsIGJhc2VzPSgpLCBrd2RzPU5vbmUsIGV4ZWNfYm9keT1Ob25lKToKKyAgICAiIiJDcmVhdGUgYSBjbGFzcyBvYmplY3QgZHluYW1pY2FsbHkgdXNpbmcgdGhlIGFwcHJvcHJpYXRlIG1ldGFjbGFzcy4iIiIKKyAgICBtZXRhLCBucywga3dkcyA9IHByZXBhcmVfY2xhc3MobmFtZSwgYmFzZXMsIGt3ZHMpCisgICAgaWYgZXhlY19ib2R5IGlzIG5vdCBOb25lOgorICAgICAgICBleGVjX2JvZHkobnMpCisgICAgcmV0dXJuIG1ldGEobmFtZSwgYmFzZXMsIG5zLCAqKmt3ZHMpCisKK2RlZiBwcmVwYXJlX2NsYXNzKG5hbWUsIGJhc2VzPSgpLCBrd2RzPU5vbmUpOgorICAgICIiIkNhbGwgdGhlIF9fcHJlcGFyZV9fIG1ldGhvZCBvZiB0aGUgYXBwcm9wcmlhdGUgbWV0YWNsYXNzLgorCisgICAgUmV0dXJucyAobWV0YWNsYXNzLCBuYW1lc3BhY2UsIGt3ZHMpIGFzIGEgMy10dXBsZQorCisgICAgKm1ldGFjbGFzcyogaXMgdGhlIGFwcHJvcHJpYXRlIG1ldGFjbGFzcworICAgICpuYW1lc3BhY2UqIGlzIHRoZSBwcmVwYXJlZCBjbGFzcyBuYW1lc3BhY2UKKyAgICAqa3dkcyogaXMgYW4gdXBkYXRlZCBjb3B5IG9mIHRoZSBwYXNzZWQgaW4ga3dkcyBhcmd1bWVudCB3aXRoIGFueQorICAgICdtZXRhY2xhc3MnIGVudHJ5IHJlbW92ZWQuIElmIG5vIGt3ZHMgYXJndW1lbnQgaXMgcGFzc2VkIGluLCB0aGlzIHdpbGwKKyAgICBiZSBhbiBlbXB0eSBkaWN0LgorICAgICIiIgorICAgIGlmIGt3ZHMgaXMgTm9uZToKKyAgICAgICAga3dkcyA9IHt9CisgICAgZWxzZToKKyAgICAgICAga3dkcyA9IGRpY3Qoa3dkcykgIyBEb24ndCBhbHRlciB0aGUgcHJvdmlkZWQgbWFwcGluZworICAgIGlmICdtZXRhY2xhc3MnIGluIGt3ZHM6CisgICAgICAgIG1ldGEgPSBrd2RzLnBvcCgnbWV0YWNsYXNzJykKKyAgICBlbHNlOgorICAgICAgICBpZiBiYXNlczoKKyAgICAgICAgICAgIG1ldGEgPSB0eXBlKGJhc2VzWzBdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbWV0YSA9IHR5cGUKKyAgICBpZiBpc2luc3RhbmNlKG1ldGEsIHR5cGUpOgorICAgICAgICAjIHdoZW4gbWV0YSBpcyBhIHR5cGUsIHdlIGZpcnN0IGRldGVybWluZSB0aGUgbW9zdC1kZXJpdmVkIG1ldGFjbGFzcworICAgICAgICAjIGluc3RlYWQgb2YgaW52b2tpbmcgdGhlIGluaXRpYWwgY2FuZGlkYXRlIGRpcmVjdGx5CisgICAgICAgIG1ldGEgPSBfY2FsY3VsYXRlX21ldGEobWV0YSwgYmFzZXMpCisgICAgaWYgaGFzYXR0cihtZXRhLCAnX19wcmVwYXJlX18nKToKKyAgICAgICAgbnMgPSBtZXRhLl9fcHJlcGFyZV9fKG5hbWUsIGJhc2VzLCAqKmt3ZHMpCisgICAgZWxzZToKKyAgICAgICAgbnMgPSB7fQorICAgIHJldHVybiBtZXRhLCBucywga3dkcworCitkZWYgX2NhbGN1bGF0ZV9tZXRhKG1ldGEsIGJhc2VzKToKKyAgICAiIiJDYWxjdWxhdGUgdGhlIG1vc3QgZGVyaXZlZCBtZXRhY2xhc3MuIiIiCisgICAgd2lubmVyID0gbWV0YQorICAgIGZvciBiYXNlIGluIGJhc2VzOgorICAgICAgICBiYXNlX21ldGEgPSB0eXBlKGJhc2UpCisgICAgICAgIGlmIGlzc3ViY2xhc3Mod2lubmVyLCBiYXNlX21ldGEpOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgaWYgaXNzdWJjbGFzcyhiYXNlX21ldGEsIHdpbm5lcik6CisgICAgICAgICAgICB3aW5uZXIgPSBiYXNlX21ldGEKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICMgZWxzZToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJtZXRhY2xhc3MgY29uZmxpY3Q6ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgbWV0YWNsYXNzIG9mIGEgZGVyaXZlZCBjbGFzcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAibXVzdCBiZSBhIChub24tc3RyaWN0KSBzdWJjbGFzcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAib2YgdGhlIG1ldGFjbGFzc2VzIG9mIGFsbCBpdHMgYmFzZXMiKQorICAgIHJldHVybiB3aW5uZXIKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC9jYXNlLnB5IGIvTGliL3VuaXR0ZXN0L2Nhc2UucHkKaW5kZXggZTYyN2NjYS4uMjhmMGEyZCAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L2Nhc2UucHkKKysrIGIvTGliL3VuaXR0ZXN0L2Nhc2UucHkKQEAgLTksOCArOSw3IEBACiBpbXBvcnQgY29sbGVjdGlvbnMKIAogZnJvbSAuIGltcG9ydCByZXN1bHQKLWZyb20gLnV0aWwgaW1wb3J0IChzdHJjbGFzcywgc2FmZV9yZXByLCBzb3J0ZWRfbGlzdF9kaWZmZXJlbmNlLAotICAgICAgICAgICAgICAgICAgIHVub3JkZXJhYmxlX2xpc3RfZGlmZmVyZW5jZSwgX2NvdW50X2RpZmZfYWxsX3B1cnBvc2UsCitmcm9tIC51dGlsIGltcG9ydCAoc3RyY2xhc3MsIHNhZmVfcmVwciwgX2NvdW50X2RpZmZfYWxsX3B1cnBvc2UsCiAgICAgICAgICAgICAgICAgICAgX2NvdW50X2RpZmZfaGFzaGFibGUpCiAKIF9fdW5pdHRlc3QgPSBUcnVlCkBAIC0xMDQsOSArMTAzLDkgQEAKIGNsYXNzIF9Bc3NlcnRSYWlzZXNCYXNlQ29udGV4dChvYmplY3QpOgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4cGVjdGVkLCB0ZXN0X2Nhc2UsIGNhbGxhYmxlX29iaj1Ob25lLAotICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVnZXg9Tm9uZSk6CisgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlZ2V4PU5vbmUpOgogICAgICAgICBzZWxmLmV4cGVjdGVkID0gZXhwZWN0ZWQKLSAgICAgICAgc2VsZi5mYWlsdXJlRXhjZXB0aW9uID0gdGVzdF9jYXNlLmZhaWx1cmVFeGNlcHRpb24KKyAgICAgICAgc2VsZi50ZXN0X2Nhc2UgPSB0ZXN0X2Nhc2UKICAgICAgICAgaWYgY2FsbGFibGVfb2JqIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHNlbGYub2JqX25hbWUgPSBjYWxsYWJsZV9vYmouX19uYW1lX18KQEAgLTExNyw2ICsxMTYsMjQgQEAKICAgICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZF9yZWdleCwgKGJ5dGVzLCBzdHIpKToKICAgICAgICAgICAgIGV4cGVjdGVkX3JlZ2V4ID0gcmUuY29tcGlsZShleHBlY3RlZF9yZWdleCkKICAgICAgICAgc2VsZi5leHBlY3RlZF9yZWdleCA9IGV4cGVjdGVkX3JlZ2V4CisgICAgICAgIHNlbGYubXNnID0gTm9uZQorCisgICAgZGVmIF9yYWlzZUZhaWx1cmUoc2VsZiwgc3RhbmRhcmRNc2cpOgorICAgICAgICBtc2cgPSBzZWxmLnRlc3RfY2FzZS5fZm9ybWF0TWVzc2FnZShzZWxmLm1zZywgc3RhbmRhcmRNc2cpCisgICAgICAgIHJhaXNlIHNlbGYudGVzdF9jYXNlLmZhaWx1cmVFeGNlcHRpb24obXNnKQorCisgICAgZGVmIGhhbmRsZShzZWxmLCBuYW1lLCBjYWxsYWJsZV9vYmosIGFyZ3MsIGt3YXJncyk6CisgICAgICAgICIiIgorICAgICAgICBJZiBjYWxsYWJsZV9vYmogaXMgTm9uZSwgYXNzZXJ0UmFpc2VzL1dhcm5zIGlzIGJlaW5nIHVzZWQgYXMgYQorICAgICAgICBjb250ZXh0IG1hbmFnZXIsIHNvIGNoZWNrIGZvciBhICdtc2cnIGt3YXJnIGFuZCByZXR1cm4gc2VsZi4KKyAgICAgICAgSWYgY2FsbGFibGVfb2JqIGlzIG5vdCBOb25lLCBjYWxsIGl0IHBhc3NpbmcgYXJncyBhbmQga3dhcmdzLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgY2FsbGFibGVfb2JqIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLm1zZyA9IGt3YXJncy5wb3AoJ21zZycsIE5vbmUpCisgICAgICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICB3aXRoIHNlbGY6CisgICAgICAgICAgICBjYWxsYWJsZV9vYmooKmFyZ3MsICoqa3dhcmdzKQorCiAKIAogY2xhc3MgX0Fzc2VydFJhaXNlc0NvbnRleHQoX0Fzc2VydFJhaXNlc0Jhc2VDb250ZXh0KToKQEAgLTEzMiwxMSArMTQ5LDEwIEBACiAgICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CiAgICAgICAgICAgICAgICAgZXhjX25hbWUgPSBzdHIoc2VsZi5leHBlY3RlZCkKICAgICAgICAgICAgIGlmIHNlbGYub2JqX25hbWU6Ci0gICAgICAgICAgICAgICAgcmFpc2Ugc2VsZi5mYWlsdXJlRXhjZXB0aW9uKCJ7MH0gbm90IHJhaXNlZCBieSB7MX0iCi0gICAgICAgICAgICAgICAgICAgIC5mb3JtYXQoZXhjX25hbWUsIHNlbGYub2JqX25hbWUpKQorICAgICAgICAgICAgICAgIHNlbGYuX3JhaXNlRmFpbHVyZSgie30gbm90IHJhaXNlZCBieSB7fSIuZm9ybWF0KGV4Y19uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub2JqX25hbWUpKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBzZWxmLmZhaWx1cmVFeGNlcHRpb24oInswfSBub3QgcmFpc2VkIgotICAgICAgICAgICAgICAgICAgICAuZm9ybWF0KGV4Y19uYW1lKSkKKyAgICAgICAgICAgICAgICBzZWxmLl9yYWlzZUZhaWx1cmUoInt9IG5vdCByYWlzZWQiLmZvcm1hdChleGNfbmFtZSkpCiAgICAgICAgIGlmIG5vdCBpc3N1YmNsYXNzKGV4Y190eXBlLCBzZWxmLmV4cGVjdGVkKToKICAgICAgICAgICAgICMgbGV0IHVuZXhwZWN0ZWQgZXhjZXB0aW9ucyBwYXNzIHRocm91Z2gKICAgICAgICAgICAgIHJldHVybiBGYWxzZQpAQCAtMTQ3LDggKzE2Myw4IEBACiAKICAgICAgICAgZXhwZWN0ZWRfcmVnZXggPSBzZWxmLmV4cGVjdGVkX3JlZ2V4CiAgICAgICAgIGlmIG5vdCBleHBlY3RlZF9yZWdleC5zZWFyY2goc3RyKGV4Y192YWx1ZSkpOgotICAgICAgICAgICAgcmFpc2Ugc2VsZi5mYWlsdXJlRXhjZXB0aW9uKCciJXMiIGRvZXMgbm90IG1hdGNoICIlcyInICUKLSAgICAgICAgICAgICAgICAgICAgIChleHBlY3RlZF9yZWdleC5wYXR0ZXJuLCBzdHIoZXhjX3ZhbHVlKSkpCisgICAgICAgICAgICBzZWxmLl9yYWlzZUZhaWx1cmUoJyJ7fSIgZG9lcyBub3QgbWF0Y2ggInt9IicuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVnZXgucGF0dGVybiwgc3RyKGV4Y192YWx1ZSkpKQogICAgICAgICByZXR1cm4gVHJ1ZQogCiAKQEAgLTE5MiwxNCArMjA4LDEzIEBACiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgIyBOb3cgd2Ugc2ltcGx5IHRyeSB0byBjaG9vc2UgYSBoZWxwZnVsIGZhaWx1cmUgbWVzc2FnZQogICAgICAgICBpZiBmaXJzdF9tYXRjaGluZyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIHNlbGYuZmFpbHVyZUV4Y2VwdGlvbignIiVzIiBkb2VzIG5vdCBtYXRjaCAiJXMiJyAlCi0gICAgICAgICAgICAgICAgICAgICAoc2VsZi5leHBlY3RlZF9yZWdleC5wYXR0ZXJuLCBzdHIoZmlyc3RfbWF0Y2hpbmcpKSkKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlRmFpbHVyZSgnInt9IiBkb2VzIG5vdCBtYXRjaCAie30iJy5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX3JlZ2V4LnBhdHRlcm4sIHN0cihmaXJzdF9tYXRjaGluZykpKQogICAgICAgICBpZiBzZWxmLm9ial9uYW1lOgotICAgICAgICAgICAgcmFpc2Ugc2VsZi5mYWlsdXJlRXhjZXB0aW9uKCJ7MH0gbm90IHRyaWdnZXJlZCBieSB7MX0iCi0gICAgICAgICAgICAgICAgLmZvcm1hdChleGNfbmFtZSwgc2VsZi5vYmpfbmFtZSkpCisgICAgICAgICAgICBzZWxmLl9yYWlzZUZhaWx1cmUoInt9IG5vdCB0cmlnZ2VyZWQgYnkge30iLmZvcm1hdChleGNfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYub2JqX25hbWUpKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2Ugc2VsZi5mYWlsdXJlRXhjZXB0aW9uKCJ7MH0gbm90IHRyaWdnZXJlZCIKLSAgICAgICAgICAgICAgICAuZm9ybWF0KGV4Y19uYW1lKSkKKyAgICAgICAgICAgIHNlbGYuX3JhaXNlRmFpbHVyZSgie30gbm90IHRyaWdnZXJlZCIuZm9ybWF0KGV4Y19uYW1lKSkKIAogCiBjbGFzcyBUZXN0Q2FzZShvYmplY3QpOgpAQCAtNDUyLDcgKzQ2Nyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJUZXN0UmVzdWx0IGhhcyBubyBhZGRFeHBlY3RlZEZhaWx1cmUgbWV0aG9kLCByZXBvcnRpbmcgYXMgcGFzc2VzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVudGltZVdhcm5pbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuYWRkU3VjY2VzcyhzZWxmKQotCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICByZXN1bHQuc3RvcFRlc3Qoc2VsZikKICAgICAgICAgICAgIGlmIG9yaWdfcmVzdWx0IGlzIE5vbmU6CkBAIC01MjYsNyArNTQxLDYgQEAKICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKICAgICAgICAgICAgIHJldHVybiAgJyVzIDogJXMnICUgKHNhZmVfcmVwcihzdGFuZGFyZE1zZyksIHNhZmVfcmVwcihtc2cpKQogCi0KICAgICBkZWYgYXNzZXJ0UmFpc2VzKHNlbGYsIGV4Y0NsYXNzLCBjYWxsYWJsZU9iaj1Ob25lLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICAiIiJGYWlsIHVubGVzcyBhbiBleGNlcHRpb24gb2YgY2xhc3MgZXhjQ2xhc3MgaXMgdGhyb3duCiAgICAgICAgICAgIGJ5IGNhbGxhYmxlT2JqIHdoZW4gaW52b2tlZCB3aXRoIGFyZ3VtZW50cyBhcmdzIGFuZCBrZXl3b3JkCkBAIC01NDEsNiArNTU1LDkgQEAKICAgICAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFNvbWVFeGNlcHRpb24pOgogICAgICAgICAgICAgICAgICAgICBkb19zb21ldGhpbmcoKQogCisgICAgICAgICAgIEFuIG9wdGlvbmFsIGtleXdvcmQgYXJndW1lbnQgJ21zZycgY2FuIGJlIHByb3ZpZGVkIHdoZW4gYXNzZXJ0UmFpc2VzCisgICAgICAgICAgIGlzIHVzZWQgYXMgYSBjb250ZXh0IG9iamVjdC4KKwogICAgICAgICAgICBUaGUgY29udGV4dCBtYW5hZ2VyIGtlZXBzIGEgcmVmZXJlbmNlIHRvIHRoZSBleGNlcHRpb24gYXMKICAgICAgICAgICAgdGhlICdleGNlcHRpb24nIGF0dHJpYnV0ZS4gVGhpcyBhbGxvd3MgeW91IHRvIGluc3BlY3QgdGhlCiAgICAgICAgICAgIGV4Y2VwdGlvbiBhZnRlciB0aGUgYXNzZXJ0aW9uOjoKQEAgLTU1MSwyNSArNTY4LDI1IEBACiAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRoZV9leGNlcHRpb24uZXJyb3JfY29kZSwgMykKICAgICAgICAgIiIiCiAgICAgICAgIGNvbnRleHQgPSBfQXNzZXJ0UmFpc2VzQ29udGV4dChleGNDbGFzcywgc2VsZiwgY2FsbGFibGVPYmopCi0gICAgICAgIGlmIGNhbGxhYmxlT2JqIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gY29udGV4dAotICAgICAgICB3aXRoIGNvbnRleHQ6Ci0gICAgICAgICAgICBjYWxsYWJsZU9iaigqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHJldHVybiBjb250ZXh0LmhhbmRsZSgnYXNzZXJ0UmFpc2VzJywgY2FsbGFibGVPYmosIGFyZ3MsIGt3YXJncykKIAogICAgIGRlZiBhc3NlcnRXYXJucyhzZWxmLCBleHBlY3RlZF93YXJuaW5nLCBjYWxsYWJsZV9vYmo9Tm9uZSwgKmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgIiIiRmFpbCB1bmxlc3MgYSB3YXJuaW5nIG9mIGNsYXNzIHdhcm5DbGFzcyBpcyB0cmlnZ2VyZWQKLSAgICAgICAgICAgYnkgY2FsbGFibGVPYmogd2hlbiBpbnZva2VkIHdpdGggYXJndW1lbnRzIGFyZ3MgYW5kIGtleXdvcmQKKyAgICAgICAgICAgYnkgY2FsbGFibGVfb2JqIHdoZW4gaW52b2tlZCB3aXRoIGFyZ3VtZW50cyBhcmdzIGFuZCBrZXl3b3JkCiAgICAgICAgICAgIGFyZ3VtZW50cyBrd2FyZ3MuICBJZiBhIGRpZmZlcmVudCB0eXBlIG9mIHdhcm5pbmcgaXMKICAgICAgICAgICAgdHJpZ2dlcmVkLCBpdCB3aWxsIG5vdCBiZSBoYW5kbGVkOiBkZXBlbmRpbmcgb24gdGhlIG90aGVyCiAgICAgICAgICAgIHdhcm5pbmcgZmlsdGVyaW5nIHJ1bGVzIGluIGVmZmVjdCwgaXQgbWlnaHQgYmUgc2lsZW5jZWQsIHByaW50ZWQKICAgICAgICAgICAgb3V0LCBvciByYWlzZWQgYXMgYW4gZXhjZXB0aW9uLgogCi0gICAgICAgICAgIElmIGNhbGxlZCB3aXRoIGNhbGxhYmxlT2JqIG9taXR0ZWQgb3IgTm9uZSwgd2lsbCByZXR1cm4gYQorICAgICAgICAgICBJZiBjYWxsZWQgd2l0aCBjYWxsYWJsZV9vYmogb21pdHRlZCBvciBOb25lLCB3aWxsIHJldHVybiBhCiAgICAgICAgICAgIGNvbnRleHQgb2JqZWN0IHVzZWQgbGlrZSB0aGlzOjoKIAogICAgICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRXYXJucyhTb21lV2FybmluZyk6CiAgICAgICAgICAgICAgICAgICAgIGRvX3NvbWV0aGluZygpCiAKKyAgICAgICAgICAgQW4gb3B0aW9uYWwga2V5d29yZCBhcmd1bWVudCAnbXNnJyBjYW4gYmUgcHJvdmlkZWQgd2hlbiBhc3NlcnRXYXJucworICAgICAgICAgICBpcyB1c2VkIGFzIGEgY29udGV4dCBvYmplY3QuCisKICAgICAgICAgICAgVGhlIGNvbnRleHQgbWFuYWdlciBrZWVwcyBhIHJlZmVyZW5jZSB0byB0aGUgZmlyc3QgbWF0Y2hpbmcKICAgICAgICAgICAgd2FybmluZyBhcyB0aGUgJ3dhcm5pbmcnIGF0dHJpYnV0ZTsgc2ltaWxhcmx5LCB0aGUgJ2ZpbGVuYW1lJwogICAgICAgICAgICBhbmQgJ2xpbmVubycgYXR0cmlidXRlcyBnaXZlIHlvdSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGluZQpAQCAtNTgyLDEwICs1OTksNyBAQAogICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0aGVfd2FybmluZy5zb21lX2F0dHJpYnV0ZSwgMTQ3KQogICAgICAgICAiIiIKICAgICAgICAgY29udGV4dCA9IF9Bc3NlcnRXYXJuc0NvbnRleHQoZXhwZWN0ZWRfd2FybmluZywgc2VsZiwgY2FsbGFibGVfb2JqKQotICAgICAgICBpZiBjYWxsYWJsZV9vYmogaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBjb250ZXh0Ci0gICAgICAgIHdpdGggY29udGV4dDoKLSAgICAgICAgICAgIGNhbGxhYmxlX29iaigqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHJldHVybiBjb250ZXh0LmhhbmRsZSgnYXNzZXJ0V2FybnMnLCBjYWxsYWJsZV9vYmosIGFyZ3MsIGt3YXJncykKIAogICAgIGRlZiBfZ2V0QXNzZXJ0RXF1YWxpdHlGdW5jKHNlbGYsIGZpcnN0LCBzZWNvbmQpOgogICAgICAgICAiIiJHZXQgYSBkZXRhaWxlZCBjb21wYXJpc29uIGZ1bmN0aW9uIGZvciB0aGUgdHlwZXMgb2YgdGhlIHR3byBhcmdzLgpAQCAtOTUxLDQ4ICs5NjUsNiBAQAogCiAgICAgICAgIHNlbGYuZmFpbChzZWxmLl9mb3JtYXRNZXNzYWdlKG1zZywgc3RhbmRhcmRNc2cpKQogCi0gICAgZGVmIGFzc2VydFNhbWVFbGVtZW50cyhzZWxmLCBleHBlY3RlZF9zZXEsIGFjdHVhbF9zZXEsIG1zZz1Ob25lKToKLSAgICAgICAgIiIiQW4gdW5vcmRlcmVkIHNlcXVlbmNlIHNwZWNpZmljIGNvbXBhcmlzb24uCi0KLSAgICAgICAgUmFpc2VzIHdpdGggYW4gZXJyb3IgbWVzc2FnZSBsaXN0aW5nIHdoaWNoIGVsZW1lbnRzIG9mIGV4cGVjdGVkX3NlcQotICAgICAgICBhcmUgbWlzc2luZyBmcm9tIGFjdHVhbF9zZXEgYW5kIHZpY2UgdmVyc2EgaWYgYW55LgotCi0gICAgICAgIER1cGxpY2F0ZSBlbGVtZW50cyBhcmUgaWdub3JlZCB3aGVuIGNvbXBhcmluZyAqZXhwZWN0ZWRfc2VxKiBhbmQKLSAgICAgICAgKmFjdHVhbF9zZXEqLiBJdCBpcyB0aGUgZXF1aXZhbGVudCBvZiBgYGFzc2VydEVxdWFsKHNldChleHBlY3RlZCksCi0gICAgICAgIHNldChhY3R1YWwpKWBgIGJ1dCBpdCB3b3JrcyB3aXRoIHNlcXVlbmNlcyBvZiB1bmhhc2hhYmxlIG9iamVjdHMgYXMKLSAgICAgICAgd2VsbC4KLSAgICAgICAgIiIiCi0gICAgICAgIHdhcm5pbmdzLndhcm4oJ2Fzc2VydFNhbWVFbGVtZW50cyBpcyBkZXByZWNhdGVkJywKLSAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldhcm5pbmcpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGV4cGVjdGVkID0gc2V0KGV4cGVjdGVkX3NlcSkKLSAgICAgICAgICAgIGFjdHVhbCA9IHNldChhY3R1YWxfc2VxKQotICAgICAgICAgICAgbWlzc2luZyA9IHNvcnRlZChleHBlY3RlZC5kaWZmZXJlbmNlKGFjdHVhbCkpCi0gICAgICAgICAgICB1bmV4cGVjdGVkID0gc29ydGVkKGFjdHVhbC5kaWZmZXJlbmNlKGV4cGVjdGVkKSkKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgICAgICMgRmFsbCBiYWNrIHRvIHNsb3dlciBsaXN0LWNvbXBhcmUgaWYgYW55IG9mIHRoZSBvYmplY3RzIGFyZQotICAgICAgICAgICAgIyBub3QgaGFzaGFibGUuCi0gICAgICAgICAgICBleHBlY3RlZCA9IGxpc3QoZXhwZWN0ZWRfc2VxKQotICAgICAgICAgICAgYWN0dWFsID0gbGlzdChhY3R1YWxfc2VxKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGV4cGVjdGVkLnNvcnQoKQotICAgICAgICAgICAgICAgIGFjdHVhbC5zb3J0KCkKLSAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgICAgICAgICAgbWlzc2luZywgdW5leHBlY3RlZCA9IHVub3JkZXJhYmxlX2xpc3RfZGlmZmVyZW5jZShleHBlY3RlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbWlzc2luZywgdW5leHBlY3RlZCA9IHNvcnRlZF9saXN0X2RpZmZlcmVuY2UoZXhwZWN0ZWQsIGFjdHVhbCkKLSAgICAgICAgZXJyb3JzID0gW10KLSAgICAgICAgaWYgbWlzc2luZzoKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoJ0V4cGVjdGVkLCBidXQgbWlzc2luZzpcbiAgICAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlX3JlcHIobWlzc2luZykpCi0gICAgICAgIGlmIHVuZXhwZWN0ZWQ6Ci0gICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCdVbmV4cGVjdGVkLCBidXQgcHJlc2VudDpcbiAgICAlcycgJQotICAgICAgICAgICAgICAgICAgICAgICAgICBzYWZlX3JlcHIodW5leHBlY3RlZCkpCi0gICAgICAgIGlmIGVycm9yczoKLSAgICAgICAgICAgIHN0YW5kYXJkTXNnID0gJ1xuJy5qb2luKGVycm9ycykKLSAgICAgICAgICAgIHNlbGYuZmFpbChzZWxmLl9mb3JtYXRNZXNzYWdlKG1zZywgc3RhbmRhcmRNc2cpKQotCiAKICAgICBkZWYgYXNzZXJ0Q291bnRFcXVhbChzZWxmLCBmaXJzdCwgc2Vjb25kLCBtc2c9Tm9uZSk6CiAgICAgICAgICIiIkFuIHVub3JkZXJlZCBzZXF1ZW5jZSBjb21wYXJpc29uIGFzc2VydGluZyB0aGF0IHRoZSBzYW1lIGVsZW1lbnRzLApAQCAtMTAzNyw4ICsxMDA5LDggQEAKICAgICAgICAgICAgIGlmIChsZW4oZmlyc3QpID4gc2VsZi5fZGlmZlRocmVzaG9sZCBvcgogICAgICAgICAgICAgICAgIGxlbihzZWNvbmQpID4gc2VsZi5fZGlmZlRocmVzaG9sZCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fYmFzZUFzc2VydEVxdWFsKGZpcnN0LCBzZWNvbmQsIG1zZykKLSAgICAgICAgICAgIGZpcnN0bGluZXMgPSBmaXJzdC5zcGxpdGxpbmVzKFRydWUpCi0gICAgICAgICAgICBzZWNvbmRsaW5lcyA9IHNlY29uZC5zcGxpdGxpbmVzKFRydWUpCisgICAgICAgICAgICBmaXJzdGxpbmVzID0gZmlyc3Quc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKQorICAgICAgICAgICAgc2Vjb25kbGluZXMgPSBzZWNvbmQuc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKQogICAgICAgICAgICAgaWYgbGVuKGZpcnN0bGluZXMpID09IDEgYW5kIGZpcnN0LnN0cmlwKCdcclxuJykgPT0gZmlyc3Q6CiAgICAgICAgICAgICAgICAgZmlyc3RsaW5lcyA9IFtmaXJzdCArICdcbiddCiAgICAgICAgICAgICAgICAgc2Vjb25kbGluZXMgPSBbc2Vjb25kICsgJ1xuJ10KQEAgLTExMDYsMTUgKzEwNzgsMTUgQEAKICAgICAgICAgICAgIGV4cGVjdGVkX3JlZ2V4OiBSZWdleCAocmUgcGF0dGVybiBvYmplY3Qgb3Igc3RyaW5nKSBleHBlY3RlZAogICAgICAgICAgICAgICAgICAgICB0byBiZSBmb3VuZCBpbiBlcnJvciBtZXNzYWdlLgogICAgICAgICAgICAgY2FsbGFibGVfb2JqOiBGdW5jdGlvbiB0byBiZSBjYWxsZWQuCisgICAgICAgICAgICBtc2c6IE9wdGlvbmFsIG1lc3NhZ2UgdXNlZCBpbiBjYXNlIG9mIGZhaWx1cmUuIENhbiBvbmx5IGJlIHVzZWQKKyAgICAgICAgICAgICAgICAgICAgd2hlbiBhc3NlcnRSYWlzZXNSZWdleCBpcyB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyLgogICAgICAgICAgICAgYXJnczogRXh0cmEgYXJncy4KICAgICAgICAgICAgIGt3YXJnczogRXh0cmEga3dhcmdzLgogICAgICAgICAiIiIKICAgICAgICAgY29udGV4dCA9IF9Bc3NlcnRSYWlzZXNDb250ZXh0KGV4cGVjdGVkX2V4Y2VwdGlvbiwgc2VsZiwgY2FsbGFibGVfb2JqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVnZXgpCi0gICAgICAgIGlmIGNhbGxhYmxlX29iaiBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQKLSAgICAgICAgd2l0aCBjb250ZXh0OgotICAgICAgICAgICAgY2FsbGFibGVfb2JqKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gY29udGV4dC5oYW5kbGUoJ2Fzc2VydFJhaXNlc1JlZ2V4JywgY2FsbGFibGVfb2JqLCBhcmdzLCBrd2FyZ3MpCiAKICAgICBkZWYgYXNzZXJ0V2FybnNSZWdleChzZWxmLCBleHBlY3RlZF93YXJuaW5nLCBleHBlY3RlZF9yZWdleCwKICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYWJsZV9vYmo9Tm9uZSwgKmFyZ3MsICoqa3dhcmdzKToKQEAgLTExMjgsMTUgKzExMDAsMTQgQEAKICAgICAgICAgICAgIGV4cGVjdGVkX3JlZ2V4OiBSZWdleCAocmUgcGF0dGVybiBvYmplY3Qgb3Igc3RyaW5nKSBleHBlY3RlZAogICAgICAgICAgICAgICAgICAgICB0byBiZSBmb3VuZCBpbiBlcnJvciBtZXNzYWdlLgogICAgICAgICAgICAgY2FsbGFibGVfb2JqOiBGdW5jdGlvbiB0byBiZSBjYWxsZWQuCisgICAgICAgICAgICBtc2c6IE9wdGlvbmFsIG1lc3NhZ2UgdXNlZCBpbiBjYXNlIG9mIGZhaWx1cmUuIENhbiBvbmx5IGJlIHVzZWQKKyAgICAgICAgICAgICAgICAgICAgd2hlbiBhc3NlcnRXYXJuc1JlZ2V4IGlzIHVzZWQgYXMgYSBjb250ZXh0IG1hbmFnZXIuCiAgICAgICAgICAgICBhcmdzOiBFeHRyYSBhcmdzLgogICAgICAgICAgICAga3dhcmdzOiBFeHRyYSBrd2FyZ3MuCiAgICAgICAgICIiIgogICAgICAgICBjb250ZXh0ID0gX0Fzc2VydFdhcm5zQ29udGV4dChleHBlY3RlZF93YXJuaW5nLCBzZWxmLCBjYWxsYWJsZV9vYmosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JlZ2V4KQotICAgICAgICBpZiBjYWxsYWJsZV9vYmogaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBjb250ZXh0Ci0gICAgICAgIHdpdGggY29udGV4dDoKLSAgICAgICAgICAgIGNhbGxhYmxlX29iaigqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHJldHVybiBjb250ZXh0LmhhbmRsZSgnYXNzZXJ0V2FybnNSZWdleCcsIGNhbGxhYmxlX29iaiwgYXJncywga3dhcmdzKQogCiAgICAgZGVmIGFzc2VydFJlZ2V4KHNlbGYsIHRleHQsIGV4cGVjdGVkX3JlZ2V4LCBtc2c9Tm9uZSk6CiAgICAgICAgICIiIkZhaWwgdGhlIHRlc3QgdW5sZXNzIHRoZSB0ZXh0IG1hdGNoZXMgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbi4iIiIKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC9tYWluLnB5IGIvTGliL3VuaXR0ZXN0L21haW4ucHkKaW5kZXggNTVkNGU0Yi4uYTI1YTJmOCAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L21haW4ucHkKKysrIGIvTGliL3VuaXR0ZXN0L21haW4ucHkKQEAgLTEsOCArMSw4IEBACiAiIiJVbml0dGVzdCBtYWluIHByb2dyYW0iIiIKIAogaW1wb3J0IHN5cworaW1wb3J0IG9wdHBhcnNlCiBpbXBvcnQgb3MKLWltcG9ydCB0eXBlcwogCiBmcm9tIC4gaW1wb3J0IGxvYWRlciwgcnVubmVyCiBmcm9tIC5zaWduYWxzIGltcG9ydCBpbnN0YWxsSGFuZGxlcgpAQCAtNzcsNiArNzcsNyBAQAogZGVmIF9jb252ZXJ0X25hbWVzKG5hbWVzKToKICAgICByZXR1cm4gW19jb252ZXJ0X25hbWUobmFtZSkgZm9yIG5hbWUgaW4gbmFtZXNdCiAKKwogY2xhc3MgVGVzdFByb2dyYW0ob2JqZWN0KToKICAgICAiIiJBIGNvbW1hbmQtbGluZSBwcm9ncmFtIHRoYXQgcnVucyBhIHNldCBvZiB0ZXN0czsgdGhpcyBpcyBwcmltYXJpbHkKICAgICAgICBmb3IgbWFraW5nIHRlc3QgbW9kdWxlcyBjb252ZW5pZW50bHkgZXhlY3V0YWJsZS4KQEAgLTE0MywzMyArMTQ0LDkgQEAKICAgICAgICAgICAgIHNlbGYuX2RvX2Rpc2NvdmVyeShhcmd2WzI6XSkKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGltcG9ydCBnZXRvcHQKLSAgICAgICAgbG9uZ19vcHRzID0gWydoZWxwJywgJ3ZlcmJvc2UnLCAncXVpZXQnLCAnZmFpbGZhc3QnLCAnY2F0Y2gnLCAnYnVmZmVyJ10KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3B0aW9ucywgYXJncyA9IGdldG9wdC5nZXRvcHQoYXJndlsxOl0sICdoSHZxZmNiJywgbG9uZ19vcHRzKQotICAgICAgICBleGNlcHQgZ2V0b3B0LmVycm9yIGFzIG1zZzoKLSAgICAgICAgICAgIHNlbGYudXNhZ2VFeGl0KG1zZykKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGZvciBvcHQsIHZhbHVlIGluIG9wdGlvbnM6Ci0gICAgICAgICAgICBpZiBvcHQgaW4gKCctaCcsJy1IJywnLS1oZWxwJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi51c2FnZUV4aXQoKQotICAgICAgICAgICAgaWYgb3B0IGluICgnLXEnLCctLXF1aWV0Jyk6Ci0gICAgICAgICAgICAgICAgc2VsZi52ZXJib3NpdHkgPSAwCi0gICAgICAgICAgICBpZiBvcHQgaW4gKCctdicsJy0tdmVyYm9zZScpOgotICAgICAgICAgICAgICAgIHNlbGYudmVyYm9zaXR5ID0gMgotICAgICAgICAgICAgaWYgb3B0IGluICgnLWYnLCctLWZhaWxmYXN0Jyk6Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5mYWlsZmFzdCBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBzZWxmLmZhaWxmYXN0ID0gVHJ1ZQotICAgICAgICAgICAgICAgICMgU2hvdWxkIHRoaXMgcmFpc2UgYW4gZXhjZXB0aW9uIGlmIC1mIGlzIG5vdCB2YWxpZD8KLSAgICAgICAgICAgIGlmIG9wdCBpbiAoJy1jJywnLS1jYXRjaCcpOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuY2F0Y2hicmVhayBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBzZWxmLmNhdGNoYnJlYWsgPSBUcnVlCi0gICAgICAgICAgICAgICAgIyBTaG91bGQgdGhpcyByYWlzZSBhbiBleGNlcHRpb24gaWYgLWMgaXMgbm90IHZhbGlkPwotICAgICAgICAgICAgaWYgb3B0IGluICgnLWInLCctLWJ1ZmZlcicpOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuYnVmZmVyIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuYnVmZmVyID0gVHJ1ZQotICAgICAgICAgICAgICAgICMgU2hvdWxkIHRoaXMgcmFpc2UgYW4gZXhjZXB0aW9uIGlmIC1iIGlzIG5vdCB2YWxpZD8KKyAgICAgICAgcGFyc2VyID0gc2VsZi5fZ2V0T3B0UGFyc2VyKCkKKyAgICAgICAgb3B0aW9ucywgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3ZbMTpdKQorICAgICAgICBzZWxmLl9zZXRBdHRyaWJ1dGVzRnJvbU9wdGlvbnMob3B0aW9ucykKIAogICAgICAgICBpZiBsZW4oYXJncykgPT0gMCBhbmQgc2VsZi5tb2R1bGUgaXMgTm9uZToKICAgICAgICAgICAgICMgdGhpcyBhbGxvd3MgInB5dGhvbiAtbSB1bml0dGVzdCAtdiIgdG8gc3RpbGwgd29yayBmb3IKQEAgLTE5NywxNCArMTc0LDE0IEBACiAgICAgICAgICAgICBzZWxmLnRlc3QgPSBzZWxmLnRlc3RMb2FkZXIubG9hZFRlc3RzRnJvbU5hbWVzKHNlbGYudGVzdE5hbWVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1vZHVsZSkKIAotICAgIGRlZiBfZG9fZGlzY292ZXJ5KHNlbGYsIGFyZ3YsIExvYWRlcj1sb2FkZXIuVGVzdExvYWRlcik6Ci0gICAgICAgICMgaGFuZGxlIGNvbW1hbmQgbGluZSBhcmdzIGZvciB0ZXN0IGRpc2NvdmVyeQotICAgICAgICBzZWxmLnByb2dOYW1lID0gJyVzIGRpc2NvdmVyJyAlIHNlbGYucHJvZ05hbWUKLSAgICAgICAgaW1wb3J0IG9wdHBhcnNlCisgICAgZGVmIF9nZXRPcHRQYXJzZXIoc2VsZik6CiAgICAgICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCiAgICAgICAgIHBhcnNlci5wcm9nID0gc2VsZi5wcm9nTmFtZQogICAgICAgICBwYXJzZXIuYWRkX29wdGlvbignLXYnLCAnLS12ZXJib3NlJywgZGVzdD0ndmVyYm9zZScsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1ZlcmJvc2Ugb3V0cHV0JywgYWN0aW9uPSdzdG9yZV90cnVlJykKKyAgICAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVpZXQnLCBkZXN0PSdxdWlldCcsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1F1aWV0IG91dHB1dCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScpCisKICAgICAgICAgaWYgc2VsZi5mYWlsZmFzdCAhPSBGYWxzZToKICAgICAgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCctZicsICctLWZhaWxmYXN0JywgZGVzdD0nZmFpbGZhc3QnLCBkZWZhdWx0PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nU3RvcCBvbiBmaXJzdCBmYWlsIG9yIGVycm9yJywKQEAgLTIxNywyMCArMTk0LDkgQEAKICAgICAgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCctYicsICctLWJ1ZmZlcicsIGRlc3Q9J2J1ZmZlcicsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdCdWZmZXIgc3Rkb3V0IGFuZCBzdGRlcnIgZHVyaW5nIHRlc3RzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScpCi0gICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcycsICctLXN0YXJ0LWRpcmVjdG9yeScsIGRlc3Q9J3N0YXJ0JywgZGVmYXVsdD0nLicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRpcmVjdG9yeSB0byBzdGFydCBkaXNjb3ZlcnkgKCcuJyBkZWZhdWx0KSIpCi0gICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcCcsICctLXBhdHRlcm4nLCBkZXN0PSdwYXR0ZXJuJywgZGVmYXVsdD0ndGVzdCoucHknLAotICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXR0ZXJuIHRvIG1hdGNoIHRlc3RzICgndGVzdCoucHknIGRlZmF1bHQpIikKLSAgICAgICAgcGFyc2VyLmFkZF9vcHRpb24oJy10JywgJy0tdG9wLWxldmVsLWRpcmVjdG9yeScsIGRlc3Q9J3RvcCcsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nVG9wIGxldmVsIGRpcmVjdG9yeSBvZiBwcm9qZWN0IChkZWZhdWx0cyB0byBzdGFydCBkaXJlY3RvcnkpJykKKyAgICAgICAgcmV0dXJuIHBhcnNlcgogCi0gICAgICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhhcmd2KQotICAgICAgICBpZiBsZW4oYXJncykgPiAzOgotICAgICAgICAgICAgc2VsZi51c2FnZUV4aXQoKQotCi0gICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiB6aXAoKCdzdGFydCcsICdwYXR0ZXJuJywgJ3RvcCcpLCBhcmdzKToKLSAgICAgICAgICAgIHNldGF0dHIob3B0aW9ucywgbmFtZSwgdmFsdWUpCi0KKyAgICBkZWYgX3NldEF0dHJpYnV0ZXNGcm9tT3B0aW9ucyhzZWxmLCBvcHRpb25zKToKICAgICAgICAgIyBvbmx5IHNldCBvcHRpb25zIGZyb20gdGhlIHBhcnNpbmcgaGVyZQogICAgICAgICAjIGlmIHRoZXkgd2VyZW4ndCBzZXQgZXhwbGljaXRseSBpbiB0aGUgY29uc3RydWN0b3IKICAgICAgICAgaWYgc2VsZi5mYWlsZmFzdCBpcyBOb25lOgpAQCAtMjQyLDYgKzIwOCwzMSBAQAogCiAgICAgICAgIGlmIG9wdGlvbnMudmVyYm9zZToKICAgICAgICAgICAgIHNlbGYudmVyYm9zaXR5ID0gMgorICAgICAgICBlbGlmIG9wdGlvbnMucXVpZXQ6CisgICAgICAgICAgICBzZWxmLnZlcmJvc2l0eSA9IDAKKworICAgIGRlZiBfYWRkRGlzY292ZXJ5T3B0aW9ucyhzZWxmLCBwYXJzZXIpOgorICAgICAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zdGFydC1kaXJlY3RvcnknLCBkZXN0PSdzdGFydCcsIGRlZmF1bHQ9Jy4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXJlY3RvcnkgdG8gc3RhcnQgZGlzY292ZXJ5ICgnLicgZGVmYXVsdCkiKQorICAgICAgICBwYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1wYXR0ZXJuJywgZGVzdD0ncGF0dGVybicsIGRlZmF1bHQ9J3Rlc3QqLnB5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0dGVybiB0byBtYXRjaCB0ZXN0cyAoJ3Rlc3QqLnB5JyBkZWZhdWx0KSIpCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdCcsICctLXRvcC1sZXZlbC1kaXJlY3RvcnknLCBkZXN0PSd0b3AnLCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1RvcCBsZXZlbCBkaXJlY3Rvcnkgb2YgcHJvamVjdCAoZGVmYXVsdHMgdG8gc3RhcnQgZGlyZWN0b3J5KScpCisKKyAgICBkZWYgX2RvX2Rpc2NvdmVyeShzZWxmLCBhcmd2LCBMb2FkZXI9bG9hZGVyLlRlc3RMb2FkZXIpOgorICAgICAgICAjIGhhbmRsZSBjb21tYW5kIGxpbmUgYXJncyBmb3IgdGVzdCBkaXNjb3ZlcnkKKyAgICAgICAgc2VsZi5wcm9nTmFtZSA9ICclcyBkaXNjb3ZlcicgJSBzZWxmLnByb2dOYW1lCisgICAgICAgIHBhcnNlciA9IHNlbGYuX2dldE9wdFBhcnNlcigpCisgICAgICAgIHNlbGYuX2FkZERpc2NvdmVyeU9wdGlvbnMocGFyc2VyKQorCisgICAgICAgIG9wdGlvbnMsIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhhcmd2KQorICAgICAgICBpZiBsZW4oYXJncykgPiAzOgorICAgICAgICAgICAgc2VsZi51c2FnZUV4aXQoKQorCisgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiB6aXAoKCdzdGFydCcsICdwYXR0ZXJuJywgJ3RvcCcpLCBhcmdzKToKKyAgICAgICAgICAgIHNldGF0dHIob3B0aW9ucywgbmFtZSwgdmFsdWUpCisKKyAgICAgICAgc2VsZi5fc2V0QXR0cmlidXRlc0Zyb21PcHRpb25zKG9wdGlvbnMpCiAKICAgICAgICAgc3RhcnRfZGlyID0gb3B0aW9ucy5zdGFydAogICAgICAgICBwYXR0ZXJuID0gb3B0aW9ucy5wYXR0ZXJuCmRpZmYgLS1naXQgYS9MaWIvdW5pdHRlc3QvbW9jay5weSBiL0xpYi91bml0dGVzdC9tb2NrLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1NTcwYWEKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdW5pdHRlc3QvbW9jay5weQpAQCAtMCwwICsxLDIyMTEgQEAKKyMgbW9jay5weQorIyBUZXN0IHRvb2xzIGZvciBtb2NraW5nIGFuZCBwYXRjaGluZy4KKyMgTWFpbnRhaW5lZCBieSBNaWNoYWVsIEZvb3JkCisjIEJhY2twb3J0IGZvciBvdGhlciB2ZXJzaW9ucyBvZiBQeXRob24gYXZhaWxhYmxlIGZyb20KKyMgaHR0cDovL3B5cGkucHl0aG9uLm9yZy9weXBpL21vY2sKKworX19hbGxfXyA9ICgKKyAgICAnTW9jaycsCisgICAgJ01hZ2ljTW9jaycsCisgICAgJ3BhdGNoJywKKyAgICAnc2VudGluZWwnLAorICAgICdERUZBVUxUJywKKyAgICAnQU5ZJywKKyAgICAnY2FsbCcsCisgICAgJ2NyZWF0ZV9hdXRvc3BlYycsCisgICAgJ0ZJTFRFUl9ESVInLAorICAgICdOb25DYWxsYWJsZU1vY2snLAorICAgICdOb25DYWxsYWJsZU1hZ2ljTW9jaycsCisgICAgJ21vY2tfb3BlbicsCisgICAgJ1Byb3BlcnR5TW9jaycsCispCisKKworX192ZXJzaW9uX18gPSAnMS4wJworCisKK2ltcG9ydCBpbnNwZWN0CitpbXBvcnQgcHByaW50CitpbXBvcnQgc3lzCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKKworCitCYXNlRXhjZXB0aW9ucyA9IChCYXNlRXhjZXB0aW9uLCkKK2lmICdqYXZhJyBpbiBzeXMucGxhdGZvcm06CisgICAgIyBqeXRob24KKyAgICBpbXBvcnQgamF2YQorICAgIEJhc2VFeGNlcHRpb25zID0gKEJhc2VFeGNlcHRpb24sIGphdmEubGFuZy5UaHJvd2FibGUpCisKKworRklMVEVSX0RJUiA9IFRydWUKKworIyBXb3JrYXJvdW5kIGZvciBpc3N1ZSAjMTIzNzAKKyMgV2l0aG91dCB0aGlzLCB0aGUgX19jbGFzc19fIHByb3BlcnRpZXMgd291bGRuJ3QgYmUgc2V0IGNvcnJlY3RseQorX3NhZmVfc3VwZXIgPSBzdXBlcgorCitkZWYgX2lzX2luc3RhbmNlX21vY2sob2JqKToKKyAgICAjIGNhbid0IHVzZSBpc2luc3RhbmNlIG9uIE1vY2sgb2JqZWN0cyBiZWNhdXNlIHRoZXkgb3ZlcnJpZGUgX19jbGFzc19fCisgICAgIyBUaGUgYmFzZSBjbGFzcyBmb3IgYWxsIG1vY2tzIGlzIE5vbkNhbGxhYmxlTW9jaworICAgIHJldHVybiBpc3N1YmNsYXNzKHR5cGUob2JqKSwgTm9uQ2FsbGFibGVNb2NrKQorCisKK2RlZiBfaXNfZXhjZXB0aW9uKG9iaik6CisgICAgcmV0dXJuICgKKyAgICAgICAgaXNpbnN0YW5jZShvYmosIEJhc2VFeGNlcHRpb25zKSBvcgorICAgICAgICBpc2luc3RhbmNlKG9iaiwgdHlwZSkgYW5kIGlzc3ViY2xhc3Mob2JqLCBCYXNlRXhjZXB0aW9ucykKKyAgICApCisKKworY2xhc3MgX3Nsb3R0ZWQob2JqZWN0KToKKyAgICBfX3Nsb3RzX18gPSBbJ2EnXQorCisKK0Rlc2NyaXB0b3JUeXBlcyA9ICgKKyAgICB0eXBlKF9zbG90dGVkLmEpLAorICAgIHByb3BlcnR5LAorKQorCisKK2RlZiBfZ2V0c2lnbmF0dXJlKGZ1bmMsIHNraXBmaXJzdCwgaW5zdGFuY2U9RmFsc2UpOgorICAgIGlmIGlzaW5zdGFuY2UoZnVuYywgdHlwZSkgYW5kIG5vdCBpbnN0YW5jZToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZnVuYyA9IGZ1bmMuX19pbml0X18KKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNraXBmaXJzdCA9IFRydWUKKyAgICBlbGlmIG5vdCBpc2luc3RhbmNlKGZ1bmMsIEZ1bmN0aW9uVHlwZXMpOgorICAgICAgICAjIGZvciBjbGFzc2VzIHdoZXJlIGluc3RhbmNlIGlzIFRydWUgd2UgZW5kIHVwIGhlcmUgdG9vCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZ1bmMgPSBmdW5jLl9fY2FsbF9fCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybgorCisgICAgdHJ5OgorICAgICAgICBhcmdzcGVjID0gaW5zcGVjdC5nZXRmdWxsYXJnc3BlYyhmdW5jKQorICAgIGV4Y2VwdCBUeXBlRXJyb3I6CisgICAgICAgICMgQyBmdW5jdGlvbiAvIG1ldGhvZCwgcG9zc2libHkgaW5oZXJpdGVkIG9iamVjdCgpLl9faW5pdF9fCisgICAgICAgIHJldHVybgorCisgICAgcmVnYXJncywgdmFyYXJncywgdmFya3csIGRlZmF1bHRzLCBrd29ubHksIGt3b25seWRlZiwgYW5uID0gYXJnc3BlYworCisKKyAgICAjIGluc3RhbmNlIG1ldGhvZHMgYW5kIGNsYXNzbWV0aG9kcyBuZWVkIHRvIGxvc2UgdGhlIHNlbGYgYXJndW1lbnQKKyAgICBpZiBnZXRhdHRyKGZ1bmMsICdfX3NlbGZfXycsIE5vbmUpIGlzIG5vdCBOb25lOgorICAgICAgICByZWdhcmdzID0gcmVnYXJnc1sxOl0KKyAgICBpZiBza2lwZmlyc3Q6CisgICAgICAgICMgdGhpcyBjb25kaXRpb24gYW5kIHRoZSBhYm92ZSBvbmUgYXJlIG5ldmVyIGJvdGggVHJ1ZSAtIHdoeT8KKyAgICAgICAgcmVnYXJncyA9IHJlZ2FyZ3NbMTpdCisKKyAgICBzaWduYXR1cmUgPSBpbnNwZWN0LmZvcm1hdGFyZ3NwZWMoCisgICAgICAgIHJlZ2FyZ3MsIHZhcmFyZ3MsIHZhcmt3LCBkZWZhdWx0cywKKyAgICAgICAga3dvbmx5LCBrd29ubHlkZWYsIGFubiwgZm9ybWF0dmFsdWU9bGFtYmRhIHZhbHVlOiAiIikKKyAgICByZXR1cm4gc2lnbmF0dXJlWzE6LTFdLCBmdW5jCisKKworZGVmIF9jaGVja19zaWduYXR1cmUoZnVuYywgbW9jaywgc2tpcGZpcnN0LCBpbnN0YW5jZT1GYWxzZSk6CisgICAgaWYgbm90IF9jYWxsYWJsZShmdW5jKToKKyAgICAgICAgcmV0dXJuCisKKyAgICByZXN1bHQgPSBfZ2V0c2lnbmF0dXJlKGZ1bmMsIHNraXBmaXJzdCwgaW5zdGFuY2UpCisgICAgaWYgcmVzdWx0IGlzIE5vbmU6CisgICAgICAgIHJldHVybgorICAgIHNpZ25hdHVyZSwgZnVuYyA9IHJlc3VsdAorCisgICAgIyBjYW4ndCB1c2Ugc2VsZiBiZWNhdXNlICJzZWxmIiBpcyBjb21tb24gYXMgYW4gYXJndW1lbnQgbmFtZQorICAgICMgdW5mb3J0dW5hdGVseSBldmVuIG5vdCBpbiB0aGUgZmlyc3QgcGxhY2UKKyAgICBzcmMgPSAibGFtYmRhIF9tb2NrX3NlbGYsICVzOiBOb25lIiAlIHNpZ25hdHVyZQorICAgIGNoZWNrc2lnID0gZXZhbChzcmMsIHt9KQorICAgIF9jb3B5X2Z1bmNfZGV0YWlscyhmdW5jLCBjaGVja3NpZykKKyAgICB0eXBlKG1vY2spLl9tb2NrX2NoZWNrX3NpZyA9IGNoZWNrc2lnCisKKworZGVmIF9jb3B5X2Z1bmNfZGV0YWlscyhmdW5jLCBmdW5jb3B5KToKKyAgICBmdW5jb3B5Ll9fbmFtZV9fID0gZnVuYy5fX25hbWVfXworICAgIGZ1bmNvcHkuX19kb2NfXyA9IGZ1bmMuX19kb2NfXworICAgICMgd2UgZXhwbGljaXRseSBkb24ndCBjb3B5IGZ1bmMuX19kaWN0X18gaW50byB0aGlzIGNvcHkgYXMgaXQgd291bGQKKyAgICAjIGV4cG9zZSBvcmlnaW5hbCBhdHRyaWJ1dGVzIHRoYXQgc2hvdWxkIGJlIG1vY2tlZAorICAgIGZ1bmNvcHkuX19tb2R1bGVfXyA9IGZ1bmMuX19tb2R1bGVfXworICAgIGZ1bmNvcHkuX19kZWZhdWx0c19fID0gZnVuYy5fX2RlZmF1bHRzX18KKyAgICBmdW5jb3B5Ll9fa3dkZWZhdWx0c19fID0gZnVuYy5fX2t3ZGVmYXVsdHNfXworCisKK2RlZiBfY2FsbGFibGUob2JqKToKKyAgICBpZiBpc2luc3RhbmNlKG9iaiwgdHlwZSk6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgaWYgZ2V0YXR0cihvYmosICdfX2NhbGxfXycsIE5vbmUpIGlzIG5vdCBOb25lOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHJldHVybiBGYWxzZQorCisKK2RlZiBfaXNfbGlzdChvYmopOgorICAgICMgY2hlY2tzIGZvciBsaXN0IG9yIHR1cGxlcworICAgICMgWFhYWCBiYWRseSBuYW1lZCEKKyAgICByZXR1cm4gdHlwZShvYmopIGluIChsaXN0LCB0dXBsZSkKKworCitkZWYgX2luc3RhbmNlX2NhbGxhYmxlKG9iaik6CisgICAgIiIiR2l2ZW4gYW4gb2JqZWN0LCByZXR1cm4gVHJ1ZSBpZiB0aGUgb2JqZWN0IGlzIGNhbGxhYmxlLgorICAgIEZvciBjbGFzc2VzLCByZXR1cm4gVHJ1ZSBpZiBpbnN0YW5jZXMgd291bGQgYmUgY2FsbGFibGUuIiIiCisgICAgaWYgbm90IGlzaW5zdGFuY2Uob2JqLCB0eXBlKToKKyAgICAgICAgIyBhbHJlYWR5IGFuIGluc3RhbmNlCisgICAgICAgIHJldHVybiBnZXRhdHRyKG9iaiwgJ19fY2FsbF9fJywgTm9uZSkgaXMgbm90IE5vbmUKKworICAgICMgKmNvdWxkKiBiZSBicm9rZW4gYnkgYSBjbGFzcyBvdmVycmlkaW5nIF9fbXJvX18gb3IgX19kaWN0X18gdmlhCisgICAgIyBhIG1ldGFjbGFzcworICAgIGZvciBiYXNlIGluIChvYmosKSArIG9iai5fX21yb19fOgorICAgICAgICBpZiBiYXNlLl9fZGljdF9fLmdldCgnX19jYWxsX18nKSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIF9zZXRfc2lnbmF0dXJlKG1vY2ssIG9yaWdpbmFsLCBpbnN0YW5jZT1GYWxzZSk6CisgICAgIyBjcmVhdGVzIGEgZnVuY3Rpb24gd2l0aCBzaWduYXR1cmUgKCphcmdzLCAqKmt3YXJncykgdGhhdCBkZWxlZ2F0ZXMgdG8gYQorICAgICMgbW9jay4gSXQgc3RpbGwgZG9lcyBzaWduYXR1cmUgY2hlY2tpbmcgYnkgY2FsbGluZyBhIGxhbWJkYSB3aXRoIHRoZSBzYW1lCisgICAgIyBzaWduYXR1cmUgYXMgdGhlIG9yaWdpbmFsLgorICAgIGlmIG5vdCBfY2FsbGFibGUob3JpZ2luYWwpOgorICAgICAgICByZXR1cm4KKworICAgIHNraXBmaXJzdCA9IGlzaW5zdGFuY2Uob3JpZ2luYWwsIHR5cGUpCisgICAgcmVzdWx0ID0gX2dldHNpZ25hdHVyZShvcmlnaW5hbCwgc2tpcGZpcnN0LCBpbnN0YW5jZSkKKyAgICBpZiByZXN1bHQgaXMgTm9uZToKKyAgICAgICAgIyB3YXMgYSBDIGZ1bmN0aW9uIChlLmcuIG9iamVjdCgpLl9faW5pdF9fICkgdGhhdCBjYW4ndCBiZSBtb2NrZWQKKyAgICAgICAgcmV0dXJuCisKKyAgICBzaWduYXR1cmUsIGZ1bmMgPSByZXN1bHQKKworICAgIHNyYyA9ICJsYW1iZGEgJXM6IE5vbmUiICUgc2lnbmF0dXJlCisgICAgY2hlY2tzaWcgPSBldmFsKHNyYywge30pCisgICAgX2NvcHlfZnVuY19kZXRhaWxzKGZ1bmMsIGNoZWNrc2lnKQorCisgICAgbmFtZSA9IG9yaWdpbmFsLl9fbmFtZV9fCisgICAgaWYgbm90IG5hbWUuaXNpZGVudGlmaWVyKCk6CisgICAgICAgIG5hbWUgPSAnZnVuY29weScKKyAgICBjb250ZXh0ID0geydfY2hlY2tzaWdfJzogY2hlY2tzaWcsICdtb2NrJzogbW9ja30KKyAgICBzcmMgPSAiIiJkZWYgJXMoKmFyZ3MsICoqa3dhcmdzKToKKyAgICBfY2hlY2tzaWdfKCphcmdzLCAqKmt3YXJncykKKyAgICByZXR1cm4gbW9jaygqYXJncywgKiprd2FyZ3MpIiIiICUgbmFtZQorICAgIGV4ZWMgKHNyYywgY29udGV4dCkKKyAgICBmdW5jb3B5ID0gY29udGV4dFtuYW1lXQorICAgIF9zZXR1cF9mdW5jKGZ1bmNvcHksIG1vY2spCisgICAgcmV0dXJuIGZ1bmNvcHkKKworCitkZWYgX3NldHVwX2Z1bmMoZnVuY29weSwgbW9jayk6CisgICAgZnVuY29weS5tb2NrID0gbW9jaworCisgICAgIyBjYW4ndCB1c2UgaXNpbnN0YW5jZSB3aXRoIG1vY2tzCisgICAgaWYgbm90IF9pc19pbnN0YW5jZV9tb2NrKG1vY2spOgorICAgICAgICByZXR1cm4KKworICAgIGRlZiBhc3NlcnRfY2FsbGVkX3dpdGgoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKCphcmdzLCAqKmt3YXJncykKKyAgICBkZWYgYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoKmFyZ3MsICoqa3dhcmdzKQorICAgIGRlZiBhc3NlcnRfaGFzX2NhbGxzKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHJldHVybiBtb2NrLmFzc2VydF9oYXNfY2FsbHMoKmFyZ3MsICoqa3dhcmdzKQorICAgIGRlZiBhc3NlcnRfYW55X2NhbGwoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIG1vY2suYXNzZXJ0X2FueV9jYWxsKCphcmdzLCAqKmt3YXJncykKKyAgICBkZWYgcmVzZXRfbW9jaygpOgorICAgICAgICBmdW5jb3B5Lm1ldGhvZF9jYWxscyA9IF9DYWxsTGlzdCgpCisgICAgICAgIGZ1bmNvcHkubW9ja19jYWxscyA9IF9DYWxsTGlzdCgpCisgICAgICAgIG1vY2sucmVzZXRfbW9jaygpCisgICAgICAgIHJldCA9IGZ1bmNvcHkucmV0dXJuX3ZhbHVlCisgICAgICAgIGlmIF9pc19pbnN0YW5jZV9tb2NrKHJldCkgYW5kIG5vdCByZXQgaXMgbW9jazoKKyAgICAgICAgICAgIHJldC5yZXNldF9tb2NrKCkKKworICAgIGZ1bmNvcHkuY2FsbGVkID0gRmFsc2UKKyAgICBmdW5jb3B5LmNhbGxfY291bnQgPSAwCisgICAgZnVuY29weS5jYWxsX2FyZ3MgPSBOb25lCisgICAgZnVuY29weS5jYWxsX2FyZ3NfbGlzdCA9IF9DYWxsTGlzdCgpCisgICAgZnVuY29weS5tZXRob2RfY2FsbHMgPSBfQ2FsbExpc3QoKQorICAgIGZ1bmNvcHkubW9ja19jYWxscyA9IF9DYWxsTGlzdCgpCisKKyAgICBmdW5jb3B5LnJldHVybl92YWx1ZSA9IG1vY2sucmV0dXJuX3ZhbHVlCisgICAgZnVuY29weS5zaWRlX2VmZmVjdCA9IG1vY2suc2lkZV9lZmZlY3QKKyAgICBmdW5jb3B5Ll9tb2NrX2NoaWxkcmVuID0gbW9jay5fbW9ja19jaGlsZHJlbgorCisgICAgZnVuY29weS5hc3NlcnRfY2FsbGVkX3dpdGggPSBhc3NlcnRfY2FsbGVkX3dpdGgKKyAgICBmdW5jb3B5LmFzc2VydF9jYWxsZWRfb25jZV93aXRoID0gYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgKKyAgICBmdW5jb3B5LmFzc2VydF9oYXNfY2FsbHMgPSBhc3NlcnRfaGFzX2NhbGxzCisgICAgZnVuY29weS5hc3NlcnRfYW55X2NhbGwgPSBhc3NlcnRfYW55X2NhbGwKKyAgICBmdW5jb3B5LnJlc2V0X21vY2sgPSByZXNldF9tb2NrCisKKyAgICBtb2NrLl9tb2NrX2RlbGVnYXRlID0gZnVuY29weQorCisKK2RlZiBfaXNfbWFnaWMobmFtZSk6CisgICAgcmV0dXJuICdfXyVzX18nICUgbmFtZVsyOi0yXSA9PSBuYW1lCisKKworY2xhc3MgX1NlbnRpbmVsT2JqZWN0KG9iamVjdCk6CisgICAgIkEgdW5pcXVlLCBuYW1lZCwgc2VudGluZWwgb2JqZWN0LiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6CisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICdzZW50aW5lbC4lcycgJSBzZWxmLm5hbWUKKworCitjbGFzcyBfU2VudGluZWwob2JqZWN0KToKKyAgICAiIiJBY2Nlc3MgYXR0cmlidXRlcyB0byByZXR1cm4gYSBuYW1lZCBvYmplY3QsIHVzYWJsZSBhcyBhIHNlbnRpbmVsLiIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5fc2VudGluZWxzID0ge30KKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgaWYgbmFtZSA9PSAnX19iYXNlc19fJzoKKyAgICAgICAgICAgICMgV2l0aG91dCB0aGlzIGhlbHAodW5pdHRlc3QubW9jaykgcmFpc2VzIGFuIGV4Y2VwdGlvbgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NlbnRpbmVscy5zZXRkZWZhdWx0KG5hbWUsIF9TZW50aW5lbE9iamVjdChuYW1lKSkKKworCitzZW50aW5lbCA9IF9TZW50aW5lbCgpCisKK0RFRkFVTFQgPSBzZW50aW5lbC5ERUZBVUxUCitfbWlzc2luZyA9IHNlbnRpbmVsLk1JU1NJTkcKK19kZWxldGVkID0gc2VudGluZWwuREVMRVRFRAorCisKK2RlZiBfY29weSh2YWx1ZSk6CisgICAgaWYgdHlwZSh2YWx1ZSkgaW4gKGRpY3QsIGxpc3QsIHR1cGxlLCBzZXQpOgorICAgICAgICByZXR1cm4gdHlwZSh2YWx1ZSkodmFsdWUpCisgICAgcmV0dXJuIHZhbHVlCisKKworX2FsbG93ZWRfbmFtZXMgPSBzZXQoCisgICAgWworICAgICAgICAncmV0dXJuX3ZhbHVlJywgJ19tb2NrX3JldHVybl92YWx1ZScsICdzaWRlX2VmZmVjdCcsCisgICAgICAgICdfbW9ja19zaWRlX2VmZmVjdCcsICdfbW9ja19wYXJlbnQnLCAnX21vY2tfbmV3X3BhcmVudCcsCisgICAgICAgICdfbW9ja19uYW1lJywgJ19tb2NrX25ld19uYW1lJworICAgIF0KKykKKworCitkZWYgX2RlbGVnYXRpbmdfcHJvcGVydHkobmFtZSk6CisgICAgX2FsbG93ZWRfbmFtZXMuYWRkKG5hbWUpCisgICAgX3RoZV9uYW1lID0gJ19tb2NrXycgKyBuYW1lCisgICAgZGVmIF9nZXQoc2VsZiwgbmFtZT1uYW1lLCBfdGhlX25hbWU9X3RoZV9uYW1lKToKKyAgICAgICAgc2lnID0gc2VsZi5fbW9ja19kZWxlZ2F0ZQorICAgICAgICBpZiBzaWcgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYsIF90aGVfbmFtZSkKKyAgICAgICAgcmV0dXJuIGdldGF0dHIoc2lnLCBuYW1lKQorICAgIGRlZiBfc2V0KHNlbGYsIHZhbHVlLCBuYW1lPW5hbWUsIF90aGVfbmFtZT1fdGhlX25hbWUpOgorICAgICAgICBzaWcgPSBzZWxmLl9tb2NrX2RlbGVnYXRlCisgICAgICAgIGlmIHNpZyBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fX2RpY3RfX1tfdGhlX25hbWVdID0gdmFsdWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNldGF0dHIoc2lnLCBuYW1lLCB2YWx1ZSkKKworICAgIHJldHVybiBwcm9wZXJ0eShfZ2V0LCBfc2V0KQorCisKKworY2xhc3MgX0NhbGxMaXN0KGxpc3QpOgorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KToKKyAgICAgICAgICAgIHJldHVybiBsaXN0Ll9fY29udGFpbnNfXyhzZWxmLCB2YWx1ZSkKKyAgICAgICAgbGVuX3ZhbHVlID0gbGVuKHZhbHVlKQorICAgICAgICBsZW5fc2VsZiA9IGxlbihzZWxmKQorICAgICAgICBpZiBsZW5fdmFsdWUgPiBsZW5fc2VsZjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIGxlbl9zZWxmIC0gbGVuX3ZhbHVlICsgMSk6CisgICAgICAgICAgICBzdWJfbGlzdCA9IHNlbGZbaTppK2xlbl92YWx1ZV0KKyAgICAgICAgICAgIGlmIHN1Yl9saXN0ID09IHZhbHVlOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gcHByaW50LnBmb3JtYXQobGlzdChzZWxmKSkKKworCitkZWYgX2NoZWNrX2FuZF9zZXRfcGFyZW50KHBhcmVudCwgdmFsdWUsIG5hbWUsIG5ld19uYW1lKToKKyAgICBpZiBub3QgX2lzX2luc3RhbmNlX21vY2sodmFsdWUpOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBpZiAoKHZhbHVlLl9tb2NrX25hbWUgb3IgdmFsdWUuX21vY2tfbmV3X25hbWUpIG9yCisgICAgICAgICh2YWx1ZS5fbW9ja19wYXJlbnQgaXMgbm90IE5vbmUpIG9yCisgICAgICAgICh2YWx1ZS5fbW9ja19uZXdfcGFyZW50IGlzIG5vdCBOb25lKSk6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgX3BhcmVudCA9IHBhcmVudAorICAgIHdoaWxlIF9wYXJlbnQgaXMgbm90IE5vbmU6CisgICAgICAgICMgc2V0dGluZyBhIG1vY2sgKHZhbHVlKSBhcyBhIGNoaWxkIG9yIHJldHVybiB2YWx1ZSBvZiBpdHNlbGYKKyAgICAgICAgIyBzaG91bGQgbm90IG1vZGlmeSB0aGUgbW9jaworICAgICAgICBpZiBfcGFyZW50IGlzIHZhbHVlOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIF9wYXJlbnQgPSBfcGFyZW50Ll9tb2NrX25ld19wYXJlbnQKKworICAgIGlmIG5ld19uYW1lOgorICAgICAgICB2YWx1ZS5fbW9ja19uZXdfcGFyZW50ID0gcGFyZW50CisgICAgICAgIHZhbHVlLl9tb2NrX25ld19uYW1lID0gbmV3X25hbWUKKyAgICBpZiBuYW1lOgorICAgICAgICB2YWx1ZS5fbW9ja19wYXJlbnQgPSBwYXJlbnQKKyAgICAgICAgdmFsdWUuX21vY2tfbmFtZSA9IG5hbWUKKyAgICByZXR1cm4gVHJ1ZQorCisKKworY2xhc3MgQmFzZShvYmplY3QpOgorICAgIF9tb2NrX3JldHVybl92YWx1ZSA9IERFRkFVTFQKKyAgICBfbW9ja19zaWRlX2VmZmVjdCA9IE5vbmUKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgcGFzcworCisKKworY2xhc3MgTm9uQ2FsbGFibGVNb2NrKEJhc2UpOgorICAgICIiIkEgbm9uLWNhbGxhYmxlIHZlcnNpb24gb2YgYE1vY2tgIiIiCisKKyAgICBkZWYgX19uZXdfXyhjbHMsICphcmdzLCAqKmt3KToKKyAgICAgICAgIyBldmVyeSBpbnN0YW5jZSBoYXMgaXRzIG93biBjbGFzcworICAgICAgICAjIHNvIHdlIGNhbiBjcmVhdGUgbWFnaWMgbWV0aG9kcyBvbiB0aGUKKyAgICAgICAgIyBjbGFzcyB3aXRob3V0IHN0b21waW5nIG9uIG90aGVyIG1vY2tzCisgICAgICAgIG5ldyA9IHR5cGUoY2xzLl9fbmFtZV9fLCAoY2xzLCksIHsnX19kb2NfXyc6IGNscy5fX2RvY19ffSkKKyAgICAgICAgaW5zdGFuY2UgPSBvYmplY3QuX19uZXdfXyhuZXcpCisgICAgICAgIHJldHVybiBpbnN0YW5jZQorCisKKyAgICBkZWYgX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBzcGVjPU5vbmUsIHdyYXBzPU5vbmUsIG5hbWU9Tm9uZSwgc3BlY19zZXQ9Tm9uZSwKKyAgICAgICAgICAgIHBhcmVudD1Ob25lLCBfc3BlY19zdGF0ZT1Ob25lLCBfbmV3X25hbWU9JycsIF9uZXdfcGFyZW50PU5vbmUsCisgICAgICAgICAgICAqKmt3YXJncworICAgICAgICApOgorICAgICAgICBpZiBfbmV3X3BhcmVudCBpcyBOb25lOgorICAgICAgICAgICAgX25ld19wYXJlbnQgPSBwYXJlbnQKKworICAgICAgICBfX2RpY3RfXyA9IHNlbGYuX19kaWN0X18KKyAgICAgICAgX19kaWN0X19bJ19tb2NrX3BhcmVudCddID0gcGFyZW50CisgICAgICAgIF9fZGljdF9fWydfbW9ja19uYW1lJ10gPSBuYW1lCisgICAgICAgIF9fZGljdF9fWydfbW9ja19uZXdfbmFtZSddID0gX25ld19uYW1lCisgICAgICAgIF9fZGljdF9fWydfbW9ja19uZXdfcGFyZW50J10gPSBfbmV3X3BhcmVudAorCisgICAgICAgIGlmIHNwZWNfc2V0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3BlYyA9IHNwZWNfc2V0CisgICAgICAgICAgICBzcGVjX3NldCA9IFRydWUKKworICAgICAgICBzZWxmLl9tb2NrX2FkZF9zcGVjKHNwZWMsIHNwZWNfc2V0KQorCisgICAgICAgIF9fZGljdF9fWydfbW9ja19jaGlsZHJlbiddID0ge30KKyAgICAgICAgX19kaWN0X19bJ19tb2NrX3dyYXBzJ10gPSB3cmFwcworICAgICAgICBfX2RpY3RfX1snX21vY2tfZGVsZWdhdGUnXSA9IE5vbmUKKworICAgICAgICBfX2RpY3RfX1snX21vY2tfY2FsbGVkJ10gPSBGYWxzZQorICAgICAgICBfX2RpY3RfX1snX21vY2tfY2FsbF9hcmdzJ10gPSBOb25lCisgICAgICAgIF9fZGljdF9fWydfbW9ja19jYWxsX2NvdW50J10gPSAwCisgICAgICAgIF9fZGljdF9fWydfbW9ja19jYWxsX2FyZ3NfbGlzdCddID0gX0NhbGxMaXN0KCkKKyAgICAgICAgX19kaWN0X19bJ19tb2NrX21vY2tfY2FsbHMnXSA9IF9DYWxsTGlzdCgpCisKKyAgICAgICAgX19kaWN0X19bJ21ldGhvZF9jYWxscyddID0gX0NhbGxMaXN0KCkKKworICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICBzZWxmLmNvbmZpZ3VyZV9tb2NrKCoqa3dhcmdzKQorCisgICAgICAgIF9zYWZlX3N1cGVyKE5vbkNhbGxhYmxlTW9jaywgc2VsZikuX19pbml0X18oCisgICAgICAgICAgICBzcGVjLCB3cmFwcywgbmFtZSwgc3BlY19zZXQsIHBhcmVudCwKKyAgICAgICAgICAgIF9zcGVjX3N0YXRlCisgICAgICAgICkKKworCisgICAgZGVmIGF0dGFjaF9tb2NrKHNlbGYsIG1vY2ssIGF0dHJpYnV0ZSk6CisgICAgICAgICIiIgorICAgICAgICBBdHRhY2ggYSBtb2NrIGFzIGFuIGF0dHJpYnV0ZSBvZiB0aGlzIG9uZSwgcmVwbGFjaW5nIGl0cyBuYW1lIGFuZAorICAgICAgICBwYXJlbnQuIENhbGxzIHRvIHRoZSBhdHRhY2hlZCBtb2NrIHdpbGwgYmUgcmVjb3JkZWQgaW4gdGhlCisgICAgICAgIGBtZXRob2RfY2FsbHNgIGFuZCBgbW9ja19jYWxsc2AgYXR0cmlidXRlcyBvZiB0aGlzIG9uZS4iIiIKKyAgICAgICAgbW9jay5fbW9ja19wYXJlbnQgPSBOb25lCisgICAgICAgIG1vY2suX21vY2tfbmV3X3BhcmVudCA9IE5vbmUKKyAgICAgICAgbW9jay5fbW9ja19uYW1lID0gJycKKyAgICAgICAgbW9jay5fbW9ja19uZXdfbmFtZSA9IE5vbmUKKworICAgICAgICBzZXRhdHRyKHNlbGYsIGF0dHJpYnV0ZSwgbW9jaykKKworCisgICAgZGVmIG1vY2tfYWRkX3NwZWMoc2VsZiwgc3BlYywgc3BlY19zZXQ9RmFsc2UpOgorICAgICAgICAiIiJBZGQgYSBzcGVjIHRvIGEgbW9jay4gYHNwZWNgIGNhbiBlaXRoZXIgYmUgYW4gb2JqZWN0IG9yIGEKKyAgICAgICAgbGlzdCBvZiBzdHJpbmdzLiBPbmx5IGF0dHJpYnV0ZXMgb24gdGhlIGBzcGVjYCBjYW4gYmUgZmV0Y2hlZCBhcworICAgICAgICBhdHRyaWJ1dGVzIGZyb20gdGhlIG1vY2suCisKKyAgICAgICAgSWYgYHNwZWNfc2V0YCBpcyBUcnVlIHRoZW4gb25seSBhdHRyaWJ1dGVzIG9uIHRoZSBzcGVjIGNhbiBiZSBzZXQuIiIiCisgICAgICAgIHNlbGYuX21vY2tfYWRkX3NwZWMoc3BlYywgc3BlY19zZXQpCisKKworICAgIGRlZiBfbW9ja19hZGRfc3BlYyhzZWxmLCBzcGVjLCBzcGVjX3NldCk6CisgICAgICAgIF9zcGVjX2NsYXNzID0gTm9uZQorCisgICAgICAgIGlmIHNwZWMgaXMgbm90IE5vbmUgYW5kIG5vdCBfaXNfbGlzdChzcGVjKToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3BlYywgdHlwZSk6CisgICAgICAgICAgICAgICAgX3NwZWNfY2xhc3MgPSBzcGVjCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIF9zcGVjX2NsYXNzID0gX2dldF9jbGFzcyhzcGVjKQorCisgICAgICAgICAgICBzcGVjID0gZGlyKHNwZWMpCisKKyAgICAgICAgX19kaWN0X18gPSBzZWxmLl9fZGljdF9fCisgICAgICAgIF9fZGljdF9fWydfc3BlY19jbGFzcyddID0gX3NwZWNfY2xhc3MKKyAgICAgICAgX19kaWN0X19bJ19zcGVjX3NldCddID0gc3BlY19zZXQKKyAgICAgICAgX19kaWN0X19bJ19tb2NrX21ldGhvZHMnXSA9IHNwZWMKKworCisgICAgZGVmIF9fZ2V0X3JldHVybl92YWx1ZShzZWxmKToKKyAgICAgICAgcmV0ID0gc2VsZi5fbW9ja19yZXR1cm5fdmFsdWUKKyAgICAgICAgaWYgc2VsZi5fbW9ja19kZWxlZ2F0ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJldCA9IHNlbGYuX21vY2tfZGVsZWdhdGUucmV0dXJuX3ZhbHVlCisKKyAgICAgICAgaWYgcmV0IGlzIERFRkFVTFQ6CisgICAgICAgICAgICByZXQgPSBzZWxmLl9nZXRfY2hpbGRfbW9jaygKKyAgICAgICAgICAgICAgICBfbmV3X3BhcmVudD1zZWxmLCBfbmV3X25hbWU9JygpJworICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5yZXR1cm5fdmFsdWUgPSByZXQKKyAgICAgICAgcmV0dXJuIHJldAorCisKKyAgICBkZWYgX19zZXRfcmV0dXJuX3ZhbHVlKHNlbGYsIHZhbHVlKToKKyAgICAgICAgaWYgc2VsZi5fbW9ja19kZWxlZ2F0ZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX21vY2tfZGVsZWdhdGUucmV0dXJuX3ZhbHVlID0gdmFsdWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuX21vY2tfcmV0dXJuX3ZhbHVlID0gdmFsdWUKKyAgICAgICAgICAgIF9jaGVja19hbmRfc2V0X3BhcmVudChzZWxmLCB2YWx1ZSwgTm9uZSwgJygpJykKKworICAgIF9fcmV0dXJuX3ZhbHVlX2RvYyA9ICJUaGUgdmFsdWUgdG8gYmUgcmV0dXJuZWQgd2hlbiB0aGUgbW9jayBpcyBjYWxsZWQuIgorICAgIHJldHVybl92YWx1ZSA9IHByb3BlcnR5KF9fZ2V0X3JldHVybl92YWx1ZSwgX19zZXRfcmV0dXJuX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmV0dXJuX3ZhbHVlX2RvYykKKworCisgICAgQHByb3BlcnR5CisgICAgZGVmIF9fY2xhc3NfXyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fc3BlY19jbGFzcyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIHR5cGUoc2VsZikKKyAgICAgICAgcmV0dXJuIHNlbGYuX3NwZWNfY2xhc3MKKworICAgIGNhbGxlZCA9IF9kZWxlZ2F0aW5nX3Byb3BlcnR5KCdjYWxsZWQnKQorICAgIGNhbGxfY291bnQgPSBfZGVsZWdhdGluZ19wcm9wZXJ0eSgnY2FsbF9jb3VudCcpCisgICAgY2FsbF9hcmdzID0gX2RlbGVnYXRpbmdfcHJvcGVydHkoJ2NhbGxfYXJncycpCisgICAgY2FsbF9hcmdzX2xpc3QgPSBfZGVsZWdhdGluZ19wcm9wZXJ0eSgnY2FsbF9hcmdzX2xpc3QnKQorICAgIG1vY2tfY2FsbHMgPSBfZGVsZWdhdGluZ19wcm9wZXJ0eSgnbW9ja19jYWxscycpCisKKworICAgIGRlZiBfX2dldF9zaWRlX2VmZmVjdChzZWxmKToKKyAgICAgICAgZGVsZWdhdGVkID0gc2VsZi5fbW9ja19kZWxlZ2F0ZQorICAgICAgICBpZiBkZWxlZ2F0ZWQgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9tb2NrX3NpZGVfZWZmZWN0CisgICAgICAgIHJldHVybiBkZWxlZ2F0ZWQuc2lkZV9lZmZlY3QKKworICAgIGRlZiBfX3NldF9zaWRlX2VmZmVjdChzZWxmLCB2YWx1ZSk6CisgICAgICAgIHZhbHVlID0gX3RyeV9pdGVyKHZhbHVlKQorICAgICAgICBkZWxlZ2F0ZWQgPSBzZWxmLl9tb2NrX2RlbGVnYXRlCisgICAgICAgIGlmIGRlbGVnYXRlZCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fbW9ja19zaWRlX2VmZmVjdCA9IHZhbHVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkZWxlZ2F0ZWQuc2lkZV9lZmZlY3QgPSB2YWx1ZQorCisgICAgc2lkZV9lZmZlY3QgPSBwcm9wZXJ0eShfX2dldF9zaWRlX2VmZmVjdCwgX19zZXRfc2lkZV9lZmZlY3QpCisKKworICAgIGRlZiByZXNldF9tb2NrKHNlbGYpOgorICAgICAgICAiUmVzdG9yZSB0aGUgbW9jayBvYmplY3QgdG8gaXRzIGluaXRpYWwgc3RhdGUuIgorICAgICAgICBzZWxmLmNhbGxlZCA9IEZhbHNlCisgICAgICAgIHNlbGYuY2FsbF9hcmdzID0gTm9uZQorICAgICAgICBzZWxmLmNhbGxfY291bnQgPSAwCisgICAgICAgIHNlbGYubW9ja19jYWxscyA9IF9DYWxsTGlzdCgpCisgICAgICAgIHNlbGYuY2FsbF9hcmdzX2xpc3QgPSBfQ2FsbExpc3QoKQorICAgICAgICBzZWxmLm1ldGhvZF9jYWxscyA9IF9DYWxsTGlzdCgpCisKKyAgICAgICAgZm9yIGNoaWxkIGluIHNlbGYuX21vY2tfY2hpbGRyZW4udmFsdWVzKCk6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNoaWxkLCBfU3BlY1N0YXRlKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgY2hpbGQucmVzZXRfbW9jaygpCisKKyAgICAgICAgcmV0ID0gc2VsZi5fbW9ja19yZXR1cm5fdmFsdWUKKyAgICAgICAgaWYgX2lzX2luc3RhbmNlX21vY2socmV0KSBhbmQgcmV0IGlzIG5vdCBzZWxmOgorICAgICAgICAgICAgcmV0LnJlc2V0X21vY2soKQorCisKKyAgICBkZWYgY29uZmlndXJlX21vY2soc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAiIiJTZXQgYXR0cmlidXRlcyBvbiB0aGUgbW9jayB0aHJvdWdoIGtleXdvcmQgYXJndW1lbnRzLgorCisgICAgICAgIEF0dHJpYnV0ZXMgcGx1cyByZXR1cm4gdmFsdWVzIGFuZCBzaWRlIGVmZmVjdHMgY2FuIGJlIHNldCBvbiBjaGlsZAorICAgICAgICBtb2NrcyB1c2luZyBzdGFuZGFyZCBkb3Qgbm90YXRpb24gYW5kIHVucGFja2luZyBhIGRpY3Rpb25hcnkgaW4gdGhlCisgICAgICAgIG1ldGhvZCBjYWxsOgorCisgICAgICAgID4+PiBhdHRycyA9IHsnbWV0aG9kLnJldHVybl92YWx1ZSc6IDMsICdvdGhlci5zaWRlX2VmZmVjdCc6IEtleUVycm9yfQorICAgICAgICA+Pj4gbW9jay5jb25maWd1cmVfbW9jaygqKmF0dHJzKSIiIgorICAgICAgICBmb3IgYXJnLCB2YWwgaW4gc29ydGVkKGt3YXJncy5pdGVtcygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgd2Ugc29ydCBvbiB0aGUgbnVtYmVyIG9mIGRvdHMgc28gdGhhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYXR0cmlidXRlcyBhcmUgc2V0IGJlZm9yZSB3ZSBzZXQgYXR0cmlidXRlcyBvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYXR0cmlidXRlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1sYW1iZGEgZW50cnk6IGVudHJ5WzBdLmNvdW50KCcuJykpOgorICAgICAgICAgICAgYXJncyA9IGFyZy5zcGxpdCgnLicpCisgICAgICAgICAgICBmaW5hbCA9IGFyZ3MucG9wKCkKKyAgICAgICAgICAgIG9iaiA9IHNlbGYKKyAgICAgICAgICAgIGZvciBlbnRyeSBpbiBhcmdzOgorICAgICAgICAgICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCBlbnRyeSkKKyAgICAgICAgICAgIHNldGF0dHIob2JqLCBmaW5hbCwgdmFsKQorCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgIGlmIG5hbWUgPT0gJ19tb2NrX21ldGhvZHMnOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKKyAgICAgICAgZWxpZiBzZWxmLl9tb2NrX21ldGhvZHMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBzZWxmLl9tb2NrX21ldGhvZHMgb3IgbmFtZSBpbiBfYWxsX21hZ2ljczoKKyAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiTW9jayBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAlciIgJSBuYW1lKQorICAgICAgICBlbGlmIF9pc19tYWdpYyhuYW1lKToKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKG5hbWUpCisKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5fbW9ja19jaGlsZHJlbi5nZXQobmFtZSkKKyAgICAgICAgaWYgcmVzdWx0IGlzIF9kZWxldGVkOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobmFtZSkKKyAgICAgICAgZWxpZiByZXN1bHQgaXMgTm9uZToKKyAgICAgICAgICAgIHdyYXBzID0gTm9uZQorICAgICAgICAgICAgaWYgc2VsZi5fbW9ja193cmFwcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAjIFhYWFggc2hvdWxkIHdlIGdldCB0aGUgYXR0cmlidXRlIHdpdGhvdXQgdHJpZ2dlcmluZyBjb2RlCisgICAgICAgICAgICAgICAgIyBleGVjdXRpb24/CisgICAgICAgICAgICAgICAgd3JhcHMgPSBnZXRhdHRyKHNlbGYuX21vY2tfd3JhcHMsIG5hbWUpCisKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX2dldF9jaGlsZF9tb2NrKAorICAgICAgICAgICAgICAgIHBhcmVudD1zZWxmLCBuYW1lPW5hbWUsIHdyYXBzPXdyYXBzLCBfbmV3X25hbWU9bmFtZSwKKyAgICAgICAgICAgICAgICBfbmV3X3BhcmVudD1zZWxmCisgICAgICAgICAgICApCisgICAgICAgICAgICBzZWxmLl9tb2NrX2NoaWxkcmVuW25hbWVdICA9IHJlc3VsdAorCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShyZXN1bHQsIF9TcGVjU3RhdGUpOgorICAgICAgICAgICAgcmVzdWx0ID0gY3JlYXRlX2F1dG9zcGVjKAorICAgICAgICAgICAgICAgIHJlc3VsdC5zcGVjLCByZXN1bHQuc3BlY19zZXQsIHJlc3VsdC5pbnN0YW5jZSwKKyAgICAgICAgICAgICAgICByZXN1bHQucGFyZW50LCByZXN1bHQubmFtZQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5fbW9ja19jaGlsZHJlbltuYW1lXSAgPSByZXN1bHQKKworICAgICAgICByZXR1cm4gcmVzdWx0CisKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgX25hbWVfbGlzdCA9IFtzZWxmLl9tb2NrX25ld19uYW1lXQorICAgICAgICBfcGFyZW50ID0gc2VsZi5fbW9ja19uZXdfcGFyZW50CisgICAgICAgIGxhc3QgPSBzZWxmCisKKyAgICAgICAgZG90ID0gJy4nCisgICAgICAgIGlmIF9uYW1lX2xpc3QgPT0gWycoKSddOgorICAgICAgICAgICAgZG90ID0gJycKKyAgICAgICAgc2VlbiA9IHNldCgpCisgICAgICAgIHdoaWxlIF9wYXJlbnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBsYXN0ID0gX3BhcmVudAorCisgICAgICAgICAgICBfbmFtZV9saXN0LmFwcGVuZChfcGFyZW50Ll9tb2NrX25ld19uYW1lICsgZG90KQorICAgICAgICAgICAgZG90ID0gJy4nCisgICAgICAgICAgICBpZiBfcGFyZW50Ll9tb2NrX25ld19uYW1lID09ICcoKSc6CisgICAgICAgICAgICAgICAgZG90ID0gJycKKworICAgICAgICAgICAgX3BhcmVudCA9IF9wYXJlbnQuX21vY2tfbmV3X3BhcmVudAorCisgICAgICAgICAgICAjIHVzZSBpZHMgaGVyZSBzbyBhcyBub3QgdG8gY2FsbCBfX2hhc2hfXyBvbiB0aGUgbW9ja3MKKyAgICAgICAgICAgIGlmIGlkKF9wYXJlbnQpIGluIHNlZW46CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHNlZW4uYWRkKGlkKF9wYXJlbnQpKQorCisgICAgICAgIF9uYW1lX2xpc3QgPSBsaXN0KHJldmVyc2VkKF9uYW1lX2xpc3QpKQorICAgICAgICBfZmlyc3QgPSBsYXN0Ll9tb2NrX25hbWUgb3IgJ21vY2snCisgICAgICAgIGlmIGxlbihfbmFtZV9saXN0KSA+IDE6CisgICAgICAgICAgICBpZiBfbmFtZV9saXN0WzFdIG5vdCBpbiAoJygpJywgJygpLicpOgorICAgICAgICAgICAgICAgIF9maXJzdCArPSAnLicKKyAgICAgICAgX25hbWVfbGlzdFswXSA9IF9maXJzdAorICAgICAgICBuYW1lID0gJycuam9pbihfbmFtZV9saXN0KQorCisgICAgICAgIG5hbWVfc3RyaW5nID0gJycKKyAgICAgICAgaWYgbmFtZSBub3QgaW4gKCdtb2NrJywgJ21vY2suJyk6CisgICAgICAgICAgICBuYW1lX3N0cmluZyA9ICcgbmFtZT0lcicgJSBuYW1lCisKKyAgICAgICAgc3BlY19zdHJpbmcgPSAnJworICAgICAgICBpZiBzZWxmLl9zcGVjX2NsYXNzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc3BlY19zdHJpbmcgPSAnIHNwZWM9JXInCisgICAgICAgICAgICBpZiBzZWxmLl9zcGVjX3NldDoKKyAgICAgICAgICAgICAgICBzcGVjX3N0cmluZyA9ICcgc3BlY19zZXQ9JXInCisgICAgICAgICAgICBzcGVjX3N0cmluZyA9IHNwZWNfc3RyaW5nICUgc2VsZi5fc3BlY19jbGFzcy5fX25hbWVfXworICAgICAgICByZXR1cm4gIjwlcyVzJXMgaWQ9JyVzJz4iICUgKAorICAgICAgICAgICAgdHlwZShzZWxmKS5fX25hbWVfXywKKyAgICAgICAgICAgIG5hbWVfc3RyaW5nLAorICAgICAgICAgICAgc3BlY19zdHJpbmcsCisgICAgICAgICAgICBpZChzZWxmKQorICAgICAgICApCisKKworICAgIGRlZiBfX2Rpcl9fKHNlbGYpOgorICAgICAgICAiIiJGaWx0ZXIgdGhlIG91dHB1dCBvZiBgZGlyKG1vY2spYCB0byBvbmx5IHVzZWZ1bCBtZW1iZXJzLiIiIgorICAgICAgICBpZiBub3QgRklMVEVSX0RJUjoKKyAgICAgICAgICAgIHJldHVybiBvYmplY3QuX19kaXJfXyhzZWxmKQorCisgICAgICAgIGV4dHJhcyA9IHNlbGYuX21vY2tfbWV0aG9kcyBvciBbXQorICAgICAgICBmcm9tX3R5cGUgPSBkaXIodHlwZShzZWxmKSkKKyAgICAgICAgZnJvbV9kaWN0ID0gbGlzdChzZWxmLl9fZGljdF9fKQorCisgICAgICAgIGZyb21fdHlwZSA9IFtlIGZvciBlIGluIGZyb21fdHlwZSBpZiBub3QgZS5zdGFydHN3aXRoKCdfJyldCisgICAgICAgIGZyb21fZGljdCA9IFtlIGZvciBlIGluIGZyb21fZGljdCBpZiBub3QgZS5zdGFydHN3aXRoKCdfJykgb3IKKyAgICAgICAgICAgICAgICAgICAgIF9pc19tYWdpYyhlKV0KKyAgICAgICAgcmV0dXJuIHNvcnRlZChzZXQoZXh0cmFzICsgZnJvbV90eXBlICsgZnJvbV9kaWN0ICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdChzZWxmLl9tb2NrX2NoaWxkcmVuKSkpCisKKworICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIGlmIG5hbWUgaW4gX2FsbG93ZWRfbmFtZXM6CisgICAgICAgICAgICAjIHByb3BlcnR5IHNldHRlcnMgZ28gdGhyb3VnaCBoZXJlCisgICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKQorICAgICAgICBlbGlmIChzZWxmLl9zcGVjX3NldCBhbmQgc2VsZi5fbW9ja19tZXRob2RzIGlzIG5vdCBOb25lIGFuZAorICAgICAgICAgICAgbmFtZSBub3QgaW4gc2VsZi5fbW9ja19tZXRob2RzIGFuZAorICAgICAgICAgICAgbmFtZSBub3QgaW4gc2VsZi5fX2RpY3RfXyk6CisgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiTW9jayBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnJXMnIiAlIG5hbWUpCisgICAgICAgIGVsaWYgbmFtZSBpbiBfdW5zdXBwb3J0ZWRfbWFnaWNzOgorICAgICAgICAgICAgbXNnID0gJ0F0dGVtcHRpbmcgdG8gc2V0IHVuc3VwcG9ydGVkIG1hZ2ljIG1ldGhvZCAlci4nICUgbmFtZQorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IobXNnKQorICAgICAgICBlbGlmIG5hbWUgaW4gX2FsbF9tYWdpY3M6CisgICAgICAgICAgICBpZiBzZWxmLl9tb2NrX21ldGhvZHMgaXMgbm90IE5vbmUgYW5kIG5hbWUgbm90IGluIHNlbGYuX21vY2tfbWV0aG9kczoKKyAgICAgICAgICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiTW9jayBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnJXMnIiAlIG5hbWUpCisKKyAgICAgICAgICAgIGlmIG5vdCBfaXNfaW5zdGFuY2VfbW9jayh2YWx1ZSk6CisgICAgICAgICAgICAgICAgc2V0YXR0cih0eXBlKHNlbGYpLCBuYW1lLCBfZ2V0X21ldGhvZChuYW1lLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgb3JpZ2luYWwgPSB2YWx1ZQorICAgICAgICAgICAgICAgIHZhbHVlID0gbGFtYmRhICphcmdzLCAqKmt3OiBvcmlnaW5hbChzZWxmLCAqYXJncywgKiprdykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBvbmx5IHNldCBfbmV3X25hbWUgYW5kIG5vdCBuYW1lIHNvIHRoYXQgbW9ja19jYWxscyBpcyB0cmFja2VkCisgICAgICAgICAgICAgICAgIyBidXQgbm90IG1ldGhvZCBjYWxscworICAgICAgICAgICAgICAgIF9jaGVja19hbmRfc2V0X3BhcmVudChzZWxmLCB2YWx1ZSwgTm9uZSwgbmFtZSkKKyAgICAgICAgICAgICAgICBzZXRhdHRyKHR5cGUoc2VsZiksIG5hbWUsIHZhbHVlKQorICAgICAgICAgICAgICAgIHNlbGYuX21vY2tfY2hpbGRyZW5bbmFtZV0gPSB2YWx1ZQorICAgICAgICBlbGlmIG5hbWUgPT0gJ19fY2xhc3NfXyc6CisgICAgICAgICAgICBzZWxmLl9zcGVjX2NsYXNzID0gdmFsdWUKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgX2NoZWNrX2FuZF9zZXRfcGFyZW50KHNlbGYsIHZhbHVlLCBuYW1lLCBuYW1lKToKKyAgICAgICAgICAgICAgICBzZWxmLl9tb2NrX2NoaWxkcmVuW25hbWVdID0gdmFsdWUKKyAgICAgICAgcmV0dXJuIG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSkKKworCisgICAgZGVmIF9fZGVsYXR0cl9fKHNlbGYsIG5hbWUpOgorICAgICAgICBpZiBuYW1lIGluIF9hbGxfbWFnaWNzIGFuZCBuYW1lIGluIHR5cGUoc2VsZikuX19kaWN0X186CisgICAgICAgICAgICBkZWxhdHRyKHR5cGUoc2VsZiksIG5hbWUpCisgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBzZWxmLl9fZGljdF9fOgorICAgICAgICAgICAgICAgICMgZm9yIG1hZ2ljIG1ldGhvZHMgdGhhdCBhcmUgc3RpbGwgTWFnaWNQcm94eSBvYmplY3RzIGFuZAorICAgICAgICAgICAgICAgICMgbm90IHNldCBvbiB0aGUgaW5zdGFuY2UgaXRzZWxmCisgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYgbmFtZSBpbiBzZWxmLl9fZGljdF9fOgorICAgICAgICAgICAgb2JqZWN0Ll9fZGVsYXR0cl9fKHNlbGYsIG5hbWUpCisKKyAgICAgICAgb2JqID0gc2VsZi5fbW9ja19jaGlsZHJlbi5nZXQobmFtZSwgX21pc3NpbmcpCisgICAgICAgIGlmIG9iaiBpcyBfZGVsZXRlZDoKKyAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKG5hbWUpCisgICAgICAgIGlmIG9iaiBpcyBub3QgX21pc3Npbmc6CisgICAgICAgICAgICBkZWwgc2VsZi5fbW9ja19jaGlsZHJlbltuYW1lXQorICAgICAgICBzZWxmLl9tb2NrX2NoaWxkcmVuW25hbWVdID0gX2RlbGV0ZWQKKworCisKKyAgICBkZWYgX2Zvcm1hdF9tb2NrX2NhbGxfc2lnbmF0dXJlKHNlbGYsIGFyZ3MsIGt3YXJncyk6CisgICAgICAgIG5hbWUgPSBzZWxmLl9tb2NrX25hbWUgb3IgJ21vY2snCisgICAgICAgIHJldHVybiBfZm9ybWF0X2NhbGxfc2lnbmF0dXJlKG5hbWUsIGFyZ3MsIGt3YXJncykKKworCisgICAgZGVmIF9mb3JtYXRfbW9ja19mYWlsdXJlX21lc3NhZ2Uoc2VsZiwgYXJncywga3dhcmdzKToKKyAgICAgICAgbWVzc2FnZSA9ICdFeHBlY3RlZCBjYWxsOiAlc1xuQWN0dWFsIGNhbGw6ICVzJworICAgICAgICBleHBlY3RlZF9zdHJpbmcgPSBzZWxmLl9mb3JtYXRfbW9ja19jYWxsX3NpZ25hdHVyZShhcmdzLCBrd2FyZ3MpCisgICAgICAgIGNhbGxfYXJncyA9IHNlbGYuY2FsbF9hcmdzCisgICAgICAgIGlmIGxlbihjYWxsX2FyZ3MpID09IDM6CisgICAgICAgICAgICBjYWxsX2FyZ3MgPSBjYWxsX2FyZ3NbMTpdCisgICAgICAgIGFjdHVhbF9zdHJpbmcgPSBzZWxmLl9mb3JtYXRfbW9ja19jYWxsX3NpZ25hdHVyZSgqY2FsbF9hcmdzKQorICAgICAgICByZXR1cm4gbWVzc2FnZSAlIChleHBlY3RlZF9zdHJpbmcsIGFjdHVhbF9zdHJpbmcpCisKKworICAgIGRlZiBhc3NlcnRfY2FsbGVkX3dpdGgoX21vY2tfc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiYXNzZXJ0IHRoYXQgdGhlIG1vY2sgd2FzIGNhbGxlZCB3aXRoIHRoZSBzcGVjaWZpZWQgYXJndW1lbnRzLgorCisgICAgICAgIFJhaXNlcyBhbiBBc3NlcnRpb25FcnJvciBpZiB0aGUgYXJncyBhbmQga2V5d29yZCBhcmdzIHBhc3NlZCBpbiBhcmUKKyAgICAgICAgZGlmZmVyZW50IHRvIHRoZSBsYXN0IGNhbGwgdG8gdGhlIG1vY2suIiIiCisgICAgICAgIHNlbGYgPSBfbW9ja19zZWxmCisgICAgICAgIGlmIHNlbGYuY2FsbF9hcmdzIGlzIE5vbmU6CisgICAgICAgICAgICBleHBlY3RlZCA9IHNlbGYuX2Zvcm1hdF9tb2NrX2NhbGxfc2lnbmF0dXJlKGFyZ3MsIGt3YXJncykKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCdFeHBlY3RlZCBjYWxsOiAlc1xuTm90IGNhbGxlZCcgJSAoZXhwZWN0ZWQsKSkKKworICAgICAgICBpZiBzZWxmLmNhbGxfYXJncyAhPSAoYXJncywga3dhcmdzKToKKyAgICAgICAgICAgIG1zZyA9IHNlbGYuX2Zvcm1hdF9tb2NrX2ZhaWx1cmVfbWVzc2FnZShhcmdzLCBrd2FyZ3MpCisgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcihtc2cpCisKKworICAgIGRlZiBhc3NlcnRfY2FsbGVkX29uY2Vfd2l0aChfbW9ja19zZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiJhc3NlcnQgdGhhdCB0aGUgbW9jayB3YXMgY2FsbGVkIGV4YWN0bHkgb25jZSBhbmQgd2l0aCB0aGUgc3BlY2lmaWVkCisgICAgICAgIGFyZ3VtZW50cy4iIiIKKyAgICAgICAgc2VsZiA9IF9tb2NrX3NlbGYKKyAgICAgICAgaWYgbm90IHNlbGYuY2FsbF9jb3VudCA9PSAxOgorICAgICAgICAgICAgbXNnID0gKCJFeHBlY3RlZCB0byBiZSBjYWxsZWQgb25jZS4gQ2FsbGVkICVzIHRpbWVzLiIgJQorICAgICAgICAgICAgICAgICAgIHNlbGYuY2FsbF9jb3VudCkKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKG1zZykKKyAgICAgICAgcmV0dXJuIHNlbGYuYXNzZXJ0X2NhbGxlZF93aXRoKCphcmdzLCAqKmt3YXJncykKKworCisgICAgZGVmIGFzc2VydF9oYXNfY2FsbHMoc2VsZiwgY2FsbHMsIGFueV9vcmRlcj1GYWxzZSk6CisgICAgICAgICIiImFzc2VydCB0aGUgbW9jayBoYXMgYmVlbiBjYWxsZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGNhbGxzLgorICAgICAgICBUaGUgYG1vY2tfY2FsbHNgIGxpc3QgaXMgY2hlY2tlZCBmb3IgdGhlIGNhbGxzLgorCisgICAgICAgIElmIGBhbnlfb3JkZXJgIGlzIEZhbHNlICh0aGUgZGVmYXVsdCkgdGhlbiB0aGUgY2FsbHMgbXVzdCBiZQorICAgICAgICBzZXF1ZW50aWFsLiBUaGVyZSBjYW4gYmUgZXh0cmEgY2FsbHMgYmVmb3JlIG9yIGFmdGVyIHRoZQorICAgICAgICBzcGVjaWZpZWQgY2FsbHMuCisKKyAgICAgICAgSWYgYGFueV9vcmRlcmAgaXMgVHJ1ZSB0aGVuIHRoZSBjYWxscyBjYW4gYmUgaW4gYW55IG9yZGVyLCBidXQKKyAgICAgICAgdGhleSBtdXN0IGFsbCBhcHBlYXIgaW4gYG1vY2tfY2FsbHNgLiIiIgorICAgICAgICBpZiBub3QgYW55X29yZGVyOgorICAgICAgICAgICAgaWYgY2FsbHMgbm90IGluIHNlbGYubW9ja19jYWxsczoKKyAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigKKyAgICAgICAgICAgICAgICAgICAgJ0NhbGxzIG5vdCBmb3VuZC5cbkV4cGVjdGVkOiAlclxuJworICAgICAgICAgICAgICAgICAgICAnQWN0dWFsOiAlcicgJSAoY2FsbHMsIHNlbGYubW9ja19jYWxscykKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBhbGxfY2FsbHMgPSBsaXN0KHNlbGYubW9ja19jYWxscykKKworICAgICAgICBub3RfZm91bmQgPSBbXQorICAgICAgICBmb3Iga2FsbCBpbiBjYWxsczoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBhbGxfY2FsbHMucmVtb3ZlKGthbGwpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBub3RfZm91bmQuYXBwZW5kKGthbGwpCisgICAgICAgIGlmIG5vdF9mb3VuZDoKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKAorICAgICAgICAgICAgICAgICclciBub3QgYWxsIGZvdW5kIGluIGNhbGwgbGlzdCcgJSAodHVwbGUobm90X2ZvdW5kKSwpCisgICAgICAgICAgICApCisKKworICAgIGRlZiBhc3NlcnRfYW55X2NhbGwoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIiIiYXNzZXJ0IHRoZSBtb2NrIGhhcyBiZWVuIGNhbGxlZCB3aXRoIHRoZSBzcGVjaWZpZWQgYXJndW1lbnRzLgorCisgICAgICAgIFRoZSBhc3NlcnQgcGFzc2VzIGlmIHRoZSBtb2NrIGhhcyAqZXZlciogYmVlbiBjYWxsZWQsIHVubGlrZQorICAgICAgICBgYXNzZXJ0X2NhbGxlZF93aXRoYCBhbmQgYGFzc2VydF9jYWxsZWRfb25jZV93aXRoYCB0aGF0IG9ubHkgcGFzcyBpZgorICAgICAgICB0aGUgY2FsbCBpcyB0aGUgbW9zdCByZWNlbnQgb25lLiIiIgorICAgICAgICBrYWxsID0gY2FsbCgqYXJncywgKiprd2FyZ3MpCisgICAgICAgIGlmIGthbGwgbm90IGluIHNlbGYuY2FsbF9hcmdzX2xpc3Q6CisgICAgICAgICAgICBleHBlY3RlZF9zdHJpbmcgPSBzZWxmLl9mb3JtYXRfbW9ja19jYWxsX3NpZ25hdHVyZShhcmdzLCBrd2FyZ3MpCisgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigKKyAgICAgICAgICAgICAgICAnJXMgY2FsbCBub3QgZm91bmQnICUgZXhwZWN0ZWRfc3RyaW5nCisgICAgICAgICAgICApCisKKworICAgIGRlZiBfZ2V0X2NoaWxkX21vY2soc2VsZiwgKiprdyk6CisgICAgICAgICIiIkNyZWF0ZSB0aGUgY2hpbGQgbW9ja3MgZm9yIGF0dHJpYnV0ZXMgYW5kIHJldHVybiB2YWx1ZS4KKyAgICAgICAgQnkgZGVmYXVsdCBjaGlsZCBtb2NrcyB3aWxsIGJlIHRoZSBzYW1lIHR5cGUgYXMgdGhlIHBhcmVudC4KKyAgICAgICAgU3ViY2xhc3NlcyBvZiBNb2NrIG1heSB3YW50IHRvIG92ZXJyaWRlIHRoaXMgdG8gY3VzdG9taXplIHRoZSB3YXkKKyAgICAgICAgY2hpbGQgbW9ja3MgYXJlIG1hZGUuCisKKyAgICAgICAgRm9yIG5vbi1jYWxsYWJsZSBtb2NrcyB0aGUgY2FsbGFibGUgdmFyaWFudCB3aWxsIGJlIHVzZWQgKHJhdGhlciB0aGFuCisgICAgICAgIGFueSBjdXN0b20gc3ViY2xhc3MpLiIiIgorICAgICAgICBfdHlwZSA9IHR5cGUoc2VsZikKKyAgICAgICAgaWYgbm90IGlzc3ViY2xhc3MoX3R5cGUsIENhbGxhYmxlTWl4aW4pOgorICAgICAgICAgICAgaWYgaXNzdWJjbGFzcyhfdHlwZSwgTm9uQ2FsbGFibGVNYWdpY01vY2spOgorICAgICAgICAgICAgICAgIGtsYXNzID0gTWFnaWNNb2NrCisgICAgICAgICAgICBlbGlmIGlzc3ViY2xhc3MoX3R5cGUsIE5vbkNhbGxhYmxlTW9jaykgOgorICAgICAgICAgICAgICAgIGtsYXNzID0gTW9jaworICAgICAgICBlbHNlOgorICAgICAgICAgICAga2xhc3MgPSBfdHlwZS5fX21yb19fWzFdCisgICAgICAgIHJldHVybiBrbGFzcygqKmt3KQorCisKKworZGVmIF90cnlfaXRlcihvYmopOgorICAgIGlmIG9iaiBpcyBOb25lOgorICAgICAgICByZXR1cm4gb2JqCisgICAgaWYgX2lzX2V4Y2VwdGlvbihvYmopOgorICAgICAgICByZXR1cm4gb2JqCisgICAgaWYgX2NhbGxhYmxlKG9iaik6CisgICAgICAgIHJldHVybiBvYmoKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBpdGVyKG9iaikKKyAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAjIFhYWFggYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKyAgICAgICAgIyBidXQgdGhpcyB3aWxsIGJsb3cgdXAgb24gZmlyc3QgY2FsbCAtIHNvIG1heWJlIHdlIHNob3VsZCBmYWlsIGVhcmx5PworICAgICAgICByZXR1cm4gb2JqCisKKworCitjbGFzcyBDYWxsYWJsZU1peGluKEJhc2UpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNwZWM9Tm9uZSwgc2lkZV9lZmZlY3Q9Tm9uZSwgcmV0dXJuX3ZhbHVlPURFRkFVTFQsCisgICAgICAgICAgICAgICAgIHdyYXBzPU5vbmUsIG5hbWU9Tm9uZSwgc3BlY19zZXQ9Tm9uZSwgcGFyZW50PU5vbmUsCisgICAgICAgICAgICAgICAgIF9zcGVjX3N0YXRlPU5vbmUsIF9uZXdfbmFtZT0nJywgX25ld19wYXJlbnQ9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLl9fZGljdF9fWydfbW9ja19yZXR1cm5fdmFsdWUnXSA9IHJldHVybl92YWx1ZQorCisgICAgICAgIF9zYWZlX3N1cGVyKENhbGxhYmxlTWl4aW4sIHNlbGYpLl9faW5pdF9fKAorICAgICAgICAgICAgc3BlYywgd3JhcHMsIG5hbWUsIHNwZWNfc2V0LCBwYXJlbnQsCisgICAgICAgICAgICBfc3BlY19zdGF0ZSwgX25ld19uYW1lLCBfbmV3X3BhcmVudCwgKiprd2FyZ3MKKyAgICAgICAgKQorCisgICAgICAgIHNlbGYuc2lkZV9lZmZlY3QgPSBzaWRlX2VmZmVjdAorCisKKyAgICBkZWYgX21vY2tfY2hlY2tfc2lnKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICMgc3R1YiBtZXRob2QgdGhhdCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBvbmUgd2l0aCBhIHNwZWNpZmljIHNpZ25hdHVyZQorICAgICAgICBwYXNzCisKKworICAgIGRlZiBfX2NhbGxfXyhfbW9ja19zZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAjIGNhbid0IHVzZSBzZWxmIGluLWNhc2UgYSBmdW5jdGlvbiAvIG1ldGhvZCB3ZSBhcmUgbW9ja2luZyB1c2VzIHNlbGYKKyAgICAgICAgIyBpbiB0aGUgc2lnbmF0dXJlCisgICAgICAgIF9tb2NrX3NlbGYuX21vY2tfY2hlY2tfc2lnKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgcmV0dXJuIF9tb2NrX3NlbGYuX21vY2tfY2FsbCgqYXJncywgKiprd2FyZ3MpCisKKworICAgIGRlZiBfbW9ja19jYWxsKF9tb2NrX3NlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYgPSBfbW9ja19zZWxmCisgICAgICAgIHNlbGYuY2FsbGVkID0gVHJ1ZQorICAgICAgICBzZWxmLmNhbGxfY291bnQgKz0gMQorICAgICAgICBzZWxmLmNhbGxfYXJncyA9IF9DYWxsKChhcmdzLCBrd2FyZ3MpLCB0d289VHJ1ZSkKKyAgICAgICAgc2VsZi5jYWxsX2FyZ3NfbGlzdC5hcHBlbmQoX0NhbGwoKGFyZ3MsIGt3YXJncyksIHR3bz1UcnVlKSkKKworICAgICAgICBfbmV3X25hbWUgPSBzZWxmLl9tb2NrX25ld19uYW1lCisgICAgICAgIF9uZXdfcGFyZW50ID0gc2VsZi5fbW9ja19uZXdfcGFyZW50CisgICAgICAgIHNlbGYubW9ja19jYWxscy5hcHBlbmQoX0NhbGwoKCcnLCBhcmdzLCBrd2FyZ3MpKSkKKworICAgICAgICBzZWVuID0gc2V0KCkKKyAgICAgICAgc2tpcF9uZXh0X2RvdCA9IF9uZXdfbmFtZSA9PSAnKCknCisgICAgICAgIGRvX21ldGhvZF9jYWxscyA9IHNlbGYuX21vY2tfcGFyZW50IGlzIG5vdCBOb25lCisgICAgICAgIG5hbWUgPSBzZWxmLl9tb2NrX25hbWUKKyAgICAgICAgd2hpbGUgX25ld19wYXJlbnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICB0aGlzX21vY2tfY2FsbCA9IF9DYWxsKChfbmV3X25hbWUsIGFyZ3MsIGt3YXJncykpCisgICAgICAgICAgICBpZiBfbmV3X3BhcmVudC5fbW9ja19uZXdfbmFtZToKKyAgICAgICAgICAgICAgICBkb3QgPSAnLicKKyAgICAgICAgICAgICAgICBpZiBza2lwX25leHRfZG90OgorICAgICAgICAgICAgICAgICAgICBkb3QgPSAnJworCisgICAgICAgICAgICAgICAgc2tpcF9uZXh0X2RvdCA9IEZhbHNlCisgICAgICAgICAgICAgICAgaWYgX25ld19wYXJlbnQuX21vY2tfbmV3X25hbWUgPT0gJygpJzoKKyAgICAgICAgICAgICAgICAgICAgc2tpcF9uZXh0X2RvdCA9IFRydWUKKworICAgICAgICAgICAgICAgIF9uZXdfbmFtZSA9IF9uZXdfcGFyZW50Ll9tb2NrX25ld19uYW1lICsgZG90ICsgX25ld19uYW1lCisKKyAgICAgICAgICAgIGlmIGRvX21ldGhvZF9jYWxsczoKKyAgICAgICAgICAgICAgICBpZiBfbmV3X25hbWUgPT0gbmFtZToKKyAgICAgICAgICAgICAgICAgICAgdGhpc19tZXRob2RfY2FsbCA9IHRoaXNfbW9ja19jYWxsCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgdGhpc19tZXRob2RfY2FsbCA9IF9DYWxsKChuYW1lLCBhcmdzLCBrd2FyZ3MpKQorICAgICAgICAgICAgICAgIF9uZXdfcGFyZW50Lm1ldGhvZF9jYWxscy5hcHBlbmQodGhpc19tZXRob2RfY2FsbCkKKworICAgICAgICAgICAgICAgIGRvX21ldGhvZF9jYWxscyA9IF9uZXdfcGFyZW50Ll9tb2NrX3BhcmVudCBpcyBub3QgTm9uZQorICAgICAgICAgICAgICAgIGlmIGRvX21ldGhvZF9jYWxsczoKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IF9uZXdfcGFyZW50Ll9tb2NrX25hbWUgKyAnLicgKyBuYW1lCisKKyAgICAgICAgICAgIF9uZXdfcGFyZW50Lm1vY2tfY2FsbHMuYXBwZW5kKHRoaXNfbW9ja19jYWxsKQorICAgICAgICAgICAgX25ld19wYXJlbnQgPSBfbmV3X3BhcmVudC5fbW9ja19uZXdfcGFyZW50CisKKyAgICAgICAgICAgICMgdXNlIGlkcyBoZXJlIHNvIGFzIG5vdCB0byBjYWxsIF9faGFzaF9fIG9uIHRoZSBtb2NrcworICAgICAgICAgICAgX25ld19wYXJlbnRfaWQgPSBpZChfbmV3X3BhcmVudCkKKyAgICAgICAgICAgIGlmIF9uZXdfcGFyZW50X2lkIGluIHNlZW46CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIHNlZW4uYWRkKF9uZXdfcGFyZW50X2lkKQorCisgICAgICAgIHJldF92YWwgPSBERUZBVUxUCisgICAgICAgIGVmZmVjdCA9IHNlbGYuc2lkZV9lZmZlY3QKKyAgICAgICAgaWYgZWZmZWN0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgX2lzX2V4Y2VwdGlvbihlZmZlY3QpOgorICAgICAgICAgICAgICAgIHJhaXNlIGVmZmVjdAorCisgICAgICAgICAgICBpZiBub3QgX2NhbGxhYmxlKGVmZmVjdCk6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gbmV4dChlZmZlY3QpCisgICAgICAgICAgICAgICAgaWYgX2lzX2V4Y2VwdGlvbihyZXN1bHQpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSByZXN1bHQKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisKKyAgICAgICAgICAgIHJldF92YWwgPSBlZmZlY3QoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICAgICAgaWYgcmV0X3ZhbCBpcyBERUZBVUxUOgorICAgICAgICAgICAgICAgIHJldF92YWwgPSBzZWxmLnJldHVybl92YWx1ZQorCisgICAgICAgIGlmIChzZWxmLl9tb2NrX3dyYXBzIGlzIG5vdCBOb25lIGFuZAorICAgICAgICAgICAgIHNlbGYuX21vY2tfcmV0dXJuX3ZhbHVlIGlzIERFRkFVTFQpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX21vY2tfd3JhcHMoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBpZiByZXRfdmFsIGlzIERFRkFVTFQ6CisgICAgICAgICAgICByZXRfdmFsID0gc2VsZi5yZXR1cm5fdmFsdWUKKyAgICAgICAgcmV0dXJuIHJldF92YWwKKworCisKK2NsYXNzIE1vY2soQ2FsbGFibGVNaXhpbiwgTm9uQ2FsbGFibGVNb2NrKToKKyAgICAiIiIKKyAgICBDcmVhdGUgYSBuZXcgYE1vY2tgIG9iamVjdC4gYE1vY2tgIHRha2VzIHNldmVyYWwgb3B0aW9uYWwgYXJndW1lbnRzCisgICAgdGhhdCBzcGVjaWZ5IHRoZSBiZWhhdmlvdXIgb2YgdGhlIE1vY2sgb2JqZWN0OgorCisgICAgKiBgc3BlY2A6IFRoaXMgY2FuIGJlIGVpdGhlciBhIGxpc3Qgb2Ygc3RyaW5ncyBvciBhbiBleGlzdGluZyBvYmplY3QgKGEKKyAgICAgIGNsYXNzIG9yIGluc3RhbmNlKSB0aGF0IGFjdHMgYXMgdGhlIHNwZWNpZmljYXRpb24gZm9yIHRoZSBtb2NrIG9iamVjdC4gSWYKKyAgICAgIHlvdSBwYXNzIGluIGFuIG9iamVjdCB0aGVuIGEgbGlzdCBvZiBzdHJpbmdzIGlzIGZvcm1lZCBieSBjYWxsaW5nIGRpciBvbgorICAgICAgdGhlIG9iamVjdCAoZXhjbHVkaW5nIHVuc3VwcG9ydGVkIG1hZ2ljIGF0dHJpYnV0ZXMgYW5kIG1ldGhvZHMpLiBBY2Nlc3NpbmcKKyAgICAgIGFueSBhdHRyaWJ1dGUgbm90IGluIHRoaXMgbGlzdCB3aWxsIHJhaXNlIGFuIGBBdHRyaWJ1dGVFcnJvcmAuCisKKyAgICAgIElmIGBzcGVjYCBpcyBhbiBvYmplY3QgKHJhdGhlciB0aGFuIGEgbGlzdCBvZiBzdHJpbmdzKSB0aGVuCisgICAgICBgbW9jay5fX2NsYXNzX19gIHJldHVybnMgdGhlIGNsYXNzIG9mIHRoZSBzcGVjIG9iamVjdC4gVGhpcyBhbGxvd3MgbW9ja3MKKyAgICAgIHRvIHBhc3MgYGlzaW5zdGFuY2VgIHRlc3RzLgorCisgICAgKiBgc3BlY19zZXRgOiBBIHN0cmljdGVyIHZhcmlhbnQgb2YgYHNwZWNgLiBJZiB1c2VkLCBhdHRlbXB0aW5nIHRvICpzZXQqCisgICAgICBvciBnZXQgYW4gYXR0cmlidXRlIG9uIHRoZSBtb2NrIHRoYXQgaXNuJ3Qgb24gdGhlIG9iamVjdCBwYXNzZWQgYXMKKyAgICAgIGBzcGVjX3NldGAgd2lsbCByYWlzZSBhbiBgQXR0cmlidXRlRXJyb3JgLgorCisgICAgKiBgc2lkZV9lZmZlY3RgOiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuZXZlciB0aGUgTW9jayBpcyBjYWxsZWQuIFNlZQorICAgICAgdGhlIGBzaWRlX2VmZmVjdGAgYXR0cmlidXRlLiBVc2VmdWwgZm9yIHJhaXNpbmcgZXhjZXB0aW9ucyBvcgorICAgICAgZHluYW1pY2FsbHkgY2hhbmdpbmcgcmV0dXJuIHZhbHVlcy4gVGhlIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHRoZSBzYW1lCisgICAgICBhcmd1bWVudHMgYXMgdGhlIG1vY2ssIGFuZCB1bmxlc3MgaXQgcmV0dXJucyBgREVGQVVMVGAsIHRoZSByZXR1cm4KKyAgICAgIHZhbHVlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBhcyB0aGUgcmV0dXJuIHZhbHVlLgorCisgICAgICBJZiBgc2lkZV9lZmZlY3RgIGlzIGFuIGl0ZXJhYmxlIHRoZW4gZWFjaCBjYWxsIHRvIHRoZSBtb2NrIHdpbGwgcmV0dXJuCisgICAgICB0aGUgbmV4dCB2YWx1ZSBmcm9tIHRoZSBpdGVyYWJsZS4gSWYgYW55IG9mIHRoZSBtZW1iZXJzIG9mIHRoZSBpdGVyYWJsZQorICAgICAgYXJlIGV4Y2VwdGlvbnMgdGhleSB3aWxsIGJlIHJhaXNlZCBpbnN0ZWFkIG9mIHJldHVybmVkLgorCisgICAgICBJZiBgc2lkZV9lZmZlY3RgIGlzIGFuIGl0ZXJhYmxlIHRoZW4gZWFjaCBjYWxsIHRvIHRoZSBtb2NrIHdpbGwgcmV0dXJuCisgICAgICB0aGUgbmV4dCB2YWx1ZSBmcm9tIHRoZSBpdGVyYWJsZS4KKworICAgICogYHJldHVybl92YWx1ZWA6IFRoZSB2YWx1ZSByZXR1cm5lZCB3aGVuIHRoZSBtb2NrIGlzIGNhbGxlZC4gQnkgZGVmYXVsdAorICAgICAgdGhpcyBpcyBhIG5ldyBNb2NrIChjcmVhdGVkIG9uIGZpcnN0IGFjY2VzcykuIFNlZSB0aGUKKyAgICAgIGByZXR1cm5fdmFsdWVgIGF0dHJpYnV0ZS4KKworICAgICogYHdyYXBzYDogSXRlbSBmb3IgdGhlIG1vY2sgb2JqZWN0IHRvIHdyYXAuIElmIGB3cmFwc2AgaXMgbm90IE5vbmUgdGhlbgorICAgICAgY2FsbGluZyB0aGUgTW9jayB3aWxsIHBhc3MgdGhlIGNhbGwgdGhyb3VnaCB0byB0aGUgd3JhcHBlZCBvYmplY3QKKyAgICAgIChyZXR1cm5pbmcgdGhlIHJlYWwgcmVzdWx0KS4gQXR0cmlidXRlIGFjY2VzcyBvbiB0aGUgbW9jayB3aWxsIHJldHVybiBhCisgICAgICBNb2NrIG9iamVjdCB0aGF0IHdyYXBzIHRoZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZSBvZiB0aGUgd3JhcHBlZCBvYmplY3QKKyAgICAgIChzbyBhdHRlbXB0aW5nIHRvIGFjY2VzcyBhbiBhdHRyaWJ1dGUgdGhhdCBkb2Vzbid0IGV4aXN0IHdpbGwgcmFpc2UgYW4KKyAgICAgIGBBdHRyaWJ1dGVFcnJvcmApLgorCisgICAgICBJZiB0aGUgbW9jayBoYXMgYW4gZXhwbGljaXQgYHJldHVybl92YWx1ZWAgc2V0IHRoZW4gY2FsbHMgYXJlIG5vdCBwYXNzZWQKKyAgICAgIHRvIHRoZSB3cmFwcGVkIG9iamVjdCBhbmQgdGhlIGByZXR1cm5fdmFsdWVgIGlzIHJldHVybmVkIGluc3RlYWQuCisKKyAgICAqIGBuYW1lYDogSWYgdGhlIG1vY2sgaGFzIGEgbmFtZSB0aGVuIGl0IHdpbGwgYmUgdXNlZCBpbiB0aGUgcmVwciBvZiB0aGUKKyAgICAgIG1vY2suIFRoaXMgY2FuIGJlIHVzZWZ1bCBmb3IgZGVidWdnaW5nLiBUaGUgbmFtZSBpcyBwcm9wYWdhdGVkIHRvIGNoaWxkCisgICAgICBtb2Nrcy4KKworICAgIE1vY2tzIGNhbiBhbHNvIGJlIGNhbGxlZCB3aXRoIGFyYml0cmFyeSBrZXl3b3JkIGFyZ3VtZW50cy4gVGhlc2Ugd2lsbCBiZQorICAgIHVzZWQgdG8gc2V0IGF0dHJpYnV0ZXMgb24gdGhlIG1vY2sgYWZ0ZXIgaXQgaXMgY3JlYXRlZC4KKyAgICAiIiIKKworCisKK2RlZiBfZG90X2xvb2t1cCh0aGluZywgY29tcCwgaW1wb3J0X3BhdGgpOgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGdldGF0dHIodGhpbmcsIGNvbXApCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICBfX2ltcG9ydF9fKGltcG9ydF9wYXRoKQorICAgICAgICByZXR1cm4gZ2V0YXR0cih0aGluZywgY29tcCkKKworCitkZWYgX2ltcG9ydGVyKHRhcmdldCk6CisgICAgY29tcG9uZW50cyA9IHRhcmdldC5zcGxpdCgnLicpCisgICAgaW1wb3J0X3BhdGggPSBjb21wb25lbnRzLnBvcCgwKQorICAgIHRoaW5nID0gX19pbXBvcnRfXyhpbXBvcnRfcGF0aCkKKworICAgIGZvciBjb21wIGluIGNvbXBvbmVudHM6CisgICAgICAgIGltcG9ydF9wYXRoICs9ICIuJXMiICUgY29tcAorICAgICAgICB0aGluZyA9IF9kb3RfbG9va3VwKHRoaW5nLCBjb21wLCBpbXBvcnRfcGF0aCkKKyAgICByZXR1cm4gdGhpbmcKKworCitkZWYgX2lzX3N0YXJ0ZWQocGF0Y2hlcik6CisgICAgIyBYWFhYIGhvcnJpYmxlCisgICAgcmV0dXJuIGhhc2F0dHIocGF0Y2hlciwgJ2lzX2xvY2FsJykKKworCitjbGFzcyBfcGF0Y2gob2JqZWN0KToKKworICAgIGF0dHJpYnV0ZV9uYW1lID0gTm9uZQorICAgIF9hY3RpdmVfcGF0Y2hlcyA9IHNldCgpCisKKyAgICBkZWYgX19pbml0X18oCisgICAgICAgICAgICBzZWxmLCBnZXR0ZXIsIGF0dHJpYnV0ZSwgbmV3LCBzcGVjLCBjcmVhdGUsCisgICAgICAgICAgICBzcGVjX3NldCwgYXV0b3NwZWMsIG5ld19jYWxsYWJsZSwga3dhcmdzCisgICAgICAgICk6CisgICAgICAgIGlmIG5ld19jYWxsYWJsZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGlmIG5ldyBpcyBub3QgREVGQVVMVDoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiQ2Fubm90IHVzZSAnbmV3JyBhbmQgJ25ld19jYWxsYWJsZScgdG9nZXRoZXIiCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgaWYgYXV0b3NwZWMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCB1c2UgJ2F1dG9zcGVjJyBhbmQgJ25ld19jYWxsYWJsZScgdG9nZXRoZXIiCisgICAgICAgICAgICAgICAgKQorCisgICAgICAgIHNlbGYuZ2V0dGVyID0gZ2V0dGVyCisgICAgICAgIHNlbGYuYXR0cmlidXRlID0gYXR0cmlidXRlCisgICAgICAgIHNlbGYubmV3ID0gbmV3CisgICAgICAgIHNlbGYubmV3X2NhbGxhYmxlID0gbmV3X2NhbGxhYmxlCisgICAgICAgIHNlbGYuc3BlYyA9IHNwZWMKKyAgICAgICAgc2VsZi5jcmVhdGUgPSBjcmVhdGUKKyAgICAgICAgc2VsZi5oYXNfbG9jYWwgPSBGYWxzZQorICAgICAgICBzZWxmLnNwZWNfc2V0ID0gc3BlY19zZXQKKyAgICAgICAgc2VsZi5hdXRvc3BlYyA9IGF1dG9zcGVjCisgICAgICAgIHNlbGYua3dhcmdzID0ga3dhcmdzCisgICAgICAgIHNlbGYuYWRkaXRpb25hbF9wYXRjaGVycyA9IFtdCisKKworICAgIGRlZiBjb3B5KHNlbGYpOgorICAgICAgICBwYXRjaGVyID0gX3BhdGNoKAorICAgICAgICAgICAgc2VsZi5nZXR0ZXIsIHNlbGYuYXR0cmlidXRlLCBzZWxmLm5ldywgc2VsZi5zcGVjLAorICAgICAgICAgICAgc2VsZi5jcmVhdGUsIHNlbGYuc3BlY19zZXQsCisgICAgICAgICAgICBzZWxmLmF1dG9zcGVjLCBzZWxmLm5ld19jYWxsYWJsZSwgc2VsZi5rd2FyZ3MKKyAgICAgICAgKQorICAgICAgICBwYXRjaGVyLmF0dHJpYnV0ZV9uYW1lID0gc2VsZi5hdHRyaWJ1dGVfbmFtZQorICAgICAgICBwYXRjaGVyLmFkZGl0aW9uYWxfcGF0Y2hlcnMgPSBbCisgICAgICAgICAgICBwLmNvcHkoKSBmb3IgcCBpbiBzZWxmLmFkZGl0aW9uYWxfcGF0Y2hlcnMKKyAgICAgICAgXQorICAgICAgICByZXR1cm4gcGF0Y2hlcgorCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgZnVuYyk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UoZnVuYywgdHlwZSk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5kZWNvcmF0ZV9jbGFzcyhmdW5jKQorICAgICAgICByZXR1cm4gc2VsZi5kZWNvcmF0ZV9jYWxsYWJsZShmdW5jKQorCisKKyAgICBkZWYgZGVjb3JhdGVfY2xhc3Moc2VsZiwga2xhc3MpOgorICAgICAgICBmb3IgYXR0ciBpbiBkaXIoa2xhc3MpOgorICAgICAgICAgICAgaWYgbm90IGF0dHIuc3RhcnRzd2l0aChwYXRjaC5URVNUX1BSRUZJWCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgYXR0cl92YWx1ZSA9IGdldGF0dHIoa2xhc3MsIGF0dHIpCisgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihhdHRyX3ZhbHVlLCAiX19jYWxsX18iKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBwYXRjaGVyID0gc2VsZi5jb3B5KCkKKyAgICAgICAgICAgIHNldGF0dHIoa2xhc3MsIGF0dHIsIHBhdGNoZXIoYXR0cl92YWx1ZSkpCisgICAgICAgIHJldHVybiBrbGFzcworCisKKyAgICBkZWYgZGVjb3JhdGVfY2FsbGFibGUoc2VsZiwgZnVuYyk6CisgICAgICAgIGlmIGhhc2F0dHIoZnVuYywgJ3BhdGNoaW5ncycpOgorICAgICAgICAgICAgZnVuYy5wYXRjaGluZ3MuYXBwZW5kKHNlbGYpCisgICAgICAgICAgICByZXR1cm4gZnVuYworCisgICAgICAgIEB3cmFwcyhmdW5jKQorICAgICAgICBkZWYgcGF0Y2hlZCgqYXJncywgKiprZXl3YXJncyk6CisgICAgICAgICAgICBleHRyYV9hcmdzID0gW10KKyAgICAgICAgICAgIGVudGVyZWRfcGF0Y2hlcnMgPSBbXQorCisgICAgICAgICAgICBleGNfaW5mbyA9IHR1cGxlKCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBmb3IgcGF0Y2hpbmcgaW4gcGF0Y2hlZC5wYXRjaGluZ3M6CisgICAgICAgICAgICAgICAgICAgIGFyZyA9IHBhdGNoaW5nLl9fZW50ZXJfXygpCisgICAgICAgICAgICAgICAgICAgIGVudGVyZWRfcGF0Y2hlcnMuYXBwZW5kKHBhdGNoaW5nKQorICAgICAgICAgICAgICAgICAgICBpZiBwYXRjaGluZy5hdHRyaWJ1dGVfbmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleXdhcmdzLnVwZGF0ZShhcmcpCisgICAgICAgICAgICAgICAgICAgIGVsaWYgcGF0Y2hpbmcubmV3IGlzIERFRkFVTFQ6CisgICAgICAgICAgICAgICAgICAgICAgICBleHRyYV9hcmdzLmFwcGVuZChhcmcpCisKKyAgICAgICAgICAgICAgICBhcmdzICs9IHR1cGxlKGV4dHJhX2FyZ3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmMoKmFyZ3MsICoqa2V5d2FyZ3MpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgaWYgKHBhdGNoaW5nIG5vdCBpbiBlbnRlcmVkX3BhdGNoZXJzIGFuZAorICAgICAgICAgICAgICAgICAgICBfaXNfc3RhcnRlZChwYXRjaGluZykpOgorICAgICAgICAgICAgICAgICAgICAjIHRoZSBwYXRjaGVyIG1heSBoYXZlIGJlZW4gc3RhcnRlZCwgYnV0IGFuIGV4Y2VwdGlvbgorICAgICAgICAgICAgICAgICAgICAjIHJhaXNlZCB3aGlsc3QgZW50ZXJpbmcgb25lIG9mIGl0cyBhZGRpdGlvbmFsX3BhdGNoZXJzCisgICAgICAgICAgICAgICAgICAgIGVudGVyZWRfcGF0Y2hlcnMuYXBwZW5kKHBhdGNoaW5nKQorICAgICAgICAgICAgICAgICMgUGFzcyB0aGUgZXhjZXB0aW9uIHRvIF9fZXhpdF9fCisgICAgICAgICAgICAgICAgZXhjX2luZm8gPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgICAgICMgcmUtcmFpc2UgdGhlIGV4Y2VwdGlvbgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIGZvciBwYXRjaGluZyBpbiByZXZlcnNlZChlbnRlcmVkX3BhdGNoZXJzKToKKyAgICAgICAgICAgICAgICAgICAgcGF0Y2hpbmcuX19leGl0X18oKmV4Y19pbmZvKQorCisgICAgICAgIHBhdGNoZWQucGF0Y2hpbmdzID0gW3NlbGZdCisgICAgICAgIHJldHVybiBwYXRjaGVkCisKKworICAgIGRlZiBnZXRfb3JpZ2luYWwoc2VsZik6CisgICAgICAgIHRhcmdldCA9IHNlbGYuZ2V0dGVyKCkKKyAgICAgICAgbmFtZSA9IHNlbGYuYXR0cmlidXRlCisKKyAgICAgICAgb3JpZ2luYWwgPSBERUZBVUxUCisgICAgICAgIGxvY2FsID0gRmFsc2UKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBvcmlnaW5hbCA9IHRhcmdldC5fX2RpY3RfX1tuYW1lXQorICAgICAgICBleGNlcHQgKEF0dHJpYnV0ZUVycm9yLCBLZXlFcnJvcik6CisgICAgICAgICAgICBvcmlnaW5hbCA9IGdldGF0dHIodGFyZ2V0LCBuYW1lLCBERUZBVUxUKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9jYWwgPSBUcnVlCisKKyAgICAgICAgaWYgbm90IHNlbGYuY3JlYXRlIGFuZCBvcmlnaW5hbCBpcyBERUZBVUxUOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoCisgICAgICAgICAgICAgICAgIiVzIGRvZXMgbm90IGhhdmUgdGhlIGF0dHJpYnV0ZSAlciIgJSAodGFyZ2V0LCBuYW1lKQorICAgICAgICAgICAgKQorICAgICAgICByZXR1cm4gb3JpZ2luYWwsIGxvY2FsCisKKworICAgIGRlZiBfX2VudGVyX18oc2VsZik6CisgICAgICAgICIiIlBlcmZvcm0gdGhlIHBhdGNoLiIiIgorICAgICAgICBuZXcsIHNwZWMsIHNwZWNfc2V0ID0gc2VsZi5uZXcsIHNlbGYuc3BlYywgc2VsZi5zcGVjX3NldAorICAgICAgICBhdXRvc3BlYywga3dhcmdzID0gc2VsZi5hdXRvc3BlYywgc2VsZi5rd2FyZ3MKKyAgICAgICAgbmV3X2NhbGxhYmxlID0gc2VsZi5uZXdfY2FsbGFibGUKKyAgICAgICAgc2VsZi50YXJnZXQgPSBzZWxmLmdldHRlcigpCisKKyAgICAgICAgIyBub3JtYWxpc2UgRmFsc2UgdG8gTm9uZQorICAgICAgICBpZiBzcGVjIGlzIEZhbHNlOgorICAgICAgICAgICAgc3BlYyA9IE5vbmUKKyAgICAgICAgaWYgc3BlY19zZXQgaXMgRmFsc2U6CisgICAgICAgICAgICBzcGVjX3NldCA9IE5vbmUKKyAgICAgICAgaWYgYXV0b3NwZWMgaXMgRmFsc2U6CisgICAgICAgICAgICBhdXRvc3BlYyA9IE5vbmUKKworICAgICAgICBpZiBzcGVjIGlzIG5vdCBOb25lIGFuZCBhdXRvc3BlYyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiQ2FuJ3Qgc3BlY2lmeSBzcGVjIGFuZCBhdXRvc3BlYyIpCisgICAgICAgIGlmICgoc3BlYyBpcyBub3QgTm9uZSBvciBhdXRvc3BlYyBpcyBub3QgTm9uZSkgYW5kCisgICAgICAgICAgICBzcGVjX3NldCBub3QgaW4gKFRydWUsIE5vbmUpKToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiQ2FuJ3QgcHJvdmlkZSBleHBsaWNpdCBzcGVjX3NldCAqYW5kKiBzcGVjIG9yIGF1dG9zcGVjIikKKworICAgICAgICBvcmlnaW5hbCwgbG9jYWwgPSBzZWxmLmdldF9vcmlnaW5hbCgpCisKKyAgICAgICAgaWYgbmV3IGlzIERFRkFVTFQgYW5kIGF1dG9zcGVjIGlzIE5vbmU6CisgICAgICAgICAgICBpbmhlcml0ID0gRmFsc2UKKyAgICAgICAgICAgIGlmIHNwZWMgaXMgVHJ1ZToKKyAgICAgICAgICAgICAgICAjIHNldCBzcGVjIHRvIHRoZSBvYmplY3Qgd2UgYXJlIHJlcGxhY2luZworICAgICAgICAgICAgICAgIHNwZWMgPSBvcmlnaW5hbAorICAgICAgICAgICAgICAgIGlmIHNwZWNfc2V0IGlzIFRydWU6CisgICAgICAgICAgICAgICAgICAgIHNwZWNfc2V0ID0gb3JpZ2luYWwKKyAgICAgICAgICAgICAgICAgICAgc3BlYyA9IE5vbmUKKyAgICAgICAgICAgIGVsaWYgc3BlYyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBpZiBzcGVjX3NldCBpcyBUcnVlOgorICAgICAgICAgICAgICAgICAgICBzcGVjX3NldCA9IHNwZWMKKyAgICAgICAgICAgICAgICAgICAgc3BlYyA9IE5vbmUKKyAgICAgICAgICAgIGVsaWYgc3BlY19zZXQgaXMgVHJ1ZToKKyAgICAgICAgICAgICAgICBzcGVjX3NldCA9IG9yaWdpbmFsCisKKyAgICAgICAgICAgIGlmIHNwZWMgaXMgbm90IE5vbmUgb3Igc3BlY19zZXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgb3JpZ2luYWwgaXMgREVGQVVMVDoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJDYW4ndCB1c2UgJ3NwZWMnIHdpdGggY3JlYXRlPVRydWUiKQorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob3JpZ2luYWwsIHR5cGUpOgorICAgICAgICAgICAgICAgICAgICAjIElmIHdlJ3JlIHBhdGNoaW5nIG91dCBhIGNsYXNzIGFuZCB0aGVyZSBpcyBhIHNwZWMKKyAgICAgICAgICAgICAgICAgICAgaW5oZXJpdCA9IFRydWUKKworICAgICAgICAgICAgS2xhc3MgPSBNYWdpY01vY2sKKyAgICAgICAgICAgIF9rd2FyZ3MgPSB7fQorICAgICAgICAgICAgaWYgbmV3X2NhbGxhYmxlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIEtsYXNzID0gbmV3X2NhbGxhYmxlCisgICAgICAgICAgICBlbGlmIHNwZWMgaXMgbm90IE5vbmUgb3Igc3BlY19zZXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgdGhpc19zcGVjID0gc3BlYworICAgICAgICAgICAgICAgIGlmIHNwZWNfc2V0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICB0aGlzX3NwZWMgPSBzcGVjX3NldAorICAgICAgICAgICAgICAgIGlmIF9pc19saXN0KHRoaXNfc3BlYyk6CisgICAgICAgICAgICAgICAgICAgIG5vdF9jYWxsYWJsZSA9ICdfX2NhbGxfXycgbm90IGluIHRoaXNfc3BlYworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG5vdF9jYWxsYWJsZSA9IG5vdCBjYWxsYWJsZSh0aGlzX3NwZWMpCisgICAgICAgICAgICAgICAgaWYgbm90X2NhbGxhYmxlOgorICAgICAgICAgICAgICAgICAgICBLbGFzcyA9IE5vbkNhbGxhYmxlTWFnaWNNb2NrCisKKyAgICAgICAgICAgIGlmIHNwZWMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgX2t3YXJnc1snc3BlYyddID0gc3BlYworICAgICAgICAgICAgaWYgc3BlY19zZXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgX2t3YXJnc1snc3BlY19zZXQnXSA9IHNwZWNfc2V0CisKKyAgICAgICAgICAgICMgYWRkIGEgbmFtZSB0byBtb2NrcworICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UoS2xhc3MsIHR5cGUpIGFuZAorICAgICAgICAgICAgICAgIGlzc3ViY2xhc3MoS2xhc3MsIE5vbkNhbGxhYmxlTW9jaykgYW5kIHNlbGYuYXR0cmlidXRlKToKKyAgICAgICAgICAgICAgICBfa3dhcmdzWyduYW1lJ10gPSBzZWxmLmF0dHJpYnV0ZQorCisgICAgICAgICAgICBfa3dhcmdzLnVwZGF0ZShrd2FyZ3MpCisgICAgICAgICAgICBuZXcgPSBLbGFzcygqKl9rd2FyZ3MpCisKKyAgICAgICAgICAgIGlmIGluaGVyaXQgYW5kIF9pc19pbnN0YW5jZV9tb2NrKG5ldyk6CisgICAgICAgICAgICAgICAgIyB3ZSBjYW4gb25seSB0ZWxsIGlmIHRoZSBpbnN0YW5jZSBzaG91bGQgYmUgY2FsbGFibGUgaWYgdGhlCisgICAgICAgICAgICAgICAgIyBzcGVjIGlzIG5vdCBhIGxpc3QKKyAgICAgICAgICAgICAgICB0aGlzX3NwZWMgPSBzcGVjCisgICAgICAgICAgICAgICAgaWYgc3BlY19zZXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHRoaXNfc3BlYyA9IHNwZWNfc2V0CisgICAgICAgICAgICAgICAgaWYgKG5vdCBfaXNfbGlzdCh0aGlzX3NwZWMpIGFuZCBub3QKKyAgICAgICAgICAgICAgICAgICAgX2luc3RhbmNlX2NhbGxhYmxlKHRoaXNfc3BlYykpOgorICAgICAgICAgICAgICAgICAgICBLbGFzcyA9IE5vbkNhbGxhYmxlTWFnaWNNb2NrCisKKyAgICAgICAgICAgICAgICBfa3dhcmdzLnBvcCgnbmFtZScpCisgICAgICAgICAgICAgICAgbmV3LnJldHVybl92YWx1ZSA9IEtsYXNzKF9uZXdfcGFyZW50PW5ldywgX25ld19uYW1lPScoKScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqX2t3YXJncykKKyAgICAgICAgZWxpZiBhdXRvc3BlYyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICMgc3BlYyBpcyBpZ25vcmVkLCBuZXcgKm11c3QqIGJlIGRlZmF1bHQsIHNwZWNfc2V0IGlzIHRyZWF0ZWQKKyAgICAgICAgICAgICMgYXMgYSBib29sZWFuLiBTaG91bGQgd2UgY2hlY2sgc3BlYyBpcyBub3QgTm9uZSBhbmQgdGhhdCBzcGVjX3NldAorICAgICAgICAgICAgIyBpcyBhIGJvb2w/CisgICAgICAgICAgICBpZiBuZXcgaXMgbm90IERFRkFVTFQ6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKAorICAgICAgICAgICAgICAgICAgICAiYXV0b3NwZWMgY3JlYXRlcyB0aGUgbW9jayBmb3IgeW91LiBDYW4ndCBzcGVjaWZ5ICIKKyAgICAgICAgICAgICAgICAgICAgImF1dG9zcGVjIGFuZCBuZXcuIgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGlmIG9yaWdpbmFsIGlzIERFRkFVTFQ6CisgICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJDYW4ndCB1c2UgJ2F1dG9zcGVjJyB3aXRoIGNyZWF0ZT1UcnVlIikKKyAgICAgICAgICAgIHNwZWNfc2V0ID0gYm9vbChzcGVjX3NldCkKKyAgICAgICAgICAgIGlmIGF1dG9zcGVjIGlzIFRydWU6CisgICAgICAgICAgICAgICAgYXV0b3NwZWMgPSBvcmlnaW5hbAorCisgICAgICAgICAgICBuZXcgPSBjcmVhdGVfYXV0b3NwZWMoYXV0b3NwZWMsIHNwZWNfc2V0PXNwZWNfc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9uYW1lPXNlbGYuYXR0cmlidXRlLCAqKmt3YXJncykKKyAgICAgICAgZWxpZiBrd2FyZ3M6CisgICAgICAgICAgICAjIGNhbid0IHNldCBrZXl3b3JkIGFyZ3Mgd2hlbiB3ZSBhcmVuJ3QgY3JlYXRpbmcgdGhlIG1vY2sKKyAgICAgICAgICAgICMgWFhYWCBJZiBuZXcgaXMgYSBNb2NrIHdlIGNvdWxkIGNhbGwgbmV3LmNvbmZpZ3VyZV9tb2NrKCoqa3dhcmdzKQorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJDYW4ndCBwYXNzIGt3YXJncyB0byBhIG1vY2sgd2UgYXJlbid0IGNyZWF0aW5nIikKKworICAgICAgICBuZXdfYXR0ciA9IG5ldworCisgICAgICAgIHNlbGYudGVtcF9vcmlnaW5hbCA9IG9yaWdpbmFsCisgICAgICAgIHNlbGYuaXNfbG9jYWwgPSBsb2NhbAorICAgICAgICBzZXRhdHRyKHNlbGYudGFyZ2V0LCBzZWxmLmF0dHJpYnV0ZSwgbmV3X2F0dHIpCisgICAgICAgIGlmIHNlbGYuYXR0cmlidXRlX25hbWUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBleHRyYV9hcmdzID0ge30KKyAgICAgICAgICAgIGlmIHNlbGYubmV3IGlzIERFRkFVTFQ6CisgICAgICAgICAgICAgICAgZXh0cmFfYXJnc1tzZWxmLmF0dHJpYnV0ZV9uYW1lXSA9ICBuZXcKKyAgICAgICAgICAgIGZvciBwYXRjaGluZyBpbiBzZWxmLmFkZGl0aW9uYWxfcGF0Y2hlcnM6CisgICAgICAgICAgICAgICAgYXJnID0gcGF0Y2hpbmcuX19lbnRlcl9fKCkKKyAgICAgICAgICAgICAgICBpZiBwYXRjaGluZy5uZXcgaXMgREVGQVVMVDoKKyAgICAgICAgICAgICAgICAgICAgZXh0cmFfYXJncy51cGRhdGUoYXJnKQorICAgICAgICAgICAgcmV0dXJuIGV4dHJhX2FyZ3MKKworICAgICAgICByZXR1cm4gbmV3CisKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjX2luZm8pOgorICAgICAgICAiIiJVbmRvIHRoZSBwYXRjaC4iIiIKKyAgICAgICAgaWYgbm90IF9pc19zdGFydGVkKHNlbGYpOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCdzdG9wIGNhbGxlZCBvbiB1bnN0YXJ0ZWQgcGF0Y2hlcicpCisKKyAgICAgICAgaWYgc2VsZi5pc19sb2NhbCBhbmQgc2VsZi50ZW1wX29yaWdpbmFsIGlzIG5vdCBERUZBVUxUOgorICAgICAgICAgICAgc2V0YXR0cihzZWxmLnRhcmdldCwgc2VsZi5hdHRyaWJ1dGUsIHNlbGYudGVtcF9vcmlnaW5hbCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRlbGF0dHIoc2VsZi50YXJnZXQsIHNlbGYuYXR0cmlidXRlKQorICAgICAgICAgICAgaWYgbm90IHNlbGYuY3JlYXRlIGFuZCBub3QgaGFzYXR0cihzZWxmLnRhcmdldCwgc2VsZi5hdHRyaWJ1dGUpOgorICAgICAgICAgICAgICAgICMgbmVlZGVkIGZvciBwcm94eSBvYmplY3RzIGxpa2UgZGphbmdvIHNldHRpbmdzCisgICAgICAgICAgICAgICAgc2V0YXR0cihzZWxmLnRhcmdldCwgc2VsZi5hdHRyaWJ1dGUsIHNlbGYudGVtcF9vcmlnaW5hbCkKKworICAgICAgICBkZWwgc2VsZi50ZW1wX29yaWdpbmFsCisgICAgICAgIGRlbCBzZWxmLmlzX2xvY2FsCisgICAgICAgIGRlbCBzZWxmLnRhcmdldAorICAgICAgICBmb3IgcGF0Y2hlciBpbiByZXZlcnNlZChzZWxmLmFkZGl0aW9uYWxfcGF0Y2hlcnMpOgorICAgICAgICAgICAgaWYgX2lzX3N0YXJ0ZWQocGF0Y2hlcik6CisgICAgICAgICAgICAgICAgcGF0Y2hlci5fX2V4aXRfXygqZXhjX2luZm8pCisKKworICAgIGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgIiIiQWN0aXZhdGUgYSBwYXRjaCwgcmV0dXJuaW5nIGFueSBjcmVhdGVkIG1vY2suIiIiCisgICAgICAgIHJlc3VsdCA9IHNlbGYuX19lbnRlcl9fKCkKKyAgICAgICAgc2VsZi5fYWN0aXZlX3BhdGNoZXMuYWRkKHNlbGYpCisgICAgICAgIHJldHVybiByZXN1bHQKKworCisgICAgZGVmIHN0b3Aoc2VsZik6CisgICAgICAgICIiIlN0b3AgYW4gYWN0aXZlIHBhdGNoLiIiIgorICAgICAgICBzZWxmLl9hY3RpdmVfcGF0Y2hlcy5kaXNjYXJkKHNlbGYpCisgICAgICAgIHJldHVybiBzZWxmLl9fZXhpdF9fKCkKKworCisKK2RlZiBfZ2V0X3RhcmdldCh0YXJnZXQpOgorICAgIHRyeToKKyAgICAgICAgdGFyZ2V0LCBhdHRyaWJ1dGUgPSB0YXJnZXQucnNwbGl0KCcuJywgMSkKKyAgICBleGNlcHQgKFR5cGVFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiTmVlZCBhIHZhbGlkIHRhcmdldCB0byBwYXRjaC4gWW91IHN1cHBsaWVkOiAlciIgJQorICAgICAgICAgICAgICAgICAgICAgICAgKHRhcmdldCwpKQorICAgIGdldHRlciA9IGxhbWJkYTogX2ltcG9ydGVyKHRhcmdldCkKKyAgICByZXR1cm4gZ2V0dGVyLCBhdHRyaWJ1dGUKKworCitkZWYgX3BhdGNoX29iamVjdCgKKyAgICAgICAgdGFyZ2V0LCBhdHRyaWJ1dGUsIG5ldz1ERUZBVUxULCBzcGVjPU5vbmUsCisgICAgICAgIGNyZWF0ZT1GYWxzZSwgc3BlY19zZXQ9Tm9uZSwgYXV0b3NwZWM9Tm9uZSwKKyAgICAgICAgbmV3X2NhbGxhYmxlPU5vbmUsICoqa3dhcmdzCisgICAgKToKKyAgICAiIiIKKyAgICBwYXRjaCB0aGUgbmFtZWQgbWVtYmVyIChgYXR0cmlidXRlYCkgb24gYW4gb2JqZWN0IChgdGFyZ2V0YCkgd2l0aCBhIG1vY2sKKyAgICBvYmplY3QuCisKKyAgICBgcGF0Y2gub2JqZWN0YCBjYW4gYmUgdXNlZCBhcyBhIGRlY29yYXRvciwgY2xhc3MgZGVjb3JhdG9yIG9yIGEgY29udGV4dAorICAgIG1hbmFnZXIuIEFyZ3VtZW50cyBgbmV3YCwgYHNwZWNgLCBgY3JlYXRlYCwgYHNwZWNfc2V0YCwKKyAgICBgYXV0b3NwZWNgIGFuZCBgbmV3X2NhbGxhYmxlYCBoYXZlIHRoZSBzYW1lIG1lYW5pbmcgYXMgZm9yIGBwYXRjaGAuIExpa2UKKyAgICBgcGF0Y2hgLCBgcGF0Y2gub2JqZWN0YCB0YWtlcyBhcmJpdHJhcnkga2V5d29yZCBhcmd1bWVudHMgZm9yIGNvbmZpZ3VyaW5nCisgICAgdGhlIG1vY2sgb2JqZWN0IGl0IGNyZWF0ZXMuCisKKyAgICBXaGVuIHVzZWQgYXMgYSBjbGFzcyBkZWNvcmF0b3IgYHBhdGNoLm9iamVjdGAgaG9ub3VycyBgcGF0Y2guVEVTVF9QUkVGSVhgCisgICAgZm9yIGNob29zaW5nIHdoaWNoIG1ldGhvZHMgdG8gd3JhcC4KKyAgICAiIiIKKyAgICBnZXR0ZXIgPSBsYW1iZGE6IHRhcmdldAorICAgIHJldHVybiBfcGF0Y2goCisgICAgICAgIGdldHRlciwgYXR0cmlidXRlLCBuZXcsIHNwZWMsIGNyZWF0ZSwKKyAgICAgICAgc3BlY19zZXQsIGF1dG9zcGVjLCBuZXdfY2FsbGFibGUsIGt3YXJncworICAgICkKKworCitkZWYgX3BhdGNoX211bHRpcGxlKHRhcmdldCwgc3BlYz1Ob25lLCBjcmVhdGU9RmFsc2UsIHNwZWNfc2V0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgIGF1dG9zcGVjPU5vbmUsIG5ld19jYWxsYWJsZT1Ob25lLCAqKmt3YXJncyk6CisgICAgIiIiUGVyZm9ybSBtdWx0aXBsZSBwYXRjaGVzIGluIGEgc2luZ2xlIGNhbGwuIEl0IHRha2VzIHRoZSBvYmplY3QgdG8gYmUKKyAgICBwYXRjaGVkIChlaXRoZXIgYXMgYW4gb2JqZWN0IG9yIGEgc3RyaW5nIHRvIGZldGNoIHRoZSBvYmplY3QgYnkgaW1wb3J0aW5nKQorICAgIGFuZCBrZXl3b3JkIGFyZ3VtZW50cyBmb3IgdGhlIHBhdGNoZXM6OgorCisgICAgICAgIHdpdGggcGF0Y2gubXVsdGlwbGUoc2V0dGluZ3MsIEZJUlNUX1BBVENIPSdvbmUnLCBTRUNPTkRfUEFUQ0g9J3R3bycpOgorICAgICAgICAgICAgLi4uCisKKyAgICBVc2UgYERFRkFVTFRgIGFzIHRoZSB2YWx1ZSBpZiB5b3Ugd2FudCBgcGF0Y2gubXVsdGlwbGVgIHRvIGNyZWF0ZQorICAgIG1vY2tzIGZvciB5b3UuIEluIHRoaXMgY2FzZSB0aGUgY3JlYXRlZCBtb2NrcyBhcmUgcGFzc2VkIGludG8gYSBkZWNvcmF0ZWQKKyAgICBmdW5jdGlvbiBieSBrZXl3b3JkLCBhbmQgYSBkaWN0aW9uYXJ5IGlzIHJldHVybmVkIHdoZW4gYHBhdGNoLm11bHRpcGxlYCBpcworICAgIHVzZWQgYXMgYSBjb250ZXh0IG1hbmFnZXIuCisKKyAgICBgcGF0Y2gubXVsdGlwbGVgIGNhbiBiZSB1c2VkIGFzIGEgZGVjb3JhdG9yLCBjbGFzcyBkZWNvcmF0b3Igb3IgYSBjb250ZXh0CisgICAgbWFuYWdlci4gVGhlIGFyZ3VtZW50cyBgc3BlY2AsIGBzcGVjX3NldGAsIGBjcmVhdGVgLAorICAgIGBhdXRvc3BlY2AgYW5kIGBuZXdfY2FsbGFibGVgIGhhdmUgdGhlIHNhbWUgbWVhbmluZyBhcyBmb3IgYHBhdGNoYC4gVGhlc2UKKyAgICBhcmd1bWVudHMgd2lsbCBiZSBhcHBsaWVkIHRvICphbGwqIHBhdGNoZXMgZG9uZSBieSBgcGF0Y2gubXVsdGlwbGVgLgorCisgICAgV2hlbiB1c2VkIGFzIGEgY2xhc3MgZGVjb3JhdG9yIGBwYXRjaC5tdWx0aXBsZWAgaG9ub3VycyBgcGF0Y2guVEVTVF9QUkVGSVhgCisgICAgZm9yIGNob29zaW5nIHdoaWNoIG1ldGhvZHMgdG8gd3JhcC4KKyAgICAiIiIKKyAgICBpZiB0eXBlKHRhcmdldCkgaXMgc3RyOgorICAgICAgICBnZXR0ZXIgPSBsYW1iZGE6IF9pbXBvcnRlcih0YXJnZXQpCisgICAgZWxzZToKKyAgICAgICAgZ2V0dGVyID0gbGFtYmRhOiB0YXJnZXQKKworICAgIGlmIG5vdCBrd2FyZ3M6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAnTXVzdCBzdXBwbHkgYXQgbGVhc3Qgb25lIGtleXdvcmQgYXJndW1lbnQgd2l0aCBwYXRjaC5tdWx0aXBsZScKKyAgICAgICAgKQorICAgICMgbmVlZCB0byB3cmFwIGluIGEgbGlzdCBmb3IgcHl0aG9uIDMsIHdoZXJlIGl0ZW1zIGlzIGEgdmlldworICAgIGl0ZW1zID0gbGlzdChrd2FyZ3MuaXRlbXMoKSkKKyAgICBhdHRyaWJ1dGUsIG5ldyA9IGl0ZW1zWzBdCisgICAgcGF0Y2hlciA9IF9wYXRjaCgKKyAgICAgICAgZ2V0dGVyLCBhdHRyaWJ1dGUsIG5ldywgc3BlYywgY3JlYXRlLCBzcGVjX3NldCwKKyAgICAgICAgYXV0b3NwZWMsIG5ld19jYWxsYWJsZSwge30KKyAgICApCisgICAgcGF0Y2hlci5hdHRyaWJ1dGVfbmFtZSA9IGF0dHJpYnV0ZQorICAgIGZvciBhdHRyaWJ1dGUsIG5ldyBpbiBpdGVtc1sxOl06CisgICAgICAgIHRoaXNfcGF0Y2hlciA9IF9wYXRjaCgKKyAgICAgICAgICAgIGdldHRlciwgYXR0cmlidXRlLCBuZXcsIHNwZWMsIGNyZWF0ZSwgc3BlY19zZXQsCisgICAgICAgICAgICBhdXRvc3BlYywgbmV3X2NhbGxhYmxlLCB7fQorICAgICAgICApCisgICAgICAgIHRoaXNfcGF0Y2hlci5hdHRyaWJ1dGVfbmFtZSA9IGF0dHJpYnV0ZQorICAgICAgICBwYXRjaGVyLmFkZGl0aW9uYWxfcGF0Y2hlcnMuYXBwZW5kKHRoaXNfcGF0Y2hlcikKKyAgICByZXR1cm4gcGF0Y2hlcgorCisKK2RlZiBwYXRjaCgKKyAgICAgICAgdGFyZ2V0LCBuZXc9REVGQVVMVCwgc3BlYz1Ob25lLCBjcmVhdGU9RmFsc2UsCisgICAgICAgIHNwZWNfc2V0PU5vbmUsIGF1dG9zcGVjPU5vbmUsIG5ld19jYWxsYWJsZT1Ob25lLCAqKmt3YXJncworICAgICk6CisgICAgIiIiCisgICAgYHBhdGNoYCBhY3RzIGFzIGEgZnVuY3Rpb24gZGVjb3JhdG9yLCBjbGFzcyBkZWNvcmF0b3Igb3IgYSBjb250ZXh0CisgICAgbWFuYWdlci4gSW5zaWRlIHRoZSBib2R5IG9mIHRoZSBmdW5jdGlvbiBvciB3aXRoIHN0YXRlbWVudCwgdGhlIGB0YXJnZXRgCisgICAgaXMgcGF0Y2hlZCB3aXRoIGEgYG5ld2Agb2JqZWN0LiBXaGVuIHRoZSBmdW5jdGlvbi93aXRoIHN0YXRlbWVudCBleGl0cworICAgIHRoZSBwYXRjaCBpcyB1bmRvbmUuCisKKyAgICBJZiBgbmV3YCBpcyBvbWl0dGVkLCB0aGVuIHRoZSB0YXJnZXQgaXMgcmVwbGFjZWQgd2l0aCBhCisgICAgYE1hZ2ljTW9ja2AuIElmIGBwYXRjaGAgaXMgdXNlZCBhcyBhIGRlY29yYXRvciBhbmQgYG5ld2AgaXMKKyAgICBvbWl0dGVkLCB0aGUgY3JlYXRlZCBtb2NrIGlzIHBhc3NlZCBpbiBhcyBhbiBleHRyYSBhcmd1bWVudCB0byB0aGUKKyAgICBkZWNvcmF0ZWQgZnVuY3Rpb24uIElmIGBwYXRjaGAgaXMgdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlciB0aGUgY3JlYXRlZAorICAgIG1vY2sgaXMgcmV0dXJuZWQgYnkgdGhlIGNvbnRleHQgbWFuYWdlci4KKworICAgIGB0YXJnZXRgIHNob3VsZCBiZSBhIHN0cmluZyBpbiB0aGUgZm9ybSBgJ3BhY2thZ2UubW9kdWxlLkNsYXNzTmFtZSdgLiBUaGUKKyAgICBgdGFyZ2V0YCBpcyBpbXBvcnRlZCBhbmQgdGhlIHNwZWNpZmllZCBvYmplY3QgcmVwbGFjZWQgd2l0aCB0aGUgYG5ld2AKKyAgICBvYmplY3QsIHNvIHRoZSBgdGFyZ2V0YCBtdXN0IGJlIGltcG9ydGFibGUgZnJvbSB0aGUgZW52aXJvbm1lbnQgeW91IGFyZQorICAgIGNhbGxpbmcgYHBhdGNoYCBmcm9tLiBUaGUgdGFyZ2V0IGlzIGltcG9ydGVkIHdoZW4gdGhlIGRlY29yYXRlZCBmdW5jdGlvbgorICAgIGlzIGV4ZWN1dGVkLCBub3QgYXQgZGVjb3JhdGlvbiB0aW1lLgorCisgICAgVGhlIGBzcGVjYCBhbmQgYHNwZWNfc2V0YCBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgcGFzc2VkIHRvIHRoZSBgTWFnaWNNb2NrYAorICAgIGlmIHBhdGNoIGlzIGNyZWF0aW5nIG9uZSBmb3IgeW91LgorCisgICAgSW4gYWRkaXRpb24geW91IGNhbiBwYXNzIGBzcGVjPVRydWVgIG9yIGBzcGVjX3NldD1UcnVlYCwgd2hpY2ggY2F1c2VzCisgICAgcGF0Y2ggdG8gcGFzcyBpbiB0aGUgb2JqZWN0IGJlaW5nIG1vY2tlZCBhcyB0aGUgc3BlYy9zcGVjX3NldCBvYmplY3QuCisKKyAgICBgbmV3X2NhbGxhYmxlYCBhbGxvd3MgeW91IHRvIHNwZWNpZnkgYSBkaWZmZXJlbnQgY2xhc3MsIG9yIGNhbGxhYmxlIG9iamVjdCwKKyAgICB0aGF0IHdpbGwgYmUgY2FsbGVkIHRvIGNyZWF0ZSB0aGUgYG5ld2Agb2JqZWN0LiBCeSBkZWZhdWx0IGBNYWdpY01vY2tgIGlzCisgICAgdXNlZC4KKworICAgIEEgbW9yZSBwb3dlcmZ1bCBmb3JtIG9mIGBzcGVjYCBpcyBgYXV0b3NwZWNgLiBJZiB5b3Ugc2V0IGBhdXRvc3BlYz1UcnVlYAorICAgIHRoZW4gdGhlIG1vY2sgd2l0aCBiZSBjcmVhdGVkIHdpdGggYSBzcGVjIGZyb20gdGhlIG9iamVjdCBiZWluZyByZXBsYWNlZC4KKyAgICBBbGwgYXR0cmlidXRlcyBvZiB0aGUgbW9jayB3aWxsIGFsc28gaGF2ZSB0aGUgc3BlYyBvZiB0aGUgY29ycmVzcG9uZGluZworICAgIGF0dHJpYnV0ZSBvZiB0aGUgb2JqZWN0IGJlaW5nIHJlcGxhY2VkLiBNZXRob2RzIGFuZCBmdW5jdGlvbnMgYmVpbmcKKyAgICBtb2NrZWQgd2lsbCBoYXZlIHRoZWlyIGFyZ3VtZW50cyBjaGVja2VkIGFuZCB3aWxsIHJhaXNlIGEgYFR5cGVFcnJvcmAgaWYKKyAgICB0aGV5IGFyZSBjYWxsZWQgd2l0aCB0aGUgd3Jvbmcgc2lnbmF0dXJlLiBGb3IgbW9ja3MgcmVwbGFjaW5nIGEgY2xhc3MsCisgICAgdGhlaXIgcmV0dXJuIHZhbHVlICh0aGUgJ2luc3RhbmNlJykgd2lsbCBoYXZlIHRoZSBzYW1lIHNwZWMgYXMgdGhlIGNsYXNzLgorCisgICAgSW5zdGVhZCBvZiBgYXV0b3NwZWM9VHJ1ZWAgeW91IGNhbiBwYXNzIGBhdXRvc3BlYz1zb21lX29iamVjdGAgdG8gdXNlIGFuCisgICAgYXJiaXRyYXJ5IG9iamVjdCBhcyB0aGUgc3BlYyBpbnN0ZWFkIG9mIHRoZSBvbmUgYmVpbmcgcmVwbGFjZWQuCisKKyAgICBCeSBkZWZhdWx0IGBwYXRjaGAgd2lsbCBmYWlsIHRvIHJlcGxhY2UgYXR0cmlidXRlcyB0aGF0IGRvbid0IGV4aXN0LiBJZgorICAgIHlvdSBwYXNzIGluIGBjcmVhdGU9VHJ1ZWAsIGFuZCB0aGUgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QsIHBhdGNoIHdpbGwKKyAgICBjcmVhdGUgdGhlIGF0dHJpYnV0ZSBmb3IgeW91IHdoZW4gdGhlIHBhdGNoZWQgZnVuY3Rpb24gaXMgY2FsbGVkLCBhbmQKKyAgICBkZWxldGUgaXQgYWdhaW4gYWZ0ZXJ3YXJkcy4gVGhpcyBpcyB1c2VmdWwgZm9yIHdyaXRpbmcgdGVzdHMgYWdhaW5zdAorICAgIGF0dHJpYnV0ZXMgdGhhdCB5b3VyIHByb2R1Y3Rpb24gY29kZSBjcmVhdGVzIGF0IHJ1bnRpbWUuIEl0IGlzIG9mZiBieSBieQorICAgIGRlZmF1bHQgYmVjYXVzZSBpdCBjYW4gYmUgZGFuZ2Vyb3VzLiBXaXRoIGl0IHN3aXRjaGVkIG9uIHlvdSBjYW4gd3JpdGUKKyAgICBwYXNzaW5nIHRlc3RzIGFnYWluc3QgQVBJcyB0aGF0IGRvbid0IGFjdHVhbGx5IGV4aXN0IQorCisgICAgUGF0Y2ggY2FuIGJlIHVzZWQgYXMgYSBgVGVzdENhc2VgIGNsYXNzIGRlY29yYXRvci4gSXQgd29ya3MgYnkKKyAgICBkZWNvcmF0aW5nIGVhY2ggdGVzdCBtZXRob2QgaW4gdGhlIGNsYXNzLiBUaGlzIHJlZHVjZXMgdGhlIGJvaWxlcnBsYXRlCisgICAgY29kZSB3aGVuIHlvdXIgdGVzdCBtZXRob2RzIHNoYXJlIGEgY29tbW9uIHBhdGNoaW5ncyBzZXQuIGBwYXRjaGAgZmluZHMKKyAgICB0ZXN0cyBieSBsb29raW5nIGZvciBtZXRob2QgbmFtZXMgdGhhdCBzdGFydCB3aXRoIGBwYXRjaC5URVNUX1BSRUZJWGAuCisgICAgQnkgZGVmYXVsdCB0aGlzIGlzIGB0ZXN0YCwgd2hpY2ggbWF0Y2hlcyB0aGUgd2F5IGB1bml0dGVzdGAgZmluZHMgdGVzdHMuCisgICAgWW91IGNhbiBzcGVjaWZ5IGFuIGFsdGVybmF0aXZlIHByZWZpeCBieSBzZXR0aW5nIGBwYXRjaC5URVNUX1BSRUZJWGAuCisKKyAgICBQYXRjaCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlciwgd2l0aCB0aGUgd2l0aCBzdGF0ZW1lbnQuIEhlcmUgdGhlCisgICAgcGF0Y2hpbmcgYXBwbGllcyB0byB0aGUgaW5kZW50ZWQgYmxvY2sgYWZ0ZXIgdGhlIHdpdGggc3RhdGVtZW50LiBJZiB5b3UKKyAgICB1c2UgImFzIiB0aGVuIHRoZSBwYXRjaGVkIG9iamVjdCB3aWxsIGJlIGJvdW5kIHRvIHRoZSBuYW1lIGFmdGVyIHRoZQorICAgICJhcyI7IHZlcnkgdXNlZnVsIGlmIGBwYXRjaGAgaXMgY3JlYXRpbmcgYSBtb2NrIG9iamVjdCBmb3IgeW91LgorCisgICAgYHBhdGNoYCB0YWtlcyBhcmJpdHJhcnkga2V5d29yZCBhcmd1bWVudHMuIFRoZXNlIHdpbGwgYmUgcGFzc2VkIHRvCisgICAgdGhlIGBNb2NrYCAob3IgYG5ld19jYWxsYWJsZWApIG9uIGNvbnN0cnVjdGlvbi4KKworICAgIGBwYXRjaC5kaWN0KC4uLilgLCBgcGF0Y2gubXVsdGlwbGUoLi4uKWAgYW5kIGBwYXRjaC5vYmplY3QoLi4uKWAgYXJlCisgICAgYXZhaWxhYmxlIGZvciBhbHRlcm5hdGUgdXNlLWNhc2VzLgorICAgICIiIgorICAgIGdldHRlciwgYXR0cmlidXRlID0gX2dldF90YXJnZXQodGFyZ2V0KQorICAgIHJldHVybiBfcGF0Y2goCisgICAgICAgIGdldHRlciwgYXR0cmlidXRlLCBuZXcsIHNwZWMsIGNyZWF0ZSwKKyAgICAgICAgc3BlY19zZXQsIGF1dG9zcGVjLCBuZXdfY2FsbGFibGUsIGt3YXJncworICAgICkKKworCitjbGFzcyBfcGF0Y2hfZGljdChvYmplY3QpOgorICAgICIiIgorICAgIFBhdGNoIGEgZGljdGlvbmFyeSwgb3IgZGljdGlvbmFyeSBsaWtlIG9iamVjdCwgYW5kIHJlc3RvcmUgdGhlIGRpY3Rpb25hcnkKKyAgICB0byBpdHMgb3JpZ2luYWwgc3RhdGUgYWZ0ZXIgdGhlIHRlc3QuCisKKyAgICBgaW5fZGljdGAgY2FuIGJlIGEgZGljdGlvbmFyeSBvciBhIG1hcHBpbmcgbGlrZSBjb250YWluZXIuIElmIGl0IGlzIGEKKyAgICBtYXBwaW5nIHRoZW4gaXQgbXVzdCBhdCBsZWFzdCBzdXBwb3J0IGdldHRpbmcsIHNldHRpbmcgYW5kIGRlbGV0aW5nIGl0ZW1zCisgICAgcGx1cyBpdGVyYXRpbmcgb3ZlciBrZXlzLgorCisgICAgYGluX2RpY3RgIGNhbiBhbHNvIGJlIGEgc3RyaW5nIHNwZWNpZnlpbmcgdGhlIG5hbWUgb2YgdGhlIGRpY3Rpb25hcnksIHdoaWNoCisgICAgd2lsbCB0aGVuIGJlIGZldGNoZWQgYnkgaW1wb3J0aW5nIGl0LgorCisgICAgYHZhbHVlc2AgY2FuIGJlIGEgZGljdGlvbmFyeSBvZiB2YWx1ZXMgdG8gc2V0IGluIHRoZSBkaWN0aW9uYXJ5LiBgdmFsdWVzYAorICAgIGNhbiBhbHNvIGJlIGFuIGl0ZXJhYmxlIG9mIGAoa2V5LCB2YWx1ZSlgIHBhaXJzLgorCisgICAgSWYgYGNsZWFyYCBpcyBUcnVlIHRoZW4gdGhlIGRpY3Rpb25hcnkgd2lsbCBiZSBjbGVhcmVkIGJlZm9yZSB0aGUgbmV3CisgICAgdmFsdWVzIGFyZSBzZXQuCisKKyAgICBgcGF0Y2guZGljdGAgY2FuIGFsc28gYmUgY2FsbGVkIHdpdGggYXJiaXRyYXJ5IGtleXdvcmQgYXJndW1lbnRzIHRvIHNldAorICAgIHZhbHVlcyBpbiB0aGUgZGljdGlvbmFyeTo6CisKKyAgICAgICAgd2l0aCBwYXRjaC5kaWN0KCdzeXMubW9kdWxlcycsIG15bW9kdWxlPU1vY2soKSwgb3RoZXJfbW9kdWxlPU1vY2soKSk6CisgICAgICAgICAgICAuLi4KKworICAgIGBwYXRjaC5kaWN0YCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRleHQgbWFuYWdlciwgZGVjb3JhdG9yIG9yIGNsYXNzCisgICAgZGVjb3JhdG9yLiBXaGVuIHVzZWQgYXMgYSBjbGFzcyBkZWNvcmF0b3IgYHBhdGNoLmRpY3RgIGhvbm91cnMKKyAgICBgcGF0Y2guVEVTVF9QUkVGSVhgIGZvciBjaG9vc2luZyB3aGljaCBtZXRob2RzIHRvIHdyYXAuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaW5fZGljdCwgdmFsdWVzPSgpLCBjbGVhcj1GYWxzZSwgKiprd2FyZ3MpOgorICAgICAgICBpZiBpc2luc3RhbmNlKGluX2RpY3QsIHN0cik6CisgICAgICAgICAgICBpbl9kaWN0ID0gX2ltcG9ydGVyKGluX2RpY3QpCisgICAgICAgIHNlbGYuaW5fZGljdCA9IGluX2RpY3QKKyAgICAgICAgIyBzdXBwb3J0IGFueSBhcmd1bWVudCBzdXBwb3J0ZWQgYnkgZGljdCguLi4pIGNvbnN0cnVjdG9yCisgICAgICAgIHNlbGYudmFsdWVzID0gZGljdCh2YWx1ZXMpCisgICAgICAgIHNlbGYudmFsdWVzLnVwZGF0ZShrd2FyZ3MpCisgICAgICAgIHNlbGYuY2xlYXIgPSBjbGVhcgorICAgICAgICBzZWxmLl9vcmlnaW5hbCA9IE5vbmUKKworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGYpOgorICAgICAgICBpZiBpc2luc3RhbmNlKGYsIHR5cGUpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZGVjb3JhdGVfY2xhc3MoZikKKyAgICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRlZiBfaW5uZXIoKmFyZ3MsICoqa3cpOgorICAgICAgICAgICAgc2VsZi5fcGF0Y2hfZGljdCgpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3cpCisgICAgICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgICAgIHNlbGYuX3VucGF0Y2hfZGljdCgpCisKKyAgICAgICAgcmV0dXJuIF9pbm5lcgorCisKKyAgICBkZWYgZGVjb3JhdGVfY2xhc3Moc2VsZiwga2xhc3MpOgorICAgICAgICBmb3IgYXR0ciBpbiBkaXIoa2xhc3MpOgorICAgICAgICAgICAgYXR0cl92YWx1ZSA9IGdldGF0dHIoa2xhc3MsIGF0dHIpCisgICAgICAgICAgICBpZiAoYXR0ci5zdGFydHN3aXRoKHBhdGNoLlRFU1RfUFJFRklYKSBhbmQKKyAgICAgICAgICAgICAgICAgaGFzYXR0cihhdHRyX3ZhbHVlLCAiX19jYWxsX18iKSk6CisgICAgICAgICAgICAgICAgZGVjb3JhdG9yID0gX3BhdGNoX2RpY3Qoc2VsZi5pbl9kaWN0LCBzZWxmLnZhbHVlcywgc2VsZi5jbGVhcikKKyAgICAgICAgICAgICAgICBkZWNvcmF0ZWQgPSBkZWNvcmF0b3IoYXR0cl92YWx1ZSkKKyAgICAgICAgICAgICAgICBzZXRhdHRyKGtsYXNzLCBhdHRyLCBkZWNvcmF0ZWQpCisgICAgICAgIHJldHVybiBrbGFzcworCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAgICAgICAiIiJQYXRjaCB0aGUgZGljdC4iIiIKKyAgICAgICAgc2VsZi5fcGF0Y2hfZGljdCgpCisKKworICAgIGRlZiBfcGF0Y2hfZGljdChzZWxmKToKKyAgICAgICAgdmFsdWVzID0gc2VsZi52YWx1ZXMKKyAgICAgICAgaW5fZGljdCA9IHNlbGYuaW5fZGljdAorICAgICAgICBjbGVhciA9IHNlbGYuY2xlYXIKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBvcmlnaW5hbCA9IGluX2RpY3QuY29weSgpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICMgZGljdCBsaWtlIG9iamVjdCB3aXRoIG5vIGNvcHkgbWV0aG9kCisgICAgICAgICAgICAjIG11c3Qgc3VwcG9ydCBpdGVyYXRpb24gb3ZlciBrZXlzCisgICAgICAgICAgICBvcmlnaW5hbCA9IHt9CisgICAgICAgICAgICBmb3Iga2V5IGluIGluX2RpY3Q6CisgICAgICAgICAgICAgICAgb3JpZ2luYWxba2V5XSA9IGluX2RpY3Rba2V5XQorICAgICAgICBzZWxmLl9vcmlnaW5hbCA9IG9yaWdpbmFsCisKKyAgICAgICAgaWYgY2xlYXI6CisgICAgICAgICAgICBfY2xlYXJfZGljdChpbl9kaWN0KQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGluX2RpY3QudXBkYXRlKHZhbHVlcykKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgIyBkaWN0IGxpa2Ugb2JqZWN0IHdpdGggbm8gdXBkYXRlIG1ldGhvZAorICAgICAgICAgICAgZm9yIGtleSBpbiB2YWx1ZXM6CisgICAgICAgICAgICAgICAgaW5fZGljdFtrZXldID0gdmFsdWVzW2tleV0KKworCisgICAgZGVmIF91bnBhdGNoX2RpY3Qoc2VsZik6CisgICAgICAgIGluX2RpY3QgPSBzZWxmLmluX2RpY3QKKyAgICAgICAgb3JpZ2luYWwgPSBzZWxmLl9vcmlnaW5hbAorCisgICAgICAgIF9jbGVhcl9kaWN0KGluX2RpY3QpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaW5fZGljdC51cGRhdGUob3JpZ2luYWwpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIGZvciBrZXkgaW4gb3JpZ2luYWw6CisgICAgICAgICAgICAgICAgaW5fZGljdFtrZXldID0gb3JpZ2luYWxba2V5XQorCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MpOgorICAgICAgICAiIiJVbnBhdGNoIHRoZSBkaWN0LiIiIgorICAgICAgICBzZWxmLl91bnBhdGNoX2RpY3QoKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIHN0YXJ0ID0gX19lbnRlcl9fCisgICAgc3RvcCA9IF9fZXhpdF9fCisKKworZGVmIF9jbGVhcl9kaWN0KGluX2RpY3QpOgorICAgIHRyeToKKyAgICAgICAgaW5fZGljdC5jbGVhcigpCisgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICBrZXlzID0gbGlzdChpbl9kaWN0KQorICAgICAgICBmb3Iga2V5IGluIGtleXM6CisgICAgICAgICAgICBkZWwgaW5fZGljdFtrZXldCisKKworZGVmIF9wYXRjaF9zdG9wYWxsKCk6CisgICAgIiIiU3RvcCBhbGwgYWN0aXZlIHBhdGNoZXMuIiIiCisgICAgZm9yIHBhdGNoIGluIGxpc3QoX3BhdGNoLl9hY3RpdmVfcGF0Y2hlcyk6CisgICAgICAgIHBhdGNoLnN0b3AoKQorCisKK3BhdGNoLm9iamVjdCA9IF9wYXRjaF9vYmplY3QKK3BhdGNoLmRpY3QgPSBfcGF0Y2hfZGljdAorcGF0Y2gubXVsdGlwbGUgPSBfcGF0Y2hfbXVsdGlwbGUKK3BhdGNoLnN0b3BhbGwgPSBfcGF0Y2hfc3RvcGFsbAorcGF0Y2guVEVTVF9QUkVGSVggPSAndGVzdCcKKworbWFnaWNfbWV0aG9kcyA9ICgKKyAgICAibHQgbGUgZ3QgZ2UgZXEgbmUgIgorICAgICJnZXRpdGVtIHNldGl0ZW0gZGVsaXRlbSAiCisgICAgImxlbiBjb250YWlucyBpdGVyICIKKyAgICAiaGFzaCBzdHIgc2l6ZW9mICIKKyAgICAiZW50ZXIgZXhpdCAiCisgICAgImRpdm1vZCBuZWcgcG9zIGFicyBpbnZlcnQgIgorICAgICJjb21wbGV4IGludCBmbG9hdCBpbmRleCAiCisgICAgInRydW5jIGZsb29yIGNlaWwgIgorICAgICJib29sIG5leHQgIgorKQorCitudW1lcmljcyA9ICJhZGQgc3ViIG11bCBkaXYgZmxvb3JkaXYgbW9kIGxzaGlmdCByc2hpZnQgYW5kIHhvciBvciBwb3cgIgoraW5wbGFjZSA9ICcgJy5qb2luKCdpJXMnICUgbiBmb3IgbiBpbiBudW1lcmljcy5zcGxpdCgpKQorcmlnaHQgPSAnICcuam9pbignciVzJyAlIG4gZm9yIG4gaW4gbnVtZXJpY3Muc3BsaXQoKSkKKworIyBub3QgaW5jbHVkaW5nIF9fcHJlcGFyZV9fLCBfX2luc3RhbmNlY2hlY2tfXywgX19zdWJjbGFzc2NoZWNrX18KKyMgKGFzIHRoZXkgYXJlIG1ldGFjbGFzcyBtZXRob2RzKQorIyBfX2RlbF9fIGlzIG5vdCBzdXBwb3J0ZWQgYXQgYWxsIGFzIGl0IGNhdXNlcyBwcm9ibGVtcyBpZiBpdCBleGlzdHMKKworX25vbl9kZWZhdWx0cyA9IHNldCgnX18lc19fJyAlIG1ldGhvZCBmb3IgbWV0aG9kIGluIFsKKyAgICAnZ2V0JywgJ3NldCcsICdkZWxldGUnLCAncmV2ZXJzZWQnLCAnbWlzc2luZycsICdyZWR1Y2UnLCAncmVkdWNlX2V4JywKKyAgICAnZ2V0aW5pdGFyZ3MnLCAnZ2V0bmV3YXJncycsICdnZXRzdGF0ZScsICdzZXRzdGF0ZScsICdnZXRmb3JtYXQnLAorICAgICdzZXRmb3JtYXQnLCAncmVwcicsICdkaXInLCAnc3ViY2xhc3NlcycsICdmb3JtYXQnLAorXSkKKworCitkZWYgX2dldF9tZXRob2QobmFtZSwgZnVuYyk6CisgICAgIlR1cm5zIGEgY2FsbGFibGUgb2JqZWN0IChsaWtlIGEgbW9jaykgaW50byBhIHJlYWwgZnVuY3Rpb24iCisgICAgZGVmIG1ldGhvZChzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIHJldHVybiBmdW5jKHNlbGYsICphcmdzLCAqKmt3KQorICAgIG1ldGhvZC5fX25hbWVfXyA9IG5hbWUKKyAgICByZXR1cm4gbWV0aG9kCisKKworX21hZ2ljcyA9IHNldCgKKyAgICAnX18lc19fJyAlIG1ldGhvZCBmb3IgbWV0aG9kIGluCisgICAgJyAnLmpvaW4oW21hZ2ljX21ldGhvZHMsIG51bWVyaWNzLCBpbnBsYWNlLCByaWdodF0pLnNwbGl0KCkKKykKKworX2FsbF9tYWdpY3MgPSBfbWFnaWNzIHwgX25vbl9kZWZhdWx0cworCitfdW5zdXBwb3J0ZWRfbWFnaWNzID0gc2V0KFsKKyAgICAnX19nZXRhdHRyX18nLCAnX19zZXRhdHRyX18nLAorICAgICdfX2luaXRfXycsICdfX25ld19fJywgJ19fcHJlcGFyZV9fJworICAgICdfX2luc3RhbmNlY2hlY2tfXycsICdfX3N1YmNsYXNzY2hlY2tfXycsCisgICAgJ19fZGVsX18nCitdKQorCitfY2FsY3VsYXRlX3JldHVybl92YWx1ZSA9IHsKKyAgICAnX19oYXNoX18nOiBsYW1iZGEgc2VsZjogb2JqZWN0Ll9faGFzaF9fKHNlbGYpLAorICAgICdfX3N0cl9fJzogbGFtYmRhIHNlbGY6IG9iamVjdC5fX3N0cl9fKHNlbGYpLAorICAgICdfX3NpemVvZl9fJzogbGFtYmRhIHNlbGY6IG9iamVjdC5fX3NpemVvZl9fKHNlbGYpLAorfQorCitfcmV0dXJuX3ZhbHVlcyA9IHsKKyAgICAnX19sdF9fJzogTm90SW1wbGVtZW50ZWQsCisgICAgJ19fZ3RfXyc6IE5vdEltcGxlbWVudGVkLAorICAgICdfX2xlX18nOiBOb3RJbXBsZW1lbnRlZCwKKyAgICAnX19nZV9fJzogTm90SW1wbGVtZW50ZWQsCisgICAgJ19faW50X18nOiAxLAorICAgICdfX2NvbnRhaW5zX18nOiBGYWxzZSwKKyAgICAnX19sZW5fXyc6IDAsCisgICAgJ19fZXhpdF9fJzogRmFsc2UsCisgICAgJ19fY29tcGxleF9fJzogMWosCisgICAgJ19fZmxvYXRfXyc6IDEuMCwKKyAgICAnX19ib29sX18nOiBUcnVlLAorICAgICdfX2luZGV4X18nOiAxLAorfQorCisKK2RlZiBfZ2V0X2VxKHNlbGYpOgorICAgIGRlZiBfX2VxX18ob3RoZXIpOgorICAgICAgICByZXRfdmFsID0gc2VsZi5fX2VxX18uX21vY2tfcmV0dXJuX3ZhbHVlCisgICAgICAgIGlmIHJldF92YWwgaXMgbm90IERFRkFVTFQ6CisgICAgICAgICAgICByZXR1cm4gcmV0X3ZhbAorICAgICAgICByZXR1cm4gc2VsZiBpcyBvdGhlcgorICAgIHJldHVybiBfX2VxX18KKworZGVmIF9nZXRfbmUoc2VsZik6CisgICAgZGVmIF9fbmVfXyhvdGhlcik6CisgICAgICAgIGlmIHNlbGYuX19uZV9fLl9tb2NrX3JldHVybl92YWx1ZSBpcyBub3QgREVGQVVMVDoKKyAgICAgICAgICAgIHJldHVybiBERUZBVUxUCisgICAgICAgIHJldHVybiBzZWxmIGlzIG5vdCBvdGhlcgorICAgIHJldHVybiBfX25lX18KKworZGVmIF9nZXRfaXRlcihzZWxmKToKKyAgICBkZWYgX19pdGVyX18oKToKKyAgICAgICAgcmV0X3ZhbCA9IHNlbGYuX19pdGVyX18uX21vY2tfcmV0dXJuX3ZhbHVlCisgICAgICAgIGlmIHJldF92YWwgaXMgREVGQVVMVDoKKyAgICAgICAgICAgIHJldHVybiBpdGVyKFtdKQorICAgICAgICAjIGlmIHJldF92YWwgd2FzIGFscmVhZHkgYW4gaXRlcmF0b3IsIHRoZW4gY2FsbGluZyBpdGVyIG9uIGl0IHNob3VsZAorICAgICAgICAjIHJldHVybiB0aGUgaXRlcmF0b3IgdW5jaGFuZ2VkCisgICAgICAgIHJldHVybiBpdGVyKHJldF92YWwpCisgICAgcmV0dXJuIF9faXRlcl9fCisKK19zaWRlX2VmZmVjdF9tZXRob2RzID0geworICAgICdfX2VxX18nOiBfZ2V0X2VxLAorICAgICdfX25lX18nOiBfZ2V0X25lLAorICAgICdfX2l0ZXJfXyc6IF9nZXRfaXRlciwKK30KKworCisKK2RlZiBfc2V0X3JldHVybl92YWx1ZShtb2NrLCBtZXRob2QsIG5hbWUpOgorICAgIGZpeGVkID0gX3JldHVybl92YWx1ZXMuZ2V0KG5hbWUsIERFRkFVTFQpCisgICAgaWYgZml4ZWQgaXMgbm90IERFRkFVTFQ6CisgICAgICAgIG1ldGhvZC5yZXR1cm5fdmFsdWUgPSBmaXhlZAorICAgICAgICByZXR1cm4KKworICAgIHJldHVybl9jYWx1bGF0b3IgPSBfY2FsY3VsYXRlX3JldHVybl92YWx1ZS5nZXQobmFtZSkKKyAgICBpZiByZXR1cm5fY2FsdWxhdG9yIGlzIG5vdCBOb25lOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm5fdmFsdWUgPSByZXR1cm5fY2FsdWxhdG9yKG1vY2spCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICMgWFhYWCB3aHkgZG8gd2UgcmV0dXJuIEF0dHJpYnV0ZUVycm9yIGhlcmU/CisgICAgICAgICAgICAjICAgICAgc2V0IGl0IGFzIGEgc2lkZV9lZmZlY3QgaW5zdGVhZD8KKyAgICAgICAgICAgIHJldHVybl92YWx1ZSA9IEF0dHJpYnV0ZUVycm9yKG5hbWUpCisgICAgICAgIG1ldGhvZC5yZXR1cm5fdmFsdWUgPSByZXR1cm5fdmFsdWUKKyAgICAgICAgcmV0dXJuCisKKyAgICBzaWRlX2VmZmVjdG9yID0gX3NpZGVfZWZmZWN0X21ldGhvZHMuZ2V0KG5hbWUpCisgICAgaWYgc2lkZV9lZmZlY3RvciBpcyBub3QgTm9uZToKKyAgICAgICAgbWV0aG9kLnNpZGVfZWZmZWN0ID0gc2lkZV9lZmZlY3Rvcihtb2NrKQorCisKKworY2xhc3MgTWFnaWNNaXhpbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprdyk6CisgICAgICAgIF9zYWZlX3N1cGVyKE1hZ2ljTWl4aW4sIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3KQorICAgICAgICBzZWxmLl9tb2NrX3NldF9tYWdpY3MoKQorCisKKyAgICBkZWYgX21vY2tfc2V0X21hZ2ljcyhzZWxmKToKKyAgICAgICAgdGhlc2VfbWFnaWNzID0gX21hZ2ljcworCisgICAgICAgIGlmIHNlbGYuX21vY2tfbWV0aG9kcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHRoZXNlX21hZ2ljcyA9IF9tYWdpY3MuaW50ZXJzZWN0aW9uKHNlbGYuX21vY2tfbWV0aG9kcykKKworICAgICAgICAgICAgcmVtb3ZlX21hZ2ljcyA9IHNldCgpCisgICAgICAgICAgICByZW1vdmVfbWFnaWNzID0gX21hZ2ljcyAtIHRoZXNlX21hZ2ljcworCisgICAgICAgICAgICBmb3IgZW50cnkgaW4gcmVtb3ZlX21hZ2ljczoKKyAgICAgICAgICAgICAgICBpZiBlbnRyeSBpbiB0eXBlKHNlbGYpLl9fZGljdF9fOgorICAgICAgICAgICAgICAgICAgICAjIHJlbW92ZSB1bm5lZWRlZCBtYWdpYyBtZXRob2RzCisgICAgICAgICAgICAgICAgICAgIGRlbGF0dHIoc2VsZiwgZW50cnkpCisKKyAgICAgICAgIyBkb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgYXR0cmlidXRlcyBpZiBjYWxsZWQgYSBzZWNvbmQgdGltZQorICAgICAgICB0aGVzZV9tYWdpY3MgPSB0aGVzZV9tYWdpY3MgLSBzZXQodHlwZShzZWxmKS5fX2RpY3RfXykKKworICAgICAgICBfdHlwZSA9IHR5cGUoc2VsZikKKyAgICAgICAgZm9yIGVudHJ5IGluIHRoZXNlX21hZ2ljczoKKyAgICAgICAgICAgIHNldGF0dHIoX3R5cGUsIGVudHJ5LCBNYWdpY1Byb3h5KGVudHJ5LCBzZWxmKSkKKworCisKK2NsYXNzIE5vbkNhbGxhYmxlTWFnaWNNb2NrKE1hZ2ljTWl4aW4sIE5vbkNhbGxhYmxlTW9jayk6CisgICAgIiIiQSB2ZXJzaW9uIG9mIGBNYWdpY01vY2tgIHRoYXQgaXNuJ3QgY2FsbGFibGUuIiIiCisgICAgZGVmIG1vY2tfYWRkX3NwZWMoc2VsZiwgc3BlYywgc3BlY19zZXQ9RmFsc2UpOgorICAgICAgICAiIiJBZGQgYSBzcGVjIHRvIGEgbW9jay4gYHNwZWNgIGNhbiBlaXRoZXIgYmUgYW4gb2JqZWN0IG9yIGEKKyAgICAgICAgbGlzdCBvZiBzdHJpbmdzLiBPbmx5IGF0dHJpYnV0ZXMgb24gdGhlIGBzcGVjYCBjYW4gYmUgZmV0Y2hlZCBhcworICAgICAgICBhdHRyaWJ1dGVzIGZyb20gdGhlIG1vY2suCisKKyAgICAgICAgSWYgYHNwZWNfc2V0YCBpcyBUcnVlIHRoZW4gb25seSBhdHRyaWJ1dGVzIG9uIHRoZSBzcGVjIGNhbiBiZSBzZXQuIiIiCisgICAgICAgIHNlbGYuX21vY2tfYWRkX3NwZWMoc3BlYywgc3BlY19zZXQpCisgICAgICAgIHNlbGYuX21vY2tfc2V0X21hZ2ljcygpCisKKworCitjbGFzcyBNYWdpY01vY2soTWFnaWNNaXhpbiwgTW9jayk6CisgICAgIiIiCisgICAgTWFnaWNNb2NrIGlzIGEgc3ViY2xhc3Mgb2YgTW9jayB3aXRoIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zCisgICAgb2YgbW9zdCBvZiB0aGUgbWFnaWMgbWV0aG9kcy4gWW91IGNhbiB1c2UgTWFnaWNNb2NrIHdpdGhvdXQgaGF2aW5nIHRvCisgICAgY29uZmlndXJlIHRoZSBtYWdpYyBtZXRob2RzIHlvdXJzZWxmLgorCisgICAgSWYgeW91IHVzZSB0aGUgYHNwZWNgIG9yIGBzcGVjX3NldGAgYXJndW1lbnRzIHRoZW4gKm9ubHkqIG1hZ2ljCisgICAgbWV0aG9kcyB0aGF0IGV4aXN0IGluIHRoZSBzcGVjIHdpbGwgYmUgY3JlYXRlZC4KKworICAgIEF0dHJpYnV0ZXMgYW5kIHRoZSByZXR1cm4gdmFsdWUgb2YgYSBgTWFnaWNNb2NrYCB3aWxsIGFsc28gYmUgYE1hZ2ljTW9ja3NgLgorICAgICIiIgorICAgIGRlZiBtb2NrX2FkZF9zcGVjKHNlbGYsIHNwZWMsIHNwZWNfc2V0PUZhbHNlKToKKyAgICAgICAgIiIiQWRkIGEgc3BlYyB0byBhIG1vY2suIGBzcGVjYCBjYW4gZWl0aGVyIGJlIGFuIG9iamVjdCBvciBhCisgICAgICAgIGxpc3Qgb2Ygc3RyaW5ncy4gT25seSBhdHRyaWJ1dGVzIG9uIHRoZSBgc3BlY2AgY2FuIGJlIGZldGNoZWQgYXMKKyAgICAgICAgYXR0cmlidXRlcyBmcm9tIHRoZSBtb2NrLgorCisgICAgICAgIElmIGBzcGVjX3NldGAgaXMgVHJ1ZSB0aGVuIG9ubHkgYXR0cmlidXRlcyBvbiB0aGUgc3BlYyBjYW4gYmUgc2V0LiIiIgorICAgICAgICBzZWxmLl9tb2NrX2FkZF9zcGVjKHNwZWMsIHNwZWNfc2V0KQorICAgICAgICBzZWxmLl9tb2NrX3NldF9tYWdpY3MoKQorCisKKworY2xhc3MgTWFnaWNQcm94eShvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwYXJlbnQpOgorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCisgICAgICAgIHNlbGYucGFyZW50ID0gcGFyZW50CisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgbSA9IHNlbGYuY3JlYXRlX21vY2soKQorICAgICAgICByZXR1cm4gbSgqYXJncywgKiprd2FyZ3MpCisKKyAgICBkZWYgY3JlYXRlX21vY2soc2VsZik6CisgICAgICAgIGVudHJ5ID0gc2VsZi5uYW1lCisgICAgICAgIHBhcmVudCA9IHNlbGYucGFyZW50CisgICAgICAgIG0gPSBwYXJlbnQuX2dldF9jaGlsZF9tb2NrKG5hbWU9ZW50cnksIF9uZXdfbmFtZT1lbnRyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX25ld19wYXJlbnQ9cGFyZW50KQorICAgICAgICBzZXRhdHRyKHBhcmVudCwgZW50cnksIG0pCisgICAgICAgIF9zZXRfcmV0dXJuX3ZhbHVlKHBhcmVudCwgbSwgZW50cnkpCisgICAgICAgIHJldHVybiBtCisKKyAgICBkZWYgX19nZXRfXyhzZWxmLCBvYmosIF90eXBlPU5vbmUpOgorICAgICAgICByZXR1cm4gc2VsZi5jcmVhdGVfbW9jaygpCisKKworCitjbGFzcyBfQU5ZKG9iamVjdCk6CisgICAgIkEgaGVscGVyIG9iamVjdCB0aGF0IGNvbXBhcmVzIGVxdWFsIHRvIGV2ZXJ5dGhpbmcuIgorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAnPEFOWT4nCisKK0FOWSA9IF9BTlkoKQorCisKKworZGVmIF9mb3JtYXRfY2FsbF9zaWduYXR1cmUobmFtZSwgYXJncywga3dhcmdzKToKKyAgICBtZXNzYWdlID0gJyVzKCUlcyknICUgbmFtZQorICAgIGZvcm1hdHRlZF9hcmdzID0gJycKKyAgICBhcmdzX3N0cmluZyA9ICcsICcuam9pbihbcmVwcihhcmcpIGZvciBhcmcgaW4gYXJnc10pCisgICAga3dhcmdzX3N0cmluZyA9ICcsICcuam9pbihbCisgICAgICAgICclcz0lcicgJSAoa2V5LCB2YWx1ZSkgZm9yIGtleSwgdmFsdWUgaW4ga3dhcmdzLml0ZW1zKCkKKyAgICBdKQorICAgIGlmIGFyZ3Nfc3RyaW5nOgorICAgICAgICBmb3JtYXR0ZWRfYXJncyA9IGFyZ3Nfc3RyaW5nCisgICAgaWYga3dhcmdzX3N0cmluZzoKKyAgICAgICAgaWYgZm9ybWF0dGVkX2FyZ3M6CisgICAgICAgICAgICBmb3JtYXR0ZWRfYXJncyArPSAnLCAnCisgICAgICAgIGZvcm1hdHRlZF9hcmdzICs9IGt3YXJnc19zdHJpbmcKKworICAgIHJldHVybiBtZXNzYWdlICUgZm9ybWF0dGVkX2FyZ3MKKworCisKK2NsYXNzIF9DYWxsKHR1cGxlKToKKyAgICAiIiIKKyAgICBBIHR1cGxlIGZvciBob2xkaW5nIHRoZSByZXN1bHRzIG9mIGEgY2FsbCB0byBhIG1vY2ssIGVpdGhlciBpbiB0aGUgZm9ybQorICAgIGAoYXJncywga3dhcmdzKWAgb3IgYChuYW1lLCBhcmdzLCBrd2FyZ3MpYC4KKworICAgIElmIGFyZ3Mgb3Iga3dhcmdzIGFyZSBlbXB0eSB0aGVuIGEgY2FsbCB0dXBsZSB3aWxsIGNvbXBhcmUgZXF1YWwgdG8KKyAgICBhIHR1cGxlIHdpdGhvdXQgdGhvc2UgdmFsdWVzLiBUaGlzIG1ha2VzIGNvbXBhcmlzb25zIGxlc3MgdmVyYm9zZTo6CisKKyAgICAgICAgX0NhbGwoKCduYW1lJywgKCksIHt9KSkgPT0gKCduYW1lJywpCisgICAgICAgIF9DYWxsKCgnbmFtZScsICgxLCksIHt9KSkgPT0gKCduYW1lJywgKDEsKSkKKyAgICAgICAgX0NhbGwoKCgpLCB7J2EnOiAnYid9KSkgPT0gKHsnYSc6ICdiJ30sKQorCisgICAgVGhlIGBfQ2FsbGAgb2JqZWN0IHByb3ZpZGVzIGEgdXNlZnVsIHNob3J0Y3V0IGZvciBjb21wYXJpbmcgd2l0aCBjYWxsOjoKKworICAgICAgICBfQ2FsbCgoKDEsIDIpLCB7J2EnOiAzfSkpID09IGNhbGwoMSwgMiwgYT0zKQorICAgICAgICBfQ2FsbCgoJ2ZvbycsICgxLCAyKSwgeydhJzogM30pKSA9PSBjYWxsLmZvbygxLCAyLCBhPTMpCisKKyAgICBJZiB0aGUgX0NhbGwgaGFzIG5vIG5hbWUgdGhlbiBpdCB3aWxsIG1hdGNoIGFueSBuYW1lLgorICAgICIiIgorICAgIGRlZiBfX25ld19fKGNscywgdmFsdWU9KCksIG5hbWU9Tm9uZSwgcGFyZW50PU5vbmUsIHR3bz1GYWxzZSwKKyAgICAgICAgICAgICAgICBmcm9tX2thbGw9VHJ1ZSk6CisgICAgICAgIG5hbWUgPSAnJworICAgICAgICBhcmdzID0gKCkKKyAgICAgICAga3dhcmdzID0ge30KKyAgICAgICAgX2xlbiA9IGxlbih2YWx1ZSkKKyAgICAgICAgaWYgX2xlbiA9PSAzOgorICAgICAgICAgICAgbmFtZSwgYXJncywga3dhcmdzID0gdmFsdWUKKyAgICAgICAgZWxpZiBfbGVuID09IDI6CisgICAgICAgICAgICBmaXJzdCwgc2Vjb25kID0gdmFsdWUKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZmlyc3QsIHN0cik6CisgICAgICAgICAgICAgICAgbmFtZSA9IGZpcnN0CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWNvbmQsIHR1cGxlKToKKyAgICAgICAgICAgICAgICAgICAgYXJncyA9IHNlY29uZAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGt3YXJncyA9IHNlY29uZAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhcmdzLCBrd2FyZ3MgPSBmaXJzdCwgc2Vjb25kCisgICAgICAgIGVsaWYgX2xlbiA9PSAxOgorICAgICAgICAgICAgdmFsdWUsID0gdmFsdWUKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CisgICAgICAgICAgICAgICAgbmFtZSA9IHZhbHVlCisgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIHR1cGxlKToKKyAgICAgICAgICAgICAgICBhcmdzID0gdmFsdWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAga3dhcmdzID0gdmFsdWUKKworICAgICAgICBpZiB0d286CisgICAgICAgICAgICByZXR1cm4gdHVwbGUuX19uZXdfXyhjbHMsIChhcmdzLCBrd2FyZ3MpKQorCisgICAgICAgIHJldHVybiB0dXBsZS5fX25ld19fKGNscywgKG5hbWUsIGFyZ3MsIGt3YXJncykpCisKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZT0oKSwgbmFtZT1Ob25lLCBwYXJlbnQ9Tm9uZSwgdHdvPUZhbHNlLAorICAgICAgICAgICAgICAgICBmcm9tX2thbGw9VHJ1ZSk6CisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBwYXJlbnQKKyAgICAgICAgc2VsZi5mcm9tX2thbGwgPSBmcm9tX2thbGwKKworCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIGlmIG90aGVyIGlzIEFOWToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGxlbl9vdGhlciA9IGxlbihvdGhlcikKKyAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIHNlbGZfbmFtZSA9ICcnCisgICAgICAgIGlmIGxlbihzZWxmKSA9PSAyOgorICAgICAgICAgICAgc2VsZl9hcmdzLCBzZWxmX2t3YXJncyA9IHNlbGYKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGZfbmFtZSwgc2VsZl9hcmdzLCBzZWxmX2t3YXJncyA9IHNlbGYKKworICAgICAgICBvdGhlcl9uYW1lID0gJycKKyAgICAgICAgaWYgbGVuX290aGVyID09IDA6CisgICAgICAgICAgICBvdGhlcl9hcmdzLCBvdGhlcl9rd2FyZ3MgPSAoKSwge30KKyAgICAgICAgZWxpZiBsZW5fb3RoZXIgPT0gMzoKKyAgICAgICAgICAgIG90aGVyX25hbWUsIG90aGVyX2FyZ3MsIG90aGVyX2t3YXJncyA9IG90aGVyCisgICAgICAgIGVsaWYgbGVuX290aGVyID09IDE6CisgICAgICAgICAgICB2YWx1ZSwgPSBvdGhlcgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgdHVwbGUpOgorICAgICAgICAgICAgICAgIG90aGVyX2FyZ3MgPSB2YWx1ZQorICAgICAgICAgICAgICAgIG90aGVyX2t3YXJncyA9IHt9CisgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UodmFsdWUsIHN0cik6CisgICAgICAgICAgICAgICAgb3RoZXJfbmFtZSA9IHZhbHVlCisgICAgICAgICAgICAgICAgb3RoZXJfYXJncywgb3RoZXJfa3dhcmdzID0gKCksIHt9CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG90aGVyX2FyZ3MgPSAoKQorICAgICAgICAgICAgICAgIG90aGVyX2t3YXJncyA9IHZhbHVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIGxlbiAyCisgICAgICAgICAgICAjIGNvdWxkIGJlIChuYW1lLCBhcmdzKSBvciAobmFtZSwga3dhcmdzKSBvciAoYXJncywga3dhcmdzKQorICAgICAgICAgICAgZmlyc3QsIHNlY29uZCA9IG90aGVyCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZpcnN0LCBzdHIpOgorICAgICAgICAgICAgICAgIG90aGVyX25hbWUgPSBmaXJzdAorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc2Vjb25kLCB0dXBsZSk6CisgICAgICAgICAgICAgICAgICAgIG90aGVyX2FyZ3MsIG90aGVyX2t3YXJncyA9IHNlY29uZCwge30KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBvdGhlcl9hcmdzLCBvdGhlcl9rd2FyZ3MgPSAoKSwgc2Vjb25kCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG90aGVyX2FyZ3MsIG90aGVyX2t3YXJncyA9IGZpcnN0LCBzZWNvbmQKKworICAgICAgICBpZiBzZWxmX25hbWUgYW5kIG90aGVyX25hbWUgIT0gc2VsZl9uYW1lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgIyB0aGlzIG9yZGVyIGlzIGltcG9ydGFudCBmb3IgQU5ZIHRvIHdvcmshCisgICAgICAgIHJldHVybiAob3RoZXJfYXJncywgb3RoZXJfa3dhcmdzKSA9PSAoc2VsZl9hcmdzLCBzZWxmX2t3YXJncykKKworCisgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3Qgc2VsZi5fX2VxX18ob3RoZXIpCisKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpZiBzZWxmLm5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBfQ2FsbCgoJycsIGFyZ3MsIGt3YXJncyksIG5hbWU9JygpJykKKworICAgICAgICBuYW1lID0gc2VsZi5uYW1lICsgJygpJworICAgICAgICByZXR1cm4gX0NhbGwoKHNlbGYubmFtZSwgYXJncywga3dhcmdzKSwgbmFtZT1uYW1lLCBwYXJlbnQ9c2VsZikKKworCisgICAgZGVmIF9fZ2V0YXR0cl9fKHNlbGYsIGF0dHIpOgorICAgICAgICBpZiBzZWxmLm5hbWUgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBfQ2FsbChuYW1lPWF0dHIsIGZyb21fa2FsbD1GYWxzZSkKKyAgICAgICAgbmFtZSA9ICclcy4lcycgJSAoc2VsZi5uYW1lLCBhdHRyKQorICAgICAgICByZXR1cm4gX0NhbGwobmFtZT1uYW1lLCBwYXJlbnQ9c2VsZiwgZnJvbV9rYWxsPUZhbHNlKQorCisKKyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLmZyb21fa2FsbDoKKyAgICAgICAgICAgIG5hbWUgPSBzZWxmLm5hbWUgb3IgJ2NhbGwnCisgICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoJygpJyk6CisgICAgICAgICAgICAgICAgbmFtZSA9ICdjYWxsJXMnICUgbmFtZQorICAgICAgICAgICAgcmV0dXJuIG5hbWUKKworICAgICAgICBpZiBsZW4oc2VsZikgPT0gMjoKKyAgICAgICAgICAgIG5hbWUgPSAnY2FsbCcKKyAgICAgICAgICAgIGFyZ3MsIGt3YXJncyA9IHNlbGYKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG5hbWUsIGFyZ3MsIGt3YXJncyA9IHNlbGYKKyAgICAgICAgICAgIGlmIG5vdCBuYW1lOgorICAgICAgICAgICAgICAgIG5hbWUgPSAnY2FsbCcKKyAgICAgICAgICAgIGVsaWYgbm90IG5hbWUuc3RhcnRzd2l0aCgnKCknKToKKyAgICAgICAgICAgICAgICBuYW1lID0gJ2NhbGwuJXMnICUgbmFtZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBuYW1lID0gJ2NhbGwlcycgJSBuYW1lCisgICAgICAgIHJldHVybiBfZm9ybWF0X2NhbGxfc2lnbmF0dXJlKG5hbWUsIGFyZ3MsIGt3YXJncykKKworCisgICAgZGVmIGNhbGxfbGlzdChzZWxmKToKKyAgICAgICAgIiIiRm9yIGEgY2FsbCBvYmplY3QgdGhhdCByZXByZXNlbnRzIG11bHRpcGxlIGNhbGxzLCBgY2FsbF9saXN0YAorICAgICAgICByZXR1cm5zIGEgbGlzdCBvZiBhbGwgdGhlIGludGVybWVkaWF0ZSBjYWxscyBhcyB3ZWxsIGFzIHRoZQorICAgICAgICBmaW5hbCBjYWxsLiIiIgorICAgICAgICB2YWxzID0gW10KKyAgICAgICAgdGhpbmcgPSBzZWxmCisgICAgICAgIHdoaWxlIHRoaW5nIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgdGhpbmcuZnJvbV9rYWxsOgorICAgICAgICAgICAgICAgIHZhbHMuYXBwZW5kKHRoaW5nKQorICAgICAgICAgICAgdGhpbmcgPSB0aGluZy5wYXJlbnQKKyAgICAgICAgcmV0dXJuIF9DYWxsTGlzdChyZXZlcnNlZCh2YWxzKSkKKworCitjYWxsID0gX0NhbGwoZnJvbV9rYWxsPUZhbHNlKQorCisKKworZGVmIGNyZWF0ZV9hdXRvc3BlYyhzcGVjLCBzcGVjX3NldD1GYWxzZSwgaW5zdGFuY2U9RmFsc2UsIF9wYXJlbnQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgX25hbWU9Tm9uZSwgKiprd2FyZ3MpOgorICAgICIiIkNyZWF0ZSBhIG1vY2sgb2JqZWN0IHVzaW5nIGFub3RoZXIgb2JqZWN0IGFzIGEgc3BlYy4gQXR0cmlidXRlcyBvbiB0aGUKKyAgICBtb2NrIHdpbGwgdXNlIHRoZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZSBvbiB0aGUgYHNwZWNgIG9iamVjdCBhcyB0aGVpcgorICAgIHNwZWMuCisKKyAgICBGdW5jdGlvbnMgb3IgbWV0aG9kcyBiZWluZyBtb2NrZWQgd2lsbCBoYXZlIHRoZWlyIGFyZ3VtZW50cyBjaGVja2VkCisgICAgdG8gY2hlY2sgdGhhdCB0aGV5IGFyZSBjYWxsZWQgd2l0aCB0aGUgY29ycmVjdCBzaWduYXR1cmUuCisKKyAgICBJZiBgc3BlY19zZXRgIGlzIFRydWUgdGhlbiBhdHRlbXB0aW5nIHRvIHNldCBhdHRyaWJ1dGVzIHRoYXQgZG9uJ3QgZXhpc3QKKyAgICBvbiB0aGUgc3BlYyBvYmplY3Qgd2lsbCByYWlzZSBhbiBgQXR0cmlidXRlRXJyb3JgLgorCisgICAgSWYgYSBjbGFzcyBpcyB1c2VkIGFzIGEgc3BlYyB0aGVuIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIG1vY2sgKHRoZQorICAgIGluc3RhbmNlIG9mIHRoZSBjbGFzcykgd2lsbCBoYXZlIHRoZSBzYW1lIHNwZWMuIFlvdSBjYW4gdXNlIGEgY2xhc3MgYXMgdGhlCisgICAgc3BlYyBmb3IgYW4gaW5zdGFuY2Ugb2JqZWN0IGJ5IHBhc3NpbmcgYGluc3RhbmNlPVRydWVgLiBUaGUgcmV0dXJuZWQgbW9jaworICAgIHdpbGwgb25seSBiZSBjYWxsYWJsZSBpZiBpbnN0YW5jZXMgb2YgdGhlIG1vY2sgYXJlIGNhbGxhYmxlLgorCisgICAgYGNyZWF0ZV9hdXRvc3BlY2AgYWxzbyB0YWtlcyBhcmJpdHJhcnkga2V5d29yZCBhcmd1bWVudHMgdGhhdCBhcmUgcGFzc2VkIHRvCisgICAgdGhlIGNvbnN0cnVjdG9yIG9mIHRoZSBjcmVhdGVkIG1vY2suIiIiCisgICAgaWYgX2lzX2xpc3Qoc3BlYyk6CisgICAgICAgICMgY2FuJ3QgcGFzcyBhIGxpc3QgaW5zdGFuY2UgdG8gdGhlIG1vY2sgY29uc3RydWN0b3IgYXMgaXQgd2lsbCBiZQorICAgICAgICAjIGludGVycHJldGVkIGFzIGEgbGlzdCBvZiBzdHJpbmdzCisgICAgICAgIHNwZWMgPSB0eXBlKHNwZWMpCisKKyAgICBpc190eXBlID0gaXNpbnN0YW5jZShzcGVjLCB0eXBlKQorCisgICAgX2t3YXJncyA9IHsnc3BlYyc6IHNwZWN9CisgICAgaWYgc3BlY19zZXQ6CisgICAgICAgIF9rd2FyZ3MgPSB7J3NwZWNfc2V0Jzogc3BlY30KKyAgICBlbGlmIHNwZWMgaXMgTm9uZToKKyAgICAgICAgIyBOb25lIHdlIG1vY2sgd2l0aCBhIG5vcm1hbCBtb2NrIHdpdGhvdXQgYSBzcGVjCisgICAgICAgIF9rd2FyZ3MgPSB7fQorCisgICAgX2t3YXJncy51cGRhdGUoa3dhcmdzKQorCisgICAgS2xhc3MgPSBNYWdpY01vY2sKKyAgICBpZiB0eXBlKHNwZWMpIGluIERlc2NyaXB0b3JUeXBlczoKKyAgICAgICAgIyBkZXNjcmlwdG9ycyBkb24ndCBoYXZlIGEgc3BlYworICAgICAgICAjIGJlY2F1c2Ugd2UgZG9uJ3Qga25vdyB3aGF0IHR5cGUgdGhleSByZXR1cm4KKyAgICAgICAgX2t3YXJncyA9IHt9CisgICAgZWxpZiBub3QgX2NhbGxhYmxlKHNwZWMpOgorICAgICAgICBLbGFzcyA9IE5vbkNhbGxhYmxlTWFnaWNNb2NrCisgICAgZWxpZiBpc190eXBlIGFuZCBpbnN0YW5jZSBhbmQgbm90IF9pbnN0YW5jZV9jYWxsYWJsZShzcGVjKToKKyAgICAgICAgS2xhc3MgPSBOb25DYWxsYWJsZU1hZ2ljTW9jaworCisgICAgX25ld19uYW1lID0gX25hbWUKKyAgICBpZiBfcGFyZW50IGlzIE5vbmU6CisgICAgICAgICMgZm9yIGEgdG9wIGxldmVsIG9iamVjdCBubyBfbmV3X25hbWUgc2hvdWxkIGJlIHNldAorICAgICAgICBfbmV3X25hbWUgPSAnJworCisgICAgbW9jayA9IEtsYXNzKHBhcmVudD1fcGFyZW50LCBfbmV3X3BhcmVudD1fcGFyZW50LCBfbmV3X25hbWU9X25ld19uYW1lLAorICAgICAgICAgICAgICAgICBuYW1lPV9uYW1lLCAqKl9rd2FyZ3MpCisKKyAgICBpZiBpc2luc3RhbmNlKHNwZWMsIEZ1bmN0aW9uVHlwZXMpOgorICAgICAgICAjIHNob3VsZCBvbmx5IGhhcHBlbiBhdCB0aGUgdG9wIGxldmVsIGJlY2F1c2Ugd2UgZG9uJ3QKKyAgICAgICAgIyByZWN1cnNlIGZvciBmdW5jdGlvbnMKKyAgICAgICAgbW9jayA9IF9zZXRfc2lnbmF0dXJlKG1vY2ssIHNwZWMpCisgICAgZWxzZToKKyAgICAgICAgX2NoZWNrX3NpZ25hdHVyZShzcGVjLCBtb2NrLCBpc190eXBlLCBpbnN0YW5jZSkKKworICAgIGlmIF9wYXJlbnQgaXMgbm90IE5vbmUgYW5kIG5vdCBpbnN0YW5jZToKKyAgICAgICAgX3BhcmVudC5fbW9ja19jaGlsZHJlbltfbmFtZV0gPSBtb2NrCisKKyAgICBpZiBpc190eXBlIGFuZCBub3QgaW5zdGFuY2UgYW5kICdyZXR1cm5fdmFsdWUnIG5vdCBpbiBrd2FyZ3M6CisgICAgICAgIG1vY2sucmV0dXJuX3ZhbHVlID0gY3JlYXRlX2F1dG9zcGVjKHNwZWMsIHNwZWNfc2V0LCBpbnN0YW5jZT1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfbmFtZT0nKCknLCBfcGFyZW50PW1vY2spCisKKyAgICBmb3IgZW50cnkgaW4gZGlyKHNwZWMpOgorICAgICAgICBpZiBfaXNfbWFnaWMoZW50cnkpOgorICAgICAgICAgICAgIyBNYWdpY01vY2sgYWxyZWFkeSBkb2VzIHRoZSB1c2VmdWwgbWFnaWMgbWV0aG9kcyBmb3IgdXMKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgIyBYWFhYIGRvIHdlIG5lZWQgYSBiZXR0ZXIgd2F5IG9mIGdldHRpbmcgYXR0cmlidXRlcyB3aXRob3V0CisgICAgICAgICMgdHJpZ2dlcmluZyBjb2RlIGV4ZWN1dGlvbiAoPykgUHJvYmFibHkgbm90IC0gd2UgbmVlZCB0aGUgYWN0dWFsCisgICAgICAgICMgb2JqZWN0IHRvIG1vY2sgaXQgc28gd2Ugd291bGQgcmF0aGVyIHRyaWdnZXIgYSBwcm9wZXJ0eSB0aGFuIG1vY2sKKyAgICAgICAgIyB0aGUgcHJvcGVydHkgZGVzY3JpcHRvci4gTGlrZXdpc2Ugd2Ugd2FudCB0byBtb2NrIG91dCBkeW5hbWljYWxseQorICAgICAgICAjIHByb3ZpZGVkIGF0dHJpYnV0ZXMuCisgICAgICAgICMgWFhYWCB3aGF0IGFib3V0IGF0dHJpYnV0ZXMgdGhhdCByYWlzZSBleGNlcHRpb25zIG90aGVyIHRoYW4KKyAgICAgICAgIyBBdHRyaWJ1dGVFcnJvciBvbiBiZWluZyBmZXRjaGVkPworICAgICAgICAjIHdlIGNvdWxkIGJlIHJlc2lsaWVudCBhZ2FpbnN0IGl0LCBvciBjYXRjaCBhbmQgcHJvcGFnYXRlIHRoZQorICAgICAgICAjIGV4Y2VwdGlvbiB3aGVuIHRoZSBhdHRyaWJ1dGUgaXMgZmV0Y2hlZCBmcm9tIHRoZSBtb2NrCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9yaWdpbmFsID0gZ2V0YXR0cihzcGVjLCBlbnRyeSkKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBrd2FyZ3MgPSB7J3NwZWMnOiBvcmlnaW5hbH0KKyAgICAgICAgaWYgc3BlY19zZXQ6CisgICAgICAgICAgICBrd2FyZ3MgPSB7J3NwZWNfc2V0Jzogb3JpZ2luYWx9CisKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3JpZ2luYWwsIEZ1bmN0aW9uVHlwZXMpOgorICAgICAgICAgICAgbmV3ID0gX1NwZWNTdGF0ZShvcmlnaW5hbCwgc3BlY19zZXQsIG1vY2ssIGVudHJ5LCBpbnN0YW5jZSkKKyAgICAgICAgICAgIG1vY2suX21vY2tfY2hpbGRyZW5bZW50cnldID0gbmV3CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwYXJlbnQgPSBtb2NrCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHNwZWMsIEZ1bmN0aW9uVHlwZXMpOgorICAgICAgICAgICAgICAgIHBhcmVudCA9IG1vY2subW9jaworCisgICAgICAgICAgICBuZXcgPSBNYWdpY01vY2socGFyZW50PXBhcmVudCwgbmFtZT1lbnRyeSwgX25ld19uYW1lPWVudHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9uZXdfcGFyZW50PXBhcmVudCwgKiprd2FyZ3MpCisgICAgICAgICAgICBtb2NrLl9tb2NrX2NoaWxkcmVuW2VudHJ5XSA9IG5ldworICAgICAgICAgICAgc2tpcGZpcnN0ID0gX211c3Rfc2tpcChzcGVjLCBlbnRyeSwgaXNfdHlwZSkKKyAgICAgICAgICAgIF9jaGVja19zaWduYXR1cmUob3JpZ2luYWwsIG5ldywgc2tpcGZpcnN0PXNraXBmaXJzdCkKKworICAgICAgICAjIHNvIGZ1bmN0aW9ucyBjcmVhdGVkIHdpdGggX3NldF9zaWduYXR1cmUgYmVjb21lIGluc3RhbmNlIGF0dHJpYnV0ZXMsCisgICAgICAgICMgKnBsdXMqIHRoZWlyIHVuZGVybHlpbmcgbW9jayBleGlzdHMgaW4gX21vY2tfY2hpbGRyZW4gb2YgdGhlIHBhcmVudAorICAgICAgICAjIG1vY2suIEFkZGluZyB0byBfbW9ja19jaGlsZHJlbiBtYXkgYmUgdW5uZWNlc3Nhcnkgd2hlcmUgd2UgYXJlIGFsc28KKyAgICAgICAgIyBzZXR0aW5nIGFzIGFuIGluc3RhbmNlIGF0dHJpYnV0ZT8KKyAgICAgICAgaWYgaXNpbnN0YW5jZShuZXcsIEZ1bmN0aW9uVHlwZXMpOgorICAgICAgICAgICAgc2V0YXR0cihtb2NrLCBlbnRyeSwgbmV3KQorCisgICAgcmV0dXJuIG1vY2sKKworCitkZWYgX211c3Rfc2tpcChzcGVjLCBlbnRyeSwgaXNfdHlwZSk6CisgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3BlYywgdHlwZSk6CisgICAgICAgIGlmIGVudHJ5IGluIGdldGF0dHIoc3BlYywgJ19fZGljdF9fJywge30pOgorICAgICAgICAgICAgIyBpbnN0YW5jZSBhdHRyaWJ1dGUgLSBzaG91bGRuJ3Qgc2tpcAorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHNwZWMgPSBzcGVjLl9fY2xhc3NfXworCisgICAgZm9yIGtsYXNzIGluIHNwZWMuX19tcm9fXzoKKyAgICAgICAgcmVzdWx0ID0ga2xhc3MuX19kaWN0X18uZ2V0KGVudHJ5LCBERUZBVUxUKQorICAgICAgICBpZiByZXN1bHQgaXMgREVGQVVMVDoKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0LCAoc3RhdGljbWV0aG9kLCBjbGFzc21ldGhvZCkpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBpc190eXBlCisKKyAgICAjIHNob3VsZG4ndCBnZXQgaGVyZSB1bmxlc3MgZnVuY3Rpb24gaXMgYSBkeW5hbWljYWxseSBwcm92aWRlZCBhdHRyaWJ1dGUKKyAgICAjIFhYWFggdW50ZXN0ZWQgYmVoYXZpb3VyCisgICAgcmV0dXJuIGlzX3R5cGUKKworCitkZWYgX2dldF9jbGFzcyhvYmopOgorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIG9iai5fX2NsYXNzX18KKyAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICMgaXQgaXMgcG9zc2libGUgZm9yIG9iamVjdHMgdG8gaGF2ZSBubyBfX2NsYXNzX18KKyAgICAgICAgcmV0dXJuIHR5cGUob2JqKQorCisKK2NsYXNzIF9TcGVjU3RhdGUob2JqZWN0KToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzcGVjLCBzcGVjX3NldD1GYWxzZSwgcGFyZW50PU5vbmUsCisgICAgICAgICAgICAgICAgIG5hbWU9Tm9uZSwgaWRzPU5vbmUsIGluc3RhbmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5zcGVjID0gc3BlYworICAgICAgICBzZWxmLmlkcyA9IGlkcworICAgICAgICBzZWxmLnNwZWNfc2V0ID0gc3BlY19zZXQKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBwYXJlbnQKKyAgICAgICAgc2VsZi5pbnN0YW5jZSA9IGluc3RhbmNlCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKworCitGdW5jdGlvblR5cGVzID0gKAorICAgICMgcHl0aG9uIGZ1bmN0aW9uCisgICAgdHlwZShjcmVhdGVfYXV0b3NwZWMpLAorICAgICMgaW5zdGFuY2UgbWV0aG9kCisgICAgdHlwZShBTlkuX19lcV9fKSwKKykKKworCitmaWxlX3NwZWMgPSBOb25lCisKKworZGVmIG1vY2tfb3Blbihtb2NrPU5vbmUsIHJlYWRfZGF0YT0nJyk6CisgICAgIiIiCisgICAgQSBoZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlIGEgbW9jayB0byByZXBsYWNlIHRoZSB1c2Ugb2YgYG9wZW5gLiBJdCB3b3JrcworICAgIGZvciBgb3BlbmAgY2FsbGVkIGRpcmVjdGx5IG9yIHVzZWQgYXMgYSBjb250ZXh0IG1hbmFnZXIuCisKKyAgICBUaGUgYG1vY2tgIGFyZ3VtZW50IGlzIHRoZSBtb2NrIG9iamVjdCB0byBjb25maWd1cmUuIElmIGBOb25lYCAodGhlCisgICAgZGVmYXVsdCkgdGhlbiBhIGBNYWdpY01vY2tgIHdpbGwgYmUgY3JlYXRlZCBmb3IgeW91LCB3aXRoIHRoZSBBUEkgbGltaXRlZAorICAgIHRvIG1ldGhvZHMgb3IgYXR0cmlidXRlcyBhdmFpbGFibGUgb24gc3RhbmRhcmQgZmlsZSBoYW5kbGVzLgorCisgICAgYHJlYWRfZGF0YWAgaXMgYSBzdHJpbmcgZm9yIHRoZSBgcmVhZGAgbWV0aG9kIG9mIHRoZSBmaWxlIGhhbmRsZSB0byByZXR1cm4uCisgICAgVGhpcyBpcyBhbiBlbXB0eSBzdHJpbmcgYnkgZGVmYXVsdC4KKyAgICAiIiIKKyAgICBnbG9iYWwgZmlsZV9zcGVjCisgICAgaWYgZmlsZV9zcGVjIGlzIE5vbmU6CisgICAgICAgIGltcG9ydCBfaW8KKyAgICAgICAgZmlsZV9zcGVjID0gbGlzdChzZXQoZGlyKF9pby5UZXh0SU9XcmFwcGVyKSkudW5pb24oc2V0KGRpcihfaW8uQnl0ZXNJTykpKSkKKworICAgIGlmIG1vY2sgaXMgTm9uZToKKyAgICAgICAgbW9jayA9IE1hZ2ljTW9jayhuYW1lPSdvcGVuJywgc3BlYz1vcGVuKQorCisgICAgaGFuZGxlID0gTWFnaWNNb2NrKHNwZWM9ZmlsZV9zcGVjKQorICAgIGhhbmRsZS53cml0ZS5yZXR1cm5fdmFsdWUgPSBOb25lCisgICAgaGFuZGxlLl9fZW50ZXJfXy5yZXR1cm5fdmFsdWUgPSBoYW5kbGUKKyAgICBoYW5kbGUucmVhZC5yZXR1cm5fdmFsdWUgPSByZWFkX2RhdGEKKworICAgIG1vY2sucmV0dXJuX3ZhbHVlID0gaGFuZGxlCisgICAgcmV0dXJuIG1vY2sKKworCitjbGFzcyBQcm9wZXJ0eU1vY2soTW9jayk6CisgICAgIiIiCisgICAgQSBtb2NrIGludGVuZGVkIHRvIGJlIHVzZWQgYXMgYSBwcm9wZXJ0eSwgb3Igb3RoZXIgZGVzY3JpcHRvciwgb24gYSBjbGFzcy4KKyAgICBgUHJvcGVydHlNb2NrYCBwcm92aWRlcyBgX19nZXRfX2AgYW5kIGBfX3NldF9fYCBtZXRob2RzIHNvIHlvdSBjYW4gc3BlY2lmeQorICAgIGEgcmV0dXJuIHZhbHVlIHdoZW4gaXQgaXMgZmV0Y2hlZC4KKworICAgIEZldGNoaW5nIGEgYFByb3BlcnR5TW9ja2AgaW5zdGFuY2UgZnJvbSBhbiBvYmplY3QgY2FsbHMgdGhlIG1vY2ssIHdpdGgKKyAgICBubyBhcmdzLiBTZXR0aW5nIGl0IGNhbGxzIHRoZSBtb2NrIHdpdGggdGhlIHZhbHVlIGJlaW5nIHNldC4KKyAgICAiIiIKKyAgICBkZWYgX2dldF9jaGlsZF9tb2NrKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgcmV0dXJuIE1hZ2ljTW9jaygqKmt3YXJncykKKworICAgIGRlZiBfX2dldF9fKHNlbGYsIG9iaiwgb2JqX3R5cGUpOgorICAgICAgICByZXR1cm4gc2VsZigpCisgICAgZGVmIF9fc2V0X18oc2VsZiwgb2JqLCB2YWwpOgorICAgICAgICBzZWxmKHZhbCkKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC9yZXN1bHQucHkgYi9MaWIvdW5pdHRlc3QvcmVzdWx0LnB5CmluZGV4IDQ0YmYxODYuLjk3ZTU0MjYgMTAwNjQ0Ci0tLSBhL0xpYi91bml0dGVzdC9yZXN1bHQucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Jlc3VsdC5weQpAQCAtMSw2ICsxLDUgQEAKICIiIlRlc3QgcmVzdWx0IG9iamVjdCIiIgogCi1pbXBvcnQgb3MKIGltcG9ydCBpbwogaW1wb3J0IHN5cwogaW1wb3J0IHRyYWNlYmFjawpkaWZmIC0tZ2l0IGEvTGliL3VuaXR0ZXN0L3Rlc3QvX19pbml0X18ucHkgYi9MaWIvdW5pdHRlc3QvdGVzdC9fX2luaXRfXy5weQppbmRleCA5OWI3MzBiLi5jZGFlOGE3IDEwMDY0NAotLS0gYS9MaWIvdW5pdHRlc3QvdGVzdC9fX2luaXRfXy5weQorKysgYi9MaWIvdW5pdHRlc3QvdGVzdC9fX2luaXRfXy5weQpAQCAtMTQsNiArMTQsNyBAQAogICAgICAgICAgICAgX19pbXBvcnRfXyhtb2RuYW1lKQogICAgICAgICAgICAgbW9kdWxlID0gc3lzLm1vZHVsZXNbbW9kbmFtZV0KICAgICAgICAgICAgIHN1aXRlLmFkZFRlc3QobG9hZGVyLmxvYWRUZXN0c0Zyb21Nb2R1bGUobW9kdWxlKSkKKyAgICBzdWl0ZS5hZGRUZXN0KGxvYWRlci5sb2FkVGVzdHNGcm9tTmFtZSgndW5pdHRlc3QudGVzdC50ZXN0bW9jaycpKQogICAgIHJldHVybiBzdWl0ZQogCiAKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L190ZXN0X3dhcm5pbmdzLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvX3Rlc3Rfd2FybmluZ3MucHkKaW5kZXggZDBiZTE4ZC4uNWNiZmI1MyAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L3Rlc3QvX3Rlc3Rfd2FybmluZ3MucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvX3Rlc3Rfd2FybmluZ3MucHkKQEAgLTEwLDcgKzEwLDYgQEAKIFNlZSAjMTA1MzUuCiAiIiIKIAotaW1wb3J0IGlvCiBpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIGltcG9ydCB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9hc3NlcnRpb25zLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9hc3NlcnRpb25zLnB5CmluZGV4IGExZDIwZWIuLmQ0M2ZlNWEgMTAwNjQ0Ci0tLSBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfYXNzZXJ0aW9ucy5weQorKysgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X2Fzc2VydGlvbnMucHkKQEAgLTEsNiArMSw3IEBACiBpbXBvcnQgZGF0ZXRpbWUKIGltcG9ydCB3YXJuaW5ncwogaW1wb3J0IHVuaXR0ZXN0Citmcm9tIGl0ZXJ0b29scyBpbXBvcnQgcHJvZHVjdAogCiAKIGNsYXNzIFRlc3RfQXNzZXJ0aW9ucyh1bml0dGVzdC5UZXN0Q2FzZSk6CkBAIC0xNDUsNiArMTQ2LDE0IEBACiAgICAgICAgIHNlbGYudGVzdGFibGVUcnVlLl9mb3JtYXRNZXNzYWdlKG9uZSwgJ1x1RkZGRCcpCiAKICAgICBkZWYgYXNzZXJ0TWVzc2FnZXMoc2VsZiwgbWV0aG9kTmFtZSwgYXJncywgZXJyb3JzKToKKyAgICAgICAgIiIiCisgICAgICAgIENoZWNrIHRoYXQgbWV0aG9kTmFtZSgqYXJncykgcmFpc2VzIHRoZSBjb3JyZWN0IGVycm9yIG1lc3NhZ2VzLgorICAgICAgICBlcnJvcnMgc2hvdWxkIGJlIGEgbGlzdCBvZiA0IHJlZ2V4IHRoYXQgbWF0Y2ggdGhlIGVycm9yIHdoZW46CisgICAgICAgICAgMSkgbG9uZ01lc3NhZ2UgPSBGYWxzZSBhbmQgbm8gbXNnIHBhc3NlZDsKKyAgICAgICAgICAyKSBsb25nTWVzc2FnZSA9IEZhbHNlIGFuZCBtc2cgcGFzc2VkOworICAgICAgICAgIDMpIGxvbmdNZXNzYWdlID0gVHJ1ZSBhbmQgbm8gbXNnIHBhc3NlZDsKKyAgICAgICAgICA0KSBsb25nTWVzc2FnZSA9IFRydWUgYW5kIG1zZyBwYXNzZWQ7CisgICAgICAgICIiIgogICAgICAgICBkZWYgZ2V0TWV0aG9kKGkpOgogICAgICAgICAgICAgdXNlVGVzdGFibGVGYWxzZSAgPSBpIDwgMgogICAgICAgICAgICAgaWYgdXNlVGVzdGFibGVGYWxzZToKQEAgLTI4NCwzICsyOTMsNjcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbIl51bmV4cGVjdGVkbHkgaWRlbnRpY2FsOiBOb25lJCIsICJeb29wcyQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXnVuZXhwZWN0ZWRseSBpZGVudGljYWw6IE5vbmUkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl51bmV4cGVjdGVkbHkgaWRlbnRpY2FsOiBOb25lIDogb29wcyQiXSkKKworCisgICAgZGVmIGFzc2VydE1lc3NhZ2VzQ00oc2VsZiwgbWV0aG9kTmFtZSwgYXJncywgZnVuYywgZXJyb3JzKToKKyAgICAgICAgIiIiCisgICAgICAgIENoZWNrIHRoYXQgdGhlIGNvcnJlY3QgZXJyb3IgbWVzc2FnZXMgYXJlIHJhaXNlZCB3aGlsZSBleGVjdXRpbmc6CisgICAgICAgICAgd2l0aCBtZXRob2QoKmFyZ3MpOgorICAgICAgICAgICAgICBmdW5jKCkKKyAgICAgICAgKmVycm9ycyogc2hvdWxkIGJlIGEgbGlzdCBvZiA0IHJlZ2V4IHRoYXQgbWF0Y2ggdGhlIGVycm9yIHdoZW46CisgICAgICAgICAgMSkgbG9uZ01lc3NhZ2UgPSBGYWxzZSBhbmQgbm8gbXNnIHBhc3NlZDsKKyAgICAgICAgICAyKSBsb25nTWVzc2FnZSA9IEZhbHNlIGFuZCBtc2cgcGFzc2VkOworICAgICAgICAgIDMpIGxvbmdNZXNzYWdlID0gVHJ1ZSBhbmQgbm8gbXNnIHBhc3NlZDsKKyAgICAgICAgICA0KSBsb25nTWVzc2FnZSA9IFRydWUgYW5kIG1zZyBwYXNzZWQ7CisgICAgICAgICIiIgorICAgICAgICBwID0gcHJvZHVjdCgoc2VsZi50ZXN0YWJsZUZhbHNlLCBzZWxmLnRlc3RhYmxlVHJ1ZSksCisgICAgICAgICAgICAgICAgICAgICh7fSwgeyJtc2ciOiAib29wcyJ9KSkKKyAgICAgICAgZm9yIChjbHMsIGt3YXJncyksIGVyciBpbiB6aXAocCwgZXJyb3JzKToKKyAgICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIoY2xzLCBtZXRob2ROYW1lKQorICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KGNscy5mYWlsdXJlRXhjZXB0aW9uLCBlcnIpOgorICAgICAgICAgICAgICAgIHdpdGggbWV0aG9kKCphcmdzLCAqKmt3YXJncykgYXMgY206CisgICAgICAgICAgICAgICAgICAgIGZ1bmMoKQorCisgICAgZGVmIHRlc3RBc3NlcnRSYWlzZXMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0TWVzc2FnZXNDTSgnYXNzZXJ0UmFpc2VzJywgKFR5cGVFcnJvciwpLCBsYW1iZGE6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ15UeXBlRXJyb3Igbm90IHJhaXNlZCQnLCAnXm9vcHMkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXlR5cGVFcnJvciBub3QgcmFpc2VkJCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ15UeXBlRXJyb3Igbm90IHJhaXNlZCA6IG9vcHMkJ10pCisKKyAgICBkZWYgdGVzdEFzc2VydFJhaXNlc1JlZ2V4KHNlbGYpOgorICAgICAgICAjIHRlc3QgZXJyb3Igbm90IHJhaXNlZAorICAgICAgICBzZWxmLmFzc2VydE1lc3NhZ2VzQ00oJ2Fzc2VydFJhaXNlc1JlZ2V4JywgKFR5cGVFcnJvciwgJ3VudXNlZCByZWdleCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydeVHlwZUVycm9yIG5vdCByYWlzZWQkJywgJ15vb3BzJCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ15UeXBlRXJyb3Igbm90IHJhaXNlZCQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdeVHlwZUVycm9yIG5vdCByYWlzZWQgOiBvb3BzJCddKQorICAgICAgICAjIHRlc3QgZXJyb3IgcmFpc2VkIGJ1dCB3aXRoIHdyb25nIG1lc3NhZ2UKKyAgICAgICAgZGVmIHJhaXNlX3dyb25nX21lc3NhZ2UoKToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcignZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRNZXNzYWdlc0NNKCdhc3NlcnRSYWlzZXNSZWdleCcsIChUeXBlRXJyb3IsICdyZWdleCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2Vfd3JvbmdfbWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnXiJyZWdleCIgZG9lcyBub3QgbWF0Y2ggImZvbyIkJywgJ15vb3BzJCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ14icmVnZXgiIGRvZXMgbm90IG1hdGNoICJmb28iJCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ14icmVnZXgiIGRvZXMgbm90IG1hdGNoICJmb28iIDogb29wcyQnXSkKKworICAgIGRlZiB0ZXN0QXNzZXJ0V2FybnMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0TWVzc2FnZXNDTSgnYXNzZXJ0V2FybnMnLCAoVXNlcldhcm5pbmcsKSwgbGFtYmRhOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydeVXNlcldhcm5pbmcgbm90IHRyaWdnZXJlZCQnLCAnXm9vcHMkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXlVzZXJXYXJuaW5nIG5vdCB0cmlnZ2VyZWQkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXlVzZXJXYXJuaW5nIG5vdCB0cmlnZ2VyZWQgOiBvb3BzJCddKQorCisgICAgZGVmIHRlc3RBc3NlcnRXYXJuc1JlZ2V4KHNlbGYpOgorICAgICAgICAjIHRlc3QgZXJyb3Igbm90IHJhaXNlZAorICAgICAgICBzZWxmLmFzc2VydE1lc3NhZ2VzQ00oJ2Fzc2VydFdhcm5zUmVnZXgnLCAoVXNlcldhcm5pbmcsICd1bnVzZWQgcmVnZXgnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYTogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnXlVzZXJXYXJuaW5nIG5vdCB0cmlnZ2VyZWQkJywgJ15vb3BzJCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ15Vc2VyV2FybmluZyBub3QgdHJpZ2dlcmVkJCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ15Vc2VyV2FybmluZyBub3QgdHJpZ2dlcmVkIDogb29wcyQnXSkKKyAgICAgICAgIyB0ZXN0IHdhcm5pbmcgcmFpc2VkIGJ1dCB3aXRoIHdyb25nIG1lc3NhZ2UKKyAgICAgICAgZGVmIHJhaXNlX3dyb25nX21lc3NhZ2UoKToKKyAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oJ2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0TWVzc2FnZXNDTSgnYXNzZXJ0V2FybnNSZWdleCcsIChVc2VyV2FybmluZywgJ3JlZ2V4JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZV93cm9uZ19tZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydeInJlZ2V4IiBkb2VzIG5vdCBtYXRjaCAiZm9vIiQnLCAnXm9vcHMkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXiJyZWdleCIgZG9lcyBub3QgbWF0Y2ggImZvbyIkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXiJyZWdleCIgZG9lcyBub3QgbWF0Y2ggImZvbyIgOiBvb3BzJCddKQpkaWZmIC0tZ2l0IGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9jYXNlLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9jYXNlLnB5CmluZGV4IGM3NGE1MzkuLmZkYjJlNzggMTAwNjQ0Ci0tLSBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfY2FzZS5weQorKysgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X2Nhc2UucHkKQEAgLTQsNiArNCw3IEBACiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKIGltcG9ydCB3YXJuaW5ncworaW1wb3J0IHdlYWtyZWYKIGltcG9ydCBpbnNwZWN0CiAKIGZyb20gY29weSBpbXBvcnQgZGVlcGNvcHkKQEAgLTM4NiwyNyArMzg3LDYyIEBACiAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShGb28oKS5pZCgpLCBzdHIpCiAKIAotICAgICMgIklmIHJlc3VsdCBpcyBvbWl0dGVkIG9yIE5vbmUsIGEgdGVtcG9yYXJ5IHJlc3VsdCBvYmplY3QgaXMgY3JlYXRlZAotICAgICMgYW5kIHVzZWQsIGJ1dCBpcyBub3QgbWFkZSBhdmFpbGFibGUgdG8gdGhlIGNhbGxlci4gQXMgVGVzdENhc2Ugb3ducyB0aGUKKyAgICAjICJJZiByZXN1bHQgaXMgb21pdHRlZCBvciBOb25lLCBhIHRlbXBvcmFyeSByZXN1bHQgb2JqZWN0IGlzIGNyZWF0ZWQsCisgICAgIyB1c2VkLCBhbmQgaXMgbWFkZSBhdmFpbGFibGUgdG8gdGhlIGNhbGxlci4gQXMgVGVzdENhc2Ugb3ducyB0aGUKICAgICAjIHRlbXBvcmFyeSByZXN1bHQgc3RhcnRUZXN0UnVuIGFuZCBzdG9wVGVzdFJ1biBhcmUgY2FsbGVkLgogCiAgICAgZGVmIHRlc3RfcnVuX191c2VzX2RlZmF1bHRUZXN0UmVzdWx0KHNlbGYpOgogICAgICAgICBldmVudHMgPSBbXQorICAgICAgICBkZWZhdWx0UmVzdWx0ID0gTG9nZ2luZ1Jlc3VsdChldmVudHMpCiAKICAgICAgICAgY2xhc3MgRm9vKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgogICAgICAgICAgICAgICAgIGV2ZW50cy5hcHBlbmQoJ3Rlc3QnKQogCiAgICAgICAgICAgICBkZWYgZGVmYXVsdFRlc3RSZXN1bHQoc2VsZik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIExvZ2dpbmdSZXN1bHQoZXZlbnRzKQorICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0UmVzdWx0CiAKICAgICAgICAgIyBNYWtlIHJ1bigpIGZpbmQgYSByZXN1bHQgb2JqZWN0IG9uIGl0cyBvd24KLSAgICAgICAgRm9vKCd0ZXN0JykucnVuKCkKKyAgICAgICAgcmVzdWx0ID0gRm9vKCd0ZXN0JykucnVuKCkKIAorICAgICAgICBzZWxmLmFzc2VydElzKHJlc3VsdCwgZGVmYXVsdFJlc3VsdCkKICAgICAgICAgZXhwZWN0ZWQgPSBbJ3N0YXJ0VGVzdFJ1bicsICdzdGFydFRlc3QnLCAndGVzdCcsICdhZGRTdWNjZXNzJywKICAgICAgICAgICAgICdzdG9wVGVzdCcsICdzdG9wVGVzdFJ1biddCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXZlbnRzLCBleHBlY3RlZCkKIAorCisgICAgIyAiVGhlIHJlc3VsdCBvYmplY3QgaXMgcmV0dXJuZWQgdG8gcnVuJ3MgY2FsbGVyIgorICAgIGRlZiB0ZXN0X3J1bl9fcmV0dXJuc19naXZlbl9yZXN1bHQoc2VsZik6CisKKyAgICAgICAgY2xhc3MgRm9vKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICByZXN1bHQgPSB1bml0dGVzdC5UZXN0UmVzdWx0KCkKKworICAgICAgICByZXR2YWwgPSBGb28oJ3Rlc3QnKS5ydW4ocmVzdWx0KQorICAgICAgICBzZWxmLmFzc2VydElzKHJldHZhbCwgcmVzdWx0KQorCisKKyAgICAjICJUaGUgc2FtZSBlZmZlY3QgW2FzIG1ldGhvZCBydW5dIG1heSBiZSBoYWQgYnkgc2ltcGx5IGNhbGxpbmcgdGhlCisgICAgIyBUZXN0Q2FzZSBpbnN0YW5jZS4iCisgICAgZGVmIHRlc3RfY2FsbF9faW52b2tpbmdfYW5faW5zdGFuY2VfZGVsZWdhdGVzX3RvX3J1bihzZWxmKToKKyAgICAgICAgcmVzdWx0SW4gPSB1bml0dGVzdC5UZXN0UmVzdWx0KCkKKyAgICAgICAgcmVzdWx0T3V0ID0gdW5pdHRlc3QuVGVzdFJlc3VsdCgpCisKKyAgICAgICAgY2xhc3MgRm9vKHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICAgICAgICAgIGRlZiB0ZXN0KHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgZGVmIHJ1bihzZWxmLCByZXN1bHQpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMocmVzdWx0LCByZXN1bHRJbikKKyAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0T3V0CisKKyAgICAgICAgcmV0dmFsID0gRm9vKCd0ZXN0JykocmVzdWx0SW4pCisKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhyZXR2YWwsIHJlc3VsdE91dCkKKworCiAgICAgZGVmIHRlc3RTaG9ydERlc2NyaXB0aW9uV2l0aG91dERvY3N0cmluZyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUoc2VsZi5zaG9ydERlc2NyaXB0aW9uKCkpCiAKQEAgLTExNDAsNyArMTE3Niw2IEBACiAgICAgICAgICAgICAoc2VsZi5hc3NlcnRfLCAoVHJ1ZSwpKSwKICAgICAgICAgICAgIChzZWxmLmZhaWxVbmxlc3NSYWlzZXMsIChUeXBlRXJyb3IsIGxhbWJkYSBfOiAzLjE0ICsgJ3NwYW0nKSksCiAgICAgICAgICAgICAoc2VsZi5mYWlsSWYsIChGYWxzZSwpKSwKLSAgICAgICAgICAgIChzZWxmLmFzc2VydFNhbWVFbGVtZW50cywgKFsxLCAxLCAyLCAzXSwgWzEsIDIsIDNdKSksCiAgICAgICAgICAgICAoc2VsZi5hc3NlcnREaWN0Q29udGFpbnNTdWJzZXQsIChkaWN0KGE9MSwgYj0yKSwgZGljdChhPTEsIGI9MiwgYz0zKSkpLAogICAgICAgICAgICAgKHNlbGYuYXNzZXJ0UmFpc2VzUmVnZXhwLCAoS2V5RXJyb3IsICdmb28nLCBsYW1iZGE6IHt9Wydmb28nXSkpLAogICAgICAgICAgICAgKHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcywgKCdiYXInLCAnYmFyJykpLApAQCAtMTE0OSwxOCArMTE4NCwyMCBAQAogICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFdhcm5zKERlcHJlY2F0aW9uV2FybmluZyk6CiAgICAgICAgICAgICAgICAgbWV0aCgqYXJncykKIAotICAgIGRlZiB0ZXN0RGVwcmVjYXRlZEZhaWxNZXRob2RzKHNlbGYpOgotICAgICAgICAiIiJUZXN0IHRoYXQgdGhlIGRlcHJlY2F0ZWQgZmFpbCogbWV0aG9kcyBnZXQgcmVtb3ZlZCBpbiAzLjMiIiIKKyAgICAjIGRpc2FibGUgdGhpcyB0ZXN0IGZvciBub3cuIFdoZW4gdGhlIHZlcnNpb24gd2hlcmUgdGhlIGZhaWwqIG1ldGhvZHMgd2lsbAorICAgICMgYmUgcmVtb3ZlZCBpcyBkZWNpZGVkLCByZS1lbmFibGUgaXQgYW5kIHVwZGF0ZSB0aGUgdmVyc2lvbgorICAgIGRlZiBfdGVzdERlcHJlY2F0ZWRGYWlsTWV0aG9kcyhzZWxmKToKKyAgICAgICAgIiIiVGVzdCB0aGF0IHRoZSBkZXByZWNhdGVkIGZhaWwqIG1ldGhvZHMgZ2V0IHJlbW92ZWQgaW4gMy54IiIiCiAgICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bOjJdIDwgKDMsIDMpOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIGRlcHJlY2F0ZWRfbmFtZXMgPSBbCiAgICAgICAgICAgICAnZmFpbElmRXF1YWwnLCAnZmFpbFVubGVzc0VxdWFsJywgJ2ZhaWxVbmxlc3NBbG1vc3RFcXVhbCcsCiAgICAgICAgICAgICAnZmFpbElmQWxtb3N0RXF1YWwnLCAnZmFpbFVubGVzcycsICdmYWlsVW5sZXNzUmFpc2VzJywgJ2ZhaWxJZicsCi0gICAgICAgICAgICAnYXNzZXJ0U2FtZUVsZW1lbnRzJywgJ2Fzc2VydERpY3RDb250YWluc1N1YnNldCcsCisgICAgICAgICAgICAnYXNzZXJ0RGljdENvbnRhaW5zU3Vic2V0JywKICAgICAgICAgXQogICAgICAgICBmb3IgZGVwcmVjYXRlZF9uYW1lIGluIGRlcHJlY2F0ZWRfbmFtZXM6CiAgICAgICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yKToKLSAgICAgICAgICAgICAgICBnZXRhdHRyKHNlbGYsIGRlcHJlY2F0ZWRfbmFtZSkgICMgcmVtb3ZlIHRoZXNlIGluIDMuMworICAgICAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgZGVwcmVjYXRlZF9uYW1lKSAgIyByZW1vdmUgdGhlc2UgaW4gMy54CiAKICAgICBkZWYgdGVzdERlZXBjb3B5KHNlbGYpOgogICAgICAgICAjIElzc3VlOiA1NjYwCkBAIC0xMjY4LDMgKzEzMDUsMTEgQEAKICAgICAgICAgICAgIGtsYXNzKCd0ZXN0X3NvbWV0aGluZycpLnJ1bihyZXN1bHQpCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihyZXN1bHQuZXJyb3JzKSwgMSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LnRlc3RzUnVuLCAxKQorCisgICAgQHN1cHBvcnQuY3B5dGhvbl9vbmx5CisgICAgZGVmIHRlc3ROb0N5Y2xlcyhzZWxmKToKKyAgICAgICAgY2FzZSA9IHVuaXR0ZXN0LlRlc3RDYXNlKCkKKyAgICAgICAgd3IgPSB3ZWFrcmVmLnJlZihjYXNlKQorICAgICAgICB3aXRoIHN1cHBvcnQuZGlzYWJsZV9nYygpOgorICAgICAgICAgICAgZGVsIGNhc2UKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uod3IoKSkKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfbG9hZGVyLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9sb2FkZXIucHkKaW5kZXggZjdlMzFhNS4uZDFiOWVmNSAxMDA2NDQKLS0tIGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9sb2FkZXIucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9sb2FkZXIucHkKQEAgLTIzOSw3ICsyMzksNyBAQAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBsb2FkZXIubG9hZFRlc3RzRnJvbU5hbWUoJ3NkYXNmYXNmYXNkZicpCiAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBlOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoZSksICJObyBtb2R1bGUgbmFtZWQgc2Rhc2Zhc2Zhc2RmIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGUpLCAiTm8gbW9kdWxlIG5hbWVkICdzZGFzZmFzZmFzZGYnIikKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuZmFpbCgiVGVzdExvYWRlci5sb2FkVGVzdHNGcm9tTmFtZSBmYWlsZWQgdG8gcmFpc2UgSW1wb3J0RXJyb3IiKQogCkBAIC02MTksNyArNjE5LDcgQEAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgbG9hZGVyLmxvYWRUZXN0c0Zyb21OYW1lcyhbJ3NkYXNmYXNmYXNkZiddKQogICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgZToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGUpLCAiTm8gbW9kdWxlIG5hbWVkIHNkYXNmYXNmYXNkZiIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihlKSwgIk5vIG1vZHVsZSBuYW1lZCAnc2Rhc2Zhc2Zhc2RmJyIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmZhaWwoIlRlc3RMb2FkZXIubG9hZFRlc3RzRnJvbU5hbWVzIGZhaWxlZCB0byByYWlzZSBJbXBvcnRFcnJvciIpCiAKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfcHJvZ3JhbS5weSBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3RfcHJvZ3JhbS5weQppbmRleCBkNWQwZjVhLi45Nzk0ODY4IDEwMDY0NAotLS0gYS9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0X3Byb2dyYW0ucHkKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdF9wcm9ncmFtLnB5CkBAIC0xMzEsMjMgKzEzMSw2IEBACiAgICAgICAgIEZha2VSdW5uZXIudGVzdCA9IE5vbmUKICAgICAgICAgRmFrZVJ1bm5lci5yYWlzZUVycm9yID0gRmFsc2UKIAotICAgIGRlZiB0ZXN0SGVscEFuZFVua25vd24oc2VsZik6Ci0gICAgICAgIHByb2dyYW0gPSBzZWxmLnByb2dyYW0KLSAgICAgICAgZGVmIHVzYWdlRXhpdChtc2c9Tm9uZSk6Ci0gICAgICAgICAgICBwcm9ncmFtLm1zZyA9IG1zZwotICAgICAgICAgICAgcHJvZ3JhbS5leGl0ID0gVHJ1ZQotICAgICAgICBwcm9ncmFtLnVzYWdlRXhpdCA9IHVzYWdlRXhpdAotCi0gICAgICAgIGZvciBvcHQgaW4gJy1oJywgJy1IJywgJy0taGVscCc6Ci0gICAgICAgICAgICBwcm9ncmFtLmV4aXQgPSBGYWxzZQotICAgICAgICAgICAgcHJvZ3JhbS5wYXJzZUFyZ3MoW05vbmUsIG9wdF0pCi0gICAgICAgICAgICBzZWxmLmFzc2VydFRydWUocHJvZ3JhbS5leGl0KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUocHJvZ3JhbS5tc2cpCi0KLSAgICAgICAgcHJvZ3JhbS5wYXJzZUFyZ3MoW05vbmUsICctJCddKQotICAgICAgICBzZWxmLmFzc2VydFRydWUocHJvZ3JhbS5leGl0KQotICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShwcm9ncmFtLm1zZykKLQogICAgIGRlZiB0ZXN0VmVyYm9zaXR5KHNlbGYpOgogICAgICAgICBwcm9ncmFtID0gc2VsZi5wcm9ncmFtCiAKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL19faW5pdF9fLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODdkN2FlOQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTcgQEAKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IHVuaXR0ZXN0CisKKworaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK2xvYWRlciA9IHVuaXR0ZXN0LmRlZmF1bHRUZXN0TG9hZGVyCisKK2RlZiBsb2FkX3Rlc3RzKCphcmdzKToKKyAgICBzdWl0ZSA9IHVuaXR0ZXN0LlRlc3RTdWl0ZSgpCisgICAgZm9yIGZuIGluIG9zLmxpc3RkaXIoaGVyZSk6CisgICAgICAgIGlmIGZuLnN0YXJ0c3dpdGgoInRlc3QiKSBhbmQgZm4uZW5kc3dpdGgoIi5weSIpOgorICAgICAgICAgICAgbW9kbmFtZSA9ICJ1bml0dGVzdC50ZXN0LnRlc3Rtb2NrLiIgKyBmbls6LTNdCisgICAgICAgICAgICBfX2ltcG9ydF9fKG1vZG5hbWUpCisgICAgICAgICAgICBtb2R1bGUgPSBzeXMubW9kdWxlc1ttb2RuYW1lXQorICAgICAgICAgICAgc3VpdGUuYWRkVGVzdChsb2FkZXIubG9hZFRlc3RzRnJvbU1vZHVsZShtb2R1bGUpKQorICAgIHJldHVybiBzdWl0ZQpkaWZmIC0tZ2l0IGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svc3VwcG9ydC5weSBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3N1cHBvcnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjQ3Mzg3OQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3N1cHBvcnQucHkKQEAgLTAsMCArMSwyMyBAQAoraW1wb3J0IHN5cworCitkZWYgaXNfaW5zdGFuY2Uob2JqLCBrbGFzcyk6CisgICAgIiIiVmVyc2lvbiBvZiBpc19pbnN0YW5jZSB0aGF0IGRvZXNuJ3QgYWNjZXNzIF9fY2xhc3NfXyIiIgorICAgIHJldHVybiBpc3N1YmNsYXNzKHR5cGUob2JqKSwga2xhc3MpCisKKworY2xhc3MgU29tZUNsYXNzKG9iamVjdCk6CisgICAgY2xhc3NfYXR0cmlidXRlID0gTm9uZQorCisgICAgZGVmIHdpYmJsZShzZWxmKToKKyAgICAgICAgcGFzcworCisKK2NsYXNzIFgob2JqZWN0KToKKyAgICBwYXNzCisKKworZGVmIGV4YW1pbmVfd2FybmluZ3MoZnVuYyk6CisgICAgZGVmIHdyYXBwZXIoKToKKyAgICAgICAgd2l0aCBjYXRjaF93YXJuaW5ncyhyZWNvcmQ9VHJ1ZSkgYXMgd3M6CisgICAgICAgICAgICBmdW5jKHdzKQorICAgIHJldHVybiB3cmFwcGVyCmRpZmYgLS1naXQgYS9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0bW9jay90ZXN0Y2FsbGFibGUucHkgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0bW9jay90ZXN0Y2FsbGFibGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IyZGQwMAotLS0gL2Rldi9udWxsCisrKyBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3RjYWxsYWJsZS5weQpAQCAtMCwwICsxLDE0NyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMDctMjAxMiBNaWNoYWVsIEZvb3JkICYgdGhlIG1vY2sgdGVhbQorIyBFLW1haWw6IGZ1enp5bWFuIEFUIHZvaWRzcGFjZSBET1Qgb3JnIERPVCB1aworIyBodHRwOi8vd3d3LnZvaWRzcGFjZS5vcmcudWsvcHl0aG9uL21vY2svCisKK2ltcG9ydCB1bml0dGVzdAorZnJvbSB1bml0dGVzdC50ZXN0LnRlc3Rtb2NrLnN1cHBvcnQgaW1wb3J0IGlzX2luc3RhbmNlLCBYLCBTb21lQ2xhc3MKKworZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCAoCisgICAgTW9jaywgTWFnaWNNb2NrLCBOb25DYWxsYWJsZU1hZ2ljTW9jaywKKyAgICBOb25DYWxsYWJsZU1vY2ssIHBhdGNoLCBjcmVhdGVfYXV0b3NwZWMsCisgICAgQ2FsbGFibGVNaXhpbgorKQorCisKKworY2xhc3MgVGVzdENhbGxhYmxlKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiBhc3NlcnROb3RDYWxsYWJsZShzZWxmLCBtb2NrKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzX2luc3RhbmNlKG1vY2ssIE5vbkNhbGxhYmxlTWFnaWNNb2NrKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShpc19pbnN0YW5jZShtb2NrLCBDYWxsYWJsZU1peGluKSkKKworCisgICAgZGVmIHRlc3Rfbm9uX2NhbGxhYmxlKHNlbGYpOgorICAgICAgICBmb3IgbW9jayBpbiBOb25DYWxsYWJsZU1hZ2ljTW9jaygpLCBOb25DYWxsYWJsZU1vY2soKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jaykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihtb2NrLCAnX19jYWxsX18nKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4obW9jay5fX2NsYXNzX18uX19uYW1lX18sIHJlcHIobW9jaykpCisKKworICAgIGRlZiB0ZXN0X2hlaXJhcmNoeShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoTWFnaWNNb2NrLCBNb2NrKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3MoTm9uQ2FsbGFibGVNYWdpY01vY2ssIE5vbkNhbGxhYmxlTW9jaykpCisKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZXMoc2VsZik6CisgICAgICAgIG9uZSA9IE5vbkNhbGxhYmxlTW9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKHR5cGUob25lLm9uZSksIE1vY2spKQorCisgICAgICAgIHR3byA9IE5vbkNhbGxhYmxlTWFnaWNNb2NrKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3ModHlwZSh0d28udHdvKSwgTWFnaWNNb2NrKSkKKworCisgICAgZGVmIHRlc3Rfc3ViY2xhc3NlcyhzZWxmKToKKyAgICAgICAgY2xhc3MgTW9ja1N1YihNb2NrKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBvbmUgPSBNb2NrU3ViKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzc3ViY2xhc3ModHlwZShvbmUub25lKSwgTW9ja1N1YikpCisKKyAgICAgICAgY2xhc3MgTWFnaWNTdWIoTWFnaWNNb2NrKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICB0d28gPSBNYWdpY1N1YigpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc3N1YmNsYXNzKHR5cGUodHdvLnR3byksIE1hZ2ljU3ViKSkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfc3BlYyhzZWxmKToKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoKCclcy5YJyAlIF9fbmFtZV9fLCBzcGVjPVRydWUpCisgICAgICAgIG1vY2sgPSBwYXRjaGVyLnN0YXJ0KCkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHBhdGNoZXIuc3RvcCkKKworICAgICAgICBpbnN0YW5jZSA9IG1vY2soKQorICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKworICAgICAgICBzZWxmLmFzc2VydE5vdENhbGxhYmxlKGluc3RhbmNlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGluc3RhbmNlKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9zcGVjX3NldChzZWxmKToKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoKCclcy5YJyAlIF9fbmFtZV9fLCBzcGVjX3NldD1UcnVlKQorICAgICAgICBtb2NrID0gcGF0Y2hlci5zdGFydCgpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChwYXRjaGVyLnN0b3ApCisKKyAgICAgICAgaW5zdGFuY2UgPSBtb2NrKCkKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnROb3RDYWxsYWJsZShpbnN0YW5jZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpbnN0YW5jZSkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfc3BlY19pbnN0YW5jZShzZWxmKToKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoKCclcy5YJyAlIF9fbmFtZV9fLCBzcGVjPVgoKSkKKyAgICAgICAgbW9jayA9IHBhdGNoZXIuc3RhcnQoKQorICAgICAgICBzZWxmLmFkZENsZWFudXAocGF0Y2hlci5zdG9wKQorCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90Q2FsbGFibGUobW9jaykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtb2NrKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9zcGVjX3NldF9pbnN0YW5jZShzZWxmKToKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoKCclcy5YJyAlIF9fbmFtZV9fLCBzcGVjX3NldD1YKCkpCisgICAgICAgIG1vY2sgPSBwYXRjaGVyLnN0YXJ0KCkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHBhdGNoZXIuc3RvcCkKKworICAgICAgICBzZWxmLmFzc2VydE5vdENhbGxhYmxlKG1vY2spCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jaykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfc3BlY19jYWxsYWJsZV9jbGFzcyhzZWxmKToKKyAgICAgICAgY2xhc3MgQ2FsbGFibGVYKFgpOgorICAgICAgICAgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBjbGFzcyBTdWIoQ2FsbGFibGVYKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBjbGFzcyBNdWx0aShTb21lQ2xhc3MsIFN1Yik6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgZm9yIGFyZyBpbiAnc3BlYycsICdzcGVjX3NldCc6CisgICAgICAgICAgICBmb3IgS2xhc3MgaW4gQ2FsbGFibGVYLCBTdWIsIE11bHRpOgorICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goJyVzLlgnICUgX19uYW1lX18sICoqe2FyZzogS2xhc3N9KSBhcyBtb2NrOgorICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IG1vY2soKQorICAgICAgICAgICAgICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKworICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfaW5zdGFuY2UoaW5zdGFuY2UsIE1hZ2ljTW9jaykpCisgICAgICAgICAgICAgICAgICAgICMgaW5oZXJpdGVkIHNwZWMKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIGluc3RhbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9vYmFyYmF6JykKKworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBpbnN0YW5jZSgpCisgICAgICAgICAgICAgICAgICAgICMgaW5zdGFuY2UgaXMgY2FsbGFibGUsIHJlc3VsdCBoYXMgbm8gc3BlYworICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgpCisKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0KDMsIDIsIDEpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgzLCAyLCAxKQorICAgICAgICAgICAgICAgICAgICByZXN1bHQuZm9vKDMsIDIsIDEpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5mb28uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoMywgMiwgMSkKKworCisgICAgZGVmIHRlc3RfY3JlYXRlX2F1dG9wc2VjKHNlbGYpOgorICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKFgpCisgICAgICAgIGluc3RhbmNlID0gbW9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW5zdGFuY2UpCisKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhYKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jaykKKworCisgICAgZGVmIHRlc3RfY3JlYXRlX2F1dG9zcGVjX2luc3RhbmNlKHNlbGYpOgorICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKFNvbWVDbGFzcywgaW5zdGFuY2U9VHJ1ZSkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1vY2spCisgICAgICAgIG1vY2sud2liYmxlKCkKKyAgICAgICAgbW9jay53aWJibGUuYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jay53aWJibGUsICdzb21lJywgICdhcmdzJykKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3RoZWxwZXJzLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdGhlbHBlcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJmYjI5MwotLS0gL2Rldi9udWxsCisrKyBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3RoZWxwZXJzLnB5CkBAIC0wLDAgKzEsODg5IEBACitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCAoCisgICAgY2FsbCwgX0NhbGwsIGNyZWF0ZV9hdXRvc3BlYywgTWFnaWNNb2NrLAorICAgIE1vY2ssIEFOWSwgX0NhbGxMaXN0LCBwYXRjaCwgUHJvcGVydHlNb2NrCispCisKK2Zyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCisKK2NsYXNzIFNvbWVDbGFzcyhvYmplY3QpOgorICAgIGRlZiBvbmUoc2VsZiwgYSwgYik6CisgICAgICAgIHBhc3MKKyAgICBkZWYgdHdvKHNlbGYpOgorICAgICAgICBwYXNzCisgICAgZGVmIHRocmVlKHNlbGYsIGE9Tm9uZSk6CisgICAgICAgIHBhc3MKKworCisKK2NsYXNzIEFueVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfYW55KHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEFOWSwgb2JqZWN0KCkpCisKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBtb2NrKEFOWSkKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoQU5ZKQorCisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jayhmb289QU5ZKQorICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aChmb289QU5ZKQorCisgICAgZGVmIHRlc3RfcmVwcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKEFOWSksICc8QU5ZPicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKEFOWSksICc8QU5ZPicpCisKKworICAgIGRlZiB0ZXN0X2FueV9hbmRfZGF0ZXRpbWUoc2VsZik6CisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jayhkYXRldGltZS5ub3coKSwgZm9vPWRhdGV0aW1lLm5vdygpKQorCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKEFOWSwgZm9vPUFOWSkKKworCisgICAgZGVmIHRlc3RfYW55X21vY2tfY2FsbHNfY29tcGFyaXNvbl9vcmRlcihzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBkID0gZGF0ZXRpbWUubm93KCkKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGRlZiBfX25lX18oc2VsZiwgb3RoZXIpOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgZm9yIGQgaW4gZGF0ZXRpbWUubm93KCksIEZvbygpOgorICAgICAgICAgICAgbW9jay5yZXNldF9tb2NrKCkKKworICAgICAgICAgICAgbW9jayhkLCBmb289ZCwgYmFyPWQpCisgICAgICAgICAgICBtb2NrLm1ldGhvZChkLCB6aW5nYT1kLCBhbHBoYT1kKQorICAgICAgICAgICAgbW9jaygpLm1ldGhvZChhMT1kLCB6OTk9ZCkKKworICAgICAgICAgICAgZXhwZWN0ZWQgPSBbCisgICAgICAgICAgICAgICAgY2FsbChBTlksIGZvbz1BTlksIGJhcj1BTlkpLAorICAgICAgICAgICAgICAgIGNhbGwubWV0aG9kKEFOWSwgemluZ2E9QU5ZLCBhbHBoYT1BTlkpLAorICAgICAgICAgICAgICAgIGNhbGwoKSwgY2FsbCgpLm1ldGhvZChhMT1BTlksIHo5OT1BTlkpCisgICAgICAgICAgICBdCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCBtb2NrLm1vY2tfY2FsbHMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2subW9ja19jYWxscywgZXhwZWN0ZWQpCisKKworCitjbGFzcyBDYWxsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdF9jYWxsX3dpdGhfY2FsbChzZWxmKToKKyAgICAgICAga2FsbCA9IF9DYWxsKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrYWxsLCBfQ2FsbCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGthbGwsIF9DYWxsKCgnJywpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrYWxsLCBfQ2FsbCgoKCksKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2FsbCwgX0NhbGwoKHt9LCkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGthbGwsIF9DYWxsKCgnJywgKCkpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrYWxsLCBfQ2FsbCgoJycsIHt9KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2FsbCwgX0NhbGwoKCcnLCAoKSwge30pKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrYWxsLCBfQ2FsbCgoJ2ZvbycsKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2FsbCwgX0NhbGwoKCdiYXInLCAoKSkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGthbGwsIF9DYWxsKCgnYmF6Jywge30pKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrYWxsLCBfQ2FsbCgoJ3NwYW0nLCAoKSwge30pKSkKKworICAgICAgICBrYWxsID0gX0NhbGwoKCgxLCAyLCAzKSwpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGthbGwsIF9DYWxsKCgoMSwgMiwgMyksKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2FsbCwgX0NhbGwoKCcnLCAoMSwgMiwgMykpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrYWxsLCBfQ2FsbCgoKDEsIDIsIDMpLCB7fSkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGthbGwsIF9DYWxsKCgnJywgKDEsIDIsIDMpLCB7fSkpKQorCisgICAgICAgIGthbGwgPSBfQ2FsbCgoKDEsIDIsIDQpLCkpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoa2FsbCwgX0NhbGwoKCcnLCAoMSwgMiwgMykpKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChrYWxsLCBfQ2FsbCgoJycsICgxLCAyLCAzKSwge30pKSkKKworICAgICAgICBrYWxsID0gX0NhbGwoKCdmb28nLCAoMSwgMiwgNCksKSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChrYWxsLCBfQ2FsbCgoJycsICgxLCAyLCA0KSkpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGthbGwsIF9DYWxsKCgnJywgKDEsIDIsIDQpLCB7fSkpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGthbGwsIF9DYWxsKCgnYmFyJywgKDEsIDIsIDQpKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoa2FsbCwgX0NhbGwoKCdiYXInLCAoMSwgMiwgNCksIHt9KSkpCisKKyAgICAgICAga2FsbCA9IF9DYWxsKCh7J2EnOiAzfSwpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGthbGwsIF9DYWxsKCgnJywgKCksIHsnYSc6IDN9KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2FsbCwgX0NhbGwoKCcnLCB7J2EnOiAzfSkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGthbGwsIF9DYWxsKCgoKSwgeydhJzogM30pKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChrYWxsLCBfQ2FsbCgoeydhJzogM30sKSkpCisKKworICAgIGRlZiB0ZXN0X2VtcHR5X19DYWxsKHNlbGYpOgorICAgICAgICBhcmdzID0gX0NhbGwoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCdmb28nLCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCgpLCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCdmb28nLCAoKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCdmb28nLCgpLCB7fSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCdmb28nLCB7fSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKHt9LCkpCisKKworICAgIGRlZiB0ZXN0X25hbWVkX2VtcHR5X2NhbGwoc2VsZik6CisgICAgICAgIGFyZ3MgPSBfQ2FsbCgoJ2ZvbycsICgpLCB7fSkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCAoJ2ZvbycsKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCAoJ2ZvbycsICgpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCAoJ2ZvbycsKCksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCAoJ2ZvbycsIHt9KSkKKworICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGFyZ3MsICgoKSwpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGFyZ3MsICgpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGFyZ3MsICh7fSwpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGFyZ3MsICgnYmFyJywpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGFyZ3MsICgnYmFyJywgKCkpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGFyZ3MsICgnYmFyJywge30pKQorCisKKyAgICBkZWYgdGVzdF9jYWxsX3dpdGhfYXJncyhzZWxmKToKKyAgICAgICAgYXJncyA9IF9DYWxsKCgoMSwgMiwgMyksIHt9KSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZ3MsICgoMSwgMiwgMyksKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCAoJ2ZvbycsICgxLCAyLCAzKSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCdmb28nLCAoMSwgMiwgMyksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCAoKDEsIDIsIDMpLCB7fSkpCisKKworICAgIGRlZiB0ZXN0X25hbWVkX2NhbGxfd2l0aF9hcmdzKHNlbGYpOgorICAgICAgICBhcmdzID0gX0NhbGwoKCdmb28nLCAoMSwgMiwgMyksIHt9KSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZ3MsICgnZm9vJywgKDEsIDIsIDMpKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCAoJ2ZvbycsICgxLCAyLCAzKSwge30pKQorCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoYXJncywgKCgxLCAyLCAzKSwpKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGFyZ3MsICgoMSwgMiwgMyksIHt9KSkKKworCisgICAgZGVmIHRlc3RfY2FsbF93aXRoX2t3YXJncyhzZWxmKToKKyAgICAgICAgYXJncyA9IF9DYWxsKCgoKSwgZGljdChhPTMsIGI9NCkpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKGRpY3QoYT0zLCBiPTQpLCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCdmb28nLCBkaWN0KGE9MywgYj00KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCdmb28nLCAoKSwgZGljdChhPTMsIGI9NCkpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZ3MsICgoKSwgZGljdChhPTMsIGI9NCkpKQorCisKKyAgICBkZWYgdGVzdF9uYW1lZF9jYWxsX3dpdGhfa3dhcmdzKHNlbGYpOgorICAgICAgICBhcmdzID0gX0NhbGwoKCdmb28nLCAoKSwgZGljdChhPTMsIGI9NCkpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCdmb28nLCBkaWN0KGE9MywgYj00KSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXJncywgKCdmb28nLCAoKSwgZGljdChhPTMsIGI9NCkpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoYXJncywgKGRpY3QoYT0zLCBiPTQpLCkpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoYXJncywgKCgpLCBkaWN0KGE9MywgYj00KSkpCisKKworICAgIGRlZiB0ZXN0X2NhbGxfd2l0aF9hcmdzX2NhbGxfZW1wdHlfbmFtZShzZWxmKToKKyAgICAgICAgYXJncyA9IF9DYWxsKCgoMSwgMiwgMyksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCBjYWxsKDEsIDIsIDMpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhbGwoMSwgMiwgMyksIGFyZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjYWxsKDEsIDIsIDMpIGluIFthcmdzXSkKKworCisgICAgZGVmIHRlc3RfY2FsbF9uZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChfQ2FsbCgoKDEsIDIsIDMpLCkpLCBjYWxsKDEsIDIpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKF9DYWxsKCgoMSwgMiwgMyksKSkgIT0gY2FsbCgxLCAyLCAzKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKF9DYWxsKCgoMSwgMiksIHt9KSkgIT0gY2FsbCgxLCAyLCAzKSkKKworCisgICAgZGVmIHRlc3RfY2FsbF9ub25fdHVwbGVzKHNlbGYpOgorICAgICAgICBrYWxsID0gX0NhbGwoKCgxLCAyLCAzKSwpKQorICAgICAgICBmb3IgdmFsdWUgaW4gMSwgTm9uZSwgc2VsZiwgaW50OgorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChrYWxsLCB2YWx1ZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoa2FsbCA9PSB2YWx1ZSkKKworCisgICAgZGVmIHRlc3RfcmVwcihzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKF9DYWxsKCkpLCAnY2FsbCgpJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKF9DYWxsKCgnZm9vJywpKSksICdjYWxsLmZvbygpJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIoX0NhbGwoKCgxLCAyLCAzKSwgeydhJzogJ2InfSkpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiY2FsbCgxLCAyLCAzLCBhPSdiJykiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIoX0NhbGwoKCdiYXInLCAoMSwgMiwgMyksIHsnYSc6ICdiJ30pKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgImNhbGwuYmFyKDEsIDIsIDMsIGE9J2InKSIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNhbGwpLCAnY2FsbCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGNhbGwpLCAnY2FsbCcpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNhbGwoKSksICdjYWxsKCknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIoY2FsbCgxKSksICdjYWxsKDEpJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNhbGwoeno9J3RoaW5nJykpLCAiY2FsbCh6ej0ndGhpbmcnKSIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNhbGwoKS5mb28pLCAnY2FsbCgpLmZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihjYWxsKDEpLmZvby5iYXIoYT0zKS5iaW5nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAnY2FsbCgpLmZvby5iYXIoKS5iaW5nJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIHJlcHIoY2FsbCgpLmZvbygxLCAyLCBhPTMpKSwKKyAgICAgICAgICAgICJjYWxsKCkuZm9vKDEsIDIsIGE9MykiCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNhbGwoKSgpKSwgImNhbGwoKSgpIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXByKGNhbGwoMSkoMikpLCAiY2FsbCgpKDIpIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKKyAgICAgICAgICAgIHJlcHIoY2FsbCgpKCkuYmFyKCkuYmF6LmJlZXAoMSkpLAorICAgICAgICAgICAgImNhbGwoKSgpLmJhcigpLmJhei5iZWVwKDEpIgorICAgICAgICApCisKKworICAgIGRlZiB0ZXN0X2NhbGwoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FsbCgpLCAoJycsICgpLCB7fSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FsbCgnZm9vJywgJ2JhcicsIG9uZT0zLCB0d289NCksCisgICAgICAgICAgICAgICAgICAgICAgICAgKCcnLCAoJ2ZvbycsICdiYXInKSwgeydvbmUnOiAzLCAndHdvJzogNH0pKQorCisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jaygxLCAyLCAzKQorICAgICAgICBtb2NrKGE9MywgYj02KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suY2FsbF9hcmdzX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgW2NhbGwoMSwgMiwgMyksIGNhbGwoYT0zLCBiPTYpXSkKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZV9jYWxsKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhbGwuZm9vKDEpLCAoJ2ZvbycsICgxLCksIHt9KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYWxsLmJhci5iYXooZmlzaD0nZWdncycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICgnYmFyLmJheicsICgpLCB7J2Zpc2gnOiAnZWdncyd9KSkKKworICAgICAgICBtb2NrID0gTW9jaygpCisgICAgICAgIG1vY2suZm9vKDEsIDIgLDMpCisgICAgICAgIG1vY2suYmFyLmJheihhPTMsIGI9NikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLm1ldGhvZF9jYWxscywKKyAgICAgICAgICAgICAgICAgICAgICAgICBbY2FsbC5mb28oMSwgMiwgMyksIGNhbGwuYmFyLmJheihhPTMsIGI9NildKQorCisKKyAgICBkZWYgdGVzdF9leHRlbmRlZF9jYWxsKHNlbGYpOgorICAgICAgICByZXN1bHQgPSBjYWxsKDEpLmZvbygyKS5iYXIoMywgYT00KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgKCcoKS5mb28oKS5iYXInLCAoMywpLCBkaWN0KGE9NCkpKQorCisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBtb2NrKDEsIDIsIGE9MywgYj00KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suY2FsbF9hcmdzLCBjYWxsKDEsIDIsIGE9MywgYj00KSkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChtb2NrLmNhbGxfYXJncywgY2FsbCgxLCAyLCAzKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suY2FsbF9hcmdzX2xpc3QsIFtjYWxsKDEsIDIsIGE9MywgYj00KV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBbY2FsbCgxLCAyLCBhPTMsIGI9NCldKQorCisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBtb2NrLmZvbygxKS5iYXIoKSgpLmJhei5iZWVwKGE9NikKKworICAgICAgICBsYXN0X2NhbGwgPSBjYWxsLmZvbygxKS5iYXIoKSgpLmJhei5iZWVwKGE9NikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLm1vY2tfY2FsbHNbLTFdLCBsYXN0X2NhbGwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBsYXN0X2NhbGwuY2FsbF9saXN0KCkpCisKKworICAgIGRlZiB0ZXN0X2NhbGxfbGlzdChzZWxmKToKKyAgICAgICAgbW9jayA9IE1hZ2ljTW9jaygpCisgICAgICAgIG1vY2soMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYWxsKDEpLmNhbGxfbGlzdCgpLCBtb2NrLm1vY2tfY2FsbHMpCisKKyAgICAgICAgbW9jayA9IE1hZ2ljTW9jaygpCisgICAgICAgIG1vY2soMSkubWV0aG9kKDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FsbCgxKS5tZXRob2QoMikuY2FsbF9saXN0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgbW9jay5tb2NrX2NhbGxzKQorCisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBtb2NrKDEpLm1ldGhvZCgyKSgzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNhbGwoMSkubWV0aG9kKDIpKDMpLmNhbGxfbGlzdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2subW9ja19jYWxscykKKworICAgICAgICBtb2NrID0gTWFnaWNNb2NrKCkKKyAgICAgICAgaW50KG1vY2soMSkubWV0aG9kKDIpKDMpLmZvby5iYXIuYmF6KDQpKDUpKQorICAgICAgICBrYWxsID0gY2FsbCgxKS5tZXRob2QoMikoMykuZm9vLmJhci5iYXooNCkoNSkuX19pbnRfXygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoa2FsbC5jYWxsX2xpc3QoKSwgbW9jay5tb2NrX2NhbGxzKQorCisKKyAgICBkZWYgdGVzdF9jYWxsX2FueShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYWxsLCBBTlkpCisKKyAgICAgICAgbSA9IE1hZ2ljTW9jaygpCisgICAgICAgIGludChtKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0ubW9ja19jYWxscywgW0FOWV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW0FOWV0sIG0ubW9ja19jYWxscykKKworCisgICAgZGVmIHRlc3RfdHdvX2FyZ3NfY2FsbChzZWxmKToKKyAgICAgICAgYXJncyA9IF9DYWxsKCgoMSwgMiksIHsnYSc6IDN9KSwgdHdvPVRydWUpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFyZ3MpLCAyKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZ3NbMF0sICgxLCAyKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzWzFdLCB7J2EnOiAzfSkKKworICAgICAgICBvdGhlcl9hcmdzID0gX0NhbGwoKCgxLCAyKSwgeydhJzogM30pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFyZ3MsIG90aGVyX2FyZ3MpCisKKworY2xhc3MgU3BlY1NpZ25hdHVyZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIF9jaGVja19zb21lY2xhc3NfbW9jayhzZWxmLCBtb2NrKToKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIG1vY2ssICdmb28nKQorICAgICAgICBtb2NrLm9uZSgxLCAyKQorICAgICAgICBtb2NrLm9uZS5hc3NlcnRfY2FsbGVkX3dpdGgoMSwgMikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2sub25lLmFzc2VydF9jYWxsZWRfd2l0aCwgMywgNCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtb2NrLm9uZSwgMSkKKworICAgICAgICBtb2NrLnR3bygpCisgICAgICAgIG1vY2sudHdvLmFzc2VydF9jYWxsZWRfd2l0aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrLnR3by5hc3NlcnRfY2FsbGVkX3dpdGgsIDMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jay50d28sIDEpCisKKyAgICAgICAgbW9jay50aHJlZSgpCisgICAgICAgIG1vY2sudGhyZWUuYXNzZXJ0X2NhbGxlZF93aXRoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1vY2sudGhyZWUuYXNzZXJ0X2NhbGxlZF93aXRoLCAzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1vY2sudGhyZWUsIDMsIDIpCisKKyAgICAgICAgbW9jay50aHJlZSgxKQorICAgICAgICBtb2NrLnRocmVlLmFzc2VydF9jYWxsZWRfd2l0aCgxKQorCisgICAgICAgIG1vY2sudGhyZWUoYT0xKQorICAgICAgICBtb2NrLnRocmVlLmFzc2VydF9jYWxsZWRfd2l0aChhPTEpCisKKworICAgIGRlZiB0ZXN0X2Jhc2ljKHNlbGYpOgorICAgICAgICBmb3Igc3BlYyBpbiAoU29tZUNsYXNzLCBTb21lQ2xhc3MoKSk6CisgICAgICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKHNwZWMpCisgICAgICAgICAgICBzZWxmLl9jaGVja19zb21lY2xhc3NfbW9jayhtb2NrKQorCisKKyAgICBkZWYgdGVzdF9jcmVhdGVfYXV0b3NwZWNfcmV0dXJuX3ZhbHVlKHNlbGYpOgorICAgICAgICBkZWYgZigpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKGYsIHJldHVybl92YWx1ZT0nZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrKCksICdmb28nKQorCisgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1vY2sgPSBjcmVhdGVfYXV0b3NwZWMoRm9vLCByZXR1cm5fdmFsdWU9J2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaygpLCAnZm9vJykKKworCisgICAgZGVmIHRlc3RfYXV0b3NwZWNfcmVzZXRfbW9jayhzZWxmKToKKyAgICAgICAgbSA9IGNyZWF0ZV9hdXRvc3BlYyhpbnQpCisgICAgICAgIGludChtKQorICAgICAgICBtLnJlc2V0X21vY2soKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0uX19pbnRfXy5jYWxsX2NvdW50LCAwKQorCisKKyAgICBkZWYgdGVzdF9tb2NraW5nX3VuYm91bmRfbWV0aG9kcyhzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgZm9vKHNlbGYsIGZvbyk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBwID0gcGF0Y2gub2JqZWN0KEZvbywgJ2ZvbycpCisgICAgICAgIG1vY2tfZm9vID0gcC5zdGFydCgpCisgICAgICAgIEZvbygpLmZvbygxKQorCisgICAgICAgIG1vY2tfZm9vLmFzc2VydF9jYWxsZWRfd2l0aCgxKQorCisKKyAgICBkZWYgdGVzdF9jcmVhdGVfYXV0b3NwZWNfdW5ib3VuZF9tZXRob2RzKHNlbGYpOgorICAgICAgICAjIHNlZSBtb2NrIGlzc3VlIDEyOAorICAgICAgICAjIHRoaXMgaXMgZXhwZWN0ZWQgdG8gZmFpbCB1bnRpbCB0aGUgaXNzdWUgaXMgZml4ZWQKKyAgICAgICAgcmV0dXJuCisgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAgZGVmIGZvbyhzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAga2xhc3MgPSBjcmVhdGVfYXV0b3NwZWMoRm9vKQorICAgICAgICBpbnN0YW5jZSA9IGtsYXNzKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpbnN0YW5jZS5mb28sIDEpCisKKyAgICAgICAgIyBOb3RlOiBubyB0eXBlIGNoZWNraW5nIG9uIHRoZSAic2VsZiIgcGFyYW1ldGVyCisgICAgICAgIGtsYXNzLmZvbygxKQorICAgICAgICBrbGFzcy5mb28uYXNzZXJ0X2NhbGxlZF93aXRoKDEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwga2xhc3MuZm9vKQorCisKKyAgICBkZWYgdGVzdF9jcmVhdGVfYXV0b3NwZWNfa2V5d29yZF9hcmd1bWVudHMoc2VsZik6CisgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAgYSA9IDMKKyAgICAgICAgbSA9IGNyZWF0ZV9hdXRvc3BlYyhGb28sIGE9JzMnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0uYSwgJzMnKQorCisKKyAgICBkZWYgdGVzdF9jcmVhdGVfYXV0b3NwZWNfa2V5d29yZF9vbmx5X2FyZ3VtZW50cyhzZWxmKToKKyAgICAgICAgZGVmIGZvbyhhLCAqLCBiPU5vbmUpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG0gPSBjcmVhdGVfYXV0b3NwZWMoZm9vKQorICAgICAgICBtKDEpCisgICAgICAgIG0uYXNzZXJ0X2NhbGxlZF93aXRoKDEpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbSwgMSwgMikKKworICAgICAgICBtKDIsIGI9MykKKyAgICAgICAgbS5hc3NlcnRfY2FsbGVkX3dpdGgoMiwgYj0zKQorCisKKyAgICBkZWYgdGVzdF9mdW5jdGlvbl9hc19pbnN0YW5jZV9hdHRyaWJ1dGUoc2VsZik6CisgICAgICAgIG9iaiA9IFNvbWVDbGFzcygpCisgICAgICAgIGRlZiBmKGEpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBvYmouZiA9IGYKKworICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKG9iaikKKyAgICAgICAgbW9jay5mKCdiaW5nJykKKyAgICAgICAgbW9jay5mLmFzc2VydF9jYWxsZWRfd2l0aCgnYmluZycpCisKKworICAgIGRlZiB0ZXN0X3NwZWNfYXNfbGlzdChzZWxmKToKKyAgICAgICAgIyBiZWNhdXNlIHNwZWMgYXMgYSBsaXN0IG9mIHN0cmluZ3MgaW4gdGhlIG1vY2sgY29uc3RydWN0b3IgbWVhbnMKKyAgICAgICAgIyBzb21ldGhpbmcgdmVyeSBkaWZmZXJlbnQgd2UgdHJlYXQgYSBsaXN0IGluc3RhbmNlIGFzIHRoZSB0eXBlLgorICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKFtdKQorICAgICAgICBtb2NrLmFwcGVuZCgnZm9vJykKKyAgICAgICAgbW9jay5hcHBlbmQuYXNzZXJ0X2NhbGxlZF93aXRoKCdmb28nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBtb2NrLCAnZm9vJykKKworICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIGZvbyA9IFtdCisKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhGb28pCisgICAgICAgIG1vY2suZm9vLmFwcGVuZCgzKQorICAgICAgICBtb2NrLmZvby5hcHBlbmQuYXNzZXJ0X2NhbGxlZF93aXRoKDMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBtb2NrLmZvbywgJ2ZvbycpCisKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZXMoc2VsZik6CisgICAgICAgIGNsYXNzIFN1YihTb21lQ2xhc3MpOgorICAgICAgICAgICAgYXR0ciA9IFNvbWVDbGFzcygpCisKKyAgICAgICAgc3ViX21vY2sgPSBjcmVhdGVfYXV0b3NwZWMoU3ViKQorCisgICAgICAgIGZvciBtb2NrIGluIChzdWJfbW9jaywgc3ViX21vY2suYXR0cik6CisgICAgICAgICAgICBzZWxmLl9jaGVja19zb21lY2xhc3NfbW9jayhtb2NrKQorCisKKyAgICBkZWYgdGVzdF9idWlsdGluX2Z1bmN0aW9uc190eXBlcyhzZWxmKToKKyAgICAgICAgIyB3ZSBjb3VsZCByZXBsYWNlIGJ1aWx0aW4gZnVuY3Rpb25zIC8gbWV0aG9kcyB3aXRoIGEgZnVuY3Rpb24KKyAgICAgICAgIyB3aXRoICphcmdzIC8gKiprd2FyZ3Mgc2lnbmF0dXJlLiBVc2luZyB0aGUgYnVpbHRpbiBtZXRob2QgdHlwZQorICAgICAgICAjIGFzIGEgc3BlYyBzZWVtcyB0byB3b3JrIGZhaXJseSB3ZWxsIHRob3VnaC4KKyAgICAgICAgY2xhc3MgQnVpbHRpblN1YmNsYXNzKGxpc3QpOgorICAgICAgICAgICAgZGVmIGJhcihzZWxmLCBhcmcpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHNvcnRlZCA9IHNvcnRlZAorICAgICAgICAgICAgYXR0ciA9IHt9CisKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhCdWlsdGluU3ViY2xhc3MpCisgICAgICAgIG1vY2suYXBwZW5kKDMpCisgICAgICAgIG1vY2suYXBwZW5kLmFzc2VydF9jYWxsZWRfd2l0aCgzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgbW9jay5hcHBlbmQsICdmb28nKQorCisgICAgICAgIG1vY2suYmFyKCdmb28nKQorICAgICAgICBtb2NrLmJhci5hc3NlcnRfY2FsbGVkX3dpdGgoJ2ZvbycpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jay5iYXIsICdmb28nLCAnYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIG1vY2suYmFyLCAnZm9vJykKKworICAgICAgICBtb2NrLnNvcnRlZChbMSwgMl0pCisgICAgICAgIG1vY2suc29ydGVkLmFzc2VydF9jYWxsZWRfd2l0aChbMSwgMl0pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBtb2NrLnNvcnRlZCwgJ2ZvbycpCisKKyAgICAgICAgbW9jay5hdHRyLnBvcCgzKQorICAgICAgICBtb2NrLmF0dHIucG9wLmFzc2VydF9jYWxsZWRfd2l0aCgzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgbW9jay5hdHRyLCAnZm9vJykKKworCisgICAgZGVmIHRlc3RfbWV0aG9kX2NhbGxzKHNlbGYpOgorICAgICAgICBjbGFzcyBTdWIoU29tZUNsYXNzKToKKyAgICAgICAgICAgIGF0dHIgPSBTb21lQ2xhc3MoKQorCisgICAgICAgIG1vY2sgPSBjcmVhdGVfYXV0b3NwZWMoU3ViKQorICAgICAgICBtb2NrLm9uZSgxLCAyKQorICAgICAgICBtb2NrLnR3bygpCisgICAgICAgIG1vY2sudGhyZWUoMykKKworICAgICAgICBleHBlY3RlZCA9IFtjYWxsLm9uZSgxLCAyKSwgY2FsbC50d28oKSwgY2FsbC50aHJlZSgzKV0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLm1ldGhvZF9jYWxscywgZXhwZWN0ZWQpCisKKyAgICAgICAgbW9jay5hdHRyLm9uZSgxLCAyKQorICAgICAgICBtb2NrLmF0dHIudHdvKCkKKyAgICAgICAgbW9jay5hdHRyLnRocmVlKDMpCisKKyAgICAgICAgZXhwZWN0ZWQuZXh0ZW5kKAorICAgICAgICAgICAgW2NhbGwuYXR0ci5vbmUoMSwgMiksIGNhbGwuYXR0ci50d28oKSwgY2FsbC5hdHRyLnRocmVlKDMpXQorICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIGV4cGVjdGVkKQorCisKKyAgICBkZWYgdGVzdF9tYWdpY19tZXRob2RzKHNlbGYpOgorICAgICAgICBjbGFzcyBCdWlsdGluU3ViY2xhc3MobGlzdCk6CisgICAgICAgICAgICBhdHRyID0ge30KKworICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKEJ1aWx0aW5TdWJjbGFzcykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG1vY2spLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpbnQsIG1vY2spCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW50LCBtb2NrLmF0dHIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChtb2NrKSwgW10pCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2tbJ2ZvbyddLCBNYWdpY01vY2spCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2NrLmF0dHJbJ2ZvbyddLCBNYWdpY01vY2spCisKKworICAgIGRlZiB0ZXN0X3NwZWNfc2V0KHNlbGYpOgorICAgICAgICBjbGFzcyBTdWIoU29tZUNsYXNzKToKKyAgICAgICAgICAgIGF0dHIgPSBTb21lQ2xhc3MoKQorCisgICAgICAgIGZvciBzcGVjIGluIChTdWIsIFN1YigpKToKKyAgICAgICAgICAgIG1vY2sgPSBjcmVhdGVfYXV0b3NwZWMoc3BlYywgc3BlY19zZXQ9VHJ1ZSkKKyAgICAgICAgICAgIHNlbGYuX2NoZWNrX3NvbWVjbGFzc19tb2NrKG1vY2spCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBzZXRhdHRyLCBtb2NrLCAnZm9vJywgJ2JhcicpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0YXR0ciwgbW9jay5hdHRyLCAnZm9vJywgJ2JhcicpCisKKworICAgIGRlZiB0ZXN0X2Rlc2NyaXB0b3JzKHNlbGYpOgorICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgZGVmIGYoY2xzLCBhLCBiKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBAc3RhdGljbWV0aG9kCisgICAgICAgICAgICBkZWYgZyhhLCBiKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgY2xhc3MgQmFyKEZvbyk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgY2xhc3MgQmF6KFNvbWVDbGFzcywgQmFyKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBmb3Igc3BlYyBpbiAoRm9vLCBGb28oKSwgQmFyLCBCYXIoKSwgQmF6LCBCYXooKSk6CisgICAgICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKHNwZWMpCisgICAgICAgICAgICBtb2NrLmYoMSwgMikKKyAgICAgICAgICAgIG1vY2suZi5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgxLCAyKQorCisgICAgICAgICAgICBtb2NrLmcoMywgNCkKKyAgICAgICAgICAgIG1vY2suZy5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgzLCA0KQorCisKKyAgICBkZWYgdGVzdF9yZWN1cnNpdmUoc2VsZik6CisgICAgICAgIGNsYXNzIEEob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBhKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGZvbyA9ICdmb28gYmFyIGJheicKKyAgICAgICAgICAgIGJhciA9IGZvbworCisgICAgICAgIEEuQiA9IEEKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhBKQorCisgICAgICAgIG1vY2soKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1vY2suQi5jYWxsZWQpCisKKyAgICAgICAgbW9jay5hKCkKKyAgICAgICAgbW9jay5CLmEoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2subWV0aG9kX2NhbGxzLCBbY2FsbC5hKCksIGNhbGwuQi5hKCldKQorCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoQS5mb28sIEEuYmFyKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KG1vY2suZm9vLCBtb2NrLmJhcikKKyAgICAgICAgbW9jay5mb28ubG93ZXIoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgbW9jay5iYXIubG93ZXIuYXNzZXJ0X2NhbGxlZF93aXRoKQorCisKKyAgICBkZWYgdGVzdF9zcGVjX2luaGVyaXRhbmNlX2Zvcl9jbGFzc2VzKHNlbGYpOgorICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBhKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGNsYXNzIEJhcihvYmplY3QpOgorICAgICAgICAgICAgICAgIGRlZiBmKHNlbGYpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgY2xhc3NfbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhGb28pCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdChjbGFzc19tb2NrLCBjbGFzc19tb2NrKCkpCisKKyAgICAgICAgZm9yIHRoaXNfbW9jayBpbiBjbGFzc19tb2NrLCBjbGFzc19tb2NrKCk6CisgICAgICAgICAgICB0aGlzX21vY2suYSgpCisgICAgICAgICAgICB0aGlzX21vY2suYS5hc3NlcnRfY2FsbGVkX3dpdGgoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCB0aGlzX21vY2suYSwgJ2ZvbycpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgdGhpc19tb2NrLCAnYicpCisKKyAgICAgICAgaW5zdGFuY2VfbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhGb28oKSkKKyAgICAgICAgaW5zdGFuY2VfbW9jay5hKCkKKyAgICAgICAgaW5zdGFuY2VfbW9jay5hLmFzc2VydF9jYWxsZWRfd2l0aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW5zdGFuY2VfbW9jay5hLCAnZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIGluc3RhbmNlX21vY2ssICdiJykKKworICAgICAgICAjIFRoZSByZXR1cm4gdmFsdWUgaXNuJ3QgaXNuJ3QgY2FsbGFibGUKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpbnN0YW5jZV9tb2NrKQorCisgICAgICAgIGluc3RhbmNlX21vY2suQmFyLmYoKQorICAgICAgICBpbnN0YW5jZV9tb2NrLkJhci5mLmFzc2VydF9jYWxsZWRfd2l0aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBpbnN0YW5jZV9tb2NrLkJhciwgJ2cnKQorCisgICAgICAgIGluc3RhbmNlX21vY2suQmFyKCkuZigpCisgICAgICAgIGluc3RhbmNlX21vY2suQmFyKCkuZi5hc3NlcnRfY2FsbGVkX3dpdGgoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgaW5zdGFuY2VfbW9jay5CYXIoKSwgJ2cnKQorCisKKyAgICBkZWYgdGVzdF9pbmhlcml0KHNlbGYpOgorICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIGEgPSAzCisKKyAgICAgICAgRm9vLkZvbyA9IEZvbworCisgICAgICAgICMgY2xhc3MKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhGb28pCisgICAgICAgIGluc3RhbmNlID0gbW9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBpbnN0YW5jZSwgJ2InKQorCisgICAgICAgIGF0dHJfaW5zdGFuY2UgPSBtb2NrLkZvbygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBhdHRyX2luc3RhbmNlLCAnYicpCisKKyAgICAgICAgIyBpbnN0YW5jZQorICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKEZvbygpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgbW9jaywgJ2InKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1vY2spCisKKyAgICAgICAgIyBhdHRyaWJ1dGUgaW5zdGFuY2UKKyAgICAgICAgY2FsbF9yZXN1bHQgPSBtb2NrLkZvbygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBjYWxsX3Jlc3VsdCwgJ2InKQorCisKKyAgICBkZWYgdGVzdF9idWlsdGlucyhzZWxmKToKKyAgICAgICAgIyB1c2VkIHRvIGZhaWwgd2l0aCBpbmZpbml0ZSByZWN1cnNpb24KKyAgICAgICAgY3JlYXRlX2F1dG9zcGVjKDEpCisKKyAgICAgICAgY3JlYXRlX2F1dG9zcGVjKGludCkKKyAgICAgICAgY3JlYXRlX2F1dG9zcGVjKCdmb28nKQorICAgICAgICBjcmVhdGVfYXV0b3NwZWMoc3RyKQorICAgICAgICBjcmVhdGVfYXV0b3NwZWMoe30pCisgICAgICAgIGNyZWF0ZV9hdXRvc3BlYyhkaWN0KQorICAgICAgICBjcmVhdGVfYXV0b3NwZWMoW10pCisgICAgICAgIGNyZWF0ZV9hdXRvc3BlYyhsaXN0KQorICAgICAgICBjcmVhdGVfYXV0b3NwZWMoc2V0KCkpCisgICAgICAgIGNyZWF0ZV9hdXRvc3BlYyhzZXQpCisgICAgICAgIGNyZWF0ZV9hdXRvc3BlYygxLjApCisgICAgICAgIGNyZWF0ZV9hdXRvc3BlYyhmbG9hdCkKKyAgICAgICAgY3JlYXRlX2F1dG9zcGVjKDFqKQorICAgICAgICBjcmVhdGVfYXV0b3NwZWMoY29tcGxleCkKKyAgICAgICAgY3JlYXRlX2F1dG9zcGVjKEZhbHNlKQorICAgICAgICBjcmVhdGVfYXV0b3NwZWMoVHJ1ZSkKKworCisgICAgZGVmIHRlc3RfZnVuY3Rpb24oc2VsZik6CisgICAgICAgIGRlZiBmKGEsIGIpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1vY2sgPSBjcmVhdGVfYXV0b3NwZWMoZikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtb2NrKQorICAgICAgICBtb2NrKDEsIDIpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKDEsIDIpCisKKyAgICAgICAgZi5mID0gZgorICAgICAgICBtb2NrID0gY3JlYXRlX2F1dG9zcGVjKGYpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jay5mKQorICAgICAgICBtb2NrLmYoMywgNCkKKyAgICAgICAgbW9jay5mLmFzc2VydF9jYWxsZWRfd2l0aCgzLCA0KQorCisKKyAgICBkZWYgdGVzdF9za2lwX2F0dHJpYnV0ZWVycm9ycyhzZWxmKToKKyAgICAgICAgY2xhc3MgUmFpc2VyKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19nZXRfXyhzZWxmLCBvYmosIHR5cGU9Tm9uZSk6CisgICAgICAgICAgICAgICAgaWYgb2JqIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKCdDYW4gb25seSBiZSBhY2Nlc3NlZCB2aWEgYW4gaW5zdGFuY2UnKQorCisgICAgICAgIGNsYXNzIFJhaXNlckNsYXNzKG9iamVjdCk6CisgICAgICAgICAgICByYWlzZXIgPSBSYWlzZXIoKQorCisgICAgICAgICAgICBAc3RhdGljbWV0aG9kCisgICAgICAgICAgICBkZWYgZXhpc3RpbmcoYSwgYik6CisgICAgICAgICAgICAgICAgcmV0dXJuIGEgKyBiCisKKyAgICAgICAgcyA9IGNyZWF0ZV9hdXRvc3BlYyhSYWlzZXJDbGFzcykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGEgeDogcy5leGlzdGluZygxLCAyLCAzKSkKKyAgICAgICAgcy5leGlzdGluZygxLCAyKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbGFtYmRhOiBzLm5vbmV4aXN0aW5nKQorCisgICAgICAgICMgY2hlY2sgd2UgY2FuIGZldGNoIHRoZSByYWlzZXIgYXR0cmlidXRlIGFuZCBpdCBoYXMgbm8gc3BlYworICAgICAgICBvYmogPSBzLnJhaXNlcgorICAgICAgICBvYmouZm9vLCBvYmouYmFyCisKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9jbGFzcyhzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgYSwgYj0zKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhGb28pCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtb2NrKQorICAgICAgICBtb2NrKDEpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoMSkKKworICAgICAgICBtb2NrKDQsIDUpCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKDQsIDUpCisKKworICAgIGRlZiB0ZXN0X2NsYXNzX3dpdGhfbm9faW5pdChzZWxmKToKKyAgICAgICAgIyB0aGlzIHVzZWQgdG8gcmFpc2UgYW4gZXhjZXB0aW9uCisgICAgICAgICMgZHVlIHRvIHRyeWluZyB0byBnZXQgYSBzaWduYXR1cmUgZnJvbSBvYmplY3QuX19pbml0X18KKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGNyZWF0ZV9hdXRvc3BlYyhGb28pCisKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9jYWxsYWJsZShzZWxmKToKKyAgICAgICAgY2xhc3MgQ2FsbGFibGUob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBkZWYgX19jYWxsX18oc2VsZiwgYSk6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1vY2sgPSBjcmVhdGVfYXV0b3NwZWMoQ2FsbGFibGUpCisgICAgICAgIG1vY2soKQorICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtb2NrLCAnYScpCisKKyAgICAgICAgaW5zdGFuY2UgPSBtb2NrKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpbnN0YW5jZSkKKyAgICAgICAgaW5zdGFuY2UoYT0nYScpCisgICAgICAgIGluc3RhbmNlLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKGE9J2EnKQorICAgICAgICBpbnN0YW5jZSgnYScpCisgICAgICAgIGluc3RhbmNlLmFzc2VydF9jYWxsZWRfd2l0aCgnYScpCisKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhDYWxsYWJsZSgpKQorICAgICAgICBtb2NrKGE9J2EnKQorICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKGE9J2EnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1vY2spCisgICAgICAgIG1vY2soJ2EnKQorICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgnYScpCisKKworICAgIGRlZiB0ZXN0X3NpZ25hdHVyZV9ub25jYWxsYWJsZShzZWxmKToKKyAgICAgICAgY2xhc3MgTm9uQ2FsbGFibGUob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhOb25DYWxsYWJsZSkKKyAgICAgICAgaW5zdGFuY2UgPSBtb2NrKCkKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jaywgJ2EnKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGluc3RhbmNlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGluc3RhbmNlLCAnYScpCisKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhOb25DYWxsYWJsZSgpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1vY2spCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jaywgJ2EnKQorCisKKyAgICBkZWYgdGVzdF9jcmVhdGVfYXV0b3NwZWNfbm9uZShzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBiYXIgPSBOb25lCisKKyAgICAgICAgbW9jayA9IGNyZWF0ZV9hdXRvc3BlYyhGb28pCisgICAgICAgIG5vbmUgPSBtb2NrLmJhcgorICAgICAgICBzZWxmLmFzc2VydE5vdElzSW5zdGFuY2Uobm9uZSwgdHlwZShOb25lKSkKKworICAgICAgICBub25lLmZvbygpCisgICAgICAgIG5vbmUuZm9vLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKworCisgICAgZGVmIHRlc3RfYXV0b3NwZWNfZnVuY3Rpb25zX3dpdGhfc2VsZl9pbl9vZGRfcGxhY2Uoc2VsZik6CisgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAgZGVmIGYoYSwgc2VsZik6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGEgPSBjcmVhdGVfYXV0b3NwZWMoRm9vKQorICAgICAgICBhLmYoc2VsZj0xMCkKKyAgICAgICAgYS5mLmFzc2VydF9jYWxsZWRfd2l0aChzZWxmPTEwKQorCisKKyAgICBkZWYgdGVzdF9hdXRvc3BlY19wcm9wZXJ0eShzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBAcHJvcGVydHkKKyAgICAgICAgICAgIGRlZiBmb28oc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIDMKKworICAgICAgICBmb28gPSBjcmVhdGVfYXV0b3NwZWMoRm9vKQorICAgICAgICBtb2NrX3Byb3BlcnR5ID0gZm9vLmZvbworCisgICAgICAgICMgbm8gc3BlYyBvbiBwcm9wZXJ0aWVzCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKG1vY2tfcHJvcGVydHksIE1hZ2ljTW9jaykpCisgICAgICAgIG1vY2tfcHJvcGVydHkoMSwgMiwgMykKKyAgICAgICAgbW9ja19wcm9wZXJ0eS5hYmMoNCwgNSwgNikKKyAgICAgICAgbW9ja19wcm9wZXJ0eS5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgxLCAyLCAzKQorICAgICAgICBtb2NrX3Byb3BlcnR5LmFiYy5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCg0LCA1LCA2KQorCisKKyAgICBkZWYgdGVzdF9hdXRvc3BlY19zbG90cyhzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBfX3Nsb3RzX18gPSBbJ2EnXQorCisgICAgICAgIGZvbyA9IGNyZWF0ZV9hdXRvc3BlYyhGb28pCisgICAgICAgIG1vY2tfc2xvdCA9IGZvby5hCisKKyAgICAgICAgIyBubyBzcGVjIG9uIHNsb3RzCisgICAgICAgIG1vY2tfc2xvdCgxLCAyLCAzKQorICAgICAgICBtb2NrX3Nsb3QuYWJjKDQsIDUsIDYpCisgICAgICAgIG1vY2tfc2xvdC5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgxLCAyLCAzKQorICAgICAgICBtb2NrX3Nsb3QuYWJjLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKDQsIDUsIDYpCisKKworY2xhc3MgVGVzdENhbGxMaXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2FyZ3NfbGlzdF9jb250YWluc19jYWxsX2xpc3Qoc2VsZik6CisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2suY2FsbF9hcmdzX2xpc3QsIF9DYWxsTGlzdCkKKworICAgICAgICBtb2NrKDEsIDIpCisgICAgICAgIG1vY2soYT0zKQorICAgICAgICBtb2NrKDMsIDQpCisgICAgICAgIG1vY2soYj02KQorCisgICAgICAgIGZvciBrYWxsIGluIGNhbGwoMSwgMiksIGNhbGwoYT0zKSwgY2FsbCgzLCA0KSwgY2FsbChiPTYpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGthbGwgaW4gbW9jay5jYWxsX2FyZ3NfbGlzdCkKKworICAgICAgICBjYWxscyA9IFtjYWxsKGE9MyksIGNhbGwoMywgNCldCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjYWxscyBpbiBtb2NrLmNhbGxfYXJnc19saXN0KQorICAgICAgICBjYWxscyA9IFtjYWxsKDEsIDIpLCBjYWxsKGE9MyldCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjYWxscyBpbiBtb2NrLmNhbGxfYXJnc19saXN0KQorICAgICAgICBjYWxscyA9IFtjYWxsKDMsIDQpLCBjYWxsKGI9NildCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjYWxscyBpbiBtb2NrLmNhbGxfYXJnc19saXN0KQorICAgICAgICBjYWxscyA9IFtjYWxsKDMsIDQpXQorICAgICAgICBzZWxmLmFzc2VydFRydWUoY2FsbHMgaW4gbW9jay5jYWxsX2FyZ3NfbGlzdCkKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGNhbGwoJ2Zpc2gnKSBpbiBtb2NrLmNhbGxfYXJnc19saXN0KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKFtjYWxsKCdmaXNoJyldIGluIG1vY2suY2FsbF9hcmdzX2xpc3QpCisKKworICAgIGRlZiB0ZXN0X2NhbGxfbGlzdF9zdHIoc2VsZik6CisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jaygxLCAyKQorICAgICAgICBtb2NrLmZvbyhhPTMpCisgICAgICAgIG1vY2suZm9vLmJhcigpLmJheignZmlzaCcsIGNhdD0nZG9nJykKKworICAgICAgICBleHBlY3RlZCA9ICgKKyAgICAgICAgICAgICJbY2FsbCgxLCAyKSxcbiIKKyAgICAgICAgICAgICIgY2FsbC5mb28oYT0zKSxcbiIKKyAgICAgICAgICAgICIgY2FsbC5mb28uYmFyKCksXG4iCisgICAgICAgICAgICAiIGNhbGwuZm9vLmJhcigpLmJheignZmlzaCcsIGNhdD0nZG9nJyldIgorICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKG1vY2subW9ja19jYWxscyksIGV4cGVjdGVkKQorCisKKyAgICBkZWYgdGVzdF9wcm9wZXJ0eW1vY2soc2VsZik6CisgICAgICAgIHAgPSBwYXRjaCgnJXMuU29tZUNsYXNzLm9uZScgJSBfX25hbWVfXywgbmV3X2NhbGxhYmxlPVByb3BlcnR5TW9jaykKKyAgICAgICAgbW9jayA9IHAuc3RhcnQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBTb21lQ2xhc3Mub25lCisgICAgICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKworICAgICAgICAgICAgcyA9IFNvbWVDbGFzcygpCisgICAgICAgICAgICBzLm9uZQorICAgICAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLm1vY2tfY2FsbHMsIFtjYWxsKCksIGNhbGwoKV0pCisKKyAgICAgICAgICAgIHMub25lID0gMworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLm1vY2tfY2FsbHMsIFtjYWxsKCksIGNhbGwoKSwgY2FsbCgzKV0pCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwLnN0b3AoKQorCisKKyAgICBkZWYgdGVzdF9wcm9wZXJ0eW1vY2tfcmV0dXJudmFsdWUoc2VsZik6CisgICAgICAgIG0gPSBNYWdpY01vY2soKQorICAgICAgICBwID0gUHJvcGVydHlNb2NrKCkKKyAgICAgICAgdHlwZShtKS5mb28gPSBwCisKKyAgICAgICAgcmV0dXJuZWQgPSBtLmZvbworICAgICAgICBwLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHJldHVybmVkLCBNYWdpY01vY2spCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SXNJbnN0YW5jZShyZXR1cm5lZCwgUHJvcGVydHlNb2NrKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0bW9jay90ZXN0bWFnaWNtZXRob2RzLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdG1hZ2ljbWV0aG9kcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmNmMDg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdG1hZ2ljbWV0aG9kcy5weQpAQCAtMCwwICsxLDQwMyBAQAoraW1wb3J0IHVuaXR0ZXN0CitpbXBvcnQgaW5zcGVjdAoraW1wb3J0IHN5cworZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBNb2NrLCBNYWdpY01vY2ssIF9tYWdpY3MKKworCisKK2NsYXNzIFRlc3RNb2NraW5nTWFnaWNNZXRob2RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2RlbGV0aW5nX21hZ2ljX21ldGhvZHMoc2VsZik6CisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKG1vY2ssICdfX2dldGl0ZW1fXycpKQorCisgICAgICAgIG1vY2suX19nZXRpdGVtX18gPSBNb2NrKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGhhc2F0dHIobW9jaywgJ19fZ2V0aXRlbV9fJykpCisKKyAgICAgICAgZGVsIG1vY2suX19nZXRpdGVtX18KKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKG1vY2ssICdfX2dldGl0ZW1fXycpKQorCisKKyAgICBkZWYgdGVzdF9tYWdpY21vY2tfZGVsKHNlbGYpOgorICAgICAgICBtb2NrID0gTWFnaWNNb2NrKCkKKyAgICAgICAgIyBiZWZvcmUgdXNpbmcgZ2V0aXRlbQorICAgICAgICBkZWwgbW9jay5fX2dldGl0ZW1fXworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogbW9ja1snZm9vJ10pCisKKyAgICAgICAgbW9jayA9IE1hZ2ljTW9jaygpCisgICAgICAgICMgdGhpcyB0aW1lIHVzZSBpdCBmaXJzdAorICAgICAgICBtb2NrWydmb28nXQorICAgICAgICBkZWwgbW9jay5fX2dldGl0ZW1fXworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogbW9ja1snZm9vJ10pCisKKworICAgIGRlZiB0ZXN0X21hZ2ljX21ldGhvZF93cmFwcGluZyhzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBkZWYgZihzZWxmLCBuYW1lKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLCAnZmlzaCcKKworICAgICAgICBtb2NrLl9fZ2V0aXRlbV9fID0gZgorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1vY2suX19nZXRpdGVtX18gaXMgZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrWydmb28nXSwgKG1vY2ssICdmaXNoJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5fX2dldGl0ZW1fXygnZm9vJyksIChtb2NrLCAnZmlzaCcpKQorCisgICAgICAgIG1vY2suX19nZXRpdGVtX18gPSBtb2NrCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtb2NrLl9fZ2V0aXRlbV9fIGlzIG1vY2spCisKKworICAgIGRlZiB0ZXN0X21hZ2ljX21ldGhvZHNfaXNvbGF0ZWRfYmV0d2Vlbl9tb2NrcyhzZWxmKToKKyAgICAgICAgbW9jazEgPSBNb2NrKCkKKyAgICAgICAgbW9jazIgPSBNb2NrKCkKKworICAgICAgICBtb2NrMS5fX2l0ZXJfXyA9IE1vY2socmV0dXJuX3ZhbHVlPWl0ZXIoW10pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QobW9jazEpLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IGxpc3QobW9jazIpKQorCisKKyAgICBkZWYgdGVzdF9yZXByKHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihtb2NrKSwgIjxNb2NrIGlkPSclcyc+IiAlIGlkKG1vY2spKQorICAgICAgICBtb2NrLl9fcmVwcl9fID0gbGFtYmRhIHM6ICdmb28nCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihtb2NrKSwgJ2ZvbycpCisKKworICAgIGRlZiB0ZXN0X3N0cihzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihtb2NrKSwgb2JqZWN0Ll9fc3RyX18obW9jaykpCisgICAgICAgIG1vY2suX19zdHJfXyA9IGxhbWJkYSBzOiAnZm9vJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihtb2NrKSwgJ2ZvbycpCisKKworICAgIGRlZiB0ZXN0X2RpY3RfbWV0aG9kcyhzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBtb2NrWydmb28nXSkKKyAgICAgICAgZGVmIF9kZWwoKToKKyAgICAgICAgICAgIGRlbCBtb2NrWydmb28nXQorICAgICAgICBkZWYgX3NldCgpOgorICAgICAgICAgICAgbW9ja1snZm9vJ10gPSAzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgX2RlbCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBfc2V0KQorCisgICAgICAgIF9kaWN0ID0ge30KKyAgICAgICAgZGVmIGdldGl0ZW0ocywgbmFtZSk6CisgICAgICAgICAgICByZXR1cm4gX2RpY3RbbmFtZV0KKyAgICAgICAgZGVmIHNldGl0ZW0ocywgbmFtZSwgdmFsdWUpOgorICAgICAgICAgICAgX2RpY3RbbmFtZV0gPSB2YWx1ZQorICAgICAgICBkZWYgZGVsaXRlbShzLCBuYW1lKToKKyAgICAgICAgICAgIGRlbCBfZGljdFtuYW1lXQorCisgICAgICAgIG1vY2suX19zZXRpdGVtX18gPSBzZXRpdGVtCisgICAgICAgIG1vY2suX19nZXRpdGVtX18gPSBnZXRpdGVtCisgICAgICAgIG1vY2suX19kZWxpdGVtX18gPSBkZWxpdGVtCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIGxhbWJkYTogbW9ja1snZm9vJ10pCisgICAgICAgIG1vY2tbJ2ZvbyddID0gJ2JhcicKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfZGljdCwgeydmb28nOiAnYmFyJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9ja1snZm9vJ10sICdiYXInKQorICAgICAgICBkZWwgbW9ja1snZm9vJ10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfZGljdCwge30pCisKKworICAgIGRlZiB0ZXN0X251bWVyaWMoc2VsZik6CisgICAgICAgIG9yaWdpbmFsID0gbW9jayA9IE1vY2soKQorICAgICAgICBtb2NrLnZhbHVlID0gMAorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBtb2NrICsgMykKKworICAgICAgICBkZWYgYWRkKHNlbGYsIG90aGVyKToKKyAgICAgICAgICAgIG1vY2sudmFsdWUgKz0gb3RoZXIKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgIG1vY2suX19hZGRfXyA9IGFkZAorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2sgKyAzLCBtb2NrKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2sudmFsdWUsIDMpCisKKyAgICAgICAgZGVsIG1vY2suX19hZGRfXworICAgICAgICBkZWYgaWFkZChtb2NrKToKKyAgICAgICAgICAgIG1vY2sgKz0gMworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGlhZGQsIG1vY2spCisgICAgICAgIG1vY2suX19pYWRkX18gPSBhZGQKKyAgICAgICAgbW9jayArPSA2CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaywgb3JpZ2luYWwpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay52YWx1ZSwgOSkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogMyArIG1vY2spCisgICAgICAgIG1vY2suX19yYWRkX18gPSBhZGQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg3ICsgbW9jaywgbW9jaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLnZhbHVlLCAxNikKKworCisgICAgZGVmIHRlc3RfaGFzaChzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICAjIHRlc3QgZGVsZWdhdGlvbgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhhc2gobW9jayksIE1vY2suX19oYXNoX18obW9jaykpCisKKyAgICAgICAgZGVmIF9oYXNoKHMpOgorICAgICAgICAgICAgcmV0dXJuIDMKKyAgICAgICAgbW9jay5fX2hhc2hfXyA9IF9oYXNoCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGFzaChtb2NrKSwgMykKKworCisgICAgZGVmIHRlc3Rfbm9uemVybyhzZWxmKToKKyAgICAgICAgbSA9IE1vY2soKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYm9vbChtKSkKKworICAgICAgICBtLl9fYm9vbF9fID0gbGFtYmRhIHM6IEZhbHNlCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYm9vbChtKSkKKworCisgICAgZGVmIHRlc3RfY29tcGFyaXNvbihzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBkZWYgY29tcChzLCBvKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIG1vY2suX19sdF9fID0gbW9jay5fX2d0X18gPSBtb2NrLl9fbGVfXyA9IG1vY2suX19nZV9fID0gY29tcAorICAgICAgICBzZWxmLiBhc3NlcnRUcnVlKG1vY2sgPCAzKQorICAgICAgICBzZWxmLiBhc3NlcnRUcnVlKG1vY2sgPiAzKQorICAgICAgICBzZWxmLiBhc3NlcnRUcnVlKG1vY2sgPD0gMykKKyAgICAgICAgc2VsZi4gYXNzZXJ0VHJ1ZShtb2NrID49IDMpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IE1hZ2ljTW9jaygpIDwgb2JqZWN0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBvYmplY3QoKSA8IE1hZ2ljTW9jaygpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogTWFnaWNNb2NrKCkgPCBNYWdpY01vY2soKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IE1hZ2ljTW9jaygpID4gb2JqZWN0KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBvYmplY3QoKSA+IE1hZ2ljTW9jaygpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogTWFnaWNNb2NrKCkgPiBNYWdpY01vY2soKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IE1hZ2ljTW9jaygpIDw9IG9iamVjdCgpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogb2JqZWN0KCkgPD0gTWFnaWNNb2NrKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBNYWdpY01vY2soKSA8PSBNYWdpY01vY2soKSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IE1hZ2ljTW9jaygpID49IG9iamVjdCgpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGxhbWJkYTogb2JqZWN0KCkgPj0gTWFnaWNNb2NrKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiBNYWdpY01vY2soKSA+PSBNYWdpY01vY2soKSkKKworCisgICAgZGVmIHRlc3RfZXF1YWxpdHkoc2VsZik6CisgICAgICAgIGZvciBtb2NrIGluIE1vY2soKSwgTWFnaWNNb2NrKCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2sgPT0gbW9jaywgVHJ1ZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2NrID09IG1vY2ssIGJvb2wpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2sgIT0gbW9jaywgRmFsc2UpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobW9jayAhPSBtb2NrLCBib29sKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrID09IG9iamVjdCgpLCBGYWxzZSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jayAhPSBvYmplY3QoKSwgVHJ1ZSkKKworICAgICAgICAgICAgZGVmIGVxKHNlbGYsIG90aGVyKToKKyAgICAgICAgICAgICAgICByZXR1cm4gb3RoZXIgPT0gMworICAgICAgICAgICAgbW9jay5fX2VxX18gPSBlcQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1vY2sgPT0gMykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9jayA9PSA0KQorCisgICAgICAgICAgICBkZWYgbmUoc2VsZiwgb3RoZXIpOgorICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA9PSAzCisgICAgICAgICAgICBtb2NrLl9fbmVfXyA9IG5lCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUobW9jayAhPSAzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb2NrICE9IDQpCisKKyAgICAgICAgbW9jayA9IE1hZ2ljTW9jaygpCisgICAgICAgIG1vY2suX19lcV9fLnJldHVybl92YWx1ZSA9IFRydWUKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2sgPT0gMywgYm9vbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrID09IDMsIFRydWUpCisKKyAgICAgICAgbW9jay5fX25lX18ucmV0dXJuX3ZhbHVlID0gRmFsc2UKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2sgIT0gMywgYm9vbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrICE9IDMsIEZhbHNlKQorCisKKyAgICBkZWYgdGVzdF9sZW5fY29udGFpbnNfaXRlcihzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGVuLCBtb2NrKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIGl0ZXIsIG1vY2spCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbGFtYmRhOiAnZm9vJyBpbiBtb2NrKQorCisgICAgICAgIG1vY2suX19sZW5fXyA9IGxhbWJkYSBzOiA2CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1vY2spLCA2KQorCisgICAgICAgIG1vY2suX19jb250YWluc19fID0gbGFtYmRhIHMsIG86IG8gPT0gMworICAgICAgICBzZWxmLmFzc2VydFRydWUoMyBpbiBtb2NrKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKDYgaW4gbW9jaykKKworICAgICAgICBtb2NrLl9faXRlcl9fID0gbGFtYmRhIHM6IGl0ZXIoJ2Zvb2JhcmJheicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChtb2NrKSwgbGlzdCgnZm9vYmFyYmF6JykpCisKKworICAgIGRlZiB0ZXN0X21hZ2ljbW9jayhzZWxmKToKKyAgICAgICAgbW9jayA9IE1hZ2ljTW9jaygpCisKKyAgICAgICAgbW9jay5fX2l0ZXJfXy5yZXR1cm5fdmFsdWUgPSBpdGVyKFsxLCAyLCAzXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG1vY2spLCBbMSwgMiwgM10pCisKKyAgICAgICAgZ2V0YXR0cihtb2NrLCAnX19ib29sX18nKS5yZXR1cm5fdmFsdWUgPSBGYWxzZQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIobW9jaywgJ19fbm9uemVyb19fJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoYm9vbChtb2NrKSkKKworICAgICAgICBmb3IgZW50cnkgaW4gX21hZ2ljczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKG1vY2ssIGVudHJ5KSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShoYXNhdHRyKG1vY2ssICdfX2ltYWdpbmVyeV9fJykpCisKKworICAgIGRlZiB0ZXN0X21hZ2ljX21vY2tfZXF1YWxpdHkoc2VsZik6CisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobW9jayA9PSBvYmplY3QoKSwgYm9vbCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2sgIT0gb2JqZWN0KCksIGJvb2wpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrID09IG9iamVjdCgpLCBGYWxzZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrICE9IG9iamVjdCgpLCBUcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2sgPT0gbW9jaywgVHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrICE9IG1vY2ssIEZhbHNlKQorCisKKyAgICBkZWYgdGVzdF9tYWdpY21vY2tfZGVmYXVsdHMoc2VsZik6CisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGludChtb2NrKSwgMSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21wbGV4KG1vY2spLCAxaikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmbG9hdChtb2NrKSwgMS4wKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluKG9iamVjdCgpLCBtb2NrKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihtb2NrKSwgMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG1vY2spLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoYXNoKG1vY2spLCBvYmplY3QuX19oYXNoX18obW9jaykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKG1vY2spLCBvYmplY3QuX19zdHJfXyhtb2NrKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGJvb2wobW9jaykpCisKKyAgICAgICAgIyBpbiBQeXRob24gMyBvY3QgYW5kIGhleCB1c2UgX19pbmRleF9fCisgICAgICAgICMgc28gdGhlc2UgdGVzdHMgYXJlIGZvciBfX2luZGV4X18gaW4gcHkzaworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9jdChtb2NrKSwgJzBvMScpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGV4KG1vY2spLCAnMHgxJykKKyAgICAgICAgIyBob3cgdG8gdGVzdCBfX3NpemVvZl9fID8KKworCisgICAgZGVmIHRlc3RfbWFnaWNfbWV0aG9kc19hbmRfc3BlYyhzZWxmKToKKyAgICAgICAgY2xhc3MgSXRlcmFibGUob2JqZWN0KToKKyAgICAgICAgICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbW9jayA9IE1vY2soc3BlYz1JdGVyYWJsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYTogbW9jay5fX2l0ZXJfXykKKworICAgICAgICBtb2NrLl9faXRlcl9fID0gTW9jayhyZXR1cm5fdmFsdWU9aXRlcihbXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChtb2NrKSwgW10pCisKKyAgICAgICAgY2xhc3MgTm9uSXRlcmFibGUob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbW9jayA9IE1vY2soc3BlYz1Ob25JdGVyYWJsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYTogbW9jay5fX2l0ZXJfXykKKworICAgICAgICBkZWYgc2V0X2ludCgpOgorICAgICAgICAgICAgbW9jay5fX2ludF9fID0gTW9jayhyZXR1cm5fdmFsdWU9aXRlcihbXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBzZXRfaW50KQorCisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soc3BlYz1JdGVyYWJsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG1vY2spLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIHNldF9pbnQpCisKKworICAgIGRlZiB0ZXN0X21hZ2ljX21ldGhvZHNfYW5kX3NwZWNfc2V0KHNlbGYpOgorICAgICAgICBjbGFzcyBJdGVyYWJsZShvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBtb2NrID0gTW9jayhzcGVjX3NldD1JdGVyYWJsZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYTogbW9jay5fX2l0ZXJfXykKKworICAgICAgICBtb2NrLl9faXRlcl9fID0gTW9jayhyZXR1cm5fdmFsdWU9aXRlcihbXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChtb2NrKSwgW10pCisKKyAgICAgICAgY2xhc3MgTm9uSXRlcmFibGUob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbW9jayA9IE1vY2soc3BlY19zZXQ9Tm9uSXRlcmFibGUpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBsYW1iZGE6IG1vY2suX19pdGVyX18pCisKKyAgICAgICAgZGVmIHNldF9pbnQoKToKKyAgICAgICAgICAgIG1vY2suX19pbnRfXyA9IE1vY2socmV0dXJuX3ZhbHVlPWl0ZXIoW10pKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0X2ludCkKKworICAgICAgICBtb2NrID0gTWFnaWNNb2NrKHNwZWNfc2V0PUl0ZXJhYmxlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QobW9jayksIFtdKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0X2ludCkKKworCisgICAgZGVmIHRlc3Rfc2V0dGluZ191bnN1cHBvcnRlZF9tYWdpY19tZXRob2Qoc2VsZik6CisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBkZWYgc2V0X3NldGF0dHIoKToKKyAgICAgICAgICAgIG1vY2suX19zZXRhdHRyX18gPSBsYW1iZGEgc2VsZiwgbmFtZTogTm9uZQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KEF0dHJpYnV0ZUVycm9yLAorICAgICAgICAgICAgIkF0dGVtcHRpbmcgdG8gc2V0IHVuc3VwcG9ydGVkIG1hZ2ljIG1ldGhvZCAnX19zZXRhdHRyX18nLiIsCisgICAgICAgICAgICBzZXRfc2V0YXR0cgorICAgICAgICApCisKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZXNfYW5kX3JldHVybl92YWx1ZShzZWxmKToKKyAgICAgICAgbW9jayA9IE1hZ2ljTW9jaygpCisgICAgICAgIGF0dHIgPSBtb2NrLmZvbworICAgICAgICBkZWYgX2dldF90eXBlKG9iaik6CisgICAgICAgICAgICAjIHRoZSB0eXBlIG9mIGV2ZXJ5IG1vY2sgKG9yIG1hZ2ljbW9jaykgaXMgYSBjdXN0b20gc3ViY2xhc3MKKyAgICAgICAgICAgICMgc28gdGhlIHJlYWwgdHlwZSBpcyB0aGUgc2Vjb25kIGluIHRoZSBtcm8KKyAgICAgICAgICAgIHJldHVybiB0eXBlKG9iaikuX19tcm9fX1sxXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9nZXRfdHlwZShhdHRyKSwgTWFnaWNNb2NrKQorCisgICAgICAgIHJldHVybmVkID0gbW9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX2dldF90eXBlKHJldHVybmVkKSwgTWFnaWNNb2NrKQorCisKKyAgICBkZWYgdGVzdF9tYWdpY19tZXRob2RzX2FyZV9tYWdpY19tb2NrcyhzZWxmKToKKyAgICAgICAgbW9jayA9IE1hZ2ljTW9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2NrLl9fZ2V0aXRlbV9fLCBNYWdpY01vY2spCisKKyAgICAgICAgbW9ja1sxXVsyXS5fX2dldGl0ZW1fXy5yZXR1cm5fdmFsdWUgPSAzCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9ja1sxXVsyXVszXSwgMykKKworCisgICAgZGVmIHRlc3RfbWFnaWNfbWV0aG9kX3Jlc2V0X21vY2soc2VsZik6CisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBzdHIobW9jaykKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1vY2suX19zdHJfXy5jYWxsZWQpCisgICAgICAgIG1vY2sucmVzZXRfbW9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9jay5fX3N0cl9fLmNhbGxlZCkKKworCisgICAgZGVmIHRlc3RfZGlyKHNlbGYpOgorICAgICAgICAjIG92ZXJyaWRpbmcgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgZm9yIG1vY2sgaW4gTW9jaygpLCBNYWdpY01vY2soKToKKyAgICAgICAgICAgIGRlZiBfZGlyKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBbJ2ZvbyddCisgICAgICAgICAgICBtb2NrLl9fZGlyX18gPSBfZGlyCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpcihtb2NrKSwgWydmb28nXSkKKworCisgICAgQHVuaXR0ZXN0LnNraXBJZignUHlQeScgaW4gc3lzLnZlcnNpb24sICJUaGlzIGZhaWxzIGRpZmZlcmVudGx5IG9uIHB5cHkiKQorICAgIGRlZiB0ZXN0X2JvdW5kX21ldGhvZHMoc2VsZik6CisgICAgICAgIG0gPSBNb2NrKCkKKworICAgICAgICAjIFhYWFggc2hvdWxkIHRoaXMgYmUgYW4gZXhwZWN0ZWQgZmFpbHVyZSBpbnN0ZWFkPworCisgICAgICAgICMgdGhpcyBzZWVtcyBsaWtlIGl0IHNob3VsZCB3b3JrLCBidXQgaXMgaGFyZCB0byBkbyB3aXRob3V0IGludHJvZHVjaW5nCisgICAgICAgICMgb3RoZXIgYXBpIGluY29uc2lzdGVuY2llcy4gRmFpbHVyZSBtZXNzYWdlIGNvdWxkIGJlIGJldHRlciB0aG91Z2guCisgICAgICAgIG0uX19pdGVyX18gPSBbM10uX19pdGVyX18KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBpdGVyLCBtKQorCisKKyAgICBkZWYgdGVzdF9tYWdpY19tZXRob2RfdHlwZShzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKE1hZ2ljTW9jayk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgZm9vID0gRm9vKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKGZvby5fX2ludF9fLCBGb28pCisKKworICAgIGRlZiB0ZXN0X2Rlc2NyaXB0b3JfZnJvbV9jbGFzcyhzZWxmKToKKyAgICAgICAgbSA9IE1hZ2ljTW9jaygpCisgICAgICAgIHR5cGUobSkuX19zdHJfXy5yZXR1cm5fdmFsdWUgPSAnZm9vJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cihtKSwgJ2ZvbycpCisKKworICAgIGRlZiB0ZXN0X2l0ZXJhYmxlX2FzX2l0ZXJfcmV0dXJuX3ZhbHVlKHNlbGYpOgorICAgICAgICBtID0gTWFnaWNNb2NrKCkKKyAgICAgICAgbS5fX2l0ZXJfXy5yZXR1cm5fdmFsdWUgPSBbMSwgMiwgM10KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaXN0KG0pLCBbMSwgMiwgM10pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChtKSwgWzEsIDIsIDNdKQorCisgICAgICAgIG0uX19pdGVyX18ucmV0dXJuX3ZhbHVlID0gaXRlcihbNCwgNSwgNl0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGlzdChtKSwgWzQsIDUsIDZdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpc3QobSksIFtdKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0bW9jay90ZXN0bW9jay5weSBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3Rtb2NrLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0ZmQxYTEKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0bW9jay90ZXN0bW9jay5weQpAQCAtMCwwICsxLDEyNjggQEAKK2ltcG9ydCBjb3B5CitpbXBvcnQgc3lzCisKK2ltcG9ydCB1bml0dGVzdAorZnJvbSB1bml0dGVzdC50ZXN0LnRlc3Rtb2NrLnN1cHBvcnQgaW1wb3J0IGlzX2luc3RhbmNlCitmcm9tIHVuaXR0ZXN0IGltcG9ydCBtb2NrCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0ICgKKyAgICBjYWxsLCBERUZBVUxULCBwYXRjaCwgc2VudGluZWwsCisgICAgTWFnaWNNb2NrLCBNb2NrLCBOb25DYWxsYWJsZU1vY2ssCisgICAgTm9uQ2FsbGFibGVNYWdpY01vY2ssIF9DYWxsTGlzdCwKKyAgICBjcmVhdGVfYXV0b3NwZWMKKykKKworCitjbGFzcyBJdGVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnRoaW5nID0gaXRlcihbJ3RoaXMnLCAnaXMnLCAnYW4nLCAnaXRlciddKQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIG5leHQoc2VsZik6CisgICAgICAgIHJldHVybiBuZXh0KHNlbGYudGhpbmcpCisKKyAgICBfX25leHRfXyA9IG5leHQKKworCisKK2NsYXNzIE1vY2tUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0ZXN0X2FsbChzZWxmKToKKyAgICAgICAgIyBpZiBfX2FsbF9fIGlzIGJhZGx5IGRlZmluZWQgdGhlbiBpbXBvcnQgKiB3aWxsIHJhaXNlIGFuIGVycm9yCisgICAgICAgICMgV2UgaGF2ZSB0byBleGVjIGl0IGJlY2F1c2UgeW91IGNhbid0IGltcG9ydCAqIGluc2lkZSBhIG1ldGhvZAorICAgICAgICAjIGluIFB5dGhvbiAzCisgICAgICAgIGV4ZWMoImZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgKiIpCisKKworICAgIGRlZiB0ZXN0X2NvbnN0cnVjdG9yKHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jaygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb2NrLmNhbGxlZCwgImNhbGxlZCBub3QgaW5pdGlhbGlzZWQgY29ycmVjdGx5IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmNhbGxfY291bnQsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgImNhbGxfY291bnQgbm90IGluaXRpYWxpc2VkIGNvcnJlY3RseSIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc19pbnN0YW5jZShtb2NrLnJldHVybl92YWx1ZSwgTW9jayksCisgICAgICAgICAgICAgICAgICAgICAgICAicmV0dXJuX3ZhbHVlIG5vdCBpbml0aWFsaXNlZCBjb3JyZWN0bHkiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5jYWxsX2FyZ3MsIE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgImNhbGxfYXJncyBub3QgaW5pdGlhbGlzZWQgY29ycmVjdGx5IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmNhbGxfYXJnc19saXN0LCBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiY2FsbF9hcmdzX2xpc3Qgbm90IGluaXRpYWxpc2VkIGNvcnJlY3RseSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibWV0aG9kX2NhbGxzIG5vdCBpbml0aWFsaXNlZCBjb3JyZWN0bHkiKQorCisgICAgICAgICMgQ2FuJ3QgdXNlIGhhc2F0dHIgZm9yIHRoaXMgdGVzdCBhcyBpdCBhbHdheXMgcmV0dXJucyBUcnVlIG9uIGEgbW9jaworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKCdfaXRlbXMnIGluIG1vY2suX19kaWN0X18sCisgICAgICAgICAgICAgICAgICAgICAgICAgImRlZmF1bHQgbW9jayBzaG91bGQgbm90IGhhdmUgJ19pdGVtcycgYXR0cmlidXRlIikKKworICAgICAgICBzZWxmLmFzc2VydElzTm9uZShtb2NrLl9tb2NrX3BhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcmVudCBub3QgaW5pdGlhbGlzZWQgY29ycmVjdGx5IikKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobW9jay5fbW9ja19tZXRob2RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAibWV0aG9kcyBub3QgaW5pdGlhbGlzZWQgY29ycmVjdGx5IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLl9tb2NrX2NoaWxkcmVuLCB7fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiY2hpbGRyZW4gbm90IGluaXRpYWxpc2VkIGluY29ycmVjdGx5IikKKworCisgICAgZGVmIHRlc3RfcmV0dXJuX3ZhbHVlX2luX2NvbnN0cnVjdG9yKHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jayhyZXR1cm5fdmFsdWU9Tm9uZSkKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vbmUobW9jay5yZXR1cm5fdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXR1cm4gdmFsdWUgaW4gY29uc3RydWN0b3Igbm90IGhvbm91cmVkIikKKworCisgICAgZGVmIHRlc3RfcmVwcihzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2sobmFtZT0nZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbignZm9vJywgcmVwcihtb2NrKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbigiJyVzJyIgJSBpZChtb2NrKSwgcmVwcihtb2NrKSkKKworICAgICAgICBtb2NrcyA9IFsoTW9jaygpLCAnbW9jaycpLCAoTW9jayhuYW1lPSdiYXInKSwgJ2JhcicpXQorICAgICAgICBmb3IgbW9jaywgbmFtZSBpbiBtb2NrczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJyVzLmJhcicgJSBuYW1lLCByZXByKG1vY2suYmFyKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJyVzLmZvbygpJyAlIG5hbWUsIHJlcHIobW9jay5mb28oKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCclcy5mb28oKS5iaW5nJyAlIG5hbWUsIHJlcHIobW9jay5mb28oKS5iaW5nKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJyVzKCknICUgbmFtZSwgcmVwcihtb2NrKCkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbignJXMoKSgpJyAlIG5hbWUsIHJlcHIobW9jaygpKCkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbignJXMoKSgpLmZvby5iYXIuYmF6KCkuYmluZycgJSBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKG1vY2soKSgpLmZvby5iYXIuYmF6KCkuYmluZykpCisKKworICAgIGRlZiB0ZXN0X3JlcHJfd2l0aF9zcGVjKHNlbGYpOgorICAgICAgICBjbGFzcyBYKG9iamVjdCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgbW9jayA9IE1vY2soc3BlYz1YKQorICAgICAgICBzZWxmLmFzc2VydEluKCIgc3BlYz0nWCcgIiwgcmVwcihtb2NrKSkKKworICAgICAgICBtb2NrID0gTW9jayhzcGVjPVgoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbigiIHNwZWM9J1gnICIsIHJlcHIobW9jaykpCisKKyAgICAgICAgbW9jayA9IE1vY2soc3BlY19zZXQ9WCkKKyAgICAgICAgc2VsZi5hc3NlcnRJbigiIHNwZWNfc2V0PSdYJyAiLCByZXByKG1vY2spKQorCisgICAgICAgIG1vY2sgPSBNb2NrKHNwZWNfc2V0PVgoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbigiIHNwZWNfc2V0PSdYJyAiLCByZXByKG1vY2spKQorCisgICAgICAgIG1vY2sgPSBNb2NrKHNwZWM9WCwgbmFtZT0nZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnRJbigiIHNwZWM9J1gnICIsIHJlcHIobW9jaykpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oIiBuYW1lPSdmb28nICIsIHJlcHIobW9jaykpCisKKyAgICAgICAgbW9jayA9IE1vY2sobmFtZT0nZm9vJykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJbigic3BlYyIsIHJlcHIobW9jaykpCisKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBzZWxmLmFzc2VydE5vdEluKCJzcGVjIiwgcmVwcihtb2NrKSkKKworICAgICAgICBtb2NrID0gTW9jayhzcGVjPVsnZm9vJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90SW4oInNwZWMiLCByZXByKG1vY2spKQorCisKKyAgICBkZWYgdGVzdF9zaWRlX2VmZmVjdChzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorCisgICAgICAgIGRlZiBlZmZlY3QoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJhaXNlIFN5c3RlbUVycm9yKCdrYWJsb29pZScpCisKKyAgICAgICAgbW9jay5zaWRlX2VmZmVjdCA9IGVmZmVjdAorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTeXN0ZW1FcnJvciwgbW9jaywgMSwgMiwgZmlzaD0zKQorICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgxLCAyLCBmaXNoPTMpCisKKyAgICAgICAgcmVzdWx0cyA9IFsxLCAyLCAzXQorICAgICAgICBkZWYgZWZmZWN0KCk6CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0cy5wb3AoKQorICAgICAgICBtb2NrLnNpZGVfZWZmZWN0ID0gZWZmZWN0CisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbbW9jaygpLCBtb2NrKCksIG1vY2soKV0sIFszLCAyLCAxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZGUgZWZmZWN0IG5vdCB1c2VkIGNvcnJlY3RseSIpCisKKyAgICAgICAgbW9jayA9IE1vY2soc2lkZV9lZmZlY3Q9c2VudGluZWwuU2lkZUVmZmVjdCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLnNpZGVfZWZmZWN0LCBzZW50aW5lbC5TaWRlRWZmZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAic2lkZSBlZmZlY3QgaW4gY29uc3RydWN0b3Igbm90IHVzZWQiKQorCisgICAgICAgIGRlZiBzaWRlX2VmZmVjdCgpOgorICAgICAgICAgICAgcmV0dXJuIERFRkFVTFQKKyAgICAgICAgbW9jayA9IE1vY2soc2lkZV9lZmZlY3Q9c2lkZV9lZmZlY3QsIHJldHVybl92YWx1ZT1zZW50aW5lbC5SRVRVUk4pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaygpLCBzZW50aW5lbC5SRVRVUk4pCisKKworICAgIEB1bml0dGVzdC5za2lwVW5sZXNzKCdqYXZhJyBpbiBzeXMucGxhdGZvcm0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICdUaGlzIHRlc3Qgb25seSBhcHBsaWVzIHRvIEp5dGhvbicpCisgICAgZGVmIHRlc3RfamF2YV9leGNlcHRpb25fc2lkZV9lZmZlY3Qoc2VsZik6CisgICAgICAgIGltcG9ydCBqYXZhCisgICAgICAgIG1vY2sgPSBNb2NrKHNpZGVfZWZmZWN0PWphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uKCJCb29tISIpKQorCisgICAgICAgICMgY2FuJ3QgdXNlIGFzc2VydFJhaXNlcyB3aXRoIGphdmEgZXhjZXB0aW9ucworICAgICAgICB0cnk6CisgICAgICAgICAgICBtb2NrKDEsIDIsIGZpc2g9MykKKyAgICAgICAgZXhjZXB0IGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCdqYXZhIGV4Y2VwdGlvbiBub3QgcmFpc2VkJykKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoMSwyLCBmaXNoPTMpCisKKworICAgIGRlZiB0ZXN0X3Jlc2V0X21vY2soc2VsZik6CisgICAgICAgIHBhcmVudCA9IE1vY2soKQorICAgICAgICBzcGVjID0gWyJzb21ldGhpbmciXQorICAgICAgICBtb2NrID0gTW9jayhuYW1lPSJjaGlsZCIsIHBhcmVudD1wYXJlbnQsIHNwZWM9c3BlYykKKyAgICAgICAgbW9jayhzZW50aW5lbC5Tb21ldGhpbmcsIHNvbWV0aGluZz1zZW50aW5lbC5Tb21ldGhpbmdFbHNlKQorICAgICAgICBzb21ldGhpbmcgPSBtb2NrLnNvbWV0aGluZworICAgICAgICBtb2NrLnNvbWV0aGluZygpCisgICAgICAgIG1vY2suc2lkZV9lZmZlY3QgPSBzZW50aW5lbC5TaWRlRWZmZWN0CisgICAgICAgIHJldHVybl92YWx1ZSA9IG1vY2sucmV0dXJuX3ZhbHVlCisgICAgICAgIHJldHVybl92YWx1ZSgpCisKKyAgICAgICAgbW9jay5yZXNldF9tb2NrKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suX21vY2tfbmFtZSwgImNoaWxkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSBpbmNvcnJlY3RseSByZXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5fbW9ja19wYXJlbnQsIHBhcmVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGFyZW50IGluY29ycmVjdGx5IHJlc2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLl9tb2NrX21ldGhvZHMsIHNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIm1ldGhvZHMgaW5jb3JyZWN0bHkgcmVzZXQiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobW9jay5jYWxsZWQsICJjYWxsZWQgbm90IHJlc2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmNhbGxfY291bnQsIDAsICJjYWxsX2NvdW50IG5vdCByZXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5jYWxsX2FyZ3MsIE5vbmUsICJjYWxsX2FyZ3Mgbm90IHJlc2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmNhbGxfYXJnc19saXN0LCBbXSwgImNhbGxfYXJnc19saXN0IG5vdCByZXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgIm1ldGhvZF9jYWxscyBub3QgaW5pdGlhbGlzZWQgY29ycmVjdGx5OiAlciAhPSAlciIgJQorICAgICAgICAgICAgICAgICAgICAgICAgKG1vY2subWV0aG9kX2NhbGxzLCBbXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBbXSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suc2lkZV9lZmZlY3QsIHNlbnRpbmVsLlNpZGVFZmZlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWRlX2VmZmVjdCBpbmNvcnJlY3RseSByZXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5yZXR1cm5fdmFsdWUsIHJldHVybl92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInJldHVybl92YWx1ZSBpbmNvcnJlY3RseSByZXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocmV0dXJuX3ZhbHVlLmNhbGxlZCwgInJldHVybiB2YWx1ZSBtb2NrIG5vdCByZXNldCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5fbW9ja19jaGlsZHJlbiwgeydzb21ldGhpbmcnOiBzb21ldGhpbmd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hpbGRyZW4gcmVzZXQgaW5jb3JyZWN0bHkiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suc29tZXRoaW5nLCBzb21ldGhpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICJjaGlsZHJlbiBpbmNvcnJlY3RseSBjbGVhcmVkIikKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtb2NrLnNvbWV0aGluZy5jYWxsZWQsICJjaGlsZCBub3QgcmVzZXQiKQorCisKKyAgICBkZWYgdGVzdF9yZXNldF9tb2NrX3JlY3Vyc2lvbihzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBtb2NrLnJldHVybl92YWx1ZSA9IG1vY2sKKworICAgICAgICAjIHVzZWQgdG8gY2F1c2UgcmVjdXJzaW9uCisgICAgICAgIG1vY2sucmVzZXRfbW9jaygpCisKKworICAgIGRlZiB0ZXN0X2NhbGwoc2VsZik6CisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzX2luc3RhbmNlKG1vY2sucmV0dXJuX3ZhbHVlLCBNb2NrKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJEZWZhdWx0IHJldHVybl92YWx1ZSBzaG91bGQgYmUgYSBNb2NrIikKKworICAgICAgICByZXN1bHQgPSBtb2NrKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrKCksIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZGlmZmVyZW50IHJlc3VsdCBmcm9tIGNvbnNlY3V0aXZlIGNhbGxzIikKKyAgICAgICAgbW9jay5yZXNldF9tb2NrKCkKKworICAgICAgICByZXRfdmFsID0gbW9jayhzZW50aW5lbC5BcmcpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtb2NrLmNhbGxlZCwgImNhbGxlZCBub3Qgc2V0IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmNhbGxfY291bnQsIDEsICJjYWxsX2NvdW50IGluY29yZWVjdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5jYWxsX2FyZ3MsICgoc2VudGluZWwuQXJnLCksIHt9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiY2FsbF9hcmdzIG5vdCBzZXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suY2FsbF9hcmdzX2xpc3QsIFsoKHNlbnRpbmVsLkFyZywpLCB7fSldLAorICAgICAgICAgICAgICAgICAgICAgICAgICJjYWxsX2FyZ3NfbGlzdCBub3QgaW5pdGlhbGlzZWQgY29ycmVjdGx5IikKKworICAgICAgICBtb2NrLnJldHVybl92YWx1ZSA9IHNlbnRpbmVsLlJldHVyblZhbHVlCisgICAgICAgIHJldF92YWwgPSBtb2NrKHNlbnRpbmVsLkFyZywga2V5PXNlbnRpbmVsLktleUFyZykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXRfdmFsLCBzZW50aW5lbC5SZXR1cm5WYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiaW5jb3JyZWN0IHJldHVybiB2YWx1ZSIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmNhbGxfY291bnQsIDIsICJjYWxsX2NvdW50IGluY29ycmVjdCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5jYWxsX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgKChzZW50aW5lbC5BcmcsKSwgeydrZXknOiBzZW50aW5lbC5LZXlBcmd9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiY2FsbF9hcmdzIG5vdCBzZXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suY2FsbF9hcmdzX2xpc3QsIFsKKyAgICAgICAgICAgICgoc2VudGluZWwuQXJnLCksIHt9KSwKKyAgICAgICAgICAgICgoc2VudGluZWwuQXJnLCksIHsna2V5Jzogc2VudGluZWwuS2V5QXJnfSkKKyAgICAgICAgXSwKKyAgICAgICAgICAgICJjYWxsX2FyZ3NfbGlzdCBub3Qgc2V0IikKKworCisgICAgZGVmIHRlc3RfY2FsbF9hcmdzX2NvbXBhcmlzb24oc2VsZik6CisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jaygpCisgICAgICAgIG1vY2soc2VudGluZWwuQXJnKQorICAgICAgICBtb2NrKGt3PXNlbnRpbmVsLkt3YXJnKQorICAgICAgICBtb2NrKHNlbnRpbmVsLkFyZywga3c9c2VudGluZWwuS3dhcmcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5jYWxsX2FyZ3NfbGlzdCwgWworICAgICAgICAgICAgKCksCisgICAgICAgICAgICAoKHNlbnRpbmVsLkFyZywpLCksCisgICAgICAgICAgICAoeyJrdyI6IHNlbnRpbmVsLkt3YXJnfSwpLAorICAgICAgICAgICAgKChzZW50aW5lbC5BcmcsKSwgeyJrdyI6IHNlbnRpbmVsLkt3YXJnfSkKKyAgICAgICAgXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmNhbGxfYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAoKHNlbnRpbmVsLkFyZywpLCB7Imt3Ijogc2VudGluZWwuS3dhcmd9KSkKKworCisgICAgZGVmIHRlc3RfYXNzZXJ0X2NhbGxlZF93aXRoKHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jaygpCisgICAgICAgIG1vY2soKQorCisgICAgICAgICMgV2lsbCByYWlzZSBhbiBleGNlcHRpb24gaWYgaXQgZmFpbHMKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBc3NlcnRpb25FcnJvciwgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgsIDEpCisKKyAgICAgICAgbW9jay5yZXNldF9tb2NrKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXNzZXJ0aW9uRXJyb3IsIG1vY2suYXNzZXJ0X2NhbGxlZF93aXRoKQorCisgICAgICAgIG1vY2soMSwgMiwgMywgYT0nZmlzaCcsIGI9J25vdGhpbmcnKQorICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgxLCAyLCAzLCBhPSdmaXNoJywgYj0nbm90aGluZycpCisKKworICAgIGRlZiB0ZXN0X2Fzc2VydF9jYWxsZWRfb25jZV93aXRoKHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jaygpCisgICAgICAgIG1vY2soKQorCisgICAgICAgICMgV2lsbCByYWlzZSBhbiBleGNlcHRpb24gaWYgaXQgZmFpbHMKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgpCisKKyAgICAgICAgbW9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKQorCisgICAgICAgIG1vY2sucmVzZXRfbW9jaygpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEFzc2VydGlvbkVycm9yLCBtb2NrLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKQorCisgICAgICAgIG1vY2soJ2ZvbycsICdiYXInLCBiYXo9MikKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgnZm9vJywgJ2JhcicsIGJhej0yKQorCisgICAgICAgIG1vY2sucmVzZXRfbW9jaygpCisgICAgICAgIG1vY2soJ2ZvbycsICdiYXInLCBiYXo9MikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICBBc3NlcnRpb25FcnJvciwKKyAgICAgICAgICAgIGxhbWJkYTogbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgnYm9iJywgJ2JhcicsIGJhej0yKQorICAgICAgICApCisKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZV9hY2Nlc3NfcmV0dXJuc19tb2NrcyhzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBzb21ldGhpbmcgPSBtb2NrLnNvbWV0aGluZworICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfaW5zdGFuY2Uoc29tZXRoaW5nLCBNb2NrKSwgImF0dHJpYnV0ZSBpc24ndCBhIG1vY2siKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suc29tZXRoaW5nLCBzb21ldGhpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgImRpZmZlcmVudCBhdHRyaWJ1dGVzIHJldHVybmVkIGZvciBzYW1lIG5hbWUiKQorCisgICAgICAgICMgVXNhZ2UgZXhhbXBsZQorICAgICAgICBtb2NrID0gTW9jaygpCisgICAgICAgIG1vY2suc29tZXRoaW5nLnJldHVybl92YWx1ZSA9IDMKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suc29tZXRoaW5nKCksIDMsICJtZXRob2QgcmV0dXJuZWQgd3JvbmcgdmFsdWUiKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobW9jay5zb21ldGhpbmcuY2FsbGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgIm1ldGhvZCBkaWRuJ3QgcmVjb3JkIGJlaW5nIGNhbGxlZCIpCisKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZXNfaGF2ZV9uYW1lX2FuZF9wYXJlbnRfc2V0KHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jaygpCisgICAgICAgIHNvbWV0aGluZyA9IG1vY2suc29tZXRoaW5nCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21ldGhpbmcuX21vY2tfbmFtZSwgInNvbWV0aGluZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgImF0dHJpYnV0ZSBuYW1lIG5vdCBzZXQgY29ycmVjdGx5IikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21ldGhpbmcuX21vY2tfcGFyZW50LCBtb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICJhdHRyaWJ1dGUgcGFyZW50IG5vdCBzZXQgY29ycmVjdGx5IikKKworCisgICAgZGVmIHRlc3RfbWV0aG9kX2NhbGxzX3JlY29yZGVkKHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jaygpCisgICAgICAgIG1vY2suc29tZXRoaW5nKDMsIGZpc2g9Tm9uZSkKKyAgICAgICAgbW9jay5zb21ldGhpbmdfZWxzZS5zb21ldGhpbmcoNiwgY2FrZT1zZW50aW5lbC5DYWtlKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5zb21ldGhpbmdfZWxzZS5tZXRob2RfY2FsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFsoInNvbWV0aGluZyIsICg2LCksIHsnY2FrZSc6IHNlbnRpbmVsLkNha2V9KV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICJtZXRob2QgY2FsbHMgbm90IHJlY29yZGVkIGNvcnJlY3RseSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFsKKyAgICAgICAgICAgICgic29tZXRoaW5nIiwgKDMsKSwgeydmaXNoJzogTm9uZX0pLAorICAgICAgICAgICAgKCJzb21ldGhpbmdfZWxzZS5zb21ldGhpbmciLCAoNiwpLCB7J2Nha2UnOiBzZW50aW5lbC5DYWtlfSkKKyAgICAgICAgXSwKKyAgICAgICAgICAgICJtZXRob2QgY2FsbHMgbm90IHJlY29yZGVkIGNvcnJlY3RseSIpCisKKworICAgIGRlZiB0ZXN0X21ldGhvZF9jYWxsc19jb21wYXJlX2Vhc2lseShzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBtb2NrLnNvbWV0aGluZygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFsoJ3NvbWV0aGluZycsKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFsoJ3NvbWV0aGluZycsICgpLCB7fSldKQorCisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jay5zb21ldGhpbmcoJ2RpZmZlcmVudCcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFsoJ3NvbWV0aGluZycsICgnZGlmZmVyZW50JywpKV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgWygnc29tZXRoaW5nJywgKCdkaWZmZXJlbnQnLCksIHt9KV0pCisKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBtb2NrLnNvbWV0aGluZyh4PTEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFsoJ3NvbWV0aGluZycsIHsneCc6IDF9KV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFsoJ3NvbWV0aGluZycsICgpLCB7J3gnOiAxfSldKQorCisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jay5zb21ldGhpbmcoJ2RpZmZlcmVudCcsIHNvbWU9J21vcmUnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2subWV0aG9kX2NhbGxzLCBbCisgICAgICAgICAgICAoJ3NvbWV0aGluZycsICgnZGlmZmVyZW50JywpLCB7J3NvbWUnOiAnbW9yZSd9KQorICAgICAgICBdKQorCisKKyAgICBkZWYgdGVzdF9vbmx5X2FsbG93ZWRfbWV0aG9kc19leGlzdChzZWxmKToKKyAgICAgICAgZm9yIHNwZWMgaW4gWydzb21ldGhpbmcnXSwgKCdzb21ldGhpbmcnLCk6CisgICAgICAgICAgICBmb3IgYXJnIGluICdzcGVjJywgJ3NwZWNfc2V0JzoKKyAgICAgICAgICAgICAgICBtb2NrID0gTW9jaygqKnthcmc6IHNwZWN9KQorCisgICAgICAgICAgICAgICAgIyB0aGlzIHNob3VsZCBiZSBhbGxvd2VkCisgICAgICAgICAgICAgICAgbW9jay5zb21ldGhpbmcKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1JlZ2V4KAorICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgIk1vY2sgb2JqZWN0IGhhcyBubyBhdHRyaWJ1dGUgJ3NvbWV0aGluZ19lbHNlJyIsCisgICAgICAgICAgICAgICAgICAgIGdldGF0dHIsIG1vY2ssICdzb21ldGhpbmdfZWxzZScKKyAgICAgICAgICAgICAgICApCisKKworICAgIGRlZiB0ZXN0X2Zyb21fc3BlYyhzZWxmKToKKyAgICAgICAgY2xhc3MgU29tZXRoaW5nKG9iamVjdCk6CisgICAgICAgICAgICB4ID0gMworICAgICAgICAgICAgX19zb21ldGhpbmdfXyA9IE5vbmUKKyAgICAgICAgICAgIGRlZiB5KHNlbGYpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgdGVzdF9hdHRyaWJ1dGVzKG1vY2spOgorICAgICAgICAgICAgIyBzaG91bGQgd29yaworICAgICAgICAgICAgbW9jay54CisgICAgICAgICAgICBtb2NrLnkKKyAgICAgICAgICAgIG1vY2suX19zb21ldGhpbmdfXworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleCgKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVFcnJvciwKKyAgICAgICAgICAgICAgICAiTW9jayBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAneiciLAorICAgICAgICAgICAgICAgIGdldGF0dHIsIG1vY2ssICd6JworICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleCgKKyAgICAgICAgICAgICAgICBBdHRyaWJ1dGVFcnJvciwKKyAgICAgICAgICAgICAgICAiTW9jayBvYmplY3QgaGFzIG5vIGF0dHJpYnV0ZSAnX19mb29iYXJfXyciLAorICAgICAgICAgICAgICAgIGdldGF0dHIsIG1vY2ssICdfX2Zvb2Jhcl9fJworICAgICAgICAgICAgKQorCisgICAgICAgIHRlc3RfYXR0cmlidXRlcyhNb2NrKHNwZWM9U29tZXRoaW5nKSkKKyAgICAgICAgdGVzdF9hdHRyaWJ1dGVzKE1vY2soc3BlYz1Tb21ldGhpbmcoKSkpCisKKworICAgIGRlZiB0ZXN0X3dyYXBzX2NhbGxzKHNlbGYpOgorICAgICAgICByZWFsID0gTW9jaygpCisKKyAgICAgICAgbW9jayA9IE1vY2sod3JhcHM9cmVhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrKCksIHJlYWwoKSkKKworICAgICAgICByZWFsLnJlc2V0X21vY2soKQorCisgICAgICAgIG1vY2soMSwgMiwgZmlzaD0zKQorICAgICAgICByZWFsLmFzc2VydF9jYWxsZWRfd2l0aCgxLCAyLCBmaXNoPTMpCisKKworICAgIGRlZiB0ZXN0X3dyYXBzX2NhbGxfd2l0aF9ub25kZWZhdWx0X3JldHVybl92YWx1ZShzZWxmKToKKyAgICAgICAgcmVhbCA9IE1vY2soKQorCisgICAgICAgIG1vY2sgPSBNb2NrKHdyYXBzPXJlYWwpCisgICAgICAgIG1vY2sucmV0dXJuX3ZhbHVlID0gMworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaygpLCAzKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlYWwuY2FsbGVkKQorCisKKyAgICBkZWYgdGVzdF93cmFwc19hdHRyaWJ1dGVzKHNlbGYpOgorICAgICAgICBjbGFzcyBSZWFsKG9iamVjdCk6CisgICAgICAgICAgICBhdHRyaWJ1dGUgPSBNb2NrKCkKKworICAgICAgICByZWFsID0gUmVhbCgpCisKKyAgICAgICAgbW9jayA9IE1vY2sod3JhcHM9cmVhbCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmF0dHJpYnV0ZSgpLCByZWFsLmF0dHJpYnV0ZSgpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbGFtYmRhOiBtb2NrLmZpc2gpCisKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChtb2NrLmF0dHJpYnV0ZSwgcmVhbC5hdHRyaWJ1dGUpCisgICAgICAgIHJlc3VsdCA9IG1vY2suYXR0cmlidXRlLmZyb2coMSwgMiwgZmlzaD0zKQorICAgICAgICBSZWFsLmF0dHJpYnV0ZS5mcm9nLmFzc2VydF9jYWxsZWRfd2l0aCgxLCAyLCBmaXNoPTMpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCBSZWFsLmF0dHJpYnV0ZS5mcm9nKCkpCisKKworICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbmFsX3NpZGVfZWZmZWN0KHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jayhzaWRlX2VmZmVjdD1BdHRyaWJ1dGVFcnJvcikKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIG1vY2spCisKKyAgICAgICAgbW9jayA9IE1vY2soc2lkZV9lZmZlY3Q9QXR0cmlidXRlRXJyb3IoJ2ZvbycpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbW9jaykKKworCisgICAgZGVmIHRlc3RfYmFzZWV4Y2VwdGlvbmFsX3NpZGVfZWZmZWN0KHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jayhzaWRlX2VmZmVjdD1LZXlib2FyZEludGVycnVwdCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5Ym9hcmRJbnRlcnJ1cHQsIG1vY2spCisKKyAgICAgICAgbW9jayA9IE1vY2soc2lkZV9lZmZlY3Q9S2V5Ym9hcmRJbnRlcnJ1cHQoJ2ZvbycpKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlib2FyZEludGVycnVwdCwgbW9jaykKKworCisgICAgZGVmIHRlc3RfYXNzZXJ0X2NhbGxlZF93aXRoX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXNSZWdleChBc3NlcnRpb25FcnJvciwgJ05vdCBjYWxsZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aCkKKworCisgICAgZGVmIHRlc3RfX25hbWVfXyhzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbGFtYmRhOiBtb2NrLl9fbmFtZV9fKQorCisgICAgICAgIG1vY2suX19uYW1lX18gPSAnZm9vJworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suX19uYW1lX18sICdmb28nKQorCisKKyAgICBkZWYgdGVzdF9zcGVjX2xpc3Rfc3ViY2xhc3Moc2VsZik6CisgICAgICAgIGNsYXNzIFN1YihsaXN0KToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgbW9jayA9IE1vY2soc3BlYz1TdWIoWydmb28nXSkpCisKKyAgICAgICAgbW9jay5hcHBlbmQoMykKKyAgICAgICAgbW9jay5hcHBlbmQuYXNzZXJ0X2NhbGxlZF93aXRoKDMpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBtb2NrLCAnZm9vJykKKworCisgICAgZGVmIHRlc3Rfc3BlY19jbGFzcyhzZWxmKToKKyAgICAgICAgY2xhc3MgWChvYmplY3QpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1vY2sgPSBNb2NrKHNwZWM9WCkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UobW9jaywgWCkpCisKKyAgICAgICAgbW9jayA9IE1vY2soc3BlYz1YKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKG1vY2ssIFgpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobW9jay5fX2NsYXNzX18sIFgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTW9jaygpLl9fY2xhc3NfXy5fX25hbWVfXywgJ01vY2snKQorCisgICAgICAgIG1vY2sgPSBNb2NrKHNwZWNfc2V0PVgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc2luc3RhbmNlKG1vY2ssIFgpKQorCisgICAgICAgIG1vY2sgPSBNb2NrKHNwZWNfc2V0PVgoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzaW5zdGFuY2UobW9jaywgWCkpCisKKworICAgIGRlZiB0ZXN0X3NldHRpbmdfYXR0cmlidXRlX3dpdGhfc3BlY19zZXQoc2VsZik6CisgICAgICAgIGNsYXNzIFgob2JqZWN0KToKKyAgICAgICAgICAgIHkgPSAzCisKKyAgICAgICAgbW9jayA9IE1vY2soc3BlYz1YKQorICAgICAgICBtb2NrLnggPSAnZm9vJworCisgICAgICAgIG1vY2sgPSBNb2NrKHNwZWNfc2V0PVgpCisgICAgICAgIGRlZiBzZXRfYXR0cigpOgorICAgICAgICAgICAgbW9jay54ID0gJ2ZvbycKKworICAgICAgICBtb2NrLnkgPSAnZm9vJworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0X2F0dHIpCisKKworICAgIGRlZiB0ZXN0X2NvcHkoc2VsZik6CisgICAgICAgIGN1cnJlbnQgPSBzeXMuZ2V0cmVjdXJzaW9ubGltaXQoKQorICAgICAgICBzZWxmLmFkZENsZWFudXAoc3lzLnNldHJlY3Vyc2lvbmxpbWl0LCBjdXJyZW50KQorCisgICAgICAgICMgY2FuJ3QgdXNlIHN5cy5tYXhpbnQgYXMgdGhpcyBkb2Vzbid0IGV4aXN0IGluIFB5dGhvbiAzCisgICAgICAgIHN5cy5zZXRyZWN1cnNpb25saW1pdChpbnQoMTBlOCkpCisgICAgICAgICMgdGhpcyBzZWdmYXVsdHMgd2l0aG91dCB0aGUgZml4IGluIHBsYWNlCisgICAgICAgIGNvcHkuY29weShNb2NrKCkpCisKKworICAgIGRlZiB0ZXN0X3N1YmNsYXNzX3dpdGhfcHJvcGVydGllcyhzZWxmKToKKyAgICAgICAgY2xhc3MgU3ViQ2xhc3MoTW9jayk6CisgICAgICAgICAgICBkZWYgX2dldChzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gMworICAgICAgICAgICAgZGVmIF9zZXQoc2VsZiwgdmFsdWUpOgorICAgICAgICAgICAgICAgIHJhaXNlIE5hbWVFcnJvcignc3RyYW5nZSBlcnJvcicpCisgICAgICAgICAgICBzb21lX2F0dHJpYnV0ZSA9IHByb3BlcnR5KF9nZXQsIF9zZXQpCisKKyAgICAgICAgcyA9IFN1YkNsYXNzKHNwZWNfc2V0PVN1YkNsYXNzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHMuc29tZV9hdHRyaWJ1dGUsIDMpCisKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHMuc29tZV9hdHRyaWJ1dGUgPSAzCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5hbWVFcnJvciwgdGVzdCkKKworICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgcy5mb28gPSAnYmFyJworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgdGVzdCkKKworCisgICAgZGVmIHRlc3Rfc2V0dGluZ19jYWxsKHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jaygpCisgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBhKToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLl9tb2NrX2NhbGwoYSkKKworICAgICAgICB0eXBlKG1vY2spLl9fY2FsbF9fID0gX19jYWxsX18KKyAgICAgICAgbW9jaygnb25lJykKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoJ29uZScpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtb2NrLCAnb25lJywgJ3R3bycpCisKKworICAgIGRlZiB0ZXN0X2RpcihzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBhdHRycyA9IHNldChkaXIobW9jaykpCisgICAgICAgIHR5cGVfYXR0cnMgPSBzZXQoW20gZm9yIG0gaW4gZGlyKE1vY2spIGlmIG5vdCBtLnN0YXJ0c3dpdGgoJ18nKV0pCisKKyAgICAgICAgIyBhbGwgcHVibGljIGF0dHJpYnV0ZXMgZnJvbSB0aGUgdHlwZSBhcmUgaW5jbHVkZWQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoKSwgdHlwZV9hdHRycyAtIGF0dHJzKQorCisgICAgICAgICMgY3JlYXRlcyB0aGVzZSBhdHRyaWJ1dGVzCisgICAgICAgIG1vY2suYSwgbW9jay5iCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2EnLCBkaXIobW9jaykpCisgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2InLCBkaXIobW9jaykpCisKKyAgICAgICAgIyBpbnN0YW5jZSBhdHRyaWJ1dGVzCisgICAgICAgIG1vY2suYyA9IG1vY2suZCA9IE5vbmUKKyAgICAgICAgc2VsZi5hc3NlcnRJbignYycsIGRpcihtb2NrKSkKKyAgICAgICAgc2VsZi5hc3NlcnRJbignZCcsIGRpcihtb2NrKSkKKworICAgICAgICAjIG1hZ2ljIG1ldGhvZHMKKyAgICAgICAgbW9jay5fX2l0ZXJfXyA9IGxhbWJkYSBzOiBpdGVyKFtdKQorICAgICAgICBzZWxmLmFzc2VydEluKCdfX2l0ZXJfXycsIGRpcihtb2NrKSkKKworCisgICAgZGVmIHRlc3RfZGlyX2Zyb21fc3BlYyhzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soc3BlYz11bml0dGVzdC5UZXN0Q2FzZSkKKyAgICAgICAgdGVzdGNhc2VfYXR0cnMgPSBzZXQoZGlyKHVuaXR0ZXN0LlRlc3RDYXNlKSkKKyAgICAgICAgYXR0cnMgPSBzZXQoZGlyKG1vY2spKQorCisgICAgICAgICMgYWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUgc3BlYyBhcmUgaW5jbHVkZWQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZXQoKSwgdGVzdGNhc2VfYXR0cnMgLSBhdHRycykKKworICAgICAgICAjIHNoYWRvdyBhIHN5cyBhdHRyaWJ1dGUKKyAgICAgICAgbW9jay52ZXJzaW9uID0gMworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRpcihtb2NrKS5jb3VudCgndmVyc2lvbicpLCAxKQorCisKKyAgICBkZWYgdGVzdF9maWx0ZXJfZGlyKHNlbGYpOgorICAgICAgICBwYXRjaGVyID0gcGF0Y2gub2JqZWN0KG1vY2ssICdGSUxURVJfRElSJywgRmFsc2UpCisgICAgICAgIHBhdGNoZXIuc3RhcnQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBhdHRycyA9IHNldChkaXIoTW9jaygpKSkKKyAgICAgICAgICAgIHR5cGVfYXR0cnMgPSBzZXQoZGlyKE1vY2spKQorCisgICAgICAgICAgICAjIEFMTCBhdHRyaWJ1dGVzIGZyb20gdGhlIHR5cGUgYXJlIGluY2x1ZGVkCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNldCgpLCB0eXBlX2F0dHJzIC0gYXR0cnMpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRjaGVyLnN0b3AoKQorCisKKyAgICBkZWYgdGVzdF9jb25maWd1cmVfbW9jayhzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soZm9vPSdiYXInKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suZm9vLCAnYmFyJykKKworICAgICAgICBtb2NrID0gTWFnaWNNb2NrKGZvbz0nYmFyJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmZvbywgJ2JhcicpCisKKyAgICAgICAga3dhcmdzID0geydzaWRlX2VmZmVjdCc6IEtleUVycm9yLCAnZm9vLmJhci5yZXR1cm5fdmFsdWUnOiAzMywKKyAgICAgICAgICAgICAgICAgICdmb28nOiBNYWdpY01vY2soKX0KKyAgICAgICAgbW9jayA9IE1vY2soKiprd2FyZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLCBtb2NrKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2suZm9vLmJhcigpLCAzMykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2suZm9vLCBNYWdpY01vY2spCisKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBtb2NrLmNvbmZpZ3VyZV9tb2NrKCoqa3dhcmdzKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgbW9jaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmZvby5iYXIoKSwgMzMpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2NrLmZvbywgTWFnaWNNb2NrKQorCisKKyAgICBkZWYgYXNzZXJ0UmFpc2VzV2l0aE1zZyhzZWxmLCBleGNlcHRpb24sIG1lc3NhZ2UsIGZ1bmMsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICMgbmVlZGVkIGJlY2F1c2UgYXNzZXJ0UmFpc2VzUmVnZXggZG9lc24ndCB3b3JrIGVhc2lseSB3aXRoIG5ld2xpbmVzCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZ1bmMoKmFyZ3MsICoqa3dhcmdzKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBpbnN0YW5jZSA9IHN5cy5leGNfaW5mbygpWzFdCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoaW5zdGFuY2UsIGV4Y2VwdGlvbikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgnRXhjZXB0aW9uICVyIG5vdCByYWlzZWQnICUgKGV4Y2VwdGlvbiwpKQorCisgICAgICAgIG1zZyA9IHN0cihpbnN0YW5jZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtc2csIG1lc3NhZ2UpCisKKworICAgIGRlZiB0ZXN0X2Fzc2VydF9jYWxsZWRfd2l0aF9mYWlsdXJlX21lc3NhZ2Uoc2VsZik6CisgICAgICAgIG1vY2sgPSBOb25DYWxsYWJsZU1vY2soKQorCisgICAgICAgIGV4cGVjdGVkID0gIm1vY2soMSwgJzInLCAzLCBiYXI9J2ZvbycpIgorICAgICAgICBtZXNzYWdlID0gJ0V4cGVjdGVkIGNhbGw6ICVzXG5Ob3QgY2FsbGVkJworICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1dpdGhNc2coCisgICAgICAgICAgICBBc3NlcnRpb25FcnJvciwgbWVzc2FnZSAlIChleHBlY3RlZCwpLAorICAgICAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgsIDEsICcyJywgMywgYmFyPSdmb28nCisgICAgICAgICkKKworICAgICAgICBtb2NrLmZvbygxLCAnMicsIDMsIGZvbz0nZm9vJykKKworCisgICAgICAgIGFzc2VydGVycyA9IFsKKyAgICAgICAgICAgIG1vY2suZm9vLmFzc2VydF9jYWxsZWRfd2l0aCwgbW9jay5mb28uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgKKyAgICAgICAgXQorICAgICAgICBmb3IgbWV0aCBpbiBhc3NlcnRlcnM6CisgICAgICAgICAgICBhY3R1YWwgPSAiZm9vKDEsICcyJywgMywgZm9vPSdmb28nKSIKKyAgICAgICAgICAgIGV4cGVjdGVkID0gImZvbygxLCAnMicsIDMsIGJhcj0nZm9vJykiCisgICAgICAgICAgICBtZXNzYWdlID0gJ0V4cGVjdGVkIGNhbGw6ICVzXG5BY3R1YWwgY2FsbDogJXMnCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1dpdGhNc2coCisgICAgICAgICAgICAgICAgQXNzZXJ0aW9uRXJyb3IsIG1lc3NhZ2UgJSAoZXhwZWN0ZWQsIGFjdHVhbCksCisgICAgICAgICAgICAgICAgbWV0aCwgMSwgJzInLCAzLCBiYXI9J2ZvbycKKyAgICAgICAgICAgICkKKworICAgICAgICAjIGp1c3Qga3dhcmdzCisgICAgICAgIGZvciBtZXRoIGluIGFzc2VydGVyczoKKyAgICAgICAgICAgIGFjdHVhbCA9ICJmb28oMSwgJzInLCAzLCBmb289J2ZvbycpIgorICAgICAgICAgICAgZXhwZWN0ZWQgPSAiZm9vKGJhcj0nZm9vJykiCisgICAgICAgICAgICBtZXNzYWdlID0gJ0V4cGVjdGVkIGNhbGw6ICVzXG5BY3R1YWwgY2FsbDogJXMnCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1dpdGhNc2coCisgICAgICAgICAgICAgICAgQXNzZXJ0aW9uRXJyb3IsIG1lc3NhZ2UgJSAoZXhwZWN0ZWQsIGFjdHVhbCksCisgICAgICAgICAgICAgICAgbWV0aCwgYmFyPSdmb28nCisgICAgICAgICAgICApCisKKyAgICAgICAgIyBqdXN0IGFyZ3MKKyAgICAgICAgZm9yIG1ldGggaW4gYXNzZXJ0ZXJzOgorICAgICAgICAgICAgYWN0dWFsID0gImZvbygxLCAnMicsIDMsIGZvbz0nZm9vJykiCisgICAgICAgICAgICBleHBlY3RlZCA9ICJmb28oMSwgMiwgMykiCisgICAgICAgICAgICBtZXNzYWdlID0gJ0V4cGVjdGVkIGNhbGw6ICVzXG5BY3R1YWwgY2FsbDogJXMnCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlc1dpdGhNc2coCisgICAgICAgICAgICAgICAgQXNzZXJ0aW9uRXJyb3IsIG1lc3NhZ2UgJSAoZXhwZWN0ZWQsIGFjdHVhbCksCisgICAgICAgICAgICAgICAgbWV0aCwgMSwgMiwgMworICAgICAgICAgICAgKQorCisgICAgICAgICMgZW1wdHkKKyAgICAgICAgZm9yIG1ldGggaW4gYXNzZXJ0ZXJzOgorICAgICAgICAgICAgYWN0dWFsID0gImZvbygxLCAnMicsIDMsIGZvbz0nZm9vJykiCisgICAgICAgICAgICBleHBlY3RlZCA9ICJmb28oKSIKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAnRXhwZWN0ZWQgY2FsbDogJXNcbkFjdHVhbCBjYWxsOiAlcycKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzV2l0aE1zZygKKyAgICAgICAgICAgICAgICBBc3NlcnRpb25FcnJvciwgbWVzc2FnZSAlIChleHBlY3RlZCwgYWN0dWFsKSwgbWV0aAorICAgICAgICAgICAgKQorCisKKyAgICBkZWYgdGVzdF9tb2NrX2NhbGxzKHNlbGYpOgorICAgICAgICBtb2NrID0gTWFnaWNNb2NrKCkKKworICAgICAgICAjIG5lZWQgdG8gZG8gdGhpcyBiZWNhdXNlIE1hZ2ljTW9jay5tb2NrX2NhbGxzIHVzZWQgdG8ganVzdCByZXR1cm4KKyAgICAgICAgIyBhIE1hZ2ljTW9jayB3aGljaCBhbHNvIHJldHVybmVkIGEgTWFnaWNNb2NrIHdoZW4gX19lcV9fIHdhcyBjYWxsZWQKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhtb2NrLm1vY2tfY2FsbHMgPT0gW10sIFRydWUpCisKKyAgICAgICAgbW9jayA9IE1hZ2ljTW9jaygpCisgICAgICAgIG1vY2soKQorICAgICAgICBleHBlY3RlZCA9IFsoJycsICgpLCB7fSldCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBleHBlY3RlZCkKKworICAgICAgICBtb2NrLmZvbygpCisgICAgICAgIGV4cGVjdGVkLmFwcGVuZChjYWxsLmZvbygpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2subW9ja19jYWxscywgZXhwZWN0ZWQpCisgICAgICAgICMgaW50ZXJtZWRpYXRlIG1vY2tfY2FsbHMgd29yayB0b28KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmZvby5tb2NrX2NhbGxzLCBbKCcnLCAoKSwge30pXSkKKworICAgICAgICBtb2NrID0gTWFnaWNNb2NrKCkKKyAgICAgICAgbW9jaygpLmZvbygxLCAyLCAzLCBhPTQsIGI9NSkKKyAgICAgICAgZXhwZWN0ZWQgPSBbCisgICAgICAgICAgICAoJycsICgpLCB7fSksICgnKCkuZm9vJywgKDEsIDIsIDMpLCBkaWN0KGE9NCwgYj01KSkKKyAgICAgICAgXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2subW9ja19jYWxscywgZXhwZWN0ZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5yZXR1cm5fdmFsdWUuZm9vLm1vY2tfY2FsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgWygnJywgKDEsIDIsIDMpLCBkaWN0KGE9NCwgYj01KSldKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2sucmV0dXJuX3ZhbHVlLm1vY2tfY2FsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgWygnZm9vJywgKDEsIDIsIDMpLCBkaWN0KGE9NCwgYj01KSldKQorCisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBtb2NrKCkuZm9vLmJhcigpLmJheigpCisgICAgICAgIGV4cGVjdGVkID0gWworICAgICAgICAgICAgKCcnLCAoKSwge30pLCAoJygpLmZvby5iYXInLCAoKSwge30pLAorICAgICAgICAgICAgKCcoKS5mb28uYmFyKCkuYmF6JywgKCksIHt9KQorICAgICAgICBdCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBleHBlY3RlZCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrKCkubW9ja19jYWxscywKKyAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsLmZvby5iYXIoKS5iYXooKS5jYWxsX2xpc3QoKSkKKworICAgICAgICBmb3Iga3dhcmdzIGluIGRpY3QoKSwgZGljdChuYW1lPSdiYXInKToKKyAgICAgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKiprd2FyZ3MpCisgICAgICAgICAgICBpbnQobW9jay5mb28pCisgICAgICAgICAgICBleHBlY3RlZCA9IFsoJ2Zvby5fX2ludF9fJywgKCksIHt9KV0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBleHBlY3RlZCkKKworICAgICAgICAgICAgbW9jayA9IE1hZ2ljTW9jaygqKmt3YXJncykKKyAgICAgICAgICAgIG1vY2suYSgpKCkKKyAgICAgICAgICAgIGV4cGVjdGVkID0gWygnYScsICgpLCB7fSksICgnYSgpJywgKCksIHt9KV0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBleHBlY3RlZCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5hKCkubW9ja19jYWxscywgW2NhbGwoKV0pCisKKyAgICAgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKiprd2FyZ3MpCisgICAgICAgICAgICBtb2NrKDEpKDIpKDMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2subW9ja19jYWxscywgY2FsbCgxKSgyKSgzKS5jYWxsX2xpc3QoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaygpLm1vY2tfY2FsbHMsIGNhbGwoMikoMykuY2FsbF9saXN0KCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2soKSgpLm1vY2tfY2FsbHMsIGNhbGwoMykuY2FsbF9saXN0KCkpCisKKyAgICAgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKiprd2FyZ3MpCisgICAgICAgICAgICBtb2NrKDEpKDIpKDMpLmEuYi5jKDQpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2subW9ja19jYWxscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbCgxKSgyKSgzKS5hLmIuYyg0KS5jYWxsX2xpc3QoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaygpLm1vY2tfY2FsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwoMikoMykuYS5iLmMoNCkuY2FsbF9saXN0KCkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2soKSgpLm1vY2tfY2FsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwoMykuYS5iLmMoNCkuY2FsbF9saXN0KCkpCisKKyAgICAgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKiprd2FyZ3MpCisgICAgICAgICAgICBpbnQobW9jaygpLmZvby5iYXIoKS5iYXooKSkKKyAgICAgICAgICAgIGxhc3RfY2FsbCA9ICgnKCkuZm9vLmJhcigpLmJheigpLl9faW50X18nLCAoKSwge30pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2subW9ja19jYWxsc1stMV0sIGxhc3RfY2FsbCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaygpLm1vY2tfY2FsbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGwuZm9vLmJhcigpLmJheigpLl9faW50X18oKS5jYWxsX2xpc3QoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaygpLmZvby5iYXIoKS5tb2NrX2NhbGxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsLmJheigpLl9faW50X18oKS5jYWxsX2xpc3QoKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jaygpLmZvby5iYXIoKS5iYXoubW9ja19jYWxscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbCgpLl9faW50X18oKS5jYWxsX2xpc3QoKSkKKworCisgICAgZGVmIHRlc3Rfc3ViY2xhc3Npbmcoc2VsZik6CisgICAgICAgIGNsYXNzIFN1YmNsYXNzKE1vY2spOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIG1vY2sgPSBTdWJjbGFzcygpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2NrLmZvbywgU3ViY2xhc3MpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2NrKCksIFN1YmNsYXNzKQorCisgICAgICAgIGNsYXNzIFN1YmNsYXNzKE1vY2spOgorICAgICAgICAgICAgZGVmIF9nZXRfY2hpbGRfbW9jayhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2soKiprd2FyZ3MpCisKKyAgICAgICAgbW9jayA9IFN1YmNsYXNzKCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJc0luc3RhbmNlKG1vY2suZm9vLCBTdWJjbGFzcykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RJc0luc3RhbmNlKG1vY2soKSwgU3ViY2xhc3MpCisKKworICAgIGRlZiB0ZXN0X2FyZ19saXN0cyhzZWxmKToKKyAgICAgICAgbW9ja3MgPSBbCisgICAgICAgICAgICBNb2NrKCksCisgICAgICAgICAgICBNYWdpY01vY2soKSwKKyAgICAgICAgICAgIE5vbkNhbGxhYmxlTW9jaygpLAorICAgICAgICAgICAgTm9uQ2FsbGFibGVNYWdpY01vY2soKQorICAgICAgICBdCisKKyAgICAgICAgZGVmIGFzc2VydF9hdHRycyhtb2NrKToKKyAgICAgICAgICAgIG5hbWVzID0gJ2NhbGxfYXJnc19saXN0JywgJ21ldGhvZF9jYWxscycsICdtb2NrX2NhbGxzJworICAgICAgICAgICAgZm9yIG5hbWUgaW4gbmFtZXM6CisgICAgICAgICAgICAgICAgYXR0ciA9IGdldGF0dHIobW9jaywgbmFtZSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoYXR0ciwgX0NhbGxMaXN0KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShhdHRyLCBsaXN0KQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYXR0ciwgW10pCisKKyAgICAgICAgZm9yIG1vY2sgaW4gbW9ja3M6CisgICAgICAgICAgICBhc3NlcnRfYXR0cnMobW9jaykKKworICAgICAgICAgICAgaWYgY2FsbGFibGUobW9jayk6CisgICAgICAgICAgICAgICAgbW9jaygpCisgICAgICAgICAgICAgICAgbW9jaygxLCAyKQorICAgICAgICAgICAgICAgIG1vY2soYT0zKQorCisgICAgICAgICAgICAgICAgbW9jay5yZXNldF9tb2NrKCkKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXR0cnMobW9jaykKKworICAgICAgICAgICAgbW9jay5mb28oKQorICAgICAgICAgICAgbW9jay5mb28uYmFyKDEsIGE9MykKKyAgICAgICAgICAgIG1vY2suZm9vKDEpLmJhcigpLmJheigzKQorCisgICAgICAgICAgICBtb2NrLnJlc2V0X21vY2soKQorICAgICAgICAgICAgYXNzZXJ0X2F0dHJzKG1vY2spCisKKworICAgIGRlZiB0ZXN0X2NhbGxfYXJnc190d29fdHVwbGUoc2VsZik6CisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jaygxLCBhPTMpCisgICAgICAgIG1vY2soMiwgYj00KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKG1vY2suY2FsbF9hcmdzKSwgMikKKyAgICAgICAgYXJncywga3dhcmdzID0gbW9jay5jYWxsX2FyZ3MKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhcmdzLCAoMiwpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGt3YXJncywgZGljdChiPTQpKQorCisgICAgICAgIGV4cGVjdGVkX2xpc3QgPSBbKCgxLCksIGRpY3QoYT0zKSksICgoMiwpLCBkaWN0KGI9NCkpXQorICAgICAgICBmb3IgZXhwZWN0ZWQsIGNhbGxfYXJncyBpbiB6aXAoZXhwZWN0ZWRfbGlzdCwgbW9jay5jYWxsX2FyZ3NfbGlzdCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihjYWxsX2FyZ3MpLCAyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZFswXSwgY2FsbF9hcmdzWzBdKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZFsxXSwgY2FsbF9hcmdzWzFdKQorCisKKyAgICBkZWYgdGVzdF9zaWRlX2VmZmVjdF9pdGVyYXRvcihzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soc2lkZV9lZmZlY3Q9aXRlcihbMSwgMiwgM10pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFttb2NrKCksIG1vY2soKSwgbW9jaygpXSwgWzEsIDIsIDNdKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uLCBtb2NrKQorCisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soc2lkZV9lZmZlY3Q9WydhJywgJ2InLCAnYyddKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFttb2NrKCksIG1vY2soKSwgbW9jaygpXSwgWydhJywgJ2InLCAnYyddKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uLCBtb2NrKQorCisgICAgICAgIG1vY2sgPSBNb2NrKHNpZGVfZWZmZWN0PSdnaGknKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFttb2NrKCksIG1vY2soKSwgbW9jaygpXSwgWydnJywgJ2gnLCAnaSddKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uLCBtb2NrKQorCisgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAgcGFzcworICAgICAgICBtb2NrID0gTWFnaWNNb2NrKHNpZGVfZWZmZWN0PUZvbykKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2soKSwgRm9vKQorCisgICAgICAgIG1vY2sgPSBNb2NrKHNpZGVfZWZmZWN0PUl0ZXIoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbbW9jaygpLCBtb2NrKCksIG1vY2soKSwgbW9jaygpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBbJ3RoaXMnLCAnaXMnLCAnYW4nLCAnaXRlciddKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uLCBtb2NrKQorCisKKyAgICBkZWYgdGVzdF9zaWRlX2VmZmVjdF9pdGVyYXRvcl9leGNlcHRpb25zKHNlbGYpOgorICAgICAgICBmb3IgS2xhc3MgaW4gTW9jaywgTWFnaWNNb2NrOgorICAgICAgICAgICAgaXRlcmFibGUgPSAoVmFsdWVFcnJvciwgMywgS2V5RXJyb3IsIDYpCisgICAgICAgICAgICBtID0gS2xhc3Moc2lkZV9lZmZlY3Q9aXRlcmFibGUpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBtKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtKCksIDMpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgbSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSgpLCA2KQorCisKKyAgICBkZWYgdGVzdF9zaWRlX2VmZmVjdF9zZXR0aW5nX2l0ZXJhdG9yKHNlbGYpOgorICAgICAgICBtb2NrID0gTW9jaygpCisgICAgICAgIG1vY2suc2lkZV9lZmZlY3QgPSBpdGVyKFsxLCAyLCAzXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbbW9jaygpLCBtb2NrKCksIG1vY2soKV0sIFsxLCAyLCAzXSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3RvcEl0ZXJhdGlvbiwgbW9jaykKKyAgICAgICAgc2lkZV9lZmZlY3QgPSBtb2NrLnNpZGVfZWZmZWN0CisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShzaWRlX2VmZmVjdCwgdHlwZShpdGVyKFtdKSkpCisKKyAgICAgICAgbW9jay5zaWRlX2VmZmVjdCA9IFsnYScsICdiJywgJ2MnXQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFttb2NrKCksIG1vY2soKSwgbW9jaygpXSwgWydhJywgJ2InLCAnYyddKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhTdG9wSXRlcmF0aW9uLCBtb2NrKQorICAgICAgICBzaWRlX2VmZmVjdCA9IG1vY2suc2lkZV9lZmZlY3QKKyAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHNpZGVfZWZmZWN0LCB0eXBlKGl0ZXIoW10pKSkKKworICAgICAgICB0aGlzX2l0ZXIgPSBJdGVyKCkKKyAgICAgICAgbW9jay5zaWRlX2VmZmVjdCA9IHRoaXNfaXRlcgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFttb2NrKCksIG1vY2soKSwgbW9jaygpLCBtb2NrKCldLAorICAgICAgICAgICAgICAgICAgICAgICAgIFsndGhpcycsICdpcycsICdhbicsICdpdGVyJ10pCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN0b3BJdGVyYXRpb24sIG1vY2spCisgICAgICAgIHNlbGYuYXNzZXJ0SXMobW9jay5zaWRlX2VmZmVjdCwgdGhpc19pdGVyKQorCisKKyAgICBkZWYgdGVzdF9hc3NlcnRfaGFzX2NhbGxzX2FueV9vcmRlcihzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBtb2NrKDEsIDIpCisgICAgICAgIG1vY2soYT0zKQorICAgICAgICBtb2NrKDMsIDQpCisgICAgICAgIG1vY2soYj02KQorICAgICAgICBtb2NrKGI9NikKKworICAgICAgICBrYWxscyA9IFsKKyAgICAgICAgICAgIGNhbGwoMSwgMiksICh7J2EnOiAzfSwpLAorICAgICAgICAgICAgKCgzLCA0KSwpLCAoKCksIHsnYSc6IDN9KSwKKyAgICAgICAgICAgICgnJywgKDEsIDIpKSwgKCcnLCB7J2EnOiAzfSksCisgICAgICAgICAgICAoJycsICgxLCAyKSwge30pLCAoJycsICgpLCB7J2EnOiAzfSkKKyAgICAgICAgXQorICAgICAgICBmb3Iga2FsbCBpbiBrYWxsczoKKyAgICAgICAgICAgIG1vY2suYXNzZXJ0X2hhc19jYWxscyhba2FsbF0sIGFueV9vcmRlcj1UcnVlKQorCisgICAgICAgIGZvciBrYWxsIGluIGNhbGwoMSwgJzInKSwgY2FsbChiPTMpLCBjYWxsKCksIDMsIE5vbmUsICdmb28nOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICAgICAgQXNzZXJ0aW9uRXJyb3IsIG1vY2suYXNzZXJ0X2hhc19jYWxscywKKyAgICAgICAgICAgICAgICBba2FsbF0sIGFueV9vcmRlcj1UcnVlCisgICAgICAgICAgICApCisKKyAgICAgICAga2FsbF9saXN0cyA9IFsKKyAgICAgICAgICAgIFtjYWxsKDEsIDIpLCBjYWxsKGI9NildLAorICAgICAgICAgICAgW2NhbGwoMywgNCksIGNhbGwoMSwgMildLAorICAgICAgICAgICAgW2NhbGwoYj02KSwgY2FsbChiPTYpXSwKKyAgICAgICAgXQorCisgICAgICAgIGZvciBrYWxsX2xpc3QgaW4ga2FsbF9saXN0czoKKyAgICAgICAgICAgIG1vY2suYXNzZXJ0X2hhc19jYWxscyhrYWxsX2xpc3QsIGFueV9vcmRlcj1UcnVlKQorCisgICAgICAgIGthbGxfbGlzdHMgPSBbCisgICAgICAgICAgICBbY2FsbChiPTYpLCBjYWxsKGI9NiksIGNhbGwoYj02KV0sCisgICAgICAgICAgICBbY2FsbCgxLCAyKSwgY2FsbCgxLCAyKV0sCisgICAgICAgICAgICBbY2FsbCgzLCA0KSwgY2FsbCgxLCAyKSwgY2FsbCg1LCA3KV0sCisgICAgICAgICAgICBbY2FsbChiPTYpLCBjYWxsKDMsIDQpLCBjYWxsKGI9NiksIGNhbGwoMSwgMiksIGNhbGwoYj02KV0sCisgICAgICAgIF0KKyAgICAgICAgZm9yIGthbGxfbGlzdCBpbiBrYWxsX2xpc3RzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICAgICAgQXNzZXJ0aW9uRXJyb3IsIG1vY2suYXNzZXJ0X2hhc19jYWxscywKKyAgICAgICAgICAgICAgICBrYWxsX2xpc3QsIGFueV9vcmRlcj1UcnVlCisgICAgICAgICAgICApCisKKyAgICBkZWYgdGVzdF9hc3NlcnRfaGFzX2NhbGxzKHNlbGYpOgorICAgICAgICBrYWxsczEgPSBbCisgICAgICAgICAgICAgICAgY2FsbCgxLCAyKSwgKHsnYSc6IDN9LCksCisgICAgICAgICAgICAgICAgKCgzLCA0KSwpLCBjYWxsKGI9NiksCisgICAgICAgICAgICAgICAgKCcnLCAoMSwpLCB7J2InOiA2fSksCisgICAgICAgIF0KKyAgICAgICAga2FsbHMyID0gW2NhbGwuZm9vKCksIGNhbGwuYmFyKDEpXQorICAgICAgICBrYWxsczIuZXh0ZW5kKGNhbGwuc3BhbSgpLmJheihhPTMpLmNhbGxfbGlzdCgpKQorICAgICAgICBrYWxsczIuZXh0ZW5kKGNhbGwuYmFtKHNldCgpLCBmb289e30pLmZpc2goWzFdKS5jYWxsX2xpc3QoKSkKKworICAgICAgICBtb2NrcyA9IFtdCisgICAgICAgIGZvciBtb2NrIGluIE1vY2soKSwgTWFnaWNNb2NrKCk6CisgICAgICAgICAgICBtb2NrKDEsIDIpCisgICAgICAgICAgICBtb2NrKGE9MykKKyAgICAgICAgICAgIG1vY2soMywgNCkKKyAgICAgICAgICAgIG1vY2soYj02KQorICAgICAgICAgICAgbW9jaygxLCBiPTYpCisgICAgICAgICAgICBtb2Nrcy5hcHBlbmQoKG1vY2ssIGthbGxzMSkpCisKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBtb2NrLmZvbygpCisgICAgICAgIG1vY2suYmFyKDEpCisgICAgICAgIG1vY2suc3BhbSgpLmJheihhPTMpCisgICAgICAgIG1vY2suYmFtKHNldCgpLCBmb289e30pLmZpc2goWzFdKQorICAgICAgICBtb2Nrcy5hcHBlbmQoKG1vY2ssIGthbGxzMikpCisKKyAgICAgICAgZm9yIG1vY2ssIGthbGxzIGluIG1vY2tzOgorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGthbGxzKSk6CisgICAgICAgICAgICAgICAgZm9yIHN0ZXAgaW4gMSwgMiwgMzoKKyAgICAgICAgICAgICAgICAgICAgdGhlc2UgPSBrYWxsc1tpOmkrc3RlcF0KKyAgICAgICAgICAgICAgICAgICAgbW9jay5hc3NlcnRfaGFzX2NhbGxzKHRoZXNlKQorCisgICAgICAgICAgICAgICAgICAgIGlmIGxlbih0aGVzZSkgPiAxOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXNzZXJ0aW9uRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9jay5hc3NlcnRfaGFzX2NhbGxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QocmV2ZXJzZWQodGhlc2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgKQorCisKKyAgICBkZWYgdGVzdF9hc3NlcnRfYW55X2NhbGwoc2VsZik6CisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jaygxLCAyKQorICAgICAgICBtb2NrKGE9MykKKyAgICAgICAgbW9jaygxLCBiPTYpCisKKyAgICAgICAgbW9jay5hc3NlcnRfYW55X2NhbGwoMSwgMikKKyAgICAgICAgbW9jay5hc3NlcnRfYW55X2NhbGwoYT0zKQorICAgICAgICBtb2NrLmFzc2VydF9hbnlfY2FsbCgxLCBiPTYpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICBBc3NlcnRpb25FcnJvciwKKyAgICAgICAgICAgIG1vY2suYXNzZXJ0X2FueV9jYWxsCisgICAgICAgICkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICBBc3NlcnRpb25FcnJvciwKKyAgICAgICAgICAgIG1vY2suYXNzZXJ0X2FueV9jYWxsLAorICAgICAgICAgICAgMSwgMworICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgQXNzZXJ0aW9uRXJyb3IsCisgICAgICAgICAgICBtb2NrLmFzc2VydF9hbnlfY2FsbCwKKyAgICAgICAgICAgIGE9NAorICAgICAgICApCisKKworICAgIGRlZiB0ZXN0X21vY2tfY2FsbHNfY3JlYXRlX2F1dG9zcGVjKHNlbGYpOgorICAgICAgICBkZWYgZihhLCBiKToKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgb2JqID0gSXRlcigpCisgICAgICAgIG9iai5mID0gZgorCisgICAgICAgIGZ1bmNzID0gWworICAgICAgICAgICAgY3JlYXRlX2F1dG9zcGVjKGYpLAorICAgICAgICAgICAgY3JlYXRlX2F1dG9zcGVjKG9iaikuZgorICAgICAgICBdCisgICAgICAgIGZvciBmdW5jIGluIGZ1bmNzOgorICAgICAgICAgICAgZnVuYygxLCAyKQorICAgICAgICAgICAgZnVuYygzLCA0KQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAorICAgICAgICAgICAgICAgIGZ1bmMubW9ja19jYWxscywgW2NhbGwoMSwgMiksIGNhbGwoMywgNCldCisgICAgICAgICAgICApCisKKworICAgIGRlZiB0ZXN0X21vY2tfYWRkX3NwZWMoc2VsZik6CisgICAgICAgIGNsYXNzIF9PbmUob2JqZWN0KToKKyAgICAgICAgICAgIG9uZSA9IDEKKyAgICAgICAgY2xhc3MgX1R3byhvYmplY3QpOgorICAgICAgICAgICAgdHdvID0gMgorICAgICAgICBjbGFzcyBBbnl0aGluZyhvYmplY3QpOgorICAgICAgICAgICAgb25lID0gdHdvID0gdGhyZWUgPSAnZm91cicKKworICAgICAgICBrbGFzc2VzID0gWworICAgICAgICAgICAgTW9jaywgTWFnaWNNb2NrLCBOb25DYWxsYWJsZU1vY2ssIE5vbkNhbGxhYmxlTWFnaWNNb2NrCisgICAgICAgIF0KKyAgICAgICAgZm9yIEtsYXNzIGluIGxpc3Qoa2xhc3Nlcyk6CisgICAgICAgICAgICBrbGFzc2VzLmFwcGVuZChsYW1iZGEgSz1LbGFzczogSyhzcGVjPUFueXRoaW5nKSkKKyAgICAgICAgICAgIGtsYXNzZXMuYXBwZW5kKGxhbWJkYSBLPUtsYXNzOiBLKHNwZWNfc2V0PUFueXRoaW5nKSkKKworICAgICAgICBmb3IgS2xhc3MgaW4ga2xhc3NlczoKKyAgICAgICAgICAgIGZvciBrd2FyZ3MgaW4gZGljdCgpLCBkaWN0KHNwZWNfc2V0PVRydWUpOgorICAgICAgICAgICAgICAgIG1vY2sgPSBLbGFzcygpCisgICAgICAgICAgICAgICAgI25vIGVycm9yCisgICAgICAgICAgICAgICAgbW9jay5vbmUsIG1vY2sudHdvLCBtb2NrLnRocmVlCisKKyAgICAgICAgICAgICAgICBmb3IgT25lLCBUd28gaW4gWyhfT25lLCBfVHdvKSwgKFsnb25lJ10sIFsndHdvJ10pXToKKyAgICAgICAgICAgICAgICAgICAgZm9yIGt3YXJncyBpbiBkaWN0KCksIGRpY3Qoc3BlY19zZXQ9VHJ1ZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBtb2NrLm1vY2tfYWRkX3NwZWMoT25lLCAqKmt3YXJncykKKworICAgICAgICAgICAgICAgICAgICAgICAgbW9jay5vbmUKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBtb2NrLCAndHdvJworICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIG1vY2ssICd0aHJlZScKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICdzcGVjX3NldCcgaW4ga3dhcmdzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVFcnJvciwgc2V0YXR0ciwgbW9jaywgJ3RocmVlJywgTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgICAgICAgICAgICAgbW9jay5tb2NrX2FkZF9zcGVjKFR3bywgKiprd2FyZ3MpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgbW9jaywgJ29uZScKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vY2sudHdvCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgbW9jaywgJ3RocmVlJworICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ3NwZWNfc2V0JyBpbiBrd2FyZ3M6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZUVycm9yLCBzZXRhdHRyLCBtb2NrLCAndGhyZWUnLCBOb25lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgIyBub3RlIHRoYXQgY3JlYXRpbmcgYSBtb2NrLCBzZXR0aW5nIGFuIGluc3RhbmNlIGF0dHJpYnV0ZSwgYW5kCisgICAgICAgICAgICAjICp0aGVuKiBzZXR0aW5nIGEgc3BlYyBkb2Vzbid0IHdvcmsuIE5vdCB0aGUgaW50ZW5kZWQgdXNlIGNhc2UKKworCisgICAgZGVmIHRlc3RfbW9ja19hZGRfc3BlY19tYWdpY19tZXRob2RzKHNlbGYpOgorICAgICAgICBmb3IgS2xhc3MgaW4gTWFnaWNNb2NrLCBOb25DYWxsYWJsZU1hZ2ljTW9jazoKKyAgICAgICAgICAgIG1vY2sgPSBLbGFzcygpCisgICAgICAgICAgICBpbnQobW9jaykKKworICAgICAgICAgICAgbW9jay5tb2NrX2FkZF9zcGVjKG9iamVjdCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgaW50LCBtb2NrKQorCisgICAgICAgICAgICBtb2NrID0gS2xhc3MoKQorICAgICAgICAgICAgbW9ja1snZm9vJ10KKyAgICAgICAgICAgIG1vY2suX19pbnRfXy5yZXR1cm5fdmFsdWUgPTQKKworICAgICAgICAgICAgbW9jay5tb2NrX2FkZF9zcGVjKGludCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW50KG1vY2spLCA0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBsYW1iZGE6IG1vY2tbJ2ZvbyddKQorCisKKyAgICBkZWYgdGVzdF9hZGRpbmdfY2hpbGRfbW9jayhzZWxmKToKKyAgICAgICAgZm9yIEtsYXNzIGluIE5vbkNhbGxhYmxlTW9jaywgTW9jaywgTWFnaWNNb2NrLCBOb25DYWxsYWJsZU1hZ2ljTW9jazoKKyAgICAgICAgICAgIG1vY2sgPSBLbGFzcygpCisKKyAgICAgICAgICAgIG1vY2suZm9vID0gTW9jaygpCisgICAgICAgICAgICBtb2NrLmZvbygpCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFtjYWxsLmZvbygpXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBbY2FsbC5mb28oKV0pCisKKyAgICAgICAgICAgIG1vY2sgPSBLbGFzcygpCisgICAgICAgICAgICBtb2NrLmJhciA9IE1vY2sobmFtZT0nbmFtZScpCisgICAgICAgICAgICBtb2NrLmJhcigpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2subWV0aG9kX2NhbGxzLCBbXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBbXSkKKworICAgICAgICAgICAgIyBtb2NrIHdpdGggYW4gZXhpc3RpbmcgX25ld19wYXJlbnQgYnV0IG5vIG5hbWUKKyAgICAgICAgICAgIG1vY2sgPSBLbGFzcygpCisgICAgICAgICAgICBtb2NrLmJheiA9IE1hZ2ljTW9jaygpKCkKKyAgICAgICAgICAgIG1vY2suYmF6KCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tZXRob2RfY2FsbHMsIFtdKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLm1vY2tfY2FsbHMsIFtdKQorCisKKyAgICBkZWYgdGVzdF9hZGRpbmdfcmV0dXJuX3ZhbHVlX21vY2soc2VsZik6CisgICAgICAgIGZvciBLbGFzcyBpbiBNb2NrLCBNYWdpY01vY2s6CisgICAgICAgICAgICBtb2NrID0gS2xhc3MoKQorICAgICAgICAgICAgbW9jay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soKQorCisgICAgICAgICAgICBtb2NrKCkoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLm1vY2tfY2FsbHMsIFtjYWxsKCksIGNhbGwoKSgpXSkKKworCisgICAgZGVmIHRlc3RfbWFuYWdlcl9tb2NrKHNlbGYpOgorICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIG9uZSA9ICdvbmUnCisgICAgICAgICAgICB0d28gPSAndHdvJworICAgICAgICBtYW5hZ2VyID0gTW9jaygpCisgICAgICAgIHAxID0gcGF0Y2gub2JqZWN0KEZvbywgJ29uZScpCisgICAgICAgIHAyID0gcGF0Y2gub2JqZWN0KEZvbywgJ3R3bycpCisKKyAgICAgICAgbW9ja19vbmUgPSBwMS5zdGFydCgpCisgICAgICAgIHNlbGYuYWRkQ2xlYW51cChwMS5zdG9wKQorICAgICAgICBtb2NrX3R3byA9IHAyLnN0YXJ0KCkKKyAgICAgICAgc2VsZi5hZGRDbGVhbnVwKHAyLnN0b3ApCisKKyAgICAgICAgbWFuYWdlci5hdHRhY2hfbW9jayhtb2NrX29uZSwgJ29uZScpCisgICAgICAgIG1hbmFnZXIuYXR0YWNoX21vY2sobW9ja190d28sICd0d28nKQorCisgICAgICAgIEZvby50d28oKQorICAgICAgICBGb28ub25lKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1hbmFnZXIubW9ja19jYWxscywgW2NhbGwudHdvKCksIGNhbGwub25lKCldKQorCisKKyAgICBkZWYgdGVzdF9tYWdpY19tZXRob2RzX21vY2tfY2FsbHMoc2VsZik6CisgICAgICAgIGZvciBLbGFzcyBpbiBNb2NrLCBNYWdpY01vY2s6CisgICAgICAgICAgICBtID0gS2xhc3MoKQorICAgICAgICAgICAgbS5fX2ludF9fID0gTW9jayhyZXR1cm5fdmFsdWU9MykKKyAgICAgICAgICAgIG0uX19mbG9hdF9fID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT0zLjApCisgICAgICAgICAgICBpbnQobSkKKyAgICAgICAgICAgIGZsb2F0KG0pCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5tb2NrX2NhbGxzLCBbY2FsbC5fX2ludF9fKCksIGNhbGwuX19mbG9hdF9fKCldKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLm1ldGhvZF9jYWxscywgW10pCisKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZV9kZWxldGlvbihzZWxmKToKKyAgICAgICAgIyB0aGlzIGJlaGF2aW91ciBpc24ndCAqdXNlZnVsKiwgYnV0IGF0IGxlYXN0IGl0J3Mgbm93IHRlc3RlZC4uLgorICAgICAgICBmb3IgS2xhc3MgaW4gTW9jaywgTWFnaWNNb2NrLCBOb25DYWxsYWJsZU1hZ2ljTW9jaywgTm9uQ2FsbGFibGVNb2NrOgorICAgICAgICAgICAgbSA9IEtsYXNzKCkKKyAgICAgICAgICAgIG9yaWdpbmFsID0gbS5mb28KKyAgICAgICAgICAgIG0uZm9vID0gMworICAgICAgICAgICAgZGVsIG0uZm9vCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG0uZm9vLCBvcmlnaW5hbCkKKworICAgICAgICAgICAgbmV3ID0gbS5mb28gPSBNb2NrKCkKKyAgICAgICAgICAgIGRlbCBtLmZvbworICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLmZvbywgbmV3KQorCisKKyAgICBkZWYgdGVzdF9tb2NrX3BhcmVudHMoc2VsZik6CisgICAgICAgIGZvciBLbGFzcyBpbiBNb2NrLCBNYWdpY01vY2s6CisgICAgICAgICAgICBtID0gS2xhc3MoKQorICAgICAgICAgICAgb3JpZ2luYWxfcmVwciA9IHJlcHIobSkKKyAgICAgICAgICAgIG0ucmV0dXJuX3ZhbHVlID0gbQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhtKCksIG0pCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobSksIG9yaWdpbmFsX3JlcHIpCisKKyAgICAgICAgICAgIG0ucmVzZXRfbW9jaygpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKG0oKSwgbSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwcihtKSwgb3JpZ2luYWxfcmVwcikKKworICAgICAgICAgICAgbSA9IEtsYXNzKCkKKyAgICAgICAgICAgIG0uYiA9IG0uYQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigibmFtZT0nbW9jay5hJyIsIHJlcHIobS5iKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIm5hbWU9J21vY2suYSciLCByZXByKG0uYSkpCisgICAgICAgICAgICBtLnJlc2V0X21vY2soKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigibmFtZT0nbW9jay5hJyIsIHJlcHIobS5iKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIm5hbWU9J21vY2suYSciLCByZXByKG0uYSkpCisKKyAgICAgICAgICAgIG0gPSBLbGFzcygpCisgICAgICAgICAgICBvcmlnaW5hbF9yZXByID0gcmVwcihtKQorICAgICAgICAgICAgbS5hID0gbSgpCisgICAgICAgICAgICBtLmEucmV0dXJuX3ZhbHVlID0gbQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobSksIG9yaWdpbmFsX3JlcHIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcHIobS5hKCkpLCBvcmlnaW5hbF9yZXByKQorCisKKyAgICBkZWYgdGVzdF9hdHRhY2hfbW9jayhzZWxmKToKKyAgICAgICAgY2xhc3NlcyA9IE1vY2ssIE1hZ2ljTW9jaywgTm9uQ2FsbGFibGVNYWdpY01vY2ssIE5vbkNhbGxhYmxlTW9jaworICAgICAgICBmb3IgS2xhc3MgaW4gY2xhc3NlczoKKyAgICAgICAgICAgIGZvciBLbGFzczIgaW4gY2xhc3NlczoKKyAgICAgICAgICAgICAgICBtID0gS2xhc3MoKQorCisgICAgICAgICAgICAgICAgbTIgPSBLbGFzczIobmFtZT0nZm9vJykKKyAgICAgICAgICAgICAgICBtLmF0dGFjaF9tb2NrKG0yLCAnYmFyJykKKworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMobS5iYXIsIG0yKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIm5hbWU9J21vY2suYmFyJyIsIHJlcHIobTIpKQorCisgICAgICAgICAgICAgICAgbS5iYXIuYmF6KDEpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLm1vY2tfY2FsbHMsIFtjYWxsLmJhci5iYXooMSldKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5tZXRob2RfY2FsbHMsIFtjYWxsLmJhci5iYXooMSldKQorCisKKyAgICBkZWYgdGVzdF9hdHRhY2hfbW9ja19yZXR1cm5fdmFsdWUoc2VsZik6CisgICAgICAgIGNsYXNzZXMgPSBNb2NrLCBNYWdpY01vY2ssIE5vbkNhbGxhYmxlTWFnaWNNb2NrLCBOb25DYWxsYWJsZU1vY2sKKyAgICAgICAgZm9yIEtsYXNzIGluIE1vY2ssIE1hZ2ljTW9jazoKKyAgICAgICAgICAgIGZvciBLbGFzczIgaW4gY2xhc3NlczoKKyAgICAgICAgICAgICAgICBtID0gS2xhc3MoKQorCisgICAgICAgICAgICAgICAgbTIgPSBLbGFzczIobmFtZT0nZm9vJykKKyAgICAgICAgICAgICAgICBtLmF0dGFjaF9tb2NrKG0yLCAncmV0dXJuX3ZhbHVlJykKKworICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMobSgpLCBtMikKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKCJuYW1lPSdtb2NrKCknIiwgcmVwcihtMikpCisKKyAgICAgICAgICAgICAgICBtMi5mb28oKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5tb2NrX2NhbGxzLCBjYWxsKCkuZm9vKCkuY2FsbF9saXN0KCkpCisKKworICAgIGRlZiB0ZXN0X2F0dHJpYnV0ZV9kZWxldGlvbihzZWxmKToKKyAgICAgICAgZm9yIG1vY2sgaW4gTW9jaygpLCBNYWdpY01vY2soKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKG1vY2ssICdtJykpCisKKyAgICAgICAgICAgIGRlbCBtb2NrLm0KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihtb2NrLCAnbScpKQorCisgICAgICAgICAgICBkZWwgbW9jay5mCisgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIobW9jaywgJ2YnKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBtb2NrLCAnZicpCisKKworICAgIGRlZiB0ZXN0X2NsYXNzX2Fzc2lnbmFibGUoc2VsZik6CisgICAgICAgIGZvciBtb2NrIGluIE1vY2soKSwgTWFnaWNNb2NrKCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdElzSW5zdGFuY2UobW9jaywgaW50KQorCisgICAgICAgICAgICBtb2NrLl9fY2xhc3NfXyA9IGludAorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2ssIGludCkKKyAgICAgICAgICAgIG1vY2suZm9vCisKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdHBhdGNoLnB5IGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdHBhdGNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMxMDkxYjQKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0bW9jay90ZXN0cGF0Y2gucHkKQEAgLTAsMCArMSwxNzg1IEBACisjIENvcHlyaWdodCAoQykgMjAwNy0yMDEyIE1pY2hhZWwgRm9vcmQgJiB0aGUgbW9jayB0ZWFtCisjIEUtbWFpbDogZnV6enltYW4gQVQgdm9pZHNwYWNlIERPVCBvcmcgRE9UIHVrCisjIGh0dHA6Ly93d3cudm9pZHNwYWNlLm9yZy51ay9weXRob24vbW9jay8KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK2ltcG9ydCB1bml0dGVzdAorZnJvbSB1bml0dGVzdC50ZXN0LnRlc3Rtb2NrIGltcG9ydCBzdXBwb3J0Citmcm9tIHVuaXR0ZXN0LnRlc3QudGVzdG1vY2suc3VwcG9ydCBpbXBvcnQgU29tZUNsYXNzLCBpc19pbnN0YW5jZQorCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0ICgKKyAgICBOb25DYWxsYWJsZU1vY2ssIENhbGxhYmxlTWl4aW4sIHBhdGNoLCBzZW50aW5lbCwKKyAgICBNYWdpY01vY2ssIE1vY2ssIE5vbkNhbGxhYmxlTWFnaWNNb2NrLCBwYXRjaCwgX3BhdGNoLAorICAgIERFRkFVTFQsIGNhbGwsIF9nZXRfdGFyZ2V0CispCisKKworYnVpbHRpbl9zdHJpbmcgPSAnYnVpbHRpbnMnCisKK1BUTW9kdWxlID0gc3lzLm1vZHVsZXNbX19uYW1lX19dCitNT0ROQU1FID0gJyVzLlBUTW9kdWxlJyAlIF9fbmFtZV9fCisKKworZGVmIF9nZXRfcHJveHkob2JqLCBnZXRfb25seT1UcnVlKToKKyAgICBjbGFzcyBQcm94eShvYmplY3QpOgorICAgICAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihvYmosIG5hbWUpCisgICAgaWYgbm90IGdldF9vbmx5OgorICAgICAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICAgICAgc2V0YXR0cihvYmosIG5hbWUsIHZhbHVlKQorICAgICAgICBkZWYgX19kZWxhdHRyX18oc2VsZiwgbmFtZSk6CisgICAgICAgICAgICBkZWxhdHRyKG9iaiwgbmFtZSkKKyAgICAgICAgUHJveHkuX19zZXRhdHRyX18gPSBfX3NldGF0dHJfXworICAgICAgICBQcm94eS5fX2RlbGF0dHJfXyA9IF9fZGVsYXR0cl9fCisgICAgcmV0dXJuIFByb3h5KCkKKworCisjIGZvciB1c2UgaW4gdGhlIHRlc3QKK3NvbWV0aGluZyAgPSBzZW50aW5lbC5Tb21ldGhpbmcKK3NvbWV0aGluZ19lbHNlICA9IHNlbnRpbmVsLlNvbWV0aGluZ0Vsc2UKKworCitjbGFzcyBGb28ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYSk6CisgICAgICAgIHBhc3MKKyAgICBkZWYgZihzZWxmLCBhKToKKyAgICAgICAgcGFzcworICAgIGRlZiBnKHNlbGYpOgorICAgICAgICBwYXNzCisgICAgZm9vID0gJ2JhcicKKworICAgIGNsYXNzIEJhcihvYmplY3QpOgorICAgICAgICBkZWYgYShzZWxmKToKKyAgICAgICAgICAgIHBhc3MKKworZm9vX25hbWUgPSAnJXMuRm9vJyAlIF9fbmFtZV9fCisKKworZGVmIGZ1bmN0aW9uKGEsIGI9Rm9vKToKKyAgICBwYXNzCisKKworY2xhc3MgQ29udGFpbmVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnZhbHVlcyA9IHt9CisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBzZWxmLnZhbHVlc1tuYW1lXQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIG5hbWUsIHZhbHVlKToKKyAgICAgICAgc2VsZi52YWx1ZXNbbmFtZV0gPSB2YWx1ZQorCisgICAgZGVmIF9fZGVsaXRlbV9fKHNlbGYsIG5hbWUpOgorICAgICAgICBkZWwgc2VsZi52YWx1ZXNbbmFtZV0KKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGl0ZXIoc2VsZi52YWx1ZXMpCisKKworCitjbGFzcyBQYXRjaFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIGFzc2VydE5vdENhbGxhYmxlKHNlbGYsIG9iaiwgbWFnaWM9VHJ1ZSk6CisgICAgICAgIE1vY2tDbGFzcyA9IE5vbkNhbGxhYmxlTWFnaWNNb2NrCisgICAgICAgIGlmIG5vdCBtYWdpYzoKKyAgICAgICAgICAgIE1vY2tDbGFzcyA9IE5vbkNhbGxhYmxlTW9jaworCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgb2JqKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfaW5zdGFuY2Uob2JqLCBNb2NrQ2xhc3MpKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGlzX2luc3RhbmNlKG9iaiwgQ2FsbGFibGVNaXhpbikpCisKKworICAgIGRlZiB0ZXN0X3NpbmdsZV9wYXRjaG9iamVjdChzZWxmKToKKyAgICAgICAgY2xhc3MgU29tZXRoaW5nKG9iamVjdCk6CisgICAgICAgICAgICBhdHRyaWJ1dGUgPSBzZW50aW5lbC5PcmlnaW5hbAorCisgICAgICAgIEBwYXRjaC5vYmplY3QoU29tZXRoaW5nLCAnYXR0cmlidXRlJywgc2VudGluZWwuUGF0Y2hlZCkKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoU29tZXRoaW5nLmF0dHJpYnV0ZSwgc2VudGluZWwuUGF0Y2hlZCwgInVucGF0Y2hlZCIpCisKKyAgICAgICAgdGVzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoU29tZXRoaW5nLmF0dHJpYnV0ZSwgc2VudGluZWwuT3JpZ2luYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgInBhdGNoIG5vdCByZXN0b3JlZCIpCisKKworICAgIGRlZiB0ZXN0X3BhdGNob2JqZWN0X3dpdGhfbm9uZShzZWxmKToKKyAgICAgICAgY2xhc3MgU29tZXRoaW5nKG9iamVjdCk6CisgICAgICAgICAgICBhdHRyaWJ1dGUgPSBzZW50aW5lbC5PcmlnaW5hbAorCisgICAgICAgIEBwYXRjaC5vYmplY3QoU29tZXRoaW5nLCAnYXR0cmlidXRlJywgTm9uZSkKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKFNvbWV0aGluZy5hdHRyaWJ1dGUsICJ1bnBhdGNoZWQiKQorCisgICAgICAgIHRlc3QoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWV0aGluZy5hdHRyaWJ1dGUsIHNlbnRpbmVsLk9yaWdpbmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRjaCBub3QgcmVzdG9yZWQiKQorCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9wYXRjaG9iamVjdChzZWxmKToKKyAgICAgICAgY2xhc3MgU29tZXRoaW5nKG9iamVjdCk6CisgICAgICAgICAgICBhdHRyaWJ1dGUgPSBzZW50aW5lbC5PcmlnaW5hbAorICAgICAgICAgICAgbmV4dF9hdHRyaWJ1dGUgPSBzZW50aW5lbC5PcmlnaW5hbDIKKworICAgICAgICBAcGF0Y2gub2JqZWN0KFNvbWV0aGluZywgJ2F0dHJpYnV0ZScsIHNlbnRpbmVsLlBhdGNoZWQpCisgICAgICAgIEBwYXRjaC5vYmplY3QoU29tZXRoaW5nLCAnbmV4dF9hdHRyaWJ1dGUnLCBzZW50aW5lbC5QYXRjaGVkMikKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoU29tZXRoaW5nLmF0dHJpYnV0ZSwgc2VudGluZWwuUGF0Y2hlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVucGF0Y2hlZCIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWV0aGluZy5uZXh0X2F0dHJpYnV0ZSwgc2VudGluZWwuUGF0Y2hlZDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnBhdGNoZWQiKQorCisgICAgICAgIHRlc3QoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWV0aGluZy5hdHRyaWJ1dGUsIHNlbnRpbmVsLk9yaWdpbmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRjaCBub3QgcmVzdG9yZWQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWV0aGluZy5uZXh0X2F0dHJpYnV0ZSwgc2VudGluZWwuT3JpZ2luYWwyLAorICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRjaCBub3QgcmVzdG9yZWQiKQorCisKKyAgICBkZWYgdGVzdF9vYmplY3RfbG9va3VwX2lzX3F1aXRlX2xhenkoc2VsZik6CisgICAgICAgIGdsb2JhbCBzb21ldGhpbmcKKyAgICAgICAgb3JpZ2luYWwgPSBzb21ldGhpbmcKKyAgICAgICAgQHBhdGNoKCclcy5zb21ldGhpbmcnICUgX19uYW1lX18sIHNlbnRpbmVsLlNvbWV0aGluZzIpCisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc29tZXRoaW5nID0gc2VudGluZWwucmVwbGFjZW1lbnRfdmFsdWUKKyAgICAgICAgICAgIHRlc3QoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21ldGhpbmcsIHNlbnRpbmVsLnJlcGxhY2VtZW50X3ZhbHVlKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgc29tZXRoaW5nID0gb3JpZ2luYWwKKworCisgICAgZGVmIHRlc3RfcGF0Y2goc2VsZik6CisgICAgICAgIEBwYXRjaCgnJXMuc29tZXRoaW5nJyAlIF9fbmFtZV9fLCBzZW50aW5lbC5Tb21ldGhpbmcyKQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQVE1vZHVsZS5zb21ldGhpbmcsIHNlbnRpbmVsLlNvbWV0aGluZzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnBhdGNoZWQiKQorCisgICAgICAgIHRlc3QoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFBUTW9kdWxlLnNvbWV0aGluZywgc2VudGluZWwuU29tZXRoaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRjaCBub3QgcmVzdG9yZWQiKQorCisgICAgICAgIEBwYXRjaCgnJXMuc29tZXRoaW5nJyAlIF9fbmFtZV9fLCBzZW50aW5lbC5Tb21ldGhpbmcyKQorICAgICAgICBAcGF0Y2goJyVzLnNvbWV0aGluZ19lbHNlJyAlIF9fbmFtZV9fLCBzZW50aW5lbC5Tb21ldGhpbmdFbHNlKQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQVE1vZHVsZS5zb21ldGhpbmcsIHNlbnRpbmVsLlNvbWV0aGluZzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnBhdGNoZWQiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQVE1vZHVsZS5zb21ldGhpbmdfZWxzZSwgc2VudGluZWwuU29tZXRoaW5nRWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVucGF0Y2hlZCIpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQVE1vZHVsZS5zb21ldGhpbmcsIHNlbnRpbmVsLlNvbWV0aGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGF0Y2ggbm90IHJlc3RvcmVkIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChQVE1vZHVsZS5zb21ldGhpbmdfZWxzZSwgc2VudGluZWwuU29tZXRoaW5nRWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGF0Y2ggbm90IHJlc3RvcmVkIikKKworICAgICAgICAjIFRlc3QgdGhlIHBhdGNoaW5nIGFuZCByZXN0b3Jpbmcgd29ya3MgYSBzZWNvbmQgdGltZQorICAgICAgICB0ZXN0KCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFBUTW9kdWxlLnNvbWV0aGluZywgc2VudGluZWwuU29tZXRoaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRjaCBub3QgcmVzdG9yZWQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFBUTW9kdWxlLnNvbWV0aGluZ19lbHNlLCBzZW50aW5lbC5Tb21ldGhpbmdFbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRjaCBub3QgcmVzdG9yZWQiKQorCisgICAgICAgIG1vY2sgPSBNb2NrKCkKKyAgICAgICAgbW9jay5yZXR1cm5fdmFsdWUgPSBzZW50aW5lbC5IYW5kbGUKKyAgICAgICAgQHBhdGNoKCclcy5vcGVuJyAlIGJ1aWx0aW5fc3RyaW5nLCBtb2NrKQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChvcGVuKCdmaWxlbmFtZScsICdyJyksIHNlbnRpbmVsLkhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9wZW4gbm90IHBhdGNoZWQiKQorICAgICAgICB0ZXN0KCkKKyAgICAgICAgdGVzdCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChvcGVuLCBtb2NrLCAicGF0Y2ggbm90IHJlc3RvcmVkIikKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfY2xhc3NfYXR0cmlidXRlKHNlbGYpOgorICAgICAgICBAcGF0Y2goJyVzLlNvbWVDbGFzcy5jbGFzc19hdHRyaWJ1dGUnICUgX19uYW1lX18sCisgICAgICAgICAgICAgICBzZW50aW5lbC5DbGFzc0F0dHJpYnV0ZSkKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUFRNb2R1bGUuU29tZUNsYXNzLmNsYXNzX2F0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VudGluZWwuQ2xhc3NBdHRyaWJ1dGUsICJ1bnBhdGNoZWQiKQorICAgICAgICB0ZXN0KCkKKworICAgICAgICBzZWxmLmFzc2VydElzTm9uZShQVE1vZHVsZS5Tb21lQ2xhc3MuY2xhc3NfYXR0cmlidXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAicGF0Y2ggbm90IHJlc3RvcmVkIikKKworCisgICAgZGVmIHRlc3RfcGF0Y2hvYmplY3Rfd2l0aF9kZWZhdWx0X21vY2soc2VsZik6CisgICAgICAgIGNsYXNzIFRlc3Qob2JqZWN0KToKKyAgICAgICAgICAgIHNvbWV0aGluZyA9IHNlbnRpbmVsLk9yaWdpbmFsCisgICAgICAgICAgICBzb21ldGhpbmcyID0gc2VudGluZWwuT3JpZ2luYWwyCisKKyAgICAgICAgQHBhdGNoLm9iamVjdChUZXN0LCAnc29tZXRoaW5nJykKKyAgICAgICAgZGVmIHRlc3QobW9jayk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2ssIFRlc3Quc29tZXRoaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9jayBub3QgcGFzc2VkIGludG8gdGVzdCBmdW5jdGlvbiIpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobW9jaywgTWFnaWNNb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRjaCB3aXRoIHR3byBhcmd1bWVudHMgZGlkIG5vdCBjcmVhdGUgYSBtb2NrIikKKworICAgICAgICB0ZXN0KCkKKworICAgICAgICBAcGF0Y2gub2JqZWN0KFRlc3QsICdzb21ldGhpbmcnKQorICAgICAgICBAcGF0Y2gub2JqZWN0KFRlc3QsICdzb21ldGhpbmcyJykKKyAgICAgICAgZGVmIHRlc3QodGhpczEsIHRoaXMyLCBtb2NrMSwgbW9jazIpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0aGlzMSwgc2VudGluZWwudGhpczEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXRjaGVkIGZ1bmN0aW9uIGRpZG4ndCByZWNlaXZlIGluaXRpYWwgYXJndW1lbnQiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0aGlzMiwgc2VudGluZWwudGhpczIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQYXRjaGVkIGZ1bmN0aW9uIGRpZG4ndCByZWNlaXZlIHNlY29uZCBhcmd1bWVudCIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2sxLCBUZXN0LnNvbWV0aGluZzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb2NrIG5vdCBwYXNzZWQgaW50byB0ZXN0IGZ1bmN0aW9uIikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jazIsIFRlc3Quc29tZXRoaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU2Vjb25kIE1vY2sgbm90IHBhc3NlZCBpbnRvIHRlc3QgZnVuY3Rpb24iKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2syLCBNYWdpY01vY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhdGNoIHdpdGggdHdvIGFyZ3VtZW50cyBkaWQgbm90IGNyZWF0ZSBhIG1vY2siKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2syLCBNYWdpY01vY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhdGNoIHdpdGggdHdvIGFyZ3VtZW50cyBkaWQgbm90IGNyZWF0ZSBhIG1vY2siKQorCisgICAgICAgICAgICAjIEEgaGFjayB0byB0ZXN0IHRoYXQgbmV3IG1vY2tzIGFyZSBwYXNzZWQgdGhlIHNlY29uZCB0aW1lCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKG91dGVyTW9jazEsIG1vY2sxLCAidW5leHBlY3RlZCB2YWx1ZSBmb3IgbW9jazEiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChvdXRlck1vY2syLCBtb2NrMiwgInVuZXhwZWN0ZWQgdmFsdWUgZm9yIG1vY2sxIikKKyAgICAgICAgICAgIHJldHVybiBtb2NrMSwgbW9jazIKKworICAgICAgICBvdXRlck1vY2sxID0gb3V0ZXJNb2NrMiA9IE5vbmUKKyAgICAgICAgb3V0ZXJNb2NrMSwgb3V0ZXJNb2NrMiA9IHRlc3Qoc2VudGluZWwudGhpczEsIHNlbnRpbmVsLnRoaXMyKQorCisgICAgICAgICMgVGVzdCB0aGF0IGV4ZWN1dGluZyBhIHNlY29uZCB0aW1lIGNyZWF0ZXMgbmV3IG1vY2tzCisgICAgICAgIHRlc3Qoc2VudGluZWwudGhpczEsIHNlbnRpbmVsLnRoaXMyKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF93aXRoX3NwZWMoc2VsZik6CisgICAgICAgIEBwYXRjaCgnJXMuU29tZUNsYXNzJyAlIF9fbmFtZV9fLCBzcGVjPVNvbWVDbGFzcykKKyAgICAgICAgZGVmIHRlc3QoTW9ja1NvbWVDbGFzcyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWVDbGFzcywgTW9ja1NvbWVDbGFzcykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc19pbnN0YW5jZShTb21lQ2xhc3Mud2liYmxlLCBNYWdpY01vY2spKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYTogU29tZUNsYXNzLm5vdF93aWJibGUpCisKKyAgICAgICAgdGVzdCgpCisKKworICAgIGRlZiB0ZXN0X3BhdGNob2JqZWN0X3dpdGhfc3BlYyhzZWxmKToKKyAgICAgICAgQHBhdGNoLm9iamVjdChTb21lQ2xhc3MsICdjbGFzc19hdHRyaWJ1dGUnLCBzcGVjPVNvbWVDbGFzcykKKyAgICAgICAgZGVmIHRlc3QoTW9ja0F0dHJpYnV0ZSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWVDbGFzcy5jbGFzc19hdHRyaWJ1dGUsIE1vY2tBdHRyaWJ1dGUpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfaW5zdGFuY2UoU29tZUNsYXNzLmNsYXNzX2F0dHJpYnV0ZS53aWJibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWdpY01vY2spKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGE6IFNvbWVDbGFzcy5jbGFzc19hdHRyaWJ1dGUubm90X3dpYmJsZSkKKworICAgICAgICB0ZXN0KCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfd2l0aF9zcGVjX2FzX2xpc3Qoc2VsZik6CisgICAgICAgIEBwYXRjaCgnJXMuU29tZUNsYXNzJyAlIF9fbmFtZV9fLCBzcGVjPVsnd2liYmxlJ10pCisgICAgICAgIGRlZiB0ZXN0KE1vY2tTb21lQ2xhc3MpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChTb21lQ2xhc3MsIE1vY2tTb21lQ2xhc3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfaW5zdGFuY2UoU29tZUNsYXNzLndpYmJsZSwgTWFnaWNNb2NrKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBsYW1iZGE6IFNvbWVDbGFzcy5ub3Rfd2liYmxlKQorCisgICAgICAgIHRlc3QoKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaG9iamVjdF93aXRoX3NwZWNfYXNfbGlzdChzZWxmKToKKyAgICAgICAgQHBhdGNoLm9iamVjdChTb21lQ2xhc3MsICdjbGFzc19hdHRyaWJ1dGUnLCBzcGVjPVsnd2liYmxlJ10pCisgICAgICAgIGRlZiB0ZXN0KE1vY2tBdHRyaWJ1dGUpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChTb21lQ2xhc3MuY2xhc3NfYXR0cmlidXRlLCBNb2NrQXR0cmlidXRlKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzX2luc3RhbmNlKFNvbWVDbGFzcy5jbGFzc19hdHRyaWJ1dGUud2liYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWFnaWNNb2NrKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFtYmRhOiBTb21lQ2xhc3MuY2xhc3NfYXR0cmlidXRlLm5vdF93aWJibGUpCisKKyAgICAgICAgdGVzdCgpCisKKworICAgIGRlZiB0ZXN0X25lc3RlZF9wYXRjaF93aXRoX3NwZWNfYXNfbGlzdChzZWxmKToKKyAgICAgICAgIyByZWdyZXNzaW9uIHRlc3QgZm9yIG5lc3RlZCBkZWNvcmF0b3JzCisgICAgICAgIEBwYXRjaCgnJXMub3BlbicgJSBidWlsdGluX3N0cmluZykKKyAgICAgICAgQHBhdGNoKCclcy5Tb21lQ2xhc3MnICUgX19uYW1lX18sIHNwZWM9Wyd3aWJibGUnXSkKKyAgICAgICAgZGVmIHRlc3QoTW9ja1NvbWVDbGFzcywgTW9ja09wZW4pOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChTb21lQ2xhc3MsIE1vY2tTb21lQ2xhc3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfaW5zdGFuY2UoU29tZUNsYXNzLndpYmJsZSwgTWFnaWNNb2NrKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBsYW1iZGE6IFNvbWVDbGFzcy5ub3Rfd2liYmxlKQorICAgICAgICB0ZXN0KCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfd2l0aF9zcGVjX2FzX2Jvb2xlYW4oc2VsZik6CisgICAgICAgIEBwYXRjaCgnJXMuU29tZUNsYXNzJyAlIF9fbmFtZV9fLCBzcGVjPVRydWUpCisgICAgICAgIGRlZiB0ZXN0KE1vY2tTb21lQ2xhc3MpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChTb21lQ2xhc3MsIE1vY2tTb21lQ2xhc3MpCisgICAgICAgICAgICAjIFNob3VsZCBub3QgcmFpc2UgYXR0cmlidXRlIGVycm9yCisgICAgICAgICAgICBNb2NrU29tZUNsYXNzLndpYmJsZQorCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgbGFtYmRhOiBNb2NrU29tZUNsYXNzLm5vdF93aWJibGUpCisKKyAgICAgICAgdGVzdCgpCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX29iamVjdF93aXRoX3NwZWNfYXNfYm9vbGVhbihzZWxmKToKKyAgICAgICAgQHBhdGNoLm9iamVjdChQVE1vZHVsZSwgJ1NvbWVDbGFzcycsIHNwZWM9VHJ1ZSkKKyAgICAgICAgZGVmIHRlc3QoTW9ja1NvbWVDbGFzcyk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWVDbGFzcywgTW9ja1NvbWVDbGFzcykKKyAgICAgICAgICAgICMgU2hvdWxkIG5vdCByYWlzZSBhdHRyaWJ1dGUgZXJyb3IKKyAgICAgICAgICAgIE1vY2tTb21lQ2xhc3Mud2liYmxlCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBsYW1iZGE6IE1vY2tTb21lQ2xhc3Mubm90X3dpYmJsZSkKKworICAgICAgICB0ZXN0KCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfY2xhc3NfYWN0c193aXRoX3NwZWNfaXNfaW5oZXJpdGVkKHNlbGYpOgorICAgICAgICBAcGF0Y2goJyVzLlNvbWVDbGFzcycgJSBfX25hbWVfXywgc3BlYz1UcnVlKQorICAgICAgICBkZWYgdGVzdChNb2NrU29tZUNsYXNzKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc19pbnN0YW5jZShNb2NrU29tZUNsYXNzLCBNYWdpY01vY2spKQorICAgICAgICAgICAgaW5zdGFuY2UgPSBNb2NrU29tZUNsYXNzKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90Q2FsbGFibGUoaW5zdGFuY2UpCisgICAgICAgICAgICAjIFNob3VsZCBub3QgcmFpc2UgYXR0cmlidXRlIGVycm9yCisgICAgICAgICAgICBpbnN0YW5jZS53aWJibGUKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYTogaW5zdGFuY2Uubm90X3dpYmJsZSkKKworICAgICAgICB0ZXN0KCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfd2l0aF9jcmVhdGVfbW9ja3Nfbm9uX2V4aXN0ZW50X2F0dHJpYnV0ZXMoc2VsZik6CisgICAgICAgIEBwYXRjaCgnJXMuZnJvb2JsZScgJSBidWlsdGluX3N0cmluZywgc2VudGluZWwuRnJvb2JsZSwgY3JlYXRlPVRydWUpCisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZyb29ibGUsIHNlbnRpbmVsLkZyb29ibGUpCisKKyAgICAgICAgdGVzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5hbWVFcnJvciwgbGFtYmRhOiBmcm9vYmxlKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaG9iamVjdF93aXRoX2NyZWF0ZV9tb2Nrc19ub25fZXhpc3RlbnRfYXR0cmlidXRlcyhzZWxmKToKKyAgICAgICAgQHBhdGNoLm9iamVjdChTb21lQ2xhc3MsICdmcm9vYmxlJywgc2VudGluZWwuRnJvb2JsZSwgY3JlYXRlPVRydWUpCisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWVDbGFzcy5mcm9vYmxlLCBzZW50aW5lbC5Gcm9vYmxlKQorCisgICAgICAgIHRlc3QoKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIoU29tZUNsYXNzLCAnZnJvb2JsZScpKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF93b250X2NyZWF0ZV9ieV9kZWZhdWx0KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBAcGF0Y2goJyVzLmZyb29ibGUnICUgYnVpbHRpbl9zdHJpbmcsIHNlbnRpbmVsLkZyb29ibGUpCisgICAgICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnJvb2JsZSwgc2VudGluZWwuRnJvb2JsZSkKKworICAgICAgICAgICAgdGVzdCgpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgnUGF0Y2hpbmcgbm9uIGV4aXN0ZW50IGF0dHJpYnV0ZXMgc2hvdWxkIGZhaWwnKQorCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5hbWVFcnJvciwgbGFtYmRhOiBmcm9vYmxlKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaG9iamVjdF93b250X2NyZWF0ZV9ieV9kZWZhdWx0KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBAcGF0Y2gub2JqZWN0KFNvbWVDbGFzcywgJ2Zyb29ibGUnLCBzZW50aW5lbC5Gcm9vYmxlKQorICAgICAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ1BhdGNoaW5nIG5vbiBleGlzdGVudCBhdHRyaWJ1dGVzIHNob3VsZCBmYWlsJykKKworICAgICAgICAgICAgdGVzdCgpCisgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgnUGF0Y2hpbmcgbm9uIGV4aXN0ZW50IGF0dHJpYnV0ZXMgc2hvdWxkIGZhaWwnKQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIoU29tZUNsYXNzLCAnZnJvb2JsZScpKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF93aXRoX3N0YXRpY19tZXRob2RzKHNlbGYpOgorICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgICAgIGRlZiB3b290KCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbnRpbmVsLlN0YXRpYworCisgICAgICAgIEBwYXRjaC5vYmplY3QoRm9vLCAnd29vdCcsIHN0YXRpY21ldGhvZChsYW1iZGE6IHNlbnRpbmVsLlBhdGNoZWQpKQorICAgICAgICBkZWYgYW5vbnltb3VzKCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby53b290KCksIHNlbnRpbmVsLlBhdGNoZWQpCisgICAgICAgIGFub255bW91cygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGb28ud29vdCgpLCBzZW50aW5lbC5TdGF0aWMpCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX2xvY2FsKHNlbGYpOgorICAgICAgICBmb28gPSBzZW50aW5lbC5Gb28KKyAgICAgICAgQHBhdGNoLm9iamVjdChzZW50aW5lbCwgJ0ZvbycsICdGb28nKQorICAgICAgICBkZWYgYW5vbnltb3VzKCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbnRpbmVsLkZvbywgJ0ZvbycpCisgICAgICAgIGFub255bW91cygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZW50aW5lbC5Gb28sIGZvbykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfc2xvdHMoc2VsZik6CisgICAgICAgIGNsYXNzIEZvbyhvYmplY3QpOgorICAgICAgICAgICAgX19zbG90c19fID0gKCdGb28nLCkKKworICAgICAgICBmb28gPSBGb28oKQorICAgICAgICBmb28uRm9vID0gc2VudGluZWwuRm9vCisKKyAgICAgICAgQHBhdGNoLm9iamVjdChmb28sICdGb28nLCAnRm9vJykKKyAgICAgICAgZGVmIGFub255bW91cygpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uRm9vLCAnRm9vJykKKyAgICAgICAgYW5vbnltb3VzKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5Gb28sIHNlbnRpbmVsLkZvbykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hvYmplY3RfY2xhc3NfZGVjb3JhdG9yKHNlbGYpOgorICAgICAgICBjbGFzcyBTb21ldGhpbmcob2JqZWN0KToKKyAgICAgICAgICAgIGF0dHJpYnV0ZSA9IHNlbnRpbmVsLk9yaWdpbmFsCisKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qob3RoZXJfc2VsZik6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChTb21ldGhpbmcuYXR0cmlidXRlLCBzZW50aW5lbC5QYXRjaGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVucGF0Y2hlZCIpCisgICAgICAgICAgICBkZWYgbm90X3Rlc3RfbWV0aG9kKG90aGVyX3NlbGYpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoU29tZXRoaW5nLmF0dHJpYnV0ZSwgc2VudGluZWwuT3JpZ2luYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9uLXRlc3QgbWV0aG9kIHBhdGNoZWQiKQorCisgICAgICAgIEZvbyA9IHBhdGNoLm9iamVjdChTb21ldGhpbmcsICdhdHRyaWJ1dGUnLCBzZW50aW5lbC5QYXRjaGVkKShGb28pCisKKyAgICAgICAgZiA9IEZvbygpCisgICAgICAgIGYudGVzdF9tZXRob2QoKQorICAgICAgICBmLm5vdF90ZXN0X21ldGhvZCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChTb21ldGhpbmcuYXR0cmlidXRlLCBzZW50aW5lbC5PcmlnaW5hbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGF0Y2ggbm90IHJlc3RvcmVkIikKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfY2xhc3NfZGVjb3JhdG9yKHNlbGYpOgorICAgICAgICBjbGFzcyBTb21ldGhpbmcob2JqZWN0KToKKyAgICAgICAgICAgIGF0dHJpYnV0ZSA9IHNlbnRpbmVsLk9yaWdpbmFsCisKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgdGVzdF9tZXRob2Qob3RoZXJfc2VsZiwgbW9ja19zb21ldGhpbmcpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUFRNb2R1bGUuc29tZXRoaW5nLCBtb2NrX3NvbWV0aGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnBhdGNoZWQiKQorICAgICAgICAgICAgZGVmIG5vdF90ZXN0X21ldGhvZChvdGhlcl9zZWxmKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFBUTW9kdWxlLnNvbWV0aGluZywgc2VudGluZWwuU29tZXRoaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vbi10ZXN0IG1ldGhvZCBwYXRjaGVkIikKKyAgICAgICAgRm9vID0gcGF0Y2goJyVzLnNvbWV0aGluZycgJSBfX25hbWVfXykoRm9vKQorCisgICAgICAgIGYgPSBGb28oKQorICAgICAgICBmLnRlc3RfbWV0aG9kKCkKKyAgICAgICAgZi5ub3RfdGVzdF9tZXRob2QoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoU29tZXRoaW5nLmF0dHJpYnV0ZSwgc2VudGluZWwuT3JpZ2luYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgInBhdGNoIG5vdCByZXN0b3JlZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoUFRNb2R1bGUuc29tZXRoaW5nLCBzZW50aW5lbC5Tb21ldGhpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgInBhdGNoIG5vdCByZXN0b3JlZCIpCisKKworICAgIGRlZiB0ZXN0X3BhdGNob2JqZWN0X3R3aWNlKHNlbGYpOgorICAgICAgICBjbGFzcyBTb21ldGhpbmcob2JqZWN0KToKKyAgICAgICAgICAgIGF0dHJpYnV0ZSA9IHNlbnRpbmVsLk9yaWdpbmFsCisgICAgICAgICAgICBuZXh0X2F0dHJpYnV0ZSA9IHNlbnRpbmVsLk9yaWdpbmFsMgorCisgICAgICAgIEBwYXRjaC5vYmplY3QoU29tZXRoaW5nLCAnYXR0cmlidXRlJywgc2VudGluZWwuUGF0Y2hlZCkKKyAgICAgICAgQHBhdGNoLm9iamVjdChTb21ldGhpbmcsICdhdHRyaWJ1dGUnLCBzZW50aW5lbC5QYXRjaGVkKQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChTb21ldGhpbmcuYXR0cmlidXRlLCBzZW50aW5lbC5QYXRjaGVkLCAidW5wYXRjaGVkIikKKworICAgICAgICB0ZXN0KCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWV0aGluZy5hdHRyaWJ1dGUsIHNlbnRpbmVsLk9yaWdpbmFsLAorICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRjaCBub3QgcmVzdG9yZWQiKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9kaWN0KHNlbGYpOgorICAgICAgICBmb28gPSB7J2luaXRpYWwnOiBvYmplY3QoKSwgJ290aGVyJzogJ3NvbWV0aGluZyd9CisgICAgICAgIG9yaWdpbmFsID0gZm9vLmNvcHkoKQorCisgICAgICAgIEBwYXRjaC5kaWN0KGZvbykKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIGZvb1snYSddID0gMworICAgICAgICAgICAgZGVsIGZvb1snaW5pdGlhbCddCisgICAgICAgICAgICBmb29bJ290aGVyJ10gPSAnc29tZXRoaW5nIGVsc2UnCisKKyAgICAgICAgdGVzdCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28sIG9yaWdpbmFsKQorCisgICAgICAgIEBwYXRjaC5kaWN0KGZvbywgeydhJzogJ2InfSkKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGZvbyksIDMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvb1snYSddLCAnYicpCisKKyAgICAgICAgdGVzdCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28sIG9yaWdpbmFsKQorCisgICAgICAgIEBwYXRjaC5kaWN0KGZvbywgWygnYScsICdiJyldKQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZm9vKSwgMykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vWydhJ10sICdiJykKKworICAgICAgICB0ZXN0KCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvbywgb3JpZ2luYWwpCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX2RpY3Rfd2l0aF9jb250YWluZXJfb2JqZWN0KHNlbGYpOgorICAgICAgICBmb28gPSBDb250YWluZXIoKQorICAgICAgICBmb29bJ2luaXRpYWwnXSA9IG9iamVjdCgpCisgICAgICAgIGZvb1snb3RoZXInXSA9ICAnc29tZXRoaW5nJworCisgICAgICAgIG9yaWdpbmFsID0gZm9vLnZhbHVlcy5jb3B5KCkKKworICAgICAgICBAcGF0Y2guZGljdChmb28pCisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBmb29bJ2EnXSA9IDMKKyAgICAgICAgICAgIGRlbCBmb29bJ2luaXRpYWwnXQorICAgICAgICAgICAgZm9vWydvdGhlciddID0gJ3NvbWV0aGluZyBlbHNlJworCisgICAgICAgIHRlc3QoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLnZhbHVlcywgb3JpZ2luYWwpCisKKyAgICAgICAgQHBhdGNoLmRpY3QoZm9vLCB7J2EnOiAnYid9KQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZm9vLnZhbHVlcyksIDMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvb1snYSddLCAnYicpCisKKyAgICAgICAgdGVzdCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28udmFsdWVzLCBvcmlnaW5hbCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfZGljdF93aXRoX2NsZWFyKHNlbGYpOgorICAgICAgICBmb28gPSB7J2luaXRpYWwnOiBvYmplY3QoKSwgJ290aGVyJzogJ3NvbWV0aGluZyd9CisgICAgICAgIG9yaWdpbmFsID0gZm9vLmNvcHkoKQorCisgICAgICAgIEBwYXRjaC5kaWN0KGZvbywgY2xlYXI9VHJ1ZSkKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLCB7fSkKKyAgICAgICAgICAgIGZvb1snYSddID0gMworICAgICAgICAgICAgZm9vWydvdGhlciddID0gJ3NvbWV0aGluZyBlbHNlJworCisgICAgICAgIHRlc3QoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLCBvcmlnaW5hbCkKKworICAgICAgICBAcGF0Y2guZGljdChmb28sIHsnYSc6ICdiJ30sIGNsZWFyPVRydWUpCisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvbywgeydhJzogJ2InfSkKKworICAgICAgICB0ZXN0KCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvbywgb3JpZ2luYWwpCisKKyAgICAgICAgQHBhdGNoLmRpY3QoZm9vLCBbKCdhJywgJ2InKV0sIGNsZWFyPVRydWUpCisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvbywgeydhJzogJ2InfSkKKworICAgICAgICB0ZXN0KCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvbywgb3JpZ2luYWwpCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX2RpY3Rfd2l0aF9jb250YWluZXJfb2JqZWN0X2FuZF9jbGVhcihzZWxmKToKKyAgICAgICAgZm9vID0gQ29udGFpbmVyKCkKKyAgICAgICAgZm9vWydpbml0aWFsJ10gPSBvYmplY3QoKQorICAgICAgICBmb29bJ290aGVyJ10gPSAgJ3NvbWV0aGluZycKKworICAgICAgICBvcmlnaW5hbCA9IGZvby52YWx1ZXMuY29weSgpCisKKyAgICAgICAgQHBhdGNoLmRpY3QoZm9vLCBjbGVhcj1UcnVlKQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28udmFsdWVzLCB7fSkKKyAgICAgICAgICAgIGZvb1snYSddID0gMworICAgICAgICAgICAgZm9vWydvdGhlciddID0gJ3NvbWV0aGluZyBlbHNlJworCisgICAgICAgIHRlc3QoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLnZhbHVlcywgb3JpZ2luYWwpCisKKyAgICAgICAgQHBhdGNoLmRpY3QoZm9vLCB7J2EnOiAnYid9LCBjbGVhcj1UcnVlKQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28udmFsdWVzLCB7J2EnOiAnYid9KQorCisgICAgICAgIHRlc3QoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLnZhbHVlcywgb3JpZ2luYWwpCisKKworICAgIGRlZiB0ZXN0X25hbWVfcHJlc2VydmVkKHNlbGYpOgorICAgICAgICBmb28gPSB7fQorCisgICAgICAgIEBwYXRjaCgnJXMuU29tZUNsYXNzJyAlIF9fbmFtZV9fLCBvYmplY3QoKSkKKyAgICAgICAgQHBhdGNoKCclcy5Tb21lQ2xhc3MnICUgX19uYW1lX18sIG9iamVjdCgpLCBhdXRvc3BlYz1UcnVlKQorICAgICAgICBAcGF0Y2gub2JqZWN0KFNvbWVDbGFzcywgb2JqZWN0KCkpCisgICAgICAgIEBwYXRjaC5kaWN0KGZvbykKKyAgICAgICAgZGVmIHNvbWVfbmFtZSgpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZV9uYW1lLl9fbmFtZV9fLCAnc29tZV9uYW1lJykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfd2l0aF9leGNlcHRpb24oc2VsZik6CisgICAgICAgIGZvbyA9IHt9CisKKyAgICAgICAgQHBhdGNoLmRpY3QoZm9vLCB7J2EnOiAnYid9KQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgcmFpc2UgTmFtZUVycm9yKCdLb25yYWQnKQorICAgICAgICB0cnk6CisgICAgICAgICAgICB0ZXN0KCkKKyAgICAgICAgZXhjZXB0IE5hbWVFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZmFpbCgnTmFtZUVycm9yIG5vdCByYWlzZWQgYnkgdGVzdCcpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28sIHt9KQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9kaWN0X3dpdGhfc3RyaW5nKHNlbGYpOgorICAgICAgICBAcGF0Y2guZGljdCgnb3MuZW52aXJvbicsIHsna29ucmFkX2RlbG9uZyc6ICdzb21lIHZhbHVlJ30pCisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCdrb25yYWRfZGVsb25nJywgb3MuZW52aXJvbikKKworICAgICAgICB0ZXN0KCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfZGVzY3JpcHRvcihzZWxmKToKKyAgICAgICAgIyB3b3VsZCBiZSBzb21lIGVmZm9ydCB0byBmaXggdGhpcyAtIHdlIGNvdWxkIHNwZWNpYWwgY2FzZSB0aGUKKyAgICAgICAgIyBidWlsdGluIGRlc2NyaXB0b3JzOiBjbGFzc21ldGhvZCwgcHJvcGVydHksIHN0YXRpY21ldGhvZAorICAgICAgICByZXR1cm4KKyAgICAgICAgY2xhc3MgTm90aGluZyhvYmplY3QpOgorICAgICAgICAgICAgZm9vID0gTm9uZQorCisgICAgICAgIGNsYXNzIFNvbWV0aGluZyhvYmplY3QpOgorICAgICAgICAgICAgZm9vID0ge30KKworICAgICAgICAgICAgQHBhdGNoLm9iamVjdChOb3RoaW5nLCAnZm9vJywgMikKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgZGVmIGtsYXNzKGNscyk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhjbHMsIFNvbWV0aGluZykKKworICAgICAgICAgICAgQHBhdGNoLm9iamVjdChOb3RoaW5nLCAnZm9vJywgMikKKyAgICAgICAgICAgIEBzdGF0aWNtZXRob2QKKyAgICAgICAgICAgIGRlZiBzdGF0aWMoYXJnKToKKyAgICAgICAgICAgICAgICByZXR1cm4gYXJnCisKKyAgICAgICAgICAgIEBwYXRjaC5kaWN0KGZvbykKKyAgICAgICAgICAgIEBjbGFzc21ldGhvZAorICAgICAgICAgICAgZGVmIGtsYXNzX2RpY3QoY2xzKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydElzKGNscywgU29tZXRoaW5nKQorCisgICAgICAgICAgICBAcGF0Y2guZGljdChmb28pCisgICAgICAgICAgICBAc3RhdGljbWV0aG9kCisgICAgICAgICAgICBkZWYgc3RhdGljX2RpY3QoYXJnKToKKyAgICAgICAgICAgICAgICByZXR1cm4gYXJnCisKKyAgICAgICAgIyB0aGVzZSB3aWxsIHJhaXNlIGV4Y2VwdGlvbnMgaWYgcGF0Y2hpbmcgZGVzY3JpcHRvcnMgaXMgYnJva2VuCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoU29tZXRoaW5nLnN0YXRpYygnZjAwJyksICdmMDAnKQorICAgICAgICBTb21ldGhpbmcua2xhc3MoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFNvbWV0aGluZy5zdGF0aWNfZGljdCgnZjAwJyksICdmMDAnKQorICAgICAgICBTb21ldGhpbmcua2xhc3NfZGljdCgpCisKKyAgICAgICAgc29tZXRoaW5nID0gU29tZXRoaW5nKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21ldGhpbmcuc3RhdGljKCdmMDAnKSwgJ2YwMCcpCisgICAgICAgIHNvbWV0aGluZy5rbGFzcygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZXRoaW5nLnN0YXRpY19kaWN0KCdmMDAnKSwgJ2YwMCcpCisgICAgICAgIHNvbWV0aGluZy5rbGFzc19kaWN0KCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfc3BlY19zZXQoc2VsZik6CisgICAgICAgIEBwYXRjaCgnJXMuU29tZUNsYXNzJyAlIF9fbmFtZV9fLCBzcGVjPVNvbWVDbGFzcywgc3BlY19zZXQ9VHJ1ZSkKKyAgICAgICAgZGVmIHRlc3QoTW9ja0NsYXNzKToKKyAgICAgICAgICAgIE1vY2tDbGFzcy56ID0gJ2ZvbycKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgdGVzdCkKKworICAgICAgICBAcGF0Y2gub2JqZWN0KHN1cHBvcnQsICdTb21lQ2xhc3MnLCBzcGVjPVNvbWVDbGFzcywgc3BlY19zZXQ9VHJ1ZSkKKyAgICAgICAgZGVmIHRlc3QoTW9ja0NsYXNzKToKKyAgICAgICAgICAgIE1vY2tDbGFzcy56ID0gJ2ZvbycKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgdGVzdCkKKyAgICAgICAgQHBhdGNoKCclcy5Tb21lQ2xhc3MnICUgX19uYW1lX18sIHNwZWNfc2V0PVRydWUpCisgICAgICAgIGRlZiB0ZXN0KE1vY2tDbGFzcyk6CisgICAgICAgICAgICBNb2NrQ2xhc3MueiA9ICdmb28nCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIHRlc3QpCisKKyAgICAgICAgQHBhdGNoLm9iamVjdChzdXBwb3J0LCAnU29tZUNsYXNzJywgc3BlY19zZXQ9VHJ1ZSkKKyAgICAgICAgZGVmIHRlc3QoTW9ja0NsYXNzKToKKyAgICAgICAgICAgIE1vY2tDbGFzcy56ID0gJ2ZvbycKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgdGVzdCkKKworCisgICAgZGVmIHRlc3Rfc3BlY19zZXRfaW5oZXJpdChzZWxmKToKKyAgICAgICAgQHBhdGNoKCclcy5Tb21lQ2xhc3MnICUgX19uYW1lX18sIHNwZWNfc2V0PVRydWUpCisgICAgICAgIGRlZiB0ZXN0KE1vY2tDbGFzcyk6CisgICAgICAgICAgICBpbnN0YW5jZSA9IE1vY2tDbGFzcygpCisgICAgICAgICAgICBpbnN0YW5jZS56ID0gJ2ZvbycKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgdGVzdCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfc3RhcnRfc3RvcChzZWxmKToKKyAgICAgICAgb3JpZ2luYWwgPSBzb21ldGhpbmcKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoKCclcy5zb21ldGhpbmcnICUgX19uYW1lX18pCisgICAgICAgIHNlbGYuYXNzZXJ0SXMoc29tZXRoaW5nLCBvcmlnaW5hbCkKKyAgICAgICAgbW9jayA9IHBhdGNoZXIuc3RhcnQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzTm90KG1vY2ssIG9yaWdpbmFsKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhzb21ldGhpbmcsIG1vY2spCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRjaGVyLnN0b3AoKQorICAgICAgICBzZWxmLmFzc2VydElzKHNvbWV0aGluZywgb3JpZ2luYWwpCisKKworICAgIGRlZiB0ZXN0X3N0b3Bfd2l0aG91dF9zdGFydChzZWxmKToKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoKGZvb19uYW1lLCAnYmFyJywgMykKKworICAgICAgICAjIGNhbGxpbmcgc3RvcCB3aXRob3V0IHN0YXJ0IHVzZWQgdG8gcHJvZHVjZSBhIHZlcnkgb2JzY3VyZSBlcnJvcgorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IsIHBhdGNoZXIuc3RvcCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hvYmplY3Rfc3RhcnRfc3RvcChzZWxmKToKKyAgICAgICAgb3JpZ2luYWwgPSBzb21ldGhpbmcKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoLm9iamVjdChQVE1vZHVsZSwgJ3NvbWV0aGluZycsICdmb28nKQorICAgICAgICBzZWxmLmFzc2VydElzKHNvbWV0aGluZywgb3JpZ2luYWwpCisgICAgICAgIHJlcGxhY2VkID0gcGF0Y2hlci5zdGFydCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwbGFjZWQsICdmb28nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhzb21ldGhpbmcsIHJlcGxhY2VkKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcGF0Y2hlci5zdG9wKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhzb21ldGhpbmcsIG9yaWdpbmFsKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9kaWN0X3N0YXJ0X3N0b3Aoc2VsZik6CisgICAgICAgIGQgPSB7J2Zvbyc6ICdiYXInfQorICAgICAgICBvcmlnaW5hbCA9IGQuY29weSgpCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaC5kaWN0KGQsIFsoJ3NwYW0nLCAnZWdncycpXSwgY2xlYXI9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLCBvcmlnaW5hbCkKKworICAgICAgICBwYXRjaGVyLnN0YXJ0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLCB7J3NwYW0nOiAnZWdncyd9KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcGF0Y2hlci5zdG9wKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkLCBvcmlnaW5hbCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfZGljdF9jbGFzc19kZWNvcmF0b3Ioc2VsZik6CisgICAgICAgIHRoaXMgPSBzZWxmCisgICAgICAgIGQgPSB7J3NwYW0nOiAnZWdncyd9CisgICAgICAgIG9yaWdpbmFsID0gZC5jb3B5KCkKKworICAgICAgICBjbGFzcyBUZXN0KG9iamVjdCk6CisgICAgICAgICAgICBkZWYgdGVzdF9maXJzdChzZWxmKToKKyAgICAgICAgICAgICAgICB0aGlzLmFzc2VydEVxdWFsKGQsIHsnZm9vJzogJ2Jhcid9KQorICAgICAgICAgICAgZGVmIHRlc3Rfc2Vjb25kKHNlbGYpOgorICAgICAgICAgICAgICAgIHRoaXMuYXNzZXJ0RXF1YWwoZCwgeydmb28nOiAnYmFyJ30pCisKKyAgICAgICAgVGVzdCA9IHBhdGNoLmRpY3QoZCwgeydmb28nOiAnYmFyJ30sIGNsZWFyPVRydWUpKFRlc3QpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZCwgb3JpZ2luYWwpCisKKyAgICAgICAgdGVzdCA9IFRlc3QoKQorCisgICAgICAgIHRlc3QudGVzdF9maXJzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZCwgb3JpZ2luYWwpCisKKyAgICAgICAgdGVzdC50ZXN0X3NlY29uZCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZCwgb3JpZ2luYWwpCisKKyAgICAgICAgdGVzdCA9IFRlc3QoKQorCisgICAgICAgIHRlc3QudGVzdF9maXJzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZCwgb3JpZ2luYWwpCisKKyAgICAgICAgdGVzdC50ZXN0X3NlY29uZCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZCwgb3JpZ2luYWwpCisKKworICAgIGRlZiB0ZXN0X2dldF9vbmx5X3Byb3h5KHNlbGYpOgorICAgICAgICBjbGFzcyBTb21ldGhpbmcob2JqZWN0KToKKyAgICAgICAgICAgIGZvbyA9ICdmb28nCisgICAgICAgIGNsYXNzIFNvbWV0aGluZ0Vsc2U6CisgICAgICAgICAgICBmb28gPSAnZm9vJworCisgICAgICAgIGZvciB0aGluZyBpbiBTb21ldGhpbmcsIFNvbWV0aGluZ0Vsc2UsIFNvbWV0aGluZygpLCBTb21ldGhpbmdFbHNlOgorICAgICAgICAgICAgcHJveHkgPSBfZ2V0X3Byb3h5KHRoaW5nKQorCisgICAgICAgICAgICBAcGF0Y2gub2JqZWN0KHByb3h5LCAnZm9vJywgJ2JhcicpCisgICAgICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocHJveHkuZm9vLCAnYmFyJykKKyAgICAgICAgICAgIHRlc3QoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm94eS5mb28sICdmb28nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0aGluZy5mb28sICdmb28nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbignZm9vJywgcHJveHkuX19kaWN0X18pCisKKworICAgIGRlZiB0ZXN0X2dldF9zZXRfZGVsZXRlX3Byb3h5KHNlbGYpOgorICAgICAgICBjbGFzcyBTb21ldGhpbmcob2JqZWN0KToKKyAgICAgICAgICAgIGZvbyA9ICdmb28nCisgICAgICAgIGNsYXNzIFNvbWV0aGluZ0Vsc2U6CisgICAgICAgICAgICBmb28gPSAnZm9vJworCisgICAgICAgIGZvciB0aGluZyBpbiBTb21ldGhpbmcsIFNvbWV0aGluZ0Vsc2UsIFNvbWV0aGluZygpLCBTb21ldGhpbmdFbHNlOgorICAgICAgICAgICAgcHJveHkgPSBfZ2V0X3Byb3h5KFNvbWV0aGluZywgZ2V0X29ubHk9RmFsc2UpCisKKyAgICAgICAgICAgIEBwYXRjaC5vYmplY3QocHJveHksICdmb28nLCAnYmFyJykKKyAgICAgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwcm94eS5mb28sICdiYXInKQorICAgICAgICAgICAgdGVzdCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHByb3h5LmZvbywgJ2ZvbycpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRoaW5nLmZvbywgJ2ZvbycpCisgICAgICAgICAgICBzZWxmLmFzc2VydE5vdEluKCdmb28nLCBwcm94eS5fX2RpY3RfXykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfa2V5d29yZF9hcmdzKHNlbGYpOgorICAgICAgICBrd2FyZ3MgPSB7J3NpZGVfZWZmZWN0JzogS2V5RXJyb3IsICdmb28uYmFyLnJldHVybl92YWx1ZSc6IDMzLAorICAgICAgICAgICAgICAgICAgJ2Zvbyc6IE1hZ2ljTW9jaygpfQorCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaChmb29fbmFtZSwgKiprd2FyZ3MpCisgICAgICAgIG1vY2sgPSBwYXRjaGVyLnN0YXJ0KCkKKyAgICAgICAgcGF0Y2hlci5zdG9wKCkKKworICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwgbW9jaykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtb2NrLmZvby5iYXIoKSwgMzMpCisgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2NrLmZvbywgTWFnaWNNb2NrKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9vYmplY3Rfa2V5d29yZF9hcmdzKHNlbGYpOgorICAgICAgICBrd2FyZ3MgPSB7J3NpZGVfZWZmZWN0JzogS2V5RXJyb3IsICdmb28uYmFyLnJldHVybl92YWx1ZSc6IDMzLAorICAgICAgICAgICAgICAgICAgJ2Zvbyc6IE1hZ2ljTW9jaygpfQorCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaC5vYmplY3QoRm9vLCAnZicsICoqa3dhcmdzKQorICAgICAgICBtb2NrID0gcGF0Y2hlci5zdGFydCgpCisgICAgICAgIHBhdGNoZXIuc3RvcCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoS2V5RXJyb3IsIG1vY2spCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5mb28uYmFyKCksIDMzKQorICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobW9jay5mb28sIE1hZ2ljTW9jaykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfZGljdF9rZXl3b3JkX2FyZ3Moc2VsZik6CisgICAgICAgIG9yaWdpbmFsID0geydmb28nOiAnYmFyJ30KKyAgICAgICAgY29weSA9IG9yaWdpbmFsLmNvcHkoKQorCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaC5kaWN0KG9yaWdpbmFsLCBmb289MywgYmFyPTQsIGJhej01KQorICAgICAgICBwYXRjaGVyLnN0YXJ0KCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9yaWdpbmFsLCBkaWN0KGZvbz0zLCBiYXI9NCwgYmF6PTUpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcGF0Y2hlci5zdG9wKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9yaWdpbmFsLCBjb3B5KQorCisKKyAgICBkZWYgdGVzdF9hdXRvc3BlYyhzZWxmKToKKyAgICAgICAgY2xhc3MgQm9vKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgYSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIGYoc2VsZiwgYSk6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZGVmIGcoc2VsZik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZm9vID0gJ2JhcicKKworICAgICAgICAgICAgY2xhc3MgQmFyKG9iamVjdCk6CisgICAgICAgICAgICAgICAgZGVmIGEoc2VsZik6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICBkZWYgX3Rlc3QobW9jayk6CisgICAgICAgICAgICBtb2NrKDEpCisgICAgICAgICAgICBtb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgxKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtb2NrKQorCisgICAgICAgIGRlZiBfdGVzdDIobW9jayk6CisgICAgICAgICAgICBtb2NrLmYoMSkKKyAgICAgICAgICAgIG1vY2suZi5hc3NlcnRfY2FsbGVkX3dpdGgoMSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgbW9jay5mKQorCisgICAgICAgICAgICBtb2NrLmcoKQorICAgICAgICAgICAgbW9jay5nLmFzc2VydF9jYWxsZWRfd2l0aCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1vY2suZywgMSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIG1vY2ssICdoJykKKworICAgICAgICAgICAgbW9jay5mb28ubG93ZXIoKQorICAgICAgICAgICAgbW9jay5mb28ubG93ZXIuYXNzZXJ0X2NhbGxlZF93aXRoKCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBtb2NrLmZvbywgJ2JhcicpCisKKyAgICAgICAgICAgIG1vY2suQmFyKCkKKyAgICAgICAgICAgIG1vY2suQmFyLmFzc2VydF9jYWxsZWRfd2l0aCgpCisKKyAgICAgICAgICAgIG1vY2suQmFyLmEoKQorICAgICAgICAgICAgbW9jay5CYXIuYS5hc3NlcnRfY2FsbGVkX3dpdGgoKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBtb2NrLkJhci5hLCAxKQorCisgICAgICAgICAgICBtb2NrLkJhcigpLmEoKQorICAgICAgICAgICAgbW9jay5CYXIoKS5hLmFzc2VydF9jYWxsZWRfd2l0aCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIG1vY2suQmFyKCkuYSwgMSkKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIG1vY2suQmFyLCAnYicpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgbW9jay5CYXIoKSwgJ2InKQorCisgICAgICAgIGRlZiBmdW5jdGlvbihtb2NrKToKKyAgICAgICAgICAgIF90ZXN0KG1vY2spCisgICAgICAgICAgICBfdGVzdDIobW9jaykKKyAgICAgICAgICAgIF90ZXN0Mihtb2NrKDEpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhtb2NrLCBGb28pCisgICAgICAgICAgICByZXR1cm4gbW9jaworCisgICAgICAgIHRlc3QgPSBwYXRjaChmb29fbmFtZSwgYXV0b3NwZWM9VHJ1ZSkoZnVuY3Rpb24pCisKKyAgICAgICAgbW9jayA9IHRlc3QoKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KEZvbywgbW9jaykKKyAgICAgICAgIyB0ZXN0IHBhdGNoaW5nIGEgc2Vjb25kIHRpbWUgd29ya3MKKyAgICAgICAgdGVzdCgpCisKKyAgICAgICAgbW9kdWxlID0gc3lzLm1vZHVsZXNbX19uYW1lX19dCisgICAgICAgIHRlc3QgPSBwYXRjaC5vYmplY3QobW9kdWxlLCAnRm9vJywgYXV0b3NwZWM9VHJ1ZSkoZnVuY3Rpb24pCisKKyAgICAgICAgbW9jayA9IHRlc3QoKQorICAgICAgICBzZWxmLmFzc2VydElzTm90KEZvbywgbW9jaykKKyAgICAgICAgIyB0ZXN0IHBhdGNoaW5nIGEgc2Vjb25kIHRpbWUgd29ya3MKKyAgICAgICAgdGVzdCgpCisKKworICAgIGRlZiB0ZXN0X2F1dG9zcGVjX2Z1bmN0aW9uKHNlbGYpOgorICAgICAgICBAcGF0Y2goJyVzLmZ1bmN0aW9uJyAlIF9fbmFtZV9fLCBhdXRvc3BlYz1UcnVlKQorICAgICAgICBkZWYgdGVzdChtb2NrKToKKyAgICAgICAgICAgIGZ1bmN0aW9uKDEpCisgICAgICAgICAgICBmdW5jdGlvbi5hc3NlcnRfY2FsbGVkX3dpdGgoMSkKKyAgICAgICAgICAgIGZ1bmN0aW9uKDIsIDMpCisgICAgICAgICAgICBmdW5jdGlvbi5hc3NlcnRfY2FsbGVkX3dpdGgoMiwgMykKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBmdW5jdGlvbikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBmdW5jdGlvbiwgJ2ZvbycpCisKKyAgICAgICAgdGVzdCgpCisKKworICAgIGRlZiB0ZXN0X2F1dG9zcGVjX2tleXdvcmRzKHNlbGYpOgorICAgICAgICBAcGF0Y2goJyVzLmZ1bmN0aW9uJyAlIF9fbmFtZV9fLCBhdXRvc3BlYz1UcnVlLAorICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPTMpCisgICAgICAgIGRlZiB0ZXN0KG1vY2tfZnVuY3Rpb24pOgorICAgICAgICAgICAgI3NlbGYuYXNzZXJ0RXF1YWwoZnVuY3Rpb24uYWJjLCAnZm9vJykKKyAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbigxLCAyKQorCisgICAgICAgIHJlc3VsdCA9IHRlc3QoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgMykKKworCisgICAgZGVmIHRlc3RfYXV0b3NwZWNfd2l0aF9uZXcoc2VsZik6CisgICAgICAgIHBhdGNoZXIgPSBwYXRjaCgnJXMuZnVuY3Rpb24nICUgX19uYW1lX18sIG5ldz0zLCBhdXRvc3BlYz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHBhdGNoZXIuc3RhcnQpCisKKyAgICAgICAgbW9kdWxlID0gc3lzLm1vZHVsZXNbX19uYW1lX19dCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaC5vYmplY3QobW9kdWxlLCAnZnVuY3Rpb24nLCBuZXc9MywgYXV0b3NwZWM9VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBwYXRjaGVyLnN0YXJ0KQorCisKKyAgICBkZWYgdGVzdF9hdXRvc3BlY193aXRoX29iamVjdChzZWxmKToKKyAgICAgICAgY2xhc3MgQmFyKEZvbyk6CisgICAgICAgICAgICBleHRyYSA9IFtdCisKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoKGZvb19uYW1lLCBhdXRvc3BlYz1CYXIpCisgICAgICAgIG1vY2sgPSBwYXRjaGVyLnN0YXJ0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKG1vY2ssIEJhcikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShtb2NrLmV4dHJhLCBsaXN0KQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcGF0Y2hlci5zdG9wKCkKKworCisgICAgZGVmIHRlc3RfYXV0b3NwZWNfaW5oZXJpdHMoc2VsZik6CisgICAgICAgIEZvb0NsYXNzID0gRm9vCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaChmb29fbmFtZSwgYXV0b3NwZWM9VHJ1ZSkKKyAgICAgICAgbW9jayA9IHBhdGNoZXIuc3RhcnQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobW9jaywgRm9vQ2xhc3MpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UobW9jaygzKSwgRm9vQ2xhc3MpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRjaGVyLnN0b3AoKQorCisKKyAgICBkZWYgdGVzdF9hdXRvc3BlY19uYW1lKHNlbGYpOgorICAgICAgICBwYXRjaGVyID0gcGF0Y2goZm9vX25hbWUsIGF1dG9zcGVjPVRydWUpCisgICAgICAgIG1vY2sgPSBwYXRjaGVyLnN0YXJ0KCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCIgbmFtZT0nRm9vJyIsIHJlcHIobW9jaykpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCIgbmFtZT0nRm9vLmYnIiwgcmVwcihtb2NrLmYpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigiIG5hbWU9J0ZvbygpJyIsIHJlcHIobW9jayhOb25lKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCIgbmFtZT0nRm9vKCkuZiciLCByZXByKG1vY2soTm9uZSkuZikpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRjaGVyLnN0b3AoKQorCisKKyAgICBkZWYgdGVzdF90cmFjZWJhY2tzKHNlbGYpOgorICAgICAgICBAcGF0Y2gub2JqZWN0KEZvbywgJ2YnLCBvYmplY3QoKSkKKyAgICAgICAgZGVmIHRlc3QoKToKKyAgICAgICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHRlc3QoKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBlcnIgPSBzeXMuZXhjX2luZm8oKQorCisgICAgICAgIHJlc3VsdCA9IHVuaXR0ZXN0LlRleHRUZXN0UmVzdWx0KE5vbmUsIE5vbmUsIDApCisgICAgICAgIHRyYWNlYmFjayA9IHJlc3VsdC5fZXhjX2luZm9fdG9fc3RyaW5nKGVyciwgc2VsZikKKyAgICAgICAgc2VsZi5hc3NlcnRJbigncmFpc2UgQXNzZXJ0aW9uRXJyb3InLCB0cmFjZWJhY2spCisKKworICAgIGRlZiB0ZXN0X25ld19jYWxsYWJsZV9wYXRjaChzZWxmKToKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoKGZvb19uYW1lLCBuZXdfY2FsbGFibGU9Tm9uQ2FsbGFibGVNYWdpY01vY2spCisKKyAgICAgICAgbTEgPSBwYXRjaGVyLnN0YXJ0KCkKKyAgICAgICAgcGF0Y2hlci5zdG9wKCkKKyAgICAgICAgbTIgPSBwYXRjaGVyLnN0YXJ0KCkKKyAgICAgICAgcGF0Y2hlci5zdG9wKCkKKworICAgICAgICBzZWxmLmFzc2VydElzTm90KG0xLCBtMikKKyAgICAgICAgZm9yIG1vY2sgaW4gbTEsIG0yOgorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RDYWxsYWJsZShtMSkKKworCisgICAgZGVmIHRlc3RfbmV3X2NhbGxhYmxlX3BhdGNoX29iamVjdChzZWxmKToKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoLm9iamVjdChGb28sICdmJywgbmV3X2NhbGxhYmxlPU5vbkNhbGxhYmxlTWFnaWNNb2NrKQorCisgICAgICAgIG0xID0gcGF0Y2hlci5zdGFydCgpCisgICAgICAgIHBhdGNoZXIuc3RvcCgpCisgICAgICAgIG0yID0gcGF0Y2hlci5zdGFydCgpCisgICAgICAgIHBhdGNoZXIuc3RvcCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdChtMSwgbTIpCisgICAgICAgIGZvciBtb2NrIGluIG0xLCBtMjoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90Q2FsbGFibGUobTEpCisKKworICAgIGRlZiB0ZXN0X25ld19jYWxsYWJsZV9rZXl3b3JkX2FyZ3VtZW50cyhzZWxmKToKKyAgICAgICAgY2xhc3MgQmFyKG9iamVjdCk6CisgICAgICAgICAgICBrd2FyZ3MgPSBOb25lCisgICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAgICAgICAgIEJhci5rd2FyZ3MgPSBrd2FyZ3MKKworICAgICAgICBwYXRjaGVyID0gcGF0Y2goZm9vX25hbWUsIG5ld19jYWxsYWJsZT1CYXIsIGFyZzE9MSwgYXJnMj0yKQorICAgICAgICBtID0gcGF0Y2hlci5zdGFydCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXModHlwZShtKSwgQmFyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChCYXIua3dhcmdzLCBkaWN0KGFyZzE9MSwgYXJnMj0yKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBhdGNoZXIuc3RvcCgpCisKKworICAgIGRlZiB0ZXN0X25ld19jYWxsYWJsZV9zcGVjKHNlbGYpOgorICAgICAgICBjbGFzcyBCYXIob2JqZWN0KToKKyAgICAgICAgICAgIGt3YXJncyA9IE5vbmUKKyAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgICAgICAgICAgQmFyLmt3YXJncyA9IGt3YXJncworCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaChmb29fbmFtZSwgbmV3X2NhbGxhYmxlPUJhciwgc3BlYz1CYXIpCisgICAgICAgIHBhdGNoZXIuc3RhcnQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEJhci5rd2FyZ3MsIGRpY3Qoc3BlYz1CYXIpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcGF0Y2hlci5zdG9wKCkKKworICAgICAgICBwYXRjaGVyID0gcGF0Y2goZm9vX25hbWUsIG5ld19jYWxsYWJsZT1CYXIsIHNwZWNfc2V0PUJhcikKKyAgICAgICAgcGF0Y2hlci5zdGFydCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQmFyLmt3YXJncywgZGljdChzcGVjX3NldD1CYXIpKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcGF0Y2hlci5zdG9wKCkKKworCisgICAgZGVmIHRlc3RfbmV3X2NhbGxhYmxlX2NyZWF0ZShzZWxmKToKKyAgICAgICAgbm9uX2V4aXN0ZW50X2F0dHIgPSAnJXMud2VlZWVlJyAlIGZvb19uYW1lCisgICAgICAgIHAgPSBwYXRjaChub25fZXhpc3RlbnRfYXR0ciwgbmV3X2NhbGxhYmxlPU5vbkNhbGxhYmxlTW9jaykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIHAuc3RhcnQpCisKKyAgICAgICAgcCA9IHBhdGNoKG5vbl9leGlzdGVudF9hdHRyLCBuZXdfY2FsbGFibGU9Tm9uQ2FsbGFibGVNb2NrLAorICAgICAgICAgICAgICAgICAgY3JlYXRlPVRydWUpCisgICAgICAgIG0gPSBwLnN0YXJ0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RDYWxsYWJsZShtLCBtYWdpYz1GYWxzZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHAuc3RvcCgpCisKKworICAgIGRlZiB0ZXN0X25ld19jYWxsYWJsZV9pbmNvbXBhdGlibGVfd2l0aF9uZXcoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgVmFsdWVFcnJvciwgcGF0Y2gsIGZvb19uYW1lLCBuZXc9b2JqZWN0KCksIG5ld19jYWxsYWJsZT1NYWdpY01vY2sKKyAgICAgICAgKQorICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKKyAgICAgICAgICAgIFZhbHVlRXJyb3IsIHBhdGNoLm9iamVjdCwgRm9vLCAnZicsIG5ldz1vYmplY3QoKSwKKyAgICAgICAgICAgIG5ld19jYWxsYWJsZT1NYWdpY01vY2sKKyAgICAgICAgKQorCisKKyAgICBkZWYgdGVzdF9uZXdfY2FsbGFibGVfaW5jb21wYXRpYmxlX3dpdGhfYXV0b3NwZWMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgVmFsdWVFcnJvciwgcGF0Y2gsIGZvb19uYW1lLCBuZXdfY2FsbGFibGU9TWFnaWNNb2NrLAorICAgICAgICAgICAgYXV0b3NwZWM9VHJ1ZQorICAgICAgICApCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAorICAgICAgICAgICAgVmFsdWVFcnJvciwgcGF0Y2gub2JqZWN0LCBGb28sICdmJywgbmV3X2NhbGxhYmxlPU1hZ2ljTW9jaywKKyAgICAgICAgICAgIGF1dG9zcGVjPVRydWUKKyAgICAgICAgKQorCisKKyAgICBkZWYgdGVzdF9uZXdfY2FsbGFibGVfaW5oZXJpdF9mb3JfbW9ja3Moc2VsZik6CisgICAgICAgIGNsYXNzIE1vY2tTdWIoTW9jayk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgTW9ja0NsYXNzZXMgPSAoCisgICAgICAgICAgICBOb25DYWxsYWJsZU1vY2ssIE5vbkNhbGxhYmxlTWFnaWNNb2NrLCBNYWdpY01vY2ssIE1vY2ssIE1vY2tTdWIKKyAgICAgICAgKQorICAgICAgICBmb3IgS2xhc3MgaW4gTW9ja0NsYXNzZXM6CisgICAgICAgICAgICBmb3IgYXJnIGluICdzcGVjJywgJ3NwZWNfc2V0JzoKKyAgICAgICAgICAgICAgICBrd2FyZ3MgPSB7YXJnOiBUcnVlfQorICAgICAgICAgICAgICAgIHAgPSBwYXRjaChmb29fbmFtZSwgbmV3X2NhbGxhYmxlPUtsYXNzLCAqKmt3YXJncykKKyAgICAgICAgICAgICAgICBtID0gcC5zdGFydCgpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZSA9IG0ucmV0dXJuX3ZhbHVlCisgICAgICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEF0dHJpYnV0ZUVycm9yLCBnZXRhdHRyLCBpbnN0YW5jZSwgJ3gnKQorICAgICAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgICAgIHAuc3RvcCgpCisKKworICAgIGRlZiB0ZXN0X25ld19jYWxsYWJsZV9pbmhlcml0X25vbl9tb2NrKHNlbGYpOgorICAgICAgICBjbGFzcyBOb3RBTW9jayhvYmplY3QpOgorICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNwZWMpOgorICAgICAgICAgICAgICAgIHNlbGYuc3BlYyA9IHNwZWMKKworICAgICAgICBwID0gcGF0Y2goZm9vX25hbWUsIG5ld19jYWxsYWJsZT1Ob3RBTW9jaywgc3BlYz1UcnVlKQorICAgICAgICBtID0gcC5zdGFydCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc19pbnN0YW5jZShtLCBOb3RBTW9jaykpCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgbSwgJ3JldHVybl92YWx1ZScpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwLnN0b3AoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5zcGVjLCBGb28pCisKKworICAgIGRlZiB0ZXN0X25ld19jYWxsYWJsZV9jbGFzc19kZWNvcmF0aW5nKHNlbGYpOgorICAgICAgICB0ZXN0ID0gc2VsZgorICAgICAgICBvcmlnaW5hbCA9IEZvbworICAgICAgICBjbGFzcyBTb21lVGVzdChvYmplY3QpOgorCisgICAgICAgICAgICBkZWYgX3Rlc3Qoc2VsZiwgbW9ja19mb28pOgorICAgICAgICAgICAgICAgIHRlc3QuYXNzZXJ0SXNOb3QoRm9vLCBvcmlnaW5hbCkKKyAgICAgICAgICAgICAgICB0ZXN0LmFzc2VydElzKEZvbywgbW9ja19mb28pCisgICAgICAgICAgICAgICAgdGVzdC5hc3NlcnRJc0luc3RhbmNlKEZvbywgU29tZUNsYXNzKQorCisgICAgICAgICAgICBkZWYgdGVzdF90d28oc2VsZiwgbW9ja19mb28pOgorICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3QobW9ja19mb28pCisgICAgICAgICAgICBkZWYgdGVzdF9vbmUoc2VsZiwgbW9ja19mb28pOgorICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3QobW9ja19mb28pCisKKyAgICAgICAgU29tZVRlc3QgPSBwYXRjaChmb29fbmFtZSwgbmV3X2NhbGxhYmxlPVNvbWVDbGFzcykoU29tZVRlc3QpCisgICAgICAgIFNvbWVUZXN0KCkudGVzdF9vbmUoKQorICAgICAgICBTb21lVGVzdCgpLnRlc3RfdHdvKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhGb28sIG9yaWdpbmFsKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9tdWx0aXBsZShzZWxmKToKKyAgICAgICAgb3JpZ2luYWxfZm9vID0gRm9vCisgICAgICAgIG9yaWdpbmFsX2YgPSBGb28uZgorICAgICAgICBvcmlnaW5hbF9nID0gRm9vLmcKKworICAgICAgICBwYXRjaGVyMSA9IHBhdGNoLm11bHRpcGxlKGZvb19uYW1lLCBmPTEsIGc9MikKKyAgICAgICAgcGF0Y2hlcjIgPSBwYXRjaC5tdWx0aXBsZShGb28sIGY9MSwgZz0yKQorCisgICAgICAgIGZvciBwYXRjaGVyIGluIHBhdGNoZXIxLCBwYXRjaGVyMjoKKyAgICAgICAgICAgIHBhdGNoZXIuc3RhcnQoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoRm9vLCBvcmlnaW5hbF9mb28pCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGb28uZiwgMSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5nLCAyKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBwYXRjaGVyLnN0b3AoKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKEZvbywgb3JpZ2luYWxfZm9vKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGb28uZiwgb3JpZ2luYWxfZikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmcsIG9yaWdpbmFsX2cpCisKKworICAgICAgICBAcGF0Y2gubXVsdGlwbGUoZm9vX25hbWUsIGY9MywgZz00KQorICAgICAgICBkZWYgdGVzdCgpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhGb28sIG9yaWdpbmFsX2ZvbykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmYsIDMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5nLCA0KQorCisgICAgICAgIHRlc3QoKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9tdWx0aXBsZV9ub19rd2FyZ3Moc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHBhdGNoLm11bHRpcGxlLCBmb29fbmFtZSkKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGF0Y2gubXVsdGlwbGUsIEZvbykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfbXVsdGlwbGVfY3JlYXRlX21vY2tzKHNlbGYpOgorICAgICAgICBvcmlnaW5hbF9mb28gPSBGb28KKyAgICAgICAgb3JpZ2luYWxfZiA9IEZvby5mCisgICAgICAgIG9yaWdpbmFsX2cgPSBGb28uZworCisgICAgICAgIEBwYXRjaC5tdWx0aXBsZShmb29fbmFtZSwgZj1ERUZBVUxULCBnPTMsIGZvbz1ERUZBVUxUKQorICAgICAgICBkZWYgdGVzdChmLCBmb28pOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhGb28sIG9yaWdpbmFsX2ZvbykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoRm9vLmYsIGYpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5nLCAzKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhGb28uZm9vLCBmb28pCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfaW5zdGFuY2UoZiwgTWFnaWNNb2NrKSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc19pbnN0YW5jZShmb28sIE1hZ2ljTW9jaykpCisKKyAgICAgICAgdGVzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmYsIG9yaWdpbmFsX2YpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmcsIG9yaWdpbmFsX2cpCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX211bHRpcGxlX2NyZWF0ZV9tb2Nrc19kaWZmZXJlbnRfb3JkZXIoc2VsZik6CisgICAgICAgICMgYnVnIHJldmVhbGVkIGJ5IEp5dGhvbiEKKyAgICAgICAgb3JpZ2luYWxfZiA9IEZvby5mCisgICAgICAgIG9yaWdpbmFsX2cgPSBGb28uZworCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaC5vYmplY3QoRm9vLCAnZicsIDMpCisgICAgICAgIHBhdGNoZXIuYXR0cmlidXRlX25hbWUgPSAnZicKKworICAgICAgICBvdGhlciA9IHBhdGNoLm9iamVjdChGb28sICdnJywgREVGQVVMVCkKKyAgICAgICAgb3RoZXIuYXR0cmlidXRlX25hbWUgPSAnZycKKyAgICAgICAgcGF0Y2hlci5hZGRpdGlvbmFsX3BhdGNoZXJzID0gW290aGVyXQorCisgICAgICAgIEBwYXRjaGVyCisgICAgICAgIGRlZiB0ZXN0KGcpOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhGb28uZywgZykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmYsIDMpCisKKyAgICAgICAgdGVzdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmYsIG9yaWdpbmFsX2YpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmcsIG9yaWdpbmFsX2cpCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX211bHRpcGxlX3N0YWNrZWRfZGVjb3JhdG9ycyhzZWxmKToKKyAgICAgICAgb3JpZ2luYWxfZm9vID0gRm9vCisgICAgICAgIG9yaWdpbmFsX2YgPSBGb28uZgorICAgICAgICBvcmlnaW5hbF9nID0gRm9vLmcKKworICAgICAgICBAcGF0Y2gubXVsdGlwbGUoZm9vX25hbWUsIGY9REVGQVVMVCkKKyAgICAgICAgQHBhdGNoLm11bHRpcGxlKGZvb19uYW1lLCBmb289REVGQVVMVCkKKyAgICAgICAgQHBhdGNoKGZvb19uYW1lICsgJy5nJykKKyAgICAgICAgZGVmIHRlc3QxKGcsICoqa3dhcmdzKToKKyAgICAgICAgICAgIF90ZXN0KGcsICoqa3dhcmdzKQorCisgICAgICAgIEBwYXRjaC5tdWx0aXBsZShmb29fbmFtZSwgZj1ERUZBVUxUKQorICAgICAgICBAcGF0Y2goZm9vX25hbWUgKyAnLmcnKQorICAgICAgICBAcGF0Y2gubXVsdGlwbGUoZm9vX25hbWUsIGZvbz1ERUZBVUxUKQorICAgICAgICBkZWYgdGVzdDIoZywgKiprd2FyZ3MpOgorICAgICAgICAgICAgX3Rlc3QoZywgKiprd2FyZ3MpCisKKyAgICAgICAgQHBhdGNoKGZvb19uYW1lICsgJy5nJykKKyAgICAgICAgQHBhdGNoLm11bHRpcGxlKGZvb19uYW1lLCBmPURFRkFVTFQpCisgICAgICAgIEBwYXRjaC5tdWx0aXBsZShmb29fbmFtZSwgZm9vPURFRkFVTFQpCisgICAgICAgIGRlZiB0ZXN0MyhnLCAqKmt3YXJncyk6CisgICAgICAgICAgICBfdGVzdChnLCAqKmt3YXJncykKKworICAgICAgICBkZWYgX3Rlc3QoZywgKiprd2FyZ3MpOgorICAgICAgICAgICAgZiA9IGt3YXJncy5wb3AoJ2YnKQorICAgICAgICAgICAgZm9vID0ga3dhcmdzLnBvcCgnZm9vJykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2Uoa3dhcmdzKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKEZvbywgb3JpZ2luYWxfZm9vKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhGb28uZiwgZikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoRm9vLmcsIGcpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKEZvby5mb28sIGZvbykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShpc19pbnN0YW5jZShmLCBNYWdpY01vY2spKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzX2luc3RhbmNlKGcsIE1hZ2ljTW9jaykpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfaW5zdGFuY2UoZm9vLCBNYWdpY01vY2spKQorCisgICAgICAgIHRlc3QxKCkKKyAgICAgICAgdGVzdDIoKQorICAgICAgICB0ZXN0MygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmYsIG9yaWdpbmFsX2YpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmcsIG9yaWdpbmFsX2cpCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX211bHRpcGxlX2NyZWF0ZV9tb2Nrc19wYXRjaGVyKHNlbGYpOgorICAgICAgICBvcmlnaW5hbF9mb28gPSBGb28KKyAgICAgICAgb3JpZ2luYWxfZiA9IEZvby5mCisgICAgICAgIG9yaWdpbmFsX2cgPSBGb28uZworCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaC5tdWx0aXBsZShmb29fbmFtZSwgZj1ERUZBVUxULCBnPTMsIGZvbz1ERUZBVUxUKQorCisgICAgICAgIHJlc3VsdCA9IHBhdGNoZXIuc3RhcnQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBmID0gcmVzdWx0WydmJ10KKyAgICAgICAgICAgIGZvbyA9IHJlc3VsdFsnZm9vJ10KKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2V0KHJlc3VsdCksIHNldChbJ2YnLCAnZm9vJ10pKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKEZvbywgb3JpZ2luYWxfZm9vKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhGb28uZiwgZikKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoRm9vLmZvbywgZm9vKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzX2luc3RhbmNlKGYsIE1hZ2ljTW9jaykpCisgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNfaW5zdGFuY2UoZm9vLCBNYWdpY01vY2spKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcGF0Y2hlci5zdG9wKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5mLCBvcmlnaW5hbF9mKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5nLCBvcmlnaW5hbF9nKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9tdWx0aXBsZV9kZWNvcmF0aW5nX2NsYXNzKHNlbGYpOgorICAgICAgICB0ZXN0ID0gc2VsZgorICAgICAgICBvcmlnaW5hbF9mb28gPSBGb28KKyAgICAgICAgb3JpZ2luYWxfZiA9IEZvby5mCisgICAgICAgIG9yaWdpbmFsX2cgPSBGb28uZworCisgICAgICAgIGNsYXNzIFNvbWVUZXN0KG9iamVjdCk6CisKKyAgICAgICAgICAgIGRlZiBfdGVzdChzZWxmLCBmLCBmb28pOgorICAgICAgICAgICAgICAgIHRlc3QuYXNzZXJ0SXMoRm9vLCBvcmlnaW5hbF9mb28pCisgICAgICAgICAgICAgICAgdGVzdC5hc3NlcnRJcyhGb28uZiwgZikKKyAgICAgICAgICAgICAgICB0ZXN0LmFzc2VydEVxdWFsKEZvby5nLCAzKQorICAgICAgICAgICAgICAgIHRlc3QuYXNzZXJ0SXMoRm9vLmZvbywgZm9vKQorICAgICAgICAgICAgICAgIHRlc3QuYXNzZXJ0VHJ1ZShpc19pbnN0YW5jZShmLCBNYWdpY01vY2spKQorICAgICAgICAgICAgICAgIHRlc3QuYXNzZXJ0VHJ1ZShpc19pbnN0YW5jZShmb28sIE1hZ2ljTW9jaykpCisKKyAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmLCBmLCBmb28pOgorICAgICAgICAgICAgICAgIHNlbGYuX3Rlc3QoZiwgZm9vKQorICAgICAgICAgICAgZGVmIHRlc3Rfb25lKHNlbGYsIGYsIGZvbyk6CisgICAgICAgICAgICAgICAgc2VsZi5fdGVzdChmLCBmb28pCisKKyAgICAgICAgU29tZVRlc3QgPSBwYXRjaC5tdWx0aXBsZSgKKyAgICAgICAgICAgIGZvb19uYW1lLCBmPURFRkFVTFQsIGc9MywgZm9vPURFRkFVTFQKKyAgICAgICAgKShTb21lVGVzdCkKKworICAgICAgICB0aGluZyA9IFNvbWVUZXN0KCkKKyAgICAgICAgdGhpbmcudGVzdF9vbmUoKQorICAgICAgICB0aGluZy50ZXN0X3R3bygpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGb28uZiwgb3JpZ2luYWxfZikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGb28uZywgb3JpZ2luYWxfZykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfbXVsdGlwbGVfY3JlYXRlKHNlbGYpOgorICAgICAgICBwYXRjaGVyID0gcGF0Y2gubXVsdGlwbGUoRm9vLCBibGFtPSdibGFtJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIHBhdGNoZXIuc3RhcnQpCisKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoLm11bHRpcGxlKEZvbywgYmxhbT0nYmxhbScsIGNyZWF0ZT1UcnVlKQorICAgICAgICBwYXRjaGVyLnN0YXJ0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGb28uYmxhbSwgJ2JsYW0nKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcGF0Y2hlci5zdG9wKCkKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhhc2F0dHIoRm9vLCAnYmxhbScpKQorCisKKyAgICBkZWYgdGVzdF9wYXRjaF9tdWx0aXBsZV9zcGVjX3NldChzZWxmKToKKyAgICAgICAgIyBpZiBzcGVjX3NldCB3b3JrcyB0aGVuIHdlIGNhbiBhc3N1bWUgdGhhdCBzcGVjIGFuZCBhdXRvc3BlYyBhbHNvCisgICAgICAgICMgd29yayBhcyB0aGUgdW5kZXJseWluZyBtYWNoaW5lcnkgaXMgdGhlIHNhbWUKKyAgICAgICAgcGF0Y2hlciA9IHBhdGNoLm11bHRpcGxlKEZvbywgZm9vPURFRkFVTFQsIHNwZWNfc2V0PVsnYScsICdiJ10pCisgICAgICAgIHJlc3VsdCA9IHBhdGNoZXIuc3RhcnQoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5mb28sIHJlc3VsdFsnZm9vJ10pCisgICAgICAgICAgICBGb28uZm9vLmEoMSkKKyAgICAgICAgICAgIEZvby5mb28uYigyKQorICAgICAgICAgICAgRm9vLmZvby5hLmFzc2VydF9jYWxsZWRfd2l0aCgxKQorICAgICAgICAgICAgRm9vLmZvby5iLmFzc2VydF9jYWxsZWRfd2l0aCgyKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIHNldGF0dHIsIEZvby5mb28sICdjJywgTm9uZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHBhdGNoZXIuc3RvcCgpCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX211bHRpcGxlX25ld19jYWxsYWJsZShzZWxmKToKKyAgICAgICAgY2xhc3MgVGhpbmcob2JqZWN0KToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBwYXRjaGVyID0gcGF0Y2gubXVsdGlwbGUoCisgICAgICAgICAgICBGb28sIGY9REVGQVVMVCwgZz1ERUZBVUxULCBuZXdfY2FsbGFibGU9VGhpbmcKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSBwYXRjaGVyLnN0YXJ0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhGb28uZiwgcmVzdWx0WydmJ10pCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKEZvby5nLCByZXN1bHRbJ2cnXSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShGb28uZiwgVGhpbmcpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UoRm9vLmcsIFRoaW5nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJc05vdChGb28uZiwgRm9vLmcpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwYXRjaGVyLnN0b3AoKQorCisKKyAgICBkZWYgdGVzdF9uZXN0ZWRfcGF0Y2hfZmFpbHVyZShzZWxmKToKKyAgICAgICAgb3JpZ2luYWxfZiA9IEZvby5mCisgICAgICAgIG9yaWdpbmFsX2cgPSBGb28uZworCisgICAgICAgIEBwYXRjaC5vYmplY3QoRm9vLCAnZycsIDEpCisgICAgICAgIEBwYXRjaC5vYmplY3QoRm9vLCAnbWlzc2luZycsIDEpCisgICAgICAgIEBwYXRjaC5vYmplY3QoRm9vLCAnZicsIDEpCisgICAgICAgIGRlZiB0aGluZzEoKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBAcGF0Y2gub2JqZWN0KEZvbywgJ21pc3NpbmcnLCAxKQorICAgICAgICBAcGF0Y2gub2JqZWN0KEZvbywgJ2cnLCAxKQorICAgICAgICBAcGF0Y2gub2JqZWN0KEZvbywgJ2YnLCAxKQorICAgICAgICBkZWYgdGhpbmcyKCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgQHBhdGNoLm9iamVjdChGb28sICdnJywgMSkKKyAgICAgICAgQHBhdGNoLm9iamVjdChGb28sICdmJywgMSkKKyAgICAgICAgQHBhdGNoLm9iamVjdChGb28sICdtaXNzaW5nJywgMSkKKyAgICAgICAgZGVmIHRoaW5nMygpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGZvciBmdW5jIGluIHRoaW5nMSwgdGhpbmcyLCB0aGluZzM6CisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZnVuYykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmYsIG9yaWdpbmFsX2YpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5nLCBvcmlnaW5hbF9nKQorCisKKyAgICBkZWYgdGVzdF9uZXdfY2FsbGFibGVfZmFpbHVyZShzZWxmKToKKyAgICAgICAgb3JpZ2luYWxfZiA9IEZvby5mCisgICAgICAgIG9yaWdpbmFsX2cgPSBGb28uZworICAgICAgICBvcmlnaW5hbF9mb28gPSBGb28uZm9vCisKKyAgICAgICAgZGVmIGNyYXNoZXIoKToKKyAgICAgICAgICAgIHJhaXNlIE5hbWVFcnJvcignY3Jhc2hlcicpCisKKyAgICAgICAgQHBhdGNoLm9iamVjdChGb28sICdnJywgMSkKKyAgICAgICAgQHBhdGNoLm9iamVjdChGb28sICdmb28nLCBuZXdfY2FsbGFibGU9Y3Jhc2hlcikKKyAgICAgICAgQHBhdGNoLm9iamVjdChGb28sICdmJywgMSkKKyAgICAgICAgZGVmIHRoaW5nMSgpOgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIEBwYXRjaC5vYmplY3QoRm9vLCAnZm9vJywgbmV3X2NhbGxhYmxlPWNyYXNoZXIpCisgICAgICAgIEBwYXRjaC5vYmplY3QoRm9vLCAnZycsIDEpCisgICAgICAgIEBwYXRjaC5vYmplY3QoRm9vLCAnZicsIDEpCisgICAgICAgIGRlZiB0aGluZzIoKToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBAcGF0Y2gub2JqZWN0KEZvbywgJ2cnLCAxKQorICAgICAgICBAcGF0Y2gub2JqZWN0KEZvbywgJ2YnLCAxKQorICAgICAgICBAcGF0Y2gub2JqZWN0KEZvbywgJ2ZvbycsIG5ld19jYWxsYWJsZT1jcmFzaGVyKQorICAgICAgICBkZWYgdGhpbmczKCk6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgZm9yIGZ1bmMgaW4gdGhpbmcxLCB0aGluZzIsIHRoaW5nMzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5hbWVFcnJvciwgZnVuYykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmYsIG9yaWdpbmFsX2YpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5nLCBvcmlnaW5hbF9nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGb28uZm9vLCBvcmlnaW5hbF9mb28pCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX211bHRpcGxlX2ZhaWx1cmUoc2VsZik6CisgICAgICAgIG9yaWdpbmFsX2YgPSBGb28uZgorICAgICAgICBvcmlnaW5hbF9nID0gRm9vLmcKKworICAgICAgICBwYXRjaGVyID0gcGF0Y2gub2JqZWN0KEZvbywgJ2YnLCAxKQorICAgICAgICBwYXRjaGVyLmF0dHJpYnV0ZV9uYW1lID0gJ2YnCisKKyAgICAgICAgZ29vZCA9IHBhdGNoLm9iamVjdChGb28sICdnJywgMSkKKyAgICAgICAgZ29vZC5hdHRyaWJ1dGVfbmFtZSA9ICdnJworCisgICAgICAgIGJhZCA9IHBhdGNoLm9iamVjdChGb28sICdtaXNzaW5nJywgMSkKKyAgICAgICAgYmFkLmF0dHJpYnV0ZV9uYW1lID0gJ21pc3NpbmcnCisKKyAgICAgICAgZm9yIGFkZGl0aW9uYWxzIGluIFtnb29kLCBiYWRdLCBbYmFkLCBnb29kXToKKyAgICAgICAgICAgIHBhdGNoZXIuYWRkaXRpb25hbF9wYXRjaGVycyA9IGFkZGl0aW9uYWxzCisKKyAgICAgICAgICAgIEBwYXRjaGVyCisgICAgICAgICAgICBkZWYgZnVuYygpOgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGZ1bmMpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5mLCBvcmlnaW5hbF9mKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGb28uZywgb3JpZ2luYWxfZykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfbXVsdGlwbGVfbmV3X2NhbGxhYmxlX2ZhaWx1cmUoc2VsZik6CisgICAgICAgIG9yaWdpbmFsX2YgPSBGb28uZgorICAgICAgICBvcmlnaW5hbF9nID0gRm9vLmcKKyAgICAgICAgb3JpZ2luYWxfZm9vID0gRm9vLmZvbworCisgICAgICAgIGRlZiBjcmFzaGVyKCk6CisgICAgICAgICAgICByYWlzZSBOYW1lRXJyb3IoJ2NyYXNoZXInKQorCisgICAgICAgIHBhdGNoZXIgPSBwYXRjaC5vYmplY3QoRm9vLCAnZicsIDEpCisgICAgICAgIHBhdGNoZXIuYXR0cmlidXRlX25hbWUgPSAnZicKKworICAgICAgICBnb29kID0gcGF0Y2gub2JqZWN0KEZvbywgJ2cnLCAxKQorICAgICAgICBnb29kLmF0dHJpYnV0ZV9uYW1lID0gJ2cnCisKKyAgICAgICAgYmFkID0gcGF0Y2gub2JqZWN0KEZvbywgJ2ZvbycsIG5ld19jYWxsYWJsZT1jcmFzaGVyKQorICAgICAgICBiYWQuYXR0cmlidXRlX25hbWUgPSAnZm9vJworCisgICAgICAgIGZvciBhZGRpdGlvbmFscyBpbiBbZ29vZCwgYmFkXSwgW2JhZCwgZ29vZF06CisgICAgICAgICAgICBwYXRjaGVyLmFkZGl0aW9uYWxfcGF0Y2hlcnMgPSBhZGRpdGlvbmFscworCisgICAgICAgICAgICBAcGF0Y2hlcgorICAgICAgICAgICAgZGVmIGZ1bmMoKToKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKE5hbWVFcnJvciwgZnVuYykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRm9vLmYsIG9yaWdpbmFsX2YpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5nLCBvcmlnaW5hbF9nKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGb28uZm9vLCBvcmlnaW5hbF9mb28pCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX211bHRpcGxlX3N0cmluZ19zdWJjbGFzc2VzKHNlbGYpOgorICAgICAgICBGb28gPSB0eXBlKCdGb28nLCAoc3RyLCksIHsnZmlzaCc6ICd0YXN0eSd9KQorICAgICAgICBmb28gPSBGb28oKQorICAgICAgICBAcGF0Y2gubXVsdGlwbGUoZm9vLCBmaXNoPSduZWFybHkgZ29uZScpCisgICAgICAgIGRlZiB0ZXN0KCk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5maXNoLCAnbmVhcmx5IGdvbmUnKQorCisgICAgICAgIHRlc3QoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5maXNoLCAndGFzdHknKQorCisKKyAgICBAcGF0Y2goJ3VuaXR0ZXN0Lm1vY2sucGF0Y2guVEVTVF9QUkVGSVgnLCAnZm9vJykKKyAgICBkZWYgdGVzdF9wYXRjaF90ZXN0X3ByZWZpeChzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICB0aGluZyA9ICdvcmlnaW5hbCcKKworICAgICAgICAgICAgZGVmIGZvb19vbmUoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYudGhpbmcKKyAgICAgICAgICAgIGRlZiBmb29fdHdvKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnRoaW5nCisgICAgICAgICAgICBkZWYgdGVzdF9vbmUoc2VsZik6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYudGhpbmcKKyAgICAgICAgICAgIGRlZiB0ZXN0X3R3byhzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi50aGluZworCisgICAgICAgIEZvbyA9IHBhdGNoLm9iamVjdChGb28sICd0aGluZycsICdjaGFuZ2VkJykoRm9vKQorCisgICAgICAgIGZvbyA9IEZvbygpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLmZvb19vbmUoKSwgJ2NoYW5nZWQnKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5mb29fdHdvKCksICdjaGFuZ2VkJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28udGVzdF9vbmUoKSwgJ29yaWdpbmFsJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28udGVzdF90d28oKSwgJ29yaWdpbmFsJykKKworCisgICAgQHBhdGNoKCd1bml0dGVzdC5tb2NrLnBhdGNoLlRFU1RfUFJFRklYJywgJ2JhcicpCisgICAgZGVmIHRlc3RfcGF0Y2hfZGljdF90ZXN0X3ByZWZpeChzZWxmKToKKyAgICAgICAgY2xhc3MgRm9vKG9iamVjdCk6CisgICAgICAgICAgICBkZWYgYmFyX29uZShzZWxmKToKKyAgICAgICAgICAgICAgICByZXR1cm4gZGljdCh0aGVfZGljdCkKKyAgICAgICAgICAgIGRlZiBiYXJfdHdvKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBkaWN0KHRoZV9kaWN0KQorICAgICAgICAgICAgZGVmIHRlc3Rfb25lKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBkaWN0KHRoZV9kaWN0KQorICAgICAgICAgICAgZGVmIHRlc3RfdHdvKHNlbGYpOgorICAgICAgICAgICAgICAgIHJldHVybiBkaWN0KHRoZV9kaWN0KQorCisgICAgICAgIHRoZV9kaWN0ID0geydrZXknOiAnb3JpZ2luYWwnfQorICAgICAgICBGb28gPSBwYXRjaC5kaWN0KHRoZV9kaWN0LCBrZXk9J2NoYW5nZWQnKShGb28pCisKKyAgICAgICAgZm9vID1Gb28oKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvby5iYXJfb25lKCksIHsna2V5JzogJ2NoYW5nZWQnfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28uYmFyX3R3bygpLCB7J2tleSc6ICdjaGFuZ2VkJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLnRlc3Rfb25lKCksIHsna2V5JzogJ29yaWdpbmFsJ30pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLnRlc3RfdHdvKCksIHsna2V5JzogJ29yaWdpbmFsJ30pCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX3dpdGhfc3BlY19tb2NrX3JlcHIoc2VsZik6CisgICAgICAgIGZvciBhcmcgaW4gKCdzcGVjJywgJ2F1dG9zcGVjJywgJ3NwZWNfc2V0Jyk6CisgICAgICAgICAgICBwID0gcGF0Y2goJyVzLlNvbWVDbGFzcycgJSBfX25hbWVfXywgKip7YXJnOiBUcnVlfSkKKyAgICAgICAgICAgIG0gPSBwLnN0YXJ0KCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKCIgbmFtZT0nU29tZUNsYXNzJyIsIHJlcHIobSkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigiIG5hbWU9J1NvbWVDbGFzcy5jbGFzc19hdHRyaWJ1dGUnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHIobS5jbGFzc19hdHRyaWJ1dGUpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oIiBuYW1lPSdTb21lQ2xhc3MoKSciLCByZXByKG0oKSkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRJbigiIG5hbWU9J1NvbWVDbGFzcygpLmNsYXNzX2F0dHJpYnV0ZSciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcihtKCkuY2xhc3NfYXR0cmlidXRlKSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgcC5zdG9wKCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfbmVzdGVkX2F1dG9zcGVjX3JlcHIoc2VsZik6CisgICAgICAgIHdpdGggcGF0Y2goJ3VuaXR0ZXN0LnRlc3QudGVzdG1vY2suc3VwcG9ydCcsIGF1dG9zcGVjPVRydWUpIGFzIG06CisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCIgbmFtZT0nc3VwcG9ydC5Tb21lQ2xhc3Mud2liYmxlKCknIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcihtLlNvbWVDbGFzcy53aWJibGUoKSkpCisgICAgICAgICAgICBzZWxmLmFzc2VydEluKCIgbmFtZT0nc3VwcG9ydC5Tb21lQ2xhc3MoKS53aWJibGUoKSciLAorICAgICAgICAgICAgICAgICAgICAgICAgICByZXByKG0uU29tZUNsYXNzKCkud2liYmxlKCkpKQorCisKKworICAgIGRlZiB0ZXN0X21vY2tfY2FsbHNfd2l0aF9wYXRjaChzZWxmKToKKyAgICAgICAgZm9yIGFyZyBpbiAoJ3NwZWMnLCAnYXV0b3NwZWMnLCAnc3BlY19zZXQnKToKKyAgICAgICAgICAgIHAgPSBwYXRjaCgnJXMuU29tZUNsYXNzJyAlIF9fbmFtZV9fLCAqKnthcmc6IFRydWV9KQorICAgICAgICAgICAgbSA9IHAuc3RhcnQoKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG0ud2liYmxlKCkKKworICAgICAgICAgICAgICAgIGthbGxzID0gW2NhbGwud2liYmxlKCldCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLm1vY2tfY2FsbHMsIGthbGxzKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5tZXRob2RfY2FsbHMsIGthbGxzKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS53aWJibGUubW9ja19jYWxscywgW2NhbGwoKV0pCisKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBtKCkKKyAgICAgICAgICAgICAgICBrYWxscy5hcHBlbmQoY2FsbCgpKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobS5tb2NrX2NhbGxzLCBrYWxscykKKworICAgICAgICAgICAgICAgIHJlc3VsdC53aWJibGUoKQorICAgICAgICAgICAgICAgIGthbGxzLmFwcGVuZChjYWxsKCkud2liYmxlKCkpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtLm1vY2tfY2FsbHMsIGthbGxzKQorCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1bHQubW9ja19jYWxscywgW2NhbGwud2liYmxlKCldKQorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LndpYmJsZS5tb2NrX2NhbGxzLCBbY2FsbCgpXSkKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdC5tZXRob2RfY2FsbHMsIFtjYWxsLndpYmJsZSgpXSkKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgcC5zdG9wKCkKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfaW1wb3J0c19sYXppbHkoc2VsZik6CisgICAgICAgIHN5cy5tb2R1bGVzLnBvcCgnc3F1aXp6JywgTm9uZSkKKworICAgICAgICBwMSA9IHBhdGNoKCdzcXVpenouc3F1b3p6JykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW1wb3J0RXJyb3IsIHAxLnN0YXJ0KQorCisgICAgICAgIHNxdWl6eiA9IE1vY2soKQorICAgICAgICBzcXVpenouc3F1b3p6ID0gNgorICAgICAgICBzeXMubW9kdWxlc1snc3F1aXp6J10gPSBzcXVpenoKKyAgICAgICAgcDEgPSBwYXRjaCgnc3F1aXp6LnNxdW96eicpCisgICAgICAgIHNxdWl6ei5zcXVvenogPSAzCisgICAgICAgIHAxLnN0YXJ0KCkKKyAgICAgICAgcDEuc3RvcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3F1aXp6LnNxdW96eiwgMykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfcHJvcG9ncmF0ZXNfZXhjX29uX2V4aXQoc2VsZik6CisgICAgICAgIGNsYXNzIGhvbGRlcjoKKyAgICAgICAgICAgIGV4Y19pbmZvID0gTm9uZSwgTm9uZSwgTm9uZQorCisgICAgICAgIGNsYXNzIGN1c3RvbV9wYXRjaChfcGF0Y2gpOgorICAgICAgICAgICAgZGVmIF9fZXhpdF9fKHNlbGYsIGV0eXBlPU5vbmUsIHZhbD1Ob25lLCB0Yj1Ob25lKToKKyAgICAgICAgICAgICAgICBfcGF0Y2guX19leGl0X18oc2VsZiwgZXR5cGUsIHZhbCwgdGIpCisgICAgICAgICAgICAgICAgaG9sZGVyLmV4Y19pbmZvID0gZXR5cGUsIHZhbCwgdGIKKyAgICAgICAgICAgIHN0b3AgPSBfX2V4aXRfXworCisgICAgICAgIGRlZiB3aXRoX2N1c3RvbV9wYXRjaCh0YXJnZXQpOgorICAgICAgICAgICAgZ2V0dGVyLCBhdHRyaWJ1dGUgPSBfZ2V0X3RhcmdldCh0YXJnZXQpCisgICAgICAgICAgICByZXR1cm4gY3VzdG9tX3BhdGNoKAorICAgICAgICAgICAgICAgIGdldHRlciwgYXR0cmlidXRlLCBERUZBVUxULCBOb25lLCBGYWxzZSwgTm9uZSwKKyAgICAgICAgICAgICAgICBOb25lLCBOb25lLCB7fQorICAgICAgICAgICAgKQorCisgICAgICAgIEB3aXRoX2N1c3RvbV9wYXRjaCgnc3F1aXp6LnNxdW96eicpCisgICAgICAgIGRlZiB0ZXN0KG1vY2spOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yCisKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yLCB0ZXN0KQorICAgICAgICBzZWxmLmFzc2VydElzKGhvbGRlci5leGNfaW5mb1swXSwgUnVudGltZUVycm9yKQorICAgICAgICBzZWxmLmFzc2VydElzTm90Tm9uZShob2xkZXIuZXhjX2luZm9bMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2VwdGlvbiB2YWx1ZSBub3QgcHJvcGdhdGVkJykKKyAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5vbmUoaG9sZGVyLmV4Y19pbmZvWzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleGNlcHRpb24gdHJhY2ViYWNrIG5vdCBwcm9wZ2F0ZWQnKQorCisKKyAgICBkZWYgdGVzdF9jcmVhdGVfYW5kX3NwZWNzKHNlbGYpOgorICAgICAgICBmb3Iga3dhcmcgaW4gKCdzcGVjJywgJ3NwZWNfc2V0JywgJ2F1dG9zcGVjJyk6CisgICAgICAgICAgICBwID0gcGF0Y2goJyVzLmRvZXNub3RleGlzdCcgJSBfX25hbWVfXywgY3JlYXRlPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgKip7a3dhcmc6IFRydWV9KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBwLnN0YXJ0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoTmFtZUVycm9yLCBsYW1iZGE6IGRvZXNub3RleGlzdCkKKworICAgICAgICAgICAgIyBjaGVjayB0aGF0IHNwZWMgd2l0aCBjcmVhdGUgaXMgaW5ub2N1b3VzIGlmIHRoZSBvcmlnaW5hbCBleGlzdHMKKyAgICAgICAgICAgIHAgPSBwYXRjaChNT0ROQU1FLCBjcmVhdGU9VHJ1ZSwgKip7a3dhcmc6IFRydWV9KQorICAgICAgICAgICAgcC5zdGFydCgpCisgICAgICAgICAgICBwLnN0b3AoKQorCisKKyAgICBkZWYgdGVzdF9tdWx0aXBsZV9zcGVjcyhzZWxmKToKKyAgICAgICAgb3JpZ2luYWwgPSBQVE1vZHVsZQorICAgICAgICBmb3Iga3dhcmcgaW4gKCdzcGVjJywgJ3NwZWNfc2V0Jyk6CisgICAgICAgICAgICBwID0gcGF0Y2goTU9ETkFNRSwgYXV0b3NwZWM9MCwgKip7a3dhcmc6IDB9KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVHlwZUVycm9yLCBwLnN0YXJ0KQorICAgICAgICAgICAgc2VsZi5hc3NlcnRJcyhQVE1vZHVsZSwgb3JpZ2luYWwpCisKKyAgICAgICAgZm9yIGt3YXJnIGluICgnc3BlYycsICdhdXRvc3BlYycpOgorICAgICAgICAgICAgcCA9IHBhdGNoKE1PRE5BTUUsIHNwZWNfc2V0PTAsICoqe2t3YXJnOiAwfSkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvciwgcC5zdGFydCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMoUFRNb2R1bGUsIG9yaWdpbmFsKQorCisgICAgICAgIGZvciBrd2FyZyBpbiAoJ3NwZWNfc2V0JywgJ2F1dG9zcGVjJyk6CisgICAgICAgICAgICBwID0gcGF0Y2goTU9ETkFNRSwgc3BlYz0wLCAqKntrd2FyZzogMH0pCisgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhUeXBlRXJyb3IsIHAuc3RhcnQpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKFBUTW9kdWxlLCBvcmlnaW5hbCkKKworCisgICAgZGVmIHRlc3Rfc3BlY3NfZmFsc2VfaW5zdGVhZF9vZl9ub25lKHNlbGYpOgorICAgICAgICBwID0gcGF0Y2goTU9ETkFNRSwgc3BlYz1GYWxzZSwgc3BlY19zZXQ9RmFsc2UsIGF1dG9zcGVjPUZhbHNlKQorICAgICAgICBtb2NrID0gcC5zdGFydCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgbm8gc3BlYyBzaG91bGQgaGF2ZSBiZWVuIHNldCwgc28gYXR0cmlidXRlIGFjY2VzcyBzaG91bGQgbm90IGZhaWwKKyAgICAgICAgICAgIG1vY2suZG9lc19ub3RfZXhpc3QKKyAgICAgICAgICAgIG1vY2suZG9lc19ub3RfZXhpc3QgPSAzCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBwLnN0b3AoKQorCisKKyAgICBkZWYgdGVzdF9mYWxzZXlfc3BlYyhzZWxmKToKKyAgICAgICAgZm9yIGt3YXJnIGluICgnc3BlYycsICdhdXRvc3BlYycsICdzcGVjX3NldCcpOgorICAgICAgICAgICAgcCA9IHBhdGNoKE1PRE5BTUUsICoqe2t3YXJnOiAwfSkKKyAgICAgICAgICAgIG0gPSBwLnN0YXJ0KCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgZ2V0YXR0ciwgbSwgJ2RvZXNub3RleGl0JykKKyAgICAgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAgICAgcC5zdG9wKCkKKworCisgICAgZGVmIHRlc3Rfc3BlY19zZXRfdHJ1ZShzZWxmKToKKyAgICAgICAgZm9yIGt3YXJnIGluICgnc3BlYycsICdhdXRvc3BlYycpOgorICAgICAgICAgICAgcCA9IHBhdGNoKE1PRE5BTUUsIHNwZWNfc2V0PVRydWUsICoqe2t3YXJnOiBUcnVlfSkKKyAgICAgICAgICAgIG0gPSBwLnN0YXJ0KCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBdHRyaWJ1dGVFcnJvciwgc2V0YXR0ciwgbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9lc25vdGV4aXN0JywgJ3NvbWV0aGluZycpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGdldGF0dHIsIG0sICdkb2Vzbm90ZXhpc3QnKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBwLnN0b3AoKQorCisKKyAgICBkZWYgdGVzdF9jYWxsYWJsZV9zcGVjX2FzX2xpc3Qoc2VsZik6CisgICAgICAgIHNwZWMgPSAoJ19fY2FsbF9fJywpCisgICAgICAgIHAgPSBwYXRjaChNT0ROQU1FLCBzcGVjPXNwZWMpCisgICAgICAgIG0gPSBwLnN0YXJ0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGNhbGxhYmxlKG0pKQorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgcC5zdG9wKCkKKworCisgICAgZGVmIHRlc3Rfbm90X2NhbGxhYmxlX3NwZWNfYXNfbGlzdChzZWxmKToKKyAgICAgICAgc3BlYyA9ICgnZm9vJywgJ2JhcicpCisgICAgICAgIHAgPSBwYXRjaChNT0ROQU1FLCBzcGVjPXNwZWMpCisgICAgICAgIG0gPSBwLnN0YXJ0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShjYWxsYWJsZShtKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHAuc3RvcCgpCisKKworICAgIGRlZiB0ZXN0X3BhdGNoX3N0b3BhbGwoc2VsZik6CisgICAgICAgIHVubGluayA9IG9zLnVubGluaworICAgICAgICBjaGRpciA9IG9zLmNoZGlyCisgICAgICAgIHBhdGggPSBvcy5wYXRoCisgICAgICAgIHBhdGNoKCdvcy51bmxpbmsnLCBzb21ldGhpbmcpLnN0YXJ0KCkKKyAgICAgICAgcGF0Y2goJ29zLmNoZGlyJywgc29tZXRoaW5nX2Vsc2UpLnN0YXJ0KCkKKworICAgICAgICBAcGF0Y2goJ29zLnBhdGgnKQorICAgICAgICBkZWYgcGF0Y2hlZChtb2NrX3BhdGgpOgorICAgICAgICAgICAgcGF0Y2guc3RvcGFsbCgpCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKG9zLnBhdGgsIG1vY2tfcGF0aCkKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMob3MudW5saW5rLCB1bmxpbmspCisgICAgICAgICAgICBzZWxmLmFzc2VydElzKG9zLmNoZGlyLCBjaGRpcikKKworICAgICAgICBwYXRjaGVkKCkKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhvcy5wYXRoLCBwYXRoKQorCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3RzZW50aW5lbC5weSBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3RzZW50aW5lbC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZmRhNjhlCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3VuaXR0ZXN0L3Rlc3QvdGVzdG1vY2svdGVzdHNlbnRpbmVsLnB5CkBAIC0wLDAgKzEsMjggQEAKK2ltcG9ydCB1bml0dGVzdAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBzZW50aW5lbCwgREVGQVVMVAorCisKK2NsYXNzIFNlbnRpbmVsVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisKKyAgICBkZWYgdGVzdFNlbnRpbmVscyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZW50aW5lbC53aGF0ZXZlciwgc2VudGluZWwud2hhdGV2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlbnRpbmVsIG5vdCBzdG9yZWQnKQorICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKHNlbnRpbmVsLndoYXRldmVyLCBzZW50aW5lbC53aGF0ZXZlcmVsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlbnRpbmVsIHNob3VsZCBiZSB1bmlxdWUnKQorCisKKyAgICBkZWYgdGVzdFNlbnRpbmVsTmFtZShzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIoc2VudGluZWwud2hhdGV2ZXIpLCAnc2VudGluZWwud2hhdGV2ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICdzZW50aW5lbCBuYW1lIGluY29ycmVjdCcpCisKKworICAgIGRlZiB0ZXN0REVGQVVMVChzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKERFRkFVTFQgaXMgc2VudGluZWwuREVGQVVMVCkKKworICAgIGRlZiB0ZXN0QmFzZXMoc2VsZik6CisgICAgICAgICMgSWYgdGhpcyBkb2Vzbid0IHJhaXNlIGFuIEF0dHJpYnV0ZUVycm9yIHRoZW4gaGVscChtb2NrKSBpcyBicm9rZW4KKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoQXR0cmlidXRlRXJyb3IsIGxhbWJkYTogc2VudGluZWwuX19iYXNlc19fKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0bW9jay90ZXN0d2l0aC5weSBiL0xpYi91bml0dGVzdC90ZXN0L3Rlc3Rtb2NrL3Rlc3R3aXRoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhMGNmYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MaWIvdW5pdHRlc3QvdGVzdC90ZXN0bW9jay90ZXN0d2l0aC5weQpAQCAtMCwwICsxLDE3NiBAQAoraW1wb3J0IHVuaXR0ZXN0Citmcm9tIHdhcm5pbmdzIGltcG9ydCBjYXRjaF93YXJuaW5ncworCitmcm9tIHVuaXR0ZXN0LnRlc3QudGVzdG1vY2suc3VwcG9ydCBpbXBvcnQgaXNfaW5zdGFuY2UKK2Zyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgTWFnaWNNb2NrLCBNb2NrLCBwYXRjaCwgc2VudGluZWwsIG1vY2tfb3BlbiwgY2FsbAorCisKKworc29tZXRoaW5nICA9IHNlbnRpbmVsLlNvbWV0aGluZworc29tZXRoaW5nX2Vsc2UgID0gc2VudGluZWwuU29tZXRoaW5nRWxzZQorCisKKworY2xhc3MgV2l0aFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3Rfd2l0aF9zdGF0ZW1lbnQoc2VsZik6CisgICAgICAgIHdpdGggcGF0Y2goJyVzLnNvbWV0aGluZycgJSBfX25hbWVfXywgc2VudGluZWwuU29tZXRoaW5nMik6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWV0aGluZywgc2VudGluZWwuU29tZXRoaW5nMiwgInVucGF0Y2hlZCIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZXRoaW5nLCBzZW50aW5lbC5Tb21ldGhpbmcpCisKKworICAgIGRlZiB0ZXN0X3dpdGhfc3RhdGVtZW50X2V4Y2VwdGlvbihzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgd2l0aCBwYXRjaCgnJXMuc29tZXRoaW5nJyAlIF9fbmFtZV9fLCBzZW50aW5lbC5Tb21ldGhpbmcyKToKKyAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWV0aGluZywgc2VudGluZWwuU29tZXRoaW5nMiwgInVucGF0Y2hlZCIpCisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdwb3cnKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mYWlsKCJwYXRjaCBzd2FsbG93ZWQgZXhjZXB0aW9uIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21ldGhpbmcsIHNlbnRpbmVsLlNvbWV0aGluZykKKworCisgICAgZGVmIHRlc3Rfd2l0aF9zdGF0ZW1lbnRfYXMoc2VsZik6CisgICAgICAgIHdpdGggcGF0Y2goJyVzLnNvbWV0aGluZycgJSBfX25hbWVfXykgYXMgbW9ja19zb21ldGhpbmc6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWV0aGluZywgbW9ja19zb21ldGhpbmcsICJ1bnBhdGNoZWQiKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGlzX2luc3RhbmNlKG1vY2tfc29tZXRoaW5nLCBNYWdpY01vY2spLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXRjaGluZyB3cm9uZyB0eXBlIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21ldGhpbmcsIHNlbnRpbmVsLlNvbWV0aGluZykKKworCisgICAgZGVmIHRlc3RfcGF0Y2hfb2JqZWN0X3dpdGhfc3RhdGVtZW50KHNlbGYpOgorICAgICAgICBjbGFzcyBGb28ob2JqZWN0KToKKyAgICAgICAgICAgIHNvbWV0aGluZyA9ICdmb28nCisgICAgICAgIG9yaWdpbmFsID0gRm9vLnNvbWV0aGluZworICAgICAgICB3aXRoIHBhdGNoLm9iamVjdChGb28sICdzb21ldGhpbmcnKToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoRm9vLnNvbWV0aGluZywgb3JpZ2luYWwsICJ1bnBhdGNoZWQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZvby5zb21ldGhpbmcsIG9yaWdpbmFsKQorCisKKyAgICBkZWYgdGVzdF93aXRoX3N0YXRlbWVudF9uZXN0ZWQoc2VsZik6CisgICAgICAgIHdpdGggY2F0Y2hfd2FybmluZ3MocmVjb3JkPVRydWUpOgorICAgICAgICAgICAgd2l0aCBwYXRjaCgnJXMuc29tZXRoaW5nJyAlIF9fbmFtZV9fKSBhcyBtb2NrX3NvbWV0aGluZywgcGF0Y2goJyVzLnNvbWV0aGluZ19lbHNlJyAlIF9fbmFtZV9fKSBhcyBtb2NrX3NvbWV0aGluZ19lbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZXRoaW5nLCBtb2NrX3NvbWV0aGluZywgInVucGF0Y2hlZCIpCisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21ldGhpbmdfZWxzZSwgbW9ja19zb21ldGhpbmdfZWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnBhdGNoZWQiKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZXRoaW5nLCBzZW50aW5lbC5Tb21ldGhpbmcpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZXRoaW5nX2Vsc2UsIHNlbnRpbmVsLlNvbWV0aGluZ0Vsc2UpCisKKworICAgIGRlZiB0ZXN0X3dpdGhfc3RhdGVtZW50X3NwZWNpZmllZChzZWxmKToKKyAgICAgICAgd2l0aCBwYXRjaCgnJXMuc29tZXRoaW5nJyAlIF9fbmFtZV9fLCBzZW50aW5lbC5QYXRjaGVkKSBhcyBtb2NrX3NvbWV0aGluZzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZXRoaW5nLCBtb2NrX3NvbWV0aGluZywgInVucGF0Y2hlZCIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG1vY2tfc29tZXRoaW5nLCBzZW50aW5lbC5QYXRjaGVkLCAid3JvbmcgcGF0Y2giKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWV0aGluZywgc2VudGluZWwuU29tZXRoaW5nKQorCisKKyAgICBkZWYgdGVzdENvbnRleHRNYW5hZ2VyTW9ja2luZyhzZWxmKToKKyAgICAgICAgbW9jayA9IE1vY2soKQorICAgICAgICBtb2NrLl9fZW50ZXJfXyA9IE1vY2soKQorICAgICAgICBtb2NrLl9fZXhpdF9fID0gTW9jaygpCisgICAgICAgIG1vY2suX19leGl0X18ucmV0dXJuX3ZhbHVlID0gRmFsc2UKKworICAgICAgICB3aXRoIG1vY2sgYXMgbToKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobSwgbW9jay5fX2VudGVyX18ucmV0dXJuX3ZhbHVlKQorICAgICAgICBtb2NrLl9fZW50ZXJfXy5hc3NlcnRfY2FsbGVkX3dpdGgoKQorICAgICAgICBtb2NrLl9fZXhpdF9fLmFzc2VydF9jYWxsZWRfd2l0aChOb25lLCBOb25lLCBOb25lKQorCisKKyAgICBkZWYgdGVzdF9jb250ZXh0X21hbmFnZXJfd2l0aF9tYWdpY19tb2NrKHNlbGYpOgorICAgICAgICBtb2NrID0gTWFnaWNNb2NrKCkKKworICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFR5cGVFcnJvcik6CisgICAgICAgICAgICB3aXRoIG1vY2s6CisgICAgICAgICAgICAgICAgJ2ZvbycgKyAzCisgICAgICAgIG1vY2suX19lbnRlcl9fLmFzc2VydF9jYWxsZWRfd2l0aCgpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtb2NrLl9fZXhpdF9fLmNhbGxlZCkKKworCisgICAgZGVmIHRlc3Rfd2l0aF9zdGF0ZW1lbnRfc2FtZV9hdHRyaWJ1dGUoc2VsZik6CisgICAgICAgIHdpdGggcGF0Y2goJyVzLnNvbWV0aGluZycgJSBfX25hbWVfXywgc2VudGluZWwuUGF0Y2hlZCkgYXMgbW9ja19zb21ldGhpbmc6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWV0aGluZywgbW9ja19zb21ldGhpbmcsICJ1bnBhdGNoZWQiKQorCisgICAgICAgICAgICB3aXRoIHBhdGNoKCclcy5zb21ldGhpbmcnICUgX19uYW1lX18pIGFzIG1vY2tfYWdhaW46CisgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzb21ldGhpbmcsIG1vY2tfYWdhaW4sICJ1bnBhdGNoZWQiKQorCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWV0aGluZywgbW9ja19zb21ldGhpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXN0b3JlZCB3aXRoIHdyb25nIGluc3RhbmNlIikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWV0aGluZywgc2VudGluZWwuU29tZXRoaW5nLCAibm90IHJlc3RvcmVkIikKKworCisgICAgZGVmIHRlc3Rfd2l0aF9zdGF0ZW1lbnRfaW1icmljYXRlZChzZWxmKToKKyAgICAgICAgd2l0aCBwYXRjaCgnJXMuc29tZXRoaW5nJyAlIF9fbmFtZV9fKSBhcyBtb2NrX3NvbWV0aGluZzoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZXRoaW5nLCBtb2NrX3NvbWV0aGluZywgInVucGF0Y2hlZCIpCisKKyAgICAgICAgICAgIHdpdGggcGF0Y2goJyVzLnNvbWV0aGluZ19lbHNlJyAlIF9fbmFtZV9fKSBhcyBtb2NrX3NvbWV0aGluZ19lbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc29tZXRoaW5nX2Vsc2UsIG1vY2tfc29tZXRoaW5nX2Vsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5wYXRjaGVkIikKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWV0aGluZywgc2VudGluZWwuU29tZXRoaW5nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNvbWV0aGluZ19lbHNlLCBzZW50aW5lbC5Tb21ldGhpbmdFbHNlKQorCisKKyAgICBkZWYgdGVzdF9kaWN0X2NvbnRleHRfbWFuYWdlcihzZWxmKToKKyAgICAgICAgZm9vID0ge30KKyAgICAgICAgd2l0aCBwYXRjaC5kaWN0KGZvbywgeydhJzogJ2InfSk6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvbywgeydhJzogJ2InfSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb28sIHt9KQorCisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoTmFtZUVycm9yKToKKyAgICAgICAgICAgIHdpdGggcGF0Y2guZGljdChmb28sIHsnYSc6ICdiJ30pOgorICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm9vLCB7J2EnOiAnYid9KQorICAgICAgICAgICAgICAgIHJhaXNlIE5hbWVFcnJvcignS29ucmFkJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZvbywge30pCisKKworCitjbGFzcyBUZXN0TW9ja09wZW4odW5pdHRlc3QuVGVzdENhc2UpOgorCisgICAgZGVmIHRlc3RfbW9ja19vcGVuKHNlbGYpOgorICAgICAgICBtb2NrID0gbW9ja19vcGVuKCkKKyAgICAgICAgd2l0aCBwYXRjaCgnJXMub3BlbicgJSBfX25hbWVfXywgbW9jaywgY3JlYXRlPVRydWUpIGFzIHBhdGNoZWQ6CisgICAgICAgICAgICBzZWxmLmFzc2VydElzKHBhdGNoZWQsIG1vY2spCisgICAgICAgICAgICBvcGVuKCdmb28nKQorCisgICAgICAgIG1vY2suYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgoJ2ZvbycpCisKKworICAgIGRlZiB0ZXN0X21vY2tfb3Blbl9jb250ZXh0X21hbmFnZXIoc2VsZik6CisgICAgICAgIG1vY2sgPSBtb2NrX29wZW4oKQorICAgICAgICBoYW5kbGUgPSBtb2NrLnJldHVybl92YWx1ZQorICAgICAgICB3aXRoIHBhdGNoKCclcy5vcGVuJyAlIF9fbmFtZV9fLCBtb2NrLCBjcmVhdGU9VHJ1ZSk6CisgICAgICAgICAgICB3aXRoIG9wZW4oJ2ZvbycpIGFzIGY6CisgICAgICAgICAgICAgICAgZi5yZWFkKCkKKworICAgICAgICBleHBlY3RlZF9jYWxscyA9IFtjYWxsKCdmb28nKSwgY2FsbCgpLl9fZW50ZXJfXygpLCBjYWxsKCkucmVhZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsKCkuX19leGl0X18oTm9uZSwgTm9uZSwgTm9uZSldCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobW9jay5tb2NrX2NhbGxzLCBleHBlY3RlZF9jYWxscykKKyAgICAgICAgc2VsZi5hc3NlcnRJcyhmLCBoYW5kbGUpCisKKworICAgIGRlZiB0ZXN0X2V4cGxpY2l0X21vY2soc2VsZik6CisgICAgICAgIG1vY2sgPSBNYWdpY01vY2soKQorICAgICAgICBtb2NrX29wZW4obW9jaykKKworICAgICAgICB3aXRoIHBhdGNoKCclcy5vcGVuJyAlIF9fbmFtZV9fLCBtb2NrLCBjcmVhdGU9VHJ1ZSkgYXMgcGF0Y2hlZDoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SXMocGF0Y2hlZCwgbW9jaykKKyAgICAgICAgICAgIG9wZW4oJ2ZvbycpCisKKyAgICAgICAgbW9jay5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aCgnZm9vJykKKworCisgICAgZGVmIHRlc3RfcmVhZF9kYXRhKHNlbGYpOgorICAgICAgICBtb2NrID0gbW9ja19vcGVuKHJlYWRfZGF0YT0nZm9vJykKKyAgICAgICAgd2l0aCBwYXRjaCgnJXMub3BlbicgJSBfX25hbWVfXywgbW9jaywgY3JlYXRlPVRydWUpOgorICAgICAgICAgICAgaCA9IG9wZW4oJ2JhcicpCisgICAgICAgICAgICByZXN1bHQgPSBoLnJlYWQoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzdWx0LCAnZm9vJykKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGliL3VybGxpYi9lcnJvci5weSBiL0xpYi91cmxsaWIvZXJyb3IucHkKaW5kZXggNDBhZGQ0MS4uYzFkZmM0MCAxMDA2NDQKLS0tIGEvTGliL3VybGxpYi9lcnJvci5weQorKysgYi9MaWIvdXJsbGliL2Vycm9yLnB5CkBAIC0xMyw2ICsxMyw5IEBACiAKIGltcG9ydCB1cmxsaWIucmVzcG9uc2UKIAorX19hbGxfXyA9IFsnVVJMRXJyb3InLCAnSFRUUEVycm9yJywgJ0NvbnRlbnRUb29TaG9ydEVycm9yJ10KKworCiAjIGRvIHRoZXNlIGVycm9yIGNsYXNzZXMgbWFrZSBzZW5zZT8KICMgbWFrZSBzdXJlIGFsbCBvZiB0aGUgSU9FcnJvciBzdHVmZiBpcyBvdmVycmlkZGVuLiAgd2UganVzdCB3YW50IHRvIGJlCiAjIHN1YnR5cGVzLgpkaWZmIC0tZ2l0IGEvTGliL3VybGxpYi9yZXF1ZXN0LnB5IGIvTGliL3VybGxpYi9yZXF1ZXN0LnB5CmluZGV4IGQ2ZjlmOWEuLjY3YjRjNzkgMTAwNjQ0Ci0tLSBhL0xpYi91cmxsaWIvcmVxdWVzdC5weQorKysgYi9MaWIvdXJsbGliL3JlcXVlc3QucHkKQEAgLTg5LDE0ICs4OSwxNiBAQAogaW1wb3J0IGlvCiBpbXBvcnQgb3MKIGltcG9ydCBwb3NpeHBhdGgKLWltcG9ydCByYW5kb20KIGltcG9ydCByZQogaW1wb3J0IHNvY2tldAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgY29udGV4dGxpYgogaW1wb3J0IHdhcm5pbmdzCiAKKwogZnJvbSB1cmxsaWIuZXJyb3IgaW1wb3J0IFVSTEVycm9yLCBIVFRQRXJyb3IsIENvbnRlbnRUb29TaG9ydEVycm9yCiBmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgKAogICAgIHVybHBhcnNlLCB1cmxzcGxpdCwgdXJsam9pbiwgdW53cmFwLCBxdW90ZSwgdW5xdW90ZSwKQEAgLTExMiwyMSArMTE0LDQwIEBACiBlbHNlOgogICAgIF9oYXZlX3NzbCA9IFRydWUKIAorX19hbGxfXyA9IFsKKyAgICAjIENsYXNzZXMKKyAgICAnUmVxdWVzdCcsICdPcGVuZXJEaXJlY3RvcicsICdCYXNlSGFuZGxlcicsICdIVFRQRGVmYXVsdEVycm9ySGFuZGxlcicsCisgICAgJ0hUVFBSZWRpcmVjdEhhbmRsZXInLCAnSFRUUENvb2tpZVByb2Nlc3NvcicsICdQcm94eUhhbmRsZXInLAorICAgICdIVFRQUGFzc3dvcmRNZ3InLCAnSFRUUFBhc3N3b3JkTWdyV2l0aERlZmF1bHRSZWFsbScsCisgICAgJ0Fic3RyYWN0QmFzaWNBdXRoSGFuZGxlcicsICdIVFRQQmFzaWNBdXRoSGFuZGxlcicsICdQcm94eUJhc2ljQXV0aEhhbmRsZXInLAorICAgICdBYnN0cmFjdERpZ2VzdEF1dGhIYW5kbGVyJywgJ0hUVFBEaWdlc3RBdXRoSGFuZGxlcicsICdQcm94eURpZ2VzdEF1dGhIYW5kbGVyJywKKyAgICAnSFRUUEhhbmRsZXInLCAnRmlsZUhhbmRsZXInLCAnRlRQSGFuZGxlcicsICdDYWNoZUZUUEhhbmRsZXInLAorICAgICdVbmtub3duSGFuZGxlcicsICdIVFRQRXJyb3JQcm9jZXNzb3InLAorICAgICMgRnVuY3Rpb25zCisgICAgJ3VybG9wZW4nLCAnaW5zdGFsbF9vcGVuZXInLCAnYnVpbGRfb3BlbmVyJywKKyAgICAncGF0aG5hbWUydXJsJywgJ3VybDJwYXRobmFtZScsICdnZXRwcm94aWVzJywKKyAgICAjIExlZ2FjeSBpbnRlcmZhY2UKKyAgICAndXJscmV0cmlldmUnLCAndXJsY2xlYW51cCcsICdVUkxvcGVuZXInLCAnRmFuY3lVUkxvcGVuZXInLAorXQorCiAjIHVzZWQgaW4gVXNlci1BZ2VudCBoZWFkZXIgc2VudAogX192ZXJzaW9uX18gPSBzeXMudmVyc2lvbls6M10KIAogX29wZW5lciA9IE5vbmUKIGRlZiB1cmxvcGVuKHVybCwgZGF0YT1Ob25lLCB0aW1lb3V0PXNvY2tldC5fR0xPQkFMX0RFRkFVTFRfVElNRU9VVCwKLSAgICAgICAgICAgICosIGNhZmlsZT1Ob25lLCBjYXBhdGg9Tm9uZSk6CisgICAgICAgICAgICAqLCBjYWZpbGU9Tm9uZSwgY2FwYXRoPU5vbmUsIGNhZGVmYXVsdD1GYWxzZSk6CiAgICAgZ2xvYmFsIF9vcGVuZXIKLSAgICBpZiBjYWZpbGUgb3IgY2FwYXRoOgorICAgIGlmIGNhZmlsZSBvciBjYXBhdGggb3IgY2FkZWZhdWx0OgogICAgICAgICBpZiBub3QgX2hhdmVfc3NsOgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignU1NMIHN1cHBvcnQgbm90IGF2YWlsYWJsZScpCiAgICAgICAgIGNvbnRleHQgPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfU1NMdjIzKQogICAgICAgICBjb250ZXh0Lm9wdGlvbnMgfD0gc3NsLk9QX05PX1NTTHYyCi0gICAgICAgIGlmIGNhZmlsZSBvciBjYXBhdGg6CisgICAgICAgIGlmIGNhZmlsZSBvciBjYXBhdGggb3IgY2FkZWZhdWx0OgogICAgICAgICAgICAgY29udGV4dC52ZXJpZnlfbW9kZSA9IHNzbC5DRVJUX1JFUVVJUkVECi0gICAgICAgICAgICBjb250ZXh0LmxvYWRfdmVyaWZ5X2xvY2F0aW9ucyhjYWZpbGUsIGNhcGF0aCkKKyAgICAgICAgICAgIGlmIGNhZmlsZSBvciBjYXBhdGg6CisgICAgICAgICAgICAgICAgY29udGV4dC5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY2FmaWxlLCBjYXBhdGgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbnRleHQuc2V0X2RlZmF1bHRfdmVyaWZ5X3BhdGhzKCkKICAgICAgICAgICAgIGNoZWNrX2hvc3RuYW1lID0gVHJ1ZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgY2hlY2tfaG9zdG5hbWUgPSBGYWxzZQpAQCAtMTQyLDE3ICsxNjMsNzggQEAKICAgICBnbG9iYWwgX29wZW5lcgogICAgIF9vcGVuZXIgPSBvcGVuZXIKIAotIyBUT0RPKGpoeWx0b24pOiBNYWtlIHRoaXMgd29yayB3aXRoIHRoZSBzYW1lIGdsb2JhbCBvcGVuZXIuCi1fdXJsb3BlbmVyID0gTm9uZQorX3VybF90ZW1wZmlsZXMgPSBbXQogZGVmIHVybHJldHJpZXZlKHVybCwgZmlsZW5hbWU9Tm9uZSwgcmVwb3J0aG9vaz1Ob25lLCBkYXRhPU5vbmUpOgotICAgIGdsb2JhbCBfdXJsb3BlbmVyCi0gICAgaWYgbm90IF91cmxvcGVuZXI6Ci0gICAgICAgIF91cmxvcGVuZXIgPSBGYW5jeVVSTG9wZW5lcigpCi0gICAgcmV0dXJuIF91cmxvcGVuZXIucmV0cmlldmUodXJsLCBmaWxlbmFtZSwgcmVwb3J0aG9vaywgZGF0YSkKKyAgICAiIiIKKyAgICBSZXRyaWV2ZSBhIFVSTCBpbnRvIGEgdGVtcG9yYXJ5IGxvY2F0aW9uIG9uIGRpc2suCisKKyAgICBSZXF1aXJlcyBhIFVSTCBhcmd1bWVudC4gSWYgYSBmaWxlbmFtZSBpcyBwYXNzZWQsIGl0IGlzIHVzZWQgYXMKKyAgICB0aGUgdGVtcG9yYXJ5IGZpbGUgbG9jYXRpb24uIFRoZSByZXBvcnRob29rIGFyZ3VtZW50IHNob3VsZCBiZQorICAgIGEgY2FsbGFibGUgdGhhdCBhY2NlcHRzIGEgYmxvY2sgbnVtYmVyLCBhIHJlYWQgc2l6ZSwgYW5kIHRoZQorICAgIHRvdGFsIGZpbGUgc2l6ZSBvZiB0aGUgVVJMIHRhcmdldC4gVGhlIGRhdGEgYXJndW1lbnQgc2hvdWxkIGJlCisgICAgdmFsaWQgVVJMIGVuY29kZWQgZGF0YS4KKworICAgIElmIGEgZmlsZW5hbWUgaXMgcGFzc2VkIGFuZCB0aGUgVVJMIHBvaW50cyB0byBhIGxvY2FsIHJlc291cmNlLAorICAgIHRoZSByZXN1bHQgaXMgYSBjb3B5IGZyb20gbG9jYWwgZmlsZSB0byBuZXcgZmlsZS4KKworICAgIFJldHVybnMgYSB0dXBsZSBjb250YWluaW5nIHRoZSBwYXRoIHRvIHRoZSBuZXdseSBjcmVhdGVkCisgICAgZGF0YSBmaWxlIGFzIHdlbGwgYXMgdGhlIHJlc3VsdGluZyBIVFRQTWVzc2FnZSBvYmplY3QuCisgICAgIiIiCisgICAgdXJsX3R5cGUsIHBhdGggPSBzcGxpdHR5cGUodXJsKQorCisgICAgd2l0aCBjb250ZXh0bGliLmNsb3NpbmcodXJsb3Blbih1cmwsIGRhdGEpKSBhcyBmcDoKKyAgICAgICAgaGVhZGVycyA9IGZwLmluZm8oKQorCisgICAgICAgICMgSnVzdCByZXR1cm4gdGhlIGxvY2FsIHBhdGggYW5kIHRoZSAiaGVhZGVycyIgZm9yIGZpbGU6Ly8KKyAgICAgICAgIyBVUkxzLiBObyBzZW5zZSBpbiBwZXJmb3JtaW5nIGEgY29weSB1bmxlc3MgcmVxdWVzdGVkLgorICAgICAgICBpZiB1cmxfdHlwZSA9PSAiZmlsZSIgYW5kIG5vdCBmaWxlbmFtZToKKyAgICAgICAgICAgIHJldHVybiBvcy5wYXRoLm5vcm1wYXRoKHBhdGgpLCBoZWFkZXJzCisKKyAgICAgICAgIyBIYW5kbGUgdGVtcG9yYXJ5IGZpbGUgc2V0dXAuCisgICAgICAgIGlmIGZpbGVuYW1lOgorICAgICAgICAgICAgdGZwID0gb3BlbihmaWxlbmFtZSwgJ3diJykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRmcCA9IHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZShkZWxldGU9RmFsc2UpCisgICAgICAgICAgICBmaWxlbmFtZSA9IHRmcC5uYW1lCisgICAgICAgICAgICBfdXJsX3RlbXBmaWxlcy5hcHBlbmQoZmlsZW5hbWUpCisKKyAgICAgICAgd2l0aCB0ZnA6CisgICAgICAgICAgICByZXN1bHQgPSBmaWxlbmFtZSwgaGVhZGVycworICAgICAgICAgICAgYnMgPSAxMDI0KjgKKyAgICAgICAgICAgIHNpemUgPSAtMQorICAgICAgICAgICAgcmVhZCA9IDAKKyAgICAgICAgICAgIGJsb2NrbnVtID0gMAorICAgICAgICAgICAgaWYgImNvbnRlbnQtbGVuZ3RoIiBpbiBoZWFkZXJzOgorICAgICAgICAgICAgICAgIHNpemUgPSBpbnQoaGVhZGVyc1siQ29udGVudC1MZW5ndGgiXSkKKworICAgICAgICAgICAgaWYgcmVwb3J0aG9vazoKKyAgICAgICAgICAgICAgICByZXBvcnRob29rKGJsb2NrbnVtLCAwLCBzaXplKQorCisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIGJsb2NrID0gZnAucmVhZChicykKKyAgICAgICAgICAgICAgICBpZiBub3QgYmxvY2s6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgcmVhZCArPSBsZW4oYmxvY2spCisgICAgICAgICAgICAgICAgdGZwLndyaXRlKGJsb2NrKQorICAgICAgICAgICAgICAgIGJsb2NrbnVtICs9IDEKKyAgICAgICAgICAgICAgICBpZiByZXBvcnRob29rOgorICAgICAgICAgICAgICAgICAgICByZXBvcnRob29rKGJsb2NrbnVtLCBsZW4oYmxvY2spLCBzaXplKQorCisgICAgaWYgc2l6ZSA+PSAwIGFuZCByZWFkIDwgc2l6ZToKKyAgICAgICAgcmFpc2UgQ29udGVudFRvb1Nob3J0RXJyb3IoCisgICAgICAgICAgICAicmV0cmlldmFsIGluY29tcGxldGU6IGdvdCBvbmx5ICVpIG91dCBvZiAlaSBieXRlcyIKKyAgICAgICAgICAgICUgKHJlYWQsIHNpemUpLCByZXN1bHQpCisKKyAgICByZXR1cm4gcmVzdWx0CiAKIGRlZiB1cmxjbGVhbnVwKCk6Ci0gICAgaWYgX3VybG9wZW5lcjoKLSAgICAgICAgX3VybG9wZW5lci5jbGVhbnVwKCkKKyAgICBmb3IgdGVtcF9maWxlIGluIF91cmxfdGVtcGZpbGVzOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcy51bmxpbmsodGVtcF9maWxlKQorICAgICAgICBleGNlcHQgRW52aXJvbm1lbnRFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKworICAgIGRlbCBfdXJsX3RlbXBmaWxlc1s6XQogICAgIGdsb2JhbCBfb3BlbmVyCiAgICAgaWYgX29wZW5lcjoKICAgICAgICAgX29wZW5lciA9IE5vbmUKQEAgLTE3OCw3ICsyNjAsOCBAQAogY2xhc3MgUmVxdWVzdDoKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmwsIGRhdGE9Tm9uZSwgaGVhZGVycz17fSwKLSAgICAgICAgICAgICAgICAgb3JpZ2luX3JlcV9ob3N0PU5vbmUsIHVudmVyaWZpYWJsZT1GYWxzZSk6CisgICAgICAgICAgICAgICAgIG9yaWdpbl9yZXFfaG9zdD1Ob25lLCB1bnZlcmlmaWFibGU9RmFsc2UsCisgICAgICAgICAgICAgICAgIG1ldGhvZD1Ob25lKToKICAgICAgICAgIyB1bndyYXAoJzxVUkw6dHlwZTovL2hvc3QvcGF0aD4nKSAtLT4gJ3R5cGU6Ly9ob3N0L3BhdGgnCiAgICAgICAgIHNlbGYuZnVsbF91cmwgPSB1bndyYXAodXJsKQogICAgICAgICBzZWxmLmZ1bGxfdXJsLCBzZWxmLmZyYWdtZW50ID0gc3BsaXR0YWcoc2VsZi5mdWxsX3VybCkKQEAgLTE5Miw2ICsyNzUsNyBAQAogICAgICAgICAgICAgb3JpZ2luX3JlcV9ob3N0ID0gcmVxdWVzdF9ob3N0KHNlbGYpCiAgICAgICAgIHNlbGYub3JpZ2luX3JlcV9ob3N0ID0gb3JpZ2luX3JlcV9ob3N0CiAgICAgICAgIHNlbGYudW52ZXJpZmlhYmxlID0gdW52ZXJpZmlhYmxlCisgICAgICAgIHNlbGYubWV0aG9kID0gbWV0aG9kCiAgICAgICAgIHNlbGYuX3BhcnNlKCkKIAogICAgIGRlZiBfcGFyc2Uoc2VsZik6CkBAIC0yMDMsNDEgKzI4Nyw2MCBAQAogICAgICAgICAgICAgc2VsZi5ob3N0ID0gdW5xdW90ZShzZWxmLmhvc3QpCiAKICAgICBkZWYgZ2V0X21ldGhvZChzZWxmKToKLSAgICAgICAgaWYgc2VsZi5kYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAiIiJSZXR1cm4gYSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgSFRUUCByZXF1ZXN0IG1ldGhvZC4iIiIKKyAgICAgICAgaWYgc2VsZi5tZXRob2QgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5tZXRob2QKKyAgICAgICAgZWxpZiBzZWxmLmRhdGEgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICByZXR1cm4gIlBPU1QiCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICByZXR1cm4gIkdFVCIKIAotICAgICMgQmVnaW4gZGVwcmVjYXRlZCBtZXRob2RzCi0KLSAgICBkZWYgYWRkX2RhdGEoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYuZGF0YSA9IGRhdGEKLQotICAgIGRlZiBoYXNfZGF0YShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZGF0YSBpcyBub3QgTm9uZQotCi0gICAgZGVmIGdldF9kYXRhKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5kYXRhCi0KICAgICBkZWYgZ2V0X2Z1bGxfdXJsKHNlbGYpOgogICAgICAgICBpZiBzZWxmLmZyYWdtZW50OgogICAgICAgICAgICAgcmV0dXJuICclcyMlcycgJSAoc2VsZi5mdWxsX3VybCwgc2VsZi5mcmFnbWVudCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBzZWxmLmZ1bGxfdXJsCiAKKyAgICAjIEJlZ2luIGRlcHJlY2F0ZWQgbWV0aG9kcworCisgICAgZGVmIGFkZF9kYXRhKHNlbGYsIGRhdGEpOgorICAgICAgICBtc2cgPSAiUmVxdWVzdC5hZGRfZGF0YSBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCisgICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKKyAgICAgICAgc2VsZi5kYXRhID0gZGF0YQorCisgICAgZGVmIGhhc19kYXRhKHNlbGYpOgorICAgICAgICBtc2cgPSAiUmVxdWVzdC5oYXNfZGF0YSBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCisgICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKKyAgICAgICAgcmV0dXJuIHNlbGYuZGF0YSBpcyBub3QgTm9uZQorCisgICAgZGVmIGdldF9kYXRhKHNlbGYpOgorICAgICAgICBtc2cgPSAiUmVxdWVzdC5nZXRfZGF0YSBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCisgICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKKyAgICAgICAgcmV0dXJuIHNlbGYuZGF0YQorCiAgICAgZGVmIGdldF90eXBlKHNlbGYpOgorICAgICAgICBtc2cgPSAiUmVxdWVzdC5nZXRfdHlwZSBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCisgICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKICAgICAgICAgcmV0dXJuIHNlbGYudHlwZQogCiAgICAgZGVmIGdldF9ob3N0KHNlbGYpOgorICAgICAgICBtc2cgPSAiUmVxdWVzdC5nZXRfaG9zdCBtZXRob2QgaXMgZGVwcmVjYXRlZC4iCisgICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MSkKICAgICAgICAgcmV0dXJuIHNlbGYuaG9zdAogCiAgICAgZGVmIGdldF9zZWxlY3RvcihzZWxmKToKKyAgICAgICAgbXNnID0gIlJlcXVlc3QuZ2V0X3NlbGVjdG9yIG1ldGhvZCBpcyBkZXByZWNhdGVkLiIKKyAgICAgICAgd2FybmluZ3Mud2Fybihtc2csIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0xKQogICAgICAgICByZXR1cm4gc2VsZi5zZWxlY3RvcgogCiAgICAgZGVmIGlzX3VudmVyaWZpYWJsZShzZWxmKToKKyAgICAgICAgbXNnID0gIlJlcXVlc3QuaXNfdW52ZXJpZmlhYmxlIG1ldGhvZCBpcyBkZXByZWNhdGVkLiIKKyAgICAgICAgd2FybmluZ3Mud2Fybihtc2csIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0xKQogICAgICAgICByZXR1cm4gc2VsZi51bnZlcmlmaWFibGUKIAogICAgIGRlZiBnZXRfb3JpZ2luX3JlcV9ob3N0KHNlbGYpOgorICAgICAgICBtc2cgPSAiUmVxdWVzdC5nZXRfb3JpZ2luX3JlcV9ob3N0IG1ldGhvZCBpcyBkZXByZWNhdGVkLiIKKyAgICAgICAgd2FybmluZ3Mud2Fybihtc2csIERlcHJlY2F0aW9uV2FybmluZywgc3RhY2tsZXZlbD0xKQogICAgICAgICByZXR1cm4gc2VsZi5vcmlnaW5fcmVxX2hvc3QKIAogICAgICMgRW5kIGRlcHJlY2F0ZWQgbWV0aG9kcwpAQCAtNjgyLDggKzc4NSw4IEBACiAgICAgICAgIHNlbGYucHJveGllcyA9IHByb3hpZXMKICAgICAgICAgZm9yIHR5cGUsIHVybCBpbiBwcm94aWVzLml0ZW1zKCk6CiAgICAgICAgICAgICBzZXRhdHRyKHNlbGYsICclc19vcGVuJyAlIHR5cGUsCi0gICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBwcm94eT11cmwsIHR5cGU9dHlwZSwgbWV0aD1zZWxmLnByb3h5X29wZW46IFwKLSAgICAgICAgICAgICAgICAgICAgbWV0aChyLCBwcm94eSwgdHlwZSkpCisgICAgICAgICAgICAgICAgICAgIGxhbWJkYSByLCBwcm94eT11cmwsIHR5cGU9dHlwZSwgbWV0aD1zZWxmLnByb3h5X29wZW46CisgICAgICAgICAgICAgICAgICAgICAgICBtZXRoKHIsIHByb3h5LCB0eXBlKSkKIAogICAgIGRlZiBwcm94eV9vcGVuKHNlbGYsIHJlcSwgcHJveHksIHR5cGUpOgogICAgICAgICBvcmlnX3R5cGUgPSByZXEudHlwZQpAQCAtODI1LDE3ICs5MjgsMjMgQEAKICAgICAgICAgICAgIHNlbGYucmV0cmllZCArPSAxCiAKICAgICAgICAgaWYgYXV0aHJlcToKLSAgICAgICAgICAgIG1vID0gQWJzdHJhY3RCYXNpY0F1dGhIYW5kbGVyLnJ4LnNlYXJjaChhdXRocmVxKQotICAgICAgICAgICAgaWYgbW86Ci0gICAgICAgICAgICAgICAgc2NoZW1lLCBxdW90ZSwgcmVhbG0gPSBtby5ncm91cHMoKQotICAgICAgICAgICAgICAgIGlmIHF1b3RlIG5vdCBpbiBbIiciLCAnIiddOgotICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKCJCYXNpYyBBdXRoIFJlYWxtIHdhcyB1bnF1b3RlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXNlcldhcm5pbmcsIDIpCi0gICAgICAgICAgICAgICAgaWYgc2NoZW1lLmxvd2VyKCkgPT0gJ2Jhc2ljJzoKLSAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnJldHJ5X2h0dHBfYmFzaWNfYXV0aChob3N0LCByZXEsIHJlYWxtKQotICAgICAgICAgICAgICAgICAgICBpZiByZXNwb25zZSBhbmQgcmVzcG9uc2UuY29kZSAhPSA0MDE6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJldHJpZWQgPSAwCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZQorICAgICAgICAgICAgc2NoZW1lID0gYXV0aHJlcS5zcGxpdCgpWzBdCisgICAgICAgICAgICBpZiBzY2hlbWUubG93ZXIoKSAhPSAnYmFzaWMnOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkFic3RyYWN0QmFzaWNBdXRoSGFuZGxlciBkb2VzIG5vdCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc3VwcG9ydCB0aGUgZm9sbG93aW5nIHNjaGVtZTogJyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtbyA9IEFic3RyYWN0QmFzaWNBdXRoSGFuZGxlci5yeC5zZWFyY2goYXV0aHJlcSkKKyAgICAgICAgICAgICAgICBpZiBtbzoKKyAgICAgICAgICAgICAgICAgICAgc2NoZW1lLCBxdW90ZSwgcmVhbG0gPSBtby5ncm91cHMoKQorICAgICAgICAgICAgICAgICAgICBpZiBxdW90ZSBub3QgaW4gWyciJywiJyJdOgorICAgICAgICAgICAgICAgICAgICAgICAgd2FybmluZ3Mud2FybigiQmFzaWMgQXV0aCBSZWFsbSB3YXMgdW5xdW90ZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2VyV2FybmluZywgMikKKyAgICAgICAgICAgICAgICAgICAgaWYgc2NoZW1lLmxvd2VyKCkgPT0gJ2Jhc2ljJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5yZXRyeV9odHRwX2Jhc2ljX2F1dGgoaG9zdCwgcmVxLCByZWFsbSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlc3BvbnNlIGFuZCByZXNwb25zZS5jb2RlICE9IDQwMToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJldHJpZWQgPSAwCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UKIAogICAgIGRlZiByZXRyeV9odHRwX2Jhc2ljX2F1dGgoc2VsZiwgaG9zdCwgcmVxLCByZWFsbSk6CiAgICAgICAgIHVzZXIsIHB3ID0gc2VsZi5wYXNzd2QuZmluZF91c2VyX3Bhc3N3b3JkKHJlYWxtLCBob3N0KQpAQCAtODc4LDkgKzk4Nyw5IEBACiAgICAgICAgIHJldHVybiByZXNwb25zZQogCiAKLWRlZiByYW5kb21ieXRlcyhuKToKLSAgICAiIiJSZXR1cm4gbiByYW5kb20gYnl0ZXMuIiIiCi0gICAgcmV0dXJuIG9zLnVyYW5kb20obikKKyMgUmV0dXJuIG4gcmFuZG9tIGJ5dGVzLgorX3JhbmRvbWJ5dGVzID0gb3MudXJhbmRvbQorCiAKIGNsYXNzIEFic3RyYWN0RGlnZXN0QXV0aEhhbmRsZXI6CiAgICAgIyBEaWdlc3QgYXV0aGVudGljYXRpb24gaXMgc3BlY2lmaWVkIGluIFJGQyAyNjE3LgpAQCAtOTIxLDYgKzEwMzAsOSBAQAogICAgICAgICAgICAgc2NoZW1lID0gYXV0aHJlcS5zcGxpdCgpWzBdCiAgICAgICAgICAgICBpZiBzY2hlbWUubG93ZXIoKSA9PSAnZGlnZXN0JzoKICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXRyeV9odHRwX2RpZ2VzdF9hdXRoKHJlcSwgYXV0aHJlcSkKKyAgICAgICAgICAgIGVsaWYgc2NoZW1lLmxvd2VyKCkgIT0gJ2Jhc2ljJzoKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJBYnN0cmFjdERpZ2VzdEF1dGhIYW5kbGVyIGRvZXMgbm90IHN1cHBvcnQiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHRoZSBmb2xsb3dpbmcgc2NoZW1lOiAnJXMnIiAlIHNjaGVtZSkKIAogICAgIGRlZiByZXRyeV9odHRwX2RpZ2VzdF9hdXRoKHNlbGYsIHJlcSwgYXV0aCk6CiAgICAgICAgIHRva2VuLCBjaGFsbGVuZ2UgPSBhdXRoLnNwbGl0KCcgJywgMSkKQEAgLTk0MSw3ICsxMDUzLDcgQEAKICAgICAgICAgIyBhdXRoZW50aWNhdGlvbiwgYW5kIHRvIHByb3ZpZGUgc29tZSBtZXNzYWdlIGludGVncml0eSBwcm90ZWN0aW9uLgogICAgICAgICAjIFRoaXMgaXNuJ3QgYSBmYWJ1bG91cyBlZmZvcnQsIGJ1dCBpdCdzIHByb2JhYmx5IEdvb2QgRW5vdWdoLgogICAgICAgICBzID0gIiVzOiVzOiVzOiIgJSAoc2VsZi5ub25jZV9jb3VudCwgbm9uY2UsIHRpbWUuY3RpbWUoKSkKLSAgICAgICAgYiA9IHMuZW5jb2RlKCJhc2NpaSIpICsgcmFuZG9tYnl0ZXMoOCkKKyAgICAgICAgYiA9IHMuZW5jb2RlKCJhc2NpaSIpICsgX3JhbmRvbWJ5dGVzKDgpCiAgICAgICAgIGRpZyA9IGhhc2hsaWIuc2hhMShiKS5oZXhkaWdlc3QoKQogICAgICAgICByZXR1cm4gZGlnWzoxNl0KIApAQCAtMTA2Niw3ICsxMTc4LDcgQEAKICAgICAgICAgaWYgcmVxdWVzdC5kYXRhIGlzIG5vdCBOb25lOiAgIyBQT1NUCiAgICAgICAgICAgICBkYXRhID0gcmVxdWVzdC5kYXRhCiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGRhdGEsIHN0cik6Ci0gICAgICAgICAgICAgICAgbXNnID0gIlBPU1QgZGF0YSBzaG91bGQgYmUgYnl0ZXMgb3IgYW4gaXRlcmFibGUgb2YgYnl0ZXMuICJcCisgICAgICAgICAgICAgICAgbXNnID0gIlBPU1QgZGF0YSBzaG91bGQgYmUgYnl0ZXMgb3IgYW4gaXRlcmFibGUgb2YgYnl0ZXMuICIgXAogICAgICAgICAgICAgICAgICAgICAgICJJdCBjYW5ub3QgYmUgb2YgdHlwZSBzdHIuIgogICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cpCiAgICAgICAgICAgICBpZiBub3QgcmVxdWVzdC5oYXNfaGVhZGVyKCdDb250ZW50LXR5cGUnKToKQEAgLTExNjIsNyArMTI3NCw2IEBACiAgICAgaHR0cF9yZXF1ZXN0ID0gQWJzdHJhY3RIVFRQSGFuZGxlci5kb19yZXF1ZXN0XwogCiBpZiBoYXNhdHRyKGh0dHAuY2xpZW50LCAnSFRUUFNDb25uZWN0aW9uJyk6Ci0gICAgaW1wb3J0IHNzbAogCiAgICAgY2xhc3MgSFRUUFNIYW5kbGVyKEFic3RyYWN0SFRUUEhhbmRsZXIpOgogCkBAIC0xMTc3LDYgKzEyODgsOCBAQAogCiAgICAgICAgIGh0dHBzX3JlcXVlc3QgPSBBYnN0cmFjdEhUVFBIYW5kbGVyLmRvX3JlcXVlc3RfCiAKKyAgICBfX2FsbF9fLmFwcGVuZCgnSFRUUFNIYW5kbGVyJykKKwogY2xhc3MgSFRUUENvb2tpZVByb2Nlc3NvcihCYXNlSGFuZGxlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvb2tpZWphcj1Ob25lKToKICAgICAgICAgaW1wb3J0IGh0dHAuY29va2llamFyCkBAIC0xNDYzLDYgKzE1NzYsOSBAQAogCiAgICAgIyBDb25zdHJ1Y3RvcgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwcm94aWVzPU5vbmUsICoqeDUwOSk6CisgICAgICAgIG1zZyA9ICIlKGNsYXNzKXMgc3R5bGUgb2YgaW52b2tpbmcgcmVxdWVzdHMgaXMgZGVwcmVjYXRlZC4gIiBcCisgICAgICAgICAgICAgICJVc2UgbmV3ZXIgdXJsb3BlbiBmdW5jdGlvbnMvbWV0aG9kcyIgJSB7J2NsYXNzJzogc2VsZi5fX2NsYXNzX18uX19uYW1lX199CisgICAgICAgIHdhcm5pbmdzLndhcm4obXNnLCBEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9MykKICAgICAgICAgaWYgcHJveGllcyBpcyBOb25lOgogICAgICAgICAgICAgcHJveGllcyA9IGdldHByb3hpZXMoKQogICAgICAgICBhc3NlcnQgaGFzYXR0cihwcm94aWVzLCAna2V5cycpLCAicHJveGllcyBtdXN0IGJlIGEgbWFwcGluZyIKQEAgLTE1NDIsNiArMTY1OCw4IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZiwgbmFtZSkodXJsKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCBuYW1lKSh1cmwsIGRhdGEpCisgICAgICAgIGV4Y2VwdCBIVFRQRXJyb3I6CisgICAgICAgICAgICByYWlzZQogICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIG1zZzoKICAgICAgICAgICAgIHJhaXNlIElPRXJyb3IoJ3NvY2tldCBlcnJvcicsIG1zZykud2l0aF90cmFjZWJhY2soc3lzLmV4Y19pbmZvKClbMl0pCiAKQEAgLTE2NjIsNyArMTc4MCw2IEBACiAgICAgICAgICAgICAgICAgaWYgcHJveHlfYnlwYXNzKHJlYWxob3N0KToKICAgICAgICAgICAgICAgICAgICAgaG9zdCA9IHJlYWxob3N0CiAKLSAgICAgICAgICAgICNwcmludCAicHJveHkgdmlhIGh0dHA6IiwgaG9zdCwgc2VsZWN0b3IKICAgICAgICAgaWYgbm90IGhvc3Q6IHJhaXNlIElPRXJyb3IoJ2h0dHAgZXJyb3InLCAnbm8gaG9zdCBnaXZlbicpCiAKICAgICAgICAgaWYgcHJveHlfcGFzc3dkOgpAQCAtMTc2MSw4ICsxODc4LDggQEAKIAogICAgIGRlZiBvcGVuX2xvY2FsX2ZpbGUoc2VsZiwgdXJsKToKICAgICAgICAgIiIiVXNlIGxvY2FsIGZpbGUuIiIiCi0gICAgICAgIGltcG9ydCBtaW1ldHlwZXMsIGVtYWlsLnV0aWxzCi0gICAgICAgIGZyb20gaW8gaW1wb3J0IFN0cmluZ0lPCisgICAgICAgIGltcG9ydCBlbWFpbC51dGlscworICAgICAgICBpbXBvcnQgbWltZXR5cGVzCiAgICAgICAgIGhvc3QsIGZpbGUgPSBzcGxpdGhvc3QodXJsKQogICAgICAgICBsb2NhbG5hbWUgPSB1cmwycGF0aG5hbWUoZmlsZSkKICAgICAgICAgdHJ5OgpAQCAtMTc5Niw3ICsxOTEzLDYgQEAKICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodXJsLCBzdHIpOgogICAgICAgICAgICAgcmFpc2UgVVJMRXJyb3IoJ2Z0cCBlcnJvcicsICdwcm94eSBzdXBwb3J0IGZvciBmdHAgcHJvdG9jb2wgY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZCcpCiAgICAgICAgIGltcG9ydCBtaW1ldHlwZXMKLSAgICAgICAgZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KICAgICAgICAgaG9zdCwgcGF0aCA9IHNwbGl0aG9zdCh1cmwpCiAgICAgICAgIGlmIG5vdCBob3N0OiByYWlzZSBVUkxFcnJvcignZnRwIGVycm9yJywgJ25vIGhvc3QgZ2l2ZW4nKQogICAgICAgICBob3N0LCBwb3J0ID0gc3BsaXRwb3J0KGhvc3QpCkBAIC0xODc5LDcgKzE5OTUsNyBAQAogICAgICAgICBtc2cuYXBwZW5kKCdDb250ZW50LXR5cGU6ICVzJyAlIHR5cGUpCiAgICAgICAgIGlmIGVuY29kaW5nID09ICdiYXNlNjQnOgogICAgICAgICAgICAgIyBYWFggaXMgdGhpcyBlbmNvZGluZy9kZWNvZGluZyBvaz8KLSAgICAgICAgICAgIGRhdGEgPSBiYXNlNjQuZGVjb2RlYnl0ZXMoZGF0YS5lbmNvZGUoJ2FzY2lpJykpLmRlY29kZSgnbGF0aW4xJykKKyAgICAgICAgICAgIGRhdGEgPSBiYXNlNjQuZGVjb2RlYnl0ZXMoZGF0YS5lbmNvZGUoJ2FzY2lpJykpLmRlY29kZSgnbGF0aW4tMScpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBkYXRhID0gdW5xdW90ZShkYXRhKQogICAgICAgICBtc2cuYXBwZW5kKCdDb250ZW50LUxlbmd0aDogJWQnICUgbGVuKGRhdGEpKQpAQCAtMTk3Miw3ICsyMDg4LDYgQEAKICAgICAgICAgICAgIFVSTG9wZW5lci5odHRwX2Vycm9yX2RlZmF1bHQoc2VsZiwgdXJsLCBmcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyY29kZSwgZXJybXNnLCBoZWFkZXJzKQogICAgICAgICBzdHVmZiA9IGhlYWRlcnNbJ3d3dy1hdXRoZW50aWNhdGUnXQotICAgICAgICBpbXBvcnQgcmUKICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgnWyBcdF0qKFteIFx0XSspWyBcdF0rcmVhbG09IihbXiJdKikiJywgc3R1ZmYpCiAgICAgICAgIGlmIG5vdCBtYXRjaDoKICAgICAgICAgICAgIFVSTG9wZW5lci5odHRwX2Vycm9yX2RlZmF1bHQoc2VsZiwgdXJsLCBmcCwKQEAgLTE5OTgsNyArMjExMyw2IEBACiAgICAgICAgICAgICBVUkxvcGVuZXIuaHR0cF9lcnJvcl9kZWZhdWx0KHNlbGYsIHVybCwgZnAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycmNvZGUsIGVycm1zZywgaGVhZGVycykKICAgICAgICAgc3R1ZmYgPSBoZWFkZXJzWydwcm94eS1hdXRoZW50aWNhdGUnXQotICAgICAgICBpbXBvcnQgcmUKICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgnWyBcdF0qKFteIFx0XSspWyBcdF0rcmVhbG09IihbXiJdKikiJywgc3R1ZmYpCiAgICAgICAgIGlmIG5vdCBtYXRjaDoKICAgICAgICAgICAgIFVSTG9wZW5lci5odHRwX2Vycm9yX2RlZmF1bHQoc2VsZiwgdXJsLCBmcCwKQEAgLTIyOTAsOCArMjQwNCw2IEBACiAgICAgICAnZXhjZXB0aW9ucyc6IFsnZm9vLmJhcicsICcqLmJhci5jb20nLCAnMTI3LjAuMC4xJywgJzEwLjEnLCAnMTAuMC8xNiddCiAgICAgfQogICAgICIiIgotICAgIGltcG9ydCByZQotICAgIGltcG9ydCBzb2NrZXQKICAgICBmcm9tIGZubWF0Y2ggaW1wb3J0IGZubWF0Y2gKIAogICAgIGhvc3Rvbmx5LCBwb3J0ID0gc3BsaXRwb3J0KGhvc3QpCkBAIC0yMzk0LDcgKzI1MDYsNiBAQAogICAgICAgICAgICAgICAgICAgICBmb3IgcCBpbiBwcm94eVNlcnZlci5zcGxpdCgnOycpOgogICAgICAgICAgICAgICAgICAgICAgICAgcHJvdG9jb2wsIGFkZHJlc3MgPSBwLnNwbGl0KCc9JywgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICMgU2VlIGlmIGFkZHJlc3MgaGFzIGEgdHlwZTovLyBwcmVmaXgKLSAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydCByZQogICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdeKFteLzpdKyk6Ly8nLCBhZGRyZXNzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzID0gJyVzOi8vJXMnICUgKHByb3RvY29sLCBhZGRyZXNzKQogICAgICAgICAgICAgICAgICAgICAgICAgcHJveGllc1twcm90b2NvbF0gPSBhZGRyZXNzCkBAIC0yNDI2LDcgKzI1MzcsNiBAQAogICAgIGRlZiBwcm94eV9ieXBhc3NfcmVnaXN0cnkoaG9zdCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGltcG9ydCB3aW5yZWcKLSAgICAgICAgICAgIGltcG9ydCByZQogICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICAgICAjIFN0ZCBtb2R1bGVzLCBzbyBzaG91bGQgYmUgYXJvdW5kIC0gYnV0IHlvdSBuZXZlciBrbm93IQogICAgICAgICAgICAgcmV0dXJuIDAKQEAgLTI0NzAsNyArMjU4MCw2IEBACiAgICAgICAgICAgICB0ZXN0ID0gdGVzdC5yZXBsYWNlKCIqIiwgciIuKiIpICAgICAjIGNoYW5nZSBnbG9iIHNlcXVlbmNlCiAgICAgICAgICAgICB0ZXN0ID0gdGVzdC5yZXBsYWNlKCI/IiwgciIuIikgICAgICAjIGNoYW5nZSBnbG9iIGNoYXIKICAgICAgICAgICAgIGZvciB2YWwgaW4gaG9zdDoKLSAgICAgICAgICAgICAgICAjIHByaW50ICIlcyA8LS0+ICVzIiAlKCB0ZXN0LCB2YWwgKQogICAgICAgICAgICAgICAgIGlmIHJlLm1hdGNoKHRlc3QsIHZhbCwgcmUuSSk6CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxCiAgICAgICAgIHJldHVybiAwCmRpZmYgLS1naXQgYS9MaWIvdXJsbGliL3Jlc3BvbnNlLnB5IGIvTGliL3VybGxpYi9yZXNwb25zZS5weQppbmRleCBmZmFhNWZhLi4xY2YxZDFhIDEwMDY0NAotLS0gYS9MaWIvdXJsbGliL3Jlc3BvbnNlLnB5CisrKyBiL0xpYi91cmxsaWIvcmVzcG9uc2UucHkKQEAgLTM3LDEyICszNywxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQoc2VsZiksIHNlbGYuZnApCiAKICAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgIGlmIHNlbGYuZnA6CisgICAgICAgICAgICBzZWxmLmZwLmNsb3NlKCkKKyAgICAgICAgc2VsZi5mcCA9IE5vbmUKICAgICAgICAgc2VsZi5yZWFkID0gTm9uZQogICAgICAgICBzZWxmLnJlYWRsaW5lID0gTm9uZQogICAgICAgICBzZWxmLnJlYWRsaW5lcyA9IE5vbmUKICAgICAgICAgc2VsZi5maWxlbm8gPSBOb25lCi0gICAgICAgIGlmIHNlbGYuZnA6IHNlbGYuZnAuY2xvc2UoKQotICAgICAgICBzZWxmLmZwID0gTm9uZQorICAgICAgICBzZWxmLl9faXRlcl9fID0gTm9uZQorICAgICAgICBzZWxmLl9fbmV4dF9fID0gTm9uZQogCiAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKICAgICAgICAgaWYgc2VsZi5mcCBpcyBOb25lOgpkaWZmIC0tZ2l0IGEvTGliL3V1aWQucHkgYi9MaWIvdXVpZC5weQppbmRleCA1Njg0YWQ3Li4wZGYwNzQzIDEwMDY0NAotLS0gYS9MaWIvdXVpZC5weQorKysgYi9MaWIvdXVpZC5weQpAQCAtNDQwLDcgKzQ0MCw3IEBACiAgICAgaW1wb3J0IHN5cwogICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKICAgICAgICAgaW1wb3J0IG9zCi0gICAgICAgIGlmIGludChvcy51bmFtZSgpWzJdLnNwbGl0KCcuJylbMF0pID49IDk6CisgICAgICAgIGlmIGludChvcy51bmFtZSgpLnJlbGVhc2Uuc3BsaXQoJy4nKVswXSkgPj0gOToKICAgICAgICAgICAgIF91dWlkX2dlbmVyYXRlX3JhbmRvbSA9IF91dWlkX2dlbmVyYXRlX3RpbWUgPSBOb25lCiAKICAgICAjIE9uIFdpbmRvd3MgcHJpb3IgdG8gMjAwMCwgVXVpZENyZWF0ZSBnaXZlcyBhIFVVSUQgY29udGFpbmluZyB0aGUKZGlmZiAtLWdpdCBhL0xpYi92ZW52L19faW5pdF9fLnB5IGIvTGliL3ZlbnYvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhlZDU0YwotLS0gL2Rldi9udWxsCisrKyBiL0xpYi92ZW52L19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNDA2IEBACisiIiIKK1ZpcnR1YWwgZW52aXJvbm1lbnQgKHZlbnYpIHBhY2thZ2UgZm9yIFB5dGhvbi4gQmFzZWQgb24gUEVQIDQwNS4KKworQ29weXJpZ2h0IChDKSAyMDExLTIwMTIgVmluYXkgU2FqaXAuCitMaWNlbnNlZCB0byB0aGUgUFNGIHVuZGVyIGEgY29udHJpYnV0b3IgYWdyZWVtZW50LgorCit1c2FnZTogcHl0aG9uIC1tIHZlbnYgWy1oXSBbLS1zeXN0ZW0tc2l0ZS1wYWNrYWdlc10gWy0tc3ltbGlua3NdIFstLWNsZWFyXQorICAgICAgICAgICAgWy0tdXBncmFkZV0KKyAgICAgICAgICAgIEVOVl9ESVIgW0VOVl9ESVIgLi4uXQorCitDcmVhdGVzIHZpcnR1YWwgUHl0aG9uIGVudmlyb25tZW50cyBpbiBvbmUgb3IgbW9yZSB0YXJnZXQgZGlyZWN0b3JpZXMuCisKK3Bvc2l0aW9uYWwgYXJndW1lbnRzOgorICBFTlZfRElSICAgICAgICAgICAgICAgQSBkaXJlY3RvcnkgdG8gY3JlYXRlIHRoZSBlbnZpcm9ubWVudCBpbi4KKworb3B0aW9uYWwgYXJndW1lbnRzOgorICAtaCwgLS1oZWxwICAgICAgICAgICAgc2hvdyB0aGlzIGhlbHAgbWVzc2FnZSBhbmQgZXhpdAorICAtLXN5c3RlbS1zaXRlLXBhY2thZ2VzCisgICAgICAgICAgICAgICAgICAgICAgICBHaXZlIHRoZSB2aXJ0dWFsIGVudmlyb25tZW50IGFjY2VzcyB0byB0aGUgc3lzdGVtCisgICAgICAgICAgICAgICAgICAgICAgICBzaXRlLXBhY2thZ2VzIGRpci4KKyAgLS1zeW1saW5rcyAgICAgICAgICAgIEF0dGVtcHQgdG8gc3ltbGluayByYXRoZXIgdGhhbiBjb3B5LgorICAtLWNsZWFyICAgICAgICAgICAgICAgRGVsZXRlIHRoZSBlbnZpcm9ubWVudCBkaXJlY3RvcnkgaWYgaXQgYWxyZWFkeSBleGlzdHMuCisgICAgICAgICAgICAgICAgICAgICAgICBJZiBub3Qgc3BlY2lmaWVkIGFuZCB0aGUgZGlyZWN0b3J5IGV4aXN0cywgYW4gZXJyb3IgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlZC4KKyAgLS11cGdyYWRlICAgICAgICAgICAgIFVwZ3JhZGUgdGhlIGVudmlyb25tZW50IGRpcmVjdG9yeSB0byB1c2UgdGhpcyB2ZXJzaW9uCisgICAgICAgICAgICAgICAgICAgICAgICBvZiBQeXRob24sIGFzc3VtaW5nIFB5dGhvbiBoYXMgYmVlbiB1cGdyYWRlZCBpbi1wbGFjZS4KKyIiIgoraW1wb3J0IGJhc2U2NAoraW1wb3J0IGlvCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgb3MucGF0aAoraW1wb3J0IHNodXRpbAoraW1wb3J0IHN5cworaW1wb3J0IHN5c2NvbmZpZwordHJ5OgorICAgIGltcG9ydCB0aHJlYWRpbmcKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICB0aHJlYWRpbmcgPSBOb25lCisKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCitjbGFzcyBDb250ZXh0OgorICAgICIiIgorICAgIEhvbGRzIGluZm9ybWF0aW9uIGFib3V0IGEgY3VycmVudCB2ZW52IGNyZWF0aW9uL3VwZ3JhZGUgcmVxdWVzdC4KKyAgICAiIiIKKyAgICBwYXNzCisKKworY2xhc3MgRW52QnVpbGRlcjoKKyAgICAiIiIKKyAgICBUaGlzIGNsYXNzIGV4aXN0cyB0byBhbGxvdyB2aXJ0dWFsIGVudmlyb25tZW50IGNyZWF0aW9uIHRvIGJlCisgICAgY3VzdG9taXNlZC4gVGhlIGNvbnN0cnVjdG9yIHBhcmFtZXRlcnMgZGV0ZXJtaW5lIHRoZSBidWlsZGVyJ3MKKyAgICBiZWhhdmlvdXIgd2hlbiBjYWxsZWQgdXBvbiB0byBjcmVhdGUgYSB2aXJ0dWFsIGVudmlyb25tZW50LgorCisgICAgQnkgZGVmYXVsdCwgdGhlIGJ1aWxkZXIgbWFrZXMgdGhlIHN5c3RlbSAoZ2xvYmFsKSBzaXRlLXBhY2thZ2VzIGRpcgorICAgIGF2YWlsYWJsZSB0byB0aGUgY3JlYXRlZCBlbnZpcm9ubWVudC4KKworICAgIEJ5IGRlZmF1bHQsIHRoZSBjcmVhdGlvbiBwcm9jZXNzIHVzZXMgc3ltbGlua3Mgd2hlcmV2ZXIgcG9zc2libGUuCisKKyAgICA6cGFyYW0gc3lzdGVtX3NpdGVfcGFja2FnZXM6IElmIFRydWUsIHRoZSBzeXN0ZW0gKGdsb2JhbCkgc2l0ZS1wYWNrYWdlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyIGlzIGF2YWlsYWJsZSB0byBjcmVhdGVkIGVudmlyb25tZW50cy4KKyAgICA6cGFyYW0gY2xlYXI6IElmIFRydWUgYW5kIHRoZSB0YXJnZXQgZGlyZWN0b3J5IGV4aXN0cywgaXQgaXMgZGVsZXRlZC4KKyAgICAgICAgICAgICAgICAgIE90aGVyd2lzZSwgaWYgdGhlIHRhcmdldCBkaXJlY3RvcnkgZXhpc3RzLCBhbiBlcnJvciBpcworICAgICAgICAgICAgICAgICAgcmFpc2VkLgorICAgIDpwYXJhbSBzeW1saW5rczogSWYgVHJ1ZSwgYXR0ZW1wdCB0byBzeW1saW5rIHJhdGhlciB0aGFuIGNvcHkgZmlsZXMgaW50bworICAgICAgICAgICAgICAgICAgICAgdmlydHVhbCBlbnZpcm9ubWVudC4KKyAgICA6cGFyYW0gdXBncmFkZTogSWYgVHJ1ZSwgdXBncmFkZSBhbiBleGlzdGluZyB2aXJ0dWFsIGVudmlyb25tZW50LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN5c3RlbV9zaXRlX3BhY2thZ2VzPUZhbHNlLCBjbGVhcj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgc3ltbGlua3M9RmFsc2UsIHVwZ3JhZGU9RmFsc2UpOgorICAgICAgICBzZWxmLnN5c3RlbV9zaXRlX3BhY2thZ2VzID0gc3lzdGVtX3NpdGVfcGFja2FnZXMKKyAgICAgICAgc2VsZi5jbGVhciA9IGNsZWFyCisgICAgICAgIHNlbGYuc3ltbGlua3MgPSBzeW1saW5rcworICAgICAgICBzZWxmLnVwZ3JhZGUgPSB1cGdyYWRlCisKKyAgICBkZWYgY3JlYXRlKHNlbGYsIGVudl9kaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIGEgdmlydHVhbCBlbnZpcm9ubWVudCBpbiBhIGRpcmVjdG9yeS4KKworICAgICAgICA6cGFyYW0gZW52X2RpcjogVGhlIHRhcmdldCBkaXJlY3RvcnkgdG8gY3JlYXRlIGFuIGVudmlyb25tZW50IGluLgorCisgICAgICAgICIiIgorICAgICAgICBpZiAoc2VsZi5zeW1saW5rcyBhbmQKKyAgICAgICAgICAgIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQKKyAgICAgICAgICAgIHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignUFlUSE9ORlJBTUVXT1JLJykpOgorICAgICAgICAgICAgIyBTeW1saW5raW5nIHRoZSBzdHViIGV4ZWN1dGFibGUgaW4gYW4gT1NYIGZyYW1ld29yayBidWlsZCB3aWxsCisgICAgICAgICAgICAjIHJlc3VsdCBpbiBhIGJyb2tlbiB2aXJ0dWFsIGVudmlyb25tZW50LgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKKyAgICAgICAgICAgICAgICAnU3ltbGlua2luZyBpcyBub3Qgc3VwcG9ydGVkIG9uIE9TWCBmcmFtZXdvcmsgUHl0aG9uLicpCisgICAgICAgIGVudl9kaXIgPSBvcy5wYXRoLmFic3BhdGgoZW52X2RpcikKKyAgICAgICAgY29udGV4dCA9IHNlbGYuZW5zdXJlX2RpcmVjdG9yaWVzKGVudl9kaXIpCisgICAgICAgIHNlbGYuY3JlYXRlX2NvbmZpZ3VyYXRpb24oY29udGV4dCkKKyAgICAgICAgc2VsZi5zZXR1cF9weXRob24oY29udGV4dCkKKyAgICAgICAgaWYgbm90IHNlbGYudXBncmFkZToKKyAgICAgICAgICAgIHNlbGYuc2V0dXBfc2NyaXB0cyhjb250ZXh0KQorICAgICAgICAgICAgc2VsZi5wb3N0X3NldHVwKGNvbnRleHQpCisKKyAgICBkZWYgZW5zdXJlX2RpcmVjdG9yaWVzKHNlbGYsIGVudl9kaXIpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIHRoZSBkaXJlY3RvcmllcyBmb3IgdGhlIGVudmlyb25tZW50LgorCisgICAgICAgIFJldHVybnMgYSBjb250ZXh0IG9iamVjdCB3aGljaCBob2xkcyBwYXRocyBpbiB0aGUgZW52aXJvbm1lbnQsCisgICAgICAgIGZvciB1c2UgYnkgc3Vic2VxdWVudCBsb2dpYy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZGVmIGNyZWF0ZV9pZl9uZWVkZWQoZCk6CisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZCk6CisgICAgICAgICAgICAgICAgb3MubWFrZWRpcnMoZCkKKworICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhlbnZfZGlyKSBhbmQgbm90IChzZWxmLmNsZWFyIG9yIHNlbGYudXBncmFkZSk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdEaXJlY3RvcnkgZXhpc3RzOiAlcycgJSBlbnZfZGlyKQorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhlbnZfZGlyKSBhbmQgc2VsZi5jbGVhcjoKKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZW52X2RpcikKKyAgICAgICAgY29udGV4dCA9IENvbnRleHQoKQorICAgICAgICBjb250ZXh0LmVudl9kaXIgPSBlbnZfZGlyCisgICAgICAgIGNvbnRleHQuZW52X25hbWUgPSBvcy5wYXRoLnNwbGl0KGVudl9kaXIpWzFdCisgICAgICAgIGNvbnRleHQucHJvbXB0ID0gJyglcykgJyAlIGNvbnRleHQuZW52X25hbWUKKyAgICAgICAgY3JlYXRlX2lmX25lZWRlZChlbnZfZGlyKQorICAgICAgICBlbnYgPSBvcy5lbnZpcm9uCisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgJ19fUFlWRU5WX0xBVU5DSEVSX18nIGluIGVudjoKKyAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBvcy5lbnZpcm9uWydfX1BZVkVOVl9MQVVOQ0hFUl9fJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBzeXMuZXhlY3V0YWJsZQorICAgICAgICBkaXJuYW1lLCBleGVuYW1lID0gb3MucGF0aC5zcGxpdChvcy5wYXRoLmFic3BhdGgoZXhlY3V0YWJsZSkpCisgICAgICAgIGNvbnRleHQuZXhlY3V0YWJsZSA9IGV4ZWN1dGFibGUKKyAgICAgICAgY29udGV4dC5weXRob25fZGlyID0gZGlybmFtZQorICAgICAgICBjb250ZXh0LnB5dGhvbl9leGUgPSBleGVuYW1lCisgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOgorICAgICAgICAgICAgYmlubmFtZSA9ICdTY3JpcHRzJworICAgICAgICAgICAgaW5jcGF0aCA9ICdJbmNsdWRlJworICAgICAgICAgICAgbGlicGF0aCA9IG9zLnBhdGguam9pbihlbnZfZGlyLCAnTGliJywgJ3NpdGUtcGFja2FnZXMnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYmlubmFtZSA9ICdiaW4nCisgICAgICAgICAgICBpbmNwYXRoID0gJ2luY2x1ZGUnCisgICAgICAgICAgICBsaWJwYXRoID0gb3MucGF0aC5qb2luKGVudl9kaXIsICdsaWInLCAncHl0aG9uJWQuJWQnICUgc3lzLnZlcnNpb25faW5mb1s6Ml0sICdzaXRlLXBhY2thZ2VzJykKKyAgICAgICAgY29udGV4dC5pbmNfcGF0aCA9IHBhdGggPSBvcy5wYXRoLmpvaW4oZW52X2RpciwgaW5jcGF0aCkKKyAgICAgICAgY3JlYXRlX2lmX25lZWRlZChwYXRoKQorICAgICAgICBjcmVhdGVfaWZfbmVlZGVkKGxpYnBhdGgpCisgICAgICAgIGNvbnRleHQuYmluX3BhdGggPSBiaW5wYXRoID0gb3MucGF0aC5qb2luKGVudl9kaXIsIGJpbm5hbWUpCisgICAgICAgIGNvbnRleHQuYmluX25hbWUgPSBiaW5uYW1lCisgICAgICAgIGNvbnRleHQuZW52X2V4ZSA9IG9zLnBhdGguam9pbihiaW5wYXRoLCBleGVuYW1lKQorICAgICAgICBjcmVhdGVfaWZfbmVlZGVkKGJpbnBhdGgpCisgICAgICAgIHJldHVybiBjb250ZXh0CisKKyAgICBkZWYgY3JlYXRlX2NvbmZpZ3VyYXRpb24oc2VsZiwgY29udGV4dCk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGUgYSBjb25maWd1cmF0aW9uIGZpbGUgaW5kaWNhdGluZyB3aGVyZSB0aGUgZW52aXJvbm1lbnQncyBQeXRob24KKyAgICAgICAgd2FzIGNvcGllZCBmcm9tLCBhbmQgd2hldGhlciB0aGUgc3lzdGVtIHNpdGUtcGFja2FnZXMgc2hvdWxkIGJlIG1hZGUKKyAgICAgICAgYXZhaWxhYmxlIGluIHRoZSBlbnZpcm9ubWVudC4KKworICAgICAgICA6cGFyYW0gY29udGV4dDogVGhlIGluZm9ybWF0aW9uIGZvciB0aGUgZW52aXJvbm1lbnQgY3JlYXRpb24gcmVxdWVzdAorICAgICAgICAgICAgICAgICAgICAgICAgYmVpbmcgcHJvY2Vzc2VkLgorICAgICAgICAiIiIKKyAgICAgICAgY29udGV4dC5jZmdfcGF0aCA9IHBhdGggPSBvcy5wYXRoLmpvaW4oY29udGV4dC5lbnZfZGlyLCAncHl2ZW52LmNmZycpCisgICAgICAgIHdpdGggb3BlbihwYXRoLCAndycsIGVuY29kaW5nPSd1dGYtOCcpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKCdob21lID0gJXNcbicgJSBjb250ZXh0LnB5dGhvbl9kaXIpCisgICAgICAgICAgICBpZiBzZWxmLnN5c3RlbV9zaXRlX3BhY2thZ2VzOgorICAgICAgICAgICAgICAgIGluY2wgPSAndHJ1ZScKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaW5jbCA9ICdmYWxzZScKKyAgICAgICAgICAgIGYud3JpdGUoJ2luY2x1ZGUtc3lzdGVtLXNpdGUtcGFja2FnZXMgPSAlc1xuJyAlIGluY2wpCisgICAgICAgICAgICBmLndyaXRlKCd2ZXJzaW9uID0gJWQuJWQuJWRcbicgJSBzeXMudmVyc2lvbl9pbmZvWzozXSkKKworICAgIGlmIG9zLm5hbWUgPT0gJ250JzoKKyAgICAgICAgZGVmIGluY2x1ZGVfYmluYXJ5KHNlbGYsIGYpOgorICAgICAgICAgICAgaWYgZi5lbmRzd2l0aCgoJy5weWQnLCAnLmRsbCcpKToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGYuc3RhcnRzd2l0aCgncHl0aG9uJykgYW5kIGYuZW5kc3dpdGgoJy5leGUnKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgZGVmIHN5bWxpbmtfb3JfY29weShzZWxmLCBzcmMsIGRzdCk6CisgICAgICAgICIiIgorICAgICAgICBUcnkgc3ltbGlua2luZyBhIGZpbGUsIGFuZCBpZiB0aGF0IGZhaWxzLCBmYWxsIGJhY2sgdG8gY29weWluZy4KKyAgICAgICAgIiIiCisgICAgICAgIGZvcmNlX2NvcHkgPSBub3Qgc2VsZi5zeW1saW5rcworICAgICAgICBpZiBub3QgZm9yY2VfY29weToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2xpbmsoZHN0KTogIyBjYW4ndCBsaW5rIHRvIGl0c2VsZiEKKyAgICAgICAgICAgICAgICAgICAgb3Muc3ltbGluayhzcmMsIGRzdCkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246ICAgIyBtYXkgbmVlZCB0byB1c2UgYSBtb3JlIHNwZWNpZmljIGV4Y2VwdGlvbgorICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCdVbmFibGUgdG8gc3ltbGluayAlciB0byAlcicsIHNyYywgZHN0KQorICAgICAgICAgICAgICAgIGZvcmNlX2NvcHkgPSBUcnVlCisgICAgICAgIGlmIGZvcmNlX2NvcHk6CisgICAgICAgICAgICBzaHV0aWwuY29weWZpbGUoc3JjLCBkc3QpCisKKyAgICBkZWYgc2V0dXBfcHl0aG9uKHNlbGYsIGNvbnRleHQpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0IHVwIGEgUHl0aG9uIGV4ZWN1dGFibGUgaW4gdGhlIGVudmlyb25tZW50LgorCisgICAgICAgIDpwYXJhbSBjb250ZXh0OiBUaGUgaW5mb3JtYXRpb24gZm9yIHRoZSBlbnZpcm9ubWVudCBjcmVhdGlvbiByZXF1ZXN0CisgICAgICAgICAgICAgICAgICAgICAgICBiZWluZyBwcm9jZXNzZWQuCisgICAgICAgICIiIgorICAgICAgICBiaW5wYXRoID0gY29udGV4dC5iaW5fcGF0aAorICAgICAgICBleGVuYW1lID0gY29udGV4dC5weXRob25fZXhlCisgICAgICAgIHBhdGggPSBjb250ZXh0LmVudl9leGUKKyAgICAgICAgY29waWVyID0gc2VsZi5zeW1saW5rX29yX2NvcHkKKyAgICAgICAgY29waWVyKGNvbnRleHQuZXhlY3V0YWJsZSwgcGF0aCkKKyAgICAgICAgZGlybmFtZSA9IGNvbnRleHQucHl0aG9uX2RpcgorICAgICAgICBpZiBvcy5uYW1lICE9ICdudCc6CisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2xpbmsocGF0aCk6CisgICAgICAgICAgICAgICAgb3MuY2htb2QocGF0aCwgMG83NTUpCisgICAgICAgICAgICBmb3Igc3VmZml4IGluICgncHl0aG9uJywgJ3B5dGhvbjMnKToKKyAgICAgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKGJpbnBhdGgsIHN1ZmZpeCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMocGF0aCk6CisgICAgICAgICAgICAgICAgICAgIG9zLnN5bWxpbmsoZXhlbmFtZSwgcGF0aCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHN1YmRpciA9ICdETExzJworICAgICAgICAgICAgaW5jbHVkZSA9IHNlbGYuaW5jbHVkZV9iaW5hcnkKKyAgICAgICAgICAgIGZpbGVzID0gW2YgZm9yIGYgaW4gb3MubGlzdGRpcihkaXJuYW1lKSBpZiBpbmNsdWRlKGYpXQorICAgICAgICAgICAgZm9yIGYgaW4gZmlsZXM6CisgICAgICAgICAgICAgICAgc3JjID0gb3MucGF0aC5qb2luKGRpcm5hbWUsIGYpCisgICAgICAgICAgICAgICAgZHN0ID0gb3MucGF0aC5qb2luKGJpbnBhdGgsIGYpCisgICAgICAgICAgICAgICAgaWYgZHN0ICE9IGNvbnRleHQuZW52X2V4ZTogICMgYWxyZWFkeSBkb25lLCBhYm92ZQorICAgICAgICAgICAgICAgICAgICBjb3BpZXIoc3JjLCBkc3QpCisgICAgICAgICAgICBkaXJuYW1lID0gb3MucGF0aC5qb2luKGRpcm5hbWUsIHN1YmRpcikKKyAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZGlybmFtZSk6CisgICAgICAgICAgICAgICAgZmlsZXMgPSBbZiBmb3IgZiBpbiBvcy5saXN0ZGlyKGRpcm5hbWUpIGlmIGluY2x1ZGUoZildCisgICAgICAgICAgICAgICAgZm9yIGYgaW4gZmlsZXM6CisgICAgICAgICAgICAgICAgICAgIHNyYyA9IG9zLnBhdGguam9pbihkaXJuYW1lLCBmKQorICAgICAgICAgICAgICAgICAgICBkc3QgPSBvcy5wYXRoLmpvaW4oYmlucGF0aCwgZikKKyAgICAgICAgICAgICAgICAgICAgY29waWVyKHNyYywgZHN0KQorICAgICAgICAgICAgIyBjb3B5IGluaXQudGNsIG92ZXIKKyAgICAgICAgICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKGNvbnRleHQucHl0aG9uX2Rpcik6CisgICAgICAgICAgICAgICAgaWYgJ2luaXQudGNsJyBpbiBmaWxlczoKKyAgICAgICAgICAgICAgICAgICAgdGNsZGlyID0gb3MucGF0aC5iYXNlbmFtZShyb290KQorICAgICAgICAgICAgICAgICAgICB0Y2xkaXIgPSBvcy5wYXRoLmpvaW4oY29udGV4dC5lbnZfZGlyLCAnTGliJywgdGNsZGlyKQorICAgICAgICAgICAgICAgICAgICBvcy5tYWtlZGlycyh0Y2xkaXIpCisgICAgICAgICAgICAgICAgICAgIHNyYyA9IG9zLnBhdGguam9pbihyb290LCAnaW5pdC50Y2wnKQorICAgICAgICAgICAgICAgICAgICBkc3QgPSBvcy5wYXRoLmpvaW4odGNsZGlyLCAnaW5pdC50Y2wnKQorICAgICAgICAgICAgICAgICAgICBzaHV0aWwuY29weWZpbGUoc3JjLCBkc3QpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICBkZWYgc2V0dXBfc2NyaXB0cyhzZWxmLCBjb250ZXh0KToKKyAgICAgICAgIiIiCisgICAgICAgIFNldCB1cCBzY3JpcHRzIGludG8gdGhlIGNyZWF0ZWQgZW52aXJvbm1lbnQgZnJvbSBhIGRpcmVjdG9yeS4KKworICAgICAgICBUaGlzIG1ldGhvZCBpbnN0YWxscyB0aGUgZGVmYXVsdCBzY3JpcHRzIGludG8gdGhlIGVudmlyb25tZW50CisgICAgICAgIGJlaW5nIGNyZWF0ZWQuIFlvdSBjYW4gcHJldmVudCB0aGUgZGVmYXVsdCBpbnN0YWxsYXRpb24gYnkgb3ZlcnJpZGluZworICAgICAgICB0aGlzIG1ldGhvZCBpZiB5b3UgcmVhbGx5IG5lZWQgdG8sIG9yIGlmIHlvdSBuZWVkIHRvIHNwZWNpZnkKKyAgICAgICAgYSBkaWZmZXJlbnQgbG9jYXRpb24gZm9yIHRoZSBzY3JpcHRzIHRvIGluc3RhbGwuIEJ5IGRlZmF1bHQsIHRoZQorICAgICAgICAnc2NyaXB0cycgZGlyZWN0b3J5IGluIHRoZSB2ZW52IHBhY2thZ2UgaXMgdXNlZCBhcyB0aGUgc291cmNlIG9mCisgICAgICAgIHNjcmlwdHMgdG8gaW5zdGFsbC4KKyAgICAgICAgIiIiCisgICAgICAgIHBhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKyAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihwYXRoLCAnc2NyaXB0cycpCisgICAgICAgIHNlbGYuaW5zdGFsbF9zY3JpcHRzKGNvbnRleHQsIHBhdGgpCisKKyAgICBkZWYgcG9zdF9zZXR1cChzZWxmLCBjb250ZXh0KToKKyAgICAgICAgIiIiCisgICAgICAgIEhvb2sgZm9yIHBvc3Qtc2V0dXAgbW9kaWZpY2F0aW9uIG9mIHRoZSB2ZW52LiBTdWJjbGFzc2VzIG1heSBpbnN0YWxsCisgICAgICAgIGFkZGl0aW9uYWwgcGFja2FnZXMgb3Igc2NyaXB0cyBoZXJlLCBhZGQgYWN0aXZhdGlvbiBzaGVsbCBzY3JpcHRzLCBldGMuCisKKyAgICAgICAgOnBhcmFtIGNvbnRleHQ6IFRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGVudmlyb25tZW50IGNyZWF0aW9uIHJlcXVlc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGJlaW5nIHByb2Nlc3NlZC4KKyAgICAgICAgIiIiCisgICAgICAgIHBhc3MKKworICAgIGRlZiByZXBsYWNlX3ZhcmlhYmxlcyhzZWxmLCB0ZXh0LCBjb250ZXh0KToKKyAgICAgICAgIiIiCisgICAgICAgIFJlcGxhY2UgdmFyaWFibGUgcGxhY2Vob2xkZXJzIGluIHNjcmlwdCB0ZXh0IHdpdGggY29udGV4dC1zcGVjaWZpYworICAgICAgICB2YXJpYWJsZXMuCisKKyAgICAgICAgUmV0dXJuIHRoZSB0ZXh0IHBhc3NlZCBpbiAsIGJ1dCB3aXRoIHZhcmlhYmxlcyByZXBsYWNlZC4KKworICAgICAgICA6cGFyYW0gdGV4dDogVGhlIHRleHQgaW4gd2hpY2ggdG8gcmVwbGFjZSBwbGFjZWhvbGRlciB2YXJpYWJsZXMuCisgICAgICAgIDpwYXJhbSBjb250ZXh0OiBUaGUgaW5mb3JtYXRpb24gZm9yIHRoZSBlbnZpcm9ubWVudCBjcmVhdGlvbiByZXF1ZXN0CisgICAgICAgICAgICAgICAgICAgICAgICBiZWluZyBwcm9jZXNzZWQuCisgICAgICAgICIiIgorICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCdfX1ZFTlZfRElSX18nLCBjb250ZXh0LmVudl9kaXIpCisgICAgICAgIHRleHQgPSB0ZXh0LnJlcGxhY2UoJ19fVkVOVl9OQU1FX18nLCBjb250ZXh0LnByb21wdCkKKyAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgnX19WRU5WX0JJTl9OQU1FX18nLCBjb250ZXh0LmJpbl9uYW1lKQorICAgICAgICB0ZXh0ID0gdGV4dC5yZXBsYWNlKCdfX1ZFTlZfUFlUSE9OX18nLCBjb250ZXh0LmVudl9leGUpCisgICAgICAgIHJldHVybiB0ZXh0CisKKyAgICBkZWYgaW5zdGFsbF9zY3JpcHRzKHNlbGYsIGNvbnRleHQsIHBhdGgpOgorICAgICAgICAiIiIKKyAgICAgICAgSW5zdGFsbCBzY3JpcHRzIGludG8gdGhlIGNyZWF0ZWQgZW52aXJvbm1lbnQgZnJvbSBhIGRpcmVjdG9yeS4KKworICAgICAgICA6cGFyYW0gY29udGV4dDogVGhlIGluZm9ybWF0aW9uIGZvciB0aGUgZW52aXJvbm1lbnQgY3JlYXRpb24gcmVxdWVzdAorICAgICAgICAgICAgICAgICAgICAgICAgYmVpbmcgcHJvY2Vzc2VkLgorICAgICAgICA6cGFyYW0gcGF0aDogICAgQWJzb2x1dGUgcGF0aG5hbWUgb2YgYSBkaXJlY3RvcnkgY29udGFpbmluZyBzY3JpcHQuCisgICAgICAgICAgICAgICAgICAgICAgICBTY3JpcHRzIGluIHRoZSAnY29tbW9uJyBzdWJkaXJlY3Rvcnkgb2YgdGhpcyBkaXJlY3RvcnksCisgICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhvc2UgaW4gdGhlIGRpcmVjdG9yeSBuYW1lZCBmb3IgdGhlIHBsYXRmb3JtCisgICAgICAgICAgICAgICAgICAgICAgICBiZWluZyBydW4gb24sIGFyZSBpbnN0YWxsZWQgaW4gdGhlIGNyZWF0ZWQgZW52aXJvbm1lbnQuCisgICAgICAgICAgICAgICAgICAgICAgICBQbGFjZWhvbGRlciB2YXJpYWJsZXMgYXJlIHJlcGxhY2VkIHdpdGggZW52aXJvbm1lbnQtCisgICAgICAgICAgICAgICAgICAgICAgICBzcGVjaWZpYyB2YWx1ZXMuCisgICAgICAgICIiIgorICAgICAgICBiaW5wYXRoID0gY29udGV4dC5iaW5fcGF0aAorICAgICAgICBwbGVuID0gbGVuKHBhdGgpCisgICAgICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKHBhdGgpOgorICAgICAgICAgICAgaWYgcm9vdCA9PSBwYXRoOiAjIGF0IHRvcC1sZXZlbCwgcmVtb3ZlIGlycmVsZXZhbnQgZGlycworICAgICAgICAgICAgICAgIGZvciBkIGluIGRpcnNbOl06CisgICAgICAgICAgICAgICAgICAgIGlmIGQgbm90IGluICgnY29tbW9uJywgb3MubmFtZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBkaXJzLnJlbW92ZShkKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlICMgaWdub3JlIGZpbGVzIGluIHRvcCBsZXZlbAorICAgICAgICAgICAgZm9yIGYgaW4gZmlsZXM6CisgICAgICAgICAgICAgICAgc3JjZmlsZSA9IG9zLnBhdGguam9pbihyb290LCBmKQorICAgICAgICAgICAgICAgIHN1ZmZpeCA9IHJvb3RbcGxlbjpdLnNwbGl0KG9zLnNlcClbMjpdCisgICAgICAgICAgICAgICAgaWYgbm90IHN1ZmZpeDoKKyAgICAgICAgICAgICAgICAgICAgZHN0ZGlyID0gYmlucGF0aAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGRzdGRpciA9IG9zLnBhdGguam9pbihiaW5wYXRoLCAqc3VmZml4KQorICAgICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkc3RkaXIpOgorICAgICAgICAgICAgICAgICAgICBvcy5tYWtlZGlycyhkc3RkaXIpCisgICAgICAgICAgICAgICAgZHN0ZmlsZSA9IG9zLnBhdGguam9pbihkc3RkaXIsIGYpCisgICAgICAgICAgICAgICAgd2l0aCBvcGVuKHNyY2ZpbGUsICdyYicpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBmLnJlYWQoKQorICAgICAgICAgICAgICAgIGlmIHNyY2ZpbGUuZW5kc3dpdGgoJy5leGUnKToKKyAgICAgICAgICAgICAgICAgICAgbW9kZSA9ICd3YicKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBtb2RlID0gJ3cnCisgICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmRlY29kZSgndXRmLTgnKQorICAgICAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5yZXBsYWNlX3ZhcmlhYmxlcyhkYXRhLCBjb250ZXh0KQorICAgICAgICAgICAgICAgIHdpdGggb3Blbihkc3RmaWxlLCBtb2RlKSBhcyBmOgorICAgICAgICAgICAgICAgICAgICBmLndyaXRlKGRhdGEpCisgICAgICAgICAgICAgICAgc2h1dGlsLmNvcHltb2RlKHNyY2ZpbGUsIGRzdGZpbGUpCisKKworZGVmIGNyZWF0ZShlbnZfZGlyLCBzeXN0ZW1fc2l0ZV9wYWNrYWdlcz1GYWxzZSwgY2xlYXI9RmFsc2UsIHN5bWxpbmtzPUZhbHNlKToKKyAgICAiIiIKKyAgICBDcmVhdGUgYSB2aXJ0dWFsIGVudmlyb25tZW50IGluIGEgZGlyZWN0b3J5LgorCisgICAgQnkgZGVmYXVsdCwgbWFrZXMgdGhlIHN5c3RlbSAoZ2xvYmFsKSBzaXRlLXBhY2thZ2VzIGRpciBhdmFpbGFibGUgdG8KKyAgICB0aGUgY3JlYXRlZCBlbnZpcm9ubWVudC4KKworICAgIDpwYXJhbSBlbnZfZGlyOiBUaGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBjcmVhdGUgYW4gZW52aXJvbm1lbnQgaW4uCisgICAgOnBhcmFtIHN5c3RlbV9zaXRlX3BhY2thZ2VzOiBJZiBUcnVlLCB0aGUgc3lzdGVtIChnbG9iYWwpIHNpdGUtcGFja2FnZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpciBpcyBhdmFpbGFibGUgdG8gdGhlIGVudmlyb25tZW50LgorICAgIDpwYXJhbSBjbGVhcjogSWYgVHJ1ZSBhbmQgdGhlIHRhcmdldCBkaXJlY3RvcnkgZXhpc3RzLCBpdCBpcyBkZWxldGVkLgorICAgICAgICAgICAgICAgICAgT3RoZXJ3aXNlLCBpZiB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBleGlzdHMsIGFuIGVycm9yIGlzCisgICAgICAgICAgICAgICAgICByYWlzZWQuCisgICAgOnBhcmFtIHN5bWxpbmtzOiBJZiBUcnVlLCBhdHRlbXB0IHRvIHN5bWxpbmsgcmF0aGVyIHRoYW4gY29weSBmaWxlcyBpbnRvCisgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIGVudmlyb25tZW50LgorICAgICIiIgorICAgIGJ1aWxkZXIgPSBFbnZCdWlsZGVyKHN5c3RlbV9zaXRlX3BhY2thZ2VzPXN5c3RlbV9zaXRlX3BhY2thZ2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhcj1jbGVhciwgc3ltbGlua3M9c3ltbGlua3MpCisgICAgYnVpbGRlci5jcmVhdGUoZW52X2RpcikKKworZGVmIG1haW4oYXJncz1Ob25lKToKKyAgICBjb21wYXRpYmxlID0gVHJ1ZQorICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMyk6CisgICAgICAgIGNvbXBhdGlibGUgPSBGYWxzZQorICAgIGVsaWYgbm90IGhhc2F0dHIoc3lzLCAnYmFzZV9wcmVmaXgnKToKKyAgICAgICAgY29tcGF0aWJsZSA9IEZhbHNlCisgICAgaWYgbm90IGNvbXBhdGlibGU6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1RoaXMgc2NyaXB0IGlzIG9ubHkgZm9yIHVzZSB3aXRoIFB5dGhvbiAzLjMnKQorICAgIGVsc2U6CisgICAgICAgIGltcG9ydCBhcmdwYXJzZQorCisgICAgICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKHByb2c9X19uYW1lX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPSdDcmVhdGVzIHZpcnR1YWwgUHl0aG9uICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Vudmlyb25tZW50cyBpbiBvbmUgb3IgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9yZSB0YXJnZXQgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlyZWN0b3JpZXMuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXBpbG9nPSdPbmNlIGFuIGVudmlyb25tZW50IGhhcyBiZWVuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGVkLCB5b3UgbWF5IHdpc2ggdG8gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2YXRlIGl0LCBlLmcuIGJ5ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzb3VyY2luZyBhbiBhY3RpdmF0ZSBzY3JpcHQgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luIGl0cyBiaW4gZGlyZWN0b3J5LicpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2RpcnMnLCBtZXRhdmFyPSdFTlZfRElSJywgbmFyZ3M9JysnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0EgZGlyZWN0b3J5IHRvIGNyZWF0ZSB0aGUgZW52aXJvbm1lbnQgaW4uJykKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1zeXN0ZW0tc2l0ZS1wYWNrYWdlcycsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVzdD0nc3lzdGVtX3NpdGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0dpdmUgdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQgYWNjZXNzIHRvIHRoZSAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3lzdGVtIHNpdGUtcGFja2FnZXMgZGlyLicpCisgICAgICAgIGlmIG9zLm5hbWUgPT0gJ250JyBvciAoc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignUFlUSE9ORlJBTUVXT1JLJykpOgorICAgICAgICAgICAgdXNlX3N5bWxpbmtzID0gRmFsc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHVzZV9zeW1saW5rcyA9IFRydWUKKyAgICAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1zeW1saW5rcycsIGRlZmF1bHQ9dXNlX3N5bWxpbmtzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlc3Q9J3N5bWxpbmtzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdUcnkgdG8gdXNlIHN5bWxpbmtzIHJhdGhlciB0aGFuIGNvcGllcywgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3doZW4gc3ltbGlua3MgYXJlIG5vdCB0aGUgZGVmYXVsdCBmb3IgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBwbGF0Zm9ybS4nKQorICAgICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWNsZWFyJywgZGVmYXVsdD1GYWxzZSwgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdjbGVhcicsIGhlbHA9J0RlbGV0ZSB0aGUgZW52aXJvbm1lbnQgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlyZWN0b3J5IGlmIGl0IGFscmVhZHkgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhpc3RzLiBJZiBub3Qgc3BlY2lmaWVkIGFuZCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgZGlyZWN0b3J5IGV4aXN0cywgYW4gZXJyb3InCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgaXMgcmFpc2VkLicpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tdXBncmFkZScsIGRlZmF1bHQ9RmFsc2UsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndXBncmFkZScsIGhlbHA9J1VwZ3JhZGUgdGhlIGVudmlyb25tZW50ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpcmVjdG9yeSB0byB1c2UgdGhpcyB2ZXJzaW9uICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29mIFB5dGhvbiwgYXNzdW1pbmcgUHl0aG9uICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhcyBiZWVuIHVwZ3JhZGVkIGluLXBsYWNlLicpCisgICAgICAgIG9wdGlvbnMgPSBwYXJzZXIucGFyc2VfYXJncyhhcmdzKQorICAgICAgICBpZiBvcHRpb25zLnVwZ3JhZGUgYW5kIG9wdGlvbnMuY2xlYXI6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCd5b3UgY2Fubm90IHN1cHBseSAtLXVwZ3JhZGUgYW5kIC0tY2xlYXIgdG9nZXRoZXIuJykKKyAgICAgICAgYnVpbGRlciA9IEVudkJ1aWxkZXIoc3lzdGVtX3NpdGVfcGFja2FnZXM9b3B0aW9ucy5zeXN0ZW1fc2l0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXI9b3B0aW9ucy5jbGVhciwgc3ltbGlua3M9b3B0aW9ucy5zeW1saW5rcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBncmFkZT1vcHRpb25zLnVwZ3JhZGUpCisgICAgICAgIGZvciBkIGluIG9wdGlvbnMuZGlyczoKKyAgICAgICAgICAgIGJ1aWxkZXIuY3JlYXRlKGQpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgcmMgPSAxCisgICAgdHJ5OgorICAgICAgICBtYWluKCkKKyAgICAgICAgcmMgPSAwCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICBwcmludCgnRXJyb3I6ICVzJyAlIGUsIGZpbGU9c3lzLnN0ZGVycikKKyAgICBzeXMuZXhpdChyYykKZGlmZiAtLWdpdCBhL0xpYi92ZW52L19fbWFpbl9fLnB5IGIvTGliL3ZlbnYvX19tYWluX18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTEyNDIzZQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi92ZW52L19fbWFpbl9fLnB5CkBAIC0wLDAgKzEsMTAgQEAKK2ltcG9ydCBzeXMKK2Zyb20gLiBpbXBvcnQgbWFpbgorCityYyA9IDEKK3RyeToKKyAgICBtYWluKCkKKyAgICByYyA9IDAKK2V4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICBwcmludCgnRXJyb3I6ICVzJyAlIGUsIGZpbGU9c3lzLnN0ZGVycikKK3N5cy5leGl0KHJjKQpkaWZmIC0tZ2l0IGEvTGliL3ZlbnYvc2NyaXB0cy9udC9BY3RpdmF0ZS5wczEgYi9MaWIvdmVudi9zY3JpcHRzL250L0FjdGl2YXRlLnBzMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjdiYTVjCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3ZlbnYvc2NyaXB0cy9udC9BY3RpdmF0ZS5wczEKQEAgLTAsMCArMSwzNCBAQAorJGVudjpWSVJUVUFMX0VOVj0iX19WRU5WX0RJUl9fIg0KKw0KKyMgUmV2ZXJ0IHRvIG9yaWdpbmFsIHZhbHVlcw0KK2lmIChUZXN0LVBhdGggZnVuY3Rpb246X09MRF9WSVJUVUFMX1BST01QVCkgew0KKyAgICBjb3B5LWl0ZW0gZnVuY3Rpb246X09MRF9WSVJUVUFMX1BST01QVCBmdW5jdGlvbjpwcm9tcHQNCisgICAgcmVtb3ZlLWl0ZW0gZnVuY3Rpb246X09MRF9WSVJUVUFMX1BST01QVA0KK30NCisNCitpZiAoVGVzdC1QYXRoIGVudjpfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRSkgew0KKyAgICBjb3B5LWl0ZW0gZW52Ol9PTERfVklSVFVBTF9QWVRIT05IT01FIGVudjpQWVRIT05IT01FDQorICAgIHJlbW92ZS1pdGVtIGVudjpfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRQ0KK30NCisNCitpZiAoVGVzdC1QYXRoIGVudjpfT0xEX1ZJUlRVQUxfUEFUSCkgew0KKyAgICBjb3B5LWl0ZW0gZW52Ol9PTERfVklSVFVBTF9QQVRIIGVudjpQQVRIDQorICAgIHJlbW92ZS1pdGVtIGVudjpfT0xEX1ZJUlRVQUxfUEFUSA0KK30NCisNCisjIFNldCB0aGUgcHJvbXB0IHRvIGluY2x1ZGUgdGhlIGVudiBuYW1lDQorY29weS1pdGVtIGZ1bmN0aW9uOnByb21wdCBmdW5jdGlvbjpfT0xEX1ZJUlRVQUxfUFJPTVBUDQorZnVuY3Rpb24gcHJvbXB0IHsNCisgICAgV3JpdGUtSG9zdCAtTm9OZXdsaW5lIC1Gb3JlZ3JvdW5kQ29sb3IgR3JlZW4gW19fVkVOVl9OQU1FX19dDQorICAgIF9PTERfVklSVFVBTF9QUk9NUFQNCit9DQorDQorIyBDbGVhciBQWVRIT05IT01FDQoraWYgKFRlc3QtUGF0aCBlbnY6UFlUSE9OSE9NRSkgew0KKyAgICBjb3B5LWl0ZW0gZW52OlBZVEhPTkhPTUUgZW52Ol9PTERfVklSVFVBTF9QWVRIT05IT01FDQorICAgIHJlbW92ZS1pdGVtIGVudjpQWVRIT05IT01FDQorfQ0KKw0KKyMgQWRkIHRoZSB2ZW52IHRvIHRoZSBQQVRIDQorY29weS1pdGVtIGVudjpQQVRIIGVudjpfT0xEX1ZJUlRVQUxfUEFUSA0KKyRlbnY6UEFUSCA9ICIkZW52OlZJUlRVQUxfRU5WXF9fVkVOVl9CSU5fTkFNRV9fOyRlbnY6UEFUSCINCmRpZmYgLS1naXQgYS9MaWIvdmVudi9zY3JpcHRzL250L0RlYWN0aXZhdGUucHMxIGIvTGliL3ZlbnYvc2NyaXB0cy9udC9EZWFjdGl2YXRlLnBzMQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZDFlOTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3ZlbnYvc2NyaXB0cy9udC9EZWFjdGl2YXRlLnBzMQpAQCAtMCwwICsxLDE5IEBACisjIFJldmVydCB0byBvcmlnaW5hbCB2YWx1ZXMNCitpZiAoVGVzdC1QYXRoIGZ1bmN0aW9uOl9PTERfVklSVFVBTF9QUk9NUFQpIHsNCisgICAgY29weS1pdGVtIGZ1bmN0aW9uOl9PTERfVklSVFVBTF9QUk9NUFQgZnVuY3Rpb246cHJvbXB0DQorICAgIHJlbW92ZS1pdGVtIGZ1bmN0aW9uOl9PTERfVklSVFVBTF9QUk9NUFQNCit9DQorDQoraWYgKFRlc3QtUGF0aCBlbnY6X09MRF9WSVJUVUFMX1BZVEhPTkhPTUUpIHsNCisgICAgY29weS1pdGVtIGVudjpfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRSBlbnY6UFlUSE9OSE9NRQ0KKyAgICByZW1vdmUtaXRlbSBlbnY6X09MRF9WSVJUVUFMX1BZVEhPTkhPTUUNCit9DQorDQoraWYgKFRlc3QtUGF0aCBlbnY6X09MRF9WSVJUVUFMX1BBVEgpIHsNCisgICAgY29weS1pdGVtIGVudjpfT0xEX1ZJUlRVQUxfUEFUSCBlbnY6UEFUSA0KKyAgICByZW1vdmUtaXRlbSBlbnY6X09MRF9WSVJUVUFMX1BBVEgNCit9DQorDQoraWYgKFRlc3QtUGF0aCBlbnY6VklSVFVBTF9FTlYpIHsNCisgICAgcmVtb3ZlLWl0ZW0gZW52OlZJUlRVQUxfRU5WDQorfQ0KZGlmZiAtLWdpdCBhL0xpYi92ZW52L3NjcmlwdHMvbnQvYWN0aXZhdGUuYmF0IGIvTGliL3ZlbnYvc2NyaXB0cy9udC9hY3RpdmF0ZS5iYXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ1ZTY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi92ZW52L3NjcmlwdHMvbnQvYWN0aXZhdGUuYmF0CkBAIC0wLDAgKzEsMzEgQEAKK0BlY2hvIG9mZg0KK3NldCBWSVJUVUFMX0VOVj1fX1ZFTlZfRElSX18NCisNCitpZiBub3QgZGVmaW5lZCBQUk9NUFQgKA0KKyAgICBzZXQgUFJPTVBUPSRQJEcNCispDQorDQoraWYgZGVmaW5lZCBfT0xEX1ZJUlRVQUxfUFJPTVBUICgNCisgICAgc2V0IFBST01QVD0lX09MRF9WSVJUVUFMX1BST01QVCUNCispDQorDQoraWYgZGVmaW5lZCBfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRSAoDQorICAgICBzZXQgUFlUSE9OSE9NRT0lX09MRF9WSVJUVUFMX1BZVEhPTkhPTUUlDQorKQ0KKw0KK3NldCBfT0xEX1ZJUlRVQUxfUFJPTVBUPSVQUk9NUFQlDQorc2V0IFBST01QVD1fX1ZFTlZfTkFNRV9fJVBST01QVCUNCisNCitpZiBkZWZpbmVkIFBZVEhPTkhPTUUgKA0KKyAgICAgc2V0IF9PTERfVklSVFVBTF9QWVRIT05IT01FPSVQWVRIT05IT01FJQ0KKyAgICAgc2V0IFBZVEhPTkhPTUU9DQorKQ0KKw0KK2lmIGRlZmluZWQgX09MRF9WSVJUVUFMX1BBVEggc2V0IFBBVEg9JV9PTERfVklSVFVBTF9QQVRIJTsgZ290byBTS0lQUEFUSA0KKw0KK3NldCBfT0xEX1ZJUlRVQUxfUEFUSD0lUEFUSCUNCisNCis6U0tJUFBBVEgNCitzZXQgUEFUSD0lVklSVFVBTF9FTlYlXF9fVkVOVl9CSU5fTkFNRV9fOyVQQVRIJQ0KKw0KKzpFTkQNCmRpZmYgLS1naXQgYS9MaWIvdmVudi9zY3JpcHRzL250L2RlYWN0aXZhdGUuYmF0IGIvTGliL3ZlbnYvc2NyaXB0cy9udC9kZWFjdGl2YXRlLmJhdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmRhNWIxCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3ZlbnYvc2NyaXB0cy9udC9kZWFjdGl2YXRlLmJhdApAQCAtMCwwICsxLDE3IEBACitAZWNobyBvZmYNCisNCitpZiBkZWZpbmVkIF9PTERfVklSVFVBTF9QUk9NUFQgKA0KKyAgICBzZXQgUFJPTVBUPSVfT0xEX1ZJUlRVQUxfUFJPTVBUJQ0KKykNCitzZXQgX09MRF9WSVJUVUFMX1BST01QVD0NCisNCitpZiBkZWZpbmVkIF9PTERfVklSVFVBTF9QWVRIT05IT01FICgNCisgICAgIHNldCBQWVRIT05IT01FPSVfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRSUNCisgICAgIHNldCBfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRT0NCispDQorDQoraWYgZGVmaW5lZCBfT0xEX1ZJUlRVQUxfUEFUSCBzZXQgUEFUSD0lX09MRF9WSVJUVUFMX1BBVEglDQorDQorc2V0IF9PTERfVklSVFVBTF9QQVRIPQ0KKw0KKzpFTkQNCmRpZmYgLS1naXQgYS9MaWIvdmVudi9zY3JpcHRzL250L3B5ZG9jLnB5IGIvTGliL3ZlbnYvc2NyaXB0cy9udC9weWRvYy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmYyZGI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGliL3ZlbnYvc2NyaXB0cy9udC9weWRvYy5weQpAQCAtMCwwICsxLDQgQEAKKyMhX19WRU5WX1BZVEhPTl9fCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGltcG9ydCBzeXMsIHB5ZG9jCisgICAgc3lzLmV4aXQocHlkb2MuY2xpKCkpCmRpZmYgLS1naXQgYS9MaWIvdmVudi9zY3JpcHRzL3Bvc2l4L2FjdGl2YXRlIGIvTGliL3ZlbnYvc2NyaXB0cy9wb3NpeC9hY3RpdmF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMjQxNDUwCi0tLSAvZGV2L251bGwKKysrIGIvTGliL3ZlbnYvc2NyaXB0cy9wb3NpeC9hY3RpdmF0ZQpAQCAtMCwwICsxLDc2IEBACisjIFRoaXMgZmlsZSBtdXN0IGJlIHVzZWQgd2l0aCAic291cmNlIGJpbi9hY3RpdmF0ZSIgKmZyb20gYmFzaCoKKyMgeW91IGNhbm5vdCBydW4gaXQgZGlyZWN0bHkKKworZGVhY3RpdmF0ZSAoKSB7CisgICAgIyByZXNldCBvbGQgZW52aXJvbm1lbnQgdmFyaWFibGVzCisgICAgaWYgWyAtbiAiJF9PTERfVklSVFVBTF9QQVRIIiBdIDsgdGhlbgorICAgICAgICBQQVRIPSIkX09MRF9WSVJUVUFMX1BBVEgiCisgICAgICAgIGV4cG9ydCBQQVRICisgICAgICAgIHVuc2V0IF9PTERfVklSVFVBTF9QQVRICisgICAgZmkKKyAgICBpZiBbIC1uICIkX09MRF9WSVJUVUFMX1BZVEhPTkhPTUUiIF0gOyB0aGVuCisgICAgICAgIFBZVEhPTkhPTUU9IiRfT0xEX1ZJUlRVQUxfUFlUSE9OSE9NRSIKKyAgICAgICAgZXhwb3J0IFBZVEhPTkhPTUUKKyAgICAgICAgdW5zZXQgX09MRF9WSVJUVUFMX1BZVEhPTkhPTUUKKyAgICBmaQorCisgICAgIyBUaGlzIHNob3VsZCBkZXRlY3QgYmFzaCBhbmQgenNoLCB3aGljaCBoYXZlIGEgaGFzaCBjb21tYW5kIHRoYXQgbXVzdAorICAgICMgYmUgY2FsbGVkIHRvIGdldCBpdCB0byBmb3JnZXQgcGFzdCBjb21tYW5kcy4gIFdpdGhvdXQgZm9yZ2V0dGluZworICAgICMgcGFzdCBjb21tYW5kcyB0aGUgJFBBVEggY2hhbmdlcyB3ZSBtYWRlIG1heSBub3QgYmUgcmVzcGVjdGVkCisgICAgaWYgWyAtbiAiJEJBU0giIC1vIC1uICIkWlNIX1ZFUlNJT04iIF0gOyB0aGVuCisgICAgICAgIGhhc2ggLXIKKyAgICBmaQorCisgICAgaWYgWyAtbiAiJF9PTERfVklSVFVBTF9QUzEiIF0gOyB0aGVuCisgICAgICAgIFBTMT0iJF9PTERfVklSVFVBTF9QUzEiCisgICAgICAgIGV4cG9ydCBQUzEKKyAgICAgICAgdW5zZXQgX09MRF9WSVJUVUFMX1BTMQorICAgIGZpCisKKyAgICB1bnNldCBWSVJUVUFMX0VOVgorICAgIGlmIFsgISAiJDEiID0gIm5vbmRlc3RydWN0aXZlIiBdIDsgdGhlbgorICAgICMgU2VsZiBkZXN0cnVjdCEKKyAgICAgICAgdW5zZXQgLWYgZGVhY3RpdmF0ZQorICAgIGZpCit9CisKKyMgdW5zZXQgaXJyZWxhdmVudCB2YXJpYWJsZXMKK2RlYWN0aXZhdGUgbm9uZGVzdHJ1Y3RpdmUKKworVklSVFVBTF9FTlY9Il9fVkVOVl9ESVJfXyIKK2V4cG9ydCBWSVJUVUFMX0VOVgorCitfT0xEX1ZJUlRVQUxfUEFUSD0iJFBBVEgiCitQQVRIPSIkVklSVFVBTF9FTlYvX19WRU5WX0JJTl9OQU1FX186JFBBVEgiCitleHBvcnQgUEFUSAorCisjIHVuc2V0IFBZVEhPTkhPTUUgaWYgc2V0CisjIHRoaXMgd2lsbCBmYWlsIGlmIFBZVEhPTkhPTUUgaXMgc2V0IHRvIHRoZSBlbXB0eSBzdHJpbmcgKHdoaWNoIGlzIGJhZCBhbnl3YXkpCisjIGNvdWxkIHVzZSBgaWYgKHNldCAtdTsgOiAkUFlUSE9OSE9NRSkgO2AgaW4gYmFzaAoraWYgWyAtbiAiJFBZVEhPTkhPTUUiIF0gOyB0aGVuCisgICAgX09MRF9WSVJUVUFMX1BZVEhPTkhPTUU9IiRQWVRIT05IT01FIgorICAgIHVuc2V0IFBZVEhPTkhPTUUKK2ZpCisKK2lmIFsgLXogIiRWSVJUVUFMX0VOVl9ESVNBQkxFX1BST01QVCIgXSA7IHRoZW4KKyAgICBfT0xEX1ZJUlRVQUxfUFMxPSIkUFMxIgorICAgIGlmIFsgInhfX1ZFTlZfTkFNRV9fIiAhPSB4IF0gOyB0aGVuCisJUFMxPSJfX1ZFTlZfTkFNRV9fJFBTMSIKKyAgICBlbHNlCisgICAgaWYgWyAiYGJhc2VuYW1lIFwiJFZJUlRVQUxfRU5WXCJgIiA9ICJfXyIgXSA7IHRoZW4KKyAgICAgICAgIyBzcGVjaWFsIGNhc2UgZm9yIEFzcGVuIG1hZ2ljIGRpcmVjdG9yaWVzCisgICAgICAgICMgc2VlIGh0dHA6Ly93d3cuemV0YWRldi5jb20vc29mdHdhcmUvYXNwZW4vCisgICAgICAgIFBTMT0iW2BiYXNlbmFtZSBcYGRpcm5hbWUgXCIkVklSVFVBTF9FTlZcIlxgYF0gJFBTMSIKKyAgICBlbHNlCisgICAgICAgIFBTMT0iKGBiYXNlbmFtZSBcIiRWSVJUVUFMX0VOVlwiYCkkUFMxIgorICAgIGZpCisgICAgZmkKKyAgICBleHBvcnQgUFMxCitmaQorCisjIFRoaXMgc2hvdWxkIGRldGVjdCBiYXNoIGFuZCB6c2gsIHdoaWNoIGhhdmUgYSBoYXNoIGNvbW1hbmQgdGhhdCBtdXN0CisjIGJlIGNhbGxlZCB0byBnZXQgaXQgdG8gZm9yZ2V0IHBhc3QgY29tbWFuZHMuICBXaXRob3V0IGZvcmdldHRpbmcKKyMgcGFzdCBjb21tYW5kcyB0aGUgJFBBVEggY2hhbmdlcyB3ZSBtYWRlIG1heSBub3QgYmUgcmVzcGVjdGVkCitpZiBbIC1uICIkQkFTSCIgLW8gLW4gIiRaU0hfVkVSU0lPTiIgXSA7IHRoZW4KKyAgICBoYXNoIC1yCitmaQpkaWZmIC0tZ2l0IGEvTGliL3ZlbnYvc2NyaXB0cy9wb3NpeC9weWRvYyBiL0xpYi92ZW52L3NjcmlwdHMvcG9zaXgvcHlkb2MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTIzMzc3MQotLS0gL2Rldi9udWxsCisrKyBiL0xpYi92ZW52L3NjcmlwdHMvcG9zaXgvcHlkb2MKQEAgLTAsMCArMSw1IEBACisjIV9fVkVOVl9QWVRIT05fXworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBpbXBvcnQgc3lzLCBweWRvYworICAgIHN5cy5leGl0KHB5ZG9jLmNsaSgpKQorCmRpZmYgLS1naXQgYS9MaWIvd2ViYnJvd3Nlci5weSBiL0xpYi93ZWJicm93c2VyLnB5CmluZGV4IDZmOTY3YjYuLjViNDQxZTYgMTAwNjQ0Ci0tLSBhL0xpYi93ZWJicm93c2VyLnB5CisrKyBiL0xpYi93ZWJicm93c2VyLnB5CkBAIC0yOTksNiArMjk5LDE4IEBACiAgICAgYmFja2dyb3VuZCA9IFRydWUKIAogCitjbGFzcyBDaHJvbWUoVW5peEJyb3dzZXIpOgorICAgICJMYXVuY2hlciBjbGFzcyBmb3IgR29vZ2xlIENocm9tZSBicm93c2VyLiIKKworICAgIHJlbW90ZV9hcmdzID0gWyclYWN0aW9uJywgJyVzJ10KKyAgICByZW1vdGVfYWN0aW9uID0gIiIKKyAgICByZW1vdGVfYWN0aW9uX25ld3dpbiA9ICItLW5ldy13aW5kb3ciCisgICAgcmVtb3RlX2FjdGlvbl9uZXd0YWIgPSAiIgorICAgIGJhY2tncm91bmQgPSBUcnVlCisKK0Nocm9taXVtID0gQ2hyb21lCisKKwogY2xhc3MgT3BlcmEoVW5peEJyb3dzZXIpOgogICAgICJMYXVuY2hlciBjbGFzcyBmb3IgT3BlcmEgYnJvd3Nlci4iCiAKQEAgLTQzNiw2ICs0NDgsMTQgQEAKIAogZGVmIHJlZ2lzdGVyX1hfYnJvd3NlcnMoKToKIAorICAgICMgdXNlIHhkZy1vcGVuIGlmIGFyb3VuZAorICAgIGlmIF9pc2NvbW1hbmQoInhkZy1vcGVuIik6CisgICAgICAgIHJlZ2lzdGVyKCJ4ZGctb3BlbiIsIE5vbmUsIEJhY2tncm91bmRCcm93c2VyKCJ4ZGctb3BlbiIpKQorCisgICAgIyBUaGUgZGVmYXVsdCBHTk9NRTMgYnJvd3NlcgorICAgIGlmICJHTk9NRV9ERVNLVE9QX1NFU1NJT05fSUQiIGluIG9zLmVudmlyb24gYW5kIF9pc2NvbW1hbmQoImd2ZnMtb3BlbiIpOgorICAgICAgICByZWdpc3RlcigiZ3Zmcy1vcGVuIiwgTm9uZSwgQmFja2dyb3VuZEJyb3dzZXIoImd2ZnMtb3BlbiIpKQorCiAgICAgIyBUaGUgZGVmYXVsdCBHTk9NRSBicm93c2VyCiAgICAgaWYgIkdOT01FX0RFU0tUT1BfU0VTU0lPTl9JRCIgaW4gb3MuZW52aXJvbiBhbmQgX2lzY29tbWFuZCgiZ25vbWUtb3BlbiIpOgogICAgICAgICByZWdpc3RlcigiZ25vbWUtb3BlbiIsIE5vbmUsIEJhY2tncm91bmRCcm93c2VyKCJnbm9tZS1vcGVuIikpCkBAIC00NjYsNiArNDg2LDExIEBACiAgICAgaWYgX2lzY29tbWFuZCgic2tpcHN0b25lIik6CiAgICAgICAgIHJlZ2lzdGVyKCJza2lwc3RvbmUiLCBOb25lLCBCYWNrZ3JvdW5kQnJvd3Nlcigic2tpcHN0b25lIikpCiAKKyAgICAjIEdvb2dsZSBDaHJvbWUvQ2hyb21pdW0gYnJvd3NlcnMKKyAgICBmb3IgYnJvd3NlciBpbiAoImdvb2dsZS1jaHJvbWUiLCAiY2hyb21lIiwgImNocm9taXVtIiwgImNocm9taXVtLWJyb3dzZXIiKToKKyAgICAgICAgaWYgX2lzY29tbWFuZChicm93c2VyKToKKyAgICAgICAgICAgIHJlZ2lzdGVyKGJyb3dzZXIsIE5vbmUsIENocm9tZShicm93c2VyKSkKKwogICAgICMgT3BlcmEsIHF1aXRlIHBvcHVsYXIKICAgICBpZiBfaXNjb21tYW5kKCJvcGVyYSIpOgogICAgICAgICByZWdpc3Rlcigib3BlcmEiLCBOb25lLCBPcGVyYSgib3BlcmEiKSkKZGlmZiAtLWdpdCBhL0xpYi93c2dpcmVmLmVnZy1pbmZvIGIvTGliL3dzZ2lyZWYuZWdnLWluZm8KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwYjc4OTMuLjAwMDAwMDAKLS0tIGEvTGliL3dzZ2lyZWYuZWdnLWluZm8KKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLU1ldGFkYXRhLVZlcnNpb246IDEuMAotTmFtZTogd3NnaXJlZgotVmVyc2lvbjogMC4xLjIKLVN1bW1hcnk6IFdTR0kgKFBFUCAzMzMpIFJlZmVyZW5jZSBMaWJyYXJ5Ci1BdXRob3I6IFBoaWxsaXAgSi4gRWJ5Ci1BdXRob3ItZW1haWw6IHdlYi1zaWdAcHl0aG9uLm9yZwotTGljZW5zZTogUFNGIG9yIFpQTAotUGxhdGZvcm06IFVOS05PV04KZGlmZiAtLWdpdCBhL0xpYi93c2dpcmVmL3NpbXBsZV9zZXJ2ZXIucHkgYi9MaWIvd3NnaXJlZi9zaW1wbGVfc2VydmVyLnB5CmluZGV4IGFmODJmOTUuLmE2MDE1ZmIgMTAwNjQ0Ci0tLSBhL0xpYi93c2dpcmVmL3NpbXBsZV9zZXJ2ZXIucHkKKysrIGIvTGliL3dzZ2lyZWYvc2ltcGxlX3NlcnZlci5weQpAQCAtMTQsMTMgKzE0LDE0IEBACiBpbXBvcnQgc3lzCiBpbXBvcnQgdXJsbGliLnBhcnNlCiBmcm9tIHdzZ2lyZWYuaGFuZGxlcnMgaW1wb3J0IFNpbXBsZUhhbmRsZXIKK2Zyb20gcGxhdGZvcm0gaW1wb3J0IHB5dGhvbl9pbXBsZW1lbnRhdGlvbgogCiBfX3ZlcnNpb25fXyA9ICIwLjIiCiBfX2FsbF9fID0gWydXU0dJU2VydmVyJywgJ1dTR0lSZXF1ZXN0SGFuZGxlcicsICdkZW1vX2FwcCcsICdtYWtlX3NlcnZlciddCiAKIAogc2VydmVyX3ZlcnNpb24gPSAiV1NHSVNlcnZlci8iICsgX192ZXJzaW9uX18KLXN5c192ZXJzaW9uID0gIlB5dGhvbi8iICsgc3lzLnZlcnNpb24uc3BsaXQoKVswXQorc3lzX3ZlcnNpb24gPSBweXRob25faW1wbGVtZW50YXRpb24oKSArICIvIiArIHN5cy52ZXJzaW9uLnNwbGl0KClbMF0KIHNvZnR3YXJlX3ZlcnNpb24gPSBzZXJ2ZXJfdmVyc2lvbiArICcgJyArIHN5c192ZXJzaW9uCiAKIApkaWZmIC0tZ2l0IGEvTGliL3hkcmxpYi5weSBiL0xpYi94ZHJsaWIucHkKaW5kZXggNGU0ODY3Ny4uODZlNjI0ZiAxMDA2NDQKLS0tIGEvTGliL3hkcmxpYi5weQorKysgYi9MaWIveGRybGliLnB5CkBAIC0xNDEsMTEgKzE0MSw3IEBACiAgICAgICAgIGRhdGEgPSBzZWxmLl9fYnVmW2k6al0KICAgICAgICAgaWYgbGVuKGRhdGEpIDwgNDoKICAgICAgICAgICAgIHJhaXNlIEVPRkVycm9yCi0gICAgICAgIHggPSBzdHJ1Y3QudW5wYWNrKCc+TCcsIGRhdGEpWzBdCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBpbnQoeCkKLSAgICAgICAgZXhjZXB0IE92ZXJmbG93RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4geAorICAgICAgICByZXR1cm4gc3RydWN0LnVucGFjaygnPkwnLCBkYXRhKVswXQogCiAgICAgZGVmIHVucGFja19pbnQoc2VsZik6CiAgICAgICAgIGkgPSBzZWxmLl9fcG9zCmRpZmYgLS1naXQgYS9MaWIveG1sL2RvbS9fX2luaXRfXy5weSBiL0xpYi94bWwvZG9tL19faW5pdF9fLnB5CmluZGV4IDQ0MDFiZGYuLjk3Y2Y5YTYgMTAwNjQ0Ci0tLSBhL0xpYi94bWwvZG9tL19faW5pdF9fLnB5CisrKyBiL0xpYi94bWwvZG9tL19faW5pdF9fLnB5CkBAIC0xNyw2ICsxNyw3IEBACiAKIGNsYXNzIE5vZGU6CiAgICAgIiIiQ2xhc3MgZ2l2aW5nIHRoZSBOb2RlVHlwZSBjb25zdGFudHMuIiIiCisgICAgX19zbG90c19fID0gKCkKIAogICAgICMgRE9NIGltcGxlbWVudGF0aW9ucyBtYXkgdXNlIHRoaXMgYXMgYSBiYXNlIGNsYXNzIGZvciB0aGVpciBvd24KICAgICAjIE5vZGUgaW1wbGVtZW50YXRpb25zLiAgSWYgdGhleSBkb24ndCwgdGhlIGNvbnN0YW50cyBkZWZpbmVkIGhlcmUKZGlmZiAtLWdpdCBhL0xpYi94bWwvZG9tL2RvbXJlZy5weSBiL0xpYi94bWwvZG9tL2RvbXJlZy5weQppbmRleCBjYjM1YmIwLi44YzNkOTAxIDEwMDY0NAotLS0gYS9MaWIveG1sL2RvbS9kb21yZWcucHkKKysrIGIvTGliL3htbC9kb20vZG9tcmVnLnB5CkBAIC0yLDggKzIsNiBAQAogZGlyZWN0bHkuIEluc3RlYWQsIHRoZSBmdW5jdGlvbnMgZ2V0RE9NSW1wbGVtZW50YXRpb24gYW5kCiByZWdpc3RlckRPTUltcGxlbWVudGF0aW9uIHNob3VsZCBiZSBpbXBvcnRlZCBmcm9tIHhtbC5kb20uIiIiCiAKLWZyb20geG1sLmRvbS5taW5pY29tcGF0IGltcG9ydCAqICAjIGlzaW5zdGFuY2UsIFN0cmluZ1R5cGVzCi0KICMgVGhpcyBpcyBhIGxpc3Qgb2Ygd2VsbC1rbm93biBpbXBsZW1lbnRhdGlvbnMuICBXZWxsLWtub3duIG5hbWVzCiAjIHNob3VsZCBiZSBwdWJsaXNoZWQgYnkgcG9zdGluZyB0byB4bWwtc2lnQHB5dGhvbi5vcmcsIGFuZCBhcmUKICMgc3Vic2VxdWVudGx5IHJlY29yZGVkIGluIHRoaXMgZmlsZS4KZGlmZiAtLWdpdCBhL0xpYi94bWwvZG9tL2V4cGF0YnVpbGRlci5weSBiL0xpYi94bWwvZG9tL2V4cGF0YnVpbGRlci5weQppbmRleCBhOThmZTAzLi5mMDc0YWI5IDEwMDY0NAotLS0gYS9MaWIveG1sL2RvbS9leHBhdGJ1aWxkZXIucHkKKysrIGIvTGliL3htbC9kb20vZXhwYXRidWlsZGVyLnB5CkBAIC0zMyw4ICszMyw2IEBACiBmcm9tIHhtbC5kb20ubWluaWRvbSBpbXBvcnQgX2FwcGVuZF9jaGlsZCwgX3NldF9hdHRyaWJ1dGVfbm9kZQogZnJvbSB4bWwuZG9tLk5vZGVGaWx0ZXIgaW1wb3J0IE5vZGVGaWx0ZXIKIAotZnJvbSB4bWwuZG9tLm1pbmljb21wYXQgaW1wb3J0ICoKLQogVEVYVF9OT0RFID0gTm9kZS5URVhUX05PREUKIENEQVRBX1NFQ1RJT05fTk9ERSA9IE5vZGUuQ0RBVEFfU0VDVElPTl9OT0RFCiBET0NVTUVOVF9OT0RFID0gTm9kZS5ET0NVTUVOVF9OT0RFCkBAIC0yODMsMjcgKzI4MSwyMyBAQAogICAgICAgICBlbGlmIGNoaWxkTm9kZXMgYW5kIGNoaWxkTm9kZXNbLTFdLm5vZGVUeXBlID09IFRFWFRfTk9ERToKICAgICAgICAgICAgIG5vZGUgPSBjaGlsZE5vZGVzWy0xXQogICAgICAgICAgICAgdmFsdWUgPSBub2RlLmRhdGEgKyBkYXRhCi0gICAgICAgICAgICBkID0gbm9kZS5fX2RpY3RfXwotICAgICAgICAgICAgZFsnZGF0YSddID0gZFsnbm9kZVZhbHVlJ10gPSB2YWx1ZQorICAgICAgICAgICAgbm9kZS5kYXRhID0gdmFsdWUKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbm9kZSA9IG1pbmlkb20uVGV4dCgpCi0gICAgICAgICAgICBkID0gbm9kZS5fX2RpY3RfXwotICAgICAgICAgICAgZFsnZGF0YSddID0gZFsnbm9kZVZhbHVlJ10gPSBkYXRhCi0gICAgICAgICAgICBkWydvd25lckRvY3VtZW50J10gPSBzZWxmLmRvY3VtZW50CisgICAgICAgICAgICBub2RlLmRhdGEgPSBkYXRhCisgICAgICAgICAgICBub2RlLm93bmVyRG9jdW1lbnQgPSBzZWxmLmRvY3VtZW50CiAgICAgICAgIF9hcHBlbmRfY2hpbGQoc2VsZi5jdXJOb2RlLCBub2RlKQogCiAgICAgZGVmIGNoYXJhY3Rlcl9kYXRhX2hhbmRsZXIoc2VsZiwgZGF0YSk6CiAgICAgICAgIGNoaWxkTm9kZXMgPSBzZWxmLmN1ck5vZGUuY2hpbGROb2RlcwogICAgICAgICBpZiBjaGlsZE5vZGVzIGFuZCBjaGlsZE5vZGVzWy0xXS5ub2RlVHlwZSA9PSBURVhUX05PREU6CiAgICAgICAgICAgICBub2RlID0gY2hpbGROb2Rlc1stMV0KLSAgICAgICAgICAgIGQgPSBub2RlLl9fZGljdF9fCi0gICAgICAgICAgICBkWydkYXRhJ10gPSBkWydub2RlVmFsdWUnXSA9IG5vZGUuZGF0YSArIGRhdGEKKyAgICAgICAgICAgIG5vZGUuZGF0YSA9IG5vZGUuZGF0YSArIGRhdGEKICAgICAgICAgICAgIHJldHVybgogICAgICAgICBub2RlID0gbWluaWRvbS5UZXh0KCkKLSAgICAgICAgZCA9IG5vZGUuX19kaWN0X18KLSAgICAgICAgZFsnZGF0YSddID0gZFsnbm9kZVZhbHVlJ10gPSBub2RlLmRhdGEgKyBkYXRhCi0gICAgICAgIGRbJ293bmVyRG9jdW1lbnQnXSA9IHNlbGYuZG9jdW1lbnQKKyAgICAgICAgbm9kZS5kYXRhID0gbm9kZS5kYXRhICsgZGF0YQorICAgICAgICBub2RlLm93bmVyRG9jdW1lbnQgPSBzZWxmLmRvY3VtZW50CiAgICAgICAgIF9hcHBlbmRfY2hpbGQoc2VsZi5jdXJOb2RlLCBub2RlKQogCiAgICAgZGVmIGVudGl0eV9kZWNsX2hhbmRsZXIoc2VsZiwgZW50aXR5TmFtZSwgaXNfcGFyYW1ldGVyX2VudGl0eSwgdmFsdWUsCkBAIC0zNjMsMTEgKzM1Nyw4IEBACiAgICAgICAgICAgICAgICAgYSA9IG1pbmlkb20uQXR0cihhdHRyaWJ1dGVzW2ldLCBFTVBUWV9OQU1FU1BBQ0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLCBFTVBUWV9QUkVGSVgpCiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhdHRyaWJ1dGVzW2krMV0KLSAgICAgICAgICAgICAgICBkID0gYS5jaGlsZE5vZGVzWzBdLl9fZGljdF9fCi0gICAgICAgICAgICAgICAgZFsnZGF0YSddID0gZFsnbm9kZVZhbHVlJ10gPSB2YWx1ZQotICAgICAgICAgICAgICAgIGQgPSBhLl9fZGljdF9fCi0gICAgICAgICAgICAgICAgZFsndmFsdWUnXSA9IGRbJ25vZGVWYWx1ZSddID0gdmFsdWUKLSAgICAgICAgICAgICAgICBkWydvd25lckRvY3VtZW50J10gPSBzZWxmLmRvY3VtZW50CisgICAgICAgICAgICAgICAgYS52YWx1ZSA9IHZhbHVlCisgICAgICAgICAgICAgICAgYS5vd25lckRvY3VtZW50ID0gc2VsZi5kb2N1bWVudAogICAgICAgICAgICAgICAgIF9zZXRfYXR0cmlidXRlX25vZGUobm9kZSwgYSkKIAogICAgICAgICBpZiBub2RlIGlzIG5vdCBzZWxmLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDoKQEAgLTc2MSwxNSArNzUyLDEzIEBACiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgYSA9IG1pbmlkb20uQXR0cigieG1sbnMiLCBYTUxOU19OQU1FU1BBQ0UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInhtbG5zIiwgRU1QVFlfUFJFRklYKQotICAgICAgICAgICAgICAgIGQgPSBhLmNoaWxkTm9kZXNbMF0uX19kaWN0X18KLSAgICAgICAgICAgICAgICBkWydkYXRhJ10gPSBkWydub2RlVmFsdWUnXSA9IHVyaQotICAgICAgICAgICAgICAgIGQgPSBhLl9fZGljdF9fCi0gICAgICAgICAgICAgICAgZFsndmFsdWUnXSA9IGRbJ25vZGVWYWx1ZSddID0gdXJpCi0gICAgICAgICAgICAgICAgZFsnb3duZXJEb2N1bWVudCddID0gc2VsZi5kb2N1bWVudAorICAgICAgICAgICAgICAgIGEudmFsdWUgPSB1cmkKKyAgICAgICAgICAgICAgICBhLm93bmVyRG9jdW1lbnQgPSBzZWxmLmRvY3VtZW50CiAgICAgICAgICAgICAgICAgX3NldF9hdHRyaWJ1dGVfbm9kZShub2RlLCBhKQogICAgICAgICAgICAgZGVsIHNlbGYuX25zX29yZGVyZWRfcHJlZml4ZXNbOl0KIAogICAgICAgICBpZiBhdHRyaWJ1dGVzOgorICAgICAgICAgICAgbm9kZS5fZW5zdXJlX2F0dHJpYnV0ZXMoKQogICAgICAgICAgICAgX2F0dHJzID0gbm9kZS5fYXR0cnMKICAgICAgICAgICAgIF9hdHRyc05TID0gbm9kZS5fYXR0cnNOUwogICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVuKGF0dHJpYnV0ZXMpLCAyKToKQEAgLTc4NSwxMiArNzc0LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmFtZSwgRU1QVFlfUFJFRklYKQogICAgICAgICAgICAgICAgICAgICBfYXR0cnNbYW5hbWVdID0gYQogICAgICAgICAgICAgICAgICAgICBfYXR0cnNOU1soRU1QVFlfTkFNRVNQQUNFLCBhbmFtZSldID0gYQotICAgICAgICAgICAgICAgIGQgPSBhLmNoaWxkTm9kZXNbMF0uX19kaWN0X18KLSAgICAgICAgICAgICAgICBkWydkYXRhJ10gPSBkWydub2RlVmFsdWUnXSA9IHZhbHVlCi0gICAgICAgICAgICAgICAgZCA9IGEuX19kaWN0X18KLSAgICAgICAgICAgICAgICBkWydvd25lckRvY3VtZW50J10gPSBzZWxmLmRvY3VtZW50Ci0gICAgICAgICAgICAgICAgZFsndmFsdWUnXSA9IGRbJ25vZGVWYWx1ZSddID0gdmFsdWUKLSAgICAgICAgICAgICAgICBkWydvd25lckVsZW1lbnQnXSA9IG5vZGUKKyAgICAgICAgICAgICAgICBhLm93bmVyRG9jdW1lbnQgPSBzZWxmLmRvY3VtZW50CisgICAgICAgICAgICAgICAgYS52YWx1ZSA9IHZhbHVlCisgICAgICAgICAgICAgICAgYS5vd25lckVsZW1lbnQgPSBub2RlCiAKICAgICBpZiBfX2RlYnVnX186CiAgICAgICAgICMgVGhpcyBvbmx5IGFkZHMgc29tZSBhc3NlcnRzIHRvIHRoZSBvcmlnaW5hbApkaWZmIC0tZ2l0IGEvTGliL3htbC9kb20vbWluaWRvbS5weSBiL0xpYi94bWwvZG9tL21pbmlkb20ucHkKaW5kZXggZjIzYWQwNS4uMjc1ZTIwYyAxMDA2NDQKLS0tIGEvTGliL3htbC9kb20vbWluaWRvbS5weQorKysgYi9MaWIveG1sL2RvbS9taW5pZG9tLnB5CkBAIC02MiwxMCArNjIsNyBAQAogICAgICAgICAgICAgcmV0dXJuIHdyaXRlci5zdHJlYW0uZ2V0dmFsdWUoKQogCiAgICAgZGVmIGhhc0NoaWxkTm9kZXMoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY2hpbGROb2RlczoKLSAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5jaGlsZE5vZGVzKQogCiAgICAgZGVmIF9nZXRfY2hpbGROb2RlcyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuY2hpbGROb2RlcwpAQCAtMjg2LDEwICsyODMsMTAgQEAKICAgICBjaGlsZE5vZGVzID0gc2VsZi5jaGlsZE5vZGVzCiAgICAgaWYgY2hpbGROb2RlczoKICAgICAgICAgbGFzdCA9IGNoaWxkTm9kZXNbLTFdCi0gICAgICAgIG5vZGUuX19kaWN0X19bInByZXZpb3VzU2libGluZyJdID0gbGFzdAotICAgICAgICBsYXN0Ll9fZGljdF9fWyJuZXh0U2libGluZyJdID0gbm9kZQorICAgICAgICBub2RlLnByZXZpb3VzU2libGluZyA9IGxhc3QKKyAgICAgICAgbGFzdC5uZXh0U2libGluZyA9IG5vZGUKICAgICBjaGlsZE5vZGVzLmFwcGVuZChub2RlKQotICAgIG5vZGUuX19kaWN0X19bInBhcmVudE5vZGUiXSA9IHNlbGYKKyAgICBub2RlLnBhcmVudE5vZGUgPSBzZWxmCiAKIGRlZiBfaW5fZG9jdW1lbnQobm9kZSk6CiAgICAgIyByZXR1cm4gVHJ1ZSBpZmYgbm9kZSBpcyBwYXJ0IG9mIGEgZG9jdW1lbnQgdHJlZQpAQCAtMzQyLDkgKzMzOSwxMCBAQAogCiAKIGNsYXNzIEF0dHIoTm9kZSk6CisgICAgX19zbG90c19fPSgnX25hbWUnLCAnX3ZhbHVlJywgJ25hbWVzcGFjZVVSSScsCisgICAgICAgICAgICAgICAnX3ByZWZpeCcsICdjaGlsZE5vZGVzJywgJ19sb2NhbE5hbWUnLCAnb3duZXJEb2N1bWVudCcsICdvd25lckVsZW1lbnQnKQogICAgIG5vZGVUeXBlID0gTm9kZS5BVFRSSUJVVEVfTk9ERQogICAgIGF0dHJpYnV0ZXMgPSBOb25lCi0gICAgb3duZXJFbGVtZW50ID0gTm9uZQogICAgIHNwZWNpZmllZCA9IEZhbHNlCiAgICAgX2lzX2lkID0gRmFsc2UKIApAQCAtMzUyLDEyICszNTAsMTEgQEAKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBxTmFtZSwgbmFtZXNwYWNlVVJJPUVNUFRZX05BTUVTUEFDRSwgbG9jYWxOYW1lPU5vbmUsCiAgICAgICAgICAgICAgICAgIHByZWZpeD1Ob25lKToKLSAgICAgICAgIyBza2lwIHNldGF0dHIgZm9yIHBlcmZvcm1hbmNlCi0gICAgICAgIGQgPSBzZWxmLl9fZGljdF9fCi0gICAgICAgIGRbIm5vZGVOYW1lIl0gPSBkWyJuYW1lIl0gPSBxTmFtZQotICAgICAgICBkWyJuYW1lc3BhY2VVUkkiXSA9IG5hbWVzcGFjZVVSSQotICAgICAgICBkWyJwcmVmaXgiXSA9IHByZWZpeAotICAgICAgICBkWydjaGlsZE5vZGVzJ10gPSBOb2RlTGlzdCgpCisgICAgICAgIHNlbGYub3duZXJFbGVtZW50ID0gTm9uZQorICAgICAgICBzZWxmLl9uYW1lID0gcU5hbWUKKyAgICAgICAgc2VsZi5uYW1lc3BhY2VVUkkgPSBuYW1lc3BhY2VVUkkKKyAgICAgICAgc2VsZi5fcHJlZml4ID0gcHJlZml4CisgICAgICAgIHNlbGYuY2hpbGROb2RlcyA9IE5vZGVMaXN0KCkKIAogICAgICAgICAjIEFkZCB0aGUgc2luZ2xlIGNoaWxkIG5vZGUgdGhhdCByZXByZXNlbnRzIHRoZSB2YWx1ZSBvZiB0aGUgYXR0cgogICAgICAgICBzZWxmLmNoaWxkTm9kZXMuYXBwZW5kKFRleHQoKSkKQEAgLTM2NSw5ICszNjIsMTAgQEAKICAgICAgICAgIyBub2RlVmFsdWUgYW5kIHZhbHVlIGFyZSBzZXQgZWxzZXdoZXJlCiAKICAgICBkZWYgX2dldF9sb2NhbE5hbWUoc2VsZik6Ci0gICAgICAgIGlmICdsb2NhbE5hbWUnIGluIHNlbGYuX19kaWN0X186Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5fX2RpY3RfX1snbG9jYWxOYW1lJ10KLSAgICAgICAgcmV0dXJuIHNlbGYubm9kZU5hbWUuc3BsaXQoIjoiLCAxKVstMV0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xvY2FsTmFtZQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5ub2RlTmFtZS5zcGxpdCgiOiIsIDEpWy0xXQogCiAgICAgZGVmIF9nZXRfbmFtZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYubmFtZQpAQCAtMzc1LDIwICszNzMsMzAgQEAKICAgICBkZWYgX2dldF9zcGVjaWZpZWQoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNwZWNpZmllZAogCi0gICAgZGVmIF9fc2V0YXR0cl9fKHNlbGYsIG5hbWUsIHZhbHVlKToKLSAgICAgICAgZCA9IHNlbGYuX19kaWN0X18KLSAgICAgICAgaWYgbmFtZSBpbiAoInZhbHVlIiwgIm5vZGVWYWx1ZSIpOgotICAgICAgICAgICAgZFsidmFsdWUiXSA9IGRbIm5vZGVWYWx1ZSJdID0gdmFsdWUKLSAgICAgICAgICAgIGQyID0gc2VsZi5jaGlsZE5vZGVzWzBdLl9fZGljdF9fCi0gICAgICAgICAgICBkMlsiZGF0YSJdID0gZDJbIm5vZGVWYWx1ZSJdID0gdmFsdWUKLSAgICAgICAgICAgIGlmIHNlbGYub3duZXJFbGVtZW50IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIF9jbGVhcl9pZF9jYWNoZShzZWxmLm93bmVyRWxlbWVudCkKLSAgICAgICAgZWxpZiBuYW1lIGluICgibmFtZSIsICJub2RlTmFtZSIpOgotICAgICAgICAgICAgZFsibmFtZSJdID0gZFsibm9kZU5hbWUiXSA9IHZhbHVlCi0gICAgICAgICAgICBpZiBzZWxmLm93bmVyRWxlbWVudCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBfY2xlYXJfaWRfY2FjaGUoc2VsZi5vd25lckVsZW1lbnQpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBkW25hbWVdID0gdmFsdWUKKyAgICBkZWYgX2dldF9uYW1lKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fbmFtZQorCisgICAgZGVmIF9zZXRfbmFtZShzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYuX25hbWUgPSB2YWx1ZQorICAgICAgICBpZiBzZWxmLm93bmVyRWxlbWVudCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIF9jbGVhcl9pZF9jYWNoZShzZWxmLm93bmVyRWxlbWVudCkKKworICAgIG5vZGVOYW1lID0gbmFtZSA9IHByb3BlcnR5KF9nZXRfbmFtZSwgX3NldF9uYW1lKQorCisgICAgZGVmIF9nZXRfdmFsdWUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl92YWx1ZQorCisgICAgZGVmIF9zZXRfdmFsdWUoc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLl92YWx1ZSA9IHZhbHVlCisgICAgICAgIHNlbGYuY2hpbGROb2Rlc1swXS5kYXRhID0gdmFsdWUKKyAgICAgICAgaWYgc2VsZi5vd25lckVsZW1lbnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBfY2xlYXJfaWRfY2FjaGUoc2VsZi5vd25lckVsZW1lbnQpCisgICAgICAgIHNlbGYuY2hpbGROb2Rlc1swXS5kYXRhID0gdmFsdWUKKworICAgIG5vZGVWYWx1ZSA9IHZhbHVlID0gcHJvcGVydHkoX2dldF92YWx1ZSwgX3NldF92YWx1ZSkKKworICAgIGRlZiBfZ2V0X3ByZWZpeChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX3ByZWZpeAogCiAgICAgZGVmIF9zZXRfcHJlZml4KHNlbGYsIHByZWZpeCk6CiAgICAgICAgIG5zdXJpID0gc2VsZi5uYW1lc3BhY2VVUkkKQEAgLTM5NiwyMiArNDA0LDE2IEBACiAgICAgICAgICAgICBpZiBuc3VyaSBhbmQgbnN1cmkgIT0gWE1MTlNfTkFNRVNQQUNFOgogICAgICAgICAgICAgICAgIHJhaXNlIHhtbC5kb20uTmFtZXNwYWNlRXJyKAogICAgICAgICAgICAgICAgICAgICAiaWxsZWdhbCB1c2Ugb2YgJ3htbG5zJyBwcmVmaXggZm9yIHRoZSB3cm9uZyBuYW1lc3BhY2UiKQotICAgICAgICBkID0gc2VsZi5fX2RpY3RfXwotICAgICAgICBkWydwcmVmaXgnXSA9IHByZWZpeAorICAgICAgICBzZWxmLl9wcmVmaXggPSBwcmVmaXgKICAgICAgICAgaWYgcHJlZml4IGlzIE5vbmU6CiAgICAgICAgICAgICBuZXdOYW1lID0gc2VsZi5sb2NhbE5hbWUKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG5ld05hbWUgPSAiJXM6JXMiICUgKHByZWZpeCwgc2VsZi5sb2NhbE5hbWUpCiAgICAgICAgIGlmIHNlbGYub3duZXJFbGVtZW50OgogICAgICAgICAgICAgX2NsZWFyX2lkX2NhY2hlKHNlbGYub3duZXJFbGVtZW50KQotICAgICAgICBkWydub2RlTmFtZSddID0gZFsnbmFtZSddID0gbmV3TmFtZQorICAgICAgICBzZWxmLm5hbWUgPSBuZXdOYW1lCiAKLSAgICBkZWYgX3NldF92YWx1ZShzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIGQgPSBzZWxmLl9fZGljdF9fCi0gICAgICAgIGRbJ3ZhbHVlJ10gPSBkWydub2RlVmFsdWUnXSA9IHZhbHVlCi0gICAgICAgIGlmIHNlbGYub3duZXJFbGVtZW50OgotICAgICAgICAgICAgX2NsZWFyX2lkX2NhY2hlKHNlbGYub3duZXJFbGVtZW50KQotICAgICAgICBzZWxmLmNoaWxkTm9kZXNbMF0uZGF0YSA9IHZhbHVlCisgICAgcHJlZml4ID0gcHJvcGVydHkoX2dldF9wcmVmaXgsIF9zZXRfcHJlZml4KQogCiAgICAgZGVmIHVubGluayhzZWxmKToKICAgICAgICAgIyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXMgbm90IGNhbGwgdGhlIGJhc2UgaW1wbGVtZW50YXRpb24KQEAgLTU4Niw4ICs1ODgsOCBAQAogICAgICAgICAgICAgX2NsZWFyX2lkX2NhY2hlKHNlbGYuX293bmVyRWxlbWVudCkKICAgICAgICAgICAgIGRlbCBzZWxmLl9hdHRyc1tuLm5vZGVOYW1lXQogICAgICAgICAgICAgZGVsIHNlbGYuX2F0dHJzTlNbKG4ubmFtZXNwYWNlVVJJLCBuLmxvY2FsTmFtZSldCi0gICAgICAgICAgICBpZiAnb3duZXJFbGVtZW50JyBpbiBuLl9fZGljdF9fOgotICAgICAgICAgICAgICAgIG4uX19kaWN0X19bJ293bmVyRWxlbWVudCddID0gTm9uZQorICAgICAgICAgICAgaWYgaGFzYXR0cihuLCAnb3duZXJFbGVtZW50Jyk6CisgICAgICAgICAgICAgICAgbi5vd25lckVsZW1lbnQgPSBOb25lCiAgICAgICAgICAgICByZXR1cm4gbgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmFpc2UgeG1sLmRvbS5Ob3RGb3VuZEVycigpCkBAIC01OTgsOCArNjAwLDggQEAKICAgICAgICAgICAgIF9jbGVhcl9pZF9jYWNoZShzZWxmLl9vd25lckVsZW1lbnQpCiAgICAgICAgICAgICBkZWwgc2VsZi5fYXR0cnNOU1sobi5uYW1lc3BhY2VVUkksIG4ubG9jYWxOYW1lKV0KICAgICAgICAgICAgIGRlbCBzZWxmLl9hdHRyc1tuLm5vZGVOYW1lXQotICAgICAgICAgICAgaWYgJ293bmVyRWxlbWVudCcgaW4gbi5fX2RpY3RfXzoKLSAgICAgICAgICAgICAgICBuLl9fZGljdF9fWydvd25lckVsZW1lbnQnXSA9IE5vbmUKKyAgICAgICAgICAgIGlmIGhhc2F0dHIobiwgJ293bmVyRWxlbWVudCcpOgorICAgICAgICAgICAgICAgIG4ub3duZXJFbGVtZW50ID0gTm9uZQogICAgICAgICAgICAgcmV0dXJuIG4KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlIHhtbC5kb20uTm90Rm91bmRFcnIoKQpAQCAtNjU5LDYgKzY2MSw5IEBACiBfbm9fdHlwZSA9IFR5cGVJbmZvKE5vbmUsIE5vbmUpCiAKIGNsYXNzIEVsZW1lbnQoTm9kZSk6CisgICAgX19zbG90c19fPSgnb3duZXJEb2N1bWVudCcsICdwYXJlbnROb2RlJywgJ3RhZ05hbWUnLCAnbm9kZU5hbWUnLCAncHJlZml4JywKKyAgICAgICAgICAgICAgICduYW1lc3BhY2VVUkknLCAnX2xvY2FsTmFtZScsICdjaGlsZE5vZGVzJywgJ19hdHRycycsICdfYXR0cnNOUycsCisgICAgICAgICAgICAgICAnbmV4dFNpYmxpbmcnLCAncHJldmlvdXNTaWJsaW5nJykKICAgICBub2RlVHlwZSA9IE5vZGUuRUxFTUVOVF9OT0RFCiAgICAgbm9kZVZhbHVlID0gTm9uZQogICAgIHNjaGVtYVR5cGUgPSBfbm9fdHlwZQpAQCAtNjc0LDQxICs2NzksNTcgQEAKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YWdOYW1lLCBuYW1lc3BhY2VVUkk9RU1QVFlfTkFNRVNQQUNFLCBwcmVmaXg9Tm9uZSwKICAgICAgICAgICAgICAgICAgbG9jYWxOYW1lPU5vbmUpOgorICAgICAgICBzZWxmLnBhcmVudE5vZGUgPSBOb25lCiAgICAgICAgIHNlbGYudGFnTmFtZSA9IHNlbGYubm9kZU5hbWUgPSB0YWdOYW1lCiAgICAgICAgIHNlbGYucHJlZml4ID0gcHJlZml4CiAgICAgICAgIHNlbGYubmFtZXNwYWNlVVJJID0gbmFtZXNwYWNlVVJJCiAgICAgICAgIHNlbGYuY2hpbGROb2RlcyA9IE5vZGVMaXN0KCkKKyAgICAgICAgc2VsZi5uZXh0U2libGluZyA9IHNlbGYucHJldmlvdXNTaWJsaW5nID0gTm9uZQogCi0gICAgICAgIHNlbGYuX2F0dHJzID0ge30gICAjIGF0dHJpYnV0ZXMgYXJlIGRvdWJsZS1pbmRleGVkOgotICAgICAgICBzZWxmLl9hdHRyc05TID0ge30gIyAgICB0YWdOYW1lIC0+IEF0dHJpYnV0ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBVUkksbG9jYWxOYW1lIC0+IEF0dHJpYnV0ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiB0aGUgZnV0dXJlOiBjb25zaWRlciBsYXp5IGdlbmVyYXRpb24KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb2YgYXR0cmlidXRlIG9iamVjdHMgdGhpcyBpcyB0b28gdHJpY2t5Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZvciBub3cgYmVjYXVzZSBvZiBoZWFkYWNoZXMgd2l0aAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBuYW1lc3BhY2VzLgorICAgICAgICAjIEF0dHJpYnV0ZSBkaWN0aW9uYXJpZXMgYXJlIGxhemlseSBjcmVhdGVkCisgICAgICAgICMgYXR0cmlidXRlcyBhcmUgZG91YmxlLWluZGV4ZWQ6CisgICAgICAgICMgICAgdGFnTmFtZSAtPiBBdHRyaWJ1dGUKKyAgICAgICAgIyAgICBVUkksbG9jYWxOYW1lIC0+IEF0dHJpYnV0ZQorICAgICAgICAjIGluIHRoZSBmdXR1cmU6IGNvbnNpZGVyIGxhenkgZ2VuZXJhdGlvbgorICAgICAgICAjIG9mIGF0dHJpYnV0ZSBvYmplY3RzIHRoaXMgaXMgdG9vIHRyaWNreQorICAgICAgICAjIGZvciBub3cgYmVjYXVzZSBvZiBoZWFkYWNoZXMgd2l0aAorICAgICAgICAjIG5hbWVzcGFjZXMuCisgICAgICAgIHNlbGYuX2F0dHJzID0gTm9uZQorICAgICAgICBzZWxmLl9hdHRyc05TID0gTm9uZQorCisgICAgZGVmIF9lbnN1cmVfYXR0cmlidXRlcyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5fYXR0cnMgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX2F0dHJzID0ge30KKyAgICAgICAgICAgIHNlbGYuX2F0dHJzTlMgPSB7fQogCiAgICAgZGVmIF9nZXRfbG9jYWxOYW1lKHNlbGYpOgotICAgICAgICBpZiAnbG9jYWxOYW1lJyBpbiBzZWxmLl9fZGljdF9fOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX19kaWN0X19bJ2xvY2FsTmFtZSddCi0gICAgICAgIHJldHVybiBzZWxmLnRhZ05hbWUuc3BsaXQoIjoiLCAxKVstMV0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2xvY2FsTmFtZQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gc2VsZi50YWdOYW1lLnNwbGl0KCI6IiwgMSlbLTFdCiAKICAgICBkZWYgX2dldF90YWdOYW1lKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50YWdOYW1lCiAKICAgICBkZWYgdW5saW5rKHNlbGYpOgotICAgICAgICBmb3IgYXR0ciBpbiBsaXN0KHNlbGYuX2F0dHJzLnZhbHVlcygpKToKLSAgICAgICAgICAgIGF0dHIudW5saW5rKCkKKyAgICAgICAgaWYgc2VsZi5fYXR0cnMgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBmb3IgYXR0ciBpbiBsaXN0KHNlbGYuX2F0dHJzLnZhbHVlcygpKToKKyAgICAgICAgICAgICAgICBhdHRyLnVubGluaygpCiAgICAgICAgIHNlbGYuX2F0dHJzID0gTm9uZQogICAgICAgICBzZWxmLl9hdHRyc05TID0gTm9uZQogICAgICAgICBOb2RlLnVubGluayhzZWxmKQogCiAgICAgZGVmIGdldEF0dHJpYnV0ZShzZWxmLCBhdHRuYW1lKToKKyAgICAgICAgaWYgc2VsZi5fYXR0cnMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiAiIgogICAgICAgICB0cnk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5fYXR0cnNbYXR0bmFtZV0udmFsdWUKICAgICAgICAgZXhjZXB0IEtleUVycm9yOgogICAgICAgICAgICAgcmV0dXJuICIiCiAKICAgICBkZWYgZ2V0QXR0cmlidXRlTlMoc2VsZiwgbmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpOgorICAgICAgICBpZiBzZWxmLl9hdHRyc05TIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gIiIKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2F0dHJzTlNbKG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKV0udmFsdWUKICAgICAgICAgZXhjZXB0IEtleUVycm9yOgpAQCAtNzE4LDE0ICs3MzksMTEgQEAKICAgICAgICAgYXR0ciA9IHNlbGYuZ2V0QXR0cmlidXRlTm9kZShhdHRuYW1lKQogICAgICAgICBpZiBhdHRyIGlzIE5vbmU6CiAgICAgICAgICAgICBhdHRyID0gQXR0cihhdHRuYW1lKQotICAgICAgICAgICAgIyBmb3IgcGVyZm9ybWFuY2UKLSAgICAgICAgICAgIGQgPSBhdHRyLl9fZGljdF9fCi0gICAgICAgICAgICBkWyJ2YWx1ZSJdID0gZFsibm9kZVZhbHVlIl0gPSB2YWx1ZQotICAgICAgICAgICAgZFsib3duZXJEb2N1bWVudCJdID0gc2VsZi5vd25lckRvY3VtZW50CisgICAgICAgICAgICBhdHRyLnZhbHVlID0gdmFsdWUgIyBhbHNvIHNldHMgbm9kZVZhbHVlCisgICAgICAgICAgICBhdHRyLm93bmVyRG9jdW1lbnQgPSBzZWxmLm93bmVyRG9jdW1lbnQKICAgICAgICAgICAgIHNlbGYuc2V0QXR0cmlidXRlTm9kZShhdHRyKQogICAgICAgICBlbGlmIHZhbHVlICE9IGF0dHIudmFsdWU6Ci0gICAgICAgICAgICBkID0gYXR0ci5fX2RpY3RfXwotICAgICAgICAgICAgZFsidmFsdWUiXSA9IGRbIm5vZGVWYWx1ZSJdID0gdmFsdWUKKyAgICAgICAgICAgIGF0dHIudmFsdWUgPSB2YWx1ZQogICAgICAgICAgICAgaWYgYXR0ci5pc0lkOgogICAgICAgICAgICAgICAgIF9jbGVhcl9pZF9jYWNoZShzZWxmKQogCkBAIC03MzMsMzMgKzc1MSwzMyBAQAogICAgICAgICBwcmVmaXgsIGxvY2FsbmFtZSA9IF9uc3NwbGl0KHF1YWxpZmllZE5hbWUpCiAgICAgICAgIGF0dHIgPSBzZWxmLmdldEF0dHJpYnV0ZU5vZGVOUyhuYW1lc3BhY2VVUkksIGxvY2FsbmFtZSkKICAgICAgICAgaWYgYXR0ciBpcyBOb25lOgotICAgICAgICAgICAgIyBmb3IgcGVyZm9ybWFuY2UKICAgICAgICAgICAgIGF0dHIgPSBBdHRyKHF1YWxpZmllZE5hbWUsIG5hbWVzcGFjZVVSSSwgbG9jYWxuYW1lLCBwcmVmaXgpCi0gICAgICAgICAgICBkID0gYXR0ci5fX2RpY3RfXwotICAgICAgICAgICAgZFsicHJlZml4Il0gPSBwcmVmaXgKLSAgICAgICAgICAgIGRbIm5vZGVOYW1lIl0gPSBxdWFsaWZpZWROYW1lCi0gICAgICAgICAgICBkWyJ2YWx1ZSJdID0gZFsibm9kZVZhbHVlIl0gPSB2YWx1ZQotICAgICAgICAgICAgZFsib3duZXJEb2N1bWVudCJdID0gc2VsZi5vd25lckRvY3VtZW50CisgICAgICAgICAgICBhdHRyLnZhbHVlID0gdmFsdWUKKyAgICAgICAgICAgIGF0dHIub3duZXJEb2N1bWVudCA9IHNlbGYub3duZXJEb2N1bWVudAogICAgICAgICAgICAgc2VsZi5zZXRBdHRyaWJ1dGVOb2RlKGF0dHIpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBkID0gYXR0ci5fX2RpY3RfXwogICAgICAgICAgICAgaWYgdmFsdWUgIT0gYXR0ci52YWx1ZToKLSAgICAgICAgICAgICAgICBkWyJ2YWx1ZSJdID0gZFsibm9kZVZhbHVlIl0gPSB2YWx1ZQorICAgICAgICAgICAgICAgIGF0dHIudmFsdWUgPSB2YWx1ZQogICAgICAgICAgICAgICAgIGlmIGF0dHIuaXNJZDoKICAgICAgICAgICAgICAgICAgICAgX2NsZWFyX2lkX2NhY2hlKHNlbGYpCiAgICAgICAgICAgICBpZiBhdHRyLnByZWZpeCAhPSBwcmVmaXg6Ci0gICAgICAgICAgICAgICAgZFsicHJlZml4Il0gPSBwcmVmaXgKLSAgICAgICAgICAgICAgICBkWyJub2RlTmFtZSJdID0gcXVhbGlmaWVkTmFtZQorICAgICAgICAgICAgICAgIGF0dHIucHJlZml4ID0gcHJlZml4CisgICAgICAgICAgICAgICAgYXR0ci5ub2RlTmFtZSA9IHF1YWxpZmllZE5hbWUKIAogICAgIGRlZiBnZXRBdHRyaWJ1dGVOb2RlKHNlbGYsIGF0dHJuYW1lKToKKyAgICAgICAgaWYgc2VsZi5fYXR0cnMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgIHJldHVybiBzZWxmLl9hdHRycy5nZXQoYXR0cm5hbWUpCiAKICAgICBkZWYgZ2V0QXR0cmlidXRlTm9kZU5TKHNlbGYsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKToKKyAgICAgICAgaWYgc2VsZi5fYXR0cnNOUyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgcmV0dXJuIHNlbGYuX2F0dHJzTlMuZ2V0KChuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSkpCiAKICAgICBkZWYgc2V0QXR0cmlidXRlTm9kZShzZWxmLCBhdHRyKToKICAgICAgICAgaWYgYXR0ci5vd25lckVsZW1lbnQgbm90IGluIChOb25lLCBzZWxmKToKICAgICAgICAgICAgIHJhaXNlIHhtbC5kb20uSW51c2VBdHRyaWJ1dGVFcnIoImF0dHJpYnV0ZSBub2RlIGFscmVhZHkgb3duZWQiKQorICAgICAgICBzZWxmLl9lbnN1cmVfYXR0cmlidXRlcygpCiAgICAgICAgIG9sZDEgPSBzZWxmLl9hdHRycy5nZXQoYXR0ci5uYW1lLCBOb25lKQogICAgICAgICBpZiBvbGQxIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5yZW1vdmVBdHRyaWJ1dGVOb2RlKG9sZDEpCkBAIC03NzgsNiArNzk2LDggQEAKICAgICBzZXRBdHRyaWJ1dGVOb2RlTlMgPSBzZXRBdHRyaWJ1dGVOb2RlCiAKICAgICBkZWYgcmVtb3ZlQXR0cmlidXRlKHNlbGYsIG5hbWUpOgorICAgICAgICBpZiBzZWxmLl9hdHRyc05TIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSB4bWwuZG9tLk5vdEZvdW5kRXJyKCkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgYXR0ciA9IHNlbGYuX2F0dHJzW25hbWVdCiAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKQEAgLTc4NSw2ICs4MDUsOCBAQAogICAgICAgICBzZWxmLnJlbW92ZUF0dHJpYnV0ZU5vZGUoYXR0cikKIAogICAgIGRlZiByZW1vdmVBdHRyaWJ1dGVOUyhzZWxmLCBuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSk6CisgICAgICAgIGlmIHNlbGYuX2F0dHJzTlMgaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIHhtbC5kb20uTm90Rm91bmRFcnIoKQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBhdHRyID0gc2VsZi5fYXR0cnNOU1sobmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpXQogICAgICAgICBleGNlcHQgS2V5RXJyb3I6CkBAIC04MDcsOSArODI5LDEzIEBACiAgICAgcmVtb3ZlQXR0cmlidXRlTm9kZU5TID0gcmVtb3ZlQXR0cmlidXRlTm9kZQogCiAgICAgZGVmIGhhc0F0dHJpYnV0ZShzZWxmLCBuYW1lKToKKyAgICAgICAgaWYgc2VsZi5fYXR0cnMgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICByZXR1cm4gbmFtZSBpbiBzZWxmLl9hdHRycwogCiAgICAgZGVmIGhhc0F0dHJpYnV0ZU5TKHNlbGYsIG5hbWVzcGFjZVVSSSwgbG9jYWxOYW1lKToKKyAgICAgICAgaWYgc2VsZi5fYXR0cnNOUyBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHJldHVybiAobmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpIGluIHNlbGYuX2F0dHJzTlMKIAogICAgIGRlZiBnZXRFbGVtZW50c0J5VGFnTmFtZShzZWxmLCBuYW1lKToKQEAgLTg1MCw2ICs4NzYsNyBAQAogICAgICAgICAgICAgd3JpdGVyLndyaXRlKCIvPiVzIiUobmV3bCkpCiAKICAgICBkZWYgX2dldF9hdHRyaWJ1dGVzKHNlbGYpOgorICAgICAgICBzZWxmLl9lbnN1cmVfYXR0cmlidXRlcygpCiAgICAgICAgIHJldHVybiBOYW1lZE5vZGVNYXAoc2VsZi5fYXR0cnMsIHNlbGYuX2F0dHJzTlMsIHNlbGYpCiAKICAgICBkZWYgaGFzQXR0cmlidXRlcyhzZWxmKToKQEAgLTg3NCw3ICs5MDEsNyBAQAogICAgICAgICBpZiBfZ2V0X2NvbnRhaW5pbmdfZW50cmVmKHNlbGYpIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgcmFpc2UgeG1sLmRvbS5Ob01vZGlmaWNhdGlvbkFsbG93ZWRFcnIoKQogICAgICAgICBpZiBub3QgaWRBdHRyLl9pc19pZDoKLSAgICAgICAgICAgIGlkQXR0ci5fX2RpY3RfX1snX2lzX2lkJ10gPSBUcnVlCisgICAgICAgICAgICBpZEF0dHIuX2lzX2lkID0gVHJ1ZQogICAgICAgICAgICAgc2VsZi5fbWFnaWNfaWRfbm9kZXMgKz0gMQogICAgICAgICAgICAgc2VsZi5vd25lckRvY3VtZW50Ll9tYWdpY19pZF9jb3VudCArPSAxCiAgICAgICAgICAgICBfY2xlYXJfaWRfY2FjaGUoc2VsZikKQEAgLTg4NywxOSArOTE0LDIwIEBACiAKIGRlZiBfc2V0X2F0dHJpYnV0ZV9ub2RlKGVsZW1lbnQsIGF0dHIpOgogICAgIF9jbGVhcl9pZF9jYWNoZShlbGVtZW50KQorICAgIGVsZW1lbnQuX2Vuc3VyZV9hdHRyaWJ1dGVzKCkKICAgICBlbGVtZW50Ll9hdHRyc1thdHRyLm5hbWVdID0gYXR0cgogICAgIGVsZW1lbnQuX2F0dHJzTlNbKGF0dHIubmFtZXNwYWNlVVJJLCBhdHRyLmxvY2FsTmFtZSldID0gYXR0cgogCiAgICAgIyBUaGlzIGNyZWF0ZXMgYSBjaXJjdWxhciByZWZlcmVuY2UsIGJ1dCBFbGVtZW50LnVubGluaygpCiAgICAgIyBicmVha3MgdGhlIGN5Y2xlIHNpbmNlIHRoZSByZWZlcmVuY2VzIHRvIHRoZSBhdHRyaWJ1dGUKICAgICAjIGRpY3Rpb25hcmllcyBhcmUgdG9zc2VkLgotICAgIGF0dHIuX19kaWN0X19bJ293bmVyRWxlbWVudCddID0gZWxlbWVudAotCisgICAgYXR0ci5vd25lckVsZW1lbnQgPSBlbGVtZW50CiAKIGNsYXNzIENoaWxkbGVzczoKICAgICAiIiJNaXhpbiB0aGF0IG1ha2VzIGNoaWxkbGVzcy1uZXNzIGVhc3kgdG8gaW1wbGVtZW50IGFuZCBhdm9pZHMKICAgICB0aGUgY29tcGxleGl0eSBvZiB0aGUgTm9kZSBtZXRob2RzIHRoYXQgZGVhbCB3aXRoIGNoaWxkcmVuLgogICAgICIiIgorICAgIF9fc2xvdHNfXyA9ICgpCiAKICAgICBhdHRyaWJ1dGVzID0gTm9uZQogICAgIGNoaWxkTm9kZXMgPSBFbXB0eU5vZGVMaXN0KCkKQEAgLTkzOCw1NCArOTY2LDQ5IEBACiAKIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbihDaGlsZGxlc3MsIE5vZGUpOgogICAgIG5vZGVUeXBlID0gTm9kZS5QUk9DRVNTSU5HX0lOU1RSVUNUSU9OX05PREUKKyAgICBfX3Nsb3RzX18gPSAoJ3RhcmdldCcsICdkYXRhJykKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YXJnZXQsIGRhdGEpOgotICAgICAgICBzZWxmLnRhcmdldCA9IHNlbGYubm9kZU5hbWUgPSB0YXJnZXQKLSAgICAgICAgc2VsZi5kYXRhID0gc2VsZi5ub2RlVmFsdWUgPSBkYXRhCisgICAgICAgIHNlbGYudGFyZ2V0ID0gdGFyZ2V0CisgICAgICAgIHNlbGYuZGF0YSA9IGRhdGEKIAotICAgIGRlZiBfZ2V0X2RhdGEoc2VsZik6CisgICAgIyBub2RlVmFsdWUgaXMgYW4gYWxpYXMgZm9yIGRhdGEKKyAgICBkZWYgX2dldF9ub2RlVmFsdWUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLmRhdGEKLSAgICBkZWYgX3NldF9kYXRhKHNlbGYsIHZhbHVlKToKLSAgICAgICAgZCA9IHNlbGYuX19kaWN0X18KLSAgICAgICAgZFsnZGF0YSddID0gZFsnbm9kZVZhbHVlJ10gPSB2YWx1ZQorICAgIGRlZiBfc2V0X25vZGVWYWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYuZGF0YSA9IGRhdGEKKyAgICBub2RlVmFsdWUgPSBwcm9wZXJ0eShfZ2V0X25vZGVWYWx1ZSwgX3NldF9ub2RlVmFsdWUpCiAKLSAgICBkZWYgX2dldF90YXJnZXQoc2VsZik6CisgICAgIyBub2RlTmFtZSBpcyBhbiBhbGlhcyBmb3IgdGFyZ2V0CisgICAgZGVmIF9nZXRfbm9kZU5hbWUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnRhcmdldAotICAgIGRlZiBfc2V0X3RhcmdldChzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIGQgPSBzZWxmLl9fZGljdF9fCi0gICAgICAgIGRbJ3RhcmdldCddID0gZFsnbm9kZU5hbWUnXSA9IHZhbHVlCi0KLSAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICBpZiBuYW1lID09ICJkYXRhIiBvciBuYW1lID09ICJub2RlVmFsdWUiOgotICAgICAgICAgICAgc2VsZi5fX2RpY3RfX1snZGF0YSddID0gc2VsZi5fX2RpY3RfX1snbm9kZVZhbHVlJ10gPSB2YWx1ZQotICAgICAgICBlbGlmIG5hbWUgPT0gInRhcmdldCIgb3IgbmFtZSA9PSAibm9kZU5hbWUiOgotICAgICAgICAgICAgc2VsZi5fX2RpY3RfX1sndGFyZ2V0J10gPSBzZWxmLl9fZGljdF9fWydub2RlTmFtZSddID0gdmFsdWUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX19kaWN0X19bbmFtZV0gPSB2YWx1ZQorICAgIGRlZiBfc2V0X25vZGVOYW1lKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi50YXJnZXQgPSB2YWx1ZQorICAgIG5vZGVOYW1lID0gcHJvcGVydHkoX2dldF9ub2RlTmFtZSwgX3NldF9ub2RlTmFtZSkKIAogICAgIGRlZiB3cml0ZXhtbChzZWxmLCB3cml0ZXIsIGluZGVudD0iIiwgYWRkaW5kZW50PSIiLCBuZXdsPSIiKToKICAgICAgICAgd3JpdGVyLndyaXRlKCIlczw/JXMgJXM/PiVzIiAlIChpbmRlbnQsc2VsZi50YXJnZXQsIHNlbGYuZGF0YSwgbmV3bCkpCiAKIAogY2xhc3MgQ2hhcmFjdGVyRGF0YShDaGlsZGxlc3MsIE5vZGUpOgorICAgIF9fc2xvdHNfXz0oJ19kYXRhJywgJ293bmVyRG9jdW1lbnQnLCdwYXJlbnROb2RlJywgJ3ByZXZpb3VzU2libGluZycsICduZXh0U2libGluZycpCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYub3duZXJEb2N1bWVudCA9IHNlbGYucGFyZW50Tm9kZSA9IE5vbmUKKyAgICAgICAgc2VsZi5wcmV2aW91c1NpYmxpbmcgPSBzZWxmLm5leHRTaWJsaW5nID0gTm9uZQorICAgICAgICBzZWxmLl9kYXRhID0gJycKKyAgICAgICAgTm9kZS5fX2luaXRfXyhzZWxmKQorCiAgICAgZGVmIF9nZXRfbGVuZ3RoKHNlbGYpOgogICAgICAgICByZXR1cm4gbGVuKHNlbGYuZGF0YSkKICAgICBfX2xlbl9fID0gX2dldF9sZW5ndGgKIAogICAgIGRlZiBfZ2V0X2RhdGEoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9fZGljdF9fWydkYXRhJ10KKyAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGEKICAgICBkZWYgX3NldF9kYXRhKHNlbGYsIGRhdGEpOgotICAgICAgICBkID0gc2VsZi5fX2RpY3RfXwotICAgICAgICBkWydkYXRhJ10gPSBkWydub2RlVmFsdWUnXSA9IGRhdGEKKyAgICAgICAgc2VsZi5fZGF0YSA9IGRhdGEKIAotICAgIF9nZXRfbm9kZVZhbHVlID0gX2dldF9kYXRhCi0gICAgX3NldF9ub2RlVmFsdWUgPSBfc2V0X2RhdGEKLQotICAgIGRlZiBfX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAgIGlmIG5hbWUgPT0gImRhdGEiIG9yIG5hbWUgPT0gIm5vZGVWYWx1ZSI6Ci0gICAgICAgICAgICBzZWxmLl9fZGljdF9fWydkYXRhJ10gPSBzZWxmLl9fZGljdF9fWydub2RlVmFsdWUnXSA9IHZhbHVlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9fZGljdF9fW25hbWVdID0gdmFsdWUKKyAgICBkYXRhID0gbm9kZVZhbHVlID0gcHJvcGVydHkoX2dldF9kYXRhLCBfc2V0X2RhdGEpCiAKICAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgIGRhdGEgPSBzZWxmLmRhdGEKQEAgLTEwNDIsMTAgKzEwNjUsNyBAQAogCiAKIGNsYXNzIFRleHQoQ2hhcmFjdGVyRGF0YSk6Ci0gICAgIyBNYWtlIHN1cmUgd2UgZG9uJ3QgYWRkIGFuIGluc3RhbmNlIF9fZGljdF9fIGlmIHdlIGRvbid0IGFscmVhZHkKLSAgICAjIGhhdmUgb25lLCBhdCBsZWFzdCB3aGVuIHRoYXQncyBwb3NzaWJsZToKLSAgICAjIFhYWCB0aGlzIGRvZXMgbm90IHdvcmssIENoYXJhY3RlckRhdGEgaXMgYW4gb2xkLXN0eWxlIGNsYXNzCi0gICAgIyBfX3Nsb3RzX18gPSAoKQorICAgIF9fc2xvdHNfXyA9ICgpCiAKICAgICBub2RlVHlwZSA9IE5vZGUuVEVYVF9OT0RFCiAgICAgbm9kZU5hbWUgPSAiI3RleHQiCkBAIC0xMTEyLDkgKzExMzIsNyBAQAogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICBpZiBjb250ZW50OgotICAgICAgICAgICAgZCA9IHNlbGYuX19kaWN0X18KLSAgICAgICAgICAgIGRbJ2RhdGEnXSA9IGNvbnRlbnQKLSAgICAgICAgICAgIGRbJ25vZGVWYWx1ZSddID0gY29udGVudAorICAgICAgICAgICAgc2VsZi5kYXRhID0gY29udGVudAogICAgICAgICAgICAgcmV0dXJuIHNlbGYKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJldHVybiBOb25lCkBAIC0xMTYwLDcgKzExNzgsOCBAQAogICAgIG5vZGVOYW1lID0gIiNjb21tZW50IgogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLmRhdGEgPSBzZWxmLm5vZGVWYWx1ZSA9IGRhdGEKKyAgICAgICAgQ2hhcmFjdGVyRGF0YS5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLl9kYXRhID0gZGF0YQogCiAgICAgZGVmIHdyaXRleG1sKHNlbGYsIHdyaXRlciwgaW5kZW50PSIiLCBhZGRpbmRlbnQ9IiIsIG5ld2w9IiIpOgogICAgICAgICBpZiAiLS0iIGluIHNlbGYuZGF0YToKQEAgLTExNjksMTAgKzExODgsNyBAQAogCiAKIGNsYXNzIENEQVRBU2VjdGlvbihUZXh0KToKLSAgICAjIE1ha2Ugc3VyZSB3ZSBkb24ndCBhZGQgYW4gaW5zdGFuY2UgX19kaWN0X18gaWYgd2UgZG9uJ3QgYWxyZWFkeQotICAgICMgaGF2ZSBvbmUsIGF0IGxlYXN0IHdoZW4gdGhhdCdzIHBvc3NpYmxlOgotICAgICMgWFhYIHRoaXMgZG9lcyBub3Qgd29yaywgVGV4dCBpcyBhbiBvbGQtc3R5bGUgY2xhc3MKLSAgICAjIF9fc2xvdHNfXyA9ICgpCisgICAgX19zbG90c19fID0gKCkKIAogICAgIG5vZGVUeXBlID0gTm9kZS5DREFUQV9TRUNUSU9OX05PREUKICAgICBub2RlTmFtZSA9ICIjY2RhdGEtc2VjdGlvbiIKQEAgLTEyNTIsOCArMTI2OCw3IEBACiBjbGFzcyBJZGVudGlmaWVkOgogICAgICIiIk1peC1pbiBjbGFzcyB0aGF0IHN1cHBvcnRzIHRoZSBwdWJsaWNJZCBhbmQgc3lzdGVtSWQgYXR0cmlidXRlcy4iIiIKIAotICAgICMgWFhYIHRoaXMgZG9lcyBub3Qgd29yaywgdGhpcyBpcyBhbiBvbGQtc3R5bGUgY2xhc3MKLSAgICAjIF9fc2xvdHNfXyA9ICdwdWJsaWNJZCcsICdzeXN0ZW1JZCcKKyAgICBfX3Nsb3RzX18gPSAncHVibGljSWQnLCAnc3lzdGVtSWQnCiAKICAgICBkZWYgX2lkZW50aWZpZWRfbWl4aW5faW5pdChzZWxmLCBwdWJsaWNJZCwgc3lzdGVtSWQpOgogICAgICAgICBzZWxmLnB1YmxpY0lkID0gcHVibGljSWQKQEAgLTE1MDQsMTggKzE1MTksMTkgQEAKICAgICAgICAgbm9kZS5vd25lckRvY3VtZW50Ll9pZF9zZWFyY2hfc3RhY2s9IE5vbmUKIAogY2xhc3MgRG9jdW1lbnQoTm9kZSwgRG9jdW1lbnRMUyk6CisgICAgX19zbG90c19fID0gKCdfZWxlbV9pbmZvJywgJ2RvY3R5cGUnLAorICAgICAgICAgICAgICAgICAnX2lkX3NlYXJjaF9zdGFjaycsICdjaGlsZE5vZGVzJywgJ19pZF9jYWNoZScpCiAgICAgX2NoaWxkX25vZGVfdHlwZXMgPSAoTm9kZS5FTEVNRU5UX05PREUsIE5vZGUuUFJPQ0VTU0lOR19JTlNUUlVDVElPTl9OT0RFLAogICAgICAgICAgICAgICAgICAgICAgICAgIE5vZGUuQ09NTUVOVF9OT0RFLCBOb2RlLkRPQ1VNRU5UX1RZUEVfTk9ERSkKIAorICAgIGltcGxlbWVudGF0aW9uID0gRE9NSW1wbGVtZW50YXRpb24oKQogICAgIG5vZGVUeXBlID0gTm9kZS5ET0NVTUVOVF9OT0RFCiAgICAgbm9kZU5hbWUgPSAiI2RvY3VtZW50IgogICAgIG5vZGVWYWx1ZSA9IE5vbmUKICAgICBhdHRyaWJ1dGVzID0gTm9uZQotICAgIGRvY3R5cGUgPSBOb25lCiAgICAgcGFyZW50Tm9kZSA9IE5vbmUKICAgICBwcmV2aW91c1NpYmxpbmcgPSBuZXh0U2libGluZyA9IE5vbmUKIAotICAgIGltcGxlbWVudGF0aW9uID0gRE9NSW1wbGVtZW50YXRpb24oKQogCiAgICAgIyBEb2N1bWVudCBhdHRyaWJ1dGVzIGZyb20gTGV2ZWwgMyAoV0QgOSBBcHJpbCAyMDAyKQogCkBAIC0xNTMwLDYgKzE1NDYsNyBAQAogICAgIF9tYWdpY19pZF9jb3VudCA9IDAKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgc2VsZi5kb2N0eXBlID0gTm9uZQogICAgICAgICBzZWxmLmNoaWxkTm9kZXMgPSBOb2RlTGlzdCgpCiAgICAgICAgICMgbWFwcGluZyBvZiAobmFtZXNwYWNlVVJJLCBsb2NhbE5hbWUpIC0+IEVsZW1lbnRJbmZvCiAgICAgICAgICMgICAgICAgIGFuZCB0YWdOYW1lIC0+IEVsZW1lbnRJbmZvCkBAIC0xODE1LDE3ICsxODMyLDE1IEBACiAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGVOb2RlKG4pCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBlbGVtZW50ID0gTm9uZQotICAgICAgICAjIGF2b2lkIF9fc2V0YXR0cl9fCi0gICAgICAgIGQgPSBuLl9fZGljdF9fCi0gICAgICAgIGRbJ3ByZWZpeCddID0gcHJlZml4Ci0gICAgICAgIGRbJ2xvY2FsTmFtZSddID0gbG9jYWxOYW1lCi0gICAgICAgIGRbJ25hbWVzcGFjZVVSSSddID0gbmFtZXNwYWNlVVJJCi0gICAgICAgIGRbJ25vZGVOYW1lJ10gPSBuYW1lCisgICAgICAgIG4ucHJlZml4ID0gcHJlZml4CisgICAgICAgIG4uX2xvY2FsTmFtZSA9IGxvY2FsTmFtZQorICAgICAgICBuLm5hbWVzcGFjZVVSSSA9IG5hbWVzcGFjZVVSSQorICAgICAgICBuLm5vZGVOYW1lID0gbmFtZQogICAgICAgICBpZiBuLm5vZGVUeXBlID09IE5vZGUuRUxFTUVOVF9OT0RFOgotICAgICAgICAgICAgZFsndGFnTmFtZSddID0gbmFtZQorICAgICAgICAgICAgbi50YWdOYW1lID0gbmFtZQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyBhdHRyaWJ1dGUgbm9kZQotICAgICAgICAgICAgZFsnbmFtZSddID0gbmFtZQorICAgICAgICAgICAgbi5uYW1lID0gbmFtZQogICAgICAgICAgICAgaWYgZWxlbWVudCBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZU5vZGUobikKICAgICAgICAgICAgICAgICBpZiBpc19pZDoKZGlmZiAtLWdpdCBhL0xpYi94bWwvZG9tL3B1bGxkb20ucHkgYi9MaWIveG1sL2RvbS9wdWxsZG9tLnB5CmluZGV4IGQ1YWM4YjIuLjQzNTA0ZjcgMTAwNjQ0Ci0tLSBhL0xpYi94bWwvZG9tL3B1bGxkb20ucHkKKysrIGIvTGliL3htbC9kb20vcHVsbGRvbS5weQpAQCAtMSw2ICsxLDUgQEAKIGltcG9ydCB4bWwuc2F4CiBpbXBvcnQgeG1sLnNheC5oYW5kbGVyCi1pbXBvcnQgdHlwZXMKIAogU1RBUlRfRUxFTUVOVCA9ICJTVEFSVF9FTEVNRU5UIgogRU5EX0VMRU1FTlQgPSAiRU5EX0VMRU1FTlQiCkBAIC0zMzQsMTAgKzMzMyw3IEBACiAgICAgcmV0dXJuIERPTUV2ZW50U3RyZWFtKHN0cmVhbSwgcGFyc2VyLCBidWZzaXplKQogCiBkZWYgcGFyc2VTdHJpbmcoc3RyaW5nLCBwYXJzZXI9Tm9uZSk6Ci0gICAgdHJ5OgotICAgICAgICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgZnJvbSBpbyBpbXBvcnQgU3RyaW5nSU8KKyAgICBmcm9tIGlvIGltcG9ydCBTdHJpbmdJTwogCiAgICAgYnVmc2l6ZSA9IGxlbihzdHJpbmcpCiAgICAgYnVmID0gU3RyaW5nSU8oc3RyaW5nKQpkaWZmIC0tZ2l0IGEvTGliL3htbC9ldHJlZS9FbGVtZW50VHJlZS5weSBiL0xpYi94bWwvZXRyZWUvRWxlbWVudFRyZWUucHkKaW5kZXggZjk0YzQ4Yy4uNjFmZTE1NSAxMDA2NDQKLS0tIGEvTGliL3htbC9ldHJlZS9FbGVtZW50VHJlZS5weQorKysgYi9MaWIveG1sL2V0cmVlL0VsZW1lbnRUcmVlLnB5CkBAIC02OCw4ICs2OCw5IEBACiAgICAgInRvc3RyaW5nIiwgInRvc3RyaW5nbGlzdCIsCiAgICAgIlRyZWVCdWlsZGVyIiwKICAgICAiVkVSU0lPTiIsCi0gICAgIlhNTCIsCisgICAgIlhNTCIsICJYTUxJRCIsCiAgICAgIlhNTFBhcnNlciIsICJYTUxUcmVlQnVpbGRlciIsCisgICAgInJlZ2lzdGVyX25hbWVzcGFjZSIsCiAgICAgXQogCiBWRVJTSU9OID0gIjEuMy4wIgpAQCAtMTAwLDMzICsxMDEsOCBAQAogaW1wb3J0IHJlCiBpbXBvcnQgd2FybmluZ3MKIAorZnJvbSAuIGltcG9ydCBFbGVtZW50UGF0aAogCi1jbGFzcyBfU2ltcGxlRWxlbWVudFBhdGg6Ci0gICAgIyBlbXVsYXRlIHByZS0xLjIgZmluZC9maW5kdGV4dC9maW5kYWxsIGJlaGF2aW91cgotICAgIGRlZiBmaW5kKHNlbGYsIGVsZW1lbnQsIHRhZywgbmFtZXNwYWNlcz1Ob25lKToKLSAgICAgICAgZm9yIGVsZW0gaW4gZWxlbWVudDoKLSAgICAgICAgICAgIGlmIGVsZW0udGFnID09IHRhZzoKLSAgICAgICAgICAgICAgICByZXR1cm4gZWxlbQotICAgICAgICByZXR1cm4gTm9uZQotICAgIGRlZiBmaW5kdGV4dChzZWxmLCBlbGVtZW50LCB0YWcsIGRlZmF1bHQ9Tm9uZSwgbmFtZXNwYWNlcz1Ob25lKToKLSAgICAgICAgZWxlbSA9IHNlbGYuZmluZChlbGVtZW50LCB0YWcpCi0gICAgICAgIGlmIGVsZW0gaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBkZWZhdWx0Ci0gICAgICAgIHJldHVybiBlbGVtLnRleHQgb3IgIiIKLSAgICBkZWYgaXRlcmZpbmQoc2VsZiwgZWxlbWVudCwgdGFnLCBuYW1lc3BhY2VzPU5vbmUpOgotICAgICAgICBpZiB0YWdbOjNdID09ICIuLy8iOgotICAgICAgICAgICAgZm9yIGVsZW0gaW4gZWxlbWVudC5pdGVyKHRhZ1szOl0pOgotICAgICAgICAgICAgICAgIHlpZWxkIGVsZW0KLSAgICAgICAgZm9yIGVsZW0gaW4gZWxlbWVudDoKLSAgICAgICAgICAgIGlmIGVsZW0udGFnID09IHRhZzoKLSAgICAgICAgICAgICAgICB5aWVsZCBlbGVtCi0gICAgZGVmIGZpbmRhbGwoc2VsZiwgZWxlbWVudCwgdGFnLCBuYW1lc3BhY2VzPU5vbmUpOgotICAgICAgICByZXR1cm4gbGlzdChzZWxmLml0ZXJmaW5kKGVsZW1lbnQsIHRhZywgbmFtZXNwYWNlcykpCi0KLXRyeToKLSAgICBmcm9tIC4gaW1wb3J0IEVsZW1lbnRQYXRoCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgRWxlbWVudFBhdGggPSBfU2ltcGxlRWxlbWVudFBhdGgoKQogCiAjIwogIyBQYXJzZXIgZXJyb3IuICBUaGlzIGlzIGEgc3ViY2xhc3Mgb2YgPGI+U3ludGF4RXJyb3I8L2I+LgpAQCAtMTQ4LDkgKzEyNCw5IEBACiAjIEBkZWZyZXR1cm4gZmxhZwogCiBkZWYgaXNlbGVtZW50KGVsZW1lbnQpOgotICAgICMgRklYTUU6IG5vdCBzdXJlIGFib3V0IHRoaXM7IG1pZ2h0IGJlIGEgYmV0dGVyIGlkZWEgdG8gbG9vawotICAgICMgZm9yIHRhZy9hdHRyaWIvdGV4dCBhdHRyaWJ1dGVzCi0gICAgcmV0dXJuIGlzaW5zdGFuY2UoZWxlbWVudCwgRWxlbWVudCkgb3IgaGFzYXR0cihlbGVtZW50LCAidGFnIikKKyAgICAjIEZJWE1FOiBub3Qgc3VyZSBhYm91dCB0aGlzOworICAgICMgaXNpbnN0YW5jZShlbGVtZW50LCBFbGVtZW50KSBvciBsb29rIGZvciB0YWcvYXR0cmliL3RleHQgYXR0cmlidXRlcworICAgIHJldHVybiBoYXNhdHRyKGVsZW1lbnQsICd0YWcnKQogCiAjIwogIyBFbGVtZW50IGNsYXNzLiAgVGhpcyBjbGFzcyBkZWZpbmVzIHRoZSBFbGVtZW50IGludGVyZmFjZSwgYW5kCkBAIC0yMDUsNiArMTgxLDkgQEAKICAgICAjIGNvbnN0cnVjdG9yCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgdGFnLCBhdHRyaWI9e30sICoqZXh0cmEpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShhdHRyaWIsIGRpY3QpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJhdHRyaWIgbXVzdCBiZSBkaWN0LCBub3QgJXMiICUgKAorICAgICAgICAgICAgICAgIGF0dHJpYi5fX2NsYXNzX18uX19uYW1lX18sKSkKICAgICAgICAgYXR0cmliID0gYXR0cmliLmNvcHkoKQogICAgICAgICBhdHRyaWIudXBkYXRlKGV4dHJhKQogICAgICAgICBzZWxmLnRhZyA9IHRhZwpAQCAtMjk4LDcgKzI3Nyw3IEBACiAgICAgIyBAcGFyYW0gZWxlbWVudCBUaGUgZWxlbWVudCB0byBhZGQuCiAKICAgICBkZWYgYXBwZW5kKHNlbGYsIGVsZW1lbnQpOgotICAgICAgICAjIGFzc2VydCBpc2VsZW1lbnQoZWxlbWVudCkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2lzX2VsZW1lbnQoZWxlbWVudCkKICAgICAgICAgc2VsZi5fY2hpbGRyZW4uYXBwZW5kKGVsZW1lbnQpCiAKICAgICAjIwpAQCAtMzA4LDggKzI4Nyw4IEBACiAgICAgIyBAc2luY2UgMS4zCiAKICAgICBkZWYgZXh0ZW5kKHNlbGYsIGVsZW1lbnRzKToKLSAgICAgICAgIyBmb3IgZWxlbWVudCBpbiBlbGVtZW50czoKLSAgICAgICAgIyAgICAgYXNzZXJ0IGlzZWxlbWVudChlbGVtZW50KQorICAgICAgICBmb3IgZWxlbWVudCBpbiBlbGVtZW50czoKKyAgICAgICAgICAgIHNlbGYuX2Fzc2VydF9pc19lbGVtZW50KGVsZW1lbnQpCiAgICAgICAgIHNlbGYuX2NoaWxkcmVuLmV4dGVuZChlbGVtZW50cykKIAogICAgICMjCkBAIC0zMTgsOSArMjk3LDEzIEBACiAgICAgIyBAcGFyYW0gaW5kZXggV2hlcmUgdG8gaW5zZXJ0IHRoZSBuZXcgc3ViZWxlbWVudC4KIAogICAgIGRlZiBpbnNlcnQoc2VsZiwgaW5kZXgsIGVsZW1lbnQpOgotICAgICAgICAjIGFzc2VydCBpc2VsZW1lbnQoZWxlbWVudCkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2lzX2VsZW1lbnQoZWxlbWVudCkKICAgICAgICAgc2VsZi5fY2hpbGRyZW4uaW5zZXJ0KGluZGV4LCBlbGVtZW50KQogCisgICAgZGVmIF9hc3NlcnRfaXNfZWxlbWVudChzZWxmLCBlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZSwgRWxlbWVudCk6CisgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoJ2V4cGVjdGVkIGFuIEVsZW1lbnQsIG5vdCAlcycgJSB0eXBlKGUpLl9fbmFtZV9fKQorCiAgICAgIyMKICAgICAjIFJlbW92ZXMgYSBtYXRjaGluZyBzdWJlbGVtZW50LiAgVW5saWtlIHRoZSA8Yj5maW5kPC9iPiBtZXRob2RzLAogICAgICMgdGhpcyBtZXRob2QgY29tcGFyZXMgZWxlbWVudHMgYmFzZWQgb24gaWRlbnRpdHksIG5vdCBvbiB0YWcKQEAgLTkwOSwxMSArODkyLDcgQEAKICAgICAgICAgICAgIF9yYWlzZV9zZXJpYWxpemF0aW9uX2Vycm9yKHFuYW1lKQogCiAgICAgIyBwb3B1bGF0ZSBxbmFtZSBhbmQgbmFtZXNwYWNlcyB0YWJsZQotICAgIHRyeToKLSAgICAgICAgaXRlcmF0ZSA9IGVsZW0uaXRlcgotICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgaXRlcmF0ZSA9IGVsZW0uZ2V0aXRlcmF0b3IgIyBjRVQgY29tcGF0aWJpbGl0eQotICAgIGZvciBlbGVtIGluIGl0ZXJhdGUoKToKKyAgICBmb3IgZWxlbSBpbiBlbGVtLml0ZXIoKToKICAgICAgICAgdGFnID0gZWxlbS50YWcKICAgICAgICAgaWYgaXNpbnN0YW5jZSh0YWcsIFFOYW1lKToKICAgICAgICAgICAgIGlmIHRhZy50ZXh0IG5vdCBpbiBxbmFtZXM6CkBAIC0xMDg1LDYgKzEwNjQsOCBAQAogICAgICMgZHVibGluIGNvcmUKICAgICAiaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iOiAiZGMiLAogfQorIyBGb3IgdGVzdHMgYW5kIHRyb3VibGVzaG9vdGluZworcmVnaXN0ZXJfbmFtZXNwYWNlLl9uYW1lc3BhY2VfbWFwID0gX25hbWVzcGFjZV9tYXAKIAogZGVmIF9yYWlzZV9zZXJpYWxpemF0aW9uX2Vycm9yKHRleHQpOgogICAgIHJhaXNlIFR5cGVFcnJvcigKQEAgLTE1MDksMjQgKzE0OTAsMzAgQEAKICAgICAgICAgc2VsZi50YXJnZXQgPSBzZWxmLl90YXJnZXQgPSB0YXJnZXQKICAgICAgICAgc2VsZi5fZXJyb3IgPSBleHBhdC5lcnJvcgogICAgICAgICBzZWxmLl9uYW1lcyA9IHt9ICMgbmFtZSBtZW1vIGNhY2hlCi0gICAgICAgICMgY2FsbGJhY2tzCisgICAgICAgICMgbWFpbiBjYWxsYmFja3MKICAgICAgICAgcGFyc2VyLkRlZmF1bHRIYW5kbGVyRXhwYW5kID0gc2VsZi5fZGVmYXVsdAotICAgICAgICBwYXJzZXIuU3RhcnRFbGVtZW50SGFuZGxlciA9IHNlbGYuX3N0YXJ0Ci0gICAgICAgIHBhcnNlci5FbmRFbGVtZW50SGFuZGxlciA9IHNlbGYuX2VuZAotICAgICAgICBwYXJzZXIuQ2hhcmFjdGVyRGF0YUhhbmRsZXIgPSBzZWxmLl9kYXRhCi0gICAgICAgICMgb3B0aW9uYWwgY2FsbGJhY2tzCi0gICAgICAgIHBhcnNlci5Db21tZW50SGFuZGxlciA9IHNlbGYuX2NvbW1lbnQKLSAgICAgICAgcGFyc2VyLlByb2Nlc3NpbmdJbnN0cnVjdGlvbkhhbmRsZXIgPSBzZWxmLl9waQorICAgICAgICBpZiBoYXNhdHRyKHRhcmdldCwgJ3N0YXJ0Jyk6CisgICAgICAgICAgICBwYXJzZXIuU3RhcnRFbGVtZW50SGFuZGxlciA9IHNlbGYuX3N0YXJ0CisgICAgICAgIGlmIGhhc2F0dHIodGFyZ2V0LCAnZW5kJyk6CisgICAgICAgICAgICBwYXJzZXIuRW5kRWxlbWVudEhhbmRsZXIgPSBzZWxmLl9lbmQKKyAgICAgICAgaWYgaGFzYXR0cih0YXJnZXQsICdkYXRhJyk6CisgICAgICAgICAgICBwYXJzZXIuQ2hhcmFjdGVyRGF0YUhhbmRsZXIgPSB0YXJnZXQuZGF0YQorICAgICAgICAjIG1pc2NlbGxhbmVvdXMgY2FsbGJhY2tzCisgICAgICAgIGlmIGhhc2F0dHIodGFyZ2V0LCAnY29tbWVudCcpOgorICAgICAgICAgICAgcGFyc2VyLkNvbW1lbnRIYW5kbGVyID0gdGFyZ2V0LmNvbW1lbnQKKyAgICAgICAgaWYgaGFzYXR0cih0YXJnZXQsICdwaScpOgorICAgICAgICAgICAgcGFyc2VyLlByb2Nlc3NpbmdJbnN0cnVjdGlvbkhhbmRsZXIgPSB0YXJnZXQucGkKICAgICAgICAgIyBsZXQgZXhwYXQgZG8gdGhlIGJ1ZmZlcmluZywgaWYgc3VwcG9ydGVkCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3BhcnNlci5idWZmZXJfdGV4dCA9IDEKKyAgICAgICAgICAgIHBhcnNlci5idWZmZXJfdGV4dCA9IDEKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICAgICAgcGFzcwogICAgICAgICAjIHVzZSBuZXctc3R5bGUgYXR0cmlidXRlIGhhbmRsaW5nLCBpZiBzdXBwb3J0ZWQKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fcGFyc2VyLm9yZGVyZWRfYXR0cmlidXRlcyA9IDEKLSAgICAgICAgICAgIHNlbGYuX3BhcnNlci5zcGVjaWZpZWRfYXR0cmlidXRlcyA9IDEKLSAgICAgICAgICAgIHBhcnNlci5TdGFydEVsZW1lbnRIYW5kbGVyID0gc2VsZi5fc3RhcnRfbGlzdAorICAgICAgICAgICAgcGFyc2VyLm9yZGVyZWRfYXR0cmlidXRlcyA9IDEKKyAgICAgICAgICAgIHBhcnNlci5zcGVjaWZpZWRfYXR0cmlidXRlcyA9IDEKKyAgICAgICAgICAgIGlmIGhhc2F0dHIodGFyZ2V0LCAnc3RhcnQnKToKKyAgICAgICAgICAgICAgICBwYXJzZXIuU3RhcnRFbGVtZW50SGFuZGxlciA9IHNlbGYuX3N0YXJ0X2xpc3QKICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgogICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxmLl9kb2N0eXBlID0gTm9uZQpAQCAtMTU3MCw0NCArMTU1NywyOSBAQAogICAgICAgICAgICAgICAgIGF0dHJpYltmaXhuYW1lKGF0dHJpYl9pbltpXSldID0gYXR0cmliX2luW2krMV0KICAgICAgICAgcmV0dXJuIHNlbGYudGFyZ2V0LnN0YXJ0KHRhZywgYXR0cmliKQogCi0gICAgZGVmIF9kYXRhKHNlbGYsIHRleHQpOgotICAgICAgICByZXR1cm4gc2VsZi50YXJnZXQuZGF0YSh0ZXh0KQotCiAgICAgZGVmIF9lbmQoc2VsZiwgdGFnKToKICAgICAgICAgcmV0dXJuIHNlbGYudGFyZ2V0LmVuZChzZWxmLl9maXhuYW1lKHRhZykpCiAKLSAgICBkZWYgX2NvbW1lbnQoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbW1lbnQgPSBzZWxmLnRhcmdldC5jb21tZW50Ci0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBjb21tZW50KGRhdGEpCi0KLSAgICBkZWYgX3BpKHNlbGYsIHRhcmdldCwgZGF0YSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHBpID0gc2VsZi50YXJnZXQucGkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcGFzcwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHBpKHRhcmdldCwgZGF0YSkKLQogICAgIGRlZiBfZGVmYXVsdChzZWxmLCB0ZXh0KToKICAgICAgICAgcHJlZml4ID0gdGV4dFs6MV0KICAgICAgICAgaWYgcHJlZml4ID09ICImIjoKICAgICAgICAgICAgICMgZGVhbCB3aXRoIHVuZGVmaW5lZCBlbnRpdGllcwogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYudGFyZ2V0LmRhdGEoc2VsZi5lbnRpdHlbdGV4dFsxOi0xXV0pCisgICAgICAgICAgICAgICAgZGF0YV9oYW5kbGVyID0gc2VsZi50YXJnZXQuZGF0YQorICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGRhdGFfaGFuZGxlcihzZWxmLmVudGl0eVt0ZXh0WzE6LTFdXSkKICAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKICAgICAgICAgICAgICAgICBmcm9tIHhtbC5wYXJzZXJzIGltcG9ydCBleHBhdAogICAgICAgICAgICAgICAgIGVyciA9IGV4cGF0LmVycm9yKAogICAgICAgICAgICAgICAgICAgICAidW5kZWZpbmVkIGVudGl0eSAlczogbGluZSAlZCwgY29sdW1uICVkIiAlCi0gICAgICAgICAgICAgICAgICAgICh0ZXh0LCBzZWxmLl9wYXJzZXIuRXJyb3JMaW5lTnVtYmVyLAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJzZXIuRXJyb3JDb2x1bW5OdW1iZXIpCisgICAgICAgICAgICAgICAgICAgICh0ZXh0LCBzZWxmLnBhcnNlci5FcnJvckxpbmVOdW1iZXIsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyc2VyLkVycm9yQ29sdW1uTnVtYmVyKQogICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgZXJyLmNvZGUgPSAxMSAjIFhNTF9FUlJPUl9VTkRFRklORURfRU5USVRZCi0gICAgICAgICAgICAgICAgZXJyLmxpbmVubyA9IHNlbGYuX3BhcnNlci5FcnJvckxpbmVOdW1iZXIKLSAgICAgICAgICAgICAgICBlcnIub2Zmc2V0ID0gc2VsZi5fcGFyc2VyLkVycm9yQ29sdW1uTnVtYmVyCisgICAgICAgICAgICAgICAgZXJyLmxpbmVubyA9IHNlbGYucGFyc2VyLkVycm9yTGluZU51bWJlcgorICAgICAgICAgICAgICAgIGVyci5vZmZzZXQgPSBzZWxmLnBhcnNlci5FcnJvckNvbHVtbk51bWJlcgogICAgICAgICAgICAgICAgIHJhaXNlIGVycgogICAgICAgICBlbGlmIHByZWZpeCA9PSAiPCIgYW5kIHRleHRbOjldID09ICI8IURPQ1RZUEUiOgogICAgICAgICAgICAgc2VsZi5fZG9jdHlwZSA9IFtdICMgaW5zaWRlIGEgZG9jdHlwZSBkZWNsYXJhdGlvbgpAQCAtMTYyNSwxNiArMTU5NywxNiBAQAogICAgICAgICAgICAgICAgIHR5cGUgPSBzZWxmLl9kb2N0eXBlWzFdCiAgICAgICAgICAgICAgICAgaWYgdHlwZSA9PSAiUFVCTElDIiBhbmQgbiA9PSA0OgogICAgICAgICAgICAgICAgICAgICBuYW1lLCB0eXBlLCBwdWJpZCwgc3lzdGVtID0gc2VsZi5fZG9jdHlwZQorICAgICAgICAgICAgICAgICAgICBpZiBwdWJpZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmlkID0gcHViaWRbMTotMV0KICAgICAgICAgICAgICAgICBlbGlmIHR5cGUgPT0gIlNZU1RFTSIgYW5kIG4gPT0gMzoKICAgICAgICAgICAgICAgICAgICAgbmFtZSwgdHlwZSwgc3lzdGVtID0gc2VsZi5fZG9jdHlwZQogICAgICAgICAgICAgICAgICAgICBwdWJpZCA9IE5vbmUKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICBpZiBwdWJpZDoKLSAgICAgICAgICAgICAgICAgICAgcHViaWQgPSBwdWJpZFsxOi0xXQogICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZi50YXJnZXQsICJkb2N0eXBlIik6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFyZ2V0LmRvY3R5cGUobmFtZSwgcHViaWQsIHN5c3RlbVsxOi0xXSkKLSAgICAgICAgICAgICAgICBlbGlmIHNlbGYuZG9jdHlwZSBpcyBub3Qgc2VsZi5fWE1MUGFyc2VyX19kb2N0eXBlOgorICAgICAgICAgICAgICAgIGVsaWYgc2VsZi5kb2N0eXBlICE9IHNlbGYuX1hNTFBhcnNlcl9fZG9jdHlwZToKICAgICAgICAgICAgICAgICAgICAgIyB3YXJuIGFib3V0IGRlcHJlY2F0ZWQgY2FsbAogICAgICAgICAgICAgICAgICAgICBzZWxmLl9YTUxQYXJzZXJfX2RvY3R5cGUobmFtZSwgcHViaWQsIHN5c3RlbVsxOi0xXSkKICAgICAgICAgICAgICAgICAgICAgc2VsZi5kb2N0eXBlKG5hbWUsIHB1YmlkLCBzeXN0ZW1bMTotMV0pCkBAIC0xNjY1LDcgKzE2MzcsNyBAQAogCiAgICAgZGVmIGZlZWQoc2VsZiwgZGF0YSk6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3BhcnNlci5QYXJzZShkYXRhLCAwKQorICAgICAgICAgICAgc2VsZi5wYXJzZXIuUGFyc2UoZGF0YSwgMCkKICAgICAgICAgZXhjZXB0IHNlbGYuX2Vycm9yIGFzIHY6CiAgICAgICAgICAgICBzZWxmLl9yYWlzZWVycm9yKHYpCiAKQEAgLTE2NzcsMTIgKzE2NDksMTAwIEBACiAKICAgICBkZWYgY2xvc2Uoc2VsZik6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3BhcnNlci5QYXJzZSgiIiwgMSkgIyBlbmQgb2YgZGF0YQorICAgICAgICAgICAgc2VsZi5wYXJzZXIuUGFyc2UoIiIsIDEpICMgZW5kIG9mIGRhdGEKICAgICAgICAgZXhjZXB0IHNlbGYuX2Vycm9yIGFzIHY6CiAgICAgICAgICAgICBzZWxmLl9yYWlzZWVycm9yKHYpCi0gICAgICAgIHRyZWUgPSBzZWxmLnRhcmdldC5jbG9zZSgpCi0gICAgICAgIGRlbCBzZWxmLnRhcmdldCwgc2VsZi5fcGFyc2VyICMgZ2V0IHJpZCBvZiBjaXJjdWxhciByZWZlcmVuY2VzCi0gICAgICAgIHJldHVybiB0cmVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNsb3NlX2hhbmRsZXIgPSBzZWxmLnRhcmdldC5jbG9zZQorICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gY2xvc2VfaGFuZGxlcigpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICAjIGdldCByaWQgb2YgY2lyY3VsYXIgcmVmZXJlbmNlcworICAgICAgICAgICAgZGVsIHNlbGYucGFyc2VyLCBzZWxmLl9wYXJzZXIKKyAgICAgICAgICAgIGRlbCBzZWxmLnRhcmdldCwgc2VsZi5fdGFyZ2V0CisKKworIyBJbXBvcnQgdGhlIEMgYWNjZWxlcmF0b3JzCit0cnk6CisgICAgIyBFbGVtZW50LCBTdWJFbGVtZW50LCBQYXJzZUVycm9yLCBUcmVlQnVpbGRlciwgWE1MUGFyc2VyCisgICAgZnJvbSBfZWxlbWVudHRyZWUgaW1wb3J0ICoKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBwYXNzCitlbHNlOgorICAgICMgT3ZlcndyaXRlICdFbGVtZW50VHJlZS5wYXJzZScgYW5kICdpdGVycGFyc2UnIHRvIHVzZSB0aGUgQyBYTUxQYXJzZXIKKworICAgIGNsYXNzIEVsZW1lbnRUcmVlKEVsZW1lbnRUcmVlKToKKyAgICAgICAgZGVmIHBhcnNlKHNlbGYsIHNvdXJjZSwgcGFyc2VyPU5vbmUpOgorICAgICAgICAgICAgY2xvc2Vfc291cmNlID0gRmFsc2UKKyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHNvdXJjZSwgJ3JlYWQnKToKKyAgICAgICAgICAgICAgICBzb3VyY2UgPSBvcGVuKHNvdXJjZSwgJ3JiJykKKyAgICAgICAgICAgICAgICBjbG9zZV9zb3VyY2UgPSBUcnVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgcGFyc2VyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNvdXJjZS5yZWFkKDY1NTM2KQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGRhdGE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlci5mZWVkKGRhdGEpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Jvb3QgPSBwYXJzZXIuY2xvc2UoKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHBhcnNlciA9IFhNTFBhcnNlcigpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Jvb3QgPSBwYXJzZXIuX3BhcnNlKHNvdXJjZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcm9vdAorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBpZiBjbG9zZV9zb3VyY2U6CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5jbG9zZSgpCisKKyAgICBjbGFzcyBpdGVycGFyc2U6CisgICAgICAgIHJvb3QgPSBOb25lCisgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlLCBldmVudHM9Tm9uZSk6CisgICAgICAgICAgICBzZWxmLl9jbG9zZV9maWxlID0gRmFsc2UKKyAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKGZpbGUsICdyZWFkJyk6CisgICAgICAgICAgICAgICAgZmlsZSA9IG9wZW4oZmlsZSwgJ3JiJykKKyAgICAgICAgICAgICAgICBzZWxmLl9jbG9zZV9maWxlID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5fZmlsZSA9IGZpbGUKKyAgICAgICAgICAgIHNlbGYuX2V2ZW50cyA9IFtdCisgICAgICAgICAgICBzZWxmLl9pbmRleCA9IDAKKyAgICAgICAgICAgIHNlbGYuX2Vycm9yID0gTm9uZQorICAgICAgICAgICAgc2VsZi5yb290ID0gc2VsZi5fcm9vdCA9IE5vbmUKKyAgICAgICAgICAgIGIgPSBUcmVlQnVpbGRlcigpCisgICAgICAgICAgICBzZWxmLl9wYXJzZXIgPSBYTUxQYXJzZXIoYikKKyAgICAgICAgICAgIHNlbGYuX3BhcnNlci5fc2V0ZXZlbnRzKHNlbGYuX2V2ZW50cywgZXZlbnRzKQorCisgICAgICAgIGRlZiBfX25leHRfXyhzZWxmKToKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBpdGVtID0gc2VsZi5fZXZlbnRzW3NlbGYuX2luZGV4XQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9pbmRleCArPSAxCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtCisgICAgICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBpZiBzZWxmLl9lcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgZSA9IHNlbGYuX2Vycm9yCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Vycm9yID0gTm9uZQorICAgICAgICAgICAgICAgICAgICByYWlzZSBlCisgICAgICAgICAgICAgICAgaWYgc2VsZi5fcGFyc2VyIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucm9vdCA9IHNlbGYuX3Jvb3QKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fY2xvc2VfZmlsZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2ZpbGUuY2xvc2UoKQorICAgICAgICAgICAgICAgICAgICByYWlzZSBTdG9wSXRlcmF0aW9uCisgICAgICAgICAgICAgICAgIyBsb2FkIGV2ZW50IGJ1ZmZlcgorICAgICAgICAgICAgICAgIGRlbCBzZWxmLl9ldmVudHNbOl0KKyAgICAgICAgICAgICAgICBzZWxmLl9pbmRleCA9IDAKKyAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5fZmlsZS5yZWFkKDE2Mzg0KQorICAgICAgICAgICAgICAgIGlmIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3BhcnNlci5mZWVkKGRhdGEpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBTeW50YXhFcnJvciBhcyBleGM6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJvciA9IGV4YworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Jvb3QgPSBzZWxmLl9wYXJzZXIuY2xvc2UoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLl9wYXJzZXIgPSBOb25lCisKKyAgICAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYKIAogIyBjb21wYXRpYmlsaXR5CiBYTUxUcmVlQnVpbGRlciA9IFhNTFBhcnNlcgpkaWZmIC0tZ2l0IGEvTGliL3htbC9ldHJlZS9jRWxlbWVudFRyZWUucHkgYi9MaWIveG1sL2V0cmVlL2NFbGVtZW50VHJlZS5weQppbmRleCBhNmYxMjdhLi4zNjhlNjc5IDEwMDY0NAotLS0gYS9MaWIveG1sL2V0cmVlL2NFbGVtZW50VHJlZS5weQorKysgYi9MaWIveG1sL2V0cmVlL2NFbGVtZW50VHJlZS5weQpAQCAtMSwzICsxLDMgQEAKLSMgV3JhcHBlciBtb2R1bGUgZm9yIF9lbGVtZW50dHJlZQorIyBEZXByZWNhdGVkIGFsaWFzIGZvciB4bWwuZXRyZWUuRWxlbWVudFRyZWUKIAotZnJvbSBfZWxlbWVudHRyZWUgaW1wb3J0ICoKK2Zyb20geG1sLmV0cmVlLkVsZW1lbnRUcmVlIGltcG9ydCAqCmRpZmYgLS1naXQgYS9MaWIveG1sL3BhcnNlcnMvZXhwYXQucHkgYi9MaWIveG1sL3BhcnNlcnMvZXhwYXQucHkKaW5kZXggYTgwNWI4Mi4uYmNiZTlmYiAxMDA2NDQKLS0tIGEvTGliL3htbC9wYXJzZXJzL2V4cGF0LnB5CisrKyBiL0xpYi94bWwvcGFyc2Vycy9leHBhdC5weQpAQCAtMSw2ICsxLDQgQEAKICIiIkludGVyZmFjZSB0byB0aGUgRXhwYXQgbm9uLXZhbGlkYXRpbmcgWE1MIHBhcnNlci4iIiIKLV9fdmVyc2lvbl9fID0gJyRSZXZpc2lvbiQnCi0KIGltcG9ydCBzeXMKIAogZnJvbSBweWV4cGF0IGltcG9ydCAqCmRpZmYgLS1naXQgYS9MaWIveG1scnBjL2NsaWVudC5weSBiL0xpYi94bWxycGMvY2xpZW50LnB5CmluZGV4IDk3ZDVhYWMuLmE3NzllNjYgMTAwNjQ0Ci0tLSBhL0xpYi94bWxycGMvY2xpZW50LnB5CisrKyBiL0xpYi94bWxycGMvY2xpZW50LnB5CkBAIC0xMjgsOCArMTI4LDExIEBACiAiIiIKIAogaW1wb3J0IGJhc2U2NAoraW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKK2Zyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgaHR0cC5jbGllbnQKK2ltcG9ydCB1cmxsaWIucGFyc2UKIGZyb20geG1sLnBhcnNlcnMgaW1wb3J0IGV4cGF0CiBpbXBvcnQgc29ja2V0CiBpbXBvcnQgZXJybm8KQEAgLTE0MiwxNyArMTQ1LDEzIEBACiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIEludGVybmFsIHN0dWZmCiAKLXRyeToKLSAgICBpbXBvcnQgZGF0ZXRpbWUKLWV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICBkYXRldGltZSA9IE5vbmUKLQogZGVmIGVzY2FwZShzKToKICAgICBzID0gcy5yZXBsYWNlKCImIiwgIiZhbXA7IikKICAgICBzID0gcy5yZXBsYWNlKCI8IiwgIiZsdDsiKQogICAgIHJldHVybiBzLnJlcGxhY2UoIj4iLCAiJmd0OyIsKQogCi1fX3ZlcnNpb25fXyA9ICIxLjAuMSIKKyMgdXNlZCBpbiBVc2VyLUFnZW50IGhlYWRlciBzZW50CitfX3ZlcnNpb25fXyA9IHN5cy52ZXJzaW9uWzozXQogCiAjIHhtbHJwYyBpbnRlZ2VyIGxpbWl0cwogTUFYSU5UID0gIDIqKjMxLTEKQEAgLTI1MiwyMSArMjUxLDMzIEBACiAjIFdyYXBwZXIgZm9yIFhNTC1SUEMgRGF0ZVRpbWUgdmFsdWVzLiAgVGhpcyBjb252ZXJ0cyBhIHRpbWUgdmFsdWUgdG8KICMgdGhlIGZvcm1hdCB1c2VkIGJ5IFhNTC1SUEMuCiAjIDxwPgotIyBUaGUgdmFsdWUgY2FuIGJlIGdpdmVuIGFzIGEgc3RyaW5nIGluIHRoZSBmb3JtYXQKLSMgInl5eXltbWRkVGhoOm1tOnNzIiwgYXMgYSA5LWl0ZW0gdGltZSB0dXBsZSAoYXMgcmV0dXJuZWQgYnkKKyMgVGhlIHZhbHVlIGNhbiBiZSBnaXZlbiBhcyBhIGRhdGV0aW1lIG9iamVjdCwgYXMgYSBzdHJpbmcgaW4gdGhlCisjIGZvcm1hdCAieXl5eW1tZGRUaGg6bW06c3MiLCBhcyBhIDktaXRlbSB0aW1lIHR1cGxlIChhcyByZXR1cm5lZCBieQogIyB0aW1lLmxvY2FsdGltZSgpKSwgb3IgYW4gaW50ZWdlciB2YWx1ZSAoYXMgcmV0dXJuZWQgYnkgdGltZS50aW1lKCkpLgogIyBUaGUgd3JhcHBlciB1c2VzIHRpbWUubG9jYWx0aW1lKCkgdG8gY29udmVydCBhbiBpbnRlZ2VyIHRvIGEgdGltZQogIyB0dXBsZS4KICMKLSMgQHBhcmFtIHZhbHVlIFRoZSB0aW1lLCBnaXZlbiBhcyBhbiBJU08gODYwMSBzdHJpbmcsIGEgdGltZQotIyAgICAgICAgICAgICAgdHVwbGUsIG9yIGEgaW50ZWdlciB0aW1lIHZhbHVlLgorIyBAcGFyYW0gdmFsdWUgVGhlIHRpbWUsIGdpdmVuIGFzIGEgZGF0ZXRpbWUgb2JqZWN0LCBhbiBJU08gODYwMSBzdHJpbmcsCisjICAgICAgICAgICAgICBhIHRpbWUgdHVwbGUsIG9yIGFuIGludGVnZXIgdGltZSB2YWx1ZS4KKworCisjIElzc3VlICMxMzMwNTogZGlmZmVyZW50IGZvcm1hdCBjb2RlcyBhY3Jvc3MgcGxhdGZvcm1zCitfZGF5MCA9IGRhdGV0aW1lKDEsIDEsIDEpCitpZiBfZGF5MC5zdHJmdGltZSgnJVknKSA9PSAnMDAwMSc6ICAgICAgIyBNYWMgT1MgWAorICAgIGRlZiBfaXNvODYwMV9mb3JtYXQodmFsdWUpOgorICAgICAgICByZXR1cm4gdmFsdWUuc3RyZnRpbWUoIiVZJW0lZFQlSDolTTolUyIpCitlbGlmIF9kYXkwLnN0cmZ0aW1lKCclNFknKSA9PSAnMDAwMSc6ICAgIyBMaW51eAorICAgIGRlZiBfaXNvODYwMV9mb3JtYXQodmFsdWUpOgorICAgICAgICByZXR1cm4gdmFsdWUuc3RyZnRpbWUoIiU0WSVtJWRUJUg6JU06JVMiKQorZWxzZToKKyAgICBkZWYgX2lzbzg2MDFfZm9ybWF0KHZhbHVlKToKKyAgICAgICAgcmV0dXJuIHZhbHVlLnN0cmZ0aW1lKCIlWSVtJWRUJUg6JU06JVMiKS56ZmlsbCgxNykKK2RlbCBfZGF5MAorCiAKIGRlZiBfc3RyZnRpbWUodmFsdWUpOgotICAgIGlmIGRhdGV0aW1lOgotICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBkYXRldGltZS5kYXRldGltZSk6Ci0gICAgICAgICAgICByZXR1cm4gIiUwNGQlMDJkJTAyZFQlMDJkOiUwMmQ6JTAyZCIgJSAoCi0gICAgICAgICAgICAgICAgdmFsdWUueWVhciwgdmFsdWUubW9udGgsIHZhbHVlLmRheSwKLSAgICAgICAgICAgICAgICB2YWx1ZS5ob3VyLCB2YWx1ZS5taW51dGUsIHZhbHVlLnNlY29uZCkKKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBkYXRldGltZSk6CisgICAgICAgIHJldHVybiBfaXNvODYwMV9mb3JtYXQodmFsdWUpCiAKICAgICBpZiBub3QgaXNpbnN0YW5jZSh2YWx1ZSwgKHR1cGxlLCB0aW1lLnN0cnVjdF90aW1lKSk6CiAgICAgICAgIGlmIHZhbHVlID09IDA6CkBAIC0yOTEsOSArMzAyLDkgQEAKICAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgRGF0ZVRpbWUpOgogICAgICAgICAgICAgcyA9IHNlbGYudmFsdWUKICAgICAgICAgICAgIG8gPSBvdGhlci52YWx1ZQotICAgICAgICBlbGlmIGRhdGV0aW1lIGFuZCBpc2luc3RhbmNlKG90aGVyLCBkYXRldGltZS5kYXRldGltZSk6CisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvdGhlciwgZGF0ZXRpbWUpOgogICAgICAgICAgICAgcyA9IHNlbGYudmFsdWUKLSAgICAgICAgICAgIG8gPSBvdGhlci5zdHJmdGltZSgiJVklbSVkVCVIOiVNOiVTIikKKyAgICAgICAgICAgIG8gPSBfaXNvODYwMV9mb3JtYXQob3RoZXIpCiAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvdGhlciwgc3RyKToKICAgICAgICAgICAgIHMgPSBzZWxmLnZhbHVlCiAgICAgICAgICAgICBvID0gb3RoZXIKQEAgLTM2MSw4ICszNzIsNyBAQAogICAgIHJldHVybiB2YWx1ZQogCiBkZWYgX2RhdGV0aW1lX3R5cGUoZGF0YSk6Ci0gICAgdCA9IHRpbWUuc3RycHRpbWUoZGF0YSwgIiVZJW0lZFQlSDolTTolUyIpCi0gICAgcmV0dXJuIGRhdGV0aW1lLmRhdGV0aW1lKCp0dXBsZSh0KVs6Nl0pCisgICAgcmV0dXJuIGRhdGV0aW1lLnN0cnB0aW1lKGRhdGEsICIlWSVtJWRUJUg6JU06JVMiKQogCiAjIwogIyBXcmFwcGVyIGZvciBiaW5hcnkgZGF0YS4gIFRoaXMgY2FuIGJlIHVzZWQgdG8gdHJhbnNwb3J0IGFueSBraW5kCkBAIC0zNzcsOCArMzg3LDggQEAKICAgICAgICAgaWYgZGF0YSBpcyBOb25lOgogICAgICAgICAgICAgZGF0YSA9IGIiIgogICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZGF0YSwgYnl0ZXMpOgotICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiZXhwZWN0ZWQgYnl0ZXMsIG5vdCAlcyIgJQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZGF0YSwgKGJ5dGVzLCBieXRlYXJyYXkpKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImV4cGVjdGVkIGJ5dGVzIG9yIGJ5dGVhcnJheSwgbm90ICVzIiAlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuX19jbGFzc19fLl9fbmFtZV9fKQogICAgICAgICAgICAgZGF0YSA9IGJ5dGVzKGRhdGEpICAjIE1ha2UgYSBjb3B5IG9mIHRoZSBieXRlcyEKICAgICAgICAgc2VsZi5kYXRhID0gZGF0YQpAQCAtNDA4LDcgKzQxOCw2IEBACiAgICAgICAgIG91dC53cml0ZSgiPHZhbHVlPjxiYXNlNjQ+XG4iKQogICAgICAgICBlbmNvZGVkID0gYmFzZTY0LmVuY29kZWJ5dGVzKHNlbGYuZGF0YSkKICAgICAgICAgb3V0LndyaXRlKGVuY29kZWQuZGVjb2RlKCdhc2NpaScpKQotICAgICAgICBvdXQud3JpdGUoJ1xuJykKICAgICAgICAgb3V0LndyaXRlKCI8L2Jhc2U2ND48L3ZhbHVlPlxuIikKIAogZGVmIF9iaW5hcnkoZGF0YSk6CkBAIC01MjIsMTUgKzUzMSw2IEBACiAgICAgICAgIHdyaXRlKCI8dmFsdWU+PG5pbC8+PC92YWx1ZT4iKQogICAgIGRpc3BhdGNoW3R5cGUoTm9uZSldID0gZHVtcF9uaWwKIAotICAgIGRlZiBkdW1wX2ludChzZWxmLCB2YWx1ZSwgd3JpdGUpOgotICAgICAgICAjIGluIGNhc2UgaW50cyBhcmUgPiAzMiBiaXRzCi0gICAgICAgIGlmIHZhbHVlID4gTUFYSU5UIG9yIHZhbHVlIDwgTUlOSU5UOgotICAgICAgICAgICAgcmFpc2UgT3ZlcmZsb3dFcnJvcigiaW50IGV4Y2VlZHMgWE1MLVJQQyBsaW1pdHMiKQotICAgICAgICB3cml0ZSgiPHZhbHVlPjxpbnQ+IikKLSAgICAgICAgd3JpdGUoc3RyKHZhbHVlKSkKLSAgICAgICAgd3JpdGUoIjwvaW50PjwvdmFsdWU+XG4iKQotICAgICNkaXNwYXRjaFtpbnRdID0gZHVtcF9pbnQKLQogICAgIGRlZiBkdW1wX2Jvb2woc2VsZiwgdmFsdWUsIHdyaXRlKToKICAgICAgICAgd3JpdGUoIjx2YWx1ZT48Ym9vbGVhbj4iKQogICAgICAgICB3cml0ZSh2YWx1ZSBhbmQgIjEiIG9yICIwIikKQEAgLTU0NSw2ICs1NDUsOSBAQAogICAgICAgICB3cml0ZSgiPC9pbnQ+PC92YWx1ZT5cbiIpCiAgICAgZGlzcGF0Y2hbaW50XSA9IGR1bXBfbG9uZwogCisgICAgIyBiYWNrd2FyZCBjb21wYXRpYmxlCisgICAgZHVtcF9pbnQgPSBkdW1wX2xvbmcKKwogICAgIGRlZiBkdW1wX2RvdWJsZShzZWxmLCB2YWx1ZSwgd3JpdGUpOgogICAgICAgICB3cml0ZSgiPHZhbHVlPjxkb3VibGU+IikKICAgICAgICAgd3JpdGUocmVwcih2YWx1ZSkpCkBAIC01NTcsNiArNTYwLDE0IEBACiAgICAgICAgIHdyaXRlKCI8L3N0cmluZz48L3ZhbHVlPlxuIikKICAgICBkaXNwYXRjaFtzdHJdID0gZHVtcF91bmljb2RlCiAKKyAgICBkZWYgZHVtcF9ieXRlcyhzZWxmLCB2YWx1ZSwgd3JpdGUpOgorICAgICAgICB3cml0ZSgiPHZhbHVlPjxiYXNlNjQ+XG4iKQorICAgICAgICBlbmNvZGVkID0gYmFzZTY0LmVuY29kZWJ5dGVzKHZhbHVlKQorICAgICAgICB3cml0ZShlbmNvZGVkLmRlY29kZSgnYXNjaWknKSkKKyAgICAgICAgd3JpdGUoIjwvYmFzZTY0PjwvdmFsdWU+XG4iKQorICAgIGRpc3BhdGNoW2J5dGVzXSA9IGR1bXBfYnl0ZXMKKyAgICBkaXNwYXRjaFtieXRlYXJyYXldID0gZHVtcF9ieXRlcworCiAgICAgZGVmIGR1bXBfYXJyYXkoc2VsZiwgdmFsdWUsIHdyaXRlKToKICAgICAgICAgaSA9IGlkKHZhbHVlKQogICAgICAgICBpZiBpIGluIHNlbGYubWVtbzoKQEAgLTU4OSwxMiArNjAwLDExIEBACiAgICAgICAgIGRlbCBzZWxmLm1lbW9baV0KICAgICBkaXNwYXRjaFtkaWN0XSA9IGR1bXBfc3RydWN0CiAKLSAgICBpZiBkYXRldGltZToKLSAgICAgICAgZGVmIGR1bXBfZGF0ZXRpbWUoc2VsZiwgdmFsdWUsIHdyaXRlKToKLSAgICAgICAgICAgIHdyaXRlKCI8dmFsdWU+PGRhdGVUaW1lLmlzbzg2MDE+IikKLSAgICAgICAgICAgIHdyaXRlKF9zdHJmdGltZSh2YWx1ZSkpCi0gICAgICAgICAgICB3cml0ZSgiPC9kYXRlVGltZS5pc284NjAxPjwvdmFsdWU+XG4iKQotICAgICAgICBkaXNwYXRjaFtkYXRldGltZS5kYXRldGltZV0gPSBkdW1wX2RhdGV0aW1lCisgICAgZGVmIGR1bXBfZGF0ZXRpbWUoc2VsZiwgdmFsdWUsIHdyaXRlKToKKyAgICAgICAgd3JpdGUoIjx2YWx1ZT48ZGF0ZVRpbWUuaXNvODYwMT4iKQorICAgICAgICB3cml0ZShfc3RyZnRpbWUodmFsdWUpKQorICAgICAgICB3cml0ZSgiPC9kYXRlVGltZS5pc284NjAxPjwvdmFsdWU+XG4iKQorICAgIGRpc3BhdGNoW2RhdGV0aW1lXSA9IGR1bXBfZGF0ZXRpbWUKIAogICAgIGRlZiBkdW1wX2luc3RhbmNlKHNlbGYsIHZhbHVlLCB3cml0ZSk6CiAgICAgICAgICMgY2hlY2sgZm9yIHNwZWNpYWwgd3JhcHBlcnMKQEAgLTYyOCw3ICs2MzgsNyBAQAogICAgICMgYW5kIGFnYWluLCBpZiB5b3UgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0J3MgZ29pbmcgb24gaW4gaGVyZSwKICAgICAjIHRoYXQncyBwZXJmZWN0bHkgb2suCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdXNlX2RhdGV0aW1lPUZhbHNlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXNlX2RhdGV0aW1lPUZhbHNlLCB1c2VfYnVpbHRpbl90eXBlcz1GYWxzZSk6CiAgICAgICAgIHNlbGYuX3R5cGUgPSBOb25lCiAgICAgICAgIHNlbGYuX3N0YWNrID0gW10KICAgICAgICAgc2VsZi5fbWFya3MgPSBbXQpAQCAtNjM2LDkgKzY0Niw4IEBACiAgICAgICAgIHNlbGYuX21ldGhvZG5hbWUgPSBOb25lCiAgICAgICAgIHNlbGYuX2VuY29kaW5nID0gInV0Zi04IgogICAgICAgICBzZWxmLmFwcGVuZCA9IHNlbGYuX3N0YWNrLmFwcGVuZAotICAgICAgICBzZWxmLl91c2VfZGF0ZXRpbWUgPSB1c2VfZGF0ZXRpbWUKLSAgICAgICAgaWYgdXNlX2RhdGV0aW1lIGFuZCBub3QgZGF0ZXRpbWU6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ0aGUgZGF0ZXRpbWUgbW9kdWxlIGlzIG5vdCBhdmFpbGFibGUiKQorICAgICAgICBzZWxmLl91c2VfZGF0ZXRpbWUgPSB1c2VfYnVpbHRpbl90eXBlcyBvciB1c2VfZGF0ZXRpbWUKKyAgICAgICAgc2VsZi5fdXNlX2J5dGVzID0gdXNlX2J1aWx0aW5fdHlwZXMKIAogICAgIGRlZiBjbG9zZShzZWxmKToKICAgICAgICAgIyByZXR1cm4gcmVzcG9uc2UgdHVwbGUgYW5kIHRhcmdldCBtZXRob2QKQEAgLTc1MCw2ICs3NTksOCBAQAogICAgIGRlZiBlbmRfYmFzZTY0KHNlbGYsIGRhdGEpOgogICAgICAgICB2YWx1ZSA9IEJpbmFyeSgpCiAgICAgICAgIHZhbHVlLmRlY29kZShkYXRhLmVuY29kZSgiYXNjaWkiKSkKKyAgICAgICAgaWYgc2VsZi5fdXNlX2J5dGVzOgorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5kYXRhCiAgICAgICAgIHNlbGYuYXBwZW5kKHZhbHVlKQogICAgICAgICBzZWxmLl92YWx1ZSA9IDAKICAgICBkaXNwYXRjaFsiYmFzZTY0Il0gPSBlbmRfYmFzZTY0CkBAIC04NjEsMjMgKzg3MiwyNiBAQAogIwogIyByZXR1cm4gQSAocGFyc2VyLCB1bm1hcnNoYWxsZXIpIHR1cGxlLgogCi1kZWYgZ2V0cGFyc2VyKHVzZV9kYXRldGltZT1GYWxzZSk6CitkZWYgZ2V0cGFyc2VyKHVzZV9kYXRldGltZT1GYWxzZSwgdXNlX2J1aWx0aW5fdHlwZXM9RmFsc2UpOgogICAgICIiImdldHBhcnNlcigpIC0+IHBhcnNlciwgdW5tYXJzaGFsbGVyCiAKICAgICBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgdGhlIGZhc3Rlc3QgYXZhaWxhYmxlIHBhcnNlciwgYW5kIGF0dGFjaCBpdAogICAgIHRvIGFuIHVubWFyc2hhbGxpbmcgb2JqZWN0LiAgUmV0dXJuIGJvdGggb2JqZWN0cy4KICAgICAiIiIKLSAgICBpZiB1c2VfZGF0ZXRpbWUgYW5kIG5vdCBkYXRldGltZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidGhlIGRhdGV0aW1lIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlIikKICAgICBpZiBGYXN0UGFyc2VyIGFuZCBGYXN0VW5tYXJzaGFsbGVyOgotICAgICAgICBpZiB1c2VfZGF0ZXRpbWU6CisgICAgICAgIGlmIHVzZV9idWlsdGluX3R5cGVzOgogICAgICAgICAgICAgbWtkYXRldGltZSA9IF9kYXRldGltZV90eXBlCisgICAgICAgICAgICBta2J5dGVzID0gYmFzZTY0LmRlY29kZWJ5dGVzCisgICAgICAgIGVsaWYgdXNlX2RhdGV0aW1lOgorICAgICAgICAgICAgbWtkYXRldGltZSA9IF9kYXRldGltZV90eXBlCisgICAgICAgICAgICBta2J5dGVzID0gX2JpbmFyeQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbWtkYXRldGltZSA9IF9kYXRldGltZQotICAgICAgICB0YXJnZXQgPSBGYXN0VW5tYXJzaGFsbGVyKFRydWUsIEZhbHNlLCBfYmluYXJ5LCBta2RhdGV0aW1lLCBGYXVsdCkKKyAgICAgICAgICAgIG1rYnl0ZXMgPSBfYmluYXJ5CisgICAgICAgIHRhcmdldCA9IEZhc3RVbm1hcnNoYWxsZXIoVHJ1ZSwgRmFsc2UsIG1rYnl0ZXMsIG1rZGF0ZXRpbWUsIEZhdWx0KQogICAgICAgICBwYXJzZXIgPSBGYXN0UGFyc2VyKHRhcmdldCkKICAgICBlbHNlOgotICAgICAgICB0YXJnZXQgPSBVbm1hcnNoYWxsZXIodXNlX2RhdGV0aW1lPXVzZV9kYXRldGltZSkKKyAgICAgICAgdGFyZ2V0ID0gVW5tYXJzaGFsbGVyKHVzZV9kYXRldGltZT11c2VfZGF0ZXRpbWUsIHVzZV9idWlsdGluX3R5cGVzPXVzZV9idWlsdGluX3R5cGVzKQogICAgICAgICBpZiBGYXN0UGFyc2VyOgogICAgICAgICAgICAgcGFyc2VyID0gRmFzdFBhcnNlcih0YXJnZXQpCiAgICAgICAgIGVsc2U6CkBAIC05MTUsNyArOTI5LDcgQEAKIAogICAgICAgICBlbmNvZGluZzogdGhlIHBhY2tldCBlbmNvZGluZyAoZGVmYXVsdCBpcyBVVEYtOCkKIAotICAgIEFsbCA4LWJpdCBzdHJpbmdzIGluIHRoZSBkYXRhIHN0cnVjdHVyZSBhcmUgYXNzdW1lZCB0byB1c2UgdGhlCisgICAgQWxsIGJ5dGUgc3RyaW5ncyBpbiB0aGUgZGF0YSBzdHJ1Y3R1cmUgYXJlIGFzc3VtZWQgdG8gdXNlIHRoZQogICAgIHBhY2tldCBlbmNvZGluZy4gIFVuaWNvZGUgc3RyaW5ncyBhcmUgYXV0b21hdGljYWxseSBjb252ZXJ0ZWQsCiAgICAgd2hlcmUgbmVjZXNzYXJ5LgogICAgICIiIgpAQCAtOTc0LDcgKzk4OCw3IEBACiAjICAgICAoTm9uZSBpZiBub3QgcHJlc2VudCkuCiAjIEBzZWUgRmF1bHQKIAotZGVmIGxvYWRzKGRhdGEsIHVzZV9kYXRldGltZT1GYWxzZSk6CitkZWYgbG9hZHMoZGF0YSwgdXNlX2RhdGV0aW1lPUZhbHNlLCB1c2VfYnVpbHRpbl90eXBlcz1GYWxzZSk6CiAgICAgIiIiZGF0YSAtPiB1bm1hcnNoYWxsZWQgZGF0YSwgbWV0aG9kIG5hbWUKIAogICAgIENvbnZlcnQgYW4gWE1MLVJQQyBwYWNrZXQgdG8gdW5tYXJzaGFsbGVkIGRhdGEgcGx1cyBhIG1ldGhvZApAQCAtOTgzLDcgKzk5Nyw3IEBACiAgICAgSWYgdGhlIFhNTC1SUEMgcGFja2V0IHJlcHJlc2VudHMgYSBmYXVsdCBjb25kaXRpb24sIHRoaXMgZnVuY3Rpb24KICAgICByYWlzZXMgYSBGYXVsdCBleGNlcHRpb24uCiAgICAgIiIiCi0gICAgcCwgdSA9IGdldHBhcnNlcih1c2VfZGF0ZXRpbWU9dXNlX2RhdGV0aW1lKQorICAgIHAsIHUgPSBnZXRwYXJzZXIodXNlX2RhdGV0aW1lPXVzZV9kYXRldGltZSwgdXNlX2J1aWx0aW5fdHlwZXM9dXNlX2J1aWx0aW5fdHlwZXMpCiAgICAgcC5mZWVkKGRhdGEpCiAgICAgcC5jbG9zZSgpCiAgICAgcmV0dXJuIHUuY2xvc2UoKSwgdS5nZXRtZXRob2RuYW1lKCkKQEAgLTEwODUsNyArMTA5OSw3IEBACiAgICAgIiIiSGFuZGxlcyBhbiBIVFRQIHRyYW5zYWN0aW9uIHRvIGFuIFhNTC1SUEMgc2VydmVyLiIiIgogCiAgICAgIyBjbGllbnQgaWRlbnRpZmllciAobWF5IGJlIG92ZXJyaWRkZW4pCi0gICAgdXNlcl9hZ2VudCA9ICJ4bWxycGNsaWIucHkvJXMgKGJ5IHd3dy5weXRob253YXJlLmNvbSkiICUgX192ZXJzaW9uX18KKyAgICB1c2VyX2FnZW50ID0gIlB5dGhvbi14bWxycGMvJXMiICUgX192ZXJzaW9uX18KIAogICAgICNpZiB0cnVlLCB3ZSdsbCByZXF1ZXN0IGd6aXAgZW5jb2RpbmcKICAgICBhY2NlcHRfZ3ppcF9lbmNvZGluZyA9IFRydWUKQEAgLTEwOTUsOCArMTEwOSw5IEBACiAgICAgIyB0aGF0IHRoZXkgY2FuIGRlY29kZSBzdWNoIGEgcmVxdWVzdAogICAgIGVuY29kZV90aHJlc2hvbGQgPSBOb25lICNOb25lID0gZG9uJ3QgZW5jb2RlCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdXNlX2RhdGV0aW1lPUZhbHNlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdXNlX2RhdGV0aW1lPUZhbHNlLCB1c2VfYnVpbHRpbl90eXBlcz1GYWxzZSk6CiAgICAgICAgIHNlbGYuX3VzZV9kYXRldGltZSA9IHVzZV9kYXRldGltZQorICAgICAgICBzZWxmLl91c2VfYnVpbHRpbl90eXBlcyA9IHVzZV9idWlsdGluX3R5cGVzCiAgICAgICAgIHNlbGYuX2Nvbm5lY3Rpb24gPSAoTm9uZSwgTm9uZSkKICAgICAgICAgc2VsZi5fZXh0cmFfaGVhZGVycyA9IFtdCiAKQEAgLTExNTcsNyArMTE3Miw4IEBACiAKICAgICBkZWYgZ2V0cGFyc2VyKHNlbGYpOgogICAgICAgICAjIGdldCBwYXJzZXIgYW5kIHVubWFyc2hhbGxlcgotICAgICAgICByZXR1cm4gZ2V0cGFyc2VyKHVzZV9kYXRldGltZT1zZWxmLl91c2VfZGF0ZXRpbWUpCisgICAgICAgIHJldHVybiBnZXRwYXJzZXIodXNlX2RhdGV0aW1lPXNlbGYuX3VzZV9kYXRldGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfYnVpbHRpbl90eXBlcz1zZWxmLl91c2VfYnVpbHRpbl90eXBlcykKIAogICAgICMjCiAgICAgIyBHZXQgYXV0aG9yaXphdGlvbiBpbmZvIGZyb20gaG9zdCBwYXJhbWV0ZXIKQEAgLTExNzUsNyArMTE5MSw2IEBACiAgICAgICAgIGlmIGlzaW5zdGFuY2UoaG9zdCwgdHVwbGUpOgogICAgICAgICAgICAgaG9zdCwgeDUwOSA9IGhvc3QKIAotICAgICAgICBpbXBvcnQgdXJsbGliLnBhcnNlCiAgICAgICAgIGF1dGgsIGhvc3QgPSB1cmxsaWIucGFyc2Uuc3BsaXR1c2VyKGhvc3QpCiAKICAgICAgICAgaWYgYXV0aDoKQEAgLTEzNjQsMTEgKzEzNzksMTAgQEAKICAgICAiIiIKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmksIHRyYW5zcG9ydD1Ob25lLCBlbmNvZGluZz1Ob25lLCB2ZXJib3NlPUZhbHNlLAotICAgICAgICAgICAgICAgICBhbGxvd19ub25lPUZhbHNlLCB1c2VfZGF0ZXRpbWU9RmFsc2UpOgorICAgICAgICAgICAgICAgICBhbGxvd19ub25lPUZhbHNlLCB1c2VfZGF0ZXRpbWU9RmFsc2UsIHVzZV9idWlsdGluX3R5cGVzPUZhbHNlKToKICAgICAgICAgIyBlc3RhYmxpc2ggYSAibG9naWNhbCIgc2VydmVyIGNvbm5lY3Rpb24KIAogICAgICAgICAjIGdldCB0aGUgdXJsCi0gICAgICAgIGltcG9ydCB1cmxsaWIucGFyc2UKICAgICAgICAgdHlwZSwgdXJpID0gdXJsbGliLnBhcnNlLnNwbGl0dHlwZSh1cmkpCiAgICAgICAgIGlmIHR5cGUgbm90IGluICgiaHR0cCIsICJodHRwcyIpOgogICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigidW5zdXBwb3J0ZWQgWE1MLVJQQyBwcm90b2NvbCIpCkBAIC0xMzc4LDkgKzEzOTIsMTEgQEAKIAogICAgICAgICBpZiB0cmFuc3BvcnQgaXMgTm9uZToKICAgICAgICAgICAgIGlmIHR5cGUgPT0gImh0dHBzIjoKLSAgICAgICAgICAgICAgICB0cmFuc3BvcnQgPSBTYWZlVHJhbnNwb3J0KHVzZV9kYXRldGltZT11c2VfZGF0ZXRpbWUpCisgICAgICAgICAgICAgICAgaGFuZGxlciA9IFNhZmVUcmFuc3BvcnQKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgdHJhbnNwb3J0ID0gVHJhbnNwb3J0KHVzZV9kYXRldGltZT11c2VfZGF0ZXRpbWUpCisgICAgICAgICAgICAgICAgaGFuZGxlciA9IFRyYW5zcG9ydAorICAgICAgICAgICAgdHJhbnNwb3J0ID0gaGFuZGxlcih1c2VfZGF0ZXRpbWU9dXNlX2RhdGV0aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfYnVpbHRpbl90eXBlcz11c2VfYnVpbHRpbl90eXBlcykKICAgICAgICAgc2VsZi5fX3RyYW5zcG9ydCA9IHRyYW5zcG9ydAogCiAgICAgICAgIHNlbGYuX19lbmNvZGluZyA9IGVuY29kaW5nIG9yICd1dGYtOCcKZGlmZiAtLWdpdCBhL0xpYi94bWxycGMvc2VydmVyLnB5IGIvTGliL3htbHJwYy9zZXJ2ZXIucHkKaW5kZXggZmQxNzAyNi4uNTRlMTcyNiAxMDA2NDQKLS0tIGEvTGliL3htbHJwYy9zZXJ2ZXIucHkKKysrIGIvTGliL3htbHJwYy9zZXJ2ZXIucHkKQEAgLTE2MCwxMSArMTYwLDEzIEBACiAgICAgY2FuIGJlIGluc3RhbmNlZCB3aGVuIHVzZWQgYnkgdGhlIE11bHRpUGF0aFhNTFJQQ1NlcnZlcgogICAgICIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGFsbG93X25vbmU9RmFsc2UsIGVuY29kaW5nPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhbGxvd19ub25lPUZhbHNlLCBlbmNvZGluZz1Ob25lLAorICAgICAgICAgICAgICAgICB1c2VfYnVpbHRpbl90eXBlcz1GYWxzZSk6CiAgICAgICAgIHNlbGYuZnVuY3MgPSB7fQogICAgICAgICBzZWxmLmluc3RhbmNlID0gTm9uZQogICAgICAgICBzZWxmLmFsbG93X25vbmUgPSBhbGxvd19ub25lCiAgICAgICAgIHNlbGYuZW5jb2RpbmcgPSBlbmNvZGluZyBvciAndXRmLTgnCisgICAgICAgIHNlbGYudXNlX2J1aWx0aW5fdHlwZXMgPSB1c2VfYnVpbHRpbl90eXBlcwogCiAgICAgZGVmIHJlZ2lzdGVyX2luc3RhbmNlKHNlbGYsIGluc3RhbmNlLCBhbGxvd19kb3R0ZWRfbmFtZXM9RmFsc2UpOgogICAgICAgICAiIiJSZWdpc3RlcnMgYW4gaW5zdGFuY2UgdG8gcmVzcG9uZCB0byBYTUwtUlBDIHJlcXVlc3RzLgpAQCAtMjQ1LDcgKzI0Nyw3IEBACiAgICAgICAgICIiIgogCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHBhcmFtcywgbWV0aG9kID0gbG9hZHMoZGF0YSkKKyAgICAgICAgICAgIHBhcmFtcywgbWV0aG9kID0gbG9hZHMoZGF0YSwgdXNlX2J1aWx0aW5fdHlwZXM9c2VsZi51c2VfYnVpbHRpbl90eXBlcykKIAogICAgICAgICAgICAgIyBnZW5lcmF0ZSByZXNwb25zZQogICAgICAgICAgICAgaWYgZGlzcGF0Y2hfbWV0aG9kIGlzIG5vdCBOb25lOgpAQCAtNTc1LDEwICs1NzcsMTEgQEAKICAgICBfc2VuZF90cmFjZWJhY2tfaGVhZGVyID0gRmFsc2UKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyLCByZXF1ZXN0SGFuZGxlcj1TaW1wbGVYTUxSUENSZXF1ZXN0SGFuZGxlciwKLSAgICAgICAgICAgICAgICAgbG9nUmVxdWVzdHM9VHJ1ZSwgYWxsb3dfbm9uZT1GYWxzZSwgZW5jb2Rpbmc9Tm9uZSwgYmluZF9hbmRfYWN0aXZhdGU9VHJ1ZSk6CisgICAgICAgICAgICAgICAgIGxvZ1JlcXVlc3RzPVRydWUsIGFsbG93X25vbmU9RmFsc2UsIGVuY29kaW5nPU5vbmUsCisgICAgICAgICAgICAgICAgIGJpbmRfYW5kX2FjdGl2YXRlPVRydWUsIHVzZV9idWlsdGluX3R5cGVzPUZhbHNlKToKICAgICAgICAgc2VsZi5sb2dSZXF1ZXN0cyA9IGxvZ1JlcXVlc3RzCiAKLSAgICAgICAgU2ltcGxlWE1MUlBDRGlzcGF0Y2hlci5fX2luaXRfXyhzZWxmLCBhbGxvd19ub25lLCBlbmNvZGluZykKKyAgICAgICAgU2ltcGxlWE1MUlBDRGlzcGF0Y2hlci5fX2luaXRfXyhzZWxmLCBhbGxvd19ub25lLCBlbmNvZGluZywgdXNlX2J1aWx0aW5fdHlwZXMpCiAgICAgICAgIHNvY2tldHNlcnZlci5UQ1BTZXJ2ZXIuX19pbml0X18oc2VsZiwgYWRkciwgcmVxdWVzdEhhbmRsZXIsIGJpbmRfYW5kX2FjdGl2YXRlKQogCiAgICAgICAgICMgW0J1ZyAjMTIyMjc5MF0gSWYgcG9zc2libGUsIHNldCBjbG9zZS1vbi1leGVjIGZsYWc7IGlmIGEKQEAgLTU5OCwxMCArNjAxLDExIEBACiAgICAgTWFrZSBzdXJlIHRoYXQgdGhlIHJlcXVlc3RIYW5kbGVyIGFjY2VwdHMgdGhlIHBhdGhzIGluIHF1ZXN0aW9uLgogICAgICIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyLCByZXF1ZXN0SGFuZGxlcj1TaW1wbGVYTUxSUENSZXF1ZXN0SGFuZGxlciwKLSAgICAgICAgICAgICAgICAgbG9nUmVxdWVzdHM9VHJ1ZSwgYWxsb3dfbm9uZT1GYWxzZSwgZW5jb2Rpbmc9Tm9uZSwgYmluZF9hbmRfYWN0aXZhdGU9VHJ1ZSk6CisgICAgICAgICAgICAgICAgIGxvZ1JlcXVlc3RzPVRydWUsIGFsbG93X25vbmU9RmFsc2UsIGVuY29kaW5nPU5vbmUsCisgICAgICAgICAgICAgICAgIGJpbmRfYW5kX2FjdGl2YXRlPVRydWUsIHVzZV9idWlsdGluX3R5cGVzPUZhbHNlKToKIAogICAgICAgICBTaW1wbGVYTUxSUENTZXJ2ZXIuX19pbml0X18oc2VsZiwgYWRkciwgcmVxdWVzdEhhbmRsZXIsIGxvZ1JlcXVlc3RzLCBhbGxvd19ub25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcsIGJpbmRfYW5kX2FjdGl2YXRlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcsIGJpbmRfYW5kX2FjdGl2YXRlLCB1c2VfYnVpbHRpbl90eXBlcykKICAgICAgICAgc2VsZi5kaXNwYXRjaGVycyA9IHt9CiAgICAgICAgIHNlbGYuYWxsb3dfbm9uZSA9IGFsbG93X25vbmUKICAgICAgICAgc2VsZi5lbmNvZGluZyA9IGVuY29kaW5nIG9yICd1dGYtOCcKQEAgLTYzMSw4ICs2MzUsOCBAQAogY2xhc3MgQ0dJWE1MUlBDUmVxdWVzdEhhbmRsZXIoU2ltcGxlWE1MUlBDRGlzcGF0Y2hlcik6CiAgICAgIiIiU2ltcGxlIGhhbmRsZXIgZm9yIFhNTC1SUEMgZGF0YSBwYXNzZWQgdGhyb3VnaCBDR0kuIiIiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgYWxsb3dfbm9uZT1GYWxzZSwgZW5jb2Rpbmc9Tm9uZSk6Ci0gICAgICAgIFNpbXBsZVhNTFJQQ0Rpc3BhdGNoZXIuX19pbml0X18oc2VsZiwgYWxsb3dfbm9uZSwgZW5jb2RpbmcpCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFsbG93X25vbmU9RmFsc2UsIGVuY29kaW5nPU5vbmUsIHVzZV9idWlsdGluX3R5cGVzPUZhbHNlKToKKyAgICAgICAgU2ltcGxlWE1MUlBDRGlzcGF0Y2hlci5fX2luaXRfXyhzZWxmLCBhbGxvd19ub25lLCBlbmNvZGluZywgdXNlX2J1aWx0aW5fdHlwZXMpCiAKICAgICBkZWYgaGFuZGxlX3htbHJwYyhzZWxmLCByZXF1ZXN0X3RleHQpOgogICAgICAgICAiIiJIYW5kbGUgYSBzaW5nbGUgWE1MLVJQQyByZXF1ZXN0IiIiCkBAIC05MjcsOSArOTMxLDEwIEBACiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgYWRkciwgcmVxdWVzdEhhbmRsZXI9RG9jWE1MUlBDUmVxdWVzdEhhbmRsZXIsCiAgICAgICAgICAgICAgICAgIGxvZ1JlcXVlc3RzPVRydWUsIGFsbG93X25vbmU9RmFsc2UsIGVuY29kaW5nPU5vbmUsCi0gICAgICAgICAgICAgICAgIGJpbmRfYW5kX2FjdGl2YXRlPVRydWUpOgorICAgICAgICAgICAgICAgICBiaW5kX2FuZF9hY3RpdmF0ZT1UcnVlLCB1c2VfYnVpbHRpbl90eXBlcz1GYWxzZSk6CiAgICAgICAgIFNpbXBsZVhNTFJQQ1NlcnZlci5fX2luaXRfXyhzZWxmLCBhZGRyLCByZXF1ZXN0SGFuZGxlciwgbG9nUmVxdWVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19ub25lLCBlbmNvZGluZywgYmluZF9hbmRfYWN0aXZhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19ub25lLCBlbmNvZGluZywgYmluZF9hbmRfYWN0aXZhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfYnVpbHRpbl90eXBlcykKICAgICAgICAgWE1MUlBDRG9jR2VuZXJhdG9yLl9faW5pdF9fKHNlbGYpCiAKIGNsYXNzIERvY0NHSVhNTFJQQ1JlcXVlc3RIYW5kbGVyKCAgIENHSVhNTFJQQ1JlcXVlc3RIYW5kbGVyLApAQCAtOTU5LDggKzk2NCwxMyBAQAogCiAKIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgcHJpbnQoJ1J1bm5pbmcgWE1MLVJQQyBzZXJ2ZXIgb24gcG9ydCA4MDAwJykKICAgICBzZXJ2ZXIgPSBTaW1wbGVYTUxSUENTZXJ2ZXIoKCJsb2NhbGhvc3QiLCA4MDAwKSkKICAgICBzZXJ2ZXIucmVnaXN0ZXJfZnVuY3Rpb24ocG93KQogICAgIHNlcnZlci5yZWdpc3Rlcl9mdW5jdGlvbihsYW1iZGEgeCx5OiB4K3ksICdhZGQnKQotICAgIHNlcnZlci5zZXJ2ZV9mb3JldmVyKCkKKyAgICBwcmludCgnU2VydmluZyBYTUwtUlBDIG9uIGxvY2FsaG9zdCBwb3J0IDgwMDAnKQorICAgIHRyeToKKyAgICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIoKQorICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgcHJpbnQoIlxuS2V5Ym9hcmQgaW50ZXJydXB0IHJlY2VpdmVkLCBleGl0aW5nLiIpCisgICAgICAgIHNlcnZlci5zZXJ2ZXJfY2xvc2UoKQorICAgICAgICBzeXMuZXhpdCgwKQpkaWZmIC0tZ2l0IGEvTGliL3ppcGZpbGUucHkgYi9MaWIvemlwZmlsZS5weQppbmRleCA0MzVhM2U5Li4yMDlkYzRhIDEwMDY0NAotLS0gYS9MaWIvemlwZmlsZS5weQorKysgYi9MaWIvemlwZmlsZS5weQpAQCAtMjIsNyArMjIsMTggQEAKICAgICB6bGliID0gTm9uZQogICAgIGNyYzMyID0gYmluYXNjaWkuY3JjMzIKIAotX19hbGxfXyA9IFsiQmFkWmlwRmlsZSIsICJCYWRaaXBmaWxlIiwgImVycm9yIiwgIlpJUF9TVE9SRUQiLCAiWklQX0RFRkxBVEVEIiwKK3RyeToKKyAgICBpbXBvcnQgYnoyICMgV2UgbWF5IG5lZWQgaXRzIGNvbXByZXNzaW9uIG1ldGhvZAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGJ6MiA9IE5vbmUKKwordHJ5OgorICAgIGltcG9ydCBsem1hICMgV2UgbWF5IG5lZWQgaXRzIGNvbXByZXNzaW9uIG1ldGhvZAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGx6bWEgPSBOb25lCisKK19fYWxsX18gPSBbIkJhZFppcEZpbGUiLCAiQmFkWmlwZmlsZSIsICJlcnJvciIsCisgICAgICAgICAgICJaSVBfU1RPUkVEIiwgIlpJUF9ERUZMQVRFRCIsICJaSVBfQlpJUDIiLCAiWklQX0xaTUEiLAogICAgICAgICAgICAiaXNfemlwZmlsZSIsICJaaXBJbmZvIiwgIlppcEZpbGUiLCAiUHlaaXBGaWxlIiwgIkxhcmdlWmlwRmlsZSJdCiAKIGNsYXNzIEJhZFppcEZpbGUoRXhjZXB0aW9uKToKQEAgLTQ1LDggKzU2LDE3IEBACiAjIGNvbnN0YW50cyBmb3IgWmlwIGZpbGUgY29tcHJlc3Npb24gbWV0aG9kcwogWklQX1NUT1JFRCA9IDAKIFpJUF9ERUZMQVRFRCA9IDgKK1pJUF9CWklQMiA9IDEyCitaSVBfTFpNQSA9IDE0CiAjIE90aGVyIFpJUCBjb21wcmVzc2lvbiBtZXRob2RzIG5vdCBzdXBwb3J0ZWQKIAorREVGQVVMVF9WRVJTSU9OID0gMjAKK1pJUDY0X1ZFUlNJT04gPSA0NQorQlpJUDJfVkVSU0lPTiA9IDQ2CitMWk1BX1ZFUlNJT04gPSA2MworIyB3ZSByZWNvZ25pemUgKGJ1dCBub3QgbmVjZXNzYXJpbHkgc3VwcG9ydCkgYWxsIGZlYXR1cmVzIHVwIHRvIHRoYXQgdmVyc2lvbgorTUFYX0VYVFJBQ1RfVkVSU0lPTiA9IDYzCisKICMgQmVsb3cgYXJlIHNvbWUgZm9ybWF0cyBhbmQgYXNzb2NpYXRlZCBkYXRhIGZvciByZWFkaW5nL3dyaXRpbmcgaGVhZGVycyB1c2luZwogIyB0aGUgc3RydWN0IG1vZHVsZS4gIFRoZSBuYW1lcyBhbmQgc3RydWN0dXJlcyBvZiBoZWFkZXJzL3JlY29yZHMgYXJlIHRob3NlIHVzZWQKICMgaW4gdGhlIFBLV0FSRSBkZXNjcmlwdGlvbiBvZiB0aGUgWklQIGZpbGUgZm9ybWF0OgpAQCAtMzEzLDggKzMzMyw4IEBACiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAjIEFzc3VtZSBldmVyeXRoaW5nIGVsc2UgaXMgdW5peC15CiAgICAgICAgICAgICBzZWxmLmNyZWF0ZV9zeXN0ZW0gPSAzICAgICAgICAgICMgU3lzdGVtIHdoaWNoIGNyZWF0ZWQgWklQIGFyY2hpdmUKLSAgICAgICAgc2VsZi5jcmVhdGVfdmVyc2lvbiA9IDIwICAgICAgICAjIFZlcnNpb24gd2hpY2ggY3JlYXRlZCBaSVAgYXJjaGl2ZQotICAgICAgICBzZWxmLmV4dHJhY3RfdmVyc2lvbiA9IDIwICAgICAgICMgVmVyc2lvbiBuZWVkZWQgdG8gZXh0cmFjdCBhcmNoaXZlCisgICAgICAgIHNlbGYuY3JlYXRlX3ZlcnNpb24gPSBERUZBVUxUX1ZFUlNJT04gICMgVmVyc2lvbiB3aGljaCBjcmVhdGVkIFpJUCBhcmNoaXZlCisgICAgICAgIHNlbGYuZXh0cmFjdF92ZXJzaW9uID0gREVGQVVMVF9WRVJTSU9OICMgVmVyc2lvbiBuZWVkZWQgdG8gZXh0cmFjdCBhcmNoaXZlCiAgICAgICAgIHNlbGYucmVzZXJ2ZWQgPSAwICAgICAgICAgICAgICAgIyBNdXN0IGJlIHplcm8KICAgICAgICAgc2VsZi5mbGFnX2JpdHMgPSAwICAgICAgICAgICAgICAjIFpJUCBmbGFnIGJpdHMKICAgICAgICAgc2VsZi52b2x1bWUgPSAwICAgICAgICAgICAgICAgICAjIFZvbHVtZSBudW1iZXIgb2YgZmlsZSBoZWFkZXIKQEAgLTM0MSw2ICszNjEsNyBAQAogCiAgICAgICAgIGV4dHJhID0gc2VsZi5leHRyYQogCisgICAgICAgIG1pbl92ZXJzaW9uID0gMAogICAgICAgICBpZiBmaWxlX3NpemUgPiBaSVA2NF9MSU1JVCBvciBjb21wcmVzc19zaXplID4gWklQNjRfTElNSVQ6CiAgICAgICAgICAgICAjIEZpbGUgaXMgbGFyZ2VyIHRoYW4gd2hhdCBmaXRzIGludG8gYSA0IGJ5dGUgaW50ZWdlciwKICAgICAgICAgICAgICMgZmFsbCBiYWNrIHRvIHRoZSBaSVA2NCBleHRlbnNpb24KQEAgLTM0OSw5ICszNzAsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgMSwgc3RydWN0LmNhbGNzaXplKGZtdCktNCwgZmlsZV9zaXplLCBjb21wcmVzc19zaXplKQogICAgICAgICAgICAgZmlsZV9zaXplID0gMHhmZmZmZmZmZgogICAgICAgICAgICAgY29tcHJlc3Nfc2l6ZSA9IDB4ZmZmZmZmZmYKLSAgICAgICAgICAgIHNlbGYuZXh0cmFjdF92ZXJzaW9uID0gbWF4KDQ1LCBzZWxmLmV4dHJhY3RfdmVyc2lvbikKLSAgICAgICAgICAgIHNlbGYuY3JlYXRlX3ZlcnNpb24gPSBtYXgoNDUsIHNlbGYuZXh0cmFjdF92ZXJzaW9uKQorICAgICAgICAgICAgbWluX3ZlcnNpb24gPSBaSVA2NF9WRVJTSU9OCiAKKyAgICAgICAgaWYgc2VsZi5jb21wcmVzc190eXBlID09IFpJUF9CWklQMjoKKyAgICAgICAgICAgIG1pbl92ZXJzaW9uID0gbWF4KEJaSVAyX1ZFUlNJT04sIG1pbl92ZXJzaW9uKQorICAgICAgICBlbGlmIHNlbGYuY29tcHJlc3NfdHlwZSA9PSBaSVBfTFpNQToKKyAgICAgICAgICAgIG1pbl92ZXJzaW9uID0gbWF4KExaTUFfVkVSU0lPTiwgbWluX3ZlcnNpb24pCisKKyAgICAgICAgc2VsZi5leHRyYWN0X3ZlcnNpb24gPSBtYXgobWluX3ZlcnNpb24sIHNlbGYuZXh0cmFjdF92ZXJzaW9uKQorICAgICAgICBzZWxmLmNyZWF0ZV92ZXJzaW9uID0gbWF4KG1pbl92ZXJzaW9uLCBzZWxmLmNyZWF0ZV92ZXJzaW9uKQogICAgICAgICBmaWxlbmFtZSwgZmxhZ19iaXRzID0gc2VsZi5fZW5jb2RlRmlsZW5hbWVGbGFncygpCiAgICAgICAgIGhlYWRlciA9IHN0cnVjdC5wYWNrKHN0cnVjdEZpbGVIZWFkZXIsIHN0cmluZ0ZpbGVIZWFkZXIsCiAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFjdF92ZXJzaW9uLCBzZWxmLnJlc2VydmVkLCBmbGFnX2JpdHMsCkBAIC00NjEsNiArNDg4LDEyNiBAQAogICAgICAgICBzZWxmLl9VcGRhdGVLZXlzKGMpCiAgICAgICAgIHJldHVybiBjCiAKKworY2xhc3MgTFpNQUNvbXByZXNzb3I6CisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYuX2NvbXAgPSBOb25lCisKKyAgICBkZWYgX2luaXQoc2VsZik6CisgICAgICAgIHByb3BzID0gbHptYS5fZW5jb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKHsnaWQnOiBsem1hLkZJTFRFUl9MWk1BMX0pCisgICAgICAgIHNlbGYuX2NvbXAgPSBsem1hLkxaTUFDb21wcmVzc29yKGx6bWEuRk9STUFUX1JBVywgZmlsdGVycz1bCisgICAgICAgICAgICAgICAgbHptYS5fZGVjb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKGx6bWEuRklMVEVSX0xaTUExLCBwcm9wcykKKyAgICAgICAgXSkKKyAgICAgICAgcmV0dXJuIHN0cnVjdC5wYWNrKCc8QkJIJywgOSwgNCwgbGVuKHByb3BzKSkgKyBwcm9wcworCisgICAgZGVmIGNvbXByZXNzKHNlbGYsIGRhdGEpOgorICAgICAgICBpZiBzZWxmLl9jb21wIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5faW5pdCgpICsgc2VsZi5fY29tcC5jb21wcmVzcyhkYXRhKQorICAgICAgICByZXR1cm4gc2VsZi5fY29tcC5jb21wcmVzcyhkYXRhKQorCisgICAgZGVmIGZsdXNoKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9jb21wIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5faW5pdCgpICsgc2VsZi5fY29tcC5mbHVzaCgpCisgICAgICAgIHJldHVybiBzZWxmLl9jb21wLmZsdXNoKCkKKworCitjbGFzcyBMWk1BRGVjb21wcmVzc29yOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLl9kZWNvbXAgPSBOb25lCisgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSBiJycKKyAgICAgICAgc2VsZi5lb2YgPSBGYWxzZQorCisgICAgZGVmIGRlY29tcHJlc3Moc2VsZiwgZGF0YSk6CisgICAgICAgIGlmIHNlbGYuX2RlY29tcCBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCArPSBkYXRhCisgICAgICAgICAgICBpZiBsZW4oc2VsZi5fdW5jb25zdW1lZCkgPD0gNDoKKyAgICAgICAgICAgICAgICByZXR1cm4gYicnCisgICAgICAgICAgICBwc2l6ZSwgPSBzdHJ1Y3QudW5wYWNrKCc8SCcsIHNlbGYuX3VuY29uc3VtZWRbMjo0XSkKKyAgICAgICAgICAgIGlmIGxlbihzZWxmLl91bmNvbnN1bWVkKSA8PSA0ICsgcHNpemU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGInJworCisgICAgICAgICAgICBzZWxmLl9kZWNvbXAgPSBsem1hLkxaTUFEZWNvbXByZXNzb3IobHptYS5GT1JNQVRfUkFXLCBmaWx0ZXJzPVsKKyAgICAgICAgICAgICAgICAgICAgbHptYS5fZGVjb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKGx6bWEuRklMVEVSX0xaTUExLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWRbNDo0ICsgcHNpemVdKQorICAgICAgICAgICAgXSkKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLl91bmNvbnN1bWVkWzQgKyBwc2l6ZTpdCisgICAgICAgICAgICBkZWwgc2VsZi5fdW5jb25zdW1lZAorCisgICAgICAgIHJlc3VsdCA9IHNlbGYuX2RlY29tcC5kZWNvbXByZXNzKGRhdGEpCisgICAgICAgIHNlbGYuZW9mID0gc2VsZi5fZGVjb21wLmVvZgorICAgICAgICByZXR1cm4gcmVzdWx0CisKKworY29tcHJlc3Nvcl9uYW1lcyA9IHsKKyAgICAwOiAnc3RvcmUnLAorICAgIDE6ICdzaHJpbmsnLAorICAgIDI6ICdyZWR1Y2UnLAorICAgIDM6ICdyZWR1Y2UnLAorICAgIDQ6ICdyZWR1Y2UnLAorICAgIDU6ICdyZWR1Y2UnLAorICAgIDY6ICdpbXBsb2RlJywKKyAgICA3OiAndG9rZW5pemUnLAorICAgIDg6ICdkZWZsYXRlJywKKyAgICA5OiAnZGVmbGF0ZTY0JywKKyAgICAxMDogJ2ltcGxvZGUnLAorICAgIDEyOiAnYnppcDInLAorICAgIDE0OiAnbHptYScsCisgICAgMTg6ICd0ZXJzZScsCisgICAgMTk6ICdsejc3JywKKyAgICA5NzogJ3dhdnBhY2snLAorICAgIDk4OiAncHBtZCcsCit9CisKK2RlZiBfY2hlY2tfY29tcHJlc3Npb24oY29tcHJlc3Npb24pOgorICAgIGlmIGNvbXByZXNzaW9uID09IFpJUF9TVE9SRUQ6CisgICAgICAgIHBhc3MKKyAgICBlbGlmIGNvbXByZXNzaW9uID09IFpJUF9ERUZMQVRFRDoKKyAgICAgICAgaWYgbm90IHpsaWI6CisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJDb21wcmVzc2lvbiByZXF1aXJlcyB0aGUgKG1pc3NpbmcpIHpsaWIgbW9kdWxlIikKKyAgICBlbGlmIGNvbXByZXNzaW9uID09IFpJUF9CWklQMjoKKyAgICAgICAgaWYgbm90IGJ6MjoKKyAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgIkNvbXByZXNzaW9uIHJlcXVpcmVzIHRoZSAobWlzc2luZykgYnoyIG1vZHVsZSIpCisgICAgZWxpZiBjb21wcmVzc2lvbiA9PSBaSVBfTFpNQToKKyAgICAgICAgaWYgbm90IGx6bWE6CisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJDb21wcmVzc2lvbiByZXF1aXJlcyB0aGUgKG1pc3NpbmcpIGx6bWEgbW9kdWxlIikKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIlRoYXQgY29tcHJlc3Npb24gbWV0aG9kIGlzIG5vdCBzdXBwb3J0ZWQiKQorCisKK2RlZiBfZ2V0X2NvbXByZXNzb3IoY29tcHJlc3NfdHlwZSk6CisgICAgaWYgY29tcHJlc3NfdHlwZSA9PSBaSVBfREVGTEFURUQ6CisgICAgICAgIHJldHVybiB6bGliLmNvbXByZXNzb2JqKHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLAorICAgICAgICAgICAgIHpsaWIuREVGTEFURUQsIC0xNSkKKyAgICBlbGlmIGNvbXByZXNzX3R5cGUgPT0gWklQX0JaSVAyOgorICAgICAgICByZXR1cm4gYnoyLkJaMkNvbXByZXNzb3IoKQorICAgIGVsaWYgY29tcHJlc3NfdHlwZSA9PSBaSVBfTFpNQToKKyAgICAgICAgcmV0dXJuIExaTUFDb21wcmVzc29yKCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gTm9uZQorCisKK2RlZiBfZ2V0X2RlY29tcHJlc3Nvcihjb21wcmVzc190eXBlKToKKyAgICBpZiBjb21wcmVzc190eXBlID09IFpJUF9TVE9SRUQ6CisgICAgICAgIHJldHVybiBOb25lCisgICAgZWxpZiBjb21wcmVzc190eXBlID09IFpJUF9ERUZMQVRFRDoKKyAgICAgICAgcmV0dXJuIHpsaWIuZGVjb21wcmVzc29iaigtMTUpCisgICAgZWxpZiBjb21wcmVzc190eXBlID09IFpJUF9CWklQMjoKKyAgICAgICAgcmV0dXJuIGJ6Mi5CWjJEZWNvbXByZXNzb3IoKQorICAgIGVsaWYgY29tcHJlc3NfdHlwZSA9PSBaSVBfTFpNQToKKyAgICAgICAgcmV0dXJuIExaTUFEZWNvbXByZXNzb3IoKQorICAgIGVsc2U6CisgICAgICAgIGRlc2NyID0gY29tcHJlc3Nvcl9uYW1lcy5nZXQoY29tcHJlc3NfdHlwZSkKKyAgICAgICAgaWYgZGVzY3I6CisgICAgICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJjb21wcmVzc2lvbiB0eXBlICVkICglcykiICUgKGNvbXByZXNzX3R5cGUsIGRlc2NyKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImNvbXByZXNzaW9uIHR5cGUgJWQiICUgKGNvbXByZXNzX3R5cGUsKSkKKworCiBjbGFzcyBaaXBFeHRGaWxlKGlvLkJ1ZmZlcmVkSU9CYXNlKToKICAgICAiIiJGaWxlLWxpa2Ugb2JqZWN0IGZvciByZWFkaW5nIGFuIGFyY2hpdmUgbWVtYmVyLgogICAgICAgIElzIHJldHVybmVkIGJ5IFppcEZpbGUub3BlbigpLgpAQCAtNDgyLDEzICs2MjksMTIgQEAKICAgICAgICAgc2VsZi5fY2xvc2VfZmlsZW9iaiA9IGNsb3NlX2ZpbGVvYmoKIAogICAgICAgICBzZWxmLl9jb21wcmVzc190eXBlID0gemlwaW5mby5jb21wcmVzc190eXBlCi0gICAgICAgIHNlbGYuX2NvbXByZXNzX3NpemUgPSB6aXBpbmZvLmNvbXByZXNzX3NpemUKICAgICAgICAgc2VsZi5fY29tcHJlc3NfbGVmdCA9IHppcGluZm8uY29tcHJlc3Nfc2l6ZQorICAgICAgICBzZWxmLl9sZWZ0ID0gemlwaW5mby5maWxlX3NpemUKIAotICAgICAgICBpZiBzZWxmLl9jb21wcmVzc190eXBlID09IFpJUF9ERUZMQVRFRDoKLSAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NvciA9IHpsaWIuZGVjb21wcmVzc29iaigtMTUpCi0gICAgICAgIHNlbGYuX3VuY29uc3VtZWQgPSBiJycKKyAgICAgICAgc2VsZi5fZGVjb21wcmVzc29yID0gX2dldF9kZWNvbXByZXNzb3Ioc2VsZi5fY29tcHJlc3NfdHlwZSkKIAorICAgICAgICBzZWxmLl9lb2YgPSBGYWxzZQogICAgICAgICBzZWxmLl9yZWFkYnVmZmVyID0gYicnCiAgICAgICAgIHNlbGYuX29mZnNldCA9IDAKIApAQCAtNTYzLDcgKzcwOSwxMSBAQAogICAgICAgICAiIiJSZXR1cm5zIGJ1ZmZlcmVkIGJ5dGVzIHdpdGhvdXQgYWR2YW5jaW5nIHRoZSBwb3NpdGlvbi4iIiIKICAgICAgICAgaWYgbiA+IGxlbihzZWxmLl9yZWFkYnVmZmVyKSAtIHNlbGYuX29mZnNldDoKICAgICAgICAgICAgIGNodW5rID0gc2VsZi5yZWFkKG4pCi0gICAgICAgICAgICBzZWxmLl9vZmZzZXQgLT0gbGVuKGNodW5rKQorICAgICAgICAgICAgaWYgbGVuKGNodW5rKSA+IHNlbGYuX29mZnNldDoKKyAgICAgICAgICAgICAgICBzZWxmLl9yZWFkYnVmZmVyID0gY2h1bmsgKyBzZWxmLl9yZWFkYnVmZmVyW3NlbGYuX29mZnNldDpdCisgICAgICAgICAgICAgICAgc2VsZi5fb2Zmc2V0ID0gMAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLl9vZmZzZXQgLT0gbGVuKGNodW5rKQogCiAgICAgICAgICMgUmV0dXJuIHVwIHRvIDUxMiBieXRlcyB0byByZWR1Y2UgYWxsb2NhdGlvbiBvdmVyaGVhZCBmb3IgdGlnaHQgbG9vcHMuCiAgICAgICAgIHJldHVybiBzZWxmLl9yZWFkYnVmZmVyW3NlbGYuX29mZnNldDogc2VsZi5fb2Zmc2V0ICsgNTEyXQpAQCAtNTc1LDgwICs3MjUsMTIzIEBACiAgICAgICAgICIiIlJlYWQgYW5kIHJldHVybiB1cCB0byBuIGJ5dGVzLgogICAgICAgICBJZiB0aGUgYXJndW1lbnQgaXMgb21pdHRlZCwgTm9uZSwgb3IgbmVnYXRpdmUsIGRhdGEgaXMgcmVhZCBhbmQgcmV0dXJuZWQgdW50aWwgRU9GIGlzIHJlYWNoZWQuLgogICAgICAgICAiIiIKLSAgICAgICAgYnVmID0gYicnCi0gICAgICAgIGlmIG4gaXMgTm9uZToKLSAgICAgICAgICAgIG4gPSAtMQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYgbiA8IDA6Ci0gICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYucmVhZDEobikKLSAgICAgICAgICAgIGVsaWYgbiA+IGxlbihidWYpOgotICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLnJlYWQxKG4gLSBsZW4oYnVmKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZgotICAgICAgICAgICAgaWYgbGVuKGRhdGEpID09IDA6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGJ1ZgotICAgICAgICAgICAgYnVmICs9IGRhdGEKKyAgICAgICAgaWYgbiBpcyBOb25lIG9yIG4gPCAwOgorICAgICAgICAgICAgYnVmID0gc2VsZi5fcmVhZGJ1ZmZlcltzZWxmLl9vZmZzZXQ6XQorICAgICAgICAgICAgc2VsZi5fcmVhZGJ1ZmZlciA9IGInJworICAgICAgICAgICAgc2VsZi5fb2Zmc2V0ID0gMAorICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuX2VvZjoKKyAgICAgICAgICAgICAgICBidWYgKz0gc2VsZi5fcmVhZDEoc2VsZi5NQVhfTikKKyAgICAgICAgICAgIHJldHVybiBidWYKIAotICAgIGRlZiBfdXBkYXRlX2NyYyhzZWxmLCBuZXdkYXRhLCBlb2YpOgorICAgICAgICBlbmQgPSBuICsgc2VsZi5fb2Zmc2V0CisgICAgICAgIGlmIGVuZCA8IGxlbihzZWxmLl9yZWFkYnVmZmVyKToKKyAgICAgICAgICAgIGJ1ZiA9IHNlbGYuX3JlYWRidWZmZXJbc2VsZi5fb2Zmc2V0OmVuZF0KKyAgICAgICAgICAgIHNlbGYuX29mZnNldCA9IGVuZAorICAgICAgICAgICAgcmV0dXJuIGJ1ZgorCisgICAgICAgIG4gPSBlbmQgLSBsZW4oc2VsZi5fcmVhZGJ1ZmZlcikKKyAgICAgICAgYnVmID0gc2VsZi5fcmVhZGJ1ZmZlcltzZWxmLl9vZmZzZXQ6XQorICAgICAgICBzZWxmLl9yZWFkYnVmZmVyID0gYicnCisgICAgICAgIHNlbGYuX29mZnNldCA9IDAKKyAgICAgICAgd2hpbGUgbiA+IDAgYW5kIG5vdCBzZWxmLl9lb2Y6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5fcmVhZDEobikKKyAgICAgICAgICAgIGlmIG4gPCBsZW4oZGF0YSk6CisgICAgICAgICAgICAgICAgc2VsZi5fcmVhZGJ1ZmZlciA9IGRhdGEKKyAgICAgICAgICAgICAgICBzZWxmLl9vZmZzZXQgPSBuCisgICAgICAgICAgICAgICAgYnVmICs9IGRhdGFbOm5dCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGJ1ZiArPSBkYXRhCisgICAgICAgICAgICBuIC09IGxlbihkYXRhKQorICAgICAgICByZXR1cm4gYnVmCisKKyAgICBkZWYgX3VwZGF0ZV9jcmMoc2VsZiwgbmV3ZGF0YSk6CiAgICAgICAgICMgVXBkYXRlIHRoZSBDUkMgdXNpbmcgdGhlIGdpdmVuIGRhdGEuCiAgICAgICAgIGlmIHNlbGYuX2V4cGVjdGVkX2NyYyBpcyBOb25lOgogICAgICAgICAgICAgIyBObyBuZWVkIHRvIGNvbXB1dGUgdGhlIENSQyBpZiB3ZSBkb24ndCBoYXZlIGEgcmVmZXJlbmNlIHZhbHVlCiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgc2VsZi5fcnVubmluZ19jcmMgPSBjcmMzMihuZXdkYXRhLCBzZWxmLl9ydW5uaW5nX2NyYykgJiAweGZmZmZmZmZmCiAgICAgICAgICMgQ2hlY2sgdGhlIENSQyBpZiB3ZSdyZSBhdCB0aGUgZW5kIG9mIHRoZSBmaWxlCi0gICAgICAgIGlmIGVvZiBhbmQgc2VsZi5fcnVubmluZ19jcmMgIT0gc2VsZi5fZXhwZWN0ZWRfY3JjOgorICAgICAgICBpZiBzZWxmLl9lb2YgYW5kIHNlbGYuX3J1bm5pbmdfY3JjICE9IHNlbGYuX2V4cGVjdGVkX2NyYzoKICAgICAgICAgICAgIHJhaXNlIEJhZFppcEZpbGUoIkJhZCBDUkMtMzIgZm9yIGZpbGUgJXIiICUgc2VsZi5uYW1lKQogCiAgICAgZGVmIHJlYWQxKHNlbGYsIG4pOgogICAgICAgICAiIiJSZWFkIHVwIHRvIG4gYnl0ZXMgd2l0aCBhdCBtb3N0IG9uZSByZWFkKCkgc3lzdGVtIGNhbGwuIiIiCiAKLSAgICAgICAgIyBTaW1wbGlmeSBhbGdvcml0aG0gKGJyYW5jaGluZykgYnkgdHJhbnNmb3JtaW5nIG5lZ2F0aXZlIG4gdG8gbGFyZ2Ugbi4KLSAgICAgICAgaWYgbiA8IDAgb3IgbiBpcyBOb25lOgotICAgICAgICAgICAgbiA9IHNlbGYuTUFYX04KKyAgICAgICAgaWYgbiBpcyBOb25lIG9yIG4gPCAwOgorICAgICAgICAgICAgYnVmID0gc2VsZi5fcmVhZGJ1ZmZlcltzZWxmLl9vZmZzZXQ6XQorICAgICAgICAgICAgc2VsZi5fcmVhZGJ1ZmZlciA9IGInJworICAgICAgICAgICAgc2VsZi5fb2Zmc2V0ID0gMAorICAgICAgICAgICAgZGF0YSA9IHNlbGYuX3JlYWQxKHNlbGYuTUFYX04pCisgICAgICAgICAgICBidWYgKz0gZGF0YQorICAgICAgICAgICAgcmV0dXJuIGJ1ZgogCi0gICAgICAgICMgQnl0ZXMgYXZhaWxhYmxlIGluIHJlYWQgYnVmZmVyLgotICAgICAgICBsZW5fcmVhZGJ1ZmZlciA9IGxlbihzZWxmLl9yZWFkYnVmZmVyKSAtIHNlbGYuX29mZnNldAorICAgICAgICBlbmQgPSBuICsgc2VsZi5fb2Zmc2V0CisgICAgICAgIGlmIGVuZCA8IGxlbihzZWxmLl9yZWFkYnVmZmVyKToKKyAgICAgICAgICAgIGJ1ZiA9IHNlbGYuX3JlYWRidWZmZXJbc2VsZi5fb2Zmc2V0OmVuZF0KKyAgICAgICAgICAgIHNlbGYuX29mZnNldCA9IGVuZAorICAgICAgICAgICAgcmV0dXJuIGJ1ZgorCisgICAgICAgIG4gPSBlbmQgLSBsZW4oc2VsZi5fcmVhZGJ1ZmZlcikKKyAgICAgICAgYnVmID0gc2VsZi5fcmVhZGJ1ZmZlcltzZWxmLl9vZmZzZXQ6XQorICAgICAgICBzZWxmLl9yZWFkYnVmZmVyID0gYicnCisgICAgICAgIHNlbGYuX29mZnNldCA9IDAKKyAgICAgICAgaWYgbiA+IDA6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5fcmVhZDEobikKKyAgICAgICAgICAgIGlmIG4gPCBsZW4oZGF0YSk6CisgICAgICAgICAgICAgICAgc2VsZi5fcmVhZGJ1ZmZlciA9IGRhdGEKKyAgICAgICAgICAgICAgICBzZWxmLl9vZmZzZXQgPSBuCisgICAgICAgICAgICAgICAgZGF0YSA9IGRhdGFbOm5dCisgICAgICAgICAgICBidWYgKz0gZGF0YQorICAgICAgICByZXR1cm4gYnVmCisKKyAgICBkZWYgX3JlYWQxKHNlbGYsIG4pOgorICAgICAgICAjIFJlYWQgdXAgdG8gbiBjb21wcmVzc2VkIGJ5dGVzIHdpdGggYXQgbW9zdCBvbmUgcmVhZCgpIHN5c3RlbSBjYWxsLAorICAgICAgICAjIGRlY3J5cHQgYW5kIGRlY29tcHJlc3MgdGhlbS4KKyAgICAgICAgaWYgc2VsZi5fZW9mIG9yIG4gPD0gMDoKKyAgICAgICAgICAgIHJldHVybiBiJycKIAogICAgICAgICAjIFJlYWQgZnJvbSBmaWxlLgotICAgICAgICBpZiBzZWxmLl9jb21wcmVzc19sZWZ0ID4gMCBhbmQgbiA+IGxlbl9yZWFkYnVmZmVyICsgbGVuKHNlbGYuX3VuY29uc3VtZWQpOgotICAgICAgICAgICAgbmJ5dGVzID0gbiAtIGxlbl9yZWFkYnVmZmVyIC0gbGVuKHNlbGYuX3VuY29uc3VtZWQpCi0gICAgICAgICAgICBuYnl0ZXMgPSBtYXgobmJ5dGVzLCBzZWxmLk1JTl9SRUFEX1NJWkUpCi0gICAgICAgICAgICBuYnl0ZXMgPSBtaW4obmJ5dGVzLCBzZWxmLl9jb21wcmVzc19sZWZ0KQorICAgICAgICBpZiBzZWxmLl9jb21wcmVzc190eXBlID09IFpJUF9ERUZMQVRFRDoKKyAgICAgICAgICAgICMjIEhhbmRsZSB1bmNvbnN1bWVkIGRhdGEuCisgICAgICAgICAgICBkYXRhID0gc2VsZi5fZGVjb21wcmVzc29yLnVuY29uc3VtZWRfdGFpbAorICAgICAgICAgICAgaWYgbiA+IGxlbihkYXRhKToKKyAgICAgICAgICAgICAgICBkYXRhICs9IHNlbGYuX3JlYWQyKG4gLSBsZW4oZGF0YSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5fcmVhZDIobikKIAotICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2ZpbGVvYmoucmVhZChuYnl0ZXMpCi0gICAgICAgICAgICBzZWxmLl9jb21wcmVzc19sZWZ0IC09IGxlbihkYXRhKQotCi0gICAgICAgICAgICBpZiBkYXRhIGFuZCBzZWxmLl9kZWNyeXB0ZXIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgZGF0YSA9IGJ5dGVzKG1hcChzZWxmLl9kZWNyeXB0ZXIsIGRhdGEpKQotCi0gICAgICAgICAgICBpZiBzZWxmLl9jb21wcmVzc190eXBlID09IFpJUF9TVE9SRUQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdXBkYXRlX2NyYyhkYXRhLCBlb2Y9KHNlbGYuX2NvbXByZXNzX2xlZnQ9PTApKQotICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRidWZmZXIgPSBzZWxmLl9yZWFkYnVmZmVyW3NlbGYuX29mZnNldDpdICsgZGF0YQotICAgICAgICAgICAgICAgIHNlbGYuX29mZnNldCA9IDAKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgIyBQcmVwYXJlIGRlZmxhdGVkIGJ5dGVzIGZvciBkZWNvbXByZXNzaW9uLgotICAgICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQgKz0gZGF0YQotCi0gICAgICAgICMgSGFuZGxlIHVuY29uc3VtZWQgZGF0YS4KLSAgICAgICAgaWYgKGxlbihzZWxmLl91bmNvbnN1bWVkKSA+IDAgYW5kIG4gPiBsZW5fcmVhZGJ1ZmZlciBhbmQKLSAgICAgICAgICAgIHNlbGYuX2NvbXByZXNzX3R5cGUgPT0gWklQX0RFRkxBVEVEKToKLSAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9kZWNvbXByZXNzb3IuZGVjb21wcmVzcygKLSAgICAgICAgICAgICAgICBzZWxmLl91bmNvbnN1bWVkLAotICAgICAgICAgICAgICAgIG1heChuIC0gbGVuX3JlYWRidWZmZXIsIHNlbGYuTUlOX1JFQURfU0laRSkKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCA9IHNlbGYuX2RlY29tcHJlc3Nvci51bmNvbnN1bWVkX3RhaWwKLSAgICAgICAgICAgIGVvZiA9IGxlbihzZWxmLl91bmNvbnN1bWVkKSA9PSAwIGFuZCBzZWxmLl9jb21wcmVzc19sZWZ0ID09IDAKLSAgICAgICAgICAgIGlmIGVvZjoKKyAgICAgICAgaWYgc2VsZi5fY29tcHJlc3NfdHlwZSA9PSBaSVBfU1RPUkVEOgorICAgICAgICAgICAgc2VsZi5fZW9mID0gc2VsZi5fY29tcHJlc3NfbGVmdCA8PSAwCisgICAgICAgIGVsaWYgc2VsZi5fY29tcHJlc3NfdHlwZSA9PSBaSVBfREVGTEFURUQ6CisgICAgICAgICAgICBuID0gbWF4KG4sIHNlbGYuTUlOX1JFQURfU0laRSkKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLl9kZWNvbXByZXNzb3IuZGVjb21wcmVzcyhkYXRhLCBuKQorICAgICAgICAgICAgc2VsZi5fZW9mID0gKHNlbGYuX2RlY29tcHJlc3Nvci5lb2Ygb3IKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fY29tcHJlc3NfbGVmdCA8PSAwIGFuZAorICAgICAgICAgICAgICAgICAgICBub3Qgc2VsZi5fZGVjb21wcmVzc29yLnVuY29uc3VtZWRfdGFpbCkKKyAgICAgICAgICAgIGlmIHNlbGYuX2VvZjoKICAgICAgICAgICAgICAgICBkYXRhICs9IHNlbGYuX2RlY29tcHJlc3Nvci5mbHVzaCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5fZGVjb21wcmVzc29yLmRlY29tcHJlc3MoZGF0YSkKKyAgICAgICAgICAgIHNlbGYuX2VvZiA9IHNlbGYuX2RlY29tcHJlc3Nvci5lb2Ygb3Igc2VsZi5fY29tcHJlc3NfbGVmdCA8PSAwCiAKLSAgICAgICAgICAgIHNlbGYuX3VwZGF0ZV9jcmMoZGF0YSwgZW9mPWVvZikKLSAgICAgICAgICAgIHNlbGYuX3JlYWRidWZmZXIgPSBzZWxmLl9yZWFkYnVmZmVyW3NlbGYuX29mZnNldDpdICsgZGF0YQotICAgICAgICAgICAgc2VsZi5fb2Zmc2V0ID0gMAorICAgICAgICBkYXRhID0gZGF0YVs6c2VsZi5fbGVmdF0KKyAgICAgICAgc2VsZi5fbGVmdCAtPSBsZW4oZGF0YSkKKyAgICAgICAgaWYgc2VsZi5fbGVmdCA8PSAwOgorICAgICAgICAgICAgc2VsZi5fZW9mID0gVHJ1ZQorICAgICAgICBzZWxmLl91cGRhdGVfY3JjKGRhdGEpCisgICAgICAgIHJldHVybiBkYXRhCiAKLSAgICAgICAgIyBSZWFkIGZyb20gYnVmZmVyLgotICAgICAgICBkYXRhID0gc2VsZi5fcmVhZGJ1ZmZlcltzZWxmLl9vZmZzZXQ6IHNlbGYuX29mZnNldCArIG5dCi0gICAgICAgIHNlbGYuX29mZnNldCArPSBsZW4oZGF0YSkKKyAgICBkZWYgX3JlYWQyKHNlbGYsIG4pOgorICAgICAgICBpZiBzZWxmLl9jb21wcmVzc19sZWZ0IDw9IDA6CisgICAgICAgICAgICByZXR1cm4gYicnCisKKyAgICAgICAgbiA9IG1heChuLCBzZWxmLk1JTl9SRUFEX1NJWkUpCisgICAgICAgIG4gPSBtaW4obiwgc2VsZi5fY29tcHJlc3NfbGVmdCkKKworICAgICAgICBkYXRhID0gc2VsZi5fZmlsZW9iai5yZWFkKG4pCisgICAgICAgIHNlbGYuX2NvbXByZXNzX2xlZnQgLT0gbGVuKGRhdGEpCisKKyAgICAgICAgaWYgc2VsZi5fZGVjcnlwdGVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZGF0YSA9IGJ5dGVzKG1hcChzZWxmLl9kZWNyeXB0ZXIsIGRhdGEpKQogICAgICAgICByZXR1cm4gZGF0YQogCiAgICAgZGVmIGNsb3NlKHNlbGYpOgpAQCAtNjY3LDcgKzg2MCw4IEBACiAgICAgZmlsZTogRWl0aGVyIHRoZSBwYXRoIHRvIHRoZSBmaWxlLCBvciBhIGZpbGUtbGlrZSBvYmplY3QuCiAgICAgICAgICAgSWYgaXQgaXMgYSBwYXRoLCB0aGUgZmlsZSB3aWxsIGJlIG9wZW5lZCBhbmQgY2xvc2VkIGJ5IFppcEZpbGUuCiAgICAgbW9kZTogVGhlIG1vZGUgY2FuIGJlIGVpdGhlciByZWFkICJyIiwgd3JpdGUgInciIG9yIGFwcGVuZCAiYSIuCi0gICAgY29tcHJlc3Npb246IFpJUF9TVE9SRUQgKG5vIGNvbXByZXNzaW9uKSBvciBaSVBfREVGTEFURUQgKHJlcXVpcmVzIHpsaWIpLgorICAgIGNvbXByZXNzaW9uOiBaSVBfU1RPUkVEIChubyBjb21wcmVzc2lvbiksIFpJUF9ERUZMQVRFRCAocmVxdWlyZXMgemxpYiksCisgICAgICAgICAgICAgICAgIFpJUF9CWklQMiAocmVxdWlyZXMgYnoyKSBvciBaSVBfTFpNQSAocmVxdWlyZXMgbHptYSkuCiAgICAgYWxsb3daaXA2NDogaWYgVHJ1ZSBaaXBGaWxlIHdpbGwgY3JlYXRlIGZpbGVzIHdpdGggWklQNjQgZXh0ZW5zaW9ucyB3aGVuCiAgICAgICAgICAgICAgICAgbmVlZGVkLCBvdGhlcndpc2UgaXQgd2lsbCByYWlzZSBhbiBleGNlcHRpb24gd2hlbiB0aGlzIHdvdWxkCiAgICAgICAgICAgICAgICAgYmUgbmVjZXNzYXJ5LgpAQCAtNjgxLDE0ICs4NzUsNyBAQAogICAgICAgICBpZiBtb2RlIG5vdCBpbiAoInIiLCAidyIsICJhIik6CiAgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoJ1ppcEZpbGUoKSByZXF1aXJlcyBtb2RlICJyIiwgInciLCBvciAiYSInKQogCi0gICAgICAgIGlmIGNvbXByZXNzaW9uID09IFpJUF9TVE9SRUQ6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsaWYgY29tcHJlc3Npb24gPT0gWklQX0RFRkxBVEVEOgotICAgICAgICAgICAgaWYgbm90IHpsaWI6Ci0gICAgICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICJDb21wcmVzc2lvbiByZXF1aXJlcyB0aGUgKG1pc3NpbmcpIHpsaWIgbW9kdWxlIikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiVGhhdCBjb21wcmVzc2lvbiBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCIpCisgICAgICAgIF9jaGVja19jb21wcmVzc2lvbihjb21wcmVzc2lvbikKIAogICAgICAgICBzZWxmLl9hbGxvd1ppcDY0ID0gYWxsb3daaXA2NAogICAgICAgICBzZWxmLl9kaWRNb2RpZnkgPSBGYWxzZQpAQCAtODE0LDYgKzEwMDEsOSBAQAogICAgICAgICAgICAgKHguY3JlYXRlX3ZlcnNpb24sIHguY3JlYXRlX3N5c3RlbSwgeC5leHRyYWN0X3ZlcnNpb24sIHgucmVzZXJ2ZWQsCiAgICAgICAgICAgICAgICAgeC5mbGFnX2JpdHMsIHguY29tcHJlc3NfdHlwZSwgdCwgZCwKICAgICAgICAgICAgICAgICB4LkNSQywgeC5jb21wcmVzc19zaXplLCB4LmZpbGVfc2l6ZSkgPSBjZW50ZGlyWzE6MTJdCisgICAgICAgICAgICBpZiB4LmV4dHJhY3RfdmVyc2lvbiA+IE1BWF9FWFRSQUNUX1ZFUlNJT046CisgICAgICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcigiemlwIGZpbGUgdmVyc2lvbiAlLjFmIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeC5leHRyYWN0X3ZlcnNpb24gLyAxMCkpCiAgICAgICAgICAgICB4LnZvbHVtZSwgeC5pbnRlcm5hbF9hdHRyLCB4LmV4dGVybmFsX2F0dHIgPSBjZW50ZGlyWzE1OjE4XQogICAgICAgICAgICAgIyBDb252ZXJ0IGRhdGUvdGltZSBjb2RlIHRvICh5ZWFyLCBtb250aCwgZGF5LCBob3VyLCBtaW4sIHNlYykKICAgICAgICAgICAgIHguX3Jhd190aW1lID0gdApAQCAtODM2LDEwICsxMDI2LDcgQEAKIAogICAgIGRlZiBuYW1lbGlzdChzZWxmKToKICAgICAgICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBmaWxlIG5hbWVzIGluIHRoZSBhcmNoaXZlLiIiIgotICAgICAgICBsID0gW10KLSAgICAgICAgZm9yIGRhdGEgaW4gc2VsZi5maWxlbGlzdDoKLSAgICAgICAgICAgIGwuYXBwZW5kKGRhdGEuZmlsZW5hbWUpCi0gICAgICAgIHJldHVybiBsCisgICAgICAgIHJldHVybiBbZGF0YS5maWxlbmFtZSBmb3IgZGF0YSBpbiBzZWxmLmZpbGVsaXN0XQogCiAgICAgZGVmIGluZm9saXN0KHNlbGYpOgogICAgICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGNsYXNzIFppcEluZm8gaW5zdGFuY2VzIGZvciBmaWxlcyBpbiB0aGUKQEAgLTk1MCw2ICsxMTM3LDE0IEBACiAgICAgICAgIGlmIGZoZWFkZXJbX0ZIX0VYVFJBX0ZJRUxEX0xFTkdUSF06CiAgICAgICAgICAgICB6ZWZfZmlsZS5yZWFkKGZoZWFkZXJbX0ZIX0VYVFJBX0ZJRUxEX0xFTkdUSF0pCiAKKyAgICAgICAgaWYgemluZm8uZmxhZ19iaXRzICYgMHgyMDoKKyAgICAgICAgICAgICMgWmlwIDIuNzogY29tcHJlc3NlZCBwYXRjaGVkIGRhdGEKKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoImNvbXByZXNzZWQgcGF0Y2hlZCBkYXRhIChmbGFnIGJpdCA1KSIpCisKKyAgICAgICAgaWYgemluZm8uZmxhZ19iaXRzICYgMHg0MDoKKyAgICAgICAgICAgICMgc3Ryb25nIGVuY3J5cHRpb24KKyAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN0cm9uZyBlbmNyeXB0aW9uIChmbGFnIGJpdCA2KSIpCisKICAgICAgICAgaWYgemluZm8uZmxhZ19iaXRzICYgMHg4MDA6CiAgICAgICAgICAgICAjIFVURi04IGZpbGVuYW1lCiAgICAgICAgICAgICBmbmFtZV9zdHIgPSBmbmFtZS5kZWNvZGUoInV0Zi04IikKQEAgLTEwNzAsMTEgKzEyNjUsNyBAQAogICAgICAgICBpZiBub3Qgc2VsZi5mcDoKICAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigKICAgICAgICAgICAgICAgICAgICJBdHRlbXB0IHRvIHdyaXRlIFpJUCBhcmNoaXZlIHRoYXQgd2FzIGFscmVhZHkgY2xvc2VkIikKLSAgICAgICAgaWYgemluZm8uY29tcHJlc3NfdHlwZSA9PSBaSVBfREVGTEFURUQgYW5kIG5vdCB6bGliOgotICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKAotICAgICAgICAgICAgICAgICAgIkNvbXByZXNzaW9uIHJlcXVpcmVzIHRoZSAobWlzc2luZykgemxpYiBtb2R1bGUiKQotICAgICAgICBpZiB6aW5mby5jb21wcmVzc190eXBlIG5vdCBpbiAoWklQX1NUT1JFRCwgWklQX0RFRkxBVEVEKToKLSAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvcigiVGhhdCBjb21wcmVzc2lvbiBtZXRob2QgaXMgbm90IHN1cHBvcnRlZCIpCisgICAgICAgIF9jaGVja19jb21wcmVzc2lvbih6aW5mby5jb21wcmVzc190eXBlKQogICAgICAgICBpZiB6aW5mby5maWxlX3NpemUgPiBaSVA2NF9MSU1JVDoKICAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9hbGxvd1ppcDY0OgogICAgICAgICAgICAgICAgIHJhaXNlIExhcmdlWmlwRmlsZSgiRmlsZXNpemUgd291bGQgcmVxdWlyZSBaSVA2NCBleHRlbnNpb25zIikKQEAgLTExMTIsNiArMTMwMyw5IEBACiAgICAgICAgIHppbmZvLmZpbGVfc2l6ZSA9IHN0LnN0X3NpemUKICAgICAgICAgemluZm8uZmxhZ19iaXRzID0gMHgwMAogICAgICAgICB6aW5mby5oZWFkZXJfb2Zmc2V0ID0gc2VsZi5mcC50ZWxsKCkgICAgIyBTdGFydCBvZiBoZWFkZXIgYnl0ZXMKKyAgICAgICAgaWYgemluZm8uY29tcHJlc3NfdHlwZSA9PSBaSVBfTFpNQToKKyAgICAgICAgICAgICMgQ29tcHJlc3NlZCBkYXRhIGluY2x1ZGVzIGFuIGVuZC1vZi1zdHJlYW0gKEVPUykgbWFya2VyCisgICAgICAgICAgICB6aW5mby5mbGFnX2JpdHMgfD0gMHgwMgogCiAgICAgICAgIHNlbGYuX3dyaXRlY2hlY2soemluZm8pCiAgICAgICAgIHNlbGYuX2RpZE1vZGlmeSA9IFRydWUKQEAgLTExMjUsMTcgKzEzMTksMTMgQEAKICAgICAgICAgICAgIHNlbGYuZnAud3JpdGUoemluZm8uRmlsZUhlYWRlcigpKQogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAgY21wciA9IF9nZXRfY29tcHJlc3Nvcih6aW5mby5jb21wcmVzc190eXBlKQogICAgICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICJyYiIpIGFzIGZwOgogICAgICAgICAgICAgIyBNdXN0IG92ZXJ3cml0ZSBDUkMgYW5kIHNpemVzIHdpdGggY29ycmVjdCBkYXRhIGxhdGVyCiAgICAgICAgICAgICB6aW5mby5DUkMgPSBDUkMgPSAwCiAgICAgICAgICAgICB6aW5mby5jb21wcmVzc19zaXplID0gY29tcHJlc3Nfc2l6ZSA9IDAKICAgICAgICAgICAgIHppbmZvLmZpbGVfc2l6ZSA9IGZpbGVfc2l6ZSA9IDAKICAgICAgICAgICAgIHNlbGYuZnAud3JpdGUoemluZm8uRmlsZUhlYWRlcigpKQotICAgICAgICAgICAgaWYgemluZm8uY29tcHJlc3NfdHlwZSA9PSBaSVBfREVGTEFURUQ6Ci0gICAgICAgICAgICAgICAgY21wciA9IHpsaWIuY29tcHJlc3NvYmooemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sCi0gICAgICAgICAgICAgICAgICAgICB6bGliLkRFRkxBVEVELCAtMTUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGNtcHIgPSBOb25lCiAgICAgICAgICAgICB3aGlsZSAxOgogICAgICAgICAgICAgICAgIGJ1ZiA9IGZwLnJlYWQoMTAyNCAqIDgpCiAgICAgICAgICAgICAgICAgaWYgbm90IGJ1ZjoKQEAgLTExODgsMTMgKzEzNzgsMTUgQEAKICAgICAgICAgemluZm8uaGVhZGVyX29mZnNldCA9IHNlbGYuZnAudGVsbCgpICAgICMgU3RhcnQgb2YgaGVhZGVyIGRhdGEKICAgICAgICAgaWYgY29tcHJlc3NfdHlwZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHppbmZvLmNvbXByZXNzX3R5cGUgPSBjb21wcmVzc190eXBlCisgICAgICAgIGlmIHppbmZvLmNvbXByZXNzX3R5cGUgPT0gWklQX0xaTUE6CisgICAgICAgICAgICAjIENvbXByZXNzZWQgZGF0YSBpbmNsdWRlcyBhbiBlbmQtb2Ytc3RyZWFtIChFT1MpIG1hcmtlcgorICAgICAgICAgICAgemluZm8uZmxhZ19iaXRzIHw9IDB4MDIKIAogICAgICAgICBzZWxmLl93cml0ZWNoZWNrKHppbmZvKQogICAgICAgICBzZWxmLl9kaWRNb2RpZnkgPSBUcnVlCiAgICAgICAgIHppbmZvLkNSQyA9IGNyYzMyKGRhdGEpICYgMHhmZmZmZmZmZiAgICAgICAjIENSQy0zMiBjaGVja3N1bQotICAgICAgICBpZiB6aW5mby5jb21wcmVzc190eXBlID09IFpJUF9ERUZMQVRFRDoKLSAgICAgICAgICAgIGNvID0gemxpYi5jb21wcmVzc29iaih6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwKLSAgICAgICAgICAgICAgICAgemxpYi5ERUZMQVRFRCwgLTE1KQorICAgICAgICBjbyA9IF9nZXRfY29tcHJlc3Nvcih6aW5mby5jb21wcmVzc190eXBlKQorICAgICAgICBpZiBjbzoKICAgICAgICAgICAgIGRhdGEgPSBjby5jb21wcmVzcyhkYXRhKSArIGNvLmZsdXNoKCkKICAgICAgICAgICAgIHppbmZvLmNvbXByZXNzX3NpemUgPSBsZW4oZGF0YSkgICAgIyBDb21wcmVzc2VkIHNpemUKICAgICAgICAgZWxzZToKQEAgLTEyNDYsMTggKzE0MzgsMjIgQEAKICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX29mZnNldCA9IHppbmZvLmhlYWRlcl9vZmZzZXQKIAogICAgICAgICAgICAgICAgIGV4dHJhX2RhdGEgPSB6aW5mby5leHRyYQorICAgICAgICAgICAgICAgIG1pbl92ZXJzaW9uID0gMAogICAgICAgICAgICAgICAgIGlmIGV4dHJhOgogICAgICAgICAgICAgICAgICAgICAjIEFwcGVuZCBhIFpJUDY0IGZpZWxkIHRvIHRoZSBleHRyYSdzCiAgICAgICAgICAgICAgICAgICAgIGV4dHJhX2RhdGEgPSBzdHJ1Y3QucGFjaygKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnPEhIJyArICdRJypsZW4oZXh0cmEpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIDgqbGVuKGV4dHJhKSwgKmV4dHJhKSArIGV4dHJhX2RhdGEKIAotICAgICAgICAgICAgICAgICAgICBleHRyYWN0X3ZlcnNpb24gPSBtYXgoNDUsIHppbmZvLmV4dHJhY3RfdmVyc2lvbikKLSAgICAgICAgICAgICAgICAgICAgY3JlYXRlX3ZlcnNpb24gPSBtYXgoNDUsIHppbmZvLmNyZWF0ZV92ZXJzaW9uKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGV4dHJhY3RfdmVyc2lvbiA9IHppbmZvLmV4dHJhY3RfdmVyc2lvbgotICAgICAgICAgICAgICAgICAgICBjcmVhdGVfdmVyc2lvbiA9IHppbmZvLmNyZWF0ZV92ZXJzaW9uCisgICAgICAgICAgICAgICAgICAgIG1pbl92ZXJzaW9uID0gWklQNjRfVkVSU0lPTgogCisgICAgICAgICAgICAgICAgaWYgemluZm8uY29tcHJlc3NfdHlwZSA9PSBaSVBfQlpJUDI6CisgICAgICAgICAgICAgICAgICAgIG1pbl92ZXJzaW9uID0gbWF4KEJaSVAyX1ZFUlNJT04sIG1pbl92ZXJzaW9uKQorICAgICAgICAgICAgICAgIGVsaWYgemluZm8uY29tcHJlc3NfdHlwZSA9PSBaSVBfTFpNQToKKyAgICAgICAgICAgICAgICAgICAgbWluX3ZlcnNpb24gPSBtYXgoTFpNQV9WRVJTSU9OLCBtaW5fdmVyc2lvbikKKworICAgICAgICAgICAgICAgIGV4dHJhY3RfdmVyc2lvbiA9IG1heChtaW5fdmVyc2lvbiwgemluZm8uZXh0cmFjdF92ZXJzaW9uKQorICAgICAgICAgICAgICAgIGNyZWF0ZV92ZXJzaW9uID0gbWF4KG1pbl92ZXJzaW9uLCB6aW5mby5jcmVhdGVfdmVyc2lvbikKICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLCBmbGFnX2JpdHMgPSB6aW5mby5fZW5jb2RlRmlsZW5hbWVGbGFncygpCiAgICAgICAgICAgICAgICAgICAgIGNlbnRkaXIgPSBzdHJ1Y3QucGFjayhzdHJ1Y3RDZW50cmFsRGlyLApkaWZmIC0tZ2l0IGEvTWFjL0J1aWxkU2NyaXB0L2J1aWxkLWluc3RhbGxlci5weSBiL01hYy9CdWlsZFNjcmlwdC9idWlsZC1pbnN0YWxsZXIucHkKaW5kZXggYmE5MjAxMi4uMWExNjE2NSAxMDA3NTUKLS0tIGEvTWFjL0J1aWxkU2NyaXB0L2J1aWxkLWluc3RhbGxlci5weQorKysgYi9NYWMvQnVpbGRTY3JpcHQvYnVpbGQtaW5zdGFsbGVyLnB5CkBAIC0xLDQgKzEsNCBAQAotIyEvdXNyL2Jpbi9weXRob24KKyMhL3Vzci9iaW4vZW52IHB5dGhvbgogIiIiCiBUaGlzIHNjcmlwdCBpcyB1c2VkIHRvIGJ1aWxkICJvZmZpY2lhbCIgdW5pdmVyc2FsIGluc3RhbGxlcnMgb24gTWFjIE9TIFguCiBJdCByZXF1aXJlcyBhdCBsZWFzdCBNYWMgT1MgWCAxMC40LCBYY29kZSAyLjIgYW5kIHRoZSAxMC40dSBTREsgZm9yCkBAIC0xMiwxNiArMTIsMjUgQEAKIAogVXNhZ2U6IHNlZSBVU0FHRSB2YXJpYWJsZSBpbiB0aGUgc2NyaXB0LgogIiIiCi1pbXBvcnQgcGxhdGZvcm0sIG9zLCBzeXMsIGdldG9wdCwgdGV4dHdyYXAsIHNodXRpbCwgdXJsbGliMiwgc3RhdCwgdGltZSwgcHdkCi1pbXBvcnQgZ3JwCitpbXBvcnQgcGxhdGZvcm0sIG9zLCBzeXMsIGdldG9wdCwgdGV4dHdyYXAsIHNodXRpbCwgc3RhdCwgdGltZSwgcHdkLCBncnAKK3RyeToKKyAgICBpbXBvcnQgdXJsbGliMiBhcyB1cmxsaWJfcmVxdWVzdAorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCB1cmxsaWIucmVxdWVzdCBhcyB1cmxsaWJfcmVxdWVzdAorCitTVEFUXzBvNzU1ID0gKCBzdGF0LlNfSVJVU1IgfCBzdGF0LlNfSVdVU1IgfCBzdGF0LlNfSVhVU1IKKyAgICAgICAgICAgICB8IHN0YXQuU19JUkdSUCB8ICAgICAgICAgICAgICAgIHN0YXQuU19JWEdSUAorICAgICAgICAgICAgIHwgc3RhdC5TX0lST1RIIHwgICAgICAgICAgICAgICAgc3RhdC5TX0lYT1RIICkKKworU1RBVF8wbzc3NSA9ICggc3RhdC5TX0lSVVNSIHwgc3RhdC5TX0lXVVNSIHwgc3RhdC5TX0lYVVNSCisgICAgICAgICAgICAgfCBzdGF0LlNfSVJHUlAgfCBzdGF0LlNfSVdHUlAgfCBzdGF0LlNfSVhHUlAKKyAgICAgICAgICAgICB8IHN0YXQuU19JUk9USCB8ICAgICAgICAgICAgICAgIHN0YXQuU19JWE9USCApCiAKIElOQ0xVREVfVElNRVNUQU1QID0gMQogVkVSQk9TRSA9IDEKIAogZnJvbSBwbGlzdGxpYiBpbXBvcnQgUGxpc3QKIAotaW1wb3J0IE1hY09TCi0KIHRyeToKICAgICBmcm9tIHBsaXN0bGliIGltcG9ydCB3cml0ZVBsaXN0CiBleGNlcHQgSW1wb3J0RXJyb3I6CkBAIC00MiwyMCArNTEsMzUgQEAKICAgICAgICAgaWYgbG4uc3RhcnRzd2l0aCh2YXJpYWJsZSk6CiAgICAgICAgICAgICB2YWx1ZSA9IGxuW2xlbih2YXJpYWJsZSk6XS5zdHJpcCgpCiAgICAgICAgICAgICByZXR1cm4gdmFsdWVbMTotMV0KLSAgICByYWlzZSBSdW50aW1lRXJyb3IsICJDYW5ub3QgZmluZCB2YXJpYWJsZSAlcyIgJSB2YXJpYWJsZVs6LTFdCisgICAgcmFpc2UgUnVudGltZUVycm9yKCJDYW5ub3QgZmluZCB2YXJpYWJsZSAlcyIgJSB2YXJpYWJsZVs6LTFdKQorCitfY2FjaGVfZ2V0VmVyc2lvbiA9IE5vbmUKIAogZGVmIGdldFZlcnNpb24oKToKLSAgICByZXR1cm4gZ3JlcFZhbHVlKG9zLnBhdGguam9pbihTUkNESVIsICdjb25maWd1cmUnKSwgJ1BBQ0tBR0VfVkVSU0lPTicpCisgICAgZ2xvYmFsIF9jYWNoZV9nZXRWZXJzaW9uCisgICAgaWYgX2NhY2hlX2dldFZlcnNpb24gaXMgTm9uZToKKyAgICAgICAgX2NhY2hlX2dldFZlcnNpb24gPSBncmVwVmFsdWUoCisgICAgICAgICAgICBvcy5wYXRoLmpvaW4oU1JDRElSLCAnY29uZmlndXJlJyksICdQQUNLQUdFX1ZFUlNJT04nKQorICAgIHJldHVybiBfY2FjaGVfZ2V0VmVyc2lvbgogCiBkZWYgZ2V0VmVyc2lvblR1cGxlKCk6CiAgICAgcmV0dXJuIHR1cGxlKFtpbnQobikgZm9yIG4gaW4gZ2V0VmVyc2lvbigpLnNwbGl0KCcuJyldKQogCitkZWYgZ2V0VmVyc2lvbk1ham9yTWlub3IoKToKKyAgICByZXR1cm4gdHVwbGUoW2ludChuKSBmb3IgbiBpbiBnZXRWZXJzaW9uKCkuc3BsaXQoJy4nLCAyKV0pCisKK19jYWNoZV9nZXRGdWxsVmVyc2lvbiA9IE5vbmUKKwogZGVmIGdldEZ1bGxWZXJzaW9uKCk6CisgICAgZ2xvYmFsIF9jYWNoZV9nZXRGdWxsVmVyc2lvbgorICAgIGlmIF9jYWNoZV9nZXRGdWxsVmVyc2lvbiBpcyBub3QgTm9uZToKKyAgICAgICAgcmV0dXJuIF9jYWNoZV9nZXRGdWxsVmVyc2lvbgogICAgIGZuID0gb3MucGF0aC5qb2luKFNSQ0RJUiwgJ0luY2x1ZGUnLCAncGF0Y2hsZXZlbC5oJykKICAgICBmb3IgbG4gaW4gb3Blbihmbik6CiAgICAgICAgIGlmICdQWV9WRVJTSU9OJyBpbiBsbjoKLSAgICAgICAgICAgIHJldHVybiBsbi5zcGxpdCgpWy0xXVsxOi0xXQotICAgIHJhaXNlIFJ1bnRpbWVFcnJvciwgIkNhbm5vdCBmaW5kIGZ1bGwgdmVyc2lvbj8/IgorICAgICAgICAgICAgX2NhY2hlX2dldEZ1bGxWZXJzaW9uID0gbG4uc3BsaXQoKVstMV1bMTotMV0KKyAgICAgICAgICAgIHJldHVybiBfY2FjaGVfZ2V0RnVsbFZlcnNpb24KKyAgICByYWlzZSBSdW50aW1lRXJyb3IoIkNhbm5vdCBmaW5kIGZ1bGwgdmVyc2lvbj8/IikKIAogIyBUaGUgZGlyZWN0b3J5IHdlJ2xsIHVzZSB0byBjcmVhdGUgdGhlIGJ1aWxkICh3aWxsIGJlIGVyYXNlZCBhbmQgcmVjcmVhdGVkKQogV09SS0RJUiA9ICIvdG1wL19weSIKQEAgLTExMyw4ICsxMzcsMTAgQEAKIHRhcmdldF9jY19tYXAgPSB7CiAgICAgICAgICcxMC4zJzogJ2djYy00LjAnLAogICAgICAgICAnMTAuNCc6ICdnY2MtNC4wJywKLSAgICAgICAgJzEwLjUnOiAnZ2NjLTQuMCcsCisgICAgICAgICcxMC41JzogJ2djYy00LjInLAogICAgICAgICAnMTAuNic6ICdnY2MtNC4yJywKKyAgICAgICAgJzEwLjcnOiAnY2xhbmcnLAorICAgICAgICAnMTAuOCc6ICdjbGFuZycsCiB9CiAKIENDID0gdGFyZ2V0X2NjX21hcFtERVBUQVJHRVRdCkBAIC0xNDMsNiArMTY5LDE3IEBACiBkZWYgbGlicmFyeV9yZWNpcGVzKCk6CiAgICAgcmVzdWx0ID0gW10KIAorICAgIHJlc3VsdC5leHRlbmQoWworICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgIG5hbWU9IlhaIDUuMC4zIiwKKyAgICAgICAgICAgICAgdXJsPSJodHRwOi8vdHVrYWFuaS5vcmcveHoveHotNS4wLjMudGFyLmd6IiwKKyAgICAgICAgICAgICAgY2hlY2tzdW09J2ZlZmU1MmY5ZWNkNTIxZGUyYThjZTM4YzIxYTI3NTc0JywKKyAgICAgICAgICAgICAgY29uZmlndXJlX3ByZT1bCisgICAgICAgICAgICAgICAgICAgICctLWRpc2FibGUtZGVwZW5kZW5jeS10cmFja2luZycsCisgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgKQorICAgICAgICAgIF0pCisKICAgICBpZiBERVBUQVJHRVQgPCAnMTAuNSc6CiAgICAgICAgIHJlc3VsdC5leHRlbmQoWwogICAgICAgICAgIGRpY3QoCkBAIC0zMjYsNyArMzYzLDcgQEAKICAgICAgICAgKSwKICAgICBdCiAKLSAgICBpZiBERVBUQVJHRVQgPCAnMTAuNCc6CisgICAgaWYgREVQVEFSR0VUIDwgJzEwLjQnIGFuZCBub3QgUFlUSE9OXzM6CiAgICAgICAgIHJlc3VsdC5hcHBlbmQoCiAgICAgICAgICAgICBkaWN0KAogICAgICAgICAgICAgICAgIG5hbWU9IlB5dGhvblN5c3RlbUZpeGVzIiwKQEAgLTM1OCw3ICszOTUsNyBAQAogICAgICIiIgogICAgIFJldHVybiB0aGUgY29udGVudHMgb2YgdGhlIG5hbWVkIGZpbGUKICAgICAiIiIKLSAgICByZXR1cm4gb3BlbihmbiwgJ3JiJykucmVhZCgpCisgICAgcmV0dXJuIG9wZW4oZm4sICdyJykucmVhZCgpCiAKIGRlZiBydW5Db21tYW5kKGNvbW1hbmRsaW5lKToKICAgICAiIiIKQEAgLTM3MCw3ICs0MDcsNyBAQAogICAgIHhpdCA9IGZkLmNsb3NlKCkKICAgICBpZiB4aXQgaXMgbm90IE5vbmU6CiAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoZGF0YSkKLSAgICAgICAgcmFpc2UgUnVudGltZUVycm9yLCAiY29tbWFuZCBmYWlsZWQ6ICVzIiUoY29tbWFuZGxpbmUsKQorICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImNvbW1hbmQgZmFpbGVkOiAlcyIlKGNvbW1hbmRsaW5lLCkpCiAKICAgICBpZiBWRVJCT1NFOgogICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKGRhdGEpOyBzeXMuc3Rkb3V0LmZsdXNoKCkKQEAgLTM4MSw3ICs0MTgsNyBAQAogICAgIHhpdCA9IGZkLmNsb3NlKCkKICAgICBpZiB4aXQgaXMgbm90IE5vbmU6CiAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoZGF0YSkKLSAgICAgICAgcmFpc2UgUnVudGltZUVycm9yLCAiY29tbWFuZCBmYWlsZWQ6ICVzIiUoY29tbWFuZGxpbmUsKQorICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoImNvbW1hbmQgZmFpbGVkOiAlcyIlKGNvbW1hbmRsaW5lLCkpCiAKICAgICByZXR1cm4gZGF0YQogCkBAIC00NTAsMTIgKzQ4NywxMiBAQAogICAgIGZvciBldiBpbiBsaXN0KG9zLmVudmlyb24pOgogICAgICAgICBmb3IgcHJlZml4IGluIGVudmlyb25fdmFyX3ByZWZpeGVzOgogICAgICAgICAgICAgaWYgZXYuc3RhcnRzd2l0aChwcmVmaXgpIDoKLSAgICAgICAgICAgICAgICBwcmludCAiSU5GTzogZGVsZXRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUgJXM9JXMiICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2LCBvcy5lbnZpcm9uW2V2XSkKKyAgICAgICAgICAgICAgICBwcmludCgiSU5GTzogZGVsZXRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGUgJXM9JXMiICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2LCBvcy5lbnZpcm9uW2V2XSkpCiAgICAgICAgICAgICAgICAgZGVsIG9zLmVudmlyb25bZXZdCiAKICAgICBvcy5lbnZpcm9uWydQQVRIJ10gPSAnL2Jpbjovc2JpbjovdXNyL2JpbjovdXNyL3NiaW4nCi0gICAgcHJpbnQgIlNldHRpbmcgZGVmYXVsdCBQQVRIOiAlcyIlKG9zLmVudmlyb25bJ1BBVEgnXSkKKyAgICBwcmludCgiU2V0dGluZyBkZWZhdWx0IFBBVEg6ICVzIiUob3MuZW52aXJvblsnUEFUSCddKSkKIAogCiBkZWYgcGFyc2VPcHRpb25zKGFyZ3M9Tm9uZSk6CkBAIC00NzIsMTggKzUwOSwxOCBAQAogICAgICAgICBvcHRpb25zLCBhcmdzID0gZ2V0b3B0LmdldG9wdChhcmdzLCAnP2hiJywKICAgICAgICAgICAgICAgICBbICdidWlsZC1kaXI9JywgJ3RoaXJkLXBhcnR5PScsICdzZGstcGF0aD0nICwgJ3NyYy1kaXI9JywKICAgICAgICAgICAgICAgICAgICdkZXAtdGFyZ2V0PScsICd1bml2ZXJzYWwtYXJjaHM9JywgJ2hlbHAnIF0pCi0gICAgZXhjZXB0IGdldG9wdC5lcnJvciwgbXNnOgotICAgICAgICBwcmludCBtc2cKKyAgICBleGNlcHQgZ2V0b3B0LkdldG9wdEVycm9yOgorICAgICAgICBwcmludChzeXMuZXhjX2luZm8oKVsxXSkKICAgICAgICAgc3lzLmV4aXQoMSkKIAogICAgIGlmIGFyZ3M6Ci0gICAgICAgIHByaW50ICJBZGRpdGlvbmFsIGFyZ3VtZW50cyIKKyAgICAgICAgcHJpbnQoIkFkZGl0aW9uYWwgYXJndW1lbnRzIikKICAgICAgICAgc3lzLmV4aXQoMSkKIAogICAgIGRlcHRhcmdldCA9IE5vbmUKICAgICBmb3IgaywgdiBpbiBvcHRpb25zOgogICAgICAgICBpZiBrIGluICgnLWgnLCAnLT8nLCAnLS1oZWxwJyk6Ci0gICAgICAgICAgICBwcmludCBVU0FHRQorICAgICAgICAgICAgcHJpbnQoVVNBR0UpCiAgICAgICAgICAgICBzeXMuZXhpdCgwKQogCiAgICAgICAgIGVsaWYgayBpbiAoJy1kJywgJy0tYnVpbGQtZGlyJyk6CkBAIC01MTEsMTAgKzU0OCwxMCBAQAogICAgICAgICAgICAgICAgICAgICAjIHRhcmdldAogICAgICAgICAgICAgICAgICAgICBERVBUQVJHRVQgPSBkZWZhdWx0X3RhcmdldF9tYXAuZ2V0KHYsICcxMC4zJykKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwgdgorICAgICAgICAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IodikKIAogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwgaworICAgICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcihrKQogCiAgICAgU1JDRElSPW9zLnBhdGguYWJzcGF0aChTUkNESVIpCiAgICAgV09SS0RJUj1vcy5wYXRoLmFic3BhdGgoV09SS0RJUikKQEAgLTUyMywxNSArNTYwLDE1IEBACiAKICAgICBDQz10YXJnZXRfY2NfbWFwW0RFUFRBUkdFVF0KIAotICAgIHByaW50ICJTZXR0aW5nczoiCi0gICAgcHJpbnQgIiAqIFNvdXJjZSBkaXJlY3Rvcnk6IiwgU1JDRElSCi0gICAgcHJpbnQgIiAqIEJ1aWxkIGRpcmVjdG9yeTogIiwgV09SS0RJUgotICAgIHByaW50ICIgKiBTREsgbG9jYXRpb246ICAgICIsIFNES1BBVEgKLSAgICBwcmludCAiICogVGhpcmQtcGFydHkgc291cmNlOiIsIERFUFNSQwotICAgIHByaW50ICIgKiBEZXBsb3ltZW50IHRhcmdldDoiLCBERVBUQVJHRVQKLSAgICBwcmludCAiICogVW5pdmVyc2FsIGFyY2hpdGVjdHVyZXM6IiwgQVJDSExJU1QKLSAgICBwcmludCAiICogQyBjb21waWxlcjoiLCBDQwotICAgIHByaW50ICIiCisgICAgcHJpbnQoIlNldHRpbmdzOiIpCisgICAgcHJpbnQoIiAqIFNvdXJjZSBkaXJlY3Rvcnk6IiwgU1JDRElSKQorICAgIHByaW50KCIgKiBCdWlsZCBkaXJlY3Rvcnk6ICIsIFdPUktESVIpCisgICAgcHJpbnQoIiAqIFNESyBsb2NhdGlvbjogICAgIiwgU0RLUEFUSCkKKyAgICBwcmludCgiICogVGhpcmQtcGFydHkgc291cmNlOiIsIERFUFNSQykKKyAgICBwcmludCgiICogRGVwbG95bWVudCB0YXJnZXQ6IiwgREVQVEFSR0VUKQorICAgIHByaW50KCIgKiBVbml2ZXJzYWwgYXJjaGl0ZWN0dXJlczoiLCBBUkNITElTVCkKKyAgICBwcmludCgiICogQyBjb21waWxlcjoiLCBDQykKKyAgICBwcmludCgiIikKIAogCiAKQEAgLTU3Niw3ICs2MTMsNyBAQAogICAgICAgICB4aXQgPSBmcC5jbG9zZSgpCiAgICAgICAgIGlmIHhpdCBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoZGF0YSkKLSAgICAgICAgICAgIHJhaXNlIFJ1bnRpbWVFcnJvciwgIkNhbm5vdCBleHRyYWN0ICVzIiUoYXJjaGl2ZU5hbWUsKQorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJDYW5ub3QgZXh0cmFjdCAlcyIlKGFyY2hpdmVOYW1lLCkpCiAKICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihidWlsZGRpciwgcmV0dmFsKQogCkBAIC01OTgsOSArNjM1LDkgQEAKICAgICAgICAgcGFzcwogICAgIGVsc2U6CiAgICAgICAgIGlmIEtOT1dOU0laRVMuZ2V0KHVybCkgPT0gc2l6ZToKLSAgICAgICAgICAgIHByaW50ICJVc2luZyBleGlzdGluZyBmaWxlIGZvciIsIHVybAorICAgICAgICAgICAgcHJpbnQoIlVzaW5nIGV4aXN0aW5nIGZpbGUgZm9yIiwgdXJsKQogICAgICAgICAgICAgcmV0dXJuCi0gICAgZnBJbiA9IHVybGxpYjIudXJsb3Blbih1cmwpCisgICAgZnBJbiA9IHVybGxpYl9yZXF1ZXN0LnVybG9wZW4odXJsKQogICAgIGZwT3V0ID0gb3BlbihmbmFtZSwgJ3diJykKICAgICBibG9jayA9IGZwSW4ucmVhZCgxMDI0MCkKICAgICB0cnk6CkBAIC02MzcsMTUgKzY3NCwxNSBAQAogCiAKICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzb3VyY2VBcmNoaXZlKToKLSAgICAgICAgcHJpbnQgIlVzaW5nIGxvY2FsIGNvcHkgb2YgJXMiJShuYW1lLCkKKyAgICAgICAgcHJpbnQoIlVzaW5nIGxvY2FsIGNvcHkgb2YgJXMiJShuYW1lLCkpCiAKICAgICBlbHNlOgotICAgICAgICBwcmludCAiRGlkIG5vdCBmaW5kIGxvY2FsIGNvcHkgb2YgJXMiJShuYW1lLCkKLSAgICAgICAgcHJpbnQgIkRvd25sb2FkaW5nICVzIiUobmFtZSwpCisgICAgICAgIHByaW50KCJEaWQgbm90IGZpbmQgbG9jYWwgY29weSBvZiAlcyIlKG5hbWUsKSkKKyAgICAgICAgcHJpbnQoIkRvd25sb2FkaW5nICVzIiUobmFtZSwpKQogICAgICAgICBkb3dubG9hZFVSTCh1cmwsIHNvdXJjZUFyY2hpdmUpCi0gICAgICAgIHByaW50ICJBcmNoaXZlIGZvciAlcyBzdG9yZWQgYXMgJXMiJShuYW1lLCBzb3VyY2VBcmNoaXZlKQorICAgICAgICBwcmludCgiQXJjaGl2ZSBmb3IgJXMgc3RvcmVkIGFzICVzIiUobmFtZSwgc291cmNlQXJjaGl2ZSkpCiAKLSAgICBwcmludCAiRXh0cmFjdGluZyBhcmNoaXZlIGZvciAlcyIlKG5hbWUsKQorICAgIHByaW50KCJFeHRyYWN0aW5nIGFyY2hpdmUgZm9yICVzIiUobmFtZSwpKQogICAgIGJ1aWxkRGlyPW9zLnBhdGguam9pbihXT1JLRElSLCAnX2JsZCcpCiAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGJ1aWxkRGlyKToKICAgICAgICAgb3MubWtkaXIoYnVpbGREaXIpCkBAIC03MTEsMTQgKzc0OCwxNCBAQAogICAgICAgICBpZiAnY29uZmlndXJlX2VudicgaW4gcmVjaXBlOgogICAgICAgICAgICAgY29uZmlndXJlX2FyZ3MuaW5zZXJ0KDAsIHJlY2lwZVsnY29uZmlndXJlX2VudiddKQogCi0gICAgICAgIHByaW50ICJSdW5uaW5nIGNvbmZpZ3VyZSBmb3IgJXMiJShuYW1lLCkKKyAgICAgICAgcHJpbnQoIlJ1bm5pbmcgY29uZmlndXJlIGZvciAlcyIlKG5hbWUsKSkKICAgICAgICAgcnVuQ29tbWFuZCgnICcuam9pbihjb25maWd1cmVfYXJncykgKyAnIDI+JjEnKQogCi0gICAgcHJpbnQgIlJ1bm5pbmcgaW5zdGFsbCBmb3IgJXMiJShuYW1lLCkKKyAgICBwcmludCgiUnVubmluZyBpbnN0YWxsIGZvciAlcyIlKG5hbWUsKSkKICAgICBydW5Db21tYW5kKCd7ICcgKyBpbnN0YWxsICsgJyA7fSAyPiYxJykKIAotICAgIHByaW50ICJEb25lICVzIiUobmFtZSwpCi0gICAgcHJpbnQgIiIKKyAgICBwcmludCgiRG9uZSAlcyIlKG5hbWUsKSkKKyAgICBwcmludCgiIikKIAogICAgIG9zLmNoZGlyKGN1cmRpcikKIApAQCAtNzI2LDkgKzc2Myw5IEBACiAgICAgIiIiCiAgICAgQnVpbGQgb3VyIGRlcGVuZGVuY2llcyBpbnRvICRXT1JLRElSL2xpYnJhcmllcy91c3IvbG9jYWwKICAgICAiIiIKLSAgICBwcmludCAiIgotICAgIHByaW50ICJCdWlsZGluZyByZXF1aXJlZCBsaWJyYXJpZXMiCi0gICAgcHJpbnQgIiIKKyAgICBwcmludCgiIikKKyAgICBwcmludCgiQnVpbGRpbmcgcmVxdWlyZWQgbGlicmFyaWVzIikKKyAgICBwcmludCgiIikKICAgICB1bml2ZXJzYWwgPSBvcy5wYXRoLmpvaW4oV09SS0RJUiwgJ2xpYnJhcmllcycpCiAgICAgb3MubWtkaXIodW5pdmVyc2FsKQogICAgIG9zLm1ha2VkaXJzKG9zLnBhdGguam9pbih1bml2ZXJzYWwsICd1c3InLCAnbG9jYWwnLCAnbGliJykpCkBAIC03NDIsNyArNzc5LDcgQEAKIGRlZiBidWlsZFB5dGhvbkRvY3MoKToKICAgICAjIFRoaXMgc3RvcmVzIHRoZSBkb2N1bWVudGF0aW9uIGFzIFJlc291cmNlcy9FbmdsaXNoLmxwcm9qL0RvY3VtZW50YXRpb24KICAgICAjIGluc2lkZSB0aGUgZnJhbXdvcmsuIHB5ZG9jIGFuZCBJRExFIHdpbGwgcGljayBpdCB1cCB0aGVyZS4KLSAgICBwcmludCAiSW5zdGFsbCBweXRob24gZG9jdW1lbnRhdGlvbiIKKyAgICBwcmludCgiSW5zdGFsbCBweXRob24gZG9jdW1lbnRhdGlvbiIpCiAgICAgcm9vdERpciA9IG9zLnBhdGguam9pbihXT1JLRElSLCAnX3Jvb3QnKQogICAgIGJ1aWxkRGlyID0gb3MucGF0aC5qb2luKCcuLi8uLi9Eb2MnKQogICAgIGRvY2RpciA9IG9zLnBhdGguam9pbihyb290RGlyLCAncHlkb2NzJykKQEAgLTc1Nyw3ICs3OTQsNyBAQAogCiAKIGRlZiBidWlsZFB5dGhvbigpOgotICAgIHByaW50ICJCdWlsZGluZyBhIHVuaXZlcnNhbCBweXRob24gZm9yICVzIGFyY2hpdGVjdHVyZXMiICUgVU5JVkVSU0FMQVJDSFMKKyAgICBwcmludCgiQnVpbGRpbmcgYSB1bml2ZXJzYWwgcHl0aG9uIGZvciAlcyBhcmNoaXRlY3R1cmVzIiAlIFVOSVZFUlNBTEFSQ0hTKQogCiAgICAgYnVpbGREaXIgPSBvcy5wYXRoLmpvaW4oV09SS0RJUiwgJ19ibGQnLCAncHl0aG9uJykKICAgICByb290RGlyID0gb3MucGF0aC5qb2luKFdPUktESVIsICdfcm9vdCcpCkBAIC03ODUsNyArODIyLDcgQEAKICAgICAjIHdpbGwgZmluZCB0aGVtIGR1cmluZyBpdHMgZXh0ZW5zaW9uIGltcG9ydCBzYW5pdHkgY2hlY2tzLgogICAgIG9zLmVudmlyb25bJ0RZTERfTElCUkFSWV9QQVRIJ10gPSBvcy5wYXRoLmpvaW4oV09SS0RJUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGlicmFyaWVzJywgJ3VzcicsICdsb2NhbCcsICdsaWInKQotICAgIHByaW50ICJSdW5uaW5nIGNvbmZpZ3VyZS4uLiIKKyAgICBwcmludCgiUnVubmluZyBjb25maWd1cmUuLi4iKQogICAgIHJ1bkNvbW1hbmQoIiVzIC1DIC0tZW5hYmxlLWZyYW1ld29yayAtLWVuYWJsZS11bml2ZXJzYWxzZGs9JXMgIgogICAgICAgICAgICAgICAgIi0td2l0aC11bml2ZXJzYWwtYXJjaHM9JXMgIgogICAgICAgICAgICAgICAgIiVzICIKQEAgLTc5NywxOSArODM0LDE5IEBACiAgICAgICAgIHNoZWxsUXVvdGUoV09SS0RJUilbMTotMV0sCiAgICAgICAgIHNoZWxsUXVvdGUoV09SS0RJUilbMTotMV0pKQogCi0gICAgcHJpbnQgIlJ1bm5pbmcgbWFrZSIKKyAgICBwcmludCgiUnVubmluZyBtYWtlIikKICAgICBydW5Db21tYW5kKCJtYWtlIikKIAotICAgIHByaW50ICJSdW5uaW5nIG1ha2UgaW5zdGFsbCIKKyAgICBwcmludCgiUnVubmluZyBtYWtlIGluc3RhbGwiKQogICAgIHJ1bkNvbW1hbmQoIm1ha2UgaW5zdGFsbCBERVNURElSPSVzIiUoCiAgICAgICAgIHNoZWxsUXVvdGUocm9vdERpcikpKQogCi0gICAgcHJpbnQgIlJ1bm5pbmcgbWFrZSBmcmFtZXdvcmtpbnN0YWxsZXh0cmFzIgorICAgIHByaW50KCJSdW5uaW5nIG1ha2UgZnJhbWV3b3JraW5zdGFsbGV4dHJhcyIpCiAgICAgcnVuQ29tbWFuZCgibWFrZSBmcmFtZXdvcmtpbnN0YWxsZXh0cmFzIERFU1RESVI9JXMiJSgKICAgICAgICAgc2hlbGxRdW90ZShyb290RGlyKSkpCiAKICAgICBkZWwgb3MuZW52aXJvblsnRFlMRF9MSUJSQVJZX1BBVEgnXQotICAgIHByaW50ICJDb3B5aW5nIHJlcXVpcmVkIHNoYXJlZCBsaWJyYXJpZXMiCisgICAgcHJpbnQoIkNvcHlpbmcgcmVxdWlyZWQgc2hhcmVkIGxpYnJhcmllcyIpCiAgICAgaWYgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKFdPUktESVIsICdsaWJyYXJpZXMnLCAnTGlicmFyeScpKToKICAgICAgICAgcnVuQ29tbWFuZCgibXYgJXMvKiAlcyIlKAogICAgICAgICAgICAgc2hlbGxRdW90ZShvcy5wYXRoLmpvaW4oCkBAIC04MjAsMTMgKzg1NywxMyBAQAogICAgICAgICAgICAgICAgICdQeXRob24uZnJhbWV3b3JrJywgJ1ZlcnNpb25zJywgZ2V0VmVyc2lvbigpLAogICAgICAgICAgICAgICAgICdsaWInKSkpKQogCi0gICAgcHJpbnQgIkZpeCBmaWxlIG1vZGVzIgorICAgIHByaW50KCJGaXggZmlsZSBtb2RlcyIpCiAgICAgZnJtRGlyID0gb3MucGF0aC5qb2luKHJvb3REaXIsICdMaWJyYXJ5JywgJ0ZyYW1ld29ya3MnLCAnUHl0aG9uLmZyYW1ld29yaycpCiAgICAgZ2lkID0gZ3JwLmdldGdybmFtKCdhZG1pbicpLmdyX2dpZAogCiAgICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gb3Mud2Fsayhmcm1EaXIpOgogICAgICAgICBmb3IgZG4gaW4gZGlybmFtZXM6Ci0gICAgICAgICAgICBvcy5jaG1vZChvcy5wYXRoLmpvaW4oZGlycGF0aCwgZG4pLCAwNzc1KQorICAgICAgICAgICAgb3MuY2htb2Qob3MucGF0aC5qb2luKGRpcnBhdGgsIGRuKSwgU1RBVF8wbzc3NSkKICAgICAgICAgICAgIG9zLmNob3duKG9zLnBhdGguam9pbihkaXJwYXRoLCBkbiksIC0xLCBnaWQpCiAKIApAQCAtOTA3LDE3ICs5NDQsMTcgQEAKIAogICAgICMgVGhpcyBvbmUgaXMgbm90IGhhbmR5IGFzIGEgdGVtcGxhdGUgdmFyaWFibGUKICAgICBkYXRhID0gZGF0YS5yZXBsYWNlKCckUFlUSE9ORlJBTUVXT1JLSU5TVEFMTERJUicsICcvTGlicmFyeS9GcmFtZXdvcmtzL1B5dGhvbi5mcmFtZXdvcmsnKQotICAgIGZwID0gb3BlbihvdXRQYXRoLCAnd2InKQorICAgIGZwID0gb3BlbihvdXRQYXRoLCAndycpCiAgICAgZnAud3JpdGUoZGF0YSkKICAgICBmcC5jbG9zZSgpCiAKIGRlZiBwYXRjaFNjcmlwdChpblBhdGgsIG91dFBhdGgpOgogICAgIGRhdGEgPSBmaWxlQ29udGVudHMoaW5QYXRoKQogICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoJ0BQWVZFUkAnLCBnZXRWZXJzaW9uKCkpCi0gICAgZnAgPSBvcGVuKG91dFBhdGgsICd3YicpCisgICAgZnAgPSBvcGVuKG91dFBhdGgsICd3JykKICAgICBmcC53cml0ZShkYXRhKQogICAgIGZwLmNsb3NlKCkKLSAgICBvcy5jaG1vZChvdXRQYXRoLCAwNzU1KQorICAgIG9zLmNobW9kKG91dFBhdGgsIFNUQVRfMG83NTUpCiAKIAogCkBAIC05MzQsNyArOTcxLDcgQEAKICAgICAgICAgcmVhZG1lID0gdGV4dHdyYXAuZGVkZW50KHJlY2lwZVsncmVhZG1lJ10pCiAgICAgICAgIGlzUmVxdWlyZWQgPSByZWNpcGUuZ2V0KCdyZXF1aXJlZCcsIFRydWUpCiAKLSAgICAgICAgcHJpbnQgIi0gYnVpbGRpbmcgcGFja2FnZSAlcyIlKHBrZ25hbWUsKQorICAgICAgICBwcmludCgiLSBidWlsZGluZyBwYWNrYWdlICVzIiUocGtnbmFtZSwpKQogCiAgICAgICAgICMgU3Vic3RpdHV0ZSBzb21lIHZhcmlhYmxlcwogICAgICAgICB0ZXh0dmFycyA9IGRpY3QoCkBAIC05NzksNyArMTAxNiw3IEBACiAgICAgICAgICAgICBwYXRjaFNjcmlwdChwb3N0ZmxpZ2h0LCBvcy5wYXRoLmpvaW4ocnNyY0RpciwgJ3Bvc3RmbGlnaHQnKSkKIAogICAgICAgICB2ZXJzID0gZ2V0RnVsbFZlcnNpb24oKQotICAgICAgICBtYWpvciwgbWlub3IgPSBtYXAoaW50LCBnZXRWZXJzaW9uKCkuc3BsaXQoJy4nLCAyKSkKKyAgICAgICAgbWFqb3IsIG1pbm9yID0gZ2V0VmVyc2lvbk1ham9yTWlub3IoKQogICAgICAgICBwbCA9IFBsaXN0KAogICAgICAgICAgICAgICAgIENGQnVuZGxlR2V0SW5mb1N0cmluZz0iUHl0aG9uLiVzICVzIiUocGtnbmFtZSwgdmVycywpLAogICAgICAgICAgICAgICAgIENGQnVuZGxlSWRlbnRpZmllcj0nb3JnLnB5dGhvbi5QeXRob24uJXMnJShwa2duYW1lLCksCkBAIC0xMDE2LDcgKzEwNTMsNyBAQAogZGVmIG1ha2VNcGtnUGxpc3QocGF0aCk6CiAKICAgICB2ZXJzID0gZ2V0RnVsbFZlcnNpb24oKQotICAgIG1ham9yLCBtaW5vciA9IG1hcChpbnQsIGdldFZlcnNpb24oKS5zcGxpdCgnLicsIDIpKQorICAgIG1ham9yLCBtaW5vciA9IGdldFZlcnNpb25NYWpvck1pbm9yKCkKIAogICAgIHBsID0gUGxpc3QoCiAgICAgICAgICAgICBDRkJ1bmRsZUdldEluZm9TdHJpbmc9IlB5dGhvbiAlcyIlKHZlcnMsKSwKQEAgLTExOTgsNyArMTIzNSw3IEBACiAKICAgICBmb2xkZXIgPSBvcy5wYXRoLmpvaW4oV09SS0RJUiwgIl9yb290IiwgIkFwcGxpY2F0aW9ucyIsICJQeXRob24gJXMiJSgKICAgICAgICAgZ2V0VmVyc2lvbigpLCkpCi0gICAgb3MuY2htb2QoZm9sZGVyLCAwNzU1KQorICAgIG9zLmNobW9kKGZvbGRlciwgU1RBVF8wbzc1NSkKICAgICBzZXRJY29uKGZvbGRlciwgIi4uL0ljb25zL1B5dGhvbiBGb2xkZXIuaWNucyIpCiAKICAgICAjIENyZWF0ZSB0aGUgaW5zdGFsbGVyCkBAIC0xMjExLDkgKzEyNDgsOSBAQAogICAgIHNodXRpbC5jb3B5KCcuLi8uLi9MSUNFTlNFJywgb3MucGF0aC5qb2luKFdPUktESVIsICdpbnN0YWxsZXInLCAnTGljZW5zZS50eHQnKSkKIAogICAgIGZwID0gb3Blbihvcy5wYXRoLmpvaW4oV09SS0RJUiwgJ2luc3RhbGxlcicsICdCdWlsZC50eHQnKSwgJ3cnKQotICAgIHByaW50ID4+IGZwLCAiIyBCVUlMRCBJTkZPIgotICAgIHByaW50ID4+IGZwLCAiIyBEYXRlOiIsIHRpbWUuY3RpbWUoKQotICAgIHByaW50ID4+IGZwLCAiIyBCeToiLCBwd2QuZ2V0cHd1aWQob3MuZ2V0dWlkKCkpLnB3X2dlY29zCisgICAgZnAud3JpdGUoIiMgQlVJTEQgSU5GT1xuIikKKyAgICBmcC53cml0ZSgiIyBEYXRlOiAlc1xuIiAlIHRpbWUuY3RpbWUoKSkKKyAgICBmcC53cml0ZSgiIyBCeTogJXNcbiIgJSBwd2QuZ2V0cHd1aWQob3MuZ2V0dWlkKCkpLnB3X2dlY29zKQogICAgIGZwLmNsb3NlKCkKIAogICAgICMgQW5kIGNvcHkgaXQgdG8gYSBETUcKZGlmZiAtLWdpdCBhL01hYy9CdWlsZFNjcmlwdC9zY3JpcHRzL3Bvc3RmbGlnaHQuZG9jdW1lbnRhdGlvbiBiL01hYy9CdWlsZFNjcmlwdC9zY3JpcHRzL3Bvc3RmbGlnaHQuZG9jdW1lbnRhdGlvbgppbmRleCAzMWZiZjJmLi5jNGJhNjE2IDEwMDc1NQotLS0gYS9NYWMvQnVpbGRTY3JpcHQvc2NyaXB0cy9wb3N0ZmxpZ2h0LmRvY3VtZW50YXRpb24KKysrIGIvTWFjL0J1aWxkU2NyaXB0L3NjcmlwdHMvcG9zdGZsaWdodC5kb2N1bWVudGF0aW9uCkBAIC01LDE5ICs1LDEwIEBACiBGV0tfRE9DRElSX1NVQlBBVEg9IlJlc291cmNlcy9FbmdsaXNoLmxwcm9qL0RvY3VtZW50YXRpb24iCiBGV0tfRE9DRElSPSIke0ZXS30vJHtGV0tfRE9DRElSX1NVQlBBVEh9IgogQVBQRElSPSIvQXBwbGljYXRpb25zL1B5dGhvbiAke1BZVkVSfSIKLURFVl9ET0NESVI9Ii9EZXZlbG9wZXIvRG9jdW1lbnRhdGlvbiIKIFNIQVJFX0RJUj0iJHtGV0t9L3NoYXJlIgogU0hBUkVfRE9DRElSPSIke1NIQVJFX0RJUn0vZG9jL3B5dGhvbiR7UFlWRVJ9IgogU0hBUkVfRE9DRElSX1RPX0ZXSz0iLi4vLi4vLi4iCiAKLSMgbWFrZSBsaW5rIGluIC9EZXZlbG9wZXIvRG9jdW1lbnRhdGlvbi8gZm9yIFhjb2RlIHVzZXJzCi1pZiBbIC1kICIke0RFVl9ET0NESVJ9IiBdOyB0aGVuCi0gICAgaWYgWyAhIC1kICIke0RFVl9ET0NESVJ9L1B5dGhvbiIgXTsgdGhlbgotICAgICAgICBta2RpciAtcCAiJHtERVZfRE9DRElSfS9QeXRob24iCi0gICAgZmkKLSAgICBsbiAtZmhzICIke0ZXS19ET0NESVJ9IiAiJHtERVZfRE9DRElSfS9QeXRob24vUmVmZXJlbmNlIERvY3VtZW50YXRpb24gJHtQWVZFUn0iCi1maQotCiAjIG1ha2UgbGluayBpbiAvQXBwbGljYXRpb25zL1B5dGhvbiBtLm4vIGZvciBGaW5kZXIgdXNlcnMKIGlmIFsgLWQgIiR7QVBQRElSfSIgXTsgdGhlbgogICAgIGxuIC1maHMgIiR7RldLX0RPQ0RJUn0vaW5kZXguaHRtbCIgIiR7QVBQRElSfS9QeXRob24gRG9jdW1lbnRhdGlvbi5odG1sIgpkaWZmIC0tZ2l0IGEvTWFjL0J1aWxkU2NyaXB0L3NjcmlwdHMvcG9zdGZsaWdodC5mcmFtZXdvcmsgYi9NYWMvQnVpbGRTY3JpcHQvc2NyaXB0cy9wb3N0ZmxpZ2h0LmZyYW1ld29yawppbmRleCA5ZmM5MTUxLi5lYjA4Mjk3IDEwMDc1NQotLS0gYS9NYWMvQnVpbGRTY3JpcHQvc2NyaXB0cy9wb3N0ZmxpZ2h0LmZyYW1ld29yaworKysgYi9NYWMvQnVpbGRTY3JpcHQvc2NyaXB0cy9wb3N0ZmxpZ2h0LmZyYW1ld29yawpAQCAtOCwxNCArOCwyNCBAQAogCiAiJHtGV0t9L2Jpbi9weXRob25AUFlWRVJAIiAtV2kgXAogICAgICIke0ZXS30vbGliL3B5dGhvbiR7UFlWRVJ9L2NvbXBpbGVhbGwucHkiIFwKLSAgICAteCBiYWRzeW50YXggLXggc2l0ZS1wYWNrYWdlcyBcCisgICAgLWYgLXggJ2JhZF9jb2Rpbmd8YmFkc3ludGF4fHNpdGUtcGFja2FnZXN8bGliMnRvMy90ZXN0cy9kYXRhJyBcCiAgICAgIiR7RldLfS9saWIvcHl0aG9uJHtQWVZFUn0iCiAKICIke0ZXS30vYmluL3B5dGhvbkBQWVZFUkAiIC1XaSAtTyBcCiAgICAgIiR7RldLfS9saWIvcHl0aG9uJHtQWVZFUn0vY29tcGlsZWFsbC5weSIgXAotICAgIC14IGJhZHN5bnRheCAteCBzaXRlLXBhY2thZ2VzIFwKKyAgICAtZiAteCAnYmFkX2NvZGluZ3xiYWRzeW50YXh8c2l0ZS1wYWNrYWdlc3xsaWIydG8zL3Rlc3RzL2RhdGEnIFwKICAgICAiJHtGV0t9L2xpYi9weXRob24ke1BZVkVSfSIKIAorIiR7RldLfS9iaW4vcHl0aG9uQFBZVkVSQCIgLVdpIFwKKyAgICAiJHtGV0t9L2xpYi9weXRob24ke1BZVkVSfS9jb21waWxlYWxsLnB5IiBcCisgICAgLWYgLXggYmFkc3ludGF4IFwKKyAgICAiJHtGV0t9L2xpYi9weXRob24ke1BZVkVSfS9zaXRlLXBhY2thZ2VzIgorCisiJHtGV0t9L2Jpbi9weXRob25AUFlWRVJAIiAtV2kgLU8gXAorICAgICIke0ZXS30vbGliL3B5dGhvbiR7UFlWRVJ9L2NvbXBpbGVhbGwucHkiIFwKKyAgICAtZiAteCBiYWRzeW50YXggXAorICAgICIke0ZXS30vbGliL3B5dGhvbiR7UFlWRVJ9L3NpdGUtcGFja2FnZXMiCisKIGNoZ3JwIC1SIGFkbWluICIke0ZXS30iCiBjaG1vZCAtUiBnK3cgIiR7RldLfSIKIApkaWZmIC0tZ2l0IGEvTWFjL01ha2VmaWxlLmluIGIvTWFjL01ha2VmaWxlLmluCmluZGV4IDhhNjJhOTAuLjM4ZWFhMTUgMTAwNjQ0Ci0tLSBhL01hYy9NYWtlZmlsZS5pbgorKysgYi9NYWMvTWFrZWZpbGUuaW4KQEAgLTQzLDExICs0MywxMCBAQAogQ1BNQUM9L0RldmVsb3Blci9Ub29scy9DcE1hYwogCiBBUFBURU1QTEFURT0kKHNyY2RpcikvUmVzb3VyY2VzL2FwcAotQVBQU1VCRElSUz1NYWNPUyBSZXNvdXJjZXMgCitBUFBTVUJESVJTPU1hY09TIFJlc291cmNlcwogY29tcGlsZWFsbD0kKHNyY2RpcikvLi4vTGliL2NvbXBpbGVhbGwucHkKIAotaW5zdGFsbGFwcHM6IGluc3RhbGxfUHl0aG9uIGluc3RhbGxfcHl0aG9udyBpbnN0YWxsX1B5dGhvbkxhdW5jaGVyIGluc3RhbGxfSURMRSBcCi0JY2hlY2thcHBsZXB5dGhvbgoraW5zdGFsbGFwcHM6IGluc3RhbGxfUHl0aG9uIGluc3RhbGxfcHl0aG9udyBpbnN0YWxsX1B5dGhvbkxhdW5jaGVyIGluc3RhbGxfSURMRQogCiBpbnN0YWxsX3B5dGhvbnc6IHB5dGhvbncKIAkkKElOU1RBTExfUFJPR1JBTSkgJChTVFJJUEZMQUcpIHB5dGhvbncgIiQoREVTVERJUikkKHByZWZpeCkvYmluL3B5dGhvbnckKFZFUlNJT04pIgpAQCAtNzIsNyArNzEsNyBAQAogCWZvciBmbiBpbiBweXRob24zIHB5dGhvbnczIGlkbGUzIHB5ZG9jMyBweXRob24zLWNvbmZpZyBcCiAJCSAgcHl0aG9uJChWRVJTSU9OKSBweXRob253JChWRVJTSU9OKSBpZGxlJChWRVJTSU9OKSBcCiAJCSAgcHlkb2MkKFZFUlNJT04pIHB5dGhvbiQoVkVSU0lPTiktY29uZmlnIDJ0bzMgXAotCQkgIDJ0bzMtJChWRVJTSU9OKSA7XAorCQkgIDJ0bzMtJChWRVJTSU9OKSBweXZlbnYgcHl2ZW52LSQoVkVSU0lPTikgO1wKIAlkbyBcCiAJCWxuIC1mcyAiJChwcmVmaXgpL2Jpbi8kJHtmbn0iICIkKERFU1RESVIpJChGUkFNRVdPUktVTklYVE9PTFNQUkVGSVgpL2Jpbi8kJHtmbn0iIDtcCiAJZG9uZQpAQCAtOTMsNyArOTIsNyBAQAogCQkkKElOU1RBTEwpIC1kIC1tICQoRElSTU9ERSkgIiQoREVTVERJUikkKEZSQU1FV09SS1VOSVhUT09MU1BSRUZJWCkvYmluIiA7XAogCWZpCiAJZm9yIGZuIGluIHB5dGhvbiQoVkVSU0lPTikgcHl0aG9udyQoVkVSU0lPTikgaWRsZSQoVkVSU0lPTikgXAotCQkgIHB5ZG9jJChWRVJTSU9OKSBweXRob24kKFZFUlNJT04pLWNvbmZpZyAydG8zLSQoVkVSU0lPTik7XAorCQkgIHB5ZG9jJChWRVJTSU9OKSBweXRob24kKFZFUlNJT04pLWNvbmZpZyAydG8zLSQoVkVSU0lPTikgcHl2ZW52LSQoVkVSU0lPTikgO1wKIAlkbyBcCiAJCWxuIC1mcyAiJChwcmVmaXgpL2Jpbi8kJHtmbn0iICIkKERFU1RESVIpJChGUkFNRVdPUktVTklYVE9PTFNQUkVGSVgpL2Jpbi8kJHtmbn0iIDtcCiAJZG9uZQpAQCAtMTk2LDE0ICsxOTUsNiBAQAogCQkiJChERVNURElSKSQocHJlZml4KS9zaGFyZS9kb2MvcHl0aG9uJChWRVJTSU9OKS9leGFtcGxlcy9Ub29scyIgOyBcCiAJCWNobW9kIC1SIHVnbytyWCxnby13ICIkKERFU1RESVIpJChwcmVmaXgpL3NoYXJlL2RvYy9weXRob24kKFZFUlNJT04pL2V4YW1wbGVzL1Rvb2xzIgogCi0KLWNoZWNrYXBwbGVweXRob246ICQoc3JjZGlyKS9Ub29scy9maXhhcHBsZXB5dGhvbjIzLnB5Ci0JQGlmICEgJChSVU5TSEFSRUQpICQoQlVJTERQWVRIT04pICQoc3JjZGlyKS9Ub29scy9maXhhcHBsZXB5dGhvbjIzLnB5IC1uOyB0aGVuIFwKLQkJZWNobyAiKiBXQVJOSU5HOiBBcHBsZS1pbnN0YWxsZWQgUHl0aG9uIDIuMyB3aWxsIGhhdmUgdHJvdWJsZSBidWlsZGluZyBleHRlbnNpb25zIGZyb20gbm93IG9uLiI7IFwKLQkJZWNobyAiKiBXQVJOSU5HOiBSdW4gJChzcmNkaXIpL1Rvb2xzL2ZpeGFwcGxlcHl0aG9uMjMucHkgd2l0aCBcInN1ZG9cIiB0byBmaXggdGhpcy4iOyBcCi0JZmkKLQotCiBjbGVhbjoKIAlybSBweXRob253CiAJY2QgUHl0aG9uTGF1bmNoZXIgJiYgbWFrZSBjbGVhbgpkaWZmIC0tZ2l0IGEvTWFjL1JFQURNRSBiL01hYy9SRUFETUUKaW5kZXggNjg1M2RiNC4uZThjNmRhOCAxMDA2NDQKLS0tIGEvTWFjL1JFQURNRQorKysgYi9NYWMvUkVBRE1FCkBAIC0xLDYgKzEsMTMgQEAKLT09PT09PT09PT09PQotTWFjT1NYIE5vdGVzCi09PT09PT09PT09PT0KKz09PT09PT09PT09PT09PT09PT09PT09PT0KK1B5dGhvbiBvbiBNYWMgT1MgWCBSRUFETUUKKz09PT09PT09PT09PT09PT09PT09PT09PT0KKworOkF1dGhvcnM6CisgICAgSmFjayBKYW5zZW4gKDIwMDQtMDcpLAorICAgIFJvbmFsZCBPdXNzb3JlbiAoMjAxMC0wNCksCisgICAgTmVkIERlaWx5ICgyMDEyLTA2KQorCis6VmVyc2lvbjogMy4zLjAKIAogVGhpcyBkb2N1bWVudCBwcm92aWRlcyBhIHF1aWNrIG92ZXJ2aWV3IG9mIHNvbWUgTWFjIE9TIFggc3BlY2lmaWMgZmVhdHVyZXMgaW4KIHRoZSBQeXRob24gZGlzdHJpYnV0aW9uLgpAQCAtMTIsMTEgKzE5LDExIEBACiAgIF9gQnVpbGRpbmcgYW5kIHVzaW5nIGEgZnJhbWV3b3JrLWJhc2VkIFB5dGhvbiBvbiBNYWMgT1MgWGAgZm9yIG1vcmUgCiAgIGluZm9ybWF0aW9uIG9uIGZyYW1ld29ya3MuCiAKLSAgSWYgdGhlIG9wdGlvbmFsIGRpcmVjdG9yeSBhcmd1bWVudCBpcyBzcGVjaWZpZWQgdGhlIGZyYW1ld29yayBpdCBpbnN0YWxsZWQKKyAgSWYgdGhlIG9wdGlvbmFsIGRpcmVjdG9yeSBhcmd1bWVudCBpcyBzcGVjaWZpZWQgdGhlIGZyYW1ld29yayBpcyBpbnN0YWxsZWQKICAgaW50byB0aGF0IGRpcmVjdG9yeS4gVGhpcyBjYW4gYmUgdXNlZCB0byBpbnN0YWxsIGEgcHl0aG9uIGZyYW1ld29yayBpbnRvCiAgIHlvdXIgaG9tZSBkaXJlY3Rvcnk6OgogCi0gICAgICQgY29uZmlndXJlIC0tZW5hYmxlLWZyYW1ld29yaz0vVXNlcnMvcm9uYWxkL0xpYnJhcnkvRnJhbWV3b3JrcworICAgICAkIC4vY29uZmlndXJlIC0tZW5hYmxlLWZyYW1ld29yaz0vVXNlcnMvcm9uYWxkL0xpYnJhcnkvRnJhbWV3b3JrcwogICAgICAkIG1ha2UgJiYgbWFrZSBpbnN0YWxsCiAKICAgVGhpcyB3aWxsIGluc3RhbGwgdGhlIGZyYW1ld29yayBpdHNlbGYgaW4gYGAvVXNlcnMvcm9uYWxkL0xpYnJhcnkvRnJhbWV3b3Jrc2BgLApAQCAtMzMsOSArNDAsMTAgQEAKICAgQ3JlYXRlIGEgdW5pdmVyc2FsIGJpbmFyeSBidWlsZCBvZiBvZiBQeXRob24uIFRoaXMgY2FuIGJlIHVzZWQgd2l0aCBib3RoCiAgIHJlZ3VsYXIgYW5kIGZyYW1ld29yayBidWlsZHMuCiAKLSAgVGhlIG9wdGlvbmFsIGFyZ3VtZW50IHNwZWNpZmllcyB3aGljaCBPU1ggU0RLIHNob3VsZCBiZSB1c2VkIHRvIHBlcmZvcm0gdGhlCi0gIGJ1aWxkLiBUaGlzIGRlZmF1bHRzIHRvIGBgL0RldmVsb3Blci9TREtzL01hY09TWC4xMC40dS5zZGtgYCwgc3BlY2lmeSAKLSAgYGAvYGAgd2hlbiBidWlsZGluZyBvbiBhIDEwLjUgc3lzdGVtLCBlc3BlY2lhbGx5IHdoZW4gYnVpbGRpbmcgNjQtYml0IGNvZGUuCisgIFRoZSBvcHRpb25hbCBhcmd1bWVudCBzcGVjaWZpZXMgd2hpY2ggT1MgWCBTREsgc2hvdWxkIGJlIHVzZWQgdG8gcGVyZm9ybSB0aGUKKyAgYnVpbGQuICBJZiB4Y29kZWJ1aWxkIGlzIGF2YWlsYWJsZSBhbmQgY29uZmlndXJlZCwgdGhpcyBkZWZhdWx0cyB0bworICB0aGUgWGNvZGUgZGVmYXVsdCBNYWNPUyBYIFNESywgb3RoZXJ3aXNlIGBgL0RldmVsb3Blci9TREtzL01hY09TWC4xMC40dS5zZGtgYAorICBpZiBhdmFpbGFibGUgb3IgYGAvYGAgaWYgbm90LgogCiAgIFNlZSB0aGUgc2VjdGlvbiBfYEJ1aWxkaW5nIGFuZCB1c2luZyBhIHVuaXZlcnNhbCBiaW5hcnkgb2YgUHl0aG9uIG9uIE1hYyBPUyBYYAogICBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KQEAgLTQzLDcgKzUxLDkgQEAKICogYGAtLXdpdGgtdW5pdmVyYWwtYXJjaHM9VkFMVUVgYAogCiAgIFNwZWNpZnkgdGhlIGtpbmQgb2YgdW5pdmVyc2FsIGJpbmFyeSB0aGF0IHNob3VsZCBiZSBjcmVhdGVkLiBUaGlzIG9wdGlvbiBpcyAKLSAgb25seSB2YWxpZCB3aGVuIGBgLS1lbmFibGUtdW5pdmVyc2Fsc2RrYGAgaXMgc3BlY2lmaWVkLgorICBvbmx5IHZhbGlkIHdoZW4gYGAtLWVuYWJsZS11bml2ZXJzYWxzZGtgYCBpcyBzcGVjaWZpZWQuICBUaGUgZGVmYXVsdCBpcworICBgYDMyLWJpdGBgIGlmIGEgYnVpbGRpbmcgd2l0aCBhIFNESyB0aGF0IHN1cHBvcnRzIFBQQywgb3RoZXJ3aXNlIGRlZmF1bHRzCisgIHRvIGBgaW50ZWxgYC4KIAogCiBCdWlsZGluZyBhbmQgdXNpbmcgYSB1bml2ZXJzYWwgYmluYXJ5IG9mIFB5dGhvbiBvbiBNYWMgT1MgWApAQCAtNTIsOSArNjIsMTQgQEAKIDEuIFdoYXQgaXMgYSB1bml2ZXJzYWwgYmluYXJ5CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1BIHVuaXZlcnNhbCBiaW5hcnkgYnVpbGQgb2YgUHl0aG9uIGNvbnRhaW5zIG9iamVjdCBjb2RlIGZvciBib3RoIFBQQyBhbmQgaTM4NgotYW5kIGNhbiB0aGVyZWZvcmUgcnVuIGF0IG5hdGl2ZSBzcGVlZCBvbiBib3RoIGNsYXNzaWMgcG93ZXJwYyBiYXNlZCBtYWNzIGFuZAotdGhlIG5ld2VyIGludGVsIGJhc2VkIG1hY3MuCitBIHVuaXZlcnNhbCBiaW5hcnkgYnVpbGQgb2YgUHl0aG9uIGNvbnRhaW5zIG9iamVjdCBjb2RlIGZvciBtb3JlIHRoYW4gb25lCitDUFUgYXJjaGl0ZWN0dXJlLiAgQSB1bml2ZXJzYWwgT1MgWCBleGVjdXRhYmxlIGZpbGUgb3IgbGlicmFyeSBjb21iaW5lcyB0aGUKK2FyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb2RlIGludG8gb25lIGZpbGUgYW5kIGNhbiB0aGVyZWZvcmUgcnVuIGF0IG5hdGl2ZQorc3BlZWQgb24gYWxsIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLiAgVW5pdmVyc2FsIGZpbGVzIHdlcmUgaW50cm9kdWNlZCBpbgorT1MgWCAxMC40IHRvIGFkZCBzdXBwb3J0IGZvciBJbnRlbC1iYXNlZCBNYWNzIHRvIHRoZSBleGlzdGluZyBQb3dlclBDIChQUEMpCittYWNoaW5lcy4gIEluIE9TIFggMTAuNSBzdXBwb3J0IHdhcyBleHRlbmRlZCB0byA2NC1iaXQgSW50ZWwgYW5kIDY0LWJpdCBQUEMKK2FyY2hpdGVjdHVyZXMuICBJdCBpcyBwb3NzaWJsZSB0byBidWlsZCBQeXRob24gd2l0aCB2YXJpb3VzIGNvbWJpbmF0aW9ucworb2YgYXJjaGl0ZWN0dXJlcyBkZXBlbmRpbmcgb24gdGhlIGJ1aWxkIHRvb2xzIGFuZCBPUyBYIHZlcnNpb24gaW4gdXNlLgogCiAyLiBIb3cgZG8gSSBidWlsZCBhIHVuaXZlcnNhbCBiaW5hcnkKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNjcsMzUgKzgyLDUyIEBACiAgICQgbWFrZSBpbnN0YWxsCiAKIFRoaXMgZmxhZyBjYW4gYmUgdXNlZCB3aXRoIGEgZnJhbWV3b3JrIGJ1aWxkIG9mIHB5dGhvbiwgYnV0IGFsc28gd2l0aCBhIGNsYXNzaWMKLXVuaXggYnVpbGQuIEVpdGhlciB3YXkgeW91IHdpbGwgaGF2ZSB0byBidWlsZCBweXRob24gb24gTWFjIE9TIFggMTAuNCAob3IgbGF0ZXIpCi13aXRoIFhjb2RlIDIuMSAob3IgbGF0ZXIpLiBZb3UgYWxzbyBoYXZlIHRvIGluc3RhbGwgdGhlIDEwLjR1IFNESyB3aGVuIAotaW5zdGFsbGluZyBYY29kZS4KK3VuaXggYnVpbGQuIFVuaXZlcnNhbCBidWlsZHMgd2VyZSBmaXJzdCBzdXBwb3J0ZWQgd2l0aCBPUyBYIDEwLjQgd2l0aCBYY29kZSAyLjEKK2FuZCB0aGUgMTAuNHUgU0RLLiAgU3RhcnRpbmcgd2l0aCBYY29kZSAzIGFuZCBPUyBYIDEwLjUsIG1vcmUgY29uZmlndXJhdGlvbnMgYXJlCithdmFpbGFibGUuCiAKLTIuMSBGbGF2b3VycyBvZiB1bml2ZXJzYWwgYmluYXJpZXMKLS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KKzIuMSBGbGF2b3JzIG9mIHVuaXZlcnNhbCBiaW5hcmllcworLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uCiAKLUl0IGlzIHBvc3NpYmxlIHRvIGJ1aWxkIGEgbnVtYmVyIG9mIGZsYXZvdXJzIG9mIHRoZSB1bml2ZXJzYWwgYmluYXJ5IGJ1aWxkLAotdGhlIGRlZmF1bHQgaXMgYSAzMi1iaXQgb25seSBiaW5hcnkgKGkzODYgYW5kIHBwYykuIFRoZSBmbGF2b3VyIGNhbiBiZQotc3BlY2lmaWVkIHVzaW5nIHRoZSBvcHRpb24gYGAtLXdpdGgtdW5pdmVyc2FsLWFyY2hzPVZBTFVFYGAuIFRoZSBmb2xsb3dpbmcKK0l0IGlzIHBvc3NpYmxlIHRvIGJ1aWxkIGEgbnVtYmVyIG9mIGZsYXZvcnMgb2YgdGhlIHVuaXZlcnNhbCBiaW5hcnkgYnVpbGQsCit0aGUgZGVmYXVsdCBpcyBhIDMyLWJpdCBvbmx5IGJpbmFyeSAoaTM4NiBhbmQgcHBjKSBpbiBidWlsZCBlbnZpcm9ubWVudHMgdGhhdAorc3VwcG9ydCBwcGMgKDEwLjQgd2l0aCBYY29kZSAyLCAxMC41IGFuZCAxMC42IHdpdGggWGNvZGUgMykgb3IgYW4KK0ludGVsLTMyLy02NC1iaXQgYmluYXJ5IChpMzg2IGFuZCBYODZfNjQpIGluIGJ1aWxkIGVudmlyb25tZW50cyB0aGF0IGRvIG5vdAorc3VwcG9ydCBwcGMgKFhjb2RlIDQgb24gMTAuNiBhbmQgbGF0ZXIgc3lzdGVtcykuICBUaGUgZmxhdm9yIGNhbiBiZSBzcGVjaWZpZWQKK3VzaW5nIHRoZSBjb25maWd1cmUgb3B0aW9uIGBgLS13aXRoLXVuaXZlcnNhbC1hcmNocz1WQUxVRWBgLiBUaGUgZm9sbG93aW5nCiB2YWx1ZXMgYXJlIGF2YWlsYWJsZToKIAorICAqIGBgaW50ZWxgYDoJICBgYGkzODZgYCwgYGB4ODZfNjRgYAorCiAgICogYGAzMi1iaXRgYDogICBgYHBwY2BgLCBgYGkzODZgYAogCisgICogYGAzLXdheWBgOgkgIGBgaTM4NmBgLCBgYHg4Nl82NGBgLCBgYHBwY2BgCisKICAgKiBgYDY0LWJpdGBgOiAgIGBgcHBjNjRgYCwgYGB4ODZfNjRgYAogCiAgICogYGBhbGxgYDogICAgICBgYHBwY2BgLCBgYHBwYzY0YGAsIGBgaTM4NmBgLCBgYHg4Nl82NGBgCiAKLSAgKiBgYDMtd2F5YGA6CSAgYGBwcGNgYCwgYGBpMzg2YGAgYW5kIGBgeDg2XzY0YGAKLQotICAqIGBgaW50ZWxgYDoJICBgYGkzODZgYCwgYGB4ODZfNjRgYAotCiBUbyBidWlsZCBhIHVuaXZlcnNhbCBiaW5hcnkgdGhhdCBpbmNsdWRlcyBhIDY0LWJpdCBhcmNoaXRlY3R1cmUsIHlvdSBtdXN0IGJ1aWxkCi1vbiBhIHN5c3RlbSBydW5uaW5nIE9TWCAxMC41IG9yIGxhdGVyLiBUaGUgYGBhbGxgYCBmbGF2b3VyIGNhbiBvbmx5IGJlIGJ1aWx0IG9uCi1PU1ggMTAuNS4KK29uIGEgc3lzdGVtIHJ1bm5pbmcgT1MgWCAxMC41IG9yIGxhdGVyLiAgVGhlIGBgYWxsYGAgYW5kIGBgNjQtYml0YGAgZmxhdm9ycyBjYW4KK29ubHkgYmUgYnVpbHQgd2l0aCBhbiAxMC41IFNESyBiZWNhdXNlIGBgcHBjNjRgYCBzdXBwb3J0IHdhcyBvbmx5IGluY2x1ZGVkIHdpdGgKK09TIFggMTAuNS4gIEFsdGhvdWdoIGxlZ2FjeSBgYHBwY2BgIHN1cHBvcnQgd2FzIGluY2x1ZGVkIHdpdGggWGNvZGUgMyBvbiBPUyBYCisxMC42LCBpdCB3YXMgcmVtb3ZlZCBpbiBYY29kZSA0LCB2ZXJzaW9ucyBvZiB3aGljaCB3ZXJlIHJlbGVhc2VkIG9uIE9TIFggMTAuNgorYW5kIHdoaWNoIGlzIHRoZSBjdXJyZW50IHN0YW5kYXJkIGZvciBPUyBYIDEwLjcgYW5kIDEwLjguICBUbyBzdW1tYXJpemUsIHRoZQorZm9sbG93aW5nIGNvbWJpbmF0aW9ucyBvZiBTREtzIGFuZCB1bml2ZXJzYWwtYXJjaHMgZmxhdm9ycyBhcmUgYXZhaWxhYmxlOgogCi1UaGUgbWFrZWZpbGUgZm9yIGEgZnJhbWV3b3JrIGJ1aWxkIHdpbGwgaW5zdGFsbCBgYHB5dGhvbjMyYGAgYW5kIGBgcHl0aG9udzMyYGAgCi1iaW5hcmllcyB3aGVuIHRoZSB1bml2ZXJzYWwgYXJjaGl0ZWN1cmVzIGluY2x1ZGVzIGF0IGxlYXN0IG9uZSAzMi1iaXQgYXJjaGl0ZWN0dXJlCi0odGhhdCBpcywgZm9yIGFsbCBmbGF2b3VycyBidXQgYGA2NC1iaXRgYCkuCisgICogMTAuNHUgU0RLIHdpdGggWGNvZGUgMiBzdXBwb3J0cyBgYDMyLWJpdGBgIG9ubHkKKworICAqIDEwLjUgU0RLIHdpdGggWGNvZGUgMy4xLnggc3VwcG9ydHMgYWxsIGZsYXZvcnMKKworICAqIDEwLjYgU0RLIHdpdGggWGNvZGUgMy4yLnggc3VwcG9ydHMgYGBpbnRlbGBgLCBgYDMtd2F5YGAsIGFuZCBgYDMyLWJpdGBgCisKKyAgKiAxMC42IFNESyB3aXRoIFhjb2RlIDQgc3VwcG9ydHMgYGBpbnRlbGBgIG9ubHkKKworICAqIDEwLjcgYW5kIDEwLjggU0RLcyB3aXRoIFhjb2RlIDQgc3VwcG9ydCBgYGludGVsYGAgb25seQorCitUaGUgbWFrZWZpbGUgZm9yIGEgZnJhbWV3b3JrIGJ1aWxkIHdpbGwgYWxzbyBpbnN0YWxsIGBgcHl0aG9uMy4zLTMyYGAKK2JpbmFyaWVzIHdoZW4gdGhlIHVuaXZlcnNhbCBhcmNoaXRlY3R1cmUgaW5jbHVkZXMgYXQgbGVhc3Qgb25lIDMyLWJpdAorYXJjaGl0ZWN0dXJlICh0aGF0IGlzLCBmb3IgYWxsIGZsYXZvcnMgYnV0IGBgNjQtYml0YGApLgogCiBSdW5uaW5nIGEgc3BlY2lmaWMgYXJjaGljdHVyZQogLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4KQEAgLTEyMiwxNyArMTU0LDE3IEBACiAKIFRoZSBtYWluIHJlYXNvbiBpcyBiZWNhdXNlIHlvdSB3YW50IHRvIGNyZWF0ZSBHVUkgcHJvZ3JhbXMgaW4gUHl0aG9uLiBXaXRoIHRoZQogZXhjZXB0aW9uIG9mIFgxMS9YRGFyd2luLWJhc2VkIEdVSSB0b29sa2l0cyBhbGwgR1VJIHByb2dyYW1zIG5lZWQgdG8gYmUgcnVuIAotZnJvbSBhIGZ1bGxibG93biBNYWNPU1ggYXBwbGljYXRpb24gKGEgIi5hcHAiIGJ1bmRsZSkuCitmcm9tIGEgTWFjIE9TWCBhcHBsaWNhdGlvbiBidW5kbGUgKCIuYXBwIikuCiAKIFdoaWxlIGl0IGlzIHRlY2huaWNhbGx5IHBvc3NpYmxlIHRvIGNyZWF0ZSBhIC5hcHAgd2l0aG91dCB1c2luZyBmcmFtZXdvcmtzIHlvdQogd2lsbCBoYXZlIHRvIGRvIHRoZSB3b3JrIHlvdXJzZWxmIGlmIHlvdSByZWFsbHkgd2FudCB0aGlzLgogCiBBIHNlY29uZCByZWFzb24gZm9yIHVzaW5nIGZyYW1ld29ya3MgaXMgdGhhdCB0aGV5IHB1dCBQeXRob24tcmVsYXRlZCBpdGVtcyBpbgogb25seSB0d28gcGxhY2VzOiAiL0xpYnJhcnkvRnJhbWV3b3JrL1B5dGhvbi5mcmFtZXdvcmsiIGFuZCAKLSIvQXBwbGljYXRpb25zL01hY1B5dGhvbiA8VkVSU0lPTj4iIHdoZXJlIGBgPFZFUlNJT04+YGAgY2FuIGJlIGUuZy4gIjIuNiIsCi0iMy4xIiwgZXRjLi4gIFRoaXMgc2ltcGxpZmllcyBtYXR0ZXJzIGZvciB1c2VycyBpbnN0YWxsaW5nIAorIi9BcHBsaWNhdGlvbnMvUHl0aG9uIDxWRVJTSU9OPiIgd2hlcmUgYGA8VkVSU0lPTj5gYCBjYW4gYmUgZS5nLiAiMy4zIiwKKyIyLjciLCBldGMuICBUaGlzIHNpbXBsaWZpZXMgbWF0dGVycyBmb3IgdXNlcnMgaW5zdGFsbGluZwogUHl0aG9uIGZyb20gYSBiaW5hcnkgZGlzdHJpYnV0aW9uIGlmIHRoZXkgd2FudCB0byBnZXQgcmlkIG9mIGl0IGFnYWluLiBNb3Jlb3ZlciwKLWR1ZSB0byB0aGUgd2F5IGZyYW1ld29ya3Mgd29yayBhIHVzZXIgd2l0aG91dCBhZG1pbiBwcml2aWxlZ2VzIGNhbiBpbnN0YWxsIGEgCitkdWUgdG8gdGhlIHdheSBmcmFtZXdvcmtzIHdvcmssIGEgdXNlciB3aXRob3V0IGFkbWluIHByaXZpbGVnZXMgY2FuIGluc3RhbGwgYQogYmluYXJ5IGRpc3RyaWJ1dGlvbiBpbiBoaXMgb3IgaGVyIGhvbWUgZGlyZWN0b3J5IHdpdGhvdXQgcmVjb21waWxhdGlvbi4KIAogMi4gSG93IGRvZXMgYSBmcmFtZXdvcmsgUHl0aG9uIGRpZmZlciBmcm9tIGEgbm9ybWFsIHN0YXRpYyBQeXRob24/CkBAIC0xNTYsMTAgKzE4OCwxMCBAQAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBUaGlzIGRpcmVjdG9yeSBjb250YWlucyBhIE1ha2VmaWxlIHRoYXQgd2lsbCBjcmVhdGUgYSBjb3VwbGUgb2YgcHl0aG9uLXJlbGF0ZWQKLWFwcGxpY2F0aW9ucyAoZnVsbGJsb3duIE9TWCAuYXBwIGFwcGxpY2F0aW9ucywgdGhhdCBpcykgaW4KLSIvQXBwbGljYXRpb25zL01hY1B5dGhvbiA8VkVSU0lPTj4iLCBhbmQgYSBoaWRkZW4gaGVscGVyIGFwcGxpY2F0aW9uIFB5dGhvbi5hcHAgCi1pbnNpZGUgdGhlIFB5dGhvbi5mcmFtZXdvcmssIGFuZCB1bml4IHRvb2xzICJweXRob24iIGFuZCAicHl0aG9udyIgaW50byAKLS91c3IvbG9jYWwvYmluLiAgSW4gYWRkaXRpb24gaXQgaGFzIGEgdGFyZ2V0ICJpbnN0YWxsbWFjc3VidHJlZSIgdGhhdCBpbnN0YWxscyAKK2FwcGxpY2F0aW9ucyAoZnVsbC1ibG93biBPU1ggLmFwcCBhcHBsaWNhdGlvbnMsIHRoYXQgaXMpIGluCisiL0FwcGxpY2F0aW9ucy9QeXRob24gPFZFUlNJT04+IiwgYW5kIGEgaGlkZGVuIGhlbHBlciBhcHBsaWNhdGlvbiBQeXRob24uYXBwCitpbnNpZGUgdGhlIFB5dGhvbi5mcmFtZXdvcmssIGFuZCB1bml4IHRvb2xzICJweXRob24iIGFuZCAicHl0aG9udyIgaW50bworL3Vzci9sb2NhbC9iaW4uICBJbiBhZGRpdGlvbiBpdCBoYXMgYSB0YXJnZXQgImluc3RhbGxtYWNzdWJ0cmVlIiB0aGF0IGluc3RhbGxzCiB0aGUgcmVsZXZhbnQgcG9ydGlvbnMgb2YgdGhlIE1hYyBzdWJ0cmVlIGludG8gdGhlIFB5dGhvbi5mcmFtZXdvcmsuCiAKIEl0IGlzIG5vcm1hbGx5IGludm9rZWQgaW5kaXJlY3RseSB0aHJvdWdoIHRoZSBtYWluIE1ha2VmaWxlLCBhcyB0aGUgbGFzdCBzdGVwCkBAIC0xNzEsMTcgKzIwMywxNSBAQAogIAogIDMuIG1ha2UgaW5zdGFsbAogCi1UaGlzIHNlcXVlbmNlIHdpbGwgcHV0IHRoZSBmcmFtZXdvcmsgaW4gL0xpYnJhcnkvRnJhbWV3b3JrL1B5dGhvbi5mcmFtZXdvcmssCi10aGUgYXBwbGljYXRpb25zIGluICIvQXBwbGljYXRpb25zL01hY1B5dGhvbiA8VkVSU0lPTj4iIGFuZCB0aGUgdW5peCB0b29scyBpbiAKLS91c3IvbG9jYWwvYmluLgorVGhpcyBzZXF1ZW5jZSB3aWxsIHB1dCB0aGUgZnJhbWV3b3JrIGluIGBgL0xpYnJhcnkvRnJhbWV3b3JrL1B5dGhvbi5mcmFtZXdvcmtgYCwKK3RoZSBhcHBsaWNhdGlvbnMgaW4gYGAvQXBwbGljYXRpb25zL1B5dGhvbiA8VkVSU0lPTj5gYCBhbmQgdGhlIHVuaXggdG9vbHMgaW4gCitgYC91c3IvbG9jYWwvYmluYGAuCiAKLUluc3RhbGxpbmcgaW4gYW5vdGhlciBwbGFjZSwgZm9yIGluc3RhbmNlICRIT01FL0xpYnJhcnkvRnJhbWV3b3JrcyBpZiB5b3UgaGF2ZQotbm8gYWRtaW4gcHJpdmlsZWdlcyBvbiB5b3VyIG1hY2hpbmUsIGhhcyBvbmx5IGJlZW4gdGVzdGVkIHZlcnkgbGlnaHRseS4gVGhpcwotY2FuIGJlIGRvbmUgYnkgY29uZmlndXJpbmcgd2l0aCAtLWVuYWJsZS1mcmFtZXdvcms9JEhPTUUvTGlicmFyeS9GcmFtZXdvcmtzLgotVGhlIG90aGVyIHR3byBkaXJlY3RvcmllcywgIi9BcHBsaWNhdGlvbnMvTWFjUHl0aG9uLTxWRVJTSU9OPiIgYW5kCi0vdXNyL2xvY2FsL2Jpbiwgd2lsbCB0aGVuIGFsc28gYmUgZGVwb3NpdGVkIGluICRIT01FLiBUaGlzIGlzIHN1Yi1vcHRpbWFsIGZvcgotdGhlIHVuaXggdG9vbHMsIHdoaWNoIHlvdSB3b3VsZCB3YW50IGluICRIT01FL2JpbiwgYnV0IHRoZXJlIGlzIG5vIGVhc3kgd2F5IHRvCi1maXggdGhpcyByaWdodCBub3cuCitJbnN0YWxsaW5nIGluIGFub3RoZXIgcGxhY2UsIGZvciBpbnN0YW5jZSBgYCRIT01FL0xpYnJhcnkvRnJhbWV3b3Jrc2BgIGlmIHlvdQoraGF2ZSBubyBhZG1pbiBwcml2aWxlZ2VzIG9uIHlvdXIgbWFjaGluZSwgaXMgcG9zc2libGUuIFRoaXMgY2FuIGJlIGFjY29tcGxpc2hlZAorYnkgY29uZmlndXJpbmcgd2l0aCBgYC0tZW5hYmxlLWZyYW1ld29yaz0kSE9NRS9MaWJyYXJ5L0ZyYW1ld29ya3NgYC4KK1RoZSBvdGhlciB0d28gZGlyZWN0b3JpZXMgd2lsbCB0aGVuIGFsc28gYmUgaW5zdGFsbGVkIGluIHlvdXIgaG9tZSBkaXJlY3RvcnksCithdCBgYCRIT01FL0FwcGxpY2F0aW9ucy9QeXRob24tPFZFUlNJT04+YGAgYW5kIGBgJEhPTUUvYmluYGAuCiAKIElmIHlvdSB3YW50IHRvIGluc3RhbGwgc29tZSBwYXJ0LCBidXQgbm90IGFsbCwgcmVhZCB0aGUgbWFpbiBNYWtlZmlsZS4gVGhlCiBmcmFtZXdvcmtpbnN0YWxsIGlzIGNvbXBvc2VkIG9mIGEgY291cGxlIG9mIHN1Yi10YXJnZXRzIHRoYXQgaW5zdGFsbCB0aGUKQEAgLTE4OSw3ICsyMTksNyBAQAogCiBUaGVyZSBpcyBhbiBleHRyYSB0YXJnZXQgZnJhbWV3b3JraW5zdGFsbGV4dHJhcyB0aGF0IGlzIG5vdCBwYXJ0IG9mIHRoZQogbm9ybWFsIGZyYW1ld29ya2luc3RhbGwgd2hpY2ggaW5zdGFsbHMgdGhlIFRvb2xzIGRpcmVjdG9yeSBpbnRvCi0iL0FwcGxpY2F0aW9ucy9NYWNQeXRob24gPFZFUlNJT04+IiwgdGhpcyBpcyB1c2VmdWwgZm9yIGJpbmFyeQorIi9BcHBsaWNhdGlvbnMvUHl0aG9uIDxWRVJTSU9OPiIsIHRoaXMgaXMgdXNlZnVsIGZvciBiaW5hcnkKIGRpc3RyaWJ1dGlvbnMuCiAKIFdoYXQgZG8gYWxsIHRoZXNlIHByb2dyYW1zIGRvPwpAQCAtMjAyLDI0ICsyMzIsMzUgQEAKIGRvdWJsZS1jbGljayBhIC5weSwgLnB5YyBvciAucHl3IGZpbGUuIEZvciB0aGUgZmlyc3QgdHdvIGl0IGNyZWF0ZXMgYSBUZXJtaW5hbAogd2luZG93IGFuZCBydW5zIHRoZSBzY3JpcHRzIHdpdGggdGhlIG5vcm1hbCBjb21tYW5kLWxpbmUgUHl0aG9uLiBGb3IgdGhlCiBsYXR0ZXIgaXQgcnVucyB0aGUgc2NyaXB0IGluIHRoZSBQeXRob24uYXBwIGludGVycHJldGVyIHNvIHRoZSBzY3JpcHQgY2FuIGRvCi1HVUktdGhpbmdzLiBLZWVwIHRoZSAiYWx0IiBrZXkgZGVwcmVzc2VkIHdoaWxlIGRyYWdnaW5nIG9yIGRvdWJsZS1jbGlja2luZyBhCi1zY3JpcHQgdG8gc2V0IHJ1bnRpbWUgb3B0aW9ucy4gVGhlc2Ugb3B0aW9ucyBjYW4gYmUgc2V0IG9uY2UgYW5kIGZvciBhbGwKK0dVSS10aGluZ3MuIEtlZXAgdGhlIGBgT3B0aW9uYGAga2V5IGRlcHJlc3NlZCB3aGlsZSBkcmFnZ2luZyBvciBkb3VibGUtY2xpY2tpbmcKK2Egc2NyaXB0IHRvIHNldCBydW50aW1lIG9wdGlvbnMuIFRoZXNlIG9wdGlvbnMgY2FuIGJlIHNldCBwZXJzaXN0ZW50bHkKIHRocm91Z2ggUHl0aG9uTGF1bmNoZXIncyBwcmVmZXJlbmNlcyBkaWFsb2cuCiAKLVRoZSBjb21tYW5kbGluZSBzY3JpcHRzIC91c3IvbG9jYWwvYmluL3B5dGhvbiBhbmQgcHl0aG9udyBjYW4gYmUgdXNlZCB0byBydW4KLW5vbi1HVUkgYW5kIEdVSSBweXRob24gc2NyaXB0cyBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIHJlc3BlY3RpdmVseS4KK1RoZSBwcm9ncmFtIGBgcHl0aG9ueC54YGAgcnVucyBweXRob24gc2NyaXB0cyBmcm9tIHRoZSBjb21tYW5kIGxpbmUuICBWYXJpb3VzCitjb21wYXRpYmlsaXR5IGFsaWFzZXMgYXJlIGFsc28gaW5zdGFsbGVkLCBpbmNsdWRpbmcgYGBweXRob253eC54YGAgd2hpY2gKK2luIGVhcmx5IHJlbGVhc2VzIG9mIFB5dGhvbiBvbiBPUyBYIHdhcyByZXF1aXJlZCB0byBydW4gR1VJIHByb2dyYW1zLiAgSW4KK2N1cnJlbnQgcmVsZWFzZXMsIHRoZSBgYHB5dGhvbngueGBgIGFuZCBgYHB5dGhvbnd4LnhgYCBjb21tYW5kcyBhcmUgaWRlbnRpY2FsLgogCiBIb3cgZG8gSSBjcmVhdGUgYSBiaW5hcnkgZGlzdHJpYnV0aW9uPwogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIAotR28gdG8gdGhlIGRpcmVjdG9yeSAiTWFjL09TWC9CdWlsZFNjcmlwdCIuIFRoZXJlIHlvdSdsbCBmaW5kIGEgc2NyaXB0IAotImJ1aWxkLWluc3RhbGxlci5weSIgdGhhdCBkb2VzIGFsbCB0aGUgd29yay4gVGhpcyB3aWxsIGRvd25sb2FkIGFuZCBidWlsZAorRG93bmxvYWQgYW5kIHVucGFjayB0aGUgc291cmNlIHJlbGVhc2UgZnJvbSBodHRwOi8vd3d3LnB5dGhvbi5vcmcvZG93bmxvYWQvLgorR28gdG8gdGhlIGRpcmVjdG9yeSBgYE1hYy9CdWlsZFNjcmlwdGBgLiBUaGVyZSB5b3Ugd2lsbCBmaW5kIGEgc2NyaXB0CitgYGJ1aWxkLWluc3RhbGxlci5weWBgIHRoYXQgZG9lcyBhbGwgdGhlIHdvcmsuIFRoaXMgd2lsbCBkb3dubG9hZCBhbmQgYnVpbGQKIGEgbnVtYmVyIG9mIDNyZC1wYXJ0eSBsaWJhcmllcywgY29uZmlndXJlcyBhbmQgYnVpbGRzIGEgZnJhbWV3b3JrIFB5dGhvbiwKIGluc3RhbGxzIGl0LCBjcmVhdGVzIHRoZSBpbnN0YWxsZXIgcGFja2FnZSBmaWxlcyBhbmQgdGhlbiBwYWNrcyB0aGlzIGluIGEKLURNRyBpbWFnZS4KK0RNRyBpbWFnZS4gIFRoZSBzY3JpcHQgYWxzbyBidWlsZHMgYW4gSFRNTCBjb3B5IG9mIHRoZSBjdXJyZW50IFB5dGhvbgorZG9jdW1lbnRhdGlvbiBzZXQgZm9yIHRoaXMgcmVsZWFzZSBmb3IgaW5jbHVzaW9uIGluIHRoZSBmcmFtZXdvcmsuICBUaGUKK2luc3RhbGxlciBwYWNrYWdlIHdpbGwgY3JlYXRlIGxpbmtzIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB1c2UgYnkgSURMRSwKK3B5ZG9jLCBzaGVsbCB1c2VycywgYW5kIEZpbmRlciB1c2VyLgogCi1UaGUgc2NyaXB0IHdpbGwgYnVpbGQgYSB1bml2ZXJzYWwgYmluYXJ5LCB5b3UnbGwgdGhlcmVmb3JlIGhhdmUgdG8gcnVuIHRoaXMKK1RoZSBzY3JpcHQgd2lsbCBidWlsZCBhIHVuaXZlcnNhbCBiaW5hcnkgc28geW91J2xsIHRoZXJlZm9yZSBoYXZlIHRvIHJ1biB0aGlzCiBzY3JpcHQgb24gTWFjIE9TIFggMTAuNCBvciBsYXRlciBhbmQgd2l0aCBYY29kZSAyLjEgb3IgbGF0ZXIgaW5zdGFsbGVkLgorSG93ZXZlciwgdGhlIFB5dGhvbiBidWlsZCBwcm9jZXNzIGl0c2VsZiBoYXMgc2V2ZXJhbCBidWlsZCBkZXBlbmRlbmNpZXMgbm90CithdmFpbGFibGUgb3V0IG9mIHRoZSBib3ggd2l0aCBPUyBYIDEwLjQgc28geW91IG1heSBoYXZlIHRvIGluc3RhbGwKK2FkZGl0aW9uYWwgc29mdHdhcmUgYmV5b25kIHdoYXQgaXMgcHJvdmlkZWQgd2l0aCBYY29kZSAyLiAgT1MgWCAxMC41Citwcm92aWRlcyBhIHJlY2VudCBlbm91Z2ggc3lzdGVtIFB5dGhvbiAoaW4gYGAvdXNyL2JpbmBgKSB0byBidWlsZAordGhlIFB5dGhvbiBkb2N1bWVudGF0aW9uIHNldC4KIAogQWxsIG9mIHRoaXMgaXMgbm9ybWFsbHkgZG9uZSBjb21wbGV0ZWx5IGlzb2xhdGVkIGluIC90bXAvX3B5LCBzbyBpdCBkb2VzIG5vdAogdXNlIHlvdXIgbm9ybWFsIGJ1aWxkIGRpcmVjdG9yeSBub3IgZG9lcyBpdCBpbnN0YWxsIGludG8gLy4KQEAgLTI1Myw3ICsyOTQsNyBAQAogCiBVbmluc3RhbGxpbmcgYSBmcmFtZXdvcmsgY2FuIGJlIGRvbmUgYnkgbWFudWFsbHkgcmVtb3ZpbmcgYWxsIGJpdHMgdGhhdCBnb3QgaW5zdGFsbGVkLgogVGhhdCdzIHRydWUgZm9yIGJvdGggaW5zdGFsbGF0aW9ucyBmcm9tIHNvdXJjZSBhbmQgaW5zdGFsbGF0aW9ucyB1c2luZyB0aGUgYmluYXJ5IGluc3RhbGxlci4KLVNhZGx5IGVub3VnaCBPU1ggZG9lcyBub3QgaGF2ZSBhIGNlbnRyYWwgdW5pbnN0YWxsZXIuCitPUyBYIGRvZXMgbm90IHByb3ZpZGUgYSBjZW50cmFsIHVuaW5zdGFsbGVyLgogCiBUaGUgbWFpbiBiaXQgb2YgYSBmcmFtZXdvcmsgaW5zdGFsbCBpcyB0aGUgZnJhbWV3b3JrIGl0c2VsZiwgaW5zdGFsbGVkIGluCiBgYC9MaWJyYXJ5L0ZyYW1ld29ya3MvUHl0aG9uLmZyYW1ld29ya2BgLiBUaGlzIGNhbiBjb250YWluIG11bHRpcGxlIHZlcnNpb25zCkBAIC0yNjcsMTQgKzMwOCwxMiBAQAogQW5kIGxhc3RseSBhIGZyYW1ld29yayBpbnN0YWxsYXRpb24gaW5zdGFsbHMgZmlsZXMgaW4gYGAvdXNyL2xvY2FsL2JpbmBgLCBhbGwgb2YKIHRoZW0gc3ltYm9saWMgbGlua3MgdG8gZmlsZXMgaW4gYGAvTGlicmFyeS9GcmFtZXdvcmtzL1B5dGhvbi5mcmFtZXdvcmsvVmVyc2lvbnMvWC5ZL2JpbmBgLgogCi1PZGRzIGFuZCBlbmRzCi09PT09PT09PT09PT09CiAKLVNvbWV0aGluZyB0byB0YWtlIG5vdGUgb2YgaXMgdGhhdCB0aGUgIi5yc3JjIiBmaWxlcyBpbiB0aGUgZGlzdHJpYnV0aW9uIGFyZQotbm90IGFjdHVhbGx5IHJlc291cmNlIGZpbGVzLCB0aGV5J3JlIEFwcGxlU2luZ2xlIGVuY29kZWQgcmVzb3VyY2UgZmlsZXMuIFRoZQotbWFjcmVzb3VyY2UgbW9kdWxlIGFuZCB0aGUgTWFjL09TWC9NYWtlZmlsZSBjYXRlciBmb3IgdGhpcywgYW5kIGNyZWF0ZQotIi5yc3JjLmRmLnJzcmMiIGZpbGVzIG9uIHRoZSBmbHkgdGhhdCBhcmUgbm9ybWFsIGRhdGFmb3JrLWJhc2VkIHJlc291cmNlCi1maWxlcy4KK1Jlc291cmNlcworPT09PT09PT09CiAKLQlKYWNrIEphbnNlbiwgSmFjay5KYW5zZW5AY3dpLm5sLCAxNS1KdWwtMjAwNC4KLQlSb25hbGQgT3Vzc29yZW4sIFJvbmFsZE91c3NvcmVuQG1hYy5jb20sIDMwLUFwcmlsLTIwMTAKKyAgKiAgaHR0cDovL3d3dy5weXRob24ub3JnL2Rvd25sb2FkL21hYy8KKworICAqICBodHRwOi8vd3d3LnB5dGhvbi5vcmcvY29tbXVuaXR5L3NpZ3MvY3VycmVudC9weXRob25tYWMtc2lnLworCisgICogIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvZGV2Z3VpZGUvClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTWFjL1Rvb2xzL2ZpeGFwcGxlcHl0aG9uMjMucHkgYi9NYWMvVG9vbHMvZml4YXBwbGVweXRob24yMy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMThiOTViMy4uMDAwMDAwMAotLS0gYS9NYWMvVG9vbHMvZml4YXBwbGVweXRob24yMy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEzMSArMCwwIEBACi0jIS91c3IvYmluL3B5dGhvbgotIiIiZml4YXBwbGVweXRob24yMyAtIEZpeCBBcHBsZS1pbnN0YWxsZWQgUHl0aG9uIDIuMyAob24gTWFjIE9TIFggMTAuMykKLQotUHl0aG9uIDIuMyAoYW5kIDIuMy5YIGZvciBYPDUpIGhhdmUgdGhlIHByb2JsZW0gdGhhdCBidWlsZGluZyBhbiBleHRlbnNpb24KLWZvciBhIGZyYW1ld29yayBpbnN0YWxsYXRpb24gbWF5IGFjY2lkZW50YWxseSBwaWNrIHVwIHRoZSBmcmFtZXdvcmsKLW9mIGEgbmV3ZXIgUHl0aG9uLCBpbiBzdGVhZCBvZiB0aGUgb25lIHRoYXQgd2FzIHVzZWQgdG8gYnVpbGQgdGhlIGV4dGVuc2lvbi4KLQotVGhpcyBzY3JpcHQgbW9kaWZpZXMgdGhlIE1ha2VmaWxlIChpbiAuLi4vbGliL3B5dGhvbjIuMy9jb25maWcpIHRvIHVzZQotdGhlIG5ld2VyIG1ldGhvZCBvZiBsaW5raW5nIGV4dGVuc2lvbnMgd2l0aCAiLXVuZGVmaW5lZCBkeW5hbWljX2xvb2t1cCIKLXdoaWNoIGZpeGVzIHRoaXMgcHJvYmxlbS4KLQotVGhlIHNjcmlwdCB3aWxsIGZpcnN0IGNoZWNrIGFsbCBwcmVyZXF1aXNpdGVzLCBhbmQgcmV0dXJuIGEgemVybyBleGl0Ci1zdGF0dXMgYWxzbyB3aGVuIG5vdGhpbmcgbmVlZHMgdG8gYmUgZml4ZWQuCi0iIiIKLWltcG9ydCBzeXMKLWltcG9ydCBvcwotaW1wb3J0IHBsYXRmb3JtCi0KLU1BS0VGSUxFPScvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9QeXRob24uZnJhbWV3b3JrL1ZlcnNpb25zLzIuMy9saWIvcHl0aG9uMi4zL2NvbmZpZy9NYWtlZmlsZScKLUNIQU5HRVM9KCgKLSAgICAnTERTSEFSRUQ9XHQkKENDKSAkKExERkxBR1MpIC1idW5kbGUgLWZyYW1ld29yayAkKFBZVEhPTkZSQU1FV09SSylcbicsCi0gICAgJ0xEU0hBUkVEPVx0JChDQykgJChMREZMQUdTKSAtYnVuZGxlIC11bmRlZmluZWQgZHluYW1pY19sb29rdXBcbicKLSAgICApLCgKLSAgICAnQkxEU0hBUkVEPVx0JChDQykgJChMREZMQUdTKSAtYnVuZGxlIC1mcmFtZXdvcmsgJChQWVRIT05GUkFNRVdPUkspXG4nLAotICAgICdCTERTSEFSRUQ9XHQkKENDKSAkKExERkxBR1MpIC1idW5kbGUgLXVuZGVmaW5lZCBkeW5hbWljX2xvb2t1cFxuJwotICAgICksKAotICAgICdDQz1cdFx0Z2NjXG4nLAotICAgICdDQz1cdFx0L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUHl0aG9uLmZyYW1ld29yay9WZXJzaW9ucy8yLjMvbGliL3B5dGhvbjIuMy9jb25maWcvUGFudGhlclB5dGhvbkZpeC9ydW4tZ2NjXG4nCi0gICAgKSwoCi0gICAgJ0NYWD1cdFx0YysrXG4nLAotICAgICdDWFg9XHRcdC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1B5dGhvbi5mcmFtZXdvcmsvVmVyc2lvbnMvMi4zL2xpYi9weXRob24yLjMvY29uZmlnL1BhbnRoZXJQeXRob25GaXgvcnVuLWcrK1xuJwotKSkKLQotR0NDX1NDUklQVD0nL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUHl0aG9uLmZyYW1ld29yay9WZXJzaW9ucy8yLjMvbGliL3B5dGhvbjIuMy9jb25maWcvUGFudGhlclB5dGhvbkZpeC9ydW4tZ2NjJwotR1hYX1NDUklQVD0nL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUHl0aG9uLmZyYW1ld29yay9WZXJzaW9ucy8yLjMvbGliL3B5dGhvbjIuMy9jb25maWcvUGFudGhlclB5dGhvbkZpeC9ydW4tZysrJwotU0NSSVBUPSIiIiMhL2Jpbi9zaAotZXhwb3J0IE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVD0xMC4zCi1leGVjICVzICIke0B9IgotIiIiCi0KLWRlZiBmaW5kbGluZShsaW5lcywgc3RhcnQpOgotICAgICIiInJldHVybiBsaW5lIHN0YXJ0aW5nIHdpdGggZ2l2ZW4gc3RyaW5nIG9yIC0xIiIiCi0gICAgZm9yIGkgaW4gcmFuZ2UobGVuKGxpbmVzKSk6Ci0gICAgICAgIGlmIGxpbmVzW2ldWzpsZW4oc3RhcnQpXSA9PSBzdGFydDoKLSAgICAgICAgICAgIHJldHVybiBpCi0gICAgcmV0dXJuIC0xCi0KLWRlZiBmaXgobWFrZWZpbGUsIGRvX2FwcGx5KToKLSAgICAiIiJGaXggdGhlIE1ha2VmaWxlLCBpZiByZXF1aXJlZC4iIiIKLSAgICBmaXhlZCA9IEZhbHNlCi0gICAgbGluZXMgPSBvcGVuKG1ha2VmaWxlKS5yZWFkbGluZXMoKQotCi0gICAgZm9yIG9sZCwgbmV3IGluIENIQU5HRVM6Ci0gICAgICAgIGkgPSBmaW5kbGluZShsaW5lcywgbmV3KQotICAgICAgICBpZiBpID49IDA6Ci0gICAgICAgICAgICAjIEFscmVhZHkgZml4ZWQKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGkgPSBmaW5kbGluZShsaW5lcywgb2xkKQotICAgICAgICBpZiBpIDwgMDoKLSAgICAgICAgICAgIHByaW50KCdmaXhhcHBsZXB5dGhvbjIzOiBQeXRob24gaW5zdGFsbGF0aW9uIG5vdCBmaXhlZCAoYXBwZWFycyBicm9rZW4pJykKLSAgICAgICAgICAgIHByaW50KCdmaXhhcHBsZXB5dGhvbjIzOiBtaXNzaW5nIGxpbmU6Jywgb2xkKQotICAgICAgICAgICAgcmV0dXJuIDIKLSAgICAgICAgbGluZXNbaV0gPSBuZXcKLSAgICAgICAgZml4ZWQgPSBUcnVlCi0KLSAgICBpZiBmaXhlZDoKLSAgICAgICAgaWYgZG9fYXBwbHk6Ci0gICAgICAgICAgICBwcmludCgnZml4YXBwbGVweXRob24yMzogRml4IHRvIEFwcGxlLWluc3RhbGxlZCBQeXRob24gMi4zIGFwcGxpZWQnKQotICAgICAgICAgICAgb3MucmVuYW1lKG1ha2VmaWxlLCBtYWtlZmlsZSArICd+JykKLSAgICAgICAgICAgIG9wZW4obWFrZWZpbGUsICd3Jykud3JpdGVsaW5lcyhsaW5lcykKLSAgICAgICAgICAgIHJldHVybiAwCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCgnZml4YXBwbGVweXRob24yMzogRml4IHRvIEFwcGxlLWluc3RhbGxlZCBQeXRob24gMi4zIHNob3VsZCBiZSBhcHBsaWVkJykKLSAgICAgICAgICAgIHJldHVybiAxCi0gICAgZWxzZToKLSAgICAgICAgcHJpbnQoJ2ZpeGFwcGxlcHl0aG9uMjM6IE5vIGZpeCBuZWVkZWQsIGFwcGVhcnMgdG8gaGF2ZSBiZWVuIGFwcGxpZWQgYmVmb3JlJykKLSAgICAgICAgcmV0dXJuIDAKLQotZGVmIG1ha2VzY3JpcHQoZmlsZW5hbWUsIGNvbXBpbGVyKToKLSAgICAiIiJDcmVhdGUgYSB3cmFwcGVyIHNjcmlwdCBmb3IgYSBjb21waWxlciIiIgotICAgIGRpcm5hbWUgPSBvcy5wYXRoLnNwbGl0KGZpbGVuYW1lKVswXQotICAgIGlmIG5vdCBvcy5hY2Nlc3MoZGlybmFtZSwgb3MuWF9PSyk6Ci0gICAgICAgIG9zLm1rZGlyKGRpcm5hbWUsIDBvNzU1KQotICAgIGZwID0gb3BlbihmaWxlbmFtZSwgJ3cnKQotICAgIGZwLndyaXRlKFNDUklQVCAlIGNvbXBpbGVyKQotICAgIGZwLmNsb3NlKCkKLSAgICBvcy5jaG1vZChmaWxlbmFtZSwgMG83NTUpCi0gICAgcHJpbnQoJ2ZpeGFwcGxlcHl0aG9uMjM6IENyZWF0ZWQnLCBmaWxlbmFtZSkKLQotZGVmIG1haW4oKToKLSAgICAjIENoZWNrIGZvciAtbiBvcHRpb24KLSAgICBpZiBsZW4oc3lzLmFyZ3YpID4gMSBhbmQgc3lzLmFyZ3ZbMV0gPT0gJy1uJzoKLSAgICAgICAgZG9fYXBwbHkgPSBGYWxzZQotICAgIGVsc2U6Ci0gICAgICAgIGRvX2FwcGx5ID0gVHJ1ZQotICAgICMgRmlyc3QgY2hlY2sgT1MgdmVyc2lvbgotICAgIGlmIHN5cy5ieXRlb3JkZXIgPT0gJ2xpdHRsZSc6Ci0gICAgICAgICMgQWxsIGludGVsIG1hY3MgYXJlIGZpbmUKLSAgICAgICAgcHJpbnQoImZpeGFwcGx5cHl0aG9uMjM6IG5vIGZpeCBpcyBuZWVkZWQgb24gTWFjT1NYIG9uIEludGVsIikKLSAgICAgICAgc3lzLmV4aXQoMCkKLQotICAgIG9zdmVyID0gIHBsYXRmb3JtLm1hY192ZXIoKQotICAgIGlmIG9zdmVyICE9ICcxMC4zJyBhbmQgb3MudmVyIDwgJzEwLjMuJzoKLSAgICAgICAgcHJpbnQoJ2ZpeGFwcGxlcHl0aG9uMjM6IG5vIGZpeCBuZWVkZWQgb24gTWFjT1NYIDwgMTAuMycpCi0gICAgICAgIHN5cy5leGl0KDApCi0KLSAgICBpZiBvc3ZlciA+PSAnMTAuNCc6Ci0gICAgICAgIHByaW50KCdmaXhhcHBsZXB5dGhvbjIzOiBubyBmaXggbmVlZGVkIG9uIE1hY09TWCA+PSAxMC40JykKLSAgICAgICAgc3lzLmV4aXQoMCkKLQotICAgICMgVGVzdCB0aGF0IGEgZnJhbWV3b3JrIFB5dGhvbiBpcyBpbmRlZWQgaW5zdGFsbGVkCi0gICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKE1BS0VGSUxFKToKLSAgICAgICAgcHJpbnQoJ2ZpeGFwcGxlcHl0aG9uMjM6IFB5dGhvbiBmcmFtZXdvcmsgZG9lcyBub3QgYXBwZWFyIHRvIGJlIGluc3RhbGxlZCAoPyksIG5vdGhpbmcgZml4ZWQnKQotICAgICAgICBzeXMuZXhpdCgwKQotICAgICMgQ2hlY2sgdGhhdCB3ZSBjYW4gYWN0dWFsbHkgd3JpdGUgdGhlIGZpbGUKLSAgICBpZiBkb19hcHBseSBhbmQgbm90IG9zLmFjY2VzcyhNQUtFRklMRSwgb3MuV19PSyk6Ci0gICAgICAgIHByaW50KCdmaXhhcHBsZXB5dGhvbjIzOiBObyB3cml0ZSBwZXJtaXNzaW9uLCBwbGVhc2UgcnVuIHdpdGggInN1ZG8iJykKLSAgICAgICAgc3lzLmV4aXQoMikKLSAgICAjIENyZWF0ZSB0aGUgc2hlbGwgc2NyaXB0cwotICAgIGlmIGRvX2FwcGx5OgotICAgICAgICBpZiBub3Qgb3MuYWNjZXNzKEdDQ19TQ1JJUFQsIG9zLlhfT0spOgotICAgICAgICAgICAgbWFrZXNjcmlwdChHQ0NfU0NSSVBULCAiZ2NjIikKLSAgICAgICAgaWYgbm90IG9zLmFjY2VzcyhHWFhfU0NSSVBULCBvcy5YX09LKToKLSAgICAgICAgICAgIG1ha2VzY3JpcHQoR1hYX1NDUklQVCwgImcrKyIpCi0gICAgIyAgRmluYWxseSBmaXggdGhlIG1ha2VmaWxlCi0gICAgcnYgPSBmaXgoTUFLRUZJTEUsIGRvX2FwcGx5KQotICAgICNzeXMuZXhpdChydikKLSAgICBzeXMuZXhpdCgwKQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvTWFjL1Rvb2xzL3B5dGhvbncuYyBiL01hYy9Ub29scy9weXRob253LmMKaW5kZXggMzBjODJhYy4uZjVjZGZmNSAxMDA2NDQKLS0tIGEvTWFjL1Rvb2xzL3B5dGhvbncuYworKysgYi9NYWMvVG9vbHMvcHl0aG9udy5jCkBAIC0xNTAsNiArMTUwLDE4IEBACiBpbnQKIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgICAgY2hhciogZXhlY19wYXRoID0gZ2V0X3B5dGhvbl9wYXRoKCk7CisgICAgc3RhdGljIGNoYXIgcGF0aFtQQVRIX01BWCAqIDJdOworICAgIHN0YXRpYyBjaGFyIHJlYWxfcGF0aFtQQVRIX01BWCAqIDJdOworICAgIGludCBzdGF0dXM7CisgICAgdWludDMyX3Qgc2l6ZSA9IFBBVEhfTUFYICogMjsKKworICAgIC8qIFNldCB0aGUgb3JpZ2luYWwgZXhlY3V0YWJsZSBwYXRoIGluIHRoZSBlbnZpcm9ubWVudC4gKi8KKyAgICBzdGF0dXMgPSBfTlNHZXRFeGVjdXRhYmxlUGF0aChwYXRoLCAmc2l6ZSk7CisgICAgaWYgKHN0YXR1cyA9PSAwKSB7CisgICAgICAgIGlmIChyZWFscGF0aChwYXRoLCByZWFsX3BhdGgpICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHNldGVudigiX19QWVZFTlZfTEFVTkNIRVJfXyIsIHJlYWxfcGF0aCwgMSk7CisgICAgICAgIH0KKyAgICB9CiAKICAgICAvKgogICAgICAqIExldCBhcmd2WzBdIHJlZmVyIHRvIHRoZSBuZXcgaW50ZXJwcmV0ZXIuIFRoaXMgaXMgbmVlZGVkIHRvCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5wcmUuaW4gYi9NYWtlZmlsZS5wcmUuaW4KaW5kZXggOWNjMTVjOS4uOWM5MmI1MSAxMDA2NDQKLS0tIGEvTWFrZWZpbGUucHJlLmluCisrKyBiL01ha2VmaWxlLnByZS5pbgpAQCAtMzQsNyArMzQsNyBAQAogTElOS0NDPQkJQExJTktDQ0AKIEFSPQkJQEFSQAogUkFOTElCPQkJQFJBTkxJQkAKLVNWTlZFUlNJT049CUBTVk5WRVJTSU9OQAorUkVBREVMRj0JQFJFQURFTEZACiBTT0FCST0JCUBTT0FCSUAKIExEVkVSU0lPTj0JQExEVkVSU0lPTkAKIEhHVkVSU0lPTj0JQEhHVkVSU0lPTkAKQEAgLTU5LDYgKzU5LDggQEAKICMgQWxzbywgbWFraW5nIHRoZW0gcmVhZC1vbmx5IHNlZW1zIHRvIGJlIGEgZ29vZCBpZGVhLi4uCiBJTlNUQUxMX1NIQVJFRD0gJHtJTlNUQUxMfSAtbSA1NTUKIAorTUtESVJfUD0JQE1LRElSX1BACisKIE1BS0VTRVRVUD0gICAgICAkKHNyY2RpcikvTW9kdWxlcy9tYWtlc2V0dXAKIAogIyBDb21waWxlciBvcHRpb25zCkBAIC03NCw3ICs3Niw3IEBACiAjIEJvdGggQ1BQRkxBR1MgYW5kIExERkxBR1MgbmVlZCB0byBjb250YWluIHRoZSBzaGVsbCdzIHZhbHVlIGZvciBzZXR1cC5weSB0bwogIyBiZSBhYmxlIHRvIGJ1aWxkIGV4dGVuc2lvbiBtb2R1bGVzIHVzaW5nIHRoZSBkaXJlY3RvcmllcyBzcGVjaWZpZWQgaW4gdGhlCiAjIGVudmlyb25tZW50IHZhcmlhYmxlcwotUFlfQ1BQRkxBR1M9CS1JLiAtSUluY2x1ZGUgLUkkKHNyY2RpcikvSW5jbHVkZSAkKENPTkZJR1VSRV9DUFBGTEFHUykgJChDUFBGTEFHUykKK1BZX0NQUEZMQUdTPQktSS4gLUkkKHNyY2RpcikvSW5jbHVkZSAkKENPTkZJR1VSRV9DUFBGTEFHUykgJChDUFBGTEFHUykKIFBZX0xERkxBR1M9CSQoQ09ORklHVVJFX0xERkxBR1MpICQoTERGTEFHUykKIE5PX0FTX05FRURFRD0JQE5PX0FTX05FRURFREAKIExETEFTVD0JCUBMRExBU1RACkBAIC0xOTIsNiArMTk0LDEwIEBACiBQWVRIT049CQlweXRob24kKEVYRSkKIEJVSUxEUFlUSE9OPQlweXRob24kKEJVSUxERVhFKQogCitQWVRIT05fRk9SX0JVSUxEPUBQWVRIT05fRk9SX0JVSUxEQAorX1BZVEhPTl9IT1NUX1BMQVRGT1JNPUBfUFlUSE9OX0hPU1RfUExBVEZPUk1ACitIT1NUX0dOVV9UWVBFPSAgQGhvc3RACisKICMgVGhlIHRhc2sgdG8gcnVuIHdoaWxlIGluc3RydW1lbnQgd2hlbiBidWlsZGluZyB0aGUgcHJvZmlsZS1vcHQgdGFyZ2V0CiBQUk9GSUxFX1RBU0s9CSQoc3JjZGlyKS9Ub29scy9weWJlbmNoL3B5YmVuY2gucHkgLW4gMiAtLXdpdGgtZ2MgLS13aXRoLXN5c2NoZWNrCiAjUFJPRklMRV9UQVNLPQkkKHNyY2RpcikvTGliL3Rlc3QvcmVncnRlc3QucHkKQEAgLTIzNCwyMCArMjQwLDQxIEBACiAjIFBhcnNlcgogUEdFTj0JCVBhcnNlci9wZ2VuJChFWEUpCiAKK1BTUkNTPQkJXAorCQlQYXJzZXIvYWNjZWxlci5jIFwKKwkJUGFyc2VyL2dyYW1tYXIxLmMgXAorCQlQYXJzZXIvbGlzdG5vZGUuYyBcCisJCVBhcnNlci9ub2RlLmMgXAorCQlQYXJzZXIvcGFyc2VyLmMgXAorCQlQYXJzZXIvYml0c2V0LmMgXAorCQlQYXJzZXIvbWV0YWdyYW1tYXIuYyBcCisJCVBhcnNlci9maXJzdHNldHMuYyBcCisJCVBhcnNlci9ncmFtbWFyLmMgXAorCQlQYXJzZXIvcGdlbi5jCisKIFBPQkpTPQkJXAogCQlQYXJzZXIvYWNjZWxlci5vIFwKIAkJUGFyc2VyL2dyYW1tYXIxLm8gXAogCQlQYXJzZXIvbGlzdG5vZGUubyBcCiAJCVBhcnNlci9ub2RlLm8gXAogCQlQYXJzZXIvcGFyc2VyLm8gXAotCQlQYXJzZXIvcGFyc2V0b2subyBcCiAJCVBhcnNlci9iaXRzZXQubyBcCiAJCVBhcnNlci9tZXRhZ3JhbW1hci5vIFwKIAkJUGFyc2VyL2ZpcnN0c2V0cy5vIFwKIAkJUGFyc2VyL2dyYW1tYXIubyBcCiAJCVBhcnNlci9wZ2VuLm8KIAotUEFSU0VSX09CSlM9CSQoUE9CSlMpIFBhcnNlci9teXJlYWRsaW5lLm8gUGFyc2VyL3Rva2VuaXplci5vCitQQVJTRVJfT0JKUz0JJChQT0JKUykgUGFyc2VyL215cmVhZGxpbmUubyBQYXJzZXIvcGFyc2V0b2subyBQYXJzZXIvdG9rZW5pemVyLm8KKworUEdTUkNTPQkJXAorCQlPYmplY3RzL29ibWFsbG9jLmMgXAorCQlQeXRob24vZHluYW1pY19hbm5vdGF0aW9ucy5jIFwKKwkJUHl0aG9uL215c25wcmludGYuYyBcCisJCVB5dGhvbi9weWN0eXBlLmMgXAorCQlQYXJzZXIvdG9rZW5pemVyX3BnZW4uYyBcCisJCVBhcnNlci9wcmludGdyYW1tYXIuYyBcCisJCVBhcnNlci9wYXJzZXRva19wZ2VuLmMgXAorCQlQYXJzZXIvcGdlbm1haW4uYwogCiBQR09CSlM9CQlcCiAJCU9iamVjdHMvb2JtYWxsb2MubyBcCkBAIC0yNTYsMTMgKzI4MywxNiBAQAogCQlQeXRob24vcHljdHlwZS5vIFwKIAkJUGFyc2VyL3Rva2VuaXplcl9wZ2VuLm8gXAogCQlQYXJzZXIvcHJpbnRncmFtbWFyLm8gXAorCQlQYXJzZXIvcGFyc2V0b2tfcGdlbi5vIFwKIAkJUGFyc2VyL3BnZW5tYWluLm8KIAogUEFSU0VSX0hFQURFUlM9IFwKLQkJUGFyc2VyL3BhcnNlci5oIFwKLQkJUGFyc2VyL3Rva2VuaXplci5oCisJCSQoc3JjZGlyKS9QYXJzZXIvcGFyc2VyLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9wYXJzZXRvay5oIFwKKwkJJChzcmNkaXIpL1BhcnNlci90b2tlbml6ZXIuaAogCi1QR0VOT0JKUz0JJChQR0VOTUFJTikgJChQT0JKUykgJChQR09CSlMpCitQR0VOU1JDUz0JJChQU1JDUykgJChQR1NSQ1MpCitQR0VOT0JKUz0JJChQT0JKUykgJChQR09CSlMpCiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIEFTVApAQCAtMjk5LDcgKzMyOSw2IEBACiAJCVB5dGhvbi9jb2RlY3MubyBcCiAJCVB5dGhvbi9keW5hbWljX2Fubm90YXRpb25zLm8gXAogCQlQeXRob24vZXJyb3JzLm8gXAotCQlQeXRob24vZnJvemVuLm8gXAogCQlQeXRob24vZnJvemVubWFpbi5vIFwKIAkJUHl0aG9uL2Z1dHVyZS5vIFwKIAkJUHl0aG9uL2dldGFyZ3MubyBcCkBAIC0zNjcsMTEgKzM5NiwxMiBAQAogCQlPYmplY3RzL21lbW9yeW9iamVjdC5vIFwKIAkJT2JqZWN0cy9tZXRob2RvYmplY3QubyBcCiAJCU9iamVjdHMvbW9kdWxlb2JqZWN0Lm8gXAorCQlPYmplY3RzL25hbWVzcGFjZW9iamVjdC5vIFwKIAkJT2JqZWN0cy9vYmplY3QubyBcCiAJCU9iamVjdHMvb2JtYWxsb2MubyBcCiAJCU9iamVjdHMvY2Fwc3VsZS5vIFwKIAkJT2JqZWN0cy9yYW5nZW9iamVjdC5vIFwKLSAgICAgICAgICAgICAgICBPYmplY3RzL3NldG9iamVjdC5vIFwKKwkJT2JqZWN0cy9zZXRvYmplY3QubyBcCiAJCU9iamVjdHMvc2xpY2VvYmplY3QubyBcCiAJCU9iamVjdHMvc3RydWN0c2VxLm8gXAogCQlPYmplY3RzL3R1cGxlb2JqZWN0Lm8gXApAQCAtMzgwLDEwICs0MTAsMTEgQEAKIAkJT2JqZWN0cy91bmljb2RlY3R5cGUubyBcCiAJCU9iamVjdHMvd2Vha3JlZm9iamVjdC5vCiAKK1NZU0NPTkZJR0RBVEE9JChzcmNkaXIpL0xpYi9fc3lzY29uZmlnZGF0YS5weQogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBvYmplY3RzIHRoYXQgZ2V0IGxpbmtlZCBpbnRvIHRoZSBQeXRob24gbGlicmFyeQotTElCUkFSWV9PQkpTPQlcCitMSUJSQVJZX09CSlNfT01JVF9GUk9aRU49CVwKIAkJTW9kdWxlcy9nZXRidWlsZGluZm8ubyBcCiAJCSQoUEFSU0VSX09CSlMpIFwKIAkJJChPQkpFQ1RfT0JKUykgXApAQCAtMzkyLDEyICs0MjMsMTYgQEAKIAkJJChTSUdOQUxfT0JKUykgXAogCQkkKE1PRE9CSlMpCiAKK0xJQlJBUllfT0JKUz0JXAorCQkkKExJQlJBUllfT0JKU19PTUlUX0ZST1pFTikgXAorCQlQeXRob24vZnJvemVuLm8KKwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBSdWxlcwogCiAjIERlZmF1bHQgdGFyZ2V0CiBhbGw6CQlidWlsZF9hbGwKLWJ1aWxkX2FsbDoJJChCVUlMRFBZVEhPTikgb2xkc2hhcmVkbW9kcyBzaGFyZWRtb2RzIGdkYmhvb2tzIE1vZHVsZXMvX3Rlc3RlbWJlZAorYnVpbGRfYWxsOgkkKEJVSUxEUFlUSE9OKSAkKFNZU0NPTkZJR0RBVEEpIG9sZHNoYXJlZG1vZHMgc2hhcmVkbW9kcyBnZGJob29rcyBNb2R1bGVzL190ZXN0ZW1iZWQKIAogIyBDb21waWxlIGEgYmluYXJ5IHdpdGggZ2NjIHByb2ZpbGUgZ3VpZGVkIG9wdGltaXphdGlvbi4KIHByb2ZpbGUtb3B0OgpAQCAtNDE1LDEwICs0NTAsMTEgQEAKIAkkKE1BS0UpIGFsbCBDRkxBR1M9IiQoQ0ZMQUdTKSAtZnByb2ZpbGUtZ2VuZXJhdGUiIExJQlM9IiQoTElCUykgLWxnY292IgogCiBydW5fcHJvZmlsZV90YXNrOgotCS4vJChCVUlMRFBZVEhPTikgJChQUk9GSUxFX1RBU0spCisJOiAjIEZJWE1FOiBjYW4ndCBydW4gZm9yIGEgY3Jvc3MgYnVpbGQKKwkkKFJVTlNIQVJFRCkgLi8kKEJVSUxEUFlUSE9OKSAkKFBST0ZJTEVfVEFTSykKIAogYnVpbGRfYWxsX3VzZV9wcm9maWxlOgotCSQoTUFLRSkgYWxsIENGTEFHUz0iJChDRkxBR1MpIC1mcHJvZmlsZS11c2UiCisJJChNQUtFKSBhbGwgQ0ZMQUdTPSIkKENGTEFHUykgLWZwcm9maWxlLXVzZSAtZnByb2ZpbGUtY29ycmVjdGlvbiIKIAogY292ZXJhZ2U6CiAJQGVjaG8gIkJ1aWxkaW5nIHdpdGggc3VwcG9ydCBmb3IgY292ZXJhZ2UgY2hlY2tpbmc6IgpAQCAtNDMwLDE2ICs0NjYsMTggQEAKICQoQlVJTERQWVRIT04pOglNb2R1bGVzL3B5dGhvbi5vICQoTElCUkFSWSkgJChMRExJQlJBUlkpICQoUFkzTElCUkFSWSkKIAkkKExJTktDQykgJChQWV9MREZMQUdTKSAkKExJTktGT1JTSEFSRUQpIC1vICRAIE1vZHVsZXMvcHl0aG9uLm8gJChCTERMSUJSQVJZKSAkKExJQlMpICQoTU9ETElCUykgJChTWVNMSUJTKSAkKExETEFTVCkKIAotcGxhdGZvcm06ICQoQlVJTERQWVRIT04pCi0JJChSVU5TSEFSRUQpIC4vJChCVUlMRFBZVEhPTikgLUUgLWMgJ2ltcG9ydCBzeXMgOyBmcm9tIHN5c2NvbmZpZyBpbXBvcnQgZ2V0X3BsYXRmb3JtIDsgcHJpbnQoZ2V0X3BsYXRmb3JtKCkrIi0iK3N5cy52ZXJzaW9uWzA6M10pJyA+cGxhdGZvcm0KK3BsYXRmb3JtOiAkKEJVSUxEUFlUSE9OKSAkKFNZU0NPTkZJR0RBVEEpCisJJChSVU5TSEFSRUQpICQoUFlUSE9OX0ZPUl9CVUlMRCkgLWMgJ2ltcG9ydCBzeXMgOyBmcm9tIHN5c2NvbmZpZyBpbXBvcnQgZ2V0X3BsYXRmb3JtIDsgcHJpbnQoZ2V0X3BsYXRmb3JtKCkrIi0iK3N5cy52ZXJzaW9uWzA6M10pJyA+cGxhdGZvcm0KIAorIyBHZW5lcmF0ZSB0aGUgc3lzY29uZmlnIGJ1aWxkLXRpbWUgZGF0YQorJChTWVNDT05GSUdEQVRBKTogJChCVUlMRFBZVEhPTikKKwkkKFJVTlNIQVJFRCkgJChQWVRIT05fRk9SX0JVSUxEKSAtUyAtbSBzeXNjb25maWcgLS1nZW5lcmF0ZS1wb3NpeC12YXJzCiAKICMgQnVpbGQgdGhlIHNoYXJlZCBtb2R1bGVzCi1zaGFyZWRtb2RzOiAkKEJVSUxEUFlUSE9OKQotCUBjYXNlICQkTUFLRUZMQUdTIGluIFwKLQkqcyopICQoUlVOU0hBUkVEKSBDQz0nJChDQyknIExEU0hBUkVEPSckKEJMRFNIQVJFRCknIE9QVD0nJChPUFQpJyAuLyQoQlVJTERQWVRIT04pIC1FICQoc3JjZGlyKS9zZXR1cC5weSAtcSBidWlsZDs7IFwKLQkqKSAkKFJVTlNIQVJFRCkgQ0M9JyQoQ0MpJyBMRFNIQVJFRD0nJChCTERTSEFSRUQpJyBPUFQ9JyQoT1BUKScgLi8kKEJVSUxEUFlUSE9OKSAtRSAkKHNyY2Rpcikvc2V0dXAucHkgYnVpbGQ7OyBcCi0JZXNhYworc2hhcmVkbW9kczogJChCVUlMRFBZVEhPTikgJChTWVNDT05GSUdEQVRBKQorCWNhc2UgJCRNQUtFRkxBR1MgaW4gKnMqKSBxdWlldD0tcTsgZXNhYzsgXAorCSQoUlVOU0hBUkVEKSBDQz0nJChDQyknIExEU0hBUkVEPSckKEJMRFNIQVJFRCknIE9QVD0nJChPUFQpJyBcCisJCSQoUFlUSE9OX0ZPUl9CVUlMRCkgJChzcmNkaXIpL3NldHVwLnB5ICQkcXVpZXQgYnVpbGQKIAogIyBCdWlsZCBzdGF0aWMgbGlicmFyeQogIyBhdm9pZCBsb25nIGNvbW1hbmQgbGluZXMsIHNhbWUgYXMgTElCUkFSWV9PQkpTCkBAIC00NDgsNyArNDg2LDcgQEAKIAkkKEFSKSAkKEFSRkxBR1MpICRAIE1vZHVsZXMvZ2V0YnVpbGRpbmZvLm8KIAkkKEFSKSAkKEFSRkxBR1MpICRAICQoUEFSU0VSX09CSlMpCiAJJChBUikgJChBUkZMQUdTKSAkQCAkKE9CSkVDVF9PQkpTKQotCSQoQVIpICQoQVJGTEFHUykgJEAgJChQWVRIT05fT0JKUykKKwkkKEFSKSAkKEFSRkxBR1MpICRAICQoUFlUSE9OX09CSlMpIFB5dGhvbi9mcm96ZW4ubwogCSQoQVIpICQoQVJGTEFHUykgJEAgJChNT0RVTEVfT0JKUykgJChTSUdOQUxfT0JKUykKIAkkKEFSKSAkKEFSRkxBR1MpICRAICQoTU9ET0JKUykKIAkkKFJBTkxJQikgJEAKQEAgLTQ5NSw3ICs1MzMsNyBAQAogCQktaW5zdGFsbF9uYW1lICQoREVTVERJUikkKFBZVEhPTkZSQU1FV09SS0lOU1RBTExESVIpL1ZlcnNpb25zLyQoVkVSU0lPTikvJChQWVRIT05GUkFNRVdPUkspIFwKIAkJLWNvbXBhdGliaWxpdHlfdmVyc2lvbiAkKFZFUlNJT04pIFwKIAkJLWN1cnJlbnRfdmVyc2lvbiAkKFZFUlNJT04pIFwKLQkJLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAkKExJQlMpOyAKKwkJLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAkKExJQlMpOwogCSQoSU5TVEFMTCkgLWQgLW0gJChESVJNT0RFKSAgXAogCQkkKFBZVEhPTkZSQU1FV09SS0RJUikvVmVyc2lvbnMvJChWRVJTSU9OKS9SZXNvdXJjZXMvRW5nbGlzaC5scHJvagogCSQoSU5TVEFMTF9EQVRBKSAkKFJFU1NSQ0RJUikvSW5mby5wbGlzdCBcCkBAIC01NDYsNiArNTg0LDE4IEBACiAJJChMSU5LQ0MpICQoUFlfTERGTEFHUykgJChMSU5LRk9SU0hBUkVEKSAtbyAkQCBNb2R1bGVzL190ZXN0ZW1iZWQubyAkKEJMRExJQlJBUlkpICQoTElCUykgJChNT0RMSUJTKSAkKFNZU0xJQlMpICQoTERMQVNUKQogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEltcG9ydGxpYgorCitNb2R1bGVzL19mcmVlemVfaW1wb3J0bGliOiBNb2R1bGVzL19mcmVlemVfaW1wb3J0bGliLm8gJChMSUJSQVJZX09CSlNfT01JVF9GUk9aRU4pCisJJChMSU5LQ0MpICQoUFlfTERGTEFHUykgLW8gJEAgTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYi5vICQoTElCUkFSWV9PQkpTX09NSVRfRlJPWkVOKSAkKExJQlMpICQoTU9ETElCUykgJChTWVNMSUJTKSAkKExETEFTVCkKKworUHl0aG9uL2ltcG9ydGxpYi5oOiAkKHNyY2RpcikvTGliL2ltcG9ydGxpYi9fYm9vdHN0cmFwLnB5IE1vZHVsZXMvX2ZyZWV6ZV9pbXBvcnRsaWIuYworCSQoTUFLRSkgTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYgorCS4vTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYiBcCisJCSQoc3JjZGlyKS9MaWIvaW1wb3J0bGliL19ib290c3RyYXAucHkgUHl0aG9uL2ltcG9ydGxpYi5oCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBTcGVjaWFsIHJ1bGVzIGZvciBvYmplY3QgZmlsZXMKIAogTW9kdWxlcy9nZXRidWlsZGluZm8ubzogJChQQVJTRVJfT0JKUykgXApAQCAtNTU2LDcgKzYwNiw2IEBACiAJCSQoTU9ET0JKUykgXAogCQkkKHNyY2RpcikvTW9kdWxlcy9nZXRidWlsZGluZm8uYwogCSQoQ0MpIC1jICQoUFlfQ09SRV9DRkxBR1MpIFwKLQkgICAgICAtRFNWTlZFUlNJT049IlwiYExDX0FMTD1DICQoU1ZOVkVSU0lPTilgXCIiIFwKIAkgICAgICAtREhHVkVSU0lPTj0iXCJgTENfQUxMPUMgJChIR1ZFUlNJT04pYFwiIiBcCiAJICAgICAgLURIR1RBRz0iXCJgTENfQUxMPUMgJChIR1RBRylgXCIiIFwKIAkgICAgICAtREhHQlJBTkNIPSJcImBMQ19BTEw9QyAkKEhHQlJBTkNIKWBcIiIgXApAQCAtNTczLDYgKzYyMiw5IEBACiBNb2R1bGVzL3B5dGhvbi5vOiAkKHNyY2RpcikvTW9kdWxlcy9weXRob24uYwogCSQoTUFJTkNDKSAtYyAkKFBZX0NPUkVfQ0ZMQUdTKSAtbyAkQCAkKHNyY2RpcikvTW9kdWxlcy9weXRob24uYwogCitNb2R1bGVzL190ZXN0ZW1iZWQubzogJChzcmNkaXIpL01vZHVsZXMvX3Rlc3RlbWJlZC5jCisJJChNQUlOQ0MpIC1jICQoUFlfQ09SRV9DRkxBR1MpIC1vICRAICQoc3JjZGlyKS9Nb2R1bGVzL190ZXN0ZW1iZWQuYworCiBQeXRob24vZHlubG9hZF9zaGxpYi5vOiAkKHNyY2RpcikvUHl0aG9uL2R5bmxvYWRfc2hsaWIuYyBNYWtlZmlsZQogCSQoQ0MpIC1jICQoUFlfQ09SRV9DRkxBR1MpIFwKIAkJLURTT0FCST0nIiQoU09BQkkpIicgXApAQCAtNTg1LDEyICs2MzcsMTMgQEAKIAogJChJT19PQkpTKTogJChJT19IKQogCi0jIFVzZSBhIHN0YW1wIGZpbGUgdG8gcHJldmVudCBtYWtlIC1qIGludm9raW5nIHBnZW4gdHdpY2UKLSQoR1JBTU1BUl9IKSAkKEdSQU1NQVJfQyk6IFBhcnNlci9wZ2VuLnN0YW1wCi1QYXJzZXIvcGdlbi5zdGFtcDogJChQR0VOKSAkKEdSQU1NQVJfSU5QVVQpCi0JCS1AJChJTlNUQUxMKSAtZCBJbmNsdWRlCiskKEdSQU1NQVJfSCk6ICQoR1JBTU1BUl9JTlBVVCkgJChQR0VOU1JDUykKKwkJQCQoTUtESVJfUCkgSW5jbHVkZQorCQkkKE1BS0UpICQoUEdFTikKIAkJJChQR0VOKSAkKEdSQU1NQVJfSU5QVVQpICQoR1JBTU1BUl9IKSAkKEdSQU1NQVJfQykKLQkJLXRvdWNoIFBhcnNlci9wZ2VuLnN0YW1wCiskKEdSQU1NQVJfQyk6ICQoR1JBTU1BUl9IKSAkKEdSQU1NQVJfSU5QVVQpICQoUEdFTlNSQ1MpCisJCSQoTUFLRSkgJChHUkFNTUFSX0gpCisJCXRvdWNoICQoR1JBTU1BUl9DKQogCiAkKFBHRU4pOgkkKFBHRU5PQkpTKQogCQkkKENDKSAkKE9QVCkgJChQWV9MREZMQUdTKSAkKFBHRU5PQkpTKSAkKExJQlMpIC1vICQoUEdFTikKQEAgLTYwMSwxMyArNjU0LDE1IEBACiBQYXJzZXIvbWV0YWdyYW1tYXIubzoJJChzcmNkaXIpL1BhcnNlci9tZXRhZ3JhbW1hci5jCiAKIFBhcnNlci90b2tlbml6ZXJfcGdlbi5vOgkkKHNyY2RpcikvUGFyc2VyL3Rva2VuaXplci5jCitQYXJzZXIvcGFyc2V0b2tfcGdlbi5vOgkkKHNyY2RpcikvUGFyc2VyL3BhcnNldG9rLmMKK1BhcnNlci9wcmludGdyYW1tYXIubzogJChzcmNkaXIpL1BhcnNlci9wcmludGdyYW1tYXIuYwogCiBQYXJzZXIvcGdlbm1haW4ubzoJJChzcmNkaXIpL0luY2x1ZGUvcGFyc2V0b2suaAogCiAkKEFTVF9IKTogJChBU1RfQVNETCkgJChBU0RMR0VOX0ZJTEVTKQogCSQoQVNETEdFTikgLWggJChBU1RfSF9ESVIpICQoQVNUX0FTREwpCiAKLSQoQVNUX0MpOiAkKEFTVF9BU0RMKSAkKEFTRExHRU5fRklMRVMpCiskKEFTVF9DKTogJChBU1RfSCkgJChBU1RfQVNETCkgJChBU0RMR0VOX0ZJTEVTKQogCSQoQVNETEdFTikgLWMgJChBU1RfQ19ESVIpICQoQVNUX0FTREwpCiAKIFB5dGhvbi9jb21waWxlLm8gUHl0aG9uL3N5bXRhYmxlLm8gUHl0aG9uL2FzdC5vOiAkKEdSQU1NQVJfSCkgJChBU1RfSCkKQEAgLTYyOCwyMCArNjgzLDI5IEBACiAJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi9lcS5oIFwKIAkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL2Zhc3RzZWFyY2guaCBcCiAJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi9maW5kLmggXAorCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvZmluZF9tYXhfY2hhci5oIFwKIAkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3BhcnRpdGlvbi5oIFwKIAkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3NwbGl0LmggXAogCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvc3RyaW5nZGVmcy5oIFwKLQkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3N0cmluZ19mb3JtYXQuaCBcCiAJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi90cmFuc21vZ3JpZnkuaCBcCiAJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi91bmljb2RlZGVmcy5oIFwKLQkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL2xvY2FsZXV0aWwuaAorCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvbG9jYWxldXRpbC5oIFwKKwkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3VuZGVmLmgKKworVU5JQ09ERV9ERVBTID0gJChCWVRFU1RSX0RFUFMpIFwKKwkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL2FzY2lpbGliLmggXAorCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvY29kZWNzLmggXAorCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvdWNzMWxpYi5oIFwKKwkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL3VjczJsaWIuaCBcCisJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi91Y3M0bGliLmggXAorCQkkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvdW5pY29kZV9mb3JtYXQuaCBcCisJCSQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi91bmljb2RlZGVmcy5oCiAKIE9iamVjdHMvYnl0ZXNvYmplY3QubzogJChzcmNkaXIpL09iamVjdHMvYnl0ZXNvYmplY3QuYyAkKEJZVEVTVFJfREVQUykKIAogT2JqZWN0cy9ieXRlYXJyYXlvYmplY3QubzogJChzcmNkaXIpL09iamVjdHMvYnl0ZWFycmF5b2JqZWN0LmMgJChCWVRFU1RSX0RFUFMpCiAKLU9iamVjdHMvdW5pY29kZW9iamVjdC5vOiAkKHNyY2RpcikvT2JqZWN0cy91bmljb2Rlb2JqZWN0LmMgXAotCQkJCSQoQllURVNUUl9ERVBTKQorT2JqZWN0cy91bmljb2Rlb2JqZWN0Lm86ICQoc3JjZGlyKS9PYmplY3RzL3VuaWNvZGVvYmplY3QuYyAkKFVOSUNPREVfREVQUykKIAogT2JqZWN0cy9kaWN0b2JqZWN0Lm86ICQoc3JjZGlyKS9PYmplY3RzL3N0cmluZ2xpYi9lcS5oCiBPYmplY3RzL3NldG9iamVjdC5vOiAkKHNyY2RpcikvT2JqZWN0cy9zdHJpbmdsaWIvZXEuaApAQCAtNjQ5LDExICs3MTMsMTIgQEAKICQoT1BDT0RFVEFSR0VUU19IKTogJChPUENPREVUQVJHRVRHRU5fRklMRVMpCiAJJChPUENPREVUQVJHRVRHRU4pICQoT1BDT0RFVEFSR0VUU19IKQogCi1QeXRob24vY2V2YWwubzogJChPUENPREVUQVJHRVRTX0gpIFB5dGhvbi9jZXZhbF9naWwuaAorUHl0aG9uL2NldmFsLm86ICQoT1BDT0RFVEFSR0VUU19IKSAkKHNyY2RpcikvUHl0aG9uL2NldmFsX2dpbC5oCiAKIFB5dGhvbi9mb3JtYXR0ZXJfdW5pY29kZS5vOiAkKHNyY2RpcikvUHl0aG9uL2Zvcm1hdHRlcl91bmljb2RlLmMgXAotCQkJCSQoQllURVNUUl9ERVBTKSBcCi0JCQkJJChzcmNkaXIpL09iamVjdHMvc3RyaW5nbGliL2Zvcm1hdHRlci5oCisJCQkJJChCWVRFU1RSX0RFUFMpCisKK1B5dGhvbi9mcm96ZW4ubzogJChzcmNkaXIpL1B5dGhvbi9pbXBvcnRsaWIuaAogCiBPYmplY3RzL3R5cGVvYmplY3QubzogJChzcmNkaXIpL09iamVjdHMvdHlwZXNsb3RzLmluYwogJChzcmNkaXIpL09iamVjdHMvdHlwZXNsb3RzLmluYzogJChzcmNkaXIpL0luY2x1ZGUvdHlwZXNsb3RzLmggJChzcmNkaXIpL09iamVjdHMvdHlwZXNsb3RzLnB5CkBAIC02NjMsODkgKzcyOCw4OSBAQAogIyBIZWFkZXIgZmlsZXMKIAogUFlUSE9OX0hFQURFUlM9IFwKLQkJSW5jbHVkZS9QeXRob24tYXN0LmggXAotCQlJbmNsdWRlL1B5dGhvbi5oIFwKLQkJSW5jbHVkZS9hYnN0cmFjdC5oIFwKLQkJSW5jbHVkZS9hY2N1LmggXAotCQlJbmNsdWRlL2FzZGwuaCBcCi0JCUluY2x1ZGUvYXN0LmggXAotICAgICAgICAgICAgICAgIEluY2x1ZGUvYmx0aW5tb2R1bGUuaCBcCi0JCUluY2x1ZGUvYml0c2V0LmggXAotCQlJbmNsdWRlL2Jvb2xvYmplY3QuaCBcCi0JCUluY2x1ZGUvYnl0ZXNfbWV0aG9kcy5oIFwKLQkJSW5jbHVkZS9ieXRlYXJyYXlvYmplY3QuaCBcCi0JCUluY2x1ZGUvYnl0ZXNvYmplY3QuaCBcCi0JCUluY2x1ZGUvY2VsbG9iamVjdC5oIFwKLQkJSW5jbHVkZS9jZXZhbC5oIFwKLQkJSW5jbHVkZS9jbGFzc29iamVjdC5oIFwKLQkJSW5jbHVkZS9jb2RlLmggXAotCQlJbmNsdWRlL2NvZGVjcy5oIFwKLQkJSW5jbHVkZS9jb21waWxlLmggXAotCQlJbmNsdWRlL2NvbXBsZXhvYmplY3QuaCBcCi0JCUluY2x1ZGUvZGVzY3JvYmplY3QuaCBcCi0JCUluY2x1ZGUvZGljdG9iamVjdC5oIFwKLQkJSW5jbHVkZS9kdG9hLmggXAotCQlJbmNsdWRlL2R5bmFtaWNfYW5ub3RhdGlvbnMuaCBcCi0JCUluY2x1ZGUvZW51bW9iamVjdC5oIFwKLQkJSW5jbHVkZS9lcnJjb2RlLmggXAotCQlJbmNsdWRlL2V2YWwuaCBcCi0JCUluY2x1ZGUvZmlsZW9iamVjdC5oIFwKLQkJSW5jbHVkZS9maWxldXRpbHMuaCBcCi0JCUluY2x1ZGUvZmxvYXRvYmplY3QuaCBcCi0JCUluY2x1ZGUvZnJhbWVvYmplY3QuaCBcCi0JCUluY2x1ZGUvZnVuY29iamVjdC5oIFwKLQkJSW5jbHVkZS9nZW5vYmplY3QuaCBcCi0JCUluY2x1ZGUvaW1wb3J0LmggXAotCQlJbmNsdWRlL2ludHJjaGVjay5oIFwKLQkJSW5jbHVkZS9pdGVyb2JqZWN0LmggXAotCQlJbmNsdWRlL2xpc3RvYmplY3QuaCBcCi0JCUluY2x1ZGUvbG9uZ2ludHJlcHIuaCBcCi0JCUluY2x1ZGUvbG9uZ29iamVjdC5oIFwKLQkJSW5jbHVkZS9tYXJzaGFsLmggXAotCQlJbmNsdWRlL21lbW9yeW9iamVjdC5oIFwKLQkJSW5jbHVkZS9tZXRhZ3JhbW1hci5oIFwKLQkJSW5jbHVkZS9tZXRob2RvYmplY3QuaCBcCi0JCUluY2x1ZGUvbW9kc3VwcG9ydC5oIFwKLQkJSW5jbHVkZS9tb2R1bGVvYmplY3QuaCBcCi0JCUluY2x1ZGUvbm9kZS5oIFwKLQkJSW5jbHVkZS9vYmplY3QuaCBcCi0JCUluY2x1ZGUvb2JqaW1wbC5oIFwKLQkJSW5jbHVkZS9vcGNvZGUuaCBcCi0JCUluY2x1ZGUvb3NkZWZzLmggXAotCQlJbmNsdWRlL3BhcnNldG9rLmggXAotCQlJbmNsdWRlL3BhdGNobGV2ZWwuaCBcCi0JCUluY2x1ZGUvcGdlbi5oIFwKLQkJSW5jbHVkZS9wZ2VuaGVhZGVycy5oIFwKLQkJSW5jbHVkZS9weWFyZW5hLmggXAotCQlJbmNsdWRlL3B5YXRvbWljLmggXAotCQlJbmNsdWRlL3B5Y2Fwc3VsZS5oIFwKLQkJSW5jbHVkZS9weWN0eXBlLmggXAotCQlJbmNsdWRlL3B5ZGVidWcuaCBcCi0JCUluY2x1ZGUvcHllcnJvcnMuaCBcCi0JCUluY2x1ZGUvcHlmcGUuaCBcCi0JCUluY2x1ZGUvcHltYXRoLmggXAotCQlJbmNsdWRlL3B5Z2V0b3B0LmggXAotCQlJbmNsdWRlL3B5bWVtLmggXAotCQlJbmNsdWRlL3B5cG9ydC5oIFwKLQkJSW5jbHVkZS9weXN0YXRlLmggXAotCQlJbmNsdWRlL3B5c3RyY21wLmggXAotCQlJbmNsdWRlL3B5c3RydG9kLmggXAotCQlJbmNsdWRlL3B5dGhvbnJ1bi5oIFwKLQkJSW5jbHVkZS9weXRocmVhZC5oIFwKLQkJSW5jbHVkZS9weXRpbWUuaCBcCi0JCUluY2x1ZGUvcmFuZ2VvYmplY3QuaCBcCi0JCUluY2x1ZGUvc2V0b2JqZWN0LmggXAotCQlJbmNsdWRlL3NsaWNlb2JqZWN0LmggXAotCQlJbmNsdWRlL3N0cnVjdG1lbWJlci5oIFwKLQkJSW5jbHVkZS9zdHJ1Y3RzZXEuaCBcCi0JCUluY2x1ZGUvc3ltdGFibGUuaCBcCi0JCUluY2x1ZGUvc3lzbW9kdWxlLmggXAotCQlJbmNsdWRlL3RyYWNlYmFjay5oIFwKLQkJSW5jbHVkZS90dXBsZW9iamVjdC5oIFwKLQkJSW5jbHVkZS91Y25oYXNoLmggXAotCQlJbmNsdWRlL3VuaWNvZGVvYmplY3QuaCBcCi0JCUluY2x1ZGUvd2FybmluZ3MuaCBcCi0JCUluY2x1ZGUvd2Vha3JlZm9iamVjdC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvUHl0aG9uLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9hYnN0cmFjdC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvYWNjdS5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvYXNkbC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvYXN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9ibHRpbm1vZHVsZS5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvYml0c2V0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9ib29sb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9ieXRlc19tZXRob2RzLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9ieXRlYXJyYXlvYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2J5dGVzb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9jZWxsb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9jZXZhbC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvY2xhc3NvYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2NvZGUuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2NvZGVjcy5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvY29tcGlsZS5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvY29tcGxleG9iamVjdC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvZGVzY3JvYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2RpY3RvYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2R0b2EuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2R5bmFtaWNfYW5ub3RhdGlvbnMuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2VudW1vYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2VycmNvZGUuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2V2YWwuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2ZpbGVvYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2ZpbGV1dGlscy5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvZmxvYXRvYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2ZyYW1lb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9mdW5jb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9nZW5vYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL2ltcG9ydC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvaW50cmNoZWNrLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9pdGVyb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9saXN0b2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9sb25naW50cmVwci5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvbG9uZ29iamVjdC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvbWFyc2hhbC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvbWVtb3J5b2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9tZXRhZ3JhbW1hci5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvbWV0aG9kb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9tb2RzdXBwb3J0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9tb2R1bGVvYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL25hbWVzcGFjZW9iamVjdC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvbm9kZS5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9vYmppbXBsLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9vcGNvZGUuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL29zZGVmcy5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvcGF0Y2hsZXZlbC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvcGdlbi5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvcGdlbmhlYWRlcnMuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3B5YXJlbmEuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3B5YXRvbWljLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9weWNhcHN1bGUuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3B5Y3R5cGUuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3B5ZGVidWcuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3B5ZXJyb3JzLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9weWZwZS5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvcHltYXRoLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9weWdldG9wdC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvcHltYWNyby5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvcHltZW0uaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3B5cG9ydC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvcHlzdGF0ZS5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvcHlzdHJjbXAuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3B5c3RydG9kLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9weXRob25ydW4uaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3B5dGhyZWFkLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9weXRpbWUuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3Jhbmdlb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9zZXRvYmplY3QuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3NsaWNlb2JqZWN0LmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS9zdHJ1Y3RtZW1iZXIuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3N0cnVjdHNlcS5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvc3ltdGFibGUuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3N5c21vZHVsZS5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvdHJhY2ViYWNrLmggXAorCQkkKHNyY2RpcikvSW5jbHVkZS90dXBsZW9iamVjdC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvdWNuaGFzaC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvdW5pY29kZW9iamVjdC5oIFwKKwkJJChzcmNkaXIpL0luY2x1ZGUvd2FybmluZ3MuaCBcCisJCSQoc3JjZGlyKS9JbmNsdWRlL3dlYWtyZWZvYmplY3QuaCBcCiAJCXB5Y29uZmlnLmggXAogCQkkKFBBUlNFUl9IRUFERVJTKQogCkBAIC03NTQsNjUgKzgxOSw1NiBAQAogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLSMgVGVzdCB0aGUgaW50ZXJwcmV0ZXIgKHR3aWNlLCBvbmNlIHdpdGhvdXQgLnB5YyBmaWxlcywgb25jZSB3aXRoKQorVEVTVE9QVFM9CSQoRVhUUkFURVNUT1BUUykKK1RFU1RQWVRIT049CSQoUlVOU0hBUkVEKSAuLyQoQlVJTERQWVRIT04pICQoVEVTVFBZVEhPTk9QVFMpCitURVNUUlVOTkVSPQkkKFRFU1RQWVRIT04pICQoc3JjZGlyKS9Ub29scy9zY3JpcHRzL3J1bl90ZXN0cy5weQorVEVTVFRJTUVPVVQ9CTM2MDAKKworIyBSdW4gYSBiYXNpYyBzZXQgb2YgcmVncmVzc2lvbiB0ZXN0cy4KKyMgVGhpcyBleGNsdWRlcyBzb21lIHRlc3RzIHRoYXQgYXJlIHBhcnRpY3VsYXJseSByZXNvdXJjZS1pbnRlbnNpdmUuCit0ZXN0OgkJYWxsIHBsYXRmb3JtCisJCSQoVEVTVFJVTk5FUikgJChURVNUT1BUUykKKworIyBSdW4gdGhlIGZ1bGwgdGVzdCBzdWl0ZSB0d2ljZSAtIG9uY2Ugd2l0aG91dCAucHljIGZpbGVzLCBhbmQgb25jZSB3aXRoLgogIyBJbiB0aGUgcGFzdCwgd2UndmUgaGFkIHByb2JsZW1zIHdoZXJlIGJ1Z3MgaW4gdGhlIG1hcnNoYWxsaW5nIG9yCiAjIGVsc2V3aGVyZSBjYXVzZWQgYnl0ZWNvZGUgcmVhZCBmcm9tIC5weWMgZmlsZXMgdG8gYmVoYXZlIGRpZmZlcmVudGx5CiAjIHRoYW4gYnl0ZWNvZGUgZ2VuZXJhdGVkIGRpcmVjdGx5IGZyb20gYSAucHkgc291cmNlIGZpbGUuICBTb21ldGltZXMKLSMgdGhlIGJ5dGVjb2RlIHJlYWQgZnJvbSBhIC5weWMgZmlsZSBoYWQgdGhlIGJ1Zywgc29tdGltZXMgdGhlIGRpcmVjdGx5CisjIHRoZSBieXRlY29kZSByZWFkIGZyb20gYSAucHljIGZpbGUgaGFkIHRoZSBidWcsIHNvbWV0aW1lcyB0aGUgZGlyZWN0bHkKICMgZ2VuZXJhdGVkIGJ5dGVjb2RlLiAgVGhpcyBpcyBzb21ldGltZXMgYSB2ZXJ5IHNoeSBidWcgbmVlZGluZyBhIGxvdCBvZgogIyBzYW1wbGUgZGF0YS4KLQotVEVTVE9QVFM9CS1sICQoRVhUUkFURVNUT1BUUykKLVRFU1RQUk9HPQkkKHNyY2RpcikvTGliL3Rlc3QvcmVncnRlc3QucHkKLVRFU1RQWVRIT049CSQoUlVOU0hBUkVEKSAuLyQoQlVJTERQWVRIT04pIC1XZCAtRSAtUiAtYmIgJChURVNUUFlUSE9OT1BUUykKLXRlc3Q6CQlhbGwgcGxhdGZvcm0KLQkJLWZpbmQgJChzcmNkaXIpL0xpYiAtbmFtZSAnKi5weVtjb10nIC1wcmludCB8IHhhcmdzIHJtIC1mCi0JCS0kKFRFU1RQWVRIT04pICQoVEVTVFBST0cpICQoVEVTVE9QVFMpCi0JCSQoVEVTVFBZVEhPTikgJChURVNUUFJPRykgJChURVNUT1BUUykKLQogdGVzdGFsbDoJYWxsIHBsYXRmb3JtCiAJCS1maW5kICQoc3JjZGlyKS9MaWIgLW5hbWUgJyoucHlbY29dJyAtcHJpbnQgfCB4YXJncyBybSAtZgotCQkkKFRFU1RQWVRIT04pICQoc3JjZGlyKS9MaWIvY29tcGlsZWFsbC5weQorCQkkKFRFU1RQWVRIT04pIC1FICQoc3JjZGlyKS9MaWIvY29tcGlsZWFsbC5weQogCQktZmluZCAkKHNyY2RpcikvTGliIC1uYW1lICcqLnB5W2NvXScgLXByaW50IHwgeGFyZ3Mgcm0gLWYKLQkJLSQoVEVTVFBZVEhPTikgJChURVNUUFJPRykgLXVhbGwgJChURVNUT1BUUykKLQkJJChURVNUUFlUSE9OKSAkKFRFU1RQUk9HKSAtdWFsbCAkKFRFU1RPUFRTKQorCQktJChURVNUUlVOTkVSKSAtdSBhbGwgJChURVNUT1BUUykKKwkJJChURVNUUlVOTkVSKSAtdSBhbGwgJChURVNUT1BUUykKIAotIyAgUnVuIHRoZSB1bml0ZXN0cyBmb3IgYm90aCBhcmNoaXRlY3R1cmVzIGluIGEgVW5pdmVyc2FsIGJ1aWxkIG9uIE9TWAotIyAgTXVzdCBiZSBydW4gb24gYW4gSW50ZWwgYm94LgorIyBSdW4gdGhlIHRlc3Qgc3VpdGUgZm9yIGJvdGggYXJjaGl0ZWN0dXJlcyBpbiBhIFVuaXZlcnNhbCBidWlsZCBvbiBPU1guCisjIE11c3QgYmUgcnVuIG9uIGFuIEludGVsIGJveC4KIHRlc3R1bml2ZXJzYWw6CWFsbCBwbGF0Zm9ybQogCQlpZiBbIGBhcmNoYCAhPSAnaTM4NicgXTt0aGVuIFwKIAkJCWVjaG8gIlRoaXMgY2FuIG9ubHkgYmUgdXNlZCBvbiBPU1gvaTM4NiIgO1wKIAkJCWV4aXQgMSA7XAogCQlmaQotCQktZmluZCAkKHNyY2RpcikvTGliIC1uYW1lICcqLnB5W2NvXScgLXByaW50IHwgeGFyZ3Mgcm0gLWYKLQkJLSQoVEVTVFBZVEhPTikgJChURVNUUFJPRykgLXVhbGwgJChURVNUT1BUUykKLQkJJChURVNUUFlUSE9OKSAkKFRFU1RQUk9HKSAtdWFsbCAkKFRFU1RPUFRTKQotCQkkKFJVTlNIQVJFRCkgL3Vzci9saWJleGVjL29haC90cmFuc2xhdGUgLi8kKEJVSUxEUFlUSE9OKSAtRSAkKFRFU1RQUk9HKSAtdWFsbCAkKFRFU1RPUFRTKQorCQkkKFRFU1RSVU5ORVIpIC11IGFsbCAkKFRFU1RPUFRTKQorCQkkKFJVTlNIQVJFRCkgL3Vzci9saWJleGVjL29haC90cmFuc2xhdGUgXAorCQkJLi8kKEJVSUxEUFlUSE9OKSAtRSAtbSB0ZXN0IC1qIDAgLXUgYWxsICQoVEVTVE9QVFMpCiAKLQotIyBMaWtlIHRlc3RhbGwsIGJ1dCB3aXRoIGEgc2luZ2xlIHBhc3Mgb25seQotIyBydW4gYW4gb3B0aW9uYWwgc2NyaXB0IHRvIGluY2x1ZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgYnVpbGQgZW52aXJvbm1lbnQKKyMgTGlrZSB0ZXN0YWxsLCBidXQgd2l0aCBvbmx5IG9uZSBwYXNzIGFuZCB3aXRob3V0IG11bHRpcGxlIHByb2Nlc3Nlcy4KKyMgUnVuIGFuIG9wdGlvbmFsIHNjcmlwdCB0byBpbmNsdWRlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBidWlsZCBlbnZpcm9ubWVudC4KIGJ1aWxkYm90dGVzdDoJYWxsIHBsYXRmb3JtCiAJCS1AaWYgd2hpY2ggcHlidWlsZGJvdC5pZGVudGlmeSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAogCQkJcHlidWlsZGJvdC5pZGVudGlmeSAiQ0M9JyQoQ0MpJyIgIkNYWD0nJChDWFgpJyI7IFwKIAkJZmkKLQkJJChURVNUUFlUSE9OKSAkKFRFU1RQUk9HKSAtdWFsbCAtcndXICQoVEVTVE9QVFMpCisJCSQoVEVTVFJVTk5FUikgLWogMSAtdSBhbGwgLVcgLS10aW1lb3V0PSQoVEVTVFRJTUVPVVQpICQoVEVTVE9QVFMpCiAKIFFVSUNLVEVTVE9QVFM9CSQoVEVTVE9QVFMpIC14IHRlc3Rfc3VicHJvY2VzcyB0ZXN0X2lvIHRlc3RfbGliMnRvMyBcCiAJCXRlc3RfbXVsdGlieXRlY29kZWMgdGVzdF91cmxsaWIyX2xvY2FsbmV0IHRlc3RfaXRlcnRvb2xzIFwKIAkJdGVzdF9tdWx0aXByb2Nlc3NpbmcgdGVzdF9tYWlsYm94IHRlc3Rfc29ja2V0IHRlc3RfcG9sbCBcCi0JCXRlc3Rfc2VsZWN0IHRlc3RfemlwZmlsZQorCQl0ZXN0X3NlbGVjdCB0ZXN0X3ppcGZpbGUgdGVzdF9jb25jdXJyZW50X2Z1dHVyZXMKIHF1aWNrdGVzdDoJYWxsIHBsYXRmb3JtCi0JCS1maW5kICQoc3JjZGlyKS9MaWIgLW5hbWUgJyoucHlbY29dJyAtcHJpbnQgfCB4YXJncyBybSAtZgotCQktJChURVNUUFlUSE9OKSAkKFRFU1RQUk9HKSAkKFFVSUNLVEVTVE9QVFMpCi0JCSQoVEVTVFBZVEhPTikgJChURVNUUFJPRykgJChRVUlDS1RFU1RPUFRTKQorCQkkKFRFU1RSVU5ORVIpICQoUVVJQ0tURVNUT1BUUykKIAotTUVNVEVTVE9QVFM9ICAgICQoUVVJQ0tURVNUT1BUUykgLXggdGVzdF9kbCB0ZXN0X19fYWxsX18gdGVzdF9mb3JrMSBcCi0JCXRlc3RfbG9uZ2V4cAotbWVtdGVzdDoJYWxsIHBsYXRmb3JtCi0JCS1ybSAtZiAkKHNyY2RpcikvTGliL3Rlc3QvKi5weVtjb10KLQkJLSQoVEVTVFBZVEhPTikgJChURVNUUFJPRykgJChNRU1URVNUT1BUUykKLQkJJChURVNUUFlUSE9OKSAkKFRFU1RQUk9HKSAkKE1FTVRFU1RPUFRTKQogCiBpbnN0YWxsOiBhbHRpbnN0YWxsIGJpbmluc3RhbGwKIApAQCAtODUzLDcgKzkwOSw3IEBACiAJZG9uZQogCSQoSU5TVEFMTF9QUk9HUkFNKSAkKEJVSUxEUFlUSE9OKSAkKERFU1RESVIpJChCSU5ESVIpL3B5dGhvbiQoTERWRVJTSU9OKSQoRVhFKQogCS1pZiB0ZXN0ICIkKFZFUlNJT04pIiAhPSAiJChMRFZFUlNJT04pIjsgdGhlbiBcCi0JCWlmIHRlc3QgLWYgJChERVNURElSKSQoQklORElSKS8kKFBZVEhPTikkKFZFUlNJT04pJChFWEUpIC1vIC1oICQoREVTVERJUikkKEJJTkRJUikvJChQWVRIT04pJChWRVJTSU9OKSQoRVhFKTsgXAorCQlpZiB0ZXN0IC1mICQoREVTVERJUikkKEJJTkRJUikvcHl0aG9uJChWRVJTSU9OKSQoRVhFKSAtbyAtaCAkKERFU1RESVIpJChCSU5ESVIpL3B5dGhvbiQoVkVSU0lPTikkKEVYRSk7IFwKIAkJdGhlbiBybSAtZiAkKERFU1RESVIpJChCSU5ESVIpL3B5dGhvbiQoVkVSU0lPTikkKEVYRSk7IFwKIAkJZmk7IFwKIAkJKGNkICQoREVTVERJUikkKEJJTkRJUik7ICQoTE4pIHB5dGhvbiQoTERWRVJTSU9OKSQoRVhFKSBweXRob24kKFZFUlNJT04pJChFWEUpKTsgXApAQCAtODc0LDExICs5MzAsMTEgQEAKIAlmaQogCiBiaW5pbnN0YWxsOiBhbHRiaW5pbnN0YWxsCi0JLWlmIHRlc3QgLWYgJChERVNURElSKSQoQklORElSKS8kKFBZVEhPTikzJChFWEUpIC1vIC1oICQoREVTVERJUikkKEJJTkRJUikvJChQWVRIT04pMyQoRVhFKTsgXAotCXRoZW4gcm0gLWYgJChERVNURElSKSQoQklORElSKS8kKFBZVEhPTikzJChFWEUpOyBcCisJLWlmIHRlc3QgLWYgJChERVNURElSKSQoQklORElSKS9weXRob24zJChFWEUpIC1vIC1oICQoREVTVERJUikkKEJJTkRJUikvcHl0aG9uMyQoRVhFKTsgXAorCXRoZW4gcm0gLWYgJChERVNURElSKSQoQklORElSKS9weXRob24zJChFWEUpOyBcCiAJZWxzZSB0cnVlOyBcCiAJZmkKLQkoY2QgJChERVNURElSKSQoQklORElSKTsgJChMTikgcHl0aG9uJChWRVJTSU9OKSQoRVhFKSAkKFBZVEhPTikzJChFWEUpKQorCShjZCAkKERFU1RESVIpJChCSU5ESVIpOyAkKExOKSAtcyBweXRob24kKFZFUlNJT04pJChFWEUpIHB5dGhvbjMkKEVYRSkpCiAJLWlmIHRlc3QgIiQoVkVSU0lPTikiICE9ICIkKExEVkVSU0lPTikiOyB0aGVuIFwKIAkJcm0gLWYgJChERVNURElSKSQoQklORElSKS9weXRob24kKFZFUlNJT04pLWNvbmZpZzsgXAogCQkoY2QgJChERVNURElSKSQoQklORElSKTsgJChMTikgLXMgcHl0aG9uJChMRFZFUlNJT04pLWNvbmZpZyBweXRob24kKFZFUlNJT04pLWNvbmZpZyk7IFwKQEAgLTg5NSw2ICs5NTEsOCBAQAogCShjZCAkKERFU1RESVIpJChCSU5ESVIpOyAkKExOKSAtcyBweWRvYyQoVkVSU0lPTikgcHlkb2MzKQogCS1ybSAtZiAkKERFU1RESVIpJChCSU5ESVIpLzJ0bzMKIAkoY2QgJChERVNURElSKSQoQklORElSKTsgJChMTikgLXMgMnRvMy0kKFZFUlNJT04pIDJ0bzMpCisJLXJtIC1mICQoREVTVERJUikkKEJJTkRJUikvcHl2ZW52CisJKGNkICQoREVTVERJUikkKEJJTkRJUik7ICQoTE4pIC1zIHB5dmVudi0kKFZFUlNJT04pIHB5dmVudikKIAogIyBJbnN0YWxsIHRoZSBtYW51YWwgcGFnZQogbWFuaW5zdGFsbDoKQEAgLTkyMCwxMyArOTc4LDM0IEBACiAJCXRlc3QvY2prZW5jb2RpbmdzIHRlc3QvZGVjaW1hbHRlc3RkYXRhIHRlc3QveG1sdGVzdGRhdGEgXAogCQl0ZXN0L3N1YnByb2Nlc3NkYXRhIHRlc3Qvc25kaGRyZGF0YSBcCiAJCXRlc3QvdHJhY2VkbW9kdWxlcyB0ZXN0L2VuY29kZWRfbW9kdWxlcyBcCi0JCWNvbmN1cnJlbnQgY29uY3VycmVudC9mdXR1cmVzIGVuY29kaW5ncyBcCi0JCWVtYWlsIGVtYWlsL21pbWUgZW1haWwvdGVzdCBlbWFpbC90ZXN0L2RhdGEgXAorCQl0ZXN0L25hbWVzcGFjZV9wa2dzIFwKKwkJdGVzdC9uYW1lc3BhY2VfcGtncy9ib3RoX3BvcnRpb25zIFwKKwkJdGVzdC9uYW1lc3BhY2VfcGtncy9ib3RoX3BvcnRpb25zL2ZvbyBcCisJCXRlc3QvbmFtZXNwYWNlX3BrZ3Mvbm90X2FfbmFtZXNwYWNlX3BrZyBcCisJCXRlc3QvbmFtZXNwYWNlX3BrZ3Mvbm90X2FfbmFtZXNwYWNlX3BrZy9mb28gXAorCQl0ZXN0L25hbWVzcGFjZV9wa2dzL3BvcnRpb24xIFwKKwkJdGVzdC9uYW1lc3BhY2VfcGtncy9wb3J0aW9uMS9mb28gXAorCQl0ZXN0L25hbWVzcGFjZV9wa2dzL3BvcnRpb24yIFwKKwkJdGVzdC9uYW1lc3BhY2VfcGtncy9wb3J0aW9uMi9mb28gXAorCQl0ZXN0L25hbWVzcGFjZV9wa2dzL3Byb2plY3QxIFwKKwkJdGVzdC9uYW1lc3BhY2VfcGtncy9wcm9qZWN0MS9wYXJlbnQgXAorCQl0ZXN0L25hbWVzcGFjZV9wa2dzL3Byb2plY3QxL3BhcmVudC9jaGlsZCBcCisJCXRlc3QvbmFtZXNwYWNlX3BrZ3MvcHJvamVjdDIgXAorCQl0ZXN0L25hbWVzcGFjZV9wa2dzL3Byb2plY3QyL3BhcmVudCBcCisJCXRlc3QvbmFtZXNwYWNlX3BrZ3MvcHJvamVjdDIvcGFyZW50L2NoaWxkIFwKKwkJdGVzdC9uYW1lc3BhY2VfcGtncy9wcm9qZWN0MyBcCisJCXRlc3QvbmFtZXNwYWNlX3BrZ3MvcHJvamVjdDMvcGFyZW50IFwKKwkJdGVzdC9uYW1lc3BhY2VfcGtncy9wcm9qZWN0My9wYXJlbnQvY2hpbGQgXAorICAgICAgICAgICAgICAgIHRlc3QvbmFtZXNwYWNlX3BrZ3MvbW9kdWxlX2FuZF9uYW1lc3BhY2VfcGFja2FnZSBcCisgICAgICAgICAgICAgICAgdGVzdC9uYW1lc3BhY2VfcGtncy9tb2R1bGVfYW5kX25hbWVzcGFjZV9wYWNrYWdlL2FfdGVzdCBcCisJCWNvbGxlY3Rpb25zIGNvbmN1cnJlbnQgY29uY3VycmVudC9mdXR1cmVzIGVuY29kaW5ncyBcCisJCWVtYWlsIGVtYWlsL21pbWUgdGVzdC90ZXN0X2VtYWlsIHRlc3QvdGVzdF9lbWFpbC9kYXRhIFwKIAkJaHRtbCBqc29uIHRlc3QvanNvbl90ZXN0cyBodHRwIGRibSB4bWxycGMgXAogCQlzcWxpdGUzIHNxbGl0ZTMvdGVzdCBcCiAJCWxvZ2dpbmcgY3N2IHdzZ2lyZWYgdXJsbGliIFwKIAkJbGliMnRvMyBsaWIydG8zL2ZpeGVzIGxpYjJ0bzMvcGdlbjIgbGliMnRvMy90ZXN0cyBcCi0JCWxpYjJ0bzMvdGVzdHMvZGF0YSBsaWIydG8zL3Rlc3RzL2RhdGEvZml4ZXJzIGxpYjJ0bzMvdGVzdHMvZGF0YS9maXhlcnMvbXlmaXhlcyBcCisJCWxpYjJ0bzMvdGVzdHMvZGF0YSBsaWIydG8zL3Rlc3RzL2RhdGEvZml4ZXJzIFwKKwkJbGliMnRvMy90ZXN0cy9kYXRhL2ZpeGVycy9teWZpeGVzIFwKIAkJY3R5cGVzIGN0eXBlcy90ZXN0IGN0eXBlcy9tYWNob2xpYiBpZGxlbGliIGlkbGVsaWIvSWNvbnMgXAogCQlkaXN0dXRpbHMgZGlzdHV0aWxzL2NvbW1hbmQgZGlzdHV0aWxzL3Rlc3RzICQoWE1MTElCU1VCRElSUykgXAogCQlpbXBvcnRsaWIgaW1wb3J0bGliL3Rlc3QgaW1wb3J0bGliL3Rlc3QvYnVpbHRpbiBcCkBAIC05MzQsNyArMTAxMyw4IEBACiAJCWltcG9ydGxpYi90ZXN0L2ltcG9ydF8gaW1wb3J0bGliL3Rlc3Qvc291cmNlIFwKIAkJdHVydGxlZGVtbyBcCiAJCW11bHRpcHJvY2Vzc2luZyBtdWx0aXByb2Nlc3NpbmcvZHVtbXkgXAotCQl1bml0dGVzdCB1bml0dGVzdC90ZXN0IFwKKwkJdW5pdHRlc3QgdW5pdHRlc3QvdGVzdCB1bml0dGVzdC90ZXN0L3Rlc3Rtb2NrIFwKKwkJdmVudiB2ZW52L3NjcmlwdHMgdmVudi9zY3JpcHRzL3Bvc2l4IFwKIAkJY3Vyc2VzIHB5ZG9jX2RhdGEgJChNQUNIREVQUykKIGxpYmluc3RhbGw6CWJ1aWxkX2FsbCAkKHNyY2RpcikvTGliLyQoUExBVERJUikgJChzcmNkaXIpL01vZHVsZXMveHhtb2R1bGUuYwogCUBmb3IgaSBpbiAkKFNDUklQVERJUikgJChMSUJERVNUKTsgXApAQCAtOTU2LDcgKzEwMzYsNyBAQAogCQllbHNlCXRydWU7IFwKIAkJZmk7IFwKIAlkb25lCi0JQGZvciBpIGluICQoc3JjZGlyKS9MaWIvKi5weSAkKHNyY2RpcikvTGliLyouZWdnLWluZm8gOyBcCisJQGZvciBpIGluICQoc3JjZGlyKS9MaWIvKi5weSA7IFwKIAlkbyBcCiAJCWlmIHRlc3QgLXggJCRpOyB0aGVuIFwKIAkJCSQoSU5TVEFMTF9TQ1JJUFQpICQkaSAkKERFU1RESVIpJChMSUJERVNUKTsgXApAQCAtOTk3LDI1ICsxMDc3LDI1IEBACiAJCQkkKERFU1RESVIpJChMSUJERVNUKS9kaXN0dXRpbHMvdGVzdHMgOyBcCiAJZmkKIAktUFlUSE9OUEFUSD0kKERFU1RESVIpJChMSUJERVNUKSAgJChSVU5TSEFSRUQpIFwKLQkJLi8kKEJVSUxEUFlUSE9OKSAtV2kgJChERVNURElSKSQoTElCREVTVCkvY29tcGlsZWFsbC5weSBcCisJCSQoUFlUSE9OX0ZPUl9CVUlMRCkgLVdpICQoREVTVERJUikkKExJQkRFU1QpL2NvbXBpbGVhbGwucHkgXAogCQktZCAkKExJQkRFU1QpIC1mIFwKIAkJLXggJ2JhZF9jb2Rpbmd8YmFkc3ludGF4fHNpdGUtcGFja2FnZXN8bGliMnRvMy90ZXN0cy9kYXRhJyBcCiAJCSQoREVTVERJUikkKExJQkRFU1QpCiAJLVBZVEhPTlBBVEg9JChERVNURElSKSQoTElCREVTVCkgJChSVU5TSEFSRUQpIFwKLQkJLi8kKEJVSUxEUFlUSE9OKSAtV2kgLU8gJChERVNURElSKSQoTElCREVTVCkvY29tcGlsZWFsbC5weSBcCisJCSQoUFlUSE9OX0ZPUl9CVUlMRCkgLVdpIC1PICQoREVTVERJUikkKExJQkRFU1QpL2NvbXBpbGVhbGwucHkgXAogCQktZCAkKExJQkRFU1QpIC1mIFwKIAkJLXggJ2JhZF9jb2Rpbmd8YmFkc3ludGF4fHNpdGUtcGFja2FnZXN8bGliMnRvMy90ZXN0cy9kYXRhJyBcCiAJCSQoREVTVERJUikkKExJQkRFU1QpCiAJLVBZVEhPTlBBVEg9JChERVNURElSKSQoTElCREVTVCkgICQoUlVOU0hBUkVEKSBcCi0JCS4vJChCVUlMRFBZVEhPTikgLVdpICQoREVTVERJUikkKExJQkRFU1QpL2NvbXBpbGVhbGwucHkgXAorCQkkKFBZVEhPTl9GT1JfQlVJTEQpIC1XaSAkKERFU1RESVIpJChMSUJERVNUKS9jb21waWxlYWxsLnB5IFwKIAkJLWQgJChMSUJERVNUKS9zaXRlLXBhY2thZ2VzIC1mIFwKIAkJLXggYmFkc3ludGF4ICQoREVTVERJUikkKExJQkRFU1QpL3NpdGUtcGFja2FnZXMKIAktUFlUSE9OUEFUSD0kKERFU1RESVIpJChMSUJERVNUKSAkKFJVTlNIQVJFRCkgXAotCQkuLyQoQlVJTERQWVRIT04pIC1XaSAtTyAkKERFU1RESVIpJChMSUJERVNUKS9jb21waWxlYWxsLnB5IFwKKwkJJChQWVRIT05fRk9SX0JVSUxEKSAtV2kgLU8gJChERVNURElSKSQoTElCREVTVCkvY29tcGlsZWFsbC5weSBcCiAJCS1kICQoTElCREVTVCkvc2l0ZS1wYWNrYWdlcyAtZiBcCiAJCS14IGJhZHN5bnRheCAkKERFU1RESVIpJChMSUJERVNUKS9zaXRlLXBhY2thZ2VzCiAJLVBZVEhPTlBBVEg9JChERVNURElSKSQoTElCREVTVCkgJChSVU5TSEFSRUQpIFwKLQkJLi8kKEJVSUxEUFlUSE9OKSAtV2kgLWMgImltcG9ydCBsaWIydG8zLnB5Z3JhbSwgbGliMnRvMy5wYXRjb21wO2xpYjJ0bzMucGF0Y29tcC5QYXR0ZXJuQ29tcGlsZXIoKSIKKwkJJChQWVRIT05fRk9SX0JVSUxEKSAtV2kgLWMgImltcG9ydCBsaWIydG8zLnB5Z3JhbSwgbGliMnRvMy5wYXRjb21wO2xpYjJ0bzMucGF0Y29tcC5QYXR0ZXJuQ29tcGlsZXIoKSIKIAogIyBDcmVhdGUgdGhlIFBMQVRESVIgc291cmNlIGRpcmVjdG9yeSwgaWYgb25lIHdhc24ndCBkaXN0cmlidXRlZC4uCiAkKHNyY2RpcikvTGliLyQoUExBVERJUik6CkBAIC0xMTA5LDcgKzExODksNyBAQAogIyBJbnN0YWxsIHRoZSBkeW5hbWljYWxseSBsb2FkYWJsZSBtb2R1bGVzCiAjIFRoaXMgZ29lcyBpbnRvICQoZXhlY19wcmVmaXgpCiBzaGFyZWRpbnN0YWxsOiBzaGFyZWRtb2RzCi0JJChSVU5TSEFSRUQpIC4vJChCVUlMRFBZVEhPTikgLUUgJChzcmNkaXIpL3NldHVwLnB5IGluc3RhbGwgXAorCSQoUlVOU0hBUkVEKSAkKFBZVEhPTl9GT1JfQlVJTEQpICQoc3JjZGlyKS9zZXR1cC5weSBpbnN0YWxsIFwKIAkgICAJLS1wcmVmaXg9JChwcmVmaXgpIFwKIAkJLS1pbnN0YWxsLXNjcmlwdHM9JChCSU5ESVIpIFwKIAkJLS1pbnN0YWxsLXBsYXRsaWI9JChERVNUU0hBUkVEKSBcCkBAIC0xMTgxLDEzICsxMjYxLDEzIEBACiAjIFRoaXMgaW5zdGFsbHMgYSBmZXcgb2YgdGhlIHVzZWZ1bCBzY3JpcHRzIGluIFRvb2xzL3NjcmlwdHMKIHNjcmlwdHNpbnN0YWxsOgogCVNSQ0RJUj0kKHNyY2RpcikgJChSVU5TSEFSRUQpIFwKLQkuLyQoQlVJTERQWVRIT04pICQoc3JjZGlyKS9Ub29scy9zY3JpcHRzL3NldHVwLnB5IGluc3RhbGwgXAorCSQoUFlUSE9OX0ZPUl9CVUlMRCkgJChzcmNkaXIpL1Rvb2xzL3NjcmlwdHMvc2V0dXAucHkgaW5zdGFsbCBcCiAJLS1wcmVmaXg9JChwcmVmaXgpIFwKIAktLWluc3RhbGwtc2NyaXB0cz0kKEJJTkRJUikgXAogCS0tcm9vdD0kKERFU1RESVIpLwogCiAjIEJ1aWxkIHRoZSB0b3BsZXZlbCBNYWtlZmlsZQotTWFrZWZpbGUucHJlOiBNYWtlZmlsZS5wcmUuaW4gY29uZmlnLnN0YXR1cworTWFrZWZpbGUucHJlOiAkKHNyY2RpcikvTWFrZWZpbGUucHJlLmluIGNvbmZpZy5zdGF0dXMKIAlDT05GSUdfRklMRVM9TWFrZWZpbGUucHJlIENPTkZJR19IRUFERVJTPSAkKFNIRUxMKSBjb25maWcuc3RhdHVzCiAJJChNQUtFKSAtZiBNYWtlZmlsZS5wcmUgTWFrZWZpbGUKIApAQCAtMTIzMCw2ICsxMzEwLDEwIEBACiAJZXRhZ3MgSW5jbHVkZS8qLmg7IFwKIAlmb3IgaSBpbiAkKFNSQ0RJUlMpOyBkbyBldGFncyAtYSAkJGkvKi5bY2hdOyBkb25lCiAKKyMgVG91Y2ggZ2VuZXJhdGVkIGZpbGVzCit0b3VjaDoKKwloZyAtLWNvbmZpZyBleHRlbnNpb25zLnRvdWNoPVRvb2xzL2hnL2hndG91Y2gucHkgdG91Y2ggLXYKKwogIyBTYW5pdGF0aW9uIHRhcmdldHMgLS0gY2xlYW4gbGVhdmVzIGxpYnJhcmllcywgZXhlY3V0YWJsZXMgYW5kIHRhZ3MKICMgZmlsZXMsIHdoaWNoIGNsb2JiZXIgcmVtb3ZlcyBhcyB3ZWxsCiBweWNyZW1vdmFsOgpAQCAtMTI1NCwxNCArMTMzOCwxNSBAQAogCWZpbmQgYnVpbGQgLW5hbWUgJ2ZmaWNvbmZpZy5oJyAtZXhlYyBybSAtZiB7fSAnOycgfHwgdHJ1ZQogCWZpbmQgYnVpbGQgLW5hbWUgJ2ZmaWNvbmZpZy5weScgLWV4ZWMgcm0gLWYge30gJzsnIHx8IHRydWUKIAktcm0gLWYgTGliL2xpYjJ0bzMvKkdyYW1tYXIqLnBpY2tsZQotCS1ybSAtZiBNb2R1bGVzL190ZXN0ZW1iZWQKKwktcm0gLWYgJChTWVNDT05GSUdEQVRBKQorCS1ybSAtZiBNb2R1bGVzL190ZXN0ZW1iZWQgTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYgogCiBwcm9maWxlLXJlbW92YWw6CiAJZmluZCAuIC1uYW1lICcqLmdjPz8nIC1leGVjIHJtIC1mIHt9ICc7JwogCiBjbG9iYmVyOiBjbGVhbiBwcm9maWxlLXJlbW92YWwKIAktcm0gLWYgJChCVUlMRFBZVEhPTikgJChQR0VOKSAkKExJQlJBUlkpICQoTERMSUJSQVJZKSAkKERMTExJQlJBUlkpIFwKLQkJdGFncyBUQUdTIFBhcnNlci9wZ2VuLnN0YW1wIFwKKwkJdGFncyBUQUdTIFwKIAkJY29uZmlnLmNhY2hlIGNvbmZpZy5sb2cgcHljb25maWcuaCBNb2R1bGVzL2NvbmZpZy5jCiAJLXJtIC1yZiBidWlsZCBwbGF0Zm9ybQogCS1ybSAtcmYgJChQWVRIT05GUkFNRVdPUktESVIpCkBAIC0xMjkyLDggKzEzNzcsNyBAQAogIyBGaW5kIGZpbGVzIHdpdGggZnVubnkgbmFtZXMKIGZ1bm55OgogCWZpbmQgJChTVUJESVJTKSAkKFNVQkRJUlNUT08pIFwKLQkJLW5hbWUgLnN2biAtcHJ1bmUgXAotCQktbyAtdHlwZSBkIFwKKwkJLXR5cGUgZCBcCiAJCS1vIC1uYW1lICcqLltjaHNdJyBcCiAJCS1vIC1uYW1lICcqLnB5JyBcCiAJCS1vIC1uYW1lICcqLnB5dycgXApAQCAtMTMzMiwxMyArMTQxNiwxMyBAQAogUHl0aG9uL3RocmVhZC5vOiBAVEhSRUFESEVBREVSU0AKIAogIyBEZWNsYXJlIHRhcmdldHMgdGhhdCBhcmVuJ3QgcmVhbCBmaWxlcwotLlBIT05ZOiBhbGwgYnVpbGRfYWxsIHNoYXJlZG1vZHMgb2xkc2hhcmVkbW9kcyB0ZXN0IHF1aWNrdGVzdCBtZW10ZXN0CisuUEhPTlk6IGFsbCBidWlsZF9hbGwgc2hhcmVkbW9kcyBvbGRzaGFyZWRtb2RzIHRlc3QgcXVpY2t0ZXN0CiAuUEhPTlk6IGluc3RhbGwgYWx0aW5zdGFsbCBvbGRzaGFyZWRpbnN0YWxsIGJpbmluc3RhbGwgYWx0YmluaW5zdGFsbAogLlBIT05ZOiBtYW5pbnN0YWxsIGxpYmluc3RhbGwgaW5jbGluc3RhbGwgbGliYWluc3RhbGwgc2hhcmVkaW5zdGFsbAogLlBIT05ZOiBmcmFtZXdvcmtpbnN0YWxsIGZyYW1ld29ya2luc3RhbGxmcmFtZXdvcmsgZnJhbWV3b3JraW5zdGFsbHN0cnVjdHVyZQogLlBIT05ZOiBmcmFtZXdvcmtpbnN0YWxsbWFjbGliIGZyYW1ld29ya2luc3RhbGxhcHBzIGZyYW1ld29ya2luc3RhbGx1bml4dG9vbHMKIC5QSE9OWTogZnJhbWV3b3JrYWx0aW5zdGFsbHVuaXh0b29scyByZWNoZWNrIGF1dG9jb25mIGNsZWFuIGNsb2JiZXIgZGlzdGNsZWFuCi0uUEhPTlk6IHNtZWxseSBmdW5ueSBwYXRjaGNoZWNrCisuUEhPTlk6IHNtZWxseSBmdW5ueSBwYXRjaGNoZWNrIHRvdWNoCiAuUEhPTlk6IGdkYmhvb2tzCiAKICMgSUYgWU9VIFBVVCBBTllUSElORyBIRVJFIElUIFdJTEwgR08gQVdBWQpkaWZmIC0tZ2l0IGEvTWlzYy9BQ0tTIGIvTWlzYy9BQ0tTCmluZGV4IGVmYTczMzkuLjYyZDNlMDEgMTAwNjQ0Ci0tLSBhL01pc2MvQUNLUworKysgYi9NaXNjL0FDS1MKQEAgLTExLDggKzExLDExIEBACiBQUzogSW4gdGhlIHN0YW5kYXJkIFB5dGhvbiBkaXN0cmlidXRpb24sIHRoaXMgZmlsZSBpcyBlbmNvZGVkIGluIFVURi04CiBhbmQgdGhlIGxpc3QgaXMgaW4gcm91Z2ggYWxwaGFiZXRpY2FsIG9yZGVyIGJ5IGxhc3QgbmFtZXMuCiAKK1Jhaml2IEFicmFoYW0KIERhdmlkIEFicmFoYW1zCitNYXJjIEFicmFtb3dpdHoKIFJvbiBBZGFtCitBbGkgQWZzaGFyCiBKaW0gQWhsc3Ryb20KIEZhcmhhbiBBaG1hZAogTWF0dGhldyBBaHJlbnMKQEAgLTMwLDYgKzMzLDcgQEAKIEVyaWsgQW5kZXJzw6luCiBPbGl2ZXIgQW5kcmljaAogUm9zcyBBbmRydXMKK0p1YW5jYXJsbyBBw7FlegogSsOpcsOpbXkgQW5nZXIKIEpvbiBBbmdsaW4KIMOJcmljIEFyYXVqbwpAQCAtMzcsMTIgKzQxLDEyIEBACiBKYXNvbiBBc2JhaHIKIERhdmlkIEFzY2hlcgogQ2hyaXMgQXRMZWUKK0F5bWVyaWMgQXVndXN0aW4KIEpvaG4gQXljb2NrCi1KYW4tSGVpbiBCw7xocm1hbgogRG9ub3ZhbiBCYWFyZGEKIEF0dGlsYSBCYWJvCi1BbGZvbnNvIEJhY2llcm8KIE1hcmNpbiBCYWNocnkKK0FsZm9uc28gQmFjaWVybwogRHdheW5lIEJhaWxleQogU3RpZyBCYWtrZW4KIEdyZWcgQmFsbApAQCAtNTQsMjAgKzU4LDIyIEBACiBDaHJpcyBCYXJrZXIKIE5pY2sgQmFybmVzCiBRdWVudGluIEJhcm5lcworRGF2aWQgQmFybmV0dAogUmljaGFyZCBCYXJyYW4KIENlc2FyIEVkdWFyZG8gQmFycm9zCiBEZXMgQmFycnkKIFVsZiBCYXJ0ZWx0CitQaW9yIEJhc3RpZGEKIE5pY2sgQmFzdGluCiBKZWZmIEJhdWVyCi1NaWtlIEJheWVyCiBNaWNoYWVsIFIgQmF4CiBBbnRob255IEJheHRlcgorTWlrZSBCYXllcgogU2FtdWVsIEwuIEJheWVyCiBEb25hbGQgQmVhdWRyeQogRGF2aWQgQmVhemxleQotUm9iaW4gQmVja2VyCiBOZWFsIEJlY2tlcgorUm9iaW4gQmVja2VyCiBUb3JzdGVuIEJlY2tlcgogQmlsbCBCZWRmb3JkCiBTdGVmYW4gQmVobmVsCkBAIC03OCw2ICs4NCw3IEBACiBFbGkgQmVuZGVyc2t5CiBBbmRyZXcgQmVubmV0dHMKIEFuZHkgQmVuc2t5CitFenJhIEJlcmNoCiBNaWNoZWwgVmFuIGRlbiBCZXJnaAogSnVsaWFuIEJlcm1hbgogQnJpY2UgQmVybmEKQEAgLTkyLDYgKzk5LDcgQEAKIFBoaWxpcHBlIEJpb25kaQogU3R1YXJ0IEJpc2hvcAogUm95IEJpeGxlcgorUmVuYXVkIEJsYW5jaAogTWlrZSBCbGFuZAogTWFydGluIEJsZXNzCiBQYWJsbyBCbGV5ZXIKQEAgLTEwMSwxMSArMTA5LDEzIEBACiBQYXVsIEJvZGRpZQogTWF0dGhldyBCb2VkaWNrZXIKIERhdmlkIEJvbGVuCi1Gb3Jlc3QgQm9uZAogR2F3YWluIEJvbHRvbgorRm9yZXN0IEJvbmQKIEdyZWdvcnkgQm9uZAorTWF0aWFzIEJvcmRlc2UKIEp1cmplbiBCb3MKIFBldGVyIEJvc2NoCitEYW4gQm9zd2VsbAogRXJpYyBCb3VjawogVGhpZXJyeSBCb3VzY2gKIFNlYmFzdGlhbiBCb3ZpbmcKQEAgLTExNCwyMSArMTI0LDI1IEBACiBHZW9yZyBCcmFuZGwKIENocmlzdG9waGVyIEJyYW5ub24KIFRlcnJlbmNlIEJyYW5ub24KK0VyaWsgQnJheQogQnJpYW4gQnJhemlsCiBEYXZlIEJyZW5uYW4KIFRvbSBCcmlkZ21hbgorQW50aG9ueSBCcmlnZ3MKIFRvYmlhcyBCcmluawogUmljaGFyZCBCcm9kaWUKIE1pY2hhZWwgQnJvZ2h0b24KIERhbmllbCBCcm90c2t5CiBKZWFuIEJyb3V3ZXJzCiBHYXJ5IFMuIEJyb3duCitUaXR1cyBCcm93bgogT2xlZyBCcm95dG1hbm4KIERhdmUgQnJ1ZWNrCiBGcmFuY2lzY28gTWFydMOtbiBCcnVndcOpCiBGbG9yaXMgQnJ1eW5vb2doZQogU3RhbiBCdWJyb3Vza2kKIEVyaWsgZGUgQnVlZ2VyCitKYW4tSGVpbiBCw7xocm1hbgogRGljayBCdWx0ZXJtYW4KIEJpbGwgQnVtZ2FybmVyCiBKaW1teSBCdXJnZXR0CkBAIC0xMzgsMTQgKzE1MiwxNSBAQAogVGFybiBXZWlzbmVyIEJ1cnRvbgogTGVlIEJ1c2J5CiBSYWxwaCBCdXRsZXIKK05pY29sYXMgQ2Fkb3UKIEpwIENhbGRlcm9uZQogQXJuYXVkIENhbG1ldHRlcwogRGFuaWVsIENhbHZlbG8KIFRvbnkgQ2FtcGJlbGwKIEJyZXR0IENhbm5vbgogTWlrZSBDYXJsdG9uCitQaWVycmUgQ2FycmllcgogVGVycnkgQ2Fycm9sbAotRGFtaWVuIENhc3NvdQogTG9yZW56byBNLiBDYXR1Y2NpCiBEb25uIENhdmUKIENoYXJsZXMgQ2F6YWJvbgpAQCAtMTU2LDkgKzE3MSwxMCBAQAogSm9obiBDaGFuZGxlcgogSHllLVNoaWsgQ2hhbmcKIEplZmZyZXkgQ2hhbmcKLU1pdGNoIENoYXBtYW4KLUdyZWcgQ2hhcG1hbgorR29kZWZyb2lkIENoYXBlbGxlCiBCcmFkIENoYXBtYW4KK0dyZWcgQ2hhcG1hbgorTWl0Y2ggQ2hhcG1hbgogRGF2aWQgQ2hhdW0KIE5pY29sYXMgQ2hhdXZhdAogSmVycnkgQ2hlbgpAQCAtMTcxLDkgKzE4NywxMSBAQAogVmFkaW0gQ2h1Z3Vub3YKIERhdmlkIENpbmVnZQogQ3JhaWcgQ2l0cm8KK0NocmlzIENsYXJrCiBNaWtlIENsYXJrc29uCiBBbmRyZXcgQ2xlZ2cKIEJyYWQgQ2xlbWVudHMKK1JvYmJpZSBDbGVtb25zCiBTdGV2ZSBDbGlmdAogSGVydsOpIENvYXRhbmhheQogTmljayBDb2dobGFuCkBAIC0xODQsOCArMjAyLDkgQEAKIEplZmZlcnkgQ29sbGlucwogUm9iZXJ0IENvbGxpbnMKIFBhdWwgQ29sb21pZXRzCi1EZW52ZXIgQ29uZXliZWFyZQorQ2hyaXN0b3BoZSBDb21iZWxsZXMKIEdlcmVteSBDb25kcmEKK0RlbnZlciBDb25leWJlYXJlCiBKdWFuIEpvc8OpIENvbnRpCiBNYXR0IENvbndheQogRGF2aWQgTS4gQ29va2UKQEAgLTIxMSw2ICsyMzAsNyBAQAogQW50b25pbyBDdW5pCiBCcmlhbiBDdXJ0aW4KIExpc2FuZHJvIERhbGNpbgorRGFycmVuIERhbGUKIEFuZHJldyBEYWxrZQogTGFycyBEYW1lcm93CiBFdmFuIERhbmRyZWEKQEAgLTIxOCwxMCArMjM4LDEzIEBACiBTY290dCBEYXZpZCBEYW5pZWxzCiBCZW4gRGFybmVsbAogSm9uYXRoYW4gRGFzdGVlbAorUGllcnJlLVl2ZXMgRGF2aWQKK1hhdmllciBkZSBHYXllCiBKb2huIERlR29vZAogTmVkIERlaWx5CiBWaW5jZW50IERlbGZ0CiBBcm5hdWQgRGVsb2JlbGxlCitLb25yYWQgRGVsb25nCiBFcmlrIERlbWFpbmUKIEpvaG4gRGVubmlzCiBSb2dlciBEZXYKQEAgLTIzNyw2ICsyNjAsNyBAQAogSHVtYmVydG8gRGlvZ2VuZXMKIFl2ZXMgRGlvbm5lCiBEYW5pZWwgRGl0dG1hcgorSm9zaXAgRGpvbG9uZ2EKIEphcm9taXIgRG9sZWNlawogSXNtYWlsIERvbm1legogTWFyY29zIERvbm9sbwpAQCAtMjU2LDExICsyODAsMTEgQEAKIEFuZHkgRHVzdG1hbgogR2FyeSBEdXphbgogRXVnZW5lIER2dXJlY2hlbnNraQotSm9zaXAgRHpvbG9uZ2EKIE1heGltIER6dW1hbmVua28KIFdhbHRlciBEw7Zyd2FsZAogSGFucyBFY2thcmR0CiBSb2RvbHBobyBFY2toYXJkdAorSm9obiBFZG1vbmRzCiBHcmFudCBFZHdhcmRzCiBKb2huIEVocmVzbWFuCiBUYWwgRWluYXQKQEAgLTI3MCwyNyArMjk0LDMyIEBACiBMYW5jZSBFbGxpbmdoYXVzCiBEYXZpZCBFbHkKIEplZmYgRXBsZXIKK0plZmYgTWNOZWlsCiBUb20gRXBwZXJseQogU3RvZmZlbCBFcmFzbXVzCiBKw7xyZ2VuIEEuIEVyaGFyZAogTWljaGFlbCBFcm5zdAogQmVuIEVzY290bwogQW5keSBFc2tpbHNzb24KK0FuZHLDqSBFc3BhemUKIFN0ZWZhbiBFc3NlcgogTmljb2xhcyBFc3RpYmFscwotU3RlcGhlbiBEIEV2YW5zCiBDYXJleSBFdmFucworU3RlcGhlbiBEIEV2YW5zCiBUaW0gRXZlcmV0dAogUGF1bCBFdmVyaXR0CiBEYXZpZCBFdmVybHkKIERhbmllbCBFdmVycworV2luc3RvbiBFd2VydAogR3JlZyBFd2luZwogTWFydGlqbiBGYWFzc2VuCiBDbG92aXMgRmFicmljaW8KIEFuZHJlYXMgRmFlcmJlcgogQmlsbCBGYW5jaGVyCitNaWNoYWVsIEZhcnJlbGwKIFRyb3kgSi4gRmFycmVsbAogTWFyayBGYXZhcworQm9yaXMgRmVsZAogTmllbHMgRmVyZ3Vzb24KIFNlYmFzdGlhbiBGZXJuYW5kZXoKIEZsb3JpYW4gRmVzdGkKQEAgLTMwNywxNCArMzM2LDE4IEBACiBBbWF1cnkgRm9yZ2VvdCBkJ0FyYwogRG91ZyBGb3J0CiBKb2huIEZvdWh5CitBbmRyZXcgRnJhbmNpcwogTWFydGluIEZyYW5rbGluCitCcnVjZSBGcmVkZXJpa3NlbgogUm9iaW4gRnJpZWRyaWNoCiBCcmFkbGV5IEZyb2VobGUKIEl2YW4gRnJvaG5lCitNYXR0aGlhcyBGdWNocwogSmltIEZ1bHRvbgogVGFkYXlvc2hpIEZ1bmFiYQogR3lybyBGdW5jaAogUGV0ZXIgRnVuaworRXRoYW4gRnVybWFuCiBHZW9mZiBGdXJuaXNoCiBVbGlzc2VzIEZ1cnF1aW0KIEhhZ2VuIEbDvHJzdGVuYXUKQEAgLTM0NCw5ICszNzcsMTIgQEAKIEpvbmF0aGFuIEdpZGR5CiBKb2hhbm5lcyBHaWpzYmVycwogTWljaGFlbCBHaWxmaXgKK1lhbm5pY2sgR2luZ3JhcworTWljaGFlbCBHb2RlcmJhdWVyCiBDaHJpc3RvcGggR29obGtlCiBUaW0gR29sZGVuCiBHdWlsaGVybWUgR29uw6dhbHZlcworVGlhZ28gR29uw6dhbHZlcwogQ2hyaXMgR29ubmVybWFuCiBEYXZpZCBHb29kZ2VyCiBIYW5zIGRlIEdyYWFmZgpAQCAtMzU5LDE1ICszOTUsMTggQEAKIE1pY2hhZWwgR3VyYXZhZ2UKIExhcnMgR3VzdMOkYmVsCiBUaG9tYXMgR8O8dHRsZXIKK0pvbmFzIEguCiBCYXJyeSBIYWRkb3cKIFBoaWxpcHAgSGFnZW1laXN0ZXIKIFBhdWwgdGVuIEhhZ2VuCiBSYXNtdXMgSGFobgogUGV0ZXIgSGFpZ2h0CiBWw6FjbGF2IEhhaXNtYW4KK1dhbGtlciBIYWxlIElWCiBCb2IgSGFsbGV5CiBKZXNzZSBIYWxsaW8KIEp1biBIYW1hbm8KK0FsZXhhbmRyZSBIYW1lbGluCiBNYXJrIEhhbW1vbmQKIE1hbnVzIEhhbmQKIE1pbHRvbiBMLiBIYW5raW5zCkBAIC0zNzcsNiArNDE2LDcgQEAKIERlcmVrIEhhcmxhbmQKIEphc29uIEhhcnBlcgogQnJpYW4gSGFycmluZworSm9uYXRoYW4gSGFydGxleQogTGFycnkgSGFzdGluZ3MKIFNoYW5lIEhhdGhhd2F5CiBSeWNoYXJkZSBIYXdrZXMKQEAgLTM4Nyw2ICs0MjcsNyBAQAogTWFsdGUgSGVsbWVydAogTGFuY2UgRmlubiBIZWxzdGVuCiBKb25hdGhhbiBIZW5kcnkKK01pY2hhZWwgSGVucnkKIEphbWVzIEhlbnN0cmlkZ2UKIEthc3VuIEhlcmF0aAogQ2hyaXMgSGVyYm9ydGgKQEAgLTM5OCwxMCArNDM5LDEwIEBACiBNYWdudXMgTC4gSGV0bGFuZAogUmF5bW9uZCBIZXR0aW5nZXIKIEtldmFuIEhleWRvbgorS2Vsc2V5IEhpZ2h0b3dlcgogSmFzb24gSGlsZGVicmFuZAogUmljaGllIEhpbmRsZQogS29ucmFkIEhpbnNlbgotTWljaGFlbCBIZW5yeQogRGF2aWQgSG9ibGV5CiBUaW0gSG9jaGJlcmcKIEpvZXJnLUN5cmlsIEhvZWhsZQpAQCAtNDEzLDYgKzQ1NCw3IEBACiBHZXJyaXQgSG9sbAogU2hhbmUgSG9sbG93YXkKIFJ1bmUgSG9sbQorVGhvbWFzIEhvbG1lcwogUGhpbGlwIEhvbWJ1cmcKIE5hb2Z1bWkgSG9uZGEKIEplZmZyZXkgSG9uaWcKQEAgLTQyMSwxMSArNDYzLDEzIEBACiBCcmlhbiBIb29wZXIKIFJhbmRhbGwgSG9wcGVyCiBOYWRhdiBIb3Jlc2gKK0Fsb24gSG9yZXYKIEphbiBIb3NhbmcKIEtlbiBIb3dhcmQKIEJyYWQgSG93ZXMKIE1pa2UgSG95CiBDaGloLUhhbyBIdWFuZworQ2hyaXN0aWFuIEh1ZG9uCiBMYXdyZW5jZSBIdWRzb24KIE1pY2hhZWwgSHVkc29uCiBKaW0gSHVndW5pbgpAQCAtNDM0LDYgKzQ3OCw3IEBACiBKZXJlbXkgSHlsdG9uCiBHZXJoYXJkIEjDpHJpbmcKIEZyZWRyaWsgSMOlw6VyZAorQ2F0YWxpbiBJYWNvYgogTWloYWkgSWJhbmVzY3UKIEFsaSBJa2luY2kKIExhcnMgSW1taXNjaApAQCAtNDU0LDEwICs0OTksMTMgQEAKIEphY2sgSmFuc2VuCiBCaWxsIEphbnNzZW4KIFRob21hcyBKYXJvc2NoCi1aYnlzemVrIErEmWRyemVqZXdza2ktU3ptZWsKK0p1aGFuYSBKYXVoaWFpbmVuCitaYmlnbmlldyBKxJlkcnplamV3c2tpLVN6bWVrCitKdWxpZW4gSmVoYW5uZXQKIERyZXcgSmVua2lucwogRmxlbW1pbmcgS2rDpnIgSmVuc2VuCiBNdW5TaWMgSmVvbmcKK0ppbSBKZXdldHQKIE9yamFuIEpvaGFuc2VuCiBGcmVkcmlrIEpvaGFuc3NvbgogR3JlZ29yeSBLLiBKb2huc29uCkBAIC00NjUsNDEgKzUxMyw0NCBAQAogTWF0dCBKb2luZXIKIFRob21hcyBKb2xsYW5zCiBOaWNvbGFzIEpvbHkKK0JyaWFuIEsuIEpvbmVzCiBFdmFuIEpvbmVzCiBKZXJlbXkgSm9uZXMKIFJpY2hhcmQgSm9uZXMKIElybWVuIGRlIEpvbmcKIEx1Y2FzIGRlIEpvbmdlCi1Kb2huIEpvcmdlbnNlbgorS3Jpc3Rqw6FuIFZhbHVyIErDs25zc29uCiBKZW5zIEIuIEpvcmdlbnNlbgorSm9obiBKb3JnZW5zZW4KIFNpamluIEpvc2VwaAogQW5kcmVhcyBKdW5nCiBUYXR0b28gTWFib256byBLLgogQm9iIEthaG4KIEt1cnQgQi4gS2Fpc2VyCiBUYW1pdG8gS2FqaXlhbWEKK0phbiBLYWxpc3pld3NraQogUGV0ZXIgdmFuIEthbXBlbgogUmFmZSBLYXBsYW4KIEphY29iIEthcGxhbi1Nb3NzCi1KYW4gS2FsaXN6ZXdza2kKLUFya2FkeSBLb3BseWFyb3YKK1BlciDDmHl2aW5kIEthcmxzZW4KIExvdSBLYXRlcwogSGlyb2FraSBLYXdhaQogU2ViYXN0aWVuIEtlaW0KIFJ5YW4gS2VsbHkKIERhbiBLZW5pZ3NiZXJnCi1Sb2JlcnQgS2VybgogUmFuZGFsbCBLZXJuCitSb2JlcnQgS2VybgogTWFnbnVzIEtlc3NsZXIKIExhd3JlbmNlIEtlc3RlbG9vdAogVml2ZWsgS2hlcmEKLUFraXJhIEtpdGFkYQogTWFkcyBLaWlsZXJpY2gKK0phc29uIEtpbGxlbgogVGFlayBKb28gS2ltCiBXLiBUcmV2b3IgS2luZwogUGF1bCBLaXBwZXMKIFN0ZXZlIEtpcnNjaAogU2ViYXN0aWFuIEtpcnNjaGUKK0FraXJhIEtpdGFkYQogUm9uIEtsYXRjaGtvCiBSZWlkIEtsZWNrbmVyCiBCYXN0aWFuIEtsZWluZWlkYW0KQEAgLTUxMCw5ICs1NjEsMTMgQEAKIEtpbSBLbmFwcAogTGVubnkgS25lbGVyCiBQYXQgS25pZ2h0CitKZWZmIEtudXBwCiBHcmVnIEtvY2hhbnNraQogRGFtb24gS29obGVyCiBNYXJrbyBLb2h0YWxhCitKYWNlayBLb25pZWN6bnkKK9Cc0LDRgNC6INCa0L7RgNC10L3QsdC10YDQsworQXJrYWR5IEtvcGx5YXJvdgogVmxhZCBLb3JvbGV2CiBKb3NlcGggS29zaHkKIEplcnp5IEtvemVyYQpAQCAtNTIzLDMwICs1NzgsMzUgQEAKIE1pY2hhZWwgS3JlbWVyCiBGYWJpYW4gS3JldXR6CiBDw6lkcmljIEtyaWVyCitQZWRybyBLcm9nZXIKIEhhbm51IEtyb3NpbmcKIEFuZHJlaiBLcnBpYwogSXZhbiBLcnN0acSHCiBBbmRyZXcgS3VjaGxpbmcKK0pvbiBLdWhuCiBWbGFkaW1pciBLdXNobmlyCiBSb3NzIExhZ2Vyd2FsbAogQ2FtZXJvbiBMYWlyZAogSmVhbi1CYXB0aXN0ZSAiSmliYSIgTGFteQorUm9uYW4gTGFteQogVG9yc3RlbiBMYW5kc2Nob2ZmCiDFgXVrYXN6IExhbmdhCiBUaW5vIExhbmdlCiBBbmRyZXcgTGFuZ21lYWQKIERldGxlZiBMYW5uZXJ0CiBTb3JlbiBMYXJzZW4KK0Ftb3MgTGF0dGVpZXIKIFBpZXJzIExhdWRlcgogQmVuIExhdXJpZQogU2ltb24gTGF3CiBDaHJpcyBMYXdyZW5jZQogQnJpYW4gTGVhaXIKK01hdGhpZXUgTGVkdWMtSGFtZWwKK0NocmlzdG9waGVyIExlZQorSW55ZW9sIExlZQogSmFtZXMgTGVlCiBKb2huIEouIExlZQotSW55ZW9sIExlZQogVGhvbWFzIExlZQotQ2hyaXN0b3BoZXIgTGVlCiBUZW5uZXNzZWUgTGVldXdlbmJ1cmcKIEx1YyBMZWZlYnZyZQogVmluY2VudCBMZWdvbGwKQEAgLTU1OSw2ICs2MTksNyBAQAogTWFyYy1BbmRyZSBMZW1idXJnCiBKb2huIExlbnRvbgogQ2hyaXN0b3BoZXIgVHVyIExlc25pZXdza2ktTGFhcworQWxhaW4gTGV1ZnJveQogTWFyayBMZXZpbnNvbgogV2lsbGlhbSBMZXdpcwogQWtpcmEgTGkKQEAgLTU3NSw2ICs2MzYsNyBAQAogR3JlZ29yIExpbmdsCiBOaWNrIExvY2t3b29kCiBTdGVwaGFuaWUgTG9ja3dvb2QKK0h1Z28gTG9wZXMgVGF2YXJlcwogQW5uZSBMb3JkCiBUb20gTG9yZWRvCiBKdXN0aW4gTG92ZQpAQCAtNTg4LDYgKzY1MCw3IEBACiBKaW0gTHluY2gKIE1pa2FlbCBMeW5ndmlnCiBNYXJ0aW4gdm9uIEzDtndpcworR3VpbGxlcm1vIEzDs3Blei1BbmdsYWRhCiBBbmRyZXcgSSBNYWNJbnR5cmUKIFRpbSBNYWNLZW56aWUKIE5pY2sgTWFjbGFyZW4KQEAgLTU5Nyw2ICs2NjAsNyBAQAogRGF2aWQgTWFsY29sbQogS2VuIE1hbmhlaW1lcgogVmxhZGltaXIgTWFyYW5nb3pvdgorQ29saW4gTWFyYwogRGF2aWQgTWFyZWsKIERvdWcgTWFyaWVuCiBTdmVuIE1hcm5hY2gKQEAgLTYwNCw4ICs2NjgsMTAgQEAKIEFudGhvbnkgTWFydGluCiBPd2VuIE1hcnRpbgogU8OpYmFzdGllbiBNYXJ0aW5pCitTaWRuZXkgU2FuIE1hcnTDrW4KIFJvZ2VyIE1hc3NlCiBOaWNrIE1hdGhld3NvbgorU2ltb24gTWF0aGlldQogR3JhaGFtIE1hdHRoZXdzCiBEaWV0ZXIgTWF1cmVyCiBBcm5hdWQgTWF6aW4KQEAgLTYxNiw4ICs2ODIsOCBAQAogTWljaGFlbCBNY0xheQogTWFyayBNYyBNYWhvbgogR29yZG9uIE1jTWlsbGFuCi1DYW9sYW4gTWNOYW1hcmEKIEFuZHJldyBNY05hbWFyYQorQ2FvbGFuIE1jTmFtYXJhCiBDcmFpZyBNY1BoZWV0ZXJzCiBMYW1iZXJ0IE1lZXJ0ZW5zCiBCaWxsIHZhbiBNZWxsZQpAQCAtNjI3LDQ4ICs2OTMsNTYgQEAKIEx1a2UgTWV3YnVybgogQ2FybCBNZXllcgogTWlrZSBNZXllcgorUGlvdHIgTWV5ZXIKK0FsZXhpcyBNw6l0YWlyZWF1CiBTdGV2ZW4gTWlhbGUKIFRyZW50IE1pY2sKIFN0YW4gTWloYWkKIFN0ZWZhbiBNaWhhaWxhCiBBcmlzdG90ZWxpcyBNaWtyb3BvdWxvcwotRGFtaWVuIE1pbGxlcgogQ2hhZCBNaWxsZXIKK0RhbWllbiBNaWxsZXIKIEphc29uIFYuIE1pbGxlcgogSmF5IFQuIE1pbGxlcgogUm9tYW4gTWlsbmVyCitKdWxpZW4gTWlvdHRlCiBBbmRyaWkgVi4gTWlzaGtvdnNreWkKLUR1c3RpbiBKLiBNaXRjaGVsbAogRG9tIE1pdGNoZWxsCitEdXN0aW4gSi4gTWl0Y2hlbGwKK1p1YmluIE1pdGhyYQogRmxvcmlhbiBNbGFkaXRzY2gKIERvdWcgTW9lbgogVGhlIERyYWdvbiBEZSBNb25zeW5lCiBTa2lwIE1vbnRhbmFybworUGV0ZXIgTW9vZHkKIFBhdWwgTW9vcmUKIERlcmVrIE1vcnIKIEphbWVzIEEgTW9ycmlzb24KK0RlcmVrIE1jVGF2aXNoIE1vdW5jZQogUGFibG8gTW91em8KIE1oZXIgTW92c2lzeWFuCiBSdXNsYW4gTXN0b2kKLVNqb2VyZCBNdWxsZW5kZXIKK01pY2hhZWwgTXVsaWNoCiBTYXBlIE11bGxlbmRlcgorU2pvZXJkIE11bGxlbmRlcgogTWljaGFlbCBNdWxsZXIKIE5laWwgTXVsbGVyCitMb3VpcyBNdW5ybwogUi4gRGF2aWQgTXVycmF5Ci1QaW90ciBNZXllcgogSm9obiBOYWdsZQogVGFrYWhpcm8gTmFrYXlhbWEKIFRyYXZlcnMgTmFyYW4KIENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaQogVmlsbW9zIE5lYmVoYWoKIEZyZWRyaWsgTmVocgotVHJlbnQgTmVsc29uCiBUb255IE5lbHNvbgorVHJlbnQgTmVsc29uCiBDaGFkIE5ldHplcgogTWF4IE5ldW5ow7ZmZmVyCiBHZW9yZ2UgTmV2aWxsZS1OZWlsCiBKb2hhbm5lcyBOaWNvbGFpCiBTYW11ZWwgTmljb2xhcnkKK0pvbmF0aGFuIE5pZWhvZgogR3VzdGF2byBOaWVtZXllcgogT3NjYXIgTmllcnN0cmFzegogSHJ2b2plIE5pa3NpYwpAQCAtNjg2LDYgKzc2MCw4IEBACiBKb2huIE8nQ29ubm9yCiBLZXZpbiBPJ0Nvbm5vcgogVGltIE8nTWFsbGV5CitKYW1lcyBPYWtsZXkKK0pvbiBPYmVyaGVpZGUKIFBhc2NhbCBPYmVybmRvZXJmZXIKIEplZmZyZXkgT2xsaWUKIEFkYW0gT2xzZW4KQEAgLTcxMCwxMiArNzg2LDE3IEBACiBBbGV4YW5kcmUgUGFyZW50ZWF1CiBEYW4gUGFyaXNpZW4KIEhhcnJpIFBhc2FuZW4KK0dhw6tsIFBhc2dyaW1hdWQKIEpvZSBQZXRlcnNvbgogUmFuZHkgUGF1c2NoCiBTYW11ZWxlIFBlZHJvbmkKK0p1c3RpbiBQZWVsCiBNYXJjZWwgdmFuIGRlciBQZWlqbAorQmVya2VyIFBla3NhZwogU3RldmVuIFBlbWJlcnRvbgogU2FudGlhZ28gUGVyZXPDs24KK0dlb3JnZSBQZXJpc3RlcmFraXMKK01hdGhpZXUgUGVycmVhdWx0CiBNYXJrIFBlcnJlZ28KIFRyZXZvciBQZXJyaW4KIEdhYnJpZWwgZGUgUGVydGh1aXMKQEAgLTcyNCw2ICs4MDUsNyBAQAogSm9lIFBldGVyc29uCiBDaHJpcyBQZXRyaWxsaQogQmpvcm4gUGV0dGVyc2VuCitSb25ueSBQZmFubnNjaG1pZHQKIEdlb2ZmIFBoaWxicmljawogR2F2cmllIFBoaWxpcHNvbgogQWRyaWFuIFBoaWxsaXBzCkBAIC03MzksNiArODIxLDcgQEAKIEFudG9pbmUgUGl0cm91CiBKZWFuLUZyYW7Dp29pcyBQacOpcm9ubmUKIE9sZWcgUGxha2hvdG55dWsKK1JlbWkgUG9pbnRlbAogR3VpbGhlcm1lIFBvbG8KIE1pY2hhZWwgUG9tcmFuaW5nCiBJdXN0aW4gUG9wCkBAIC03NDcsMTMgKzgzMCwxNSBAQAogQW1yaXQgUHJlbQogUGF1bCBQcmVzY29kCiBEb25vdmFuIFByZXN0b24KK1BhdWwgUHJpY2UKIEp5cmtpIFB1bGxpYWluZW4KIFN0ZXZlIFB1cmNlbGwKLUZlcm5hbmRvIFDDqXJlegogRWR1YXJkbyBQw6lyZXoKK0Zlcm5hbmRvIFDDqXJlegogUGllcnJlIFF1ZW50ZWwKIEJyaWFuIFF1aW5sYW4KIEFuZGVycyBRdmlzdAorSsOpcsO0bWUgUmFkaXgKIEJ1cnRvbiBSYWRvbnMKIEplZmYgUmFtbmFuaQogQnJvZGllIFJhbwpAQCAtNzY5LDE2ICs4NTQsMjAgQEAKIEdhcmV0aCBSZWVzCiBTdGV2ZSBSZWV2ZXMKIExlbm5hcnQgUmVnZWJybworSm9obiBSZWdlaHIKK0ZlZGVyaWNvIFJlZ2hlbnphbmkKIE9maXIgUmVpY2hlbmJlcmcKIFNlYW4gUmVpZnNjaG5laWRlcgogTWljaGFlbCBQLiBSZWlsbHkKIEJlcm5oYXJkIFJlaXRlcgogU3RldmVuIFJlaXoKIFJvZWxhbmQgUmVuZ2VsaW5rCi1UaW0gUmljZQorQW50b2luZSBSZXZlcnNhdAogRnJhbmNlc2NvIFJpY2NpYXJkaQorVGltIFJpY2UKIEphbiBQaWV0ZXIgUmllZ2VsCiBBcm1pbiBSaWdvCitBcmMgUmlsZXkKIE5pY2hvbGFzIFJpbGV5CiBKZWFuLUNsYXVkZSBSaW1iYXVsdAogVmxhZCBSaXNjdXRpYQpAQCAtNzg3LDE3ICs4NzYsMjEgQEAKIEFudGhvbnkgUm9hY2gKIENhcmwgUm9iYmVuCiBNYXJrIFJvYmVydHMKLUppbSBSb2JpbnNvbgogQW5keSBSb2JpbnNvbgorSmltIFJvYmluc29uCiBNYXJrIFJvZGR5CiBLZXZpbiBSb2RnZXJzCiBHaWFtcGFvbG8gUm9kb2xhCitFbHNvbiBSb2RyaWd1ZXoKIEFkaSBSb2liYW4KK0x1aXMgUm9qYXMKIE1pa2UgUm9tYmVyZwogQXJtaW4gUm9uYWNoZXIKIENhc2UgUm9vbGUKIFRpbW90aHkgUm9zY29lCitFcmlrIFJvc2UKIEppbSBSb3NraW5kCitCcmlhbiBSb3NuZXIKIEp1c3QgdmFuIFJvc3N1bQogSHVnbyB2YW4gUm9zc3VtCiBTYXNraWEgdmFuIFJvc3N1bQpAQCAtODEzLDcgKzkwNiw5IEBACiBKZWZmIFJ1c2gKIFNhbSBSdXNoaW5nCiBNYXJrIFJ1c3NlbGwKK1J1c3R5IFJ1c3NlbGwKIE5pY2sgUnVzc28KK1BhdHJpY2sgU2FiaW4KIFPDqWJhc3RpZW4gU2FibMOpCiBTdW1hbiBTYWhhCiBIYWppbWUgU2FpdG91CkBAIC04MjEsNiArOTE2LDcgQEAKIFJpY2ggU2FsegogS2V2aW4gU2FtYm9ybgogQWRyaWFuIFNhbXBzb24KK0phbWVzIFNhbmRlcnMKIElseWEgU2FuZGxlcgogTWFyayBTYXBpcm8KIFR5IFNhcm5hCkBAIC04MzksMTkgKzkzNSwyMSBAQAogTWljaGFlbCBTY2huZWlkZXIKIFBldGVyIFNjaG5laWRlci1LYW1wCiBBcnZpbiBTY2huZWxsCitSb2JpbiBTY2hyZWliZXIKIENoYWQgSi4gU2Nocm9lZGVyCiBTYW0gU2NodWxlbmJ1cmcKIFN0ZWZhbiBTY2h3YXJ6ZXIKIERpZXRtYXIgU2Nod2VydGJlcmdlcgogRmVkZXJpY28gU2Nod2luZHQKLVN0ZXZlbiBTY290dAogQmFycnkgU2NvdHQKK1N0ZXZlbiBTY290dAogTmljayBTZWlkZW5tYW4KIMW9aWdhIFNlaWxuYWNoCiBZdXJ5IFNlbGl2YW5vdgogRnJlZCBTZWxscwogSml3b24gU2VvCi1Sb2dlciBTZXJ3eQorScOxaWdvIFNlcm5hCitSb2dlciBELiBTZXJ3eQogSmVycnkgU2V1dHRlcgogRGVuaXMgU2V2ZXJzb24KIElhbiBTZXllcgpAQCAtODcwLDE3ICs5NjgsMjEgQEAKIFRpbSBTaWxrCiBLaXJpbGwgU2ltb25vdgogTmF0aGFuIFBhdWwgU2ltb25zCitBZGFtIFNpbXBraW5zCiBKYW5uZSBTaW5ra29uZW4KIEdlb3JnZSBTaXBlCiBKLiBTaXBwcmVsbAogS3JhZ2VuIFNpdGFrZXIKLUVyaWMgVi4gU21pdGgKIENocmlzdG9waGVyIFNtaXRoCitFcmljIFYuIFNtaXRoCiBHcmVnb3J5IFAuIFNtaXRoCitNYXJrIFNtaXRoCiBSYWZhbCBTbW90cnp5aworRXJpYyBTbm93CiBEaXJrIFNvZWRlCiBQYXVsIFNva29sb3Zza3kKIENvZHkgU29tZXJ2aWxsZQorRWRvYXJkbyBTcGFkb2xpbmkKIENsYXkgU3BlbmNlCiBTdGVmYW4gU3BlcmxpbmcKIFBlciBTcGlsbGluZwpAQCAtODkwLDkgKzk5MiwxMiBAQAogUmFqR29wYWwgU3Jpbml2YXNhbgogUXVlbnRpbiBTdGFmZm9yZC1GcmFzZXIKIEZyYW5rIFN0YWphbm8KK0pvZWwgU3RhbmxleQogT2xpdmVyIFN0ZWVsZQogR3JlZyBTdGVpbgorQmFydWNoIFN0ZXJpbgogQ2hyaXMgU3Rlcm4KK0FsZXggU3Rld2FydAogVmljdG9yIFN0aW5uZXIKIFJpY2hhcmQgU3RvYWtsZXkKIFBldGVyIFN0b2VocgpAQCAtOTE5LDggKzEwMjQsOCBAQAogV2lsbGlhbSBUYW5rc2xleQogQ2hyaXN0aWFuIFRhbnplcgogU3RldmVuIFRhc2NodWsKLU1vbnR5IFRheWxvcgogQW15IFRheWxvcgorTW9udHkgVGF5bG9yCiBBbmF0b2x5IFRlY2h0b25pawogTWlraGFpbCBUZXJla2hvdgogUmljaGFyZCBNLiBUZXcKQEAgLTkzNywxMyArMTA0MiwxNyBAQAogSmFzb24gVGlzaGxlcgogQ2hyaXN0aWFuIFRpc21lcgogRnJhbmsgSi4gVG9iaW4KLVIgTGluZHNheSBUb2RkCiBCZW5uZXR0IFRvZGQKK1IgTGluZHNheSBUb2RkCitFdWdlbmUgVG9kZXIKIEVyaWsgVG9sbGVydWQKIE1hdGlhcyBUb3JjaGluc2t5CiBTYW5kcm8gVG9zaQogUmljaGFyZCBUb3duc2VuZAorRGF2aWQgVG93bnNoZW5kCiBMYXVyZW5jZSBUcmF0dAorQWxiZXJ0byBUcmV2aW5vCitNYXR0aGlhcyBUcm9mZmFlcwogSm9obiBUcm9tcAogSmFzb24gVHJvd2JyaWRnZQogQW50aG9ueSBUdWluaW5nYQpAQCAtOTc2LDYgKzEwODUsNyBAQAogS2FubmFuIFZpamF5YW4KIEt1cnQgVmlsZQogTm9ybWFuIFZpbmUKK1BhdWxpIFZpcnRhbmVuCiBGcmFuayBWaXNzZXIKIEpvaGFubmVzIFZvZ2VsCiBTam9lcmQgZGUgVnJpZXMKQEAgLTEwMTAsMTAgKzExMjAsMTAgQEAKIEZyYW5rIFdpZXJ6Ymlja2kKIEJyeWNlICJab29rbyIgV2lsY294LU8nSGVhcm4KIEpha3ViIFdpbGsKK0dlcmFsZCBTLiBXaWxsaWFtcwogSmFzb24gV2lsbGlhbXMKIEpvaG4gV2lsbGlhbXMKIFN1ZSBXaWxsaWFtcwotR2VyYWxkIFMuIFdpbGxpYW1zCiBGcmFuayBXaWxsaXNvbgogR3JlZyBWLiBXaWxzb24KIEpvZHkgV2luc3RvbgpAQCAtMTAzMCw4ICsxMTQwLDkgQEAKIEtsYXVzLUp1ZXJnZW4gV29sZgogRGFuIFdvbGZlCiBSaWNoYXJkIFdvbGZmCi1EYXJyZW4gV29ycmFsbAorQWRhbSBXb29kYmVjawogR29yZG9uIFdvcmxleQorRGFycmVuIFdvcnJhbGwKIFRob21hcyBXb3V0ZXJzCiBIZWlrbyBXdW5kcmFtCiBEb3VnIFd5YXR0CkBAIC0xMDQwLDYgKzExNTEsNyBAQAogSGlyb2thenUgWWFtYW1vdG8KIEthLVBpbmcgWWVlCiBKYXNvbiBZZW8KK0V1bmdKdW4gWWkKIEJvYiBZb2Rsb3dza2kKIERhbm55IFlvbwogR2VvcmdlIFlvc2hpZGEKQEAgLTEwNTYsMyArMTE2OCw0IEBACiBLYWkgWmh1CiBUYXJlayBaaWFkw6kKIFBldGVyIMOFc3RyYW5kCisKZGlmZiAtLWdpdCBhL01pc2MvTkVXUyBiL01pc2MvTkVXUwppbmRleCBmZTgzODk3Li42ZDg5NmMyIDEwMDY0NAotLS0gYS9NaXNjL05FV1MKKysrIGIvTWlzYy9ORVdTCkBAIC0yLDk3ICsyLDY5IEBACiBQeXRob24gTmV3cwogKysrKysrKysrKysKIAotV2hhdCdzIE5ldyBpbiBQeXRob24gMy4yLjQKLT09PT09PT09PT09PT09PT09PT09PT09PT09CitXaGF0J3MgTmV3IGluIFB5dGhvbiAzLjMuMCBCZXRhIDI/Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLSpSZWxlYXNlIGRhdGU6IFhYLVhYLVhYWFgqCisqUmVsZWFzZSBkYXRlOiB4eC14eHgtMjAxMioKIAogQ29yZSBhbmQgQnVpbHRpbnMKIC0tLS0tLS0tLS0tLS0tLS0tCiAKKy0gSXNzdWUgIzE1MjkzOiBBZGQgR0Mgc3VwcG9ydCB0byB0aGUgQVNUIGJhc2Ugbm9kZSB0eXBlLgorCistIElzc3VlICMxNTI5MTogRml4IGEgbWVtb3J5IGxlYWsgd2hlcmUgQVNUIG5vZGVzIHdoZXJlIG5vdCBwcm9wZXJseQorICBkZWFsbG9jYXRlZC4KKworLSBJc3N1ZSAjMTUxMTA6IEZpeCB0aGUgdHJhY2ViYWNrcyBnZW5lcmF0ZWQgYnkgImltcG9ydCB4eHgiIHRvIG5vdCBzaG93CisgIHRoZSBpbXBvcnRsaWIgc3RhY2sgZnJhbWVzLgorCiAtIElzc3VlICMxNTAyMDogVGhlIHByb2dyYW0gbmFtZSB1c2VkIHRvIHNlYXJjaCBmb3IgUHl0aG9uJ3MgcGF0aCBpcyBub3cKICAgInB5dGhvbjMiIHVuZGVyIFVuaXgsIG5vdCAicHl0aG9uIi4KIAogLSBJc3N1ZSAjMTUwMzM6IEZpeCB0aGUgZXhpdCBzdGF0dXMgYnVnIHdoZW4gbW9kdWxlcyBpbnZva2VkIHVzaW5nIC1tIHN3aXRoLAogICByZXR1cm4gdGhlIHByb3BlciBmYWlsdXJlIHJldHVybiB2YWx1ZSAoMSkuIFBhdGNoIGNvbnRyaWJ1dGVkIGJ5IEplZmYgS251cHAuCiAKLS0gSXNzdWUgIzEyMjY4OiBGaWxlIHJlYWRsaW5lLCByZWFkbGluZXMgYW5kIHJlYWQoKSBvciByZWFkYWxsKCkgbWV0aG9kcwotICBubyBsb25nZXIgbG9zZSBkYXRhIHdoZW4gYW4gdW5kZXJseWluZyByZWFkIHN5c3RlbSBjYWxsIGlzIGludGVycnVwdGVkLgotICBJT0Vycm9yIGlzIG5vIGxvbmdlciByYWlzZWQgZHVlIHRvIGEgcmVhZCBzeXN0ZW0gY2FsbCByZXR1cm5pbmcgRUlOVFIKLSAgZnJvbSB3aXRoaW4gdGhlc2UgbWV0aG9kcy4KLQotLSBJc3N1ZSAjMTUxNDI6IEZpeCByZWZlcmVuY2UgbGVhayB3aGVuIGRlYWxsb2NhdGluZyBpbnN0YW5jZXMgb2YgdHlwZXMKLSAgY3JlYXRlZCB1c2luZyBQeVR5cGVfRnJvbVNwZWMoKS4KLQotLSBJc3N1ZSAjMTAwNTM6IERvbid0IGNsb3NlIEZEcyB3aGVuIEZpbGVJTy5fX2luaXRfXyBmYWlscy4gTG9vc2VseSBiYXNlZCBvbgotICB0aGUgd29yayBieSBIaXJva2F6dSBZYW1hbW90by4KLQotLSBJc3N1ZSAjMTQ3NzU6IEZpeCBhIHBvdGVudGlhbCBxdWFkcmF0aWMgZGljdCBidWlsZC11cCBkdWUgdG8gdGhlIGdhcmJhZ2UKLSAgY29sbGVjdG9yIHJlcGVhdGVkbHkgdHJ5aW5nIHRvIHVudHJhY2sgZGljdHMuCi0KLS0gSXNzdWUgIzE0NDk0OiBGaXggX19mdXR1cmVfXy5weSBhbmQgaXRzIGRvY3VtZW50YXRpb24gdG8gbm90ZSB0aGF0Ci0gIGFic29sdXRlIGltcG9ydHMgYXJlIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGluIDMuMCBpbnN0ZWFkIG9mIDIuNy4KLSAgUGF0Y2ggYnkgU3ZlbiBNYXJuYWNoLgotCi0tIElzc3VlICMxNDc2MTogRml4IHBvdGVudGlhbCBsZWFrIG9uIGFuIGVycm9yIGNhc2UgaW4gdGhlIGltcG9ydCBtYWNoaW5lcnkuCi0KLS0gSXNzdWUgIzE0Njk5OiBGaXggY2FsbGluZyB0aGUgY2xhc3NtZXRob2QgZGVzY3JpcHRvciBkaXJlY3RseS4KLQotLSBJc3N1ZSAjMTQ0MzM6IFByZXZlbnQgbXN2Y3J0IGNyYXNoIGluIGludGVyYWN0aXZlIHByb21wdCB3aGVuIHN0ZGluCi0gIGlzIGNsb3NlZC4KLQotLSBJc3N1ZSAjMTE2MDMgKGFnYWluKTogU2V0dGluZyBfX3JlcHJfXyB0byBfX3N0cl9fIG5vdyByYWlzZXMgYSBSdW50aW1lRXJyb3IKLSAgd2hlbiByZXByKCkgb3Igc3RyKCkgaXMgY2FsbGVkIG9uIHN1Y2ggYW4gb2JqZWN0LgotCi0tIElzc3VlICMxNDY1ODogRml4IGJpbmRpbmcgYSBzcGVjaWFsIG1ldGhvZCB0byBhIGJ1aWx0aW4gaW1wbGVtZW50YXRpb24gb2YgYQotICBzcGVjaWFsIG1ldGhvZCB3aXRoIGEgZGlmZmVyZW50IG5hbWUuCi0KLS0gSXNzdWUgIzE0NjMwOiBGaXggYSBtZW1vcnkgYWNjZXNzIGJ1ZyBmb3IgaW5zdGFuY2VzIG9mIGEgc3ViY2xhc3Mgb2YgaW50Ci0gIHdpdGggdmFsdWUgMC4KLQotLSBJc3N1ZSAjMTQ2MTI6IEZpeCBqdW1waW5nIGFyb3VuZCB3aXRoIGJsb2NrcyBieSBzZXR0aW5nIGZfbGluZW5vLgotCi0tIElzc3VlICMxNDYwNzogRml4IGtleXdvcmQtb25seSBhcmd1bWVudHMgd2hpY2ggc3RhcnRlZCB3aXRoIGBgX19gYC4KLQotLSBJc3N1ZSAjMTM4ODk6IENoZWNrIGFuZCAoaWYgbmVjZXNzYXJ5KSBzZXQgRlBVIGNvbnRyb2wgd29yZCBiZWZvcmUgY2FsbGluZwotICBhbnkgb2YgdGhlIGR0b2EuYyBzdHJpbmcgPC0+IGZsb2F0IGNvbnZlcnNpb24gZnVuY3Rpb25zLCBvbiBNU1ZDIGJ1aWxkcyBvZgotICBQeXRob24uICBUaGlzIGZpeGVzIGlzc3VlcyB3aGVuIGVtYmVkZGluZyBQeXRob24gaW4gYSBEZWxwaGkgYXBwLgotCi0tIElzc3VlICMxNDQ3NDogU2F2ZSBhbmQgcmVzdG9yZSBleGNlcHRpb24gc3RhdGUgaW4gdGhyZWFkLnN0YXJ0X25ld190aHJlYWQoKQotICB3aGlsZSB3cml0aW5nIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHRocmVhZCBsZWF2ZXMgYSB1bmhhbmRsZWQgZXhjZXB0aW9uLgotCi0tIElzc3VlICMxMzAxOTogRml4IHBvdGVudGlhbCByZWZlcmVuY2UgbGVha3MgaW4gYnl0ZWFycmF5LmV4dGVuZCgpLiAgUGF0Y2gKLSAgYnkgU3VtYW4gU2FoYS4KLQotLSBJc3N1ZSAjMTQzNzg6IEZpeCBjb21waWxpbmcgYXN0LkltcG9ydEZyb20gbm9kZXMgd2l0aCBhICJfX2Z1dHVyZV9fIiBzdHJpbmcgYXMKLSAgdGhlIG1vZHVsZSBuYW1lIHRoYXQgd2FzIG5vdCBpbnRlcm5lZC4KLQotLSBJc3N1ZSAjMTQzMzE6IFVzZSBzaWduaWZpY2FudGx5IGxlc3Mgc3RhY2sgc3BhY2Ugd2hlbiBpbXBvcnRpbmcgbW9kdWxlcyBieQotICBhbGxvY2F0aW5nIHBhdGggYnVmZmVycyBvbiB0aGUgaGVhcCBpbnN0ZWFkIG9mIHRoZSBzdGFjay4KLQotLSBJc3N1ZSAjMTQzMzQ6IFByZXZlbnQgaW4gYSBzZWdmYXVsdCBpbiB0eXBlLl9fZ2V0YXR0cmlidXRlX18gd2hlbiBpdCB3YXMgbm90Ci0gIHBhc3NlZCBzdHJpbmdzLgotCi0tIElzc3VlICMxNDY5NjI5OiBBbGxvdyBjeWNsZXMgdGhyb3VnaCBhbiBvYmplY3QncyBfX2RpY3RfXyBzbG90IHRvIGJlCi0gIGNvbGxlY3RlZC4gKEZvciBleGFtcGxlIGlmIGBgeC5fX2RpY3RfXyBpcyB4YGApLgotCi0tIElzc3VlICMxNDE3MjogRml4IHJlZmVyZW5jZSBsZWFrIHdoZW4gbWFyc2hhbGxpbmcgYSBidWZmZXItbGlrZSBvYmplY3QKLSAgKG90aGVyIHRoYW4gYSBieXRlcyBvYmplY3QpLgotCi0tIElzc3VlICMxMzUyMTogZGljdC5zZXRkZWZhdWx0KCkgbm93IGRvZXMgb25seSBvbmUgbG9va3VwIGZvciB0aGUgZ2l2ZW4ga2V5LAotICBtYWtpbmcgaXQgImF0b21pYyIgZm9yIG1hbnkgcHVycG9zZXMuICBQYXRjaCBieSBGaWxpcCBHcnVzemN6ecWEc2tpLgotCi0tIElzc3VlICMxNDQ3MTogRml4IGEgcG9zc2libGUgYnVmZmVyIG92ZXJydW4gaW4gdGhlIHdpbnJlZyBtb2R1bGUuCistIElzc3VlICMxNTIyOTogQW4gT1NFcnJvciBzdWJjbGFzcyB3aG9zZSBfX2luaXRfXyBkb2Vzbid0IGNhbGwgYmFjaworICBPU0Vycm9yLl9faW5pdF9fIGNvdWxkIHByb2R1Y2UgaW5jb21wbGV0ZSBpbnN0YW5jZXMsIGxlYWRpbmcgdG8gY3Jhc2hlcworICB3aGVuIGNhbGxpbmcgc3RyKCkgb24gdGhlbS4KIAogTGlicmFyeQogLS0tLS0tLQogCistIElzc3VlICM1OTMxOiB3c2dpcmVmIGVudmlyb24gdmFyaWFibGUgU0VSVkVSX1NPRlRXQVJFIHdpbGwgc3BlY2lmeSBhbgorICBpbXBsZW1lbnRhdGlvbiBzcGVjaWZpYyB0ZXJtIGxpa2UgQ3B5dGhvbiwgSnl0aG9uIGluc3RlYWQgb2YgZ2VuZXJpYyAiUHl0aG9uIgorCistIElzc3VlICMxMzI0ODogUmVtb3ZlIG9ic29sZXRlIGFyZ3VtZW50ICJtYXhfYnVmZmVyX3NpemUiIG9mIEJ1ZmZlcmVkV3JpdGVyCisgIGFuZCBCdWZmZXJlZFJXUGFpciwgZnJvbSB0aGUgaW8gbW9kdWxlLgorCistIElzc3VlICMxMzI0ODogUmVtb3ZlIG9ic29sZXRlIGFyZ3VtZW50ICJ2ZXJzaW9uIiBvZiBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlci4KKworLSBJc3N1ZSAjMTQ4MTQ6IGltcGxlbWVudCBtb3JlIGNvbnNpc3RlbnQgb3JkZXJpbmcgYW5kIHNvcnRpbmcgYmVoYXZpb3VyCisgIGZvciBpcGFkZHJlc3Mgb2JqZWN0cworCistIElzc3VlICMxNDgxNDogaXBhZGRyZXNzIG5ldHdvcmsgb2JqZWN0cyBjb3JyZWN0bHkgcmV0dXJuIE5vdEltcGxlbWVudGVkCisgIHdoZW4gY29tcGFyZWQgdG8gYXJiaXRyYXJ5IG9iamVjdHMgaW5zdGVhZCBvZiByYWlzaW5nIFR5cGVFcnJvcgorCiAtIElzc3VlICMxNDk5MDogQ29ycmVjdGx5IGZhaWwgd2l0aCBTeW50YXhFcnJvciBvbiBpbnZhbGlkIGVuY29kaW5nCiAgIGRlY2xhcmF0aW9uLgogCistIElzc3VlICMxNDgxNDogaXBhZGRyZXNzIG5vdyBwcm92aWRlcyBtb3JlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2VzIHdoZW4KKyAgY29uc3RydWN0aW5nIGluc3RhbmNlcyBkaXJlY3RseSAoY2hhbmdlcyBwZXJtaXR0ZWQgZHVyaW5nIGJldGEgZHVlIHRvCisgIHByb3Zpc2lvbmFsIEFQSSBzdGF0dXMpCisKIC0gSXNzdWUgIzE1MjQ3OiBGaWxlSU8gbm93IHJhaXNlcyBhbiBlcnJvciB3aGVuIGdpdmVuIGEgZmlsZSBkZXNjcmlwdG9yCiAgIHBvaW50aW5nIHRvIGEgZGlyZWN0b3J5LgogCistIElzc3VlICMxNTI2MTogU3RvcCBvcy5zdGF0KGZkKSBjcmFzaGluZyBvbiBXaW5kb3dzIHdoZW4gZmQgbm90IG9wZW4uCisKKy0gSXNzdWUgIzE1MTY2OiBJbXBsZW1lbnQgaW1wLmdldF90YWcoKSB1c2luZyBzeXMuaW1wbGVtZW50YXRpb24uY2FjaGVfdGFnLgorCistIElzc3VlICMxNTIxMDogQ2F0Y2ggS2V5RXJyb3Igd2hlbiBpbXByb3J0bGliLl9faW5pdF9fIGNhbid0IGZpbmQKKyAgX2Zyb3plbl9pbXBvcnRsaWIgaW4gc3lzLm1vZHVsZXMsIG5vdCBJbXBvcnRFcnJvci4KKworLSBJc3N1ZSAjMTUwMzA6IGltcG9ydGxpYi5hYmMuUHlQeWNMb2FkZXIgbm93IHN1cHBvcnRzIHRoZSBuZXcgc291cmNlIHNpemUKKyAgaGVhZGVyIGZpZWxkIGluIC5weWMgZmlsZXMuCisKIC0gSXNzdWUgIzUzNDY6IFByZXNlcnZlIHBlcm1pc3Npb25zIG9mIG1ib3gsIE1NREYgYW5kIEJhYnlsIG1haWxib3gKICAgZmlsZXMgb24gZmx1c2goKS4KIApAQCAtMTAzLDE5ICs3NSwyNDcgQEAKICAgY3JlYXRlZCBhbmQgcmVuYW1lZCBvdmVyIHRoZSBvbGQgZmlsZSB3aGVuIGZsdXNoKCkgaXMgY2FsbGVkIG9uIGFuCiAgIG1ib3gsIE1NREYgb3IgQmFieWwgbWFpbGJveC4KIAorLSBJc3N1ZSAxMDkyNDogRml4ZWQgbWtzYWx0KCkgdG8gdXNlIGEgUk5HIHRoYXQgaXMgc3VpdGFibGUgZm9yIGNyeXB0b2dyYXBoaWMKKyAgcHVycG9zZS4KKworRXh0ZW5zaW9uIE1vZHVsZXMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE1MTk0OiBVcGRhdGUgbGliZmZpIHRvIHRoZSAzLjAuMTEgcmVsZWFzZS4KKworVG9vbHMvRGVtb3MKKy0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzEyNjA1OiBUaGUgZ2RiIGhvb2tzIGZvciBkZWJ1Z2dpbmcgQ1B5dGhvbiAod2l0aGluIFRvb2xzL2dkYikgaGF2ZQorICBiZWVuIGVuaGFuY2VkIHRvIHNob3cgaW5mb3JtYXRpb24gb24gbW9yZSBDIGZyYW1lcyByZWxldmFudCB0byBDUHl0aG9uIHdpdGhpbgorICB0aGUgInB5LWJ0IiBhbmQgInB5LWJ0LWZ1bGwiIGNvbW1hbmRzOgorICAgICogQyBmcmFtZXMgdGhhdCBhcmUgd2FpdGluZyBvbiB0aGUgR0lMCisgICAgKiBDIGZyYW1lcyB0aGF0IGFyZSBnYXJiYWdlLWNvbGxlY3RpbmcKKyAgICAqIEMgZnJhbWVzIHRoYXQgYXJlIGR1ZSB0byB0aGUgaW52b2NhdGlvbiBvZiBhIFB5Q0Z1bmN0aW9uCisKK0RvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTM1NTc6IENsYXJpZnkgZWZmZWN0IG9mIGdpdmluZyB0d28gZGlmZmVyZW50IG5hbWVzcGFjZXMgdG8gZXhlYyBvcgorICBleGVjZmlsZSgpLgorCitUZXN0cworLS0tLS0KKworLSBJc3N1ZSAjMTUyODQ6IFNraXAge3NlbmQscmVjdn1tc2cgdGVzdHMgaW4gdGVzdF9zb2NrZXQgd2hlbiBJUHY2IGlzIG5vdAorICBlbmFibGVkLiBQYXRjaCBieSBCcmlhbiBCcmF6aWwuCisKKy0gSXNzdWUgIzE1Mjc3OiBGaXggYSByZXNvdXJjZSBsZWFrIGluIHN1cHBvcnQucHkgd2hlbiBJUHY2IGlzIGRpc2FibGVkLgorICBQYXRjaCBieSBCcmlhbiBCcmF6aWwuCisKK0J1aWxkCistLS0tLQorCistIElzc3VlICMxNDMzMDogRm9yIGNyb3NzIGJ1aWxkcywgZG9uJ3QgdXNlIGhvc3QgcHl0aG9uLCB1c2UgaG9zdCBzZWFyY2ggcGF0aHMKKyAgZm9yIGhvc3QgY29tcGlsZXIuCisKKy0gSXNzdWUgIzE1MjM1OiBBbGxvdyBCZXJrbGV5IERCIHZlcnNpb25zIHVwIHRvIDUuMyB0byBidWlsZCB0aGUgZGJtIG1vZHVsZS4KKworLSBJc3N1ZSAjMTUyNjg6IFNlYXJjaCBjdXJzZXMuaCBpbiAvdXNyL2luY2x1ZGUvbmN1cnNlc3cuCisKKworV2hhdCdzIE5ldyBpbiBQeXRob24gMy4zLjAgQmV0YSAxPworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqUmVsZWFzZSBkYXRlOiAyNy1KdW4tMjAxMioKKworQ29yZSBhbmQgQnVpbHRpbnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gRml4IGEgKG1vc3QgbGlrZWx5KSB2ZXJ5IHJhcmUgbWVtb3J5IGxlYWsgd2hlbiBjYWxsaW5nIG1haW4oKSBhbmQgbm90IGJlaW5nCisgIGFibGUgdG8gZGVjb2RlIGEgY29tbWFuZC1saW5lIGFyZ3VtZW50LgorCistIElzc3VlICMxNDgxNTogVXNlIFB5X3NzaXplX3QgaW5zdGVhZCBvZiBsb25nIGZvciB0aGUgb2JqZWN0IGhhc2gsIHRvCisgIHByZXNlcnZlIGFsbCA2NCBiaXRzIG9mIGhhc2ggb24gV2luNjQuCisKKy0gSXNzdWUgIzEyMjY4OiBGaWxlIHJlYWRsaW5lLCByZWFkbGluZXMgYW5kIHJlYWQoKSBvciByZWFkYWxsKCkgbWV0aG9kcworICBubyBsb25nZXIgbG9zZSBkYXRhIHdoZW4gYW4gdW5kZXJseWluZyByZWFkIHN5c3RlbSBjYWxsIGlzIGludGVycnVwdGVkLgorICBJT0Vycm9yIGlzIG5vIGxvbmdlciByYWlzZWQgZHVlIHRvIGEgcmVhZCBzeXN0ZW0gY2FsbCByZXR1cm5pbmcgRUlOVFIKKyAgZnJvbSB3aXRoaW4gdGhlc2UgbWV0aG9kcy4KKworLSBJc3N1ZSAjMTE2MjY6IEFkZCBfU2l6ZVQgZnVuY3Rpb25zIHRvIHN0YWJsZSBBQkkuCisKKy0gSXNzdWUgIzE1MTQ2OiBBZGQgUHlUeXBlX0Zyb21TcGVjV2l0aEJhc2VzLiBQYXRjaCBieSBSb2JpbiBTY2hyZWliZXIuCisKKy0gSXNzdWUgIzE1MTQyOiBGaXggcmVmZXJlbmNlIGxlYWsgd2hlbiBkZWFsbG9jYXRpbmcgaW5zdGFuY2VzIG9mIHR5cGVzCisgIGNyZWF0ZWQgdXNpbmcgUHlUeXBlX0Zyb21TcGVjKCkuCisKKy0gSXNzdWUgIzE1MDQyOiBBZGQgUHlTdGF0ZV9BZGRNb2R1bGUgYW5kIFB5U3RhdGVfUmVtb3ZlTW9kdWxlLiBBZGQgdmVyc2lvbgorICBndWFyZCBmb3IgUHlfTElNSVRFRF9BUEkgYWRkaXRpb25zLiBQYXRjaCBieSBSb2JpbiBTY2hyZWliZXIuCisKKy0gSXNzdWUgIzEwMDUzOiBEb24ndCBjbG9zZSBGRHMgd2hlbiBGaWxlSU8uX19pbml0X18gZmFpbHMuIExvb3NlbHkgYmFzZWQgb24KKyAgdGhlIHdvcmsgYnkgSGlyb2thenUgWWFtYW1vdG8uCisKKy0gSXNzdWUgIzE1MDk2OiBSZW1vdmVkIHN1cHBvcnQgZm9yIHVyJycgYXMgdGhlIHJhdyBub3RhdGlvbiBpc24ndAorICBjb21wYXRpYmxlIHdpdGggUHl0aG9uIDIueCdzIHJhdyB1bmljb2RlIHN0cmluZ3MuCisKKy0gSXNzdWUgIzEzNzgzOiBHZW5lcmF0b3Igb2JqZWN0cyBub3cgdXNlIHRoZSBpZGVudGlmaWVyIEFQSXMgaW50ZXJuYWxseQorCistIElzc3VlICMxNDg3NDogUmVzdG9yZSBjaGFybWFwIGRlY29kaW5nIHNwZWVkIHRvIHByZS1QRVAgMzkzIGxldmVscy4KKyAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KKworLSBJc3N1ZSAjMTUwMjY6IHV0Zi0xNiBlbmNvZGluZyBpcyBub3cgc2lnbmlmaWNhbnRseSBmYXN0ZXIgKHVwIHRvIDEweCkuCisgIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCisKKy0gSXNzdWUgIzExMDIyOiBvcGVuKCkgYW5kIGlvLlRleHRJT1dyYXBwZXIgYXJlIG5vdyBjYWxsaW5nCisgIGxvY2FsZS5nZXRwcmVmZXJyZWRlbmNvZGluZyhGYWxzZSkgaW5zdGVhZCBvZiBsb2NhbGUuZ2V0cHJlZmVycmVkZW5jb2RpbmcoKQorICBpbiB0ZXh0IG1vZGUgaWYgdGhlIGVuY29kaW5nIGlzIG5vdCBzcGVjaWZpZWQuIERvbid0IGNoYW5nZSB0ZW1wb3JhcnkgdGhlCisgIGxvY2FsZSBlbmNvZGluZyB1c2luZyBsb2NhbGUuc2V0bG9jYWxlKCksIHVzZSB0aGUgY3VycmVudCBsb2NhbGUgZW5jb2RpbmcKKyAgaW5zdGVhZCBvZiB0aGUgdXNlciBwcmVmZXJyZWQgZW5jb2RpbmcuCisKKy0gSXNzdWUgIzE0NjczOiBBZGQgRXJpYyBTbm93J3Mgc3lzLmltcGxlbWVudGF0aW9uIGltcGxlbWVudGF0aW9uLgorCistIElzc3VlICMxNTAzODogT3B0aW1pemUgcHl0aG9uIExvY2tzIG9uIFdpbmRvd3MuCisKK0xpYnJhcnkKKy0tLS0tLS0KKworLSBJc3N1ZSAjMTUxODc6IEJ1Z2ZpeDogcmVtb3ZlIHRlbXBvcmFyeSBkaXJlY3RvcmllcyB0ZXN0X3NodXRpbCB3YXMgbGVhdmluZworICBiZWhpbmQuCisKKy0gSXNzdWUgIzE1MTc3OiBBZGRlZCBkaXJfZmQgcGFyYW1ldGVyIHRvIG9zLmZ3YWxrKCkuCisKKy0gSXNzdWUgIzE1MTc2OiBDbGFyaWZpZWQgYmVoYXZpb3IsIGRvY3VtZW50YXRpb24sIGFuZCBpbXBsZW1lbnRhdGlvbgorICBvZiBvcy5saXN0ZGlyKCkuCisKKy0gSXNzdWUgIzE1MDYxOiBSZS1pbXBsZW1lbnRlZCBobWFjLmNvbXBhcmVfZGlnZXN0KCkgaW4gQyB0byBwcmV2ZW50IGZ1cnRoZXIKKyAgdGltaW5nIGFuYWx5c2lzIGFuZCB0byBzdXBwb3J0IGFsbCBidWZmZXIgcHJvdG9jb2wgYXdhcmUgb2JqZWN0cyBhcyB3ZWxsIGFzCisgIEFTQ0lJIG9ubHkgc3RyIGluc3RhbmNlcyBzYWZlbHkuCisKKy0gSXNzdWUgIzE1MTY0OiBDaGFuZ2UgcmV0dXJuIHZhbHVlIG9mIHBsYXRmb3JtLnVuYW1lKCkgZnJvbSBhCisgIHBsYWluIHR1cGxlIHRvIGEgY29sbGVjdGlvbnMubmFtZWR0dXBsZS4KKworLSBTdXBwb3J0IE1hZ2VpYSBMaW51eCBpbiB0aGUgcGxhdGZvcm0gbW9kdWxlLgorCistIElzc3VlICMxMTY3ODogU3VwcG9ydCBBcmNoIGxpbnV4IGluIHRoZSBwbGF0Zm9ybSBtb2R1bGUuCisKKy0gSXNzdWUgIzE1MTE4OiBDaGFuZ2UgcmV0dXJuIHZhbHVlIG9mIG9zLnVuYW1lKCkgYW5kIG9zLnRpbWVzKCkgZnJvbQorICBwbGFpbiB0dXBsZXMgdG8gaW1tdXRhYmxlIGl0ZXJhYmxlIG9iamVjdHMgd2l0aCBuYW1lZCBhdHRyaWJ1dGVzCisgIChzdHJ1Y3RzZXEgb2JqZWN0cykuCisKKy0gU3BlZWQgdXAgX2RlY2ltYWwgYnkgYW5vdGhlciAxMC0xNSUgYnkgY2FjaGluZyB0aGUgdGhyZWFkIGxvY2FsIGNvbnRleHQKKyAgdGhhdCB3YXMgbGFzdCBhY2Nlc3NlZC4gSW4gdGhlIHBpIGJlbmNobWFyayAoNjQtYml0IHBsYXRmb3JtLCBwcmVjPTkpLAorICBfZGVjaW1hbCBpcyBub3cgb25seSAxLjV4IHNsb3dlciB0aGFuIGZsb2F0LgorCistIFJlbW92ZSB0aGUgcGFja2FnaW5nIG1vZHVsZSwgd2hpY2ggaXMgbm90IHJlYWR5IGZvciBwcmltZSB0aW1lLgorCistIElzc3VlICMxNTE1NDogQWRkICJkaXJfZmQiIHBhcmFtZXRlciB0byBvcy5ybWRpciwgcmVtb3ZlICJybWRpciIKKyAgcGFyYW1ldGVyIGZyb20gb3MucmVtb3ZlIC8gb3MudW5saW5rLgorCistIElzc3VlICM0NDg5OiBBZGQgYSBzaHV0aWwucm10cmVlIHRoYXQgaXNuJ3Qgc3VzY2VwdGlibGUgdG8gc3ltbGluayBhdHRhY2tzLgorICBJdCBpcyB1c2VkIGF1dG9tYXRpY2FsbHkgb24gcGxhdGZvcm1zIHN1cHBvcnRpbmcgdGhlIG5lY2Vzc2FyeSBvcy5vcGVuYXQoKQorICBhbmQgb3MudW5saW5rYXQoKSBmdW5jdGlvbnMuIE1haW4gY29kZSBieSBNYXJ0aW4gdm9uIEzDtndpcy4KKworLSBJc3N1ZSAjMTUxNTY6IEhUTUxQYXJzZXIgbm93IHVzZXMgdGhlIG5ldyAiaHRtbC5lbnRpdGllcy5odG1sNSIgZGljdGlvbmFyeS4KKworLSBJc3N1ZSAjMTExMTM6IGFkZCBhIG5ldyAiaHRtbDUiIGRpY3Rpb25hcnkgY29udGFpbmluZyB0aGUgbmFtZWQgY2hhcmFjdGVyCisgIHJlZmVyZW5jZXMgZGVmaW5lZCBieSB0aGUgSFRNTDUgc3RhbmRhcmQgYW5kIHRoZSBlcXVpdmFsZW50IFVuaWNvZGUKKyAgY2hhcmFjdGVyKHMpIHRvIHRoZSBodG1sLmVudGl0aWVzIG1vZHVsZS4KKworLSBJc3N1ZSAjMTUxMTQ6IHRoZSBzdHJpY3QgbW9kZSBvZiBIVE1MUGFyc2VyIGFuZCB0aGUgSFRNTFBhcnNlRXJyb3IgZXhjZXB0aW9uCisgIGFyZSBkZXByZWNhdGVkIG5vdyB0aGF0IHRoZSBwYXJzZXIgaXMgYWJsZSB0byBwYXJzZSBpbnZhbGlkIG1hcmt1cC4KKworLSBJc3N1ZSAjMzY2NTogXHUgYW5kIFxVIGVzY2FwZXMgYXJlIG5vdyBzdXBwb3J0ZWQgaW4gdW5pY29kZSByZWd1bGFyCisgIGV4cHJlc3Npb25zLiAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KKworLSBJc3N1ZSAjMTUxNTM6IEFkZGVkIGluc3BlY3QuZ2V0Z2VuZXJhdG9ybG9jYWxzIHRvIHNpbXBsaWZ5IHdoaXRlIGJveAorICB0ZXN0aW5nIG9mIGdlbmVyYXRvciBzdGF0ZSB1cGRhdGVzCisKKy0gSXNzdWUgIzEzMDYyOiBBZGRlZCBpbnNwZWN0LmdldGNsb3N1cmV2YXJzIHRvIHNpbXBsaWZ5IHRlc3Rpbmcgc3RhdGVmdWwKKyAgY2xvc3VyZXMKKworLSBJc3N1ZSAjMTEwMjQ6IEZpeGVzIGFuZCBhZGRpdGlvbmFsIHRlc3RzIGZvciBUaW1lMkludGVybmFsZGF0ZS4KKworLSBJc3N1ZSAjMTQ2MjY6IExhcmdlIHJlZmFjdG9yaW5nIG9mIGZ1bmN0aW9ucyAvIHBhcmFtZXRlcnMgaW4gdGhlIG9zIG1vZHVsZS4KKyAgTWFueSBmdW5jdGlvbnMgbm93IHN1cHBvcnQgImRpcl9mZCIgYW5kICJmb2xsb3dfc3ltbGlua3MiIHBhcmFtZXRlcnM7CisgIHNvbWUgYWxzbyBzdXBwb3J0IGFjY2VwdGluZyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciBpbiBwbGFjZSBvZiBvZiBhIHBhdGgKKyAgc3RyaW5nLiAgQWRkZWQgb3Muc3VwcG9ydF8qIGNvbGxlY3Rpb25zIGFzIExCWUwgaGVscGVycy4gIFJlbW92ZWQgbWFueQorICBmdW5jdGlvbnMgb25seSBwcmV2aW91c2x5IHNlZW4gaW4gMy4zIGFscGhhIHJlbGVhc2VzIChvZnRlbiBzdGFydGluZyB3aXRoCisgICJmIiBvciAibCIsIG9yIGVuZGluZyB3aXRoICJhdCIpLiAgT3JpZ2luYWxseSBzdWdnZXN0ZWQgYnkgU2VyaGl5IFN0b3JjaGFrYTsKKyAgaW1wbGVtZW50ZWQgYnkgTGFycnkgSGFzdGluZ3MuCisKKy0gSXNzdWUgIzE1MDA4OiBJbXBsZW1lbnQgUEVQIDM2MiAiU2lnbmF0dXJlIE9iamVjdHMiLgorICBQYXRjaCBieSBZdXJ5IFNlbGl2YW5vdi4KKworLSBJc3N1ZTogIzE1MTM4OiBiYXNlNjQudXJsc2FmZV97ZW4sZGV9Y29kZSgpIGFyZSBub3cgMy00eCBmYXN0ZXIuCisKKy0gSXNzdWUgIzQ0NDU4MjogQWRkIHNodXRpbC53aGljaCwgZm9yIGZpbmRpbmcgcHJvZ3JhbXMgb24gdGhlIHN5c3RlbSBwYXRoLgorICBPcmlnaW5hbCBwYXRjaCBieSBFcmlrIERlbWFpbmUsIHdpdGggbGF0ZXIgaXRlcmF0aW9ucyBieSBKYW4gS2lsbGlhbgorICBhbmQgQnJpYW4gQ3VydGluLgorCistIElzc3VlICMxNDgzNzogU1NMIGVycm9ycyBub3cgaGF2ZSBgYGxpYnJhcnlgYCBhbmQgYGByZWFzb25gYCBhdHRyaWJ1dGVzCisgIGRlc2NyaWJpbmcgcHJlY2lzZWx5IHdoYXQgaGFwcGVuZWQgYW5kIGluIHdoaWNoIE9wZW5TU0wgc3VibW9kdWxlLiAgVGhlCisgIHN0cigpIG9mIGEgU1NMRXJyb3IgaXMgYWxzbyBlbmhhbmNlZCBhY2NvcmRpbmdseS4KKworLSBJc3N1ZSAjOTUyNzogZGF0ZXRpbWUuYXN0aW1lem9uZSgpIG1ldGhvZCB3aWxsIG5vdyBzdXBwbHkgYSBjbGFzcworICB0aW1lem9uZSBpbnN0YW5jZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBzeXN0ZW0gbG9jYWwgdGltZXpvbmUgd2hlbgorICBjYWxsZWQgd2l0aCBubyBhcmd1bWVudHMuCisKIC0gSXNzdWUgIzE0NjUzOiBlbWFpbC51dGlscy5ta3RpbWVfdHooKSBubyBsb25nZXIgcmVsaWVzIG9uIHN5c3RlbQogICBta3RpbWUoKSB3aGVuIHRpbWV6b25lIG9mZmVzdCBpcyBzdXBwbGllZC4KIAorLSBJc3N1ZSAjMTQ2ODQ6IHpsaWIuY29tcHJlc3NvYmooKSBhbmQgemxpYi5kZWNvbXByZXNzb2JqKCkgbm93IHN1cHBvcnQgdGhlIHVzZQorICBvZiBwcmVkZWZpbmVkIGNvbXByZXNzaW9uIGRpY3Rpb25hcmllcy4gT3JpZ2luYWwgcGF0Y2ggYnkgU2FtIFJ1c2hpbmcuCisKIC0gRml4IEd6aXBGaWxlJ3MgaGFuZGxpbmcgb2YgZmlsZW5hbWVzIGdpdmVuIGFzIGJ5dGVzIG9iamVjdHMuCiAKKy0gSXNzdWUgIzE0NzcyOiBSZXR1cm4gZGVzdGluYXRpb24gdmFsdWVzIGZyb20gc29tZSBzaHV0aWwgZnVuY3Rpb25zLgorCistIElzc3VlICMxNTA2NDogSW1wbGVtZW50IGNvbnRleHQgbWFuYWdlciBwcm90b2NvbCBmb3IgbXVsdGlwcm9jZXNzaW5nIHR5cGVzCisKIC0gSXNzdWUgIzE1MTAxOiBNYWtlIHBvb2wgZmluYWxpemVyIGF2b2lkIGpvaW5pbmcgY3VycmVudCB0aHJlYWQuCiAKKy0gSXNzdWUgIzE0NjU3OiBUaGUgZnJvemVuIGluc3RhbmNlIG9mIGltcG9ydGxpYiB1c2VkIGZvciBib290c3RyYXAgaXMgbm93CisgIGFsc28gdGhlIG1vZHVsZSBpbXBvcnRlZCBhcyBpbXBvcnRsaWIuX2Jvb3RzdHJhcC4KKworLSBJc3N1ZSAjMTQwNTU6IEFkZCBfX3NpemVvZl9fIHN1cHBvcnQgdG8gX2VsZW1lbnR0cmVlLgorCistIElzc3VlICMxNTA1NDogQSBidWcgaW4gdG9rZW5pemUudG9rZW5pemUgdGhhdCBjYXVzZWQgc3RyaW5nIGxpdGVyYWxzCisgIHdpdGggJ2InIHByZWZpeGVzIHRvIGJlIGluY29ycmVjdGx5IHRva2VuaXplZCBoYXMgYmVlbiBmaXhlZC4KKyAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KKworLSBJc3N1ZSAjMTUwMDY6IEFsbG93IGVxdWFsaXR5IGNvbXBhcmlzb24gYmV0d2VlbiBuYWl2ZSBhbmQgYXdhcmUKKyAgdGltZSBvciBkYXRldGltZSBvYmplY3RzLgorCistIElzc3VlICMxNDk4MjogRG9jdW1lbnQgdGhhdCBwa2d1dGlsJ3MgaXRlcmF0aW9uIGZ1bmN0aW9ucyByZXF1aXJlIHRoZQorICBub24tc3RhbmRhcmQgaXRlcl9tb2R1bGVzKCkgbWV0aG9kIHRvIGJlIGRlZmluZWQgYnkgYW4gaW1wb3J0ZXIgKHNvbWV0aGluZworICB0aGUgaW1wb3J0bGliIGltcG9ydGVycyBkbyBub3QgZGVmaW5lKS4KKwogLSBJc3N1ZSAjMTUwMzY6IE1haWxib3ggbm8gbG9uZ2VyIHRocm93cyBhbiBlcnJvciBpZiBhIGZsdXNoIGlzIGRvbmUKICAgYmV0d2VlbiBvcGVyYXRpb25zIHdoZW4gcmVtb3Zpbmcgb3IgY2hhbmdpbmcgbXVsdGlwbGUgaXRlbXMgaW4gbWJveCwKICAgTU1ERiwgb3IgQmFieWwgbWFpbGJveGVzLgogCi0tIElzc3VlICMxMDEzMzogTWFrZSBtdWx0aXByb2Nlc3NpbmcgZGVhbGxvY2F0ZSBidWZmZXIgaWYgc29ja2V0IHJlYWQKLSAgZmFpbHMuICBQYXRjaCBieSBIYWxsdmFyZCBCIEZ1cnVzZXRoLgorLSBJc3N1ZSAjMTQwNTk6IEltcGxlbWVudCBtdWx0aXByb2Nlc3NpbmcuQmFycmllci4KKworLSBJc3N1ZSAjMTUwNjE6IFRoZSBpbmFwcHJvcHJpYXRlbHkgbmFtZWQgaG1hYy5zZWN1cmVfY29tcGFyZSBoYXMgYmVlbgorICByZW5hbWVkIHRvIGhtYWMuY29tcGFyZV9kaWdlc3QsIHJlc3RyaWN0ZWQgdG8gb3BlcmF0aW5nIG9uIGJ5dGVzIGlucHV0cworICBvbmx5IGFuZCBoYWQgaXRzIGRvY3VtZW50YXRpb24gdXBkYXRlZCB0byBtb3JlIGFjY3VyYXRlbHkgcmVmbGVjdCBib3RoIGl0cworICBpbnRlbnQgYW5kIGl0cyBsaW1pdGF0aW9ucworCistIElzc3VlICMxMzg0MTogTWFrZSBjaGlsZCBwcm9jZXNzZXMgZXhpdCB1c2luZyBzeXMuZXhpdCgpIG9uIFdpbmRvd3MuCisKKy0gSXNzdWUgIzE0OTM2OiBjdXJzZXNfcGFuZWwgd2FzIGNvbnZlcnRlZCB0byBQRVAgMzEyMSBhbmQgUEVQIDM4NCBBUEkuCisgIFBhdGNoIGJ5IFJvYmluIFNjaHJlaWJlci4KKworLSBJc3N1ZSAjMTY2NzU0NjogT24gcGxhdGZvcm1zIHN1cHBvcnRpbmcgdG1fem9uZSBhbmQgdG1fZ210b2ZmIGZpZWxkcworICBpbiBzdHJ1Y3QgdG0sIHRpbWUuc3RydWN0X3RpbWUgb2JqZWN0cyByZXR1cm5lZCBieSB0aW1lLmdtdGltZSgpLAorICB0aW1lLmxvY2FsdGltZSgpIGFuZCB0aW1lLnN0cnB0aW1lKCkgZnVuY3Rpb25zIG5vdyBoYXZlIHRtX3pvbmUgYW5kCisgIHRtX2dtdG9mZiBhdHRyaWJ1dGVzLiAgT3JpZ2luYWwgcGF0Y2ggYnkgUGF1bCBCb2RkaWUuCisKKy0gUmVuYW1lIGFkanVzdGVkIGF0dHJpYnV0ZSB0byBhZGp1c3RhYmxlIGluIHRpbWUuZ2V0X2Nsb2NrX2luZm8oKSByZXN1bHQuCisKKy0gSXNzdWUgIzM1MTg6IFJlbW92ZSByZWZlcmVuY2VzIHRvIG5vbi1leGlzdGVudCBCYXNlTWFuYWdlci5mcm9tX2FkZHJlc3MoKQorICBtZXRob2QuCisKKy0gSXNzdWUgIzEzODU3OiBBZGRlZCB0ZXh0d3JhcC5pbmRlbnQoKSBmdW5jdGlvbiAoaW5pdGlhbCBwYXRjaCBieSBFenJhCisgIEJlcmNoKQorCistIElzc3VlICMyNzM2OiBBZGRlZCBkYXRldGltZS50aW1lc3RhbXAoKSBtZXRob2QuCiAKIC0gSXNzdWUgIzEzODU0OiBNYWtlIG11bHRpcHJvY2Vzc2luZyBwcm9wZXJseSBoYW5kbGUgbm9uLWludGVnZXIKICAgbm9uLXN0cmluZyBhcmd1bWVudCB0byBTeXN0ZW1FeGl0LgpAQCAtMTIzLDE0ICszMjMsMTcxIEBACiAtIElzc3VlICMxMjE1NzogTWFrZSBwb29sLm1hcCgpIGVtcHR5IGl0ZXJhYmxlcyBjb3JyZWN0bHkuICBJbml0aWFsCiAgIHBhdGNoIGJ5IG1vdWFkLgogCistIElzc3VlICMxMTgyMzogZGlzYXNzZW1ibHkgbm93IHNob3dzIGFyZ3VtZW50IGNvdW50cyBvbiBjYWxscyB3aXRoIGtleXdvcmQgYXJncy4KKworLSBJc3N1ZSAjMTQ3MTE6IG9zLnN0YXRfZmxvYXRfdGltZXMoKSBoYXMgYmVlbiBkZXByZWNhdGVkLgorCistIExaTUFGaWxlIG5vdyBhY2NlcHRzIHRoZSBtb2RlcyAicmIiLyJ3YiIvImFiIiBhcyBzeW5vbnltcyBvZiAiciIvInciLyJhIi4KKworLSBUaGUgYnoyIGFuZCBsem1hIG1vZHVsZXMgbm93IGVhY2ggY29udGFpbiBhbiBvcGVuKCkgZnVuY3Rpb24sIGFsbG93aW5nCisgIGNvbXByZXNzZWQgZmlsZXMgdG8gcmVhZGlseSBiZSBvcGVuZWQgaW4gdGV4dCBtb2RlIGFzIHdlbGwgYXMgYmluYXJ5IG1vZGUuCisKKy0gQloyRmlsZS5fX2luaXRfXygpIGFuZCBMWk1BRmlsZS5fX2luaXRfXygpIG5vdyBhY2NlcHQgYSBmaWxlIG9iamVjdCBhcyB0aGVpcgorICBmaXJzdCBhcmd1bWVudCwgcmF0aGVyIHRoYW4gcmVxdWlyaW5nIGEgc2VwYXJhdGUgImZpbGVvYmoiIGFyZ3VtZW50LgorCistIGd6aXAub3BlbigpIG5vdyBhY2NlcHRzIGZpbGUgb2JqZWN0cyBhcyB3ZWxsIGFzIGZpbGVuYW1lcy4KKwogLSBJc3N1ZSAjMTQ5OTI6IG9zLm1ha2VkaXJzKHBhdGgsIGV4aXN0X29rPVRydWUpIHdvdWxkIHJhaXNlIGFuIE9TRXJyb3IKICAgd2hlbiB0aGUgcGF0aCBleGlzdGVkIGFuZCBoYWQgdGhlIFNfSVNHSUQgbW9kZSBiaXQgc2V0IHdoZW4gaXQgd2FzCiAgIG5vdCBleHBsaWNpdGx5IGFza2VkIGZvci4gIFRoaXMgaXMgbm8gbG9uZ2VyIGFuIGV4Y2VwdGlvbiBhcyBta2RpcgogICBjYW5ub3QgY29udHJvbCBpZiB0aGUgT1Mgc2V0cyB0aGF0IGJpdCBmb3IgaXQgb3Igbm90LgogCistIElzc3VlICMxNDk4OTogTWFrZSB0aGUgQ0dJIGVuYWJsZSBvcHRpb24gdG8gaHR0cC5zZXJ2ZXIgYXZhaWxhYmxlIHZpYSBjb21tYW5kCisgIGxpbmUuCisKKy0gSXNzdWUgIzE0OTg3OiBBZGQgYSBtaXNzaW5nIGltcG9ydCBzdGF0ZW1lbnQgdG8gaW5zcGVjdC4KKworLSBJc3N1ZSAjMTA3OTogZW1haWwuaGVhZGVyLmRlY29kZV9oZWFkZXIgbm93IGNvcnJlY3RseSBwYXJzZXMgYWxsIHRoZSBleGFtcGxlcworICBpbiBSRkMyMDQ3LiAgVGhlcmUgaXMgYSBuZWNlc3NhcnkgdmlzaWJsZSBiZWhhdmlvciBjaGFuZ2U6IHRoZSBsZWFkaW5nIGFuZC9vcgorICB0cmFpbGluZyB3aGl0ZXNwYWNlIG9uIEFTQ0lJIHBhcnRzIGlzIG5vdyBwcmVzZXJ2ZWQuCisKKy0gSXNzdWUgIzE0OTY5OiBCZXR0ZXIgaGFuZGxpbmcgb2YgZXhjZXB0aW9uIGNoYWluaW5nIGluIGNvbnRleHRsaWIuRXhpdFN0YWNrCisKIC0gSXNzdWUgIzE0OTYyOiBVcGRhdGUgdGV4dCBjb2xvcmluZyBpbiBJRExFIHNoZWxsIHdpbmRvdyBhZnRlciBjaGFuZ2luZwogICBvcHRpb25zLiAgUGF0Y2ggYnkgUm9nZXIgU2Vyd3kuCiAKKy0gSXNzdWUgIzE0OTYzOiBDb252ZXJ0IGNvbnRleHRsaWIuRXhpdFN0YWNrLl9fZXhpdF9fIHRvIHVzZSBhbiBpdGVyYXRpdmUKKyAgYWxnb3JpdGhtIChQYXRjaCBieSBBbG9uIEhvcmV2KQorCistIElzc3VlICMxNDc4NTogQWRkIHN5cy5fZGVidWdtYWxsb2NzdGF0cygpIHRvIGhlbHAgZGVidWcgbG93LWxldmVsIG1lbW9yeQorICBhbGxvY2F0aW9uIGlzc3VlcworCistIElzc3VlICMxNDQ0MzogRW5zdXJlIHRoYXQgLnB5IGZpbGVzIGFyZSBieXRlLWNvbXBpbGVkIHdpdGggdGhlIGNvcnJlY3QgUHl0aG9uCisgIGV4ZWN1dGFibGUgd2l0aGluIGJkaXN0X3JwbSBldmVuIG9uIG9sZGVyIHZlcnNpb25zIG9mIFJQTQorCitDLUFQSQorLS0tLS0KKworLSBJc3N1ZSAjMTM3ODM6IEluYWR2ZXJ0ZW50IGFkZGl0aW9ucyB0byB0aGUgcHVibGljIEMgQVBJIGluIHRoZSBQRVAgMzgwCisgIGltcGxlbWVudGF0aW9uIGhhdmUgZWl0aGVyIGJlZW4gcmVtb3ZlZCBvciBtYXJrZWQgYXMgcHJpdmF0ZSBpbnRlcmZhY2VzLgorCitFeHRlbnNpb24gTW9kdWxlcworLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTUwMDA6IFN1cHBvcnQgdGhlICJ1bmlxdWUiIHgzMiBhcmNoaXRlY3R1cmUgaW4gX3Bvc2l4c3VicHJvY2Vzcy5jLgorCitEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE1MDgxOiBEb2N1bWVudCBQeVN0YXRlX0ZpbmRNb2R1bGUuCisgIFBhdGNoIGJ5IFJvYmluIFNjaHJlaWJlci4KKworLSBJc3N1ZSAjMTQ4MTQ6IEFkZGVkIGZpcnN0IGRyYWZ0IG9mIGlwYWRkcmVzcyBtb2R1bGUgQVBJIHJlZmVyZW5jZQorCitUZXN0cworLS0tLS0KKworLSBJc3N1ZSAjMTQ3Njk6IHRlc3RfY2FwaSBub3cgaGFzIFNraXBpdGVtVGVzdCwgd2hpY2ggY2xldmVybHkgY2hlY2tzCisgIGZvciAicGFyaXR5IiBiZXR3ZWVuIFB5QXJnX1BhcnNlVHVwbGUoKSBhbmQgdGhlIFB5dGhvbi9nZXRhcmdzLmMgc3RhdGljCisgIGZ1bmN0aW9uIHNraXBpdGVtKCkgZm9yIGFsbCBwb3NzaWJsZSAiZm9ybWF0IHVuaXRzIi4KKworLSB0ZXN0X25udHBsaWIgbm93IHRvbGVyYXRlcyBiZWluZyBydW4gZnJvbSBiZWhpbmQgTk5UUCBnYXRld2F5cyB0aGF0IGFkZAorICAiWC1BbnRpdmlydXMiIGhlYWRlcnMgdG8gYXJ0aWNsZXMKKworLSBJc3N1ZSAjMTUwNDM6IHRlc3RfZ2RiIGlzIG5vdyBza2lwcGVkIGVudGlyZWx5IGlmIGdkYiBzZWN1cml0eSBzZXR0aW5ncworICBibG9jayBsb2FkaW5nIG9mIHRoZSBnZGIgaG9va3MKKworLSBJc3N1ZSAjMTQ5NjM6IEFkZCB0ZXN0IGNhc2VzIGZvciBleGNlcHRpb24gaGFuZGxpbmcgYmVoYXZpb3VyCisgIGluIGNvbnRleHRsaWIuRXhpdFN0YWNrIChJbml0aWFsIHBhdGNoIGJ5IEFsb24gSG9yZXYpCisKK0J1aWxkCistLS0tLQorCistIElzc3VlICMxMzU5MDogSW1wcm92ZSBzdXBwb3J0IGZvciBPUyBYIFhjb2RlIDQ6CisgICAgKiBUcnkgdG8gYXZvaWQgYnVpbGRpbmcgUHl0aG9uIG9yIGV4dGVuc2lvbiBtb2R1bGVzIHdpdGggcHJvYmxlbWF0aWMKKyAgICAgIGxsdm0tZ2NjIGNvbXBpbGVyLgorICAgICogU2luY2UgWGNvZGUgNCByZW1vdmVzIHBwYyBzdXBwb3J0LCBleHRlbnNpb24gbW9kdWxlIGJ1aWxkcyBub3cKKyAgICAgIGNoZWNrIGZvciBwcGMgY29tcGlsZXIgc3VwcG9ydCBhbmQgYXV0b21hdGljYWxseSByZW1vdmUgcHBjIGFuZAorICAgICAgcHBjNjQgYXJjaHMgd2hlbiBub3QgYXZhaWxhYmxlLgorICAgICogU2luY2UgWGNvZGUgNCBubyBsb25nZXIgaW5zdGFsbCBTREtzIGluIGRlZmF1bHQgbG9jYXRpb25zLAorICAgICAgZXh0ZW5zaW9uIG1vZHVsZSBidWlsZHMgbm93IHJldmVydCB0byB1c2luZyBpbnN0YWxsZWQgaGVhZGVycworICAgICAgYW5kIGxpYnMgaWYgdGhlIFNESyB1c2VkIHRvIGJ1aWxkIHRoZSBpbnRlcnByZXRlciBpcyBub3QKKyAgICAgIGF2YWlsYWJsZS4KKyAgICAqIFVwZGF0ZSAuL2NvbmZpZ3VyZSB0byB1c2UgYmV0dGVyIGRlZmF1bHRzIGZvciB1bml2ZXJzYWwgYnVpbGRzOworICAgICAgaW4gcGFydGljdWxhciwgLS1lbmFibGUtdW5pdmVyc2Fsc2RrPXllcyB1c2VzIHRoZSBYY29kZSBkZWZhdWx0CisgICAgICBTREsgYW5kIC0td2l0aC11bml2ZXJzYWwtYXJjaHMgbm93IGRlZmF1bHRzIHRvICJpbnRlbCIgaWYgcHBjCisgICAgICBub3QgYXZhaWxhYmxlLgorCistIElzc3VlICMxNDIyNTogRml4IFVuaWNvZGUgc3VwcG9ydCBmb3IgY3Vyc2VzICgjMTI1NjcpIG9uIE9TIFgKKworLSBJc3N1ZSAjMTQ5Mjg6IEZpeCBpbXBvcnRsaWIgYm9vdHN0cmFwIGlzc3VlcyBieSB1c2luZyBhIGN1c3RvbSBleGVjdXRhYmxlCisgIChNb2R1bGVzL19mcmVlemVfaW1wb3J0bGliKSB0byBidWlsZCBQeXRob24vaW1wb3J0bGliLmguCisKKworV2hhdCdzIE5ldyBpbiBQeXRob24gMy4zLjAgQWxwaGEgND8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKypSZWxlYXNlIGRhdGU6IDMxLU1heS0yMDEyKgorCitDb3JlIGFuZCBCdWlsdGlucworLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTQ4MzU6IE1ha2UgcGxpc3RsaWIgb3V0cHV0IGVtcHR5IGFycmF5cyAmIGRpY3RzIGxpa2UgT1MgWC4KKyAgUGF0Y2ggYnkgU2lkbmV5IFNhbiBNYXJ0w61uLgorCistIElzc3VlICMxNDc0NDogVXNlIHRoZSBuZXcgX1B5VW5pY29kZVdyaXRlciBpbnRlcm5hbCBBUEkgdG8gc3BlZWQgdXAKKyAgc3RyJWFyZ3MgYW5kIHN0ci5mb3JtYXQoYXJncykuCisKKy0gSXNzdWUgIzE0OTMwOiBNYWtlIG1lbW9yeXZpZXcgb2JqZWN0cyB3ZWFrcmVmYWJsZS4KKworLSBJc3N1ZSAjMTQ3NzU6IEZpeCBhIHBvdGVudGlhbCBxdWFkcmF0aWMgZGljdCBidWlsZC11cCBkdWUgdG8gdGhlIGdhcmJhZ2UKKyAgY29sbGVjdG9yIHJlcGVhdGVkbHkgdHJ5aW5nIHRvIHVudHJhY2sgZGljdHMuCisKKy0gSXNzdWUgIzE0ODU3OiBmaXggcmVncmVzc2lvbiBpbiByZWZlcmVuY2VzIHRvIFBFUCAzMTM1IGltcGxpY2l0IF9fY2xhc3NfXworICBjbG9zdXJlIHZhcmlhYmxlIChSZW9wZW5zIGlzc3VlICMxMjM3MCkKKworLSBJc3N1ZSAjMTQ3MTIgKFBFUCA0MDUpOiBWaXJ0dWFsIGVudmlyb25tZW50cy4gSW1wbGVtZW50ZWQgYnkgVmluYXkgU2FqaXAuCisKKy0gSXNzdWUgIzE0NjYwIChQRVAgNDIwKTogTmFtZXNwYWNlIHBhY2thZ2VzLiBJbXBsZW1lbnRlZCBieSBFcmljIFNtaXRoLgorCistIElzc3VlICMxNDQ5NDogRml4IF9fZnV0dXJlX18ucHkgYW5kIGl0cyBkb2N1bWVudGF0aW9uIHRvIG5vdGUgdGhhdAorICBhYnNvbHV0ZSBpbXBvcnRzIGFyZSB0aGUgZGVmYXVsdCBiZWhhdmlvciBpbiAzLjAgaW5zdGVhZCBvZiAyLjcuCisgIFBhdGNoIGJ5IFN2ZW4gTWFybmFjaC4KKworLSBJc3N1ZSAjOTI2MDogQSBmaW5lci1ncmFpbmVkIGltcG9ydCBsb2NrLiAgTW9zdCBvZiB0aGUgaW1wb3J0IHNlcXVlbmNlCisgIG5vdyB1c2VzIHBlci1tb2R1bGUgbG9ja3MgcmF0aGVyIHRoYW4gdGhlIGdsb2JhbCBpbXBvcnQgbG9jaywgZWxpbWluYXRpbmcKKyAgd2VsbC1rbm93biBpc3N1ZXMgd2l0aCB0aHJlYWRzIGFuZCBpbXBvcnRzLgorCistIElzc3VlICMxNDYyNDogVVRGLTE2IGRlY29kaW5nIGlzIG5vdyAzeCB0byA0eCBmYXN0ZXIgb24gdmFyaW91cyBpbnB1dHMuCisgIFBhdGNoIGJ5IFNlcmhpeSBTdG9yY2hha2EuCisKKy0gYXNkbF9zZXEgYW5kIGFzZGxfaW50X3NlcSBhcmUgbm93IFB5X3NzaXplX3Qgc2l6ZWQuCisKKy0gSXNzdWUgIzE0MTMzIChQRVAgNDE1KTogSW1wbGVtZW50IHN1cHByZXNzaW9uIG9mIF9fY29udGV4dF9fIGRpc3BsYXkgd2l0aCBhbgorICBhdHRyaWJ1dGUgb24gQmFzZUV4Y2VwdGlvbi4gVGhpcyByZXBsYWNlcyB0aGUgb3JpZ2luYWwgbWVjaGFuaXNtIG9mIFBFUCA0MDkuCisKKy0gSXNzdWUgIzE0NDE3OiBNdXRhdGluZyBhIGRpY3QgZHVyaW5nIGxvb2t1cCBub3cgcmVzdGFydHMgdGhlIGxvb2t1cCBpbnN0ZWFkCisgIG9mIHJhaXNpbmcgYSBSdW50aW1lRXJyb3IgKHVuZG9lcyBpc3N1ZSAjMTQyMDUpLgorCistIElzc3VlICMxNDczODogU3BlZWQtdXAgVVRGLTggZGVjb2Rpbmcgb24gbm9uLUFTQ0lJIGRhdGEuICBQYXRjaCBieSBTZXJoaXkKKyAgU3RvcmNoYWthLgorCistIElzc3VlICMxNDcwMDogRml4IHR3byBicm9rZW4gYW5kIHVuZGVmaW5lZC1iZWhhdmlvdXItaW5kdWNpbmcgb3ZlcmZsb3cgY2hlY2tzCisgIGluIG9sZC1zdHlsZSBzdHJpbmcgZm9ybWF0dGluZy4KKworLSBJc3N1ZSAjMTQ3MDU6IFRoZSBQeUFyZ19QYXJzZSgpIGZhbWlseSBvZiBmdW5jdGlvbnMgbm93IHN1cHBvcnQgdGhlICdwJyBmb3JtYXQKKyAgdW5pdCwgd2hpY2ggYWNjZXB0cyBhICJib29sZWFuIHByZWRpY2F0ZSIgYXJndW1lbnQuICBJdCBjb252ZXJ0cyBhbnkgUHl0aG9uCisgIHZhbHVlIGludG8gYW4gaW50ZWdlci0tMCBpZiBpdCBpcyAiZmFsc2UiLCBhbmQgMSBvdGhlcndpc2UuCisKK0xpYnJhcnkKKy0tLS0tLS0KKworLSBJc3N1ZSAjMTQ2OTA6IFVzZSBtb25vdG9uaWMgY2xvY2sgaW5zdGVhZCBvZiBzeXN0ZW0gY2xvY2sgaW4gdGhlIHNjaGVkLAorICBzdWJwcm9jZXNzIGFuZCB0cmFjZSBtb2R1bGVzLgorCistIElzc3VlICMxNDk1ODogQ2hhbmdlIElETEUgc3lzdGF4IGhpZ2hsaWdodGluZyB0byByZWNvZ25pemUgYWxsIHN0cmluZyBhbmQKKyAgYnl0ZSBsaXRlcmFscyBzdXBwb3J0ZWQgaW4gUHl0aG9uIDMuMy4KKwogLSBJc3N1ZSAjMTA5OTc6IFByZXZlbnQgYSBkdXBsaWNhdGUgZW50cnkgaW4gSURMRSdzICJSZWNlbnQgRmlsZXMiIG1lbnUuCiAKIC0gSXNzdWUgIzE0NDQzOiBUZWxsIHJwbWJ1aWxkIHRvIHVzZSB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIFB5dGhvbiBpbgpAQCAtMTM5LDI5ICs0OTYsNzAgQEAKIC0gSXNzdWUgIzE0OTI5OiBTdG9wIElkbGUgMy54IGZyb20gY2xvc2luZyBvbiBVbmljb2RlIGRlY29kZSBlcnJvcnMgd2hlbgogICBncmVwcGluZy4gUGF0Y2ggYnkgUm9nZXIgU2Vyd3kuCiAKKy0gSXNzdWUgIzEyNTE1OiBlbWFpbCBub3cgcmVnaXN0ZXJzIGEgZGVmZWN0IGlmIGl0IGdldHMgdG8gRU9GIHdoaWxlIHBhcnNpbmcKKyAgYSBNSU1FIHBhcnQgd2l0aG91dCBzZWVpbmcgdGhlIGNsb3NpbmcgTUlNRSBib3VuZGFyeS4KKwogLSBJc3N1ZSAjMTI1MTA6IEF0dGVtcHRpbmcgdG8gZ2V0IGludmFsaWQgdG9vbHRpcCBubyBsb25nZXIgY2xvc2VzIElkbGUuCiAgIE90aGVyIHRvb2x0aXBzcyBoYXZlIGJlZW4gY29ycmVjdGVkIG9yIGltcHJvdmVkIGFuZCB0aGUgbnVtYmVyIG9mIHRlc3RzCiAgIGhhcyBiZWVuIHRyaXBsZWQuIE9yaWdpbmFsIHBhdGNoIGJ5IFJvZ2VyIFNlcnd5LgogCistIElzc3VlICMxNjcyNTY4OiBlbWFpbCBub3cgYWx3YXlzIGRlY29kZXMgYmFzZTY0IHBheWxvYWRzLCBhZGRpbmcgcGFkZGluZyBhbmQKKyAgaWdub3Jpbmcgbm9uLWJhc2U2NC1hbHBoYWJldCBjaGFyYWN0ZXJzIGlmIG5lZWRlZCwgYW5kIHJlZ2lzdGVyaW5nIGRlZmVjdHMKKyAgZm9yIGFueSBzdWNoIHByb2JsZW1zLgorCistIElzc3VlICMxNDkyNTogZW1haWwgbm93IHJlZ2lzdGVycyBhIGRlZmVjdCB3aGVuIHRoZSBwYXJzZXIgZGVjaWRlcyB0aGF0IHRoZXJlCisgIGlzIGEgbWlzc2luZyBoZWFkZXIvYm9keSBzZXBhcmF0b3IgbGluZS4gIE1hbGZvcm1lZEhlYWRlckRlZmVjdCwgd2hpY2ggdGhlCisgIGV4aXN0aW5nIGNvZGUgd291bGQgbmV2ZXIgYWN0dWFsbHkgZ2VuZXJhdGUsIGlzIGRlcHJlY2F0ZWQuCisKIC0gSXNzdWUgIzEwMzY1OiBGaWxlIG9wZW4gZGlhbG9nIG5vdyB3b3JrcyBpbnN0ZWFkIG9mIGNyYXNoaW5nIGV2ZW4gd2hlbgogICB0aGUgcGFyZW50IHdpbmRvdyBpcyBjbG9zZWQgYmVmb3JlIHRoZSBkaWFsb2cuIFBhdGNoIGJ5IFJvZ2VyIFNlcnd5LgogCistIElzc3VlICM4NzM5OiBVcGRhdGVkIHNtdHBkIHRvIHN1cHBvcnQgUkZDIDUzMjEsIGFuZCBhZGRlZCBzdXBwb3J0IGZvciB0aGUKKyAgUkZDIDE4NzAgU0laRSBleHRlbnNpb24uCisKKy0gSXNzdWUgIzY2NTE5NDogQWRkZWQgYSBsb2NhbHRpbWUgZnVuY3Rpb24gdG8gZW1haWwudXRpbHMgdG8gcHJvdmlkZSBhbgorICBhd2FyZSBsb2NhbCBkYXRldGltZSBmb3IgdXNlIGluIHNldHRpbmcgRGF0ZSBoZWFkZXJzLgorCistIElzc3VlICMxMjU4NjogQWRkZWQgbmV3IHByb3Zpc2lvbmFsIHBvbGljaWVzIHRoYXQgaW1wbGVtZW50IGNvbnZlbmllbnQKKyAgdW5pY29kZSBzdXBwb3J0IGZvciBlbWFpbCBoZWFkZXJzLiAgU2VlIFdoYXQncyBOZXcgZm9yIGRldGFpbHMuCisKKy0gSXNzdWUgIzE0NzMxOiBSZWZhY3RvcmVkIGVtYWlsIFBvbGljeSBmcmFtZXdvcmsgdG8gc3VwcG9ydCBmdWxsIGJhY2t3YXJkCisgIGNvbXBhdGliaWxpdHkgd2l0aCBQeXRob24gMy4yIGJ5IGRlZmF1bHQgeWV0IGFsbG93IGZvciB0aGUgaW50cm9kdWN0aW9uIG9mCisgIG5ldyBmZWF0dXJlcyB0aHJvdWdoIG5ldyBwb2xpY2llcy4gIE5vdGUgdGhhdCBQb2xpY3kubXVzdF9iZV83Yml0IGlzIHJlbmFtZWQKKyAgdG8gY3RlX3R5cGUuCisKIC0gSXNzdWUgIzE0ODc2OiBVc2UgdXNlci1zZWxlY3RlZCBmb250IGZvciBoaWdobGlnaHQgY29uZmlndXJhdGlvbi4KIAogLSBJc3N1ZSAjMTQ5MjA6IEZpeCB0aGUgaGVscCh1cmxsaWIucGFyc2UpIGZhaWx1cmUgb24gbG9jYWxlIEMgb24gdGVybWluYWxzLgogICBIYXZlIGFzY2lpIGNoYXJhY3RlcnMgaW4gaGVscC4KIAorLSBJc3N1ZSAjMTQ1NDg6IE1ha2UgbXVsdGlwcm9jZXNzaW5nIGZpbmFsaXplcnMgY2hlY2sgcGlkIGJlZm9yZQorICBydW5uaW5nIHRvIGNvcGUgd2l0aCBwb3NzaWJpbGl0eSBvZiBnYyBydW5uaW5nIGp1c3QgYWZ0ZXIgZm9yay4KKwogLSBJc3N1ZSAjMTQ4NjM6IFVwZGF0ZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiBvcy5mZG9wZW4oKSB0byByZWZsZWN0IHRoZQogICBmYWN0IHRoYXQgaXQncyBvbmx5IGEgdGhpbiB3cmFwcGVyIGFyb3VuZCBvcGVuKCkgYW55bW9yZS4KIAogLSBJc3N1ZSAjMTQwMzY6IEFkZCBhbiBhZGRpdGlvbmFsIGNoZWNrIHRvIHZhbGlkYXRlIHRoYXQgcG9ydCBpbiB1cmxwYXJzZSBkb2VzCiAgIG5vdCBnbyBpbiBpbGxlZ2FsIHJhbmdlIGFuZCByZXR1cm5zIE5vbmUuCiAKKy0gSXNzdWUgIzE0ODYyOiBBZGQgbWlzc2luZyBuYW1lcyB0byBvcy5fX2FsbF9fCisKIC0gSXNzdWUgIzE0ODc1OiBVc2UgZmxvYXQoJ2luZicpIGluc3RlYWQgb2YgZmxvYXQoJzFlNjY2NjYnKSBpbiB0aGUganNvbiBtb2R1bGUuCiAKKy0gSXNzdWUgIzEzNTg1OiBBZGRlZCBjb250ZXh0bGliLkV4aXRTdGFjaworCistIFBFUCAzMTQ0LCBJc3N1ZSAjMTQ4MTQ6IEFkZGVkIHRoZSBpcGFkZHJlc3MgbW9kdWxlCisKIC0gSXNzdWUgIzE0NDI2OiBDb3JyZWN0IHRoZSBEYXRlIGZvcm1hdCBpbiBFeHBpcmVzIGF0dHJpYnV0ZSBvZiBTZXQtQ29va2llCiAgIEhlYWRlciBpbiBDb29raWUucHkuCiAKKy0gSXNzdWUgIzE0NTg4OiBUaGUgdHlwZXMgbW9kdWxlIG5vdyBwcm92aWRlIG5ld19jbGFzcygpIGFuZCBwcmVwYXJlX2NsYXNzKCkKKyAgZnVuY3Rpb25zIHRvIHN1cHBvcnQgUEVQIDMxMTUgY29tcGxpYW50IGR5bmFtaWMgY2xhc3MgY3JlYXRpb24uIFBhdGNoIGJ5CisgIERhbmllbCBVcmJhbiBhbmQgTmljayBDb2dobGFuLgorCistIElzc3VlICMxMzE1MjogQWxsb3cgdG8gc3BlY2lmeSBhIGN1c3RvbSB0YWJzaXplIGZvciBleHBhbmRpbmcgdGFicyBpbgorICB0ZXh0d3JhcC4gUGF0Y2ggYnkgSm9obiBGZXVlcnN0ZWluLgorCiAtIElzc3VlICMxNDcyMTogU2VuZCB0aGUgY29ycmVjdCAnQ29udGVudC1sZW5ndGg6IDAnIGhlYWRlciB3aGVuIHRoZSBib2R5IGlzIGFuCiAgIGVtcHR5IHN0cmluZyAnJy4gSW5pdGlhbCBQYXRjaCBjb250cmlidXRlZCBieSBBcnZlIEtudWRzZW4uCiAKQEAgLTE3NSwyNSArNTczLDc2IEBACiAgIHdoZW4gdGhlIGZpcnN0IHBhcnQgb2YgYSBkb3R0ZWQgbmFtZSBpcyBub3QgYSBwYWNrYWdlLiBQYXRjaCBieQogICBYYXZpZXIgZGUgR2F5ZS4KIAorLSBJc3N1ZSAjMTIwOTg6IG11bHRpcHJvY2Vzc2luZyBvbiBXaW5kb3dzIG5vdyBzdGFydHMgY2hpbGQgcHJvY2Vzc2VzCisgIHVzaW5nIHRoZSBzYW1lIHN5cy5mbGFncyBhcyB0aGUgY3VycmVudCBwcm9jZXNzLiAgSW5pdGlhbCBwYXRjaCBieQorICBTZXJnZXkgTWV6ZW50c2V2LgorCistIElzc3VlICMxMzAzMTogU21hbGwgc3BlZWQtdXAgZm9yIHRhcmZpbGUgd2hlbiB1bnppcHBpbmcgdGFyZmlsZXMuCisgIFBhdGNoIGJ5IEp1c3RpbiBQZWVsLgorCistIElzc3VlICMxNDc4MDogdXJsbGliLnJlcXVlc3QudXJsb3BlbigpIG5vdyBoYXMgYSBgYGNhZGVmYXVsdGBgIGFyZ3VtZW50CisgIHRvIHVzZSB0aGUgZGVmYXVsdCBjZXJ0aWZpY2F0ZSBzdG9yZS4gIEluaXRpYWwgcGF0Y2ggYnkgSmFtZXMgT2FrbGV5LgorCiAtIElzc3VlICMxNDgyOTogRml4IGJpc2VjdCBhbmQgcmFuZ2UoKSBpbmRleGluZyB3aXRoIGxhcmdlIGluZGljZXMKICAgKD49IDIgKiogMzIpIHVuZGVyIDY0LWJpdCBXaW5kb3dzLgogCistIElzc3VlICMxNDczMjogVGhlIF9jc3YgbW9kdWxlIG5vdyB1c2VzIFBFUCAzMTIxIG1vZHVsZSBpbml0aWFsaXphdGlvbi4KKyAgUGF0Y2ggYnkgUm9iaW4gU2NocmVpYmVyLgorCistIElzc3VlICMxNDgwOTogQWRkIEhUVFAgc3RhdHVzIGNvZGVzIGludHJvZHVjZWQgYnkgUkZDIDY1ODUgdG8gaHR0cC5zZXJ2ZXIKKyAgYW5kIGh0dHAuY2xpZW50LiBQYXRjaCBieSBFdW5nSnVuIFlpLgorCiAtIElzc3VlICMxNDc3NzogdGtpbnRlciBtYXkgcmV0dXJuIHVuZGVjb2RlZCBVVEYtOCBieXRlcyBhcyBhIHN0cmluZyB3aGVuCiAgIGFjY2Vzc2luZyB0aGUgVGsgY2xpcGJvYXJkLiAgTW9kaWZ5IGNsaXBib2FkX2dldCgpIHRvIGZpcnN0IHJlcXVlc3QgdHlwZQogICBVVEY4X1NUUklORyB3aGVuIG5vIHNwZWNpZmljIHR5cGUgaXMgcmVxdWVzdGVkIGluIGFuIFgxMSB3aW5kb3dpbmcKICAgZW52aXJvbm1lbnQsIGZhbGxpbmcgYmFjayB0byB0aGUgY3VycmVudCBkZWZhdWx0IHR5cGUgU1RSSU5HIGlmIHRoYXQgZmFpbHMuCiAgIE9yaWdpbmFsIHBhdGNoIGJ5IFRob21hcyBLbHV5dmVyLgogCistIElzc3VlICMxNDc3MzogRml4IG9zLmZ3YWxrKCkgZmFpbGluZyBvbiBkYW5nbGluZyBzeW1saW5rcy4KKwogLSBJc3N1ZSAjMTI1NDE6IEJlIGxlbmllbnQgd2l0aCBxdW90ZXMgYXJvdW5kIFJlYWxtIGZpZWxkIG9mIEhUVFAgQmFzaWMKICAgQXV0aGVudGF0aW9uIGluIHVybGxpYjIuCiAKKy0gSXNzdWUgIzE0ODA3OiBtb3ZlIHVuZG9jdW1lbnRlZCB0YXJmaWxlLmZpbGVtb2RlKCkgdG8gc3RhdC5maWxlbW9kZSgpIGFuZCBhZGQKKyAgZG9jIGVudHJ5LiBBZGQgdGFyZmlsZS5maWxlbW9kZSBhbGlhcyB3aXRoIGRlcHJlY2F0aW9uIHdhcm5pbmcuCisKKy0gSXNzdWUgIzEzODE1OiBUYXJGaWxlLmV4dHJhY3RmaWxlKCkgbm93IHJldHVybnMgaW8uQnVmZmVyZWRSZWFkZXIgb2JqZWN0cy4KKworLSBJc3N1ZSAjMTQ1MzI6IEFkZCBhIHNlY3VyZV9jb21wYXJlKCkgaGVscGVyIHRvIHRoZSBobWFjIG1vZHVsZSwgdG8gbWl0aWdhdGUKKyAgdGltaW5nIGF0dGFja3MuIFBhdGNoIGJ5IEpvbiBPYmVyaGVpZGUuCisKKy0gQWRkIGltcG9ydGxpYi51dGlsLnJlc29sdmVfbmFtZSgpLgorCistIElzc3VlICMxNDM2NjogU3VwcG9ydCBsem1hIGNvbXByZXNzaW9uIGluIHppcCBmaWxlcy4KKyAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KKworLSBJc3N1ZSAjMTM5NTk6IEludHJvZHVjZSBpbXBvcnRsaWIuZmluZF9sb2FkZXIoKSBhbmQgZG9jdW1lbnQKKyAgaW1wLmZpbmRfbW9kdWxlL2xvYWRfbW9kdWxlIGFzIGRlcHJlY2F0ZWQuCisKKy0gSXNzdWUgIzE0MDgyOiBzaHV0aWwuY29weTIoKSBub3cgY29waWVzIGV4dGVuZGVkIGF0dHJpYnV0ZXMsIGlmIHBvc3NpYmxlLgorICBQYXRjaCBieSBIeW5layBTY2hsYXdhY2suCisKKy0gSXNzdWUgIzEzOTU5OiBNYWtlIGltcG9ydGxpYi5hYmMuRmlsZUxvYWRlci5sb2FkX21vZHVsZSgpL2dldF9maWxlbmFtZSgpIGFuZAorICBpbXBvcnRsaWIubWFjaGluZXJ5LkV4dGVuc2lvbkZpbGVMb2FkZXIubG9hZF9tb2R1bGUoKSBoYXZlIHRoZWlyIHNpbmdsZQorICBhcmd1bWVudCBiZSBvcHRpb25hbC4gQWxsb3dzIGZvciB0aGUgcmVwbGFjZW1lbnQgKGFuZCB0aHVzIGRlcHJlY2F0aW9uKSBvZgorICBpbXAubG9hZF9zb3VyY2UoKS9sb2FkX3BhY2thZ2UoKS9sb2FkX2NvbXBpbGVkKCkuCisKKy0gSXNzdWUgIzEzOTU5OiBpbXAuZ2V0X3N1ZmZpeGVzKCkgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgb2YgdGhlIG5ldworICBhdHRyaWJ1dGVzIG9uIGltcG9ydGxpYi5tYWNoaW5lcnk6IFNPVVJDRV9TVUZGSVhFUywgREVCVUdfQllURUNPREVfU1VGRklYRVMsCisgIE9QVElNSVpFRF9CWVRFQ09ERV9TVUZGSVhFUywgQllURUNPREVfU1VGRklYRVMsIGFuZCBFWFRFTlNJT05fU1VGRklYRVMuIFRoaXMKKyAgbGVkIHRvIGFuIGluZGlyZWN0IGRlcHJlY2F0aW9uIG9mIGluc3BlY3QuZ2V0bW9kdWxlaW5mbygpLgorCiAtIElzc3VlICMxNDY2MjogUHJldmVudCBzaHV0aWwgZmFpbHVyZXMgb24gT1MgWCB3aGVuIGRlc3RpbmF0aW9uIGRvZXMgbm90CiAgIHN1cHBvcnQgY2hmbGFnIG9wZXJhdGlvbnMuICBQYXRjaCBieSBIeW5layBTY2hsYXdhY2suCiAKIC0gSXNzdWUgIzE0MTU3OiBGaXggdGltZS5zdHJwdGltZSBmYWlsaW5nIHdpdGhvdXQgYSB5ZWFyIG9uIEZlYnJ1YXJ5IDI5dGguCiAgIFBhdGNoIGJ5IEh5bmVrIFNjaGxhd2Fjay4KIAotLSBJc3N1ZSAjMTQ3Njg6IG9zLnBhdGguZXhwYW5kdXNlcignfi9hJykgZG9lc24ndCB3b3JrcyBjb3JyZWN0bHkgd2hlbiBIT01FIGlzICcvJy4KKy0gSXNzdWUgIzE0NzUzOiBNYWtlIG11bHRpcHJvY2Vzc2luZydzIGhhbmRsaW5nIG9mIG5lZ2F0aXZlIHRpbWVvdXRzCisgIHRoZSBzYW1lIGFzIGl0IHdhcyBpbiBQeXRob24gMy4yLgorCistIElzc3VlICMxNDU4MzogRml4IGltcG9ydGxpYiBidWcgd2hlbiBhIHBhY2thZ2UncyBfX2luaXRfXy5weSB3b3VsZCBmaXJzdAorICBpbXBvcnQgb25lIG9mIGl0cyBtb2R1bGVzIHRoZW4gcmFpc2UgYW4gZXJyb3IuCiAKIC0gSXNzdWUgIzE0NzQxOiBGaXggbWlzc2luZyBzdXBwb3J0IGZvciBFbGxpcHNpcyAoJy4uLicpIGluIHBhcnNlciBtb2R1bGUuCiAKQEAgLTIwMiw2ICs2NTEsMTM4IEBACiAKIC0gSXNzdWUgIzE0NzAxOiBGaXggbWlzc2luZyBzdXBwb3J0IGZvciAncmFpc2UgLi4uIGZyb20nIGluIHBhcnNlciBtb2R1bGUuCiAKKy0gQWRkIHN1cHBvcnQgZm9yIHRpbWVvdXRzIHRvIHRoZSBhY3F1aXJlKCkgbWV0aG9kcyBvZgorICBtdWx0aXByb2Nlc3NpbmcncyBsb2NrL3NlbWFwaG9yZS9jb25kaXRpb24gcHJveGllcy4KKworLSBJc3N1ZSAjMTM5ODk6IEFkZCBzdXBwb3J0IGZvciB0ZXh0IG1vZGUgdG8gZ3ppcC5vcGVuKCkuCisKKy0gSXNzdWUgIzE0MTI3OiBUaGUgb3Muc3RhdCgpIHJlc3VsdCBvYmplY3Qgbm93IHByb3ZpZGVzIHRocmVlIGFkZGl0aW9uYWwKKyAgZmllbGRzOiBzdF9jdGltZV9ucywgc3RfbXRpbWVfbnMsIGFuZCBzdF9hdGltZV9ucywgcHJvdmlkaW5nIHRob3NlIHRpbWVzIGFzIGFuCisgIGludGVnZXIgd2l0aCBuYW5vc2Vjb25kIHJlc29sdXRpb24uICBUaGUgZnVuY3Rpb25zIG9zLnV0aW1lKCksIG9zLmx1dGltZXMoKSwKKyAgYW5kIG9zLmZ1dGltZXMoKSBub3cgYWNjZXB0IGEgbmV3IHBhcmFtZXRlciwgbnMsIHdoaWNoIGFjY2VwdHMgbXRpbWUgYW5kIGF0aW1lCisgIGFzIGludGVnZXJzIHdpdGggbmFub3NlY29uZCByZXNvbHV0aW9uLgorCistIElzc3VlICMxNDEyNyBhbmQgIzEwMTQ4OiBzaHV0aWwuY29weXN0YXQgbm93IHByZXNlcnZlcyBleGFjdCBtdGltZSBhbmQgYXRpbWUKKyAgb24gZmlsZXN5c3RlbXMgcHJvdmlkaW5nIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4KKworVG9vbHMvRGVtb3MKKy0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE0Njk1OiBCcmluZyBUb29scy9wYXJzZXIvdW5wYXJzZS5weSBzdXBwb3J0IHVwIHRvIGRhdGUgd2l0aAorICB0aGUgUHl0aG9uIDMuMyBHcmFtbWFyLgorCitCdWlsZAorLS0tLS0KKworLSBJc3N1ZSAjMTQ0NzI6IFVwZGF0ZSAuZ2l0aWdub3JlLiBQYXRjaCBieSBNYXRlaiBDZXBsLgorCistIFVwZ3JhZGUgV2luZG93cyBsaWJyYXJ5IHZlcnNpb25zOiBiemlwIDEuMC42LCBPcGVuU1NMIDEuMC4xYy4KKworLSBJc3N1ZSAjMTQ2OTM6IFVuZGVyIG5vbi1XaW5kb3dzIHBsYXRmb3JtcywgaGFzaGxpYidzIGZhbGxiYWNrIG1vZHVsZXMgYXJlCisgIGFsd2F5cyBjb21waWxlZCwgZXZlbiBpZiBPcGVuU1NMIGlzIHByZXNlbnQgYXQgYnVpbGQgdGltZS4KKworLSBJc3N1ZSAjMTMyMTA6IFdpbmRvd3MgYnVpbGQgbm93IHVzZXMgVlMyMDEwLCBwb3J0ZWQgZnJvbSBWUzIwMDguCisKK0RvY3VtZW50YXRpb24KKy0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjMTQ1ODg6IFRoZSBsYW5ndWFnZSByZWZlcmVuY2Ugbm93IGFjY3VyYXRlbHkgZG9jdW1lbnRzIHRoZSBQeXRob24gMworICBjbGFzcyBkZWZpbml0aW9uIHByb2Nlc3MuIFBhdGNoIGJ5IE5pY2sgQ29naGxhbi4KKworLSBJc3N1ZSAjMTQ5NDM6IENvcnJlY3QgYSBkZWZhdWx0IGFyZ3VtZW50IHZhbHVlIGZvciB3aW5yZWcuT3BlbktleQorICBhbmQgY29ycmVjdGx5IGxpc3QgdGhlIGFyZ3VtZW50IG5hbWVzIGluIHRoZSBmdW5jdGlvbidzIGV4cGxhbmF0aW9uLgorCisKK1doYXQncyBOZXcgaW4gUHl0aG9uIDMuMy4wIEFscGhhIDM/Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisqUmVsZWFzZSBkYXRlOiAwMS1NYXktMjAxMioKKworQ29yZSBhbmQgQnVpbHRpbnMKKy0tLS0tLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE0Njk5OiBGaXggY2FsbGluZyB0aGUgY2xhc3NtZXRob2QgZGVzY3JpcHRvciBkaXJlY3RseS4KKworLSBJc3N1ZSAjMTQ0MzM6IFByZXZlbnQgbXN2Y3J0IGNyYXNoIGluIGludGVyYWN0aXZlIHByb21wdCB3aGVuIHN0ZGluIGlzIGNsb3NlZC4KKworLSBJc3N1ZSAjMTQ1MjE6IE1ha2UgcmVzdWx0IG9mIGZsb2F0KCduYW4nKSBhbmQgZmxvYXQoJy1uYW4nKSBtb3JlIGNvbnNpc3RlbnQKKyAgYWNyb3NzIHBsYXRmb3Jtcy4KKworLSBJc3N1ZSAjMTQ2NDY6IF9faW1wb3J0X18oKSBzZXRzIF9fbG9hZGVyX18gaWYgdGhlIGxvYWRlciBkaWQgbm90LgorCistIElzc3VlICMxNDYwNTogTm8gbG9uZ2VyIGhhdmUgaW1wbGljaXQgZW50cmllcyBpbiBzeXMubWV0YV9wYXRoLiBJZgorICBzeXMubWV0YV9wYXRoIGlzIGZvdW5kIHRvIGJlIGVtcHR5LCByYWlzZSBJbXBvcnRXYXJuaW5nLgorCistIElzc3VlICMxNDYwNTogTm8gbG9uZ2VyIGhhdmUgaW1wbGljaXQgZW50cmllcyBpbiBzeXMucGF0aF9ob29rcy4gSWYKKyAgc3lzLnBhdGhfaG9va3MgaXMgZm91bmQgdG8gYmUgZW1wdHksIGEgd2FybmluZyB3aWxsIGJlIHJhaXNlZC4gTm9uZSBpcyBub3cKKyAgaW5zZXJ0ZWQgaW50byBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZSBpZiBubyBmaW5kZXIgd2FzIGRpc2NvdmVyZWQuIFRoaXMgYWxzbworICBtZWFucyBpbXAuTnVsbEltcG9ydGVyIGlzIG5vIGxvbmdlciBpbXBsaWNpdGx5IHVzZWQuCisKKy0gSXNzdWUgIzEzOTAzOiBJbXBsZW1lbnQgUEVQIDQxMi4gSW5kaXZpZHVhbCBkaWN0aW9uYXJ5IGluc3RhbmNlcyBjYW4gbm93IHNoYXJlCisgIHRoZWlyIGtleXMgd2l0aCBvdGhlciBkaWN0aW9uYXJpZXMuIENsYXNzZXMgdGFrZSBhZHZhbnRhZ2Ugb2YgdGhpcyB0byBzaGFyZQorICB0aGVpciBpbnN0YW5jZSBkaWN0aW9uYXJ5IGtleXMgZm9yIGltcHJvdmVkIG1lbW9yeSBhbmQgcGVyZm9ybWFuY2UuCisKKy0gSXNzdWUgIzExNjAzIChhZ2Fpbik6IFNldHRpbmcgX19yZXByX18gdG8gX19zdHJfXyBub3cgcmFpc2VzIGEgUnVudGltZUVycm9yCisgIHdoZW4gcmVwcigpIG9yIHN0cigpIGlzIGNhbGxlZCBvbiBzdWNoIGFuIG9iamVjdC4KKworLSBJc3N1ZSAjMTQ2NTg6IEZpeCBiaW5kaW5nIGEgc3BlY2lhbCBtZXRob2QgdG8gYSBidWlsdGluIGltcGxlbWVudGF0aW9uIG9mIGEKKyAgc3BlY2lhbCBtZXRob2Qgd2l0aCBhIGRpZmZlcmVudCBuYW1lLgorCistIElzc3VlICMxNDYzMDogRml4IGEgbWVtb3J5IGFjY2VzcyBidWcgZm9yIGluc3RhbmNlcyBvZiBhIHN1YmNsYXNzIG9mIGludAorICB3aXRoIHZhbHVlIDAuCisKKy0gSXNzdWUgIzE0MzM5OiBTcGVlZCBpbXByb3ZlbWVudHMgdG8gYmluLCBvY3QgYW5kIGhleCBmdW5jdGlvbnMuICBQYXRjaCBieQorICBTZXJoaXkgU3RvcmNoYWthLgorCistIElzc3VlICMxNDA5ODogTmV3IGZ1bmN0aW9ucyBQeUVycl9HZXRFeGNJbmZvIGFuZCBQeUVycl9TZXRFeGNJbmZvLgorICBQYXRjaCBieSBTdGVmYW4gQmVobmVsLgorCistIElzc3VlICMxNDM4NTogSXQgaXMgbm93IHBvc3NpYmxlIHRvIHVzZSBhIGN1c3RvbSB0eXBlIGZvciB0aGUgX19idWlsdGluc19fCisgIG5hbWVzcGFjZSwgaW5zdGVhZCBvZiBhIGRpY3QuIEl0IGNhbiBiZSB1c2VkIGZvciBzYW5kYm94aW5nIGZvciBleGFtcGxlLgorICBSYWlzZSBhbHNvIGEgTmFtZUVycm9yIGluc3RlYWQgb2YgSW1wb3J0RXJyb3IgaWYgX19idWlsZF9jbGFzc19fIG5hbWUgaWYgbm90CisgIGZvdW5kIGluIF9fYnVpbHRpbnNfXy4KKworLSBJc3N1ZSAjMTI1OTk6IEJlIG1vcmUgc3RyaWN0IGluIGFjY2VwdGluZyBOb25lIGNvbXBhcmVkIHRvIGEgZmFsc2UtbGlrZQorICBvYmplY3QgZm9yIGltcG9ydGxpYi51dGlsLm1vZHVsZV9mb3JfbG9hZGVyIGFuZAorICBpbXBvcnRsaWIubWFjaGluZXJ5LlBhdGhGaW5kZXIuCisKKy0gSXNzdWUgIzE0NjEyOiBGaXgganVtcGluZyBhcm91bmQgd2l0aCBibG9ja3MgYnkgc2V0dGluZyBmX2xpbmVuby4KKworLSBJc3N1ZSAjMTQ1OTI6IEF0dGVtcHRpbmcgYSByZWxhdGl2ZSBpbXBvcnQgdy9vIF9fcGFja2FnZV9fIG9yIF9fbmFtZV9fIHNldCBpbgorICBnbG9iYWxzIHJhaXNlcyBhIEtleUVycm9yLgorCistIElzc3VlICMxNDYwNzogRml4IGtleXdvcmQtb25seSBhcmd1bWVudHMgd2hpY2ggc3RhcnRlZCB3aXRoIGBgX19gYC4KKworLSBJc3N1ZSAjMTA4NTQ6IFRoZSBJbXBvcnRFcnJvciByYWlzZWQgd2hlbiBhbiBleHRlbnNpb24gbW9kdWxlIG9uIFdpbmRvd3MKKyAgZmFpbHMgdG8gaW1wb3J0IG5vdyB1c2VzIHRoZSBuZXcgcGF0aCBhbmQgbmFtZSBhdHRyaWJ1dGVzIGZyb20KKyAgSXNzdWUgIzE1NTk1NDkuCisKKy0gSXNzdWUgIzEzODg5OiBDaGVjayBhbmQgKGlmIG5lY2Vzc2FyeSkgc2V0IEZQVSBjb250cm9sIHdvcmQgYmVmb3JlIGNhbGxpbmcKKyAgYW55IG9mIHRoZSBkdG9hLmMgc3RyaW5nIDwtPiBmbG9hdCBjb252ZXJzaW9uIGZ1bmN0aW9ucywgb24gTVNWQyBidWlsZHMgb2YKKyAgUHl0aG9uLiAgVGhpcyBmaXhlcyBpc3N1ZXMgd2hlbiBlbWJlZGRpbmcgUHl0aG9uIGluIGEgRGVscGhpIGFwcC4KKworLSBfX2ltcG9ydF9fKCkgbm93IG1hdGNoZXMgUEVQIDMyOCBhbmQgZG9jdW1lbnRhdGlvbiBieSBkZWZhdWx0aW5nICdpbmRleCcgdG8gMAorICBpbnN0ZWFkIG9mIC0xIGFuZCByZW1vdmluZyBzdXBwb3J0IGZvciBuZWdhdGl2ZSB2YWx1ZXMuCisKKy0gSXNzdWUgIzIzNzc6IE1ha2UgaW1wb3J0bGliIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBfX2ltcG9ydF9fKCkuCisKKy0gSXNzdWUgIzE1NTk1NDk6IEltcG9ydEVycm9yIG5vdyBoYXMgJ25hbWUnIGFuZCAncGF0aCcgYXR0cmlidXRlcyB0aGF0IGFyZSBzZXQKKyAgdXNpbmcga2V5d29yZCBhcmd1bWVudHMgdG8gaXRzIGNvbnN0cnVjdG9yLiBUaGV5IGFyZSBjdXJyZW50bHkgbm90IHNldCBieQorICBpbXBvcnQgYXMgdGhleSBhcmUgbWVhbnQgZm9yIHVzZSBieSBpbXBvcnRsaWIuCisKKy0gSXNzdWUgIzE0NDc0OiBTYXZlIGFuZCByZXN0b3JlIGV4Y2VwdGlvbiBzdGF0ZSBpbiB0aHJlYWQuc3RhcnRfbmV3X3RocmVhZCgpCisgIHdoaWxlIHdyaXRpbmcgZXJyb3IgbWVzc2FnZSBpZiB0aGUgdGhyZWFkIGxlYXZlcyBhIHVuaGFuZGxlZCBleGNlcHRpb24uCisKKy0gSXNzdWUgIzEzMDE5OiBGaXggcG90ZW50aWFsIHJlZmVyZW5jZSBsZWFrcyBpbiBieXRlYXJyYXkuZXh0ZW5kKCkuICBQYXRjaAorICBieSBTdW1hbiBTYWhhLgorCitMaWJyYXJ5CistLS0tLS0tCisKKy0gSXNzdWUgIzE0NzY4OiBvcy5wYXRoLmV4cGFuZHVzZXIoJ34vYScpIGRvZXNuJ3Qgd29ya3MgY29ycmVjdGx5IHdoZW4gSE9NRSBpcyAnLycuCisKKy0gSXNzdWUgIzE0MzcxOiBTdXBwb3J0IGJ6aXAyIGluIHppcGZpbGUgbW9kdWxlLiAgUGF0Y2ggYnkgU2VyaGl5IFN0b3JjaGFrYS4KKwogLSBJc3N1ZSAjMTMxODM6IEZpeCBwZGIgc2tpcHBpbmcgZnJhbWVzIGFmdGVyIGhpdHRpbmcgYSBicmVha3BvaW50IGFuZCBydW5uaW5nCiAgIHN0ZXAuICBQYXRjaCBieSBYYXZpZXIgZGUgR2F5ZS4KIApAQCAtMjEyLDkgKzc5MywyNSBAQAogCiAtIElzc3VlICM5MTU0OiBGaXggcGFyc2VyIG1vZHVsZSB0byB1bmRlcnN0YW5kIGZ1bmN0aW9uIGFubm90YXRpb25zLgogCistIElzc3VlICM2MDg1OiBJbiBodHRwLnNlcnZlci5weSBTaW1wbGVIVFRQU2VydmVyLmFkZHJlc3Nfc3RyaW5nIHJldHVybnMgdGhlCisgIGNsaWVudCBpcCBhZGRyZXNzIGluc3RlYWQgY2xpZW50IGhvc3RuYW1lLiBQYXRjaCBieSBDaGFybGVzLUZyYW7Dp29pcyBOYXRhbGkuCisKKy0gSXNzdWUgIzE0MzA5OiBEZXByZWNhdGUgdGltZS5jbG9jaygpLCB1c2UgdGltZS5wZXJmX2NvdW50ZXIoKSBvcgorICB0aW1lLnByb2Nlc3NfdGltZSgpIGluc3RlYWQuCisKKy0gSXNzdWUgIzE0NDI4OiBJbXBsZW1lbnQgdGhlIFBFUCA0MTguIEFkZCB0aW1lLmdldF9jbG9ja19pbmZvKCksCisgIHRpbWUucGVyZl9jb3VudGVyKCkgYW5kIHRpbWUucHJvY2Vzc190aW1lKCkgZnVuY3Rpb25zLCBhbmQgcmVuYW1lCisgIHRpbWUuc3RlYWR5KCkgdG8gdGltZS5tb25vdG9uaWMoKS4KKworLSBJc3N1ZSAjMTQ2NDY6IGltcG9ydGxpYi51dGlsLm1vZHVsZV9mb3JfbG9hZGVyKCkgbm93IHNldHMgX19sb2FkZXJfXyBhbmQKKyAgX19wYWNrYWdlX18gKHdoZW4gcG9zc2libGUpLgorCiAtIElzc3VlICMxNDY2NDogSXQgaXMgbm93IHBvc3NpYmxlIHRvIHVzZSBAdW5pdHRlc3Quc2tpcHtJZixVbmxlc3N9IG9uIGEKICAgdGVzdCBjbGFzcyB0aGF0IGRvZXNuJ3QgaW5oZXJpdCBmcm9tIFRlc3RDYXNlIChpLmUuIGEgbWl4aW4pLgogCistIElzc3VlICM0ODkyOiBtdWx0aXByb2Nlc3NpbmcgQ29ubmVjdGlvbnMgY2FuIG5vdyBiZSB0cmFuc2ZlcnJlZCBvdmVyCisgIG11bHRpcHJvY2Vzc2luZyBDb25uZWN0aW9ucy4gIFBhdGNoIGJ5IFJpY2hhcmQgT3Vka2VyayAoc2J0KS4KKwogLSBJc3N1ZSAjMTQxNjA6IFRhckZpbGUuZXh0cmFjdGZpbGUoKSBmYWlsZWQgdG8gcmVzb2x2ZSBzeW1ib2xpYyBsaW5rcyB3aGVuCiAgIHRoZSBsaW5rcyB3ZXJlIG5vdCBsb2NhdGVkIGluIGFuIGFyY2hpdmUgc3ViZGlyZWN0b3J5LgogCkBAIC0yMjQsMTI5ICs4MjEsMTAwIEBACiAtIElzc3VlICMxMzY4NDogRml4IGh0dHBsaWIgdHVubmVsIGlzc3VlIG9mIGluZmluaXRlIGxvb3BzIGZvciBjZXJ0YWluIHNpdGVzCiAgIHdoaWNoIHNlbmQgRU9GIHdpdGhvdXQgdHJhaWxpbmcgXHJcbi4KIAorLSBJc3N1ZSAjMTQ2MDU6IEFkZCBpbXBvcnRsaWIuYWJjLkZpbGVMb2FkZXIsIGltcG9ydGxpYi5tYWNoaW5lcnkuKEZpbGVGaW5kZXIsCisgIFNvdXJjZUZpbGVMb2FkZXIsIFNvdXJjZWxlc3NGaWxlTG9hZGVyLCBFeHRlbnNpb25GaWxlTG9hZGVyKS4KKworLSBJc3N1ZSAjMTM5NTk6IGltcC5jYWNoZV9mcm9tX3NvdXJjZSgpL3NvdXJjZV9mcm9tX2NhY2hlKCkgbm93IGZvbGxvdworICBvcy5wYXRoLmpvaW4oKS9zcGxpdCgpIHNlbWFudGljcyBmb3IgcGF0aCBtYW5pcHVsYXRpb24gaW5zdGVhZCBvZiBpdHMgcHJpb3IsCisgIGN1c3RvbSBzZW1hbnRpY3Mgb2YgY2FyaW5nIHRoZSByaWdodC1tb3N0IHBhdGggc2VwYXJhdG9yIGZvcndhcmQgaW4gcGF0aAorICBqb2luaW5nLgorCistIElzc3VlICMyMTkzOiBBbGxvdyAiOiIgY2hhcmFjdGVyIGluIENvb2tpZSBOQU1FIHZhbHVlcy4KKworLSBJc3N1ZSAjMTQ2Mjk6IHRva2VuaXplci5kZXRlY3RfZW5jb2Rpbmcgd2lsbCBzcGVjaWZ5IHRoZSBmaWxlbmFtZSBpbiB0aGUKKyAgU3ludGF4RXJyb3IgZXhjZXB0aW9uIGlmIGZvdW5kIGF0IHJlYWRsaW5lLl9fc2VsZl9fLm5hbWUuCisKIC0gSXNzdWUgIzE0NjI5OiBSYWlzZSBTeW50YXhFcnJvciBpbiB0b2tlbml6ZXIuZGV0ZWN0X2VuY29kaW5nIGlmIHRoZQogICBmaXJzdCB0d28gbGluZXMgaGF2ZSBub24tVVRGLTggY2hhcmFjdGVycyB3aXRob3V0IGFuIGVuY29kaW5nIGRlY2xhcmF0aW9uLgogCiAtIElzc3VlICMxNDMwODogRml4IGFuIGV4Y2VwdGlvbiB3aGVuIGEgImR1bW15IiB0aHJlYWQgaXMgaW4gdGhlIHRocmVhZGluZwogICBtb2R1bGUncyBhY3RpdmUgbGlzdCBhZnRlciBhIGZvcmsoKS4KIAorLSBJc3N1ZSAjMTE3NTA6IFRoZSBXaW5kb3dzIEFQSSBmdW5jdGlvbnMgc2NhdHRlcmVkIGluIHRoZSBfc3VicHJvY2VzcyBhbmQKKyAgX211bHRpcHJvY2Vzc2luZy53aW4zMiBtb2R1bGVzIG5vdyBsaXZlIGluIGEgc2luZ2xlIG1vZHVsZSAiX3dpbmFwaSIuCisgIFBhdGNoIGJ5IHNidC4KKworLSBJc3N1ZSAjMTQwODc6IG11bHRpcHJvY2Vzc2luZzogYWRkIENvbmRpdGlvbi53YWl0X2ZvcigpLiBQYXRjaCBieSBzYnQuCisKIC0gSXNzdWUgIzE0NTM4OiBIVE1MUGFyc2VyIGNhbiBub3cgcGFyc2UgY29ycmVjdGx5IHN0YXJ0IHRhZ3MgdGhhdCBjb250YWluCiAgIGEgYmFyZSAnLycuCiAKIC0gSXNzdWUgIzE0NDUyOiBTeXNMb2dIYW5kbGVyIG5vIGxvbmdlciBpbnNlcnRzIGEgVVRGLTggQk9NIGludG8gdGhlIG1lc3NhZ2UuCiAKKy0gSXNzdWUgIzE0Mzg2OiBFeHBvc2UgdGhlIGRpY3RfcHJveHkgaW50ZXJuYWwgdHlwZSBhcyB0eXBlcy5NYXBwaW5nUHJveHlUeXBlLgorCistIElzc3VlICMxMzk1OTogTWFrZSBpbXAucmVsb2FkKCkgYWx3YXlzIHVzZSBhIG1vZHVsZSdzIF9fbG9hZGVyX18gdG8gcGVyZm9ybQorICB0aGUgcmVsb2FkLgorCistIElzc3VlICMxMzk1OTogQWRkIGltcC5weSBhbmQgcmVuYW1lIHRoZSBidWlsdC1pbiBtb2R1bGUgdG8gX2ltcCwgYWxsb3dpbmcgZm9yCisgIHJlLWltcGxlbWVudGluZyBwYXJ0cyBvZiB0aGUgbW9kdWxlIGluIHB1cmUgUHl0aG9uLgorCiAtIElzc3VlICMxMzQ5NjogRml4IHBvdGVudGlhbCBvdmVyZmxvdyBpbiBiaXNlY3QuYmlzZWN0IGFsZ29yaXRobSB3aGVuIGFwcGxpZWQKICAgdG8gYSBjb2xsZWN0aW9uIG9mIHNpemUgPiBzeXMubWF4c2l6ZSAvIDIuCiAKKy0gSGF2ZSBpbXBvcnRsaWIgdGFrZSBhZHZhbnRhZ2Ugb2YgSW1wb3J0RXJyb3IncyBuZXcgJ25hbWUnIGFuZCAncGF0aCcKKyAgYXR0cmlidXRlcy4KKwogLSBJc3N1ZSAjMTQzOTk6IHppcGZpbGUgbm93IHJlY29nbml6ZXMgdGhhdCB0aGUgYXJjaGl2ZSBoYXMgYmVlbiBtb2RpZmllZCBldmVuCiAgIGlmIG9ubHkgdGhlIGNvbW1lbnQgaXMgY2hhbmdlZC4gIEluIGFkZGl0aW9uLCB0aGUgVHlwZUVycm9yIHRoYXQgcmVzdWx0cyBmcm9tCiAgIHRyeWluZyB0byBzZXQgYSBub24tYmluYXJ5IHZhbHVlIGFzIGEgY29tbWVudCBpcyBub3cgbm93IHJhaXNlZCBhdCB0aGUgdGltZQogICB0aGUgY29tbWVudCBpcyBzZXQgcmF0aGVyIHRoYW4gYXQgdGhlIHRpbWUgdGhlIHppcGZpbGUgaXMgd3JpdHRlbi4KIAorLSB0cmFjZS5Db3ZlcmFnZVJlc3VsdHMuaXNfaWdub3JlZF9maWxlbmFtZSgpIG5vdyBpZ25vcmVzIGFueSBuYW1lIHRoYXQgc3RhcnRzCisgIHdpdGggIjwiIGFuZCBlbmRzIHdpdGggIj4iIGluc3RlYWQgb2Ygc3BlY2lhbC1jYXNpbmcgIjxzdHJpbmc+IiBhbmQKKyAgIjxkb2N0ZXN0ICIuCisKKy0gSXNzdWUgIzEyNTM3OiBUaGUgbWFpbGJveCBtb2R1bGUgbm8gbG9uZ2VyIGRlcGVuZHMgb24ga25vd2xlZGdlIG9mIGludGVybmFsCisgIGltcGxlbWVudGF0aW9uIGRldGFpbHMgb2YgdGhlIGVtYWlsIHBhY2thZ2UgTWVzc2FnZSBvYmplY3QuCisKIC0gSXNzdWUgIzc5Nzg6IHNvY2tldHNlcnZlciBub3cgcmVzdGFydHMgdGhlIHNlbGVjdCgpIGNhbGwgd2hlbiBFSU5UUiBpcwogICByZXR1cm5lZC4gIFRoaXMgYXZvaWRzIGNyYXNoaW5nIHRoZSBzZXJ2ZXIgbG9vcCB3aGVuIGEgc2lnbmFsIGlzIHJlY2VpdmVkLgogICBQYXRjaCBieSBKZXJ6eSBLb3plcmEuCiAKKy0gSXNzdWUgIzE0NTIyOiBBdm9pZCBkdXBsaWNhdGluZyBzb2NrZXQgaGFuZGxlcyBpbiBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbi4KKyAgUGF0Y2ggYnkgc2J0LgorCistIERvbid0IFB5X0RFQ1JFRiBOVUxMIHZhcmlhYmxlIGluIGlvLkluY3JlbWVudGFsTmV3bGluZURlY29kZXIuCisKKy0gSXNzdWUgIzg1MTU6IFNldCBfX2ZpbGVfXyB3aGVuIHJ1biBmaWxlIGluIElETEUuCisgIEluaXRpYWwgcGF0Y2ggYnkgQnJ1Y2UgRnJlZGVyaWtzZW4uCisKIC0gSXNzdWUgIzE0NDk2OiBGaXggd3JvbmcgbmFtZSBpbiBpZGxlbGliL3RhYmJlZHBhZ2VzLnB5LgogICBQYXRjaCBieSBQb3BhIENsYXVkaXUuCiAKKy0gSXNzdWUgIzMwMzM6IEFkZCBkaXNwbGF5b2YgcGFyYW1ldGVyIHRvIHRraW50ZXIgZm9udC4gUGF0Y2ggYnkgR3VpbGhlcm1lIFBvbG8uCisKIC0gSXNzdWUgIzE0NDgyOiBSYWlzZSBhIFZhbHVlRXJyb3IsIG5vdCBhIE5hbWVFcnJvciwgd2hlbiB0cnlpbmcgdG8gY3JlYXRlCiAgIGEgbXVsdGlwcm9jZXNzaW5nIENsaWVudCBvciBMaXN0ZW5lciB3aXRoIGFuIEFGX1VOSVggdHlwZSBhZGRyZXNzIHVuZGVyCiAgIFdpbmRvd3MuICBQYXRjaCBieSBQb3BhIENsYXVkaXUuCiAKKy0gSXNzdWUgIzgwMjMxMDogR2VuZXJhdGUgYWx3YXlzIHVuaXF1ZSB0a2ludGVyIGZvbnQgbmFtZXMgaWYgbm90IGRpcmVjdGx5IHBhc3NlZC4KKwogLSBJc3N1ZSAjMTQxNTE6IFJhaXNlIGEgVmFsdWVFcnJvciwgbm90IGEgTmFtZUVycm9yLCB3aGVuIHRyeWluZyB0byBjcmVhdGUKICAgYSBtdWx0aXByb2Nlc3NpbmcgQ2xpZW50IG9yIExpc3RlbmVyIHdpdGggYW4gQUZfUElQRSB0eXBlIGFkZHJlc3MgdW5kZXIKICAgbm9uLVdpbmRvd3MgcGxhdGZvcm1zLiAgUGF0Y2ggYnkgUG9wYSBDbGF1ZGl1LgogCi0tIElzc3VlICMxMzg3Mjogc29ja2V0LmRldGFjaCgpIG5vdyBtYXJrcyB0aGUgc29ja2V0IGNsb3NlZCAoYXMgbWlycm9yZWQKLSAgaW4gdGhlIHNvY2tldCByZXByKCkpLiAgUGF0Y2ggYnkgTWF0dCBKb2luZXIuCistIElzc3VlICMxNDQ5MzogVXNlIGd2ZnMtb3BlbiBvciB4ZGctb3BlbiBpbiB3ZWJicm93c2VyLgogCi0tIElzc3VlICMxNDQwNjogRml4IGEgcmFjZSBjb25kaXRpb24gd2hlbiB1c2luZyBgYGNvbmN1cnJlbnQuZnV0dXJlcy53YWl0KAotICByZXR1cm5fd2hlbj1BTExfQ09NUExFVEVEKWBgLiAgUGF0Y2ggYnkgTWF0dCBKb2luZXIuCitCdWlsZAorLS0tLS0KIAotLSBJc3N1ZSAjMTQ0MDk6IElETEUgbm93IHByb3Blcmx5IGV4ZWN1dGVzIGNvbW1hbmRzIGluIHRoZSBTaGVsbCB3aW5kb3cKLSAgd2hlbiBpdCBjYW5ub3QgcmVhZCB0aGUgbm9ybWFsIGNvbmZpZyBmaWxlcyBvbiBzdGFydHVwIGFuZAotICBoYXMgdG8gdXNlIHRoZSBidWlsdC1pbiBkZWZhdWx0IGtleSBiaW5kaW5ncy4KLSAgVGhlcmUgd2FzIHByZXZpb3VzbHkgYSBidWcgaW4gb25lIG9mIHRoZSBkZWZhdWx0cy4KLQotLSBJc3N1ZSAjMTAzNDA6IGFzeW5jb3JlIC0gcHJvcGVybHkgaGFuZGxlIEVJTlZBTCBpbiBkaXNwYXRjaGVyIGNvbnN0cnVjdG9yIG9uCi0gIE9TWDsgYXZvaWQgdG8gY2FsbCBoYW5kbGVfY29ubmVjdCBpbiBjYXNlIG9mIGEgZGlzY29ubmVjdGVkIHNvY2tldCB3aGljaAotICB3YXMgbm90IG1lYW50IHRvIGNvbm5lY3QuCi0KLS0gSXNzdWUgIzEyNzU3OiBGaXggdGhlIHNraXBwaW5nIG9mIGRvY3Rlc3RzIHdoZW4gcHl0aG9uIGlzIHJ1biB3aXRoIC1PTyBzbwotICB0aGF0IGl0IHdvcmtzIGluIHVuaXR0ZXN0J3MgdmVyYm9zZSBtb2RlIGFzIHdlbGwgYXMgbm9uLXZlcmJvc2UgbW9kZS4KLQotLSBJc3N1ZSAjMzU3MzogSURMRSBoYW5ncyB3aGVuIHBhc3NpbmcgaW52YWxpZCBjb21tYW5kIGxpbmUgYXJncwotICAoZGlyZWN0b3J5KGllcykgaW5zdGVhZCBvZiBmaWxlKHMpKSAoUGF0Y2ggYnkgR3VpbGhlcm1lIFBvbG8pCi0KLS0gSXNzdWUgIzEzNjk0OiBhc3luY2hyb25vdXMgY29ubmVjdCBpbiBhc3luY29yZS5kaXNwYXRjaGVyIGRvZXMgbm90IHNldCBhZGRyCi0gIGF0dHJpYnV0ZS4KLQotLSBJc3N1ZSAjMTE2ODY6IEFkZGVkIG1pc3NpbmcgZW50cmllcyB0byBlbWFpbCBwYWNrYWdlIF9fYWxsX18gbGlzdHMKLSAgKG1vc3RseSB0aGUgbmV3IEJ5dGVzIGNsYXNzZXMpLgotCi0tIElzc3VlICMxMDQ4NDogRml4IHRoZSBDR0lIVFRQU2VydmVyJ3MgUEFUSF9JTkZPIGhhbmRsaW5nIHByb2JsZW0uCi0KLS0gSXNzdWUgIzExMTk5OiBGaXggdGhlIHdpdGggdXJsbGliIHdoaWNoIGhhbmdzIG9uIHBhcnRpY3VsYXIgZnRwIHVybHMuCi0KLS0gSXNzdWUgIzE0MDYyOiBIZWFkZXIgb2JqZWN0cyBub3cgY29ycmVjdGx5IHJlc3BlY3QgdGhlICdsaW5lc2VwJyBzZXR0aW5nCi0gIHdoZW4gcHJvY2Vzc2VkIGJ5IEJ5dGVzUGFyc2VyICh3aGljaCBzbXRwbGliLlNNVFAuc2VuZF9tZXNzYWdlIHVzZXMpLgotCi0tIElzc3VlICMxNDI5MTogRW1haWwgbm93IGRlZmF1bHRzIHRvIHV0Zi04IGZvciBub24tQVNDSUkgdW5pY29kZSBoZWFkZXJzCi0gIGluc3RlYWQgb2YgcmFpc2luZyBhbiBlcnJvci4gIFRoaXMgZml4ZXMgYSByZWdyZXNzaW9uIHJlbGF0aXZlIHRvIDIuNy4KLQotLSBJc3N1ZSAjNTIxOTogUHJldmVudCBldmVudCBoYW5kbGVyIGNhc2NhZGUgaW4gSURMRS4KLQotLSBJc3N1ZSAjMTQxODQ6IEluY3JlYXNlIHRoZSBkZWZhdWx0IHN0YWNrIHNpemUgZm9yIHNlY29uZGFyeSB0aHJlYWRzIG9uCi0gIE1hYyBPUyBYIHRvIGF2b2lkIGludGVycHJldGVyIGNyYXNoZXMgd2hlbiB1c2luZyB0aHJlYWRzIG9uIDEwLjcuCi0KLS0gSXNzdWUgIzEwNTQzOiBGaXggdW5pdHRlc3QgdGVzdCBkaXNjb3Zlcnkgd2l0aCBKeXRob24gYnl0ZWNvZGUgZmlsZXMuCi0KLS0gSXNzdWUgIzE0MjUyOiBGaXggc3VicHJvY2Vzcy5Qb3Blbi50ZXJtaW5hdGUoKSB0byBub3QgcmFpc2UgYW4gZXJyb3IgdW5kZXIKLSAgV2luZG93cyB3aGVuIHRoZSBjaGlsZCBwcm9jZXNzIGhhcyBhbHJlYWR5IGV4aXRlZC4KLQotLSBJc3N1ZSAjMTQxOTU6IEFuIGlzc3VlIHRoYXQgY2F1c2VkIHdlYWtyZWYuV2Vha1NldCBpbnN0YW5jZXMgdG8gaW5jb3JyZWN0bHkKLSAgcmV0dXJuIFRydWUgZm9yIGEgV2Vha1NldCBpbnN0YW5jZSAnYScgaW4gYm90aCAnYSA8IGEnIGFuZCAnYSA+IGEnIGhhcyBiZWVuCi0gIGZpeGVkLgotCi0tIElzc3VlICMxNDE3NzogbWFyc2hhbC5sb2FkcygpIG5vdyByYWlzZXMgVHlwZUVycm9yIHdoZW4gZ2l2ZW4gYW4gdW5pY29kZQotICBzdHJpbmcuICBQYXRjaCBieSBHdWlsaGVybWUgR29uw6dhbHZlcy4KLQotLSBJc3N1ZSAjMTQxNTk6IEZpeCB0aGUgbGVuKCkgb2Ygd2VhayBjb250YWluZXJzIChXZWFrU2V0LCBXZWFrS2V5RGljdGlvbmFyeSwKLSAgV2Vha1ZhbHVlRGljdGlvbmFyeSkgdG8gcmV0dXJuIGEgYmV0dGVyIGFwcHJveGltYXRpb24gd2hlbiBzb21lIG9iamVjdHMKLSAgYXJlIGRlYWQgb3IgZHlpbmcuICBNb3Jlb3ZlciwgdGhlIGltcGxlbWVudGF0aW9uIGlzIG5vdyBPKDEpIHJhdGhlciB0aGFuCi0gIE8obikuCi0KLS0gSXNzdWUgIzEzMTI1OiBTaWxlbmNlIHNwdXJpb3VzIHRlc3RfbGliMnRvMyBvdXRwdXQgd2hlbiBpbiBub24tdmVyYm9zZSBtb2RlLgotICBQYXRjaCBieSBNaWtoYWlsIE5vdmlrb3YuCi0KLS0gSXNzdWUgIzEzNDQ3OiBBZGQgYSB0ZXN0IGZpbGUgdG8gaG9zdCByZWdyZXNzaW9uIHRlc3RzIGZvciBidWdzIGluIHRoZQotICBzY3JpcHRzIGZvdW5kIGluIHRoZSBUb29scyBkaXJlY3RvcnkuCi0KLS0gSXNzdWUgIzgwMzM6IHNxbGl0ZTM6IEZpeCA2NC1iaXQgaW50ZWdlciBoYW5kbGluZyBpbiB1c2VyIGZ1bmN0aW9ucwotICBvbiAzMi1iaXQgYXJjaGl0ZWN0dXJlcy4gSW5pdGlhbCBwYXRjaCBieSBQaGlsaXBwZSBEZXZhbGtlbmVlci4KLQotRXh0ZW5zaW9uIE1vZHVsZXMKLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0gSXNzdWUgIzE1MDAwOiBTdXBwb3J0IHRoZSAidW5pcXVlIiB4MzIgYXJjaGl0ZWN0dXJlIGluIF9wb3NpeHN1YnByb2Nlc3MuYy4KLQotLSBJc3N1ZSAjOTA0MTogQW4gaXNzdWUgaW4gY3R5cGVzLmNfbG9uZ2RvdWJsZSwgY3R5cGVzLmNfZG91YmxlLCBhbmQKLSAgY3R5cGVzLmNfZmxvYXQgdGhhdCBjYXVzZWQgYW4gaW5jb3JyZWN0IGV4Y2VwdGlvbiB0byBiZSByZXR1cm5lZCBpbiB0aGUKLSAgY2FzZSBvZiBvdmVyZmxvdyBoYXMgYmVlbiBmaXhlZC4KLQotLSBJc3N1ZSAjMTQyMTI6IFRoZSByZSBtb2R1bGUgZGlkbid0IHJldGFpbiBhIHJlZmVyZW5jZSB0byBidWZmZXJzIGl0IHdhcwotICBzY2FubmluZywgcmVzdWx0aW5nIGluIHNlZ2ZhdWx0cy4KKy0gIm1ha2UgdG91Y2giIHdpbGwgbm93IHRvdWNoIGdlbmVyYXRlZCBmaWxlcyB0aGF0IGFyZSBjaGVja2VkIGludG8gTWVyY3VyaWFsLAorICBhZnRlciBhICJoZyB1cGRhdGUiIHdoaWNoIGZhaWxlZCB0byBicmluZyB0aGUgdGltZXN0YW1wcyBpbnRvIHRoZSByaWdodCBvcmRlci4KIAogVGVzdHMKIC0tLS0tCiAKLS0gdGVzdF9ubnRwbGliIG5vdyB0b2xlcmF0ZXMgYmVpbmcgcnVuIGZyb20gYmVoaW5kIE5OVFAgZ2F0ZXdheXMgdGhhdCBhZGQKLSAgIlgtQW50aXZpcnVzIiBoZWFkZXJzIHRvIGFydGljbGVzCi0KLS0gSXNzdWUgIzE1MDQzOiB0ZXN0X2dkYiBpcyBub3cgc2tpcHBlZCBlbnRpcmVseSBpZiBnZGIgc2VjdXJpdHkgc2V0dGluZ3MKLSAgYmxvY2sgbG9hZGluZyBvZiB0aGUgZ2RiIGhvb2tzCi0KIC0gSXNzdWUgIzE0MDI2OiBJbiB0ZXN0X2NtZF9saW5lX3NjcmlwdCwgY2hlY2sgdGhhdCBzeXMuYXJndiBpcyBwb3B1bGF0ZWQKICAgY29ycmVjdGx5IGZvciB0aGUgdmFyaW91cyBpbnZvY2F0aW9uIGFwcHJvYWNoZXMgKFBhdGNoIGJ5IEphc29uIFllbykKIApAQCAtMzU2LDkwICs5MjQsMzEwIEBACiAtIElzc3VlICMxNDU4OTogVXBkYXRlIGNlcnRpZmljYXRlIGNoYWluIGZvciBzaGEyNTYudGJzLWludGVybmV0LmNvbSwgZml4aW5nCiAgIGEgdGVzdCBmYWlsdXJlIGluIHRlc3Rfc3NsLgogCi1CdWlsZAotLS0tLS0KKy0gSXNzdWUgIzE0MzU1OiBSZWdydGVzdCBub3cgc3VwcG9ydHMgdGhlIHN0YW5kYXJkIHVuaXR0ZXN0IHRlc3QgbG9hZGluZywgYW5kCisgIHdpbGwgdXNlIGl0IGlmIGEgdGVzdCBmaWxlIGNvbnRhaW5zIG5vIGB0ZXN0X21haW5gIG1ldGhvZC4KIAotLSBJc3N1ZSAjMTQ0NzI6IFVwZGF0ZSAuZ2l0aWdub3JlLiBQYXRjaCBieSBNYXRlaiBDZXBsLgotCi0tIFRoZSBXaW5kb3dzIGJ1aWxkIG5vdyB1c2VzIE9wZW5TU0wgMS4wLjBqIGFuZCBiemlwMiAxLjAuNi4KLQotLSBJc3N1ZSAjMTQ1NTc6IEZpeCBleHRlbnNpb25zIGJ1aWxkIG9uIEhQLVVYLiBQYXRjaCBieSBBZGkgUm9pYmFuLgotCi0tIElzc3VlICMxNDQzNzogRml4IGJ1aWxkaW5nIHRoZSBfaW8gbW9kdWxlIHVuZGVyIEN5Z3dpbi4KLQotLSBJc3N1ZSAjMTQzODc6IERvIG5vdCBpbmNsdWRlIGFjY3UuaCBmcm9tIFB5dGhvbi5oLgotCi0tIElzc3VlICMxNDM1OTogT25seSB1c2UgT19DTE9FWEVDIGluIF9wb3NpeG1vZHVsZS5jIGlmIGl0IGlzIGRlZmluZWQuCi0gIEJhc2VkIG9uIHBhdGNoIGZyb20gSGVydsOpIENvYXRhbmhheS4KLQotRG9jdW1lbnRhdGlvbgorVG9vbHMgLyBEZW1vcwogLS0tLS0tLS0tLS0tLQogCi0tIElzc3VlICMxMzU1NzogQ2xhcmlmeSBlZmZlY3Qgb2YgZ2l2aW5nIHR3byBkaWZmZXJlbnQgbmFtZXNwYWNlcyB0byBleGVjIG9yCi0gIGV4ZWNmaWxlKCkuCistIElzc3VlICMzNTYxOiBUaGUgV2luZG93cyBpbnN0YWxsZXIgbm93IGhhcyBhbiBvcHRpb24sIG9mZiBieSBkZWZhdWx0LCBmb3IKKyAgcGxhY2luZyB0aGUgUHl0aG9uIGluc3RhbGxhdGlvbiBpbnRvIHRoZSBzeXN0ZW0gIlBhdGgiIGVudmlyb25tZW50IHZhcmlhYmxlLgogCi0tIElzc3VlICM4Nzk5OiBGaXggYW5kIGltcHJvdmUgdGhlIHRocmVhZGluZy5Db25kaXRpb24gZG9jdW1lbnRhdGlvbi4KLQotLSBJc3N1ZSAjMTQ5NDM6IENvcnJlY3QgYSBkZWZhdWx0IGFyZ3VtZW50IHZhbHVlIGZvciB3aW5yZWcuT3BlbktleQotICBhbmQgY29ycmVjdGx5IGxpc3QgdGhlIGFyZ3VtZW50IG5hbWVzIGluIHRoZSBmdW5jdGlvbidzIGV4cGxhbmF0aW9uLgotCi0tIElzc3VlICMxNDAzNDogYWRkZWQgdGhlIGFyZ3BhcnNlIHR1dG9yaWFsLgotCi1Ub29scy9EZW1vcwotLS0tLS0tLS0tLS0KLQotLSBJc3N1ZSAjMTQ2OTU6IEZpeCBtaXNzaW5nIHN1cHBvcnQgZm9yIHN0YXJyZWQgYXNzaWdubWVudHMgaW4KLSAgVG9vbHMvcGFyc2VyL3VucGFyc2UucHkuCistIElzc3VlICMxMzE2NTogc3RyaW5nYmVuY2ggaXMgbm93IGF2YWlsYWJsZSBpbiB0aGUgVG9vbHMvc3RyaW5nYmVuY2ggZm9sZGVyLgorICBJdCB1c2VkIHRvIGxpdmUgaW4gaXRzIG93biBTVk4gcHJvamVjdC4KIAogCi1XaGF0J3MgTmV3IGluIFB5dGhvbiAzLjIuMz8KLT09PT09PT09PT09PT09PT09PT09PT09PT09PQorV2hhdCdzIE5ldyBpbiBQeXRob24gMy4zLjAgQWxwaGEgMj8KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKLSpSZWxlYXNlIGRhdGU6IDEwLUFwci0yMDEyKgorKlJlbGVhc2UgZGF0ZTogMDEtQXByLTIwMTIqCiAKLUJ1aWxkCi0tLS0tLQorQ29yZSBhbmQgQnVpbHRpbnMKKy0tLS0tLS0tLS0tLS0tLS0tCiAKLS0gSXNzdWUgIzE0Mzg3OiBXb3JrIGFyb3VuZCBhIHByb2JsZW0gYnVpbGRpbmcgZXh0ZW5zaW9uIG1vZHVsZXMgdW5kZXIgV2luZG93cwotICBieSB1bmRlZmluaW5nIGBgc21hbGxgYCBiZWZvcmUgdXNlIGluIHRoZSBQeXRob24gaGVhZGVycy4KKy0gSXNzdWUgIzE2ODMzNjg6IG9iamVjdC5fX25ld19fIGFuZCBvYmplY3QuX19pbml0X18gcmFpc2UgYSBUeXBlRXJyb3IgaWYgdGhleQorICBhcmUgcGFzc2VkIGFyZ3VtZW50cyBhbmQgdGhlaXIgY29tcGxlbWVudGFyeSBtZXRob2QgaXMgbm90IG92ZXJyaWRkZW4uCiAKKy0gSXNzdWUgIzE0Mzc4OiBGaXggY29tcGlsaW5nIGFzdC5JbXBvcnRGcm9tIG5vZGVzIHdpdGggYSAiX19mdXR1cmVfXyIgc3RyaW5nIGFzCisgIHRoZSBtb2R1bGUgbmFtZSB0aGF0IHdhcyBub3QgaW50ZXJuZWQuCiAKLVdoYXQncyBOZXcgaW4gUHl0aG9uIDMuMi4zIHJlbGVhc2UgY2FuZGlkYXRlIDI/Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLSBJc3N1ZSAjMTQzMzE6IFVzZSBzaWduaWZpY2FudGx5IGxlc3Mgc3RhY2sgc3BhY2Ugd2hlbiBpbXBvcnRpbmcgbW9kdWxlcyBieQorICBhbGxvY2F0aW5nIHBhdGggYnVmZmVycyBvbiB0aGUgaGVhcCBpbnN0ZWFkIG9mIHRoZSBzdGFjay4KIAotKlJlbGVhc2UgZGF0ZTogMTgtTWFyLTIwMTIqCistIElzc3VlICMxNDMzNDogUHJldmVudCBpbiBhIHNlZ2ZhdWx0IGluIHR5cGUuX19nZXRhdHRyaWJ1dGVfXyB3aGVuIGl0IHdhcyBub3QKKyAgcGFzc2VkIHN0cmluZ3MuCisKKy0gSXNzdWUgIzE0Njk2Mjk6IEFsbG93IGN5Y2xlcyB0aHJvdWdoIGFuIG9iamVjdCdzIF9fZGljdF9fIHNsb3QgdG8gYmUKKyAgY29sbGVjdGVkLiAoRm9yIGV4YW1wbGUgaWYgYGB4Ll9fZGljdF9fIGlzIHhgYCkuCisKKy0gSXNzdWUgIzE0MjA1OiBkaWN0IGxvb2t1cCByYWlzZXMgYSBSdW50aW1lRXJyb3IgaWYgdGhlIGRpY3QgaXMgbW9kaWZpZWQKKyAgZHVyaW5nIGEgbG9va3VwLgorCistIElzc3VlICMxNDIyMDogV2hlbiBhIGdlbmVyYXRvciBpcyBkZWxlZ2F0aW5nIHRvIGFub3RoZXIgaXRlcmF0b3Igd2l0aCB0aGUKKyAgeWllbGQgZnJvbSBzeW50YXgsIGl0IG5lZWRzIHRvIGhhdmUgaXRzIGBgZ2lfcnVubmluZ2BgIGZsYWcgc2V0IHRvIFRydWUuCisKKy0gSXNzdWUgIzE0NDM1OiBSZW1vdmUgZGVkaWNhdGVkIGJsb2NrIGFsbG9jYXRvciBmcm9tIGZsb2F0b2JqZWN0LmMgYW5kIHJlbHkKKyAgb24gdGhlIFB5T2JqZWN0X01hbGxvYygpIGFwaSBsaWtlIGFsbCBvdGhlciBvYmplY3RzLgorCistIElzc3VlICMxNDQ3MTogRml4IGEgcG9zc2libGUgYnVmZmVyIG92ZXJydW4gaW4gdGhlIHdpbnJlZyBtb2R1bGUuCisKKy0gSXNzdWUgIzE0Mjg4OiBBbGxvdyB0aGUgc2VyaWFsaXphdGlvbiBvZiBidWlsdGluIGl0ZXJhdG9ycwogCiBMaWJyYXJ5CiAtLS0tLS0tCiAKLS0gSXNzdWUgIzY4ODQ6IEZpeCBsb25nLXN0YW5kaW5nIGJ1Z3Mgd2l0aCBNQU5JRkVTVC5pbiBwYXJzaW5nIGluIGRpc3R1dGlscwotICBvbiBXaW5kb3dzLgorLSBJc3N1ZSAjMTQzMDA6IFVuZGVyIFdpbmRvd3MsIHNvY2tldHMgY3JlYXRlZCB1c2luZyBzb2NrZXQuZHVwKCkgbm93IGFsbG93CisgIG92ZXJsYXBwZWQgSS9PLiAgUGF0Y2ggYnkgc2J0LgogCi1FeHRlbnNpb24gTW9kdWxlcwotLS0tLS0tLS0tLS0tLS0tLS0KKy0gSXNzdWUgIzEzODcyOiBzb2NrZXQuZGV0YWNoKCkgbm93IG1hcmtzIHRoZSBzb2NrZXQgY2xvc2VkIChhcyBtaXJyb3JlZAorICBpbiB0aGUgc29ja2V0IHJlcHIoKSkuICBQYXRjaCBieSBNYXR0IEpvaW5lci4KKworLSBJc3N1ZSAjMTQ0MDY6IEZpeCBhIHJhY2UgY29uZGl0aW9uIHdoZW4gdXNpbmcgYGBjb25jdXJyZW50LmZ1dHVyZXMud2FpdCgKKyAgcmV0dXJuX3doZW49QUxMX0NPTVBMRVRFRClgYC4gIFBhdGNoIGJ5IE1hdHQgSm9pbmVyLgorCistIElzc3VlICM1MTM2OiBkZXByZWNhdGUgb2xkLCB1bnVzZWQgZnVuY3Rpb25zIGZyb20gdGtpbnRlci4KKworLSBJc3N1ZSAjMTQ0MDk6IElETEUgbm93IHByb3Blcmx5IGV4ZWN1dGVzIGNvbW1hbmRzIGluIHRoZSBTaGVsbCB3aW5kb3cKKyAgd2hlbiBpdCBjYW5ub3QgcmVhZCB0aGUgbm9ybWFsIGNvbmZpZyBmaWxlcyBvbiBzdGFydHVwIGFuZAorICBoYXMgdG8gdXNlIHRoZSBidWlsdC1pbiBkZWZhdWx0IGtleSBiaW5kaW5ncy4KKyAgVGhlcmUgd2FzIHByZXZpb3VzbHkgYSBidWcgaW4gb25lIG9mIHRoZSBkZWZhdWx0cy4KKworLSBJc3N1ZSAjMTQ0MTY6IHN5c2xvZyBub3cgZGVmaW5lcyB0aGUgTE9HX09ERUxBWSBhbmQgTE9HX0FVVEhQUklWIGNvbnN0YW50cworICBpZiB0aGV5IGFyZSBkZWZpbmVkIGluIDxzeXNsb2cuaD4uCisKKy0gSURMRSBjYW4gYmUgbGF1bmNoZWQgYXMgcHl0aG9uIC1tIGlkbGVsaWIKKworLSBJc3N1ZSAjMTQyOTU6IEFkZCB1bml0dGVzdC5tb2NrCisKKy0gSXNzdWUgIzc2NTI6IEFkZCAtLXdpdGgtc3lzdGVtLWxpYm1wZGVjIG9wdGlvbiB0byBjb25maWd1cmUgZm9yIGxpbmtpbmcKKyAgdGhlIF9kZWNpbWFsIG1vZHVsZSBhZ2FpbnN0IGFuIGluc3RhbGxlZCBsaWJtcGRlYy4KKworLSBJc3N1ZSAjMTQzODA6IE1JTUVUZXh0IG5vdyBkZWZhdWx0cyB0byB1dGYtOCB3aGVuIHBhc3NlZCBub24tQVNDSUkgdW5pY29kZQorICB3aXRoIG5vIGNoYXJzZXQgc3BlY2lmaWVkLgorCistIElzc3VlICMxMDM0MDogYXN5bmNvcmUgLSBwcm9wZXJseSBoYW5kbGUgRUlOVkFMIGluIGRpc3BhdGNoZXIgY29uc3RydWN0b3Igb24KKyAgT1NYOyBhdm9pZCB0byBjYWxsIGhhbmRsZV9jb25uZWN0IGluIGNhc2Ugb2YgYSBkaXNjb25uZWN0ZWQgc29ja2V0IHdoaWNoCisgIHdhcyBub3QgbWVhbnQgdG8gY29ubmVjdC4KKworLSBJc3N1ZSAjMTQyMDQ6IFRoZSBzc2wgbW9kdWxlIG5vdyBoYXMgc3VwcG9ydCBmb3IgdGhlIE5leHQgUHJvdG9jb2wKKyAgTmVnb3RpYXRpb24gZXh0ZW5zaW9uLCBpZiBhdmFpbGFibGUgaW4gdGhlIHVuZGVybHlpbmcgT3BlblNTTCBsaWJyYXJ5LgorICBQYXRjaCBieSBDb2xpbiBNYXJjLgorCistIElzc3VlICMzMDM1OiBVbnVzZWQgZnVuY3Rpb25zIGZyb20gdGtpbnRlciBhcmUgbWFya2VkIGFzIHBlbmRpbmcgZGVwcmVjYXRlZC4KKworLSBJc3N1ZSAjMTI3NTc6IEZpeCB0aGUgc2tpcHBpbmcgb2YgZG9jdGVzdHMgd2hlbiBweXRob24gaXMgcnVuIHdpdGggLU9PIHNvCisgIHRoYXQgaXQgd29ya3MgaW4gdW5pdHRlc3QncyB2ZXJib3NlIG1vZGUgYXMgd2VsbCBhcyBub24tdmVyYm9zZSBtb2RlLgorCistIElzc3VlICM3NjUyOiBJbnRlZ3JhdGUgdGhlIGRlY2ltYWwgZmxvYXRpbmcgcG9pbnQgbGlibXBkZWMgbGlicmFyeSB0byBzcGVlZAorICB1cCB0aGUgZGVjaW1hbCBtb2R1bGUuIFBlcmZvcm1hbmNlIGdhaW5zIG9mIHRoZSBuZXcgQyBpbXBsZW1lbnRhdGlvbiBhcmUKKyAgYmV0d2VlbiAxMHggYW5kIDEwMHgsIGRlcGVuZGluZyBvbiB0aGUgYXBwbGljYXRpb24uCisKKy0gSXNzdWUgIzM1NzM6IElETEUgaGFuZ3Mgd2hlbiBwYXNzaW5nIGludmFsaWQgY29tbWFuZCBsaW5lIGFyZ3MKKyAgKGRpcmVjdG9yeShpZXMpIGluc3RlYWQgb2YgZmlsZShzKSkgKFBhdGNoIGJ5IEd1aWxoZXJtZSBQb2xvKQorCistIElzc3VlICMxNDI2OTogU01UUEQgbm93IGNvbmZvcm1zIHRvIHRoZSBSRkMgYW5kIHJlcXVpcmVzIGEgSEVMTyBjb21tYW5kCisgIGJlZm9yZSBNQUlMLCBSQ1BULCBvciBEQVRBLgorCistIElzc3VlICMxMzY5NDogYXN5bmNocm9ub3VzIGNvbm5lY3QgaW4gYXN5bmNvcmUuZGlzcGF0Y2hlciBkb2VzIG5vdCBzZXQgYWRkcgorICBhdHRyaWJ1dGUuCisKKy0gSXNzdWUgIzE0MzQ0OiBmaXhlZCB0aGUgcmVwciBvZiBlbWFpbC5wb2xpY3kgb2JqZWN0cy4KKworLSBJc3N1ZSAjMTE2ODY6IEFkZGVkIG1pc3NpbmcgZW50cmllcyB0byBlbWFpbCBwYWNrYWdlIF9fYWxsX18gbGlzdHMKKyAgKG1vc3RseSB0aGUgbmV3IEJ5dGVzIGNsYXNzZXMpLgorCistIElzc3VlICMxNDMzNTogbXVsdGlwcm9jZXNzaW5nJ3MgY3VzdG9tIFBpY2tsZXIgc3ViY2xhc3Mgbm93IGluaGVyaXRzIGZyb20KKyAgdGhlIEMtYWNjZWxlcmF0ZWQgaW1wbGVtZW50YXRpb24uICBQYXRjaCBieSBzYnQuCisKKy0gSXNzdWUgIzEwNDg0OiBGaXggdGhlIENHSUhUVFBTZXJ2ZXIncyBQQVRIX0lORk8gaGFuZGxpbmcgcHJvYmxlbS4KKworLSBJc3N1ZSAjMTExOTk6IEZpeCB0aGUgd2l0aCB1cmxsaWIgd2hpY2ggaGFuZ3Mgb24gcGFydGljdWxhciBmdHAgdXJscy4KKworLSBJbXByb3ZlIHRoZSBtZW1vcnkgdXRpbGl6YXRpb24gYW5kIHNwZWVkIG9mIGZ1bmN0b29scy5scnVfY2FjaGUuCisKKy0gSXNzdWUgIzE0MjIyOiBVc2UgdGhlIG5ldyB0aW1lLnN0ZWFkeSgpIGZ1bmN0aW9uIGluc3RlYWQgb2YgdGltZS50aW1lKCkgZm9yCisgIHRpbWVvdXQgaW4gcXVldWUgYW5kIHRocmVhZGluZyBtb2R1bGVzIHRvIG5vdCBiZSBhZmZlY3RlZCBvZiBzeXN0ZW0gdGltZQorICB1cGRhdGUuCisKKy0gSXNzdWUgIzEzMjQ4OiBSZW1vdmUgbGliMnRvMy5weXRyZWUuQmFzZS5nZXRfcHJlZml4L3NldF9wcmVmaXguCiAKIC0gSXNzdWUgIzE0MjM0OiBDVkUtMjAxMi0wODc2OiBSYW5kb21pemUgaGFzaGVzIG9mIHhtbCBhdHRyaWJ1dGVzIGluIHRoZSBoYXNoCiAgIHRhYmxlIGludGVybmFsIHRvIHRoZSBweWV4cGF0IG1vZHVsZSdzIGNvcHkgb2YgdGhlIGV4cGF0IGxpYnJhcnkgdG8gYXZvaWQgYQogICBkZW5pYWwgb2Ygc2VydmljZSBkdWUgdG8gaGFzaCBjb2xsaXNpb25zLiAgUGF0Y2ggYnkgRGF2aWQgTWFsY29sbSB3aXRoIHNvbWUKICAgbW9kaWZpY2F0aW9ucyBieSB0aGUgZXhwYXQgcHJvamVjdC4KIAorLSBJc3N1ZSAjMTQyMDA6IElkbGUgc2hlbGwgY3Jhc2ggb24gcHJpbnRpbmcgbm9uLUJNUCB1bmljb2RlIGNoYXJhY3Rlci4KIAotV2hhdCdzIE5ldyBpbiBQeXRob24gMy4yLjMgcmVsZWFzZSBjYW5kaWRhdGUgMT8KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistIElzc3VlICMxMjgxODogZm9ybWF0IGFkZHJlc3Mgbm8gbG9uZ2VyIG5lZWRsZXNzbHkgXCBlc2NhcGVzICgpcyBpbiBuYW1lcyB3aGVuCisgIHRoZSBuYW1lIGVuZHMgdXAgYmVpbmcgcXVvdGVkLgogCi0qUmVsZWFzZSBkYXRlOiAyNC1GZWItMjAxMioKKy0gSXNzdWUgIzE0MDYyOiBCeXRlc0dlbmVyYXRvciBub3cgY29ycmVjdGx5IGZvbGRzIEhlYWRlciBvYmplY3RzLAorICBpbmNsdWRpbmcgdXNpbmcgbGluZXNlcCB3aGVuIGZvbGRpbmcuCisKKy0gSXNzdWUgIzEzODM5OiBXaGVuIGludm9rZWQgb24gdGhlIGNvbW1hbmQtbGluZSwgdGhlIHBzdGF0cyBtb2R1bGUgbm93CisgIGFjY2VwdHMgc2V2ZXJhbCBmaWxlbmFtZXMgb2YgcHJvZmlsZSBzdGF0IGZpbGVzIGFuZCBtZXJnZXMgdGhlbSBhbGwuCisgIFBhdGNoIGJ5IE1hdHQgSm9pbmVyLgorCistIElzc3VlICMxNDI5MTogRW1haWwgbm93IGRlZmF1bHRzIHRvIHV0Zi04IGZvciBub24tQVNDSUkgdW5pY29kZSBoZWFkZXJzCisgIGluc3RlYWQgb2YgcmFpc2luZyBhbiBlcnJvci4gIFRoaXMgZml4ZXMgYSByZWdyZXNzaW9uIHJlbGF0aXZlIHRvIDIuNy4KKworLSBJc3N1ZSAjOTg5NzEyOiBTdXBwb3J0IHVzaW5nIFRrIHdpdGhvdXQgYSBtYWlubG9vcC4KKworLSBJc3N1ZSAjNTIxOTogUHJldmVudCBldmVudCBoYW5kbGVyIGNhc2NhZGUgaW4gSURMRS4KKworLSBJc3N1ZSAjMzgzNTogUmVmdXNlIHRvIHVzZSB1bnRocmVhZGVkIFRjbCBpbiB0aHJlYWRlZCBQeXRob24uCisKKy0gSXNzdWUgIzI4NDM6IEFkZCBuZXcgVGsgQVBJIHRvIFRraW50ZXIuCisKKy0gSXNzdWUgIzE0MTg0OiBJbmNyZWFzZSB0aGUgZGVmYXVsdCBzdGFjayBzaXplIGZvciBzZWNvbmRhcnkgdGhyZWFkcyBvbgorICBNYWMgT1MgWCB0byBhdm9pZCBpbnRlcnByZXRlciBjcmFzaGVzIHdoZW4gdXNpbmcgdGhyZWFkcyBvbiAxMC43LgorCistIElzc3VlICMxNDE4MDogZGF0ZXRpbWUuZGF0ZS5mcm9tdGltZXN0YW1wKCksCisgIGRhdGV0aW1lLmRhdGV0aW1lLmZyb210aW1lc3RhbXAoKSBhbmQgZGF0ZXRpbWUuZGF0ZXRpbWUudXRjZnJvbXRpbWVzdGFtcCgpCisgIG5vdyByYWlzZSBhbiBPU0Vycm9yIGluc3RlYWQgb2YgVmFsdWVFcnJvciBpZiBsb2NhbHRpbWUoKSBvciBnbXRpbWUoKSBmYWlsZWQuCisKKy0gSXNzdWUgIzE0MTgwOiB0aW1lLmN0aW1lKCksIGdtdGltZSgpLCB0aW1lLmxvY2FsdGltZSgpLAorICBkYXRldGltZS5kYXRlLmZyb210aW1lc3RhbXAoKSwgZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcCgpIGFuZAorICBkYXRldGltZS5kYXRldGltZS51dGNmcm9tdGltZXN0YW1wKCkgbm93IHJhaXNlcyBhbiBPdmVyZmxvd0Vycm9yLCBpbnN0ZWFkIG9mCisgIGEgVmFsdWVFcnJvciwgaWYgdGhlIHRpbWVzdGFtcCBkb2VzIG5vdCBmaXQgaW4gdGltZV90LgorCistIElzc3VlICMxNDE4MDogZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcCgpIGFuZAorICBkYXRldGltZS5kYXRldGltZS51dGNmcm9tdGltZXN0YW1wKCkgbm93IHJvdW5kIG1pY3Jvc2Vjb25kcyB0b3dhcmRzIHplcm8KKyAgaW5zdGVhZCBvZiByb3VuZGluZyB0byBuZWFyZXN0IHdpdGggdGllcyBnb2luZyBhd2F5IGZyb20gemVyby4KKworLSBJc3N1ZSAjMTA1NDM6IEZpeCB1bml0dGVzdCB0ZXN0IGRpc2NvdmVyeSB3aXRoIEp5dGhvbiBieXRlY29kZSBmaWxlcy4KKworLSBJc3N1ZSAjMTE3ODg2MzogU2VwYXJhdGUgaW5pdGlhbGlzYXRpb24gZnJvbSBzZXR0aW5nIHdoZW4gaW5pdGlhbGl6aW5nCisgIFRraW50ZXIuVmFyaWFibGVzOyBoYXJtb25pemUgZXhjZXB0aW9ucyB0byBWYWx1ZUVycm9yOyBvbmx5IGRlbGV0ZSB2YXJpYWJsZXMKKyAgdGhhdCBoYXZlIG5vdCBiZWVuIGRlbGV0ZWQ7IGFzc2VydCB0aGF0IHZhcmlhYmxlIG5hbWVzIGFyZSBzdHJpbmdzLgorCistIElzc3VlICMxNDEwNDogSW1wbGVtZW50IHRpbWUubW9ub3RvbmljKCkgb24gTWFjIE9TIFgsIHBhdGNoIHdyaXR0ZW4gYnkKKyAgTmljaG9sYXMgUmlsZXkuCisKKy0gSXNzdWUgIzEzMzk0OiB0aGUgYWlmYyBtb2R1bGUgbm93IHVzZXMgd2FybmluZ3Mud2FybigpIHRvIHNpZ25hbCB3YXJuaW5ncy4KKworLSBJc3N1ZSAjMTQyNTI6IEZpeCBzdWJwcm9jZXNzLlBvcGVuLnRlcm1pbmF0ZSgpIHRvIG5vdCByYWlzZSBhbiBlcnJvciB1bmRlcgorICBXaW5kb3dzIHdoZW4gdGhlIGNoaWxkIHByb2Nlc3MgaGFzIGFscmVhZHkgZXhpdGVkLgorCistIElzc3VlICMxNDIyMzogY3Vyc2VzLmFkZGNoKCkgaXMgbm8gbW9yZSBsaW1pdGVkIHRvIHRoZSByYW5nZSAwLTI1NSB3aGVuIHRoZQorICBQeXRob24gY3Vyc2VzIGlzIG5vdCBsaW5rZWQgdG8gbGlibmN1cnNlc3cuIEl0IHdhcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZAorICBpbiBQeXRob24gMy4zYTEuCisKKy0gSXNzdWUgIzE0MTY4OiBDaGVjayBmb3IgcHJlc2VuY2Ugb2YgRWxlbWVudC5fYXR0cnMgaW4gbWluaWRvbSBiZWZvcmUKKyAgYWNjZXNzaW5nIGl0LgorCistIElzc3VlICMxMjMyODogRml4IG11bHRpcHJvY2Vzc2luZydzIHVzZSBvZiBvdmVybGFwcGVkIEkvTyBvbiBXaW5kb3dzLgorICBBbHNvLCBhZGQgYSBtdWx0aXByb2Nlc3NpbmcuY29ubmVjdGlvbi53YWl0KHJsaXN0LCB0aW1lb3V0PU5vbmUpIGZ1bmN0aW9uCisgIGZvciBwb2xsaW5nIG11bHRpcGxlIG9iamVjdHMgYXQgb25jZS4gIFBhdGNoIGJ5IHNidC4KKworLSBJc3N1ZSAjMTQwMDc6IEFjY2VwdCBpbmNvbXBsZXRlIFRyZWVCdWlsZGVyIG9iamVjdHMgKG1pc3Npbmcgc3RhcnQsIGVuZCwKKyAgZGF0YSBvciBjbG9zZSBtZXRob2QpIGZvciB0aGUgUHl0aG9uIGltcGxlbWVudGF0aW9uIGFzIHdlbGwuCisgIERyb3AgdGhlIG5vLW9wIFRyZWVCdWlsZGVyKCkueG1sKCkgbWV0aG9kIGZyb20gdGhlIEMgaW1wbGVtZW50YXRpb24uCisKKy0gSXNzdWUgIzE0MjEwOiBwZGIgbm93IGhhcyB0YWItY29tcGxldGlvbiBub3Qgb25seSBmb3IgY29tbWFuZCBuYW1lcywgYnV0CisgIGFsc28gZm9yIHRoZWlyIGFyZ3VtZW50cywgd2hlcmV2ZXIgcG9zc2libGUuCisKKy0gSXNzdWUgIzE0MzEwOiBTb2NrZXRzIGNhbiBub3cgYmUgd2l0aCBvdGhlciBwcm9jZXNzZXMgb24gV2luZG93cyB1c2luZworICB0aGUgYXBpIHNvY2tldC5zb2NrZXQuc2hhcmUoKSBhbmQgc29ja2V0LmZyb21zaGFyZSgpLgorCistIElzc3VlICMxMDU3NjogVGhlIGdjIG1vZHVsZSBub3cgaGFzIGEgJ2NhbGxiYWNrcycgbWVtYmVyIHRoYXQgd2lsbCBnZXQKKyAgY2FsbGVkIHdoZW4gZ2FyYmFnZSBjb2xsZWN0aW9uIHRha2VzIHBsYWNlLgorCitCdWlsZAorLS0tLS0KKworLSBJc3N1ZSAjMTQ1NTc6IEZpeCBleHRlbnNpb25zIGJ1aWxkIG9uIEhQLVVYLiBQYXRjaCBieSBBZGkgUm9pYmFuLgorCistIElzc3VlICMxNDM4NzogRG8gbm90IGluY2x1ZGUgYWNjdS5oIGZyb20gUHl0aG9uLmguCisKKy0gSXNzdWUgIzE0MzU5OiBPbmx5IHVzZSBPX0NMT0VYRUMgaW4gX3Bvc2l4bW9kdWxlLmMgaWYgaXQgaXMgZGVmaW5lZC4KKyAgQmFzZWQgb24gcGF0Y2ggZnJvbSBIZXJ2w6kgQ29hdGFuaGF5LgorCistIElzc3VlICMxNDMyMTogRG8gbm90IHJ1biBwZ2VuIGR1cmluZyB0aGUgYnVpbGQgaWYgZmlsZXMgYXJlIHVwIHRvIGRhdGUuCitEb2N1bWVudGF0aW9uCistLS0tLS0tLS0tLS0tCisKKy0gSXNzdWUgIzE0MDM0OiBhZGRlZCB0aGUgYXJncGFyc2UgdHV0b3JpYWwuCisKKworLSBJc3N1ZSAjMTQzMjQ6IEZpeCBjb25maWd1cmUgdGVzdHMgZm9yIGNyb3NzIGJ1aWxkcy4KKworLSBJc3N1ZSAjMTQzMjc6IENhbGwgQUNfQ0FOT05JQ0FMX0hPU1QgaW4gY29uZmlndXJlLmFjIGFuZCBjaGVjayBpbgorICBjb25maWcue2d1ZXNzLHN1Yn0uIERvbid0IHVzZSB1bmFtZSBjYWxscyBmb3IgY3Jvc3MgYnVpbGRzLgorCitFeHRlbnNpb24gTW9kdWxlcworLS0tLS0tLS0tLS0tLS0tLS0KKworLSBJc3N1ZSAjOTA0MTogQW4gaXNzdWUgaW4gY3R5cGVzLmNfbG9uZ2RvdWJsZSwgY3R5cGVzLmNfZG91YmxlLCBhbmQKKyAgY3R5cGVzLmNfZmxvYXQgdGhhdCBjYXVzZWQgYW4gaW5jb3JyZWN0IGV4Y2VwdGlvbiB0byBiZSByZXR1cm5lZCBpbiB0aGUKKyAgY2FzZSBvZiBvdmVyZmxvdyBoYXMgYmVlbiBmaXhlZC4KKworLSBJc3N1ZSAjMTQyMTI6IFRoZSByZSBtb2R1bGUgZGlkbid0IHJldGFpbiBhIHJlZmVyZW5jZSB0byBidWZmZXJzIGl0IHdhcworICBzY2FubmluZywgcmVzdWx0aW5nIGluIHNlZ2ZhdWx0cy4KKworLSBJc3N1ZSAjMTQyNTk6IFRoZSBmaW5kaXRlcigpIG1ldGhvZCBvZiByZSBvYmplY3RzIGRpZCBub3QgdGFrZSBhbnkKKyAga2V5d29yZCBhcmd1bWVudHMsIGNvbnRyYXJ5IHRvIHRoZSBkb2N1bWVudGF0aW9uLgorCistIElzc3VlICMxMDE0MjogU3VwcG9ydCBmb3IgU0VFS19IT0xFL1NFRUtfREFUQSAoZm9yIGV4YW1wbGUsIHVuZGVyIFpGUykuCisKK1Rlc3RzCistLS0tLQorCistIElzc3VlICMxNDQ0MjogQWRkIG1pc3NpbmcgZXJybm8gaW1wb3J0IGluIHRlc3Rfc210cGxpYi4KKworLSBJc3N1ZSAjODMxNTogKHBhcnRpYWwgZml4KSBweXRob24gLW0gdW5pdHRlc3QgdGVzdC50ZXN0X2VtYWlsIG5vdyB3b3Jrcy4KKworCitXaGF0J3MgTmV3IGluIFB5dGhvbiAzLjMuMCBBbHBoYSAxPworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKlJlbGVhc2UgZGF0ZTogMDUtTWFyLTIwMTIqCiAKIENvcmUgYW5kIEJ1aWx0aW5zCiAtLS0tLS0tLS0tLS0tLS0tLQogCi0tIElzc3VlICMxMzcwMzogb0NFUlQtMjAxMS0wMDM6IGFkZCAtUiBjb21tYW5kLWxpbmUgb3B0aW9uIGFuZCBQWVRIT05IQVNIU0VFRAotICBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdG8gcHJvdmlkZSBhbiBvcHQtaW4gd2F5IHRvIHByb3RlY3QgYWdhaW5zdCBkZW5pYWwgb2YKLSAgc2VydmljZSBhdHRhY2tzIGR1ZSB0byBoYXNoIGNvbGxpc2lvbnMgd2l0aGluIHRoZSBkaWN0IGFuZCBzZXQgdHlwZXMuICBQYXRjaAotICBieSBEYXZpZCBNYWxjb2xtLCBiYXNlZCBvbiB3b3JrIGJ5IFZpY3RvciBTdGlubmVyLgorLSBJc3N1ZSAjMTQxNzI6IEZpeCByZWZlcmVuY2UgbGVhayB3aGVuIG1hcnNoYWxsaW5nIGEgYnVmZmVyLWxpa2Ugb2JqZWN0CisgIChvdGhlciB0aGFuIGEgYnl0ZXMgb2JqZWN0KS4KKworLSBJc3N1ZSAjMTM1MjE6IGRpY3Quc2V0ZGVmYXVsdCgpIG5vdyBkb2VzIG9ubHkgb25lIGxvb2t1cCBmb3IgdGhlIGdpdmVuIGtleSwKKyAgbWFraW5nIGl0ICJhdG9taWMiIGZvciBtYW55IHB1cnBvc2VzLiAgUGF0Y2ggYnkgRmlsaXAgR3J1c3pjennFhHNraS4KKworLSBQRVAgNDA5LCBJc3N1ZSAjNjIxMDogInJhaXNlIFggZnJvbSBOb25lIiBpcyBub3cgc3VwcG9ydGVkIGFzIGEgbWVhbnMgb2YKKyAgc3VwcHJlc3NpbmcgdGhlIGRpc3BsYXkgb2YgdGhlIGNoYWluZWQgZXhjZXB0aW9uIGNvbnRleHQuIFRoZSBjaGFpbmVkCisgIGNvbnRleHQgc3RpbGwgcmVtYWlucyBhdmFpbGFibGUgYXMgdGhlIF9fY29udGV4dF9fIGF0dHJpYnV0ZS4KKworLSBJc3N1ZSAjMTAxODE6IE5ldyBtZW1vcnl2aWV3IGltcGxlbWVudGF0aW9uIGZpeGVzIG11bHRpcGxlIG93bmVyc2hpcAorICBhbmQgbGlmZXRpbWUgaXNzdWVzIG9mIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBQeV9idWZmZXIgbWVtYmVycyAoIzk5OTApCisgIGFzIHdlbGwgYXMgY3Jhc2hlcyAoIzgzMDUsICM3NDMzKS4gTWFueSBuZXcgZmVhdHVyZXMgaGF2ZSBiZWVuIGFkZGVkCisgIChTZWUgd2hhdHNuZXcvMy4zKSwgYW5kIHRoZSBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHVwZGF0ZWQgZXh0ZW5zaXZlbHkuCisgIFRoZSBuZGFycmF5IHRlc3Qgb2JqZWN0IGZyb20gX3Rlc3RidWZmZXIuYyBpbXBsZW1lbnRzIGFsbCBhc3BlY3RzIG9mCisgIFBFUC0zMTE4LCBzbyBmdXJ0aGVyIGRldmVsb3BtZW50IHRvd2FyZHMgdGhlIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uCisgIG9mIHRoZSBQRVAgY2FuIHByb2NlZWQgaW4gYSB0ZXN0LWRyaXZlbiBtYW5uZXIuCisKKyAgVGhhbmtzIHRvIE5pY2sgQ29naGxhbiwgQW50b2luZSBQaXRyb3UgYW5kIFBhdWxpIFZpcnRhbmVuIGZvciByZXZpZXcKKyAgYW5kIG1hbnkgaWRlYXMuCisKKy0gSXNzdWUgIzEyODM0OiBGaXggaW5jb3JyZWN0IHJlc3VsdHMgb2YgbWVtb3J5dmlldy50b2J5dGVzKCkgZm9yCisgIG5vbi1jb250aWd1b3VzIGFycmF5cy4KKworLSBJc3N1ZSAjNTIzMTogSW50cm9kdWNlIG1lbW9yeXZpZXcuY2FzdCgpIG1ldGhvZCB0aGF0IGFsbG93cyBjaGFuZ2luZworICBmb3JtYXQgYW5kIHNoYXBlIHdpdGhvdXQgbWFraW5nIGEgY29weSBvZiB0aGUgdW5kZXJseWluZyBtZW1vcnkuCiAKIC0gSXNzdWUgIzE0MDg0OiBGaXggYSBmaWxlIGRlc2NyaXB0b3IgbGVhayB3aGVuIGltcG9ydGluZyBhIG1vZHVsZSB3aXRoIGEKICAgYmFkIGVuY29kaW5nLgogCistIFVwZ3JhZGUgVW5pY29kZSBkYXRhIHRvIFVuaWNvZGUgNi4xLgorCistIElzc3VlICMxNDA0MDogUmVtb3ZlIHJhcmVseSB1c2VkIGZpbGUgbmFtZSBzdWZmaXhlcyBmb3IgQyBleHRlbnNpb25zCisgICh1bmRlciBQT1NJWCBtYWlubHkpLgorCistIElzc3VlICMxNDA1MTogQWxsb3cgYXJiaXRyYXJ5IGF0dHJpYnV0ZXMgdG8gYmUgc2V0IG9mIGNsYXNzbWV0aG9kIGFuZAorICBzdGF0aWNtZXRob2QuCisKKy0gSXNzdWUgIzEzNzAzOiBvQ0VSVC0yMDExLTAwMzogUmFuZG9taXplIGhhc2hlcyBvZiBzdHIgYW5kIGJ5dGVzIHRvIHByb3RlY3QKKyAgYWdhaW5zdCBkZW5pYWwgb2Ygc2VydmljZSBhdHRhY2tzIGR1ZSB0byBoYXNoIGNvbGxpc2lvbnMgd2l0aGluIHRoZSBkaWN0IGFuZAorICBzZXQgdHlwZXMuICBQYXRjaCBieSBEYXZpZCBNYWxjb2xtLCBiYXNlZCBvbiB3b3JrIGJ5IFZpY3RvciBTdGlubmVyLgorCiAtIElzc3VlICMxMzAyMDogRml4IGEgcmVmZXJlbmNlIGxlYWsgd2hlbiBhbGxvY2F0aW5nIGEgc3RydWN0c2VxdWVuY2Ugb2JqZWN0CiAgIGZhaWxzLiAgUGF0Y2ggYnkgU3VtYW4gU2FoYS4KIApAQCAtNDQ4LDYgKzEyMzYsOSBAQAogLSBJc3N1ZSAjMTEyMzU6IEZpeCBPdmVyZmxvd0Vycm9yIHdoZW4gdHJ5aW5nIHRvIGltcG9ydCBhIHNvdXJjZSBmaWxlIHdob3NlCiAgIG1vZGlmaWNhdGlvbiB0aW1lIGRvZXNuJ3QgZml0IGluIGEgMzItYml0IHRpbWVzdGFtcC4KIAorLSBJc3N1ZSAjMTI3MDU6IEEgU3ludGF4RXJyb3IgZXhjZXB0aW9uIGlzIG5vdyByYWlzZWQgd2hlbiBhdHRlbXB0aW5nIHRvCisgIGNvbXBpbGUgbXVsdGlwbGUgc3RhdGVtZW50cyBhcyBhIHNpbmdsZSBpbnRlcmFjdGl2ZSBzdGF0ZW1lbnQuCisKIC0gRml4IHRoZSBidWlsdGluIG1vZHVsZSBpbml0aWFsaXphdGlvbiBjb2RlIHRvIHN0b3JlIHRoZSBpbml0IGZ1bmN0aW9uIGZvcgogICBmdXR1cmUgcmVpbml0aWFsaXphdGlvbi4KIApAQCAtNDU5LDYgKzEyNTAsMzcgQEAKIC0gSXNzdWUgIzEzNjI5OiBSZW51bWJlciB0aGUgdG9rZW5zIGluIHRva2VuLmggc28gdGhhdCB0aGV5IG1hdGNoIHRoZSBpbmRleGVzCiAgIGludG8gX1B5UGFyc2VyX1Rva2VuTmFtZXMuCiAKKy0gSXNzdWUgIzEzNzUyOiBBZGQgYSBjYXNlZm9sZCgpIG1ldGhvZCB0byBzdHIuCisKKy0gSXNzdWUgIzEzNzYxOiBBZGQgYSAiZmx1c2giIGtleXdvcmQgYXJndW1lbnQgdG8gdGhlIHByaW50KCkgZnVuY3Rpb24sCisgIHVzZWQgdG8gZW5zdXJlIGZsdXNoaW5nIHRoZSBvdXRwdXQgc3RyZWFtLgorCistIElzc3VlICMxMzY0NTogcHljIGZpbGVzIG5vdyBjb250YWluIHRoZSBzaXplIG9mIHRoZSBjb3JyZXNwb25kaW5nIHNvdXJjZQorICBjb2RlLCB0byBhdm9pZCB0aW1lc3RhbXAgY29sbGlzaW9ucyAoZXNwZWNpYWxseSBvbiBmaWxlc3lzdGVtcyB3aXRoIGEgbG93CisgIHRpbWVzdGFtcCByZXNvbHV0aW9uKSB3aGVuIGNoZWNraW5nIGZvciBmcmVzaG5lc3Mgb2YgdGhlIGJ5dGVjb2RlLgorCistIFBFUCAzODAsIElzc3VlICMxMTY4MjogQWRkICJ5aWVsZCBmcm9tIDx4PiIgdG8gc3VwcG9ydCBlYXN5IGRlbGVnYXRpb24gdG8KKyAgc3ViZ2VuZXJhdG9ycyAoaW5pdGlhbCBwYXRjaCBieSBHcmVnIEV3aW5nLCBpbnRlZ3JhdGlvbiBpbnRvIDMuMyBieQorICBSZW5hdWQgQmxhbmNoLCBSeWFuIEtlbGx5LCBaYmlnbmlldyBKxJlkcnplamV3c2tpLVN6bWVrIGFuZCBOaWNrIENvZ2hsYW4pCisKKy0gSXNzdWUgIzEzNzQ4OiBSYXcgYnl0ZXMgbGl0ZXJhbHMgY2FuIG5vdyBiZSB3cml0dGVuIHdpdGggdGhlIGBgcmJgYCBwcmVmaXgKKyAgYXMgd2VsbCBhcyBgYGJyYGAuCisKKy0gSXNzdWUgIzEyNzM2OiBVc2UgZnVsbCB1bmljb2RlIGNhc2UgbWFwcGluZ3MgZm9yIHVwcGVyLCBsb3dlciwgYW5kIHRpdGxlIGNhc2UuCisKKy0gSXNzdWUgIzEyNzYwOiBBZGQgYSBjcmVhdGUgbW9kZSB0byBvcGVuKCkuIFBhdGNoIGJ5IERhdmlkIFRvd25zaGVuZC4KKworLSBJc3N1ZSAjMTM3Mzg6IFNpbXBsaWZ5IGltcGxlbWVudGF0aW9uIG9mIGJ5dGVzLmxvd2VyKCkgYW5kIGJ5dGVzLnVwcGVyKCkuCisKKy0gSXNzdWUgIzEzNTc3OiBCdWlsdC1pbiBtZXRob2RzIGFuZCBmdW5jdGlvbnMgbm93IGhhdmUgYSBfX3F1YWxuYW1lX18uCisgIFBhdGNoIGJ5IHNidC4KKworLSBJc3N1ZSAjNjY5NTogRnVsbCBnYXJiYWdlIGNvbGxlY3Rpb24gcnVucyBub3cgY2xlYXIgdGhlIGZyZWVsaXN0IG9mIHNldAorICBvYmplY3RzLiAgSW5pdGlhbCBwYXRjaCBieSBNYXR0aGlhcyBUcm9mZmFlcy4KKworLSBGaXggT1NFcnJvci5fX2luaXRfXyBhbmQgT1NFcnJvci5fX25ld19fIHNvIHRoYXQgZWFjaCBvZiB0aGVtIGNhbiBiZQorICBvdmVycmlkZW4gYW5kIHRha2UgYWRkaXRpb25hbCBhcmd1bWVudHMgKGZvbGxvd3VwIHRvIGlzc3VlICMxMjU1NSkuCisKIC0gRml4IHRoZSBmaXggZm9yIGlzc3VlICMxMjE0OTogaXQgd2FzIGluY29ycmVjdCwgYWx0aG91Z2ggaXQgaGFkIHRoZSBzaWRlCiAgIGVmZmVjdCBvZiBhcHBlYXJpbmcgdG8gcmVzb2x2ZSB0aGUgaXNzdWUuICBUaGFua3MgdG8gTWFyayBTaGFubm9uIGZvcgogICBub3RpY2luZy4KQEAgLTQ2OSwyNiArMTI5MSw2OCBAQAogLSBJc3N1ZSAjMTExNDc6IEZpeCBhbiB1bnVzZWQgYXJndW1lbnQgaW4gX1B5X0FOTk9UQVRFX01FTU9SWV9PUkRFUi4gIChGaXgKICAgZ2l2ZW4gYnkgQ2FtcGJlbGwgQmFydG9uKS4KIAorLSBJc3N1ZSAjMTM1MDM6IFVzZSBhIG1vcmUgZWZmaWNpZW50IHJlZHVjdGlvbiBmb3JtYXQgZm9yIGJ5dGVhcnJheXMgd2l0aAorICBwaWNrbGUgcHJvdG9jb2wgPj0gMy4gIFRoZSBvbGQgcmVkdWN0aW9uIGZvcm1hdCBpcyBrZXB0IHdpdGggb2xkZXIgcHJvdG9jb2xzCisgIGluIG9yZGVyIHRvIGFsbG93IHVucGlja2xpbmcgdW5kZXIgUHl0aG9uIDIuICBQYXRjaCBieSBJcm1lbiBkZSBKb25nLgorCiAtIElzc3VlICM3MTExOiBQeXRob24gY2FuIG5vdyBiZSBydW4gd2l0aG91dCBhIHN0ZGluLCBzdGRvdXQgb3Igc3RkZXJyCiAgIHN0cmVhbS4gIEl0IHdhcyBhbHJlYWR5IHRoZSBjYXNlIHdpdGggUHl0aG9uIDIuICBIb3dldmVyLCB0aGUgY29ycmVzcG9uZGluZwogICBzeXMgbW9kdWxlIGVudHJpZXMgYXJlIG5vdyBzZXQgdG8gTm9uZSAoaW5zdGVhZCBvZiBhbiB1bnVzYWJsZSBmaWxlIG9iamVjdCkuCiAKKy0gSXNzdWUgIzExODQ5OiBFbnN1cmUgdGhhdCBmcmVlKClkIG1lbW9yeSBhcmVuYXMgYXJlIHJlYWxseSByZWxlYXNlZAorICBvbiBQT1NJWCBzeXN0ZW1zIHN1cHBvcnRpbmcgYW5vbnltb3VzIG1lbW9yeSBtYXBwaW5ncy4gIFBhdGNoIGJ5CisgIENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKworLSBJc3N1ZSAjMTM0NTI6IFB5VW5pY29kZV9FbmNvZGVEZWNpbWFsKCkgZG9lc24ndCBzdXBwb3J0IGVycm9yIGhhbmRsZXJzCisgIGRpZmZlcmVudCB0aGFuICJzdHJpY3QiIGFueW1vcmUuIFRoZSBjYWxsZXIgd2FzIHVuYWJsZSB0byBjb21wdXRlIHRoZQorICBzaXplIG9mIHRoZSBvdXRwdXQgYnVmZmVyOiBpdCBkZXBlbmRzIG9uIHRoZSBlcnJvciBoYW5kbGVyLgorCistIFBFUCAzMTU1IC8gaXNzdWUgIzEzNDQ4OiBRdWFsaWZpZWQgbmFtZSBmb3IgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLgorCiAtIElzc3VlICMxMzQzNjogRml4IGEgYm9ndXMgZXJyb3IgbWVzc2FnZSB3aGVuIGFuIEFTVCBvYmplY3Qgd2FzIHBhc3NlZAogICBhbiBpbnZhbGlkIGludGVnZXIgdmFsdWUuCiAKKy0gSXNzdWUgIzEzNDExOiBtZW1vcnl2aWV3IG9iamVjdHMgYXJlIG5vdyBoYXNoYWJsZSB3aGVuIHRoZSB1bmRlcmx5aW5nCisgIG9iamVjdCBpcyBoYXNoYWJsZS4KKwogLSBJc3N1ZSAjMTMzMzg6IEhhbmRsZSBhbGwgZW51bWVyYXRpb25zIGluIF9QeV9BTk5PVEFURV9NRU1PUllfT1JERVIKICAgdG8gYWxsb3cgY29tcGlsaW5nIGV4dGVuc2lvbiBtb2R1bGVzIHdpdGggLVdzd2l0Y2gtZW51bSBvbiBnY2MuCiAgIEluaXRpYWwgcGF0Y2ggYnkgRmxvcmlzIEJydXlub29naGUuCiAKKy0gSXNzdWUgIzEwMjI3OiBBZGQgYW4gYWxsb2NhdGlvbiBjYWNoZSBmb3IgYSBzaW5nbGUgc2xpY2Ugb2JqZWN0LiAgUGF0Y2ggYnkKKyAgU3RlZmFuIEJlaG5lbC4KKworLSBJc3N1ZSAjMTMzOTM6IEJ1ZmZlcmVkUmVhZGVyLnJlYWQxKCkgbm93IGFza3MgdGhlIGZ1bGwgcmVxdWVzdGVkIHNpemUgdG8KKyAgdGhlIHJhdyBzdHJlYW0gaW5zdGVhZCBvZiBsaW1pdGluZyBpdHNlbGYgdG8gdGhlIGJ1ZmZlciBzaXplLgorCistIElzc3VlICMxMzM5MjogV3JpdGluZyBhIHB5YyBmaWxlIHNob3VsZCBub3cgYmUgYXRvbWljIHVuZGVyIFdpbmRvd3MgYXMgd2VsbC4KKwogLSBJc3N1ZSAjMTMzMzM6IFRoZSBVVEYtNyBkZWNvZGVyIG5vdyBhY2NlcHRzIGxvbmUgc3Vycm9nYXRlcyAodGhlIGVuY29kZXIKICAgYWxyZWFkeSBhY2NlcHRzIHRoZW0pLgogCistIElzc3VlICMxMzM4OTogRnVsbCBnYXJiYWdlIGNvbGxlY3Rpb24gcGFzc2VzIG5vdyBjbGVhciB0aGUgZnJlZWxpc3RzIGZvcgorICBsaXN0IGFuZCBkaWN0IG9iamVjdHMuICBUaGV5IGFscmVhZHkgY2xlYXJlZCBvdGhlciBmcmVlbGlzdHMgaW4gdGhlCisgIGludGVycHJldGVyLgorCistIElzc3VlICMxMzMyNzogUmVtb3ZlIHRoZSBuZWVkIGZvciBhbiBleHBsaWNpdCBOb25lIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQKKyAgdG8gb3MudXRpbWUsIG9zLmx1dGltZXMsIG9zLmZ1dGltZXMsIG9zLmZ1dGltZW5zLCBvcy5mdXRpbWVzYXQsIGluCisgIG9yZGVyIHRvIHVwZGF0ZSB0byB0aGUgY3VycmVudCB0aW1lLiBBbHNvIGFkZGVkIGtleXdvcmQgYXJndW1lbnQKKyAgaGFuZGxpbmcgdG8gb3MudXRpbWVuc2F0IGluIG9yZGVyIHRvIHJlbW92ZSB0aGUgbmVlZCBmb3IgZXhwbGljaXQgTm9uZS4KKworLSBJc3N1ZSAjMTMzNTA6IFNpbXBsaWZ5IHNvbWUgQyBjb2RlIGJ5IHJlcGxhY2luZyBtb3N0IHVzYWdlcyBvZgorICBQeVVuaWNvZGVfRm9ybWF0IGJ5IFB5VW5pY29kZV9Gcm9tRm9ybWF0LgorCiAtIElzc3VlICMxMzM0MjogaW5wdXQoKSB1c2VkIHRvIGlnbm9yZSBzeXMuc3RkaW4ncyBhbmQgc3lzLnN0ZG91dCdzIHVuaWNvZGUKICAgZXJyb3IgaGFuZGxlciBpbiBpbnRlcmFjdGl2ZSBtb2RlICh3aGVuIGNhbGxpbmcgaW50byBQeU9TX1JlYWRsaW5lKCkpLgogCistIElzc3VlICM5ODk2OiBBZGQgc3RhcnQsIHN0b3AsIGFuZCBzdGVwIGF0dHJpYnV0ZXMgdG8gcmFuZ2Ugb2JqZWN0cy4KKwogLSBJc3N1ZSAjMTMzNDM6IEZpeCBhIFN5c3RlbUVycm9yIHdoZW4gYSBsYW1iZGEgZXhwcmVzc2lvbiB1c2VzIGEgZ2xvYmFsCi0gIHZhcmlhYmxlIGluIHRoZSBkZWZhdWx0IHZhbHVlIG9mIGEga2V5d29yZC1vbmx5IGFyZ3VtZW50OgotICAobGFtYmRhICosIGFyZz1HTE9CQUxfTkFNRTogTm9uZSkKKyAgdmFyaWFibGUgaW4gdGhlIGRlZmF1bHQgdmFsdWUgb2YgYSBrZXl3b3JkLW9ubHkgYXJndW1lbnQ6IGBgbGFtYmRhICosCisgIGFyZz1HTE9CQUxfTkFNRTogTm9uZWBgCisKKy0gSXNzdWUgIzEyNzk3OiBBZGRlZCBjdXN0b20gb3BlbmVyIHBhcmFtZXRlciB0byBidWlsdGluIG9wZW4oKSBhbmQKKyAgRmlsZUlPLm9wZW4oKS4KIAogLSBJc3N1ZSAjMTA1MTk6IEF2b2lkIHVubmVjZXNzYXJ5IHJlY3Vyc2l2ZSBmdW5jdGlvbiBjYWxscyBpbgogICBzZXRvYmplY3QuYy4KQEAgLTQ5OCwyMSArMTM2Miw0MyBAQAogLSBJc3N1ZSAjMTMwMTg6IEZpeCByZWZlcmVuY2UgbGVha3MgaW4gZXJyb3IgcGF0aHMgaW4gZGljdG9iamVjdC5jLgogICBQYXRjaCBieSBTdW1hbiBTYWhhLgogCistIElzc3VlICMxMzIwMTogRGVmaW5lICc9PScgYW5kICchPScgdG8gY29tcGFyZSByYW5nZSBvYmplY3RzIGJhc2VkIG9uCisgIHRoZSBzZXF1ZW5jZSBvZiB2YWx1ZXMgdGhleSBkZWZpbmUgKGluc3RlYWQgb2YgY29tcGFyaW5nIGJhc2VkIG9uCisgIG9iamVjdCBpZGVudGl0eSkuCisKIC0gSXNzdWUgIzEyOTQyMzI6IEluIGEgZmV3IGNhc2VzIGludm9sdmluZyBtZXRhY2xhc3MgaW5oZXJpdGFuY2UsIHRoZQogICBpbnRlcnByZXRlciB3b3VsZCBzb21ldGltZXMgaW52b2tlIHRoZSB3cm9uZyBtZXRhY2xhc3Mgd2hlbiBidWlsZGluZyBhIG5ldwogICBjbGFzcyBvYmplY3QuIFRoZXNlIGNhc2VzIG5vdyBiZWhhdmUgY29ycmVjdGx5LiBQYXRjaCBieSBEYW5pZWwgVXJiYW4uCiAKKy0gSXNzdWUgIzEyNzUzOiBBZGQgc3VwcG9ydCBmb3IgVW5pY29kZSBuYW1lIGFsaWFzZXMgYW5kIG5hbWVkIHNlcXVlbmNlcy4KKyAgQm90aCBgYHVuaWNvZGVkYXRhLmxvb2t1cCgpYGAgYW5kICdcTnsuLi59JyBub3cgcmVzb2x2ZSBhbGlhc2VzLAorICBhbmQgYGB1bmljb2RlZGF0YS5sb29rdXAoKWBgIHJlc29sdmVzIG5hbWVkIHNlcXVlbmNlcyB0b28uCisKKy0gSXNzdWUgIzEyMTcwOiBUaGUgY291bnQoKSwgZmluZCgpLCByZmluZCgpLCBpbmRleCgpIGFuZCByaW5kZXgoKSBtZXRob2RzCisgIG9mIGJ5dGVzIGFuZCBieXRlYXJyYXkgb2JqZWN0cyBub3cgYWNjZXB0IGFuIGludGVnZXIgYmV0d2VlbiAwIGFuZCAyNTUKKyAgYXMgdGhlaXIgZmlyc3QgYXJndW1lbnQuICBQYXRjaCBieSBQZXRyaSBMZWh0aW5lbi4KKwogLSBJc3N1ZSAjMTI2MDQ6IFZUUkFDRSBtYWNybyBleHBhbmRlZCB0byBuby1vcCBpbiBfc3JlLmMgdG8gYXZvaWQgY29tcGlsZXIKICAgd2FybmluZ3MuIFBhdGNoIGJ5IEpvc2ggVHJpcGxldHQgYW5kIFBldHJpIExlaHRpbmVuLgogCistIElzc3VlICMxMjI4MTogUmV3cml0ZSB0aGUgTUJDUyBjb2RlYyB0byBoYW5kbGUgY29ycmVjdGx5IHJlcGxhY2UgYW5kIGlnbm9yZQorICBlcnJvciBoYW5kbGVycyBvbiBhbGwgV2luZG93cyB2ZXJzaW9ucy4gVGhlIE1CQ1MgY29kZWMgaXMgbm93IHN1cHBvcnRpbmcgYWxsCisgIGVycm9yIGhhbmRsZXJzLCBpbnN0ZWFkIG9mIG9ubHkgcmVwbGFjZSB0byBlbmNvZGUgYW5kIGlnbm9yZSB0byBkZWNvZGUuCisKIC0gSXNzdWUgIzEzMTg4OiBXaGVuIGNhbGxlZCB3aXRob3V0IGFuIGV4cGxpY2l0IHRyYWNlYmFjayBhcmd1bWVudCwKICAgZ2VuZXJhdG9yLnRocm93KCkgbm93IGdldHMgdGhlIHRyYWNlYmFjayBmcm9tIHRoZSBwYXNzZWQgZXhjZXB0aW9uJ3MKICAgYGBfX3RyYWNlYmFja19fYGAgYXR0cmlidXRlLiAgUGF0Y2ggYnkgUGV0cmkgTGVodGluZW4uCiAKKy0gSXNzdWUgIzEzMTQ2OiBXcml0aW5nIGEgcHljIGZpbGUgaXMgbm93IGF0b21pYyB1bmRlciBQT1NJWC4KKwogLSBJc3N1ZSAjNzgzMzogRXh0ZW5zaW9uIG1vZHVsZXMgYnVpbHQgdXNpbmcgZGlzdHV0aWxzIG9uIFdpbmRvd3Mgd2lsbCBubwogICBsb25nZXIgaW5jbHVkZSBhICJtYW5pZmVzdCIgdG8gcHJldmVudCB0aGVtIGZhaWxpbmcgYXQgaW1wb3J0IHRpbWUgaW4gc29tZQogICBlbWJlZGRlZCBzaXR1YXRpb25zLgogCistIFBFUCAzMTUxIC8gaXNzdWUgIzEyNTU1OiByZXdvcmtpbmcgdGhlIE9TIGFuZCBJTyBleGNlcHRpb24gaGllcmFyY2h5LgorCistIEFkZCBpbnRlcm5hbCBBUEkgZm9yIHN0YXRpYyBzdHJpbmdzIChfUHlfaWRlbnRpZmllciBldCBhbC4pLgorCiAtIElzc3VlICMxMzA2MzogdGhlIFdpbmRvd3MgZXJyb3IgRVJST1JfTk9fREFUQSAobnVtYmVyZWQgMjMyIGFuZCBkZXNjcmliZWQKICAgYXMgIlRoZSBwaXBlIGlzIGJlaW5nIGNsb3NlZCIpIGlzIG5vdyBtYXBwZWQgdG8gUE9TSVggZXJybm8gRVBJUEUKICAgKHByZXZpb3VzbHkgRUlOVkFMKS4KQEAgLTUyMCw2ICsxNDA2LDE2IEBACiAtIElzc3VlICMxMjkxMTogRml4IG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIGNhbGN1bGF0aW5nIHRoZSByZXByKCkgb2YgaHVnZQogICB0dXBsZXMgb3IgbGlzdHMuCiAKKy0gUEVQIDM5MzogZmxleGlibGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uLiBUaGFua3MgdG8gVG9yc3RlbiBCZWNrZXIgZm9yIHRoZQorICBpbml0aWFsIGltcGxlbWVudGF0aW9uLCBhbmQgVmljdG9yIFN0aW5uZXIgZm9yIHZhcmlvdXMgYnVnIGZpeGVzLgorCistIElzc3VlICMxNDA4MTogVGhlICdzZXAnIGFuZCAnbWF4c3BsaXQnIHBhcmFtZXRlciB0byBzdHIuc3BsaXQsIGJ5dGVzLnNwbGl0LAorICBhbmQgYnl0ZWFycmF5LnNwbGl0IG1heSBub3cgYmUgcGFzc2VkIGFzIGtleXdvcmQgYXJndW1lbnRzLgorCistIElzc3VlICMxMzAxMjogVGhlICdrZWVwZW5kcycgcGFyYW1ldGVyIHRvIHN0ci5zcGxpdGxpbmVzIG1heSBub3cgYmUgcGFzc2VkCisgIGFzIGEga2V5d29yZCBhcmd1bWVudDogICJteV9zdHJpbmcuc3BsaXRsaW5lcyhrZWVwZW5kcz1UcnVlKSIuICBUaGUgc2FtZQorICBjaGFuZ2UgYWxzbyBhcHBsaWVzIHRvIGJ5dGVzLnNwbGl0bGluZXMgYW5kIGJ5dGVhcnJheS5zcGxpdGxpbmVzLgorCiAtIElzc3VlICM3NzMyOiBEb24ndCBvcGVuIGEgZGlyZWN0b3J5IGFzIGEgZmlsZSBhbnltb3JlIHdoaWxlIGltcG9ydGluZyBhCiAgIG1vZHVsZS4gSWdub3JlIHRoZSBkaXJlY290cnkgaWYgaXRzIG5hbWUgbWF0Y2hzIHRoZSBtb2R1bGUgbmFtZSAoZS5nLgogICAiX19pbml0X18ucHkiKSBhbmQgcmFpc2UgYSBJbXBvcnRFcnJvciBpbnN0ZWFkLgpAQCAtNTMxLDYgKzE0MjcsOSBAQAogICBsaXN0X3JlcGVhdCAobGlzdG9iamVjdC5jKSBhbmQgaXNsaWNlX25leHQgKGl0ZXJ0b29sc21vZHVsZS5jKS4gIFRoZXNlIGJ1Z3MKICAgY2F1c2VkIHRlc3QgZmFpbHVyZXMgd2l0aCByZWNlbnQgdmVyc2lvbnMgb2YgQ2xhbmcuCiAKKy0gSXNzdWUgIzEyOTA0OiBvcy51dGltZSwgb3MuZnV0aW1lcywgb3MubHV0aW1lcywgYW5kIG9zLmZ1dGltZXNhdCBub3cgd3JpdGUKKyAgYXRpbWUgYW5kIG10aW1lIHdpdGggbmFub3NlY29uZCBwcmVjaXNpb24gb24gbW9kZXJuIFBPU0lYIHBsYXRmb3Jtcy4KKwogLSBJc3N1ZSAjMTI4MDI6IHRoZSBXaW5kb3dzIGVycm9yIEVSUk9SX0RJUkVDVE9SWSAobnVtYmVyZWQgMjY3KSBpcyBub3cKICAgbWFwcGVkIHRvIFBPU0lYIGVycm5vIEVOT1RESVIgKHByZXZpb3VzbHkgRUlOVkFMKS4KIApAQCAtNTQwLDM3ICsxNDM5LDMyOSBAQAogLSBJc3N1ZSAjMTI3OTE6IEJyZWFrIHJlZmVyZW5jZSBjeWNsZXMgZWFybHkgd2hlbiBhIGdlbmVyYXRvciBleGl0cyB3aXRoCiAgIGFuIGV4Y2VwdGlvbi4KIAorLSBJc3N1ZSAjMTI3NzM6IE1ha2UgX19kb2NfXyBtdXRhYmxlIG9uIHVzZXItZGVmaW5lZCBjbGFzc2VzLgorCistIElzc3VlICMxMjc2NjogUmFpc2UgYSBWYWx1ZUVycm9yIHdoZW4gY3JlYXRpbmcgYSBjbGFzcyB3aXRoIGEgY2xhc3MgdmFyaWFibGUKKyAgdGhhdCBjb25mbGljdHMgd2l0aCBhIG5hbWUgaW4gX19zbG90c19fLgorCiAtIElzc3VlICMxMjI2NjogRml4IHN0ci5jYXBpdGFsaXplKCkgdG8gY29ycmVjdGx5IHVwcGVyY2FzZS9sb3dlcmNhc2UKICAgdGl0bGVjYXNlZCBhbmQgY2FzZWQgbm9uLWxldHRlciBjaGFyYWN0ZXJzLgogCistIElzc3VlICMxMjczMjogSW4gbmFycm93IHVuaWNvZGUgYnVpbGRzLCBhbGxvdyBVbmljb2RlIGlkZW50aWZpZXJzIHdoaWNoIGZhbGwKKyAgb3V0c2lkZSB0aGUgQk1QLgorCistIElzc3VlICMxMjU3NTogVmFsaWRhdGUgdXNlci1nZW5lcmF0ZWQgQVNUIGJlZm9yZSBpdCBpcyBjb21waWxlZC4KKworLSBNYWtlIHR5cGUoTm9uZSksIHR5cGUoRWxsaXBzaXMpLCBhbmQgdHlwZShOb3RJbXBsZW1lbnRlZCkgY2FsbGFibGUuIFRoZXkKKyAgcmV0dXJuIHRoZSByZXNwZWN0aXZlIHNpbmdsZXRvbiBpbnN0YW5jZXMuCisKKy0gRm9yYmlkIHN1bW1pbmcgYnl0ZXMgd2l0aCBzdW0oKS4KKworLSBWZXJpZnkgdGhlIHR5cGVzIG9mIEFTVCBzdHJpbmdzIGFuZCBpZGVudGlmaWVycyBwcm92aWRlZCBieSB0aGUgdXNlciBiZWZvcmUKKyAgY29tcGlsaW5nIHRoZW0uCisKKy0gSXNzdWUgIzEyNjQ3OiBUaGUgTm9uZSBvYmplY3Qgbm93IGhhcyBhIF9fYm9vbF9fKCkgbWV0aG9kIHRoYXQgcmV0dXJucyBGYWxzZS4KKyAgRm9ybWVybHksIGJvb2woTm9uZSkgcmV0dXJuZWQgRmFsc2Ugb25seSBiZWNhdXNlIG9mIHNwZWNpYWwgY2FzZSBsb2dpYworICBpbiBQeU9iamVjdF9Jc1RydWUoKS4KKworLSBJc3N1ZSAjMTI1Nzk6IHN0ci5mb3JtYXRfbWFwKCkgbm93IHJhaXNlcyBhIFZhbHVlRXJyb3IgaWYgdXNlZCBvbiBhCisgIGZvcm1hdCBzdHJpbmcgdGhhdCBjb250YWlucyBwb3NpdGlvbmFsIGZpZWxkcy4gSW5pdGlhbCBwYXRjaCBieQorICBKdWxpYW4gQmVybWFuLgorCistIElzc3VlICMxMDI3MTogQWxsb3cgd2FybmluZ3Muc2hvd3dhcm5pbmcoKSBiZSBhbnkgY2FsbGFibGUuCisKKy0gSXNzdWUgIzExNjI3OiBGaXggc2VnZmF1bHQgd2hlbiBfX25ld19fIG9uIGEgZXhjZXB0aW9uIHJldHVybnMgYQorICBub24tZXhjZXB0aW9uIGNsYXNzLgorCistIElzc3VlICMxMjE0OTogVXBkYXRlIHRoZSBtZXRob2QgY2FjaGUgYWZ0ZXIgYSB0eXBlJ3MgZGljdGlvbmFyeSBnZXRzCisgIGNsZWFyZWQgYnkgdGhlIGdhcmJhZ2UgY29sbGVjdG9yLiAgVGhpcyBmaXhlcyBhIHNlZ2ZhdWx0IHdoZW4gYW4gaW5zdGFuY2UKKyAgYW5kIGl0cyB0eXBlIGdldCBjYXVnaHQgaW4gYSByZWZlcmVuY2UgY3ljbGUsIGFuZCB0aGUgaW5zdGFuY2UncworICBkZWFsbG9jYXRvciBjYWxscyBvbmUgb2YgdGhlIG1ldGhvZHMgb24gdGhlIHR5cGUgKGUuZy4gd2hlbiBzdWJjbGFzc2luZworICBJT0Jhc2UpLiAgRGlhZ25vc2lzIGFuZCBwYXRjaCBieSBEYXZpZGUgUml6em8uCisKKy0gSXNzdWUgIzk2MTEsICM5MDE1OiBGaWxlSU8ucmVhZCgpIGNsYW1wcyB0aGUgbGVuZ3RoIHRvIElOVF9NQVggb24gV2luZG93cy4KKworLSBJc3N1ZSAjOTY0MjogVW5pZm9ybWl6ZSB0aGUgdGVzdHMgb24gdGhlIGF2YWlsYWJpbGl0eSBvZiB0aGUgbWJjcyBjb2RlYywgYWRkCisgIGEgbmV3IEhBVkVfTUJDUyBkZWZpbmUuCisKKy0gSXNzdWUgIzk2NDI6IEZpeCBmaWxlc3lzdGVtIGVuY29kaW5nIGluaXRpYWxpemF0aW9uOiB1c2UgdGhlIEFOU0kgY29kZSBwYWdlCisgIG9uIFdpbmRvd3MgaWYgdGhlIG1iY3MgY29kZWMgaXMgbm90IGF2YWlsYWJsZSwgYW5kIGZhaWwgd2l0aCBhIGZhdGFsIGVycm9yIGlmCisgIHdlIGNhbm5vdCBnZXQgdGhlIGxvY2FsZSBlbmNvZGluZyAoaWYgbmxfbGFuZ2luZm8oQ09ERVNFVCkgaXMgbm90IGF2YWlsYWJsZSkKKyAgaW5zdGVhZCBvZiB1c2luZyBVVEYtOC4KKworLSBXaGVuIGEgZ2VuZXJhdG9yIHlpZWxkcywgZG8gbm90IHJldGFpbiB0aGUgY2FsbGVyJ3MgZXhjZXB0aW9uIHN0YXRlIG9uIHRoZQorICBnZW5lcmF0b3IuCisKKy0gSXNzdWUgIzEyNDc1OiBQcmV2ZW50IGdlbmVyYXRvcnMgZnJvbSBsZWFraW5nIHRoZWlyIGV4Y2VwdGlvbiBzdGF0ZSBpbnRvIHRoZQorICBjYWxsZXIncyBmcmFtZSBhcyB0aGV5IHJldHVybiBmb3IgdGhlIGxhc3QgdGltZS4KKworLSBJc3N1ZSAjMTIyOTE6IFlvdSBjYW4gbm93IGxvYWQgbXVsdGlwbGUgbWFyc2hhbGxlZCBvYmplY3RzIGZyb20gYSBzdHJlYW0sCisgIHdpdGggb3RoZXIgZGF0YSBpbnRlcmxlYXZlZCBiZXR3ZWVuIG1hcnNoYWxsZWQgb2JqZWN0cy4KKworLSBJc3N1ZSAjMTIzNTY6IFdoZW4gcmVxdWlyZWQgcG9zaXRpb25hbCBvciBrZXl3b3JkLW9ubHkgYXJndW1lbnRzIGFyZSBub3QKKyAgZ2l2ZW4sIHByb2R1Y2UgYSBpbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlIHdoaWNoIGluY2x1ZGVzIHRoZSBuYW1lKHMpIG9mIHRoZQorICBtaXNzaW5nIGFyZ3VtZW50cy4KKworLSBJc3N1ZSAjMTIzNzA6IEZpeCBzdXBlciB3aXRoIG5vIGFyZ3VtZW50cyB3aGVuIF9fY2xhc3NfXyBpcyBvdmVycmlkZW4gaW4gdGhlCisgIGNsYXNzIGJvZHkuCisKKy0gSXNzdWUgIzEyMDg0OiBvcy5zdGF0IG9uIFdpbmRvd3Mgbm93IHdvcmtzIHByb3Blcmx5IHdpdGggcmVsYXRpdmUgc3ltYm9saWMKKyAgbGlua3Mgd2hlbiBjYWxsZWQgZnJvbSBhbnkgZGlyZWN0b3J5LgorCistIExvb3NlbiB0eXBlIHJlc3RyaWN0aW9ucyBvbiB0aGUgX19kaXJfXyBtZXRob2QuIF9fZGlyX18gY2FuIG5vdyByZXR1cm4gYW55CisgIHNlcXVlbmNlLCB3aGljaCB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIGxpc3QgYW5kIHNvcnRlZCBieSBkaXIoKS4KKworLSBJc3N1ZSAjMTIyNjU6IE1ha2UgZXJyb3IgbWVzc2FnZXMgcHJvZHVjZWQgYnkgcGFzc2luZyBhbiBpbnZhbGlkIHNldCBvZgorICBhcmd1bWVudHMgdG8gYSBmdW5jdGlvbiBtb3JlIGluZm9ybWF0aXZlLgorCistIElzc3VlICMxMjIyNTogU3RpbGwgYWxsb3cgUHl0aG9uIHRvIGJ1aWxkIGlmIFB5dGhvbiBpcyBub3QgaW4gaXRzIGhnIHJlcG8gb3IKKyAgbWVyY3VyaWFsIGlzIG5vdCBpbnN0YWxsZWQuCisKKy0gSXNzdWUgIzExOTU6IG15X2ZnZXRzKCkgbm93IGFsd2F5cyBjbGVhcnMgZXJyb3JzIGJlZm9yZSBjYWxsaW5nIGZnZXRzKCkuIEZpeAorICB0aGUgZm9sbG93aW5nIGNhc2U6IHN5cy5zdGRpbi5yZWFkKCkgc3RvcHBlZCB3aXRoIENUUkwrZCAoZW5kIG9mIGZpbGUpLAorICByYXdfaW5wdXQoKSBpbnRlcnJ1cHRlZCBieSBDVFJMK2MuCisKKy0gSXNzdWUgIzEyMjE2OiBBbGxvdyB1bmV4cGVjdGVkIEVPRiBlcnJvcnMgdG8gaGFwcGVuIG9uIGFueSBsaW5lIG9mIHRoZSBmaWxlLgorCistIElzc3VlICMxMjE5OTogVGhlIFRyeUV4Y2VwdCBhbmQgVHJ5RmluYWxseSBhbmQgQVNUIG5vZGVzIGhhdmUgYmVlbiB1bmlmaWVkCisgIGludG8gYSBUcnkgbm9kZS4KKworLSBJc3N1ZSAjOTY3MDogSW5jcmVhc2UgdGhlIGRlZmF1bHQgc3RhY2sgc2l6ZSBmb3Igc2Vjb25kYXJ5IHRocmVhZHMgb24KKyAgTWFjIE9TIFggYW5kIEZyZWVCU0QgdG8gcmVkdWNlIHRoZSBjaGFuY2VzIG9mIGEgY3Jhc2ggaW5zdGVhZCBvZiBhCisgICJtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCIgUnVudGltZUVycm9yIGV4Y2VwdGlvbi4KKyAgKHBhdGNoIGJ5IFJvbmFsZCBPdXNzb3JlbikKKworLSBJc3N1ZSAjMTIxMDY6IFRoZSB1c2Ugb2YgdGhlIG11bHRpcGxlLXdpdGggc2hvcnRoYW5kIHN5bnRheCBpcyBub3cgcmVmbGVjdGVkCisgIGluIHRoZSBBU1QuCisKKy0gSXNzdWUgIzEyMTkwOiBUcnkgdG8gdXNlIHRoZSBzYW1lIGZpbGVuYW1lIG9iamVjdCB3aGVuIGNvbXBpbGluZyB1bm1hcnNoYWxsaW5nCisgIGEgY29kZSBvYmplY3RzIGluIHRoZSBzYW1lIGZpbGUuCisKKy0gSXNzdWUgIzEyMTY2OiBNb3ZlIGltcGxlbWVudGF0aW9ucyBvZiBkaXIoKSBzcGVjaWFsaXplZCBmb3IgdmFyaW91cyB0eXBlcyBpbnRvCisgIHRoZSBfX2Rpcl9fKCkgbWV0aG9kcyBvZiB0aG9zZSB0eXBlcy4KKworLSBJc3N1ZSAjNTcxNTogSW4gc29ja2V0c2VydmVyLCBjbG9zZSB0aGUgc2VydmVyIHNvY2tldCBpbiB0aGUgY2hpbGQgcHJvY2Vzcy4KKworLSBDb3JyZWN0IGxvb2t1cCBvZiBfX2Rpcl9fIG9uIG9iamVjdHMuIEFtb25nIG90aGVyIHRoaW5ncywgdGhpcyBjYXVzZXMgZXJyb3JzCisgIGJlc2lkZXMgQXR0cmlidXRlRXJyb3IgZm91bmQgb24gbG9va3VwIHRvIGJlIHByb3BhZ2F0ZWQuCisKKy0gSXNzdWUgIzEyMDYwOiBVc2Ugc2lnX2F0b21pY190IHR5cGUgYW5kIHZvbGF0aWxlIGtleXdvcmQgaW4gdGhlIHNpZ25hbAorICBtb2R1bGUuIFBhdGNoIHdyaXR0ZW4gYnkgQ2hhcmxlcy1GcmFuw6dvaXMgTmF0YWxpLgorCistIElzc3VlICMxNzQ2NjU2OiBBZGRlZCB0aGUgaWZfbmFtZWluZGV4LCBpZl9pbmRleHRvbmFtZSwgaWZfbmFtZXRvaW5kZXgKKyAgbWV0aG9kcyB0byB0aGUgc29ja2V0IG1vZHVsZS4KKworLSBJc3N1ZSAjMTIwNDQ6IEZpeGVkIHN1YnByb2Nlc3MuUG9wZW4gd2hlbiB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyIHRvCisgIHdhaXQgZm9yIHRoZSBwcm9jZXNzIHRvIGVuZCB3aGVuIGV4aXRpbmcgdGhlIGNvbnRleHQgdG8gYXZvaWQgdW5pbnRlbnRpb25hbGx5CisgIGxlYXZpbmcgem9tYmllIHByb2Nlc3NlcyBhcm91bmQuCisKKy0gSXNzdWUgIzExOTU6IEZpeCBpbnB1dCgpIGlmIGl0IGlzIGludGVycnVwdGVkIGJ5IENUUkwrZCBhbmQgdGhlbiBDVFJMK2MsCisgIGNsZWFyIHRoZSBlbmQtb2YtZmlsZSBpbmRpY2F0b3IgYWZ0ZXIgQ1RSTCtkLgorCistIElzc3VlICMxODU2OiBBdm9pZCBjcmFzaGVzIGFuZCBsb2NrdXBzIHdoZW4gZGFlbW9uIHRocmVhZHMgcnVuIHdoaWxlIHRoZQorICBpbnRlcnByZXRlciBpcyBzaHV0dGluZyBkb3duOyBpbnN0ZWFkLCB0aGVzZSB0aHJlYWRzIGFyZSBub3cga2lsbGVkIHdoZW4KKyAgdGhleSB0cnkgdG8gdGFrZSB0aGUgR0lMLgorCistIElzc3VlICM5NzU2OiBXaGVuIGNhbGxpbmcgYSBtZXRob2QgZGVzY3JpcHRvciBvciBhIHNsb3Qgd3JhcHBlciBkZXNjcmlwdG9yLAorICB0aGUgY2hlY2sgb2YgdGhlIG9iamVjdCB0eXBlIGRvZXNuJ3QgcmVhZCB0aGUgX19jbGFzc19fIGF0dHJpYnV0ZSBhbnltb3JlLgorICBGaXggYSBjcmFzaCBpZiBhIGNsYXNzIG92ZXJyaWRlIGl0cyBfX2NsYXNzX18gYXR0cmlidXRlIChlLmcuIGEgcHJveHkgb2YgdGhlCisgIHN0ciB0eXBlKS4gUGF0Y2ggd3JpdHRlbiBieSBBbmRyZWFzIFN0w7xocmsuCisKKy0gSXNzdWUgIzEwNTE3OiBBZnRlciBmb3JrKCksIHJlaW5pdGlhbGl6ZSB0aGUgVExTIHVzZWQgYnkgdGhlIFB5R0lMU3RhdGVfKgorICBBUElzLCB0byBhdm9pZCBhIGNyYXNoIHdpdGggdGhlIHB0aHJlYWQgaW1wbGVtZW50YXRpb24gaW4gUkhFTCA1LiAgUGF0Y2gKKyAgYnkgQ2hhcmxlcy1GcmFuw6dvaXMgTmF0YWxpLgorCistIElzc3VlICMxMDkxNDogSW5pdGlhbGl6ZSBjb3JyZWN0bHkgdGhlIGZpbGVzeXN0ZW0gY29kZWMgd2hlbiBjcmVhdGluZyBhIG5ldworICBzdWJpbnRlcnByZXRlciB0byBmaXggYSBib290c3RyYXAgaXNzdWUgd2l0aCBjb2RlY3MgaW1wbGVtZW50ZWQgaW4gUHl0aG9uLCBhcworICB0aGUgSVNPLTg4NTktMTUgY29kZWMuCisKKy0gSXNzdWUgIzExOTE4OiBPUy8yIGFuZCBWTVMgYXJlIG5vIG1vcmUgc3VwcG9ydGVkIGJlY2F1c2Ugb2YgdGhlIGxhY2sgb2YKKyAgbWFpbnRhaW5lci4KKworLSBJc3N1ZSAjNjc4MDogZml4IHN0YXJ0cy9lbmRzd2l0aCBlcnJvciBtZXNzYWdlIHRvIG1lbnRpb24gdGhhdCB0dXBsZXMgYXJlCisgIGFjY2VwdGVkIHRvby4KKworLSBJc3N1ZSAjNTA1NzogZml4IGEgYnVnIGluIHRoZSBwZWVwaG9sZXIgdGhhdCBsZWQgdG8gbm9uLXBvcnRhYmxlIHB5YyBmaWxlcworICBiZXR3ZWVuIG5hcnJvdyBhbmQgd2lkZSBidWlsZHMgd2hpbGUgb3B0aW1pemluZyBCSU5BUllfU1VCU0NSIG9uIG5vbi1CTVAKKyAgY2hhcnMgKGUuZy4gIlxVMDAwMTIzNDUiWzBdKS4KKworLSBJc3N1ZSAjMTE4NDU6IEZpeCB0eXBvIGluIHJhbmdlb2JqZWN0LmMgdGhhdCBjYXVzZWQgYSBjcmFzaCBpbgorICBjb21wdXRlX3NsaWNlX2luZGljZXMuICBQYXRjaCBieSBEYW5pZWwgVXJiYW4uCisKKy0gSXNzdWUgIzU2NzM6IEFkZGVkIGEgYHRpbWVvdXRgIGtleXdvcmQgYXJndW1lbnQgdG8gc3VicHJvY2Vzcy5Qb3Blbi53YWl0LAorICBzdWJwcm9jZXNzLlBvcGVuLmNvbW11bmljYXRlZCwgc3VicHJvY2Vzcy5jYWxsLCBzdWJwcm9jZXNzLmNoZWNrX2NhbGwsIGFuZAorICBzdWJwcm9jZXNzLmNoZWNrX291dHB1dC4gIElmIHRoZSBibG9ja2luZyBvcGVyYXRpb24gdGFrZXMgbW9yZSB0aGFuIGB0aW1lb3V0YAorICBzZWNvbmRzLCB0aGUgYHN1YnByb2Nlc3MuVGltZW91dEV4cGlyZWRgIGV4Y2VwdGlvbiBpcyByYWlzZWQuCisKKy0gSXNzdWUgIzExNjUwOiBQeU9TX1N0ZGlvUmVhZGxpbmUoKSByZXRyaWVzIGZnZXRzKCkgaWYgaXQgd2FzIGludGVycnVwdGVkCisgIChFSU5UUiksIGZvciBleGFtcGxlIGlmIHRoZSBwcm9ncmFtIGlzIHN0b3BwZWQgd2l0aCBDVFJMK3ogb24gTWFjIE9TIFguIFBhdGNoCisgIHdyaXR0ZW4gYnkgQ2hhcmxlcy1GcmFuY29pcyBOYXRhbGkuCisKKy0gSXNzdWUgIzkzMTk6IEluY2x1ZGUgdGhlIGZpbGVuYW1lIGluICJOb24tVVRGOCBjb2RlIC4uLiIgc3ludGF4IGVycm9yLgorCistIElzc3VlICMxMDc4NTogU3RvcmUgdGhlIGZpbGVuYW1lIGFzIFVuaWNvZGUgaW4gdGhlIFB5dGhvbiBwYXJzZXIuCisKKy0gSXNzdWUgIzExNjE5OiBfUHlJbXBvcnRfTG9hZER5bmFtaWNNb2R1bGUoKSBkb2Vzbid0IGVuY29kZSB0aGUgcGF0aCB0byBieXRlcworICBvbiBXaW5kb3dzLgorCistIElzc3VlICMxMDk5ODogUmVtb3ZlIG1lbnRpb25zIG9mIC1RLCBzeXMuZmxhZ3MuZGl2aXNpb25fd2FybmluZyBhbmQKKyAgUHlfRGl2aXNpb25XYXJuaW5nRmxhZyBsZWZ0IG92ZXIgZnJvbSBQeXRob24gMi4KKworLSBJc3N1ZSAjMTEyNDQ6IFJlbW92ZSBhbiB1bm5lY2Vzc2FyeSBwZWVwaG9sZXIgY2hlY2sgdGhhdCB3YXMgcHJldmVudGluZworICBuZWdhdGl2ZSB6ZXJvcyBmcm9tIGJlaW5nIGNvbnN0YW50LWZvbGRlZCBwcm9wZXJseS4KKworLSBJc3N1ZSAjMTEzOTU6IGlvLkZpbGVJTygpLndyaXRlKCkgY2xhbXBzIHRoZSBkYXRhIGxlbmd0aCB0byAzMiw3NjcgYnl0ZXMgb24KKyAgV2luZG93cyBpZiB0aGUgZmlsZSBpcyBhIFRUWSB0byB3b3JrYXJvdW5kIGEgV2luZG93cyBidWcuIFRoZSBXaW5kb3dzIGNvbnNvbGUKKyAgcmV0dXJucyBhbiBlcnJvciAoMTI6IG5vdCBlbm91Z2ggc3BhY2UgZXJyb3IpIG9uIHdyaXRpbmcgaW50byBzdGRvdXQgaWYKKyAgc3Rkb3V0IG1vZGUgaXMgYmluYXJ5IGFuZCB0aGUgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiA2NiwwMDAgYnl0ZXMgKG9yIGxlc3MsCisgIGRlcGVuZGluZyBvbiBoZWFwIHVzYWdlKS4KKworLSBJc3N1ZSAjMTEzMjA6IGZpeCBib2d1cyBtZW1vcnkgbWFuYWdlbWVudCBpbiBNb2R1bGVzL2dldHBhdGguYywgbGVhZGluZyB0bworICBhIHBvc3NpYmxlIGNyYXNoIHdoZW4gY2FsbGluZyBQeV9TZXRQYXRoKCkuCisKKy0gSXNzdWUgIzExNDMyOiBBIGJ1ZyB3YXMgaW50cm9kdWNlZCBpbiBzdWJwcm9jZXNzLlBvcGVuIG9uIHBvc2l4IHN5c3RlbXMgd2l0aAorICAzLjIuMCB3aGVyZSB0aGUgc3Rkb3V0IG9yIHN0ZGVyciBmaWxlIGRlc2NyaXB0b3IgYmVpbmcgdGhlIHNhbWUgYXMgdGhlIHN0ZGluCisgIGZpbGUgZGVzY3JpcHRvciB3b3VsZCByYWlzZSBhbiBleGNlcHRpb24uIHdlYmJyb3dzZXIub3BlbiB3b3VsZCBmYWlsLiBmaXhlZC4KKworLSBJc3N1ZSAjOTg1NjogQ2hhbmdlIG9iamVjdC5fX2Zvcm1hdF9fIHdpdGggYSBub24tZW1wdHkgZm9ybWF0IHN0cmluZworICB0byBiZSBhIERlcHJlY2F0aW9uV2FybmluZy4gSW4gMy4yIGl0IHdhcyBhIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcuCisgIEluIDMuNCBpdCB3aWxsIGJlIGEgVHlwZUVycm9yLgorCistIElzc3VlICMxMTI0NDogVGhlIHBlZXBob2xlIG9wdGltaXplciBpcyBub3cgYWJsZSB0byBjb25zdGFudC1mb2xkCisgIGFyYml0cmFyaWx5IGNvbXBsZXggZXhwcmVzc2lvbnMuICBUaGlzIGFsc28gZml4ZXMgYSAzLjIgcmVncmVzc2lvbiB3aGVyZQorICBvcGVyYXRpb25zIGludm9sdmluZyBuZWdhdGl2ZSBudW1iZXJzIHdlcmUgbm90IGNvbnN0YW50LWZvbGRlZC4KKworLSBJc3N1ZSAjMTE0NTA6IERvbid0IHRydW5jYXRlIGhnIHZlcnNpb24gaW5mbyBpbiBQeV9HZXRCdWlsZEluZm8oKSB3aGVuCisgIHRoZXJlIGFyZSBtYW55IHRhZ3MgKGUuZy4gd2hlbiB1c2luZyBtcSkuICBQYXRjaCBieSBOYWRlZW0gVmF3ZGEuCisKKy0gSXNzdWUgIzExMzM1OiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluIGxpc3Quc29ydCB3aGVuIHRoZSBrZXkgZnVuY3Rpb24KKyAgdGhyb3dzIGFuIGV4Y2VwdGlvbi4KKworLSBJc3N1ZSAjODkyMzogV2hlbiBhIHN0cmluZyBpcyBlbmNvZGVkIHRvIFVURi04IGluIHN0cmljdCBtb2RlLCB0aGUgcmVzdWx0IGlzCisgIGNhY2hlZCBpbnRvIHRoZSBvYmplY3QuIEV4YW1wbGVzOiBzdHIuZW5jb2RlKCksIHN0ci5lbmNvZGUoJ3V0Zi04JyksCisgIFB5VW5pY29kZV9Bc1VURjhTdHJpbmcoKSBhbmQgUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyh1bmljb2RlLCAidXRmLTgiLAorICBOVUxMKS4KKworLSBJc3N1ZSAjMTA4MzE6IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCkgc3VwcG9ydHMgJWxpLCAlbGxpIGFuZCAlemkgZm9ybWF0cy4KKworLSBJc3N1ZSAjMTA4Mjk6IFJlZmFjdG9yIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCksIHVzZSB0aGUgc2FtZSBmdW5jdGlvbiB0byBwYXJzZQorICB0aGUgZm9ybWF0IHN0cmluZyBpbiB0aGUgMyBzdGVwcywgZml4IGNyYXNocyBvbiBpbnZhbGlkIGZvcm1hdCBzdHJpbmdzLgorCistIElzc3VlICMxMzAwNzogd2hpY2hkYiBzaG91bGQgcmVjb2duaXplIGdkYm0gMS45IG1hZ2ljIG51bWJlcnMuCisKKy0gSXNzdWUgIzExMjQ2OiBGaXggUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVWIikgdG8gZGVjb2RlIHRoZSBieXRlIHN0cmluZyBmcm9tCisgIFVURi04ICh3aXRoIHJlcGxhY2UgZXJyb3IgaGFuZGxlcikgaW5zdGVhZCBvZiBJU08tODg1OS0xIChpbiBzdHJpY3QgbW9kZSkuCisgIFBhdGNoIHdyaXR0ZW4gYnkgUmF5IEFsbGVuLgorCistIElzc3VlICMxMTI4NjogUmFpc2UgYSBWYWx1ZUVycm9yIGZyb20gY2FsbGluZyBQeU1lbW9yeVZpZXdfRnJvbUJ1ZmZlciB3aXRoCisgIGEgYnVmZmVyIHN0cnVjdCBoYXZpbmcgYSBOVUxMIGRhdGEgcG9pbnRlci4KKworLSBJc3N1ZSAjMTEyNzI6IE9uIFdpbmRvd3MsIGlucHV0KCkgc3RyaXBzICdccicgKGFuZCBub3Qgb25seSAnXG4nKSwgYW5kCisgIHN5cy5zdGRpbiB1c2VzIHVuaXZlcnNhbCBuZXdsaW5lIChyZXBsYWNlICdcclxuJyBieSAnXG4nKS4KKworLSBpc3N1ZSAjMTE4Mjg6IHN0YXJ0c3dpdGggYW5kIGVuZHN3aXRoIGRvbid0IGFjY2VwdCBOb25lIGFzIHNsaWNlIGluZGV4LgorICBQYXRjaCBieSBUb3JzdGVuIEJlY2tlci4KKworLSBJc3N1ZSAjMTA4MzA6IEZpeCBQeVVuaWNvZGVfRnJvbUZvcm1hdFYoIiVjIikgZm9yIG5vbi1CTVAgY2hhcmFjdGVycyBvbgorICBuYXJyb3cgYnVpbGQuCisKKy0gSXNzdWUgIzExMTY4OiBSZW1vdmUgZmlsZW5hbWUgZGVidWcgdmFyaWFibGUgZnJvbSBQeUV2YWxfRXZhbEZyYW1lRXgoKS4KKyAgSXQgZW5jb2RlZCB0aGUgVW5pY29kZSBmaWxlbmFtZSB0byBVVEYtOCwgYnV0IHRoZSBlbmNvZGluZyBmYWlscyBvbgorICB1bmRlY29kYWJsZSBmaWxlbmFtZSAob24gc3Vycm9nYXRlIGNoYXJhY3RlcnMpIHdoaWNoIHJhaXNlcyBhbiB1bmV4cGVjdGVkCisgIFVuaWNvZGVFbmNvZGVFcnJvciBvbiByZWN1cnNpb24gbGltaXQuCisKKy0gSXNzdWUgIzExMTg3OiBSZW1vdmUgYm9vdHN0cmFwIGNvZGUgKHVzZSBBU0NJSSkgb2YKKyAgUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZygpLCBpdCB3YXMgcmVwbGFjZWQgYnkgYSBiZXR0ZXIgZmFsbGJhY2sgKHVzZSB0aGUKKyAgbG9jYWxlIGVuY29kaW5nKSBpbiBQeVVuaWNvZGVfRW5jb2RlRlNEZWZhdWx0KCkuCisKKy0gQ2hlY2sgZm9yIE5VTEwgcmVzdWx0IGluIFB5VHlwZV9Gcm9tU3BlYy4KKworLSBJc3N1ZSAjMTA1MTY6IE5ldyBjb3B5KCkgYW5kIGNsZWFyKCkgbWV0aG9kcyBmb3IgbGlzdHMgYW5kIGJ5dGVhcnJheXMuCisKKy0gSXNzdWUgIzExMzg2OiBieXRlYXJyYXkucG9wKCkgbm93IHRocm93cyBJbmRleEVycm9yIHdoZW4gdGhlIGJ5dGVhcnJheSBpcworICBlbXB0eSwgaW5zdGVhZCBvZiBPdmVyZmxvd0Vycm9yLgorCistIElzc3VlICMxMjM4MDogVGhlIHJqdXN0LCBsanVzdCBhbmQgY2VudGVyIG1ldGhvZHMgb2YgYnl0ZXMgYW5kIGJ5dGVhcnJheQorICBub3cgYWNjZXB0IGEgYnl0ZWFycmF5IGFyZ3VtZW50LgorCiBMaWJyYXJ5CiAtLS0tLS0tCiAKKy0gSXNzdWUgIzE0MTk1OiBBbiBpc3N1ZSB0aGF0IGNhdXNlZCB3ZWFrcmVmLldlYWtTZXQgaW5zdGFuY2VzIHRvIGluY29ycmVjdGx5CisgIHJldHVybiBUcnVlIGZvciBhIFdlYWtTZXQgaW5zdGFuY2UgJ2EnIGluIGJvdGggJ2EgPCBhJyBhbmQgJ2EgPiBhJyBoYXMgYmVlbgorICBmaXhlZC4KKworLSBJc3N1ZSAjMTQxNjY6IFBpY2tsZXIgb2JqZWN0cyBub3cgaGF2ZSBhbiBvcHRpb25hbCBgYGRpc3BhdGNoX3RhYmxlYGAKKyAgYXR0cmlidXRlIHdoaWNoIGFsbG93cyB0byBzZXQgY3VzdG9tIHBlci1waWNrbGVyIHJlZHVjdGlvbiBmdW5jdGlvbnMuCisgIFBhdGNoIGJ5IHNidC4KKworLSBJc3N1ZSAjMTQxNzc6IG1hcnNoYWwubG9hZHMoKSBub3cgcmFpc2VzIFR5cGVFcnJvciB3aGVuIGdpdmVuIGFuIHVuaWNvZGUKKyAgc3RyaW5nLiAgUGF0Y2ggYnkgR3VpbGhlcm1lIEdvbsOnYWx2ZXMuCisKKy0gSXNzdWUgIzEzNTUwOiBSZW1vdmUgdGhlIGRlYnVnIG1hY2hpbmVyeSBmcm9tIHRoZSB0aHJlYWRpbmcgbW9kdWxlOiByZW1vdmUKKyAgdmVyYm9zZSBhcmd1bWVudHMgZnJvbSBhbGwgdGhyZWFkaW5nIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucy4KKworLSBJc3N1ZSAjMTQxNTk6IEZpeCB0aGUgbGVuKCkgb2Ygd2VhayBjb250YWluZXJzIChXZWFrU2V0LCBXZWFrS2V5RGljdGlvbmFyeSwKKyAgV2Vha1ZhbHVlRGljdGlvbmFyeSkgdG8gcmV0dXJuIGEgYmV0dGVyIGFwcHJveGltYXRpb24gd2hlbiBzb21lIG9iamVjdHMKKyAgYXJlIGRlYWQgb3IgZHlpbmcuICBNb3Jlb3ZlciwgdGhlIGltcGxlbWVudGF0aW9uIGlzIG5vdyBPKDEpIHJhdGhlciB0aGFuCisgIE8obikuCisKKy0gSXNzdWUgIzEzMTI1OiBTaWxlbmNlIHNwdXJpb3VzIHRlc3RfbGliMnRvMyBvdXRwdXQgd2hlbiBpbiBub24tdmVyYm9zZSBtb2RlLgorICBQYXRjaCBieSBNaWtoYWlsIE5vdmlrb3YuCisKKy0gSXNzdWUgIzExODQxOiBGaXggY29tcGFyaXNvbiBidWcgd2l0aCAncmMnIHZlcnNpb25zIGluIHBhY2thZ2luZy52ZXJzaW9uLgorICBQYXRjaCBieSBGaWxpcCBHcnVzemN6ecWEc2tpLgorCistIElzc3VlICMxMzQ0NzogQWRkIGEgdGVzdCBmaWxlIHRvIGhvc3QgcmVncmVzc2lvbiB0ZXN0cyBmb3IgYnVncyBpbiB0aGUKKyAgc2NyaXB0cyBmb3VuZCBpbiB0aGUgVG9vbHMgZGlyZWN0b3J5LgorCistIElzc3VlICM2ODg0OiBGaXggbG9uZy1zdGFuZGluZyBidWdzIHdpdGggTUFOSUZFU1QuaW4gcGFyc2luZyBpbiBkaXN0dXRpbHMKKyAgb24gV2luZG93cy4gIEFsc28gZml4ZWQgaW4gcGFja2FnaW5nLgorCistIElzc3VlICM4MDMzOiBzcWxpdGUzOiBGaXggNjQtYml0IGludGVnZXIgaGFuZGxpbmcgaW4gdXNlciBmdW5jdGlvbnMKKyAgb24gMzItYml0IGFyY2hpdGVjdHVyZXMuIEluaXRpYWwgcGF0Y2ggYnkgUGhpbGlwcGUgRGV2YWxrZW5lZXIuCisKIC0gSFRNTFBhcnNlciBpcyBub3cgYWJsZSB0byBoYW5kbGUgc2xhc2hlcyBpbiB0aGUgc3RhcnQgdGFnLgogCistIElzc3VlICMxMzY0MTogRGVjb2RpbmcgZnVuY3Rpb25zIGluIHRoZSBiYXNlNjQgbW9kdWxlIG5vdyBhY2NlcHQgQVNDSUktb25seQorICB1bmljb2RlIHN0cmluZ3MuICBQYXRjaCBieSBDYXRhbGluIElhY29iLgorCistIElzc3VlICMxNDA0MzogU3BlZWQgdXAgaW1wb3J0bGliJ3MgX0ZpbGVGaW5kZXIgYnkgYXQgbGVhc3QgOHgsIGFuZCBhZGQgYQorICBuZXcgaW1wb3J0bGliLmludmFsaWRhdGVfY2FjaGVzKCkgZnVuY3Rpb24uCisKIC0gSXNzdWUgIzE0MDAxOiBDVkUtMjAxMi0wODQ1OiB4bWxycGM6IEZpeCBhbiBlbmRsZXNzIGxvb3AgaW4KICAgU2ltcGxlWE1MUlBDU2VydmVyIHVwb24gbWFsZm9ybWVkIFBPU1QgcmVxdWVzdC4KIAorLSBJc3N1ZSAjMTM5NjE6IE1vdmUgaW1wb3J0bGliIG92ZXIgdG8gdXNpbmcgb3MucmVwbGFjZSgpIGZvciBhdG9taWMgcmVuYW1pbmcuCisKKy0gRG8gYXdheSB3aXRoIGFtYmlndW91cyBsZXZlbCB2YWx1ZXMgKGFzIHN1Z2dlc3RlZCBieSBQRVAgMzI4KSBpbgorICBpbXBvcnRsaWIuX19pbXBvcnRfXygpIGJ5IHJhaXNpbmcgVmFsdWVFcnJvciB3aGVuIGxldmVsIDwgMC4KKwogLSBJc3N1ZSAjMjQ4OTogcHR5LnNwYXduIGNvdWxkIGNvbnN1bWUgMTAwJSBjcHUgd2hlbiBpdCBlbmNvdW50ZXJlZCBhbiBFT0YuCiAKIC0gSXNzdWUgIzEzMDE0OiBGaXggYSBwb3NzaWJsZSByZWZlcmVuY2UgbGVhayBpbiBTU0xTb2NrZXQuZ2V0cGVlcmNlcnQoKS4KIAorLSBJc3N1ZSAjMTM3Nzc6IEFkZCBQRl9TWVNURU0gc29ja2V0cyBvbiBPUyBYLgorICBQYXRjaCBieSBNaWNoYWVsIEdvZGVyYmF1ZXIuCisKIC0gSXNzdWUgIzEzMDE1OiBGaXggYSBwb3NzaWJsZSByZWZlcmVuY2UgbGVhayBpbiBkZWZhdWx0ZGljdC5fX3JlcHJfXy4KICAgUGF0Y2ggYnkgU3VtYW4gU2FoYS4KIAotLSBJc3N1ZSAjMTMyNjExMzogZGlzdHV0aWxzJyBidWlsZF9leHQgY29tbWFuZCAtLWxpYnJhcmllcyBvcHRpb24gbm93Ci0gIGNvcnJlY3RseSBwYXJzZXMgbXVsdGlwbGUgdmFsdWVzIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlIG9yIGNvbW1hcy4KKy0gSXNzdWUgIzEzMjYxMTM6IGRpc3R1dGlscycgYW5kIHBhY2thZ2luZydzIGJ1aWxkX2V4dCBjb21tYW5kcyBvcHRpb24gbm93CisgIGNvcnJlY3RseSBwYXJzZXMgbXVsdGlwbGUgdmFsdWVzIChzZXBhcmF0ZWQgYnkgd2hpdGVzcGFjZSBvciBjb21tYXMpIGdpdmVuCisgIHRvIHRoZWlyIC0tbGlicmFyaWVzIG9wdGlvbi4KIAogLSBJc3N1ZSAjMTAyODc6IG5udHBsaWIgbm93IHF1ZXJpZXMgdGhlIHNlcnZlcidzIENBUEFCSUxJVElFUyBmaXJzdCBiZWZvcmUKICAgc2VuZGluZyBNT0RFIFJFQURFUiwgYW5kIG9ubHkgc2VuZHMgaXQgaWYgbm90IGFscmVhZHkgaW4gUkVBREVSIG1vZGUuCiAgIFBhdGNoIGJ5IEh5bmVrIFNjaGxhd2Fjay4KIAotLSBJc3N1ZSAjMTM5Nzk6IEEgYnVnIGluIGN0eXBlcy51dGlsLmZpbmRfbGlicmFyeSB0aGF0IGNhdXNlZAotICB0aGUgd3JvbmcgbGlicmFyeSBuYW1lIHRvIGJlIHJldHVybmVkIGhhcyBiZWVuIGZpeGVkLgotCiAtIElzc3VlICMxMzk5MzogSFRNTFBhcnNlciBpcyBub3cgYWJsZSB0byBoYW5kbGUgYnJva2VuIGVuZCB0YWdzIHdoZW4KICAgc3RyaWN0PUZhbHNlLgogCistIElzc3VlICMxMzkzMDogbGliMnRvMyBub3cgc3VwcG9ydHMgd3JpdGluZyBjb252ZXJ0ZWQgb3V0cHV0IGZpbGVzIHRvIGFub3RoZXIKKyAgZGlyZWN0b3J5IHRyZWUgYXMgd2VsbCBhcyBjb3B5aW5nIHVuY2hhbmdlZCBmaWxlcyBhbmQgYWx0ZXJpbmcgdGhlIGZpbGUKKyAgc3VmZml4LgorCiAtIElzc3VlICM5NzUwOiBGaXggc3FsaXRlMy5Db25uZWN0aW9uLml0ZXJkdW1wIG9uIHRhYmxlcyBhbmQgZmllbGRzCiAgIHdpdGggYSBuYW1lIHRoYXQgaXMgYSBrZXl3b3JkIG9yIGNvbnRhaW5zIHF1b3Rlcy4gUGF0Y2ggYnkgTWFya28KICAgS29odGFsYS4KQEAgLTU5OCw2ICsxNzg5LDI4IEBACiAtIElzc3VlICMxMzk2MDogSFRNTFBhcnNlciBpcyBub3cgYWJsZSB0byBoYW5kbGUgYnJva2VuIGNvbW1lbnRzIHdoZW4KICAgc3RyaWN0PUZhbHNlLgogCistIElzc3VlICMxMzkyMTogVW5kb2N1bWVudCBhbmQgY2xlYW4gdXAgc3FsaXRlMy5PcHRpbWl6ZWRVbmljb2RlLAorICB3aGljaCBpcyBvYnNvbGV0ZSBpbiBQeXRob24gMy54LiBJdCdzIG5vdyBhbGlhc2VkIHRvIHN0ciBmb3IKKyAgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCisKKy0gV2hlbiAnJyBpcyBhIHBhdGggKGUuZy4gaW4gc3lzLnBhdGgpLCBtYWtlIHN1cmUgX19maWxlX18gdXNlcyB0aGUgY3VycmVudAorICB3b3JraW5nIGRpcmVjdG9yeSBpbnN0ZWFkIG9mICcnIGluIGltcG9ydGxpYi4KKworLSBJc3N1ZSAjMTM2MDk6IEFkZCB0d28gZnVuY3Rpb25zIHRvIHF1ZXJ5IHRoZSB0ZXJtaW5hbCBzaXplOgorICBvcy5nZXRfdGVybWluYWxfc2l6ZSAobG93IGxldmVsKSBhbmQgc2h1dGlsLmdldF90ZXJtaW5hbF9zaXplIChoaWdoIGxldmVsKS4KKyAgUGF0Y2ggYnkgWmJpZ25pZXcgSsSZZHJ6ZWpld3NraS1Tem1lay4KKworLSBJc3N1ZSAjMTM4NDU6IE9uIFdpbmRvd3MsIHRpbWUudGltZSgpIG5vdyB1c2VzIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCkKKyAgaW5zdGVhZCBvZiBmdGltZSgpIHRvIGhhdmUgYSByZXNvbHV0aW9uIG9mIDEwMCBucyBpbnN0ZWFkIG9mIDEgbXMgKHRoZSBjbG9jaworICBhY2N1cmFjeSBpcyBiZXR3ZWVuIDAuNSBtcyBhbmQgMTUgbXMpLgorCistIElzc3VlICMxMzg0NjogQWRkIHRpbWUubW9ub3RvbmljKCksIG1vbm90b25pYyBjbG9jay4KKworLSBJc3N1ZSAjODE4NDogbXVsdGlwcm9jZXNzaW5nOiBPbiBXaW5kb3dzLCBkb24ndCBzZXQgU09fUkVVU0VBRERSIG9uCisgIENvbm5lY3Rpb24gc29ja2V0cywgYW5kIHNldCBGSUxFX0ZMQUdfRklSU1RfUElQRV9JTlNUQU5DRSBvbiBuYW1lZCBwaXBlcywgdG8KKyAgbWFrZSBzdXJlIHR3byBsaXN0ZW5lcnMgY2FuJ3QgYmluZCB0byB0aGUgc2FtZSBzb2NrZXQvcGlwZSAob3IgYW55IGV4aXN0aW5nCisgIHNvY2tldC9waXBlKS4KKwogLSBJc3N1ZSAjOTAyMTogQWRkIGFuIGludHJvZHVjdGlvbiB0byB0aGUgY29weSBtb2R1bGUgZG9jdW1lbnRhdGlvbi4KIAogLSBJc3N1ZSAjNjAwNTogRXhhbXBsZXMgaW4gdGhlIHNvY2tldCBsaWJyYXJ5IGRvY3VtZW50YXRpb24gdXNlIHNlbmRhbGwsIHdoZXJlCkBAIC02MTEsOCArMTgyNCwxNSBAQAogLSBJc3N1ZSAjOTY0NDM3OiBNYWtlIElETEUgaGVscCB3aW5kb3cgbm9uLW1vZGFsLgogICBQYXRjaCBieSBHdWlsaGVybWUgUG9sbyBhbmQgUm9nZXIgU2Vyd3kuCiAKKy0gSXNzdWUgIzEzNzM0OiBBZGQgb3MuZndhbGsoKSwgYSBkaXJlY3Rvcnkgd2Fsa2luZyBmdW5jdGlvbiB5aWVsZGluZyBmaWxlCisgIGRlc2NyaXB0b3JzLgorCiAtIElzc3VlICMyOTQ1OiBNYWtlIHRoZSBkaXN0dXRpbHMgdXBsb2FkIGNvbW1hbmQgYXdhcmUgb2YgYmRpc3RfcnBtIHByb2R1Y3RzLgogCistIElzc3VlICMxMzcxMjogcHlzZXR1cCBjcmVhdGUgc2hvdWxkIG5vdCBjb252ZXJ0IHBhY2thZ2VfZGF0YSB0byBleHRyYV9maWxlcy4KKworLSBJc3N1ZSAjMTE4MDU6IHBhY2thZ2VfZGF0YSBpbiBzZXR1cC5jZmcgc2hvdWxkIGFsbG93IG1vcmUgdGhhbiBvbmUgdmFsdWUuCisKIC0gSXNzdWUgIzEzOTMzOiBJRExFIGF1dG8tY29tcGxldGUgZGlkIG5vdCB3b3JrIHdpdGggc29tZSBpbXBvcnRlZAogICBtb2R1bGUsIGxpa2UgaGFzaGxpYi4gIChQYXRjaCBieSBSb2dlciBTZXJ3eSkKIApAQCAtNjIzLDYgKzE4NDMsOSBAQAogLSBJc3N1ZSAjMTM1MDY6IEFkZCAnJyB0byBwYXRoIGZvciBJRExFIFNoZWxsIHdoZW4gc3RhcnRlZCBhbmQgcmVzdGFydGVkIHdpdGggUmVzdGFydCBTaGVsbC4KICAgT3JpZ2luYWwgcGF0Y2hlcyBieSBNYXJjbyBTY2F0YWdsaW5pIGFuZCBSb2dlciBTZXJ3eS4KIAorLSBJc3N1ZSAjODgyODogQWRkIG5ldyBmdW5jdGlvbiBvcy5yZXBsYWNlKCksIGZvciBjcm9zcy1wbGF0Zm9ybSByZW5hbWluZworICB3aXRoIG92ZXJ3cml0aW5nLgorCiAtIElzc3VlICMxMzg0ODogb3BlbigpIGFuZCB0aGUgRmlsZUlPIGNvbnN0cnVjdG9yIG5vdyBjaGVjayBmb3IgTlVMCiAgIGNoYXJhY3RlcnMgaW4gdGhlIGZpbGUgbmFtZS4gIFBhdGNoIGJ5IEh5bmVrIFNjaGxhd2Fjay4KIApAQCAtNjM1LDYgKzE4NTgsMTcgQEAKIC0gSXNzdWUgIzEzODg1OiBDVkUtMjAxMS0zMzg5OiB0aGUgX3NzbCBtb2R1bGUgd291bGQgYWx3YXlzIGRpc2FibGUgdGhlIENCQwogICBJViBhdHRhY2sgY291bnRlcm1lYXN1cmUuCiAKKy0gSXNzdWUgIzEzODQ3OiB0aW1lLmxvY2FsdGltZSgpIGFuZCB0aW1lLmdtdGltZSgpIG5vdyByYWlzZSBhbiBPU0Vycm9yIGluc3RlYWQKKyAgb2YgVmFsdWVFcnJvciBvbiBmYWlsdXJlLiB0aW1lLmN0aW1lKCkgYW5kIHRpbWUuYXNjdGltZSgpIG5vdyByYWlzZXMgYW4KKyAgT1NFcnJvciBpZiBsb2NhbHRpbWUoKSBmYWlsZWQuIHRpbWUuY2xvY2soKSBub3cgcmFpc2VzIGEgUnVudGltZUVycm9yIGlmIHRoZQorICBwcm9jZXNzb3IgdGltZSB1c2VkIGlzIG5vdCBhdmFpbGFibGUgb3IgaXRzIHZhbHVlIGNhbm5vdCBiZSByZXByZXNlbnRlZAorCistIElzc3VlICMxMzg2MjogRml4IHNwdXJpb3VzIGZhaWx1cmUgaW4gdGVzdF96bGliIGR1ZSB0byBydW50aW1lL2NvbXBpbGUgdGltZQorICBtaW5vciB2ZXJzaW9ucyBub3QgbWF0Y2hpbmcuCisKKy0gSXNzdWUgIzEyODA0OiBGaXggdGVzdF9zb2NrZXQgYW5kIHRlc3RfdXJsbGliMm5ldCBmYWlsdXJlcyB3aGVuIHJ1bm5pbmcgdGVzdHMKKyAgb24gYSBzeXN0ZW0gd2l0aG91dCBpbnRlcm5ldCBhY2Nlc3MuCisKIC0gSXNzdWUgIzEzNzcyOiBJbiBvcy5zeW1saW5rKCkgdW5kZXIgV2luZG93cywgZG8gbm90IHRyeSB0byBndWVzcyB0aGUgbGluawogICB0YXJnZXQncyB0eXBlIChmaWxlIG9yIGRpcmVjdG9yeSkuICBUaGUgZGV0ZWN0aW9uIHdhcyBidWdneSBhbmQgbWFkZSB0aGUKICAgY2FsbCBub24tYXRvbWljICh0aGVyZWZvcmUgcHJvbmUgdG8gcmFjZSBjb25kaXRpb25zKS4KQEAgLTY1MCw2ICsxODg0LDExIEBACiAtIElzc3VlICMxMzgwMzogVW5kZXIgU29sYXJpcywgZGlzdHV0aWxzIGRvZXNuJ3QgaW5jbHVkZSBiaXRuZXNzCiAgIGluIHRoZSBkaXJlY3RvcnkgbmFtZS4KIAorLSBJc3N1ZSAjMTAyNzg6IEFkZCB0aW1lLndhbGxjbG9jaygpIGZ1bmN0aW9uLCBtb25vdG9uaWMgY2xvY2suCisKKy0gSXNzdWUgIzEzODA5OiBGaXggcmVncmVzc2lvbiB3aGVyZSBiejIgbW9kdWxlIHdvdWxkbid0IHdvcmsgd2hlbiB0aHJlYWRzIGFyZQorICBkaXNhYmxlZC4gT3JpZ2luYWwgcGF0Y2ggYnkgQW1hdXJ5IEZvcmdlb3QgZCdBcmMuCisKIC0gSXNzdWUgIzEzNTg5OiBGaXggc29tZSBzZXJpYWxpemF0aW9uIHByaW1pdGl2ZXMgaW4gdGhlIGFpZmMgbW9kdWxlLgogICBQYXRjaCBieSBPbGVnIFBsYWtob3RueXVrLgogCkBAIC02NjYsNiArMTkwNSwxMSBAQAogLSBJc3N1ZSAjMTM1MDI6IHRocmVhZGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gRXZlbnQud2FpdCgpIHRoYXQgbWFkZSBpdAogICByZXR1cm4gRmFsc2Ugd2hlbiB0aGUgZXZlbnQgd2FzIHNldCBhbmQgY2xlYXJlZCByaWdodCBhZnRlci4KIAorLSBJc3N1ZSAjOTk5MzogV2hlbiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBhcmUgb24gZGlmZmVyZW50IGZpbGVzeXN0ZW1zLAorICBhbmQgdGhlIHNvdXJjZSBpcyBhIHN5bWxpbmssIHNodXRpbC5tb3ZlKCkgbm93IHJlY3JlYXRlcyBhIHN5bWxpbmsgb24gdGhlCisgIGRlc3RpbmF0aW9uIGluc3RlYWQgb2YgY29weWluZyB0aGUgZmlsZSBjb250ZW50cy4gIFBhdGNoIGJ5IEpvbmF0aGFuIE5pZWhvZgorICBhbmQgSHluZWsgU2NobGF3YWNrLgorCiAtIElzc3VlICMxMjkyNjogRml4IGEgYnVnIGluIHRhcmZpbGUncyBsaW5rIGV4dHJhY3Rpb24uCiAKIC0gSXNzdWUgIzEzNjk2OiBGaXggdGhlIDMwMiBSZWxhdGl2ZSBVUkwgUmVkaXJlY3Rpb24gcHJvYmxlbS4KQEAgLTY3MywxNSArMTkxNyw0NCBAQAogLSBJc3N1ZSAjMTM2MzY6IFdlYWsgY2lwaGVycyBhcmUgbm93IGRpc2FibGVkIGJ5IGRlZmF1bHQgaW4gdGhlIHNzbCBtb2R1bGUKICAgKGV4Y2VwdCB3aGVuIFNTTHYyIGlzIGV4cGxpY2l0bHkgYXNrZWQgZm9yKS4KIAorLSBJc3N1ZSAjMTI3MTU6IEFkZCBhbiBvcHRpb25hbCBzeW1saW5rcyBhcmd1bWVudCB0byBzaHV0aWwgZnVuY3Rpb25zCisgIChjb3B5ZmlsZSwgY29weW1vZGUsIGNvcHlzdGF0LCBjb3B5LCBjb3B5MikuICBXaGVuIHRoYXQgcGFyYW1ldGVyIGlzCisgIHRydWUsIHN5bWxpbmtzIGFyZW4ndCBkZXJlZmVyZW5jZWQgYW5kIHRoZSBvcGVyYXRpb24gaW5zdGVhZCBhY3RzIG9uIHRoZQorICBzeW1saW5rIGl0c2VsZiAob3IgY3JlYXRlcyBvbmUsIGlmIHJlbGV2YW50KS4gIFBhdGNoIGJ5IEh5bmVrIFNjaGxhd2Fjay4KKworLSBBZGQgYSBmbGFncyBwYXJhbWV0ZXIgdG8gc2VsZWN0LmVwb2xsLgorCiAtIElzc3VlICMxMjc5ODogVXBkYXRlZCB0aGUgbWltZXR5cGVzIGRvY3VtZW50YXRpb24uCiAKKy0gSXNzdWUgIzEzNjI2OiBBZGQgc3VwcG9ydCBmb3IgU1NMIERpZmZpZS1IZWxsbWFuIGtleSBleGNoYW5nZSwgdGhyb3VnaCB0aGUKKyAgU1NMQ29udGV4dC5sb2FkX2RoX3BhcmFtcygpIG1ldGhvZCBhbmQgdGhlIHNzbC5PUF9TSU5HTEVfREhfVVNFIG9wdGlvbi4KKwogLSBJc3N1ZSAjMTEwMDY6IERvbid0IGlzc3VlIGxvdyBsZXZlbCB3YXJuaW5nIGluIHN1YnByb2Nlc3Mgd2hlbiBwaXBlMigpIGZhaWxzLgogCistIElzc3VlICMxMzYyMDogU3VwcG9ydCBmb3IgQ2hyb21lIGJyb3dzZXIgaW4gd2ViYnJvd3Nlci4gIFBhdGNoIGNvbnRyaWJ1dGVkCisgIGJ5IEFybmF1ZCBDYWxtZXR0ZXMuCisKIC0gSXNzdWUgIzExODI5OiBGaXggY29kZSBleGVjdXRpb24gaG9sZXMgaW4gaW5zcGVjdC5nZXRhdHRyX3N0YXRpYyBmb3IKICAgbWV0YWNsYXNzZXMgd2l0aCBtZXRhY2xhc3Nlcy4gUGF0Y2ggYnkgQW5kcmVhcyBTdMO8aHJrLgogCistIElzc3VlICMxMjcwODogQWRkIHN0YXJtYXAoKSBhbmQgc3Rhcm1hcF9hc3luYygpIG1ldGhvZHMgKHNpbWlsYXIgdG8KKyAgaXRlcnRvb2xzLnN0YXJtYXAoKSkgdG8gbXVsdGlwcm9jZXNzaW5nLlBvb2wuICBQYXRjaCBieSBIeW5layBTY2hsYXdhY2suCisKIC0gSXNzdWUgIzE3ODU6IEZpeCBpbnNwZWN0IGFuZCBweWRvYyB3aXRoIG1pc2JlaGF2aW5nIGRlc2NyaXB0b3JzLgogCistIElzc3VlICMxMzYzNzogImEyYiIgZnVuY3Rpb25zIGluIHRoZSBiaW5hc2NpaSBtb2R1bGUgbm93IGFjY2VwdCBBU0NJSS1vbmx5CisgIHVuaWNvZGUgc3RyaW5ncy4KKworLSBJc3N1ZSAjMTM2MzQ6IEFkZCBzdXBwb3J0IGZvciBxdWVyeWluZyBhbmQgZGlzYWJsaW5nIFNTTCBjb21wcmVzc2lvbi4KKworLSBJc3N1ZSAjMTM2Mjc6IEFkZCBzdXBwb3J0IGZvciBTU0wgRWxsaXB0aWMgQ3VydmUtYmFzZWQgRGlmZmllLUhlbGxtYW4KKyAga2V5IGV4Y2hhbmdlLCB0aHJvdWdoIHRoZSBTU0xDb250ZXh0LnNldF9lY2RoX2N1cnZlKCkgbWV0aG9kIGFuZCB0aGUKKyAgc3NsLk9QX1NJTkdMRV9FQ0RIX1VTRSBvcHRpb24uCisKKy0gSXNzdWUgIzEzNjM1OiBBZGQgc3NsLk9QX0NJUEhFUl9TRVJWRVJfUFJFRkVSRU5DRSwgc28gdGhhdCBTU0wgc2VydmVycworICBjaG9vc2UgdGhlIGNpcGhlciBiYXNlZCBvbiB0aGVpciBvd24gcHJlZmVyZW5jZXMsIHJhdGhlciB0aGFuIG9uIHRoZQorICBjbGllbnQncy4KKwogLSBJc3N1ZSAjMTE4MTM6IEZpeCBpbnNwZWN0LmdldGF0dHJfc3RhdGljIGZvciBtb2R1bGVzLiBQYXRjaCBieSBBbmRyZWFzCiAgIFN0w7xocmsuCiAKQEAgLTY5NCwyNyArMTk2Nyw2MiBAQAogLSBJc3N1ZSAjODAzNTogdXJsbGliOiBGaXggYSBidWcgd2hlcmUgdGhlIGNsaWVudCBjb3VsZCByZW1haW4gc3R1Y2sgYWZ0ZXIgYQogICByZWRpcmVjdGlvbiBvciBhbiBlcnJvci4KIAorLSBJc3N1ZSAjMTM1NjA6IG9zLnN0cmVycm9yKCkgbm93IHVzZXMgdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nIGluc3RlYWQgb2YKKyAgVVRGLTguCisKKy0gSXNzdWUgIzEzNTYwOiBBZGQgUHlVbmljb2RlX0RlY29kZUxvY2FsZSgpLCBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlQW5kU2l6ZSgpCisgIGFuZCBQeVVuaWNvZGVfRW5jb2RlTG9jYWxlKCkgZnVuY3Rpb25zIHRvIHRoZSBDIEFQSSB0byBkZWNvZGUvZW5jb2RlIGZyb20vdG8KKyAgdGhlIGN1cnJlbnQgbG9jYWxlIGVuY29kaW5nLgorCistIElzc3VlICM4MzczOiBUaGUgZmlsZXN5c3RlbSBwYXRoIG9mIEFGX1VOSVggc29ja2V0cyBub3cgdXNlcyB0aGUgZmlsZXN5c3RlbQorICBlbmNvZGluZyBhbmQgdGhlIHN1cnJvZ2F0ZWVzY2FwZSBlcnJvciBoYW5kbGVyLCByYXRoZXIgdGhhbiBVVEYtOC4gIFBhdGNoCisgIGJ5IERhdmlkIFdhdHNvbi4KKwogLSBJc3N1ZSAjMTAzNTA6IFJlYWQgYW5kIHNhdmUgZXJybm8gYmVmb3JlIGNhbGxpbmcgYSBmdW5jdGlvbiB3aGljaCBtaWdodAogICBvdmVyd3JpdGUgaXQuICBPcmlnaW5hbCBwYXRjaCBieSBIYWxsdmFyZCBCIEZ1cnVzZXRoLgogCistIElzc3VlICMxMTYxMDogSW50cm9kdWNlIGEgbW9yZSBnZW5lcmFsIHdheSB0byBkZWNsYXJlIGFic3RyYWN0IHByb3BlcnRpZXMuCisKIC0gSXNzdWUgIzEzNTkxOiBBIGJ1ZyBpbiBpbXBvcnRsaWIgaGFzIGJlZW4gZml4ZWQgdGhhdCBjYXVzZWQgaW1wb3J0X21vZHVsZQogICB0byBsb2FkIGEgbW9kdWxlIHR3aWNlLgogCi0tIElzc3VlICM0NjI1OiBJZiBJRExFIGNhbm5vdCB3cml0ZSB0byBpdHMgcmVjZW50IGZpbGUgb3IgYnJlYWtwb2ludAotICBmaWxlcywgZGlzcGxheSBhIG1lc3NhZ2UgcG9wdXAgYW5kIGNvbnRpbnVlIHJhdGhlciB0aGFuIGNyYXNoLgotICAob3JpZ2luYWwgcGF0Y2ggYnkgUm9nZXIgU2Vyd3kpCistIElzc3VlICM0NjI1OiBJZiBJRExFIGNhbm5vdCB3cml0ZSB0byBpdHMgcmVjZW50IGZpbGUgb3IgYnJlYWtwb2ludCBmaWxlcywKKyAgZGlzcGxheSBhIG1lc3NhZ2UgcG9wdXAgYW5kIGNvbnRpbnVlIHJhdGhlciB0aGFuIGNyYXNoLiAgT3JpZ2luYWwgcGF0Y2ggYnkKKyAgUm9nZXIgU2Vyd3kuCiAKLS0gSXNzdWUgIzU5MDU6IHRpbWUuc3RyZnRpbWUoKSBpcyBub3cgdXNpbmcgdGhlIGxvY2FsZSBlbmNvZGluZywgaW5zdGVhZCBvZgotICBVVEYtOCwgaWYgdGhlIHdjc2Z0aW1lKCkgZnVuY3Rpb24gaXMgbm90IGF2YWlsYWJsZS4KKy0gSXNzdWUgIzEzNDQ5IHNjaGVkLnNjaGVkdWxlci5ydW4oKSBtZXRob2QgaGFzIGEgbmV3ICJibG9ja2luZyIgcGFyYW1ldGVyIHdoaWNoCisgIHdoZW4gc2V0IHRvIEZhbHNlIG1ha2VzIHJ1bigpIGV4ZWN1dGUgdGhlIHNjaGVkdWxlZCBldmVudHMgZHVlIHRvIGV4cGlyZQorICBzb29uZXN0IChpZiBhbnkpIGFuZCB0aGVuIHJldHVybi4gIFBhdGNoIGJ5IEdpYW1wYW9sbyBSb2RvbMOgLgorCistIElzc3VlICM4Njg0IHNjaGVkLnNjaGVkdWxlciBjbGFzcyBjYW4gYmUgc2FmZWx5IHVzZWQgaW4gbXVsdGktdGhyZWFkZWQKKyAgZW52aXJvbm1lbnRzLiAgUGF0Y2ggYnkgSm9zaWFoIENhcmxzb24gYW5kIEdpYW1wYW9sbyBSb2RvbMOgLgorCistIEFsaWFzIHJlc291cmNlLmVycm9yIHRvIE9TRXJyb3IgYWxhIFBFUCAzMTUxLgorCistIElzc3VlICM1Njg5OiBBZGQgc3VwcG9ydCBmb3IgbHptYSBjb21wcmVzc2lvbiB0byB0aGUgdGFyZmlsZSBtb2R1bGUuCisKKy0gSXNzdWUgIzEzMjQ4OiBUdXJuIDMuMidzIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcgaW50byAzLjMncworICBEZXByZWNhdGlvbldhcm5pbmcuICBJdCBjb3ZlcnMgJ2NnaS5lc2NhcGUnLCAnaW1wb3J0bGliLmFiYy5QeUxvYWRlcicsCisgICdpbXBvcnRsaWIuYWJjLlB5UHljTG9hZGVyJywgJ25udHBsaWIuTk5UUC54Z3RpdGxlJywgJ25udHBsaWIuTk5UUC54cGF0aCcsCisgIGFuZCBwcml2YXRlIGF0dHJpYnV0ZXMgb2YgJ3NtdHBkLlNNVFBDaGFubmVsJy4KKworLSBJc3N1ZSAjNTkwNSwgIzEzNTYwOiB0aW1lLnN0cmZ0aW1lKCkgaXMgbm93IHVzaW5nIHRoZSBjdXJyZW50IGxvY2FsZQorICBlbmNvZGluZywgaW5zdGVhZCBvZiBVVEYtOCwgaWYgdGhlIHdjc2Z0aW1lKCkgZnVuY3Rpb24gaXMgbm90IGF2YWlsYWJsZS4KIAogLSBJc3N1ZSAjODY0MTogVXBkYXRlIElETEUgMyBzeW50YXggY29sb3JpbmcgdG8gcmVjb2duaXplIGIiLi4iIGFuZCBub3QgdSIuLiIuCiAgIFBhdGNoIGJ5IFRhbCBFaW5hdC4KIAorLSBJc3N1ZSAjMTM0NjQ6IEFkZCBhIHJlYWRpbnRvKCkgbWV0aG9kIHRvIGh0dHAuY2xpZW50LkhUVFBSZXNwb25zZS4gIFBhdGNoCisgIGJ5IEpvbiBLdWhuLgorCiAtIHRhcmZpbGUucHk6IENvcnJlY3RseSBkZXRlY3QgYnppcDIgY29tcHJlc3NlZCBzdHJlYW1zIHdpdGggYmxvY2tzaXplcwogICBvdGhlciB0aGFuIDkwMGsuCiAKIC0gSXNzdWUgIzEzNDM5OiBGaXggbWFueSBlcnJvcnMgaW4gdHVydGxlIGRvY3N0cmluZ3MuCiAKKy0gSXNzdWUgIzY3MTU6IEFkZCBhIG1vZHVsZSAnbHptYScgZm9yIGNvbXByZXNzaW9uIHVzaW5nIHRoZSBMWk1BIGFsZ29yaXRobS4KKyAgVGhhbmtzIHRvIFBlciDDmHl2aW5kIEthcmxzZW4gZm9yIHRoZSBpbml0aWFsIGltcGxlbWVudGF0aW9uLgorCiAtIElzc3VlICMxMzQ4NzogTWFrZSBpbnNwZWN0LmdldG1vZHVsZSByb2J1c3QgYWdhaW5zdCBjaGFuZ2VzIGRvbmUgdG8KICAgc3lzLm1vZHVsZXMgd2hpbGUgaXQgaXMgaXRlcmF0aW5nIG92ZXIgaXQuCiAKQEAgLTcyNCwxNSArMjAzMiwzMSBAQAogLSBJc3N1ZSAjMTM0NDQ6IFdoZW4gc3Rkb3V0IGhhcyBiZWVuIGNsb3NlZCBleHBsaWNpdGx5LCB3ZSBzaG91bGQgbm90IGF0dGVtcHQKICAgdG8gZmx1c2ggaXQgYXQgc2h1dGRvd24gYW5kIHByaW50IGFuIGVycm9yLgogCistIElzc3VlICMxMjU2NzogVGhlIGN1cnNlcyBtb2R1bGUgdXNlcyBVbmljb2RlIGZ1bmN0aW9ucyBmb3IgVW5pY29kZSBhcmd1bWVudHMKKyAgd2hlbiBpdCBpcyBsaW5rZWQgdG8gdGhlIG5jdXJzZXMgbGlicmFyeS4gSXQgZW5jb2RlcyBhbHNvIFVuaWNvZGUgc3RyaW5ncyB0bworICB0aGUgbG9jYWxlIGVuY29kaW5nIGluc3RlYWQgb2YgVVRGLTguCisKIC0gSXNzdWUgIzEyODU2OiBFbnN1cmUgY2hpbGQgcHJvY2Vzc2VzIGRvIG5vdCBpbmhlcml0IHRoZSBwYXJlbnQncyByYW5kb20KICAgc2VlZCBmb3IgZmlsZW5hbWUgZ2VuZXJhdGlvbiBpbiB0aGUgdGVtcGZpbGUgbW9kdWxlLiAgUGF0Y2ggYnkgQnJpYW4KICAgSGFycmluZy4KIAorLSBJc3N1ZSAjOTk1NzogU3Bvb2xlZFRlbXBvcmFyeUZpbGUudHJ1bmNhdGUoKSBub3cgYWNjZXB0cyBhbiBvcHRpb25hbCBzaXplCisgIHBhcmFtZXRlciwgYXMgb3RoZXIgZmlsZS1saWtlIG9iamVjdHMuICBQYXRjaCBieSBSeWFuIEtlbGx5LgorCiAtIElzc3VlICMxMzQ1ODogRml4IGEgbWVtb3J5IGxlYWsgaW4gdGhlIHNzbCBtb2R1bGUgd2hlbiBkZWNvZGluZyBhCiAgIGNlcnRpZmljYXRlIHdpdGggYSBzdWJqZWN0QWx0TmFtZS4gIFBhdGNoIGJ5IFJvYmVydCBYaWFvLgogCiAtIElzc3VlICMxMzQxNTogb3MudW5zZXRlbnYoKSBkb2Vzbid0IGlnbm9yZSBlcnJvcnMgYW55bW9yZS4KIAorLSBJc3N1ZSAjMTMyNDU6IHNjaGVkLnNjaGVkdWxlciBjbGFzcyBjb25zdHJ1Y3RvcidzIHRpbWVmdW5jIGFuZAorICBkZWxheWZ1bmN0IHBhcmFtZXRlcnMgYXJlIG5vdyBvcHRpb25hbC4KKyAgc2NoZWR1bGVyLmVudGVyIGFuZCBzY2hlZHVsZXIuZW50ZXJhYnMgbWV0aG9kcyBnYWluZWQgYSBuZXcga3dhcmdzIHBhcmFtZXRlci4KKyAgUGF0Y2ggY29udHJpYnV0ZWQgYnkgQ2hyaXMgQ2xhcmsuCisKKy0gSXNzdWUgIzEyMzI4OiBVbmRlciBXaW5kb3dzLCByZWZhY3RvciBoYW5kbGluZyBvZiBDdHJsLUMgZXZlbnRzIGFuZAorICBtYWtlIF9tdWx0aXByb2Nlc3Npbmcud2luMzIuV2FpdEZvck11bHRpcGxlT2JqZWN0cyBpbnRlcnJ1cHRpYmxlIHdoZW4KKyAgdGhlIHdhaXRfZmxhZyBwYXJhbWV0ZXIgaXMgZmFsc2UuICBQYXRjaCBieSBzYnQuCisKIC0gSXNzdWUgIzEzMzIyOiBGaXggQnVmZmVyZWRXcml0ZXIud3JpdGUoKSB0byBlbnN1cmUgdGhhdCBCbG9ja2luZ0lPRXJyb3IgaXMKICAgcmFpc2VkIHdoZW4gdGhlIHdyYXBwZWQgcmF3IGZpbGUgaXMgbm9uLWJsb2NraW5nIGFuZCB0aGUgd3JpdGUgd291bGQgYmxvY2suCiAgIFByZXZpb3VzIGNvZGUgYXNzdW1lZCB0aGF0IHRoZSByYXcgd3JpdGUoKSB3b3VsZCByYWlzZSBCbG9ja2luZ0lPRXJyb3IsIGJ1dApAQCAtNzQ1LDEzICsyMDY5LDI1IEBACiAgIG5vZGUgd2hlbiBpdCBpcyB0aGUgb25seSBjaGlsZCBvZiBhbiBlbGVtZW50LiAgSW5pdGlhbCBwYXRjaCBieSBEYW4KICAgS2VuaWdzYmVyZy4KIAorLSBJc3N1ZSAjMTMzNzQ6IFRoZSBXaW5kb3dzIGJ5dGVzIEFQSSBoYXMgYmVlbiBkZXByZWNhdGVkIGluIHRoZSBvcyBtb2R1bGUuIFVzZQorICBVbmljb2RlIGZpbGVuYW1lcyBpbnN0ZWFkIG9mIGJ5dGVzIGZpbGVuYW1lcyB0byBub3QgZGVwZW5kIG9uIHRoZSBBTlNJIGNvZGUKKyAgcGFnZSBhbnltb3JlIGFuZCB0byBzdXBwb3J0IGFueSBmaWxlbmFtZS4KKworLSBJc3N1ZSAjMTMyOTc6IFVzZSBieXRlcyB0eXBlIHRvIHNlbmQgYW5kIHJlY2VpdmUgYmluYXJ5IGRhdGEgdGhyb3VnaCBYTUxSUEMuCisKKy0gSXNzdWUgIzYzOTc6IFN1cHBvcnQgIi9kZXYvcG9sbCIgcG9sbGluZyBvYmplY3RzIGluIHNlbGVjdCBtb2R1bGUsCisgIHVuZGVyIFNvbGFyaXMgJiBkZXJpdmF0aXZlcy4KKwogLSBJc3N1ZXMgIzE3NDU3NjEsICM3NTU2NzAsICMxMzM1NywgIzEyNjI5LCAjMTIwMDMxMzogSFRNTFBhcnNlciBub3cgY29ycmVjdGx5CiAgIGhhbmRsZXMgbm9uLXZhbGlkIGF0dHJpYnV0ZXMsIGluY2x1ZGluZyBhZGphY2VudCBhbmQgdW5xdW90ZWQgYXR0cmlidXRlcy4KIAotLSBJc3N1ZSAjMTMxOTM6IEZpeCBkaXN0dXRpbHMuZmlsZWxpc3QuRmlsZUxpc3QgdW5kZXIgV2luZG93cy4KKy0gSXNzdWUgIzEzMTkzOiBGaXggZGlzdHV0aWxzLmZpbGVsaXN0LkZpbGVMaXN0IGFuZCBwYWNrYWdpbmcubWFuaWZlc3QuTWFuaWZlc3QKKyAgdW5kZXIgV2luZG93cy4KIAogLSBJc3N1ZSAjMTMzODQ6IFJlbW92ZSB1bm5lY2Vzc2FyeSBfX2Z1dHVyZV9fIGltcG9ydCBpbiBMaWIvcmFuZG9tLnB5CiAKKy0gSXNzdWUgIzEzMTQ5OiBTcGVlZCB1cCBhcHBlbmQtb25seSBTdHJpbmdJTyBvYmplY3RzLgorCiAtIElzc3VlICMxMzM3MzogbXVsdGlwcm9jZXNzaW5nLlF1ZXVlLmdldCgpIGNvdWxkIHNvbWV0aW1lcyBibG9jayBpbmRlZmluaXRlbHkKICAgd2hlbiBjYWxsZWQgd2l0aCBhIHRpbWVvdXQuICBQYXRjaCBieSBBcm5hdWQgWXNtYWwuCiAKQEAgLTc2NywxMSArMjEwMywyMCBAQAogLSBJc3N1ZSAjMTMzMzk6IEZpeCBjb21waWxlIGVycm9yIGluIHBvc2l4bW9kdWxlLmMgZHVlIHRvIG1pc3Npbmcgc2VtaWNvbG9uLgogICBUaGFua3MgdG8gUm9iZXJ0IFhpYW8uCiAKKy0gQnl0ZSBjb21waWxhdGlvbiBpbiBwYWNrYWdpbmcgaXMgbm93IGlzb2xhdGVkIGZyb20gdGhlIGNhbGxpbmcgUHl0aG9uIC1CIG9yCisgIC1PIG9wdGlvbnMsIGluc3RlYWQgb2YgYmVpbmcgZGlzYWxsb3dlZCB1bmRlciAtQiBvciBidWdneSB1bmRlciAtTy4KKwogLSBJc3N1ZSAjMTA1NzA6IGN1cnNlcy5wdXRwKCkgYW5kIGN1cnNlcy50cGFybSgpIGFyZSBub3cgZXhwZWN0aW5nIGEgYnl0ZQogICBzdHJpbmcsIGluc3RlYWQgb2YgYSBVbmljb2RlIHN0cmluZy4KIAorLSBJc3N1ZSAjMTMyOTU6IGh0dHAuc2VydmVyIG5vdyBwcm9kdWNlcyB2YWxpZCBIVE1MIDQuMDEgc3RyaWN0LgorCiAtIElzc3VlICMyODkyOiBwcmVzZXJ2ZSBpdGVycGFyc2UgZXZlbnRzIGluIGNhc2Ugb2YgU3ludGF4RXJyb3IuCiAKKy0gSXNzdWUgIzEzMjg3OiB1cmxsaWIucmVxdWVzdCBhbmQgdXJsbGliLmVycm9yIG5vdyBjb250YWlucyBhbiBfX2FsbF9fCisgIGF0dHJpYnV0ZSB0byBleHBvc2Ugb25seSByZWxldmFudCBjbGFzc2VzIGFuZCBmdW5jdGlvbnMuICBQYXRjaCBieSBGbG9yZW50CisgIFhpY2x1bmEuCisKIC0gSXNzdWUgIzY3MDY2NDogRml4IEhUTUxQYXJzZXIgdG8gY29ycmVjdGx5IGhhbmRsZSB0aGUgY29udGVudCBvZgogICBgYDxzY3JpcHQ+Li4uPC9zY3JpcHQ+YGAgYW5kIGBgPHN0eWxlPi4uLjwvc3R5bGU+YGAuCiAKQEAgLTc4MSw2ICsyMTI2LDkgQEAKIC0gSXNzdWUgIzEzMjk2OiBGaXggSURMRSB0byBjbGVhciBjb21waWxlIF9fZnV0dXJlX18gZmxhZ3Mgb24gc2hlbGwgcmVzdGFydC4KICAgKFBhdGNoIGJ5IFJvZ2VyIFNlcnd5KQogCistIEZpeCB0aGUgeG1scnBjLmNsaWVudCB1c2VyIGFnZW50IHRvIHJldHVybiBzb21ldGhpbmcgc2ltaWxhciB0bworICB1cmxsaWIucmVxdWVzdCB1c2VyIGFnZW50OiAiUHl0aG9uLXhtbHJwYy8zLjMiLgorCiAtIElzc3VlICMxMzI5MzogQmV0dGVyIGVycm9yIG1lc3NhZ2Ugd2hlbiB0cnlpbmcgdG8gbWFyc2hhbCBieXRlcyB1c2luZwogICB4bWxycGMuY2xpZW50LgogCkBAIC03OTEsNTEgKzIxMzksODEgQEAKIC0gSXNzdWUgIzEzMjczOiBmaXggYSBidWcgdGhhdCBwcmV2ZW50ZWQgSFRNTFBhcnNlciB0byBwcm9wZXJseSBkZXRlY3Qgc29tZQogICB0YWdzIHdoZW4gc3RyaWN0PUZhbHNlLgogCistIElzc3VlICMxMTE4MzogQWRkIGZpbmVyLWdyYWluZWQgZXhjZXB0aW9ucyB0byB0aGUgc3NsIG1vZHVsZSwgc28gdGhhdAorICB5b3UgZG9uJ3QgaGF2ZSB0byBpbnNwZWN0IHRoZSBleGNlcHRpb24ncyBhdHRyaWJ1dGVzIGluIHRoZSBjb21tb24gY2FzZS4KKworLSBJc3N1ZSAjMTMyMTY6IEFkZCBjcDY1MDAxIGNvZGVjLCB0aGUgV2luZG93cyBVVEYtOCAoQ1BfVVRGOCkuCisKKy0gSXNzdWUgIzEzMjI2OiBBZGQgUlRMRF94eHggY29uc3RhbnRzIHRvIHRoZSBvcyBtb2R1bGUuIFRoZXNlIGNvbnN0YW50cyBjYW4gYmUKKyAgdXNlZCB3aXRoIHN5cy5zZXRkbG9wZW5mbGFncygpLgorCistIElzc3VlICMxMDI3ODogQWRkIGNsb2NrX2dldHJlcygpLCBjbG9ja19nZXR0aW1lKCkgYW5kIENMT0NLX3h4eCBjb25zdGFudHMgdG8KKyAgdGhlIHRpbWUgbW9kdWxlLiB0aW1lLmNsb2NrX2dldHRpbWUodGltZS5DTE9DS19NT05PVE9OSUMpIHByb3ZpZGVzIGEKKyAgbW9ub3RvbmljIGNsb2NrCisKIC0gSXNzdWUgIzEwMzMyOiBtdWx0aXByb2Nlc3Npbmc6IGZpeCBhIHJhY2UgY29uZGl0aW9uIHdoZW4gYSBQb29sIGlzIGNsb3NlZAogICBiZWZvcmUgYWxsIHRhc2tzIGhhdmUgY29tcGxldGVkLgogCiAtIElzc3VlICMxMzI1NTogd3JvbmcgZG9jc3RyaW5ncyBpbiBhcnJheSBtb2R1bGUuCiAKKy0gSXNzdWUgIzg1NDA6IFJlbW92ZSBkZXByZWNhdGVkIENvbnRleHQuX2NsYW1wIGF0dHJpYnV0ZSBpbiBEZWNpbWFsIG1vZHVsZS4KKworLSBJc3N1ZSAjMTMyMzU6IEFkZGVkIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcgdG8gd2FybigpIG1ldGhvZCBhbmQgZnVuY3Rpb24uCisKIC0gSXNzdWUgIzkxNjg6IG5vdyBzbXRwZCBpcyBhYmxlIHRvIGJpbmQgcHJpdmlsZWdlZCBwb3J0LgogCiAtIElzc3VlICMxMjUyOTogZml4IGNnaS5wYXJzZV9oZWFkZXIgaXNzdWUgb24gc3RyaW5ncyB3aXRoIGRvdWJsZS1xdW90ZXMgYW5kCiAgIHNlbWljb2xvbnMgdG9nZXRoZXIuIFBhdGNoIGJ5IEJlbiBEYXJuZWxsIGFuZCBQZXRyaSBMZWh0aW5lbi4KIAotLSBJc3N1ZSAjMTI0NDg6IHNtdHBsaWIgbm93IGZsdXNoZXMgc3Rkb3V0IHdoaWxlIHJ1bm5pbmcgYGBweXRob24gLW0gc210cGxpYmBgCi0gIGluIG9yZGVyIHRvIGRpc3BsYXkgdGhlIHByb21wdCBjb3JyZWN0bHkuCistIElzc3VlICMxMzIyNzogZnVuY3Rvb2xzLmxydV9jYWNoZSgpIG5vdyBoYXMgYSBvcHRpb24gdG8gZGlzdGluZ3Vpc2gKKyAgY2FsbHMgd2l0aCBkaWZmZXJlbnQgYXJndW1lbnQgdHlwZXMuCiAKIC0gSXNzdWUgIzYwOTA6IHppcGZpbGUgcmFpc2VzIGEgVmFsdWVFcnJvciB3aGVuIGEgZG9jdW1lbnQgd2l0aCBhIHRpbWVzdGFtcAogICBlYXJsaWVyIHRoYW4gMTk4MCBpcyBwcm92aWRlZC4gUGF0Y2ggY29udHJpYnV0ZWQgYnkgUGV0cmkgTGVodGluZW4uCiAKKy0gSXNzdWUgIzEzMTUwOiBzeXNjb25maWcgbm8gbG9uZ2VyIHBhcnNlcyB0aGUgTWFrZWZpbGUgYW5kIGNvbmZpZy5oIGZpbGVzCisgIHdoZW4gaW1wb3J0ZWQsIGluc3RlYWQgZG9pbmcgaXQgYXQgYnVpbGQgdGltZS4gIFRoaXMgbWFrZXMgaW1wb3J0aW5nCisgIHN5c2NvbmZpZyBmYXN0ZXIgYW5kIHJlZHVjZXMgUHl0aG9uIHN0YXJ0dXAgdGltZSBieSAyMCUuCisKKy0gSXNzdWUgIzEyNDQ4OiBzbXRwbGliIG5vdyBmbHVzaGVzIHN0ZG91dCB3aGlsZSBydW5uaW5nIGBgcHl0aG9uIC1tIHNtdHBsaWJgYAorICBpbiBvcmRlciB0byBkaXNwbGF5IHRoZSBwcm9tcHQgY29ycmVjdGx5LgorCistIElzc3VlICMxMjQ1NDogVGhlIG1haWxib3ggbW9kdWxlIGlzIG5vdyB1c2luZyBBU0NJSSwgaW5zdGVhZCBvZiB0aGUgbG9jYWxlCisgIGVuY29kaW5nLCB0byByZWFkIGFuZCB3cml0ZSBNSCBtYWlsYm94ZXMgKC5taF9zZXF1ZW5jZXMgZmlsZXMpLgorCiAtIElzc3VlICMxMzE5NDogemxpYi5jb21wcmVzc29iaigpLmNvcHkoKSBhbmQgemxpYi5kZWNvbXByZXNzb2JqKCkuY29weSgpIGFyZQogICBub3cgYXZhaWxhYmxlIG9uIFdpbmRvd3MuCiAKKy0gaXNzdWUgIzE2NzMwMDc6IHVybGxpYjIgIHRvIHN1cHBvcnQgSEVBRCByZXF1ZXN0IHZpYSBuZXcgbWV0aG9kIGFyZ3VtZW50LgorICBQYXRjaCBjb250cmlidXRpb25zIGJ5IERhdmlkIFN0YW5laywgUGF0cmljayBXZXN0ZXJob2ZmIGFuZCBFemlvIE1lbG90dGkuCisKKy0gSXNzdWUgIzEyMzg2OiBwYWNrYWdpbmcgZG9lcyBub3QgZmFpbCBhbnltb3JlIHdoZW4gd3JpdGluZyB0aGUgUkVTT1VSQ0VTCisgIGZpbGUuCisKIC0gSXNzdWUgIzEzMTU4OiBGaXggZGVjb2RpbmcgYW5kIGVuY29kaW5nIG9mIEdOVSB0YXIgc3BlY2lmaWMgYmFzZS0yNTYgbnVtYmVyCiAgIGZpZWxkcyBpbiB0YXJmaWxlLgogCi0tIElzc3VlICMxMzE3NzogIEZ1bmN0b29scyBscnVfY2FjaGUoKSBubyBsb25nZXIgY2FsbHMgdGhlIG9yaWdpbmFsIGZ1bmN0aW9uCi0gIGluc2lkZSBhbiBleGNlcHRpb24gaGFuZGxlci4gIFRoaXMgbWFrZXMgdHJhY2ViYWNrcyBlYXNpZXIgdG8gcmVhZCBiZWNhdXNlCi0gIGNoYWluZWQgZXhjZXB0aW9ucyBhcmUgYXZvaWRlZC4KLQogLSBJc3N1ZSAjMTMwMjU6IG1pbWV0eXBlcyBpcyBub3cgcmVhZGluZyBNSU1FIHR5cGVzIHVzaW5nIHRoZSBVVEYtOCBlbmNvZGluZywKICAgaW5zdGVhZCBvZiB0aGUgbG9jYWxlIGVuY29kaW5nLgogCiAtIElzc3VlICMxMDY1MzogT24gV2luZG93cywgdXNlIHN0cmZ0aW1lKCkgaW5zdGVhZCBvZiB3Y3NmdGltZSgpIGJlY2F1c2UKICAgd2NzZnRpbWUoKSBkb2Vzbid0IGZvcm1hdCB0aW1lIHpvbmUgY29ycmVjdGx5LgogCistIElzc3VlICMxMzE1MDogVGhlIHRva2VuaXplIG1vZHVsZSBkb2Vzbid0IGNvbXBpbGUgbGFyZ2UgcmVndWxhciBleHByZXNzaW9ucworICBhdCBzdGFydHVwIGFueW1vcmUuCisKIC0gSXNzdWUgIzExMTcxOiBGaXggZGlzdHV0aWxzLnN5c2NvbmZpZy5nZXRfbWFrZWZpbGVfZmlsZW5hbWUgd2hlbiBQeXRob24gd2FzCiAgIGNvbmZpZ3VyZWQgd2l0aCBkaWZmZXJlbnQgcHJlZml4IGFuZCBleGVjLXByZWZpeC4KIAotLSBJc3N1ZSAjMTEyNTQ6IFRlYWNoIGRpc3R1dGlscyB0byBjb21waWxlIC5weWMgYW5kIC5weW8gZmlsZXMgaW4KKy0gSXNzdWUgIzExMjU0OiBUZWFjaCBkaXN0dXRpbHMgYW5kIHBhY2thZ2luZyB0byBjb21waWxlIC5weWMgYW5kIC5weW8gZmlsZXMgaW4KICAgUEVQIDMxNDctY29tcGxpYW50IF9fcHljYWNoZV9fIGRpcmVjdG9yaWVzLgogCi0tIElzc3VlICMxMTI1MDogQmFjayBwb3J0IGZpeCBmcm9tIDMuMyBicmFuY2gsIHNvIHRoYXQgMnRvMyBjYW4gaGFuZGxlIGZpbGVzCi0gIHdpdGggbGluZSBmZWVkcy4gIFRoaXMgd2FzIHBvcnRlZCBmcm9tIHRoZSBzYW5kYm94IHRvIHRoZSAzLjMgYnJhbmNoLCBidXQKLSAgZGlkbid0IG1ha2UgaXQgaW50byAzLjIuCi0KIC0gSXNzdWUgIzczNjc6IEZpeCBwa2d1dGlsLndhbGtfcGF0aHMgdG8gc2tpcCBkaXJlY3RvcmllcyB3aG9zZQogICBjb250ZW50cyBjYW5ub3QgYmUgcmVhZC4KIAorLSBJc3N1ZSAjMzE2MzogVGhlIHN0cnVjdCBtb2R1bGUgZ2V0cyBuZXcgZm9ybWF0IGNoYXJhY3RlcnMgJ24nIGFuZCAnTicKKyAgc3VwcG9ydGluZyBDIGludGVnZXIgdHlwZXMgYGBzc2l6ZV90YGAgYW5kIGBgc2l6ZV90YGAsIHJlc3BlY3RpdmVseS4KKwogLSBJc3N1ZSAjMTMwOTk6IEZpeCBzcWxpdGUzLkN1cnNvci5sYXN0cm93aWQgdW5kZXIgYSBUdXJraXNoIGxvY2FsZS4KICAgUmVwb3J0ZWQgYW5kIGRpYWdub3NlZCBieSBUaG9tYXMgS2x1eXZlci4KIApAQCAtODU2LDEzICsyMjM0LDI5IEBACiAgIHdpdGggaW52YWxpZCBoZXggZXNjYXBlIHNlcXVlbmNlcywgbGlrZSBiJ1x4MCcuCiAgIChPcmlnaW5hbCBwYXRjaCBieSBDbGF1ZGl1IFBvcGEuKQogCi0tIElzc3VlICM4OTMzOiBkaXN0dXRpbHMnIFBLRy1JTkZPIGZpbGVzIHdpbGwgbm93IGNvcnJlY3RseSByZXBvcnQKLSAgTWV0YWRhdGEtVmVyc2lvbjogMS4xIGluc3RlYWQgb2YgMS4wIGlmIGEgQ2xhc3NpZmllciBvciBEb3dubG9hZC1VUkwgZmllbGQgaXMKLSAgcHJlc2VudC4KKy0gSXNzdWUgIzEyMzA2OiBFeHBvc2UgdGhlIHJ1bnRpbWUgdmVyc2lvbiBvZiB0aGUgemxpYiBDIGxpYnJhcnkgYXMgYSBjb25zdGFudCwKKyAgWkxJQl9SVU5USU1FX1ZFUlNJT04sIGluIHRoZSB6bGliIG1vZHVsZS4gUGF0Y2ggYnkgVG9yc3RlbiBMYW5kc2Nob2ZmLgogCi0tIElzc3VlICM5NTYxOiBkaXN0dXRpbHMgbm93IHJlYWRzIGFuZCB3cml0ZXMgZWdnLWluZm8gZmlsZXMgdXNpbmcgVVRGLTgsCistIElzc3VlICMxMjk1OTogQWRkIGNvbGxlY3Rpb25zLkNoYWluTWFwIHRvIGNvbGxlY3Rpb25zLl9fYWxsX18uCisKKy0gSXNzdWUgIzg5MzM6IGRpc3R1dGlscycgUEtHLUlORk8gZmlsZXMgYW5kIHBhY2thZ2luZydzIE1FVEFEQVRBIGZpbGVzIHdpbGwKKyAgbm93IGNvcnJlY3RseSByZXBvcnQgTWV0YWRhdGEtVmVyc2lvbjogMS4xIGluc3RlYWQgb2YgMS4wIGlmIGEgQ2xhc3NpZmllciBvcgorICBEb3dubG9hZC1VUkwgZmllbGQgaXMgcHJlc2VudC4KKworLSBJc3N1ZSAjMTI1Njc6IEFkZCBjdXJzZXMudW5nZXRfd2NoKCkgZnVuY3Rpb24uIFB1c2ggYSBjaGFyYWN0ZXIgc28gdGhlIG5leHQKKyAgZ2V0X3djaCgpIHdpbGwgcmV0dXJuIGl0LgorCistIElzc3VlICM5NTYxOiBkaXN0dXRpbHMgYW5kIHBhY2thZ2luZyBub3cgd3JpdGVzIGVnZy1pbmZvIGZpbGVzIHVzaW5nIFVURi04LAogICBpbnN0ZWFkIG9mIHRoZSBsb2NhbGUgZW5jb2RpbmcuCiAKKy0gSXNzdWUgIzgyODY6IFRoZSBkaXN0dXRpbHMgY29tbWFuZCBzZGlzdCB3aWxsIHByaW50IGEgd2FybmluZyBtZXNzYWdlIGluc3RlYWQKKyAgb2YgY3Jhc2hpbmcgd2hlbiBhbiBpbnZhbGlkIHBhdGggaXMgZ2l2ZW4gaW4gdGhlIG1hbmlmZXN0IHRlbXBsYXRlLgorCistIElzc3VlICMxMjg0MTogdGFyZmlsZSB1bm5lY2Vzc2FyaWx5IGNoZWNrZWQgdGhlIGV4aXN0ZW5jZSBvZiBudW1lcmljYWwgdXNlcgorICBhbmQgZ3JvdXAgaWRzIG9uIGV4dHJhY3Rpb24uIElmIG9uZSBvZiB0aGVtIGRpZCBub3QgZXhpc3QgdGhlIHJlc3BlY3RpdmUgaWQKKyAgb2YgdGhlIGN1cnJlbnQgdXNlciAoaS5lLiByb290KSB3YXMgdXNlZCBmb3IgdGhlIGZpbGUgYW5kIG93bmVyc2hpcAorICBpbmZvcm1hdGlvbiB3YXMgbG9zdC4KKwogLSBJc3N1ZSAjMTI4ODg6IEZpeCBhIGJ1ZyBpbiBIVE1MUGFyc2VyLnVuZXNjYXBlIHRoYXQgcHJldmVudGVkIGl0IHRvIGVzY2FwZQogICBtb3JlIHRoYW4gMTI4IGVudGl0aWVzLiAgUGF0Y2ggYnkgUGV0ZXIgT3R0ZW4uCiAKQEAgLTg3MCw2ICsyMjY0LDE2IEBACiAKIC0gSXNzdWUgIzEyNjM2OiBJRExFIHJlYWRzIHRoZSBjb2RpbmcgY29va2llIHdoZW4gZXhlY3V0aW5nIGEgUHl0aG9uIHNjcmlwdC4KIAorLSBJc3N1ZSAjMTI0OTQ6IE9uIGVycm9yLCBjYWxsKCksIGNoZWNrX2NhbGwoKSwgY2hlY2tfb3V0cHV0KCkgYW5kCisgIGdldHN0YXR1c291dHB1dCgpIGZ1bmN0aW9ucyBvZiB0aGUgc3VicHJvY2VzcyBtb2R1bGUgbm93IGtpbGwgdGhlIHByb2Nlc3MsCisgIHJlYWQgaXRzIHN0YXR1cyAodG8gYXZvaWQgem9tYmlzKSBhbmQgY2xvc2UgcGlwZXMuCisKKy0gSXNzdWUgIzEyNzIwOiBFeHBvc2UgbG93LWxldmVsIExpbnV4IGV4dGVuZGVkIGZpbGUgYXR0cmlidXRlIGZ1bmN0aW9ucyBpbiBvcy4KKworLSBJc3N1ZSAjMTA5NDY6IFRoZSBkaXN0dXRpbHMgY29tbWFuZHMgYmRpc3RfZHVtYiwgYmRpc3Rfd2luaW5zdCBhbmQgYmRpc3RfbXNpCisgIG5vdyByZXNwZWN0IGEgLS1za2lwLWJ1aWxkIG9wdGlvbiBnaXZlbiB0byBiZGlzdC4gIFRoZSBwYWNrYWdpbmcgY29tbWFuZHMKKyAgd2VyZSBmaXhlZCB0b28uCisKIC0gSXNzdWUgIzEyODQ3OiBGaXggYSBjcmFzaCB3aXRoIG5lZ2F0aXZlIFBVVCBhbmQgTE9OR19CSU5QVVQgYXJndW1lbnRzIGluCiAgIHRoZSBDIHBpY2tsZSBpbXBsZW1lbnRhdGlvbi4KIApAQCAtODc5LDIwMSArMjI4Myw0NyBAQAogLSBJc3N1ZSAjMTIyODc6IEZpeCBhIHN0YWNrIGNvcnJ1cHRpb24gaW4gb3NzYXVkaW9kZXYgbW9kdWxlIHdoZW4gdGhlIEZEIGlzCiAgIGdyZWF0ZXIgdGhhbiBGRF9TRVRTSVpFLgogCistIElzc3VlICMxMjgzOTogRml4IGNyYXNoIGluIHpsaWIgbW9kdWxlIGR1ZSB0byB2ZXJzaW9uIG1pc21hdGNoLgorICBGaXggYnkgUmljaGFyZCBNLiBUZXcuCisKKy0gSXNzdWUgIzk5MjM6IFRoZSBtYWlsY2FwIG1vZHVsZSBub3cgY29ycmVjdGx5IHVzZXMgdGhlIHBsYXRmb3JtIHBhdGgKKyAgc2VwYXJhdG9yIGZvciB0aGUgTUFJTENBUCBlbnZpcm9ubWVudCB2YXJpYWJsZSBvbiBub24tUE9TSVggcGxhdGZvcm1zLgorCistIElzc3VlICMxMjgzNTogRm9sbG93IHVwIHRvICM2NTYwIHRoYXQgdW5jb25kaXRpb25hbGx5IHByZXZlbnRzIHVzZSBvZiB0aGUKKyAgdW5lbmNyeXB0ZWQgc2VuZG1zZy9yZWN2bXNnIEFQSXMgb24gU1NMIHdyYXBwZWQgc29ja2V0cy4gUGF0Y2ggYnkgRGF2aWQKKyAgV2F0c29uLgorCistIElzc3VlICMxMjgwMzogU1NMQ29udGV4dC5sb2FkX2NlcnRfY2hhaW4oKSBub3cgYWNjZXB0cyBhIHBhc3N3b3JkIGFyZ3VtZW50CisgIHRvIGJlIHVzZWQgaWYgdGhlIHByaXZhdGUga2V5IGlzIGVuY3J5cHRlZC4gIFBhdGNoIGJ5IEFkYW0gU2ltcGtpbnMuCisKIC0gSXNzdWUgIzExNjU3OiBGaXggc2VuZGluZyBmaWxlIGRlc2NyaXB0b3JzIG92ZXIgMjU1IG92ZXIgYSBtdWx0aXByb2Nlc3NpbmcKICAgUGlwZS4KIAotLSBJc3N1ZSAjMTMwMDc6IHdoaWNoZGIgc2hvdWxkIHJlY29nbml6ZSBnZGJtIDEuOSBtYWdpYyBudW1iZXJzLgorLSBJc3N1ZSAjMTI4MTE6IHRhYm5hbm55LmNoZWNrKCkgbm93IHByb21wdGx5IGNsb3NlcyBjaGVja2VkIGZpbGVzLiBQYXRjaCBieQorICBBbnRob255IEJyaWdncy4KKworLSBJc3N1ZSAjNjU2MDogVGhlIHNlbmRtc2cvcmVjdm1zZyBBUEkgaXMgbm93IGV4cG9zZWQgYnkgdGhlIHNvY2tldCBtb2R1bGUKKyAgd2hlbiBwcm92aWRlZCBieSB0aGUgdW5kZXJseWluZyBwbGF0Zm9ybSwgc3VwcG9ydGluZyBwcm9jZXNzaW5nIG9mCisgIGFuY2lsbGFyeSBkYXRhIGluIHB1cmUgUHl0aG9uIGNvZGUuIFBhdGNoIGJ5IERhdmlkIFdhdHNvbiBhbmQgSGVpa28gV3VuZHJhbS4KKworLSBJc3N1ZSAjMTIzMjY6IE9uIExpbnV4LCBzeXMucGxhdGZvcm0gZG9lc24ndCBjb250YWluIHRoZSBtYWpvciB2ZXJzaW9uCisgIGFueW1vcmUuIEl0IGlzIG5vdyBhbHdheXMgJ2xpbnV4JywgaW5zdGVhZCBvZiAnbGludXgyJyBvciAnbGludXgzJyBkZXBlbmRpbmcKKyAgb24gdGhlIExpbnV4IHZlcnNpb24gdXNlZCB0byBidWlsZCBQeXRob24uCiAKIC0gSXNzdWUgIzEyMjEzOiBGaXggYSBidWZmZXJpbmcgYnVnIHdpdGggaW50ZXJsZWF2ZWQgcmVhZHMgYW5kIHdyaXRlcyB0aGF0CiAgIGNvdWxkIGFwcGVhciBvbiBCdWZmZXJlZFJhbmRvbSBzdHJlYW1zLgogCistIElzc3VlICMxMjc3ODogUmVkdWNlIG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIEpTT04tZW5jb2RpbmcgYSBsYXJnZQorICBjb250YWluZXIgb2YgbWFueSBzbWFsbCBvYmplY3RzLgorCiAtIElzc3VlICMxMjY1MDogRml4IGEgcmFjZSBjb25kaXRpb24gd2hlcmUgYSBzdWJwcm9jZXNzLlBvcGVuIGNvdWxkIGxlYWsKICAgcmVzb3VyY2VzIChGRC96b21iaWUpIHdoZW4ga2lsbGVkIGF0IHRoZSB3cm9uZyB0aW1lLgogCi0tIElzc3VlICMxMDg2MDogaHR0cC5jbGllbnQgbm93IGNvcnJlY3RseSBoYW5kbGVzIGFuIGVtcHR5IHBvcnQgYWZ0ZXIgcG9ydAotICBkZWxpbWl0ZXIgaW4gVVJMcy4KKy0gSXNzdWUgIzEyNzQ0OiBGaXggaW5lZmZpY2llbnQgcmVwcmVzZW50YXRpb24gb2YgaW50ZWdlcnMgYmV0d2VlbiAyKiozMSBhbmQKKyAgMioqNjMgb24gc3lzdGVtcyB3aXRoIGEgNjQtYml0IEMgImxvbmciLgogCi1CdWlsZAotLS0tLS0KLQotLSBJc3N1ZSAjNjgwNzogUnVuIG1zaXN1cHBvcnQubWFrIGVhcmxpZXIuCi0KLS0gSXNzdWUgIzEwNTgwOiBNaW5vciBncmFtbWFyIGNoYW5nZSBpbiBXaW5kb3dzIGluc3RhbGxlci4KLQotLSBJc3N1ZSAjMTMzMjY6IENsZWFuIF9fcHljYWNoZV9fIGRpcmVjdG9yaWVzIGNvcnJlY3RseSBvbiBPcGVuQlNELgotCi1Ub29scy9EZW1vcwotLS0tLS0tLS0tLS0KLQotLSBJc3N1ZSAjMTQwNTM6IHBhdGNoY2hlY2sucHkgKCJtYWtlIHBhdGNoY2hlY2siKSBub3cgd29ya3Mgd2l0aCBNUSBwYXRjaGVzLgotICBQYXRjaCBieSBGcmFuY2lzY28gTWFydMOtbiBCcnVndcOpLgotCi0tIElzc3VlICMxMzkzMDogMnRvMyBpcyBub3cgYWJsZSB0byB3cml0ZSBpdHMgY29udmVydGVkIG91dHB1dCBmaWxlcyB0byBhbm90aGVyCi0gIGRpcmVjdG9yeSB0cmVlIGFzIHdlbGwgYXMgY29weWluZyB1bmNoYW5nZWQgZmlsZXMgYW5kIGFsdGVyaW5nIHRoZSBmaWxlCi0gIHN1ZmZpeC4gIFNlZSBpdHMgbmV3IC1vLCAtVyBhbmQgLS1hZGQtc3VmZml4IG9wdGlvbnMuICBUaGlzIG1ha2VzIGl0IG1vcmUKLSAgdXNlZnVsIGluIG1hbnkgYXV0b21hdGVkIGNvZGUgdHJhbnNsYXRpb24gd29ya2Zsb3dzLgotCi0tIElzc3VlICMxMzYyODogcHl0aG9uLWdkYi5weSBpcyBub3cgYWJsZSB0byByZXRyaWV2ZSBtb3JlIGZyYW1lcyBpbiB0aGUgUHl0aG9uCi0gIHRyYWNlYmFjayBpZiBQeXRob24gaXMgb3B0aW1pemVkLgotCi1UZXN0cwotLS0tLS0KLQotLSBJc3N1ZSAjMTE2ODk6IEZpeCBhIHZhcmlhYmxlIHNjb3BpbmcgZXJyb3IgaW4gYW4gc3FsaXRlMyB0ZXN0Ci0KLS0gSXNzdWUgIzEzNzg2OiBSZW1vdmUgdW5pbXBsZW1lbnRlZCAndHJhY2UnIGxvbmcgb3B0aW9uIGZyb20gcmVncnRlc3QucHkuCi0KLS0gSXNzdWUgIzEzNzI1OiBGaXggcmVncnRlc3QgdG8gcmVjb2duaXplIHRoZSBkb2N1bWVudGVkIC1kIGZsYWcuCi0gIFBhdGNoIGJ5IEVybm8gVHVraWEuCi0KLS0gSXNzdWUgIzEzMzA0OiBTa2lwIHRlc3QgY2FzZSBpZiB1c2VyIHNpdGUtcGFja2FnZXMgZGlzYWJsZWQgKC1zIG9yCi0gIFBZVEhPTk5PVVNFUlNJVEUpLiAgKFBhdGNoIGJ5IENhcmwgTWV5ZXIpCi0KLS0gSXNzdWUgIzEzMjE4OiBGaXggdGVzdF9zc2wgZmFpbHVyZXMgb24gRGViaWFuL1VidW50dS4KLQotLSBJc3N1ZSAjMTI4MjE6IEZpeCB0ZXN0X2ZjbnRsIGZhaWx1cmVzIG9uIE9wZW5CU0QgNS4KLQotLSBSZS1lbmFibGUgbGliMnRvMydzIHRlc3RfcGFyc2VyLnB5IHRlc3RzLCB0aG91Z2ggd2l0aCBhbiBleHBlY3RlZCBmYWlsdXJlCi0gIChzZWUgaXNzdWUgMTMxMjUpLgotCi1FeHRlbnNpb24gTW9kdWxlcwotLS0tLS0tLS0tLS0tLS0tLS0KLQotLSBJc3N1ZSAjMTM4NDA6IFRoZSBlcnJvciBtZXNzYWdlIHByb2R1Y2VkIGJ5IGN0eXBlcy5jcmVhdGVfc3RyaW5nX2J1ZmZlcgotICB3aGVuIGdpdmVuIGEgVW5pY29kZSBzdHJpbmcgaGFzIGJlZW4gZml4ZWQuCi0KLS0gSXNzdWUgIzk5NzU6IHNvY2tldDogRml4IGluY29ycmVjdCB1c2Ugb2YgZmxvd2luZm8gYW5kIHNjb3BlX2lkLiBQYXRjaCBieQotICBWaWxtb3MgTmViZWhhai4KLQotLSBJc3N1ZSAjMTMxNTk6IEZpbGVJTyBhbmQgQloyRmlsZSBub3cgdXNlIGEgbGluZWFyLXRpbWUgYnVmZmVyIGdyb3d0aAotICBzdHJhdGVneSBpbnN0ZWFkIG9mIGEgcXVhZHJhdGljLXRpbWUgb25lLgotCi0tIElzc3VlICMxMzA3MDogRml4IGEgY3Jhc2ggd2hlbiBhIFRleHRJT1dyYXBwZXIgY2F1Z2h0IGluIGEgcmVmZXJlbmNlIGN5Y2xlCi0gIHdvdWxkIGJlIGZpbmFsaXplZCBhZnRlciB0aGUgcmVmZXJlbmNlIHRvIGl0cyB1bmRlcmx5aW5nIEJ1ZmZlcmVkUldQYWlyJ3MKLSAgd3JpdGVyIGdvdCBjbGVhcmVkIGJ5IHRoZSBHQy4KLQotLSBJc3N1ZSAjMTI4ODE6IGN0eXBlczogRml4IHNlZ2ZhdWx0IHdpdGggbGFyZ2Ugc3RydWN0dXJlIGZpZWxkIG5hbWVzLgotCi0tIElzc3VlICMxMzA1ODogb3NzYXVkaW9kZXY6IGZpeCBhIGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGVycm9yLiBQYXRjaCBieQotICBUaG9tYXMgSmFyb3NjaC4KLQotLSBJc3N1ZSAjMTMwMTM6IGN0eXBlczogRml4IGEgcmVmZXJlbmNlIGxlYWsgaW4gUHlDQXJyYXlUeXBlX2Zyb21fY3R5cGUuCi0gIFRoYW5rcyB0byBTdW1hbiBTYWhhIGZvciBmaW5kaW5nIHRoZSBidWcgYW5kIHByb3ZpZGluZyBhIHBhdGNoLgotCi0tIElzc3VlICMxMzAyMjogRml4OiBfbXVsdGlwcm9jZXNzaW5nLnJlY3ZmZCgpIGRvZXNuJ3QgY2hlY2sgdGhhdAotICBmaWxlIGRlc2NyaXB0b3Igd2FzIGFjdHVhbGx5IHJlY2VpdmVkLgotCi0tIElzc3VlICMxMjQ4MzogY3R5cGVzOiBGaXggYSBjcmFzaCB3aGVuIHRoZSBkZXN0cnVjdGlvbiBvZiBhIGNhbGxiYWNrCi0gIG9iamVjdCB0cmlnZ2VycyB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IuCi0KLS0gSXNzdWUgIzEyOTUwOiBGaXggcGFzc2luZyBmaWxlIGRlc2NyaXB0b3JzIGluIG11bHRpcHJvY2Vzc2luZywgdW5kZXIKLSAgT3BlbkluZGlhbmEvSWxsdW1vcy4KLQotRG9jdW1lbnRhdGlvbgotLS0tLS0tLS0tLS0tLQotCi0tIElzc3VlcyAjMTM0OTEgYW5kICMxMzk5NTogRml4IG1hbnkgZXJyb3JzIGluIHNxbGl0ZTMgZG9jdW1lbnRhdGlvbi4KLSAgSW5pdGlhbCBwYXRjaCBmb3IgIzEzNDkxIGJ5IEpvaGFubmVzIFZvZ2VsLgotCi0tIElzc3VlICMxMzQwMjogRG9jdW1lbnQgYWJzb2x1dGVuZXNzIG9mIHN5cy5leGVjdXRhYmxlLgotCi0tIElzc3VlICMxMzg4MzogUFlUSE9OQ0FTRU9LIGFsc28gdXNlZCBvbiBPUyBYIGFuZCBPUy8yLgotCi0tIElzc3VlICMxMjk0OTogRG9jdW1lbnQgdGhlIGt3b25seWFyZ2NvdW50IGFyZ3VtZW50IGZvciB0aGUgUHlDb2RlX05ldwotICBDIEFQSSBmdW5jdGlvbi4KLQotLSBJc3N1ZSAjMjEzNDogVGhlIHRva2VuaXplIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gY2xhcmlmaWVkIHRvIGV4cGxhaW4gd2h5Ci0gIGFsbCBvcGVyYXRvciBhbmQgZGVsaW1pdGVyIHRva2VucyBhcmUgdHJlYXRlZCBhcyB0b2tlbi5PUCB0b2tlbnMuCi0KLS0gSXNzdWUgIzEzNTEzOiBGaXggaW8uSU9CYXNlIGRvY3VtZW50YXRpb24gdG8gY29ycmVjdGx5IGxpbmsgdG8gdGhlCi0gIGlvLklPQmFzZS5yZWFkbGluZSBtZXRob2QgaW5zdGVhZCBvZiB0aGUgcmVhZGxpbmUgbW9kdWxlLgotCi0tIElzc3VlICMxMzIzNzogUmVvcmdhbmlzZSBzdWJwcm9jZXNzIGRvY3VtZW50YXRpb24gdG8gZW1waGFzaXNlIGNvbnZlbmllbmNlCi0gIGZ1bmN0aW9ucyBhbmQgdGhlIG1vc3QgY29tbW9ubHkgbmVlZGVkIGFyZ3VtZW50cyB0byBQb3Blbi4KLQotLSBJc3N1ZSAjMTMxNDE6IERlbW9uc3RyYXRlIHJlY29tbWVuZGVkIHN0eWxlIGZvciBzb2NrZXRzZXJ2ZXIgZXhhbXBsZXMuCi0KLQotV2hhdCdzIE5ldyBpbiBQeXRob24gMy4yLjI/Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotKlJlbGVhc2UgZGF0ZTogMDMtU2VwLTIwMTEqCi0KLUNvcmUgYW5kIEJ1aWx0aW5zCi0tLS0tLS0tLS0tLS0tLS0tLQotCi0tIElzc3VlICMxMjMyNjogc3lzLnBsYXRmb3JtIGlzIG5vdyBhbHdheXMgJ2xpbnV4Micgb24gTGludXgsIGV2ZW4gaWYgUHl0aG9uCi0gIGlzIGNvbXBpbGVkIG9uIExpbnV4IDMuCi0KLS0gQWNjZXB0IGJ5dGVzIGZvciB0aGUgQVNUIHN0cmluZyB0eXBlLiBUaGlzIGlzIHRlbXBvcmFyeSB1bnRpbCBhIHByb3BlciBmaXggaW4KLSAgMy4zLgotCi1MaWJyYXJ5Ci0tLS0tLS0tCi0KLS0gSXNzdWUgIzgyODY6IFRoZSBkaXN0dXRpbHMgY29tbWFuZCBzZGlzdCB3aWxsIHByaW50IGEgd2FybmluZyBtZXNzYWdlIGluc3RlYWQKLSAgb2YgY3Jhc2hpbmcgd2hlbiBhbiBpbnZhbGlkIHBhdGggaXMgZ2l2ZW4gaW4gdGhlIG1hbmlmZXN0IHRlbXBsYXRlLgotCi0tIElzc3VlICMxMjg0MTogdGFyZmlsZSB1bm5lY2Vzc2FyaWx5IGNoZWNrZWQgdGhlIGV4aXN0ZW5jZSBvZiBudW1lcmljYWwgdXNlcgotICBhbmQgZ3JvdXAgaWRzIG9uIGV4dHJhY3Rpb24uIElmIG9uZSBvZiB0aGVtIGRpZCBub3QgZXhpc3QgdGhlIHJlc3BlY3RpdmUgaWQKLSAgb2YgdGhlIGN1cnJlbnQgdXNlciAoaS5lLiByb290KSB3YXMgdXNlZCBmb3IgdGhlIGZpbGUgYW5kIG93bmVyc2hpcAotICBpbmZvcm1hdGlvbiB3YXMgbG9zdC4KLQotLSBJc3N1ZSAjMTA5NDY6IFRoZSBkaXN0dXRpbHMgY29tbWFuZHMgYmRpc3RfZHVtYiwgYmRpc3Rfd2luaW5zdCBhbmQgYmRpc3RfbXNpCi0gIG5vdyByZXNwZWN0IGEgLS1za2lwLWJ1aWxkIG9wdGlvbiBnaXZlbiB0byBiZGlzdC4KLQotLSBJc3N1ZSAjMTI4Mzk6IEZpeCBjcmFzaCBpbiB6bGliIG1vZHVsZSBkdWUgdG8gdmVyc2lvbiBtaXNtYXRjaC4KLSAgRml4IGJ5IFJpY2hhcmQgTS4gVGV3LgotCi1FeHRlbnNpb24gTW9kdWxlcwotLS0tLS0tLS0tLS0tLS0tLS0KLQotLSBJc3N1ZSAjOTY1MTogRml4IGEgY3Jhc2ggd2hlbiBjdHlwZXMuY3JlYXRlX3N0cmluZ19idWZmZXIoMCkgd2FzIHBhc3NlZCB0bwotICBzb21lIGZ1bmN0aW9ucyBsaWtlIGZpbGUud3JpdGUoKS4KLQotCi0KLVdoYXQncyBOZXcgaW4gUHl0aG9uIDMuMi4yIHJlbGVhc2UgY2FuZGlkYXRlIDE/Ci09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0qUmVsZWFzZSBkYXRlOiAxNC1BdWctMjAxMSoKLQotQ29yZSBhbmQgQnVpbHRpbnMKLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0gSXNzdWUgIzEyNzMyOiBJbiBuYXJyb3cgdW5pY29kZSBidWlsZHMsIGFsbG93IFVuaWNvZGUgaWRlbnRpZmllcnMgd2hpY2ggZmFsbAotICBvdXRzaWRlIHRoZSBCTVAuCi0KLS0gSXNzdWUgIzExNjAzOiBGaXggYSBjcmFzaCB3aGVuIF9fc3RyX18gaXMgcmVib3VuZCBhcyBfX3JlcHJfXy4gIFBhdGNoIGJ5Ci0gIEFuZHJlYXMgU3TDvGhyay4KLQotLSBJc3N1ZSAjMTEzMjE6IEZpeCBhIGNyYXNoIHdpdGggbXVsdGlwbGUgaW1wb3J0cyBvZiB0aGUgX3BpY2tsZSBtb2R1bGUgd2hlbgotICBlbWJlZGRpbmcgUHl0aG9uLiAgUGF0Y2ggYnkgQW5kcmVhcyBTdMO8aHJrLgotCi0tIFZlcmlmeSB0aGUgdHlwZXMgb2YgQVNUIHN0cmluZ3MgYW5kIGlkZW50aWZpZXJzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGJlZm9yZQotICBjb21waWxpbmcgdGhlbS4KLQotLSBJc3N1ZSAjMTI1Nzk6IHN0ci5mb3JtYXRfbWFwKCkgbm93IHJhaXNlcyBhIFZhbHVlRXJyb3IgaWYgdXNlZCBvbiBhCi0gIGZvcm1hdCBzdHJpbmcgdGhhdCBjb250YWlucyBwb3NpdGlvbmFsIGZpZWxkcy4gSW5pdGlhbCBwYXRjaCBieQotICBKdWxpYW4gQmVybWFuLgotCi0tIElzc3VlICMxMTYyNzogRml4IHNlZ2ZhdWx0IHdoZW4gX19uZXdfXyBvbiBhIGV4Y2VwdGlvbiByZXR1cm5zIGEKLSAgbm9uLWV4Y2VwdGlvbiBjbGFzcy4KLQotLSBJc3N1ZSAjMTIxNDk6IFVwZGF0ZSB0aGUgbWV0aG9kIGNhY2hlIGFmdGVyIGEgdHlwZSdzIGRpY3Rpb25hcnkgZ2V0cwotICBjbGVhcmVkIGJ5IHRoZSBnYXJiYWdlIGNvbGxlY3Rvci4gIFRoaXMgZml4ZXMgYSBzZWdmYXVsdCB3aGVuIGFuIGluc3RhbmNlCi0gIGFuZCBpdHMgdHlwZSBnZXQgY2F1Z2h0IGluIGEgcmVmZXJlbmNlIGN5Y2xlLCBhbmQgdGhlIGluc3RhbmNlJ3MKLSAgZGVhbGxvY2F0b3IgY2FsbHMgb25lIG9mIHRoZSBtZXRob2RzIG9uIHRoZSB0eXBlIChlLmcuIHdoZW4gc3ViY2xhc3NpbmcKLSAgSU9CYXNlKS4gIERpYWdub3NpcyBhbmQgcGF0Y2ggYnkgRGF2aWRlIFJpenpvLgotCi0tIFdoZW4gYSBnZW5lcmF0b3IgeWllbGRzLCBkbyBub3QgcmV0YWluIHRoZSBjYWxsZXIncyBleGNlcHRpb24gc3RhdGUgb24gdGhlCi0gIGdlbmVyYXRvci4KLQotLSBJc3N1ZSAjMTI0NzU6IFByZXZlbnQgZ2VuZXJhdG9ycyBmcm9tIGxlYWtpbmcgdGhlaXIgZXhjZXB0aW9uIHN0YXRlIGludG8gdGhlCi0gIGNhbGxlcidzIGZyYW1lIGFzIHRoZXkgcmV0dXJuIGZvciB0aGUgbGFzdCB0aW1lLgotCi1MaWJyYXJ5Ci0tLS0tLS0tCistIElzc3VlICMxMjY0NjogQWRkIGFuICdlb2YnIGF0dHJpYnV0ZSB0byB6bGliLkRlY29tcHJlc3MsIHRvIG1ha2UgaXQgZWFzaWVyIHRvCisgIGRldGVjdCB0cnVuY2F0ZWQgaW5wdXQgc3RyZWFtcy4KIAogLSBJc3N1ZSAjMTE1MTM6IEZpeCBleGNlcHRpb24gaGFuZGxpbmcgYGB0YXJmaWxlLlRhckZpbGUuZ3pvcGVuKClgYCB3aGVuCiAgIHRoZSBmaWxlIGNhbm5vdCBiZSBvcGVuZWQuCkBAIC0xMDg2LDE4ICsyMzM2LDQyIEBACiAtIElzc3VlICMxMjU0MDogUHJldmVudCB6b21iaWUgSURMRSBwcm9jZXNzZXMgb24gV2luZG93cyBkdWUgdG8gY2hhbmdlcwogICBpbiBvcy5raWxsKCkuCiAKKy0gQWRkIHN1cHBvcnQgZm9yIHVuYXJ5IHBsdXMgYW5kIHVuYXJ5IG1pbnVzIHRvIGNvbGxlY3Rpb25zLkNvdW50ZXIoKS4KKyAgSXNzdWUgIzEzMTIxOiBBbHNvIGFkZCBzdXBwb3J0IGZvciBpbnBsYWNlIG1hdGggb3BlcmF0b3JzLgorCiAtIElzc3VlICMxMjY4MzogdXJscGFyc2UgdXBkYXRlZCB0byBpbmNsdWRlIHN2biBhcyBzY2hlbWVzIHRoYXQgdXNlcyByZWxhdGl2ZQogICBwYXRocy4gKHN2biBmcm9tIDEuNSBvbndhcmRzIHN1cHBvcnQgcmVsYXRpdmUgcGF0aCkuCiAKKy0gSXNzdWUgIzEyNjU1OiBFeHBvc2UgZnVuY3Rpb25zIGZyb20gc2NoZWQuaCBpbiB0aGUgb3MgbW9kdWxlOiBzY2hlZF95aWVsZCgpLAorICBzY2hlZF9zZXRzY2hlZHVsZXIoKSwgc2NoZWRfZ2V0c2NoZWR1bGVyKCksIHNjaGVkX3NldHBhcmFtKCksCisgIHNjaGVkX2dldF9taW5fcHJpb3JpdHkoKSwgc2NoZWRfZ2V0X21heF9wcmlvcml0eSgpLCBzY2hlZF9ycl9nZXRfaW50ZXJ2YWwoKSwKKyAgc2NoZWRfZ2V0YWZmaW5pdHkoKSwgc2NoZWRfc2V0YWZmaW5pdHkoKS4KKworLSBBZGQgVGhyZWFkRXJyb3IgdG8gdGhyZWFkaW5nLl9fYWxsX18uCisKIC0gSXNzdWVzICMxMTEwNCwgIzg2ODg6IEZpeCB0aGUgYmVoYXZpb3Igb2YgZGlzdHV0aWxzJyBzZGlzdCBjb21tYW5kIHdpdGgKICAgbWFudWFsbHktbWFpbnRhaW5lZCBNQU5JRkVTVCBmaWxlcy4KIAorLSBJc3N1ZSAjMTEyODE6IHNtdHBsaWIuU1RNUCBnZXRzIHNvdXJjZV9hZGRyZXNzIHBhcmFtZXRlciwgd2hpY2ggYWRkcyB0aGUKKyAgYWJpbGl0eSB0byBiaW5kIHRvIHNwZWNpZmljIHNvdXJjZSBhZGRyZXNzIG9uIGEgbWFjaGluZSB3aXRoIG11bHRpcGxlCisgIGludGVyZmFjZXMuIFBhdGNoIGJ5IFBhdWxvIFNjYXJkaW5lLgorCiAtIElzc3VlICMxMjQ2NDogdGVtcGZpbGUuVGVtcG9yYXJ5RGlyZWN0b3J5LmNsZWFudXAoKSBzaG91bGQgbm90IGZvbGxvdwogICBzeW1saW5rczogZml4IGl0LiBQYXRjaCBieSBQZXRyaSBMZWh0aW5lbi4KIAogLSBJc3N1ZSAjODg4NzogInB5ZG9jIHNvbWVidWlsdGluLnNvbWVtZXRob2QiIChvciBoZWxwKCdzb21lYnVpbHRpbi5zb21lbWV0aG9kJykKICAgaW4gUHl0aG9uIGNvZGUpIG5vdyBmaW5kcyB0aGUgZG9jIG9mIHRoZSBtZXRob2QuCiAKKy0gSXNzdWUgIzEwOTY4OiBSZW1vdmUgaW5kaXJlY3Rpb24gaW4gdGhyZWFkaW5nLiAgVGhlIHB1YmxpYyBuYW1lcyAoVGhyZWFkLAorICBDb25kaXRpb24sIGV0Yy4pIHVzZWQgdG8gYmUgZmFjdG9yeSBmdW5jdGlvbnMgcmV0dXJuaW5nIGluc3RhbmNlcyBvZiBoaWRkZW4KKyAgY2xhc3NlcyAoX1RocmVhZCwgX0NvbmRpdGlvbiwgZXRjLiksIGJlY2F1c2UgKGlmIEd1aWRvIHJlY2FsbHMgY29ycmVjdGx5KSB0aGlzCisgIGNvZGUgcHJlLWRhdGVzIHRoZSBhYmlsaXR5IHRvIHN1YmNsYXNzIGV4dGVuc2lvbiB0eXBlcy4gIEl0IGlzIG5vdyBwb3NzaWJsZSB0bworICBpbmhlcml0IGZyb20gVGhyZWFkIGFuZCBvdGhlciBjbGFzc2VzLCB3aXRob3V0IGhhdmluZyB0byBpbXBvcnQgdGhlIHByaXZhdGUKKyAgdW5kZXJzY29yZWQgbmFtZXMgbGlrZSBtdWx0aXByb2Nlc3NpbmcgZGlkLgorCistIElzc3VlICM5NzIzOiBBZGQgc2hsZXgucXVvdGUgZnVuY3Rpb25zLCB0byBlc2NhcGUgZmlsZW5hbWVzIGFuZCBjb21tYW5kCisgIGxpbmVzLgorCiAtIElzc3VlICMxMjYwMzogRml4IHB5ZG9jLnN5bm9wc2lzKCkgb24gZmlsZXMgd2l0aCBub24tbmVnYXRpdmUgc3RfbXRpbWUuCiAKIC0gSXNzdWUgIzEyNTE0OiBVc2UgdHJ5L2ZpbmFsbHkgdG8gYXNzdXJlIHRoZSB0aW1laXQgbW9kdWxlIHJlc3RvcmVzIGdhcmJhZ2UKQEAgLTExMTIsMTkgKzIzODYsMzUgQEAKIC0gSXNzdWUgIzEyNTc2OiBGaXggdXJsb3BlbiBiZWhhdmlvciBvbiBzaXRlcyB3aGljaCBkbyBub3Qgc2VuZCAob3Igb2JmdXNjYXRlcykKICAgQ29ubmVjdGlvbjpjbG9zZSBoZWFkZXIuCiAKKy0gSXNzdWUgIzEyMTAyOiBEb2N1bWVudCB0aGF0IGJ1ZmZlcmVkIGZpbGVzIG11c3QgYmUgZmx1c2hlZCBiZWZvcmUgYmVpbmcgdXNlZAorICB3aXRoIG1tYXAuIFBhdGNoIGJ5IFN0ZWZmZW4gRGFvZGUgTnVycG1lc28uCisKKy0gSXNzdWUgIzEyNTYwOiBCdWlsZCBsaWJweXRob24uc28gb24gT3BlbkJTRC4gUGF0Y2ggYnkgU3RlZmFuIFNwZXJsaW5nLgorCiAtIElzc3VlICMxODEzOiBGaXggY29kZWMgbG9va3VwIHVuZGVyIFR1cmtpc2ggbG9jYWxlcy4KIAogLSBJc3N1ZSAjMTI1OTE6IEltcHJvdmUgc3VwcG9ydCBvZiAidW5pdmVyc2FsIG5ld2xpbmVzIiBpbiB0aGUgc3VicHJvY2VzcwogICBtb2R1bGU6IHRoZSBwaXBlZCBzdHJlYW1zIGNhbiBub3cgYmUgcHJvcGVybHkgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8uCiAKIC0gSXNzdWUgIzEyNTkxOiBBbGxvdyBpby5UZXh0SU9XcmFwcGVyIHRvIHdvcmsgd2l0aCByYXcgSU8gb2JqZWN0cyAod2l0aG91dAotICBhIHJlYWQxKCkgbWV0aG9kKSwgYW5kIGFkZCBhbiB1bmRvY3VtZW50ZWQgKndyaXRlX3Rocm91Z2gqIHBhcmFtZXRlciB0bwotICBtYW5kYXRlIHVuYnVmZmVyZWQgd3JpdGVzLgotCi0tIElzc3VlICM5NjExLCAjOTAxNTogRmlsZUlPLnJlYWQoKSBjbGFtcHMgdGhlIGxlbmd0aCB0byBJTlRfTUFYIG9uIFdpbmRvd3MuCisgIGEgcmVhZDEoKSBtZXRob2QpLCBhbmQgYWRkIGEgKndyaXRlX3Rocm91Z2gqIHBhcmFtZXRlciB0byBtYW5kYXRlCisgIHVuYnVmZmVyZWQgd3JpdGVzLgogCiAtIElzc3VlICMxMDg4MzogRml4IHNvY2tldCBsZWFrcyBpbiB1cmxsaWIucmVxdWVzdCB3aGVuIHVzaW5nIEZUUC4KIAorLSBJc3N1ZSAjMTI1OTI6IE1ha2UgUHl0aG9uIGJ1aWxkIG9uIE9wZW5CU0QgNSAoYW5kIGZ1dHVyZSBtYWpvciByZWxlYXNlcykuCisKKy0gSXNzdWUgIzEyMzcyOiBQT1NJWCBzZW1hcGhvcmVzIGFyZSBicm9rZW4gb24gQUlYOiBkb24ndCB1c2UgdGhlbS4KKworLSBJc3N1ZSAjMTI1NTE6IFByb3ZpZGUgYSBnZXRfY2hhbm5lbF9iaW5kaW5nKCkgbWV0aG9kIG9uIFNTTCBzb2NrZXRzIHNvIGFzCisgIHRvIGdldCBjaGFubmVsIGJpbmRpbmcgZGF0YSBmb3IgdGhlIGN1cnJlbnQgU1NMIHNlc3Npb24gKG9ubHkgdGhlCisgICJ0bHMtdW5pcXVlIiBjaGFubmVsIGJpbmRpbmcgaXMgaW1wbGVtZW50ZWQpLiAgVGhpcyBhbGxvd3MgdGhlIGltcGxlbWVudGF0aW9uCisgIG9mIGNlcnRhaW4gYXV0aGVudGljYXRpb24gbWVjaGFuaXNtcyBzdWNoIGFzIFNDUkFNLVNIQS0xLVBMVVMuICBQYXRjaCBieQorICBKYWNlayBLb25pZWN6bnkuCisKKy0gSXNzdWUgIzY2NTE5NDogZW1haWwudXRpbHMgbm93IGhhcyBmb3JtYXRfZGF0ZXRpbWUgYW5kIHBhcnNlZGF0ZV90b19kYXRldGltZQorICBmdW5jdGlvbnMsIGFsbG93aW5nIGZvciByb3VuZCB0cmlwcGluZyBvZiBSRkMyODIyIGZvcm1hdCBkYXRlcy4KKwogLSBJc3N1ZSAjMTI1NzE6IEFkZCBhIHBsYXQtbGludXgzIGRpcmVjdG9yeSBtaXJyb3JpbmcgdGhlIHBsYXQtbGludXgyCiAgIGRpcmVjdG9yeSwgc28gdGhhdCAiaW1wb3J0IERMRkNOIiBhbmQgb3RoZXIgc2ltaWxhciBpbXBvcnRzIHdvcmsgb24KICAgTGludXggMy4wLgpAQCAtMTEzMiwxODQgKzI0MjIsOTEgQEAKIC0gSXNzdWUgIzc0ODQ6IHNtdHBsaWIgbm8gbG9uZ2VyIHB1dHMgPD4gYXJvdW5kIGFkZHJlc3NlcyBpbiBWUkZZIGFuZCBFWFBOCiAgIGNvbW1hbmRzOyB0aGV5IGFyZW4ndCByZXF1aXJlZCBhbmQgaW4gZmFjdCBwb3N0Zml4IGRvZXNuJ3Qgc3VwcG9ydCB0aGF0IGZvcm0uCiAKLS0gQ2xvc2UgdGhlIGNhbGwgcXVldWUgaW4gY29uY3VycmVudC5mdXR1cmVzLlByb2Nlc3NQb29sRXhlY3V0b3Igd2hlbgotICBzaHV0ZG93bigpIGlzIGNhbGxlZCwgd2l0aG91dCB3YWl0aW5nIGZvciB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IgdG8ga2ljayBpbi4KKy0gSXNzdWUgIzEyMjczOiBSZW1vdmUgYXN0Ll9fdmVyc2lvbl9fLiBBU1QgY2hhbmdlcyBjYW4gYmUgYWNjb3VudGVkIGZvciBieQorICBjaGVja2luZyBzeXMudmVyc2lvbl9pbmZvIG9yIHN5cy5fbWVyY3VyaWFsLgorCistIFNpbGVuY2Ugc3B1cmlvdXMgImJyb2tlbiBwaXBlIiB0cmFjZWJhY2tzIHdoZW4gc2h1dHRpbmcgZG93biBhCisgIFByb2Nlc3NQb29sRXhlY3V0b3IuCisKKy0gRml4IHBvdGVudGlhbCByZXNvdXJjZSBsZWFrcyBpbiBjb25jdXJyZW50LmZ1dHVyZXMuUHJvY2Vzc1Bvb2xFeGVjdXRvcgorICBieSBqb2luaW5nIGFsbCBxdWV1ZXMgYW5kIHByb2Nlc3NlcyB3aGVuIHNodXRkb3duKCkgaXMgY2FsbGVkLgorCistIElzc3VlICMxMTYwMzogRml4IGEgY3Jhc2ggd2hlbiBfX3N0cl9fIGlzIHJlYm91bmQgYXMgX19yZXByX18uICBQYXRjaCBieQorICBBbmRyZWFzIFN0w7xocmsuCisKKy0gSXNzdWUgIzExMzIxOiBGaXggYSBjcmFzaCB3aXRoIG11bHRpcGxlIGltcG9ydHMgb2YgdGhlIF9waWNrbGUgbW9kdWxlIHdoZW4KKyAgZW1iZWRkaW5nIFB5dGhvbi4gIFBhdGNoIGJ5IEFuZHJlYXMgU3TDvGhyay4KKworLSBJc3N1ZSAjNjc1NTogQWRkIGdldF93Y2goKSBtZXRob2QgdG8gY3Vyc2VzLndpbmRvdyBjbGFzcy4gUGF0Y2ggYnkgScOxaWdvCisgIFNlcm5hLgorCistIEFkZCBjZ2kuY2xvc2Vsb2coKSBmdW5jdGlvbiB0byBjbG9zZSB0aGUgbG9nIGZpbGUuCiAKIC0gSXNzdWUgIzEyNTAyOiBhc3luY29yZTogZml4IHBvbGxpbmcgbG9vcCB3aXRoIEFGX1VOSVggc29ja2V0cy4KIAotLSBJc3N1ZSAjNDM3NjogY3R5cGVzIG5vdyBzdXBwb3J0cyBuZXN0ZWQgc3RydWN0dXJlcyB3aXRoIGFuIGVuZGlhbm5lc3MKLSAgZGlmZmVyZW50IHRoYW4gdGhhdCBvZiB0aGUgcGFyZW50IHN0cnVjdHVyZS4gIFBhdGNoIGJ5IFZsYWQgUmlzY3V0aWEuCistIElzc3VlICM0Mzc2OiBjdHlwZXMgbm93IHN1cHBvcnRzIG5lc3RlZCBzdHJ1Y3R1cmVzIGluIGEgZW5kaWFuIGRpZmZlcmVudCB0aGFuCisgIHRoZSBwYXJlbnQgc3RydWN0dXJlLiBQYXRjaCBieSBWbGFkIFJpc2N1dGlhLgogCiAtIFJhaXNlIFZhbHVlRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIHNldCB0aGUgX0NIVU5LX1NJWkUgYXR0cmlidXRlIG9mIGEKICAgVGV4dElPV3JhcHBlciB0byBhIGh1Z2UgdmFsdWUsIG5vdCBUeXBlRXJyb3IuCiAKLS0gSXNzdWUgIzEyNDkzOiBzdWJwcm9jZXNzOiBQb3Blbi5jb21tdW5pY2F0ZSgpIG5vdyBhbHNvIGhhbmRsZXMgRUlOVFIgZXJyb3JzCi0gIGlmIHRoZSBwcm9jZXNzIGhhcyBvbmx5IG9uZSBwaXBlLgorLSBJc3N1ZSAjMTI1MDQ6IENsb3NlIGZpbGUgaGFuZGxlcyBpbiBhIHRpbWVseSBtYW5uZXIgaW4gcGFja2FnaW5nLmRhdGFiYXNlLgorICBUaGlzIGZpeGVzIGEgYnVnIHdpdGggdGhlIHJlbW92ZSAodW5pbnN0YWxsKSBmZWF0dXJlIG9uIFdpbmRvd3MuCisKKy0gSXNzdWVzICMxMjE2OSBhbmQgIzEwNTEwOiBGYWN0b3Igb3V0IGNvZGUgdXNlZCBieSB2YXJpb3VzIHBhY2thZ2luZyBjb21tYW5kcworICB0byBtYWtlIEhUVFAgUE9TVCByZXF1ZXN0cywgYW5kIG1ha2Ugc3VyZSBpdCB1c2VzIENSTEYuCisKKy0gSXNzdWUgIzEyMDE2OiBNdWx0aWJ5dGUgQ0pLIGRlY29kZXJzIG5vdyByZXN5bmNocm9uaXplIGZhc3Rlci4gVGhleSBvbmx5CisgIGlnbm9yZSB0aGUgZmlyc3QgYnl0ZSBvZiBhbiBpbnZhbGlkIGJ5dGUgc2VxdWVuY2UuIEZvciBleGFtcGxlLAorICBiJ1x4ZmZcbicuZGVjb2RlKCdnYjIzMTInLCAncmVwbGFjZScpIGdpdmVzICdcdWZmZmRcbicgaW5zdGVhZCBvZiAnXHVmZmZkJy4KKworLSBJc3N1ZSAjMTI0NTk6IHRpbWUuc2xlZXAoKSBub3cgcmFpc2VzIGEgVmFsdWVFcnJvciBpZiB0aGUgc2xlZXAgbGVuZ3RoIGlzCisgIG5lZ2F0aXZlLCBpbnN0ZWFkIG9mIGFuIGluZmluaXRlIHNsZWVwIG9uIFdpbmRvd3Mgb3IgcmFpc2luZyBhbiBJT0Vycm9yIG9uCisgIExpbnV4IGZvciBleGFtcGxlLCB0byBoYXZlIHRoZSBzYW1lIGJlaGF2aW91ciBvbiBhbGwgcGxhdGZvcm1zLgogCiAtIElzc3VlICMxMjQ1MTogcHlkb2M6IGh0bWxfZ2V0ZmlsZSgpIG5vdyB1c2VzIHRva2VuaXplLm9wZW4oKSB0byBzdXBwb3J0Ci0gIFB5dGhvbiBtb2R1bGVzIHVzaW5nIGEgZW5jb2RpbmcgZGlmZmVyZW50IHRoYW4gVVRGLTggKHJlYWRpbmcgdGhlIGNvZGluZwotICBjb29raWUgb2YgdGhlIG1vZHVsZSkuCisgIFB5dGhvbiBzY3JpcHRzIHVzaW5nIGEgZW5jb2RpbmcgZGlmZmVyZW50IHRoYW4gVVRGLTggKHJlYWQgdGhlIGNvZGluZyBjb29raWUKKyAgb2YgdGhlIHNjcmlwdCkuCiAKLS0gSXNzdWUgIzEyNDUxOiBweWRvYzogaW1wb3J0ZmlsZSgpIG5vdyBvcGVucyB0aGUgUHl0aG9uIG1vZHVsZSBpbiBiaW5hcnkgbW9kZSwKLSAgaW5zdGVhZCBvZiB0ZXh0IG1vZGUgdXNpbmcgdGhlIGxvY2FsZSBlbmNvZGluZywgdG8gYXZvaWQgZW5jb2RpbmcgaXNzdWVzLgotCi0tIElzc3VlICMxMjQ1MTogcnVucHk6IHJ1bl9wYXRoKCkgbm93IG9wZW5zIHRoZSBQeXRob24gbW9kdWxlIGluIGJpbmFyeSBtb2RlLAotICBpbnN0ZWFkIG9mIHRleHQgbW9kZSB1c2luZyB0aGUgbG9jYWxlIGVuY29kaW5nLCB0byBzdXBwb3J0IG90aGVyIGVuY29kaW5ncwotICB0aGFuIFVURi04IChtb2R1bGVzIHVzaW5nIHRoZSBjb2RpbmcgY29va2llKS4KLQotLSBJc3N1ZSAjMTI0NTE6IHhtbC5kb20ucHVsbGRvbTogcGFyc2UoKSBub3cgb3BlbnMgZmlsZXMgaW4gYmluYXJ5IG1vZGUgaW5zdGVhZAotICBvZiB0aGUgdGV4dCBtb2RlICh1c2luZyB0aGUgbG9jYWxlIGVuY29kaW5nKSB0byBhdm9pZCBlbmNvZGluZyBpc3N1ZXMuCi0KLS0gSXNzdWUgIzE0NDQzOiBFbnN1cmUgdGhhdCAucHkgZmlsZXMgYXJlIGJ5dGUtY29tcGlsZWQgd2l0aCB0aGUgY29ycmVjdCBQeXRob24KLSAgZXhlY3V0YWJsZSB3aXRoaW4gYmRpc3RfcnBtIGV2ZW4gb24gb2xkZXIgdmVyc2lvbnMgb2YgUlBNCi0KLUV4dGVuc2lvbiBNb2R1bGVzCi0tLS0tLS0tLS0tLS0tLS0tLQotCi0tIElzc3VlICMxMjc2NDogRml4IGEgY3Jhc2ggaW4gY3R5cGVzIHdoZW4gdGhlIG5hbWUgb2YgYSBTdHJ1Y3R1cmUgZmllbGQgaXMgbm90Ci0gIGEgc3RyaW5nLgotCi0tIElzc3VlICMxMTI0MTogc3ViY2xhc3NlcyBvZiBjdHlwZXMuQXJyYXkgY2FuIG5vdyBiZSBzdWJjbGFzc2VkLgotCi0tIElzc3VlICMxMDMwOTogRGVmaW5lIF9HTlVfU09VUkNFIHNvIHRoYXQgbXJlbWFwKCkgZ2V0cyB0aGUgcHJvcGVyCi0gIHNpZ25hdHVyZS4gIFdpdGhvdXQgdGhpcywgYXJjaGl0ZWN0dXJlcyB3aGVyZSBzaXplb2Ygdm9pZCogIT0gc2l6ZW9mIGludCBhcmUKLSAgYnJva2VuLiAgUGF0Y2ggZ2l2ZW4gYnkgSGFsbHZhcmQgQiBGdXJ1c2V0aC4KLQotQy1BUEkKLS0tLS0tCi0KLUJ1aWxkCi0tLS0tLQotCi0tIElzc3VlICMxMjU2MDogQnVpbGQgbGlicHl0aG9uLnNvIG9uIE9wZW5CU0QuICBQYXRjaCBieSBTdGVmYW4gU3BlcmxpbmcuCi0KLS0gSXNzdWUgIzEyNTkyOiBNYWtlIFB5dGhvbiBidWlsZCBvbiBPcGVuQlNEIDUgKGFuZCBmdXR1cmUgbWFqb3IgcmVsZWFzZXMpLgotCi0tIElzc3VlICMxMjM3MjogUE9TSVggc2VtYXBob3JlcyBhcmUgYnJva2VuIG9uIEFJWDogZG9uJ3QgdXNlIHRoZW0uCi0KLVRvb2xzL0RlbW9zCi0tLS0tLS0tLS0tLQotCi0tIElzc3VlICMxMDYzOTogcmVpbmRlbnQucHkgbm8gbG9uZ2VyIGNvbnZlcnRzIG5ld2xpbmVzIGFuZCB3aWxsIHJhaXNlCi0gIGFuIGVycm9yIGlmIGF0dGVtcHRpbmcgdG8gY29udmVydCBhIGZpbGUgd2l0aCBtaXhlZCBuZXdsaW5lcy4KLQotVGVzdHMKLS0tLS0tCi0KLS0gSXNzdWUgIzEyMzMxOiBUaGUgdGVzdCBzdWl0ZSBmb3IgbGliMnRvMyBjYW4gbm93IHJ1biBmcm9tIGFuIGluc3RhbGxlZAotICBQeXRob24uCi0KLS0gSXNzdWUgIzEyNjI2OiBJbiByZWdydGVzdCwgYWxsb3cgdG8gZmlsdGVyIHRlc3RzIHVzaW5nIGEgZ2xvYiBmaWx0ZXIKLSAgd2l0aCB0aGUgYGAtbWBgIChvciBgYC0tbWF0Y2hgYCkgb3B0aW9uLiAgVGhpcyB3b3JrcyB3aXRoIGFsbCB0ZXN0IGNhc2VzCi0gIHVzaW5nIHRoZSB1bml0dGVzdCBtb2R1bGUuICBUaGlzIGlzIHVzZWZ1bCB3aXRoIGxvbmcgdGVzdCBzdWl0ZXMKLSAgc3VjaCBhcyB0ZXN0X2lvIG9yIHRlc3Rfc3VicHJvY2Vzcy4KLQotLSBJc3N1ZSAjMTI2MjQ6IEl0IGlzIG5vdyBwb3NzaWJsZSB0byBmYWlsIGFmdGVyIHRoZSBmaXJzdCBmYWlsdXJlIHdoZW4KLSAgcnVubmluZyBpbiB2ZXJib3NlIG1vZGUgKGBgLXZgYCBvciBgYC1XYGApLCBieSB1c2luZyB0aGUgYGAtLWZhaWxmYXN0YGAKLSAgKG9yIGBgLUdgYCkgb3B0aW9uIHRvIHJlZ3J0ZXN0LiAgVGhpcyBpcyB1c2VmdWwgd2l0aCBsb25nIHRlc3Qgc3VpdGVzCi0gIHN1Y2ggYXMgdGVzdF9pbyBvciB0ZXN0X3N1YnByb2Nlc3MuCi0KLS0gSXNzdWUgIzEyNTg3OiBDb3JyZWN0IGZhdWx0eSB0ZXN0IGZpbGUgYW5kIHJlZmVyZW5jZSBpbiB0ZXN0X3Rva2VuaXplLgotICAoUGF0Y2ggYnkgUm9iZXJ0IFhpYW8pCi0KLS0gVHJ5IGhhcmRlciB0byByZWFwIGRhbmdsaW5nIHRocmVhZHMgaW4gdGVzdC5zdXBwb3J0LnJlYXBfdGhyZWFkcygpLgotCi0tIElzc3VlICMxMjU3MzogQWRkIHJlc291cmNlIGNoZWNrcyBmb3IgZGFuZ2xpbmcgVGhyZWFkIGFuZCBQcm9jZXNzIG9iamVjdHMuCi0KLS0gSXNzdWUgIzEyNTQ5OiBDb3JyZWN0IHRlc3RfcGxhdGZvcm0gdG8gbm90IGZhaWwgd2hlbiBPUyBYIHJldHVybnMgJ3g4Nl82NCcKLSAgYXMgdGhlIHByb2Nlc3NvciB0eXBlIG9uIHNvbWUgTWFjIHN5c3RlbXMuCi0KLS0gQXZvaWQgZmFpbGluZyBpbiB0ZXN0X3JvYm90cGFyc2VyIHdoZW4gbXVlYmxlc21vcmFsZWRhLmNvbSBpcyBmbGFreSBhbmQKLSAgYW4gb3ZlcnplYWxvdXMgRE5TIHNlcnZpY2UgKGUuZy4gT3BlbkROUykgcmVkaXJlY3RzIHRvIGEgcGxhY2Vob2xkZXIKLSAgV2ViIHNpdGUuCi0KLS0gSXNzdWUgIzEyNDQwOiBXaGVuIHRlc3Rpbmcgd2hldGhlciBzb21lIGJpdHMgaW4gU1NMQ29udGV4dC5vcHRpb25zIGNhbiBiZQotICByZXNldCwgY2hlY2sgdGhlIHZlcnNpb24gb2YgdGhlIE9wZW5TU0wgaGVhZGVycyBQeXRob24gd2FzIGNvbXBpbGVkIGFnYWluc3QsCi0gIHJhdGhlciB0aGFuIHRoZSBydW50aW1lIHZlcnNpb24gb2YgdGhlIE9wZW5TU0wgbGlicmFyeS4KLQotLSBJc3N1ZSAjMTI0OTc6IEluc3RhbGwgdGVzdC9kYXRhIHRvIHByZXZlbnQgZmFpbHVyZXMgb2YgdGhlIHZhcmlvdXMgY29kZWNtYXBzCi0gIHRlc3RzLgotCi0tIElzc3VlICMxMjQ5NjogSW5zdGFsbCB0ZXN0L2NhcGF0aCBkaXJlY3RvcnkgdG8gcHJldmVudCB0ZXN0X2Nvbm5lY3RfY2FwYXRoCi0gIHRlc3RjYXNlIGZhaWx1cmUgaW4gdGVzdF9zc2wuCi0KLS0gSXNzdWUgIzEyNDY5OiBSdW4gIndha2V1cCIgc2lnbmFsIHRlc3RzIGluIHN1YnByb2Nlc3MgdG8gcnVuIHRoZSB0ZXN0IGluIGEKLSAgZnJlc2ggcHJvY2VzcyB3aXRoIG9ubHkgb25lIHRocmVhZCBhbmQgdG8gbm90IGNoYW5nZSBzaWduYWwgaGFuZGxpbmcgb2YgdGhlCi0gIHBhcmVudCBwcm9jZXNzLgotCi0tIElzc3VlICM4NzE2OiBBdm9pZCBjcmFzaGVzIGNhdXNlZCBieSBBcXVhIFRrIG9uIE9TWCB3aGVuIGF0dGVtcHRpbmcgdG8gcnVuCi0gIHRlc3RfdGsgb3IgdGVzdF90dGtfZ3Vpb25seSB1bmRlciBhIHVzZXJuYW1lIHRoYXQgaXMgbm90IGN1cnJlbnRseSBsb2dnZWQKLSAgaW4gdG8gdGhlIGNvbnNvbGUgd2luZG93c2VydmVyIChhcyBtYXkgYmUgdGhlIGNhc2UgdW5kZXIgYnVpbGRib3Qgb3Igc3NoKS4KLQotCi1XaGF0J3MgTmV3IGluIFB5dGhvbiAzLjIuMT8KLT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0qUmVsZWFzZSBkYXRlOiAxMC1KdWwtMjAxMSoKLQotTGlicmFyeQotLS0tLS0tLQorLSBJc3N1ZSAjMTI0OTM6IHN1YnByb2Nlc3M6IFBvcGVuLmNvbW11bmljYXRlKCkgbm93IGFsc28gaGFuZGxlcyBFSU5UUiBlcnJvcnMKKyAgaWYgdGhlIHByb2Nlc3MgaGFzIG9ubHkgb25lIHBpcGUuCiAKIC0gSXNzdWUgIzEyNDY3OiB3YXJuaW5nczogZml4IGEgcmFjZSBjb25kaXRpb24gaWYgYSB3YXJuaW5nIGlzIGVtaXR0ZWQgYXQKICAgc2h1dGRvd24sIGlmIGdsb2JhbHMoKVsnX19maWxlX18nXSBpcyBOb25lLgogCi1UZXN0cwotLS0tLS0KKy0gSXNzdWUgIzEyNDUxOiBweWRvYzogaW1wb3J0ZmlsZSgpIG5vdyBvcGVucyB0aGUgUHl0aG9uIHNjcmlwdCBpbiBiaW5hcnkgbW9kZSwKKyAgaW5zdGVhZCBvZiB0ZXh0IG1vZGUgdXNpbmcgdGhlIGxvY2FsZSBlbmNvZGluZywgdG8gYXZvaWQgZW5jb2RpbmcgaXNzdWVzLgogCi0tIFNraXAgbmV0d29yayB0ZXN0cyB3aGVuIGdldGFkZHJpbmZvKCkgcmV0dXJucyBFQUlfQUdBSU4sIG1lYW5pbmcgYSB0ZW1wb3JhcnkKLSAgZmFpbHVyZSBpbiBuYW1lIHJlc29sdXRpb24uCistIElzc3VlICMxMjQ1MTogcnVucHk6IHJ1bl9wYXRoKCkgbm93IG9wZW5zIHRoZSBQeXRob24gc2NyaXB0IGluIGJpbmFyeSBtb2RlLAorICBpbnN0ZWFkIG9mIHRleHQgbW9kZSB1c2luZyB0aGUgbG9jYWxlIGVuY29kaW5nLCB0byBzdXBwb3J0IG90aGVyIGVuY29kaW5ncworICB0aGFuIFVURi04IChzY3JpcHRzIHVzaW5nIHRoZSBjb2RpbmcgY29va2llKS4KIAotLSBJc3N1ZSAjMTE4MTI6IFNvbHZlIHRyYW5zaWVudCBzb2NrZXQgZmFpbHVyZSB0byBjb25uZWN0IHRvICdsb2NhbGhvc3QnCi0gIGluIHRlc3RfdGVsbmV0bGliLnB5LgotCi0tIFNvbHZlZCBhIHBvdGVudGlhbCBkZWFkbG9jayBpbiB0ZXN0X3RlbG5ldGxpYi5weS4gUmVsYXRlZCB0byBpc3N1ZSAjMTE4MTIuCi0KLS0gQXZvaWQgZmFpbGluZyBpbiB0ZXN0X3VybGxpYm5ldC50ZXN0X2JhZF9hZGRyZXNzIHdoZW4gc29tZSBvdmVyemVhbG91cwotICBETlMgc2VydmljZSAoZS5nLiBPcGVuRE5TKSByZXNvbHZlcyBhIG5vbi1leGlzdGVudCBkb21haW4gbmFtZS4gIFRoZSB0ZXN0Ci0gIGlzIG5vdyBza2lwcGVkIGluc3RlYWQuCi0KLQotV2hhdCdzIE5ldyBpbiBQeXRob24gMy4yLjEgcmVsZWFzZSBjYW5kaWRhdGUgMj8KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLSpSZWxlYXNlIGRhdGU6IDAzLUp1bC0yMDExKgotCi1Db3JlIGFuZCBCdWlsdGlucwotLS0tLS0tLS0tLS0tLS0tLS0KLQotLSBJc3N1ZSAjMTIyOTE6IFlvdSBjYW4gbm93IGxvYWQgbXVsdGlwbGUgbWFyc2hhbGxlZCBvYmplY3RzIGZyb20gYSBzdHJlYW0sIHdpdGgKLSAgb3RoZXIgZGF0YSBpbnRlcmxlYXZlZCBiZXR3ZWVuIG1hcnNoYWxsZWQgb2JqZWN0cy4KLQotLSBJc3N1ZSAjMTIwODQ6IG9zLnN0YXQgb24gV2luZG93cyBub3cgd29ya3MgcHJvcGVybHkgd2l0aCByZWxhdGl2ZSBzeW1ib2xpYwotICBsaW5rcyB3aGVuIGNhbGxlZCBmcm9tIGFueSBkaXJlY3RvcnkuCi0KLS0gSXNzdWUgIzExOTU6IG15X2ZnZXRzKCkgbm93IGFsd2F5cyBjbGVhcnMgZXJyb3JzIGJlZm9yZSBjYWxsaW5nIGZnZXRzKCkuIEZpeAotICB0aGUgZm9sbG93aW5nIGNhc2U6IHN5cy5zdGRpbi5yZWFkKCkgc3RvcHBlZCB3aXRoIENUUkwrZCAoZW5kIG9mIGZpbGUpLAotICByYXdfaW5wdXQoKSBpbnRlcnJ1cHRlZCBieSBDVFJMK2MuCi0KLS0gSXNzdWUgIzk2NzA6IEluY3JlYXNlIHRoZSBkZWZhdWx0IHN0YWNrIHNpemUgZm9yIHNlY29uZGFyeSB0aHJlYWRzIG9uIE1hYyBPUyBYCi0gIGFuZCBGcmVlQlNEIHRvIHJlZHVjZSB0aGUgY2hhbmNlcyBvZiBhIGNyYXNoIGluc3RlYWQgb2YgYSAibWF4aW11bSByZWN1cnNpb24KLSAgZGVwdGgiIFJ1bnRpbWVFcnJvciBleGNlcHRpb24gKHBhdGNoIGJ5IFJvbmFsZCBPdXNzb3JlbikuCi0KLUxpYnJhcnkKLS0tLS0tLS0KKy0gSXNzdWUgIzEyNDUxOiB4bWwuZG9tLnB1bGxkb206IHBhcnNlKCkgbm93IG9wZW5zIGZpbGVzIGluIGJpbmFyeSBtb2RlIGluc3RlYWQKKyAgb2YgdGhlIHRleHQgbW9kZSAodXNpbmcgdGhlIGxvY2FsZSBlbmNvZGluZykgdG8gYXZvaWQgZW5jb2RpbmcgaXNzdWVzLgogCiAtIElzc3VlICMxMjE0NzogQWRqdXN0IHRoZSBuZXctaW4tMy4yIHNtdHBsaWIuc2VuZF9tZXNzYWdlIG1ldGhvZCBmb3IgYmV0dGVyCi0gIGNvbmZvcm1hbmNlIHRvIHRoZSBSRkNzOiBjb3JyZWN0bHkgaGFuZGxlIFNlbmRlciBhbmQgUmVzZW50IGhlYWRlcnMuCisgIGNvbmZvcm1hbmNlIHRvIHRoZSBSRkNzOiAgY29ycmVjdGx5IGhhbmRsZSBTZW5kZXIgYW5kIFJlc2VudC0gaGVhZGVycy4KIAogLSBJc3N1ZSAjMTIzNTI6IEZpeCBhIGRlYWRsb2NrIGluIG11bHRpcHJvY2Vzc2luZy5IZWFwIHdoZW4gYSBibG9jayBpcyBmcmVlZCBieQogICB0aGUgZ2FyYmFnZSBjb2xsZWN0b3Igd2hpbGUgdGhlIEhlYXAgbG9jayBpcyBoZWxkLgogCistIElzc3VlICMxMjQ2MjogdGltZS5zbGVlcCgpIG5vdyBjYWxscyBpbW1lZGlhdGx5IHRoZSAoUHl0aG9uKSBzaWduYWwgaGFuZGxlcgorICBpZiBpdCBpcyBpbnRlcnJ1cHRlZCBieSBhIHNpZ25hbCwgaW5zdGVhZCBvZiBoYXZpbmcgdG8gd2FpdCB1bnRpbCB0aGUgbmV4dAorICBpbnN0cnVjdGlvbi4KKworLSBJc3N1ZSAjMTI0NDI6IG5ldyBzaHV0aWwuZGlza191c2FnZSBmdW5jdGlvbiwgcHJvdmlkaW5nIHRvdGFsLCB1c2VkIGFuZCBmcmVlCisgIGRpc2sgc3BhY2Ugc3RhdGlzdGljcy4KKwogLSBJc3N1ZSAjMTI0NTE6IFRoZSBYSW5jbHVkZSBkZWZhdWx0IGxvYWRlciBvZiB4bWwuZXRyZWUgbm93IGRlY29kZXMgZmlsZXMgZnJvbQogICBVVEYtOCBpbnN0ZWFkIG9mIHRoZSBsb2NhbGUgZW5jb2RpbmcgaWYgdGhlIGVuY29kaW5nIGlzIG5vdCBzcGVjaWZpZWQuIEl0IG5vdwotICBhbHNvIG9wZW5zIFhNTCBmaWxlcyBmb3IgdGhlIHBhcnNlciBpbiBiaW5hcnkgbW9kZSBpbnN0ZWFkIG9mIHRoZSB0ZXh0IG1vZGUgdG8KLSAgYXZvaWQgZW5jb2RpbmcgaXNzdWVzLgotCi0tIElzc3VlICMxMjQ1MTogZG9jdGVzdC5kZWJ1Z19zY3JpcHQoKSBkb2Vzbid0IGNyZWF0ZSBhIHRlbXBvcmFyeSBmaWxlIGFueW1vcmUKKyAgYWxzbyBvcGVucyBYTUwgZmlsZXMgZm9yIHRoZSBwYXJzZXIgaW4gYmluYXJ5IG1vZGUgaW5zdGVhZCBvZiB0aGUgdGV4dCBtb2RlCiAgIHRvIGF2b2lkIGVuY29kaW5nIGlzc3Vlcy4KIAotLSBJc3N1ZSAjMTI0NTE6IHB5ZG9jLnN5bm9wc2lzKCkgbm93IHJlYWRzIHRoZSBlbmNvZGluZyBjb29raWUgaWYgYXZhaWxhYmxlLCB0bwotICByZWFkIHRoZSBQeXRob24gbW9kdWxlIGZyb20gdGhlIHJpZ2h0IGVuY29kaW5nLgorLSBJc3N1ZSAjMTI0NTE6IGRvY3Rlc3QuZGVidWdfc2NyaXB0KCkgZG9lc24ndCBjcmVhdGUgYSB0ZW1wb3JhcnkgZmlsZQorICBhbnltb3JlIHRvIGF2b2lkIGVuY29kaW5nIGlzc3Vlcy4KKworLSBJc3N1ZSAjMTI0NTE6IHB5ZG9jLnN5bm9wc2lzKCkgbm93IHJlYWRzIHRoZSBlbmNvZGluZyBjb29raWUgaWYgYXZhaWxhYmxlLAorICB0byByZWFkIHRoZSBQeXRob24gc2NyaXB0IGZyb20gdGhlIHJpZ2h0IGVuY29kaW5nLgogCiAtIElzc3VlICMxMjQ1MTogZGlzdHV0aWxzIG5vdyBvcGVucyB0aGUgc2V0dXAgc2NyaXB0IGluIGJpbmFyeSBtb2RlIHRvIHJlYWQgdGhlCiAgIGVuY29kaW5nIGNvb2tpZSwgaW5zdGVhZCBvZiBvcGVuaW5nIGl0IGluIFVURi04LgpAQCAtMTMyMywxNCArMjUyMCwzMiBAQAogICBzdGlsbCBwb3NzaWJsZSB0byBnbG9iYWxseSBvdmVycmlkZSB0aGUgZGVmYXVsdCBieSBzZXR0aW5nCiAgIE1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCBiZWZvcmUgbGF1bmNoaW5nIHRoZSBpbnRlcnByZXRlcjsgaXRzIHZhbHVlIG11c3QgYmUKICAgZ3JlYXRlciBvciBlcXVhbCB0byB0aGUgZGVmYXVsdCB2YWx1ZSwgdGhlIHZhbHVlIHdpdGggd2hpY2ggdGhlIGludGVycHJldGVyCi0gIHdhcyBidWlsdC4KKyAgd2FzIGJ1aWx0LiAgQWxzbywgaW1wbGVtZW50IHRoZSBzYW1lIGhhbmRsaW5nIGluIHBhY2thZ2luZy4KKworLSBJc3N1ZSAjMTI0MjI6IEluIHRoZSBjb3B5IG1vZHVsZSwgZG9uJ3Qgc3RvcmUgb2JqZWN0cyB0aGF0IGFyZSB0aGVpciBvd24gY29weQorICBpbiB0aGUgbWVtbyBkaWN0LgorCistIElzc3VlICMxMjMwMzogQWRkIHNpZ3dhaXRpbmZvKCkgYW5kIHNpZ3RpbWVkd2FpdCgpIHRvIHRoZSBzaWduYWwgbW9kdWxlLgorCistIElzc3VlICMxMjQwNDogUmVtb3ZlIEM4OSBpbmNvbXBhdGlibGUgY29kZSBmcm9tIG1tYXAgbW9kdWxlLiBQYXRjaCBieSBBa2lyYQorICBLaXRhZGEuCisKKy0gSXNzdWUgIzE4NzQ6IGVtYWlsIG5vdyBkZXRlY3RzIGFuZCByZXBvcnRzIGFzIGEgZGVmZWN0IHRoZSBwcmVzZW5jZSBvZgorICBhbnkgQ1RFIG90aGVyIHRoYW4gN2JpdCwgOGJpdCwgb3IgYmluYXJ5IG9uIGEgbXVsdGlwYXJ0LgogCiAtIElzc3VlICMxMjM4MzogRml4IHN1YnByb2Nlc3MgbW9kdWxlIHdpdGggZW52PXt9OiBkb24ndCBjb3B5IHRoZSBlbnZpcm9ubWVudAogICB2YXJpYWJsZXMsIHN0YXJ0IHdpdGggYW4gZW1wdHkgZW52aXJvbm1lbnQuCiAKLS0gSXNzdWUgIzExNTg0OiBlbWFpbC5oZWFkZXIuZGVjb2RlX2hlYWRlciBubyBsb25nZXIgZmFpbHMgaWYgdGhlIGhlYWRlciBwYXNzZWQKLSAgdG8gaXQgaXMgYSBIZWFkZXIgb2JqZWN0LCBhbmQgSGVhZGVyL21ha2VfaGVhZGVyIG5vIGxvbmdlciBmYWlsIGlmIGdpdmVuCi0gIGJpbmFyeSB1bmtub3duLThiaXQgaW5wdXQuCistIElzc3VlICMxMTYzNzogRml4IHN1cHBvcnQgZm9yIGltcG9ydGluZyBwYWNrYWdpbmcgc2V0dXAgaG9va3MgZnJvbSB0aGUKKyAgcHJvamVjdCBkaXJlY3RvcnkuCisKKy0gSXNzdWUgIzY3NzE6IE1vdmVkIHRoZSBjdXJzZXMud3JhcHBlciBmdW5jdGlvbiBmcm9tIHRoZSBzaW5nbGUtZnVuY3Rpb24KKyAgd3JhcHBlciBtb2R1bGUgaW50byBfX2luaXRfXywgZWxpbWluYXRpbmcgdGhlIG1vZHVsZS4gIFNpbmNlIF9faW5pdF9fIHdhcworICBhbHJlYWR5IGltcG9ydGluZyB0aGUgZnVuY3Rpb24gdG8gY3Vyc2VzLndyYXBwZXIsIHRoZXJlIGlzIG5vIEFQSSBjaGFuZ2UuCisKKy0gSXNzdWUgIzExNTg0OiBlbWFpbC5oZWFkZXIuZGVjb2RlX2hlYWRlciBubyBsb25nZXIgZmFpbHMgaWYgdGhlIGhlYWRlcgorICBwYXNzZWQgdG8gaXQgaXMgYSBIZWFkZXIgb2JqZWN0LCBhbmQgSGVhZGVyL21ha2VfaGVhZGVyIG5vIGxvbmdlciBmYWlsCisgIGlmIGdpdmVuIGJpbmFyeSB1bmtub3duLThiaXQgaW5wdXQuCiAKIC0gSXNzdWUgIzExNzAwOiBtYWlsYm94IHByb3h5IG9iamVjdCBjbG9zZSBtZXRob2RzIGNhbiBub3cgYmUgY2FsbGVkIG11bHRpcGxlCiAgIHRpbWVzIHdpdGhvdXQgZXJyb3IuCkBAIC0xMzQxLDM1ICsyNTU2LDEwNSBAQAogICBjb25uZWN0aW9uIGlmIGl0cyBnZXRyZXNwb25zZSgpIG1ldGhvZCBmYWlscyB3aXRoIGEgc29ja2V0IGVycm9yLiBQYXRjaAogICB3cml0dGVuIGJ5IEV6aW8gTWVsb3R0aS4KIAorLSBJc3N1ZSAjMTIyNDA6IEFsbG93IG11bHRpcGxlIHNldHVwIGhvb2tzIGluIHBhY2thZ2luZydzIHNldHVwLmNmZyBmaWxlcy4KKyAgT3JpZ2luYWwgcGF0Y2ggYnkgRXJpayBCcmF5LgorCiAtIElzc3VlICM5Mjg0OiBBbGxvdyBpbnNwZWN0LmZpbmRzb3VyY2UoKSB0byBmaW5kIHRoZSBzb3VyY2Ugb2YgZG9jdGVzdAogICBmdW5jdGlvbnMuCiAKKy0gSXNzdWUgIzExNTk1OiBGaXggYXNzb3J0ZWQgYnVncyBpbiBwYWNrYWdpbmcudXRpbC5jZmdfdG9fYXJncywgYQorICBjb21wYXRpYmlsaXR5IGhlbHBlciBmb3IgdGhlIGRpc3R1dGlscy1wYWNrYWdpbmcgdHJhbnNpdGlvbi4gIE9yaWdpbmFsIHBhdGNoCisgIGJ5IEVyaWsgQnJheS4KKworLSBJc3N1ZSAjMTIyODc6IEluIG9zc2F1ZGlvZGV2LCBjaGVjayB0aGF0IHRoZSBkZXZpY2UgaXNuJ3QgY2xvc2VkIGluIHNldmVyYWwKKyAgbWV0aG9kcy4KKwogLSBJc3N1ZSAjMTIwMDk6IEZpeGVkIHJlZ3Jlc3Npb24gaW4gbmV0cmMgZmlsZSBjb21tZW50IGhhbmRsaW5nLgogCistIElzc3VlICMxMjI0NjogV2FybiBhbmQgZmFpbCB3aGVuIHRyeWluZyB0byBpbnN0YWxsIGEgdGhpcmQtcGFydHkgcHJvamVjdCBmcm9tCisgIGFuIHVuaW5zdGFsbGVkIFB5dGhvbiAoYnVpbHQgaW4gYSBzb3VyY2UgY2hlY2tvdXQpLiAgT3JpZ2luYWwgcGF0Y2ggYnkKKyAgVHNoZXBhbmcgTGVraG9ua2hvYmUuCisKIC0gSXNzdWUgIzEwNjk0OiB6aXBmaWxlIG5vdyBpZ25vcmVzIGdhcmJhZ2UgYXQgdGhlIGVuZCBvZiBhIHppcGZpbGUuCiAKIC0gSXNzdWUgIzEyMjgzOiBGaXhlZCByZWdyZXNzaW9uIGluIHNtdHBsaWIgcXVvdGluZyBvZiBsZWFkaW5nIGRvdHMgaW4gREFUQS4KIAorLSBJc3N1ZSAjMTA0MjQ6IEFyZ3BhcnNlIG5vdyBpbmNsdWRlcyB0aGUgbmFtZXMgb2YgdGhlIG1pc3NpbmcgcmVxdWlyZWQKKyAgYXJndW1lbnRzIGluIHRoZSBtaXNzaW5nIGFyZ3VtZW50cyBlcnJvciBtZXNzYWdlLgorCiAtIElzc3VlICMxMjE2ODogU3lzTG9nSGFuZGxlciBub3cgYWxsb3dzIE5VTCB0ZXJtaW5hdGlvbiB0byBiZSBjb250cm9sbGVkIHVzaW5nCiAgIGEgbmV3ICdhcHBlbmRfbnVsJyBhdHRyaWJ1dGUgb24gdGhlIGhhbmRsZXIuCiAKIC0gSXNzdWUgIzExNTgzOiBTcGVlZCB1cCBvcy5wYXRoLmlzZGlyIG9uIFdpbmRvd3MgYnkgdXNpbmcgR2V0RmlsZUF0dHJpYnV0ZXMKICAgaW5zdGVhZCBvZiBvcy5zdGF0LgogCistIElzc3VlICMxMjAyMTogTWFrZSBtbWFwJ3MgcmVhZCgpIG1ldGhvZCBhcmd1bWVudCBvcHRpb25hbC4gUGF0Y2ggYnkgUGV0cmkKKyAgTGVodGluZW4uCisKKy0gSXNzdWUgIzkyMDU6IGNvbmN1cnJlbnQuZnV0dXJlcy5Qcm9jZXNzUG9vbEV4ZWN1dG9yIG5vdyBkZXRlY3RzIGtpbGxlZAorICBjaGlsZHJlbiBhbmQgcmFpc2VzIEJyb2tlblByb2Nlc3NQb29sIGluIHN1Y2ggYSBzaXR1YXRpb24uICBQcmV2aW91c2x5IGl0CisgIHdvdWxkIHJlbGlhYmx5IGZyZWV6ZS9kZWFkbG9jay4KKworLSBJc3N1ZSAjMTIwNDA6IEV4cG9zZSBhIG5ldyBhdHRyaWJ1dGUgYGBzZW50aW5lbGBgIG9uIGluc3RhbmNlcyBvZgorICBgYG11bHRpcHJvY2Vzc2luZy5Qcm9jZXNzYGAuICBBbHNvLCBmaXggUHJvY2Vzcy5qb2luKCkgdG8gbm90IHVzZSBwb2xsaW5nCisgIGFueW1vcmUsIHdoZW4gZ2l2ZW4gYSB0aW1lb3V0LgorCistIElzc3VlICMxMTg5MzogUmVtb3ZlIG9ic29sZXRlIGludGVybmFsIHdyYXBwZXIgY2xhc3MgYGBTU0xGYWtlRmlsZWBgIGluIHRoZQorICBzbXRwbGliIG1vZHVsZS4gIFBhdGNoIGJ5IENhdGFsaW4gSWFjb2IuCisKKy0gSXNzdWUgIzEyMDgwOiBGaXggYSBEZWNpbWFsLnBvd2VyKCkgY2FzZSB0aGF0IHRvb2sgYW4gdW5yZWFzb25hYmx5IGxvbmcgdGltZQorICB0byBjb21wdXRlLgorCistIElzc3VlICMxMjIyMTogUmVtb3ZlIF9fdmVyc2lvbl9fIGF0dHJpYnV0ZXMgZnJvbSBweWV4cGF0LCBwaWNrbGUsIHRhcmZpbGUsCisgIHB5ZG9jLCB0a2ludGVyLCBhbmQgeG1sLnBhcnNlcnMuZXhwYXQuIFRoaXMgd2VyZSB1c2VsZXNzIHZlcnNpb24gY29uc3RhbnRzCisgIGxlZnQgb3ZlciBmcm9tIHRoZSBNZXJjdXJpYWwgdHJhbnNpdGlvbgorCiAtIE5hbWVkIHR1cGxlcyBub3cgd29yayBjb3JyZWN0bHkgd2l0aCB2YXJzKCkuCiAKIC0gSXNzdWUgIzEyMDg1OiBGaXggYW4gYXR0cmlidXRlIGVycm9yIGluIHN1YnByb2Nlc3MuUG9wZW4gZGVzdHJ1Y3RvciBpZiB0aGUKICAgY29uc3RydWN0b3IgaGFzIGZhaWxlZCwgZS5nLiBiZWNhdXNlIG9mIGFuIHVuZGVjbGFyZWQga2V5d29yZCBhcmd1bWVudC4gUGF0Y2gKICAgd3JpdHRlbiBieSBPbGVnIE9zaG15YW4uCiAKLS0gSXNzdWUgIzk4NTA2NDogTWFrZSBwbGlzdGxpYiBtb3JlIHJlc2lsaWVudCB0byBmYXVsdHkgaW5wdXQgcGxpc3RzLiAgUGF0Y2ggYnkKLSAgTWhlciBNb3ZzaXN5YW4uCistIElzc3VlICMxMjAyODogTWFrZSB0aHJlYWRpbmcuX2dldF9pZGVudCgpIHB1YmxpYywgcmVuYW1lIGl0IHRvCisgIHRocmVhZGluZy5nZXRfaWRlbnQoKSBhbmQgZG9jdW1lbnQgaXQuIFRoaXMgZnVuY3Rpb24gd2FzIGFscmVhZHkgdXNlZCB1c2luZworICBfdGhyZWFkLmdldF9pZGVudCgpLgorCistIElzc3VlICMxMjE3MTogSW5jcmVtZW50YWxFbmNvZGVyLnJlc2V0KCkgb2YgQ0pLIGNvZGVjcyAobXVsdGlieXRlY29kZWMpIGNhbGxzCisgIGVuY3Jlc2V0KCkgaW5zdGVhZCBvZiBkZWNyZXNldCgpLgorCistIElzc3VlICMxMjIxODogUmVtb3ZlZCB3c2dpcmVmLmVnZy1pbmZvLgorCistIElzc3VlICMxMjE5NjogQWRkIHBpcGUyKCkgdG8gdGhlIG9zIG1vZHVsZS4KKworLSBJc3N1ZSAjOTg1MDY0OiBNYWtlIHBsaXN0bGliIG1vcmUgcmVzaWxpZW50IHRvIGZhdWx0eSBpbnB1dCBwbGlzdHMuCisgIFBhdGNoIGJ5IE1oZXIgTW92c2lzeWFuLgorCistIElzc3VlICMxNjI1OiBCWjJGaWxlIGFuZCBiejIuZGVjb21wcmVzcygpIG5vdyBzdXBwb3J0IG11bHRpLXN0cmVhbSBmaWxlcy4KKyAgSW5pdGlhbCBwYXRjaCBieSBOaXIgQWlkZXMuCisKKy0gSXNzdWUgIzEyMTc1OiBCdWZmZXJlZFJlYWRlci5yZWFkKC0xKSBub3cgY2FsbHMgcmF3LnJlYWRhbGwoKSBpZiBhdmFpbGFibGUuCisKKy0gSXNzdWUgIzEyMTc1OiBGaWxlSU8ucmVhZGFsbCgpIG5vdyBvbmx5IHJlYWRzIHRoZSBmaWxlIHBvc2l0aW9uIGFuZCBzaXplCisgIG9uY2UuCiAKIC0gSXNzdWUgIzEyMTc1OiBSYXdJT0Jhc2UucmVhZGFsbCgpIG5vdyByZXR1cm5zIE5vbmUgaWYgcmVhZCgpIHJldHVybnMgTm9uZS4KIAogLSBJc3N1ZSAjMTIxNzU6IEZpbGVJTy5yZWFkYWxsKCkgbm93IHJhaXNlcyBhIFZhbHVlRXJyb3IgaW5zdGVhZCBvZiBhbiBJT0Vycm9yCiAgIGlmIHRoZSBmaWxlIGlzIGNsb3NlZC4KIAorLSBJc3N1ZSAjMTExMDk6IE5ldyBzZXJ2aWNlX2FjdGlvbiBtZXRob2QgZm9yIEJhc2VTZXJ2ZXIsIHVzZWQgYnkgRm9ya2luZ01peGluCisgIGNsYXNzIGZvciBjbGVhbnVwLiBJbml0aWFsIFBhdGNoIGJ5IEp1c3RpbiBXYXJrLgorCistIElzc3VlICMxMjA0NTogQXZvaWQgZHVwbGljYXRlIGV4ZWN1dGlvbiBvZiBjb21tYW5kIGluCisgIGN0eXBlcy51dGlsLl9nZXRfc29uYW1lKCkuICBQYXRjaCBieSBTaWppbiBKb3NlcGguCisKKy0gSXNzdWUgIzEwODE4OiBSZW1vdmUgdGhlIFRrIEdVSSBhbmQgdGhlIHNlcnZlKCkgZnVuY3Rpb24gb2YgdGhlIHB5ZG9jIG1vZHVsZSwKKyAgcHlkb2MgLWcgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBQeXRob24gMy4yIGFuZCBpdCBoYXMgYSBuZXcgZW5oYW5jZWQgd2ViCisgIHNlcnZlci4KKworLSBJc3N1ZSAjMTQ0MTUzMDogSW4gaW1hcGxpYiwgcmVhZCB0aGUgZGF0YSBpbiBvbmUgY2h1bmsgdG8gc3BlZWQgdXAgbGFyZ2UKKyAgcmVhZHMgYW5kIHNpbXBsaWZ5IGNvZGUuCisKIC0gSXNzdWUgIzEyMDcwOiBGaXggdGhlIE1ha2VmaWxlIHBhcnNlciBvZiB0aGUgc3lzY29uZmlnIG1vZHVsZSB0byBoYW5kbGUKICAgY29ycmVjdGx5IHJlZmVyZW5jZXMgdG8gImJvZ3VzIHZhcmlhYmxlIiAoZS5nLiAicHJlZml4PSQvb3B0L3B5dGhvbiIpLgogCkBAIC0xMzc3LDgxICsyNjYyLDMwIEBACiAgIHRoZWlyIGVuY29kZSgpIG1ldGhvZCBhbnltb3JlLCBidXQgY29udGludWUgdG8gY2FsbCB0aGUgcmVzZXQoKSBtZXRob2QgaWYgdGhlCiAgIGZpbmFsIGFyZ3VtZW50IGlzIFRydWUuCiAKLS0gSXNzdWUgIzU3MTU6IEluIHNvY2tldHNlcnZlciwgY2xvc2UgdGhlIHNlcnZlciBzb2NrZXQgaW4gdGhlIGNoaWxkIHByb2Nlc3MuCistIElzc3VlICMxMjA0OTogQWRkIFJBTkRfYnl0ZXMoKSBhbmQgUkFORF9wc2V1ZG9fYnl0ZXMoKSBmdW5jdGlvbnMgdG8gdGhlIHNzbAorICBtb2R1bGUuCiAKLS0gQ29ycmVjdCBsb29rdXAgb2YgX19kaXJfXyBvbiBvYmplY3RzLiBBbW9uZyBvdGhlciB0aGluZ3MsIHRoaXMgY2F1c2VzIGVycm9ycwotICBiZXNpZGVzIEF0dHJpYnV0ZUVycm9yIGZvdW5kIG9uIGxvb2t1cCB0byBiZSBwcm9wYWdhdGVkLgorLSBJc3N1ZSAjNjUwMTogb3MuZGV2aWNlX2VuY29kaW5nKCkgcmV0dXJucyBOb25lIG9uIFdpbmRvd3MgaWYgdGhlIGFwcGxpY2F0aW9uCisgIGhhcyBubyBjb25zb2xlLgorCistIElzc3VlICMxMjEwNTogQWRkIE9fQ0xPRVhFQyB0byB0aGUgb3MgbW9kdWxlLgorCistIElzc3VlICMxMjA3OTogRGVjaW1hbCgnSW5maW5pdHknKS5mbWEoRGVjaW1hbCgnMCcpLCAoMy45MTIyNDMxODEyNjc4NmUrMTkrMGopKQorICBub3cgcmFpc2VzIFR5cGVFcnJvciAocmVmbGVjdGluZyB0aGUgaW52YWxpZCB0eXBlIG9mIHRoZSAzcmQgYXJndW1lbnQpIHJhdGhlcgorICB0aGFuIERlY2ltYWwuSW52YWxpZE9wZXJhdGlvbi4KIAogLSBJc3N1ZSAjMTIxMjQ6IHppcGltcG9ydCBkb2Vzbid0IGtlZXAgYSByZWZlcmVuY2UgdG8gemxpYi5kZWNvbXByZXNzKCkgYW55bW9yZQogICB0byBiZSBhYmxlIHRvIHVubG9hZCB0aGUgbW9kdWxlLgogCistIEFkZCB0aGUgcGFja2FnaW5nIG1vZHVsZSwgYW4gaW1wcm92ZWQgZm9yayBvZiBkaXN0dXRpbHMgKGFsc28ga25vd24gYXMKKyAgZGlzdHV0aWxzMikuCisKIC0gSXNzdWUgIzEyMDY1OiBjb25uZWN0X2V4KCkgb24gYW4gU1NMIHNvY2tldCBub3cgcmV0dXJucyB0aGUgb3JpZ2luYWwgZXJybm8KICAgd2hlbiB0aGUgc29ja2V0J3MgdGltZW91dCBleHBpcmVzIChpdCB1c2VkIHRvIHJldHVybiBOb25lKS4KIAotRXh0ZW5zaW9uIE1vZHVsZXMKLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0gSXNzdWUgIzEyNDA0OiBSZW1vdmUgQzg5IGluY29tcGF0aWJsZSBjb2RlIGZyb20gbW1hcCBtb2R1bGUuIFBhdGNoIGJ5IEFraXJhCi0gIEtpdGFkYS4KLQotLSBJc3N1ZSAjMTIyMjE6IFJlcGxhY2UgcHlleHBhdC5fX3ZlcnNpb25fXyB3aXRoIHRoZSBQeXRob24gdmVyc2lvbi4KLQotQnVpbGQKLS0tLS0tCi0KLS0gSXNzdWUgIzg3NDY6IENvcnJlY3QgZmF1bHR5IGNvbmZpZ3VyZSBjaGVja3Mgc28gdGhhdCBvcy5jaGZsYWdzKCkgYW5kCi0gIG9zLmxjaGZsYWdzKCkgYXJlIG9uY2UgYWdhaW4gYnVpbHQgb24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgdGhlc2UgZnVuY3Rpb25zCi0gICgqQlNEIGFuZCBPUyBYKS4gIEFsc28gYWRkIG5ldyBzdGF0IGZpbGUgZmxhZ3MgZm9yIE9TIFggKFVGX0hJRERFTiBhbmQKLSAgVUZfQ09NUFJFU1NFRCkuCi0KLS0gSXNzdWUgIzExMjE3OiBGb3IgNjQtYml0LzMyLWJpdCBNYWMgT1MgWCB1bml2ZXJzYWwgZnJhbWV3b3JrIGJ1aWxkcywgZW5zdXJlCi0gICJtYWtlIGluc3RhbGwiIGNyZWF0ZXMgc3ltbGlua3MgaW4gLS1wcmVmaXggYmluIGZvciB0aGUgIi0zMiIgZmlsZXMgaW4gdGhlCi0gIGZyYW1ld29yayBiaW4gZGlyZWN0b3J5IGxpa2UgdGhlIGluc3RhbGxlciBkb2VzLgotCi0KLVRlc3RzCi0tLS0tLQotCi0tIElzc3VlICMxMjQwNzogRXhwbGljaXRseSBza2lwIHRlc3RfY2FwaS5FbWJlZGRpbmdUZXN0IHVuZGVyIFdpbmRvd3MuCi0KLS0gSXNzdWUgIzEyNDAwOiByZWdydGVzdCAtVyBkb2Vzbid0IHJlcnVuIHRoZSB0ZXN0cyB0d2ljZSBhbnltb3JlLCBidXQgY2FwdHVyZXMKLSAgdGhlIG91dHB1dCBhbmQgZGlzcGxheXMgaXQgb24gZmFpbHVyZSBpbnN0ZWFkLiByZWdydGVzdCAtdiBkb2Vzbid0IHByaW50IHRoZQotICBlcnJvciB0d2ljZSBhbnltb3JlIGlmIHRoZXJlIGlzIG9ubHkgb25lIGVycm9yLgotCi0tIElzc3VlICMxMjE0MTogSW5zdGFsbCBhIGNvcHkgb2YgdGVtcGxhdGUgQyBtb2R1bGUgZmlsZSBzbyB0aGF0IHRlc3RfYnVpbGRfZXh0Ci0gIG9mIHRlc3RfZGlzdHV0aWxzIGlzIG5vIGxvbmdlciBzaWxlbnRseSBza2lwcGVkIHdoZW4gcnVuIG91dHNpZGUgb2YgYSBidWlsZAotICBkaXJlY3RvcnkuCi0KLS0gSXNzdWUgIzg3NDY6IEFkZCBhZGRpdGlvbmFsIHRlc3RzIGZvciBvcy5jaGZsYWdzKCkgYW5kIG9zLmxjaGZsYWdzKCkuICBQYXRjaAotICBieSBHYXJyZXR0IENvb3Blci4KLQotLSBJc3N1ZSAjMTA3MzY6IEZpeCB0ZXN0X3R0ayB0ZXN0X3dpZGdldHMgZmFpbHVyZXMgd2l0aCBDb2NvYSBUayA4LjUuOSBvbiBNYWMKLSAgT1MgWC4gIChQYXRjaCBieSBSb25hbGQgT3Vzc29yZW4pCi0KLS0gSXNzdWUgIzEyMDU3OiBBZGQgdGVzdHMgZm9yIElTTyAyMDIyIGNvZGVjcyAoaXNvMjAyMl9qcCwgaXNvMjAyMl9qcF8yLAotICBpc28yMDIyX2tyKS4KLQotCi1XaGF0J3MgTmV3IGluIFB5dGhvbiAzLjIuMSByZWxlYXNlIGNhbmRpZGF0ZSAxPwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotKlJlbGVhc2UgZGF0ZTogMTUtTWF5LTIwMTEqCi0KLUNvcmUgYW5kIEJ1aWx0aW5zCi0tLS0tLS0tLS0tLS0tLS0tLQotCi0tIElzc3VlICMxMjA2MDogVXNlIHNpZ19hdG9taWNfdCB0eXBlIGFuZCB2b2xhdGlsZSBrZXl3b3JkIGluIHRoZSBzaWduYWwKLSAgbW9kdWxlLiBQYXRjaCB3cml0dGVuIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KLQotLSBJc3N1ZSAjMTIwNDQ6IEZpeGVkIHN1YnByb2Nlc3MuUG9wZW4gd2hlbiB1c2VkIGFzIGEgY29udGV4dCBtYW5hZ2VyIHRvCi0gIHdhaXQgZm9yIHRoZSBwcm9jZXNzIHRvIGVuZCB3aGVuIGV4aXRpbmcgdGhlIGNvbnRleHQgdG8gYXZvaWQgdW5pbnRlbnRpb25hbGx5Ci0gIGxlYXZpbmcgem9tYmllIHByb2Nlc3NlcyBhcm91bmQuCi0KLS0gSXNzdWUgIzExOTU6IEZpeCBpbnB1dCgpIGlmIGl0IGlzIGludGVycnVwdGVkIGJ5IENUUkwrZCBhbmQgdGhlbiBDVFJMK2MsCi0gIGNsZWFyIHRoZSBlbmQtb2YtZmlsZSBpbmRpY2F0b3IgYWZ0ZXIgQ1RSTCtkLgotCi1MaWJyYXJ5Ci0tLS0tLS0tCistIElzc3VlICM4ODA5OiBUaGUgU01UUF9TU0wgY29uc3RydWN0b3IgYW5kIFNNVFAuc3RhcnR0bHMoKSBub3cgc3VwcG9ydAorICBwYXNzaW5nIGEgYGBjb250ZXh0YGAgYXJndW1lbnQgcG9pbnRpbmcgdG8gYW4gc3NsLlNTTENvbnRleHQgaW5zdGFuY2UuCisgIFBhdGNoIGJ5IEthc3VuIEhlcmF0aC4KIAogLSBJc3N1ZSAjMTEwODg6IGRvbid0IGNyYXNoIHdoZW4gdXNpbmcgRjUgdG8gcnVuIGEgc2NyaXB0IGluIElETEUgb24gTWFjT1NYCiAgIHdpdGggVGsgOC41LgpAQCAtMTQ1OSw4ICsyNjkzLDYgQEAKIC0gSXNzdWUgIzk1MTY6IElzc3VlICM5NTE2OiBhdm9pZCBlcnJvcnMgaW4gc3lzY29uZmlnIHdoZW4gTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUCiAgIGlzIHNldCBpbiBzaGVsbC4KIAotLSBJc3N1ZSAjMTIwMTI6IHNzbC5QUk9UT0NPTF9TU0x2MiBiZWNvbWVzIG9wdGlvbmFsLgotCiAtIElzc3VlICM4NjUwOiBNYWtlIHpsaWIgbW9kdWxlIDY0LWJpdCBjbGVhbi4gY29tcHJlc3MoKSwgZGVjb21wcmVzcygpIGFuZAogICB0aGVpciBpbmNyZW1lbnRhbCBjb3VudGVycGFydHMgbm93IHJhaXNlIE92ZXJmbG93RXJyb3IgaWYgZ2l2ZW4gYW4gaW5wdXQKICAgbGFyZ2VyIHRoYW4gNEdCLCBpbnN0ZWFkIG9mIHNpbGVudGx5IHRydW5jYXRpbmcgdGhlIGlucHV0IGFuZCByZXR1cm5pbmcKQEAgLTE0NzQsMTIgKzI3MDYsMTYgQEAKICAgd3JpdGluZywgdGhlbiBzZWVraW5nIGJlZm9yZSB0aGUgcHJldmlvdXMgd3JpdGUgYnV0IHN0aWxsIHdpdGhpbiBidWZmZXJlZAogICBkYXRhLCBhbmQgd3JpdGluZyBhZ2FpbikuCiAKKy0gSXNzdWUgIzk5NzE6IFdyaXRlIGFuIG9wdGltaXplZCBpbXBsZW1lbnRhdGlvbiBvZiBCdWZmZXJlZFJlYWRlci5yZWFkaW50bygpLgorICBQYXRjaCBieSBKb2huIE8nQ29ubm9yLgorCiAtIElzc3VlICMxMDI4OiBUayByZXR1cm5zIGludmFsaWQgVW5pY29kZSBudWxsIGluICVBOiBVbmljb2RlRGVjb2RlRXJyb3IuCiAgIFdpdGggVGsgPCA4LjUgX3RraW50ZXIuYzpQeXRob25DbWQoKSByYWlzZWQgVW5pY29kZURlY29kZUVycm9yLCBjYXVzZWQKICAgSURMRSB0byBleGl0LiAgQ29udmVydGVkIHRvIHZhbGlkIFVuaWNvZGUgbnVsbCBpbiBQeXRob25DbWQoKS4KIAotLSBJc3N1ZSAjMTExNjk6IGNvbXBpbGVhbGwgbW9kdWxlIHVzZXMgcmVwcigpIHRvIGZvcm1hdCBmaWxlbmFtZXMgYW5kIHBhdGhzIHRvCi0gIGVzY2FwZSBzdXJyb2dhdGUgY2hhcmFjdGVycyBhbmQgc2hvdyBzcGFjZXMuCistIElzc3VlICMxMTc5OTogdXJsbGliLnJlcXVlc3QgQXV0aGVudGljYXRpb24gSGFuZGxlcnMgd2lsbCByYWlzZSBhIFZhbHVlRXJyb3IKKyAgd2hlbiBwcmVzZW50ZWQgd2l0aCBhbiB1bnN1cHBvcnRlZCBBdXRoZW50aWNhdGlvbiBTY2hlbWUuIFBhdGNoIGNvbnRyaWJ1dGVkCisgIGJ5IFl1dmFsIEdyZWVuZmllbGQuCiAKIC0gSXNzdWUgIzEwNDE5LCAjNjAxMTogYnVpbGRfc2NyaXB0cyBjb21tYW5kIG9mIGRpc3R1dGlscyBoYW5kbGVzIGNvcnJlY3RseQogICBub24tQVNDSUkgcGF0aCAocGF0aCB0byB0aGUgUHl0aG9uIGV4ZWN1dGFibGUpLiBPcGVuIGFuZCB3cml0ZSB0aGUgc2NyaXB0IGluCkBAIC0xNDg5LDEzMyArMjcyNSw2OCBAQAogLSBJc3N1ZSAjODQ5ODogSW4gc29ja2V0LmFjY2VwdCgpLCBhbGxvdyB0byBzcGVjaWZ5IDAgYXMgYSBiYWNrbG9nIHZhbHVlIGluCiAgIG9yZGVyIHRvIGFjY2VwdCBleGFjdGx5IG9uZSBjb25uZWN0aW9uLiAgUGF0Y2ggYnkgRGFuaWVsIEV2ZXJzLgogCistIElzc3VlICMxMjAxMTogc2lnbmFsLnNpZ25hbCgpIGFuZCBzaWduYWwuc2lnaW50ZXJydXB0KCkgcmFpc2UgYW4gT1NFcnJvciwKKyAgaW5zdGVhZCBvZiBhIFJ1bnRpbWVFcnJvcjogT1NFcnJvciBoYXMgYW4gZXJybm8gYXR0cmlidXRlLgorCistIElzc3VlICMzNzA5OiBhIGZsdXNoX2hlYWRlcnMgbWV0aG9kIHRvIEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIgd2hpY2ggbWFuYWdlcworICB0aGUgc2VuZGluZyBvZiBoZWFkZXJzIHRvIG91dHB1dCBzdHJlYW0gYW5kIGZsdXNoaW5nIHRoZSBpbnRlcm5hbCBoZWFkZXJzCisgIGJ1ZmZlci4gUGF0Y2ggY29udHJpYnV0aW9uIGJ5IEFuZHJldyBTY2hhYWYKKworLSBJc3N1ZSAjMTE3NDM6IFJld3JpdGUgbXVsdGlwcm9jZXNzaW5nIGNvbm5lY3Rpb24gY2xhc3NlcyBpbiBwdXJlIFB5dGhvbi4KKwogLSBJc3N1ZSAjMTExNjQ6IFN0b3AgdHJ5aW5nIHRvIHVzZSBfeG1scGx1cyBpbiB0aGUgeG1sIG1vZHVsZS4KIAotQnVpbGQKLS0tLS0tCistIElzc3VlICMxMTg4ODogQWRkIGxvZzIgZnVuY3Rpb24gdG8gbWF0aCBtb2R1bGUuIFBhdGNoIHdyaXR0ZW4gYnkgTWFyaworICBEaWNraW5zb24uCiAKLS0gSXNzdWUgIzExMzQ3OiBVc2UgLS1uby1hcy1uZWVkZWQgd2hlbiBsaW5raW5nIGxpYnB5dGhvbjMuc28uCistIElzc3VlICMxMjAxMjogc3NsLlBST1RPQ09MX1NTTHYyIGJlY29tZXMgb3B0aW9uYWwuCiAKLVRvb2xzL0RlbW9zCi0tLS0tLS0tLS0tLQorLSBJc3N1ZSAjODQwNzogVGhlIHNpZ25hbCBoYW5kbGVyIHdyaXRlcyB0aGUgc2lnbmFsIG51bWJlciBhcyBhIHNpbmdsZSBieXRlCisgIGluc3RlYWQgb2YgYSBudWwgYnl0ZSBpbnRvIHRoZSB3YWtldXAgZmlsZSBkZXNjcmlwdG9yLiBTbyBpdCBpcyBwb3NzaWJsZSB0bworICB3YWl0IG1vcmUgdGhhbiBvbmUgc2lnbmFsIGFuZCBrbm93IHdoaWNoIHNpZ25hbHMgd2VyZSByYWlzZWQuCiAKLS0gSXNzdWUgIzExOTk2OiBsaWJweXRob24gKGdkYiksIHJlcGxhY2UgInB5LWJ0IiBjb21tYW5kIGJ5ICJweS1idC1mdWxsIiBhbmQKLSAgYWRkIGEgc21hcnRlciAicHktYnQiIGNvbW1hbmQgcHJpbnRpbmcgYSBjbGFzc2ljIFB5dGhvbiB0cmFjZWJhY2suCistIElzc3VlICM4NDA3OiBBZGQgcHRocmVhZF9raWxsKCksIHNpZ3BlbmRpbmcoKSBhbmQgc2lnd2FpdCgpIGZ1bmN0aW9ucyB0byB0aGUKKyAgc2lnbmFsIG1vZHVsZS4KIAotVGVzdHMKLS0tLS0tCi0KLS0gSXNzdWUgIzEyMDk2OiBGaXggYSByYWNlIGNvbmRpdGlvbiBpbiB0ZXN0X3RocmVhZGluZy50ZXN0X3dhaXRmb3IoKS4gUGF0Y2gKLSAgd3JpdHRlbiBieSBDaGFybGVzLUZyYW7Dp29pcyBOYXRhbGkuCi0KLS0gSXNzdWUgIzExNjE0OiBpbXBvcnQgX19oZWxsb19fIHByaW50cyAiSGVsbG8gV29ybGQhIi4gUGF0Y2ggd3JpdHRlbiBieQotICBBbmRyZWFzIFN0w7xocmsuCi0KLS0gSXNzdWUgIzU3MjM6IEltcHJvdmUganNvbiB0ZXN0cyB0byBiZSBleGVjdXRlZCB3aXRoIGFuZCB3aXRob3V0IGFjY2VsZXJhdGlvbnMuCi0KLS0gSXNzdWUgIzExOTEwOiBGaXggdGVzdF9oZWFwcSB0byBza2lwIHRoZSBDIHRlc3RzIHdoZW4gX2hlYXBxIGlzIG1pc3NpbmcuCi0KLQotV2hhdCdzIE5ldyBpbiBQeXRob24gMy4yLjEgYmV0YSAxPwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0qUmVsZWFzZSBkYXRlOiAwOC1NYXktMjAxMSoKLQotQ29yZSBhbmQgQnVpbHRpbnMKLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0gSXNzdWUgIzE4NTY6IEF2b2lkIGNyYXNoZXMgYW5kIGxvY2t1cHMgd2hlbiBkYWVtb24gdGhyZWFkcyBydW4gd2hpbGUgdGhlCi0gIGludGVycHJldGVyIGlzIHNodXR0aW5nIGRvd247IGluc3RlYWQsIHRoZXNlIHRocmVhZHMgYXJlIG5vdyBraWxsZWQgd2hlbiB0aGV5Ci0gIHRyeSB0byB0YWtlIHRoZSBHSUwuCi0KLS0gSXNzdWUgIzk3NTY6IFdoZW4gY2FsbGluZyBhIG1ldGhvZCBkZXNjcmlwdG9yIG9yIGEgc2xvdCB3cmFwcGVyIGRlc2NyaXB0b3IsCi0gIHRoZSBjaGVjayBvZiB0aGUgb2JqZWN0IHR5cGUgZG9lc24ndCByZWFkIHRoZSBfX2NsYXNzX18gYXR0cmlidXRlIGFueW1vcmUuCi0gIEZpeCBhIGNyYXNoIGlmIGEgY2xhc3Mgb3ZlcnJpZGUgaXRzIF9fY2xhc3NfXyBhdHRyaWJ1dGUgKGUuZy4gYSBwcm94eSBvZiB0aGUKLSAgc3RyIHR5cGUpLiBQYXRjaCB3cml0dGVuIGJ5IEFuZHJlYXMgU3TDvGhyay4KLQotLSBJc3N1ZSAjMTA5MTQ6IEluaXRpYWxpemUgY29ycmVjdGx5IHRoZSBmaWxlc3lzdGVtIGNvZGVjIHdoZW4gY3JlYXRpbmcgYSBuZXcKLSAgc3ViaW50ZXJwcmV0ZXIgdG8gZml4IGEgYm9vdHN0cmFwIGlzc3VlIHdpdGggY29kZWNzIGltcGxlbWVudGVkIGluIFB5dGhvbiwgYXMKLSAgdGhlIElTTy04ODU5LTE1IGNvZGVjLgotCi0tIElzc3VlICMxMDUxNzogQWZ0ZXIgZm9yaygpLCByZWluaXRpYWxpemUgdGhlIFRMUyB1c2VkIGJ5IHRoZSBQeUdJTFN0YXRlXyoKLSAgQVBJcywgdG8gYXZvaWQgYSBjcmFzaCB3aXRoIHRoZSBwdGhyZWFkIGltcGxlbWVudGF0aW9uIGluIFJIRUwgNS4gIFBhdGNoIGJ5Ci0gIENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KLQotLSBJc3N1ZSAjNjc4MDogZml4IHN0YXJ0cy9lbmRzd2l0aCBlcnJvciBtZXNzYWdlIHRvIG1lbnRpb24gdGhhdCB0dXBsZXMgYXJlCi0gIGFjY2VwdGVkIHRvby4KLQotLSBJc3N1ZSAjNTA1NzogZml4IGEgYnVnIGluIHRoZSBwZWVwaG9sZXIgdGhhdCBsZWQgdG8gbm9uLXBvcnRhYmxlIHB5YyBmaWxlcwotICBiZXR3ZWVuIG5hcnJvdyBhbmQgd2lkZSBidWlsZHMgd2hpbGUgb3B0aW1pemluZyBCSU5BUllfU1VCU0NSIG9uIG5vbi1CTVAgY2hhcnMKLSAgKGUuZy4gIlxVMDAwMTIzNDUiWzBdKS4KLQotLSBJc3N1ZSAjMTE4NDU6IEZpeCB0eXBvIGluIHJhbmdlb2JqZWN0LmMgdGhhdCBjYXVzZWQgYSBjcmFzaCBpbgotICBjb21wdXRlX3NsaWNlX2luZGljZXMuICBQYXRjaCBieSBEYW5pZWwgVXJiYW4uCi0KLS0gSXNzdWUgIzExNjUwOiBQeU9TX1N0ZGlvUmVhZGxpbmUoKSByZXRyaWVzIGZnZXRzKCkgaWYgaXQgd2FzIGludGVycnVwdGVkCi0gIChFSU5UUiksIGZvciBleGFtcGxlIGlmIHRoZSBwcm9ncmFtIGlzIHN0b3BwZWQgd2l0aCBDVFJMK3ogb24gTWFjIE9TIFguIFBhdGNoCi0gIHdyaXR0ZW4gYnkgQ2hhcmxlcy1GcmFuY29pcyBOYXRhbGkuCi0KLS0gSXNzdWUgIzExMzk1OiBpby5GaWxlSU8oKS53cml0ZSgpIGNsYW1wcyB0aGUgZGF0YSBsZW5ndGggdG8gMzIsNzY3IGJ5dGVzIG9uCi0gIFdpbmRvd3MgaWYgdGhlIGZpbGUgaXMgYSBUVFkgdG8gd29ya2Fyb3VuZCBhIFdpbmRvd3MgYnVnLiBUaGUgV2luZG93cyBjb25zb2xlCi0gIHJldHVybnMgYW4gZXJyb3IgKDEyOiBub3QgZW5vdWdoIHNwYWNlIGVycm9yKSBvbiB3cml0aW5nIGludG8gc3Rkb3V0IGlmIHN0ZG91dAotICBtb2RlIGlzIGJpbmFyeSBhbmQgdGhlIGxlbmd0aCBpcyBncmVhdGVyIHRoYW4gNjYsMDAwIGJ5dGVzIChvciBsZXNzLCBkZXBlbmRpbmcKLSAgb24gaGVhcCB1c2FnZSkuCi0KLS0gSXNzdWUgIzExMzIwOiBmaXggYm9ndXMgbWVtb3J5IG1hbmFnZW1lbnQgaW4gTW9kdWxlcy9nZXRwYXRoLmMsIGxlYWRpbmcgdG8gYQotICBwb3NzaWJsZSBjcmFzaCB3aGVuIGNhbGxpbmcgUHlfU2V0UGF0aCgpLgotCi0tIElzc3VlICMxMTUxMDogRml4ZWQgb3B0aW1pemVyIGJ1ZyB3aGljaCB0dXJuZWQgImEsYj17MSwxfSIgaW50byAiYSxiPSgxLDEpIi4KLQotLSBJc3N1ZSAjMTE0MzI6IEEgYnVnIHdhcyBpbnRyb2R1Y2VkIGluIHN1YnByb2Nlc3MuUG9wZW4gb24gcG9zaXggc3lzdGVtcyB3aXRoCi0gIDMuMi4wIHdoZXJlIHRoZSBzdGRvdXQgb3Igc3RkZXJyIGZpbGUgZGVzY3JpcHRvciBiZWluZyB0aGUgc2FtZSBhcyB0aGUgc3RkaW4KLSAgZmlsZSBkZXNjcmlwdG9yIHdvdWxkIHJhaXNlIGFuIGV4Y2VwdGlvbi4gd2ViYnJvd3Nlci5vcGVuIHdvdWxkIGZhaWwuIGZpeGVkLgotCi0tIElzc3VlICMxMTQ1MDogRG9uJ3QgdHJ1bmNhdGUgaGcgdmVyc2lvbiBpbmZvIGluIFB5X0dldEJ1aWxkSW5mbygpIHdoZW4gdGhlcmUKLSAgYXJlIG1hbnkgdGFncyAoZS5nLiB3aGVuIHVzaW5nIG1xKS4gIFBhdGNoIGJ5IE5hZGVlbSBWYXdkYS4KLQotLSBJc3N1ZSAjMTEyNDY6IEZpeCBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJVYiKSB0byBkZWNvZGUgdGhlIGJ5dGUgc3RyaW5nIGZyb20KLSAgVVRGLTggKHdpdGggcmVwbGFjZSBlcnJvciBoYW5kbGVyKSBpbnN0ZWFkIG9mIElTTy04ODU5LTEgKGluIHN0cmljdCBtb2RlKS4KLSAgUGF0Y2ggd3JpdHRlbiBieSBSYXkgQWxsZW4uCi0KLS0gSXNzdWUgIzExMjg2OiBSYWlzZSBhIFZhbHVlRXJyb3IgZnJvbSBjYWxsaW5nIFB5TWVtb3J5Vmlld19Gcm9tQnVmZmVyIHdpdGggYQotICBidWZmZXIgc3RydWN0IGhhdmluZyBhIE5VTEwgZGF0YSBwb2ludGVyLgotCi0tIElzc3VlICMxMTI3MjogT24gV2luZG93cywgaW5wdXQoKSBzdHJpcHMgJ1xyJyAoYW5kIG5vdCBvbmx5ICdcbicpLCBhbmQKLSAgc3lzLnN0ZGluIHVzZXMgdW5pdmVyc2FsIG5ld2xpbmUgKHJlcGxhY2UgJ1xyXG4nIGJ5ICdcbicpLgotCi0tIGlzc3VlICMxMTgyODogc3RhcnRzd2l0aCBhbmQgZW5kc3dpdGggZG9uJ3QgYWNjZXB0IE5vbmUgYXMgc2xpY2UgaW5kZXguICBQYXRjaAotICBieSBUb3JzdGVuIEJlY2tlci4KLQotLSBJc3N1ZSAjMTA4MzA6IEZpeCBQeVVuaWNvZGVfRnJvbUZvcm1hdFYoIiVjIikgZm9yIG5vbi1CTVAgY2hhcmFjdGVycyBvbgotICBuYXJyb3cgYnVpbGQuCi0KLS0gQ2hlY2sgZm9yIE5VTEwgcmVzdWx0IGluIFB5VHlwZV9Gcm9tU3BlYy4KLQotLSBJc3N1ZSAjMTEzODY6IGJ5dGVhcnJheS5wb3AoKSBub3cgdGhyb3dzIEluZGV4RXJyb3Igd2hlbiB0aGUgYnl0ZWFycmF5IGlzCi0gIGVtcHR5LCBpbnN0ZWFkIG9mIE92ZXJmbG93RXJyb3IuCi0KLUxpYnJhcnkKLS0tLS0tLS0KLQotLSBJc3N1ZSAjMTE5Mjc6IFNNVFBfU1NMIG5vdyB1c2VzIHBvcnQgNDY1IGJ5IGRlZmF1bHQgYXMgZG9jdW1lbnRlZC4gIFBhdGNoIGJ5Ci0gIEthc3VuIEhlcmF0aC4KKy0gSXNzdWUgIzExOTI3OiBTTVRQX1NTTCBub3cgdXNlcyBwb3J0IDQ2NSBieSBkZWZhdWx0IGFzIGRvY3VtZW50ZWQuICBQYXRjaAorICBieSBLYXN1biBIZXJhdGguCiAKIC0gSXNzdWUgIzEyMDAyOiBmdHBsaWIncyBhYm9ydCgpIG1ldGhvZCByYWlzZXMgVHlwZUVycm9yLgogCistIElzc3VlICMxMTkxNjogQWRkIGEgbnVtYmVyIG9mIE1hY09TWCBzcGVjaWZpYyBkZWZpbml0aW9ucyB0byB0aGUgZXJybm8gbW9kdWxlLgorICBQYXRjaCBieSBQaWVycmUgQ2Fycmllci4KKwogLSBJc3N1ZSAjMTE5OTk6IGZpeGVkIHNwb3JhZGljIHN5bmMgZmFpbHVyZSBtYWlsYm94Lk1haWxkaXIgZHVlIHRvIGl0cyB0cnlpbmcgdG8KICAgZGV0ZWN0IG10aW1lIGNoYW5nZXMgYnkgY29tcGFyaW5nIHRvIHRoZSBzeXN0ZW0gY2xvY2sgaW5zdGVhZCBvZiB0byB0aGUKICAgcHJldmlvdXMgdmFsdWUgb2YgdGhlIG10aW1lLgogCistIElzc3VlICMxMTA3MjogYWRkZWQgTUxTRCBjb21tYW5kIChSRkMtMzY1OSkgc3VwcG9ydCB0byBmdHBsaWIuCisKKy0gSXNzdWUgIzg4MDg6IFRoZSBJTUFQNF9TU0wgY29uc3RydWN0b3Igbm93IGFsbG93cyBwYXNzaW5nIGFuIFNTTENvbnRleHQKKyAgcGFyYW1ldGVyIHRvIGNvbnRyb2wgcGFyYW1ldGVycyBvZiB0aGUgc2VjdXJlIGNoYW5uZWwuICBQYXRjaCBieSBTaWppbgorICBKb3NlcGguCisKIC0gbnRwYXRoLnNhbWVmaWxlIGZhaWxlZCB0byBub3RpY2UgdGhhdCAiYS50eHQiIGFuZCAiQS5UWFQiIHJlZmVyIHRvIHRoZSBzYW1lCiAgIGZpbGUgb24gV2luZG93cyBYUC4gQXMgbm90aWNlZCBpbiBpc3N1ZSAjMTA2ODQuCiAKLS0gSXNzdWUgIzEyMDAwOiBXaGVuIGEgU1NMIGNlcnRpZmljYXRlIGhhcyBhIHN1YmplY3RBbHROYW1lIHdpdGhvdXQgYW55IGROU05hbWUKLSAgZW50cnksIHNzbC5tYXRjaF9ob3N0bmFtZSgpIHNob3VsZCB1c2UgdGhlIHN1YmplY3QncyBjb21tb25OYW1lLiAgUGF0Y2ggYnkKLSAgTmljb2xhcyBCYXJlaWwuCistIElzc3VlICMxMjAwMDogV2hlbiBhIFNTTCBjZXJ0aWZpY2F0ZSBoYXMgYSBzdWJqZWN0QWx0TmFtZSB3aXRob3V0IGFueQorICBkTlNOYW1lIGVudHJ5LCBzc2wubWF0Y2hfaG9zdG5hbWUoKSBzaG91bGQgdXNlIHRoZSBzdWJqZWN0J3MgY29tbW9uTmFtZS4KKyAgUGF0Y2ggYnkgTmljb2xhcyBCYXJlaWwuCiAKLS0gSXNzdWUgIzExNjQ3OiBvYmplY3RzIGNyZWF0ZWQgdXNpbmcgY29udGV4dGxpYi5jb250ZXh0bWFuYWdlciBub3cgc3VwcG9ydCBtb3JlCi0gIHRoYW4gb25lIGNhbGwgdG8gdGhlIGZ1bmN0aW9uIHdoZW4gdXNlZCBhcyBhIGRlY29yYXRvci4gSW5pdGlhbCBwYXRjaCBieSBZc2oKLSAgUmF5LgorLSBJc3N1ZSAjMTA3NzU6IGFzc2VydFJhaXNlcywgYXNzZXJ0UmFpc2VzUmVnZXgsIGFzc2VydFdhcm5zLCBhbmQKKyAgYXNzZXJ0V2FybnNSZWdleCBub3cgYWNjZXB0IGEga2V5d29yZCBhcmd1bWVudCAnbXNnJyB3aGVuIHVzZWQgYXMgY29udGV4dAorICBtYW5hZ2Vycy4gIEluaXRpYWwgcGF0Y2ggYnkgV2luc3RvbiBFd2VydC4KKworLSBJc3N1ZSAjMTA2ODQ6IHNodXRpbC5tb3ZlIHVzZWQgdG8gZGVsZXRlIGEgZm9sZGVyIG9uIGNhc2UgaW5zZW5zaXRpdmUKKyAgZmlsZXN5c3RlbXMgd2hlbiB0aGUgc291cmNlIGFuZCBkZXN0aW5hdGlvbiBuYW1lIHdoZXJlIHRoZSBzYW1lIGV4Y2VwdAorICBmb3IgdGhlIGNhc2UuCisKKy0gSXNzdWUgIzExNjQ3OiBvYmplY3RzIGNyZWF0ZWQgdXNpbmcgY29udGV4dGxpYi5jb250ZXh0bWFuYWdlciBub3cgc3VwcG9ydAorICBtb3JlIHRoYW4gb25lIGNhbGwgdG8gdGhlIGZ1bmN0aW9uIHdoZW4gdXNlZCBhcyBhIGRlY29yYXRvci4gSW5pdGlhbCBwYXRjaAorICBieSBZc2ogUmF5LgorCistIElzc3VlICMxMTkzMDogUmVtb3ZlZCBkZXByZWNhdGVkIHRpbWUuYWNjZXB0MmR5ZWFyIHZhcmlhYmxlLgorICBSZW1vdmVkIHllYXIgPj0gMTAwMCByZXN0cmljdGlvbiBmcm9tIGRhdGV0aW1lLnN0cmZ0aW1lLgogCiAtIGxvZ2dpbmc6IGRvbid0IGRlZmluZSBRdWV1ZUxpc3RlbmVyIGlmIFB5dGhvbiBoYXMgbm8gdGhyZWFkIHN1cHBvcnQuCiAKQEAgLTE2MjQsMTYgKzI3OTUsMzkgQEAKIC0gSXNzdWUgIzExMjc3OiBtbWFwLm1tYXAoKSBjYWxscyBmY250bChmZCwgRl9GVUxMRlNZTkMpIG9uIE1hYyBPUyBYIHRvIGdldAogICBhcm91bmQgYSBtbWFwIGJ1ZyB3aXRoIHNwYXJzZSBmaWxlcy4gUGF0Y2ggd3JpdHRlbiBieSBTdGVmZmVuIERhb2RlIE51cnBtZXNvLgogCistIElzc3VlICM4NDA3OiBBZGQgc2lnbmFsLnB0aHJlYWRfc2lnbWFzaygpIGZ1bmN0aW9uIHRvIGZldGNoIGFuZC9vciBjaGFuZ2UgdGhlCisgIHNpZ25hbCBtYXNrIG9mIHRoZSBjYWxsaW5nIHRocmVhZC4KKwogLSBJc3N1ZSAjMTE4NTg6IGNvbmZpZ3BhcnNlci5FeHRlbmRlZEludGVycG9sYXRpb24gZXhwZWN0ZWQgbG93ZXItY2FzZSBzZWN0aW9uCiAgIG5hbWVzLgogCiAtIElzc3VlICMxMTMyNDogQ29uZmlnUGFyc2VyKGludGVycG9sYXRpb249Tm9uZSkgbm93IHdvcmtzIGNvcnJlY3RseS4KIAorLSBJc3N1ZSAjMTE4MTE6IHNzbC5nZXRfc2VydmVyX2NlcnRpZmljYXRlKCkgaXMgbm93IElQdjYtY29tcGF0aWJsZS4gIFBhdGNoCisgIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKwogLSBJc3N1ZSAjMTE3NjM6IGRvbid0IHVzZSBkaWZmbGliIGluIFRlc3RDYXNlLmFzc2VydE11bHRpTGluZUVxdWFsIGlmIHRoZQogICBzdHJpbmdzIGFyZSB0b28gbG9uZy4KIAogLSBJc3N1ZSAjMTEyMzY6IGdldHBhc3MuZ2V0cGFzcyByZXNwb25kcyB0byBjdHJsLWMgb3IgY3RybC16IG9uIHRlcm1pbmFsLgogCistIElzc3VlICMxMTg1NjogU3BlZWQgdXAgcGFyc2luZyBvZiBKU09OIG51bWJlcnMuCisKKy0gSXNzdWUgIzExMDA1OiB0aHJlYWRpbmcuUkxvY2soKS5fcmVsZWFzZV9zYXZlKCkgcmFpc2VzIGEgUnVudGltZUVycm9yIGlmIHRoZQorICBsb2NrIHdhcyBub3QgYWNxdWlyZWQuCisKKy0gSXNzdWUgIzExMjU4OiBTcGVlZCB1cCBjdHlwZXMudXRpbC5maW5kX2xpYnJhcnkoKSB1bmRlciBMaW51eCBieSBhIGZhY3RvcgorICBvZiA1IHRvIDEwLiAgSW5pdGlhbCBwYXRjaCBieSBKb25hcyBILgorCistIElzc3VlICMxMTM4MjogVHJpdmlhbCBzeXN0ZW0gY2FsbHMsIHN1Y2ggYXMgZHVwKCkgb3IgcGlwZSgpLCBuZWVkbid0CisgIHJlbGVhc2UgdGhlIEdJTC4gIFBhdGNoIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKworLSBJc3N1ZSAjMTEyMjM6IEFkZCB0aHJlYWRpbmcuX2luZm8oKSBmdW5jdGlvbiBwcm92aWRpbmcgaW5mb3JtYXRpb25zIGFib3V0CisgIHRoZSB0aHJlYWQgaW1wbGVtZW50YXRpb24uCisKKy0gSXNzdWUgIzExNzMxOiBzaW1wbGlmeS9lbmhhbmNlIGVtYWlsIHBhcnNlci9nZW5lcmF0b3IgQVBJIGJ5IGludHJvZHVjaW5nCisgIHBvbGljeSBvYmplY3RzLgorCiAtIElzc3VlICMxMTc2ODogVGhlIHNpZ25hbCBoYW5kbGVyIG9mIHRoZSBzaWduYWwgbW9kdWxlIG9ubHkgY2FsbHMKICAgUHlfQWRkUGVuZGluZ0NhbGwoKSBmb3IgdGhlIGZpcnN0IHNpZ25hbCB0byBmaXggYSBkZWFkbG9jayBvbiByZWVudHJhbnQgb3IKICAgcGFyYWxsZWwgY2FsbHMuIFB5RXJyX1NldEludGVycnVwdCgpIHdyaXRlcyBhbHNvIGludG8gdGhlIHdha2UgdXAgZmlsZS4KQEAgLTE2NTMsNiArMjg0NywxMCBAQAogLSBJc3N1ZSAjMTE0NzQ6IEZpeCB0aGUgYnVnIHdpdGggdXJsMnBhdGhuYW1lKCkgaGFuZGxpbmcgb2YgJy9DfC8nIG9uIFdpbmRvd3MuCiAgIFBhdGNoIGJ5IFNhbnRvc28gV2lqYXlhLgogCistIElzc3VlICMxMTY4NDogY29tcGxldGUgZW1haWwucGFyc2VyIGJ5dGVzIEFQSSBieSBhZGRpbmcgQnl0ZXNIZWFkZXJQYXJzZXIuCisKKy0gVGhlIGJ6MiBtb2R1bGUgbm93IGhhbmRsZXMgNEdpQisgaW5wdXQgYnVmZmVycyBjb3JyZWN0bHkuCisKIC0gSXNzdWUgIzkyMzM6IEZpeCBqc29uLmxvYWRzKCd7fScpIHRvIHJldHVybiBhIGRpY3QgKGluc3RlYWQgb2YgYSBsaXN0KSwgd2hlbgogICBfanNvbiBpcyBub3QgYXZhaWxhYmxlLgogCkBAIC0xNjY0LDE3ICsyODYyLDMzIEBACiAtIElzc3VlICMxMDAxOTogRml4ZWQgcmVncmVzc2lvbiBpbiBqc29uIG1vZHVsZSB3aGVyZSBhbiBpbmRlbnQgb2YgMCBzdG9wcGVkCiAgIGFkZGluZyBuZXdsaW5lcyBhbmQgYWN0ZWQgaW5zdGVhZCBsaWtlICdOb25lJy4KIAorLSBJc3N1ZSAjMTExODY6IHB5ZG9jIGlnbm9yZXMgYSBtb2R1bGUgaWYgaXRzIG5hbWUgY29udGFpbnMgYSBzdXJyb2dhdGUKKyAgY2hhcmFjdGVyIGluIHRoZSBpbmRleCBvZiBtb2R1bGVzLgorCistIElzc3VlICMxMTgxNTogVXNlIGEgbGlnaHQtd2VpZ2h0IFNpbXBsZVF1ZXVlIGZvciB0aGUgcmVzdWx0IHF1ZXVlIGluCisgIGNvbmN1cnJlbnQuZnV0dXJlcy5Qcm9jZXNzUG9vbEV4ZWN1dG9yLgorCiAtIElzc3VlICM1MTYyOiBUcmVhdCBzZXJ2aWNlcyBsaWtlIGZyb3plbiBleGVjdXRhYmxlcyB0byBhbGxvdyBjaGlsZCBzcGF3bmluZwogICBmcm9tIG11bHRpcHJvY2Vzc2luZy5mb3JraW5nIG9uIFdpbmRvd3MuCiAKKy0gbG9nZ2luZy5iYXNpY0NvbmZpZyBub3cgc3VwcG9ydHMgYW4gb3B0aW9uYWwgJ2hhbmRsZXJzJyBhcmd1bWVudCB0YWtpbmcgYW4KKyAgaXRlcmFibGUgb2YgaGFuZGxlcnMgdG8gYmUgYWRkZWQgdG8gdGhlIHJvb3QgbG9nZ2VyLiBBZGRpdGlvbmFsIHBhcmFtZXRlcgorICBjaGVja3Mgd2VyZSBhbHNvIGFkZGVkIHRvIGJhc2ljQ29uZmlnLgorCiAtIElzc3VlICMxMTgxNDogRml4IGxpa2VseSB0eXBvIGluIG11bHRpcHJvY2Vzc2luZy5Qb29sLl90ZXJtaW5hdGUoKS4KIAogLSBJc3N1ZSAjMTE3NDc6IEZpeCByYW5nZSBmb3JtYXR0aW5nIGluIGRpZmZsaWIuY29udGV4dF9kaWZmKCkgYW5kCiAgIGRpZmZsaWIudW5pZmllZF9kaWZmKCkuCiAKIC0gSXNzdWUgIzg0Mjg6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIG11bHRpcHJvY2Vzc2luZy5Qb29sIHdoZW4gdGVybWluYXRpbmcKLSAgd29ya2VyIHByb2Nlc3NlczogbmV3IHByb2Nlc3NlcyB3b3VsZCBiZSBzcGF3bmVkIHdoaWxlIHRoZSBwb29sIGlzIGJlaW5nIHNodXQKLSAgZG93bi4gIFBhdGNoIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKyAgd29ya2VyIHByb2Nlc3NlczogbmV3IHByb2Nlc3NlcyB3b3VsZCBiZSBzcGF3bmVkIHdoaWxlIHRoZSBwb29sIGlzIGJlaW5nCisgIHNodXQgZG93bi4gIFBhdGNoIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKworLSBJc3N1ZSAjMjY1MDogcmUuZXNjYXBlKCkgbm8gbG9uZ2VyIGVzY2FwZXMgdGhlICdfJy4KKworLSBJc3N1ZSAjMTE3NTc6IHNlbGVjdC5zZWxlY3QoKSBub3cgcmFpc2VzIFZhbHVlRXJyb3Igd2hlbiBhIG5lZ2F0aXZlIHRpbWVvdXQKKyAgaXMgcGFzc2VkIChwcmV2aW91c2x5LCBhIHNlbGVjdC5lcnJvciB3aXRoIEVJTlZBTCB3b3VsZCBiZSByYWlzZWQpLiAgUGF0Y2gKKyAgYnkgQ2hhcmxlcy1GcmFuw6dvaXMgTmF0YWxpLgogCiAtIElzc3VlICM3MzExOiBmaXggaHRtbC5wYXJzZXIgdG8gYWNjZXB0IG5vbi1BU0NJSSBhdHRyaWJ1dGUgdmFsdWVzLgogCkBAIC0xNjgyLDIxICsyODk2LDUwIEBACiAgIG11bHRpcGFydCBzdWJwYXJ0cyB3aXRoIGFuIDgtYml0IENURSBpbnRvIHVuaWNvZGUgaW5zdGVhZCBvZiBwcmVzZXJ2aW5nIHRoZQogICBieXRlcy4KIAorLSBJc3N1ZSAjMTY5MDYwODogZW1haWwudXRpbC5mb3JtYXRhZGRyIGlzIG5vdyBSRkMgMjA0NyBhd2FyZTogIGl0IG5vdyBoYXMgYQorICBjaGFyc2V0IHBhcmFtZXRlciB0aGF0IGRlZmF1bHRzIHRvIHV0Zi04IGFuZCBpcyB1c2VkIGFzIHRoZSBjaGFyc2V0IGZvciBSRkMKKyAgMjA0NyBlbmNvZGluZyB3aGVuIHRoZSByZWFsbmFtZSBjb250YWlucyBub24tQVNDSUkgY2hhcmFjdGVycy4KKwogLSBJc3N1ZSAjMTA5NjM6IEVuc3VyZSB0aGF0IHN1YnByb2Nlc3MuY29tbXVuaWNhdGUoKSBuZXZlciByYWlzZXMgRVBJUEUuCiAKKy0gSXNzdWUgIzEwNzkxOiBJbXBsZW1lbnQgbWlzc2luZyBtZXRob2QgR3ppcEZpbGUucmVhZDEoKSwgYWxsb3dpbmcgR3ppcEZpbGUKKyAgdG8gYmUgd3JhcHBlZCBpbiBhIFRleHRJT1dyYXBwZXIuICBQYXRjaCBieSBOYWRlZW0gVmF3ZGEuCisKKy0gSXNzdWUgIzExNzA3OiBBZGRlZCBhIGZhc3QgQyB2ZXJzaW9uIG9mIGZ1bmN0b29scy5jbXBfdG9fa2V5KCkuCisgIFBhdGNoIGJ5IEZpbGlwIEdydXN6Y3p5xYRza2kuCisKKy0gSXNzdWUgIzExNjg4OiBBZGQgc3FsaXRlMy5Db25uZWN0aW9uLnNldF90cmFjZV9jYWxsYmFjaygpLiAgUGF0Y2ggYnkKKyAgVG9yc3RlbiBMYW5kc2Nob2ZmLgorCiAtIElzc3VlICMxMTc0NjogRml4IFNTTENvbnRleHQubG9hZF9jZXJ0X2NoYWluKCkgdG8gYWNjZXB0IGVsbGlwdGljIGN1cnZlCiAgIHByaXZhdGUga2V5cy4KIAorLSBJc3N1ZSAjNTg2MzogUmV3cml0ZSBCWjJGaWxlIGluIHB1cmUgUHl0aG9uLCBhbmQgYWxsb3cgaXQgdG8gYWNjZXB0CisgIGZpbGUtbGlrZSBvYmplY3RzIHVzaW5nIGEgbmV3IGBgZmlsZW9iamBgIGNvbnN0cnVjdG9yIGFyZ3VtZW50LiAgUGF0Y2ggYnkKKyAgTmFkZWVtIFZhd2RhLgorCistIHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydFNhbWVFbGVtZW50cyBoYXMgYmVlbiByZW1vdmVkLgorCiAtIHN5cy5nZXRmaWxlc3lzdGVtZW5jb2RpbmcoKSByYWlzZXMgYSBSdW50aW1lRXJyb3IgaWYgaW5pdGZzZW5jb2RpbmcoKSB3YXMgbm90CiAgIGNhbGxlZCB5ZXQ6IGRldGVjdCBib290c3RyYXAgKHN0YXJ0dXApIGlzc3VlcyBlYXJsaWVyLgogCistIElzc3VlICMxMTM5MzogQWRkIHRoZSBuZXcgZmF1bHRoYW5kbGVyIG1vZHVsZS4KKwogLSBJc3N1ZSAjMTE2MTg6IEZpeCB0aGUgdGltZW91dCBsb2dpYyBpbiB0aHJlYWRpbmcuTG9jay5hY3F1aXJlKCkgdW5kZXIgV2luZG93cy4KIAorLSBSZW1vdmVkIHRoZSAnc3RyaWN0JyBhcmd1bWVudCB0byBlbWFpbC5wYXJzZXIuUGFyc2VyLCB3aGljaCBoYXMgYmVlbgorICBkZXByZWNhdGVkIHNpbmNlIFB5dGhvbiAyLjQuCisKIC0gSXNzdWUgIzExMjU2OiBGaXggaW5zcGVjdC5nZXRjYWxsYXJncyBvbiBmdW5jdGlvbnMgdGhhdCB0YWtlIG9ubHkga2V5d29yZAogICBhcmd1bWVudHMuCiAKIC0gSXNzdWUgIzExNjk2OiBGaXggSUQgZ2VuZXJhdGlvbiBpbiBtc2lsaWIuCiAKKy0gaXRlcnRvb2xzLmFjY3VtdWxhdGUgbm93IHN1cHBvcnRzIGFuIG9wdGlvbmFsICpmdW5jKiBhcmd1bWVudCBmb3IKKyAgYSB1c2VyLXN1cHBsaWVkIGJpbmFyeSBmdW5jdGlvbi4KKworLSBJc3N1ZSAjMTE2OTI6IFJlbW92ZSB1bm5lY2Vzc2FyeSBkZW1vIGZ1bmN0aW9ucyBpbiBzdWJwcm9jZXNzIG1vZHVsZS4KKwogLSBJc3N1ZSAjOTY5NjogRml4IGV4Y2VwdGlvbiBpbmNvcnJlY3RseSByYWlzZWQgYnkgeGRybGliLlBhY2tlci5wYWNrX2ludCB3aGVuCiAgIHRyeWluZyB0byBwYWNrIGEgbmVnYXRpdmUgKGluLXJhbmdlKSBpbnRlZ2VyLgogCkBAIC0xNzEyLDcgKzI5NTUsMjYgQEAKIC0gSXNzdWUgIzExNjM1OiBEb24ndCB1c2UgcG9sbGluZyBpbiB3b3JrZXIgdGhyZWFkcyBhbmQgcHJvY2Vzc2VzIGxhdW5jaGVkIGJ5CiAgIGNvbmN1cnJlbnQuZnV0dXJlcy4KIAotLSBJc3N1ZSAjMTE2Mjg6IGNtcF90b19rZXkgZ2VuZXJhdGVkIGNsYXNzIHNob3VsZCB1c2UgX19zbG90c19fCistIElzc3VlICM2ODExOiBBbGxvdyBpbXBvcnRsaWIgdG8gY2hhbmdlIGEgY29kZSBvYmplY3QncyBjb19maWxlbmFtZSBhdHRyaWJ1dGUKKyAgdG8gbWF0Y2ggdGhlIHBhdGggdG8gd2hlcmUgdGhlIHNvdXJjZSBjb2RlIGN1cnJlbnRseSBpcywgbm90IHdoZXJlIHRoZSBjb2RlCisgIG9iamVjdCBvcmlnaW5hbGx5IGNhbWUgZnJvbS4KKworLSBJc3N1ZSAjODc1NDogSGF2ZSBpbXBvcnRsaWIgdXNlIHRoZSByZXByIG9mIGEgbW9kdWxlIG5hbWUgaW4gZXJyb3IgbWVzc2FnZXMuCisKKy0gSXNzdWUgIzExNTkxOiBQcmV2ZW50ICJpbXBvcnQgc2l0ZSIgZnJvbSBtb2RpZnlpbmcgc3lzLnBhdGggd2hlbiBweXRob24KKyAgd2FzIHN0YXJ0ZWQgd2l0aCAtUy4KKworLSBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlKCkgbm93IGFkZHMgYSBfc291cmNlIGF0dHJpYnV0ZSB0byB0aGUgZ2VuZXJhdGVkCisgIGNsYXNzLiAgVGhpcyBtYWtlIHRoZSBzb3VyY2UgbW9yZSBhY2Nlc3NpYmxlIHRoYW4gdGhlIG91dGRhdGVkCisgICJ2ZXJib3NlIiBvcHRpb24gd2hpY2ggcHJpbnRzIHRvIHN0ZG91dCBidXQgZG9lc24ndCBtYWtlIHRoZSBzb3VyY2UKKyAgc3RyaW5nIGF2YWlsYWJsZS4KKworLSBJc3N1ZSAjMTEzNzE6IE1hcmsgZ2V0b3B0IGVycm9yIG1lc3NhZ2VzIGFzIGxvY2FsaXphYmxlLiAgUGF0Y2ggYnkgRmlsaXAKKyAgR3J1c3pjennFhHNraS4KKworLSBJc3N1ZSAjMTEzMzM6IEFkZCBfX3Nsb3RzX18gdG8gY29sbGVjdGlvbnMgQUJDcy4KKworLSBJc3N1ZSAjMTE2Mjg6IGNtcF90b19rZXkgZ2VuZXJhdGVkIGNsYXNzIHNob3VsZCB1c2UgX19zbG90c19fLgogCiAtIElzc3VlICMxMTY2NjogbGV0IGhlbHAoKSBkaXNwbGF5IG5hbWVkIHR1cGxlIGF0dHJpYnV0ZXMgYW5kIG1ldGhvZHMKICAgdGhhdCBzdGFydCB3aXRoIGEgbGVhZGluZyB1bmRlcnNjb3JlLgpAQCAtMTcyMyw2ICsyOTg1LDEwIEBACiAtIElzc3VlICM1NTM3OiBGaXggdGltZTJpc296KCkgYW5kIHRpbWUybmV0c2NhcGUoKSBmdW5jdGlvbnMgb2YKICAgaHR0cGxpYi5jb29raWVqYXIgZm9yIGV4cGlyYXRpb24geWVhciBncmVhdGVyIHRoYW4gMjAzOCBvbiAzMi1iaXQgc3lzdGVtcy4KIAorLSBJc3N1ZSAjNDM5MTogVXNlIHByb3BlciBnZXR0ZXh0IHBsdXJhbCBmb3JtcyBpbiBvcHRwYXJzZS4KKworLSBJc3N1ZSAjMTExMjc6IFJhaXNlIGEgVHlwZUVycm9yIHdoZW4gdHJ5aW5nIHRvIHBpY2tsZSBhIHNvY2tldCBvYmplY3QuCisKIC0gSXNzdWUgIzExNTYzOiBDb25uZWN0aW9uOmNsb3NlIGhlYWRlciBpcyBzZW50IGJ5IHJlcXVlc3RzIHVzaW5nIFVSTE9wZW5lcgogICBjbGFzcyB3aGljaCBoZWxwcyBpbiBjbG9zaW5nIG9mIHNvY2tldHMgYWZ0ZXIgY29ubmVjdGlvbiBpcyBvdmVyLiBQYXRjaAogICBjb250cmlidXRpb25zIGJ5IEplZmYgTWNOZWlsIGFuZCBOYWRlZW0gVmF3ZGEuCkBAIC0xNzMzLDYgKzI5OTksOCBAQAogLSBJc3N1ZSAjNTQyMTogRml4IG1pc2xlYWRpbmcgZXJyb3IgbWVzc2FnZSB3aGVuIG9uZSBvZiBzb2NrZXQuc2VuZHRvKCkncwogICBhcmd1bWVudHMgaGFzIHRoZSB3cm9uZyB0eXBlLiAgUGF0Y2ggYnkgTmlraXRhIFZldG9zaGtpbi4KIAorLSBJc3N1ZSAjMTA4MTI6IEFkZCBzb21lIGV4dHJhIHBvc2l4IGZ1bmN0aW9ucyB0byB0aGUgb3MgbW9kdWxlLgorCiAtIElzc3VlICMxMDk3OTogdW5pdHRlc3Qgc3Rkb3V0IGJ1ZmZlcmluZyBub3cgd29ya3Mgd2l0aCBjbGFzcyBhbmQgbW9kdWxlCiAgIHNldHVwIGFuZCB0ZWFyZG93bi4KIApAQCAtMTc0NSw3NSArMzAxMywxNTQgQEAKICAgcmVsYXRpdmUgdG8gUHl0aG9uMiBhbmQgdGhlIHJlc3VsdCBpcyBub3cgdGhlIHNhbWUgYXMgaXQgd2FzIGluIFB5dGhvbjIuCiAKIC0gSXNzdWUgIzkyOTg6IGJhc2U2NCBib2RpZXMgd2VyZW4ndCBiZWluZyBmb2xkZWQgdG8gbGluZSBsZW5ndGhzIGxlc3MgdGhhbiA3OCwKLSAgd2hpY2ggd2FzIGEgcmVncmVzc2lvbiByZWxhdGl2ZSB0byBQeXRob24yLiAgVW5saWtlIFB5dGhvbjIsIHRoZSBsYXN0IGxpbmUgb2YKLSAgdGhlIGZvbGRlZCBib2R5IG5vdyBlbmRzIHdpdGggYSBjYXJyaWFnZSByZXR1cm4uCisgIHdoaWNoIHdhcyBhIHJlZ3Jlc3Npb24gcmVsYXRpdmUgdG8gUHl0aG9uMi4gIFVubGlrZSBQeXRob24yLCB0aGUgbGFzdCBsaW5lCisgIG9mIHRoZSBmb2xkZWQgYm9keSBub3cgZW5kcyB3aXRoIGEgY2FycmlhZ2UgcmV0dXJuLgogCiAtIElzc3VlICMxMTU2MDogc2h1dGlsLnVucGFja19hcmNoaXZlIG5vdyBjb3JyZWN0bHkgaGFuZGxlcyB0aGUgZm9ybWF0CiAgIHBhcmFtZXRlci4gUGF0Y2ggYnkgRXZhbiBEYW5kcmVhLgogCistIElzc3VlICM1ODcwOiBBZGQgYHN1YnByb2Nlc3MuREVWTlVMTGAgY29uc3RhbnQuCisKIC0gSXNzdWUgIzExMTMzOiBmaXggdHdvIGNhc2VzIHdoZXJlIGluc3BlY3QuZ2V0YXR0cl9zdGF0aWMgY2FuIHRyaWdnZXIgY29kZQogICBleGVjdXRpb24uIFBhdGNoIGJ5IEFuZHJlYXMgU3TDvGhyay4KIAogLSBJc3N1ZSAjMTE1Njk6IHVzZSBhYnNvbHV0ZSBwYXRoIHRvIHRoZSBzeXNjdGwgY29tbWFuZCBpbiBtdWx0aXByb2Nlc3NpbmcgdG8KLSAgZW5zdXJlIHRoYXQgaXQgd2lsbCBiZSBmb3VuZCByZWdhcmRsZXNzIG9mIHRoZSBzaGVsbCBQQVRILiBUaGlzIGVuc3VyZXMgdGhhdAotICBtdWx0aXByb2Nlc3NpbmcuY3B1X2NvdW50IHdvcmtzIG9uIGRlZmF1bHQgaW5zdGFsbHMgb2YgTWFjT1NYLgorICBlbnN1cmUgdGhhdCBpdCB3aWxsIGJlIGZvdW5kIHJlZ2FyZGxlc3Mgb2YgdGhlIHNoZWxsIFBBVEguIFRoaXMgZW5zdXJlcworICB0aGF0IG11bHRpcHJvY2Vzc2luZy5jcHVfY291bnQgd29ya3Mgb24gZGVmYXVsdCBpbnN0YWxscyBvZiBNYWNPU1guCiAKIC0gSXNzdWUgIzExNTAxOiBkaXN1dGlscy5hcmNoaXZlX3V0aWxzLm1ha2VfemlwZmlsZSBubyBsb25nZXIgZmFpbHMgaWYgemxpYiBpcwogICBub3QgaW5zdGFsbGVkLiBJbnN0ZWFkLCB0aGUgemlwZmlsZS5aSVBfU1RPUkVEIGNvbXByZXNzaW9uIGlzIHVzZWQgdG8gY3JlYXRlCiAgIHRoZSBaaXBGaWxlLiBQYXRjaCBieSBOYXRhbGlhIEIuIEJpZGFydC4KIAorLSBJc3N1ZSAjMTEyODk6IGBzbXRwLlNNVFBgIGNsYXNzIGJlY29tZXMgYSBjb250ZXh0IG1hbmFnZXIgc28gaXQgY2FuIGJlIHVzZWQKKyAgaW4gYSBgd2l0aGAgc3RhdGVtZW50LiAgQ29udHJpYnV0ZWQgYnkgR2lhbXBhb2xvIFJvZG9sYS4KKwogLSBJc3N1ZSAjMTE1NTQ6IEZpeGVkIHN1cHBvcnQgZm9yIEphcGFuZXNlIGNvZGVjczsgcHJldmlvdXNseSB0aGUgYm9keSBvdXRwdXQKICAgZW5jb2Rpbmcgd2FzIG5vdCBkb25lIGlmIGV1Yy1qcCBvciBzaGlmdC1qaXMgd2FzIHNwZWNpZmllZCBhcyB0aGUgY2hhcnNldC4KIAotLSBJc3N1ZSAjMTE1MDA6IEZpeGVkIGEgYnVnIGluIHRoZSBvcyB4IHByb3h5IGJ5cGFzcyBjb2RlIGZvciBmdWxseSBxdWFsaWZpZWQgSVAKLSAgYWRkcmVzc2VzIGluIHRoZSBwcm94eSBleGNlcHRpb24gbGlzdC4KKy0gSXNzdWUgIzExNTA5OiBTaWduaWZpY2FudGx5IGluY3JlYXNlIHRlc3QgY292ZXJhZ2Ugb2YgZmlsZWlucHV0LgorICBQYXRjaCBieSBEZW52ZXIgQ29uZXliZWFyZSBhdCBQeUNvbiAyMDExIFNwcmludHMuCiAKLS0gSXNzdWUgIzExNDkxOiBkYm0uZXJyb3IgaXMgbm8gbG9uZ2VyIHJhaXNlZCB3aGVuIGRibS5vcGVuIGlzIGNhbGxlZCB3aXRoIHRoZQotICAibiIgYXMgdGhlIGZsYWcgYXJndW1lbnQgYW5kIHRoZSBmaWxlIGV4aXN0cy4gVGhlIGJlaGF2aW9yIG1hdGNoZXMgdGhlCi0gIGRvY3VtZW50YXRpb24gYW5kIGdlbmVyYWwgbG9naWMuCistIElzc3VlICMxMTQwNzogYFRlc3RDYXNlLnJ1bmAgcmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdCB1c2VkIG9yIGNyZWF0ZWQuCisgIENvbnRyaWJ1dGVkIGJ5IEphbmF0aGFuIEhhcnRsZXkuCiAKLS0gSXNzdWUgIzExMTMxOiBGaXggc2lnbiBvZiB6ZXJvIGluIGRlY2ltYWwuRGVjaW1hbCBwbHVzIGFuZCBtaW51cyBvcGVyYXRpb25zCi0gIHdoZW4gdGhlIHJvdW5kaW5nIG1vZGUgaXMgUk9VTkRfRkxPT1IuCistIElzc3VlICMxMTUwMDogRml4ZWQgYSBidWcgaW4gdGhlIG9zIHggcHJveHkgYnlwYXNzIGNvZGUgZm9yIGZ1bGx5IHF1YWxpZmllZAorICBJUCBhZGRyZXNzZXMgaW4gdGhlIHByb3h5IGV4Y2VwdGlvbiBsaXN0LgorCistIElzc3VlICMxMTQ5MTogZGJtLmVycm9yIGlzIG5vIGxvbmdlciByYWlzZWQgd2hlbiBkYm0ub3BlbiBpcyBjYWxsZWQgd2l0aAorICB0aGUgIm4iIGFzIHRoZSBmbGFnIGFyZ3VtZW50IGFuZCB0aGUgZmlsZSBleGlzdHMuIFRoZSBiZWhhdmlvciBtYXRjaGVzCisgIHRoZSBkb2N1bWVudGF0aW9uIGFuZCBnZW5lcmFsIGxvZ2ljLgorCistIElzc3VlICMxMTYyNDc3OiBQb3N0ZWwgUHJpbmNpcGxlIGFkanVzdG1lbnQgdG8gZW1haWwgZGF0ZSBwYXJzaW5nOiBoYW5kbGUgdGhlCisgIGZhY3QgdGhhdCBzb21lIG5vbi1jb21wbGlhbnQgTVVBcyB1c2UgJy4nIGluc3RlYWQgb2YgJzonIGluIHRpbWUgc3BlY3MuCisKKy0gSXNzdWUgIzExMTMxOiBGaXggc2lnbiBvZiB6ZXJvIGluIGRlY2ltYWwuRGVjaW1hbCBwbHVzIGFuZCBtaW51cworICBvcGVyYXRpb25zIHdoZW4gdGhlIHJvdW5kaW5nIG1vZGUgaXMgUk9VTkRfRkxPT1IuCisKKy0gSXNzdWUgIzk5MzU6IFNwZWVkIHVwIHBpY2tsaW5nIG9mIGluc3RhbmNlcyBvZiB1c2VyLWRlZmluZWQgY2xhc3Nlcy4KIAogLSBJc3N1ZSAjNTYyMjogRml4IGN1cnNlcy53cmFwcGVyIHRvIHJhaXNlIGNvcnJlY3QgZXhjZXB0aW9uIGlmIGN1cnNlcwogICBpbml0aWFsaXphdGlvbiBmYWlscy4KIAorLSBJc3N1ZSAjMTE0MDg6IEluIHRocmVhZGluZy5Mb2NrLmFjcXVpcmUoKSwgb25seSBjYWxsIGdldHRpbWVvZmRheSgpIHdoZW4KKyAgcmVhbGx5IG5lY2Vzc2FyeS4gIFBhdGNoIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKwogLSBJc3N1ZSAjMTEzOTE6IFdyaXRpbmcgdG8gYSBtbWFwIG9iamVjdCBjcmVhdGVkIHdpdGgKICAgYGBtbWFwLlBST1RfUkVBRHxtbWFwLlBST1RfRVhFQ2BgIHdvdWxkIHNlZ2ZhdWx0IGluc3RlYWQgb2YgcmFpc2luZyBhCiAgIFR5cGVFcnJvci4gIFBhdGNoIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KIAotLSBJc3N1ZSAjMTEzMDY6IG1haWxib3ggaW4gY2VydGFpbiBjYXNlcyBhZGFwdHMgdG8gYW4gaW5hYmlsaXR5IHRvIG9wZW4gY2VydGFpbgotICBmaWxlcyBpbiByZWFkLXdyaXRlIG1vZGUuICBQcmV2aW91c2x5IGl0IGRldGVjdGVkIHRoaXMgYnkgY2hlY2tpbmcgZm9yIEVBQ0NFUywKLSAgbm93IGl0IGFsc28gY2hlY2tzIGZvciBFUk9GUy4KKy0gSXNzdWUgIzk3OTU6IGFkZCBjb250ZXh0IG1hbmFnZXIgcHJvdG9jb2wgc3VwcG9ydCBmb3Igbm50cGxpYi5OTlRQIGNsYXNzLgogCi0tIElzc3VlICMxMTI2NTogYXN5bmNvcmUgbm93IGNvcnJlY3RseSBoYW5kbGVzIEVQSVBFLCBFQkFERiBhbmQgRUFHQUlOIGVycm9ycyBvbgotICBhY2NlcHQoKSwgc2VuZCgpIGFuZCByZWN2KCkuCistIElzc3VlICMxMTMwNjogbWFpbGJveCBpbiBjZXJ0YWluIGNhc2VzIGFkYXB0cyB0byBhbiBpbmFiaWxpdHkgdG8gb3BlbgorICBjZXJ0YWluIGZpbGVzIGluIHJlYWQtd3JpdGUgbW9kZS4gIFByZXZpb3VzbHkgaXQgZGV0ZWN0ZWQgdGhpcyBieQorICBjaGVja2luZyBmb3IgRUFDQ0VTLCBub3cgaXQgYWxzbyBjaGVja3MgZm9yIEVST0ZTLgorCistIElzc3VlICMxMTI2NTogYXN5bmNvcmUgbm93IGNvcnJlY3RseSBoYW5kbGVzIEVQSVBFLCBFQkFERiBhbmQgRUFHQUlOIGVycm9ycworICBvbiBhY2NlcHQoKSwgc2VuZCgpIGFuZCByZWN2KCkuCisKKy0gSXNzdWUgIzExMzc3OiBEZXByZWNhdGUgcGxhdGZvcm0ucG9wZW4oKSBhbmQgcmVpbXBsZW1lbnQgaXQgd2l0aCBvcy5wb3BlbigpLgorCistIElzc3VlICM4NTEzOiBPbiBVTklYLCBzdWJwcm9jZXNzIHN1cHBvcnRzIGJ5dGVzIGNvbW1hbmQgc3RyaW5nLgorCistIElzc3VlICMxMDg2NjogQWRkIHNvY2tldC5zZXRob3N0bmFtZSgpLiAgSW5pdGlhbCBwYXRjaCBieSBSb3NzIExhZ2Vyd2FsbC4KKworLSBJc3N1ZSAjMTExNDA6IExvY2sucmVsZWFzZSgpIG5vdyByYWlzZXMgYSBSdW50aW1lRXJyb3Igd2hlbiBhdHRlbXB0aW5nCisgIHRvIHJlbGVhc2UgYW4gdW5hY3F1aXJlZCBsb2NrLCBhcyBjbGFpbWVkIGluIHRoZSB0aHJlYWRpbmcgZG9jdW1lbnRhdGlvbi4KKyAgVGhlIF90aHJlYWQuZXJyb3IgZXhjZXB0aW9uIGlzIG5vdyBhbiBhbGlhcyBvZiBSdW50aW1lRXJyb3IuICBQYXRjaCBieQorICBGaWxpcCBHcnVzemN6ecWEc2tpLiAgUGF0Y2ggZm9yIF9kdW1teV90aHJlYWQgYnkgQXltZXJpYyBBdWd1c3Rpbi4KKworLSBJc3N1ZSAjODU5NDogZnRwbGliIG5vdyBwcm92aWRlcyBhIHNvdXJjZV9hZGRyZXNzIHBhcmFtZXRlciB0byBzcGVjaWZ5IHdoaWNoCisgIChhZGRyZXNzLCBwb3J0KSB0byBiaW5kIHRvIGJlZm9yZSBjb25uZWN0aW5nLgogCiAtIElzc3VlICMxMTMyNjogQWRkIHRoZSBtaXNzaW5nIGNvbm5lY3RfZXgoKSBpbXBsZW1lbnRhdGlvbiBmb3IgU1NMIHNvY2tldHMsCiAgIGFuZCBtYWtlIGl0IHdvcmsgZm9yIG5vbi1ibG9ja2luZyBjb25uZWN0cy4KIAorLSBJc3N1ZSAjMTEyOTc6IEFkZCBjb2xsZWN0aW9ucy5DaGFpbk1hcCgpLgorCistIElzc3VlICMxMDc1NTogQWRkIHRoZSBwb3NpeC5mbGlzdGRpcigpIGZ1bmN0aW9uLiAgUGF0Y2ggYnkgUm9zcyBMYWdlcndhbGwuCisKKy0gSXNzdWUgIzQ3NjE6IEFkZCB0aGUgYGAqYXQoKWBgIGZhbWlseSBvZiBmdW5jdGlvbnMgKG9wZW5hdCgpLCBldGMuKSB0byB0aGUKKyAgcG9zaXggbW9kdWxlLiAgUGF0Y2ggYnkgUm9zcyBMYWdlcndhbGwuCisKIC0gSXNzdWUgIzczMjI6IFRyeWluZyB0byByZWFkIGZyb20gYSBzb2NrZXQncyBmaWxlLWxpa2Ugb2JqZWN0IGFmdGVyIGEgdGltZW91dAogICBvY2N1cnJlZCBub3cgcmFpc2VzIGFuIGVycm9yIGluc3RlYWQgb2Ygc2lsZW50bHkgbG9zaW5nIGRhdGEuCiAKKy0gSXNzdWUgIzExMjkxOiBwb3BsaWIuUE9QIG5vIGxvbmdlciBzdXBwcmVzc2VzIGVycm9ycyBvbiBxdWl0KCkuCisKKy0gSXNzdWUgIzExMTc3OiBhc3luY29yZSdzIGNyZWF0ZV9zb2NrZXQoKSBhcmd1bWVudHMgY2FuIG5vdyBiZSBvbWl0dGVkLgorCistIElzc3VlICM2MDY0OiBBZGQgYSBgYGRhZW1vbmBgIGtleXdvcmQgYXJndW1lbnQgdG8gdGhlIHRocmVhZGluZy5UaHJlYWQKKyAgYW5kIG11bHRpcHJvY2Vzc2luZy5Qcm9jZXNzIGNvbnN0cnVjdG9ycyBpbiBvcmRlciB0byBvdmVycmlkZSB0aGUKKyAgZGVmYXVsdCBiZWhhdmlvdXIgb2YgaW5oZXJpdGluZyB0aGUgZGFlbW9uaWMgcHJvcGVydHkgZnJvbSB0aGUgY3VycmVudAorICB0aHJlYWQvcHJvY2Vzcy4KKwogLSBJc3N1ZSAjMTA5NTY6IEJ1ZmZlcmVkIEkvTyBjbGFzc2VzIHJldHJ5IHJlYWRpbmcgb3Igd3JpdGluZyBhZnRlciBhIHNpZ25hbAogICBoYXMgYXJyaXZlZCBhbmQgdGhlIGhhbmRsZXIgcmV0dXJuZWQgc3VjY2Vzc2Z1bGx5LgogCistIElzc3VlICMxMDc4NDogTmV3IG9zLmdldHByaW9yaXR5KCkgYW5kIG9zLnNldHByaW9yaXR5KCkgZnVuY3Rpb25zLgorCistIElzc3VlICMxMTExNDogRml4IGNhdGFzdHJvcGhpYyBwZXJmb3JtYW5jZSBvZiB0ZWxsKCkgb24gdGV4dCBmaWxlcyAodXAKKyAgdG8gMTAwMHggZmFzdGVyIGluIHNvbWUgY2FzZXMpLiAgSXQgaXMgc3RpbGwgb25lIHRvIHR3byBvcmRlciBvZiBtYWduaXR1ZGVzCisgIHNsb3dlciB0aGFuIGJpbmFyeSB0ZWxsKCkuCisKKy0gSXNzdWUgIzEwODgyOiBBZGQgb3Muc2VuZGZpbGUgZnVuY3Rpb24uCisKKy0gSXNzdWUgIzEwODY4OiBBbGxvdyB1c2FnZSBvZiB0aGUgcmVnaXN0ZXIgbWV0aG9kIG9mIGFuIEFCQyBhcyBhIGNsYXNzCisgIGRlY29yYXRvci4KKwogLSBJc3N1ZSAjMTEyMjQ6IEZpeGVkIGEgcmVncmVzc2lvbiBpbiB0YXJmaWxlIHRoYXQgYWZmZWN0ZWQgdGhlIGZpbGUtbGlrZQogICBvYmplY3RzIHJldHVybmVkIGJ5IFRhckZpbGUuZXh0cmFjdGZpbGUoKSByZWdhcmRpbmcgcGVyZm9ybWFuY2UsIG1lbW9yeQogICBjb25zdW1wdGlvbiBhbmQgZmFpbHVyZXMgd2l0aCB0aGUgc3RyZWFtIGludGVyZmFjZS4KIAorLSBJc3N1ZSAjMTA5MjQ6IEFkZGluZyBzYWx0IGFuZCBNb2R1bGFyIENyeXB0IEZvcm1hdCB0byBjcnlwdCBsaWJyYXJ5LgorICBNb3ZlZCBvbGQgQyB3cmFwcGVyIHRvIF9jcnlwdCwgYW5kIGFkZGVkIGEgUHl0aG9uIHdyYXBwZXIgd2l0aAorICBlbmhhbmNlZCBzYWx0IGdlbmVyYXRpb24gYW5kIHNpbXBsZXIgQVBJIGZvciBwYXNzd29yZCBnZW5lcmF0aW9uLgorCiAtIElzc3VlICMxMTA3NDogTWFrZSAndG9rZW5pemUnIHNvIGl0IGNhbiBiZSByZWxvYWRlZC4KIAorLSBJc3N1ZSAjMTEwODU6IE1vdmVkIGNvbGxlY3Rpb25zIGFic3RyYWN0IGJhc2UgY2xhc3NlcyBpbnRvIGEgc2VwYXJhdGUKKyAgbW9kdWxlIGNhbGxlZCBjb2xsZWN0aW9ucy5hYmMsIGZvbGxvd2luZyB0aGUgcGF0dGVybiB1c2VkIGJ5IGltcG9ydGxpYi5hYmMuCisgIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgdGhlIG5hbWVzIGFyZSBpbXBvcnRlZCBpbnRvIHRoZSBjb2xsZWN0aW9ucworICBtb2R1bGUuCisKIC0gSXNzdWUgIzQ2ODE6IEFsbG93IG1tYXAoKSB0byB3b3JrIG9uIGZpbGUgc2l6ZXMgYW5kIG9mZnNldHMgbGFyZ2VyIHRoYW4KICAgNEdCLCBldmVuIG9uIDMyLWJpdCBidWlsZHMuICBJbml0aWFsIHBhdGNoIGJ5IFJvc3MgTGFnZXJ3YWxsLCBhZGFwdGVkIGZvcgogICAzMi1iaXQgV2luZG93cy4KIAorLSBJc3N1ZSAjMTExNjk6IGNvbXBpbGVhbGwgbW9kdWxlIHVzZXMgcmVwcigpIHRvIGZvcm1hdCBmaWxlbmFtZXMgYW5kIHBhdGhzIHRvCisgIGVzY2FwZSBzdXJyb2dhdGUgY2hhcmFjdGVycyBhbmQgc2hvdyBzcGFjZXMuCisKIC0gSXNzdWUgIzExMDg5OiBGaXggcGVyZm9ybWFuY2UgaXNzdWUgbGltaXRpbmcgdGhlIHVzZSBvZiBDb25maWdQYXJzZXIoKQogICB3aXRoIGxhcmdlIGNvbmZpZyBmaWxlcy4KIAogLSBJc3N1ZSAjMTAyNzY6IEZpeCB0aGUgcmVzdWx0cyBvZiB6bGliLmNyYzMyKCkgYW5kIHpsaWIuYWRsZXIzMigpIG9uIGJ1ZmZlcnMKICAgbGFyZ2VyIHRoYW4gNEdCLiAgUGF0Y2ggYnkgTmFkZWVtIFZhd2RhLgogCistIElzc3VlICMxMTM4ODogQWRkZWQgYSBjbGVhcigpIG1ldGhvZCB0byBNdXRhYmxlU2VxdWVuY2UKKworLSBJc3N1ZSAjMTExNzQ6IEFkZCBhcmdwYXJzZS5NZXRhdmFyVHlwZUhlbHBGb3JtYXR0ZXIsIHdoaWNoIHVzZXMgdHlwZSBuYW1lcworICBmb3IgdGhlIG5hbWVzIG9mIG9wdGlvbmFsIGFuZCBwb3NpdGlvbmFsIGFyZ3VtZW50cyBpbiBoZWxwIG1lc3NhZ2VzLgorCiAtIElzc3VlICM5MzQ4OiBSYWlzZSBhbiBlYXJseSBlcnJvciBpZiBhcmdwYXJzZSBuYXJncyBhbmQgbWV0YXZhciBkb24ndCBtYXRjaC4KIAogLSBJc3N1ZSAjODk4MjogSW1wcm92ZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIGFyZ3BhcnNlIE5hbWVzcGFjZSBvYmplY3QuCkBAIC0xODI1LDI4ICszMTcyLDEzNyBAQAogCiAtIElzc3VlICM5MzQ3OiBGaXggZm9ybWF0dGluZyBmb3IgdHVwbGVzIGluIGFyZ3BhcnNlIHR5cGU9IGVycm9yIG1lc3NhZ2VzLgogCistIElzc3VlICMxMjE5MTogQWRkZWQgc2h1dGlsLmNob3duKCkgdG8gY2hhbmdlIHVzZXIgYW5kL29yIGdyb3VwIG93bmVyIG9mIGEKKyAgZ2l2ZW4gcGF0aCBhbHNvIHNwZWNpZnlpbmcgdGhlaXIgbmFtZXMuCisKKy0gSXNzdWUgIzEzOTg4OiBUaGUgX2VsZW1lbnR0cmVlIGFjY2VsZXJhdG9yIGlzIHVzZWQgd2hlbmV2ZXIgYXZhaWxhYmxlLgorICBOb3cgeG1sLmV0cmVlLmNFbGVtZW50VHJlZSBiZWNvbWVzIGEgZGVwcmVjYXRlZCBhbGlhcyB0byBFbGVtZW50VHJlZS4KKwogQnVpbGQKIC0tLS0tCiAKKy0gSXNzdWUgIzY4MDc6IFJ1biBtc2lzdXBwb3J0Lm1hayBlYXJsaWVyLgorCistIElzc3VlICMxMDU4MDogTWlub3IgZ3JhbW1hciBjaGFuZ2UgaW4gV2luZG93cyBpbnN0YWxsZXIuCisKKy0gSXNzdWUgIzEzMzI2OiBDbGVhbiBfX3B5Y2FjaGVfXyBkaXJlY3RvcmllcyBjb3JyZWN0bHkgb24gT3BlbkJTRC4KKworLSBQRVAgMzkzOiB0aGUgY29uZmlndXJlIG9wdGlvbiAtLXdpdGgtd2lkZS11bmljb2RlIGlzIHJlbW92ZWQuCisKKy0gSXNzdWUgIzEyODUyOiBTZXQgX1hPUEVOX1NPVVJDRSB0byA3MDAsIGluc3RlYWQgb2YgNjAwLCB0byBnZXQgUE9TSVggMjAwOAorICBmdW5jdGlvbnMgb24gT3BlbkJTRCAoZS5nLiBmZG9wZW5kaXIpLgorCistIElzc3VlICMxMTg2MzogUmVtb3ZlIHN1cHBvcnQgZm9yIGxlZ2FjeSBzeXN0ZW1zIGRlcHJlY2F0ZWQgaW4gUHl0aG9uIDMuMgorICAoZm9sbG93aW5nIFBFUCAxMSkuICBUaGVzZSBzeXN0ZW1zIGFyZSBzeXN0ZW1zIHVzaW5nIE1hY2ggQyBUaHJlYWRzLAorICBTdW5PUyBsaWdodHdlaWdodCBwcm9jZXNzZXMsIEdOVSBwdGggdGhyZWFkcyBhbmQgSVJJWCB0aHJlYWRzLgorCistIElzc3VlICM4NzQ2OiBDb3JyZWN0IGZhdWx0eSBjb25maWd1cmUgY2hlY2tzIHNvIHRoYXQgb3MuY2hmbGFncygpIGFuZAorICBvcy5sY2hmbGFncygpIGFyZSBvbmNlIGFnYWluIGJ1aWx0IG9uIHN5c3RlbXMgdGhhdCBzdXBwb3J0IHRoZXNlCisgIGZ1bmN0aW9ucyAoQlNEIGFuZCBPUyBYKS4gIEFsc28gYWRkIG5ldyBzdGF0IGZpbGUgZmxhZ3MgZm9yIE9TIFgKKyAgKFVGX0hJRERFTiBhbmQgVUZfQ09NUFJFU1NFRCkuCisKKy0gSXNzdWUgIzEwNjQ1OiBJbnN0YWxsaW5nIFB5dGhvbiBkb2VzIG5vIGxvbmdlciBjcmVhdGUgYQorICBQeXRob24tWC5ZLlotcHlYLlkuZWdnLWluZm8gZmlsZSBpbiB0aGUgbGliLWR5bmxvYWQgZGlyZWN0b3J5LgorCistIERvIG5vdCBhY2NpZGVudGFsbHkgaW5jbHVkZSB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgc3FsaXRlLmggdHdpY2Ugd2hlbgorICBidWlsZGluZyBzcWxpdGUzLgorCistIElzc3VlICMxMTIxNzogRm9yIDY0LWJpdC8zMi1iaXQgTWFjIE9TIFggdW5pdmVyc2FsIGZyYW1ld29yayBidWlsZHMsCisgIGVuc3VyZSAibWFrZSBpbnN0YWxsIiBjcmVhdGVzIHN5bWxpbmtzIGluIC0tcHJlZml4IGJpbiBmb3IgdGhlICItMzIiCisgIGZpbGVzIGluIHRoZSBmcmFtZXdvcmsgYmluIGRpcmVjdG9yeSBsaWtlIHRoZSBpbnN0YWxsZXIgZG9lcy4KKworLSBJc3N1ZSAjMTEzNDc6IFVzZSAtLW5vLWFzLW5lZWRlZCB3aGVuIGxpbmtpbmcgbGlicHl0aG9uMy5zby4KKwogLSBJc3N1ZSAjMTE0MTE6IEZpeCAnbWFrZSBERVNURElSPScgd2l0aCBhIHJlbGF0aXZlIGRlc3RpbmF0aW9uLgogCi0tIElzc3VlICMxMTI2ODogUHJldmVudCBNYWMgT1MgWCBJbnN0YWxsZXIgZmFpbHVyZSBpZiBEb2N1bWVudGF0aW9uIHBhY2thZ2UgaGFkCi0gIHByZXZpb3VzbHkgYmVlbiBpbnN0YWxsZWQuCistIElzc3VlICMxMTI2ODogUHJldmVudCBNYWMgT1MgWCBJbnN0YWxsZXIgZmFpbHVyZSBpZiBEb2N1bWVudGF0aW9uCisgIHBhY2thZ2UgaGFkIHByZXZpb3VzbHkgYmVlbiBpbnN0YWxsZWQuCisKKy0gSXNzdWUgIzExNDk1OiBPU0Ygc3VwcG9ydCBpcyBlbGltaW5hdGVkLiBJdCB3YXMgZGVwcmVjYXRlZCBpbiBQeXRob24gMy4yLgorCiAKIElETEUKIC0tLS0KIAotLSBJc3N1ZSAjMTE3MTg6IElETEUncyBvcGVuIG1vZHVsZSBkaWFsb2cgY291bGRuJ3QgZmluZCB0aGUgX19pbml0X18ucHkgZmlsZSBpbgotICBhIHBhY2thZ2UuCistIElzc3VlICMxMTcxODogSURMRSdzIG9wZW4gbW9kdWxlIGRpYWxvZyBjb3VsZG4ndCBmaW5kIHRoZSBfX2luaXRfXy5weQorICBmaWxlIGluIGEgcGFja2FnZS4KIAogVG9vbHMvRGVtb3MKIC0tLS0tLS0tLS0tCiAKKy0gSXNzdWUgIzE0MDUzOiBwYXRjaGNoZWNrLnB5ICgibWFrZSBwYXRjaGNoZWNrIikgbm93IHdvcmtzIHdpdGggTVEgcGF0Y2hlcy4KKyAgUGF0Y2ggYnkgRnJhbmNpc2NvIE1hcnTDrW4gQnJ1Z3XDqS4KKworLSBJc3N1ZSAjMTM5MzA6IDJ0bzMgaXMgbm93IGFibGUgdG8gd3JpdGUgaXRzIGNvbnZlcnRlZCBvdXRwdXQgZmlsZXMgdG8gYW5vdGhlcgorICBkaXJlY3RvcnkgdHJlZSBhcyB3ZWxsIGFzIGNvcHlpbmcgdW5jaGFuZ2VkIGZpbGVzIGFuZCBhbHRlcmluZyB0aGUgZmlsZQorICBzdWZmaXguICBTZWUgaXRzIG5ldyAtbywgLVcgYW5kIC0tYWRkLXN1ZmZpeCBvcHRpb25zLiAgVGhpcyBtYWtlcyBpdCBtb3JlCisgIHVzZWZ1bCBpbiBtYW55IGF1dG9tYXRlZCBjb2RlIHRyYW5zbGF0aW9uIHdvcmtmbG93cy4KKworLSBJc3N1ZSAjMTM2Mjg6IHB5dGhvbi1nZGIucHkgaXMgbm93IGFibGUgdG8gcmV0cmlldmUgbW9yZSBmcmFtZXMgaW4gdGhlIFB5dGhvbgorICB0cmFjZWJhY2sgaWYgUHl0aG9uIGlzIG9wdGltaXplZC4KKworLSBJc3N1ZSAjMTE5OTY6IGxpYnB5dGhvbiAoZ2RiKSwgcmVwbGFjZSAicHktYnQiIGNvbW1hbmQgYnkgInB5LWJ0LWZ1bGwiIGFuZAorICBhZGQgYSBzbWFydGVyICJweS1idCIgY29tbWFuZCBwcmludGluZyBhIGNsYXNzaWMgUHl0aG9uIHRyYWNlYmFjay4KKwogLSBJc3N1ZSAjMTExNzk6IE1ha2UgY2NiZW5jaCB3b3JrIHVuZGVyIFB5dGhvbiAzLjEgYW5kIDIuNyBhZ2Fpbi4KIAorLSBJc3N1ZSAjMTA2Mzk6IHJlaW5kZW50LnB5IG5vIGxvbmdlciBjb252ZXJ0cyBuZXdsaW5lcyBhbmQgd2lsbCByYWlzZQorICBhbiBlcnJvciBpZiBhdHRlbXB0aW5nIHRvIGNvbnZlcnQgYSBmaWxlIHdpdGggbWl4ZWQgbmV3bGluZXMuCisgICItLW5ld2xpbmUiIG9wdGlvbiBhZGRlZCB0byBzcGVjaWZ5IG5ldyBsaW5lIGNoYXJhY3Rlci4KKwogRXh0ZW5zaW9uIE1vZHVsZXMKIC0tLS0tLS0tLS0tLS0tLS0tCiAKKy0gSXNzdWUgIzEzODQwOiBUaGUgZXJyb3IgbWVzc2FnZSBwcm9kdWNlZCBieSBjdHlwZXMuY3JlYXRlX3N0cmluZ19idWZmZXIKKyAgd2hlbiBnaXZlbiBhIFVuaWNvZGUgc3RyaW5nIGhhcyBiZWVuIGZpeGVkLgorCistIElzc3VlICM5OTc1OiBzb2NrZXQ6IEZpeCBpbmNvcnJlY3QgdXNlIG9mIGZsb3dpbmZvIGFuZCBzY29wZV9pZC4gUGF0Y2ggYnkKKyAgVmlsbW9zIE5lYmVoYWouCisKKy0gSXNzdWUgIzc3Nzc6IHNvY2tldDogQWRkIFJlbGlhYmxlIERhdGFncmFtIFNvY2tldHMgKFBGX1JEUykgc3VwcG9ydC4KKworLSBJc3N1ZSAjMTMxNTk6IEZpbGVJTyBhbmQgQloyQ29tcHJlc3Nvci9CWjJEZWNvbXByZXNzb3Igbm93IHVzZSBhIGxpbmVhci10aW1lCisgIGJ1ZmZlciBncm93dGggc3RyYXRlZ3kgaW5zdGVhZCBvZiBhIHF1YWRyYXRpYy10aW1lIG9uZS4KKworLSBJc3N1ZSAjMTAxNDE6IHNvY2tldDogQWRkIFNvY2tldENBTiAoUEZfQ0FOKSBzdXBwb3J0LiBJbml0aWFsIHBhdGNoIGJ5CisgIE1hdHRoaWFzIEZ1Y2hzLCB1cGRhdGVkIGJ5IFRpYWdvIEdvbsOnYWx2ZXMuCisKKy0gSXNzdWUgIzEzMDcwOiBGaXggYSBjcmFzaCB3aGVuIGEgVGV4dElPV3JhcHBlciBjYXVnaHQgaW4gYSByZWZlcmVuY2UgY3ljbGUKKyAgd291bGQgYmUgZmluYWxpemVkIGFmdGVyIHRoZSByZWZlcmVuY2UgdG8gaXRzIHVuZGVybHlpbmcgQnVmZmVyZWRSV1BhaXIncworICB3cml0ZXIgZ290IGNsZWFyZWQgYnkgdGhlIEdDLgorCistIElzc3VlICMxMjg4MTogY3R5cGVzOiBGaXggc2VnZmF1bHQgd2l0aCBsYXJnZSBzdHJ1Y3R1cmUgZmllbGQgbmFtZXMuCisKKy0gSXNzdWUgIzEzMDU4OiBvc3NhdWRpb2RldjogZml4IGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gZXJyb3IuIFBhdGNoIGJ5CisgIFRob21hcyBKYXJvc2NoLgorCistIElzc3VlICMxMzAxMzogY3R5cGVzOiBGaXggYSByZWZlcmVuY2UgbGVhayBpbiBQeUNBcnJheVR5cGVfZnJvbV9jdHlwZS4KKyAgVGhhbmtzIHRvIFN1bWFuIFNhaGEgZm9yIGZpbmRpbmcgdGhlIGJ1ZyBhbmQgcHJvdmlkaW5nIGEgcGF0Y2guCisKKy0gSXNzdWUgIzEzMDIyOiBGaXg6IF9tdWx0aXByb2Nlc3NpbmcucmVjdmZkKCkgZG9lc24ndCBjaGVjayB0aGF0CisgIGZpbGUgZGVzY3JpcHRvciB3YXMgYWN0dWFsbHkgcmVjZWl2ZWQuCisKKy0gSXNzdWUgIzExNzI3MTE6IEFkZCAnbG9uZyBsb25nJyBzdXBwb3J0IHRvIHRoZSBhcnJheSBtb2R1bGUuCisgIEluaXRpYWwgcGF0Y2ggYnkgT3JlbiBUaXJvc2ggYW5kIEhpcm9rYXp1IFlhbWFtb3RvLgorCistIElzc3VlICMxMjQ4MzogY3R5cGVzOiBGaXggYSBjcmFzaCB3aGVuIHRoZSBkZXN0cnVjdGlvbiBvZiBhIGNhbGxiYWNrCisgIG9iamVjdCB0cmlnZ2VycyB0aGUgZ2FyYmFnZSBjb2xsZWN0b3IuCisKKy0gSXNzdWUgIzEyOTUwOiBGaXggcGFzc2luZyBmaWxlIGRlc2NyaXB0b3JzIGluIG11bHRpcHJvY2Vzc2luZywgdW5kZXIKKyAgT3BlbkluZGlhbmEvSWxsdW1vcy4KKworLSBJc3N1ZSAjMTI3NjQ6IEZpeCBhIGNyYXNoIGluIGN0eXBlcyB3aGVuIHRoZSBuYW1lIG9mIGEgU3RydWN0dXJlIGZpZWxkIGlzIG5vdAorICBhIHN0cmluZy4KKworLSBJc3N1ZSAjMTEyNDE6IHN1YmNsYXNzZXMgb2YgY3R5cGVzLkFycmF5IGNhbiBub3cgYmUgc3ViY2xhc3NlZC4KKworLSBJc3N1ZSAjOTY1MTogRml4IGEgY3Jhc2ggd2hlbiBjdHlwZXMuY3JlYXRlX3N0cmluZ19idWZmZXIoMCkgd2FzIHBhc3NlZCB0bworICBzb21lIGZ1bmN0aW9ucyBsaWtlIGZpbGUud3JpdGUoKS4KKworLSBJc3N1ZSAjMTAzMDk6IERlZmluZSBfR05VX1NPVVJDRSBzbyB0aGF0IG1yZW1hcCgpIGdldHMgdGhlIHByb3BlcgorICBzaWduYXR1cmUuICBXaXRob3V0IHRoaXMsIGFyY2hpdGVjdHVyZXMgd2hlcmUgc2l6ZW9mIHZvaWQqICE9IHNpemVvZiBpbnQgYXJlCisgIGJyb2tlbi4gIFBhdGNoIGdpdmVuIGJ5IEhhbGx2YXJkIEIgRnVydXNldGguCisKIC0gSXNzdWUgIzEyMDUxOiBGaXggc2VnZmF1bHQgaW4ganNvbi5kdW1wcygpIHdoaWxlIGVuY29kaW5nIGhpZ2hseS1uZXN0ZWQKICAgb2JqZWN0cyB1c2luZyB0aGUgQyBhY2NlbGVyYXRpb25zLgogCkBAIC0xODU5LDM1ICszMzE1LDE4NCBAQAogVGVzdHMKIC0tLS0tCiAKKy0gSXNzdWUgIzExNjg5OiBGaXggYSB2YXJpYWJsZSBzY29waW5nIGVycm9yIGluIGFuIHNxbGl0ZTMgdGVzdAorCistIElzc3VlICMxMzc4NjogUmVtb3ZlIHVuaW1wbGVtZW50ZWQgJ3RyYWNlJyBsb25nIG9wdGlvbiBmcm9tIHJlZ3J0ZXN0LnB5LgorCistIElzc3VlICMxMzcyNTogRml4IHJlZ3J0ZXN0IHRvIHJlY29nbml6ZSB0aGUgZG9jdW1lbnRlZCAtZCBmbGFnLgorICBQYXRjaCBieSBFcm5vIFR1a2lhLgorCistIElzc3VlICMxMzMwNDogU2tpcCB0ZXN0IGNhc2UgaWYgdXNlciBzaXRlLXBhY2thZ2VzIGRpc2FibGVkICgtcyBvcgorICBQWVRIT05OT1VTRVJTSVRFKS4gIChQYXRjaCBieSBDYXJsIE1leWVyKQorCistIElzc3VlICM1NjYxOiBBZGQgYSB0ZXN0IGZvciBFQ09OTlJFU0VUL0VQSVBFIGhhbmRsaW5nIHRvIHRlc3RfYXN5bmNvcmUuIFBhdGNoCisgIGJ5IFhhdmllciBkZSBHYXllLgorCistIElzc3VlICMxMzIxODogRml4IHRlc3Rfc3NsIGZhaWx1cmVzIG9uIERlYmlhbi9VYnVudHUuCisKKy0gUmUtZW5hYmxlIGxpYjJ0bzMncyB0ZXN0X3BhcnNlci5weSB0ZXN0cywgdGhvdWdoIHdpdGggYW4gZXhwZWN0ZWQgZmFpbHVyZQorICAoc2VlIGlzc3VlIDEzMTI1KS4KKworLSBJc3N1ZSAjMTI2NTY6IEFkZCB0ZXN0cyBmb3IgSVB2NiBhbmQgVW5peCBzb2NrZXRzIHRvIHRlc3RfYXN5bmNvcmUuCisKKy0gSXNzdWUgIzY0ODQ6IEFkZCB1bml0IHRlc3RzIGZvciBtYWlsY2FwIG1vZHVsZSAocGF0Y2ggYnkgR3JlZ29yeSBOb2ZpKQorCistIElzc3VlICMxMTY1MTogSW1wcm92ZSB0aGUgTWFrZWZpbGUgdGVzdCB0YXJnZXRzIHRvIHJ1biBtb3JlIG9mIHRoZSB0ZXN0IHN1aXRlCisgIG1vcmUgcXVpY2tseS4gVGhlIC0tbXVsdGlwcm9jZXNzIG9wdGlvbiBpcyBub3cgZW5hYmxlZCBieSBkZWZhdWx0LCByZWR1Y2luZworICB0aGUgYW1vdW50IG9mIHRpbWUgbmVlZGVkIHRvIHJ1biB0aGUgdGVzdHMuICJtYWtlIHRlc3QiIGFuZCAibWFrZSBxdWlja3Rlc3QiCisgIG5vdyBpbmNsdWRlIHNvbWUgcmVzb3VyY2UtaW50ZW5zaXZlIHRlc3RzLCBidXQgbm8gbG9uZ2VyIHJ1biB0aGUgdGVzdCBzdWl0ZQorICB0d2ljZSB0byBjaGVjayBmb3IgYnVncyBpbiAucHljIGdlbmVyYXRpb24uIFRvb2xzL3NjcmlwdHMvcnVuX3Rlc3QucHkgcHJvdmlkZXMKKyAgYW4gZWFzeSBwbGF0Zm9ybS1pbmRlcGVuZGVudCB3YXkgdG8gcnVuIHRlc3Qgc3VpdGUgd2l0aCBzZW5zaWJsZSBkZWZhdWx0cy4KKworLSBJc3N1ZSAjMTIzMzE6IFRoZSB0ZXN0IHN1aXRlIGZvciB0aGUgcGFja2FnaW5nIG1vZHVsZSBjYW4gbm93IHJ1biBmcm9tIGFuCisgIGluc3RhbGxlZCBQeXRob24uCisKKy0gSXNzdWUgIzEyMzMxOiBUaGUgdGVzdCBzdWl0ZSBmb3IgbGliMnRvMyBjYW4gbm93IHJ1biBmcm9tIGFuIGluc3RhbGxlZAorICBQeXRob24uCisKKy0gSXNzdWUgIzEyNjI2OiBJbiByZWdydGVzdCwgYWxsb3cgdG8gZmlsdGVyIHRlc3RzIHVzaW5nIGEgZ2xvYiBmaWx0ZXIKKyAgd2l0aCB0aGUgYGAtbWBgIChvciBgYC0tbWF0Y2hgYCkgb3B0aW9uLiAgVGhpcyB3b3JrcyB3aXRoIGFsbCB0ZXN0IGNhc2VzCisgIHVzaW5nIHRoZSB1bml0dGVzdCBtb2R1bGUuICBUaGlzIGlzIHVzZWZ1bCB3aXRoIGxvbmcgdGVzdCBzdWl0ZXMKKyAgc3VjaCBhcyB0ZXN0X2lvIG9yIHRlc3Rfc3VicHJvY2Vzcy4KKworLSBJc3N1ZSAjMTI2MjQ6IEl0IGlzIG5vdyBwb3NzaWJsZSB0byBmYWlsIGFmdGVyIHRoZSBmaXJzdCBmYWlsdXJlIHdoZW4KKyAgcnVubmluZyBpbiB2ZXJib3NlIG1vZGUgKGBgLXZgYCBvciBgYC1XYGApLCBieSB1c2luZyB0aGUgYGAtLWZhaWxmYXN0YGAKKyAgKG9yIGBgLUdgYCkgb3B0aW9uIHRvIHJlZ3J0ZXN0LiAgVGhpcyBpcyB1c2VmdWwgd2l0aCBsb25nIHRlc3Qgc3VpdGVzCisgIHN1Y2ggYXMgdGVzdF9pbyBvciB0ZXN0X3N1YnByb2Nlc3MuCisKKy0gSXNzdWUgIzEyNTg3OiBDb3JyZWN0IGZhdWx0eSB0ZXN0IGZpbGUgYW5kIHJlZmVyZW5jZSBpbiB0ZXN0X3Rva2VuaXplLgorICAoUGF0Y2ggYnkgUm9iZXJ0IFhpYW8pCisKKy0gSXNzdWUgIzEyNTczOiBBZGQgcmVzb3VyY2UgY2hlY2tzIGZvciBkYW5nbGluZyBUaHJlYWQgYW5kIFByb2Nlc3Mgb2JqZWN0cy4KKworLSBJc3N1ZSAjMTI1NDk6IENvcnJlY3QgdGVzdF9wbGF0Zm9ybSB0byBub3QgZmFpbCB3aGVuIE9TIFggcmV0dXJucyAneDg2XzY0JworICBhcyB0aGUgcHJvY2Vzc29yIHR5cGUgb24gc29tZSBNYWMgc3lzdGVtcy4KKworLSBTa2lwIG5ldHdvcmsgdGVzdHMgd2hlbiBnZXRhZGRyaW5mbygpIHJldHVybnMgRUFJX0FHQUlOLCBtZWFuaW5nIGEgdGVtcG9yYXJ5CisgIGZhaWx1cmUgaW4gbmFtZSByZXNvbHV0aW9uLgorCistIElzc3VlICMxMTgxMjogU29sdmUgdHJhbnNpZW50IHNvY2tldCBmYWlsdXJlIHRvIGNvbm5lY3QgdG8gJ2xvY2FsaG9zdCcKKyAgaW4gdGVzdF90ZWxuZXRsaWIucHkuCisKKy0gU29sdmVkIGEgcG90ZW50aWFsIGRlYWRsb2NrIGluIHRlc3RfdGVsbmV0bGliLnB5LiBSZWxhdGVkIHRvIGlzc3VlICMxMTgxMi4KKworLSBBdm9pZCBmYWlsaW5nIGluIHRlc3Rfcm9ib3RwYXJzZXIgd2hlbiBtdWVibGVzbW9yYWxlZGEuY29tIGlzIGZsYWt5IGFuZAorICBhbiBvdmVyemVhbG91cyBETlMgc2VydmljZSAoZS5nLiBPcGVuRE5TKSByZWRpcmVjdHMgdG8gYSBwbGFjZWhvbGRlcgorICBXZWIgc2l0ZS4KKworLSBBdm9pZCBmYWlsaW5nIGluIHRlc3RfdXJsbGlibmV0LnRlc3RfYmFkX2FkZHJlc3Mgd2hlbiBzb21lIG92ZXJ6ZWFsb3VzCisgIEROUyBzZXJ2aWNlIChlLmcuIE9wZW5ETlMpIHJlc29sdmVzIGEgbm9uLWV4aXN0ZW50IGRvbWFpbiBuYW1lLiAgVGhlIHRlc3QKKyAgaXMgbm93IHNraXBwZWQgaW5zdGVhZC4KKworLSBJc3N1ZSAjMTI0NDA6IFdoZW4gdGVzdGluZyB3aGV0aGVyIHNvbWUgYml0cyBpbiBTU0xDb250ZXh0Lm9wdGlvbnMgY2FuIGJlCisgIHJlc2V0LCBjaGVjayB0aGUgdmVyc2lvbiBvZiB0aGUgT3BlblNTTCBoZWFkZXJzIFB5dGhvbiB3YXMgY29tcGlsZWQgYWdhaW5zdCwKKyAgcmF0aGVyIHRoYW4gdGhlIHJ1bnRpbWUgdmVyc2lvbiBvZiB0aGUgT3BlblNTTCBsaWJyYXJ5LgorCistIElzc3VlICMxMTUxMjogQWRkIGEgdGVzdCBzdWl0ZSBmb3IgdGhlIGNnaXRiIG1vZHVsZS4gUGF0Y2ggYnkgUm9iYmllIENsZW1vbnMuCisKKy0gSXNzdWUgIzEyNDk3OiBJbnN0YWxsIHRlc3QvZGF0YSB0byBwcmV2ZW50IGZhaWx1cmVzIG9mIHRoZSB2YXJpb3VzIGNvZGVjbWFwcworICB0ZXN0cy4KKworLSBJc3N1ZSAjMTI0OTY6IEluc3RhbGwgdGVzdC9jYXBhdGggZGlyZWN0b3J5IHRvIHByZXZlbnQgdGVzdF9jb25uZWN0X2NhcGF0aAorICB0ZXN0Y2FzZSBmYWlsdXJlIGluIHRlc3Rfc3NsLgorCistIElzc3VlICMxMjQ2OTogUnVuIHdha2V1cCBhbmQgcGVuZGluZyBzaWduYWwgdGVzdHMgaW4gYSBzdWJwcm9jZXNzIHRvIHJ1biB0aGUKKyAgdGVzdCBpbiBhIGZyZXNoIHByb2Nlc3Mgd2l0aCBvbmx5IG9uZSB0aHJlYWQgYW5kIHRvIG5vdCBjaGFuZ2Ugc2lnbmFsCisgIGhhbmRsaW5nIG9mIHRoZSBwYXJlbnQgcHJvY2Vzcy4KKworLSBJc3N1ZSAjODcxNjogQXZvaWQgY3Jhc2hlcyBjYXVzZWQgYnkgQXF1YSBUayBvbiBPU1ggd2hlbiBhdHRlbXB0aW5nIHRvIHJ1bgorICB0ZXN0X3RrIG9yIHRlc3RfdHRrX2d1aW9ubHkgdW5kZXIgYSB1c2VybmFtZSB0aGF0IGlzIG5vdCBjdXJyZW50bHkgbG9nZ2VkCisgIGluIHRvIHRoZSBjb25zb2xlIHdpbmRvd3NlcnZlciAoYXMgbWF5IGJlIHRoZSBjYXNlIHVuZGVyIGJ1aWxkYm90IG9yIHNzaCkuCisKKy0gSXNzdWUgIzEyNDA3OiBFeHBsaWNpdGx5IHNraXAgdGVzdF9jYXBpLkVtYmVkZGluZ1Rlc3QgdW5kZXIgV2luZG93cy4KKworLSBJc3N1ZSAjMTI0MDA6IHJlZ3J0ZXN0IC1XIGRvZXNuJ3QgcmVydW4gdGhlIHRlc3RzIHR3aWNlIGFueW1vcmUsIGJ1dCBjYXB0dXJlcworICB0aGUgb3V0cHV0IGFuZCBkaXNwbGF5cyBpdCBvbiBmYWlsdXJlIGluc3RlYWQuIHJlZ3J0ZXN0IC12IGRvZXNuJ3QgcHJpbnQgdGhlCisgIGVycm9yIHR3aWNlIGFueW1vcmUgaWYgdGhlcmUgaXMgb25seSBvbmUgZXJyb3IuCisKKy0gSXNzdWUgIzEyMTQxOiBJbnN0YWxsIGNvcGllcyBvZiB0ZW1wbGF0ZSBDIG1vZHVsZSBmaWxlIHNvIHRoYXQKKyAgdGVzdF9idWlsZF9leHQgb2YgdGVzdF9kaXN0dXRpbHMgYW5kIHRlc3RfY29tbWFuZF9idWlsZF9leHQgb2YKKyAgdGVzdF9wYWNrYWdpbmcgYXJlIG5vIGxvbmdlciBzaWxlbnRseSBza2lwcGVkIHdoZW4KKyAgcnVuIG91dHNpZGUgb2YgYSBidWlsZCBkaXJlY3RvcnkuCisKKy0gSXNzdWUgIzg3NDY6IEFkZCBhZGRpdGlvbmFsIHRlc3RzIGZvciBvcy5jaGZsYWdzKCkgYW5kIG9zLmxjaGZsYWdzKCkuCisgIFBhdGNoIGJ5IEdhcnJldHQgQ29vcGVyLgorCistIElzc3VlICMxMDczNjogRml4IHRlc3RfdHRrIHRlc3Rfd2lkZ2V0cyBmYWlsdXJlcyB3aXRoIENvY29hIFRrIDguNS45CisgIDIuOCArICBvbiBNYWMgT1MgWC4gIChQYXRjaCBieSBSb25hbGQgT3Vzc29yZW4pCisKKy0gSXNzdWUgIzEyMDU3OiBBZGQgdGVzdHMgZm9yIElTTyAyMDIyIGNvZGVjcyAoaXNvMjAyMl9qcCwgaXNvMjAyMl9qcF8yLAorICBpc28yMDIyX2tyKS4KKworLSBJc3N1ZSAjMTIwOTY6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRlc3RfdGhyZWFkaW5nLnRlc3Rfd2FpdGZvcigpLiBQYXRjaAorICB3cml0dGVuIGJ5IENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKworLSBJc3N1ZSAjMTE2MTQ6IGltcG9ydCBfX2hlbGxvX18gcHJpbnRzICJIZWxsbyBXb3JsZCEiLiBQYXRjaCB3cml0dGVuIGJ5CisgIEFuZHJlYXMgU3TDvGhyay4KKworLSBJc3N1ZSAjNTcyMzogSW1wcm92ZSBqc29uIHRlc3RzIHRvIGJlIGV4ZWN1dGVkIHdpdGggYW5kIHdpdGhvdXQgYWNjZWxlcmF0aW9ucy4KKworLSBJc3N1ZSAjMTIwNDE6IE1ha2UgdGVzdF93YWl0MyBtb3JlIHJvYnVzdC4KKwogLSBJc3N1ZSAjMTE4NzM6IENoYW5nZSByZWdleCBpbiB0ZXN0X2NvbXBpbGVhbGwgdG8gZml4IG9jY2FzaW9uYWwgZmFpbHVyZXMgd2hlbgogICB3aGVuIHRoZSByYW5kb21seSBnZW5lcmF0ZWQgdGVtcG9yYXJ5IHBhdGggaGFwcGVuZWQgdG8gbWF0Y2ggdGhlIHJlZ2V4LgogCistIElzc3VlICMxMTk1ODogRml4IEZUUCB0ZXN0cyBmb3IgSVB2NiwgYmluZCB0byAiOjoxIiBpbnN0ZWFkIG9mICJsb2NhbGhvc3QiLgorICBQYXRjaCB3cml0dGVuIGJ5IENoYXJsZXMtRnJhbmNvaXMgTmF0YWxpLgorCistIElzc3VlICM4NDA3LCAjMTE4NTk6IEZpeCB0ZXN0cyBvZiB0ZXN0X2lvIHVzaW5nIHRocmVhZHMgYW5kIGFuIGFsYXJtOiB1c2UKKyAgcHRocmVhZF9zaWdtYXNrKCkgdG8gZW5zdXJlIHRoYXQgdGhlIFNJR0FMUk0gc2lnbmFsIGlzIHJlY2VpdmVkIGJ5IHRoZSBtYWluCisgIHRocmVhZC4KKworLSBJc3N1ZSAjMTE4MTE6IEZhY3RvciBvdXQgZGV0ZWN0aW9uIG9mIElQdjYgc3VwcG9ydCBvbiB0aGUgY3VycmVudCBob3N0CisgIGFuZCBtYWtlIGl0IGF2YWlsYWJsZSBhcyBgYHRlc3Quc3VwcG9ydC5JUFY2X0VOQUJMRURgYC4gIFBhdGNoIGJ5CisgIENoYXJsZXMtRnJhbsOnb2lzIE5hdGFsaS4KKwogLSBJc3N1ZSAjMTA5MTQ6IEFkZCBhIG1pbmltYWwgZW1iZWRkaW5nIHRlc3QgdG8gdGVzdF9jYXBpLgogCi0tIElzc3VlICMxMTc5MDogRml4IHNwb3JhZGljIGZhaWx1cmVzIGluCi0gIHRlc3RfbXVsdGlwcm9jZXNzaW5nLldpdGhQcm9jZXNzZXNUZXN0Q29uZGl0aW9uLgorLSBJc3N1ZSAjMTEyMjM6IFNraXAgdGVzdF9sb2NrX2FjcXVpcmVfaW50ZXJydXB0aW9uKCkgYW5kCisgIHRlc3RfcmxvY2tfYWNxdWlyZV9pbnRlcnJ1cHRpb24oKSBvZiB0ZXN0X3RocmVhZHNpZ25hbHMgaWYgYSB0aHJlYWQgbG9jayBpcworICBpbXBsZW1lbnRlZCB1c2luZyBhIFBPU0lYIG11dGV4IGFuZCBhIFBPU0lYIGNvbmRpdGlvbiB2YXJpYWJsZS4gQSBQT1NJWAorICBjb25kaXRpb24gdmFyaWFibGUgY2Fubm90IGJlIGludGVycnVwdGVkIGJ5IGEgc2lnbmFsIChlLmcuIG9uIExpbnV4LCB0aGUKKyAgZnV0ZXggc3lzdGVtIGNhbGwgaXMgcmVzdGFydGVkKS4KKworLSBJc3N1ZSAjMTE3OTA6IEZpeCBzcG9yYWRpYyBmYWlsdXJlcyBpbiB0ZXN0X211bHRpcHJvY2Vzc2luZy5XaXRoUHJvY2Vzc2VzVGVzdENvbmRpdGlvbi4KIAogLSBGaXggcG9zc2libGUgImZpbGUgYWxyZWFkeSBleGlzdHMiIGVycm9yIHdoZW4gcnVubmluZyB0aGUgdGVzdHMgaW4gcGFyYWxsZWwuCiAKIC0gSXNzdWUgIzExNzE5OiBGaXggbWVzc2FnZSBhYm91dCB1bmV4cGVjdGVkIHRlc3RfbXNpbGliIHNraXAgb24gbm9uLVdpbmRvd3MKICAgcGxhdGZvcm1zLiBQYXRjaCBieSBOYWRlZW0gVmF3ZGEuCiAKKy0gSXNzdWUgIzExNzI3OiBBZGQgYSAtLXRpbWVvdXQgb3B0aW9uIHRvIHJlZ3J0ZXN0OiBpZiBhIHRlc3QgdGFrZXMgbW9yZSB0aGFuCisgIFRJTUVPVVQgc2Vjb25kcywgZHVtcHMgdGhlIHRyYWNlYmFjayBvZiBhbGwgdGhyZWFkcyBhbmQgZXhpdHMuCisKIC0gSXNzdWUgIzExNjUzOiBmaXggLVcgd2l0aCAtaiBpbiByZWdydGVzdC4KIAorLSBUaGUgZW1haWwgdGVzdCBzdWl0ZSBub3cgbGl2ZXMgaW4gdGhlIExpYi90ZXN0L3Rlc3RfZW1haWwgcGFja2FnZS4gIFRoZSB0ZXN0CisgIGhhcm5lc3MgY29kZSBoYXMgYWxzbyBiZWVuIG1vZGVybml6ZWQgdG8gYWxsb3cgdXNlIG9mIG5ldyB1bml0dGVzdCBmZWF0dXJlcy4KKworLSByZWdydGVzdCBub3cgZGlzY292ZXJzIHRlc3QgcGFja2FnZXMgYXMgd2VsbCBhcyB0ZXN0IG1vZHVsZXMuCisKIC0gSXNzdWUgIzExNTc3OiBpbXByb3ZlIHRlc3QgY292ZXJhZ2Ugb2YgYmluaGV4LnB5LiBQYXRjaCBieSBBcmthZHkgS29wbHlhcm92LgogCistIE5ldyB0ZXN0X2NyYXNoZXJzIGFkZGVkIHRvIGV4ZXJjaXNlIHRoZSBzY3JpcHRzIGluIHRoZSBMaWIvdGVzdC9jcmFzaGVycworICBkaXJlY3RvcnkgYW5kIGNvbmZpcm0gdGhleSBmYWlsIGFzIGV4cGVjdGVkCisKIC0gSXNzdWUgIzExNTc4OiBhZGRlZCB0ZXN0IGZvciB0aGUgdGltZWl0IG1vZHVsZS4gIFBhdGNoIGJ5IE1pY2hhZWwgSGVucnkuCiAKIC0gSXNzdWUgIzExNTAzOiBpbXByb3ZlIHRlc3QgY292ZXJhZ2Ugb2YgcG9zaXhwYXRoLnB5LiBQYXRjaCBieSBFdmFuIERhbmRyZWEuCiAKLS0gSXNzdWUgIzExNTA1OiBpbXByb3ZlcyB0ZXN0IGNvdmVyYWdlIG9mIHN0cmluZy5weS4gUGF0Y2ggYnkgQWxpY2lhCi0gIEFybGVuLgorLSBJc3N1ZSAjMTE1MDU6IGltcHJvdmVzIHRlc3QgY292ZXJhZ2Ugb2Ygc3RyaW5nLnB5LCBpbmNyZWFzZXMgZ3JhbnVsYXJpdHkgb2YKKyAgc3RyaW5nLkZvcm1hdHRlciB0ZXN0cy4gSW5pdGlhbCBwYXRjaCBieSBBbGljaWEgQXJsZW4uCiAKIC0gSXNzdWUgIzExNTQ4OiBJbXByb3ZlIHRlc3QgY292ZXJhZ2Ugb2YgdGhlIHNodXRpbCBtb2R1bGUuIFBhdGNoIGJ5CiAgIEV2YW4gRGFuZHJlYS4KIAogLSBJc3N1ZSAjMTE1NTQ6IFJlYWN0aXZhdGVkIHRlc3RfZW1haWxfY29kZWNzLgogCistIElzc3VlICMxMTUwNTogaW1wcm92ZXMgdGVzdCBjb3ZlcmFnZSBvZiBzdHJpbmcucHkuIFBhdGNoIGJ5IEFsaWNpYQorICBBcmxlbgorCiAtIElzc3VlICMxMTQ5MDogdGVzdF9zdWJwcm9jZXNzOnRlc3RfbGVha2luZ19mZHNfb25fZXJyb3Igbm8gbG9uZ2VyIGdpdmVzIGEKICAgZmFsc2UgcG9zaXRpdmUgaWYgdGhlIGxhc3QgZGlyZWN0b3J5IGluIHRoZSBwYXRoIGlzIGluYWNjZXNzaWJsZS4KIApAQCAtMTkwMCwxMiArMzUwNSw2MSBAQAogLSBJc3N1ZSAjOTkzMTogRml4IGhhbmdzIGluIEdVSSB0ZXN0cyB1bmRlciBXaW5kb3dzIGluIGNlcnRhaW4gY29uZGl0aW9ucy4KICAgUGF0Y2ggYnkgSGlyb2thenUgWWFtYW1vdG8uCiAKKy0gSXNzdWUgIzEwNTEyOiBQcm9wZXJseSBjbG9zZSBzb2NrZXRzIHVuZGVyIHRlc3QudGVzdF9jZ2kuCisKKy0gSXNzdWUgIzEwOTkyOiBNYWtlIHRlc3RzIHBhc3MgdW5kZXIgY292ZXJhZ2UuCisKIC0gSXNzdWUgIzEwODI2OiBQcmV2ZW50IHNwb3JhZGljIGZhaWx1cmUgaW4gdGVzdF9zdWJwcm9jZXNzIG9uIFNvbGFyaXMgZHVlCiAgIHRvIG9wZW4gZG9vciBmaWxlcy4KIAorLSBJc3N1ZSAjMTA5OTA6IFByZXZlbnQgdGVzdHMgZnJvbSBjbG9iYmVyaW5nIGEgc2V0IHRyYWNlIGZ1bmN0aW9uLgorCitDLUFQSQorLS0tLS0KKworLSBBZGQgUHlPYmplY3RfR2VuZXJpY0dldERpY3QgYW5kIFB5T2JqZWN0X0dlbmVyaVNldERpY3QuIFRoZXkgYXJlIGdlbmVyaWMKKyAgaW1wbGVtZW50YXRpb25zIGZvciB0aGUgZ2V0dGVyIGFuZCBzZXR0ZXIgb2YgYSBgYF9fZGljdF9fYGAgZGVzY3JpcHRvciBvZiBDCisgIHR5cGVzLgorCistIElzc3VlICMxMzcyNzogQWRkIDMgbWFjcm9zIHRvIGFjY2VzcyBQeURhdGVUaW1lX0RlbHRhIG1lbWJlcnM6CisgIFB5RGF0ZVRpbWVfREVMVEFfR0VUX0RBWVMsIFB5RGF0ZVRpbWVfREVMVEFfR0VUX1NFQ09ORFMsCisgIFB5RGF0ZVRpbWVfREVMVEFfR0VUX01JQ1JPU0VDT05EUy4KKworLSBJc3N1ZSAjMTA1NDI6IEFkZCA0IG1hY3JvcyB0byB3b3JrIHdpdGggc3Vycm9nYXRlczogUHlfVU5JQ09ERV9JU19TVVJST0dBVEUsCisgIFB5X1VOSUNPREVfSVNfSElHSF9TVVJST0dBVEUsIFB5X1VOSUNPREVfSVNfTE9XX1NVUlJPR0FURSwKKyAgUHlfVU5JQ09ERV9KT0lOX1NVUlJPR0FURVMuCisKKy0gSXNzdWUgIzEyNzI0OiBBZGQgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEIG1hY3JvIGZvciByZXR1cm5pbmcgTm90SW1wbGVtZW50ZWQuCisKKy0gUFlfUEFUQ0hMRVZFTF9SRVZJU0lPTiBoYXMgYmVlbiByZW1vdmVkLCBzaW5jZSBpdCdzIG1lYW5pbmdsZXNzIHdpdGgKKyAgTWVyY3VyaWFsLgorCistIElzc3VlICMxMjE3MzogVGhlIGZpcnN0IGFyZ3VtZW50IG9mIFB5SW1wb3J0X0ltcG9ydE1vZHVsZUxldmVsIGlzIG5vdyBgY29uc3QKKyAgY2hhciAqYCBpbnN0ZWFkIG9mIGBjaGFyICpgLgorCistIElzc3VlICMxMjM4MDogUHlBcmdfUGFyc2VUdXBsZSBub3cgYWNjZXB0cyBhIGJ5dGVhcnJheSBmb3IgdGhlICdjJyBmb3JtYXQuCisKIERvY3VtZW50YXRpb24KIC0tLS0tLS0tLS0tLS0KIAorLSBJc3N1ZXMgIzEzNDkxIGFuZCAjMTM5OTU6IEZpeCBtYW55IGVycm9ycyBpbiBzcWxpdGUzIGRvY3VtZW50YXRpb24uCisgIEluaXRpYWwgcGF0Y2ggZm9yICMxMzQ5MSBieSBKb2hhbm5lcyBWb2dlbC4KKworLSBJc3N1ZSAjMTM0MDI6IERvY3VtZW50IGFic29sdXRlbmVzcyBvZiBzeXMuZXhlY3V0YWJsZS4KKworLSBJc3N1ZSAjMTM4ODM6IFBZVEhPTkNBU0VPSyBhbHNvIHdvcmtzIG9uIE9TIFguCisKKy0gSXNzdWUgIzEyOTQ5OiBEb2N1bWVudCB0aGUga3dvbmx5YXJnY291bnQgYXJndW1lbnQgZm9yIHRoZSBQeUNvZGVfTmV3CisgIEMgQVBJIGZ1bmN0aW9uLgorCistIElzc3VlICMxMzUxMzogRml4IGlvLklPQmFzZSBkb2N1bWVudGF0aW9uIHRvIGNvcnJlY3RseSBsaW5rIHRvIHRoZQorICBpby5JT0Jhc2UucmVhZGxpbmUgbWV0aG9kIGluc3RlYWQgb2YgdGhlIHJlYWRsaW5lIG1vZHVsZS4KKworLSBJc3N1ZSAjMTMyMzc6IFJlb3JnYW5pc2Ugc3VicHJvY2VzcyBkb2N1bWVudGF0aW9uIHRvIGVtcGhhc2lzZSBjb252ZW5pZW5jZQorICBmdW5jdGlvbnMgYW5kIHRoZSBtb3N0IGNvbW1vbmx5IG5lZWRlZCBhcmd1bWVudHMgdG8gUG9wZW4uCisKKy0gSXNzdWUgIzEzMTQxOiBEZW1vbnN0cmF0ZSByZWNvbW1lbmRlZCBzdHlsZSBmb3Igc29ja2V0c2VydmVyIGV4YW1wbGVzLgorCiAtIElzc3VlICMxMTgxODogRml4IHRlbXBmaWxlIGV4YW1wbGVzIGZvciBQeXRob24gMy4KIAogCkBAIC0yMTM3LDEwICszNzkxLDYgQEAKIC0gSXNzdWUgIzEwMTU0LCAjMTAwOTA6IGNoYW5nZSB0aGUgbm9ybWFsaXphdGlvbiBvZiBVVEYtOCB0byAiVVRGLTgiIGluc3RlYWQKICAgb2YgIlVURjgiIGluIHRoZSBsb2NhbGUgbW9kdWxlIGFzIHRoZSBsYXR0ZXIgaXMgbm90IHN1cHBvcnRlZCBNYWNPU1ggYW5kIE9wZW5CU0QuCiAKLS0gSXNzdWUgIzEwNjg0OiBzaHV0aWwubW92ZSB1c2VkIHRvIGRlbGV0ZSBhIGZvbGRlciBvbiBjYXNlIGluc2Vuc2l0aXZlCi0gIGZpbGVzeXN0ZW1zIHdoZW4gdGhlIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gbmFtZSB3aGVyZSB0aGUgc2FtZSBleGNlcHQKLSAgZm9yIHRoZSBjYXNlLgotCiAtIElzc3VlICMxMDkwNzogV2FybiBPUyBYIDEwLjYgSURMRSB1c2VycyB0byB1c2UgQWN0aXZlU3RhdGUgVGNsL1RrIDguNSwgcmF0aGVyCiAgIHRoYW4gdGhlIGN1cnJlbnRseSBwcm9ibGVtYXRpYyBBcHBsZS1zdXBwbGllZCBvbmUsIHdoZW4gcnVubmluZyB3aXRoIHRoZQogICA2NC0vMzItYml0IGluc3RhbGxlciB2YXJpYW50LgpAQCAtMjI5Nyw2ICszOTQ3LDkgQEAKIEMtQVBJCiAtLS0tLQogCistIFB5T2JqZWN0X0NhbGxNZXRob2Qgbm93IHBhc3NlcyBhbG9uZyBhbnkgdW5kZXJseWluZyBBdHRyaWJ1dGVFcnJvciBmcm9tCisgIFB5T2JqZWN0X0dldEF0dHIsIGluc3RlYWQgb2YgcmVwbGFjaW5nIGl0IHdpdGggc29tZXRoaW5nIGxlc3MgaW5mb3JtYXRpdmUKKwogLSBJc3N1ZSAjMTA5MTM6IERlcHJlY2F0ZSBtaXNsZWFkaW5nIGZ1bmN0aW9ucyBQeUV2YWxfQWNxdWlyZUxvY2soKSBhbmQKICAgUHlFdmFsX1JlbGVhc2VMb2NrKCkuICBUaGUgdGhyZWFkLXN0YXRlIGF3YXJlIEFQSXMgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZC4KIApAQCAtMjM0OCw2ICs0MDAxLDggQEAKIFRlc3RzCiAtLS0tLQogCistIElzc3VlICMxMTkxMDogRml4IHRlc3RfaGVhcHEgdG8gc2tpcCB0aGUgQyB0ZXN0cyB3aGVuIF9oZWFwcSBpcyBtaXNzaW5nLgorCiAtIEZpeCB0ZXN0X3N0YXJ0ZmlsZSB0byB3YWl0IGZvciBjaGlsZCBwcm9jZXNzIHRvIHRlcm1pbmF0ZSBiZWZvcmUgZmluaXNoaW5nLgogCiAtIElzc3VlICMxMDgyMjogRml4IHRlc3RfcG9zaXg6dGVzdF9nZXRncm91cHMgZmFpbHVyZSB1bmRlciBTb2xhcmlzLiAgUGF0Y2gKQEAgLTI4NDgsNiArNDUwMyw4IEBACiBMaWJyYXJ5CiAtLS0tLS0tCiAKKy0gSXNzdWUgIzEyOTQzOiBweXRob24gLW0gdG9rZW5pemUgc3VwcG9ydCBoYXMgYmVlbiBhZGRlZCB0byB0b2tlbml6ZS4KKwogLSBJc3N1ZSAjMTA0NjU6IGZpeCBicm9rZW4gZGVsZWdhdGluZyBvZiBhdHRyaWJ1dGVzIGJ5IGd6aXAuX1BhZGRlZEZpbGUuCiAKIC0gSXNzdWUgIzEwMzU2OiBEZWNpbWFsLl9faGFzaF9fKC0xKSBzaG91bGQgcmV0dXJuIC0yLgpAQCAtNDc1Niw3ICs2NDEzLDcgQEAKICAgaGFuZGxlZC4gIEluIG1hbnkgY2FzZXMgdGhpcyBvcmRlciB3YXNuJ3QgYmVpbmcgZm9sbG93ZWQsIGxlYWRpbmcgdG8gdGhlIHdyb25nCiAgIFB5dGhvbiBleGNlcHRpb24gYmVpbmcgcmFpc2VkLgogCi0tIElzc3VlICM3ODY1OiBUaGUgY2xvc2UoKSBtZXRob2Qgb2YgOm1vZDpgaW9gIG9iamVjdHMgc2hvdWxkIG5vdCBzd2FsbG93CistIElzc3VlICM3ODY1OiBUaGUgY2xvc2UoKSBtZXRob2Qgb2YgYGBpb2BgIG9iamVjdHMgc2hvdWxkIG5vdCBzd2FsbG93CiAgIGV4Y2VwdGlvbnMgcmFpc2VkIGJ5IHRoZSBpbXBsaWNpdCBmbHVzaCgpLiAgQWxzbyBxZW5zdXJlIHRoYXQgY2FsbGluZyBjbG9zZSgpCiAgIHNldmVyYWwgdGltZXMgaXMgc3VwcG9ydGVkLiAgUGF0Y2ggYnkgUGFzY2FsIENoYW1ib24uCiAKQEAgLTQ4NjgsNyArNjUyNSw3IEBACiAKIC0gSXNzdWUgIzUyNzc6IEZpeCBxdW90ZSBjb3VudGluZyB3aGVuIHBhcnNpbmcgUkZDIDIyMzEgZW5jb2RlZCBwYXJhbWV0ZXJzLgogCi0tIElzc3VlICM3MzE2OiBUaGUgYWNxdWlyZSgpIG1ldGhvZCBvZiBsb2NrIG9iamVjdHMgaW4gdGhlIDptb2Q6YHRocmVhZGluZ2AKKy0gSXNzdWUgIzczMTY6IFRoZSBhY3F1aXJlKCkgbWV0aG9kIG9mIGxvY2sgb2JqZWN0cyBpbiB0aGUgYGB0aHJlYWRpbmdgYAogICBtb2R1bGUgbm93IHRha2VzIGFuIG9wdGlvbmFsIHRpbWVvdXQgYXJndW1lbnQgaW4gc2Vjb25kcy4gIFRpbWVvdXQgc3VwcG9ydAogICByZWxpZXMgb24gdGhlIHN5c3RlbSB0aHJlYWRpbmcgbGlicmFyeSwgc28gYXMgdG8gYXZvaWQgYSBzZW1pLWJ1c3kgd2FpdCBsb29wLgogCkBAIC00ODg3LDcgKzY1NDQsNyBAQAogLSBJc3N1ZSAjODM3NTogdGVzdF9kaXN0dXRpbHMgbm93IGNoZWNrcyBpZiB0aGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSBhcmUgc3RpbGwKICAgcHJlc2VudCBiZWZvcmUgaXQgY2xlYW5zIHRoZW0uCiAKLS0gSXNzdWUgIzgzNzQ6IFVwZGF0ZSB0aGUgaW50ZXJuYWwgYWxpYXMgdGFibGUgaW4gdGhlIDptb2Q6YGxvY2FsZWAgbW9kdWxlIHRvCistIElzc3VlICM4Mzc0OiBVcGRhdGUgdGhlIGludGVybmFsIGFsaWFzIHRhYmxlIGluIHRoZSBgYGxvY2FsZWBgIG1vZHVsZSB0bwogICBjb3ZlciByZWNlbnQgbG9jYWxlIGNoYW5nZXMgYW5kIGFkZGl0aW9ucy4KIAogLSBJc3N1ZSAjODMyMTogR2l2ZSBhY2Nlc3MgdG8gT3BlblNTTCB2ZXJzaW9uIG51bWJlcnMgZnJvbSB0aGUgYHNzbGAgbW9kdWxlLApAQCAtNTA3Miw5ICs2NzI5LDkgQEAKICAgZnRydW5jYXRlKCkgYW5kIG90aGVyIHRydW5jYXRpb24gQVBJcy4gIFBhdGNoIGJ5IFBhc2NhbCBDaGFtYm9uLgogCiAtIElzc3VlICM3NjEwOiBSZXdvcmtlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaW50ZXJuYWwKLSAgOmNsYXNzOmB6aXBmaWxlLlppcEV4dEZpbGVgIGNsYXNzIHVzZWQgdG8gcmVwcmVzZW50IGZpbGVzIHN0b3JlZCBpbnNpZGUgYW4KKyAgYGB6aXBmaWxlLlppcEV4dEZpbGVgYCBjbGFzcyB1c2VkIHRvIHJlcHJlc2VudCBmaWxlcyBzdG9yZWQgaW5zaWRlIGFuCiAgIGFyY2hpdmUuICBUaGUgbmV3IGltcGxlbWVudGF0aW9uIGlzIHNpZ25pZmljYW50bHkgZmFzdGVyIGFuZCBjYW4gYmUgd3JhcHBlZCBpbgotICBhIDpjbGFzczpgaW8uQnVmZmVyZWRSZWFkZXJgIG9iamVjdCBmb3IgbW9yZSBzcGVlZHVwcy4gIEl0IGFsc28gc29sdmVzIGFuCisgIGEgYGBpby5CdWZmZXJlZFJlYWRlcmBgIG9iamVjdCBmb3IgbW9yZSBzcGVlZHVwcy4gIEl0IGFsc28gc29sdmVzIGFuCiAgIGlzc3VlIHdoZXJlIGludGVybGVhdmVkIGNhbGxzIHRvIGByZWFkKClgIGFuZCBgcmVhZGxpbmUoKWAgZ2l2ZSB3cm9uZyByZXN1bHRzLgogICBQYXRjaCBieSBOaXIgQWlkZXMuCiAKQEAgLTU4MzIsMTAgKzc0ODksMTAgQEAKICAgY2FsbGluZyBtZXRob2RzIG9uIHRoZSBvYmplY3QuCiAKIC0gSXNzdWUgIzcyMjI6IE1ha2UgdGhyZWFkICJyZWFwaW5nIiBtb3JlIHJlbGlhYmxlIHNvIHRoYXQgcmVmZXJlbmNlCi0gIGxlYWstY2hhc2luZyB0ZXN0IHJ1bnMgZ2l2ZSBzZW5zaWJsZSByZXN1bHRzLiBUaGUgcHJldmlvdXMgbWV0aG9kIG9mIHJlYXBpbmcKKyAgbGVhay1jaGFzaW5nIHRlc3QgcnVucyBnaXZlIHNlbnNpYmxlIHJlc3VsdHMuICBUaGUgcHJldmlvdXMgbWV0aG9kIG9mIHJlYXBpbmcKICAgdGhyZWFkcyBjb3VsZCByZXR1cm4gc3VjY2Vzc2Z1bGx5IHdoaWxlIHNvbWUgVGhyZWFkIG9iamVjdHMgd2VyZSBzdGlsbAotICByZWZlcmVuY2VkLiBUaGlzIGFsc28gaW50cm9kdWNlcyBhIG5ldyBwcml2YXRlIGZ1bmN0aW9uOgotICA6ZnVuYzpgX3RocmVhZC5fY291bnQoKWAuCisgIHJlZmVyZW5jZWQuICBUaGlzIGFsc28gaW50cm9kdWNlcyBhIG5ldyBwcml2YXRlIGZ1bmN0aW9uOgorICBgYF90aHJlYWQuX2NvdW50KClgYC4KIAogLSBJc3N1ZSAjNzE1MTogRml4ZWQgcmVncnRlc3QgLWogc28gdGhhdCBvdXRwdXQgdG8gc3RkZXJyIGZyb20gYSB0ZXN0IG5vIGxvbmdlcgogICBydW5zIHRoZSByaXNrIG9mIGNhdXNpbmcgdGhlIHdvcmtlciB0aHJlYWQgdG8gZmFpbC4KQEAgLTYyNzYsNyArNzkzMyw3IEBACiAtIElzc3VlICM1OTIzOiBVcGRhdGUgdGhlIGBgdHVydGxlYGAgbW9kdWxlIHRvIHZlcnNpb24gMS4xLCBhZGQgdHdvIG5ldwogICB0dXJ0bGUgZGVtb3MgaW4gRGVtby90dXJ0bGUuCiAKLS0gSXNzdWUgIzU2OTI6IEluIDpjbGFzczpgemlwZmlsZS5aaXBmaWxlYCwgZml4IHdyb25nIHBhdGggY2FsY3VsYXRpb24gd2hlbgorLSBJc3N1ZSAjNTY5MjogSW4gYGB6aXBmaWxlLlppcGZpbGVgYCwgZml4IHdyb25nIHBhdGggY2FsY3VsYXRpb24gd2hlbgogICBleHRyYWN0aW5nIGEgZmlsZSB0byB0aGUgcm9vdCBkaXJlY3RvcnkuCiAKIC0gSXNzdWUgIzU5MTM6IG9zLmxpc3RkaXIoKSBzaG91bGQgZmFpbCBmb3IgZW1wdHkgcGF0aCBvbiB3aW5kb3dzLgpkaWZmIC0tZ2l0IGEvTWlzYy9SRUFETUUgYi9NaXNjL1JFQURNRQppbmRleCBiMjM5Y2VlLi4xMThmNmM3IDEwMDY0NAotLS0gYS9NaXNjL1JFQURNRQorKysgYi9NaXNjL1JFQURNRQpAQCAtOCw3ICs4LDYgQEAKIC0tLS0tLS0tLS0tLS0tLS0KIAogQUNLUyAgICAgICAgICAgICAgICAgICAgQWNrbm93bGVkZ2VtZW50cwotYnVpbGQuc2ggICAgICAgICAgICAgICAgU2NyaXB0IHRvIGJ1aWxkIGFuZCB0ZXN0IGxhdGVzdCBQeXRob24gZnJvbSB0aGUgcmVwb3NpdG9yeQogZ2RiaW5pdCAgICAgICAgICAgICAgICAgSGFuZHkgc3R1ZmYgdG8gcHV0IGluIHlvdXIgLmdkYmluaXQgZmlsZSwgaWYgeW91IHVzZSBnZGIKIEhJU1RPUlkgICAgICAgICAgICAgICAgIE5ld3MgZnJvbSBwcmV2aW91cyByZWxlYXNlcyAtLSBvbGRlc3QgbGFzdAogaW5kZW50LnBybyAgICAgICAgICAgICAgR05VIGluZGVudCBwcm9maWxlIGFwcHJveGltYXRpbmcgbXkgQyBzdHlsZQpAQCAtMTksOCArMTgsMTEgQEAKIHB5dGhvbi5wYy5pbiAgICAgICAgICAgIFBhY2thZ2UgY29uZmlndXJhdGlvbiBpbmZvIHRlbXBsYXRlIGZvciBwa2ctY29uZmlnCiBweXRob24td2luZyoud3ByICAgICAgICBXaW5nIElERSBwcm9qZWN0IGZpbGUKIFJFQURNRSAgICAgICAgICAgICAgICAgIFRoZSBmaWxlIHlvdSdyZSByZWFkaW5nIG5vdworUkVBRE1FLkFJWCAgICAgICAgICAgICAgSW5mb3JtYXRpb24gYWJvdXQgdXNpbmcgUHl0aG9uIG9uIEFJWAorUkVBRE1FLmNvdmVyaXR5ICAgICAgICAgSW5mb3JtYXRpb24gYWJvdXQgcnVubmluZyBDb3Zlcml0eSdzIFByZXZlbnQgb24gUHl0aG9uCiBSRUFETUUudmFsZ3JpbmQgICAgICAgICBJbmZvcm1hdGlvbiBmb3IgVmFsZ3JpbmQgdXNlcnMsIHNlZSB2YWxncmluZC1weXRob24uc3VwcAogUlBNICAgICAgICAgICAgICAgICAgICAgKE9sZCkgdG9vbHMgdG8gYnVpbGQgUlBNcworc3ZubWFwLnR4dCAgICAgICAgICAgICAgTWFwIG9mIG9sZCBTVk4gcmV2cyBhbmQgYnJhbmNoZXMgdG8gaGcgY2hhbmdlc2V0IGlkcwogU3BlY2lhbEJ1aWxkcy50eHQgICAgICAgRGVzY3JpYmVzIGV4dHJhIHN5bWJvbHMgeW91IGNhbiBzZXQgZm9yIGRlYnVnIGJ1aWxkcwogVGV4dE1hdGUgICAgICAgICAgICAgICAgQSBUZXh0TWF0ZSBidW5kbGUgZm9yIFB5dGhvbiBkZXZlbG9wbWVudAogdmFsZ3JpbmQtcHl0aG9uLnN1cHAgICAgVmFsZ3JpbmQgc3VwcHJlc3Npb24gZmlsZSwgc2VlIFJFQURNRS52YWxncmluZApkaWZmIC0tZ2l0IGEvTWlzYy9SUE0vcHl0aG9uLTMuMi5zcGVjIGIvTWlzYy9SUE0vcHl0aG9uLTMuMy5zcGVjCnNpbWlsYXJpdHkgaW5kZXggOTklCnJlbmFtZSBmcm9tIE1pc2MvUlBNL3B5dGhvbi0zLjIuc3BlYwpyZW5hbWUgdG8gTWlzYy9SUE0vcHl0aG9uLTMuMy5zcGVjCmluZGV4IDE4ZjNlNzcuLjVkYTA3NmQgMTAwNjQ0Ci0tLSBhL01pc2MvUlBNL3B5dGhvbi0zLjIuc3BlYworKysgYi9NaXNjL1JQTS9weXRob24tMy4zLnNwZWMKQEAgLTM5LDggKzM5LDggQEAKIAogJWRlZmluZSBuYW1lIHB5dGhvbgogIy0tc3RhcnQgY29uc3RhbnRzLS0KLSVkZWZpbmUgdmVyc2lvbiAzLjIuMwotJWRlZmluZSBsaWJ2ZXJzIDMuMgorJWRlZmluZSB2ZXJzaW9uIDMuMy4wYjEKKyVkZWZpbmUgbGlidmVycyAzLjMKICMtLWVuZCBjb25zdGFudHMtLQogJWRlZmluZSByZWxlYXNlIDFweWRvdG9yZwogJWRlZmluZSBfX3ByZWZpeCAvdXNyCmRpZmYgLS1naXQgYS9NaXNjL3B5dGhvbi5tYW4gYi9NaXNjL3B5dGhvbi5tYW4KaW5kZXggMjBiZWRlZC4uNzJlMWVjYiAxMDA2NDQKLS0tIGEvTWlzYy9weXRob24ubWFuCisrKyBiL01pc2MvcHl0aG9uLm1hbgpAQCAtMzcsMTMgKzM3LDYgQEAKIC5CIFwtT08KIF0KIFsKLS5CIFwtUgotXQotWwotLkIgLVEKLS5JIGFyZ3VtZW50Ci1dCi1bCiAuQiBcLXMKIF0KIFsKQEAgLTE1NSwyNyArMTQ4LDYgQEAKIERvIG5vdCBwcmludCB0aGUgdmVyc2lvbiBhbmQgY29weXJpZ2h0IG1lc3NhZ2VzLiBUaGVzZSBtZXNzYWdlcyBhcmUgCiBhbHNvIHN1cHByZXNzZWQgaW4gbm9uLWludGVyYWN0aXZlIG1vZGUuCiAuVFAKLS5CIFwtUgotVHVybiBvbiAiaGFzaCByYW5kb21pemF0aW9uIiwgc28gdGhhdCB0aGUgaGFzaCgpIHZhbHVlcyBvZiBzdHIsIGJ5dGVzIGFuZAotZGF0ZXRpbWUgb2JqZWN0cyBhcmUgInNhbHRlZCIgd2l0aCBhbiB1bnByZWRpY3RhYmxlIHBzZXVkby1yYW5kb20gdmFsdWUuCi1BbHRob3VnaCB0aGV5IHJlbWFpbiBjb25zdGFudCB3aXRoaW4gYW4gaW5kaXZpZHVhbCBQeXRob24gcHJvY2VzcywgdGhleSBhcmUKLW5vdCBwcmVkaWN0YWJsZSBiZXR3ZWVuIHJlcGVhdGVkIGludm9jYXRpb25zIG9mIFB5dGhvbi4KLS5JUAotVGhpcyBpcyBpbnRlbmRlZCB0byBwcm92aWRlIHByb3RlY3Rpb24gYWdhaW5zdCBhIGRlbmlhbCBvZiBzZXJ2aWNlCi1jYXVzZWQgYnkgY2FyZWZ1bGx5LWNob3NlbiBpbnB1dHMgdGhhdCBleHBsb2l0IHRoZSB3b3JzdCBjYXNlIHBlcmZvcm1hbmNlCi1vZiBhIGRpY3QgY29uc3RydWN0aW9uLCBPKG5eMikgY29tcGxleGl0eS4gIFNlZQotaHR0cDovL3d3dy5vY2VydC5vcmcvYWR2aXNvcmllcy9vY2VydC0yMDExLTAwMy5odG1sCi1mb3IgZGV0YWlscy4KLS5UUAotLkJJICJcLVEgIiBhcmd1bWVudAotRGl2aXNpb24gY29udHJvbDsgc2VlIFBFUCAyMzguICBUaGUgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgIm9sZCIgKHRoZQotZGVmYXVsdCwgaW50L2ludCBhbmQgbG9uZy9sb25nIHJldHVybiBhbiBpbnQgb3IgbG9uZyksICJuZXciIChuZXcKLWRpdmlzaW9uIHNlbWFudGljcywgaS5lLiBpbnQvaW50IGFuZCBsb25nL2xvbmcgcmV0dXJucyBhIGZsb2F0KSwKLSJ3YXJuIiAob2xkIGRpdmlzaW9uIHNlbWFudGljcyB3aXRoIGEgd2FybmluZyBmb3IgaW50L2ludCBhbmQKLWxvbmcvbG9uZyksIG9yICJ3YXJuYWxsIiAob2xkIGRpdmlzaW9uIHNlbWFudGljcyB3aXRoIGEgd2FybmluZyBmb3IKLWFsbCB1c2Ugb2YgdGhlIGRpdmlzaW9uIG9wZXJhdG9yKS4gIEZvciBhIHVzZSBvZiAid2FybmFsbCIsIHNlZSB0aGUKLVRvb2xzL3NjcmlwdHMvZml4ZGl2LnB5IHNjcmlwdC4KLS5UUAogLkIgXC1zCiBEb24ndCBhZGQgdXNlciBzaXRlIGRpcmVjdG9yeSB0byBzeXMucGF0aC4KIC5UUApAQCAtMTg0LDcgKzE1Niw5IEBACiAuSSBzaXRlCiBhbmQgdGhlIHNpdGUtZGVwZW5kZW50IG1hbmlwdWxhdGlvbnMgb2YKIC5JIHN5cy5wYXRoCi10aGF0IGl0IGVudGFpbHMuCit0aGF0IGl0IGVudGFpbHMuICBBbHNvIGRpc2FibGUgdGhlc2UgbWFuaXB1bGF0aW9ucyBpZgorLkkgc2l0ZQoraXMgZXhwbGljaXRseSBpbXBvcnRlZCBsYXRlci4KIC5UUAogLkIgXC11CiBGb3JjZSB0aGUgYmluYXJ5IEkvTyBsYXllcnMgb2Ygc3RkaW4sIHN0ZG91dCBhbmQgc3RkZXJyIHRvIGJlIHVuYnVmZmVyZWQuCkBAIC0yODMsOSArMjU3LDkgQEAKIGZyb20gdGhhdCBmaWxlOwogd2hlbiBjYWxsZWQgd2l0aAogLkIgXC1jCi0uSSBjb21tYW5kLAorLklSIGNvbW1hbmQgLAogaXQgZXhlY3V0ZXMgdGhlIFB5dGhvbiBzdGF0ZW1lbnQocykgZ2l2ZW4gYXMKLS5JIGNvbW1hbmQuCisuSVIgY29tbWFuZCAuCiBIZXJlCiAuSSBjb21tYW5kCiBtYXkgY29udGFpbiBtdWx0aXBsZSBzdGF0ZW1lbnRzIHNlcGFyYXRlZCBieSBuZXdsaW5lcy4KQEAgLTI5NSw3ICsyNjksNyBAQAogLlBQCiBJZiBhdmFpbGFibGUsIHRoZSBzY3JpcHQgbmFtZSBhbmQgYWRkaXRpb25hbCBhcmd1bWVudHMgdGhlcmVhZnRlciBhcmUKIHBhc3NlZCB0byB0aGUgc2NyaXB0IGluIHRoZSBQeXRob24gdmFyaWFibGUKLS5JIHN5cy5hcmd2ICwKKy5JUiBzeXMuYXJndiAsCiB3aGljaCBpcyBhIGxpc3Qgb2Ygc3RyaW5ncyAoeW91IG11c3QgZmlyc3QKIC5JIGltcG9ydCBzeXMKIHRvIGJlIGFibGUgdG8gYWNjZXNzIGl0KS4KQEAgLTMwOSwxNCArMjgzLDE0IEBACiAuSSAnLWMnLgogTm90ZSB0aGF0IG9wdGlvbnMgaW50ZXJwcmV0ZWQgYnkgdGhlIFB5dGhvbiBpbnRlcnByZXRlciBpdHNlbGYKIGFyZSBub3QgcGxhY2VkIGluCi0uSSBzeXMuYXJndi4KKy5JUiBzeXMuYXJndiAuCiAuUFAKIEluIGludGVyYWN0aXZlIG1vZGUsIHRoZSBwcmltYXJ5IHByb21wdCBpcyBgPj4+JzsgdGhlIHNlY29uZCBwcm9tcHQKICh3aGljaCBhcHBlYXJzIHdoZW4gYSBjb21tYW5kIGlzIG5vdCBjb21wbGV0ZSkgaXMgYC4uLicuCiBUaGUgcHJvbXB0cyBjYW4gYmUgY2hhbmdlZCBieSBhc3NpZ25tZW50IHRvCiAuSSBzeXMucHMxCiBvcgotLkkgc3lzLnBzMi4KKy5JUiBzeXMucHMyIC4KIFRoZSBpbnRlcnByZXRlciBxdWl0cyB3aGVuIGl0IHJlYWRzIGFuIEVPRiBhdCBhIHByb21wdC4KIFdoZW4gYW4gdW5oYW5kbGVkIGV4Y2VwdGlvbiBvY2N1cnMsIGEgc3RhY2sgdHJhY2UgaXMgcHJpbnRlZCBhbmQKIGNvbnRyb2wgcmV0dXJucyB0byB0aGUgcHJpbWFyeSBwcm9tcHQ7IGluIG5vbi1pbnRlcmFjdGl2ZSBtb2RlLCB0aGUKQEAgLTM3Miw3ICszNDYsNyBAQAogaW5zZXJ0ZWQgaW4gdGhlIHBhdGggaW4gZnJvbnQgb2YgJFBZVEhPTlBBVEguCiBUaGUgc2VhcmNoIHBhdGggY2FuIGJlIG1hbmlwdWxhdGVkIGZyb20gd2l0aGluIGEgUHl0aG9uIHByb2dyYW0gYXMgdGhlCiB2YXJpYWJsZQotLkkgc3lzLnBhdGggLgorLklSIHN5cy5wYXRoIC4KIC5JUCBQWVRIT05TVEFSVFVQCiBJZiB0aGlzIGlzIHRoZSBuYW1lIG9mIGEgcmVhZGFibGUgZmlsZSwgdGhlIFB5dGhvbiBjb21tYW5kcyBpbiB0aGF0CiBmaWxlIGFyZSBleGVjdXRlZCBiZWZvcmUgdGhlIGZpcnN0IHByb21wdCBpcyBkaXNwbGF5ZWQgaW4gaW50ZXJhY3RpdmUKQEAgLTQyOSw5ICs0MDMsOCBAQAogSWYgdGhpcyBpcyBzZXQgdG8gYSBjb21tYS1zZXBhcmF0ZWQgc3RyaW5nIGl0IGlzIGVxdWl2YWxlbnQgdG8KIHNwZWNpZnlpbmcgdGhlIFxmQlwtV1xmUCBvcHRpb24gZm9yIGVhY2ggc2VwYXJhdGUgdmFsdWUuCiAuSVAgUFlUSE9OSEFTSFNFRUQKLUlmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvICJyYW5kb20iLCB0aGUgZWZmZWN0IGlzIHRoZSBzYW1lIGFzIHNwZWNpZnlpbmcKLXRoZSBcZkItUlxmUCBvcHRpb246IGEgcmFuZG9tIHZhbHVlIGlzIHVzZWQgdG8gc2VlZCB0aGUgaGFzaGVzIG9mIHN0ciwKLWJ5dGVzIGFuZCBkYXRldGltZSBvYmplY3RzLgorSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gInJhbmRvbSIsIGEgcmFuZG9tIHZhbHVlIGlzIHVzZWQgdG8gc2VlZCB0aGUgaGFzaGVzCitvZiBzdHIsIGJ5dGVzIGFuZCBkYXRldGltZSBvYmplY3RzLgogCiBJZiBQWVRIT05IQVNIU0VFRCBpcyBzZXQgdG8gYW4gaW50ZWdlciB2YWx1ZSwgaXQgaXMgdXNlZCBhcyBhIGZpeGVkIHNlZWQgZm9yCiBnZW5lcmF0aW5nIHRoZSBoYXNoKCkgb2YgdGhlIHR5cGVzIGNvdmVyZWQgYnkgdGhlIGhhc2ggcmFuZG9taXphdGlvbi4gIEl0cwpAQCAtNDQwLDggKzQxMyw3IEBACiB2YWx1ZXMuCiAKIFRoZSBpbnRlZ2VyIG11c3QgYmUgYSBkZWNpbWFsIG51bWJlciBpbiB0aGUgcmFuZ2UgWzAsNDI5NDk2NzI5NV0uICBTcGVjaWZ5aW5nCi10aGUgdmFsdWUgMCB3aWxsIGxlYWQgdG8gdGhlIHNhbWUgaGFzaCB2YWx1ZXMgYXMgd2hlbiBoYXNoIHJhbmRvbWl6YXRpb24gaXMKLWRpc2FibGVkLgordGhlIHZhbHVlIDAgd2lsbCBkaXNhYmxlIGhhc2ggcmFuZG9taXphdGlvbi4KIC5TSCBBVVRIT1IKIFRoZSBQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbjogaHR0cDovL3d3dy5weXRob24ub3JnL3BzZgogLlNIIElOVEVSTkVUIFJFU09VUkNFUwpkaWZmIC0tZ2l0IGEvTWlzYy9zdm5tYXAudHh0IGIvTWlzYy9zdm5tYXAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0MmJlN2YKLS0tIC9kZXYvbnVsbAorKysgYi9NaXNjL3N2bm1hcC50eHQKQEAgLTAsMCArMSw3MjU0NiBAQAorMjE2MSAzY2QwMzNlNmI1MzBmNmE3OGIzYjE0ZmVkYmQyMDc0ODk2ZGJmNmRlIGxlZ2FjeS10cnVuaworMjE2MiA0ZGI5ZDQ2YjMwNmE5YzZlYzJkMWZlN2E3Y2MzNmVmNzE3MzQyNmE2IGxlZ2FjeS10cnVuaworMjE2MyA0YTNhNjQ4MTg1ZWY4OTY1YzM0Mjg2MGJkODQ1N2VkNmMwM2M2ZGUwIGxlZ2FjeS10cnVuaworMjE2NCA4ZGE5MjI1Y2M2MGUyZGExNjY1YTgwYWY5MDE4NGRiMGZkZGEwNWNlIGxlZ2FjeS10cnVuaworMjE2NSAxN2U0OTBiNGRjMjhiOGFjNjA1ZmExOWU0ODJjZjcyMmZlODA2NThkIGxlZ2FjeS10cnVuaworMjE2NiA1NTcwZGJiMWNlNTU4YjU1NzE2ZWFiN2QwODBhMWFmYWQyZTc3ZTJmIGxlZ2FjeS10cnVuaworMjE2NyBmYzZmY2Q3ZGY0ZjdmMmUxYzEyZjE3YWYyNDY0YzQ5N2Q2ZjZhM2U5IGxlZ2FjeS10cnVuaworMjE2OCAzNGQ2NjdkYzFhNGM0YWJkY2IxOWNkZGZkMmU5YmZkYTAxMTM5ZWQyIGxlZ2FjeS10cnVuaworMjE2OSA2ZmMxNDZiZDRmMDNjOTdkMTRjN2MzMDBiMTIxMmExMWViOWI2NzJhIGxlZ2FjeS10cnVuaworMjE3MCAzMzcwMWRiNGVhNTU5MTAwZDM3YmU0NGQyZjBkNTNlNTY4YTBlYzMzIGxlZ2FjeS10cnVuaworMjE3MSBhNzFlODk2ZWQwNDczNDIxZDg4ZmU0NTUyNjljNWE1ZTU0NzMyYTIyIGxlZ2FjeS10cnVuaworMjE3MiBiY2VhNmM4MjI5MDZjODRlZGVkYWJjYzAzZWM0ODE1OTVkZWYwYTYzIGxlZ2FjeS10cnVuaworMjE3MyAzNmEyMjBkMzczMWEwMzM0NTc4NTU5M2VjMzJlYmMzNWEyOTQ5NGRlIGxlZ2FjeS10cnVuaworMjE3NCAwNmJmMmFmMDBlM2E5ZWI1MTUyOWI2MThjYmRjMGJiY2YxYTRlOTY0IGxlZ2FjeS10cnVuaworMjE3NSA4NzRjOGZkNTY1ZmEwOTQ2MWMyMTM5OWFmOWVkZTEyMzRlYTEwZjcwIGxlZ2FjeS10cnVuaworMjE3NiBlOWUwNWZiYmE3YTQwMDM0ZjgyMTFjOWQxZDEyYjI4ODc5ZjUxZmNmIGxlZ2FjeS10cnVuaworMjE3NyAwODA4ZTVhYjc0M2FiYjhiMDU3YTU1Zjc2NTFhYzExOGM4M2Y1YjBjIGxlZ2FjeS10cnVuaworMjE3OCBhNWYwMWE5MTc0MDkyZDI5ZWJhNjM3N2MyMzY5MTg3Y2RiM2ZkN2Q1IGxlZ2FjeS10cnVuaworMjE3OSBlOWJiZTRhYzMyMzg5ZThhN2E2YzBiNGFlZmFmNGVhZDMwODhmMjFhIGxlZ2FjeS10cnVuaworMjE4MCA3MWFjMGUzNzIzNmE1NGUwYTY3ODhiMzg0NjU1ZDhkODIwOWQ4NThhIGxlZ2FjeS10cnVuaworMjE4MSAxMTg1NDUzMTJmM2JmZTEwM2JjY2ZiMTAzZjRkZjJlZWIwZDBlYjgzIGxlZ2FjeS10cnVuaworMjE4MiA5NjE2OTZlZjNhYjdlNDNjOTlmNWM3NjBmN2M2MjFiNmExMTlkYzk4IGxlZ2FjeS10cnVuaworMjE4MyAyZDNlYjcxN2EwMGQxMDNkNDM3NTk0ZTA4MTkzZGFlNjAwMDYxZGE5IGxlZ2FjeS10cnVuaworMjE4NCAwODU2MmRlMDE2NjgwMGUxYzZkNWQ1MTVmNzQzNjliMzk5ZmQ4Y2FhIGxlZ2FjeS10cnVuaworMjE4NSA2NGE2OWQ2MTIxZTBkMjA2MmYyNmE3ZWNhNjdlOWI2YTQyZGNhMjdiIGxlZ2FjeS10cnVuaworMjE4NiAzMjYzOTg3OGQxNmI2MDQ4NzUzODhlMjI5OTYxMWJiZmM1MTg5NjI2IGxlZ2FjeS10cnVuaworMjE4NyA0NWFlYjJlZWFkNzllZTdmYTM2ZTQxNjZkZWI3NTM4NmMxM2UzNDFkIGxlZ2FjeS10cnVuaworMjE4OCA4MmM3YmFiNzhiYjEwYTcwNmY1ZDUyMGIxNTUwZTcyNGI5NGFhMzhjIGxlZ2FjeS10cnVuaworMjE4OSBlNWM1MGM2ODgxMTdjNmU1YmQ4OTU0NjBkYWNlNmM5Y2JmNTgxYWZkIGxlZ2FjeS10cnVuaworMjE5MCAzNDJhN2M2MWMwYzNjMGZlNDgxNGQxYWQyNGU3NzE0Mjc3MzgxNWIxIGxlZ2FjeS10cnVuaworMjE5MSA4NmUwZTIzNTBiYTExNzQ3YzRlMGZkY2U5N2JjN2M5YmM2NDg3NDFiIGxlZ2FjeS10cnVuaworMjE5MiBjNDg3ZGZjMzA2NjMzOTg1MDg1NGZiODU4YzZhODMzMDU5YTliYzc4IGxlZ2FjeS10cnVuaworMjE5MyBiNjQzZWFkZTY1NDQ1OWY4N2Q1NzJkNmI3OTM4OTZkOWIzYWRmODQwIGxlZ2FjeS10cnVuaworMjE5NCBiODA3YzkwYzRhNjgyMmQxY2I4YjM5Njk5MWNhYTgwODViYjMyYjRlIGxlZ2FjeS10cnVuaworMjE5NSAxZDIyOTAwZjc3Yjg1M2JlZTA2ZGQyNGExYmYxZmRmNDUxNWI0OGJjIGxlZ2FjeS10cnVuaworMjE5NiBkYTA2YTI4MmI4ODA0ZmE0N2ZmNGMzYzRiZDkyYmE5ZmI4ZWVhOTI5IGxlZ2FjeS10cnVuaworMjE5NyBhMjI0MGNlOTFlNTIwNjFiNDMyZjk3OTU3ZjkyYmY3OTc4NTM0MGFjIGxlZ2FjeS10cnVuaworMjE5OCBjNzk1ZmRhY2VkOWI4YTI4ZDk4MzMyNzc4NjhiMWY3NDYxYTA5NWY1IGxlZ2FjeS10cnVuaworMjE5OSAxMGUxODIxYzM0NWNhMmQxMzc1MzVhNmMxY2Y1ZWIwMTI4NmZjZDdlIGxlZ2FjeS10cnVuaworMjIwMCAxOTA1ZjgyMTM5N2IwZjA5NDEwMTE2MDhlNWI0NmRkMWM5ZTM4OWU0IGxlZ2FjeS10cnVuaworMjIwMSBmMjhhYzdmNjIxYzc2MDc5Nzc0YzMwMDE3YjI5MDEzOTY1ZDEwNDA5IGxlZ2FjeS10cnVuaworMjIwMiBlODBlZmVhYjQ5YjMyYzE1YWM5N2IyNGQ0ZjZlOGZkZDVjY2YwYTk1IGxlZ2FjeS10cnVuaworMjIwMyA0ODM1YzJkMzhiODRlNWZiNTU4MDM2ZDQ3YzU4NzFkZDk2NjMzOGI3IGxlZ2FjeS10cnVuaworMjIwNCBlYTIxOTgyYTE1MzI0MjVmODJlYzVhNDM0NmNiODQxOTE3YTcxZDk1IGxlZ2FjeS10cnVuaworMjIwNSA0ZDNhMjhkZmZjOWI5NWQzOGI5MTJjYjY5NTc0MmRlNDBkOTU3NjM1IGxlZ2FjeS10cnVuaworMjIwNiA3ZmVjYWJiMzI3OTE0NTA0NTQ0NjE3ZTViYWNkMWMwNWExMmU4NjlmIGxlZ2FjeS10cnVuaworMjIwNyBjZTZmMjQ3MTE1MDRlNTk1NmQ2NjAwOTljOTllY2NiOTUxYzBjMTQ5IGxlZ2FjeS10cnVuaworMjIwOCAwNTA1N2UzNjYwZjgyY2U4ZTgzZThjMmQ3M2QwYjU4NDk0ZjJiZWE3IGxlZ2FjeS10cnVuaworMjIwOSBiMGU3NjIyMWU3ZmZkYmNmZTk4YTQ0YWRmYWU5YzIzNTA5M2M3Y2ViIGxlZ2FjeS10cnVuaworMjIxMCBjM2ZhMmQxZjMwMzU4Njk5ZWUyNGUyYTVjM2MwMTE2NjJmNzVjMzc2IGxlZ2FjeS10cnVuaworMjIxMSBiOTQ4MjJmNTQ5OTEzMDRiNThhZGJiZWEyMzg2OWM5OGIyZjZmM2ZlIGxlZ2FjeS10cnVuaworMjIxMiBlYmNiNjI2Y2ZkZGZiOWYxYzdiMTg2NzhhY2JlYzQ0ZWI5N2FiYmQ3IGxlZ2FjeS10cnVuaworMjIxMyAxYjMxMDc3YWM2NDMwN2FiNTQ1NTI2NTFhZWM2Nzg3OGQ4MGQwYmQ3IGxlZ2FjeS10cnVuaworMjIxNCBhMWU1MGE4ZjQyZTIzY2ZhYjY0YmUzZTk5ZDhhNTMzNWVhMzNhOWM1IGxlZ2FjeS10cnVuaworMjIxNSA0MDJmNTcwOGIxMDdiMDVmODExZTVmODU0Mjg0MmU3MTc5OGRhNmM5IGxlZ2FjeS10cnVuaworMjIxNiA3YTAxZGJjZWU5YmMwMzEyZjVhMzE3ZmIyNDI5OTc1MWU3OGRkZGMyIGxlZ2FjeS10cnVuaworMjIxNyBhN2U4ZmI3YmI2YTI4ZWIxM2MwNTZmM2M2MmE5NmNhYWM1ZjY0NGQ0IGxlZ2FjeS10cnVuaworMjIxOCBhMWMyYjRmYWQxMzZjZmIxYjIyMzE1MGE0OGMzNDgwZDYzZTJkZWNiIGxlZ2FjeS10cnVuaworMjIxOSA0OTc1Zjc5OTBiMmIzNWM3MGQyMzUwNWVjZWE1YzIwZWVmY2QxZWQ4IGxlZ2FjeS10cnVuaworMjIyMCA0MzNmNTJkMWQ5NTg3NzY3MDNhNzNlODBlNTU2YmVlYjBlNDdmNTQzIGxlZ2FjeS10cnVuaworMjIyMSA0ZjU5M2IzOGQwNjE1NTc5YWNhZDRjM2M5Y2IzNTBlYjYwMGRkYzRlIGxlZ2FjeS10cnVuaworMjIyMiA1YzRkZDkzNDhlODExMzMyMGM0ZjdiNGU5ODMzZjMyMDVkZjE4YjgwIGxlZ2FjeS10cnVuaworMjIyMyBmZmZkMTI4NmM4ODI2NzkzNGQ3NDg2ZTRjNGU0NjdkNTdiMDg2NTliIGxlZ2FjeS10cnVuaworMjIyNCA2MTMxMTUwNmYyY2QwOWJhZGQ4Yjc5NDU2YWY5Nzg5MjE0ZWNiMGY0IGxlZ2FjeS10cnVuaworMjIyNSBhMjJkZjUyZDc3NDlhM2E4YzA3NzBhODIxM2RlNDdiMmNhNThmZWNmIGxlZ2FjeS10cnVuaworMjIyNiBhNzJjMGE3ZGM5OTNhYWUwNWU3MDg1Y2QzODY3OGI5ZGJiZWIxOTgxIGxlZ2FjeS10cnVuaworMjIyNyA0NmNiMTRhZWMxMGE4ZDZlMzY2NWI3MTg4MDcwYjY3ZTg5OWFkNjM2IGxlZ2FjeS10cnVuaworMjIyOCBmOThlNDE3MTFkMTc3OTAwYTk2ZDU3NDViYTkwY2M4OGJkODJkN2Q4IGxlZ2FjeS10cnVuaworMjIyOSAzNjUwMzczNmZkYzIzOTM0MDZjMDg2MGM4MWEyMDIyMmQ3M2NlZTU5IGxlZ2FjeS10cnVuaworMjIzMCBjY2NkNTM0ZjIyODA3NGYyNjc0ODQ4NDIyMWQ2OWYyZWU3NTJmMmIzIGxlZ2FjeS10cnVuaworMjIzMSBhMzZjMzQ4YThlMWEyOTE1ZDY5YjdkZDIwMjE2M2ZkYjdlNTk2Yzg4IGxlZ2FjeS10cnVuaworMjIzMiBhYzQ1MjJlOTljYTk0Mzc3YTY1YzY2Y2ZkYzI2Njg0ZmEwZmRmYmViIGxlZ2FjeS10cnVuaworMjIzMyA1ZThhMGI0MGE0YmRmMWU4M2M1ZDBiZjM4ZWZjNzc0NWIwNmVmOGQ0IGxlZ2FjeS10cnVuaworMjIzNCAzMDI4YWNhYTU2YjA1ZWQwZTExZTE1NmU4MWI1YTA2NzE5MTVjYjg2IGxlZ2FjeS10cnVuaworMjIzNSBiYzI0NGRmMjAyNTE2YjVhNTU1MTNlNDYzYjJmNjM3ZDE4ZjU4MDU1IGxlZ2FjeS10cnVuaworMjIzNiA4NWVlZDA2MGE0NmNlMjY2NDlmZDY4MDJjZmJkNWVlYzYxOTEwNjg4IGxlZ2FjeS10cnVuaworMjIzNyBlZGU4Njc5OTcwNWJhMTRiYzQwMjEzNTcxZGZlMmExZDVmNTZlOTA3IGxlZ2FjeS10cnVuaworMjIzOCBmNzJlMGM2MjM2OWUyNGNjYzBlY2RhYjc5MmM5N2EyMWIyMzMyYmFkIGxlZ2FjeS10cnVuaworMjIzOSBiMWZiNGUxZjZlNTE2ZDI4MGM1NTUwMWIyMzQ0NDk4Y2E2MjdmZWJjIGxlZ2FjeS10cnVuaworMjI0MCA2YzQzZTU0NzZkZTY5MDQxMjY5OWIzYmRlNmI1MDdiMWM0ODgwNGE2IGxlZ2FjeS10cnVuaworMjI0MSBmNDcxMDFkYzNjMTg4ZjI0ZjliOTcwNWRiM2I2NDg5MTkxNGJkYjgyIGxlZ2FjeS10cnVuaworMjI0MiBkZTM0ZjRhNGQzNTNiOWY1Zjk5MWFhY2E5OGM4M2ZhYWM2ODFjNmY1IGxlZ2FjeS10cnVuaworMjI0MyA1NTRhYzY1OWIyY2I5NTI0ZWY0Zjk2ZWMyNzU2ZGM0Y2EwZmEwZjliIGxlZ2FjeS10cnVuaworMjI0NCBmNmJjZjNjMWQ3MTRlNzg3NTM1NmNhMTJjMzJlZTVmOTc1ZjRlZDhhIGxlZ2FjeS10cnVuaworMjI0NSBhNzljYmIyNjU1YmFhZjU0YWRkYzIyMDMzNTAwMzY0NzliZGNiN2UzIGxlZ2FjeS10cnVuaworMjI0NiAwNmM5MmY0OTFmNTg4ZWQ5YWJlMGYyZDRmMTUxMjA2OWEzMGMxOTAxIGxlZ2FjeS10cnVuaworMjI0NyBhNjkzNDM4MGM2ZTc5Yjg3Zjc3NjJiMWQ5NDMzZDBlMGE4OTM3NDUyIGxlZ2FjeS10cnVuaworMjI0OCBlZjI0NDBmMjRmMTAyYzY3N2EwMmQ0MDc5ODhkZDg1ZjVkYTUwY2FiIGxlZ2FjeS10cnVuaworMjI0OSAxNmU4YzVkMTY0OTM1ZjNjNmE5ODllZWVhZGYyMmIwYWI0ZGMyMmVhIGxlZ2FjeS10cnVuaworMjI1MCA1ODQ3ZGYxMzk5MWRlNmE4MzY0ODQxMDc1NTNmNGU5Y2VjY2E4YTE0IGxlZ2FjeS10cnVuaworMjI1MSA1Y2I4NDNiYzg3ZmMwODY1NDZmYWJmNmI4ZWMwM2VlZDMxZTIwYThmIGxlZ2FjeS10cnVuaworMjI1MiA1YzM1N2QzN2IzMjczMWM4ZDAyMDQ1NDk3MDIwODU4Yzc5YzU3MTM5IGxlZ2FjeS10cnVuaworMjI1MyAwMDIwNjZhODM5YzUxY2MxODRhMGM2ZTY2OWVjOWQ2MzQyMGNkYTY3IGxlZ2FjeS10cnVuaworMjI1NCA5ZTA1MWZjNzA3M2U3N2I5ZTE1MDM0YTE5ZTU0N2VmZTJiODVjNjZhIGxlZ2FjeS10cnVuaworMjI1NSBkYWM4NjI1YzhkOWIwMTQxNzljZDU4MzM1OGI0ZDBlNGUyNTAyNTY3IGxlZ2FjeS10cnVuaworMjI1NiBhNWJmN2Q1OTU5Y2UwNTBmMmIwNTFjMTJlODE4MDg5NWU3ZTZkOGE5IGxlZ2FjeS10cnVuaworMjI1NyAyN2E1YjA4YzNlNzQyYzYyYTE1YjY4MTU2ZmUwZDQ4OGMwOTRhZDQyIGxlZ2FjeS10cnVuaworMjI1OCA2Yjc1ZjJhMzAwMGQ0MDY1MTQ2YjJkYWZlNmQ4M2QzMzA3MWU4ZDM1IGxlZ2FjeS10cnVuaworMjI1OSA0NTVkNjVhMTFiMTNlZDM3NzkyZTFmNGZmYmZlM2JjZGZhYTc4M2VlIGxlZ2FjeS10cnVuaworMjI2MCBlMGM4ZWZlZTc2YmQ4MTU3ODRjODEzYzY2YTJhMTA0NmU1YTBiZjVhIGxlZ2FjeS10cnVuaworMjI2MSBhZDE0YWE4YTI5ODQ0MzIzODRmN2FmMjFkNDUyYmU1YWFiYTZmMThmIGxlZ2FjeS10cnVuaworMjI2MiAwOGU1NWRiNmY3OTZhMjc2ZWNkMWMxNjgzYTUwMmJhZmQ3MjQ3ODcyIGxlZ2FjeS10cnVuaworMjI2MyBmMmNhY2I5MGM5MTdjOGQyOTI3OTk0Y2MyNDMxMmE2MjFkYjEzZjgzIGxlZ2FjeS10cnVuaworMjI2NCAxMjI5YmExMjRlMGJhOGVjZTkyMmNlMTRjMGY0YWFiZGJkZTFkM2YwIGxlZ2FjeS10cnVuaworMjI2NSA0ZWM4YzI2M2FiNDhiNDlkNzcyNzAxMWM0YTg2YzdiMTA5YjBmYTU4IGxlZ2FjeS10cnVuaworMjI2NiBiNGQ1ZmRjYmY4M2M2OGY5MTNhZjRjMTc1YTE0M2M4YWJmNzc1ZmVmIGxlZ2FjeS10cnVuaworMjI2NyA2NDM3M2M3OWMwOTk5OTBjYjY5MjYyZDE4M2E0NWU0ZGJmZjQyODQyIGxlZ2FjeS10cnVuaworMjI2OCAxZTAwN2RjY2IyNzA5YjA4MTFlNTNiZjA3YzdiODc5NzkxYWM5Nzc0IGxlZ2FjeS10cnVuaworMjI2OSBhZTliMzY2YzU3NWQ1NTdlNmY4MDZmMGQxNmU1NDc4NTcxNzU0YzFiIGxlZ2FjeS10cnVuaworMjI3MCBmNjk0MDM2Yjg1NjFlYjFiM2NiNTllZjM2ODBkN2U5NmRkZmQ3MWEwIGxlZ2FjeS10cnVuaworMjI3MSBlNGIxZDllNjk4MGE0MzhmOTAyZWVmOTAwMzY4YzJlNmEyZDUwYTY0IGxlZ2FjeS10cnVuaworMjI3MiBkMDhmNzUyYjU2YzA2MTQ2ZDViYWNmYjJlZjc2YzEwMzZhM2NkYzQ5IGxlZ2FjeS10cnVuaworMjI3MyBkOGExYjY0NTYyMTJiMjhiNjEyNjRkYjAyZDY1YjJjNWY2ZGU3MmM4IGxlZ2FjeS10cnVuaworMjI3NCBkMTY5NjExNjczNjVmZmZmODE3YmI4ZTY4YTIxMTFmZTUzYTZjYzU4IGxlZ2FjeS10cnVuaworMjI3NSAxZWZiOGVkNmFmZDMzYTAwNmM1Mjk5ZDNhNDE1YWNlMTJjOTg2YTg5IGxlZ2FjeS10cnVuaworMjI3NiA0MDk0YjQ2ZjA0YzhlYWYzMjViM2Q1OTllNzMyYTViZjlhOGMzYTdiIGxlZ2FjeS10cnVuaworMjI3NyAwYTAyY2E5ZGNkNmUwMjJmMTBhMWNjNTUzN2M3OGFhNzEzMjRhMzIzIGxlZ2FjeS10cnVuaworMjI3OCA3ODczM2MxYzZlMzYxODdhZjU3ZjRlYTI1MTcwYWQwN2QwODEwYmI4IGxlZ2FjeS10cnVuaworMjI3OSBhODA5MDEzYzJhZjFlZjNmZDY5ZmY1MWI0OWMyNTYzYWY3YzMyNzA1IGxlZ2FjeS10cnVuaworMjI4MCA5ZmVlMWNhNmM4ZmVkMTU3NzBjZjA2ZjQxODc1ZGZmYWU5YWVkNDJhIGxlZ2FjeS10cnVuaworMjI4MSBjOWE1ZmUxNjYwZjUxOTg1ZTI2OWJlNDkyOTQ2NGU1YzRlYTJlNWFkIGxlZ2FjeS10cnVuaworMjI4MiAwYzI1ZmFmNGE2YTQ0NTA4NWM0YjdhOTg1YjdhNDMwMGM5MzljZjcxIGxlZ2FjeS10cnVuaworMjI4MyBiMzgwM2ZkM2NiMmM4ZDkwOTMxMzZmNWExZDJlYzUwZjk4MWI0MzEyIGxlZ2FjeS10cnVuaworMjI4NCAyMjcyN2I0Mzc4MWU3YzUzZGJkY2Y1MmYzOGFiZmQwOWQ2ZDA4MTRmIGxlZ2FjeS10cnVuaworMjI4NSBhOGQwMzNjNmZiNTRhM2VlYTgwZGUwYTI5NTJjZjVhOTgwYjNmODQ3IGxlZ2FjeS10cnVuaworMjI4NiBmNzFkNmEwOTZiMDIxOGEyNjcyN2JkYTBkNGQzZDVhY2JmMzUyM2RiIGxlZ2FjeS10cnVuaworMjI4NyAyN2NjMGQ4MjM3NjYzYjc1ZGEzODcxNTQ2YjIwM2Y1Njg1YTQ3YTQ1IGxlZ2FjeS10cnVuaworMjI4OCBkMjE0YjVkMjFkZjhjNWFjZWNlZWU1NmJlMTQ4MTg0NDVmODA5ODMzIGxlZ2FjeS10cnVuaworMjI4OSAzYmVkNzZjZGFjMGM0NjU1Y2Y4MDI1YmE2MTIyMWYzZWNjZDdiNjlmIGxlZ2FjeS10cnVuaworMjI5MCBlZmQ5MDA0OTdmNGY4N2Q3MTdkMTM3ZGI1OGFmOTk1ZDZhMDNiMTRiIGxlZ2FjeS10cnVuaworMjI5MSA4ZjIxNGQ2MTdhY2FiODBmMTY2N2MxMDJiNmZlODVmNjgwYmNlMGRiIGxlZ2FjeS10cnVuaworMjI5MiBhZDRjNWE1ZWYwZmZlZWU5YjlhYTg4NWE0MTZlMDlmYTQ0OTI1MWIwIGxlZ2FjeS10cnVuaworMjI5MyA2NWVkZGUwMjJkNzFlZTM4M2IwYTU0NmM3Mjk3YzkzODk4YTZlMWIxIGxlZ2FjeS10cnVuaworMjI5NCAwNjg4OTY4NWViNjIwMWQyNGU5MTNiNGMwNTRjMWYyMjc0ZDRkMzVkIGxlZ2FjeS10cnVuaworMjI5NSA1ZDVjOWIyZGE1NjIyMTgyY2FmY2YxNzc3YjhhYTc2YzcwYWI3NjIwIGxlZ2FjeS10cnVuaworMjI5NiAyNmNjYmMzZTQxYzQ2MWFkNzlhNDJlMjAxMzM5Y2I5ZjlhMmQ4OWM3IGxlZ2FjeS10cnVuaworMjI5NyA2NTIzYmQyOTU0ZjA0MzZmYjhmNmNiNGFhYWZhMzAwNTA3ZTNhYjI3IGxlZ2FjeS10cnVuaworMjI5OCA4MmVmOTRiOGI5MDJlMzQ5NGIzODYwMWQxODQ0YmI5NTlkZTMxNjc3IGxlZ2FjeS10cnVuaworMjI5OSBiYjI0OTQ4OTU3ZTNjYTk2ODc2ZTkwMmVkYjI5MGFiNDY0YmE2YjZlIGxlZ2FjeS10cnVuaworMjMwMCBjMjk0YThjYWViYjliYjNlZTlmODkyYTM3MmQ2NDU3NTA3MDQ2ZjUzIGxlZ2FjeS10cnVuaworMjMwMSAzYjgwMjNiMGJiNDhiMTA2NmQ0YTMzNDA3MzE3MzA0ZDM3MjllMzkxIGxlZ2FjeS10cnVuaworMjMwMiBiZjVhODUzOWQ4YmE3Zjc0ZjAzNDIyYzViNGY2NjkwNzBmYjk2NTIxIGxlZ2FjeS10cnVuaworMjMwMyBjN2VhNjA0OTFlNjgxZTliOTFmNzZhMDEyYzRkYzk0NGI1ZmZmMmQ4IGxlZ2FjeS10cnVuaworMjMwNCAxODcwZDgyZGUwNjk5YWZiYTg5YTE5NDY2YjJmOWMzNjUxYjRjYzlhIGxlZ2FjeS10cnVuaworMjMwNSBjNzBlZWZlNDgwMjkwYTFkODBkOTg3YTJmZjU5OWEwZWFjYmViOTkwIGxlZ2FjeS10cnVuaworMjMwNiA4NTNiNzM2YTZhOWVlMzhlMzMwMWQ0MzBjMTUyYWU3NThlMTYxYTQwIGxlZ2FjeS10cnVuaworMjMwNyAwZjU5ODk5M2Q5OTg2ZjRhZTRlNmRkOWEzNDkxZDUwOWIzMDk4ZTgzIGxlZ2FjeS10cnVuaworMjMwOCAzNDk5YWQ4NzgzOWFmN2ExYTRmNzFjMTVmODlkMjBhYjg0Yzc4ZTcxIGxlZ2FjeS10cnVuaworMjMwOSBhMGM1ZjJhZjJlMGNhZDVjNGQ0ZGU0YTg5M2NhNWE1ZmU3Y2U3ZDQxIGxlZ2FjeS10cnVuaworMjMxMCA2MWM1MjYwYzM2NGYyNjBlNGM5YzljNTlkN2Y5ZDJhN2Q0NDM2YTFjIGxlZ2FjeS10cnVuaworMjMxMSBjNjVlYmE4MTk0YzdiNDAzYjllNzJlYWFjNDUwZTJkYWRhZjIwMzc3IGxlZ2FjeS10cnVuaworMjMxMiA5ZDRjN2RlMGRlZjRmZTY3ZWY1YWQ1ODI0NGM3Njk5YjUxODhiYTFkIGxlZ2FjeS10cnVuaworMjMxMyAxZDQwOTRjN2Q1OGI4YzczMGYwMzRiMWIzMTM2NTE4NTYyOWRhNTYzIGxlZ2FjeS10cnVuaworMjMxNCBlNTc2NGEwZDJkMzI5OWRhNjYxNGVlZjE5MjJjN2Y0MTc3NjY1ZmNlIGxlZ2FjeS10cnVuaworMjMxNSBmMmVmY2VhZjczY2M5ZDk5OWI4ZGY1M2JmZjdjZDIxOGEyZTYzMjQzIGxlZ2FjeS10cnVuaworMjMxNiA4OTZjODI1ZjJmNzFiZGQyYWMwZGYxMmI1YzZmZjE3OWUwNmNkYTI1IGxlZ2FjeS10cnVuaworMjMxNyA0M2NhYmFjNTAyM2QyYWMyN2Y1YzlhM2M4MzVmMWFjNjY4YzQzNjgzIGxlZ2FjeS10cnVuaworMjMxOCA0N2NjMGNlNzk5OWM3ODdmNmU5NGJkM2EwM2UxOWMwOTAyMjI0OGZlIGxlZ2FjeS10cnVuaworMjMxOSBjODY1OWY4YTVmNjM3ODRjNWFmZTQwMGRjMTdiNWZjMTkyZDAwMTk1IGxlZ2FjeS10cnVuaworMjMyMCA0MWYzYzY2YjEwZmQwYTY1Y2FiYzQ4YmZhMWM2YWViMzIwZDQxMzU1IGxlZ2FjeS10cnVuaworMjMyMSBhZmE0OGE5NmE0NDQzY2I1ODU3MTM4Nzk5ZTFkMDljNWRjNGJhZDY4IGxlZ2FjeS10cnVuaworMjMyMiAyNWE3ZmI0NGUyOTc4NDQ5ODEyMzU0Y2IwN2EyYjg2MmFmMzJjZWUyIGxlZ2FjeS10cnVuaworMjMyMyA3NjE4Njk3NjZlNDUyOGU2OGYxZDExNDYwNmViYzkxZWVjOGE0ZWZhIGxlZ2FjeS10cnVuaworMjMyNCBlZjliNGJlNWEzZmVhMTAyOWIzMWI1MTU0MjQ2OWRlMGIyNjhkZjBiIGxlZ2FjeS10cnVuaworMjMyNSA3Y2U5MWNmYjdhYzQ1MTJkNDkwNzczZDgxNzQ5Mzc1YThiYzMyOTgyIGxlZ2FjeS10cnVuaworMjMyNiBhNDU0N2FmMjk2NzExYmFhNzQzNzcyMjkyYzc0MTg0YzlkMjc4NWM5IGxlZ2FjeS10cnVuaworMjMyNyAyODkyM2U0NDI1NGNlYjc2Nzg5N2Y0NWRkZWRlNWUyMjllZjU0ZWQzIGxlZ2FjeS10cnVuaworMjMyOCAzZmEyYjE0YmUyNzA5MTE5MDc5ZjdhNmM2MzBlNWIxMzVkNWRlOTA1IGxlZ2FjeS10cnVuaworMjMyOSA2NTg1YWFiZTE5NjhiYTU2MThmMThlYTBjOWRhMWM5Nzg4YjM0ODlmIGxlZ2FjeS10cnVuaworMjMzMCAxZWQ3ZjZmNjU5ODM3MWViZDIzNTBlMTY4MTA4MWIyNjdhYzMwMWU2IGxlZ2FjeS10cnVuaworMjMzMSBlZTBhMzJmZDQ1Njc4NDk1YWMwMjMzY2FhZjZlZWNkMGM4ODRlOThiIGxlZ2FjeS10cnVuaworMjMzMiAwY2VlMDFiNjhkOWM4MjRkMzMzMjJlMzYwMjRhMDJmNGE3NWU3ZTEwIGxlZ2FjeS10cnVuaworMjMzMyA1Y2YzYzM2ZDAyZWE0Y2FiMjMxYzI5OTdlYWIyOGZlMmM3MjZiMTFmIGxlZ2FjeS10cnVuaworMjMzNCA0NjU2NDUyNDM2ZTE5YzQxMmU4ODA4ODM0ZTMxODVhOTY1MDA5NWU0IGxlZ2FjeS10cnVuaworMjMzNSAyMGZlZTRlMmVlY2RjOTVlZTAwYjJlYTNjZDJiMmVlOTViNWU1YjRkIGxlZ2FjeS10cnVuaworMjMzNiAwNmNjM2IwMDY3MWMzZTIyMTU3ZTI3ZThhN2Y2ZTg2ODJhNzZhODQ5IGxlZ2FjeS10cnVuaworMjMzNyAyMjkxNjhhMmZlMjg2YThiMjVkODNkODA1NjNkNzVmNDYwYTI1OWEwIGxlZ2FjeS10cnVuaworMjMzOCBiZDQ5Y2E2YzRhZGQyNDNjODhhMDk0MmFiZjVmMTNjZWYxMGZjM2QxIGxlZ2FjeS10cnVuaworMjMzOSBmYjYzNjdkNWZmNDY0OTA1NGU4Nzc5N2Y0MTIyMzQ4OTMwNTkxM2E0IGxlZ2FjeS10cnVuaworMjM0MCAwYzM1NWU5ZWU4NTQ1OGExZDFhZWU4YmFkZWFkYjgyZjVhYmFkYjRmIGxlZ2FjeS10cnVuaworMjM0MSBhNDA1YTMxMjQyZTdjNGI0ZDJlZDBlNDZiZTVmNGY5MGEzZDczOGNhIGxlZ2FjeS10cnVuaworMjM0MiBhODIzNjAyYzIyNzQxZDVhYjljNDc4YzZmNWJkMTkxN2MyMDQxNWVjIGxlZ2FjeS10cnVuaworMjM0MyA1OWZmYjZkNGIzNGM3NjczY2E3NGFmZGE4MmFlYTYzZmQ0YmNlZDc0IGxlZ2FjeS10cnVuaworMjM0NCBjOTE2OGFmZTIzZGRmNjljZGY1ZjAxNmM3MzFlZDNjNGNhYmNmMDE0IGxlZ2FjeS10cnVuaworMjM0NSAxYjA4ZGY0MTU4N2I4NTVmNGM2MjViOTIzYmJmZmQ0NjI3NTRiNTk0IGxlZ2FjeS10cnVuaworMjM0NiAzMzQ2NjI2OGI2MzcxZWE1ZTkzYzkzMWQwY2UzMzU0MGQ1YWUyZThkIGxlZ2FjeS10cnVuaworMjM0NyA4OTExNWU3NTM0ZDU4MGUwYjhkMjU4MWM4YzI0ZDAwNzkxZGIxYThkIGxlZ2FjeS10cnVuaworMjM0OCBmNDdkNWU5ZWEyNjRlZjkzZDM1ZmQ5YjQxOTQ4Y2QxNDJiYTcwZDQ3IGxlZ2FjeS10cnVuaworMjM0OSBkODE4MThlNjI2NzFhNjNlNTU1M2M5OThjYzYxYmRmYjM1OTEzNDZhIGxlZ2FjeS10cnVuaworMjM1MCBmZjBkYWUxZjRkYjYyNWJmMTMxYmViN2I2Y2Y3M2YxM2FlNTdjNWZhIGxlZ2FjeS10cnVuaworMjM1MSBiNTBmYTZkNTg3ODZkZGJkNDczZGVjZDk1ZTYwNWI4OWUwNGJjNDhjIGxlZ2FjeS10cnVuaworMjM1MiA1ZmZkMzcxYjc4NDFkZTY1MGMyYmZhYzEyN2YwNDBiOWZiNzgyYTk3IGxlZ2FjeS10cnVuaworMjM1MyAzMmFlNGExYWFiNjg5YWVmOGVlMDkwYzRjMTg5MTZkYTc4ZTIyZmRiIGxlZ2FjeS10cnVuaworMjM1NCA1N2YzZmZjN2IxYzQwNTQyNTE5OWViN2ZjMmQ4MzRkMzg1NzgyZTNkIGxlZ2FjeS10cnVuaworMjM1NSAxNDVmOWUxNDU5NWY0YmM2MmIxZTc0MjA3YzZkNTk2MzZhN2U5N2UxIGxlZ2FjeS10cnVuaworMjM1NiA0NWY0M2Y3NTVlNWM1M2JiNGZlY2M4NThhNzU1NDIzZDgyZTU4Zjg5IGxlZ2FjeS10cnVuaworMjM1NyA0OGZjMGI4ZjMzZDkwOWI0NDNmZDgwYjgzM2VhNWZiNGM1NTNlYTUwIGxlZ2FjeS10cnVuaworMjM1OCA0MjNiZTg3NmRjY2U2MjI1NzBjNTc5MzE5OTQ5NjY4MTJkMTE0ODMxIGxlZ2FjeS10cnVuaworMjM1OSA2NDYzMTZjOTk1MDc4ODhjZTkyMjZmZTdlNjc5N2ZlNzY4ZmU1M2YwIGxlZ2FjeS10cnVuaworMjM2MCAwYTNlMzNjZmQ0YTkzMzNlOWQwNmQ0NzQ2M2FlZGZiYTA2NzQwZTlhIGxlZ2FjeS10cnVuaworMjM2MSA5ZDAxOTY1ZjRmNDhhZmQ1OGU5ZjJjOThlYzM1NWZkZTZiODU2OWNkIGxlZ2FjeS10cnVuaworMjM2MiAzMTBmOGM5MjQwNzMyZTBhNzM2NDcxMzM0NjQzOWM2ZjUxYzI5N2VmIGxlZ2FjeS10cnVuaworMjM2MyBiZmZmYzdlMGZjYzNlMTkwYTEzNTUyODhlOGFkNzFhYjEzYTZjOThmIGxlZ2FjeS10cnVuaworMjM2NCBjZWIzNmVjNjE5OGRmMzk5YzE5OWQ3ZDAxOGViZDE2NGJhNmY2Nzg3IGxlZ2FjeS10cnVuaworMjM2NSAzZDdkYTYxNzRlMmU1ODUzZmM1MmVjYzhkZmI1YTg5MGQ1NTQ3ZGMyIGxlZ2FjeS10cnVuaworMjM2NiA4ZmZkYTg0NmQ3ODg5ZmQ5NzNjYTkwMDUyNGU0YzkxNzEzMTM1YWVjIGxlZ2FjeS10cnVuaworMjM2NyAzY2M1NDk3MmFiNTIzMDZhZjU5OTI3ZDViYTA3MDIyYmI2NWQwNGE1IGxlZ2FjeS10cnVuaworMjM2OCA5YWIzMjk2OTdkZGE1NDc1MDk4ODg1MjQ1MzBlMDI4MGM1NDIwMGZmIGxlZ2FjeS10cnVuaworMjM2OSBmMzUyZWE0ZGZmNzA4YjFhNzJhOTVjNDVlZDk5YTg0ODkxODZmYTExIGxlZ2FjeS10cnVuaworMjM3MCBlNDg2Yzg0OWM1MGMyNTZlYmM2ZjA5MDNhOTY5ZWEwMzZkNDM4OWM0IGxlZ2FjeS10cnVuaworMjM3MSA5MWEyZjQ3NDU4NTIxODQ0MDVmNjJlMTNkYzllOTJjNTA3ZGM4ZTk2IGxlZ2FjeS10cnVuaworMjM3MiA4M2YwYTcyNGE4N2MwMTYzMGEzOTZiYTU2YTNhYmE5YmRiYWVmNDZlIGxlZ2FjeS10cnVuaworMjM3MyBhNzkzYzllODgwYzdmOTM1OWYwNjMzODA3ZDdkNjJkNWFjMDcyNDBmIGxlZ2FjeS10cnVuaworMjM3NCA2NmI1NTc2NmJhNjU4YTU2YjFlYzQxZGU5YzJiMTYyYjhhOGIxYjE2IGxlZ2FjeS10cnVuaworMjM3NSBlZDAzMTFiOGU3NDE5MTgwNzljN2Y1MjZhY2YyODE3Nzc2MTZiNTVlIGxlZ2FjeS10cnVuaworMjM3NiBmNjFlNzM2OGRlZjJlOWU1ZjU1ODY4N2M5YWMxNWZhMzRmMDBkMWYyIGxlZ2FjeS10cnVuaworMjM3NyAxNzU0YjgwMjRiNTVkMGMzN2ZmZTZjMWFmM2ViMDFiMzcxZDZhZWRhIGxlZ2FjeS10cnVuaworMjM3OCAxOTU4NzIzYmZlMDI0ZDZlYjRhNGIwYzY2ZjI5YzU4ZDJiMjZhYmFmIGxlZ2FjeS10cnVuaworMjM3OSAzNDI5Yzk0NWQ4MTdkYmQxZWM0MTVhYzk1MzZkMmQyMTRhYmE4MjU4IGxlZ2FjeS10cnVuaworMjM4MCBhMTA5N2NkMDMzNDhlZTgxYjYxYzA2MDQ4Y2NiYTZkOWMyNThjYjZjIGxlZ2FjeS10cnVuaworMjM4MSAxZWZmNjExMTU4MmU0OGUwMDkwNjg4ZjQ3NWQxNmRiZGQ4ZjIyN2RkIGxlZ2FjeS10cnVuaworMjM4MiBlZGRhOWFhZDNlOGYxN2UyZDhmYmNjMzI3ZjE3ZmI2YzBlZmM3NjdiIGxlZ2FjeS10cnVuaworMjM4MyAyODk4ZDc4ZmEzMmRlN2UwNmIwZGMxYjRlMmJhOGIzMzg4ZDU2ZDVkIGxlZ2FjeS10cnVuaworMjM4NCA2NjkzYzVkODdmM2EwNDlkOTA4MGFlNmM5MDRlZDlhMjM0NjkxM2IwIGxlZ2FjeS10cnVuaworMjM4NSBlNzFiNmZlYzg2ZTU5OGZkMzAyNmY3ZWQ2MzA4ZmEzNzMwZTZhNWVlIGxlZ2FjeS10cnVuaworMjM4NiA3ODE5ZTE2MTUzMjBiNDIwNjIzMmVkYzM3ZWI4NjJiYzZmODczYjYyIGxlZ2FjeS10cnVuaworMjM4NyA3ZTgzMTE1ZWRiNmFlNmQzMjY0ZWMzM2M4OTQzMmIzZWRhMmYwMDAxIGxlZ2FjeS10cnVuaworMjM4OCA3ZWM2MDU4YjUzOWI3ZWQ5ZmEwY2Y2YmUzN2VkY2QxNmZjMTY4NjhiIGxlZ2FjeS10cnVuaworMjM4OSA2MzRjMWQzYzdkMzkyM2YwNGNhNTM0YWE4ZmYwNzQzOTkyOTYxMWM4IGxlZ2FjeS10cnVuaworMjM5MCAwODU5N2UyYjYzZDNmOTQzY2ZkZTZkMjc0MzQ0Njc1YzcyN2MzZTA0IGxlZ2FjeS10cnVuaworMjM5MSA3YmE5NjEyMDU4YTQ2OWIzNDkzOWY0ODgwN2JkNmUyYzI0ZWUwZjYyIGxlZ2FjeS10cnVuaworMjM5MiBiMzFhYmY0MjBlNjFhN2EwYTVhYWI0YTcxMjliYWExNThjOWVlZjA0IGxlZ2FjeS10cnVuaworMjM5MyBhZjJlNjQwMDc2OTgxN2IzOGVmYjdlZDUwNWFjYTZjODFjNTg4OWRjIGxlZ2FjeS10cnVuaworMjM5NCA4ZjYyYTU0NTczMTllMjY3ZjQ0YjZiZTUxZWYzYmUxZDgwYThlZjNmIGxlZ2FjeS10cnVuaworMjM5NSA5MTRjODNjZmE1ZTEwNWM3OTEyNDdjM2E4ZGZiZDA4MTZjZjQ0OTk3IGxlZ2FjeS10cnVuaworMjM5NiA5NzcwMTEyZTY2MGE5MDNmNWVhYzY1NzhhOGQ1NTg4MTRmNzQ4YjIyIGxlZ2FjeS10cnVuaworMjM5NyAwYTkyYjZhMWI5YzBhYmU4NzdiNjFhNGUzYjQ1OGUxZmViN2I2OGFlIGxlZ2FjeS10cnVuaworMjM5OCAxNmY0Njc3MTdkN2FiNzAzNWExMTVhYTlkNTEyZWI1OWM3MGY5YmNjIGxlZ2FjeS10cnVuaworMjM5OSBmZDgxNmVkMTdlMzVmMTcxMGU4Yjk2YjNjYzlmYjdlMDkxZDU1ZTE5IGxlZ2FjeS10cnVuaworMjQwMCBmZGE5NzNmMmE1MTJiOWE1NjI1NzU1Y2U3MDFmNjNhZWI3ZGVkMmI3IGxlZ2FjeS10cnVuaworMjQwMSAwYWFkM2E3Yjk3ZWYzNTI5MTMxNzExZmM4MWFiZDM3Nzk0YWZiZTUyIGxlZ2FjeS10cnVuaworMjQwMiA0MWUwNTc4NzBhNTM1NGVmNWI1Mjk1NmI4OTg5MmY0NGEzYmY3ZDc1IGxlZ2FjeS10cnVuaworMjQwMyAzMTZhMGQ5YzAwOTY5ZWQwNjZiMDI1YzA1NGZkYjBkMWM0NGQ2OGQ0IGxlZ2FjeS10cnVuaworMjQwNCA1ZjdjMjRiMzk1M2JlNzQ0M2VkNmYxZTM3OWIzMGI1M2JiZDBhZTc3IGxlZ2FjeS10cnVuaworMjQwNSA0N2ViODFkYTQ2ZGMyMTY3N2YxOGJjMWY1M2JhZWYyMGY0NGJmNTg3IGxlZ2FjeS10cnVuaworMjQwNiA0MzEzM2Q4ODVjNGNjOTYzMjExNjk5ZWQyOGM5Njc5MDNlMTY3YTNmIGxlZ2FjeS10cnVuaworMjQwNyA5NTZmZDVjM2YwNDA3ODAxN2RiYjI1ZmI3MGIyYWQxYThlYTFiMjhiIGxlZ2FjeS10cnVuaworMjQwOCAzNTliZjEwOWRhMGY3YzYxMDJjMGRkZTkwYTU5OWU4MTg4ZWIxZjRkIGxlZ2FjeS10cnVuaworMjQwOSA5ZWIxM2M2N2FlNmZmNmJlYTkyZjgyNmNlN2FmMTM1YWMwYWViOWJiIGxlZ2FjeS10cnVuaworMjQxMCBiYWIxZjU0OTRiOGVkZGNkZDFlNzlkNzE3OTRjNGYzZTA4M2MzMjY4IGxlZ2FjeS10cnVuaworMjQxMSBiOTk4NjAwOWQ3ZGM0YjdjMjg5MDU0YTg5YTY4NmNkYTJmYTZlZDc3IGxlZ2FjeS10cnVuaworMjQxMiA0OGQ1OGI3NGEzYTQ3YWJjYzYxNmJjYjYzNThiMDhkNDI1MjI1OWEzIGxlZ2FjeS10cnVuaworMjQxMyA2ODExOTEyZjY3MmQ4OTQzMzkxMzJiNmI4ZmM4NmRjZDU5MGNhMzczIGxlZ2FjeS10cnVuaworMjQxNCBkNGU1MzJlZTZmM2QxODdjMDdlZDU3ZDQ0NzU5YjQwNDBlY2NjMjM3IGxlZ2FjeS10cnVuaworMjQxNSA3MWIwYmQ1ZWQxNjIwNWIyMWQ0MzZhNmNiZmQ0ODEyZjE2YzlmOWFkIGxlZ2FjeS10cnVuaworMjQxNiA4NjA0ZjkwMjljZGEzZDcxN2JlYzY0MTI2NmVjNzA0YzhmMzY5ZTIwIGxlZ2FjeS10cnVuaworMjQxNyAzZWFiMmNmNWU0ZGQ1MWNmY2M0NDlkZjZlNGMwOThkZjliMGNmN2Q0IGxlZ2FjeS10cnVuaworMjQxOCBhNDY1NThhZDBiZWRhOTU4YWM1YzE3MDExNTZlNDY5MThjMGM3MWQ0IGxlZ2FjeS10cnVuaworMjQxOSAzYjkzYmNlYTEwZjZkZjg2OTE4MzgzNWU4NGNmZjViZmM1ODc3ODRhIGxlZ2FjeS10cnVuaworMjQyMCA2MzIxZDNkYzU3ZTBjMTg5MGE2ZjYyMmM1MWQzOWY0MGFmYWNhNjRkIGxlZ2FjeS10cnVuaworMjQyMSAyNmIyZWVkNzgzODE0ODgwNzQxMzMwZDBkNmMyZDFiOGJlMTE0ZTA0IGxlZ2FjeS10cnVuaworMjQyMiBmNGE5NDRlOTgzNWZhOTMyZjE0MjY4NWE3ZTI0NGY2ZDI5OTQ3MTE0IGxlZ2FjeS10cnVuaworMjQyMyA2YWNkNDFhNDVkOGRhOGJiMGYzYTU2ZmJkZTBmOGM2NjgyNmQwM2Q5IGxlZ2FjeS10cnVuaworMjQyNCAyOGYwZmZkOWZhY2ZiOTlhYzU5NThjNzhlMDgzY2UyMjY2MzgwOTE3IGxlZ2FjeS10cnVuaworMjQyNSA3MmQxYjg5YmUzNWFlMjJiYjZhZWE1M2EzN2QzODQ0ODQ2MzNjZjQ4IGxlZ2FjeS10cnVuaworMjQyNiAxODdiYTE3MzNiMTc4MWI0YmY1ZDk3YTRkNGZiMzM0MjU1NTBkODkwIGxlZ2FjeS10cnVuaworMjQyNyBiNTgyNmJmMjk2Nzc2ZWEwZjQzYTk1MjEwNGQxMTQ5OGZmMjRhZDZlIGxlZ2FjeS10cnVuaworMjQyOCA0NTc2NjFlNDdjN2JhOWI2ZGQ5MjY1M2Y3YjQ3ZDdhY2ZhOTQyM2E1IGxlZ2FjeS10cnVuaworMjQyOSAwZmUyNDcxMTY2ZjA1M2JmN2Y2YjFiMDEzM2QzOWQ4YzI2ZWZiMjNmIGxlZ2FjeS10cnVuaworMjQzMCA3NDVhNDY2MTE5NTdkNmIyNDU0NzY3OGRlM2ExZWUwZjUyM2VjZTY1IGxlZ2FjeS10cnVuaworMjQzMSBhZGVkMjA4YWRmNmM2Mjg1YTgzZThlNDNiYzU5MjllZDA0ZTQyYzNjIGxlZ2FjeS10cnVuaworMjQzMiAwYmYwMmUxYjdmNTFkZTZjNjUwZDE4OTg1NjUyZmVkYmNhMGU5YTEwIGxlZ2FjeS10cnVuaworMjQzMyBmMDg1N2NlN2VkNGZhZTQwOTg1ZTJkZDBkMjE2Mzc2ZmZmZjMwN2M2IGxlZ2FjeS10cnVuaworMjQzNCBhZjFjOGY1ZDBiMzdmOTMxYmQxNzYxYjg5M2Q3N2NmM2E5NWUwNTY5IGxlZ2FjeS10cnVuaworMjQzNSAxMmE2NDExNWE0ZWViZGE0YjhjY2Y5M2YzMjIxNmIyMjcwNzg0YTk2IGxlZ2FjeS10cnVuaworMjQzNiA4MDAwMWMwMjNiMmIyNmZhYzk4YzI5NDBmMzFhNDZjZjJmNTRiZTk4IGxlZ2FjeS10cnVuaworMjQzNyAxMDc4Y2QyNzNiNDA0MWI3OWYxMmZiNDE5Zjg1NzQ5YjdkZjliZmJiIGxlZ2FjeS10cnVuaworMjQzOCA1M2M4ZDc2MmYzYTgzZTIwM2E1ZWEwMTIxM2QxMTVjNTUzZDNmYjQwIGxlZ2FjeS10cnVuaworMjQzOSBhZjlhODYzNmU0YTg3Nzg3NDcxNDEwOTM0MTUyMzE0NzJiN2Y5YzRlIGxlZ2FjeS10cnVuaworMjQ0MCA5YzkyNGY5YzNiMTY5NDMyODdhYTU2YmJkOWVmY2YzMzZhMTY1NDZkIGxlZ2FjeS10cnVuaworMjQ0MSA3MDJhMTM5ZmEyNGI0OWE4NGE1MzAxMjI5ZjMwYzBlMDkwYTIxMWFmIGxlZ2FjeS10cnVuaworMjQ0MiA2ZGZjOTI2MzAxMjM0NzBhMDQ0N2NmYWQ3YmFlNzlkOTAwMjY0MjEyIGxlZ2FjeS10cnVuaworMjQ0MyBkNWM5YWU0MjJiNDEwMzY2ZDVkMzAxNzc0YjYyZDc3NTk2YmJiNTk1IGxlZ2FjeS10cnVuaworMjQ0NCBlZDAxNjI1NTg5MjkzM2E5ZGUyZTFjY2JkZDYzM2U3ZjQyZWUzMTEyIGxlZ2FjeS10cnVuaworMjQ0NSA2YWM0MDIwMjNjYWM1ZWE5ZjM3NWY0MjI1ZDUxZTRkMWYzOTY2YmQ4IGxlZ2FjeS10cnVuaworMjQ0NiA4NWJkN2RhYzEzZjNhZWM4ZmNmMjQxYTg0NGE2NDc0NDJkNjg1MzY1IGxlZ2FjeS10cnVuaworMjQ0NyAzOTA1ZGE2YzRhOGJmMTQ1N2FiYjBmZGRjZTE4ZDJlYTAzOTRjNmVmIGxlZ2FjeS10cnVuaworMjQ0OCAwN2VmZGEyOTUxYTg3ZjFmOTAyMjA1YjBiZDhlMzE5MGIzOWI3ZDA2IGxlZ2FjeS10cnVuaworMjQ0OSA5YjQzYTk4MzEyNGMxMmM2NjI4ZDIzNDMzM2Q4MTc3MjUzYjY5ZTRlIGxlZ2FjeS10cnVuaworMjQ1MCBjNGMyNzhjNTZlOTAwMDUzMTNiMjUxYzU5YWJhZTgzMTczMDI4NmI3IGxlZ2FjeS10cnVuaworMjQ1MSA2NjM3ZWVlMWM0Zjg0MjJkNzYzZGNlODQ4YjMxYWM4MGUyOTU3YzE1IGxlZ2FjeS10cnVuaworMjQ1MiAwNjc3NGE5NGFiYjViZDczNjYxZjMxNjExMTE4ZTEyMGJlMzVmNjEzIGxlZ2FjeS10cnVuaworMjQ1MyA2MzA4NWY3YjNkYjVhZDJiY2FiNjUwNTMxYzI3YzhlYTgyMmFjNGMzIGxlZ2FjeS10cnVuaworMjQ1NCBmOTAwYjY5MmIzN2U0NzAxOGQ1NWRiM2Q5N2FlZjRjYzZkM2IwY2M3IGxlZ2FjeS10cnVuaworMjQ1NSA4OTM4YjMxMzJjYWE5MDM4YTA2YmY2ODViODMyOGFjZjNhMjJlZDViIGxlZ2FjeS10cnVuaworMjQ1NiBkN2EzOGRlY2U4NmE4MTgyYTRlZDMyNDQ1MzEzYmIzZTM5NDA1YzJiIGxlZ2FjeS10cnVuaworMjQ1NyA3YTM1ZDk4NTc2M2IyMWY5NTllMmQxNmM4YWVjYmViYjVlY2Q1NTVjIGxlZ2FjeS10cnVuaworMjQ1OCBhYmNjYjBmOWY3MzU5YmMyOWI2YmRkYjI5Y2RjZDAyYjM3ZjFlYjcwIGxlZ2FjeS10cnVuaworMjQ1OSA3Zjg3NTZmZDY0MjIwZTNkMTA2NjUxMjVkNmVmMmUyOWI4YTUwZTU4IGxlZ2FjeS10cnVuaworMjQ2MCBmNzA5MGY1ODE0YzIyNzYxOTg5MTdmZDg2NWJlNjcxNTUzNTRmOGM4IGxlZ2FjeS10cnVuaworMjQ2MSAwOWZiNzllN2JhZjdhZTdlMTBlYWRkMTIxOGE0NDk4YTY5MWQwYTY2IGxlZ2FjeS10cnVuaworMjQ2MiBjMjhmYWJlMjExNjU0NDU4Nzk4N2QzYzYwZjE0MzA2YzdiOTk3MmFiIGxlZ2FjeS10cnVuaworMjQ2MyBkMTlhNjY1OTA0ZGY1Nzk0ODM3YzUxNjQ4Nzk3ZThjYWJlYWViYzMyIGxlZ2FjeS10cnVuaworMjQ2NCAxNDlkZDEyMWQwYTZiNGViNDAzNDBjYTlmMDA0MDEyYzdmM2E3ZGZiIGxlZ2FjeS10cnVuaworMjQ2NSAzMjAxYjc1Njk1ZWYyODgzZWZkNDg2NGY0N2EwZjNhYzUyN2E4NmRiIGxlZ2FjeS10cnVuaworMjQ2NiA2YjkzZDRjZThkY2I5OGJmNThhMmQ4ZTkwYjkzNzEzZTE2OTlhMGRlIGxlZ2FjeS10cnVuaworMjQ2NyBjOGE5NzkwMjlkZjQxZDhhYzEyM2IyM2U1MTM4MGI3MWNhNDI1MjAwIGxlZ2FjeS10cnVuaworMjQ2OCAzNWEyNTI4ZjhhNzNkODZmZDM4ZTliYmEwM2MxN2NhY2IzZTA3YTM0IGxlZ2FjeS10cnVuaworMjQ2OSBhYmNkOTE1OTMwMzU3N2ZiZWZiZjQ2NGUzMTY1MGFjMGZlYTQyMzE1IGxlZ2FjeS10cnVuaworMjQ3MCAzODIzMjNmOTJmY2U1ZmQwNGVjNTA2MTgzZjAyZjg0MWZhMGZkZTQ4IGxlZ2FjeS10cnVuaworMjQ3MSA3MmEwMjY4NDIwZDA2NzRlMmE4ZDBkZDY1N2E2NDZlZDcwNGE4ZjQxIGxlZ2FjeS10cnVuaworMjQ3MiA2MDVlMTcyYmJiNTU3NDY0Mjg3ODIzZTRlN2Q0NmYzODdmZTIwYWYxIGxlZ2FjeS10cnVuaworMjQ3MyBhZTg5NDExZjZmYzBlMDY0ODZhMTAxMjAzOWJlY2Y1OWU1YzU3OTVlIGxlZ2FjeS10cnVuaworMjQ3NCBiOGU0MjEzZjY1YTZlNTRkYjRlMzJlOTQwYzUxOWU2Y2FlNjE2NzM0IGxlZ2FjeS10cnVuaworMjQ3NSBlODM4NTJkMWE1ZTIzZDZkMzhkODZhOTBkNzczOWU0NWFmMmFjMmZiIGxlZ2FjeS10cnVuaworMjQ3NiBhZWY3ZTBhOTExOWU1ZDM3ZWU4MjIyNmE0NDUyYjIyOGZjNzBhMjBmIGxlZ2FjeS10cnVuaworMjQ3NyBhOWQ0NjdlODQ2MzE5NGNkNTZjMWI2ZjgzNzgwMDE2ZjcwZWUxMGQ5IGxlZ2FjeS10cnVuaworMjQ3OCAzMjViNDBkNzcyMzU1NjI5NTRkNzFmZTFmNTlmOTFiNzhiZjY2NzAzIGxlZ2FjeS10cnVuaworMjQ3OSAxMmZkZmEwMTBlNDFlYjk1NWZkNWM3ZWU0YTI3NmU2ZmRkZGE0NjhkIGxlZ2FjeS10cnVuaworMjQ4MCBhMTc3NWNjNzg2ZTZhZDlkMTI1NGEyYjBhMWIwMGNjZTRhNWU3NzUwIGxlZ2FjeS10cnVuaworMjQ4MSAyNjQyNmM0MmExNjJhNDQ5ZmUwMjg3MDY1NjU3ZjVhNjkyMzhlMDRlIGxlZ2FjeS10cnVuaworMjQ4MiAyYTg0YjE2ZjkxYjA5ODgzMWJhNzUzYjNlMzEzZDVmODY1YTI5ZDAwIGxlZ2FjeS10cnVuaworMjQ4MyAxYTZjZjFmOGNjZWNhMDRiZGMyZWE3MGNkMjNkYmRiNWQ4NjE1NTgxIGxlZ2FjeS10cnVuaworMjQ4NCA3MTRjMjM5MGU1Y2I0NWU2YzgzMzRmYzQxY2NlOWUyZDZjMTI0NDg2IGxlZ2FjeS10cnVuaworMjQ4NSBhODEwMjBkNTA1YmY5ZThiNmM5ZTBmNzgyOWVjMTFhMWVlYjMzMzA4IGxlZ2FjeS10cnVuaworMjQ4NiBiYWFkYTIwNzYyYjA4MTg1ZDAxMGUzNmM2NjgxODMyODNkM2NlYzBjIGxlZ2FjeS10cnVuaworMjQ4NyBmZjA4NjJlM2Q2M2E5Njc3OGRlMjgwYzk2ODc1YWZmMTQ2Mjc5N2VlIGxlZ2FjeS10cnVuaworMjQ4OCA0YjU5ZTYzYTI3YjU3YzMxNzJlZGQwZTk1Yzk2MzEzNWY5ODlhY2U4IGxlZ2FjeS10cnVuaworMjQ4OSA0OGJiYzhhZDgwMTZhNWI1NDc0MTZlZTFiZmNmYmQwNWNkMmYwOWY2IGxlZ2FjeS10cnVuaworMjQ5MCBmMjFjYjdiNTNmNmNmOGFjNTc0OTU5ZjJlZTI1ZTI4YzRmNWZhZmFmIGxlZ2FjeS10cnVuaworMjQ5MSAxODA3ZDYwZTYyMzFmN2JhYjg0MmE4YjcxODUwYTA2MjlkNjU2NjAxIGxlZ2FjeS10cnVuaworMjQ5MiAyMWMyNjZmN2VjYTFkOTY3YWJmODNjYzVmYzQwMzAyOWU4ZjljMGVlIGxlZ2FjeS10cnVuaworMjQ5MyBiZTMwNTJhNzdiN2ZkNDY4OTU0YTA3NDg1MzE3YWRlM2Q5ODNiNDBlIGxlZ2FjeS10cnVuaworMjQ5NCAxMzdhNWUwNmZjODRjZTU1Y2I0MzBlODk3NWQ2OWIwNzk1ZTRjNzVlIGxlZ2FjeS10cnVuaworMjQ5NSA0NDlmNWU1ZDlhZjYyZjIzZWU1MDk1Mjc1NGYzZmQ5MWVkZTdkNGYzIGxlZ2FjeS10cnVuaworMjQ5NiAxN2EyOTc2MGQwNjJiMDEzY2RjYjRiZTU3NjA3MzJhN2MxYzFjNzFiIGxlZ2FjeS10cnVuaworMjQ5NyA2NDE4OWJhN2UyM2JjYWMzMGJiMGRiYWMxN2U0MWQ0ZTA3MDhiMzgzIGxlZ2FjeS10cnVuaworMjQ5OCA0MjY2YWVmNTBjMmI0Y2ZiMWMyZjExMjU1N2I2ZGIwNDJkYmNhN2YwIGxlZ2FjeS10cnVuaworMjQ5OSA3OTRjZmQ0NTVkYzZmNjI2YmNkYzVjODQxMTY0MGM5ZWYyNTFjYjJiIGxlZ2FjeS10cnVuaworMjUwMCAwOGRjMzdhNGRkMzIzYTIyNTViMDQ4Njg1ZTk1OTYyNzA0Y2JmYzY2IGxlZ2FjeS10cnVuaworMjUwMSBlMzk0MWVmZDczMTA1YzEyMThhYTExYzM5NDQ0ZTA1ODA4NjQ4MGY2IGxlZ2FjeS10cnVuaworMjUwMiA5MDQxOGZkNDM3ZGJkMzY3NTA4MzU0MTFlNmMxYTFhMmQ1ZjRiM2I4IGxlZ2FjeS10cnVuaworMjUwMyBmMzc5NWFjMTQ2Y2VmZWYwYjZhNTViMTMxMzFmNzdmOWM2Y2E5N2I1IGxlZ2FjeS10cnVuaworMjUwNCAzNmFjZTkwODI4OWJhNzlkOTdiNzA2MGU4NWYwNWRiZTlmZGJlMzQyIGxlZ2FjeS10cnVuaworMjUwNSA3NWIyZmQxNjNmZDcxNWExMDAzM2E2MDgzNzY2NzM3MGI2NTAxNWM4IGxlZ2FjeS10cnVuaworMjUwNiAyZTBlYTZkNWM2Y2VmYTdhY2RjZTUxYWM1MzkxNTk1N2QzZjY3ZmI3IGxlZ2FjeS10cnVuaworMjUwNyA0ODE3YWU0MGE0ZTIxZGMwOGQ3ZDZhNTRhNTM3NWQ5NmVhYzVlZTQ5IGxlZ2FjeS10cnVuaworMjUwOCBkYWFiZTIzMjA2MmUwNGM2M2VkYjU0YWI1MTc3MmM0NGNkZTUyYzhkIGxlZ2FjeS10cnVuaworMjUwOSBhMjk1ZDlhM2ZlODkyMzNjMmY1NTNjN2IzZGRlZTFiMjcyZGQ3ZjYwIGxlZ2FjeS10cnVuaworMjUxMCA2ZTVjYmQ5Y2Q1Zjk1MTg3Y2NiY2U1MGY3MTViNjY2MWQwZGExNDc1IGxlZ2FjeS10cnVuaworMjUxMSAzZGZhYTA5M2Q5NmU5MThjM2UwZTg1YmE5NTBjYjM0ZGI1Y2Y4MDU5IGxlZ2FjeS10cnVuaworMjUxMiBhMzU5NWFlNGRjMWU3ODNmYTQ5OTk5NGRkYWNjOTkzYjYzZTc0OTMzIGxlZ2FjeS10cnVuaworMjUxMyBkOTMyNTljZDM3OWQ2NjZlZmQxMjM0ZDU5YTBlYjBkMTM3NGNjMDg2IGxlZ2FjeS10cnVuaworMjUxNCAxYzJjZjJiZGI2YzhhMGU1NWMyZGYwNTFiMjIxNmI1MWRlMzEwNTMwIGxlZ2FjeS10cnVuaworMjUxNSA2MGRhN2VlOTEwMGU2NDliNDAyNTA0YzQyMmY3YzU4OTgwMGM0YjU5IGxlZ2FjeS10cnVuaworMjUxNiA4YTk0Y2NjNGM5MTQwMGIyZTQ2MjIzZTlhYzE3ODA2ZjFkOGUxYWQzIGxlZ2FjeS10cnVuaworMjUxNyBhYjA1ZWZlZDAzZTkwZmY2MWNiNjI4NjljNDIyOGFmZDdhMzgxY2E3IGxlZ2FjeS10cnVuaworMjUxOCAyMzU4N2JlYTExYmIxYThmNjc2ZjQ5ODdjZDBmMTM5MGZjYmZhMTZjIGxlZ2FjeS10cnVuaworMjUxOSBhNjdhYjVkNTgxNDYzYzFmZGY1MDk1MWEwNzBkNmNjYTk2MDUyMzIyIGxlZ2FjeS10cnVuaworMjUyMCAwNjk2ZjE5ODc1M2Y5NDhlOGE2MTRkMTlmMzAxYWQ2NDhiOTY4MmM4IGxlZ2FjeS10cnVuaworMjUyMSAzYjMzYWM0NGUzNmUzYzY1Y2U3MjY5ZGM4OWM5ZWZhMmZkOTFhOWJkIGxlZ2FjeS10cnVuaworMjUyMiBjODU4NGExYmEzOGE5NDc0NGU2MTFlNGExMmUxMzY2ZDBjNjk0OGZlIGxlZ2FjeS10cnVuaworMjUyMyBiMjk2OTZlNWM0ZDk4MmQ5NTlhMjJmZWFjYTA0NTdlNWEwNDdmYWUwIGxlZ2FjeS10cnVuaworMjUyNCBkNzA3NTRhOTYzMTBkNjI4ODFhODk5YjY1NjNhYWIzMmU1OGQ1NTA4IGxlZ2FjeS10cnVuaworMjUyNSAwYmY4MjVmNTVhYzE1MjAwYjYwMjFmOGFhM2I0MGQxZjRjYjJhOTg5IGxlZ2FjeS10cnVuaworMjUyNiA0ZTMwNzNiYjBlM2UwMzk3YmRlOTc1M2U4ODMyMjEzYzA5Y2EwOTAwIGxlZ2FjeS10cnVuaworMjUyNyBjZmJhYzZmZjczYWYzY2E0MzQ5ZmUzOTBlZDVhMGUwYmQwZWE4YzI2IGxlZ2FjeS10cnVuaworMjUyOCBhN2QzNzBmOTNmNzUyNmYzNDMzYjZiMzRhYjU0ZjIyMTUxODVjZGNiIGxlZ2FjeS10cnVuaworMjUyOSAwOTI3YmRiODE2YTA0M2JjYjRhMTFmMTQ4MDBlZDE3OWQ4NjM2NGQyIGxlZ2FjeS10cnVuaworMjUzMCA0NmE2NTYxMjNhNjk2NTU2MGJmMjMyMjM4MDY5MzJkNTM3YzMzNjJkIGxlZ2FjeS10cnVuaworMjUzMSA1MDliYjc0YWMzMjQxMjlkMzIzNTMyMWM5YWE1ZGU3Mzk5OGZiMWU3IGxlZ2FjeS10cnVuaworMjUzMiAzOTcyOTAwZTFiNjFiMjcyZDVmNDZiZmYyMDJmZjRiYWQ1NDc3Y2U3IGxlZ2FjeS10cnVuaworMjUzMyAxNmIxOGY1ODZmZWNjNDFkMTU0NDRiZDQyOTE0NjNjYjlhNjc0ZjczIGxlZ2FjeS10cnVuaworMjUzNCAzMDVlMTUwYmFhNTM4ZTVlN2RkYzBmNTFjZTM2ZDQ3NjA5MmJmNTVjIGxlZ2FjeS10cnVuaworMjUzNSA3MGExOGE2Njg5ZDRkOWNkMGRlMzdhYzJjNmQ0N2M4NWI2MjNjN2YxIGxlZ2FjeS10cnVuaworMjUzNiA4NjgyOGNjMWM2NDY4ZDNhYjBmMDgyMjRhMjcyNmM2ZGM5MTM5NWQxIGxlZ2FjeS10cnVuaworMjUzNyA1NjQ1OTQyYjdhZTA1NWM1NmJkMWQ2M2YzMDlhZTUwMzI2YWRjNGI4IGxlZ2FjeS10cnVuaworMjUzOCA3YWE0Y2Q2MjFmNTkyNjRmMmY5ZDMwMTcxNDAzM2I3N2U2NzFjYTlmIGxlZ2FjeS10cnVuaworMjUzOSA3MzA3NTdjY2I4YTM2OTg0ZjgxOGExMTg4NjU4OWM5MWE5MzdjYjNhIGxlZ2FjeS10cnVuaworMjU0MCA3M2VmZTNlYTRmMWI4YWY3YzJmYmJlODVlM2U4OWJmODE1OWY3MjM0IGxlZ2FjeS10cnVuaworMjU0MSBkZGFiNTAyODVjNDc5ZWFmODRjZjdkNmIwMDZjYjZlNzBhNjA3YTg3IGxlZ2FjeS10cnVuaworMjU0MiA0YTk2ODIzZjliNjg0OTYwMGM1ODhmZjM4Nzc1Zjg2ODJmOTYyNzAzIGxlZ2FjeS10cnVuaworMjU0MyA0ZGZmMjNlN2NmMTE0MTdiNTBkN2RhN2Q3MTFkODQ3ZjNiODA1MDYzIGxlZ2FjeS10cnVuaworMjU0NCBiYTNjMWY5NWU2NjVlMzU1NjdjYmIxNzgxZGY2MzBmYzczNmY0ZjI5IGxlZ2FjeS10cnVuaworMjU0NSBhM2Q0ZDQ2MWQ0NDIxZmFlYjM0YWNhMjhmYzY2NDM3NjBhOTQxZGU1IGxlZ2FjeS10cnVuaworMjU0NiAwMzlhZWU2Y2JkNzg2YWJmNTEyY2NiYTIwOTBiZjQ5MDc1OTgxMWEzIGxlZ2FjeS10cnVuaworMjU0NyAwNTk4ZjRmMjVkMDQ0ZDYyYWIzZTcyM2NjNjMyMDYxNjliYjU3YTM2IGxlZ2FjeS10cnVuaworMjU0OCBmMDFhZWU2MTU1YjNhMmZmMmEzZGY5OTNhZTEyNTc2MGQ3ODJhOGMyIGxlZ2FjeS10cnVuaworMjU0OSAzMWQ1MDllOTQyNzEwNTlmMTJkNjNjNzEzMWMwZDU4MDI2ZDg3OTRlIGxlZ2FjeS10cnVuaworMjU1MCA1NWJmNjY0NDVjODVjODBmMjI3YWM0OWMzMWEzZTg4ZjlmODA1ZTk3IGxlZ2FjeS10cnVuaworMjU1MSAxNzJhYTJjM2U3MzQwYzFlNzQzOWYzYjdlMWJhMGYzZjBjY2E2ZjA2IGxlZ2FjeS10cnVuaworMjU1MiBjYWY4NDY2ZGNjOWMzNTc3YzFlYjYxOTE0NjdmZTk0ZjE1YjI0MjU3IGxlZ2FjeS10cnVuaworMjU1MyBmMzNhM2Y2OWRmY2I1OWJkMTk4NjQwYTYyNDc4OWU2MjE3YjE2MzMxIGxlZ2FjeS10cnVuaworMjU1NCA1OTYwOWIzYWY5NzhhMzk3MDE2Y2QzNWJhZWEyZDE1ZTU4YzNmYWZhIGxlZ2FjeS10cnVuaworMjU1NSA4MTU0Mzg1MjQ4ZDgxNzU3ZGU5MTE4OTdiMjdkOGIzZjFmYTBkYjMwIGxlZ2FjeS10cnVuaworMjU1NiA2NTliOGRiZjY5NWM1MTFhOTk1NWU5Yzc3ZDQyYzVmZmE5OTg5ZmM3IGxlZ2FjeS10cnVuaworMjU1NyBjMjYyZjQyMWE0NGM1MWM0ZmE4OTc1NDBkNDM5NTRlMTgxMWE5OTM3IGxlZ2FjeS10cnVuaworMjU1OCA0Y2RjYzE2YmQwODAwZmVjMGIyODE0ZThjMDA5ZGZkYzBkNWYyMDIzIGxlZ2FjeS10cnVuaworMjU1OSAwYWMxMzU3Y2Q4OTg5ZTNiMzY1NDIyOGUxNjY3N2JkYTE2NjJhMzk5IGxlZ2FjeS10cnVuaworMjU2MCAxZTRlNmRmMDcxOGUwMzgzNmE1YmI2OTNlY2YzODA1YzQyYzA3MjQ0IGxlZ2FjeS10cnVuaworMjU2MSBkMTg5YTJmNjgxYTZkZjM3NTlhMGE0MDI2YmQ2NWVkNzQxMzIyMGEwIGxlZ2FjeS10cnVuaworMjU2MiAwYzVlNGUxMzdkZTZlMGYzNjhhYjQ4OWU2NDQ2MWVmOGIwNDJjYmYwIGxlZ2FjeS10cnVuaworMjU2MyA5YmQyNjgwZDE2YmMzNjE3MGYwZjJjOTAzZjFmYjg3NjU0MTA3NzA3IGxlZ2FjeS10cnVuaworMjU2NCBkNzgzMmFmNmFiYTYzNGU1ZTMzYWRiNDgxNWVkOTA3ZjliMjg4MGNlIGxlZ2FjeS10cnVuaworMjU2NSA5Y2QzOGQxYWMzOTE5ZjM2YzBhMjYzZmNhZTQ4N2YzZjA0MTJhZTljIGxlZ2FjeS10cnVuaworMjU2NiBkM2QzMjg2ODAzMjhkZTdmODYyYzExMjNiNjIzZThjNGM3NzVkMzY3IGxlZ2FjeS10cnVuaworMjU2NyBlNjI4ZDA5Y2UyMmZlYmRkYmM1ZmVmYWEyMjMyNjIwMjY2NGVhNzFjIGxlZ2FjeS10cnVuaworMjU2OCA5YjNkNTU3NjY1YTkxODAyNTViNmY1NzczZTA5MjVmNmZhODAyMjQ3IGxlZ2FjeS10cnVuaworMjU2OSA5NTIxMzNlODliYzcyNWViZmE0OWYzODE2MDk2M2UwNWEyMmM3NGY0IGxlZ2FjeS10cnVuaworMjU3MCBiNWZlNjQ4MjA3MmZlZmE0Y2I0M2I3MmIxMmNmZjVlMmY2ZDNlNjI0IGxlZ2FjeS10cnVuaworMjU3MSBmZDA2MWRhZTllNTcwZDhmYTgwMzhjZWNlNzBiYWNlZjVlMWZmNjdiIGxlZ2FjeS10cnVuaworMjU3MiAwZjM1M2FmYzI4NzBkNjg0NDc3MjlkYTA3NDJkNDQxMWM1YmJlZDI3IGxlZ2FjeS10cnVuaworMjU3MyA0ZWYzMWY1ZDNkOTI3YjRiNzJiZjEzMTAxZjM4NjRlYWY2MzIyNjkxIGxlZ2FjeS10cnVuaworMjU3NCAyYWZmMzdiOWUyMGVjYTA5N2Q4YzlhYzkwZmM2Y2JmZDQ0MzBjNjhmIGxlZ2FjeS10cnVuaworMjU3NSA0YzQ1YmNiZTNiYjNiYmY3MTJmMmFlYjk1M2I0NWU0NWQzZjM5OGZmIGxlZ2FjeS10cnVuaworMjU3NiA0ZjE1N2IzMjRjNTA1YjA2MmNmNTJhMjk2YTRhZjRkMmE5NDM1NmNiIGxlZ2FjeS10cnVuaworMjU3NyAyYjAzNGM5MGI2ZDlhNjc4ZGRjNDc5OTM5YzQxYTExOGZjNjBhYzVlIGxlZ2FjeS10cnVuaworMjU3OCAxNjNlMjkwNjBmMGJmMzJmMTE5YjdkMTIxMjhlMTc0MTk5ZDQxNDhjIGxlZ2FjeS10cnVuaworMjU3OSA3MDMyM2NiYTNjMTM2OWRhMjRjMDMwOWZkMDZjMzNmOTkzNTIzZDc5IGxlZ2FjeS10cnVuaworMjU4MCA1YTlhYTJhYmEwOGU5NmQwMDBlOGMzZmZkODFhNDNmOWMwMDU5MTg1IGxlZ2FjeS10cnVuaworMjU4MSAzOTQzMDEzNDA2OTMzNzJiYjhjMGZlMzkyNzA3MGIyMTMwMDE0MmFlIGxlZ2FjeS10cnVuaworMjU4MiA1NWVlNzVmMmZlYTRhY2RhZDY0ZWUzNmUyYzRjZmVhZWI1YmJiMzVkIGxlZ2FjeS10cnVuaworMjU4MyBlYTVjZjA5YmJmMzZiNDY3Y2I3OGY3Y2IzNzY0NzIyZTA1MGI0NWFjIGxlZ2FjeS10cnVuaworMjU4NCBjOGQwYTRhNDFmMGJhN2NlODJmZDdiY2U3NTlhZjExODNjNGMxYjgyIGxlZ2FjeS10cnVuaworMjU4NSAyZGNlY2E5YTA3MTM5MzNjMzYxZTQxYzZiM2QyMGVhY2M1YzQ0OTc1IGxlZ2FjeS10cnVuaworMjU4NiBkMWVlMGZiMGMwZGY1NjVhMjQwNTUxMzdlM2VjNjYwZjNkYzA3M2MyIGxlZ2FjeS10cnVuaworMjU4NyA2MWJiYzcyMzBjNzE2NmU1NjVlZDBhYmZhMzU1MzBlZmUzNDRjMmRmIGxlZ2FjeS10cnVuaworMjU4OCBhM2E4NDJiMzk5MTMyZWM4MGVkZTU4OTQyZmYxOWI0YjcxYTdhYWM0IGxlZ2FjeS10cnVuaworMjU4OSAzYzdiN2NhYTlkYTU2NmFhY2U2MTBkMTFlZmZkZmU4N2E0MTkwOTc5IGxlZ2FjeS10cnVuaworMjU5MCBiYjMwOGU3YjAwMzk0ZmJjOWM3ZTQ0NTVhZWNlNGNhNTAxMzk4MzhkIGxlZ2FjeS10cnVuaworMjU5MSAwZjllYmM2M2RjYjU2Mzg5YWYxYjFiZmQ3MTNlYjEwYjk5NzZkY2IwIGxlZ2FjeS10cnVuaworMjU5MiAwOGIxYTg5YzhmMDYzNTM0Yzc5Mzk3NTc0MTQzNzk0MWU3M2FmZTUyIGxlZ2FjeS10cnVuaworMjU5MyA3OTQwYmIzOTFhNmFjYjJmOWY1ZTAzNmUxZjBlNTJkN2U5NGRmN2FkIGxlZ2FjeS10cnVuaworMjU5NCA4YmVkZGMxNzAzOTY2OGIzNDgwNjk1YmIzYzhkMmI5NWJmNTRmNzM1IGxlZ2FjeS10cnVuaworMjU5NSA0ODdiN2M2MmFlNzc0YTM4NTEzM2RiMDExNTZkMjcxN2I1NmRlMDU1IGxlZ2FjeS10cnVuaworMjU5NiAyZGUzNGI5NjAyZTBlZjY1ZTQ4ZDE0ZTM5ZWQ2MGYxNzU1Mjg0MDU2IGxlZ2FjeS10cnVuaworMjU5NyAxZTZjOGYyYWExMzZkYWEyNzU0NzYxMzkzZTBjOTIyM2QwZmZmYWU1IGxlZ2FjeS10cnVuaworMjU5OCA0MDJhNTlhZDI0OTNmMGI5N2YzMmM2ZmViMTg5YTU1ZWUxYTVhMzMyIGxlZ2FjeS10cnVuaworMjU5OSA2NGJjOGEyODRmYjNmY2ZkMzZhMThiY2QyZmU2YjUyNzBmNGRmMWYzIGxlZ2FjeS10cnVuaworMjYwMCBjMTJkMDMzZjY1OTRlNjY0OWZmYzI0YjgxZTA3ZTBiYTAxNjk5N2I5IGxlZ2FjeS10cnVuaworMjYwMSBlMmRiMzM0MWQ2ODYwZWU2NzZiNWJkODI2ODUwY2U2MjY0N2JkZWUzIGxlZ2FjeS10cnVuaworMjYwMiA2MDBiZmE5ZmI4Yjc2ZTVhOWE0NzUwMjFiZGZmMzcwM2E1MjQzOTNkIGxlZ2FjeS10cnVuaworMjYwMyAxN2Y0Y2RmMjg5NTlmNjBhMjQ0OTRlZjZmMWU0MTA1ZmI0OTgwOTBhIGxlZ2FjeS10cnVuaworMjYwNCA5Zjg1YmViMWY3Yzg0OWZlMDE2OTcyZDg4MGM4YTBiYTIzY2JmYzFjIGxlZ2FjeS10cnVuaworMjYwNSAxZjY0ZjU1YTUyZTg2NWFhN2FhOTY3YjkxOWZhNDBiYTc3NGU0MmM4IGxlZ2FjeS10cnVuaworMjYwNiBjMDY4M2Q2Njc2YzY2YmM1NGJhOTZlZmMwMTk3OTk4ZjhmMDM3ZGRjIGxlZ2FjeS10cnVuaworMjYwNyBjMzA3ZDEwYjY4MGM2YTM5OGNhMTU2ZjdjMGNkNDA2YzIyZTJlYTFmIGxlZ2FjeS10cnVuaworMjYwOCA4ZjYzODlkYmMxY2Y3YjRmYTcxODI3OTkwMzRhY2M4YzhmZjA4Yzg4IGxlZ2FjeS10cnVuaworMjYwOSAzMjZiODllYTY3MTM4YmFjNDUzMWM1OTgwNjIyZjg1ZTkyMmJmNzU0IGxlZ2FjeS10cnVuaworMjYxMCBhNGZlYTY5MTIwZDgxNDc3MzFiMjY5NDkyMTEwZTc2ZmE1MGYyMjM5IGxlZ2FjeS10cnVuaworMjYxMSAyMzQ5N2RiNjY4N2FhMWRhY2UxOTZkYzYxNjQyZDAzMWQ4N2FjOWQzIGxlZ2FjeS10cnVuaworMjYxMiBiMmRjZTAxYzM2NmU2YWU1NDU2MWE3YThlODY1MjZkNzE2NDY4NzNhIGxlZ2FjeS10cnVuaworMjYxMyBhZTFhNTU1ZTY1ZmFjNjQ2NTZiYzAyZWE1ZGRhYWNiYjM3MGUwNDZjIGxlZ2FjeS10cnVuaworMjYxNCAzNGFiY2ExODJmMThlMWI2MTY5ZWFlMDgyYzMxYTMyODFlODgxYTQ1IGxlZ2FjeS10cnVuaworMjYxNSBhNWYwYjgzOTBjODc5NjgxZGJiMjg0OTRjYmRlYjhjZTFmYmQ4Zjg4IGxlZ2FjeS10cnVuaworMjYxNiA0NjRkOWQ5M2YzNGU5MWEyMjhmZjY1ZGFmNDQwZDllYThjY2M3Mjg0IGxlZ2FjeS10cnVuaworMjYxNyA5MjcxOGU0ZjVhZGMxYjI4NGM3NjhlZGUyZWFjNzBiZDg0ZTJiNGUwIGxlZ2FjeS10cnVuaworMjYxOCBlODY2N2E3ZDMxOGRkZWUwODVkOGUyNGU4ZDcwNmU0NmE4YWJhMzMxIGxlZ2FjeS10cnVuaworMjYxOSAxZmQ0NzEyY2M2NmY3YjZhYzU5ODA0NWM4MDA1ZjA1OTE3ODY1NDQxIGxlZ2FjeS10cnVuaworMjYyMCAwNzM2YWVmYWZjNjAxOGMxNjRmZjgwZDhlM2MyODRiOGI5NTE2NTVlIGxlZ2FjeS10cnVuaworMjYyMSA3YTYwZmFhMzgxMTM1MWJhMGI0NmRhOTBlNmU5Mzk0NzE4NjZjYjJkIGxlZ2FjeS10cnVuaworMjYyMiA3NjljZmZmNGFlNWU5NTA0MWFjMzk2NDY2YzA1ZDExZGU2MzI1OWU2IGxlZ2FjeS10cnVuaworMjYyMyA2NzhhNzM0YzI0NGRjOTBjZDgzMTVlZTNiNzQyM2MwYmY0YmMzNDY4IGxlZ2FjeS10cnVuaworMjYyNCBjOTdmNGM2YmE2YzY1ZWNjNjNmMzM1YmY3MGFjZjQxMjYxNzJhZDI3IGxlZ2FjeS10cnVuaworMjYyNSA5MDMwMGNhMjEyMDA1OTIwNjZiYTc4ZTI3ZTk0MWIyYWM2NzMyYTNjIGxlZ2FjeS10cnVuaworMjYyNiBjYTAzOTFhODEyZjg2MzU4OTI5NTQ4Yzc1YWJhYzlmMjA3YjhlNTZmIGxlZ2FjeS10cnVuaworMjYyNyA5MGNiY2IwYjk3ZGM3ZDQ5ODQ0MzUyNGM1MjJiOTExOTNjZTk1MGQzIGxlZ2FjeS10cnVuaworMjYyOCAxY2I3OGI2MjViMDcyM2NiNDk1NTJkZDZhYzc4MDljZTVhNGJhNGZhIGxlZ2FjeS10cnVuaworMjYyOSAxMGUzZDI2MDQxMzEwOWE5YWJkMzdlYjQ1NzZlMGU1MmYyNTJkZDJjIGxlZ2FjeS10cnVuaworMjYzMCA0MjEzMGU3MjIwYWZmYjk0ZDBjMzNmOGZlNjc3ZDc4MmU4MDJjYmNjIGxlZ2FjeS10cnVuaworMjYzMSBhMTAyNWNiYmEzMGRhZDE3Zjk5NTc0MWFhOGQ1YjQ1Mjg4ZDljZGQ3IGxlZ2FjeS10cnVuaworMjYzMiAxYmUyMDg3NjkyYTI0NDQ2NDM0NzMxMzkyZTM0MGVhNjJiZmM4NjNkIGxlZ2FjeS10cnVuaworMjYzMyAxZDRiMDMzOWI4M2RhOGUzYmNhMDQ0ZWUyMjZkZjUyZGQ0MWM5ZjdhIGxlZ2FjeS10cnVuaworMjYzNCA0YTdmMGYwNmNkMjdjNGIyOWY3NjY2M2YwNjczODdiMmIzNjFmN2YwIGxlZ2FjeS10cnVuaworMjYzNSAxOTM2NTIwMWRjZmE4NWFlYWUzZDk0MDU5NjRlYmJkZjgyOTY4MGFhIGxlZ2FjeS10cnVuaworMjYzNiBlMmMzNDYzYzRkOTE4NDMwMzhmYTYwYWI3NzJiZjM3MGZmM2NiNDA0IGxlZ2FjeS10cnVuaworMjYzNyBiZWM5NjNmOTliYzlmNTkxYWQxYzJlMDllZTYyNDUyZWVhOWI5YWEwIGxlZ2FjeS10cnVuaworMjYzOCA0MzZjODEwMzA4NTMzODY3MzNmNmIyMWEzZGM0OTdiOWJmZDk0ZjJmIGxlZ2FjeS10cnVuaworMjYzOSBjM2JlZTVhNTcyMWY3ZWNkN2RhYmQ5NmQ4OGRmNTRmOGEwYzAyNTQ2IGxlZ2FjeS10cnVuaworMjY0MCAzMjQ5NmEwZDAxZjQ4OGE2NWU3NThlZWY0NWMzZTViMzAyZWRiMjUwIGxlZ2FjeS10cnVuaworMjY0MSBjNjRjNjcwMjU0OWQ2YmEyY2RiOTkwODk1ZjRmZmZjYzc1ZmZmNDAzIGxlZ2FjeS10cnVuaworMjY0MiBkYzA0NjM0NTNhNjQzNzFiYWEwMzgxYjUzYzJmYjM4YThkNjYxY2Y5IGxlZ2FjeS10cnVuaworMjY0MyBlZTg5OWE4MTU3MGQwNTA0Y2E4MGFhMWRkODJkZDM0MzVjZGVkNzA0IGxlZ2FjeS10cnVuaworMjY0NCBjZmJjNGNjZTFhNDI3NzYyOThmNmQ2MDJmNDU3NzkxZDgzOThmNWQ5IGxlZ2FjeS10cnVuaworMjY0NSBkYjgyMGRhM2NlMDNlZDY3MWY2YWNjMjQ5NDIwMjQ1OGMzNmY3NDBjIGxlZ2FjeS10cnVuaworMjY0NiAzYjM4NWJkYTM4Zjg5MTU4YTdmMGUwMmExOTQ5ZTU1ODFhOTQ5OTE1IGxlZ2FjeS10cnVuaworMjY0NyBjN2EyZjU2MTNkNjY0NjkxOTZiYTgwN2QzYjg0MjIxMTJjOTRlNDViIGxlZ2FjeS10cnVuaworMjY0OCA3N2I4MGE5MWQzNTdjMWQ5NWQ4ZTdjZDRjYmJlNzk5ZTVkZWI3NzdlIGxlZ2FjeS10cnVuaworMjY0OSA5MGYzNWZjZjhlYTAxZDcwODI5ZGI1NmViZGFjZDJhZDQzZjcxNDAwIGxlZ2FjeS10cnVuaworMjY1MCBhMGZiYzdiNmE0ODVmOThjOTA3MWQyODc3OTRmMWQyNGYxZTYzZGQ3IGxlZ2FjeS10cnVuaworMjY1MSAwMjNjN2Y2OWQyNDAwMmM4NjM5MzdiODQzZTc3YTQzZTZiNGYwMmQ3IGxlZ2FjeS10cnVuaworMjY1MiBiOTI2NTgwYzljMjg0MTg2MzE4MmEwOGMxNDc5MDgyOWQ4MTNkZDkxIGxlZ2FjeS10cnVuaworMjY1MyA5MmExMGExZTE0NjMwMDdjMDM1ODc3ODkxZDlhYWEyNjA1MjlkMzM3IGxlZ2FjeS10cnVuaworMjY1NCA1NzY2N2FiMWUxOTQxZDAxZWViYzRjNmViZTZkNzdhZTg4Y2UxM2RkIGxlZ2FjeS10cnVuaworMjY1NSA0YzIxMWU4Mjg2YjVjNjI4MmVhNDUyN2Q4NTVjYjJjNjI0NDI0OTliIGxlZ2FjeS10cnVuaworMjY1NiAwYWM5ZDVkYjQxYzhmZjFmZWJiNTEwYmQzNDNhMDUzYjRiMzQ3MTBmIGxlZ2FjeS10cnVuaworMjY1NyAwYWMzOTJiN2Y3NmVhYmVhZDg4NDE3MTdmZWQxMzUwYTUwM2NhYzQ2IGxlZ2FjeS10cnVuaworMjY1OCAyY2U2YTJhMzE4ODYzZGVlM2VkYmFmOTA2MzliYTMyYzY3NWRjNjZiIGxlZ2FjeS10cnVuaworMjY1OSA1NmJiMTA2N2E4ODA2ZWQyYzkxM2RlOTQ2ZDZmNWJkMWI5YTgxODI2IGxlZ2FjeS10cnVuaworMjY2MCA4MGUyZTVkNjdiNDk2NjY1MzA5ZjExNjVlYTE0Yzg3OTRkYWRkN2IzIGxlZ2FjeS10cnVuaworMjY2MSA3ZjNmYWFmZDgzZWQzNzI3NTI5ZDcxZGE4M2MwNDBkOTU2NTU3YzdjIGxlZ2FjeS10cnVuaworMjY2MiBkZGJjZDUzMmMxMTRkZjc1YmY3M2UzMDczZGVhNDE2NTg1NTJhM2MwIGxlZ2FjeS10cnVuaworMjY2MyA2N2Y2ZjcxOTQzYzE2MjI5ZGE3NWEzNjc2NjYzZDYwNjI3NzA2ODZjIGxlZ2FjeS10cnVuaworMjY2NCBlMTRkNDY0NDBlYTcxMzk5ZmZmMTZmN2MwNWQxYWI3OTRmOGFjZTYzIGxlZ2FjeS10cnVuaworMjY2NSBlYjAzOTc3YmFlZWI0Y2YzMjg3YWZjN2EyNzZhOGU5MjU1MmYwNGJlIGxlZ2FjeS10cnVuaworMjY2NiAwOTVkOWNmNGUzZTZlMjRiMTgwYjBjYzRmZmUxYzBjODY5MDg2MmZlIGxlZ2FjeS10cnVuaworMjY2NyA5ZjcxNjFkYjU2NjllOTFiNTY4Mzc0ZmQ2YmQwNDQ1ZmE2NTQ3MWI3IGxlZ2FjeS10cnVuaworMjY2OCBmYmZmMmU3Y2M0OWRmODg3YjQ5ZmQ4M2U0NTUxZjQzNzllOWRkZGEyIGxlZ2FjeS10cnVuaworMjY2OSA3OWVhMTNiN2RmMmMxNjI3NTBhNDI3YTBiNGVjNzNhZTIyNWViN2NlIGxlZ2FjeS10cnVuaworMjY3MCA1YjVmODZlZTRmNzliN2U1NTIxZDZlNjJkNzY4YjgwNzBhMzFhY2I1IGxlZ2FjeS10cnVuaworMjY3MSBjYmNkZmRhMDViYzRlMjJhZjU2ZGZkZjAxZWNhN2Q3YjhmMzZmM2E0IGxlZ2FjeS10cnVuaworMjY3MiA3NjZjYzgyMGY1MTFlMTAxOWFiN2EwOTlhNTRiZWZmN2FmOWYzMjA3IGxlZ2FjeS10cnVuaworMjY3MyA4NDE0ZTFmOWE1ZmU0Y2NiMzczZTI1ZDMxODNhZGViZjkyMDgxY2ExIGxlZ2FjeS10cnVuaworMjY3NCA5ODk2ZGNmMDhlMTZmYWUwOWU2MWI1NDUyMWNmYjJlNDg0NTdiOGZlIGxlZ2FjeS10cnVuaworMjY3NSBiNDZkNzZlYmQ5YTcyZTUwMzJmNDE1NzdiMjg2OGU0YjczZDAwNGMyIGxlZ2FjeS10cnVuaworMjY3NiBmOGQ1M2I2Y2Q0NDJlODAwZTIyOWVkMWZmNDU5MzBkOTczNzAwMTlmIGxlZ2FjeS10cnVuaworMjY3NyA2OWY4OTczOTkzOGY5YTYwOGZkYWU2ODA1NDU0YjQwM2NkMzRmZjhhIGxlZ2FjeS10cnVuaworMjY3OCA0M2MyMjMxNTliMjgyNzY5N2M4MDg5YWRlMWM2OGRmZTA1Y2FmYWY2IGxlZ2FjeS10cnVuaworMjY3OSBkZjAzNDNhYzhhMjFhYjE1OGZhNGIxMzk5NjUzN2VhYzA2MDI5MWRjIGxlZ2FjeS10cnVuaworMjY4MCAwNDhlMTM3MWM0NTA2YzFlM2UyMjYwYjk2MjM1YTU5NWQ4MGYwMDg0IGxlZ2FjeS10cnVuaworMjY4MSAwMmRlN2E4YWUyNjc2MWNmNWM2N2RjZDI5MjFjMGNlMmY2NmQ0YTIyIGxlZ2FjeS10cnVuaworMjY4MiAyZGNkYjAwMjNjMzIwZWU1MmVlNzMzN2M2OTkyMDcwYTU5Zjk1NWJjIGxlZ2FjeS10cnVuaworMjY4MyBiZTg5OGNjMTU4MDA2YTE4NDc4Mzk1MjQzYzM1YWViNTUzYjEwZDU0IGxlZ2FjeS10cnVuaworMjY4NCBkOWI2YjAzNjk4NjBjNDVjNGFlZWNjYzc2Yzg5MDZiMjliMTQyN2I2IGxlZ2FjeS10cnVuaworMjY4NSBiMzgyNWNlODNjODdmMjQyOWRmZjg0NWVjNzQzNWY0YTc2ZTg3ZDBhIGxlZ2FjeS10cnVuaworMjY4NiA3NDJkYzgzODAzOGJmY2FjYWQ3YjAzZmMwYTA2NWRiMzM2MjAyZGU1IGxlZ2FjeS10cnVuaworMjY4NyAyYjBhZDUyYWMzOTY4NmM4OTg0OTllMzBmOTllYTFmYTM1ODI5NjczIGxlZ2FjeS10cnVuaworMjY4OCA0MzU3YWI2OGM3ZDViNmU5YzBkNmExNmI3OGY1YmYzMTBkYTZhOGUxIGxlZ2FjeS10cnVuaworMjY4OSAzZDQ2NzEwOGIwMDgzYzRjNTZiZDVhNDc0N2JhZWE3MDMyMTI1YmU1IGxlZ2FjeS10cnVuaworMjY5MCAxZWZkYjE1MjIxZGRkMWU5NjM1NzBmYjcxZjI4MThiZTBjNGI2ODA5IGxlZ2FjeS10cnVuaworMjY5MSBkYzJlYzQ5YTJhZDI5YjZkOTYzMDEzZGU1MmExYTgzNWUwZmM3MWYzIGxlZ2FjeS10cnVuaworMjY5MiA4MzMxMDc2Y2ZlMTUyZGZjYjlkMTY2OWY5MjlkNDc5MWQ1YjkzNjM4IGxlZ2FjeS10cnVuaworMjY5MyBmZWUzNTA3OGVmNDBhM2Q1YjU0ZmUwOGIzMzQ5OTcyNTMzMGVlZjk4IGxlZ2FjeS10cnVuaworMjY5NCA4YjRhMjc0ZTU0NmRjY2E4Y2E4MGJjMTYxOTEyMTg0NmViNjA5ZWU4IGxlZ2FjeS10cnVuaworMjY5NSA5NmIyMTI4ZjAwYWVkYzI0YTI0NGE2ZWFlMjAxYWVlNDg4NzgyNDEyIGxlZ2FjeS10cnVuaworMjY5NiAyNjk2YjU2ZGRhYzQ5NTJmY2QzODAyZDFlMTgyNDMzZGVmMWE2MzVhIGxlZ2FjeS10cnVuaworMjY5NyAyNTU3MjhhODQxZGVmMWI1ZTkyOGUwZWQ2MWQ2NGNjYTQ4NjE3MzYzIGxlZ2FjeS10cnVuaworMjY5OCA5MDE5ODQ4ODI0YTEwZDZlMWUxOGVhOGJiNjc2ODUxMDgyY2I1OTYzIGxlZ2FjeS10cnVuaworMjY5OSA5ZDAyNDJiOTJjYTVmYjA3N2NlZGNjMDBmMTYxMGFlZGVmOWNjMDI1IGxlZ2FjeS10cnVuaworMjcwMCBlYTUxNDY4NjZiY2YxNzk3NDU0MjdlZDNmYTliOTliYjcwMGRmNmY0IGxlZ2FjeS10cnVuaworMjcwMSA0OGVhZjRmYzUzY2IwZDgwMTMyNjIxYTM4NjE1YzYxYWVhZjBlZWUxIGxlZ2FjeS10cnVuaworMjcwMiA1ZjU5MGFiNDUyOTU3NzZiM2M4NDdlYjI3NjRiZTQ3NjE5ZmQ2OTQ1IGxlZ2FjeS10cnVuaworMjcwMyBiNTg2MTg5Y2MxZjVlNjk5ZGIzNzdkNDBhNTBjNGQyZDc2OTQ0NTE0IGxlZ2FjeS10cnVuaworMjcwNCBkNWUxYzQ5OWYwMTM3ZGYyNDkxNzMxN2YxZWI2MTg4YzAzZGE3MzE4IGxlZ2FjeS10cnVuaworMjcwNSBkMGJhYTgzMDAwMDU2MjQyZWYyMjVkOGIxMDRmMTZhNjI2MjEyYWI1IGxlZ2FjeS10cnVuaworMjcwNiA5ZjA2YzY2ODlmMGQxMGE0MzcyNWE0NWI1NTAzMWM5NmFiYWFlYmM0IGxlZ2FjeS10cnVuaworMjcwNyA5MzdjYmMwYmU2ZWNlZGI1YzBiOTI3YmE1MDM4NGIwMGM5NWU1YTg0IGxlZ2FjeS10cnVuaworMjcwOCBlMTk4Y2M5OGE0ZmQwZTdlMmYzMzlhNDJlNzQ3ZWQyMDJkYzg3MWQ2IGxlZ2FjeS10cnVuaworMjcwOSA4MzA0NjY2NDE2MGU5OTA5MmQzMzI2NWQ4MWI2Yjg2MzhiZWJkNGEzIGxlZ2FjeS10cnVuaworMjcxMCA0ZWZmZjZjZWE5MGY2OTlkN2Y2NTEwYTI5ODhlMGI2YjA1ZWRkNjE5IGxlZ2FjeS10cnVuaworMjcxMSA3NjZjZWM1MGQ3NjZkM2Y3YjU1ZDUyNmZiZDI4MmVmZmU2ZDRlMjJiIGxlZ2FjeS10cnVuaworMjcxMiA1YTYxZjgyN2Y0N2MzYTM5YjRhZWFjNTM5MDE2MzkzMWFhOGQ0Zjg2IGxlZ2FjeS10cnVuaworMjcxMyBjMTU4YzgzNDc2NTQ2NWI3MzczNWMzNzRlYTI0ZWE0NmIzMWI0OTJmIGxlZ2FjeS10cnVuaworMjcxNCAyNjQzMDZiNjFiODNmZWZjZjAzNGNkNDExZWE3MzZkYmFkMTBlMDY5IGxlZ2FjeS10cnVuaworMjcxNSAyZTI4N2ExNTAzYjI1MjY0NmY0ZDgwY2Y5YjZjNzNjZDVkNmU5MDI0IGxlZ2FjeS10cnVuaworMjcxNiAwNzgwYjk1YTY2MGVjODIwOThmM2E4NTRlMjYyYmFjYThhYjU5MWU2IGxlZ2FjeS10cnVuaworMjcxNyBhZGZhMDgyZjUyMGE2MTY2ZjZkMzVmNzMwMWM1NzAxODgxNGE3NjAyIGxlZ2FjeS10cnVuaworMjcxOCAxZWY2M2FkZjRmYzViYTY4NTY0NzQzMTJlMzJlMGMxYzBlYWU2MmJhIGxlZ2FjeS10cnVuaworMjcxOSBjZmI1MzMyMmM5ZDExNDMyZGE1MmUzZmYxOTYxOTY1ZGI4NGJkNDNiIGxlZ2FjeS10cnVuaworMjcyMCA2ODNlZGIwYzQ0NjM0OTI5ODM5ZjYzYTVjZGMzODg3YjM1YjU5MDlhIGxlZ2FjeS10cnVuaworMjcyMSAwNjE0ZDg4N2QxMGFiZDAyYmUxNGQ4OTE1OWQ5YTRkM2UyOTc5NmJmIGxlZ2FjeS10cnVuaworMjcyMiA0NDM0MzkzYjRlZGU2NTY2ODY1OGI0NmE2YjVlNWUyMzRmODFmMzI0IGxlZ2FjeS10cnVuaworMjcyMyAxNzA2OGE2YTBhYTUxN2I2ZDAzYWVlNzk3NTY0YWU4YTU1NTBhZWUxIGxlZ2FjeS10cnVuaworMjcyNCA3M2UyNjZiZjdhYzZiMDNiOTcyYjNiMzA2YzY3Y2NmZmFlNDBmNWYzIGxlZ2FjeS10cnVuaworMjcyNSBmOWMwN2VlNzkzMDIyZjY1YzJiY2JjYjU3YzcyMTFkMzJhNjIwOGU1IGxlZ2FjeS10cnVuaworMjcyNiA1ZmFmOTNlYjkyNTZlMzM2MzQzY2EyZDJmNjliMjRlNDI1OGZkNGIyIGxlZ2FjeS10cnVuaworMjcyNyA1YTFmOWFkZTE1MTI0MzIwYTAzNDkyMGIzYzUxMTA3YWFjYTE4MTlkIGxlZ2FjeS10cnVuaworMjcyOCA4YzE3OWQwMjM1ODNjZDg2MWQ3MTFmZjMxMzY5NGYxZDFmNTc2OWI3IGxlZ2FjeS10cnVuaworMjcyOSA5MjUwOWQzMDRlNDc5YzYwYTdhYjQzNTVlZGY4ZWRlYTVjN2Q4YWRiIGxlZ2FjeS10cnVuaworMjczMCA2YzM2YzI3M2Q1N2Q0ZDllMDIyMWJkY2RiZWQyMjgzMjU0NWUwZmQwIGxlZ2FjeS10cnVuaworMjczMSAzNGE3NjEwNDZkYmQ2OWY2OWRkMzc1MWY1OWQxODFlYjExMDI2YTFjIGxlZ2FjeS10cnVuaworMjczMiBhNWMyNDU5MjNiMzEwZDU2OGEwYWZlZmEwZTRmNjZjMzExMjk1M2ZlIGxlZ2FjeS10cnVuaworMjczMyAwODZiZGJiNjk3M2JmMzViNWM0ZWY5ODNlMGFhZTA5NGQ4YzQ0YmE2IGxlZ2FjeS10cnVuaworMjczNCA0Y2I1NTM1NjcwNmYzYmZiM2UxNGVlNWZmMjI4Mjk1YTc2ZGZlNTYyIGxlZ2FjeS10cnVuaworMjczNSAwM2I5ZjE1MmFkYjY5NTMyNWM1OTMxMTFhMTE4MzM2NzgzYzdmMTg5IGxlZ2FjeS10cnVuaworMjczNiBkZWFlODBlMDdhODFjOThlMjViMmMxM2YyYzJhZmI2ODU2NWU4MTRmIGxlZ2FjeS10cnVuaworMjczNyAzYjhmNDFmOTZlYjRjOTUzMzM2NzQxMGFjZjMyY2Q0MGYwMjY5ZTFhIGxlZ2FjeS10cnVuaworMjczOCAyZGE5MzRlZjI3YzAzODEzYWJkMWFmZTA4MjkxY2Q4N2QxNGRhZjdhIGxlZ2FjeS10cnVuaworMjczOSAxMmVjZWE2ZTk1NWMxMmIxMzNmOTRlMzZmNDBhMjQyNTgzNWEwMGM0IGxlZ2FjeS10cnVuaworMjc0MCA2ODg0MzQ2YzA0YTA0OGIzMGYzYzUzMzY1YmNiN2M0ZDhhYzE3MzJmIGxlZ2FjeS10cnVuaworMjc0MSAzMTY5ZDM4ZjY3NzQyYjk4MTYwNjJjOWFkOTRiNjk1OWQ4YzhjZWViIGxlZ2FjeS10cnVuaworMjc0MiBiYWUxNDk0ZjJlYzgxMDIzMGNiNTc0NTJiMDYwMzQ4Y2JlZjQyMWE3IGxlZ2FjeS10cnVuaworMjc0MyA1ZjcxZjE2NjA3OWQ0MDFkZmNjZjViNGNiNTEzNzc2MjY2YjY4MmZjIGxlZ2FjeS10cnVuaworMjc0NCBjNzJmMjZhYzQ5MWJhOGQ4MjI4ZWI4ZjZmNTdiODE2ZDM1ZjdmMTllIGxlZ2FjeS10cnVuaworMjc0NSAzN2FhNjdmMDg2N2MxMGY0NjM3YzdlMDBmNDRjZWIzNGYyYWFhNGNjIGxlZ2FjeS10cnVuaworMjc0NiAzNzkwNWZlMTg5MmEyN2RkOGI3YzQzNWY0NDQ0NDdmNDNhMDJjNDM1IGxlZ2FjeS10cnVuaworMjc0NyBkYmY0MDg5MTgyMDE2MWViNWU0N2QwNWJkZTliZmY2MzZiZDA5NDBmIGxlZ2FjeS10cnVuaworMjc0OCBkMTU0N2Q2YmI1YjVjZjYxMWY4Zjc3MzI1ZTI5NDBjMjIyY2RiZGEwIGxlZ2FjeS10cnVuaworMjc0OSA3ZDI0ZGU2NDNmYjUwY2FhYjNkMjQwNTk5NTJlYWMyYjc2MzZlMWY1IGxlZ2FjeS10cnVuaworMjc1MCA2MDc3NzA0ZGFiN2EzZjc5YjcxNjRlNGQxODEyYjY1NGNkZGEzMWE4IGxlZ2FjeS10cnVuaworMjc1MSBmMTFmYWU4ZWUxZTQyOWQ4MzZiZjI3OTQ0MzdiYWMzMjFjNTExZTBhIGxlZ2FjeS10cnVuaworMjc1MiA5Mjc2YjNlZTM5MzY3YzYxZDIxYmQxNDJjZDk3YmRkMmZkYmI3M2Y5IGxlZ2FjeS10cnVuaworMjc1MyA5NTcyYTdkMDlkZmY0NjJlYmVhZDQ5YzEwNDIzMWEzYTRlZWMzMmQyIGxlZ2FjeS10cnVuaworMjc1NCAwODY4MTc2MzY1ZDdmYWMxOGQ5ZTZlNDQ3NzhiMzk0OGU3MDQ3NWQxIGxlZ2FjeS10cnVuaworMjc1NSA0N2M0MmVhNjdhOGJkODUzMTQ0ZDk5ZDBiYThjZTc2MWM1NjNlNjczIGxlZ2FjeS10cnVuaworMjc1NiBmOWNkZWViZmNiNjcwYzMwNjg4NTU4NzlmNDk3MDk4MjlkOWQ4NDcyIGxlZ2FjeS10cnVuaworMjc1NyBlMThmMWZhMzk4YTMwYjNlMjVjYWZlM2M2ODc5MDgwZTJiMWQ3ZjVhIGxlZ2FjeS10cnVuaworMjc1OCA4MDBjZjQwODZmYjMzZDgwY2IzYjY3NzE0OWJmMTViNmYwMzIyZTU5IGxlZ2FjeS10cnVuaworMjc1OSBiMjA0ZjMxZmJjOTdlNjBkZDE3NDM3YjI0ODBkOWU2OGVlMmE5NTE3IGxlZ2FjeS10cnVuaworMjc2MCBhMzQ3OTMzYTZkOTIyZjYwNWY1MDJlOGNkMmFmMjhlYjNmZDk1ZGUzIGxlZ2FjeS10cnVuaworMjc2MSBkNDliNmE2NzI1YmQ4N2Y1MjE5YTczZDFmMDcxNTUzNDFjNDRlN2EzIGxlZ2FjeS10cnVuaworMjc2MiA4Y2RkNjJiYjUxNWNiYWEwYzE3OGY3NjE4YTYyYzk2YWY2ZGVhYjgzIGxlZ2FjeS10cnVuaworMjc2MyA1YTM1MTk1Mzk4ZWY1M2ZiZGQ1N2Q2ZDZiYzg4NDFkOGQyZTQ2MDA5IGxlZ2FjeS10cnVuaworMjc2NCAzNGQ2N2RhODhlODRiODRiNmQ4ZWQ3NzM3MjIxMjE5ZGZiYjJkNGIwIGxlZ2FjeS10cnVuaworMjc2NSA4YTI0ZWY0NGRmYjBhOGI0MmI2NTE0NThmNTVlZDc1MDc5MGY2MWRkIGxlZ2FjeS10cnVuaworMjc2NiA2YjM2MDQxNTljYTliMTE4YzY3MTAyZTY1Mjg0YWQ1MTU0NjY0ZWM5IGxlZ2FjeS10cnVuaworMjc2NyBjNzYzZmM2NGZjYWJiZTI1Y2I0ZjMyYjA0Y2M1N2FmMDdiZDcwZWE0IGxlZ2FjeS10cnVuaworMjc2OCAwMjE0YmJmNDdiZjZkZWU0NmVkMTUzMDA3MGU0MzE5Mzg2MjMyYWVjIGxlZ2FjeS10cnVuaworMjc2OSA5Mjc2YzI2MjVkNjRjYmZkMjQyYTNiZjQ1YzFiZWVmYzIzMGJmZjE2IGxlZ2FjeS10cnVuaworMjc3MCAwYWQ1YjM1ZTNhZDg5Zjg2MzU3NjA0Njk2ZmJhZmFhM2E3MzVlNDJhIGxlZ2FjeS10cnVuaworMjc3MSBkY2M2ZGUxYzM3YTRmNTM1MjZlMDYyNTQ0Mjg1NzZhN2I5OGY0ZTI4IGxlZ2FjeS10cnVuaworMjc3MiBlMjVlMjY1NmM4NTM3YjExNWYzODI2MTQxNjg5NmU0NGE2ZmU2Mjc1IGxlZ2FjeS10cnVuaworMjc3MyBmODI1OGY4NDEwNDZlOGQ2NDkyMDI1YzM0YmZhNTI3OTMzOWYyZjYzIGxlZ2FjeS10cnVuaworMjc3NCA0MDVhMmZlYzc0NTQxZGU3MDMzYzRjMzFkYjQ2Mzg0N2Y5ZTBiNzNkIGxlZ2FjeS10cnVuaworMjc3NSAxMWU4NjI3MGVkMGRjZmU3YjQ3Y2EzZTlhNGIzODQzOWEwYmYzNGE1IGxlZ2FjeS10cnVuaworMjc3NiA0MGEwZWM5OTRjNTQ5ZWNjODkzYjNiNzJlODE1MTI0NWIyYjAzYzA2IGxlZ2FjeS10cnVuaworMjc3NyA4ZDU3MjU0OTRlZGU3MzE2MGIwNzVmMjUwMGZkNDdhMzE3YTJjMjk4IGxlZ2FjeS10cnVuaworMjc3OCA3NTViYjhlZmNjMmQ1MzM0OWM4ZTA5ZmFjMzcwMGUxN2I3YjVmMTFhIGxlZ2FjeS10cnVuaworMjc3OSAxODllZTNiZWViYjVlNmY2YTUxYzQ2YWFjNzk0MWYwODdhZjNkMzc5IGxlZ2FjeS10cnVuaworMjc4MCBhYzdkNjQ0NTNhYTlmMTVlYTk4ODg4YTUxYjhjZTM1YzFkZjdlZmU0IGxlZ2FjeS10cnVuaworMjc4MSBkMWY2ZWM3ODhhY2Y3YjVmYzQ3MTVhMDA3NmFhM2IzOWI2ODE3M2Y5IGxlZ2FjeS10cnVuaworMjc4MiBjZGVjM2U4ODA1M2IzZGY1NWY3NzUxMjk4NDI3NWQzMjZhY2IyNjJiIGxlZ2FjeS10cnVuaworMjc4MyBhMGQ0YzVlZjFkNWQ3ODk1ZmRjNWJkZjc0NjRlZDQzM2QyNDBlZjFkIGxlZ2FjeS10cnVuaworMjc4NCA5YmU2NThkMTkzYTk4OWY5MjMxMzAyNWNjY2ViN2QzNTZjM2Y5ZDVlIGxlZ2FjeS10cnVuaworMjc4NSAwZTQzNjIwMGJmMTI4ODRjZTFkZDU1YjQ4NDQ1NTQ1NWIxMGMxZGYzIGxlZ2FjeS10cnVuaworMjc4NiA3ZmI1ZGVmYzhmNmZhYWE1OTVlYzFiN2I4NGQ2YTkzNTFlMWI1YTY3IGxlZ2FjeS10cnVuaworMjc4NyAyMTJhZDE1OGE4MDYyZTJmNTM4ZGEzZDAyNTRiODExNDA3ZTcwY2ZmIGxlZ2FjeS10cnVuaworMjc4OCAxZDY1ZjI4YzBhYTk3Y2I4NTM5OTU2NzgwNjczMDQ3ZWU4MDM4MDU0IGxlZ2FjeS10cnVuaworMjc4OSBkNDIwYWY5YzFiNzU3YTJmODI2MDUyYWJmMTRlZDU2YmI0NjZlNzNkIGxlZ2FjeS10cnVuaworMjc5MCA0MmE2YjhlMTM5MWEwNzg1YmViYWI2NGYyZjgxY2NkMGMwOGExNTEwIGxlZ2FjeS10cnVuaworMjc5MSAwNGVkNDc2NWIxN2NlNTMwZGYxNGRkOTRlYzk0NWQ2ZGVlZDAzMzQzIGxlZ2FjeS10cnVuaworMjc5MiBmNWEyYmMzOWUxMGUyYTRkNGQ4ODczNzNiMWRlOTc0OGE1N2E0ZGRlIGxlZ2FjeS10cnVuaworMjc5MyAwYzE5MzhmMmUwYzAyZjg0YjVhZDYyYTFjZDU1Mzk1MzRiOTBjZDEyIGxlZ2FjeS10cnVuaworMjc5NCAxZjZjNTkzZWRhNjg3YjI5ZDUyMDMxZDdmZTE3Mzk2MTI1Zjc0MTBiIGxlZ2FjeS10cnVuaworMjc5NSA4ODU5OTZhMWE2MzE4ODBlZjYyOGJhY2FkY2RlMGJiOWY4M2UxOTA0IGxlZ2FjeS10cnVuaworMjc5NiA3ODRhMDlhNTIzNzVjNGU1NTJlOGUzZjgzZWRjOTczZGM3NjU5MmZmIGxlZ2FjeS10cnVuaworMjc5NyBkNWJiOGZlNDNkZjJmM2JmYjMzZTc5OGRjYmY4OTU4OGRjYjQyOWNmIGxlZ2FjeS10cnVuaworMjc5OCAzY2I2ODZjNDhjZGRkZjgxYmU0MzQyYmJkZmFjZTcxNGVmZDY4Zjg0IGxlZ2FjeS10cnVuaworMjc5OSA5ZDAxZTk4ZWQ4NDkzZTA3NjZiNWU1ZmYxMjU5ODA0ZjcxODliZDU0IGxlZ2FjeS10cnVuaworMjgwMCAyZjk1YTAxZDZjMWYzYzY0NTZkZmQyYWQ0Nzg3M2ZjNjA0ZjhhNmFjIGxlZ2FjeS10cnVuaworMjgwMSAwYjM4MDAwZmM4MjNkZjc4MGY3ZGQ4NmQzY2Y2MTIyMjgyOTk3ZmRiIGxlZ2FjeS10cnVuaworMjgwMiBiMTYyYjI3NDAwYmM1MDJkZDBlY2M3NDNkYWEwZmU1Mzg2ODQ5ZmU2IGxlZ2FjeS10cnVuaworMjgwMyAwZWZiOGRkZjZjMGVkNzhiY2EwM2YzNTY1YWMyYjFkNDI4ZTY1MmNjIGxlZ2FjeS10cnVuaworMjgwNCAwMmQzZjE2MWI3ZjU1NzAyYWRmYTQ5NWEwMDFjZDFhNzNiZjU2YjFkIGxlZ2FjeS10cnVuaworMjgwNSA1OWY5MzI1YmI4ZWNjM2U1ZGI0MGIwZDY1MDNjYzc5MTc0NjM4YTBiIGxlZ2FjeS10cnVuaworMjgwNiBjMGU3YjBiOWI3NTA3ZDQzMmYxZTA1ZjVhZDFlN2E4NzVhMmU0ZDVkIGxlZ2FjeS10cnVuaworMjgwNyBjODMyYTJiMGQ0MzMwYmQ4MzE1MjFmZmRmYWNhYTgzZjg3OTRlMzRiIGxlZ2FjeS10cnVuaworMjgwOCA4YmJhMTRmN2RiOGExZGNmZTk3MzA4YjJjYzUwMzA0MzMwZWY4OWNmIGxlZ2FjeS10cnVuaworMjgwOSBmNmNjN2FhMzFkZTY5ZTlhN2M2MjFhYmFlYTdlYzA1ZWYwNmNhNjE1IGxlZ2FjeS10cnVuaworMjgxMCBkYTViMTQzMzQ2N2MxY2E1ZjU5NGVkMjc5Y2Y5MmQ2MTI1OTQ1Y2U0IGxlZ2FjeS10cnVuaworMjgxMSA0ODlmZWNjMWRhMjg2YWFjMmY3ODNhYjMzNTRhNTg2ODZmZjY2NjJjIGxlZ2FjeS10cnVuaworMjgxMiA3M2ZlN2ExYTVkZDQyZTM2NjI0YjExMzVmNzZiODJiOGUwYjA3OWViIGxlZ2FjeS10cnVuaworMjgxMyAwNDU3YzQ0MWIwODYwNzc5YTcxOWUwNWVhNTI5NTY4YTc0MjlmZGI4IGxlZ2FjeS10cnVuaworMjgxNCA3NDk0MmVjNzA0MzBhZThmYjU0ZmQ0ZmExYWU3Mjk1NDBjODMwYTIxIGxlZ2FjeS10cnVuaworMjgxNSAyZTBkNjg4MjAxM2VmZmRlNjQyMmRkYWVlMDJkNzQ5ZThlZTNkOGFlIGxlZ2FjeS10cnVuaworMjgxNiBlNzI5M2I1YjU3MGQ5ZDYxOTFiMTBhZTQ4MGVmOWE0Mjc1NGZlYWM1IGxlZ2FjeS10cnVuaworMjgxNyBmNmY5ODJjYjU0MDEzMjJiNGM2ODY4MWNjYTA1Y2Q1OGE0Yzk4OTUxIGxlZ2FjeS10cnVuaworMjgxOCAzZTYyNmM0MTNiYmY0ODhmYzI4OGZmYWMxNmYwOTFlZWE5ZTc0Yjk4IGxlZ2FjeS10cnVuaworMjgxOSA1YjUyMWZlNGQxZjY0OTZiMGQzMmYwYzFlMDM4OTM3Zjc0YmQ1ZDQ2IGxlZ2FjeS10cnVuaworMjgyMCA2ZDE1OTliZTJiNTRlMGU0MDA2MmFlYjA4Y2UzMWVmNzNhNjU0YTBlIGxlZ2FjeS10cnVuaworMjgyMSBkMzc3MGIxZGE2MTE1Mjk1N2I0ZWMyNjZjMTNkMjhkNjMzMWIzNmU4IGxlZ2FjeS10cnVuaworMjgyMiA3ZTVmNGQ5YWVlNzdiYzZkYmFmYWZiOWE5OTNiYTJjMThjMjQzNGJmIGxlZ2FjeS10cnVuaworMjgyMyBhYWZmNjUwZDdlMTM2NjBhYjFmZDZiZDM0YjNjYzAyOGU3ZDM0OGI1IGxlZ2FjeS10cnVuaworMjgyNCA1ZWQ2YWRiYjk1ZjM1OTAzMmRkYWQ2M2Y1MThkYjM4ZDZkNjIyNDcyIGxlZ2FjeS10cnVuaworMjgyNSBlM2I2M2E5OTE0Zjg3MDI5YzM0NjM5Y2Q4ZDJhYWJiY2M5MjY1MzU5IGxlZ2FjeS10cnVuaworMjgyNiAxODkwNzgxMzYzNTE1NzFhZmEyZDQ4NmZkOWQyOGJlNGQyMTAzZjczIGxlZ2FjeS10cnVuaworMjgyNyAyODM5MDM3NWEyYjlhZTY2NTAxN2YyMGY4NjQ2YWFlZTZiM2VhZTgzIGxlZ2FjeS10cnVuaworMjgyOCAxNjRiNTZmYTY1NThlYWFhMmYyMTZlZTNjNDI0YTc5ZWQxOWUyZWFhIGxlZ2FjeS10cnVuaworMjgyOSAxMDQ5ODY3ZGNhMWY5NDgzY2E3NTg4OTVlZjQ5MzhhYWU4MjdiMGQ0IGxlZ2FjeS10cnVuaworMjgzMCBjMmJhODg3ZDk0OTJiMWIzYzQ1YTJlMzg2OTc2OTMyYzc4YjI4ZDI2IGxlZ2FjeS10cnVuaworMjgzMSAyY2RkYmJlYTliZmIzMjNjNTcyNDhkZGEyZDVhY2IxOTdmNGEyZjcyIGxlZ2FjeS10cnVuaworMjgzMiAxMDAwMmUxYmM1MjY0MmQ4OGUzMGZkMWU0NDI0NTBmZDAyNzI4ZWFjIGxlZ2FjeS10cnVuaworMjgzMyBmZmRkZTdmYzcxYzFlY2I4MmQ0ZTRiZTYxNTUxNzZkN2RjOTA5NzU5IGxlZ2FjeS10cnVuaworMjgzNCA3MWQ0OTYyNTlhZDM0OGU2ZGUxYzM3M2JmNDU4MDlmYzA1ZTEwMzE0IGxlZ2FjeS10cnVuaworMjgzNSA0ZTJkMjM5ZGM2NGM4ZjEyYWVlOWYyODhlMWM3ZjFlM2E0YmU2ZWVkIGxlZ2FjeS10cnVuaworMjgzNiA1YWZmOWY4ZmQyOTk1ZWZiMmMwZTVmMWI1Mzc1MmU4N2RhZjYyNmM2IGxlZ2FjeS10cnVuaworMjgzNyBlMzRlYmNiYmRjYTZmZmE0YjliMDg0MWMyNTY2MjQ0ZWRlYTQwYWNmIGxlZ2FjeS10cnVuaworMjgzOCA2NDQxYWE2YTQxMjY0OTg0ZmE3ZGIxNDRmNzA0OWM0ZmIxNzQzYzViIGxlZ2FjeS10cnVuaworMjgzOSAyMDViOTQ3YjFkM2MyNmM3NjA0NzU2YzgwOTEzN2I1MTE1MGUyMjYyIGxlZ2FjeS10cnVuaworMjg0MCA2YTYwMzQyYzMxMDc0ODM2YTQ1ZGNjYzgyNDFjZTc1OTk1MDUwNDJlIGxlZ2FjeS10cnVuaworMjg0MSAxMDJkZTMxOTk5OGUxN2UwZDFlYTkxZWZlNTc5NDBmMTUxMmNiZTQzIGxlZ2FjeS10cnVuaworMjg0MiAxMzg2YTcyYWU2MDQ3ZDk3NjA1MjFmMDJkYjk0Nzk3MjVhMjczYzY3IGxlZ2FjeS10cnVuaworMjg0MyA3NTQ0ZWJhYzU2OTg3ODE2ZGJlNjFiNmM0ZTUyN2JiNTM0MGM1Mzg2IGxlZ2FjeS10cnVuaworMjg0NCAzYjA5YjQwY2VmMWQwOWZhYzE2NWY1NTU1YmQ1YzhkZDU1ZGE2NWU5IGxlZ2FjeS10cnVuaworMjg0NSA5MTI2ZjRjYjFjY2E0NzA1YzdjZGUyZWY1NDRkMmI2NWNhNzE0YmYwIGxlZ2FjeS10cnVuaworMjg0NiBjYTI4YTNhODJiYmE4NDgxZTI0ODc4ZTcxNDEzYmEzN2UwYTQ1NDdmIGxlZ2FjeS10cnVuaworMjg0NyBkMjQ0ZWUwM2M1NzZlNzI0ZmE1ZTdkMDQ5YWMzYTI1M2E1NGM0NGFiIGxlZ2FjeS10cnVuaworMjg0OCBlMTViZWE5NzFhNWJkNTM3OWU4YmI1MzMwNjBiMWY1ODY1ZWEzYjlhIGxlZ2FjeS10cnVuaworMjg0OSA1YjcxODYzYzgwMWQyOTZmNTIzMjI0NzVjMTY2NGU4Y2FjMzZjNDIyIGxlZ2FjeS10cnVuaworMjg1MCA5MGVhNTA3ODYwOTUwYTMzZGQ4NmJiMjYzMmM4NTMzMzViMTIxMTEwIGxlZ2FjeS10cnVuaworMjg1MSA4OTFmOTgzNTdjMDQzNTVhZDJiMmQ0ZTlmZGMzNjEyNDlmMzJmZjUxIGxlZ2FjeS10cnVuaworMjg1MiBkNmZhNjRjZWM0MTBlNjBjMGE4NjYyNzM2MDQwY2EwOTYwYzBlNjdkIGxlZ2FjeS10cnVuaworMjg1MyAyZGJkN2U4NDRiZDA4MjdhNGRiMjAyOGIxMDg5YTJmOWRjNGFiZjdkIGxlZ2FjeS10cnVuaworMjg1NCBiNDliYWFkOWI2NDA2Yzc3NzQ5ZDQxNzg5NjRlZGFiOTQwNTVhNTUwIGxlZ2FjeS10cnVuaworMjg1NSA1YzE4ZDZjNTc4Mjc0MmYyOWZiMTdhNGFjN2Y2NTM2NjhmZDAyOThiIGxlZ2FjeS10cnVuaworMjg1NiA4N2FiOWM4MWU5MjdlZGQ2NmQ4YjhjOTJlYTFhY2M4YzQyYzIxNzQ0IGxlZ2FjeS10cnVuaworMjg1NyBmMzdmOGJjOTE5MGM1NmEwZjVjNDIxOWJhNTRhNGM4NTcxMDIxOGVkIGxlZ2FjeS10cnVuaworMjg1OCA3YzA2YmYxNWZkMmFiZGUxMDk0MTFkOGNhMzE4M2E1ZWM5MmM5MzJiIGxlZ2FjeS10cnVuaworMjg1OSA4YTYwNjQ5ZTc5ODdlNTFhNzU2OGYxZDlmMjI0NTYwZDdmMGRiODk2IGxlZ2FjeS10cnVuaworMjg2MCA4MmMxMjU5YTRlZjMzMDJhMDczMTIzNmJiOWYxNTJhMTE5MTdjZGNhIGxlZ2FjeS10cnVuaworMjg2MSAxNDExOWIxOTQ4ZmI0MTNiNWQ2Mjg3MzNkNWNkNGIwNDgwN2NhYzEwIGxlZ2FjeS10cnVuaworMjg2MiAwOWNlMDRlZjcyM2JlNzFkZTVlZmIxODRmYjAzODZkNWU4OTE2YjkwIGxlZ2FjeS10cnVuaworMjg2MyBmNTNkY2I5YTA0ZDYzODI1MTdmYTAzNDRlY2IzOTYzNGUwOGE3NTBkIGxlZ2FjeS10cnVuaworMjg2NCA4ZmZhZTBiNDZmZDQ5MjdiOGYxNjlkNmE3N2Y1Y2Q2YjAxYjYxY2EzIGxlZ2FjeS10cnVuaworMjg2NSBhODAyMmIyYTc3ZTYwOTZhMWI1ODVhZTFkZjRhNDI2M2VjYWFjMjZkIGxlZ2FjeS10cnVuaworMjg2NiAxZThlM2FiNjdiNDU4NWU0ODVlMjNmYWQ1ZTM2YmEyMGZhZTBjYWIxIGxlZ2FjeS10cnVuaworMjg2NyA3NTgyZWQxMzY4NGU0OTc4MDY3M2IzYzBjMTE0MjMzNDdiN2IxMjIzIGxlZ2FjeS10cnVuaworMjg2OCBiZmRkNmU2MjZkZDM3MGFlNDJmMmVjOTdjMmFmMzhiOTFhN2Y2YWJjIGxlZ2FjeS10cnVuaworMjg2OSA4YmNiNTBmNDM2ZmFkZWU2ODgxYTJiZTVlNDJhMmVlNjQwY2M1ZmYyIGxlZ2FjeS10cnVuaworMjg3MCA3MjM2ZTAyYzQ1NjMxMjY3NGVmYTdjNzZhYzA5Zjc3Y2IwNzQ5Yzc0IGxlZ2FjeS10cnVuaworMjg3MSBiYzVjNzdmYTgwMDY4N2NmZTc0MGZmYzkxNDcxMGI2NDU5ZmRmMzBiIGxlZ2FjeS10cnVuaworMjg3MiAzZDljMjMxMGFmZTg1YmM3NTBhZTU2YWQ0NWIyZTVlYzFhNWNjNWRhIGxlZ2FjeS10cnVuaworMjg3MyAwMGNkYjhkZWRkNmYyYTU0NjAwNWVkZWNlZmY4ZjUyZmU4NmMyMTA1IGxlZ2FjeS10cnVuaworMjg3NCA4NjI0NTdlMDIzN2NhNThmNTg4MzU3MWRiNzUxNmQzNDBlMDkxOTBmIGxlZ2FjeS10cnVuaworMjg3NSAyNDAzZmI2ZWFlYzYyMWMzNThlMmE1Y2U1NTAyNGZiNDc2NzYzMDk0IGxlZ2FjeS10cnVuaworMjg3NiA5M2UyMTVkYzFkNmVmMWUyYzdlMjE2YmEyZTA3ZGI2MzFjODk2NTI2IGxlZ2FjeS10cnVuaworMjg3NyA0ZDY0YWJiZGY3MGE5NjkxMjYxNmUzYTRiNzM0YTg2YTJlNzA3MDk4IGxlZ2FjeS10cnVuaworMjg3OCA5ZTkxNDVhYmM0MmFjNDU0ZTU4OGU3NGIwMzY4Yjg2MDllMTY3NzM2IGxlZ2FjeS10cnVuaworMjg3OSA0ZDJhMTk5ZTEyMDJhNmI3Mzc4OGUwOWE1YWNkMWIxZWJlMDY1NTg2IGxlZ2FjeS10cnVuaworMjg4MCBjY2UwNWE0NzZlMDQxMmVlMGMzMjI4ZjU2YWFhNjRkNDA1OWJlM2E5IGxlZ2FjeS10cnVuaworMjg4MSBmNzI3OGEwNjdmYjQzMDM2NWIwMTIzMjE3ZTJiNTZkYjZiZjM1ZWQxIGxlZ2FjeS10cnVuaworMjg4MiBkOGIxN2ZhYjNhOTgzZjEyN2U3NjdiOTAxNmQwOGM4ZGU0ZmEyODAwIGxlZ2FjeS10cnVuaworMjg4MyA1N2U5NGViYTI0ODQ4Y2I4MDU3YzEwZWM3YjVmN2VhZGM5YzIzOTk0IGxlZ2FjeS10cnVuaworMjg4NCBlNzU3MWExOGJkZWYxZDAyMTQ1NWVkMWQyZGRjOTQ5YWNhNTIzYWY1IGxlZ2FjeS10cnVuaworMjg4NSA0NzZiYjdlNWI4NTQ3NTY5YjE4ZTdkMWIwMDhkMDk4OGIzMmZkNTVmIGxlZ2FjeS10cnVuaworMjg4NiA3NmU0ODcwMTIwNGJmMjM3Yzk5MTk1OWE3NmY0ZTI1Njg2MGIxZWNkIGxlZ2FjeS10cnVuaworMjg4NyBlOGM2ZmE5MTE4ZWJlOWVmZjZiOTg2Njg2MzE0NTk1OWI4YWE5ZGEzIGxlZ2FjeS10cnVuaworMjg4OCA5YTc1NDQ4NmVmMGI1MTIxYjI2YTI1ODQ0ZGZmNDczY2Y3MDAwNDljIGxlZ2FjeS10cnVuaworMjg4OSA3NmQ5MmViYjRkODJhNzVjNTA2M2RkZjU4YzYwMGE1MjFkMGZjZGY5IGxlZ2FjeS10cnVuaworMjg5MCA4MmRkMDgxZjM4MGQ1NGE3NDk0OGViMThjOTBjMTViZTIwNTRkZDQyIGxlZ2FjeS10cnVuaworMjg5MSBjODE5NTJkOTdlYmU4YWQ4NzY3MmNlY2JiMzk1OWRkY2E3ZmFlNmE4IGxlZ2FjeS10cnVuaworMjg5MiBjNjVmYzE3MmYxNmRiYmE2ZmRlYTljZDliMWJiOGRkYzNjNWZlNWMzIGxlZ2FjeS10cnVuaworMjg5MyAwMzM4YzdjOWYwOGM5OWFiZWU5YzhiYjI3NGRiMzkyZjJiOGUyMWJhIGxlZ2FjeS10cnVuaworMjg5NCBmMTc5ZDhkNWVlOGM4NTNkY2NmOTZjOWQwNjEwOTQ3MjY1MzczMGJjIGxlZ2FjeS10cnVuaworMjg5NSBjZjVjYWJmYjNmNzFmNmI3NzliMTRjYTg3Njg2ZmNkMGM5MDdhYmNjIGxlZ2FjeS10cnVuaworMjg5NiAxZTIwNWQwODc1ZjYyZGY1OTJhNTMzOWQyMjJkYTAxMTk5NGM5MjhmIGxlZ2FjeS10cnVuaworMjg5NyBlYTBiYWQ5ZmRmNjczNGU5MDk0M2M5NTI0NjIxNTdmOWE3MTMyNGZmIGxlZ2FjeS10cnVuaworMjg5OCA4MjQ2NTc2ZWYzZjUzNTk2OTU3ODEyNDgyMmIyNzk1NTI4ZjU1OGE0IGxlZ2FjeS10cnVuaworMjg5OSA1NWM2MGU3ZjMxZWRhMjczYmQ2MjA3YmY1YTJhMjMxMDM5Zjk5OGRlIHVubGFiZWxlZC0xLjUuNAorMjkwMCAwNzhmOTAxNWYxNzg5MjhjNmQyMjM0OTEyYjk5ZWMwMTY4M2IwNTQ5IGxlZ2FjeS10cnVuaworMjkwMSBhYjFiMzQ4NmIyMjYzOGY1NGFmNmM5YjBhZjI2NjQwN2M3OTE1ZmQwIGxlZ2FjeS10cnVuaworMjkwMiBkNzc4MjQ1NDNiY2U5NmE5ZjAwNjQ5MmJkN2U4OGM4ZjUyM2Y0MGUwIGxlZ2FjeS10cnVuaworMjkwMyBkYzYwOTUzZjYwNTI5OTA3YjgwZjBmYzhkOWFkYzBmMzM2NjIwYTdlIGxlZ2FjeS10cnVuaworMjkwNCBmNzEwMTEwY2ZkMzkyYTU2YmEzYmU5YWZkOTJhY2IxOTYxZjMyYjIyIGxlZ2FjeS10cnVuaworMjkwNSBkYmNiNDlkNzQyYTBjZmYyYWMzMzgxMGI5NDc3ZWM3YzEyYjM1NDQzIGxlZ2FjeS10cnVuaworMjkwNiA4MzRkZDRhNzdlZTIwZjk5OThiNTZmZTIxZDhhOWQ4OTYyZmM4NjAxIGxlZ2FjeS10cnVuaworMjkwNyBjN2IyM2NjOGNkZWRhZmY0ODcwZGRmNTNmMzhiYmE4ZTQ3ZDU5YjM4IGxlZ2FjeS10cnVuaworMjkwOCA2YzBmMTYwMDhiZDlkNDBmY2FjOGI1MTg5ZTFlZjgxNThlMTk5MjE4IGxlZ2FjeS10cnVuaworMjkwOSA0NWM4MTg5Mzk0ZmYwZTNlOWQ5NjIwMzMyYThjYTE4MzI1NDI2MGU2IGxlZ2FjeS10cnVuaworMjkxMCA3MGMyZjQwNDMwYzc2OTVlZjkyZDhjYzMxNWYzMzNiOWNiYzE5MzRlIGxlZ2FjeS10cnVuaworMjkxMSAzMjA4NWVkZDc3YTdkODk0ZjI4MzU3MGFiZTM1MmUxMDAxMWEyZTdlIGxlZ2FjeS10cnVuaworMjkxMiBmZjNkYjk1NWU2MjhmMzQxNjQ3NWY3NmQ0MmFkOWJlNDUwOGVmZDdiIHVubGFiZWxlZC0xLjUuMgorMjkxMyBhNWU2ODgxY2ViZjA5YzgxNmI4MDU5NjMwYjc4ZWM1NTExMTM5MmU3IGxlZ2FjeS10cnVuaworMjkxNCAwZDQ5NGJjMjQyMDdmNzdhNTZlZjc0NWNhODQ4NjFiZTkxN2E2MzJmIGxlZ2FjeS10cnVuaworMjkxNSA4YmQyMTk0YWQ2ZjlhOWI1M2U4ODI0MDlhMGZjYWI5ODZjNTYyOTg3IGxlZ2FjeS10cnVuaworMjkxNiA4ZjdiMzFhOGE2Nzg1Yzg0NjY3MDlmNWQzZjMzZmE4Y2FkYjU2MGM1IGxlZ2FjeS10cnVuaworMjkxNyA2ZmJiMDNkYzQzOWVlMjY5YjI0N2FkZGZiZTNhYTBlNTQ4M2YwNmFmIGxlZ2FjeS10cnVuaworMjkxOCAyZGQ1ZGJmMjhhMmRkNTVkNGFlNzJjYTVjMTg0YTJhMTEzZDM2NGQyIGxlZ2FjeS10cnVuaworMjkxOSA1ZDJmNjJhZDhkZWVjMTIyM2RmYWJkMGM1NGU1NWFjYzZmYmYwMGJkIGxlZ2FjeS10cnVuaworMjkyMCA5ZGUzZDAyYWE3NWQxOWFiOTI4ODc5MjQ5MGJlNDU2ZGM3NGZjMmM0IGxlZ2FjeS10cnVuaworMjkyMSBiZmM2NTUwNzQ1MjNkMGFiZjQwODI5OTVjNzE1NDI3ZmEzYTIxMmRjIGxlZ2FjeS10cnVuaworMjkyMiA0MWRkMzkzNDg3ZjU5MWE0NGNhYWVkM2NjZDY5Y2ZhNzY0Y2ExZTNlIGxlZ2FjeS10cnVuaworMjkyMyA5YjY3MWYzOTdhOGYyNzAzNzA5OGNhMzY2MTQ4ZTRkNDJkZGQwYjgwIGxlZ2FjeS10cnVuaworMjkyNCAxZGZiMGM5ZDA1NzY3ZDBjZGI4MDM3YTZhN2MxNWEzODY1OTIzNmFkIGxlZ2FjeS10cnVuaworMjkyNSA1N2MzZTljZmVlNDBmZjg1OTlkMDFkNTFlZjYzYmM4MDExOGU3Y2JiIGxlZ2FjeS10cnVuaworMjkyNiAwN2Q1ZDYyYTRhMmIyMDE2NjBlMzAwYmQzYzZjNmQ1NTU5NDg0OGM5IGxlZ2FjeS10cnVuaworMjkyNyA3ZDg0ZTBkZGYzYmUyZGM4NjQ0NDRhODYxZDY1N2U4NjA5ZjhjZTgwIGxlZ2FjeS10cnVuaworMjkyOCAzODkwZjQ2ZDZlM2I3MTE0OWE2MDdlNmUzNzliOTNkNDY1MzQzNTA3IGxlZ2FjeS10cnVuaworMjkyOSAwNTM3NmM5MjZmNTgwZDk5YjFkODlkNzc3MWNlYWU3MTNkMDgwNGQzIGxlZ2FjeS10cnVuaworMjkzMCA3YTBkMDNlOGJkMjliYWU2ZDk4NGMzNjFjYzE1ZDA0ZTY3ZDBjM2Y2IGxlZ2FjeS10cnVuaworMjkzMSA2NzYwMzFiZjQ0ZWUxYWQ1MzlhNWQxZWNkMDYzYmUyZGVlMWI4YmJhIGxlZ2FjeS10cnVuaworMjkzMiBmODQyMWRhNGVmYTc2YjdkNWQ1OWQ4N2IyYjQ5MDE0NmI3MjM4MTE3IGxlZ2FjeS10cnVuaworMjkzMyA3NDQ2OTZiYTg5MjdhZTdiY2FmODVlNjVjZTdiOTI1YjQwMzViMTFkIGxlZ2FjeS10cnVuaworMjkzNCAyZTgyZGQwZjhhOWUzN2RhYzcwYWMwNjYwYjBiZTQ1YThiOTg2NDM2IGxlZ2FjeS10cnVuaworMjkzNSBkOTQ1Y2YzM2E2NGY0NjhhYTdiZWJkMmZkYzk1ZjU5YmVjNTQ1YTRlIGxlZ2FjeS10cnVuaworMjkzNiBjNzIxYWZhYjBlZmE2MWU1YThlMjIzMzZkZDc0ZTBiODdiZjE3Mzg4IGxlZ2FjeS10cnVuaworMjkzNyA3YzhhYmNlMTk3OTg0YTlhNjIyNWE5NzI4NjI5YzhkNTYwMTA5NGY2IGxlZ2FjeS10cnVuaworMjkzOCA0NWIzYTc4ZjI1NmJhZTZiNDk4ZjdjMWQ2Mjk3NGRhMjEyMjViZjcxIGxlZ2FjeS10cnVuaworMjkzOSA3MjU5ZTk2YTA0YTlkNDUxNDBmMGQ2NmM2MmNlNzZjMDlkMjI1YTA3IGxlZ2FjeS10cnVuaworMjk0MCBjMGQ0Y2FhNzFiZGFiMTJmYjBhMzMzYWYxNDBjMTVkZjllNWY4NzBlIGxlZ2FjeS10cnVuaworMjk0MSA2MTYzMDIwYTk2N2RiYzNmN2I5NWEyZDk4ZWUyNjU1ZjE1ODU2ZWQ5IGxlZ2FjeS10cnVuaworMjk0MiBiMzdhYzkxZTJhMGRhNGI4MDhiZjJiNTQxOGMyNzQwNzM0YWJkMjFkIGxlZ2FjeS10cnVuaworMjk0MyAzMGE2NTIxMDE1OTlmZjFlNzg2YTkwYjFiMTAxNjVmYTU0ZDkzYThhIGxlZ2FjeS10cnVuaworMjk0NCA2ODU4NDMxNGExNTQ3ZmRlOGE2NzBiNjBkYWRhYjBjMGMxYWRiYzEyIGxlZ2FjeS10cnVuaworMjk0NSAwMTJlMzdmMDUwMTkwZjE5MTE2NWY1YTk4OWJhNjEyNjI3MDBhMzFhIGxlZ2FjeS10cnVuaworMjk0NiAzZTFmYmU4NGNmOWZjNmEyNjMwYWEyYTA3ZDE5M2RlZjQxMjA0YTNiIGxlZ2FjeS10cnVuaworMjk0NyBmYmQ2OGU2OTIxNGMyN2UwNTk1MzgxM2ZhMDE4NDU0ZjhmZmNmODEzIGxlZ2FjeS10cnVuaworMjk0OCBjZDgxZTU2ODA0YjA5NDJiMWE5ZDQ1MDYwYzNmN2MxMWUxYjExYWVlIGxlZ2FjeS10cnVuaworMjk0OSA2M2QzNGU4NzdhNjk3MDhmM2RlYmRlMWU0NjQ1MjY4OTNkOThhYjA5IGxlZ2FjeS10cnVuaworMjk1MCA0NDMxOWRmNmE5MWMyOTY3NzIzZmVlNTA2MDAyMTI0MTVmN2E4NWFmIGxlZ2FjeS10cnVuaworMjk1MSBiYTRlYzEzYzBmOWY5ODJlZjliNWU1NDJkMzVhNjNhNTU1MTY5NWQ1IGxlZ2FjeS10cnVuaworMjk1MiBmNTY1Y2Y3ZjlhYmE4M2MxYTgwYzcxZTE4NDdmNzM1OTcyMWUzMTk5IGxlZ2FjeS10cnVuaworMjk1MyAxNjQ4NDlmNTYxMDVmZTJjMzA2MTlhNjRhZmUyM2RjNTVjNmVmOTQ0IGxlZ2FjeS10cnVuaworMjk1NCA3N2VlOWIyMjJmZGI0YTQ4ODg1Nzg1ZjlhYTYxNDI1YmYxNWY4Yjc1IGxlZ2FjeS10cnVuaworMjk1NSBkYzNiNDU1Zjc2MzI3NzM1YjA2NWJiZTA2ZTAyODA3MWM1NGUxOTAwIGxlZ2FjeS10cnVuaworMjk1NiBjYmYwZWY5OThhNGExZTU3Y2ZkYWU2NDg3ZDc0NzRhMTVjYjU5YmFmIGxlZ2FjeS10cnVuaworMjk1NyBjN2JjNTYxNGVlYWQ1YjRmNjlmYmQzZmJmY2ZlOTY3ZDVmOTYwMDliIGxlZ2FjeS10cnVuaworMjk1OCAwY2QxOTc5NDdkODE0ZTljZjIyYjlkNDRhOWY2NjlhMTdkMDcwNjVlIGxlZ2FjeS10cnVuaworMjk1OSAxMzYwNjE4NDA2MjQzNDE1Mzk5YWM2NjMzMjNmOWQ5NDEzN2RkNDMwIGxlZ2FjeS10cnVuaworMjk2MCAzYzhiNDQyZTVlMWYyZTZjZTMzYWE0ZjU1ZmU3YjgwZDkxZjQyNjQ3IGxlZ2FjeS10cnVuaworMjk2MSBkZmIzYjBlYzFmZjkyOWE2ODIyY2Q1YmM5MGMwMjAzZTYzMjhjOTFjIGxlZ2FjeS10cnVuaworMjk2MiA3ODRjNTFjYjFiNzk3MGI3YTFjN2UwZDBiMTRhZDk2MDU2NzczMzYyIGxlZ2FjeS10cnVuaworMjk2MyA0NGVjZmY2ODg0YjdkNzFjZjRjOTgwZmU5YTJhZDgwMDMwNTlkMGRjIGxlZ2FjeS10cnVuaworMjk2NCA5NjUyZmM4MzBhMTJkOWFiYTlhZDg2YzBjNGM2Yzg3ZWJlOTZkNWI5IGxlZ2FjeS10cnVuaworMjk2NSAzZDY1NDFhMmVjYTVhMDYyNWU1ZjQyNDQ5MDA0MTU1MmQyYWM5MmE3IGxlZ2FjeS10cnVuaworMjk2NiBkMDU3MDRhMDAwZWJkZTVkOTFhMjNjZTE2MmVhY2M3MzQ4ZjExZGU5IGxlZ2FjeS10cnVuaworMjk2NyAzYWRlY2UyYzg1NjcwNDVkYzE5N2ZmOThjZGY4YjNiNDNlNWFmNmU3IGxlZ2FjeS10cnVuaworMjk2OCBiYWIyYmViZDM1ZTczNTgxYWU0ZDg4OWMxZTViMDRiZmZkNmMxZTA4IGxlZ2FjeS10cnVuaworMjk2OSAyNTk5MjNlNGQ3YjE3ZmJjZDAwZDY4MTdmNzlmMWE3YmMwNzQzZDhlIGxlZ2FjeS10cnVuaworMjk3MCA0M2M4NmQxZWIyMmMyOTQ2NjYwMzE4MzI4ZjhkNTU5YzA1N2QxZTYzIGxlZ2FjeS10cnVuaworMjk3MSAwY2ZmMzZiMTEwZmU1NTI3NDY5ZDA2YzM2MTE4NDBhMmQ3YmRkYTgxIGxlZ2FjeS10cnVuaworMjk3MiA4NTdlZDNmYmRjMGVhMzlkMmIwOGYwNWNmNjg4NzlmYTY0YTNkZTczIGxlZ2FjeS10cnVuaworMjk3MyAzNzczYjZmNmRkNTNiY2ViNmM0N2QxYzY3YzRlN2U4MmRmYjA5NzNjIGxlZ2FjeS10cnVuaworMjk3NCBkNmUyNTc5MjMyM2ZiNmJmY2U0MTk3MjZiYWFiZTc4ZmNjMTFlOGU0IGxlZ2FjeS10cnVuaworMjk3NSA5NGVhNmVhN2Y3ZDU1NmFmN2U1OTY1YzBhZjFkNWEyOTMyNWE4MGZmIGxlZ2FjeS10cnVuaworMjk3NiAwMWE2YmY1NzQ1MmU1NWFlZDcxNTczM2ZmMGQxZjhjZThiZmNlZjY0IGxlZ2FjeS10cnVuaworMjk3NyBmMDhkMzQ0OTkyNjlkZTBlNDhmZWNiNGViYWM0N2U5NDU4OGNiMzI5IGxlZ2FjeS10cnVuaworMjk3OCA2NTA4YzkzZjk0NzI5YWFkZWU4YzRiMTNjNjFmOWMyYWRiMjIwMTk2IGxlZ2FjeS10cnVuaworMjk3OSBlNGEyN2Q4NGVhMzY3ODBmMDg2NGIzZDU0YzNhOGQ3NmVjYmExYWRiIGxlZ2FjeS10cnVuaworMjk4MCBhYTYzM2YwZGVmYTYxZWE5NTVlMDRlZWVkYjM0NDg2YjQ1NGU2MDYwIGxlZ2FjeS10cnVuaworMjk4MSBlMTU3YzEyY2Q2ZTdmNzQ5MWNlMzBmYzNjNTNhYWNlYzVhYmZjMzY3IGxlZ2FjeS10cnVuaworMjk4MiBhMWU4NGI0ODQ0N2FlNjQ0YmJhZGZiZTVjMzk2MmUwNzc4MmRiYmU5IGxlZ2FjeS10cnVuaworMjk4MyAwOWM2OWExZWM3YjA5MjhiMWZiOTE3Y2RkY2MxYzFlYTVhNzk1ZmNmIGxlZ2FjeS10cnVuaworMjk4NCAwMWZjNTkwMDMzMzlmNzcwM2YwZjljYTNjYmMwMjA1M2RiODYyZmQxIGxlZ2FjeS10cnVuaworMjk4NSAxZWVjZmZkOTY5Njg5ZTA4MDkyMjI0OWFkYTJkNjlhYTdjZTU3MDZjIGxlZ2FjeS10cnVuaworMjk4NiBkMWI4OWU4NWNlNzU2ZDNhMmQ2ZDZjNzNmMTgyNDFhMmM0NjgxMjYyIGxlZ2FjeS10cnVuaworMjk4NyBiODRhNmQ0ZGU5MGU4ZmNmNDM0YTMxYWVmMGRlOTgxZDVkZDcxNjI5IGxlZ2FjeS10cnVuaworMjk4OCAxZDE5NjY5ZjU2ODc2OTY0MzNhNWYyYzA0OGI5M2RhY2NhYjk0OWE3IGxlZ2FjeS10cnVuaworMjk4OSAzY2I5YTJiN2I0MGNmNDJkZTM5YTRhOTAwNGZhNTM2M2FiNzBjNDNjIGxlZ2FjeS10cnVuaworMjk5MCBmYWYxMWFkY2NmYzY1YmQwYTc0ODEzNDljYTEzYmVhNWVhMThlMDM3IGxlZ2FjeS10cnVuaworMjk5MSAyZmNkNDAxYTYyMzIzYTQ2OTRkZWEwYWYyY2E4NmM5NTM0NmQ5NGM4IGxlZ2FjeS10cnVuaworMjk5MiAyMWIzZWE2YmQzMmQzMTZlMWQ5YjY3ZmZmZTAzMDQ1ODJiNjkxZjU2IGxlZ2FjeS10cnVuaworMjk5MyBlYTUwNzJkZTc0MjczYTUyOWZhMDA2NDIzMzlmZmI0ZDQ5MmZhMGRlIGxlZ2FjeS10cnVuaworMjk5NCAzZWIwNWQyZGM3YjExZjQxYjU2MzFlYzg5M2RlNzliZTNiNmQyNDZjIGxlZ2FjeS10cnVuaworMjk5NSBiNDE3OTIzMDcwMDhkZWI0MzhhOTczYWI3OWEyNzcxZTY4YTc3ZWMzIGxlZ2FjeS10cnVuaworMjk5NiBhNzg4MmZjNmVhMjcwNWI4ZTE1MGRiYmMxZTFmZTkyNjQyYzkzYWUxIGxlZ2FjeS10cnVuaworMjk5NyA2YmY2OWY1NGE5MDNkODllNmQ1YzE5N2E0NTNkNzRmMjdkYzI5NzM2IGxlZ2FjeS10cnVuaworMjk5OCBmMjc3M2E2ZGM1MWVlY2IyOGJkZTViZjc2YjAyNGQ0OTE5NzQyNTY4IGxlZ2FjeS10cnVuaworMjk5OSA3YjRhZGU1MzZhZjg4ZjQ1MzBlZjZlNzUxMGM5YTRmMjc3YjE2NjZjIGxlZ2FjeS10cnVuaworMzAwMCBiOThhZWYyMTNkYWVhNTRjMjMwYzgzY2Q2NDQwZTMzZjJiOGQ4MTc1IGxlZ2FjeS10cnVuaworMzAwMSAwN2E4YzQ0M2I4MzEwNDgzY2M0ZTUyNjc2Y2RiNWJiMTI3NjFlOTNhIGxlZ2FjeS10cnVuaworMzAwMiAxNzgwZWI4ZmRlMmI2NDVmMzNhMGVhNzMyYTFhZDlmMTA0NjNlYjA1IGxlZ2FjeS10cnVuaworMzAwMyA0MTAxZGVkNzNjNTJkYThkZjdlYzAzZTBiZjFlNDM5OWJhNDRmZDljIGxlZ2FjeS10cnVuaworMzAwNCAzZjgxYjVhYzJiYjIwMjQwODU5MjU1N2QwMmNlMGU3N2ZjNDllN2FkIGxlZ2FjeS10cnVuaworMzAwNSAxNDY2MzVkZWYwMWVhYjJkYjM3MWRlOWEzN2UxMDI5MzIwYTQ4NTU2IGxlZ2FjeS10cnVuaworMzAwNiAzOThjMDBmMTFhMmY0NWMyN2U0M2ZjYjE5ODMzN2UyZjQzNDFiMWYzIGxlZ2FjeS10cnVuaworMzAwNyBjNTVjYjc2YmM4MzcwODFlMGQ1MWFmOTdmNDhiMjUwZmRhYjkwNDRhIGxlZ2FjeS10cnVuaworMzAwOCA4NTFhYzRhOGJlN2Q4ODViMzcxY2NlM2VhYzUyMTdkZTk4YWU3NTJiIGxlZ2FjeS10cnVuaworMzAwOSAxNjQwY2MzZjFhNTNmODA3NTJmYjJjODBiZDU3MWM0MGRlZWJlZTA5IGxlZ2FjeS10cnVuaworMzAxMCBkMzFlYzE1ZjVmNzEwNjQ0YWUyNzM2Mjk4M2Y3ZDZiMGE2OWY0MWFhIGxlZ2FjeS10cnVuaworMzAxMSBiMmE0MWY2YWVhYzk5MGNhY2JhMjRkMGE5Mjc5NGIyMzAzMDIyZTM1IGxlZ2FjeS10cnVuaworMzAxMiBmZTZhNWYyNjQwYTI3NmQ5MDE3ZjVlZGYwMDc0NDYxZDNiZDliOTZiIGxlZ2FjeS10cnVuaworMzAxMyA4NzJhM2NhZWZmMDcyNDIwMzUzODlkNmZlNjVmMDI4MmEyMDM2Yjk3IGxlZ2FjeS10cnVuaworMzAxNCA0ZGVmYWJiODI5NmI1YjQ3MDZkMDM3ZDU4YWEwZGM2OTU2YjBkYjM5IGxlZ2FjeS10cnVuaworMzAxNSAxYWM1YzY3MjdlOGM1OGRjODk5NDBiNmY3MDA3N2NiMGNiYmJiMTJlIGxlZ2FjeS10cnVuaworMzAxNiA0ZDU4ZTJjNTA4ODdhNWFjYWU4ZTg5MjU4NGQ1N2E2NWJhOTRjZTdlIGxlZ2FjeS10cnVuaworMzAxNyAzOWU1YjdlMzE1ODg4NWYzMWViYTM0MGRlZmYwMjVhMDcxZDVjMDMwIGxlZ2FjeS10cnVuaworMzAxOCA2ZjQ5OWQ1ZGFkZGY3YWJjZjdlNDkxNDQyOTZkZGU4YTI4MTcwMDVmIGxlZ2FjeS10cnVuaworMzAxOSAyNTQxYjNkMGYyMGY3MWU2MTZiOTdhOWYwZGUyNjJhNzAzMmVkYTc3IGxlZ2FjeS10cnVuaworMzAyMCA4YmMxNzBlNWVmZWU3MjE0NmE4Y2UyY2MwOTgwNzVkOTE3YTM4ZTNkIGxlZ2FjeS10cnVuaworMzAyMSA2Y2ExYzQ0ZmQ1Mjc4YTMyOWNjN2YxNDk1OTBjZTNhMmY3ZDY1Yjg1IGxlZ2FjeS10cnVuaworMzAyMiA2ZjNmZWQyNTBhZGIwZmEyMjI3N2UxZDhhYTI1ZWU5ZmVmYTE2ZWY2IGxlZ2FjeS10cnVuaworMzAyMyAzOTEzNGM5OWM5MjM4M2E1NzE2NjY4NzBmN2FhNzIwNjdmYmZmMTEwIGxlZ2FjeS10cnVuaworMzAyNCA3NjA5NWE4Yjk2Y2FlYmYwZGRjZDJiOWVmYTMxNGE3YmMzNzcwOGZkIGxlZ2FjeS10cnVuaworMzAyNSBiY2YwMjA1MmU5MDllODFhN2M0YzAwNzk2YmQzYTZiNGRiMjJlYWUyIGxlZ2FjeS10cnVuaworMzAyNiBiNjhiMTBhMjE1MjAwOTNlOGExNmZiMjczN2U1YjlkYTQwY2Y3N2IwIGxlZ2FjeS10cnVuaworMzAyNyBlNThmNDBjMmYyODVjZjVlMzZjNjFkYjA5MTQ1Mjc3N2Y0YTM0ZGMwIGxlZ2FjeS10cnVuaworMzAyOCA1OGU4NzcwZGI0NGFjZGZlZDFkNzY3Y2M2ZDAxMDg5ZmQ0OWUyZjk3IGxlZ2FjeS10cnVuaworMzAyOSAwNmMwNzg3NTBlODA4YTMzYjhiNzMxYzIwNTM2ZWZlZTM5MTVkZDE0IGxlZ2FjeS10cnVuaworMzAzMCBjYjE0NmFhOTg3Yzk0NWY5NjA0N2Y3ODQ2NWU3NjIzMThjMzgwNTAwIGxlZ2FjeS10cnVuaworMzAzMSBiMmRiNGJmMzRmZjhjZTQ5OTk1ZGE3ZTg0MDQ4M2JmZTcyOTg3OTQyIGxlZ2FjeS10cnVuaworMzAzMiA4ZTM1MWZiMjU3N2EwMmIyNjJhN2VmNTA5NzY3MzVkZDJhNWRiMjhmIGxlZ2FjeS10cnVuaworMzAzMyA5NzE1ZmRjMWU0NjJkZmQ0ZjUwZmQ4YzBkN2IzZGE3MDIwYTkzZmJiIGxlZ2FjeS10cnVuaworMzAzNCAyMjE2OWZjYzExODI2ZGE2NTc4MThmMTgyYzI2ZGMzNzM5YTI1OTc1IGxlZ2FjeS10cnVuaworMzAzNSA3YTAxM2Q2NDQ1YTQ4Nzc1NWM0OTYxY2E4NzIxZjlkYjM2ZmRiMmI5IGxlZ2FjeS10cnVuaworMzAzNiBhYWRkZjgyMWY1ZDQzMmNmMTE2YjNhYmE0NDg2MTE1YzM4ZTAyZWQxIGxlZ2FjeS10cnVuaworMzAzNyA0YzliYzUyYjgwODBkMzljZjhkZjZmY2U4YmZkODA4MWFkYWNlYzhkIGxlZ2FjeS10cnVuaworMzAzOCBjZDBlN2YyNGZhY2ExYjExYWI1NmI1YTFiNjJkOGFmMDAzYzA0MWE3IGxlZ2FjeS10cnVuaworMzAzOSBlYzMxNzQ4ODM3ZGMyNzg5ZjQ4Nzk0NmYzMjU5MTczMTk3MTQyZjkyIGxlZ2FjeS10cnVuaworMzA0MCA5ZmIyYTg2OGVlZWVjNjVhZTdkYzYxOTgwNGVkNTU5MThkNzkxYjVhIGxlZ2FjeS10cnVuaworMzA0MSAzNjMyMzE0MGY3NTE4NTQ1ZTJiYWQ4MzVmYWU5NGFkN2EyZjU1Njk1IGxlZ2FjeS10cnVuaworMzA0MiBmOTQ4MWFhNWU3NzZiNjVmN2JkMWUyNmI1Nzk2M2UxODViNDFkM2E0IGxlZ2FjeS10cnVuaworMzA0MyAzNmI5MzQzMjZmZWQ1ZjQ1NWE3YzBmZmFkOGQzMzUwNTA5ZTEyODI5IGxlZ2FjeS10cnVuaworMzA0NCBhZmY4MTljYWYyMWFmNTRjYjY2MWM2OTkwZTAxNDA5YjdkM2Q1MTFjIGxlZ2FjeS10cnVuaworMzA0NSAwMGViZTVmYjBhYzY3MTIwYjYwNGU1MWEyNzY4YzNlZDgwYjBhODQ1IGxlZ2FjeS10cnVuaworMzA0NiBhNTRlNGE3MTdjOWJiZTI5MWQ5MmU0ZDYzMDU1MmI0ZDlkOThlOGVlIGxlZ2FjeS10cnVuaworMzA0NyBjMDJjM2NiYjhhZDEwNDc3NDFiYzZmOWI0NjIyY2Q3MWZjZjNmZDU4IGxlZ2FjeS10cnVuaworMzA0OCAyNjZkZTU5ZGU4YTlkODcyODdjYjQ4M2RlZWMyODZkMjhkMGEwOGZhIGxlZ2FjeS10cnVuaworMzA0OSA5YTA1ZTJiZmE3NGMzNmJiYTZiZWI3ZGUzZjUwNmU2ZWRmMGZmMTlhIGxlZ2FjeS10cnVuaworMzA1MCAxNmExOTUzNTRiMmJlZTA2YjdmYzNiNWQ5YWRiMjY1MDQ0YzgyMWQyIGxlZ2FjeS10cnVuaworMzA1MSBkZDdkZmFkNDA0Y2Q4MzJkYTYzOGYxNzUyOTRhNmVmZTlmY2I3YWQ0IGxlZ2FjeS10cnVuaworMzA1MiAxODE0MDkxNDFhMTgwNmQ3Yjg1YzMxOGZkYjk2NDNiZTI0N2VlMDljIGxlZ2FjeS10cnVuaworMzA1MyBiM2Q2MzlhZDY2NmQ1YjIwYjBkYjdjNTUzYzAzN2U0OWRhZTVkNjZkIGxlZ2FjeS10cnVuaworMzA1NCBhOGNhNzIwZmQ5MjE5ZWVhNmJjZTMyZGY2YTk5ZDVmOTVhMDE2ZmE3IGxlZ2FjeS10cnVuaworMzA1NSAxMWVhNjY5YzIzMWUxM2QyNGQ0OWRiMzhjNzUzMTEwMjhmMzVjNDRkIGxlZ2FjeS10cnVuaworMzA1NiAyMjY1ODI4MjJjZmFmMTIyZjBlZDNjYTk1YmIxMmZhOWMzZDExNTRlIGxlZ2FjeS10cnVuaworMzA1NyA0NmNiNmJjZTRjNDc1ZjRmZWZjNTIyODQ5MTk2NjZkNGZhYzQ0ZmY2IGxlZ2FjeS10cnVuaworMzA1OCBiZWJkYzFhY2Y0NzQ1OWI4NmU1Y2Y5NzUwMmRmYjA2MjAxNzE3N2NjIGxlZ2FjeS10cnVuaworMzA1OSA2NDU5ZTJmMjFiZjY4MDc3Mzc4OGZjMmFmZDY2MTliNzJkN2M4ZWFhIGxlZ2FjeS10cnVuaworMzA2MCAwYzViMmQ5ZTQ1ZTgyZDNmMmU1ZThhZWQ0NGFmNWZhYzJjYjk1NTYxIGxlZ2FjeS10cnVuaworMzA2MSBlZjg2NTAyNTA4ZTJmMTA4NmMxYTE4NmJmYjEzYTY1YTBmMGQyZjBmIGxlZ2FjeS10cnVuaworMzA2MiA5OWJmZjFkYjc1ZjRhMGZmMWQ2NzI5ZGUxZWM5N2E2ZjNhYjFlNjc0IGxlZ2FjeS10cnVuaworMzA2MyA1OGE3NDM4YzJlN2VmOTIyYjM2MzE3OWUwNDZmMDgyOWJiYWFhZDBhIGxlZ2FjeS10cnVuaworMzA2NCBmZWEzZjU5NGRmNzc0NmI3NzZhMTNjYjkwZjNlZmE0OWIzY2I3ZjU0IGxlZ2FjeS10cnVuaworMzA2NSBhNDc5M2FlMjY2ODI2YzAxMzRjNDk2N2QwYTBiYmMzYTYzODRhYzE0IGxlZ2FjeS10cnVuaworMzA2NiBmZDYyYzI4MDk2YjU4NzdlNjZkNGJlZDdjMWZhNDU5MDEwNjU3NDc5IGxlZ2FjeS10cnVuaworMzA2NyA3ZjdiYTY1YTI4MjVjMGU0NmI1ODRmOWIxMjI1OTkzYmMwMzU2YjVjIGxlZ2FjeS10cnVuaworMzA2OCBhMWY1YjIxNmUzOTJjZDliNTJhNTc1OWFjNmNhYmNhM2VhYmY4NWE3IGxlZ2FjeS10cnVuaworMzA2OSA2Mzc5OGNkZTU4MmNmNTM1NjQ1YTI0MmVjYTNkYWU3OWZjMGUzNjBmIGxlZ2FjeS10cnVuaworMzA3MCAzMjAxMGQzNTVmYjYxMjJlNTI1OGVhOTIzNjYzNDY1ODNkYjVmNWJkIGxlZ2FjeS10cnVuaworMzA3MSA0MjRmNTVlNjdkNWQzMjRiOTg2NTc2YTVmZGU5OGMxNDdjZjJiNDI1IGxlZ2FjeS10cnVuaworMzA3MiA0ZGEwYjdkYWU3OTZmZjhmMjU4YWQ2YjdhNDcwZTZmYjljYzNkYjFkIGxlZ2FjeS10cnVuaworMzA3MyBhNGYyYjIyMTBiMDIxMTUwMzBjNTlhMTU3NTM5NjE1NzMzOTM4ZDZmIGxlZ2FjeS10cnVuaworMzA3NCA0ZmQyMjYwMmUyODJjMWVlOGJmNTE4N2ZkMTRmZDJiM2E4NGJhNTY3IGxlZ2FjeS10cnVuaworMzA3NSA2MGUzMTE4ZDMwNzM3YmI2ZjI5YzM4NzZhNGM4MTNjNjMwNGQ0NTk5IGxlZ2FjeS10cnVuaworMzA3NiBlOThhOGY4MDI5MDNhNjI5YzYyNDY2MTQxNGNjODljYWUyYWM3NjZkIGxlZ2FjeS10cnVuaworMzA3NyA3NGI3MTZlOWFjNDk4NmU0MDAzNzg5MzgxY2QwZGQwNDRlMmEyYTM4IGxlZ2FjeS10cnVuaworMzA3OCAzOWVlN2RlNzQ3NTAyZTk2MmJkYjVjNmU4NzJiMzY3ZjQyYjBhNTVhIGxlZ2FjeS10cnVuaworMzA3OSBmZWMxOGUyNDRkMTY4ODJiMjlmMGZkNTdiZTdkNTExZmQyZmYyOWY2IGxlZ2FjeS10cnVuaworMzA4MCBjZmRkNTc1ZWZmZjJiNDE1NzBiMzdiZmJmZjgwYjJjMzc1MTA2M2E1IGxlZ2FjeS10cnVuaworMzA4MSBlNDNhMjIwYzI4N2FhM2VhMjdiN2MxZTEzZjVmYzAzMDkxOWY1ZGY0IGxlZ2FjeS10cnVuaworMzA4MiBkM2IyN2ZmZjAwYjJmMTI1NzVlYzFkMjEzYjhlNmQ3ZDM3NzllZTNiIGxlZ2FjeS10cnVuaworMzA4MyA4YzczYzVmM2I2Y2E3M2RkYjY2OTRhNmM1NTI4NzA5NTA2YWZmNmQ2IGxlZ2FjeS10cnVuaworMzA4NCA4MDc4ODM0OTk2ZWNjNTgyY2E0NDc5NjgzMTQwZjA4ZjdmMzBiMDM0IGxlZ2FjeS10cnVuaworMzA4NSBjMTJiNDQ1Y2RhY2VhMWQ5ZjlhMDg4YWY2MjJhNmE1YjFjMDRjYWFlIGxlZ2FjeS10cnVuaworMzA4NiA3MmFjZWVkMzY1ZDQzNWI3YzI5NTNkYjg0MGJjZDA1NDc2OTk4MzczIGxlZ2FjeS10cnVuaworMzA4NyAyNTA1ZmQyMGQyNzdhNDc5ZTBkNDg3NjYyYjhkYzIzNGQ2YmFlMjYwIGxlZ2FjeS10cnVuaworMzA4OCA2MTE0M2JmMDNiNDQ3NmUwNWUyNzJjY2U5ZGFhOTU2NjEzYWNlNzQ3IGxlZ2FjeS10cnVuaworMzA4OSBjMTU2ZDQ5NjBjMmI0MDg1OWIxZjA1OGMyNGZkMWIwNjA1MDQzZTcwIGxlZ2FjeS10cnVuaworMzA5MCBhYWNiZDRiNTU4YzdlZmNmYmJmNzdjY2JiZTI3MDY4MzQ2YzAwYjQ4IGxlZ2FjeS10cnVuaworMzA5MSA4NzI1ZmE4ZDdmZjkxZDgxYTQzNmFhNjFkMzRkNzBmNmNlZTI5MTI5IGxlZ2FjeS10cnVuaworMzA5MiBmZjAyYjk0OGM5YTgwYjdiOTU1YzE1ODQxYjkzMWY1NDEyYmQ4MWEyIGxlZ2FjeS10cnVuaworMzA5MyBlNTA2MTk3MzMyYzBjMWExMWVhNGJmOWNkYTcyODA2MmU4ODVmMDRlIGxlZ2FjeS10cnVuaworMzA5NCBkODYwOGVkMWNjM2IxM2I5ODIzMDEyZTBiYWY2ZDlhNDY2YzVlM2U3IGxlZ2FjeS10cnVuaworMzA5NSA2MTU5ODNmMWEzZmYzZmQ1OTJlMjY3M2I0YTdlNDRiYmUzM2Y0ZWJkIGxlZ2FjeS10cnVuaworMzA5NiBjNDMyNzM4Y2Y2OWFlYWUxNWY1ODhjZmE2ZjRmMTA5ZGU3OTRhYjMyIGxlZ2FjeS10cnVuaworMzA5NyBkMzgzZDI3MzMxNzY1ZjhkNmVjYzA2ZTMxZDQ1MGI0YWYzOWJjYzIzIGxlZ2FjeS10cnVuaworMzA5OCA0ODc5OTY3OTZlZGM2YzczMWI3NTBjZjk1ODZkOTUyMTM3OThlZTE1IGxlZ2FjeS10cnVuaworMzA5OSBkY2U2ZGM2MmYxMDhlZTQ0YjA0N2VkYjAyYmY0NGQ5OWNlMjA1YWM5IGxlZ2FjeS10cnVuaworMzEwMCA1OGE0Y2IxOGYwMjVhZjg2ZDlkYjNkMDkxYzkxYzRmNDQ2ODQ0NzhmIGxlZ2FjeS10cnVuaworMzEwMSAxODM2OWJiOWMyNGQwNzg3OWY2MDVlZmE3ZWM1MWE1MGYyOTJkN2E4IGxlZ2FjeS10cnVuaworMzEwMiA3MjQzYTkwNjkzN2NmNzg0ODNjZWVkYTM1MDM0YTRkMDE2YzQzMmVhIGxlZ2FjeS10cnVuaworMzEwMyA4NDQ0ODJiNjQ2N2FhZTNkNThjODFhNTA1NzA1ZTUyM2JhNmVmMmIxIGxlZ2FjeS10cnVuaworMzEwNCBjZDQwZTNlZWJiNDkzOTBmNGUwMzRhZjMxMWRjYmUyNjFiYzdhMDE0IGxlZ2FjeS10cnVuaworMzEwNSAzYWE2NTg5MmI3NWM0NzA2OTY3MzU3MzM1YTk4NzYxNzllNTM5YTk5IGxlZ2FjeS10cnVuaworMzEwNiBiNDZmMjFjODMzNjkwOTZmMDAzZDk3YjhmYjU0ZDVhYjlkNzU4ZjExIGxlZ2FjeS10cnVuaworMzEwNyAyMjJmMDRmNTUwODMzNTcyNmFiNmU2MWUxZDVkZjM0NDc3M2Q4YjFjIGxlZ2FjeS10cnVuaworMzEwOCA0NjViOTg0MTc3MGUzNDU2NWU0ZDk2Y2YwZGY3MGJjYTRiMDdkOGU2IGxlZ2FjeS10cnVuaworMzEwOSAzNmUyYjdhMDBkNzJmMzZhZmJhYmM4MDFlMmQwMzVkZjcwMDUzMTRiIGxlZ2FjeS10cnVuaworMzExMCAyNjBkOTZkYjExMmY4N2QyMDRiYzhlNWUyZGM0ODczZmI4MWZjMjI1IGxlZ2FjeS10cnVuaworMzExMSBlNWFlNDJmZmQ5YTA3NTdmNmE3NzFmOTY3MWVmZTYwNjZiZTIzNzM2IGxlZ2FjeS10cnVuaworMzExMiBiYzBhYjAxNzU0YmE1ZGNiNDgwMDQxZTUzZDlkODdhNjdkNTUzMDdmIGxlZ2FjeS10cnVuaworMzExMyBiOWYyNGQwYzdkOTYxNmE3ZDAyZjE2MGVjNzhhNDAzMGQ5NTY3YzIzIGxlZ2FjeS10cnVuaworMzExNCAwMjg0ZjEwNzlhN2JhZTU2NDIzYzljZTczYWUyMzgzYmE3MWNkYTVhIGxlZ2FjeS10cnVuaworMzExNSA3ZDhlNTFlNTgwZDFhMjNjYTMzZDIwMjg5NzZmNTJkMmIyYmQ2NjllIGxlZ2FjeS10cnVuaworMzExNiAyYjYwODMyNzIzYzE0MzFmNzk1Zjg0OGQzMTczYjYzNzlhODVkZTlmIGxlZ2FjeS10cnVuaworMzExNyAyNjZhOGJhMjA3ODRmY2Y0MWJjNGVmMjhlY2ZjZTlhOTkyNGVjOGM3IGxlZ2FjeS10cnVuaworMzExOCAwM2RlNjcwODBjOTU2MjQyOGRjNzM3ZTcxZjRlZTRlZDIyNTJkOWE3IGxlZ2FjeS10cnVuaworMzExOSBhNjBjYjUzMjEyMTEwZTU0MDBiNDNiNWI4OGViZDZjZTc3ZGM3ZTE5IGxlZ2FjeS10cnVuaworMzEyMCA1YzZjZGI1OGE4MDFjYjgxOTQ2NGUwZThjZDFlMWRkMzEwZjg4MjA1IGxlZ2FjeS10cnVuaworMzEyMSBhNzM2ZWYxODQwYTUxZmUyYjc1ZWE4OWY1MTkxNTU4ZWQ5NDEzYjU2IGxlZ2FjeS10cnVuaworMzEyMiA2OGIzMDJhZDg0YTE5MWI0M2Q5OTU1YzU4YzgyOTM5Y2Q2Mjk1OTkwIGxlZ2FjeS10cnVuaworMzEyMyA3ZDNhMDUzYzY3NjVhZTU2ZWIxNmMxMGRjNTg5ZDVjMGZmMTMwOTk1IGxlZ2FjeS10cnVuaworMzEyNCBhMzFlMDc4NDcwNjM4NzQ2OWNmMGU5ZjNlY2M4Yjg5MTE3ZmQ0ZWZiIGxlZ2FjeS10cnVuaworMzEyNSBiNDFlOTU3MzFlNDIyNDIxNzg1ZjE1ZDg5NTcxMzNmNDRmZDNkOWZkIGxlZ2FjeS10cnVuaworMzEyNiBiNWZjYjY2MjQ2NWU3M2NmOGY2N2U5NWFlOWQwNTQzM2U5MzIwOWY3IGxlZ2FjeS10cnVuaworMzEyNyA0YmRiMjc5NDNlMjI0MjEzNzAwNjkwOTBkYWU0MDBlNTNiZmM3ZjVlIGxlZ2FjeS10cnVuaworMzEyOCAxNGNjNGIwN2NlYmJkNjExZTc3MGJmN2ExYjUwOTI4ZDhkYzdjMDc5IGxlZ2FjeS10cnVuaworMzEyOSAyN2FhZjk0NDc1ZGRiZDc1OWIwNTAyZDdiYzdmYzYzOWY5OGFmZTQwIGxlZ2FjeS10cnVuaworMzEzMCAxYTUyMDI5MGMzOWMwNTI1YTdmZTAyMWEyMTEyM2E4MjQyYWUyMTU5IGxlZ2FjeS10cnVuaworMzEzMSAwNmE5YzgyOGI2MDg5MWI1OGNiZDZhNmMzMjNiM2U5MDQxMWQ0MWFjIGxlZ2FjeS10cnVuaworMzEzMiA5YmZlNzNjNzczMzRjYWI2MTMwMjM2YjdmNTQ3MzRmOThmZTRlOGVmIGxlZ2FjeS10cnVuaworMzEzMyA0NjU3ZjdjOTgwZTg1OWY1OTIxNDk5ZDY1ODZmYTNlYzc4NGI0MjY3IGxlZ2FjeS10cnVuaworMzEzNCBmNjcxOTM4ZGZkZTJlNTMyOGFhODA4ZTc0OGEwMWRhZGIxNTFjZGFjIGxlZ2FjeS10cnVuaworMzEzNSA3YjM3YjVlNzE0OTNhMzY3MThmNTUwMzU0ZWNkOWE2MzVlMGRjZTk0IGxlZ2FjeS10cnVuaworMzEzNiAzMGEyOTAyNTdjMzFkMGIwOGQxNzI4NjUyZDE0ZDZkZTUzMTUyZDY1IGxlZ2FjeS10cnVuaworMzEzNyBjOWMwMzI4MzY4YTllMmI2NDM5MTYwNDNmZjViNjVjMjJmNDViMGJmIGxlZ2FjeS10cnVuaworMzEzOCBhZGJhYzU4OTNmOWM2MGRmYjE3M2EyZjY1MDE3NjQ1NmRlY2JmYmQyIGxlZ2FjeS10cnVuaworMzEzOSAzMWIwMThiZGE3ZTJkM2Y1MDBkOWZjNzQ4ZTRhOWJlMTU5YjFlOWYxIGxlZ2FjeS10cnVuaworMzE0MCA1NzZkYzE0YTI0MDA5NzEyZWNiMTA2M2M5Mzg2NGFiN2YzYWZjMzUxIGxlZ2FjeS10cnVuaworMzE0MSAxM2M5OWVhZjMyYThjNDVmYzkzOTgxOWJhMDE4YzRiMTk0M2I1NjYwIGxlZ2FjeS10cnVuaworMzE0MiAzYzU1ZTYxMmE2ZmNjMWQ3ZWM0MTkxZWUwNDBlOTM2NmE3MmUxYmM3IGxlZ2FjeS10cnVuaworMzE0MyBmZmUyZmJjNTgzZGVjZDc5MTk4NWUyNjNmZTk3OWJlOGY1MzhkOWFlIGxlZ2FjeS10cnVuaworMzE0NCA5ZjFkYjU1NmZmYmMyOGVhM2RhZGQyZDZhMzE5NzM5ODJhZTEwOGM2IGxlZ2FjeS10cnVuaworMzE0NSBmYmNiOGQwYmQ0NWUwMzIxZWM5ZDU0ZDVhZmFkZGQ3ODczY2E4MGFmIGxlZ2FjeS10cnVuaworMzE0NiBiMDQ1ZTY4YmJjZGQ1NGQ0YjQ1ZTNjMDczZDAyODI3MjZhM2ZlMjg5IGxlZ2FjeS10cnVuaworMzE0NyA4N2FlZDUxNjAxNjE3NmI0YTQwMDI1NzkwMmE1OTc5MjY1Yzg2OWZlIGxlZ2FjeS10cnVuaworMzE0OCA1Y2M3YTNjZDU1N2I2NDkzNzc2YTIyYWI1MzMzYjhkMDIwMGIxNzEzIGxlZ2FjeS10cnVuaworMzE0OSAyYTA3NDZkNTI0NzhhNzJlYWQzZDFkY2I2MDc1N2IwMTYwMDM1NjE2IGxlZ2FjeS10cnVuaworMzE1MCAyNGM5OGI2MGRkNzQ2NWJlNDBiMDM3YTY2YzVjNWFmNTgyMThmOTllIGxlZ2FjeS10cnVuaworMzE1MSAxOTdhMmNmM2E2NjJjNmIxYzcwMmI3MzEwMDE3MDJkMmVkYmQwNmFjIGxlZ2FjeS10cnVuaworMzE1MiA3N2FjYTY5NjZiOWQwMWI1YTEzNGYwZmM5OTM4Njc3NWU2NWVlNmY2IGxlZ2FjeS10cnVuaworMzE1MyBhOWViN2EwZDQwMDIxNDFmZTcyNTRkNWVjZTJjNTMzY2E2NWU1NWUyIGxlZ2FjeS10cnVuaworMzE1NCA3ZjgwZjMzNmJlN2Y4MmFiZWNkNDVkNzg4YjhiMmJkMWI2ZDUyYzBjIGxlZ2FjeS10cnVuaworMzE1NSA0OGM2MzdmYjE1MGYzMjg5ODE2ZjFmZDM3YzdhYWE4ZTM4ZTQwMDcwIGxlZ2FjeS10cnVuaworMzE1NiA3Y2UxOTc1ZjExYTkwZjEyNDFjY2IzMWViYzUyMzI1YjEwNjNiMDhmIGxlZ2FjeS10cnVuaworMzE1NyBmNGRiNDA2M2VjODg2ZWQzOWFlZWIxNjRlNDY2MDFhNmRiNDI5MDE4IGxlZ2FjeS10cnVuaworMzE1OCBmMDI1ZWVmOTMxMzBkMzI1OTI3NTc0ZjA5N2Q1NjgxYzIyYjY5MGVjIGxlZ2FjeS10cnVuaworMzE1OSBmZmIwM2NlYmYzZjQ1NWU0MjZlNDI1YWZlMzI2NjQ4MmNiN2E4ZDI4IGxlZ2FjeS10cnVuaworMzE2MCAwYmUxYTVkYjc3ODQ3NGEwZTVjZmY3ZmFkMTI5MWJkNmRiYWFkYjE2IGxlZ2FjeS10cnVuaworMzE2MSAwOWI0ODYwNDg1NWY0ZGQzZjM3NzNkMmVmMjQxYWFkYTBlMGM1MTA5IGxlZ2FjeS10cnVuaworMzE2MiBkZWJmY2I5YTdlMDhhNjQ3NDM4OWQyZjlhNmVjOTBiMWQxNjViNzZiIGxlZ2FjeS10cnVuaworMzE2MyA2Nzc0MTA3YzY0N2RjNTljNjA0ZGFhNzBjNGIxYWJlN2JjOWQ1NWYxIGxlZ2FjeS10cnVuaworMzE2NCA1MDY3ZjJkMzhlMTQzZmIyMzI1ODUxNjUyNDU0NDg2NjI5YmNmNjU3IGxlZ2FjeS10cnVuaworMzE2NSAwY2U0MDRlNDEzOWM1YjY1MTE5MGM4NGEyZTgxZDQ1YzZkZGIyYTlmIGxlZ2FjeS10cnVuaworMzE2NiAxN2RiMDU5YjI5YmFjYWIzMWRkOTAxYzk2MDY1YWU0NWE2Y2UwN2ZlIGxlZ2FjeS10cnVuaworMzE2NyA1ZDcxNDJlYTAxYjdkYjBmMTc4MDY2NGU2OWM4OGFkYzUzYTIxNDBiIGxlZ2FjeS10cnVuaworMzE2OCBiMzMyMjhlM2MyYzI3ZWQ5MjMxNWUzNTRmYjgwNWI1NmVlNDU3OGZiIGxlZ2FjeS10cnVuaworMzE2OSA5MDMwNzEzNzdkMjkyZTU5OTI0MGQ5M2ViYmIxNTYxOWEwZjdkNWQ1IGxlZ2FjeS10cnVuaworMzE3MCAwNGE4YTg5YzkyZWI3MGUxMjEzODYwMmFkNTQ3NGU2MTdkMzk3NjdmIGxlZ2FjeS10cnVuaworMzE3MSBmZGJlYWUyZDZlNjcxZTIxNWE4NTFlNmZlN2RkYzNjMzg0YmFmMDJhIGxlZ2FjeS10cnVuaworMzE3MiAwOWQyNzFlZjNiODI0MDQyNzkwMjg5YTk1YWI3YWVmODIxM2QzZWEyIGxlZ2FjeS10cnVuaworMzE3MyA2YzFmZDA1MTBkNjFiY2QxNzA4ZTE5MmU1YThjM2FjMzg5NGNlZTVkIGxlZ2FjeS10cnVuaworMzE3NCA5MjY3OGI1MDU3YzY1NTZjZTU0NDU2ZTUwNTQwYjE1Yjc1YTdhYTBjIGxlZ2FjeS10cnVuaworMzE3NSA4MDY2ODliOTM1NThmOTU2ZjcxZTYwOWYyMzJjMWUwMmZkYzU0ODM0IGxlZ2FjeS10cnVuaworMzE3NiBhMWNlNWE5NDk4MjhkNWMyYmYxNTU0ZjgwMGQzYWQ3YjEyZmM4NzIzIGxlZ2FjeS10cnVuaworMzE3NyA5NmFjYjM1YmI5MmJiODkxZDlhYzBlMTgyMjFlMTk4NTAxMDZjMGEyIGxlZ2FjeS10cnVuaworMzE3OCBmM2Q1ZTJjM2I5YTNhNTMxZjdjZTcyZWJmNGMzOTEwYjliMWJhMWI3IGxlZ2FjeS10cnVuaworMzE3OSBhNDFlM2JhNWI0N2Q5NmZiYjdkOTIxZDU0YWRiZjFkZDk3MzUwMGUwIGxlZ2FjeS10cnVuaworMzE4MCBjYjdlZjliZDllZGVjMzc5YTUzODY0MGQ5ZDNiM2U3MzY3NzQ5ZTFjIGxlZ2FjeS10cnVuaworMzE4MSAzOTQ1ZjM3MTIzNTQ5MDFiZDc2ODlhYTkzZDVjYmFjMWUwZTJkMTYyIGxlZ2FjeS10cnVuaworMzE4MiBhM2U3NjhlYTgwMmFiOTA3ZjAxMTAxN2FlMWJlZmY1ZTE3YTY2YjRlIGxlZ2FjeS10cnVuaworMzE4MyA3NDQyYjIwYzQzZmRmY2NjMWEzOTk3NzA1MzczYjlhMWQ1MTM4NGI1IGxlZ2FjeS10cnVuaworMzE4NCAwZDdjODIzNjY3MDQ1MDA1MjdjNDU3MzdkM2MzMmMzZDFjYWUxMzYwIGxlZ2FjeS10cnVuaworMzE4NSA5YjU2NmFjMzhjMmI4NDM0MWM4NDUzMDI1MDM3YzdmMTI5YTFiNWJjIGxlZ2FjeS10cnVuaworMzE4NiA5NGFiNjc2MWFmZTJjNGVmMmQ3MDVjN2NlOWExZDMxMWNmZThmYWMyIGxlZ2FjeS10cnVuaworMzE4NyA3YjRmMjgzM2ZkOTAyYmM1NThhMjFiYTFjYTE4NGI2MWI4M2FlNTE3IGxlZ2FjeS10cnVuaworMzE4OCBmOTkzMTk3YzNhNDc2ZTQ5YzM3ZTNkOWI0NDY1NjM0NDgwN2I5MTc5IGxlZ2FjeS10cnVuaworMzE4OSA1NmQ2M2NhYmRiYTdlYzA4NTVmZTI0MGQxYTU0Y2EyZDZjY2ExOGExIGxlZ2FjeS10cnVuaworMzE5MCA1MTM5NDBlYjRkN2I2OTkxYjE1NTZmZDk3YmZjYmFiYmJmOWRkNWU0IGxlZ2FjeS10cnVuaworMzE5MSBlZDQ1NmU5MWQ5NWFlODU0Njc0NTk5ZTliNjMzMzliYjk2YzFhNmI5IGxlZ2FjeS10cnVuaworMzE5MiAyZjk4MDVjOTYzZTg1MzY0ODA3YjhlYTE3ZWJiM2NmMzQxZDJhZWQ0IGxlZ2FjeS10cnVuaworMzE5MyA5ZjBmYjExNGMxZTU0Y2U1NjNlNTQzMzBmZDdkMThjMDVkZjRjZWY3IGxlZ2FjeS10cnVuaworMzE5NCA3YTExYTcwZjdmNDRkY2NkNDJlZGQxZDliMjk2Zjg3NTIzY2JhMTgyIGxlZ2FjeS10cnVuaworMzE5NSA0MzJmZTdmMDgzN2M0YjI1YTc0YzQyZmE0YmUzNWI1MmY5NTUyYzg2IGxlZ2FjeS10cnVuaworMzE5NiBmYmI4NDBmNjRiZjg5NTY3Y2E2YzkzYmMwZTUwZDVlYWU1ZGYxZGY1IGxlZ2FjeS10cnVuaworMzE5NyBiYmQwMTk4ZWFlNWJmMThmYWFjMjc0YzY3ZTI1MzRjZGQ3ZTgzYTRlIGxlZ2FjeS10cnVuaworMzE5OCA1ZmIzZjczYTYyN2ZjZTU5ZWQwZTE4YzMwZTFlZWE2YTdhZDhmY2Q4IGxlZ2FjeS10cnVuaworMzE5OSBiZmZlZmJmY2ViNjA1NDNjMzQ4YTZmYjk5ODQxYjhlZTNjOWE3ZDI1IGxlZ2FjeS10cnVuaworMzIwMCA1MTZiNWExNmFjNzcxOGQ2ZTE3ZGEyMWEwNmVmMzQzZDNiNTY5Zjc5IGxlZ2FjeS10cnVuaworMzIwMSBiMDA0MzhmMjY1ZWQ4Zjk2MjJkYWFlM2E2ZTBhMzJhYWQ2NjM0OTA0IGxlZ2FjeS10cnVuaworMzIwMiA2YWEwZWUxNGFjMmVkNjA2YTBlOGJjOGE2NDYwNDY5ODBiYjQ0OWEzIGxlZ2FjeS10cnVuaworMzIwMyAwZWU1OWExNGU1NDIxZmM5YjQzMjI0MjBlMDc1NmExM2FiMzVlNzA4IGxlZ2FjeS10cnVuaworMzIwNCAzZGFjMjA0Yjc0ZmFmZjkzN2YxMDVjODI0N2NjMWUzMjg1ZGUxZTA1IGxlZ2FjeS10cnVuaworMzIwNSA1OGY3NDhmNThkZjU4NGJiMjY5NmU1OThmYmM5MmM4MWY3N2VhNDhjIGxlZ2FjeS10cnVuaworMzIwNiA4ZjNhMjU0MDk5NWExNWUwZTE3ZGU4OWI3NzNjNzk3MTY3MDQ5NzkyIGxlZ2FjeS10cnVuaworMzIwNyBjNzJlZTI5Y2NjZDAxOGZkNzM3MmY2YmU0MTI0ODY5MjYzYzM3MTllIGxlZ2FjeS10cnVuaworMzIwOCAxMGYxMGQ0NTQyZmFlZDg1NDJlNmI1NmRmYTkxODFhZWE1MmI2Y2QxIGxlZ2FjeS10cnVuaworMzIwOSBkNjgwOGVjNmVkYzczNmU2MzQ1NGMzYTViN2M3OWY2MWRkZWU1OGEwIGxlZ2FjeS10cnVuaworMzIxMCA2YjVhMzRkYjIxZmUxNzMzNjgyYWU0N2Y4MjRiZjczY2I4ZTgxNGM2IGxlZ2FjeS10cnVuaworMzIxMSBjMWViZmRlMzQxYTNlY2M5YTk5NTBlZmQzZTYyOTM3NDU1YzY1MzlmIGxlZ2FjeS10cnVuaworMzIxMiAyZWQ1MTExNzE4MDk4MzgyN2IxOTExY2I4NjQ0ODg5NDczM2Y4OGUxIGxlZ2FjeS10cnVuaworMzIxMyBmNDlkMjMxMTc3NmJiOTNkYzlkODVlY2U5OTg5MjQ5ZmM2MTZiMjhmIGxlZ2FjeS10cnVuaworMzIxNCBmNTRlNjRjOGI5YjcwYmI5YjAzZDMwY2YyOGExZDgzNDUyOTNhZjYzIGxlZ2FjeS10cnVuaworMzIxNSA2NTA4ZWEzMmM2YjA5OTk5ZmI0YjFmMzVjZGY4N2ZmOTI1MjU0MjhkIGxlZ2FjeS10cnVuaworMzIxNiBjOTU0NmEyMTE4ZjA0YjZiMzY1MDdiYjM1NTMxYjQ2NTc2MjE4NzY4IGxlZ2FjeS10cnVuaworMzIxOCAzMTZjZTY3N2M2YjIwYTRjOTBhMjg2ZDc5MDAzY2IyMjk3ZmRmNGFiIGxlZ2FjeS10cnVuaworMzIxOSA2YWIyMDdhNTVmY2EzNDc3ZjQ2MTBiZGNhYTk4MjI3MGEwYmJhZjkyIGxlZ2FjeS10cnVuaworMzIyMCA5YmY3NWU0ZDlhZWMzZWFiM2RiYTA1MzU2Mjg5ZGQ0NjBhNjg1N2E1IGxlZ2FjeS10cnVuaworMzIyMSBlNjY0MmE1MzVkYjVmYzE2YzBhZmU5YjE0NjU5NjA2YzE2OGY5MDc2IGxlZ2FjeS10cnVuaworMzIyMiBmZTE5MjZiOWRmZmE3MzEyNTQ4OGRlZDFjNGZkZWQ5OGNlOWJkYmM4IGxlZ2FjeS10cnVuaworMzIyMyA1OTJiYWM2YWRmZmMyNTY2NjJiNDlkYWVjNDgxZTFiOGI1ZGI5ZjcxIGxlZ2FjeS10cnVuaworMzIyNCA0ZjY2NDFkZWE2NDU4OTc4ZDAyMTAxOGRkMmEyYjg4OTg3ZTE2ZmY4IGxlZ2FjeS10cnVuaworMzIyNSBhM2ZhMjI5Nzc1YzE2ZDNhMzJiOWZiNTVhNGYxM2Q0MGRkZmQ1MDg3IGxlZ2FjeS10cnVuaworMzIyNiAwZGExNmU4MTQ4MmNmMzNkMGNhOWI4YTQ4ZDIzNmM2NzQwNmUxYzlhIGxlZ2FjeS10cnVuaworMzIyNyBhYWEzYmNjYjE0M2FhZjFiNzcxNTVjN2ExOWI2MmJhMmIxNTY3ZGM4IGxlZ2FjeS10cnVuaworMzIyOCA2YmU5NzAzOWNjMTFmNjI0YTBiYTJjYTY2M2EzZWJiYTFmZGE1YWYzIGxlZ2FjeS10cnVuaworMzIyOSBiNWQ5NWFjZmQzZWUzMjM1ODM5YzcxMzZiMjdiZmNmN2IxYWVjNTlkIGxlZ2FjeS10cnVuaworMzIzMCA2OTZiOTEzMjdlYTIzOGU1MTMxNGQ0MDNhMWIwMjFhMzFiYzBmNjA4IGxlZ2FjeS10cnVuaworMzIzMSAzOTNkNTRlY2Q0M2I1Yjk2ZDQxZWE0ODQ2ZjgwNTZlYTI1OGEyMmYzIGxlZ2FjeS10cnVuaworMzIzMiA3MTYyZjVhYzg5OWFhOTJhNjRiYzQ5YjQ0NWFmZDdjMTJkNmM1ODgxIGxlZ2FjeS10cnVuaworMzIzMyAwMDE2NDU3YmQ5N2E4NWE1YTZjNWMxMTM4NGY4ZjNmYWZiZTUzNTBmIGxlZ2FjeS10cnVuaworMzIzNCAxYTU0ZDMyMGYyOTY0YWE3ODVjMjBkN2UzZGUwMmY5MjdhYWNhNjdkIGxlZ2FjeS10cnVuaworMzIzNSAyMjkxZGEwNWYxNzg0YmZiODUxNGRlNTZiZDkzOTEwODNkMTIwYzBjIGxlZ2FjeS10cnVuaworMzIzNiA3NjdlZjczNzBkMzNjNGQ5MDkzOGM1NTBkMzNjYWQ1NWViNTI4NDM5IGxlZ2FjeS10cnVuaworMzIzNyAyYzA0MzJmY2MyNzA3OWQwMGVlZjIwNzZjMDU2MzI5NmRiNzkzMTA5IGxlZ2FjeS10cnVuaworMzIzOCA0ZGMzODJmZjZmYzc0ZDM1MGQ2MGM2MTE0ZDVlNjY4M2JhOGMxYTFlIGxlZ2FjeS10cnVuaworMzIzOSA5OGNiNmExMjUyY2I2NWIzM2ZjZjgyMDhmMDQwYjIyYmJmNjEzMTJlIGxlZ2FjeS10cnVuaworMzI0MCA2YWM5MTZmOGY4NjI2OGQwODBjZTVlYzAwOTFkNTJkOGM5YWE3M2ZhIGxlZ2FjeS10cnVuaworMzI0MSBmZWI1YjIzNGIwYjVmZmIyNDM2OGI3NDI2YjQ3OTJiOWYyNzE0YjAxIGxlZ2FjeS10cnVuaworMzI0MiAyNDUwMDNjMDA2YTYzN2Y0ZjFkMDhjZjM5NzdlYzE3ZDgyNjIxZTZmIGxlZ2FjeS10cnVuaworMzI0MyBlNGM2YTBkZDVjMmIyN2E3YTVmZTc4NTMyNjVlYmNkMDViMzBhYzU2IGxlZ2FjeS10cnVuaworMzI0NCA3NjU3YTc1MDk0ZjFjMjA4MmExMmVkNTY1OTNhODM3YjM2ZDA1ZTE4IGxlZ2FjeS10cnVuaworMzI0NSAzMWRmNThmYTk4Y2M1NTkxYmMxZTYyMTExYzMyMGZhYzExMTk2Y2UwIGxlZ2FjeS10cnVuaworMzI0NiAwOGQzYzM3MDE5M2RmN2Y2OGRiZjQ2YjM1NDJmZGY4ZTQ4YzllZGQ3IGxlZ2FjeS10cnVuaworMzI0NyBmMDg2ZDdiNDkzYjRkZmNmYTFjNWE3ZDAzZGMzZDgzN2U2MjE1OWIwIGxlZ2FjeS10cnVuaworMzI0OCBiNzU1YTQ2MjAxZjZlNzVjNzhkNGRmOGNhYzYzMDY2MjJhODg3ODlmIGxlZ2FjeS10cnVuaworMzI0OSA5NjVhYTNiNTNhOWQ4NmE1YTNjYzZjNmQyZTZkOWNkZjA4NGU3YTY4IGxlZ2FjeS10cnVuaworMzI1MCBkYjgxN2YzYTFjNjU0NDhhNTU1ZjYyNzNiYWY4MDQ0YjQ0M2Y3NjhjIGxlZ2FjeS10cnVuaworMzI1MSBiOWU0ZjczMjFlMjhkY2ZiMzgyY2EzMzY4MDFjYmYyNDQ0MzA0M2FjIGxlZ2FjeS10cnVuaworMzI1MiAzNTgyNDg5OWFhY2Y4MjBhZTkwYzlhMWE3ODZlNzkyMDlkZGUxOTU2IGxlZ2FjeS10cnVuaworMzI1MyA4ZDYyYzkwNTZmZTE1NDQ0MzA3NmFiYzZjNWQ1YTgwNzhjYzBhN2RhIGxlZ2FjeS10cnVuaworMzI1NCBhYjkyNjUzNGExNTI3NDkwOGVlMmE1MDkzMjFmYTA5MmMwY2ZmZmQwIGxlZ2FjeS10cnVuaworMzI1NSA2ZDU3ZGNiNGZhYWRjYmU5MzM3YzkxMDkzMmFmNjlmOGQ5ZGVlOWZiIGxlZ2FjeS10cnVuaworMzI1NiA4MmM1NWVhOTA2OWU1YjU0OGI3YzEzNjAzY2Y5MTFlZTdhOGU2MmRiIGxlZ2FjeS10cnVuaworMzI1NyBhNDM3NmE5OTdmYjE4YjliOTZlMmI1N2E3ODFiODQzYTdmYTAwMGNkIGxlZ2FjeS10cnVuaworMzI1OCBkMmFmNmJkY2I2ZDBhMjQ0Mzc2NzJiZmE2MzcwZTJjNzE2ZWRmYmIzIGxlZ2FjeS10cnVuaworMzI1OSBhYzA4MjhlZjY4ZjI5YmJkMTE0MjVlM2NhMDcyNGEzNjI2ZDI4ZGY2IGxlZ2FjeS10cnVuaworMzI2MCBjZTcxODQ1N2IxNzI2NTc3MTE3YTAwOGU4ZjBjMjU2ZGMyMjI4MGZjIGxlZ2FjeS10cnVuaworMzI2MSBjNjQ0YmM2MjYwOThhZDdiZjMzYTU4MjFlNzQ1NWU3NGRhZjYwYTdjIGxlZ2FjeS10cnVuaworMzI2MiBjOWQyZjZiZGFhNjliZDRmMzIzMmZlOGZmNWU3NTAyMDU0OGI5ZWQxIGxlZ2FjeS10cnVuaworMzI2MyAzZGQ3YjgyNTU2MTlhYTgyNDRkYjM2YmNkOWZhY2M2MDU3Y2YxZmNlIGxlZ2FjeS10cnVuaworMzI2NCBmZjE4OTlkY2RhMDU5ZGRjYjMwZmVjY2I3MDM1YjJlZWVmOWI5NWE4IGxlZ2FjeS10cnVuaworMzI2NSBiNzU3ZTU4YmM1MjVjMzk4NGU3Nzk3NjA4YTI5ODE1NjQxYTQ5M2RlIGxlZ2FjeS10cnVuaworMzI2NiAzMGMyNmNmNTQ4MDQ5NjczNTI4ZTRjZDYzODc4OTA5YWVhYjBiMzE4IGxlZ2FjeS10cnVuaworMzI2NyBmY2FhZmQ1ZWM2OTU2M2MwYjdkMDgwZmQ2N2UxN2ZmYjc4ZDliYmRiIGxlZ2FjeS10cnVuaworMzI2OCA0MTU0ZTk4ZDE0NzhiOTJkZmM0MGQ4Nzc2Y2YyMWFlZjg2NGFlZGFhIGxlZ2FjeS10cnVuaworMzI2OSA2ZjJhNmVmZDAxOWU0NWY4MDc1MWNlMmJkMGQ3MGQ4YjQ1MjlhN2RiIGxlZ2FjeS10cnVuaworMzI3MCA4ZWE1NDYwNDdmMDExNjMwM2E4NTVmOGU3NmQwODA1MzY0YTM2ZmY2IGxlZ2FjeS10cnVuaworMzI3MSA5MWMxODZhMjE2ZTcwOThjODMzZTExNDFlMjYyMjM0NDM2NmIyY2E2IGxlZ2FjeS10cnVuaworMzI3MiA3ZjhkZGNlODg0OTYxZDRiOTM1MjcwMTUyMGJkZDdlZjVmNTZjZjU3IGxlZ2FjeS10cnVuaworMzI3MyBlMmY4MDc3YTkyNmVlYzJiMjJkZTc0YThjMDIxMzMyOWM2MGMyYTI2IGxlZ2FjeS10cnVuaworMzI3NCAxZDA2YjE0OTllYjkzMmYzN2EyZDRmODcwMGMyZGU4M2I1Yjk2ZjMwIGxlZ2FjeS10cnVuaworMzI3NSBkZTcwZDc3YjNlZWQ3NGUwYzEwZWJhMjg0NWFiNTU5OGJmMzAzMTdlIGxlZ2FjeS10cnVuaworMzI3NiA4Mzk5ZTlhYTAzZTdmZTJlNTY3NGFhMzdiZmJjOWJkNTUxZDZiZmE2IGxlZ2FjeS10cnVuaworMzI3NyA0NmQzMWE2NDljZTY2NzMxYWNmNzFhOWYzMzAxMzMxZWIwNmEyMjQ0IGxlZ2FjeS10cnVuaworMzI3OCBjMGFlZDVlZTExMGJjN2QzYjFlMTY5OWYyMGRlYjk0MDg3YWQyYTc2IGxlZ2FjeS10cnVuaworMzI3OSBjMWVlNjBiZDVkZTQ1YWE3YWYwNDZmYTFmOTYyMWMxMTNkMjU1Y2QyIGxlZ2FjeS10cnVuaworMzI4MCBjMjZmNWJlYzM0MzhhZDlhYzk2NWVhZDNjMWM3M2YzMjczOGU3N2NjIGxlZ2FjeS10cnVuaworMzI4MSAxYTBiZTZlMzY4MThiODkxMmEzZmZhNDI4NGNmZGRiNjExODg5MWE3IGxlZ2FjeS10cnVuaworMzI4MiA1NjYzNjM5NTcyNGQ0OTQ0OWNkMTNkZjk1NTQ5OGNkZjMxYjJkYjZmIGxlZ2FjeS10cnVuaworMzI4MyBmZjZlMjE3MzA5OWFlM2M4NWNmODFmMjJhZmQxZTFjMjJiMzU1ODM5IGxlZ2FjeS10cnVuaworMzI4NCA1ZTY1YjEwZGQyNGQzOWNkMmFjZmNmNzZhNzlkNGYxYjFlYjJhMzM0IGxlZ2FjeS10cnVuaworMzI4NSA3NWI0NzJhYzViN2JlMzJmZDM2NzBhZTYwM2UzYjA5YThiNmEyNTU4IGxlZ2FjeS10cnVuaworMzI4NiA5NGQxMjExNjc1NmFjNzVhOTI4N2U1NmNlYTU5ZmIyMjU0ZWRiMTFmIGxlZ2FjeS10cnVuaworMzI4NyAwOTE0NzRjMDgzMWE3YTI3MmEyYTc3MzBiOTVmYTA2MjlhYjM0ZTM2IGxlZ2FjeS10cnVuaworMzI4OCBkZDcwYTNhYWQyNjY1ZWFiYjUyYzhhNTM2YjBjZDY5YzUzNWIyZmJkIGxlZ2FjeS10cnVuaworMzI4OSAwY2NiMzU2ZTg4YjEyNmY1M2RjM2MwYjM4YjBkYWFjMDZkMGJmZWY5IGxlZ2FjeS10cnVuaworMzI5MCA0MWZiZDkyYmYxYWQ4MDFhMTA5YjcyOWMwOWZlNzBlYzk3MWM4MDdlIGxlZ2FjeS10cnVuaworMzI5MSBhN2JhMTkxMjBmNTQ3NDlmNGY5MGIyNTE5MTViYjJkZDg3Y2I2OThhIGxlZ2FjeS10cnVuaworMzI5MiBhYTllZDNiOWVkYTFjYTM0YWU3MTZiNTIwNTBiMGE4YzcxNzBmMWVkIGxlZ2FjeS10cnVuaworMzI5MyBiNmNkZGZkMzQ4YmExYTU4NWFlODczN2Q5MzQ0MGVmMTRlNTZlZWI0IGxlZ2FjeS10cnVuaworMzI5NCAzZTllYzg1YWM0OWI2ZmY1NWFmNjBkMTg4NDQ3OTlhNWI0Yjc1YTNmIGxlZ2FjeS10cnVuaworMzI5NSBlNTNiYWY5YjRiOTU1MWU1NTg4YzJmYWY0ODkxYjU0M2RhZmRiNjY3IGxlZ2FjeS10cnVuaworMzI5NiA2NDYxZGFjOWE5ZjI5Nzc3YjBkN2Y0OGRhOWU4ODVhZDg5ZTUwZjJhIGxlZ2FjeS10cnVuaworMzI5NyA5YWRkMGUzZTgwNGEwNTk4N2Q0YjhhNjY3MTI5Mjg5YjhkMjE0NzlhIGxlZ2FjeS10cnVuaworMzI5OCA1MTEyZDQzMjEyNmIxNzU3MDQ3NmYzY2VlNTNlYmNiYzU2NmVhMGRlIGxlZ2FjeS10cnVuaworMzI5OSA2MjMxZTFiNWIyMmI3YmVhZDIwMDFkYzI3MzM4OGZkMWQ1MmRhNWNmIGxlZ2FjeS10cnVuaworMzMwMCBlMzkzMDliOWEwYWE2ZDE2NmJjMDlkZDkyNDc2ZThhZGUxYmRhM2I5IGxlZ2FjeS10cnVuaworMzMwMSBiMzM4MjYyY2QwODA3YzQ2NDRmOGYwOTA1NmI4MDE0YzkyNzgzOWU0IGxlZ2FjeS10cnVuaworMzMwMiA5NTBmMDExMzE0MDNlMTU4ZTM1NDMyYmQ4OTUxMjBiZTM4YmM0YzU2IGxlZ2FjeS10cnVuaworMzMwMyBmNDllODYyZmVlYzRkOTE3OGQ0MjQyYmU1MmMwMjZhOGM1YmZkYzI5IGxlZ2FjeS10cnVuaworMzMwNCBiZTg5MTI1NjQzZjI1Y2Y5MDE2MGEyOWYxNGFmZjZmNWJlZWFiY2ZjIGxlZ2FjeS10cnVuaworMzMwNSA1NGViMmNmMjY5N2U2ZTUzNGU1MjgyNmQzNWJhNTk0YTgzOTAxZTM2IGxlZ2FjeS10cnVuaworMzMwNiBlMDg3NzIyNmQ2MTM4ZTBlZDQ5MTMwYjQ3MzJlNDM2ZDM4NDZiYzlkIGxlZ2FjeS10cnVuaworMzMwNyBlNWNlOWQwNDA4ZDBlNTZmN2Y0MTY4N2Q0ODUwYWVlNmYzNjhlZTZkIGxlZ2FjeS10cnVuaworMzMwOCBmMjBkZTEzMjI2OTIwZDkzOGE3OTExMTBhNmY0N2NjMzRlNjcxYzY5IGxlZ2FjeS10cnVuaworMzMwOSBiYjc2NjVjNDQ4MjI2ZmI5ODIxMmVjNTZkYWFkODgwZWQ4OTEwZjNiIGxlZ2FjeS10cnVuaworMzMxMCBhNDE2NDkzZDNhNGMyZjNiMjQ3MWZiMGI5MGQ4OGQ2YzYzYzk3MzAyIGxlZ2FjeS10cnVuaworMzMxMSAzYzZhNTJkMjU0M2RjMmQwNTJiMDVjY2QxYjNkMDI3OTY1NzFjMmM1IGxlZ2FjeS10cnVuaworMzMxMiBmYTYyZmIwZTU1YjJkODliZmZmZjQ2ODA3MjhhYWQzYzI5ZDU2MDQ1IGxlZ2FjeS10cnVuaworMzMxMyBjNzJlY2RiMzNhZjc1NzkxYmM0OTZiZWI4ZmM5NzNhZGQ3MGFhZmNkIGxlZ2FjeS10cnVuaworMzMxNCA4NDY3YjExOTM1MGJlYmM2Nzg0ZDc2OTU0ZmY3Mjg3ZDZkOGZlYWE0IGxlZ2FjeS10cnVuaworMzMxNSAxOTRhZjA0ZDM0NGIwODA2Yjk0ZTAxMzIyYmI2ZDA2YTYwMTQ1ZDI2IGxlZ2FjeS10cnVuaworMzMxNiA2NWU0MTk5YTc5ODJmYjE5YWUxZWYzMmI1N2FhMTdkZjMxMWFlNmEyIGxlZ2FjeS10cnVuaworMzMxNyBkNDQ4MGMwODQ0NGRjNWI2MzY0NmVmMDRkMTg0M2Q2ZmMzYmNmMWQ0IGxlZ2FjeS10cnVuaworMzMxOCBlODJhYzQ1MmQ1NTFkZDdjZjk1MjNiN2UwY2QwYTBhMzBjODc2MmU4IGxlZ2FjeS10cnVuaworMzMxOSAyOWQyZWYwYzk0Yjk1MDRkYThmODA5MjU2NGM3YWI2YTk4MTgyODY0IGxlZ2FjeS10cnVuaworMzMyMCAyM2ViMjc3MzFkOWNiMzJhZDlhOTRiMTJlYTY4OGU0MjRkNzRmZTk1IGxlZ2FjeS10cnVuaworMzMyMSBmMGViNzdhYmYyNDQzNmJiY2Q3NDZjOTAzMzcwNjk0ZDcyMWFjZjljIGxlZ2FjeS10cnVuaworMzMyMiAxMjA1MThlZjM2ZTMzYTQ3YzI5NGFhOWUxOWI2ZjVmZjBiN2Q2M2I3IGxlZ2FjeS10cnVuaworMzMyMyBkZWRkNDRlYjczNWIzZjE2NTEyYjRlY2RmNjkzZWFhODBmNmQ3OWFmIGxlZ2FjeS10cnVuaworMzMyNCA1MjQ0ODI3ZGQ0MjM4MTdhODBiYTU2MjQwYjZlMzFlZTExOWQ4YjNkIGxlZ2FjeS10cnVuaworMzMyNSA5YjdmOTBmOWYzYzE1Mjk5NmViYTZjZTk0MGIyM2FhNzgxY2ZiOTNlIGxlZ2FjeS10cnVuaworMzMyNiBmYWM2MmJjZDNiYjhkZTFjY2UzZDY5ZjMxY2U3Zjc4YTNlM2EwNjczIGxlZ2FjeS10cnVuaworMzMyNyBlZGRjNTRiMWQ5YWI4YjY3NTk3M2MwNWZjODQzNTYxOTBmNTM0YzRmIGxlZ2FjeS10cnVuaworMzMyOCBmMDc4NGFlMWZmNWNhY2FmODY1ZGQ2ZjNiMTRlMDVjNTUyYmUwN2U3IGxlZ2FjeS10cnVuaworMzMyOSBkOTkwYzJiOGExZTZkMDliMDQwNmQ3Y2IzYjM5MWQ4OWFmNjFjOWRiIGxlZ2FjeS10cnVuaworMzMzMCBhN2NmMjBjODQ1YTNhNDZlNmMzNjU1M2IxN2Y1NWNjMTUxNWVjMmZjIGxlZ2FjeS10cnVuaworMzMzMSBhNDdlMGM5YmFhZDAwODI0OWNiOGQ1Yjc2YWUzYzEwMzIzMjk3NWUyIGxlZ2FjeS10cnVuaworMzMzMiBjMDFjOTVlZjFmYmRhODg0YjQwMDJmOGEzY2JlMWMxZDNjYTY0OTk4IGxlZ2FjeS10cnVuaworMzMzMyA1NzQ1ZTU1ZjJlMjgwZjEwOTg0YmU4OTJmMzEyMTBiNzE5YTFlOTlkIGxlZ2FjeS10cnVuaworMzMzNCBiYjU0ZmY0MTM0OGY4NzliZTE4M2YwYTU4NWNlN2RhODg2Mjk1OWUxIGxlZ2FjeS10cnVuaworMzMzNSA5YzFhZTYwN2QxMzUzODA2ZWFhYmI3Y2IwMTdjODY5NTc1ZjIyZTc0IGxlZ2FjeS10cnVuaworMzMzNiBlNzFiNjQ3ZmEzMzU2ZjUwY2Y0ZDI4NTRkMjZhM2Q1Y2VkYTNhZmMyIGxlZ2FjeS10cnVuaworMzMzNyA5NTUyMTJlZDUyZDM3Yzc0N2Y5NzZkZTE1NzE2YzEwOThhYmI0ZDRkIGxlZ2FjeS10cnVuaworMzMzOCA4NjA0YzM5NDk4MDlkNTEzMWYyZWQzMTBkN2UwNzE1YjQ0ODM4ZjQxIGxlZ2FjeS10cnVuaworMzMzOSA3MTdlYTE3Njc0MzBiYWRhODIxOTEwZjAwOGYyZjBhNzJjNjhkMjcxIGxlZ2FjeS10cnVuaworMzM0MCAyNzE1NGEyYjkyNDQwMjcwMzBjZTgzNDVlYTgzNTU0Y2ZkZGE2ZjVmIGxlZ2FjeS10cnVuaworMzM0MSA1MzNlMzZkZTFlNGRmNjE5NWM1ZmE1N2NlNWY0ODZiOWJlYWUxOTNjIGxlZ2FjeS10cnVuaworMzM0MiBmOWJiYjAxMzg4ZDViZjNjYjhlNzFhZjQxM2QzYmFlZWMzYmNlYWRjIGxlZ2FjeS10cnVuaworMzM0MyA5YWU2NWVlMDk3MzVkMDcyMmE2M2RiMzg4MjI4MmFlZDE5NzJhMzk0IGxlZ2FjeS10cnVuaworMzM0NCAxZDZjYmViMjcwOTYyNzJhOWNlZDM4MTVhZjFhMGNiNjExNmQyMmRmIGxlZ2FjeS10cnVuaworMzM0NSA5NTBjZDM3ZmNkZGM1NDc3ZGJjYjA4Y2YyMjhjN2Y4MDAxOTkxYTFlIGxlZ2FjeS10cnVuaworMzM0NiA2NGNmMTkxZDIxZDA4YzkzMTJmOTRhMGU4YWY1MGQxZTNjMjdmMDE0IGxlZ2FjeS10cnVuaworMzM0NiA2NGNjNTQzOWUxMGE2ZmRmOTg0ZWZmYWYwMTQxZTk0ZmE0Y2MxMDA0IGxlZ2FjeS10cnVuaworMzM0OCBjZjhkZGIyOWUyNmVkYWZhZWEwYjUwZmIyZjhiNGFiODUyMmUxMjM5IGxlZ2FjeS10cnVuaworMzM0OSAwZWZlZjk3ODVhMjVkN2Q5YWFlMjVlYTEyYTAwYWE4NDE2ZGFjMTkxIGxlZ2FjeS10cnVuaworMzM1MCA5NDdmOGEzNDdjNGYxNzg5ZThjODkzN2UxZDU1ZjRhOTM3Nzg5NjU1IGxlZ2FjeS10cnVuaworMzM1MSA2YTA3N2MyOTM5ODZjMGFkNzk3MWNiZjRjZTZjMTg0NjA3Yjg2ZjZmIGxlZ2FjeS10cnVuaworMzM1MiA1ODRjNDE0MmM1Mzc5ZjNhNTM3YjI3YTk5NTNjOTA2MmVmMmNhZjVlIGxlZ2FjeS10cnVuaworMzM1MyA4NDdjNDgzNTYyOGZhOGYxMWIzOGZkMjg5YTcxMjkyMmU0NjAzYjM3IGxlZ2FjeS10cnVuaworMzM1NCBlYThkNGNjZTc4MmJiZmFkZjBlMmM5MTVjODJkYjI2MmY0OTdjYTFmIGxlZ2FjeS10cnVuaworMzM1NSAzOGYwMDU0ZjQ0YTcxYzZmNzkwMWQ1YmYxMDQ1ZTUzNDljZTczNDE2IGxlZ2FjeS10cnVuaworMzM1NiA3ODQyODI0M2ZlYWE3NTIwOWRhN2Y5OTZkODA2ODhhNWE4OGRhMmZjIGxlZ2FjeS10cnVuaworMzM1NyBiN2FlZTc5OWRjNzE1YWQxYjg0ZmFmYWMzNWVhNzc1NWY5MDc3YjAwIGxlZ2FjeS10cnVuaworMzM1OCAzMTA1MzIwMTVhN2QzNTliZmU3NzYwYTU1YWM0MzhiNGVmMTA4M2I0IGxlZ2FjeS10cnVuaworMzM1OSBlMTIwOTM2YTBjODdmOTUxNWMxNDAxOGFiYmU2ZWQxYTFkNzM2MWYxIGxlZ2FjeS10cnVuaworMzM2MCBjZTY3ZDkxYWRmNWU3ZTA2NWRiMzVhYTBkZmRiZDM0NTkxMjRmZjczIGxlZ2FjeS10cnVuaworMzM2MSA2NzVhMDI4MjBkNjZlMTQwZTJhNTU4M2RmNjI5ZTgyYWJlNzU0ZjY0IGxlZ2FjeS10cnVuaworMzM2MiAyOTM3ODk3YTdkOGIwMzg3OTM2MDg0ZjQyNGM2OWFiNWEzMTNhMjhmIGxlZ2FjeS10cnVuaworMzM2MyA3MThmMWQ5YmNiNTA0ZjI1NWNmNzM2ODE5NzEzNWE4YWRmZDQ5NDk1IGxlZ2FjeS10cnVuaworMzM2NCBlODIyM2QwYjcyYWM1MTk2MGJmMDkzMWU5NmMwMmFjNTcxYzFkN2I1IGxlZ2FjeS10cnVuaworMzM2NSAwZDc5OWQzYzQwMzZlN2Y4YjE2OTUwMzdhM2U3MjgyNzE2NWJiNWNmIGxlZ2FjeS10cnVuaworMzM2NiBkMDIyMjFlYmFjMmFkN2M4YjA5MThkNzk2NThhYWRkZjY1ZGVkMjFiIGxlZ2FjeS10cnVuaworMzM2NyA4MzFkODJhYTRkZDA4MTg5YTE4ZjAyMDEzNzk1ZThjM2QyNWIxOTQxIGxlZ2FjeS10cnVuaworMzM2OCAzNTczZWY0MjFiZjQxMTA3YmY3MTk5ZTVlYWYxYjFiNDljM2MxODhlIGxlZ2FjeS10cnVuaworMzM2OSBlY2ZiYzI0NmVlYWExMGM0ODM0MzVjN2JkMjJmNjgwMWI2MzUxNmEyIGxlZ2FjeS10cnVuaworMzM3MCAzZDFmNzA4NzlmMDMwNDE0YmFkZDk4OWQyMDU1ZDI1NWNlM2EwOWMwIGxlZ2FjeS10cnVuaworMzM3MSBiNTY0YmQ0ZTU3ZTEzNTM0NDk3MDE5NTU2MTU5ZDVmNDdjYmI2OTg5IGxlZ2FjeS10cnVuaworMzM3MiA5YjE0YTRkODkyMDczYzYwODlkODJlYjlkY2JmNDM4YzkwZWI4YmNjIGxlZ2FjeS10cnVuaworMzM3MyA5ZmU3ODNjYTk3NmUyZjkxYWZlNzYwNjIxYzk5ZjQyYzg4ZWQzYTVjIGxlZ2FjeS10cnVuaworMzM3NCBiYmVmMjQ3M2U1NjhkMjkyODcxODEwZWM1NmJmNDM1N2NmZDA3YWY0IGxlZ2FjeS10cnVuaworMzM3NSA0MDY4NjBkZmFhYzc4YjYwODE0YThlNzYyMjFjYWFlYjA2ZmNmZmIxIGxlZ2FjeS10cnVuaworMzM3NiA1YTQxMDk0NDFlYWUwMDk1MTI1OGJjOGFjNjAxNjkyZWFiZmIwODFkIGxlZ2FjeS10cnVuaworMzM3NyBmYTZjZTdmNTNhYTUwMThhOTBlOTA2ZmFiMjZkZGJmNDQ3MGE4YTZmIGxlZ2FjeS10cnVuaworMzM3OCA0MTZhOGE4ODZhODJhYTJkM2Y1NmVhOWNlNWMyMzk4NGQ3OWMwMzhkIGxlZ2FjeS10cnVuaworMzM3OSA5ZDZjZjUyOWJiNzFhN2Y0ZmU5OTc1OWRkNjc3NzBmZmMwNTU1YmJkIGxlZ2FjeS10cnVuaworMzM4MCA0OTJmNWUzZTY0OTU1NThkNThjOGI5NmZkNWQ4MGMzNjdjYTk4MTNiIGxlZ2FjeS10cnVuaworMzM4MSAxZDdhNGVkMGM5ODVmNWVmODIyMzRiZjVmZmM5ODQ1OThjNDBiN2ZjIGxlZ2FjeS10cnVuaworMzM4MiA1MTIyM2NlOTVhNjE5ODY2MWM5YTI4MzMyMDgzODRjOTY5YzEyZWE0IGxlZ2FjeS10cnVuaworMzM4MyA2NGVjN2JkMmU4MzczN2E3M2ZjODhiOGIzMDMxMTllMGRiYzgxMGMyIGxlZ2FjeS10cnVuaworMzM4NCA4MmY0YTZhMTk2NGRlZjYxZWQwMjQxNjc1OWIxMjI3ZjQ0NzFlYmYyIGxlZ2FjeS10cnVuaworMzM4NSBhZDZkNWMxZWY1ZTYxYTI5MDA2ZWI1OGZmYzI4ODgyMGVmMTRiMzJiIGxlZ2FjeS10cnVuaworMzM4NiBjZTdhZThmODFiMDYxODI0NDEzMzhmYjkwNjVlZDVjMzJkYTcxN2I2IGxlZ2FjeS10cnVuaworMzM4NyA1YWU0YThjZjc5ZWYzM2ViNWMyOTk3MzNlMzY5MDgwMzc4NmMwNGQ0IGxlZ2FjeS10cnVuaworMzM4OCA3ZTI3NjU5ZWIyZDk2Njk4MWI5YjkyZmU3ZWE3NjkzMjc2MjkwNTQ4IGxlZ2FjeS10cnVuaworMzM4OSAyNzUzZTJjOWFhMjFjOWI2YWE4NGU5MDU2OTJiOTA2ZTlkZDFiZDFmIGxlZ2FjeS10cnVuaworMzM5MCAwNjU5YjYzZDYwNDQ3ZDYzMzZlZWQyY2E2OTk0MTM3NzIyZDBmZGRlIGxlZ2FjeS10cnVuaworMzM5MSAyMDI2ZWMwMGVmZGNmNDBjNzVjYzAzNTljM2NhYmZiM2IyYTNkZjJiIGxlZ2FjeS10cnVuaworMzM5MiBmMDE4ZDFkMGU5MWE1ZGY3N2I0MTk5MjNlOWU3N2UyZDAwMmIxMzdmIGxlZ2FjeS10cnVuaworMzM5MyBkY2U3YTRjYmFjMTEyZmVlNTg5YTI4ODM3YzMyMjYyMmI3NmI4Y2ZjIGxlZ2FjeS10cnVuaworMzM5NCBlMGY3ZmY4NWZhMDY1MzgzNzcxNDQ1Y2QzYjEwZDRlYWZmZDc3MWFkIGxlZ2FjeS10cnVuaworMzM5NSAyNjg4ZjliZWJkOWE1YTVjYWE2YjU0NzU1YzljN2U0ZDliNmI1NjNhIGxlZ2FjeS10cnVuaworMzM5NiBhZmNiYTg4YzZhY2I3N2RlZmQ4ZDliODdjNGFmZDAyZWE4OTM4ODllIGxlZ2FjeS10cnVuaworMzM5NyBiM2U2YTQzNWM0OGZlMjdiZGNmZThjOTU2YmE3MGNlZmY0MDI2ODBjIGxlZ2FjeS10cnVuaworMzM5OCA1ODZjOTI4YzY1ZDM0ZGU4Yjk3ZTkzMDM3MGEyNWIxNmMwY2Y3NTc4IGxlZ2FjeS10cnVuaworMzM5OSA4N2VkMDBhNjJkMzEwMTM4NTNjNWYzZDMwODA0ZDYzOWI5ZjZlOTcyIGxlZ2FjeS10cnVuaworMzQwMCA2ODA0MDZjNDE1MzkxNmViYjRkMmJiMWY0M2JlOTg3MzhlNjg4ZTBlIGxlZ2FjeS10cnVuaworMzQwMSAwNTU4MGUwMGY0MWUyYzc1ZDc5Y2ZlNjcwNGU5NmI2ZDA4MTVlNzBkIGxlZ2FjeS10cnVuaworMzQwMiBkNDI2YzVkNTkyNTRhNTAxNjRkNzk3ODJmNTM1ZDQxZTUzNDU5ZWFmIGxlZ2FjeS10cnVuaworMzQwMyAwYzY1N2RiMjdkYmY2NGY5Zjg4ODRlNzBmYjgzN2YyMzM2YTNjMzA5IGxlZ2FjeS10cnVuaworMzQwNCBlNjAzNGVkYzQ3YWU1YzJlZDc1YTI3ZTNjNThmNTY5MGQxZDZiMzIxIHVubGFiZWxlZC0xLjkuMgorMzQwNSA1YjhlYzhmNzExY2VmMTA3MDgxY2NmYmM0NDJmNDU2NWMwYjBkZDg2IGxlZ2FjeS10cnVuaworMzQwNiBhNzU5M2JhOTlkY2JhYmRlMjQxNjBlNWEyZjVlNzBiODZiZTdmZDdkIGxlZ2FjeS10cnVuaworMzQwNyBlNTU3MjRmYmMyYWY3YjBlMTE2NzE1MzkzZDU2MzMyYzg4ZWQzMzhhIGxlZ2FjeS10cnVuaworMzQwOCA4ZjI0NmM4OWRkY2ViOTdlZTc3ZmU2ZWZiOTBjOWI3NzY0MmY3OGY3IGxlZ2FjeS10cnVuaworMzQwOSA5MWE3NzA4N2U4M2YyMWM0ZTUyY2NhNjg3MzQ5NTUxODdmNTA4NTVjIGxlZ2FjeS10cnVuaworMzQxMCAxYTZiYTIzYWU0NDdhY2FlMGE1ZGE5NDM5MGNlN2NhYjk0OTgzODBjIGxlZ2FjeS10cnVuaworMzQxMSA5MTFiODAxN2RhNDZiNjMyOGYyN2M1NmRmZjFiM2EzNjFhNTYxNTMyIGxlZ2FjeS10cnVuaworMzQxMiA2YjNiNzVmMDdjYmI3YjgyNmUwYjYxNzNjZGM0ZmU5Y2U5MDkyNzAzIGxlZ2FjeS10cnVuaworMzQxMyA3OGNiMGFjY2ZiMGNlZjI5ZmZhMDA3ZmM5NDM4ZWJhOTQ3OWM2ODZkIGxlZ2FjeS10cnVuaworMzQxNCA5MWMxZjk0YjE3YmMxMTdhODFiZmY2YjEyNjNlNGMxN2JjNTFlZjc4IGxlZ2FjeS10cnVuaworMzQxNSA0OWE3YTNjM2Q4NTA4OWNmMDg5NDI4ZTU5NmU1NmU1YTNiZWQ0YmYwIGxlZ2FjeS10cnVuaworMzQxNiBjYTE3MjhjNGJkNzg4NDZmNjJkZjc4MDcyYTY3MDc4MzY5M2JmZjRlIGxlZ2FjeS10cnVuaworMzQxNyBjNGNkMGQ5ZDgyODFkYjUzMDk2NTAwMDcyYmEwNDdhMWQ3ZThiNDRhIGxlZ2FjeS10cnVuaworMzQxOCA2ODViMzFmZTg5YzYwZDAyNGE4ZGEwM2NmYWU0ZjVkYTgxMDBiNzE5IGxlZ2FjeS10cnVuaworMzQxOSBiYmNlYzI0YjI0Mzc3NmQ5YmE0MjM5MGI3NGQxMTQxNGMxN2JmMzNmIGxlZ2FjeS10cnVuaworMzQyMCA0OTYzMDEyM2EzZjM0MDM3ZThiYmZhMzFjZjVkN2RkOWJmYmIyNTgzIGxlZ2FjeS10cnVuaworMzQyMSA3YWE5NjEzZmZkMzYzMTM2MjBlOWQwMWQyYjlkZjIwNTY2OWUwZmVmIGxlZ2FjeS10cnVuaworMzQyMiAxY2FiYzJiNmM5NzAxYWVhMjliYjUwNmI1OTM5NDZlNjdiZjc1OTNhIGxlZ2FjeS10cnVuaworMzQyMyA2Yjg2ODhlNmE3ZWQ2ZWM1ZjYzNzIzNjljYmI3NjQ3M2ZjMWI3NTMzIHVubGFiZWxlZC0yLjMuMgorMzQyNCA2ZDgwZTFmOGY3MGE1ODBiNzg5MDdhZmZhNDU0ZmU1MTc2MGJhMDIzIGxlZ2FjeS10cnVuaworMzQyNSA0NWQ3MDg1MjExODgxOTU5Y2FhNTZjZjI2NTMwMDFiMjNlMWJmMzIwIGxlZ2FjeS10cnVuaworMzQyNiBiMTIwY2RkMzBmYmNhNTkxYTQ0NzNiZDExZGMwZTI5YmVlMTMxN2FjIGxlZ2FjeS10cnVuaworMzQyNyAyYzUxNWYwNzM2N2FkNDE0N2UxYWEzOWJiZTM3ZWQxM2MxZTIxNmNmIGxlZ2FjeS10cnVuaworMzQyOCBmODIwZTY5MTdmMDdlNTAxMmJkZDEwM2VmOTczODkzMThkNWExMGY4IGxlZ2FjeS10cnVuaworMzQyOSA2NWExZTRlOWNkNTQ2YzRlNTc4NzMwYTg4ZGRhZjIzNGJlNGQ0MDQyIGxlZ2FjeS10cnVuaworMzQzMCA2YzU4ZGMxZDJmOWQyMDhhOTEwNmQ0NDQ4YzI5YTlhNmI2YzMzODE0IGxlZ2FjeS10cnVuaworMzQzMSAxODExZTk2MDgwZDQ0MjJkZWViMTlmOTE5ZGVlYmM3YjZkM2Y0YmUwIGxlZ2FjeS10cnVuaworMzQzMiA4OWU0YjE2NjYxNzg5Y2IzNjhlNDhlM2RlOTExODY5ZTM5NGZlMTAyIGxlZ2FjeS10cnVuaworMzQzMyBkMDJjZTMwZDdkZGJjODdiZGU2MzMyMDlmZGFmY2IxMmJmYWUyOGI3IGxlZ2FjeS10cnVuaworMzQzNCBmNWY3M2M5NDYzYTg2ZDI2NzlhNjY5MjQ3MmE3YWJkN2UyN2E2MGNmIGxlZ2FjeS10cnVuaworMzQzNSAyODk0ODE4MWZiMmY3OTVmOGVmZmE1NjE0NDg2MzZhYjcwMTQ0NWVjIGxlZ2FjeS10cnVuaworMzQzNiAxNDM2OWE1ZTYxNjc5MzY0ZGVlYWU5YTlhMGRlZWRiZDU5M2E3MmUwIGxlZ2FjeS10cnVuaworMzQzNyAyOTE5YjQ0OGUzODU4YTEwOGU3NGI5NjJiNzQ4MDllMTc2MmFmNWJjIGxlZ2FjeS10cnVuaworMzQzOCA3Yjc0MTFmOWIxMTZmMDBjMjM0YTMyODZlMjZmM2NmYTY2YTBkZjcxIGxlZ2FjeS10cnVuaworMzQzOSA2OWEwNjZiNmIxZmY0YWY1MTE2MjY1ZDY5YTQxM2QxYmZjM2FkYzg4IGxlZ2FjeS10cnVuaworMzQ0MCAyYzc0OTYwZDZhZmVmMTM2ZjlhOGI0MTE3ZjVlMGFjNWJjZTRjN2NlIGxlZ2FjeS10cnVuaworMzQ0MSBiY2E3MWYyZTJjYjRlZTY2NDYxOGQwNTBjMTdmZmQ3ZjI4MDE2YTM5IGxlZ2FjeS10cnVuaworMzQ0MiBmNzZiN2JhOTlkM2VmYjUxNTIzN2VkNzQ3YmNjYjhkZTc0NDQyZTU5IGxlZ2FjeS10cnVuaworMzQ0MyA4NzE0NmRjMWY3OWM1YjdjZTk4MGFmOGFmNzJiYWMxZGNjZmNiOWYwIGxlZ2FjeS10cnVuaworMzQ0NCAzY2E0NTZmNDRiZjNlZjM2YTk3NGRkNzVlOGFkZGI5YzdiNWI3NGU1IGxlZ2FjeS10cnVuaworMzQ0NSA5ZTQyMDZmNjRkMWI1MTQ3ZmQwN2UzMjcxMjZiNmMyYmJlNjg5ZTFmIGxlZ2FjeS10cnVuaworMzQ0NiBhZjI3YTgzMDBkMjQwOTRhYWZhNmVlNzQ2ZGU1NTY3YmE5YmNjNDQ3IGxlZ2FjeS10cnVuaworMzQ0NyBjNjBjYjA1OWM0ODFlNGE5NGQ1OTQ2NDY5ZDQyOWEyOWFhZmY4YjVkIGxlZ2FjeS10cnVuaworMzQ0OCBlMDQ2NGU3MTE1Y2EyYmY5YzgwYzk1ZjQ0NmE2ZDY0ZGZmMjgzZjAyIGxlZ2FjeS10cnVuaworMzQ0OSA5MTgxZGE0MDY5NzhjODFkZWQxOTAyYjk0YTBjZDk2MmFkMzE5MGI5IGxlZ2FjeS10cnVuaworMzQ1MCBkYmNlNzJhZmUyNjE1MTZkMzU2M2NkMTcyMGZhYzIzNjk2OGRjYTczIGxlZ2FjeS10cnVuaworMzQ1MSA2ZDdmZGVjOWQ0OWUyODQzYjQ3YWU2MzQ1MGQ2MDlmMzQzNTc0NjU5IGxlZ2FjeS10cnVuaworMzQ1MiAzM2YzZDdlYmZjYzFiMDFlNzE2OWI3NjMwYWVkZDU3NmE4YzY3YWQ2IGxlZ2FjeS10cnVuaworMzQ1MyA2NzNkZDliYmRiZjE1MTFhZTkwMDkyNzAxYWRmOTIwYTc2M2EyNjMwIGxlZ2FjeS10cnVuaworMzQ1NCA5ZmVkNTcyNmEzNmQ3Y2UxMzU1YzMwNTkyODM4ZDkzMzIxZDU4MGVlIGxlZ2FjeS10cnVuaworMzQ1NSA0ZDI5MmM3ODU3ZDQ3NGZhZTVlYzkwOWVkZDQzNGJjZWQwOGI4MzY0IGxlZ2FjeS10cnVuaworMzQ1NiA3OTcxZmVjYmYyOGU3ZTFlMDk4YTc5Nzk2NGE2ZGMwMDNmOWVjNDg2IGxlZ2FjeS10cnVuaworMzQ1NyA1MTdkMjllYmM4NDBkZTQ1YjNjOTQ1NjA5M2Q4NDJhMWIzMWMxM2JiIGxlZ2FjeS10cnVuaworMzQ1OCA1N2I4MGI5OGI4ZTUwNzUyY2E0NTc3MDQzZDg0N2FjZGNlYTkwOTVmIGxlZ2FjeS10cnVuaworMzQ1OSBhYzNjODBhYmJmNDMwMDM0OWM1ZTZlMzM4NTMwYjI5YWUwZmEzNjA0IGxlZ2FjeS10cnVuaworMzQ2MCA2NzI2MWM3OTJmNGMxNGZiY2IxM2ZmYjBiNTFhODM2YzJhZDUxMzBhIGxlZ2FjeS10cnVuaworMzQ2MSA0NzczZDVjM2I1YTQ2ZGUwZjZjZmRiYzZjMDNjMTRkMjdlOTQ4ODViIGxlZ2FjeS10cnVuaworMzQ2MiBjM2QwOWY3NmQ2YmY0MzhmOWM3YjEzZmM2YjExNmYwYmQ1ZWY4MzkxIGxlZ2FjeS10cnVuaworMzQ2MyA5MjM0Yzk2MWVjNDNjYTI4NTdlMzgxMDMyNjcwZGU5NDUyYTVjOTg0IGxlZ2FjeS10cnVuaworMzQ2NCBkZWE3NDQyYzVmODdjNmUxZDBhMDlhZWY1YjFiM2VhYTg3Mjg4NDc0IGxlZ2FjeS10cnVuaworMzQ2NSAwNGE3ZjliZjFlNjcyYzRmN2RlNTI3ZTg4OTA0NWU2MzNkMGQwN2FiIGxlZ2FjeS10cnVuaworMzQ2NiBjNjRhZjU2NzFjYzY5NWU2MmIzNjRkNDMyMDIyMWY5YThkOGY2ZTU0IGxlZ2FjeS10cnVuaworMzQ2NyAzOWM3NjZhNmVkNWY5ZGFiMjI5NjRlOTFkMTI1MDc4ZDgwZjQ1OTRhIGxlZ2FjeS10cnVuaworMzQ2OCBjZWY1MTRmOTk3NGM5ODNiZGZhZjFlNmZmNjI2NTViYzY5OWQ0MTFmIGxlZ2FjeS10cnVuaworMzQ2OSBiY2E3ODU1ZDhlMDkzZjA5ZjU1Y2IwYTBmMmI5MTBhYjY3ZmUzMmU0IGxlZ2FjeS10cnVuaworMzQ3MCAyMDkwNTVlNWU0NmE0MGQyMjZjZmY1YzQ2MjM2YzgwNWM5MTI2N2Y0IGxlZ2FjeS10cnVuaworMzQ3MSA2ZTM3YWYzZjI2MWMzOWI5MmZlNzIxZGFiNDQyMGI5Yzk3NDFmNTFjIGxlZ2FjeS10cnVuaworMzQ3MiA5OWQ5ZTdlOWYzNzY3ZTg5MTQwMGJkMzhiMDRiZTE1NWRhOGIyNTJjIGxlZ2FjeS10cnVuaworMzQ3MyBjZmY3YzQ4ZmE5ZTE1Y2VjNjgwNTlhNzU5MDdhYmI0NDJlZWIzZjViIGxlZ2FjeS10cnVuaworMzQ3NCAxZThiZDM1NGI2NzYxMTJkOGIzYTg0Yjg3MmQ3MjdkOWFhNjNlMDRlIGxlZ2FjeS10cnVuaworMzQ3NSAwMmMwM2FmYzUxM2U5NWYzMTc4ZTk3N2VlMjBmMzY1ODEwODM4Yzc5IGxlZ2FjeS10cnVuaworMzQ3NiA3NDdjZTdlMzYwODQ0YTMzZWMxYjJhZWJiZTg4YmE2NTQwZTBmMmFkIGxlZ2FjeS10cnVuaworMzQ3NyAwODMwY2YyYmUxZDJjNTkyN2NjMzNhZTQyZGY4ZGM2ZDk3NmU5NzY4IGxlZ2FjeS10cnVuaworMzQ3OCAyZjY5MWRjNTRiZmE2YTg4NTVhNjQyOTQ0ZWVkNzQ4YzYyOWVhOGQzIGxlZ2FjeS10cnVuaworMzQ3OSA2ZWUzODAzNDljODQ5MDIzMjk3N2Q1MWJlMjk4NGZjNTY3NDNkMTEwIGxlZ2FjeS10cnVuaworMzQ4MCA5MThiZWU5MGY3M2UxNTIyZTE3NjY0MTk4NDkxNWE4MmZmZGExZmI4IGxlZ2FjeS10cnVuaworMzQ4MSBhY2RjMGI5YTZjNzg0OGE2OTM3YWI3OWNmZjRkOTBhNTU4ZGQ4OWM1IGxlZ2FjeS10cnVuaworMzQ4MiAyZjNmMjkzZWY1ZjE1NTk3NjkwMDcwY2RlOTUxMWU5NDg4YjdkZTUxIGxlZ2FjeS10cnVuaworMzQ4MyBlYzMxMmI2NDdmY2JmYTg5OGZkZGE5NzQ5NGI3NjNjYzhjZDZiYzMwIGxlZ2FjeS10cnVuaworMzQ4NCA5MmU2YThjZjE0YmVlNjU1NjVlZjhhZDZlOWJiMTlmZDg3OGQ5MzUxIGxlZ2FjeS10cnVuaworMzQ4NSBjZDM5NzI2NmRjMWM4ZTFlMThkMDJmOGQ5ZmU5MzQyNTdlYjM2MDlkIGxlZ2FjeS10cnVuaworMzQ4NiA3ODc0MmIzZmRkNDRiYTkwZTI3YzNlOWUxYWM5ZTRmYmMyOTYxNTNkIHVubGFiZWxlZC0yLjE2LjIKKzM0ODcgOTA3YzM5OTZiMTVjMmM4NTU0YjA0MjFjM2MxOWU2OWJlZmUyNTQ4ZCBsZWdhY3ktdHJ1bmsKKzM0ODggYTgwNjc3Nzk4Zjg0MjA0YjFmODM1NjBjZjEwOGU2MTRiYWI5ODVhOCBsZWdhY3ktdHJ1bmsKKzM0ODkgZjNjOTA3ZWZlNWQ3MTAyMDJiZTY4ZjZkZDQ1YTU4YTJiODMyNmE4NiBsZWdhY3ktdHJ1bmsKKzM0OTAgZmU3NjU4NWM3NDhlOGVhM2Q4MmRhODY2Y2U2YjZlMmEwNjE5NjNjNiBsZWdhY3ktdHJ1bmsKKzM0OTEgNzE2YmU3NjVhNzliMmJjNmQzMmQ2MTNlZTM5MDk3MTUwYTdiYzZiZCBsZWdhY3ktdHJ1bmsKKzM0OTIgMjVkMWM5OTMyNTU4MjJhMDczNzZhNGI2NzIyYjZiZTg2NTYyMDhiZiBsZWdhY3ktdHJ1bmsKKzM0OTMgZTVkMzYzNTQwMTc5ZjllNmM5N2YxYThlZWYxYzFkMjhhZTc3ODk1NiBsZWdhY3ktdHJ1bmsKKzM0OTQgOGEzNTc0YTA3YjE4NWQ1YmMyY2QwZDM5OTM5OGNlYWNlNzRjYmE0ZSBsZWdhY3ktdHJ1bmsKKzM0OTUgZTJkZWNhOTgzMDA4MmI3MDM5Y2Q4NGI1N2M4MDFjMTRjOWRhM2RjOCBsZWdhY3ktdHJ1bmsKKzM0OTYgNTE5YzI1MDM5YzZhNDU4OGE3ZGRlY2YyYWFhMGFlMzhlNGU4MzBkOCBsZWdhY3ktdHJ1bmsKKzM0OTcgNDA5ZWE3NGZlYjIxN2MyNGM5NDRjNzNjNDE5ZmQzNjNhMjVjYTI3NiBsZWdhY3ktdHJ1bmsKKzM0OTggMDc5MDA4MzRjYzk3ZDFiOGRmMWMzN2E3ODFmYzRjMWM5YjgyNTI1YyBsZWdhY3ktdHJ1bmsKKzM0OTkgZTVmYjljZGJlMDUwN2JiMzFmNDYzYmUyYzRhMTA2NDI0NmEzN2ViZiBsZWdhY3ktdHJ1bmsKKzM0OTkgNzhhN2VkNjk1MzAyNWU3ZWNkZGU5NTg1MDk5YjAxYTZhZTQwYjc2YSBsZWdhY3ktdHJ1bmsKKzM1MDEgZjM4NDhmNzRiMjgyNzk5ZjM0YTAzOGQxYTI4ZGNhODhjN2NlNjg4ZSBsZWdhY3ktdHJ1bmsKKzM1MDIgNDE5MmUyNGVjNTYyZDFlMDliMzg4Y2VlNzJiODFiMjA3Y2RmODM5ZCBsZWdhY3ktdHJ1bmsKKzM1MDMgYzQ0NTQ1ZTU5NWExNWNjMGIyMTg2MTNiY2QxZWEyZGRiMGYzZDQzZiBsZWdhY3ktdHJ1bmsKKzM1MDQgZjhmNjRjYmQ5ZmI1YTE5YmIwMDY1MWI5ZjU0NzQ4M2FhYjkyOWM2MyBsZWdhY3ktdHJ1bmsKKzM1MDUgYWFiMzBiNzRjZjZhOGRmMjc2MTExZDc3OTRlNDM3NDQ1OTJkNTE5NyBsZWdhY3ktdHJ1bmsKKzM1MDYgZDIwN2JlZWRjODZkNjhiYmYzZDllZDlhYzJlNmQ0MjZiMzQ5MmVjMyBsZWdhY3ktdHJ1bmsKKzM1MDcgNjY4ODUzZDdiNjRiY2JhNDQwOTk2NDk4MzJiYzFiMDgxYWE3ZWI4OCBsZWdhY3ktdHJ1bmsKKzM1MDggMTNkMGZkZTQ4ODMyNjNiYzZkNTI1YWM2MzY4OWE1NThiZjIwNjMwMyBsZWdhY3ktdHJ1bmsKKzM1MDkgZjM3OTFjNGZiNzI0N2IwOGVkNjE2MWJkYjU4YTk2OGRkYzA2ZDExYyBsZWdhY3ktdHJ1bmsKKzM1MTAgZDBhNWMzMDBlYWFmNWVjM2MxMDFlODlmZjMxMjcxNGE0YzEzYmQwNiBsZWdhY3ktdHJ1bmsKKzM1MTEgMjc5OGQ4NjAzYmYwMjg3M2RlODA1MGVhYzVjOGQyNzM0MGU5ZWYwNSBsZWdhY3ktdHJ1bmsKKzM1MTIgZjQxNDMzYzk4YzVlYjAyZTg4Y2FlOTk5OGQ5M2MyYjg3YzkzOTRjNyBsZWdhY3ktdHJ1bmsKKzM1MTMgNWQwYjI3ODFlMjNiNDBhZjU3YWM4MTJjNWU1YjJmNGM0YWQ5NGYyMCBsZWdhY3ktdHJ1bmsKKzM1MTQgYTIyYTM1MGQzYTVkZDNjZDAyNGQ2OGNhY2QyNWYzYjkxNmM4NWJiYSBsZWdhY3ktdHJ1bmsKKzM1MTUgNWVmYTc2Y2ExN2YyZWQxMjhjNjgyMzMyNzA1OGM4YTM3YjljNDQzNSBsZWdhY3ktdHJ1bmsKKzM1MTYgYTNhMDI3YzQ5ZWIxM2MwNjgwZTMzZjExN2IxZTVkODMyNGRjNDIzNSBsZWdhY3ktdHJ1bmsKKzM1MTcgZDljYjU1ZWYzNGUyZTUwNGIxMGZlYTBkODQxNzkyMDVkNzg5MDJlOCBsZWdhY3ktdHJ1bmsKKzM1MTggZTE0OWM3N2QxNzNjYWFkYzAyZGZiN2I1ZjU0N2IyNGI3MjRmOTJlNiBsZWdhY3ktdHJ1bmsKKzM1MTkgNGQxYTE1ZmM0NzQ4ZDZkOTBkNGNlYmU1NjIxMGFmNGM0OGNiYTkwYiBsZWdhY3ktdHJ1bmsKKzM1MjAgYTYzNTVjODM1NzhkOGQzZThlZjk4ZTQ5ZTA4ZTYxZmE5NTZiOTQ0ZiBsZWdhY3ktdHJ1bmsKKzM1MjEgZmNjZDQxNWUyZWI4Y2QwYWE1YzFhYTNmYzE4NmUxY2ZhMzc4ODk1YSBsZWdhY3ktdHJ1bmsKKzM1MjIgMmI1NGNjYzg1MmU0MDRhNDE3MmJjN2VlY2M4OGVlMTAwOTVhOWI5YSBsZWdhY3ktdHJ1bmsKKzM1MjMgMDQzZGExOTMwMmVmMjQ0YmY1NzIxZjIxODZjYTI3OWJjYmNkOWEwNSBsZWdhY3ktdHJ1bmsKKzM1MjQgMmZhYzIwOWUxYzNmNTUyMjEyZDI5NmUxNTcyNTE1MjhlNDRkMzA0OCBsZWdhY3ktdHJ1bmsKKzM1MjUgM2UzM2NhNTRmYmRjMWMzMjYxZGQ4ZDY4MGRmMWQ1ZmEzZjA2YWQ3ZSBsZWdhY3ktdHJ1bmsKKzM1MjYgNWQ3NGE5ODczNTg5Njc0NTBkMTkyYmUwOGQyNTljZGFlOWRjMjAwMyBsZWdhY3ktdHJ1bmsKKzM1MjcgMTgwOGNhNWQ4ODgzMDk3YzcyYzZhOGE4OTE0MzA0MWMyMGVhMTNjMSBsZWdhY3ktdHJ1bmsKKzM1MjggN2NkNTMzY2YxOTRhOWRiZWFlOTBiODc2OGZmNWRkMmVlMzNiZjNhOCBsZWdhY3ktdHJ1bmsKKzM1MjkgNTYwNDA3ZWM2MzJiOWY2ZmNlYmY4OTc1NWYzODNkMWViNDcyZTRhYSBsZWdhY3ktdHJ1bmsKKzM1MzAgZTFjNDczZjkyOWM0NzI2NDdmMDIxMGZhNjhiZmM2OGE5MDUwMjMwZCBsZWdhY3ktdHJ1bmsKKzM1MzEgMTMyNjAyZDg1NGQ4YzQwZjRlNDkzZTlmYWE0NmY2MjdlYzY0MTEwNiBsZWdhY3ktdHJ1bmsKKzM1MzIgYTVmYzEwNDg0OWFhMjFmNjMyMWY1ZDk5N2UzYTM3ZmI2NWE3ZDlkMyBsZWdhY3ktdHJ1bmsKKzM1MzMgMjg3ZmMzMmMxZDljM2ZiMmYyMjFkY2IwNTZhMjUzOTI5YmUzMDdjYSBsZWdhY3ktdHJ1bmsKKzM1MzQgZWU0YTJmODkzMjU0ZGQ0MGUwMWMyN2RjYjYxYTUzOGQzOTM0NzBlMyBsZWdhY3ktdHJ1bmsKKzM1MzUgNGM4ZTVmY2IzMzAxNTlkZjM3OGYzN2I1ODMyODlmYWZhYTVkOWRhOSBsZWdhY3ktdHJ1bmsKKzM1MzYgODllMWU1ZDljY2JmMDNkOTQ4NTBmMjE2YzQxOWQ0YzE1OGM1NjU4NSBsZWdhY3ktdHJ1bmsKKzM1MzcgZjllNWEyODIzNjc3N2U1MGEzMmYxMGRiMTkzODkwYjE5YWY0MmNiOCBsZWdhY3ktdHJ1bmsKKzM1MzggZmFhZjM4NDNiOGJkNWQxYTZmYjdjMzM1N2EwZTQ4ODAzMGEwNjRlZCBsZWdhY3ktdHJ1bmsKKzM1MzkgZjdjNjA2MTAzZGQ1ZWQxZWVhM2U1NzMzZWVmMTc1NTYxMzEwMDhlNCBsZWdhY3ktdHJ1bmsKKzM1NDAgN2JlN2E3ZTBjNDY1ZTc2ZThkOTdlNTQ1OWQ1ZmU2MzhlY2Y1Y2ZlNSBsZWdhY3ktdHJ1bmsKKzM1NDEgODlkN2Q1ZTEzNmFkZGNlN2I1OGU3ODc1ZWUyOGM0ZjI2ZGRkM2ZmOSBsZWdhY3ktdHJ1bmsKKzM1NDIgZjNhMzI1NjYyZDM5YzYyYjA4Y2IwNDFiNGQzMDc3OTM1ODliNWE3OCBsZWdhY3ktdHJ1bmsKKzM1NDMgMTA1ZDMzMmMyNzdjNjUxOWExMjgzNmUyOWVmMzUxOWY5Yjg2Y2FhYSBsZWdhY3ktdHJ1bmsKKzM1NDQgMzU0M2NlODhhMzFlZDg1ZjJiMWRhNTJlMjk4MjMwMjRkYzU2MmEzNSBsZWdhY3ktdHJ1bmsKKzM1NDUgYjAzZDAwZTI0YzNjMWEwNTdmODNjNDU3ZTdmN2E2MjVkY2IzYzJmNSBsZWdhY3ktdHJ1bmsKKzM1NDYgNzEwYzZiMTNlODc1MDgzYTY0MmVkNGU0MmVmZTY4ZjkzOGE2ZDQxNCBsZWdhY3ktdHJ1bmsKKzM1NDcgYTRhYTgzMDEyYWYzYjIzZmFhZWMyYzA5YWEwYTZlOTUxNjc2OGIyYyBsZWdhY3ktdHJ1bmsKKzM1NDggYzAyYjNmZTBiMzNjMjU5ZWZjZGYxZjgyMzY5YWY2NDExODE1MGNhNSBsZWdhY3ktdHJ1bmsKKzM1NDkgYTBhMGM3NmY2ZWY2YThjYjU3ZThjZDc0MDdiMDAxZTM4OWVmYWUxZSBsZWdhY3ktdHJ1bmsKKzM1NTAgYWU0ZTkwZmE4YmNhNTIxODk0YjcwOGE5ZTA0ZDAwZTQ1NTQyMmIwMyBsZWdhY3ktdHJ1bmsKKzM1NTEgYjJjN2FhYmZhOTEzYjliYjJmOWYzMTc4NWIxZWY2NDlhMmY1Mjk0MyBsZWdhY3ktdHJ1bmsKKzM1NTIgMTU4ZjBkOWNkZDQwZjUzNWRhOGY1ODcxMjFhZTcxMzRlZDYwOGI1MCBsZWdhY3ktdHJ1bmsKKzM1NTMgNWEzMGE0ZTA1NmU3Y2MzN2Q3MmYxMGFkZTEyMzQwYzg0YTg4Mjk2NCBsZWdhY3ktdHJ1bmsKKzM1NTQgZjk5MmFjMmEzOGQ1YzdmM2ZjNWE0NzMwN2I2MGVkYjMzOGQ3MzNmNCBsZWdhY3ktdHJ1bmsKKzM1NTUgZGNlM2MzMGNkNzI3ODdhNzQzZGI3YTg3ZTQ2MTY5N2IyOTlmYmQ2NCBsZWdhY3ktdHJ1bmsKKzM1NTYgZTk5YzIyNDkwYmZiZDRlMTc1YWIwOTQ2ZTBkN2M5OTdmOGYzZWRkNyBsZWdhY3ktdHJ1bmsKKzM1NTcgY2ZmZThkNmIyZjA5YjdlZWQxODY3YmQ3MzkzMDVhNzZmNDA5MWNjZCBsZWdhY3ktdHJ1bmsKKzM1NTggN2MzMjQ1YzE4Njc3NGI4NDQ0NTQwYmVmNmQ1MzkzYTM2MDE5NmVkMyBsZWdhY3ktdHJ1bmsKKzM1NTkgMGZmZmY0MGQxM2ZmNDcwZTM5MWU4NzE5Y2QyNWFiYzUzZTM1NTRiMCBsZWdhY3ktdHJ1bmsKKzM1NjAgN2Q2YTJkOTUwZjEzYzc0MDc4NWM0ZmFmMjAzMzFiNTZhYTYxYmZmZiBsZWdhY3ktdHJ1bmsKKzM1NjEgOThmNTFmNjFjYjRiNzZhZmY3N2Q1ZDBiYzJlYWI1YTlkMzY5YmU0ZSBsZWdhY3ktdHJ1bmsKKzM1NjIgNDIyOTI3NWRlYzMyNjEwM2E4ZGI0ODY3Yzg3MzczNWIyNjBjNjRhZSB1bmxhYmVsZWQtMi4xMC4yCiszNTYzIGJlNjFlMDcyYTUwNWI5ZWNiMGY5N2Y3ZTFiMGQwOGE5ZmVlMWNkMmMgbGVnYWN5LXRydW5rCiszNTY0IDRhMjg2YjMwMGI1ZWZjYWYyODFmZGJlOGI1MzI2YjE5YWQ5OGZjYzggbGVnYWN5LXRydW5rCiszNTY1IDFjZTJjMGY1NjVlZjNlNmJhZjQ0NGM4MjhmZjcyOTIwOWJjOWQxM2IgbGVnYWN5LXRydW5rCiszNTY2IDFkODQxNTg3YWVkZWIwNzFhOWE1OGEyOWM4NzBhYzhlMTE4YWZmNzcgbGVnYWN5LXRydW5rCiszNTY3IGNjMTcyY2UwNTU2MWFmMTZhYTA1YjIxNWEwN2Q1MWYyY2JiY2M3ZDMgbGVnYWN5LXRydW5rCiszNTY4IGFhYzgyMzFhNzE1YzdjZTQ4NzdlYWU2ZmJjOTgxZWRiN2JjMzI3ZTYgbGVnYWN5LXRydW5rCiszNTY5IGNkNTk4OWE1OGJjZmUwMzIwZGRkMmIxNGM0NjlmN2MyYjVhNGM0OTEgbGVnYWN5LXRydW5rCiszNTcwIGFmNGUyNzFkMDdiMWRkMmVlNWE3MDZjZGJlYTZlYmViZjk0ZDgyZWQgbGVnYWN5LXRydW5rCiszNTcxIDYyNzg5MzNkMDJlMzhiYjhhYmRkYmM3NTQ2NzNmNzk2MTdkMWJmODggbGVnYWN5LXRydW5rCiszNTcyIGM4MTQ5Mzc4ODBjYzNjYzAwNjc2MDgyY2M4YTliNGE0ZTVlOWQ3OGMgbGVnYWN5LXRydW5rCiszNTczIDkwYzVlMmJiNGRhNTViZWRlNmU3ZDhkZTQ0ZTZhMmIwYmNkZTExY2QgbGVnYWN5LXRydW5rCiszNTc0IDQ3NDgyM2U1ZjdkYzEzYjk2ZDVmZDhlYjljODA5Y2NlOGFhOTA0NjcgbGVnYWN5LXRydW5rCiszNTc1IGE1OGMwNjFiNGY1NTUyNTE3N2Q2N2ExNTJlN2UwZjhmOTNmNGZlYTcgdW5sYWJlbGVkLTIuMS4yCiszNTc2IDJlMGE4YTNlZWY0YThmOTc1YjBjMTI2NzEzNTJkMTI1NzdkNjM2YmIgdW5sYWJlbGVkLTIuMS40CiszNTc3IGI5ZmNmYjk5YTNlNTRiNmY3NjYzNTA4ZDEwZTBkODA4NzgxYjlmN2MgbGVnYWN5LXRydW5rCiszNTc4IDE4ZGY2NzQ1MzlkYTU1MzA1ZjZkMjZjMmRkNDYwMzA2YTBmZjJjMzMgbGVnYWN5LXRydW5rCiszNTc5IGY1YjFkZGZkZGJhODMzYjMxYjZhYWY2MWQ4MTEzMDQ5ZjA0MjM0ODUgbGVnYWN5LXRydW5rCiszNTgwIDMxNTI3MmVjNGQ1YjYzZDVlZDJlNWY1ZjAzYzhmYTExZmZjZDYzMGIgbGVnYWN5LXRydW5rCiszNTgxIDE2OTFlYTVkOWQ0YjViMzQ0MTk3YTMzNmM3MzIxYzVlYTNiZTkyNjUgbGVnYWN5LXRydW5rCiszNTgyIDAwZjFlODg2NGRjY2RmZTYxNGQyNGIzZWMzNDQ1ZjNlNGFjYmM5MWQgbGVnYWN5LXRydW5rCiszNTgzIGM5MTRiMTBiZjJlZDc3NWMwMzJkNzRmNWFlNDVlMDQ3NjYwMGJhMjQgbGVnYWN5LXRydW5rCiszNTg0IDI0OTE3NzRlMzZhOTBjYmI1Y2ZlMjYzNDMyYjFhNzZkMmQzYWExMTkgdW5sYWJlbGVkLTIuMjUuMgorMzU4NSBmNTUwMzFkNTQ5Yjc5YTZiZWIwN2MzMGJlMWRmNTNmZTQ3MzQ0OWVjIHVubGFiZWxlZC0yLjI1LjQKKzM1ODYgZWQ1MjJjOTQ4ZDQyOGMzN2FlMGU5ZDU4ZTRjOWU5ODUwNmRjNzYxOSB1bmxhYmVsZWQtMi45LjIKKzM1ODcgY2FkZWI3OWMxMzJmNTUwMmNlZmY5MjMxMjAyMDc2NjBkOWIyNTcyYiB1bmxhYmVsZWQtMi45LjQKKzM1ODggMjg1MmVkYjRmZmZlMGVjMzc4OTVmMDMxNDEyM2UwODQ1ZjhlYzBjZCBsZWdhY3ktdHJ1bmsKKzM1ODkgMDY1NzA0MjlmMDYyZDMxNGQwYjg2ODIyZDFhM2NjZGE1MzQ2ZTIwZSBsZWdhY3ktdHJ1bmsKKzM1OTAgZDZmNmExY2I3ZDc5ZTliMTk4ZmMxNTgzYjI4NjljOWU5ZjQwMDgxNSBsZWdhY3ktdHJ1bmsKKzM1OTEgZjdlZGZhNmQwZGNiYTQ4NzJiZjQwODRmNmI1NzRkM2VhMTE4ZGQzNCBsZWdhY3ktdHJ1bmsKKzM1OTIgYjFiYjc0YTJiNTkzMGU5YjRmYzc4ZTliNTVmNjY5MTU5MjEyYWJkMCBsZWdhY3ktdHJ1bmsKKzM1OTMgMjA0MDAxZGRkY2MzMmUzOGUxMzY5OGQ4ZDJkZDU5NGNjNmQyNTg4YiBsZWdhY3ktdHJ1bmsKKzM1OTQgZDJmOThiZWVjODVjZjIyNGM4ODI5OGEwZGI2ZGU5NWQ3YzI5ZTQwNyBsZWdhY3ktdHJ1bmsKKzM1OTUgZmU3Mjk4ODEzZjE3MTRiNDdmYTJiOTMwNjcwNmZmMzVmODNhYTRkNyBsZWdhY3ktdHJ1bmsKKzM1OTYgOGE5MGM5YmJiZGYwYzlkNzFhODM0YzJmMzkxOWFjMDQwNTEyZGU3NSBsZWdhY3ktdHJ1bmsKKzM1OTcgMGIzMmVjOGEzZTIwODIxZTY0OGVlMWU1Y2E5MTM5MTg3ZDAwNmJjNyBsZWdhY3ktdHJ1bmsKKzM1OTggYTJmMmE4YmQ1NmY5YmZmMWE1MjFhNmNjNmVkOWQwNWYyMDQ3Yzc1MCBsZWdhY3ktdHJ1bmsKKzM1OTkgNzJiZGRmYWQzNTFhOWEyMjBkYjI0NTA0ZGFiYTBhNjhiYWQ4MjhmMSBsZWdhY3ktdHJ1bmsKKzM2MDAgYzg4N2ExZjMwNTI1NWQxYWJmYTZmZTZhZWZlYTY4ZjNlNmQ2ZDFlYyBsZWdhY3ktdHJ1bmsKKzM2MDEgODcwMWI5MzM4M2FiMWRkZTkxOGViN2M2Y2Q2ZjAyZTUzYjk1YjkwNSBsZWdhY3ktdHJ1bmsKKzM2MDIgZjdhNzUyZmI3YjczN2QxZjBlOWNiNDVhOGIwMjEyNzZiODk2NjIyYiBsZWdhY3ktdHJ1bmsKKzM2MDMgYWRhNTZiMDc2NWMxNjcyZDlkZWQ4MDdmNjMxNjVjNzc4NWI1NDUwNSBsZWdhY3ktdHJ1bmsKKzM2MDQgOWM3MDdkOGNmMGM4ZDE2ZTZkODY5ZWZiNjNhNmU4Mzg4MWRlZjc3YyBsZWdhY3ktdHJ1bmsKKzM2MDUgZDcxNjhjYzJiZTA3ODMzZDBhMTVhMDZmYTk0NzQ2YzU5MzNmMTkwMiBsZWdhY3ktdHJ1bmsKKzM2MDYgNjQwYzM2YjY0ZGVhMWNmNzJmZWU0MWY1MTE5YzA2ZDUzNDg0ODMxMSBsZWdhY3ktdHJ1bmsKKzM2MDcgNWNhZTc2NTMxNzFiNDRhMTlkNjVhYjYxMzhmNzE4MTU0MWNmNjdjNCBsZWdhY3ktdHJ1bmsKKzM2MDggNDZjMjE3MzM3YmRlNGY1NDk5ODkwMTRlMmZhZmE3ODY0NmQxM2ExMiBsZWdhY3ktdHJ1bmsKKzM2MDkgNTYwZWM3MDMwODE3N2I0MzkxYWZhMTcxZDYwNGRmMzFlN2UzNDQwYyBsZWdhY3ktdHJ1bmsKKzM2MTAgODlhNWNlMTlkMTNhZjIwOGVhMTJmNWU2ZTAwMWRmMGMyNGE3YTVkYyBsZWdhY3ktdHJ1bmsKKzM2MTEgZTQ5OTExNmQ0NWU0OTE5ZGM0NmQ3NTJiMzg0OTY4MmRlODdkZDI1YiBsZWdhY3ktdHJ1bmsKKzM2MTIgZDdlMzg0MmIyZTdiMTBmZmZiMDRmNDFlYmNlYWM3MDE1MDEyOTE2ZiBsZWdhY3ktdHJ1bmsKKzM2MTMgZTQ2MzIyYTMxZjYyMmJhMWM5ZDA0NDliZmQwZjdkYTNhMWRkNjA4YyBsZWdhY3ktdHJ1bmsKKzM2MTQgZDgyYzJiYTRmODE4N2I1MDBiZTZkZDYwNGRjN2VlM2ZjMDhlNmIwZiBsZWdhY3ktdHJ1bmsKKzM2MTUgY2QzODI0NTZjNTcyYmJhYTIwNTUzZTliMTExMjRhM2VkMTZlNzBjNSBsZWdhY3ktdHJ1bmsKKzM2MTYgMjhjY2VhYmY4Y2NlYzY4MmFjNjczMThjMjNjZDg4NzNkMWY3OGIzZiB1bmxhYmVsZWQtMi4zNi4yCiszNjE3IGNiZjI4ZDY1NDY5ZjUwNjI0OGIzMmFjNGMyMmI4MzQxNmQ2MTNhNzggdW5sYWJlbGVkLTIuMzYuNAorMzYxOCA0NzQ5Yzk1NzQ2NmI3N2YxMDgwMTk5ZWM2ZDk3MGYzODY3Y2FjYTE3IGxlZ2FjeS10cnVuaworMzYxOSAyZWMwOGE5ZDAzMjU1MjEwNmNiYmJlYTZjZDBhMDE4YmRhZjc5MDIwIGxlZ2FjeS10cnVuaworMzYyMCBmMmQwNDA1NGM5MzQ2YTM2NDVmNmQxNTNmZmNjODVkM2ZhNTJjNjZkIGxlZ2FjeS10cnVuaworMzYyMSA5MTMzODA2N2Y3NTAxZTNlMWQ5ZDYzODg0NWJhZmJhOWY3OTZhY2U4IGxlZ2FjeS10cnVuaworMzYyMiA5ZmIwZjFhZmIzNGNkM2E4N2ZjMzQwNGIwMDNiNGI2ZTM5OWUyZTUzIGxlZ2FjeS10cnVuaworMzYyMyA0ZmY2MDhjNGNhY2FlMGMxNDc0YjQ5ZjQ4YjQ1YjM5ZDczZjM5YzI1IGxlZ2FjeS10cnVuaworMzYyNCAzMjhmNDQ2ZDIwMTY3NjA2ZjhkMjYyYzA0MzRhMTA4YjU1YWNjMjQ5IGxlZ2FjeS10cnVuaworMzYyNSBhZTkzZWM0ZGQ1NTYzNjliYWZhYjM5YzRlMGE4NjUzZGM3NzQxNGYyIGxlZ2FjeS10cnVuaworMzYyNiBkOGNhMGU5MTNjNDQ0MmE2YjRjZDYzMjIzMjY4OTVkNzY0NGE5ZGM4IGxlZ2FjeS10cnVuaworMzYyNyBhODkzMmE0Yjk2MjRkOWJiZDI1NTQ5ZDJhNTI2YzEwNTk5OWEzY2I2IGxlZ2FjeS10cnVuaworMzYyOCBhNWE0NjU0YzMzYmU1YjM5Nzc2MTk0MDM2MTk2ZTMzMmU0OTlhZTg4IGxlZ2FjeS10cnVuaworMzYyOSBkNzczYTVmODk0MjY4NzlkYjJmZWJkMjU5ODkxMjMzMWNkOGJmMzNlIGxlZ2FjeS10cnVuaworMzYzMCAzYTVmMmYxMTBmNzA2MmI5ZTI2NTEyY2ZlZDQ5YWMwMmFlNjI0Yjg2IGxlZ2FjeS10cnVuaworMzYzMiA1MDEwMWViNjMxMWIwNzdjOWQ5NjczMzY5NDI0MmE0MWY4N2Y4ODZlIGFscGhhMTAwCiszNjMzIGIxOGViMmY0YWYwY2YzYzU5MmVjMjNjNmZmMzdjNjhlOTY1MDgxY2UgYWxwaGExMDAKKzM2MzQgMWNlYTlkODBhMmJjMWNlNGIxZTFmNjA4ZmQyNmQzMDA1ZGNiZjRmNCBhbHBoYTEwMAorMzYzNSBkOWQyMTM4MmM3M2I5MmMxODFhMDJjYTNhMDQyMDk0YWYyMzNhMzkzIGFscGhhMTAwCiszNjM2IDViOTcwMDQ3YTcyMmMxNmUxMjZmNzJlMDVmNTFjYTRkZDI5NTU1YTggbGVnYWN5LXRydW5rCiszNjM2IGVmNzNkNDBhODI3OTUxYzlkYTdhMzJjYzhkYmUzODYwMGZmZWM3ZGIgYWxwaGExMDAKKzM2MzcgMjkyYzVlNzkyNjRkZjI2NjgyNTZjNjllNGU4NGJlOWQwNWY5NjFmYyBhbHBoYTEwMAorMzYzNyBkOGNkYWM4ZmRjNzQ1MGJlMWJlMTYyMjg2NTQ5N2Q0YWEwYjJkY2EwIHVubGFiZWxlZC0yLjI1LjIKKzM2MzcgOGIwOGEzNjY3NmQ0ZWRhNDdlMWRhNzY5NmU0YjIyODEyMzE5M2YzYiB1bmxhYmVsZWQtMi4zNi4yCiszNjM3IDE5ZmEwMWM5ZmFmMzk3NjM3OGY2NTRiYjRmYTdjZDNkYjI4ODJhNGQgbGVnYWN5LXRydW5rCiszNjM3IDhlZWYyMTE1NTVjNmQzNWY0ZDI5YzlkYzc3NGEyNDliZDFjNzRjZDAgdW5sYWJlbGVkLTEuNS4yCiszNjM3IDBjYTY1M2Q2NzdkMzQ5NzQzYzI5YzFhZTIyMTJhOGRjYjU3MjkzY2QgdW5sYWJlbGVkLTIuOS4yCiszNjM4IDYwN2IxOWFlMWUxM2EzMjIwNTA2ZTg1YzI4ODdmZjc0OWM2NGY1NTAgdW5sYWJlbGVkLTEuMi4yCiszNjM5IDMxZjFiOTg3Y2RmODJjYmNiMzhmNTAxMDhhMGFmMDgzNzlkODMxZjMgYWxwaGExMDAKKzM2NDAgZDk2MTk5YmU3NGU2YTQ0OGNjOTU0MGJkOTZiOWYxZTRjOWY0MTVkNiBhbHBoYTEwMAorMzY0MSBmOGQzZmY2NjM5YjU5NjcwZGMxMTMyZDllOGRjZTVkOGNjOTVmZWM5IGFscGhhMTAwCiszNjQyIGE3OWIwMjQzOTdmODdjNzE4YTJhMzFiZGYyM2RkOTZkZTAyOGViNzkgYWxwaGExMDAKKzM2NDMgNWNlNDA0NjJhZTk5YWVkOTRlYjUwZjgxOGMyYzRlY2IyNzcyOTIwYSBhbHBoYTEwMAorMzY0MyBiODU4MGUzMjA0NmMxYjY5MzljZWFiOGU5MzkyZWVlODgwZjJlNGFlIHVubGFiZWxlZC0yLjEuMgorMzY0NCAwOGQ0ZGE0OGRjZDU4ODc0MjA4MTI3MTI0MjBmZTE3ZjMwMTc1NzJkIGxlZ2FjeS10cnVuaworMzY0NSBkOGJhM2NmOWRhYmNhOTc4ZmY1NjVmMzYxOTAwNzE4YTViYzg3NDQ4IGxlZ2FjeS10cnVuaworMzY0NiAxZjhjNjQ4NDkyMDM0ODAwMTU3NTVkYjUzODlkZDI0NWJkZWJiMmI3IHVubGFiZWxlZC0xLjMuMgorMzY0NyA2YzA2NzY5YTg4NjliMGRkZmFjNzRhOTgwZTg2OTU1MjU4OTRiNDZiIGxlZ2FjeS10cnVuaworMzY0OCAyNWMxMTJiM2M5NTdlZTE5MTUyNWFjNTQ3ZDgwN2Q5ZDAwNzliNTg4IGxlZ2FjeS10cnVuaworMzY0OSAxMDlkMzlkZWMxMjg4NmJlM2MwY2NkZDdlYjYzZTQ5ZWRhYWZjM2NiIGxlZ2FjeS10cnVuaworMzY1MCA1ZjNkNmU0YjU1MDNkNTFlYTFjYjIyNDJhZDcxN2VmNTcxNzBlOTE2IGxlZ2FjeS10cnVuaworMzY1MSAzMDU3NDhlYmFiNDM3MjQ1MjViYTRkZjllN2YwYWQzZmI5NjE5NWE5IGxlZ2FjeS10cnVuaworMzY1MiA0ZGM3YjE1YjZiOTcwZGFhZGUxZTM3OGU3MzNlN2Y4YzJlYmQ2MGQwIGxlZ2FjeS10cnVuaworMzY1MyBjOGE5NWMxNzBlMWVkODczNDA3MzQ1YjkxYTVhNmM4NDMzMzg5NGYwIGxlZ2FjeS10cnVuaworMzY1NCBlZDM2YjNlOWNkNzg2NWFjNmI1MTFlMGQ0OGVlNTBhMDVlMmVkZDU5IGxlZ2FjeS10cnVuaworMzY1NSA2M2ViNmM3NTA5Mjc1N2QyMDA0MDA3OTcyYTFlNDIwOTFhMDZlZDQxIGFscGhhMTAwCiszNjU2IDE5Yzk4ZjIwYTliODNhMzFjYjQ4OWJjYWNiMTIyODdhMmYxODlhNzMgbGVnYWN5LXRydW5rCiszNjU2IDA4Y2Q4Yjk2YjZiZmMyNzhiNjZlZDQxMWQzYjlkN2I2MzRiODk5MWYgYWxwaGExMDAKKzM2NTcgNmJjZTMzZDdmMGQxMTJmNGRkYjM5NmVlOTUxMWFmNjc2OTIzMTIxNyBsZWdhY3ktdHJ1bmsKKzM2NTcgZjUzMzZkODZmNThiOGQ5YTRlMDM0ZmQ0YmNlMWQwYTNmZmNkNGRhZCBhbHBoYTEwMAorMzY1OCAzMDU5MjE4ZjYzMGJkOGVjMGYyNmIxMjJlZTM4YmU3NTZlYzc5MWE2IGxlZ2FjeS10cnVuaworMzY1OSA3NzM4Y2U5NWJhNGRjYTljZDhlYjVlY2QzYTJiY2RlMGFlZjA1ZTU0IHVubGFiZWxlZC0xLjkuMgorMzY1OSA4MzhhYTE0MDZlZWFlZjgzMjE2ZTA0NDkwYmRiZmJhMzFhNjEyMTFjIGFscGhhMTAwCiszNjU5IDI0MzBhODYwMmE2NWQxMzY5NTM2NmFjY2VjZjk2NDlkNzU0YTJiOGUgdW5sYWJlbGVkLTIuMTYuMgorMzY1OSBiNGY4MTVmM2NmM2UxMDhmYzk3Y2YwZjI4Yjg3ZmFiYzM4NTBlNjEyIHVubGFiZWxlZC0yLjI1LjQKKzM2NTkgZDAxODc2NThjZjBiM2JiNmY0NDljZGMyZDhiMGUxZDlkOTE4NmE1MCB1bmxhYmVsZWQtMi4xLjQKKzM2NTkgNjEyYzc2YWFjM2FhODllODZmNWU0ZWNjZjk4M2IzNGNlZDBhMjk3MSB1bmxhYmVsZWQtMi4zNi40CiszNjU5IDMxM2Q5YjkzMDk0MDllZGRkNjJiOTc4NGU3MDZjZDQ3NGZjY2EzMDQgdW5sYWJlbGVkLTIuMTAuMgorMzY1OSA4ZGMyY2YzMTQ1YjNiYmJhNTNhN2JkYzVkMWZlM2M2ZWI5ODM5NjgzIHVubGFiZWxlZC0yLjkuNAorMzY1OSA1MWVlZmMwNTRhZmY4YmEzYmUxOGVkZWNjZDkyN2IxMjEwMmQxOTZiIHVubGFiZWxlZC0xLjUuNAorMzY1OSBhZjY2N2M2ZDIwNzIyMTExOTRkY2M0OWNlY2NlYWYxZWJiZDFkZTc2IHVubGFiZWxlZC0yLjMuMgorMzY2MCBkNDcwNWQ3MDY2MzI5MjQ4OTAwY2Y5YzYyNTcxYTIyMDIyYTdkNmQ3IGxlZ2FjeS10cnVuaworMzY2MCAxZGNhMzNlYjJkN2E1MzdkZjE0YWIzODM1Njk4ODNmNTVkZTk5NzVkIHVubGFiZWxlZC0xLjIuMgorMzY2MCA4ZjQ0ZTQzMTA0MTRiNmQ5NTc4NWE5ZmUzNzk1NjMxNDJhYmFmN2IxIHVubGFiZWxlZC0xLjMuMgorMzY2MSBkY2NlZjFjYmRhNWEwNmRjOGYxNzlhZjdjOWRkNzc3MjIyN2FlNjlmIGFscGhhMTAwCiszNjYyIDJlYzk2MTQwYTM2YjQ4ODM0NWEzYzFhMWNlOGZiZTQwYzNiM2IyNjUgbGVnYWN5LXRydW5rCiszNjYyIDRhYTkxZmQ2OTcxNTQ3OTZjYTFlZDFhODVhNTZjYzU5Y2IzZDNmODYgYWxwaGExMDAKKzM2NjMgYzc1MWNiZWVlNjg4MmZiMzA0NmNiYTE2Njk5MDZhOTVmMzZhNTcyOCBsZWdhY3ktdHJ1bmsKKzM2NjQgMjM1NjFkYzdiMTVmNWU4MzIwMGFhNWZjMDQ1YWM0ZDExY2FkOGU5YSBhbHBoYTEwMAorMzY2NSBlNTYwYjMzNDI0MDViMzI3N2I0ZGZkYzZiMDAzODAyMjc3ZDFlZTBmIGFscGhhMTAwCiszNjY2IDBlYjBlZmM1MWQ5YjM3YzQ4ZmE2YzM5NDMzYjdhZTI4ZTI0NjhlN2IgYWxwaGExMDAKKzM2NjcgYzMyZTEwMjA0NjhkZmY4NDI5MTU3OWNhOWRjNTljMWFiNjc4MWVmZiBhbHBoYTEwMAorMzY2OCBlMjYzYTcyYTc2ZmU5ZDZhMWFjMDFlMjMzYjQ4NTI0Mjc3Njc4OWVlIGFscGhhMTAwCiszNjY5IDkzZDEyOTcxNzhjYmU3ODVmMGIyNTUxMjFhYWIyY2VjZjdlYTIxNDggbGVnYWN5LXRydW5rCiszNjcwIDk4YzU1OWZkNmUyYTkyYTRlNWMwOWVhNmIzMTdlMjliMDJkZTk2MzIgYWxwaGExMDAKKzM2NzEgY2JhMTA5NmRhNTUzMTFkZDYyYjY5YzBiYmI4MDI3MGEwYzE4OTlmYyBhbHBoYTEwMAorMzY3MiAyMDY0YjE2NzA5ZjJjZTVmOTBmNmY4NGI4NGVlMDUxYmIxZWM1MGI2IGxlZ2FjeS10cnVuaworMzY3MiAzNDVkNTdiZWMyNjlkN2JmZDZmMjZlNzI1MTU2OWNhMmNkM2NmYjUzIGFscGhhMTAwCiszNjczIGY4NmY2NTFjNzA3ZjQxMGIwMjkwMWY5OGU1ZTQ3YmU1Nzc1YjE5OWQgYWxwaGExMDAKKzM2NzQgMmNiMDc2YWU4OTI3MjE3OTEwMWU2YTFlYjNmMzJlNzBjYTg2N2ZlNSBsZWdhY3ktdHJ1bmsKKzM2NzQgZWJmNzI4ODAzNTVmMTgyNjNkMWY4NzFkNWQwNDMzMmNkMTcxMTZkZSBhbHBoYTEwMAorMzY3NSAzZmU3NTgyYjk2MzZkZjJkNDNjNDc5NGNlZjFjNmFlYjZkYmFkZTI1IGFscGhhMTAwCiszNjc2IDQ4MTQxZTY4YjM2OTgzMjJmYzAzN2QxNDQzZDgxODU0YTEwN2Y0MDUgbGVnYWN5LXRydW5rCiszNjc3IGQ4MzY2NDU4ZDEwNjZkMWMwNGEzMDJhODcxYjQ4ODk1MjEwNTMzMDUgYWxwaGExMDAKKzM2NzggMmJlODA0OTY2MTQ3Njk4YjQxNDdhOTRmZWRlYWJiYTA5OGZiNzgwMyB1bmxhYmVsZWQtMS4xLjIKKzM2NzkgZjJmMTYzYzA5OTU5YjNlNzUyMjY3MTYzY2FkMjc4MzIyYTk0Yzk5NSBsZWdhY3ktdHJ1bmsKKzM2NzkgYjY2YzZlMmE2ZTA2ZmEzNDJlMDQ4YWQwMjM2MmQ0ZmE4ZTE4ZGEzMiB1bmxhYmVsZWQtMS4xLjIKKzM2NzkgZmVjMmNmOGQ2ZTc3OTk5NDliMDZkMzMxMDJmZTI2ZDllNmQ3Nzc0NiBhbHBoYTEwMAorMzY4MCA4NzA3NTFmYjA5ZWJmZDU5MzA5Mjg1OTJmNThiNTlhMmE5OTIzNTgzIGFscGhhMTAwCiszNjgxIDBkZWY5NGY4MGIzODQ5NzQ4NjgzM2Q5YWFmNzA5OWZiMmY1Y2NiNDkgYWxwaGExMDAKKzM2ODIgMjRkNjU2NTNlMmFjOWQ0NDYyY2MzODQwMjIwMDBhNjE5Y2FkYmUxNyBsZWdhY3ktdHJ1bmsKKzM2ODIgMWM0ZTJkNjIwYjE2MzgyNjEyOTdiNWZiYzNiODYxNDJkODA2NTk3OSBhbHBoYTEwMAorMzY4MyBkMDNjZWE2YzA3OTVkNGQ5ODZjNzczN2Y2NDRjMzI2OWEzZTU1MGRiIGxlZ2FjeS10cnVuaworMzY4MyA0Mzg1MzNiMzQxYTZkNTY5OWMwMzVlNjU1ZGJhMDI5YWFkOTdiNGU2IGFscGhhMTAwCiszNjg0IGUzMzc2MjRjM2VhMzcwNTM1NDAxZTNiOGEzMmE5MTdmNWUzY2QzOWEgYWxwaGExMDAKKzM2ODUgM2Q1ZDRjOWVkMTlkZDg2OTVlOWY1NDdkY2Q2YzBiZDQxYzFlZGI2ZSBhbHBoYTEwMAorMzY4NiBiODBmMWRjOTZjMWE1NmIzYzQzYjQwNzlmNzg3MzAwM2YzZGM3M2U5IGxlZ2FjeS10cnVuaworMzY4NyBlYWIwMTk2YThkODM4ZTcyYzljYzA0Zjg5NjViYjE1Mjc0YjkzMWYzIGxlZ2FjeS10cnVuaworMzY4OCBiNWIxZjM4YmVmYTQ4ZGEwYTg2NjFkNGJhZDE4YThjOTczZmNiZTM3IGxlZ2FjeS10cnVuaworMzY4OSA1NTBlMjYwNTk1OGIxNmU2NDE1NjU3NzdjMTA5ZjM1ZGFhYmRjYTM2IGxlZ2FjeS10cnVuaworMzY5MCAyZGRlYThlNmRkMjBiMGZiN2JlZjMwMjIyZWEzYTA2YWVjNzQyNzk5IGxlZ2FjeS10cnVuaworMzY5MCAzNTU5YjA5MDY3MGVlYzlmZDFiNjk3YTlmOTBmMTE3OTA5NGY1NjUwIGFscGhhMTAwCiszNjkxIDYxYTcyM2ZhMjUzOGM3NTVlNGY1N2E1MDQzZDE1NmEyYTczMTMzYTAgYWxwaGExMDAKKzM2OTIgOWYzZTJlOTMxYjRiOTNmZDViNmVkNGVjODM4M2E1YzhlMjIzZTcxMiBhbHBoYTEwMAorMzY5MyA1NzgxYWFmOWNjZDM1ZjcxZDAwOTBjNWQ4MjRhMzVmNjhhYjk4YjdhIGFscGhhMTAwCiszNjk0IDUwMTlkMDNkNzE5MjBiOTE2ZDI2NjU0OTY3YzZkNjcxZTJiYTI1MDkgYWxwaGExMDAKKzM2OTUgMjI0YzZiZDkyY2ViNDU0MGQ3NGZlMjMwOTRmMjM0ODg5MWQxNjIyMCBhbHBoYTEwMAorMzY5NiA4ZDZkODUzNTlmYTNiOWNkZDEwYzhhYWJkYTQ2OTU3MmJmZjMxNTk2IGxlZ2FjeS10cnVuaworMzY5NyBlNWZhODk3OWI5ZTY2ODI0MTIwZTk3NjkyNzZmNGVkZmM0ZDAyNTVmIGFscGhhMTAwCiszNjk4IDBhNmJlZTRiNmIxNzUxOGJlZmY5MGUxYjQwMzE3ZTMxZjc5YjNlNGUgYWxwaGExMDAKKzM2OTkgMmFlMDJmMGQ5ZTZiMGE2ZDQwODdkY2RhYmJhOTdkNDkwNzNjMGM5NyBhbHBoYTEwMAorMzcwMCAyZDRiZDhjYzQwNDIwMGZhNzI1NWNiZTVhMGM3NTA2NmIyMmM2OGM5IGFscGhhMTAwCiszNzAxIDRmODk2MGM3ODE0MWRiYzM3NDAyN2M1ZTg4YjdmYWI0NGY4NWEwZTAgYWxwaGExMDAKKzM3MDIgNzU4NzE3Zjg1MGYyYWEzN2U1OTM2MzYwZDNkNDNlZTZjZTQxMjMwYyBhbHBoYTEwMAorMzcwMyAwNTAxNGUwZDMzZWM1ODE2NDVkYWQwNGVjNGIxOTM4MGJlZjhmNGQ3IGFscGhhMTAwCiszNzA0IDc2YmM2ZDc0ODg5MGQ4N2E5OTA0NmZhNTZlMDE2MzAzNTZhNTMyMWQgbGVnYWN5LXRydW5rCiszNzA1IGU1M2VkNjc0NTlmNTZkNzM0NmExZTJiM2ZkOTk3M2VhOGJkODAzNjcgYWxwaGExMDAKKzM3MDYgMGM4YjE4MTJmMGI2OWQ5MWUzOGIwN2VjMzgwNWE5NjZmZDVlMzg0YiBhbHBoYTEwMAorMzcwNyAxMGFkOGJlZjlmNDNkYjc1ZTk4YWFkYTQxNGRmZjhkZTdiZWM1NzhmIGFscGhhMTAwCiszNzA4IGE5MDkxYzQ5OGIxMDFlNTgyMzUyNGM4ZmZkMzY1MzU0MmIxYjAyMjQgYWxwaGExMDAKKzM3MDkgNjI3YmM0MjJhOTAyODY4MWYwZWViZjMxOWVmYTE2YmE2NDE2NmQ0YyBsZWdhY3ktdHJ1bmsKKzM3MDkgOGIzYTcyN2RjNzFiM2FjM2U5OWQwM2I3YjRjZGY1YWIzMTAxYWNlMCBhbHBoYTEwMAorMzcxMCAyNzJlMmM2NGI3NGRiYmI4OTg1M2NiMTU0MmNhNWQ0OTM0NDMwNjQzIGFscGhhMTAwCiszNzExIDZkZmI4NGFkZmU0MzExOWE5YTdlMTIxYzA4Y2IwYmM3NjZkNmYwODEgYWxwaGExMDAKKzM3MTIgNmI2MzAwY2M0NjRlNWE0YmMxNjcwYjdhNzI1OWVhYWEwZDg1YmQ4ZCBhbHBoYTEwMAorMzcxMyA1MGZhYjIzM2Y0MDQyMTMwMmE0ZTJjMjBjMDM5NjZmNGU4M2NmYmYyIGFscGhhMTAwCiszNzE0IDNkMTljYTQwZWI4MmRmZDJlOGY1YWQyZDZhOTViOTY5MGZlN2YzZmIgbGVnYWN5LXRydW5rCiszNzE0IDkyNWM5NTI4MzBjZTI2ZWJiYTY4YjI0YjMyOTJkY2Y4MWMzZDM1N2EgdW5sYWJlbGVkLTEuMS4yCiszNzE0IDYyN2Q2NDRiYzZjMTc3ZjlhNmVmNDk1NTNjNDIzNzVkYzljMDYzMDYgYWxwaGExMDAKKzM3MTUgOTYzN2MwNDk2MTdkMzM3NmQ0ZWU1MTc3ZDg5MWY2MGUyMzZiYzE3NSBsZWdhY3ktdHJ1bmsKKzM3MTYgZWQ3NTk5MjE3N2U4MzE3MTliMDY4ZGM2ZWY5OGMwOWU1YWVlYWRlZSBsZWdhY3ktdHJ1bmsKKzM3MTcgMjk5MjdmMDM4NmE2OWU4M2U5YWMyMmYwZjVhZmM4OTNiNTRiZDk2MCBhbHBoYTEwMAorMzcxOCBjNjJhNmRhN2ZlYWMzZDdhNTE3OWRkMTM5MDQwYjlhZTIxOTkzNDAwIGxlZ2FjeS10cnVuaworMzcxOSBhNTI1NjA2MWYzYTAwZjc2YWUyNGM1MTgxZTI2MDgwMWVkNTUzZTNhIGFscGhhMTAwCiszNzIwIDVmZDU1YTZhYzc2ZTgzN2MzMDA5ODU2YTMzNjY2YTU3MzI2MDRmOWQgbGVnYWN5LXRydW5rCiszNzIwIDMyODY1Yzg5Y2YxMmU2M2Q4NDQ0NWQ4NzBjN2QyMjY0MDA0ODY2ZTAgYWxwaGExMDAKKzM3MjEgZTE4MzUwMmZiNWJjNmY1YzNhNjM0NmFlYzA4YTU5MGY5ZmU3MjljMSBsZWdhY3ktdHJ1bmsKKzM3MjEgZmRiZDM5NTRmZWYwMGI0NDZhNDExNzhhNWY3NjIwY2MwNTYxYzc1NiBhbHBoYTEwMAorMzcyMiA1ZTkyYjEzMmU3MGZhMzJiN2JhMWQ0MTY0ZWE1ZWQ3NzcyMDIzMjFmIGFscGhhMTAwCiszNzIzIGQwYmIwN2Q0YzZmZWI4ZDJiMzBhZDQwOGZlOTU4YTAzYTBlNGMyMWMgYWxwaGExMDAKKzM3MjQgNzQ1M2UyYmE1MzYyYTQ0MzIxNmVhOThlYjZmMDA4MTdiOGFkZWI0NiBsZWdhY3ktdHJ1bmsKKzM3MjQgYWE0NzJlOTE3ZjZjMjMzOWY0NDAxNDgxODRhOWY0MmRmNTRiZTM3MSBhbHBoYTEwMAorMzcyNSA4NzcwNzNiOWY4YzMyNTRhODMyNTBiMjU2NGVmYzY1YzlmMWFiYWFiIGxlZ2FjeS10cnVuaworMzcyNiBlNGVmMWIxN2RhM2RiYzViOWJjMjFmMWEwYzZhMDI3ZDZiYTQ1MzFhIGFscGhhMTAwCiszNzI3IGNjMzExOTE2NGQ1YzJmMzY1ZWM3MjA2Yzk5NDM1NjU1MzI5ZjViYTUgbGVnYWN5LXRydW5rCiszNzI3IGFiYzJmOTgxNGNjOTY4NTVlYWVjZjA4NWZlNmYxMDhhM2VhY2UxZjUgYWxwaGExMDAKKzM3MjggOTQ0Y2M3YzY0ZTdjZGQ5NjEwNTczMGQwYzFkYTU5OWNmYjUwYTc5YSBhbHBoYTEwMAorMzcyOSA5ZjI4OGNiNTZhYjUxZjdhYTQ4ZjRkMzdmNjc4NGI1MWY4N2U3N2Q3IGFscGhhMTAwCiszNzMwIGE2ZWJiNjhkYjM0ZWI1MTYxZmQzMWY5NTY4ZDFjZWNkZjNkYTBlNzEgbGVnYWN5LXRydW5rCiszNzMwIDc3ZTBlYTYwNzk2YWU0ODRiY2RhNmVmOTYwMzJkMDJlMTEyMWM1ZWQgYWxwaGExMDAKKzM3MzEgYTc1ZjcwY2ExYmUwYTY0YzNlNzE5MTU5ZDkzZDVkYmEwM2ZmYTM2MiBsZWdhY3ktdHJ1bmsKKzM3MzIgZjUyMGI5YzdhZTZmNjVkYjEwN2E4MGM4Y2VjMTM2ODRlZTY2YzFlNCBsZWdhY3ktdHJ1bmsKKzM3MzMgNTY4YzYwNmEwZTMxMWI2NTQ3OWQ2YzFhYjhhN2IwOGI4MDA1ZmE0MSBhbHBoYTEwMAorMzczNCAxZjdkYWQ1NzZhODUxZDFiMWY2Y2FkMjJiYTI2N2RkNjJlN2I1NjZiIGxlZ2FjeS10cnVuaworMzczNCAyMDRiN2U3OTNjMTViNGJkMWQ0MGFkZTU2NTZhNWVkZmVkYWRjYWU3IGFscGhhMTAwCiszNzM1IDc4M2VmMzYxZjM5NTE1YThhZWY1NTY5NTgzM2UzYWM0MTA5ZTM3YWEgbGVnYWN5LXRydW5rCiszNzM2IDg5NjVlZjRlYjM5OWFjNDc2ZGNiZmViYTdiYTQzMWFhNWQ5YTZlZWEgbGVnYWN5LXRydW5rCiszNzM3IDM2NjRjYjg4YTAzMDA4ZWRiY2M3Zjk3NDg0ZTg1NThkMTg0M2I2YjcgbGVnYWN5LXRydW5rCiszNzM4IDUyM2Q0MjExODhiOTNhNTM3YWIzYjI0NzExMDIyOWI4YjI2ZjY5NGMgbGVnYWN5LXRydW5rCiszNzM5IGFlZTU1ZDk2OWExMjI0MWE3OGRkMTdkZWUwNmFjNzI4MTJiY2M5YWMgbGVnYWN5LXRydW5rCiszNzQwIGVmMDgyYzEwNzJhNzExNWRiZmMzMDM2ZWM2M2ZjZGYxYjg5YTVjNzkgbGVnYWN5LXRydW5rCiszNzQxIDViMjU1YTM1ODgzMzBiNTg4YzBjZDg1YjE3NjJkZTY1ZGMzN2RlMjcgbGVnYWN5LXRydW5rCiszNzQyIDkzOWE5NWYzZGNkZWE0MzFiODM4YmJkYjNiMzJhYmNiYmMwMWY2Y2EgbGVnYWN5LXRydW5rCiszNzQzIGJlNjgwMGE2MDE5YjRkNDIxNDcwY2M1OTgyY2Y1MjlmNjMxOWYxOTAgYWxwaGExMDAKKzM3NDQgMzY0MmM2NDQ3MmMwNzhhNjliM2Q4ZWZmM2ZjZTk2MzE1YmIyZGFhNiBhbHBoYTEwMAorMzc0NSAzNjQ4ZWRkMzQzZWI0NGM2NDEwZGRkZDg4MjRkMDQ3OWIwMzA1ZjE3IGFscGhhMTAwCiszNzQ2IDZkMjRiOTlkYzg4MWI4ZjM3NjFkYzBmN2VjYjRlOWZlMmRiOGNmNWYgYWxwaGExMDAKKzM3NDcgYzhiNzE0YjliYzVhYjJiNWNmNjAxN2MyMjAxNWM4ZDViMzA3ZjJmNSBhbHBoYTEwMAorMzc0OCA1OTk0OTQ5YTdlZTlkYjQwMWI5ZTZjYjUxZDA0ZTdkMzMwNTRmY2E4IGFscGhhMTAwCiszNzQ5IDFlMjY5NGEwNjkzOTg4YmU0MDk2OTczOTBlZmY2YTA1Yzc2MjE1ZDcgbGVnYWN5LXRydW5rCiszNzQ5IDkxYmFkMzc2YjRiY2U1ZWI0NmMyMzg1ZDIxMmUzNGVjNjU0ZWEwMWMgdW5sYWJlbGVkLTEuMS4yCiszNzQ5IDJlYTgxM2FhMjYwMmZjOTU2NDgxZTRmZGU4Nzk2ZjM1Y2JkMjFiMTMgYWxwaGExMDAKKzM3NTAgZjlhZGI4OWYyMDAxNmE5ZmE2NDU4MDA1NjdlNDIwMmMwYzUyYTRkMCBhbHBoYTEwMAorMzc1MSBmYTllNGRiNzkxMWRhOWZmYzA2M2FlODNiZTU1OWI4ZWMwOWYyZDlmIGFscGhhMTAwCiszNzUyIGM1Y2UzNTg0MDAxMzBhOWNjOTM2NGM5YmQyMTZmMTk1ZDlmNjY3ZTcgYWxwaGExMDAKKzM3NTMgMDcyNjdlZDEzNzEzNTkyYzAzMjk3YjA0MDI1ZTA5NjYzNTYwMGU4OSBhbHBoYTEwMAorMzc1NCAxZjg0MTc4MGVmYzIzZWVkZTA3NzRiNjAzZTYxYjg4OGMwMTk3YmY0IGFscGhhMTAwCiszNzU1IDI3ZjM5NWFmZTYwZjY5NjZkZTczNWQ3M2ZlMzdlMWFiZDYzZTNiYmQgYWxwaGExMDAKKzM3NTYgZmRiZDg5OGJjMWZlNjJkODQ3OWJhYTE5OThiNDZiODgyMDcxYjBmNSBhbHBoYTEwMAorMzc1NyA0NDg2M2M0OWE0MzZiZmEzMDhkMDkyNTM0ZmY2NDc0YTQ5MGE3NzcyIGxlZ2FjeS10cnVuaworMzc1NyBhMWFlZTc2OTliZWE2NTRlNGRmZGY5NWYxZjEzZDU1OWIyZTJiYmYyIGFscGhhMTAwCiszNzU4IDRhNzIyOTYyZmI2OTcwOTQ2NTNlMjIwYzZkYzRmODc5MjNiYzQ3NmQgYWxwaGExMDAKKzM3NTkgNzUzOWNjYjc3ZDI4OGFhOGU2YWVjMmVjNjg0NWE0ZDgwNDU3Y2YxZCBhbHBoYTEwMAorMzc2MCAzMzM2Y2RjZDRhNWZmNmM3NmIxMDE3OGQ2MGNkYTQ0ZDlkOGNiNWIzIGFscGhhMTAwCiszNzYxIDQ3MmEzNDdiYWZjY2M0OTgxM2E3MGRlZTNjOTI4MTEyMDE1NDQyODIgYWxwaGExMDAKKzM3NjIgMTMwYjA0ZmM1NGRjYzY5OThlMjBiYjJhMTQ5Y2RlY2UxOTc2MTU4ZiBsZWdhY3ktdHJ1bmsKKzM3NjMgZWQ0YzExNmI1ODkzNGU4MjgzNjUxOTA2ZGE1YzY0MGZhOTFmM2M0OCBsZWdhY3ktdHJ1bmsKKzM3NjMgODExZWY2ZWQ0Y2ExYmI0YzMyMWM2N2UyZGRmZDQzOTdlNTQ4ZDc3MSBhbHBoYTEwMAorMzc2NCAzYmI3ODhhMWRkYTA0NmRjZTVhNTUyMzBhOTg0ZTE5NzQyYTFjMWZiIGFscGhhMTAwCiszNzY1IDJiYmExODhjNmFkYWRlMzZiNzVkYjQxYzFhMmM2ZmU1YWVmMjhkNDUgbGVnYWN5LXRydW5rCiszNzY2IDA2MTA2MmY4YTliZmQ3ZGIxYjRkNjMxNGM0NzJiMzNjMjg4YzcwOTMgYWxwaGExMDAKKzM3NjcgMDkwZDBjZDk2MWFmMTc1MGVmOGRlNjhlNTU5ZjBiOTlkMzgxZjkxZCBsZWdhY3ktdHJ1bmsKKzM3NjcgYzIzYzFhYzkyMjA4MjQzZTQzNDgxMWY5ZGQxOWNjN2ZmYjE1MmU2NiBhbHBoYTEwMAorMzc2OCAzNWRiNmZjYTRkZjRkNzJlYzJiZmY3OGU5MmIwYjM0Yzk4ZjI1ZTYzIGFscGhhMTAwCiszNzY5IDA4MTczMmM2YzExMjk4ZDBhMDVmYzFhN2QwYTI0YTI3MDg4MTEzOGYgbGVnYWN5LXRydW5rCiszNzY5IGM1Nzk4NzViMjk4MDc4ZTU3Y2M1YjE2N2IzYmRkZTIyNzY2MjEyZTggdW5sYWJlbGVkLTEuMS4yCiszNzY5IDc0ODE5MDQwZTcyNjU3OTE2ZmI0MGJhNGJhNmFjZjBlOTZhMDAyMjIgYWxwaGExMDAKKzM3NzAgMDlhMmE2NjFlOGMwNTEyMWJkYWI5YWNiMjQ4N2IyZTI0ODVjODdhYSBsZWdhY3ktdHJ1bmsKKzM3NzAgNWYwZjhiZjdiMzVjZWQ1ZTMzOTU0MDdmOGU1OGFlMzQ1NmQwZmU4YSB1bmxhYmVsZWQtMS4xLjIKKzM3NzAgOWI0ZjllODIxZmQ0NmViNzExMTJkOTMxYzQ0MjllYWM0NjQxNDlhZCBhbHBoYTEwMAorMzc3MSA3YzNmYmM5N2Y5NDY3NzBlYWM0MGQ1MmY1YmE0OGU2Y2NlNzdiNzIzIGFscGhhMTAwCiszNzcyIGJjNWM5MjUwOGY1NjAzMDEyMGVlZjBkMTgxMTIzNDBkNTFkNjNiOGYgbGVnYWN5LXRydW5rCiszNzczIGRjYzk1YTEzN2E2ZjkxY2U5NTYxMWVmZDlhZDM4YTQwNmI4MmFlYjYgYWxwaGExMDAKKzM3NzQgM2I2Zjk1MDUzMDQzNjA4MGI3ODMzYTQyYmQ4MzFlMmRjNjlmMzY4OSBhbHBoYTEwMAorMzc3NSBlMjEwYTRhM2Q5ZjBjODZhYWJiOGM1NjExNGFlNWM2MTc4NWJiZDMzIGxlZ2FjeS10cnVuaworMzc3NSAxZmYzN2ZmNmFmZjRlNGQ2YjViMTJlMTg3YTM0Y2RjNTk3ZmE3NDY0IGFscGhhMTAwCiszNzc2IGEyN2Q2ZWMzZmQ0YTU5OTlmNjIwMGVkNzkxZjRhYzgzMjkwNGQwNjkgYWxwaGExMDAKKzM3NzcgZDY4ZjZjYzI2MTFlY2UzMjNkNzIwMTZkMTUyNDcxODcxODE3ZThjNyBhbHBoYTEwMAorMzc3OCBmNWMxOTc5YmVhN2NkNWMyY2EyYmFkZjNiODRkZTllYjNmNGMxYzcyIGFscGhhMTAwCiszNzc5IDU2Y2JmZGYzNzI1NGM5ZTA4NTdhZDFjZGRlMWQ2NWZlM2NjMmRhY2EgYWxwaGExMDAKKzM3ODAgYzI4NjhlZjI4YmVlMmIyZjFkMmJlYzlmMzAyNDI3MGEwYzJlYWYxOCBhbHBoYTEwMAorMzc4MSAxYThlOTBhMzczNTdiYWU3YjRhYmE5MjJmMWYwYWIzM2JmZGNlZjZmIGxlZ2FjeS10cnVuaworMzc4MiA4ZTk3YTY4YjJiMTdkMDFkYWM3NDU4NjM0NGZiMDY4Y2VjOGY4ZTY5IGxlZ2FjeS10cnVuaworMzc4MyBiZGJlNmQ4YTdhOGY4NmZiY2EyYjdlMGFiZWI5YWM3ZjUwMjg5NWNjIGxlZ2FjeS10cnVuaworMzc4MyBhNGY2YmEyZTQ3ZmZkNjMzYTI1NmQyNzg1N2E5ODlkYzA1MDVhMmZmIGFscGhhMTAwCiszNzg0IDk3ODE5NTY1OGU5YTM3ZTIwYjljMjA5NmFmMzYxNzQ4NDliNDEwM2MgYWxwaGExMDAKKzM3ODUgMDk0MjBlMmU5Mzg4NDVhMGQ1YWVmZmU5M2FkNDk0NGJmZjliNDEzMSBsZWdhY3ktdHJ1bmsKKzM3ODYgZTQ1OTQ4ZTJiNjZjZTQ4NWFkZTQ5MzJhOWRhNTRmZTk2NTVmODU1MyBhbHBoYTEwMAorMzc4NyBkZDZlYTE2N2YyYmQxYjc0MWM3MGZlODg2YjkyYTUwOGQzZjIzMzBmIGxlZ2FjeS10cnVuaworMzc4OCAwZjg4Zjk2NWJmZjI3Yzg4Njc1ODE5NzIwYWIwYzdlNTJlMDUxMWQ4IGFscGhhMTAwCiszNzg5IDMzOGZlNThiMmM2NzczODU4ZWEwMjJmNDVhZTMyOWIwODdiMTc0NDkgYWxwaGExMDAKKzM3OTAgMTQ3ZTk5MTk4ODM4Y2M2N2ZiODEwZDgxMWRlODFiMGIyYjZlMGFjMiBsZWdhY3ktdHJ1bmsKKzM3OTAgMjBmYmQwNDM0ZmI2MzRkZmMwMGI3N2FhYTNkYjMzYzRmNjNjNmM0NyBhbHBoYTEwMAorMzc5MSA3Njg5MWQwY2Q1ZmRhYzFlNDUxMDRlMzI4OWNmOGI3YWIwMjRiOWE1IGFscGhhMTAwCiszNzkyIGRjOGFlZDhiMjA0ZDE4ZmZkNzkyNDE1ZWY2NGQ2Mjk5OTA1MmIyM2EgbGVnYWN5LXRydW5rCiszNzkzIDhiOTA4ZTk5Mzk3NTdkYzM1MTI5MTAxMzU4Y2MyNGFmMzNhMWM4MzIgYWxwaGExMDAKKzM3OTQgODhiYTVkMTdmMzBhMGY1M2FiZmMzNjcxYzE3YjNlNDFjNGJkZTRlNyBhbHBoYTEwMAorMzc5NSA1ZDVlYjc2YmIyNzhhYTZjMTVhMjkyNDRlNzc2ZDJlZTZlNWQ5NWYwIGxlZ2FjeS10cnVuaworMzc5NSAwN2U0YzU3MjZmNzg1Njc4YTRmODgzODFiZjU4NjVjOTU0MzI3NjNiIGFscGhhMTAwCiszNzk2IGJiYTgwMDg4YTA0NGEzMzg3OTA2Mzk0NGQ5YmQ0YTdmMWNmYWJlYTUgYWxwaGExMDAKKzM3OTcgYzIzY2NhZWM5MjQ5MzI1ZDNjM2YwOWRhYjk0OTVlYzk2OThiMjRlZiBhbHBoYTEwMAorMzc5OCAwMzY4ZWY0OWZmNGM2MTc0MGMxNjNhYWE2NzI5OGM2Nzg2ZTkxYTQwIGFscGhhMTAwCiszNzk5IDUzZWNjZWQyZjJiMmExODRmMjM2MWYwYzliOTFhYzAyZjNjMWI5MmUgbGVnYWN5LXRydW5rCiszNzk5IDdjZTQxMjI5NWNhM2NhYjVhNDJmYWNkZWFiZjIyMGZiOGYxMDUyZDMgYWxwaGExMDAKKzM4MDAgOTdjNWU2MDdiNzk3NzMyNjdkMjg4YWY4MDVjMzM1YWViNDkxYzczOCBsZWdhY3ktdHJ1bmsKKzM4MDAgOGQ4YjdkYzk5OTgyZTM2MWQ2ODViYjAzZjUxMzA0YTJjN2ZhNThkOCBhbHBoYTEwMAorMzgwMSBjOWIzZjc3ZTE4YmFlZmFlNWE5MmQ5NTg1ZDRmYmRhODBhMjk5Y2NiIGxlZ2FjeS10cnVuaworMzgwMiBjM2Q3ZjgxNGIyZDA2NDAxYzdiMGNiYmJkYjljNjg4M2M2ODU2NTE3IGxlZ2FjeS10cnVuaworMzgwMyAyNjAzYjQyMGM1ZGVjYWM1MTc4YzQ0NjZmN2M5ZTNlNmE2ZWNiN2E2IGFscGhhMTAwCiszODA0IGU5YjBjY2UzYjk4MDkzZTBmNzRkYTQyN2NjYTljMmExMGQ0YzJjZjEgYWxwaGExMDAKKzM4MDUgMTdlNWM5NGY4NjJmNzY3OGYwYTQ4YmVmYjk5OWRlMTcyMjZkYTEzNiBsZWdhY3ktdHJ1bmsKKzM4MDYgMTVlMWI4NjEwNGE2ZTYxOGY5MmMyMTdmZDYzZDc4NTIzZDRmZGJhYSBsZWdhY3ktdHJ1bmsKKzM4MDcgOTk1YThlZjRhNWMwNGYzZTY4MTE4MTY4YmUwN2EzZWI4OTI0OWVlNSBsZWdhY3ktdHJ1bmsKKzM4MDggZWQyMTFjNzYxMDg1OGJkNmQ1OTRhMjA3MDdlMzVmYTI0MmJkNTAxOSBsZWdhY3ktdHJ1bmsKKzM4MDkgODdjYmY5ZTIyNzI5OGU2YTliNjUzMmJlOTJhNzcyYmVhNTUxMDBkNyBhbHBoYTEwMAorMzgxMCA1YzZjOTkwNjZiMmM3MTA5NjI4ZmY0MDNjOGRmNWY2ZjhiNTlhNzhkIGFscGhhMTAwCiszODExIDQ4YWVjOWQzODUyYTk1MjkxOWMwZGM4MmZhODFkNzA1MDg2MmVkOGUgYWxwaGExMDAKKzM4MTIgODY5ZmJhODA5YzY4OWUzZDY0YTYzNDhmOTVmNDMxZTQyYjg2OWE5NyBsZWdhY3ktdHJ1bmsKKzM4MTMgNWMwMTkzMWRhNTliZDFkMThlMzY3ZWMzYTliMTc4MmNlM2U3OTQ4YiBsZWdhY3ktdHJ1bmsKKzM4MTMgN2MzNTdjNmEyOGJkYzg5ZGVkOGE0OWU2ZWI3NDg2MzIwYjNmMGFkMiBhbHBoYTEwMAorMzgxNCA3ZWNkNjM4MDU2NmNiMzE4YjJjZTJkNmQ2ZWVlNjMxMjVlZTAyZGYzIGxlZ2FjeS10cnVuaworMzgxNSBlMDUzYTg3ODI4ZjQ0MjYyYjNhZDI2MzkyYmU0M2U0MTRjOTk2ZTllIGFscGhhMTAwCiszODE1IDk3OGJmMTM0ZjQ0YWI3YzNjODRjNDc2YTI5MWU3ZjRlZDk3ODM2YTYgYWxwaGExMDAKKzM4MTcgOWZiZjM0ZTFjMWY3NmJmMTQwNGY4ZWJlNmMyYjI2MzcyNDQzZTQyMiBsZWdhY3ktdHJ1bmsKKzM4MTggNWExN2M0M2RjZmYwM2NkOTIxMGQ1Y2NjNWE4MzUxODlhMTc4NDQ4YiBsZWdhY3ktdHJ1bmsKKzM4MTkgNDA0N2YyMjRlZmRiMGVjNzg4MmRkYWJlYTI4MDIyMDc2N2RkNTlmOSBsZWdhY3ktdHJ1bmsKKzM4MjAgNjMwZTAzMTA5YzYzOGRkMTZjZGU5Mzc4YWZhNDExZjhjMjlkMWY2ZCBsZWdhY3ktdHJ1bmsKKzM4MjEgZGYwYWVlNjQxMTRiY2YxZjkyMzk3YmM4ZmM4NDQ3YWI2MTRjYmJiZSBsZWdhY3ktdHJ1bmsKKzM4MjIgMWZmNmNlZGQyMjQxMmRlZDc1NzQxZDlhNGQ3ZmM3YWRhNTBiOWJjNiBsZWdhY3ktdHJ1bmsKKzM4MjMgMWMzNjQ0YmFiODZhYjUzZjJmMjkyNjQxMTFkM2Q4MmFkMTE4NTZiNyBsZWdhY3ktdHJ1bmsKKzM4MjQgYjY4ZmI3Mzk4NWQ4MzZhNDMyMGFlYzBjNmQyZDMxYTYzNDI3YWQxMCBsZWdhY3ktdHJ1bmsKKzM4MjUgNDQzNDcxZmYzMTQ3MGEyZWIzMjMyOTBiNjJhZDhlMjFhNjkwM2E2YiBhbHBoYTEwMAorMzgyNiBiYTI0ZmM4ZDNmOGM1NWRmNWIxYzQzYmVlZmQxMjM0NDE3MWY2OGY3IGxlZ2FjeS10cnVuaworMzgyNyAwZWZhMjQwYjFkYmMwNTdkYzQ0ZmExZDQ0ZDRjNGQ4ZmVkYWM1NjM4IGxlZ2FjeS10cnVuaworMzgyOCA1MDU1MzA4MTUyYTRlMjg3N2I5ZTVmOTcyZGUyN2FlODczZGIzMzg2IGFscGhhMTAwCiszODI5IDVjZWY0ZjVhMjhjZWRmY2E1ZmFkZTgyNWVkZmM2MGIwN2ZmNmU4ODggbGVnYWN5LXRydW5rCiszODI5IDllYzdkNmY3NzUwMGNhMDkwYzIxOTFlMGIzYjQwYzY2YTNlMGZlNzcgYWxwaGExMDAKKzM4MzAgODFmMjZiZjExNzhmOWUzNzEwYzA4YWRmNmI4Y2M5NDJiMTZmZmQxNiBsZWdhY3ktdHJ1bmsKKzM4MzAgZWUzZDVlYTEzYTM3YjkyYzZlYzA1OWVlOWQ4Mjk4NzNiMTYxOTY0MiBhbHBoYTEwMAorMzgzMSA0OGFhM2QzMzE0YWMxNzFkYjVjZTE3ZjY1NmU0YjRjNzEwMDBlMWEwIGFscGhhMTAwCiszODMyIDk4MDYyNmVjYWQ2MWQ4ZDA1NmYzOWZlYzRlMmJhODk0MzRmYmFkYzYgbGVnYWN5LXRydW5rCiszODMyIDVjMzUwNjMxYzgzOTYwNWExZDNhZGM1YmY0M2NhZjE0ODA1ZDFmMWYgYWxwaGExMDAKKzM4MzMgM2U2NWJmZDE1NzZlZDk4YTA4YTE5NmM3MTZhZDVjODJhMzA0MTFmYyBhbHBoYTEwMAorMzgzNCA5OTMwMDg3ZWE4ZjVlNmU4ZDdjYzU0MzI2YTZmYjg0ZWEyOGI5Yzc1IGFscGhhMTAwCiszODM1IDhjODlmNmVmOWY5ZjhmNTQ3ZDU3Yzg1ODZlMzBlZWI4M2RlZjM0MzQgYWxwaGExMDAKKzM4MzYgY2I1ZmQ4MDA2OGNlZjI1Njg5ZGI3ZGNiYmRmOWUzNzE5Yjc5ZThjYSBhbHBoYTEwMAorMzgzNyBiYWZjNTMzZTBlYjZhYzVhYTVmMDgyZWNjZmJkMzE4Mjc4ZjZjNTQ3IGxlZ2FjeS10cnVuaworMzgzNyA3MDMyYThhMmM0MmM1MjI0ZTNjZjUyZjNjODg2ZWMzNmNiNTNkMTMwIHVubGFiZWxlZC0xLjEuMgorMzgzNyBjOTZmYzQ5N2I5MzJmNWRkMjg2MDNiMWRiZGM1MWUxYzllYjdkMDQxIGFscGhhMTAwCiszODM3IGIxNWI4Y2M5YjhkMTBlMDM1MmEwYjhiN2U4ZDUxZmEzMDlkYjZkZjMgbGVnYWN5LXRydW5rCiszODM5IDI2OGU1NzYzMDAxNjIwMjgwODYwOWUxYTg2ZDBkYjA4ODM4ZDY5MjUgYWxwaGExMDAKKzM4NDAgYjcwZjA4OTA3NTQ2MTdiZjNmODU4MTI0Y2ZiYjdjMDUxNzA2YjQ5YSBsZWdhY3ktdHJ1bmsKKzM4NDEgNmY1MmI1Mzg5Yjg4ODE3ZDQ0YjcxNDg4NzFkN2MwNzA0OWFhOTc3OCBhbHBoYTEwMAorMzg0MiBlMzgwYjRkNTRmZDM5ZWFmM2FiODlhMWM5NGUzYWQxODk1ZDY5NjhmIGFscGhhMTAwCiszODQzIDVkZmQxZDUxZDY2ZGVhYTU2NWU1YTc3MGU0NmNmMDBkODBlYWE1ZWEgYWxwaGExMDAKKzM4NDQgNjk2NmQ5NTdiNWIxZTc1MGY2MGZkZTUzN2IzOWE1MGQwYjhjYTVlYyBhbHBoYTEwMAorMzg0NSAyYjVmOGIyMDIxYmZkNzMwOTRjOWY4MjI4ZWU0OGY2NjI0ZGM1ODE3IGFscGhhMTAwCiszODQ2IDhkZjcyZTU4ZmE5ODAzMmM3ZTQyNjFhMTUyYzQzNDg0MDZhMmE4ODEgYWxwaGExMDAKKzM4NDcgYWQyMTY4NzZjNDdmYmZmNzA0YjNhZDIxMDVkOTlhMmE1YWI4OWMyNCBhbHBoYTEwMAorMzg0OCA4YzY4MTRmMzRjZGQ5MzZmMDczOTBjM2QwN2I5ODE1ODhjNGZkYjBmIGxlZ2FjeS10cnVuaworMzg0OCAyMmI3ZDM3MzViZDI1ZmVjM2ZjY2U0MTZmMzRjMDhmODk4OGUyNzY5IGFscGhhMTAwCiszODQ5IDZkMzUzMDgyNjFmNGY3NGQ4NWMxMDNiOTc1Yzg0MzRlNDA3Nzg1YjkgbGVnYWN5LXRydW5rCiszODQ5IDc3MjNlMDAwMzk4ZGE3NzQ0NDlkN2VmZDY1MDU4YmMxOTI0OGU1MGYgYWxwaGExMDAKKzM4NTAgNTk3MzM1NGZiNDk5NTRmNzI0NjVmNzEzMjJjYWVjYWI0NmFkMGM3NSBhbHBoYTEwMAorMzg1MSBjZDI3OWUwZjc3ZDg1M2YyNjNjYTc2MzU4MGZlYzEzNTM1OTZkNDc3IGxlZ2FjeS10cnVuaworMzg1MiBjMzQxNWIzMTliNGU4NjkyZjljNjRlMjc3YTQ3ZmJjMTZiOGUxOGZkIGxlZ2FjeS10cnVuaworMzg1MyAxNzJhYTBlZWViNmY3Y2JmMGI3NTQxZmZkZDgzNzg4YWFkYjExZjk0IGFscGhhMTAwCiszODU0IDI3NDA2NmJkZTI0MTIzY2FjMDU2MzVjYjU5MjM4YjAwNmNmZTQ5YWEgbGVnYWN5LXRydW5rCiszODU1IGRmMGZiNzg4YzBjMWY1MDY1MzMxMzg4YmIzOTFjNjRlNDQ4NTBlN2MgbGVnYWN5LXRydW5rCiszODU2IDllMzQ0NDhhMDA1ZWQ3NWZiMGE1YjU5NTc3MTRmNGM3YTJjY2ZkZTIgYWxwaGExMDAKKzM4NTcgMTZkMWRhYjNmMmMxYjliMzMyYTc2NTAyYWViMDZlNzNjZTkzYjhhYiBhbHBoYTEwMAorMzg1OCA4Y2M5MDhiMGQ4M2JkZTI1ZWYxMTljNjUyNzk0MDc2NTJhZjA5ZGRmIGFscGhhMTAwCiszODU5IDMyODZiZmY0NDNjNmEwNjYwYmNkNTgxYjFjNzQyMWY4Y2Y4YjRkNjEgYWxwaGExMDAKKzM4NjAgMjc0YjkzYjEyMTEzZjU4OWE1NWQ4ZmE2ODRjODA4Y2E0OGNiNzE5ZiBsZWdhY3ktdHJ1bmsKKzM4NjAgZTVkNjY1MjMxYzU4OTRjNjM2MWIzM2M4YTJhMDdiYmNlOTI3ZDBlZCBhbHBoYTEwMAorMzg2MSA4ZWFiMmVlNDBmMzJkYmRlZDhhYzY0ZTJkY2JkOGViOGE2Y2M3NWQ0IGFscGhhMTAwCiszODYyIDI0OWZlNWUyNGUyMGViOGQ5ZTNhNzcyYjdiZWMxNjc3ZmQyZTVmODIgYWxwaGExMDAKKzM4NjMgOGFhYmU5YWFlMGZhMDdhNmFhNTQyZDFmZjhjMjgyYWVlNmM3NmM1NCBsZWdhY3ktdHJ1bmsKKzM4NjQgY2Y2MGEyYjI0OTc5ODU4ODlmOGJmNDFiMDE3NjU1MTM2MGJhMjlhYSBhbHBoYTEwMAorMzg2NSBmNGRiOTJlZWYyYWY3MTdiNGVjZmQ3NTUxYjRiMGY1NDc0NWIzNTEzIGFscGhhMTAwCiszODY2IDAyMGQ4YzJkOWQzY2ZiM2QyNjg1YTA0YjM2ZDM2YmYzZDVkMzQzYjkgbGVnYWN5LXRydW5rCiszODY3IGJkMWE0ZDcxN2U5ZDFlZTQ0ZWE4ZWEzYThmZWNlNzQyZWVjMmZjZTIgbGVnYWN5LXRydW5rCiszODY4IDc4MGYzMzViZjUyNGI3MDU5YWU2NDI1NWY5MDllMDBlNmJiNWE5NGQgYWxwaGExMDAKKzM4NjkgNTlmZDQ2ODZmODhjYTY0YjRiN2IwM2U4YTYyZGIzNGFiNDNjM2YwNSBsZWdhY3ktdHJ1bmsKKzM4NzAgYjNiZmY1ZWQ1ZDNkMDg5NDFjYmQ0ZDI1Y2Y4NDQ5MmU3MzJlZWM4MiBsZWdhY3ktdHJ1bmsKKzM4NzEgOTYwMDU1MzkwMGQ0N2VhMTQwNTAyODNjZDhlZTlhYmFkYTQ0MTdmNiBsZWdhY3ktdHJ1bmsKKzM4NzIgYjMzNzIwZDBhZDk3YjE1Mzc5NjE0OWVkNWE2ODgzMTljMTU4YTM0OSBhbHBoYTEwMAorMzg3MyBjZGFmYzk1MWU4ZThiMzBmZDEzMjA2ZjRiODBkZjE0NWUzZTNkZDhlIGFscGhhMTAwCiszODc0IGRkZGNiYTIwMzhiY2I1YjJmMTlmZGYwZDVmY2JkNTNmMjA4MGU4M2MgbGVnYWN5LXRydW5rCiszODc1IDdkMjFjOTIzYjU0YWViZjNjZGQ3MzFkZmY1OTIzOTg5NjM1NDE0MGUgYWxwaGExMDAKKzM4NzYgOTAzNzk0ZGY1ZWE5ZWVkNTVhMzAwYWNmMmY3NjFjNTc4ZjI2NGE5MSBhbHBoYTEwMAorMzg3NyBlNDQ0OTlhNDRjYjhlMzc0ZTM1YmJmNTRiM2FhNmJmYTBmNjE3NzA5IGxlZ2FjeS10cnVuaworMzg3OCAzNzAwNTBjZDBiNmM1MDFlNjAzNDhiMDlkNGJmYmFlZTI0M2JmOGFkIGFscGhhMTAwCiszODc5IDhkMjZlZTI0YWQxODJlYTBlOGFiNjcxYTQ3Zjk4ZDc1OTE3MmMxYTkgYWxwaGExMDAKKzM4ODAgM2FjZjgxOGYzNTQ4MzFmNDYyMzY3NTUxYjFiZWMyMGE1MjliYmEwMyBhbHBoYTEwMAorMzg4MSBjZGIxNDA0MWNjODdiYjY0MGFkMDRiMDRiMjAyZmNmYmNlN2JmZGVjIGFscGhhMTAwCiszODgyIGFjYmE0NDI3ZTg5YzcwMDA3NDhmOTg0YmRhNmViMjNhNWZjMzcyZWQgYWxwaGExMDAKKzM4ODMgM2QwMTY5OTkyNjRhYzJjNzNlYzhkNmI0NDBmMWQ4NmY3ZDU4MjFjNSBsZWdhY3ktdHJ1bmsKKzM4ODQgYWYzZjJhMDNiYjE4ZmUwZWVmOTdkOTZlZDRlYTE5YTEyMmE5MmFmZSBhbHBoYTEwMAorMzg4NSAzY2RkYzY3YmUzZjU3NTY2MmNmNzM0YjUxMjQ3MWVmYjUwMGY4NjI2IGFscGhhMTAwCiszODg2IGFlNGI5Y2I1YmExNTYxMTI4YWNiY2NjMzk3YjAwNmYxODEzOTA3MjQgbGVnYWN5LXRydW5rCiszODg3IDA2YWE2MDhjNTg5ZTg2YzU4NmJjMWNjZDI2MGZmNWI1ZjRmOTAzZDYgbGVnYWN5LXRydW5rCiszODg4IDkxZjg0NmY2ZDZhNjFkMDQzZDBlNzI0Zjg1Yzc4NGQxNGE3MTVhNTIgbGVnYWN5LXRydW5rCiszODg5IGVhY2FhNGYwNzgyNmQ5YTAwYjIzZjIxNjA0OWQzZTM4YTg3Y2E0NjkgYWxwaGExMDAKKzM4OTAgMmEwZDQ5OTc0MGI2MjRiODgwNzI0Mzk4MzNmMWViZTA2YTc2NTQ5OSBhbHBoYTEwMAorMzg5MSA4MzYyMmI3YTAwYjUyMzhmODMwNTkwNmNmOGUzNGM4N2NiYzA0OWRhIGFscGhhMTAwCiszODkyIGVhYWJhMmNhZmVlYjljMzQwNzg5ZWEyYmE0MzQyMjFjMzk1MzExODkgbGVnYWN5LXRydW5rCiszODkzIDJkMGVjZTU2MDQwNjlhMTYyZjc5NDM0MGJlYjFhOGM4MDQ0OGE2OTYgYWxwaGExMDAKKzM4OTQgNzJmOGUxZTYxNGYwNjMwMzU3NzU5M2M3MWQyMWZkNjkxNTVhOWE1NyBsZWdhY3ktdHJ1bmsKKzM4OTUgNDU3MjhiZmVjYjc2OGYwMjEyODU4NzdjNjE1MWZhOWU2MDFhMzI4ZSBsZWdhY3ktdHJ1bmsKKzM4OTYgNjk1ZmI0OTRhM2EyMmZjOTM2YjQ0ZjUzMGQ4NTljZWNkMTdiYTBiMCBsZWdhY3ktdHJ1bmsKKzM4OTcgN2JmNmIxMjhlOThjNDg4NjhlNTNkN2JmN2JiYWMyNTkyODhjOTAyNSBhbHBoYTEwMAorMzg5OCBmMzI2Mzc1OTY3OGVmMzg0NzJmZDFjMzg2NzE2YTFhZTAyY2IyMjg5IGFscGhhMTAwCiszODk5IDQ0NGUzNDlmOTYyZjBhZTMwMDY4MjUyZTU5ZGJlNTc3OTFmY2M2ODAgbGVnYWN5LXRydW5rCiszOTAwIGIyMWYwNDhjMjNlOWUwMjg0NTBmMWYyZWM0ZDA0YWViNTcxMjliYzQgbGVnYWN5LXRydW5rCiszOTAxIDI4OGE0NjA2ZDJmZGUxMDA2OGRjNzljZWE2YWNkOWY4MDc0NTU4NTYgYWxwaGExMDAKKzM5MDIgMDIxZGFhYmU2OWQ4Nzk1NjYxZjc5ZjY3ZWFlYjI4MmZmMzk2YTUwMCBsZWdhY3ktdHJ1bmsKKzM5MDMgYzE3MzYwYTE2NTg3MDM4YzViZWJiZjNmZGU5YjFkZWU3ZDNhM2YwMCBsZWdhY3ktdHJ1bmsKKzM5MDQgMzJkYTU3ODE4ZTk3YjVmZmQyMDhlYjk2YmVhY2I0YTBkOTgzMGRiOCBsZWdhY3ktdHJ1bmsKKzM5MDUgYjk2MzRiZDVjYTU1YTk4ZTJlZmQ2YjI3OWMwZDkyOWEwZGRmNmM2MSBsZWdhY3ktdHJ1bmsKKzM5MDYgMjM4NGZhYTUzNTBmM2I2ZDFlMGYyYjEzZjJmOWYwZDA1NmI0NTQ1OSBsZWdhY3ktdHJ1bmsKKzM5MDcgYjNmY2RiZDJkOWJiYTUzYjU3ODU5ZTgzMDEyNDJmZTIxYzRiYTMxMiBsZWdhY3ktdHJ1bmsKKzM5MDggOGQ3YWIyYzdlOTkzMzA5MTAyNzVmMDFkYjkxZDhlZWU1NTE2ZDQ1NyBhbHBoYTEwMAorMzkwOSBlOTZhOGNmYmJlZjFiNmEzZGRmNjNlZjkwZmQwOGVmN2Q2ZmU0Nzc5IGFscGhhMTAwCiszOTEwIGM5NjQzNjRhOGY3ZjhlN2MwNGZlNzdlMjk2MmRjMmYyODQyMzYwODcgYWxwaGExMDAKKzM5MTEgYjJkMThmYTUyOWY0ODc2MGNiZGI0YTU3MWQ0MjM1MDcyNTg4YjhhNiBhbHBoYTEwMAorMzkxMiAwNTU2NjE3YWEzMzg2ZTcwZmY0NzBlY2NlMWY2YTYwMzcxZWM0NjEyIGFscGhhMTAwCiszOTEzIGQ1OTBmZmQ1NGY4OThjYTExN2YwMDI3OTIwMzQ3YzFiYzJlOTE5NmUgYWxwaGExMDAKKzM5MTQgNzliYjY4MjcwYzdiMTJjZGIwMzZhMGFmZDYyZTI3Y2VkODVhMTc2YiBhbHBoYTEwMAorMzkxNSA0MWJjZDE4NTNmZWE1N2RiOWI5ZWQ3ZjgyOWI3NzdmOGUwZjhhYTg4IGFscGhhMTAwCiszOTE2IDEzMTMyM2YxNzE1OTIyZmRlYzBhNzQ1YmEwYzlhYTJkOThjOWYxNWQgYWxwaGExMDAKKzM5MTcgODEwMTg2NTBkYzMyNDVhOTZlYmMwNDMwY2ZiMzhmOWEyYjkwYWY4YyBhbHBoYTEwMAorMzkxOCBjMTNiYmRmZWViZmZlNmMxZTBmNGUwYWFkNWE3YmNlMWQwYmJjYmRhIGFscGhhMTAwCiszOTE5IGNhNWVkNTJhY2EyN2E2YThkNzYwZWYwY2I5MTc5MjhiZTI5MTVhMDYgYWxwaGExMDAKKzM5MjAgZmM0NWU1NzdmZjliMjBjZWE4NTM3OWI3ZDI3MDRhZDdlYTc0N2Y2MiBhbHBoYTEwMAorMzkyMSBhNzA0MWQ2ZjdkZTNlMzU4OTc3ZGE5Mjg3OGRjMjQ1NTRkMjBjYTEyIGFscGhhMTAwCiszOTIyIDVlZmZhYWQ3MWJhNTJlNWU2YjQ0MGM4ZDg1M2I2NGY0OWIyOTZiNWQgYWxwaGExMDAKKzM5MjMgYWQyMjcwZTcxZWMzZjBiNjUzYzI3YzI2ZmExNWJhM2NlZGVlOTI5NCBhbHBoYTEwMAorMzkyNCAzNDY5ZDA0ZTNlMzZkNWZjYTg5OWJmNGNiMGM5ZjE1NWI1YTQ3NTEwIGFscGhhMTAwCiszOTI1IGYwNzE0YmI0ZWE5NmExZTEwMDgzMjJlZDViNzFlNDM5Zjg3MzMyNzggYWxwaGExMDAKKzM5MjYgMzM3YWJkYzE1ODRhNDI1ZTU0NDNhODkyN2ZkYTMxYmViYmExNjU5YiBhbHBoYTEwMAorMzkyNyA3Yzc1ZjYwNDY4ZjgwMmQwZjczMzI5NGYxY2ZmYjZhZmJjNTE4YTdlIGxlZ2FjeS10cnVuaworMzkyOCAyMjM2ZDcwOWZmMmRhZWE2MDhmYTA0YmRlYzUzOTFkMjE1OTZkNGI2IGFscGhhMTAwCiszOTI5IDkwYTIwOTkzNzQ3ZDFmMzhhNWEwYzRiYjVmMjUyNDYwYTU2ZDMxYmQgYWxwaGExMDAKKzM5MzAgYzFjZGVlZDhjNTE0NGY1ZWU3MjMzMmU3M2U1ZTA0MDZiZGMwYjVjZiBhbHBoYTEwMAorMzkzMSAzZDhiYTQxODQ4ZmYwZjgyMjU0NDQ1ZTI2OWViMWM4ZTMzMDdjYjhhIGxlZ2FjeS10cnVuaworMzkzMiBiNDU0ZGM5MjQ3YjA3NmI3Y2E1N2NhOTZlOGMxMjRlMGRhMDkyOGE4IGxlZ2FjeS10cnVuaworMzkzMyA5OThjNjQyMmNkOGFhZTAzZDI4YjhhNWQzMmNiYjZjY2I2NjhhMzE0IGFscGhhMTAwCiszOTM0IGJjZjBiOGRmZGFlOWY0NDZkNjEzMWU0OWUyODYyNGQ4MzFiMzhiYjQgbGVnYWN5LXRydW5rCiszOTM1IDdmZGVhZGZhODNlMGNjNjg3ODhjMzcwNDljYmIyODcwYjA3ZTAxYmUgbGVnYWN5LXRydW5rCiszOTM2IGFjMmU1Y2MyOTk0OWQ5ZWQ2YzNlYzA1OTQxNTQ5M2FmNjAxYjMyYTEgbGVnYWN5LXRydW5rCiszOTM3IDU5NGE4YzEyZDY4ODI3NmYyZDIyNzBmOGI0NmMwZWRmMDRjYjBlZTkgYWxwaGExMDAKKzM5MzggZmNhMmZlZGVhNzFjYzY3YWEyMjBiZWZjMjVhOGZiNjFhOTVhYjRjMCBhbHBoYTEwMAorMzkzOSAyYzZmMTMzNzgwMWNjMDEwMmVmNzMwOTZiZjBkZTZhNmMxYWUwMTgzIGFscGhhMTAwCiszOTQwIDEyODdmYjA1OTU4ODhjMDE0N2M0NTVlYjY2MjQ3Zjc3OGQ0ZWVkYTQgYWxwaGExMDAKKzM5NDEgZjY1Nzk0ODg5MzQzNzBhNDQ0OGU2ZTNjM2ZmNzU0MmQzZTc1YWQ0MSBhbHBoYTEwMAorMzk0MiBhYzllMTJiNGVhOGM2NTdiY2EzNGUxOGE3MTE3YjBiNDRlM2RmZTE3IGxlZ2FjeS10cnVuaworMzk0MyAyMGRmNjUzMzc2YjQxN2I5OGUyYWFhZWQzYWRlYjQ3NWFjOTE1ZjMyIGxlZ2FjeS10cnVuaworMzk0NCA2NzIwMTE4NzFhMWI2NDA1OWI4ODAwZmFlMWU3ODdiNDAyNTUxNTE3IGFscGhhMTAwCiszOTQ1IGE1YmRmZjk3MDU5NTFmYTZjZTdhNjRiOTQyMTVlOTY1MDc4OWQ4YzQgYWxwaGExMDAKKzM5NDYgODhkZTIxZWY0YThhMzBmNmE5MTY5Yjg5NmZjMjZhOGM3YWM5MzcxZiBsZWdhY3ktdHJ1bmsKKzM5NDcgYmE2YWM4MmZjYjY4NmRlMTVjYzM2YTdlM2ZkMzQ3NThjNWE0YWQ4ZiBsZWdhY3ktdHJ1bmsKKzM5NDggYjM0NDM1NDZkNmVlNGIwMDk4ZjkyYjBjNTQ0ZWIyNTQ3MWU5MDgzZCBsZWdhY3ktdHJ1bmsKKzM5NDkgNDU3OTAzNTZlMDI0Zjc2MjA2YmMxYTQwZThjYTdhYjUxYjZhMDg1MiBhbHBoYTEwMAorMzk1MCAyMTk3ZGQyNDFkOGRjODYyMTVjYmIyZDlhYmVmODE0YTM4NjZmYjc2IGxlZ2FjeS10cnVuaworMzk1MSBkZWE2N2MyYTRjMDdmM2JkZmVjOTQxMmI2MWI4ZDE0MGY2OTNiMzQ4IGxlZ2FjeS10cnVuaworMzk1MSA3OWFiNGRmOWQwZjVmZjJmMmM5YzNhMzA2ZjFmZWIxYWQyYzUyODE0IGFscGhhMTAwCiszOTUyIDllMGVjZTZlZDgxZDdhMGFkNDU5MzRkNjIxODBjYjVjMTBkMGE5MzMgYWxwaGExMDAKKzM5NTMgY2EzY2NhYTg1MDYwMjZmZGUxZjJiOTY4ZTNjNTJhZTQ3MjE4NDk4MyBhbHBoYTEwMAorMzk1NCBlY2JhZGI4MTg4NDc1MDNiNjhiZmZlMWFkZjFlNzRjZjRlNTdhNDdkIGxlZ2FjeS10cnVuaworMzk1NSBiMmM5MjJjZmI0ZDk3YmNmY2Q4OTUwY2Y5ODY1NDU0MjU4NjYwZDZmIGFscGhhMTAwCiszOTU2IDRiY2Y1ODRjMTU3MmI0ZjI3MTgwMDA2MDVkZmE3OGU4ODgzNTc0NjYgYWxwaGExMDAKKzM5NTcgODNiNDFiZjE5MzkyZWQzZmY0YWI3NGEzNjE3YmJkMzk5YTgzNDQ4NyBhbHBoYTEwMAorMzk1OCBkNzQxMDQxY2IwNzZlYmNiZTFmNGJiMzk3YTk5ZWZlYzk0OGRlZWNlIGFscGhhMTAwCiszOTU5IDA5ZDc3YmI3MWQ3NWI1M2RlYjVhNDhiYzIzYmFmOTdjNDU3MDZmZGUgYWxwaGExMDAKKzM5NjAgY2UzMjg0NzE2NGUxZTZkMDc3MmM0OTEzNmM5MTNjNGM4MDJhMDA4ZCBhbHBoYTEwMAorMzk2MSBlNzZjNjg3YWM3ODFkNDJhNzQzNTk2OGEyNzQ0M2U3MzVhNDMyZmQ1IGFscGhhMTAwCiszOTYyIDZlYzE1MjIyMTc5MmU2NWY3YTExZTJhYjVlZWY1ZDE0OGJmMWYyYzEgYWxwaGExMDAKKzM5NjMgMzNkMzM0NDNlYzQ1OWZkMjI4Y2Q1NDVlMTRkNWU5ZDVkYjliYjRiNCBsZWdhY3ktdHJ1bmsKKzM5NjQgMzAxZjhjYTk4ZTBiNWY0NDBjOWQwMTQ1MDc3MmQzYzhlMGVhOGExMyBsZWdhY3ktdHJ1bmsKKzM5NjUgNTdiOWI3N2RhMjFiMzlkNWE5YTVjOTE3YTgxMWRmODJmMzlmOTIxMCBsZWdhY3ktdHJ1bmsKKzM5NjYgNWU1YTYxYmRkZTBiNzgxOWNkMjM5ZWVkZTk4NWIwYjZiZWQ2OGI1ZiBhbHBoYTEwMAorMzk2NyA5MDdjNWRkODljNmNlZmJhOGE0OGQ0N2RiMzlhNDA5N2Y5NWI3MjFhIGxlZ2FjeS10cnVuaworMzk2OCA0ZTdlYjVhM2ZiZGFmMTIxNWVkNzAwMzY4YmQ5ZmU4ZDIwODkwMTFmIGxlZ2FjeS10cnVuaworMzk2OSBjMmZmMjE2M2YwYjcwYzFlY2QwZDhhYWMwM2Q1MzM5YTQ0Nzg5NmUzIGxlZ2FjeS10cnVuaworMzk3MCBlOGJmMTA3NzE3ODEzOTdiOGQzNzQ1MjlmMTEyZjk0YjQ5YWM4NTAzIGxlZ2FjeS10cnVuaworMzk3MSA2MGE3MjE0ZjMzYTg4MTY1YzcwNGI3MzE5ZWU2MjhkNTNiY2M4ZThhIGFscGhhMTAwCiszOTcyIDU0ODg5MTFlYmMyNmVjNzI5NjVhYzMwOTFiMjdlMDMxMGJiMTcyZTcgYWxwaGExMDAKKzM5NzMgMTQzMWFiYjI4MzUzZjQ4NTBlYTVkYmMyMWIyMDYyNGYwZWYwY2RjZiBhbHBoYTEwMAorMzk3NCAxMjlkOThiNTE3YzI1NmZlODViNDM5MjYzNzZhYTA2NjRkN2FmNDllIGFscGhhMTAwCiszOTc1IGE3NTRiYzc0ZTU4NGRhZWE3ZjEwZjQ4YmVmOGM3MzE5OWNiYWM5NGMgbGVnYWN5LXRydW5rCiszOTc1IDc1OTM5ZGNjOTM4YTcxYWRhMWVkODljMzU5MTI2YzBkYzE2MDFjMTcgYWxwaGExMDAKKzM5NzYgMDc3MDgwZDc1OGRkYTY4MmVkNjE4YTNhNWM5YWZjZGQ3N2EyZWUyOCBhbHBoYTEwMAorMzk3NyBjNmFmYjk2YTQ1MjMwZjU1MWRmMTRhYzIxMTljYzgwYTM2NWMxZWFhIGFscGhhMTAwCiszOTc4IDVjMjlmNGIxYjI4NTE1MjUzNGEwZTI1NzZmMzcyNzY5NTBiZmJkYjMgYWxwaGExMDAKKzM5NzkgZTI5MTEwNWIxYmVlYWIyNjljN2EzNGNkYjg5MjE3ZjFiMTc4ZjU0YSBhbHBoYTEwMAorMzk4MCA2OWQ1ZGMyNGNiM2I1NTlmOGNkMTllYWU1MjkwM2QwMTdmMzA1OTQ2IGFscGhhMTAwCiszOTgxIDI0MWMzNTVmZDllYWQ1NzNmZjA4MDg5MWY1MTMxMjc3M2Y0ZmU5YTIgbGVnYWN5LXRydW5rCiszOTgxIDhkZWQ4YzY1NTExZGE0M2JkMGI5MDM0NzA4NzViYjRkZWI5NWVkNjAgYWxwaGExMDAKKzM5ODIgMmU4ZWFlZTllZjQ1Y2VhNmVjMWE4YjI1Njk4MWU0ZWJjOTgyNzllYyBhbHBoYTEwMAorMzk4MyBiZTJkYjMxNDIzNTc0ZDYxODRiYjVhMTRiYjk2NzhlZjY3ZTAwNzM0IGFscGhhMTAwCiszOTg0IDIyMWQ0N2IyOTc0ZTczYWI3OTFhNDBjYjlkOGFjNWNmNDRhOTk3NzMgYWxwaGExMDAKKzM5ODUgNzhhY2FkZWEzOTE4ZmM5NjdlNTU4ZjBmZjQ4Yjc4NjhkZTE5ZjVkYSBsZWdhY3ktdHJ1bmsKKzM5ODUgZjlkYmJiYjE3OTI5MDI1ZDA2ZDYyOWE0YmVkM2U1MWExMTMxYTcyNCBhbHBoYTEwMAorMzk4NiBhY2VhMTEwMzEyOWJhYzExYWY2MWRkYTdmODEyYzUxOGRhNWI4NmNlIGxlZ2FjeS10cnVuaworMzk4NyA4M2VlNzY0OTgyM2QyNTZjZjI3OTEzYmI0NDhmOWM0YWZjOGNmZjhlIGFscGhhMTAwCiszOTg4IDQwNDhjY2Y4NWIzZDI0NTY2NzU0YmEzMDMzZWI3NGNjZjg2NDYwMzQgYWxwaGExMDAKKzM5ODkgZDdhODU1N2U3ODBjZDUyNmE4NTUzOGFlYTZhMWQwZjQ0ZDU0OWJkOSBsZWdhY3ktdHJ1bmsKKzM5OTAgYzk0OWRjYjAzNDhiZTRlYWJkZmU1MWVkOTRjODU5YmQzMmNlNzdjNiBhbHBoYTEwMAorMzk5MSA3Yjk4MjhiYzcxZGQ2NDkyNTlhYjRlZDdjMTVkOGEyMmRlYWI4YmQxIGxlZ2FjeS10cnVuaworMzk5MiBlMjBkMDY5NGU3NDAxNGViZjZkYWI2NGQ5YjI2ZDMwYmZhNWUzZDMyIGxlZ2FjeS10cnVuaworMzk5MyAxMDM2ZjIwNWNjMmQ3YTVmMTA3Y2RjMWZiZWUzMjA3NDk4MTkyYzA1IGFscGhhMTAwCiszOTk0IDcwNDkyZDY1OWUzYzdjMTI0ZDNmY2IxNDA5YTIwOWIzZmQ3MjVjY2IgbGVnYWN5LXRydW5rCiszOTk1IGE4Mjc1NTYyNzg0Y2QyZjI2OTE5NjExYjA4N2U1Njk5ZDYxNDM4ZjggbGVnYWN5LXRydW5rCiszOTk2IGY1MGZlNGI5NTJiYWExNzJkNmRmZmEzYTI4Y2FkNjI5NWVkNWQ3MzEgbGVnYWN5LXRydW5rCiszOTk2IDAzMjZiNWQ2MTQ0NWVlM2E4ZDNkZTI4MTE5Zjk2NTJjYjcyZDJlM2YgbGVnYWN5LXRydW5rCiszOTk4IDZhMDFmMDk5ZjBhZDhkNDU0N2RkN2M2YThhMWQ4ZWFjNmU1ZWJmZGYgYWxwaGExMDAKKzM5OTkgMzY2ZjhkZWU5NmZiZjRlNzc0NjA4ZTBlZGU5YmMwYWI0ZDdiYTJhMSBhbHBoYTEwMAorNDAwMCAyZTA1MGE1MGFhMGEwMWYzNTM1ZGEwMjc5MWE2YTBmZTE5MzMzZWYyIGFscGhhMTAwCis0MDAxIDJiMjc1NTMwMjhhYWMyM2U2ODcwODE3OTg2MzljNDE5ZDM0Y2MwOGYgbGVnYWN5LXRydW5rCis0MDAxIDc0OTIwYzNhMzY3ZDJkMWM3ZjI5Mzg4YjI0NDQwMWZkMmVlNDM5ODcgdW5sYWJlbGVkLTEuMS4yCis0MDAxIDIyNTQ4MjI5ZDZmZGRjZTMzY2Y1N2EzOTMxZmJiNzI3MmM0YmU3NjYgYWxwaGExMDAKKzQwMDIgMDQ3N2JjMzljOTM1OTJhZDkyMzM5MWY3ODMxNDFkZGE4MTgzOTQzMSBhbHBoYTEwMAorNDAwMyA3Zjg5MWYzMjg2NGNhNTJhMWQwYzc5NmJlYjdiMzAyZDkwMmNjM2Y5IGxlZ2FjeS10cnVuaworNDAwMyA4ODk2ZTRlYzA5ZmM0YTQ2ODQ4ZjQzOGIwNDFkMjA4YjI1NTM0ZTIwIGFscGhhMTAwCis0MDA0IGIxNGM2Yjk1NTE2MWNhMDRhZTA5M2E4NjcyM2Q0NDAzY2ExMzBjYmYgbGVnYWN5LXRydW5rCis0MDA2IDg0NTQ1NzlhYjUyZjM3MWRjZjU1NDZjYjUzMGUyZGQ2ZmQ2MGZmNWUgbGVnYWN5LXRydW5rCis0MDA3IDljYzg1OGJkNTczZGUzNGYzMDlmZTE2ZWE1YzQ4ZTk0NmI3NTM3MjUgbGVnYWN5LXRydW5rCis0MDA4IDgxMmQwODExZmNmM2UwNjJlNDUxNTliNDM4Y2FiYWFmMDAzMDhjZDIgbGVnYWN5LXRydW5rCis0MDA5IGE3NWRjODY1NmNiMGEyMzkzZGJhNGMyNTJmMzFkMzEyYmU0ZDEzMmMgbGVnYWN5LXRydW5rCis0MDEwIGI2YjUwZDk0MTI1ZmQ0MmYxMDJiYzBkOGZjMDQ0M2M0NzU5NjI4NGQgbGVnYWN5LXRydW5rCis0MDExIDg3YTJiMDRjNDY4MGJkMTIxZmMzZTY4NmZmYTg3OGY2YjRmYTMxNmIgYWxwaGExMDAKKzQwMTIgOTZkMGRjNDczOWVjYTI0ODIwNzUzYjE0YmRiZWIwODE3MDdhYmQyZSBsZWdhY3ktdHJ1bmsKKzQwMTIgMWNmNjA4NTY5N2NkNWEwYTRlMDJiM2YwOTI0ZmEyNTY4ZGVkMDEyOCBhbHBoYTEwMAorNDAxMyA1NTJiMjFlN2MyMzBhNzlkMjZiYzMxNWY5ZWY1NjA5OGQwNGQ3NDc1IGFscGhhMTAwCis0MDE0IGMxZmIyYjZjNDc0Y2VhOTNlZTU0Y2M4MWYxNGU2OWEwYmNjNDI3MTIgYWxwaGExMDAKKzQwMTUgZTQxYTY1MzA2NzA2MjAwNWEyYzVlYzUwNmNhZGUwOTdkMWI4NDQ0NiBhbHBoYTEwMAorNDAxNiAxNTEzMjFhMThkYjRhNzhiODg3YTdiNjA3NmE0MGU2MGQyZTA2NGJmIGxlZ2FjeS10cnVuaworNDAxNiA0MjQ4NmJmMjM2NDdkYjQzMDI2NWE0ZTMzMjgxODQ2Y2E3MmY2MDhlIGFscGhhMTAwCis0MDE3IDhmYmU4NjBhMjZlMTk5NWYxZGExZmE3MWQ5ODk1ZDE0NDBkODA1MGIgbGVnYWN5LXRydW5rCis0MDE3IGU0NmUwZWU3NmRiYzQ0ODE4YTY2N2VjMTI0M2FmZTk1NTNhZDdhZDMgYWxwaGExMDAKKzQwMTggYTlkZDJlMWVhNWM5ZWEyY2E0N2I0ZDBjODBhY2ViNmExNDU2ZmYwZiBsZWdhY3ktdHJ1bmsKKzQwMTggYTE5ZmEwNTVlYzQ4YjI0NDY3YTdhMjMwZGJjYWEyN2JjYzMxNmEzMyBhbHBoYTEwMAorNDAxOSA0MTIxYWZkNzZkNzM0YWZlYzIyNGZiMmJhOWViOGQxNjZjM2QxMDkyIGxlZ2FjeS10cnVuaworNDAyMCA1YTZjMmEyMzhmMDM4NzZlMmE3OWUyYWIzMjlmMjVlMjdiYTI4OTM1IGFscGhhMTAwCis0MDIxIDI5YzQyNTVjZDQ1Y2Q1ZjJlYmM2YzExZDZjZjRmMGM1NTdhZjg4NTQgYWxwaGExMDAKKzQwMjIgMDIwMmE3MmQ5OTRlM2QzODI1NWYzYTU1M2E5MGNlMWIxNTM2ZWVmZiBsZWdhY3ktdHJ1bmsKKzQwMjIgNGUxYTJkYmY5M2M1MzJhMmJmZmNlM2M1ZGZlNTdhNzhmNmQ2ZjIyZSBhbHBoYTEwMAorNDAyMyAzZTZiNjdjYTlkYmU0MjY5Zjk1OTAwNDIzNzJiN2VhZmQ4YzM2Yjc3IGxlZ2FjeS10cnVuaworNDAyNCAwMDdhZGYwMTU0M2M1MTc2OWZjMzJkOGExOWRlNDk0NjFmY2VlMTk5IGxlZ2FjeS10cnVuaworNDAyNSA2Y2U4MmMxNTgxYjkyZjc3MWRiOTBjNGY1Mjg1ZGFjNTZlZGI5Y2NiIGFscGhhMTAwCis0MDI2IGYyNjAyMjg4MzgxYTQyNTdmOGY2MmY5OGEwMzZmZGU3NjlmMGVkYzcgbGVnYWN5LXRydW5rCis0MDI3IDU5MDM5YzA4NTZjOTM5NmUzZjFmM2E0NzQ0OWQzMTY5ZDczZjc1ZjQgbGVnYWN5LXRydW5rCis0MDI4IGEzZWIyNTI1OTMyOTQyMTY2ZTM0MGU3YzZkODQ4NzM0YThhZjU2MDIgbGVnYWN5LXRydW5rCis0MDI5IDFmNDkyOWE0OGU2NGEwMDQ3YzM4ZWQ3ODkxZDEyZWFiNTkyMWJiMTQgbGVnYWN5LXRydW5rCis0MDMwIDlhZjhiMzk5MWNlZGY3MmViYmI5NmRhN2NiNjExNDQ4ZGExYjhjN2MgbGVnYWN5LXRydW5rCis0MDMxIGZjYWY4YTJiYWYzODk2ZTkwMDM3OGI4NjA4NDlkYWEwMTQ2MjBiYzAgYWxwaGExMDAKKzQwMzIgYmNhODI5MGMxYjMxY2Q3ZDcyNzA1ZTM5MzI3NTZlMmQyOGVlMDU1MSBhbHBoYTEwMAorNDAzMyA3YTI5YmIzYmRkYjQ2NWFlNDQwYTM1ZDZmNTM5MjY5ZTNjODA0ZDQ0IGxlZ2FjeS10cnVuaworNDAzNCAzN2NmODdmNTYxZWNhOTg1YWVhZjJhMDUxNGRkZGQ5N2U5YTE4ODEwIGxlZ2FjeS10cnVuaworNDAzNSAwNTU5NjJmOTZkZTdiNWYwZmEwOGQzYzNlZjE1NTZiYTBmZTgyNmVjIGFscGhhMTAwCis0MDM2IDE0YjA4N2ZlNTM0NzBjNGUzN2UxNDAwMDc1OGVkZTU1NTk5MDdlODIgbGVnYWN5LXRydW5rCis0MDM3IDcwODY1NGE1ZGRkZTAzMTFkNzU4MTc1NjZjYWIxN2M2YmRhYzNlNDcgbGVnYWN5LXRydW5rCis0MDM4IDBkMDI5ZGVlOTEyOTBmOWEyZjZlNDVhMmFkZjdkNWNiMDhmZDNkODUgbGVnYWN5LXRydW5rCis0MDM5IDdhNDdmYWJiMTg3YzZjMjY3Y2VlNzdiNDUyNzk1NjMyYjYxYzcyOWMgbGVnYWN5LXRydW5rCis0MDQwIGZhNTBkNGJkNTUzNzg1YTFjMWFiZTcyOTc5MzY4YjQwNjg5MjU4YTggbGVnYWN5LXRydW5rCis0MDQwIDYwYjAxNThkOTQ4YWNjM2ExOTA1ZTBiMWQ3YWVlMjU2NTlkOGY3MzggYWxwaGExMDAKKzQwNDEgZjg0OThiMDg4YWExYTBjNTAzNjZkY2E1MjM2Y2M1NWMxMDQ4Y2QxMSBsZWdhY3ktdHJ1bmsKKzQwNDEgOGE3ZTUzMGRkNDRhNWU2NDAwMDhhOTM2ZWFjMzUzNmFlNDcyY2IzMSBhbHBoYTEwMAorNDA0MiA2MjNkZDcyNDkxODY2NDQxMTQ4ZDgwYmQwNTFiOTE4ZjRjZDMyYWUyIGxlZ2FjeS10cnVuaworNDA0MiAxOWYyMDc1MWY4ZGVmYmVmMTQ2Yzc3ODE1NDU5ZWNiM2NiMDI3NzU3IGFscGhhMTAwCis0MDQzIDAzZTA5N2RkZWNhMmJlY2I4MjI5MDg2ZjZmMjUwYWU2ZjRmMWNkNDUgbGVnYWN5LXRydW5rCis0MDQ0IDZjZjZiNjY5MWFhZWIyODE3ZjA5MjZmYTJkZTEzZjhjNGQ3MmIyYTQgYWxwaGExMDAKKzQwNDUgN2FjNGU0OTc5MWY0N2UxYmRhZDhlZjRlNDY4YjM5MmJjNzYyNDY0MyBsZWdhY3ktdHJ1bmsKKzQwNDYgOWUyYjE5NDJhNzQyMGFhNDA2N2MxOTVjYTkxZDlhOWI2NjY3YWM3YiBhbHBoYTEwMAorNDA0NyAxYzcxYTI3ZmQ2OTMzZGM2ZGU1NTg3MTMyN2E0M2FiMmIwNDhjYWEyIGxlZ2FjeS10cnVuaworNDA0OCA1MWEwNmZkZmZmNzg5ZDMzZTJhMDA2ZmMxNjhiOTYxODU0ZTYxNDA0IGxlZ2FjeS10cnVuaworNDA0OCAxMWVhMTYxYTAxYzJmZDkyYjQ0YTk4YjIyMDI2ZjI5NTZmYTZkMTA5IGFscGhhMTAwCis0MDQ5IGNmMzI4YTllYzVkNDQ4NzZjZjAyNGYxMWQ3YWM1NjU5ZjlkMzk1NDAgYWxwaGExMDAKKzQwNTAgMTliMDBlZjRjZGQ5OTdkYTMyOGUzOWUzZDUyZDkzNDkxMTA5NjEzZCBhbHBoYTEwMAorNDA1MSA3ZTVmOTdiYWIxZTZmOGRlYzc2ZDRmMDc0MTc0NDdlYjU3OTIwMGQwIGxlZ2FjeS10cnVuaworNDA1MSBjZjI0ZjNlN2JlNmQ3ZTY1ZWE1YTVjNTdmYmYxZmJhOGY4YWQyZmUwIGFscGhhMTAwCis0MDUyIDMyYzI4YWRjY2QxMmIwNjkwYzE5NWQzYThjMjM4YmExMjQ3MDg2M2YgbGVnYWN5LXRydW5rCis0MDUzIDNhYWM4MjVhNTNiNTIzZGY1ZjAyYWQwZjM4NzcxZDFhNzVjNmQxNWIgbGVnYWN5LXRydW5rCis0MDU0IGNiZWU1ZTFlOWJlODMyNTkwNDI2OTk4MDk4MzEwZmU2OWJhMTM3YTkgbGVnYWN5LXRydW5rCis0MDU1IDc2MDNhM2IyY2JlZTk5MzQ1ZDJmOWUzZTdjZmFiZWY5MzE4OGQxYWMgYWxwaGExMDAKKzQwNTYgOTBlZTcxYTNhMTNlYmI0NDgzNmNhZjE2ZjY5OGRiOTJkMjE4YmQ1ZCBsZWdhY3ktdHJ1bmsKKzQwNTcgYTRjN2VmZjI1OWE1OWM4YjRmNTE5OGEyNjc4NDdkYWRhNzViOGExOSBhbHBoYTEwMAorNDA1OCA0ZGVmOTM0ZmY3NWI4MDYyYWJmYThhMDcwMWRiYTY3OTVmOTc1NmU0IGxlZ2FjeS10cnVuaworNDA1OSBmMDJhNDY3NTRmNTA1YzNlZDMwZGFmZDdjNGMxNTU0OGZkYjkwZGE2IGxlZ2FjeS10cnVuaworNDA2MCBhODYyZDhmNDUwN2I4YjRiZDNjNGRmYTEzZDNmOGI5MTc2Mzg0ZmRlIGxlZ2FjeS10cnVuaworNDA2MSAxYjllYzM3ZGIyYjlhYmY5NWNhMWU4YjhkNDE4YjVkMGRlNjRlMDJmIGFscGhhMTAwCis0MDYyIDUwOTZiYjQ4Y2NmZTEzMGJmZTFmZThjMWNhMDA0ZGNmODY1YWY5NGEgbGVnYWN5LXRydW5rCis0MDYzIGI1YTY2MGNhYThlMWJjNDU3YjU0MTQ0M2JiMWIxZGRhMmVlZWNkNzIgYWxwaGExMDAKKzQwNjQgZDkwYWFhMDkxMjNiZjU4OGE3OWQwOWZmZWZmMzcwNzJhOWRkM2Q4YiBhbHBoYTEwMAorNDA2NSBlMjgyMzExMGMwNTE1NzA0NTQ0NGUxZjM4YzMyZWQ4ZWM1ZjJkOTEyIGFscGhhMTAwCis0MDY2IGU2YTIxM2I3ZDBkMmI5ODAzY2Y0MDIzZjBlNjRmYzBjZDcyNTE2NzcgYWxwaGExMDAKKzQwNjcgNzJjOWE0ZGM0ODQ3ZDc5NDg5Nzc2ZDU2YTI0MjNkM2VhMGU1M2FiYiBhbHBoYTEwMAorNDA2OCA0ZjQ0OWFiNjA1NjdmYmI2NDNlMmFkNDUzNWNjYmRjOWM5ODBmYmE0IGFscGhhMTAwCis0MDY5IGZmZDQ5NWJhY2JkNDM2ZjAwZThjYmViMmJiMGMxMDgzYWI4M2YwNDMgbGVnYWN5LXRydW5rCis0MDY5IDhlN2Q4ZDBkNGU5MGE5NDUxNThkYTU2ZGFjOTg4ZGY3MjliYjVhODcgYWxwaGExMDAKKzQwNzAgZjdlMWUyMzg5Mzc1ZjIzMjYyMGFlZjhlNGFkNDhlNzFjNGM1OGIyMyBhbHBoYTEwMAorNDA3MSAwMWQyNjQ4NmIwZWU2NjQ3YzNmMmQxMGEwZGJiZjQxMmEzNmY4MmZjIGxlZ2FjeS10cnVuaworNDA3MiAxNGIwMzQxOGM5MGZiMzhhZjIwZmVkN2Y0NzI2ODllZTk1M2M0Y2NiIGxlZ2FjeS10cnVuaworNDA3MyBhNmU2ZmFkMWEwMWIzMmZkZjQ0ODMzZTRmMGY5OGI3M2QzNzI0ZjFjIGxlZ2FjeS10cnVuaworNDA3NCBhMDllZmIxMzVkZTU1MjQ2MzUwZWU0MjQ1YWMxODE5ODRiNTdlNTdjIGxlZ2FjeS10cnVuaworNDA3NSBkMDc0YjJmYjYwOTE0ZGQ3ZDVjYjkwMWI5MWY5NWZiOTJlZjY4MmQ1IGxlZ2FjeS10cnVuaworNDA3NiA3M2RkMmE5Nzk4NTdmMTdiMzZlOTE1MzJiMTY3MmZlNjVkY2I5NjJlIGxlZ2FjeS10cnVuaworNDA3NyBiNWQ1YmJjZWIwMGY2MDQ4NjM0Yjk4ZjA3ZDg2OWJkZGI0YTkzYjUwIGxlZ2FjeS10cnVuaworNDA3OCBhOTYxNmY1NjU0NjU1Mzc4Mjk1ZTRhOWIzMTNlM2VkOTRlODRhODU2IGxlZ2FjeS10cnVuaworNDA3OSAyNzM0NTE4OTIzMjdjZTFmMWIwN2YwZGQ0OTA5ZDBkNTZlYTY4ZGRmIGxlZ2FjeS10cnVuaworNDA4MCAzODJiNGY4YTczN2E0Y2ZmMWFiN2IwNWZlOTNiOGRkNjcwNTQ2OTM4IGxlZ2FjeS10cnVuaworNDA4MSA5NTNlNzRlYWMwMDYyOTgxNjljNTJlZTcyYTI5ZTdmNGY0NWQ1NmNmIGxlZ2FjeS10cnVuaworNDA4MiBjZWQzZDExMjJmN2NiYWIxM2UwNzcxMzJkNjhkNGQwMTE5Mjg4NTNiIGxlZ2FjeS10cnVuaworNDA4MyAzNDRkZDI4ZGE5YzU2NjIwZjUzNmVhMWEzOGU4NzI4MjNjNTBkYjNmIGxlZ2FjeS10cnVuaworNDA4NCBhOTQ4YjQ0YWQ0YTE1NTBiNTcyYmI3NTgxMDJmZTVjMDgzMGZkMDQ2IGxlZ2FjeS10cnVuaworNDA4NSAyZmU1NGY2MmNkYjU0OTcyYzFhNTkyY2M2M2RlYWU0ZTk3NTk4YmZjIGxlZ2FjeS10cnVuaworNDA4NiA0YzMwNjJjNzEzNWZjZDNkNzFkMDRlNDg2MWRlODJiMjI3ZWZmOWIwIGxlZ2FjeS10cnVuaworNDA4NyA2YTBlNWNkNDk5YzQ1ZWRkZDc1Y2NiM2JmODI0M2M0NTZkOGNmMGJlIGFscGhhMTAwCis0MDg4IDQ5NmM3ZTlmMTFkMjQ4MjBkYjM0NTM4MTRmNjIzNGFkZDVmMjI5YzkgYWxwaGExMDAKKzQwODkgY2EwMjMzOTllNWM5NGJiNWU3ZjkyZjlhNWYwNGE0NDJiMDNiMjIzOCBhbHBoYTEwMAorNDA5MCA1MmZhNGRjZDFiMGUwYTE2MmIwZmRjN2I0OGIxM2U0M2JiNWIyNjRkIGFscGhhMTAwCis0MDkxIGI2YzM1ZTFmYWRhZTZmZjEyNzFmNWI1ZDg3NWIwYmI2NGJmZTE2YmYgYWxwaGExMDAKKzQwOTIgOGY5NjgwMjczMzA3NzUzOGY4OTVlMzk3NTc0MWRkOWIxODBlNmZjMiBhbHBoYTEwMAorNDA5MyA5YWU3ZjJmZDg5ZjEwOTdkYzc4YTY2MTg5YWViNGJmMGI0MTNmYjQ3IGFscGhhMTAwCis0MDk0IDRiNTBmMTA0MmU4ZGMwOTAzODZkMDU0NzE3OTE4ODJjM2JlMWY2NjAgYWxwaGExMDAKKzQwOTUgNzYzNzE4MDVkOWYzNzRmMTk3MzI4ODEyOWEyNDMzMTRjYzQyODg2MCBsZWdhY3ktdHJ1bmsKKzQwOTUgMDNiMDU3MTdiOTUyMjRhZDJhNzA3YTc2MjA1NjQ0ZDkzMzcwOTk1YiBhbHBoYTEwMAorNDA5NiAxZTNhNTUzZTQ3OWFmMDhkZTNlN2Q5YThlYTU4ZDA3MzhiNTkyZGYzIGFscGhhMTAwCis0MDk3IDNiOTBhOWZjMWUwMzk4OTI4NTNiNjViY2NkODRiOGZlYTE5MjQwNjkgYWxwaGExMDAKKzQwOTggMWYwNmY3MTkwNGMyNDFmMGEzNWJhNzU4MzQ3N2Y4Y2U5ZTRjOTIxYSBsZWdhY3ktdHJ1bmsKKzQwOTkgNTA4YjczZTBhN2U0ZjFmMTViZjZjZTQ0YzdlNzZhNzY5ZmJmZDgyNCBhbHBoYTEwMAorNDEwMCAzYWZhZmFjM2Q3YTE2YmViYzI5ZTc0YTE0ZmNkYjRiZTBhM2I2ZGZmIGFscGhhMTAwCis0MTAxIDAyZDhjMTU4ODJmZjlhZDUwOTY4YTNiZTE3YzgwM2ZhYjE4ZjExMjcgYWxwaGExMDAKKzQxMDIgNTI5MDQyOGJhZDM3MTViNzNmYTBkMTIwMGEzOTRkNzIxOTBiMDc2MyBsZWdhY3ktdHJ1bmsKKzQxMDMgNzViY2IxZmM2NWJlNTljMTMyNTc2OWUyYTJkMjdiZjUxNDZmZmM1OCBhbHBoYTEwMAorNDEwNCA4Y2Y2NDBlZjM0NDAwNzY4OWU5ZDM2NDQxYWU0MzVlYjdhYTUzZTJjIGFscGhhMTAwCis0MTA1IDEwMDllYTQ5MzY2Y2M5OGNmNmZhZjk1NWQ2Y2Q5YWQwM2Q4OWRiNmIgYWxwaGExMDAKKzQxMDYgYzJlNmM5YTdhOTVmOGI0NmFmOTY4NjFhNDVmYTI0NGNhMWMyMTNmZiBhbHBoYTEwMAorNDEwNyAwYTYwNDYwZTk5ZjAyYjQxOTZlNGE3YmRjM2IyOTg4Y2E3ODA0ODIwIGxlZ2FjeS10cnVuaworNDEwOCBkYzhlMWQ3MmQ3OGRjY2U1ZWY1MDFiNDNmNWQ1MmYyN2M2OTY1MjI5IGxlZ2FjeS10cnVuaworNDEwOCBjYWVhZWUzOTBlNDNmZTU3M2E5M2QzNWMyYmNlODM0MjczM2EwY2QzIGFscGhhMTAwCis0MTA5IDFiMTdhYWYyNTEwNTQ5NzZiYjJjM2FlYzdjNGQ1OTQxNDAxYmI0YmQgYWxwaGExMDAKKzQxMTAgMmJjZGRjOTA1ZGEwYjlmOGNiNTI3ZTZmY2ZiNWZlOGRjNDNjNzI0NCBsZWdhY3ktdHJ1bmsKKzQxMTEgMDgwODExYjFkMDIzMzIwZmFiM2E4OTVmZjZjYWM5NGQ2YjEzYmFjOCBsZWdhY3ktdHJ1bmsKKzQxMTIgMWNkNGZkMTY2MjNkZTIzNGU2YzIxZjg4N2QzOTM3MzRjNTM5MjI5YyBhbHBoYTEwMAorNDExMyA0Y2JmNTM2YTZmMTgwMzg1OGU0YjU3MDE5ZjZiYWQ3Njg2N2ZjYTY2IGxlZ2FjeS10cnVuaworNDExNCBjNTRjMDdhYmNmY2YzMWZmYmQyOGUzNTA4MGRiYzUwNDIyMjM5YzkwIGFscGhhMTAwCis0MTE1IDZiZTkxYzQ0Y2FmZmQ1ZTJjM2Y0MjkxM2Y4ZGRiMjNhZjk4NWI1MzIgbGVnYWN5LXRydW5rCis0MTE1IDZlNGE4OWVlMTE2MzRiNWVmYzBkYjBmZTEwNzUzYmQ4MzllMTMxNDYgYWxwaGExMDAKKzQxMTYgMjNmZDUwZDc3YjVhMDUwMzZkYWJkZGY0YmQ4NDdhNzU2YzgyM2U1OSBsZWdhY3ktdHJ1bmsKKzQxMTcgYjVhNTdhZjQwNTA4YzhlNGRhNWVhYWE2ZTU4OGE1MGVkMzc1OTFkNCBsZWdhY3ktdHJ1bmsKKzQxMTggYmI2MTgxNmUxZGFiMGU0NjgxMjEzYTcyMWVjNGRhZTM5YzM5OTBmZSBsZWdhY3ktdHJ1bmsKKzQxMTkgOTQ2MjFhNDY4YjYwZDQxNTkzYzEyYWE4MDMwMTlmNmYzNmQ4M2MzZiBsZWdhY3ktdHJ1bmsKKzQxMjAgOTNlMDM2Nzg2YjE3YTc4ZDBkMGVmNTgxNTAxOTZiNWE4ZDk0ZWJlNSBsZWdhY3ktdHJ1bmsKKzQxMjEgZDg4YWY1OGU5NWNkMDg0NGViOTk1MWE3YzZiYjQyZDkwNTczNjhhZiBsZWdhY3ktdHJ1bmsKKzQxMjIgZTI2NjVkOWQ0ZTQ2ZDI1NDlkNTliZTA4NzU1ZTBkNzE1ZGQxN2M3NSBsZWdhY3ktdHJ1bmsKKzQxMjMgY2YyOWMwOWYwN2I2MWY3OWVhMjM4YjE3ZDEyYjA2MjQ1NmQ2NTM2MCBsZWdhY3ktdHJ1bmsKKzQxMjQgMDNkMzUxYjZmNzM4ZTRjNWI4YTJkZmIxOGRiYWY4MzdlODkwOGFlYSBsZWdhY3ktdHJ1bmsKKzQxMjUgYzUwMTI3ODA5MTc5ZGRlZDdjN2EwMTM4OTJkZDRhYTNkYWYwZTAyZCBsZWdhY3ktdHJ1bmsKKzQxMjYgYjk0OTIyNGE0YmQ1NjFhOGQ4NTBiMTNlYjQ4ZjRlOWI4OWYxNTE2NCBsZWdhY3ktdHJ1bmsKKzQxMjcgOTAyZmZmNTVkYjM4MWYwOTM0ZDlhYzM1ZTVmMjJiNmI3YjFmZDJjOSBhbHBoYTEwMAorNDEyOCA1MTdiYWFlMWI2NjNjMjYxYjZhMDdkZmY1OWYxYjA2MTA4ZTU4NjkzIGFscGhhMTAwCis0MTI5IDQ2OGI4Nzg0ZGE0OGI3NGEwN2VhODBiYjYwMTVjODljYzY1ZWY0YzkgYWxwaGExMDAKKzQxMzAgYmZjZmY4YWY5NzUxNjg3ZmU5MWMxZjUyYmFhOTkzMTdkZTg3YmQ4NiBhbHBoYTEwMAorNDEzMSBmODU0MGE4Y2Y1ZDc5NDY0NWI0YjU4YmU1YjQwNTg3OGQ0MjFjYzM1IGFscGhhMTAwCis0MTMyIGEyNDAzZmUyYzg4NTgwNTVmNjUxYTc5MTkwMDgyODA0OGExZjc5NDAgYWxwaGExMDAKKzQxMzMgMmIwN2Q5MjVjMDlkNDFlZWRkMWJmN2YyODRjYmQ4YWZhODNmY2ZhYSBhbHBoYTEwMAorNDEzNCBkZjIyMDRlNDdiNjVmNzVhMDVlZTIxZDJlNTgyZTFhY2FiMjM2M2I1IGFscGhhMTAwCis0MTM1IDc3Yzk0OTMwMWRiMzc0OTA0YmY2NWI3NWUxNTU4ZThiYmYxMGJlYjIgYWxwaGExMDAKKzQxMzYgNzg3NDc1NjEwYjAyZTMxZGM1NTcwYTEzMmQwYTc3YTNjYzYxMzdiNyBsZWdhY3ktdHJ1bmsKKzQxMzYgYjcwNzJlYzdkNjUyMzdhY2U0NzFhZDNmYjM4MjExMTRjNWM0N2FlYyBhbHBoYTEwMAorNDEzNyA3YjFjNDlhN2QzNzVlYTA5NWY1YjY4NzBhY2EyMTRkMmIxNjIwOTM3IGFscGhhMTAwCis0MTM4IGRhMmFmYzAyOThhNzBmY2U3ZDNjMTk2OGFhNDA2MjI5YzJlNjQ1YjUgYWxwaGExMDAKKzQxMzkgOWRhNDk0MjM4NzczYzkxNmUyNWE2ZTMxNWZkNmZiZDllZjFmNGEyMiBhbHBoYTEwMAorNDE0MCBmYjViYjllN2NkN2E4MTljMWQ0ZTJhYTg1MzRkZDhhMmQ2ODUzNDY5IGxlZ2FjeS10cnVuaworNDE0MCBlYmU4NjgxY2Y1ZmVhZjFhNGRkOTgwMDc0ZTBiNDAyMDZjMDg5MTkwIGFscGhhMTAwCis0MTQxIDg3OWU4ZDA0ZTU4OTY3N2ZjNjQwOTVkMDA3MzJkNmVlMTc4NDc4ZGMgYWxwaGExMDAKKzQxNDIgZWIxMWEwOThiN2ZmMmNjZGU4MzllYTc2MDEwYTFjNzM1NmU1ZDczNyBhbHBoYTEwMAorNDE0MyA5ZTdkMjA2YTQ5MjIxNjZhMjE5YWI1OWQ0MjM5YjUyZDYzMTk5ZTM0IGFscGhhMTAwCis0MTQ0IDkzZGY4MzAyMmJlODc4YzExMDc2YTg2MDg4YjhjMjBlMDE3NTM0ZWUgbGVnYWN5LXRydW5rCis0MTQ1IDc3YmJlNThhZmVhYjUyNTMyYmFhMTcwZWY1OWM0MzY4OTM2ZjlmYTYgYWxwaGExMDAKKzQxNDYgMDE1YWYxYzQ3NzI2NDI3ZmVmYmE2YWMwNGNkNmU0YjU3OGU1ZDY0MiBsZWdhY3ktdHJ1bmsKKzQxNDcgMTkwMWUwODA4NmY5ZmQ2NGU3MGYxZTEyYjkyNzY0MGNiNzY2ZGViZCBhbHBoYTEwMAorNDE0OCBmMWIwNDBiY2EzZTEyZWFkNGJlNTljZWM0ODA1OGU5Y2I3NTRkNWU1IGxlZ2FjeS10cnVuaworNDE0OSAwZmIzYWE1Y2E0YzAyZWNlMTAxYzNiZDBjZWQ1ODRkZTRiYmU5OWJmIGxlZ2FjeS10cnVuaworNDE1MCBiYTk1N2FhNDIyNDFhOWNlOTBiNTg3NzU3Nzk5MDQ3YjcxNmU1NmQxIGxlZ2FjeS10cnVuaworNDE1MSAyMjI4MDJmMGQ5NzgyOTU0NWY0MTBkNzUwMWZhZTZlNDNiZmY0Y2U1IGxlZ2FjeS10cnVuaworNDE1MiA0YmJhM2M5MDdmZmFlNDc1Y2EwYjIzNTFkYjM1ZGUzMWQ5MGY5M2M1IGxlZ2FjeS10cnVuaworNDE1MyAxOTJkODY5YmViOTczNmExODE3NjkwNzQzNmEwNTRiOTBmNDk4ZjliIGxlZ2FjeS10cnVuaworNDE1NCA2ZjgxYjEzZmQ2YWMwOGQ0MmU2MTg4ZWZiYjliMzY0ZmFmZDU0ZmZhIGxlZ2FjeS10cnVuaworNDE1NSBkZTJkYzFiYzRiYWUxY2MzYzhjOWU5MzgzNzBkZjdjNDc3MzM0ZTYxIGxlZ2FjeS10cnVuaworNDE1NiAzNzViOGI4NjMxMjZmYWVkZmU4YzYwOWIwOWNiMWU3NGMxYWE0ZTExIGxlZ2FjeS10cnVuaworNDE1NyA1NjU2Zjg4N2ZmZjM3ZWZkOTM5ZTg3ZjZhM2FiNWQ5ODg3M2U2MTE1IGxlZ2FjeS10cnVuaworNDE1OCAzNjZhMDI5MmI2MTQyZTY0NTBkYzM1ZWJhNmNlN2M1YjJhNzAzOTExIGxlZ2FjeS10cnVuaworNDE1OSAyZWY5ZDUwYWI2NTRiYTUwMDNiZTQ4OGI5ZTgyOTViMDgzMWMzMGEzIGxlZ2FjeS10cnVuaworNDE2MCBiYjU2NmQyOGNhYTBkM2FmZTkxYmU2NjhlMTU5ZjFjYjNkOTY4YmFjIGxlZ2FjeS10cnVuaworNDE2MSA1ODQwZTU1M2ViOGQ4OWZjNzU5ZGUzMjYwYmQxYmI5ZDUxZmY5ZjRkIGFscGhhMTAwCis0MTYyIGRiMGVhZWY0MmNiOTRlOTIxOWFlODk2YTc4NzQzYWI4OTU2YjFhOWQgbGVnYWN5LXRydW5rCis0MTYzIDk5MjhkMzMzODIxZGUwYmJiOGI4YTU0YzExYTExZGQ1NmYzNDdmZjYgbGVnYWN5LXRydW5rCis0MTY0IDUwNGJmYTU5Yjk1NGVmOTdlYzFmNDZjYjgyMWJjYzRiYTE1MjlkYjcgbGVnYWN5LXRydW5rCis0MTY1IGJhOWI3NTVlMTdmZTBiMmRkMjA2MjdhMDcwYmFjYWQyOWE5MDc2MWQgbGVnYWN5LXRydW5rCis0MTY2IDBkNjEzM2FiYjZlNWZjYmY4ODNmOGEwYmFjMTY5MTg0ZDcyYTg2NzggbGVnYWN5LXRydW5rCis0MTY3IGExNjAxZmMyYjNlNDQxNGJhMzI4YTBiZTMzMzc1N2RkNWMyYTI2YWEgbGVnYWN5LXRydW5rCis0MTY4IDJmOWJhMmViY2IxMDczYmZlMTdjYjdlNzQwZTRlYTZhMDI3ZTgzMzAgbGVnYWN5LXRydW5rCis0MTY5IDQyMTBiMGRlZjNkNzgxNTA1M2E3MWJhMjFjY2E3NzY3YmFkOTY2NjkgbGVnYWN5LXRydW5rCis0MTcwIDFkZDMxMTUzNzA5ZGQ1YzYyNzhmNmViYmFiY2Y0MmYxMGYwNjQzNWUgbGVnYWN5LXRydW5rCis0MTcxIDQ3MGE1MTU0NWQ2YzRkY2VjYzhhMTI1ZjdlZmFmZTMwZGI5NGM3YWIgbGVnYWN5LXRydW5rCis0MTcyIGU1YThmNjQ3OTIxNjkxZDllMjg3MTE0MDYzNGZiMDA2MDFmMTQzYjUgbGVnYWN5LXRydW5rCis0MTczIGUxNjc2OWNkN2E5MDFlZDc0M2ZkMzJmODI3Nzk1MGJmZTFkNjAzZDQgbGVnYWN5LXRydW5rCis0MTc0IGNkZjQ0YzE0YzI3MDg5MGNiMGQ3NTQwZGY5NjI5YTU0ZGNlNjU3ODIgbGVnYWN5LXRydW5rCis0MTc1IGU4MGM3MTM5ZjUzM2U0ZTM5YWIxNGVmYTM4MGQ1Y2ZhNzRmZGJjMTcgbGVnYWN5LXRydW5rCis0MTc2IDZiMGYwZWYyYzEzMmM3NTk3MTk2ZjU2NWVjNDQ0ZDNmODhjNjFiNDIgbGVnYWN5LXRydW5rCis0MTc3IGJkMWQwYmE0MGY5MGNlNDI2YjUxNTZiYjdhZDNkOGE2OTZlNGUyMTIgbGVnYWN5LXRydW5rCis0MTc4IDdmMjBmNGI5MzM1ZmEwNzg2NTM0M2MxYmMyYzgyN2JiYmRmOTI4YTAgbGVnYWN5LXRydW5rCis0MTc5IGU4NjUxZDBlNGEzYzcxODYzNWU0NDAxMTBjZDEyM2U2YzhkYmQ1MDUgbGVnYWN5LXRydW5rCis0MTgwIDU4MWZlNmJmYzkwMjRhMmVhMDU0Nzc0Y2QxYTA5YjY1N2JjYTZkOTQgbGVnYWN5LXRydW5rCis0MTgxIGFmYzU3NDA2NGU2MmNhZTgyOTQ4NmQ3NzhmNjFiMzZjZmFhYjc3MjkgbGVnYWN5LXRydW5rCis0MTgyIDE3NTAwY2Y5NTM4ZjFhOWZlYWY2ODcyZWQ2MjBlNDk2YWQ4ZWE0ZTMgbGVnYWN5LXRydW5rCis0MTgzIDI1NDMyNmYyNDE1ZjQ2YmQwMmEyNTc5YTFlYTdkNTA4NDg0NzFmZDYgbGVnYWN5LXRydW5rCis0MTg0IDg2ZWQ1Mzg0NGIwN2NmNjQ3YjJkNzRlNGYyMzNhZGZjZjFiZWIxYjAgbGVnYWN5LXRydW5rCis0MTg0IDkwN2Q5ZTdiZjRiNTg5ZmMyZjAyYTliOTAwYzU4ZjQxY2U1NTRkODUgYWxwaGExMDAKKzQxODUgOTYwMGQzZDVjY2U3YmRkOTQzMDkyNzc0N2RlNmQ5M2I4ZGNjNzZjNSBhbHBoYTEwMAorNDE4NiBlZTJmODhhNGY5ZTJiY2U2MzlmYmRjMjViZDhkYzhhZDlkODlmNWYwIGxlZ2FjeS10cnVuaworNDE4NiAyODVmZTg5Nzk5Nzk5NTc2NTVlNzZkYzAyYmRiMDA0MDhiOGJhNjRlIGFscGhhMTAwCis0MTg3IDQ1OGQ4ZjNlZjMwNzU4MjdlMWZmZTRiZTQyODViNDNhYTkyMDllMDcgbGVnYWN5LXRydW5rCis0MTg4IDI5Yzc4NTE2ZWUzMzMzYzA5NWJlOGZiZGUyYjJiOTllZDU3YWViNmYgYWxwaGExMDAKKzQxODkgNzgzMWZmZGI3ODdiODNmMmQwNmZlMTdhOWIzYzZjNTkxMzIzOTNkMSBsZWdhY3ktdHJ1bmsKKzQxODkgMjFkN2Y5MzI4MTliNGRhOGVlN2RhYzliZWNiZGRiZWRjYzQwMGQ2NyBhbHBoYTEwMAorNDE5MCBlOTViMDcwMWM4YjU0ZjI0ZGY4YzkwYjgzMDc0MzU3NWVmZDdiZjYyIGxlZ2FjeS10cnVuaworNDE5MSA5NjAwOWRhZTlkNjI2MjZhYTRkMjM3ZmU1ZGQ0NWZlODFlZDdiMTM0IGxlZ2FjeS10cnVuaworNDE5MiBiZWRlMzhjNGE5ZjVlY2Q0MjEwNzM4ZTlkZDk1Njc5YzI4ZmEzNzE0IGxlZ2FjeS10cnVuaworNDE5MyBiYzExYzFmZjZjYWMwMzFmOTI3OTg2YjM0YjBhNGI4ZDkyZjU5YjMzIGxlZ2FjeS10cnVuaworNDE5NCA1OTUyNjRjMmYwNmQ0YTYwOTY2MTYyYWY1ZjQxMTQxYzkzZjcyYjhlIGFscGhhMTAwCis0MTk1IDZjMGUxMWI5NDAwOWEyNTIzOTkzOGY1MjNhNzJlY2RlNzYzNmFkMDIgbGVnYWN5LXRydW5rCis0MTk2IGQ1YjY3ZDJlYzdlZTAzMTAwYTY2ODM3NDBmZGQwZjdmZjcxMjI2MWUgbGVnYWN5LXRydW5rCis0MTk3IDM3MjkwM2I2MzcxMWE5YmRkOGFmYzM3NzM0ZWVjNDU4MzI5ZDM1OGUgYWxwaGExMDAKKzQxOTggMTk0MDg5MmQyZmUzYThjZjNiNzRjYzEyZDY3MDM5OGMzZTQ4MDM2MyBsZWdhY3ktdHJ1bmsKKzQxOTkgZTNhOWQ4MWRmMTg1M2M4YjM3NTc2MjZiMTdhODVhYTgzYWNiNGNmNiBhbHBoYTEwMAorNDIwMCAzZjdkZGI4YmIyZjYzYjczYWIwNzFmY2I3ZTFmOGE2MjJjNjUyMDYzIGxlZ2FjeS10cnVuaworNDIwMCBlN2I1ZmU3NmU1ZWFjYWU0YzY2MjhhOGUzZTI5ZmU4Y2Q0YzgxNGViIGFscGhhMTAwCis0MjAxIDgyODZhNjYyNTAyYmI2YjViMGFlMmIxYjJhNjViYTFjOGRlN2JhZGMgbGVnYWN5LXRydW5rCis0MjAyIGJjZWI3MjBlZTM2MmIwOTQ3ZTBhOGMxMjVhM2E3MWY4YzQ2ZDc2YmMgbGVnYWN5LXRydW5rCis0MjAzIDBiNjQ1NzI2OTU3ZTIzMjliOWM4M2FmMDhkYTcxNGJlZGJhZDZhYzAgbGVnYWN5LXRydW5rCis0MjAzIDQ2MzljM2FkODM0YjdjYzA4MWQ4MGQ4ZmZkZmZlZjBlZTUzZjdiYWYgYWxwaGExMDAKKzQyMDQgZWMyNWFhZDQzNzI0ZjA1NWEzZjgyNmUzOWRmNzI1NWRhOTE0Y2RmYSBsZWdhY3ktdHJ1bmsKKzQyMDUgY2JiNjJlZTg4NTRhNjQzZWM5NjY5ZmUzYzY1N2VhZGM2MWU2YTA2OSBsZWdhY3ktdHJ1bmsKKzQyMDYgYjU0NjhkODg2Y2I1NGEyMDM0YmQwNjU2NDZlNGJkOGRlNTA3ZDRlNSBsZWdhY3ktdHJ1bmsKKzQyMDcgYmJlOWVhNTU4MjYxZWU2ZGViZGEzZjgwMjE5NDQzZWZjMzAzY2RmYSBsZWdhY3ktdHJ1bmsKKzQyMDggNzhhMzY1NDA2YzRjZWJmODVkZGM3YjAwMWM2Y2EzNDRiNzk3YWFlMSBsZWdhY3ktdHJ1bmsKKzQyMDkgZjUzMzc5MWFjYzc3OTdlZjMzYTZmYWZmZmQzYzBlYjI4ZTM1OWRmOCBsZWdhY3ktdHJ1bmsKKzQyMTAgNjk3ZWU4OWFkZGZlMWU2NTVjNzJkYWFhNjEwZWViZTQzMTNjMWEwNiBsZWdhY3ktdHJ1bmsKKzQyMTEgYjk5NTc4Yjg3OGNlNmM0YzZmYmUxMTBhZTQwNGFkNDExZjUxYzM5MSBsZWdhY3ktdHJ1bmsKKzQyMTIgNGQ0MjFmOWU4MzczY2MwYTMxMDRlMWJlYjdkNjZiOWYyZDE5ODUwMyBsZWdhY3ktdHJ1bmsKKzQyMTMgNDhlNmIzMTlmM2U0ODBkOTliZjQwMzVlYmE4NzZlZmUwN2Y5ZjQyZCBsZWdhY3ktdHJ1bmsKKzQyMTQgN2EyZTc2ZWNiOWVmOTFkZjczYjBiM2QyMTM5MzdlZjYxNzY2MGZmYiBsZWdhY3ktdHJ1bmsKKzQyMTUgOWJjM2RiZjA4NzFkMjZlMDUxYWYyNTZhNjRlNDVmM2VhOTc1MjAzOCBsZWdhY3ktdHJ1bmsKKzQyMTYgZDM1MzVkMDYyNmI0NjgwMmI3NDg1YmRlOGZlNjMzMWFlYWIwOWI1ZiBsZWdhY3ktdHJ1bmsKKzQyMTcgOTQyYzRkMDk0YTBjNDE5YzU1YTQzZjQ5YmYzYmE1MmRjZTUxZGE4ZiBsZWdhY3ktdHJ1bmsKKzQyMTggYTA0Njg5Zjk5ODNlN2FkN2IxNmZlNjJmZWRlYmQ1ODUxMjc3NjVmOCBsZWdhY3ktdHJ1bmsKKzQyMTkgNmU5MTMwNDYwMjg4NjdhMGVlYjQ5ZDYyNzc0YWJjYzg3M2RjOThhOCBsZWdhY3ktdHJ1bmsKKzQyMjAgOTA3NjA1MzIwYTVmZDdhNGE1MmI5NzU4ZTk3ZmY3MDg5Nzg0OTdkOSBsZWdhY3ktdHJ1bmsKKzQyMjEgNjg4MTJiNzYzZTBlMmJhZDJiNzk0YzczMzZmMTc2ZDI3M2RiNDE4ZCBsZWdhY3ktdHJ1bmsKKzQyMjIgNmNiNzU5YzZkMTc5MGQwNmUyYzFkYTgzYzg5MDQxNmNlZGQ5YjM4YyBsZWdhY3ktdHJ1bmsKKzQyMjMgYjBkY2EyOTcyYjJiMThkOTNlNmFkOGRmMGNlNTc2M2MxZmE4NTcxNSBsZWdhY3ktdHJ1bmsKKzQyMjQgNTFjMmU1YTlmMzljZDE5MWYyYzRkYjBmZWVjMjY0OGIwZWU3MjYzNSBsZWdhY3ktdHJ1bmsKKzQyMjUgN2IzYTc2NzkyNGExYTllMzJiNTUwNzFmMTU5NzZiMmQwNTY5OGRmMyBsZWdhY3ktdHJ1bmsKKzQyMjYgZGY3YWE1NGFkY2QyOWJjMDFiNDU5MWViNDIzZTQxYWI5Y2JjNzBiMSBsZWdhY3ktdHJ1bmsKKzQyMjcgOWQzNjJlNWU0ZTc4OTkwZmFhZDhiNTkxNzRmNmJkNzhjMDUxOGM4YyBsZWdhY3ktdHJ1bmsKKzQyMjggMTdjODBhOTUyOTE0MzkzNmU5M2MzMzk4MzExNDg2ZTI5MzY1MTNhYiBsZWdhY3ktdHJ1bmsKKzQyMjkgNTI1N2FmODBlMTYxMDg3YzY5NTcwZWMyMzU3YzBiYmQ2MzQ4ZTU2NiBsZWdhY3ktdHJ1bmsKKzQyMzAgN2UwMDFjNDgxMGJiYzc2MmIwZjA1YTc3OWI5Njc3MTRkYWRkMGNmOSBsZWdhY3ktdHJ1bmsKKzQyMzEgZmZkZmFmMWIyNGQ1NDBjY2QyOTY5ZjM1OTY1YzQ1NjM4ZDM0NTEyMiBsZWdhY3ktdHJ1bmsKKzQyMzIgOThhMjBhNDBmNjEzYjEzZGZhN2E1NGFlNDBjMzA5ZjVkMjNmM2RlNiBsZWdhY3ktdHJ1bmsKKzQyMzMgNzZjYzg1OGUzMzkxNTgwZDE1NWE1OTE3ZGEzOTMwZTJjMzEzNmNlMyBsZWdhY3ktdHJ1bmsKKzQyMzQgOTJkZjMwZGY1ZDc3OWU4MjJjMDBjZGFjMmI0NTY3NGU5MDc1MzNhNSBsZWdhY3ktdHJ1bmsKKzQyMzUgMjA4OTc4MTZhNGI2YzhkZDY0MThhNjRlYjllYTU0YTBhYjBkODYyZCBsZWdhY3ktdHJ1bmsKKzQyMzYgMWMyOGYxOTM0YTExZWVhNGI2ODI4ZDVkM2U4ZWE5Njc1MmUxNjY0YSBsZWdhY3ktdHJ1bmsKKzQyMzcgYTNmMTk5ZThiYWM2ZjAwMzIxNGIwMGQ2MGNkY2JiMGQyMWVhODFhNyBsZWdhY3ktdHJ1bmsKKzQyMzggZGQxNjdiZmQ3YTA4NmE5ZWU2NjFhZmFiMDgwNWE0M2Y0MmVjODdjMiBsZWdhY3ktdHJ1bmsKKzQyMzkgNzcwN2I5NzA4ZjZjYzdjM2Y5ZWJkN2Q0NjkyYmEwNmEzMDM2NGIxOSBsZWdhY3ktdHJ1bmsKKzQyNDAgY2I4NGRkNTFjMmFhMzEwZTViYWU3MWQ5ZGI0ZTc0MWNhMGVlNWJmZiBsZWdhY3ktdHJ1bmsKKzQyNDEgNTZhOTg2ZTQ5ZjU2N2NkNjg0ODc4NGJjNWI2NDUwZjAwZWVlMmMyMiBsZWdhY3ktdHJ1bmsKKzQyNDIgNDNhZTdmY2Q3ODM1MmEyZjdjZTI5NWFhZGE3NGRlZWQxODUxNzUzOCBsZWdhY3ktdHJ1bmsKKzQyNDMgMzYyMTRjODYxMTQ0ZGQ2MmEyMGFkNGQzYjI3YjljODI5M2Y2MDQwZiBsZWdhY3ktdHJ1bmsKKzQyNDQgNTM1YWNhNmZmN2U5MTM0NzE4YTAyYjRmNGFmYjIyYmJlOTc2M2IxNSBsZWdhY3ktdHJ1bmsKKzQyNDUgYTU4NGI0YmJiYzU5MzRjMWFlNDFlZDUyOGFlNzkyYzEwNGRmNTJhNSBsZWdhY3ktdHJ1bmsKKzQyNDYgNjY4NTA0ODQzZDBmNDE4OWM4NDUzODJkMGJkNGJjZGM1NzgzMmI0YiBsZWdhY3ktdHJ1bmsKKzQyNDcgOWI1MzBiYjU0NjQyYmExODZiYjU3NGI1ODk2MDEyYjIwMDkzNzRkZSBsZWdhY3ktdHJ1bmsKKzQyNDggZmE4YmJkMDlmMmU2YjZjNmU5NzQ3MTk3YTI4MzhjZTg3N2M0NDZhMSBsZWdhY3ktdHJ1bmsKKzQyNDkgYjcxMWM5MDEwMjMyOTMyNjliMWRlMTY3ODFmYmJlMDVlNzg5YTAwZCBsZWdhY3ktdHJ1bmsKKzQyNTAgYjE2N2UzMzUwNDkxMjBlYzdiMGZjNWU2ODc0NGM1ZTc2ZjYwYTg0YSBsZWdhY3ktdHJ1bmsKKzQyNTEgZjA3YzRmZjBmNzk0Njg2NzIwZjBlMTliZTczNTVmNGZiNDNlODkxZSBsZWdhY3ktdHJ1bmsKKzQyNTIgNjA2NjAzNDFlZTEwNzFiNDBmZWY5MzVhM2MxNjYxMGU1NmU4MmVkOSBsZWdhY3ktdHJ1bmsKKzQyNTMgYWQzZjFkMzYyYzE0MDZjZmMwMjJhNDBhNzBlYTk4MDdlYjNhNjBjYSBsZWdhY3ktdHJ1bmsKKzQyNTQgMTQ4ZWUyYWE2M2U2ZGVjNTkxYWM3NDUyMGZhZWMxZDFiMTJjZTdkOSBsZWdhY3ktdHJ1bmsKKzQyNTUgYjg0MDI5NmI5ZTA1OGQyNzRhODkwMDQ0ZDhjYWQ1M2NkZWUwNzI1NSBsZWdhY3ktdHJ1bmsKKzQyNTYgZmFmYTVkYzgxMDBmODQ5YmZlNzFlNGYwNjgyMGY4YjM1NDk5MmYwNCBsZWdhY3ktdHJ1bmsKKzQyNTcgYjQwOGQ2YTYzODE5NTIzOWU2MjdlN2EwNTgxOGVkYjQ4NmQ3ZjdkYSBsZWdhY3ktdHJ1bmsKKzQyNTggNWI5MmEwODM5MzRkYmZiMzk0NzdmNzRjMDY0YzU2MGNjNTE3ZTAxNCBsZWdhY3ktdHJ1bmsKKzQyNTkgZjJjZTMxOTFmYzlkZTM4YjQ2MWJmNWJiNDRlOTNjOGYyYTJhNmFlNSBsZWdhY3ktdHJ1bmsKKzQyNjAgNzgyNTA5ODEzZDU3MmI4NmY5MGNjNGNkMjdjYmE1YzA3OTNlYzRlYiBsZWdhY3ktdHJ1bmsKKzQyNjEgNmNmZDQzZDVjMDc0NmIwZWM4MGUzNGU0ZGE1OWYyOGU3NzBjNzFhYyBsZWdhY3ktdHJ1bmsKKzQyNjIgZDhkOTQxZmFmNTExMGIyMzE2ZDIzN2Y5MzgxYTI0YWNmZmMzZDhjOCBsZWdhY3ktdHJ1bmsKKzQyNjMgZDg5MmFjNGI0ZmI5OWUxNDkxYTI3MDUyMjQxMGYwYzU2YmU5Yjc3NSBsZWdhY3ktdHJ1bmsKKzQyNjQgZWE1YjEzZDExYTEzMDViYjQwNGVkMGNhOGEyOGMxZGY4MmNjZWNjMCBsZWdhY3ktdHJ1bmsKKzQyNjUgMmQ1YjM2YTQzOGFiOWNmMzg1OGI3ZDcwYmQ1OTYyMjQ5ZWZjYTM4MSBsZWdhY3ktdHJ1bmsKKzQyNjYgYzQ3ZDUyNmE5NGQ5MmUzOGU2NjZlOGNmM2UyMTMyNjcxNWMwNDE4MCBsZWdhY3ktdHJ1bmsKKzQyNjcgMDQwNmEyMDhjYTVkM2MxMzdiOTVkNmRiYmE2ZWMzZWNjZjQyYWY0OCBsZWdhY3ktdHJ1bmsKKzQyNjggNjM1M2ZlMjVjZGNlNGJlNTNjOTU3OGVmYzA2Y2RhZjVhNTJjZjg3ZSBsZWdhY3ktdHJ1bmsKKzQyNjkgM2I0NzAzMTczY2FmODY2NGZlMTRmMDA2ZGEyZTllNTJlOTQ0ZGE5OCBsZWdhY3ktdHJ1bmsKKzQyNzAgMjBlMWQyOTZmZGNjODZiY2ViODJkNjM4N2YxNjQwOTQ0MzA4MTNiNiBsZWdhY3ktdHJ1bmsKKzQyNzEgYTcxMGZiMDAxYTNmYjQ1MTNjMjFmYjEzNGM4ODA0Yjc2NDYxMjQ5NSBsZWdhY3ktdHJ1bmsKKzQyNzIgYTI2YjMxZTE1OWJlYzQxZDc4Yjk2ZmYzZjViYTdmMDI0ZjM5MDIwNyBsZWdhY3ktdHJ1bmsKKzQyNzMgY2U1NDQ3ZGI4ZjUzN2UyYTA0YmJhMzUwZWY0OWUzZTQ1NDQ1MGY1YSBsZWdhY3ktdHJ1bmsKKzQyNzQgNDA1OTRmODBhYjNjMmYyODllMjA5ZjY5NTRmOTBlNGIxYmVlN2VlMSBsZWdhY3ktdHJ1bmsKKzQyNzUgNzZkMGYyYjNiOWVlNzExNzllMGFjZDUyMTQ5MDQxMWZiYWUyZTk2MSBsZWdhY3ktdHJ1bmsKKzQyNzYgYTZlZjJjOTdjNzc2MWVkMjEyNzBiYTdhYzVkZWUzYWVmNjNlMTEzOSBsZWdhY3ktdHJ1bmsKKzQyNzcgYjExYTA2NjhiMTgxY2NiYjQ1NmRiNzg0ODIyYjk4YmQ4MzRjOTI3MSBsZWdhY3ktdHJ1bmsKKzQyNzggNzkzMWRlMDFlNjkzN2RlNWE0ZDMzMWQ0MzU1NWIwZjJiM2U2MjdhMCBsZWdhY3ktdHJ1bmsKKzQyNzkgY2U4OTdlNzUyY2E0YWM1NTE1MzFhMjAyMmQyOWY3MTQwMzhkNDlkOSBsZWdhY3ktdHJ1bmsKKzQyODAgZjVmM2RkZmVjM2M3YjE1Y2M5ZGNjYmFmMTFhMWM1MTdlOTc2ZWIxMyBsZWdhY3ktdHJ1bmsKKzQyODEgYjQ2NGUxZDBiMmZiNDM0YzhmNmI4OGIyNDI1OGMyMzZmZmFhNzU2MiBsZWdhY3ktdHJ1bmsKKzQyODIgYzFiMGQ3ZWVkOWZkZmFjNmMwYjRkMDk3NTdkMjU4MmQ3MWIxYjhmNCBsZWdhY3ktdHJ1bmsKKzQyODMgYzQ1MzZkOGFmN2I1ZDRlODA1ZjlmNWRmYWQwNjkwODYxZWQyMDhjMSBsZWdhY3ktdHJ1bmsKKzQyODQgMjE2Yjc1NTUxNWU2NWQwMWVkMjQxN2NlYTllNzBhYzRhNjhjOWRkYiBsZWdhY3ktdHJ1bmsKKzQyODUgNzllNDIwODA1YzY3MjI3YjM4OTQwZGI1OTQwMWM0MjE4NWUwYTVjOCBsZWdhY3ktdHJ1bmsKKzQyODYgMzlhNGMxNWFjYjMyZGJlMjEwY2U4YmExZjAzZmNiNThhNTFmYjk3MSBsZWdhY3ktdHJ1bmsKKzQyODcgZjhiYWFiNWMwMTY1Mjg1MDVkODE3YTZhOTdkZmI3YWY5NDg0ZTZlOCBsZWdhY3ktdHJ1bmsKKzQyODggZDc5OTg4OWMwMWUzNWI5M2U4ODRkOTcyYzZlYTcyNjFiZjc0MTQ2NiBsZWdhY3ktdHJ1bmsKKzQyODkgMTIwM2YwNjI5NTI3NTMxYzgwYjU5NzQxOTY2ODZkZmFhODBlYjhmMiBsZWdhY3ktdHJ1bmsKKzQyOTAgODczNjRkOWUzNDQ0ZTk1ZjQ3YTQwN2E4MjU0MDY1NjI3MTlkMzhkNiBsZWdhY3ktdHJ1bmsKKzQyOTEgNWY2YWNkMWFiNWM1MDNmZDNmZTkwOGIxMDc1NDVjYzhjMmM4YjkxMiBsZWdhY3ktdHJ1bmsKKzQyOTIgMWY0YTg2ZGJjZDc5MDY0MTdlOWE4MDM0MTM5ODBlOGY0ODEyZWYxNSBsZWdhY3ktdHJ1bmsKKzQyOTMgYmZkMTE2MjBhMmQ4MWU4MzA0ZjQ4ZjY1NTIyYmI3Mjk0ODkwMTA0ZSBsZWdhY3ktdHJ1bmsKKzQyOTQgMjNmMDNlZjAwMzYxYmM3NzE3Nzk1YjMxZGRjOTMxNTBhNTQ0MmI1NSBsZWdhY3ktdHJ1bmsKKzQyOTUgNjVjYzcyN2YxNDM2YzA3OTcyN2ZmZGQ3MDkxNmNiNDU3YjVkYThhOCBsZWdhY3ktdHJ1bmsKKzQyOTYgODI5NGJiZDk0NTM1MGQ0MWQ0ZWFlMzZlNTEyNTg2M2RiMzQzNmZiNiBsZWdhY3ktdHJ1bmsKKzQyOTcgZDFlNmM5YTY0YTU2Mzg0MWY2MDE3N2FjOTA3NzM5Zjk1M2YxNTYzMCBsZWdhY3ktdHJ1bmsKKzQyOTggMDk1YzFjYzdmMmJiYjIyZmYxMTZiMDMzN2FjM2JkMmQyZmUzN2NkNiBsZWdhY3ktdHJ1bmsKKzQyOTkgNTI0M2ZiMTg3ZDM2YzYwYjAxMjEzM2ExYTVjNjYwZDdhMzVhMTI2NCBsZWdhY3ktdHJ1bmsKKzQzMDAgMGQzMTg0NzVmOWUzNzE5OGI1YTMyMGM4ZTEwZTY5YTc1MjIzYjE0YyBsZWdhY3ktdHJ1bmsKKzQzMDEgYjcyNDU5OTQwMWZmNzNmYmI4ZDU5NWI5YjNkNjMwOTM2MzRiNDk5NCBsZWdhY3ktdHJ1bmsKKzQzMDIgNmUyM2FmNjQ1YjQwYmRkOGUzMWVhMGNjNGM3MmQzMGVmNzc4ZjMxNSBsZWdhY3ktdHJ1bmsKKzQzMDMgMWZjNGRiNzkxNDZhZTVlZjU3N2MwNmZiYTVjZGY3YzU4ZDJlZTQ3ZSBsZWdhY3ktdHJ1bmsKKzQzMDQgMTQ1MzkxZGYyNjU3OWUxYzZmYzQ0MTA4MDhlYTZmYjkxNDk0NWU1NyBsZWdhY3ktdHJ1bmsKKzQzMDUgMDlkZTcyM2IyNTk2ODI2NjVjNDY2MDIyYzAyMjAyYzFmYzFmZTFhZiBsZWdhY3ktdHJ1bmsKKzQzMDYgOWQ0YWRkNDJlZTIyZmY0Mjg5M2VhZjM3NzAyODA4YTI3NTE1N2Y3MSBsZWdhY3ktdHJ1bmsKKzQzMDcgMjc4NmFjYmE2Y2VjMWNmYjlhNTk3MTFmNGNlNjEzZDAyNTM2Y2NhOSBsZWdhY3ktdHJ1bmsKKzQzMDggOWRiZGI4M2Q0MTc4ZjM5Mjc1OGVjOGFmOGQ0M2JjMTNjMjQ0ZjM0MSBsZWdhY3ktdHJ1bmsKKzQzMDkgMTgyMjQ2NWEzNWI4MGNmY2U0MjgzODJlNzU3YWJiNGIyNzc0MjQ2MyBsZWdhY3ktdHJ1bmsKKzQzMTAgZTE1Zjk3NjFjYjAzNWJjYjYxZDYyNGZjZWFhNTMxOWRhNTBlZjgzZiBsZWdhY3ktdHJ1bmsKKzQzMTEgMGIwODE5NmU5ZmY2MTZlYzM3NDYzZGYzMzYyMjEzNzc3OGQwM2IyMiBsZWdhY3ktdHJ1bmsKKzQzMTIgNTRmZGM5YTk1ZjQ4OTA5M2ZmNWVlMzA4ODliOTZlZjY3MzZlNjg3MiBsZWdhY3ktdHJ1bmsKKzQzMTMgNzg4OThiMDRhNjViZWYxZTYyMWZmZjk1MTc1M2Y1NzMwNDk1NzRkNyBsZWdhY3ktdHJ1bmsKKzQzMTQgZDQwNWUzZThmZmQzNDlhZTc2M2ViN2I4Y2ZkY2Y0ZmI0YWQyNWQwZiBsZWdhY3ktdHJ1bmsKKzQzMTUgZWYwOTQ2NTYwNjIwYWNiNTg3OTg5MmZmYTYxZDRiNTEzM2QyOGQ4OCBsZWdhY3ktdHJ1bmsKKzQzMTYgODU1Y2VmYmIyNzE4NjMxMjlhZDFlZDk5YTA0NGZjOGY0MmEzOGY3MiBsZWdhY3ktdHJ1bmsKKzQzMTcgYWFmMWUwNWU2ODQyZDhlZDgzNTU5OGU1YzdiNTljODI5NDJkNjlhNyBsZWdhY3ktdHJ1bmsKKzQzMTggMjBlNjA3MTQ3ODhjNWRhN2E3Nzk5MmY3ZDI1OWUzYjhlMzM5ODk1NSBsZWdhY3ktdHJ1bmsKKzQzMTkgOWM1ZDMzM2QzMzAwZTkzMjQwZTE1ZmUyM2E1MDI2ODZkYTY3YzA0OCBsZWdhY3ktdHJ1bmsKKzQzMjAgNzU4YzEzNzRmMzAzNDgyZmNmYzZmM2ZkYjNiMzQxMDA3ZWEyN2RlMCBsZWdhY3ktdHJ1bmsKKzQzMjEgNjNhZDI4OTM5NzgxYWE4ZDc1NzllMDg2YWNjMmQ1NzY1NjZhYzg0OSBsZWdhY3ktdHJ1bmsKKzQzMjIgMmNlZGU2MWU5YjFiYTRlYjhiYTQ4OWZiNTQwMWQzMmMzMDI1NjU5MiBsZWdhY3ktdHJ1bmsKKzQzMjMgNjE3MzhlZDZjYzEwYzQyOTUyYmE5MmZlMTIxNzRjM2E2M2Q0YmRmYiBsZWdhY3ktdHJ1bmsKKzQzMjQgMTBhMTI0NzNlZTkzMWNhZDI0YzczZDVmZjcyN2YxNDRlMWRmNTY5MCBsZWdhY3ktdHJ1bmsKKzQzMjUgMzJlNmMzYTY3MWQwMGY3ZjBiMTZhZDllMTEzZDQxNzEzZGYwMzZmMCBsZWdhY3ktdHJ1bmsKKzQzMjYgOTA4MWJiN2FjZDUyOGFlOTM0YzU4MmMyOTgwMTYzYzcxZWNiMTcwOSBsZWdhY3ktdHJ1bmsKKzQzMjcgMDc0YWEyNjM4MjZiNDY2OWQwZTI0NGVhMjA1ZDQyM2UxMmJhZTdlOSBsZWdhY3ktdHJ1bmsKKzQzMjggOGM5Y2MwNTRjNWVkY2U2ZGVhZThjNDFmN2Q3MzJiZDk2MTIxZjdkZCBsZWdhY3ktdHJ1bmsKKzQzMjkgY2M1YmY2YmU4MWE1ZDI2ZjgzZDI5NjhhYmQ5NmE0NDBiMjhmYTAwYiBsZWdhY3ktdHJ1bmsKKzQzMzAgMzJkMDA1ZmFmNWZjZDBiZTc0MGEzNTk0M2EyOTM1ZjI2MDA0NjUyZSBsZWdhY3ktdHJ1bmsKKzQzMzEgMjdkNGYxZjkzNDZjNTc0Nzc2NzQ3MjgyNjg2ZjIzZjgxMWUzNmMxNSBsZWdhY3ktdHJ1bmsKKzQzMzIgOTFiZmIyNzcxNTU0ZTgxN2FlMDkzZTdkMWM4NWUyOWY5M2IxN2U2ZCBsZWdhY3ktdHJ1bmsKKzQzMzMgMDVmYjlkZWMyYzljZjFjNGY4ZTZmNDVlMDFlMmJkNWJjZTY3OGQ1MSBsZWdhY3ktdHJ1bmsKKzQzMzQgM2E3MGU5YzBkOWY1MTFhNTdhZTQ0ZWYwNGU3YjQ4NGM1NTk0YjY4ZiBsZWdhY3ktdHJ1bmsKKzQzMzUgZjg0YjY0ZGYwOWMzZTYyOTU1YWU5ZTZkYTE3YzE3Zjg0MTIzZmE0YyBsZWdhY3ktdHJ1bmsKKzQzMzYgNDIxNGE3NTgzZjJiYTg4YjgwZTRjZWIyMDJiMTJmMmEzY2JiNDQxNSBsZWdhY3ktdHJ1bmsKKzQzMzcgYWZiZjExODZjODk3NGEwZGViZjZiZjdiMDRjY2UyZGM1NTkxMTc0ZiBsZWdhY3ktdHJ1bmsKKzQzMzggZDNkZTJjYWQyYzY4NGMxNjAzNWE0OTg3MGQzODBkYzgyZmQ5MDg5YyBsZWdhY3ktdHJ1bmsKKzQzMzkgYWM2YTlmOTBmNmZkNDhkN2MyNTQwOGRhMDY2MGFkZDYzMDU4Mzg2NSBsZWdhY3ktdHJ1bmsKKzQzNDAgZTdjNmExODM4MWQ5ZTdhMzA1Yzg0ODgwYzFmYzQ3MTJhY2E3MjI4OSBsZWdhY3ktdHJ1bmsKKzQzNDEgYmU5NTZiMWVmYjk3Y2NhYTc1ZTFhYTk3YmM1ZDc5YzFlMWVkZGI0YiBsZWdhY3ktdHJ1bmsKKzQzNDIgNGUxY2VhZWUyOTYzMjdkZWZjZTRhYjQ1MDkyODMyY2U3MGJiN2U5ZCBsZWdhY3ktdHJ1bmsKKzQzNDMgYjdkZTY3ODVjOGFjN2Q5NzI0MjAyMjQ2YTQ2OWM3NzYzYzIzNzNhZCBsZWdhY3ktdHJ1bmsKKzQzNDQgMjRhZTdhZjQwYTA5NjBkZWNkZTE2NzgzZjYzNDE4ZDJjZGZjN2FhMiBsZWdhY3ktdHJ1bmsKKzQzNDUgZWVjMGRjNWFiYTYwMTFiYWJhNTA4ZmNiNTYzMTNkNzg2MDIyNTA4NiBsZWdhY3ktdHJ1bmsKKzQzNDYgYWJhNTE2MjEyNDRlN2IwMTIzOThhYWEzNzY2ZDdiYzE2Y2FhNzc3NCBsZWdhY3ktdHJ1bmsKKzQzNDcgMmM4YjRkZjIyYmMyZjA0NWMxMWQ1NjllOWZkMjlhMzY0Mzk3ZTBiNiBsZWdhY3ktdHJ1bmsKKzQzNDggYzIzNTBjODdiZTNmY2M3OWU5NzUxYmQ3MTkxNWQ1ZDE5MGQ5N2I2OSBsZWdhY3ktdHJ1bmsKKzQzNDkgNjU0YWE5NjRkYzI2M2Y5ZGJiZTA1ODQ2NTNkMjllZTNlMzhlNTY0YSBsZWdhY3ktdHJ1bmsKKzQzNTAgM2ZiZGE4NzY4ODU1Mjg2MmNiYjY5YTJiNWNmZTE4NmEzOGJlNDhmMiBsZWdhY3ktdHJ1bmsKKzQzNTEgMjBmMTdiNWFjY2JmODIwMGI4NzJhOTBjYzAyMzUwNTYxNWViM2E5ZiBsZWdhY3ktdHJ1bmsKKzQzNTIgYTY3NzZhNzg4Zjc0OWFlMWQ5OWJhNTI0MjFmNTVjNWI2ZTA4NTQ0NSBsZWdhY3ktdHJ1bmsKKzQzNTMgNWJhZjExMzVhMTNkM2Y1YTYzMmI3YzcwMmMwM2YzYzA1YmU0NGM2NSBsZWdhY3ktdHJ1bmsKKzQzNTQgMjU5ZTY5YWEwZjE1OTg4NzMwMDFiMGE5MGQ1MjQwYjVlODFkZWQ5OCBsZWdhY3ktdHJ1bmsKKzQzNTUgNTNkMTdjMDRiNDJmYjBmMzQ0OWI0Yjg1NjJjZGJmODU1Njc0Y2EzMCBsZWdhY3ktdHJ1bmsKKzQzNTcgZTQ1MGJkNDM2MzFhOTg0Mjg2ZWI1NDAzZGU2OTFlYmVkZDQyYTdhZiBsZWdhY3ktdHJ1bmsKKzQzNTggNjEwOTA2OWQ1NjEyZjAzODhlNDAyMDhkZDg4MmVkNTQ1N2NmOGQzYiBsZWdhY3ktdHJ1bmsKKzQzNTkgNjFjM2MxYTJmZGI0NDNmMmFlMWUwZTY3NzYyZjFhZWY3YjE4NTI5MyBsZWdhY3ktdHJ1bmsKKzQzNjAgOWQ5ODEyZjI3OThiNzNhNjUwZmExY2MxMjExNDJmNTFkYWZjZDQ2ZCBsZWdhY3ktdHJ1bmsKKzQzNjEgYmQ5NDA2OGYwZmQwMzc1NDBhYzUwNGZlODE3NDIzMmNhOGYyM2M0ZCBsZWdhY3ktdHJ1bmsKKzQzNjIgMDQzNzczODI3OWE4ZDY4MDc5M2ZkZGY5ZDVhYmFkMWFkNzIyMjNjZiBsZWdhY3ktdHJ1bmsKKzQzNjMgMGMyMzIxOTRhNjRmMTBjNzFjNjE3YTcyYzY5YTRjOGRlZGFjMTE5MiBsZWdhY3ktdHJ1bmsKKzQzNjQgMzU5NDdmNjA1MjhlZDAxNTdlMjE1MTRmNTU0MDM4YmUyNmRkMGUyMCBsZWdhY3ktdHJ1bmsKKzQzNjUgYTdmMjY5NjEwZWMyZDc5ZjdmZDQ5ZDU0OGY0NjIzODg3MmQ5NmJhZiBsZWdhY3ktdHJ1bmsKKzQzNjYgYWRhMTlhYWFmOGMwYzhlNTA3MWI1N2E0YmE2OTVkZjQzMDhiNmZjOCBsZWdhY3ktdHJ1bmsKKzQzNjcgODYyM2FhMzkxNWRiNzAyYjEwMmNjNzcyY2IzMzY2ZWFjMjk3MDM0MCBsZWdhY3ktdHJ1bmsKKzQzNjggODkzNDEyMTAxMjk2OWYwM2QwZThjN2UyYjA0MzJlZGRkODVhOTFlZSBsZWdhY3ktdHJ1bmsKKzQzNjkgODA4MThjMTA2ZTNlNmY0ODc3YTg0ZTQyNmMwNjFjN2E3ZmJiNTFiMyBsZWdhY3ktdHJ1bmsKKzQzNzAgZTEyNWY1MDIxZTY3M2QxNDVlM2VjZDhjNmRlYzk4ZDNmNmM4N2FmOCBsZWdhY3ktdHJ1bmsKKzQzNzEgMDE0YTFmYjljNjQ2MzQyOWFjNThhYTQ3YTYzOGQxNjJjZmY2YmI2YSBsZWdhY3ktdHJ1bmsKKzQzNzIgZjM5ZDQzNzI4NzcyNGU1NjI3OTZhYjY1MTE1MGZmODFkMjMwZjRjNiBsZWdhY3ktdHJ1bmsKKzQzNzMgZTBhZTZmOTViY2ZiNDE5Y2UyNzM4OWY5ZmYyOTNlYTJmMjQ4YWEzYiBsZWdhY3ktdHJ1bmsKKzQzNzQgNWYzM2NhNTIxNDUyMTI1OWUzNWZlYjAzYWY5NTZhZTBmZWE3ZDkwYSBsZWdhY3ktdHJ1bmsKKzQzNzUgMjc1OTUxYjA4NjA4YzljYzRkN2JlZGE0NzQ1OTMwNmNlZmViNjQwMCBsZWdhY3ktdHJ1bmsKKzQzNzYgMzg1MDcxM2Y2YWVhZTY5MDhkNjRmY2IzODE1NjI5NjYwZDFiMWFkMSBsZWdhY3ktdHJ1bmsKKzQzNzcgYzEwODhkMGJiNTYyMzA2NmNlNTExZTA4NzBhMjBlMTdmNzU1NDgyMSBsZWdhY3ktdHJ1bmsKKzQzNzggNThiMDQ2Nzk1MGQ4MjIzNjhkMGViYjA1YWM0MDUzY2IyMmNhMDY0ZCBsZWdhY3ktdHJ1bmsKKzQzNzkgYTFhYmE0ZDQ1ODkzYjBhZGE5NjI1MzMxNjYzNzU0YThjMGIyODBkMCBsZWdhY3ktdHJ1bmsKKzQzODAgZWE5ZTg1MzNkNmMzMmE5M2YwZTRhMzE4MTkxZWRjNDMyODQ3OTQzYyBsZWdhY3ktdHJ1bmsKKzQzODEgZTU2YWZkMDNjYTdmYzk0NjA2ZDJkYWViNDA0ZTE4MWM0YjZhOTkzZCBsZWdhY3ktdHJ1bmsKKzQzODIgYThiN2VlMGU1NzJkYTdkZTAwMGUzNGUzOGM3ZWQ0ZDQ4ZjMwY2ZiYSBsZWdhY3ktdHJ1bmsKKzQzODMgZjA3ZDY2YzE2MmNiZmZiNjAzYWNjMmY4Mzg5OTljOTEzZmYzMDM2ZiBsZWdhY3ktdHJ1bmsKKzQzODQgZmFjYTdlMzI4YmE3NDljMTNlZjU2YzA3MzYxNDE2MzNmNTYwYzVkOSBsZWdhY3ktdHJ1bmsKKzQzODUgZTNmZjllMmEzZWI3YWY1ZjE2ZjBmZThkMzk2YTdhM2M2NzkwYmVmZCBsZWdhY3ktdHJ1bmsKKzQzODYgNWJjYWFlZDkwMmY1NTBkYWYyZWI5OGFiNjA1NTdmMjg0MTc2YThmYyBsZWdhY3ktdHJ1bmsKKzQzODcgMjM0ODE3NjUyZGIwNmMyZDRmMTU5YWExNzVmNmE1ZWI1Njc1YmIxYSBsZWdhY3ktdHJ1bmsKKzQzODggZjNhZTdjMTdhYzA4N2Q5YTAwZmIwMWMwODdjOWU4ZmY5MjhhMWI2ZCBsZWdhY3ktdHJ1bmsKKzQzODkgZDlhM2UzMGIyZTQ3M2M4Y2NhYjYwMDViNmIzMzMyNzc3YTg4MDc0MyBsZWdhY3ktdHJ1bmsKKzQzOTAgNDVjNzMwMThkZDAxZDcxY2YzODNhM2EyNGQ1ZDg0NGVhZTU5NjYyOCBsZWdhY3ktdHJ1bmsKKzQzOTEgMzIwYmFlYWI3ODdhYzlkNzA1NGNmMDlkMGQxZTBmMjgzYjNjN2Y2NyBsZWdhY3ktdHJ1bmsKKzQzOTIgMmI1ODFjZTQzZjRhMzczMzk4MjllZjZlYmE1NGFjZmNhMzU3NzIyMCBsZWdhY3ktdHJ1bmsKKzQzOTMgOTNkZTU3NzU5NjZlNTU5ZWY2YzJjYmI3NzY2YzMwNDA3OWNhNzI3MSBsZWdhY3ktdHJ1bmsKKzQzOTQgOGI4OTdiN2YzYWRlOGZjNGQ5NjU0M2NiZmM1OTcwMzBmYmQyMWIyNyBsZWdhY3ktdHJ1bmsKKzQzOTUgMGE5MTUyZjg3MTExNjAyMzgyMmFmMGQ2ZTdlZWZlNjc4YmQ5ZmYxNCBsZWdhY3ktdHJ1bmsKKzQzOTYgODVmMWQyYmVjNjMyY2EzODlhZDA4YzQxNDExYjkwZTBjYjNlMWYzMCBsZWdhY3ktdHJ1bmsKKzQzOTcgMzE4NzNiZDZmNGE4NzE2OGU0NjhiOWE1ZTVlNDU5Y2JiMGE0OGRmMCBsZWdhY3ktdHJ1bmsKKzQzOTggOGU4ZmRkY2JkZmQyYjI1ZTRlMTM3NjFhNThhNjRiODM5MGUxZGQ0MCBsZWdhY3ktdHJ1bmsKKzQzOTkgNGJlNmVmMWMyYzFkZjVlMWQ4MzRmNWFkZmUxNmI4NjkyODFhOWE3NyBsZWdhY3ktdHJ1bmsKKzQ0MDAgYmJmODJlYjRhNmQ5ZDMzZjAxMDgwMGUxYzczNGJiNWQ0MTM5ZWRkNiBsZWdhY3ktdHJ1bmsKKzQ0MDEgYmEwOWQ5MGY0MmJiMjYzMTc0YTZkMGE1M2UzMTA0ZDQ2ZmVmM2UzZSBsZWdhY3ktdHJ1bmsKKzQ0MDIgOWJjYWM4ZGEwMjYyNDQ1YzVhYzA4NTk1YThjNDNhYzQxYjAzZWFiMCBsZWdhY3ktdHJ1bmsKKzQ0MDMgMzE1ZDljODI4MTc3NGQxMzE0ZTA5ZjlkMWIzMmZhNWYzYWU4YWY0MiBsZWdhY3ktdHJ1bmsKKzQ0MDQgZjZiNGU3YWNjN2EzNzRmYTMwYzU5OTg1MWIzMzg0YTk2Y2M2NDU0OSBsZWdhY3ktdHJ1bmsKKzQ0MDUgZTE1N2M4MWQwMzU4OWQ2OTQ5NzZlMTRmNjc4ZjM2NjIxMDc5OGRlZiBsZWdhY3ktdHJ1bmsKKzQ0MDYgYjJjNTZlMDRjYjgyOTA1ZTQ2ZTU4M2U1Njc4YWU3N2U5NzIwOGRkOSBsZWdhY3ktdHJ1bmsKKzQ0MDcgNGM1NzFkOGMzY2UxM2JmZjdmZTUwMTg2MGNhYWYyOGY5ZjIwZDY4MSBsZWdhY3ktdHJ1bmsKKzQ0MDggNDRlOTQxNTI0NWZiMDljZWY1ZjJhMWZiZGZhMWE1YzUyZjM1MDIxYSBsZWdhY3ktdHJ1bmsKKzQ0MDkgODgzYTIyODE3NDcyYWVkMDU4MzZhMDViNGIwOWI2NGM0Y2ZmOTgzZiBsZWdhY3ktdHJ1bmsKKzQ0MTAgNzYxMDUxYWE0MzRkYjFmMDlkYjg1NGNlN2YyMGJiMmQxYTVlYWY3OSBsZWdhY3ktdHJ1bmsKKzQ0MTEgMzhkY2IwOTBmNDhiMDYzODU3Zjg5MzBlYjhmMTc0ZjJmNmU5NTcyZiBsZWdhY3ktdHJ1bmsKKzQ0MTIgNTQ1ZTIzNTgzMWI3YmI0OWZiY2Q3OWFkNmFiZjZjNWNjMThmODdiNyBsZWdhY3ktdHJ1bmsKKzQ0MTMgNzEwMGFjYjBkMzYzZDdlYjc4ODA3Y2Y3OTJiZDliZDhhZGFhNDIwNyBsZWdhY3ktdHJ1bmsKKzQ0MTQgNDI3YzYxOWNhNWQwNzMxOWI2ODFhNzEwMmNjYzdmNzFiYmY5ODZlZSBsZWdhY3ktdHJ1bmsKKzQ0MTUgMDU4YTQ2ZDhmYWY3NjU4ZWExYTI5ZTU2N2E5MTIyZWMzNWM4OGE4MCBsZWdhY3ktdHJ1bmsKKzQ0MTYgNjQxZjZiYmY4MDdiOWNjOTc5MmU3M2I0ZTA5ZmE1MGNmODcyMmRhYyBsZWdhY3ktdHJ1bmsKKzQ0MTcgYTEwZDMxZmYzNTI3ZGE3ZDMyZjg4YjFiMDZmMjY4NjczZjNiZTI1NCBsZWdhY3ktdHJ1bmsKKzQ0MTggNzhiZjY3NWRmNWU1ZGZmYTk2NGRlYzAwOGQ2NTMwMzYyZDkxYWVhMCBsZWdhY3ktdHJ1bmsKKzQ0MTkgM2JhMTczMDVmMDQ3ZjE5MDI0ZDNmOTk5ZDRkMzRmYmMxZjc3Yzg0MyBsZWdhY3ktdHJ1bmsKKzQ0MjAgZGQ3YmU4MTI4NDEwNzE0YjE5NDZlMzk5NjExM2I2NTljMTNkMDc3NSBsZWdhY3ktdHJ1bmsKKzQ0MjEgZGMxZGJmNmI1MjExMDA1YmRiY2FiOThmNzFjYzU2Y2JmOTMzMjU1OSBsZWdhY3ktdHJ1bmsKKzQ0MjIgNGZiMGEwODA3YjA1Njc0MDJhMjZiMTU4YWJjYmY0NTU5MDc4YTVkOSBsZWdhY3ktdHJ1bmsKKzQ0MjMgM2RlNWE3NTQ5NGRmY2EyYTU4NDg1ZDE2MWU0YjdiOGJiNGJmZmUwYiBsZWdhY3ktdHJ1bmsKKzQ0MjQgODQ2MzdjZmRiYzA3NDJhOTc1OTVlNDRkNjY5MjQ3ZGM0ZjkwM2IxNSBsZWdhY3ktdHJ1bmsKKzQ0MjUgODdhNjIwZDg0NzY2MzNkYjhiMzViMTlkOWU0ZDM0ZDhiZjNmODFkNCBsZWdhY3ktdHJ1bmsKKzQ0MjYgNDQ1NDQyMTc4NGQ4NGFjOTRkMzlkOWVmZmM2MjU0ZGZmMDUyYmE4MSBsZWdhY3ktdHJ1bmsKKzQ0MjcgZjIyY2I1ZmVlOWM4YjdkODI2NWIzNzliOGYzNTFmMzAxZDZmMjA4YyBsZWdhY3ktdHJ1bmsKKzQ0MjggZjk1YzE5M2JmZTY1MzRmYTFmM2NmODIwODY1NmMwMWNjMWE1ZDUzZCBsZWdhY3ktdHJ1bmsKKzQ0MjkgZGNmZTdmZDFhY2JjNTY0NGZkZGU3MjE3ZjUyMDI0NDFhOTIxNzcyNCBsZWdhY3ktdHJ1bmsKKzQ0MzAgZTIzNjM5ODc5Y2QwNWI5NmE1ZjI3M2FlMDc4N2QxNjNkZDJmYmNmNCBsZWdhY3ktdHJ1bmsKKzQ0MzEgYWQyNWM1MjM3NmI0NWI4MDlmYmQyYTZjMDQ4ZDNkYjYwMTIwZTJlMyBsZWdhY3ktdHJ1bmsKKzQ0MzIgNDJmOTVlYTc1ODY3MzQ3ZTgyNDAxNjllZDlkOTAyNmJmNjI3MDEzNCBsZWdhY3ktdHJ1bmsKKzQ0MzIgODMyNjE1ZWMwNzY0NmUzMTBjODUzMTZiOGJhNmJjOWIxN2FkMzU0NyBsZWdhY3ktdHJ1bmsKKzQ0MzQgMjM0N2IxZmU4MTJkZDVjZTY1M2MxMDFhMDdiMTIwN2NiYTdlYWQxNCBsZWdhY3ktdHJ1bmsKKzQ0MzUgNGU2MzEwMzJlYWNmMmI5YzZmOTc2YjY1OGM4NDFiMDM5NmYwZjMzZSBsZWdhY3ktdHJ1bmsKKzQ0MzYgMzM1MTU0ODVlYWQwZDZkZTMzZjI4MjMyM2E4YjEyMzNkNjNmZWFhMCBsZWdhY3ktdHJ1bmsKKzQ0MzcgODBiZDdhZjczMjAxOTA3ZDI1NzExZjFmNjgyOGEwZWM2ZDFiZDM2YiBsZWdhY3ktdHJ1bmsKKzQ0MzggNDA2MTFjYWNkNWJkN2EyNmFjMWYwMTQ4MGI0YzkwMDk4NWMyYTBjMiBsZWdhY3ktdHJ1bmsKKzQ0MzkgMTVhMWViMTEzYTQzMDgzNTY4NjBjMTllZGY4ODJhOTY2MzI5MTRjMCBsZWdhY3ktdHJ1bmsKKzQ0NDAgNThlZWY1MWUzMDg0OWM2YTc4MzRlZDlmNjhkMjM1YzQzOTVkY2FkMCBsZWdhY3ktdHJ1bmsKKzQ0NDEgNTU4ZDlmOTVhNjAyMGFkNjMzZjZmYThlZGM3MTkzZjJhNjFlZmI0ZiBsZWdhY3ktdHJ1bmsKKzQ0NDIgZGM2ZWFhMWE4ZmRkZmVkNWU3MzZiMDE5N2U3NTdkZTQ0MDI1MThkYiBsZWdhY3ktdHJ1bmsKKzQ0NDMgNzdkMWNhYmY5NzFjY2NjYTIwODI2N2E1MWIzODRkODQ5MzUxMTA4ZiBsZWdhY3ktdHJ1bmsKKzQ0NDQgNGU2MDU2ZDk4MGUxYTFjMDczMzA5NzIxYmQxOTExY2JjZDg1Zjk1MyBsZWdhY3ktdHJ1bmsKKzQ0NDUgNzQ0MjY1Mzc0NDUwODAxZjBmMWZhZTAyOWQ4MDlhODg2YzEwNmIzMSBsZWdhY3ktdHJ1bmsKKzQ0NDYgZjQ5NTI3ZWNkYjNhZDVjZDZhOTdiNzllZmUwMzVjODY0MDBjOTA0MyBsZWdhY3ktdHJ1bmsKKzQ0NDcgYWYyNmQ0ZDVjMWQ0M2EyYmYzNjRjNDkyZTU1ZTYzNDM4NjI2OGUzNSBsZWdhY3ktdHJ1bmsKKzQ0NDggZmIxOThlMTMxNmI5YmRjMmM4OTc4ZjYzZWU2NWJlYmJiOWZmMjQ5MSBsZWdhY3ktdHJ1bmsKKzQ0NDkgMWRhYjk5Yjg2ZmE4YzNmNmE3YzQ0MDA0ZDI2NGVmMWUzNjEzN2FkNSBsZWdhY3ktdHJ1bmsKKzQ0NTAgZjkwMGMwOTk5NWRmYzQyZjI1NjY4NmMyZWJmODEwYzNmOTMwMTM0YSBsZWdhY3ktdHJ1bmsKKzQ0NTEgNjNmODc1ODQ5YmQ4MzE5MTQ0MTI5YTEwOGM5ZDc2NGJkYTcwMTdiMyBsZWdhY3ktdHJ1bmsKKzQ0NTIgY2Y0ZDg4NjJmMTliZjQ1NzQwZjlkZmMwMWQ1ZGZmM2ZkZGY3MGNjOSBsZWdhY3ktdHJ1bmsKKzQ0NTMgYzVhNTE0ZjhmM2UzZGFjNWFjN2MxYWNjYjVmMWVkOTE3MWRiMWEyMiBsZWdhY3ktdHJ1bmsKKzQ0NTQgZDVmNGQwMTNkY2MxNDQzZTNjY2I0NDA5ZTc4ZmQ5NWIzNmQ5MWFkZiBsZWdhY3ktdHJ1bmsKKzQ0NTUgZjA1YjVjZDc5ZmJlZGI3M2E0OTJlY2I5NmM5YjFhMDRiNjgyY2M0NyBsZWdhY3ktdHJ1bmsKKzQ0NTYgZTg5NTJiOGRmZWZmY2RhY2Y0NDUxODNmOWVhZDA5ZWFjNzczZmM0NyBsZWdhY3ktdHJ1bmsKKzQ0NTcgYTcwODgzODAzMzM4YTAwNTcxODRlOTQ4Y2Y5ZjUyMWQ1NGZhZGRlZiBsZWdhY3ktdHJ1bmsKKzQ0NTggN2Y4NzE5YTM2NjYyMDNiNzQzN2RiNmRkNzRiYjE1ODc5MzYwYjQ1MyBsZWdhY3ktdHJ1bmsKKzQ0NTkgZWQ1ZDBhZDVlYTJmMWZkZTgzNmQ0NDQzMDQxM2ZhOTUxMWFhNjgzOSBsZWdhY3ktdHJ1bmsKKzQ0NjAgM2FhOTE4NGNmZjhiNmM5YmVhMDdhOWE2MDgwM2ExMzI5ZTM1NTk4ZiBsZWdhY3ktdHJ1bmsKKzQ0NjEgN2M1M2U2MWJjNGJhNTc4ZTA0YTY4MTg4MWI1MWI4MzJkMDA4MGY0OCBsZWdhY3ktdHJ1bmsKKzQ0NjIgODExYzRlNDYyMmFhYmY1NmJjYTI4N2MyNDE3ZjY1NTNmOTgzZWE1NSBsZWdhY3ktdHJ1bmsKKzQ0NjMgMzkyZGIxODgxMTkwOGM3YWM3MjE4NWExOGE2OTExYTE0NTEyMWUyMSBsZWdhY3ktdHJ1bmsKKzQ0NjQgZjY1ZWMzZGNjNTYzMWZkNTViYThiZGNhMzFlOGNmNWJmMGNmZmI2YSBsZWdhY3ktdHJ1bmsKKzQ0NjUgZjI3ODAwOTY1ZmY3Y2VkYjA3ZDZkYmE5MmE5ZWFkNGQ2MjViMmRmNCBsZWdhY3ktdHJ1bmsKKzQ0NjYgMGJhZTZhYjljOWUwZTc2NWU4ODkwMjQ4NDI2ZTI5YzZlZWY0MWRlNSBsZWdhY3ktdHJ1bmsKKzQ0NjcgZGM5YjYzMTZiOWIzNTRmMjFmMGEzM2MyODg4NGNlZWNhYTRlZDc3NiBsZWdhY3ktdHJ1bmsKKzQ0NjggNjlkNDhjYmRjMmQ5YTM5Mzc0Mjc2NjZiMTQ2N2I2MmQ3OTI3YWNhYyBsZWdhY3ktdHJ1bmsKKzQ0NjkgZWMwNWQ5MDIxYmNjZDgyMzAxNTM4YzAwZjYyNTI0NDgxYWFmYzBkMSBsZWdhY3ktdHJ1bmsKKzQ0NjkgOTg5NTQ3NWQxOGM3YjVmMzJhZGFmNzhmNzE4ODZhZTA0MWU0ZDEwYyBsZWdhY3ktdHJ1bmsKKzQ0NzEgYTRhODU0NTBlYmFmZTMyNGNkMzRmZWYyNzViZGQ4NjQwYTk2YjZmMCBsZWdhY3ktdHJ1bmsKKzQ0NzIgNWEwNzc1Y2U3YjMxMWViOTZhNzYwZGUyYThmN2JlOWMwYmMwMThkMCBsZWdhY3ktdHJ1bmsKKzQ0NzMgOWUzNDY5YzBlZDc1Y2MyNGExNWRmM2I2ZGNkN2E1OGU2ZWNlNTJhOCBsZWdhY3ktdHJ1bmsKKzQ0NzQgN2JkYTBmMmMxNzBjZGVhMjk2NmU1N2RkOWRkZWMzMDE3OWQ0ZmY1OCBsZWdhY3ktdHJ1bmsKKzQ0NzUgZWUxMmVkZmMyMDk1OTliYTFjMzZjYjRmZmQ5YTVmZWUxNWI0MWQwOSBsZWdhY3ktdHJ1bmsKKzQ0NzYgZWVlM2Q3MTVmMGNmYmYxZWEyZjRjNDI5N2Y3MmJiZDM3MzdjY2IwYyBsZWdhY3ktdHJ1bmsKKzQ0NzcgM2Q0MzFhNTIxMTMyZjIzYTA4YmQ2ZGMzNTQyMjE1ZWIwMjFmOTczZSBsZWdhY3ktdHJ1bmsKKzQ0NzggNzJiMmFiNTZlNDAzNTJlM2VkYjY3MmVkNDFjNWFkNjAwMzA0N2RmYiBsZWdhY3ktdHJ1bmsKKzQ0NzkgZmE3YmM1MjgzMTRiYzQ2MWRhYTQyOTU1Y2RkNmEzODU5MWM5YTNkMyBsZWdhY3ktdHJ1bmsKKzQ0ODAgOTdkNjE0YjI0YzA4Y2I1NDYzNjFjZTFmYzc1MjUxZThmODI4YjFlNyBsZWdhY3ktdHJ1bmsKKzQ0ODEgNWM3NGMzYWVkYTc0YWY2YWM3MjMyMDI4MGJiOWViZjNhOTNmYjNlNSBsZWdhY3ktdHJ1bmsKKzQ0ODIgZDRhMDZlODA1NmI4N2Y5YTMxNjNiNjEyMmRjNDUzNTE1Njk0OTBhNSBsZWdhY3ktdHJ1bmsKKzQ0ODMgMmEzYzhiZWJmMTU2OGFmMjg5NTkyNzUwYTY5ZmJiNjdlOTI0ZTZhYiBsZWdhY3ktdHJ1bmsKKzQ0ODQgNjcxY2YxZjhiMGMzM2JiNzE4MzkwZWYzODNlYzY3NTZjZDIxMGFmNSBsZWdhY3ktdHJ1bmsKKzQ0ODUgMTczOWYwMGZmYzg2MzFlMzBhNjdmOGE2NTM2OTFjOGJhMzNlZWMwNSBsZWdhY3ktdHJ1bmsKKzQ0ODYgNjA5YmZiOGFlN2Y1NGFlZTc1NzAzMTgxNjkxNDM3M2EyMzNhNWJjYyBsZWdhY3ktdHJ1bmsKKzQ0ODcgZTQzYTE5NDJlNTg4MDZhMTI0ZjcwNDFlNzhiZTAxY2JiMWI3MmIzZiBsZWdhY3ktdHJ1bmsKKzQ0ODggZjIzNmFkYzI4ZTc3NzA5MjJlMGM2NzFkMGJmZmFjMjJjZTk3MDU3OCBsZWdhY3ktdHJ1bmsKKzQ0ODkgY2U2OTc0MmYyZTc3Nzk1ZDE3NDJlZGFiYTc1ODJhMDUyZTk1ODI2MCBsZWdhY3ktdHJ1bmsKKzQ0OTAgODNmY2I5ZGI0Y2E4ZWM0ZTlmNzRiNDhlMjc0MGUzM2JkZGE3MTg1NiBsZWdhY3ktdHJ1bmsKKzQ0OTEgMzcwZjhjYmQ3YzMyM2U4ODVhMzMwMjRlYTdmNjYyNTUzYTFjYzg4NiBsZWdhY3ktdHJ1bmsKKzQ0OTIgNTk4M2QyZGI1OTA0NTdhYjA2ZGI2YWJkNmY3NDQ4NWVlZmJkODM4ZiBsZWdhY3ktdHJ1bmsKKzQ0OTMgMDcwMTc2OTA5MGY0OWJmMWEzMTRiM2Q1YzUwZWJhOTAzMzM4M2RhNSBsZWdhY3ktdHJ1bmsKKzQ0OTQgM2Q4MjJlMzJjMzI5NzA0NDBlNTc3OTc0YWQzMjVkNjBjNmM2OWQ4MSBsZWdhY3ktdHJ1bmsKKzQ0OTUgZTI4ZTEwZTVkZWIyYzMxMzI1MTBmMmU2ZDYzZWViZjI3ZmUyMjNiYyBsZWdhY3ktdHJ1bmsKKzQ0OTYgZWE2OTZmMjQ4N2ZjODYyODViOGMzZTExMWUxMWU2NmQ2ODgwN2JkYSBsZWdhY3ktdHJ1bmsKKzQ0OTcgNGViZWU5MDQ5MjRlNmFhNzc4ZTllNDEwYThiYzI0OTcyMDhmOTk2YSBsZWdhY3ktdHJ1bmsKKzQ0OTggMjgxZTQwNjUyZTIzNDUzODQ1NTAwNzI4MGQ0N2MyNjk5N2RlNjhhMiBsZWdhY3ktdHJ1bmsKKzQ0OTkgNjJiYmJmZTZiYmY2ODI4Njg4Njg0M2E3NmUzNzNjZTJiNmZjMjgyOCBsZWdhY3ktdHJ1bmsKKzQ1MDAgMWNlM2RiZWViODkwOTM4MGUzYjFiNzhjOGUyOTE5ODMzNGZiODMzMiBsZWdhY3ktdHJ1bmsKKzQ1MDEgZjE4YzE5MTVjNzIyZDE3NTE5OGEzNmI0NzljOTZjM2QzOWRiNGEyNiBsZWdhY3ktdHJ1bmsKKzQ1MDIgYzg1YWJjYzc1MmIxODQ2NDMwNjkwZmNmN2NhMWVjYzk5NDkyOGIyYyBsZWdhY3ktdHJ1bmsKKzQ1MDMgMDdjZjNiM2JhZjE2ZmMzMzcwYWM5NThlYjZjYzk5MjcyNTUxY2RmYiBsZWdhY3ktdHJ1bmsKKzQ1MDQgMTkzNjNmODU3MGEyZmNmZmQyZGEyNjBhNDVkNGEyMDc1ODQwODJiZSBsZWdhY3ktdHJ1bmsKKzQ1MDUgMjNkZmNhOGFhNzNiMDQwNTZkZTc1MGRmODRiZDNkMzdjZGZmYzk5OSBsZWdhY3ktdHJ1bmsKKzQ1MDYgZDdlOTE0MzdmMGEyN2UyNzQ3Y2UwMmFiMWJhNTA4ZjRlNWQ4ZWMzYyBsZWdhY3ktdHJ1bmsKKzQ1MDcgZGU0OWQ0OTA0NGQ3NTNkZjExMzA0M2I0Yjc5MzYyNTAzZjc4ZGM0OSBsZWdhY3ktdHJ1bmsKKzQ1MDggMDMxOWIxMjMyMWQ3ZGRiZjIwYTBkZmQ2ZmU1YTI5MDMzOTZkNmFkYSBsZWdhY3ktdHJ1bmsKKzQ1MDkgY2YzMWVhYjZhYjVhZTJlMDFmNGM2NmJjYzlkNWZlMmNhZTBjMGExNCBsZWdhY3ktdHJ1bmsKKzQ1MTAgYWZmNWQ3ZDA2NzM1YzhmYTBhZjk1ZGRhYThhMjY3MWFjZDhkZTUwYiBsZWdhY3ktdHJ1bmsKKzQ1MTEgNzljMTcxZjU4MWZjZGVlMzA5OTNmYTNkMmNjZTI0OTEwMjViNTFiZSBsZWdhY3ktdHJ1bmsKKzQ1MTIgNTA4MDM2ZGJiYTNiNGYyZjZmMTI4MzRkYzA2MDBhMDQ4OTFkNjcyMiBsZWdhY3ktdHJ1bmsKKzQ1MTMgODY2YzgxMDY4ZGJkYTI3MWVlMjJiOGMwODVjMzBjMjRhNzE4Y2IwNSBsZWdhY3ktdHJ1bmsKKzQ1MTQgMTQ2ODkwNjUzYTU3ZWExM2IyOGZmNDZkNDZlOTJmZDRjNjM4ZWFiMiBsZWdhY3ktdHJ1bmsKKzQ1MTUgMTcyYmEwNGE1MTkxNmNiNzUwNDEzNTQwZTAzZjZmNDI4MWFmNDFkNSBsZWdhY3ktdHJ1bmsKKzQ1MTYgZDBkMGE2OWI1Y2EzNGI3NWVjNzdkYmZjODlhNWFmZmZmNjIwNDMxYSBsZWdhY3ktdHJ1bmsKKzQ1MTcgNWVkMDY1OTQzNTI2MjE1NDdmNTM2ODE2Yzc0OTA1ODA3MmZmODY1NiBsZWdhY3ktdHJ1bmsKKzQ1MTggMjgwZjMxZTZjNjUzYmU0MGZjM2Q1NWRlZmFmMWNkZDhjYzlmZWVlMSBsZWdhY3ktdHJ1bmsKKzQ1MTkgMjZjZDRkNmMyZDEyYmUzZWI2ZWM3YWQzMzUyZGY4MmZiMWU1N2EyZiBsZWdhY3ktdHJ1bmsKKzQ1MjAgMDAwYWU2NDJmOWI4ODlhMWFkZjk4MjQ5NGYwNzIyOGRlOTQ3NDZjZCBsZWdhY3ktdHJ1bmsKKzQ1MjEgMWI5OTQ1MWZhMTQzNmNhZDc4NDJmZWM1YzU5YWEyYzA0ZDYyYWIwOCBsZWdhY3ktdHJ1bmsKKzQ1MjIgNTIyNzMyNGQ2NGU0Mjk4N2NiODZjZjhiOTdmYTQ5NmQ0NGFkMjFmMyBsZWdhY3ktdHJ1bmsKKzQ1MjMgM2FhN2E3Nzg0NDU1OWFjNDc0YjVmNjI5ZTc1OWYxNmE4ZWRmYzc0OSBsZWdhY3ktdHJ1bmsKKzQ1MjQgYmU1YWI4ZTg5YzQ5ODZlODIyOThhY2E0YmM2NTNiZTgzODkyYmQ0OSBsZWdhY3ktdHJ1bmsKKzQ1MjUgMDQ4ZTkxYTU5Yzc1ZThjZTYwYTM1MzIxZmFkMGNhYzYwNzJhYjNmMCBsZWdhY3ktdHJ1bmsKKzQ1MjYgY2Y2NWExMjRmYTRiNzY5YzY5MjFiNmE5ZjY1YzI5MzRiMGZhN2FjMiBsZWdhY3ktdHJ1bmsKKzQ1MjcgNjhhMzhjZmZjZjU4M2MyOTE4YTUzODg5MDVjMTliZGViYTE5MTI4MiBsZWdhY3ktdHJ1bmsKKzQ1MjggYTM2Y2FjNzljNWFmN2MxYzE5MjVhNDFjNTJlYzI5MTdlYjkxYmQyNiBsZWdhY3ktdHJ1bmsKKzQ1MjkgNGMzNDdlNGQxM2YxZjExNjVjODBkZDliYTQxOGVmZmRhZjFkODA1MCBsZWdhY3ktdHJ1bmsKKzQ1MzAgYWRjMDI4Yjk3N2JkZjZiYjdmNWFjMWNkZTYwMmU3ODZmYThlYmY1NyBsZWdhY3ktdHJ1bmsKKzQ1MzEgMzg0ODA5NGYyNTljYTdiYWM2OTQ0NmJlN2YyODc5MTlkN2VhMzQxOSBsZWdhY3ktdHJ1bmsKKzQ1MzIgZGY2ZmU4Mjk2YmMzMWQ1M2MzNDk0MjY1ZTc1YWFlM2ZkYmE3MDBjZSBsZWdhY3ktdHJ1bmsKKzQ1MzMgNWJiZjBhOWM5YTQyOGFjNzg2NGQzMDAwOTk2M2M2MTRlMGJlMjdmNiBsZWdhY3ktdHJ1bmsKKzQ1MzQgYzIxY2M3YjNjZTI4MzM3M2NmN2QyZTcxMzY1ODk1NzAzZGIzYzcxYyBsZWdhY3ktdHJ1bmsKKzQ1MzUgYWZlY2RlYzk5NmZmNTAwMzM2MjViNWY1Y2M2YjdmYzcyZjk1YTQ5NCBsZWdhY3ktdHJ1bmsKKzQ1MzYgNGFmYTdlYjQ3MzRiY2ZhZjY1MmZkYmZkYzg3N2IyODRmYmY3M2RiYyBsZWdhY3ktdHJ1bmsKKzQ1MzcgZjJkMjY3ZWRiZmQ2ODc2NzA5MzkxNWZhMTM3ZGRlNzBkZTEyZWE4MyBsZWdhY3ktdHJ1bmsKKzQ1MzggYWJiZjJhNGI0ODhiMzcxYTJlNjQ1OTk1YWEzY2UxNjFlNDc1NzQ3YyBsZWdhY3ktdHJ1bmsKKzQ1MzkgODkyMWEyODgxZmM3ZjI2NDY4Y2Q4NjI2MjUwYmE0YWYwNDM0ZWRkNiBsZWdhY3ktdHJ1bmsKKzQ1NDAgMjYwNGQxMWM4YjQwNDU5YzBhY2IyMDVmZTc1YWIyYmQ2MDk5YzczMSBsZWdhY3ktdHJ1bmsKKzQ1NDEgNjUxNDZiNTJmMTZiOTM0ZGRkMGQ0OTVhY2EyZDdiNzFjMmMwOWMyZiBsZWdhY3ktdHJ1bmsKKzQ1NDIgMTk0MGUxZTBjZWRmNWQ1NWU3M2MwZmRlMGY1MzZhZGMyOGM3ODAzMyBsZWdhY3ktdHJ1bmsKKzQ1NDMgNTNhYTUxNDMzZjdmZDVkNTNjMjcwYmJjZDAxMzRiNDQ3MTI3MGI4NyBsZWdhY3ktdHJ1bmsKKzQ1NDQgZjc4YjM4N2I1NGUwYTM5OTVhMGQyNzVkOWJlNDZhODJkZjkxMjcwZiBsZWdhY3ktdHJ1bmsKKzQ1NDUgYjRkOTgyYzY0OGJiM2U3NjAyYTk1OWY0MTUzMDU4NzE1YTQ4YTE4MiBsZWdhY3ktdHJ1bmsKKzQ1NDYgYjAzYjQzYmVlMWFiM2VjZmY2YTUyM2NhYTUwMTY2YzA5MThjZDc4ZSBsZWdhY3ktdHJ1bmsKKzQ1NDcgZThjYWZiMmI3NDNhN2U0YzAzZDg2OWEzNDJhMGNmNmNlZTEyOTE4OCBsZWdhY3ktdHJ1bmsKKzQ1NDggZDM1NmM0NzNkYjk5M2ZlNzRmYmZmYmJkNzM4NWI2YmY5MzAzYTdjNyBsZWdhY3ktdHJ1bmsKKzQ1NDkgMGQ3ZTRhYTU5NWY3YWE1YjRkOWI4MGU1ZGFhMDBiNzUwNzU0YzBkZSBsZWdhY3ktdHJ1bmsKKzQ1NTAgZDVjOTM1YjlhN2I1MGNlNTRhOGZkMmE1YTM1NjJjMDRmYjJkYzM0MCBsZWdhY3ktdHJ1bmsKKzQ1NTEgZTQ1ODg0MDRmZGZmMjU0MDBjMDU4MmE1NTMwNmI5MDE2MzQzOWU0OSBsZWdhY3ktdHJ1bmsKKzQ1NTIgYjdiZTAzODJmOWVlNjlkMTZhMWI4Y2ZmNzJkOWZkOGVkODU1OTM1ZiBsZWdhY3ktdHJ1bmsKKzQ1NTMgYmEyZTIxYTU0YWUzOTkxYTRiZWEzYjhlYmFjYzhmMzQ2ODRkZGNmZCBsZWdhY3ktdHJ1bmsKKzQ1NTQgNDU3NGVkNjU3Y2M5ZjlhNTVjYWU0NDU0MTVlNmE3OGQ5ODc0YTg5YSBsZWdhY3ktdHJ1bmsKKzQ1NTUgZmRjY2MzMjIyZDBhZTc5NDFjYzQ1YWE2ZDkzMzA4OTA5ZmJjMzQ4NyBsZWdhY3ktdHJ1bmsKKzQ1NTYgMzA4MjFiYzJkY2I3NDRmYjBhZjE3NWQ3YmQyOGQyOTVkYWI2MjVlYSBsZWdhY3ktdHJ1bmsKKzQ1NTcgYmJmYWMzZTI1NzBkOWFiMjIwZGZmN2Y2MWQ5MTIyMmJiOTVhN2FlYSBsZWdhY3ktdHJ1bmsKKzQ1NTggNzQ5M2M2ODA1ZGM2ZTVjYjkzNDdiZWI2NjhlYjExMWUyYWMxMTFjZSBsZWdhY3ktdHJ1bmsKKzQ1NTkgZWE3YjJiZjBiNTIxNjFmOTZhNWE5N2MyY2E4YmU2ZDMwMGRjNTFmZCBsZWdhY3ktdHJ1bmsKKzQ1NjAgMmViYjIxMjg0ZjM0NTFhNzY5YmY1NzhmNmJmZTQ0Y2RlOGU0OTZiZCBsZWdhY3ktdHJ1bmsKKzQ1NjEgMDE4MzBkYzhkNmU1ZDM2YmZkMDFmMjJmNTY3MTJlZjIyMzllZjFkMCBsZWdhY3ktdHJ1bmsKKzQ1NjIgYWY0MWY0YTIxNjgyZWE4MjEzNjI3YWRkNDUzMjEyZTYwYzNlN2NmMiBsZWdhY3ktdHJ1bmsKKzQ1NjMgMDcwODBhMjk2MDcwN2JiYjlmMDFlZjY2MzBhOWZlYzA0OTViYzIzMyBsZWdhY3ktdHJ1bmsKKzQ1NjQgNmM0OTA1ZmZmZjAxZTliODkyMGU0ODI5YTkyOGI2NWZmY2Q3OTE5MCBsZWdhY3ktdHJ1bmsKKzQ1NjUgMzBjYmUwMjRkZjQwOWVjMGQ3ZTMyYTQzNzQ2ZDc4MzY0ZDU0MjNmYSBsZWdhY3ktdHJ1bmsKKzQ1NjYgMjY2OWVmMTRjMjA1NDE5OTBkNmRiY2VlOTllMWJjMmY0MzY3NmZkYiBsZWdhY3ktdHJ1bmsKKzQ1NjcgNzZjODYwYTE4ZDgyMzQzZmI0ZTA3NmRhZGNlNGZiYmM1MDgwZTczOCBsZWdhY3ktdHJ1bmsKKzQ1NjggNzk0N2MwZDE2Y2EwNDFlNjkxNGVjODkyMTg1MGMzOGI0MTI1MjU5ZCBsZWdhY3ktdHJ1bmsKKzQ1NjkgN2VhMzY5ZDA1YzJlZTE5NWUxMjJkNGQ3Y2ZkMGQ4NTEyMzA4ODQwMCBsZWdhY3ktdHJ1bmsKKzQ1NzAgZDczZWVkMzUzMDAxMGM0ZmQ0YzgwMmEwOTA5M2FlMGVmNGQzZjYxNiBsZWdhY3ktdHJ1bmsKKzQ1NzEgNWRmNjlmMjk0Y2NjNmY2ZDQ2NjFlODRlMzllMDYxMzJiMDcwYTc1NCBsZWdhY3ktdHJ1bmsKKzQ1NzIgYWVkYTg2NGMxMWM0NDYzOTI1ZWRkMjBhMTg2YWQxZDQ4ZTdlYmRiMyBsZWdhY3ktdHJ1bmsKKzQ1NzMgMWRhZTBkMzA2MmQyNjNiYjZjYzY4NTFlNzI4OWEwNWM3NjZhMmU3NSBsZWdhY3ktdHJ1bmsKKzQ1NzQgODRiNjFmZTQ0NTczMDQ4NDAwY2RiMWU3MTFmMDZkYWNkZjRiMzJhYSBsZWdhY3ktdHJ1bmsKKzQ1NzUgODZkOWU5MTQwNWM4NTUzODk3Yzg4NzBjNDBlY2VmMmI4Y2FmNjVkMCBsZWdhY3ktdHJ1bmsKKzQ1NzYgYmEzZmQ5NmYwNTVlZjkxOWI0ZDgwMzI2YjE2NzViYzM1MjgzODY2NyBsZWdhY3ktdHJ1bmsKKzQ1NzcgZmQ1YWI3ZTgyOGZjY2MwMTQxNTk2ODI0ZjhhNzVjYWFhMjZhN2FhNSBsZWdhY3ktdHJ1bmsKKzQ1NzggMzY4NDdiOGI1NzVkZjY1MWY1OGFlZDU4MTM2OTZlYjc2ZGY2NTI0ZiBsZWdhY3ktdHJ1bmsKKzQ1NzkgYmQwNjFkYzMwODQyZTc1MDRlZGU0ZDdjMzdmM2U4ZTE3OTc5MDVkNSBsZWdhY3ktdHJ1bmsKKzQ1ODAgYWYzNmJhZTM0M2ZjZjhkYWVmNDhhOTg1NDFlMzdjMzk2ZjI0MDhlOSBsZWdhY3ktdHJ1bmsKKzQ1ODEgNjk1NDAxNjkyYzQ2ZmI2MmM0ZThjOGRiZDdjZjkxMWMwZGNmNTVkZiBsZWdhY3ktdHJ1bmsKKzQ1ODIgOTJkYTg5MDE1MTdlM2YxNWM5OGM5MThiMmRmMjQwYTA5MWE0Y2VhNCBsZWdhY3ktdHJ1bmsKKzQ1ODMgMDUzNjBjZDYxNmFlMzg4Njc1MTA1NDVlNjk0ZGRhYjI0OWU2Yzc0YiBsZWdhY3ktdHJ1bmsKKzQ1ODQgY2EyN2MyZmUwYjhkNGM2YjU2ZTRmMDZiNjMxYTVhNmQ4YzQ3MjYzYiBsZWdhY3ktdHJ1bmsKKzQ1ODUgZmU5MjJmZWQ2YjMxZDhjODRmZjYwYWU4ZWI2NDUzMjUzMDFlYzUyOSBsZWdhY3ktdHJ1bmsKKzQ1ODYgNGRkZjU1NDQ1N2FkNWQxYjIwMWNjOWM2YWYzMjMxMWQ2MWJmOTQyYyBsZWdhY3ktdHJ1bmsKKzQ1ODcgYzE2ZDY5M2JmZTczZjUyZjQzZjgwNzgwYThmNWExZjUxMjZlNTkwYSBsZWdhY3ktdHJ1bmsKKzQ1ODggOWQ2MWM1NzQ5YmY4Mjc4MWE3YTA2MDM5NDY5ZGM4MTNhZTI4NDk3MyBsZWdhY3ktdHJ1bmsKKzQ1ODkgNGY5MGI0NzRiZWVjMzQwZjA1OWYwNTk2OGFkMGFhOTk3ZWI2NmNjMyBsZWdhY3ktdHJ1bmsKKzQ1OTAgYzU3YjVjNTBhMmQyOTU0ZjZhMGMxY2Q4YTFiNTFmOGNiMDAyM2JlZiBsZWdhY3ktdHJ1bmsKKzQ1OTEgYzkwODVmMWU5NzdmMzM4MDM0MGJiZmJjMTkxYzFiMmYxNTYzMTllZSBsZWdhY3ktdHJ1bmsKKzQ1OTIgMjNmMDQwMzE3ODI4MGFlMDdjZmIzMDg0ZmFmZDhjYzU3Y2VhYzY1MiBsZWdhY3ktdHJ1bmsKKzQ1OTMgOTRlMmNhODY1OTBhNTZkMzg3NGRjMjRiZTVkZWI3M2Y5NTNiNzgxZiBsZWdhY3ktdHJ1bmsKKzQ1OTQgMTczZGQwMDg3OWFiNjAwMGM4MmRjNjQ5OGZjOGY3MmZkZjdhOGQ0YSBsZWdhY3ktdHJ1bmsKKzQ1OTUgODQ5MjNkOTJiNTNlN2FjMWE2MzIyYTMyODBlMzQxYWU3ZDM2MTJiYyBsZWdhY3ktdHJ1bmsKKzQ1OTUgMTZlYjRjNTFlZTk3MTY5MDQ2MzQwOTk4ZTg1MGE2M2M2NTIyNWIwYSBsZWdhY3ktdHJ1bmsKKzQ1OTcgN2FlODQ3YjFiMjY5MjI4YjljYzM4NGUwYmFmZDA0YTM2NzkzYmUxYiBsZWdhY3ktdHJ1bmsKKzQ1OTggMGU2MGNkMjA3YWRiYjI0YmQ1YjNjMmI4NDRiN2MwODY3M2UwNDRhNSBsZWdhY3ktdHJ1bmsKKzQ1OTkgZTllOTNlMDczNTRiOGJjMGIzOTQwMTQ2MmE3MGE2YjliOWRiYTBmOSBsZWdhY3ktdHJ1bmsKKzQ2MDAgOWFmZGJmOTQ0YzJhMDNhNjQ5YTU3ZmUwYTMyM2NkMTIyNTFjNTYwZCBsZWdhY3ktdHJ1bmsKKzQ2MDEgODM4ZWY5NzY4ODIxMDMwMTY3ODViOTdkNDBlYjkyY2Q5ZDMwMWY5YyBsZWdhY3ktdHJ1bmsKKzQ2MDIgZjk5YTIzOTk4NzcwYmFiN2UyZjI1NjU2ZjdkMDA0YTY1YjkzOGI1MiBsZWdhY3ktdHJ1bmsKKzQ2MDMgNjA2MGQ3ZmIwN2UzNDI0NWU5NzMwYmZmZDg2MjEwN2U4ODRmNGEzNCBsZWdhY3ktdHJ1bmsKKzQ2MDQgNDQ4NDM1YmZlYWRjMGQ0NmNmNTVjNjhjOTJmNTAzZjZkOWNmNjgxMSBsZWdhY3ktdHJ1bmsKKzQ2MDUgNWZkODUyNGRkMDNhMjEwYTkzNzhiNmIzMmFjZTE3M2I4ZjAwMWM4NyBsZWdhY3ktdHJ1bmsKKzQ2MDYgMWE1MjM1MWEwMGIyNmNkMDU5YTZiYzllMmQ5NTE4ZTc2OWExZjFkYSBsZWdhY3ktdHJ1bmsKKzQ2MDcgZTU0Yjg2NTRmOTM4NGYxMjI3YmEyMTk3ZmViNWZlMTYxMWFkZGVjOCBsZWdhY3ktdHJ1bmsKKzQ2MDggMDcyOGZlYjFkMDMxYjQ4ODQyYjcxOTgzNzBhZjJjNzg2ODhhZjU0MiBsZWdhY3ktdHJ1bmsKKzQ2MDkgODQ5NzFkMDE1OTY1ZThlOGYyZjQxZjQ0NTkzZjIzMmY2OGQ2YTU0NyBsZWdhY3ktdHJ1bmsKKzQ2MTAgY2ZiYWI3OWE3OTlmNDY1MzU1MjI3MWRhNTAyMGJlMjIyMDUxNjM4NyBsZWdhY3ktdHJ1bmsKKzQ2MTEgMWUwODM4YmI4ZjIyMDhlMjkyYjMwMDM0MTYyM2VmODMyYmMyMDlmOCBsZWdhY3ktdHJ1bmsKKzQ2MTIgMjk3MjBjNWQ5ZTdlYzQyMjFmYzg3ZjFiMjIyZjgwNTMxOWJmZDcwNCBsZWdhY3ktdHJ1bmsKKzQ2MTMgYTYxOWE2MWFhZDFlYmI4Yzg4MDI0MWZjMmNlZDBmMWUwNjJjMDIyZCBsZWdhY3ktdHJ1bmsKKzQ2MTQgODk5YjRlM2RmZDRjZmY5OWNhNDBlZDcyYzA3NTM4NDUwMjQxNmUxZiBsZWdhY3ktdHJ1bmsKKzQ2MTUgZjA2MjIyZTA3Y2E3NTUzNzk1ODM2ZjdlOTQ0NDcxODVhNjkxNTg3YSBsZWdhY3ktdHJ1bmsKKzQ2MTYgYzlhZWEzNGFlNGI2OTk3MTRhZTgxM2U0NzVmNDg3NGUyYzFkYmJjMiBsZWdhY3ktdHJ1bmsKKzQ2MTcgZWUwYjNjYjM3YWY4OGNjNGM5MzY3MGExNmQxOWE4ZTNjMzhiOTgyYSBsZWdhY3ktdHJ1bmsKKzQ2MTggNDU5YmY3ZDA0ZTA1YmViODI5ZTJkNGQwMjViN2RhZjgzYzk2YjAzYyBsZWdhY3ktdHJ1bmsKKzQ2MTkgZjQ5YjYzNzI0OTJmMjhiYjczYjQxNTM3NmQ3ZTNiNGQyMWI4NDAwZCBsZWdhY3ktdHJ1bmsKKzQ2MjAgN2E2YjU3ZmViYWM0NmMxMDYyMWNkY2RkNzMzOTIxOGQ0YzliYmJmZSBsZWdhY3ktdHJ1bmsKKzQ2MjEgZDkwYzkxNGM1NzdkMjBiNDIxZjEwZTcyYTkwNzM5NWU1OGIzOTZkZSBsZWdhY3ktdHJ1bmsKKzQ2MjIgOWE5ZjNmNWQ2Zjg2MDMyMjEyZjAwNzNhNTI5OTBkOWYxZTE4MDQwYyBsZWdhY3ktdHJ1bmsKKzQ2MjMgOTJjZDg1NDcwYTc2OWRmNTc3ZDgwY2E2MjRlNmEwNzU4ZGVkMTA1OSBsZWdhY3ktdHJ1bmsKKzQ2MjMgYjQ1YzY4ODc1NmQwNGZiODRkNGEwZDUxOGZjM2Q3ZTNjYjI1ZmE4ZCBsZWdhY3ktdHJ1bmsKKzQ2MjUgN2ZmNmQ5OTlmMDU5YTA4YzhjODJiODNjMDUyZDUxNGY2Y2JlNjUxOCBsZWdhY3ktdHJ1bmsKKzQ2MjYgOGFkY2I4MDhkOGRkZDg0Mjk1NTQ4MWZkYzI3ZmY2MjIxZWVmMmQ2MSBsZWdhY3ktdHJ1bmsKKzQ2MjcgNmYzNWExYWQxYWNjODMzNTkwZjk4MjU3N2M1MGViZDYwYmFlOWRiNiBsZWdhY3ktdHJ1bmsKKzQ2MjggNWVlZDgzMjE2ZTZjNTViODU2OGE5OWY1NjQ3Y2FjOTBlMWQ5MTIxMCBsZWdhY3ktdHJ1bmsKKzQ2MjkgMDQ0NTcyNWZlNWRlNGNhZWFiZjQ5MzhkNTRmZmMwNmYwMTBkNjc4YyBsZWdhY3ktdHJ1bmsKKzQ2MzAgMWU5ZTc0OTQ0YmI1MWY0OGY4NjI5MTliYTY4OTBjMTI3MWJjZDY2MCBsZWdhY3ktdHJ1bmsKKzQ2MzEgOWY1MDBhMzRjMzU1NDE4MTFjNTY0YTg5MmVkMjZmNzg2ZGRmNDdjZiBsZWdhY3ktdHJ1bmsKKzQ2MzIgNjVkODdmMDZmMDhmYzMwYjgzYWMwYTM3MTA0ZDY2YjBjNDA0Njk0OCBsZWdhY3ktdHJ1bmsKKzQ2MzMgOGRhMDNkZWNlZjU5M2RkZTBlNDRhYjEyN2E2YzNhNGNjZGMwYjk0OCBsZWdhY3ktdHJ1bmsKKzQ2MzQgOWI0NTFjODRhN2JmOTMwMTEwMTI2Mjg1OTRmMmE3YjQ0YTZmMjA3OSBsZWdhY3ktdHJ1bmsKKzQ2MzUgMDA0ODAyNGI3ZWY4NGNkOWMwMGU1NzhkOTc2MjBjMTUxNTllYzI1ZCBsZWdhY3ktdHJ1bmsKKzQ2MzYgZGZhYmIxM2JjZTcwZmMxODFiMjZjMDJiNDE5Y2ZhMDU1MDk5MTg4MiBsZWdhY3ktdHJ1bmsKKzQ2MzcgNjJiZGRlZDVmMDBhMjMxNTFjNDgzOTZmMjA3MWQ1MjE1YjdhYzRjNSBsZWdhY3ktdHJ1bmsKKzQ2MzggODdmNGQ2ZDJlOWM4OWE4NGU5OTAyMTZjYTY1NzViODgxNWY5MjczZSBsZWdhY3ktdHJ1bmsKKzQ2MzkgOWM4YjQzMjM4MDhiYzBmOTkxMzNkOWIyN2UyYjE0NWU5NzljZDEyMyBsZWdhY3ktdHJ1bmsKKzQ2NDAgOTVjYjUyYjg1Zjc4NjdmYjQ3YzY4Nzk5NDI0NWJjN2M1ZDViOWE1MiBsZWdhY3ktdHJ1bmsKKzQ2NDEgOTY4ZTI0ODRkOTRkYTM4MmQ0OWM3MzNjMDNjNGUyOTkzZDExNzQ0NSBsZWdhY3ktdHJ1bmsKKzQ2NDIgNjQ2MWZmMGM0YmVlNmYzMDU2MmExNTQ4MzM4N2M1ZGUxNzZjNWYxOSBsZWdhY3ktdHJ1bmsKKzQ2NDMgZDU5NTY4MzgxNDQ3ZDBlMzI5OTVmNzVhNzNkMjBhMjg1ODhkODM0YiBsZWdhY3ktdHJ1bmsKKzQ2NDQgYjQwZTEwYmRhMjMxOTFkMmQ3NmI3ODgzNDZkNGQxMjJhNDg2YjA2MiBsZWdhY3ktdHJ1bmsKKzQ2NDUgZjQ4OTUxZGFiYTRmZmMzZTc1NjI1ZjM0YTRkZjNlNjNhYWZlZWJlYSBsZWdhY3ktdHJ1bmsKKzQ2NDYgZjc4ZmJjY2FmNThjYzY2ZDFiODA2NjM1MTkyYjUxZWIyNjA3MmVlMSBsZWdhY3ktdHJ1bmsKKzQ2NDcgMWMwMTJkODJhOTc1OGMyMmIzNzQ1Nzk3Yjc0ZWZkYTk2ZThiMTMyNCBsZWdhY3ktdHJ1bmsKKzQ2NDggOGU0NzZjYTNhN2EzZjJmYWY2ZjFmNjUxN2Q2YmJiODg3NDA2OTY0NyBsZWdhY3ktdHJ1bmsKKzQ2NDkgY2NjMjc5ZmY5MzVkMGY1NGE2YmM5ODE1ZmUxNTEyZDUwNTI1MmJlNyBsZWdhY3ktdHJ1bmsKKzQ2NTAgNWU1NjhiYWNmYmU5OWJhNjJhODJhMzhhYzUyNzQyNWJjZjc4MmRmYyBsZWdhY3ktdHJ1bmsKKzQ2NTEgOTFhNDNlYTExYmEzNTk0YzkwMmMxZWJlNjU2NGIxMDI2MTBhZTk4YyBsZWdhY3ktdHJ1bmsKKzQ2NTIgMjc1NTdlNzBhOGYwMjliY2Q3OTNiNzJjNmFhMDk3ZDMyZTA4MjMyMSBsZWdhY3ktdHJ1bmsKKzQ2NTMgZjQ2NzFiNjgxYWI5OGU3NjIwZmQ5NzI5YzQzNjE4MGU3MDljNDYwOCBsZWdhY3ktdHJ1bmsKKzQ2NTQgNWFlOTIyY2ZlNDA0OTM0N2JiMDc0MDNkMDBlNTZkYmVhYmRmZDE4ZSBsZWdhY3ktdHJ1bmsKKzQ2NTUgOGYxZGFmZmU3OTliY2YzNGUwN2FmYmM5OGQxMzc3MDg4MzQ2ZjRjYiBsZWdhY3ktdHJ1bmsKKzQ2NTYgOTg5NGU1NTQ2OGVjNjBmNzVhMmFmMDA2MzNkZjgzNDAwMzQ5NDU4ZCBsZWdhY3ktdHJ1bmsKKzQ2NTcgY2RiMzczZjY1YmYzODBkYmQyOTQ3MmQ3ODgxNGIyZTAwZTAwY2I0ZSBsZWdhY3ktdHJ1bmsKKzQ2NTggMDJkZDYzZDNmZTliMzEzNzBlZTU3MzY2NGJlMmEyMTE5NWE0NDQ1ZiBsZWdhY3ktdHJ1bmsKKzQ2NTkgNTI3ODg5YWU4NDUwMzkwOTc3ZDNlODk1MjFiNGMyZGNlYjkxMzQxNSBsZWdhY3ktdHJ1bmsKKzQ2NjAgMGUzMDI3NzFlZTVhMmJmYzdiZWUxOWMyODdmY2Y5YjNmODM2MjViZiBsZWdhY3ktdHJ1bmsKKzQ2NjEgMzNlYTljYzdkN2JhZTcyM2M4N2EyNzIyNmQ4MjM0MDNjNDg0YTg5MSBsZWdhY3ktdHJ1bmsKKzQ2NjIgYzY4YTAxMTNiNzVhMjdmZWEzM2JkMzY0MGNmYzUyMGYxYTUyYWQ3ZiBsZWdhY3ktdHJ1bmsKKzQ2NjMgNDA1M2Q0Y2I1MGUwZDcwMTc0NmE3NTc0OWE2N2NhMDhiN2NmMDI4OCBsZWdhY3ktdHJ1bmsKKzQ2NjQgZTczNGM3MjM1NzI3ZTc0YjU0YWQ3OWIzMGNmY2VmMmQzNWMyNDEwYyBsZWdhY3ktdHJ1bmsKKzQ2NjUgZWIzZTYxZGIwZGRhOWM1YWY0NTU4OWNhMjIxZTM4MWU2YjE1ZjNjNyBsZWdhY3ktdHJ1bmsKKzQ2NjYgNjRlYjQ4N2NhNDY1ZDZiNmEyODYwNWU5OThjODc1MWNhYTE3NzFkZiBsZWdhY3ktdHJ1bmsKKzQ2NjcgOTM5NzkxZjIxOWE2M2VkODU2MWVjNmJiNzU2YzRlNzdmNGU5YWY1OSBsZWdhY3ktdHJ1bmsKKzQ2NjggMjcyMjI5MzQ4ZmUyYjc3YTE1YzRlMzE3NWE3NTY5MTQxZWVkODE1YSBsZWdhY3ktdHJ1bmsKKzQ2NjkgYTNiZDYxNjMyZjE0NWVkOTg4YTFjMmFiN2Q1OWEwYzUwNGM3OTc1ZCBsZWdhY3ktdHJ1bmsKKzQ2NzAgYWJlZDM2OGQ2OGVmMTg5MGM2NzI1Y2Q5MWViOWYxZjJkMmVlZmYxOSBsZWdhY3ktdHJ1bmsKKzQ2NzEgNzZkNDNjMDMzODQ4MTBiNTI3MTJhYmVkYzZiNTllYTcxZjljZDE5NyBsZWdhY3ktdHJ1bmsKKzQ2NzIgY2ZlYWE1MDgyYmE4MzFiNjIxYTAzNGI3NzI5M2I4NGViN2MzMjI4ZiBsZWdhY3ktdHJ1bmsKKzQ2NzMgMDYxMjEzMmUwMDE4NTdlZTRhOGM0ZWEwZjkxZjM1NmM0YzMxNmVjNSBsZWdhY3ktdHJ1bmsKKzQ2NzQgOWJjM2E1YmFhNjgwZTM4ZDQwNWNjYzcxOThlOGQ0ODJlNmQwNTkzNiBsZWdhY3ktdHJ1bmsKKzQ2NzUgNzRhMGE2MTIxYWY3MWI2YWM3MzQ5NjVhZGNiZGE3MDVjOGY4YTE4ZSBsZWdhY3ktdHJ1bmsKKzQ2NzYgYmJiNTZkYzNiNTI2YjU1MmI1M2Y2OWU3MmNiMmRjMDNjNzBmZmJkOCBsZWdhY3ktdHJ1bmsKKzQ2NzcgYWEzMzY1ODE1YzIwZDc1YjIwMTMyM2VlNjRlMjEwNzM0ZmY1ZDdiNCBsZWdhY3ktdHJ1bmsKKzQ2NzggMzI0MzVkMzNmMzRhNmY0NGM4ZWNmYjU0MDhkNGEyMzhkNjg2N2U5YiBsZWdhY3ktdHJ1bmsKKzQ2NzkgNDk3MTk3ZjM1NzNjMTBiOTRlM2UxMDhjNmU5Y2NkZmUyNTE4NzNkZSBsZWdhY3ktdHJ1bmsKKzQ2ODAgYzJkMThiNTgyMzJlZGVmMTY1YjMxNTBlNjIwMzQwOTk1OTAyNjJhMyBsZWdhY3ktdHJ1bmsKKzQ2ODEgZTUzZDAxOWU3ZDQ3NjEyZDJlNjQ2ZmY3ODNmNTg5OGJkNGZiNjRjZSBsZWdhY3ktdHJ1bmsKKzQ2ODIgOTU4OGMyMzhlNjYwOWMxMzEyNDEyYjViMjEzZGFmYTYzZmNhMGJhMCBsZWdhY3ktdHJ1bmsKKzQ2ODMgNGJjZjFiOTZlZmVjNGYxMTZiMzMwOTQwZjM3MTNhMmZjOTc2Mjg4MiBsZWdhY3ktdHJ1bmsKKzQ2ODQgOTJlNmY1ZDhiZTgyYWI5MTQ0OGJjNjczZmQ0ZThmZjRkNzU2YzU4ZCBsZWdhY3ktdHJ1bmsKKzQ2ODUgMWU4YjM0N2EwNTZjZjM2NjZlZmU1MzE0NmFlMzcyODNkYzg3MjRhZiBsZWdhY3ktdHJ1bmsKKzQ2ODYgOGQ1ZTM2YjM3YTQxMzIyOWZhOTFlMTE3ZDc4YTFmNWU0NzhhOTcyNSBsZWdhY3ktdHJ1bmsKKzQ2ODcgMDEwMzc1MzJjMDg2MGExYmM5OTQxMTM3YTI0ZDlkN2NmZTNiYjJiOCBsZWdhY3ktdHJ1bmsKKzQ2ODggN2I2NTQwNDk2ZjU1NGJiNmU1NzRmMWEzMmU2NTAwZmI2ZWRjMGIzMyBsZWdhY3ktdHJ1bmsKKzQ2ODkgMDFlZDRjZDIxNTc2Y2JiNDUwYzhiODE2ZWY3MTBjZWE3ZDQ0ZmNiNiBsZWdhY3ktdHJ1bmsKKzQ2OTAgMWI2NjI0OTc0MjZiNTNhMTBlMmU4OGYwMDgzODg2OWNkZDY1M2NmMyBsZWdhY3ktdHJ1bmsKKzQ2OTEgMGIwYjE4ZDY1NWQyZTljMDVlNGU1N2ZlMmNmZjhkNmE4MWUyMWM1NiBsZWdhY3ktdHJ1bmsKKzQ2OTIgYjVkY2JhN2I3MzJkMDNiMGRiZGMwMDA1MWNiODAxZTc3ZjEzZTcwNSBsZWdhY3ktdHJ1bmsKKzQ2OTMgNDQyYmFlOGZjZmRjNjUxNGYxOWQxYWNmZjhiYTYxMTE1ZGYyZmIwOCBsZWdhY3ktdHJ1bmsKKzQ2OTQgOTRiODQ1MzVjMzRlMTFkOGVhMjViYWJkYmMwYmNiYmUxNDYxYzU4NyBsZWdhY3ktdHJ1bmsKKzQ2OTUgZmVmYWUzN2MwNTNjZmQzYmNlZjNkOTM5YThmM2ZkNzU2Yjc4YThiOCBsZWdhY3ktdHJ1bmsKKzQ2OTYgZDNiNWJlMGM4NzJmMzNiMWVlOTEwODYzNDRhZDJjNzBjNjIwMjFhYiBsZWdhY3ktdHJ1bmsKKzQ2OTcgMjgzYThlYjJlMzE3Y2I3ZDdiMTE1YWM4YjA0YTJmZmU5ZjYzNGJlZiBsZWdhY3ktdHJ1bmsKKzQ2OTggNzJlMDVjNjFjMmZlNTkzMzc3ZWE3M2NiOGViNGI1Yzg3YjIwNjI1NiBsZWdhY3ktdHJ1bmsKKzQ2OTkgN2ZhNDhhYjRiZTBmNGJjM2Y1MTNhNTA4NGMxOWI2ZmYzYTAyZjYwMCBsZWdhY3ktdHJ1bmsKKzQ3MDAgMWFiMzViNmY2MzhhMjY2YjcxNzY3NzVmNDQwOGNkM2U5ZGI2YWJjNSBsZWdhY3ktdHJ1bmsKKzQ3MDEgOGFkMTM2MzI4N2FhOGJjOTgzNWQyYjQ1MTI5OTU2NmY0NTJiMTNjMyBsZWdhY3ktdHJ1bmsKKzQ3MDIgNDM4ZjUzZTdjZmQxNGU5NWVhNzJkODlkMGM3YmM0OWY1YTU5YzIwOCBsZWdhY3ktdHJ1bmsKKzQ3MDMgYTc2YTc5Zjg5NmNmNWZlMjExM2JiOWY2NmFjNGRkNjAyMmQ1M2Q3MSBsZWdhY3ktdHJ1bmsKKzQ3MDQgM2JlZjFhZmY4NzFiYzM0OTIwNzA4NTk3NDUxNWEzNTZkMWQ1N2MwNSBsZWdhY3ktdHJ1bmsKKzQ3MDUgZTBhMzI0MmQ1YWU3OWQxNjIwYTIyNjI0MmE4YjNjYWExMzk0ZWI5MyBsZWdhY3ktdHJ1bmsKKzQ3MDYgZTlkMTFmOWI4MmUyYjU4MWE5NmI3MzI1ZTIzY2ZkMDc3YTM4OTQ5MyBsZWdhY3ktdHJ1bmsKKzQ3MDcgYzIzZDA5MjIxNWQyYzNlNWY4MDMyMjIyMjVkZjcxYTZjM2E3NjY3NCBsZWdhY3ktdHJ1bmsKKzQ3MDggNjdlOGVmNjk4YTQyZmYyNzIwYWY3ODE1MGVjZDk3ZDBjMzM0OGQyMCBsZWdhY3ktdHJ1bmsKKzQ3MDkgMzgyZWRlZjJkNmQ3MGQzN2MzNDI4OWU4Yjc0MTEzODI3ZjI2YjhlOCBsZWdhY3ktdHJ1bmsKKzQ3MTAgZDA5MWIyNDZhM2E3YTViYjJjMTQxNWRmYTIxM2NmMTlmZTY0ZjY1YiBsZWdhY3ktdHJ1bmsKKzQ3MTEgZWU0Yzk1NGNkNWRmNTJlOWM0MDczOTdkNGRiY2QxY2ExMDQyNDQzNSBsZWdhY3ktdHJ1bmsKKzQ3MTIgYjFhNmE4MWFmMWNmZjQ3ZDM5YTUwNDhhMThjYTk4MTU1OGY1NzI3NCBsZWdhY3ktdHJ1bmsKKzQ3MTMgODNkMDY0MDRmNmUxMTQ0MmNkMzEwZTY5Y2FiYWZlN2E3ZjI2MGFiYSBsZWdhY3ktdHJ1bmsKKzQ3MTQgYTgxYjZkYjZkMzNjOTRlOGQwOTQ4NjlhMjExMWI4NzA4OThiNzIwMCBsZWdhY3ktdHJ1bmsKKzQ3MTUgNjQ1ZTk2MzQzZjg5ZmVmOGRiOThmNTNkNmE4OGYzNzRmZjBkNWM3YyBsZWdhY3ktdHJ1bmsKKzQ3MTYgMDNiZDc5NDMyZjA2OWM2MzJhZTVhZTg0MjFmNzI0YzEzZWY3MWRhMCBsZWdhY3ktdHJ1bmsKKzQ3MTcgNzg5NWE5NzMxM2U1ZjRjZmFkMjRjNWE2YmE1NmU4NDY0NTM5ZTIwZSBsZWdhY3ktdHJ1bmsKKzQ3MTggODVhYTJlNGQwMTIzYzUzYzVlNjhlODM0YTQ2ZmM3MGI4NTE5NWFjYSBsZWdhY3ktdHJ1bmsKKzQ3MTkgNGJjYzkyOTE2ZmFiYjJmNmM1MWU0ZTExNTE4ZjY2N2VkYWY3ZWNmOSBsZWdhY3ktdHJ1bmsKKzQ3MjAgM2E4M2MzY2VmNGIyYjVjODRhOTM2N2ZlMmZiMDBkMzZiOTQzMWVhNSBsZWdhY3ktdHJ1bmsKKzQ3MjEgNzQxMWI2YTA2OTIwY2Q2ZDRiZTIxMDZkYWYxNGZjMjM4NWQzYmM4MCBsZWdhY3ktdHJ1bmsKKzQ3MjIgYWM2ZjY5YjFlOTkzMDcxNjIwM2E3YTU0YTEyNmZiOGU3ODYyMDVlYiBsZWdhY3ktdHJ1bmsKKzQ3MjMgYThjNmRhM2JkMzA1NmRkNTZmOWZlMDM4Y2NjMTRiMzhkNWFiMTliNCBsZWdhY3ktdHJ1bmsKKzQ3MjQgM2E2NThlZWMxZjAyZTE0ODVlNjgzM2Q2ZjBlYmQxYzhiN2RhYTZlMSBsZWdhY3ktdHJ1bmsKKzQ3MjUgOGExMjQ0ZTdjYjNiZDJhNDgzY2YzZjY5YTUwZjBlYzNiODQ3MzMyMyBsZWdhY3ktdHJ1bmsKKzQ3MjYgNThhYTdmM2IxNjkyYmY1Nzk4Y2VhMTY2ZGUzMjAxOWRhZjhjM2JhYyBsZWdhY3ktdHJ1bmsKKzQ3MjcgMDc2NWQwYmQ4OGQ2ZGE1YWZmMDQxODY3MjQyNDBmMzM2NDg4NDQ1MiBsZWdhY3ktdHJ1bmsKKzQ3MjggOTA4ODBiZDA5MjIxZGVjZDNhYmM4ZmY1M2U3Y2ZmZjYzOTg3MmY4OCBsZWdhY3ktdHJ1bmsKKzQ3MjkgZTViOWY2NDQwNTNlOWUwYzRjZDFiZGQ5MTAzOWVlOTY5OTcxOTQxOSBsZWdhY3ktdHJ1bmsKKzQ3MzAgNjZkNmQxM2RmNGY4YTk4MjA0ZWM0YmE0M2JkYjRiMzM3MzJlZTc1NyBsZWdhY3ktdHJ1bmsKKzQ3MzEgZGY3ZTI2YjVjOTE4OWJhNDNhMGEwZGY0MmQ4MjNiNGE5MGVkOWJmOSBsZWdhY3ktdHJ1bmsKKzQ3MzIgNjU2NDQ3NjYxNThhZThlNGNhOTczMmE1NzMyNjk2ZjUzYjViNmYyYSBsZWdhY3ktdHJ1bmsKKzQ3MzMgNjE4NzAxY2RmNjAwMDEwNjAyZDlkYmE2OTQyNjdhM2QyNWJhNTZmMiBsZWdhY3ktdHJ1bmsKKzQ3MzQgNjUwY2I2N2Q3NjU5ODQyZGVlOGRjYTk5YmM1NTVmZmE5NTcyNWViYSBsZWdhY3ktdHJ1bmsKKzQ3MzUgZWVhYWY4NzVmN2I2ODEzOTczZWU3ZGMwZjFkZjc1MzYzZjJkODZiMiBsZWdhY3ktdHJ1bmsKKzQ3MzYgYjAzNGI0ZWEyYjM5OTAyNmViY2ViNTRkYjk5MmJiMWRmMDhhYTBjYyBsZWdhY3ktdHJ1bmsKKzQ3MzcgNzg1OWQzYWFiMWI0MDUxOWQ4OTEzYWIyMjI3NTJmMWQ1NGU2YzJkZCBsZWdhY3ktdHJ1bmsKKzQ3MzggNzFjMTFhNmU0YmMwMGYyYjc5YzIxOWExMDZiMjE0ODA1NDcxODA0OCBsZWdhY3ktdHJ1bmsKKzQ3MzkgNWU2YzBjZGFhN2MxYmJjY2RjMmQ2ZDYxMDJlOTBmMjg5MWMwZjJiZiBsZWdhY3ktdHJ1bmsKKzQ3NDAgNTU0NmY0YTZlM2MzNGZkMmUzMTk3ZjU3YmNmMjJlMjYwMjgxMjRhMSBsZWdhY3ktdHJ1bmsKKzQ3NDEgNTQwZjg0NDRlZjhhODczMDA5MzQxN2NkZWFmM2MyYWY4Nzk1NmQ0OCBsZWdhY3ktdHJ1bmsKKzQ3NDIgYjRjYWFjMTQyOGQwZGE3ZWYwOTk5MDIwYTcwMGVlZGUyOWU1Y2ZlZiBsZWdhY3ktdHJ1bmsKKzQ3NDMgMzE5NWRiNjY4OWZkNjEzZWVhYjE2YjY4YjZlZDA4MWQxODQ2OGQxYSBsZWdhY3ktdHJ1bmsKKzQ3NDQgZjVhNmU2ZWU1MjljMDdiYTc1YzU2ODRkMDU1YzM2ZjVjZmRkYmQ5OCBsZWdhY3ktdHJ1bmsKKzQ3NDUgYWM4YTIyNWIwNTFiNzU3NzIyMTdiNGYwZTQ5MzFlMDM1ODZmN2IyYSBsZWdhY3ktdHJ1bmsKKzQ3NDYgMDFhOTU0MTI0NTc3MjRmYmQyMWFhNzAxNjg2OThmMDE2MzYxMjE4NSBsZWdhY3ktdHJ1bmsKKzQ3NDcgYTI0MTQ2MjQxOTkxM2I3ODUxYTA3ZWE1NzhiMTNhOWY4NWRhM2JiMiBsZWdhY3ktdHJ1bmsKKzQ3NDggNjI2M2UyZmQ5Mzk4ODgxMzk4ODE1NGYzYmIxNGZlN2JmOGYyYWEzMSBsZWdhY3ktdHJ1bmsKKzQ3NDkgM2Q2YzlhNDdlYTQ0NWE1M2ZiMjM3MWI2ZGIwMGY5NWQyZjkzMTVmNiBsZWdhY3ktdHJ1bmsKKzQ3NTAgZjE3ZDZlNmI0MGRhYjE0YzVhY2IxNTI5M2Y2OTgyNTQ3NGFhOGY1YSBsZWdhY3ktdHJ1bmsKKzQ3NTEgOTcxN2Y2YThmNWZhZmU5ZWJjZjJmNjhkZTc0Mjc4ZmYyZTA4NmUxOSBsZWdhY3ktdHJ1bmsKKzQ3NTIgZmU4ZGI3OGYzMTFjOTZjZWQ2OGNkODc5NTNmODZjZTM0ZTU1MGJiOSBsZWdhY3ktdHJ1bmsKKzQ3NTMgOTkwMDk5ZWQ3ODEwNTFkNTVlNGMwMmYxMzMxYWY0YTAyYzc2NWU0NyBsZWdhY3ktdHJ1bmsKKzQ3NTQgZDIwNDlhMWQzY2M1Y2YxY2QyYWU2NThjMWRlNDM5MmEyZTMzN2RhYyBsZWdhY3ktdHJ1bmsKKzQ3NTUgYWRhYjY2ZmFjMzBlOTdlYzc4NjZmZmUwM2UzNzAzMzU4ZWZlYWY2YSBsZWdhY3ktdHJ1bmsKKzQ3NTYgNmEwNDI1NmVhMDg3N2MwNzRkMmE5Mzg4YzQ2M2ZmM2M5MmVmMjhkYSBsZWdhY3ktdHJ1bmsKKzQ3NTcgNTA1ZmM0NzhmZjA4NTE0ZTUyM2RhNjE4ZDRmNTUzZTE5NzY4MWRiMSBsZWdhY3ktdHJ1bmsKKzQ3NTggMTcwYjk5ODYyZDA5NWQ5NjM4NTkzMWExYmIzZGZjMTQ1OWI4NGZlZCBsZWdhY3ktdHJ1bmsKKzQ3NTkgNjVhNjhjNTFlOWYyYTcwZmYzNmZmY2QwOTZlM2Q5MDNhZWNhZmQzNyBsZWdhY3ktdHJ1bmsKKzQ3NjAgMDhiNDU3ZDZiNTE2ZWRmNDU2ZmY3NjM2MDdhMjA0ODVhMGE3ZTRjZCBsZWdhY3ktdHJ1bmsKKzQ3NjEgNWFlZTJjNWQ4ZGZmY2FlYTNlODZhNzc4ZDA3YmZhYTRhNmJjNjlhYyBsZWdhY3ktdHJ1bmsKKzQ3NjIgMTRiMTI2ZDBiNWJlMzRiYzk3YjEyZDYyMjk4MDllZGVmYWRmMDM3NCBsZWdhY3ktdHJ1bmsKKzQ3NjMgNTZjYTY3ZGRlYzg1OGI1NmQwZjAwMTdmZjJiYzFmNmE0ODE5ODdkNyBsZWdhY3ktdHJ1bmsKKzQ3NjQgMDc5MTNmYjhmOTJmMDQ5OTM5MGI3YWIxMjkzN2QyMDVkNTM1OWM4NCBsZWdhY3ktdHJ1bmsKKzQ3NjUgZmM2ZTk2MjIxMDg4YjA4MjM1N2FkMDhiODc4MmM0Njc3YzA2YjllMiBsZWdhY3ktdHJ1bmsKKzQ3NjYgNDBhZWM0OGNkMWUyMTQ3ZDhmOWFmMDZiMWNiMGRkMDBmYWNlNDNiMyBsZWdhY3ktdHJ1bmsKKzQ3NjcgZmY3MmE1ZjlhNGVlMTI0YWEwZDg4YTkxMzBiZGI4NjU0OTZlODFmYyBsZWdhY3ktdHJ1bmsKKzQ3NjggNTE1ZTFkMDMzOTRhZDg2NjllYzRkOTk4Mzg0ZGYwNzkyNjA5NDc3MyBsZWdhY3ktdHJ1bmsKKzQ3NjkgMTQyNTYxNzUxNGFjY2Y4YWEzMGMxNWM1NTMwNTA2ZmU4ODIxZmUwZCBsZWdhY3ktdHJ1bmsKKzQ3NzAgZWQ4MjFhOTliYTM5MjM5NTA3YzAwY2E1ZDdkZTczNTg4YzBjNTEzMCBsZWdhY3ktdHJ1bmsKKzQ3NzEgMWNlMDdmNjQ4NjJlOWY1ZjgwYzY1NmU2OGYwMTU3YzYzZTg2ZWQ5NSBsZWdhY3ktdHJ1bmsKKzQ3NzIgOTllN2FjMjJiZDJlMmQ1MTg4YzBkZGMyMjgyMGQ2MTdhYWM2ZjA4MiBsZWdhY3ktdHJ1bmsKKzQ3NzMgMWU3MjA3MTI4MTY3ODhjNmNlZDhlOTU4Zjk3Nzc2NGU0NWE4YTNiYSBsZWdhY3ktdHJ1bmsKKzQ3NzQgNWY3MDU4ZDgxNmNmOTFmMjUzMzQwZDRkY2QwYmY2YjlkZjZjN2YzZCBsZWdhY3ktdHJ1bmsKKzQ3NzUgMzE2MWU3Y2YyMDU0ZjczNmY4YzI4YzE2Y2QzYjlhYzFkZmQ3ZDliOCBsZWdhY3ktdHJ1bmsKKzQ3NzYgZDNlMmY5ODhmMWFmMGUxNDgwNWM1NjE1ZmIzOGM0NDAxNTc5ZWQwYiBsZWdhY3ktdHJ1bmsKKzQ3NzcgM2RmZWY2N2UwZGVkOTBlN2QxMTI4YTNmYzJhMDI0MjBhNWFhMmYzMCBsZWdhY3ktdHJ1bmsKKzQ3NzggZmFhZWNlN2NjZDZlNzFiMTVkNDgwMzcyMDI1MjM4ZGI2MGE0YWNjMSBsZWdhY3ktdHJ1bmsKKzQ3NzkgN2JkZTRiMWRmNDk0MDk3ZjdhYTE5OTY1NzRiNjNlZmY4ODdlYmVkMCBsZWdhY3ktdHJ1bmsKKzQ3ODAgZThkMjA3NjU4YTA0NTJiMWQ1OTI3NzNkM2VlODRiNWMwOGFkYjZmOSBsZWdhY3ktdHJ1bmsKKzQ3ODEgNDNmOWU3NTQ5YzcwZTZlODM3ZDBlMGE2NjZhZDI0MDZmNGUzNmIzYiBsZWdhY3ktdHJ1bmsKKzQ3ODIgM2VkZWM4MjExYTM2YWQ1NzE5M2U5ZDg4MTlmNzU5MDAwZjJlMjlmZiBsZWdhY3ktdHJ1bmsKKzQ3ODMgMWIyNjJkMTkwYTRhNDgxMDk4M2NjM2Q2NjViNTU5NDQ5MzM5OWMxOSBsZWdhY3ktdHJ1bmsKKzQ3ODQgODQ1NjBmNGIyOWVmMDlhMjA5Y2RjYzc4OGQ0Zjk2NWYzZWFlMzcyMSBsZWdhY3ktdHJ1bmsKKzQ3ODUgMjQyZGQ1ZWQzYjA4NWVlZTJmNDI2NzJiYTY1MDQ5NTIyMjZhMjk5ZSBsZWdhY3ktdHJ1bmsKKzQ3ODYgMzJlN2QyNjk2ZDc5MWM2OWVjOTlhYjExMjU2MTdlOGY0Yzc4YWUyNiBsZWdhY3ktdHJ1bmsKKzQ3ODcgNjQ2OGZkMDI1MWQyOTY4ZTYzMTE4NmZhOTQ2YTUwNGE2MGFmZDM2YSBsZWdhY3ktdHJ1bmsKKzQ3ODggZDhiNGM3ZGI3N2FlNmJmZjhiMjVlYTI3OTgzYWEyNTA0Njk1NTIyZCBsZWdhY3ktdHJ1bmsKKzQ3ODkgZTExZTZiMzU4NTMxM2FhOTE5ZDdhNGUyZjgxMzQ1Nzk3ZmZmNjMzNSBsZWdhY3ktdHJ1bmsKKzQ3OTAgYjIyNDExNzdiY2NjNjI3NzMzMmU4YTVlOTU3ZjhjYjg3NmJmMzQwMyBqYXIKKzQ3ODkgOWU4MmRhZjc2MDViYWQ3OTc2YTlhYmM5OTdjYjVlMGFiZTQzNDA3OCBsZWdhY3ktdHJ1bmsKKzQ3OTIgNzFlNjA4NzFjNjgxY2U5MTQxOTc0ZWZhYzNlMGIzM2M5ZmUzMjg4YSBsZWdhY3ktdHJ1bmsKKzQ3OTMgNGMyZjE0NTIxMjVkNTlkMDc1YzZmZTdkYWY5MDE0Y2JkZjE3OGYzNiBsZWdhY3ktdHJ1bmsKKzQ3OTQgNDEyNzg5M2E4N2FkMDVhMDIyZWU3MGI1OGFkODFjNjM3ZmJmOWU2NSBsZWdhY3ktdHJ1bmsKKzQ3OTUgMjFmMGQ1ZjE4Y2RhZTYxMDhmNWZjNWZkMjU0NTE5ODJkNjAxOWY5ZiBsZWdhY3ktdHJ1bmsKKzQ3OTYgNjNmYTM4N2MwMmZlYmNiMDhiMDU0YTBlZTIwMzNlYjAzYTg3NzA2NSBsZWdhY3ktdHJ1bmsKKzQ3OTcgNjcwZTUwYWUzODlkNTRjYzMyMTAxY2ZiNGQ1YWQ2OGY2MDhmMDU1NiBsZWdhY3ktdHJ1bmsKKzQ3OTggNGI2MTdmZWU0MjdkMzYzOGM4N2MwZDYyZDhjOWY1MzNiMzhiOWI3NyBsZWdhY3ktdHJ1bmsKKzQ3OTkgZWQwYWE0YTVkMTA2YjljMmI3YjJlZDNkODUwZTQ4NGJkNzA2ODQ2MyBqYXIKKzQ4MDAgMjc5ZDUxYTE4YWU0YjRlOGRjZjAwNzc2MGE5Nzc4ZDhiZmVmODhiMyBsZWdhY3ktdHJ1bmsKKzQ4MDEgOTU1MmVkYjRlYWJmYWMzNDFhNmQzZTRmMTAxM2ZhOTQ4YzAxNzcwZiBsZWdhY3ktdHJ1bmsKKzQ4MDIgZjA5ZDMyNTJhMzhiMjEzZWVlZDJjNzc2YTE4YmYyN2EyMjYzODNmOCBsZWdhY3ktdHJ1bmsKKzQ4MDMgZDA1Njg1OTkzNDc2ZDRjYjcwZjViMzRhZGRmMTExODAxMGYzOWYwNiBsZWdhY3ktdHJ1bmsKKzQ4MDQgZWQ0ODY0NjFkZWY2NzZmMDYxOTlhY2FmYmFkYmZjYzFkZWExYWU3MyBsZWdhY3ktdHJ1bmsKKzQ4MDUgZDY1YzQ4NWUwYWQ4MjM2MDAzN2Y4YWI1NmM0Mzg5OTFlNWRkYWQ4NiBsZWdhY3ktdHJ1bmsKKzQ4MDYgYTIwNTQ5MzM3NzViMDAxNGQ2MDVmZGUzZjdmMTRhODVlZTM4MTNmZSBsZWdhY3ktdHJ1bmsKKzQ4MDcgODVmYTAyYjg1ZDdkMTMwYTE0YTkxZDZiYzJlNWY1YzRlNTYwMWUwMCBsZWdhY3ktdHJ1bmsKKzQ4MDggMjZiMWIxNWZjOGVjMzc1NmE1NjNlNGU3MWU3YmJjN2E4MWVhNGZiYyBsZWdhY3ktdHJ1bmsKKzQ4MDkgOGE4NzY1MzQzY2MwZDQ1NWEwNjE4ODJlNTdjYThhMTQyZDlmYjIyYyBsZWdhY3ktdHJ1bmsKKzQ4MTAgZmJhZjU0MTY5NzExNzNiMzY2MDZkZTRlNWM1OWE3NWJmNTY5MDJlZSBsZWdhY3ktdHJ1bmsKKzQ4MTEgZGY1YjcyOGI4ZWI2MmVlNzk4NjA3YmEzODY1MGE2MTNkOGNlYTU4MSBsZWdhY3ktdHJ1bmsKKzQ4MTIgNmE5NDExOTg0NGViMzgyMGU0NGZjMzM2OTQwOWZjYzliYWM3Mzk5NyBsZWdhY3ktdHJ1bmsKKzQ4MTMgMTc0MGZkNzZmYzMzMmZiYzQ3OTVlMWZjODNmZGRkMDczZDU0OTE2ZSBsZWdhY3ktdHJ1bmsKKzQ4MTQgNGM0M2NiZGNkNTI0M2Q5OWNjMjUxMWUyOTRmYjlkZmNiYzI1NWQwMyBsZWdhY3ktdHJ1bmsKKzQ4MTUgOTE2YThmZjM2YTg1NDcwYmZhNmEwYzdhMDE1NjNjMDYwZjllNjQ3MiBsZWdhY3ktdHJ1bmsKKzQ4MTYgN2ZkNzQxMmU3MTg4NDhlMGYzMzMzYzJiNDZkNjE4MjQ5Yjk3ZTA2ZSBsZWdhY3ktdHJ1bmsKKzQ4MTcgZTgwYWNmYTEzYWMwMDA0NDk3ZDZiMzFlNGE1ZGE1ODIwZDJkODZjMSBsZWdhY3ktdHJ1bmsKKzQ4MTggNzQ3ZjBiN2NiN2JlNDM0Y2I5NjVlY2QxNGY1MmM0Zjk3NWYzNjEzNCBsZWdhY3ktdHJ1bmsKKzQ4MTkgMjFhMjNjZmM0ODQzMWFlOTFjYTAxM2UwMGVhMTFjMDEyMzM1MDNiZSBsZWdhY3ktdHJ1bmsKKzQ4MjAgOTY3NDdjNzg3YTgzM2MzMTkwZDNkM2MyMDE5NGFiMzJiYThlZWIxYiBsZWdhY3ktdHJ1bmsKKzQ4MjEgOGNmNjNjMzBmZmM4NzdlYzBhZDk0NjAwY2MxNDIxOTI1NjYzYTg2MSBsZWdhY3ktdHJ1bmsKKzQ4MjIgOTRiZjJmMDVkYTMxOWU2Y2UzNWUzM2Y3YWE5N2EzN2NmMjg0YjNiMiBsZWdhY3ktdHJ1bmsKKzQ4MjMgOTE1ZmFiZWM2NGEzMGFkNzMzYjEyOTAyM2EyZjA3MjdkNjNjZjI5ZiBsZWdhY3ktdHJ1bmsKKzQ4MjQgNjYzYWEwNTllMjlmZWM2NmYwMzM4MTk4ZmMzMjZkOWJiMTAzMjBlOCBsZWdhY3ktdHJ1bmsKKzQ4MjUgYmExYjc2YzA5MDQxNGEzZWM4MDY4YjU3MTVkOTQ2ZWExMzJlNmNjMyBsZWdhY3ktdHJ1bmsKKzQ4MjYgZTM4NjAzNWY4OTdkZmQ5MWFjNjM1OTYyNjU0Y2RmM2NiODYxNjU0NiBsZWdhY3ktdHJ1bmsKKzQ4MjcgMDRmNjFhNWE3NjU0MDljNGQ1MGFmNzQyMGI5MzU3NGFiMGM3MmJjZiBsZWdhY3ktdHJ1bmsKKzQ4MjggMGM4MzVjODA0MzIyNGNmNTkwNTUzMjc0NzE3ZWU0ZjI4MTcwMGMzYiBsZWdhY3ktdHJ1bmsKKzQ4MjkgNTgyYjAwZmJhYjE2MTQ1MjNmOGQ0ZjQzMjMyNzA2MGJlZjQzNTI5OSBsZWdhY3ktdHJ1bmsKKzQ4MzAgMzk3NDc4YmNhMGM0ZGFjMWRjMDNlMDJkNGQzYjQ2OWUyMGU3YzhlOSBsZWdhY3ktdHJ1bmsKKzQ4MzEgNTFjODgyNDk4NWY4YTUwODUwYWQwZWViNmVhZGUxYTczYmQ5Njc1ZCBsZWdhY3ktdHJ1bmsKKzQ4MzIgYzMxZWFlZDc3OThiYmE0MWYzMTRkMzhlNjkzYTc0ZjllNjhhMzVmNCBsZWdhY3ktdHJ1bmsKKzQ4MzMgZGFiMzRjYmY4ZDdmYTNmNDJhOTk3OWY4N2U5MjAyYjdlOGJjNWJmZSBsZWdhY3ktdHJ1bmsKKzQ4MzQgNGU4N2YzYTNmMzNhODdhYmZiMDhkOGQ3M2FlOTdmODAyNTdhNjQxZCBsZWdhY3ktdHJ1bmsKKzQ4MzUgMWEyMGQ1MDU4NzQ0NDhiYzcwMWFiZWExNjE1OTJjZDU0MjhkOGIzZiBsZWdhY3ktdHJ1bmsKKzQ4MzYgYzhhODMyMThiYTYxODcwYTZjNzE3ODAxZmI3ZWE1YjY0YmZlZmVjMCBsZWdhY3ktdHJ1bmsKKzQ4MzcgZmYzZmMzMGVkNzYwNjlhMWIzZGRlZWYwZjFmNGQzYjMxZjA3ZTU3NiBsZWdhY3ktdHJ1bmsKKzQ4MzggNjQ1MGQ4ODI4ZDJiOTg4ZDQxNDAyMDI3MTZkN2U5MTU0ZGJkYzRlNCBsZWdhY3ktdHJ1bmsKKzQ4MzkgNGNjODEzN2NjYjU2Y2ZmZjM5MmY2OWM2YmQ1ODM2MjNjYWU3MzZjYiBsZWdhY3ktdHJ1bmsKKzQ4NDAgZjhhYjkyNWVmZGE4OGFlMGRhMGEwZTNlNWU3MTc4MGFjOWQ0MDNhMyBsZWdhY3ktdHJ1bmsKKzQ4NDEgYzY1MzNiODk2Mjg4ODdhMzExZTljZjM4YjliMWQ4ZWQ4ZDk2ZDBkZSBsZWdhY3ktdHJ1bmsKKzQ4NDIgYzA5ZGFiZjcwOTk2ZmI5YTlmNzg2NmYyN2IxMzg1MzU2ODk5MjIyNyBsZWdhY3ktdHJ1bmsKKzQ4NDMgNTMxM2FjNmYzNGZkY2IwM2U2NzNjMTc2MTQwZjgwNzdjMWRkODBiNSBsZWdhY3ktdHJ1bmsKKzQ4NDQgZjk3OWU1YmQ2YTIyMzBlNzhjNTIzYmYwZjllOThlYTBkMDkxZWEwYSBsZWdhY3ktdHJ1bmsKKzQ4NDUgNDliZmVmMTdiMTJiNjVmYTc2YmZiMDljZjM0YWRhNWE1YTY4YjhjYiBsZWdhY3ktdHJ1bmsKKzQ4NDYgZGRiMTM4NjJmYmIyYmVhNzQ3YTY4MTdiOWE4ZGRlY2EzZGQxYTVkMCBsZWdhY3ktdHJ1bmsKKzQ4NDcgZWNiYmFhNTg0ZjNjMTY3Mzk4ZTA2YjQ3MTI1ZjIzZDMxYzM2MzA4OSBsZWdhY3ktdHJ1bmsKKzQ4NDggOWRjODc1YWQwNTBjODk5NDBlM2E1OTNhY2Q2ODI4N2U0YzcwOTBiNCBsZWdhY3ktdHJ1bmsKKzQ4NDkgYjE1NmJmNGJlNjJmMWI2YTljNTcxMzUyYTJkNjE5ZWQ3NmNlNDJmYSBsZWdhY3ktdHJ1bmsKKzQ4NTAgZmE4Y2RkM2NjNTQ1NDA1NTE5NDNjMDMyMDlkNWJmNGZkZWFhNTRkZCBsZWdhY3ktdHJ1bmsKKzQ4NTEgNDJiNTY4OWE3NDA5NWRkODA5MDI2NWNhZWI2MGUwMjM2ZThkN2ExOCBsZWdhY3ktdHJ1bmsKKzQ4NTIgMjljYTQ1ZWIzYWI3NTIzYmE3NTU3OTk5Nzc0M2E5NzA4ZTdiMjYwYiBsZWdhY3ktdHJ1bmsKKzQ4NTMgMDczNmE3ZWMyZjI4OWU1ZGVlOTFkMGNlOGEyZjdmOTViYjM5MjY5ZSBsZWdhY3ktdHJ1bmsKKzQ4NTQgY2FiYjdjNTczMmVmMWEzOGQ5ZjQxNDZhYzU4MjYxODI0MGM3M2RkNiBsZWdhY3ktdHJ1bmsKKzQ4NTUgNDM4YThjMjY1ZWI5ZjU0Yzg2N2NlZmY3YWNkMmI5MmJjOTRiMTNjNyBsZWdhY3ktdHJ1bmsKKzQ4NTYgZDMxZjY5NGMxMWE4OWI3MTExNzA2Mjk3NjMyMTY4ZGZhZjMxODA2NiBsZWdhY3ktdHJ1bmsKKzQ4NTcgMTMyNWIzZThlM2QzY2UxZjY1ZjA3NjgwMmEzODRlYWVjYTQ5YmQxNyBsZWdhY3ktdHJ1bmsKKzQ4NTggY2FiNjk5NDUzNzc1YzE5MDliYmFjODYwYTE5MjgyNjNlMDgyZTg4OSBsZWdhY3ktdHJ1bmsKKzQ4NTkgNzJjNzE1YzAwNGM4OTg2MWQ1MDRiZTdlZjRjYjUwYjQ2NmM0NzI5MyBsZWdhY3ktdHJ1bmsKKzQ4NjAgNzI0NmI5OWQyOTY2YTJjMmIyNTZlZTZjMWYwMzQ1ZGFmZWFhMzA5MCBsZWdhY3ktdHJ1bmsKKzQ4NjEgMGI2MmI1M2Q0M2Y4Nzg2YjY1NDFhM2E4M2E3NDMyZjNlNzk1YTc0ZCBsZWdhY3ktdHJ1bmsKKzQ4NjIgZTE0OTc1YzkxMGYwY2ExYTdkNjQ4MmRiYTBhMjMwNjlmY2U3NzBkYSBsZWdhY3ktdHJ1bmsKKzQ4NjMgOWE5NDI5MmFhNGMxNWJiZGQwNTljZTI2NDI2ODRkOTJlZGQyNjY4MiBsZWdhY3ktdHJ1bmsKKzQ4NjQgNzdlYjYzNzE2YjRmOThkM2E1NDYwYzBiYThmYzUxYjJjNmQ4NzBkZiBsZWdhY3ktdHJ1bmsKKzQ4NjUgNGZjMDMzY2I1NTQ0NWJhNmUxYWJiMjQ2YTg2YjY3N2M3OTVlOTI1ZiBsZWdhY3ktdHJ1bmsKKzQ4NjYgNDAzYTU2MzEyMTRiMDI0NTEwMmM1MzBiZGRkZDg1Y2Q0YjJjODkzNiBsZWdhY3ktdHJ1bmsKKzQ4NjcgZGQxYWIyMGY4MjIzYjM5ODY0MzRkYjVjNThiNjFhMDc3NmFmYmU3ZSBsZWdhY3ktdHJ1bmsKKzQ4NjggNzVhZTEwNGY3ZTZjNTFlYTJmMDQ1NmM3MmZlYTI0OTFmNDk3M2NhOCBsZWdhY3ktdHJ1bmsKKzQ4NjkgODEwYmMxNWUxOGY5ODNiZWYyMzViZTE2YTNiMzVmNmYxMjA1N2E2MSBsZWdhY3ktdHJ1bmsKKzQ4NzAgNjE0MjUxODM2Y2ViMjI3MzA5NjI2NTk5NWI4MmI1ZmEzM2ZmMjYwMyBsZWdhY3ktdHJ1bmsKKzQ4NzEgZWU4ZTkxYTE3NzQ1YWJiN2NmYTE0MjNjNzVmMjg2NmM3YzkxMjk5ZSBsZWdhY3ktdHJ1bmsKKzQ4NzIgNzVhYTUyNDZiMmY2ZjNkMWQyZmIwNzVkZDEyMzk5YWU4NDMyNjczOCBsZWdhY3ktdHJ1bmsKKzQ4NzMgOTdlNTcwNTBlMjc2MGNmYTI3MmY1MmRjMGIyZDA4NmViNTg4ZGQ5OCBsZWdhY3ktdHJ1bmsKKzQ4NzQgMjJiMWFiMGU2NDczNWRiN2Y4ODgzNGExZWQ0Yjk5NGFkY2VkMDZjZSBsZWdhY3ktdHJ1bmsKKzQ4NzUgNGE0NjJhYWNjMWU5OTE0NWI4MDNjYmY4YjMwYTg1NTY1NzFmNzJiMiBsZWdhY3ktdHJ1bmsKKzQ4NzYgNmJlZWYxNzg3MWY5ODJkM2NmYjU0YzBiYjM5ZDdhMWUzN2IxNWVhZSBsZWdhY3ktdHJ1bmsKKzQ4NzcgNmVkYTY0MmYxOWQwMzc4MGJmMDI5MDcyZmE3ZTkxOGI4NTIyOTQ0YyBsZWdhY3ktdHJ1bmsKKzQ4NzggZjRmNzFlYmVhNTNmMTQ1NDIzZTEwYTM1ZmZiNGE0Mzk2YTAxODNhMCBsZWdhY3ktdHJ1bmsKKzQ4NzkgNzNlZWZmNGQ0M2Y4NGFkNzZkMmJiMmYwZTBjNGZiOTQwNzBjYmIxOSBsZWdhY3ktdHJ1bmsKKzQ4ODAgMDBmNGU0MDA1NzVhOTczNDBlNjA5MTIxNjc2OGQxZGJhNTRlNWZkMiBsZWdhY3ktdHJ1bmsKKzQ4ODEgZWNjZjQ5MzdmMWRjOWFkMzVhZWZlZTUwZDQ3ZjNhNGJhMmZkZjZlOSBsZWdhY3ktdHJ1bmsKKzQ4ODIgOWJmMTg5OTZlZWQ4YzlkZjZiM2Y0ZWFkMDBkNWI0MmRlZDQ5OWExOSBsZWdhY3ktdHJ1bmsKKzQ4ODMgYmQzYWQ2NjM0ZTc2NDgyMDYxZjlmZDRmY2U1OTExNDUxOGY5YjcyYiBsZWdhY3ktdHJ1bmsKKzQ4ODQgNzkyNGI3ODE5ZDhmOTZjNzJhMThhZThmOTkxN2E1N2VjNjViY2QxNCBsZWdhY3ktdHJ1bmsKKzQ4ODUgZWZiMDY4NWE2YzkxY2JlNjU4OWE5MzY0YzBjOWFmMTU2ZTI2MmNlMiBsZWdhY3ktdHJ1bmsKKzQ4ODYgZDM5YWFiNmMxMzBkNDVkYjg5NDg4ODVmM2Q2ZjI5YzYwZDFlNzAzZSBsZWdhY3ktdHJ1bmsKKzQ4ODcgY2JiNDA3MmQ1MzhiZTdmMDQyYWVmODVhZmUwMDZiZWI5MmFiZjY2OSBsZWdhY3ktdHJ1bmsKKzQ4ODggNDQ1YmVhOGNlYWIxZDA3MDgzZDNlNGE2OGQ4YjNjZDE1ZjNhNmM4ZCBsZWdhY3ktdHJ1bmsKKzQ4ODkgNmNiZDI4MzBiNWEyMzhjZjU4Mjg0MDg1NzY2NjQ2MjFhYmZiZGI0ZSBsZWdhY3ktdHJ1bmsKKzQ4OTAgNWJjMzQxYzQwNzFjZDA5Mzk3NmRhODA0N2ViMjhjMTQzMzBjZjdiNSBsZWdhY3ktdHJ1bmsKKzQ4OTEgMWU4YWViYWI4NzRhZTEyNWU3ZmQ0NWI4NmQwZDY1MzdhNzBhMGUwMCBsZWdhY3ktdHJ1bmsKKzQ4OTIgZmE5OGRkYTA3ODc3ZjA4OGZiMWVkNzU2NGJmYWMyNjBlYmU5MGE3MyBsZWdhY3ktdHJ1bmsKKzQ4OTMgNjJlYmJjZmVhODI3MmI4NGQ2MzU5OGQ3NmY3NjVjZGY3OGI3YmUxZCBsZWdhY3ktdHJ1bmsKKzQ4OTQgMWY1OWYyYTEzMzEyOTZlZGYwMTIxMDU5NzAxNDI2MTllYzMzNjJmZiBsZWdhY3ktdHJ1bmsKKzQ4OTUgYzFkMjcwNDNjMjJmNDViNjQxOGY2NDdkYWNiNWE2NDAyNTc4MzEyZiBsZWdhY3ktdHJ1bmsKKzQ4OTYgZDU3N2Q3NDk5MThkMTgzZGQ2MzJkMTczNzA5ZTYwMzBjMjI5OTM4NSBsZWdhY3ktdHJ1bmsKKzQ4OTcgMmY4OWVjMWE5YzM4YzdkNzIxOTJjNzRmMDUwMDg5Yzg1YTIwOGEzMyBsZWdhY3ktdHJ1bmsKKzQ4OTggYTVlOTVmOWRlOTAwMGU1Nzg4MmNiYjNhYjg3Yzg2Y2Q3ZTdkMDIxOSBsZWdhY3ktdHJ1bmsKKzQ4OTkgMmRjZjc1MzgzNDdhOWQ2OGYyZThjOTU5OGFkY2E3MjQzMTU5YWJkYyBsZWdhY3ktdHJ1bmsKKzQ5MDAgOThjMWQ4NDEwMWE1MDgxM2I0NWExZjAxZDEwMDVlMzZiNmE0N2M1NyBsZWdhY3ktdHJ1bmsKKzQ5MDEgZjYxNzE2YWQwYjdmNTFmMzFjMDIzZjM0ZTVhZTQyYTgzZDk3MzEyOCBsZWdhY3ktdHJ1bmsKKzQ5MDIgNmYxMjExYjJlMDc3OWIxMTA2MmI5YjJjY2U2OTBmMjQ0NTA3NTNmZSBsZWdhY3ktdHJ1bmsKKzQ5MDMgNzM0OTlhNjY3ZTc4NGVkYTc0ODEzNjg2MWZkNGIwZjc3YTgxM2YxNiBsZWdhY3ktdHJ1bmsKKzQ5MDQgMmM2NTY1ZjFiN2Y4NjQ0NThkZDUzYTI5ZmIxODhiZWQyNWMwZmVhZiBsZWdhY3ktdHJ1bmsKKzQ5MDUgOGVlZWNkMjMzZDU2OWJiYTlmOGMyMzA5N2RkYzI1Njk3ZjMyOGVlYyBsZWdhY3ktdHJ1bmsKKzQ5MDYgOTRhNjQzNjY1NWUwM2ZiOTc1MzgxNDNlYTg2ZmU3ZWM3MDQ0MDY3YiBsZWdhY3ktdHJ1bmsKKzQ5MDcgNDgwYjI1MWEwNDY4MzViMWNiNDU4OTMxZTUxYjRhYTJkMGQ2NTdiYiBsZWdhY3ktdHJ1bmsKKzQ5MDggOWVmZDQwOGZjOWY2YmI3MjkzNmJkYTZiNmNjYzY0MTBlNmNkYWMwNSBsZWdhY3ktdHJ1bmsKKzQ5MDkgY2RkM2E3MjFiNDBlM2U4ZTk1Nzc1MzlkNjQ4OGU4Y2JlMzY1NTI1YyBsZWdhY3ktdHJ1bmsKKzQ5MTAgODk5ZDIwODc0NTY2Yjk4NmQyMTZkMTRmZTM2MDkyMTEwNGM0YmYyMyBsZWdhY3ktdHJ1bmsKKzQ5MTEgYjQyYWI3N2YyMjI2MDMxNjYzYzMxMjkwYTVhYWQzNWFiYWJlOTM3NCBsZWdhY3ktdHJ1bmsKKzQ5MTIgYmMwMzIyNWE0NDkzZjVkYmE2YjNmNmU2YTRmYTkxYjBkY2NkNmFmNyBsZWdhY3ktdHJ1bmsKKzQ5MTMgZTFhN2JkZmFmZWM5MzIzODg1Mjc4ODlkYmYxMWNjY2Y5ZWZmYTYxYiBsZWdhY3ktdHJ1bmsKKzQ5MTQgNjViY2I0MTgyYzFhMzIwNzk3OWVlYmEyOWY0MGY0ZTQxZTFkOWM3MCBsZWdhY3ktdHJ1bmsKKzQ5MTUgYmFjOTZkNWM0NjNmNDUyZmZhN2E0NGY3YWQ1YmRmMDEzYjBkZWMyYyBsZWdhY3ktdHJ1bmsKKzQ5MTYgMWMyOWY2YmRkODk4ZjZlMjRlN2JmNTUzM2M2YmYzNDU0OWViYjg4YiBsZWdhY3ktdHJ1bmsKKzQ5MTcgZDk0MDQ1YmQ0YTA0MTJiOWE2OTAwYTQwZDc5NjZkOTcyYzUyYTQ4OCBsZWdhY3ktdHJ1bmsKKzQ5MTggZTllODZhZTVmNWE0YTg3ZjFhNGRkYjA2MjU4MTYwNDEzN2QwMjFkZCBsZWdhY3ktdHJ1bmsKKzQ5MTkgZTc2NGI3OGE3MDRmNTE4ZjFhODM0MmZkYTFiOGYyYzQzNWJmY2IyMiBsZWdhY3ktdHJ1bmsKKzQ5MjAgZTcyNmY5MGQyYTlmZjI0OTU5ZGExMTlmMjI1ODU5MjU1NTU3ZDZhZiBsZWdhY3ktdHJ1bmsKKzQ5MjEgMWY0MTQxYWFmZTM2MTk3NjlhN2JlNGVhZjI1M2ZjNGRjNmEyNmM2ZCBsZWdhY3ktdHJ1bmsKKzQ5MjMgMzIyZmM1OTZmMWM0Mzc5MTMwMGU4MGNhZmRhYTlhMTQ1NTYxNmFjOSBsZWdhY3ktdHJ1bmsKKzQ5MjQgNGY3YzY3M2RhOTE4YjU2YWQxYmE1NWU2ZjRmY2Q4NDNmM2VhMjU3YiBsZWdhY3ktdHJ1bmsKKzQ5MjUgM2Q2NzM0YWI2Y2Q0MDJkZDAyMWU2ZDRhM2Q4NzllYzFmMzdlODNiOCBsZWdhY3ktdHJ1bmsKKzQ5MjYgOGUzOGNkMGEzYTMxNWZlMWJkN2E4ZTNjOWMxNmY1MDIwZTI3Mjg2NCBsZWdhY3ktdHJ1bmsKKzQ5MjcgMGUxZjlhMTRmYmQ0OTVhOTNhYjVmMzEyZTIxYmU2MDAzNjM5MmUzZiBsZWdhY3ktdHJ1bmsKKzQ5MjggNWJiMzlhNDJjNzI5MTIyNzRlZmE5MTFhOGYyYmFiMGJjZmNjYzJhYSBsZWdhY3ktdHJ1bmsKKzQ5MjkgZGQyODQ1ZDA2ZWIzN2FlMjk0MDhmZThiZmUwNzgwNWQwYjJlNjZiNSBsZWdhY3ktdHJ1bmsKKzQ5MzAgNTNmOTJhNDczYzZmMTBhNmYxYzA2MDdjNjFkNjQyODEwY2QyYjY5NSBsZWdhY3ktdHJ1bmsKKzQ5MzEgZGU0ZGMxNjViZmI2YTExNTI5OWM5YWExYzliOWIxZTI0ZDE5ZjI5ZSBsZWdhY3ktdHJ1bmsKKzQ5MzIgMzAyMDVkNjM0YTE1YjUyODEyNmFlYmRhY2FjZjU2YTM2ZWYxNjJlYiBsZWdhY3ktdHJ1bmsKKzQ5MzMgNzA4OWQ0ODQzNDA3MmVjZGY0NzliMDZlOTNjMjdjMDU3YzcyMWE0NyBsZWdhY3ktdHJ1bmsKKzQ5MzQgMTFiOTM3ZWEwMDI2NGE1YjFmOTNkNTE3YjVhNWQ3OGJkMjMxNTE3YyBsZWdhY3ktdHJ1bmsKKzQ5MzUgNjQ4NDJlMjA2Yjc2Y2IxNWE5YTAwMzI2OTA3MTgwMGZmNjU2NTY4NCBsZWdhY3ktdHJ1bmsKKzQ5MzYgYTE3ZGExMzIyYzU2ZDUxMGI0MmQ2MDdhYzM3MzdkMTE1ZGE5OTg5MCBsZWdhY3ktdHJ1bmsKKzQ5MzcgYmQ0NzY1NTViZTQyYTdhZDc5OWZhNmUyNTI1NjlkZmU2NTVkNjc0NCBsZWdhY3ktdHJ1bmsKKzQ5MzggMjJjZDIyYmY0Mzg0ZTRkNDZiYjA1N2UzNzRjZDRkNmM3ZWUxMGVlYiBsZWdhY3ktdHJ1bmsKKzQ5MzkgMDUxMGI5NDgxNzhlMGJhNzA2YjVhNGU1OTVjMTRkNTkzNTRiZWY4NCBsZWdhY3ktdHJ1bmsKKzQ5NDAgNTE3YmNkNDgyM2FiNzg2Yzc0YjJmYjEzNzEwYWZkZjVmZjg1MGM2YiBsZWdhY3ktdHJ1bmsKKzQ5NDEgMmE1NzRkNGIwZDU4YzJmMGUzODJhZGE0NmE0MDM0NGI2NTU1YTI2YyBsZWdhY3ktdHJ1bmsKKzQ5NDIgZDYzMGM2ZDM2ODM5YWQ4ODQyNmFlNjdiMGZhYzViZDMzMTFlNWZlMSBsZWdhY3ktdHJ1bmsKKzQ5NDMgZmUzN2VkMmNmN2E1YzU3M2JmZmI4MjE0ZjAzMGQ0ODY0MzZjYjE3ZiBsZWdhY3ktdHJ1bmsKKzQ5NDQgZWIxNGYzMmE5N2NkYzVjNTQ5ZTcyZWIxZDlhMzQ5ODhjMDIwOWM2ZCBsZWdhY3ktdHJ1bmsKKzQ5NDUgODA3MjlhZmY5MDU3YzBmZjE3ZmFhNWFjNzBkYzNhZTY3OTE5ZTFhZCBsZWdhY3ktdHJ1bmsKKzQ5NDYgY2Q2NGEzMmFiODAzMmNmNzZiY2I2ZmUxYmNjNDg2ZTk4MGM4OWE4OSBsZWdhY3ktdHJ1bmsKKzQ5NDcgNDQxOGU4NTQ3ZWZjZjE1MGY3MDFiYWM5NDk4ODBjZjAxZTdkNjBhMSBsZWdhY3ktdHJ1bmsKKzQ5NDggZmI4ZTA4ZWM4OGRkNTYwNjJjMWE5MzU2MDIxYWU4MTVhYmQxNTZiNiBsZWdhY3ktdHJ1bmsKKzQ5NDkgNGI1NzRkYjVkYjEzZjE3NTc0YjY1YzQ2OTBiMGJjMGEzYjJjMjljYiBsZWdhY3ktdHJ1bmsKKzQ5NTAgZDk0ODEzNTRmZGMzNjE5OWJlMWJhM2JlODMyZmU4MzY5MTA1NDBkZCBsZWdhY3ktdHJ1bmsKKzQ5NTEgNWZjNjI1NjJlNmVjZTE3MDlkZjNjNzk0NjE1NGY3N2UxZWQ3MmQ1NyBsZWdhY3ktdHJ1bmsKKzQ5NTIgNzE4YzY1ZDBlMTJkYjQ4NjYxYWY3N2I1NzZjY2QxYzM2OTIyYzZmMyBsZWdhY3ktdHJ1bmsKKzQ5NTMgNjBlNWFhY2ViM2ViMzZjYTA0ZDI0YjEzMDNkOTIzNjBhMThmNTAzZSBsZWdhY3ktdHJ1bmsKKzQ5NTQgMTVhODY2ODdmODM4MDcxMTQ1N2IzMmI2MGI2YzkyNGIzYjMxODEyYSBsZWdhY3ktdHJ1bmsKKzQ5NTUgZGRmNjBiYzdlZDMwMTVmNzM3ODkyYWQ5NDRjMDY5Mzc0NmJiYThjNiBsZWdhY3ktdHJ1bmsKKzQ5NTYgYzIyMTk1N2E2MjZkN2VjNWZlMjYzZWY4NzhhYzU5N2U1NmYxODFhNiBsZWdhY3ktdHJ1bmsKKzQ5NTcgZjIxN2MxYjI3Zjg2NzZhNWQ0YjY1M2E3Y2NiYzI3NGI5OTMxNWUzNiBsZWdhY3ktdHJ1bmsKKzQ5NTggYjVjZTgwMTE0NDE2MTU4NzVjNDk0MzhlNzlkMGQ2ZDAwODRjYTJkMiBsZWdhY3ktdHJ1bmsKKzQ5NTkgZDU5NzgyMzhlM2JhNmY3Y2M3NzMyMDJmMjEzYTczOTViYjYzZDQwMCBsZWdhY3ktdHJ1bmsKKzQ5NjAgNGRkMWFmMGRkZWYwOGRiMjZlMjYyODRjMzE2OTVjNGU0NzNmN2MxNSBsZWdhY3ktdHJ1bmsKKzQ5NjEgNDI1ODM1Yjg4MDk5ZTgyMmI5OGYwOTJhYWJlNTFiYTQ1YzllY2NlYiBsZWdhY3ktdHJ1bmsKKzQ5NjIgZTkyMGU2YzI3MjA4MjFjMWMyNmVhZjg2MDI4NmRlN2Y3MTBkNDBmMiBsZWdhY3ktdHJ1bmsKKzQ5NjMgOWQ2ZTk3ZDY2NjcwOGQ0MzdhYmUyODVjOTFmNDgyNjU5Njk3YTFlNyBsZWdhY3ktdHJ1bmsKKzQ5NjQgOGFjNGMwZTFjZTE3YWQyOWJmN2FjOWEyOTFkNmQ2NjdkYTMxYmNiNSBsZWdhY3ktdHJ1bmsKKzQ5NjUgNDdjYzUzYTFmZDQ3YjNkNGVlYzQ4ZTM5MmE4OTI3NjZhNTAyODc0YSBsZWdhY3ktdHJ1bmsKKzQ5NjYgYzZlNDgyODcwZWMzMGFkMGM0M2MzOTgzZTEwZjM5OTZkYmNkMjRhYyBsZWdhY3ktdHJ1bmsKKzQ5NjcgYzI5YWRiMzM4OTY0Y2I3ZmFjMDk0ZWU2MDk2ZDk5NWEzMGM0OTRjZSBsZWdhY3ktdHJ1bmsKKzQ5NjggYzZhNmUyYjIwYmQ4M2RkMzhhOGUyMmU3MTY1NGY1ZTdiODUwNmY1NiBsZWdhY3ktdHJ1bmsKKzQ5NjkgYzZmMmQ1MTI1MWQwNzVkNzhkZWEzNzliNTRiZTJlMWEzYzZmYjI5YyBsZWdhY3ktdHJ1bmsKKzQ5NzAgNTZlMjUxMTRkNDM4NDQzNTlhZTA2NGM5MzNlNzg2ODNiODExZWRmMSBsZWdhY3ktdHJ1bmsKKzQ5NzEgZjRkYzUxZjc4YTU2ZGMzZmJiMTQxZDZkYmRlYjVjY2IwNDM2MTdjZCBsZWdhY3ktdHJ1bmsKKzQ5NzIgMWNlOWU2N2M2ODU2ZThmYzc4YmExNzU1NjUxZWI0OTllNWEzYzBiOSBsZWdhY3ktdHJ1bmsKKzQ5NzMgZDBiOTgxMmNkOWNmNDA1MTNhYzhmNzM5ZmI3ZmIyZmIwZGY5OWM1YSBsZWdhY3ktdHJ1bmsKKzQ5NzQgMmY0NTU2MjdjMWYwZWQ1YWZiMjg3NzZkNDliNWI3YjdiZmZkZGU3MiBsZWdhY3ktdHJ1bmsKKzQ5NzUgNTU2MjE5NzA5ZTk5ODViY2ZlMTIwZWFhNjA2NzQzMzIzYjVmZDk0OSBsZWdhY3ktdHJ1bmsKKzQ5NzYgNDk1YWZjOGFkN2I5NjlmMTRlNmMwYzI1YjI0ZjViZmVlODE3OGY4MSBsZWdhY3ktdHJ1bmsKKzQ5NzcgODQ3ZDI0ODQxYzg1Njk5ZDE1MTgyYzUzMzlkYjU1ZDNkNmRiMTMyMiBsZWdhY3ktdHJ1bmsKKzQ5NzggZTdkNDgwY2YxNmJhNmRmODEwYWU2OTEwNjk3NjAwYjdmNjZjYzI3NyBsZWdhY3ktdHJ1bmsKKzQ5NzkgOWU0MDEyYjE3NTdlYjRiNmE2Y2JkOTNhMzJiMWY3NzU3NWU0NDUxNSBsZWdhY3ktdHJ1bmsKKzQ5ODAgOGI4YTM3YjdjYmE0Mzk5Yjk4OWMwNTI5YWMwZDQyNDE2MWEwZDFkZSBsZWdhY3ktdHJ1bmsKKzQ5ODEgNjAwMTQ0OGZhYjg5MDM1MGJlYTgzYzYyYWEyMzg2NTFkNWQxZWVmYyBsZWdhY3ktdHJ1bmsKKzQ5ODIgMTZlYTE1MWFlZWMzYTRiMDg2YjkzZTk0N2Q2MzA1YjExZDBhNTdkYSBsZWdhY3ktdHJ1bmsKKzQ5ODMgZDExMjNiMTBjZjIzNzJjYzRlM2U1YTU2ZmU5YzBjZjYyOGM3ZmRlNCBsZWdhY3ktdHJ1bmsKKzQ5ODQgODE1ZGZhYTZhNzc4Nzc3MjA2MzM0YTdkN2NhN2IxODY0MWNiMWMyNSBsZWdhY3ktdHJ1bmsKKzQ5ODUgYWUyYjAzMjQ0NWY5OWMzM2IxZjc3YjJiMjIzNjhkMzViMmI0MzA2NCBsZWdhY3ktdHJ1bmsKKzQ5ODYgMTZlYTU3YzM4YzRmNzQxZjMxNjk2YTNjOTNkMzU2YWI2YTllMGM4ZCBsZWdhY3ktdHJ1bmsKKzQ5ODcgMWE1ZTdkYTQwNGMzZGEzYjNjYzVmNWZhYTU2Nzc2ODMxNDBhNTk2YiBsZWdhY3ktdHJ1bmsKKzQ5ODggZTM5YmIyNDBiMWIzYTdhODQ0NWQwMDFlYmJiZDQ2MTZlMWMwZWY5YSBsZWdhY3ktdHJ1bmsKKzQ5ODkgOWU1YTA5ODQxNzgxOTU4YzI4ODNkYmZjY2E2NWVlNjhmY2M5OTM2OCBsZWdhY3ktdHJ1bmsKKzQ5OTAgZTUwNmVjNGZiMmIxMGQ0MDBlZTdmNjM4ZjY5Zjc5YjUyYzZmYTNiZiBsZWdhY3ktdHJ1bmsKKzQ5OTEgNzNkMTkzZWFhOTAwZWE0MzhlODQ1Mjk4ZmQ3NzY4NGI2YTQ3NDUyNCBsZWdhY3ktdHJ1bmsKKzQ5OTIgODc1MTczZjNmMzFjYmQyMzQ2Y2I0Nzc5MTNhZWU3NWU5MjU4ODllZiBsZWdhY3ktdHJ1bmsKKzQ5OTMgYTE0ZmMyZDA0YzA2MjVhODY1ZmZiNDNiZDhjNTQ0OTQ1Yzk1MDllMSBsZWdhY3ktdHJ1bmsKKzQ5OTQgNmZjZDBiMDIyZmE3N2JiZTYyZGY3Zjc5NTE0NzdiZmVkMmEyYmYyYyBsZWdhY3ktdHJ1bmsKKzQ5OTUgNGRmMDBiMjk0NzdiN2Y3YjI2OTc5YjllZDNhMWJmNzdmYjgxMmI3ZCBsZWdhY3ktdHJ1bmsKKzQ5OTYgNTM0YTk3YzQwMGNjN2Q2MGM1MzVjZmQyNGU1NDg0MDFmMzFhZTZjOCBsZWdhY3ktdHJ1bmsKKzQ5OTcgZDdhZTVmYjFkMjU1MDk4MTQ5NzgxYzAxZjQ4ZmU5NTk3NTA2NGNiNiBsZWdhY3ktdHJ1bmsKKzQ5OTggYjcyY2NmNWI3ZGJjNDdmYzhkMTE2OWRhM2RkYTJjYTczMTFmNzliYSBsZWdhY3ktdHJ1bmsKKzQ5OTkgNDlkZjE1NzZmYjU0ZTkyZmYxY2JhMTBhNTJjZTUxOGQzZjU2ZDk2ZiBsZWdhY3ktdHJ1bmsKKzUwMDAgMWE0NDhkZDg0ZWRjMmU5ZjNkMjE0OGNhMzlkZTZjYTgyNWViODZhNyBsZWdhY3ktdHJ1bmsKKzUwMDIgYWFiYmZiNjFlMzg4ODRiNmEwYzRjMzE5ZWZhNjI3ZDRlYWJhZjZkYyBsZWdhY3ktdHJ1bmsKKzUwMDQgOWNjNzc1ZmQ2ZTg0YzVmMzM4NWJlYTkwYTI0N2U3OTgxYmFiOTBmYSBsZWdhY3ktdHJ1bmsKKzUwMDUgNTUzNmZjYmFlODBhZDdiMDE3ZDMzOGE4ZmUyMGExNTQwMGIyMjVkMyBsZWdhY3ktdHJ1bmsKKzUwMDYgMzI4MWE5MzFhMWQ5ZGM5NzdiYTEzYzUwMWFmNDBkOTJhZTRhNWFlNyBsZWdhY3ktdHJ1bmsKKzUwMDggMmNhYzZjNTA2NmRhNTA5NTk4YWIwNmVlMjllOTBkZjY5YmZmYTczOSBsZWdhY3ktdHJ1bmsKKzUwMDkgNDE5NjAwMDc4OWJjNWUyNDI2ZTAzOGE3NGU1MjEyMGI1NmY1OTBiZCBsZWdhY3ktdHJ1bmsKKzUwMTAgMGY2ZmY0NWJkODE2Nzg3NmI3YzNlNDUzYjZlMjU2MWU3Njg2M2UxYSBsZWdhY3ktdHJ1bmsKKzUwMTEgYzU1ZGRkYmZjZjdjZThlYjZhZmJmOTdjZjRmZDU5ODg5NTFmNDlmMyBsZWdhY3ktdHJ1bmsKKzUwMTIgN2Q3MDIwOWYzNTVkMjBlYzAxZGJjNzNhMDJmYjI5Y2U5MjNmMjE5OCBsZWdhY3ktdHJ1bmsKKzUwMTMgZjMwYmM0OGM0MTdhMjFkMWNjM2I2ZTY2Zjk3MzljOTVmMzgwMjgzYyBsZWdhY3ktdHJ1bmsKKzUwMTQgZjRkMjZhMGUyOTc1MTUxYTZmZWVkMDBkYmFlZDNjMjM1MGYwNDUyNSBsZWdhY3ktdHJ1bmsKKzUwMTUgYjE4MWRmZjIxYjBiOGU5OWNmMmM5NDU3OTg5MGQ2ODEzYTUxYmU1YiBsZWdhY3ktdHJ1bmsKKzUwMTYgZjliMDc5MTVhMDYxN2RhMGFlNGZiMGU5YmE1OTM2MWMyY2M0MmRhYyBsZWdhY3ktdHJ1bmsKKzUwMTggMmFhNmI1YWQ0NTIwNGUwNzFkYjFkNGY3YzFlMjgyYWJhYmU1OWUzYSBsZWdhY3ktdHJ1bmsKKzUwMTkgMzhmMzIyNWVmZjMxYmRkMzViYzYyNzA4OGZlNzJiYTBmY2Y1MGQwYiBsZWdhY3ktdHJ1bmsKKzUwMjEgM2Y4YzhiOTAxNThkZmQzMmZiYzQ4Y2FiNDI5MWY2M2IzNmRmZGUyNCBsZWdhY3ktdHJ1bmsKKzUwMjIgNzg3YjRkZDZmNWYzZTZjMjBlMTJkMTc5NGMxMDY5ZWJiNDRkYTY3OSBsZWdhY3ktdHJ1bmsKKzUwMjMgYjA5MmQ5MzZjODc1ZTY2ZjE3NGRkMWFjYTc2MTAxZTJkNjk5YmE2ZCBsZWdhY3ktdHJ1bmsKKzUwMjQgMzgyODIwNmMyZGMwYzYwOWU2NGFiNmMyOTgzZDc5ZDk5NzQ1MWVjYSBsZWdhY3ktdHJ1bmsKKzUwMjUgODVjMDgxOTY2MmI3YjQ5YmRkY2U0NDU5NzFjNjgyMGFmMjhhM2I0OCBsZWdhY3ktdHJ1bmsKKzUwMjYgN2ZiZmY1MmRiMDg3NzRkZjk0ZDE0OTZhNGVlZmQwZjMwMGI2MmI5NSBsZWdhY3ktdHJ1bmsKKzUwMjcgOTEyODEzZDU3M2I0MmZmYTIyM2E5NTc2NmM4ZjM3MWQ0NDlhZGE3NCBsZWdhY3ktdHJ1bmsKKzUwMjggOTE5YzUzYTM1ZWZhZWFkM2U5ZGY4ZTA5M2NiNWQxMjc2YzczYTM2ZCBsZWdhY3ktdHJ1bmsKKzUwMjkgYjU5NjNjNGI2MzlhZDE0OTcxNzEzNmI2ZjM3N2FkMzBlNzI0MWUyZSBsZWdhY3ktdHJ1bmsKKzUwMzAgMmM2MTc4NjMyN2NmZjA1NGQzN2Q4Yjk4ODdlMGU4YTQwZjY3MWZmNyBsZWdhY3ktdHJ1bmsKKzUwMzEgN2EzNzMzNzMyOTAxYzExOWU1ZjVhNjkwOThmZjE2MTI2M2M2NGVkZCBsZWdhY3ktdHJ1bmsKKzUwMzIgOGJlNDAwMmI1MDg2N2MxODdmM2JkMGU3ZmNlMjlkZTUyMjVlZWMwYiBsZWdhY3ktdHJ1bmsKKzUwMzMgMTgwNzg2NGE3NWY0NzE0M2NiMzBjNDg3NThkZGI2NTBkZWIxM2RlNCBsZWdhY3ktdHJ1bmsKKzUwMzQgYWMxM2NhYTc5ZTNjYTYzNDI4NTVlMTAzYmQ3ZTQ5ZTRhZjBmZjNjOCBsZWdhY3ktdHJ1bmsKKzUwMzUgMGJhZWI3NDZhODU0MDMyOWM3NDEyNTFlMzcwNGMwMTJjMDU2MzA0ZSBsZWdhY3ktdHJ1bmsKKzUwMzYgZjBiNzg3MmRhNjg5MWMwNWQ2N2JhOGZiZDQ0Y2FjNGU5MGVlN2NjMyBsZWdhY3ktdHJ1bmsKKzUwMzcgOTY3N2ViMTA1ZmFlODI0ZGI2YzA4N2NlNjA0NzBlMjM0ZWUzMjIxYyBsZWdhY3ktdHJ1bmsKKzUwMzggZjQ3YmM1NTU0NDE4NWE1YzA5YjYzMzc0MzQ1MTljMTcwMzAzNjQwNiBsZWdhY3ktdHJ1bmsKKzUwMzkgNDk4ZGFkODA0NWQzNGM4NmJkNjVlZGI2M2I3ZWE1NmNiMzk0NzE1YiBsZWdhY3ktdHJ1bmsKKzUwNDAgMGFjMjdmZmQwNTc5OWMzZjFkZDg2N2JlY2Q1MTgxYjg5YTYxYzc5YSBsZWdhY3ktdHJ1bmsKKzUwNDIgYmM0YjNmZGE2YTgwNzhkYzYzNzdmYWFjOWZkMGIwMmU4YTNiNDU1OCBsZWdhY3ktdHJ1bmsKKzUwNDMgOTFiYzkwN2IxZTYzY2YwODJmNDM0NzEwZWZkMjhkN2U3ODMyMTMzMCBsZWdhY3ktdHJ1bmsKKzUwNDQgNGQyOGI2NTViNzI4NzE1ZTQyYjNhMGJhODFkY2Y4NWU5MTU0ZDNjYiBsZWdhY3ktdHJ1bmsKKzUwNDUgMzc3MGU0MzQ3ODAzODVlZjkyNjg1NDZkOGQ4NjdjNmQxNGRlYTc1OCBsZWdhY3ktdHJ1bmsKKzUwNDYgNzkxNDkxNTcyOWUzZDUyMWI3MTNmODIwYWZhZTYwNDVlNjZlYWE3NCBsZWdhY3ktdHJ1bmsKKzUwNDcgNGI2YzA3NjJkNjU5YjRkNjFlN2MyOWRjNWJjMzEzMzgxNTY5ODZiOSBsZWdhY3ktdHJ1bmsKKzUwNDggNzA0MmFlZTY0MDllZmM3ODIwZmQzZDE4ZmE2MDZiYjBkZTQ3OTM0NSBsZWdhY3ktdHJ1bmsKKzUwNDkgYWUxMzFiOGI0ZTMxOWRiZmMxM2Q4NzM5YjkzZjUyZWNlMjkwMWRkMSBsZWdhY3ktdHJ1bmsKKzUwNTAgZDY5OTU0ZTFmNWQ0MThmNGZkZjBlZDIzZjUxMmI1ZmI1OThhZGI0ZSBsZWdhY3ktdHJ1bmsKKzUwNTMgYmJiZjE3NjQwYzZmYTE1Y2JjNTk2M2M3NTgxOTAyNWFmM2VmM2QxNiBsZWdhY3ktdHJ1bmsKKzUwNTQgZDVkMjdkYWQ3ZmVhZjVkNmY1MzlhYmUzMDNhMDk1MDk0NmU5NGRlOSBsZWdhY3ktdHJ1bmsKKzUwNTUgNWQwOTM4MzUwYWU4ZThkODdjYzg3NjFmZThhYmQzN2Y2NGIzMTQ3NyBsZWdhY3ktdHJ1bmsKKzUwNTYgMmEzZTQ4OTcyMjYxMmY5MzA1YzE5ZTU5YmI3NTgyNzlmODU3Yzc3YiBsZWdhY3ktdHJ1bmsKKzUwNTcgNzYzZWI0Nzk3NWRkMzk3ZTkzNmU0NzJmN2IwOWY1M2NjOWUxN2E3OCBsZWdhY3ktdHJ1bmsKKzUwNTggOGRmNTc0YTY1NWFkNmMzY2Q1YjgzZTM0OGQ4OWEzMzllODYwZjIyZSBsZWdhY3ktdHJ1bmsKKzUwNTkgY2U5YTc1MDdlMWVmZWI3MTAzNTZjYThlNTVmOGVjYmMxYzY0NDgyZiBsZWdhY3ktdHJ1bmsKKzUwNTkgMDY1ZTMxY2Y1ODYyZTI3NTIxY2Y1NzI1YjAwM2FlZDIxMWYwOTFiMiBsZWdhY3ktdHJ1bmsKKzUwNjEgMzE3Nzc2MjJhZTkzMTU3YTIwMTA4MTI5MTQ5YWVmY2VmZTJjOGVkYiBsZWdhY3ktdHJ1bmsKKzUwNjIgY2Q1YTk2ZjYyMzliZGU0NTJhMjBmNzcxMGJmN2E0YmFjZDk2MmMxZCBsZWdhY3ktdHJ1bmsKKzUwNjMgYjI4MWMzYzg2M2NjYWU0ZWRiZDFjNjk1OGY5ZDMzYWE3MDNkZjczMCBsZWdhY3ktdHJ1bmsKKzUwNjQgYmRiNjNhNzk3NTU1NTQ3ODQxOTI0MDJhZmZjYmNlNDM3YTcxMTRiYSBsZWdhY3ktdHJ1bmsKKzUwNjUgNTg4Y2Q0MzQzZWVkMWZjMjczNjA5ZjcwNDExYTAzYzg0YzY1NWZiOCBsZWdhY3ktdHJ1bmsKKzUwNjYgMzUyMzM2NDA0NzliMmViYzhiYjJkODNkZDdjNTQzNDkyZjc3NmU1NCBsZWdhY3ktdHJ1bmsKKzUwNjcgYmVlMmFlZDQxNmQ2MjQ0MjdhZDBhZjhjYTNjMzZmMjFkYTFjZjUxYSBsZWdhY3ktdHJ1bmsKKzUwNjggNDA4NGVjZjI3NmNmMGY1ZTQ2Yzg4MjJmMDZhZTQwMzZiNjJjMTU1MiBsZWdhY3ktdHJ1bmsKKzUwNjkgYzUyYjVjOWJlN2UyMTdmNDI0MjIxZjhlMjU5YzkwYzlmNTdhMTkzOCBsZWdhY3ktdHJ1bmsKKzUwNzAgMjliOTBhODZhYzk2ZDhjODhjMzNmMmNkZTI1NTA3YWNiYzJkYzE4OSBsZWdhY3ktdHJ1bmsKKzUwNzEgMTdjOTI1ZjAwNjBiOGM3MTk2NTllYjYwYmQwZTg3NjBjZjhlMWJkMyBsZWdhY3ktdHJ1bmsKKzUwNzIgMWM4MTQ3ODNlZmMxODUwMGEzMDIyZmY1N2EzN2VmN2U1YTY0NGI4NCBsZWdhY3ktdHJ1bmsKKzUwNzMgZWVhYzE3MGY1ZjJmZjgyNThjNjlkODgyMzdhNWE3ZmM4YzZlOTgxZSBsZWdhY3ktdHJ1bmsKKzUwNzQgN2VmNzI4NzNlNGQ2ODc0N2Y1MjZjNzg4OThhODllZWQzOThjYmZjZCBsZWdhY3ktdHJ1bmsKKzUwNzUgYjAyNTczZWViMTgyOGM2ODIyZGIyOGEzNTFjZWFjNTdlNmNiMWNiYiBsZWdhY3ktdHJ1bmsKKzUwNzcgMDE2ODdjZTQzNzA4MmE1NWI3ZWNmMDA2NDMyODAwZmVmNTU3NGNlYyBsZWdhY3ktdHJ1bmsKKzUwNzggY2E2YjYwZDRlYTkwNjM3YzY3NmIxMDMwMDA4MGE3Y2U5NGFjZDNjZCBsZWdhY3ktdHJ1bmsKKzUwNzkgYjM2OGJlN2IwNjJhNTMwMmEyZDA2YjkzZTQ2N2Y3MmYwYmE4Yzk3YSBsZWdhY3ktdHJ1bmsKKzUwODAgZjcwNDlkNDY1MzY1NzY5OGQ5OGQxMjBlZmZiMWFlNWFmNjJkMDM3NCBsZWdhY3ktdHJ1bmsKKzUwODEgYmMzMjYwNzRmODYxNGU4MWI1YmRmMzlmMDlmNDRhMjljOWNhODMzMiBsZWdhY3ktdHJ1bmsKKzUwODIgYTkyZGRlZDRhN2M0ZGNjNjI0YTY4MGMwMDhkZWI2OGM5N2FiZDRmMyBsZWdhY3ktdHJ1bmsKKzUwODMgZWQzMGJjYTE4NGJiODFlMjNhOGZhYTlkOWJkODBiY2RkZGEwNDZjMSBsZWdhY3ktdHJ1bmsKKzUwODQgNmNjNjM3YzYwY2U2NjJhZmVjYTIyODIzZjk2YTZhMmZlMGZhYWQ3YiBsZWdhY3ktdHJ1bmsKKzUwODUgZGE0N2I0MTQ2YTdjODdjZWQ0Y2E0ODRkNmY1MzZjZmMyZjk2OTkyOCBsZWdhY3ktdHJ1bmsKKzUwODYgYmQwNWRjZWE3YjA5Y2Q3NDc0OTdjZWMzYmVlNjA3MjMyNDA5NTJkZiBsZWdhY3ktdHJ1bmsKKzUwODcgMmY5MTAyZjU3MTQzZjFkNmZkNDYyYmQ5NThlNWM1ZjE0YzA5Mjc1NCBsZWdhY3ktdHJ1bmsKKzUwODggNjFlM2I2MGFlYzQ0MTlkYWVkMWU4MWYzZjI2N2I2YmY2MmRhOTY1OCBsZWdhY3ktdHJ1bmsKKzUwODkgODMwMThhYTliMTdjOTU2YzU0ODY4YjMzNjRhN2MxNGFjNDYzNGQ4OSBsZWdhY3ktdHJ1bmsKKzUwOTAgNjM0MWE0YzAwODJiMzQ5Mzc1MTcxZDViZjA5OWNkYTZlYjAwZDIwNiBsZWdhY3ktdHJ1bmsKKzUwOTEgNWEzMzcxMzIwOTc1NDVlYWYyZWQyZjVmYjQ5NDc5YjM0ZmQ4OGFlYiBsZWdhY3ktdHJ1bmsKKzUwOTIgZGJiNDE3MTIxNjViZTRmYTQyZjBkZTc4NzExMmRjYjAyMTIwMmJmYSBsZWdhY3ktdHJ1bmsKKzUwOTMgZTllYTA1NzAyNjc2ZTdiYzgxZGE2NTk5YzEzZjMyMGI4ZTU2YzBmOCBsZWdhY3ktdHJ1bmsKKzUwOTQgN2M5MmQ0NGZhNmZjYTUxMGVlMWE5OTRlOTg2NjVlNDQyNjAyMTBlNSBsZWdhY3ktdHJ1bmsKKzUwOTUgMTc1NjcxY2MyMWQ4YzY0NGNlZDE3ZGI3Y2E3MjU0ODFhNGVjYjlhNCBsZWdhY3ktdHJ1bmsKKzUwOTYgNmM4OWRmNTc2ZDkxYWZhZGM3MzcxY2M5M2QzOTY5ZmM3MzNjNzFlOSBsZWdhY3ktdHJ1bmsKKzUwOTcgOTEyMzE3YTM3ZTJiMzg1NjE3ZWJhZmRkZjY5Y2YzYTJhMTMyNzJlYSBsZWdhY3ktdHJ1bmsKKzUwOTggNzVlOWU1NmI1ZjliMWEwZGUzZTAyNGVmYjQ2ZDA5M2VmMmRlZWJkZSBsZWdhY3ktdHJ1bmsKKzUwOTkgMjI5MTJmM2E4ODlmMTJmZjYwNzg2MDQzN2Q4YTQwMmZkMWUyMTRkYSBsZWdhY3ktdHJ1bmsKKzUxMDAgZjRlZjNiMjEyNmViY2JkZDY1YjZjOTY1MTQ0ZmIzMGYyYTQ2MTFjNSBsZWdhY3ktdHJ1bmsKKzUxMDEgNmYzOTZjZTUyNTVkMDhmMWE2ZTM5MGRiZjhjM2RkYjQ2YTQ0NTZhYiBsZWdhY3ktdHJ1bmsKKzUxMDIgNjdmZjlmNDdhYjM2ZmU5Yjk4MDFmNzZjOWY0MDFkMDJlNzkyOWFiOSBsZWdhY3ktdHJ1bmsKKzUxMDMgNDQwODc4MTkxNDhlMjc3Njc4OGNlOGI2NmI5NTAyOWUzZWQwNjVlOCBsZWdhY3ktdHJ1bmsKKzUxMDQgNjhjN2EwYTYxZmQ1ODFjMDc2Y2Y4ZmY4ZDFlZDhmOGUyMzcxNzNkOSBsZWdhY3ktdHJ1bmsKKzUxMDUgZjExYmE5Y2MzNDJmMjgwY2FhODdmYzFjMTk4YWEzY2ViMTU5YTBlMCBsZWdhY3ktdHJ1bmsKKzUxMDYgZjVjNDA4NjlkYTEwNjU4ZWMxMDMxNzBjN2MzOTYyNDE4MDAzNDUwMSBsZWdhY3ktdHJ1bmsKKzUxMDcgZjk4YTIyMzNiMzM3YjQ5NTM0NThiN2RjZGNkNTY0YTVkMjNlNDVmNyBsZWdhY3ktdHJ1bmsKKzUxMDggNTEzNGMwMDllMWE0ZmU1ODNkZDllMGVlN2E3MTg2OGQ4NzAxNGI2YyBsZWdhY3ktdHJ1bmsKKzUxMDkgZDllNGNiYmE5NThjMDY5MThmZTE2ZmE2YWNiZmRkZDE2OGMzNGEwMSBsZWdhY3ktdHJ1bmsKKzUxMTAgN2M2OWM0YWVjYjM4Y2I0NTVlNzM5YmYxOTA2ZTJiMjc3MTY3ZjBmNiBsZWdhY3ktdHJ1bmsKKzUxMTEgZjg3NmNkNWM0NDE3ZDc1MDA5NWQ4MDA5ZjdjMmRjOGYxNWUyNWViMCBsZWdhY3ktdHJ1bmsKKzUxMTIgZGUyOTdjZGVhMzRlZTY1MGUyMWUyYmVkMmUwYWNiYjRjZjZmY2MzYSBsZWdhY3ktdHJ1bmsKKzUxMTMgOWI3ZTZkOWE1MjhkYTdjODhmM2Y4ODhhNjRiMGI4NThhMDRmNGJkYiBsZWdhY3ktdHJ1bmsKKzUxMTQgYjdlOGJjMDAyYTI0MzBjYmNmNDU2ZjZlNzYxODI4ZmFhM2ViOTNlOSBsZWdhY3ktdHJ1bmsKKzUxMTUgMDYzYTk2YjQ5YjNlNjJhOTQ4MjFiZjM2NzQ0ZGU3MWI5OTFlNmUxMCBsZWdhY3ktdHJ1bmsKKzUxMTYgNjA2YTA5N2RmZDAwMmM0YTA4NmIxNTFlOGIyMjcwMWI3NDA2YWM3MyBsZWdhY3ktdHJ1bmsKKzUxMTcgODRlMjI2MGRiMTc5OWIzNTBiYjI4OTY2ODM0ZjliNzY0YjE3ZTFmYSBsZWdhY3ktdHJ1bmsKKzUxMTggZDYzNTBhMzE4OTk3ODgyYzY5ZmM3NmI4Yzg1OThhNjUzZjY5NmYxZCBsZWdhY3ktdHJ1bmsKKzUxMTkgZTNlY2M0MDE4OTg5YWUzODExYjcyYWQxYjNjZDFmNTBlNGNjNWU0NSBsZWdhY3ktdHJ1bmsKKzUxMjAgZjRiM2Q2OGM3MTI0NDJjYzc0Yjg1NTgyZTU1YjMxMzU1YWM0Y2RhMyBsZWdhY3ktdHJ1bmsKKzUxMjEgZGIzZGFjZTI3OGFjMDE4OGRlZWFjMDBhMTljNDY2YTVjN2IxYWE4NiBsZWdhY3ktdHJ1bmsKKzUxMjIgOWNmNjA0YTM0MTFlOTQ1YjlmNGU1ZDYyM2ZiYmJiNmI0MWUzNzQwNCBsZWdhY3ktdHJ1bmsKKzUxMjMgODQxZjcyZGM1NDQyNGIzZGVmMzY2MGI1ZDFlOGYyMzQyMzYwNjVhMiBsZWdhY3ktdHJ1bmsKKzUxMjQgM2EzZGYyMzEzMjdjMWQwNjcxNDQwODM1NjAxYzhhNGRlMTBjZjI1NSBsZWdhY3ktdHJ1bmsKKzUxMjUgMjY2YWQxMzI4N2E0ZTBjYTU5OGNmMjI4MTVlYjEzZGZjZmM4NjliZSBsZWdhY3ktdHJ1bmsKKzUxMjYgNGViNmRkYjllOTYxYzlhYjViYTI2YTExZDNkMTNhOWU0NmRkYTU4MSBsZWdhY3ktdHJ1bmsKKzUxMjcgYjRmZDQ4ZTNhM2I4OWIyYWQ5NGZlNzk1NWJmNmNjOTFhNjI0OTliMyBsZWdhY3ktdHJ1bmsKKzUxMjggZGYzZTFlNTIxZmU2NWRlM2YwZDdjYjMwNmRkZTcwYzI1ZjJlM2JhNSBsZWdhY3ktdHJ1bmsKKzUxMjggZTcyMjU3ZTY1NTQ1NGQ1Njk0NjhkYThiMTE4OWUwZWMzMzZmMzUzNiBsZWdhY3ktdHJ1bmsKKzUxMzAgNTEzZjFjYjcwY2U2YTllY2Y0MjhhN2U5YTUzMjQzYzI5YzNlYWFlMCBsZWdhY3ktdHJ1bmsKKzUxMzEgMmY4ZThiNjEyOWY3M2FjN2EyNjMzZmQyODQzYWRkN2I1MjEwMWVkMyBsZWdhY3ktdHJ1bmsKKzUxMzIgNDkxODM5MzhkMDdlOTdiNGMzY2UyZDY1NTQ5MTVmYmM2N2ZiOGQ3YyBsZWdhY3ktdHJ1bmsKKzUxMzMgMGI3ZTE0YmI1NGFlMGVlZjEwN2I5ODMyYzllNDg4OTAyNTY5ZjA2MCBsZWdhY3ktdHJ1bmsKKzUxMzQgZTJkZDc4MTk3NTk2YmZkMThiZjNjZGI4OWY0MWJkZDBkNGM3NjJkZCBsZWdhY3ktdHJ1bmsKKzUxMzUgMzRlZWZhMjI2NzA5YWE4ZWRhYWM2ZGY0YmQ0ZDNmNmZjZjk3OGU1OCBsZWdhY3ktdHJ1bmsKKzUxMzYgYzk0NTczNWE0YWQ3MGY0MjAyMTg1YzAyYmRjNzA1OGEwZWU1NDMyOCBsZWdhY3ktdHJ1bmsKKzUxMzcgZDI0MTkwYzY1YjUxZjAzNDFkNzkyNWVlYzllZGQ3M2VmZmZlMjg3ZiBsZWdhY3ktdHJ1bmsKKzUxMzggMGZiNjU1MjBmY2QwMTJhNzUwNTFlNWMxZGNhMGQ5MzBlYzViNjVjMSBsZWdhY3ktdHJ1bmsKKzUxMzkgNGM4MGNmMDJkMTU0MGM3ODk1MDQxZGU2NjgwMGU5YTdjZWJiZDFmMyBsZWdhY3ktdHJ1bmsKKzUxNDAgNDkzYjg3MWYzNzc1NDdjNmNlM2ViYzc3NzViNjljOWRkZWJmNjNhZSBsZWdhY3ktdHJ1bmsKKzUxNDEgMzE4MTcyZmYyZjE0YzY5NzljMDk2NmI5ZmUzOWRmMWFlMDVjMDE2ZCBsZWdhY3ktdHJ1bmsKKzUxNDIgMTA3YzE4MDA5MzdlM2Y0NzFlMzkzMmUzZjI0NjRiY2MwY2RjZWM4NSBsZWdhY3ktdHJ1bmsKKzUxNDMgMGI2YzhhN2U5MzNhNjZlZWFmYjY1YTdlZGNiNjZmZTJlZWMwNmZlMSBsZWdhY3ktdHJ1bmsKKzUxNDQgMGU5Y2FlMGI1MDcyZDY4ODIwZGQwOWY0OTdhYzIxYmVkMzJiZWM0OSBsZWdhY3ktdHJ1bmsKKzUxNDUgOWU5ZjIyZGJlZDFhZjA0ZTA5NzYxMGRhNjM5YzNjMjY5MDJhYjZmYyBsZWdhY3ktdHJ1bmsKKzUxNDYgZDQ2NDRkMzkyYThmZTY4YzQzYjNjNDFiNGM0MDhmOWIzODU0YmQ5NCBsZWdhY3ktdHJ1bmsKKzUxNDcgMmQ5YjE2NTI3MjQ3ZGNiM2EzNTdiMGMwZTE4ZDAyNmRiNWZhYmEzNCBsZWdhY3ktdHJ1bmsKKzUxNDggNjkwZTQ2ZjBiZjU5ODU1ZmNjODk5MjY2OWVmYzEwNjVjNDVmZTU3MiBsZWdhY3ktdHJ1bmsKKzUxNDkgMWE0ODFhNzVhZjQ1ZjEyOTI4NjMzYTIwMDdmMjM4NWFmYzc2ZjIwOCBsZWdhY3ktdHJ1bmsKKzUxNTAgODkyOTJmNmEyNThkY2NmZTdjMjY5NGFlNjhjYTEyZDA5ZjUyMmZiMyBsZWdhY3ktdHJ1bmsKKzUxNTEgMjEwODIxZmQ1NjUwOTQ3YWQwMDhjNjRmYmE5MGVkMGE1NmJkZWM2ZCBsZWdhY3ktdHJ1bmsKKzUxNTIgNGI1N2FmMWJhMjk3MTA2Y2Q3ZWM1OGI0MDE4ZDBkYzRmZDhmMTljOSBsZWdhY3ktdHJ1bmsKKzUxNTMgOWJkYzI3ZDE1MWJhYTZiNWQ0YmIwYjk2NTYxNzZlOTkzM2Q5OGJkZiBsZWdhY3ktdHJ1bmsKKzUxNTQgMzQ3Y2YwZTQ5MmQ4MTFkNTBjNWMyODBjN2Y2NTAxMzM5ZDZiOGE1ZCBsZWdhY3ktdHJ1bmsKKzUxNTUgNzMzNWM1YjNiNDNiZDI0NGIyOTFhNWFiOGJiOWY1NDEzMDc2NzlkNCBsZWdhY3ktdHJ1bmsKKzUxNTYgYzFmNDg4NThmMTg2MGZhYzMwZTY1NTg1NWNiMDllNjJlMDQzMjVhMiBsZWdhY3ktdHJ1bmsKKzUxNTcgOTI1ZDFiZmNkOTI1OTNkMGFhYTQ2MDllNjIxMzk4MjM3Zjc5OTBlZCBsZWdhY3ktdHJ1bmsKKzUxNTggZTFkMjNhNmI5MzBiODA3YTQ3ZWQwYmYzOTFkOWEwYTQzYjViODg1ZiBsZWdhY3ktdHJ1bmsKKzUxNTkgMWFmOTIyMGM2ZDE5ZDk0NmYxN2NiOWI5OWIyOGUwNGE0ZjViYjkwZSBsZWdhY3ktdHJ1bmsKKzUxNjAgMTE1N2UxNDI3MGQ2ODc2OWQ3ODk1OWI3MTJmNWI1MTMzYmNhNTNiYiBsZWdhY3ktdHJ1bmsKKzUxNjEgZTAzOTM2NTdmZmE0NzcxZGQzYWVmNGQ3ODBmZDUyMTQxZTViMTk0MyBsZWdhY3ktdHJ1bmsKKzUxNjIgMDYyMzVmZGMxYWFmM2JkYzc1NjY3MGVmZWZiNjlhMTRlMGYyMDAwOSBsZWdhY3ktdHJ1bmsKKzUxNjMgM2ZmYjMxY2M4YTliM2EwZmFjM2FlNDg4ZDM0NDEzMzYwNWMyNDdmZCBsZWdhY3ktdHJ1bmsKKzUxNjQgNTM4YWI4MmY5MWE3Mjc1NDE2NDgwNGNiM2U4MzlkNTQ5ZjA3N2E0MCBsZWdhY3ktdHJ1bmsKKzUxNjUgNmQ5M2I0YTBmNGNlN2M3ZThjNDY3ODBiMmE5NTM4ODlhNzljNDEwYSBsZWdhY3ktdHJ1bmsKKzUxNjYgMmY0MmUyNzM4MmU5ZDIzNjhhM2Y1ZjNkODAwZDkyNmUxODMyMTU1MCBsZWdhY3ktdHJ1bmsKKzUxNjcgMTJkOGM4Mzg1NzM1ZmNhYjNmYjU5YjY4MzNlZTQwNGRhZDczMzc3MiBsZWdhY3ktdHJ1bmsKKzUxNjggMTk4NmI4NjllM2ExMzEyMmIwN2E5ZDU1MDY0MmExZTA1YTBiODNhNCBsZWdhY3ktdHJ1bmsKKzUxNjkgZjEyZmYxMzBlMGI1ZjQyNTQ1OWYwZTcwYjY2MTVjMGRlNDQ5MjRkYSBsZWdhY3ktdHJ1bmsKKzUxNzAgNzk3M2Y1Mzg3MjZjYWFjZmU2NzY3NGU5OWM3YTQwYTFkZmQ2NzcyMyBsZWdhY3ktdHJ1bmsKKzUxNzEgOWVkNDVkYmYyNzY1OGEwYWY4OWJjNWMyYjRmNjA0YmZlZWUyNzJlMyBsZWdhY3ktdHJ1bmsKKzUxNzIgNGUwNzY5NDQ0ODhhYWI4NGViM2I4YjAyYTc5ZjhiMTM2MGIzYzgwMCBsZWdhY3ktdHJ1bmsKKzUxNzMgMTMwNmU3NjFhNjIzODM3NDBhNTlmNjM5ZjE4Nzc5ZGJiOGI2ODA0YiBsZWdhY3ktdHJ1bmsKKzUxNzQgMzczYzE2MzdkMzAxMDRlN2NhZmVlMWQyMWY1NjIwZWQzNDIwNGIyNyBsZWdhY3ktdHJ1bmsKKzUxNzUgNTAwMzIzNDM5ZWIzOWIzZjcwMGE0ODkzNzFkMjAxYjE1NDRhODMxMSBsZWdhY3ktdHJ1bmsKKzUxNzYgYjY4OWU2ZjkyZjE3YTExMTAwMTEyZTMzYzEwNDllOGQ2N2Q1Y2I4MiBsZWdhY3ktdHJ1bmsKKzUxNzcgOWZlYjBiMGI1MGI2MGM0MGZlNzUyNTI0MzM3YzQ2YmQ0NWNiMjcyYyBsZWdhY3ktdHJ1bmsKKzUxNzggNzQ3NDdiZmZiNmE0ZDI3Yzg2NDkwYTBkYTk2MjhlZjU0ODgyYjBhZSBsZWdhY3ktdHJ1bmsKKzUxNzkgY2Q5ZDg2ZWNjMTc1Mjk0YzZjMTlkODkzZDE0YjBlNGVjYjRmYzAwNiBsZWdhY3ktdHJ1bmsKKzUxODAgNzVhZmFhYzg1NTY3MDdjZjAzZDU3Zjk5YzU1NjcxYjRhZDQ0NmY0ZiBsZWdhY3ktdHJ1bmsKKzUxODEgMmEzMTg3NmY3MTAyOTkwNTZmMDJiMTNjODcwODVhZTZiODA5MTNiYSBsZWdhY3ktdHJ1bmsKKzUxODIgMTliMTE5NWEzYWY4NDdlMWE5NmQ2NDUyOWYzOGUzZTU4NTMyYjg3OSBsZWdhY3ktdHJ1bmsKKzUxODMgNmM4NjRhZDUxOWEzNjg0YWZhM2JjNzE5N2RiNWE0NDJlMmIyMTM0YSBsZWdhY3ktdHJ1bmsKKzUxODQgODg5YzZkYTdiNGNhNTExOWRmN2RhZjMwMjQzNmY2YjQ0MmIyNGQwZiBsZWdhY3ktdHJ1bmsKKzUxODUgNjI2N2E1ZjIyMmJmZGVkNWUzOTNlOWE4YmQxZmFkZGQ5M2ViMzUyNSBsZWdhY3ktdHJ1bmsKKzUxODYgYWJmMTE2ZGI1MjNmZTRkYjliOGZhZjAyMzY0MDk1MGIxNDc5MjlhYiBsZWdhY3ktdHJ1bmsKKzUxODcgMzY0ZDRhNTI0Y2VjODIxZGJjZTczZTY5MWM0OWVhMmVjYzdjODJhZSBsZWdhY3ktdHJ1bmsKKzUxODggYTVjZWIzZTkzZmExMjczNWVmMWExMGNmMjg1ZmMzNzhlNjU2NTg3NSBsZWdhY3ktdHJ1bmsKKzUxODkgYTBmYzk0YjNiYjIxMjcwNDJhMWQwYzZjNWEzOGFkOGZmZGI4MTU4MCBsZWdhY3ktdHJ1bmsKKzUxOTAgNmE5ZWNiMDVjNjc5ZWQ4YzRiYzU3MGQ3YmZhOWRlNTg3MmJmYWM2MiBsZWdhY3ktdHJ1bmsKKzUxOTEgODIyMjA0MWY1YTkxZDU0Mzg0ODk4YTUyZDQ3YzA4M2QyN2RhZTJkZSBsZWdhY3ktdHJ1bmsKKzUxOTIgZDAzY2NhZTE3MGVhZjI4MjljZjgzYmQ0OWU2N2IzMzU0YzFjNWIyMyBsZWdhY3ktdHJ1bmsKKzUxOTMgZTg4MGMwMTY0YWVjZTIyNmI2NGQ2NjczMmEzYzgxNDQ3OGM3Zjk0NiBsZWdhY3ktdHJ1bmsKKzUxOTQgYzI2N2UzMzEyMDMwOGEyYWUyMTljNTc3Y2M1NmVmY2EyMDkyM2E1NyBsZWdhY3ktdHJ1bmsKKzUxOTUgNWFmNmRiMWY2YzBjZGM0MmFkY2I1MDUxZjJlZDA4ZjU3MmY2ZjczYSBsZWdhY3ktdHJ1bmsKKzUxOTYgMTBlMTA1ZTRjZjljM2I4ZjA0NTBhZGI3OGE0NzgwZjBlZjM4ODhkZSBsZWdhY3ktdHJ1bmsKKzUxOTcgOWY4MmE2YmIwMDEwZGI2MmNiODg1MDhlOWU3NzI4YTU4MTBhNDU4MiBsZWdhY3ktdHJ1bmsKKzUxOTggZGFhMTUwYjNhNmU0M2UxMmIzZTE1OWI0ZTUwYzk1Zjk1YWQ0ZGFjNiBsZWdhY3ktdHJ1bmsKKzUxOTkgZGM2NGRmN2YxYWQ2OTAwZjU2MWQ0MmYyZTMwOTFlOTlkODVjMjIyMCBsZWdhY3ktdHJ1bmsKKzUyMDAgNjg2ZjRiZmI0ZGE2MjI4OWMwN2RlMmQwYTExNGI3NWNiMzg5ZmU2YyBsZWdhY3ktdHJ1bmsKKzUyMDEgOTAyNDBlODE5YmVjYjk5MWMyNjhlMzNhODczNzM1OWI0MmZjZWMwYSBsZWdhY3ktdHJ1bmsKKzUyMDIgMzdjNDhmZGU2MWI4ZWQ4NTYyZTYzNTA4YTVhZDgwMjQzYmQwYmRhYSBsZWdhY3ktdHJ1bmsKKzUyMDMgM2NmODk2ZDI0ZTUwZGJiNGY3NDAyYTEzNWUwNWY4Y2ZiNTc0NjZiZCBsZWdhY3ktdHJ1bmsKKzUyMDQgN2RmNmZjYjQyNmY1MTQ3OWI5ZTA1NzRlNmU1ZGRmOGJjZGVjMzQwYyBsZWdhY3ktdHJ1bmsKKzUyMDUgODBiNWM4MjI3MmEyNWMxZWY4NTEzMTRlMWJmOTJkMjg1OTQ0NmFlYSBsZWdhY3ktdHJ1bmsKKzUyMDYgM2UzNzBhNGIxMDNiZTIwNzljN2UyYjhiZGI1NTUwZjhhZWE3OTczNSBsZWdhY3ktdHJ1bmsKKzUyMDcgOTgyYTViZDZkNDZkMDc2NzBmMjA4YjhjM2YzNWQwODBlN2ZlMmVkMSBsZWdhY3ktdHJ1bmsKKzUyMDggYTgyNzgwMWVkOTYzMzg0ZWFiMTZmZGZlMGVlM2EzYzE5YzFmYmU5OCBsZWdhY3ktdHJ1bmsKKzUyMDkgZjE4NzliMWEyYzJhZThkYjdmMzk1MDhjYmQwMDk1Yjk0YTgwOWRkZCBsZWdhY3ktdHJ1bmsKKzUyMTAgNGYxYjBjYzczNTA3ZDY3Mjk1OTk1YzU5MGU2MDU0YTAxODRiZWFmZCBsZWdhY3ktdHJ1bmsKKzUyMTEgM2Q1ZWMxYzIyMDU1MDIyMTU2ZThmZWU5MzA2MzVkZGU2MzA4YjE0NCBsZWdhY3ktdHJ1bmsKKzUyMTIgODUzYzQ4Njg5M2I4MmNlOTVjZWMxMGJlNGY4ZmVhN2Q0ZTQxNDkwYSBsZWdhY3ktdHJ1bmsKKzUyMTMgZTQxNjY5YTFkZWEwMjRkOWJkZTAyMmM3ZjNiNTliM2MyNTBlMzM3NSBsZWdhY3ktdHJ1bmsKKzUyMTQgMzljZDI1Njc4YjQxYWNkNDE2NDM2ZTE5MGFlZmQwYTVlNDc3MjNiZCBsZWdhY3ktdHJ1bmsKKzUyMTUgOTUxNmJhZDk3OTYxMzEyOWVkNjBmMDcxYjM2OTcwMjg2MjYxMzYxOCBsZWdhY3ktdHJ1bmsKKzUyMTYgMGFmMDFmM2UwNmNjOWU0YTMzNTVmOTU1NTMxZWMyZGY5MmRmNmRiMSBsZWdhY3ktdHJ1bmsKKzUyMTcgYWU2NDAwM2IyYTc1NjUxYzRkZTdhYmEwZjBlYTU2N2IwMmM5MjU0OSBsZWdhY3ktdHJ1bmsKKzUyMTggMzU0ZWJkZGQzNjJiMDRjNzZjZTM3NTIxODk4ZmZkZTBiZmU2ODI0MyBsZWdhY3ktdHJ1bmsKKzUyMTkgNGI3NGIzYjQzMjY5YjcxZjRiNjYwZjg1YmJlYzJkMzM2YWRkZjVmZCBsZWdhY3ktdHJ1bmsKKzUyMjAgYTEwODdhYTY0MWNkOTVmMGYwODAzZjAxNDE2ZWIwMmU3YzA5YzYxOSBsZWdhY3ktdHJ1bmsKKzUyMjEgNDM4OWE2MGZlZGNlNjYxZmRhYjc3MDA3MWY4YThlNDRmOWNiMjY4YiBsZWdhY3ktdHJ1bmsKKzUyMjIgNTIxNTYzNTJmZGQ2ZDM1Y2RmOWYzMjRhOGRjODVjOWQ4NTM5MjBlOCBsZWdhY3ktdHJ1bmsKKzUyMjMgNmNmZDY5NTg1NjM2ZjAyZWZlYzM5YWNlMzVmYzE0YmQ4YjgxMjJkMiBsZWdhY3ktdHJ1bmsKKzUyMjQgNjlhYmE2ZDlkMzc4MzUyNmUzNGFjZjc0ZDAyMGQyOGU2ZWY4NmFlNSBsZWdhY3ktdHJ1bmsKKzUyMjUgYWFmOTAyY2RmZGM0YTJhMmQ3YmE1YjMxZWRjY2E5OTM1ZTA0NDkwYiBsZWdhY3ktdHJ1bmsKKzUyMjYgMWI5ZTkwMzUzNTI5MTE5MjE2MTMzYmYxMmZjMDRiNzM1ODQ3NTljNiBsZWdhY3ktdHJ1bmsKKzUyMjcgYjQwY2FiZmRjOTFkZTI1YmNlZmVjZjI2ZDhhNzk4MmZhNDZiMTYyNyBsZWdhY3ktdHJ1bmsKKzUyMjggYmUyMWMzZTBjYzAzZjQ4ZWI2YWE0YTIwYWQ0YzVjNDEwMTYyZWExMyBsZWdhY3ktdHJ1bmsKKzUyMjkgYjk1NDg5NjBmOTQ1MGM5YWQwOWJkN2JkM2NhYjljZWI5ZjM5MWIzNyBsZWdhY3ktdHJ1bmsKKzUyMzAgYWM2YzhiMTIxOWU2NzFjZDQ1NWY5Nzg1YTU1NDQ2MGFlMmQ2ZTQxZCBsZWdhY3ktdHJ1bmsKKzUyMzEgNmQ4ZDk4MWVmNmM0MTUxYzM2Njg2NWQ2MWI0NWQ0YzYwNDE5ZTllZSBsZWdhY3ktdHJ1bmsKKzUyMzIgZmVjYzkzOWY0ZDU5NTdjZmI3YjFlNjBiNWQ1NDFjNWM5OTc4MWYyOCBsZWdhY3ktdHJ1bmsKKzUyMzMgOGVjZTkyMjdmZGUxMDRkOWZlZDJhYTI3YzMwOGViMmQyOWYwOTc2MiBsZWdhY3ktdHJ1bmsKKzUyMzQgYTBhNGFmYTM5ZDdhMDFjZDRmMzY1YTRiOGJlYmQxNWU5ODhjZTY4YSBsZWdhY3ktdHJ1bmsKKzUyMzUgNmExNjU2ZGI3ZGRlZWNiNTlmOWZmZjJjZWQ2YTYyNjJiOTU0MzQxMCBsZWdhY3ktdHJ1bmsKKzUyMzYgZGMyYWRmNzllNTIzZTEwMmVjNTcyZmU4YzQ3NDc5NDU1ZjY0MTRiNyBsZWdhY3ktdHJ1bmsKKzUyMzcgMGU1ZGFmYjg1ZmJkMmJiNjNiNzJkMjlmZWI5N2U5YTY1OTg5YWNlMCBsZWdhY3ktdHJ1bmsKKzUyMzggMzU0MzJjOWE4NzRlMmMwZDFjNmZlZTk2Y2U0YjVlN2RlZjEyNjE1ZiBsZWdhY3ktdHJ1bmsKKzUyMzkgMWEzZmYwMTQ4ZGVjZDhmZjY0Njc5M2U0YTY1NWExNjQzODc1NjkwOSBsZWdhY3ktdHJ1bmsKKzUyNDAgYjczNWQzMzg2NjUxYTA1N2Q3YjBiOGM5ZGQ1NmIyMzAyNDllOGViYSBsZWdhY3ktdHJ1bmsKKzUyNDEgZmQ3NzdhZjY3YzIzMTBkM2NjYTkxODMyZTQ5ZWVjYWYwMDIzNTVlZiBsZWdhY3ktdHJ1bmsKKzUyNDIgNWJjMGVkZDViM2Y5MzJiNDdkNDhmNjAyZGFmZmIyNjY3ZjhiMzZlZiBsZWdhY3ktdHJ1bmsKKzUyNDMgYmYxZGVkNzU5NjJkNjIwNjE1NTc1ZGYxMTY0ZTc5NzVhYTlmODU2MCBsZWdhY3ktdHJ1bmsKKzUyNDQgMTdmZGVjMmZiMzA5YTkxZWIxYWVlY2YxNTk1ODAyMzhiODE0N2RhZCBsZWdhY3ktdHJ1bmsKKzUyNDUgYWY3ZDBmZWEzZmIyYTJjMmFlMWUyMDQ4NzVlZWRjZmE2ZGVlMzk2ZSBsZWdhY3ktdHJ1bmsKKzUyNDYgNDExM2Y0ZmJhYWU1MzcyMDJkMDlhMTZlMjk0ZGI5ZDdmYWQzY2I4YiBsZWdhY3ktdHJ1bmsKKzUyNDcgMTIwM2U1ODQyMjU1Y2U2NGVmMmYzYmE5ZmEyNzYxNDFlMjk0MzhiNyBsZWdhY3ktdHJ1bmsKKzUyNDggYTVkMzYxZTJiMmUyMGM2ZDBiY2Q1MDU5M2ZjODE0Yjg4YTQ2MmM0YyBsZWdhY3ktdHJ1bmsKKzUyNDkgOWVjNDRlMzdmNmIxMzNjMzZhYzg2N2JlMzA0NDVhMmEyYzNiMTU5NCBsZWdhY3ktdHJ1bmsKKzUyNTAgM2I3ZmE1NmEzYjliY2JmYjYzMjAxNzM5ZDA4NzQ2Y2Y4NWQwNGU1OSBsZWdhY3ktdHJ1bmsKKzUyNTEgNTBiMmY4MmU2ZjBlYTQ3YWRiOTcyMTMzMTg2ZTAwOGM2MzA5YzcxNSBsZWdhY3ktdHJ1bmsKKzUyNTIgMDZmMjI4ZDYyMzZlNGNmOWFkZjY4YmU4MjY0ZjU0ODZiYmYwN2Y5YSBsZWdhY3ktdHJ1bmsKKzUyNTMgN2MzZTRmM2VlMTUyZjg4YzQ5MTY1M2U5ZDcwMjVmMTQyMDE1OGEzYyBsZWdhY3ktdHJ1bmsKKzUyNTQgOWFhYjRlYjJiM2Y5ODM3YjhkZDQ4OGM2OGRiZTkwMWI3ZDgyODllZCBsZWdhY3ktdHJ1bmsKKzUyNTUgNDE1NjU0NTZiYzIyMWNjYzU5YWRiNGFiYWI4MGRhNTVhMDk3MjZhOCBsZWdhY3ktdHJ1bmsKKzUyNTYgMjRmYzA2MTZhNjk2YzgyOTk0OWYwZmUyOTY3ZGEwNWFhOWM5ZWE2NiBsZWdhY3ktdHJ1bmsKKzUyNTcgYmFmMGI5YjdjMmE1YWE2OTM4Y2Q2YTk1OGI1YTgwMjMzODg3ZWQyMyBsZWdhY3ktdHJ1bmsKKzUyNTggYWYzYWFiNmIwN2M0M2E5NTRlNzJiYjUxNDgxM2M1NDJjMDU0NDFhMiBsZWdhY3ktdHJ1bmsKKzUyNTkgYjg5MzdlNzRmZGY1NTFjMDMyMTIzMmZiMzRhMzBhNjU5OTBkNGVmZSBsZWdhY3ktdHJ1bmsKKzUyNjAgODIzZjNhOGVjZmU0MTkzNDcwMWJjZjM4YjQ3YzEyY2Y4Y2M4OWE2NyBsZWdhY3ktdHJ1bmsKKzUyNjEgZWEzOGMzNjNkZTU4Yjc1YjQ5ZTAzNmRjMDI3ZjExZWNlNWE3NmViNSBsZWdhY3ktdHJ1bmsKKzUyNjIgZWJjMTcxNGRjNzM4YmRkYzI0NDQzMTQ4NTcyODI1MDlhNTQ0YTk0YSBsZWdhY3ktdHJ1bmsKKzUyNjMgN2YyYzBlN2VmODQyNjJjNTk1ODY0NjM0MmY4NjhmMzMzOGNhYjBiZiBsZWdhY3ktdHJ1bmsKKzUyNjQgNTljMmFjYjNlNzAyNTQ2M2Y5OWRmZTNhYTdlMzVlYzM5NmIwZTU4NCBsZWdhY3ktdHJ1bmsKKzUyNjUgNGE5OThiMWEzMzFmMGFlOWYwZjMwYzdiMWUzODc1YTA1NWNhNDg3ZiBsZWdhY3ktdHJ1bmsKKzUyNjcgYWIzZGNhOTdmZmJlYjYzNWExNmVjNWVkMzhmZjQ1ZjYyZjg4ODA4ZiBsZWdhY3ktdHJ1bmsKKzUyNjggZTkxMWYyZmIxNzljMmMzMmNhZjkyMzZiYmUyMmNkYzIzYWQ1YTFhMCBsZWdhY3ktdHJ1bmsKKzUyNjkgNzUwYTJkZDhhNDM3YmZjOGJkMzE5OWM4ZDcwMDNjMmI0NTQ5Y2QxMSBsZWdhY3ktdHJ1bmsKKzUyNzAgYTIzNjNiNmU5Yzg2ZTlhYmM1MzY5M2I2YjU5ODcwNzlkZWEyZDU2MiBsZWdhY3ktdHJ1bmsKKzUyNzEgNjBjNTc3NzczNjZmNzU1YTk3MTQ4ZmI1MGMzYWJiMGQ5ZDhkYjhlOSBsZWdhY3ktdHJ1bmsKKzUyNzIgYjdhMDZkYjg1Y2FmY2U0MTNkMGM1NWRjZDkyNWFmMWQ2Y2YyNzgxYiBsZWdhY3ktdHJ1bmsKKzUyNzMgZDc2YTcxNGQxY2VhYWFkZTAwNzgwODE0YzNjNzJiYjkzMGQ1NDZhNyBsZWdhY3ktdHJ1bmsKKzUyNzQgNWNhNWQ3N2FmZDI4YmFjNzM3ZWIwYWFiOTc4NWU0MzFlZGRiY2I0ZCBsZWdhY3ktdHJ1bmsKKzUyNzUgOTMxOGFjNTE2OTFlNmQ4NjM4NGZmZDQ0MzBkMjE2NGEyNjEwZDM0NCBsZWdhY3ktdHJ1bmsKKzUyNzYgNmZmY2JlMGZlOWQzY2QwMGYyZmUzMjk4MzY4NzYzOTExOWMyZjliOCBsZWdhY3ktdHJ1bmsKKzUyNzcgZmMyMTkwZWMxYmVhZDI4N2JjMDZlMTgxMTMyNDZiMDZmOWQ2OWYxNiBsZWdhY3ktdHJ1bmsKKzUyNzggMDdmYzRmZWZiNjgzNzU5NTFlZTc2MGM4YTUxNTNjMjM0NjcxNGRlYyBsZWdhY3ktdHJ1bmsKKzUyNzkgZmIzZGFmOWIyNDU2ZGMxYTNkOTlmNTZmNzhjNWU2MjcwZWVhZjFlOCBsZWdhY3ktdHJ1bmsKKzUyODAgOTk5YjViZGMxOGNlOTk2YjAyYTA3NmFhN2MwYmYwYTk1M2FiMTQ1MSBsZWdhY3ktdHJ1bmsKKzUyODEgYzZmZTgwY2U3YzIwOTNhMWFjYTU1ZGYwYWEyY2NlMDVkZDkzOTliMiBsZWdhY3ktdHJ1bmsKKzUyODIgMWU4MmRkNmRmZTJlZjQxNmY0YjhhMjhhZjg0ZmY5ODQzYmNiYTAyZiBsZWdhY3ktdHJ1bmsKKzUyODMgYzRjMzlkMTcxZWMzYjA2M2Q2ZGJkYTI2OGMyYjFmNTVmOTU3ZTI4MiBsZWdhY3ktdHJ1bmsKKzUyODQgOGI4ZmIyNGQ0ODM3OTRmMmU5MzAzMTM5MmU5MzIwODMxMWQ5MzM3ZCBsZWdhY3ktdHJ1bmsKKzUyODUgYzliNzI5N2EwNzU4NzIwYjdjYTQzMjVlMGU0MjE3YWIxMjljMDc5OSBsZWdhY3ktdHJ1bmsKKzUyODYgODIyNWM2NTgxYjNkMzZlMjVlYTEwNmQyNDU0OWY5OGIyOTk0NGI4NiBsZWdhY3ktdHJ1bmsKKzUyODcgNjhkN2VhZTZjYmQ2YzU2NzUxMDQ5ODc5NjE4YmFiYTUyNDk1MmIzZSBsZWdhY3ktdHJ1bmsKKzUyODggNDNjY2ZjZDk4ZTgwNmVkYWQzZmFhYTZiNGY5NWM0YTdiYjMyN2I5MyBsZWdhY3ktdHJ1bmsKKzUyODkgNDA3Yzc4NDZiODg2Yjg1OGJmODgwMzg0YTJmMmIzODZlYTZkMjJhNCBsZWdhY3ktdHJ1bmsKKzUyOTAgMjgyYjBiNGMxZWVhNTkwYjkwYTVmZjEwOWYzNmMxZDYxZWNlNTM3NSBsZWdhY3ktdHJ1bmsKKzUyOTEgNjVjNzEwNTg2OGY4ODk5NjRlOGU0N2UzODEyZTY3MmIzMjFlMjkzZSBsZWdhY3ktdHJ1bmsKKzUyOTIgYmViYjBlYTdkZTIwMGNlYzNiZmEyZGZlYTNjNTgzNjBiZjg1N2ZhOCBsZWdhY3ktdHJ1bmsKKzUyOTMgY2Q5ZTYxMzUyNDRhNTcwOTBhNjcyOWYxYjUyMzg4MzY0NWQwOTUxZSBsZWdhY3ktdHJ1bmsKKzUyOTQgZmYxZmFhNGNjMWRmYmM4OWI3YWZmODkzOTBlYTM2NGJhZjAyMDc2YSBsZWdhY3ktdHJ1bmsKKzUyOTUgNTlhOTY4OWMxMWE4YjAxNDUxOGNjNDMwYWMyNWU2YTdmMjFiMTU3ZSBsZWdhY3ktdHJ1bmsKKzUyOTYgOTQzZTFjNDgwNGQ4MDA2MzVhYzk3NjUzZTFmYmMzYmE5MDUyMDMwZSBsZWdhY3ktdHJ1bmsKKzUyOTcgYmQ3OWNkNzY4ZmY4ODBlNzFkZTg2MTYwNzlmMzIwYzlhNmY4NDUzNCBsZWdhY3ktdHJ1bmsKKzUyOTggZWVkZDZjMWYzYWU3ZTRjYmQzNmM5NmY4ZDE5OWExMGIyYzU5ZWJmNiBsZWdhY3ktdHJ1bmsKKzUyOTkgMWZkOGYzMTZjYmU5MGY4OTQwMGM4ODUzYjkxODcyMzJjMDBmNzcwZiBsZWdhY3ktdHJ1bmsKKzUzMDAgMTY0Mzk5N2YxNzE4YWE2NGY1MzIwZTRjYzc3ZWYyNTIzOWY5NjEyMyBsZWdhY3ktdHJ1bmsKKzUzMDEgNGRlYTNmNTU0NWNmM2Q5MzUyZmU0MTk5MDlkNzM0NDA1YzZmZWQzYiBsZWdhY3ktdHJ1bmsKKzUzMDIgN2M3YjM3MDRhNjhmYTIxMTBjMDcxM2EyODUzNWMxMTdlYmU4YzliOCBsZWdhY3ktdHJ1bmsKKzUzMDMgZDkyZWY5NGFmZWZiZWNlZTY2YjgxMTEzOTE4NDhlYjI2MGYxNzA2NSBsZWdhY3ktdHJ1bmsKKzUzMDQgYjk4OGE0YWNhNmY5NjBhMjhiMjk1Y2M4YmExOWU1NjJkODkwOTA1MCBsZWdhY3ktdHJ1bmsKKzUzMDUgOWIxYTMyNjcyN2RmZDc3MGFhZWEwN2QwNGI5ZjRjMWU2ZjhmMzhlYiBsZWdhY3ktdHJ1bmsKKzUzMDYgMmM3M2M4YWI4YjgyYWU4MmQ0NWY4MWU4MzA0MzhhNTgwYjg2ZWM4MSBsZWdhY3ktdHJ1bmsKKzUzMDcgZDUzOThhY2FmYTJjY2M5M2VlYjE1NjNhNWQ0YTBhZTFlOGIxMzI4MSBsZWdhY3ktdHJ1bmsKKzUzMDggNjQ5MjhmNmE4ZTgwZTA2Y2UyNDAxOWI3ZGQ3YTYxYmU4MDQwYWJlZiBsZWdhY3ktdHJ1bmsKKzUzMDkgNDIwODc0ZjdkOGJkMWZmMDQ4OWI0NmEyZTE5NGZlYTM4MGFmNjIyMSBsZWdhY3ktdHJ1bmsKKzUzMTAgOGQ5MmEzYmI5YzFmZmFkY2I3YzIxYTFlNWEzZGVlMjQ5Yzk4Yjc3YyBsZWdhY3ktdHJ1bmsKKzUzMTEgMDI2MWJmNWIzODE5YjAzZDgzZjI1NDU2Mjk0NzI0NDYzNDYwNDAyNiBsZWdhY3ktdHJ1bmsKKzUzMTIgMDUxYmFjYWI1OWFmZTI1ZTMwNjk4M2ZlNDBiNjFkYzE1MmY4ZmJhNSBsZWdhY3ktdHJ1bmsKKzUzMTMgZWFlNGIyYmE3MjJlYjRjODRjM2RlZTllMzE0ZDE1ODlhZGE1ODNhMSBsZWdhY3ktdHJ1bmsKKzUzMTQgNTYwYWNjMjVmODk2NjAzMzJhMmRiMDY2OTMxYTdmMDRlYTA4NjliZiBsZWdhY3ktdHJ1bmsKKzUzMTUgNGY2ZDVmZTE5ODEyMmYzZDYyZGQ2NmFjOTZhNzk2ZTE2ZjRkMjMxZCBsZWdhY3ktdHJ1bmsKKzUzMTYgOTdjZmM0NmUzMzAyYzE2NmQ1N2JkMzVhOWI5M2NjYWIyZDQxOWVjZCBsZWdhY3ktdHJ1bmsKKzUzMTcgZTM3OTVkYjRhZGY4OThmYzIzZTg1ZTJhNWYyY2E2ZjE0NGZiYTA4YyBsZWdhY3ktdHJ1bmsKKzUzMTggYmVlZWZmZjFjNDQyNjUzMzY0MjFmMGRhZmM3ZDRiOThmZThhNzNiNCBsZWdhY3ktdHJ1bmsKKzUzMTkgMWVlZWJhMDlhMzA2NDk3MWFhNmQzZTFjY2I1NGI5MzM4ODJkZmVjMyBsZWdhY3ktdHJ1bmsKKzUzMjAgZDQyOTQxZDNhOTVmNDVmNjYyYjQ3N2I3NjNjNTgzYWI5ZGMyZTczMiBsZWdhY3ktdHJ1bmsKKzUzMjEgZGQ4YTMwZTVmNzQ0MzRjMjg5ZTY1MTFjYTY4MzFmMDQ1ODIyNjBkNSBsZWdhY3ktdHJ1bmsKKzUzMjIgZTZiZWMxNDlhOGQ3MjM5N2VmNWUzYjlkZWI1MWM5MGM0YzBlZjIwMyBsZWdhY3ktdHJ1bmsKKzUzMjMgYTdhZjk3MGE5NGE0MjcyYmNjMWY0ODBkNTQ0NGM4ZjFjMTRlYjgyNSBsZWdhY3ktdHJ1bmsKKzUzMjQgZWViYmRiZWU1NGY5MDIwN2Q2ZjM5ZjJkNGY3MzM0ZGM4MzFhMjU3MCBsZWdhY3ktdHJ1bmsKKzUzMjUgZWIxZWQ0ZDg0NjI5MGQ1MjljYTE4N2FjZTljOGM0YWJkOTFiM2M2ZCBsZWdhY3ktdHJ1bmsKKzUzMjYgYmEyYjMwOTcyZmZlYTczNWU0Nzk1YjljZDZjYTI2MmQ0ZTc1ZDk4ZiBsZWdhY3ktdHJ1bmsKKzUzMjcgNmFlOWIzNzdlNTIyYTRlZDAyMGExOGI1Njg4OWU1MzEyZjBiMTMwZSBsZWdhY3ktdHJ1bmsKKzUzMjggZGM2YjNlNzZjY2U2NjQyNzc3ZTA1ODFkNDk2MzljYzFkMDBhYjBlMyBsZWdhY3ktdHJ1bmsKKzUzMjkgZGY4Y2VkYTg0NTQ1ZTc1MDNjMDhjZmFlZGE1ZjNlYWM3NTVlNTcwYSBsZWdhY3ktdHJ1bmsKKzUzMzAgMTBlMDA3YWVmMWNmZjEzMGE3ZmFlNGMwNjFmYzY1ZmZhODQ3MzllYSBsZWdhY3ktdHJ1bmsKKzUzMzEgNWY5NTE5MTJlOTk1OTBjYjRmMWYwOWNlMjJlZjRlZjU4NTFkZGYxNCBsZWdhY3ktdHJ1bmsKKzUzMzIgZDQwMjkwZTQyNDU1NTZlOTU3NDNhMDZkNGE1NDFhNzljZWViMDc4NiBsZWdhY3ktdHJ1bmsKKzUzMzMgMTQxMTFkNjY1NzdkZDU0NjRhZjdlODk5MjMxNDY0NjM5MGRhMWI3MiBsZWdhY3ktdHJ1bmsKKzUzMzQgYTE2OWU2ODczNGZmMTBlYjE0Zjc2NGU5ZDZkN2RkZTc3YmI4ZGY0MSBsZWdhY3ktdHJ1bmsKKzUzMzUgZjY1N2Q2NzgxMmFmYWU4ZDAyNThkYTQxNjA3ZGQzZmNmZjU5YzRjOCBsZWdhY3ktdHJ1bmsKKzUzMzYgYjlhNjI1MDFlNzZkYzg5ZTk5ZWJmYjJkNjg2MDIxYzQxNTI3MTFhOCBsZWdhY3ktdHJ1bmsKKzUzMzcgNTIwZTE4NTVhMjRkOTBiMjFkNWNkYzJjNjYwODM5YTlhZmZiMzE2ZSBsZWdhY3ktdHJ1bmsKKzUzMzggMDUzNDAyNWNlZmU1NTZmYWM3ZWMzNGQ0NzkwMzllY2JiYmY1MmM3NiBsZWdhY3ktdHJ1bmsKKzUzMzkgZDNiMDdiYTNlMTJkZjNiODI3NjE0NTFiMzBjMzg3YTZjOTZkYmQ0MCBsZWdhY3ktdHJ1bmsKKzUzNDAgMzE1NzYwYmEwMDQxZDA0Y2JiYjc1ZTMyMWQyODZkNGEzN2ZmZTkyNSBsZWdhY3ktdHJ1bmsKKzUzNDEgOTI3ZjQ4MzlmYmZhMTQ4YzU3NTc4MDAzOTY5YzczZGJjODczYmI5MiBsZWdhY3ktdHJ1bmsKKzUzNDIgNzE1ODRmZTc3NDljMzVmZDhlYWY1NzdlZTU2YWJjYjM1NzVjMWFlNyBsZWdhY3ktdHJ1bmsKKzUzNDMgODUxNDBiMzU0ODkwMWY4Nzc5MzU5OGQ5ZjIwOTRiZGJkZmJhZWQ3YSBsZWdhY3ktdHJ1bmsKKzUzNDQgYmVlZWE5NzU3ODc5ODk3ODk5YmYyNDc4ZGIxZTJkNGFiMTgyMDI2YSBsZWdhY3ktdHJ1bmsKKzUzNDUgNWE1MjE5YzhjMmU2NzRmYzQwZmJmY2JjMDcxYjA3NmVjMWJhMzI0OSBsZWdhY3ktdHJ1bmsKKzUzNDYgMzYzN2RhNGM5OGNiMzEwMTQ3ZjA1OGVhZTM2MGRlOTg4MzJmZDMwOSBsZWdhY3ktdHJ1bmsKKzUzNDcgNmYxZGRmMTEzOTgyYWRhMThhNmIzOGI5ZTdmZmU3NjIxNjg0ZjNiMCBsZWdhY3ktdHJ1bmsKKzUzNDggYTBlODI0NmQ1MjM3OGQ1MTg5MWU2MGEwNjlmY2ViYzZhYTI3MTlkZiBsZWdhY3ktdHJ1bmsKKzUzNDkgZjg4YmNjYjU0OGVmNGMxNTU0YTRiODQxMTcwMTI3YTA2OGU2MTY3YiBsZWdhY3ktdHJ1bmsKKzUzNTAgNTFjOWNmZmYzMWYzZTE3ZWEzNDcyMWIwMDBiZjZhYzgzMTU3ZGEyYyBsZWdhY3ktdHJ1bmsKKzUzNTEgZTAwNmVkODhiNGFhNDY3ZGVkN2JhYTA2MDE5ZDU5ODJkMzJkODJmMSBsZWdhY3ktdHJ1bmsKKzUzNTIgMzYzYWY3ZTNlZDJkMjNjYjc5YjU5NzJiZTc3YmEyZmNkNTgyZmQ0MSBsZWdhY3ktdHJ1bmsKKzUzNTMgMjFlMTA1NDYwYTQ5OTllOGJmMTdhYjEyMWY2ZjBlZmZiNzQ1ZTU0MCBsZWdhY3ktdHJ1bmsKKzUzNTQgZWMwYjQyODg5MjQzYTdmOWU2YmM3NTY4MjAyM2JjMzg3OTFlYzFjNyBsZWdhY3ktdHJ1bmsKKzUzNTUgNmFiZDE0NDg1ODg0ZjYxYjhkMTE4YjZmMzE0MDVmM2QxZjExNjg4MiBsZWdhY3ktdHJ1bmsKKzUzNTYgZTUxM2YwZDY1MzY4YzFlNTgxYWQ2MTZhZmQ0ZTkwYzk1MzAzMmJmMiBsZWdhY3ktdHJ1bmsKKzUzNTcgMDRlMTY5MGZiNGQxMTc0OTYyYjM3YTYxZGM4MzM0OGZhNDNmM2RlZCBsZWdhY3ktdHJ1bmsKKzUzNTggOTY0ZDc2ZjQ5YTVlY2E5NWU4ZWQyMzU1OTdlNzdlNGViYWQzOTE5MyBsZWdhY3ktdHJ1bmsKKzUzNTkgMzNiMTU0YjZjNjFiYjlmZTllNDhiMzA1NzU0MTUxZDY4MmMwODFlNCBsZWdhY3ktdHJ1bmsKKzUzNjAgNDUwYWQ1NDk2NDA3NzAxZGVmYzgwODUxNWRlYmFiMDMxMGJjYzI0OSBsZWdhY3ktdHJ1bmsKKzUzNjEgNDA5NTc4MmM5NDBlYWM0MGU4Y2E1ODE0MGIwNmQ0OTk5Y2NhYWIwMyBsZWdhY3ktdHJ1bmsKKzUzNjIgODFiNDEzMjRkMjZlYjhlNDZjMTY0OTNkMTA3MWE0NDNmYjA3MDdkMCBsZWdhY3ktdHJ1bmsKKzUzNjMgZjBkOWY4MDBhNGFhYzdhZGExZWI0YmUxZjdhOTViZDA4ZDQ4MTBiNyBsZWdhY3ktdHJ1bmsKKzUzNjQgNGQ2OWZkZWU5ZjVkNDI5YTg0MGExYzE2MTI3MjAzMGEyMTk2OTdlMiBsZWdhY3ktdHJ1bmsKKzUzNjUgNTZlNjI4YTc3YzhkNThhMzAwOTMzZGY0YmM0ZDRmM2MzNzQ0Nzk1NiBsZWdhY3ktdHJ1bmsKKzUzNjYgNjVmMDZmYzM5OTYwMGIwNWRhNGYxYmZhMTk2ZDk2NWNjY2IxNDhiZiBsZWdhY3ktdHJ1bmsKKzUzNjcgMGFjYmQ4NWJjZGJhMzY1Mzg4MWE0YjAwOWFhNjQ2ZWE1YjBkNDNhYSBsZWdhY3ktdHJ1bmsKKzUzNjggNTdlYzI0ZTBmMzVhODBmMDI2NWZlOTc4MzRlMmU2YzBlY2JmMDM3YSBsZWdhY3ktdHJ1bmsKKzUzNjkgMTM1ODFiNDE3ODM3Yjg0NWJjYjkwOTA2MDlkYjlhNzMzYTlhNmRmOCBsZWdhY3ktdHJ1bmsKKzUzNzAgNzM4Yzc0NjE1YWM0ODk4YWNkY2YwM2RmN2ViY2Y5MmIwYjMwMWFhNiBsZWdhY3ktdHJ1bmsKKzUzNzEgMDI0ZmRkOWNjZGYyNDBiZDU0ZmViZWFlMTJmNDU0NTEyY2UwNzc1MCBsZWdhY3ktdHJ1bmsKKzUzNzIgMGFmZDQyOTYwYTFmZDM2MGIwZjk2ODFhMTM2ZDY2ZTg4NjlhYjNjMSBsZWdhY3ktdHJ1bmsKKzUzNzMgMjE0MzVhMGI5YjExNmE0OTgzZjhmMzVlZTNiYTZhMGYzYjJiYWU3NiBsZWdhY3ktdHJ1bmsKKzUzNzQgODk1N2JjZWJmMTJjNGZiMjk2YWZlMjQzNWUxMDJlZWFmOTBmYWE0MyBsZWdhY3ktdHJ1bmsKKzUzNzUgNjE5ZjMxNjU4YjNiYTdiMWFhMGYzMDFjNDlhMzU4N2JjZDhjNjQyOSBsZWdhY3ktdHJ1bmsKKzUzNzYgZjliMTA2OWEzZTI2NWQ5MGRlZmJjODAzNzYzZGY4MWViODdlYTQwMCBsZWdhY3ktdHJ1bmsKKzUzNzcgNWEyNjEyZmI2YzBlMzFiMDdlNjIzYjVkNDZiNWEwM2QyMjdkMGFmOCBsZWdhY3ktdHJ1bmsKKzUzNzggNDI5ZDdlMWIxZjJiOGMzNjgyY2I0OGZkYmIxZDdlMGUwMGJmMzIyYyBsZWdhY3ktdHJ1bmsKKzUzNzkgZGY3YjE1YzFlOGI3OTZmZjRiYzI3MWNlOWQzNTUyZGEzMTU3Mjg4OCBsZWdhY3ktdHJ1bmsKKzUzODAgNTFkZDA2NWE5N2E2MTRlYzIwYjA4MTlhODYwM2ZlNDQwMzFiM2QzZiBsZWdhY3ktdHJ1bmsKKzUzODEgZTE2ZTE4Yjk2MjZjOGYyZWVlMWFhNmI3OGY3OGMwOTgyZDhlZTdlNyBsZWdhY3ktdHJ1bmsKKzUzODIgNDUwOWRmZTE5YjY4NjBkZjFhNTI4MGQ0ODlmNGE0MTY2M2RhZDE3NyBsZWdhY3ktdHJ1bmsKKzUzODMgNzY0YjBmYzg2N2E0NzVjN2I3NDg4MTcyZTAxYTgzM2U4MDFlZTFiNiBsZWdhY3ktdHJ1bmsKKzUzODQgOWZhZDAyOWY4MzhmZDFiOTJmMzM2ZTlhYjQzNmM2YjBiOTUwMmZjZSBsZWdhY3ktdHJ1bmsKKzUzODUgY2ZhOWIzYTg0ODcyZWFmOWQ5YjI2NzFjMDE0NGUyY2ZkMTJmNjdhNCBsZWdhY3ktdHJ1bmsKKzUzODYgODExZDlhOThlMThhYjQxNjI3ZTM4YzFlOTNiYzVlMzJmNTEyMWEyOSBsZWdhY3ktdHJ1bmsKKzUzODcgMTc3ZjU3NTcwOGJiMDkwYjE4ZDE5NjE0NTExNjRjNDVjMDlkNjNjMyBsZWdhY3ktdHJ1bmsKKzUzODggMGM1MGVjOGU4MzU4ZThkNGEwNzY5ZjIyYjc0YTRlNTcwZDg1N2M2MSBsZWdhY3ktdHJ1bmsKKzUzODkgNGYwODJiZTU5MDJhZTE1Mzg2ZTE2Nzg1NDhiMzllMTM3ZGYxZTRmOSBsZWdhY3ktdHJ1bmsKKzUzOTAgMTc2MzU2MDRiZGNlMTVhNGNiMmNjNjE1OWQwNjYxZmQzOGZiNjAwYiBsZWdhY3ktdHJ1bmsKKzUzOTEgNDQxNDVlZWI2MTAwYzljMjVlYWUxNjg3OTM5MjNhNjQxNjI4MDNlNiBsZWdhY3ktdHJ1bmsKKzUzOTIgNWViOGJkZTMwMGI3ZWRlMTQzYmEyOTY0ZjNhYWE2OGZhZTAxMzliNiBsZWdhY3ktdHJ1bmsKKzUzOTMgNGE1MzQ4MzkzOWMxZWI5OTI5MTg5NmI5N2EyOGMzZDFlODMyMjM2MCBsZWdhY3ktdHJ1bmsKKzUzOTQgMGFkOWQxMjNmZjU1ZGYzNDk1MjRiYzI0MjMyYzVhOTY3NTI5YjIxZCBsZWdhY3ktdHJ1bmsKKzUzOTUgNzkyZTM5ZGZlMjE2MTZhNjQyYzU0MTRkNTliMmJjNWY0YzljMTQxZSBsZWdhY3ktdHJ1bmsKKzUzOTYgN2QxZWNlYzI1YzA2ZWRmYTQ5ODc5NzEyMTk1MjdkOTk3NWY4YzY0YiBsZWdhY3ktdHJ1bmsKKzUzOTcgNzM5Mjc5MDMyOGJiZjNmZDdmYjMwMDYyYzM3ZTcyN2JlZWU0NTEzOCBsZWdhY3ktdHJ1bmsKKzUzOTggZGNlOTE1NWIwNDAxZWQ4N2ZhNDQ5ODVjN2EwMzM3MjlhMmQwMjNjNCBsZWdhY3ktdHJ1bmsKKzUzOTkgZWZiZGM1MGU3ZjU0YzUzYjcyNzRlZDMzZTM1YmE0ZWE1Zjk1MWRhNiBsZWdhY3ktdHJ1bmsKKzU0MDAgN2UxMjY1MzEyZGQ0Mjc1M2M4NmVlMDYzYWU0YTZiYTczZjY1NzYwNiBsZWdhY3ktdHJ1bmsKKzU0MDEgY2I1Y2NiYmExODU2OGViMzg4MjMwNGUyYTEzZTg5MTcyYjY5MjJmMSBsZWdhY3ktdHJ1bmsKKzU0MDIgOGFhYjgzY2M2MGEwNDFjMDc2NjdjNjMzNmQwOGJiOGMwYzNmMzVmMyBsZWdhY3ktdHJ1bmsKKzU0MDMgMDk3MGViZDMxNTM2NzQ0ZTM4OWYzNzEyYjQ4MjcyZDhhYzVkMDkwNCBsZWdhY3ktdHJ1bmsKKzU0MDQgMWQ4NjI2YmM5OWM3MTAyOTFiNTAwNTUyNDczNTM0MmI3NTliYjgwZiBsZWdhY3ktdHJ1bmsKKzU0MDUgZjAxN2Y1Y2RiNGJkYjI4NTQ5ZTg5MjRmNjI0ODQ3MzcxNmUzNDY0OCBsZWdhY3ktdHJ1bmsKKzU0MDYgNGRmZGYyMzRjZGE4ZjUwMzMyMzlhNmMyZGVjOGQ0YmI0ZTc0YWUzNyBsZWdhY3ktdHJ1bmsKKzU0MDcgNzA4MmMxYTFmOWFiOTg2ZmMxMjRjOGZkNjZhYzFjYzY1MGUzN2Y5ZSBsZWdhY3ktdHJ1bmsKKzU0MDggOTdmN2NmYWJlMDdlN2E5NDBkY2E1ZjkxY2Q4MmJkOTY3MDdlMDI2ZiBsZWdhY3ktdHJ1bmsKKzU0MDkgMzcxNTIwNjM5N2ZlOTA2MGJkNDgyNzJkMmViNDNmZGFkNmVmMGJlMiBsZWdhY3ktdHJ1bmsKKzU0MTAgOGVkYmVhYTJiYmY3YTcwMmVlYjM4NDdlYzBlMjA5ZThiZWYyZWM2MyBsZWdhY3ktdHJ1bmsKKzU0MTEgYzA5OTdiNDYyMzQ0YjQwNjYyOTBlMTA4OWUyMTBjMWUzZDdhY2Y0YyBsZWdhY3ktdHJ1bmsKKzU0MTIgZjE3YjdkMGE3NDgyNDRlOTc0ZjdjMTA2OGNlMGEyMzE2MDY0N2EzNyBsZWdhY3ktdHJ1bmsKKzU0MTMgMTBjMTAzMGI3MGFkZThmMDEzZjUxMzkwOWEwMTJjMTA1MDUzZGRiOSBsZWdhY3ktdHJ1bmsKKzU0MTQgYTk4MGQwNzYwNTJkYWJkYzE5NzJlMTg2OGU2YzA4NWJhMzMwY2U1YiBsZWdhY3ktdHJ1bmsKKzU0MTUgMzAyOWU4MWVkYmM3NzViOTY3MTEwMjQ1OTcyZWE3YzlmMWFmODk5YiBsZWdhY3ktdHJ1bmsKKzU0MTYgYmMwODAzMDg0ZTYwYTk1YmQ3ZWEzN2EwMTA1OGVmN2UwZmI3MTM4NyBsZWdhY3ktdHJ1bmsKKzU0MTcgYTFhOWI3MzY0YmMzNDg2NmNmYmI5NDY3OWZjZjcyYmYyNjQ0M2QyYyBsZWdhY3ktdHJ1bmsKKzU0MTggMTFkODk5MTRjN2I5YjFmM2Y1ZjljYjMwZTUyOTY5ZTdhY2ZmNDkwNyBsZWdhY3ktdHJ1bmsKKzU0MTkgMjFkZjQyMWYwM2ZlMGQ5NjhlNTIwN2Y1ODhlNmMwODQ3YzBiZTY0MiBsZWdhY3ktdHJ1bmsKKzU0MjAgNDVhZDFhOTM5ODZhMGViZDJjOTkwNjQzNDliMzJjNGU1Y2FhYzA2MyBsZWdhY3ktdHJ1bmsKKzU0MjEgYzVjYjNhNTM5MzNjMzUxYTNjNDNmMTAyMzE0M2U1MzE1ZDE2MTEzNiBsZWdhY3ktdHJ1bmsKKzU0MjIgNTI3ZDFiMjkyNTI1MDYyOGViY2RhYjU4ZGE5OWIxYmY0M2Q4M2U1ZCBsZWdhY3ktdHJ1bmsKKzU0MjMgNGQ3ZmQ5ZmY3OThkNTUxOTk1ZGZkNDJhZTRmNjc1ODAzOGMzYzNiNSBsZWdhY3ktdHJ1bmsKKzU0MjQgY2M5MjIyYjk0N2VlMGExNDc1ZTRmYWE0ZDYzNmZmMWMxZTZjZjEwNSBsZWdhY3ktdHJ1bmsKKzU0MjUgNGY5ZDRlNzMwNTdjNzYzMjM5MGQ2ZGU4MTk4NTJiYmY5NTBjY2FiZiBsZWdhY3ktdHJ1bmsKKzU0MjYgZWI2ZWI2MWI2MDZmZmQzMjU2OTk2ZWNhYzZkZjEyZDJjNzc5ZTE5MCBsZWdhY3ktdHJ1bmsKKzU0MjcgZjNmN2MwMWJjOTY2Y2QyNzgxZmYyNjYyZmM0NzY2MDZiNmJkMmUyMSBsZWdhY3ktdHJ1bmsKKzU0MjggMWM5MTlkMDJhNjQ1OTc1NDg0YmM3ODJjYWMzNjFkZWZkMjVhMWE3MCBsZWdhY3ktdHJ1bmsKKzU0MjkgZjcyYWJkNjJkNTA4M2Y1N2Q1ZmFhMDY2MmFkODg0NzBkMDk5MDYyMiBsZWdhY3ktdHJ1bmsKKzU0MzAgMDIzNTI3MzQyNTk5NmEzNjJkNTlhMGJhZWUzY2FiNGE0ZmY1Njk5MiBsZWdhY3ktdHJ1bmsKKzU0MzEgMTIyZDE0OWZhODAxNjQ2MDc1Njg0NzIwNTQ2MDkyZTJkN2VjM2U1MiBsZWdhY3ktdHJ1bmsKKzU0MzIgZDAwNzJkMWRmODJjMmI3ZjlkZTAxOWVmZWMwOTRiMjgxZWQ5M2UzNCBsZWdhY3ktdHJ1bmsKKzU0MzMgZjlmYmZkOTAzMTUzMDJkZTNmOTFjYmU2N2JlNDRjN2M0NzNmMWE0NSBsZWdhY3ktdHJ1bmsKKzU0MzQgNzQ5NTNhNDE2MDdjMWE2M2UwYTU5MzE5NTgzYzA1YTM3MGM2ODk4MCBsZWdhY3ktdHJ1bmsKKzU0MzUgNTIxMzA2Njc5ZTM0OWVmYzJmYmUxMGJmYmIyMDYwZDAxYTNkYTg0ZiBsZWdhY3ktdHJ1bmsKKzU0MzYgYzAwZmFlMzgwZGM3OGQyYTlmNjBmNTNjZjVlNzY3MTNlMTAwMWIzNiBsZWdhY3ktdHJ1bmsKKzU0MzcgY2ZjNjZiOGNhMjAyNzAwMWZmZWNiNDM4N2JlZDI4MTA3NzBjY2VlNiBsZWdhY3ktdHJ1bmsKKzU0MzggZDIzZDczYjRlNThhOWZmYjBjNzAzYTJkMmY0Mzg5NzZlMjcxNTI4NiBsZWdhY3ktdHJ1bmsKKzU0MzkgOTk5NDVmZGE3MTlkYjIyMjFiNDYxMzQwOGMxMDJiOWY5ZDllYjQ2ZiBsZWdhY3ktdHJ1bmsKKzU0NDAgOTg2NGZlMDU5ZTBkYzRjNTA1YThjMTIwMjZkN2RhZTE4MGQzOTNmYiBsZWdhY3ktdHJ1bmsKKzU0NDEgZDFjNDU4Yzg3ZjRhNmIwZWRmYWM2YjQ2ZmI0NjFiNjA1NGYzNzQ3YSBsZWdhY3ktdHJ1bmsKKzU0NDIgODIzNTZiZGRmNzEyY2ViYmU2ZTMxN2Y1YzczMWVmMzgzMTIwZDA3MiBsZWdhY3ktdHJ1bmsKKzU0NDMgNGRlNzc5MjMyYWE0YzBhNDlkNjEyOGI2N2YzZmE4ZmJmY2MwMDA0MyBsZWdhY3ktdHJ1bmsKKzU0NDQgNDQxODY2YmUyZWM5OTE2YTIwYWQ3ODc5MTljNGEzZGQwYWY4YzQ5NCBsZWdhY3ktdHJ1bmsKKzU0NDUgN2E2N2RiY2I2ZDgzY2YyYjBhYmYxMjNkOGRmNDhhYTlmYmI1Nzk5MSBsZWdhY3ktdHJ1bmsKKzU0NDYgN2VlYTliNDI2ODAyNGI1MGQ5OWQ0MzJiYjRmMWJiNDlmNTFiYjYwNSBsZWdhY3ktdHJ1bmsKKzU0NDcgYjZjZmEwNjNiODliYjBiYjEzZTdhZjI4ZjljZDIxM2FmZmYyN2I1ZCBsZWdhY3ktdHJ1bmsKKzU0NDggNTZhZDI0N2NiZmNiZWQwM2MzYzMzZjdhNDI4OTAyZjE3M2IwZDQyMiBsZWdhY3ktdHJ1bmsKKzU0NDkgOGQyOTA3ODU2YjM3ODQ3MDEzOWMxZmQ2NTJjM2QzYWFkMjllMWJkMSBsZWdhY3ktdHJ1bmsKKzU0NTAgN2IzOTExOTYwNTY0MTVmNTI2ZDRlMWExM2ViZjdjNGFlOTc3YjRmMCBsZWdhY3ktdHJ1bmsKKzU0NTEgNGMxZDgwOTUzOTUwOWI4ZTZiZTcyNGNkMDMwOWI2YmU0YTFjMDhiYSBsZWdhY3ktdHJ1bmsKKzU0NTIgMGQ3MTAwZmZiNjFhN2U3MzhhZmIxMGY5MTljNWNjNTUxNDQ4Y2YzZCBsZWdhY3ktdHJ1bmsKKzU0NTMgN2QyNjgzNDJkYzNhM2FjOWE0N2EwMzRjMmQ2OTA4YjlkYjQ1YzY3OSBsZWdhY3ktdHJ1bmsKKzU0NTQgZjkzM2E1MzBjMzhmMTcwNzI2NTlkYzAzYTRkYTZkY2RiZjNjODhkMiBsZWdhY3ktdHJ1bmsKKzU0NTUgMmZlOWQwMzcxZWNkMDY3MWJiOTVhMzFiMzJlYTE0NjM4ZjJkODQ3OSBsZWdhY3ktdHJ1bmsKKzU0NTYgMDRiYWRhOGQ2NWRlNDM1ZDUzODZkOGU1ZmRkMGQ3YmY2YTg3Y2NmMSBsZWdhY3ktdHJ1bmsKKzU0NTcgOTQ3N2E0NDU3ZTU2NDMzMTVjMjJmZGU1YThkMWI3OTY0YjJlM2ZjMyBsZWdhY3ktdHJ1bmsKKzU0NTggNDQ4ZWRjOTIzY2FkNDBkNzA3MmFjNmM5ZjczODZlZWFiYmExOGFkZiBsZWdhY3ktdHJ1bmsKKzU0NTkgZDI5N2M3MjIwNjEzNTg0Mjc3ZDc0YzM0MDdkNGJiMjQ3NDI0MjkxOSBsZWdhY3ktdHJ1bmsKKzU0NjAgNWQ0NzQ5YTQ3MGI0ZDAyMDBiOWNlYTg3Yjg2MDFlYTRkNWMwODQzNiBsZWdhY3ktdHJ1bmsKKzU0NjEgYWMwMTUyZjYzYmRkZmI3OThiMTE2NWU3ZTQ1ZGVmMWM4ZGYzN2RhZSBsZWdhY3ktdHJ1bmsKKzU0NjIgMWE4ZDZjN2RkNTYwZjE5NTBlNGNiNmE3NTUxYWQzNjRhNDQxMmM3MCBsZWdhY3ktdHJ1bmsKKzU0NjMgNTEzYTk2YTU3NTBmYmE3NTE3NGNlM2FlMDJkOTA3OTUwN2UwZTkzYSBsZWdhY3ktdHJ1bmsKKzU0NjQgZDRmZjQ3ZGY1OTIwZGZkMjE0NjgzNDllZDRlMzUxNGNhZDIwMzUwNSBsZWdhY3ktdHJ1bmsKKzU0NjUgOWJjYTk0YTM2YTA4MTBhZjIwNGQ2OGMwNjk2Nzg4OTlmMmZmYTFkMyBsZWdhY3ktdHJ1bmsKKzU0NjYgYmEyZmU1ZjgzNmE4M2RlMmQ3OGU1YWFkNjVlNWYzNGQyYWJlMGU0YyBsZWdhY3ktdHJ1bmsKKzU0NjcgNTU4OTViNWEzMDA3YjRiYzkxZjMwYmFhZGY5N2JlOGYyYjMwY2M2ZCBsZWdhY3ktdHJ1bmsKKzU0NjggZDQ2ZDgzMWJjNWYzMDEyM2Q4NTdjODA3NjU5NjdiZmY5MGY2ODI0MyBsZWdhY3ktdHJ1bmsKKzU0NjkgNTkxMWYyNGJjYzJkZTAzNzBlYTkwOWFkZGQ5ZDlmYTg1N2FjNTU5MSBsZWdhY3ktdHJ1bmsKKzU0NzAgODk4N2NmYTc1OGJiZDViN2Q0OTgwMGNkMTg3NzE1NTg3ODE1MTc0OCBsZWdhY3ktdHJ1bmsKKzU0NzEgYmVjZDU4MTYwOTExMGJlYmJlZmRkYTkxY2Y3ZmNmNDE4NGUwZmMyMCBsZWdhY3ktdHJ1bmsKKzU0NzIgYWQ2ZjAzOWE1YzQ5MjJmODkwZmNjMDQwMWFhMDBmODUwNmFjZDg0NyBsZWdhY3ktdHJ1bmsKKzU0NzMgMjBjYTU4ZWRjODU1NDhjODBiNTExYTAwOGMzZDdhMjAwMDNhNDYwOSBsZWdhY3ktdHJ1bmsKKzU0NzQgMDJmMmM1MThhYTQ2Yjk0MzY2ZWNiMzAxZDhmYjhhZmJkNTg0MDI4YiBsZWdhY3ktdHJ1bmsKKzU0NzUgYTUxMDIyZjE5ODBmZDVhMTVkNjhhMGU5YjMwZWMxODYwNDAwZTA5ZSBsZWdhY3ktdHJ1bmsKKzU0NzYgN2ZiNmYyMGUyYmEyOTQ0NGUyOTQyYTk3YTNiYmJkNThjYzcwZDQ0ZCBsZWdhY3ktdHJ1bmsKKzU0NzcgNmFhNGU5MjA5ZmJkOGVkYjcwNWI3MjdmMWRiMDg0M2JmYTgxYzM4MyBsZWdhY3ktdHJ1bmsKKzU0NzggNzJhNjFhMTQ5ZTRlNmM3MDE5YjMxMDMyYzU4ZGUwMzBmNTU0NjVmMCBsZWdhY3ktdHJ1bmsKKzU0NzkgNmI5Y2I2NjM0ODk3NWQyNDMyM2JlNGNjMzJjOWNlYWE3NDI3M2NiNyBsZWdhY3ktdHJ1bmsKKzU0ODAgMjEwNzM4ODY2MTY2MTIyODUwZGRkNWRjM2ZlOGUxMjAxYzdjYzYyYiBsZWdhY3ktdHJ1bmsKKzU0ODEgNWQzZDI5NzA0NmQyYzcwMzE5YzJiMzBjNjZmNjgwZTQ1ZTg0YzRiNiBsZWdhY3ktdHJ1bmsKKzU0ODIgMjY3MTg0MmM3MmNmYzRkYzRmNGExZWRiYThjZWNmNmQ4NDA2MmI5NCBsZWdhY3ktdHJ1bmsKKzU0ODMgN2FlMzMyNDcyNjI5YzRhZjkxNWMyYmE4NWZlOThhMTI4MWQ3YTFjMCBsZWdhY3ktdHJ1bmsKKzU0ODQgNzc3NDQwMDM1ODEzMzk4MmU3NzZhNTlkNTkwNDRiMjEwYTM1ZTJjZiBsZWdhY3ktdHJ1bmsKKzU0ODUgMjczOTBiNTM2NjQwYzUxYjQ1NDBhZmFhOTQ1YWFiNWQwY2I0MzQ5OCBsZWdhY3ktdHJ1bmsKKzU0ODYgZDI5NWY0Yzk4YzhhNjQ2MGUzZGFmNjAyZTgxYmExYjRkOTY1YjdmZSBsZWdhY3ktdHJ1bmsKKzU0ODcgYzc2NzFjMzZjNzI1ZTY4NWIxMGJhM2U3Mzk3MjVjNzc3M2E2OTQxNCBsZWdhY3ktdHJ1bmsKKzU0ODcgZTYzZDgzZjgyNzU4NTNhYWFhM2QxOTcyY2I4NjU2NDUwNWU2NTU4MyBsZWdhY3ktdHJ1bmsKKzU0ODkgYzVkODUyNzM1ZTdmN2I0OTBlY2JjY2JjNjBmYjYzYTk3YTE0YjdjMyBsZWdhY3ktdHJ1bmsKKzU0OTAgODc4NDcyMjhiMTU4ZDk5NzFmYTlhYjNhMjVmZTNjMjI2NzIzMWRkOCBsZWdhY3ktdHJ1bmsKKzU0OTEgNTRhYTg3YjFjY2VlNDU5ZGQxZTEyOWVkZDQ5OWIzM2JkZDllZmM0ZCBsZWdhY3ktdHJ1bmsKKzU0OTIgMzkxMWQ0YTg5YWIwY2FkMzY4OTJkMzZiNzQyNWNlM2JkYmVmZTU4YSBsZWdhY3ktdHJ1bmsKKzU0OTMgNzRjOGZjZGM5N2RhYTYxYWFiMzRiNGI3Yzk0MDczODMwYjE4YmE1YiBsZWdhY3ktdHJ1bmsKKzU0OTQgZGM0YmVjMDM2NzgzZTY3MDJmZDkwMjY5MmRlMmM2YTFlZjRmYTBhOSBsZWdhY3ktdHJ1bmsKKzU0OTUgN2NkMWRhNDA2NGQ3ODQxNjkzMjJmZTQ4ZjFjY2ZhZTcwZTAzNzc3YSBsZWdhY3ktdHJ1bmsKKzU0OTYgMTQ3NTNjMzJlOGI0MmExMzJlYjE3M2Y3NTk5MzJkMzE3MDI4MWMxMyBsZWdhY3ktdHJ1bmsKKzU0OTcgNDA1YjQ3M2FhNGExMzVjNTBmMmVmZTgxOTY1Yjg3NzlhYmE4NGE1MiBsZWdhY3ktdHJ1bmsKKzU0OTggOWM0OWFjZTZiMWU3OGYxOTEwNjUzMTRmYWQ4MTY4MjI0Y2U2ZDRlNiBsZWdhY3ktdHJ1bmsKKzU0OTkgM2IzZTY4MDc1ODMzMmI4MDk3YTgyMmRlZjE3NWQ1MDY4YzY1MjY3NSBsZWdhY3ktdHJ1bmsKKzU1MDAgNDdkOGJjYWJkMTc2ZjQyM2VhMmQyYTdkNmU0OThlYjRmZDI5ZjI3OCBsZWdhY3ktdHJ1bmsKKzU1MDEgYjgzOGQyYjk1MjAxMmZmMWNmYjZmNjU0ODFjOGM2MDJiNDFkYmM2OSBsZWdhY3ktdHJ1bmsKKzU1MDIgY2U1ZjBiODNmN2U5ZjRlMGU2NjcwZjM4OGFkNTBhNjJmOTBiMjY5NyBsZWdhY3ktdHJ1bmsKKzU1MDMgYmM4ZWVmZmQ0ZDA2ODc2ZDJiNzI4ZmUwMzFjODk3N2EzZTVkZTE2OCBsZWdhY3ktdHJ1bmsKKzU1MDQgZjhhYmMwMzdiOTRmOGNkZTQ5MWZiNTllNGFjYjc0MDdhOWU2ZGIwNyBsZWdhY3ktdHJ1bmsKKzU1MDUgNDNlYTJjOGIzMjg2ZTg4NzgyNDgyNzBlMTBmMzJlNWE0MmM0NGQwYiBsZWdhY3ktdHJ1bmsKKzU1MDYgMDE2ZjM2NjJlZjk4MzhiYmM4MGJiYjY1ZWJkNGMwOGMzMzVjMTQyNyBsZWdhY3ktdHJ1bmsKKzU1MDcgZGE2ZGJkZmQ1MWRiMWJjY2U3MWU0MjBjMDZhMTE5OGM4OWY3YzA0YiBsZWdhY3ktdHJ1bmsKKzU1MDggNmI5YzU3NWMwY2JhMDM4MjRkMzQxNmQyNWNkNjVkNjJjODlkZThjOCBsZWdhY3ktdHJ1bmsKKzU1MDkgNmFmMGZiYzg1NTNhYjZiMDU2NDgwZGM3MGI1ZjZlMGNkYzQxNjRmMCBsZWdhY3ktdHJ1bmsKKzU1MTAgNDU4MWEwZjAzNTNlYWYzMGY4ODVkNTk4OTYwODFmMmRmOGEwZmI2MCBsZWdhY3ktdHJ1bmsKKzU1MTEgN2U3YmIwMGEwYTJlMjVkOTVhZmYyMGQzMTUxZGFiNDJiMzM0MWQ1NyBsZWdhY3ktdHJ1bmsKKzU1MTIgYmRhNTRlYTIzYTgwY2MyZTgwYzE5MGJiNWNkOTg4YmU1NjMxOWNmYyBsZWdhY3ktdHJ1bmsKKzU1MTMgOTQ4MzViM2VkZjNlMDU5ZDE3ZWQ2N2Q3NWE3OWU5YTFlMDNiNGM4YiBsZWdhY3ktdHJ1bmsKKzU1MTQgNjVlYTc4ODc1YmM4MTI5MDVmOWI5MmQ3YzlkMDQ2NzFjMDgzMTQzYSBsZWdhY3ktdHJ1bmsKKzU1MTUgMDFiYzA2YzJlNDdkM2JmY2E4YWIxMDhlNTZhNzFmOWQyOWZlMTBiYSBsZWdhY3ktdHJ1bmsKKzU1MTYgNmM2OTRlYWQxNjY4NzUzOTgzZTI0ZWYyMTRjMjBjNmE4OTlmZTQ1MCBsZWdhY3ktdHJ1bmsKKzU1MTcgMmNkNGNjMDY1YzFmNjM2NmRlMzEwMGMxMGViY2M0OTg4NTdjNDg3YiBsZWdhY3ktdHJ1bmsKKzU1MTggYTk0NmU0Y2M2ZDViMDE3MGMwZjUzZmVjYmU5MmYwNGJiMjM1NzRkZSBsZWdhY3ktdHJ1bmsKKzU1MTkgZmQ1MDk4NmYzNWU1Y2NkYTM4NjJkNWY3ZjQ4MDVlMGRmMDAwNTljNyBsZWdhY3ktdHJ1bmsKKzU1MjAgNWI5MjhiNjk1ZmE0Zjc3NTlkY2Q5ZDZlMDk5NDBlM2QzN2RmNzdhYiBsZWdhY3ktdHJ1bmsKKzU1MjEgMmNiMTQxNjAxMGIzMzYxNjMxYjM4ZTdmYTUwZWE2YTU5ODRiMmQzMCBsZWdhY3ktdHJ1bmsKKzU1MjIgZWQwODc0Mzk4NDMzZGE4Zjk0YjRhYTZmYjM0MDE5Mjc5NmQxZDkwZSBsZWdhY3ktdHJ1bmsKKzU1MjMgN2UyYzA0ZTZmN2U3MTcwYmE3ZTEyYjY0YmE0ZmM2NDMyZjM2MDc5YSBsZWdhY3ktdHJ1bmsKKzU1MjQgMjRhZjhlYWI3Yjc2M2JiNDlkMjc0MDM4ZmFlY2ZmMzNlMDAwYzU3MyBsZWdhY3ktdHJ1bmsKKzU1MjUgZDk0YjUwMGNiOTg2MzA2ODMxNzZlM2IyN2VlNzRlNzBmNTE4YjAyZiBsZWdhY3ktdHJ1bmsKKzU1MjYgYzEyMDMwZmJiNWI2MGZiNWI5NzU2OGQ5MGRmYmZhNDYxNGQ2ZTQ1NCBsZWdhY3ktdHJ1bmsKKzU1MjcgNjYwZTZmMzU5OTFjYmE0N2VkOTczY2ZmOTkyNDQxNmE5NWNlMzJkYyBsZWdhY3ktdHJ1bmsKKzU1MjggZGQ1NGVlZmRjMmM5N2YwNWQ0OWViNzQzZDQ2N2Q4MGEzYWM0OTM3MSBsZWdhY3ktdHJ1bmsKKzU1MjkgOGQ1MTc5Mjc3ODU4YmU5OTA3YTA0MzJlNmIwNDBlNjM2YzBiN2ZiMiBsZWdhY3ktdHJ1bmsKKzU1MzAgYjMzM2YxNmZiNDE5NmU5M2RlZWY0ZjlhOGMwNTZmMDhjMmEwNWE5MyBsZWdhY3ktdHJ1bmsKKzU1MzEgZGY3ZGZhYzMwYzNlM2E5MThjZTcyYjJiY2RmMjZiNTczMjM3YmZhMCBsZWdhY3ktdHJ1bmsKKzU1MzIgYTU3NjhlNGVlMDQ1MzI0MGNkZmIxYjA0MzIyNTJmNTZhNDVkMGNjNiBsZWdhY3ktdHJ1bmsKKzU1MzMgMTM0YzZjMmQxYWJmOWM5NWQ5MGFhZjVlZThjMTY1MzNjZWJkMzg0YSBsZWdhY3ktdHJ1bmsKKzU1MzQgNmVjODIwZGIyZmZhZjY2YWFjMTU2YmVmYzNlMTY2OTk1ZDJlYTFmMCBsZWdhY3ktdHJ1bmsKKzU1MzUgMzFjNTJhMGEzNzJjMGVlYzc1Y2M0YjcyMjRhNTQ0ZDFmOTc4MTJkZSBsZWdhY3ktdHJ1bmsKKzU1MzYgMzI4YWM3NGY2Y2E2OTgzNGU5ZTY1OTc5ODliMmFlODNhZWVjNmZhOCBsZWdhY3ktdHJ1bmsKKzU1MzcgMjQ2ZDU0MjIxMjRmOTk5Y2QxOGNlMTliOTFiNmU4Y2ZiZjA1ZTNlNSBsZWdhY3ktdHJ1bmsKKzU1MzggZmJiOGVkZGM5MzA5ZmIxZTg4MjA2ZTkyOGI1M2VhZWY1ZjAyNzUxOSBsZWdhY3ktdHJ1bmsKKzU1MzkgZDE0Y2VmMTRmYmYyN2U3MGI4MmFmMThiMmI0NDY0MzI5NWE1YmJkMSBsZWdhY3ktdHJ1bmsKKzU1NDAgZDZiMTMwZmE5MWI2NWQzOWYwM2VlMjFhYTBkNzE1OGNiNzRlZTNiNyBsZWdhY3ktdHJ1bmsKKzU1NDEgOTcxZTVjYTE4YmQxZDg0YWUzNmU5NmJlOTM4NTEwZTZjNDQ3NWY2MCBsZWdhY3ktdHJ1bmsKKzU1NDIgZTQyOWE3ZTcxZTBjY2QyMmQxMTFmNmI5YjczOTVhMmE4MTRjZDJlYSBsZWdhY3ktdHJ1bmsKKzU1NDMgNjk5Y2Y4Yjk0ZjgwMmU4N2ZlODNmNzBmYzYxYzM1NTBlZjI5MDRjNyBsZWdhY3ktdHJ1bmsKKzU1NDQgNzIyNmRkMzE3NTVjNzAzYjAwZDBiMDA4Y2Y4YjUyYTA3ZTY1Zjg5ZiBsZWdhY3ktdHJ1bmsKKzU1NDUgZTNmYmNlZDFiYzA5YjMxOGU1NjJjOTM2NGYzZmQyMTQzOGE5MTY3YSBsZWdhY3ktdHJ1bmsKKzU1NDYgYmZhNDI3ZGE1ODBlY2RmMzRiNDRiZmIxZTYwMTJiYjk0ZjVlYWI2MCBsZWdhY3ktdHJ1bmsKKzU1NDcgZGI4OWFhYjQxNWExYjdiYmU2YzM0NTU1NzQ5NDdlYzg0Mjg3MzNlZiBsZWdhY3ktdHJ1bmsKKzU1NDggZWFkYTI0ODY3NmRlZjYzYjgwN2Y2MDZjODIwZTIzNDQ1MjNkYzNiOCBsZWdhY3ktdHJ1bmsKKzU1NDkgODdmZWEyNjFhMjYzZTdjZjFmOWViNDVjOGI0NmYxNWI2NzQzZDUxMiBsZWdhY3ktdHJ1bmsKKzU1NTAgMDdjYjUwMTQxZDA3MDcyYWE1N2FhZTRlY2M1ZGIwMDlmZWYzNTM2NSBsZWdhY3ktdHJ1bmsKKzU1NTEgOTFjMWJiNzVlOTQ1Y2Y4Y2M5NmIyNzA5ODE3YjFiOTgxNTMyNzYwNCBsZWdhY3ktdHJ1bmsKKzU1NTIgYTdjOTdjNDM3MTkxZDQ0Y2NkMTMwZjdiODc5YjI0NjlkNGM3NDlmNSBsZWdhY3ktdHJ1bmsKKzU1NTMgZDdlZWE5MDEzZTczNjI4OGIzZGZhN2M0NzkwOTMxOGYzNDY1ZDQyZCBsZWdhY3ktdHJ1bmsKKzU1NTQgMzE2ODRjNWJiMTcyN2NjYjQ4NjYzMjY4YmQzYTMxYzUxZDZkMDA4NiBsZWdhY3ktdHJ1bmsKKzU1NTUgNzU5MzY5OTBhMzMwYzBhNDRlY2M4ZDVmNDczMzUzY2FhMjMxMjlmYiBsZWdhY3ktdHJ1bmsKKzU1NTYgZWY5YWM2ZGVmNzFkM2I2ZWM5Mzg5ZTI1MTZmN2UwNDgwNzhlZmRjMSBsZWdhY3ktdHJ1bmsKKzU1NTcgZmJmYTNkM2NhNGUwOTU2NmQzNGY2YmViYTEwMGI4ZDRmMjBiZmI0YiBsZWdhY3ktdHJ1bmsKKzU1NTggN2RkZmI2MjlhYzNmZTkwMzg1YTQ1ZWMwYWFhMDhiNGFjMDZjYzQzZSBsZWdhY3ktdHJ1bmsKKzU1NTkgMWZmMTI2MTlhMTRjN2RjZmRkMjNlMTM3MDg1MzNmYTQ5YjVlMjhlNCBsZWdhY3ktdHJ1bmsKKzU1NjAgYjNhODAxM2NiNGZhMzY3NTUzMmU2NTUxODUzOTRjOWIwZTQxYTdhYiBsZWdhY3ktdHJ1bmsKKzU1NjEgNWExZmJkMjFmYzJhNWE1Zjg0NjFkMjFkMTFmYzViMTdkYjVjZjQ5YyBsZWdhY3ktdHJ1bmsKKzU1NjIgYzFkNzdkNzRmZTM1MDY4ZmRiYzM2ZjRjN2Y4Y2VmN2JlNDJhZDNmOSBsZWdhY3ktdHJ1bmsKKzU1NjMgODQxMDRkNmI0YWU3ZWRmMDA1NGJjNjQxNmJhOWI3OTFjMGU2ZGI4MCBsZWdhY3ktdHJ1bmsKKzU1NjQgOGFhNjkxOGE4OGM2YjE1NDFjN2QwY2Q2ZjQ5NjBjNDQ3ODhmZTI5NCBsZWdhY3ktdHJ1bmsKKzU1NjUgNGM4M2Y1NjliNDM0NTkzYjM4NTUzMjQwZjUxNzY0YmU2MjlhZjZkMiBsZWdhY3ktdHJ1bmsKKzU1NjYgZDI0OTExMWQ0Y2NjZmY2ODQxZmU4ODBiZmFmNDNiYjQzOTk1YjZkOSBsZWdhY3ktdHJ1bmsKKzU1NjcgMTcxZWVmNjlhMmNkMDg3ZjYzMTI1YjI4YjMzYjZiOTVmNTljNzdmMyBsZWdhY3ktdHJ1bmsKKzU1NjggMjM3YzNiMmE2MTg3MWIwNzU3YjU4ZTgyZGE4NGRkMzRjZGNiNWZhNCBsZWdhY3ktdHJ1bmsKKzU1NjkgNjkyNzE1YWJiZDBiYmVlZjZmMWMzYTQ3MmM3NmM5MGE1NzA5MmI5OCBsZWdhY3ktdHJ1bmsKKzU1NzAgZTUxZTE3YjJkODhiMTVkOWE5NTk4NmViMTNhZjhhNjJkNmQxNzk4YSBsZWdhY3ktdHJ1bmsKKzU1NzEgNTZkYmEwMzdiOGQ2YzY1NjQ1YzFmODliYzc4ZTIxYjFjZDBkZDE0MSBsZWdhY3ktdHJ1bmsKKzU1NzIgNDM4Zjg4YjU1MTU0YWQ0YzQyYzYwNTE2NzQ5ODI0MzE5M2Y1NDVjZCBsZWdhY3ktdHJ1bmsKKzU1NzMgYzQxYThlNTAxOTczNDNjOTc3MThmNjM2YTcwNTE2YTZhN2ZjZGEyYiBsZWdhY3ktdHJ1bmsKKzU1NzQgM2RjOWZmM2FiZjM2MTYzMmRlY2RhMTlhNjE3NjRlZDFiOGY1YjE5OCBsZWdhY3ktdHJ1bmsKKzU1NzUgYThmY2M1MTFhODlhOGYzN2E5MzMyYzc3ZDkyNzhlNWExYjExZDFjNCBsZWdhY3ktdHJ1bmsKKzU1NzYgMTQxMjNlMDhlODg3ZTQyODNhZDY0ODhhNzg0NjRhMDVkNzBmYTJkNSBsZWdhY3ktdHJ1bmsKKzU1NzcgNWMwYTdmNzgzNmZiMWRiZDQwNWJkMTFhMDc0ODRmYWQxZmY5ODUxMSBsZWdhY3ktdHJ1bmsKKzU1NzggOWY3NjE4NWM5NjkzN2NmNTVjZGE4ZmViN2U2NTVmODIyNTQzYTUzYyBsZWdhY3ktdHJ1bmsKKzU1NzkgMzZmNGQ1NDY5OTE1MzNjOTRhNDAyNmEwMzU1NzgyMjcxYmUwNmJmZSBsZWdhY3ktdHJ1bmsKKzU1ODAgYWY4MjI5MTEzNWJkMDZjMGY4MzViNTdmNDBjNDVkN2NmMTAxNWE2NyBsZWdhY3ktdHJ1bmsKKzU1ODEgM2FhYjkyNWViZmIwMzRlMDVjYjc5YzAxZjU3NDU1NWY3ZjZhZjhiNyBsZWdhY3ktdHJ1bmsKKzU1ODIgOTQ5N2NkY2RiNmFhNTFiNGYxYWZlNWJlYTg4NjgzZTYzMDFkMGEyMCBsZWdhY3ktdHJ1bmsKKzU1ODMgZGIxMzlhNDExMmYzMmY1MzhjMzUwZDlkYWNjNjVmOTQzNDA0MDY1NyBsZWdhY3ktdHJ1bmsKKzU1ODQgMDc3Mzk5Y2M4MmU4Y2ViMjg4YjAwNTU3MjU4YjdhMjMwZGY0Zjc4NyBsZWdhY3ktdHJ1bmsKKzU1ODUgZTQ3NzA5NGE4Y2ExMDg4MjBmOGY0MzkwMmI2YzM3MGRjNDdmNDZiZCBsZWdhY3ktdHJ1bmsKKzU1ODYgMTA3MWQxNmM5MzBjMWQ4NjljZTE4ZGQwZWJhYTQxMzZmNDJiNDhhMyBsZWdhY3ktdHJ1bmsKKzU1ODcgNGExMmE1NDMxNzVkMGJhOWE5MzA2MGNhYjM4MDUxMDM1ODRjMzdmNSBsZWdhY3ktdHJ1bmsKKzU1ODggYzEwZjU1YjQ2YTExNTFiMWI5YmY2MGFhNTE4MDlmZDYzNjJmMGQzMyBsZWdhY3ktdHJ1bmsKKzU1ODkgMmNhYTNlMjgzNTY4ZDA3NWE0Y2QyMDY2OTc0ZTYwNDQxMjlmM2ExMyBsZWdhY3ktdHJ1bmsKKzU1OTAgOTM1NjJkZGUyMjRhYjdkMDk0ZTVjNzY1ODQ2YWU4YmVlNTcwYTJkNyBsZWdhY3ktdHJ1bmsKKzU1OTEgMTdmMzExZWEwYzlhMDdjNTViZDIwZTBiMzBkOWYxOWI2NjJlMTdhZSBsZWdhY3ktdHJ1bmsKKzU1OTIgOTA1NjZjOWMxODlmMzJkMWI3OTQ3Yzk4M2VhNTg2YmZmYWIyNTA5YSBsZWdhY3ktdHJ1bmsKKzU1OTMgZTkwNjQzZjMzYzY0YzEyYTYyODFjZmNkZDlhNWVhMzEyODllN2Y1NSBsZWdhY3ktdHJ1bmsKKzU1OTQgODcxMGQ3MTQ5YzZmMWJiZWUxNWIyNzk0MWVlYTMyMTRlM2NjMDE3ZiBsZWdhY3ktdHJ1bmsKKzU1OTUgMjdhMDc2OWRiOTIxOTMzNDBlNjc3YWVjZjkwYmJlYWI2ZDkyMDJmOSBsZWdhY3ktdHJ1bmsKKzU1OTYgZTgzNWEyMmIwYmRkZTk0ZmViYzAxYWMwNjczNWU2MWUyMDg5YjhhOCBsZWdhY3ktdHJ1bmsKKzU1OTcgZGNmMmEzN2U3M2Q5ZDM2ZjE4MWE3NGFhN2NiYTA4YWNmNWEzZDU1OCBsZWdhY3ktdHJ1bmsKKzU1OTggNzFiYjcxZTMwNmZlMmRjYjY2ZTk2NWUwZGQ4ZTc0NTkzODAwNzUzYyBsZWdhY3ktdHJ1bmsKKzU1OTkgNzBlZTRlM2NiM2Q4MzgyNjRjZTE0YTcwMGE5ZDA4MjE2M2RhMDViNiBsZWdhY3ktdHJ1bmsKKzU2MDAgNTkxMjg3YTIyZWU1OTZkZWMxYjFkNmJlMGJiZjhlNzZlZjYzYTQwZSBsZWdhY3ktdHJ1bmsKKzU2MDEgMjY3N2ZiYjExN2Q2MmI0NTFhZmNjNDk3NjY2ZjI4ZGUxMDU0MDRiNSBsZWdhY3ktdHJ1bmsKKzU2MDIgOTk5ZmNjZTQ5NmY4NDk1NDg5ODJjNGE1NDVjMDVmNmRiNjRiZWRkOSBsZWdhY3ktdHJ1bmsKKzU2MDMgMWI0YjhhNGZiNDYzMzQwMTcxMDg3NzNjY2I1MGQyNzg0Yzk0OTE5MiBsZWdhY3ktdHJ1bmsKKzU2MDQgYWRjYzkxNmI3NjE2ZDgwNzQ2YzFjMTJmMGU5YWMyYmFiMzUxZmViYSBsZWdhY3ktdHJ1bmsKKzU2MDUgZjFmMThjNTVkMTM2NDI0NTQyNjk2MmI5MGY3OWVhOTAxOGMyYzNlNCBsZWdhY3ktdHJ1bmsKKzU2MDYgZGYwN2YyODcxMWZkZjMyODk5ZmJhZmQ3MzUyOGFhOTZlM2E1NDI0ZSBsZWdhY3ktdHJ1bmsKKzU2MDcgY2QzODhjYzliYTk4ZGNiODlmYTgwMmUzYTFlOTlkNGMwNzY5YWJmNiBsZWdhY3ktdHJ1bmsKKzU2MDggM2Y4YTczMzgwYzRiY2NkMTg5MDg0YWU0MDNjMWIwN2FhOTY2YmYwYSBsZWdhY3ktdHJ1bmsKKzU2MDkgMzkzYjZkODFiMTI2YjI3NGQ2N2RkOWQ2MWVmYjUwOTlhMDk5MzBiMSBsZWdhY3ktdHJ1bmsKKzU2MTAgN2M1Zjk0ZjU2Zjc5MzU4NjllY2RiZmY2NTRlYWUyZmVkOTUxMjgzMyBsZWdhY3ktdHJ1bmsKKzU2MTEgZmJmNThkMjc4ZDY0NWQwYTUyN2JlOThlNjU2ZTRjNGE0ZDhkMmVlMSBsZWdhY3ktdHJ1bmsKKzU2MTIgNDNmOGRiMjNlZjE1ZTIwY2I1NjU5ZGEwZjAyMzYzYjVmM2YzY2E2ZiBsZWdhY3ktdHJ1bmsKKzU2MTMgYTk1ZmY4Njc1NzE4MTBlNmUyNTRhY2Y2NmRmYmRkMmZiNGFiMWQyMCBsZWdhY3ktdHJ1bmsKKzU2MTQgNzBhOTMyN2Y2YzRjNmIyYjM1OThiNWFkNWZjMTI2N2ZjMmRmNWJhMyBsZWdhY3ktdHJ1bmsKKzU2MTUgNDhkYjVkOWEyNzk0MWMyZTE4Nzk0MTBjN2FmYzU5MGVkZTI5MzdmMyBsZWdhY3ktdHJ1bmsKKzU2MTYgYmFkOTdiNDA1MTY2NmEyZGYyZjYxYWRlMzFlYTIwNTM2MDFmNjE1YSBsZWdhY3ktdHJ1bmsKKzU2MTcgNDkwYmU4NjVhYTBkNTc5ZWVkNDRhNmFlODY5YTNlNTgxZTgxOWU5ZCBsZWdhY3ktdHJ1bmsKKzU2MTggYWNmZjc5ZGQxNGI3NTA3ZjZkY2JhNDMwNzU5M2I1NzU2NzJhZWUyNiBsZWdhY3ktdHJ1bmsKKzU2MTkgYTM2ZTMwMjQwZDA2ZjRkZjI2N2E5YTM1MjRmMGIzMjZjYzVmYzcyYyBsZWdhY3ktdHJ1bmsKKzU2MjAgOWE4OTYwODZkM2MzNzA0MTQwZGNjNWIwMDcwMWIyZjkwMzM3YzJhNCBsZWdhY3ktdHJ1bmsKKzU2MjEgY2Q3ZWFhNjJjYzMxYjdmNjYzNjQzY2MzM2VhNTM3YTA1MGZkOGU1ZiBsZWdhY3ktdHJ1bmsKKzU2MjIgZDZkZDUwZmUxZWNhYjc1NDcyYzM0ZDE1MDRlZWUyYjYzZWNkYzU2OCBsZWdhY3ktdHJ1bmsKKzU2MjMgOTMxNTNkNWMzMzNkMDdkMTFiNTE0NTI5OTI2YWM1ZTY5ZGE0N2IwYyBsZWdhY3ktdHJ1bmsKKzU2MjQgNDY5MzY5YWQyZjJmYmE0YzhlMDZjYjM5ZGMzYjJhYTIyMjRhMzZmNiBsZWdhY3ktdHJ1bmsKKzU2MjUgNTk2MWI3NmQ3ODk5NmUzNWY1ZDRjYjFmZjM3OTM3N2Y0YTZmMzBhMSBsZWdhY3ktdHJ1bmsKKzU2MjYgNGNiMTI2MDRkYTlkOWVhOGE0ZTZjOWEwNTlmMDk2ZTUwOTk4MDdkMSBsZWdhY3ktdHJ1bmsKKzU2MjcgZmQ0ZjAwOGQ3NzQzYjUxZWY5N2Q1MDZjN2ZhMDc2NjdiZWY0OTlmNCBsZWdhY3ktdHJ1bmsKKzU2MjggMjIwNWRjNDk4YWRmYmViMGVmNWE5YThjNDMwNmIyOGMxN2E3MTY3ZSBsZWdhY3ktdHJ1bmsKKzU2MjkgNDBjNjhlYmQ1ODkxZDliNGY3MmJlMzE0NjhjYjRhYTNkYzQ2NGZjOSBsZWdhY3ktdHJ1bmsKKzU2MzAgMzE3MmMzOWNkYWQ4MDg3ZDVhNzExOGE3OWJjOWJiZjA4YzhhNjQyNiBsZWdhY3ktdHJ1bmsKKzU2MzEgOTVlODBiNmI4ZjJlNDRjZmJhMWRkYzcyNjdhNjMyOWIyNDY5NDZlMSBsZWdhY3ktdHJ1bmsKKzU2MzIgOTJlMTQ1Zjg0MTRlOTYxNjUxMjljMzU1ODFlMzJjYTczYjM5ZGVmOCBsZWdhY3ktdHJ1bmsKKzU2MzMgOTM4YzQzM2M4NzZhM2Q2OTViMWQwN2Q3ODNkNjgxMWJmN2U4NDBkYSBsZWdhY3ktdHJ1bmsKKzU2MzQgZmU5Zjk1YjA0MmZjOGNmMDYxOTUzMTBkYzQ0ZWJhNzEyZmJhYjliNyBsZWdhY3ktdHJ1bmsKKzU2MzUgOTQ4OWEzNzJjNjg2MmExOTIwNTQyZTIyOTEyNTQ0MDI3NjA3NTQwZCBsZWdhY3ktdHJ1bmsKKzU2MzYgZmZmOGE3NTBlN2Y2M2RjMGEwMWJiMzkzZjI1YjA0ZDBhYTMwOTYwYyBsZWdhY3ktdHJ1bmsKKzU2MzcgYjliOWU2NjI4YjM1MzUzMDFjNWM0ODIwZmI5Y2FkNjQ1M2FmYWFhNCBsZWdhY3ktdHJ1bmsKKzU2MzggMTMxNDZjYjZmNjdjNjFkZTI1MmNiNmEyMjM4NjVkNmQ3NGNjNmYxYiBsZWdhY3ktdHJ1bmsKKzU2MzkgNmJjY2ZjMGVkNjk1OTQzOTQ4NTBkMWZkMDg4MTUyNDA1OTE1OGRiMSBsZWdhY3ktdHJ1bmsKKzU2NDAgNmQzNGFkZTJlOWQ0NTI3MWIwZmM2NWZiNjBmM2Y0ZTEyYWYwZjM3OCBsZWdhY3ktdHJ1bmsKKzU2NDEgZjc3ODk5NDViOGRlZTZjZDc3ZTQxZTE4YzcwNTUyN2U5YzllMWZlNCBsZWdhY3ktdHJ1bmsKKzU2NDIgNDliNzg3YjliZmFlMjZjZGE1NmU2NDNhZGQ0ZGQyY2ZhZWZlNGI5YyBsZWdhY3ktdHJ1bmsKKzU2NDMgMDZlMzQwZjg1OTYxZDFkZjIwNWU1ZjQ1ZDg4Y2NiNzRhNzAzNWRjNyBsZWdhY3ktdHJ1bmsKKzU2NDQgY2Y2YzBjNWRjNzNmNzg2M2YwNzdjMGRjMDQ4MzM5MzUxYTQwZmIxOCBsZWdhY3ktdHJ1bmsKKzU2NDUgM2UxZTVmNjhmZDFjY2EyMWExNWNlMTBjYjUwMWJjZDRhMTY2YzEwYyBsZWdhY3ktdHJ1bmsKKzU2NDYgMmE0ZDEzMDM3M2RiMjE5ODg2ZWRjOTgzNzZjMjI1NDNkYTc1M2U0MSBsZWdhY3ktdHJ1bmsKKzU2NDcgYTQyMDEyYzE4OGZkMzg3OWI2NmJiOTRjNDkyNGQ5ZjNhOWFjN2JmNSBsZWdhY3ktdHJ1bmsKKzU2NDggMjRiNTNjYjMxNjgwOTQ1MTBkY2ZjYzMwNzViNGYxYTUyMzE4MTZiZiBsZWdhY3ktdHJ1bmsKKzU2NDkgOGYzZjI1YTgzN2IzODE3ZGJhOWQzYTI3YmExYTkzMWY3ZTQ1NWYyNiBsZWdhY3ktdHJ1bmsKKzU2NTAgNjFjYTE5YTMwMDBmZWMxMjg4YWZiNTk2ZmIzZjJjYjQ5ZGI2MzJhNyBsZWdhY3ktdHJ1bmsKKzU2NTEgN2IyZjY5NTQwNWJhZmJmYmZkOGFjZTllMDM3NWY1ZTQwZDQzNmI2MCBsZWdhY3ktdHJ1bmsKKzU2NTIgYzA1NmY2ODVjMDgxM2M4ZTQ1M2E1Yzk3NDU0NDc3Y2M0Njk0ODhkZCBsZWdhY3ktdHJ1bmsKKzU2NTMgODMwMWQ1NWViNjRiZTI2OGRjNTdlOTE0ODBjNWI4Y2RiMzE1YWRkNCBsZWdhY3ktdHJ1bmsKKzU2NTQgY2MzOWQ2MmIyN2ZkMTE1OTAyYzU2NDBiNjJkMTFlMzQ2ZTY3OWRkMiBsZWdhY3ktdHJ1bmsKKzU2NTUgZjQ3MmI3ZWMyNWM1ODNjNjJiODg5MWRlMjZlOTIzYmQ4NTZiZTdkYyBsZWdhY3ktdHJ1bmsKKzU2NTYgMDJjOGY3NGQwOGRjZDg0ZDM2MjBmM2JlMjAxNTBiZjViYTUyM2E5ZiBsZWdhY3ktdHJ1bmsKKzU2NTcgMjhkZmM0NjcxODVmYzQyNTgzOGY4ZGI1OTc1Yjk1OWU3ZGRjMGNkMCBsZWdhY3ktdHJ1bmsKKzU2NTggZjlmZDUxMjI2ODBmMzMzZDNjOTczOWVhOGVmZWQzMzA5MTc0ZjdjMyBsZWdhY3ktdHJ1bmsKKzU2NTkgMmFhNzk4MzdhZWU1NmVlYTc2OGYxNWNiNTU5NzQyNTRhODAzOWYwYSBsZWdhY3ktdHJ1bmsKKzU2NjAgODIyNGYwYmM1Y2RhNDk0MmVhY2FiYTA0MTA5MmQ3ZTgwNzg1YmRhOSBsZWdhY3ktdHJ1bmsKKzU2NjEgMDVhZWI5MWUzYjkwZDBkMzYxZjM4NWEzODM0ODRmMzI0Y2RlZTBmMyBsZWdhY3ktdHJ1bmsKKzU2NjIgNjExOTNjNjMyZjUxZTE5MTFhODcyZWI1NDEzMmRlYTdhZWM5MjUzNyBsZWdhY3ktdHJ1bmsKKzU2NjMgMTk1YWQ5ZmI0NTgzMmM3OWEzMmMwOWQzNTc4OTU0MGQ1NjdiM2NhMiBsZWdhY3ktdHJ1bmsKKzU2NjQgNWQxNmVjYWU4ZWU3MTExODFkYTY4YTE2MzBjODRkY2ViMGM1YmFhMCBsZWdhY3ktdHJ1bmsKKzU2NjUgMjFjZDUwYTRhM2Y3NjdhOTNmMDhkOWE0Yjc4OWE5M2FiNTlhNTI4NyBsZWdhY3ktdHJ1bmsKKzU2NjYgODg0MWE0ZDVjZDRiZWI4ZmNhM2Q4NmE3NTI0NmZjZGUxNWY1YmZmNCBsZWdhY3ktdHJ1bmsKKzU2NjcgOGY1YWIxYTZjOTE0MmViYTQ5ZDA4MzYzYzlmOGU0Y2EyYzcwYmYyNSBsZWdhY3ktdHJ1bmsKKzU2NjggMTliNThjZTc5NGM5MDI2Nzc2ODdiN2U2OTA1MGYyYmZjMWM3MDdkOSBsZWdhY3ktdHJ1bmsKKzU2NjkgNjQ5MWJkMmJiZGVmZjY4NTllMjU0ODFmZDEzNzQzOTQ2YmQ2ZDAwZCBsZWdhY3ktdHJ1bmsKKzU2NzAgNDZkZjY3MmM3YzI3MGRhMzYwYjU3ZjAwNzIwZTRjYjU1ZDBiMWYyZSBsZWdhY3ktdHJ1bmsKKzU2NzEgZDVlNzZhOTViNTY2NWM5MDkxYjU1Y2FiZTBkZjJhNTVkYTU2Yjc1NSBsZWdhY3ktdHJ1bmsKKzU2NzIgM2QxMjJmMDJlNjQ5ODcyNjk2YmY4NDkxMjg5M2VkOTA2MTEwY2NkNSBsZWdhY3ktdHJ1bmsKKzU2NzMgZGYyZjI1MmRjZDI5ZGRlN2ZmMjRhZWNhYmQzMzdiMWUwNTMxOGY2YyBsZWdhY3ktdHJ1bmsKKzU2NzQgMGVkNWNkOGRmNTFmOTgxNjE5MTRkYTA5ZmU5YWJjMDUzYWYyYTJiMiBsZWdhY3ktdHJ1bmsKKzU2NzUgYTIyN2RjZTQ4NDUxN2RhNjE1MGEwYTk0YTc3MDQ3MDNhNjlmOWFjNCBsZWdhY3ktdHJ1bmsKKzU2NzYgMmI1Yzg3MzgxMzBjZjk1MjJmMWZiZjRhZGJhODI1MGFmZjA5YzZmZSBsZWdhY3ktdHJ1bmsKKzU2NzcgY2RlYmVlNGEzZTNlODcxYTdlNmY1ZmU2YzExOTRlZDhkZGNjYTAzNSBsZWdhY3ktdHJ1bmsKKzU2NzggOThlMmNhZDQ4NTdmMWQyYmQ1Mzk5ZGEzN2I4ZDJmOGFkMjA5ZTk3NCBsZWdhY3ktdHJ1bmsKKzU2NzkgYzdjZGQyMmE0ODUzYWQ4YmEwMDlhMWZkZjc1ZmM1MmYyMTc3OWQyYSBsZWdhY3ktdHJ1bmsKKzU2ODAgMjFkNGEwN2IxODc1YjFhZGJjNzBiYTZkMGNkZjU1NTdhNGMwZDU2MSBsZWdhY3ktdHJ1bmsKKzU2ODEgZmZlMDMyODM2OTM3MzczNTA2OWI0NDZmYmM4OGNjMzg3MmNmODMwOCBsZWdhY3ktdHJ1bmsKKzU2ODIgM2IyYmU4MTFhNjZhYWE2YmZkZjg1ZGMzN2ZjNjJlODBiNmYwODllOSBsZWdhY3ktdHJ1bmsKKzU2ODMgZDAwYTc5ZWJiMDI3MzQ4Y2RkZjVlMjU0OWI0ZWRjNmM3M2M3ZDMxNyBsZWdhY3ktdHJ1bmsKKzU2ODQgODAxMjY1Yjg2MTY0MDI0NDRhZDc3OWZiZWI1NjYzYzkxZGMyZTE3ZSBsZWdhY3ktdHJ1bmsKKzU2ODQgN2Q3NDNjODY1YTlhYTZiZGU4YjYwM2UzMmUwNTQyMDMxYmJhM2MzMyBsZWdhY3ktdHJ1bmsKKzU2ODYgZTQ1ZjNkMjYyYWU0YTkyM2VkOGM0MGYwZGY5OWRmOTZjZTBmNDNmOCBsZWdhY3ktdHJ1bmsKKzU2ODcgZjFjYzI0N2ZmZjEzN2Q5NGRiODEyZTllY2NjNmJiYzhhZTY4Njk0ZCBsZWdhY3ktdHJ1bmsKKzU2ODggNzhlMTk1M2ZjOWIyZjMzNDUzNjAyYmIyZGU4N2IwNWNjYzQ2NTc2YyBsZWdhY3ktdHJ1bmsKKzU2ODkgMGYzOGNlYzU2NTM5MWU1MzBlYTRmODkyMDNkOGU5ZTA3OTZmOWY4ZCBsZWdhY3ktdHJ1bmsKKzU2OTAgZTc0MTdhNTY4NTg2YWIzOTJkMWE2NDk3MzNmYTM2ZjVlYzEwNDkwMyBsZWdhY3ktdHJ1bmsKKzU2OTEgMmZiMzk4YWIzZTZhYjAyODNkOWUwZDczZmIzYWQ1ZjcwOTEzMjk2YiBsZWdhY3ktdHJ1bmsKKzU2OTIgZTU1NGE2MWE4NDY5NGZiMTc3MDg4MTBkN2NkNTg2OWRlYTE1NTQ0MCBsZWdhY3ktdHJ1bmsKKzU2OTMgOGMwYTUxODBmYTM2ZWFmMjRlY2VjNTQzZTA5MWQ5N2NiMGQ2YmUyYyBsZWdhY3ktdHJ1bmsKKzU2OTQgZWZiOTcxNDI5OTJlNDg5Nzg5NjhmYmFiZTBjMWNhNzE4ZmVjOWFkNCBsZWdhY3ktdHJ1bmsKKzU2OTUgZjRhNTlmZmUxYTVmNWMxYzgyMzUyOGNjYmI4YzAxZDZlMzI4ZWMxMiBsZWdhY3ktdHJ1bmsKKzU2OTYgZTMzN2JmM2NiNDNhZWEzODZlNjI1OTcyNGM1ZmE4NDM2M2Y0MjEzMSBsZWdhY3ktdHJ1bmsKKzU2OTcgMTE4YzA2M2RmNDUzYzJjMmYzZDY3NjAxNzM1MzgwNjA1ZGYzNzdjYyBsZWdhY3ktdHJ1bmsKKzU2OTggMWFjYzA0NDc4ZGMzMTBlOGM0MDUxZjMyMzdlNmU2ZmE5NDYzMTQxNCBsZWdhY3ktdHJ1bmsKKzU2OTkgZWE3ZWM0YTRjOGQyZjUzMGE2NzEwZjg3ZjI3YTM0NzMwNjBlYzgwMiBsZWdhY3ktdHJ1bmsKKzU3MDAgZmQ1NzNhYzc1OTQ3NDAzNTVmMDVjNDFjOTEyOWI3OGI2Njk0YzFlMSBsZWdhY3ktdHJ1bmsKKzU3MDEgYWFmZTdkNjM0OTg1MjdlZGY3ZDk2MTRiNzFmYWI4NDk0ZTkxNzkwNiBsZWdhY3ktdHJ1bmsKKzU3MDIgM2RmOWFiMDNiYWRmZmIyZWMyY2Y0Zjg2OWVmMmFiN2EzZDI3MjA5YSBsZWdhY3ktdHJ1bmsKKzU3MDMgNDYzYjI2ZmE0ZDdiNzU2Nzg1MGMxYjQ1MDZhY2E4NmE0ZDcxMzNlYSBsZWdhY3ktdHJ1bmsKKzU3MDQgNjJiYmZkZTQxYjE0NDNiYTY3NjlmYjg1NjEwZTFkNjE0MGJhNTIwMCBsZWdhY3ktdHJ1bmsKKzU3MDUgZDM1MTBmMTExOGI2Yjc3MmE5NGUxZmIwNDAzYTE5NDk3YzgzMDllNCBsZWdhY3ktdHJ1bmsKKzU3MDYgMjg1ZGJhNGUwZTUxNmM1MDc3YzBjMTRlYjlmY2RlMzIxNTU0MGQ2NSBsZWdhY3ktdHJ1bmsKKzU3MDcgZjdmZDg1YjMyYTdkODVlNDk2Y2U3ODlhYzQ0NTcyZTI5N2Y2YmI2MCBsZWdhY3ktdHJ1bmsKKzU3MDggZTkyNzg5YTk2MGEwMjcyYjJkMTQwYzI1NmZmMmM5MmZkZTRmMzllMSBsZWdhY3ktdHJ1bmsKKzU3MDkgMzEzNjM3Yzc3ZGFhMDNhMjk1Y2IzMTc3M2U0MGVmNjgwZWU3OGJjYSBsZWdhY3ktdHJ1bmsKKzU3MTAgNDA1ZGE1NTY2NjFkNjZhYTQ3OWVhZTY4ZWUyMzU2ZmFkYjViZDFmZSBsZWdhY3ktdHJ1bmsKKzU3MTEgMjg0MmZmYTUyMTI2MGRkNzU1NDM1MDZmYjZlNjliY2MwNGVlNWI3MSBsZWdhY3ktdHJ1bmsKKzU3MTIgMThiNjBkOGQ5ZTM1YTI2NGI0NmVhOGVhNzM0NTJjYjcxNWRhMTVkNSBsZWdhY3ktdHJ1bmsKKzU3MTMgN2IxYTZiYmEyNTgwNWIzOWEzYWRiNGE4MDU3ODRhMDkwMWY1NTAyNyBsZWdhY3ktdHJ1bmsKKzU3MTQgMjBkNzRmYTNiNTBiMWJmMDcyYWQxOGJmN2EyZWIxNzBiMDhmOWRhMSBsZWdhY3ktdHJ1bmsKKzU3MTUgNWUxMDFlYWQxZTY5OTA5NTI0ZmI1MGQ3NDVhOTQzOTc3Y2UzYmExNSBsZWdhY3ktdHJ1bmsKKzU3MTYgMWNmNmUxMDUyMmUwOTE1NjAxZTA2MDQ4ZGE4NWI4MjgwNTFhMmRjZCBsZWdhY3ktdHJ1bmsKKzU3MTcgZWQwZDE0OGZjMDVjODc5Nzg2YWM0ZDZiN2RkYzI5NzQxNjUwZDRjOSBsZWdhY3ktdHJ1bmsKKzU3MTggMWEzOWQ0MDdiNGQzOTAyOWQzMTBlZjc5ODI0MDM1OTM0MzQ3OWI2MSBsZWdhY3ktdHJ1bmsKKzU3MTkgNDY3ZTBmMmQ2NzhhMTFmNDMxYjNlNmM3M2ZmZTc5MThjNGNhNGRjNCBsZWdhY3ktdHJ1bmsKKzU3MjAgZjg5Y2RkYTc0MDVhYzRjNzFkZjIyYWQ2ZTczMTU0MGM4YTM0NzNlOCBsZWdhY3ktdHJ1bmsKKzU3MjEgY2M1NDc0MjIxYzhjYjFhNjAyMWMyYmRiMTNkOWIxN2YxNDRkNTNlMCBsZWdhY3ktdHJ1bmsKKzU3MjIgMzMzMTBjYjZhNWQ3NjgzNDIwOThhMWY1NjE0Mzg5OGRjZDUwZjM4MCBsZWdhY3ktdHJ1bmsKKzU3MjMgYTZiMDcwNDEwNmM4Y2ZkNjUxOGQyZGU5MTdkYmNhZDQ0Mzk2MzMzZSBsZWdhY3ktdHJ1bmsKKzU3MjQgYmFkN2Y1NmM4M2IyYjYyYTE4ZWVkMTE2Yjg1Zjg2NjJjOGY5NmQ4ZSBsZWdhY3ktdHJ1bmsKKzU3MjUgNmU0OGZhYjY5OTBmMzE0ZmI3NjE0NTViM2ZmMjUyNjFjMDZkNjg4NSBsZWdhY3ktdHJ1bmsKKzU3MjYgZGIxMWEyYmZlYTY2ZGE0M2IwNjM2YTIwZTYxZjg2YmFmYmVhNzQ0YiBsZWdhY3ktdHJ1bmsKKzU3MjcgYjFjYTY1OTcxZTM2ZmFhNjY4NWVkNjEzYWQyMTNmYTE1YWFjODhiZiBsZWdhY3ktdHJ1bmsKKzU3MjggNGY0MDgzYTI2YmYyMjMzOTAxNTU3MTdmZDkzODEwNDc0NjA5NmE1YyBsZWdhY3ktdHJ1bmsKKzU3MjkgYmZiNjNiNDVmZjBmNjc3YWMxN2EwNjM5NmRkYWFiNzg0YzYwNmRiMSBsZWdhY3ktdHJ1bmsKKzU3MzAgOGM1OGFiN2FhNzFlZjEwMWYzMzNmNWQzODI5ODhmMzI3NDUyOTdmMCBsZWdhY3ktdHJ1bmsKKzU3MzEgMmMxZTNlODc1MTA5OTZmYjAzYmY2M2U3NjJlMWVlMGRhYzVhZTQzMyBsZWdhY3ktdHJ1bmsKKzU3MzIgMmY4MzdkODI0MTIwZDg5MmNkZjg4YjgxMmU4ODkzYzE5MzY3MzFmYiBsZWdhY3ktdHJ1bmsKKzU3MzMgMTU5Nzc0YWYyZWRlNjZjMGMwOTIyOGIzNTc2NmE5YWUxYmIwYTZmNCBsZWdhY3ktdHJ1bmsKKzU3MzQgOGU3MzNmOTJlZGMwOTM0ZjgzN2VmNGNlZDNlZjkzMjg1MTBjOTc3MCBsZWdhY3ktdHJ1bmsKKzU3MzUgN2VhYzAyYTYxNzZlZGYyODFjNWY0NTA3NWMwNjdlNjI3M2FmZmZhNyBsZWdhY3ktdHJ1bmsKKzU3MzYgMTE3NjE4ZGQwZTdmNTMzMDQwZjg4OTNmYWQzMmVjNWUxODJkNzY2MCBsZWdhY3ktdHJ1bmsKKzU3MzcgYjE2ZmNkMTI2YjFjMjRlNmU5OTcwODgxNjIxMGRiY2I2MTA1OGJmYSBsZWdhY3ktdHJ1bmsKKzU3MzggMDMxN2FjNTIyNjA1ODE3YzZmZTE3NTM2YWMyNTM5ZGU3MTE4NWJiNSBsZWdhY3ktdHJ1bmsKKzU3MzkgNjEyMjczMGI3OTg4NTE2ZjQ2YWU1Mzg4N2Q5ZDJiMGM1MzBkM2M3YyBsZWdhY3ktdHJ1bmsKKzU3NDAgZjk0NzgzYjliZmJhYjdlMTYwOTZhODAxMjc0MjcxYjkxYzhhODMzNiBsZWdhY3ktdHJ1bmsKKzU3NDEgOTc1Y2NmYTcyMWY2YmVhZjQ1Mzk3NTE4ZGY0OTI5NWMxMDlkNzY5NyBsZWdhY3ktdHJ1bmsKKzU3NDIgM2E4M2MwMTdkZjFlY2E5NTVlYTMxYjQ5MjA1MDIxYzM4NjNlZTU2YyBsZWdhY3ktdHJ1bmsKKzU3NDMgZjFmYjMyNmM3ZTJmZTFhMDhlYzkzNDUwNmRiNDdjYmZiNjJhZDg3ZSBsZWdhY3ktdHJ1bmsKKzU3NDQgMzZhMTg0ODk1ZWI5ODBhNmQ4ZWMzYzFhYjhlYTE2OTY3YTJlYzIxYiBsZWdhY3ktdHJ1bmsKKzU3NDUgNDNjNWU3YTNmYzFmYjYyYWUzNjdlOTZmNWMzYWM1MTc1YjkxMTM5YyBsZWdhY3ktdHJ1bmsKKzU3NDYgYTgwNjU3NjJhMzhlYTAxYzU1NmZmNGIzYTkyMTI2NzExOTEzYzgwYyBsZWdhY3ktdHJ1bmsKKzU3NDcgZjhhMDcxNzAyNGZlNGJmN2MzN2I5ODliYzdjNTYxOGZiNzE4ODNmOCBsZWdhY3ktdHJ1bmsKKzU3NDggODcxYzc2OGQwZGEyMjA3NzIzMmRiZWUxMjU3ZmM4MjExZDQ3N2EyOCBsZWdhY3ktdHJ1bmsKKzU3NDkgNmExOGM0Y2I2OGQ4NDRjNmVhN2I2ZmNjOWNmM2U2OGM2YTBjYzRlMSBsZWdhY3ktdHJ1bmsKKzU3NTAgOWZhMmUyMThlMmE4NGM2OGFiZjZjYmEzZTk1MmYwNjg3ODExMDI2ZSBsZWdhY3ktdHJ1bmsKKzU3NTEgM2EwZjg0YzY5MDUwYTNhYjJmOGQzNzUyZWEwMDY3MTc5ZDcyYzhkZSBsZWdhY3ktdHJ1bmsKKzU3NTIgMjEyZWFlNWI5NjYwYjU4ZTMxY2ZkYjM1NTFkZjE2ZDJmMWI2YThkOCBsZWdhY3ktdHJ1bmsKKzU3NTMgNmQ0ZjcxNDMwNzIyYjVlZGFkNzZiZDE2MTkxMmI2ZTU2YjRhOTVmMCBsZWdhY3ktdHJ1bmsKKzU3NTQgZTM4YzA5ZDAwODA2OGNmZjhmZmMwYTFhMzE3NDQyMmVjOWI2ZjE2NiBsZWdhY3ktdHJ1bmsKKzU3NTUgMjg4ZTMzN2Y3M2U3ZTQzNjhjNzA4ZWM1NzNlYzFlNjZhN2VkMGFjNSBsZWdhY3ktdHJ1bmsKKzU3NTYgNjZmNGJmOTQ2MjdmZWUwODg5NTA4NzU4ZDRjMjVjMzNhYTk3MjhlYiBsZWdhY3ktdHJ1bmsKKzU3NTcgM2Y0NTU3NzdmZjI4NDFhZDVmM2EyMjFmNmZkNDNjYjNiNzlkM2UyNiBsZWdhY3ktdHJ1bmsKKzU3NTggNDVlNDQ0NTQ3ZTVhMzVlOGZmMDAzM2ExMWYyMzU1ZWViYmJmYWJkMiBsZWdhY3ktdHJ1bmsKKzU3NTkgNzIzNTc5NzhmZmQyMmExODU2Mzk1NjNkYWViMDdhNTk4ZTkwN2Q2MiBsZWdhY3ktdHJ1bmsKKzU3NjAgYmFmYzEwNWJjN2NkOTlhNTJhZDlhNTJjZGQxOGRmY2E2MmQzNTNkYyBsZWdhY3ktdHJ1bmsKKzU3NjEgMmJkZGZiM2NmY2YxYWE4ZDgxMWZkZjQxYzU2MzU4MjczMDVlYTljNyBsZWdhY3ktdHJ1bmsKKzU3NjIgM2NhMTExZTBiMWE3Njg3N2U0ZGU2ODc3NzhiZmVkMjUyNjdlMGJmZSBsZWdhY3ktdHJ1bmsKKzU3NjMgMGQ2YjYwYjc0ODM4NGNhZjIxM2M4NWRiOGJkMTMwNTgxMGUzZjM1NyBsZWdhY3ktdHJ1bmsKKzU3NjQgNThlZjRjNDk1ZGU3NjJjOTQ2Yjg0MjE0MWM3MjQzNjM2YzAxMTMyYSBsZWdhY3ktdHJ1bmsKKzU3NjUgOWE0MDgxNDQwNzgzMDE4ZmVmMmY1NmY2ZjZjMjQ1YTAyZmJiNjdiYyBsZWdhY3ktdHJ1bmsKKzU3NjYgNDc3NjNhYzQ0YzQ4NmI3MjViNGRjMzFkZmRjNDRkOTFkMDYyMTgzYSBsZWdhY3ktdHJ1bmsKKzU3NjcgOTdjZDU3NzFjMjNlMjU3ZDJlNTczOWE5YTQ1MjA1MjZmZWJjNmI2NiBsZWdhY3ktdHJ1bmsKKzU3NjggN2Y1YjQzMmI4N2M0OGM2MzVmMjk0ZDE2MGVhNzBkOTAyNTBmNTg5YyBsZWdhY3ktdHJ1bmsKKzU3NjkgNTRmMDY3ODc1N2IwMGY2ZTMyYzc4NzkwYWE2MmU3OWM2YzMyMDBkNyBsZWdhY3ktdHJ1bmsKKzU3NzAgZDRkNWM5ZmE3ODU5MmExNmIzNTYxMGY2MDk5OTY5M2FiYzJkYjJlMCBsZWdhY3ktdHJ1bmsKKzU3NzEgOGE1MDk3ZTlkN2VlMmYzNmM2NzdlYTBkMzA3OTVlOTNmNTFmMTk0MCBsZWdhY3ktdHJ1bmsKKzU3NzIgODNkYWE1NGMxODFkZDBiY2MwMTgyMTdmNjU2ODVkN2E1MzI4NDVkMyBsZWdhY3ktdHJ1bmsKKzU3NzMgMTQwZDgyMzlhNDQ2ZThmMzFjNGRjMGFiOTc2ZmZiNjYxZDU4N2MwNCBsZWdhY3ktdHJ1bmsKKzU3NzQgMTNiMjRkMTAzNGJkM2JjYzcwY2Y1MDdmZWRmM2Q5MzkzYTRhNTlhNSBsZWdhY3ktdHJ1bmsKKzU3NzUgZTUyNDY1NzFmMGZkY2FjN2Q4NDE2ZWE3YzgwM2I3MzMwYjg5NGIxOCBsZWdhY3ktdHJ1bmsKKzU3NzYgYjgyOGJjY2RhMTg5ODM1Y2Y3OGQwYjgyYzQxMmEzNWRkYzA5MTJhYSBsZWdhY3ktdHJ1bmsKKzU3NzcgNjA0YjFmYzI2ZDYzM2E4OGUwMjdkMGFlYjkyNTgwMDZkODM5N2ZiNyBsZWdhY3ktdHJ1bmsKKzU3NzggZGYwZDAwOTE2MmI2NzUxODcxYmYwNThiMzFmYjY1YmExYmM3MzFmMiBsZWdhY3ktdHJ1bmsKKzU3NzkgYzA2NjRiZTdmNjYyNGI2Y2EwZjg1ZTY1OGU0OTRmODA4NjUwNzUzZiBsZWdhY3ktdHJ1bmsKKzU3ODAgNjhmZGM0MGFkZDJjYjNmNTVkMWFmYjI1OWIwOWUxNDAzNGY3MTU2NSBsZWdhY3ktdHJ1bmsKKzU3ODEgNThhNjczMjJjODk2MGNkMzM5NWE1NWQyMTk0OWQyM2NjODA1ZjFjNyBsZWdhY3ktdHJ1bmsKKzU3ODIgNDRmNDhhYWNhOGJmZjQ1OWJjMjJmMzRiODQ4MzY1ODhjYjU3M2UwMSBsZWdhY3ktdHJ1bmsKKzU3ODMgZTVkMWYyNDJkYWY5YzE2MDUxZGY0Mzc1MGI4N2MyNGFiM2E2ZDY4ZiBsZWdhY3ktdHJ1bmsKKzU3ODQgZTRmNTdkZDNkMjQ2NTM5NTgzNGI0ZmI5Y2E0NzdkYjJkODI3ZWExZSBsZWdhY3ktdHJ1bmsKKzU3ODUgOGI4ZDYwZmJlM2JmOTViZTMyNDgzYWNmNDAzN2UxZjZlOGM1NjEzZCBsZWdhY3ktdHJ1bmsKKzU3ODYgMzJiNGU4YWRlYmViODRmNzZjZmY0NDE0ODFjOTkyZDRjOWNlNDMyMiBsZWdhY3ktdHJ1bmsKKzU3ODcgNGU2ZDBiMjZlZmFmMzJlYjc3N2I4NWE4MDc0MWEyZjIwZTM2ZDI3YSBsZWdhY3ktdHJ1bmsKKzU3ODggOGRkZGE2NmRiZjJjODkyNmY5ZTQxODkzZWE3MDY3ZTA0YTMzYjYyNiBsZWdhY3ktdHJ1bmsKKzU3ODkgNTk2MzQ3ZGI2YTY4Zjc5NzY2YjM2MDQ4ODc2NjBiNTBjNWU0ZjYzMSBsZWdhY3ktdHJ1bmsKKzU3OTAgNjA5OGFhYThhZTdmYmNkOTI2MjhhNTk4Yjk4NDU2NDZkMzgxNjliMSBsZWdhY3ktdHJ1bmsKKzU3OTEgMzY5MjBiYmQ4MWE4MzQ0MTk0M2Y5ZTA5ZmFjZjJmNGZlMzQwYjU3MCBsZWdhY3ktdHJ1bmsKKzU3OTIgODk1MTQ0MjZiOWI4ZTRhMjA4NTM5N2I5MjAyYTE2MjQ0ZDE5ZDQ0MSBsZWdhY3ktdHJ1bmsKKzU3OTMgMWVhYjg0OTU0NjJmYjQwMmI5MTQwMjE0OGU3ODk0ZTVlZTYzMmUzNiBsZWdhY3ktdHJ1bmsKKzU3OTQgNDlmN2E0YTFmMGY2Y2U3N2M1YWZiZTgwOTc3N2NlY2YzOWUyYThjMyBsZWdhY3ktdHJ1bmsKKzU3OTUgNGM2NTUxMTVkZmNlN2RmZTQxYThiZGFmMjhhMGZhNGQ4ZDdkNDZkNiBsZWdhY3ktdHJ1bmsKKzU3OTYgNjdkMzQ3YzMyZmZmYjhjOTYzNjE1Zjc5ZDUxNDkxOTNlYzY4ODE0ZSBsZWdhY3ktdHJ1bmsKKzU3OTcgOWYxYjZlMmRiOGUwMTJjMzc4MjNhNDU1YjljZmUyZDBhMmQ1ODJiZSBsZWdhY3ktdHJ1bmsKKzU3OTggMGRhMjRmMWMzZGRlNmRhNGZkYzdjZDMzNzE5N2RkNzBjZjZiZWM1OCBsZWdhY3ktdHJ1bmsKKzU3OTkgOTU2NDNjMGIwYzBlYjA4MmIxNmU5Y2VhNTYzNGJmNmZiZWI4OTA4YiBsZWdhY3ktdHJ1bmsKKzU4MDAgNGI1YmZmOTU4MDRlNzJiNzc5Y2FhNGVhYTRmNTcwMWQzYmUyZGRhZCBsZWdhY3ktdHJ1bmsKKzU4MDEgOTY5YmQ5MTFlMTE0ZmNmMzJlYTRkMzllM2M1N2U5ODJiMzQxNGY2ZSBsZWdhY3ktdHJ1bmsKKzU4MDIgOWJkMWU0MWQ2YjExNmE1NWFkNzNkNThmZTk2M2VhODBjMWFlOWE2OSBsZWdhY3ktdHJ1bmsKKzU4MDMgMjQ5N2M0M2Y0OTgzZGJjYzU2ZjcyYjE3NTM5MjFkYmFjNjdhYzMzNSBsZWdhY3ktdHJ1bmsKKzU4MDQgMjAxZGU4NDU1YzJiYzlkMWEyNzI2ZDRlMmZlYjE0ZDE1ZDM4YjNmNCBsZWdhY3ktdHJ1bmsKKzU4MDUgMmRiNTg1ZWEyMThiZmRhY2M4MjI3MDA3NGI2NGJhM2M5ZjRiZTBlNSBsZWdhY3ktdHJ1bmsKKzU4MDYgMTZjYjA0NzMyMjRjZDUxN2EzYjZjOWZmNTVmZTM3YTcxZmNiOTIyYiBsZWdhY3ktdHJ1bmsKKzU4MDcgOTFjM2U5ODIxZDBhMGQ5NDFkNDc5NTNlNDVhMDNmN2ZlZjdmNDI3NiBsZWdhY3ktdHJ1bmsKKzU4MDggMzY0MTYxNDAxMDVhMjk0M2JkNDBhNTJlYWFjZTU3NjQ3NjdmNTgwMSBsZWdhY3ktdHJ1bmsKKzU4MDkgMDA0NTM2MTNjZDRjNzc0OTJjNGE5MmFjOWZjODEwNjMwMmU3YmU0ZSBsZWdhY3ktdHJ1bmsKKzU4MTAgMDEyMzc2ZDNhYTE0N2IwMmQyNjNlMDU4Mjg2NDhhNmYxNGYyZDJhMyBsZWdhY3ktdHJ1bmsKKzU4MTEgM2I0ODQ4MTJhY2Y2ZTJlMTk3ZmZkODBlMjNmNjYzNWNiZjc5NGMwMiBsZWdhY3ktdHJ1bmsKKzU4MTIgMTcwOWQ1ZmVkNTI4ZTZhZWIxZWQ1MjAwNGRhMjM0M2ZmOTc3MDE5ZCBsZWdhY3ktdHJ1bmsKKzU4MTMgNTY4OTc3NjBlOTU4NzI1NzRlNjEyYWI4NDJjZjVjZDZkMzliNjdlNCBsZWdhY3ktdHJ1bmsKKzU4MTQgZmFhMjFjZTFmZjAxZGM3OTNhZDdhNzI5NTI1YTA2ODNhMjMyZWU1NSBsZWdhY3ktdHJ1bmsKKzU4MTUgZWZkZGUxZDc0MjRiOTA0NmFlOGY4ODNhMTRkZThiYzhlMDM0ZTE3OSBsZWdhY3ktdHJ1bmsKKzU4MTYgODIwOTk5OGQ2NjllMTZhMDhmY2E0OWNiZTdhYTI4OWYxNDZkODA0YSBsZWdhY3ktdHJ1bmsKKzU4MTcgMmJlMGJkZTNhMDcxOGUwMzc0ODA4OTg5ODY5NTM0OTJmODE4MGNkYiBsZWdhY3ktdHJ1bmsKKzU4MTggYWUwMDRhNDUwNTBmZGE0NDcyN2RiZDczOGJlNjAzNTMwYzQ5MjZkOCBsZWdhY3ktdHJ1bmsKKzU4MTkgODFmNDVmNjkzODhlMmRlN2JlNGYyNTVlY2I2ZDg3MThiZDUzYWQwYSBsZWdhY3ktdHJ1bmsKKzU4MjAgZjZhODQwZTgzZDJhNTJiOGY0OGZjNjBlOGU1MTg4OWI3NTIyOWU4NiBsZWdhY3ktdHJ1bmsKKzU4MjEgMGIwMjFjZjQxZGRhYzBiYjBjMmFhMGI3NTRlOGNjYmJjMTllNTVkYSBsZWdhY3ktdHJ1bmsKKzU4MjIgZGRiNDUxMGVlYjQ2ODM1MWZiOGQwZjY4NmRkYWYxOTMzZmY2ODU2MiBsZWdhY3ktdHJ1bmsKKzU4MjMgNmQ3NjJhMmY5YjY5ZDY4MDMzNTQ2M2Q2ODE0MDYxYjEyYWYyZDIwZCBsZWdhY3ktdHJ1bmsKKzU4MjQgMWExN2JhNTBiZDY4MTkxNzcyNjU0M2RhODgzODNhZjcxZTgwNTNmZSBsZWdhY3ktdHJ1bmsKKzU4MjUgMjFkODk2OTgzMjljNmIyYjJmZTdlZDg2OTQ1MDYzNTFmMTViNWYxYSBsZWdhY3ktdHJ1bmsKKzU4MjYgMDg5ODU0MzE1MDBiNzE2ZWQzMDA5OTI5YjhiOTg3YTdhNDgwYzEzNSBsZWdhY3ktdHJ1bmsKKzU4MjcgZTBlZjAwOWIyNzAyMjNmMjI3MjU2MGRlMTA4MzNmMWE4MDEyNGFiZCBsZWdhY3ktdHJ1bmsKKzU4MjggZTI4MTI0YmI3ZmFiMzE4YjFmZmY4ZGY1ODNlNDA0NzI1MDg1MDg5MSBsZWdhY3ktdHJ1bmsKKzU4MjkgNmNhOTc4N2NkM2FhYTBmNTZhM2U1YWVmZDlhYTc1ZjY1N2U2MTBhNSBsZWdhY3ktdHJ1bmsKKzU4MzAgMzY5YjMwZjc4ZDYzZmNlNWE3MGYwMjI2NTVmMGNmZGU1MzlhNWI5YSBsZWdhY3ktdHJ1bmsKKzU4MzEgYmMxN2U4MzEzZWEwNmJiNGIxNGU0Yjc2NTY3YTNjZjIyYjU3ODQzNSBsZWdhY3ktdHJ1bmsKKzU4MzIgZjhmZjI4MzI5OTcxNjJkNWZjMmU5NjZiNjVhYjExOGU4YWE1NmMzMiBsZWdhY3ktdHJ1bmsKKzU4MzMgYzI1ODY1ODg0NjQ5NThkNDg0ZTZmNDAzYTIwMzc2MzYyNGFiODQyYyBsZWdhY3ktdHJ1bmsKKzU4MzQgNGUxYWQyNDQxMGE3MTE2ZmNmNGI3OTQxNjFlOTNiODA5NGVkODNlNCBsZWdhY3ktdHJ1bmsKKzU4MzUgYWYxYzJmMzZkYzM0ODY5ZTUwY2ExOWQ0ZGNmNDY1MjczYThjMTllYiBsZWdhY3ktdHJ1bmsKKzU4MzYgM2NmMmQ4YTJkNzRiMTNkNzc1ZDVjMGQ2MTczYjFlN2IyNWQwOTk3YyBsZWdhY3ktdHJ1bmsKKzU4MzcgMDUwODRlZTU0ZTU0OGUyY2I4NDQ3N2M3ZjJmMTRkYmZkZjFiOWI5NCBsZWdhY3ktdHJ1bmsKKzU4MzggNmIwYWY3OGE5MGU1ZjExMTg3MjNhOThjZjc3YTM1ZDM2ZmQ1MjBiMiBsZWdhY3ktdHJ1bmsKKzU4MzkgMzU5MDhlMzc1ZDFhNmY5OWZhMjIxOTg1Y2IxNmQzODlmNWY5MDk4NyBsZWdhY3ktdHJ1bmsKKzU4NDAgZmUxOThkZWUwNjQwODYyN2U3M2M2NmY3MmIxMzk5Mjk1ZmU3ZDQwOSBsZWdhY3ktdHJ1bmsKKzU4NDEgMGM4ODIxYmY2ZGI1NjZhYmQ3MzE0OWQ4MGFlOTJjMjM0ZTVjYjA1MCBsZWdhY3ktdHJ1bmsKKzU4NDIgMjhmNDFlYzdjNWNjNDIzNTU5ZjVhZjViNDc4YTUyZGEyNTUzMDNkYyBsZWdhY3ktdHJ1bmsKKzU4NDMgZTA4NjJmMDVlMTg1MDc3ZWFmMDMxNDQ1NGEyNzE0M2YyZGZiMGEwMiBsZWdhY3ktdHJ1bmsKKzU4NDQgODI3MzM4Njk5MDk0NDRkNDllYTY3ZDA5ZjI1ZTgzYTZmODZjM2FiYSBsZWdhY3ktdHJ1bmsKKzU4NDUgNmEzZmZjMWRiYjk1ZDg5NzE3MDIzMWFjM2FlNDU2NWQxNWQ4MDBlYSBsZWdhY3ktdHJ1bmsKKzU4NDYgMDQ2ODg4ZGExZjQ0YTZmNTExM2NkZjJhNWU5ODViNGI4OWY4ODQ2OCBsZWdhY3ktdHJ1bmsKKzU4NDcgMmVlMWY5MjNjYjE5MzIxNmNjMmVkMTAyNjRiZTM5ZGM5M2QyYjFmOSBsZWdhY3ktdHJ1bmsKKzU4NDggYjdiMmMxM2I1ZTMzMjg2MGNmYmExYmM2ZGRmZWJiYjEzOWVhNWZlNCBsZWdhY3ktdHJ1bmsKKzU4NDkgYTQ0MjM1ZTk5NGYzN2Y0OTdjN2I2YjIyZDE1Mzk5M2RiMTM5MjE4NSBsZWdhY3ktdHJ1bmsKKzU4NTAgOTJmMTFhZWZiNWNhMzVmNDQxZGNiMzhhOTU1MGUwYzlkMTYyYTg1ZSBsZWdhY3ktdHJ1bmsKKzU4NTEgYzcxYTdhNGY1ZjhlYTU4MjVhMDc4YWNiM2RmNWYwNzBiZGFmZDhkNiBsZWdhY3ktdHJ1bmsKKzU4NTIgZDU1MzJhNzFiNDU0YjZjMzI0OWU4MWVhMjAwMjNmMTA5NTcxMjc1OCBsZWdhY3ktdHJ1bmsKKzU4NTMgNmY1ZmViM2I0ODI5Zjk4YzA3ZDRhNTcyMjc5NWUzOTk2ZDAzMDRlOSBsZWdhY3ktdHJ1bmsKKzU4NTQgOWZhMjIyOGJiMDk2MjBlYmQzZGQ4MjA2ZDhiNGJhZjhhZjE4YWY3YSBsZWdhY3ktdHJ1bmsKKzU4NTUgMTY5NmZiZjMwMmI2M2ZkMWQ2MWI3MjRjOTU1MDNiYjBkNTQ1NDVmZiBsZWdhY3ktdHJ1bmsKKzU4NTYgZDE1ZDI5YmJjMWNlMTFmY2RjOGY1NTZiYTAzNWJhNTNhZjA5N2FjMSBsZWdhY3ktdHJ1bmsKKzU4NTcgODMyZjI2ZDBlMDY5ZjZkNTllY2NmMzA1YzllYmFmMTI4M2ZlNjk1MyBsZWdhY3ktdHJ1bmsKKzU4NTggMWMwMGQyODQ2ZTg0OWY2OTYyNWNjNmI3MjI3OWFjMDUzYWUzOTRiNCBsZWdhY3ktdHJ1bmsKKzU4NTkgYWRhMjIyNTg1MzY2ZTZmNTkzNGE5OWMyM2E3NmQ0ZGNiYjE0Y2I4MSBsZWdhY3ktdHJ1bmsKKzU4NjAgZDlhNzk5NzdiMzhkNDM5ZWEzZjEzOTQ5NWI1ZDI3YThiZjhiMzhhOSBsZWdhY3ktdHJ1bmsKKzU4NjEgNGZlYTZjZDk0ZGZhNGQ1OTIyM2RlYjVmOGRmZTAxMjU0ODkxZWE0YiBsZWdhY3ktdHJ1bmsKKzU4NjIgZjU5ODYyMzA1MGEzOThjYTNiMjI4MmNkYTBiMjkyM2EyMjNlMTc4YiBsZWdhY3ktdHJ1bmsKKzU4NjMgNTQ2NGZiMmQxMjllNTA4MTkyMTk5OGIxODkzZjUxYzMxN2NhMTg4ZSBsZWdhY3ktdHJ1bmsKKzU4NjQgNWQ3YTE1ZGY3MTU1NTI1Njk2ZWZmYzMwM2JhYTk0ZDc1NTU2N2RjOCBsZWdhY3ktdHJ1bmsKKzU4NjUgNDA5YTg5YzVmNjZkNTJiMjJiNGU3ZjcxYTkwOWY5ZGY4MmRjMGY5YyBsZWdhY3ktdHJ1bmsKKzU4NjYgMDI0MzVmZDk1Mjc3YzYyZDJiZjRkNzI5YTNiNTU3NmQ5ZGY2MWU0YyBsZWdhY3ktdHJ1bmsKKzU4NjggMTE2ZGI3MzQ3ZDAxYzRjNmU1ZWUyMWU0YzI5YTUzZGM5ZmNiYzRmYiBsZWdhY3ktdHJ1bmsKKzU4NjkgMWRmOGY1YThiMjE2ZDExMTU1N2VkZjgwYmRlODZlYTE4YmQ4ODg0NyBsZWdhY3ktdHJ1bmsKKzU4NzAgNTJkY2U0Y2RjOTMwZTAxYThlMjg5N2VhYzk2OGZiYzQ1OWM3MjcyZiBsZWdhY3ktdHJ1bmsKKzU4NzEgYmE4M2RkNDU4NTMzMTE4NTUxYTlmM2YyYzQ0ODQ1NGMzNmQ0NzY1MSBsZWdhY3ktdHJ1bmsKKzU4NzIgZTk5NGU2N2JjYjk1MDAxZGZkOWU0ODU5Yjc4YTI2OGYxMjQwMWUwMiBsZWdhY3ktdHJ1bmsKKzU4NzMgYzI4MzQ0N2I5ODVmNTJlYTQ3ZWIwMDQxZTk0NzM5OTkwZTQxMmY1MiBsZWdhY3ktdHJ1bmsKKzU4NzQgODEwZTY5MGFhNjAyYjAzMjQ2NzFkNWIxZWMyZjkyZTk1ODU3NDFiYiBsZWdhY3ktdHJ1bmsKKzU4NzUgZjI2MTRhYzczNWQwYzI2YzYxYThkNzg4ZmYzZjc4ZDkwNmNjYmNmMSBsZWdhY3ktdHJ1bmsKKzU4NzYgMzk3ZTZkNTNhN2FkZTU4YmI4YzkwZmFiM2I2Y2ZhZjJhYmQzOGJjMSBsZWdhY3ktdHJ1bmsKKzU4NzcgMjc0MDZjMzZlOGJkNDQ5ZTc4OGRiNzUxMzAxMTQ1NDc4Y2E3ZTgyYiBsZWdhY3ktdHJ1bmsKKzU4NzggMDIyNDc0YWMyNDUxZTQ5MDA2ZmZlMDU1YmQzZTQ1YmRjNGIzMGIyZSBsZWdhY3ktdHJ1bmsKKzU4NzkgMTQ5OTFjNDMzMWRmMDg0ZGIxNDRiZmVkYzU5NDIyYzUxYTlhM2IzNyBsZWdhY3ktdHJ1bmsKKzU4ODAgZjZiZGRhMzcwY2I3NGIwZmQyM2U2NzVkNzYyYTZjN2RkMzc5ZjAzYiBsZWdhY3ktdHJ1bmsKKzU4ODEgMmZlN2Q0ODk2NTRlOGFkNWM1NzMxYzAwYzVjMGZkYTE5NGVlNjA5NiBsZWdhY3ktdHJ1bmsKKzU4ODIgMDk4Y2JkNmQxOTZlNGY3ZmRjOWZhODgxYmZiNTY3YTQxMzc5NWM3MiBsZWdhY3ktdHJ1bmsKKzU4ODMgZjZhNmE2OTkyN2ZmZWYyMTUzZjIwZWY2MmRlZmNhYWI1ZTQ4YTc5ZCBsZWdhY3ktdHJ1bmsKKzU4ODQgYjZjMGE0MWU0YTQ2NTgwYzJkMDMzZjY5NDMyZWFjOTE1MjFmMDYxMSBsZWdhY3ktdHJ1bmsKKzU4ODUgZTFkZjkwMjA1YTMzMzkzNmQ5NjY5MWViNzQ0NDQ2YjA0M2JiODg2MSBsZWdhY3ktdHJ1bmsKKzU4ODYgMGFjNWZiYWY4YWVmOGJhYWNmNDkxNmUzNjNlMjQ1Mzg0MWI5ZDQyNSBsZWdhY3ktdHJ1bmsKKzU4ODcgZTA0NWY5MTMyYjA3YmNiZGFlOTAzNmM5YWZlNGE5MGM0OTU5NGQ3MCBsZWdhY3ktdHJ1bmsKKzU4ODggMDEzYmJlNGVmOTQzN2FjNTgwOTBlMDExMzMxZDVmMWRiMTljNTg1OCBsZWdhY3ktdHJ1bmsKKzU4ODkgOTBiNTQzMTI2NjFhMzUwMzRlNzY0ZDE4MzY1NGZiZjUxMmRjZDVkMiBsZWdhY3ktdHJ1bmsKKzU4OTAgNjdmNWQyOWQ0MDViMmE5MGY3MDE3ZjJmYTVkZDRjNjI4ZGU0ZGE4YSBsZWdhY3ktdHJ1bmsKKzU4OTEgMDJjOWRhMjBiNDFlNjkzNjZlZTJjYmI2NDZhNjYwNWNjZjRiOGQ1MyBsZWdhY3ktdHJ1bmsKKzU4OTIgMjRiZWUzNzgzYjM1ZjNmNGM5MGZlMDYzMzRiNjFkMjQxZTMzMDI0YyBsZWdhY3ktdHJ1bmsKKzU4OTMgMjMyNTRkYWEyNDdiODc1MzIyYzgyYzEwNmRkMmMzOWI4MGFkZWJmNCBsZWdhY3ktdHJ1bmsKKzU4OTUgNjQwMmJlMjY4OWM1NzlkMmRjYmJlYWMyNGFjZGU0NzlkNWNiMzViNSBsZWdhY3ktdHJ1bmsKKzU4OTYgYWY1ZmY1MjMxZDRhMWQ0YWJmNzBiNGZhNTEwZjZlNjA1ZWFhNmFjNCBsZWdhY3ktdHJ1bmsKKzU4OTcgYmE5ODMxNDA3MThhYTQ3Y2U4MGE4NGI0MTZiMTExZmEyYzI1ZGIzNyBsZWdhY3ktdHJ1bmsKKzU4OTggZGE4NmIzYjU0MzYzY2NkNDNkOTBlYThmZGI5NDBmNDg2NWM0OTJiMCBsZWdhY3ktdHJ1bmsKKzU4OTkgNTc4NDY2OGQwNTc2YmYxMmNhOTM3MzAzYmNlMjI5OTVkNjYyYjg0OSBsZWdhY3ktdHJ1bmsKKzU5MDAgMjZiZWM5ZTIyZTVkMGY1NjU0MWZkNjkxOTJjMjM3MzJkMDcwOGRmMSBsZWdhY3ktdHJ1bmsKKzU5MDEgNmFiYzc1ZWM2ZDI5ODI1MGM2MDcxZDFlYWM2Zjc0M2JlZDI4MTRiNyBsZWdhY3ktdHJ1bmsKKzU5MDIgNTc4Y2EzMDJhNTk4YzM2NmY4MDA0M2VmYmNjMmZjMjQ1ZmJkMWYzZCBsZWdhY3ktdHJ1bmsKKzU5MDMgNTI5ZjRkOWNiZTNkOGU3MjEzZWRkM2FkZDQ4YWY0N2NmMWUyNGMyZiBsZWdhY3ktdHJ1bmsKKzU5MDQgZjcyMDUwZGQ2MWE5YzNmN2NkZDliNTFlMGZmNGE0ZGYzNmJiOTA2ZCBsZWdhY3ktdHJ1bmsKKzU5MDUgZGI5ZjZlZGU1OGE3NjZjMDliZmQxODc1NTg0YjFkY2JkYzI5NzVlMSBsZWdhY3ktdHJ1bmsKKzU5MDYgZDcwMTQ5MjAyYzkzZGM2MzJlNDE5NGVkYzc4Y2FhNjY0ZjZlNzEzMyBsZWdhY3ktdHJ1bmsKKzU5MDcgZDBkMWEyMWQ0OGIwYWQzY2Y3Y2ZiODE1OTA1MGM2ZWMwMGJmYjcxNCBsZWdhY3ktdHJ1bmsKKzU5MDggMWFmMWFkY2E4MjQyNzQ4YTdjYWI1ODEzNGQzOTgwNGM3ZWZiZDRiMyBsZWdhY3ktdHJ1bmsKKzU5MDkgM2JkZTRiNTlhNWQyZTBjYmJmMzYyZWY3N2Q4N2U0OThlZWY1OTA4MCBsZWdhY3ktdHJ1bmsKKzU5MTAgNTU4MDhmNjAwOWNkZDAyMzc1ZTNiMTM5ZjBiZGM0ZDY1OGIwMDUxMSBsZWdhY3ktdHJ1bmsKKzU5MTEgMDY2YThhZTRkNDA2M2FiOTk5OGE3ZjI3MWI2MjAwYzUyMGZmMGQ4ZiBsZWdhY3ktdHJ1bmsKKzU5MTIgMWZmMTI4MDRmZjJhNzQ1ZWE5YmYxZDlhY2U1MWYzNmNlM2Q5MjM4MyBsZWdhY3ktdHJ1bmsKKzU5MTMgZTc2Y2EzNGQ0OGYzZWVmMzE1NTI5MDZiMTI4MmM3MTFlYWU3MzIxMSBsZWdhY3ktdHJ1bmsKKzU5MTQgMDc5NzdiZjBkOTk3MGI3YzFiOWQyNmJiMmUxZWEwZWU4NDg5Nzc1OSBsZWdhY3ktdHJ1bmsKKzU5MTUgNjIzYmE5YmRlYjIyMTUxYzkwZDQ1NmJkMTNmOWJiNjI0MzRjMzkxYiBsZWdhY3ktdHJ1bmsKKzU5MTYgZGI3NmZkMzkwZjc0OWExZmQwNTU4MmRiMDk4YmIzNDM3MmFmYTE2OCBsZWdhY3ktdHJ1bmsKKzU5MTcgZjkxZjYxOThiMjc2OGY2YTUwZGE2ZTdhMjBjMzQ3ODY2Y2Y2N2Q2YiBsZWdhY3ktdHJ1bmsKKzU5MTggYzNlNTFlYjFjMTRmZGZiY2Y5M2IxYmFhMTBmYzA0ODBlYmQyYmU4NiBsZWdhY3ktdHJ1bmsKKzU5MTkgNzEzYmQ4Mzc3MzgyMGZiZWEzZDdhYjYxM2YwZGI2MzdjYmQ4N2YzMSBsZWdhY3ktdHJ1bmsKKzU5MjAgNWFiYmM5YjVmZGYwYjI3YWEyZjIxYjQ3ZTIxNjhkMWRhY2UxZjkxZSBsZWdhY3ktdHJ1bmsKKzU5MjEgZWM4NDk0OWY4MWVlZGY5M2ExMjQ3MzMxYTNmOGZlNzNmNzcyZWIxMCBsZWdhY3ktdHJ1bmsKKzU5MjIgYTdjMjczNzY4N2MyMTJlNTVmYWU2MWQ2N2JjZTgwYzYzZThmOWM2YiBsZWdhY3ktdHJ1bmsKKzU5MjMgZTY0NmFmYzUwYWM3M2E5YTNjZmM4NzQ0ZDM1NmEyNzZhNTcxNDE5OSBsZWdhY3ktdHJ1bmsKKzU5MjQgMTQ0NGEzNTI0ZWRlMDliMDQwN2EwOWFiYmIyYzBiNTBhNjk5MmE5YSBsZWdhY3ktdHJ1bmsKKzU5MjUgZGNjNTk0OTM0OTlhZTcwYmQyZGEwYzYwZGQxNTc0MDJmNzlkZTEwMiBsZWdhY3ktdHJ1bmsKKzU5MjYgYTcxZDJmZDkwZmE4N2I4NGY5YjE0Y2E1M2MzMDYxYTAxZDMxODI1MSBsZWdhY3ktdHJ1bmsKKzU5MjcgNDA4ZGZjNzE4OTUxOGYxZDRmYTk2MDAzODcwZDhkNzU4NGQ0ODdjNiBsZWdhY3ktdHJ1bmsKKzU5MjggNzA1MjJkYjExMDE5YThjYjdjMjFiODE2MWNhZTRhN2U2ZGU2MGUxZCBsZWdhY3ktdHJ1bmsKKzU5MjkgOTdiMGU5NjI1ZWIxZDVmODBlYmI2ZjcwNGZiNTY1MThhMjY2Y2JjZCBsZWdhY3ktdHJ1bmsKKzU5MzAgODAzZmJjZGNmYzlmODdmNzQ3Y2Q0MGZmMTM4OTMxZGQ0N2VmZjNkZCBsZWdhY3ktdHJ1bmsKKzU5MzEgOGIzZjJhODYyMGY1NGZiOGI0NTRjYTVlOGRhNWFmNDdiOWJmNzExOCBsZWdhY3ktdHJ1bmsKKzU5MzIgZDE5NjhhN2NjNjIwYzE2MTAxY2Y2Y2FkMTYzZmUxZWIwMTA1MzgzOCBsZWdhY3ktdHJ1bmsKKzU5MzMgOGRkMDE4OGU1MmE3YzhjNTliOGNmZTAzMjVjMWIyMWY4OGU4MjUxNiBsZWdhY3ktdHJ1bmsKKzU5MzQgZjBiYWFkYmZjYWJkYjUyZGNiNmYyMGNhYmIxMDk3Nzg0ZDBkZmJhNCBsZWdhY3ktdHJ1bmsKKzU5MzUgMTQyNWZjNjQ5MWViYmZjZDliMmZiYzQ3MjU5ZGM3NDA3ZjcwMzUyMiBsZWdhY3ktdHJ1bmsKKzU5MzYgNDUwZjRkNDZkOWRiZjAxMzZlOThjNzNlMjhlYmFlMjQ3OGFlM2VhOSBsZWdhY3ktdHJ1bmsKKzU5MzcgNjIwYWIzZGIwNzkzNGM0MTgxYmUyZTdkYjliNTU5NzRkZDViYmViYiBsZWdhY3ktdHJ1bmsKKzU5MzggZTkwNDMyMjM5MzVhZDM0Y2NjZjkxNGQ0YTBiMGM5MWZlM2Y1OTVmMCBsZWdhY3ktdHJ1bmsKKzU5MzkgYjM4ZmRiMDA4ZjFkYzMxYTk1OGRiYzA0MTcwMDk4OTdhNjk2NjZiZiBsZWdhY3ktdHJ1bmsKKzU5NDAgYWE4YWRmZGQzYWExZTFlOWFlNWIyY2UyYzI1MjhiZGQ3MTI2ZTBkNCBsZWdhY3ktdHJ1bmsKKzU5NDEgNTBhYTE2ZjgwOWQ3NjAwMzJjMDQxZmQ1ZDQ2NDE3YmU2MzY4M2EzYyBsZWdhY3ktdHJ1bmsKKzU5NDIgYTI5MmI3NTgzYzAxNWEyODJhMWVmOTY2MmM3YWY3ZDBjODQzYWE1MSBsZWdhY3ktdHJ1bmsKKzU5NDMgMTEyOTllOTVjYWU4NDBkNzAxM2IwMzYwYWMxOTJmY2M5NjdlZmExMiBsZWdhY3ktdHJ1bmsKKzU5NDQgMDczNTUwZTMxMjczMDc0N2Y1NjM0MjE0MTUzMmI5MGM3OTBmYzhlYSBsZWdhY3ktdHJ1bmsKKzU5NDUgMzVjNGE0OGQ5ZGExNjk0YzUwZTZmODgzYTUwOTM3ZTZjMTYxMjM2MyBsZWdhY3ktdHJ1bmsKKzU5NDYgYTRmMDFkNDNkYWQ2OTkwMTVkMTYwNmE0YmE1YjczOGVkMzAzMDhkYSBsZWdhY3ktdHJ1bmsKKzU5NDcgODljYWZmZDJjMDYxNDg4MzVjMjhkNDY0NmU5YzYzM2NiNjg3MzczYSBsZWdhY3ktdHJ1bmsKKzU5NDggYWVjOGJiY2Y4YjBlNWYwMmFmODI3ZGM0OTNkZWRiNDBjM2VmNjFmNCBsZWdhY3ktdHJ1bmsKKzU5NDkgODI3ZjExYWQ2NWRmNjNkZDg3ZDlkYTlmYmEyNDRiNTEzZDk3YzE2ZSBsZWdhY3ktdHJ1bmsKKzU5NTAgZTI5MGZhZWI5MmM4NWY3ODNiNDMyM2QwN2NhYWNkOGZkOTY5MWZkNSBsZWdhY3ktdHJ1bmsKKzU5NTEgMDBjYTkwMGM3NzQyYzVlMDczNDI3NjQwYmIzMzVmZGVlMDY2ZWQ1ZCBsZWdhY3ktdHJ1bmsKKzU5NTIgZmVkOTNkMmQ4OGZjNDZmOWNiN2U2MDVlNTQzMmZhOGNjMmI4ODlmNCBsZWdhY3ktdHJ1bmsKKzU5NTMgY2UyN2UwMzI4NDYyZWQ5NmYzOTBjMjg2ZjIyMjQ1YjE5NzNjMTI5YyBsZWdhY3ktdHJ1bmsKKzU5NTQgNjFmMTlhN2IxZmYxMDZjNjdlOTUzMjk2MjEwNWU4NWY0OWRjM2VhNiBsZWdhY3ktdHJ1bmsKKzU5NTUgMDJhMjNlNmU0MTRhZmZlOTQ3OWE4ZGVmYzU4MTc4ZjJkOTQ2NjUzZCBsZWdhY3ktdHJ1bmsKKzU5NTYgODM1NTcxNTNmNTQ0NzQwMTMzM2VjNWQxYmNiZjAyYjM3YWFhNDFhZCBsZWdhY3ktdHJ1bmsKKzU5NTcgMmMxNzhiZjcwZjdlZjM5YzE3NDRhZjRiYTg0MzE4YzZlOThkYTZkOCBsZWdhY3ktdHJ1bmsKKzU5NTggM2I2ZWJmOGQyYTU5ZTY2OTBjOTI2YWRkNDY0Y2E5OWJhYjg5NmY3MiBsZWdhY3ktdHJ1bmsKKzU5NTkgMWRmYzUxOWVhM2NiZTQ1ZmQ3ZjAwNGMzY2QxYjYzODU4YTFkNGY2YiBsZWdhY3ktdHJ1bmsKKzU5NjAgMTZhNWY2MDQ4NDYxZjgzOWNjZTM2OTg0OThmOTJkODZiMDI1MWU3MiBsZWdhY3ktdHJ1bmsKKzU5NjEgMDgxMzBmMDBjMThkYjUwM2Y0ZTM5NWNhMmU1NWQxYzc3OTExOWE5OSBsZWdhY3ktdHJ1bmsKKzU5NjIgMDNjNmMxODMyNWVhY2E5NjJjMzE4NTc1NjQyMWM2N2VlOTM3MmY0OCBsZWdhY3ktdHJ1bmsKKzU5NjMgMTQyY2JhYmRkOTQ1NTZhMzNiNTRmZTBlYTI0NzQ4YTA3YTJlM2IzNCBsZWdhY3ktdHJ1bmsKKzU5NjQgZjcwZGJlNjA4ZjAzMWY3YmFkOGExZWVjMjAxZjE1OGY4MmE0ZTFlYyBsZWdhY3ktdHJ1bmsKKzU5NjUgOGQ0M2I4MzAzNDFiYjU2YWVmMWFmYjNmMDZiYjVmZjVhMTMzZmE5NiBsZWdhY3ktdHJ1bmsKKzU5NjYgZDYyNDZhZWI0YTNmMjc0MmUyY2I1YzI1NjQ3MDczY2ZjMDJkOGYxYyBsZWdhY3ktdHJ1bmsKKzU5NjcgY2RlYTNmMjdjZjdjNzBiODIwOTRlNjY1MmM2YzFiNTJlY2VmOTIwOSBsZWdhY3ktdHJ1bmsKKzU5NjggNWYyNTA0MGZkNjNlNmY0MGQxZTY3YzZiNmQ3NDcxNTJhMjA0YjdkZSBsZWdhY3ktdHJ1bmsKKzU5NjkgZWFlNzBkN2YyZWM3YzhlMGE1ZTExZWM1NzdjZGJmYjkyYTQzOTcyMCBsZWdhY3ktdHJ1bmsKKzU5NzAgZWI1YjhkM2Q4YWNmNDI3YjNiYzNlZmUxNjY1MThhZmYyNWQxN2RiMyBsZWdhY3ktdHJ1bmsKKzU5NzEgNjE4OTRiYTU3MWY1YTgzZjUzYWMyNWIxMDk5YzkzOTUzZTU4OTE5NSBsZWdhY3ktdHJ1bmsKKzU5NzIgODk5YWVmZWE4MDFjOTlhZTM0Yjc3NTZiMDA1ZGY2ZThlODhmNmRkMiBsZWdhY3ktdHJ1bmsKKzU5NzMgZThkNTAxYzg4YTNlM2U5YmRjZDZmZWY4NGYxZDA0ZDY5ODEwY2ZiMyBsZWdhY3ktdHJ1bmsKKzU5NzQgZjZiZDU3ZGJkNTI0ZGVlYjc1OTliNzhiMzZhYjhiMmUxNjY2YWUzZCBsZWdhY3ktdHJ1bmsKKzU5NzUgZDI0ZjhkNzllY2EwNzRjMDIwMzVjZjE4MmVjYmEyZDJhMTA5YWJmMyBsZWdhY3ktdHJ1bmsKKzU5NzYgNDMxZThkMDEwNTQ3YTIzYWM4Zjc4NDZjMmJiZmVjNmViNzY3ZGYzMiBsZWdhY3ktdHJ1bmsKKzU5NzcgNmYzNjNhNDE3NjYxMTcyZmIyNDhiYmRlMDA0ZTdmN2ZmNzI1MTExYSBsZWdhY3ktdHJ1bmsKKzU5NzggNTU4ZGNlNjU1M2Q5MDViYjA2NTAxNjIyOTk2NDAxYjM5NjE5OGJkNyBsZWdhY3ktdHJ1bmsKKzU5NzkgYTFjMGMyYTM4ODgzZmFiZjc5ZjQ2OWE3ODNjOTcwN2JjYzVlNDA4OCBsZWdhY3ktdHJ1bmsKKzU5ODAgYzVkMzBhNTY0M2JlYWVlZGY1ODZlN2U5NWFjM2IwMTVhMmJjOTI5ZCBsZWdhY3ktdHJ1bmsKKzU5ODEgMmEwOTlmYjc2ODIzYjMyZWMzZDlmNjY3OWRkMTg1MzdiZTVhZmY1YyBsZWdhY3ktdHJ1bmsKKzU5ODIgNDM2MWE1ZmZiNjM4MjYwMmRlM2ExY2EwNmJiNGFjNmZiZTZkZWZjZCBsZWdhY3ktdHJ1bmsKKzU5ODMgMDVhZjI5ZThkZjBlNzU2ZjZlOWFiZDY1NGU3OWI5YmJlYzAyNTE5ZCBsZWdhY3ktdHJ1bmsKKzU5ODQgNTY2ZjQ2YjlkNzEyNmM5OTM5OTZkNTU5ZGJlYTQ0ZjZkYzY3YzkwNiBsZWdhY3ktdHJ1bmsKKzU5ODUgNzg3OWYzYjM5NjA2ZWNmYmMzYzU3ZjM1NDQyZjM0OGVmYjYwMmYyZSBsZWdhY3ktdHJ1bmsKKzU5ODYgNTQyYzgwZTYyMTExNGZmMmM5ZjlmMmFjNzk5ZDllOWEwYjM0NWEzZSBsZWdhY3ktdHJ1bmsKKzU5ODcgN2YyMzBkNGYzNjU1ZDY2ZTM1MzQ4ZDkyYWVhNjkwYjk2MTM4ZGU0ZCBsZWdhY3ktdHJ1bmsKKzU5ODggMDVlODUwNTU1ODJjYjRhMzJlZTNlMTg0OTlkMjY4OGYzZTdiNjg0OSBsZWdhY3ktdHJ1bmsKKzU5ODkgMmIyZmM5YTBiNGVjMTY5Njg2MDY1YTI3YTI4M2JlMDJmOTRkZmQxYyBsZWdhY3ktdHJ1bmsKKzU5OTAgZDc4MDFhNzdmY2Q1N2JmMDQ5ZGU3YjQ1MzMyMTU5MzIzMGM3MWQwYiBsZWdhY3ktdHJ1bmsKKzU5OTEgMDE0NWI4YWUyZDVmYjlmZDA4ZjJhMjM2MTlkMGI1MjJhYzIyYWI3ZCBsZWdhY3ktdHJ1bmsKKzU5OTIgOTM5OTQ1MTkyMDAwMzhlZTcyMjNlNjcyNzVjZjFjY2U3MDdlZDdkNSBsZWdhY3ktdHJ1bmsKKzU5OTMgNDNhZjUyM2EwMGNhZmQ3MDY4NjYxYmRiNzAyNWI4YmI3MmRlM2JmOCBsZWdhY3ktdHJ1bmsKKzU5OTQgNzNiYzQxYmU3MDc0ZGUzM2FlNDFmNWExMzY5NDZiMWUxNjk4MDUwOSBsZWdhY3ktdHJ1bmsKKzU5OTUgODU1MmUxN2FkYTY4YTE4ZTg4Yzc0Mzk4ZWY4MDRlMjczMDc0OGUwMyBsZWdhY3ktdHJ1bmsKKzU5OTYgNTEwZGJmYThjNTk5ODdjZmZjYjRkMGU0ODI2YzZlZjM5ZTI3MGYxMiBsZWdhY3ktdHJ1bmsKKzU5OTcgZWI4M2U0YjBjNzMzNzgwNGQxMDA0MWY3YzYyZmIxMmQ2YTQ5NTc4ZCBsZWdhY3ktdHJ1bmsKKzU5OTggNTBlNWI0YzU4OTVmYzUyZjU3YWUzNDMwMzVhNWQzOTAyYTNiMWI1NCBsZWdhY3ktdHJ1bmsKKzU5OTkgMjRmYjlmNGY4OTg0YjQ3ZDFmZDQ0NTU4MjEyNDBiMmFjYWRkOGVmNiBsZWdhY3ktdHJ1bmsKKzYwMDAgMzhlMTQ4MGU3Zjg5ZGJkNjhlNjc3NjMwNTA5MzA2ZTJhYzYzNTk5OCBsZWdhY3ktdHJ1bmsKKzYwMDEgNzI4ZDU3NDVhZTdiODYyY2Q5MjJhODMyNTYxYTMyYjllYTM4OTNjNCBsZWdhY3ktdHJ1bmsKKzYwMDIgZTY3YWRjOGIyZjE2NjcyMjViMWRlN2UxNzIxZDBkOGY4NmMwZWY2NyBsZWdhY3ktdHJ1bmsKKzYwMDMgMjBhMTNmY2RhZTU0ZjkzMDBhZjk0NjM4YzRhNWQyY2Q2NzkwOWM0NyBsZWdhY3ktdHJ1bmsKKzYwMDQgYWM4ZDI0ZjFkZjA4Mjk4YTkwN2NiZDIzMmNkZjU2YWEwMmQzZWYyOSBsZWdhY3ktdHJ1bmsKKzYwMDUgODIzMDcwNzFjNjY1ZTdjNGUxY2Y3MjNiMTljN2NkOWQxYzUyNzgxNSBsZWdhY3ktdHJ1bmsKKzYwMDYgMzViZWM4OGQ5NzM0MmFmMjcxN2NlYjUxMTlkMjlkMWUyZWQ1M2QwZCBsZWdhY3ktdHJ1bmsKKzYwMDcgNmM1NDFjNjNjNDNhMTEyZjQ5YWNmMWI0NDI3OTA4MzA0YWNlYzdlNiBsZWdhY3ktdHJ1bmsKKzYwMDggNWFlYzQ5MTExNzcyNmE3ZmJjNGQyMjkyY2YwNDNlMGQwMDFiYWJkNCBsZWdhY3ktdHJ1bmsKKzYwMDkgMmIxNjZiMjIwYzExM2RhNzk4YzY4OWNjYTEwYWU1MjE1YjQ2OTFmMiBsZWdhY3ktdHJ1bmsKKzYwMTAgNmMyNTgwNDNjZmFhNWE4MzU0ZjA4ZGM1MDFhYWIwMzMzZWE0MzA3NSBsZWdhY3ktdHJ1bmsKKzYwMTEgNWRmMmFjYmEwZmM1MDE5NjJhYTI3YzllN2ZmODJmOTI5YTA2ZWUzOSBsZWdhY3ktdHJ1bmsKKzYwMTIgMjJkN2Y1NGM1NzkyN2UzM2JmODYyYzUyN2NmYTlmZjRmYTI3NjM2YiBsZWdhY3ktdHJ1bmsKKzYwMTMgMmM5MDBkYWU4Nzk5MzViY2JmMDg3YWUzZjY2NzVmMWRiZGE0NDdhNiBsZWdhY3ktdHJ1bmsKKzYwMTQgNmY1MjNiZDBhM2FiZmYyOWE5OWRhNGEzNDI2NjMxMGQzYzY3MmY0MCBsZWdhY3ktdHJ1bmsKKzYwMTUgM2Y3Y2RmMTY2M2Y3YWZmMzQxNzYzNjZhZTA3ZDBjNjFjMzg2NTRmNiBsZWdhY3ktdHJ1bmsKKzYwMTYgOWNhOGFlNzFiYmIwOGQwM2NiNTFlZDRiYmE0MDU4ZWIxNDA2Zjc4MSBsZWdhY3ktdHJ1bmsKKzYwMTcgMDRlZGZjYmI3MTIxMzBhNzNiNTk1OGQyZjY2YWQ0MDk4OWVlYTE5YSBsZWdhY3ktdHJ1bmsKKzYwMTggZjY2MzA2YmMwNjYzZTRkMjdjMTU3NGFlOGJmZGNjZDdjZTgxMmRmNCBsZWdhY3ktdHJ1bmsKKzYwMTkgYTk1YjM1MGE0NGRhZTdhYzc2YzFkNGVmMGQ2YmU2Mjg0NjRhMjE3ZCBsZWdhY3ktdHJ1bmsKKzYwMjAgZThhMmE1ZTRjN2IwNDYwYjg1N2NkZjA5OGYxMzZhM2MyMGE4OWQ2ZSBsZWdhY3ktdHJ1bmsKKzYwMjEgYzdlODA4NTk2ZDE0MWMwMjI1YTczZDM0MzcyYWZmM2YyZjllMDMwMiBsZWdhY3ktdHJ1bmsKKzYwMjIgMWQwMzVlMjExMjA5NjkxOGFkMWMwMTAyYmQxYmFjNzYyNjU4YzNmMCBsZWdhY3ktdHJ1bmsKKzYwMjMgMjQyNzliYWZhODI4NDI5MjcyYmE4Mjk2MDEwYTNjOGY3ZDE5Y2I0ZCBsZWdhY3ktdHJ1bmsKKzYwMjQgMjljMThmYjEzZDhmNDEyZDFjOWUwZTE4NjYxNTQzNmNlOTk5ZjY5NCBsZWdhY3ktdHJ1bmsKKzYwMjUgNTNjNjZkMTlkMTI3YTMzMGZhMjExNmJkNjhhM2YxZTM1YmNhMWJmYiBsZWdhY3ktdHJ1bmsKKzYwMjYgY2VlNGE2ZDg0MTVlYzFiYWYyYTJmOWNiOGI4MTJjNTA4YTA4MTU0NSBsZWdhY3ktdHJ1bmsKKzYwMjcgMDk4Yjg4ZDI2MGQxMmZiMDY2Njc3ZDAxNTc5OGQ1ZmY5Mjc4NDhkZCBsZWdhY3ktdHJ1bmsKKzYwMjggMThhOWM2MjgwNTQzYjUyMjliNzcxZjY2NzU5NGFhMzUxMTJjMTc2NyBsZWdhY3ktdHJ1bmsKKzYwMjkgYjhiMWI2Yjk3NDMzODdjNDdlNDhiMzMyZDAxYWFjYjU3NDJkZjMxMyBsZWdhY3ktdHJ1bmsKKzYwMzAgOTE4OTM4NzFiYTA3NDIzNDY2MzI1MzdmNDk3Y2U2YzY3MTQ4NTQyYyBsZWdhY3ktdHJ1bmsKKzYwMzEgNTIyNzg0MWNmYTFmYjcwNGU5YzFkZjgwZGQ5NTM1MWFhYWY4NWUxYiBsZWdhY3ktdHJ1bmsKKzYwMzIgMzViMzUzNmZiNzYzYjljZjU5YWVlODc3ZjJmMTY0Y2IxMTNjODQzYyBsZWdhY3ktdHJ1bmsKKzYwMzMgOTFjMTA4MjA2OWQ4MTMyMmQ0YjhmZDE0ODJmMDVlOTI1NWYzNTc5MyBsZWdhY3ktdHJ1bmsKKzYwMzQgNGMwYTVjYTMwZjk0YTY3NGRmOTdhY2RhNWM1OTFjYTgzMDFmNmJjYiBsZWdhY3ktdHJ1bmsKKzYwMzUgYWExMTEyZDU2NjY4M2FmZGE3NGNjODQxOTJjOWE4ZmU2MmYyZjk0YSBsZWdhY3ktdHJ1bmsKKzYwMzYgNmY3MTViZmYxN2U0ODIyOTk4Nzk2MjgxN2NmM2YxZTRlYmQ3ZWJhYSBsZWdhY3ktdHJ1bmsKKzYwMzcgNmRlNDRkOTY2MjkyNjU5YWU5NGNhMDFiYmFiM2Y5M2Q4YWNiZjEyOSBsZWdhY3ktdHJ1bmsKKzYwMzggOTIyYzAwMTY1Zjc2MTJmYWQ3NzEwNjRmMTRiMDU3ZTY5ZWJiNDQ1MSBsZWdhY3ktdHJ1bmsKKzYwMzkgOTc3ZmYxYWNlMDcwMWU5OTMxMjU3ODJkOTNlZTUxN2VlY2U3YzYyNyBsZWdhY3ktdHJ1bmsKKzYwNDAgZjZiMjE4Y2VjNmJlZjY0OWNmZWNjNmQ2NzQ3N2NiMjhlNzg3MWY5OCBsZWdhY3ktdHJ1bmsKKzYwNDEgNmJlMzY1YTY3M2IxNGMwM2Y0ZDU4ZWExZTgwZTg2Y2ExZWZlYzBhMiBsZWdhY3ktdHJ1bmsKKzYwNDIgNGM3YmFiNGNkY2E2ZThjYzJlMDk3ZGRhM2ZhY2MzYjBiMzgyZDVhNCBsZWdhY3ktdHJ1bmsKKzYwNDMgMWVjMTU0MjQxNzQ3NTdmMGI1N2U5ODAxYzZjYTdmNmIxN2IwMWVjYSBsZWdhY3ktdHJ1bmsKKzYwNDQgZTJiM2E2OTZkNjljNzU3YzVlMzdiMDcxNjc3Yjk5ZmJkZjNmNGE2ZCBsZWdhY3ktdHJ1bmsKKzYwNDUgNGVjMWNhYzM0MmRkYzdmZTI0NWEyMjNlY2NlN2EzMmFiMTMyYWE1ZCBsZWdhY3ktdHJ1bmsKKzYwNDYgNmVjN2RmMjA2OTdkMDg2NWU4ZTQ0MGU5Y2VhYmYxZmQ3NzU1MGU0ZiBsZWdhY3ktdHJ1bmsKKzYwNDcgMjY0ZDE5NmJjNGM2ZGU4ZmY4OTk2MmVhNjczYjJhOGQ0OGE0NTRkMiBsZWdhY3ktdHJ1bmsKKzYwNDggZmQxNjY5ZjhkODc0M2JhNjYxNjI4NGU1YmU4MjY1OTRmMDY5MTdkYSBsZWdhY3ktdHJ1bmsKKzYwNDkgOGU2NjM5NDVlMTc0NDVjNTkyNDk3ZGNiNWM3NzVjMjFjNTljODU4ZiBsZWdhY3ktdHJ1bmsKKzYwNTAgZWM4ZjViNzVkZjY0ZGFjYWYzMDE2YWU5NGRlODU0MTE5MmNkMTEwMCBsZWdhY3ktdHJ1bmsKKzYwNTEgNmY0NWJlZWQzODczZjcxY2RjMGIzZTg5NjYwY2MxM2UyYTZiNDM5OCBsZWdhY3ktdHJ1bmsKKzYwNTIgNmFiNGNiY2VkZWMyMDNiODI3OGEwMjI0MGY0OGY1NjI0YTJkNTA1MyBsZWdhY3ktdHJ1bmsKKzYwNTMgNzJhZDJmMWU5OTE5YWZlYzFjYzdiZWFiOGQ4OTg0MWFhZjU1YWIxNiBsZWdhY3ktdHJ1bmsKKzYwNTQgNGVkMDlhM2MzMjAxOGUyMTlkYTliNzYyMTE1M2JkNWY4Y2Y4ZmQxMiBsZWdhY3ktdHJ1bmsKKzYwNTUgMzZjYzNlZTU0ZjI4Yjg4MDBlZjNmYzEwZjIwNTUzNWMwNWU0Yjg4YyBsZWdhY3ktdHJ1bmsKKzYwNTYgYjVjY2NmMWM4ZjM4NjZiZWFkYzM5NDY0YmIyN2Q2ZDEzMTU2OGU0MyBsZWdhY3ktdHJ1bmsKKzYwNTcgZGFmYzhhMTBiMTg2ODA0NjBkZjdlMTlkMGYyMzRhMTYzNDI0YWNlNCBsZWdhY3ktdHJ1bmsKKzYwNTggYmQyMGMwNDI3NGZmYTZlNjllMWM5NGEyYzgyMzhiNzI1N2Q2MThkOSBsZWdhY3ktdHJ1bmsKKzYwNTkgNzM2NjRlYTIwMzBlMGJmZmZiZGYwYTA2NjFhNmVjZjNjMDNiOThkMyBsZWdhY3ktdHJ1bmsKKzYwNjAgMWMxOGY5MDYzNmZiYmUwODE2MTI2YTFlNjhlMDE0ZWIyNzM4YTFkMiBsZWdhY3ktdHJ1bmsKKzYwNjEgMjQwMzYyMGNhOTMxYWVmY2VlMDc4OTJkZDI3MjY0MGRhOWQzZjRkNiBsZWdhY3ktdHJ1bmsKKzYwNjIgZGU5ODdmZDY3Yzk0MzUwMmQ1YmNhZWJmMjE4M2M3YjZkYzlmYTA4OSBsZWdhY3ktdHJ1bmsKKzYwNjMgNTY0OTEyMjY3MjkwZjQ0OWUxZjI0ZWVjOTdiMWI0MGYyOGFiM2JjNCBsZWdhY3ktdHJ1bmsKKzYwNjQgNjI5MzcyMzIwNWE2YTgyOTRlZTkwYWUxNDI5OTg1MWI2NDkzMzUwNyBsZWdhY3ktdHJ1bmsKKzYwNjUgODgwMGRmMzY2YjEzMWQyYTI2NTJlMDBiMThlNTYyYjRkYTc3ZmUwZiBsZWdhY3ktdHJ1bmsKKzYwNjYgZTA3NTk3Mzg5ZDY0YmJmYjU4YjY4YzM0NTYxODcxZDI1Mzc2ZmQ4MiBsZWdhY3ktdHJ1bmsKKzYwNjcgNmM5MjYwYWUwZDE2MzZhOTVkMDEwYzM2YzBiNzZiMWQ4NzAyYWFlZiBsZWdhY3ktdHJ1bmsKKzYwNjggODczOGIwZGQ3N2ZkODcwMDljYmU4Y2ExZWYxZDEyMDdhMDViNWI0NyBsZWdhY3ktdHJ1bmsKKzYwNjkgN2M1NzExYTZhNDc1OTdkOTMxYmU0ZWU4MzI1NGEzMmMxNjU2NzdkYiBsZWdhY3ktdHJ1bmsKKzYwNzAgNWE3YTc2MTY2ZTdlMzk5ODE5NGUxMDEyMjFjMzk4ZTUzYjQyZDNmZiBsZWdhY3ktdHJ1bmsKKzYwNzEgNDA0OTZkYjhjZjFmY2M5OGQ2MjhlNzk4YjAyNmUwZDIyZjY4Nzc3NiBsZWdhY3ktdHJ1bmsKKzYwNzIgZDkwNjdjNWY1MGFkZDQ5ZTM5YTQyZTRiODNmYjE3MWRhZTM5ZmViZCBsZWdhY3ktdHJ1bmsKKzYwNzMgZWI2ZWY3ZWNhMjA3ZDI5ODliOThiMGE3MDA3YjFmOWM1NWQ3MGUwYSBsZWdhY3ktdHJ1bmsKKzYwNzQgYWE1ZjNlY2JmNTZmMzJkOGZjY2I0YzcyZDZhNTI5OWY0ZDg5Y2Y5NiBsZWdhY3ktdHJ1bmsKKzYwNzUgMWQ0ZjJmMjBhMjdjY2I2MTA5NmEyNTFkZGYwZDg5MTVjZGU5NjliZSBsZWdhY3ktdHJ1bmsKKzYwNzYgZGQ3NGEwNjAwNmUwNDAyMTcyNjNiODA1NzdlODQ2ODJkZDMxZDRkMyBsZWdhY3ktdHJ1bmsKKzYwNzcgODU3M2U2NWZhOTQ4NGYyNmJiM2RhZmI3ZjRmNDRmNjVhN2FjNDlmMiBsZWdhY3ktdHJ1bmsKKzYwNzggMGIwYzRlZDE5MzZhYzJkMjg1MmMzOTU4N2I5Y2U2ODM3ODYwNDU4YiBsZWdhY3ktdHJ1bmsKKzYwNzkgZDBhOTdhYzI1ZGFiNDczNjU4YTQwZDg2N2RjNzNkOGFkNjE0NDNiZiBsZWdhY3ktdHJ1bmsKKzYwODAgNDUzYTlmNmU5NjE4OWRlNjliNjMzZmY3MzViYjg0OGEyMDljNWUxMCBsZWdhY3ktdHJ1bmsKKzYwODEgNDg2NmEwZmMyYmJkNGU2NTUzNjZmZTU4OThhYmQ1NmY4MGYxOGNmOSBsZWdhY3ktdHJ1bmsKKzYwODIgMmYzMTRjYTBjZDMzOGQ2ZWM0NjE4ZTY0OGM5MThlZTBkYzFkMDgwYSBsZWdhY3ktdHJ1bmsKKzYwODMgMzIzMTY1Y2IxZmE1ZDc0YWVmZjhhYTdmYzMzNTRlNDc4ZDM0ZjBlNyBsZWdhY3ktdHJ1bmsKKzYwODQgZmRhM2MwOThjODk5NThmNTI5MzY2M2Y5NTkzMGEyNTdiMGM2ODFiYyBsZWdhY3ktdHJ1bmsKKzYwODUgMGU1YTdiMjIwMTZjZGVlMDNhYjIyNDEzZWU2MGYzYTE1NTA2NjA2OSBsZWdhY3ktdHJ1bmsKKzYwODYgNmU3MzU4NGNmNTc1ZWVkYTc1NjdmOTZhMjRlMDhlNmMxYTI0YjA5ZCBsZWdhY3ktdHJ1bmsKKzYwODcgYTNjOTdlMjA1ODQ3OTM0MmE4ZDk1NTdjZGViZjZmZGI5NDU5ZDg4NCBsZWdhY3ktdHJ1bmsKKzYwODggZWY3NTk2NjlhYTA0MjYyOTAzMjRlYmI4M2Q2NWQxNjRkYjY2ZGExMCBsZWdhY3ktdHJ1bmsKKzYwODkgMjhjMGRmMWNlMjg0NDk4MjM0NDgyMzg4ZjcxNTJkMTUzZDY4ZjMwNiBsZWdhY3ktdHJ1bmsKKzYwOTAgZjE1OGVkY2NjNzJjY2I2M2ZmZThiMWE1OTU5NjAyZjlkZDNkZTgwOCBsZWdhY3ktdHJ1bmsKKzYwOTEgYjc1ZWRjMGU2MzMzZWU2MGM1NjJkMWJhODBkMjZjMmU2NjZmNzNjZCBsZWdhY3ktdHJ1bmsKKzYwOTIgZDQxZDg5ZWI0M2U1MGNkOWJmOGI5Zjk1ZmM3OWYwMGEyMmU5MmY5ZCBsZWdhY3ktdHJ1bmsKKzYwOTMgNWE5OGE0ZmQ1OGI4NDIxMDEyMTJlYjgzODUxZmIyMjY5ZTBkNjAwYSBsZWdhY3ktdHJ1bmsKKzYwOTQgOWU0NjY1N2JiOWU4NDc5YzhhYzk4NmM5ZGNiOTdkMGM1YWU0MjM1YSBsZWdhY3ktdHJ1bmsKKzYwOTUgYmQ2ZWFhMmI0MWFjMzYwNzBlNGFlYmUyNWU1OTU1NjYzNzljMTJmYiBsZWdhY3ktdHJ1bmsKKzYwOTYgZDE5NWI4NzFlNzA0NGUxOWQ1OWJmMTlhNjUwMjZmNzRhNzI5ZjIyOCBsZWdhY3ktdHJ1bmsKKzYwOTcgMzQ0MDc3N2YwZTY1NmFjZTNlZDM4MDRiYzM2ODQxM2JkMDQzNDVkMSBsZWdhY3ktdHJ1bmsKKzYwOTggZTU0ZDM5MTA3MjQ5NTZmMmEwNjg5MGNlNWFkMmVlNWMwOGFkZWQ5ZSBsZWdhY3ktdHJ1bmsKKzYwOTkgMmViN2U5ZTIzNmJmNTdjZjA5ZDNkOTkwMmUyODJjNGMwZTk1NjVkZSBsZWdhY3ktdHJ1bmsKKzYxMDAgOTg1MTM0Mzc1NjcyMzZkODJkNGE4N2FjOWE4ZmJlZWE1NGM5YWUyNCBsZWdhY3ktdHJ1bmsKKzYxMDEgNDQxNjFmYjA0YjdlODM0YmZjNzcwOWJkZGQ2OTc5MWQwMTMwMjZlNiBsZWdhY3ktdHJ1bmsKKzYxMDIgYTdlM2JjMmE3Y2FjNDc5ZDQwODkzMzQ5Y2Q0YzJmMGJhMDNmYWUyYSBsZWdhY3ktdHJ1bmsKKzYxMDMgM2FiY2Y3MjVjNWY0MDk3NzYyNjczYjAyZDkyN2FkMWZhNDNmYTgzNCBsZWdhY3ktdHJ1bmsKKzYxMDQgODk0MTc4OTVkOTYzY2VkYzI1MDFkYTIyZDIyZTUwNTVmNzE4YzA0ZSBsZWdhY3ktdHJ1bmsKKzYxMDUgNjc2OGJiZDE4ZTA5OTgwYTcwN2I5ODViNWU2MmRkMGIyYjg5MDQ1YSBsZWdhY3ktdHJ1bmsKKzYxMDYgNmMwMDg2ZjkyNzBjZjk1MTNjYzQyYjliODU4NTc5ZGRkNDk0ZTdjMyBsZWdhY3ktdHJ1bmsKKzYxMDcgYzI4M2I3YmJkYTA5NTJiMjcyZDdiN2E4NTlhMGQ5NWVlNWE2Nzk5ZiBsZWdhY3ktdHJ1bmsKKzYxMDggNzAxODM1OTIzNzBlNzRlYTYzZmVkNjMxNGQ1MDc0M2E0MzVjYTJlYSBsZWdhY3ktdHJ1bmsKKzYxMDkgOGQ1MGE5NmY4NjgwZWE4MTFlNTAyMDBiYTU0MGE2NjY5NzE0ZjE5OCBsZWdhY3ktdHJ1bmsKKzYxMTAgZTRmYWFkYjRhYmUyZWRiNGUxODFkYzM5NzU2YWVjN2I5Njc1ODkyYiBsZWdhY3ktdHJ1bmsKKzYxMTEgZDA0OTc1ZGI1MmRjZjNiNDcwMjhlZDgyMmEzNzhmZmNkN2JlMWIzYiBsZWdhY3ktdHJ1bmsKKzYxMTIgMGQxNDYzYTQ1YjZmNTVjNjg1NzcwMGU2NjJkZWVkMzhiYjhlNWQ4NCBsZWdhY3ktdHJ1bmsKKzYxMTMgMDE3ZDMzNTZhNWVkMDQzMGZkMTM1OTVhMWIwN2I2ZTk0ZDA3MTQ2YSBsZWdhY3ktdHJ1bmsKKzYxMTQgNDllZTg5ZTAxN2FiZTUyNmM2MGYzYjJlYzliNzkzNzVlNDY3MjBiNyBsZWdhY3ktdHJ1bmsKKzYxMTUgNTY0ZmE2ZjE4NWE3ZDdjZDZmZTY3YzM2MmUxYjUzZDFlNzQwMjUzMyBsZWdhY3ktdHJ1bmsKKzYxMTYgMTZjYThmMGYzZjExMjQwMWEwZmM2NWYzNjZmMjcwMjhiZjM4YjRiNSBsZWdhY3ktdHJ1bmsKKzYxMTcgYTlmYjVhODk1ZmExYzMyZTZmYmFhYWJjNWY2ZDQwYmYwNjgyNjUzZCBsZWdhY3ktdHJ1bmsKKzYxMTggNjNjZGZiYjRhMmJiOTljNDEzNmIyOTQzODRhZDhkN2I4YmVmMDI5YiBsZWdhY3ktdHJ1bmsKKzYxMTkgNWQ2ZmUxNDVmNzczYTIxNGFhYzIzOGYxZWZiZTE3NDIxZDNmMzg5YiBsZWdhY3ktdHJ1bmsKKzYxMjAgMDYwMmRiMWQxZGZmN2E1ZjdlNWM3YWVkZWY1MTU2OGFlNzAyM2VjMiBsZWdhY3ktdHJ1bmsKKzYxMjEgNzI4YTM5YTNlMGQ1NTA4NGU1YWJiY2MzZjNmODdlN2UyMzE3MzVlOCBsZWdhY3ktdHJ1bmsKKzYxMjIgNTMwOWNlZjhjMTY5MmNjMjVmNWU2MTA0ODlkMWYzMGJhYWFmMGE0NSBsZWdhY3ktdHJ1bmsKKzYxMjQgNjZlZWFiNWE3NThjNjczMmYyMjQ2NzBkMTI1ZjE4NmNmYjY3YjM4ZSBsZWdhY3ktdHJ1bmsKKzYxMjUgZjg5ZmE3ZTk1Yjg0MDk1ZjQyYTE4Mjg1NGQzNGExZjFjNmM0MzhhZSBsZWdhY3ktdHJ1bmsKKzYxMjYgYWRlOWY5OTY1OTBhNWU3OGY1YThiYjA3OTJmMDcwMzU5OTUwNGI1YSBsZWdhY3ktdHJ1bmsKKzYxMjcgOWFjMWUwZDU2Njc0MTNjZmQ3ZTY4OTk4MGE1OGJmYmIwOTBjNmE2ZSBsZWdhY3ktdHJ1bmsKKzYxMjkgMzViZTVkZjZlZjc3MjJiOGY1MGEyMzVlYjFmMmNmNjE5MTFjNzc1NSBsZWdhY3ktdHJ1bmsKKzYxMzAgODI1YmQ4YzExYjFjMWFjNWM0OTZiYzdhY2ZjMmQ5ZjhjNDZhZGE2OSBsZWdhY3ktdHJ1bmsKKzYxMzEgMDU4ZDgxZDFkNTZkOTMyNmUzNzdkZTUzMDBmNTA5NjA2NzBkZTI2NiBsZWdhY3ktdHJ1bmsKKzYxMzIgYmQ2ZDAyOGQ5OGZjZWY0MjQ1MjViMzI0MzcyNjBkNTMyZGQ5OTNkZiBsZWdhY3ktdHJ1bmsKKzYxMzMgMzk5NDcwYTk1OGMyMmQ5N2NjYjg2M2U2Nzk0YzNmODk3ZTg1ZDc4YyBsZWdhY3ktdHJ1bmsKKzYxMzQgMDcxNjRkMzA0MjlkYzZkZDA3MzYyZWMyMGJjMmE5MWYyNWRkY2I1MyBsZWdhY3ktdHJ1bmsKKzYxMzUgYWQwM2UyMWZkYTU0YmNhNWMxMmVlNzc4ZjhkN2I4MTgwMjU4YWQ5MiBsZWdhY3ktdHJ1bmsKKzYxMzYgNTE4ODM3NDM3N2FlOTk2MjVmZDI1YmVhZTQ1Y2Q2Nzg0NTM2YWUyZSBsZWdhY3ktdHJ1bmsKKzYxMzcgNTU2ZWM4MmY0ZDkzOWUxNWYyYzZiZDUyOTU3NzRiZGQ4Mjc5ZGEyZSBsZWdhY3ktdHJ1bmsKKzYxMzggZWFiYmIzYzE4MThmZTQyOTYyYjFjMTVhOThhNjljZDA4NmE4M2E4NyBsZWdhY3ktdHJ1bmsKKzYxMzkgYWI5MjQ4MGZhNGVjYjNjOWIzMGQzNDM1NTUxOGY3Nzc4YmJiMjliYiBsZWdhY3ktdHJ1bmsKKzYxNDAgMWQxMzRlY2RhMDk0ZWUxNzdjODBiZmM3ZDEwMTRhYzM4NzRjMTQ0NSBsZWdhY3ktdHJ1bmsKKzYxNDEgMTY0MTNlZTU4OTY3NzQ1Njg0NzUxNDk3YTNjZmViYTBhZDBjNTM3ZCBsZWdhY3ktdHJ1bmsKKzYxNDIgOWE4YTQwZjIyMThjOWNiMjYyNjU4OGUxZmMxNTg1MGFkOWY2NDU0OCBsZWdhY3ktdHJ1bmsKKzYxNDMgY2VjMjdjOTNiNWNiODM0YzEwMTczN2RkNTEzZTYwODE0YWFjZmNlOCBsZWdhY3ktdHJ1bmsKKzYxNDQgZjZhY2U2MWMzZGZlNjRlYTM3ZWY5ODBhZWUwMDFlYjM0OTQwZDJjNyBsZWdhY3ktdHJ1bmsKKzYxNDUgM2VhZjJjNjczYTExYTc4OGZiNjI0NGFmMjIyM2IzY2JlMmJkMTA4MiBsZWdhY3ktdHJ1bmsKKzYxNDYgZDYxN2RlMTU3NzRiMmU3Yjc1YTJiNzY0N2FlYTdjOTA2MGFhYzIxMyBsZWdhY3ktdHJ1bmsKKzYxNDcgNzQ3NjRiM2VjMWJkYjc0YTVlNjU5Mjc1NjI0NmY5YWY3ZGZhYWRmMyBsZWdhY3ktdHJ1bmsKKzYxNDggYjA1MzE1ODE2NTc5ODMwNDUyYzA0ZTI5ZDlhMmQzN2YyMzg0ZjZlMSBsZWdhY3ktdHJ1bmsKKzYxNDkgYmRkYmFhNTFhYTVhOTMzMThhZmViOTJkYWIyZTRlNjNhZTVlZDdmNCBsZWdhY3ktdHJ1bmsKKzYxNTAgYjg5ODA3MzVkMDNiM2UxNDA5MzhhNjQyNDYzZmE5NDQzZDczZDhmZSBsZWdhY3ktdHJ1bmsKKzYxNTEgODcyMWZhZmRiNjdhYTliNWE5MjJkMjNjZjg3YzhmMjMyZWZjMDVkOCBsZWdhY3ktdHJ1bmsKKzYxNTIgYTUyN2Y0NDljYTI2NjYxZjVkMjkwZDM2N2QxMDMyNzZhYWQzOTJhZSBsZWdhY3ktdHJ1bmsKKzYxNTMgOTQ2NmVhYmI2NjlhNmNmMjY2ZmVjNjU1YzFjNzI2ZDczZTAyNjhhNyBsZWdhY3ktdHJ1bmsKKzYxNTQgZWMzOTI2NDMxMWZmMjQxNGZhZTAxYWVkNzQ3OTI2YzkxMGI5MGI3ZiBsZWdhY3ktdHJ1bmsKKzYxNTUgNjA2YzM4NTM1ZjMwNDUxMzQ3ZDE5NDY2OTBmYWViZmU2ZTE3ZmI4YSBsZWdhY3ktdHJ1bmsKKzYxNTYgYTEzNjJhMDYzMTIyNTIyZmNjYzE4ODAxZDc2NTM2ODZlMDIxNDM3MyBsZWdhY3ktdHJ1bmsKKzYxNTcgYmRiZGE5MzliOTk5OGY4YWU4YjZkNTFlNTUzYmNiMTM2YmE3YjViNiBsZWdhY3ktdHJ1bmsKKzYxNTggZDhmOWRmYzc2YmJmYzhkZjk2ZmYxYWQ4YWI2Y2Q3NGM4YWVmOWZjZSBsZWdhY3ktdHJ1bmsKKzYxNTkgYTc5YjhkODE5OTdmZWFhZDljZWQyYzE0YjRiMDkzYjkwZDJiYjY2NyBsZWdhY3ktdHJ1bmsKKzYxNjAgNmRmZDc5OTQ0ODcyZmMwM2M1NDk3NDkzYmE5YjEwOTI2ZDllYmMwMyBsZWdhY3ktdHJ1bmsKKzYxNjEgNGEwN2ZlMWUwYjUwM2NiNWJjYWM0OGQ2Njc2OGY0MjYzYTRhZDMwYSBsZWdhY3ktdHJ1bmsKKzYxNjIgYjVkMTc0MWRlZDRhNWE0OGVhZjA4YTA1YmNhYTZkNWFjYTMzMTY4ZSBsZWdhY3ktdHJ1bmsKKzYxNjMgOGRjMWU3NGMxNjk1NmViMjAwZWM2ODNhYWY1ZDg4OTE0YWE1YzdmZSBsZWdhY3ktdHJ1bmsKKzYxNjQgODE4ZWUxMTUwNTRhM2I5Y2U5NjAxMjJjMTE3YTgxYTE1YTA3NTE3YiBsZWdhY3ktdHJ1bmsKKzYxNjUgNTgxZjA3M2YwNzFkN2Q3NzBmNDcyZjcxOWNiYjUwMmMzNGZhMzAyMiBsZWdhY3ktdHJ1bmsKKzYxNjYgMTQ1NDEzOGM2ZjJkNDBjNWEwYjU2MDY4ZGE4YmZkNzA2ZWYwNDA2MSBsZWdhY3ktdHJ1bmsKKzYxNjcgNjczOTBjMWRhZWJlZGRjZWVjZjQxY2RmMTFiNDVjYzA5MzE4MGNhNiBsZWdhY3ktdHJ1bmsKKzYxNjggODFmNTM1Y2ExZDk4Y2Q0NmE2OTU4OWE2NWZlMGQyZmQ3YWMyZGIzZiBsZWdhY3ktdHJ1bmsKKzYxNjkgOTdiMWMyYTcwZWFlMTFmYjdjZDQzOTljMGU5ZDJlY2JlYjg3NGVlOCBsZWdhY3ktdHJ1bmsKKzYxNzAgZTIzYWZiZjc3ZWZkZjk1NGIzZjljYmFmOWIxYWQ2NWZmOWFjOTk4MCBsZWdhY3ktdHJ1bmsKKzYxNzEgOTMxMDg2Y2I4NTI5NTAzMzdhODg2Nzk1ZmVlMThmNTZjMDI0YzdiZSBsZWdhY3ktdHJ1bmsKKzYxNzIgZjA0YmViODBmODE2NzdhZjBmZGY2MThkNGE2N2EzYjUzZTI0ZTQzMSBsZWdhY3ktdHJ1bmsKKzYxNzMgMzQwODc1NmVjNjAxODkwMTdkMTQ2ZDBlZGRiNmYyNDc0YWU5ZjM0ZCBsZWdhY3ktdHJ1bmsKKzYxNzQgZmY3ZmE1OWY2MmU4OTM0YWI3Yjg0NTc0Y2I3ZDFlNDM0YzY0Y2QyZSBsZWdhY3ktdHJ1bmsKKzYxNzUgMTcwMzA1MTVmNjIzMjc1NGQzNTExMmE1OWQ4Y2YyMzBmZGNiMTUxMiBsZWdhY3ktdHJ1bmsKKzYxNzYgYzg2N2MyOTRiMTZjMDgzYWE5NjY3ZWQxODE5ZTYyMjg3ZjA0YjQ5MyBsZWdhY3ktdHJ1bmsKKzYxNzcgZGI1NzcwOTRmNjg1M2UxNTc1M2JlOWNiZDRiMDE2NmEzNmI5MGEyNCBsZWdhY3ktdHJ1bmsKKzYxNzggMGU5Nzk1MDA0Y2QyNjc2ZmNkMThlZDM2NzU1ZjE0YTg0ZjE0M2UwYSBsZWdhY3ktdHJ1bmsKKzYxNzkgMGY2ZjBlOThlM2I2NGI0ZTUzODFmZmUwYjY5NjBlMWQ0OWM3Y2Y3MSBsZWdhY3ktdHJ1bmsKKzYxODAgZGFkNGQ0MzM2M2Q4ZmUxZmJiODg4MDA1NjE2NzAwZjkwYTlkOGEyOCBsZWdhY3ktdHJ1bmsKKzYxODEgNzg3N2RlZjk0MDYzZDQ3MTQ5Y2ZmNWI5YTMwZTlmYzE0ZWE0ZThiYSBsZWdhY3ktdHJ1bmsKKzYxODIgYzA0NTMxZmMyNzA5NjkzOWMzMTQ0OGVlYWI0ZmNiNWM4Njk2N2QyYSBsZWdhY3ktdHJ1bmsKKzYxODMgOGU0Nzk4ZDIxOTE1ZWZjYWIzY2FjODdhZTRiZDU5NGQ4ZDQ4ZTgxOSBsZWdhY3ktdHJ1bmsKKzYxODQgYWRjODY3MDdmYTk2Mzg5OWI1OWUyOTI5N2UyZjRjM2VjNzcxOGE1MSBsZWdhY3ktdHJ1bmsKKzYxODUgYzEyMGE0ODNkNTkwOThkNjY5MWZjYTUzNTQ1YzJmODFmNzk0NjIwMSBsZWdhY3ktdHJ1bmsKKzYxODYgNWMyNThlZmZlODFjNGQ5NWJjNjA0NGY2NmE2MGUxM2EwMWY3NzE3MyBsZWdhY3ktdHJ1bmsKKzYxODcgZGU1Mjc5NDAyYjk0MzhjZGY2NDMzYzM3MzM4MTYxN2FkYTdkNDUwMiBsZWdhY3ktdHJ1bmsKKzYxODggNTAxMjE5MWVjMmRhYjE0YmJlYjQ3ODg4NzgxODA1OGNhY2YxZjM1MiBsZWdhY3ktdHJ1bmsKKzYxODkgOWU1NDRhMmMxOWEyZGE3MDg5MDk3NGI2YjEyMTNkNDg4YTY4ZDU2ZCBsZWdhY3ktdHJ1bmsKKzYxOTAgNzZlNWYzNTk4ZTY5YjRhMjk5MTkxODUzNWYxNDgwYzViM2E2ZmZkYSBsZWdhY3ktdHJ1bmsKKzYxOTEgYjM0MWRlZjRlZWY4Y2JjNjJhMDczNTY0Mjc4OTU2OTQ0ODA0Y2QxMyBsZWdhY3ktdHJ1bmsKKzYxOTIgMzIyZjYxZTRjMzg3NWFhNDgxNTY3MTYwYzNiODgzNTMyNmE5MGUxNCBsZWdhY3ktdHJ1bmsKKzYxOTMgYjJiMDYzYWEyNzU1MTBkNmJjYzQ4NDk3MWI1MDBmM2Y2OGY0Yzk4YyBsZWdhY3ktdHJ1bmsKKzYxOTQgNDNhMzdlNmI2NDY5YTRkMjFhYjBmYzNjMjY1YzA1NzNkMjM1ZTk5NiBsZWdhY3ktdHJ1bmsKKzYxOTUgMjY0NDJiNWY5Y2ZkODQ3YjYzYmUyNzgxZDRmYjNjY2I0MDliYmNjYSBsZWdhY3ktdHJ1bmsKKzYxOTYgMGZmNWJkOGViYjAxYTYwYjcxOWE3NjYzYTA5YzcxODhlNGMyZWZiNSBsZWdhY3ktdHJ1bmsKKzYxOTcgNjU3NzkwZGIwNmUzYzU5NDVkOWU3YWQ5Y2ZjMWNiZWMxZjY1ZDI4NyBsZWdhY3ktdHJ1bmsKKzYxOTggYTEwYTBmNjAxNGM0OWE1ZmJkMWE0YzM0Mzk1ZTI4ODJmODU1ZmY1ZCBsZWdhY3ktdHJ1bmsKKzYxOTkgNmYzYzdiMmYyYjhkZTgyOGIyNjY4MmQzOTk1ZjNmYmEyNzgwZjlkNSBsZWdhY3ktdHJ1bmsKKzYyMDAgMDY4NTU2MzgwY2IwODYxYzVmOGMwMjQ0MzBkYTE2MTdkYzgwZmVlYSBsZWdhY3ktdHJ1bmsKKzYyMDEgYmE4NGQ3ZTg1NTRiNWVjZDRmY2Q2OWQ1NzY5NzY0YjZlYWQzM2YwYiBsZWdhY3ktdHJ1bmsKKzYyMDIgZGUxY2IzMzIxOWUzMTE4YTNmOWVhMjA5MjFlYTE4MWE2OWU3N2U1NyBsZWdhY3ktdHJ1bmsKKzYyMDMgNTIzZjQ5YTFlNDJhNTcwOTg4ODI1ZmFhZjZkNjk2NWRiOTQxYmYwMCBsZWdhY3ktdHJ1bmsKKzYyMDQgYjI1MGIyNzBkYmQ0ZDBlYjA0MDEzNWRlNjY4YzhlZmEzNjZmYmIxNyBsZWdhY3ktdHJ1bmsKKzYyMDUgMDRjMDc1MzhjYWM0ZGI3NzJjZDE2MTI3OTVjMjM3NjQ2YjlhODlhNyBsZWdhY3ktdHJ1bmsKKzYyMDYgNDY5MmNiNDYwMDhlZTBjOWU5MzNmNmQ2ODc4YWE0MDVjM2JlOGY3NSBsZWdhY3ktdHJ1bmsKKzYyMDcgNmM5YzJhYzE1ZTRiMDE3Zjc0ODZiYmJkOGMxMTdiNGQwYzIzMTM3NCBsZWdhY3ktdHJ1bmsKKzYyMDggNmIxYjY2NDg2M2Y0MDk0MDI1ZTdlMGI1ZGFlMGM1NGNkNWIzN2FmYSBsZWdhY3ktdHJ1bmsKKzYyMDkgY2U3NGJiYThhNmE2ZDE4YmNlNzdjZTZiYzcyNDFjNzk5Mjc0N2JjZCBsZWdhY3ktdHJ1bmsKKzYyMTAgNzk1MjQ4MjlhNzMwNjY2ZGNiMWI0ODQ0MjEyNTE0YmE1MjNmOTI0YSBsZWdhY3ktdHJ1bmsKKzYyMTEgZTQ4MDdhMGMxMDkyZGUyZWNkNDA2ODU1OTdhNDI4OWM2YTI2MzY4OCBsZWdhY3ktdHJ1bmsKKzYyMTIgZWY1OWI0ZDAwMTM0OTA3YWQzOTI4NmQ5ZTQ4NjUzNmFjOWIwNDJiOSBsZWdhY3ktdHJ1bmsKKzYyMTIgNGZjODVjODJjYzIyMjU1NGFlNmI5YzBiODc3NzZlZDVmMmI3MGM2ZSBsZWdhY3ktdHJ1bmsKKzYyMTQgYjIwNzg3NmRmMjlhY2FjMDcyMjFhYTI2MDRlMGVjMDE3OGFjNDJjZSBsZWdhY3ktdHJ1bmsKKzYyMTUgZmZkZjFmMDZjZjhiNWMzNjNmOWM1NDc2Mzc5ZmY1Zjk1ZjdlNGJmOSBsZWdhY3ktdHJ1bmsKKzYyMTYgNjA4MGIyZWJjMWYxNGE1YzQ1YzIxMDc2NjBhNzVkYWNhZDkxMjg1OSBsZWdhY3ktdHJ1bmsKKzYyMTcgNzUwNDg4NGU4YTc0ZmM2MDdhODg2YTIxZWY1MjZmYTJkNTQ0NzU1MiBsZWdhY3ktdHJ1bmsKKzYyMTkgYWM3MDE4YjU3NzQ1NmNlYmIxMTZhNzUwZmUyMmNlNjRiOWRlNzMwYiBsZWdhY3ktdHJ1bmsKKzYyMjAgNTZkMzM1MGNhMWYxNzJkNjJlZGY5MzFiNTMyYjMwYjExMTVjOTY3MSBsZWdhY3ktdHJ1bmsKKzYyMjEgMTFlMDNkN2E3Mjk4MDVkZmVlZjc0NGE1NWM1MGU5MzM1N2JiNDA4OSBsZWdhY3ktdHJ1bmsKKzYyMjIgYTIyNDM4ZTk0ZmU5NzRiNTE5MTM0ODNhNTI1MjlhMzE1MmMxNWU3ZiBsZWdhY3ktdHJ1bmsKKzYyMjMgMmRiNjM2MzQ1OWNhZjFkNjlkZTJhOGJhYWMxNmZkMDM1YzE0MTk0MCBsZWdhY3ktdHJ1bmsKKzYyMjQgMzUzN2MwOGMxZWZmYmFiNDQ3MjM2YjhjMTJhYzNmMzI4Njk4ZDcxYSBsZWdhY3ktdHJ1bmsKKzYyMjUgOTdkMjI3OGEzMzFiOTQ1ZDQxMzFiZTMzZDU5MjgwZWM2YWQwZmJmMCBsZWdhY3ktdHJ1bmsKKzYyMjYgZDIzZmVhMjQ4YTFlYzI1YjFjYzE3N2ViNWRmNDg1NmMxNGVlYjFhOCBsZWdhY3ktdHJ1bmsKKzYyMjcgNjU5OGE1MTg2NjhmNzdhZjI1OGFiYTVhZjI3ZDljZDczMDFmYTlmNiBsZWdhY3ktdHJ1bmsKKzYyMjggODJiYjdkMmE2YjMxZTZmNTBlZjQ0NDllZjcwZjE3YWIzOTg5NTc1MCBsZWdhY3ktdHJ1bmsKKzYyMjkgMTViMWIwM2FkZTkzZDcyY2RlNTAxNzUwYjRlM2MxYjZlMTc5N2ZjMyBsZWdhY3ktdHJ1bmsKKzYyMzAgYjkxNmQ2MTRlMzYzNDY4NWFlNjU1ZDViODYyYmNjYWQ2MDc0OGE4NiBsZWdhY3ktdHJ1bmsKKzYyMzEgNTY3NDZlZWRmZTAzNzg5NzRiOGMzNDAzYjVlM2E4MWMyOTg0NDY0ZCBsZWdhY3ktdHJ1bmsKKzYyMzIgYmY4YzIzMGRmNWU4ZGQzMjBlMmMxNGZmNDQ1NTJiMGRlMjk0MGY1YyBsZWdhY3ktdHJ1bmsKKzYyMzMgZTYwMzYwMWM2OGNmNDQ2OGU1M2YwNjY1MzMyYjNmODUxYWY0YWNiYyBsZWdhY3ktdHJ1bmsKKzYyMzQgYzU3YjM4ZTQwYjJkYTUwYzc1ZWNlYWEyNTJkNzhkN2Q1NjBlMDg2NSBsZWdhY3ktdHJ1bmsKKzYyMzUgYmI0Y2MzZmE2MDAwYjA5YmRhZjdjMzhkY2U2OWY1ZjVlMDBkNjhjMSBsZWdhY3ktdHJ1bmsKKzYyMzYgMjlmZTZhMGRlMzY2M2I4ZDQ1YzJjNzQ5M2ViNWI0ODQwYWNmODRmZiBsZWdhY3ktdHJ1bmsKKzYyMzcgZGI1NDg4ZmU0OTViMmEwMDU5M2JiOTEzMDk1Zjg5NDEzOWE1ZWYzYiBsZWdhY3ktdHJ1bmsKKzYyMzggNTE2NDkwYzgxOTJjZGZiMDE2ZmExODViOTI3YzIwOGI3MGZkZDY4OCBsZWdhY3ktdHJ1bmsKKzYyMzkgNGI1ZGVmNDA3NzNjZWFmYTU3NWZjZTViMjA4YWVlMzNiMGM3OGRiMCBsZWdhY3ktdHJ1bmsKKzYyNDAgZDFhZTBlYTlhNTg1ZjkxMmQ3YWEzZDAwNGZmODE3ZDBkZWExMTJmOCBsZWdhY3ktdHJ1bmsKKzYyNDEgMmI4MTBhM2M3ZTQxNGNhNDJlNmM4OWI0YTEzN2I0Y2JkMGU0NmVjMiBsZWdhY3ktdHJ1bmsKKzYyNDIgN2NkYzBjNzE0NmQ1MGFjMjE5NzNmNTA2MGQ4Y2VjNjcxZGI4OTE4ZiBsZWdhY3ktdHJ1bmsKKzYyNDMgZDA5ODgzMThiNzU2OGM2YTUzZWJkYmUyZmNkNzliODcxZWRjNDM2ZSBsZWdhY3ktdHJ1bmsKKzYyNDQgYzhkMGY3ODIyMWNjMzZlODE3ODZkNjQ3NTA5ODllODdhZjBjNDcwYiBsZWdhY3ktdHJ1bmsKKzYyNDUgNmU0MGEyYTNlNmVmMGM0YTM5ODYzMzYwOWEyNDEzZWEwNmY4ZTM0NSBsZWdhY3ktdHJ1bmsKKzYyNDYgNGM3OGQ3M2M1NjY3NTcyM2NiNzczZjIzZDBhMmFjZjQyNmI1Y2MyMCBsZWdhY3ktdHJ1bmsKKzYyNDcgYWIxMTBiMWU5MmZmYTE4MmVhYzRkNjkzZTAyN2U0MzRjYjNiNjhkYiBsZWdhY3ktdHJ1bmsKKzYyNDggZWNjZmFkYTQ3ZjI4NWFiNGE5YmZhYTU0NWVlNGIyMWVjZDc3YWRkZSBsZWdhY3ktdHJ1bmsKKzYyNDkgZjM1ZGRlN2Y0MTQzZTVmNjEwYmFjZWQ5NmNhMjBmMzk5YzMwMDIxMyBsZWdhY3ktdHJ1bmsKKzYyNTAgZjk5MDdmNTczMjdlYzU3NjM4ZDdhOTIwMWVhNDdhM2NkY2M3YjY4OSBsZWdhY3ktdHJ1bmsKKzYyNTEgMTBiNTA2MWY2Y2JjZjg1NGM3ZTgxYTUyZGM0OTA5NGQwOWEyM2UzNyBsZWdhY3ktdHJ1bmsKKzYyNTIgYWMxMTRhNWZjOGZmODQ2ZTc5ODIxODM4M2NmNGJiNDFhZjdjNjZkYSBsZWdhY3ktdHJ1bmsKKzYyNTMgMjdjMzc3NTc1ZjRhYzRkZDlmNGZiMmIwOGFhOTk4MDZiNDFjNTRiNyBsZWdhY3ktdHJ1bmsKKzYyNTQgM2ViMTY5NGVkY2U2YjA0MjlkYzVjZTg1Zjk4YWEwYTY4ZDYzNzc0MSBsZWdhY3ktdHJ1bmsKKzYyNTUgYTYyMDNkMTcxNThiYTUyZTBmZDMzZDhjMjhiMWM0NTlmYWZmNWMzNCBsZWdhY3ktdHJ1bmsKKzYyNTYgYjQxMDE5NTU3YjZlN2NmZjg4ZjJhZTA4ODgxNmQ4MWNlOGMzMTk4ZSBsZWdhY3ktdHJ1bmsKKzYyNTcgMGQ3NDAxMTMxMGNkMWI1YmVhY2RjYWVhODI4NDlkZGE0MWQyY2Q3NSBsZWdhY3ktdHJ1bmsKKzYyNTggNzE4YzhhZjdiZTJhOWZjZTkyMTdiNWViZjI0NjJlYzQ5MjMwNzhmZSBsZWdhY3ktdHJ1bmsKKzYyNTkgNzc2NjM2MGI4NWI4OTFlYTlkYjc4NWVkZmViODViM2RjODdhZmJhMyBsZWdhY3ktdHJ1bmsKKzYyNjAgYjY1MzY4ZWQ4NmJlODlkMTdmYjliMWE5NTg5YWRjYmJlNjU3M2M0NSBsZWdhY3ktdHJ1bmsKKzYyNjEgNDY4ODM3YWQ0NWYzODIzYWM4OTIwODQ4OTg0YTUxZTk1NmFmODE4OCBsZWdhY3ktdHJ1bmsKKzYyNjIgN2U2NTM2NzMwZDBlZWVkMmJiODlkZTI5MTRjZjUxNjE4MTYwNjVjNyBsZWdhY3ktdHJ1bmsKKzYyNjMgMmY1NzM5MmIyZmRlMTI5YmM2ZTMwOTk0NjcxNjQzMjcyOWMzODMwYiBsZWdhY3ktdHJ1bmsKKzYyNjQgZTllZTRjOTA1YWJkMjhmNzJlODcyZWRmY2I1OWExOGI5MTFkNmVjZSBsZWdhY3ktdHJ1bmsKKzYyNjUgY2EwMmQ5Mjc4MTgwMTFiN2YwOTY4ZTI4MTc2NGY5NDVhNTg5YmE5OCBsZWdhY3ktdHJ1bmsKKzYyNjYgZDFjNDdmNGYxNTQxNTAyM2Y5NjkwZmFmMzdiNGVjMjlkOTY3M2E5NyBsZWdhY3ktdHJ1bmsKKzYyNjcgMWYyMGY1MWI3MDBlNDViOGMzNjUyYWIyNmZmZjU4Y2E5MjY1ZGRhMiBsZWdhY3ktdHJ1bmsKKzYyNjggZWM2OTYzYzM3NDFjMTY3NDA3MjY2ZmNmNTU0OGNjNDY3MDJkZTVlOCBsZWdhY3ktdHJ1bmsKKzYyNjkgNTFhN2M4ZmU3YzdiMjkyNmQ4YWMwNGYxODc4YzBlYWM2YjY5OTg3MCBsZWdhY3ktdHJ1bmsKKzYyNzAgYTgxNmFiZTg2ZjkwNDRkN2FjNjVhYWQzYzBmNzA3YWRjMDc1NGY4MiBsZWdhY3ktdHJ1bmsKKzYyNzEgMmYyNzUwMWRiM2MzZTQyN2UxMTM2Yjk1YTk2MmE3MjdjMGUxYzY1YSBsZWdhY3ktdHJ1bmsKKzYyNzIgYWNmMzVlZDBmMDI2NDc1MWVhZDAxMzc1ZDM0NWU4ODE0NTI4NzQ4ZiBsZWdhY3ktdHJ1bmsKKzYyNzMgODQzMTIxYTIyNmNhOTQ2MWI4NmRlZjZiNWMyYTE0YjcxMDhlMzdiMCBsZWdhY3ktdHJ1bmsKKzYyNzQgNDhlODU5ZjMyOGNiYzAxMWY2Yzc2ZWE0ZWFiNTI5ZmI1NzVkODJhYSBsZWdhY3ktdHJ1bmsKKzYyNzUgMmVhYTAwODYwZWRjNDYwYjJjOTkyNTc5ZWVlYTc5NmQ1N2U5YzhmNSBsZWdhY3ktdHJ1bmsKKzYyNzYgNDg3NzZiZjRiZDQ5M2M2YzMxMTczYjUwMjVmN2Q1YTk2NDg5MzhiMiBsZWdhY3ktdHJ1bmsKKzYyNzcgNGY3Mzk2MmFhYmE2YmFjODY0Nzg1YjJlMjA2OTc2YWJhN2NlODU2MCBsZWdhY3ktdHJ1bmsKKzYyNzggOTM4NjhjN2ExNWM5MGJlZWI4OTQ0MTk4NjIzM2FiZTZmZGI2ODRhMyBsZWdhY3ktdHJ1bmsKKzYyNzkgNDI2ZTc5NmY2MTE1MjE3OWVhNGRiOWU4YTE2ZGMwN2IxNmQyZjUwZiBsZWdhY3ktdHJ1bmsKKzYyODAgMTdhMjg5MWU2MjdmYjg5ZTUyM2Y3MTJmZTY1MWRmMTAwYzJjOTlkZiBsZWdhY3ktdHJ1bmsKKzYyODEgYmYzZjgwOTQxZWMxMWM4YTM3MWM1ODNmYzM0OWJhMGVlNmM5M2Q2NSBsZWdhY3ktdHJ1bmsKKzYyODIgMmRiZDUwODFjNzFlN2JmYmEwNTYwZThkYWZmNDFmOTY4ZGM1ZDY2YiBsZWdhY3ktdHJ1bmsKKzYyODMgYjlhMDQzNGQyY2I2ZjEyMDJkNjRmNDY0ODkzMmNjYTQ3ZWNmMDJiZiBsZWdhY3ktdHJ1bmsKKzYyODQgNmQzMjRmYmFmYWRjMmY5YTM2NTkzMmE5MjczMzIwNmMxN2Q2Mzk2YyBsZWdhY3ktdHJ1bmsKKzYyODUgY2EzNmUzMDhlMzNkOWRlMjczZjFhNjk3Nzk2ZDQ5YTIyZWU3ZDYwYiBsZWdhY3ktdHJ1bmsKKzYyODYgMzFlMTAwZDlkOTI5YzhiMGQ4YmFhNzYxNjE0Y2RlZDE1YWFhNzA0YSBsZWdhY3ktdHJ1bmsKKzYyODcgY2M5MmZhMmNkODZiZDhlZTZkZjc2NmQ4NGEyNGMyNmY5MzkxNWYyZSBsZWdhY3ktdHJ1bmsKKzYyODggODlkNGY1ZGVkNjcwMzc3NjA5OTk3ZWVlMWIzZjNiMzMzNjQ1N2NiZSBsZWdhY3ktdHJ1bmsKKzYyODkgZjMyNjc2YWIzZjNhMDYxMWQxNzFmODQ5OTBmYWY0ZDk2ZTU5N2QzNyBsZWdhY3ktdHJ1bmsKKzYyOTAgM2M1Y2E3NzI3OTg4M2E0MzEyZTY3MDU5MjI0NjhkOTI3MjFkNzY4MCBsZWdhY3ktdHJ1bmsKKzYyOTEgNWI2YTc5MWFjNmU3ZGU0ZWFkYTI0OWM4ODBjYjkwNDk5MmUzOGYwNyBsZWdhY3ktdHJ1bmsKKzYyOTIgZjdmM2U0YjU2OTNjMTRiZWQzOWRlZjYzZTZiYmRiZjljMTUxYzVjZCBsZWdhY3ktdHJ1bmsKKzYyOTMgMjQwZjgzNGFlZThiYmI0ODQ1ODMzOTQzNDZhOTU1ODcyMjRmYTIzMCBsZWdhY3ktdHJ1bmsKKzYyOTQgZGI0ZWEzYWJmODkxMmM0NzIwOTUwM2U5YzcyMDU2M2MyODE1Y2YzNSBsZWdhY3ktdHJ1bmsKKzYyOTUgOWFhYzM3ODkyZTg4OGZlZDg0OGJhMWRhZDRiNjdhYTRiNjlmMzI0NCBsZWdhY3ktdHJ1bmsKKzYyOTYgODIwYWJhMTA0NmMzOWFmZGYzOTE2OWYyMGY3MzAwMzQ5OWE3ZjhiMiBsZWdhY3ktdHJ1bmsKKzYyOTcgYzNlYzY5YjFmZTM2MDkzM2RkYzY1ZmYyMTNjNWNkZjc4ZTQyMjRhMSBsZWdhY3ktdHJ1bmsKKzYyOTggOTgzMWUwZmMwMWRlMDQ3MjhlOWI4MWZlYTJjZGQ1Mzg2YzAzYTM0NiBsZWdhY3ktdHJ1bmsKKzYyOTkgYmMyMmViNWQ0YTBhMTFiYTY1Y2Q0MjBhNjA1YzIzMzcyYzQxNTRjMiBsZWdhY3ktdHJ1bmsKKzYzMDAgYzM1ZDllMmE2ODYwODMyN2U1MjgyNGQwNGMyNDA5ZmNhMGUxYjlkZSBsZWdhY3ktdHJ1bmsKKzYzMDEgMDliZWJhOTQwOWRkZDRhZjUzMjg3NDAxYzI5NjQyODEyZDBhMmUxOSBsZWdhY3ktdHJ1bmsKKzYzMDIgM2UzZTk1ZGRjZTIyZmIzNDg5ZjQ0NmFhYjVkNWQzMjdmY2YwMjZiMSBsZWdhY3ktdHJ1bmsKKzYzMDMgOTY4NTFmNTFhZDZiZjlmZWRhZTVmNmE0ZWY2YmMxZDhkODM2OGU5NiBsZWdhY3ktdHJ1bmsKKzYzMDQgMDM5YmMzZTRlNjRlYTEyMDhmY2MzOTAwMjIyMTJmNmU2OTgwYjk0YSBsZWdhY3ktdHJ1bmsKKzYzMDUgZjBlZmZmMjhhMjRkZDFkMDU1YzM2YWM1OTNjMGI2ZDRmYWI2MTA5MyBsZWdhY3ktdHJ1bmsKKzYzMDYgNzdkOTEyZjJhYmNiNGYzMzA0MGYwY2I5M2Q5Zjg3NWU3YjQ4MDQ1ZCBsZWdhY3ktdHJ1bmsKKzYzMDcgMzQzMjMyYzFkYzlhMDc0OTM5OTcwZTZkMTUxYzQwYThiM2U5YWJiYyBsZWdhY3ktdHJ1bmsKKzYzMDggZmExNDgwZTYwZWQ2YjQ4ODhjZmVjZjY0MThiMmMyYzk3NmM5ZGUzZSBsZWdhY3ktdHJ1bmsKKzYzMDkgMmIyZWZhNDhmMjhkMjZiOTczY2NjZGRhMDNkMGQ1Y2IzYWY3NmJmYiBsZWdhY3ktdHJ1bmsKKzYzMTAgNWFhYjNmNjY4ZTg0Njk2ZDI1ZDE2NWFlYTczNjI3NDBhZjcyODZiZSBsZWdhY3ktdHJ1bmsKKzYzMTEgMjJlMjliMTc0N2UxMzlkOTU5OGVhYTUxMjZjNTkzMTNhZjM5OTQ5ZCBsZWdhY3ktdHJ1bmsKKzYzMTIgMjZjMjAwMjY2NjExOTgwNmUwMDdhZDM2N2NiODUzODVmNzIyMWRhNSBsZWdhY3ktdHJ1bmsKKzYzMTMgZjY2Njc5YWE4ZGUwYWNlMzZmMzZkYmIzZDdiOTViMzI5Nzk2ZTE4OCBsZWdhY3ktdHJ1bmsKKzYzMTQgMjEwODE2ZDM0OGJhNDVlZTg5MTQ2OTA3OGJjYmE2MmRhMDU4M2RhYiBsZWdhY3ktdHJ1bmsKKzYzMTUgZGUwYWQ3NTI3ZGU3ZmNlODQ3MWU4NjA5NGYyOGI3N2UxY2IwZjVmYiBsZWdhY3ktdHJ1bmsKKzYzMTYgMGQ1NGExNGVmMGI4Yzc0YmZiNjJkNTMzMmYyMzNlNTdlYzc4NjgyOSBsZWdhY3ktdHJ1bmsKKzYzMTcgZDE5MzM4ZmQzOGViNjllODU0MDVjZWUxYTA5YTA3MzY0ZjFlZTZmNCBsZWdhY3ktdHJ1bmsKKzYzMTggZmNkODJhMDE1MDdkMjYyMjk1NTViN2IwOTE0YmNhZWNkNzc1NWRhMyBsZWdhY3ktdHJ1bmsKKzYzMTkgOGRhYjNhZDk2NDAwNmJlZGZlZjhmNTk0MzQwZjMwZDczNjJjY2EyMyBsZWdhY3ktdHJ1bmsKKzYzMjAgOTdkMjRhZjM0OGNmZTgyOWI0MWM3ZDJmMmRhOWQ4OWZmMGExOGM3MCBsZWdhY3ktdHJ1bmsKKzYzMjEgNjlkY2MwMmUzMTM1ZmFiYzczNGU1MGViMTEyODEzM2Q5ZTM3MjFjNSBsZWdhY3ktdHJ1bmsKKzYzMjIgZDFjZmY0OWUzY2M4ZDI4MGE0NmQzY2EyNTU3ODdkMTRjMWNkYTE1NyBsZWdhY3ktdHJ1bmsKKzYzMjMgMGZmYzBiMzYyZmNiYjkzZmFiYmJiNWM1NzhhNjFkYzYyYjdlZDM5YiBsZWdhY3ktdHJ1bmsKKzYzMjQgOTc1MTlkZmM2M2FlYjc5ZGZlOGEwMWZlOTIyZjA4NWEwOWE4NWExNiBsZWdhY3ktdHJ1bmsKKzYzMjUgM2IxMTRmMDMxNWMxNDU2MTQ5MjE2MmFkNzg1YmRkYjhkOWU0ODA4NSBsZWdhY3ktdHJ1bmsKKzYzMjYgMjMxMjZlODA0MGEwYzEyNjJlYTE4ZDBmYWU3MmFkNGQ2NjRmNTVkOSBsZWdhY3ktdHJ1bmsKKzYzMjcgMDQ1N2VhOTRlZjc5ZmFmOWJjNzliZWYxZjI0YThhZmEyZjU0NmUwYyBsZWdhY3ktdHJ1bmsKKzYzMjggNTgzMGVkZTQwODZjNzQ0MDRkNDE3ZGUzMjUxZGNjZTMxNmUxOWQ5MiBsZWdhY3ktdHJ1bmsKKzYzMjkgODNhOTViZjcwODY3ZGJmMzc0ZDdkZTg1OTk3NDRmYTA4YjVlMWZiNCBsZWdhY3ktdHJ1bmsKKzYzMzAgOGI3MWVhNWRhY2M4MzE1NTAyMzlkNzM3OTRmYWFiYTZlZDAxMzUyNyBsZWdhY3ktdHJ1bmsKKzYzMzEgMDg1MzE2NmYwZDY5NjYwZDZjNDMyZWIzOGQyNTcwYWZkNGI3YjdmYSBsZWdhY3ktdHJ1bmsKKzYzMzIgYjYxOTM5NTI0YzNjZWZjYjRhZTBlMjE1MDQ4YzAwNjRkMTZlMDY1MCBsZWdhY3ktdHJ1bmsKKzYzMzMgOGI1OTAxMzk5YWRkYjRlYTIxNjhiZWI3YzkyZjU0MzU0YjFhMGM5NCBsZWdhY3ktdHJ1bmsKKzYzMzQgZDU1Y2RmNDNjMjQwMTljNjQwODllZmEyYzZmODcyNzA3ZmZmYTQ2MCBsZWdhY3ktdHJ1bmsKKzYzMzUgNDU2NmExOWMzNDM4ZDE0ZTAxNmFhMzcwZjIwYzM4ZTdmMTE4ZGQwMiBsZWdhY3ktdHJ1bmsKKzYzMzYgNzgxOTU2ODMyM2MzNzUzZjMyZDIzYjU3MDIxODA0YzY3NzI3MzZkYiBsZWdhY3ktdHJ1bmsKKzYzMzcgNDU5MTAzNTIyOGE3NzNhNTE2YWE0MGU4NTczZjRhNTlkZmJjZGU1MSBsZWdhY3ktdHJ1bmsKKzYzMzggYTNiMDlhNzExNjJiYzIyYmM0YzRiYTM3NjM3NmYyNjA2ZjYzOGQ3MSBsZWdhY3ktdHJ1bmsKKzYzMzkgZTliMzVjYzg4YjUwZTk0MGQyN2JjZGNiMDQ1NzcyYTllYzdmN2E2YyBsZWdhY3ktdHJ1bmsKKzYzNDAgMmFjMmE2MDEyMDViMzM1YmM4NmIwOTE3M2U2ZDU5ZDE0ZjUwOTcwMSBsZWdhY3ktdHJ1bmsKKzYzNDEgNGRkZThjMDQwZjllYzUxNjViZTAzN2ZiZWNjMDNhNWNhNWQ5NTY2YiBsZWdhY3ktdHJ1bmsKKzYzNDIgNWIxNDcxMDk1YTNhMjY3MjFmYjY0MWY0MjU1NjZhNjNiNDI0MjY4NyBsZWdhY3ktdHJ1bmsKKzYzNDMgOWIxOTUyODVmZTE3N2IxNWY0ZGU1NWEzZTRhNjU5NTg1ZmI3MTNjNSBsZWdhY3ktdHJ1bmsKKzYzNDQgNGU5NzkxNjE2NzFmNDM5YWU4NWUyMGJiZGQ1MDI5NTdmZTlmMzBjOCBsZWdhY3ktdHJ1bmsKKzYzNDUgYmMwZWRjNTg5YWQ0OWQ5YjVkNDkwY2FiNTI1M2FkMjRhNGViYzc5OSBsZWdhY3ktdHJ1bmsKKzYzNDYgZGM1YzExMTc3MzM5ODBlOGQ4NzU0MWU2MjcwMzdiNGE3ZTUwYWZlOCBsZWdhY3ktdHJ1bmsKKzYzNDcgMjgzOGRiODNkMGVkMzg2MDRlZjYyOGE0N2QxMGM0MzIwYTM5NTBiMyBsZWdhY3ktdHJ1bmsKKzYzNDggMDYzOGZkYzIzZWVjNGJhNmU2YjNlMjQ4MTg4ZjllNjE3YmQwYzgwMSBsZWdhY3ktdHJ1bmsKKzYzNDkgNDA4ZTM3NDkzNGU1YTQyNGQzMDQzYmZkNjRiODk1YWEyMTc1OTc4YyBsZWdhY3ktdHJ1bmsKKzYzNTAgNDI4NjkxMDA4MGE5ZmVhYWZkZTNmODEzMDc5YjhiZGJkMzc0OGQwYSBsZWdhY3ktdHJ1bmsKKzYzNTEgZmVlOTI4ZjE2NjFlNzc1MmY1NzI2ZmYzODgyYWRkZjAzYjk4MjljOSBsZWdhY3ktdHJ1bmsKKzYzNTIgZDBiNDU2NmUyMTA3YTUzNzQxODEzN2VlMTA3ODllYWJlODI1ZGNhNSBsZWdhY3ktdHJ1bmsKKzYzNTMgMmRhMTJjOWQ3MTRmNDczMmJiZDQwOWU1ODU2NjE4NmJiMmZlMzExNCBsZWdhY3ktdHJ1bmsKKzYzNTQgMzU3ZDczOTVjOTk4Y2RmNjZlYmY2NDZiZTU0M2Y4MzQ2NWNmYzQ4MyBsZWdhY3ktdHJ1bmsKKzYzNTUgYzg4M2Q1ZTI0YWQ4ZjMzNWM5MmVhZjZkMDJhYzlhODQ1NGE0NGVjMSBsZWdhY3ktdHJ1bmsKKzYzNTYgNmRjN2VkOGE0MzRiMWZmMzY5MGZiOWE1OTgxMWEyMjQ5YzEzMzRlMSBsZWdhY3ktdHJ1bmsKKzYzNTcgZmM5YjE2NWE4YTA5ZDMxMjg2YmUwODYwYTk4NDM3NTBiMzk0Njk2MCBsZWdhY3ktdHJ1bmsKKzYzNTggODFmNjBmNTJiODczMjU4NWFmNGU4YzM3YTljZjQ3NzE5Y2RhZTA0ZSBsZWdhY3ktdHJ1bmsKKzYzNTkgOTU3ZjQyZWEwZjg0NDQ0ODZhMjM3Y2I3OTJiMzA1N2VkN2MzMjNhMCBsZWdhY3ktdHJ1bmsKKzYzNjAgM2M3NTMwNmE2NWNlZDQxNjYzMzc4YzY5MGNhNWEzNDU0ZTlkYzdhOSBsZWdhY3ktdHJ1bmsKKzYzNjEgNTcxNjgyNWY2ZTliMTM3ZmY4NjdlM2Q5YmFiYjQzZjhlMzEzNWE1OSBsZWdhY3ktdHJ1bmsKKzYzNjIgZjkwMzAxNTQ0ZmE5YmU4OWE2YjhmMmE4OWM4NWI3YWE0ZDE2ZWIxMiBsZWdhY3ktdHJ1bmsKKzYzNjMgZDllN2YxMDg4YzNiMzYzYmE0ODUyY2Q4ZWE3MWM4Mjc0MWU3NmU4MCBsZWdhY3ktdHJ1bmsKKzYzNjQgYWIwODg5ZTQyMWVkNDdhMmIyYTU0MDQyYjk2NDQ2YjY0NDgwNTdhNCBsZWdhY3ktdHJ1bmsKKzYzNjUgOTU4ZDRjNjc1MjZiMDljZGRkMmUyNjIyNTQyMzE0M2UwYjJkZTQ2NCBsZWdhY3ktdHJ1bmsKKzYzNjYgYTUwYWU4MzkzZDM3ODBjYzc0M2JmOWI4MzcwNGMxYjk5MDUwMmVmOCBsZWdhY3ktdHJ1bmsKKzYzNjcgMzNlNWQxZDQyY2MyNjJmOTgyMDRhYmQ5MzUzYzE5MmVhN2NkNzUzMyBsZWdhY3ktdHJ1bmsKKzYzNjggZjRhM2IxNmU5NWYwN2ZhYWY0ZWYxZDBhMWMyZGJhYWU5OTI2YzQxYyBsZWdhY3ktdHJ1bmsKKzYzNjkgMzE4ZTY4OWMyMjBmOTIxOTdkOWVjNzY1YmU2OWVjYWYzMjQ3NWQ0NiBsZWdhY3ktdHJ1bmsKKzYzNzAgOTRjNmJmNmZkN2Y0ZmEwOTUwMjRjN2RhZjg4YWI0YjQ5MjFkYzUzYSBsZWdhY3ktdHJ1bmsKKzYzNzEgNTg0OTM2ODkwZjg2NjkxNWQyMTU0YmQ1MjVlNTBmM2Y0NWYyZDE3NyBsZWdhY3ktdHJ1bmsKKzYzNzIgY2JhNGNlMTVhMGQ1Yzk5YWE2NWE5Yzg1OTY4NGRkZTVjZGQ3YzZiZiBsZWdhY3ktdHJ1bmsKKzYzNzMgY2UyZDkyMzliYTgxMTQ1ZDhjNjBjMmM2MWY5MDVkZWI3Yjg2ZDgzOCBsZWdhY3ktdHJ1bmsKKzYzNzQgMDg2NGE2M2ExMGE5MmMxN2M1MWNkMzA0MTNlMmJkMDNmZmNiMWNiMyBsZWdhY3ktdHJ1bmsKKzYzNzUgYTNmNjdiYjk2YWRjOGMzMjZkZmZkODUyYjBlNzFmYzliZTczM2FhNiBsZWdhY3ktdHJ1bmsKKzYzNzYgZmU0MTE2M2MwMGMzZmYyOWRlNWY1NmU2M2MzMjI4ZDQ0ODdmMDEwNSBsZWdhY3ktdHJ1bmsKKzYzNzcgOTdlNzAxMWZiMWIxOTFhMzA0ZjY1YmY0M2ExNTZjM2ZjMzcwMzIwYSBsZWdhY3ktdHJ1bmsKKzYzNzggYTBmZDgxNjg4YmU1MmY1ZDU3Mjk1OGM5YzI0Y2MwNDkxYjZlYjMxOCBsZWdhY3ktdHJ1bmsKKzYzNzkgYWMxZDVhYmZkNzhlZTQ5MTBkN2U1ODMyYTc4YzU0NTI1ZDJhMzIxZSBsZWdhY3ktdHJ1bmsKKzYzODAgODY3MTY0MmUxNGEzNzhmOTk4YjkxZTgyMDZhNTc4NTViOGE0MDg2ZCBsZWdhY3ktdHJ1bmsKKzYzODEgNmQ1MDk2YjcwMzhkOGExNjlhNzQxYjA5ZTFhZWZiMTUzOTNkZDRjMiBsZWdhY3ktdHJ1bmsKKzYzODIgOWNmMTFhZjM2MjhjODk4NTljNTMxZDUzNWZjNGM3ODkzYzIxYzgzMCBsZWdhY3ktdHJ1bmsKKzYzODMgYTlhOTJkYzJiMzc0OTQ2YzI4NjQxNjEyMjNlYzE3ZmE3NjlkMTdmZSBsZWdhY3ktdHJ1bmsKKzYzODQgNWJiZTBkY2UyZTI2NzFjYWZiOGEwNDI3NDZkNGU1Y2MzODcxYzYwYyBsZWdhY3ktdHJ1bmsKKzYzODUgZjI4ZDNkODk4MmEyNWE3Mzc1YTFhNTFmZmQzNmUxMjI0MWExZmY0YiBsZWdhY3ktdHJ1bmsKKzYzODYgNTI0Y2Y1MDFjODUxZmQ4NWEzOWU3MmU1NjljYWU4MDY3ODdlM2NhMyBsZWdhY3ktdHJ1bmsKKzYzODcgMzQxMTQ2MTAwZjM4Y2E5OGZhNjdlNzBmYThlYTAwOWY5YmRjYzQyZCBsZWdhY3ktdHJ1bmsKKzYzODggODRlMTZjZjkyMTk5MjViNWNlMzhhNDk4OTBkMDI1OTlhZWZjMjI2NyBsZWdhY3ktdHJ1bmsKKzYzODkgNDQ0MTJlNDZmMjY4NzdlOTQ3MzBmNTkyNTdmNzhiMzhlYTM5YWU0OSBsZWdhY3ktdHJ1bmsKKzYzOTAgN2RlNWUxMTUzYjM5MmNiNmQ1NmZhZTVjM2Q2YTM3MTU5NGVhNDhkZiBsZWdhY3ktdHJ1bmsKKzYzOTEgZjQ4Nzc5M2Q2MDE4NDZkMGY5NjYyMTM3NTk3YmVkODliMzFmMzQ3MyBsZWdhY3ktdHJ1bmsKKzYzOTIgOTM2NjE2NGY1YzRhOTNkNzI5N2NhOGQ3NDk4MTI1YWNhMDE3NjEzZiBsZWdhY3ktdHJ1bmsKKzYzOTMgYzJhZTA0NDBjNDI0YTcyMjg0YTU3ZWM4NDIxZTk3NTM1OTU5NjljYiBsZWdhY3ktdHJ1bmsKKzYzOTQgZThiZDQzMGNkMzU3ZTg2Y2Y5OThkN2Q4OThmOTUwNTQyY2YyNWY5MSBsZWdhY3ktdHJ1bmsKKzYzOTUgYTM5ZDA2NDk3NTIwMzViN2Q5YTU2YjJjNDZlYTUxZGFkMTE4YTYxNyBsZWdhY3ktdHJ1bmsKKzYzOTYgMDYzZDg2NzQxNDEwZTJlZDg3ZDFjMjk2ZjlhZTE3ZTIzYzRmZjRjZCBsZWdhY3ktdHJ1bmsKKzYzOTcgNGJjZWU2M2Q1YmIxN2RiMDM4Mzc2NmZhNzM0MDBkM2E0YzMzYWVmOSBsZWdhY3ktdHJ1bmsKKzYzOTggMWRhMTY4MTg1ZTRlMDViODlhNTA4NmExOGRkYzZlOTMxODdjY2ZiYSBsZWdhY3ktdHJ1bmsKKzYzOTkgNTNlNzU3YmI2N2Q1ZDYzMWU2YmE5ODFiNWY4NGM3YzgxMmQ0NzdiOSBsZWdhY3ktdHJ1bmsKKzY0MDAgMTY0MGUzNTU5Yjg2Njc5OWQ5YzNlYTA5YjIyNTk5OWJiOGRjMTE1YSBsZWdhY3ktdHJ1bmsKKzY0MDEgZmY2OGEyZWMxZmYxMmNiNjE1Y2NiYzg3MmE1NmM1MjcwNGY0OTc5OSBsZWdhY3ktdHJ1bmsKKzY0MDIgNTJjMTllZTgzYTZiMGY3MWM4OTAwN2E1ZDIyYThkZGJlZmExOTI0ZiBsZWdhY3ktdHJ1bmsKKzY0MDMgODgyYTMxYjdmODczMTFmOGUwOGYwMDgyZGEzYWNiNDRiOTJiZTgxNyBsZWdhY3ktdHJ1bmsKKzY0MDQgZmUxMTk2OTk1MzQ0NmQ3MGFhOTIxMTM0ZjhkMzg3MTA3MGMxNDVkYyBsZWdhY3ktdHJ1bmsKKzY0MDUgNjBiYjc0M2I4YTVjMjAwMGQzYjA1NWY3MjI0NzhlNTk0YmJkZTM4NCBsZWdhY3ktdHJ1bmsKKzY0MDYgZjlhZDk4YjU4NDcyYjA4ZTdlNTk1MDJlNjMzMDNlMjhmNTgzZTgyOSBsZWdhY3ktdHJ1bmsKKzY0MDcgZDdkODcwNWJhNjQ0NGRkMGQ3YTFkNWEyMTg0OGIyNTcxNGI2YzljOCBsZWdhY3ktdHJ1bmsKKzY0MDggNmUwYmJhOTNhMGViMzM4NjA5NGRjM2E5ODQ5NzgzMjg3ZmVhZDgxOCBsZWdhY3ktdHJ1bmsKKzY0MDkgZGVjZDEzZjY2MjlkNWE0MzI0MGY1ZTVlNWQ4Y2RlZTMyYjc4NzEyYiBsZWdhY3ktdHJ1bmsKKzY0MTAgNjFiNGNhZTc3ZjdlODczNWFiMDY2NmRlODI4NWFjNTRiODZhNGNjZCBsZWdhY3ktdHJ1bmsKKzY0MTEgNjc1MzI4YjA4MTIyYjljYzk0NGVkMTIyZmQyZmNjN2ZiNDM3ZjJmYSBsZWdhY3ktdHJ1bmsKKzY0MTMgNDZiMzNjZjhiOTEzZTVkMDcyMmRhMWE1NWU4NmM1NWM5MjNlN2UyYSBsZWdhY3ktdHJ1bmsKKzY0MTQgMGQ0NDM3ZDFjMmI1N2ViYmJhZmFlMjAwZTJiNTkyMWNhYjBmYmY2YSBsZWdhY3ktdHJ1bmsKKzY0MTUgMzg2ODQ4NTIzNzZmNTQyMjYxMzk1M2MyZDBkMmIwZDY3ZDJlMTQ2YiBsZWdhY3ktdHJ1bmsKKzY0MTYgNmU2MDllMjY2YmU5ZDEwYTliMWEyMzYyZGQ1NjRmNjlmNGUzZTdjOCBsZWdhY3ktdHJ1bmsKKzY0MTcgZmJhZmIwY2QwYTJhNTVmZjMxM2FkNGU3MDkwZDEzNzRmODA0ZjgxNSBsZWdhY3ktdHJ1bmsKKzY0MTggNzNjZjcwODJiOWU4ZDc0MTQ3MmM0Y2ZiZThjNjZkZDI3MTUzNDkzMiBsZWdhY3ktdHJ1bmsKKzY0MTkgNmY3OGQzMTY0Mzc2YWUyNDIxZjUwMDQxN2ZmMmNkNzkwMjA1MzQ5MyBsZWdhY3ktdHJ1bmsKKzY0MjAgMTA3NTNlNGQ3NmU3MWRjNmEwODVlNTI2MjJkZjkxNGE3NGMwN2NhZCBsZWdhY3ktdHJ1bmsKKzY0MjEgZGVhZGVhNDNiYjUzNjQ1MzVlNWRkMTcwZjI4YWVmMGQxN2NmZjk1NSBsZWdhY3ktdHJ1bmsKKzY0MjIgM2FjYWY3YWY0OWNjMTAxMzY2MzBmMzQ1N2EwMDI1ZWEwNmFkMmYzOSBsZWdhY3ktdHJ1bmsKKzY0MjMgNzVkMDE2Yzk3ZDFjMmNlZWY0NzhmZTg3NWMzMmJkMDg1ZDFjMDMwYyBsZWdhY3ktdHJ1bmsKKzY0MjQgOTA4MTgxOWFiYmY1NTY3NDJhOWY5ZjQyMGIzNTY1OWVhZjQwYWRmMCBsZWdhY3ktdHJ1bmsKKzY0MjUgN2VlMWIxMDBlZDI5YTRmZjFmMjMxNTdiZThjMGNmYjQ5MmE0M2QwYyBsZWdhY3ktdHJ1bmsKKzY0MjYgZjBmOGI1MGI1YjZjZDY4NmVjMGU2YmI0OWNjZjAxZGZlZGFiM2M5MCBsZWdhY3ktdHJ1bmsKKzY0MjcgOWQ4YTk2NWRlN2VjOGFjOWY1MzZkYzU1NjU0MTQ5NmU0YTgxNjUyOSBsZWdhY3ktdHJ1bmsKKzY0MjggMjkwMTViNThlOTIyMDIzNDUyOThlZmI5ODEwZjk0Mzg3Nzk5NzhhNiBsZWdhY3ktdHJ1bmsKKzY0MjkgOGUzMDliZTg5ZWU0NTRmMTdkZDA2MGUxZTU5YWVkMjdiNzkyZDBlOSBsZWdhY3ktdHJ1bmsKKzY0MzAgZjAxZTdhZjFkZDYwNjgzYjFmMzAyZTkzMjU3YWM0NzM4NTg2ZWQxMyBsZWdhY3ktdHJ1bmsKKzY0MzEgYjg2YzgwNDQ4ZDM1NWU3ZTg5Y2JjNzZjMjI0MzU0YmNhYjMxMmNiMyBsZWdhY3ktdHJ1bmsKKzY0MzIgNmFmN2E3MDNhZGFlZGExYzZmNWU1ZDVkMmI1YzI5NDg0MjJhMjY0YSBsZWdhY3ktdHJ1bmsKKzY0MzMgOTBmNTA1NTU1MGQ5YTA0ZTUyYTZjZjZkNTAwMjE1MWM3ZWM4MTJjYyBsZWdhY3ktdHJ1bmsKKzY0MzQgYmZkOWJhZjNhOWMyOWZlNWVkNjNlMmE2YTgxYTIxMGM0ZjVhYTg4OSBsZWdhY3ktdHJ1bmsKKzY0MzUgZjA4ZDdmMzY4ZWJmYTE4ZTk5ZDAzYTZhOGQ0ZGYwN2Q1MDRlNGZlOSBsZWdhY3ktdHJ1bmsKKzY0MzYgMDA3MjI5OTBiODBjMzFmMmVkOWRkZjI1ZjVkYTQ4M2YxODY2NjRiMSBsZWdhY3ktdHJ1bmsKKzY0MzcgZmNmZWM2YTgxMGJhNTQzZTY3YjIwZjkyYjE5NDk3ODhkNmZiNWE5NyBsZWdhY3ktdHJ1bmsKKzY0MzggOWMwNWZmNmZiMGE0ZTRiYjc1ZTViZDA2M2ZlOTdhMjFiNzEyNjE0NyBsZWdhY3ktdHJ1bmsKKzY0MzkgMjg5N2RhZmVkOTVhNzI4NGVjZjlhYTRjYTI3YmYwZDJlOTExNjcwMyBsZWdhY3ktdHJ1bmsKKzY0NDAgNTMwMTllM2E2ZDVhMzQwNTkyODJlNWY3NzhmMzdhZjJmMWQzZTI3MyBsZWdhY3ktdHJ1bmsKKzY0NDAgMTI5ZjEyOTlkNGU5N2U4ODRiYmJiZGQwMGJhZjEwMWQxNzg5NzNlNiBsZWdhY3ktdHJ1bmsKKzY0NDIgYWQ4OGEwMDA1MjFmN2IzZjNlZGI1NTRlYmFkZDg3NzBlOGYwMDhkMyBsZWdhY3ktdHJ1bmsKKzY0NDMgZGMxNDQyNTk0OThmY2U5YWE2ODliMjhmYmM5NzYwMmNhM2FmMzBkMSBsZWdhY3ktdHJ1bmsKKzY0NDQgMTQ4MTUyNTJjN2EzYTVhZTQxZDNmODkxYjVmOGIxMmJiODM4MTkwNCBsZWdhY3ktdHJ1bmsKKzY0NDUgYmIwY2U2NTNjMmJhMDI3YmI0MTI5OTdkMGIxOGI0YTcxNmRiZjZiMyBsZWdhY3ktdHJ1bmsKKzY0NDYgM2QxZTRiNzZmNzQ1YTkyYzkxNWE4NmRiM2JmZDE4ZjM3N2U2ZDg5ZCBsZWdhY3ktdHJ1bmsKKzY0NDcgZmM1MDVmMDJhZDhhMjgwNzU5ZWIwNzRlNTJiOWIwODAyMDA1NDY5ZCBsZWdhY3ktdHJ1bmsKKzY0NDggYjc2ZmU2N2VlZDQ0ZWE3MDkzMDIwZDc5NTYxNzBiNmE3MWY1YmUyNCBsZWdhY3ktdHJ1bmsKKzY0NDkgYTM0OTk3YjZlZGY0MmJkN2RlMTUyMDMwZjIwYWUyMjU0N2MyY2MyNyBsZWdhY3ktdHJ1bmsKKzY0NTAgZWFlYzRmNmE4YmU4Y2ZmN2ZlMTNiYjA5NzAyMzA0YWJmZWQwOTUzNSBsZWdhY3ktdHJ1bmsKKzY0NTEgYjkzYzRjZmMyY2ZlYTRiNGMzZjQ2M2E0Y2FlNTM1ODg4MDAzZWU3MyBsZWdhY3ktdHJ1bmsKKzY0NTIgODdlNTNjNjJjYWM4MjE2MGM3Y2Q5MjY4ZjA5YzdmMTNlMTgwNTg3MSBsZWdhY3ktdHJ1bmsKKzY0NTMgNGI1MDk4YjFmY2VmMjgwNjBhYjg5MGNlOWEwMmZjZTkyMzZhYmEyMiBsZWdhY3ktdHJ1bmsKKzY0NTQgZmI1ZmMwMzIwZTZlNWQ1MmRhYWM5NzU0NTM2OGNjOGJhOWM2YjFhYSBsZWdhY3ktdHJ1bmsKKzY0NTUgY2FmMTEwNzI0Y2MxNzdlNDUwM2JmNjA3OGRiNzIyOTZhNTEyOTdhMiBsZWdhY3ktdHJ1bmsKKzY0NTYgNDQ5MDI1MTY2MTRhOTAxZmM5ZWQ5ZmNjNjhkYTkxZDAwZjRhYjE1OCBsZWdhY3ktdHJ1bmsKKzY0NTcgMDYxM2YxN2RjZmQ4NjUzYTMwNDc0NDcxM2QwMmY3YjE2YTY3YTU2MyBsZWdhY3ktdHJ1bmsKKzY0NTggMDExY2ZlNzQ5MGViNWY5NmY0ODM1YjRjNjVlODZjZGM2OWZkZTJjMSBsZWdhY3ktdHJ1bmsKKzY0NTkgOWMyY2JmMzA2ODY0ZDJmYjliMDUzYzNkOGIyYmM0MWU0NDhhOTJiMCBsZWdhY3ktdHJ1bmsKKzY0NjAgNmZiYzVjNjY1ODEyMWU1YTQwODUwMjBkZGNjMDZmN2ZiMTY2YWUzNCBsZWdhY3ktdHJ1bmsKKzY0NjEgZWZiM2E1YTJjZGVhY2JmYjFmMzBlMzkzNGU3ZmFiM2EzZGU3ODg4YyBsZWdhY3ktdHJ1bmsKKzY0NjIgYTgxNTc2NWI0Njk1MmMxZjNhODgxNjE4MjQwNWUxMDhlMTdmNTAzMiBsZWdhY3ktdHJ1bmsKKzY0NjMgYWU4ZDFiNDY5ODEzYTcxZmE3NTNjYjQwZDEwM2FmZGQ3Y2Q5MmRiNCBsZWdhY3ktdHJ1bmsKKzY0NjQgY2ZiOGI3YmMwMjMzYTVmMTJjZTE3ZjVhZDEwOTFlZDZkZGU1ZGQyMyBsZWdhY3ktdHJ1bmsKKzY0NjUgYTRhYWM3NjZjYmYwMDU4MjhlYTlkMmJhNTRiYzk3NTYxZTdhN2FkYyBsZWdhY3ktdHJ1bmsKKzY0NjYgNjQxNGZmYjdmMjg1ZDM2MmUzMjNjNTY4OTc1NTA5NjUwMDJlNzM1ZiBsZWdhY3ktdHJ1bmsKKzY0NjcgM2Y1N2FiMzJiNzQxMmIzMzVjMGU4YTM4MWE0MTI0MjNjYWFhYmRlNSBsZWdhY3ktdHJ1bmsKKzY0NjggY2EwZTA1ZWM4NWI5YWFkMzBkMThkYTkwYTRkYzNhODExZTVhNjFjMSBsZWdhY3ktdHJ1bmsKKzY0NjkgMGVjMmNlOTdiOGUzY2JkMGFhZGVlMDMxODEzNWExZTJmODhjMDMyNiBsZWdhY3ktdHJ1bmsKKzY0NzAgODA2OTc5MGIzOTc0MDA5MTllZTk5MGNkMzkyNDRmNGQ0MGMyNDY3YiBsZWdhY3ktdHJ1bmsKKzY0NzEgZjYzMGEwNjdhZThjYjIyMTBiNjhjYzc4MmY4NWUxNWVlODliMTkzOSBsZWdhY3ktdHJ1bmsKKzY0NzIgYjA5NzZjZGJkNTk4MDNiMzAzZTZjYTAxMzY5MDU2YzdiMGFhNTU3YyBsZWdhY3ktdHJ1bmsKKzY0NzMgYmZmZmQzOGQ2MDBiNWQ5NjVhNWNmYmU2MWE0NjhlZGE1ODJkMjM1NiBsZWdhY3ktdHJ1bmsKKzY0NzQgMWVkNzczZTE1OTM2OTM0NWMzOWUyODY3NDQ5ZjE5ZTNlMWJkYTFmZCBsZWdhY3ktdHJ1bmsKKzY0NzUgNDI0MTU4MjYzNmFkYjM4ZWNjMTQzODJkY2QwYTNmYTVjODY4ZDFkMiBsZWdhY3ktdHJ1bmsKKzY0NzYgMTM4ZmExNWExMDMyZWMxYjE4YzY5MWU2ODFjZTgzOTdiZjhjOGVjNCBsZWdhY3ktdHJ1bmsKKzY0NzcgZDNhMWY2MDg4YzI4ZjEzMTk5ZjBjMjQ2MDBmZjFiOWI4N2VjZDg3NyBsZWdhY3ktdHJ1bmsKKzY0NzggNzQ5NTMyMjQyN2M3NmFjNmUzZjc5NTM2NzYzZDk1ZDcxMWYyYzI3ZiBsZWdhY3ktdHJ1bmsKKzY0NzkgYzJhNjExYWUwZmVjZjQ5NjkwMDNjMmU5ZjUxYmI5ZjE0MmE0ZDg0YiBsZWdhY3ktdHJ1bmsKKzY0ODAgMWEwYWE5ODZmNmZhNjQ1NWI3YjEzZjdlYjQyYTVhMmU1ZDdjMTE3NCBsZWdhY3ktdHJ1bmsKKzY0ODEgMThjMzI3MTRmOGJhNTVkMTU1ZWE2YTg5NjJjZTA5MjkwMWM1MzYxNyBsZWdhY3ktdHJ1bmsKKzY0ODIgNjExMDY5ODZhMWE0YzliZDUzNWM2MTExYzRhYzlkZjQwOWEwY2VlZiBsZWdhY3ktdHJ1bmsKKzY0ODMgY2NjZjlmMjczMmNmM2VkNGZlOTdmN2U1MWYyNTI4ODcwYTQ3ZGQzZiBsZWdhY3ktdHJ1bmsKKzY0ODQgOTI5NDExZGIyMGE4NTg3ZjYxNTQ5NzIwZDgwYjg3NjM1ODA2YTg3ZSBsZWdhY3ktdHJ1bmsKKzY0ODUgMjJhMDMzYmJlNjU1ZjE1YjQwM2Y0NjFkYjQwYjRkZmU2YTU2ZjUyMiBsZWdhY3ktdHJ1bmsKKzY0ODYgYWE5NTQ4ODg1YjNmODBhMzIzYTg3MTI3NDRhYTVmYzdjNTc2Y2ZjOSBsZWdhY3ktdHJ1bmsKKzY0ODcgNDkwOWVmMzllYWYxZGI4MjQxNDY4NDUwMjFjOGVmMzQ1MTkwNzM2NSBsZWdhY3ktdHJ1bmsKKzY0ODggMjExMjE1YzFjNTBkNGIyNGEzZDc0ODRiMzIxOTYzNmVhNWYxNjc0NSBsZWdhY3ktdHJ1bmsKKzY0ODkgOTM4OTE4ZmYzNTM3OTUwZTY5MjQ4ZTRlYjJmYmY2YWUzNTdjNjY2NyBsZWdhY3ktdHJ1bmsKKzY0OTAgNWRjOGMwNDI5MDViNWMxZWIyMjZkNTg3YWE2NWRiM2FhNjcwNGE0MSBsZWdhY3ktdHJ1bmsKKzY0OTEgNDBjOTI5MzM1ZDdmMjQ0NDIyNmM0ZjdiNzcxNWU2NjdhOGQ1MjMwZSBsZWdhY3ktdHJ1bmsKKzY0OTIgMWRlZTNlNGY2N2RmMDIyMjRlODVkMzNmODRiNmIwMjMwZTM2MDg3NSBsZWdhY3ktdHJ1bmsKKzY0OTMgZjQ5ZTQwNTdlYjY4MzAyZjI5OWIzN2FmY2Y3NjEyMjkzODllMjUxNCBsZWdhY3ktdHJ1bmsKKzY0OTQgY2YyNjMwYTQxZjg3NTJlNmZmNTM3NThjMTZlY2U1YWNhYjkxMzYzMyBsZWdhY3ktdHJ1bmsKKzY0OTUgNGZjY2Q5ZWVlNjc5YzIwY2M3MWVhMTU4MDJkOGViMDAwYzU4NTdkYiBsZWdhY3ktdHJ1bmsKKzY0OTYgODkyZjQ1NjE2NDhhMDk1MGUxYzVhN2JiMTUxYjU2OTg0NzYxOTgyMiBsZWdhY3ktdHJ1bmsKKzY0OTcgNTNkNTExYzAwMjlmNTQxMzE4NTdmMmNkN2RkZTRlMGIyODFmOTQxZCBsZWdhY3ktdHJ1bmsKKzY0OTggODU0ZjI1ZmRlOGY0MmMwYTI3ZjgxNWNiODY1NzY3YmY0ODkxZWQ2NiBsZWdhY3ktdHJ1bmsKKzY0OTkgNmJiYzEzYjdkY2E4OGI4Mzk2MDgxNTU0ODVjNmE4ZmU5ZTA3YmQ0ZiBsZWdhY3ktdHJ1bmsKKzY1MDAgMmNkYjhmNWFjMzY1ZjhkY2ZkNzg0NzcxYmNkYTE0YWIzOTYzNzRmNCBsZWdhY3ktdHJ1bmsKKzY1MDEgZGEyYjlhZTkxZDk1M2VjNjBiOTE2YmY0ODczMGE5MDc1NmU5YjIxMCBsZWdhY3ktdHJ1bmsKKzY1MDIgODJjOWRlZTA1M2JjNmQ0NDFlZTRhOTk2N2E4YjM3NTA4NmY5Mjg1NSBsZWdhY3ktdHJ1bmsKKzY1MDMgZTc3ZmFmNTU2OTdiOGYzZGM1MmVhMDRlNzA2YzhkYTNkZGE0OTQwOCBsZWdhY3ktdHJ1bmsKKzY1MDQgM2EyMDAwMDJkODBhODgwZWEzNTA4MWZhNjZhYjBkOGY4NjYyYjU1MCBsZWdhY3ktdHJ1bmsKKzY1MDUgODkzOTQ5ZDFkMjhlYWE3ZTJmN2Q1Mjg3ZWRlMTQyMjVjNzA2ZDk5NCBsZWdhY3ktdHJ1bmsKKzY1MDYgNTU5MmRlOTY1NmRlNGE5MjAwNDllMDVkMWViMzRiNWI4ZjY1YWMxZSBsZWdhY3ktdHJ1bmsKKzY1MDcgYjQzMzM4YzUyMzFlMTA1MzE2MTRkMjAzNzI1NDFhNWNlMTllZWVjZCBsZWdhY3ktdHJ1bmsKKzY1MDggZDFiYWVjNTcxODUyNGMzMzM0OTg1NjliZjhhZGY0OGQ0ZGIwMTE1NiBsZWdhY3ktdHJ1bmsKKzY1MDkgZjdjMjQzZDAxODQ0NjlkY2NmYTIwMTVlNjc4NDM1NmZhNTc1ZDM5OSBsZWdhY3ktdHJ1bmsKKzY1MTAgY2EzOTM1NWJlNTVhMmJhZWM5OTAzOTVmMGVhOGVjNDEzYmMyMTEzYiBsZWdhY3ktdHJ1bmsKKzY1MTEgMjYxNDcyZmE5NzJhNzU4MGYzNDMwZGI4MDczZGVlZGJhOGMwYjVlMSBsZWdhY3ktdHJ1bmsKKzY1MTIgMjNmMjgwYWI1NDA5Yjc5ZTYxNzNkNGUxZjg1MWRiYjY3NTU5NGQzMyBsZWdhY3ktdHJ1bmsKKzY1MTMgZjQxZjBjYWYxY2ZjZTJmNTQyNDBiNjEzMDU5NDM4OTRlNjQ2ODJiMSBsZWdhY3ktdHJ1bmsKKzY1MTQgOGEwMTBkZDQ3MzZlYjgzZTBlNjM1NmY3N2Y0OTU4YTU2YzU3OGMxYSBsZWdhY3ktdHJ1bmsKKzY1MTUgNmI0ZDBmMWEwYWU5YzliYjU1YzE4ZDBkYzBjMmFlYWEwYThhYzIyNiBsZWdhY3ktdHJ1bmsKKzY1MTYgZDZjN2U0MGNiZmRmMGEzOTNmNmI0MjIzNDM1NTA0ODNhODk0NDk5ZSBsZWdhY3ktdHJ1bmsKKzY1MTcgZWY3ZTNjNDk5YTRkYTAxY2QyZTEyZDM1NjUxMDczNWJkOWQ5ZjgwNyBsZWdhY3ktdHJ1bmsKKzY1MTggOTZlMGE3MjA0ZTMxZDgwZmY3YTE4NGYwYTIzNTcwOWJhNGVmMWJjOSBsZWdhY3ktdHJ1bmsKKzY1MTkgZWI5ZmM0MDRjMDY2MzEzZTRlOWFlNzZiZDNlMDdjNWQ3OTMzMWQxYSBsZWdhY3ktdHJ1bmsKKzY1MjAgM2U2ODYzY2VhMzgzMjYzYzU5ODJjNzNhODQ1MjVkMWE3NzE2OGIwZSBsZWdhY3ktdHJ1bmsKKzY1MjEgZjdiMTNkNDE4MmIzZGFlOGIzNzNlMjJkYTc5MmJjNDQ4ZGY2MjBkNSBsZWdhY3ktdHJ1bmsKKzY1MjIgYTJkYzdjZTRkZmJlN2JkNmZjM2NjMzI3NWRiOWQ2MGNlODhhZDNiYSBsZWdhY3ktdHJ1bmsKKzY1MjMgYmMwNjVkZjAzZWU0ZWY4OGMyYzQ4NmRhZmFhNTAzYzQ5NzkxODY2NSBsZWdhY3ktdHJ1bmsKKzY1MjQgZDZjYTZlMjA3OTk0NzcyMjkwNWIwMjg5MDhjMjE2MjI1YjM1NzY1YSBsZWdhY3ktdHJ1bmsKKzY1MjUgZWY2Yzg5ZmUyMWVkZWExYWRjMThmYjU1ZTAxMTUxMjZkNTA0YjU4YiBsZWdhY3ktdHJ1bmsKKzY1MjYgYWM5MjViOWExZDY3NzIxMzdlNWM2YmY5M2EwZDZhMGJlNDM2NmE4NSBsZWdhY3ktdHJ1bmsKKzY1MjcgNjY5Y2NkOWU3MTdlOGVjOWUyY2VlYjg4YTZmOWYzYWYzZTRiZDk5NCBsZWdhY3ktdHJ1bmsKKzY1MjggZjAxMTBjNWM2MjI3OTJiNDY1YjNiNTdiYjFjMWRlMWY5M2E5YTQxNiBsZWdhY3ktdHJ1bmsKKzY1MjkgNmRlZWUzYjIwNmI5OTQ3ZTQ0ZTgyNjkwYmNmZTBmYjkxNDJkMmYyOCBsZWdhY3ktdHJ1bmsKKzY1MzAgODE4NTk5ZTM5MTIzY2NiODFiMzkzNzZiMDg1OTYyMjQ4MzM0MmM3ZCBsZWdhY3ktdHJ1bmsKKzY1MzEgMjFiMjhkY2ZhODY1NDNkNzVkNzQyZjA3YmIzODEyODI0NzliNDUwNiBsZWdhY3ktdHJ1bmsKKzY1MzIgZDY4OTczODVjMzE4NWZjYmRkZDliMTI4MDIzYTM4N2RkZTU3Y2I2NCBsZWdhY3ktdHJ1bmsKKzY1MzMgNjRhNThiMGZiMTY3MTBkY2I3Mzc5NDdjYTY1NTk0YzUwYzQ3OTVjYiBsZWdhY3ktdHJ1bmsKKzY1MzQgNGJmMDFjNjZjYjY4NmNhOTg1MDNkNjE1YWFkNTA2YjhjOGUwYmVkMiBsZWdhY3ktdHJ1bmsKKzY1MzUgZDZkZTJjMTQ4ODE5YWM3YzNjZmI4MjJmNjc0M2Q1OWI0MDI3ZDIxYiBsZWdhY3ktdHJ1bmsKKzY1MzYgYTU4OWNlZGNiZWY1NDY1NDUxNGFkMTViMjQxMWU4NWVjZDE4ZTRhMiBsZWdhY3ktdHJ1bmsKKzY1MzcgNzg4NDM0NzJmYjZmYTIzZDk2ODBkZmU4NWE0ZjEzN2U2NWM5ODFmNyBsZWdhY3ktdHJ1bmsKKzY1MzggYmRlMTlhY2YxMDQ1ZDQ3ZTU5ODI5MjZlZTlkNTUyNWVmNWNmN2QzNiBsZWdhY3ktdHJ1bmsKKzY1MzkgMmM4OWJmMDRmODM0ZWFhZWFjZjE1NTNkZDM4MGU5MTg1YWY5ZWQyNSBsZWdhY3ktdHJ1bmsKKzY1NDEgMjMxYTQyMDkxODMwMmU5N2RjODk5ZTgxMDc5ZmJkNzk0OTBmYjcwOSBsZWdhY3ktdHJ1bmsKKzY1NDIgNGM1NGVjZmFkY2U1ZTQ4NmIwNjhmYjJlODA4MzE2YjRhOTBmOWIxNiBsZWdhY3ktdHJ1bmsKKzY1NDMgZWZlODY4OTFmNDExYjg1N2I5YWVlZWNmOTMxYWQ0ODViZjM2NjhjNyBsZWdhY3ktdHJ1bmsKKzY1NDQgMTk0MTIzMDVkMzM1YTY5Y2IxY2ZjMTkxYzhlMjIzZDZlYmZmY2FkMSBsZWdhY3ktdHJ1bmsKKzY1NDUgYzU3NWE5MjBlNGExZjM1YTRmOTNhMTYxZWI2YmViMWY4MTdlZWQ0ZSBsZWdhY3ktdHJ1bmsKKzY1NDYgZjY2NTYyNTM2ZjExYjNkNWM3MmJiY2JkY2Q0ZTBiNzFkZDkwMDAxYSBsZWdhY3ktdHJ1bmsKKzY1NDcgNTg1MDRjOWEzN2RjNGE4M2UzZmRjMjQ1OGFkMjdkZTI1OGVlMDUyZSBsZWdhY3ktdHJ1bmsKKzY1NDggN2I2ZWVmYWM2ZTQ5Mzc2MDk3MzY4ODAyYWE2YTY1NmQxMmY3YWMzMSBsZWdhY3ktdHJ1bmsKKzY1NDkgNGE3MDM4ZTdhMzEzOWMwOWY0OWY1NDg2MDNmOTIyNThjMDViMTY2MCBsZWdhY3ktdHJ1bmsKKzY1NTAgZWRhMjliZWY4ODBjOWE1ZGVjMjdkMWEyNTY3ZjUxYTY1NmNlN2U0NSBsZWdhY3ktdHJ1bmsKKzY1NTEgMTBjMDg0OTQyY2YxMmRkMGZlZWYzYmEyYjIyOTUxMWEwYjBjNzYwYyBsZWdhY3ktdHJ1bmsKKzY1NTIgMTg0NTFkY2E5NDY5YTA0ZTJiMzA4N2Q1ZTc0NTgxMjIyNjkzZjllNiBsZWdhY3ktdHJ1bmsKKzY1NTMgYTZlNjJjMjFiMGUzYjAxY2VkZjNkN2UyYmRmNWFhMzcxMjIxZGU1ZSBsZWdhY3ktdHJ1bmsKKzY1NTQgNzUyYjg2YmExNmZjNmU5Mzg0OTZiNzZiODg4YWZmZjQ5ZGM1NTI1YSBsZWdhY3ktdHJ1bmsKKzY1NTUgNWY2ODY5YTM4ZDg1MWYwNjk2NTgwNTQxY2E1YThiZDhjMGJkOGEyNiBsZWdhY3ktdHJ1bmsKKzY1NTYgMzkwNjgzODE4ZjczNDE3ZGI5MTRmYTFiMDEwODYwZWQ2ZDZjMTc0ZiBsZWdhY3ktdHJ1bmsKKzY1NTcgNDY2MTdkMjljNWQwNjM5YTdkNjUzMTdhYTZkNzgzNjRjZTMxZmE5MyBsZWdhY3ktdHJ1bmsKKzY1NTggN2Y4M2UyNGQxZDg2OWI2NzQ3MTAzMWU0MDFhZjliMWM1OWVlOWU2MyBsZWdhY3ktdHJ1bmsKKzY1NTkgZTBmNjQyZWU0NWJiZGEwMWEyZjFkMTA4MWRkNjI1OTIzMGMyYTY2ZSBsZWdhY3ktdHJ1bmsKKzY1NjAgODMxYjQyMGU0MTFlNDIxZDMzN2MyYzRlNmU1NjY5OWU5YWE4NTQ0NyBsZWdhY3ktdHJ1bmsKKzY1NjEgNzQwZGVmNjk3ZDhiOGUzYmNkYTRkZTZjOWNmMmE3OTY1Yzg3NDhmZSBsZWdhY3ktdHJ1bmsKKzY1NjIgZjgxZDc4NTQ3ZjI4OTI5MWFmYjIzNTNjM2Y1YzdjNGI1NDc5NmIwOSBsZWdhY3ktdHJ1bmsKKzY1NjMgOWY3MGQ5OTVkMDI3OTI5OWNkOTJmMzZlODM3Yzg4NGJkY2ExMGI3YSBsZWdhY3ktdHJ1bmsKKzY1NjQgMGI0MGM4ZDViMjFkMjI1OTU1OTcwY2NkYWMzNWVhYzlhMWQ2MGRhMyBsZWdhY3ktdHJ1bmsKKzY1NjUgZGM5NDZjYWI3YjliYmJhZjM5ZmFlNjkwOWQ3MzNmZDY3ZTVmMjUyNyBsZWdhY3ktdHJ1bmsKKzY1NjYgODU5MmZhNGExMTliMDhhODhhMWNhNDc2MjNiMzhkMGIxNTM3YWM1YyBsZWdhY3ktdHJ1bmsKKzY1NjcgZjI5ZmU3MWYxMWU2NGYxMzgxZWZiN2Y4NmUyODE5MGM4NzExZGMyYSBsZWdhY3ktdHJ1bmsKKzY1NjggODQzODE4NGU0NDhlMDM3ODI5YmE3MDc1MGY5NDMyNDA5ZTdjMTMwOCBsZWdhY3ktdHJ1bmsKKzY1NjkgMGE1OWM5OGRjMDA1MzVmYTczYjk1ZmU1M2YyOWIwYmMxMGY0YTQ1ZSBsZWdhY3ktdHJ1bmsKKzY1NzAgODQ2NWQ4ZmJjN2FjMTdiZTk3ZGM4MTNjY2VlYTBhMDlhYmRkMWI0ZSBsZWdhY3ktdHJ1bmsKKzY1NzEgZTUzODYzOGVkYzcxMzM3MjI1M2U3OGI1YTUyMjc0NTA5YjE5Mjg3NyBsZWdhY3ktdHJ1bmsKKzY1NzIgNmY2YmE3YzAwODIzZWFkOGQ1ZTVhYTlhZDY2ZjgxMmZiOTlkZTU5NiBsZWdhY3ktdHJ1bmsKKzY1NzMgM2EzYjM2NzE2Njg5YzVmODcxM2Q4MGNiMzdkYWEyZGJkYzA5MTUyOCBsZWdhY3ktdHJ1bmsKKzY1NzQgNTMzNmMwM2ExMzFmYjViZjAyYTg0MzYwYzU0ZDA0OTdiNmVmMzkyNyBsZWdhY3ktdHJ1bmsKKzY1NzUgMmZjZWE1ZGQxZDE4YTI1YWQ2MWU0NTI2ZDY4NzQxZDM0NjJhOGNiYyBsZWdhY3ktdHJ1bmsKKzY1NzYgOTU2OTY2NGFjMzQ3NTNmOWQ1ZDFhNGMzN2Q2MzE4ZTQwOTdiM2VlYiBsZWdhY3ktdHJ1bmsKKzY1NzcgYTVhODI2NjY5NzdiNWUyOWM3ODhkMjNkOTIwZGM3YWQ3ZTM2OTcyOCBsZWdhY3ktdHJ1bmsKKzY1NzggODY5YTk0ODA4NWMxMGZjZTgzOWRhNmQ1ZTc0YjE4NDY3M2Y3MjVlNSBsZWdhY3ktdHJ1bmsKKzY1NzkgOWMxZjliMDljNDQyNzU3NjJiODM0ODQyYWVjN2JmNTA4NGU4ZDQzNCBsZWdhY3ktdHJ1bmsKKzY1ODAgZjM5NTE2M2NhOWQyNTVjYTRmNmMwOGNjMWE3NTFjMmVhNWU0ZWQ2ZCBsZWdhY3ktdHJ1bmsKKzY1ODEgM2FjMDMwY2MzM2YwNjg4N2JiODdhMTFjMDk2MmRlM2FjNTEyZTExMyBsZWdhY3ktdHJ1bmsKKzY1ODIgNmQ5ZDVlN2U1ODhjNDlmY2QyZGJkYTE4YjNkZTE2YTUyN2M1ZjM2MSBsZWdhY3ktdHJ1bmsKKzY1ODMgOGM3YjdlOTRmNGRkMzllYmJkZDA5NTMzZjdkMzE4NWIxN2YwNTcyNSBsZWdhY3ktdHJ1bmsKKzY1ODQgMDdhMzVmZDJlMGExM2VlOTQ1NzBhYmI4OTlkODY3ZTczZWQ1OWM4NSBsZWdhY3ktdHJ1bmsKKzY1ODUgOTAyMTZlOTA3MzQ1ZWIyMGIzNTlkZGQ4NDllMzg4ZjhlOGNjMzczZSBsZWdhY3ktdHJ1bmsKKzY1ODYgNTcyNmJlOGVlNTlmMzBiYjMwODIxNzU0ODlhM2ViZmI1Mzg5MWM4MCBsZWdhY3ktdHJ1bmsKKzY1ODcgYjNhZjMyNWQ3MTJkZTNlOTdhZTA4OTQxMWIwMWE2ZjNhOTBhNjU5NyBsZWdhY3ktdHJ1bmsKKzY1ODggNWQ1MjM5NWY0MGIwYzlhMmI1ZjViOTNkYzMyMDNiODM2MWU2MzA0ZSBsZWdhY3ktdHJ1bmsKKzY1ODkgMjM1ODljMDE2Y2I5YjhjNTE0NDA2ZTRjZWZmMjczMTA4ZDg4MWM4MSBsZWdhY3ktdHJ1bmsKKzY1OTAgMzE5MDM5OGFlNTMzYzI2YTEyMjZmY2JiNzE0YmFlMzIyZGZkZmM0YiBsZWdhY3ktdHJ1bmsKKzY1OTEgM2QxMTc1ODcwMDVhMWRlMTdhYjE5MTk3MTY1ODg4MzExZTc2NDMyOCBsZWdhY3ktdHJ1bmsKKzY1OTIgYTg2NDA3YjNjM2FjNTM5N2RlMDZlYTA3MGQ5ZGJhZWJhMmYwZGQ2ZiBsZWdhY3ktdHJ1bmsKKzY1OTMgNGY4NGNlZTY1YjhjOWU0ZTJiMDVhNGYwNTA1ODIzMThkNDcwY2Q2YSBsZWdhY3ktdHJ1bmsKKzY1OTQgNjUwMDMxZTFlNDE5MGJmNmZkYWY0NzI0ZDQ3MTdjMzJiNmI1NTAxNSBsZWdhY3ktdHJ1bmsKKzY1OTUgMDgzYTdjZDgzNTQ1NTI2ZjQ3NzgyNGJlNDk2Njk0ZDQzM2YxNGU2YSBsZWdhY3ktdHJ1bmsKKzY1OTYgZDMwZjVmMGZkMGUyZDI5ZDVlYTIxNDRhMTJkZDUxNWExNTY0ZWY5NyBsZWdhY3ktdHJ1bmsKKzY1OTcgNzFiNDNkNGI3Y2QwZDM2NzllYTZhZWVlYzRmOGMzZWNjOGYzNzVhZCBsZWdhY3ktdHJ1bmsKKzY1OTggOWU2NTA0NDk0YWM3MzkxOThlODNjOWUyZGNhYTc1MTVhZDcyMTEzNCBsZWdhY3ktdHJ1bmsKKzY1OTkgMGI3M2MzMWJhYjkwOTdlYzJiM2UwZjBkZmYyYTBjNTliMjMzZjczOCBsZWdhY3ktdHJ1bmsKKzY2MDAgYzgwYzUxNTk5OWI5ODMwZGRmNGQyODUxOGVlYTU5MWIyZDIwOTdiZiBsZWdhY3ktdHJ1bmsKKzY2MDEgYTdhOWQ4MzUwNWM0N2RmYzBiMTBkODc3N2YyMDM5NTVkZWMyMjZkNiBsZWdhY3ktdHJ1bmsKKzY2MDIgNWFkZTQwOTZmYjZiODllMzI5MTZlNWY4N2RkZTY4NTZmMWY2NjQzMCBsZWdhY3ktdHJ1bmsKKzY2MDMgZWVkYWE1OTM0MWI5NWQzMTNiMjI2M2M4ZWI5YTc5ZjMxNDhmYWRlZSBsZWdhY3ktdHJ1bmsKKzY2MDQgN2I4NGRhZTk3ZWU4YTk4ODhiYjM0ZWM4ZjZjNWUyOTQzZDVhMGFiMSBsZWdhY3ktdHJ1bmsKKzY2MDUgNmI1ODkzMzRlMGU5ZTZhODM5OWRmMjM0Mjk2ZWYyN2I5ZTgzZTUxYSBsZWdhY3ktdHJ1bmsKKzY2MDYgYzE4ZDUyZTA2MjM4NzAzYzUyNDYyYmYzMGM4NjQyODAxNGY3OWY1MCBsZWdhY3ktdHJ1bmsKKzY2MDcgYTJiYzk0MTU2NGExOWZiYTZiM2MxNDViMmNiYzA0ZTVlNTc2NmQ3YiBsZWdhY3ktdHJ1bmsKKzY2MDggNjllZGM2N2U1YTY4ZjIwZWFkMWQ5ZDk0YmQyOTA2YTVkNmFlOWEyMiBsZWdhY3ktdHJ1bmsKKzY2MDkgMTg5OWI5MTU1M2QxZWYzMjc3NzBlNjBmZmFlYTZkZWMzMzUwNzBkNSBsZWdhY3ktdHJ1bmsKKzY2MTAgMjYyZmQ1ODJlNDRiMzRlODM1M2IwMTQ5MWVmMjVhYmU3ZjMxYjEzMCBsZWdhY3ktdHJ1bmsKKzY2MTEgOGI3NWQ1ZWEyMDdiZDc5ZTNiYzYwYzk1ZDY1ODc3YmE5ZTZhNWIzYSBsZWdhY3ktdHJ1bmsKKzY2MTIgN2QzZDJlZTU0YTJjYjI1YmM0ZThiMDI4NjllZTRiMTlhNmE5YTkyMSBsZWdhY3ktdHJ1bmsKKzY2MTMgMDEwMzQ0YjRhNjE2MjUzZWFkMGRkZjIxYzU1MDNhOWQzYmEyZTQ4MyBsZWdhY3ktdHJ1bmsKKzY2MTQgNWJhYTAwM2JmMzllMGI0ZTI3NjY3OTM5OGQ1NWQyYjU3MThlMGYyMCBsZWdhY3ktdHJ1bmsKKzY2MTUgNmZiMTMxNTAxYmI0NmQ2MzgwZjEyNmI0ZjAzNzViZDUwM2RiMTIxMyBsZWdhY3ktdHJ1bmsKKzY2MTYgNDQ4NzJmMjU1ZjkzNDc0N2I0NDFjZWU4YzM4NjUxYWNmMDAzNzk5YyBsZWdhY3ktdHJ1bmsKKzY2MTcgMzNiZjM4MmMyYjFkOWI1YjQwYzE0OWQzZDQ4YWEyMWZiMWQzZGVkNSBsZWdhY3ktdHJ1bmsKKzY2MTggZWZlYmYxYzRlZGEyOTY1NDA0ODBmNjg3ZmVmOWFjNjkyMDFiOTIxMSBsZWdhY3ktdHJ1bmsKKzY2MTkgOTUxZWQ5YTgzZjU3YTUwZGRhNWY2MTZmMjViYTBlMGQ1MmZkOGU0OCBsZWdhY3ktdHJ1bmsKKzY2MjAgYzRkNjZjNDEwYzgzY2QwMmFlN2NiMjNkOWYxODg0MjhlMWUyYTljNSBsZWdhY3ktdHJ1bmsKKzY2MjEgMzBmMWMwMWYzODY1MGI2OGNjNWVjYzcyM2VmMmY5NDAyMzhkYzRiMSBsZWdhY3ktdHJ1bmsKKzY2MjIgYWI0MzcxNWVmNGVlMjRmOTZlMDk1M2Y0YTI2NDNiY2JhMjZjYTE5YyBsZWdhY3ktdHJ1bmsKKzY2MjMgNDI5OGZmMjIyZDc2M2RiN2Y0OTNhMDNiYjRiODIxZjQ3ZDQyMzMxYyBsZWdhY3ktdHJ1bmsKKzY2MjQgOGEwZDQzYjEzMTI1MWQyZjZiNWI2ZmRlYzE4YTFiOGM3ZjU0YmM3MCBsZWdhY3ktdHJ1bmsKKzY2MjUgNjlhMzNmYTNkYmI4ODExNTA1Y2QwMzEzMmRkYWQ3N2E1ODQ0NDc4MSBsZWdhY3ktdHJ1bmsKKzY2MjYgOTg4MWE1MjE0ZmQyYzUwMTk5MjAyMDMyMjM4Y2M2YmE3OTcwZmNkOCBsZWdhY3ktdHJ1bmsKKzY2MjcgY2MwNmU3MDEyN2ZjMGJjOGM0ZTdkNjVmNGE4NTJlZjc0NTRkNzkyOSBsZWdhY3ktdHJ1bmsKKzY2MjggMDI2MjFiODc3ZWU1ZGYwMTFjZTViODNjOGNlMDcyYjk0NWNhOTA2YiBsZWdhY3ktdHJ1bmsKKzY2MjkgODZhNjJjYTNhMzdiN2FiZjU1OTQxNGViMGRhOGQ1NDYyMWQ3YTg4NSBsZWdhY3ktdHJ1bmsKKzY2MzAgMTQwNTA4YzljNjAzMTgyNWVmODcyMDAwNzA2MjZmYmJlMzY5OGRmYyBsZWdhY3ktdHJ1bmsKKzY2MzAgNDRhODJhYzY1NGE0MTc1NTY5ZGVlZDhlOGE5NGIwY2M4ZWRlZTA4ZCBsZWdhY3ktdHJ1bmsKKzY2MzIgZjNhMGQ1MDI0NmQyNzEzZmQ5YmRiZTYyNTA0ZDA1NDZhYzgyMWFmZSBsZWdhY3ktdHJ1bmsKKzY2MzMgZGY2Mzk4NWMxY2E5NjBmMGUzMGYzY2Q5ZGE1MDI0ZWIzN2JhZTJiYiBsZWdhY3ktdHJ1bmsKKzY2MzQgODExYTdmZjc4M2I3NzI5NmFlMGIzOGRhM2IyMjAwZWUxNDM4MDA4MSBsZWdhY3ktdHJ1bmsKKzY2MzUgYTgxYzNkZTNhYWQ5NWM5NTdkODg5NGNkY2Y5ZTY4YjlmZDQ0YjIwNSBsZWdhY3ktdHJ1bmsKKzY2MzYgOTkyNTAxODJjNDhhZmZkNTc4YTVjZjM2YWJlOGFhMjA3MzM5N2ZiYiBsZWdhY3ktdHJ1bmsKKzY2MzcgNTgyZDQ5MzdkNDk5NzFlNWM4ZDA4NGFmZmM4NDgyMTk3Y2M5YzZhZCBsZWdhY3ktdHJ1bmsKKzY2MzggMWMwNzllMjNmZDNiODk5NDBmZDk1ZWFiMDI5ZmI2N2Q5MTdkYTdhYiBsZWdhY3ktdHJ1bmsKKzY2MzkgYjNmZGU1Mjk0NDBmZDY0ZGU3ZGYyYmY2NGM3NDQzMjE4ZDFmNDMwNyBsZWdhY3ktdHJ1bmsKKzY2NDAgYTcxYTQzZDI0N2IwOWMyMDdjMDJiMzc1MmYyOWM1N2VlNDc0OGU0MSBsZWdhY3ktdHJ1bmsKKzY2NDEgYTk0MDBlZWUwNDBiMThlYjEwNzRiYjQ4OWQ0ZDljZDI4ZmFkNWI2OSBsZWdhY3ktdHJ1bmsKKzY2NDIgNzRiOGFhN2YxMTE0ZmJmM2YyZTI0ZDQ3OWZlMWU2ZWQyOTBhN2RjMyBsZWdhY3ktdHJ1bmsKKzY2NDMgNjg3ODk5YzU2M2UzZGUzODdjNDNkMWYyZTRiNDEyZDFlNTkzOGEzNSBsZWdhY3ktdHJ1bmsKKzY2NDQgM2RjMmU2NzVmMTc4MTcwNzg0YmY5NDNkMDc3MWU5ZjM0ZWViMDUwNyBsZWdhY3ktdHJ1bmsKKzY2NDUgMTg1NWU3Yzc5MWUyM2RjZDIyMzU3MzIwMWVmNTc4OGQ1NGYwZjgzNiBsZWdhY3ktdHJ1bmsKKzY2NDYgODg5OTc4MDJmYjliYjBhMTg5Y2Q0MjVmOGYzMWNlOWQ0MDZjYzMyZiBsZWdhY3ktdHJ1bmsKKzY2NDcgMjM2YWRlYTk3NjBiMDBmMjc0YzgwZGQ4ZWNiM2Q2NWMzZjgwNzkwNyBsZWdhY3ktdHJ1bmsKKzY2NDggZDI0MWJmZGE3Yjc0NmFmNDJlM2Q4ZDFiYTk1NTY3MTU5ZmI2YjBjOCBsZWdhY3ktdHJ1bmsKKzY2NDkgYmI1YjlmZjcyZGUxOTUxOGM2MDBmZTY0NjQwMTVjN2YwNTYwZThjYiBsZWdhY3ktdHJ1bmsKKzY2NTAgMzdkMDA5YjFiZjQ1ZGE5NjdjOTk5NmM5ZTJlM2U0OGY4YWVlMjA2NyBsZWdhY3ktdHJ1bmsKKzY2NTEgMzE1YTUwY2IxNWUzOGQ4OTc4YTE2ZTdiNzVhYjI0MWJhZWMwNzBhNyBsZWdhY3ktdHJ1bmsKKzY2NTIgMjgxNzRhYTM4Yzc2Mjc3YTAwOGQ1NGIzNTZhNTgzYmVmNGViYThkNyBsZWdhY3ktdHJ1bmsKKzY2NTMgMzNmNGE5MWY4NzFiZGJiOWQ2MzU0OGM2OTM2NzFiODc0NDhmNmRjZiBsZWdhY3ktdHJ1bmsKKzY2NTQgN2VkZTAxMmEzNWM1ZWYzNDZiZjc1NTljMGMxY2I3NGM1ODE0M2MyYyBsZWdhY3ktdHJ1bmsKKzY2NTUgM2Q1M2NmYWI4ODIxODhjMzg5ZDg0YjlkNmFmOWNkMDQ5OGMwOGM1NCBsZWdhY3ktdHJ1bmsKKzY2NTYgYTM5MjY0ODRhNjU4M2MzMDdjM2Q1NDk1ODY4Zjk2YTRlNTFhZmRlYiBsZWdhY3ktdHJ1bmsKKzY2NTcgYzM2MzY0NWI3ZWRkMjdiNDliZDE2MzExMmU3MWRhODczODFiMWU1OCBsZWdhY3ktdHJ1bmsKKzY2NTggMmNjYjk5YzkyODU0NDZiYmFiY2NmZTk0NjMwZmUyNjA3MjViMzdiOCBsZWdhY3ktdHJ1bmsKKzY2NTkgYTIzZjRmNDY3MjdiOWJmYTU0NmRiNzA5YTAwZTM1YzEyNWMyZGNkMSBsZWdhY3ktdHJ1bmsKKzY2NjAgNWUxMmU5YjI4ZWFmZjExMjFkYWM4MDE3NDBjN2Q0ZDkzOGNmYmVmNiBsZWdhY3ktdHJ1bmsKKzY2NjEgOGJiZWNmNjgzYTUwNDBmNmFkZDNkMzg5MjM2NTUzZWUwZGEzZDU3MSBsZWdhY3ktdHJ1bmsKKzY2NjIgYzc5NmFlMTE1NzgzMmQyY2NiNWNmMjQ4YmQyYmI3YzFlM2VlZDIxOSBsZWdhY3ktdHJ1bmsKKzY2NjMgMDNmMmMyMWFlY2FmMjZhMDM3OWJkM2ZlZTQxZTE2MjExNGE0ZGNjMCBsZWdhY3ktdHJ1bmsKKzY2NjQgOTRkYTU4MjE0ZDZjNzVmZDgwOTgzNDAxYzk2MzNkZDljODllN2UzZiBsZWdhY3ktdHJ1bmsKKzY2NjUgZTYxMzE4YzNhZDFlODdlMTY0MjI5NDA2ZjA4ZDJjMTE3NjJlODNjMSBsZWdhY3ktdHJ1bmsKKzY2NjYgZDIzZjc4NzMwZTAwZDEzZGZmMWNhZjcwYjFiN2QxNjUzNTg1YzNjMyBsZWdhY3ktdHJ1bmsKKzY2NjcgZjAyNWQ4YTM3N2I1NzAwMThkODE5ZGU0NzE1MzY1ZGVhNTY3NjcyNiBsZWdhY3ktdHJ1bmsKKzY2NjggZGZiZDZlMDBkZDM4M2QyZjNiMGVjNWY4NGQyZWQ2YzdkOTdiNTBlNiBsZWdhY3ktdHJ1bmsKKzY2NjkgZTNmNmFkYTI4ZWQwOTVlN2QwMGQ5Y2JkYzUxMDI1ODJjOGU1YzYyOCBsZWdhY3ktdHJ1bmsKKzY2NzAgNjcyMDZiYmQ1YmI1NDhiZDYwZGI2OWEyYjQ5NGExYTkzNzM1MWQ1NyBsZWdhY3ktdHJ1bmsKKzY2NzEgYjcwYmFiYTFjNzg5MzJjMjc5NjkzNDg4OTQ2YTg4N2NmODMxZGUzNiBsZWdhY3ktdHJ1bmsKKzY2NzIgMzgzODNiNjNmNDE1OGY5NDRlNzY4YTMyZGI4ZTFkZDUxMDkwNGE3MiBsZWdhY3ktdHJ1bmsKKzY2NzMgNmZiNmUwMWUyYmExNDQzNmRlMGQ4NmQxYThhNWMzY2Q4MGYxZGI4ZSBsZWdhY3ktdHJ1bmsKKzY2NzQgMjJhYWM4MWM3NTYwYzFhODk2MDMzM2YxYjExNDgwOTJmZjBlNDk1MCBsZWdhY3ktdHJ1bmsKKzY2NzUgYzYyNTljZjJjNTgxNDNkYjYxMDIzMDVkNTIxN2RlNGFjZDc1MWVmNiBsZWdhY3ktdHJ1bmsKKzY2NzYgMzUwZDBkZTA3NzM5YzM3NDcxZmU5MjlmOTY5ODkzOTFkYWI4MGI1MCBsZWdhY3ktdHJ1bmsKKzY2NzcgZDFiNDc0M2E5YTYwNTNlOThiNDA1NzA5YmNhZjk4NjQ1ZTQ4ZjcwNiBsZWdhY3ktdHJ1bmsKKzY2NzggMzEyNmY4YTE0NmE2NmY0YTc2Y2IwNGQzODhkZTVmNzliMGJiYWFjYyBsZWdhY3ktdHJ1bmsKKzY2NzkgYzc5OTQwMDgzNzhkOWRlNWEwYmYwNGEzNzZkMzQ5ZGVhM2VlMWE1MiBsZWdhY3ktdHJ1bmsKKzY2ODAgNDJlYzIzYzUwMDE4NmQ1YWJlMmRiY2MyNjFjYjU3M2Q0NTU4YjIyZSBsZWdhY3ktdHJ1bmsKKzY2ODEgNjNhZjI1NzRmNzFmNmM0MTcyYjY3YmQ1ODliYWNiODljZjQ2YWJmMSBsZWdhY3ktdHJ1bmsKKzY2ODIgMWMwMDY0MDA2OWY4YTU0MTQ1NmYzMWU5Y2IzZmJiODVkOTM2MjIwMSBsZWdhY3ktdHJ1bmsKKzY2ODMgM2ZkZTlkMmEzOWIwYzlhMjExY2JjYTg0YmYzODQ2NjA2NjkyYTNlMSBsZWdhY3ktdHJ1bmsKKzY2ODQgNjBmYzAxZDZmNzI3MGNjMzM2OGRiZjFhNjEyMjBmZWI1ODQ3YTg1MiBsZWdhY3ktdHJ1bmsKKzY2ODUgNGE5M2NjN2U3ZmI2ZjNlNWI3MGZmMDg4Y2QyMWZiNDgzYjFlZTliZiBsZWdhY3ktdHJ1bmsKKzY2ODYgZDcwMThiYzU1ODRlMGE5Yzg4N2JlMTA5YjBhNDI0NTU5MWM2ZDU3MiBsZWdhY3ktdHJ1bmsKKzY2ODcgZTMxYjRkZWZhZDViNDVjZGY0YzYwMDQ5M2Q3MDY3YTAyMjYxYTFlMSBsZWdhY3ktdHJ1bmsKKzY2ODggNjg4ZDU2NmNiMTViMDc5ZGE5ZDlhNjdiNmUwY2JjZTU2N2VlYzMzNSBsZWdhY3ktdHJ1bmsKKzY2ODkgMDQxMGVkMzgwOGVlYjhjMjU0MWFhOTU1NDEzMzg3ZDYwYTcxNGE5ZiBsZWdhY3ktdHJ1bmsKKzY2OTAgMGE1ZjAxZDQ3MDFjMDk5M2IyOTJjZDVhMjFjOTFiMjkxODQzZDYyMCBsZWdhY3ktdHJ1bmsKKzY2OTEgYzY2NzliMWM2Y2ZjMWI0ZjVjNDZjNTI0MWE4MzYyYjQ0OTExYjM5YiBsZWdhY3ktdHJ1bmsKKzY2OTIgOWUwZTg0MTdhOThhZWFkYWI5YzJmZWI4Njg2ZTQyZTNlYzVjY2Y3NyBsZWdhY3ktdHJ1bmsKKzY2OTMgOWJjZmIwMzRiOTYzZDJjN2NiNTIxMzc0MWY5NDlmZjNlNGE0NDUyOSBsZWdhY3ktdHJ1bmsKKzY2OTQgNDhiMmQ3YTQ1MzFkZjhiODI3ODBmMzBjNzg1NmRiMjYzYmVmMTM5OSBsZWdhY3ktdHJ1bmsKKzY2OTUgNjY5MTNjYTdlYzQ3MGFlYzk1MzNmZjJkMTY5YmQ4YjhmNjVhNDIyOCBsZWdhY3ktdHJ1bmsKKzY2OTYgMWQxZjBjNjQ3ZTc3YjEyMGY0ZmY4Y2IyMTI0ZWM5OTQxNGI2ZTU3MiBsZWdhY3ktdHJ1bmsKKzY2OTcgMTgwYzFkM2RhYzQxMTExZjczMzljOWYwZTIxMTE4OTNjZjBiZjVkNyBsZWdhY3ktdHJ1bmsKKzY2OTggM2ZlZWNhZDI5NmY0MGY0ZWQ4ZDkwMDQ0ZTg2ZTQwYTlhMTNhNWNiZSBsZWdhY3ktdHJ1bmsKKzY2OTkgYjNhZTBjZjJhMDZkNzEzMjRmYTg5OTgyNzg3NDBhMThlYmRkZWMwYyBsZWdhY3ktdHJ1bmsKKzY3MDAgNGZhY2FlMDBiZGQ2MTI0MDY0MmVlMGVkZmJmMWE4ZThhODZjMjNkYyBsZWdhY3ktdHJ1bmsKKzY3MDEgNTczZWQ1ZTM4NzliNjk5OTk4YWVkODgxMTQyZjRjMzQ0ODNiOGZiOSBsZWdhY3ktdHJ1bmsKKzY3MDIgODQ0NDRlYTNmNWY2OWQ2MGY2ZDg0N2FhYTk2NGNmYzYyYjI0Y2NiNyBsZWdhY3ktdHJ1bmsKKzY3MDMgMWY2OTJjM2YxZDMyZDQzOWYyOTJkMjBhYTNlZmVkNjY1Y2YxYTMxMCBsZWdhY3ktdHJ1bmsKKzY3MDQgNDFhNTJhYjI2M2RhYTI1MDdmZTMzMTUxOTIyY2U5NTAwMTA4ZjViZSBsZWdhY3ktdHJ1bmsKKzY3MDUgNWMzODdhYTAzNzA4NzMzN2ZiMjI5YTdlNTRhYjVjNDViOTUyYmRlNSBsZWdhY3ktdHJ1bmsKKzY3MDYgODg2YzBmNzc1Yzk3NmUyY2NkYjlmZjQ2ZDc0YjY2YTU5MDU2Y2Y5MSBsZWdhY3ktdHJ1bmsKKzY3MDcgMTA5OTE1OWVjODIxOWUwZjk2ZDU2OGQyMDJkMTE2OGQyMWJkNThkMCBsZWdhY3ktdHJ1bmsKKzY3MDggN2JmNzFhODM5NjYxYmMyNjAwNmFjODMwMzhlZDExZDM2MjBkMGVlOSBsZWdhY3ktdHJ1bmsKKzY3MDkgOGYyOTFkYzhmYTliNDY5ZTYwZjI1NjE3OTIwYmUzNDI0NmYxZTY4YiBsZWdhY3ktdHJ1bmsKKzY3MTAgNzgwZmMyYjE2NzRkNzcyYjg4OTgxNWY2Y2I3MmQzZGJjYjRmNjM4YyBsZWdhY3ktdHJ1bmsKKzY3MTEgY2I0OTAwZmFiNzY0MjhhZjhhZTU1ZTMxOTllOTQ2OTUyNWRlYzFjNCBsZWdhY3ktdHJ1bmsKKzY3MTIgNmM4NmQ5MTM2YzA5MGQ0ZmQzNDUzZmU5MjI2MGEzZTEyZmU3MGYyNyBsZWdhY3ktdHJ1bmsKKzY3MTMgNjcwMDU1OGEzMmZiMTMzYzkzOTFkNDA3OWVhZjE5Yjc0NzZlNDdkNCBsZWdhY3ktdHJ1bmsKKzY3MTQgMjFlNWI5NGI5OWI4MGJkZjhlNmNjZWNiMjI5OTdmYTNjYzkxM2MyNSBsZWdhY3ktdHJ1bmsKKzY3MTUgYzYyZDMyYzVmZjNkZWNlZTNmZWFhNTRjNjI0ODBlNzk1MTAwOTRlMyBsZWdhY3ktdHJ1bmsKKzY3MTYgMzU0NWFiNDNhNzJhMjE5ZjBmYmNlMzI1ZTJkZjE4Nzc2N2EzZTJhOCBsZWdhY3ktdHJ1bmsKKzY3MTcgMWNlMDBjZGMwMDNkMjU1ZThiMDhiNTk4YmM3MDkyYjUyM2NkMDc5MCBsZWdhY3ktdHJ1bmsKKzY3MTggMGZhZTM1M2IwNGNhMmQxYTUzNDE2NzhhNmVkYjE5YmUyZTI5MDdjNiBsZWdhY3ktdHJ1bmsKKzY3MTkgNDNlMmU1OTJhMDAxOTg1MTIwZGE1MDg5ZWRlMTRhMDZmZmYyMDhjMyBsZWdhY3ktdHJ1bmsKKzY3MjAgYzZlZjhiN2IyNmViYzEyMDUyM2Y4ODEwNWNlMjkzMzVhZGYyMjU2YiBsZWdhY3ktdHJ1bmsKKzY3MjEgZGEzOGNkNjE2NDEyN2NjZGJhNzk2MDk0NDYxYTk1NGU5NmI0MDliMiBsZWdhY3ktdHJ1bmsKKzY3MjIgNWY2NzJhNTEyZGM0MWZkYjgwNzkxNzYxMmExYThhZjAzOTk3OGUyYSBsZWdhY3ktdHJ1bmsKKzY3MjMgMGNmNjcxNDUyZmM1NDNkNDI2ZDUzZDZjODNjNDM3ZDNiNDk5MjhmZSBsZWdhY3ktdHJ1bmsKKzY3MjQgNDQ3MGY3ZmYwYzIzOWM4OTRjYjliNTE4ODEyOTgyZjQ3YmQwZmQ4NiBsZWdhY3ktdHJ1bmsKKzY3MjUgYWMzZmJiNjc3MWY1YzJkYjM5YmI2M2EyYjZhMjAyOTYxZDdhMWE3MiBsZWdhY3ktdHJ1bmsKKzY3MjYgNmI2YzVkMTIxMzBjZDk5MGVkYTgwNjU2MGRmNmQ0YjQ4OTViYTYzNSBsZWdhY3ktdHJ1bmsKKzY3MjcgMDJhMDMyMWY5NDY4YmVhYzdhZGRlYTk2NmM1YjBmZWUwMjhjZmMyYSBsZWdhY3ktdHJ1bmsKKzY3MjggMDVhZTU3MmMxYWM1NjZjM2U4MzUwOTYzMWU0Y2IwN2NlZDA5OWYzNSBsZWdhY3ktdHJ1bmsKKzY3MjkgNjQ3MDRkMzZiMTk4MWU4MjNmY2YwZmE1ZTg4NTcyZmIwNjAzNDA5OSBsZWdhY3ktdHJ1bmsKKzY3MzAgZTIyNWU3MGZkNjU3MWZhNjQ3ZDQzYjBiYzQyM2NkYWNmZThkZTgwNiBsZWdhY3ktdHJ1bmsKKzY3MzEgMjM5YjEwMDgxMTc2M2QzNDE5OGQxMDE5NWRkOWIxMzRhZjBhZmViZCBsZWdhY3ktdHJ1bmsKKzY3MzIgYjdlN2ViNWVmODIwYWE4Nzc5N2ExNDg5MDVhZDVjMGU5MWZhMzMxZCBsZWdhY3ktdHJ1bmsKKzY3MzMgZGJiNzYwOTVhZGVlMDk1OTkwMzM3YmVlNmJkOGRjYmJhYTc3YTkzNCBsZWdhY3ktdHJ1bmsKKzY3MzQgNTE2ZGRmNTAxOTRkMzY4MDZlZTlmYzllZGZiYjVmZmFmMTVkNWQzNSBsZWdhY3ktdHJ1bmsKKzY3MzUgNTQ0MjE3ZDU0OGE1ZjFkNTk0OTZlZGQwMjk0ZjU1MzUyNzMwZjFhYyBsZWdhY3ktdHJ1bmsKKzY3MzYgNjdkMjU4ZWRkM2Q5OWJjYjZmYTEzZWM4ODZiNGVlN2MyMzg2ZTk3MCBsZWdhY3ktdHJ1bmsKKzY3MzcgN2I1NGEzY2VkYmUwYzY0NGM3MDVjYWNiNjY2ZjZmODA4ZWI3YmE3NCBsZWdhY3ktdHJ1bmsKKzY3MzggMjUzMDFiOWVhMGNjZGU5ZDZmMjdhMjdiZDdjOTAyYjRlY2Q4NTRjNCBsZWdhY3ktdHJ1bmsKKzY3MzkgODg5MmRhOTU1NGE1YmQxMWZlOGJjN2Q2MDRlNGZiMjY3ZjdjODQ3YyBsZWdhY3ktdHJ1bmsKKzY3NDAgZjBlODIxMjliZDNlYTM2MTdhMmYxZjVhNzYxNmM5MmU0NzRkODNhOCBsZWdhY3ktdHJ1bmsKKzY3NDEgNjA4MjUwMWVjYjJlNTg2YzIwMDUwYmIzOTNjNGU2NWIwZjE1ODFlMyBsZWdhY3ktdHJ1bmsKKzY3NDIgMmU4N2I4MTE3NmY5ZDMyNWE1NjkzODMzMDRlMzQ3MWU1NGVkOTkyNCBsZWdhY3ktdHJ1bmsKKzY3NDMgMzhjOGExY2NjMTZjNjBlMDM3YWU4ZDBlYWI3YzVkZTRmYTc0NTlkNyBsZWdhY3ktdHJ1bmsKKzY3NDQgZWY1MWU0YTJlNzk5NDQ5ZjNmNWQ5Y2RmYmZhMzc0NjU5ZDVhOWQ0OCBsZWdhY3ktdHJ1bmsKKzY3NDUgNjUxMjBlOTFiMDYxZWE3ZGYxYTZmNjgxYzM2N2E0ODRlMGZkZjhhNCBsZWdhY3ktdHJ1bmsKKzY3NDYgZTc4OTAzMzZmMTA3MDRmMzM0MGI4OGE2MDlkNTBjZWJjMWIxOGM2YSBsZWdhY3ktdHJ1bmsKKzY3NDcgYzQ4NzY0YmY2MmQxZWQwNmE3M2MxMGYzMGRkNjQxNDJmZjcxOGJmZCBsZWdhY3ktdHJ1bmsKKzY3NDggMzc5OWI3MTE2MzFiMjVlYzY0NmVlODc3ODNjMGIzNWRhNGM2MjU1ZiBsZWdhY3ktdHJ1bmsKKzY3NDkgY2I4NDFmMWIwMjJlYTIyNGNjN2M2ZjVjY2Q5NjY2MDdhZmI2NTVmMSBsZWdhY3ktdHJ1bmsKKzY3NTAgYWUxNzhmMTUwNDAzMDBjNjkwYTU2ZDIzOTNhNzdhNjY1MGFmODU0NSBsZWdhY3ktdHJ1bmsKKzY3NTEgYmVmZGYwZGMwOTZiMDhlZWM1MmYzZThiZjYwYmJiYWY0ZGFjNTJhYSBsZWdhY3ktdHJ1bmsKKzY3NTIgZjZlODI0YjI3MDMyMzVkOGMzNTliMzIxNjAwOTJmZDIzZDc4YjFmNCBsZWdhY3ktdHJ1bmsKKzY3NTMgOTRiNzYxZmFjNGQ3YmIzYzhhY2MzYzliZTllMTBlZTFjYjgwZmM4MCBsZWdhY3ktdHJ1bmsKKzY3NTQgNTY5MDk3ODFhNzQxYjEwNTA1MjZiNTIyNmUyZjY0ZDlkZGVlNDkzZSBsZWdhY3ktdHJ1bmsKKzY3NTUgNGJkYWZhNzAzYTA0YjVjN2I2YmU2NDlkN2U1ZmZlNWVkNGFlMDU1MSBsZWdhY3ktdHJ1bmsKKzY3NTYgZGFmMTJmNjRkNWFhM2Q1MTg1MjAwNGUzYjQ1OTAxYWRlYWE3NDc5NCBsZWdhY3ktdHJ1bmsKKzY3NTcgODM5ZjcyNjEwYWUxZjhiZTFiYTJlMzE3MjNiMzY3ZTg3N2QzZmIzZiBsZWdhY3ktdHJ1bmsKKzY3NTggZTIxZDNlN2FlYTg3MTk2YzQzMTk2NWZmMzNjMTIwMjhlNzIzODY1NSBsZWdhY3ktdHJ1bmsKKzY3NTkgYjY5ZjRiODM4OTJlNjg4NWI2MDg5ZGNhMGNlNzYwY2NmNGI1MTY4NiBsZWdhY3ktdHJ1bmsKKzY3NjAgZGIzNWQyYjkzZWJhMGY5OTY5ZjBiMzJhODVmMTJhZDE4Mzc3YmViNCBsZWdhY3ktdHJ1bmsKKzY3NjEgZjJmNWNkN2NiNWI1NmIzYTZlYmEzM2EyM2Q1MDhkZTE0NTgxOGY4NyBsZWdhY3ktdHJ1bmsKKzY3NjIgNDNhZTA0NWFhMTBlMTA3YzQ5YjVhZDUwY2IyYTdjOGQ2ZDlhZDk5YSBsZWdhY3ktdHJ1bmsKKzY3NjMgMDAzNmRjZjI4NDAyM2E5YmQ4NjMyMzI2ZmNjYzg0MmEwMTBjYTE4MSBsZWdhY3ktdHJ1bmsKKzY3NjQgOWM2ZWFiMGNmNTQyZGUxYjE0MDVjMTA1ZWUzYmJlYWViNzk0ZDcyOSBsZWdhY3ktdHJ1bmsKKzY3NjUgMTQyN2Q2MWYxMzA3Mjk5ZjgyNDNhNDFjMTI5YTViYzY1OWY2Y2NlNyBsZWdhY3ktdHJ1bmsKKzY3NjYgYWJkMGI5ZmY2NzU5MmQxMDQ3NzM2YTdlZWY1Y2Q5ZWJjOTJiYTZjNyBsZWdhY3ktdHJ1bmsKKzY3NjcgNjliYmMyMWY1NWNmMmUzNGU0NzM4YWE1MzI0ZDIzNjM3MDBlYzRkZiBsZWdhY3ktdHJ1bmsKKzY3NjggNTIwZGRjYjNkNWQ2OGUyN2IwNjc0MTI4YWZhODY1MWE4ODA1NDQ0NyBsZWdhY3ktdHJ1bmsKKzY3NjkgMDA4YjlmYzU2NWJmZGMyNzI4NGFhNjMzNTUzMGJlMGUyMzU3ZmM1MyBsZWdhY3ktdHJ1bmsKKzY3NzAgNzVkNzU3MzJhOWU0YmU4ZDViNWIxMmMxOTI4YWY4YTNiMWJjNTQ0YyBsZWdhY3ktdHJ1bmsKKzY3NzEgY2Y5YTk3YmZjMDIzMzllMDNlNGI0MDYwYjk4ZTZmNGQzN2U0ODllMSBsZWdhY3ktdHJ1bmsKKzY3NzIgNmY3MDkwYTgyNjQ1OWQxYjUzZGZiZmRlYTFhNzkyNzI0ODIyN2ViMCBsZWdhY3ktdHJ1bmsKKzY3NzMgZWIxZWQ3NDM5NzJjNDI2YThjZGQzZDgwM2JmNmNiYTcwYTYyODQ1NSBsZWdhY3ktdHJ1bmsKKzY3NzQgZTA1ZGE4MDQzYjUwMGI0MTUzNGRlYmM3MjVlMmZjZGJjMmI5NWZmNiBsZWdhY3ktdHJ1bmsKKzY3NzUgODY4MDYzMTYxNjY1OGU1ZWQ1ZWE0M2I3MmI5NTIyMDdhM2E5N2VjZiBsZWdhY3ktdHJ1bmsKKzY3NzYgZmM0ZjEyODlmZTZjZjZmZDk0NTZkMTQ2NzAwZmMyNGIyYmQyZTU1MCBsZWdhY3ktdHJ1bmsKKzY3NzcgMzg4ZjljMjIyMGNlNGY2MmMyYTNhN2M2YzQxNzczODE1MzkwM2Y2OCBsZWdhY3ktdHJ1bmsKKzY3NzggOTVjMzE5MzFiNzZhZjcwODM3YTNhNDE0ZjE4ZGI0MGIwMGExZmNmNSBsZWdhY3ktdHJ1bmsKKzY3NzkgNzgwOWI2YjRmZmQ5MzUzODY2NmIxM2Y3ZjQzNDllMDQ4ZGJkODhkMiBsZWdhY3ktdHJ1bmsKKzY3ODAgZTlmNDhkN2U3M2IxY2FjOWEzZTE1Y2QxY2ZmMGFjZTFiODYyZDk1NCBsZWdhY3ktdHJ1bmsKKzY3ODEgMmVlYzM1ZTJhZmZmNzNmMjllNWQ0ZWZlOTQ4YTgzZjcxNTc2YTk5YyBsZWdhY3ktdHJ1bmsKKzY3ODIgMWEwZjM0YzE4MTYzY2MwNDk1Y2JlYTEzNDE0NDc0YWY2YWZlYzUzZSBsZWdhY3ktdHJ1bmsKKzY3ODMgZWNiZWI0NDVmNjJlNTA2ZjhmNzU0ZjEzYzM2NDAzMGYyNWUzZjc4YSBsZWdhY3ktdHJ1bmsKKzY3ODQgM2Y2ZDI2MTY1NGNhMmU5ZGI5MzkxNTYyOGFjNGExNDNmYmQyYmY2YiBsZWdhY3ktdHJ1bmsKKzY3ODUgYzk3ZmZkMmViZDUzOTY0MTBkZTlhNzNmYTY3N2E5MzVhZTM2MWY2YiBsZWdhY3ktdHJ1bmsKKzY3ODYgOTM3ZjY5ZmQ0M2ZlYTVlNzhiMTYyMTJiNzk0MmE5OGNiZTcwZGEyMyBsZWdhY3ktdHJ1bmsKKzY3ODcgOTg0N2RlOTQwNzkwMjk5ZmNlY2YyZDFiOTAxYzY5OTE1OTAwNjJkZCBsZWdhY3ktdHJ1bmsKKzY3ODggM2IzODcwYjlhY2YyNDM5NzY3YWY4NTVlMjk5ZjlmOTA0YTAwY2NmOCBsZWdhY3ktdHJ1bmsKKzY3ODkgNDZkNzM2ZmI5ZGEzMjI4MmQ1MjhhYWVjYTU5YjBlNWQwZTRkMTIxMyBsZWdhY3ktdHJ1bmsKKzY3OTAgNzcyODI4YzFiMWY2ODc0MTlhNTIxN2FjZDE1NWFmMWNmMTBmZDRmZCBsZWdhY3ktdHJ1bmsKKzY3OTEgMGY1MWYxZDcwZDQ1MjZmY2FhOTllZWU2M2I2M2JjZTUwNDcyNjBjNCBsZWdhY3ktdHJ1bmsKKzY3OTIgOTdkMzY1MmU1N2QzNWMyM2ExZGYyZDUwMzRkNjMxNDM2ZmZlNzcyNyBsZWdhY3ktdHJ1bmsKKzY3OTMgOTcxMzM5OTZlMjJmMGYyYTIwNWExNWM5ZGEzOWEyMmNjNDE5NWFjYiBsZWdhY3ktdHJ1bmsKKzY3OTQgZDU4NzE5NmY5YmVmYTVlYTZlZWVlYTIxYTRjN2Y4YzdjMzAyYWExMyBsZWdhY3ktdHJ1bmsKKzY3OTUgOWQ0NDUwMzUwNDUxZjFlYmRlN2Q2YjZjMDE4Y2ZiMzM4MDVmZTFkZSBsZWdhY3ktdHJ1bmsKKzY3OTYgNzczOTdkNTFmODkyMDRkZWFhZTRkNzhhMGU1ZWQxZDRlN2U4NmI1MyBsZWdhY3ktdHJ1bmsKKzY3OTcgMzE0YzEzNDQ1YTAyZGYwMDE0Y2YxZDM4YjU5YTIxMWM5Mzk5ZWNlMCBsZWdhY3ktdHJ1bmsKKzY3OTggMWFmY2QxY2QzMzNiNTdjM2ZmMTA0N2I5ZDU3ZjE3MTBjOTZjZGY3ZiBsZWdhY3ktdHJ1bmsKKzY3OTkgMTJjMzg2NWFlYWEwMzYzNTA2OTk0ZTQ5OThiNzY1OGZmNmM4MmM5YyBsZWdhY3ktdHJ1bmsKKzY4MDAgMDI3ZmYxNTU0ZTY2MmJmZjJjYjNkYjlhMmQ4ZDMyNWJiMDgwMjY3ZSBsZWdhY3ktdHJ1bmsKKzY4MDEgZmI3MzBmYjEzZmFiNWNhZTY3NDk1ZjY3YzRjMDAyM2M5OWJmOTQwMiBsZWdhY3ktdHJ1bmsKKzY4MDIgYjAzYWIzNWQ1MmRmOTc3YzliZDczYWVhMmI1NGYyMGFmZjdhNzQzOSBsZWdhY3ktdHJ1bmsKKzY4MDMgYTI0MGJlNWJlNmI0YzQ2M2E0NzIxNWI4OTQwMjZiZWNkYzUwYjdlNSBsZWdhY3ktdHJ1bmsKKzY4MDQgOTA1ZjdiNGIxMzIzODcwN2ZlN2JiOTU1OWQwZGExZDE2ZDI1ZTcwNCBsZWdhY3ktdHJ1bmsKKzY4MDUgYzJlYjM4YjY3NGYzMDk4OTI0OGM2NTRkYWQ4NzhmNjM1MDllZDQyNCBsZWdhY3ktdHJ1bmsKKzY4MDYgZDA0NDY5ZDAyNTZjZThlZjFiYjA0MWFlZTY0Y2NhZTBmYzkxNzk2MiBsZWdhY3ktdHJ1bmsKKzY4MDcgZWUyMDI2MjE3MzQ5OWM0ZTVjNGYxMjU1YzE4ZWNjOTFkMTZhMmY0YSBsZWdhY3ktdHJ1bmsKKzY4MDggZjM3Y2JmYWE3MzI4MTI5YTBkOGRmMjkyNDgyMDkwZDc1MmQ1OGRiMiBsZWdhY3ktdHJ1bmsKKzY4MDkgMzY2ZDcyZjEyNzk0YzU2OTU3YmM3NWU0MzhjOWY3MjVhYzNkMTU0NSBsZWdhY3ktdHJ1bmsKKzY4MTAgNGRiZmQ0ZGZlMjgxYzkxMjU1MmNiM2FlNzNkZjA0MDk5OGVjOGQ1ZCBsZWdhY3ktdHJ1bmsKKzY4MTEgMzc2ODIyYzY1ODEwODQzZWY4NjEyZGRkMjNiYzA2MjRjNTIyMzI2OCBsZWdhY3ktdHJ1bmsKKzY4MTIgYWYxNjg0ZmM5YzYzMjRkOGQyNDFlMjJiNzgxYmU2NmZhYTk0M2MyZiBsZWdhY3ktdHJ1bmsKKzY4MTMgZTdiYTA5MmMzY2YzYzcxNTNiNWQ5YjQyZDdhMjM3YjFlNGZhZWZhYyBsZWdhY3ktdHJ1bmsKKzY4MTQgMmRmNjJkYjM2NmI3NjgzMDJhYjM0NDg3ZDJiNDYzZDhmMTZmMDY1YiBsZWdhY3ktdHJ1bmsKKzY4MTUgNWE3NTUxMjM2MDYzNWFlMzM2NzE5MGZlMGVkZGVlYTQzNGJmYzQzOCBsZWdhY3ktdHJ1bmsKKzY4MTYgODk3Mjk3YWJlNWI0MDVjMTYyYjFkMThlM2FmYTZlMmMyM2M1OTFhZCBsZWdhY3ktdHJ1bmsKKzY4MTcgNGJiZGU4MDRiNjk3ODRiNGIwZjBjNThjNzA1MDUzZmQ4NjEzZDYwMyBsZWdhY3ktdHJ1bmsKKzY4MTggNWNiZGJhNGQyZTE1MjVkOTQyMGFlYTk3OWExMzRjZjBhYzA4NzI1ZCBsZWdhY3ktdHJ1bmsKKzY4MTkgNGZiODg0YmYxNDdjYzFjMWI2M2M1NTBkNTBiYTllZGMyODI3YTRjOSBsZWdhY3ktdHJ1bmsKKzY4MjAgN2I2MDBlNzNmZDJhOGEwZmZkMTgyODA5M2Y2YjRjYTlhMDQxMzNhYyBsZWdhY3ktdHJ1bmsKKzY4MjEgYTVjMjlhY2NjNDM4ZTgwYmUyMDE0ODEwMjVhZGZjMGMwOWE0NzBhMSBsZWdhY3ktdHJ1bmsKKzY4MjIgODUyY2EyM2M4MGNjZTAwZjUxMmE3OTczNzhmMWJkNWJmZGY1YTA2ZiBsZWdhY3ktdHJ1bmsKKzY4MjMgOTgzZGY0MzY0NTk1NzBmZDg1NjFiYWVmNzZhMGFhMjU4NjQ1NWJjNCBsZWdhY3ktdHJ1bmsKKzY4MjQgYTIwOTkxOTQ2Mjg1MDNhYmU3NmQ3MGM0N2JhMjMwOTU4YmMwNjZlNSBsZWdhY3ktdHJ1bmsKKzY4MjUgMDJhMjRlNDhiMzc2ZTU2YjQ5YmNlOGZmMTk4ZDczMjA3MWNlMDdkYSBsZWdhY3ktdHJ1bmsKKzY4MjYgNmVjMGNhZWFmODIzMGQ4ZWZiNjEwN2I0YzRiZDgwNTI1MWRjZDgwNyBsZWdhY3ktdHJ1bmsKKzY4MjcgYWFjOGE5OWExZjljNGZhMzA1ZDBiMmNlNjM0MGMxMTZmMjQ4MjhkYSBsZWdhY3ktdHJ1bmsKKzY4MjggNjkyNTA3MDM5NTNhMmE3MTA3MmYwOTZiYzg2MmY5NjVlOWVkZjkyNyBsZWdhY3ktdHJ1bmsKKzY4MjkgZWI0NTVkOTliYTk4MjI2ZmI4YWM0ZGFkMGFiM2ZiZDljZmZhMjlmYSBsZWdhY3ktdHJ1bmsKKzY4MzAgOTVmZjg5ZDgzZDYzOTdhODRlZDgxYzEwMjUwMGJlM2U5ZDRhNTZlYiBsZWdhY3ktdHJ1bmsKKzY4MzEgMjkxMzU5NzQ0M2I5MDBlMDBiNWUxNTkxMGRmNDc2MjU4MDFkMzMzMSBsZWdhY3ktdHJ1bmsKKzY4MzIgMDIxMmI0ODA5NDRiYzIwMzk3ZDY4OWQ5ODE4ODVjMjE1MDEwZTIxMCBsZWdhY3ktdHJ1bmsKKzY4MzMgNGUwMGU1ZGFhNjEyOGQyOGIwNzUyZmNhMTI4ZTM5M2VkYTMxZWI0YiBsZWdhY3ktdHJ1bmsKKzY4MzQgZGJmMjczN2QyYzgxY2EzZTNjZjM5ZGIzNDhhZDM4NjQ3OGE4ZDBhZSBsZWdhY3ktdHJ1bmsKKzY4MzUgYWY3NTQ5NjFhY2M1MjRjOTEwMDUwM2Q5YjczZTcwYTQyNmFiNDVkNCBsZWdhY3ktdHJ1bmsKKzY4MzYgMzgzNjExYmRhOWU2ZGVlODlhYmRhNTU0MThiNjM1MmYwYTkzM2UxMiBsZWdhY3ktdHJ1bmsKKzY4MzcgN2IxZjZlNWU5Mjk0NjMwYzRiMGM0YmQyNjgzYTU1MTE3MTMyN2ViOSBsZWdhY3ktdHJ1bmsKKzY4MzggMzQxODJhNjQwOGUwNGY5NWIwMWQyYjJiOWY4YjJmMGFhY2Y5NWE1YiBsZWdhY3ktdHJ1bmsKKzY4MzkgOTEzZmM5ZmY0M2FjMTIxYTk3MjA5YThjNjQyMGRlMGMyOGViYjk3MCBsZWdhY3ktdHJ1bmsKKzY4NDAgM2ViNzRkZjY3MmEzOTk3MzAxZWFmYjAxNjIzMTRkODFjMjUzYWNhYiBsZWdhY3ktdHJ1bmsKKzY4NDEgMzE1YTc5MTk5ZmM4ZWQ3Y2ZkOWFjNGFlOTFmMWFjYWM5ZmEzODllYyBsZWdhY3ktdHJ1bmsKKzY4NDIgYTA1ZjhkOGM2NzY4ZjgxY2YyMjViMzBlMmQyYWEwMzRjNTI4N2UzZCBsZWdhY3ktdHJ1bmsKKzY4NDMgM2U3N2Q2NjM3YTJiOTBkMzJhNjk3NDBlZDA5MjE3MjgyM2YyZjI2ZiBsZWdhY3ktdHJ1bmsKKzY4NDQgYTcwNjkyYTZkOGNjZjU4ODBmMmU4NDZjOTFhOTM2MWYxZGNjOTIwYSBsZWdhY3ktdHJ1bmsKKzY4NDUgYzI3N2VlOGM2NjljZGI4MjBhOWQzYmJlMjNkNjAzNWQ1MjZkZmFlYiBsZWdhY3ktdHJ1bmsKKzY4NDYgY2JkNDM0YjQ2YzFhNjNmMzIyNGY4YTgxMzJhMGNhYmZhOTA3ZDZjNSBsZWdhY3ktdHJ1bmsKKzY4NDcgOThlYTgwMDUxZGJjOTFkMDk3MDJiNWRjMjRiMjM3MDA0ODVjNzAyMyBsZWdhY3ktdHJ1bmsKKzY4NDggNDYxNDBmNTg1NmQ5MGEwZWE4NDZjZTk4ZTFhN2JmZTIwMGExYTdiMCBsZWdhY3ktdHJ1bmsKKzY4NDkgMzFjN2Q4ZjQ1YWViMDg1NTc4ODNiZmU3Y2Y2NzE5MDVkMGQyYTUwNCBsZWdhY3ktdHJ1bmsKKzY4NTAgZDRmNjRmYzQyZDg0NDkwNTRmMzMxN2VkNzQ5MjA2OWEzNDQ2M2Y1YSBsZWdhY3ktdHJ1bmsKKzY4NTEgNWY4YTY1M2IxNzc5YTUwZGU3ZWNjY2VjMDQ4ZDkxOWI2YTQ4MTc5MSBsZWdhY3ktdHJ1bmsKKzY4NTIgOTY2OTlhZjQ4MWJhOWU5ODJkNDFhZmRhZWI0MWJhZmNhY2MyZjVkMSBsZWdhY3ktdHJ1bmsKKzY4NTMgMzA2MTY3NmE2NTlhZTNlOGU3OTZhMDg5NzBhZDliZGViZDI2MTM1OSBsZWdhY3ktdHJ1bmsKKzY4NTQgYWYxYmYwZjZlMmRiMTEwMGY0ZmEyZTI5YTEwZjYxZTc5ODhhMjQ0OCBsZWdhY3ktdHJ1bmsKKzY4NTUgNzk4NzMyZTY5YjNiYTFhNjI0ZDhjYjk5N2Q4YjZlMjIyYzYxZWU0NyBsZWdhY3ktdHJ1bmsKKzY4NTYgYWQ0MWRlY2M1ZmE5M2Y5Yzg4YjVhOGU2OWJjZTI4NDMyOGI4MDVhNCBsZWdhY3ktdHJ1bmsKKzY4NTcgZTAzM2M3ODZmMjk3MWM3NjQ3NDlmOWYzOTUyNDBjMGU1YzM4Y2IxZiBsZWdhY3ktdHJ1bmsKKzY4NTggMGRlOWM1NTRiYTAwYzBkNmVmNWRhMzU4MTA0ZDExY2M2ZmJmMTc0NSBsZWdhY3ktdHJ1bmsKKzY4NTkgNzBjYzIzOGQ1NjNlNjIyNzkyZGU3ZmY4MjgxYzM2MmZlNDMxZjEwMCBsZWdhY3ktdHJ1bmsKKzY4NjAgM2M3ZWZlYjYwN2EwNzBjYjQ0NTkyYWM5OWNmMmZmN2FjYjNjN2M0MSBsZWdhY3ktdHJ1bmsKKzY4NjEgMmUyNzJiZjVhNDNlODQ0N2JlMDhiNWU2YmI3MGFlZGYxMmI4YmJhYSBsZWdhY3ktdHJ1bmsKKzY4NjIgYTc3ZjRjMjI2OTdmZjlhZWY3ZjU3YjdjYjU0Y2IwMGZmYTJkOTQ2NCBsZWdhY3ktdHJ1bmsKKzY4NjMgYWRiZTYzMzE3Y2NiM2RjYzY3YTRmNWI0NTJmNmI1N2M0NmVmYmY3OCBsZWdhY3ktdHJ1bmsKKzY4NjQgNzc5NTRmZTQzNzZjYjQ5MWUyN2I1YTQ4NDNhNWY1MDA2YTgyMjI5YiBsZWdhY3ktdHJ1bmsKKzY4NjUgNjJiNjViZTJiNzdmMWIxYTlkNzE3NmEyYjVlZTZiMzI0NTBhZDdmYiBsZWdhY3ktdHJ1bmsKKzY4NjYgNzJhMGNmZGEyMDA0NDc0NTkwOGNkOGQ1MTlhNjUxM2Q4NTQ3OTA4MSBsZWdhY3ktdHJ1bmsKKzY4NjcgNzk4MDg2MzIzNDY0NWM4NThiNzUzZmVhZjA1MjMxZTg5NmExNTcyMiBsZWdhY3ktdHJ1bmsKKzY4NjggNWM4NmY2MDUzOWY3NDI3ZTBhZDEzY2YwNDFjYTA2MTRlODdiYmYyOSBsZWdhY3ktdHJ1bmsKKzY4NjkgNDhkMWY1YmViMTZiYTY0OWFkNDJkNmVhMTJjNDdhYjg4ZTU3ODYwNCBsZWdhY3ktdHJ1bmsKKzY4NzAgZDU4YTg0OTE1ZmFkZTE5YWUyZDgyZjBkOGE1OTE2MWI0NDkzYjEyNyBsZWdhY3ktdHJ1bmsKKzY4NzEgODkwNDM0ZDViZWMyZjljMzlhYTZlYTZkMTExNmU0NDE4MjBkZjBiNCBsZWdhY3ktdHJ1bmsKKzY4NzIgZWM0YzQyYmVhNjlkNmNmYjEzOWM0YzQ0ZGNlMTE4YmU4YjlkYTUwZCBsZWdhY3ktdHJ1bmsKKzY4NzMgZmRkMTI5ZjA1NzRlZGNjNjE3YjllYTAwNmVjNjU5N2ZmYjFhYTRiMyBsZWdhY3ktdHJ1bmsKKzY4NzQgMDkxNzc1YTVlMTliMzVlOTQ0NTFiMDQ3MTc2MWJlNjM0ZTdiMTk3YSBsZWdhY3ktdHJ1bmsKKzY4NzUgZDE2Yjg2MjFhM2YwZWFkYTM5MDRiMDZjNWQ2MzdhOTllMGJlNWE5NyBsZWdhY3ktdHJ1bmsKKzY4NzYgMWQyNzVjZDQyYzliMTg3YzYzMjlhYzhhZDIyNWI2ZjcxMmI4Zjc4MSBsZWdhY3ktdHJ1bmsKKzY4NzcgM2IzZjdjM2Y2ZGEyZjhmMGQ1ZTg0ZWI2ZjYxNzQ1YmQ2NzNlZThkYiBsZWdhY3ktdHJ1bmsKKzY4NzggMWUyZDI4MDYwNmQxZWZmOGQyMzNkNzM4ZmE5OGY3NWJjMDU4NmE4OSBsZWdhY3ktdHJ1bmsKKzY4NzkgZTUyOGMwYWNlNGU1ZGE5ZDIxY2MzZTI4N2E1MzRiMjg1ZDE1MGNhNyBsZWdhY3ktdHJ1bmsKKzY4ODAgNmYwMzJlYTI2NjQyZjZkY2UwMGNlZmFlNjE3OGQ1MDJmYmNhMjcxZSBsZWdhY3ktdHJ1bmsKKzY4ODEgN2RkZDhiM2Y2ODAyZjBlMmU5MzM5ZTc4NmY4OTg0NTQxYTJiZWQxOCBsZWdhY3ktdHJ1bmsKKzY4ODIgNmM3NzFlYTM4ZWVlODcyOWExMzFlY2M0OTYyNzdmNmYwYTVkODNhOCBsZWdhY3ktdHJ1bmsKKzY4ODMgYTk4MDExZjBmOWNhNWI0YWIxYjNjZThkMWI4MTVkNmQyMTY2OWQ3OSBsZWdhY3ktdHJ1bmsKKzY4ODQgNGNlZjIzZTFkY2NhODdmZjE4NzA4ZDdiZDU3ZjY5MGY5ODMzN2I2NSBsZWdhY3ktdHJ1bmsKKzY4ODUgZDczODQ5MGM4ZGExOTNjMmZjZWMwYzE4NWE4NGNlNGI1MzUxYWJmOSBsZWdhY3ktdHJ1bmsKKzY4ODYgYWMzMzI0ZTYzOGU5NmMyNDM4ZTE1NWEyODY5YzRmYTZjZmUxMGZkZSBsZWdhY3ktdHJ1bmsKKzY4ODcgNzdkM2QzMDEzNjkyZmRjM2I0NDQxMGIxYTM5NjBkMTk0MDA3YjEzOSBsZWdhY3ktdHJ1bmsKKzY4ODggMDJhNjhkNjIzODA1YzAxMjE1ZTE1MTkyN2UzMmM0NjRiNTE1ODI1YSBsZWdhY3ktdHJ1bmsKKzY4ODkgM2RiZWQwZmY5Y2YyMzM0ZDc2MjdmYjQ5N2RlNWMzZmE3ZDRlZjU2ZiBsZWdhY3ktdHJ1bmsKKzY4OTAgZmNlNGY4N2U1OTc0OTQ3YjgxM2U1MDUyMDVmZGRmMmU4N2U3NjViYyBsZWdhY3ktdHJ1bmsKKzY4OTEgYzE0MzVjNWRhMjgxN2IzMDY0NThlZWQyMGIyNzhkOTljYzRkYzAyYiBsZWdhY3ktdHJ1bmsKKzY4OTIgZjQxYWI3MTNmN2VhYmU5MzgxYjdhZjEwNzZlOTNlNDc2NTIwMmU2NSBsZWdhY3ktdHJ1bmsKKzY4OTMgMmVhY2QyYzhlYWJmZjQzNTU0NjcwZWE3OGUzODM5Zjc5ZDZiOWNlZSBsZWdhY3ktdHJ1bmsKKzY4OTQgN2ZmZmY2OTVmMjFkYTc3MTk0YmM1ZjQ3ZjAwMTY4YTJlZDBjMWRkMSBsZWdhY3ktdHJ1bmsKKzY4OTUgOTNkMDVlMTc4MjE2NGRmN2IwZTdjMmZiZTY0MzA5YWRlYTI2ZmVmYiBsZWdhY3ktdHJ1bmsKKzY4OTYgZGQ1ZTllODU3MTg2NTlkNjVjNDFhMTg1Mjg3ZDNhY2IxMzM1NzdjYiBsZWdhY3ktdHJ1bmsKKzY4OTcgZWY3NjA0YzA3ODc3ODFiOTEzZTcwZTZmZTAxNjliOTE3NjgwZGUwYSBsZWdhY3ktdHJ1bmsKKzY4OTggNGY2YzU2MjkyZDM0ZjZiZGU1OGNlZDE2NmM4OTQ3ZDEzNzU4YzhhZSBsZWdhY3ktdHJ1bmsKKzY4OTkgNWUwMzg4NTZmYTU2ODg2ZmI2YmY4MjBlYTBkMjYxNTk4NjBkZDk4YyBsZWdhY3ktdHJ1bmsKKzY5MDAgNzVhYmU3MzdlNzBiNjE3MTlkMTExZjcwOTdkM2Y0YTU3MzBjM2Q5MyBsZWdhY3ktdHJ1bmsKKzY5MDEgOWM3ZWYwMzBiZWM4MDExYTNiMjRmNjEzMDBlMDRhZjBlNTY3M2U4MCBsZWdhY3ktdHJ1bmsKKzY5MDIgOTM4YmU3YTMxMDZmMjg1YmQ3MmI1MDQ0OWY3N2Q3NjdmODlhNzA4ZSBsZWdhY3ktdHJ1bmsKKzY5MDMgMzRlZWI2MWYxMDI4Mzg2ZDhhNTI0MDMwMzViZWFhYmJkNzg3NGQxNyBsZWdhY3ktdHJ1bmsKKzY5MDQgOTI3NTMyMDcxNDkwNDQxMzFlZTJhNzZlMTc3YzViZDEyNTI3ZTg3NiBsZWdhY3ktdHJ1bmsKKzY5MDUgZjJmOTQ2YmQ3ZjQ3YzVjOWE2MzVhOTY4YWY0NjVkYzc5MDhmMWIyOCBsZWdhY3ktdHJ1bmsKKzY5MDYgMWNjY2U1ZTRmODA2ZDU0OWMxYWEzZmFiOWM0OGE3MDhhNGM0OTg2MCBsZWdhY3ktdHJ1bmsKKzY5MDcgMzQwYWRmYWE5ODU0M2YwMTllYjBmZWU4NjdhZDlmMmZmZjBkN2ZiYiBsZWdhY3ktdHJ1bmsKKzY5MDggYWMyYTYyN2NlM2E3ZWY3ODAzN2U5M2EzZGQzODk3YTliMjczMTY4MSBsZWdhY3ktdHJ1bmsKKzY5MDkgMjVjNTMyODY3NjNkMDM1OWViMzIzODJmMGRjNDAyNzViNWZhMTllZCBsZWdhY3ktdHJ1bmsKKzY5MTAgYTM2MjM1NjMxMjczN2I3N2M5OWIyNDgwNzljODUwZjZjZWY3YzYyOCBsZWdhY3ktdHJ1bmsKKzY5MTEgN2RlNDU3YmRjOTQ2Njc5Mzg2NjE0ZmUyM2JmMjJlODg1YWFhNjBhMCBsZWdhY3ktdHJ1bmsKKzY5MTIgZTg4YjMyMTVlOTRhNTkwMThiODRmMWE5NjU3N2JmZDMxYzk3MWI1NyBsZWdhY3ktdHJ1bmsKKzY5MTMgZmIxMjM3YmY3MDIyYmI3NzczOTc4ZGIzMjEwYTJhZWU5ODA3N2E3YyBsZWdhY3ktdHJ1bmsKKzY5MTQgZmNlMjk2ZGJiMDNlMTY5OTgxMDNiN2EwM2ViZjUyMjkxODUyNDBlNSBsZWdhY3ktdHJ1bmsKKzY5MTUgNzgwMTBjY2I4YTQ2MTg4MWViY2I1NTQzNmM4MzMwNGZmZmEzM2M2MyBsZWdhY3ktdHJ1bmsKKzY5MTYgMDU0OWUzNDI4ZDU3ODM1ZGQ1YWNhZDdhOTBlN2RjOWFmMGYzYWQxMiBsZWdhY3ktdHJ1bmsKKzY5MTcgMWMyNzQ0OTEzMGJhNDQ1YzIxMTAxOTMxMWIyMjkzOGJjODE1MmQxMCBsZWdhY3ktdHJ1bmsKKzY5MTggZmE5YWJmOWE4NjI0ZTZmNmU3NDVhZTE1ZWNmNDM3N2VjMzIyYjk5MyBsZWdhY3ktdHJ1bmsKKzY5MTkgMDJiMWYwOGUzMGEwM2NhZTk0ZmJmNzI1OTljZDYyN2Y3MjVjYzE5NCBsZWdhY3ktdHJ1bmsKKzY5MjAgOTQ1MjE4ODA4NzFkMTYyYmRjZjlmYzM1Yjg5YTA0ZmQzZWRlZTc0YyBsZWdhY3ktdHJ1bmsKKzY5MjEgMWJhMjJmNzQ5NDg5YTQzNTRhN2JjMzYxMjlkMDQwNDMyZmZhMTNlMyBsZWdhY3ktdHJ1bmsKKzY5MjIgODVkMzg0NTZhZGYwOTQ4NWI0MDQyYjAwYWIzZjlhOGVlNzY0N2NjMCBsZWdhY3ktdHJ1bmsKKzY5MjMgMWZiOWE1NGU0YTljMTU3YmRhNGFmMzUyOTU3ODJiMGMzNDFmYjBiZiBsZWdhY3ktdHJ1bmsKKzY5MjQgOTFjNjk2NDU3ZmQ0ZWQyY2QzMTRiMGI2YTBlZjA1MDM4ZjI4YmM3OSBsZWdhY3ktdHJ1bmsKKzY5MjUgYzZmZmI0ZmM0ZGE0MDY2MjQ3MzIxMzcwNTc3ZmZhMWZjYzMyYmQ3ZiBsZWdhY3ktdHJ1bmsKKzY5MjYgZWRhYjA5Nzg4MmQ4MGU0MWJkNmI5OTQ2ODM4NGE5N2NiNjY1M2YyYSBsZWdhY3ktdHJ1bmsKKzY5MjcgZGNjNGNmOWZhNjJhODZjYjY5NGQxMjM1NTI5NTBkM2M2ZjdiYjViNiBsZWdhY3ktdHJ1bmsKKzY5MjggNGMxNjE1NGZmZmI5N2I0NmYyNWRjNTIwZGNjNDcxNzJhYTgyNDcxMyBsZWdhY3ktdHJ1bmsKKzY5MjkgN2VlZWZkMzI2N2Q0NTBhNzI4OTcwZTE5ODdmOTM4YzdiNDk3ZDlhNyBsZWdhY3ktdHJ1bmsKKzY5MzAgYWNiMTk4OGI4ODUyZmI4OTc2YTA3OWY5OWY0ZWVlMTYwMjQ5MDQ4NCBsZWdhY3ktdHJ1bmsKKzY5MzEgYWI2MGM1NTg1ZDFiMDA1Y2RjNTRiYWRmZDZlYjM0M2Y2ZDhmNTg4NiBsZWdhY3ktdHJ1bmsKKzY5MzIgZDg3NTlkMGI1YTY3Y2JiZDBhM2MwZWM2YmJhNWU1N2JmOWE2NDEwNCBsZWdhY3ktdHJ1bmsKKzY5MzMgYzkxYWFjYmY4ZWQ0NjUyODk0MGJiMDZlODZjY2NkMmNlOWMwMTRhMSBsZWdhY3ktdHJ1bmsKKzY5MzQgNTE5N2UwZjNmMGZmY2VkMGM5ZWJiODY2NGEyMzE0MDk5OGU3YmRhYSBsZWdhY3ktdHJ1bmsKKzY5MzUgYTgyNjRkNzBmMjgxYzYwOThiZjAyYjVjM2Q3MzE1ZjlkMTVhYjBlZiBsZWdhY3ktdHJ1bmsKKzY5MzYgNmY4OWE0NGE4NjFjN2JkOWEyYTY4MjYyNDE3NTQ4ZDVlMThjMmZkYSBsZWdhY3ktdHJ1bmsKKzY5MzcgYzZhNDc4NmU3ZjhlYTgzMDFiYWMxNGE3NTk1YmFlOGRmZDRmNzgxMyBsZWdhY3ktdHJ1bmsKKzY5MzggYmFhYmZiNWQ2MmE4OGNlNDFhNDg5MWZlYWFkYWNhZmNjZWE2YzhlNCBsZWdhY3ktdHJ1bmsKKzY5MzkgYjUxZGMyZmI0OGUxODA0YWRkNTc5OTE3OGY1YjYyYzVkYmQ5NzUzZCBsZWdhY3ktdHJ1bmsKKzY5NDAgOGQwNTZmNTNhN2Y2MzI1YTkwN2VjMzViY2Q2Y2ZhNWI0M2RiMzM5MCBsZWdhY3ktdHJ1bmsKKzY5NDEgMGQ2MWY2YzM4YjM3ZTI1NzhhNDlmYTk3NjdhNDNiNTQ0YzBkOTk4MSBsZWdhY3ktdHJ1bmsKKzY5NDIgNjAwZjViOGExNmNiMWM0NzViZGMyOWM1MzhlOGVlZmU1M2RmYjdiMSBsZWdhY3ktdHJ1bmsKKzY5NDMgNWQ3ZmEzZjJjZWMzZDU2MTE2YjZhNjhhOTIyYzNiNDI0NGE1NGM3MSBsZWdhY3ktdHJ1bmsKKzY5NDQgZDljNTE1NWJkYTUwMDJmMmNlODhjNTQ5ZTg4NzM5N2ZjZWU4OTE3MiBsZWdhY3ktdHJ1bmsKKzY5NDUgMTIyYzhmZGZlNGVmOTFhYTc1YmRkMDAyOWQzYTBiOTVjYWI1ODMxYiBsZWdhY3ktdHJ1bmsKKzY5NDYgZjYzNDYwOWY0MDI4YTVlMmM3OTFlMGQyM2U3YTk3YjQ0NGQxZTJmYSBsZWdhY3ktdHJ1bmsKKzY5NDcgNTVmZTY0YzIxMTQ1Y2Q4OTMyNzM5MWNlYTdlMWRkZWM0NzU2ZTk2OCBsZWdhY3ktdHJ1bmsKKzY5NDggNGQ2YmFiZjJlNGUxOTEzYWQ5NmFiOGRkZGEyZmIzYWQ1MjViNWU2NyBsZWdhY3ktdHJ1bmsKKzY5NDkgZmIyZDFkNWUxNDFhYTQ2Y2RiYWNhNDU4MGRmOTU4OTUzMjAyNjlkNCBsZWdhY3ktdHJ1bmsKKzY5NTAgN2U1ZjAzOTUzMTEwNTliZDQ0ZjZlMmUzY2NhMGMyM2JkODIwZmM0ZCBsZWdhY3ktdHJ1bmsKKzY5NTEgMmZkYmExMjY3NjEzOWVmNWZkMWFmNjRmNzhiMWU2MDkwNGE0OTVhMCBsZWdhY3ktdHJ1bmsKKzY5NTIgMjY3YWU1ODIzMmQ5YTg2YTllYWM1NTE0MzMyZjA5YzljZmNiOTFkNiBsZWdhY3ktdHJ1bmsKKzY5NTMgMjM0MzgwMzMxOGU0ZjZmNTYzMjE0YTBjMDgxZjQ4NjJhNjkyODNiMCBsZWdhY3ktdHJ1bmsKKzY5NTUgOWU4NTNhNWYwNGZmOWVjMTkyMmVhY2E3MDBhNDQxNmMyMTg0OTJhNiBsZWdhY3ktdHJ1bmsKKzY5NTYgZGQ3MDllZDgyMjYyNzBkZWZlMDFkYjljZmU5NzM0NjJjZTIzYzNlMCBsZWdhY3ktdHJ1bmsKKzY5NTcgMzI0ZTFlMzZlNjUyYmMyMWEzNTg0MTY1ZTAxYTFmY2ZkOTlkYmNmOCBsZWdhY3ktdHJ1bmsKKzY5NTggMWZlYzg4YjIyZTg3ZjgyNGM0NDFlYzA0YWRlZTJiNWIwZTllYmMwYyBsZWdhY3ktdHJ1bmsKKzY5NTkgYTYwZDg1MjM3ZmRiODFlYTU3MGQwODczYjE4ZjEzNDVjMmNiMTc2ZCBsZWdhY3ktdHJ1bmsKKzY5NjAgZDkwNGY1MzlmZmQ5Y2U4ZWZlZTEwYjAxMjc4NDRiYWVlYjNkM2JjNyBsZWdhY3ktdHJ1bmsKKzY5NjEgM2Q0MzUxMGI1ZTE5ZGE1YTY0NTljMGQ3M2FhNjM1YTBmNWRmYTM0MyBsZWdhY3ktdHJ1bmsKKzY5NjIgZTBjMWJkMGE3NGE5MTI3NDRjY2ZiNjI1YmViNjMxMmNkY2RlOWU3OCBsZWdhY3ktdHJ1bmsKKzY5NjMgOGNlMTg1MzhlM2JiZmIxZTQyOTk2MTM2ODcwYzUyMzJhZjk1MTY5NSBsZWdhY3ktdHJ1bmsKKzY5NjQgMGU2MjNlODIzMDFmMWZiMTQ2ZjA1MzNhY2JlN2ZlNGUzOTY0MzUyMCBsZWdhY3ktdHJ1bmsKKzY5NjUgOTc0ZGMzNmZlY2Q2MmMxNmY2ZTJjZWM5ZTRjNzEwOWJjNmVhMWNlYiBsZWdhY3ktdHJ1bmsKKzY5NjYgNmE3NWIzY2YwMjNjZmM3YWMzYjE4MDdlNzEzMWZmOWRhODQ3MGNiZSBsZWdhY3ktdHJ1bmsKKzY5NjcgYWU3NWQ0YTFmNWRkYjM1Nzc1YzY5ZmNiYzAwZGU3YWY1MzA2OWEwNCBsZWdhY3ktdHJ1bmsKKzY5NjggOTllNzBjNDcyYTIwMmRhNTEyNjY0YmY2YzE5OTBjODMwMjcyMWM1NSBsZWdhY3ktdHJ1bmsKKzY5NjkgYTk1NTQ5MjY5ZGUyYjAzMDI0OThmNTZlYWJjNjBlZWJhY2QxNTdiZCBsZWdhY3ktdHJ1bmsKKzY5NzAgNTY5ZTNhZjUyMTg3NWRlZmY2NzQ2YzNjYzhiZjE1MjI3M2U2YmNiYSBsZWdhY3ktdHJ1bmsKKzY5NzEgZWFlOGFiM2QyNGUwMzAwOTJlMjc0ZTQxZGJiZDgxN2RlYjNkZWMxOCBsZWdhY3ktdHJ1bmsKKzY5NzIgOTMzNTNlMWQxYzc2MDRmMDc1NzUyNDU3YmUzMWUyNjJjMjNhYTgwOSBsZWdhY3ktdHJ1bmsKKzY5NzMgZDgwMTI1ZDdkYzczNGExZjllMTQ1OWVmZjg2NDdjZTgwYmU1NDA4YyBsZWdhY3ktdHJ1bmsKKzY5NzQgMjBmZDk2NjQ4NTEwOGRjMmUwOGE3YzRlMWUyMmM2NzczYmI5MTgxYSBsZWdhY3ktdHJ1bmsKKzY5NzUgNGJhMjBmNDQ2NTRiYmU3ZTBjYzQ5Mzg2OWEyMWZlMjY5MTNmYWVjNiBsZWdhY3ktdHJ1bmsKKzY5NzYgNTU5YWE0N2IyZTJjZmNmZWU2NGIxOGY5ZmMyYzc5NTlhZmU0MWUwMSBsZWdhY3ktdHJ1bmsKKzY5NzcgOTQxYjA1MWFmNjc1ZTJiN2VlNzY1ODM4MzhiYjZjOTQzMDc0NGI2MiBsZWdhY3ktdHJ1bmsKKzY5NzggNjVkMmQ4ZTY3ZGEzMjNiNzRiNzJlNGQ4MDU1MzZmYWE2ZmQyNGMxZSBsZWdhY3ktdHJ1bmsKKzY5NzkgODU4ZmIyZTliYzE3MjNjODhiOWVlNzgxNWIxMTg1NjQyM2JmOGE0YSBsZWdhY3ktdHJ1bmsKKzY5NzkgZGI0OTQ5NGM5M2RjNzNkZTA2ZDU3MjFjNzRlYWI1MzNhOTQ3YTkyYyBsZWdhY3ktdHJ1bmsKKzY5ODEgMmIyMWVhMmYzOWI0NDMyNmNiMjBjMTVmOTA4ZjAzZjdkMGNmZTgxMSBsZWdhY3ktdHJ1bmsKKzY5ODIgMTg5MjdhYmRjMjYyODE5NDhiY2I5NTQ2NDJhNmY4YTc0NTM0NGZmMCBsZWdhY3ktdHJ1bmsKKzY5ODMgNzE4N2M3MDllYmZkZWE0MTQ3YWY5ZDI1OTcwNzcxMjdlMjgyYzhkYyBsZWdhY3ktdHJ1bmsKKzY5ODQgOWNhNTk0MjQwMjBlMDBmNmJjNmQxMTUxOTc3NmVjOTY5MTA3YzczMCBsZWdhY3ktdHJ1bmsKKzY5ODUgMTFlMGMyMjA4OTk5Nzk4NmQzODdmMDFhNWUyZTcyZDA2Njg3NWU5NSBsZWdhY3ktdHJ1bmsKKzY5ODYgZGYyYzIxMmU0ZWEzZWJjYWJlZWY2MGViOGI0MzYxYWFlN2RiZjE2YyBsZWdhY3ktdHJ1bmsKKzY5ODcgMjNhMTA0ZDNiY2VkYzc1Y2M3NzdjNDYzMWUyZWY0ZTI3Mzc5YWM4YSBsZWdhY3ktdHJ1bmsKKzY5ODggODQ3NDQ1YWVhYjJkMTkwYTZjNmI1NzI2NmRmYmNmZGE1NDE0N2QwNyBsZWdhY3ktdHJ1bmsKKzY5ODkgZjY5NzZiOWE4NWE0M2VmOWI0Nzg1YWU1NTIyMzFhMTA1OGIyZTgzMSBsZWdhY3ktdHJ1bmsKKzY5OTAgYTc1ODU4ZmVmNTUwN2VlN2FmZmI5N2MzMDllNGNjOTEwNjZlOGJmYiBsZWdhY3ktdHJ1bmsKKzY5OTEgNGE3YzdkZDdiMWYwNTYzMzkzNjE3MzZiZGIxMDUwYTViMDhjODBjMiBsZWdhY3ktdHJ1bmsKKzY5OTIgYTRkMmFhZTc1N2E4ZDUxNzRhOWYyMmYyZDYxYTZiNDAxMDY4ZTUyZiBsZWdhY3ktdHJ1bmsKKzY5OTMgNjkxZTM5MmNhZDM0MGJkYmY4OTk5ODljMTEwOGMzZDhiNTAxNGE2YSBsZWdhY3ktdHJ1bmsKKzY5OTQgZmQ1MjRhMDAxY2U5ZmVlMjlmODE3Y2FlNTdjYjI2OTJiNWYyYjFjZSBsZWdhY3ktdHJ1bmsKKzY5OTUgYjQwNjNjMTAxYzJjY2UzMjQ5MzlmNzJiYTMyOTc3OTgxMWY1NjNkMCBsZWdhY3ktdHJ1bmsKKzY5OTYgOTdhNjE3OTVhMTY5YWZmN2UxZWE3YWNkZmQ4ZjA4ZDNiMTQwMzg4NiBsZWdhY3ktdHJ1bmsKKzY5OTcgZDI1YTBjY2JmZDZiOGE4YTA4OWE1NWE5ZDE5OTI3MjkzYWFlYTQ3YSBsZWdhY3ktdHJ1bmsKKzY5OTggNGQwNjgxZjdjZjZiNmI0YjVlNGYxMTk5MDE1Yjc2ZGMyYWRlNTAxNSBsZWdhY3ktdHJ1bmsKKzY5OTkgZDBjMDNjMzJlOGQ5NDMwZGZjYTQ3MGQyM2ZkZDdmNzY1OTgwZjNkYSBsZWdhY3ktdHJ1bmsKKzcwMDAgZmZlZjJjMzBkYzQ4ZmQwN2RhODJjY2EyODhlZDY1NzMxNGYwZjJiMyBsZWdhY3ktdHJ1bmsKKzcwMDEgZGI1NWI4MGFhZjEwMzk0YTZlNTg5OGE4YjQ1OTdhOWE1YjlkYmYxYyBsZWdhY3ktdHJ1bmsKKzcwMDIgNzg5NGEwY2Q4Yzc1NGI4NWM1ZDc4ZmQxODg1NjZjMjdhNTc3MjU1OSBsZWdhY3ktdHJ1bmsKKzcwMDMgMjgyNGNiZGJlMTJjNWJkNjdhNDNhZmU4ZmUxNmJlNjk0YzM5NWMzOCBsZWdhY3ktdHJ1bmsKKzcwMDQgMzM3NTYyMzMwZmQwZmQ1OTAzZmQ0MTJlYWRlMDk4YzM3MmUxYTZmZiBsZWdhY3ktdHJ1bmsKKzcwMDUgODBiY2IwMmViZjRlZjBhZjU0ODYxOWM5MTgxMjExM2E5ZmRmODkyOSBsZWdhY3ktdHJ1bmsKKzcwMDYgOTYwM2E2MGM4NjliZTI5MjJlZTk4NDBhNDhjZGJlZjhiZGYwYzA2MiBsZWdhY3ktdHJ1bmsKKzcwMDcgMzBjZWNhM2YxMDViMGRhODEwNTQzMjE4ZDZhYTcwNDAzNDJmOTBmNiBsZWdhY3ktdHJ1bmsKKzcwMDggNjJjZWY3ZTg5NmI2ZWNhYjI3MDRmMzI5MDI3ZDA5OGQ3M2MwZDkzMiBsZWdhY3ktdHJ1bmsKKzcwMDkgZDkwZDdiNTQxYWRhYjJmNmRhMTdkZDY4MGQyNThiNzA0OWM0MDRkZCBsZWdhY3ktdHJ1bmsKKzcwMTAgOTQyMWQyZjYzMDc3YTk1MmY2NjZhMGIwMDMzM2M4OTI2ODExODZlOSBsZWdhY3ktdHJ1bmsKKzcwMTEgMDU3NTA4MzhmODQwM2Y4ODYzNWZmNzdkY2FiODQ0ZDkyMzg2MWUzOCBsZWdhY3ktdHJ1bmsKKzcwMTIgYmYzNzY4YmQzMWYyYzk2ZDU3NGE2NTc1OTc3ZGE1NzQ2OWE4NWY1NyBsZWdhY3ktdHJ1bmsKKzcwMTMgNjUxNzBkYTFkMmNhNWJjNGIzMGNmNjljZmIxMDQxYzViNTIzMjc5NCBsZWdhY3ktdHJ1bmsKKzcwMTQgNDdlN2M0MmI5ZGM2MzUzZmRmZDg4M2RlNjQ5NWVkYTc0YzBlZThlZCBsZWdhY3ktdHJ1bmsKKzcwMTUgMWY0ZjFiZThhMzM5YjhjZTdlZTUxN2UwOGQwOTEzMTgyNDg5YjY1OSBsZWdhY3ktdHJ1bmsKKzcwMTYgNTc0OGQ1ZWUxOWVkM2NjMDk5NDU3NDFjMWUxN2M3MGNlOWMwYjdmNyBsZWdhY3ktdHJ1bmsKKzcwMTcgNjUyMzAzZWY5MjZiMWY2MmQyYjVlODBjZWJlNDBjYjk3ZWEwMjEwZCBsZWdhY3ktdHJ1bmsKKzcwMTggZTUyMDU0NDQwZWZjNWIwMmZhOWZkMzQ2MDMyMTQzMGNiYjVhZTk5YSBsZWdhY3ktdHJ1bmsKKzcwMTkgOGQwYjAwZWQ4YzJiNTZlNjdiM2I4YzgxZmUyYTYzZTc5YWNkNmY4OCBsZWdhY3ktdHJ1bmsKKzcwMjAgODIwYmYxYWU3ZTI1ODJkZDVmMjU0MTAyNTcyYjFkMDA5OGVmOGZjYiBsZWdhY3ktdHJ1bmsKKzcwMjEgY2M2NTIxYTJjZTIxZWU4NWZmNjFmZjg4NTgxMjI2OTI3Y2Y3ZGY4MiBsZWdhY3ktdHJ1bmsKKzcwMjIgNTRjODAwOGRlODdiYmI1Mzg0MGYyYTg3YzllY2NkMGM1NzY0Y2ZmZSBsZWdhY3ktdHJ1bmsKKzcwMjMgYmQ1NTFmYmI5NTk2NTg3Yjk3ZjE2OTYzNTUzYWYzMzIwNzJiNGQ4MSBsZWdhY3ktdHJ1bmsKKzcwMjQgZGJjOTg4MzRlZmYyZWE1Njg5NGJjNDA4YjUwZWJlN2M3MGY3MTY0MCBsZWdhY3ktdHJ1bmsKKzcwMjUgZjEyNDQwMzZlYmFiNmUzNzExODkyYzljMGU3YjRlMTYzM2ZkMGY2NCBsZWdhY3ktdHJ1bmsKKzcwMjYgY2VhMzE4YmI5ZDJmNGQ4ZTQ3MjU0ZWVlOWE0M2FkNThkMjI3ZTkzYSBsZWdhY3ktdHJ1bmsKKzcwMjcgZWZiMjkzOGNlNjc2M2ZjZjE1NjQ5OWQ1YTE5ZDEyMzg2MGQ0YjE2ZSBsZWdhY3ktdHJ1bmsKKzcwMjggODkwMDIxMzc2NGJhMTlkMjM3MzlkZTc0YThkNDJjZTMxYzhiZWY0ZCBsZWdhY3ktdHJ1bmsKKzcwMjkgZjAzMTQ2NjUzMGFmNjcyODMwODRhZWM3MDA3ZGIwZGY1NjljNTM4ZiBsZWdhY3ktdHJ1bmsKKzcwMzAgMDQ1MDc0MmYzNmY0ZmZkMTBmOWFmZDQ0MWI1NDNmZWI0M2M5M2IxOSBsZWdhY3ktdHJ1bmsKKzcwMzEgYjIxM2QyNThmZjMyN2RlZDYzNmRkOTBlMWU0ZGU0NDllNzkyMmZkYyBsZWdhY3ktdHJ1bmsKKzcwMzIgMmMwYzY4MDQwN2IyZWM0YzQyYjA4OGMzY2I0ODllYTIzM2ZiYjZmMyBsZWdhY3ktdHJ1bmsKKzcwMzMgZGY5ZDFlYmNmN2YzMGJhMTgxY2ViYWRmOTE2ZGQwMTZlNmY5NDU5NCBsZWdhY3ktdHJ1bmsKKzcwMzQgYWRiY2MwYWI5ZWI2YWY0MDFhNTJiZmQxOTIwOGY3N2RkYjI5NTExYSBsZWdhY3ktdHJ1bmsKKzcwMzUgYjIxN2RhM2Y5YjU0YzYzNjQyMGU5MTE1MTRkMDk1MDIwYmQ1MmRjYyBsZWdhY3ktdHJ1bmsKKzcwMzYgYzcxM2RlNzJlNzZlYzQzMjlhOTA1ZGFiNDI1YWI0Zjg5NjA5M2FlNSBsZWdhY3ktdHJ1bmsKKzcwMzcgZDAzMGVhNTMzZTYzYWZhZTg3MGRiNDI4YTdlYTE1NDVmZjdjZjg3NyBsZWdhY3ktdHJ1bmsKKzcwMzggZWE0NTg5MzNmYzJhZjZiMzlkZDFkZjc4NDQ3ZTFkOWU3NWM0YWE4YSBsZWdhY3ktdHJ1bmsKKzcwMzkgNzQ1YzdjNzBiZTMxMDhiMTc3NGY0M2QwYjFhODRhMDVhNmM2YmJjNiBsZWdhY3ktdHJ1bmsKKzcwNDAgN2Y0N2UyYjZjNGE0OTlmMmIwZDc5ODdiZDE3OWZkMDYxM2VmMDI5ZiBsZWdhY3ktdHJ1bmsKKzcwNDEgNjQwM2M5NGRlNTBkYzNjMWZlODQ4OTk5MTkwMDMzZWI3MjExN2Q2ZiBsZWdhY3ktdHJ1bmsKKzcwNDIgYTM2MGRjMWZhNTU4Mjk3ZTdiMjZmMjY0NzYyMzQzNjgxMjlhM2RmMCBsZWdhY3ktdHJ1bmsKKzcwNDMgNDM0MTU3NGUxNjNiM2Y0OTE1MjY1OTE3ZTczZDQ1MGNmN2I3NDdjNSBsZWdhY3ktdHJ1bmsKKzcwNDQgZTcwOGY1NjhiOGI3M2QzMGY0OWNjNjE1YTM1YjBkZDBmZWE1ZTQwNyBsZWdhY3ktdHJ1bmsKKzcwNDUgN2JiODRhMjIwNTQzNTFlODMyMzY3N2ZjNmE2MWRkZmYyNjg3NmFjOCBsZWdhY3ktdHJ1bmsKKzcwNDYgYTBlYzhhOWRiOTYwNTRjOWVlZjZhZGFjMGQ2MmI0MTEzNDBjNjk5NSBsZWdhY3ktdHJ1bmsKKzcwNDcgMjYyNmQwNmIzYjAxZjdlMTZlYzZiNTI3Y2YxODkxNDM3MTVhZTRmOSBsZWdhY3ktdHJ1bmsKKzcwNDggNzM3NThkYjJmNDY0Njg5NDc1MDcyMDc5ZTU1ZjUyOThkNDQ5YWE0ZiBsZWdhY3ktdHJ1bmsKKzcwNDkgODE4NjAzOTA1NWVkYTNkM2Q5YjNhMzc1YjNiMDMzYWM5NDlkNDY3MiBsZWdhY3ktdHJ1bmsKKzcwNTAgYWE5NjUwOGE2NTg3OTBmYjNhMDUyZDVhMWNhNmYwMzZkZTk5MDI2ZCBsZWdhY3ktdHJ1bmsKKzcwNTEgYzNiMDg5NWM5MGZiZjA4N2Q4NjkzMzcwY2YwNzQ1NmJkNGQwNWJlYyBsZWdhY3ktdHJ1bmsKKzcwNTIgZmFlNzhjZjg1NDFkNGJiN2VjYThkZmZkOTc3ZmNjMzhmMTYyYzBhMiBsZWdhY3ktdHJ1bmsKKzcwNTMgNmYxYTEyMGFlOWMwNjE2MTRhOWVkYjI5NDU4YWQzMzI4MmMyYTMxYyBsZWdhY3ktdHJ1bmsKKzcwNTQgZTNmNzFjZThlNmJiYjVmMzhlMTg1Njk3YzZjZjQwNDE4YTRhNTk0OCBsZWdhY3ktdHJ1bmsKKzcwNTUgMTFiZDRmNDk3NzQyZDgyN2I3MzdjMjY5Yjg4YjhhZTRlMzM1ZGZkOSBsZWdhY3ktdHJ1bmsKKzcwNTYgYzgzN2YyNWM3ZTQ3NzQ3MjQxYzNkYTA2NWIwNzEzOWY4MjQ2YjFhMiBsZWdhY3ktdHJ1bmsKKzcwNTcgMmY4ZDljMjJkZTYyZTE3MThjMDhjMTg3MTBiNjFjMjllMDdiNmFkYyBsZWdhY3ktdHJ1bmsKKzcwNTggNGY2NDRlY2M1YmFjNGFhYTI4OTIzMzEyMmQ4NjgwMTdjMTFlMmE0MSBsZWdhY3ktdHJ1bmsKKzcwNTkgMzg3MWViZDE5NjNjN2FkODFiN2U1ZTU3OGI2MmNhMmFiYWU4NTdhNyBsZWdhY3ktdHJ1bmsKKzcwNjAgNGE4MTY1YjNiNjYwM2Q5YjMxOGE4ZWUxNmY3MzMzZDUzMTU4OTMxOSBsZWdhY3ktdHJ1bmsKKzcwNjEgYjNkMjk5MGQ4YTRhZmI2OGIwMjlmY2M2ZjllMmVjMDIyNDg0YmVlMCBsZWdhY3ktdHJ1bmsKKzcwNjIgMDlkOTRlOWViMTAxMDAxOWQxYjNkMjdkNTI2MmM5YzVmNTY4MGVjNSBsZWdhY3ktdHJ1bmsKKzcwNjMgNGRjNjdmZGQ5ZTBiNWUwZWRjMTM1MmU1NzIzZThjMDJkNGVjZjMzMyBsZWdhY3ktdHJ1bmsKKzcwNjQgOTYxYmY5YTIwMGRkMTg0NDhhMWY5YmUyMjhlNTUwZDAyMzMxN2E5NyBsZWdhY3ktdHJ1bmsKKzcwNjUgMjEyNGY0Yjk3YmRkMmJiOTdhZDViZjQ5ODRhYWZhNTBlNzNiMjdhYiBsZWdhY3ktdHJ1bmsKKzcwNjYgOGNkZDk0YTNkMDJkOTk2Y2ViZWUzOGM0ZDIyZTY4ZWI2NmFjNmI4ZCBsZWdhY3ktdHJ1bmsKKzcwNjcgM2JmOWUyYmVhZjhjMDE5NzM4ZjU1YzlhYmE2MGIzNWQ3Zjg0MzJiNCBsZWdhY3ktdHJ1bmsKKzcwNjggNzJkMGRmYjkxOWZlMjhhMjJlZThhMmQ2NDBjNWNhZWU5YTEwODQwOSBsZWdhY3ktdHJ1bmsKKzcwNjkgNDE4NTcwNzVkNDViYWM4MDA3YzgyYTA0MmE2OTg4NjViM2Y2OGMwNiBsZWdhY3ktdHJ1bmsKKzcwNzAgZjhmM2RhM2ZkYWVkNTgyNjg1YmJkMDg2MGIyMTcwMDJlMzEyYjc1MCBsZWdhY3ktdHJ1bmsKKzcwNzEgNGZhMTk2NTk1OTFlZmEzZWQ4Y2U4MjM4NjdkODljZWFkNGJjMGY4NSBsZWdhY3ktdHJ1bmsKKzcwNzIgZTc0YjYwN2E1OTk2ZmE5OTIyMTNiYjk1M2RhY2I1Mzc3NDllMTg2ZSBsZWdhY3ktdHJ1bmsKKzcwNzMgOGZkYjA1MzljZmIxNTBhMTA3NDdjZDAxMWI1ODlkNDdmMzIwMTEwZSBsZWdhY3ktdHJ1bmsKKzcwNzQgYjJhMWM5OWNhNjQyYjk5M2E4ZDNjNTEzNTZjOTk5MjhmMzY0ZTgxYSBsZWdhY3ktdHJ1bmsKKzcwNzUgZDM2MjUwYWVmYjgyNTI2NzRjMmJmYjIwZTM2N2Q4MGU4MGE2OGQ2MSBsZWdhY3ktdHJ1bmsKKzcwNzYgN2Q1NmI0OTZjN2RjMjFjZGQxZDE3OTY0MDNkMjBkY2FiYjMwMzY1OSBsZWdhY3ktdHJ1bmsKKzcwNzcgN2M2ODAyZDg2MjBmNDJlN2E1MjYxZGJmMDg0MzgzMGI1MzQyNTk1MyBsZWdhY3ktdHJ1bmsKKzcwNzggNWM3NDFkMmQ5N2Y1YjE0NTQ5NDdmOGY5NDkwNjlmM2VmZDA2NGUwMiBsZWdhY3ktdHJ1bmsKKzcwNzkgMjM2ODM1M2Q5ODg3NTMwMTk3ZTNhYTJhMzJhYWU3MzRhMmExY2JkMiBsZWdhY3ktdHJ1bmsKKzcwODAgYjk4YjQ2ZGQ0MzY3ZTI3OTYwMTk3OGExOTU5Yjc3N2U3NjRjMTljNiBsZWdhY3ktdHJ1bmsKKzcwODEgNzM5Yjg0ODBmMWFjMjcwNmE2YjJlMjVkYTgwZGZhZGEwOGUzNzU4NiBsZWdhY3ktdHJ1bmsKKzcwODIgMzNhOGU2NWVlZjIzMDkwMDAxMDU0NTc5MTY0MjdkODU1NzRiMGRhNSBsZWdhY3ktdHJ1bmsKKzcwODMgM2VlODdkMDgyMTQ3YzE2NDNiYmVmMDQzYWU5YzNjOTRlNjkzYzMzMyBsZWdhY3ktdHJ1bmsKKzcwODQgNTNlZjViNTFhNDhiNGUwZTcwMmY2ZDJjNGI4YmI5NzRmZTQ4NjVmZiBsZWdhY3ktdHJ1bmsKKzcwODUgYmI0MDk0ZmY3YmRmZWQ0Y2NjM2M1MWQ0N2Y1ODNiYjUyY2QwYTNjOSBsZWdhY3ktdHJ1bmsKKzcwODYgY2JjNjY5ZmUzNzBhYjA1YjVlNDZmYTQyYmExYzJlOWVhMzdiZjBhNyBsZWdhY3ktdHJ1bmsKKzcwODcgNGRlMDVjYmY1YWQxOTg3ZjdhM2E0MjJkZDUxMjhmNTE4ZDE5OTBjNiBsZWdhY3ktdHJ1bmsKKzcwODggMTMyMTExMmU5ZTNhNGNlODNjNDFlMzU2YTY4MzA1YTNmNTcyYWRmMiBsZWdhY3ktdHJ1bmsKKzcwODkgNjgzMDc2NDMyYjdmOWRhZTZkYTg0NWNkMzViZWE1ZDEwNTRmNjMxMCBsZWdhY3ktdHJ1bmsKKzcwOTAgODc2MTc3MDFkNzIxZTcyZDc3MWJjMmVlODkwYmZmMDM2OWI3N2ViZCBsZWdhY3ktdHJ1bmsKKzcwOTEgOWNlZjk2OWM0NWU0NTA2MWIzYjgyMzUwZmQ1Mzg5OTg0OTBlY2U4NSBsZWdhY3ktdHJ1bmsKKzcwOTIgODc5OTlkYzRkNzk4MDAxOWMyMzA1YTg5YTAzYTljY2IxOWViZDMwNCBsZWdhY3ktdHJ1bmsKKzcwOTMgMDZjN2M3ZGU2OTc2ODk3YjNkMWE0Y2ZiYzEzNzY1M2NhYTM0NDI2YSBsZWdhY3ktdHJ1bmsKKzcwOTQgYzNjYTAwNjU1NGQ0NDRhYzY2NDkyMWZjODM0NjgxYTZjN2YwMjlhOCBsZWdhY3ktdHJ1bmsKKzcwOTUgOThjMDhmMGM0YTJlZDZiYzllMjUzNzAzZDNkYzVhNzA0MGE1NWRkNCBsZWdhY3ktdHJ1bmsKKzcwOTYgYTJmMTcxY2UyNWY4MTA1ZmViMDZiNGE0OGZmYTZkMThkNDFiNWY4OSBsZWdhY3ktdHJ1bmsKKzcwOTcgNjhiMjhiOGNhMDc3MGU0YTU2YjJlYWIxNjI2Yzg2MDc1MTA2MTJhOCBsZWdhY3ktdHJ1bmsKKzcwOTggMWZhYjk4MTQ2NWM4YmVkNGY0MzRhMjk5NDkxMzVhMzQ3MTczNWNjOSBsZWdhY3ktdHJ1bmsKKzcwOTkgYjExZDk2YzgwNzVjNTc0MmRjYmY3NmQ0NjQ3ZTRkMzk1ODMwNDQ5ZiBsZWdhY3ktdHJ1bmsKKzcxMDAgMjAyNjAyZmFlZmM3ODMyZWViY2QxMjkyMTI5MjBjMDIyNzBmMGE5OCBsZWdhY3ktdHJ1bmsKKzcxMDEgOTRjZTNlMDFjMzBjYzMwMGRiODdhYmE3MTRhZGJhNGYxYmU4ZDNhNSBsZWdhY3ktdHJ1bmsKKzcxMDIgNmI3NjU0NTNiMDQxMGUxMWIyYTc1MTc0ZjE3ZmU1MGEzN2Q1ZWU3MCBsZWdhY3ktdHJ1bmsKKzcxMDMgN2RmNWQ0Y2Y4Mjc3OGE0Mjc2ODA2NmQ5N2M0MzMwYjc0N2U0NGZjYyBsZWdhY3ktdHJ1bmsKKzcxMDQgZmYyNjg3MzI2OGE4NDJjZGI2MDMzMjYyYzI4YTE4YjY0ZmZiYzdjNyBsZWdhY3ktdHJ1bmsKKzcxMDUgMDQ1ZWQ4MzBjMDM1YTBkNTNhZWRkOTdiNWNiZGI5ZDMwMjE0ZjQ4NiBsZWdhY3ktdHJ1bmsKKzcxMDYgMjY0MmZmY2FjMmI0ZGNjMGIxMTRiNGQ4Y2ZhNzM2YjM4NjZlZWQwZSBsZWdhY3ktdHJ1bmsKKzcxMDcgYzhkMjQ3ZmY4ZDJmODNiNDI4NGJmYzA2ZWI4MzQwODlkNWMyZTJmZSBsZWdhY3ktdHJ1bmsKKzcxMDggM2YxMGY5OThhNTg3MWRjYzg1ZTQzZDlkNzVjZDE2OWU4N2ViZDljOCBsZWdhY3ktdHJ1bmsKKzcxMDkgOWZhY2JhYjE1MmNkYWIwZWNhYmI4MTgyYTRmMTU2MTI0MzliMTRlZCBsZWdhY3ktdHJ1bmsKKzcxMTAgNDk3NDVkZGI0ZjY5OGI1YmY5ZTNiODg0MDJlMjU1YzhkYzIwZDEzMyBsZWdhY3ktdHJ1bmsKKzcxMTEgYmQyODk0NWY3NTJiYjY0MGMxNjMwMDY2ZGUyY2I0NDliZDc5NTFjMSBsZWdhY3ktdHJ1bmsKKzcxMTIgZjUyYzJhYTA2MWY4YzYxM2Q1Yjc5NDY0ZjZiZDJhZWY0Y2M2ZDU5YyBsZWdhY3ktdHJ1bmsKKzcxMTMgNWY3ZDI0NmJiZWI3YjZlYjBiMjlmZTU5Nzc4MjA2ZDQwYzA5OTgxYSBsZWdhY3ktdHJ1bmsKKzcxMTQgOTdlYzlkZmJiMmI2ZTRhZTgwZTU1NjQ0N2ZkODkxMTA1MDRmNzYxYiBsZWdhY3ktdHJ1bmsKKzcxMTUgMzRkYjlhMjFiZmIxZDQ4MmNhZjE5NmJlZmVhOTQ2N2U4Nzc1OTNjNyBsZWdhY3ktdHJ1bmsKKzcxMTYgNWY4ZjYwNWFmMzM4NGQ1MzcwNmI3MjBjYTI2YzA0OGM3N2I0NmZmNSBsZWdhY3ktdHJ1bmsKKzcxMTcgNDM1OWU4ZDM4OWU2ZmQ4NmM0M2VmN2IxY2M0ZjE4YmQ3NzhjMjk2MSBsZWdhY3ktdHJ1bmsKKzcxMTggOGQ5MDlhZTFmMDk5NjRlY2I0YmQ4NzFmYWUwNTc1NjhjNmY0MTZkNCBsZWdhY3ktdHJ1bmsKKzcxMTkgZjRiYTllMDdkOWJmMmY0MDVlNmUzZjNiNmU1MmZlOGQ5NTZkMGNhNSBsZWdhY3ktdHJ1bmsKKzcxMjAgNjhjNGIwNmNmZmY3MDk1NmI0NGJhNzg1MjlhNTUyNTY2OTJhNjQyZiBsZWdhY3ktdHJ1bmsKKzcxMjEgZjRhNjBmMjYxZmJiNjZlNDUzNzc4NDgxOTA0N2FhNGZiZjI1Y2RkYiBsZWdhY3ktdHJ1bmsKKzcxMjIgYWI2Mzc0MjY4Y2FhOTI0NmZkNGM4NmU3ODgwOWFiMjBiZGJhZDIzNCBsZWdhY3ktdHJ1bmsKKzcxMjMgNmRkODUxNDQ1YzdkYzBiMWM4YmY5ZDBiYmJjYWQxZmFlYzE4ZjVmYiBsZWdhY3ktdHJ1bmsKKzcxMjQgZGFiMDFiODRhZmU2NjRkMGQ0M2IxYWMxNDMzMGY1ZDY0YTVkMGZhMyBsZWdhY3ktdHJ1bmsKKzcxMjUgMjc0Mzc1OWUzOTc5N2ZhN2FiMDM1YjczYjg5N2YwYzNjNWIyZmQxMSBsZWdhY3ktdHJ1bmsKKzcxMjYgNmVmZmQxMGU3MjMzYTY4NTljODVkMzhlMWU4MDhiOGJlNmJmNzE4MCBsZWdhY3ktdHJ1bmsKKzcxMjcgM2Q4N2NiMWIzZDE3YWQ3MThhM2Y2ZWM5MzhlZDE2NTJkMGZlZWM3NCBsZWdhY3ktdHJ1bmsKKzcxMjggM2I3Y2Q4M2I2MDJkNmZkODM4MGExNDVkNWIxMTc3MTliYWE3ZDA4YSBsZWdhY3ktdHJ1bmsKKzcxMjkgZGY4MTg1NmRiNThjNTQzN2QyNzY5NzQ3ZGQ5NGI1MWVkZjlhZTdmNyBsZWdhY3ktdHJ1bmsKKzcxMzAgYzc1YTJmMmRjMjIwYTU3NzY4OGU2MWIxMGQ3NzYxNDU4MzRlN2Q0ZCBsZWdhY3ktdHJ1bmsKKzcxMzEgMTg2YzJhZDRhYmYzM2M5MGY2ZTY2ZjhjNzBiNjkzZTlkYzc1OTIxNyBsZWdhY3ktdHJ1bmsKKzcxMzIgZGRiY2MwMzg5MTZiMmNmNTNhYWVmMzZkMmEzZTZhOTI2NGI4Y2ExMSBsZWdhY3ktdHJ1bmsKKzcxMzMgMGRkZGY0OWVhNDE2ZjNiZWJjMDYwOGU0OTNmYTViNDIxYzJlODg2OSBsZWdhY3ktdHJ1bmsKKzcxMzQgZTk3NTI4NDgyYmM2NzQyOTkwODE1Mjk1MzM1ODgzZDQ1NjBmMDA3YSBsZWdhY3ktdHJ1bmsKKzcxMzUgOGZiNTcyZTFiMWJhMTcxZTE3NDNiMTVjZTZiYzA5NGE3ZmUzYjJlYiBsZWdhY3ktdHJ1bmsKKzcxMzYgZDUwMjNkMGM1NTAyMzczNjQ4YmE1ZTg0ZWUzNGViNTE1NWY1Y2FlNSBsZWdhY3ktdHJ1bmsKKzcxMzcgMjI3ODUxMDhmMWVhMTNkNzRmNzU2OTMzMzNiNzgyZmEwOWRmNWMyMCBsZWdhY3ktdHJ1bmsKKzcxMzggNGVlNGI4YmI2N2M3NDQyNzBjZWQ0NGI1YmE0ZjNhZjU3MWM1OGIyZiBsZWdhY3ktdHJ1bmsKKzcxMzkgZGNiMmY1ZDM0YWU4MDI2M2ZlMzQxODhjMmUzZjlhNjYxMTczZTNlNiBsZWdhY3ktdHJ1bmsKKzcxNDAgZWQzNTA2N2UzNzkzZTBmYzNhODA1YTMxN2UyNmZkOWIyNDI1YzAzMCBsZWdhY3ktdHJ1bmsKKzcxNDEgMjliYzI4ZWNhM2U5ZWQ1NTUzZDQ5YTU3Y2QzYzc1M2VlYzQ5NmNlYSBsZWdhY3ktdHJ1bmsKKzcxNDIgYzQyMzc5ZTQ2NTNiYThjZWU5MjFhM2M0NzlkNGE1ZGU2MTg1YzdmMiBsZWdhY3ktdHJ1bmsKKzcxNDMgOTUyMDRhYTJmNDUyMmE1Y2M4Y2Q3ODU2ODE3MWQ5NzA3OTU3Y2I4ZCBsZWdhY3ktdHJ1bmsKKzcxNDQgZDUwMWRhZjBhMmY2NTVmZmRiMjk5NTk5NTQyODc0MDNhNjQwMDcwMiBsZWdhY3ktdHJ1bmsKKzcxNDUgNzkwMWZlNzlmNmFhOGEyNDkyYTA2MWJmN2NmNWYyNDNjNjBlNWVmNCBsZWdhY3ktdHJ1bmsKKzcxNDYgODJkZjEwNDBkZjBmOGE2Y2MwODE0N2FiYjlmMzBmNjA3ODcyNTg0NCBsZWdhY3ktdHJ1bmsKKzcxNDcgNWI1MzI2OGY1NDdhMzlkYjE3NzY5MTA5YTg1MDM1MTY5NDM1ZjllNCBsZWdhY3ktdHJ1bmsKKzcxNDggYTNjZGM4MTY0OTkwZTM0ZTM0M2I4ZmZhOTIwMTY1NTBkYmM4MjRmOSBsZWdhY3ktdHJ1bmsKKzcxNDkgYjQzZmY4OWZjNTBkOTVjMjI3YjU2YWRjODk4M2Y0ODM4YzM3ZDhjYyBsZWdhY3ktdHJ1bmsKKzcxNTAgMGMwMWEyM2M3ZGNkYmFiODEyOTcyM2Y4Nzg4OGNjN2M3YmE5ZWNmMCBsZWdhY3ktdHJ1bmsKKzcxNTEgMTkzOTUwYmM5ZDhmN2Y0YTVmNjVmMDc1YWZlMDgxZmQyYzQ5YmJmYSBsZWdhY3ktdHJ1bmsKKzcxNTIgYjgyOGViNTBkYmQ1MDYzOGU2ZmMyOTk5ZWY2NzI5ZTMxM2Q5MzJmOSBsZWdhY3ktdHJ1bmsKKzcxNTMgMTU5Mjk3MGM3ODliMDkyYzU5ZGE4ZWEwODJjNGI3YjliODgzZWEyMSBsZWdhY3ktdHJ1bmsKKzcxNTQgODliMTYxMjZkNGUyMmQxZjEyNjI4OGZhYzQzNDY3MjMxMGRkYTM5NyBsZWdhY3ktdHJ1bmsKKzcxNTUgMTBjMWI4ZjM5MDJmY2IyOGFjZWY3YmQ4MTE2YmVlNjcwZmZhZDgyMiBsZWdhY3ktdHJ1bmsKKzcxNTYgZjljNWEzMTNhZmQ5MzI1MDJmY2QwY2ZkZTMzMGE5MWMyZDQyM2YwMyBsZWdhY3ktdHJ1bmsKKzcxNTcgMTljOGU2MWNhZDJkODM1YWU5ZTJmZmZiODJhYmEzNWJkM2QzNTMxYiBsZWdhY3ktdHJ1bmsKKzcxNTggMzFiZDBhZDAyNzJkNWEwOTU0NTg0NTZmYWQ1MzNiNWM5NjEwMzgwNSBsZWdhY3ktdHJ1bmsKKzcxNTkgZDgwMDg0MWI1N2E4YzdlZjg5MDhjNTE3MjRlOWQwMzFmZDQyYzUyNCBsZWdhY3ktdHJ1bmsKKzcxNjAgZDdkMDVlMjM0NGQ3MzZkODk2Yzk5OWJjZTE4OTNhZTc2NDVlMDA1NCBsZWdhY3ktdHJ1bmsKKzcxNjEgYzA0NmVmYWYxYmQyYzQ2ZTYzMTg4NmM1ZDBiM2NmNzQzZmQxMDE0YiBsZWdhY3ktdHJ1bmsKKzcxNjIgZDEyMjc1M2U1YjlmNjAzYzg2MjZjMzYzZTY3MjFmOGMxY2ZhMDAxNiBsZWdhY3ktdHJ1bmsKKzcxNjMgMDFmNGVhMDVhNzY2M2VjMTJiMDM4MjE4YTY0MGUwZWYwMTllYzA3NiBsZWdhY3ktdHJ1bmsKKzcxNjQgOGY1MGJlYzUwNjhlNmVmZmM4MDVjOTNlYmNiZGEwMjg4OGRmNzY1MSBsZWdhY3ktdHJ1bmsKKzcxNjUgYzJiODMxZjkyM2MyZjAzZmQ4ZDViNDRlMzQwYTdkODkxZTNiZTI4NyBsZWdhY3ktdHJ1bmsKKzcxNjYgODAxNWM1NTQ5MzA5ODRlYWI5ZjRkM2NhMTMyY2QwYmY5MzI5NjAwNyBsZWdhY3ktdHJ1bmsKKzcxNjcgY2I0MDViOTY5NmQ0ODM2NTcyZjMzYzliYjg3NjgyYzkwODY0MmI1MyBsZWdhY3ktdHJ1bmsKKzcxNjggZmFkZGY2ZDU1YWYwYTRkNDAyMGZmNDdiMmZhNjVlMjg4OGM5ZDBjNiBsZWdhY3ktdHJ1bmsKKzcxNjkgMmMxMDM5NTkyMWUxZDBiYmIxYjg4NmZlOTVhMzMyMzA5NjQ1Y2Q4NyBsZWdhY3ktdHJ1bmsKKzcxNzAgZjEyYjFkNGQ2YTliYjg4MmY0NmU4NjQyOTdlYzhjYmQ2ODBhNTFlYSBsZWdhY3ktdHJ1bmsKKzcxNzEgZGUyN2RhNWYyMmYxNzUzNWY3ZDY4Y2U4MDVlZjRmODViYjBlZjY0OSBsZWdhY3ktdHJ1bmsKKzcxNzIgMWYzNjhmYjNlMWY3ODZiNDQ2ZDVmN2MxM2Y3MGYyNmZkNTFhODFlNSBsZWdhY3ktdHJ1bmsKKzcxNzMgZWU5OGU0NGQ0Zjg1NTFkNWUyYzdhMGFlODEzY2ZkNDM0NWQ5MDI2MCBsZWdhY3ktdHJ1bmsKKzcxNzQgYTE2OTRlOTViY2JhNzkyMGU3OWYwMzk3N2M4ZGFmOTgxNzcxOWNmMiBsZWdhY3ktdHJ1bmsKKzcxNzUgODI1MDM4ZDk4YWI2MjJiZDA3Njk1MmFjOTkzZTc0OWY3MzU0NWU5ZSBsZWdhY3ktdHJ1bmsKKzcxNzYgOGE3NWI4YmYxNTIxODc1NGZiY2E4M2MzMDc5YjdjMDJlMTdhZDA1NyBsZWdhY3ktdHJ1bmsKKzcxNzcgZTVlNTg3OTQwNDBmNDU0MzQwMTk3MjNlYmJlYzU1MDc0ODk1MThkNyBsZWdhY3ktdHJ1bmsKKzcxNzggZTBiYjFkYWMyZGJmNTU2Mjk3NTRkODdlYWZjNTU5ZmEwYjBhYTFhNyBsZWdhY3ktdHJ1bmsKKzcxNzkgNmMwZTM1Y2YwZjg1YmQ2MjNhZTA1Zjc2ZTRlMGQwNzc3ZTk0YWJmMiBsZWdhY3ktdHJ1bmsKKzcxODAgY2M1MjUxODJiYmIxZjM2ZWVjMWMyMDkxYmRhYTNjZmM5MjExMmY1ZSBsZWdhY3ktdHJ1bmsKKzcxODEgOTc4NTExNDMyNmFiNzUyNTJkNTRhZTJjZTg2YTkwODNkNDU3ZGNjMiBsZWdhY3ktdHJ1bmsKKzcxODIgMmRkMjg1Nzk0ZDY3NDMzMDgzNmE1OTM3OWU0ZGVlYjdiMzllMTRkYSBsZWdhY3ktdHJ1bmsKKzcxODMgNzc1YTdkMGMyOTYwOWZhZmQ4NTE2NDk4NjVkN2Q3MTVhM2M3NDJhNiBsZWdhY3ktdHJ1bmsKKzcxODQgNDM4OTQ5YmI0NTA4MDUwNjNjMjM1OGQ3MzNmOWM2YTY4YTZkZTAwNCBsZWdhY3ktdHJ1bmsKKzcxODUgN2I5YTYxNjYyODFhMTJjM2FkM2EyN2E5NTI3ZTJhMjFkYzAwZmNmYyBsZWdhY3ktdHJ1bmsKKzcxODYgZDlmZjZmODNhMTZhZDBhMTUzMWI2MzEwZTNjNjhiYjE4NGRlMjcxNyBsZWdhY3ktdHJ1bmsKKzcxODcgMDI1M2VmMjY3YjY4YzZjYTc4ODhmNTQxM2M4YjJhOWJjNWFjYTMxZiBsZWdhY3ktdHJ1bmsKKzcxODggNmNjZjVkYmE4YjBiYjZiNzcyN2NkNzE5Y2U5MDZmNGM5OWE3NzQwOCBsZWdhY3ktdHJ1bmsKKzcxODkgMGM2YzY5YjBkM2U5YzY5ZmE0OTgyZDFmY2FmYmFmMjA0OGY5YTJkMiBsZWdhY3ktdHJ1bmsKKzcxOTAgNjc3NTlkZmU2ZWU4YzdkYTZmMjFmZTYwY2RjYzBkODI1YjNhZGYyNSBsZWdhY3ktdHJ1bmsKKzcxOTEgYThhNTQ3NDkwYTEyN2NkZWQzZjdkNDEyNGNkNGQ5MzU4YTJhMDUyMiBsZWdhY3ktdHJ1bmsKKzcxOTIgMTIxNTRkMDkxMzE2NzRmZTlkZWFjNzk1NzZmNDk5M2RjZTcwYWQyNiBsZWdhY3ktdHJ1bmsKKzcxOTMgMTgzNDY1NGJlYmUzMjEyZTU2ODRlOWFlNzRiMzhhZGU1ZDA1N2Y4NyBsZWdhY3ktdHJ1bmsKKzcxOTQgNzZiYjIwOTlkNjE4MjlmNjg3MGQ0YTI1N2EyNDViZmQ1ZWMyZjYzNCBsZWdhY3ktdHJ1bmsKKzcxOTUgOTA4NTdmYjU3Mzk3MDZlMGMwMGE1NjBiNjc0ZDA0ZGUzMjk3YzFkZCBsZWdhY3ktdHJ1bmsKKzcxOTYgYjIwMDllZDE1MmZhNWIzYmZmNzU0ZjU0YjhjMTYzOWU1ZmE2NzdlMiBsZWdhY3ktdHJ1bmsKKzcxOTcgYzA3ZTVjNDU1NTc2ZGFhZDE5YTlkYjFhM2ZjOGRhMjFmMTc5YmNjOCBsZWdhY3ktdHJ1bmsKKzcxOTggNDM3NDRiZTI0MzNmNThmMDNiN2EzNzE5YTJhOGY5NTFkY2ZlMzdkMyBsZWdhY3ktdHJ1bmsKKzcxOTkgZGUwMWM2NmY1ZmE1OGJmMjg1ZDNlOTNmODIwNDNlNzU0ODY4YTc5NyBsZWdhY3ktdHJ1bmsKKzcyMDAgODY2OWVkYjFkOWM1NjU4N2I1NDIzYjVmNDAyZjRmZDgwYmFlOGVjMiBsZWdhY3ktdHJ1bmsKKzcyMDEgZjdhOTkxNjFkZjkyYWExYWE0OWMzOTEzOTgyOGZlYjFlMWY5YmU0MiBsZWdhY3ktdHJ1bmsKKzcyMDIgOWFjOWVhODQ4ZDdkYTc3OGNiMjFhNzQ2NWM0MzBkNTllY2Q2ZjI4NiBsZWdhY3ktdHJ1bmsKKzcyMDMgYjIxOGYyOTRiNzI2YWJjMDMyMzkyODllZGUwNGJhN2RkNTFjOTI1NCBsZWdhY3ktdHJ1bmsKKzcyMDQgZTI3ZmEyYTNmNTI2NTAxOTIwOWEwZTNiOWIzY2UzNzQ4ZDczZjRjYyBsZWdhY3ktdHJ1bmsKKzcyMDUgNjJjZjdkNTg5MzAwZWY5ZmM1NWEyY2MyZjNiZTcyZWIyMjlmNmNkNCBsZWdhY3ktdHJ1bmsKKzcyMDYgMDdmMGYyMTM2M2U2NDgyMTlmOGUyNmRlYjhjYWZjNjc3NGVhNTJjYyBsZWdhY3ktdHJ1bmsKKzcyMDcgZDM2NzAxNDIwMGJiNWI4MDExN2FiY2Y1Yjk4ZTFlMGM4YzMwZWQzYSBsZWdhY3ktdHJ1bmsKKzcyMDggM2M3ODEyYmZhMWE0YWFhYjg2NzYwZGJjZGIwYjdlMmQ4MDYxMjlhMiBsZWdhY3ktdHJ1bmsKKzcyMDkgM2RiNDIzNTE1NjI2YzJmYmE3MTMyYTcwNDVjYzI4MGVmZGM4MjEyOCBsZWdhY3ktdHJ1bmsKKzcyMTAgNGEzZjQ1YjM0NzFhYzU0ZTVkNTMwNWM4OTY4MWFhMGJiZjM2NDcyMyBsZWdhY3ktdHJ1bmsKKzcyMTEgOTRhZDU2ZWY1MDczMzU5ODQ3ZTM2NjJmNjhkOGZiMmUzZDQ2MzRjMiBsZWdhY3ktdHJ1bmsKKzcyMTIgNDI2Zjg3YzQ2NWEwMjY2ZjMxNDU0NGQyNGFiNWU3ZDA4ZGU4Y2Y3OSBsZWdhY3ktdHJ1bmsKKzcyMTMgOGVkYjU3YzMzNDg3YmFlZDkzYjkwNTdlZDdhYzg4MDUzMjE2MjdmYSBsZWdhY3ktdHJ1bmsKKzcyMTQgYjAxNjgyODUxYTYzMzY3N2FmN2E4NDEzY2M4YmU0ZGFlNzkwZTc0MiBsZWdhY3ktdHJ1bmsKKzcyMTUgMDYyZTg4NjA4YjU1NTllNjAxY2RjZDFjNDU1MjgzM2JlMjZkOTAzNSBsZWdhY3ktdHJ1bmsKKzcyMTYgYTQ0MDIwMDhjNTY5ZGQ4ZWY3ODhhNTZkOWE4MTc4ZWUzMTZlYmE3NyBsZWdhY3ktdHJ1bmsKKzcyMTcgZWQwMWVjNDNlYjMwZmY0M2Y4YmU2N2Y4N2E2OGVmYTRiYzE5NjVkNiBsZWdhY3ktdHJ1bmsKKzcyMTggMzU3ZDQ1NDQwODVhMmE2ZDFkMzM4YmJmNjJhZDhjMDVlOGU3OTM0YyBsZWdhY3ktdHJ1bmsKKzcyMTkgZTA1MjNmMmQ0MTYzOWM5MDRhYTEyOWE0ZWI4ZWFiNDUyNjNlZWNkZiBsZWdhY3ktdHJ1bmsKKzcyMjAgN2FjZGY1OWYzMWM1ZWMxY2ZmYjdkOGNlNmNjNmExZmI4MDBmNGQ3MSBsZWdhY3ktdHJ1bmsKKzcyMjEgMmNiZGU1ZmM0YjE5YmUxOTAwOTExZmQwNDdkZWE0NjYwMzlhMTYzMiBsZWdhY3ktdHJ1bmsKKzcyMjIgNWIwNWJjYmQ0NTQyYzY0MTdkYjgxZGIwMGEzODVkNTQ4NzcwYTVjOSBsZWdhY3ktdHJ1bmsKKzcyMjMgZWExMjY1ZjI2YjMzMjc0MDk1ZGQyY2MzN2Y1ZDI5NjQ5ODJhYTc5NCBsZWdhY3ktdHJ1bmsKKzcyMjQgZGRlYTY5ZjkwNzFiYTgyZDliOTg5NGU5MjQ3NTcxY2FmZTZmNjUzMSBsZWdhY3ktdHJ1bmsKKzcyMjUgZmZmY2M1MmNkYzFlODZmZTNhOWEzZmY3MThiNjlmNmJkMWRhY2JhNyBsZWdhY3ktdHJ1bmsKKzcyMjYgN2FiODM1Zjg3Zjg2ZDIxY2RiYzdiNzQwYmY0ZmM2MmI3MGRlNjgwNiBsZWdhY3ktdHJ1bmsKKzcyMjcgNzM2N2ZiMTA3MTA4M2VlMzM2YjA1MjJmOWNjYjIzMWFjOGY2NTljNCBsZWdhY3ktdHJ1bmsKKzcyMjggN2IxZTc4NGUyMGEwZWNkNTBlZjU1MGQwZDllNjE4N2ViNDc4NmViZiBsZWdhY3ktdHJ1bmsKKzcyMjkgMzA3MDNhNjU2ZDEzNDVjZGZmZjQ4Y2RhYzYxNDg5MGYyZDgxYjhlZiBsZWdhY3ktdHJ1bmsKKzcyMzAgMWRlOTZjNTcyYjAyYmM0YWJlODJkNGExOGQyZDE0ZmYxY2M0ODczNSBsZWdhY3ktdHJ1bmsKKzcyMzEgMzAxZDdmNmFjZjBhNmQwMWVkODY1NzIxZGU0ZjVjMmY3NDA0YTlkMiBsZWdhY3ktdHJ1bmsKKzcyMzIgZTFmMTcyNWNhZTZkYTgzMDAxYTNiYTBhNDMzMDljYThkOTI4ZjM5MyBsZWdhY3ktdHJ1bmsKKzcyMzMgNjA1ZmJhMDJlMTk1MDc3NjI0MzdhMTQ2Zjc4OTE2MjAyZWUyOGE0NCBsZWdhY3ktdHJ1bmsKKzcyMzQgM2ZjNjA0MmEyYWNiODc0YTJkZGQyMjU1NTdiZDAzMjYwNzMzN2I4ZCBsZWdhY3ktdHJ1bmsKKzcyMzUgNWIyMmUzMmVhYTE3NjRlM2Y2OTE2MzVlZjUzMmQ0MzdlMWI4MDc0MCBsZWdhY3ktdHJ1bmsKKzcyMzYgZDdlZWE2OTRjZDNhMDRlNmU2NTBmMDExNWM4YzJiZmRmZjQ1YWM2ZCBsZWdhY3ktdHJ1bmsKKzcyMzcgZjkyNjI2M2ZiNjU0YzI5Yjg3OGY5YTgyZGE4YjgwODY0MTJkOTE0YyBsZWdhY3ktdHJ1bmsKKzcyMzggMzg2ODlhY2VhZTdiNjBjNWI4YWM2YmZkNDBmNDdlM2QzY2ZmODI0YSBsZWdhY3ktdHJ1bmsKKzcyMzkgODg3MTRmYmY5YTA2MjZhYTYwY2QzNDJkYTgzNWQwYmNlNzdmMWQ5ZiBsZWdhY3ktdHJ1bmsKKzcyNDAgZjhiMzZjMGVjMTE0YWVkZGIzM2QzN2I5NGNkZDIyZTRlMjAyNjVhOCBsZWdhY3ktdHJ1bmsKKzcyNDEgOTYwNGQ2Nzg0Njc1YzJkZDhlNTAyZTRlMWU0YTAwMWRlOGEyMzRmMyBsZWdhY3ktdHJ1bmsKKzcyNDIgNjNkYWUyNzNiMDdkODU5MzE1NDRkOGY0NmRkMWY1ZDE4ZWRhYTJmYSBsZWdhY3ktdHJ1bmsKKzcyNDMgZjdhNjFjNmE2NWMzNzk3NDcxZTY5NDZjYjFlMmM2NWQyOTMyNzQyNCBsZWdhY3ktdHJ1bmsKKzcyNDQgZWVjYmNjNDhiMGU5NzZjMmJmNjEyM2MxMmZiNjgxN2ViODhiNDE0MCBsZWdhY3ktdHJ1bmsKKzcyNDUgNzIxMDhmYWE1NmJmMTQ4NzBkN2E3ZTY1OGQ1M2YzMWE0MTY1MjA5NCBsZWdhY3ktdHJ1bmsKKzcyNDYgNDcxMDcwMTY5MGMxYzZiZGI0MzQzMzg0NzZlMTQyZGRiMDQ1ZDFlZCBsZWdhY3ktdHJ1bmsKKzcyNDcgYjg1ZjEwYWU0ODU3ZjExNTFjZWZjZWE1Mzc5NWNiYTA0MTUyNzUzMyBsZWdhY3ktdHJ1bmsKKzcyNDggZDU1ZjMxMzM4ZmRjZjg1M2NjODI1ZTUxZDhmOWVmMjY3NmFlYzQ4MiBsZWdhY3ktdHJ1bmsKKzcyNDkgOWU0OGFiYmVlNmM1YzA1NDE5MWZiMjAzMmZhN2Q5NGEyZjcxZTM3ZiBsZWdhY3ktdHJ1bmsKKzcyNTAgMGQwYzQxM2I2ZjI1Mzk3NTY4ODZjMDVlZTlmZjU2YWUxMDIxYjg2NiBsZWdhY3ktdHJ1bmsKKzcyNTEgNGRlOGI4NmJhMjU1OTFhNDA1OThhZGRmZTVkNDM2MTM4NjcwMzMzMiBsZWdhY3ktdHJ1bmsKKzcyNTIgNTBkNmRjNDU4YWEyZmJiZmY2ZjI4NDJkY2NjMzc3ODIxYTRiOGZmZSBsZWdhY3ktdHJ1bmsKKzcyNTMgMWNjYWE0NDFkMDgzZjAwNDJjMTgxYzBmZjM1M2E5ZjMwNDIyNWNhYyBsZWdhY3ktdHJ1bmsKKzcyNTQgYTU3MWM3ZjA4OTkxNmRjYmM3NWNhM2E0ZDY1MzlhODE5Y2Q0OTA3ZiBsZWdhY3ktdHJ1bmsKKzcyNTUgYWJlZjUwMDZmODRiZGM3MDZiNzMzMjZjYzEyZDViYWYzNTM3ZWZjNiBsZWdhY3ktdHJ1bmsKKzcyNTYgNzU2MmE2ZGY5MWZiNGJlYmM2NDVhZGE1NzFlNzY3ZGRmY2IxYjA1ZSBsZWdhY3ktdHJ1bmsKKzcyNTcgMjQyNmEyMjA2NjRiMThiM2RlNDYxMzE4ZTFjZDQxMDIxYzVjOGU3OCBsZWdhY3ktdHJ1bmsKKzcyNTggZmViYTZkNThkMjA0ODlmMDE2MzhjMWE1Y2RlODc2OGVlZDk5OThlYyBsZWdhY3ktdHJ1bmsKKzcyNTkgZTQzMzYyOTEwYTVlM2UzYzdkNTU5YWZiMTk2MjA5NmEyZWI3MzA0MCBsZWdhY3ktdHJ1bmsKKzcyNjAgOWZjMzgwYjFhNDQ1YWExNGExMmY2NWRiNTc0Mjc0YzA1ODdiOWNhMiBsZWdhY3ktdHJ1bmsKKzcyNjEgMDk0OGYzOWVlOTYwZTQ3ZWI5NzJkM2ZkZDMzZWE4MjkxZDAwYTFmNiBsZWdhY3ktdHJ1bmsKKzcyNjIgZDdlNjY1M2QwODRmNmZiYzBlNzU5MTQyYTdlMjI2MzUxMDJiYjA0OSBsZWdhY3ktdHJ1bmsKKzcyNjMgZjIzMjFlNDIzMDcxN2U1YzU5NzdlODlhMmJkYzcwNzNjYjQ3NDk3MCBsZWdhY3ktdHJ1bmsKKzcyNjQgZDQ1YmE2NGI4MmZkNmJlZjI5NDM0ODI0Yzg5ZWVmOTFkMDg1MmRjNCBsZWdhY3ktdHJ1bmsKKzcyNjUgZjM3NTgyMzE0MTIzMTg1YTA1ZDRlMGEyYjRmOTlkZDNhNzNkYjdmMCBsZWdhY3ktdHJ1bmsKKzcyNjYgYTJmZDgwZWVkMjdmYTE3MmI2MWZmODVmMGZmMjEyMzc1NDYzYTU0NiBsZWdhY3ktdHJ1bmsKKzcyNjcgMGI2YjFiODgyODY2YjYwYTE4YWNiY2RlZTQ0NTI5YjRjNTQxMjY5NiBsZWdhY3ktdHJ1bmsKKzcyNjggYWFiZjRhMDNhNGIwYmJmMWJiYWY0ZWRhODI2Y2MzMTgxZTZhMDMzOCBsZWdhY3ktdHJ1bmsKKzcyNjkgODBjMGNhNDI0NTEwZTc5Y2M0NjI2YjI4ODA0ZWRlYzc1NjBiNDU3MiBsZWdhY3ktdHJ1bmsKKzcyNzAgYjY1MjBjNDVlYjA1NGU3NzA1M2M0NzU5ZWI5NDUxYWEzZDk4MTUxZiBsZWdhY3ktdHJ1bmsKKzcyNzEgYmY3MmE5NGVlOTZiOWIzY2NjYWQwNWNhY2MzN2UwYzUyZDVmNWQxYyBsZWdhY3ktdHJ1bmsKKzcyNzIgNTIyNThiMDIzYWEzMTc4MWJmZTliYjIzMWNiNjhlYWYyYWEzOTE3MiBsZWdhY3ktdHJ1bmsKKzcyNzMgNWRiOWFkNjAzMjZkYzhjMWQ5ODc1YzBjNWEzOWI1NGYyZWVhZWNjNiBsZWdhY3ktdHJ1bmsKKzcyNzQgZTcyYjJlZDM4M2E5OGI0ZmJjMGZhMGM2MjM0NWRmMGY1ODVhNjFkOCBsZWdhY3ktdHJ1bmsKKzcyNzUgZTJhN2ZmNmY0MTg4NzE4ZjMwM2NmNmVlN2Y2NTdiZjkzNDYyOGU1ZSBsZWdhY3ktdHJ1bmsKKzcyNzYgMmQ1ZWUzNzRhNzNiODVkNzMzYzIwNTNiMzFmMGNmMzg1NDc5NjZjMCBsZWdhY3ktdHJ1bmsKKzcyNzcgODY3ZmVkYTAwODQwN2YwZDcxN2E0NzNjNWQ5N2QxNWEyOTdmMTVkNyBsZWdhY3ktdHJ1bmsKKzcyNzggOTk2NWRmNzgyYWZjZjQyYmE3ZmNiZTIwMDc1ZTU5MzdiYTEwZGRiYSBsZWdhY3ktdHJ1bmsKKzcyNzkgYTJjNDI3ZjlkYjAyYjliZjFiOWFkODA5NGNmZGMyYmVjZWU2MjZhOSBsZWdhY3ktdHJ1bmsKKzcyODAgYzcxY2ExNWM4YjU1NWNkOGY0YzRmMWRiNTc4ZDE2YzkzMDk2MGIwNiBsZWdhY3ktdHJ1bmsKKzcyODEgYTNjNDc3MjU5NTA1NDQzMDhiZGY4MmMzYmMzNGFkM2FmMDc5NDJmNyBsZWdhY3ktdHJ1bmsKKzcyODIgOGQyYzhiMDgwNDAxN2Q0MTMxNjU3Y2Y0ZjBiYzhiMGRmMjgwZGY0YyBsZWdhY3ktdHJ1bmsKKzcyODMgMDlkNmM1NzA4OTk5ZTYzMjc4NTEyZTQ4ZDIwMjQwYmVlMWI3ODA5MiBsZWdhY3ktdHJ1bmsKKzcyODQgNmY4YjVjM2NkNmNiMmU1ZjJhNmZlZmFhMTljYWMyZTk4NThkZjhjNCBsZWdhY3ktdHJ1bmsKKzcyODUgMmNiNDY5YTQyMWE5NzgzN2ZkMjVmZTg3ZjQ1NDIxZTM1YjE4NWQ5YiBsZWdhY3ktdHJ1bmsKKzcyODYgOWFlM2NjY2ZhN2NkZTEyOWJkYTU5MzAzNjMzNjJkYzcxNzJkMjNiMiBsZWdhY3ktdHJ1bmsKKzcyODcgZGIyMzBmZWZhNzAyMzk4YjYwNjhiMTM4OTJiZDg4OTk5NmU0MWI0YSBsZWdhY3ktdHJ1bmsKKzcyODggYjZmYWRmMDIzMWFmOWIyNjM5ZjkyNWUwMDQyZjVjZjAwMDc3ODE1NCBsZWdhY3ktdHJ1bmsKKzcyODkgOTgyMTM2MDRmOTQxNGZkNDVjZmFlMjhkODc4YmU1MmQ2ZmIzNzBhYiBsZWdhY3ktdHJ1bmsKKzcyOTAgZmIxOGNlOGMwY2Y2YWJiMDYzZTRhZjQzZjI3MDg0MjY1OWZhNTFhMyBsZWdhY3ktdHJ1bmsKKzcyOTEgYzQ0NTQwZDUyZDEzNjk5MTA3NmFlZDA4YzgwMmVhYTY5N2Y5ZmUzYiBsZWdhY3ktdHJ1bmsKKzcyOTIgMGY3NTE1ZWJlM2JmNGVhZDJkZjA5YjM5ODZhOGI0ZmUxYzk3YzA4ZiBsZWdhY3ktdHJ1bmsKKzcyOTMgNjdhNTIyMWEyZjYwZjkzOWNjM2I0ZmNkYWFjMzQxNmRmOTI1NTUyNCBsZWdhY3ktdHJ1bmsKKzcyOTQgOWJkYTM4YzY3ZjRlYzI1YzBmZjVmMjE4YTc3MzM4ZmJkNzgxN2ViOSBsZWdhY3ktdHJ1bmsKKzcyOTUgZTcyYWMxZGM2MTRmMmEwODYwNDI4NDQ2MTE1ZDM5MmU2Zjg3ZWVhMyBsZWdhY3ktdHJ1bmsKKzcyOTYgMzkxZjA4YTk3NDZiOTZkMmJmNDA1NWVmYzk1ZTNiZWU1YTJmOWZiZiBsZWdhY3ktdHJ1bmsKKzcyOTcgNDRlODZkYWRlYzk0NGJjMTQ5OGIzYWFmODljYzQ1YzUzOGNjYzFjOSBsZWdhY3ktdHJ1bmsKKzcyOTggZjQyYmNhM2Q3YmUyMWQzMGMxNzdiYjkxNTMzNzUxYWU3YjFiMjE5MyBsZWdhY3ktdHJ1bmsKKzcyOTkgODc4M2NmZGM3YzZmOTkzY2JhNDgxMTZhZjg1YzMyZDgzYzAzMjQ2YSBsZWdhY3ktdHJ1bmsKKzczMDAgYjhhOTdhZDVmN2NlZDNhNTQ1MDc0M2IxMTBjOWI0OGFlYmUwODgzMyBsZWdhY3ktdHJ1bmsKKzczMDEgZjNiOTJjOTVlODViMzYyNmEwZWViOGMzNDlmYjAyNGEwNmYzNmQxYiBsZWdhY3ktdHJ1bmsKKzczMDIgYmU0ODFmM2FkYTBiZGFhMzA4Yzg1NTgyMzA5YWM1ODQ5Y2ZhZjNmZSBsZWdhY3ktdHJ1bmsKKzczMDMgOTdhZTg0NjZkMWM0MjA3NGUyMTlkNWUzYWRjMTgyZjkwZTI3NzFjYyBsZWdhY3ktdHJ1bmsKKzczMDQgNWEyZTcyNTJjODkwMmQ0ZDZkMTg2NjRkNjQwYWE2MWVjNmMxODdkOCBsZWdhY3ktdHJ1bmsKKzczMDUgNDM0MWZmNWM2OTdjZmVlMmE1ZDAzYWUxNzFmMTJiODhlNmZmMjNiZiBsZWdhY3ktdHJ1bmsKKzczMDYgZDg3ZTg3ODUzOTU4ZjNlOWU5M2VmNzY3NTg0ODhiMzJiMmJhZGY1OSBsZWdhY3ktdHJ1bmsKKzczMDcgNTBmNDk4M2I2Yjc5ZDE5MjIyMTkzODlhY2JkZjIxZTA2N2QzOWM0MCBsZWdhY3ktdHJ1bmsKKzczMDggMzM5ZDBjNDlmMGI1NzM4YWY0MjI5MzY2NzY0YjljYmQwODg3MjhlMSBsZWdhY3ktdHJ1bmsKKzczMDkgYzdlOTlhYjYyN2YzYjc0MDI5NjliYjgxNGMzMzAyYjUzMzcxZjEwNyBsZWdhY3ktdHJ1bmsKKzczMTAgZTA1NDgwZGI3MWFiMTEzOGRlMzViMzRjZDJmOGVkNWQ1MGI0ZGY5ZiBsZWdhY3ktdHJ1bmsKKzczMTEgYWNiMDUwMWQ5M2VmOWQzMGJmMDUzZmQxYTgyYmU3Zjc4ZjhmN2FlZiBsZWdhY3ktdHJ1bmsKKzczMTIgOWUxYWM5ZWJlNzlmNTFkY2QyNDNiNTMzZmNkMGNlYTZkOTBiZjVjNiBsZWdhY3ktdHJ1bmsKKzczMTMgNWMxOTUxZDU3M2IxZDliZjMxZmYzNzg2MDAxYmNmN2RmYTdlNjQ3NiBsZWdhY3ktdHJ1bmsKKzczMTQgNDU2N2UxNThkMjBjNTEyOTJiMmNmODc2NzFhZjUzNWQ5NmIwMWZiNSBsZWdhY3ktdHJ1bmsKKzczMTUgMzVjNjQzZTkwMjNlNzJkY2RkYmVmNTZhNDgzYWUxNDE1MzY0YTk1MSBsZWdhY3ktdHJ1bmsKKzczMTYgYTdiOWM3YzgxMzM3NjMyMWE4MjQyMTEyNzcxNTk5NTAyNTNkNGNhOCBsZWdhY3ktdHJ1bmsKKzczMTcgODQ2NzlmN2JiZTZkNTg0OGE2MDVjMTQwYmQ4YTAwZDBhYjVhYTVjYyBsZWdhY3ktdHJ1bmsKKzczMTggMzhhZTJhMGZjNGYzM2M2ZTZhZDBjN2YwNmZmZWU4YzA5ZjJjZjk4OSBsZWdhY3ktdHJ1bmsKKzczMTkgNTU1ZjZlNzZkMjA3ZGNjZDNkYmJjYTQ5NWRlZWZkYzM3YWZlNjYzMCBsZWdhY3ktdHJ1bmsKKzczMjAgMGJkZDMxNTM4ZDhmZDY2NjcwYjFiODdjMjcwNzcwZTc3MjE2YWZkZCBsZWdhY3ktdHJ1bmsKKzczMjEgOTcyMDI2ZDQ3Mjc0YWVhNWFkNmYzYWJlNzdkNTMyNGNiM2RjMjRkZSBsZWdhY3ktdHJ1bmsKKzczMjIgZDUzODEyZDY4NDA4YzYyNGZjODgyYjdjOTZjYjY5MzAwNTY0NWFlZSBsZWdhY3ktdHJ1bmsKKzczMjMgNTI2OTVlZmRmMjJjMmE4NWU4Yjg5YTU4MDRlYzk4YWNjZGI3ODU4ZCBsZWdhY3ktdHJ1bmsKKzczMjQgMGE0OWQxOTI1MDZkY2JhNjJmNzQyMTNhYTY5ZThlOTUxYmI2MWQ2OCBsZWdhY3ktdHJ1bmsKKzczMjUgMGUxODk3YTFmMGQ1MmNiMDlmOWFiZTUyOTg1MzE0ZDI5MjBlZDM2YyBsZWdhY3ktdHJ1bmsKKzczMjYgZjgwODAwMWEzZTAxMzdhY2JmZjEyZDhiNTQxMzkxMTI0NjVlYzM5NyBsZWdhY3ktdHJ1bmsKKzczMjcgMjljZWQ0ODVhY2EwOTgzNTZhMmJkMzdhZThkYTUzNDEzODQxNGM4MSBsZWdhY3ktdHJ1bmsKKzczMjggY2Y5MDc0NTM4MWJmZmQwYTY2MzM1ZWM1MDU2MTJjNWFjNmFhMDQ5NyBsZWdhY3ktdHJ1bmsKKzczMjkgMTY3YWQzOTQ0ODhjY2FiMWE1M2ViODkyODI0OGQ4NGFhMDNmY2NjMCBsZWdhY3ktdHJ1bmsKKzczMzAgNDNhYjBmZWZlNGExNTZhZjdmNDRlMjgxNDYxNmFlZGI0NzVhMzhmZiBsZWdhY3ktdHJ1bmsKKzczMzEgODhkYmZhMmJiOWRjZWZmYzBlMzhiNDk1MjQxNWZhNTZmMDY2YzViZSBsZWdhY3ktdHJ1bmsKKzczMzIgZTBhYWVlN2ZkMWZkNDU0ZTZlNDYwYjI2ZjI1ZWU5ZWFjMzg5ZTY3OSBsZWdhY3ktdHJ1bmsKKzczMzMgMTk4OTg5ZWUzNmQ1NmE1ZDNlNTVlNTgxYjhhMzM3ZDI3YmEwYmVhZCBsZWdhY3ktdHJ1bmsKKzczMzQgYWI0NjFjNzYyNTU5YTQzMWJjNDA4OWY0NTFkZDRiNTA3ZGE3NGM2NSBsZWdhY3ktdHJ1bmsKKzczMzUgNWM2ZmJkYzUwZTFkNjQzOThkZjkwNjk4ZjYzMTQwMzZiZDc4MmRlYyBsZWdhY3ktdHJ1bmsKKzczMzYgNjljYTVlM2NjYzZkYTgyNTE2MmM1YWU5YzM3MDg3MmM3ZTk1MmEzYSBsZWdhY3ktdHJ1bmsKKzczMzcgN2Q3MzE5ODExZmYwYWUxMzcxZTFjMGU3YzY5Mjk0OWFlMGZiOTE2ZSBsZWdhY3ktdHJ1bmsKKzczMzggYjE3MDdiY2RjMjY1MjZjYzc1OWQ1ZjA2N2IwMjc2ZWFmN2E4ZGFiNyBsZWdhY3ktdHJ1bmsKKzczMzkgYTUzOTA4ZDA5YTA0YzAxMDMwMjFlMzk4NmU3ODAxNDZhNTNmMzYzOCBsZWdhY3ktdHJ1bmsKKzczNDAgZjUwNzNlMjQxNDdjMDc4ODE1ZjUwMWY4OGZmNDFlYjg2ZGNiMmUzZiBsZWdhY3ktdHJ1bmsKKzczNDEgMzk2MDM0MGEzMjUyMDhjNGU1ZDc5MGYxMmZjM2Q0NTVkYWM4MzQ2OCBsZWdhY3ktdHJ1bmsKKzczNDIgZTNmMmFiMGIwYWExNmQyMDAzMjJmNjcwYjBlNzc3NzQ5N2RhOGUwNiBsZWdhY3ktdHJ1bmsKKzczNDMgYmY0ZGIyYTRiYjU0MDc5ZWQwN2IwYWE2ZjE3OGViODc0ZTUwMWU1NyBsZWdhY3ktdHJ1bmsKKzczNDQgMGVhMGZhYzY4YzFjOWQ4Zjc2ZDVmN2Q3YWVjM2YyZjI3ZTYzMmNhOCBsZWdhY3ktdHJ1bmsKKzczNDUgNjhmNDEzNDg2OWRiMDNiNzdjYWQyZmJjY2QwNjNiMDI0ODY4OWViMiBsZWdhY3ktdHJ1bmsKKzczNDYgYTcxNTliYTBlNDVkMWQ3NDk0NDY2MWY4YTNiODg5ZmFiMmQxYmE2MyBsZWdhY3ktdHJ1bmsKKzczNDcgZGE1M2U0OGVmZWE4NjBhMmRiMzNkZTNjNWJhY2VjMmFlOTY0NjIyYSBsZWdhY3ktdHJ1bmsKKzczNDggMzJmNmIwZDNhNjZmYmYwODhiY2M2ZjNkYWUyODQ2ZGM4YTM0OWM3ZiBsZWdhY3ktdHJ1bmsKKzczNDkgMDNiY2RkMjJmNmE0YzJhMjdlN2Q3Yzg0ZDExMDIwNjNkZGViZTlkNCBsZWdhY3ktdHJ1bmsKKzczNTAgOTExMDQwZTFiYjExOTE4NGJiNTkzNDI0NzhmNTQwMjg0ZGQ4N2NkMCBsZWdhY3ktdHJ1bmsKKzczNTEgMGYxMGZhNzUyY2E5MjU2ZjNjN2JjZjg5Mzc3MDQwN2U4MTFhNWQwOSBsZWdhY3ktdHJ1bmsKKzczNTIgZTU3YThkZTVhZWIzOWIzMDFkY2NkZDY5OGQxYmM1ZjU2YjRhZDFhYiBsZWdhY3ktdHJ1bmsKKzczNTMgYTllN2UwY2NhYTRhYzBjMTA1ZjYzZDczMjc4NmZlMTZmZmMxMzQ4OCBsZWdhY3ktdHJ1bmsKKzczNTQgNDUxNDAyMzE2MGI0NWQxZTJjYzBkNWZkNDBhOWY0NmIyYjNlZWUwMSBsZWdhY3ktdHJ1bmsKKzczNTUgOWE3ZTlmMTBhZWQ2MjA4ZWJmZDgzOTg5OWJmMjg4ZDdkZjU4NjRlOSBsZWdhY3ktdHJ1bmsKKzczNTYgMjI0MWQzMTI2NThhZTc3M2QyNDY2Yjk5MjUyMWE0NjMzODA0MzY0MiBsZWdhY3ktdHJ1bmsKKzczNTcgOGQxN2Q1NTJkMGVjMDVkYWM2YWQ4MWVkNjMxNDMzMmNkMTczZmJhMyBsZWdhY3ktdHJ1bmsKKzczNTggZTc0MmI1OTNjMDkyNjNjZGVkYmJjYTU1ZWM3ODZiZWI3ODZhNTdmMSBsZWdhY3ktdHJ1bmsKKzczNTkgNjVjYjI2MWY3NzM2YzlhNDNkZjgxZGZjNWY3NjJmOWQ1MzNlNjExZCBsZWdhY3ktdHJ1bmsKKzczNjAgMzgzYzY0ODYzNDZmNjYzM2E4ZTI5Yzg1NWMxZjM5OTQwYzNmMzcyMyBsZWdhY3ktdHJ1bmsKKzczNjEgMjFjNDFkM2MyNmI2NTExYTcyMzllNmU4ZTQ3NTcxNjU3MDY4YjZmNiBsZWdhY3ktdHJ1bmsKKzczNjIgMzQyZDJlZWQ1NzNhNTc4YjJlNjU2OWEzZWRmMWUyNTk4NmRjZWI4MSBsZWdhY3ktdHJ1bmsKKzczNjMgZjEyNjExODY3MjJjZDIwOWQ0ZTVmYjNiZmNjODA2YzkyZDJiY2JhOCBsZWdhY3ktdHJ1bmsKKzczNjQgOWM2YjVhNjVjZTYzMDBkOGQwYzZlOWJmN2E2MTkwMmI3MzFiYmNhOSBsZWdhY3ktdHJ1bmsKKzczNjUgOGE2OGY4MWJhYWQ2YjE2OTExMzE2YWRmMzkwNjA2Yjg2ZWI0NGY2YiBsZWdhY3ktdHJ1bmsKKzczNjYgZDM5OWE0NTM3ZjZkZTBmMjA0YzljYTZlZDNkZmQ0YTdjM2U4YmU2NiBsZWdhY3ktdHJ1bmsKKzczNjcgMWMwODljNWI2NmU5OTA5NTRlZDU3YzlkN2JjODNhODQ0OGMwZmQyZCBsZWdhY3ktdHJ1bmsKKzczNjggYzJlYWMxMjZlOGZmYzA4NzhjNjQ5OWY4ZjQxZWEzYmE0ZjU1MjczYSBsZWdhY3ktdHJ1bmsKKzczNjkgZjMxZjQ3ZmYxZmRkM2Y0OWIyNzFiOGJkNTU1YmMxYTMxNDA2M2Q1MSBsZWdhY3ktdHJ1bmsKKzczNzAgNTU2ODMyMGRhOWI1OWFlYmZlZjI5MTc1ZTUxZWE5ODdmMzBmOGExZSBsZWdhY3ktdHJ1bmsKKzczNzEgNTBhYmIwODUwNzQwNDY5ZWQ4YmYyZDEwMzMyOWY0Y2FjY2RlMzkzOCBsZWdhY3ktdHJ1bmsKKzczNzIgOTBjMjFkZGU0Mjg0M2ZiMDRjNTRkODhmMzI5NWU5Nzg0NGM2NjY3OCBsZWdhY3ktdHJ1bmsKKzczNzMgNGY4N2ZkMmQwNTYyZWFiMTg0YTU3Njg0OGViZTQwZDUwMmIzMTk2MiBsZWdhY3ktdHJ1bmsKKzczNzQgOWVmZjc4ODBlNjg0NDgwNWI5M2I2MDg4YzI1YzNjZTFjMGQxMjA3ZCBsZWdhY3ktdHJ1bmsKKzczNzUgMzdlOTdhMzEwMjQxMWQyMGQxNzI1NjViOWM5YjlmZWZhZDIxMzZmMSBsZWdhY3ktdHJ1bmsKKzczNzYgNzcwMTA0YzhmODRhMGFmYTMwMzQ5OTI0ZWIzYTQ3NDBmZTliMzVjNyBsZWdhY3ktdHJ1bmsKKzczNzcgZDQ2ZTQ3OGI1NzY3YzM4OWYzZTc3NDMzZDY2ZmFjMTA5YjdiODczMiBsZWdhY3ktdHJ1bmsKKzczNzggNmE2MjlkMjc4YTE4YjkyMmYyYjM4YzZjMzE1NTk5YTNmYTU4ZmFhNiBsZWdhY3ktdHJ1bmsKKzczNzkgNWRjMjBhOWUwNTA2N2JhMTcwMzY3ZTk4MDNlMzk2NzRiMWMzMWNlNCBsZWdhY3ktdHJ1bmsKKzczODAgMzIyMjBjNTcyOGY1MTQ4NmUwZDMxOTk2ZDY3MDM0MDJlNzQ0MmU4MyBsZWdhY3ktdHJ1bmsKKzczODEgZmNlNzgxYjEyN2I5MmYzOWQzZjczZTUxYmEzOGJhMTMwYTU5NzRhNiBsZWdhY3ktdHJ1bmsKKzczODIgZmQzNjI2NTExZGFkZmNjYjRlNTNlNjc0YTBmMzhjNTEzMmY1MTQyNiBsZWdhY3ktdHJ1bmsKKzczODMgY2ZhMTI4MjkwMmRhY2RhMmVhYWFlOGIzY2RjMDRiZmQ5NzVkNTZiNyBsZWdhY3ktdHJ1bmsKKzczODQgMDgzNGFhZGRiZjFmZTQ0ZTIxM2JiNDE2MjZlZGExZjI2ZjkxYTIyYyBsZWdhY3ktdHJ1bmsKKzczODUgZmNhZjlkMTE5YWJmZGMwOTBlZjgxMDY0OGQ4Mjk2MDkzMjk5OTgxZSBsZWdhY3ktdHJ1bmsKKzczODYgMjE4NzhjODQ5NjI2YWUxYjc0MmY4YWFmMWFiYTMyZmEyNzlhMzQ5YSBsZWdhY3ktdHJ1bmsKKzczODcgNGI1OTBmNThjNmE3YTM5M2YzYTFkNmVhMTkyMjZlYjhiNWY5YTkzZCBsZWdhY3ktdHJ1bmsKKzczODggOWUyYzNjNmQ0ZmExNWM4ZmI4NDM2MGI4NTJlZjNkYjdjMjM4ODhmYiBsZWdhY3ktdHJ1bmsKKzczODkgMjUwYmRkYjJlY2NmMmRiY2QwNDUxOTQ2ODE1ZDhlZTU0ZDE0ZjViNSBsZWdhY3ktdHJ1bmsKKzczOTAgMTRlZDkwOWE5YzgwOWY3ZWFiYWZiNzhmODdlYzdlZDIwMTUyZDAyZSBsZWdhY3ktdHJ1bmsKKzczOTEgMDc5ZWI2OTQ3MWU1ODMzOWMxZWJhY2QwYmM3YTM4ZmM2MzY5NDRjNyBsZWdhY3ktdHJ1bmsKKzczOTIgMWJjZDQ5NzJkYTdlODZlNDRiZDlhMmU3MDFiMDVhZmQzZGNlOWY1ZSBsZWdhY3ktdHJ1bmsKKzczOTMgMmE0ZDNkOTliOGE0NWE4YzJjNmY5OWJmNTJjMTUyYmIwNjY5ZWFiNSBsZWdhY3ktdHJ1bmsKKzczOTQgZjhlNWJjNTM1MWE5NzNhZTg0ODUzMGQ1YWM1OGE3MDM5YTllYWVlOCBsZWdhY3ktdHJ1bmsKKzczOTUgZTc3NTg1YWYyYTIxNjU1ODI4NjRlZTg2MDdiYjcyMDk0NGE5Mjk3NSBsZWdhY3ktdHJ1bmsKKzczOTYgNTU4YWJhYzc1OThkMjkwZWU5ZDJkZWJjMDEyZThkYThlZGY4MDc2ZiBsZWdhY3ktdHJ1bmsKKzczOTcgMmRlYzM2MzQ1NjY1ODMyMmFhMzhmNmVjMThlNjU4NmY2NDA2Yzk1YyBsZWdhY3ktdHJ1bmsKKzczOTggYWU1NzM5MjJmZGNkYWNjYjYxYmJlMmEzMzQyNjQ5M2E5YWQ0YjM2YSBsZWdhY3ktdHJ1bmsKKzczOTkgZjA3ZTE4ZGIzNjZjNDkxYzRlYmRlMDZlZDAzMTU4MzBiNDNmYjhiYyBsZWdhY3ktdHJ1bmsKKzc0MDAgNTA3YzQ2MDIwNTI2NGQ1OGUzNDA4YWIxNjI1Nzg3YjkyOWE2M2QwMiBsZWdhY3ktdHJ1bmsKKzc0MDEgNzA2OWEyYmY1YmFmNmE5YTU2YTlhMmU3ZTkyY2FlMGY5ODA4MDI2YyBsZWdhY3ktdHJ1bmsKKzc0MDIgMDQwNDkzZGU4NDhkOGRkNzI3NWQ1ODU4MDM5NzQwYjNiMTllYTM0OCBsZWdhY3ktdHJ1bmsKKzc0MDMgOWJlNjVlNmMzNWM4MjZkNGY3MDlhZDdmNjUxOWI0NjMxMzMzNDBjNyBsZWdhY3ktdHJ1bmsKKzc0MDQgNTEyNmQ0YjgxOWU5ZTE5YzVhYjI1NDM2NzViMDFkOTg5ZDFhY2Y4MSBsZWdhY3ktdHJ1bmsKKzc0MDUgNTM2OTM1YzI5NDAxNzNkMWJjNDQyYWVhZDRhMTNhNTFiMWIwYjM0OSBsZWdhY3ktdHJ1bmsKKzc0MDYgMTgwMjNlN2MzODYyZmNjOGM5OGRiYTYzMmU4NWViNTQxZGE1OGI2YiBsZWdhY3ktdHJ1bmsKKzc0MDcgYjM3ODc1MzgyNWEwOTFmZWNiOTRlNGM4N2JmYWQwMDQxNWI1MzkzZSBsZWdhY3ktdHJ1bmsKKzc0MDggYjU2YmMyNWFlYzg1MmFkMjlmZGJmNTE3NmM3OGM5MTIzYTBjMjgxNCBsZWdhY3ktdHJ1bmsKKzc0MDkgNmI2MTkxMmQ1ZjM1OWIwODQxNzlkNTk0ODMxMmFhN2E1ZjgxZGNmMiBsZWdhY3ktdHJ1bmsKKzc0MTAgMDk1YzllZTIzYjU3NmMwMTM5MTg1YjVlMWZjODE1NTMzMDYwNDRlNiBsZWdhY3ktdHJ1bmsKKzc0MTEgN2QwYmZiNDY4MmY5YWY1MjA1MDUxMGVkODAwZDE3NzVjYjQ2MjRiOCBsZWdhY3ktdHJ1bmsKKzc0MTIgNzg5ZGU3YzY2NzEyOTY2MmYwYmE0ODU1ZmI0YjBiMGUwN2M4YmVkNCBsZWdhY3ktdHJ1bmsKKzc0MTMgNzBkYjRiZTFkZDRiMjVjMTI1ZWIyZTk4ZWE1NzhiNzIwMDRkMmRiYiBsZWdhY3ktdHJ1bmsKKzc0MTQgMjE3Y2ZiNjE5OWJlMTE5NjEwYzIyNGNjYjJhODNjOGFlY2YzNjMyZSBsZWdhY3ktdHJ1bmsKKzc0MTUgNWVlZDUxNzUwMjg0MTYzMDQzYmUyOTc3OWVhY2NiNTkwMWRmZmU3OSBsZWdhY3ktdHJ1bmsKKzc0MTYgMzNlMzNiYTdmNDIxYWU3Zjk2YWMwMTAzNDgxNjEwMWUwYTg1NTIyOSBsZWdhY3ktdHJ1bmsKKzc0MTcgYTUyMGM2ODRjZThkYzAwY2I5MzExZTMwMTczNDkyMWJmOTIwODU0ZiBsZWdhY3ktdHJ1bmsKKzc0MTggNTdhZWQxNmUyMTY1YzhiMmNmODc1MTZlY2MxZDZiNWYwZjZiMTMwYyBsZWdhY3ktdHJ1bmsKKzc0MTkgNTI4YzMxOWM2ZTdmZjBkZjFiOTE3M2FiYzg4ODliYmU2MDNmZGM4NyBsZWdhY3ktdHJ1bmsKKzc0MjAgNjExOGNhNTE0MDRkODYwMmZmOTA4YmZlOWRkM2QyYTE2MmM4Njc3OSBsZWdhY3ktdHJ1bmsKKzc0MjEgYmExMWI1OGIyYjBhMzhjMGM3ZTlkMjAyNDc4NDkyOTc2NjY3ZGVmYSBsZWdhY3ktdHJ1bmsKKzc0MjIgNzhkODgwMDQzMTI5ZTA3NDVmMjUyZTM0NTVkOWZiMGI5M2YwMzQ5YiBsZWdhY3ktdHJ1bmsKKzc0MjMgNTY5MzQzNGVhNTM4Yzg5ZmQ1MzVjYjE4ZGU5OTY1MzgyYmVmNDNkNSBsZWdhY3ktdHJ1bmsKKzc0MjQgY2E5YWE0NzQxMWRlNGJhMjkwOTg3NjE2MWFiMDE3MjhmZDg2OTdjMSBsZWdhY3ktdHJ1bmsKKzc0MjUgMTlkODE5YjE2YjgyNTJhMDIxMjkzYjNjNGEzMzAwZWU2YWE2MTY3ZiBsZWdhY3ktdHJ1bmsKKzc0MjYgZGEyYWJiZjkzODdjNjFlYmNhMTVjOWM4ZGU1OGIwMmIzMjEyMWNkYiBsZWdhY3ktdHJ1bmsKKzc0MjcgMDVmZDQzMmQ5ZTJiNjhkOGU5MmUzNDIxMzQ3ZjA2ODEwNTczYmEyNyBsZWdhY3ktdHJ1bmsKKzc0MjggZGE0YTQ5N2JlYTNhOTQ4MzlmODg1ZjMzNzA0ZWU3ODRiZmFjMDc3NCBsZWdhY3ktdHJ1bmsKKzc0MjkgYjFlY2RiMmRhMjQwMDU1MTllMTk2OTlhNGUyMzQ1OGE4NmExYzA5ZiBsZWdhY3ktdHJ1bmsKKzc0MzAgZTZiNzk3YWFhNjlmN2QyMDViNTBlODQ5MTZjNzkzYTVhMjM2ZmIxZCBsZWdhY3ktdHJ1bmsKKzc0MzEgNzMzMjUwMTlhZDM5ZmY1YmYxZGU1MWMxM2NmM2ExMTU1YjIyNjk0NSBsZWdhY3ktdHJ1bmsKKzc0MzIgOWQ1OGQwZTk4NzdlNmU3YWYyYTJiOTdiMDVlYWYyMTMyMzcyZDI3ZSBsZWdhY3ktdHJ1bmsKKzc0MzMgY2U0MzhkMzZkNGZiZjExZDRkN2Y0NTdhYWRjYWRhZGM0N2E0NjVkZiBsZWdhY3ktdHJ1bmsKKzc0MzQgODlkMDc3OTVmZDY5NGZlNDI1MjdmMmY2YzRhZjBkNzJmMjQ0MGZlMSBsZWdhY3ktdHJ1bmsKKzc0MzUgMzhmOWU0NmQyMzE3YjUxMDczYjY1Yjc2ZWJjOGM1YTcxM2RkYmY4MCBsZWdhY3ktdHJ1bmsKKzc0MzYgNWU2MzMyMmY0YzA2MTNiODJkMzE4NDA5Zjg0NzRhNTU3NDJiMmQyOCBsZWdhY3ktdHJ1bmsKKzc0MzcgNzY1ZDk2MmY0NDQ5ODI1NjZmYWUyYzVhOWU4MTkwN2VmMDExOWMyNyBsZWdhY3ktdHJ1bmsKKzc0MzggNWRlZDJiYzE5MDhiMzY1NzFiMTI4YTRhOTlhOTQ2ZWIwOGRjYTgyZiBsZWdhY3ktdHJ1bmsKKzc0MzkgNmNlNjFmMjEyYzNlN2YwMDFmMTNmNTk3YWRjNjgxOGNkOTk4MjAxZiBsZWdhY3ktdHJ1bmsKKzc0NDAgZDg0Y2ExOTc4NjhiMzU0NzFjM2E1N2JiMTJlNjMwODc3ODNjMjAyZiBsZWdhY3ktdHJ1bmsKKzc0NDEgOWJiZDU3ZDM2MDlmYmI0MTMzY2EwYjQyMjA1MWU3YThmMzA2M2FlMSBsZWdhY3ktdHJ1bmsKKzc0NDIgMzcwNWY3NWE4MzU1ZTIzNjU0NGRjZTcwYjZmMzRjNDI0NjBlZDk2OCBsZWdhY3ktdHJ1bmsKKzc0NDMgM2QzMmRhMzdkNjI3ZDhiYTAyMjE2MGFiNGIzODQxYzczMWExZTVhZCBsZWdhY3ktdHJ1bmsKKzc0NDQgMGYxYWU2MmRkM2I4N2UwYTE3MTgwZmRkM2JlMDRjMDA0OTFjZTM1OSBsZWdhY3ktdHJ1bmsKKzc0NDUgODA1NDg3ZDUwNjIwYjRmNTQ2ZTFiOGQxMzA5NzU3MjI5ZjA3ZWUxOSBsZWdhY3ktdHJ1bmsKKzc0NDYgOGQ4Yzc2YTFkMjUwNDA2MmUxZmY3MjE5NTQ2ZThlOTA3ZDg4MDUzZCBsZWdhY3ktdHJ1bmsKKzc0NDcgNmVjZTVjZmI0OWZmZGIzZmRiNDNkMzc3YjdlNGRmOWJjYjljMDMzYyBsZWdhY3ktdHJ1bmsKKzc0NDggN2Q3M2NkYzAxMTk4MmE1ZTcxY2NkYmMyZTBkZGRmYzIyYWU0NzdkMSBsZWdhY3ktdHJ1bmsKKzc0NDkgMzk3NDU1NzRiZjA3YWZjNmYxOGIxZTQ4OGY5OGVjODI0NWI4NjA5ZCBsZWdhY3ktdHJ1bmsKKzc0NTAgYjRhNDAwYjM1OTVlMjRjZTk0OGM4NDFiYWUyOGZkZjE3NjdmYmEwMyBsZWdhY3ktdHJ1bmsKKzc0NTEgMmUyOTQ1ZDgxNjNjNjcxNzI4Mzg4NzVmMTkyMzdkMDEzYzNkMDA2MSBsZWdhY3ktdHJ1bmsKKzc0NTIgOWIxNjk0MzkwODIwZGQwNDQyYWRjZmU1ZGNiZGZiMDY4YzczOGU1OSBsZWdhY3ktdHJ1bmsKKzc0NTMgNDdlZTNiNGUyZDgwMzNjYWNkOTlkNjM1MjhiNGQ2NDNjMjZhNjEyZCBsZWdhY3ktdHJ1bmsKKzc0NTQgYjg2NGI0MTRjNDU3Y2Q5ZTQ0NTYwNWU1YTA4Mjc2ZjQyZjc4OWI5YyBsZWdhY3ktdHJ1bmsKKzc0NTUgYThkN2JmZWM3YzkyYjdjMThhYzllYzg2YzhkMjQ4MGQ4YTliY2RiZCBsZWdhY3ktdHJ1bmsKKzc0NTYgOTk0Mzc2YWY5MDY0ZDMwZjFlODJmYTk5YjExNDQ1NmMwM2U1MDk3NyBsZWdhY3ktdHJ1bmsKKzc0NTcgYjVlN2ZjOGJmOTE5NjM2OGRjMzBmMjdmMmNlODQ4N2JhODJlZGRkMSBsZWdhY3ktdHJ1bmsKKzc0NTggNjZjYmIzN2I0YzBiZDYwMDUzMTk0ODE5NDBmNzY5YTYzNDAzOGMxZiBsZWdhY3ktdHJ1bmsKKzc0NTkgNzdmOTcwMDc2ODMxNDAyNzYwM2EzMmNmMDkwZGVkYzE0ZWNlYmE2MiBsZWdhY3ktdHJ1bmsKKzc0NjAgNDMwOWJjOTdlY2M2YTg3NjllOGE2ZGRjMGFhYzYzOWExNzUyOWRlNiBsZWdhY3ktdHJ1bmsKKzc0NjEgZDhkNTYzYmFmODc0Nzg2N2MwNzA0OWNlYTFkMDczYjNkNDBhNWE0MSBsZWdhY3ktdHJ1bmsKKzc0NjIgMWRlZDk0MzhmYTUxNWQ3NzM4YTAwMmNjMGEwMmY3M2Q3MzA5ODk3MSBsZWdhY3ktdHJ1bmsKKzc0NjMgZGYzODVjYzBkMmUzODcwZWZkODYyZDdkN2Y0OWY1NzNhMjdiNzJmNCBsZWdhY3ktdHJ1bmsKKzc0NjQgNjUxNDhkZWQ1MTA4NGRhZmQ2Y2JkNDNiYjUwMzYwMDA0ZWY1MTZlOSBsZWdhY3ktdHJ1bmsKKzc0NjUgNmUxN2VmNWEyNmM4OTQ0YTg0YjNlMzZhYzA0ODg4ZmNiOGQyYmE3OCBsZWdhY3ktdHJ1bmsKKzc0NjYgODI3NjkxNmUxZWE4ZGNkZTU1ODdjMzg4YTVjODNjMzViYjc2Y2ZiYiBsZWdhY3ktdHJ1bmsKKzc0NjcgMTFiYWNiOGQ3MzFhZDZjYWRkY2QwZDg5YzVlMDFkMGI1OWUzNmRhMSBsZWdhY3ktdHJ1bmsKKzc0NjggYjgyZDg0N2IzZGNiY2NkNjNkZTA3NWUzODc5YTkzNjlkZmIzNGUwZCBsZWdhY3ktdHJ1bmsKKzc0NjkgOWJjNjUyZTlmMmI0NmQyOTI4YjAzMDAzZjA4Yzc1Yjg4MTQ3OTA1NyBsZWdhY3ktdHJ1bmsKKzc0NzAgMjY3ZWQ0ODBlYzFiODRjMWRlMDdmYTg2N2YwZGIyNmI0YzcxNTJkYSBsZWdhY3ktdHJ1bmsKKzc0NzEgOGRlMWY2YjA3ZGY5Y2Q3ZGMwZmMwYjQ2ZTcyZDdkYzBkMDZjM2YwNiBsZWdhY3ktdHJ1bmsKKzc0NzIgNThiYmFmMjg0YWQ2NmVmMGNlN2Y0ODE4ZDA0MDViMzBhYjZjZThhOCBsZWdhY3ktdHJ1bmsKKzc0NzMgY2M0YmE3MjE0YjE4Zjk5N2U5OWQwNzAzMTAwYzhkMTRiYzllNTg3ZSBsZWdhY3ktdHJ1bmsKKzc0NzQgNDY4MTI0YTE1NjBhMmQyZWJhM2Y0NGE2MDUyMTRlYzNhZTNkZWI0YyBsZWdhY3ktdHJ1bmsKKzc0NzUgN2M3YTE4NmI2ZDg2YjJiMjAzMDUwNzMxNWRmZTA5OTRlZTY2NWIxOSBsZWdhY3ktdHJ1bmsKKzc0NzYgMTdjN2ExMzNjY2Y3MTEyNWZkMjQ1OGQ0YTRlNTY3NTcwYzcyYjdlYSBsZWdhY3ktdHJ1bmsKKzc0NzcgYWUzYjQ2YTczNzY1N2IzZjQ0MGFiNzU2ZGNjMTY1YjcwZGJlZThlZSBsZWdhY3ktdHJ1bmsKKzc0NzggNjVhYWNlMjAxMmU1MmMzZjE5NDkxZTg5YzE4NDIyOTBkZGQxYjFmMSBsZWdhY3ktdHJ1bmsKKzc0NzkgNGM4ZTRlOTMxMWU0ZTBlNTJlNTA5MmVjYmFkMWJhMjY0ZmE0OWZmNSBsZWdhY3ktdHJ1bmsKKzc0ODAgZjE3YmFjZTQ4ZGQ2OGEyYzgwZjQ0YzAxMTVkM2FiYTdkMjhjYTA5NyBsZWdhY3ktdHJ1bmsKKzc0ODEgNWY0YjIzZTNkOTdjYjM4ZDBhOTNkYWU0MThjODgyOTU0MzVjNWU2YSBsZWdhY3ktdHJ1bmsKKzc0ODIgZTRmN2MzMzFiYjFhMmZmZjNlMzU4ZmJlOTZmYmI5ODRlN2UzZmQ0YSBsZWdhY3ktdHJ1bmsKKzc0ODMgZjU1ZTgyZTFlNTY1OGMwZmU0NjFmNDgzNzU1MGM4MzIxNzRiMmIwYiBsZWdhY3ktdHJ1bmsKKzc0ODQgNDAyZTM2YzgzZDIwMjkwMGEwMjNlMTYwNWViZGFkYmRhMzZiN2UyMiBsZWdhY3ktdHJ1bmsKKzc0ODUgZjBjZjhkMjc1ZmJjMTc1MTQyOGQwYTMzZWYxZTM2Mzc0ODkxYmEwMCBsZWdhY3ktdHJ1bmsKKzc0ODYgNjg0MGZmODlkMjRhMWYxOWZjMzI4ZTUxYTAxNjU3Y2ZlMmNkOTc1NSBsZWdhY3ktdHJ1bmsKKzc0ODcgNzdmOWMyNWUxZjFmY2FjYzkzZjJlNjNiMGNiYmMyYjcwYTQ3NjVmZiBsZWdhY3ktdHJ1bmsKKzc0ODggNGNhNGU1NGM5Y2Q4Mzc2ZGYxNDE3ZWUyOWM2M2JmYjc5ZGEyNWNmOSBsZWdhY3ktdHJ1bmsKKzc0ODkgMGJmYWM4OWFmYzgzZmQ2YjBhOTI5YjgyYjc3MmI4MTg1MjJlMjQ0YyBsZWdhY3ktdHJ1bmsKKzc0OTAgYjFlMmVlYTY2Y2I2Y2ZkYzJhNWU2NDY5ZTU1MzE0N2NkMWVlNDc4NCBsZWdhY3ktdHJ1bmsKKzc0OTEgZjFhZjA5N2E1ZTVkNzkwYzJhNmIwNmNhZDAwMDY0YzRkMjYxM2UwMiBsZWdhY3ktdHJ1bmsKKzc0OTIgMTNkMzhlYjdlMjI1ZDE4MzU0Y2E0YTY3YTg0YTg4MDgyNmE1MTE2OCBsZWdhY3ktdHJ1bmsKKzc0OTMgMDAxYTUwNDJiMTgxYTdkYWI1NGI2Y2QxMGVkMTI3MmJiNjJkNmI3MCBsZWdhY3ktdHJ1bmsKKzc0OTQgMjg5MzU2MDlkZmFlYTY0YWEwNmI5NmM1ZTYwNDU2NzkwMmQ3NDRlMCBsZWdhY3ktdHJ1bmsKKzc0OTUgMGVjYTlkNWY3YjJkNGIxYTA3Y2I2NDM0NTI1YThiOWJjNzNkZDVmOCBsZWdhY3ktdHJ1bmsKKzc0OTYgYzIyYWRkMzY0MzUxOGY2YzQ4MGE2ZjQ2NzE2ZmRhMGQ3ZTJiNWMwNSBsZWdhY3ktdHJ1bmsKKzc0OTcgNjI2NDU3ODdmYmM4ZDkyY2MyOWMyYTc3MTc4Yzg5N2FhMzMwNWMwOSBsZWdhY3ktdHJ1bmsKKzc0OTggNzVjMWVlODgyYTRhZDQ4YWQ2ZjQ1ZWI5NjgyZjQ3ZDAyMWEwNjBlNiBsZWdhY3ktdHJ1bmsKKzc0OTkgN2U1MTkwOTk5NjMzMmRhYjA3NjI5ZTYyODBlZWIwMWVkNTdkYzgyOCBsZWdhY3ktdHJ1bmsKKzc1MDAgYmZmOGY1YWZjNjdmZWM2NDFlOGZlMzBmMmY1ZTExNzc1Yzg4Yzk1YyBsZWdhY3ktdHJ1bmsKKzc1MDEgYjVhMWJiMmQxN2ZhZDQzNjEzMzZmOTU5NGE3ZGMxMjBlY2Q1MWUyZCBsZWdhY3ktdHJ1bmsKKzc1MDIgMGVhNGVhNWIyZWI3M2ZlYThlZWEyOGQxMDViNmQ4MmNkM2ViNjM2MiBsZWdhY3ktdHJ1bmsKKzc1MDMgMDY3N2M3N2FhNzBkZjE5ZWI0OTZjMzFjYzNkZWNjYjU0ZDU4MzcwZSBsZWdhY3ktdHJ1bmsKKzc1MDQgM2YwMzdlZTc3MzFiZTMyMzg1NmVjNDY3OTkyZWMxNWQ4OTdkMWJhNyBsZWdhY3ktdHJ1bmsKKzc1MDUgMDBjM2NiMTA3ZTVmMjc4ODA2YzRkMmMyNjllZDg4N2YzMTA5MzFiOSBsZWdhY3ktdHJ1bmsKKzc1MDYgMDE3ZDcyNTQ0ZGYyYmVjNTNmZDk5YzI0MGJhZmI1ZWJhYzZiYjRhYyBsZWdhY3ktdHJ1bmsKKzc1MDcgYmUzMWU3ZTE5MjQxYjFkNWU1ZWNmZDFhNGY2NDExMTc3YTFiZTJhYyBsZWdhY3ktdHJ1bmsKKzc1MDggNWI3YjcwM2RhYmZhMDc4M2I5MWYwMTRlYjAzMWMxOTJjY2RiOTYwMyBsZWdhY3ktdHJ1bmsKKzc1MDkgZGUyYTc1YzdlYTlmZjQ2Nzc3N2I2MGY5ZDk3OGI2MTI0MDdlZjE1MyBsZWdhY3ktdHJ1bmsKKzc1MTAgYTBlNjJkODVkZTc3YTE1MGUyNzk3YjFkZDhkODI2OTY4NjNmZjI0MiBsZWdhY3ktdHJ1bmsKKzc1MTEgNjk3NjVkNjQzMWUxYzRhOTM4YWJjMTM5MTgzMTRjZWQzMjNhNjFmZSBsZWdhY3ktdHJ1bmsKKzc1MTIgOWFkN2I4YzM2Yzc5NDA1MjMxZDBhYmJmNzFjZGYxODIyMWI3NzY1MiBsZWdhY3ktdHJ1bmsKKzc1MTMgYTgyMGRlYWQwNmU2NzYyZmM3OGI2YjEyYjYwN2E2MzgxYTFlZTFiNCBsZWdhY3ktdHJ1bmsKKzc1MTQgMzgwMzIyNjc5NjhjMDE3MmJhNmY5NGFmYTA5ZTZjNGE3NDIyYzAwZCBsZWdhY3ktdHJ1bmsKKzc1MTUgODc2ZTU3MzY0YzYyMzk5NWNmYTVmNDU1NTIwNjBlNDkyY2Y0NDc2YiBsZWdhY3ktdHJ1bmsKKzc1MTYgYzQ5NzkyOWIyMzcxMTVhMmMxZDczZTA2MjVhMzY3ZTMzN2MxNGZjNiBsZWdhY3ktdHJ1bmsKKzc1MTcgOWI3ZTBjZjUxOTkwNWFjNDkxOTk4MTFmMTJmZTcyZWRlMWQ0YzBkYiBsZWdhY3ktdHJ1bmsKKzc1MTggMTA0YTY0NmZjN2E2N2YyN2RmMjVkNGU5NDFiMjAwMzVlNTg3NmY5ZiBsZWdhY3ktdHJ1bmsKKzc1MTkgZWUzYWM5ZTBhMDMyMjk4NjJkMTkwNTZhNjc0M2IxOTM0YTI1MGI2OSBsZWdhY3ktdHJ1bmsKKzc1MjAgYjFkODI2OTdjMGIyMzY2NzRkMGU2MWMwZWZjYjBhOTExZTljNzJkZCBsZWdhY3ktdHJ1bmsKKzc1MjEgNjU4ODE1MjMwNTQ2YTQ4OTJjMmFlNTE5NDY4ZWRiNDgyNzA4NzhmZSBsZWdhY3ktdHJ1bmsKKzc1MjIgN2E5Y2FjN2NiOTEwOWY0NzNhY2RkZDFhOWQyM2UyNjhhZDk1ZTBjYyBsZWdhY3ktdHJ1bmsKKzc1MjMgZmRlNzM0NjdiNTg0N2JmNWQ1MjI0ZTZkODU0MjMyM2Q5YTY4ZDc2NSBsZWdhY3ktdHJ1bmsKKzc1MjQgOTQ2YjJiMmE3NjIyZmExN2FkNDI0ODI4Mzc2YTVlODhhN2EwMTNhZiBsZWdhY3ktdHJ1bmsKKzc1MjUgODU3OWUzNDQxZDliYzk5OTVkOThlOGJmMjQ4NTNmZWU1NWI3NTQ1MiBsZWdhY3ktdHJ1bmsKKzc1MjYgN2Y2ZDE5ZmM1YWNhY2ZjODU0YTczYmNjZGYyYTI4OWRhNmMxMzg3ZCBsZWdhY3ktdHJ1bmsKKzc1MjcgNzg0MWM0OGNkYjViNDk2N2RkYTYzYzAwYWZhYWRmODUzYzNhMzU2ZSBsZWdhY3ktdHJ1bmsKKzc1MjggMjE5YmRkOGFmYjM4ZWYwNWFjNDE3ZTcyOGI1OTIyOGM3NDQ1ODk1YSBsZWdhY3ktdHJ1bmsKKzc1MjkgZTljNDQyZDA5MzZmYjVjM2I5MjJjN2E1OTQ0YzVlOWZmNmQ5MjY5YSBsZWdhY3ktdHJ1bmsKKzc1MzAgZjU3ZTE4MWZmNjM4ZmRiMWM5YTM2OTY3YTMwYjRjOGRjYjE5N2Q0OCBsZWdhY3ktdHJ1bmsKKzc1MzEgZTYyOWM4OGYzZGQ4MDc3M2JmZWMxMzJkMzE3NjI1MGZiOGExNjhhMiBsZWdhY3ktdHJ1bmsKKzc1MzIgNmM3YTc2ZmQ1ZGMxZTkzMjBlMjE3NmZkMDcxNzk1YTQxOWIwYTkzOSBsZWdhY3ktdHJ1bmsKKzc1MzMgMzcxNDY0ZjY2NjZiNjZkN2YxZGQ1ZjQ2ZGZhMTYxOTEzZTQ3Mzk4ZSBsZWdhY3ktdHJ1bmsKKzc1MzQgMTkyZDU3MWNjNDYxNWNlNjg0YWY0MTgyM2FmYzE4MDdjMTU3OWE4OSBsZWdhY3ktdHJ1bmsKKzc1MzUgNWEyMzI4NzBjY2VhYjVmM2M0ZjVjOWIxZTc4Y2UxNWUxZmIyYWQ4MSBsZWdhY3ktdHJ1bmsKKzc1MzYgMzQ2ZmY5YmE5ZDM2MzcwNGNhYzBjY2EwYzNjMTAzYjg2NzE0MTVjYyBsZWdhY3ktdHJ1bmsKKzc1MzcgZDY4MTYzMWQ5OTJmMjAxYjQ0MTUxOGFmMjJjMDA1NDU0ZDZiNjBlNSBsZWdhY3ktdHJ1bmsKKzc1MzggZjA3MzFmYTQ0NDdmNTI2MmY1NTE3ODNjNmE4Y2RjYWQwNDg5YjAzZSBsZWdhY3ktdHJ1bmsKKzc1MzkgN2RkZWQ3ODUxZmNhOGM0YjQ2Njc3ODRhYTk3Mjk0YTI5NzVhMGE2YSBsZWdhY3ktdHJ1bmsKKzc1NDAgYjZmY2U3MjQzYmEwYmE4OTZmMDc4MjI3MjhjNTUwMjA2ZDcyZTlkYiBsZWdhY3ktdHJ1bmsKKzc1NDEgNzc2MTZiMzAwMWVmOGY3ZTA5YzQ2MzljMzZjMjg0ZGQ5NzFkZWUzYSBsZWdhY3ktdHJ1bmsKKzc1NDIgNGFhY2E0MmEyYTE2Yzk1MTc0YjJmZmY3YTVjM2Q2Y2FlZjg1Yjg3OSBsZWdhY3ktdHJ1bmsKKzc1NDMgOGVjZjJkN2M5ZmIxYWRiNDM4NWNmN2QwZmRhZjQ0MzEyYmQxMjQxYiBsZWdhY3ktdHJ1bmsKKzc1NDQgZmEzMTQ3NmEyNzg2ZWU4ZjU0ZDBlNWMwOWU1ZWQwMTdmZWIxMTZlNyBsZWdhY3ktdHJ1bmsKKzc1NDUgZWIxMmY0MDQ2ZDBiZTBmMGRmNjRmNmY4MGM2YmU1MTAyMTYyOTMxMCBsZWdhY3ktdHJ1bmsKKzc1NDYgNDRiZGYwYjU2YzBiZDgzNDE0MzRjY2Y4YjlhMjM3MDhhMjJhMGUxZSBsZWdhY3ktdHJ1bmsKKzc1NDcgZDI0ODNjMjc3NDJjMTU0Y2M0NjIwZGY1M2U2ODk5ZTlhMTdlNzY3MiBsZWdhY3ktdHJ1bmsKKzc1NDggZTIxZjFkMjU5NWRlOGI5OWI4MGFkZGE2ODcyZWRmZGZjZTA4NDRjYSBsZWdhY3ktdHJ1bmsKKzc1NDkgMzI3M2FjYmU0NzZmZGFhNWZhYjg5ZjZhMjIzYTkyZDEzMTlmY2NmZSBsZWdhY3ktdHJ1bmsKKzc1NTAgNWI5ZDQxZjRjMDhjMTE1ZjgzODM1YmExOGExNzk4NWQ3ODlhN2NjNCBsZWdhY3ktdHJ1bmsKKzc1NTEgNGVkYWI0NzQ5NzRjZTA3NzY3MDY0NzJhMjNlNzljM2U5NGY0ZTQzYSBsZWdhY3ktdHJ1bmsKKzc1NTIgMjNjNGM3ODM4YWMyYWIzYTY2NzVjMWNhY2I3MWMwMGYxMjcwMWEzMCBsZWdhY3ktdHJ1bmsKKzc1NTMgN2Y0YjMyZTg2NTQ1NTcyNTJiNjdhZmUyZGM5ZWJmMzFlMTQ0MzhiNyBsZWdhY3ktdHJ1bmsKKzc1NTQgZDZiMjkyYTMzY2ZlZjUzYzc1ZWE0OWZjMjdjYmJkOGM5OTUzYzA0NSBsZWdhY3ktdHJ1bmsKKzc1NTUgOWE4YWRhZjU4Y2U4NjA3NmI2ODkzNTVjZDBkYjUwYjcyZDZkMTk2NyBsZWdhY3ktdHJ1bmsKKzc1NTYgMWI2MTliODExYzEwMzVhODE1MjNiNjBiMzQ4ZDcwNzU4N2E0NzdmYSBsZWdhY3ktdHJ1bmsKKzc1NTcgMmM4ODEyZWVhNjM3OTQxNTU0YTRiNjU2ZDRhOWUxNWFjYzAyMjAwYiBsZWdhY3ktdHJ1bmsKKzc1NTggN2FiMWFhMDhkMzQ4ZGIwY2ZhN2EzNTJkZDllYTQzNTliMzhkMWYxMSBsZWdhY3ktdHJ1bmsKKzc1NTkgYWZjM2U0ZTA4NzQwYjYzOGFjYzU0MDMzYTE2YTMzYmMxNTZhZmEwNCBsZWdhY3ktdHJ1bmsKKzc1NjAgZDM3MDY1Nzk0NjhlNTBkNmExYTExMTI1NzE4MWY2MTQ1MTIzNDdjMiBsZWdhY3ktdHJ1bmsKKzc1NjEgYWE3M2RhNjYxY2RmZmFlMDlhZjkzM2UyZWMyMTQ3MzQxOTJjOTA0MiBsZWdhY3ktdHJ1bmsKKzc1NjIgNmVkOGViNGI2NjRiMzFiZTE4ODgzY2UzNWUxMzJlMzE2Y2VkNzNmYSBsZWdhY3ktdHJ1bmsKKzc1NjMgZTQyOGQyY2ZlZDQwYjNhOWNmNjk5YTYxZDAwOTg5ODBlZWE2NGQ2YyBsZWdhY3ktdHJ1bmsKKzc1NjQgOTFmODYzMDZiMDdiODVmYWJkZjhmNTQ2YWI4YTgyNWE5ZWEwZTgzNyBsZWdhY3ktdHJ1bmsKKzc1NjUgYjY3YzAyYmQ1ZTIzNjBlNDg4OTkzNjc0OGRlNjE3YjMxM2I3MDIwMSBsZWdhY3ktdHJ1bmsKKzc1NjYgM2ZlZWM4NWJiYTliNjM5OWY0NDVlZDUyM2IzYjU3YzQwNGUxZDJiOCBsZWdhY3ktdHJ1bmsKKzc1NjcgY2I3YWFkZDlkOWYyOTI0ODRhZWU0ZTA2NGVkZjBhZTE3OWRhZGQ4MSBsZWdhY3ktdHJ1bmsKKzc1NjggZDk5NmRjNDJmZTY0MTVhZDgyMDk2NzJhOGM2NzM0NmZjNDg0Yjc0NiBsZWdhY3ktdHJ1bmsKKzc1NjkgMzhhZGJiMzlmMTVjZjU3Nzk1OTA4NDk4ZjAyYWM0NDU3ZWFkMGM3OCBsZWdhY3ktdHJ1bmsKKzc1NzAgMTE5MjJhMmVjYWNkZTRkODE4YzQ2MjFhNmUyNjgzMWUzOGFmMzhiOCBsZWdhY3ktdHJ1bmsKKzc1NzEgMzBjMTBiMjIyOTUzMThlYTllNjg3YmFiNWJlYjQ3ZjYyY2U0MTgwMCBsZWdhY3ktdHJ1bmsKKzc1NzIgNTdiN2EwM2EzMjUyYzBlNTNiYTdkZjI4YjlmMjQyNmZiOTIwNmZmYiBsZWdhY3ktdHJ1bmsKKzc1NzMgYTQ0NTg2YmQ5ZmFiM2Y3MDk1YTQ4MzcwZDkxNmU3ZWZiY2JjMmFiMSBsZWdhY3ktdHJ1bmsKKzc1NzQgYjQyMzFkNTkyMjgxZjI1YjBhNTkxYjYzMzBiODk5Mzc5NDE3ZWY0NiBsZWdhY3ktdHJ1bmsKKzc1NzUgMzIzMTAyNTFkNzY3NDA4NjQ5OGUwYjY1Y2Y4ZGMwM2RhMjk5NjFhMCBsZWdhY3ktdHJ1bmsKKzc1NzYgMjQ5N2M4YjA0MTAxN2M5NjY4NmFkMTMyMGJkYjFlNzk0MmY5YTA1MCBsZWdhY3ktdHJ1bmsKKzc1NzcgZWU3MGI0YzcxODk5M2I2MGZkYWI0M2QxOWUzODE1Zjc1YTU4YzkwYSBsZWdhY3ktdHJ1bmsKKzc1NzggNDkyYzBjYWUxZjA1MjI5YjExNmJhN2JkMTBjOTJjNmViMjRmOThkMCBsZWdhY3ktdHJ1bmsKKzc1NzkgNDEwOWExNzFjOTAxYTQxZjhiMzkxZGVmM2IwMWU0MjkxOTg5MWYxYSBsZWdhY3ktdHJ1bmsKKzc1ODAgMDBmZDY4NTdmNzZiOTM5YzViOWVhMDAwZDFjZjgzZDZhM2U2MWY1MCBsZWdhY3ktdHJ1bmsKKzc1ODEgOTQwODEzMTE1Zjc3NWI4NjI4OGNmY2RiMDgwNzMwNmQxZTNhODE4YyBsZWdhY3ktdHJ1bmsKKzc1ODIgZjliNDZiNTAzNzUxOWY0NDMzMzc0MmExN2JlNzRmZTM4NjI0YTEzMSBsZWdhY3ktdHJ1bmsKKzc1ODMgYTlhNmQ0MTZiOTQ1Yjc5ODkyMTdiYzg0OTBkNTgwZGRiNDM0OTgyMyBsZWdhY3ktdHJ1bmsKKzc1ODQgMGJiZjk3ODYxY2Q5YTE2MDQwNjUwMDFlMWQyMmI2MmU2MTQyYjg2NiBsZWdhY3ktdHJ1bmsKKzc1ODUgMDczZjFiM2FkOWQyYmFmNDBiNGNiZjAyYjZkMDI1ODEyODJhZGM5NyBsZWdhY3ktdHJ1bmsKKzc1ODYgMjFiODcxMzI1Yzg1MzRkMWIyODdiYTkwNzdmYzc2NjRlYzlmZGVjMSBsZWdhY3ktdHJ1bmsKKzc1ODcgY2E2Mzg4YmNjMDVhNWQ5MjhhNjI2Mzc3MjA0M2NlYWUwZGRhZGVkZSBsZWdhY3ktdHJ1bmsKKzc1ODggZmI4Y2VmY2VmZDgxZWEzNjkwYTAxMzYzOWVkMTE4OWY5NDA2ZGQxMiBsZWdhY3ktdHJ1bmsKKzc1ODkgYjljZTNjYzUwMDc2NzFhODc0MWNlNjVhMzQ2MjUyMjkxZDEzMzE2MyBsZWdhY3ktdHJ1bmsKKzc1OTAgZTNhYjQ4OTg4Yzc3OTg1M2MxMWI1ZGJlYmE5YTg4N2VkYzcxNmVlNCBsZWdhY3ktdHJ1bmsKKzc1OTEgNTA2NjY0NzY3NzM2ZWZiNDAyMGU3Y2VjZGY2YjJjOTc2ZjJkMThhOSBsZWdhY3ktdHJ1bmsKKzc1OTIgMmJiMGJkYTE1ODVjN2ZhNTQ5NzM1YTA5ZTUwMmQwOGRlNWFlZGUzMiBsZWdhY3ktdHJ1bmsKKzc1OTMgMDAyODY1YWY1NWU1YjU4YzhjMzExZjkwNmE2ZmU0MDM1MTA0NWI1MyBsZWdhY3ktdHJ1bmsKKzc1OTQgYmRhMDFhMzc0NzYyMjViYWY4MDFjZjA4MTE0NzUzZDU4MGE4MTRlZiBsZWdhY3ktdHJ1bmsKKzc1OTUgYTQ4ZjM2NzhmOWUxYThkZTkzOTRmZGIzMGY0MjZkYTI3ODQwMTZlZSBsZWdhY3ktdHJ1bmsKKzc1OTYgMmU2ZWIxYzcxNWNlNWFjMWU3OTQzNTBmMzNiZjdhMTI1YWFiZTcyNSBsZWdhY3ktdHJ1bmsKKzc1OTcgNTdiMGYxNjE5ZTI4MjQwNDJhN2MxYTVmMzY3NjgyOThlNGIyOGY4YyBsZWdhY3ktdHJ1bmsKKzc1OTggMDVmZmZkNTViMDE0YzAxNTBiMDJjOWUxMDVhMTE4MjIyYjMyNmVhYiBsZWdhY3ktdHJ1bmsKKzc1OTkgMTcxNTkxYjM5ZjYzMmVkMGI0NWJiYWMxNmRjYzg5ZTEwNzcwNzI3YiBsZWdhY3ktdHJ1bmsKKzc2MDAgNTRhOWFkY2EyMTVjNmUwYjFhNzQ1YmJjYTc1ZDc1YmQzYjEwMmNhYyBsZWdhY3ktdHJ1bmsKKzc2MDEgN2I5NDBmMjk2MjFiODVmYjliZGU1YTdhNTUwM2FkM2Q2YmJjZmUyNSBsZWdhY3ktdHJ1bmsKKzc2MDIgZjIyMjEzMTkyNTMxNjEwYzdhNDZiNDc2M2VhYzc4N2Q0ODRkOTA2OSBsZWdhY3ktdHJ1bmsKKzc2MDMgYmYxYmQ2NGY4NWUwMWYyOWVhYTRlYzI3YjU0N2ZhZmFiNTdjYzRjMiBsZWdhY3ktdHJ1bmsKKzc2MDQgMTAyZTI5MTJkMGQxNzc2YTc2MmYyZmQzZDhkZDI4YWM0OWY4YjIwMyBsZWdhY3ktdHJ1bmsKKzc2MDUgMGJmNzM5NGRiYTIyMDViMDE1NDIzMjE3YzY1YzA1NzNjOTdkZWYyMiBsZWdhY3ktdHJ1bmsKKzc2MDYgZWM0NTI3NmE2ZGFkYjliZTEzZGJjYTVhNTIwYzMwNjRkZDljYjhhYSBsZWdhY3ktdHJ1bmsKKzc2MDcgMGZjMWRhY2RhZmQ3MzhiZGUzNzUyMmY4OWFkOGVlZmU5YmI5MDY0NiBsZWdhY3ktdHJ1bmsKKzc2MDggNjY2MTUyYjc3MDI3MTA5ZjMzYzcwMjhkMzg1YzdmYTQ5YjhjMGY0YyBsZWdhY3ktdHJ1bmsKKzc2MDkgZGVmMDNkM2I4ZGRiZjhiZDIxZjkyYjFkOGViODIzOWM3MzcwOGY5OCBsZWdhY3ktdHJ1bmsKKzc2MTAgN2ZhOWE2NDQ0ODNlODJlOWIzMWRlYjU3YWZiNjg5YzkxYjM5NzkyNiBsZWdhY3ktdHJ1bmsKKzc2MTEgYTUxM2Q4M2MwNmNiMDAxZjBkM2FmZjRmZDVkOTY3YWM5ZjgwNWZkNiBsZWdhY3ktdHJ1bmsKKzc2MTIgNDBlYjhiMGVlMTkyNjFiNWMyYzkyMjRjNTUwYzFiMjEyMTI3ZTFlMyBsZWdhY3ktdHJ1bmsKKzc2MTMgZjkzZWMxYWMxN2FhNzE5MGY2MDgwYjUwNDA5OGYwMGZhODFmYTI0YyBsZWdhY3ktdHJ1bmsKKzc2MTQgOTIxNmY1YzI1ZTRlZjc4ZTY3NzBiYmVjZjg2MWNjY2U2MjU4ZDY5NSBsZWdhY3ktdHJ1bmsKKzc2MTUgOGZiZWQ3OGU4MWU3MTIxMjg4N2I5YWI3NzljYmMwYWY0MWRkNWY5NSBsZWdhY3ktdHJ1bmsKKzc2MTYgYTRjOGI4ODcxMzc2MWZkNjY0YjBjYWU2N2Y4NjViZWQ5MmUzNzk0ZCBsZWdhY3ktdHJ1bmsKKzc2MTcgOGE5ZjE1NzkzMjM4MmVmZmYyZWY3MzM5NDUzN2I2ZjQ0ZDIwODgyMiBsZWdhY3ktdHJ1bmsKKzc2MTggNjk1MmViOWMzYTZmN2YxNTk5NDYyYmVjYTczNWQ1ZDAxZDVjMzAzZSBsZWdhY3ktdHJ1bmsKKzc2MTkgNmIzMzdlYzkyYmQwZDBhNTYxNDJlODAwOTc5ZGRiMGZjM2JjNmU3MiBsZWdhY3ktdHJ1bmsKKzc2MjAgMWU5NWZhYzg0YWIzMmY2NDY0YmJjMzJjYjVlZDUxZWMyY2ZjNjczYyBsZWdhY3ktdHJ1bmsKKzc2MjEgOWNlZmQwNGVlNTNhNTJiOGY2MTdhZDc2MzliNWMzMDc3Y2M3YjU0NSBsZWdhY3ktdHJ1bmsKKzc2MjIgYjIyN2I5YWY1ZjUzZGJhMDQyZmQ0MzVmNzQ3MDk4ZDFkMmY4NzVlMSBsZWdhY3ktdHJ1bmsKKzc2MjMgODllZGFhOGVkNTBmZTdjN2MwZTBhMGY0YmNmZGIzYTI1NjUxOThjYyBsZWdhY3ktdHJ1bmsKKzc2MjQgNzgwNjNiYWUzZmQ3NGJiNGY2M2FjYTVlZDJjNmFmZTc4ZGE4YTU4ZCBsZWdhY3ktdHJ1bmsKKzc2MjUgNDY2NWUyODQ5YTRhYzdiZWNkYzk5NGNlM2NlYzgzYzI0ZWZmZDJmOSBsZWdhY3ktdHJ1bmsKKzc2MjYgMjgyNjkyNWE4NDJlMjk4NmM4YjE3MDZiM2RmYmI2M2JlYTlmMzgwNyBsZWdhY3ktdHJ1bmsKKzc2MjcgYmQ3MDhmZTE5MzRiM2I4Y2I2YTg5YTkwMGMyNTVmMGYyY2RkNGQwNSBsZWdhY3ktdHJ1bmsKKzc2MjggMWFlN2UyZWJjMmYzMzFiMjg5Zjk3ZWQ5OGRhMjg0YjI2MzU3NjJjNCBsZWdhY3ktdHJ1bmsKKzc2MjkgZjYyMTlkNzc1NDgxYmExNzUwMTZlN2YzZDFkMzUzYjRhNmRjNTA2YSBsZWdhY3ktdHJ1bmsKKzc2MzAgYjU2NmU3NzI4MWNjMTRkNTkwMWRlOGY1NmJkMGI1OGIzNGU2NGE1OSBsZWdhY3ktdHJ1bmsKKzc2MzEgNDE3NDYyYWI4YjAwMjdmYjBkNDRkMTIzYzQ1Mjk0Nzc0NGZjNGM3NyBsZWdhY3ktdHJ1bmsKKzc2MzIgODI5YzQyODkzMTgxMDRmMGI4MDI0YzBlYWJiOGExYzhjOGE3NGQwNCBsZWdhY3ktdHJ1bmsKKzc2MzMgMzUxZTk1YzUxZGRiMWFjZGY1MTE1YjlkYjczZDBkNjAxMDllMWU4YyBsZWdhY3ktdHJ1bmsKKzc2MzQgZWY4MzUxZWE3MmMxYzYzMjNmMjMxYzBkMDg0NTZlNWRkNDI4YjYwNiBsZWdhY3ktdHJ1bmsKKzc2MzUgZGMzM2UxMWExYzI4ZGY1ZDZhMzNlMjgyOTg2MDM2ZTA2ZmQyODA0ZSBsZWdhY3ktdHJ1bmsKKzc2MzYgNWJiNzBkMmU5YWRhZGQxOGViYTFhYWFhZTlmYmZmNDU3M2ZkMWE2OSBsZWdhY3ktdHJ1bmsKKzc2MzcgNzEyNGU0ZWU0OTk1NTc2NDViMDcxYjY2NzYwY2Q4NTAzOTYxYmRkMCBsZWdhY3ktdHJ1bmsKKzc2MzggOTA2M2Y2MGVhMjhkNDE5MmY5OWQ3MTYzZGE1YzA4MGRiNzE5ZWFmZCBsZWdhY3ktdHJ1bmsKKzc2MzkgOGMyNzdmMjliNTM1ZTBiMjEyNTI5ZmQ3MTA5YjllNGJiMTNiYzc0NCBsZWdhY3ktdHJ1bmsKKzc2NDAgNGQxNWJkZjFkYjljMDA3MjczNWU1NjhkZDgwZWExNzM2MzBhMjc3NiBsZWdhY3ktdHJ1bmsKKzc2NDEgNzE1MWJiNzI3Nzc2N2VkMWU4N2Q4NGI1NGJiOGM4N2I2NmUxNzk3NSBsZWdhY3ktdHJ1bmsKKzc2NDIgNjFmODliZWJhMWFhM2M0YmYwZmRiZjEyMjkxNDc3OWVlODgwODA0OCBsZWdhY3ktdHJ1bmsKKzc2NDMgZGZmM2U1MDZjOWU4ZDQxZjZmZTFkZWNmNDQ1NGQ5YjcyZTE4ZTk5MiBsZWdhY3ktdHJ1bmsKKzc2NDQgMmVhOWM0MjVhNzY3N2YyMjk2YWM5ZjQ2NjI4MzlhMjZlMzNkMDEwNCBsZWdhY3ktdHJ1bmsKKzc2NDUgZjVkNzA3Y2U0MjIzYzE3M2VkZjhlNzhkMzM2MWY3ODRmYjk1YWQ1NCBsZWdhY3ktdHJ1bmsKKzc2NDYgYjFmYzRlYjJhYzVhOTQ4ZmIxOWE4ODlmYzBkNmU4NDY2OWU5ZWEwYiBsZWdhY3ktdHJ1bmsKKzc2NDcgMzFiMGU1ZjBiYWRmMTk2NjI4NzI0ZDZhMGZiMGQxZjA4NTNiZTFjNSBsZWdhY3ktdHJ1bmsKKzc2NDggZmY0ZjhmYThhMjczYTAyOTBmMmY4YjFmOTRjMDliNDY0MDg1MWUyMSBsZWdhY3ktdHJ1bmsKKzc2NDkgYzRlNWVmOWJjMzYxMjQ2MTg1NjMwZDIyMTZlZDI1ZGYyNmJjYzFmNiBsZWdhY3ktdHJ1bmsKKzc2NTAgMTk3ZTMyMDZlM2YzMDc0N2U1YWM2NWQwMDJkODliMjQ1YWQxZjhlNiBsZWdhY3ktdHJ1bmsKKzc2NTEgMmJkOTIwZTdlNWM3ODg1ODVlMjM5YjQ3YjIwOGY0ZWYxNzIwZTk0YSBsZWdhY3ktdHJ1bmsKKzc2NTIgYjE4ZTAzYmE0ODE3N2YxZmE0MzY2NDVjNmNlYTBhNGFkNmY2OTQ2MSBsZWdhY3ktdHJ1bmsKKzc2NTMgZjk3NDM2NGYzYTg3YTE3ZWEyMThjODc4ZDljOWI4YzBhOTdiZmU0ZCBsZWdhY3ktdHJ1bmsKKzc2NTQgODYzZmZjMmFiNzZhOTk1MzZmODdjN2FjNWQxZmZjMDJiOTgyYzkzNSBsZWdhY3ktdHJ1bmsKKzc2NTUgNmJjNTYyNTljYzRjYzI3Zjc5YmY4YWQ3Y2E4ZDVhNjUyNWQ1YWYwYyBsZWdhY3ktdHJ1bmsKKzc2NTYgOGEwYjgwZGM2ZTcxMTQ4NjkzNzJkMTU1MmJmN2FjMjdiMzZkMTEzZiBsZWdhY3ktdHJ1bmsKKzc2NTcgZTAzNjFkNTQyMWZmMGI0NTE0ZGQ1NTc3YmNiMGI0ODhkZjhhM2JhZiBsZWdhY3ktdHJ1bmsKKzc2NTggNjM2NzU3ZTgxMmE0YzRiZmE0YmRhY2FkMGE3MDZhZGM2ZjNlM2JhNiBsZWdhY3ktdHJ1bmsKKzc2NTkgNWNmODNhZDMyNTFlNWY1YjFkZmYwNmI3Yjk3ODk3NzhiYTA5MTNlMSBsZWdhY3ktdHJ1bmsKKzc2NjAgYzE3MjllMTQ4OTE2YjMzNTViNTc0NDBiNjFhZTMxZDZjZGQxMGU3NSBsZWdhY3ktdHJ1bmsKKzc2NjEgYTE2ZGVjYmI5NzE2NTg1YTU4NzQ4YjhkMmExMTdiYjJkNzdjNTU2MSBsZWdhY3ktdHJ1bmsKKzc2NjIgYzFhMWMzMDZhNDI5YjVmY2ZiODYxZGM2MzA3ZWRiOGViMzQ1NTk5YiBsZWdhY3ktdHJ1bmsKKzc2NjMgM2VjM2Q4ODA3ZjllODg5NjYyZDIxNTBmN2ZhZTdlODk1MzkwOTY4ZSBsZWdhY3ktdHJ1bmsKKzc2NjQgYmFiOTE5NmE4ZjMwYzYyNDE1NzY5NjMxYTYzMjIxNjBhYzRiNmMyOCBsZWdhY3ktdHJ1bmsKKzc2NjUgYTc5ZWNkNWFmN2U1YjQxOWI1MTViOWUwNDA3NjE3YWNkNWFkMDU0YSBsZWdhY3ktdHJ1bmsKKzc2NjYgZmEwZmMyODhiMmM5MGI5NjEwZWVmNmI0NjU0N2YzMzQ0YTkwZjcwYyBsZWdhY3ktdHJ1bmsKKzc2NjcgYjdhYzdiNDZiMTBjMDEwNWI0NWI1ODRiMzJlZjdkMmM0NTA5YThjYyBsZWdhY3ktdHJ1bmsKKzc2NjggZjBmZDEyZDc2ZTA3OGZmNWJiM2JmNGE4YTZmMTc5NGEwNjkwODBkOCBsZWdhY3ktdHJ1bmsKKzc2NjkgNTJmM2RjNDFmNmM0ZmNlYmJkZjk3ZWI1NzUxYjBmZTgwMWJhZDQ2ZSBsZWdhY3ktdHJ1bmsKKzc2NzAgYTg3NGY1ZDMwMzhlZGJkNGYxOTJhNDBjMzZmYjQzYjZmZmY3YThhZiBsZWdhY3ktdHJ1bmsKKzc2NzEgOGVlODFlZjRlOTgyZjRkZDY4ZjA4MWI1NjU1NDE5ODkxNzAxM2Y4ZCBsZWdhY3ktdHJ1bmsKKzc2NzIgNzRjMTI3MDRhMGJkMGM0OWU4NzFhZjA0ZjhlYTFiM2MzNjQzZmU5OSBsZWdhY3ktdHJ1bmsKKzc2NzMgZTBhNjA1ZTY2YmVkYWFkOGY5NWFmMTVkZGI4ZGRkZjkxNWExNTJmNyBsZWdhY3ktdHJ1bmsKKzc2NzQgN2UzODBkZjAwZDAwZmExYzM4YzBlNjJiOTJjYTljNDgzZGRiNDYzZSBsZWdhY3ktdHJ1bmsKKzc2NzUgMDI0ZTczODY3NGE1Y2RhNzhmN2JkZDdiMjhhYzc1ZmQ0YTQyOWY1MSBsZWdhY3ktdHJ1bmsKKzc2NzYgNTg3OGE1YWYzMTQ4ZDViZmFmYTBjMmFhZmU2OGFkM2Y3Y2FjZGY0OSBsZWdhY3ktdHJ1bmsKKzc2NzcgYWY5MmQ3NzkxNTJhYzI0ZmZiZTc2NDRhYTEyM2I5MDBmMTJjMWMxNSBsZWdhY3ktdHJ1bmsKKzc2NzggMDVjN2Q4YjRmZmQ2ZTRkZDliM2QwMGMyNjM3MTczMTg2YjdiODI0NyBsZWdhY3ktdHJ1bmsKKzc2NzkgYzI0OGEwN2U1MzQxNjRiMjYwODBhYmI5ZTEwNjljNjZkMDZhOGY4MSBsZWdhY3ktdHJ1bmsKKzc2ODAgYjM5MjAzOTgzZGU2NjExMWRmOTNhYWNiMjlkY2Y2YzQzMzc0NDVhMCBsZWdhY3ktdHJ1bmsKKzc2ODEgYmQ1ZTJjMmMxZTA4NzJiMTFhNmMwM2U4NTdmODNiNzlkMjJmOGVhMSBsZWdhY3ktdHJ1bmsKKzc2ODIgMDBlYmZhMzNjYzA3NjMwZWVkYTczYTBkNzVkN2Y1NTc1MGJhMGZiYSBsZWdhY3ktdHJ1bmsKKzc2ODMgOTNlODdjYWM0ODNlNWJmZmQ2NzM4NDI3YzliOTk1YmQwMTQ0Mzc0ZiBsZWdhY3ktdHJ1bmsKKzc2ODQgMmVjOWM5MzNhZmI4NzQ2YTQwMjQzOWMzNDE2Yjg2OGMyNDVlMmQ1YyBsZWdhY3ktdHJ1bmsKKzc2ODUgZDRjNmI0YjA1NDhjMWI2MDQzODA2NDNlYjc3ODg4OWMwOGUzYzU1ZSBsZWdhY3ktdHJ1bmsKKzc2ODYgMzE0ZDBkNjAzZjA2ZWU0ZTI3Mzk2ZjhiYjRkODlmNDRkOWM0MmJhNyBsZWdhY3ktdHJ1bmsKKzc2ODcgMWYzOGQ1ZmIzZDIzODgxYzk5OGU5ZjhjYTE4MGQ5NjIwYmUxNGE5ZiBsZWdhY3ktdHJ1bmsKKzc2ODggNWI0MDdlMGNiYzcxNWVhNjY3MzEwMWFjZTVlM2UxNTQzZDc2OTQ4NiBsZWdhY3ktdHJ1bmsKKzc2ODkgOWMxNmJkZjE2MGZmNjhmYmI2Y2Q3NDFmNTU1YjkwM2VjMDhiMzAyMyBsZWdhY3ktdHJ1bmsKKzc2OTAgZjcwMDQyYzE5YzU3YTNiNzZlZTg0OTZjYjQ5MTE4MWRmMDgzOGVhMyBsZWdhY3ktdHJ1bmsKKzc2OTEgOWJmNjUwZjIzZGE1NzEzMGI1YjI4Y2MxNjdkMDIxZGJiNjFlY2M3MiBsZWdhY3ktdHJ1bmsKKzc2OTIgM2FiN2Q1OGMyOTYzMWE2YTk1YTBmMWM2M2E5ZjY2MTJiY2EyYzBkYSBsZWdhY3ktdHJ1bmsKKzc2OTMgZjViZmI5YzRjMzY0MTNhZjQyYmE3ZGJmNDA4OGZmODA5MTM5Zjg0MiBsZWdhY3ktdHJ1bmsKKzc2OTQgMzM0ZDUyZDZkZjVkYWI0ZDJlOWI2ZGU3NDk2MTg1ZTYyNTg5MTQzZCBsZWdhY3ktdHJ1bmsKKzc2OTUgZTFmNjEzMzIyYjIzYzI3ZjY5NjBlMDFjNGQwMDg2MDE0NzJlNmZjNiBsZWdhY3ktdHJ1bmsKKzc2OTYgZDk3MzNiNGY4MTFmNDc1YTY0YjYwODNjNzg5MWY4NzQxYWYwZDZlNCBsZWdhY3ktdHJ1bmsKKzc2OTcgNGQ4YjdkZDVkZTJhMjgwYWY1MjQ0ZWY5YTZmNWY4N2UyNTRjZWMxYSBsZWdhY3ktdHJ1bmsKKzc2OTggYmM4ODMyYjUyYjUwYjhjYjE5NmQyOGFiYmM5Njk2NWIwODE1NmVkNiBsZWdhY3ktdHJ1bmsKKzc2OTkgMDU3NzRlYzM5YWQyMDViZGJkZjQ3NTg5MDk1NWMyOTkxZjVkZTY3MyBsZWdhY3ktdHJ1bmsKKzc3MDAgMWIxNGM1YzFiZTJhNTI4NTcyYTI2ZWYxODExNjJiYmJiMGZhZTcwMCBsZWdhY3ktdHJ1bmsKKzc3MDEgODRjOTNmNjAxNzE5NGVhODUwMGI3MmFhODdkZmYxYzgzYjNkZmE1ZCBsZWdhY3ktdHJ1bmsKKzc3MDIgOTc4NTJmNGViZGU2YjA0NDFlYWQ5N2ZiZDVkYmUwYzUwYjE0YTYwNiBsZWdhY3ktdHJ1bmsKKzc3MDMgNTllOGEwMmE0Nzc0ZDg2YTU1ZTNjNDAwMzJkYzQwZjU4MWZkNjA5MCBsZWdhY3ktdHJ1bmsKKzc3MDQgNzRjYWRkZjRiMjhhNGUyODQwNzVkZjlmM2E3YzQ3YjgxZjZlOTQ0MyBsZWdhY3ktdHJ1bmsKKzc3MDUgMGU2MGRlMmE0MmFmNzUwYzVkY2Y4MGNhOTU1MGM1NzVjNzAwODJkNSBsZWdhY3ktdHJ1bmsKKzc3MDYgOTMzNDRjYmRmNTQyMmEzNjhhZGUyYmIxOGJkNTkwZDg0OTZhMTkxZCBsZWdhY3ktdHJ1bmsKKzc3MDcgMGE1Y2VhNDI3YTlmYmJhZTAzNzYxY2I4OWUyNjczMDAwYzMwZmVjNCBsZWdhY3ktdHJ1bmsKKzc3MDggYjc0OWQyZGQ3NTgyODgxZTAxYWNkY2E0ZjRmMTM2ZThlNDZiYjllZiBsZWdhY3ktdHJ1bmsKKzc3MDkgMDdlZDUyZTIwMGRiNjk2OTk1NjJmZmYzMzU4MWMwMTczYTQwZWFhYyBsZWdhY3ktdHJ1bmsKKzc3MTAgNGYxZmE3YjY5YmE3NzkzMzZlOTk2NjVkYWFhOTE0ZjY5MmUzNmI5MyBsZWdhY3ktdHJ1bmsKKzc3MTEgYjRlNjcxYmMxMzMxMWFhMDhkMGViMWUzODlkZjg3MDIzNTU0OTE5YSBsZWdhY3ktdHJ1bmsKKzc3MTIgMTIzNzNiYTI0ZTVkMzcyYzZhNTVjYjhjNWRmOGRkYTc3YWE3OTY1ZiBsZWdhY3ktdHJ1bmsKKzc3MTMgMTUyODhjODM0M2E1YTYwODg2Y2VjMTRlMTFjMGIwMWQ0NDBhOTllMCBsZWdhY3ktdHJ1bmsKKzc3MTQgMjc2MzU0MzdmYTdhMmQ3ZDA0ZGNlOTk5M2Y3Y2VmZDU1YjFkOTJlMyBsZWdhY3ktdHJ1bmsKKzc3MTUgYTMyMzM4NjRjYTM4NWZlZWUwN2NiN2U0Y2NiOWQzOWQ1OTZiNGU4MCBsZWdhY3ktdHJ1bmsKKzc3MTYgYjg5ZjUyODIxYzUyZTg4YTU2OWI2MDVlYThjZDljMGEyNTU3M2EwNSBsZWdhY3ktdHJ1bmsKKzc3MTcgYTUwZGY3ZjNhMTBhMzNkMmE3OTM4NmQ4MmUxZDhhNDFkYzJmNzQ2YSBsZWdhY3ktdHJ1bmsKKzc3MTggNGYyNTFiOGUzMjhmNWI1ZjlhNzdjYzc5MTc3NzAyYTQ1ZDY5MDMzMyBsZWdhY3ktdHJ1bmsKKzc3MTkgMjQ3MTM5ZDIwMGU4Yzc4Y2MxMTY3ZGNkNGZjYTE1Y2JhODdmMTZhZiBsZWdhY3ktdHJ1bmsKKzc3MjAgYzVmZDMyNzA1N2M2YzM1NGE3YTI2ZmFkYzNhYWFmMTliZWRkYTNhZiBsZWdhY3ktdHJ1bmsKKzc3MjEgMjMzMzBhMWI5NTk0ZDkyOGY1ZTllNmM1MmMyY2I2NzhiMjQ3YjcyZSBsZWdhY3ktdHJ1bmsKKzc3MjIgNmRiOGFkZThkOGE5ODBkNTY4YzIwMWYwYjY5MDNjMTJmYWY4MWJiYSBsZWdhY3ktdHJ1bmsKKzc3MjMgYTU0NzIwZjhkZDM2Y2ZmYmY5ZWQ0MzY4ODJlOTUzNzBhZGI0Y2NiZCBsZWdhY3ktdHJ1bmsKKzc3MjQgMTMwMDU4NzJkMDUzNDZmYjAxYzc4ZDhmNjA1MTM2NGU1ODgxYjQ4YyBsZWdhY3ktdHJ1bmsKKzc3MjUgNTJlM2I2M2YyZGNhMDBlZDYzN2YzOGI0OTQ0NGU0Mzg0YWFjNmQwNCBsZWdhY3ktdHJ1bmsKKzc3MjYgMWJkZGJhMmYxMDBlNDhkYTA1Y2Q1MmFiODI3MmJiNmEyNWNiNTUxNSBsZWdhY3ktdHJ1bmsKKzc3MjcgMmZkOTI0NmIwZWU4MjEzMjhkYTMzOWQ1OGJhMTU2MjgyZTc2YTdlMCBsZWdhY3ktdHJ1bmsKKzc3MjggNmZjZjIwNzQ5OGQ4YWJlMTcxZjM4MDZhNTAyMzA1YWRiMjY2ZTA2MyBsZWdhY3ktdHJ1bmsKKzc3MjkgZmUxY2NiNGU0YzFjNzMyMDAyNzYyYzJmNDZjMDMyOGI5OTJlZDNmNyBsZWdhY3ktdHJ1bmsKKzc3MzAgZDA4N2NkMDYwYmFkZGE3NmU3ZWM1MTk0YTcyZDBjYzk0M2M2MWQzYSBsZWdhY3ktdHJ1bmsKKzc3MzEgNzE2OTRhMTcxMzI0ZmY1ZTgyYjNjZmQ1M2UzYmNlMmZjMTdiMDNkMCBsZWdhY3ktdHJ1bmsKKzc3MzIgODEyODM3OTVmMTZhOGEzOGUyODYxZGFhMDdlOTdmNjUyNGJkODAyNCBsZWdhY3ktdHJ1bmsKKzc3MzMgNDBkMmZkNDcyMjg0YTRlNGNmMGVmNjAzMTBmOGYxZGNjOWIzMTk3ZSBsZWdhY3ktdHJ1bmsKKzc3MzQgNzFkZjIxYzBhMzRlZDRiYzQ0ZDdmMzk0ZGM5MDY5N2YxNjI1ODMyYSBsZWdhY3ktdHJ1bmsKKzc3MzUgMWU1ZDYyOTNjNTI0ZTNlNWI5NDI0N2E0Mjg5MjAwOTVlOTgyOTI1MyBsZWdhY3ktdHJ1bmsKKzc3MzYgNzI5ODZiNzE2ODI0NjJhN2YzNDRlYzFjODlhYzAxYTk4NjMzYjI2NyBsZWdhY3ktdHJ1bmsKKzc3MzcgNWFiYzFhMzZiZWRkYzczOTYyY2M5NTFiMDE3ZDRiYzE5Mjg3NWQ2MSBsZWdhY3ktdHJ1bmsKKzc3MzggODZkNjBjMzRlYmRlNzc4NTc4ZjFlMzVkMWU5NDcxMjJhNDUyNDgwNCBsZWdhY3ktdHJ1bmsKKzc3MzkgMzg4NzhmMWNkNGYxZmVjOTk5N2I0M2IxOWY1ODg3M2EzZDNjYTM1NyBsZWdhY3ktdHJ1bmsKKzc3NDAgM2MxNzg4YWI5NzYxMDZmMzAxNjA3NzA4NGMyMjMyMWQ5YmU3MDRiNyBsZWdhY3ktdHJ1bmsKKzc3NDEgMWVmYzQyNzNmZGI3ZTM0OTBmOThkNzQ3YTg0YjZlMjJmN2Y3ZGY5MiBsZWdhY3ktdHJ1bmsKKzc3NDIgZDQxZWVlNmQyZmY3NjkzYmFmNGRjMDBmNWQ0OTJhZmQ4NjFlNDY1MSBsZWdhY3ktdHJ1bmsKKzc3NDMgNGYzMzFmNWJiNWYyYTRiOTIxOTk0OWQ3YTY5MzRjYWU1ZGJlY2JkNiBsZWdhY3ktdHJ1bmsKKzc3NDQgNGU1Mzc0NmU1MWFmOTBhMTcyYmU0NzE2YTMwMDgxYWRlOGM5NDM4NyBsZWdhY3ktdHJ1bmsKKzc3NDUgZGU5ZDBjNTI0OWIwZTJhN2Q0NjFlY2ZkZjFmYjM1MDg5ZGJlZDFlNiBsZWdhY3ktdHJ1bmsKKzc3NDYgYWZmNzA2MzM3OGE4YTYzOWM5NGQzNTA2NDQ4NjhjODk3ZTY2OTQ2ZCBsZWdhY3ktdHJ1bmsKKzc3NDcgYjE1OWY5OGNiZmVmYmQ2NTE4NDQxMDcyYzQ2MjkyYWQyNzk0MDY2ZCBsZWdhY3ktdHJ1bmsKKzc3NDggMTE0OGU3ZWJjYTM1NGIyM2VmMzgwY2M5YTIyNDU3ZmU1OTYyYTA2MSBsZWdhY3ktdHJ1bmsKKzc3NDkgMGQ2ZTcwYTVhYjRiZDFkNzJhZmZjMzBlNmMxMWM4NGJlYmZiMWE5ZCBsZWdhY3ktdHJ1bmsKKzc3NTAgMDk5ZGJjNjg0YzdiZTQwY2Y2OWY5NmQyODM0MmI0YjcwZDYyNzE0YiBsZWdhY3ktdHJ1bmsKKzc3NTEgYjdjYjY5NzY4OTNkODVmODkyMWNkMmVjMGU0NDA2NzUzOWMzYWY0NiBsZWdhY3ktdHJ1bmsKKzc3NTIgN2RmNWEwZDFmNTIzMGJkZjFhMzRjMGVkYzYwNDU3MDBkZGY3NGVkYyBsZWdhY3ktdHJ1bmsKKzc3NTMgMDFjM2U2NGJjODI0YWFiMGFiZDE5NmU0ZmE0MWU2MTFkMzhjNzk5YSBsZWdhY3ktdHJ1bmsKKzc3NTQgMTYzNzJhNGM0YzE0NWM2OWNkNTFhODcwZjhjYjFjY2ZhZjk2ZGMzYyBsZWdhY3ktdHJ1bmsKKzc3NTUgZThmOGNmMzU4MDU0ZWQ2YjZkODljNDhiMzZmYzI4NWUxOTNmNWUwYyBsZWdhY3ktdHJ1bmsKKzc3NTYgNjA3ZmEzMmZjMDRhMWRhM2NiOWEwZDJkMDc1ZTUzMjY5ZjUwOGRmYiBsZWdhY3ktdHJ1bmsKKzc3NTcgNTI1MGY0MDlkNTU4NzIzMWUyZDg2ZTY5NzYzN2I1ZGViNGM5Mzg2YiBsZWdhY3ktdHJ1bmsKKzc3NTggODJhM2ZiZGEzMzYzNTBiM2E0YzM1YTYxN2RiODk1MTcyODQyYmFjMSBsZWdhY3ktdHJ1bmsKKzc3NTkgMDJiMmVkZjU1YmFmMzlkZjk0NjVhZDhjNjRiZGU3MTA2MDNiYmY1ZCBsZWdhY3ktdHJ1bmsKKzc3NjAgZDJjOTk1ZWM0MjkwMTAwOGRjMWVmOWQzNGM5MGJhMDZjNzQ0ZDYzNiBsZWdhY3ktdHJ1bmsKKzc3NjEgZmJlZGE2ZjQ2ZWJiMzhhYjdiYTUyNjRjZDRhZDM5ODg2Y2QyMmMyOSBsZWdhY3ktdHJ1bmsKKzc3NjIgNWFmNzY2YTFiNTMxMjUwZmI2NDg4NzgxNjA4NThmODk3OTNkZTMxMiBsZWdhY3ktdHJ1bmsKKzc3NjMgMGYxNzExYjdkMzY3ZGZmYmI5YzUxNDI4ZjQ0MTY4YWFhOTU5NDRlOSBsZWdhY3ktdHJ1bmsKKzc3NjQgNDdkM2QzOTZkNGVmOGEyMWE2MWQ5YzlkNGVlZWRjODNiMWQwZTQyZSBsZWdhY3ktdHJ1bmsKKzc3NjUgZDMyYjhmNGQ5ZDMwOTIwY2U4MWMwYWNlMWUxMjdhNDAzNzdjZWM0NSBsZWdhY3ktdHJ1bmsKKzc3NjYgYTc2YTNhMzlmNmJjZmI3N2VlYzI4YWMwYWU5ZjM0MGJkMzcxZDQwYyBsZWdhY3ktdHJ1bmsKKzc3NjcgY2E1NjhlNWViZDE5YTM4MDU1ZmNjZTcyYzU0YWI4OTAxZjhkMWZhMSBsZWdhY3ktdHJ1bmsKKzc3NjggYjBkOWRlMzc4NmVjMzI5YzBkNjljMDRkMTRiMjY1NjYxNmJmMWI0MyBsZWdhY3ktdHJ1bmsKKzc3NjkgNTdhMmVkMDYzMGNkODU5ZThhNTg4Y2NhYmI1N2FkYTcyOTQ4OTg4OCBsZWdhY3ktdHJ1bmsKKzc3NzAgMmYyNzYwYzNkZDkwNWQ0M2ZkZDUyYzM2MzhhMDRiYzBjNGZlZWIyNiBsZWdhY3ktdHJ1bmsKKzc3NzEgN2FhNDU2NjAxNGM2YWMwNDkyYjk4ZTllMmVmZGJlZDUzOTJiMzYzZSBsZWdhY3ktdHJ1bmsKKzc3NzIgN2VjNzMzZjljMzA1NzRiZWQyYmVkODRkODFjOTUxOTJhNjkzYTUyZSBsZWdhY3ktdHJ1bmsKKzc3NzMgOWEzMmJkOGY0YWM4YTFjZTUwYjA2OGI1MWIxOTdmNDBjYjg5ZThiYiBsZWdhY3ktdHJ1bmsKKzc3NzQgYjUyM2U2ZTdhYzYxMmFkZTFlMjIxMDQ1NWIxMzRkNjUyZDExNzM5OSBsZWdhY3ktdHJ1bmsKKzc3NzUgZTc3OTQyNTYyZGQzOGU1MzVlNjZiOGM5YzU0OTRkMTY1NDk3ODUzNCBsZWdhY3ktdHJ1bmsKKzc3NzYgZmI4MTY1MzA0OTM5MzQ1ZGEzZWU3NWVjZGM5YmRhZGVmODg0OTE1NCBsZWdhY3ktdHJ1bmsKKzc3NzcgNWUzYmNmNGViZjI5ZjQ4Y2NjY2E1Yzg2NmM2NTgyZDRjYmY1NmEzYiBsZWdhY3ktdHJ1bmsKKzc3NzggOTY0NTYyYmQ3NWNjMzc2ZmE5YTMyOTQ0YjEwZGUyMDEwYTczZjlkMyBsZWdhY3ktdHJ1bmsKKzc3NzkgNDQ1OTE3MmY0MGJiMTQ0ODlkM2FlNjZmYzg5MTUyOWNkMzI0NWQ5YiBsZWdhY3ktdHJ1bmsKKzc3ODAgMzMyZmUwMmJmMDJkYzQ3YWY5MDM4MjhjNDIyYjYzMjVkYTk0OTZkMyBsZWdhY3ktdHJ1bmsKKzc3ODEgZTYxNGJjZDM0ZTM0ZmM0ZjU3NWViZTAwYTNlODMxYzBhNjczM2RjYiBsZWdhY3ktdHJ1bmsKKzc3ODIgYzNlZDI5OWQ1OTNlNmNmNDRmZWMzYTBlYzk2MTFjZmUzMDc4YWQxMCBsZWdhY3ktdHJ1bmsKKzc3ODMgZGY4N2Q1ZDFiYmRmMTdmOTczZGM3ZGM4NGRiZDMwY2Q1NjY2YjRjOCBsZWdhY3ktdHJ1bmsKKzc3ODQgZTc1NmI4ZTU0YzdjMWM2MmNhNjY1MWFmNWU0MTA3NGY1OGYzMTdiZSBsZWdhY3ktdHJ1bmsKKzc3ODUgMTkyZTJlMGNiY2U1MDY0OGQzMjY5ZWMzMTdhNDk2N2RiZGQzMzhjMSBsZWdhY3ktdHJ1bmsKKzc3ODYgNzgyNTk3Y2Y2MTUxZDlkZWExZjhiNTk0OTJjZTVhZTNmYjkzNWJlMiBsZWdhY3ktdHJ1bmsKKzc3ODcgZDBlYjE4MzA5MmIwY2RjNjhiNWQwMTVlNTgzNWU5ODIwYzg5MWJkNSBsZWdhY3ktdHJ1bmsKKzc3ODggZTg5OTY4ODRlOGUxN2U2YjdiNDAwMzkyODdiMzZmMGNkNWZiOWEwZSBsZWdhY3ktdHJ1bmsKKzc3ODkgOGZjMjE3ZDMzMjY3NTQ1OTdiMTY2ODFkNWQ3MjZlZWJlZDc3ZTZhMyBsZWdhY3ktdHJ1bmsKKzc3OTAgNjVjOWU5MGQ4MTQyNjkyZGYyYjg4OTI2MTJkODZhYzNjNTM2ZWRiZCBsZWdhY3ktdHJ1bmsKKzc3OTEgYzhlMjRjNGI4YmZiY2NhODM5OWY2MTQxN2QyN2FhMzU3NTU3NmM2NCBsZWdhY3ktdHJ1bmsKKzc3OTIgYzcyYzdlMTkzMGIzZjJjYjA3ZmM0YmFjOGJkY2VjYWVkYTg4NjNhZiBsZWdhY3ktdHJ1bmsKKzc3OTMgMmM0YjgwMmEzYjVkOGI1NWVlMDVkNGI2ZWUxYzUxMTNjYzU0MWQyZCBsZWdhY3ktdHJ1bmsKKzc3OTQgNzRhMWJjMDk5ODI3NmU3MjdmMTFiZDQxMjE2YzY3M2VhNWEwYTU3MCBsZWdhY3ktdHJ1bmsKKzc3OTUgYzNkZGI4NGE3NzYxZmRlM2M1NTQxODkzYTUzMzg5YjNiMDU1NmM0YyBsZWdhY3ktdHJ1bmsKKzc3OTYgZTJhYzA5ODJjYzMyZjBjZjExNmJjOWQ5YjRiNDI3NTgyMDE0YjJlNyBsZWdhY3ktdHJ1bmsKKzc3OTcgMzg4MTg1MzhiODljMGFlODcwYWNjZTg3MDA1Y2U2NzBjOTQ0NzJhYyBsZWdhY3ktdHJ1bmsKKzc3OTggOTFmOTkxODEyNzE4NTU3OTNhMzIyYmVlNzFiNjdmNGJhNDdiNjA0NyBsZWdhY3ktdHJ1bmsKKzc3OTkgNDg5ZGNhM2I1NGNjYjYwZmFiNjE0Yzk0YjZiMGNjY2Q3MTFlNTZmMyBsZWdhY3ktdHJ1bmsKKzc4MDAgM2EwNzc5OWRlYmExZjZkY2JjYzNhYTk3ZDJkZWNkZDUyOWRhZDAxMiBsZWdhY3ktdHJ1bmsKKzc4MDEgYjY4OTMxMzM5NDBmZWViMTMxNDE1NDJiMTM5N2JlNmI2ODRjMTNmMCBsZWdhY3ktdHJ1bmsKKzc4MDIgMTUyYjI4MjdhMWEwODczYTM1YjJiYzQyYzMxMjNhMzM0NzMyM2M3NyBsZWdhY3ktdHJ1bmsKKzc4MDMgMzU5ZThmODE1YTNhY2I0OTI3NzE1Nzk3MDJlOTZhYzVlYWViMTdmYyBsZWdhY3ktdHJ1bmsKKzc4MDQgNDM3NTJlMjA5NDczYzM4ZTFhODQ4NTRhOWQ5YjFhMmYxZmVkNTg1YSBsZWdhY3ktdHJ1bmsKKzc4MDUgNWEyMmY5YjM4YWFjMjI2OGFiMDg2ODQ4M2E3ZjVkMjc3OTRhOTU2MyBsZWdhY3ktdHJ1bmsKKzc4MDYgNjIzMmFjYmE3ZWIyMGEwYzc1N2ZmY2I4MjQzYjM3YzVmNjIxYTkyNiBsZWdhY3ktdHJ1bmsKKzc4MDcgOGRmYzI1Mjk2M2M3MTk5ZTNiYmE1ODk2ZmE5NTBmZWYyNDNkYWNkNyBsZWdhY3ktdHJ1bmsKKzc4MDggNjI3MzE2YzAwMWZiZDQ1MTc3M2NjMWIyYjM0N2I4ZjZiM2ZjNTMzZCBsZWdhY3ktdHJ1bmsKKzc4MDkgZDFhYzUxYjg3MGUyMThjMDQ3NjYyM2ExZWM5MTlmZThlZWVkZTllZiBsZWdhY3ktdHJ1bmsKKzc4MTAgZWU5Mjc1YjBmNWM4MGFmOWZlY2Q3Y2QwMzgzMjFkOTJkZWI1MGZjZSBsZWdhY3ktdHJ1bmsKKzc4MTEgNzQ2ZjY4N2FjZmMxYWY1MjMxZDk1ZjQwZjU0OWI5MWYyNzViMDIyYiBsZWdhY3ktdHJ1bmsKKzc4MTIgMTY2YzIyMzI5MjFhYmZjZThiYWNjZDUzYmY3MzY2ODYxZDkwMTQyOSBsZWdhY3ktdHJ1bmsKKzc4MTMgNjc5OTViYzE3ZjYyNWJjMGJjYjYzMmEzODcxNjkxNThmYzJlNmUzOSBsZWdhY3ktdHJ1bmsKKzc4MTQgYjBhMzE0MGNjOWIxYWRiMDdiZjIzYWJhYmRjOTkxNTViZDMyZGY4YiBsZWdhY3ktdHJ1bmsKKzc4MTUgZGI2NzNlOThmMjhkYWVlYjJmNzEyMTNjYWNmZWM1MjE0ODdhZTY3MiBsZWdhY3ktdHJ1bmsKKzc4MTcgNjdlNTIzN2NlMTQxOGIzODdkYTIyM2VlMzI0NTE2MzE1ZDUyMTVjOCBsZWdhY3ktdHJ1bmsKKzc4MTkgNjdhMGI1YWFhZTQzM2JhOTgwZWZhYmJiNzUxMTFiNDI4MjQxZGYzMSBsZWdhY3ktdHJ1bmsKKzc4MjAgNGE1NDFiYjBjNTM0MzNjN2FhMDliOGNiYjNiNjU1NWViMTYyMzM3OCBsZWdhY3ktdHJ1bmsKKzc4MjEgOWNhMjcxODhkYTIzMjMyMmY2NzAxMWIzNWMyMjJhNGYwMGUzZTU0OCBsZWdhY3ktdHJ1bmsKKzc4MjIgNWIyZWQ2MDgxZWI5NGFlMTlmNjM2ZDg1MmMwMjE3MzJiN2FlNTYzNSBsZWdhY3ktdHJ1bmsKKzc4MjMgMzM5ZGNiOWEyODI1NzBjOTMxZmE2NWVjMWVkZTE1ODYwZjQwZTVhNSBsZWdhY3ktdHJ1bmsKKzc4MjQgMDA2MWY0ZWE5N2JlOGVjMzUyMWRjOWNkMTQ2M2E2YzUwMTI4MDk2MSBsZWdhY3ktdHJ1bmsKKzc4MjUgYWUwMmVkMmFhYzNmNmM2YTUxMWI1MjNlMThiNTBjZjlmOGY2YmQxMSBsZWdhY3ktdHJ1bmsKKzc4MjYgNmFiMzkyZDdhNTJmY2Q2MDczNzRlZmNmMmNmYzZmZDkyZmQ5OWQzNCBsZWdhY3ktdHJ1bmsKKzc4MjcgNjg4YzNmZDQyY2E2MmQ1NjIxMTEwNmQxNTMwMWU4OWI5NmNkMTIwNSBsZWdhY3ktdHJ1bmsKKzc4MjggOTk5YzE5N2RhNTdjYzE2YmY1OTZmMWVmNzAyZTBjMjUzOWIyNTgwZSBsZWdhY3ktdHJ1bmsKKzc4MjkgZDU3NTdhYWQxYTRmZWE3NzhlMjRjMWJhNTY3NWRhZWZlZGMzODcyOSBsZWdhY3ktdHJ1bmsKKzc4MzAgZDQwY2Q5MTBkNjg0ZjBlYjc3YmUzZTA3NTZkNGM0ZjQ1NDNlZjU3YyBsZWdhY3ktdHJ1bmsKKzc4MzEgMmMwYjEwMTY1ZjdlY2E0MTk2YWUxNDRiMWQ2ODNiZDI2YzA0ZjE1ZSBsZWdhY3ktdHJ1bmsKKzc4MzIgMTc5MTY4ZTE3YmZlMjVjNTc3MjRkOWUyZGJlMjAzMjE3MjgwOTQ2MiBsZWdhY3ktdHJ1bmsKKzc4MzMgNDczNjJmZDkwNzFiYzc5MDliNzAxZTk3NTc4NDFhMzg0NWVmYzEzZiBsZWdhY3ktdHJ1bmsKKzc4MzQgYmMyZTMzMzQwNDhlMTNhMWFjMzU2Zjg4MDhiYWY3MGFlZmY2ZTk5NCBsZWdhY3ktdHJ1bmsKKzc4MzUgZGI0MGRiYTNmNzlhN2Q1MzAzMTQ0ODA2Y2MzMmE2YjhhM2NjYTgxNSBsZWdhY3ktdHJ1bmsKKzc4MzYgZWRlYTRmMWQ2M2ZkMDE1NTQzYzFiYzZjYzRjNTUxYjU5OGQzZWYwNCBsZWdhY3ktdHJ1bmsKKzc4MzcgZjg1ODAzOGI2NGMyNjA2NTM5YzJmYjhjYjQwNzI0OWM3M2Y5OTg3YSBsZWdhY3ktdHJ1bmsKKzc4MzggYjFjMmI3OWFhNTFmODVjNDkwZDExMjU0MDVmZWViMTM0MDA4ZTQ1MCBsZWdhY3ktdHJ1bmsKKzc4MzkgNjFlNDFiMmIxYjY5ZDQ4OGIwYjhkYjQyMzAwYTczMGFmYzE1NTVjMSBsZWdhY3ktdHJ1bmsKKzc4NDAgY2M1ODZiZGE2Mjc1NTI1ZDY3NThlMzMxOGFjYTI2YzVlYmY3OGMxNCBsZWdhY3ktdHJ1bmsKKzc4NDEgZTRhZjQxNGY1Zjg5M2I1ZDhjNmFlMDhlYTAxMWRlZmJkOTVkMTQ4MCBsZWdhY3ktdHJ1bmsKKzc4NDIgYjdjYTk4YzZkYmJkNjhhN2JhMzdjMzg0ZjU1MTc2Yjc3Njg4ZWMxOSBsZWdhY3ktdHJ1bmsKKzc4NDMgODczMTMzMzNhZTNmYzM3M2JlNGVjODgxNjBkYjM0MTdkNGVlMGYxZSBsZWdhY3ktdHJ1bmsKKzc4NDQgODk4MTUzM2U2Y2MxYTEyN2FhYjgwMzUyMGU1MTQwOWFiNzAyMTIwOCBsZWdhY3ktdHJ1bmsKKzc4NDUgZjIxMzJkMWY2NmE2MjhmNTljNWVmY2VkODE1MGU2YTFhOTM5OTVmMiBsZWdhY3ktdHJ1bmsKKzc4NDYgM2NhMTQ1MDMxNzBjYzlmOWI5MmZjMDg3NTg2MDJiYjI3MTYxZmFlOSBsZWdhY3ktdHJ1bmsKKzc4NDcgMWVhMWYwMTkyNjhkOWYyNzA3NDU3OWQ3MTVmY2IyOTY2MTY2ZjgwZSBsZWdhY3ktdHJ1bmsKKzc4NDggNDkzYTM0ZGNhNTNlZGQ3MjU0NjI5OTg1NjhhNzUyNTUyMmQzMGRiNyBsZWdhY3ktdHJ1bmsKKzc4NDkgNDI0OTIyYWZjMWJiNDBlOWY1MjAyMDlmNWI5NDNkNDZhODkzMTBjOCBsZWdhY3ktdHJ1bmsKKzc4NTAgNTg4MDM4NGQ3YzcxNDhiOGM0NTUxMDFmNzRkODA1N2E2MzBhMTEyYiBsZWdhY3ktdHJ1bmsKKzc4NTEgMTE4YmVlZjkxODczNmQ1Zjg2MmRhMzA5MmIxMDgxZjEwYmI4NzVhYiBsZWdhY3ktdHJ1bmsKKzc4NTIgN2Y5MGE2NzFjYzFkYjhhODExOGZhZjZiYTNjNGJiOTQ2ZmQyMTI3OCBsZWdhY3ktdHJ1bmsKKzc4NTMgOTk4MGZhZWViN2E1MTNkZDgyNTMyMmRjMWNlY2RhZDhiNGJjOTM0ZiBsZWdhY3ktdHJ1bmsKKzc4NTQgMDk1OTdhNDIzMjI3Y2UzMDY2ZWQyNzNhNmZmZDYxZmFlNWJjZjY3OCBsZWdhY3ktdHJ1bmsKKzc4NTUgMzE5ZTNlYWVjZGY0ZmI3OTA0YzE1YTUwMzI5ODY3OTgwN2QyNWEwYiBsZWdhY3ktdHJ1bmsKKzc4NTYgMWM5YTg0ZTA5ODFkMzU4YmE5ZjAzODBjODJlNzEwNjc3ZWIxNTY0MyBsZWdhY3ktdHJ1bmsKKzc4NTcgMmQ0YzZjYmEwMWJmMDA1ZTRiZmRjMGJlMmExY2FhM2VjMzNiZTExZSBsZWdhY3ktdHJ1bmsKKzc4NTggMzM5ZDQxMjlkM2Y3ZjE1YTQ4OWUxNjk4NWViMDEwZWY0NDMwNGJmYSBsZWdhY3ktdHJ1bmsKKzc4NTkgM2Y1NThhMzJjNDk4MDAwMzUyNDBlYTljMzkwYTdmZDQ5Y2JjZWU0ZiBsZWdhY3ktdHJ1bmsKKzc4NjAgM2M1ZmNmOGJmNTE4OTYxYmM0YmE4NWZiMmUwMGUwY2M4ZjlmMGVlYSBsZWdhY3ktdHJ1bmsKKzc4NjEgMzcxNGIzMjU4MjZkODk3Y2QxNmU3OTM0ZjI0OWE5MTk1MGEzMTJiZSBsZWdhY3ktdHJ1bmsKKzc4NjIgMTBlN2RiYTAxZDA1MTIxZmRhMWFkYTU0ZGFmYmYzMGY3N2RjNmViNyBsZWdhY3ktdHJ1bmsKKzc4NjMgNDNjNWUxZjkxNTRlNmQ3YTliMzJlYmI2YjM0ZDk3OGUzNjBjZDQ5YiBsZWdhY3ktdHJ1bmsKKzc4NjQgMDljNThiMTc0OTg5OTEwMjcwOWZkMTY5MWU0NTVkMjVjZWIyNWE2ZiBsZWdhY3ktdHJ1bmsKKzc4NjUgMTNhMzBjZWE4ZGJmN2QyODVmYzdjZTFmMzQwMGZlNDhmNzA1YjBiYiBsZWdhY3ktdHJ1bmsKKzc4NjYgNWE5NzA2OTY1YTRlYzNmYzEzOTBjYmI2ZWJmYjNmMjYwYTg0ODA5MSBsZWdhY3ktdHJ1bmsKKzc4NjcgYjI0ZTg0YTBmMzBiMzJhY2MzNDFiZTViMzAyMGNlODNlZmE5YTkxMSBsZWdhY3ktdHJ1bmsKKzc4NjggZTkyZjE4MmQ3NzI2OGM4NmI3OTQ5MjYxNjcwOGE3M2QzNzFjOTU2OCBsZWdhY3ktdHJ1bmsKKzc4NjkgMTk0ZDI2ZGY2YzUwMGNmZmQyZmMxOWZiMDQ1MDdkNDFmMThkYWI0ZSBsZWdhY3ktdHJ1bmsKKzc4NzAgMzFlMzk5NjM2Njc1ZmQ0MTQxMGM0NzUyMGQ5NzVhMzc1YjBmYTFlOCBsZWdhY3ktdHJ1bmsKKzc4NzEgYzJmYjk3NmJlY2ViMzlkYWQyMDE0MmM1Y2NlZGJlOWE3OWNiYzIwMCBsZWdhY3ktdHJ1bmsKKzc4NzIgMmM4MWQ3ZDY4ZWQzYWFkM2M2N2U3NzU5ZmQxNGExMWQzOTQzYWUxMCBsZWdhY3ktdHJ1bmsKKzc4NzMgZDE0NDc5NTBmYTA0NTY1MmZmNTViZTNhMmFjMjc1ZGEwNzA2NzZjNiBsZWdhY3ktdHJ1bmsKKzc4NzQgZmQ3ZWIwNThjZTVkYjMwNDE4YzUxZGZiNDZjNDMwNmNhM2UyMWUwOSBsZWdhY3ktdHJ1bmsKKzc4NzUgNzJiMjMxZWRmYjI1MjM5NTUyOTlhODk4MjQyNTk0MDNmZjQ1MzFmNSBsZWdhY3ktdHJ1bmsKKzc4NzYgMGE1OTk3NzNhOWNjYTRmZWRkZTdkMDQzZDc3MzA5NjVlMWM0MmU5NiBsZWdhY3ktdHJ1bmsKKzc4NzcgNzkxOGU4NzM5MTQ4YTRjNjBhYjY1Nzk0Yjc2Y2VhYTg4ZjZkYjllOSBsZWdhY3ktdHJ1bmsKKzc4NzggNDg3YWQwMzI3YWUxODI4YjI3ZGZiZmIzYmJlYzc1YjdlNDE0ZjBjZSBsZWdhY3ktdHJ1bmsKKzc4NzkgOGYwYTc5M2JiMGUyNjk1NzFjOGJjMGVhMmVmM2E2YmUxNzdhNTc2MCBsZWdhY3ktdHJ1bmsKKzc4ODAgNTBhOWMxNDA5NDZjNDg5ZmYyM2EyZGIzZTEzM2M0NDE5YzRmNmQ4ZCBsZWdhY3ktdHJ1bmsKKzc4ODEgMzc4MGNjZTE0ZjdkMDJjZGRjMWZjZDFiOTUyOTc2OGRlMTdhNjNiNSBsZWdhY3ktdHJ1bmsKKzc4ODIgYjc4NzFjYTkzMGFkNWJjNTFhOTA5ZWU3NWVjMmU1ZGExM2UwN2Y0ZCBsZWdhY3ktdHJ1bmsKKzc4ODMgYzIyNTQ3NTQxOTJjMmVhZjE1ZGQyYWU0MDI1ZWY4ZTMzNzNiN2JiMCBsZWdhY3ktdHJ1bmsKKzc4ODQgYjdhMjNkYmUwMDY1ZWNmN2Y4MTBiOTc0MGE3MzhhNTM5MmJkZTE4YyBsZWdhY3ktdHJ1bmsKKzc4ODUgNjQ4MTI0YTU4ODBhMzMyOTdhNDVlY2I4ODQxYzQ3ZTA4N2EzNmFkOCBsZWdhY3ktdHJ1bmsKKzc4ODYgMThkNmE1YWJkM2Y4MzIyNzM2YzVmYzg1MTE0ZTBjMDI4ODRhNzlmMiBsZWdhY3ktdHJ1bmsKKzc4ODcgM2IyZmRhMzFiZjFiYThlZGM1MDU3NzBlYWZkOTcyNmQ0NDRiNmNhNCBsZWdhY3ktdHJ1bmsKKzc4ODggNjcxNzA3M2RlNTg2NWE3MDYxZGUwZDAzZWQzNmJmZGNkM2QxMDhmYiBsZWdhY3ktdHJ1bmsKKzc4ODkgNzhkMzk4MDA1YmFiMDJhNTQyODZmOTBiYzlmZjA1YmMzMjRhZjdkYyBsZWdhY3ktdHJ1bmsKKzc4OTAgMTAyNjdmZGM3NTMxMTZjMWQzZTI1OTg4MjAzMzVmMGI3ODE3MGY2NCBsZWdhY3ktdHJ1bmsKKzc4OTEgMDEzZmY2OTUxOTA5ZjBlYjU1YjRlNzcxOWUzOTViMDAxN2Q5MzBjMCBsZWdhY3ktdHJ1bmsKKzc4OTIgNTk2MzgwYTU2N2QyMjM5NGNhMDFlZmYwOTA1OTM0YzM0YjUyY2ZlZCBsZWdhY3ktdHJ1bmsKKzc4OTMgMTcyMjU0ZDQxYTUxZGFmYjc0NmQyMTU5Njk4YWJkMjZmMjZiYzIyNSBsZWdhY3ktdHJ1bmsKKzc4OTQgYWJmMzNiODgyY2ZkY2U4Mzg3NGNhMTY0MzAzZDMzNDJiYmZjOTBhZSBsZWdhY3ktdHJ1bmsKKzc4OTUgYTFiNjNjNzNhZDFkYzUxNGNiMzZjNDAwY2FhMjY3NjY0NTkxNTVjMCBsZWdhY3ktdHJ1bmsKKzc4OTYgZDk5NDFhODk1YzAyMDk0MTE1NjRmMmQ0ZjA0MTcyZmVhZWFkYjA1ZSBsZWdhY3ktdHJ1bmsKKzc4OTcgMDE0ZWE5ZDcyZDAzY2ZlNGY5Nzg5NzFiNzFlM2QxNTQyZWQwMDM0YyBsZWdhY3ktdHJ1bmsKKzc4OTggZGFjYmZhYTA3YzQwN2MyNmFhYjk4NDJjZTRmMGVlMTMyNGIzOGZmNiBsZWdhY3ktdHJ1bmsKKzc4OTkgMzczMzJiNmY2MjgwYmVkNDcyYmQyOWQ5MzljZmU1YTVjYTRhMWI1YSBsZWdhY3ktdHJ1bmsKKzc5MDAgYmNjYjhkNzQyOTY0N2I5NDFlNWU3ZTZmODdiNTA0MzY5OGY1ZDNkZiBsZWdhY3ktdHJ1bmsKKzc5MDEgNjM4YTk5YmM4ZjJjY2Y3YjliYTQwYTI0OWQwNjI0NzJlMmFmNmI4MyBsZWdhY3ktdHJ1bmsKKzc5MDIgYTdlMzA5YjE3NGIyNzI1ZWJkNTMyOThkZTk1MTlhMjQyODE4ODMwZCBsZWdhY3ktdHJ1bmsKKzc5MDMgZGFiODYzYjc5ZGViYWMzMzg5ZWI0ZWM3ZTMzMjliY2JjOWU0ZDY0ZiBsZWdhY3ktdHJ1bmsKKzc5MDQgYjAwMjMzMzU1ODhjZWY3Zjk3YTkyYTcyOWUwOWE0ZGFkNTNkZDc5MyBsZWdhY3ktdHJ1bmsKKzc5MDUgNWUyYzE3YjM3NGZiMGVhYTI3MDFkZmY4YTUxOTdkMjM3OTBlZWQxMyBsZWdhY3ktdHJ1bmsKKzc5MDYgYWMyMzVjOWU2ODgxZjMzOGNhNjA5ZmVjYTQ4MDRmZTJkMmQ1OWNmMiBsZWdhY3ktdHJ1bmsKKzc5MDcgMjMyOWNjZjBlNTgxMTFjZjE2ODkxZDU2YmFkMWJlMzIzMzFhYjU3OSBsZWdhY3ktdHJ1bmsKKzc5MDggYTU2YjQ0YjM1NTA1NzJmZDM1Mjk5OTAwNzQ4NTYxZTkxZmNjODUzMCBsZWdhY3ktdHJ1bmsKKzc5MDkgY2VlNGM0NWM1NjhmNzYwZmFiYTE5NjlkZWZmYWZiNmRmYzYyMzg3NCBsZWdhY3ktdHJ1bmsKKzc5MTAgYWQ0NzQxZDU0MzFjYzFiZDBiY2VkMWNiMzFhMDE4MGEyMzY0NjY2NiBsZWdhY3ktdHJ1bmsKKzc5MTEgM2Q3ODkwMjM2YTRlNTkxYjM4YzEzMzhlZjM3NjgyNDA2MGQyNGJjMSBsZWdhY3ktdHJ1bmsKKzc5MTIgNTkxYzY0MjBmMTFkMDI1ZGNkMmM5MzFiMGJlMTc0ZTI1OTJhMzc4ZSBsZWdhY3ktdHJ1bmsKKzc5MTMgY2Y4MThiNzBkYTNlNjVkNjQxZmJmOWIyNDljMjA1ODY5Y2NlYTE4OCBsZWdhY3ktdHJ1bmsKKzc5MTQgYzJkYWUyYjFhMTIzNWQxZDIyZDU3MjFkYmEyMTVjYTY3NDhjYmUzZCBsZWdhY3ktdHJ1bmsKKzc5MTUgZTkyNmMzMzFlYmJmMWQzMTdkN2U3MTk1MmNmMDM1NzExMGQ1YzEyMiBsZWdhY3ktdHJ1bmsKKzc5MTYgMWRhZTViMWM4ZGJhMTJhNTM4ZjZhODBkZjBlYmFjMTQzMTk3MWUxYyBsZWdhY3ktdHJ1bmsKKzc5MTcgOWVhYTJjYWVkMWMzYjg0NWEwZjg5OGYwNWU0ZDYxNDIyOGE2MDc2YSBsZWdhY3ktdHJ1bmsKKzc5MTggM2M2ZGI3MTY1YmMzZDYwNGRjYTRmODY5ZmZhZjk0ZGViOTY2NjNmNSBsZWdhY3ktdHJ1bmsKKzc5MTkgNDU3OWE3NzAxOTQ5ZGFiZGM0NWZmOWQwNDAyNmY3MTQzNWRhODhlYSBsZWdhY3ktdHJ1bmsKKzc5MjAgODg2OGU5ZjEzNjU3ZDMwYzljMjM3MTBmMmVhNGE1ZGQwZmQ3ODBlMSBsZWdhY3ktdHJ1bmsKKzc5MjEgODdjNGYwNWExN2U1MWZjNjA3MjRhNmU5NjdjNzg5OTY0NTA0ZGJjYiBsZWdhY3ktdHJ1bmsKKzc5MjIgOGYzZTE2MTIzNjAwNDllMTQ2YjcxODQwN2Q3ODRkY2U3MWIwOWQ0MSBsZWdhY3ktdHJ1bmsKKzc5MjMgNTE1ZWQ3M2RhNWIxNGI3YjVhZWU4OGExMTk2OWU1NzE5NDkyZmE4ZCBsZWdhY3ktdHJ1bmsKKzc5MjQgMGIxZTY5NTA4OTA3MzZkMjQ5NDEzMDFiY2FlYTZhMjc0YmZhYmMwMCBsZWdhY3ktdHJ1bmsKKzc5MjUgZTlmNjE1ODg0NmIxNmI3YzM4MDgzM2U0NWU5YjgzNDgxN2EwNmY4NSBsZWdhY3ktdHJ1bmsKKzc5MjYgMDFmMDJiZjJiNDQxNjdiNjg0NmFhMzQzMzg1MWEyNmFiYzA3MDRjZiBsZWdhY3ktdHJ1bmsKKzc5MjcgNGE4MGU2Y2E3Y2QzNWVmNDdlMzAyZTdhM2MzMjY4MzEyZjE0ZmU5NiBsZWdhY3ktdHJ1bmsKKzc5MjggNWFiZGRlOTljOWVhZGFhOWQ4MDZiZmFlODllMWJjMzlmNjg3ODdhMCBsZWdhY3ktdHJ1bmsKKzc5MjkgMmE4NzUxOTlhNzFlODYwMjJhM2ViYzA4OGEzZmE4ZTNjMTY5MGIwYiBsZWdhY3ktdHJ1bmsKKzc5MzAgOWM2YzA3ZDQ0OWRmNTQwMzYyMjk0OWI3OTg4YzJhNjZkYjNjZjRmZCBsZWdhY3ktdHJ1bmsKKzc5MzEgMGY2Yzk2ZjQ4ZTFiYTQ3NmU1Njc5MjY4M2I3OWVlOWE4MjU4ZGI3YiBsZWdhY3ktdHJ1bmsKKzc5MzIgNjYzNTc5YTNjN2ZlYjU0MGU3ZmFjMjA0NGJjMTEwOWI0ODAzMDE0YiBsZWdhY3ktdHJ1bmsKKzc5MzMgNzMxNmVlY2IxZTZiMzJlNjE4Y2IzMDQzZjkxZWJhYjllYzM1NDc1YiBsZWdhY3ktdHJ1bmsKKzc5MzQgNTM0NDAwOTcxMTFmZWY4ZTM5ZTBlOWU1YzVmODcyMTA3ZWE3ZDc0MyBsZWdhY3ktdHJ1bmsKKzc5MzUgMTMwNTJkYzJkNWY2ZTZlNGI5MjQ2YzEyZDBhM2YzZjM3MWMzODUwNyBsZWdhY3ktdHJ1bmsKKzc5MzYgYzVkN2I2ZmNlZTAzZDIyNWVjZDM3ZDQzMTVmMWFkYTJkN2ZhYWJiZCBsZWdhY3ktdHJ1bmsKKzc5MzcgYWQ2YzQyN2RjYmQ5ZTRkNTc0ZDliMDgwOTA0ZTg5NjRmZTAxMWJhYyBsZWdhY3ktdHJ1bmsKKzc5MzggMGRlZDYzYmNmNWRlMjllZGQ5NjllZGYxMzZjNmFmYTA1YjdhYTIxNiBsZWdhY3ktdHJ1bmsKKzc5MzkgNjBmNjY0OWZkMjMxMGRlYmEzYzIzNmRjYzZmZjNlYmM4N2JmZWRkNiBsZWdhY3ktdHJ1bmsKKzc5NDAgOTUyODUxZDljY2UyMGY4ZGMxZTM4NDlhZTBjOTRjMzQ2MTBkYzkzMiBsZWdhY3ktdHJ1bmsKKzc5NDEgYjA1ODRiZjdiNGY1Mjk5NjJkNDkzODIwNjEzZDI4YTUyNDIzNWUxYyBsZWdhY3ktdHJ1bmsKKzc5NDIgMDllNmI0ZTM0NTIzYmFlMjBlNTgyNjYwOGExMzM4YmUwM2NmYjgwMiBsZWdhY3ktdHJ1bmsKKzc5NDMgNDNjODZjODE4MWQ0NTc2NjFkNTgwZTkyOThhOTYyZWMzYjg5ZDcxYSBsZWdhY3ktdHJ1bmsKKzc5NDQgNjRiNjkzMTUxOTU2ZDIxYWQ1YTgzZjg1YTJkOGZhMjU5MDEzMjMxMyBsZWdhY3ktdHJ1bmsKKzc5NDUgMDhlODZkNDM5MjgxZGYwNTY4NzRlNmJhZGJhMDQ1M2FjN2EwZDczYyBsZWdhY3ktdHJ1bmsKKzc5NDYgNDdlODFiMjE2OWU5NTRlYzI1YWY0YzUxN2FiNWQ2ZTFiMWRmMzgyNyBsZWdhY3ktdHJ1bmsKKzc5NDcgZDkwMjlhNGUwZjJhYzc3YzZmYzgxMjkxOTFjNjBjNWYzMDQ1OWE3YiBsZWdhY3ktdHJ1bmsKKzc5NDggOGU1ZDZkMzEwM2FlZjgzZTk3MmZjMjI0OWI4MjM4ODE3YjRmY2E5NyBsZWdhY3ktdHJ1bmsKKzc5NDkgODRkYjE1NGQ1YjkzZThkMGJlMDU2MjU1ODBiZWJlODFhMmE2ZjU5OSBsZWdhY3ktdHJ1bmsKKzc5NTAgYzNkNGJmYjhjY2RmMDFkNmEzNWJkMzI5Y2I0YjQ3NjQzYjkxOWU3MyBsZWdhY3ktdHJ1bmsKKzc5NTEgMjY2NmU5MDRlNDBiMGNjZDQ4ZTkyYzIxMzI2NjdjYzBhNDllN2FlNyBsZWdhY3ktdHJ1bmsKKzc5NTIgYTg2ZWEyY2NlYWVjZGQ1YjJlNzU2OGM3NTFkNmVjYWQxODVjMzI5YiBsZWdhY3ktdHJ1bmsKKzc5NTIgMDYyYWVkOGE0Y2UyYzkxYzgxYjgwZTI5ZjAyZmFmZjFjZjVhNzYxYiBsZWdhY3ktdHJ1bmsKKzc5NTQgZjQ0YTU2ZTY5N2ZiMTdjZTU2Yjg2Y2Y0MTliNjA3NmMyNjhjYzM0NiBsZWdhY3ktdHJ1bmsKKzc5NTUgMjY2YzlhYThjMTI3NzYxNDkxYmU4ODgxYTAzMWVkMTZkNDkzZGRlZSBsZWdhY3ktdHJ1bmsKKzc5NTYgNmQ1M2ViYWVjMDIxNTkxYjMzNTA5NjBiMTg4YTUzYjZkM2ZjNGRjMiBsZWdhY3ktdHJ1bmsKKzc5NTcgYjk2MTc2YzlhODUzYjY5ZDIwMWYwYjUwMjBmYTY4MzlhNGU1MDU3NCBsZWdhY3ktdHJ1bmsKKzc5NTggZjFhZmM1NjkwYjJhYjVmMjAxZTMwNGY1MTNkZjk5OTRiYjQ3NjgyNSBsZWdhY3ktdHJ1bmsKKzc5NTkgNmZhMjk3NTZlYzZhMjk0Mjc0N2FkOGE1MzhhZDBkZmQ5ZWQyNWVhNSBsZWdhY3ktdHJ1bmsKKzc5NjAgNzM1MDllZmE3MjRiY2NlY2Y5ODU4Nzg0NjY3M2I3M2M3NTAxMjEzNSBsZWdhY3ktdHJ1bmsKKzc5NjEgNTk1YTVmZTE0MGQ0MGMyNzYzMTBhZTVkZWE5MDM1NjEwZGI2OGJmMyBsZWdhY3ktdHJ1bmsKKzc5NjIgNDc4YzY4ZWE5ODI3NTFhMjUyYzI2YjhhYTlmZjE3YmRhNmE4OTQyMCBsZWdhY3ktdHJ1bmsKKzc5NjMgMTk1ZDVhYTE5NTFlMDNjMjM5ZDhmNDA1OGU1ZTk5N2ZjZGY5NzdhYSBsZWdhY3ktdHJ1bmsKKzc5NjQgZWQwMzk0NDg0MDgyYjYyYzkwNGY2YzYwMTNhMWJhMzE5NzRlY2UyNSBsZWdhY3ktdHJ1bmsKKzc5NjUgMmU4OWM1NWQ5YTI5NWEyZWZiYzQ3OGIzMDgwMmY1OWQyOGFkMDQwNSBsZWdhY3ktdHJ1bmsKKzc5NjYgMmQxMzMyODAxMjlmNzJjOTc1ZTgzMzJkZDA4NzFlNjUyZWZmNzBjNyBsZWdhY3ktdHJ1bmsKKzc5NjcgYzFiNDBiMDU3N2QxOTRmMWUxYWVkMzMwNzc0YzU4NjAxZGY0YWQ1ZSBsZWdhY3ktdHJ1bmsKKzc5NjggNTA2YmE3ZGY0MmYwNDYzMWI1MTRiOTY1ZDY2ZjY1NmExNGU4OGI3YiBsZWdhY3ktdHJ1bmsKKzc5NjkgYWYxYWVhNmI5NjhmZDZkYWNjMTMwM2E1NWZkYjAyZGE1ZTI1N2U1NCBsZWdhY3ktdHJ1bmsKKzc5NzAgZWY5M2Q1MWRhYjM2MmRkNTliYjUzNTgwN2M0ODc2MGE2ODhmM2UyNiBsZWdhY3ktdHJ1bmsKKzc5NzEgYmZkMDMxNTQwODhiNmFjMTEwZjBlMGM2NTk4ZmJhOGIzZjI4NDQyZCBsZWdhY3ktdHJ1bmsKKzc5NzIgZTY1MmE3OTNmNGU3MTJmNDU3YmY1NTYxOGFjYmY2Y2ZlYTUyNTk2NCBsZWdhY3ktdHJ1bmsKKzc5NzMgMGIxOTQ2NjAwYmRkZWQ4ZjFkMGM4NTFhYTA5ZTRjYWI0Yzg5N2I5YyBsZWdhY3ktdHJ1bmsKKzc5NzQgMzc3Zjg2OTVhOWZiYjIwMWQwNjdmMzM3YTBjZDkzNGFlZThiZTA2NyBsZWdhY3ktdHJ1bmsKKzc5NzUgOWExMjI1OTIzOTE4MWY4YTM0MjhhY2FlZWEyZGM2ZjJjNDY2OTE1ZiBsZWdhY3ktdHJ1bmsKKzc5NzYgYjkwNTM3MmVkZDRmYjQ3YTdlMDg3MjdiNmQ5NmMwYzRkYTAwNDFhNiBsZWdhY3ktdHJ1bmsKKzc5NzcgODIxOTEyZmQ5NjVhMWQwYTRhNmVkMDk1YWY0YTA1ODg3YjYxNDUxNiBsZWdhY3ktdHJ1bmsKKzc5NzggNDY2MGZmYjllNDgzYzc1ODc5ZTM0NWMxOTU1YmE3NGY4ZmM3M2M3NiBsZWdhY3ktdHJ1bmsKKzc5NzkgNTA1ODE2NjZjODU0ZmIxMDkwNjgxZjFmNDk2NDM5NzZjNDVhZjdmOSBsZWdhY3ktdHJ1bmsKKzc5ODAgYmEwMDVlNGRiNGM1MzQzNmYyMzcwNmE4MmI2OThiMWE0ODVjNDFhYiBsZWdhY3ktdHJ1bmsKKzc5ODEgYzg4YjliODY4OTk1MzE0NzM4YTExNGI2MGNhNTA0YTkzMGZjMzcxNiBsZWdhY3ktdHJ1bmsKKzc5ODIgNDdmYTAwODc3OTI0MmEyNzhhYzJkNDc1OGU0OTc0NDM5N2Q4OTJjZSBsZWdhY3ktdHJ1bmsKKzc5ODMgNTk0MzhkMTlkNjAzNjc1ZmY3NTA4Y2VjZmRkYTgzNjc4NDRkZGJiMCBsZWdhY3ktdHJ1bmsKKzc5ODQgNTZiNDNhNDBhNTI4NTU3MTc1MjIzNWM4N2JiZDdmMTA1ZTdjMmUyYyBsZWdhY3ktdHJ1bmsKKzc5ODUgMzY0M2YxOWQ1Y2ExYTQwMDY5ZjMzOGM4M2JhYzk0YWNjNjYxYWE4OCBsZWdhY3ktdHJ1bmsKKzc5ODYgZGRlZGZhNTU2ODRhNjBhMTFjMzU5ZmNiMjI4MmQzODdlZGNiZjU4YyBsZWdhY3ktdHJ1bmsKKzc5ODcgNzI5MGE5MzBiNGM5NTdjNWI1NjQxOTk5ZjdkN2UxMGU1MTgwNzcwZSBsZWdhY3ktdHJ1bmsKKzc5ODggZmIzOWQyODg2NjRiNTM5ZWI0ZmEwZDExNGY4ZjE1MjczMGQyNDU0YyBsZWdhY3ktdHJ1bmsKKzc5ODkgMTQ5ZDc0MmIwOTcxY2UxYzVjMTg0ODU0OWQ3NzlhZmU4MDJiNmE5ZiBsZWdhY3ktdHJ1bmsKKzc5OTAgNGRkNTA5NWMzYjY3ZTlmNzdkODljY2E2MDJlMWMzYTk5OTIzOGRhYyBsZWdhY3ktdHJ1bmsKKzc5OTEgNjRlMmZkOGYxZDY4NDkwZGZiNTRjYTFhOTc2YWVjZThjNTczYjFkZSBsZWdhY3ktdHJ1bmsKKzc5OTIgMDY0Yzg2NzE5Y2E3YmRmYzYxN2JjY2Y3MzIwY2EwNjJiOTA3YWUzZSBsZWdhY3ktdHJ1bmsKKzc5OTMgMjQ1NmQ4ZmY5ZmE4MjNlMjY0NjhlMGJiMzUyZmIxNzI3MDRmNDc4MiBsZWdhY3ktdHJ1bmsKKzc5OTQgY2ExMjNmMjQwYmE5YzM2ODBiYTQ4OWY2NzFmZDgzY2RiOWQzOGFlZSBsZWdhY3ktdHJ1bmsKKzc5OTUgNTc2YjdkOTI3YWZiOTA5YzhkNGIzMmNmYTkwMGI5ODU2NGQ1NzllYyBsZWdhY3ktdHJ1bmsKKzc5OTYgMTM4MTUyNzNlMTcxYmJhMTM1NGYzMzYzZDg1NTFjODJkNjFlMzIyMCBsZWdhY3ktdHJ1bmsKKzc5OTcgMzFkNjYxOTRhNzdjOWZmY2I4NDY2ODA5ZWE2ZjlhYzgyZDc3MDllNCBsZWdhY3ktdHJ1bmsKKzc5OTggODgwM2JmNDA0YjY5NDY2NTU2MGMxNTdjZWJhMWM1MmNhNTVmOTU4NCBsZWdhY3ktdHJ1bmsKKzc5OTkgOTg2YzMwODc2NWFlOTY3YWFkNzVmODUwMjEwN2NmNTIzYTE1ODNmZiBsZWdhY3ktdHJ1bmsKKzgwMDAgMGJhOWY5MTRhNzA4ODc2ZWUwMmUxMTMxMDRkZjBmZDg3MGE4MWFlMCBsZWdhY3ktdHJ1bmsKKzgwMDEgOWEyMzdhNGNmM2ExZjZmODc2ZDY1MDlmYTdhNDRlZWM2YzY4OGRmYiBsZWdhY3ktdHJ1bmsKKzgwMDIgODU4MmY3NGExZDIzNWQzZDMzNzZhMDJiZGFlYmU0NWVkMGIzN2FhNiBsZWdhY3ktdHJ1bmsKKzgwMDMgYmM5ZDU0NTIzODYyODAyYjdlOTkxNWI4ZmIzYzA2MzYxNjQ5OWViZCBsZWdhY3ktdHJ1bmsKKzgwMDQgMjZlZmY2OWVkNTUyM2NiYTQ3Zjc4MmI4YTcxZmQyMTk4Yzc5Y2RjZSBsZWdhY3ktdHJ1bmsKKzgwMDUgMzI1ODQ2M2YxY2EyNzVlMjY2YjlkNjc0YjE0OTQxNjJlMTU2YWE2ZSBsZWdhY3ktdHJ1bmsKKzgwMDYgZjVkZWNjNWQ3MDczZWY5ZjI1OThkMjg2OWUyMzQ1MmRmYmY4MGEzNiBsZWdhY3ktdHJ1bmsKKzgwMDYgYzk0OThhYzk4ODM3MjU3NWNmNzAyOGI4NjM5NWI5MDBjOWIwYTg0MCBsZWdhY3ktdHJ1bmsKKzgwMDggNTQ1NGZlNDkyNWQzNjU2NWIyYjY4YmY0MmRjYWY5MGFlYjM1MjllZCBsZWdhY3ktdHJ1bmsKKzgwMDkgMzBkNTU5ODI3MDQ3OTZlMWFjNjE2MzkxZDczZGYxZTQ3OWNlZDU0YSBsZWdhY3ktdHJ1bmsKKzgwMTAgODI2ZjI4OTg1YmVhZGY1OTEwNWE0MjU2YzczZmQ3YjM4MzI1MDgzMiBsZWdhY3ktdHJ1bmsKKzgwMTEgODRkM2NjYTgxNGZiZDBkNjUzNDkyMTEzOTY4MjZhMWZkZGVkYjRjNCBsZWdhY3ktdHJ1bmsKKzgwMTIgMjBjMmI3MTUxODhlYTk3NWJlYzQ4MmMyMGUxZmEzYzNmMGU0NGY0MyBsZWdhY3ktdHJ1bmsKKzgwMTMgYzZmMDRlOTY1NTA4MTgxNzc3NWRiNGMxMDQ3YjBiMDg2NDVjOGU5OCBsZWdhY3ktdHJ1bmsKKzgwMTQgYjFkZjkzODY1NWUxNWQ1MzkwYjU2NWZlMmMzMmIzZWRjMDAxMGI4NCBsZWdhY3ktdHJ1bmsKKzgwMTUgNDcyYzhlNGNjOTc0MWZiZWJmZmFiMjc1YzYzYWViMDc3MWJiNDlmZSBsZWdhY3ktdHJ1bmsKKzgwMTYgOGY4NzFhMDMwYjhkMTQwMjk4NTkwMjNiOTY2ZWEzNTc5ZjFhN2IyYiBsZWdhY3ktdHJ1bmsKKzgwMTcgYTBjYzAwNWVjY2Q3ODdiNGIxOTU2NmI4MDcxNmY0MDkyZmJiZTAyNiBsZWdhY3ktdHJ1bmsKKzgwMTggYjU3OWM1OTE4ZjJjYjM1YjBhMTlmNDUzZTBmMDIxN2FiMjJmZGFiNyBsZWdhY3ktdHJ1bmsKKzgwMTkgY2ZjMTNmM2YzODc2OTlkZmE0YmY3NTkzNDkwNDYwN2FjMjQ1Zjg0MyBsZWdhY3ktdHJ1bmsKKzgwMjAgMzdjOTM5ZjcwZmFjMDFkMDI2MmU0ODc2NGZjNzk1OGE1YjkwZTBhOCBsZWdhY3ktdHJ1bmsKKzgwMjEgMGJiYTkxNGJmN2IyYWNhNTFhYTM3YjMxYTk2MWY3M2Q3MDI3NzRiYSBsZWdhY3ktdHJ1bmsKKzgwMjIgN2U0MjI4NzgwZmY4YzFhMzRjN2E4ZDFjYzhjN2YyNTRiMGI0YzkwNiBsZWdhY3ktdHJ1bmsKKzgwMjMgNmMwN2Q0NGE3MDgxMDhjYzVkYjQ0MGQ0ZGVkNzU0NjcwMTc2YjA5ZCBsZWdhY3ktdHJ1bmsKKzgwMjQgOThkNGU5N2RhYWMwNTQ2ZDdmZTYwZGFiMGRkN2YwNDBjYjhmODcxMSBsZWdhY3ktdHJ1bmsKKzgwMjUgYTIyY2FmMTI5MzQ1MzhlNDQ3MGNhODc5YmZmNDFiNWM5ZGU1YzQ1OCBsZWdhY3ktdHJ1bmsKKzgwMjYgNTI2MTBlY2VlMzY3YTc5MzhhMGI0MTgzOTliN2EzNzNhZGY3YjkwYiBsZWdhY3ktdHJ1bmsKKzgwMjcgNDM4MjJlNGZjMjdkNDc2NDFhNGFkYzNkNWVmNjhmYjQ3NzZlOTEzYiBsZWdhY3ktdHJ1bmsKKzgwMjggMzQ1MDljMDUyNjZmMjI5ODQxOGVmMzhkMGVkMDRhN2M4Y2VmZGI3NyBsZWdhY3ktdHJ1bmsKKzgwMjkgMmRmYzcwN2Q2ZTY4NTE5NWJlODY2ZTg4Y2I3ZDk4ZDY2MDgzZGEzZiBsZWdhY3ktdHJ1bmsKKzgwMzAgMThmZDA3ODY5YjEzYzQ4YjhiNTI3ZmI5MTU1OGIzZDMwZmZlZDBmYiBsZWdhY3ktdHJ1bmsKKzgwMzEgYjVlNjQ4ZmRlMDk5Yzk2ZmVjM2NjNTlmNmIxNmQwMTIwMzgxNDBjMyBsZWdhY3ktdHJ1bmsKKzgwMzIgOTg5ZjRmZjczNDI5MTVhYTBmOGVhYzZmZGIzNjUxYmU1OTJjYTE0NiBsZWdhY3ktdHJ1bmsKKzgwMzMgZmE5ZmFkYTkxNmI0NTMwMzlmOTkyNzBiZTFiNjhkNzY3M2MwYWEzMyBsZWdhY3ktdHJ1bmsKKzgwMzQgNDMyOWU0MDc3Y2YzOTE1MWNmMmJjNjJiZWQwYzNiMjI3YWQ2MjM4NyBsZWdhY3ktdHJ1bmsKKzgwMzUgZWYzYmE4Yjk5ZGEyZWZmZmJhM2NmZmI2MDk5MjIyYmNkOWUzZWI5ZiBsZWdhY3ktdHJ1bmsKKzgwMzYgMWVjZWQxYWFhZDVhOGE2NWU2MzMwZDBiNWJhZWMyNTI3OGM1OWFlNiBsZWdhY3ktdHJ1bmsKKzgwMzcgOGVjMjk4YjI1NWEyMGI2NzBhM2ZhZDgyZDc4MzNlOGE1YTI5NzE2NSBsZWdhY3ktdHJ1bmsKKzgwMzggNGRjZjI2ZmU0ZGE1OTUxYjA5OWY1ZjBkYmViZjI4ZTBhZWIyYmU5YyBsZWdhY3ktdHJ1bmsKKzgwMzkgM2YzZDJkNDc0YWNhMGY1Y2ExM2E0NGY3MWEyNjBjYmU0ODQ2NzBlNSBsZWdhY3ktdHJ1bmsKKzgwNDAgZjFiMDM4NzU4YmRhOTNiMzNlNWM4Y2ZhODM5MTNiYWM1MWU5ZTMzMCBsZWdhY3ktdHJ1bmsKKzgwNDEgNmU5NDQyNzlhMzE0ZjMwMDQwNmRmMGJkMmVmZjNjZTI3MDY2NmZkNSBsZWdhY3ktdHJ1bmsKKzgwNDIgNWZmYWI2NWY4ZDA1MDk4OGI5MDY4NzQ2NTM1ZjJlNGY1ZjY4NTkyOCBsZWdhY3ktdHJ1bmsKKzgwNDMgMTlkNGEyODc0NjQ1NGMzNDExYzBmNjViM2RkMjViMzhiZmE4NTcxMCBsZWdhY3ktdHJ1bmsKKzgwNDQgOTMyY2ZjNWZjMTA0YjI0ZDExODg4YjllYTk0NmMzOTdkZGE2OGQ4MiBsZWdhY3ktdHJ1bmsKKzgwNDUgMTM5YWIyMWQyNjI5YmU0OThmMTg4Y2NmODUzMDM5M2I3M2NjYWUwMiBsZWdhY3ktdHJ1bmsKKzgwNDYgODE4Y2ZmZjNhYTVkOGJjYzFiNTA2MDJhY2Q2Y2EzZTc1M2UzMWM4NyBsZWdhY3ktdHJ1bmsKKzgwNDcgMTFlMmUzZmY5ZmM3YjE5ZWJjNDBiOTQwODU5OWVkNTUyMjM4ZDVkOCBsZWdhY3ktdHJ1bmsKKzgwNDggM2U2Nzk1MzBhZmM5ZWM2NGFjZWNiZTBlNzI2YzY2ZjA5Yzk2YTYxMSBsZWdhY3ktdHJ1bmsKKzgwNDkgYjIzMTg1NWE5NDc0NGRiZGUyMzg0MmRiNDc3N2Y2NWI2NWUwOGM4ZSBsZWdhY3ktdHJ1bmsKKzgwNTAgYmY5ZjEwNGFiZTc4YTU1YTlkZTZkZjE1OTc1MzkyYjM2MTY4ZTA4OSBsZWdhY3ktdHJ1bmsKKzgwNTEgODRkN2NjNWU2M2NkYjc2NWNkZTBhMTlhOGY3MzJmZDUxODVmNGVhZiBsZWdhY3ktdHJ1bmsKKzgwNTIgNmE5ZjI2M2UyYjQ4Y2FjYzhiODdlOTM2Nzc5ZjFhODI4YjcwNjUxZiBsZWdhY3ktdHJ1bmsKKzgwNTMgYzdkODEyZTRhZjBkM2Q5M2UzODQyMGMzMDRkZTVmMWJlZjZkNDhlYyBsZWdhY3ktdHJ1bmsKKzgwNTQgNmM3MmI5MWM4YjgzZDFhYzNiNDUxZjU1ZTE1NzkwMjgxMTE1ZTIwNyBsZWdhY3ktdHJ1bmsKKzgwNTUgOTM3ZDllYzJiNTYwNTE3YTJkYTJmNDJjMmUwYWE5MTg1YzNiMWM4NCBsZWdhY3ktdHJ1bmsKKzgwNTYgNDg2ZDVlOTg5MzhiYmE0ZDRiZmUxNDQ2Mzg5ODE0NzA3M2Y3ZTViZSBsZWdhY3ktdHJ1bmsKKzgwNTcgY2U1OTk3M2FjY2RlN2UwN2QyOWFjZjRmNzQ1NjNjM2M2ZTA4Y2U1NCBsZWdhY3ktdHJ1bmsKKzgwNTggN2UyYWQ5ZTMyZTBkNWRkNTNiOGRmNzIzYzBkNWQ2OWM1NzIyZjZhZCBsZWdhY3ktdHJ1bmsKKzgwNTkgODdkNWQ3ZmE4ZDA3ZTZiOTk2NjQ1ZmY5MmI2NjZkYTA2ZWMxY2QxZCBsZWdhY3ktdHJ1bmsKKzgwNjAgZWRiY2ZlZDdmYzdiZmM4OWU1ZTljYTFhZWFlMTA0N2UyZjQ3MTRmMyBsZWdhY3ktdHJ1bmsKKzgwNjEgODVjNTA0M2M5MzE2NzdlY2FiZTU4NmU4NGYwYzU2NDE1MmZkNzVhYyBsZWdhY3ktdHJ1bmsKKzgwNjIgNTdkYmRjMmIzMDIyNmYxMDNhMDFhZjdhM2U1ODlkMjg1NDE1MzZiZiBsZWdhY3ktdHJ1bmsKKzgwNjMgNzg0YmFmYjQ3ZTFmNmRiZjc0YmUwYjY4ZmE4OGFjMTEyZmVjNWMyNiBsZWdhY3ktdHJ1bmsKKzgwNjQgNmE0OGE3ZTcxMWQ4NmNhMjJhYWViNTA2MTI3MWFiZTAyOWJiMTdkMCBsZWdhY3ktdHJ1bmsKKzgwNjUgNTNjZGY5NGI2NTJiODNlNTY1MmY1YzcxMGU5ZWIzNGZkZDM5ODI4ZCBsZWdhY3ktdHJ1bmsKKzgwNjYgNzk1Y2E5NzVkOTZmODhlMjgzY2JkZjY2YmM1OWMzMTAyMTFhOGJmNCBsZWdhY3ktdHJ1bmsKKzgwNjcgZjNmNjU2ODdlNDI2MGRhZGY3ZGRjMDlkMWU2ODExMDc2MzdhYWI4ZCBsZWdhY3ktdHJ1bmsKKzgwNjggZGE0NzVlMTA3YTY4Zjc2OGRjNGRhMzFhMGJlODE3NTBhOTNmNTg4MiBsZWdhY3ktdHJ1bmsKKzgwNjkgZTNkNTI1ODJkMzYwNzgxMGQ1ZTNkOTJhZmM0MDQ5ZGRkNzc4ZDgzMiBsZWdhY3ktdHJ1bmsKKzgwNzAgNDUxYzdjY2YzNmI2N2YyZDFhZjhmNDRjMDA2NjNlYzYxNTNhMzA2NCBsZWdhY3ktdHJ1bmsKKzgwNzEgNGM0NjIxYWE5ZTc2NzdlNjEwOTYzYzNjZDMwMjAxYjIzNmQ4NmExNCBsZWdhY3ktdHJ1bmsKKzgwNzIgYzVhNTY3YWYxM2VlN2NmM2NhOTA4ZGRkYWY4Y2I3M2E3MDExNWJmNSBsZWdhY3ktdHJ1bmsKKzgwNzMgMmUyYmJlOTg1NjIwMjIzNTRkYmQ1OWQ1MTBiY2U2NjFkMTE1YjE4YyBsZWdhY3ktdHJ1bmsKKzgwNzQgNTUxNjkxNWZmZWU3ZDc4Mjc3MWIyZjMzNzc2OGQzMDIzN2UyMThkOCBsZWdhY3ktdHJ1bmsKKzgwNzUgMWYyMDZjOTFkYWVlMTgwMGY5M2M5ZWFjMzU5MzUyZTNiOWI4NTJlOCBsZWdhY3ktdHJ1bmsKKzgwNzYgYjVlNTFhZTlmODMyZTVhMzk4NjBlODQyZDg0MThhOWEwN2MyMGI3NiBsZWdhY3ktdHJ1bmsKKzgwNzcgZDk1NGRjMjQzZWIwN2FhYzUzZjk2NTFjNzFiMDg4MzBjYjMwNTBiYyBsZWdhY3ktdHJ1bmsKKzgwNzggYTYxMDIzYmNhMGE5NzQzNzlkYTcxNTRhMzMwYTE0NTg3OTM2ZDA1ZSBsZWdhY3ktdHJ1bmsKKzgwNzkgMDI5NGE2N2JmYmRiNDM3ZmFjYWM0MjM4ZmRlNTIyODllMWNmZmZlYSBsZWdhY3ktdHJ1bmsKKzgwODAgZjQzNTU5ZDIzYjNkNjhlOTVlYjYxYmEzN2ExNzFlYmQwZmVjZGMwYiBsZWdhY3ktdHJ1bmsKKzgwODEgODU5ODBlYTVlODA1Y2Y5OTBkMjgzZGU4ZGY1MjhjZTI1ZmZlNDQ4NCBsZWdhY3ktdHJ1bmsKKzgwODIgODlhZjViZjhmODczMjA0N2NkNmI5ZjI2MWE3OTdlOWEyNjA1YWE1YiBsZWdhY3ktdHJ1bmsKKzgwODMgNDk1ZmJkZTY0YTczYjVkYjZiOWQyYzRiYzNiOTA5MjVkMGJlZjljYSBsZWdhY3ktdHJ1bmsKKzgwODQgY2JiNGUzY2YwODZlMjIxYWQzZGZiNTQ0YzIyMTkxMjAyMzYzOWFhNSBsZWdhY3ktdHJ1bmsKKzgwODUgNzllNDljYmNlMmVmZDJmMGM2YjljMzg3MDlmMGNlMGIzMjAyNzNlZCBsZWdhY3ktdHJ1bmsKKzgwODYgZjI4ZWVhMDJjZjk0NDYyYmI5OTVmYWIyNDkzMTg5NjQ4MDgyZDgxYSBsZWdhY3ktdHJ1bmsKKzgwODcgMTBlOWNmYTAxMGYwODk3NjFmZTc5Yzk1Y2Q3Y2MxM2Y2NzBlNjU1NCBsZWdhY3ktdHJ1bmsKKzgwODggNWVkM2EyMWNjMTIyOWMxNzk4ODUyNDUzYzFlN2ZkNGQ5MWI1MzFhMyBsZWdhY3ktdHJ1bmsKKzgwODkgOGQ0MDVmNzEyODJmOTZlMDE2OGQ4NjBkZjEyN2E1MDEyNWJiMGU4NSBsZWdhY3ktdHJ1bmsKKzgwOTAgMTkwZTM1YmJjMTVhZTIzMjc4N2RlN2IyMDk1MzFmZDIwMGM2YjI0NyBsZWdhY3ktdHJ1bmsKKzgwOTEgNzI1NGVlMmE4YWJkYTcwODlhZDE0MGNlZWYyY2U2ODQ4ZmMxZmExNCBsZWdhY3ktdHJ1bmsKKzgwOTIgM2JhMDhkNmU5YjdmMjg0MWIyODM1NGUwMzY4YzA4NjJlYmIzNzBjMiBsZWdhY3ktdHJ1bmsKKzgwOTMgYmFlMmMwMTg5Zjg1OTRhOGEzNjY2MjM3MzY2NzBkMDdmNTU3NDg5OCBsZWdhY3ktdHJ1bmsKKzgwOTQgNzA4NTU1NzQ1MTZiODZiOThjNTE1OGRlYTFkMTE0MjZjMmFkMGFkMyBsZWdhY3ktdHJ1bmsKKzgwOTUgZmRkMWUxYTUzMGFmOGMwN2Q1YzI3MjJlZWFmMmIyNjE5MDc2M2M0OSBsZWdhY3ktdHJ1bmsKKzgwOTYgN2ZkYTc4NDFkYjkxODJmOGU3ODQ3YWQyMDQyMTUyNGU3MWE1NGFiNyBsZWdhY3ktdHJ1bmsKKzgwOTcgMDU1NmVhNjg3YTk3ZDgxODEwNTk0MGFjZGU4NmZlYWE3YzFkMWYzZSBsZWdhY3ktdHJ1bmsKKzgwOTggZTE0MTNmYTY0YjgzMWI3NDVkZmE0NWM5Nzk3MjNjMjZjM2MxNjRiOCBsZWdhY3ktdHJ1bmsKKzgwOTkgZjhlNDUyYTFmNjQ0ODNiY2Y2ZWQwYjNjZDM0YjA1Y2E1MmYxYmI1ZSBsZWdhY3ktdHJ1bmsKKzgxMDAgZmE2YzkxYTVmNDFiNzgzODc1NWUzMzc4ZjY1NjQ2OWVkMjZkOWRmMiBsZWdhY3ktdHJ1bmsKKzgxMDEgMzJiYWZjOWU5YzRmYzM2YzgwOWFmNjMwZjI3MGFiNDgwYmQyNzQ0ZCBsZWdhY3ktdHJ1bmsKKzgxMDIgYWNmY2UwMTVkZmRkMzZkZWUwYWFhMWI1YTFjMGNiOWVmNzYwNDgwYyBsZWdhY3ktdHJ1bmsKKzgxMDMgNjk2ZTc1NDA2NGMzN2YwYjY5MzFiYjFhNTBiMzk1ZDg1MGZjMWRiMiBsZWdhY3ktdHJ1bmsKKzgxMDQgNGQxMmU2ZTljMjdkMWU1MzY4YTc0NTBiOTMxOWRiMzU2NzVmYjMwZCBsZWdhY3ktdHJ1bmsKKzgxMDUgOTkyNDgyNWRhNGIzYTY4NTAyZTAxMDcyZTc5MjAzMWI2YmFiMmVkMyBsZWdhY3ktdHJ1bmsKKzgxMDYgZTZhMjMzZmM4YjliNDE0YWQyNjgzODQ2ZjEyNjVhNTJjZmJkN2M1YyBsZWdhY3ktdHJ1bmsKKzgxMDcgOGFmOGVlNzk3YzA5NTJjZjcxMmY4MzY4NjQ5ZGJiNDAyMWQ1NjI0YiBsZWdhY3ktdHJ1bmsKKzgxMDggOGM1NGM3Nzc2NzQ0OTBlODNiYzNiYzA3ZGI4MjFkYWRiZmI1M2NmZiBsZWdhY3ktdHJ1bmsKKzgxMDkgMDBmYzQxM2EzYjhiYzc2ZWIyOGU1NDcxOTI0NDliMzJmM2I3YmE4NSBsZWdhY3ktdHJ1bmsKKzgxMTAgYzY5Yzc1OWY0MzY2YzU2MDU1ZDA0YWI4ZGIyZGFlODAxNWFhN2MzMiBsZWdhY3ktdHJ1bmsKKzgxMTEgZWM5N2Y0MWM3YTA0ZWI0M2Q4OTRlNzVkNDEwYjE4NGNkYTQ4YzJjZCBsZWdhY3ktdHJ1bmsKKzgxMTIgYWNjNTVkNzA0Njc0NzhlMGVlZTg0YWM1OTQyNDg4ZDk0NTU5NjAwZCBsZWdhY3ktdHJ1bmsKKzgxMTMgNzViYTY0YzU1ZjJlMTJjOTUwNGNkZWFiNTYxZGVkZDM4ODQ0YjQwMCBsZWdhY3ktdHJ1bmsKKzgxMTQgMTdjYTdlNGU4ZmQ2ZTgxZmQ5ZjQ4ZWMwNWM3ODdlZTY4YjBmZDc4YSBsZWdhY3ktdHJ1bmsKKzgxMTUgZjkxNDM5ZDhmNjZlNDcyNmZmMWYyMTAxOTg3OGE4MGQ4NjdhYzY2ZSBsZWdhY3ktdHJ1bmsKKzgxMTYgNDM3MDU2NDdmZWI5Mjk3ZDVlZTJmYTUyYWFjNjM3ZDk2NGZmZDU2NCBsZWdhY3ktdHJ1bmsKKzgxMTcgNTdhMjYxZmE1OTZjNmYyNjRiYzdkZDc5MDJhNDUzOWU3NjI5NWRmNCBsZWdhY3ktdHJ1bmsKKzgxMTggNjVlYTQxZjJkMzRkODBmNzc1ZTkxZmNmZTA3MmE5ZjUyMTQ2ZjU3ZCBsZWdhY3ktdHJ1bmsKKzgxMTkgMGVmNzAyYjgwNDZiYTZmYTM5OTE4NTdkNDc0Y2VmNWI1MmIwYjgwNyBsZWdhY3ktdHJ1bmsKKzgxMjAgOTY5NDliOWY0MmNiOTAyNGQ1Mzg5YjI5OGQ1NWFlNzg2MmRjZDUyYSBsZWdhY3ktdHJ1bmsKKzgxMjEgN2MyMDlkYWJkOGM4MDAwMmNmNmVlZmVkMDQ2MWYxNDQ4MDgyOTNiZiBsZWdhY3ktdHJ1bmsKKzgxMjIgZTU5Mzc0ZTIzZmRmNmU0NjU2YmM3NWQxYTkxMzFiMjAyNjVmNzc2ZSBsZWdhY3ktdHJ1bmsKKzgxMjMgYzYzZTI4M2JiMmU0NjYxNDhmN2MxYWY1NGQwNmMwYzQ5ZDBiZWZkNyBsZWdhY3ktdHJ1bmsKKzgxMjQgYjQ5ZDgwMzdhNWNiYWUzZjQwNGM0N2Y0NmY0MzA5OTI2YmMwNGRhYiBsZWdhY3ktdHJ1bmsKKzgxMjUgMGNjOTdlNzVhMzYxMzkyOWY0YzYwOTU2MDVkODFkNTkyMDM3NDEyNCBsZWdhY3ktdHJ1bmsKKzgxMjYgMDdlMWFhYjIzMTE1MzQyM2VlZmQ1NTAzNTY1YjZiYjhlM2QxOGIzZCBsZWdhY3ktdHJ1bmsKKzgxMjcgZDQ1ZGM3ZmU0MmFmOWUzZTk4NjE3OGY3ZDBmYWM5N2ViZTRhM2FlNiBsZWdhY3ktdHJ1bmsKKzgxMjggOTVkNmUxNzk1NWVmYzhiYmQ5MjRhNDY0NTUyZTlmYzUzZWEwYmE2ZSBsZWdhY3ktdHJ1bmsKKzgxMjkgNjAwOWQ1MzkwNTg0OGNlZjkzOTFkNWQyZTBmNzg0MDM5ZjZiMzAwNCBsZWdhY3ktdHJ1bmsKKzgxMzAgMzA5NjAyYzg3OTI5MjQxNjljZjA3OWM5MTkzNDFiMTIwNzU0ZTRhNyBsZWdhY3ktdHJ1bmsKKzgxMzEgOGUxNGQ1NGE2NDE5ZDI5YzlmM2EzZmYwMmIyZjI3ZTMxODMxYTUzMyBsZWdhY3ktdHJ1bmsKKzgxMzIgMGI1NzQyZDMxODlhMjQwZWU0ZTM5NzM5YWVlY2I3MDdkYWEzNGFhYSBsZWdhY3ktdHJ1bmsKKzgxMzMgZDE3NWNhYzU1MGI5OGE2MThlNDM1NTcyYWVmNTUzOWI4NmVjOTEzNyBsZWdhY3ktdHJ1bmsKKzgxMzQgZGRlZDQzOWI3YjhhYjE2MTIxOWI3N2M3MWU3MDhlYTc4ZTY2OTIwMSBsZWdhY3ktdHJ1bmsKKzgxMzUgMTI2NWNhNDRmMDRiOWJjYzlmZjk5ZGRiOWNlMjg2ZDA5MmRiNzViNSBsZWdhY3ktdHJ1bmsKKzgxMzYgNmY5YTJjODc0MDE4ZWQ4YmZkYWUwNDJkYmZiYjVlNDk4MmYwNDA3NSBsZWdhY3ktdHJ1bmsKKzgxMzcgZWZkZWU3ZDQzMjcwNGQwN2EzNzU0NWRlMGMwNWQ0YmVlZjVmNGEwMiBsZWdhY3ktdHJ1bmsKKzgxMzggM2RiNzU0YWJmZjM2MmYwOTNlZDhiODFmMzM4NGZjZTdjOTEyZGNhMCBsZWdhY3ktdHJ1bmsKKzgxMzkgNmJkM2EyY2VjMzUzMGZlN2ExMWQxMmJlNjU1NzQwNzg4ZjdiY2M3ZiBsZWdhY3ktdHJ1bmsKKzgxNDAgMTgxNDk5ODBlY2U5ODM2OWU3Mzc0YmU2MmFlNThhNTBiMWU3ZTIwNiBsZWdhY3ktdHJ1bmsKKzgxNDEgMWRmYTRmMTdkOGZmZjYzMWRlMGQ3OTAyNjBkNDdjMTA1MDg1ODQ1MyBsZWdhY3ktdHJ1bmsKKzgxNDIgYjViYmU1MjIwZjZiYWE5NjEzMWM5MDY2NGZmODBjYmY3NTNlNWJkYiBsZWdhY3ktdHJ1bmsKKzgxNDMgMzQ3MDY4OWE5N2Q3MmEwYWVhYzAxNzM5MGQ4NDM4MTM3OWMwZTMzNiBsZWdhY3ktdHJ1bmsKKzgxNDQgNGE1ODQ5N2MxNGE4MTY3YjMxY2Q5ZDU4MGYxN2EyM2FkMWIyMjk0ZSBsZWdhY3ktdHJ1bmsKKzgxNDUgNjc2NzlmMmVkMjE3NjNiMTQ2Zjg0MTI5OTk2MTc4MDBlNDU5YTA2MCBsZWdhY3ktdHJ1bmsKKzgxNDYgODUxMzRiOTdhZTRkNTQwNzA2YzM2ZTdkZmRkMjA5OTIwYWJhYzg3YyBsZWdhY3ktdHJ1bmsKKzgxNDcgYzM1MDFhOWQzYzIwNTlmMWVhOGY5YTE0NWMxNDVjMjM2NDI2N2IwNSBsZWdhY3ktdHJ1bmsKKzgxNDggZDY2MzA0OTYzY2E3ZmU5MTY4MGNlZDY3ZmVhNzVmNThjOWVkNTA2YyBsZWdhY3ktdHJ1bmsKKzgxNDkgMTkyNmU2NDkyZDNmNzhkNTUwYjVjYmY4MTIzNTg0OGYyMWI2YTRiOSBsZWdhY3ktdHJ1bmsKKzgxNTAgYTlmZmRmZjA1NTdmOTVlZjY1OWQzNjk1ZjFmZTM3ZmRiMzI4MDU1NSBsZWdhY3ktdHJ1bmsKKzgxNTEgZTVkZTcwNzMwMGUxN2YwNzU0NzNlOTc5Mzc2MTlkMWMwZmNhZjBlZiBsZWdhY3ktdHJ1bmsKKzgxNTIgZmQ2YWNhZDdjYzdhOTdhNGRkNDFiNTZkNzk3YjRhZmM0NjJlY2E3NSBsZWdhY3ktdHJ1bmsKKzgxNTMgZWY4YTE1OTAyYTQ4N2FjMThjMzFjOWM5OTcyMTQ4MTZhNGFjZmIwNCBsZWdhY3ktdHJ1bmsKKzgxNTQgNmZkYTFlNmUyNjE2Y2I1N2IyYTBhMDFjNTMxODZhMTczZTA0ZmEyYSBsZWdhY3ktdHJ1bmsKKzgxNTUgNjRlNjExNjU1ODlhNzkzMTlhZDg5NmFjZjQ0YzdhMjkzMmI0NGU0NiBsZWdhY3ktdHJ1bmsKKzgxNTYgZDU5MTFjYThkNGViM2FmNGNmYzM0ZjZkN2M5NDkwMzVmNDYyYjEyMiBsZWdhY3ktdHJ1bmsKKzgxNTcgMTJkNjRjZGJhYWEyM2UyYzM3NDJhNTUwOWUzMjcwOTM2MGJjMGEwNSBsZWdhY3ktdHJ1bmsKKzgxNTggZDg4Y2I0ZDI2ZjEzZWQzODI1OWM5ZmQ2YjY3MGVkOWJmNDY4YjMyNiBsZWdhY3ktdHJ1bmsKKzgxNTkgZWE3MmJmZTM5NWJhMjE2MWVlOWE1ZDU3MDMzZjZkNjQzMTdkYTg3MiBsZWdhY3ktdHJ1bmsKKzgxNjAgY2QxYWU2MmVkMmNmZmMzYjhhYmUwYWZmYzQ4MmM1M2IzNGYyZmRlOCBsZWdhY3ktdHJ1bmsKKzgxNjEgYTA4MzFkZTIzNThjMzBlMjI4MjQyNTBkZDRiMDNiMDUyOTU4YmM3NyBsZWdhY3ktdHJ1bmsKKzgxNjIgMDlkODdhZDc1Mjc4OTg3YTlmNTVjYjllNmIzYTZhZDA1ZWExMTZjZCBsZWdhY3ktdHJ1bmsKKzgxNjMgMjA3N2EzMmQ4NThlZjY1MjVjZjJkNjAzMzgxNWI5MzZlMDRmZDI0MyBsZWdhY3ktdHJ1bmsKKzgxNjQgOGI3ZmFjZTliMWE3ODJhNjk5OTFhNDBlOTEyMmRmMmUxMWIwZGRiMCBsZWdhY3ktdHJ1bmsKKzgxNjUgZTc4ZDFlMGVjYzU5ODdjMjNjNDc1ZjNlNjI3NGMzMzA1OWU0NmUxMSBsZWdhY3ktdHJ1bmsKKzgxNjYgNTJjMTNmMTM4OWVmYWQ0ODk5YjE5OTBjZTBkZTRlMjZjMGU3NDNkYSBsZWdhY3ktdHJ1bmsKKzgxNjcgNGU4MTdiMmFkOTkxMGJjOTYwMzZmMjk1NWI2MjY3NzFhN2E0MmM5YyBsZWdhY3ktdHJ1bmsKKzgxNjggMzgzODNhZGEzODhlOWEwMjQ5MWY5ZjdlNWEyMmVlZWI0ZDg2OWFjZSBsZWdhY3ktdHJ1bmsKKzgxNjkgNDQyOGYxMDg0YjZjNjcwMzhlYWY5NDNlOGMwYTZkYTc4NjllZWUyNiBsZWdhY3ktdHJ1bmsKKzgxNzAgYTk3ZmRlMjgxOGZiZTQwZjMxZDc3MGIwY2ZiNmI5MjJjMWEwMjgwMCBsZWdhY3ktdHJ1bmsKKzgxNzEgMDEwOTA5ZGZjMzNlMmUwNmMyZjZjZDBiODYxNjQzYjUwMzY4YTMzZCBsZWdhY3ktdHJ1bmsKKzgxNzIgMDJlYTlkMDIxNDI3NDc2MWZlZGIyOThlMzQzY2M3MzNjM2UwYmIxNSBsZWdhY3ktdHJ1bmsKKzgxNzMgOWI2MjFhYzA5MjEyMWMyNTZjZmYzNDU0MTdhMTg3ZTE4YzBlOTBmZSBsZWdhY3ktdHJ1bmsKKzgxNzQgODhiMGIyYTNhYWI1NmE1YTk5NzJlYTAyNWZmZGJhOWVlNzM2N2YxZiBsZWdhY3ktdHJ1bmsKKzgxNzUgYmE4NjBkYzBhNTg1MTRmMTY5YzgwZTEyZTc0ZTI1MjRkZWFhZTM1OSBsZWdhY3ktdHJ1bmsKKzgxNzYgNzZmZDUyODFmOThhN2I4ZjgzOGQzODlmODk2MDJhMDU0NmJkMGY3ZiBsZWdhY3ktdHJ1bmsKKzgxNzcgNjBmY2E0NzgzNzkzNTZmOGQ5M2RjNGYyYTFjZTIyNTFlYmNkZTc4NyBsZWdhY3ktdHJ1bmsKKzgxNzggM2ExYmIxYzk4YzE0MGU4YjQ4MjQyOTFmMWMxNzJkZTFmMjZkNTMyNiBsZWdhY3ktdHJ1bmsKKzgxNzkgNTc2NjU3MDM4MWYyNGFlOTc5MzI4MGNlNTE0ZmU4NDUxMTVkYjVhYSBsZWdhY3ktdHJ1bmsKKzgxODAgMDNkZDFkZWQ1Y2IzZTg2NGU0ZmUzMDBjNWQ3MDdhOWFmYmNiY2M2MyBsZWdhY3ktdHJ1bmsKKzgxODEgYzY2MjM2YjdjYzZjYTRiNGMyYzRiYWIxOGFhZTFjZDI2N2UwZmJhMSBsZWdhY3ktdHJ1bmsKKzgxODIgYmEwOWI0MDdhMGJiOTNmNjRhNTU2NTBkMWFjYzk4NzY4M2FjOTk5MyBsZWdhY3ktdHJ1bmsKKzgxODMgZjhiYmQ3MWZiODE5YTU0MzliZDcyMWI5ODAzYjcwNGY1OTI3MmExMiBsZWdhY3ktdHJ1bmsKKzgxODQgNDA0YmEwMTdhZDQyN2I4MDAyMjIyNWU5MDU5YWNhNzg0ZjQzNDAzMSBsZWdhY3ktdHJ1bmsKKzgxODUgOTljZDM5ZjZhNTJkYjEzMGRmMjgyYzFiNzJmOTJhOWVhYjdmZDBhNCBsZWdhY3ktdHJ1bmsKKzgxODYgNjcxODMyNDcwYWExMTM0NzZlZDU0MGYyYWYxYWU0ZTM4NThiNTkzNiBsZWdhY3ktdHJ1bmsKKzgxODcgZjFkYTI5NDc3MmNmMmI1ZmQ5ZmUzMTZlYzhlY2I3ZWY4YmNlNzRiNSBsZWdhY3ktdHJ1bmsKKzgxODggZmIxNzBjZTgyOTUxMjkzNzRkNDNjMjg5YjVjNmViNzFlZGJhNGE0YyBsZWdhY3ktdHJ1bmsKKzgxODkgNDMzYzllN2VkYjYwODkwN2ZiZDkzOTc2ZDU3MWUwY2E4ZWNmZmJhOCBsZWdhY3ktdHJ1bmsKKzgxOTAgZWNlZTU1YmFhY2UzMDg5NmYxYjJlYjFkM2QzN2FiYWM0OWYzYzBkMSBsZWdhY3ktdHJ1bmsKKzgxOTEgZGVlMGE1OGE5MTMyMjI2ODA4YTM0ZGE4NWRkZWI0MWYxMzZlMDM4MCBsZWdhY3ktdHJ1bmsKKzgxOTIgMzc2MzVlZWEzYmNjODM5N2RlNDE4YTQyYWYzODdhY2Y4ZDgzZTFiMSBsZWdhY3ktdHJ1bmsKKzgxOTMgY2U2NGE4MTM5MjE2NjYwNTVhOTMwYjUyNDk0YjExMTFiNGQ1M2VhYSBsZWdhY3ktdHJ1bmsKKzgxOTQgM2M2NzQzNmEyOGU2MWIwMGM1YmQ1MDY0M2YzNThlNDhlNzI2ODRmMyBsZWdhY3ktdHJ1bmsKKzgxOTUgNTVkZmY4MTY5Y2Y1NGMwMzFhOGQ4NDYxMTg5OGNhMzM4YzI5Y2Q4NCBsZWdhY3ktdHJ1bmsKKzgxOTYgM2IzOGU4ZGI1ZjIxZmRmZWNkNjQ3NDBlNTg3MmY2ZWQzZGZkMzk5OSBsZWdhY3ktdHJ1bmsKKzgxOTcgNjEzYmQyMzdjZDU1YzUyMTE0YzljNjA1YTRhYmY4M2RmMmE3OGUwYiBsZWdhY3ktdHJ1bmsKKzgxOTggMTM4YjE3NmVjNDBmNDNjNGMwYTVjYzQ0N2Q2NTUyMjY4YTc2ZTkwOCBsZWdhY3ktdHJ1bmsKKzgxOTkgNmM5NzM2ODY1NjA4OTA1NWQ4YmJmNTVhMzY1ZDJkNWVmZDJhYWExZiBsZWdhY3ktdHJ1bmsKKzgyMDAgYmVlZTM1MWYxZjcyYWVmZjU2MWVkZmY4NjZhOTI4MWZiOWRhNjE3YiBsZWdhY3ktdHJ1bmsKKzgyMDEgZjlhZWE3MzhkNDM1MWVkMTQwMTg1MDRmMDYxOGVlOWMxYTE3NTZjZiBsZWdhY3ktdHJ1bmsKKzgyMDIgOWEzYjExNWFhNDkxOTBlZmZkYzBiN2U5YzllYmUzNzU1ZGIwYmY2OCBsZWdhY3ktdHJ1bmsKKzgyMDMgNTdhN2JhMTQxMmUyNjVlYmIzMDIxNzRjNDA5MTZlNjczZjk5MDJkMiBsZWdhY3ktdHJ1bmsKKzgyMDQgZTBkYTNkODlkNGI2NWZiYWI1ZDdjYjMzZWFkMDkxMDgxMWFmMGFjZCBsZWdhY3ktdHJ1bmsKKzgyMDUgMDRjMjgyNzRjMjgxODEyMDk4MDQwODc0ZmIzZGIyOTk1OWY5NmMxYSBsZWdhY3ktdHJ1bmsKKzgyMDYgNjE3ZjIwMzM5NGU3M2Y4NWViMzA1ODQ4YjU5YzQ4OWI2MWE3NTU1NiBsZWdhY3ktdHJ1bmsKKzgyMDcgOTk2MDc5NzQ0NTY2NWQ2MmJjODlkNWMyNjQ4NDE3MzBmNjMyZTEzNCBsZWdhY3ktdHJ1bmsKKzgyMDggNzU3NjJjNjcyMDBjYWY3NzE0MTZlYzQyMjljODViY2Q4MWQ3MmM4OSBsZWdhY3ktdHJ1bmsKKzgyMDkgZjAyN2RkMGE4NWU0ZTVlZGNiMGExZGQwNDlkMjM3ZTZiMzkxYTVkZiBsZWdhY3ktdHJ1bmsKKzgyMTAgOGY2Y2M3MTdkODE3YzA3YmZhN2M3MzY0ZjZiNjBjZjk5YWRiN2ViNyBsZWdhY3ktdHJ1bmsKKzgyMTEgYTk0YjBhMTIyYzk4NjkzODZkM2JmNWY4ODhhZjY2NzIwYjFhZjUxMiBsZWdhY3ktdHJ1bmsKKzgyMTIgNjM0NzI4ZDhiYzk4Y2ViYjU3ZTUwYzkxYmJlMDE3YzJlM2Y5YTBlZCBsZWdhY3ktdHJ1bmsKKzgyMTMgNGRjYTUzMjllOGZjNmRkMzU2ZTdmYTU4MTVkMjA1MmIyZjk0Y2EzZSBsZWdhY3ktdHJ1bmsKKzgyMTQgZDBjNmI0OWQ3MTAxOGUzNzQ1YjA2MDZlZDFjNDIzNGZhODUwYjc5OSBsZWdhY3ktdHJ1bmsKKzgyMTUgYzI5ZmMxN2Q4ZTRmZDQ5NzgzYjk5ZTdiNmVmYzEzZjEzNDlkYzNiZCBsZWdhY3ktdHJ1bmsKKzgyMTYgNzFlMTEwODJkNzMyMzU0NzNmMTU4MmE1ZjEyYzY5NGJiMWUwOGZmOCBsZWdhY3ktdHJ1bmsKKzgyMTcgNmEyMThmYThiYTliOTg3NGQwZWRjZTRiZGNjZjg3ODgyYWJhOGFjYiBsZWdhY3ktdHJ1bmsKKzgyMTggMTM4NDYzNzkzNDdkYTUwZTgxZDc5YTU3ZTNiMzBmODcyYjRkM2NjZCBsZWdhY3ktdHJ1bmsKKzgyMTkgODI3YTJmM2U2NDgzMmFhMDA3ZjJmYmYwZmY4ZTI2Zjk2YTc5MGU1YiBsZWdhY3ktdHJ1bmsKKzgyMjAgYzYwNmRkNjE1NDRhZTA3YjE5Nzc1YzUxZDllMjJmMjk2ZGE4YmQ0OSBsZWdhY3ktdHJ1bmsKKzgyMjEgZWE4YTBiMDkwOTA4YmQ0ZDY4YWY5MTRhZWNiZGUyMTExNzgzZTA4NCBsZWdhY3ktdHJ1bmsKKzgyMjIgZTIyZWVhNWQxMjZkOWI0MDg4OGI2NDMwMzdmM2ZmM2Y0NGIyMGM2OCBsZWdhY3ktdHJ1bmsKKzgyMjMgYWJlODYzNDQ2NmIyMzZjMTVmMzhiMzM0NjkwOGI0ZTY5NDhiYzU5MSBsZWdhY3ktdHJ1bmsKKzgyMjQgNDllMGUwNzJkOWNhYjU5N2M5ZmZhYThlNzgyNWI2MGM1ZDE2NjA1ZSBsZWdhY3ktdHJ1bmsKKzgyMjUgMWMzNGEwY2U3ODU4NTczYjJlMzA3MDhiY2NmNzZhMjlkOGI2MmU5ZSBsZWdhY3ktdHJ1bmsKKzgyMjYgMjBlNjM5OTg2ZmI5YmIyZDNhZGJmYTcxYzE4MGNiMGQ0ZmU4MTgwNyBsZWdhY3ktdHJ1bmsKKzgyMjcgNWE3NDI5YWM5MGM4M2IxYmIxNDNlOWM1YjM2MTEzOGU3ODkwYzc0MSBsZWdhY3ktdHJ1bmsKKzgyMjggODdkNjU4YTEyOGY5MWI1YzY4MmMxNmUyYTY1MGE3ZTkwNGJiM2Q3MiBsZWdhY3ktdHJ1bmsKKzgyMjkgZmE2ZDAxM2M5NDJiMDc3NWE3YmFlMjQwMWY4MmZiOWMzNDY1Y2Y4MyBsZWdhY3ktdHJ1bmsKKzgyMzAgNjRiYzc4MmE0MmVjNzMxNTlhZWFmMDdiNDNkMDhjNWM4NWEwMDU1NSBsZWdhY3ktdHJ1bmsKKzgyMzEgOWVkMjZhZmVlYWE1MmZjYjE2NThhZDAyMzZlOTQwNmU1OTJjYzI1YiBsZWdhY3ktdHJ1bmsKKzgyMzIgMThhNjM5ZGIwNDhjNzk5MGFkNzVhNDU2MjI1MGQ3NGY1YzU3Y2U5NSBsZWdhY3ktdHJ1bmsKKzgyMzMgNGI0MmVlYTEwYTAyOWU2MzNmYjhlMzY3ODE5YzNkNjdhMTJjOGNiOSBsZWdhY3ktdHJ1bmsKKzgyMzQgOGMwZjc0N2YxMTQxOWFjZmRhZGZmYjI0MTZjZmI2MzZiNDEwZmU0NyBsZWdhY3ktdHJ1bmsKKzgyMzUgYmZlOWJhNzRjMTllZDc2ZWQ3OGEzMDI3ZWYyYmYzY2ZjYzY2OWM2OCBsZWdhY3ktdHJ1bmsKKzgyMzYgOTE5Mzg2ZmIzZTUwNDMzMjI3NTdiYWI5MDM1MjcyNjUxZWY3NzQyZSBsZWdhY3ktdHJ1bmsKKzgyMzcgMjAxYzhkMDZlM2I3ODY3NTE5ZmIzN2ZkODE3NmJiZWVkNjA5MjAyOCBsZWdhY3ktdHJ1bmsKKzgyMzggYThlMzFkOTA1ZDJjMGZlOTc2ZjAyZDM1ZTM0NzMyOTNhNWU0MDliYSBsZWdhY3ktdHJ1bmsKKzgyMzkgNzliYjk5OTdjZTVmYWEwYjc4NmQ0NjNlODNhMWVkOWU0ZmE5MDAwMyBsZWdhY3ktdHJ1bmsKKzgyNDAgZmQ0ZTlmMjkzYzc3YThhODRlNGZiODQzMmJmMzU2MzZkNmJmYjRiMyBsZWdhY3ktdHJ1bmsKKzgyNDEgNjJmZTgwMGQxNzFhNzgwYzBlMDUxOTlkNmQyY2Q5ZDk1YzMxM2I4MSBsZWdhY3ktdHJ1bmsKKzgyNDIgZDY0MjFiM2VkMWRhNjViNDg5MDFhMzYwMWFiYjAyNTk3NmEzZDc3NiBsZWdhY3ktdHJ1bmsKKzgyNDMgMzA5YWFiNGMwYjk4ZTU3NDQ1YWQ5NzdlYmJhN2YyZmZiZWI0MDE5NyBsZWdhY3ktdHJ1bmsKKzgyNDQgMDNhNTdhZjcyMjE4OWNiZmE3ZGZjOTA5N2JhNmZkNGZmZjM5M2QyYSBsZWdhY3ktdHJ1bmsKKzgyNDUgN2RlNTlmNDdlODViOWNhZGYxNzc5OWRlZGQxNDFiMDgwNDRmMTUyNSBsZWdhY3ktdHJ1bmsKKzgyNDYgYjc2NDk0OTFhZTkyNDZhNGRlY2YzOTU2MWQzNjM1ZDZmNDAyMGJkOCBsZWdhY3ktdHJ1bmsKKzgyNDcgMzhlZjA5MTk2NGYwMjJmYTNlYjk1ZWU0NThmMTk4MzExY2M0OGRlNiBsZWdhY3ktdHJ1bmsKKzgyNDggZmI4ZjA3OWU0ZWZmODZmNjU5NWM4ZGRmNzNhODI0NGNiMWFiNDQwMiBsZWdhY3ktdHJ1bmsKKzgyNDkgNWY3ZGRiN2NhMzQ3Y2Y4ZjA1ZTBiOTQ1ZTVjZTZjNWRjOGM3MDAxMSBsZWdhY3ktdHJ1bmsKKzgyNTAgNzgzMTkyMjFlZGIyZjI4Y2RhZGQxYmNkMmYxOGQ4ZTZmNjRiZGI1MSBsZWdhY3ktdHJ1bmsKKzgyNTEgM2VmMjU2M2U4M2VlMzkwOTBhY2Q2MTJiMTdiN2Y4NjIyN2Q4MTZlYiBsZWdhY3ktdHJ1bmsKKzgyNTIgYzYwYmViNTYyNWU3MDE2NWY5NzhkYWQzYzFiMzAwOThiMjg4NGFjYiBsZWdhY3ktdHJ1bmsKKzgyNTMgZjZkZTA1MDA1NTc2OTVhYTcxOGZkZjBlNzMyMzlkMzg1ZTZjODNlOCBsZWdhY3ktdHJ1bmsKKzgyNTQgYjQ0OWNkODVkNTE5NzE5OTNmMGYwZDBmN2MzNjZhNzQwZTExOWNjZiBsZWdhY3ktdHJ1bmsKKzgyNTUgMDQ5ZDk0ZmZjMDZhMDEyNjdiZTIxNTdmZTNlMjk0ZmM0YmQxMTAxMiBsZWdhY3ktdHJ1bmsKKzgyNTYgMzQyODQ4N2IyOWEzODVjOTYyNjEwYTEyYTFmZDhlMDdjNDNmMDFjMCBsZWdhY3ktdHJ1bmsKKzgyNTcgYmIwYWNmZDRiNzIwYWZkN2EwNTFmMGY0ODQwNThiNjJlOTVlYTU1ZiBsZWdhY3ktdHJ1bmsKKzgyNTggM2I4ZDAwNDAzZGI4NWRjMzc3MzNlYWE3M2UwMjg1NzMwZTNjYjY3OCBsZWdhY3ktdHJ1bmsKKzgyNTkgYjgzZWNmNmY4NzMwMGMxYjQ3NzIxM2MyYmM5MzY0MTYyNGIzNjVjNyBsZWdhY3ktdHJ1bmsKKzgyNjAgOWNmYmM5YmI2NDIzYjA4YmI4YWY0NWJiZjFkYzhlZTZjYjgxNjUwMSBsZWdhY3ktdHJ1bmsKKzgyNjEgYzA0MzkwMWZhMWZlYmNiZmEyNGNjN2QwM2Q1NmJlZTk5ZGRjZmE4ZiBsZWdhY3ktdHJ1bmsKKzgyNjIgYjI0NzI5N2JlOWEwMjVlYzY0YjU1MDI2YzgxMTIzZTEwYTM1OWFlNyBsZWdhY3ktdHJ1bmsKKzgyNjMgYzU2OTg3M2VlYjE1ZDgyZjFiZWI0ODc3ZmQ4Yzc3Mjg2Mzk2Y2ZhMyBsZWdhY3ktdHJ1bmsKKzgyNjQgYjQyMGI2NGE0MDk2N2JmNzU1ZjczMDRkMDg1ZThlMjY5YmRkMzc0YiBsZWdhY3ktdHJ1bmsKKzgyNjUgMzFjYWUzNzRmNzg2NTY3NzMxY2ZiYWRmZjcwNzllOWUzNWRkNWVhNSBsZWdhY3ktdHJ1bmsKKzgyNjYgODhlNmFlMTA1YWI1ODEwZWY4YzI5MTc4OGM2ZjBjOWYyNzBiNDdhNCBsZWdhY3ktdHJ1bmsKKzgyNjcgMWQ0MTdlOWM3MmNmYWM3YjYzYzZlOWJkYWQxMmEwM2ExOWRiZjZhMiBsZWdhY3ktdHJ1bmsKKzgyNjggMmI3MzcyZWNkNTA3MmIwYTRiYjFhZjViY2NjYjJiMDUwYzBjMDhmYyBsZWdhY3ktdHJ1bmsKKzgyNjkgZGZmYWJjNjIwZTRlNDZkMDE4ZGI1ZDM2YjcwODI3YjFkNmE1NTg5ZiBsZWdhY3ktdHJ1bmsKKzgyNzAgNGNlNzgyN2EzNjIxN2I2NDhmNzE0NDIzYTlmMDRiODU3NDBhMTZiNiBsZWdhY3ktdHJ1bmsKKzgyNzEgZDc5YzRmYmIxOTgyYTFlMzM2MmQ5MzU4ZmJjZTczOGFiMDViMTRhNSBsZWdhY3ktdHJ1bmsKKzgyNzIgM2QxZDgwNTUwODdmYjc4M2QzYjhiODYzNTBkOTVmYzBiNjkwODAwOCBsZWdhY3ktdHJ1bmsKKzgyNzMgNzNjZjU4MjYxYjgyMzQ4MTMzMzJmZDBmOTQxYTM0ZDM5OTU4NDZmYyBsZWdhY3ktdHJ1bmsKKzgyNzQgZDY4OWQyYzRmODQyMGIwMTk1OTVjZjVjMzI5MWMzZDNhNTQ4MmQxMiBsZWdhY3ktdHJ1bmsKKzgyNzUgMjRhOGM1NmRlMjE0NDRlYmYyYWVkOTRjZjc4ZjE0MDZkODBiMmI5OCBsZWdhY3ktdHJ1bmsKKzgyNzYgZTg2MmQ5YjAwMjQ2YWJkN2M2YzQ0OTA4NGIxYWQxZmMzMzQ2YTQ3NCBsZWdhY3ktdHJ1bmsKKzgyNzcgN2U4ZWQ5NjUwZmNjMTE4YzczNzgwY2UyNDg3Nzg2OGVkNDNiMjQwYSBsZWdhY3ktdHJ1bmsKKzgyNzggZmUzZTdhMDU1ODM0MzY5MDFhYjEwNTQ2OGZiY2ZmOTQ0OWJhMzI2MSBsZWdhY3ktdHJ1bmsKKzgyNzkgZTQyMzkxZDY3NmQxMmQwNmViOTI0YmVlNzEyYjg0YjAwZGU2MjkwMyBsZWdhY3ktdHJ1bmsKKzgyODAgYjU2ZDUyN2E0MzNmNWE1MDU3OTI4NTVjMDljZGE2ZDdmODhlNGEyMyBsZWdhY3ktdHJ1bmsKKzgyODEgYjdjNjAwZWNjMjdkNDIwMGUzMWFkOGJiOWRmYWMzMGFmNGJjZGU1ZSBsZWdhY3ktdHJ1bmsKKzgyODIgNTE4ZDRmMGM4ZmNjNDk4MDI3NjAxODJhOTAzYTRhODczY2NlZjljYyBsZWdhY3ktdHJ1bmsKKzgyODMgNWE5ZjNjMjA3MzM2NjlmNWMwYjRhZTllNDdmYzIwOGI5MGVlMjNlZCBsZWdhY3ktdHJ1bmsKKzgyODQgNTA4MDNjYTU4YjFmOTFlMjVjOWM3MmE2OGMyNzYwYTRmMmM3ZTU3NyBsZWdhY3ktdHJ1bmsKKzgyODUgZGZmZDIyMTQ2YWFiOGNjY2Y4YTM2YzE0OWQ2YjMwN2Q4YjY4NjMxNyBsZWdhY3ktdHJ1bmsKKzgyODYgNTEyMGVhODZiMjVkNmQxMWFlZWM4NTRjNjQ4ODE2YzY2NTVlYzJmMSBsZWdhY3ktdHJ1bmsKKzgyODcgNmQ0MGViZDkyMjI3OTMwMjIwOTliOTJmMDE0MDdmNDM1OGRmY2YyYiBsZWdhY3ktdHJ1bmsKKzgyODggNThhZWI4NzJkOTE1MGQwMDIxODUzZTk0Y2MyYjgxODY1ODUwMzNkMiBsZWdhY3ktdHJ1bmsKKzgyODkgZjUzZDM2M2VmNjdhOWVhMjhiMzk5ZDVjNjIyOTJiMjllZTFmMTMyNCBsZWdhY3ktdHJ1bmsKKzgyOTAgZDMyMGNhODQzNTEyMjI0MDI3YjczM2MyNzE4ZDA1MjI1YTI1YWJkMSBsZWdhY3ktdHJ1bmsKKzgyOTEgNTVlYTU2ZWUyMGY2YmQ1NjY0MzcxMmQ3YTgwNDAyZjhjYzRhMjJhMSBsZWdhY3ktdHJ1bmsKKzgyOTIgZDhhNGYwZDkyMjFmMDc1YjE2MDFmNTMxM2EzMWY0ZmFkZDI1NjgzNCBsZWdhY3ktdHJ1bmsKKzgyOTMgNmEwZDdjZjE5ZDM4ZmFjNTdiOWI5NGI2Nzk3ODIxYzE5NzY4OGExMCBsZWdhY3ktdHJ1bmsKKzgyOTQgNDhiOTRkZTg1YmYzNWYyNDQyZWE1NDhhN2I0ZTM1NDVmZDY4NmFjNyBsZWdhY3ktdHJ1bmsKKzgyOTUgMzQ2OGVhODY0NWNhNDIzOGMyYjQ1MDI0MzUxZTVlMGZhZTVkMWJjNCBsZWdhY3ktdHJ1bmsKKzgyOTYgMGFlOGM3ZDMzNDY0ZWUwYzdhM2MzMGIxODkxNDc3OWQwNTEyMzUzOCBsZWdhY3ktdHJ1bmsKKzgyOTcgOTFkZDlkNzRmM2IzY2IwNmFlMGIxNzYwYzcxM2YxZWMwOGZhODI5MiBsZWdhY3ktdHJ1bmsKKzgyOTggNzgzMjFhODRkNzNlNWNkMzdkMTc1Zjk5NWRmMjZhYTdjNjhkMTQ4ZSBsZWdhY3ktdHJ1bmsKKzgyOTkgZDNmMmRmOGMyMjg2YzA1ZWI4NTFkYWMzMGQ5ZGMzNmQxMGFhNzQ3OCBsZWdhY3ktdHJ1bmsKKzgzMDAgYWQwNGQzODdhY2VlZWU4MWNlZWMyNmMyOWUwMDk4ZGVmZTY5ODcxZiBsZWdhY3ktdHJ1bmsKKzgzMDEgM2MxNWFlMGZiNmFkNzg1NWIwNDA2NGJlYmM3ZWY3Yjg5ZmI1YWFjYSBsZWdhY3ktdHJ1bmsKKzgzMDIgMGMzMzYxMmYxMWQ2YjE2Mjc4ZjM5YjVhYjI4YWFhZTA1MjFiYTc5YSBsZWdhY3ktdHJ1bmsKKzgzMDMgMDk2NWQ5ZmQxODYyZGQyMzM3ZWY4NGZjYWFlOTVhNjUyNTg5Njk4ZCBsZWdhY3ktdHJ1bmsKKzgzMDQgYTc5ZDBjZWYxMGExOWZkZDA0ZGRjOTY3MzZmYjRjODkyOWJiOWZjOCBsZWdhY3ktdHJ1bmsKKzgzMDUgOWZhMmJkOGEyYjc4YTUyNmQ4MDI5YjU1MDRjMjIxYzU0NGJiZmRlYSBsZWdhY3ktdHJ1bmsKKzgzMDYgZjExMjdkNmZjZDc0MjQ1NDIwNTMxMTBlYjI0YjMxYTExMjIxMGEyYyBsZWdhY3ktdHJ1bmsKKzgzMDcgMjI2YmNhODU4NDZmNDE4Zjk1OTkzMTJlNjRiM2U3YjRiNmEyMmU1MyBsZWdhY3ktdHJ1bmsKKzgzMDggOTg1YjdiZjQ3NTViNmNmZTkxYTQxMjkyZmExZjNjYTA1ZjM4MGVmMiBsZWdhY3ktdHJ1bmsKKzgzMDkgMjg1ZmI2YTk5ZTVmODVmNTc3YmQxMWFmNjUyMDg2MjM2NTE1OGRjNyBsZWdhY3ktdHJ1bmsKKzgzMTAgODZjMjc5YTg0OGViMmQ1MDE2MTM5NGQxMzdlMTdhNjM1YWFkZTI2NSBsZWdhY3ktdHJ1bmsKKzgzMTEgOTFhZWExYWY2NTRmZjE1OGYxMTA4OWVmMWFiMjQ2NzEwMjIzYTUxYSBsZWdhY3ktdHJ1bmsKKzgzMTIgYjkwNjNmNmY4MTFjYmZiOThlNDg0ZjkwZDU1ZDM0MzMzYTkyYmI1ZCBsZWdhY3ktdHJ1bmsKKzgzMTMgM2E3OTg2Nzc1MDZjZjA2NzU4NmZiOTFlY2VkYzAwYzdiYjhlZDU1ZCBsZWdhY3ktdHJ1bmsKKzgzMTQgMmU5MTdmOTM3MmUwM2E1NGQ3MDg4N2E3MWY3MTQzN2E5Mjc1OTI2OCBsZWdhY3ktdHJ1bmsKKzgzMTUgZWQ1ZGIwYzJhM2YzNDQxNzE5NmMxMjhlMGEyMzNlYWZiYmM2MWJlNCBsZWdhY3ktdHJ1bmsKKzgzMTYgMTc4NmNjNDE5ODg2ZWE2NmExNmMzYzQwZjNlNmY3NjIzMDNjZWMxNiBsZWdhY3ktdHJ1bmsKKzgzMTcgOWY4ZmYwMmVkZTZkZWViNWQ2NzcwNjQxZjg4ZTg2ZmNiOTJhODlhMSBsZWdhY3ktdHJ1bmsKKzgzMTggZTE2OTk0ZjNkMTAyYWM2YWZkOTcwY2QyODBmNDc0YzQ1OTRjNmY1YyBsZWdhY3ktdHJ1bmsKKzgzMTkgMzViMTRkNzhjNjFkOTQzMmQ3NTUzMGQxMmRkNDkzMDRjNzA2MGE0YyBsZWdhY3ktdHJ1bmsKKzgzMjAgNWE4YTVhMWEwNDc1N2Y2MGRiNmIwYmI2MGI1Njk2OWE3NWMzMWJkOSBsZWdhY3ktdHJ1bmsKKzgzMjEgNTk2MWYxMmFlNDI2NTg2YTAwYTY4NzRlNWZlN2RhNWIwMTgwMTljZSBsZWdhY3ktdHJ1bmsKKzgzMjIgNmU5OTY4NmI3NmRhMGNlMmY1ZDhmMGRlYmM3MmY1YWNlYWYzZTYzOSBsZWdhY3ktdHJ1bmsKKzgzMjMgODUyYTFmYTYyYTdjNGY2ZTFmZDUxNThkMDMzNmMxMzc2NzUzMmYzYiBsZWdhY3ktdHJ1bmsKKzgzMjQgZmY5YzAxMTAwNzliN2U0NjIxMDQwZTE0NTY3ZDY3YzRlNGM0ZDZiYSBsZWdhY3ktdHJ1bmsKKzgzMjUgZjY0YTVmNzUwNjk2NjAzOTgxMTU3NWExMGU5NmEzNTU0ZmI2NTA0ZCBsZWdhY3ktdHJ1bmsKKzgzMjYgMGQ3ODUxYjM3YWQyZDEzMGI5NzExNjBmZDIyNzk4ZDIzODljYjcyYyBsZWdhY3ktdHJ1bmsKKzgzMjcgNmY2N2ExYmRhMTVhMjE4YjFlYjUwNjI3YzJiZTQ2M2FiYzliODA0ZiBsZWdhY3ktdHJ1bmsKKzgzMjggZWRhZjFjYjYzZGMwYzg5ZjMyZjVlZjEwOGIzMGYzYzE0MzQ0MjQyYSBsZWdhY3ktdHJ1bmsKKzgzMjkgNGE0Nzc4ZTYxYzE0ZWIxOWI0NzliNzNhZTJkOTg0NWE0MjRlYzdhMCBsZWdhY3ktdHJ1bmsKKzgzMzAgOTJiY2Y0Y2M5NDIxMTlhZTljN2E3MmVjOTljOWE5ZDg3ZGZiY2QwNSBsZWdhY3ktdHJ1bmsKKzgzMzEgMzU4ZDcwODgyYWY2MjlhNzA3Y2VkNDEzZGE0ZGZlMzE1NmQ1NjNhZCBsZWdhY3ktdHJ1bmsKKzgzMzIgZmRkOGNlYTE4MWMwOTk0Y2Y4NjdlZWFkNDZjMDg1YWZkYzQ5MGZiNiBsZWdhY3ktdHJ1bmsKKzgzMzMgYzRkZDMzMjlmZDdkMDQ0YWQ2MGE1ZWI5NGZiMTZhNzI5Njg3Yjc0ZiBsZWdhY3ktdHJ1bmsKKzgzMzQgYTY2N2Q0OGU2OGI4NTY5NzIyMmZjODU1OWM0YTc4YjZkNmNjNGYyYyBsZWdhY3ktdHJ1bmsKKzgzMzUgZjVmN2M3Mzk1Njg3NjBlYmE1MWRkZmIzMDg0MGU2ZGEyMTU2MTM5YSBsZWdhY3ktdHJ1bmsKKzgzMzYgNjRmOWNlOTk5NDM3YmQ5MjgyYzM4OTczM2RmZGViZjlmMWIwMThkZSBsZWdhY3ktdHJ1bmsKKzgzMzcgNzI4YTA4MzI0MmEyYTZlNzA4ZWEyYmQ2NGY5NTg1NDcxOTU3N2QwMiBsZWdhY3ktdHJ1bmsKKzgzMzggMzIzZjZhMTZhNzY0MmNmMTYyYjA0OWVmMWJiYTU1ZjJkNjJkZGIwNiBsZWdhY3ktdHJ1bmsKKzgzMzkgNGRiYjRlYzQ0ZDE1MGU2MjI5YWM4Y2Y3ZWQzZTM0ZDExMWM5ZDg3MiBsZWdhY3ktdHJ1bmsKKzgzNDAgMGFjMmM3NDcwNTNmZGI3NGY4OGI0YTQ4MTY0MDFlNTQwYTc2MzI3OSBsZWdhY3ktdHJ1bmsKKzgzNDEgODc1MTdlOGVhNTE5MWI1YmQyNzAwMWY5YWQ5ZTE1ODUyNzA0MDJjZCBsZWdhY3ktdHJ1bmsKKzgzNDIgOTg0MWJjZTM3YzRkNjM5Yjk1NzQ5ZDdkN2E2OTg2NmQxZjRmYzkyYiBsZWdhY3ktdHJ1bmsKKzgzNDMgZjFjMDMyNzY4NzNhNjBiNDUyMTJkNzU1Yzk0OTU3ZWI1OGYzYTRkZiBsZWdhY3ktdHJ1bmsKKzgzNDQgOTc4MzdlNjRjNThjNTJjMjk3ZGYyZTllYjM0N2JmYmQ2ZDY0ZmYzNiBsZWdhY3ktdHJ1bmsKKzgzNDUgZTc0MmU0MWE0YjExYmVmYzY3ZDA4OWMwODg3NThmZmFhNGI2Zjc2MyBsZWdhY3ktdHJ1bmsKKzgzNDYgZjJiZjdiY2Y4YjhiNjdlY2QxODY4OWIyODQ3YjcwNzhjOTM2ZTFkMyBsZWdhY3ktdHJ1bmsKKzgzNDcgZmU0ZjFlYjE0ZDUzZjBiNGYwNjlmZmE2NGQyMjM4M2RkZTM5NzgzNSBsZWdhY3ktdHJ1bmsKKzgzNDggZWQ5MWNiN2QzODc2MTkyOGJiYzZkY2VkYzIyYWJhZmQwNDkxZGQ4NSBsZWdhY3ktdHJ1bmsKKzgzNDkgZGQwZTliNjQ2NjE2ODU1MjhhOWMyN2VkZGQ1OGE2MGEyNzA4MGFjZSBsZWdhY3ktdHJ1bmsKKzgzNTAgYzhhOGNmOTU4MTFjMzhjZjI3NjQzY2M3NTM1MmY2NzY5YmNjZDlmYiBsZWdhY3ktdHJ1bmsKKzgzNTEgYzY3YWQ1YmNkNGIyMDIzZTNmMDgxZTIwMTcyMDk5OGVlMjJiMTRjYiBsZWdhY3ktdHJ1bmsKKzgzNTIgZDI0MDg1MWNjOGM1Nzc1ZmI1MjhmMjkwMDhjODk3MDZlM2M3MjI3NCBsZWdhY3ktdHJ1bmsKKzgzNTMgYTJkM2MyYTYyYTMwYTMxOGIxNDcxNDhiNTRiYzBlN2JmYzM2NjRhNCBsZWdhY3ktdHJ1bmsKKzgzNTQgMDUzNGU1NGU4MTA2MmM4MDU2OTNlNWNhZGQ3MzA4ZWY0NGVkOGU3MCBsZWdhY3ktdHJ1bmsKKzgzNTUgNjhmNzMxMmEzMWY2MjlhZDk5MDc3MzdhNzAzMGJjODg3N2JlMzkwYSBsZWdhY3ktdHJ1bmsKKzgzNTYgYTc3NWE0NDEyNGQ4YjBjMmE1OGEwZDJhMGY2MTZkMmJhMzliOGJmYSBsZWdhY3ktdHJ1bmsKKzgzNTcgNTMwZGRiNzA3Njk1ZTdmYzE3M2QwNzRmMDUyMDJmZDgzNzZlZDNmMyBsZWdhY3ktdHJ1bmsKKzgzNTggYTEwMWExN2I4YjdiOGM3Y2I2MTg4YTM2MjcyOWU0OWY4YjJlMGJkNCBsZWdhY3ktdHJ1bmsKKzgzNTkgZDY1MTNkYTkyNDlkMzk3ZDA0Yzc3MmE4NmEzYzcwMzI0ZjM5ZThhMiBsZWdhY3ktdHJ1bmsKKzgzNjAgNzlkMTkzMWYxNzIyOWVlY2Y3ZDgzOTMzNjY0YWY0NTlkNzRlMDFjYSBsZWdhY3ktdHJ1bmsKKzgzNjEgYjU3MWI2ZWU3ZjE3ZTM3OGQxNjJiMmIzZGJlYjRhNGVmMTEyODhjMyBsZWdhY3ktdHJ1bmsKKzgzNjIgNzZiMWRhMjFmM2E4OTgxZDAyYjJmNWVkMWNmMDZhMzBiYjU2MjhiNiBsZWdhY3ktdHJ1bmsKKzgzNjMgNGM1MmExYjZhNTRkNjJhNjMzZTU4MGJiZjViMDEwMTA1MmM4OWY1NCBsZWdhY3ktdHJ1bmsKKzgzNjQgMmExNzJiNDk1MGI2YTZjMDIyOTE3YjE4NzM2NTUwZjNkNjU4YTI2MiBsZWdhY3ktdHJ1bmsKKzgzNjUgMGNkNzRmOTE4OWM2YTdjOWZkMTQwN2Y3NWVkYjIwZTM5OGE5ZmMwYiBsZWdhY3ktdHJ1bmsKKzgzNjYgY2RkMTI1ZGU3NWJmNmY2MjAyMWJiOGI2YTEyNDdmMWIxMmJmYTVjZCBsZWdhY3ktdHJ1bmsKKzgzNjcgZjMzNDJiMzgxOTM1YTQ2NDk5YjYwZTc3MWI1NDRmNjU5NThkNDI5MCBsZWdhY3ktdHJ1bmsKKzgzNjggYzRkNTQ3YzAxZTkzNGVkODVkNTJmMDU3ZmZlNjFjNWNkNDk4Mzg0OCBsZWdhY3ktdHJ1bmsKKzgzNjkgYjk2Y2NjNzgxMmYyZjA4M2JhOGMzYjI2MzkzMzczNmU2YThjMjNkYiBsZWdhY3ktdHJ1bmsKKzgzNzAgYzU3OWI5Zjk4YTVhNzE1NjA1MjY4OTExYmMxMGJjMDU2OGRlNWMzMSBsZWdhY3ktdHJ1bmsKKzgzNzEgZTJkZjk1YjdiZTc4OWEyNGVmY2MwZjg3ZTIzMDI2NDA0Y2JhZWJlYiBsZWdhY3ktdHJ1bmsKKzgzNzIgNDZjZDM1MmM3NjM4OWZkMjI5MmM0Y2YwYjllMjZmNGEzNDJlNzgwNSBsZWdhY3ktdHJ1bmsKKzgzNzMgNjcwMjJkMjhhNjVkMmRmZThhOWZhMjJjNzNlMmMwNDY4NDg0MTVhMSBsZWdhY3ktdHJ1bmsKKzgzNzQgN2QzNWEwNTgwMzU2ZWJkY2Q2MGViNDNmZTViMDU0OGFjNzIxZWZiZiBsZWdhY3ktdHJ1bmsKKzgzNzUgMjUzMzc3YTQwNjQ0ODQ3NTU5OWNlMDI3MGE4ZGM1MDA5MjdjMGJkYiBsZWdhY3ktdHJ1bmsKKzgzNzYgZjgyYjYwOGFmYjU2OGRmNmIwNDg2Yjc0NDI0YTA5OTEyOTJkNzMxMiBsZWdhY3ktdHJ1bmsKKzgzNzcgNDY2NjY0YWQzOGU0Y2VmMTkxZjg0YTFjMmM3MzhjMWVmNDg1MDE5ZiBsZWdhY3ktdHJ1bmsKKzgzNzggYmE0OWE2ZWY3MjE0ZjdmMDRhMTQzNWM1NzI3NGJjMmRhMTc2YmZhMCBsZWdhY3ktdHJ1bmsKKzgzNzkgNDEwMmY0NDcyMDMyOWIwNmQyM2FlZmFmYjUzNzgwMGM0ZTQzMGMxMSBsZWdhY3ktdHJ1bmsKKzgzODAgYjZlNDhhNGNkZDFlNjhiMjk4MmU2YTFhMjIxNmI5MGM1NDdhZjdiOCBsZWdhY3ktdHJ1bmsKKzgzODEgYzUwY2MyOGFmN2M3OWY5MDRmNGNmYTFlMmRmMGM3MTk2MTBhN2I5MiBsZWdhY3ktdHJ1bmsKKzgzODIgYzI0MjM4NDNhMjZmNzE1ZWMyNGI3ZmM0MDc4NmQ0M2FlNGJhZjY4MCBsZWdhY3ktdHJ1bmsKKzgzODMgZjM0NDYwOWE0OGU0ZWE5NmQzNDBjYzdhNzViOWM3OGNmMTI2N2JjZSBsZWdhY3ktdHJ1bmsKKzgzODQgYWY5MmNmZmQwNjNmNTNjMDk5NDBhYmQ0NDFlZTViNDI1ZDNjMWUyYSBsZWdhY3ktdHJ1bmsKKzgzODUgNGRkOWVhMWU5NGE4ODAxYzk1ZWNkODRlNjc3YzUxNThjYWJkMmMzOCBsZWdhY3ktdHJ1bmsKKzgzODYgZjgyNTljYTllZWQzN2M5OWUzYTZhMWUyNmRkZDUwMjU4MzlhZDBhNyBsZWdhY3ktdHJ1bmsKKzgzODcgODk3NzFhNDZjYTM1NGQ1MTdiNmJiMjYzOWRiNzNkYTI0NzljYjQwYyBsZWdhY3ktdHJ1bmsKKzgzODggNjk4Njc4MWEwN2VmMGRjMTQzODBmMWFkMDZkYmFkMDNhNjdlNTQ1ZCBsZWdhY3ktdHJ1bmsKKzgzODkgZjUyN2MxMmYyZTU1MjhlNWFmNGNiMzUwZGQ2NGRkMDY5OGU4ZmU5NiBsZWdhY3ktdHJ1bmsKKzgzOTAgNmIzOWY4NjMzY2E1NDdhMWQ4NzI0NzQ3N2FmNGViNjIzMzNlYjBlYiBsZWdhY3ktdHJ1bmsKKzgzOTEgNTE1NWIyYzM1ZTE1OWY1OWRkMTc1MTM0YmQwNDIzODJhODFjMmUzNSBsZWdhY3ktdHJ1bmsKKzgzOTIgZGI5Y2ZiMTA4NjIzYzI1YWRlNTE4ODcxNDFjZWNjM2E2YThmNGI2MCBsZWdhY3ktdHJ1bmsKKzgzOTMgZDJjODAzODBhZDBkZTc0MjNkYzZmZTVkNDFkYmM3OWQ2ZjVhM2QzMSBsZWdhY3ktdHJ1bmsKKzgzOTQgMDRhMWI4MmM4MzJiMWE3ZTE3ZjkzZTMxYTlhYjU1NjZiZWE4NGRlNyBsZWdhY3ktdHJ1bmsKKzgzOTUgNzgwYjY4ZGY0NTYwNzc0ZjViOGZmNTY2YmRhZDI1MjViYjgyNDQyZCBsZWdhY3ktdHJ1bmsKKzgzOTYgNWRhMThlMDAyYjFhOGZlODViYTVhOTU1OGMxYzE4Zjg0YThjYjc0ZiBsZWdhY3ktdHJ1bmsKKzgzOTcgNWZiMzA0MTNiOTNiMjE5ZjgwMTU5MzBkYzJkZWM2OTI5NjE1YjAwOSBsZWdhY3ktdHJ1bmsKKzgzOTggODAwYTUyMTdlNjdlNzg2OWJkYWU1ZDVlMTE1NmRiZThkOWM2MDEwOCBsZWdhY3ktdHJ1bmsKKzgzOTkgNDRkZGM3MTFlZTJkYzhjMTJkNGE3NWE4ZDJkY2E1ZjQ0ZGNjMGExMSBsZWdhY3ktdHJ1bmsKKzg0MDAgM2UxNThlNjlhYzVkOTFjMWNhMzRhZDAwZDAwYzNhZWY0MmE3ZjFjYiBsZWdhY3ktdHJ1bmsKKzg0MDEgMDhiMWU5ZDg0N2U2YjU5OTU5YTJkZmM5Y2ViNmMxY2JlYWIyMTI3MyBsZWdhY3ktdHJ1bmsKKzg0MDIgOTMzMDRiMmUxNGNiMzY4NzljZjYzMTRiYWRmZTQ3NGUxYWYwZmZmMiBsZWdhY3ktdHJ1bmsKKzg0MDMgOGQyMTk0ZTIyZTY3MzljZDk2NjI1NGE0ZmU4MmEwYmE2NDlhNjYyMSBsZWdhY3ktdHJ1bmsKKzg0MDQgNjNiYzkyODlhYjI4MjkzOTg1ZDA0YWQ2MjM5NmQ5MWZlYjhkYWFiZSBsZWdhY3ktdHJ1bmsKKzg0MDUgY2EyNDVjMzZjNmY2Zjg0ODI4NjMyOTE0OGJlOWY0YjAwYWE0MGY1NCBsZWdhY3ktdHJ1bmsKKzg0MDYgYjNjOTEzNzQ2OTAwZTE2MWNhYTM3NDZiMWE4ZGU0YmI3MTgxMWEyNSBsZWdhY3ktdHJ1bmsKKzg0MDcgZTJjY2U0YWRmMmE3MDI5ZWJlODBkN2Q5NzJlZjQwN2RiYTBkYWQzZiBsZWdhY3ktdHJ1bmsKKzg0MDggMTJmZTVjYzE1MTZkMDgyZDBkMjdhNmM4MWJjMDM3ZGRjMmQ1NzEwYiBsZWdhY3ktdHJ1bmsKKzg0MDkgNDBjZmM5MDVjNzc2OTZhYzhiMWUxMmM2ZWVjODNhYTNhMzY5ODAwOCBsZWdhY3ktdHJ1bmsKKzg0MTAgYjIxMGQyMDU5ODEyMTZkZWRkNDVkM2E4YTMxZjIxOTEzY2U4MTViMyBsZWdhY3ktdHJ1bmsKKzg0MTEgMDM2OWQ2M2IxMDBiMWY0YmI4MDc2ZGI5MWRmMTkwZDg5NjI3NWQ5NyBsZWdhY3ktdHJ1bmsKKzg0MTIgZDc3ZDNiOGU4NmIyNWE4OTIwN2E3ZDI0ZWQzM2EwZTVmNjc0MjU3YSBsZWdhY3ktdHJ1bmsKKzg0MTMgODBkMjQzNjRiOTMyNWViNjI2YTFjNGUzNjhiNTBhMGQwN2U3NzQ3ZiBsZWdhY3ktdHJ1bmsKKzg0MTQgNWE0ZDE4MWZmZmZkZjU3MzBjYmIyYTI4MzE3YzM4MTNhOTRlMzA5YSBsZWdhY3ktdHJ1bmsKKzg0MTUgMjIyZmFlYjQzZDAyMGM5NDZhYzc4Y2Q5ZDc1OWVhNmFhZWMzNzNiOSBsZWdhY3ktdHJ1bmsKKzg0MTYgMmM2NWJiNmFiODdjZDliYjY5ZjNlM2U0OWM2MjNiNGUyMzYyMjVjNyBsZWdhY3ktdHJ1bmsKKzg0MTcgZWVmNzZiM2NkOWFlZjNjMjI3MjJkN2ZiMzBkODMwNWM0NDgyMDM2MyBsZWdhY3ktdHJ1bmsKKzg0MTggZjdmYzg4ZmNmZmEyNDZiM2IyNDYzMTZjZDQyNmQzNGIwMzZmMWNlOSBsZWdhY3ktdHJ1bmsKKzg0MTkgYzExOTI4ZDI1OTdiZGRjNmQyMzEyZmYxNTY1YzZkNTA0NzM3YjcyZCBsZWdhY3ktdHJ1bmsKKzg0MjAgYWM4NzdjNDc2OGUxY2FiZjlhMjQxNDAwOTY1NTUzYWIwYWZiYzljZCBsZWdhY3ktdHJ1bmsKKzg0MjEgMWJkNjhlNDQ2NGNlMmZjNTQxZTkyYzdlNWNlM2JkMDAwMTZhOTkxMyBsZWdhY3ktdHJ1bmsKKzg0MjIgNzViM2FhYmNiN2MxMDA5MTk3NjhjNDljODI0MzhiMjhiMjVhZmVkNSBsZWdhY3ktdHJ1bmsKKzg0MjMgOWE1NjQ1MmM3ZThlOTIzMTNmNzlkODQ1NzkxZTYwOWZiNGY4Yzg5MCBsZWdhY3ktdHJ1bmsKKzg0MjQgN2NhNmE5MTJkNDU1YjliYjJmMjY1NzczMDlhY2Y0ZmZiNzJhM2YwMiBsZWdhY3ktdHJ1bmsKKzg0MjUgNmMwNjBiYzNiZjNkOWI1ODBhM2JkODk3YWNmNGZkMTBlOTk5OTk3YiBsZWdhY3ktdHJ1bmsKKzg0MjYgMGI0YTlkZDA5ZTBkYjBjZGQ5ZjZlMmFkMDNlMGYyYzY1OGFiZDY0MiBsZWdhY3ktdHJ1bmsKKzg0MjcgM2ZiY2RhNzQxNjk2NWE0NDIwNzA5ZWFjNjg5NDQyYThiZTQwNzBiNSBsZWdhY3ktdHJ1bmsKKzg0MjggOGQ3ZGM2Njk2OGNiYzZlYzRlYTNkYjNjMzQ5YzQ1OGUzZmYwNGYwZiBsZWdhY3ktdHJ1bmsKKzg0MjkgYjJlMDE4ZmIyYmE5MTVjMjA3ZDg3ZGJiMmEwYjdlNWY0ZmU3OGJlYyBsZWdhY3ktdHJ1bmsKKzg0MzAgMWE5OTY5NWE0MWNjZjY5MTQ2ODRjYmNiMDc5ZDQ0MzZiNjhmOGM2MCBsZWdhY3ktdHJ1bmsKKzg0MzEgZDM4MzVhNmExOGM5NTc4NWM4ZDFiMTAwMjYzZjlmYzg5YjRkZmI3MCBsZWdhY3ktdHJ1bmsKKzg0MzIgMWYyZGZjYTUyMjA3MmQxMzljODg2MjZmNjg4YzI0NWQyMWQ1NWFjOSBsZWdhY3ktdHJ1bmsKKzg0MzMgM2Q2ZjNmMGFlMDA1MDY1NjE0MmIxOTcxOWE4ZGVmZTVhODYzMjU3YyBsZWdhY3ktdHJ1bmsKKzg0MzQgMjRlYzQ2MjRlYTllMzA5OTJiOWRhZjc5ZDQ4MGU3YTFmZTdlMWIzOCBsZWdhY3ktdHJ1bmsKKzg0MzUgODM0NDYxYThjYTc2NzE0NjA4ZGRhMzNmYmM0YzI5ODVkNjk5ZjdjZiBsZWdhY3ktdHJ1bmsKKzg0MzYgMWE0ZmI2ZjEyZmZkNTRiMTIzZDIzZGU5ODAyYTA1Mjc0ODRkY2FhZCBsZWdhY3ktdHJ1bmsKKzg0MzcgNzZiYjQwYTFlYjA0NTMyMzg5OGQ2YjAwYTEyMjBlOGNlYmZlZWE0YyBsZWdhY3ktdHJ1bmsKKzg0MzggMzVlNWFjYzY1MzJjN2U1NGE2OWQ3MGJlMjU1NWRjYjQzYTc0Njk5YSBsZWdhY3ktdHJ1bmsKKzg0MzkgMjNlMDE0ODM5YWIwNTdkMTU5Nzc3NzIzZmM5MGYyNWU4MDJlMWQ2NiBsZWdhY3ktdHJ1bmsKKzg0NDAgODNkZTU1MzlmOGU0MzIyMGFkOWRmNzA2ZGQ4MzgwNTY5Y2JhMjE5NyBsZWdhY3ktdHJ1bmsKKzg0NDEgNDMwNTQwMjFiYjU3NTEwNjE3YTg4ZGZkZjEzOGNlZWEyN2I1MTVmOSBsZWdhY3ktdHJ1bmsKKzg0NDIgOGFlODNiOWMzNGEwMjQ1MDg3Y2YyZDcxNjE5OWQ3MzJkNTY4OGJlYSBsZWdhY3ktdHJ1bmsKKzg0NDMgOTZhOTdiMmI3MjNlOWY1M2UwNGYwYjNmOWY4YzQzMjZhODhiNmEwMyBsZWdhY3ktdHJ1bmsKKzg0NDQgOWU0ZGRiNDU5YjEwZDNiMGNmOTRiMjQ1YTY3ZTM0NzUzODBmYmZkYiBsZWdhY3ktdHJ1bmsKKzg0NDUgYjcwNDhmNWJlOWExOGQzOWFhYzRhZjlhNTcxZTM0MDM4OWE3MTY2OCBsZWdhY3ktdHJ1bmsKKzg0NDYgNWY2YTJlYWRhYjk3ODM1ZjI2ZTZiOTUzMTY1MDg0OTU3OTk2OTJmZSBsZWdhY3ktdHJ1bmsKKzg0NDcgNzAxZDg1NGQxOTMwYmI2YTFhMjRmMjczZmU5ZGRmMWVhYjczZGQ5NSBsZWdhY3ktdHJ1bmsKKzg0NDggM2YyYmZjMTU5ODlkY2FlNzU2MTcxNzljZGJiZjU1ZDY5MjQwZTI3NiBsZWdhY3ktdHJ1bmsKKzg0NDkgOGFiYjRkOGMzMTM0NDlkYTk5MmEzNDVjNmE1YWVhNjVkMGIwZDZjMCBsZWdhY3ktdHJ1bmsKKzg0NTAgZTc3ODQ3ZTExNThlMjEzODg0ZDRmYzM1ODQzNjE2ZTI2MjdhYTQ4NSBsZWdhY3ktdHJ1bmsKKzg0NTEgN2EwODgwZjhiOGVjMDhlYTEyNTIxMzE2OGRjNjkyZmE2NjRmMzhmNyBsZWdhY3ktdHJ1bmsKKzg0NTIgOGJiYTliYjg2NGFlMjM4YzRhZjkzYTc3NWU0Nzk4ZmVlYmM3MmRiMCBsZWdhY3ktdHJ1bmsKKzg0NTMgNWIyYzU5NTQyOGZhOTFmOTkxOTM2YWNiNzE5MzJiODdiYWVjYjNjNyBsZWdhY3ktdHJ1bmsKKzg0NTQgYjc3MDc5NjUxOWY2MDNmZWE1ZTc4ZDNmNjllNTkwZjcyNTBhYjZmZSBsZWdhY3ktdHJ1bmsKKzg0NTUgNzgxZWI0OWQyZDY2ZmQwYTA2NDJkODJmNGE3YmQxYTgxZDNlOWE1NCBsZWdhY3ktdHJ1bmsKKzg0NTYgNDIyOTYwNTIzMjg2NTIxNTI5Y2I2OGE3MzQwZjZmOThmNWQ3MmNhMSBsZWdhY3ktdHJ1bmsKKzg0NTcgMjg5NGJiNDllMmVlZTY4OTk0ZDE3ZGM2ZjQwYmQxMGNkNTIyNzNlNSBsZWdhY3ktdHJ1bmsKKzg0NTggMTcwYzQ2YTY1MDIyMGU2MmI2Zjk2MzJhODhhYzU2ZGU4Y2RhMDg1YyBsZWdhY3ktdHJ1bmsKKzg0NTkgNmFlYmQ5NzBiN2E5OWU4NGNmYTVmNDdkOTA3YTdhMjZiODVmN2QxMCBsZWdhY3ktdHJ1bmsKKzg0NjAgMzMzODVmOTRjYThhYzQyYTEyNzQ3NmUxZGFkMGM0ODU4NGYxY2RlZCBsZWdhY3ktdHJ1bmsKKzg0NjEgYjRiYmJhM2FmNGU4YzhhMmU3NjVkNTkzMGE1OGExMDVjYTA2N2VmZCBsZWdhY3ktdHJ1bmsKKzg0NjIgMDNhODgzM2I0YjczZDk5OTVkNTFjYmM2NWU4YmE2NDZmZDUyY2QwNCBsZWdhY3ktdHJ1bmsKKzg0NjMgMzIxMjc1OTNjMTM0ZDFhMWUzZDIzNmE1ZWU1NzIxZWU3NDRhNjQxNyBsZWdhY3ktdHJ1bmsKKzg0NjQgMGEyYzMzMTIwMGY1ZmYwODI3YmYwODk5M2JhMWFhNTk0MTMxMWM2ZCBsZWdhY3ktdHJ1bmsKKzg0NjUgNTk5M2EwOTlkOWIwMzY2MzBlZGYwYTdiYjRlZDBjNzZkMjg2NDhiZCBsZWdhY3ktdHJ1bmsKKzg0NjYgNWI5MGRhOGE5ZGNjMTc2ODQ2YWYxNmFhMDE2N2QxYTlmYjE4ZmI3MiBsZWdhY3ktdHJ1bmsKKzg0NjcgNTAzNTAwNjUyYmFjNDhmZjQwMmRlMmJiMGNhN2NhNzVhNjY0MDE3YiBsZWdhY3ktdHJ1bmsKKzg0NjggYTU3MzdkZDk2OTc5MDA5ZWJmOTkxYjljYzk2NGE1ZWRjNzA2ZDJjMyBsZWdhY3ktdHJ1bmsKKzg0NjkgNmU1ZDRlYzAzNzkxYzk2Y2M3OWQ5NWJmZDA4MWY2NGYzNjNmZTM1YiBsZWdhY3ktdHJ1bmsKKzg0NzAgMmRiM2I3MzYxODUzYzU1NjFmZWEzM2FmMTU1MTk0YjI3ZDhhOWE4NCBsZWdhY3ktdHJ1bmsKKzg0NzEgM2JhYzUyMzUyYzBiYzdhNmRjMWVhZTYzNTI3MTJkY2JjMGNhNDg0YSBsZWdhY3ktdHJ1bmsKKzg0NzIgYjhiNmE4OGY3ZjQ0MmRmNDBiNDcwNmMwNjQ4ZDZhYjVmOGY3YTEyNyBsZWdhY3ktdHJ1bmsKKzg0NzMgOWU3ZDU5ODJhYjNkZTk2ZTlhNDVkY2M4NTk2NTFiZDJkODg3ODM0MyBsZWdhY3ktdHJ1bmsKKzg0NzQgZmNlYTU3YzM0NmE1OWI2MWUzZjM3MzY0ZTlkNTM1ZGM1Y2EyMzljZCBsZWdhY3ktdHJ1bmsKKzg0NzUgYzI0YjU0YzE5NTcxNDJkMWQzYWY2MGRkY2RjMDQ0ZGQ2ZTJjNzhiMiBsZWdhY3ktdHJ1bmsKKzg0NzYgZjJkMTM0YmY2OTczYmEyNjU0OWRjNDI5MWQzOTU4N2VlNmM4MDRiOCBsZWdhY3ktdHJ1bmsKKzg0NzcgZDUyMGQ1ZDAxMTE1YjcwMmJjZmNjYTFhMGViN2E1NTY1MDFkMDZhZiBsZWdhY3ktdHJ1bmsKKzg0NzggODA1NjE2OWVjNDQ4ZTIzM2QwYjQ1M2JjMmZlZTk3MjhhM2RiNWY1NSBsZWdhY3ktdHJ1bmsKKzg0NzkgZDQzOWMzMmNlOTYzN2ZmY2E2MmI2MzljNzI3ODk4OTM3OWI4ZWRmNiBsZWdhY3ktdHJ1bmsKKzg0ODAgNTA4OTIxOTUwZjJjNDBiMmMwYzZmOWQzMDZiZTFiMGI4ZGM5YjNkZSBsZWdhY3ktdHJ1bmsKKzg0ODEgM2Y1OWIzNGViOTBmOTZhMzExNjhhYzFlODAyYmY0ODg4MWM4NzUwYiBsZWdhY3ktdHJ1bmsKKzg0ODIgMGNkYTlmMjQ3ZDdhY2I5YjJmMjRlMmRjZjI4NTA4NzJiY2Q3NGU4ZSBsZWdhY3ktdHJ1bmsKKzg0ODMgNzM2MWYyZjE4NmFkYTAwNWRiMzkxNDY3MGVhMGQwOTVlYTQ0NGIwNyBsZWdhY3ktdHJ1bmsKKzg0ODQgOWJhNzJmYzRmNTAzNjRjNzIzNDA3NjA5NTJhYWVjZjJiNzRjYzYwNSBsZWdhY3ktdHJ1bmsKKzg0ODUgNWRjMjY3Y2Y0ODk1MmNjMWJlYTJiYTFkZDM1NzIwOTU1Y2FmZGZjOCBsZWdhY3ktdHJ1bmsKKzg0ODYgODg3NDA4ZWVhZTk5MzliNTE5NTFhZmUxYzVjZmI1ZGFkMmQ3NjM1YiBsZWdhY3ktdHJ1bmsKKzg0ODcgODcxZjEzNWRkNjEyOWIzNzJhMGYxMjIzZDI0YzlmMDE4ODhkOTQyNSBsZWdhY3ktdHJ1bmsKKzg0ODggY2M1NzcwMDFmN2VjZWVkM2YzYmM3MGIyMzcyODAzOGZmOGMzYmU4YSBsZWdhY3ktdHJ1bmsKKzg0ODkgZDAyYWM2MWNkNTBmMWZhZTU3NjUxODgxMDhjZTM0Mjk5NDI1MDM3YyBsZWdhY3ktdHJ1bmsKKzg0OTAgMGI1YTIzZWE3NTE1NmYyNzNlNGFmYjJmMzgyZDQwZjhhOTY4OTg5ZCBsZWdhY3ktdHJ1bmsKKzg0OTEgMmYzNmUwYmIzN2MzNzhhOWNmYzQwZWYyNjJlOTY0NGY5OWJmY2Q1ZCBsZWdhY3ktdHJ1bmsKKzg0OTIgMThhZDExMDZmNjUxYWI4ZmNmZmQ1ZTQ4ZDY0ODk1MmY3OWRjMzMyMCBsZWdhY3ktdHJ1bmsKKzg0OTMgZGZmMjAyNGFiMDIxZmUyODg2ZjFhYTA0NGUzMmZjNWRlNGUwOGU0NiBsZWdhY3ktdHJ1bmsKKzg0OTQgNTBhNDE4NjNjMzRhNjAxMjc5OTIzNzdjODUzNDgwYTU1ZThmZjE0YiBsZWdhY3ktdHJ1bmsKKzg0OTUgZjA1NTQ2NzQzNDA2MTA0NjVjN2Q5YzhiNDkzMGUwZjAwNWQ0MjIwOSBsZWdhY3ktdHJ1bmsKKzg0OTYgYTJmOThkN2NhZGVkMWRkMjJkNThlZDMxNGM2MTAzMWUxNmNkMjRmYyBsZWdhY3ktdHJ1bmsKKzg0OTcgNTljMzQ5YTE0YTNhZGUzN2Q1N2VlOWM1NWRjNDkzYzg4MTEwOTVmZiBsZWdhY3ktdHJ1bmsKKzg0OTggNjAxYzRlY2EzZGUzNDFlNzdjMmIyMzc3ZDdkNTYyMDE3ZjMxNTM2YiBsZWdhY3ktdHJ1bmsKKzg0OTkgODAyNDcwYzdhNTBmMDQ4NGY5MTI1NzJlZGQxM2EyNjJjMTllYjUyMiBsZWdhY3ktdHJ1bmsKKzg1MDAgNmEyNWQ4MTEwYjAwOTQ1MmE2YjAwMDY5YWM0OWI5NGIyOWU4OGQwZiBsZWdhY3ktdHJ1bmsKKzg1MDEgZDVmODc0MWE4MTJjZjU1NTA3MzIxNmM3YzQ2NWFkZDY0M2U5MTA5NyBsZWdhY3ktdHJ1bmsKKzg1MDIgMGFkMTVmMzBjOGQ0MTA4Y2I2MTE4Y2Y5Yjg2MWE4MjBkOGFiMTU3ZiBsZWdhY3ktdHJ1bmsKKzg1MDMgYjU4MDQxNTRhZjRkZjEyZDJjZTYyYzY1MDhhN2U2ODZkYjYyYWI0NCBsZWdhY3ktdHJ1bmsKKzg1MDQgNDk0ZTU1MGNiMThkMTVjMmNlMTBkMGRlZTk0ZDQyNGQ0ZjQwNDFkMCBsZWdhY3ktdHJ1bmsKKzg1MDUgMjkyMTkzMTcwZGExNTlmY2ZmYWExMzg5Yjc3NGVjYWNkM2E2MmVjMCBsZWdhY3ktdHJ1bmsKKzg1MDYgNjhmMmQ3NzA0MTgwYTcyYjRkMTI3ODhlMDBjYTA1ZDc0ZDRjNDVmZCBsZWdhY3ktdHJ1bmsKKzg1MDcgYmY4MDNkZmQ0NDI4ZjI3NjE1NjBlZWIwNmM4MGRlOGUwMWY1NTYzOCBsZWdhY3ktdHJ1bmsKKzg1MDggNmM0NDlkZmYyZmI4OWNmMDU0ZmQ4YWY2OGViZjEyMGQwM2NkMDY4MSBsZWdhY3ktdHJ1bmsKKzg1MDkgOWE1N2NhMjI5NjgxYjY4MmNmM2FjNThiNzIyMGRkODhlOGM4YmEzMyBsZWdhY3ktdHJ1bmsKKzg1MTAgYWM3NTU0ZjI5MzEzNjllMzViZjk5NWE5M2JiMjg1MDdmZWZiOGFhMyBsZWdhY3ktdHJ1bmsKKzg1MTEgMWNmNzllYThmZmEyYTU4YTkwZDhkMTA2Mjk1MTc2MjgyY2RkZWVjNyBsZWdhY3ktdHJ1bmsKKzg1MTIgNjE0MTE4YTEzNDhjOTQyMWI3YjNmZjJmMWNlNGQwNDg4NjYxOWVhOSBsZWdhY3ktdHJ1bmsKKzg1MTMgYmUxYjc4ZTcwNzI4NzI4M2QzNWYyMmM3MDNkZTIyMTE3MmQzNThiOSBsZWdhY3ktdHJ1bmsKKzg1MTQgNGMyMjkyZTcwOWIyZDI3ZDUzN2Y3Y2NhZjZiNjAzMTU4NWNjZjZiYSBsZWdhY3ktdHJ1bmsKKzg1MTUgNDdhZGYxOGQwMWFkZDc4NjNlMDZiZDMzMmIzNWMxMjdkMzllZjk4ZSBsZWdhY3ktdHJ1bmsKKzg1MTYgNjE5MjMyMjM2ZGRiOGE1ODZmMzMwNDUwYzA0Zjc1YWI5ZmUzYThkYSBsZWdhY3ktdHJ1bmsKKzg1MTcgMWE0MzY5OTEwOGE2Mzc1NjU2MGI0YjMyNzY2OGQyZDJjODczYzllMiBsZWdhY3ktdHJ1bmsKKzg1MTggYTllMWVhODBlYTNmNGFhNTlmNTNmMzI1NzI1MjdlZGRmOGVmOTQyMiBsZWdhY3ktdHJ1bmsKKzg1MTkgNmRiM2Q1MmQ0YTc4YWYwN2VmYTIzMmM3NWIzYTMyMjFlYmRlY2E0NSBsZWdhY3ktdHJ1bmsKKzg1MjAgYzA3OWU5MjRjOTI3MTg5NjFiM2I5ZmUyNWQ1YWEwZjgxNWM0ZWY3MiBsZWdhY3ktdHJ1bmsKKzg1MjEgMGI5ZWMxYjM0YTdhNDA4ODBjZDI5YzJiNDdlY2MxM2FhMmI0MWNiMCBsZWdhY3ktdHJ1bmsKKzg1MjIgNmViMWUzNTQ5ZTJkYmJhNjI2ZWQzZTVmMjU4Y2M1YTkwMjE0ZGQyNCBsZWdhY3ktdHJ1bmsKKzg1MjMgOGJhNDZiMDc3OGRhZDI4ODcyYzkzMDA3ODBlMzRmZTUyZjE2OGE5OSBsZWdhY3ktdHJ1bmsKKzg1MjQgOTZmZWNjODBhMjhmN2M5ZjE1MDI0OTRkYzMxOTA0OTA2Y2JjZmY2YyBsZWdhY3ktdHJ1bmsKKzg1MjUgZTkzNjYzMTE3NmI2MWQ2ZDE5OTcyOTQ5NjA1MDRmMmZhNTUyNTgyOSBsZWdhY3ktdHJ1bmsKKzg1MjYgNGYxMmMyMWY4NzQ3OTY4YmM0MDdkMjIxY2M2NTJlOGVkZmI1NjRmNCBsZWdhY3ktdHJ1bmsKKzg1MjcgNjA3MzFiMTlmZTM0ZDU3ZTkzZjIzNDkwZGUzMjBhN2MxNGY1NzBmMSBsZWdhY3ktdHJ1bmsKKzg1MjggNmIwYWZiYmZlMGI3ODE5ZGQzODcyYTY1ZWIyMTg1NjE1OGY0Y2QyZSBsZWdhY3ktdHJ1bmsKKzg1MjkgMWRhMTIyNzE4NTk4ZTc1MDEzMzZjZWJkNTBlZDA5ZDkyYjAyMTIzZSBsZWdhY3ktdHJ1bmsKKzg1MzAgZGEzYzdkNDdmMjEwYTZlNWQ1YTAxMGJjMmYyNDY1ZDJkOTE0MzRlNyBsZWdhY3ktdHJ1bmsKKzg1MzEgY2FiOWVhNWU0ZWVkMzdkNzExMWYyNTY3N2RmZTA1M2I5MDMyNWJlMSBsZWdhY3ktdHJ1bmsKKzg1MzIgNzJkMDA0OTcxYjI2Nzk3ZTAwNzU5ZDAyZGY0NDUwOWNiYzY2Njc1MyBsZWdhY3ktdHJ1bmsKKzg1MzMgOGVjMDIxMjdjNDRiYjQzNTllNzExMTJjMGJiNDg2NjNhYWIzZWI5NCBsZWdhY3ktdHJ1bmsKKzg1MzQgNTY2ZDBjYWU5MTkxNWFiMTIyYmRkMTVlZDcwZmI5YjY1NjY0ODU2MiBsZWdhY3ktdHJ1bmsKKzg1MzUgODc3ZGJiYTNiNWE4MDQwMmM1NjU5YzFlZmJhYjEyZGU5MjczMTZlZSBsZWdhY3ktdHJ1bmsKKzg1MzYgMzg3ODRiODUzZDIzMWQyYWZlZWU2ODc2ZmQ2ZmQzMjM3ZTM1MDc2YSBsZWdhY3ktdHJ1bmsKKzg1MzcgMTE0Mjk5NjhlMjlkMjJlZTRhNGE0ODAxNWI4YmY3YzBkYmVlNmRjNCBsZWdhY3ktdHJ1bmsKKzg1MzggMzZkZjQ0MzRiM2IzMDNhMTRmNTg2YTM1MDg1MDcwODMxNjcwNzk2NyBsZWdhY3ktdHJ1bmsKKzg1MzkgNzRhNzg2NjZkZGM4YWZiZDMwZjMwMmM3Y2VjNDEzZjU5MmUxYjAzYyBsZWdhY3ktdHJ1bmsKKzg1NDAgYTVkNTAzZWNhNzQ3OGRkNDhlNWY0ZjNhZTVkZTdiODJlOThhYjEwYiBsZWdhY3ktdHJ1bmsKKzg1NDEgZTg4ZDJlMzIyYzVlYmU4MmNiY2VjMGZkMjdiZjljY2I5ODBmN2U0NSBsZWdhY3ktdHJ1bmsKKzg1NDIgMGY0MTkzYmQwOGQwYmNiYWVkNjI1Mjc0YjE4YjY0MDRiMDk0MmFmMiBsZWdhY3ktdHJ1bmsKKzg1NDMgZTRjZDA5MmY0M2Q2NmFhYTg2NWZlZGIyMDcyOTZiY2M4NDRhYThjOSBsZWdhY3ktdHJ1bmsKKzg1NDQgM2QzZmE4NzczODdhZWQzMTY0ZGMyMmU5MzhmMmRhMzc5MzE2ZGMzMyBsZWdhY3ktdHJ1bmsKKzg1NDUgOTI1ZjkwYjQ4ZDczNzI0NTM3ZDA3NzVkZDAyMTk1MGFjMGMwZTc0YiBsZWdhY3ktdHJ1bmsKKzg1NDYgZTBmMjQ5OTkzYTRmN2Y1OWM5MjYxODE5OThhODEzNmFhMDNhZWYwMCBsZWdhY3ktdHJ1bmsKKzg1NDcgNjQzZmE1NGYyMTI0NTgxZDVhNjNmMzhlMzliNGUyNzE2ODhjNWJhNiBsZWdhY3ktdHJ1bmsKKzg1NDggZDkxY2MwYTU3ZGFhM2E0MzJkNzZkOWRkZjFkM2Y4ZjlmM2QwZDJiNCBsZWdhY3ktdHJ1bmsKKzg1NDkgYzdiNWE3MjJkOTI2NDk0ZTY2ZTFjYTI0YjdjOWYzMWQ0NmIwMWQ0NyBsZWdhY3ktdHJ1bmsKKzg1NTAgZWNjOTQ5MGVjNzE5Mjc4MzhiMjk3ODExZjA4YTc1YjIyOTI4YmM4NCBsZWdhY3ktdHJ1bmsKKzg1NTEgNWU1ZTU0YTZkYmE2ZmFiOTJhOGVkYTE0NWIwZTdmZTk2ZWI2YWQ4MiBsZWdhY3ktdHJ1bmsKKzg1NTIgYmYzZjQ4N2ZjZDhiNTdmOTkwOWVhYTI3ZWFlYTIwZTM3OGFmYjUwZiBsZWdhY3ktdHJ1bmsKKzg1NTMgNjU0MGViMTdlNWI2NDU3YjVjYTVmOThkZTEzOTcyYmE2OWNiMTkzNyBsZWdhY3ktdHJ1bmsKKzg1NTQgODgxNGNjZjJkMWNkYjY1ODI4NTQ2NGFhYjViMjM1NWMwYTEwZDJiYiBsZWdhY3ktdHJ1bmsKKzg1NTQgZGM1Yzk2OGVjOTkyYWFiM2Q0MGE3MTg5ZGYwYzQ0M2QxYzdhMWE2OCBsZWdhY3ktdHJ1bmsKKzg1NTYgMmYxYTVjYWQyN2I3YTIzMDFiYzA4ODRhZGQyMzY1NTQ1ODYyNTI1MCBsZWdhY3ktdHJ1bmsKKzg1NTcgZDNjNjAzNWFjM2NiY2FiNzVmYmZmM2U5M2FiZWNmNjUzYjFjZWM2ZiBsZWdhY3ktdHJ1bmsKKzg1NTggMGViMTRhNjQ4NGYzZjhmN2QyZjNhODRlNzVhYjRmZDMxMmM0NjFjMSBsZWdhY3ktdHJ1bmsKKzg1NTkgZDdjYTA1NTQ3OTVlZWYzZmI0MWZiZjE5N2QxYzBkMDhlOGNjYTBlZCBsZWdhY3ktdHJ1bmsKKzg1NjAgZjE1OTA0NDUzMGIxODI3MDQ2NzI2ZmIzNjAyNmVkNzEwYmMxZjlmZiBsZWdhY3ktdHJ1bmsKKzg1NjEgMGFhNjJjYmVkOWY4MmU5MTcyOWQzOTkzODliNThiMWU3MWI5YmNkMCBsZWdhY3ktdHJ1bmsKKzg1NjIgZjlmMDI2MmM0YzU3NmU3YjdkNTBiYmU0NGUzOGMxZmRkY2JiNjliOCBsZWdhY3ktdHJ1bmsKKzg1NjMgZDg5YTIxOWI0OWE3MjEzYzFiMmM4NTBkNWVhZjFkN2U5MjUyNjU0NyBsZWdhY3ktdHJ1bmsKKzg1NjQgNjIyYzhkOTgxYTY5NTVmYTYxY2IwNTJmYjVkYjI0MjVjMjBhMjI5MiBsZWdhY3ktdHJ1bmsKKzg1NjUgYjA0NGM0NzljYmM4MzA1MTgzZTUzZmEzZDJiNjFlNzY5MDI0YmEyNyBsZWdhY3ktdHJ1bmsKKzg1NjYgZWRhZWU1Mzc4MDIxMzNiNmJlMDIwOWVkNGQwY2UwNTU3OTEyMWNmOSBsZWdhY3ktdHJ1bmsKKzg1NjcgZjEzMDQ5ZWQzMWZkYjkzNDMxN2FlZDVjMjIxZDY2ZTk5YWY3Mjc3MSBsZWdhY3ktdHJ1bmsKKzg1NjggZGM5MTZkOGJiYjU1ZDg4MjQwNWZkOGJmMzJhYWVjZDg5NDY2NThmMSBsZWdhY3ktdHJ1bmsKKzg1NjkgMjk0OWMwYTQwYjdiZDA4Y2FkYzhhYWQ2MTQ1Y2U3YmMyZTg2M2U5MCBsZWdhY3ktdHJ1bmsKKzg1NzAgZDEwOTNmMzQyMWI2ZjUyODBiZWIyMmM3ZGY4ZGFiYzljN2NjNGEyNiBsZWdhY3ktdHJ1bmsKKzg1NzEgYTIyZmNhN2E1YzVhN2QxMjcwN2ZmOGFlMWRlZjcwYzU0MzAxZjI2MiBsZWdhY3ktdHJ1bmsKKzg1NzIgMjc0MjI2NGVmZGRlZGQ1ZDk1OTJmZmM4MDc5NDMzMDdlMDgyNzU1NyBsZWdhY3ktdHJ1bmsKKzg1NzMgNDRiOGNmYmRhNDQxMjQwMzIyNmZiZGIzOGUyMzQxMTc3YTlhYmIxYiBsZWdhY3ktdHJ1bmsKKzg1NzQgZDEzN2U2MjRjZTQyYjIzOTFhZmI5YTRjMzA1M2YzYzJjYWYxMmU2OSBsZWdhY3ktdHJ1bmsKKzg1NzUgMTc5YmZkMGZlZTI0YTI3Mzg4ZDVlNTk5OTUwOWE3NTdjNTAwYzYwYyBsZWdhY3ktdHJ1bmsKKzg1NzYgOGY3ZjQ3NzAwN2IzODg2NTJjNTY3YzI4NTE4NmU0YzRjMzg1OTI2NyBsZWdhY3ktdHJ1bmsKKzg1NzcgOGJiMTI4MjE1ZGM1OGMxZTg5ZjhmY2QwZDY1MGE3NDI5MDkxODk4MSBsZWdhY3ktdHJ1bmsKKzg1NzggYTY0ZDE0YzQ5MTRmMjE1ZTUwMTgyMTZhZTgzMWNiZmJjMTkzZWEwOSBsZWdhY3ktdHJ1bmsKKzg1NzkgNGQ4ZWJmN2FmZmFiNGJkYWRiNzBhYmVkNWU2NmViODVhYzFiZjQxZSBsZWdhY3ktdHJ1bmsKKzg1ODAgM2JiODk3MGZiOTE4MzBhNTkwMTNjNzA0YjVhNjcyMzc1NzFmOTFiOCBsZWdhY3ktdHJ1bmsKKzg1ODEgZjNjMGMxN2I5NzA4YmY4MmM5ZGEwYWRiODgzOGE5NjYyZWFlMmY5NCBsZWdhY3ktdHJ1bmsKKzg1ODIgNzdmYjg4MGVjYTQ5MWZlMTM1OTRlNmRhNGVmNjRhZDgwOTI5MmJiMSBsZWdhY3ktdHJ1bmsKKzg1ODMgMzZiM2IzMzdjNTY2Mzg0MjFjZmEzYmRjOTU1ZGVhN2YwZjM3YzA1YSBsZWdhY3ktdHJ1bmsKKzg1ODQgN2JkNTY1ZTRmYmI1YWEwNDU1NzBjN2E1YzY3ZWQ5NzVhMGZkYTgyYyBsZWdhY3ktdHJ1bmsKKzg1ODUgMTY3NmY1Nzk1MTgwYmNiNzZmNGFlYTFmNDQ4MThkZTFkZjJkNjUzYiBsZWdhY3ktdHJ1bmsKKzg1ODYgOGNiMmFmZDEwMTE5NTAwZWIwZTBiMzM4NmU5YTNiMTFmZjNhNDVhZiBsZWdhY3ktdHJ1bmsKKzg1ODcgMjYwYjIxNzY5MDYxYWE5MDZhMWNjMmE1MmZmMzRmYTkzMWUyZTNiMSBsZWdhY3ktdHJ1bmsKKzg1ODggOTczZWYzNWVmNDgyNTY4ZjM5NTYyYzMxMTVmNjlhNmFjZDcxZjllOCBsZWdhY3ktdHJ1bmsKKzg1ODkgNWQxZjMzN2NlZTI2OWY5MTFhYzZmZTI2YTdiOWY2N2E2YmMyOWQ1NSBsZWdhY3ktdHJ1bmsKKzg1OTAgZDkxZmQ3Y2Q4YmU3YjJmNmJkNDI2ZTE1MDQ4NjZiOTYzMjYwZDNiMSBsZWdhY3ktdHJ1bmsKKzg1OTEgNzM3ZWQ2NjUyODk4ZTk0MTZjODA4OTljMzI5MzBjN2VhMGI5YjhjNSBsZWdhY3ktdHJ1bmsKKzg1OTIgNjVjOWJhODAwMDMwMmMyZjQ2YTVhYjgwYTU5ZDFmZjcyZDM4ZTI0MyBsZWdhY3ktdHJ1bmsKKzg1OTMgMDdiN2Q0MzIwYjE0YWRhYTUyYmE4NDlmZTc5MjA2MzAwZDA2NTJiZiBsZWdhY3ktdHJ1bmsKKzg1OTQgOThhMjgyY2ZiMDEzZTc4MjI4N2FjMzQyMWIxOWVhMGUxOWRlNjkzZiBsZWdhY3ktdHJ1bmsKKzg1OTUgZDEzZDNjMmM5ODYwYTkzNDJmMTIwZTM4MzM2ZjRiZDgwNGJkZjM5NSBsZWdhY3ktdHJ1bmsKKzg1OTYgYzIwYjY5ODBhODcwZmNkNjFjOGZlNzA1ZWJlY2U4MGU5YzQwMWQwMiBsZWdhY3ktdHJ1bmsKKzg1OTcgZGYyOWU4M2MzMDRmYWE0ZWQyYjQ4M2EyMTViYzU5MTIyOTUzNGU4NSBsZWdhY3ktdHJ1bmsKKzg1OTggZGYwMjhiYzU0ZTZmMzJhNWYwZjhjMGExN2FiNWJlNDBjMmNmMjQzMyBsZWdhY3ktdHJ1bmsKKzg1OTkgZGI4YWM2ZTEwOWI0ZGMwYjkyOGQwNmE5Y2NlZDdiZDc1Mzg3ZTZiYyBsZWdhY3ktdHJ1bmsKKzg2MDAgNzQ4ZmI1YTAwOWE3YzBjMzAxNmE4NWNiM2QxOTM1ZmFmMWJmMzNiOCBsZWdhY3ktdHJ1bmsKKzg2MDEgY2MyYzg0NzY5NjM2YTQyNTlmN2ZlOTA1ZWEwOWNlNzlkZjYyZThiYyBsZWdhY3ktdHJ1bmsKKzg2MDIgZDRlODdhYTdiZmYwNTY3OTE1MjZmM2VmYjRmNGQ2MDRiYzFhMTU0MCBsZWdhY3ktdHJ1bmsKKzg2MDMgYjQ0OTM0YzIwMTI1ZWZkOGEzMjIyYzcwYTNhOGMzNjRlMDM2NGMzNyBsZWdhY3ktdHJ1bmsKKzg2MDQgNDI1NDA5NWE1MDI5ODAxYzBmOTI2MzQ3ZjA1MjI5NGJkZjU2Y2M0NCBsZWdhY3ktdHJ1bmsKKzg2MDUgMDYwZjgzOTMyZTkxYTZmNTgyM2U4MjAxNmM4ZGZhMmI4ZWYzNmZhNSBsZWdhY3ktdHJ1bmsKKzg2MDYgNWRjMDc4YjIxM2U1ODJkNzFlYTgxY2QwYzAwNmM0ZGZjMzNhZjJjMyBsZWdhY3ktdHJ1bmsKKzg2MDcgMmQ5NTgyZWVlMTEyZTZlOGNhZGZkNjRmMWMyNGU0OTNkMTNlODYwZCBsZWdhY3ktdHJ1bmsKKzg2MDggODU0MmI4OTAzOTg5OTVmOWMwMzI5YWMyNzhiNzE4MjcwOTE0NGE0YyBsZWdhY3ktdHJ1bmsKKzg2MDkgOTQ2MDViMDAyNmU3ZjZiZjM3NzJhN2MwNTFlOGE2MjY2NjliMzM2NSBsZWdhY3ktdHJ1bmsKKzg2MTAgYjRhMGJlNWM0MmJmNzU5YjVjMmYwZjI4OWIyMTgxYjk0M2Y3OGUzYiBsZWdhY3ktdHJ1bmsKKzg2MTEgNTUyODNmNjgxYTFjMjEwMWQxOWU3ZjM3MGUxY2YzOTY5NjEyY2ZiYSBsZWdhY3ktdHJ1bmsKKzg2MTIgMzJmNjU3NDE3NDNiZDdhYzZiZDE4ODM2Njg2MmEzZmFmMGQ0YjAxYiBsZWdhY3ktdHJ1bmsKKzg2MTMgNTcwNDVmNTFkZDEyYjA0ZDI1ODY1NTdmOTI4YTIyZjEyYzBkYjQ2MiBsZWdhY3ktdHJ1bmsKKzg2MTQgNDBhYmYyM2UxNjhiZmMzYmFjZDFkNTkzYmY2ZjYxYWFkYjM1MzI5YyBsZWdhY3ktdHJ1bmsKKzg2MTUgZjgwZTc2M2MxNzE3ZGU3OTExMDgyZTI1MDgxYjUyNDkzMTMzZTEwZSBsZWdhY3ktdHJ1bmsKKzg2MTYgYTI4N2M1MDE0ZTY2YTgxODhiYWUyOTEwMWUyNmNhMWY2YmU4MDFmZCBsZWdhY3ktdHJ1bmsKKzg2MTcgM2M5NTEyNDAxZjZkNmI3NmY5YjEwOWIzZTZjY2FmYTJhYzdhZDQzMiBsZWdhY3ktdHJ1bmsKKzg2MTggOWY2MTZhNDkyMTk2NjE5MTAwNzlmNWNmMzNkMjQ4MmM1NmY0NWRmOCBsZWdhY3ktdHJ1bmsKKzg2MTkgMTQ0ZGI2MzViNDlkMzNlOTliNmZkMWU1YjczNzc0NWNkMTc1N2FlMiBsZWdhY3ktdHJ1bmsKKzg2MjAgYzIzMzRkOTdjZTE0Y2E0MTY5NWU3YTk5MzZiNjY3MGYwNDU3ZTgwZiBsZWdhY3ktdHJ1bmsKKzg2MjEgMTQxODIwMjQwMTExMDlkY2U1ZTM1N2I0ODg5YWY1MTM2MTY5OGNiNSBsZWdhY3ktdHJ1bmsKKzg2MjIgMzQxZmNiN2JhZDkwM2JhMjkwZThiMmJhMDllZjQ3YTE2YzQ1YWY4YyBsZWdhY3ktdHJ1bmsKKzg2MjMgYTJhMWRmMGNhODA4ZjYyMzM0OTIzMjJhMzc3MTUzYjhlN2FhYzM1YyBsZWdhY3ktdHJ1bmsKKzg2MjQgYjc2YTQ0MTYzZTBmNjAzYjZkYzRjOGFlZWUyYTZhY2VjMzk4MThjMSBsZWdhY3ktdHJ1bmsKKzg2MjUgNDU4NGYwODkzMGFjOTFiNDAzNzk3NDk4YzNmZTVjYTk4ZDRmYTE5YSBsZWdhY3ktdHJ1bmsKKzg2MjYgYmIwMTExMzA4N2ViYzUwYTM3MTU4YzA3Y2U2YTk5YjM4NWRhZTRmZSBsZWdhY3ktdHJ1bmsKKzg2MjcgOWE3OGNlMWRiOGY2OGVmMTk4OWE0YzBlNGI3NGEwN2FkOTc4ZTRiZSBsZWdhY3ktdHJ1bmsKKzg2MjggOWZkNjBlNjQwYWU1ZDA5NzcxMGFlMzQxZjVjNGIzOTVmNmRhMTczYSBsZWdhY3ktdHJ1bmsKKzg2MjkgZDdjYmQyNjUxZTU1OWJiZGZiNzJmOTg0ZjhhNjA2YWM1YmRkMGI4ZiBsZWdhY3ktdHJ1bmsKKzg2MzAgMTdhMjZmOTg2MDA3ODg0MjMxNzc1YjgxOWFkNGUzM2IxNzMxOGQxOCBsZWdhY3ktdHJ1bmsKKzg2MzEgMmVlOTgxMWM5MmZkNGIyZWNlYTY2MjBjOWVhZjcyN2IzNzdiYjhjNiBsZWdhY3ktdHJ1bmsKKzg2MzIgNDc4NjcwMDZmMDc2YWU4NTU3NmFkMmQ4MzI5Y2IwNjgwOWY2N2JjYSBsZWdhY3ktdHJ1bmsKKzg2MzMgMWEyYmZhOWEwM2Y3NDJmODY0OThkOWVjMjA3YWFjYTJhMGM2NDU2ZiBsZWdhY3ktdHJ1bmsKKzg2MzQgNjQ3ZTYwZmIzYmFjM2Y3YzA0YjMxMGY2NDMwYWIzNzAzNjcwZmEyMSBsZWdhY3ktdHJ1bmsKKzg2MzUgMmUwYWE4ZDgxMzk2NGJiNmJhZGQ5YTgwZDMxM2FjOTU0MGVmNDFjYSBsZWdhY3ktdHJ1bmsKKzg2MzYgMmIwM2ExZGZkYmQzZmU2Yzg0NTMxZjBlMWY0OThhOTc1MjRjYjE0NSBsZWdhY3ktdHJ1bmsKKzg2MzcgNzk1OTI3NjFiMzMxYTA2M2YzYTU4YWMyNWRhNWFmZjU2MzY3ZWI4MSBsZWdhY3ktdHJ1bmsKKzg2MzggZDNkNWEyNWYzYjcwNWNhMjU2M2UxYWE4ZTFjNzhjNGJiMjEzNDlkYyBsZWdhY3ktdHJ1bmsKKzg2MzkgOTE4M2EzYzZiODVmY2EzNjJiY2Q4NWJhNGZjZTUzYWI1NGZjNjA2NCBsZWdhY3ktdHJ1bmsKKzg2NDAgMTE5ZDE4NGJiNWVkODkwZTgxNzcyNDdmYzRlZjZhNjk5NmI4NjliOSBsZWdhY3ktdHJ1bmsKKzg2NDEgM2VjNWNhOGFmOTFkMWM2MzU4ZTVhZWUzNTZmZGIzOGY1MGZlZjY2NyBsZWdhY3ktdHJ1bmsKKzg2NDIgMjlkZGYxMDQ5ODQyNzRhZmYyYjU5YzMyYzhlNGQ0MjA1OWFkNTVmNyBsZWdhY3ktdHJ1bmsKKzg2NDMgYTE4ZTFjZWJkMjlmYzhjZmY0ODNkMDA1N2ZmZWQwODg1ODkwNWIzNyBsZWdhY3ktdHJ1bmsKKzg2NDQgOWU0MzI0NjhmNzU2MDVkNmIwNDQ1ZmJhYTkyZmUwZTdhY2FjNjc5MCBsZWdhY3ktdHJ1bmsKKzg2NDUgMjUxNGU5ZmUyOWY2ZDczOWEzZjE0ZjU4Yjg0N2JiY2NiODJkZDdiMiBsZWdhY3ktdHJ1bmsKKzg2NDYgNDMzZDNlMWMwMmY3ZDA2OWZhY2YzMzQwMzdiY2IzOTVjOGQ3OTJkNyBsZWdhY3ktdHJ1bmsKKzg2NDcgM2U2ZDY4OGIwZDJhMjcyYmYyNTFhMmNhMjNhMmM2M2ZlNTVlZTAyMyBsZWdhY3ktdHJ1bmsKKzg2NDggOWEzZTZmMGQ2YjVhOTc3NTI0MGYzYzJjYWI1MGVjMjE4YmEwOTI1OSBsZWdhY3ktdHJ1bmsKKzg2NDkgMmY2MDgzNGVlYWY1ZDYzYTk2Y2E5Yzg0MGQ3N2NiNzE5OWRhZTBkMCBsZWdhY3ktdHJ1bmsKKzg2NTAgMjUzZTExYjYxMTA2ZDhlZGVkZDNmYjE1OWFkODQ0YzA2NjUxYTc0NyBsZWdhY3ktdHJ1bmsKKzg2NTEgNzcxMzVkYTlmMzZjZGNlYWEwYzhiZDljYmQyNWEzZWUxOWE2Y2Q5ZiBsZWdhY3ktdHJ1bmsKKzg2NTIgMTlmZTg4MGNhOTE5ZmE3NTU1M2Q2Yzc3NzI1MzczMWE2ZWM5YWJiZCBsZWdhY3ktdHJ1bmsKKzg2NTMgMThmODI0ZTViOWVhZTliYjUxNjlhYWU1YTQ1Yjc5MDE2ODJmMTE3YiBsZWdhY3ktdHJ1bmsKKzg2NTQgYWFjZTUwMmI4ZThiMTM0NDliZmFjMDliYjQ4NTY0MDc2NjQ1NDg4YSBsZWdhY3ktdHJ1bmsKKzg2NTUgYjU1YjIxN2YyZTBkNzljM2YzODQyNmQ2YjM0MWM2ZGU0ZDZjODc4ZCBsZWdhY3ktdHJ1bmsKKzg2NTYgNmNiNjZmMGNhOGQ1NDA4ZjRhYTg4ZmNjMmZiNjU0OTg4ZTBiNWU1YSBsZWdhY3ktdHJ1bmsKKzg2NTcgMmZmNzZlOWJjODVkN2ZkMjQ4ODg4MTc1ZTExYjZmMWI1OGFmOWUyYyBsZWdhY3ktdHJ1bmsKKzg2NTggZWY5YTI5NTNmOTMzNDM5ZWVhNDRkMTMzMWExMDdjMDdmNTQ3NjM5NyBsZWdhY3ktdHJ1bmsKKzg2NTkgNDNiOGM0YTY5NmQxMTRjZDBkMWMzZTViMTk5NzA4OWJiNzMyNTA4NCBsZWdhY3ktdHJ1bmsKKzg2NjAgNjRlMTk0YzVmODU0ZDA3NTI0YjAzYzY0YWMwNzIxNjYyZGQ0N2VkYSBsZWdhY3ktdHJ1bmsKKzg2NjEgMTEyNDlkNDM5ODQwNDljMDYyMTIyZTQwNzQwOGY2ZTBlMTY3OTZjOCBsZWdhY3ktdHJ1bmsKKzg2NjIgMzJhYWNkNzUzZjM0M2FhMzhiZDg4ZWFhZjYzOWM3MDgzODcwNTdlYiBsZWdhY3ktdHJ1bmsKKzg2NjMgMmU3NTVkMWZmNjYxZjE1MGE4ODFkZTJjODI1ZTIxMGZjMDNmYmZhOSBsZWdhY3ktdHJ1bmsKKzg2NjQgM2VhYmEyNTFhMzI5OThhODUyYWRhYjBmNDlmNGU1MGUyNDhkYWM4NSBsZWdhY3ktdHJ1bmsKKzg2NjUgYjdjMmZmMzA3MDM5OWEyYTA5MjRjNmJiMWFmZTljYTlhNDEzOTkwZCBsZWdhY3ktdHJ1bmsKKzg2NjYgZTQ3MTAxMTliNDFjZDYxMjQ5MDRjZDFlZGQ5NzcxNGJhMTIyNDdjZCBsZWdhY3ktdHJ1bmsKKzg2NjcgYjU3NTdlODdlYjMyZWEyODhiMDM0MjVmZDkyMTY0MjdiMTQwYjJkMyBsZWdhY3ktdHJ1bmsKKzg2NjggM2E2YjdhMzc3ZGMzYTk2M2YzOWI0M2U0YzQ1MzMzZDYxMWZiOTViMSBsZWdhY3ktdHJ1bmsKKzg2NjkgMTJiOGE0MzU5OWQzMzczNDgxY2RmY2IzYTRjNjFlZTBlNDNkZjM3NSBsZWdhY3ktdHJ1bmsKKzg2NzAgYmY3ZDc3MDVkY2U1ZGNhYzI2ZTNjMDA2NWM0NzIxY2U4ZjI1ZGUzZCBsZWdhY3ktdHJ1bmsKKzg2NzEgY2ZmMTA1YTNhMzg0YTdlNzJmNDk3ZDYzNzJiY2RjOTljNWY3ZWY0MiBsZWdhY3ktdHJ1bmsKKzg2NzIgZDk3OTgwZTdjMDVmMzA1ZDRlOGRlMzA0MmI0ODdkYWExNjQ4NTk3NSBsZWdhY3ktdHJ1bmsKKzg2NzMgYWIwNDVlZDExYmM5Njc4OTgwZDk4MjJmY2RmZTQyZGEyNzYzNzU5MCBsZWdhY3ktdHJ1bmsKKzg2NzQgN2RhN2JhNWM2NTI1ODRmN2YxNDcxODAwNjlhYzEzNGU3MGEzNzYxMCBsZWdhY3ktdHJ1bmsKKzg2NzUgYzQzY2E4ZGQwMDgxODc2OWM3OThiMWM2OWJiY2ViMTE5MTcxOThmMiBsZWdhY3ktdHJ1bmsKKzg2NzYgZmU4OTcwOWMyZWFjMGJmNzdlMDFlMDdmZTA1ODAyOWYxMDRiYmU1YSBsZWdhY3ktdHJ1bmsKKzg2NzcgYzU3Y2VkZTNjN2MwMDIyZmYxYjBlZGU2ZDcxNjM5ZWFkYzc0YmNmMCBsZWdhY3ktdHJ1bmsKKzg2NzggZGM5NzRiM2E2Y2Y0ZjcyMmY2YzhlNzAxOTYzMzhlNWYyZTYwZGM2YiBsZWdhY3ktdHJ1bmsKKzg2NzkgYmEyZjExYTgyZjI3N2M1ZmQ1ZGI5ZjYwYmFhOTZhNzkyYzNiYmIxOSBsZWdhY3ktdHJ1bmsKKzg2ODAgZjU3YWU2OGFhM2FlNTI2ZWQ2NzhkZmM0MGY5ZDE5NDBiYWIxMjM4YSBsZWdhY3ktdHJ1bmsKKzg2ODEgMjRkNjY4NDU0Y2IwMDAyMzE5Y2EwMWNkNTkyMGI2MDQ5NGRlYmUxMSBsZWdhY3ktdHJ1bmsKKzg2ODIgZTU1NGI5ZjRhM2FhOTI5ZTJiZDcxYzk2ZDkyMjgxYmY2YjFlOTcxOCBsZWdhY3ktdHJ1bmsKKzg2ODMgNzdmNWI2Y2JlYTY2MjQwODhiNzVkYWUxMDY3YTQ2OTk0OWU2YmJkYyBsZWdhY3ktdHJ1bmsKKzg2ODQgOWMyZWU2YmJkYmIzMjM3ZjYxNmUyMjdkYjlmNTkzZWExOTVlYjMxNCBsZWdhY3ktdHJ1bmsKKzg2ODUgN2I0NWQ5MmUzODYxZTM3NjBkODg4ZWIyNjk3YjBmMzdmNjk1ZWEwYiBsZWdhY3ktdHJ1bmsKKzg2ODYgZmUzZmFjMWEzZTUxNzg0NmJiYjdhOWUzZTRjZjg4NzBiODEwYTBlYiBsZWdhY3ktdHJ1bmsKKzg2ODcgNmEwYmY2YjI2Mzk2NGZhYmE3MTE0NTVmOTc4MjE3MjNkMjQxZWE3NiBsZWdhY3ktdHJ1bmsKKzg2ODggYTEyZWUyN2NhZDkzMjJiMjEzM2MxY2IzYWJkMjBiOTBmMjIwNjNmNCBsZWdhY3ktdHJ1bmsKKzg2ODkgNTA4OGVjNWExMmE2YjJlMzA1MDM0MDU3OGQ0YjE1Nzc1OTIzMzE4MCBsZWdhY3ktdHJ1bmsKKzg2OTAgMzZkZmM4Y2MxZDAxM2EzMzE4NzI0Yjc2YjZjOGE4MzhiNzQwNTYzNCBsZWdhY3ktdHJ1bmsKKzg2OTEgNGUxZjg5YTEyZjk5MjkzMzcxNDY3MGMwMDFlMWQ3MDkzYWU0ZmNhYiBsZWdhY3ktdHJ1bmsKKzg2OTIgZWI3YTAxYjg2ZjkzMTZiNzdlOWU2MmE3YzEwYzNkYWQzZmMyYzFhNSBsZWdhY3ktdHJ1bmsKKzg2OTMgMzNjZWYwMTk2MWE3MTEwYjAyNzJkY2ZkMDFmOTEwNjk4ZWYyNjkzYyBsZWdhY3ktdHJ1bmsKKzg2OTQgYjcwMWRmODVjMDQ3NDc2NWM2NTYwODU2NjMyZmJkZWIwZTg2MzQwYyBsZWdhY3ktdHJ1bmsKKzg2OTUgOGI1OWMwMDRhNDk5YzEyNjFlMGQ5NzRhZTE3ZTIxZGI1NDA1OGJlOCBsZWdhY3ktdHJ1bmsKKzg2OTYgNDE4ZDM4NWE5ZTQyNGM0ZmM2Yjc1MzMzMjBhN2UxNTU0MmVmM2NjMCBsZWdhY3ktdHJ1bmsKKzg2OTcgZWQ0OTI0ZjNiMmE1NjFjMGM3NTQ3YTJjNjI0NmRhMDlmOGNhN2QyYiBsZWdhY3ktdHJ1bmsKKzg2OTggZWU1YmQwODUxN2U4NjJhNDczNjU2NzczZGFiYTBiZWZhMDJkOGY2NCBsZWdhY3ktdHJ1bmsKKzg2OTkgNzhhNGE1NjMyYTkxYzU1OWE3OTQzYjYwYTI2YTExNGQ4YzcyM2MyZCBsZWdhY3ktdHJ1bmsKKzg3MDAgODBiZGJjNDliNGM0MGI1OTI4NzJjNTFjZDY0OTg0OGUwZTkyYjljYiBsZWdhY3ktdHJ1bmsKKzg3MDEgODU2ZDg3ZDI4MmFjNmJhM2EyOGFlMDNiYTI0Mzg0YzM3Yjg5ZGI1MyBsZWdhY3ktdHJ1bmsKKzg3MDIgYTg1Y2RmMGJlZmM1Y2JmZDQyYzZhNzgwYWVkNzdhNGNmMDRhOTMzMyBsZWdhY3ktdHJ1bmsKKzg3MDMgOTk4NTUyMTliMzdmNjgwNzAyZDYxNWNiZTY3ZDg4ZjViNTY3YjNlMyBsZWdhY3ktdHJ1bmsKKzg3MDQgNjEzZjk3NmE1N2I0OTJkODZlZTZmNGFjZTc2YWRlMWVjNGYxNjZjNyBsZWdhY3ktdHJ1bmsKKzg3MDUgYjUzMzQ3YzgyNjBlZjE1MjZkYzAzOTUwMDRkN2RmYWZiMDM3N2NmOCBsZWdhY3ktdHJ1bmsKKzg3MDYgNGRhNDgwODcwOWM5NTk3NzU3ZTVlNTNlNDViNWYxMTUzNDg1ODYzMCBsZWdhY3ktdHJ1bmsKKzg3MDcgMGVmMGUwNTFiMWY4ZDIyYzEzZTJkNDVhYmNkZjUyMjMwODM2ZTIxNyBsZWdhY3ktdHJ1bmsKKzg3MDggYzg5MzkwZTU2YjkxNDJlYzg0OWNjZDc4YTNlZWU4ZDk2MGVmMmJlNCBsZWdhY3ktdHJ1bmsKKzg3MDkgZmM1ZTFlMDA0OTk0MGFlNzQwOGQzM2ZhZDk2M2UzY2Q0NTEzOTdhYyBsZWdhY3ktdHJ1bmsKKzg3MTAgZWZjZWQ4MzI2ZTNmMjUwYTZhNjUzOWNmNzI1NWIwM2M5OTNmODFlOCBsZWdhY3ktdHJ1bmsKKzg3MTEgNGU1ZmI4ZDlhY2IxYzYzYzk1NzAyMDYzOTE5MjViMzJmMWE3MzRhYiBsZWdhY3ktdHJ1bmsKKzg3MTIgMjQ4NDU5NjgzMjNmOTEwMmQ0MDJiMzYyYWNhYTZlNjFiNGFmNjJiMiBsZWdhY3ktdHJ1bmsKKzg3MTMgNmRmZWMzMjBmOTEwOWUxNGEyMzY3OGQ3YTc1NjYwZWEyNTY3M2YzNCBsZWdhY3ktdHJ1bmsKKzg3MTQgMDNiODc5M2Y3NmMyY2JjZWQ1ODYzMDM1MzA5YTI4NTQwMDE3MjZhZCBsZWdhY3ktdHJ1bmsKKzg3MTUgNDQ2MmQzYzYwMGJmOTcyYWM2YWY2MjFiMzcxNjE1NGNlMTA2MGU2OCBsZWdhY3ktdHJ1bmsKKzg3MTYgZjYwODc2ODM1YTc1OWMyMWVlNDQ3YWEwZjRiZWExYzA2ODJlOTc2OSBsZWdhY3ktdHJ1bmsKKzg3MTcgM2I1YmJjYWY5MTdmODdjN2VjMWI3NWNmZjgwNjFmY2U4NThhOTc3OSBsZWdhY3ktdHJ1bmsKKzg3MTggYWI2NDM0NGU4N2RiZGI1YjI3Njk0NmU0NDgyYjliNjhiN2VlYjExMiBsZWdhY3ktdHJ1bmsKKzg3MTkgMjFhMjg0OTBiZDk2MWNlOGMxZGY4Y2Q3ZGUxMDNjNDk3ZjJkMWFmYSBsZWdhY3ktdHJ1bmsKKzg3MjAgNDI3OWY0ZWIyMTBhMjE0ZjBmZjBmNDk3MjcyZDc3NDRmNGRjNzM1NyBsZWdhY3ktdHJ1bmsKKzg3MjEgNWFiMjFkMWI2MWQ4NmJmMzNiMDJlMzM5M2RhYjYzM2U0ZWYwMjJjYSBsZWdhY3ktdHJ1bmsKKzg3MjIgMTViY2VjM2QzMjU5OWU2NDk4ZDFhMTNlNzZkODM4OWQ3MWJiNjg5MyBsZWdhY3ktdHJ1bmsKKzg3MjMgNGNmMjBmYTg4M2E5MmUxZTc0YTkxNzg1ZmFmMDgzNzc2Y2IyY2E1MyBsZWdhY3ktdHJ1bmsKKzg3MjQgMTQ5NjQ0NGU4YzhiODMwNDdkMjRhYWVmZTJlYWNiNTYwMzM5NWRiNCBsZWdhY3ktdHJ1bmsKKzg3MjUgYWYxMTRlZDllNjFkZWQ2MGE3YmU5N2Q5NGU5MzIwOGY1MWVhNjUyYyBsZWdhY3ktdHJ1bmsKKzg3MjYgZjEwYWFkNzNlMDI5MzExMDI1N2E0ZjMwYzY0OTQyOTVmMGIyNjU2YSBsZWdhY3ktdHJ1bmsKKzg3MjcgM2ZhNGI3YWUwZTZiYzFmMGFhYWU0MDFmMDVjYzliYzgwZjZmY2EwYSBsZWdhY3ktdHJ1bmsKKzg3MjggM2UwYWE3MTYyYzg4MWY2M2Q3ZmJlZmI4NTdmMWM2ZGNiNmVmZjU3MCBsZWdhY3ktdHJ1bmsKKzg3MjkgNjQyOWRiNWQwYWY3MmQwMDkxZWIwOTFlNDQ1MDlmYTY3YzIwMzEzNCBsZWdhY3ktdHJ1bmsKKzg3MzAgNTIyNGVkODc3YmFlN2Q1NmI0ZGU4NDU2YjIzOTc1N2Y0YjNmYmFjMSBsZWdhY3ktdHJ1bmsKKzg3MzEgNGM3NmVlMDFkZjA4ZGIzYzRjYTQxZDAwMjUzZDI2Njc3ZDkyNjc5NyBsZWdhY3ktdHJ1bmsKKzg3MzIgZjQ0NmUwOGFjMzAyN2I4NmYyN2IzYWQ2NmE3NzRiYzk4NWRjNzlmZiBsZWdhY3ktdHJ1bmsKKzg3MzMgY2UyMDkyNzE0NDg0MzY5ZTg4Y2FlMjYyYjI2NTQ0ODUyZTAyYTlhMSBsZWdhY3ktdHJ1bmsKKzg3MzQgZGRkMjU1MTBmM2ZiNmYzMWJmZmYxYWY0ODFlOTU3NTM2NzU2MjFlNCBsZWdhY3ktdHJ1bmsKKzg3MzUgN2MxZWE4NWUyNjg0MmFiZDQyZGJlYWUyNjMyYzA5ZWIwZDU5ZjgzMCBsZWdhY3ktdHJ1bmsKKzg3MzYgNGZiY2M0Mjg5MDEyNmMyYjZjOTljYTY0OWUzOTdjMzZhZDIzNmM3MSBsZWdhY3ktdHJ1bmsKKzg3MzcgYzBjZDIzZTcwOGI1ODZlZDI4OGQyZWQzMWYyZTYwYzBmYzk2MmM0ZCBsZWdhY3ktdHJ1bmsKKzg3MzggZDk3OTQxZWM1ZWVkMDExNTRhYTdhNmIzMTY5NGY2NDA2ZDlkZmY0ZCBsZWdhY3ktdHJ1bmsKKzg3MzkgNTA3NGZhYjI5MjVkOGFjMGE4NTNhYTVjODE4NmRiYjdhOWE0MTJmYiBsZWdhY3ktdHJ1bmsKKzg3NDAgYWE2ZTA1MDRlMGYyYWI2ODczNTBiYzBhNjc5OGIxZjFjNDkxNTA4MCBsZWdhY3ktdHJ1bmsKKzg3NDEgM2RmMjJlZGNlY2FkODY5NzEyZDk1Y2E2YzcyNjhiMzNkY2Y3N2EwMyBsZWdhY3ktdHJ1bmsKKzg3NDIgOGE1MDI0OWFhNzJmMzNkMmE5MmE2NmRlOThiMDBlMGZkM2Y2NGM5ZSBsZWdhY3ktdHJ1bmsKKzg3NDMgOGMxZTAyMDg5Mzc5OGUwZjNmOTNhMWUyNzI3MDdmMzkzMmRhMDA1ZiBsZWdhY3ktdHJ1bmsKKzg3NDQgZWI4ZDFhMDk4YjlkZWNiMTQ2Y2YxZjI2MGE4Nzk4MTk5NWNhZjMxZSBsZWdhY3ktdHJ1bmsKKzg3NDUgMDIwYTNjOGFiMDcwYmEzNjY0NWUwMDljODc4Y2UyYWMwN2ZjMTUwNCBsZWdhY3ktdHJ1bmsKKzg3NDYgMTNjNTMyOWQyYzJlOTEyZmFhMWNmYjNmZTA5ZjY5MzgxYzU4YTljMCBsZWdhY3ktdHJ1bmsKKzg3NDcgZGVhOGRjNGI4ZTIyNWRmYmFkNTFkODAyNDFiMWM5MjRkYzhiMTliMSBsZWdhY3ktdHJ1bmsKKzg3NDggZTk5MjYyNDFmYWE0MDMyZmJmMmQxMGUyMTRhNGVhZDVjMDliZjM1OCBsZWdhY3ktdHJ1bmsKKzg3NDkgNzc1ODk5NTgzZGE2OWQxMDRhMzYxOGE5Y2ZjNWU4YWViZDcyYzY4NSBsZWdhY3ktdHJ1bmsKKzg3NTAgNDMzMzc3NWI1NWZkZGVmNmFlNWI0YzZiNDRlMDNmNzk4MzZlOWYwZiBsZWdhY3ktdHJ1bmsKKzg3NTEgN2EzODA4ZWRjNTM5MDQzNTEwN2ExMWViOWU0OWM1YmQ1ZGJmZmI5MiBsZWdhY3ktdHJ1bmsKKzg3NTIgZjlmYmRlNzVjNTM2NWE1ZjU4MDg5NjcwNDgxNGIxYjQ0ZGQ5MjQ4ZiBsZWdhY3ktdHJ1bmsKKzg3NTMgZWQ3NGNjNTljOGEyYzUwNGQyOTM5ZWQ0ZjY5ZmJjMGE2NGM3ZDNmZSBsZWdhY3ktdHJ1bmsKKzg3NTQgYmI1NDcyZmI0ODg1Yjk1MDJjYTJjNzNiZGQ3Y2Y5YTcxZDJmMGNjMCBsZWdhY3ktdHJ1bmsKKzg3NTUgMjk4NDQxNmExYjJiMjM4YzZmYzVmY2JiYTgwYzRjNDZjYzIwZWEwYiBsZWdhY3ktdHJ1bmsKKzg3NTYgMDc4NjAwNDlmMWM0NTE1ZmY5MjVjY2E1YzkxNDFmYTkzMTg4ZDQ0MSBsZWdhY3ktdHJ1bmsKKzg3NTcgYTI2NmU5NGNhNWUxY2Q5NDI4M2VhZDY3MmYxMWUxMzNjNGZlYzU2YyBsZWdhY3ktdHJ1bmsKKzg3NTggMzNlZjdiYTZlNzRiYTUxMzZiZDhiYzA4ZDBlYWVhNjM0ZmE2NWE0NiBsZWdhY3ktdHJ1bmsKKzg3NTkgZjY4MzllNTMyYmUyYjRlYTUxMjUyMTI4MTQwZGI4Mzg2YWM3MjU1ZSBsZWdhY3ktdHJ1bmsKKzg3NjAgZWJkYzQ4ZDA2Y2Y4NWVkMDI5NWRhNjJjN2U3MzAyZWFkY2ZlYWYwZSBsZWdhY3ktdHJ1bmsKKzg3NjEgZGFhNjJjMjI2NGI1MjU5OTU2OTcxZWNlODE1MDVjNGYwNjI2ZGExNiBsZWdhY3ktdHJ1bmsKKzg3NjIgMzM3MDU0ZTlkNGZhNDM3NTY1YzRmODE3MjUyMzRmMjVlZGQ1YzRkZiBsZWdhY3ktdHJ1bmsKKzg3NjMgODJjZDJiYWE0MTM2NDZmNmNjODBkNWJhNWI5ZTgwZTg3YTI5YjUyOCBsZWdhY3ktdHJ1bmsKKzg3NjQgNDg5ZGIzNjJjZDQ4ZDA4MzNhOGJhODkwMjlhNzRhODNjOWMxNDAzNSBsZWdhY3ktdHJ1bmsKKzg3NjUgNWZhNGIxMDMzYjA2ZmMxOTUxZWI1OGNmMDhhNTM2ZjUyYmJjYmI2NCBsZWdhY3ktdHJ1bmsKKzg3NjYgNjU0NDYwNDRmYjhmNzEyOWJkNmViNDBmYWE4MmY2NWY2ZjVkN2Q1ZiBsZWdhY3ktdHJ1bmsKKzg3NjcgNDdmYTNkZGZiMDkwYzk1YmVmY2IyNzYwM2M2MmY4MjI0MGQxOTYyMiBsZWdhY3ktdHJ1bmsKKzg3NjggM2Q2MTQ3NGExNTUwZDg2NTQ1NzMxOWM5ODA3ZmIxZDUzZjA2ZGI1NCBsZWdhY3ktdHJ1bmsKKzg3NjkgOGUzMWYxYzA3ZGM1YjJlZjAxMTA0ZWE5YWJiMDM2NjMyOWQ4Yzg0ZiBsZWdhY3ktdHJ1bmsKKzg3NzAgNmMwYTI2NThhMTU2MTA4YTA0ZTllMGIzMmJiNWM5Zjk3ZDE4MTM3OCBsZWdhY3ktdHJ1bmsKKzg3NzEgYTg0ZWYwYTcxMWJhMDkyYjcwODI3ZjAxM2ExMDY3NTA2YzUwMjU5MiBsZWdhY3ktdHJ1bmsKKzg3NzIgZWFiZGU4NmQ5N2YwNjk3ZjI1OGM5YjdiYzhjZjI0Y2U5ZWIzYjkzYiBsZWdhY3ktdHJ1bmsKKzg3NzMgYzBkNDNkNmY1MjQwZGU3ZTk5MDY2ZTgxZDk2NTI3YmViOWYwYmIyYiBsZWdhY3ktdHJ1bmsKKzg3NzQgNTA5NDc0Yjg4YjAxYzQxN2MzMzhjMzg4ZGExNDhiNzZiZjk0M2M4YyBsZWdhY3ktdHJ1bmsKKzg3NzUgZWJkMDk5ODg5NzIxYzQ4MDlhZjBmZTU4ZWQ4OGUwOGZjMzU4ZTMxZCBsZWdhY3ktdHJ1bmsKKzg3NzYgMDA1NGEzODQwYTc1MmE1MzcwM2QyYzFkYTE0MjMyM2FhNmQyZjMxMiBsZWdhY3ktdHJ1bmsKKzg3NzcgNDkxMDViOWU5OTQ3NDQ3ODgzMGI1Nzk4NzMwMmQ1NmViOWFjYWMzMiBsZWdhY3ktdHJ1bmsKKzg3NzggYTQzMzUyZjBlMWVlNmJhYWFmYmE4NzdiMjY5MGZkMjM4NjY0YWRkYyBsZWdhY3ktdHJ1bmsKKzg3NzkgYTYyZDZkMDYzYzBmMDg5ODNhMjZlNzExNzQ2ZDNmM2Y0MWIwMWUwZCBsZWdhY3ktdHJ1bmsKKzg3ODAgY2YwZWZmYzNmNTg1Yzc4OGM4Y2EwNzM0NTY3YmEwMjExYjk3NzFkNiBsZWdhY3ktdHJ1bmsKKzg3ODEgYjM3OGEwODg2NjIwMTUxZWRjMzg4OTdmN2U3YmM0ZDIzMTQ4ZjkzMyBsZWdhY3ktdHJ1bmsKKzg3ODIgNmUxZmE3NmU3OTQwN2QyNDNhYmZkMDc5YjM3Y2E3NjgzOTJmYjJlYyBsZWdhY3ktdHJ1bmsKKzg3ODMgNTlhOWZiZjU5MTI4NjNmYWEwZDE3ODQ5MDcxZGYyNzg4ZmU2YWY5NCBsZWdhY3ktdHJ1bmsKKzg3ODQgZTFlYTRhZDQ2MWY5MjNiOTk5OWUwZTgyODllMzkwOGViZTJkZWYwNyBsZWdhY3ktdHJ1bmsKKzg3ODUgZWE2ZTU4NzEzNmI2ZTNiYmQwMDgxYTg4NGNlMTkyYjY4ZGUwNjY3ZCBsZWdhY3ktdHJ1bmsKKzg3ODYgOTA0YTRkNzgzYTMzNzJiM2YyMWZkNTBjNGViNTJhOTY1MTg4MWQxZCBsZWdhY3ktdHJ1bmsKKzg3ODcgZWI1MTI4ZThhOGU4ZTNkNzI5NmU4NzYxNmJiZjVkMmRlNjk2NGJkYSBsZWdhY3ktdHJ1bmsKKzg3ODggMTNmYmQ5OGQ4MWNjMDYxYzczOTViMWI3MWU4YjM2ZDRjZWYyZjg3ZiBsZWdhY3ktdHJ1bmsKKzg3ODkgN2JhNzljOTQ5YjNhNzI3OGZhZmJlMGJlOGVlMjE4YmI5ZTcxODY3YiBsZWdhY3ktdHJ1bmsKKzg3OTAgYjk0NThkYzk5ZDUwYTBmMTM5NDA4NmY4MzlhOGEwNmYyNzE5YmU5YiBsZWdhY3ktdHJ1bmsKKzg3OTEgNGI3ODVlNTllODMxMjIwMDU1MWViN2M4MzU0OGRiZWFlOTJmMmU4MSBsZWdhY3ktdHJ1bmsKKzg3OTIgZDI1NDg5YzVhMjJmNGZmYWZkYjA3YWNmOGRlNGMxN2RhYTlkNDc0MyBsZWdhY3ktdHJ1bmsKKzg3OTMgYzIzNTk2NjViZTgwNzMwY2UxMmE3ZWY2ZDMyODczZTM3OWY0MTlmNyBsZWdhY3ktdHJ1bmsKKzg3OTQgNzFiNDBjYzRjYzAzNzJmM2NkZWJlMjk5NGZiMGJkZTE1MGY4ODg3ZCBsZWdhY3ktdHJ1bmsKKzg3OTUgY2RjNWE0MGZjZjk3NGU5NDJlZTZmNzk5NDFmMjQ2MjA1YWI1NDAzMCBsZWdhY3ktdHJ1bmsKKzg3OTYgYjdmMGI5OGY1MzI1MTdmNzUzODRhNzcyYWM2NTdlZjc5Y2EwYTlkOCBsZWdhY3ktdHJ1bmsKKzg3OTcgYTc1Y2E3NGRlZWNhY2M4OGFiOTNlM2QwMGFmOTlhYTNiMjNiNzkyNSBsZWdhY3ktdHJ1bmsKKzg3OTggOTEzY2QxZjM3M2JlNDdiNmU5MzA1ZmVjYmUyZDYzM2RjY2Q1ODM3ZCBsZWdhY3ktdHJ1bmsKKzg3OTkgMDVkOTQzYzQ1OTdjMmRjM2VlZjg4ZDhlZWQ0NTE1ODM1ODUyNDVjZCBsZWdhY3ktdHJ1bmsKKzg4MDAgM2Y4ZDdmNzRmMWJjNTQ5YTM0NmJjMmQwZGRiYWI1NjViYTk4N2IzMCBsZWdhY3ktdHJ1bmsKKzg4MDEgMjBiNTY0N2EwNjdlYmZlZmZmNTg4YmI1OGI3MjczOWQwODZkYjYxNSBsZWdhY3ktdHJ1bmsKKzg4MDIgNWNkYzNjYTA1M2Q2ZTgxMGE1NjU1NTBmYzEyNDAyZDdhNGZiZjcwYiBsZWdhY3ktdHJ1bmsKKzg4MDMgYjAxODM5OTQwMjFiMzcyZmNmNTEzYTI4ODMxMDczODFhNGU4NzYzYyBsZWdhY3ktdHJ1bmsKKzg4MDQgNGI0Nzc1YjQ5YmZhYzQ0YjYxN2E2NGNmOTJmYTQwZTYxYWI2OGFmMyBsZWdhY3ktdHJ1bmsKKzg4MDUgZGZlYWY5NjVmNDhhZDMyZjBiYjBlOWU2YzUyMGFhOWYyNWM4MjE3NSBsZWdhY3ktdHJ1bmsKKzg4MDYgZmJkY2ExNzI4M2MyM2JmMDA0Y2VmZjI3OTk3MjMyMWMxNzVkODJkZiBsZWdhY3ktdHJ1bmsKKzg4MDcgMTcyYzdmZWJkNzU1N2E1MDBlMzY5NzcyYWZhZTJjMDUxM2UwMDAzYyBsZWdhY3ktdHJ1bmsKKzg4MDggOTc5YzcxMjM4ZTViYjJjM2MyNDhhOWZmMDlhYzI4YTUyNWY0MTNmYSBsZWdhY3ktdHJ1bmsKKzg4MDkgMmY0YTkyNWU4YjRiMjQxNDNkMzI4YzIwNjNiYmUzNDFmOGRmZjRkOCBsZWdhY3ktdHJ1bmsKKzg4MTAgZGQxMDI3NjZlYTUxMjFiY2IzMDMyMDNkODBlYzZlZWM4MzE4MDIyOSBsZWdhY3ktdHJ1bmsKKzg4MTEgZmMxYzBhMjdiYjk2MzhhNmUwZDE2MDU5OWMwN2ExYWFlNWRmOTRjZCBsZWdhY3ktdHJ1bmsKKzg4MTIgNTc1ZjZiOTEwZjg4YjQxNmE3NmUzYzMyMzAyNjNiNTBjYzE1OTI1OSBsZWdhY3ktdHJ1bmsKKzg4MTMgYTQyYjMxZmU5NzZmNTU0NDFhMjljZDQ1OWNkNTBiZWVhNTJmYmYyYyBsZWdhY3ktdHJ1bmsKKzg4MTQgOWU0Mjk1MThjYjIwMTc0NTBkZDJkZGFjNTIwZmEyYzQ5ZWQ5MTFhMSBsZWdhY3ktdHJ1bmsKKzg4MTUgNGIwNzZmYzViYTQwM2VhYWQ1ZDAwZjQ4OTgxMTY4NTczZDFjZTZkOCBsZWdhY3ktdHJ1bmsKKzg4MTYgNmY4ZWI0YTFmYTA3ZWI3OTkxODFkMmYwYzAxNDJlMzdiMjZhZWNkMyBsZWdhY3ktdHJ1bmsKKzg4MTcgNTkzZjU0MTI5NjYxNmEzOWM4ZDM5MGFkYzQyNDc3ODZjNWE4NmZhMSBsZWdhY3ktdHJ1bmsKKzg4MTggMWVkOTE0ZjhiZjBhMGZlYzhjOTlmMmVmYmEzZjg5MmRkNTdhMzE1ZCBsZWdhY3ktdHJ1bmsKKzg4MTkgZTllZDA2NGYzOWY1MDVjZjdiNTA5ZGY3NjI1M2IxNWQxZmYyYWQzZSBsZWdhY3ktdHJ1bmsKKzg4MjAgNjg5ZGU2MTNlYTFjY2EyNzE3NzliM2RmMGEyMmU3OGRjOGNmZmEyNiBsZWdhY3ktdHJ1bmsKKzg4MjEgZTQwODdjZDQwYzg1ZDgwMGRiZWQzNmRiY2YxZmQ2ODhkNjEzZDgyZSBsZWdhY3ktdHJ1bmsKKzg4MjIgOThkYWNjODk3M2ExMjAyZjY0MjhhZWMyZjQ2OWFiNTQ1OTJlODIxYyBsZWdhY3ktdHJ1bmsKKzg4MjMgYTVmMjlhNTYwYzA5YTMzODg0MWE3YTdkMzE4ZTU2OGVkYjY3MTUyOSBsZWdhY3ktdHJ1bmsKKzg4MjQgMjY1NmQxZWVhNzkyMmRiOWYyZDUwZGU4ZWFmYTY0YjI4ZDYyMzAzNiBsZWdhY3ktdHJ1bmsKKzg4MjUgNmEzYjllN2Q0M2MxMzc3ZDIzM2YzOThkNzAyZWIzNWIwMmNmNTNmNyBsZWdhY3ktdHJ1bmsKKzg4MjYgYjczMzFiZDBjY2Y1NzdjYjlhOWE2MWE4MzA5MTM0YjA2MmNlNmRiMiBsZWdhY3ktdHJ1bmsKKzg4MjcgOWExMjFiM2ZiZWJiYmFmMWE1YTUxNTFkNDVjMDQxYjE2MTA0YjVjNCBsZWdhY3ktdHJ1bmsKKzg4MjggMzg2NGRmMjk0OTc5YTA2OTYxZjNjYjk3ZGFjZWM1ZTBhZTc3ZmVjYyBsZWdhY3ktdHJ1bmsKKzg4MjkgYjYyYTdhNTk0MTRlN2YzZTBmNzg1NTk3ZWRjNTk0Zjk2NGQ1OGY4OSBsZWdhY3ktdHJ1bmsKKzg4MzAgNjY2YWNjZDY2ODc4Yjc2ODEwM2JjODAxZjBhOGJlZTc5Mzg0ZWVjMiBsZWdhY3ktdHJ1bmsKKzg4MzEgZjRkY2JjMDI3Y2QyMmVlN2VhNDFiNzYyNjNhZGY3ZDU1YTBjYWNlNCBsZWdhY3ktdHJ1bmsKKzg4MzIgMmU0MGUyN2Y4YjI2MGZjNDc2MGI0NzEzZDE5NzRiZmU0NDk2YjhmYSBsZWdhY3ktdHJ1bmsKKzg4MzMgYTg1N2QyZjg3MzM2NGMwZjNlOGNkYzJhOTkwMGI1ZjQyNTU1MjQyMCBsZWdhY3ktdHJ1bmsKKzg4MzQgMTc0YzFiY2M4ZTJkMGQ4MjhlZjk2YzgyODY3M2U3N2VjMjliZDI3MSBsZWdhY3ktdHJ1bmsKKzg4MzUgOWU4MmRkNzYyODhlOGYxOTMwYTQ5YmZjM2Y4ZmIyZGY3M2Q0NjZkYSBsZWdhY3ktdHJ1bmsKKzg4MzYgN2RmNzhmOWQ2ZDM0Nzc3N2FhMTNhNmJiNjg5ZTMzY2QxM2UwZWY2ZSBsZWdhY3ktdHJ1bmsKKzg4MzcgZDY0ZTg1ZWQ3YjQ0MWRhZDdkZjIwNjhjNTYwYzJmMjc1ZjcwZDYzZiBsZWdhY3ktdHJ1bmsKKzg4MzggMGU3ZTIwMDQ5NjM3MjhhMzY1MmVlZWZmMGQ0N2NmZTRhYjc0MzU3OCBsZWdhY3ktdHJ1bmsKKzg4MzkgMzI2NjMyNjdlYjQwNjE5NjBjMDU4OWUwY2JmODIxYTRiMzhjY2Y1OSBsZWdhY3ktdHJ1bmsKKzg4NDAgMGM3NDY4OGJjMWZmYTQ5MzYwYjlmODNhNThiZGVlZDA0MjFlMGQzYyBsZWdhY3ktdHJ1bmsKKzg4NDEgZjM5YmVlM2ZmMjJiZGFjMmYxZTIyYWQ5YjAyZDI5ODFhODdjMzg3NyBsZWdhY3ktdHJ1bmsKKzg4NDIgMjFiOTNkOTg5MjZiODE1YWM5ZWNlMjg0ZDRiN2M2NDgyZWNhNzZkZSBsZWdhY3ktdHJ1bmsKKzg4NDMgNzFjM2JlYjI5NDk5OWRhYWFhODJmODQ3NTY3YjA5YzUwMGVlZGRmNSBsZWdhY3ktdHJ1bmsKKzg4NDUgMmMyOWI4OTgyNjQzMzdkMDJhMDBmNmRkNWQ5NGVlNThhNTBkY2E2OCBsZWdhY3ktdHJ1bmsKKzg4NDYgOTRlMGIzMWZkZjVmMjgzMzE1ODg4NzFmZjFkYWEyNTRjNjgxZDk3ZCBsZWdhY3ktdHJ1bmsKKzg4NDcgZjgyMjQwNDZjY2Y4Y2IzMzYyNTE0YTg2Y2UzOWY5ZDdhN2I1ZWIxOSBsZWdhY3ktdHJ1bmsKKzg4NDggMzY0MDUzMDkzOTdmYzI2NDkwNjdiOTI4ZTAyZTZiZDExZjAzMjczMiBsZWdhY3ktdHJ1bmsKKzg4NDkgNjc4YTNmMWQwYzgwOWM3MDBiZDJmNGY2NDkzZDkzNzhiOTk1YmVlMyBsZWdhY3ktdHJ1bmsKKzg4NTAgYzcxMzliNmY3MzQwNmUxYmIyOGYxMGY0MWJjYzgxMzUwZTc3ZTEzMiBsZWdhY3ktdHJ1bmsKKzg4NTEgNDdhOWE2ZGUyM2ZmYzIzYWYyOGMyM2MzODY3NDU1NGFhYzc0MDYyZCBsZWdhY3ktdHJ1bmsKKzg4NTIgZjZlZjlhZjRjOGI5NTRhNTVhN2I0ZjhlYmFlY2QxNjRjNjU4ZGM4ZSBsZWdhY3ktdHJ1bmsKKzg4NTMgYjY4MTg1ZDk0Nzc3YzBkMWFlMmE0OWJiNDk1MGRiNDk0OWRkMDlkYSBsZWdhY3ktdHJ1bmsKKzg4NTQgMWFmY2FjNzY1OGU1NzQ2ZTQxM2Q0YjIwYzMxZTYzNDE5NmNlNjNjNyBsZWdhY3ktdHJ1bmsKKzg4NTUgNGNiMjIzZjI5MzM3NmZhN2ZmMDZkNjBlMzk2MzZiZDc3MmUxMThhZCBsZWdhY3ktdHJ1bmsKKzg4NTYgODkyMmM3ZjNhMjg1NTExODk3MjEzMDJjODIyYmY2MmYxZDA1MzhmNCBsZWdhY3ktdHJ1bmsKKzg4NTcgYjgzZWEyZmVmMzMyYjFhYWU4YWQxYjNhYjBmMjIxY2IyMTMxNmRlMiBsZWdhY3ktdHJ1bmsKKzg4NTggMzdmZjcxY2Q5NDFlYjA0ZTc0M2JhZTVlNjViNGJiZGRlYzkxNTQ0NiBsZWdhY3ktdHJ1bmsKKzg4NTkgNDQ5MDQ3NjRkYWZhOGM3NGQzMmNmOTZkNTk0NTVjMGQ5ZGI4YWZjMCBsZWdhY3ktdHJ1bmsKKzg4NjAgMTZjZDM5ODA1ZmQ1MTg3YWI2ZjgyZmZhYmQxZjkzMWI5ZWNlNDA2OCBsZWdhY3ktdHJ1bmsKKzg4NjEgM2YxOTUyNTM0MzY3Yjk5MTU0NTI0NTY4Zjc3MGU5NWYzOTE3MTQ1MyBsZWdhY3ktdHJ1bmsKKzg4NjIgMjM4YThiNjA5NmUxYmIxZjI3YzU0MjU5MzlhMWQyZmYyNzNjNmI3ZiBsZWdhY3ktdHJ1bmsKKzg4NjMgMTRkNThiNWEyMWM0MDg2OGJjMWI5MGFjODg5NTVkNDdlNTU2OGVmZiBsZWdhY3ktdHJ1bmsKKzg4NjQgNTA1ZjUyMDEwZjJhZjlkZjQ5NmY1YWY2YzVhNzY2MzNlNTg4MWRkMyBsZWdhY3ktdHJ1bmsKKzg4NjUgODMzZmIwMTQwOWYzNDlhNGI5NWM3YmJiOTYxMTQzOGRkNDJkZWVlMyBsZWdhY3ktdHJ1bmsKKzg4NjYgMzdlNjhiNGE1Mzk3MzM2MzIwYzZlYjEzMTIwMzdmYTJlZTUyZTZlNyBsZWdhY3ktdHJ1bmsKKzg4NjcgYmRmNGUyN2Y1YjllM2QxMzNlY2MyZDY5NzFmMGE0NDk5ZDg5ZTI5OCBsZWdhY3ktdHJ1bmsKKzg4NjggYTJkZjNjOWU1ZjQzYWNmYmY0MjY2YWJjZjFlMWY0MzI5ZTRmOWRhOCBsZWdhY3ktdHJ1bmsKKzg4NjkgN2NiZWYwZDc0ZWEzNDFhYjE4MDIzNDMxZDQ3ZDdiNzdjOTg0ZDAyMyBsZWdhY3ktdHJ1bmsKKzg4NzAgMjRmMjk1ODZkZTk2OTAzNjdmYjBkOTI4ZDFkNjIyYWI1NzdlOTA3ZSBsZWdhY3ktdHJ1bmsKKzg4NzEgZjZmMjUxMWJiNmJhYTJmODBjNGE4YzVmNDIzMzhiYWJlNDc2YzVhMCBsZWdhY3ktdHJ1bmsKKzg4NzIgNzg0YTE2ZjU2NjQzNDc0ODg4ODY3ZWZkODFhNmZiZDQ4NDJmMzhlOSBsZWdhY3ktdHJ1bmsKKzg4NzMgMjJkYWUyNjM3ZTA4MmVkMDY4NzllNGFjYWY4YTM1YTY2ZDIzMjQ0ZiBsZWdhY3ktdHJ1bmsKKzg4NzQgNmVhOTI2YjQ2ZjhhZWJiZmYwZTlkMGM4YTM4M2JjOTRjYWUzMTg5OCBsZWdhY3ktdHJ1bmsKKzg4NzUgNGQ1NWJmZTFmZWJiZWM2MzYyMTY2MTJjZGQxYTlhZWZjMDQyNjhkMyBsZWdhY3ktdHJ1bmsKKzg4NzYgOWVkOWViNGE3ZjIzYTRmZjgxNTI5NzYxNTIxZGMyZGY3NDUzY2NlZiBsZWdhY3ktdHJ1bmsKKzg4NzcgYzdmZTM4OTBmMTAzZTY2NGYwOGQ5MzA2Nzc3NWVjYzUwYmRkMmZkMCBsZWdhY3ktdHJ1bmsKKzg4NzggMDQ5MGY2YTg0ZDM0NzUxNjk4ZTM5Y2ZjM2I4OWYwYzhjOTNhM2Q0MCBsZWdhY3ktdHJ1bmsKKzg4NzkgMzIyNDg3OGJkOGIzYThlMDE5MGRlODc1Yzg3YWExMWJlZjQwZDFmMyBsZWdhY3ktdHJ1bmsKKzg4ODAgOWY4MTM0ZTk1NTY1YjRhNmU0MWU4YTA4OWQyYmY4OGI0YTgzMzZhOSBsZWdhY3ktdHJ1bmsKKzg4ODEgOTQ1MmI3N2Q2N2VjOWZhMGU2ZjMzMDJjMzA5MmRhNTgwOGFlZjBmNiBsZWdhY3ktdHJ1bmsKKzg4ODIgZWQ2ZjZmMDMyMjE3MTliMmY2NjBlODBmMTlhOTAyYjU3ZWVkNjJjNyBsZWdhY3ktdHJ1bmsKKzg4ODMgNjUxNzdhYjZhNjk2YzUxOTlhMGNmYmJkY2UwZjQwZDZkN2JjOGUxYiBsZWdhY3ktdHJ1bmsKKzg4ODQgODExNTRhNTFjMTZlZDJhNmRlZmUxOTJiYTFlMmM1ZmRkMjcxNDMzMyBsZWdhY3ktdHJ1bmsKKzg4ODUgNTc0ODRlMjFlMzI3MWRiMmQ5YzRiZTMxMmU5ZjdlOWFmYmIyMGQxNSBsZWdhY3ktdHJ1bmsKKzg4ODYgMTg0MDkzZDk2ZDJhMmJiOGRjZmFhMGZjZWI4NDQ5MGE4ZWQyZmI5MiBsZWdhY3ktdHJ1bmsKKzg4ODcgNGFkYzdlOTZhYmEyNTI4ZDY3MWM0ZjQ5ODRmOWJjZTBkNjE4NTdlMSBsZWdhY3ktdHJ1bmsKKzg4ODggNDM5MzgwMGY5MjYxNTk4MTIyYjZkOGYxZTliY2YwZTI0M2Y2NjQ1YyBsZWdhY3ktdHJ1bmsKKzg4ODkgMzg2NTVlM2FkMTkyNTdlMzVmMTg0YmIzYTcwM2U4YzM5MzFmZTUxYSBsZWdhY3ktdHJ1bmsKKzg4OTAgMDRmM2QyNTlmOWU5OWFjN2U4NjdhYjNhNGEyMmIzN2U2YWVhNzdiNCBsZWdhY3ktdHJ1bmsKKzg4OTEgYzM3OGU3YTAyMzRhMmExMDM3YjlhZWVhYzFmNDdkMGM5NGI4M2NmYSBsZWdhY3ktdHJ1bmsKKzg4OTIgZWNjNTNlYThkNGViNjVjMDYyNGM0N2YxNWFjZmE4Yjk5ZTg2ODllNyBsZWdhY3ktdHJ1bmsKKzg4OTMgMjMwODNiZDhjMjYxODk4NzljZmM0MWI3YTI0ZDY5YjA4YzA5MThmMiBsZWdhY3ktdHJ1bmsKKzg4OTQgN2Y3NzcxMGEyMmQwYTY3MWVlZGZmMWUzOTk5ZDkwNWFkY2M1NzA1NiBsZWdhY3ktdHJ1bmsKKzg4OTUgNDQ5MWY4NGFjMjIzYTE2ZTkxMmZjNzA0YzE2MDZhOGRiZjNiOWMyMCBsZWdhY3ktdHJ1bmsKKzg4OTYgNDhkZjAxZWFhMDlhMjQ1ZTgyNTQwNTA1YTNmMzg4MGRmM2VlNGU4OSBsZWdhY3ktdHJ1bmsKKzg4OTcgNmYwNjQxMGUzMDdhZjQ1Mzc1ZDljZDdiZjMwMzRiODNjY2RjMTVjMSBsZWdhY3ktdHJ1bmsKKzg4OTggYWJlZDc1NGM3YjdmNWIxMzA5Y2I3MGIxZDA0OGQ3ZjYzNzU5ZmExMCBsZWdhY3ktdHJ1bmsKKzg4OTkgYzYyZTM0ZWE0NjRiMmQ0MGU3ZWQ2NjQ5MGNmMjY2YzI4N2M5MjZiNCBsZWdhY3ktdHJ1bmsKKzg5MDAgZmI5YjBkMjQ2ZWYzNGViZjYxOGY2MjAwZWI3NWZiMTNiOGM0MjFjMyBsZWdhY3ktdHJ1bmsKKzg5MDEgNjQ0NDg0ZTFhMzdiN2VlMmJkNDM1ZGE5YzBiNmVmYTY2NjQxNzVmYyBsZWdhY3ktdHJ1bmsKKzg5MDIgYWFjYTQ3ZWY1NWE4ZDQ4M2U5Mjk1YmRjODVlMWI4NmVhYmNjMWZjYSBsZWdhY3ktdHJ1bmsKKzg5MDMgNWYwMjE2MzAyY2Q4ZjRjODM3NWM3NmQ0MTQzMmViZDYzMjQ0MWRiOSBsZWdhY3ktdHJ1bmsKKzg5MDQgMDY4MjU0ZmU1NjE3ZTRiYWZiMzIzNjkwYTk1ZTlkNzZkYjZmMjlmYyBsZWdhY3ktdHJ1bmsKKzg5MDUgYWVlNTZlOWQxMGZjOTM1OTJhMWIzOGI1YTBkNWUxMTIzYjc3ZWI4ZiBsZWdhY3ktdHJ1bmsKKzg5MDYgZTM1NmEzNDQ4MTlkN2EyMjYwZGI2OTFjZTRmODhkNTcxMjVhYTZlNCBsZWdhY3ktdHJ1bmsKKzg5MDcgMTRhNzExMjY4YzUxYmI2OTM3YjE3MDg5MjNlYjA5ZjBhMjYxZDlkMiBsZWdhY3ktdHJ1bmsKKzg5MDggZTc4YjYxNzRiZWM5MjNlMGEzZWI4YTc5MjlmODU1ZGI5MzZiMmU5YiBsZWdhY3ktdHJ1bmsKKzg5MDkgMGRmMDE1OTA1MTAwOGViNTFiYmQ5OGI1MzhjM2QwMThhMzY2MDQ2NiBsZWdhY3ktdHJ1bmsKKzg5MTAgY2U1NmE3Y2ZlOTZjZmQxMDFjNmRiMzFlNjY5NmY2Njc0MjEyYjQ1MCBsZWdhY3ktdHJ1bmsKKzg5MTEgNDM1NjA2YjIxNWM1MmJhZWNmZTFhNDRkMDk3YjJkMmFiYWZlNDdmNSBsZWdhY3ktdHJ1bmsKKzg5MTIgYzgzYTFiMjFjNDJkMmEwODYwZTIyOWZjMGZiY2FkOWYwYzM5MTVjYiBsZWdhY3ktdHJ1bmsKKzg5MTMgMDUzYmJhYjBlYzUzZTIxMTIyODNlMTg5MzY3ODEwNzNlZTk1ODQzOCBsZWdhY3ktdHJ1bmsKKzg5MTQgZTU3YzcyYTJiMDY1NmQxZmEwYjExZTIwMTdjNzNlN2IyODE4NjM5MyBsZWdhY3ktdHJ1bmsKKzg5MTUgZjM4NGNjMTFiNzViZjA2MTMyNWQ4ZWUzMGQxNDM2ZmUxNGY2MDZhZCBsZWdhY3ktdHJ1bmsKKzg5MTYgOWU0NmVjZjAzYzNlODMzMGU5M2ExZTI3NWU0Y2I2M2UyMDVmNTFkMyBsZWdhY3ktdHJ1bmsKKzg5MTcgZDc3NjBhMWJhNGNhNzY5ZTYyNDdhNWMxZmMzY2Q4ZWNkMWU3ZmVhOSBsZWdhY3ktdHJ1bmsKKzg5MTggNDJiYzc5MmFjNjlmYWU1NWZmMjMwNGY0MmVlNTQ3Yzc5Mjc4ZmUzMSBsZWdhY3ktdHJ1bmsKKzg5MTkgZDllNTE0NTFlYmRmOTMwMmM0YzYyZmQwZTNiODlmYzI1MzM1ZTY0MSBsZWdhY3ktdHJ1bmsKKzg5MjAgZGRmY2VmYzBkODI2ODA3ZTFlOWE1OGZmNjNhM2MwZmU3NGEyZDlkZSBsZWdhY3ktdHJ1bmsKKzg5MjEgMTA4ZmZmMjU0NjJkNTYyMmRkNmE3NWU2NDQ3OTgzZjg2M2YwYjZhNSBsZWdhY3ktdHJ1bmsKKzg5MjIgOTNjMDE1ZWMyZDU3Y2FhZjg2MGQzOTRmZDcyZjA0MTc3YjExNDU0OCBsZWdhY3ktdHJ1bmsKKzg5MjMgYmRlNWFhZjNlNTg5NzQ0YjM0Y2FiMmJjNjAxOTFmOWRmMzlhMTg5YSBsZWdhY3ktdHJ1bmsKKzg5MjQgNTgwMzc4MmU3M2ZmYjcyZGZkZDhmOTNhNWZiYWJjMTRkOWQ2YTA1MyBsZWdhY3ktdHJ1bmsKKzg5MjUgMzFhNTA0NjgzNjZiYWUzN2NjYzExNmZhODA0OGIyYWUxMzg1NDU0MyBsZWdhY3ktdHJ1bmsKKzg5MjYgYjg1NGNhNDYwNWUxMjI5ODE0MGJiMjcwZTM1ZWM3YjZjN2NkNTBjZiBsZWdhY3ktdHJ1bmsKKzg5MjcgMzM1MGM3MzU1MGVlODNkMjMwOTI2ZjdiNzE5OTA5NjZiN2M4ZGExZiBsZWdhY3ktdHJ1bmsKKzg5MjggNzdhMjJkNDlkZDg1ODVkZWVjMjFmZDU0ZGVmNTliMmRmYmFlYzZhZSBsZWdhY3ktdHJ1bmsKKzg5MjkgMTA0MTMxNzlhNzJhNTg5MDNlNDVjODVjYWYwYTcxMDU5YmFiYjRlMCBsZWdhY3ktdHJ1bmsKKzg5MzAgN2VhNDY1ODMwZWY0NWRiZGQzMDlkN2I1ZmNkODk0Mzk1YzEyYTFhMSBsZWdhY3ktdHJ1bmsKKzg5MzEgYzliMTM5YjljNWZmZjUwM2M3ZjVjMGQzYzBhMzJmNjBjOWQ3ZDUyNCBsZWdhY3ktdHJ1bmsKKzg5MzIgYjViMzVhMGNmMWFhOTI4MjYyNmNhOTA5ZWRiYTQyOWVmY2U5ODM3YSBsZWdhY3ktdHJ1bmsKKzg5MzMgMjEzOGNmM2JkYzVhYjg1OGZiMjViNDBhYmY0ZjYyNGI5NTkyZjdlZiBsZWdhY3ktdHJ1bmsKKzg5MzQgMmM1YzM5OWI2ZWE0NjMzOTJlMjM2MzEzYTg1ZmI3ZTAyOTRjNGU4MyBsZWdhY3ktdHJ1bmsKKzg5MzUgOTBlZWQ5YTVkMDdhODM1OGQxMjEwNGFiYmMyYWIwOGMzYmQ0OGJiYiBsZWdhY3ktdHJ1bmsKKzg5MzYgMzkzNDg5NzRiMjJlODkwMDdmY2RiYTk0MWZjMjhkYzc4MGU5OWRhMSBsZWdhY3ktdHJ1bmsKKzg5MzcgYjY1ZWI0NDQyMmJhOTMyMmY3OTFhOGU0M2FmNjNlNDA1MzI4NWY4MCBsZWdhY3ktdHJ1bmsKKzg5MzggNzc3YWU1MjYwYTEyZjVjODNjN2ViNzE0MWQ4YmRhN2UwYzg2MTk5ZCBsZWdhY3ktdHJ1bmsKKzg5MzkgOTk4NjI3MmNlMjRhMTVjNGVmYWJkNmYwZDM2ZWY4OTA1YmUyZDVkNiBsZWdhY3ktdHJ1bmsKKzg5NDAgMjJiZWQ1Nzk0NTE0YzYyNzkxMDc1MTM0NzE5MjQ3MjQ0MzJlYmI4OCBsZWdhY3ktdHJ1bmsKKzg5NDEgMGIyYmNmMDQyNGEwNTNhNTZlZTBjYTY4ZjdlYzNkYjJjNTc2MThkZiBsZWdhY3ktdHJ1bmsKKzg5NDIgNGQ1NDVjYzZmYTk5YzRiMGFjZDdjYWMxYTRkM2ZkOTA1ODcyZDJjNyBsZWdhY3ktdHJ1bmsKKzg5NDMgYzE0MmViNTMzZmI5MGY5YjMyMTM0MWM3MTc1OGJmMWYyNGIwNDhhYiBsZWdhY3ktdHJ1bmsKKzg5NDQgOTQxNjM3NTljYjAyMWJkYTc3OWM2MmQxMDRjMzg3M2YzN2ExNDZjZiBsZWdhY3ktdHJ1bmsKKzg5NDUgNmE5MWEwZjY0MmZlN2IwYWMzNmI3NDQzMmM2MDJiNWI5ZGM4ZjY3ZSBsZWdhY3ktdHJ1bmsKKzg5NDYgMTAzYzYzOTgzY2RmYTRkYmNhMzA4ZDViYjJmODYwMmFiODlhYWI4YyBsZWdhY3ktdHJ1bmsKKzg5NDcgZGNhOWJkZjVlYTA4YTgwYzFmM2E2YzFiYjNjYjYzMzU2NzQ2YjQzZSBsZWdhY3ktdHJ1bmsKKzg5NDggZWU0ZjJiMWNlZWRhNGFhYzI2ZDQ0NDM3NjMwNTNmMGRlN2NlYWQ5NSBsZWdhY3ktdHJ1bmsKKzg5NDkgZGY2NTllMjM5ZTkwNmQ5YjYxNjdjZjcxNzI1ZTYyYjAzYWYwOWZiZCBsZWdhY3ktdHJ1bmsKKzg5NDkgNzQ2NjU0YTBhZjY4MGM3ZDliODE0YjIxMGEwMjZlYjkxYmVjOTUzMyBsZWdhY3ktdHJ1bmsKKzg5NTEgMmVkZTdjMmFjOTJjZjFlZTg5ZThlNTI0MTljODkwMWIwMzRiNzU4NiBsZWdhY3ktdHJ1bmsKKzg5NTIgZDE1MzI0MmFhNmJiMmRjM2IxZmJlYzhjOWFlMmFlNzg1OTRmNjgxYiBsZWdhY3ktdHJ1bmsKKzg5NTMgZjVmNzQ0ZWQ4MTM3YzdjYzM0YmZkMTE4ZDY1YzYyM2U2ZTQxNDE2MyBsZWdhY3ktdHJ1bmsKKzg5NTQgN2FiMGIwNTI5M2FhNDI3MjBkMTUxY2E4M2M3ZTNiZGViOWE1NTExZSBsZWdhY3ktdHJ1bmsKKzg5NTUgYzY3ZDg0MjFmYTIxNjY2ODA4YTI0YzYyMzg3N2UzMzJkN2U0YzUzYyBsZWdhY3ktdHJ1bmsKKzg5NTYgMjk3YTU0MWViODY1NzRjMjMyN2IyYzAyMThkNjkxMzRhMWYwYTk3MSBsZWdhY3ktdHJ1bmsKKzg5NTcgNThiNGQ5ZWE4ZTUxMzg0MmYzNDdlM2Q1YTQzMmYzZWJmYzE2NzI0MiBsZWdhY3ktdHJ1bmsKKzg5NTggNzI3YjUyMDMxMjEyNTc3ZDllZDUxOTVmOTQ3YmYwYWYwMTQ3MTRkMSBsZWdhY3ktdHJ1bmsKKzg5NTkgY2IwNWVhMmI2M2Q5ZDAwMDA2N2I1YzJlMTU3MmZlMTYzYzUwODczNyBsZWdhY3ktdHJ1bmsKKzg5NjAgZDMxMWI2ODc1NGMxODZlOGNkM2RlNzAyYmI2MzQwYWNlOWE5YjJjNyBsZWdhY3ktdHJ1bmsKKzg5NjEgNTYzYWUyMWIyMDU3ODM2MzlkODYxOGY5YzdhOWZjMGQwZGY4OWViNiBsZWdhY3ktdHJ1bmsKKzg5NjIgYjhlMjYwNzhkOGIxYWQzOGY0YTJhZDEyYjBiOGY0YTc2ZjVkZmVkNCBsZWdhY3ktdHJ1bmsKKzg5NjMgMmYyNTgxNjJhYWUyYWNkZmVkNzZjNTZlYmJiMmJkZTM2OTE5NWRiZCBsZWdhY3ktdHJ1bmsKKzg5NjQgMTYxODA2MDcxNmU3ODE5NTIzYmYxYzUwMjE1MTJjOGUxMzQ0ZmE1NiBsZWdhY3ktdHJ1bmsKKzg5NjUgNjMwNzI1ODA1YzY2MjJmZmM3MjRlODg0MGUyN2ZmZDAxNzZjNGNiNSBsZWdhY3ktdHJ1bmsKKzg5NjYgMzdjOGQ3Zjk2N2M3MWMwZGU0MTRiYWNhOTJiNzFlOWFiZTY4Zjg4MyBsZWdhY3ktdHJ1bmsKKzg5NjcgNGUxYTBmZTBhY2UyNGY1NjI4NDYxMDI1ODA2NTJlNDRhMTkxNjYyYSBsZWdhY3ktdHJ1bmsKKzg5NjggMmY5ZDU5ZGE3MmZiODZmNDA0YjdhMGU0MTVjMjc0YzAwOWViNDg1ZSBsZWdhY3ktdHJ1bmsKKzg5NjkgYWU3NGI2Y2NlZjU3ZDQzN2NmNzc5NjgwM2FkNWNmMGZjMGQyM2Q0YiBsZWdhY3ktdHJ1bmsKKzg5NzAgMjIyZGQ0ZDA2NTgxMjk0ZjIyOTU2NWM0NDdmOWM0OTFhMjgzZTk2ZCBsZWdhY3ktdHJ1bmsKKzg5NzEgYmI4YzMwMDRkNzU4ZWMxYmU5ZWQ3MzE2ODliNTBmMGJhNTAzMjRhNCBsZWdhY3ktdHJ1bmsKKzg5NzIgMTdlM2Q5YjZiNDJlODI4NTgxMzRjMmM0M2MwN2I2NmRkNGQ0MDViYSBsZWdhY3ktdHJ1bmsKKzg5NzMgMzlkMmE0ZGI3YzNiODBiODAzNmIzNmZlYmU2YjkyMjQwYjU1ZmYwMiBsZWdhY3ktdHJ1bmsKKzg5NzQgY2U0NWVmNGM2NWU5MWJlN2IyOWI1YTEzNWI5NzE0YWYxMTYxYzdjNyBsZWdhY3ktdHJ1bmsKKzg5NzUgYjM4YTc1NWI4ZGIxYzg3YWVlMzBjYjIyOWRiMzg0MTYyZDU1MzViNiBsZWdhY3ktdHJ1bmsKKzg5NzYgNDk4MWZkMmIzMjExNDA2YWJhNWQxNmU0YzRlYzRlYmNiOWNlNzcxNiBsZWdhY3ktdHJ1bmsKKzg5NzcgNmEwOGI2MGRlODJjNzIzMGIxMmZmZWQwNjVkOGM2YWE2MTliNThkYiBsZWdhY3ktdHJ1bmsKKzg5NzggODc5MTMwZjFmZjVmY2IxMjJjNzI4NTA3MmE0Nzg2YTA0MDgxYmY5NiBsZWdhY3ktdHJ1bmsKKzg5NzkgOWVmOWNhZGQ5NzhjNTRhODEyYTk2NWM1YjU5MzcwMDAxYWNlYmNiYSBsZWdhY3ktdHJ1bmsKKzg5ODAgMmEyZTViNzMxZDFjNzc2MzM5OTlhMTJjOTg2MjAyMWNmNjUyMjI0OSBsZWdhY3ktdHJ1bmsKKzg5ODEgOThiMmEwYTA5M2M5ZDQ5Yzk3ZGQ3ZWE1ZGRmM2Y1OTI3ZWZjMzgwZCBsZWdhY3ktdHJ1bmsKKzg5ODIgMDcxYTBkM2E0OWI5ZjkwZjVjMGJmMGZiYWYwZWZmOTk2ODViZjI0OSBsZWdhY3ktdHJ1bmsKKzg5ODMgYjA0OTRiYjUyMDE5OTRmOTE0OTY2NzRmNWU0YzliNDQ0MmUyZDc5ZSBsZWdhY3ktdHJ1bmsKKzg5ODQgZGY2ZGZhYWMyZDBiNTFhMmVmZDEyZGZjZGMxZDUwMTUzNDZiNzQwZSBsZWdhY3ktdHJ1bmsKKzg5ODUgYTAwMDczZjJlMDg3YWI0Y2UxNzI5YzFiMjBiOGE0NmRiMmFmYTQ3NiBsZWdhY3ktdHJ1bmsKKzg5ODYgODA3MzVmY2MzNWFmZmI3MjgxNDRmNzY2ZWMxYzU0ZTRiYTk2YTc2YyBsZWdhY3ktdHJ1bmsKKzg5ODcgZjAyMmJiZDEyMzM4NjgwMWQxZDQ2NWExOGI3MDk0MjhhODkzOTNjNCBsZWdhY3ktdHJ1bmsKKzg5ODggNzQ1MThkODgyZWQzMWFlOTQzNWEyYmUxMTdlNzRiOTVhZWI3YTNjYSBsZWdhY3ktdHJ1bmsKKzg5ODkgZmRiNzc2MzZjMDc0MzAyZjA2YTU4MzQ0MTM1MWQ3OWUyMjQ3MzUzMSBsZWdhY3ktdHJ1bmsKKzg5OTAgYTNkZDU5MTA4MTE5NmEyYmNhY2MzZjY0YmUyMDhiOTg2MzhjOTBlNyBsZWdhY3ktdHJ1bmsKKzg5OTEgNmM1ZjdlNzRmYTg4MDFmZThjZTgxMjI2NDBjNTQ0Yjc2NTFjYTUzMCBsZWdhY3ktdHJ1bmsKKzg5OTIgNmQ5Y2ZiNTNjN2VkMmMyY2RmNDI5MGQ4MWMzOTNmODMzOGIzZDMzOSBsZWdhY3ktdHJ1bmsKKzg5OTMgZWNjZGZkMTcyNzQwNjExZWIxNWI1ZjA1NDE0ZGQ2YThkOTUwNTQ4NyBsZWdhY3ktdHJ1bmsKKzg5OTQgN2U1MTcyN2QzYjdlZjNlNDIzMDQ1MWRiM2E5YTRkOTA3ZWJlZDA3YiBsZWdhY3ktdHJ1bmsKKzg5OTUgMWQzMGU1MmRjMzRkOWI0MzU3MWNlMmIyNzAyMWNhODhlNDYzNDk0OSBsZWdhY3ktdHJ1bmsKKzg5OTYgMWFmZjE5NzgzZDc0NmYxYjczZTk2N2VjMWI1ZWM5YzhlNWEwODllZSBsZWdhY3ktdHJ1bmsKKzg5OTcgMjRkYTAzNWNlYjZlYmQxYzg1YzgyYWIxMTQzMzllMTU0ZTg3NWJhNiBsZWdhY3ktdHJ1bmsKKzg5OTggZjFiMTcyODQ1MmMxMzBiMmI1NDVjZjA3OGJlZTVhNWJlYWRjMzc5NSBsZWdhY3ktdHJ1bmsKKzg5OTkgM2Y4NDU1OGEyNGRkODRmZjJmMzQ4MTJlYjdiZTM1MTQ1ZGQ2MTg4YiBsZWdhY3ktdHJ1bmsKKzkwMDAgOTYxNGZkZDgxMzkzNmVjYjg4YjE0NTM4ZGQ2Nzg3MDQ1NTFmMzQ1YyBsZWdhY3ktdHJ1bmsKKzkwMDEgZWU0OTZlZjFjYTgzOTliNzJmM2VmNGUwZjU1NTQyYjY1YjA5M2U2MCBsZWdhY3ktdHJ1bmsKKzkwMDIgZTljNjdjMTkyY2RiNjY3NDJkMTM5MGYyNTlhNDBlOTM4NWJhN2ViZCBsZWdhY3ktdHJ1bmsKKzkwMDMgNWNjYjEyYWZmYjU0YzBjNzE2OTE5OGIxNGVjMzkxMzE5NzAxYzE1NSBsZWdhY3ktdHJ1bmsKKzkwMDQgNDZmYTQ3MTdjZjI0YWNiN2ZjYzU3Yjk4ZWJiZTg1NGRkYTM2NGEzOSBsZWdhY3ktdHJ1bmsKKzkwMDUgYmMxOTAwMjQzZTMzOWEwZmQyZjBlMDJkNTNiNzk2ODU1N2FiMDM0ZiBsZWdhY3ktdHJ1bmsKKzkwMDYgNzIzYzg5ODgzMTg4MWQwNzVkMDgyOWVlOTE2NTg0ZGI1MDdjYTYwMyBsZWdhY3ktdHJ1bmsKKzkwMDcgODllMmVhYWNmZDkwMDBhZGQ3MWI4ZjFhYzc3NzdkOTdmOThmMzYxZiBsZWdhY3ktdHJ1bmsKKzkwMDggMGNkMWYyZjFkODJkMWM5NTgzNzVkY2NkNmQ2NTlkNGY4ZWU2OGYyNyBsZWdhY3ktdHJ1bmsKKzkwMDkgZTQ5N2E3ZmMwYWE4NTZjODU4NDVmYjAxNzA2MDgyODhkNjkzYjBjZSBsZWdhY3ktdHJ1bmsKKzkwMTAgZDM2OTYyOWU4YzI3YzBhM2RkMGI4ZmUwM2ZkOWExMjliZjVjMDhmZSBsZWdhY3ktdHJ1bmsKKzkwMTEgYmE2NTM3MjQwOGRkYzZiYmRlMWEyZGYzNTgzYWI4MDEwZmI1N2JjMCBsZWdhY3ktdHJ1bmsKKzkwMTIgMDg2NGE1NTY2ZDg5YWJkZGQ1YWVhZTFmNjEwOWI4M2NjN2EwYTg2YyBsZWdhY3ktdHJ1bmsKKzkwMTMgNjRjNWVmYTlkMmM0ZTRjMDBmZWU5MjQ2ODllY2NjNjk5Y2I3M2IwOSBsZWdhY3ktdHJ1bmsKKzkwMTQgMTg3MDM1MzhhZjQ4MTgxNzE4MTk0NzIzZTQ1N2UwMmY3Y2JhMzYzZSBsZWdhY3ktdHJ1bmsKKzkwMTUgMjU1MDVlNTYzYjM3YjcyZmU5N2JhYzIzMTQ3NTc2M2EwOTMzMzQxMCBsZWdhY3ktdHJ1bmsKKzkwMTYgYTFhMmI3MTE1OThjZDdhYWUxYjI1NTdlN2ZiYzg1M2M4ZjAyODZlZSBsZWdhY3ktdHJ1bmsKKzkwMTcgZDFmNDZhMDhkNzhhODZkMmM1OTExZjY4MDY4YTE4N2FlZTVmNmJlMyBsZWdhY3ktdHJ1bmsKKzkwMTggODBmYzBhOTA2ODg1MmVhZWY4ZWYyYjAyYWE4YTI3ZTBjYTk4ZDg4YyBsZWdhY3ktdHJ1bmsKKzkwMTkgYjJkZmZmMDY3ODljNmRmNzcyNjcyZGYzOGVmYmRhODE4YWExNTNhMCBsZWdhY3ktdHJ1bmsKKzkwMjAgNjJiZGIxY2JlMGY1NWY5NzViNjc3ODBkNDE5NzAwYjNjZDQ2NTc1ZSBsZWdhY3ktdHJ1bmsKKzkwMjEgZmMzMjdlYzE1YzdlZGUyZGY3ZmI2ZGUzMjhiY2UwMWE3OTdlMTFjMyBsZWdhY3ktdHJ1bmsKKzkwMjIgZDI4OTMyZDY3NmM4YjllNGM1ODVkZmNhYjk5MWZjNGM1ZDZhMzkwZCBsZWdhY3ktdHJ1bmsKKzkwMjMgYjQ1MDMyMjg1ODNjNGI0NjdiM2M1MDVhNGZiZDNmOTVjYjQ5NjI3NSBsZWdhY3ktdHJ1bmsKKzkwMjQgYzkxNWM5NGViYjZiZjNhOGEwMjNmZDA0NWMyYjVmYTdiYjk5NjhhYSBsZWdhY3ktdHJ1bmsKKzkwMjUgNzI0MzgyYWY1MzM5YjhlM2QwYTA2NTE0YmQ3ZjFmODY5NjA2YjQ0OCBsZWdhY3ktdHJ1bmsKKzkwMjYgZGQxZTgzMzIzYzQ1ZmRlMTcwODE2OTc1NmI3ZDc1NDk5NzU3NmEyZiBsZWdhY3ktdHJ1bmsKKzkwMjcgYThlM2IyZTlmNWQyMjgwYzIxNGNkMmE1ZjhhNWFjZDU5MTVkNWQ0ZiBsZWdhY3ktdHJ1bmsKKzkwMjggZjQwNmVjMzViZmNhNjk3N2NhNTJlZmFmYWFmMDUxNWU2NmQ3ZTg3OCBsZWdhY3ktdHJ1bmsKKzkwMjkgYmRkNGNiMmE4M2I1NzUwMTdlNTQzYjgzZDRkNjQ0YjliYjJkZDk1MSBsZWdhY3ktdHJ1bmsKKzkwMzAgNWRiZmZjNzg0NGY1NWE5ZWMwMTk3MGEwZGJmZTQzZjQ2M2M4OWUwYyBsZWdhY3ktdHJ1bmsKKzkwMzEgMmM2ZjJkOTJiMzE1MDg4ODJhMTdjNDAxMDMxY2M4MjZiNjZkYWQ5YiBsZWdhY3ktdHJ1bmsKKzkwMzIgN2M5YzRmODIyNGM4YjIwNzRiZDJhZDhhMDQ5YjlmZjcwNWZiYzM4NCBsZWdhY3ktdHJ1bmsKKzkwMzMgYTVmN2ViODY5ZjIxYzMzMjkyOTM1MmYzNDM2ZjQ4ZjY1OWRjNWNlOSBsZWdhY3ktdHJ1bmsKKzkwMzQgNDI4MGIyNzI5Y2NlY2IwOTliMWM5YzQ1ZmJlMTZlOTdmODdlNDRlYSBsZWdhY3ktdHJ1bmsKKzkwMzUgYjMzMWNkNDdlMGJjNzExNzAwZWVkOGVhODlmMTQ2YTQxZGZiNjgzNSBsZWdhY3ktdHJ1bmsKKzkwMzYgZWUzMDdmOTg0NWEzMjZjYjUzNTAyNjEyZTY3NTg0YTliZjE4MDRkMyBsZWdhY3ktdHJ1bmsKKzkwMzcgMWEyMzNiZTVmYzE3YTY4NjgwNjU0NmFmNGQ2N2FmMzJhNzdhZGZmOSBsZWdhY3ktdHJ1bmsKKzkwMzggNmU5YWE5MmZhYjY5Mjc4ZmEyMTM4NjZiMTk0ZTBhMDkwMWVlMDY2OSBsZWdhY3ktdHJ1bmsKKzkwMzkgZmQyZDRjMGFlNjQ2NzJiOTc3ODRjMzg2NmU3ZTM1YTVkYzAwMjMxMSBsZWdhY3ktdHJ1bmsKKzkwNDAgNTM4MzUwNDM1MjhjOGI2ZjEwNzAzNzRhODBhODRhMDQ1OWRkYjBiZSBsZWdhY3ktdHJ1bmsKKzkwNDEgMmFhMTNjMGM4ZjJmNjYwOWU3ZDVhMDZjYzdlOTZmNGY1ZjE2YTY2YiBsZWdhY3ktdHJ1bmsKKzkwNDIgODEyYWFkOGMwNWMyOTE0MTZmN2UwZWNjM2NiN2M5NTc3NGZkYWQ4YiBsZWdhY3ktdHJ1bmsKKzkwNDMgZTFjOGQ3MTgyZDY2N2QyYzVhYTYyYTk1YWU5OTM4NzA5MTBhMGU1ZiBsZWdhY3ktdHJ1bmsKKzkwNDQgYmUyYTAyMzVhZTg0YTRlNDljN2Y2ODE4MDVkYzUwN2Q3ZjI1YTRlYiBsZWdhY3ktdHJ1bmsKKzkwNDUgM2ZkZDcxNWU2ZWY5MDYxZWI0MDBjNWRiNmJhMjdlNDk3ZDEwYmJkNCBsZWdhY3ktdHJ1bmsKKzkwNDYgYTBiODM5NjY3ZDJlM2ZjNzQzMzdkMjRjODM1NjA4ZmY4YjhiYjk4OSBsZWdhY3ktdHJ1bmsKKzkwNDcgYzFiYWM1MzYwNDVmY2RiOTRmYWUzYWI4OTkxNGQ3ZmZlYTRjNjNhMCBsZWdhY3ktdHJ1bmsKKzkwNDggYjExNzQwNDViYzRhYjY3NmE3ODI0ZjNlNmFlM2EzNTJhYzU3Zjk3MyBsZWdhY3ktdHJ1bmsKKzkwNDkgOGIxNDMxMmEwMjkwMzU5ZGRkOTcyYWQ0MDRkM2ViN2RjNmRmNTI5YSBsZWdhY3ktdHJ1bmsKKzkwNTAgM2I3Mjg3ODY3MmNkMmUyYzMyMzVkNzMxMTYyODE3NGQwOWIzNzIwMCBsZWdhY3ktdHJ1bmsKKzkwNTEgNjdhMmFmY2RkMjFjMTAyZDUwM2I4MTgyYmMxZDUxZTc5ODE3ZTAxZSBsZWdhY3ktdHJ1bmsKKzkwNTIgNmZmYTljYjY1NGUyYjRmY2MyY2ZlNTUwNDJkNzU1MTMwMjUxNTdlYiBsZWdhY3ktdHJ1bmsKKzkwNTMgMDBkYWI3NWI5ZWYxMmUxODBiNzczZWYzODE4YmFjNDQwMDFhOTMwNiBsZWdhY3ktdHJ1bmsKKzkwNTQgZDI5YzRiMmY0OWFlMjcyMmIwNjRiNWNmZDNjOGQ2YzA3NzI0NDE4ZCBsZWdhY3ktdHJ1bmsKKzkwNTUgODU1OTY5OTBkYjQzZjk5YTM5ZTZjNmZlZGYwMTQ0ZGI4MjE2OThhOCBsZWdhY3ktdHJ1bmsKKzkwNTYgMDFlZTU2MDdiYjM1ZjQ1ODI0NmIzYzVjMTA1N2U3MTRmMjc5MGVhMyBsZWdhY3ktdHJ1bmsKKzkwNTcgOTIxZDE3Y2MyNjkyYjI5M2ZmMWNiYWM1NGFjNDNlY2FiMTI0MTJiMSBsZWdhY3ktdHJ1bmsKKzkwNTggYTFkODVjMGNhZTVhNmVkYjU1ZjRiMWJlZjFkYzRkY2FmODgzMDA2NSBsZWdhY3ktdHJ1bmsKKzkwNTkgOWUwN2Q1YjY5ZWJhZTZhODgyOWRmM2E5NmM2MDJjZWM1OWVlNzUzNCBsZWdhY3ktdHJ1bmsKKzkwNjAgZjk2ZTU3ZTY5ODQ2ZjA3OGVkNjQ5NTJmNzdhNWM5Y2Q0ODg5OTc5ZSBsZWdhY3ktdHJ1bmsKKzkwNjEgMDhkZGU1ZTVjYzI3NGFiZjRjZGUzOGQxYjA2NjFmMjkxM2Q2MzJkMCBsZWdhY3ktdHJ1bmsKKzkwNjIgYzI2NzJlNWFiYThiNzlmNDcwZTQ2NDhkYTgwNWMyOTVkN2I5MGYxNCBsZWdhY3ktdHJ1bmsKKzkwNjMgYzU2NTI3MmVkMmM3NDA3ZjgwYWEyMjgxYjhjYzc2OTRiNTI2ZGE1NiBsZWdhY3ktdHJ1bmsKKzkwNjQgNzUzMDc3ZjllYjJjOGEyNjA1MTYyNjlhMWFkNThmZmM3MDE0MzNmOSBsZWdhY3ktdHJ1bmsKKzkwNjUgZTBlNjY3YmJjOTcxYTRmZjQ1M2IyMGY3MGNjNzcxYWJkZDdlN2JhNiBsZWdhY3ktdHJ1bmsKKzkwNjYgZGEwMGJiNDk3MWQ4ZjZmMzEzM2Y5MThhMzcyNDYwYmM5OWYwNjJkNiBsZWdhY3ktdHJ1bmsKKzkwNjcgMjE5MmI5M2Q1MzM3ZTU4YjFiMjI3ZjkyZDlhNGI2MzEyZWRkZWU5NSBsZWdhY3ktdHJ1bmsKKzkwNjggNTE2MjQwZWYwZTE1MWRjMTM3OWViNTA4ZjE0ZjkwNGE0MWE1MDUzZCBsZWdhY3ktdHJ1bmsKKzkwNjkgODZiNjc3MDljMmI0MDJjZjJkNTllYzg3MmQ5NTA2ODdjMTNjM2ViMCBsZWdhY3ktdHJ1bmsKKzkwNzAgMTQwMjVhNGY3OTNlYzVlZDE0M2U2Nzk5MDAwYWJhNjZjNmM0YTk5MyBsZWdhY3ktdHJ1bmsKKzkwNzEgZmNkOGUzOGI5YjJhZjlmMTM5ZGJiYTA0N2NjNWI0NDkxNzdmMDRhMiBsZWdhY3ktdHJ1bmsKKzkwNzIgNDVlODRiZTZkNjQwNWJkYzE4YzY0ODE2MGJkNzlhOWFmNzNlZmFlNyBsZWdhY3ktdHJ1bmsKKzkwNzMgNWUwYjE1MmJmMWU2NWIxYTk0OTE3ZTA4NWRkOTc1NzZmNjhkMWM0YiBsZWdhY3ktdHJ1bmsKKzkwNzQgZjE1ZjBmYzM4Y2IxOWQ3N2MyZGIzM2UxMzIzM2NkZWM0Y2JhMzhmMyBsZWdhY3ktdHJ1bmsKKzkwNzUgYjg4ZmQzODk0ZDVhNGQzOWI1NGQzM2VlNTkyY2NmZmE0ZDI3MDQ5YiBsZWdhY3ktdHJ1bmsKKzkwNzYgY2VlZWM4Y2IwYTFlN2Y1YzY5NTQ0YTczZTMxMmM3Y2RlNWY4NzQzMyBsZWdhY3ktdHJ1bmsKKzkwNzcgNmQ2ZmVjMmVlZWY2YTgwM2EyNmJjOTEwMDZjZmFmNmQyMzBmZGMwNSBsZWdhY3ktdHJ1bmsKKzkwNzggODNjY2Y0NGJmMTk1M2Y5NDRhNTBkZGZjM2EwYzA5MTQ5NGQ4MDYyOCBsZWdhY3ktdHJ1bmsKKzkwNzkgMWU0MjhmNTFlZDRlMTNjOTQxZGEyYmYxODlmMzMzNDEyYzlhNDY2OSBsZWdhY3ktdHJ1bmsKKzkwODAgNDUxNGE1ZWEzZWM0NjQ0MjU2ZWVmYjY1NTg5YmUzNjMyNzU0MmExOCBsZWdhY3ktdHJ1bmsKKzkwODEgN2EwYTQ4ZDczMDc2YTgxNDU5YTcyMzUzOWY1NGNkZjgzN2JjMDY5ZiBsZWdhY3ktdHJ1bmsKKzkwODIgZjY3YTYzMzllZGU3NmVkOGU3ZjcxMWM1YzQyZGIzZTgxOTE3NzNiYiBsZWdhY3ktdHJ1bmsKKzkwODMgZGJiNDYxZTI3M2FkYWE1OTdkYWEzOGJkZTYwMTBmZDRkMThjYmIwZiBsZWdhY3ktdHJ1bmsKKzkwODQgZjViNTUzMTFlNzlkYWU4NTk0ZTU1MzZmYWMzZWQ0MmI5NGQxMmMyYSBsZWdhY3ktdHJ1bmsKKzkwODUgMmY0NTllYjIzYTBlZjE5ZmY2YWE1YWFlMTY5ZjVmMjMyNmM1ZTMyMCBsZWdhY3ktdHJ1bmsKKzkwODYgZjFlM2EzZjhhNDZjZGYyZTFkYTBiN2I3ODMyZTUwZDU5ZGQ2ZTg0NCBsZWdhY3ktdHJ1bmsKKzkwODcgMDIzZTVhYjBmODdkOGI5OGZlYWQ3ZGI3NTUyN2M1NTRlM2RiZDU2NyBsZWdhY3ktdHJ1bmsKKzkwODggMjM1YmM2ZjllMjM3YTY4MDVmYjVmZTJhNzIwZGYyODZkZGZhYTM3NSBsZWdhY3ktdHJ1bmsKKzkwODkgZTZiOWQyMWM4ZTBjMDY4Y2ZkNThjZThlMjg0MWY3Zjc3YWI5NjVkOSBsZWdhY3ktdHJ1bmsKKzkwOTAgNGIyZDhkYzkyZGI0Y2FjMGMxN2MyNDYwNTViNWU4ZWEzYjZiYWVhNiBsZWdhY3ktdHJ1bmsKKzkwOTEgMmU4NzRhNWE5MTJmMmUxYWU5NzE5NzA1ODVmN2FlNWU4MGM3NzVhNCBsZWdhY3ktdHJ1bmsKKzkwOTIgZTJiY2FhOTZjOTQwODQxY2RjYmMyOGQzZTUxZjdkOWM0YjMzMGNjZiBsZWdhY3ktdHJ1bmsKKzkwOTMgZTU0ZDUxNzE5MDJlNmEwMWI4YTFlOWQ3NDJhOTYxYjMxMDliNWNhZCBsZWdhY3ktdHJ1bmsKKzkwOTQgNmZlNWE1MWZlYTMwM2RkNjA4ZDMwOTFiOWQ1MjI4ZjQ3Mzc5MGYzNyBsZWdhY3ktdHJ1bmsKKzkwOTUgMmYwYjdiYWMyMDFjNWEyYWQ0OTU1N2Q1ZWIwNzVlNDI3YTFmNWJhYyBsZWdhY3ktdHJ1bmsKKzkwOTYgMDQzMTNkNGY5M2ZmNzMzMGJhYmFiYzM2YjAzZmVmNjM1OGNiN2E4OSBsZWdhY3ktdHJ1bmsKKzkwOTcgM2M0ZDYyNzU0NjVlOGYzOTBhN2JjMmZjMmZhNzIxMDE5Y2ZkMTZjZCBsZWdhY3ktdHJ1bmsKKzkwOTggMDBiMWI3N2M0MTc3Y2EwZWIyNmJiMjNhNWRlYWViY2NiYjEzOTlhZiBsZWdhY3ktdHJ1bmsKKzkwOTkgYjk2YWFkMTJhMTUwYmI2YzMwMDRiNDg1ZDljY2YwMjhmZDJiZThiNSBsZWdhY3ktdHJ1bmsKKzkxMDAgZjE0MzQ4Zjc1N2M3Njk5ODk4MTIwZGRhMjZlYThhMWExNDZiMThhZSBsZWdhY3ktdHJ1bmsKKzkxMDEgODJkNjc3NGRhMGM2OTcxZWVhNjRjZmFhMzc2MDY2MzVmMGQ4OWZlZSBsZWdhY3ktdHJ1bmsKKzkxMDIgYmUwNzkyMWQ5NzEzMWU3MDZiYjFiMjVkMjQwOTE3NWY4YzU0ZDBiZSBsZWdhY3ktdHJ1bmsKKzkxMDMgZjg4YjBjMjYwOGQ4MmVjMWJiNzljNGRjMmU5ZTk2YjUzOWEyNDYzZiBsZWdhY3ktdHJ1bmsKKzkxMDQgNWUzMWQzODFmYTQ3ZDI1YzBiMzc1YTkwMzI2ODgwODRkMzlkOGQ5OCBsZWdhY3ktdHJ1bmsKKzkxMDUgYTgzOWQzZWZhYmNlNmQ2Mzc5MDJlMTk2ZTg1ODRhZjdjMGYxZWM3ZiBsZWdhY3ktdHJ1bmsKKzkxMDYgZTk2YTgxNjQ3ZjljN2YzNGNjMTM3ZDQ5OTUzYWVkMjIxNzc0MTVmMiBsZWdhY3ktdHJ1bmsKKzkxMDcgY2RmZTNiN2Q3MTg3ZDgzYmI0MzdjYWEwMmY0MzdiN2M5NzA1MTUyOCBsZWdhY3ktdHJ1bmsKKzkxMDggOGY0ZDg5ZjBmMzM2YzgzM2Q1NzViZDE2NmU0NGZhMWYwYjdkNzRmNSBsZWdhY3ktdHJ1bmsKKzkxMDkgZDUxNTFiN2I5ZGJjZmU5ZTRiZjEzYzcxNzNjMjM4YWNmYjc5Zjc3MSBsZWdhY3ktdHJ1bmsKKzkxMTAgNTJkNDBjYzVmYTA4Y2M1YjlkZTIxMGFlODY2NzkwMDlkM2E1YzA3MyBsZWdhY3ktdHJ1bmsKKzkxMTEgZGYyYTJlNDNiZTE4Y2ViM2YwMWM3YWU3MzBkZDQ5YzFiZTkxNDg4ZSBsZWdhY3ktdHJ1bmsKKzkxMTIgZWNmYmFkOTA2MjMxNDIwYTRhOWM1YjliYWNlZTFkMWU2N2Y5N2I3MiBsZWdhY3ktdHJ1bmsKKzkxMTMgMDJmNTljYjI4NmZhYTNhZGQ0YWNlNDRlZmFmOWY3Mjg5YzZmYTM1NCBsZWdhY3ktdHJ1bmsKKzkxMTQgZjQwODI3YmFhYjgxMTJhOGUxNTI0ZTYxMjgxMjgzZWQwNzU4NTUxYiBsZWdhY3ktdHJ1bmsKKzkxMTUgMDMzOTJjMjdiZjk2OGJmZGVkYzM4YzFjNTU1N2U0NDExZTQ0YTMyMCBsZWdhY3ktdHJ1bmsKKzkxMTYgZTZkNzg2OTU4ZmIzMDdmZjVhNzUyMDYwNmY5NzYwNDMzNWQ4NDMzMCBsZWdhY3ktdHJ1bmsKKzkxMTcgZGE2NjJiMzQ1Yzg3NjAyZjY2YWY2M2VlNzJhZDNiNGU4ZmQ3YTE4ZCBsZWdhY3ktdHJ1bmsKKzkxMTggZjkwMzUxYjE1ODFiMmRmMTg0MmJiNWI3ZmY5MWYxNjczNDk1ZDJkYyBsZWdhY3ktdHJ1bmsKKzkxMTkgYWM0YjQ0NDczODY5NDNmNDYzMGRhNGJiMGY3YTg0NDY3ODM3MTU4NiBsZWdhY3ktdHJ1bmsKKzkxMjAgMjUxOGFjOTI1MWYwZmMyZTI2NTAyNmI0OWM0MWQyYTMyZTgyMTliMiBsZWdhY3ktdHJ1bmsKKzkxMjEgNDEyMTcwNDUxMDYzMGUwMzVkYzk3NWY2MzBhZWViYjQzMDQ3YzQ2MyBsZWdhY3ktdHJ1bmsKKzkxMjIgZTFkMzU2NWQyYjdhNDkyNTFlNmUxMjA3N2Y2MTQzYjA1ZDczOTdkOSBsZWdhY3ktdHJ1bmsKKzkxMjMgZTg2ODFlZGEwODU0OTVkNDE4MWZkNDZiNzE1N2RkN2NkYWRmYTRkMiBsZWdhY3ktdHJ1bmsKKzkxMjQgMWRhOWY2MDI3OWM5MzMwMjEwMWUzMjE0ODhiMGQ4NWQxYTU5MzliZSBsZWdhY3ktdHJ1bmsKKzkxMjUgYTdlYTc0YTI3OTkzNjkzODE1YjhkNzIwMTI3ZWRiYzRjZDQ4ZjMyNyBsZWdhY3ktdHJ1bmsKKzkxMjYgMGYyNDk4Yjg0N2JmY2M0OTZhN2VmMDRiYzIwMTA2NzEwNTFjMWUyMiBsZWdhY3ktdHJ1bmsKKzkxMjcgMjA1ODllZDNlOGJkZTVmZjVjODJhMTRkMDNmMzQyY2EyYzUyYTkyZCBsZWdhY3ktdHJ1bmsKKzkxMjggZjZiZTliNWFkYmRiN2Q2Njc3MjllYTFkMjQwZGIyMjBjMjgxNjJjNyBsZWdhY3ktdHJ1bmsKKzkxMjkgY2U1Mjg4ZWMzNmQwMjU1ZTVjMjUxNGIwM2I1MTBkNzU3N2UzNzM0NiBsZWdhY3ktdHJ1bmsKKzkxMzAgNWVhYzFjOGRiMDRmNjQxODdlMTFlNDUzYzVlOTliNDZjMzIzZGM4YSBsZWdhY3ktdHJ1bmsKKzkxMzEgYzZjMWQxMzM2NzdhNzg1NTVkOTcwNzZiMjg1MjdmOWY2Y2MzN2ZiZiBsZWdhY3ktdHJ1bmsKKzkxMzIgNmQ5OGI5NjllMWY2NzA5NzJkZDg0YTczYzMxM2I5YjFhNWUzOTkyMiBsZWdhY3ktdHJ1bmsKKzkxMzMgNDY2ZTg3YjE0NzY3MWY5YzMwMjYwMDEyZmYzNzYwZGFjYzMwZmFkZCBsZWdhY3ktdHJ1bmsKKzkxMzQgNTIzMjlhMTEzZTBmYTNlZjBmOTc2MzYzMzY2ZTJjNmNhOTQ1M2MxOSBsZWdhY3ktdHJ1bmsKKzkxMzUgZTQ5OWM3ZGJmZGYzNTlhNGU4MmM1ZWUwNTBiMDNiYjNhNjE4NDJiYSBsZWdhY3ktdHJ1bmsKKzkxMzYgZGVhZDZlNzdmNDY0MjhlZWE0ZTFlMjMyOTFiNTNhZTAzZjVlYmE2OCBsZWdhY3ktdHJ1bmsKKzkxMzcgMzM0Y2JmZDUxZGIzYWVjZTBkZjE0NjM1NTJkMTgyZjgyZWVlZmM4YiBsZWdhY3ktdHJ1bmsKKzkxMzggYmI4NmJiNzZkNjFkYTNjMGYwNjMwY2VhNDIxYWI1ZGZmNjJjNTdhZCBsZWdhY3ktdHJ1bmsKKzkxMzkgOTk5NTViNjU0MDhkYWEyN2NiNTc1ODcwZWRiZmJiY2Y3MDhhMTE5YSBsZWdhY3ktdHJ1bmsKKzkxNDAgZmJmY2YzOGQyYjM5NWZiZmI3Nzc2Y2FmNTZjZmRlMDBjODJlNzU1ZiBsZWdhY3ktdHJ1bmsKKzkxNDEgOWYwMmViMzZiNTczOWE0N2ZkNjUyMDcxNWViNzRiMWExNjEyNjhiMyBsZWdhY3ktdHJ1bmsKKzkxNDIgNzMxNGJlNjQ1MGFhMDhjYjQ5ZjY0MGU4NGIwNTY1ZjNkMjkxZjExYSBsZWdhY3ktdHJ1bmsKKzkxNDMgZDZkM2U3Y2Y4OTdlMGIxODhkYTU5OWFkZjQwZGUyMDE1ZTgwOTcyYSBsZWdhY3ktdHJ1bmsKKzkxNDQgYjJmMWZlYzZhNzAyM2UzNWM2ZmFjOTBkOTMxMjlmYmYwNjIxN2Q0ZiBsZWdhY3ktdHJ1bmsKKzkxNDUgMDg5YzA0ZDg5MTUxZWIwY2ZlN2E3Y2VjOGJlNDllYzJmZGM1ZmMzNSBsZWdhY3ktdHJ1bmsKKzkxNDYgOTg1NTI3MDRiODhmMjdhNDc2YjAzNDk3NDg1MTRhN2FjMTFmOTUzYiBsZWdhY3ktdHJ1bmsKKzkxNDcgMmY1YzgzNzQ4MjVjODUzNzExOThmNWE3YmIyYjkzODA0ODhiMmIyZCBsZWdhY3ktdHJ1bmsKKzkxNDggOGUzZWUzNTc3ZDRlOTUxNmRiYzE2MjU2NzliNmIwMTlhZDdmN2M0YSBsZWdhY3ktdHJ1bmsKKzkxNDkgMTQxMDVkZjMzYzEyYTIxZjIzMGYyYjdkZDk1M2VlNWI0YWI3YzEzYSBsZWdhY3ktdHJ1bmsKKzkxNTAgOThkNTU3OTNiNjdmYmFlM2FhZWUxNzljY2Q3NmEzYTMzMmY4YTBjNiBsZWdhY3ktdHJ1bmsKKzkxNTEgOTczMTg3ZjFiZDFkM2RjMjBhY2EwOWI3OWQwMTEwNDk1N2U5YWZkNyBsZWdhY3ktdHJ1bmsKKzkxNTIgNDMyZDFiZTAxNjNjNzVjMzBlODNiZTM0YjU2Y2JiMGY2MjZhZDQ5MiBsZWdhY3ktdHJ1bmsKKzkxNTMgY2RiMzI3OWIwNmU3OWQyOGI4NTk0MmM4OTJiZWM0NzEzZjhlMzc4NSBsZWdhY3ktdHJ1bmsKKzkxNTQgMWJiOGI3ZmU0NWVjM2VkMGEyNzhhMGNjNzg1YTNjZGM0YWI3NDhhZCBsZWdhY3ktdHJ1bmsKKzkxNTUgZTQ1YjgzNzA4ZDllOWJiZGQzODQzNTRlNzkxYWJkN2QxY2ZkODI5MyBsZWdhY3ktdHJ1bmsKKzkxNTYgZGUyZjhmNDk0YWUzNzM3ZWY5MmI4YTRlZDA3MDZjZTM3NjgwZmU1OSBsZWdhY3ktdHJ1bmsKKzkxNTcgZjk1YzlhZTJhYWVmZWU5NWE3MGNhYTE3MWU2ZmI2YjI2Yzg5NDE2YiBsZWdhY3ktdHJ1bmsKKzkxNTggYjhhM2JhNmU3YmM5ZGVmNmE5OWM0Mjk1OWM3MmM5NDNmYzQ4NWUzMSBsZWdhY3ktdHJ1bmsKKzkxNTggOGZmNThiNTczMGYwNmJlMDhmYmJkYzJiZjU5MjIyNmY3YTczNjIwMSBsZWdhY3ktdHJ1bmsKKzkxNjAgZWZmYTYyYjAwNjJiN2QyY2E1YWJjMTZiNDlmNWU0NjJhODMxYmY0YSBsZWdhY3ktdHJ1bmsKKzkxNjEgY2I4ODliNjc4MDUzYjAxMzVhZWI5NTdmYjliMzE3ZGE2NmZhMjc5NSBsZWdhY3ktdHJ1bmsKKzkxNjIgMDE3NDY3ZGU3OTMzZThjNzNiNTc0NzJkMTQyM2I1NjRiZGJmZDA4MiBsZWdhY3ktdHJ1bmsKKzkxNjMgODMxNDdlMDJlODBkOGUzMjNkNDkwYmFhZGU3NjJjOTlkMjIwMGUyNiBsZWdhY3ktdHJ1bmsKKzkxNjQgMmI3ZmJkNzZjZWY4NzA1NGNiNGIzYjEwZjM2MjZhNjVkMDE0NmY1MiBsZWdhY3ktdHJ1bmsKKzkxNjUgYTU5M2MyMjBlZGNjNjU5M2Q1MGY2Yjg0NGI4ZDJmNjBiYWQyYjQ1YSBsZWdhY3ktdHJ1bmsKKzkxNjYgNTNhMDdhZGE0OTlhZjc4ODY4ZTVjNmYzZWU2MzcyNDlmYWI2ZGFkMCBsZWdhY3ktdHJ1bmsKKzkxNjcgODRiNDNmZjQyZmE4MGUxYWViMzc3OWYwYmFjMTA0MWUzNmQ2YmJjNiBsZWdhY3ktdHJ1bmsKKzkxNjggYzA3OTg0ODdiNzI4Yjg3YTExNjJiY2FiYjI4NDc3MzEzZDI3MjNjNyBsZWdhY3ktdHJ1bmsKKzkxNjkgZDc5MGZlMjVlMTQ4ZWY5MmViZDgzY2JhNmEzMjU4YjcwZDgxY2Y1NCBsZWdhY3ktdHJ1bmsKKzkxNzAgNGJjYmJlYjYzYjg5OGU1NDMyMzQyZWZhNjlkYTI0N2EzODA2NDE4YiBsZWdhY3ktdHJ1bmsKKzkxNzEgNDBhODQyMGI0YWIzNmU0ZWUzMjc2NGZkY2QyYTcyYjFjNjJlMzQ1MiBsZWdhY3ktdHJ1bmsKKzkxNzIgYTcyYmY0M2E4ODcwYjFlMGQzMzQzN2QzNjc2NjQzMjJjYjc4YmYxNyBsZWdhY3ktdHJ1bmsKKzkxNzMgYjlmY2I5YTM0MzMyODIyZjY4YzY2OWY4N2I1ZWQ5YjM2MTAwMGE4ZiBsZWdhY3ktdHJ1bmsKKzkxNzQgZTkyMTU0MDIyYjQ4ZWU2Y2ZhNzE5NTVkMDc1ZjM1YzEzOWRmN2ZlOSBsZWdhY3ktdHJ1bmsKKzkxNzUgMmU3NWIzMWQ5NGM4NGYzMWE5MTlmNGE5NGQyZWMwMTA4MWI5YTUxNiBsZWdhY3ktdHJ1bmsKKzkxNzYgYjczZWI0ZTZmYWNlY2ZlZjlmOTIzYWU4NWVlOGY2MzQ4Yzc0MWM1NyBsZWdhY3ktdHJ1bmsKKzkxNzcgOTAwMWMwYTdiZTk4NjMzOTY5N2ExMWIzMzAxMTZkMmM5NTEwNzk4ZiBsZWdhY3ktdHJ1bmsKKzkxNzggYzY5MDM0YThiM2Y0MzRmN2E0ZjE5MGQxYzU4ZmIzMTA1NmFiNzExZiBsZWdhY3ktdHJ1bmsKKzkxNzkgNGQ2M2EwMDFjMjVlYTljMTJiYTg1NmZhY2I3ZDQ2ZDAxNTUyNDFkMyBsZWdhY3ktdHJ1bmsKKzkxODAgMTUxNjAxOWM5MGJlODhmNTAzOGRiNDcxM2ZlY2Y2ODM0MjdhNDhjZiBsZWdhY3ktdHJ1bmsKKzkxODEgYjkzNmNjZjQyZWEyZDUxYzEzYWQ2NmYzOGM4NWU5MzA1MzBiZTMzYSBsZWdhY3ktdHJ1bmsKKzkxODIgOWQ4ZTQ4ZjNiNDk4NWYwNmM1NmUxODdjOTE0YjU1ZmMyMjY0YTJlMCBsZWdhY3ktdHJ1bmsKKzkxODMgMDYxNTc5Mzk1MDQ2NTAxZDcxMTY5Yjk5M2RmYmI0YmIxZmU1MzEzZiBsZWdhY3ktdHJ1bmsKKzkxODQgY2JjNWU3ZDZhZDIzNWZiYTkwZjliNjY3NzFiZjhhYmQyYjhjOGZmMiBsZWdhY3ktdHJ1bmsKKzkxODUgMzlkOTZkOWQzY2NiNTZhNjFmY2U1MjEzYjNjM2NkNzljZDc2M2M4NyBsZWdhY3ktdHJ1bmsKKzkxODYgNDdhM2YzYjYwNTAyNjNhYWM5YWVjZDA2OTJhMmQ4MjI5ZGZlYTJjMyBsZWdhY3ktdHJ1bmsKKzkxODcgMTJhMWM5ODQ1MDc0NDA3NmQ4ZWFjNjZkMzJiY2NkMzRmYjFjNTQ4OCBsZWdhY3ktdHJ1bmsKKzkxODggOTBjNjM5MGI0OTQxNzNlZGRlODQyYTQyNjdhNWYzOWVjYTg4NzRhYiBsZWdhY3ktdHJ1bmsKKzkxODkgOThhYTkyN2Y5MDdjYzAzZDU0NTkwNWIzMjE2Njk5NDY2Zjc0ZmU0YSBsZWdhY3ktdHJ1bmsKKzkxOTAgZmYxNjQ0OGU4ZjI0MTcwODBjYmUzZTY3YjYxNTBiNDg4NjgxOTBjOCBsZWdhY3ktdHJ1bmsKKzkxOTEgOGE1YTAxMjMwN2JkZDEwZjk2OWJjN2VhNmY1YTlmNzE1ODExYjAyMyBsZWdhY3ktdHJ1bmsKKzkxOTIgYTViYjBiOGRjMzIwNDJiZmM1NWE0ODEyMzY0NzhiMWU3MDZjM2UyMCBsZWdhY3ktdHJ1bmsKKzkxOTMgMzliNDEzYWMyY2M5MWMxYjU5ZDJjNmI5ZTU0NjQzYzRhNmI5ZDI4NiBsZWdhY3ktdHJ1bmsKKzkxOTQgZDg1NGExYzdlNzRkMzMxYTc1MjkzZWJmNWRkMWE3YmViNDU3ZWYxMyBsZWdhY3ktdHJ1bmsKKzkxOTUgNjRhNzUyMTFjZjcyOWNmNGFjMDZlZDcyNTRkZWU5YzI4MzY0OWRhMiBsZWdhY3ktdHJ1bmsKKzkxOTYgMzJmMmVkYTI5NDZjYWQ3MDFiNDNlNmM4YTdlYzYyZDRiZTkzMjE3NiBsZWdhY3ktdHJ1bmsKKzkxOTcgZmFlYmMxOTQwNDMyOGIxMmJjMmJjMzEyMzQwMmE1NmM1ZDI5NTE1OCBsZWdhY3ktdHJ1bmsKKzkxOTggOTYwODUzOTAyZWJlNDE5MmUxNGNiM2Y4NGJhNGRiZDUyOTlkYjMxZiBsZWdhY3ktdHJ1bmsKKzkxOTkgYmJmOWU0YjMxZDg0YzRjMjEyZDNmNWYyZDU5NDE1MGMwMTkwZjk3ZSBsZWdhY3ktdHJ1bmsKKzkyMDAgMjFkY2UzMzI1MzIxOTYyMjFiYzBiMWFhZGUxZWFiYjAzMTI3MjI4OSBsZWdhY3ktdHJ1bmsKKzkyMDEgYzNmODViY2IwNDVhZDczZjYzNzUyMThjYTMxODM0NmVjYzhiOGU4YSBsZWdhY3ktdHJ1bmsKKzkyMDIgMmUzYWNiMjE0MGJmM2E1ZmY4MGM4Y2ZjMzNkNmExMTg5NTcyYWUyOSBsZWdhY3ktdHJ1bmsKKzkyMDMgMjgzZDFjYTU4NWQ5NGYyNjYzZjExY2I1M2FmZjMwYmRjYmZlMTI2MSBsZWdhY3ktdHJ1bmsKKzkyMDQgNGYzNjQyYTIwMTM3MmU2ODI0M2NkNzlhODU4NWU0ZTBiMmU0ZTRlNiBsZWdhY3ktdHJ1bmsKKzkyMDUgMjY2MmM5ZmUxYjNlMDNjYWEyN2ZkZjU2MTY0ODkyMzViNDEyYjQxZCBsZWdhY3ktdHJ1bmsKKzkyMDYgN2NjZTQ2OTE2MGM2ZWI4NTNiM2E4YmY0NGFhNDEwY2UxZDI4ZDBlZiBsZWdhY3ktdHJ1bmsKKzkyMDcgMTFhNzUxNzA1NGE1OGVhODAxNmE2NDUzYTVhYWMzN2U0MmE2MmZlNiBsZWdhY3ktdHJ1bmsKKzkyMDggOWM5YTg3YjViYjE3ZWMwMWVhM2IzZTI1MDNmYjA0ZjAxZTIzZjkzNiBsZWdhY3ktdHJ1bmsKKzkyMDkgMjE2NTYyMDRkZDRmYmQ5YTY3MWM2NDg3ZThlMjcyNjdmNjc0N2E4MCBsZWdhY3ktdHJ1bmsKKzkyMTAgMDlmNmE0OWFjYTEyZWY3MDZkMjQ4NjU0ZjJkZTdmY2NmZmY5ZDJlNSBsZWdhY3ktdHJ1bmsKKzkyMTEgNjVhZTcxMWRiMDBjYjVkNTU4YmI1NGM4MzdkNTRjMTliODc0MWJmNyBsZWdhY3ktdHJ1bmsKKzkyMTIgNGM5YjI1NmEzYmVlMGM5MTI4YTFlYzhhMjdkZGVhMWY5NmM0ZTdkOSBsZWdhY3ktdHJ1bmsKKzkyMTMgZmFiOGFiNWRjNWY4NGU4ZjZlOTZhZDk4ZDJjYzBiYjdhNWIyNTNjNCBsZWdhY3ktdHJ1bmsKKzkyMTQgNTNmZDQyYWEzYmJmY2FjYTBlMTU0NmIwZDY0ZTUxYzMyMTI4MGZiYiBsZWdhY3ktdHJ1bmsKKzkyMTUgYWIzZDdhMjhlMDdkMjU4MmFkZjA1ZDllZDQxODhiNGQxOTJlMWRkZiBsZWdhY3ktdHJ1bmsKKzkyMTYgM2JlZjU1Y2I3NDRiNmU2ZGU5Y2RlYjA4ZDA2YjJjN2FhMTg3YjhmZiBsZWdhY3ktdHJ1bmsKKzkyMTcgMWQ0MTc1ZWQ2YTljZWVlMzE1NTgwZjA4MmE1NWM1ZWZlZDQyZGFjNyBsZWdhY3ktdHJ1bmsKKzkyMTggMTg1M2I1YmMwNTQ4YmEwNjJjMzU0MDMzZTgwZTM5ZTJiODQxNTg4MyBsZWdhY3ktdHJ1bmsKKzkyMTkgNGNmMGRhMDcxZTJiZWEzZTliNGIwNzVjMGNiMmI2NTMwMDEyNzAwZCBsZWdhY3ktdHJ1bmsKKzkyMjAgNDg4N2Q3NTQ2OTJhZWZiMTAwYmNhYjQ1NDJiM2M0MDRlNDA1NWM1MyBsZWdhY3ktdHJ1bmsKKzkyMjEgNGY2OGM3YWM1MTE1NGRjZGNlMGY0NTgwNDJjZTQyMDczNjQ0MzM1YSBsZWdhY3ktdHJ1bmsKKzkyMjIgODA4NDhlOTE4YmNjMTg0MTQzYTllNmI0ZDQ0YjVmNzBmYTZhZWRiOCBsZWdhY3ktdHJ1bmsKKzkyMjMgMWRiNDFjYTQ1YzdmYzg4NTQ0ODc5NzI4ZDQ2NDQ1NjZhMzVhYjQyNiBsZWdhY3ktdHJ1bmsKKzkyMjQgYWJlM2FhZDllMDM4NWU3ZTY1Zjc1NDJkZDJiMmM2NWRkYjk3MzViNCBsZWdhY3ktdHJ1bmsKKzkyMjUgZmNmZjUzMTYzNGUxNGY0MTNkNzYxNTM2ZTIyMmE3MWQ1YjAxODgwZiBsZWdhY3ktdHJ1bmsKKzkyMjYgNzRlYTIwOGQ0NmNlODFhYTNkOWQ3NDgyYmQ1NzRjNTRkNzI0ODhlYSBsZWdhY3ktdHJ1bmsKKzkyMjcgNzkzY2FmNTE3NjQ3OWU0ZTRhOGU0N2ExZTM2YjMyYjNhNmZjMTM0OCBsZWdhY3ktdHJ1bmsKKzkyMjggNWU3YzkxMzU4ZWQyY2RlYTkxYzg3YzYwMGFlNTU4M2U3MWUzM2M1YSBsZWdhY3ktdHJ1bmsKKzkyMjkgNGRhZjA5MGZmMTYyMjY1MTk1NDM0M2Y3ZmI0NjY1YjhmMzE5YjUzYyBsZWdhY3ktdHJ1bmsKKzkyMzAgZWJhNmFkZjNmODQ0ZWY2NDdmYWI4OTZhMjM3Njc4NzcyNDVhZGJmNSBsZWdhY3ktdHJ1bmsKKzkyMzEgZTJlNWJiZmFkMWM4MWY3M2FiMzI0MTNmYzVlMGY1MDk4NWNhZWYwMyBsZWdhY3ktdHJ1bmsKKzkyMzIgMDdlOTVlZjU1ZjY1OGU3ZTY3OTVmYjBmMzM2MzBhMGZhZTkxNmIxNCBsZWdhY3ktdHJ1bmsKKzkyMzMgZmQyOWNlYmU4OGRjOGI0NTYyYzQ0YWNiNTJmYTg0OGI2NmY2N2Q2ZCBsZWdhY3ktdHJ1bmsKKzkyMzQgZTQwNzBkYzZhYzM1ZDVkMmYzZjIxZTE5ZDgxM2U0ZDgzMDc1M2FiNCBsZWdhY3ktdHJ1bmsKKzkyMzUgYWZmNmZmNTJkNWU3ZWQzMTJiZDg1MzRiOGZlM2Y2ZDMxMDE1YzQ5ZCBsZWdhY3ktdHJ1bmsKKzkyMzYgMGI1ZWIzMmI1NTFkMjgyYTJhNjY5ZWU0YThlNTRiMzBjZDM0OTAxMCBsZWdhY3ktdHJ1bmsKKzkyMzcgY2FlOGFhNDQxZmJkNGQ3YjY1ZTdlM2Q5YjJiYzExYjZkNzMwZTE5NiBsZWdhY3ktdHJ1bmsKKzkyMzggMDIwNGQ0NjFkMjE5Njc4OGVjMzQwYjkwMzMwNzNlNWEyNzFmZDVlMCBsZWdhY3ktdHJ1bmsKKzkyMzkgNzQ4YWJjN2Y4ODA4ZjQ4NDM5MTRmMjU1M2RlNGE2MzUxOGQxZWE4MyBsZWdhY3ktdHJ1bmsKKzkyNDAgMGEzYzc0MDJkMzk1M2QwN2YwMDBiYzJkYWUzOWNmMTU1MmE4Y2U1OCBsZWdhY3ktdHJ1bmsKKzkyNDEgMTI4MjRmZTA0YTA4ODUyMWRjNTRmYTYyZWIzNWM0Njc4NjU4YjE4OCBsZWdhY3ktdHJ1bmsKKzkyNDIgMDc1MmJiZjc3ZDgxM2ExZjU3ZGY3ZTNiN2IzZjQ2YTgzYzI1NGFiZCBsZWdhY3ktdHJ1bmsKKzkyNDMgZTZjMDMzZTliNzY5MjdiOWViNTFmMjdjNmMxYTU0ZjM2OGMxN2JiYyBsZWdhY3ktdHJ1bmsKKzkyNDQgODkwOTJhZDFlNjYwNzBkMTg2NWY4MTIwZTliZWVmZjJlYzg0MjI4NiBsZWdhY3ktdHJ1bmsKKzkyNDUgZTk3YjgyMzc1OTFjNTgxNTE1NWQ2MDlkMzc4NzI4ODg3N2M3NGQ0OCBsZWdhY3ktdHJ1bmsKKzkyNDYgYTI5YTZiZjAzYWYzMzIzYWVmOGEzOTgyZDEwZWFkZmYxMjhlMmQ1MSBsZWdhY3ktdHJ1bmsKKzkyNDcgMjJmZGZkMjgzYzljZWQ2ZDU1ODRjZTVjOTdhMjIwOWVlZDI4MGYyYiBsZWdhY3ktdHJ1bmsKKzkyNDggYjVjZDc2ODgxMmNiMzI0MTA4MjExMDc3NGM3ZGQ0Y2JiYTZhZDk2YSBsZWdhY3ktdHJ1bmsKKzkyNDkgMzNlMjE0NTI1MGFmZWU4MmNlNWNiOWM4NzYzZjRjMDgyMGViMmY1OSBsZWdhY3ktdHJ1bmsKKzkyNTAgODMyYTgwN2QwMDk4OGVhZDhjNjJiYjQwZWE0ZWRlN2Q2MzViNjY2MyBsZWdhY3ktdHJ1bmsKKzkyNTEgMTRkNmI3YTQyOTE5NDIxNTRlMGE2OWVlMmE0YTM5YzEwYmM4ZmQwNCBsZWdhY3ktdHJ1bmsKKzkyNTIgMGVmMjNmNTEzYTY1OTU5NzczYTE1YTk4YjU5MmM0MzhkMDAzNDkwYyBsZWdhY3ktdHJ1bmsKKzkyNTMgMzExN2FmOWRiZmNlNzkzNDZlZWUxZWQwZmJjZWNhNDVmZTUxMGQxNyBsZWdhY3ktdHJ1bmsKKzkyNTQgM2RmZTA1MTFiYzNiMzI2MzE1MDNjZTUxOGJjMmVhOGNlYTcyMTdmNSBsZWdhY3ktdHJ1bmsKKzkyNTUgZGFhNzdkOWFmMzRjOTAzMzlmOWMzZjliOGIwMzlhNjBlMWM3ZmM1YiBsZWdhY3ktdHJ1bmsKKzkyNTYgYmY2ZGU4MmFhYjBkODgxYWI3ODczOWUxMmQ0N2EyNzYxMzAyYTNkMiBsZWdhY3ktdHJ1bmsKKzkyNTcgNGRiZmZmYzNjMjNiZTM5NDVkYTQ0Zjc0NGFhZGExZDBmYzRiYmIzZSBsZWdhY3ktdHJ1bmsKKzkyNTggOWNmOGQxNGYzNTY1MmNkOTNlYmYzNmZjMDBjOWEzN2ExZmJjZDIyMiBsZWdhY3ktdHJ1bmsKKzkyNTkgYjk2ZDlmYmIyNGU1NjE0ZmJlZmNlODZkZWEzZjExOTkxMDNiNDk0ZCBsZWdhY3ktdHJ1bmsKKzkyNjAgODk4MDIwODdmODA2NjljZjc5YmVmZWMxNDQyYWUyNzE5ZDdiODAyOCBsZWdhY3ktdHJ1bmsKKzkyNjEgYzE4NTAxNzcwODk1NDUzZTczOTYzNzhjMGVkZWZiMGU3Y2M3MTg3YiBsZWdhY3ktdHJ1bmsKKzkyNjIgMDg0ODAwNTAyYTQyMDg0MjM2ZjhiZDQ3NTgzY2Q3NjdmMmU3YTRjMCBsZWdhY3ktdHJ1bmsKKzkyNjMgZjRlM2E3YWViOTQ5ZmYzZWQ2NWUxZGUxMzBiMTFlMTEyYzIxODEyYiBsZWdhY3ktdHJ1bmsKKzkyNjQgYmMwMDdjZjFkNmJhM2ExOTdlYzBkOTYxOTllM2IyOTRiMTFlMDAyMyBsZWdhY3ktdHJ1bmsKKzkyNjUgZjY5NTQyNzRlMWNhNDhmODg0NTIzYmUwYjBiNzI0M2ExYTY3ZTYzMiBsZWdhY3ktdHJ1bmsKKzkyNjYgY2VhYmQ1MDMxN2UzMGVkMjExZTA2M2RkNzUyYjhjNmIwODk2N2EwNSBsZWdhY3ktdHJ1bmsKKzkyNjcgYmI0NDBhMjk3NWFiOTkxNWNkODk2MmEwYmZjOGFhMjBiODkzMWNiMyBsZWdhY3ktdHJ1bmsKKzkyNjggYjFlNmMzZmU1ZGU4NTQ1ZDRmMWRkNWY3NGE4MTJlZjljMjYwODEwYSBsZWdhY3ktdHJ1bmsKKzkyNjkgOWU3NWQ5NDI1NmUwZTZhNTJiNmFjZTMwYTA3NWRkZjgyOTdkNjYxYyBsZWdhY3ktdHJ1bmsKKzkyNzAgZjUzM2MzMDc5NzgwYmZlOWE1NjcxNGVjZjlmOGU3MjUzMjliOGIxNyBsZWdhY3ktdHJ1bmsKKzkyNzEgODU3ZjkwNjUwNDFkNTIwYjUyM2EzZGI1NTk4NTEwOWRmNWRlZWMyZCBsZWdhY3ktdHJ1bmsKKzkyNzIgYjA5MmVlMTlhZTRmZWMwYmE1YjMyMmY4ODM5MTU3N2E4NDRmZDI2MCBsZWdhY3ktdHJ1bmsKKzkyNzMgNWIyNGNiYjFmOTliYTI1YWY1MjIxNzM2Y2VkMGNhYjQ5MWJjNjIyMyBsZWdhY3ktdHJ1bmsKKzkyNzQgZDEwMGQwMjUyY2IxYzVkY2ZkZjFmNmViNzQwY2FkNTAzN2MzZGIyYiBsZWdhY3ktdHJ1bmsKKzkyNzUgOTU0NDE3MTkxZmJmYzc4MWVjZThmNmZhYTg4YTUzNzUyNmNkYWM0ZiBsZWdhY3ktdHJ1bmsKKzkyNzYgMGJhNTBjNzQyOWU1MTAzNGIwZmEyOThhMjY4NzY0MzNhNzA3ZjkxYyBsZWdhY3ktdHJ1bmsKKzkyNzcgMzQxYTZlNDdhOGZmNjQ1ZmVhY2M2ZTNkYmFmNzZiZjgwM2RjYzk3YiBsZWdhY3ktdHJ1bmsKKzkyNzggNWVkZmViN2FhNmVhZTNkNzA0ODg2MjJjZTVhYzM5MmI5ZjZjNDU2NiBsZWdhY3ktdHJ1bmsKKzkyNzkgYmNhOTQ4MTk0ZGVhZjQ4Mjk0ZjBkYjYyMWYzYWNkNGMwMzFmOWEzNCBsZWdhY3ktdHJ1bmsKKzkyODAgOTg1YmU2ZGM4OTRmMzVmYWIwNWJiNDg0ODhlYjFlNzA3NTE4ZDJlOCBsZWdhY3ktdHJ1bmsKKzkyODEgYWZiYzExZGQyYzY1ZTVmYjgzYzZmNzdlM2EzYjZiYjk2MmJlZDg3YiBsZWdhY3ktdHJ1bmsKKzkyODIgZTIyNGM0MWJkYWM2NTA4ZjA3NGZlYmRjMjg3MDIzZGJlMmY2ODg3ZCBsZWdhY3ktdHJ1bmsKKzkyODMgOTNlNDgwZGVkY2YwOTQwNzFmODQ4N2U5ZDUzZjE1ZTViNGUyMzUzYSBsZWdhY3ktdHJ1bmsKKzkyODQgYWMxYjI2MWYxNjkwNGE2NjU5ZmNkNjI3ODg4ZDI4MGRmNzBiZjdhZCBsZWdhY3ktdHJ1bmsKKzkyODUgN2Y5MTlkNDcwMTI5M2ZjNWRkNjBiNmU2ZWJjMDllMDk4MjJlYTUxZiBsZWdhY3ktdHJ1bmsKKzkyODYgYTg3YmM1M2ZjMWFkNmVlNzViYWVhZTJiMDkyMzlhMDUxM2M4NDZiNyBsZWdhY3ktdHJ1bmsKKzkyODcgMTQwZTY1ZjgzOTUzM2ZhOWZiZTk3MTk3MDE5N2UyNTI5OTZlNjE2YSBsZWdhY3ktdHJ1bmsKKzkyODggY2E3NTVmYjFlZmI4YWY0M2I1MDEwOTI5OGI5NjU2MTA4ODlhYjY0NiBsZWdhY3ktdHJ1bmsKKzkyODkgOWI0MDZjOTI1MTQwODI1ODI5ZWYxNDJmMzFiMTQzNTNkYTg2NWQ5YiBsZWdhY3ktdHJ1bmsKKzkyOTAgZDg1MTQ3ZGNlMTg1ZDI2MmYyYzA3OGRhZDUyMDU2YzE3NGMyMmY5ZiBsZWdhY3ktdHJ1bmsKKzkyOTEgNjY3YTg1ZWJmYzNlZDBhYmFmNjAwM2M4M2ZjYTZmNjE2OTk2ZjFmNSBsZWdhY3ktdHJ1bmsKKzkyOTIgMGZlM2RjMjhiOTJjMGM5NmMyOTVlNTljNTM4MzgxZDY1MTFlYmY1YyBsZWdhY3ktdHJ1bmsKKzkyOTMgNjEzMWQzZjlhZjJkNjA5MjlkMDAyM2E1NWExMjY0MDU4N2ExZWRiYyBsZWdhY3ktdHJ1bmsKKzkyOTQgMmUzZjI0NGYxMDVmMzU3Mzk4ZjkyNzc1OTVlZTQwYmY2NWZjZDNhMiBsZWdhY3ktdHJ1bmsKKzkyOTUgN2RiYTJmM2I2YzgxMzVjM2U3N2EwMDE2ZGNjN2VjMDIwM2I0MDhhMCBsZWdhY3ktdHJ1bmsKKzkyOTYgNzczZmJjOGVmYmQ3N2UwNzJkOGRjMWY2YjdiYzEwMmFkNDYyZDk0NCBsZWdhY3ktdHJ1bmsKKzkyOTcgOTU5MjliMDFhMjYyNGFhMjZmM2MxZTNjYWRkMDQ1NDQ1NDllYjU0MSBsZWdhY3ktdHJ1bmsKKzkyOTggOGVmNDgxYzdjM2FmYzY0MzAwN2YzZjllZDcyYjcyZWRjNzM4ZDBkOSBsZWdhY3ktdHJ1bmsKKzkyOTkgYjE5Y2Q0MzEzMTI2NjNlZjQ1NWQ4YjQ2MWI1MDU3YjRlZDFlNzk2NSBsZWdhY3ktdHJ1bmsKKzkzMDAgZmMxMWZmMmM3NWIwNDk1ZGQ1YWNkZjBlOTg0MTkwMDA3ZjgyMWI2MCBsZWdhY3ktdHJ1bmsKKzkzMDEgNjYzYTQ5ZTRiZWQzMjY4Mjc4YzczOGU2YzQ1MWM4MWM1NGM0ZjQ4YyBsZWdhY3ktdHJ1bmsKKzkzMDIgZTM5YzNiNzc3MDQxNzJjODVhZjAzNDQxOTE3N2FiMGUxYjM0ZGFmNSBsZWdhY3ktdHJ1bmsKKzkzMDMgZWNhYTQzMWM1OTY5ZDliM2EzNDI1NDRlMTA1MzVkN2IzN2VmMGVhMiBsZWdhY3ktdHJ1bmsKKzkzMDQgYTE1NDVjYmYwYWRmN2Y0NmM0OTAwYzcxZTg4OTUzMGNiYzA4NmRlYiBsZWdhY3ktdHJ1bmsKKzkzMDUgOWZlOTdiNzYzMDY4YjY2OWNiOTU4OWQ2OWU5NWE1NjdmYTgwNGFiMiBsZWdhY3ktdHJ1bmsKKzkzMDYgZWU4OGM1YWJjMzQxZWNlOTM4YmIxZTE0NWMzMmRjMjg5ZTExODFhYyBsZWdhY3ktdHJ1bmsKKzkzMDcgMzUxYzcwYjhlNzMxM2ZkYjRhOGM5ZWFiZDVmZmRkMTc5NDVlYTc2MyBsZWdhY3ktdHJ1bmsKKzkzMDggOTkyMDlkY2YyOTQ2OGNlNzMwOGMyODRkOTczMTFmZDBiODc1YWFmMCBsZWdhY3ktdHJ1bmsKKzkzMDkgYWNmMjQ3NDY1ZmViZmRlMWJkNDFkY2U0MjVhYTZiNGExNzFlY2I2ZCBsZWdhY3ktdHJ1bmsKKzkzMTAgOWE1N2I0MTA3NDhkNTE1ZTg0YzdlYjAzNDQwZmIxYmVkOTgxZGNhMSBsZWdhY3ktdHJ1bmsKKzkzMTEgY2JmYzVmMzMyZDlkNGYxOWYzYTQ2OTYzYWFiNWExMTFjZWY1MTliMCBsZWdhY3ktdHJ1bmsKKzkzMTIgYWFiMDgyYmZlNjU0ZTUzZWU5N2MxNmQzYTc1MmI2YmM3YWYwZTk3MyBsZWdhY3ktdHJ1bmsKKzkzMTMgZGIxOTFhY2Y4ZTA2OGU2YWFjNTNmODc2ZDU2NTRhYWRmMDlhNjAzOCBsZWdhY3ktdHJ1bmsKKzkzMTQgMDI1NWI1ZWNkZTEwNjU0Mjk5ZjAzMTY4MWJjMzhjZWU5NDJmOThmNyBsZWdhY3ktdHJ1bmsKKzkzMTUgOTYxODFhNGE1NDgyNDliZDZhYThhZTkxZDZmMTI2YTU3ZTQzODg2MCBsZWdhY3ktdHJ1bmsKKzkzMTYgYjc1NTAwZWVlZDliMTJkMjc5MWVjMDIxNGE2OTUzYjUxYzdiOThhMiBsZWdhY3ktdHJ1bmsKKzkzMTcgNjIzMzM4MzUxMmJhOTlhMTgyZWJkZjVlMmEzOGNlZjRmMTlmZWM4NiBsZWdhY3ktdHJ1bmsKKzkzMTggNThiZmVjZTAxOTY4Y2MwOWMxNmYxMWQ3MzkyNDVhNDhkOTYzZDQ0NyBsZWdhY3ktdHJ1bmsKKzkzMTkgZDcxMzliYWM5Yjk5Nzg1ZWJkNmNjYjEyOWJlNTk2YWY2YmE2ODc0NyBsZWdhY3ktdHJ1bmsKKzkzMjAgNDE2Yzc5NTcyZjExODcxYjZlYWQxNzc4ODgwNGRmODhlYjdjMzkzMCBsZWdhY3ktdHJ1bmsKKzkzMjEgYWM2NWRiMjA1NGM5YzY3OGNjNGMyYmU5ZWNiNGIxYmI3YTYxYTFlZSBsZWdhY3ktdHJ1bmsKKzkzMjEgZWI3ODY1OGQ4MTlmYjBhZjA5YThlNmY5YmVkY2I2NzA4MDVlZDVmNiBsZWdhY3ktdHJ1bmsKKzkzMjMgM2ZmZjM0ZWE5MWFiNjQxOGQ5MmM3NTA1MmQ2MWJmMTMxYzMyM2E4ZSBsZWdhY3ktdHJ1bmsKKzkzMjQgNTk5ZWVhOTMwODQzYzE0Y2YyYmJkOTM0ODg3MTQ4NDQ4MzcwNGYzZSBsZWdhY3ktdHJ1bmsKKzkzMjUgOWRlZDRmOWUwMTllZDBhMWU1YzZlYWYxNzQyYzFhMzA2MTVkYjMyNSBsZWdhY3ktdHJ1bmsKKzkzMjYgOGFkYjM1MzI5YWYwMjRkOTUzN2IzMWVkMDdiMjNjZTYwZjg2MDlmMSBsZWdhY3ktdHJ1bmsKKzkzMjcgNTFmOGQ0ZGE4MWU0YjA3Nzk4NjE4ZWVjZDY0NjVlOGRjYmZjNTA1YSBsZWdhY3ktdHJ1bmsKKzkzMjggNTJmZDgyODE2NTYxNDViNWU3MzQ4Yzk1MTQ0YzQ3NTE4YzA3YWFkNyBsZWdhY3ktdHJ1bmsKKzkzMjkgZDNlNTE2ZWY5Y2QxMTIyZmQzMjcxZGZlYzhlODU0ZDk1OTM5ZDY2MiBsZWdhY3ktdHJ1bmsKKzkzMzAgYTQyM2UzZTBkYTQwMTBjYmQyNTY2NWIxYjJjYTQ5OWQ2MTEzZTk2OCBsZWdhY3ktdHJ1bmsKKzkzMzEgNjcyYTY1N2FiYmE4N2M5MGM1NWYwZTdhYzQzNjM4MTRkMTNiZDNkYyBsZWdhY3ktdHJ1bmsKKzkzMzIgZmQwN2Q1MDNhMzNjNWU1NmUxY2JmYzE5MDczYWFkZTRkOTBhY2I0YSBsZWdhY3ktdHJ1bmsKKzkzMzMgMWFiMzA3OTUxZjRlZDA4ODE1NjI1MGFkMWJmNzNhZmJhMDQ4YjRmOSBsZWdhY3ktdHJ1bmsKKzkzMzQgOTI3NGZhYjJjNWYyMGY1YjcyMDVlM2ZjYTkzNDMwYmMxOTk3MjUxOSBsZWdhY3ktdHJ1bmsKKzkzMzUgNjdjMTBkOTg5MDhkMmJlYjc3MTRlZjQxYjhkYTA1OWMyYTcwMTVhZSBsZWdhY3ktdHJ1bmsKKzkzMzYgNjFkOTczZWI0MTAyY2JmZDE5N2EwNWM3MDIyNmRhZWY3NjAzM2QwMCBsZWdhY3ktdHJ1bmsKKzkzMzcgNTFjOTMwMDc5NTE0NzUwMDQ0OTY3ZTE0NTI5OTEwYTIxMWQxOWE0MSBsZWdhY3ktdHJ1bmsKKzkzMzggOWYxZDNlZWI3ODRiOTMyNTkyZDlkYTAzMzQxZTQ3YmE0YmIwMTExZiBsZWdhY3ktdHJ1bmsKKzkzMzkgNzQ0Yjg5OTQxNDhhZTMyYzBlYjc3MGEyYWE4OWI5ZGMxMmI2OTQ4MiBsZWdhY3ktdHJ1bmsKKzkzNDAgYzViZmIxZGU2MWE1YjcwNDE5ZGNkMzRmN2RmYzIwYTRiMmZiODU3ZSBsZWdhY3ktdHJ1bmsKKzkzNDEgMzIwMjAwNWE3MjBiNDk3NTcwYWE4MGUyZGZmYzE4OWFkZmI1NjFlYSBsZWdhY3ktdHJ1bmsKKzkzNDIgMmRlMzk4ZjM3MGU4NmUxNmRkNTE0NDhlNWUxNDQ2MmQ3ZDUxYTNhMCBsZWdhY3ktdHJ1bmsKKzkzNDMgYzhjZGUxNWRkOGNlNGM2NTI3YzJmMDNjNmY4NWMxZGE1NDc0OTU5NSBsZWdhY3ktdHJ1bmsKKzkzNDQgMGMzZWZkZjI4MTMzMGJlYTNkYmNmN2QzYjg0YjVhNTEwOTU5MmI5MiBsZWdhY3ktdHJ1bmsKKzkzNDUgODFkZmRmNjU4OWY4Y2U3OTMyY2JjYWI1NjJhMDcwMTkzNzE1MDY1OSBsZWdhY3ktdHJ1bmsKKzkzNDYgMmY3NTNmNTQwZjQ1ZjQ5OTAxZTRlMWM4MjI3MjNjMTMzYjg0ZDI3OSBsZWdhY3ktdHJ1bmsKKzkzNDcgMjc4YWFjZjAxNzA3MTMwNDhkZjBlZmQ5ZTZiNzQ0NzUzNDJjN2MxMyBsZWdhY3ktdHJ1bmsKKzkzNDggMTkwMjkzOGU0MmM2MjA2NDUwODI0YmYzYWEzOTM1ODk1M2VjMThiNiBsZWdhY3ktdHJ1bmsKKzkzNDkgNzkzNzVmNzFkNmM4MzgyMjZjMDJlNGJlYzE4NzY0MDNhMzU2NTFlMSBsZWdhY3ktdHJ1bmsKKzkzNTAgMmQ5N2ZiMWQwNmNhMTQ0Yzc4YWZjZmVkMGU3NzRjMmFiOWI5NWM0YiBsZWdhY3ktdHJ1bmsKKzkzNTEgOWJlN2YxZTM3NTM1OTQ1OTcyZTM5M2MwZGQzZTlkOTNmMGVjZWFlMyBsZWdhY3ktdHJ1bmsKKzkzNTIgNmFlM2M5MWYyZDkzODM0MWY4MTI1OWU4NGVlOTExODhjNTBlM2E5MiBsZWdhY3ktdHJ1bmsKKzkzNTMgZDAzZjJlMmZiZjM2NjZkYWMyNmJlZTYzYTM1NDQ0YjRlM2Y4NmQ4ZSBsZWdhY3ktdHJ1bmsKKzkzNTQgNGUyY2M1MDQ0ZmE1MTNmMWExOGZlY2Q0ZTA1YmM5YjUyNDc3ODFlMCBsZWdhY3ktdHJ1bmsKKzkzNTUgNTgwOWVmMTU3Y2RkYjRlOGZiZjFjN2I0NTM1ZTUwNjU2MzIxODY5OCBsZWdhY3ktdHJ1bmsKKzkzNTYgZTI4NWExNWYzYTkyZWEwYTdmYWU1NTk3MWU0NmQ5MTNhMWE5Y2M3ZSBsZWdhY3ktdHJ1bmsKKzkzNTcgZWEyMThkY2Y3MjdkZDE1MWU5NTU2Y2M2OGJlNGVkNWIwZmRlMDJhMiBsZWdhY3ktdHJ1bmsKKzkzNTggYzQ2ZDg3OTIzMzE3YzM5YzRjMTE1MDllNGE0NTJiNmMxMjI0NDAxOSBsZWdhY3ktdHJ1bmsKKzkzNTkgMzhmOGE4MjhhYzU4ZDNlMzBhMmFiYmFkMWQ5OTYyZGYzMGM3MTcwYyBsZWdhY3ktdHJ1bmsKKzkzNjAgM2MxMmMwZDY5ZTEyMzAyZTRlZWJhYjkzZWRhNDQxMDM5MzBhMjM2YiBsZWdhY3ktdHJ1bmsKKzkzNjEgYmFmNjg2YmY4Y2EwYjY0MTRjNDEyZjE4OTNlODM2YTJmNmU5NTBlNSBsZWdhY3ktdHJ1bmsKKzkzNjIgNTk4ZDJmZmJmZDhiNTYyMjJhMGNjMDljMDUwZGM0NjA4NzI0M2U0MCBsZWdhY3ktdHJ1bmsKKzkzNjMgZThkMzIyMDkyMTdhOWQyNTk0OWY4ODcwYjUzYzk5MWE0MjdhMWJiZCBsZWdhY3ktdHJ1bmsKKzkzNjQgYjdkOGNjYjQ1NzQ2MzMyNWM5YzA5NTc5YzJlMjVjM2U4NTAwZmI2YSBsZWdhY3ktdHJ1bmsKKzkzNjUgOTEzMzQ1ZDU0ZjMwNmM1YzNiYzZjNDE4YTc2N2NiNDFjYmE4YjYzMyBsZWdhY3ktdHJ1bmsKKzkzNjYgZThmOTk3ODg3YzJkNWUzMjFiZjEzNjlhMDNlMTc3NDkwZDA4MWMzYyBsZWdhY3ktdHJ1bmsKKzkzNjcgYzdiYWI3M2U2M2M2ZTc0MTg5NzY1ZmYzMGJmZDQ1YTQxN2YxMWM1YyBsZWdhY3ktdHJ1bmsKKzkzNjggMWZmOWEzMGY4MjZhNDVhZDgxMGMxNDk1ZTBiMzM3YzNiYTQyMTg3MSBsZWdhY3ktdHJ1bmsKKzkzNjkgMDQ3YWJjYmYzZjQzMjU1N2M1YTM3OTU2MmNjZDI5MjJkYjUwOWU2MiBsZWdhY3ktdHJ1bmsKKzkzNzAgNWQyMDVmMjJhYjYxODYzYWE3OGE4ZDg5ZGYwZDA3Zjg1ZjE0MWI4OCBsZWdhY3ktdHJ1bmsKKzkzNzEgZDJlZjc5NGQ5YzExNmRkZjA4ZDYxMTZiM2Y1ODU0ZjM3MTM3ZDE1NyBsZWdhY3ktdHJ1bmsKKzkzNzIgMDVlMjY3YWVkODZlYmI1MTA3NzU4ODU2N2E4OTYxYTMxN2Y2NWJjZSBsZWdhY3ktdHJ1bmsKKzkzNzMgZDk0OWEzNWNhZTIwYzgzYTJmM2YwZWQ2MTdjMGRjODNjOGQyNWNjNyBsZWdhY3ktdHJ1bmsKKzkzNzQgZTcwYzRhZjE1N2Q1NDM1NGQyODhiMjgwMDI3NWI5ODFjYTI2OTg3ZCBsZWdhY3ktdHJ1bmsKKzkzNzUgNmZlNmE5YzE0NDk5MmYxMTNmMzNmMzhlNDcyNDU2ODcyMzJkNDQ5NiBsZWdhY3ktdHJ1bmsKKzkzNzYgMzdlZTE4NzExYzNjMzgxODQxMTg5OWExOWEwZjFlZDZjMGNiYzNhOSBsZWdhY3ktdHJ1bmsKKzkzNzcgMjE0ZjNjNGY1NDg5MmVjN2M4ZDVjYTU2Yzk3NjUyMmZhMDEzMjEwMiBsZWdhY3ktdHJ1bmsKKzkzNzggMjQ0MzdkOGQwZGRjM2I0NWIzMGQ0Mzc2MjIyYjE2NDY5NDI2ZTYzNCBsZWdhY3ktdHJ1bmsKKzkzNzkgYWRiMzAwY2JkNTY2ODBkMDEyMjQyZmE5OTM5NzZjZTEyZmI0NGE2MyBsZWdhY3ktdHJ1bmsKKzkzODAgMjUyMmM4Zjg2MTViZDUzMjljYzZmOTg0N2VmNzhiZjljY2MxY2M2YyBsZWdhY3ktdHJ1bmsKKzkzODEgZTIwN2JlYjVhMzYyOWJkMGNkOTUzYzgxYWM0OWJiZjUyZDNmYmZjOCBsZWdhY3ktdHJ1bmsKKzkzODIgOWNiMmYxMGIwNDI5OGVmYTBlMTRmMmJiMGQwZDdhNzY0MTYxZTNhYyBsZWdhY3ktdHJ1bmsKKzkzODMgN2I1NGY5NmFmM2JlZmEwM2MyYTk5MjQyYTliZTY1ZjBlZGM3OTFmZSBsZWdhY3ktdHJ1bmsKKzkzODQgODBhYjYwMzBiOTA0ZGM5MjllYTY4YTVjODg1MjgyN2YxOTZkZDMzYyBsZWdhY3ktdHJ1bmsKKzkzODUgOWVjNmUwYThmMzUzZmQyYmU2YWM1YTZlYTBiODY4YTZkODRmNWU5ZSBsZWdhY3ktdHJ1bmsKKzkzODYgZTRjZDMwZTQ1MzcxY2UwYTljNmExYjdlNGM2YjgyNmQyMGJhNTJkZiBsZWdhY3ktdHJ1bmsKKzkzODcgMzU0N2ZkZWFiNGRmYWM4YWY5MjcxOTkwOTI4NjAyMTdiNDVmNzQ4NSBsZWdhY3ktdHJ1bmsKKzkzODggZjU5NWU3ZmMyYmQ5ZWE1MmNlYzMzYjQ0MGRhMzc2NmJmYzg1ZGU4MiBsZWdhY3ktdHJ1bmsKKzkzODkgMmM0OWMwMmNmNzQ3NGFiMzlhOGUzMWU4NmZiY2FiYjUwNzFhYzY1MyBsZWdhY3ktdHJ1bmsKKzkzOTAgZjI2NmFiOTFhOTkwZDAwYTMyZTBiZTEzMzNjNTY4YWRjYzk4N2Q3OCBsZWdhY3ktdHJ1bmsKKzkzOTEgM2NmZjQ0NWJkMTBmZmE5NzExNWI2MWRjZmNiNzdhNTIzNzlkYmJiYSBsZWdhY3ktdHJ1bmsKKzkzOTIgMDM1ZTc5NmI4OTBlZDYyNjM5NTAzMDFlMDI2YWIzYTZjNDk2ZmNhZCBsZWdhY3ktdHJ1bmsKKzkzOTMgMGQ1MWIzYjY2MGQxMjkzZWRiZTgzMzY2OWI2OWIyYjFlZjVmYzQzMCBsZWdhY3ktdHJ1bmsKKzkzOTQgYjlhMzk1MDExMmFlYTU5MjBhZTY2NzkxNjM4MTEzZDMzNDAwMzQ0NSBsZWdhY3ktdHJ1bmsKKzkzOTUgOGRmYmVlY2MyNDIyYjc5OTE3NTNiYzkzMDI2MzA5Njk3NjExOTE4YSBsZWdhY3ktdHJ1bmsKKzkzOTYgOTUwZDA1MTliNWZlOWU5OWExM2YwOTVhZGYxYzZlMGEyN2EwMWFlOSBsZWdhY3ktdHJ1bmsKKzkzOTcgMTAwMjljOGM0MGUwZGM1NWMyNWU0NDBjNjI4NmZjN2Q5Njk2YjQyNCBsZWdhY3ktdHJ1bmsKKzkzOTggYWZiMWU4YWY3ZTRmOGFiYzJmZDY0YTg4YzVkZWEwOGM2NWRhMWViNSBsZWdhY3ktdHJ1bmsKKzkzOTkgMjM2ZWE5M2M1NmZmNzhiNzViODhkODVkN2QwMmI4OTgzMzJlNDBiYyBsZWdhY3ktdHJ1bmsKKzk0MDAgNzYyOWM0ZDk4NWJjM2VkZTNlMWZkODBlNWZiMjA3MmVlNDM4ZGJmYyBsZWdhY3ktdHJ1bmsKKzk0MDEgNzRhZDI2ODI1MDYwOGE5M2RhZGNmNGNhNWQyZThmODFhYzQwNDg2ZCBsZWdhY3ktdHJ1bmsKKzk0MDIgY2YzMTdhOWM0OTliYmZmNjE1NTI1NWIxYjQyNGYzOGRlY2QzOWMzMyBsZWdhY3ktdHJ1bmsKKzk0MDMgM2RiMjRiNGQ5YzQyMjc1YmQ5ZDMwZDk3ZWIzOGQ3M2VjODhiNjZkNSBsZWdhY3ktdHJ1bmsKKzk0MDQgOGM5MmVjOGY2MDM4YTc1MDcwZTJlYTI5N2MxY2EwNTQ4YzVkZDZjMSBsZWdhY3ktdHJ1bmsKKzk0MDUgNTIxMjVjZTM3NmE0MmU0MjEyODEyZGM5ZjM5ZTJmMzVjNjFjZTQ0YSBsZWdhY3ktdHJ1bmsKKzk0MDYgYjlkOWM1M2YxZTFkZjUxMjMwYmI4NmM0ZWY3ZmI0MDQwZWZlMWM1OCBsZWdhY3ktdHJ1bmsKKzk0MDcgNzQwMjRlOTA3YzYwZDYwNTQ2YTY2YjkxZGIxM2VlODI3ZmQ0MzJhMiBsZWdhY3ktdHJ1bmsKKzk0MDggNzc0NGJmMWU0ODViNjVmMWM1YzY1YTUyMzdmMzlkM2I1YWE3MGI1MCBsZWdhY3ktdHJ1bmsKKzk0MDkgNDA5MWIwNGY5M2FkZjAxODc1NjNlNGY4NjQ0ZGIzMDNhZjQyY2EwMyBsZWdhY3ktdHJ1bmsKKzk0MTAgYzViOTM5YjVhOWUwMmQ2ZDgzM2UzZDI5NTMwNDkyNWQ5ZTE5YTJiMiBsZWdhY3ktdHJ1bmsKKzk0MTEgYTcyZGM1MmI5N2FkZDQ2MWMzOWU3YjM4ZTNiNDczZjI2MWNmMTg2OCBsZWdhY3ktdHJ1bmsKKzk0MTIgNjgzYmMzNWFiNzUzYWY3OGI3YmIwOTBlODAzZmU1N2MzYzgwY2QzYiBsZWdhY3ktdHJ1bmsKKzk0MTMgNmI2ZWY5MDkyMzhlMDVjZDBkNzA3OGM5Y2Y5YjlhZjQ0ZDkyYzcxZiBsZWdhY3ktdHJ1bmsKKzk0MTQgNDU1Y2JhYjRhOWJlN2Q2NTQ2M2Q3ZjEwMmNmZmIyNTMyMTMyYzUwNCBsZWdhY3ktdHJ1bmsKKzk0MTUgZTNjOGMzNDBhOTkwYzhjZGZhZTAwMmYzODAzYzkzN2ViYmQwMDNlOCBsZWdhY3ktdHJ1bmsKKzk0MTYgYjNiMGFkNDcxMmFkMGY4NGEzMmZlZmVlMjE5MmE1YmFiMDMwYmNlMSBsZWdhY3ktdHJ1bmsKKzk0MTcgZGMzYzljMDRlZjA3YjkzM2E0MDNhMWZkM2NhM2RkNDk2Y2ZhMTY5MSBsZWdhY3ktdHJ1bmsKKzk0MTggMWRhZmFkMzA3MDA2NmI5OTFhNzZlMzc1N2RmNTEyYzdhMDhlNDllZSBsZWdhY3ktdHJ1bmsKKzk0MTkgOTEwNDc4NGFmMTU5MDhhY2Q3MjA1YTI5MjE5MDkyOTQyMWEyMTZkYyBsZWdhY3ktdHJ1bmsKKzk0MjAgMDYyOTFmMDRiYTljMzhjYTllMjAyNGZiM2I2MmY5Y2JhNzg1MGE5ZCBsZWdhY3ktdHJ1bmsKKzk0MjEgMGMxY2MyZDZjNGYwMWRjNGUxNDBkZDZmZDMwNDBjMTZhMGU3YTBiYiBsZWdhY3ktdHJ1bmsKKzk0MjIgZmViYTNkOWEzMGM3MjAwYThhMjBjYzE2MWIyMWFkMzBhZDk1ZDY0ZiBsZWdhY3ktdHJ1bmsKKzk0MjMgZjE0ZTQ0NTlmYjk0ZGJjN2Q5ZDNmNTFmYTZkNmU4MWUxYjQ1MGExYyBsZWdhY3ktdHJ1bmsKKzk0MjQgNWVmNDcwMDcxOWRlOWEyMjZiMWQ2MTEyMjI3ZWExZDgwZTAxOTY0ZSBsZWdhY3ktdHJ1bmsKKzk0MjUgZTdiZjU0NTNhNmZmNGZmNzY0ODJmMjQxZThlMjQ0Y2U1NDAxZTdiZSBsZWdhY3ktdHJ1bmsKKzk0MjYgODAwY2IyMzRmNjc2ZjFhYjAzZTY4NjcyZDc1MDk1OTVmMDU4NzZmMSBsZWdhY3ktdHJ1bmsKKzk0MjcgNmUwZWRkZmE0MDRhNzE3MDkxZmNmOWQ1ZDMxZDZlNGYyNzNlZWVjNCBsZWdhY3ktdHJ1bmsKKzk0MjggMzkxMmVmYTViZmNhMjY2M2U2NThmYmMyNjI2YzBjZTE1YmExZTJlNiBsZWdhY3ktdHJ1bmsKKzk0MjkgYzhhZDlkYzhhZTFlYmY2OWMyMTMwOGY2Y2NmNGRkODIxOGQ2YTNmZSBsZWdhY3ktdHJ1bmsKKzk0MzAgMTE0NGE5ZWQ5OGQ2YWIzODJkOWM0YzhiOWQyODI3MDA2NzU0ODIzMCBsZWdhY3ktdHJ1bmsKKzk0MzEgZGMwNzM5Mzc5NzE0OTg4MTE1ZTljOTk0NzUyNzhhMGI1YmZjYjVkOSBsZWdhY3ktdHJ1bmsKKzk0MzIgOTY0MmEyOGRmMmIxNGI3Nzg3OGRkZWRlMTI2YzQxNmNkNWI0MjAwYiBsZWdhY3ktdHJ1bmsKKzk0MzMgMzg0OTNiOTM3NmVhZTE4MWIzYTA2Mjk0NmQwNjRlYTUyNTI1Zjg4MyBsZWdhY3ktdHJ1bmsKKzk0MzQgOTc1NGIyMjMzNTgwOTFjYzY3YmU0NWE1NTBhYzEwMWQyMTk2NzcxMyBsZWdhY3ktdHJ1bmsKKzk0MzUgZGY1YjU2YTVhZmNmZDYzMjRmZWQyYzQ1YThkM2ZhNmZlOGQzYzFlMyBsZWdhY3ktdHJ1bmsKKzk0MzYgMTM5YWQzMWZmOGZkNWI5ODZiOGMwODNmOWE2YjM1ZjdmNjQxMDY5ZiBsZWdhY3ktdHJ1bmsKKzk0MzcgZmVkYmY5MzI1MTkwYjhhNmE2MDMwNmI5MjE4NGUxNGZkNDQxNGMxYyBsZWdhY3ktdHJ1bmsKKzk0MzggMzE5YTUxYzM4MWNlZTRmOGE0ZmQ5ZGMxNGE1NWM2Y2FjNjZmODM1OSBsZWdhY3ktdHJ1bmsKKzk0MzkgYzU4NzRmNmY1NDMxZjI5NGI5ZmM1YWZhM2I5M2Q4ZTc0YTI3OWY3NSBsZWdhY3ktdHJ1bmsKKzk0NDAgNDg0YTFjNjhjNTU4OTU2YWVhZjFhYzk3YWE1ZjhkNDk3YjBiY2QzMSBsZWdhY3ktdHJ1bmsKKzk0NDEgMTBmMjkyMWEwOTFlNzE0YWM3N2ZjZjJiMWZiMWViM2NjMTlkOTNiMSBsZWdhY3ktdHJ1bmsKKzk0NDIgMzNiZTdkNWQ0OThiNjA3MmI3MmFiMGE3MDEyMTRiMDYyMWZiMmVlMCBsZWdhY3ktdHJ1bmsKKzk0NDMgZGNlODM4Y2Q0MmMxODA5ZDcxMzUyNzg2YWUyZGJjNTExMGVkM2Q5NCBsZWdhY3ktdHJ1bmsKKzk0NDQgZWVkNjMwNDlkZjk1OTU1YTk5NTdjYjY1ZWQ0ZGNmNWE5Y2E3YjAzYSBsZWdhY3ktdHJ1bmsKKzk0NDUgNzQ0ZTJiNjhmM2I2ZDk0MGJiZjI1MTExODVjMTk3NGNmOTlhMmRhMCBsZWdhY3ktdHJ1bmsKKzk0NDYgMzFlY2E2NDhmN2ZmZWFmMWQyYzY0MTM0ZmYzN2VmMDE5ZmJmM2VlYSBsZWdhY3ktdHJ1bmsKKzk0NDcgNDkyYzZkYjE2MGFjOTllM2U4ZmYyNTcyZWJhOTJiODk3MDgxOWU3NyBsZWdhY3ktdHJ1bmsKKzk0NDggZTVhZmY0MTAzNmYzZDY1OTA2MGUyZmZiZjFmZDlhNjRmMWQ3YTY3MiBsZWdhY3ktdHJ1bmsKKzk0NDkgYmMxMjVmMGQyYzVkMGYxNDE0ZDA0ODgzNTk2N2UwZGUxZDY1ZThmNyBsZWdhY3ktdHJ1bmsKKzk0NTAgYTY5MjllNzQxN2RkNjJjNzc0MTU4ODE1YjU4YjBmZWVmNmFmZTQ2ZiBsZWdhY3ktdHJ1bmsKKzk0NTEgYmJhZDJjNjg0YWQ3MmJjZTVmMTM0NGRmYzRiMmQ2N2E4NjdkYmNjYiBsZWdhY3ktdHJ1bmsKKzk0NTIgMjNiMjdiMGIyMzViMzE1NTJkNTdlZjhlMzNiY2FlNDg3Njk2YWVjOSBsZWdhY3ktdHJ1bmsKKzk0NTMgODBiMWUyN2YyMGQ0OWNlMTE5NTg4NTM1MjNmNWJlNmI5YmYxMmU0MiBsZWdhY3ktdHJ1bmsKKzk0NTQgY2RhNzIwYjE5MTlkZmU1MjJhY2I5MGJhY2FiM2ZjNWVjODc3NzM1OSBsZWdhY3ktdHJ1bmsKKzk0NTUgYTU2ODZlNzU2ODVmMmQzZGViNTZkNTU3MTJlYzM4YmViMWM2MjAyMiBsZWdhY3ktdHJ1bmsKKzk0NTYgMmYyZWZiOGZhNTRmZjNjNjNhMmNlMWExNjdhM2Y5MWJjNThlM2I1ZCBsZWdhY3ktdHJ1bmsKKzk0NTcgNzY4OGYzMTA2YWU0NDFjMmNiNzg3MzJkMmQ2ZDVhMDMzM2FkZjk0OSBsZWdhY3ktdHJ1bmsKKzk0NTggY2ZhZDRiMDI5NjQ1ZTlhN2NiM2RhZGViOGVkMzA0OTJmMjBkYWY0ZCBsZWdhY3ktdHJ1bmsKKzk0NTkgYjcwYmE0ZGI3NjdlMDk3NDBmNWQxY2E3YzA3ZWI4OTJmMWE4ZTE0OSBsZWdhY3ktdHJ1bmsKKzk0NjAgZjMzNjQ3MDhjMDllMDc5MDEwYjZhMTdlNmQwMjA4NjI0MmNkNzgyNyBsZWdhY3ktdHJ1bmsKKzk0NjEgZmZjYWY3YWZkNWQ5ZTNlOTAxZmQ4ZGJkNWJjZWY0ZTE0OTNjM2E0NCBsZWdhY3ktdHJ1bmsKKzk0NjIgZjVmZDIzOWIxNzhhZDAwOGE2ODFiNDFkYmY1MDZkMzc0NjFjN2I2OCBsZWdhY3ktdHJ1bmsKKzk0NjMgZDRlOWFjNzU3ZTVjMDdmZjU5YzZiMzg3Y2QyYzQyNWQxYTYzNmMzNyBsZWdhY3ktdHJ1bmsKKzk0NjQgNjM4ZDg3N2VhOTk1ODM1MzM2YzA4ODhiMTNhMzIyNjAzMjY0OWZjMCBsZWdhY3ktdHJ1bmsKKzk0NjUgMWE0MTQxNThlYjY2NWIxMTBjZDRhNjg3MmVkM2JhYjVhMDQzMGVkMSBsZWdhY3ktdHJ1bmsKKzk0NjYgMmU5MWZjNzFjYmI1MDE5ODM0NzI5MWJiNzM0ZDc5ODNmNDVjYzgzYiBsZWdhY3ktdHJ1bmsKKzk0NjcgZmUxMDhhNGJiOGQ1OGRhYWNmODdjN2RiM2YxY2I5MmM1MjcwNTE0NiBsZWdhY3ktdHJ1bmsKKzk0NjggYjI0NDVjOTNmMDNiODljMGEwNjg3ODgyODRiZWM5YWNiYzY2MGEwNiBsZWdhY3ktdHJ1bmsKKzk0NjkgZjM0OWJmMGU5MzIyNzZmYjY0YzE3NDczN2FhY2FjMmIyOGRhZDIxNiBsZWdhY3ktdHJ1bmsKKzk0NzAgZDAwNTE1ZjkyYjUzNGQxNGU1ZDA0NjczMTRiODEyNGFlZGNiODI1MiBsZWdhY3ktdHJ1bmsKKzk0NzEgOTg3YTgzMWFhZjIzNmFkZjU2MTFjNzk2OWU3Zjg4MWJjZDM4MjY0YiBsZWdhY3ktdHJ1bmsKKzk0NzIgNjBjY2ZhOTY1NmFjZjBiNTIzNTRhMWMxNWQ3YzNmNGI4NjllYmIzMCBsZWdhY3ktdHJ1bmsKKzk0NzMgZWJjZjYwNGNjZWUwNTExMjlmYmFhZTZmMjYyMGRiYzRhYTBkZWUwNSBsZWdhY3ktdHJ1bmsKKzk0NzQgNjkxMTI5OTBkOGUyNDhiOWYzYmI4MGY1ZGVmMDAyN2U5ZjhmMmU1MyBsZWdhY3ktdHJ1bmsKKzk0NzUgZmExOTQzMGZlYzRlNDlmYTMxZTUwMGZiYzI5N2MxMWFmMWRkZDE3ZiBsZWdhY3ktdHJ1bmsKKzk0NzYgOGFkMTdlNGNjZDliYTg5OTNmYjdlYjUxMTczNWNmMGRjN2RjNjNmZCBsZWdhY3ktdHJ1bmsKKzk0NzcgN2NlOWRhMDI5NjE5ZjU1YmM1MzE1ZjdiZDdiNmYxYThjOTkwYmM0ZiBsZWdhY3ktdHJ1bmsKKzk0NzggZjJhZjNjNjQ1NzEwMjRjZjc5MDExYzA1NmNkZmYyYjkwMzk5YWVhZiBsZWdhY3ktdHJ1bmsKKzk0NzkgZmViODBlYTU0ODg4ODdjZWU4NTUyOGIxOTc4MDgwY2ZlNmU1Nzg2ZiBsZWdhY3ktdHJ1bmsKKzk0ODAgZjBmOWIyZTRmNGNjMGM1MDlmODg0ZDhiM2ZkMzY3ZWYwOWMyYWE1MSBsZWdhY3ktdHJ1bmsKKzk0ODEgMjI0NDQzOWZhZmNmMDZjMWRmNjZmNGZhMzQ2NjZjNmYwNjk3MTk2OSBsZWdhY3ktdHJ1bmsKKzk0ODIgYTEwYzQ1MzkxMjdhMWNmMGMxMjIwZjlmMDNjNmRkZDRlNDg1ZTViYSBsZWdhY3ktdHJ1bmsKKzk0ODMgY2RlZWZmNGQ2Y2I0Y2Y3MjlhODgzYmIwN2I1MDFjMWY4ZjJiMTc5MSBsZWdhY3ktdHJ1bmsKKzk0ODQgOTc3M2QzOTQxYzk2ZTJkM2JlMjYzYjhlMGQ0YTc1ZDRhZDg1NGFlMyBsZWdhY3ktdHJ1bmsKKzk0ODUgNmYyYWI0YWZhOGY5NDc4N2MwNmZjZjBiZDBhZDhmMzdiNjRkOGFkOSBsZWdhY3ktdHJ1bmsKKzk0ODYgNGI4ODcxMTk4NWEyNTg5YzMyMThmZTU2MDUzOWY0YzVmMjMyMTgyNCBsZWdhY3ktdHJ1bmsKKzk0ODcgNDQ0YTZiMDdkYTQ2NTE2OGFhMjhkYjcxYTgyYzk4ZTgzMWExYmVkNSBsZWdhY3ktdHJ1bmsKKzk0ODggMGFiYTY0OWJkOWJiM2FjZDJjZjZiYTNiM2YyNDM4NGEwODMxZDk3NCBsZWdhY3ktdHJ1bmsKKzk0ODkgN2E4YzMwODE5NmQxNDY1NWM0MmYzMWI3ZTUyNDc1YTI4MzIwOTBiNiBsZWdhY3ktdHJ1bmsKKzk0OTAgMmRiMTZkMWRiZDg3Y2JhMDY4MzIzNjgwYTJlOGMyNWNiMzU2NGRlNyBsZWdhY3ktdHJ1bmsKKzk0OTEgYTVkZjAyYjZjN2E4MzA4MmI0NzJiOGZmMGI0ODczMWEwZjg5OTNlYSBsZWdhY3ktdHJ1bmsKKzk0OTIgYzc1ZDg5OWU2NjZmMTY4ZDdlNDdiMDA1YzE0NWQ2ZmMyNmQzNjNmMiBsZWdhY3ktdHJ1bmsKKzk0OTIgODQ0NjEwMTFhMWEwYWI0MDJlMzUyZjA2NzQ4ZjI5ZmI1YjU1NTllNSBsZWdhY3ktdHJ1bmsKKzk0OTQgZGM4NWFkMWJhMGUxNTYzYTNmZWJmMGE5MTRlMmNkYWZkYWMyZjgwNiBsZWdhY3ktdHJ1bmsKKzk0OTUgNTlhYTNlMWMxM2RjNTgyMWIxODI5Nzk2NjFiMzczMTBjMjMxYzM1NSBsZWdhY3ktdHJ1bmsKKzk0OTYgMGE5NTE0NzBiMWJmMzBmZmI5Y2YxZjk1ZTFhYzQ3N2EzYzY5NTMyZSBsZWdhY3ktdHJ1bmsKKzk0OTcgYWRhMTMxMWRhMjg2ZWQ2NDAwN2Y4YzgxZDI4NzdiMGZhM2MyMzcxNiBsZWdhY3ktdHJ1bmsKKzk0OTggMjYxYjExYjBjY2Q2NGRmMDRmN2RlMDgxNjA3Y2Y4OTA4ZTExZDYxMCBsZWdhY3ktdHJ1bmsKKzk0OTkgMzg0NGRlMmE3MDlmNTBjZDcxMjQ0YjFkOGYyNzIxMWQ2MjdlOTNjMSBsZWdhY3ktdHJ1bmsKKzk1MDAgYTY2ZGY1NTVmMDI1ZjJiOGE2MjFjNGRiOTJlMDI2NTQyZWIyMmY4ZiBsZWdhY3ktdHJ1bmsKKzk1MDEgY2NkNDcxYzdiODYzY2RlMjJlNGQzMjVhM2FhMzFkOWFjOWVmZDAwNyBsZWdhY3ktdHJ1bmsKKzk1MDIgZTE3ZmU3OTMwNWM3NDA2YjhjN2I5Y2MyOWVmZTQwZjkyODIwZTIyYiBsZWdhY3ktdHJ1bmsKKzk1MDMgYzVhMThmYzRmOTY2MTRiYjEyZGYzNGEzYjc0NmIzYzE2NGU3OTFhZiBsZWdhY3ktdHJ1bmsKKzk1MDQgNGQ2NDU5MDliODM0NTVkMjFiYWRmM2VlMTRiM2FmZGRkNTcxYWEyOSBsZWdhY3ktdHJ1bmsKKzk1MDUgOGRhMzVmMWM3MzkwMTBiYjhiZjRkM2NjMTdiYTJkMDUwY2EwMDg1MCBsZWdhY3ktdHJ1bmsKKzk1MDYgMzc5ZDFmZDQyZGJmMWY5MWY5MTIxZWVkOTFmNTgwYzA1MWE2NjcwYyBsZWdhY3ktdHJ1bmsKKzk1MDcgYTM2N2FhYTY1MDNjYmRlMmNhZTBkM2FmNzMxOGE3YzU1ZTVhYWE3NyBsZWdhY3ktdHJ1bmsKKzk1MDggMDVlMGU0OTkwMTRmMjk0ZWQ2MjNjZGVmMzUzM2VlMzg0MzkyYzRlZiBsZWdhY3ktdHJ1bmsKKzk1MDkgOGQxMWVjYzE3N2IyYjhjNTAzNGU0MzM0YjFiZGZmNGQ3ZjkzZmMzNCBsZWdhY3ktdHJ1bmsKKzk1MTAgZmE4NWE3ZmQ3NDBiYzYxYmIzOTkxYWVkZjY0MmU0ZmYyNmZlY2FhZSBsZWdhY3ktdHJ1bmsKKzk1MTEgNjE0NzQ1OWJmY2ZiOWEwZTY3Y2ZhNzJhMWM4ZGI4Zjk2ZWJkNTIwOCBsZWdhY3ktdHJ1bmsKKzk1MTIgZGRmNTJmMDFiYzBhNzZkNmQ3Yzk4MjZlZjY2ODcwMTg1MTZkMmEyNiBsZWdhY3ktdHJ1bmsKKzk1MTMgMzE2MTY3NDk5MDA1OTk2ODI1OWMxODNkOWYyNjQ5NzRlZmI2MTE0OSBsZWdhY3ktdHJ1bmsKKzk1MTQgZDBhOTcwMTRlZDQyZjAxZjYyNjEzM2VlM2E4NzEyMmU0MDgwMDQzYyBsZWdhY3ktdHJ1bmsKKzk1MTUgMjYxMmY5YWMzMWVkYTE3NzYyNzgzNGIzMTNjZjQ4ZjRiN2IxYjhjZCBsZWdhY3ktdHJ1bmsKKzk1MTYgNDljZTE4YTE2OTlmNGM2MjA4ODg3NmQxNmMyYjViYWY2YjVhMmQwMyBsZWdhY3ktdHJ1bmsKKzk1MTcgYWI0ZDYwNDgyMmQwYWNmMjU3ZjZhZjFhNWMzMzQ3ZDJkMjkyYjg3MyBsZWdhY3ktdHJ1bmsKKzk1MTggMWM5MjdlY2ZjYmIzYjE4ODBkOTNjOTAxMzVlZWIwN2UwZTQ0YWExOSBsZWdhY3ktdHJ1bmsKKzk1MTkgYTUyYTNlMjZlZGM0Y2U5NDE0ZWUxMjVmYmYzNDcwZDUyNWUwOTgzMCBsZWdhY3ktdHJ1bmsKKzk1MjAgODRlODcxZTIwMDg3YWVjZjg0NjIyY2RmNjQzODM0NzU3ZGZhZmNhYSBsZWdhY3ktdHJ1bmsKKzk1MjEgNzZlYWYzNjA0MGJlNTVjYWUyYmIxZGIzMDA0ZWJlMjY4OWFkZGVjOSBsZWdhY3ktdHJ1bmsKKzk1MjIgMjk3ZWE2NzkyNmViOTRhYTQ5NTY3ZGRhOTAwODY4NGIzN2Q1N2Y0MiBsZWdhY3ktdHJ1bmsKKzk1MjMgYWU2M2ZhM2NiMWM2ZjkxZjYzNjI3ZGVmMDRhMzY5OTNlZjkyN2ZhOCBsZWdhY3ktdHJ1bmsKKzk1MjQgYzRhNzhiOTI0ZGQ5YWM4ODY4M2E4ZGY3MDRhOTdkOWQxZDdkMTdhMSBsZWdhY3ktdHJ1bmsKKzk1MjUgOWZlMzM1ZDQ1NTk1NmNjYjg5ODE0ZmFhNmM2YTY2MmE4YjllMzY4NSBsZWdhY3ktdHJ1bmsKKzk1MjYgM2VjYTVmMzc1MDFhNzljMTAxMzMzZjU5OTFkMzlhZjQwOGUxN2ZlZiBsZWdhY3ktdHJ1bmsKKzk1MjcgYWVjZTUxMzYyYWRhYzVjMWFhMGUyYzc2ODc2MjY2M2EwOTZmNjhlNiBsZWdhY3ktdHJ1bmsKKzk1MjggOTBlZGNiMzhmYjAwM2YyNDNkNTc2ZWZiYjE2OTRiNThjZDE4MTEyNiBsZWdhY3ktdHJ1bmsKKzk1MjkgMWYyZjU1OTc3MzliYTFlYjcxZDBmNmYxOTFlNGUxMTYwZGIxOTc0YSBsZWdhY3ktdHJ1bmsKKzk1MzAgNTAyODgwYWY0NjU0ZTM3OWQ5ZjdlNTE3MDAyYWE1NjE5YTNjMjcyMSBsZWdhY3ktdHJ1bmsKKzk1MzEgZGIwZGQxMTc1NDFkNDZlODJhM2NjMGM2ODM4YWI3YTVkZGExY2NkMiBsZWdhY3ktdHJ1bmsKKzk1MzIgNDI1MzQ0MDk3NTBhMDRlYTExOWJmNmUyYjFkODRiOTRhNDhhYzczMSBsZWdhY3ktdHJ1bmsKKzk1MzMgZGYwNWI5YzRiZTdmMzc3MDUxNjgxNGRiNDIwYTlmZGY5MzA2YzJjOCBsZWdhY3ktdHJ1bmsKKzk1MzQgNTNlNTRhMTRmNDMyMzM5ZDgxNmI0OTllMGQwY2FjYjZiMjI0Mjc4NCBsZWdhY3ktdHJ1bmsKKzk1MzUgMDg5NmQzMmI2MGE0YjFjYzgwMmNmMjY3YTVhZDEyYjE2MWQyMTBjYSBsZWdhY3ktdHJ1bmsKKzk1MzYgZjJiMmE3ZWEyYTFlMzU1YzlmNDE5ZmM2ZDg2MGFjNzFhMjExY2I2NCBsZWdhY3ktdHJ1bmsKKzk1MzcgNmUzYjQ2OTVmZmFlMWNhZTAwN2ZjNDdmZWI4ODAyOGY3ZjllMDMyZCBsZWdhY3ktdHJ1bmsKKzk1MzggYzk1ZTYwZWFkNWUwNmExZTVlM2U5OTZmMmQ0MGRhY2I2N2Q0MmUzOSBsZWdhY3ktdHJ1bmsKKzk1MzkgMWQwYjkwMjg1MjNjNmViYjMxYjhjYWFmNDNkMzUwMTY4YjgxOTlmMiBsZWdhY3ktdHJ1bmsKKzk1NDAgNmI0ZjhhOTZlMWQ0NDRmNGZkNmE3NjQ3MmE2N2QxOTYzMDc0ZWFiZiBsZWdhY3ktdHJ1bmsKKzk1NDEgZTY4ZWViMzVkMDRkMWRiN2U3Y2JiMWJlNzJkMGE4ODg3OWIzYTcxYyBsZWdhY3ktdHJ1bmsKKzk1NDIgMGM3MDI2NDU3M2RiM2QzNTIxMzYxMGJlY2M1NTRjZDRhMDhlOTg1ZSBsZWdhY3ktdHJ1bmsKKzk1NDMgODg2NmM2OWIwYWZjOGRjNzkzMWI0YTUxOWY0MTA1NjVkNGM4MDhmZSBsZWdhY3ktdHJ1bmsKKzk1NDQgZmE0MjMwNjg1NzU3MmZmODUzYWEwMjk5NmJhNzBkOGRiZjRhM2VhNCBsZWdhY3ktdHJ1bmsKKzk1NDUgOTA2NTBiYmQ5ZGJiNmFjNTlmMzA3YjYyMGFkMjQ3YTU3MTlkZTc3MiBsZWdhY3ktdHJ1bmsKKzk1NDYgMmNkZjExYjJlZDliNDQxMGZhYmRlMTYwNDdkMmFkNjJkN2QxYmFjNiBsZWdhY3ktdHJ1bmsKKzk1NDcgMDBlNjEyNTYwNDkyYzZhYTM1YWU0MDViZGQyZGU3MDA3Yzc4Njc4OCBsZWdhY3ktdHJ1bmsKKzk1NDggNzVhMWFlYzZkOWIyY2QyNDM4ZDY5N2Q0ZGRkOGEyODc1YzgzNjFiZiBsZWdhY3ktdHJ1bmsKKzk1NDkgMDMxNGVjYmM1ZjVkNGUyNWJlNmVhYzc5MjQ0MjEyNTU2MmYxMWI0MiBsZWdhY3ktdHJ1bmsKKzk1NTAgNWMzNTNjNTIyYTQ4Mjc4MTQ4YjVlZmQ0YmM3YzgyY2I3NzhjYzBhMSBsZWdhY3ktdHJ1bmsKKzk1NTEgM2I1MTlhNmQyN2JiNWJlMmZlODBkZTM2Njk4YWE4YzI1NjQzMDEwMCBsZWdhY3ktdHJ1bmsKKzk1NTIgOGNkNTczYjcyZDRiNjEzY2FiMGUwZTNkZGM3YmFkZjE2NjhhMjVkNyBsZWdhY3ktdHJ1bmsKKzk1NTMgM2Q4YzFiOGY2MDk5MGU4NGMyMTVkMTE5MmNkMTUzMWJkZjUzYTE2YSBsZWdhY3ktdHJ1bmsKKzk1NTQgMmFlNDQxN2FjMzMwOWVlNjgyNTg3ZDBmZmFmMmNjODc5OTFhMTM5YSBsZWdhY3ktdHJ1bmsKKzk1NTUgYzFhZDM0YjNjMDY5OTUwZDQ3NGRhODkzMGE0NzU2ZmY1NDJmYzk2NSBsZWdhY3ktdHJ1bmsKKzk1NTYgMDMxNDU1MzQ4MmEyOWU3NDQzOGEyNTFiYzM2YmM2MjNiZmE2NjcxYyBsZWdhY3ktdHJ1bmsKKzk1NTcgMzIyZGNhNWVlMTQ1YmRjYjQ3ZGJkNDI0YTBiNTAxMDk4YWQ5ZjUxMyBsZWdhY3ktdHJ1bmsKKzk1NTggOTI0ZjhhMDExN2Q1ZmIwMTFkNWYzZTVhZDMxNzE5ZTM0M2Y5NjMyOSBsZWdhY3ktdHJ1bmsKKzk1NTkgMGJhYTJhYjQyZWU5MGNkZGFjNjZmMzMxMDJmNmJiODI3YWFkNTY5ZiBsZWdhY3ktdHJ1bmsKKzk1NjAgNDE5Yjg2YjA0YWU0ZDk4YjNlNmU2OGY5ZGEzNThmZTk1ODk5OTU1ZiBsZWdhY3ktdHJ1bmsKKzk1NjEgOTEzZTQ4YWFhYzc2MWVhYzQ1NDE0MmRkYTA2ZTg4YzBkOTc5ZTQ5YyBsZWdhY3ktdHJ1bmsKKzk1NjIgMGM2ODg3NzY1OTM5NTI0ZTQzODFjZGQyNDcyYTRmZjE4MWNjNGU2MCBsZWdhY3ktdHJ1bmsKKzk1NjMgOWIwNWMyMGM1Nzc2YTRmMjVjMzI5MTcxNGM3NDhlZmZiMjIzNjIzMiBsZWdhY3ktdHJ1bmsKKzk1NjQgZmNiMmUzZWU4OTk1OTU2YjgwNTc2YjU1ZTkwYTMzOTU3MDk1NzQxNSBsZWdhY3ktdHJ1bmsKKzk1NjUgYWI1MWRhMzQ3MzE2ZDRiZmFiNzRiMDVlMTEzMDQ1MDJkYjc0ZWI2YyBsZWdhY3ktdHJ1bmsKKzk1NjYgYTJlMDU0MDMyODk5YzYyNTg2YzA0MzZhYTlkMmExYzI0MWUxMjAzYSBsZWdhY3ktdHJ1bmsKKzk1NjcgMjliMTY4Njg3NWRhYTUxNTEzYzQxZGI2Mjg1YTIyMzY5OGJjMDZlZiBsZWdhY3ktdHJ1bmsKKzk1NjggOTY0NjBlZjMzZmRlZDdlZDEyZmQ3NWE4YTdiNTU2ZjRlMmZlNjFlMyBsZWdhY3ktdHJ1bmsKKzk1NjkgMmU4YmNkZTRjMjQ4ZmZiZTY5OTY3ZDc3MjM3NDdlYjFjZDg0NmE1MyBsZWdhY3ktdHJ1bmsKKzk1NzAgOGE1NTY0M2U2NjdmYTE3MmRkZDA1ZDI3NjEzZjM5OTJhOTAwM2IyZSBsZWdhY3ktdHJ1bmsKKzk1NzEgYWY4MjZiMjNmMDA2NDMwODM1ZTBhNzJjOWI2MTA5YTI4ZjUzNjJkMiBsZWdhY3ktdHJ1bmsKKzk1NzIgZTU1NDgwOTZiNDJhNWZiOTEyNmU4ZWI2MDY1ZjVlOWI4ZWY1Nzg5NyBsZWdhY3ktdHJ1bmsKKzk1NzMgYmMxOTc2ZmY2ZmZkMzBmYjM1MzQ3NDllODk3ODU5YTI3OTg3Y2FhNCBsZWdhY3ktdHJ1bmsKKzk1NzQgNWJiODg0NTI3NDQ2Zjk2NWQxZTIxOWFhZDYyYmNiNDEwMWMzYWQ0MCBsZWdhY3ktdHJ1bmsKKzk1NzUgMDBhODVhYjAzMzdmN2Y4N2NkZjYyNmQzYmRlZDUwODVjODQ0NWJmMCBsZWdhY3ktdHJ1bmsKKzk1NzYgMTY3NmZhZDdiNjNlNzUyOWQyZjE4YjUxOTllZjVhYjA5MzJiMWQ4YyBsZWdhY3ktdHJ1bmsKKzk1NzcgZjdmNTViYjZhM2IzMDgwZjJlMDhiYjI1MDEzYWJhOTlmM2RjZWQzMSBsZWdhY3ktdHJ1bmsKKzk1NzggODA4NDc5Zjg1YTI5YTNiMTE5ZWFmNWI1ZGNlN2FkOGRhZDllMzIxMSBsZWdhY3ktdHJ1bmsKKzk1NzkgMGRjMmZjYjA3NmFjYTViN2I0YTJmZDE1ZGQwM2M0YzA0NDc4ZTU5NCBsZWdhY3ktdHJ1bmsKKzk1ODAgZWZhYTAxZGVmZmQyZGIwNDIwZTNjOWFiNzhmZjZlNjNkMzY0OTRiMiBsZWdhY3ktdHJ1bmsKKzk1ODEgMmU1YTExNmU1NGVjZDVjY2UxZTQ3MDRjOTdlMzFmZTU4ZjQwNGExNiBsZWdhY3ktdHJ1bmsKKzk1ODIgZTcwNjFhYjI0ODUyMTVlNDRiYjQ3YWJlOTI4ZTYyN2EyOTU2ZjdjYyBsZWdhY3ktdHJ1bmsKKzk1ODMgMjhjN2Q1ZmNkM2FjOWRhMzFmNmE5MWY4YThkMmU3MWMxNjgxMWE2MyBsZWdhY3ktdHJ1bmsKKzk1ODQgMzE3NmRlYWNiNmQxZjBlYWE2NTAxMDY5ZTI5MzZkNzllYWE3Yjg4OSBsZWdhY3ktdHJ1bmsKKzk1ODUgNmM5MDBhZGIxZWMzYjE1YTEwM2MzYzhhMmI2YTY5MThjYzk1ZGI0NCBsZWdhY3ktdHJ1bmsKKzk1ODYgZWQ2MjU0ODA0NTYzNWU1OWJlYWYyN2VlNzY1ZThkZWJlMGFlYjA4YyBsZWdhY3ktdHJ1bmsKKzk1ODcgZjQzNjY3ODY2ZDVlNWU2MjFmYWQ1YTUwNzk3ZTg0MWY4ODRiMTI2OSBsZWdhY3ktdHJ1bmsKKzk1ODggMjgyMjM2OGMyNjZhM2YwOTk2ZDA2ZWJlMGRmOTAwNGY1N2E0OGYxYyBsZWdhY3ktdHJ1bmsKKzk1ODkgZjA2M2YxZWIyOTY0YmM0MzFhNzBjMjIwNmQ4NGRhYjYwOWQ4ODAyOCBsZWdhY3ktdHJ1bmsKKzk1OTAgZWNlNDEyM2UzNmVhMmNjOTliNWRlMzJjOTIxYmU3Yzc1MzExYmM0MSBsZWdhY3ktdHJ1bmsKKzk1OTEgZjVmMzA1ZDdhNjE3NTc0NGUyYzNkYzcxYTRmYWRkZjkwNzI2NjUwNSBsZWdhY3ktdHJ1bmsKKzk1OTIgZmEwOTM3MmY3ODcyZGJhYzQxMWJkNzViMjU3N2MzNjhiOGFmMmFjNiBsZWdhY3ktdHJ1bmsKKzk1OTMgZWE3ZGM1MTBlMmRmNTY5ZTg1YjA3MGNiYjExN2UwNjJjNzZmYzAwMCBsZWdhY3ktdHJ1bmsKKzk1OTQgNDE1MTRkMWVkNjY0ZTJhZmFjMWJkZjVkMzE1YTBlZmZjZGQzYmY4OSBsZWdhY3ktdHJ1bmsKKzk1OTUgNDE5ZGNhMmIzYTYxNzkwYjQzZWM1OWRjMWZhMzFhMWEzZDljZGE1MSBsZWdhY3ktdHJ1bmsKKzk1OTYgZTkxMDhlOTdhNWEwMTdlMDI3ZGYzM2NkYmZhNTU0M2U5MTQ4MjM4ZCBsZWdhY3ktdHJ1bmsKKzk1OTcgNTE2MTg5OTg0YjBjYTM5NGNlMmY0YmZiNWFlYmNiZWM1ODNkY2VkNiBsZWdhY3ktdHJ1bmsKKzk1OTggMGVmZWQ0ZDMzMjNiMTMwMmFjY2EwMzliZDcxNmU1Y2NmOGQyZTM2MyBsZWdhY3ktdHJ1bmsKKzk1OTkgYzg3NDVkMjA1MTIyNzE2YzllMTBkYjc5OWZiNmYxMmY5ZTY4NjQ4NCBsZWdhY3ktdHJ1bmsKKzk2MDAgNDFkNmRiOGUyNmRjMDMzOTNkZjg3YjQ5MjcyYzViMjQ5YmIzMjU2OSBsZWdhY3ktdHJ1bmsKKzk2MDEgNWQ1MTdkZGNiZDJlZjUxOTMzZThmMWZlNGNjMWM1ZDMyMzNlNTAzNyBsZWdhY3ktdHJ1bmsKKzk2MDIgYzAzN2QwMGIxZTJjYmE4OTg1Y2I2MzljMTA2N2IzZjY0NTU3ZjE3MCBsZWdhY3ktdHJ1bmsKKzk2MDMgZGU0YzgxYzA2OTk0MjliZWU0OTdmZDhiMWFkNzQ0ZjhjNjkzZDVmOSBsZWdhY3ktdHJ1bmsKKzk2MDQgZDJjMTEwYWNjNjBjMTY2MjYyOTU1NzBmN2Y2YTU5MzAzZjJjMzk5MCBsZWdhY3ktdHJ1bmsKKzk2MDUgMWM0YmFhZGE1NTllMjMwZDM0MjE2MTZhMmExZjZhOTljOWU3YjZiYSBsZWdhY3ktdHJ1bmsKKzk2MDYgZGU0ZGNhOWU0Nzc4Y2ZlZjk3YTlhOGNmMTc3OWQ3NjkwYWUzNGJiOCBsZWdhY3ktdHJ1bmsKKzk2MDcgOTczMTViZjA4ZmFkNjIzZDYyMDRkMDVlMDdiNzZkMzc2Njk5MDAxZCBsZWdhY3ktdHJ1bmsKKzk2MDggZTRjMzFkYzMwNjIzYzZkOGE4MTYwNzUwODEwODU2ZTNjZmYxNGEyMCBsZWdhY3ktdHJ1bmsKKzk2MDkgZGZkZWFjNWUxOGM2MjVhYWQ5OThhMGFjN2U2MDRiZjVkNWYwNzRlMiBsZWdhY3ktdHJ1bmsKKzk2MTAgOTZmYTY3NTNlOTU2Mjc5YjViNjllNTNjODZmMTYzNGZhNTI4NjQzZCBsZWdhY3ktdHJ1bmsKKzk2MTEgYmE4NDllNDhmOWNhZTIzOGM5MzNhYmFiMmM5NGE5Mzk2ZjBlNWI3MCBsZWdhY3ktdHJ1bmsKKzk2MTIgMzkzOWY5ZmY2NjVmOGZiZWEzNWRjYTU3NzFlOTk2NDMxODVkMDA0OSBsZWdhY3ktdHJ1bmsKKzk2MTMgZWZhMjI0MzNlODU1ZGE0ZjQ1NWIxZTVjMGM1NTM2ODcyNDVmNjdkNSBsZWdhY3ktdHJ1bmsKKzk2MTQgOTNmZmU2NDFhNTEyNzZmZjRkYTE3YzJmNTRhYzlkMWQ4ZDA5MmM4ZSBsZWdhY3ktdHJ1bmsKKzk2MTUgMTZhM2NkZDJmMWQxM2I4MjAwOThmMzBmM2Y1MTRkMTQ0MTcyYzYxOCBsZWdhY3ktdHJ1bmsKKzk2MTYgYmY5MWMwZTE2NWFhZGNmNWVmYjEwNjAxYjAzZWZiN2E2ZDUyNWQzZiBsZWdhY3ktdHJ1bmsKKzk2MTcgZGM4Njg3YjUzZGQwZjE3NjhhMDFiOTY4ZWQ5MjUzODQzYTc0NGFkNyBsZWdhY3ktdHJ1bmsKKzk2MTggZTdiZmVhNDFmNjE3ZTg4ZTg3NTZmYzE1YTQ4NzBmZWUzYTYwMmM1MyBsZWdhY3ktdHJ1bmsKKzk2MTkgYjgxZmI2N2Q5MDhkN2E5NzNjZTEwMjJkNmZmMDM0ZTgwMDk0N2IxYyBsZWdhY3ktdHJ1bmsKKzk2MjAgYWZmMWU3YjFmNTIzZDczMDViYzNlMTFkMzJjYTcwMjU0MTg4NTAwZCBsZWdhY3ktdHJ1bmsKKzk2MjEgM2YwYmU3ZGU3Y2E1Y2E1NGFjZmNhM2UxOTM0YzNkMzE4OTdhMTg0MyBsZWdhY3ktdHJ1bmsKKzk2MjIgNGVmNmE4M2IyZTYyNWUxNjM1OWNlZmExNTg5N2Y4ZWFhMTBhY2ZhNyBsZWdhY3ktdHJ1bmsKKzk2MjMgNjA3NDg0N2ZhZDFkZTQ5NzAyOGVhOTJkNGZkMGVjZjNhOGIyYzY0MiBsZWdhY3ktdHJ1bmsKKzk2MjQgNDllNGUzZjMwZTU4ODAyYmE2ZGFiMGVkMjUzZThmY2MwN2FhYzgzZSBsZWdhY3ktdHJ1bmsKKzk2MjUgNTEyOGM2MDcyYWE1MWJhNzE2YmM3ZmIzYmRkMDAyYTU4OWNkZDg2MCBsZWdhY3ktdHJ1bmsKKzk2MjYgZDQ4Yjk5ZDg1NjE3NDJkNWQ3N2M4NWRmNTU4MTI3ZThkNmJlZDliOCBsZWdhY3ktdHJ1bmsKKzk2MjcgN2VkYzMwZGY3M2Y2YTJjYjIwZTVhY2IyZTZlM2EwYzZjODU4ZTdmZiBsZWdhY3ktdHJ1bmsKKzk2MjggYjg2NDAyOWE1YmM1YzVkMDNhMDEzNTkzZjhjMjUwMzBiMTU2NzMyZCBsZWdhY3ktdHJ1bmsKKzk2MjkgZDMzOTk1NGVhNTdkODk4NzkzMWM0Njc4Y2I5YzE1NDU1NGJlODkwYiBsZWdhY3ktdHJ1bmsKKzk2MzAgZDM5YTgwNTg1MmMyMGFlOWM3ZWY4ZGY3YmJiOGRlZmViYzkyNzE3NyBsZWdhY3ktdHJ1bmsKKzk2MzEgYTc2OTBlZjVlMTU5MzdlMTAyODBlOTUzNGM0ZWYxYTI5YzMxNGMyNCBsZWdhY3ktdHJ1bmsKKzk2MzIgNzQ5MTZjOTZkZGI5NjUxNGY0NTJiZjQ0ZmZhOWEwMzgyMjJlOWZlYSBsZWdhY3ktdHJ1bmsKKzk2MzMgMzBhYjM5YzJiMTg2MmU0ZjBkZWMzYjhkNGVlNmVhYWFkZGI3MDc3MiBsZWdhY3ktdHJ1bmsKKzk2MzQgY2U2YWQxNzBjMGNlNzJlOTA2ZmU5N2IyZmNmZWRjNjlhOTFjOTMxMSBsZWdhY3ktdHJ1bmsKKzk2MzUgYTZmYTlmM2NhZDEzN2NhYTVmN2M1ZTJjNzlhOWI2NGI3YWQxZmFlZCBsZWdhY3ktdHJ1bmsKKzk2MzYgZmI3MWI5MmQxNDNhYTFlMTZiNWIwMjRjYTBhMWMxOGNkOTIxYzkwZCBsZWdhY3ktdHJ1bmsKKzk2MzcgNDlhMjBkMDBlMzRjZTVmNWM2ZGY3NTljMGZiNjE2NTFhNjI5OTQ0ZSBsZWdhY3ktdHJ1bmsKKzk2MzggYTY0YTQyM2Q2YjU0MGFhNjQ0NzExNzZmYzZjZGM2MWYwNzE5NGExYiBsZWdhY3ktdHJ1bmsKKzk2MzkgNWFiNzA4MTgxZmE2MjIzMmYwNjU0NmZhZGZmMmUwMjhhMTFmMmZkMiBsZWdhY3ktdHJ1bmsKKzk2NDAgOGZiNWZkMDc1YjJhYjEzMjAzODRiY2ZhYjAzZjUwZGU3NzI2ODhlOSBsZWdhY3ktdHJ1bmsKKzk2NDEgZTU2NDZlZWNlYWU4ODc5ZmMwYTNkYzUzZGRjNzcwOTUzNTgwM2JiNCBsZWdhY3ktdHJ1bmsKKzk2NDIgYzNiNWIxYzI1YzUxYzdmMTZjYzdhOGJhMDNlYzZiZjc1Zjc3MmVkMyBsZWdhY3ktdHJ1bmsKKzk2NDMgMGQ1YTlhMGU3ZDY0YTEyZTAyYmU3MDczNTcyNTgyZDNkZDJiNjYzYiBsZWdhY3ktdHJ1bmsKKzk2NDQgNjZjYjAwMzE3YWNlYmI2ZjU4MDMxOWEwZjNmZjU4MGIzZGY2MWQ3ZSBsZWdhY3ktdHJ1bmsKKzk2NDUgZTU4YzdiNTBlOWI5YzZiOTZkODkzM2M1ZjNkMjc2YjU2OTI1OGVkMCBsZWdhY3ktdHJ1bmsKKzk2NDYgMjEyNTk3YWY4MjliYmNhYmMxNzk3N2RjNTgzZThkMmI4NDUxZTUzMiBsZWdhY3ktdHJ1bmsKKzk2NDcgMzczZDc4MTE4MTEzYjhjZjRmODkwODY2MmUzMDNkYjU3N2YyZGMwNiBsZWdhY3ktdHJ1bmsKKzk2NDggYzVlNzY3ZTIyYmQxYzNlNjVkMzZiNjIzZmE4OWU0OTFjZDU4OGFlZSBsZWdhY3ktdHJ1bmsKKzk2NDkgY2U0NzY2ZmIzZjU2M2QxNzYzOGM5MWExYzQyNGIyNTU2YmI2NjU5MiBsZWdhY3ktdHJ1bmsKKzk2NTAgYjViMGMzMjRjZTU5ODc4ZmNhZWVhYTE1M2VmYTFkMDhiN2MzN2IwMCBsZWdhY3ktdHJ1bmsKKzk2NTEgMGE0ZTI5YTI4NjU1ZTQwNDMwZWNmMjRhODM5YTcxOGRkMmY3YTcyZiBsZWdhY3ktdHJ1bmsKKzk2NTIgZGM5YmI0N2IzNTUyOGQ3ZGYyNjdjY2EzZDYwMWY2MTMwNDNjZjQ1MSBsZWdhY3ktdHJ1bmsKKzk2NTMgYTI4YmY2MmFjMzM1YjVmMzA2YTNlZTU3ZWM5MmRhMjE3ZjhhNjFiMiBsZWdhY3ktdHJ1bmsKKzk2NTQgMGJkMTg1YzJlNTgxMDNlMWU4MGQwOTNmYzM4OGUyMmQ3MzRhZDdhMyBsZWdhY3ktdHJ1bmsKKzk2NTUgN2MwMDRmYzEwOTg3MzdhY2YwMTU5NDJlODdiYzY2NjNhZmZkODE0ZSBsZWdhY3ktdHJ1bmsKKzk2NTYgNDA5ODdiODZhMWM3NGZiODVjOTZmZDc5NzJlMzQ2YTA3YWNlNTU5MCBsZWdhY3ktdHJ1bmsKKzk2NTcgN2Q2MWZhOWI1N2E4YzU0MmE5NTZhZmFiMmExYjMwYzNiMzljZDJjMiBsZWdhY3ktdHJ1bmsKKzk2NTggM2E5NjBiMmUyNjY3N2MxYmM1YmU0YjRhNTE4OWIwZGQxNmVkOWVkMiBsZWdhY3ktdHJ1bmsKKzk2NTkgNGYxMGQyMzNmMWRjNmQzZDBiNDE2YmY5YWJjNjdhMTQ2NzMxNmQ3NiBsZWdhY3ktdHJ1bmsKKzk2NjAgNTkzNjJlYTdlMGY4YjQxMDY0ZDE5NTAwOWZiZWI5ZmQyNjcwNzU2OSBsZWdhY3ktdHJ1bmsKKzk2NjEgZGU1Y2I3ODllOWYwZjJmODdiOTkxYTdiZDhhZTk3NTdjOTg2OWNiNSBsZWdhY3ktdHJ1bmsKKzk2NjIgNmY3ODE5NWJmOGY2ODdmNzBlYzU4NjhhOWRmNjIxMWRhOWQzYTYyMSBsZWdhY3ktdHJ1bmsKKzk2NjMgYTU5NmJiZTcyNTc5ZDhiNWUzNGNmNDEzMTc5ZjM2ZjlmZjVkNzg0OSBsZWdhY3ktdHJ1bmsKKzk2NjQgNmU1ZWI4NDUyNDZjMDliZDliNDU0M2RmMGQ2MTU3NjRlYWNkYTc1YyBsZWdhY3ktdHJ1bmsKKzk2NjUgMmE5YmE1OWFiYzM4MmI3OWYxODI4ZDg0MzUzMjY1YTBmMDU1NGFjYSBsZWdhY3ktdHJ1bmsKKzk2NjYgZWU0YTFhMzBkN2NlOTI3YTc5NmE0NjMxZmFiNWJiMzc0N2U0ZTNjYSBsZWdhY3ktdHJ1bmsKKzk2NjcgZjNjYzhkNTNhYzgwM2RmMmFhMzBkMWIxZDM3NjdiMDg1N2ZkYzhjNCBsZWdhY3ktdHJ1bmsKKzk2NjggMWY5ZDk0MmYxNTZjYzkzMmZkZWY5MTMzNDU1YjJmODA0ZDBkMWZjMCBsZWdhY3ktdHJ1bmsKKzk2NjkgNzA1NGJlNWFkN2Y2NzQxYWY5YmIwNjU0N2YzOTlmZGM2OWY0ZGE0MSBsZWdhY3ktdHJ1bmsKKzk2NzAgYWY5OGI0MjE0MjRjYzM5YjhjNmE4Yjc0YWM2ZjZlOTRkZTQ2ZDlkMSBsZWdhY3ktdHJ1bmsKKzk2NzEgZTI3OTU3MmUyZGEyNTUxNjY3MTgyZWRhMjZhN2ZlNTA3M2Y4NTZiMiBsZWdhY3ktdHJ1bmsKKzk2NzIgYjAwOWE0YzI0MTg4ZDUyODNmYmViMDJjMzM1MzZhZDVmOGMzYWRjNSBsZWdhY3ktdHJ1bmsKKzk2NzMgYzEyM2E1YTU5Y2RlMjFkMGMxMjhhYTNkYTJlZGU5YTQwNjZmYTI3ZiBsZWdhY3ktdHJ1bmsKKzk2NzQgMzA5ZmZmZTc2OGE2MjQyMTg1NTI5MDA1MDdkNmQ3ZTQ1NmNmNzE2MyBsZWdhY3ktdHJ1bmsKKzk2NzUgMjZkMDc3MzViYTRhNWIyNjdhYmZjODcwZTYzZGY2ODk5ZmM1MWFhYSBsZWdhY3ktdHJ1bmsKKzk2NzYgNWNkMmY2OTliZjY5MTY2YWQ3YTVkNTlmMWVhNjVmYjUxOWJjN2Q2OCBsZWdhY3ktdHJ1bmsKKzk2NzcgZGIwMDdhMmNhN2I2MzY3NzM1MjFiNWJlZTNkZDcyOTJlNTRhOWVkNCBsZWdhY3ktdHJ1bmsKKzk2NzggOThhOWRhNTIwZjFkOGMxOWFiNWJkNGUyMDMzMjdmNGU4Y2NjNTIxMyBsZWdhY3ktdHJ1bmsKKzk2NzkgNzIwZTkxODM5NjFlZThhZGQ3NDAxMzIzYjljNWMwMTUzZGRmNTQ0OSBsZWdhY3ktdHJ1bmsKKzk2ODAgZmVkM2QyMDBmYjU2NWQyYWNlODAxYmM2MTEzNmE4YjM3ZmNiYzgxZSBsZWdhY3ktdHJ1bmsKKzk2ODEgOGMxMjlhNTY3ODY3Nzk1MmEzMDI4YzlhMGNkMGI4YTRiOWQ5YmU3ZSBsZWdhY3ktdHJ1bmsKKzk2ODIgNDhhYjY2ODc0YjExOTFjZGQ0NDNhMGUzMTMwZjAzOTlhZDA5ZTkyMiBsZWdhY3ktdHJ1bmsKKzk2ODMgMDlmZmFiMjczZWViNTY1YTc2MTk1OTRkOTA1OTY4NTJmZjRkOGUxZSBsZWdhY3ktdHJ1bmsKKzk2ODQgM2YyNTVhZWRmNjIxZTk1ZTI2NzI5ZjNmYmQwOTAyNGRiNzRhMjRhMSBsZWdhY3ktdHJ1bmsKKzk2ODUgMDZkYjEwYzc2ZGM5NTJlM2ZhMDE5NGQ4M2I0MGM0NzM5NzZiY2RiOSBsZWdhY3ktdHJ1bmsKKzk2ODYgY2UyNzFlNWY5YmM1YWM4OTdjMGI5YTRkODJjM2RhNzBlNTg2MTZiNSBsZWdhY3ktdHJ1bmsKKzk2ODcgYzlmZTM1YTgyOThhZDg1OTZhNjMxMWE3MGRhMjlkZGViNjdiYjMzYSBsZWdhY3ktdHJ1bmsKKzk2ODggYmNjZGVjYTgxNjY5Y2UzYmQzMDE0YTMwMzEwY2Y3MWY1MmZhNTIwZSBsZWdhY3ktdHJ1bmsKKzk2ODkgYzc2NDIxN2FlNmViOTJkMzFkOTAwNWNmN2ViMjljOGFjNWMzMTcxNCBsZWdhY3ktdHJ1bmsKKzk2OTAgYjliYmZhMTY5OTIwZTQ1NWIxMjcxM2Q4MzJhODg3ZDlmOTIxYjMwMCBsZWdhY3ktdHJ1bmsKKzk2OTEgZmY1MjRiNjliNjY0YTNmYzY1MWY5ZmU5MzdlODg3NDk5MGI1Y2FiNCBsZWdhY3ktdHJ1bmsKKzk2OTIgNjIyMmQzMzcxZmI4MGViODQwZWU1MmQ4MTIzNmMxZjNiODk2OTc5YSBsZWdhY3ktdHJ1bmsKKzk2OTMgNWE3ZjI2OGEwNzgxYTk0YWRjNWM5ZDc1MzVkOGIxOWVlOGM0NmNlOSBsZWdhY3ktdHJ1bmsKKzk2OTQgMTZlY2YxNTU0YTgzNTc5MzgwZTczNzZlZWViZjExZmQzMTk1ZjEyZCBsZWdhY3ktdHJ1bmsKKzk2OTUgYmMwMDg2NDA0YTlhNTUyOTIxYmMzMmFhMTE4MmJlZTM1YmYwY2I4OSBsZWdhY3ktdHJ1bmsKKzk2OTYgOTBhMzVmMWI5MDA4NWZhMTlmMzQwODQ0ZTEwNTI2YTZmYWMyMzkwNCBsZWdhY3ktdHJ1bmsKKzk2OTcgNjQwYjk3ZDEwNWRmNzExNTJmOTczMmFkNTMzZGZiZDM1M2VkMzM1ZiBsZWdhY3ktdHJ1bmsKKzk2OTggZDBjYTgxNWM4MDcyNTQ4MTNlMjNjODhjOWRjZDAyZmMxYWIxYzk4NyBsZWdhY3ktdHJ1bmsKKzk2OTkgOTVjMTAxOTY0NDE0OTg1NzMwYTg5MWZkMzA2OTk2YmNiMGI0YTYxOSBsZWdhY3ktdHJ1bmsKKzk3MDAgMTBmZGYxNmY0ZGU5YzFmOTRmNmI4NTIzOGJjNjQwYjBjMzU0MTU5NSBsZWdhY3ktdHJ1bmsKKzk3MDEgOWRkZTA3YTU5M2Q4M2ZjMjMyYzcwZGIwMTI5MTMzMzAyYzI3YTZiNSBsZWdhY3ktdHJ1bmsKKzk3MDIgZDMzZDQ1NjIyZTY3MTFkOGIxYzk3OWNkNTAwZmFhMzcyNzA1MDhkZCBsZWdhY3ktdHJ1bmsKKzk3MDMgMTFmMzRiZTBiZTExZmY0Mjc3ZDUwYTJhNDc5ZjY5ZDQ3OWEwNGEzYyBsZWdhY3ktdHJ1bmsKKzk3MDQgNDc4MDJlMmY1YmVkYjRmMjJiYmM1NGQzMTZmODExOGNmMDM4MWJkMCBsZWdhY3ktdHJ1bmsKKzk3MDUgMDQ1ZmZhNGM1NmY3ODU2YTIzNGE5NTk0ZGRkZDc2ZTUwMjZiMWNmYyBsZWdhY3ktdHJ1bmsKKzk3MDYgYmM2NDgyZjdlNzhmYTM0NjZiOGI5NDFlYzkxYjk3YWQ5ZGQwYWU0MCBsZWdhY3ktdHJ1bmsKKzk3MDcgYmMyOGEwZWE2NjQwZjc3YjRiZGI0MDg0ZjI2MDYwZjQ5ZWJhNDg4YSBsZWdhY3ktdHJ1bmsKKzk3MDggMzc1NzIzYTc1NTljNzE1ZTA5NGJlYmMyNTNmMTViZjAxZTg4NTEyZiBsZWdhY3ktdHJ1bmsKKzk3MDkgMTc3YWQ3M2JmMWE5MjVmMDA5MzM1ZDdkN2ZkZTFhOGQ5MjI1MGJiNCBsZWdhY3ktdHJ1bmsKKzk3MTAgNzRjNTcyODhhMDJiOTk2N2JhNjQ4ZjRjYjVmYmUzM2IzM2Q0YzI5OSBsZWdhY3ktdHJ1bmsKKzk3MTEgMDhjNWJiZmFlNTJjMGRmZTA2M2VmZTgwMjMxZTczNmIwMDY2NjY5MiBsZWdhY3ktdHJ1bmsKKzk3MTIgMjNjNTA5YWEzZjBkOTQ3M2NlNTJhMTVhNzYwMDI0NzA2Yzc3Njc3NiBsZWdhY3ktdHJ1bmsKKzk3MTMgZGViZThlMDgxMjYwODVmNDAwYjNkYTYzYjBkMjNkNzY0MjRkY2U2ZCBsZWdhY3ktdHJ1bmsKKzk3MTQgZmQ3YTU5OTNkMDZkYWEyODQ4ZmMxMGMxN2IyZGE3MTU4MWI0OGIxNyBsZWdhY3ktdHJ1bmsKKzk3MTUgY2RiNGE4MTM3OWFkN2U1OTczZjE1YmVlNTliMTZmNTZlNDI2NDBiYSBsZWdhY3ktdHJ1bmsKKzk3MTYgYWE1NGQ3YzNkYWY5MDE2N2E5NWZhNmJkYjQzZmY3M2Q4NzNiYTQ3ZCBsZWdhY3ktdHJ1bmsKKzk3MTcgMzA2ZjczN2JhYjU3NmE4Mzg5MzJiNTk4NGE0NjZkY2Y3NjVkNTZmYyBsZWdhY3ktdHJ1bmsKKzk3MTggMmI4MjIzMWE5N2NjNmFiZjc2NWQ4M2E0YTIwOTZkYWIxMTNmNDExNyBsZWdhY3ktdHJ1bmsKKzk3MTkgYjU5ODU1NDJiYWUxZTY5ZjY1M2E0Nzc3MDFmYjY3ZGEwZjFiZWU4NiBsZWdhY3ktdHJ1bmsKKzk3MjAgZTc1MDA2MDY5MzY3ZmM2ZjExNTMwZDZlY2I1ZGRlOWRhNWZlZGQ4MCBsZWdhY3ktdHJ1bmsKKzk3MjEgNWY1YjllODcxODg2Y2Q4YjllYzQxNTE5ZTZlMjUzMDRjZTE1OTU0OSBsZWdhY3ktdHJ1bmsKKzk3MjIgMGI1M2MwMzkzYzg4MjYzZDdlNDFiOGYxOWEzYmIxZGIyZmQ0Yjk3OSBsZWdhY3ktdHJ1bmsKKzk3MjMgYTcxMTY4NjQ5ZGM1MWVmODNiMzU1ZjI2ZDk5MjdlYjg3ZDRjM2RmOCBsZWdhY3ktdHJ1bmsKKzk3MjQgMTkzZDcwNGNiY2M4NTFhZTczOGMxZmI4YTE1YTQ0Y2MyYzBjZWNlNSBsZWdhY3ktdHJ1bmsKKzk3MjUgMTI3MmI1OGU4NGFlYjZjMmRmN2EzOWMwZjI3YmQwMGJhZmFmOTQ2NCBsZWdhY3ktdHJ1bmsKKzk3MjYgMjg3NjIzY2NlMjg5NDUzZTI2Y2M4OWJkYzllYTlhY2I0MzY5NzUwMyBsZWdhY3ktdHJ1bmsKKzk3MjcgZjBiYjNiY2YzOTdiMjU0OTZjMGQ3YmU0YzlmMTgwYTRkYzRhMzFjOCBsZWdhY3ktdHJ1bmsKKzk3MjggYzY5ODY5MGEyN2IyNTkxMzQwMDUxYzBjYzNjMGI4ODc2MjY1OTQwZiBsZWdhY3ktdHJ1bmsKKzk3MjkgOGEwODAyNWVmOTNkOGY5NTQzNjY5ZmY3ZTM2MGNjYTE5ODkyODFkYyBsZWdhY3ktdHJ1bmsKKzk3MzAgZDNmZDIxODJjZmI4ZWQwMmQ0MjQwMTZiNGU2YjhjOTlkMWIzNjE3MCBsZWdhY3ktdHJ1bmsKKzk3MzEgNGU3NDAyYzhlNDYwYmZiZjhhM2IzOGIxMWY3NDdlMmVkMjlmMTBiOCBsZWdhY3ktdHJ1bmsKKzk3MzIgODEyNjE1ZTU0NTUwZTY5YWRhZDcwYzFmMzg2OWIyZGJkOTg4OGIzYyBsZWdhY3ktdHJ1bmsKKzk3MzMgY2E3OGIwOTVlY2YwMTQ2M2UzZTY5NTc1Y2FiOTFkOGFjMTJmOGFjZiBsZWdhY3ktdHJ1bmsKKzk3MzQgOGM3NDlkZmM0OWJmYTM4ZWQ2ZGYwMmI2NGNiODdlNGRhZjJhYjZjZSBsZWdhY3ktdHJ1bmsKKzk3MzUgOGIwZDZiNjRhMGVhMzljZTMzZTk2ZWQ5NWNiMjZiYzBhNWFhOWY3NCBsZWdhY3ktdHJ1bmsKKzk3MzYgNjE0ZDhhOTA4NGVhZDQ3NTgwMGQxZjNkOWQ5YmY0NDc3M2U3MGJiYyBsZWdhY3ktdHJ1bmsKKzk3MzcgN2NkYWE0NDk1NTMwNzkzYmFlY2U3MGUzZTdiMzZmNzkzN2IzNGRkNCBsZWdhY3ktdHJ1bmsKKzk3MzggYTdlOTUyNGEyYTUyYzY0YWEyODYzZTA2NTFlM2U4ZGI3NjVlYmY2MCBsZWdhY3ktdHJ1bmsKKzk3MzkgYmJmMzUwN2VmM2ZlZjI4NDBhMWQ1MjRlMGE5NmI0MjNmOTAyMTQxMyBsZWdhY3ktdHJ1bmsKKzk3NDAgYzA5OTA3MTA0MDkyYTU5MjUwZjdhN2Y1YzcyYWFiYjkwYzRkMjBmNSBsZWdhY3ktdHJ1bmsKKzk3NDEgNDFhOTI4Y2JjYzVlZWI4ZTBhNmI4ODc4MzcxNzMwMjZkMDNkMDZiZiBsZWdhY3ktdHJ1bmsKKzk3NDIgYjhkNDg0MTI1YzkyZGQ2MjUwZTQ4ZmE3Mzk4ZTljM2ZiMDExNDhiMSBsZWdhY3ktdHJ1bmsKKzk3NDMgYzAwMmZmZDFmYmJmZTdiYTRjYWVmYzA1NWQ0ZmEwMjc0YWFjMDRjYiBsZWdhY3ktdHJ1bmsKKzk3NDQgODNjMGU5ZGQ0MjIxZjg2YWU3M2I0NmQyMjg3YWMzYWIyYmViNzRkYSBsZWdhY3ktdHJ1bmsKKzk3NDUgY2ExNGZkYjk1NWVmODI3YmI0N2M2OGY1MGZlOTQxOWFmNWQ5NzFhNSBsZWdhY3ktdHJ1bmsKKzk3NDYgYTJmNGM5NDRjYjg3MjFiZmM2NmViMmY5ZDY3YzViYjM4Nzk5ZWVjYyBsZWdhY3ktdHJ1bmsKKzk3NDcgNjgyZDNlNWIyNjdmNDcwYjNjMTAxNGIzMDI1MzUyYzRkOGIzZGVkMSBsZWdhY3ktdHJ1bmsKKzk3NDggZjU1OTY5YzFjM2Q1NDE5Njk4MmQ5Y2EyZmZlYmM0NzFmMzU3ZTlkMiBsZWdhY3ktdHJ1bmsKKzk3NDkgMDA2MWQzOTE2YWU0YjE1ZTllMDYxOWFmNzM0ODE1NWVlMmVkZjg3NiBsZWdhY3ktdHJ1bmsKKzk3NTAgYzgxN2Y4NmNlN2RiNjcxOTNhNzQ3NGM0MmE0OGM1ZGJkNGI3NGRhZCBsZWdhY3ktdHJ1bmsKKzk3NTEgMTViYTY4YzMzZWQxY2VkYTMwMzI0MjAzZmFlNjlmNWUxYzdiNTk5OSBsZWdhY3ktdHJ1bmsKKzk3NTIgZjVlYTFiMzBjYjNmNzQ5ZTViOThkMzAwMGQzM2Q0Yjk0YWNmOWMxNSBsZWdhY3ktdHJ1bmsKKzk3NTMgMDBjZDlmZTRmNmYyYjA4OWRiNWI0NWRhMTRmZDkxM2YzZjFiYjhjMiBsZWdhY3ktdHJ1bmsKKzk3NTQgMzlkZTQ5NDM0ZGY0MjYxMWM0N2I2OWFmNjg5MjQzMTI2NmY0ODNkZCBsZWdhY3ktdHJ1bmsKKzk3NTUgYmY0ZTc5MGJkNjFhNGI5YjEzOTU1ODE4NTE0NzA5M2M1MTFhYTE3NyBsZWdhY3ktdHJ1bmsKKzk3NTYgNTlkMjc2MWJhMWNmY2FhMGMyZjA0OGE0MDFhZTMxMWE3MTNiOGQ3OCBsZWdhY3ktdHJ1bmsKKzk3NTcgNTJmYmI3MzEyMTAzNDViMDEzNTRlNjQwYjQ0NzA1Y2EyYTcxZTc4MyBsZWdhY3ktdHJ1bmsKKzk3NTggZjIxNGVlODgzOGRlNjgyNmYzNjBjNDFkNzBiODkwM2Y2YWYwMWM2MSBsZWdhY3ktdHJ1bmsKKzk3NTkgMWZkNzg3Mzg3OWFmODJjOWI5MzhiNTVkYWYzYmMxZDdlYzBiMTBkZSBsZWdhY3ktdHJ1bmsKKzk3NjAgNmQwYzQ4NWJhNWU0MTkzYzI2YjM0NDMzNWIyZjYyOTlhZTFjMzI4NCBsZWdhY3ktdHJ1bmsKKzk3NjEgM2EzZWUwNzVkZmI2OTgxZGM2OTQ1ZjEwZTk5MjU1ZDYzNmU1MjZjMCBsZWdhY3ktdHJ1bmsKKzk3NjIgMmYwY2U0ZmI4MTBiYTMwMWJkZTJkMWY1ZTZhOGJmMmMzYWZiYzVjNSBsZWdhY3ktdHJ1bmsKKzk3NjMgZWYyNjlhYjc3MGJjYzViZTZlYjJhNmM0Nzc2MTRmNTgwODVjYmY5NCBsZWdhY3ktdHJ1bmsKKzk3NjQgMWQ1MTE3OWNmN2M3ZmU0NTQ5NjI0ZTg5NmJiYjgxOTZjMGRkOGM4NyBsZWdhY3ktdHJ1bmsKKzk3NjUgYWYyYmM1ZjQ1OTE4YTcwMTIwODhiZTU1N2RhMWM5MmQwYjQwOWRiNyBsZWdhY3ktdHJ1bmsKKzk3NjYgNDE0OGU0YmM4YjI4NWY5YjEwZDljNTQ0NTljYjFlY2JlNjAwOGUzYyBsZWdhY3ktdHJ1bmsKKzk3NjcgNmZlZjAzMGE5NWQ0OWM2NTk0MmUxOGNjZTc5MDVlODI5NmRkNzUxOSBsZWdhY3ktdHJ1bmsKKzk3NjggNzJkNTMxZDU0NTcyOWIwMDM2ODkwMjU5ZmY2MDcxNWExYmYwZmYyYSBsZWdhY3ktdHJ1bmsKKzk3NjkgYjdmODRkMTc5ZTUxYTAzZDVmNWIxZDYyMjlmNGYxNzhlMmEyZjViNSBsZWdhY3ktdHJ1bmsKKzk3NzAgNmFkMjM0YWQ4ZGU1YzZkNTlmNmY3MDUzNGQ4Y2IwY2E0NzY0YTI4OSBsZWdhY3ktdHJ1bmsKKzk3NzEgMGRiZWM5OGFjZmM5Njc0NjQ5YTdhNWNmMTZhZDFmZWU4ZWEyMzU5NyBsZWdhY3ktdHJ1bmsKKzk3NzIgOGU2NGM1ZDU1NDhhMmE0MGI0NTVjYWExNzU0OWIyNmExYzJjZDlkZSBsZWdhY3ktdHJ1bmsKKzk3NzMgMjg1NDQ5MjY4YzM3ZjA4ZmIwYjhjMTllYTA0ZGY0NjAyZWZiODdkYiBsZWdhY3ktdHJ1bmsKKzk3NzQgYjAyNDk5MGQ2MWVjOGUyM2Q2ZGE4NjVjNTkzNjVmMzYxNTdkZWYxYSBsZWdhY3ktdHJ1bmsKKzk3NzUgZmIwYzViMzA3NDc2ZGVhYjIxZjg1OTI4NDY0MzY5YjBkZmM4ZDJhZSBsZWdhY3ktdHJ1bmsKKzk3NzYgMzcwMzQ5NTMxNWU5YTY0MzMyOTE5NGUxYmI1MzQxZmEwMjE5YzIxYSBsZWdhY3ktdHJ1bmsKKzk3NzcgMDhmOWI5MDE2NjliYTFjYTJjZmZkNDYxMTBlYWVjZjg1NDJhZmI0MyBsZWdhY3ktdHJ1bmsKKzk3NzggNDQxYWU0ZjRjZmNmOTE1ZjNjYTc3MDhmMjkzZGFmMjRkODEwZWExZiBsZWdhY3ktdHJ1bmsKKzk3NzkgNGY4NDIwMmMzNzdhY2QxZTg1OGE0YjJiNDgzMmY5YmE3MzNjZjg3MiBsZWdhY3ktdHJ1bmsKKzk3ODAgNjQwZjJlZjRkYTIxMjRlNTNiY2NiZGNiOTcyYWZhYTY3ODYxMDU4NiBsZWdhY3ktdHJ1bmsKKzk3ODEgNjU4Yjc0MmU0MzUwMzVjYzY4OWUxZmI4NjA4MDY4NzM5MmU4OWM4MiBsZWdhY3ktdHJ1bmsKKzk3ODIgMjZhOGU5ZThjYjg0MTFkNjhhMTM3YThhNDM5ZDZjNTY4MzBhNzVlMCBsZWdhY3ktdHJ1bmsKKzk3ODMgMDY3ZTQ4MTNjNmQ2N2EwODBjZGExN2FmNzkxYTU1MjY4ZWMxZmUyNyBsZWdhY3ktdHJ1bmsKKzk3ODQgZjg5ZTljZGRjMDk2MTMwNTU3ZTZkOWU3ZjQyYzBmNTFmNzlkNzMxYSBsZWdhY3ktdHJ1bmsKKzk3ODUgYzk4ZmVmOTIyZDUxNDY4Y2YyMDQ5NTA4MGRhMGNkODUzYWEyZjJiYiBsZWdhY3ktdHJ1bmsKKzk3ODYgODA5NmZlYzcyMmJhNzk2YWYzN2EyOTdjZWYxNDYzOTZmZjM3ODRjMCBsZWdhY3ktdHJ1bmsKKzk3ODcgZDcyNjYzNzJkZDM3MWM5ZDFhNzIzOGQ2MTNjMmI5NGY2ZjNlYjhkYSBsZWdhY3ktdHJ1bmsKKzk3ODggNjA5NWE0NzJmNTc0NWMzYWNhNzQxOTU5NWI3MTk2NTM1YjYzMzE5NCBsZWdhY3ktdHJ1bmsKKzk3ODkgZGY3NjRlNDJiMjU4ZjU3N2VkNTNhZWIxY2ZhNjMzYjE1YWJmZWUyNCBsZWdhY3ktdHJ1bmsKKzk3OTAgNDhkZjIwODBkN2Q0ODI5YzEyOThhOGMxYWRhMzE2MGNlMjAwOWVkYyBsZWdhY3ktdHJ1bmsKKzk3OTEgNWFlODdhN2Y5YTMyM2ZkNjUyYjI5YmRiOTE0MTExYTNkNjgxMmE0YiBsZWdhY3ktdHJ1bmsKKzk3OTIgZDIzYmI5NjllNjNhMDM3M2M2ZmQyY2JkNDNlYTBmYzNjYTk3NjRlZCBsZWdhY3ktdHJ1bmsKKzk3OTMgM2E1NWZiYjk5ZjIwNDc3ZDQwYjRlN2JiZDM1MDYxZWI5MWQwMjQ5YSBsZWdhY3ktdHJ1bmsKKzk3OTQgZjZjNmQ0ZDk3ZGM2NTFhNTMxMGY3NDMzMTU1N2IyMGQxZThlMGYxNSBsZWdhY3ktdHJ1bmsKKzk3OTUgOTI3ODQ4MjQ4MDBjM2RkMzczZDE0ZTU5NjVlNDUyN2E3YzVkNTFmOCBsZWdhY3ktdHJ1bmsKKzk3OTYgODMwMDA5YjU3M2VhMDk0Yjc0ZmI0NGQwMzJkMmYxNzYyMmQwMjY3NiBsZWdhY3ktdHJ1bmsKKzk3OTcgMDk4OTJiZjZhNTBkZmYxNTc3MjQ0MGNlZDk4Mzk4MzU4NGM4NTg3OSBsZWdhY3ktdHJ1bmsKKzk3OTggMTkyOGYwNWJhNDAwY2EyZWI2MzNlNjNjMzRmODZjM2U1NzcxYjc4MyBsZWdhY3ktdHJ1bmsKKzk3OTkgOThlZmQ1ZDkxZmNhNGZmZGQ2YTVlODA3M2Y3MDg2YjMxZTJlZTllYiBsZWdhY3ktdHJ1bmsKKzk4MDAgNzI0ZjgwNzI2MDU1MGRlODJhZWE2MDRlNWFjY2Q1N2YyZDgyYmFkYSBsZWdhY3ktdHJ1bmsKKzk4MDEgNDdlY2YwMmFhZjk3YjE0ZTFjMWM4NjFiMzc0NjJmZWFhNzdmZjFiNiBsZWdhY3ktdHJ1bmsKKzk4MDIgNTUxMjViMTE0NGZhM2E2YTVlMTY5MWEyODNkNWI4MWFkOTM0ZWJjOSBsZWdhY3ktdHJ1bmsKKzk4MDMgNmUwMGZiNzIzZjY5ZGJkZDYzZTJlODY3NDUzZDE1OTJhMWVmZjQ2NyBsZWdhY3ktdHJ1bmsKKzk4MDQgZmVjOGUwODRiMDc0ZjU3MDI3YWUzZTM2M2Y3NTM4NGNlNzRjMTU3YSBsZWdhY3ktdHJ1bmsKKzk4MDUgNDViNjZlOWFiNWVmYTAwODFiZTM5NWRiMTkxMmU1NWE0YmNjOGQ0ZCBsZWdhY3ktdHJ1bmsKKzk4MDYgYzJhMDg2OTg1MmViODQ1Yjk4YTlmZDY3NTAxYTI4MjQ2NWY0MjViMyBsZWdhY3ktdHJ1bmsKKzk4MDcgZTRjNzRmN2YzZTQ2NTk0YTRkYjhlMTg0ODM2NDgyZGM1NjhjZDZhYiBsZWdhY3ktdHJ1bmsKKzk4MDggOWFlMjE1Y2EyMGRiNGI4Nzc0NzgxNDRlZDg4OGYyNzMzMWU2ZjhlMCBsZWdhY3ktdHJ1bmsKKzk4MDkgODNhMzBhMzU4M2QzZjM2YTM5NGI3ZGJiYjZmMmJhNGFjZjI0NmVjNiBsZWdhY3ktdHJ1bmsKKzk4MTAgMjUyNTM5ODcxODczYzIxYWEwNTk1NzFmMjEwYmFhYzkwOTYxMTBhNCBsZWdhY3ktdHJ1bmsKKzk4MTEgNmU5Njg4Y2U3YzU3NjEwMjc5ZmM5ZDBlZDgyZmI3ZjNjOTZkNGFlNCBsZWdhY3ktdHJ1bmsKKzk4MTIgMzk2NWI2OWQ1MTE2ZTU5OTBmYzQ2M2ZiMDZjYzBmZTM4MmY2Y2ViOSBsZWdhY3ktdHJ1bmsKKzk4MTMgYzM3YTI4YTNiYjg1YjI2N2E4NDU0M2IwZGEwNGJjN2U2YTg1NmEyZCBsZWdhY3ktdHJ1bmsKKzk4MTQgZTE0OGNlMThjM2NlNGIzYzlkY2U0MTVjNzEzNDU3NzVlYTkxYjllOSBsZWdhY3ktdHJ1bmsKKzk4MTUgMTI5MzljOGI0ZTMwYTU0NGRkOWVmNWM3Nzk5NjU2YWFmYzMxM2E2ZSBsZWdhY3ktdHJ1bmsKKzk4MTYgZjkwNDg2MDA5MDVlOGNkNDM0OGM1M2UxYWJlM2M5OTRiZGQ0M2M0NCBsZWdhY3ktdHJ1bmsKKzk4MTcgZThiOGJhMTY5YjZkZDBlNmE1MzkxZjQxM2M1ZjNjYjU0Nzc5YjBiMSBsZWdhY3ktdHJ1bmsKKzk4MTggNmRjY2FlNzViMjZmNmIyYTBjNjM1YzFmNjlhMjg0ZjZhYzUxNDdhNiBsZWdhY3ktdHJ1bmsKKzk4MTkgMDA2OWYzZWJhOWEyNTAyYzlmYzE2Y2FlNGE0MGFkZmNmNzRjMjQwOSBsZWdhY3ktdHJ1bmsKKzk4MjAgOWY3NGY5MjIzYjQzNTU3ODA3NTQ0MmIwM2M1OTk4ZDFlNGE2YWNjNiBsZWdhY3ktdHJ1bmsKKzk4MjEgNGZmY2JjYzVlOGZlMzkzMzM2OWEyMzZkN2MwYjI1MDllYzViODUzOSBsZWdhY3ktdHJ1bmsKKzk4MjIgYmJhMmIyMDVmOGVkZDQ5ZmY0YWRlNmQ3M2I2ZDAzNGM5ODRjYmY3OCBsZWdhY3ktdHJ1bmsKKzk4MjMgMDgwOTY5ZGJmYzdjNTE4OTA1ZjA3MGMwZDJjYmU2OTdiODNkOTcxYiBsZWdhY3ktdHJ1bmsKKzk4MjQgNWE5MjU2YjhjMzM4MmEzZWI4ODNiZTlhMjg0ZGUzNTVlMjYxMDg0ZCBsZWdhY3ktdHJ1bmsKKzk4MjUgZDc2YTRlZmExZjUxZGY5NDUwNjQzODdiOWZlODYxYTVlY2FjZjMxOSBsZWdhY3ktdHJ1bmsKKzk4MjYgN2JhOWNmNGUwYzQwNDA0ZGNhMzIyMzE4MGFmMjlhMTJkNDEyMTlmMCBsZWdhY3ktdHJ1bmsKKzk4MjcgMmJkNWZiZDYwODcwOTlhODU0Y2M0OWJhOTkzYmRiYjdhYzdhNjg1YiBsZWdhY3ktdHJ1bmsKKzk4MjggNGZmNWMxNDk4ZGM4ZGI5YzZmOGZkODEwZDZhMWJmYzk5MDVhZGI1ZSBsZWdhY3ktdHJ1bmsKKzk4MjkgMWJhY2E1ZDJiYTU3YTRlNWIwY2IyYzZhNzlhOGE4ZDgyNjZhYTE5MCBsZWdhY3ktdHJ1bmsKKzk4MzAgMGQzMWM3ZDk2OTdkN2M1ZWM3OWI3YTYzZTA0MGVlYTY4MjY3MGQyMCBsZWdhY3ktdHJ1bmsKKzk4MzEgYTRkN2JiZmY5NWE0YjVmNTY0NWUxZDU4ZDgyMTNiM2M1OTc1YjZmMiBsZWdhY3ktdHJ1bmsKKzk4MzIgZTQzNjdkMjA2YTU1Zjc2MzAyYjNmYjA0YTNhMmQ5MWU4NTgxNDM1MyBsZWdhY3ktdHJ1bmsKKzk4MzMgYjI4NWZiYzI2NDZhNDk4NmE1YzVlYTkzZTFmOWQxNWQ4MDNjZWEwMSBsZWdhY3ktdHJ1bmsKKzk4MzQgYzYzMjUwMjlmN2RjODhjNmRmZWJlMmJjYTQwYzU5MzEyNTM0MzYzMyBsZWdhY3ktdHJ1bmsKKzk4MzUgM2UyN2Y5ZmM3NWEyOTBmNTFmYTIyNzVjYzFmZjQwZmU5YTA4ZmZiMSBsZWdhY3ktdHJ1bmsKKzk4MzYgMTQyMWFjZWFlMzQ2NTA0NWE1Nzg3ZGU3NTExMTc4ZjdhYjc4ZDVkNCBsZWdhY3ktdHJ1bmsKKzk4MzcgZDcwMDg2YjA4YTBmYWYwMWE2ODljOThjMTE2MmI5MDFlMWYwYjcwMCBsZWdhY3ktdHJ1bmsKKzk4MzggMmEwNzI1OGIxZjRlMDg2Y2Y3YjMxOWI2MTE0NTVkMDRmZGYwZDc5YiBsZWdhY3ktdHJ1bmsKKzk4MzkgNjIxNDQwYmI5OGI5YzI2MDg4Yzk4YzEzMTM1MzlkN2ViODM1ZTEzMyBsZWdhY3ktdHJ1bmsKKzk4NDAgODVmZjIwNDZlMzdmODFjZDg0ZTAwMTBhZWEwOTE4NTlhMmNjMzQ5MiBsZWdhY3ktdHJ1bmsKKzk4NDEgZjRhNDcyM2I5NTUzMmFiOTA0YWY2NjAzODRiYzcwNDgxOGVmMjgyMiBsZWdhY3ktdHJ1bmsKKzk4NDIgZjFjODhkMmQxMjViZmQ0MzA2ZGQwNjU4Y2ZmYjg5OWQ0NTAzNDk2YiBsZWdhY3ktdHJ1bmsKKzk4NDMgMTg3Yjg5Njc1ZGRhZTQwYzQwNTA2Yjg2NzM1NDllYjcxOTQ5YTNhNyBsZWdhY3ktdHJ1bmsKKzk4NDQgNzE3YzNkYWNhMDhlOTUzOTM3ODg5OTgyZDkyYzE1YWI1ZGY2MWZiNyBsZWdhY3ktdHJ1bmsKKzk4NDUgMGM3OWNhZmVjNGJjNTUwOGM2ZTZlMzA3MjFkN2IyMjk0YjU2NjA2NCBsZWdhY3ktdHJ1bmsKKzk4NDYgMjE2NTdiYjBiZTM1YjRjNzFkY2M4MzQ0OWYyZjM2ZDIzYTJlYmMwYiBsZWdhY3ktdHJ1bmsKKzk4NDcgZmVkM2NmNzI2ODNkYzE3NDdlYzNjMmM0Yjk2MTU3NjIwNTQ2NTdiYyBsZWdhY3ktdHJ1bmsKKzk4NDggMWY0NjI1ZmU2NmUyY2E4Y2UwYmE4YmYyMzk0ZDI2NzA1MTdjNjExOSBsZWdhY3ktdHJ1bmsKKzk4NDkgZjVhMTg5YWZiY2Y5OTRkZDlhMTQ1ZGI4ZjI0MDU4Y2NkMWIyMTcwZCBsZWdhY3ktdHJ1bmsKKzk4NTAgMWU2NmM0ZTMxZDE1MGFmZDhiMGI5ZTViZjIyZTU2ZTlkYmYxYTdjMSBsZWdhY3ktdHJ1bmsKKzk4NTEgODk1NTllZTg1ZTU0MGQyZWU0ZjA4NWU2YTlhYmJmYzA5ZGEyYmYyNyBsZWdhY3ktdHJ1bmsKKzk4NTIgOGQxMWIzNjcxZTVkNjE4N2Q5MzdlNjg4MzhiODViYzVkMTI3ZmZmYiBsZWdhY3ktdHJ1bmsKKzk4NTMgMDAzMzhhODEzZGNiOGJiZTFjMjdmNTk0NGVhZTQ2OTk0MmI3ZDBiMyBsZWdhY3ktdHJ1bmsKKzk4NTQgZmM2YmU3YWUwMTJmNDRjZDhkMjQwNzUyZDY4MmU5ZmFiMTgyMjlmMiBsZWdhY3ktdHJ1bmsKKzk4NTUgZjc4YWY1YmM3OGVkZGU2NmI4Mzc1ZWQ2NzYwMjMyZTE0NTJlNTZkYiBsZWdhY3ktdHJ1bmsKKzk4NTYgMGUwZTg4ZjhlMWFkNTFmYWZkMzYxYjBkNDljZGI4ZTY0MGRlZjkyYSBsZWdhY3ktdHJ1bmsKKzk4NTcgZTYzZjJhZGZhN2NjODQ1ZTk5MTkwMmQ5YzUxNGIyOWQ0M2UxMjA2MyBsZWdhY3ktdHJ1bmsKKzk4NTggNjJhYzU3ZGU3YWRiZTQ2Y2RlOGVmMDg1OTY2Y2VmMmFjZWIwZTlkMCBsZWdhY3ktdHJ1bmsKKzk4NTkgMTA4NDBjMzczN2E3ZGQxMDkzZDJhYjg2MDA0M2ZlMjg5NTg3MTA2OCBsZWdhY3ktdHJ1bmsKKzk4NjAgNjlhZGQ0ZDc3MzZmMTA2NTY5MDE0ZWNlOTk4NzJmNGU0NDZiMDYxNyBsZWdhY3ktdHJ1bmsKKzk4NjEgZjhhNzcyMjRlYmNhZjUxMzRiZmNjMWY5MzhjOTU3Njg0MjEzZjliYyBsZWdhY3ktdHJ1bmsKKzk4NjIgYjU4YjJlZTY1Zjc1ZjUxOTJhM2Q5MGY0MDg1YWY3NGJiMTU3YzBiOCBsZWdhY3ktdHJ1bmsKKzk4NjMgNmRkNjUxY2FmOWUwNjZlM2VjOTFlODhlZGZkNmM3Mzc4MDdlOTg5MiBsZWdhY3ktdHJ1bmsKKzk4NjQgZjQwNDBmM2JkY2M3MzdiNjY1ZjljMjliYTBhNmQ1MjNmZWM3NjQ3NSBsZWdhY3ktdHJ1bmsKKzk4NjUgNDYxMTlkMWU5NDEzZjdhMGNjZTc4ZmVmZGQyNTUyYjhkZTkwYjIxMyBsZWdhY3ktdHJ1bmsKKzk4NjYgZWRjMGQwMjFlNDI3NmRmYjVmN2VmZjI5Y2Y1ODI1OWFjZDQxZjUwNyBsZWdhY3ktdHJ1bmsKKzk4NjcgNTQzYjJiNGFmNTMyNTkxMTc2NDFkNGM0MWUxNmM1ZjE3NzFjYjFmYyBsZWdhY3ktdHJ1bmsKKzk4NjggMjIzNDMzMDM4YTQ3ZTc4NDg1OGY0NGFjZDgxZTI5NjBlMDdlZGI5MCBsZWdhY3ktdHJ1bmsKKzk4NjkgYjY0YThjZWM4ZDc1YzVhYTkzMjVhODcxZGEyNTdiZWNmZDhiOWRhOSBsZWdhY3ktdHJ1bmsKKzk4NzAgMDMzM2U0YTk1MmY5M2RiZGM4YzMxZWM1YjEyYjllYzA3MzA4OTU4MSBsZWdhY3ktdHJ1bmsKKzk4NzEgMDI4ZjcwZDUwOGMwYjYxNWY2MmY4MzQwODY1MGI1NmE0YTA0ODEwMCBsZWdhY3ktdHJ1bmsKKzk4NzIgNzY3YmY4MDA0Y2ZmZGZlZDIyMzVjMDRmNzNmMjI0MTFhODljYmMzZSBsZWdhY3ktdHJ1bmsKKzk4NzMgNzg2ODc1YzRjNjJjNTBkN2MxZTA0MTA3ODBkMzA1ZGRlODllMTc5MSBsZWdhY3ktdHJ1bmsKKzk4NzQgZmJjNzU1MzVlYTkzY2IzZjJiNTQ4NmIxMGIzM2Q0NjViOGM1NmZjYSBsZWdhY3ktdHJ1bmsKKzk4NzUgNDVkNjViYzhhNTUwZjMzNzlhZWRiOTMxNTVmYTcyM2ZlODMyYzNiYyBsZWdhY3ktdHJ1bmsKKzk4NzYgN2FmYzE1ZjA4ZDgyY2FjMzcyMzljNTAxZWQxMmZhODk1Y2Q1MzI4OSBsZWdhY3ktdHJ1bmsKKzk4NzcgYjhkNzg2NTBmOGRmMWQ1YmM1YTcxYzdhMmY0NzI2ZjJmZjIzNzY1NCBsZWdhY3ktdHJ1bmsKKzk4NzggNjg1YzUxMGUxNGNlZWI1ZDRlMmZjNjdlNDI0ZTQxYWMxZTc2NmUyOCBsZWdhY3ktdHJ1bmsKKzk4NzkgOGMwMWNmZWUxNGJhMTkyNjdiMWEyYjBjMzI3ZGU2OWEzMzk5NDkyNSBsZWdhY3ktdHJ1bmsKKzk4ODAgYzc0NTRjYTdkM2FjYzE0M2UwMmEwYjZmOWJlZTA1MjAwNjBiOWFmMiBsZWdhY3ktdHJ1bmsKKzk4ODEgMTg1YzFkNDdjZTdhMDg3NDlhYzczYTk4OGNmNjcxMWUzMzhmMDIyOSBsZWdhY3ktdHJ1bmsKKzk4ODIgM2E3N2JjYTIyNmI5Mzc3ZmYyYThkYTIzMzc0NWJhYzk0MDBiZTg5NyBsZWdhY3ktdHJ1bmsKKzk4ODMgYzUxZjdiNmQyNTU2ZTQ2OTUwOThkZTJmN2NlN2FlYzgxOThkZWUwYyBsZWdhY3ktdHJ1bmsKKzk4ODQgM2E0OWY1ODg2YWNhZWIwOWU2M2JiODRkZmJkOTFjOGQzMmExZmQ3YyBsZWdhY3ktdHJ1bmsKKzk4ODUgMmM1NDkwMTQ3MWY1ZDkwNGQwYmNhZjZiMzg0NWQyYWQzMDBiOTdlNCBsZWdhY3ktdHJ1bmsKKzk4ODYgZDg4YmY3NjcxNDU4MjVhYjRjNGE2ZGI5ZDBjOGZkZWI3YWJmNTkzMSBsZWdhY3ktdHJ1bmsKKzk4ODcgZGZhMjQ3NzY0MzIzNzAyNDU4YWIwOTk5ZjE2ZjZjYjY2MzI0Y2MxOCBsZWdhY3ktdHJ1bmsKKzk4ODggZDc1ODg0MWE3NjYxYmM3ZjNjODA4Y2JlNzMxNDBjNDczZmI5NWI5MSBsZWdhY3ktdHJ1bmsKKzk4ODkgYWQ4OTFmNmExOWVlYmE0ZDMyNTE4NzIwZDc5YzU4NDIyN2VlNjRmYyBsZWdhY3ktdHJ1bmsKKzk4OTAgMjk3YmVhMjMzZTAzMmZiZGY3OTM3YWI2ZDg0OTM0MTY3ZWRiMDg3NiBsZWdhY3ktdHJ1bmsKKzk4OTEgZGVkY2U5YjY4NzQyNDA1MTg4NDAyNzBmNzhkOTI0MDBhMWFiZWQ5MyBsZWdhY3ktdHJ1bmsKKzk4OTIgNjU4NDhhN2M3N2I5ODI1MzFhNmU3ZGM5NzBmMTFiZjY5YjllNTk1OCBsZWdhY3ktdHJ1bmsKKzk4OTMgYTE0MzVjN2QzMzliN2ZjMjEzNzYzYjNiY2UxMGY0NjE4YzI1ZDA0ZCBsZWdhY3ktdHJ1bmsKKzk4OTQgMTNmMjliNjJhMjA5NTM4ZmQ1NjI4YWMzNjY0MGVhNDI2NzkzMzNjYiBsZWdhY3ktdHJ1bmsKKzk4OTUgNjI1NWRjODYxZmNmMTM1M2ZlMmFkMjYyNTY4YzFhOGFkMmNiMDY0NiBsZWdhY3ktdHJ1bmsKKzk4OTYgYjFmMTk1Yzk3ZWY5OWE0ZmM2ZjI0OWVlZDFhNmNkNzg0NWM0YWEzMCBsZWdhY3ktdHJ1bmsKKzk4OTcgN2NhMmMzZDg3NjYyMDZhZTI1ZjU0NzhiNDAzOWMyZmM1NjFkNTA2MyBsZWdhY3ktdHJ1bmsKKzk4OTggM2Q5ZjUxMDUwYWJjYTQ1YjcyZTk2NzRkNzYyNzQ5NGFjNjljMGJkNCBsZWdhY3ktdHJ1bmsKKzk4OTkgNDM5Mzg5Nzg1MmIyNDQ4NmIyMzkyMWQwZDRjMTk1NDIzZDI0OWUyZiBsZWdhY3ktdHJ1bmsKKzk5MDAgMmQ1MDg4MjJlN2Y2ODg1YTgzZTM5M2U4ZjFhZGFhNWM2NTliNjk4NiBsZWdhY3ktdHJ1bmsKKzk5MDEgNmU3M2Y0MTY4YjA2MmVjYTVmNzdhMDdiNTU4ZjIzYTE3MzEzMDk5MSBsZWdhY3ktdHJ1bmsKKzk5MDIgMTFlOTMzN2NkYTNkMTQ3ZWU2ZDRlMDJhN2RkMmQ2NTgzZTJjNmIzOCBsZWdhY3ktdHJ1bmsKKzk5MDMgMjliZGJlMDM5ZTA1ZWM4NWFkNzk0NWIwMmY2Y2Q0MjEyNTU4NTJhYyBsZWdhY3ktdHJ1bmsKKzk5MDQgYjNlM2RhZTliNjEyMjQ0MmQxNDYyMjFiMDRiMzMyOWFlZjVlOTE2OSBsZWdhY3ktdHJ1bmsKKzk5MDUgNWFmN2QzZGE4N2NmNmFjYjc5MjI2MDJjODA3MmZhMjlhMmRmMmU3MiBsZWdhY3ktdHJ1bmsKKzk5MDYgM2YyMjg0MzQ0YTQxYmEyNGY3NWQwNTZmZDAzY2M4ODZmODYxYTUyMiBsZWdhY3ktdHJ1bmsKKzk5MDcgODNlNzc1OWU3Mjk3ODY5ZGRkYTFjZDE3NzQyZDFlNTY0NWNmNmViNCBsZWdhY3ktdHJ1bmsKKzk5MDggN2RmNmYwNDUzNDY5MTc3Y2QwOGZjYTU4YTdlYjI4YTkwMzAwMDJkMSBsZWdhY3ktdHJ1bmsKKzk5MDkgYTlmYmYyMWFiN2NlOWNlNzkzNmU4YTNjYzU5OTQ1Y2RlMDg0ZmI4ZiBsZWdhY3ktdHJ1bmsKKzk5MTAgMzY1NTI2YzRjZjhiYjMyMzg0NjY1OTRkMDczMjNkY2UyMDU4MmVhZiBsZWdhY3ktdHJ1bmsKKzk5MTEgNGY0NWRjY2RhOTZiMjg3NDdlMzNkNDFlMTU0ZDViZDFjYTRiNDNiNSBsZWdhY3ktdHJ1bmsKKzk5MTIgM2RlMGNiODJlNjFhZTY1MWJlMDgwOGU2MjAxODkwOTVlZGVjZDc2OSBsZWdhY3ktdHJ1bmsKKzk5MTMgY2JhY2QxYmU3Mjc1YzAwZjNjNjNiOTVlYjVhMzg0Y2YyZWIwMDBiMiBsZWdhY3ktdHJ1bmsKKzk5MTQgZDE0NjViNWMwYTA4OTRlMTU1MTFkYzE3YmFiYzNiNDE3MmY0MjBlZSBsZWdhY3ktdHJ1bmsKKzk5MTUgMzc0MGZmMmVlMDUzY2E5M2Q4OTA1YmVjNTUwYWE0NjZiOWEyODllMyBsZWdhY3ktdHJ1bmsKKzk5MTYgY2QxMTY5MGNiMTRiMDcyZTcwZjI1ZThjM2ZkYTc0OGExMWI5ZDE4MSBsZWdhY3ktdHJ1bmsKKzk5MTcgYTY0Yzg5ZGFlMThkNjBlNTRhODJlZWFkZTMyODZhNzRmNmIzMDQxOCBsZWdhY3ktdHJ1bmsKKzk5MTggNTkwZjYyNTRmOWE5YWVhYTQyMDIzZWRiNTY4YmU4ZWIwNzI1ZGE3YSBsZWdhY3ktdHJ1bmsKKzk5MTkgYTgwNTliOTZiYzM1NWFhOGI2MmZlMTY1MzdjZmMyMGU5MzRjZDMxNiBsZWdhY3ktdHJ1bmsKKzk5MjAgMDUxODlmN2NkYmViMTg0MTE4ZDYxNjhhZDMzMWY5NTBjMWE5ZjA2OCBsZWdhY3ktdHJ1bmsKKzk5MjEgOTgxNWIxOGIyM2UzYjY4NWE5YWYyMzU0MmI1M2NiOThkMWIzNjc5MSBsZWdhY3ktdHJ1bmsKKzk5MjIgMzcyMGU5OTZlNTUxMjczOTE0MGRiYTI5OGM5ZDFjYjI1NTAzOTI3MyBsZWdhY3ktdHJ1bmsKKzk5MjMgMTY2ODQ5OTIwNmRjZmJiNTgyZTdlNTJhNjM0OGE1NGQ0MGY1NDM5YSBsZWdhY3ktdHJ1bmsKKzk5MjQgMjkzM2ZiMzRmMzMzZmQ1MmMxNzM5MjBmYTk0ZjA1NDBlMTg5MGI2MiBsZWdhY3ktdHJ1bmsKKzk5MjUgODI2YzcxODAxOTExY2IwYzYzOTdkODk2NGFkNjYxNDhmZjhlNDYzOCBsZWdhY3ktdHJ1bmsKKzk5MjYgYzliNjg1MGM0MzM2YTRjZGFmYTJhM2Y1MDAyZWRlYmFjNGI0ZjE3OSBsZWdhY3ktdHJ1bmsKKzk5MjcgNWVkY2ViOGYxZmFiN2FjNjgwYjE5YTljZDQ5YmQ1NWJjMzAyZjJmMiBsZWdhY3ktdHJ1bmsKKzk5MjggMGQ3Njc2MTRjOTQxZWIxMGY1ZWMyOTMyYzQzYWM3MWJhOWFkYmExOSBsZWdhY3ktdHJ1bmsKKzk5MjkgMGE5NTQxYTg2Njg5MDk0ZGU0MTNmNGVjNmMwMGNkZTJkOGViNTlmMyBsZWdhY3ktdHJ1bmsKKzk5MzAgMjNjYzM0MmVlMTUwYmE4NDAxZmJjM2MzOWJhZmUzNDBhMzVhMDBjYSBsZWdhY3ktdHJ1bmsKKzk5MzEgM2MzOGM4YWQ1NjIzZmI0MGQ0YWZkYTI2MTMzMjVjMzc3YmU5YjAwNCBsZWdhY3ktdHJ1bmsKKzk5MzIgMWI0YTJlMzhhYjVlYzY3YWUzZTUxOTBlN2Y4ZWQwYjI1Mzc2ODYzMCBsZWdhY3ktdHJ1bmsKKzk5MzMgNDgzMjg2ZTIxOWUxZjY0NDQ2M2I0ZDJiZDdiMmYxMjZhNWYxMWFlNCBsZWdhY3ktdHJ1bmsKKzk5MzQgYmQwNWFiNDczMWY3NmIzY2U0NGQ0MzBjNTNlNzcwZDRiNjk0Njg4OCBsZWdhY3ktdHJ1bmsKKzk5MzUgMWE5YjA5YjNjYWY4YWU1ZTI4NWI3MDRkMmQ5YWI3YjRhNGRhYWViNCBsZWdhY3ktdHJ1bmsKKzk5MzYgZWM5NWU4ZGFlNTA0MTQyNWFlNTdjYTU3YzE5NmYwZTRlNDQ4MGU3OSBsZWdhY3ktdHJ1bmsKKzk5MzcgNGFhNDcxMGQ4OTRjODI2OGY0MmU2YTQwODE2OTU2YjZkNWI2Y2Q1OSBsZWdhY3ktdHJ1bmsKKzk5MzggYmQ4MTUzOGQ0ZGRmZDQ3NjE3ZmRiNDViYTM5ODU4YTlmZGE2NGNmMiBsZWdhY3ktdHJ1bmsKKzk5MzkgMDMxZGU4NTQwYTdlYTA1ZGI1NGQwMWZhY2Y1MmY4ZjQyM2ZjZTBjZSBsZWdhY3ktdHJ1bmsKKzk5NDAgOTU0MWI5YjA5MzdkZGYxNGMwYjY0OGIxY2JlYzIzMDQ3MmJhNWY1ZiBsZWdhY3ktdHJ1bmsKKzk5NDEgODI5NDdhMTkyNmY3ODJkZWZiZTBjZDc1Mzk3YzU3NjA5OWU1NmMxMyBsZWdhY3ktdHJ1bmsKKzk5NDIgMDIxMjM3YmE1MDA3NDI1ZTAyMGU3Y2U5NjhkODkwMzk1NTg2MGEyYyBsZWdhY3ktdHJ1bmsKKzk5NDMgN2IyZmQ0ODZlZmVlMWNkOGZkZTIwYWZjYzE2Yjg4Mzc1YmQ2ODAyMyBsZWdhY3ktdHJ1bmsKKzk5NDQgY2IxYTU3N2MwMjM5Y2JiMGQ5Njg3OWJjMDRmZTI5ZTM1NmYzMGJlMSBsZWdhY3ktdHJ1bmsKKzk5NDUgMDM2MGUzZTMwYTJlNDBjNDkyMmY3OGQ1ZDcxODE4MmZhNTU5OTdmMSBsZWdhY3ktdHJ1bmsKKzk5NDYgMTQ5YTU0Nzk4ODk2MWI3YWNlNjI4YWVlYzE2ZWUzYWJkY2M2MTZmNSBsZWdhY3ktdHJ1bmsKKzk5NDcgYWQzZTRlYjM1ZGE3NzIzOTBjNTBjMDI5Mzc4NmI4NmZjOWEwNmUxOSBsZWdhY3ktdHJ1bmsKKzk5NDggNmY4NjllNWQzM2NjYmY3NjM0YjdhMGJlNWVhYTQxMmFmODJlZmUyNiBsZWdhY3ktdHJ1bmsKKzk5NDkgODgxYTVlNjcxNGRjYjcwYTVjZTA3OWY1MjFmZGJlMDcxZDMwZjBlOCBsZWdhY3ktdHJ1bmsKKzk5NTAgNmJiNTA2YWQ5Njg0OGFjMmEyOGNmNTE3MGI3ZjU3YzliZmRmYTJmZiBsZWdhY3ktdHJ1bmsKKzk5NTEgMmNmMWNhZTliNDZlZjM3ZjAyZDVjNzg2NGRjMTg4NTBkMGFjY2JiYiBsZWdhY3ktdHJ1bmsKKzk5NTIgMDc2YjgyZTA0MGE1YzkzNTRlNGI4NWRjY2IyMWUyMzk1NmNkZmZhZCBsZWdhY3ktdHJ1bmsKKzk5NTMgNzg0ZmVmODM3YjUyZGM4ZDYwMTgxZGNhZjUwYzhjMDAyZmYzNDc3YSBsZWdhY3ktdHJ1bmsKKzk5NTQgY2E2NmEyNTM2Y2Q1NDlhNTk3ZDk2YjE4MjU0ZTAzZjQ3ZjQ5NDk4MyBsZWdhY3ktdHJ1bmsKKzk5NTUgYjk0MjFlMTdkZGY3NjMxZDA3ZmQyM2YwYWZkNjFhYzViNmM0Y2Y3YSBsZWdhY3ktdHJ1bmsKKzk5NTYgODA3MzliMGJjMzAyNmM5MmE4ZDIzZDZhNGJhODNlZjhmNmQ4OTU3MSBsZWdhY3ktdHJ1bmsKKzk5NTcgYmZlNTdlZmFkNzUxZmFkZmJlOWIyNjVjZjU2ZTM4NzZiMGRiOTY1MCBsZWdhY3ktdHJ1bmsKKzk5NTggNTVjM2ZkMTg1M2NlYmIyZjRjZTdiOWZiYTNhMDY4MzQ2YzdmNDY4ZSBsZWdhY3ktdHJ1bmsKKzk5NTkgY2NhMzlkNzE5YWJhNmU1YzA0NTk2ZDM5NTQ2MDc1MjhkMGQzMjYxNSBsZWdhY3ktdHJ1bmsKKzk5NjAgZjAxZmYyNmZhY2FlYjg3MzgyYTAxNDVkYTlmZDdlYzZlYTM5YWNhOSBsZWdhY3ktdHJ1bmsKKzk5NjEgYmE0YTAyYzBlOTBjNzkyYWZhN2UxYTdjOTFkMzM0NWU0YzEwYjgxMyBsZWdhY3ktdHJ1bmsKKzk5NjIgNTgwZjZjOTIyNzBiYjg3MDE2OWEwYWVmODc3ZWU2ZjRhM2E1NWIyMiBsZWdhY3ktdHJ1bmsKKzk5NjMgMWRmYzE1ZTMxMTMwNDNkNjAwOGVmZWU4YzI5ZmFkZWYxZDcwYzQ1YiBsZWdhY3ktdHJ1bmsKKzk5NjQgNGNhZTJkZTMwYjU3ZmM1ZTBiYjNkNWNjZDZmYzM3ODMxN2QzMGVlMyBsZWdhY3ktdHJ1bmsKKzk5NjUgMDVkMGI2ZmJlYTliNWRjNjdjZWVhZDM2NTJmZGM0ODI2NzI5MmM0YiBsZWdhY3ktdHJ1bmsKKzk5NjYgOTgzNDVhYTFkNWZlZDMxNjMzZmM4MmVlZDE5ZDkyNzkyMTQ2MGI3NyBsZWdhY3ktdHJ1bmsKKzk5NjcgNDI3YjgxYzI0NTJmZTFkNzJmYTEwMGE0YjcyNTBiZDQwYjRiMWJhZSBsZWdhY3ktdHJ1bmsKKzk5NjggM2RmYzM3NmU2ZjFhOGJlNGNlOWEwMTMxZmM5NTBlNmE4YTcxNGIxMiBsZWdhY3ktdHJ1bmsKKzk5NjkgN2YyODk5N2IyYzEwNmZjZTIzYmVlMmJjMWVkZjI2ZmEyMzc4OTRlMyBsZWdhY3ktdHJ1bmsKKzk5NzAgNTQ0NTZmMDhlYmFkNzU1MTJkNDMxYWVhMWExOGFkY2E3MWE2ZWFhOSBsZWdhY3ktdHJ1bmsKKzk5NzEgNjg1N2FjYmUyZTc0YjAwYWY4NjBhZjJiYTg3MWY1MTI5NzViMzlhZSBsZWdhY3ktdHJ1bmsKKzk5NzIgYzRkNTZmYzYzZDhmMDM4YjRhYjQxNmMxNDc5OWJlM2I2ZTU4YTZhOCBsZWdhY3ktdHJ1bmsKKzk5NzMgNmIwMjY2Njc5Zjk2OTUyNThkN2ZhNDEzOWM3MDlhOWY4NjQ1N2UyNCBsZWdhY3ktdHJ1bmsKKzk5NzQgZWM3OTc2ZDJkNWU5ZTQxM2UyMTg4OTJlOTZkN2U3OWMyYWM4NjgxNiBsZWdhY3ktdHJ1bmsKKzk5NzUgNWUzOTAwNzg0NjBhZThlNDJiM2Y5NWQzNjY4N2MxMzY0ZjliODcxZCBsZWdhY3ktdHJ1bmsKKzk5NzYgMTkwNmE3ZmM3NTA5NGQ2ODI2YTNmY2E1YjJjYjJhNWE4OWQ2MTNhZCBsZWdhY3ktdHJ1bmsKKzk5NzcgZDk1OTFjOWIyYzVmYTRkMTVhNWJlOTI2YTYwNDkyNmJiYjI3N2Y5NyBsZWdhY3ktdHJ1bmsKKzk5NzggOWRlM2NhZDUwOTA1MGMyYWM2YzQ2YmViYjkxM2RhM2UxMjQ5NDIwMyBsZWdhY3ktdHJ1bmsKKzk5NzkgZDE3ZGIzZWJmYmMyMDVkYzE4NTc2NGMzMjk1ODNmYTIyYzU1MjRkNCBsZWdhY3ktdHJ1bmsKKzk5ODAgZjIzZGIzYjY1YzgzODFmYmVkN2VkNzQ0NGY2MDZiZmQ4OWE5NTk4YSBsZWdhY3ktdHJ1bmsKKzk5ODEgNzU0NTg2MDM5YzExYjFmOWNmYTQxMGZkMjdmMjQxOTJmMWU2NDY2ZCBsZWdhY3ktdHJ1bmsKKzk5ODIgODk0Y2ZmZWI4OWJhNTM1MTdkNmFjZTZmYTZjMDYyNzczYWYyMDI0NSBsZWdhY3ktdHJ1bmsKKzk5ODMgZWY5ODBlMTdiNTkzOWNhYmFmNjIxODA0YTgwMzQ3OThkMjM2MWE1NiBsZWdhY3ktdHJ1bmsKKzk5ODQgNjdhMmI5NmYwMTg5NzM0OTQ2YWRjM2UwMjVjMzcwNGU4NjM2ODE1NCBsZWdhY3ktdHJ1bmsKKzk5ODUgNTEwZTUyNDQ2N2NlNjI3M2RlYzJiZjQ0MzgwM2M2OTgxNDc0MTM1MSBsZWdhY3ktdHJ1bmsKKzk5ODYgZWRhMGNhMTM4YjNkODRiYTkxMTk2MzM4ZDBlNWVhOWUwYWMyYTQ0OCBsZWdhY3ktdHJ1bmsKKzk5ODcgYjVkNTJjNDE1YjE1ZTllNGNmMGRkZjhjNWM3ODI0NzI3ZTI0ZDNiYSBsZWdhY3ktdHJ1bmsKKzk5ODggZWM0NzM1Y2UxMzYwODQzZGNjNmU3N2EzMGY3ZjMwMWQ3OGJhNTAzMiBsZWdhY3ktdHJ1bmsKKzk5ODkgMzVhM2NjMjRlZjA0MzI3YTZiYTZkYjYwZTA0MWFjNDllZWEwMWRlOCBsZWdhY3ktdHJ1bmsKKzk5OTAgZTNmMzdhMjYwMmQ1MDQ5MDViYjkyNTg4MWI2Mzc2Mzk2ODM2OTZjZCBsZWdhY3ktdHJ1bmsKKzk5OTEgNDg4OGY0NDg0NTBmMjNkYTAyZTJkNjgyNTVkNjc5MjlhY2RiNGJiOCBsZWdhY3ktdHJ1bmsKKzk5OTIgOTcwZTllMDU4Yjc2MWM0Yzg0N2MxYjQ0N2NkMjJkZmNhMDI5OGY3ZCBsZWdhY3ktdHJ1bmsKKzk5OTMgZWMwZjk5ZjFhMmZkYjBhYjlmNjlkMzBmOTBiODRkNDQ0ZWMwOThlZiBsZWdhY3ktdHJ1bmsKKzk5OTQgYjYwNDI0YTU2Zjc0NGU1ZWU0MmJmZDRmZTE5YWMyY2E0MTI3M2EwMiBsZWdhY3ktdHJ1bmsKKzk5OTUgODNjMmE1YTQ1YTQxYjJmYWRiOTM5YTNjM2I2YTBmZGIyNTM1OGNmYSBsZWdhY3ktdHJ1bmsKKzk5OTYgMzEyY2E5ZmRhY2ZmMjc1YmU5MjA3MDQ0OTZhOTVjMjViNjYyYzZkMCBsZWdhY3ktdHJ1bmsKKzk5OTcgY2NlODk5NGQ1MmNmMGU4YTgzMDA0MzFmZTc2OTZlN2RiODgyZjI3MiBsZWdhY3ktdHJ1bmsKKzk5OTggZjlkYTM0ZjcyNjhiNTFjODcxZjJmMTQzZGE4MDA2NDIyZDRjMzc5NSBsZWdhY3ktdHJ1bmsKKzk5OTkgZmJjODkyMjQzNDc3ZjZjY2I2ZWEyM2FlM2JjZGU1NGEwNjRmOTc5NyBsZWdhY3ktdHJ1bmsKKzEwMDAwIGRjMzc0NzExYzg0OGNkNjYxMzdlOWI2YTZlNmViNGMxN2MwNGZhZTEgbGVnYWN5LXRydW5rCisxMDAwMSA1ZTRjMjg5N2U2MjU3NWU5ZTQ2OWEwYWYwMDU5ZjdmN2NmZGI1NmU2IGxlZ2FjeS10cnVuaworMTAwMDIgZWVhYzM2YmZlMDFhYTNmMWZjOGQxZDFmZDVmZTBlYTg3Mzg0NWQwNCBsZWdhY3ktdHJ1bmsKKzEwMDAzIDg4OTkyNjk2YjllOGQxN2Q1NWE4NGRlMzMyYjU5YjljN2Q3ZDU3NjggbGVnYWN5LXRydW5rCisxMDAwNCA2MGU3YjAwMGYyNzM4NDYyM2RjMTQ3ZDUyYWFjYzMzOTliYzVkMzlhIGxlZ2FjeS10cnVuaworMTAwMDUgMjZhODc3MWE0Y2ZkMDA5Yjk2ZDczYTU4ZWI1NWUwMDcyZThjOWViNCBsZWdhY3ktdHJ1bmsKKzEwMDA2IDNjYWYyMzk3YzUwODE1NTNiMzNjZmI3ZTliZmI1YTllMmU4ZTkwOWUgbGVnYWN5LXRydW5rCisxMDAwNyAwMzQzOTg3MzZlNjRjNDE4Y2JkMzM3Nzg3NTVkZmRiZGUxMWU0NTllIGxlZ2FjeS10cnVuaworMTAwMDggODkxMTA1ZGFjOWI0MTg3MTQ0ODgxNzliZTI4MTllZDFjYTM1YzRlMiBsZWdhY3ktdHJ1bmsKKzEwMDA5IGI0NjYwYWQ3ZGM0MWVhMTc0Zjg5NTk2M2VlNTI4NGFjMDMyZGNmMWYgbGVnYWN5LXRydW5rCisxMDAxMCBiZjIzNmZiZjExZGFhZTNhMjJjMTE0NjdlMGNiNGI3M2EyMTY0M2I5IGxlZ2FjeS10cnVuaworMTAwMTEgZWE4MTg0YmZmMTJkYTVjMGQxZWE1NGJjODE2MjM2YjYzNzEzYjBmMCBsZWdhY3ktdHJ1bmsKKzEwMDEyIGY5MWQ1YTAzMzliZjNhYTM4ZWE5MDRmNzI4NTY0Nzk1NDE4YWFkOGIgbGVnYWN5LXRydW5rCisxMDAxMyAxM2I2MGFiZGI3MGQxOWVhMDY2ZjIyMDNjMTE2M2NlZTRiNzM2ODUxIGxlZ2FjeS10cnVuaworMTAwMTQgZWVkYWM1MGQ3NzQ0M2IwYmJkY2NmOWM2ZDUyODcyMGZjZmUxMWZiZCBsZWdhY3ktdHJ1bmsKKzEwMDE1IDNmZjZiM2QzYzRkNWUyZjNmNWRiN2JjZmE5ZjQxYjFkYzU3MDM2MjUgbGVnYWN5LXRydW5rCisxMDAxNiAwMWE5Zjg0YTI2OWM5ZGEwYTliZTAxZjBhYmMyNzhhYTZlNDlmZDRlIGxlZ2FjeS10cnVuaworMTAwMTcgNzgzMGUxZGU5ODE3NDU3ZWIxZmM0MmRiNzUzYmYzYmQ5MGU5NDZlNyBsZWdhY3ktdHJ1bmsKKzEwMDE4IDlkYWUwYWIzODNhNDk4ZTFiNTcyNjY4NDAxODY5OGE3YjdlOWE1NzcgbGVnYWN5LXRydW5rCisxMDAxOSBjOWY0YWEyYzQ1ZWRkNjdmZDBjNGM0NWI0NDBlM2FhNDg0NDE4NTJkIGxlZ2FjeS10cnVuaworMTAwMjAgY2ExNzBkNzYxZjA4NmUzMDVjOGI1ZGI2YzcwNzU3MWYxMjFmYjMwNCBsZWdhY3ktdHJ1bmsKKzEwMDIxIDQ4ZjdhYzQ1MmQ5OWM5NGI5MzMwMzFkN2I3ZTlkOTZjNGE2OTdkNDEgbGVnYWN5LXRydW5rCisxMDAyMiBkMjAyYzgyZDNjNTcxNjI2ZDM2ZjFjNDQwZjljNWY1MWZjMWM5ZjBhIGxlZ2FjeS10cnVuaworMTAwMjMgYzAxMzFmYWUwNmU5ZTA3MjExYzg0NGE5MGRlYTRkNzJlYzg2MTdlYSBsZWdhY3ktdHJ1bmsKKzEwMDI0IDY0MjFlYTFkZTI4Mjg3YjI0ZGQ2NGNjN2IyNjQ3YmZmYWM5NTMxYmMgbGVnYWN5LXRydW5rCisxMDAyNSBkNGQ4NGI1NGM0NGQ4MTg5ZTIwM2ExNDAzZDM4ZDc4OTlkMDliYTQ4IGxlZ2FjeS10cnVuaworMTAwMjYgN2ViMTliMWNlODRkNzRmMmUyYzk1NWE2MzBjNjlhNTk3YWNjNDhkNSBsZWdhY3ktdHJ1bmsKKzEwMDI3IDRiMTFjYjk2MTA0NmEwYzRkODcyZDVmNjJjY2E1MzA5OWI0MzE0ZjcgbGVnYWN5LXRydW5rCisxMDAyOCA2OTg2MDgyMWNhMWQ1ZGE2NjUxZGQ0NjZmOWIyNGYzNjdkZGNhZTU1IGxlZ2FjeS10cnVuaworMTAwMjkgZDM0ZmUzMGI5NWU4NTY4MjEzODkzY2RmMDdjZjNjMDM5ZThkMzg3YiBsZWdhY3ktdHJ1bmsKKzEwMDMwIGM4ZTVmNzA0NjIzZDg5MDExZjg2ZmZmYzI5NGIwOWUwNTQwNTUyMzEgbGVnYWN5LXRydW5rCisxMDAzMSA4MmViOGIzZGY2ZjgyNjU0M2JiZjk2MWY3MGU1MjU0YzFlOGMxZWIwIGxlZ2FjeS10cnVuaworMTAwMzIgNWRmNjU2Y2QxMGFkZTFkMzViNTc2YzM2M2FkMmMxMjgxMmNhOTA4OCBsZWdhY3ktdHJ1bmsKKzEwMDMzIDVhZWNjMjUwOWU0NmQ5ZjRiYmM4NGVhYjBhN2VjMTJjMjQ4YzE5MzAgbGVnYWN5LXRydW5rCisxMDAzNCA3MzM5NTA4MDRhMGI0MmFmZmEwYmZiN2ZiM2I3MGU4YWQ2MTZhMjY3IGxlZ2FjeS10cnVuaworMTAwMzUgNjU5ODM4NGQ1ZjRjYmVkOWM2ZmRhMDJlNDI0Mjc2N2FkNWM4NjAyMyBsZWdhY3ktdHJ1bmsKKzEwMDM2IDIyZGU1MTE2ODMyZmQ2NWUxOWI5NTcyYzNiMTc0ZThmY2E4YjJmMjAgbGVnYWN5LXRydW5rCisxMDAzNyBjMDJhZjFlNzEzZWRjOGE0NTY0NzNiZWFlMTQ0NzIxYmU1Yzc5NTAzIGxlZ2FjeS10cnVuaworMTAwMzggYTQ0N2IyNjhjNzczMmJkOTA4NjgyYzExNTI3ZmQwNjA1MTkwMWFmMiBsZWdhY3ktdHJ1bmsKKzEwMDM5IGNjN2UxMjZmMDA5ZDM4OWQ4M2IyNTRlNGQ5M2EwOTE3ZjBjMmQ4ZmIgbGVnYWN5LXRydW5rCisxMDA0MCA0M2Y0N2I4ZTM5OGRhNTNkYTk5YTg2NGZiMzFlZDkyZjcwNDk1MjBiIGxlZ2FjeS10cnVuaworMTAwNDEgNTliMWFiMDFjMjg2ZWYzMTdhNThlNjdlZmIyOWFjNTM2OGExYmRmZCBsZWdhY3ktdHJ1bmsKKzEwMDQyIDFhOWY5YTVkZjA0YjE2ZjBiYzU3ZWUxZTRiNGUyNTA1MTM0NmVkYjYgbGVnYWN5LXRydW5rCisxMDA0MyBiYTEwYzQyOTk5YjhiY2EyNjljYjIwYWFlNmRmYjE2ZjEyMGE5Mjc2IGxlZ2FjeS10cnVuaworMTAwNDQgMmZmMmU0NTdhYjg3YWM3YWFlMmJiOWIwNzMzM2IzYmYyMDFhMjc3MCBsZWdhY3ktdHJ1bmsKKzEwMDQ1IDAwYWVlNDc0M2Q3YmE2OWVhYTllODUyMDk4MDI0MDQ2NGE4ZGZmODkgbGVnYWN5LXRydW5rCisxMDA0NiBlMTVlODVkOTg3YWY4OWU2NjYwYTliZjllMjBhNTNlOGI2ODlmZDczIGxlZ2FjeS10cnVuaworMTAwNDcgYjljYmYxNzRjNzIzODkyMDg2N2NmY2ZhNTgyZTRjZDZkOWI0MTFiMSBsZWdhY3ktdHJ1bmsKKzEwMDQ4IDhhZWU1MGE5YTFiMWZhNGM3NGM5NWYxN2Y0OGI4ZmVmMTE2NzUxNzEgbGVnYWN5LXRydW5rCisxMDA0OSA5NjhhYWJhMjgxYzUzZjAyYjNmNDVjMTkxNDk1ZmU5ZGZmYWFiZmI4IGxlZ2FjeS10cnVuaworMTAwNTAgYzlmNDE3MTI0ZTBmNzY2NTRiODhhNmYyNGI4ZGVjMzY1N2ZjODY3ZSBsZWdhY3ktdHJ1bmsKKzEwMDUxIGFhMGU4MTk5Y2MzMTgzYjNkODgxNzc4NmE3ZWY5N2RkODdhNDJmZWMgbGVnYWN5LXRydW5rCisxMDA1MiA3ZTdkNmIxYjhhNGIyYmRkNmE2NDcwNWIwM2E2YWZlOWMwYWYxOTYyIGxlZ2FjeS10cnVuaworMTAwNTMgZTY3MTE0NWFiNTA3ZTFkNjgxNzUyYTY2MzgzOTg0NzkyMDgzNGEzMSBsZWdhY3ktdHJ1bmsKKzEwMDU0IDJhMDU2ZDE5M2RkMzdhN2JkNDkxNTAyMjM3MzJlNDU5MDFkMTgxYjcgbGVnYWN5LXRydW5rCisxMDA1NSA4MjdhZWE1ZjU2MjE5MGQwNTAxMzU4ZTJmYjQyOGQzNDM1MDM0NjI5IGxlZ2FjeS10cnVuaworMTAwNTYgMjA0M2M2OWZmMWQ0NTVkODM5MmJjNjRmNWJiNjgxZWVmMjMxZTUzNCBsZWdhY3ktdHJ1bmsKKzEwMDU3IDQyYTIxODA2YjNkMmZlZTVhYzVmNDZhYzk1NjhhNzljZmY0YjI0YjYgbGVnYWN5LXRydW5rCisxMDA1OCBkNWY4OTU2N2I1YTlmNjdkMGIzMjMwNWEzMTc1MmM3YmUzNjFkMmE1IGxlZ2FjeS10cnVuaworMTAwNTkgMGY1NjVjN2ZlNGJiZmU5YjQ3Y2U5YTVkNTkyMTU3MWIyZjY4Mzc2MCBsZWdhY3ktdHJ1bmsKKzEwMDYwIDBhNGI0NTMzOGFjMjg1MjU2ZGRiYmUyMzIzNWY5YTRlMDIyYzU2ZWYgbGVnYWN5LXRydW5rCisxMDA2MSA5ZGUwZDUwNDljYTFiNjVmNzk4YTQ2MjE4ZThiZDRmNmI3MWFhMzE5IGxlZ2FjeS10cnVuaworMTAwNjIgZDJiNWQ5MzI2ZjA5MTU0NzBmNmZiYWQ5OGRiZDI5OGMyNmZjYzFlMCBsZWdhY3ktdHJ1bmsKKzEwMDYzIDJlZjBhY2E5NmYyZDMzYTU1ZmY0YWU3NWNiYjMzNzI5NzRmN2M4OGYgbGVnYWN5LXRydW5rCisxMDA2NCAwNzY1Yjk1OGNjNjdhMTliZTJhYThmNzQ2ZThkNmJhMGJkZTVmYWJhIGxlZ2FjeS10cnVuaworMTAwNjUgZmM3NjBjNjI2OTUwZGU5Nzc4NmI1Mjc2MzRkYTE4NjM3ZWRhNDM4OSBsZWdhY3ktdHJ1bmsKKzEwMDY2IDRiNjM0ZjAyNDNmOTdkMDMyYzEwYmJlNDZjYWQyM2U2MzgyYjI3MGMgbGVnYWN5LXRydW5rCisxMDA2NyBiZDA4ODZlNzhmM2I3ZTJiNGUxNWI3YzhjY2UzM2ZjODYyZjM0ODg4IGxlZ2FjeS10cnVuaworMTAwNjggYjZkNmE4MzRkYjQ5YWYxNWU0NzYyNzJkYTZmYzRiOWU3NTExYzhiZSBsZWdhY3ktdHJ1bmsKKzEwMDY5IDJmMzIzMjM4MTFjNTM1N2NhOWNjNmU4YjY3ZjUwMTRkOWNkNzVlMTggbGVnYWN5LXRydW5rCisxMDA3MCAwOTQ0MDYwNmFhYzU4OGY0OWM2OWMwM2JhYmU4ZDY3ZjQ0YmYwOTE1IGxlZ2FjeS10cnVuaworMTAwNzEgYTE5MDI5Y2Q3NmM1MTU5ZWY1MDBhYWNlYzc0NWYwNDhkYjdhOWEzZiBsZWdhY3ktdHJ1bmsKKzEwMDcyIDk5Y2VmYWE5YzUwOTcyYzViM2IyNWE2ODUyYjcwNzNhOGM1N2QxYjAgbGVnYWN5LXRydW5rCisxMDA3MyBjNDU2ZWJlMzUzMzc0ZGUxZTU1N2ZiNTBhYTMxYjc0NGQ4N2I5MjFiIGxlZ2FjeS10cnVuaworMTAwNzQgYWFiNzYyMjA1MDVlZmRjNjkyZGY0YTM5MjllZDViZWE0YzA4MDIyYyBsZWdhY3ktdHJ1bmsKKzEwMDc1IDM5Yjg0YTNkY2VhYTUwMzQwYjEwMGVjZGQ3YWQ3MzNkYWUzNWI0OGYgbGVnYWN5LXRydW5rCisxMDA3NiA3MmNhYjk1ZDM1ZTU3MDllZTk5MDZjMTQ4NWY3YzQzMmZhNjRlODU0IGxlZ2FjeS10cnVuaworMTAwNzcgMDk0MTU2ODBiZDRmNmM0ODE0MmI5ZDAxYWMyOWM1MTI1OGViNGMxOSBsZWdhY3ktdHJ1bmsKKzEwMDc4IDZhNDUzNTk1ZTYxOWU5ODA3NjVlN2Y3Yzc4NDM0YTY5NmI1ODg3NTMgbGVnYWN5LXRydW5rCisxMDA3OSBlY2FkMjM0Yzg3ZTQ0ZDhlYWMwYzA0Mjc4YTczYWU2OWZiOTFkNDc1IGxlZ2FjeS10cnVuaworMTAwODAgN2Y0YTUwM2NlNThiMjZmOGFjMmI5ZjMyNTlhOGExZGRjODUxNjRjNiBsZWdhY3ktdHJ1bmsKKzEwMDgxIGMwYmY5YjYwYzI5ODBiMjM4YjRlYThiNzFlOTIwMmZiZTIxYTkwYzYgbGVnYWN5LXRydW5rCisxMDA4MiBhNjNkNTUzZWI2NTgyOTJiOWQwNDhjYjkxZGJhOTNkN2JiNjI5ZTQwIGxlZ2FjeS10cnVuaworMTAwODMgNTk0MDdkNDQ4YjZhY2Q5MjBlM2QxYTM3MDQyOGZlYWYwZmI1MDhkOCBsZWdhY3ktdHJ1bmsKKzEwMDg0IGMwYzAyZTkyNjlmM2NjOTU2OTM0ZDAyNzZlMDhiY2Y3ZGFlYjBiZWQgbGVnYWN5LXRydW5rCisxMDA4NSAwMGFkMzA5YmQ1MDgxMGQ4YmRmOWY5MGQxODJkODE0MDI5YWZjY2NmIGxlZ2FjeS10cnVuaworMTAwODYgODkzYTMyMDk1MjIyNTQxZmRmNjkxOGNlZDliNWYzZTJkZDMwYzlkZCBsZWdhY3ktdHJ1bmsKKzEwMDg3IGFmYmJmZThmNTQ5NjcwNGE3YmExOTZkNWViNzA4NmE5MThjNDdmZDggbGVnYWN5LXRydW5rCisxMDA4OCA3MGJjYmNkZGE3NGY2MWE2ZjM1MTVlODJhNDBlYzMyNzc2NTcxYjA5IGxlZ2FjeS10cnVuaworMTAwODkgY2RmODBmNzQ1OGNhMWE3M2Q2MGUyZWJiZGRjY2ZkMzFjNmVlMjAwNCBsZWdhY3ktdHJ1bmsKKzEwMDkwIDQ2ZjJjNGZjOWUzODFhYmEyNjk5YjJhODg4YWFjNmIzMWIyZTQ3YjkgbGVnYWN5LXRydW5rCisxMDA5MSAxOTJlYTk4ODRlYjY3ZGZjYTY1NGIwODcwZTA3ZTgyNzk4YWQwNDgyIGxlZ2FjeS10cnVuaworMTAwOTIgZjM1YjI5ZWI1MmQxOTdlOWI2ZTY5NzUxYWJlNWFmMDVjODBiNzVhZiBsZWdhY3ktdHJ1bmsKKzEwMDkzIGRlYzY1ZmNlYTIxZWI5MWU2NDBmODYyYzZmMTYzZjU5ZGQ3NGJhODMgbGVnYWN5LXRydW5rCisxMDA5NCAwZTFlNGI0YTA4MjEwMjlmNTkzNTQzN2I3ZTcxZDZkNjFlYmE3NTQ1IGxlZ2FjeS10cnVuaworMTAwOTUgMDY4YTY5NDJmZTFhMTJlYTU0YzlmNmQ0OTg0MmY0NWNlZmFiOWFkOCBsZWdhY3ktdHJ1bmsKKzEwMDk2IGEzYTZlYzI1OTk4NjA1M2E2NWM4ZmJmNmM4ZTk4ODdjNDE0ODNhM2UgbGVnYWN5LXRydW5rCisxMDA5NyAyOTNiMGNiMzQ3MDQwNGMyOWEyN2U0MDBjNWJiODJmZmI2NzViZTY5IGxlZ2FjeS10cnVuaworMTAwOTggZWNlNjA0ZWQ2MjI4MTgzYThjOTFjYzk0MWQzMjA2MTY2ODMwMWI5MCBsZWdhY3ktdHJ1bmsKKzEwMDk5IDljZjZmOTQwOTU5NjUwOTBhNzU3NTBhNmNiMzJkZmM2MDZjNWI1ZWYgbGVnYWN5LXRydW5rCisxMDEwMCAwYTIwY2NlMTczNzE0OThkNDczYjQ0YzBmMDMzZmEwZWNhNDRlMzE5IGxlZ2FjeS10cnVuaworMTAxMDEgYzU0ZjFjY2RlNmE5ZGViNjI5ODg3M2JiNmY0ODBkM2EzYzg3YWM3ZCBsZWdhY3ktdHJ1bmsKKzEwMTAyIGE3ODc0MjllODQwYWViMGJhNmNhY2M5YTVhODA3Y2Q0ZmU0ZDhlNzAgbGVnYWN5LXRydW5rCisxMDEwMyAwY2U2NTkwNDdiYmYzMjI3Y2IyYTFhYTQ4MGVjMzZmYWJmOTIzZjk2IGxlZ2FjeS10cnVuaworMTAxMDQgNWFhNzAzN2ExZTNmYjUwZDkzMjI0ZDZiZTAyMWMzYmRiYWNmMjdkNiBsZWdhY3ktdHJ1bmsKKzEwMTA1IGEwYzdhYTA1MjJkZTEwZDlkN2JjMDIzY2YzYWQ4ZDk1NDQyNTU4Y2QgbGVnYWN5LXRydW5rCisxMDEwNiAxNjU0NTYyODI0MTIwZGNmOTliOGY4MjZiMTRmZmYwZjc3YjQwMjRjIGxlZ2FjeS10cnVuaworMTAxMDcgNzk2MGRhMDU0OWM0NzQzZTI5NjRiOTk2ZDhjNmM2ODJiMmIwNjg2NSBsZWdhY3ktdHJ1bmsKKzEwMTA4IGRiMWU1MTRmMTYyOTczMDJkNDU4YzlkYTg0ZDVmMjQyNDkxY2Y4NWMgbGVnYWN5LXRydW5rCisxMDEwOSA0MjJiYmU4ODVjYmY3MWE2MTJmY2ZlY2UwYTVkYmY4MzdiMGViNGMyIGxlZ2FjeS10cnVuaworMTAxMTAgZDIyY2Y2NjZmYTJjODhjNTA4N2EyZGM4MmNhYjAyNGJjN2Y0YmM1ZSBsZWdhY3ktdHJ1bmsKKzEwMTExIDU1MzQ1ZDZkMmMxNDFjMDJlMjBlMmEyM2ZjNWY2MTkzN2RkZGM2NGUgbGVnYWN5LXRydW5rCisxMDExMiAzZDE1OTBiNWUzZGRmZGVlMmIyNzgyN2Y2YjRkZjkzYjJiZGRiYmE1IGxlZ2FjeS10cnVuaworMTAxMTMgYmJkZDI4ZDM2ZjQyOTc3ZmI2ZjQ5NzJiMjQ1MTQ2OTAyM2RhOGUzZCBsZWdhY3ktdHJ1bmsKKzEwMTE0IDU0NzJhYjYxMGZlOWU0OTk2ZjViMTY2OWVmZTBkMjkyMTlmNjU4ZTggbGVnYWN5LXRydW5rCisxMDExNSBjMTEyNDQzY2FiZTExNmUyMjUxZTAwZjM5ODQ4YTljZTRkN2VmNDRjIGxlZ2FjeS10cnVuaworMTAxMTYgMWMwZjU4Yjc2MDgxYTg3MDI3MDlmOTQwMWRkY2EzMjNkNWQ2YjQ0YiBsZWdhY3ktdHJ1bmsKKzEwMTE3IGM2Mzg3ZTI0MmI3ODBhZmM2ODhjMDZjZjdjZDkzNjAzNDM5MmM1NDkgbGVnYWN5LXRydW5rCisxMDExOCAwOTUwMTI3MTg1ZWFiNjRkNjliODBlMDhhMGYzNGRiMmZlYjNlNjRhIGxlZ2FjeS10cnVuaworMTAxMTkgMmJiZWZlYzE2NTQyMDRiYTVhY2M3YTk5OGJiODg1YTljZjQyMGQ2MCBsZWdhY3ktdHJ1bmsKKzEwMTIwIGY3NzkxNjE3YzJiMjVkOTZkN2ViZDU0NGUzM2FmNDhjMTgyZDBlZmUgbGVnYWN5LXRydW5rCisxMDEyMSBiOTVlNTIzZGNlNmNjZTEwYjE4NjcyMDk1YTM3YmNiZjk3NTQ2ZTA4IGxlZ2FjeS10cnVuaworMTAxMjIgZDhkODg0NDdmM2MxMzE0YzcyMjZhNjRmOGFjMjM0ZjNjNjM0N2JjNyBsZWdhY3ktdHJ1bmsKKzEwMTIzIDdhZDUyMmE0Yzc1M2ExMDRhMWRjNGY3MTU5ZDUxYjVhNWY2NTc1YTYgbGVnYWN5LXRydW5rCisxMDEyNCBkOTJmMTBjNDUxYTEzOGRhNDM0NTFhZjNlNTU1YzA3YTQ4YWE4NGY1IGxlZ2FjeS10cnVuaworMTAxMjUgZGVlNTYwMjVkMzkwYjQxZjNkMGZiNTBjZDg4MjkxYjgwMWMyNjI0YSBsZWdhY3ktdHJ1bmsKKzEwMTI2IDAyYzY2NDI4ZjA0ODQxZGY3MjM3Njc1YWQ1MmRkMTZjMDhlNTQ1NjggbGVnYWN5LXRydW5rCisxMDEyNyA5MzJkZDZiOTBlMTNhNzkyMzBmYjU4YWY1MDVhODRhOTUyNzhmODJjIGxlZ2FjeS10cnVuaworMTAxMjggZWE2ODYxOWZiNTZkNGQ1NDFkM2E2YTQ3OGUwZGQyNTA4YjRmODY0NiBsZWdhY3ktdHJ1bmsKKzEwMTI5IDk1NTJkNGIzZDliNzgxNDI1ZTM4YjJkODBkYzJkNDRkMjc5NjllNTQgbGVnYWN5LXRydW5rCisxMDEzMCBkNjRkYmQxY2QzMmViNDM3OTE4MTYwNTcyNDA2ZGUwNWEzNTU5YjY3IGxlZ2FjeS10cnVuaworMTAxMzEgYjg2NzcxYjBkN2Y5MTg3Y2IxMjFhYTk1NTU5ZGY4ZGUyMWJmNmMyNiBsZWdhY3ktdHJ1bmsKKzEwMTMzIDc1ZDAwNDhjODY0M2RiNWU0YjZlMjUyNjFmYTA1NGM0YWU5ODg0ZWQgbGVnYWN5LXRydW5rCisxMDEzNCA3M2VlYmRhY2ZiNzc2MjNmODMwNWNkNTgwNGNkZmExNWJkYjZmYWM1IGxlZ2FjeS10cnVuaworMTAxMzUgNmIzZDNhMjg1ODFmNGMwZmRkNGVlY2ExYWRjNzg1ZTc5MDg4YzQwNCBsZWdhY3ktdHJ1bmsKKzEwMTM2IGYwMTdjNDg1OGJhOGMzNmFiZjgxOWU3YjcxNGY0YzhlYTAwOGY3ZDQgbGVnYWN5LXRydW5rCisxMDEzNyBmNzVmZjhkNDQzNGQ4N2I1MzUzYjZlZWI0YzZmMGIwYWI0NDgzNjRmIGxlZ2FjeS10cnVuaworMTAxMzggODY5MzczZmEwYmY4Yjg2NGQ0Y2I3OWRmN2QyYTM3MTkyNTZhNTBmNSBsZWdhY3ktdHJ1bmsKKzEwMTM5IGYwM2U2NjVkOWY3Mjg4OWRiZGNmYTYyYzQwODJmMDc0ZTI1NWQ0N2MgbGVnYWN5LXRydW5rCisxMDE0MCA0N2RkZWIwNzk1NzU0NmIzMjA3MzIwNmRmYzI3NjYzNWUwNDVmNDI5IGxlZ2FjeS10cnVuaworMTAxNDEgZWEyZDMyMTdkMGM3MjEzODFlMDkxYjYwMzQwNjk4YzM2ZGY5ZjQwMCBsZWdhY3ktdHJ1bmsKKzEwMTQyIGFjZDM5M2E5M2VkMDQ0YTUyNTU4ZTExYTI1NjczYjZhNzhkMjBlOGQgbGVnYWN5LXRydW5rCisxMDE0MyBmMjg1NWQyYWNiZDM5OTQ0ZjM5MjRiZjI2MjM5Yzg0ODM1NTUzNmJiIGxlZ2FjeS10cnVuaworMTAxNDQgYWJhZTY4YWYzMzRmNjUyYTMyNGE0ZjlmOTQ0YjhmZGE0ODg3YjFhNCBsZWdhY3ktdHJ1bmsKKzEwMTQ1IGM5Mzk0YWVhYWM2YWRjMjdjZmQyYjM2NTdhYTFiODIzOTM4OGE2OGIgbGVnYWN5LXRydW5rCisxMDE0NiAzNWYyOWI3ZGFjZjUxOGM1MmFiNGI2NzU4NmYzYzdjMDI2Zjk2Y2IzIGxlZ2FjeS10cnVuaworMTAxNDcgYWQzNDY3MWNkNGM5NjI5ZTQ2ZmRmMDI0NjFhMmFjNmEzNGYxMjVlMyBsZWdhY3ktdHJ1bmsKKzEwMTQ4IDFmOGM4ZTBiYjVlZjYwMGQ1N2JlMzY3YmE2MjU5MzM2OTljMDY5YjMgbGVnYWN5LXRydW5rCisxMDE0OSA4ZTZhNTgwMTk4ODczZTYwYTBiMDMwZGVlYzEwYjQyMTA2ZTg4MmM2IGxlZ2FjeS10cnVuaworMTAxNTAgMGNmMmZmYWY0YmQ3YzUwZWRiYjQ1NGUyNDg4MzI5MDA5MTY5M2Y0ZSBsZWdhY3ktdHJ1bmsKKzEwMTUxIDFmYjg2OGYyNTQ1OWZlMzZlMjMwNDgwNjQ4YmI5YmI3NzhkYjVhYjEgbGVnYWN5LXRydW5rCisxMDE1MiA1MjhlMmI5NGU4Yjk4NzNhNzYzZDIzN2RiODc5NjdjNGQ2ZWU5NWRjIGxlZ2FjeS10cnVuaworMTAxNTMgMzU3Yjc3ZTM0NWYzNjU2MGYyZWI2ODVlODRmMTljNTE3YjRlYzgwNiBsZWdhY3ktdHJ1bmsKKzEwMTU1IDcxMjJmZjRjNGFiZTY5Y2EyZmEzMmUzMGE0NTFhNzk5YmE1OWE3OWYgbGVnYWN5LXRydW5rCisxMDE1NiBiZGNmNzA4YWU0ZGFlOGNjOTg3YWI1MDYzMmZlMjE3OTAyOTIyNjU1IGxlZ2FjeS10cnVuaworMTAxNTcgNzJmMmFiYWNmMTUxZTQxODQ4ZWU5MThhMjUzNTlhYjI0MmM2MmUxNSBsZWdhY3ktdHJ1bmsKKzEwMTU4IDQwMzAwNTljZjk3YzEzNDEwYTMwYTVmYzc1ZTYzODhiYzMzYjBiZDUgbGVnYWN5LXRydW5rCisxMDE1OSBhNjEwMThhMmE1MDJhNDJmZDk0YTM5NDM2NzMwNDBjNzk3OTJlNzA2IGxlZ2FjeS10cnVuaworMTAxNjAgMmM5YzI0ODU4MWEyMDIzZGVjMmExNDVjYmE4ODBiMjI3NWVmM2RkYSBsZWdhY3ktdHJ1bmsKKzEwMTYxIGUxZTc2NzY2ZDhjYWUxNTYwMjA4MDIzNjBlZWQ1NjE1ZjhkOGE1MzIgbGVnYWN5LXRydW5rCisxMDE2MiA1MzM0ZWVmMTk3NGMwNTVjZTkxZmQ1MDkwYWQwMjM2NWIzYzM2OGM3IGxlZ2FjeS10cnVuaworMTAxNjMgNmJmNzQyNjRiOWMwYzMxNTQ1ZjcxNzc1NWUyNzdhNTNhMjA3NmI5NCBsZWdhY3ktdHJ1bmsKKzEwMTY0IGYwZDMzZmRiMzkyMTkzZjdlYmFlN2E4MzE4ZjE5OWU1ZDc0MjUyYTYgbGVnYWN5LXRydW5rCisxMDE2NSBhZmRjYmVmMTdlYzBmZDA2OTQzNTI5MTQ2NTcxODVmNDJkNjc5ZjVjIGxlZ2FjeS10cnVuaworMTAxNjYgNDgzOTcwMDYyOTE1MTE1YWFjMDQ4ZmU3M2RkNDNmMTc3OWFkZGM1NCBsZWdhY3ktdHJ1bmsKKzEwMTY3IGMyZTFkYjFlMWJiOGZiZDFjYWJlMTQ4MzVmNjY5NmU5Njg5MDI4NGMgbGVnYWN5LXRydW5rCisxMDE2OCAwNGQ3Mzk3OTcwYzIwNjdhN2ZlNGU1YjUzNzg2MDdkMzVkN2E3NzdkIGxlZ2FjeS10cnVuaworMTAxNjkgNTU0ZjJiODc5ZmJiMTFjYjIwZjJmMDk3Y2FkM2MzYzgxMzBlNmQwNSBsZWdhY3ktdHJ1bmsKKzEwMTcwIGY5MjQ3MjdjZDAwYjZhZDk5YTZhZjVlNTlmMDgyZDYxNzE1OWZjMDEgbGVnYWN5LXRydW5rCisxMDE3MSA5YmY4MWQ5M2I5OTViNGMxNWE1NmVkOTJkNmQyNzllOGNmMmFkMjIxIGxlZ2FjeS10cnVuaworMTAxNzIgNTdhNDIxODM4OTdkY2E4NTI1MjI3ZTgwYTIzZThmYzE5MWFlOWRkNSBsZWdhY3ktdHJ1bmsKKzEwMTczIGZmY2RjZjlmZjBlYmM2NmFhNzgyMTEzNGQ1YWY2ZTAwNmUxMGUwOTggbGVnYWN5LXRydW5rCisxMDE3NCA1ZTNjOWQ1MzBiYzFkM2JiNDAyZDRmNjJlNzIwMWVlN2UwOTBhNDFmIGxlZ2FjeS10cnVuaworMTAxNzUgMWNlZDAzNjcxNTc0OWVkODgwN2NjNDdkMzVhODU0ODg5MzBlYzNkNCBsZWdhY3ktdHJ1bmsKKzEwMTc2IGQyM2JmZTA2MTc1ZWVlN2E5ZDYzY2I2NjNjNjNhODQ3ZDdiNjJjM2EgbGVnYWN5LXRydW5rCisxMDE3NyBlNDBmMmE2ZTUyNmRkMmRjMGQzNzVjNDk2YjBlOTlhODQzYjZhYzc2IGxlZ2FjeS10cnVuaworMTAxNzggYWJlN2YxZjQ3NjhiMDFjMGZlZWI0OTA5YTUyY2I0ZGM5ZGRmYTVjYSBsZWdhY3ktdHJ1bmsKKzEwMTc5IDk2YjdjMTMyM2QzMGFlYzljNTkzNGJiYzdmZjlkOGYyZTZmZThmOGYgbGVnYWN5LXRydW5rCisxMDE4MCBhYzg3Nzk2ODU2MmNjZGQxY2I3YzY5OTE4NGFkNTc1YzUzYTU3YzM2IGxlZ2FjeS10cnVuaworMTAxODEgMmNjNGJjMGNkMDM2NzU4ZWQwMDVmMmRkZDczOTdjNGJkMzQ3ZGI1MiBsZWdhY3ktdHJ1bmsKKzEwMTgyIDRiODI5ZTZjMGRjNTU1YTUwMGFjNjkzMGVhMmQwMzZlMzk2NzEyOTcgbGVnYWN5LXRydW5rCisxMDE4MyAyY2QxNDZlMmEzYTBkYjIwNjYzNWIxMTk5NTI1ZGIxZDdiYTIzMDlmIGxlZ2FjeS10cnVuaworMTAxODQgYzlkNTQ2ODA5ZTRmOGUzNzBhNTJiY2ZlMDY4NTE2ZDI1MTUwNzgyMyBsZWdhY3ktdHJ1bmsKKzEwMTg1IGEwMDNlMTRmZWQ4NzcyMzkzMjU0OWYxYzJjM2I0YWVjMGUxZDFlOTcgbGVnYWN5LXRydW5rCisxMDE4NiA1NWUzZjg5MWRiYjVkN2RmMmNmOTJjMjlhYmNiN2ZkNjViMGFhNTY0IGxlZ2FjeS10cnVuaworMTAxODcgMjM2MTQ2NTBlMjliMWRlZWVjYzJmN2UxODliNmU4ZTQ4NDI4NWY2ZSBsZWdhY3ktdHJ1bmsKKzEwMTg4IDQ5OTFhYWFiMTdiZGVmNTUxMmViZTNmMTRiZWRjMDQ2MmJmOWQ0ZGQgbGVnYWN5LXRydW5rCisxMDE4OSBhYmI4MDJjMjE2YWQyNDM2NjUxYWM2YTJjYTMxMjM1NDE2ZTg3YjM0IGxlZ2FjeS10cnVuaworMTAxOTAgNzA2ZTRiOTU0ODYyNDhhN2Y5NTE1ZTdhYmQxYmMwNzRiNmEzNzExYyBsZWdhY3ktdHJ1bmsKKzEwMTkxIDU2ZGNmYzI3NzEwYWI2ZWYzYjNlNjI5OWU1NWZkOTk5Njg4ZTFhZTYgbGVnYWN5LXRydW5rCisxMDE5MiAwY2JjOWRmODgyYjZiZGRmNGRhNDUxNWU5YTRlNzlmYTI4Yzk0ZDQxIGxlZ2FjeS10cnVuaworMTAxOTMgMjRmZjY5YWQ0ZGEyMjM5ZmUyZGY2ZmI0OWZiZjg1ZmJlOTc5YzM1NyBsZWdhY3ktdHJ1bmsKKzEwMTk0IDhkYTcxYzUxNTcxNmFkY2Q2M2NhNzQ4ZGIxNDg0ZDk1NTgwODM3MTggbGVnYWN5LXRydW5rCisxMDE5NSAzODhiMDk3YmRkYjk1NTFhYzc2OGMxYjk3NmIwZWQ5MDdhNTI0NGJiIGxlZ2FjeS10cnVuaworMTAxOTYgOTI3MTM0MGM3ZTBjYzk4OTQwOWI4ZTc5NDMxZWY2MjAwMDM0MDFhMyBsZWdhY3ktdHJ1bmsKKzEwMTk3IDk5NWFlYTA5MjkxNzMzYTY1ODJkMzg3YzlhYWQyNzc3NDM4MjJlYjUgbGVnYWN5LXRydW5rCisxMDE5OCBmODM0MjVjYzdlOTY3NWUxODQwODE1NTNhZDNiZDBiNWMyNjBlMGFjIGxlZ2FjeS10cnVuaworMTAxOTkgZDIxZGM1OWM4NmQ3NGQwYjAxYjQwYWJkOTc2NzNlNTA3ZjgzMDJjOSBsZWdhY3ktdHJ1bmsKKzEwMjAwIDVjN2JjZTA1M2QwMzg4NmVmZDkyZmU1NWU3NjVlZGJhZGExNDdkNWYgbGVnYWN5LXRydW5rCisxMDIwMSBmMDkzZmNmZDU2MjVlMWRiOTQ4YzQyNWU2Y2IyNzZiYzU4MTAxZTY1IGxlZ2FjeS10cnVuaworMTAyMDIgNjczMThkM2ZhNmRjZDY0YTM5ZTMwZGUwOWZlYmQ1MWU0OWUwMzExZCBsZWdhY3ktdHJ1bmsKKzEwMjAzIGQxMDNjMDE4MGIyZGUwNmU1NWU0NGQxMDc1OTdjYzQxNTc2ZGNhN2QgbGVnYWN5LXRydW5rCisxMDIwNCAxYmI5NDNjZDJjMjNkYzdkMzNmYTc2MDY1NDI0ZmEyMDY5NmUxYzFmIGxlZ2FjeS10cnVuaworMTAyMDUgNjYzMzY3Y2ExM2Y4MTY0MDFmY2ZmOGEyYmIyZjQwMjVjOWZiOWE4ZSBsZWdhY3ktdHJ1bmsKKzEwMjA2IDA5NTYzNmI4ZmFiN2U4MTFlNzcyN2MyZGVmOTAwNzFmYmZlZDIzNzEgbGVnYWN5LXRydW5rCisxMDIwNyBjYjI1Njc5ODM0N2ViOTVjNjE5MmM2Y2RhODE2MWIxNzA3NDBmMDJiIGxlZ2FjeS10cnVuaworMTAyMDggNTJkYWE3MGJiMDg0OTM0NTIwNTM3YjVmOWFlMjJkMWE0YjEzNTNjMyBsZWdhY3ktdHJ1bmsKKzEwMjA5IDg5NTgyZmExODI0ZmJhOTk1NTdiMDJlOWM3ZGYwMTYwYTE5NDQwMmIgbGVnYWN5LXRydW5rCisxMDIxMCBjMTA5ZDVjYWQxMDA3NTZmNTA1OTU5NjExYzBiNGY0NGU4M2M1MTJhIGxlZ2FjeS10cnVuaworMTAyMTEgOWMzN2VkODg2OGI5ZWZiYmM5NjhmOWVhNTRmOGQyZTIzMmYyMDQ3NCBsZWdhY3ktdHJ1bmsKKzEwMjEyIGI4ZTFlMTA1NTY0OWQ2Mzc3ODU2ZmQ2MjM2NGE5YTBjYjVhOTE1MGMgbGVnYWN5LXRydW5rCisxMDIxMyAzMGUzMzE0OTY5MzBiNWJhYTk1M2JjZmEyYTEwMTYyNTRmZjU4ZDRiIGxlZ2FjeS10cnVuaworMTAyMTQgNzI1YjM3MGU4NTNmMGUxZjBjZmFmMzU1MTA3MDdhMWE5NjM0NDQyYSBsZWdhY3ktdHJ1bmsKKzEwMjE1IDdhOWFmYWJhODhkODQyY2MzOWU2YjkwYTdjMDY2ODgzODVmMDE2MjUgbGVnYWN5LXRydW5rCisxMDIxNiBlZDMyMDAwMWMyOWE4NzcxZTcwNWYyNDIwOWEwNmRlNTgzNjk5ZTEwIGxlZ2FjeS10cnVuaworMTAyMTcgNWQ3ZTRkMjBjODllZGQ5OThiODBiMDUwYzdkMzExZDM1MDcyOWNmYiBsZWdhY3ktdHJ1bmsKKzEwMjE4IGJiZmQ5NDZiMGIzOGM4ZjE2ZTVlODdjM2UwNjlhOTU0MDk1Mjc0ZGUgbGVnYWN5LXRydW5rCisxMDIxOSAxMDkxYmEyYmFlYTRhMjljYTc5N2IzMzEyNjY0Yjc4ZTJkMzRjZWU0IGxlZ2FjeS10cnVuaworMTAyMjAgNDIzYmU3Y2QwNDc5NTIyYjBjM2M1Y2I1ZmVkZjNjZDFkMzY3OTg5MyBsZWdhY3ktdHJ1bmsKKzEwMjIxIGUyOTAyOTAyOTQxNGIyYTljNWU2ODBjNTVjNjY1YjI3ODVmNjVkMTIgbGVnYWN5LXRydW5rCisxMDIyMiA1YmY2NmFiNGRmYjZmNjljNTIxM2IxNTNjN2I2Mjk2YjZmZjYwMjEyIGxlZ2FjeS10cnVuaworMTAyMjMgMjY5YTMyN2Q2MzA1ZjI3ZDUwZmY0NzFkMjgwMzNlYWY1YjgyNzM4NiBsZWdhY3ktdHJ1bmsKKzEwMjI1IGM0OTg0NTFjNWY1NjQxNjNjMjQxODNlN2U3OTk2OGVkMGIxYThmNmMgbGVnYWN5LXRydW5rCisxMDIyNiA0NWEzZGFiZjBmYTgzYzkwMmVmMTNjNjA0OTk2Y2FlMWEyNGZlYjFlIGxlZ2FjeS10cnVuaworMTAyMjcgNzkyYmZkNDczZjUxNjg4ZGQyNGZiOTM0MmRmMDIwMzBiZGNkMzgzZSBsZWdhY3ktdHJ1bmsKKzEwMjI4IGFlZGQyZDBkY2IzMTU0M2JjNTNlODJjNmNjMDZmY2Y2MDJjZTk2OTQgbGVnYWN5LXRydW5rCisxMDIyOSBhNzNlZjcyMGZiNTY2MzZmNzM2MGM4N2ViNGNjZjY0NDhiNDdhYzhlIGxlZ2FjeS10cnVuaworMTAyMzAgM2MwOGZiOWUxMzRmODJjYzg4ODhlYmYzYWU5ZDQ0ZWJlOWI3NmZiMCBsZWdhY3ktdHJ1bmsKKzEwMjMxIDY5NzJlNTBmMzQ4M2U1MTM1Mjg2YzAzZDNjNjkwNDgyYzM2NmQwMzkgbGVnYWN5LXRydW5rCisxMDIzMiAwYzgzN2RhYjViOWVhYzVkZTQ4NTgxNzIwN2QxZTA2YWE3MzFiZGY1IGxlZ2FjeS10cnVuaworMTAyMzMgYjRiMGU0ZTc1OWM1ODFmMDgxNWRlZWQ1YzYwZjQ5Yzc0YjM4ZTc5YiBsZWdhY3ktdHJ1bmsKKzEwMjM0IDhlZjA2NzU1OWQ1YTM4MmY2YjcwMGVjNTBhNzA2NGE2ZmEwYjc3OTcgbGVnYWN5LXRydW5rCisxMDIzNSAwMzNkYmU5MDkyMTgxNTQxZGE1YTFhNTg3Y2FkZDNiNGJmNGI5NzkzIGxlZ2FjeS10cnVuaworMTAyMzYgZmI0YjRkMDY5Y2M3Y2RiNGI2NjUzMmViNDlkNzdhZDA2ZDI3YmRmZiBsZWdhY3ktdHJ1bmsKKzEwMjM3IGE0MTkzMzRmM2IzOTdiNjRlYTBiYmY4NDgyODM2MTBkNDEwZmNjNjYgbGVnYWN5LXRydW5rCisxMDIzOCA3OGMyN2UzMWFjN2M5ODA2ZWMzMGNjNDg0OGIzZmY3ZDQyMWYxYTk0IGxlZ2FjeS10cnVuaworMTAyMzkgYzMxMjU3YjkyNDQ3ZWNlNWQ3NDc2OGRhOGJhMjJlM2FjODZkZGY1MCBsZWdhY3ktdHJ1bmsKKzEwMjQwIGE1ZTJiZWJlMTc5YWU3NmZiNmEyYjcxMjczZGU5OTI3Njc4ZDI2MzcgbGVnYWN5LXRydW5rCisxMDI0MSA2YmZhNjUwZjMxMWRmNDZlNjcyMjk1MWZmNTZiYWNhM2IzYjgyNjkyIGxlZ2FjeS10cnVuaworMTAyNDIgNDU4YTMzYWJiMzljMWFlYTNhZDQ5NjAwMTIwZDk0ODI0MWVkNTdjNiBsZWdhY3ktdHJ1bmsKKzEwMjQzIGFjZjNiOTUwY2I0MzdkMWI3ZWVkZDExNjE4ZmUzYjQzNjgyMDdmZTEgbGVnYWN5LXRydW5rCisxMDI0NCA5YzAyZTBhMjY1MTFhNGZmMmM4NTNiMDcyNGYwZjhiOTVjMTIwNWU3IGxlZ2FjeS10cnVuaworMTAyNDUgOWQwZGMxMTc3NWE0ZTQ3YWU1NGI5NzQ2ZjU3MjJlNDllNzk3ZTA2ZSBsZWdhY3ktdHJ1bmsKKzEwMjQ2IDhiNzg2NTNiYWYxZmQxMjJiOWU3OWJkOThiYThlMzc0YjE5NjI4YTYgbGVnYWN5LXRydW5rCisxMDI0NyA1ODdkMDE3OGY4ZDM2NmYwMDljM2NmMmU0ZTZmNGQ0NmM5MzdmNzcyIGxlZ2FjeS10cnVuaworMTAyNDggN2ZkNzlkZGZiYjhiODg0ZWY5NjRjYTVhMDY3MGMwNmRiZDZjY2RlYiBsZWdhY3ktdHJ1bmsKKzEwMjQ5IDhmMTc3OTMzYzQxZmFiM2MzMTlmNTdiOGZhNDczMDJlNTUwYzdmNDggbGVnYWN5LXRydW5rCisxMDI1MCA0NjlmNjY5MThkZDZjYmJlNTJmZjZkZTQ1ZDI4ODYxOTJhNThkNzNmIGxlZ2FjeS10cnVuaworMTAyNTEgOWY0NmU3MGViZmJiMmQzNjVhNjY2Y2NkNzhiNTM4Y2M0YWViMThmMyBsZWdhY3ktdHJ1bmsKKzEwMjUyIDcwN2QwNjJjYWU3YmZmMWVkNzg1ODUxOWMyYjZiYzY1NWNkMzBlMWMgbGVnYWN5LXRydW5rCisxMDI1MyA5MTcyOTMxZmQ4MGE0OGFjODcxMGFkYjE4YzAyNzNmNjBmNzM0YTdjIGxlZ2FjeS10cnVuaworMTAyNTQgOGE1Njc0MTJiMjFiYmFlZjczYWJmZTYzNTQ0MWY1ZDQ2YTA5OGVkNyBsZWdhY3ktdHJ1bmsKKzEwMjU1IDVmYjY5ZmYyNGNkZGMxM2NiNzRlMmU3ZmJhYmE1YmQ2YTgyZDI0MTQgbGVnYWN5LXRydW5rCisxMDI1NiA1N2YxMWFiNGUyOTIxYjE0MjAyMjAzYzQ5NzdjNGJlMDFlNmUzZWUxIGxlZ2FjeS10cnVuaworMTAyNTcgZGI5NGIxNWJkNjQwMGJlNTMwZjZjM2Y5NjcyMDA5YmNlN2JkMTU0ZiBsZWdhY3ktdHJ1bmsKKzEwMjU4IDVlMjE1ODk0YzU1NWEyNzI4OWEwYWRjMDkyZjc5MTAzNTRlYWM4ODEgbGVnYWN5LXRydW5rCisxMDI1OSBiMTdkMjAwZWRmNjI3YmRmNTFkNTNhODVlNmE5ZWQ1Yjk3ZjY4MjMxIGxlZ2FjeS10cnVuaworMTAyNjAgMWM0MjA2OTlkNThhM2JhMmUyMmM2NjU3ZDQzZDFmNDk5ZGVkOTdjMSBsZWdhY3ktdHJ1bmsKKzEwMjYxIDNlMTE5OGQyMGY5Y2UxMzM3NTdjNDQzMWVmNThiMjdkZmU4Y2E3ODggbGVnYWN5LXRydW5rCisxMDI2MiAzNmIzYjY4NzZhNTgwZWIwZGZjZjQyYzk4ZDM0MTM5OGYxYTg1YzI1IGxlZ2FjeS10cnVuaworMTAyNjMgN2ZjMzJhNjYyNTVhNzdhY2Y1MGQxZWE0ZWQzNTg2MmNkMTUzMDUzMiBsZWdhY3ktdHJ1bmsKKzEwMjY0IGNmZTZmNThkZDBkOGVmOTIwZTFhZDE4ZThjYWI5YjQxYjZlZDlhYzAgbGVnYWN5LXRydW5rCisxMDI2NSA4MGIyNjc0ODM4MjhlNTgyMDNkMjEzYTJmYjhlMGJlNzU5OWY4MDEyIGxlZ2FjeS10cnVuaworMTAyNjYgMDU2OTJjNjYxNDM0YTE1ZDk1YzgxOTQ0MmU5MmY5ODcwNWI4NGY1ZSBsZWdhY3ktdHJ1bmsKKzEwMjY3IDZhZGY5MTdlZTc3MzBkNzM5ZDA2MTYwZmY2ZWRiZWJlYTY0MWMwMGEgbGVnYWN5LXRydW5rCisxMDI2OCA0NGZjN2ZmZGZjNzdmYmVhN2MzM2U3OGFkNDhiMjY4OThmYWRjMTg3IGxlZ2FjeS10cnVuaworMTAyNjkgYjFjMDkxNTAxNDExMGZiZmM2YWQ5ZmY4YzYyMzZhYjgwOTk4MGJhZSBsZWdhY3ktdHJ1bmsKKzEwMjcwIDg4YzUzOTIxYmY4ODA5ZTY2YzU4MDdkYzIxOGEyZGNjMTdjZGVkMjEgbGVnYWN5LXRydW5rCisxMDI3MSBiOWUzMTEyMGEwYzRlYWU5ZTVjNmU2NTUxNjQxMDJlMzM5ZjZmNjBiIGxlZ2FjeS10cnVuaworMTAyNzIgMjNkMDQ5MDAyNTY4OTUxN2FiMTZkOTY4YjI5Yzc4YjZlNDc4NjJiOCBsZWdhY3ktdHJ1bmsKKzEwMjczIDhkNDE0ODIxM2NjMDJhNmRjMTkzNWY5YzhlZThiNThmMTI0ZDBlYzAgbGVnYWN5LXRydW5rCisxMDI3NCAwNzQ1MzE0MGEwOTU1MDA4OGQxZGRiN2E3NTdmMWRjZTg4NGQwZGZhIGxlZ2FjeS10cnVuaworMTAyNzUgMzc1YTkwMTA2NWMxYjg3N2E1ODc5N2FmMmE1ZDM2OGQzMDA1ZTA0MSBsZWdhY3ktdHJ1bmsKKzEwMjc2IDQzM2MzODFjMzcwMGUzYjAxNjU5ODcwNmY1MmM5YzU2YmU0ZDczYmIgbGVnYWN5LXRydW5rCisxMDI3NyA2OGUyYjBkYmJlYzhlYjYyMGEyYjliMGRmZWQ0NDFjNDNkMjAwN2VmIGxlZ2FjeS10cnVuaworMTAyNzggMDY4YTc3NjJlMjg2MTMxNmNiZWQ2NTk1NmUzNmRmZTlkMjBiN2Q2OCBsZWdhY3ktdHJ1bmsKKzEwMjc5IDQ5ZjExZWI0ZWI5YTMzMjIzM2FhZjc5YzAzN2Y0YTc1MTk3ZTU4NTAgbGVnYWN5LXRydW5rCisxMDI4MCBjZjcyMzk5MWQ3NWZhZDE2YWIyZjNlOGQxMDllYzM1MjAxNGYzY2M0IGxlZ2FjeS10cnVuaworMTAyODEgY2Y0MjAxZWY3M2FhMmM2YWI0ZjQ5ZWJhYTcyOTk5YWM1MTRlMTFiNyBsZWdhY3ktdHJ1bmsKKzEwMjgyIDA0Nzk5NjY2NmM4MTg5OGIwMzQxODhhMmMzMGMxYjRmYjVjY2ZhNGEgbGVnYWN5LXRydW5rCisxMDI4MyBkZmZlMWU0NzBlNmNmM2NmMTE3MjQ4YjcxZWUzNGFjZmM1NzcwYzI0IGxlZ2FjeS10cnVuaworMTAyODQgMDY2MGYxN2FkZTYwM2NhMmE0ZmZkMThiMzY2NmUxNWNkY2YyZGY0OCBsZWdhY3ktdHJ1bmsKKzEwMjg1IDZkMDRlOGM4MTdmYmVmYTYwYTVkZTlkMWMxZTUxMTAxNmQzNWEwN2YgbGVnYWN5LXRydW5rCisxMDI4NiA0YzZkYzA3ZjFiNmE2MGNjYmZjMGMxMWU4MGNkMTVjZGM0MjE4MzI2IGxlZ2FjeS10cnVuaworMTAyODcgODFmOTgxODgwMTJlNDE5ZDA4MTk2ODQ5MmNjYWI1Mzc0ZWJkZTYzYyBsZWdhY3ktdHJ1bmsKKzEwMjg4IDVkMTVmNGZkNmQ2OWZlZWU2MzE0NmM3NDExNGIwZGNjOGEzODk4YWYgbGVnYWN5LXRydW5rCisxMDI4OSA3MGNjYmJjYzEwY2NhZDQxODkxNzgxNWRkYzJjOGIxNGRjZTJjZDk2IGxlZ2FjeS10cnVuaworMTAyOTAgZTU4MGFmYTFjODMzODBiMjQ0MmRlNmZlMDg1ZjEyNmNlMGNmZGJiNCBsZWdhY3ktdHJ1bmsKKzEwMjkxIDk5NjdiZTFmNDAyYjFhMDYxMzQ5ZmUzMzg4YTMxOGFhMmNiMjkxYzAgbGVnYWN5LXRydW5rCisxMDI5MiA0MTJlNmFiMDNjNmZmYWQ5OTA4MzE3MWVhZjZlMzAwMGQ0MTJjNTBiIGxlZ2FjeS10cnVuaworMTAyOTMgYzA0NzA4NDRjN2JjN2M2ZTViNzA4MGU5ODNmNGMyMzk0ZWUxNjBkMiBsZWdhY3ktdHJ1bmsKKzEwMjk0IDY0MzJjYmFkODI4ZGM5YzhiZjNhNDU1NGI1NTVhMGNiMmUzM2Y1NGQgbGVnYWN5LXRydW5rCisxMDI5NSBhNzI3YWU2YmZlNTBjNTg4MDU0ZDA5NjFjYjFhMzZkMDdkOTBiODE0IGxlZ2FjeS10cnVuaworMTAyOTYgY2M0OTQyZjBlYzRjOTRjYmM5N2E5ZTBhNGE5NDA5OTJlNGZmYTQyMyBsZWdhY3ktdHJ1bmsKKzEwMjk3IDUxMzIyNThkYTc4ZThhZjdiZTg5MzM1ODc5MjJhMmM1MTUwMjZmZWMgbGVnYWN5LXRydW5rCisxMDI5OCA0NjE3MzhhYWE1MzNkMmNjYzhiZTlhZDg1ZmI1YTg1NDU4ZTMyY2E2IGxlZ2FjeS10cnVuaworMTAyOTkgYTM1YjU0MTRmZGQ5YmI2Yjk3NTEzMzRkOWYwNmJiZjAxYzQ1ODFiNyBsZWdhY3ktdHJ1bmsKKzEwMzAwIGQ3YWJhZDcwZjY4MTE0ZDQyMWM2NTE0NGY0MzM3YjJkN2Y5OWVlY2UgbGVnYWN5LXRydW5rCisxMDMwMSAyMDkwZjhmOWQ1ZDJkNDk2MzVjNjBkN2YwNjk2ZjIzYWY1ZjQ2MjRlIGxlZ2FjeS10cnVuaworMTAzMDIgZWQ4NTZmY2NmNjM5N2ZmZTk0N2NhYzAwZjY3NWI4MzljZWExYTM2YiBsZWdhY3ktdHJ1bmsKKzEwMzAzIGQxYjIzNTA0YmQ5OWMzYjE0Mzk2YzVkOGQ5ZDMwOGQ5ZjBkZjJkNGQgbGVnYWN5LXRydW5rCisxMDMwNCAwNTc1ZDVhMTcyMTg1NmQyMDFhYjZhMjRhNTk5MDlkN2RkY2Q5NTdhIGxlZ2FjeS10cnVuaworMTAzMDUgYjg1YTY3NWI2NTAzZTU4NTk3OTlhODdiMDg3MDUwNWQ5NGZhMjg0NCBsZWdhY3ktdHJ1bmsKKzEwMzA2IDI5ZGM1ZDE5MjhiZmUxYTIxNGMwNGY0YmNmYThhYTQxMjU2Mzk1YTMgbGVnYWN5LXRydW5rCisxMDMwNyBiNzFkMWJkZDE4N2RlZTZjOTczYWVjZjRmZDdmZGJmNTI2NmE4MTJjIGxlZ2FjeS10cnVuaworMTAzMDggOTg2YTc0YzNhMjJjYTBmYTdlNDMyNGMwNzNlNTQzNTk5OTZmZDkzNCBsZWdhY3ktdHJ1bmsKKzEwMzA5IDhmMGUyOWNlNTllZjQxNzhlN2NhMTUwOGJkYjIxMTliZWNmZWU3YzAgbGVnYWN5LXRydW5rCisxMDMxMCBlMmZiMjU3ODQ1MzA0OWUwOTQ3NzJhZDY2MTNhZGYxOGY1NzY5ZTVhIGxlZ2FjeS10cnVuaworMTAzMTEgMzQyOTllMDk2ZTM1MzkwYTM0MmRjNzhkODZiOWY0MzZhNjQ4ZjZhNyBsZWdhY3ktdHJ1bmsKKzEwMzEyIDFmOGYyMDAyYmZiOWYwNWE1MGE1N2FlZjc5ZTQ2MmZiOWI4ZmE1NmMgbGVnYWN5LXRydW5rCisxMDMxMyBkMTRiNzEyMGM1NTE4ZDFlZGJlMzM0YzcyZWNkM2Y2NGU1ZDJkNzZlIGxlZ2FjeS10cnVuaworMTAzMTQgNjQzZTk3MjhhYTQ5MmU4NDZlNWE5MTY5MjU2OGQzNDA2Yzk3ZmU5NCBsZWdhY3ktdHJ1bmsKKzEwMzE1IDE0N2MxMDY3Y2EzM2QxNGVhOWI1OTVhOWNiNzM3Mzc2YjZkOWRjNTAgbGVnYWN5LXRydW5rCisxMDMxNiBjYTczNWI4NGE5MzlhNWEzNGQxZTAzMjk0NDBkYTVjOTBiZjhiZTE1IGxlZ2FjeS10cnVuaworMTAzMTcgOThmNmVkMTMxYjc1Y2VmNDNmODY3MTg1ZGIzZDQ1YTM5NjFmMTQyNiBsZWdhY3ktdHJ1bmsKKzEwMzE4IDU0ZDhlODVkM2MyODdkYzI1NDA3N2UxZGI3MmFkMDdhNDg2MmQ0MDIgbGVnYWN5LXRydW5rCisxMDMxOSBmYzk1MDQzM2QxNThlNTZmZDE0NWE1NDc3MjlhYWIzNWRlYzExY2I1IGxlZ2FjeS10cnVuaworMTAzMjAgZDRmNTMyMWI5ZDllODU2ZmMyYzZmMDA5N2E3MjIzOWEwMjFlNGMyZSBsZWdhY3ktdHJ1bmsKKzEwMzIxIGFhYTIwNGEwNWY4NDIzMjcxNTFkMjkzYzUxNDA4MjllOWZmNDdkZDAgbGVnYWN5LXRydW5rCisxMDMyMiBjYTE4NTA0ODFlMDJhNDFhMzJiMzg4MzY5YjM4OWVhZDU0YWQzNDQ2IGxlZ2FjeS10cnVuaworMTAzMjMgNDkxZTMwMDVmNTRiNTQ2ODZjYmYyMmZmNzQ5MDkxZmU4MTE3MmJkOCBsZWdhY3ktdHJ1bmsKKzEwMzI0IGFhYzU4NWZlOTQ1MmZiZGVmYzg2ZjRiMDcwOTBjMmJmYzk0ZjdhYWUgbGVnYWN5LXRydW5rCisxMDMyNSA2NzA5YTAyZjY3MTgwMzhkZjEzMmQxZTFjNzUxMTcxZGFjYjAyOTYyIGxlZ2FjeS10cnVuaworMTAzMjYgOTQ5YjU5ODIwMTg1YWY5MTFiODc0ZDkyYjkzNjk4NzQ3MDc1YzNlNiBsZWdhY3ktdHJ1bmsKKzEwMzI3IDZjNmE0OGJjNTgxNzNlNzA0ZjU2Y2Y4ZGVhZTg1ODRiZWQ4NzVmZWYgbGVnYWN5LXRydW5rCisxMDMyOCAzYzRmNzM2ZDVlMDEwY2NkNjI3YzUyYzVkYzNiZjUzNDRlZGIzMjMyIGxlZ2FjeS10cnVuaworMTAzMjkgNGZiZTZjOWM1ZDgxMWZkNGYzZWNjYzQ1Njg1YzI3YWM4OWQ0YTU3OCBsZWdhY3ktdHJ1bmsKKzEwMzMwIDlkM2I0MDFiYWM2ZGUyYzcwOTNkYjg3NmRjNjJmZjc1NzVjNzlhODEgbGVnYWN5LXRydW5rCisxMDMzMSBkYjFlNDlkNTFmZTEyYzI3NThmNzkxMmEwYjc4ODBhOThhNzI5NWE4IGxlZ2FjeS10cnVuaworMTAzMzIgNmU0ZWEwZWRhMjJlY2M5YmQyZjgwM2VkMDc5ZWM1MWVjZDE1YjI0MSBsZWdhY3ktdHJ1bmsKKzEwMzMzIGYzNGE2NThlN2MxNTY1YjYxNmU0ZjkxNmNkMzIzOTMyMjMxYWI2YzQgbGVnYWN5LXRydW5rCisxMDMzNCAyNjFjNjM5Yjk4NDczMjU0ODc1MjU2MGRjYjU2YzBlZjAzMjU3N2E1IGxlZ2FjeS10cnVuaworMTAzMzUgMWYxZjk0OTUwNWFmMDRhMTE4ZWVlOGM3N2JhYWQ3MmU2ZDE3NTJiYSBsZWdhY3ktdHJ1bmsKKzEwMzM2IGI3NWIyZjlkM2NlMTNlOTZhNjhkMzA2OGM1YWE0ZGM5YzJkZDc0NTYgbGVnYWN5LXRydW5rCisxMDMzNyA5NTY3MTllYTVmNWE2ZGJjYTRmZmY5MzJmYmEzNjcwZWUwNGYyMDJlIGxlZ2FjeS10cnVuaworMTAzMzggYjg0Nzg1MDRiNzc5YmIyNzdmY2QzOGUyZjJjYzAwYzc2ODJjODMwMCBsZWdhY3ktdHJ1bmsKKzEwMzM5IDg0MmVkNmJiZDA2NjBhN2FhOTUyNTI1NGRlYmMwYWJhNGM1YWNhMTYgbGVnYWN5LXRydW5rCisxMDM0MCBiMGIzM2EzNTdjNzllZDY0MDE2MmZiNzlkYjVkN2JlNDhhNTQwYWQzIGxlZ2FjeS10cnVuaworMTAzNDEgOWUxMGM4NjJhYmZjMWEyODBiOGJhYWM2ZWZhYTljZTEzNDE4OWM1NiBsZWdhY3ktdHJ1bmsKKzEwMzQyIGU4NWQ2ZGI3YmY5Nzc1MGE0MGI0NGE4OTIyOWFhZGE2OTk5YTZjN2EgbGVnYWN5LXRydW5rCisxMDM0MyBhM2FkYjE2ZjA4OTVmMGIyOTljYjcxMTI2MjcxYTY5NzBlODQ0YWU1IGxlZ2FjeS10cnVuaworMTAzNDQgZDc3M2RiMDYzNTVjMDY5OGQxYWZkNzVjNzBjMDgzZjAwZGI2YWU4ZiBsZWdhY3ktdHJ1bmsKKzEwMzQ1IDIxYTdlM2MzMjRkZjdmYWNlOWZhMDAzY2E5N2MwNGNkM2JlZDQ4ZDYgbGVnYWN5LXRydW5rCisxMDM0NiAxNzZiOTllNjk2NWJlOTMyNjg2MzFlYWY1ZThjM2ZkNDYzZGQ0MGM2IGxlZ2FjeS10cnVuaworMTAzNDcgYjY5ZmE5ZDE0MmNhNWE3OGMzZDZmZWZmMjQwMDg4ODU3OTVkZTRlMSBsZWdhY3ktdHJ1bmsKKzEwMzQ4IGM3NmFkYWY1MTJkNjU1M2FlYmYxZjQwNzUxNzQ5OGI0ODE5MGQwNTMgbGVnYWN5LXRydW5rCisxMDM0OSBhNjFmZGI4YTQ0OWVlMWYwMzYzYmJlYzBlODI4ZjAzMmMwZGU1YzAwIGxlZ2FjeS10cnVuaworMTAzNTAgMzFmYThhMGZkMTc4NzJlNDJmZGFkNzcwOTRkMjE5MDY1NWIyMTEyNiBsZWdhY3ktdHJ1bmsKKzEwMzUxIDZiYzRmODA3MjVkNmUyOGRiNGY2ZDMyZjg3NTQ5MWQ4N2IxOGE2OTAgbGVnYWN5LXRydW5rCisxMDM1MiBkMTUxODFhMGNmYmFiODYyNWExMjg5MmRmNDFkYTQ1YTliYWMzNjYwIGxlZ2FjeS10cnVuaworMTAzNTMgYjVlZGUxMzNkOTIxNmFlZmQ0MjhjODUxM2EzYWJkN2UxMDRkZTEyMyBsZWdhY3ktdHJ1bmsKKzEwMzU0IGQwN2I5N2QyOWE5ZTMyYTEyY2QxNTgzOWEzMDhkNGM1YTVkZjdjYzQgbGVnYWN5LXRydW5rCisxMDM1NSAzOTIzODhjNTJlMjE3MTdlZjIzZTNlOTgwYWNiMGMwNjhjZWY1ZWVhIGxlZ2FjeS10cnVuaworMTAzNTYgOGY0MjVmOGY0YmUyZGY1ZGUwY2I3N2I0Nzc1YzZhZjFmY2E1YmIyYSBsZWdhY3ktdHJ1bmsKKzEwMzU3IDBhODczZjJiNjRmNDE4MmEzYjgyMDdjNTk3YWI4ZmEyNDNiOGYzNjUgbGVnYWN5LXRydW5rCisxMDM1OCA4ZTUyMjM2ODBhOWRhNGM2ODlmYmRiMmNiYzQwNTJhOGVlYWUwY2I1IGxlZ2FjeS10cnVuaworMTAzNTkgYWMyZDFjMWYxOTcxZjJhOTNkZWQyMTdmY2M3NTRhNmRmMjBmOGRhYSBsZWdhY3ktdHJ1bmsKKzEwMzYwIDQyN2E5YjFjOWFiZDhlMTIwZTJiZjBiYzllN2VkNmY3YTZmNDAxY2QgbGVnYWN5LXRydW5rCisxMDM2MSBiZGU2OWRmYzIyNGYwZTczN2I4NjY4MDYzZGNkNTZjNmZkMWM4ZGIxIGxlZ2FjeS10cnVuaworMTAzNjIgNjM3MGYxNTkzYzcyMGI5MmExM2RmNzI3YjlmMzFjZDVlMmNiYjVmMyBsZWdhY3ktdHJ1bmsKKzEwMzYzIGIwZmJlNmI2ZGNiZjExYjFhMTAyMTJjMzk3M2EzNzg0MmQ2OTIyMjQgbGVnYWN5LXRydW5rCisxMDM2NCBlODMzYmVlNWQwNWZiMjRlNzQwMDgyZGNkZDYzYWFkOGRiMmMxZWI2IGxlZ2FjeS10cnVuaworMTAzNjUgZGZjOGRlOGYxZWMzZTY5YjI4MjNjZmZkZmRjNjA5OWU4YmFlODc0OSBsZWdhY3ktdHJ1bmsKKzEwMzY2IDQyZDNmMWY3MWM1NmNmYjk5YjliZWEwMWFjYmRiZGMwYWMwMWMzYTAgbGVnYWN5LXRydW5rCisxMDM2NyBhZTk3NzhjNGZmY2FmNjM2OGU2ZTBlYThlYWZlMjg5NTJmNjRjZjJiIGxlZ2FjeS10cnVuaworMTAzNjggZWZiYjdlNTdlNmY4NmZjMGY2MTAwZTQ0ODQyMmQ4NDU0Mjg0YzE5NCBsZWdhY3ktdHJ1bmsKKzEwMzY5IGY4ZjY2M2I0MzJiNDM1NmE4YmFlMjA3MGE2NjdiYjBlODllZmY3MzUgbGVnYWN5LXRydW5rCisxMDM3MCA0MWM3ZDUyNDNiZTkzMWY4M2ZlZDYxYjZjZjIzOWVkMWU5OTUzMjg1IGxlZ2FjeS10cnVuaworMTAzNzEgOGEzODljOGZlNmVmZDJhMzViYTMyNzk2ZGU5ZDdmNDIzMGU2ZWJhOSBsZWdhY3ktdHJ1bmsKKzEwMzcyIDM3MjM0ZTFiYjc1ZmZkZGViODUzMWI1NGU2OGZjYzRmZGVmOTVkODAgbGVnYWN5LXRydW5rCisxMDM3MyBkYmQyZGUyNmM4ZDIyNWZmZWMwZmFiZmQ5ZTc4ZWE5ZGYwOWFlMGUxIGxlZ2FjeS10cnVuaworMTAzNzQgOGM5MzU0NGI5NWU0YjNjMWMxNTY3NDk4NmYwYjlkOWEyNzBkNjhhMiBsZWdhY3ktdHJ1bmsKKzEwMzc1IDI2NzM4NDg0MzdjMzRkNGVkM2ExMTA0YjY4ZjI2Y2NkZWY0YWFmOTMgbGVnYWN5LXRydW5rCisxMDM3NiBlNjA2NmI4MTNhNzE0ZDE1ZTk2ZTQyMTc1MzMyZjQ5ZjNiMGYzZjk5IGxlZ2FjeS10cnVuaworMTAzNzcgMjlhYjNmNjAyZDAwMjNiNWMxOTM3MzI2YTQ3OGI4ZGI1MWExNzhhZSBsZWdhY3ktdHJ1bmsKKzEwMzc4IGRmNjM2ZGVkMmU3MDJiZGRmZGY4ODIyYWE4YjhjNzI5NjRhYjg2ZDYgbGVnYWN5LXRydW5rCisxMDM3OSA2YTAyOTllYmNjZWY5MGQwM2Q0YzgwMGZlM2FlMTc0YjU0YzZhODlhIGxlZ2FjeS10cnVuaworMTAzODAgOGYzYmIwYjE4YTgyYmNlNDA3MTljOTQ0ZDEzMzBmYThiNDJjYzE3MiBsZWdhY3ktdHJ1bmsKKzEwMzgxIDFlZmVlNTAzMjU5ZTUxYTQ4ZGQwMTY2MTAzYWYzYzk1NTI2NTA5NmYgbGVnYWN5LXRydW5rCisxMDM4MiA5YTI0NmQ3NGZjYjc1MmExNDZkMzRiOWY4YTExOTFjOGE5Y2I3MGE2IGxlZ2FjeS10cnVuaworMTAzODMgYTExMDQyMWQ4NmI3MzE0MDAwZmMxODlmYzBlN2NlYWZlNzRiZWY1ZiBsZWdhY3ktdHJ1bmsKKzEwMzg0IDE3MzY4YzkyYzc2OWE1M2JjNDM5YzAzNDExMDE1ZTk1MmM2NjQwYmIgbGVnYWN5LXRydW5rCisxMDM4NSAzYmQ2NjhkZjZlZmRjMmQ2MzUxM2Y4ZWY2ZWQwMjc5ZDcwYmM5NWI2IGxlZ2FjeS10cnVuaworMTAzODYgODBiMmFjNjFmZTAzOGE4YmI2OWNiMGQzOTQ0MDQ0OWE0OTkxNzY5NCBsZWdhY3ktdHJ1bmsKKzEwMzg3IDRiNTY2NmRmZjVlNjcyNDk2N2E3NTM5YjkyNTFjNjUxMTZmODg1ZjkgbGVnYWN5LXRydW5rCisxMDM4OCAzZjhiNTU2NGYwYzdjMjllMTA3YTU0NDE0NTczOGRiMzg3MDNiMTVhIGxlZ2FjeS10cnVuaworMTAzODkgMWExZDMxNDdiMDI3YzRiNGZlNTc4NzcyNjE5NzY5MjVkZWY1Y2E1ZCBsZWdhY3ktdHJ1bmsKKzEwMzkwIDVlYWZkM2VkYTBhZjRjYWVlMGI2MjI1MjUxM2ZiYmQ3ZTA1YTcwNjEgbGVnYWN5LXRydW5rCisxMDM5MSBiNzFhMTI1Nzc2NGIwMzI1OTJlNjM3MDI1ZWNkNjU3MDI2ODNlOTA2IGxlZ2FjeS10cnVuaworMTAzOTIgMzFmOWUyNjc1MTk5ZTE5NTYyZGQ4ZjE3MTNiY2IzMmVmZGM1ZWEwYSBsZWdhY3ktdHJ1bmsKKzEwMzkzIDU0MThjMDczMGYwMDk2MTYyYTViZGU1ZTAyMWQzZGU5MmYxMTQ2N2MgbGVnYWN5LXRydW5rCisxMDM5NCA2NGYzZTllYmYyMWFjZjMyNjg0MTI1MGU1YmMxMzIzNGY1MzJmMzYwIGxlZ2FjeS10cnVuaworMTAzOTUgMWRhZWNkNjVhN2M1ZWZjOWUwY2QxMjVjNGM0OGI2ZjhlOGFkOGVmOCBsZWdhY3ktdHJ1bmsKKzEwMzk2IGJhOWIxYjRhZWFiOWVlOGFhZTVlN2VhNzg0YmZkZDZhMDJiZTE0NDMgbGVnYWN5LXRydW5rCisxMDM5NyAxMzE4YTQ3NGJhYTA2ZGQ2N2ZhNjEyZWQxYTNiMzdlZjA2MjIxZjc2IGxlZ2FjeS10cnVuaworMTAzOTggMDkwNWY4NjY2ODA3ZjMzODc0M2E3NmY1MzgyMThjMjBjOWZlYzNiYSBsZWdhY3ktdHJ1bmsKKzEwMzk5IDVmYWI1OWViNGZhNWExY2Y0NzE5Zjg1YmJhNzA0ZDI0YzVjYTgzODcgbGVnYWN5LXRydW5rCisxMDQwMCA2YmMwNTM1ZGJmNTI3NzkyZjhkZGFmYWRmMzM3N2Q0MzQ0NGRhMDkyIGxlZ2FjeS10cnVuaworMTA0MDEgZGRlMGRmZmIxYTA4YWFlNDE4OWJiMzYwZTBkNDk1ZGIyNzY0ZWVkYSBsZWdhY3ktdHJ1bmsKKzEwNDAyIDBiZGNlZGNkMTU0OWI3NTk1MWVjM2ViZWMwZjEyZjkwNDdjOWUwYzUgbGVnYWN5LXRydW5rCisxMDQwMyA2YmU3YWIyNDZhMDViNGM4MWIxMjYzYThhYTZkMjAzZDUxODk3MmRjIGxlZ2FjeS10cnVuaworMTA0MDQgMjNjYzZhYzVlYmE2YzA3NjMxYzdjNzZjNGU1OGE4MGFhODRlODNjZiBsZWdhY3ktdHJ1bmsKKzEwNDA1IGRlOTBiYmU4NTAxMzdmZTFlZmI3NGI1YjcwOGNiOWRlMDE4ZTBiZDcgbGVnYWN5LXRydW5rCisxMDQwNiAzMzQwN2MwZWYxNGZmZTU3YzEzYzU1ZTVmMDA0MGEyNmY0OTJiNjg0IGxlZ2FjeS10cnVuaworMTA0MDcgZTI5ZDQzNWFiMTQyZjFlODVkZWNjMzFjOWU5M2Y4Njc3ZjdlOWE0OCBsZWdhY3ktdHJ1bmsKKzEwNDA4IDExMjZlNzJlNWVlOWM5YTQ5YTFiMmQ3Yzg3ZmMzNWIzMDUxY2U5ZTUgbGVnYWN5LXRydW5rCisxMDQwOSBlZjMwMGU2YjBjNzFkYTBiZDVhODFlY2QyMDhiY2I2ZDczYzk5YjY5IGxlZ2FjeS10cnVuaworMTA0MTAgOWQ4YzA2NjZiMGNiYmMxNGY0YmM4NjlhNzA1MjE5MjAyZGRhOTcwMyBsZWdhY3ktdHJ1bmsKKzEwNDExIDg2OGRjODRiYjViMjlhYmUyZjdhMGQ2MTc2OGM2OTAwOTUyZDAzNjQgbGVnYWN5LXRydW5rCisxMDQxMiA3YzdmZjFhMzY1MjE3YjQ1M2FlMTQ1M2Q0MDk0NWYwYWY5YjgwZmMzIGxlZ2FjeS10cnVuaworMTA0MTMgMDUyMmFiMjEwZmNiYjA4YTc2NTFmYmMwYTUwZjI3YzY4ZGE2YWJlMCBsZWdhY3ktdHJ1bmsKKzEwNDE0IGIyYWRjZDczYzE1MGI4MmM1Mzk5Nzc0Zjg4MDQxY2M1ZGQ5ZjY1OTAgbGVnYWN5LXRydW5rCisxMDQxNSA3MDhkZTRjYjk2ZWIyMWJkYWM4YmY2NWRhNDA5NThlMjAwZDNkNzVhIGxlZ2FjeS10cnVuaworMTA0MTYgYWE3ZDY5ZDY3YzgxZDdkYTM5MzNhZTA4NTBjNGZlMmMxYzFmY2E0OCBsZWdhY3ktdHJ1bmsKKzEwNDE3IDFmMzhhMmI1NDhiZjlkMDZhNmEyNTFlODRiMDViZTYwN2ZiNzQ1ZDQgbGVnYWN5LXRydW5rCisxMDQxOCBmMjIzYmY2MWI0ZWUwM2I4ZWY0ZWRmMzllOTliNWU2NTIxMTFmNGMwIGxlZ2FjeS10cnVuaworMTA0MTkgY2E0ZTI1ZWY2MWY4MDY5YmQ2OWE2MjQzY2RjZDQ1ZTNkY2JiODQxNiBsZWdhY3ktdHJ1bmsKKzEwNDIwIGQzZWMyZTUxZjY3YTIxYjhlNTQzMWUxNGMzZmU3MzY1OWNkYTBhYTggbGVnYWN5LXRydW5rCisxMDQyMSAwNTdlNDIyZDJjNjEwOTAwOGUyMDk1MjdkYjBkNDY4ZGI1NTllYTEzIGxlZ2FjeS10cnVuaworMTA0MjIgOTFlY2RhOWQ1MjQ1MWRmNzNlZjZkMDUxMDBjY2E5YTM2M2U4NWM1MSBsZWdhY3ktdHJ1bmsKKzEwNDIzIGVlMmFhYTJmNzIyYTg0N2NjNmRmZjkxMjI2ZmVjYTlmOTAyNzZjMDggbGVnYWN5LXRydW5rCisxMDQyNCBiMzFhYmMxMzFjM2RmOTQzZjAyZjU2NDNiNTU0NWJlMzYzZmNjYWZiIGxlZ2FjeS10cnVuaworMTA0MjUgMTYyZGIzZDBjOTE2N2UwOWQ2ZDc2OWIwN2IxMzNiYjIxMDIwNjZiOCBsZWdhY3ktdHJ1bmsKKzEwNDI2IGRjMTMyY2MzOTU3M2EwZWE2ZGYyZDI2Yzk5OTA5ZWFmYjU4YzVmMmUgbGVnYWN5LXRydW5rCisxMDQyNyBhZDExNDYyMGY4YzI3ODJkNTc3ZGIyZDA0M2MxNDc1MmQxOWU0OGY3IGxlZ2FjeS10cnVuaworMTA0MjggYTJjMWIzZTE3OTUyNmRkMjRkMDJiZGE3NzRiNTJkNDNiZDUxNDQ3NCBsZWdhY3ktdHJ1bmsKKzEwNDI5IGYwNjkxMzgwOGZlMWRhY2U3NWUxMjIwOWI3NjVjYWZmMWMxNzk2ODUgbGVnYWN5LXRydW5rCisxMDQzMCA1OGQ2ODE1YWYwMDJlNjc4ZmViODczYTk1YmU3ODY2NTA3OWFjYjQwIGxlZ2FjeS10cnVuaworMTA0MzEgOWNiY2I1OTMxZDgwM2Q2ODk2MDAxZWVlNTg5Y2ZmYzY2MzM4ZDcwYyBsZWdhY3ktdHJ1bmsKKzEwNDMyIGY0MmI3NTc3NTVlYjMyYWJlYjZkODI0Nzg3MmJjNzQyYjU2MmQ0M2EgbGVnYWN5LXRydW5rCisxMDQzMyA3MmQ5OTYxNTQwZDg1YjIwMDM2OTQ5ZjE0YjRhNDFjMjg0NjJmNjVlIGxlZ2FjeS10cnVuaworMTA0MzQgOTJlMzYxMTZhZjQyMWJjZmVlYzlmOTA2YmZiZGJjNzZkOTk4ZWRhYyBsZWdhY3ktdHJ1bmsKKzEwNDM1IGViZGQ0MGUyODE2MDI1YzlmOTQzMmJhOWEzOWIwOTNlMDhiMjc2ZDYgbGVnYWN5LXRydW5rCisxMDQzNiBjZDllNjY0YTFhOWZhODRiY2M2MWQyYWQ4MWUxZTJkMjdmZDRiZmE4IGxlZ2FjeS10cnVuaworMTA0MzcgZmMwOGRhMmM5YTBmYTdkOTY4MmUxMWQxMGU1Y2QzOWFiNTk3MGEwMyBsZWdhY3ktdHJ1bmsKKzEwNDM4IDhmMzY4ZGYxNzNlNjg4YzQ2NGM5MDYzNjQ3ZGJjNTBiMTkxYmUzZDYgbGVnYWN5LXRydW5rCisxMDQzOSA5ZTExM2FhMzc1OGRhMTA0OGM3YWNlMzMwN2VkMjc3Y2FhYTc4NGNmIGxlZ2FjeS10cnVuaworMTA0NDAgZmVjOGViMmEzODBkZDUxNzFjNjU1MDk2NzY1NTcwN2U1NDcxMGE5NyBsZWdhY3ktdHJ1bmsKKzEwNDQxIDhjYTAxMDgzMTQwY2I5OTJkMTJiNmNlZDUyM2IxNmJmMTM2YjE0NTEgbGVnYWN5LXRydW5rCisxMDQ0MiBjY2QxYzk2M2U1MDk1ZGRlNzQ0ZWM0ZGEwYzQ5ZTIwOTJjMjRlYzI1IGxlZ2FjeS10cnVuaworMTA0NDMgZDZmY2JkMzcxODU1ZTM2NDdmMTg1OTcxYTIyNzEwNGI3Y2RhMzdhYiBsZWdhY3ktdHJ1bmsKKzEwNDQ0IGFmZDU0Zjg5NWRjMzAzMGRkMzBkODA5N2ZmYmI1ZWU1YTYwOWI1ZTQgbGVnYWN5LXRydW5rCisxMDQ0NSBkMWVhMTNjZjQ2ZjdiYzVhY2ZlNGUzYmQyYjAyNWNkYmQ3Y2I2Y2RiIGxlZ2FjeS10cnVuaworMTA0NDYgZThkMGI4N2M4ZDZiMWZiMGEyMmY1NzgyNjNhYmQ5OGY4YTExZWE4MCBsZWdhY3ktdHJ1bmsKKzEwNDQ3IDhjMjY4ZDBlODgyMjA1NGNjYjUzYThjZTI5YWQ3MDI2NDkyNmJhZDggbGVnYWN5LXRydW5rCisxMDQ0OCBiYmQyYjVkOGQwYjZjMjJiY2E0ZjdlMDJiMDRlMWRmYWFkOTg1ZDZjIGxlZ2FjeS10cnVuaworMTA0NDkgMmVmNmUwNDI0MTc5Y2FmZjlhMzZlNzc1OGQwYTcxNzIyYWM5ZTVmNCBsZWdhY3ktdHJ1bmsKKzEwNDUwIDMzOGYxZGVmNDM3MDliZjRmMzJkNWI4ZDAxZjdmNmY2NDZiODNiY2UgbGVnYWN5LXRydW5rCisxMDQ1MSA0Y2VlZTFlZjk5YjAzMjgxMGZiYjYyMzdkZWIwMTg3NzlkZTBiNzMxIGxlZ2FjeS10cnVuaworMTA0NTIgNDY5Mjg4NDk5YzliZGU5ZDUzYmYyZGQ0YjQxMzM0ZmYxYjRlNGIzNyBsZWdhY3ktdHJ1bmsKKzEwNDUzIGZmMTBiMDMyOGZmMzc1MGJiMzAzMzEzNWQwNjMyNjRmOTNhNzlmOTEgbGVnYWN5LXRydW5rCisxMDQ1NCAwOTE0ODFkYmUxM2Q3YzUxMjc5ODA3YjJmZmRiY2E5MjFjMWUyNDVhIGxlZ2FjeS10cnVuaworMTA0NTUgYzEyYzY2MWZkMTRlZjRiNTdmNTMxN2E5NGEyM2MyYmM2ODVmNmJjYyBsZWdhY3ktdHJ1bmsKKzEwNDU2IDNkYzVkMGZjYjE2N2FjMWM4MzViNGEzNDlkMTExZGEzNzg5MWE2ZjcgbGVnYWN5LXRydW5rCisxMDQ1NyA3NTIyMzU4NDYxODA0MTRkZGQ4NmMxNTdlMzcwNGYyNTQ3MjE4MjdkIGxlZ2FjeS10cnVuaworMTA0NTggNTFkMzFmY2FlZWYzYTIxMDI0ODA4M2RmNzlkYmM2NTlkYjhlYmRkZSBsZWdhY3ktdHJ1bmsKKzEwNDU5IDE0M2M1NTZkZWIyZjg1NTlmNTY0ZGUxNDdlMGJkMmJiNjQ1MWIxMWQgbGVnYWN5LXRydW5rCisxMDQ2MCBjYzQ3NzMzYjRkZDIyYzU1ZDI1ODk4N2FmMWEwYjYxYzUwNjVlNTc1IGxlZ2FjeS10cnVuaworMTA0NjEgODVlODg2ZGIxOWIwNTk4YjkyY2QxYjVkNzdkYTNjZGQ0MzViYzA0YyBsZWdhY3ktdHJ1bmsKKzEwNDYyIDA5OTYzYTJhMjRkYjA4OThlNDNiZjMzMWIzMTVhYWM0ZDc4NWQ4MTcgbGVnYWN5LXRydW5rCisxMDQ2MyBhOTA5YTI4NjlhYzU5YTBiZWNjMGY2NzNhNDI2MWQ1MTJmNjIwYzJkIGxlZ2FjeS10cnVuaworMTA0NjQgMDY4MzAzZjkyNWVhODcyYmQxMWNiZTkyZjgyN2E2OWQzNDA2MDJjMiBsZWdhY3ktdHJ1bmsKKzEwNDY1IDFkMGViMmU5NmQ3Njc5ZTlmN2Y0NmUyMGM3OTQ4YjYwZWIxYmZjNzcgbGVnYWN5LXRydW5rCisxMDQ2NiBhYjRmNjQ1NjFmYmEzMjg4MTM0YTc3NWMzNGQ2ZGY5OTFjOTZkMjU3IGxlZ2FjeS10cnVuaworMTA0NjcgOTcxYjViYmQ5MmVjMDIwZWFiYzBjNzM4ZjFiYzc3ZDRjNWFjZTM5YyBsZWdhY3ktdHJ1bmsKKzEwNDY4IDY5N2RmOTNlNWRkYjQ3NjRjYjQxNWY2NzFjMWUxNTkxY2JiZTNiNmMgbGVnYWN5LXRydW5rCisxMDQ2OSAwMjYzZDMzMjRmMGIyZTk4ZWYxZjY1ZjI3NGM3YzJhYWJmOWU3ODcxIGxlZ2FjeS10cnVuaworMTA0NzAgYjllYjgwNTU3OWJhODYzMWI5MTI4NmUzMWNiNzNjNTlhY2UxNjQyOCBsZWdhY3ktdHJ1bmsKKzEwNDcxIGRlMTA1NjZkZWM1Y2QxYzI4NmU1YmQ3NWVkMjhiYzhkZjVlOWI3NjIgbGVnYWN5LXRydW5rCisxMDQ3MiA2ZTUwNzllOGZhNmUwNTMzZDkyOThiZTY3NTExMmY2ZjRlYzM2ODViIGxlZ2FjeS10cnVuaworMTA0NzMgY2YwY2YyMWI0NTQ1NDc3MWM3ZWY1Y2U2ODdkMGM5Zjg5MWI0NThkNSBsZWdhY3ktdHJ1bmsKKzEwNDc0IDZiM2ZkMjRjYzA3NzZmMzJhMThmNGFmMWEyMTU2YjE5YzI0YTEzMDggbGVnYWN5LXRydW5rCisxMDQ3NSBlOGM0YjNkMzg2ZTRmMmQzMzcyZDk1YzIxY2RmOTA5ODdkNDlmZjI2IGxlZ2FjeS10cnVuaworMTA0NzYgZGFmZmRlN2E2ODkxNzdmMWIxMWEyMDg5YjYxMGE5YTRiOTg0YWRiYiBsZWdhY3ktdHJ1bmsKKzEwNDc3IDg5MzU5ZDA3MmU3MjdlNzJhNmQ2NDVmMWY5ZGM3OGU3YmE4NTUwOWUgbGVnYWN5LXRydW5rCisxMDQ3OCAxZDUyNjUwN2NkOWVjNzNlMDA5YmM2OTQyYTkzZjI4YTMzNGZkMGI2IGxlZ2FjeS10cnVuaworMTA0NzkgM2QxZDllMjVlYjIyYzYzMjU3Zjc5YTlhYTY1YjllMjdjYTYyOWY1OCBsZWdhY3ktdHJ1bmsKKzEwNDgwIDA4MzViOGRmNTRmODBkMjM1NDUxZTJlNmE0YjQ2YjQ2NmM4ODU4NDYgbGVnYWN5LXRydW5rCisxMDQ4MSBiZGY1N2M4NGRmNmFiNTFjYzM0YzhmY2M0Y2I3M2MwZDFkMjk3MzQ4IGxlZ2FjeS10cnVuaworMTA0ODIgYzhhMzExMTQ0NzI2N2ExNGMzMzAxOGExYjMxNzRmMjkwZTBiNzc5MiBsZWdhY3ktdHJ1bmsKKzEwNDgzIGI0MjBhZTg1MjEzYzc5ZjA1Y2RjMzY5NTljNzFhMWIwNDc3MGY4ZjkgbGVnYWN5LXRydW5rCisxMDQ4NCA1ZGIzNDZlOWM4ZjU2MGRjZWIxNmJhYWJlNGRhYjBlYzY0MjcxZjg0IGxlZ2FjeS10cnVuaworMTA0ODUgOTAwMzIwNDkxYjkzNmM5ZmNhM2Y3MjM4NDY0ZDAwZmNkNmFjNjNiOSBsZWdhY3ktdHJ1bmsKKzEwNDg2IGU5ODY2ODY4M2JlZDYzNThmOWM1YTczMzllOTQ0MGI3YjRmMDEwNzcgbGVnYWN5LXRydW5rCisxMDQ4NyBhODQyYzllNjMyODBhOTZmNzM5NGMzMWI3MjEwOTJmMzhhZDZmNjBkIGxlZ2FjeS10cnVuaworMTA0ODggZGJjMTFkZDAyZjA5NTkyMzUwYjlmYWZkMzA1MTU5ZGI4YTE0YmI1YyBsZWdhY3ktdHJ1bmsKKzEwNDg5IDRmNGUyYWFkMWUwYWI1YmEwYWJjMmNlODI2ZTA0OTc2YTI5ZDRmZDUgbGVnYWN5LXRydW5rCisxMDQ5MCBiZjZlOTIwYzBlNzk5ZDE2MTI5NDdiOGFhMWVkMDQ3NDIzN2NkMzIxIGxlZ2FjeS10cnVuaworMTA0OTEgY2EwYzcyNTkxMjExY2Q5MjlmM2Y4NzE0N2E0YWI2NDRlZGY1MTg0MCBsZWdhY3ktdHJ1bmsKKzEwNDkyIDgzYmE1MzA5ZmYyMjZlMWM0YmIyMmQyNWQzMWY1YmNkYmExNDlkMDkgbGVnYWN5LXRydW5rCisxMDQ5MyAyYjA5YTVkMjYzNjg4ZDA3NzdmNmI2YjhlY2Q5MmYzMzE0YTJmY2UzIGxlZ2FjeS10cnVuaworMTA0OTQgNTNkZGU0MjMyNWY4YTk5NDEzMDY5NDc1NjFiZWY5OGQ0ODEzZTM3ZCBsZWdhY3ktdHJ1bmsKKzEwNDk1IDZlOGJlNjA5NmU1NjMwMmZhNTc4YzZkODQ1OWM1YzUzZmE1MDUwMTMgbGVnYWN5LXRydW5rCisxMDQ5NiBiYmJkMGIxMDVlMjczNWZlZTc3Yzk4ZjRhODZhYzFlNDZmYWZkMjI2IGxlZ2FjeS10cnVuaworMTA0OTcgNDY5OTlkZmNmYWUzZjA1MDY3ZjZjYjFjZDM1M2Y1N2MwYzBiMDg2NiBsZWdhY3ktdHJ1bmsKKzEwNDk4IDUyNjRjYWM4ZjkwMzVmMmM3NGI1NDUxYjU3ZjllNjQzN2I0NzRmOTYgbGVnYWN5LXRydW5rCisxMDQ5OSAwMTFhZTcxZmVhOTY0OWExN2E0ODdmNzZiODA3Y2VhYzQxZDhhYjJjIGxlZ2FjeS10cnVuaworMTA1MDAgOWI4OTAyMzM4ZTE0YjcwOWYyMzg1YWNlMTUwNzAwN2EyNWQyNWU3ZSBsZWdhY3ktdHJ1bmsKKzEwNTAxIDkyYmE3YTllM2I5ZDk3MTk4MjE5ZWRkNDZjODA2ODMyNjMzYmM5Y2MgbGVnYWN5LXRydW5rCisxMDUwMiAzYjkxYWZmYTMzM2U5ODRhNjA2MTc3ZGNmMTIyZTNkN2U5M2E5ZjBkIGxlZ2FjeS10cnVuaworMTA1MDMgNWQyYmQ2NzM4ZWI2MmU1NTI1YTVlNTI3ZWYzNjA3MDAwNTIxMzcxZiBsZWdhY3ktdHJ1bmsKKzEwNTA0IGQxNTdlZTgyMTc3NWMwOTkzNDUyYzcyMGNkZjRiMDJmOGI4YjllMzIgbGVnYWN5LXRydW5rCisxMDUwNSA0OWYxY2Y0YjE3NGNjNjNmM2MxZDJkYjMyMGQzMWE4ODlmZWQ5NDIzIGxlZ2FjeS10cnVuaworMTA1MDYgZDFjMWIyMDc1NGE4MTdmZmY1MTQ5YTkxYzEwYTdhOTkwZmE2NTBkMyBsZWdhY3ktdHJ1bmsKKzEwNTA3IGQ5OWE5MDUyNmFlMGIxOTJlZWNmYzIxZTgxOGYxZWMxYTE3YmQ0MGEgbGVnYWN5LXRydW5rCisxMDUwOCBmNTMyNmQzNTg2NjJiYjIxMGI4ZjE0YmJkNTU2MmZmNmE5YmE3YWU2IGxlZ2FjeS10cnVuaworMTA1MDkgNWRjZjliNWQzM2U2ZTZmMGEwZDA0NzZhYzUwNDljNzBjYmQwYWMzMSBsZWdhY3ktdHJ1bmsKKzEwNTEwIDk1MTQyYzhhMDljODZhOTA3OTQyZjAxNjMxOGUzZWUwOTU0ZDQ3NGMgbGVnYWN5LXRydW5rCisxMDUxMSAzZjAzNjAzNzZjYTAwMTUxNjc2ZDlkZmMxOWRlYWRjNThlYzVjZDc1IGxlZ2FjeS10cnVuaworMTA1MTIgNzEwZjNiNzgzNTE1M2JiNzZlNzA5NzMwN2ZlYmViNGIwZmM3ZWRjOSBsZWdhY3ktdHJ1bmsKKzEwNTEzIDVjY2U4MWUyMzM0OTk2Yzk5OGQwZjZmMmEyNjExNTBhNDFjZDU4YjQgbGVnYWN5LXRydW5rCisxMDUxNCAzZmZkNDVmMDVlMzk1OGY1OGU1YmNmZTVjYTA3ODk2NjQ4MWE0MzBkIGxlZ2FjeS10cnVuaworMTA1MTUgY2QzMDkyMDY5ZjVhMzkzOTEyYmMxYTIwOGNkNTYyMGMxNjgyMDhmMyBsZWdhY3ktdHJ1bmsKKzEwNTE2IDZjNTk0OTg4NTcyYTdkZTI3MTM2N2U0NmE1NWMxMzQ1MGVjNGE3NTggbGVnYWN5LXRydW5rCisxMDUxNyBlMDkxZTlkNDk1ZDVhOWQwNjdjN2M0M2Q2YmZmMDQ4NzU1NDY2MDJkIGxlZ2FjeS10cnVuaworMTA1MTggNWYzNWUyNzgxMDMyZTIzMGNlMDUxZGQ4N2MwYjRkMjcxMjQxZjg1MCBsZWdhY3ktdHJ1bmsKKzEwNTE5IDQzYmUwYjkwMjcxNzA4ODc0YzBkZjYyYTY2OWRiYmI2OTFjMTk1YTUgbGVnYWN5LXRydW5rCisxMDUyMCBhMzg1NTA2MTNhZjNkOWQ4ZTllZGJjNGY5YmI0OWFmMTQwNmNkNjdkIGxlZ2FjeS10cnVuaworMTA1MjEgZGYwZmE1ZGM1OTlhZTA2NTRkNzljYzI5MGI5ZTA3ZWQ1ZGNhM2E5NiBsZWdhY3ktdHJ1bmsKKzEwNTIyIGUyMzMzOTY5YTJjYWNhM2Y3ODk4ZDhiMTRhOTQyMjAxOWUyYWVjYjAgbGVnYWN5LXRydW5rCisxMDUyMyA0OTE5ZGVlMTg3ODFjMTM3NzFlNWFkM2IwN2JiZDZlMDA4MmFmN2FlIGxlZ2FjeS10cnVuaworMTA1MjQgYjhlOGFjZTc5Y2YwMmNjZGE3MjU3ZTFkNTc0YTBmYmNmOTU4OGFmMyBsZWdhY3ktdHJ1bmsKKzEwNTI1IGJkMzBhYzgzMTIxNzIzNDE4ODE5M2JjY2JhZjRjZTFmMDVjZTI0OGEgbGVnYWN5LXRydW5rCisxMDUyNiAyNTRmYzkxYjZiMGU3MzgwOTU4MDc0ZmViNDRiN2VjMTY3YjM4NjhiIGxlZ2FjeS10cnVuaworMTA1MjcgNjY4Y2UwZWRiNGYxYzU0MjlkM2QwMDJiNjI5OGFhZTVjZDgyYjRmNiBsZWdhY3ktdHJ1bmsKKzEwNTI4IDA3NzMwYjgyYTE0M2YyOGY1MmZjYTQ1ZWM4ZDY1YjQxMDg3ZTM4NWQgbGVnYWN5LXRydW5rCisxMDUyOSBhOTMwNTJhZTBkZWI1YTRkMTYwZDA5NjhhNzAwYWQ0MjBmYmU1MDcwIGxlZ2FjeS10cnVuaworMTA1MzAgNWRjYzVjNGExOGJkYTY0ODVkOThiNzA5NmRhMjc5MDM5OGM2N2Q2MiBsZWdhY3ktdHJ1bmsKKzEwNTMxIDcwOTlkZTgzYjE5MWI5MjQ2ZmM5MDk5MTQ3MzNiNTViZTdlMjgxMGUgbGVnYWN5LXRydW5rCisxMDUzMiA5YjhiNTc0ZWYwMDcxZTFmOTA5ZmU3NTM4ZjJjMzU5ZjI5MTI1OThmIGxlZ2FjeS10cnVuaworMTA1MzMgY2I4ZDczMzgyNDhjZWY3N2M4NzVmYjM2ZWFhODQ2YTA5ZWZkOWM5MyBsZWdhY3ktdHJ1bmsKKzEwNTM0IGEzZDkxMmFmYzkwOWFiY2RkMmE1MzE2MmU0ZmZhNzQwMmM2Y2JiMzAgbGVnYWN5LXRydW5rCisxMDUzNCA0NGFiYTRkMjZiMDFmYmFlMDQwM2VmZTY1NGY5ZmQwMzQ3NjA2NzMyIGxlZ2FjeS10cnVuaworMTA1MzYgYmNhZjQ4Yjk0YmIzMzgzYzRjYTE3YTkxOWVmODJmZWFiM2UyZDRmNCBsZWdhY3ktdHJ1bmsKKzEwNTM3IDQzZTgwMmMxNmE1YjFhZmJiODYwMGU1OGQzMjJkYjYxY2QyYTdlMmYgbGVnYWN5LXRydW5rCisxMDUzOCA1YWFjZGQwOTc5NDEzOTNkNmRhNmVkMzJhMjUyNDFmNDM4NzQ5MThlIGxlZ2FjeS10cnVuaworMTA1MzkgZDlhYzkyNDYxODMyOWNjNDA5OTcyMTFjMzYxMjZmOTQyMzc4MWVhYSBsZWdhY3ktdHJ1bmsKKzEwNTQwIDc3ZDRlNmY2NjJjMWJlZTA3NmI2MjBmNmUwOWViNzliY2UxM2E1ZTYgbGVnYWN5LXRydW5rCisxMDU0MSA0Mjg1ZjhiN2JhMGIyZmIxNzk5NDdiZTI5ZTY1ZGNiODEyZWExMGMxIGxlZ2FjeS10cnVuaworMTA1NDIgMDc2NmRmNTAzZWE1M2RmNDE2ZDhhNWU1ZWIxYWZhYTI5Y2FhOWY1MiBsZWdhY3ktdHJ1bmsKKzEwNTQzIGQ5NzA0OGY4OTFiZjA2YWRkOWFhODc5MTg3M2JiZDU0NDM2YjhjNDAgbGVnYWN5LXRydW5rCisxMDU0NCA5OGVjNDIzY2E2ZmE5OTEyYTgyMGVhYTA1NmY2ZGNmZDc0YzdjY2Q3IGxlZ2FjeS10cnVuaworMTA1NDUgMjI0YjVjMzZhZmVmODU2Yjg5OTZmMGIzMDUxYzg4YzQ4MzEyMTU4MyBsZWdhY3ktdHJ1bmsKKzEwNTQ2IGYwYmQ5ZWU3OGE1MjE3NjMxMTFlZTQ5YTZhNTcyOTllMGViYjNhNmQgbGVnYWN5LXRydW5rCisxMDU0NyBhN2RkMGY1MmYyYjYwOTQ2YWM0NTJkM2I2Yzg4ZDcxNzY0MDJiOGFiIGxlZ2FjeS10cnVuaworMTA1NDggNDhlMjM0OWQxMWM2MDkzNzJiZThlYmYwZTkwZGJhM2Y2ZGRlYjk3ZCBsZWdhY3ktdHJ1bmsKKzEwNTQ5IDlmMTZmYTcwZDA5MGVhZWJlZTAwNDAzYjQ4NzU5NThkN2FhYmRhNmQgbGVnYWN5LXRydW5rCisxMDU1MCA4NmE2MTkzMDQ5YTk2ZjQwNGY5OTdhNzY5YmUyMjcwMjkwNmJiYzk4IGxlZ2FjeS10cnVuaworMTA1NTEgNGEyZjFjNjlmZGU4MWU5NmE1MWE0ZGYyNDQyM2I1Y2JhZDE5MmJkMSBsZWdhY3ktdHJ1bmsKKzEwNTUyIDA1MmU3NzY2NDAzMmUxODA2MGMyYTE5MWI0MjM0Mzc3ZGI4ZTllNGQgbGVnYWN5LXRydW5rCisxMDU1MyBiODE2MmQwODY4NTAwZTkxZmU5OWFiYjk5Y2MyYzNlNjRmZTg2MGYxIGxlZ2FjeS10cnVuaworMTA1NTQgNWE2N2Q5MDUxMDI2MmExN2FlNWY2N2NjY2Q2NDg1NzI0OTEzOTIyYyBsZWdhY3ktdHJ1bmsKKzEwNTU1IGQwZmY0MTc0NmEyNjAwZTRiYWZjZmY4Y2Q2NzI4YzdkZTc4OTM5ZGYgbGVnYWN5LXRydW5rCisxMDU1NiBlMzkxNDVhMTMwOTY4MDJkNGU0ODFjMTFkNjkyNGIwYmNmNDk0NjQ1IGxlZ2FjeS10cnVuaworMTA1NTcgZGUwMjllNmY5ODM4OTFjN2UwZmJkMGFmYWY0MDhmMjE3ZTEyYzFhNCBsZWdhY3ktdHJ1bmsKKzEwNTU4IDViZmYwNDE3MTc5ODU4ZTMyZDhjNjY0Y2YzMzdlYWVkMjhiYjExZjUgbGVnYWN5LXRydW5rCisxMDU1OSAzMzE3ZjcyNzIzYmI2MDk2Yjg5YjcxNjA0NmM1MmUwMGVmMzVkZGJkIGxlZ2FjeS10cnVuaworMTA1NjAgYzE1MzMwZWViMTkyYWQ2NmQxYzRlMTQxNGJkMzg0MzU1NTEyNWQzNSBsZWdhY3ktdHJ1bmsKKzEwNTYxIDY1OGQxODRlOTIwNDFiOWM2OGQ4NzA2YjE2ZDA4ZTExNzJlMTg5MzYgbGVnYWN5LXRydW5rCisxMDU2MiAwYjBiNjlhODhiN2I5NWI2MTMyZjMwYWY1ZWExOTNhN2QwZTBlZjcxIGxlZ2FjeS10cnVuaworMTA1NjMgNmI1OGI3OWE5NThkNzdhNThmNGU1NDc2YTg5ZTcwZDM1NjYxZTg1YyBsZWdhY3ktdHJ1bmsKKzEwNTY0IDdhY2UxNzJjMjUyMWIwMmVhYTFmZDZkY2U4ZTM4MTAyODNhZjcyOTcgbGVnYWN5LXRydW5rCisxMDU2NSBiYjNlYzgxMmVjOTBmMjQ4Nzg4M2U4YjlhNzBlNzA0ZjNlM2VlOTgwIGxlZ2FjeS10cnVuaworMTA1NjYgNWUzYmI0MTU2MDA0MjVmZDlmZjhmMTNjMzU0NDEwYTlkNGU2M2Q5MCBsZWdhY3ktdHJ1bmsKKzEwNTY3IDY5MmJlMTIzZjU0N2YxZDM0NzUxYjRlMWFkNzlmM2E0OTM0NDE1NmMgbGVnYWN5LXRydW5rCisxMDU2OCBlM2RjZTNiOGMyODI1OWM2MTk5N2YxYTgzOTU1YmJiMmQzOTMzMjc4IGxlZ2FjeS10cnVuaworMTA1NjkgMDQ5MzEzN2E4NDE0NjFhYTU4MjhhNThkNDE1NDJiYjlmYWFmODI3NiBsZWdhY3ktdHJ1bmsKKzEwNTcwIGM1ZjkyZWU4NDk4ZjVjOGIyYzQ2YTUwYmNkYTA1NDdjYjA5ODVjMzEgbGVnYWN5LXRydW5rCisxMDU3MSBkZjM3Y2E0MDM4ZjZjMjYxODFlNTFhOWUzYzFhNjhlYzg3OWQ2Y2YzIGxlZ2FjeS10cnVuaworMTA1NzIgOTZhYTU4NzI1YzBlNDA1OGIzNTg4YmNlNjJhOGRlY2JkYWMyNDkyZCBsZWdhY3ktdHJ1bmsKKzEwNTczIDA4ZTFiYjg0MDdlNjUyMDQ0MjBkODhlMjM4MTQxYjQ2NTRhNGM3ZDMgbGVnYWN5LXRydW5rCisxMDU3NCBhZDlhYWQ4MTNhNjFiMWNiZjUzOGY2YTk0ZGQ1NzYzMzY2NGY3NTY2IGxlZ2FjeS10cnVuaworMTA1NzUgNTczYmMwNjQyNjRjYjdlNGFhYTlkZjI0N2QwMjJhYzc5OTExNDNiYiBsZWdhY3ktdHJ1bmsKKzEwNTc2IDQ3YmRmNDVhZmI2ODYwNzA1MTQzMzMyYjUwY2NkMWRmZmZjNGFmMTQgbGVnYWN5LXRydW5rCisxMDU3NyA4YzFmMTYxYzZjOGMwMWVkODBiMzM1MDMxOGU3MWMzZWJmMzkyMWU1IGxlZ2FjeS10cnVuaworMTA1NzggYTZjZTJkZmYyNzM1Yjc3MjViNGQ4M2QyMWZkMzBjOWU0MTI4Yzk4MiBsZWdhY3ktdHJ1bmsKKzEwNTc5IGI1NzY4NDZjOTRiMzhmNTQ0NmViOTMzYzdmMDc0OWFkNjRmNzExYWEgbGVnYWN5LXRydW5rCisxMDU4MCBhNTVjYmE5NjM3NjE2M2UwY2Y2YzFhZmVmYWY3MTkwZThiZmU0ZTJlIGxlZ2FjeS10cnVuaworMTA1ODEgZjJmOTEyODIzZWU3ODU3MWZmZmRjOGUyYWNhNzMwOWIzYzEyNTNmNCBsZWdhY3ktdHJ1bmsKKzEwNTgyIDI2NWMyNzk3NzgxYTA2OGZhNTI0MDU5MzhjMDZlMDIzMzg0NDMzNDMgbGVnYWN5LXRydW5rCisxMDU4MyA0MjdmMzQ4OWU1MmI2YWMwZGI2ZGM1ZmYyMmFhMzRmOWE1OTc4YTZjIGxlZ2FjeS10cnVuaworMTA1ODQgMTFhMWJhZDZkZjY3MzNlMmM2MTkzYzliYThmNmZlNDc4MjNiYTdlNSBsZWdhY3ktdHJ1bmsKKzEwNTg1IDkzMzQ4ZTVhODVhMjQwZDE5NjNhNDJmNjU1NGMxMDc5MGIxNjczNDMgbGVnYWN5LXRydW5rCisxMDU4NiA3OTFlZGE1MmIzZDljYmFlYWVlYjgzOWFjYTVmNTk1YWNkYTczZWNjIGxlZ2FjeS10cnVuaworMTA1ODcgOWIzYjAxMzJjMDIxYzdjNmM4OGFiY2M3YTQ1MTJhZjliYThkNWMwYyBsZWdhY3ktdHJ1bmsKKzEwNTg4IDI4MTBmYzYwOWFlZDA3MjA3NTc4MjdiMTk3N2YxMTFhMDU0NWQ1YmQgbGVnYWN5LXRydW5rCisxMDU4OSBhOTk3M2Y5YjU0MTc3NzI0YWY1YmU5ZDM2ZGUwOWUyYmQxNDMwMzBiIGxlZ2FjeS10cnVuaworMTA1OTAgMmU0OWJjODlmYWZhMGRkM2Y2ZTU2Y2EwM2JhMTE0ZTBjNjA3YjNlMSBsZWdhY3ktdHJ1bmsKKzEwNTkxIGYwNzA3YWUwMDQzMzg0OWFkN2NiMDVkNzcwODRmM2U1YjFkODc5ZDYgbGVnYWN5LXRydW5rCisxMDU5MiA1YzliZTk4ZjUzNDczOTRlMWRmOWU5MGIzMTkyNjA3OWQwMTVjYmI2IGxlZ2FjeS10cnVuaworMTA1OTMgYjZjZTE3MTkzMjNhYzdkZTlmMjFiN2ZmNjMxOWFhNDY2YWYyNTMyMCBsZWdhY3ktdHJ1bmsKKzEwNTk0IGUyZDMzYzA3MzJiZmIxOTE3OGNmYTE4N2VjOTI3YTQwNGU2ZmU5OWUgbGVnYWN5LXRydW5rCisxMDU5NSA1MzBmZjNiOTk3MjJiNmMwZGM1N2ZlNDQ2ZTNhYjY0Y2IyMDAxZTc3IGxlZ2FjeS10cnVuaworMTA1OTYgZDk2MjIzYjc3ZTJmMzcwOTQyZmE4MGRmN2FhYjUyMTQ3YmRkMTdlNCBsZWdhY3ktdHJ1bmsKKzEwNTk3IDU5OTk3ZmRjODFkZjdmMTgzMGFkZmUyYzY3MjE4YWEwMzZiODdmNjQgbGVnYWN5LXRydW5rCisxMDU5OCA5NWVmZWE2OGYxOGQ3ODc4NTc5ZDEwZDAxODg3Yjg0NzI2NTc0OWEwIGxlZ2FjeS10cnVuaworMTA1OTkgN2NmNTE2NTdiMDhjYWFiNDQ3M2E3MDZiZWRmZmU3YTE0YmE0MmVhNiBsZWdhY3ktdHJ1bmsKKzEwNjAwIDVhZWNjMjc3ZTZjYWEwMGNhN2Y1ODQ5ZjJmYTNjMjc0NGMwOTQxY2YgbGVnYWN5LXRydW5rCisxMDYwMSAwNjhmZWExNWNiY2Q4NjRmMzkyOTI3MTdlMWVmMTA5YTZhN2Y1MjI2IGxlZ2FjeS10cnVuaworMTA2MDIgZTkwNGU2ZGZkNzBiMjUyNWZkMmVjYjJjN2Y3MDIxNTNmZjUyZWY4ZSBsZWdhY3ktdHJ1bmsKKzEwNjAzIDhjNTUyZWVkYjFhZmFmMWQwZTA5NGZiNzY4OTNlOTc2YWRkMzgyNGIgbGVnYWN5LXRydW5rCisxMDYwNCAwZGI2ZjY5MzJiNzM1YzcxYzAzYWRlMGM3ZWIwNTg1ZjIxNmM2NTk0IGxlZ2FjeS10cnVuaworMTA2MDUgYmQ3NDRhZjY4NDVmOGIxYTVjNWNiMTkzMTVkZjVhNTJlMDQxYTZmMiBsZWdhY3ktdHJ1bmsKKzEwNjA2IDM2NDA0ZDljYjVlMTVjYmYyZTcxZDliOGMzNTM2YmIwY2FhOTAyYzAgbGVnYWN5LXRydW5rCisxMDYwNyBkYWE1NDEzMTQ1M2I3N2UzOWQ1OTgwYzY3Yzg4ZDk5MDRiNjE4ZDE0IGxlZ2FjeS10cnVuaworMTA2MDggMDQ3NTMzNzg5MzU5Zjc5OTdiNGY1MWUyMjdjYzhmYmNiYjAwYzgyMiBsZWdhY3ktdHJ1bmsKKzEwNjA5IGZkYmE2Mzk3YjcyOWU0NzNhYzNmZjYzZDQ5OGQ5OGMwNTI5NDhlMTUgbGVnYWN5LXRydW5rCisxMDYxMCAxMDk0ZWJiZDNhNDU3NGQyODJjYzhkMzA1OTA0MmUwZWRlODAyZTA4IGxlZ2FjeS10cnVuaworMTA2MTEgMWJjNjU2ODc2MjZiODc5NDY0ZjY4YWNlZDZmMGVjY2JjYzUxNDc2OCBsZWdhY3ktdHJ1bmsKKzEwNjEyIDhiNDljOTE4YTI1ZjM2ODEwYTVlMDEwMWJjYmE5MWQ0NjhiNTk3MzcgbGVnYWN5LXRydW5rCisxMDYxMyA0MzIzYjI0MzM1ODFkOGM4Yzg5MzExZGQ2MDYwZTAwZjVlYTM2OTcxIGxlZ2FjeS10cnVuaworMTA2MTQgNjA4OGQ2NTJiOTMyODQxYWJkYWM1YzNlZTdkMmY2NmQ5N2U4NmM4ZSBsZWdhY3ktdHJ1bmsKKzEwNjE1IGM3ZDk5ZjZkMmUyZjhjMTc5ZTdkMDYwN2Q1MjJjODFjZjUxN2UyYjcgbGVnYWN5LXRydW5rCisxMDYxNiBhYzI4OGRiNWJjOTFjNDQyNTQwZTJiMzdhODcyYjk1M2VhYjhhMmU3IGxlZ2FjeS10cnVuaworMTA2MTcgY2Q2YjlmYzExNGE0MTVmYTRlYjU0MzUwNjhiZDQ2YjQxNDkzOGQzMCBsZWdhY3ktdHJ1bmsKKzEwNjE4IDQ0MzU2ZWU3ZTU3OTA2MzQwNGRhMWIyMzVkNjIwZWMxMGFlOGE1OGUgbGVnYWN5LXRydW5rCisxMDYxOSA5ZDAzMTAxNDM2MDA4Y2UwOGQyYzY0NWYzZGFhYmJjNmVjYWJlYjJkIGxlZ2FjeS10cnVuaworMTA2MjAgYWMzY2E1NjZjYjQxNjFjNDA5ZmFlMWI0YTdmMzgzYzcxMzM2OWYwNCBsZWdhY3ktdHJ1bmsKKzEwNjIxIDIzYTgzNzcyNjIyNjRiNTc2M2MzZjliZWUzOGIyOTk2Y2JkODNjMjEgbGVnYWN5LXRydW5rCisxMDYyMiBiMTQ4ZmExNTI1ZGI5OThlZWMzMWIwOWFmOGM4NWQ2YzNmMmJlZTg3IGxlZ2FjeS10cnVuaworMTA2MjMgZDYwMWFmODA2YTU3MzNiZjM3NTZlMjliN2NlMWEzZjAzNWZmMDU1OSBsZWdhY3ktdHJ1bmsKKzEwNjI0IGFhM2I0ODAwMmY4ODdlMzZhZjJiMjA4NzcwOWRkZjYxYzk4YTZhM2UgbGVnYWN5LXRydW5rCisxMDYyNSBlMDMzZWQ1MGNiMzc2Y2Y2YTVjODVmMDAzM2YyNzFlMzcyOTJiODg5IGxlZ2FjeS10cnVuaworMTA2MjYgY2NkODM3NWRiMjczNmRlOWRhNjUwZjc1OTlkMGIzNTc4MGZhMGZiMSBsZWdhY3ktdHJ1bmsKKzEwNjI3IGMwZTM5NDRiNmE2NGZlMmU3M2Y4Y2RjNWEwM2JmOWY1YTQ2MDBkNGQgbGVnYWN5LXRydW5rCisxMDYyOCBiZGJlMDgyZWUzODNkYThhMDJjNjJlYTNiMGNhOTE4Y2FlZGFmODJiIGxlZ2FjeS10cnVuaworMTA2MjkgOTI3OWVmNjg2OGViYTNhNTUwOTkzOTJlNWE1MDcwOGQ5ZjU4NTQ0OSBsZWdhY3ktdHJ1bmsKKzEwNjMwIDkxYWFlZWY3NWE3MzYyZjg3YjUwYzYxZjRlMDkzYjY5OTQxMTA2YmIgbGVnYWN5LXRydW5rCisxMDYzMSAzYTUyMDI4ZmU5MzYzZGEyZjYxY2VkZmUzNGM5OGRmOTZmNDNhN2JhIGxlZ2FjeS10cnVuaworMTA2MzIgNDY2ODZkNDBiZGZkNmMzMTE3N2I5MmJmNGE0MTVmOTgwNmQ4ZTdhZSBsZWdhY3ktdHJ1bmsKKzEwNjMzIDA1ZmViZjkzMWU5MWI0YmY5NjJlOTkwMzFiODc1Zjg3ZTRjZmI3NDAgbGVnYWN5LXRydW5rCisxMDYzNCA5OTVmYjU1YjNlNmFiZDIxZGRhMGMyY2Y3ZmM2ZWI4OWVhNDE2ZGRkIGxlZ2FjeS10cnVuaworMTA2MzUgMjU1MjMzZTQyOTE4ZjM0OWYxZTMzNDY4YTBiYzJhZDExMTE1MzJhMyBsZWdhY3ktdHJ1bmsKKzEwNjM2IGFkYTQwZTY5ZmQwOTM2ZTM1MTZhMGQyYjcxYTFmYWJlNTcxOGVjMzMgbGVnYWN5LXRydW5rCisxMDYzNyBlNDliMzBjNmE4MGFjMGI3ZjhjNzZiOGEwYWE0MmZhZTQxNzc2M2U2IGxlZ2FjeS10cnVuaworMTA2MzggYmJmZTk5YzI3ODVjOTM3MjMyYjdlM2Y3YjNlYjY1ZjUxNDhmZWNhNCBsZWdhY3ktdHJ1bmsKKzEwNjM5IGIxYjI2ZTBlMGEwYWRhZDNjNzFkYWM4ZDliYjhjMGNiYWI1NGJhN2MgbGVnYWN5LXRydW5rCisxMDY0MCAwNTY1NzJlMDc4MWE2YTIzMTNiMmQzNDk3ZDU2NzFiMTY0ZThkMDhkIGxlZ2FjeS10cnVuaworMTA2NDEgY2U5ZmM2NDUyOGE3OWRkOTEwZTU0NjZjNmU1NmJlOTRkNjk2MWQ0NSBsZWdhY3ktdHJ1bmsKKzEwNjQyIDEyNWJmZDg5Njk2NzE2MzMzY2FlNGU4YzM0N2VmN2M1ZmVlYjhhZDYgbGVnYWN5LXRydW5rCisxMDY0MyAxYmJkZDg0YzdhNDA5OTY1NjM4ZmMyZmFjZDRiM2E0MzM3MmI4N2E3IGxlZ2FjeS10cnVuaworMTA2NDQgYTMxMzRjNjk3MGViYmU4YzRiNWVjN2E2OTY2ODYwYjIxNjMxYWJmMyBsZWdhY3ktdHJ1bmsKKzEwNjQ1IGVhNTliYjkyMTM4MDUxNTEwNTE3OTE5ZDEyYjg4M2JjMGY0ZGNmYTggbGVnYWN5LXRydW5rCisxMDY0NiBmM2M4ZmJjNzkzZmVhNWU3Y2E4NDZlYjhkODBkMTNiMDE4OWVjZTdiIGxlZ2FjeS10cnVuaworMTA2NDcgNmY1YzkzNmFlMmQyMjI4MWQxZmEyM2Q1YWYyOTRlYTM4OGUwZDMyZiBsZWdhY3ktdHJ1bmsKKzEwNjQ4IDE1NDZmYzc2ZDAwZWNkNWVmYjAyMjdlYmVkZWVkNzQ3ZGIyNWQ0OTggbGVnYWN5LXRydW5rCisxMDY0OSBiOWQ5YzBlZWI0N2MyNjA4MzczYmM5NDhhM2VmODBkNTA2Zjc0ZTdlIGxlZ2FjeS10cnVuaworMTA2NTAgYzlkMGQ2MzFhYmFhZTBlMDI3MmUwMmE1MmY3YjQ1ODUxMTc0OTIwNyBsZWdhY3ktdHJ1bmsKKzEwNjUxIDI4NGFkZDc0ZmUzNzA1ZWMxZDVkNzFkNmFkOTBlMTQ5YjUyM2ZlYWMgbGVnYWN5LXRydW5rCisxMDY1MiA1MzZlNDM5YTY1ZjlkMGI1MjNkZjkzM2Q2MmY1NjczNGViZmVmYWJlIGxlZ2FjeS10cnVuaworMTA2NTMgNTczMmVjMjQ4N2M1MGM2ZDM5ZTdkZjI3NzUyZjIxYjcxNzBlZWQ5MSBsZWdhY3ktdHJ1bmsKKzEwNjU0IDViYzhjYTEzY2ZlMDFjMTgxNTU1MmQ5OWIyYTc5MmE0MjFkNGI0ZTcgbGVnYWN5LXRydW5rCisxMDY1NSAyNmM2MjJkMzcxN2QyMmM3MWM3YTA4YjU3OWJiODUxZDQ4MzMzZGY3IGxlZ2FjeS10cnVuaworMTA2NTYgYThkZjA5MGExMmJhZjY4ZjU1MjQ0NDFlMjJmYmZhOTNlNzI4MWM1OCBsZWdhY3ktdHJ1bmsKKzEwNjU3IGEwYTBjMTQzMzhjMDc0ZmQ5NmYxZTcyY2EyNWMyNDA0NmE2YmQ5YWMgbGVnYWN5LXRydW5rCisxMDY1OCBlZTI3ZjNhOTE2NmY4MDEzMzNiZjM4MDExMzNiMTY5NzRhZmE0OGE5IGxlZ2FjeS10cnVuaworMTA2NTkgMzBmYmUzMDJjNTE4ZmY4NGVhNTk1ODhhOTE4ZWU5MWNkOTQxZjdlZSBsZWdhY3ktdHJ1bmsKKzEwNjYwIDRhN2ZmY2RlNDBkYzhmNzAxMWVhMjEwZDVkN2EyZDExNTM2YzM3MzcgbGVnYWN5LXRydW5rCisxMDY2MSA2OGVlOGFiZDk3ODI4YjA1M2QwNzhkYWEyN2M5MDkyOTdhNzlkZmQ3IGxlZ2FjeS10cnVuaworMTA2NjIgYzY5YWQ1NjZhZWIxZTUzMWRiODJiMjc2Y2QwNGNiOTdmZDNlZjBiNCBsZWdhY3ktdHJ1bmsKKzEwNjYzIGRlN2ZjNjZjMGI0ZmRmYWQxNWFhZWM0MDBhZjcxZTI1ZjNhMDRhZWIgbGVnYWN5LXRydW5rCisxMDY2NCA2ZjFkYjUzNGRmYWU0YWRmZDRiMDNmYzE5NzNhOTIxMmVhZWJlYTUxIGxlZ2FjeS10cnVuaworMTA2NjUgMTQyMTY1ZWQ4NGQ4MGJjMDU3MDY2ZDBmNDUzZjhjZDdlMWVjYWJlMSBsZWdhY3ktdHJ1bmsKKzEwNjY2IDkyOWI3ZTZlNzUyMGM1ZGJjMDI1MjI5NTVjOTJiODA0M2Q4NWEzZGQgbGVnYWN5LXRydW5rCisxMDY2NyA3NzU4MDhhMDllNDZiNzczNDFjMWFiNDY3MjE4YWYwZjVmOGY1MjBmIGxlZ2FjeS10cnVuaworMTA2NjggNjczNWVmNjYyZjM5ZDhjY2EzZWI4MmQ2ZDU3NzljNTE3MmM2Y2QyMSBsZWdhY3ktdHJ1bmsKKzEwNjY5IDk5N2Q1YTIwMDBlMDQ1MjZjZjU5ZjEzNDZjNjZmZDczYzg3YTQ2OTMgbGVnYWN5LXRydW5rCisxMDY3MCBjZTJkMTIwYzM5MDNmMjU0YTU4M2Y2Y2M2MDE5NGIwN2RiYmY0NzBiIGxlZ2FjeS10cnVuaworMTA2NzEgMjVjMmFlYTY0NTAxN2NmYjE0MWMxYWE0M2NmNWU1MTk3MDExMTc0NCBsZWdhY3ktdHJ1bmsKKzEwNjcyIDM1YWE2N2ZjNGU2MGY2ZjY5MjdmMzczMzhjNTVjYmRlNTBlODRlMTcgbGVnYWN5LXRydW5rCisxMDY3MyBiODFiZjljYTE3OWQzZWI2ZGNkNzczZTA0ZjRkYWU4MGJlYmM5OGI0IGxlZ2FjeS10cnVuaworMTA2NzQgNDg5NGRkZDQ1MmVlY2MxMjY5NzE3YzY1NzIwNGEyMjJhNzcxODk5YSBsZWdhY3ktdHJ1bmsKKzEwNjc1IGI2Njg2Zjc1Mzc5OGY4MmYxNTdiNjBlYWFlYzAyY2E5ZmQyZWY2MTUgbGVnYWN5LXRydW5rCisxMDY3NiA4MjBkNTEwZDFkZDYwYzAxNmU1ZmE3ZmRiYmFkZDU3MDVhYzhjNTk0IGxlZ2FjeS10cnVuaworMTA2NzcgODg1ZGU0OWI0NDVjNTNjNTc4NzBiMjNhMTJiZDMxMjhlYTlhYWFiZiBsZWdhY3ktdHJ1bmsKKzEwNjc4IDNhNTViNGM1ZTNjNzE5OTVkYjJmMzk0OWZmMDZiNjdjOGM3MmM5ZDEgbGVnYWN5LXRydW5rCisxMDY3OSA4M2E2OTMwNWNiMDZlMTM4YTA5N2I2OGVjN2M2MmU3ZTA1MDA3NzU3IGxlZ2FjeS10cnVuaworMTA2ODAgYzMxYzU5ZjE5MmFmMjIwNDE1ZWJjNDU4ZmVmMTZhNmYzNjg1ZTc2NCBsZWdhY3ktdHJ1bmsKKzEwNjgxIDQ4MmU0YmEzM2MwOGY2YTY4MTJlYjhkYTVmMzIzOWQzZThkNWEyMTggbGVnYWN5LXRydW5rCisxMDY4MiAwNTA5NjA1MmQ4MjU3YTAzNzgwODJkYWQ1MzJkZjk5MjY5ODVmNzI3IGxlZ2FjeS10cnVuaworMTA2ODMgOWYwYmI4N2RkZTYwMGFjOWJjZDkzYTgzYmNiYjkxMDZmYzkyOTRhNiBsZWdhY3ktdHJ1bmsKKzEwNjg0IGMyOGIwNTM4YTQ0NjU0N2ZlNzkxODZmNzhiYjM1ZTkxZjM1ZjRlZWYgbGVnYWN5LXRydW5rCisxMDY4NSBkNmY0YzJhNTMxMmM0ZTFkZDNlMmE5MGMyMzBiYzI5ZmM5NWIxZTAwIGxlZ2FjeS10cnVuaworMTA2ODYgYzQyODliODEzOTI0YjI3NTNjM2I5ZTk4NDM5NzMzMTQ3ZTdkZjY2MSBsZWdhY3ktdHJ1bmsKKzEwNjg3IDdlZDEwN2FmOWZmNDk1MjIwZmRjZDRkZjA0Y2EzZjFmYTQwZDAwYjkgbGVnYWN5LXRydW5rCisxMDY4OCBiNTQ5NDk2OTAwNzc5NzQ0MzNkYzQ3OTAyYjFmZjMxYWU2ZGUzMjIwIGxlZ2FjeS10cnVuaworMTA2ODkgZTI2NTY5M2YwNzkwMjA3NzI0MTIyYjA4N2Q3YmYzMWVhZGFjNGNkYiBsZWdhY3ktdHJ1bmsKKzEwNjkwIDM0Y2NhODMyYTRhZmUzODkxMjYwZDhjMDVjN2MzNjljOGY4YTUwOTAgbGVnYWN5LXRydW5rCisxMDY5MSAwYjdmM2E5MzIwODVjMzQyMjBlOTkzM2Q0MWQwMzEwNWRhMzM3OWFhIGxlZ2FjeS10cnVuaworMTA2OTIgMjAzZTJhYjYzOTM2YTI1ZmUyYjBhMWY2OWYwNWU2N2JjMTlmMjk2OSBsZWdhY3ktdHJ1bmsKKzEwNjkzIDE1ZWExNWUwY2EyYWI4NThlZjQ5NDc1OTQ0MDNlNjdhMGFjYTUyMWQgbGVnYWN5LXRydW5rCisxMDY5NCBhNDQ0Y2Q4MzVjMGUwNDY1NzFlYTAzZTc3NzZmNjk1YzdkZTQzOWU1IGxlZ2FjeS10cnVuaworMTA2OTUgMzBjMjM4NWNhMzg5M2EwYjkyYmFhZDUyMzAyNzBiNDY1MDYzMTU1YiBsZWdhY3ktdHJ1bmsKKzEwNjk2IGJjMmU5YjRlYjhkZDU4NDcyMzY1NGI5OWViYjAxOGRiNTk5M2RkODcgbGVnYWN5LXRydW5rCisxMDY5NyBmMzIwODAwZjBmYTU1YWZlNzg5ZTA0MDIxYWU4YzhiNTgyMzI3Y2VhIGxlZ2FjeS10cnVuaworMTA2OTggYTE5NjYxMDc2NTI5YThhZjFmYzNmZmFkM2ZiNDNlMzk5ZmM3OTJlMSBsZWdhY3ktdHJ1bmsKKzEwNjk5IGYxYzk2MDkzMTQxMzE5MzM4MTVkYWM0NWQ5MjllZDY3ZTQ0OTczODggbGVnYWN5LXRydW5rCisxMDcwMCAzMjhkNDZjNDczZjRlYzBlMmMwZmQwYjMyYmQ5ZjUwMzg1ODliYjRhIGxlZ2FjeS10cnVuaworMTA3MDEgOWQ1NGFhZjAxNjNkYjBlYjUwNWIyMmFhZGNhNmU4YWQ0OTJkMjMxZCBsZWdhY3ktdHJ1bmsKKzEwNzAyIDZhMDg3YWUxODBiYTM1OGEzMWViZDc5MTcwYTNkYzgzMWVlYTU3NDYgbGVnYWN5LXRydW5rCisxMDcwNCBlODM0YWU3M2RlZGRmMmJjMGY3NmY5MGMyYTA1OGZjMjNjMTY1ZDBhIGxlZ2FjeS10cnVuaworMTA3MDUgMTM2MmM5MWVmY2QyN2UyNjUyYWZmZThlZmE0M2Q1ZjJiYTkzYjg4MyBsZWdhY3ktdHJ1bmsKKzEwNzA2IDVlMzk0YTA3YTNhNGYxMDFlOWY0MDlmYzIxYjlkNGNkZDQ4NmQyNzEgbGVnYWN5LXRydW5rCisxMDcwNyA5ZmMyYWY5ZTU4NTlhMGJhMDcwNzgzZmIwN2FhOWYzNWMzOTdhY2M5IGxlZ2FjeS10cnVuaworMTA3MDggNjlmMmUwNWNjMzc4ZWQzNWIxYzRlMDY5MTdhNzNkODk4OGE5NmRjMCBsZWdhY3ktdHJ1bmsKKzEwNzA5IDRhMTNhNGQyNTg4YjMwZGIwNTFmMWM0OThhNGU0OGY0ZmEwYzEwMDcgbGVnYWN5LXRydW5rCisxMDcxMCA5ZDY0MmE3MzVhMTMyN2QxZmZhZDM2MmNlOTA3ZTdkMmJmOWVkMGVmIGxlZ2FjeS10cnVuaworMTA3MTEgZGY3NTJjMDhiNDYyMjA0NDJmYmI3ZmRhZmNkYTRjZDZkNDg1NTI0YSBsZWdhY3ktdHJ1bmsKKzEwNzEyIDg1YThhZTZkZTI3ODU4NDE3MzQ0YmE0ZWI3MDdmZGNiOGM4OTg0YzggbGVnYWN5LXRydW5rCisxMDcxMyBhMTAzY2Y2ZDM4NDViNTU4YWM3ZWVjMzdlZjI3MGQ5ZDVhNDgxZmU3IGxlZ2FjeS10cnVuaworMTA3MTQgZWNkZThhNDVkNDI1MTMxOGRiNzQzNzZhOWQyNjkyOTM4Y2EzODkyOSBsZWdhY3ktdHJ1bmsKKzEwNzE1IDBlYzlkYzlkMjAxZjJmMTQ0NTUyOTkyMmQ4MmVhZjFjZjFmMGVkYTcgbGVnYWN5LXRydW5rCisxMDcxNiA0MDZkZDJiMzY3OTM5NTk3Y2QxYjFlNDFkNTdiMDQxODIwMDI3ZTViIGxlZ2FjeS10cnVuaworMTA3MTcgOTMwNmY1OGNkYmE1YTFkYTI0YzMwNWI1MTY3MjA3Y2EyY2NkZTgzYyBsZWdhY3ktdHJ1bmsKKzEwNzE4IDE0MTE4YjU3NjcxZWM0YWE5Yjk0NGYwZDkwN2NiNWZhOTJjZmY0M2EgbGVnYWN5LXRydW5rCisxMDcxOSAyNDAzZTkyYTRhNmMwOGI5NTMxNzQ2NGRlMGJmODk3NzlmNzQwODQ5IGxlZ2FjeS10cnVuaworMTA3MjAgMDdjMGEzMzFjMjY5MjJiZWYyODE5ZDMwNzYxNjVhZTg1YWUzZTBiZiBsZWdhY3ktdHJ1bmsKKzEwNzIxIDNiZTFhZDlhODU4N2YzNmZhM2NjZTU5OTIyNjE5Zjg2OWU2ZjM5MDIgbGVnYWN5LXRydW5rCisxMDcyMiBkZTJmZjg5ZDZkNGJlZjJiNWY5ZWU4YWRlYzA0YzFkNmQxZWNjNDFlIGxlZ2FjeS10cnVuaworMTA3MjMgNDAzM2ZlYjI2ZGE4OTlhNWUyMjcwZjIzYTRjZDNkNzZkYzRiYzNhNSBsZWdhY3ktdHJ1bmsKKzEwNzI0IDA3OTJkY2RlOGUzMTFkOTZmMThjMTE2OWY1YzA2NzM0MDYxZmRiYzkgbGVnYWN5LXRydW5rCisxMDcyNSA3NGVkZDVjZGE5ZmQ5YzU0OTFlNGQ4YWM4M2NiMTJkNWQyYTYxZDhlIGxlZ2FjeS10cnVuaworMTA3MjYgMTA1MmIwYjJjNmVhMGY1MDY5MGNkNDRhMDk1NTdiMTY5NjQxMTczNCBsZWdhY3ktdHJ1bmsKKzEwNzI3IDJmYWViNzJiYjY0YTE5YzkxNmJmZjQ4OWFhNWY2OTQyYzM3ZDMxZWQgbGVnYWN5LXRydW5rCisxMDcyOCA4NTIzZWNhZjU5YzU2OWE5MjM4ZGMzMzE1ZWVlZDA3MmUyMTI3ZGMwIGxlZ2FjeS10cnVuaworMTA3MjkgNzM1NmQ0ODg4YThiY2E5MzQ0MGUyOWE3OWZiNTk1YWZjZWEyZGMyYyBsZWdhY3ktdHJ1bmsKKzEwNzMwIDI0NmFjYWQ5Yzg5M2RiZDZlNzljZTEwOTczMGM4MjM0N2I1NmY2MjEgbGVnYWN5LXRydW5rCisxMDczMSBhYjBkNWYyNjVkNTRlOThmMDVkOGM3OWMwZmUyYWVhMjllYWJhYjMyIGxlZ2FjeS10cnVuaworMTA3MzIgNTBkMzViZGYyMDQyZGUyMGM2ZTdhYTIxZjFiODhmNDJjODdmYTk1NyBsZWdhY3ktdHJ1bmsKKzEwNzMzIDM3YzNlYzRmM2QzZjlhNzNkNzY4ZWVjMDQ0M2M3NmRlOTg1YzVkMmEgbGVnYWN5LXRydW5rCisxMDczNCBmYzMzNTBhZTVmMmE5NTY3MWY0ODU1NWI0ODZkNzg4YzI5MGQ5NDVhIGxlZ2FjeS10cnVuaworMTA3MzUgYmM1MGY1YzIwYmM5NjE1OWQ4ZDI1OGJhYTA5MzhmYTQxNzg4MzIzMSBsZWdhY3ktdHJ1bmsKKzEwNzM2IDEwMjZkMDMzYzBkZDlhMmE4ZGM3MTJlNWEzNDg2OGVmZTdkOGQ1OGIgbGVnYWN5LXRydW5rCisxMDczNyAxMGM2MDlmZTdkZWJjOGI3ODRlZDk3MWFiZDRhYmVlMTJiMjYxZDBlIGxlZ2FjeS10cnVuaworMTA3MzggYThjMjFhY2NiZWNkYjkyNWQxZTIzMzIzMzIxNjZlYmFhYTA3YmJmZiBsZWdhY3ktdHJ1bmsKKzEwNzM5IDEwN2E4NTI1YmY1ZWI1ZjYwZDUyZjQzZDFhZGY0YzEyNGQ5MmZhYjYgbGVnYWN5LXRydW5rCisxMDc0MCBlYjgzNWVkMWY2ZmU4MzdhODBjMWI1YTU1N2I0YmFkOWQ1ZGNjYzMxIGxlZ2FjeS10cnVuaworMTA3NDEgOWIwN2QyN2EzMWJkNzlhNWQ0ZGM1NjcwMjE5ZmRjMjYwMGZhMzUzZCBsZWdhY3ktdHJ1bmsKKzEwNzQyIGQ4M2YxYmNiYjE1MDVjNmM4YjdjYWI2ZGYwYjBlMjlhOWUxNDA0YmYgbGVnYWN5LXRydW5rCisxMDc0MyBiOGJhODg4N2Q1OWY3ZjZiY2IwZjE1NjMwYmZiZDUwZjEyNDY3OGZhIGxlZ2FjeS10cnVuaworMTA3NDQgOGI4MjIwODM3MjZiMWM2YjM2ZDY5MDA3M2E5Nzg3MWJmMTE2M2I3MyBsZWdhY3ktdHJ1bmsKKzEwNzQ1IGI0ZDNkMWEwOGU0ZGFlNjE5Mzg0YWRlYzhjNWMyN2FhZjg4MmEwZTIgbGVnYWN5LXRydW5rCisxMDc0NiBjZTFlZDdlYjc3NTA3Nzk2ZTE4MmIwMDQ2ZDdiMDliMDc2ODNlMGJlIGxlZ2FjeS10cnVuaworMTA3NDcgMGQzYjczZDk5NTg4OGU5YjljNmMyNThlMGUxMGY5ZDJmN2VlNWQyOSBsZWdhY3ktdHJ1bmsKKzEwNzQ4IGVhNGI3YTU0ZmQ5MmZjNGRhNDQ5YzVhMWZhOTMyYzI1YzJlNTM2M2EgbGVnYWN5LXRydW5rCisxMDc0OSBjMzQ1N2ZiMThhNTEwN2Y2ZDA3ZGQ1MTliOGNmZGUyMjIwZTgzNzBkIGxlZ2FjeS10cnVuaworMTA3NTAgZTE4NGY4M2JiYjc5N2Q0YzA3ZDUzYmY5ODJjMzk0NTFlNjM1Y2U5MyBsZWdhY3ktdHJ1bmsKKzEwNzUxIDNkNjVmNjE2ZjkzZTVlNDUyYzA2ZTE2ODJhMmQ4ZmY0M2RkZWRhNWEgbGVnYWN5LXRydW5rCisxMDc1MiBhYWExYzhiNTI5ZjUyNTgwMTY1OGIwYmVlZjIwZTk2MjRhM2RhMTJiIGxlZ2FjeS10cnVuaworMTA3NTMgNjZhMmVhNjNiNGQ4NTc4YTg0ZDkxNmNkYmIwZDQzYTdjYzM3NDgyMiBsZWdhY3ktdHJ1bmsKKzEwNzU0IGU0NjlhOGFmMDRiMjFkNGZlMTRmYWQwNDA4YTgxN2EyOTk4MWQ1ZjIgbGVnYWN5LXRydW5rCisxMDc1NSAyZGQ4OTBhZjE4N2UxMDQ0Njk3MmUwZGQ4MjY1NDQ1NDBkMTBmODczIGxlZ2FjeS10cnVuaworMTA3NTYgMWRiNDA5OWE3MmNlOGIwNzljMjEwNGQ3ZjdhYzY5YzgzMjdmNDY2NyBsZWdhY3ktdHJ1bmsKKzEwNzU3IDdiMjUwMDY1NzlmNGNmYzI1YzZkMTA5OTkxNzFjMzcwNWY4MDM2NTggbGVnYWN5LXRydW5rCisxMDc1OCA3MDc2NTMxZWZiOGZkYjMzY2U2Y2VmNDUwZjMzNjk3NWNlZGI2NmI5IGxlZ2FjeS10cnVuaworMTA3NTkgZDgxZjMxNjE1NjdiNWZmMTc1Y2E2ODlmMDI5ZTkyNTM0OGYyOTViNCBsZWdhY3ktdHJ1bmsKKzEwNzYwIGM3ZDBiOTcxZTBlMzkyNWEzNDVlZGQ5ODE4NGJhNGRiYmQwZWM3NWIgbGVnYWN5LXRydW5rCisxMDc2MSAzNWQxY2VlZDY5YjllYWVmYTRlNGY5ZTMwMGM3ZmQxMGM4OTY5ZjY1IGxlZ2FjeS10cnVuaworMTA3NjIgNjMxYTE1OWNmMDQwYjFhOWIzMzUwZDk5M2VhMDUzOGNmYjI2NTEzZCBsZWdhY3ktdHJ1bmsKKzEwNzYzIDJiMmQyMWVmYzRkNzE1ZTE5YjA4MGYyOGQ2YWNmMzc5Y2E5MDA2MjggbGVnYWN5LXRydW5rCisxMDc2NCA2NTg4YWRlMGVmYjc3NGU4YmI4ZGQyZGRkOTdiMzliYTcxYTU1YTA3IGxlZ2FjeS10cnVuaworMTA3NjUgMzgxOGExOWY3NDdmMGE4ODRjNGVmMzkwNDk3YTJhNjA3MDhjOTBhZSBsZWdhY3ktdHJ1bmsKKzEwNzY2IGY4MzRlMTk3YmQxNDZkYTcyOGU5NjdkZWE1YzkyNDFiMDQyN2M5MWUgbGVnYWN5LXRydW5rCisxMDc2NyAzMmJjMTdmN2M3N2JjZTdhMzU1NTZhZjk0NTBlMTJjYTVkNzQwNzBhIGxlZ2FjeS10cnVuaworMTA3NjggNGM4OGNjNjJlOWU5MGE4NDM0ZjA3NTBlMzc5ZTZlZDRhNDk2NWNiNSBsZWdhY3ktdHJ1bmsKKzEwNzY5IGQzYmYzYzJhZDc1YTlmZTZlNTk1NjdiYzBhOGVlOGM4YjljNWViZjAgbGVnYWN5LXRydW5rCisxMDc3MCA2ZWQ4YTdmZmM1OTUzNzA0YWI4ZjQ2YmRlOGRhMmRlZjRhY2E0MTg1IGxlZ2FjeS10cnVuaworMTA3NzEgOTI4MWI1ZDM1NjQxYTBjMDVjZDgwZmUwMTRiZDI5MzA0MDY3NDc3YSBsZWdhY3ktdHJ1bmsKKzEwNzcyIDc0YTkxMGI4NmI0NDNkMzUyNTk1ZWYwM2ZmNzdmYTA1ZmU4NjNhNDkgbGVnYWN5LXRydW5rCisxMDc3MyBmOGEzODliMTA0ZjA5MWIyZjYzYTE2YjNjODY2ODBkZTkzMGVkOTUxIGxlZ2FjeS10cnVuaworMTA3NzQgZmY2MzEwN2M5ZmE1ZDc4ZmZjODRjYTQyZjIxMDIxNmZkMjVmNTgzMSBsZWdhY3ktdHJ1bmsKKzEwNzc1IGYyYmI4ZDUxOTViNjY4NzRhNTIzNzJiNmYyYzc4Y2NjMjkyOGNmNTYgbGVnYWN5LXRydW5rCisxMDc3NiAzNWVhMGMwNzNlYTNkMzExNTQ4N2Y2YjczYjA4MTE5MTc3ZTY1NWVlIGxlZ2FjeS10cnVuaworMTA3NzcgYjQzODk4NmIzYzA4ZDgzYzEzM2Q2YWU4NDYxZjczODY4ODA3ZmE3NCBsZWdhY3ktdHJ1bmsKKzEwNzc4IDVkZDZmMWZmNjZiYzA1MDk5NTIwNjFkMzE3Y2FjZDBmMjRiYTYzZjEgbGVnYWN5LXRydW5rCisxMDc3OSBiZjhlODZiOTVjOTIyNmE1NzA5NjExMWIyNzEzNzkzODY5MGEwNmFhIGxlZ2FjeS10cnVuaworMTA3ODAgOWRkNzlkMDEwNGQ5NmY0YTU4OGU2ZjhiMTU1OGZmZmQxZThkOGQyMSBsZWdhY3ktdHJ1bmsKKzEwNzgxIDRjM2MxMmU5NTZhNzU1ODViNzM0ZDA2NjczMWIyNzg1YjNlM2EzMjMgbGVnYWN5LXRydW5rCisxMDc4MiBlM2QyMWM0Y2EzNjJmZDMwOTA3NmZhMzNlZTZiYWI0Yzg5MjgwZTk2IGxlZ2FjeS10cnVuaworMTA3ODMgOGI1MDc1MWYyNzJjODRlZTg0Njk0Njk3Y2I1ZGI0YjYxYjY4YjUyMyBsZWdhY3ktdHJ1bmsKKzEwNzg0IGQzZjNhMDU2OGJkNmEwOGQwODNkN2M0MzcxZjY2ZGU0NGI5YmFjMDUgbGVnYWN5LXRydW5rCisxMDc4NSBiNTliOTk0MmJhYzk2MWVjYTVkYjM3YmU1ZWFmYjI5YWJmMGUyZGFkIGxlZ2FjeS10cnVuaworMTA3ODYgNjIzYzQ1OWY4ZmJlZGViNzZkZjBkNDM1N2VlNmU5ZDEwMjE1MTU3MSBsZWdhY3ktdHJ1bmsKKzEwNzg3IDBkMmQ2MWY1MmI5YzUyZDYxZTk1ZTgyNTljZjAwMjY0ODQ3YjVmMjMgbGVnYWN5LXRydW5rCisxMDc4OCA0Njc0Y2QyZjZmMDcyYmNlOGRkN2FkM2Y1YWIyZTY1NGY5MjQwNzI3IGxlZ2FjeS10cnVuaworMTA3ODkgMDhkZjljYjU3M2FkYWM4MTU2OTAyMjk0NGY2MGJiZjFiODg0NDM5MiBsZWdhY3ktdHJ1bmsKKzEwNzkwIGZlMWZkNTZjYWRhNzAyMDAyZWNhNTBlNjgyMzY3NDFmNGM1ODdhNmEgbGVnYWN5LXRydW5rCisxMDc5MSA0MDcwODU5ZmU2MmVlYTQwODQxZTU3NDY1OWI1ZDg4MGIyMDVjMjc2IGxlZ2FjeS10cnVuaworMTA3OTIgNDE0MjQ3ZDRmZWQ3M2EzYmRiMzJjZGJkZDI3NWY0ZDVmYmM4ODVlYiBsZWdhY3ktdHJ1bmsKKzEwNzkzIGY0ZmM5ZDE4YTUzZDQ3MzM4MTQ4YjkxNDQ5MjY3MWVjYTdkYjhiY2MgbGVnYWN5LXRydW5rCisxMDc5NCBkNjdiZTEzZGEzY2MxOGU0OTQ0ZGZhODc1N2IyMmIwY2QzMzdlOTkzIGxlZ2FjeS10cnVuaworMTA3OTUgYzYyMzYwYWE1ZWE0MGFhYjhiOWFlZTg3ZmE0ZDhhZDMwMTU4YWE3MiBsZWdhY3ktdHJ1bmsKKzEwNzk2IGY5NGQ1YWU2NDJhOWIxY2RlOGZlYjEwNzJmOWRmNWMyZGFhMmZlZDAgbGVnYWN5LXRydW5rCisxMDc5NyBlNDJiOTQyNzU2NTJiOWQ1ODFiYTQ2NjA3ZDVlYjhjMzU4MWY3MTE0IGxlZ2FjeS10cnVuaworMTA3OTggNjNjY2U5ZDc3Nzk3NjIyZTU5NDU3M2E4YzhkMWMyMmE2NmI1NjFkZiBsZWdhY3ktdHJ1bmsKKzEwNzk5IDgxMDU3OTk2ZmYyMWQxYzRhZjJiMTI5OTMxYjg1NTU2NGUyYzk3YzUgbGVnYWN5LXRydW5rCisxMDgwMCBlYzg3YjYyNDY2ZDNhYWQ0YTUxM2YzZTJhNGMzZmVhMWJiMGQzNmZjIGxlZ2FjeS10cnVuaworMTA4MDEgZGY0MDNlZDM1YmRkZTAwYTBlMjdjN2U1NmJlOWQ3NTE0NWVmZWFhOSBsZWdhY3ktdHJ1bmsKKzEwODAyIGMxNGU2OGY1OTFjZTMwNWJkOGRkY2YzODRjNDVmZTJhMGFiMGUzYjkgbGVnYWN5LXRydW5rCisxMDgwMyA5ZGRkNjc5MzE5YTlkODEwMTRjNTM5YmZjYTBlODNjYzQzOTlkZWYzIGxlZ2FjeS10cnVuaworMTA4MDQgZTZlZjBlMzllMzVjZWQ4ZDY5NjJkMzljMTA5NTdkOGJmOWFkOTQ2YSBsZWdhY3ktdHJ1bmsKKzEwODA1IGUxMzkyMTA1MDMyNzgzYzU4NzJiMTQ3ZGJlYzkyOWIxZjkyOWI3ZDYgbGVnYWN5LXRydW5rCisxMDgwNiBjNDljOGY3ZmRmZjE4NmNlMTQzYjIyNGNmNzY0YzQ5ZThmMzI5NzI4IGxlZ2FjeS10cnVuaworMTA4MDcgYWYxMWRiZjM1ZWU1ZTlmYTlhZjQxODBhN2U3N2IyZTJjMzI3MzYzMSBsZWdhY3ktdHJ1bmsKKzEwODA4IGEyM2I3NTEzOGJiMGZiMjNmZmEzNDI0NGIwYzQxMTUyYzBmZTczNDcgbGVnYWN5LXRydW5rCisxMDgwOSAxODk3NzQ3NzM4ZjU5OGZhMzFhZTcxOGQ1MjdiMTcyYmNmMWY3MjJlIGxlZ2FjeS10cnVuaworMTA4MTAgNDgyNDBmNTI1ZWMzYmU1ODNjNTk1YmE5ZGQ2ZTM0MTkyMmE2NWRhNSBsZWdhY3ktdHJ1bmsKKzEwODExIGNkODI4NDYyYWNiYjgyZWMwOWIwMDhkZWJiNGQwYTQxOTQzNTYwYjYgbGVnYWN5LXRydW5rCisxMDgxMiA3YTFlN2RhOTIyZjg3MDU3MmI5ODQzMmI1ODBiMGE1ZGQwZWNiNWNlIGxlZ2FjeS10cnVuaworMTA4MTMgYzU5YjU3MzZmMzA3ZjM1MGUxYTA3YjNjOTVlNzViNmRlNGQwZWZkNCBsZWdhY3ktdHJ1bmsKKzEwODE0IDk2NzllNzdkNDJlM2Q1OGVhZGI4MTkxYzg3MmI1ZjMyZjgwY2M0M2QgbGVnYWN5LXRydW5rCisxMDgxNSBhNGFlNzkyYjliNjgwMmFkMjBlZmIwMzRkZjdmOGJiMWRiZjI1YTU4IGxlZ2FjeS10cnVuaworMTA4MTYgNWJmYjVlZGMzMTNjYjY2MjEzMDI1M2I3ZGVkNjk2ZWVlNDZlODhlMyBsZWdhY3ktdHJ1bmsKKzEwODE3IGJmMTEyNjIwMjZiZGY3NTI0NGM0Y2M1ODZjNzMxNjY3YjAzMDgyNDAgbGVnYWN5LXRydW5rCisxMDgxOCA2YjcwOTViOThlNTRjYTViMTFiNzZlNDQ2MGIxNmVjMWJkYWRkMzY5IGxlZ2FjeS10cnVuaworMTA4MTkgOGQ5MGU3ODFhZGE4YmMwYTliMGRmOTAyYmFmZDM2ZTI3MTRmZjIxMiBsZWdhY3ktdHJ1bmsKKzEwODIwIDc2NThjOGExNDlkMTg1YjM0YmEwYWEwOGJmM2U2YzIxNTlmNjJmYjQgbGVnYWN5LXRydW5rCisxMDgyMSAyOGRhZTkxYzVkMGNjZGZmZDM0MzJkYzAwNWUwMDcwNmQyMDA2ZGViIGxlZ2FjeS10cnVuaworMTA4MjIgYTg0ZjY1OGQ0YmE0Y2VjYjIyYzUyZTg0M2JmMDlkMjFiYjc1ZGI5NSBsZWdhY3ktdHJ1bmsKKzEwODIzIGViZmRlMDZmZGI4ZDhjZDlkZjVlNTNiZjAzMDM2ZDBmYzY4YzczYzkgbGVnYWN5LXRydW5rCisxMDgyNCAyMjgxNWEwYjEyNjc1NmU0MWQ4MTQwM2Y1NTRmZWNiZTA2NTk1M2Q2IGxlZ2FjeS10cnVuaworMTA4MjUgMWI0YTM3ZjM3MzQ1MGFkZTliMjFlMjBmZWRiZjBjZmZjOTVhYzAyNyBsZWdhY3ktdHJ1bmsKKzEwODI2IGQyZDgyZjdiNDE5YTYwMTFkZmIzZjcyMmZlNjZkZGRiOTgyYTZlZTggbGVnYWN5LXRydW5rCisxMDgyNyAwNTE5NmE0ZTU0NDhiZjhjYzViYzU1ZGRmYjBmYTI1YjkxNjAxZDVmIGxlZ2FjeS10cnVuaworMTA4MjggMWIzOTNkYjAwYjFhYjhjYjNlY2YwYmRjODQ0MTM3YWE5ZmE1MjRkNCBsZWdhY3ktdHJ1bmsKKzEwODI5IGU3ZGQ5OTFmYWE0YWYxOTBjMDk3ZjQ2MGNlODBhMmMxZjAwOTMwMzAgbGVnYWN5LXRydW5rCisxMDgzMCA4ZDkzNzNiZDgzODRkZmNjNjdkYjdiYjZhNWFiZTkxZjg5YzRiNmYzIGxlZ2FjeS10cnVuaworMTA4MzEgNDE3MmRhOTE0NDFhYTBmNTY0MmFlOGYxZGM2NTYzNzRmMzJkODYxYSBsZWdhY3ktdHJ1bmsKKzEwODMyIDUyYzMzOTUyNDYwYThmNDQ3YTJkOWE0YTEwOTYwMTBiYjgyZDE1MzcgbGVnYWN5LXRydW5rCisxMDgzMyAyNTNiZmNiNjViNzczNDNhYTFhODYwNmRiNTI3ZmYzYWRiZDMxMDBhIGxlZ2FjeS10cnVuaworMTA4MzQgYzU3MTU1NDEzNGQxNTA1MTcyNjhiMTgwN2UwNTg0MzI0ZDg3ZWY5YyBsZWdhY3ktdHJ1bmsKKzEwODM1IGM4OTE5MWMyZTYzZjAyMDhmOTAxZmNlMmJiY2FiOTIxZjM0NmU5YmYgbGVnYWN5LXRydW5rCisxMDgzNiBmMzA4OTYxYjAzZDdkNTFkZWY5Zjg4ZmUwMzQ3OWI5ZGZkMDIwM2YxIGxlZ2FjeS10cnVuaworMTA4MzcgMWJjMGRmOTZiNGRkYzNlOTA2ZjFkN2JjMWE4MjRhMGYxNDdkMzBiZSBsZWdhY3ktdHJ1bmsKKzEwODM4IGE3NDIzZTY4Y2VlOTQ3NDFmNmE1OTg5YmQ1N2YzYjM3NzUxNzkxMTQgbGVnYWN5LXRydW5rCisxMDgzOSA4MjBmMDZiYjQxYzdmNTZmNWY1NDRhNWU2OWNhMjY0ZmYzZjhlYjMwIGxlZ2FjeS10cnVuaworMTA4NDAgZGE0YmRjZWVhYWQ3YTc2OWQzNmNhNjdhODVmMTdlZTQ5NDc3YjQ4YyBsZWdhY3ktdHJ1bmsKKzEwODQxIDczOWQ1ZmRhZmMzMmViMmE2MDk3ZTZhNWUzYzM1NTM2ZjI1OWZiOTIgbGVnYWN5LXRydW5rCisxMDg0MiBlMDc0NmEwZGE3MzYyYjAzMmRlOTY1ZmE3YzUwZGIxZjRlZjkwODc4IGxlZ2FjeS10cnVuaworMTA4NDMgZTgwZDRjM2RiYjc4N2M4ZTVjOTQ5ZjlmOTUzYjA5NWVjMDVhM2IxNCBsZWdhY3ktdHJ1bmsKKzEwODQ0IGU0MTIxMWE3YWVmM2ZhNTExZTRhODgyNjcxM2E0NmU1Y2ZjY2Q1ZWYgbGVnYWN5LXRydW5rCisxMDg0NSA1MmQ3YTllNzEyMjE1MmE5Zjc3YTNiMDc0YTJjZWM5YjUzYmQyYjZlIGxlZ2FjeS10cnVuaworMTA4NDYgNDU1YjIyOTQ1NDgyZmYwZjQ2NjFjZTVmOWRkOGM4NTRiZmZkNmFiZCBsZWdhY3ktdHJ1bmsKKzEwODQ3IDVmODNmOTdhYWViOGUxOTIzOTBjMTY1MTdlYjA2Y2U4NDBmNWQ2N2QgbGVnYWN5LXRydW5rCisxMDg0OCBlMTdhMDE5ZjkzOTBmN2Y1MGRmZWFiYmViODFlMjY1MmVkMTkwM2YzIGxlZ2FjeS10cnVuaworMTA4NDkgYTQ2NGU5Yzk4NWY4ZTViZjlkYzUxYmVkZWUyYmUzMzYyMjUyZmQ2NSBsZWdhY3ktdHJ1bmsKKzEwODUwIDFjN2E4MmQ0NjllMDY3MTY3YWVmZDZhYTI4YTU0MmU4OGFhZjY4YTUgbGVnYWN5LXRydW5rCisxMDg1MSA2NTBiZDEzYmVjOTJkMTEzZmY0OWM5MjNhYzI5NTQ1YTc3YjA2NDgzIGxlZ2FjeS10cnVuaworMTA4NTIgZjJiMDg1OWZlY2UzYmJlN2Y1OTcwMDJiNjY4ZjUzZGVlMDQ5ZTUxMyBsZWdhY3ktdHJ1bmsKKzEwODUzIGE2NTkzMGY1Y2RkYmNkYjVmNzJlYjExNGZiYjQxZWYwMjI3ZmNmMjkgbGVnYWN5LXRydW5rCisxMDg1NCA2YWQ3YzE2NTZkMThiNjkzNDE5ZmMwOWYxNTFiZTlkNDE3YjNhNmFlIGxlZ2FjeS10cnVuaworMTA4NTUgNmM4MjZlZTNlNTUzOGU0MTE1OGM4ZmJmYmE3NTM4NmRjMTIwNjZiNyBsZWdhY3ktdHJ1bmsKKzEwODU2IGExYmZlNWJjNmQ4ZWE4MWE0NDM4YzA3NTBmMmFhMWQ5NzZiYjM1MjAgbGVnYWN5LXRydW5rCisxMDg1NyAyNDJiM2M5YzViZWMyNzNiYThhZDhlMzM3YTRmYjI2YTlkNjhlMTFkIGxlZ2FjeS10cnVuaworMTA4NTggNzdjMWYxMWQwYThhZmNhZjcwODkwMWQ4NmFmYWViNDJiMjNjOWVmMSBsZWdhY3ktdHJ1bmsKKzEwODU5IDk1ZjdjNTJiNjM5OTQ3N2MyMzQ3ZjgxZTc0OTExOGUwMmJiZTBiZWIgbGVnYWN5LXRydW5rCisxMDg2MCA3YWMxNWYxZTUzMDIxMDhmNDgzMTY1Yjk3OTg4OTY3NGMwNjhmOWVjIGxlZ2FjeS10cnVuaworMTA4NjEgZjVlYmNjN2E1YWIyNmUxZjcxMDU1OTI5ZjE3NTk2N2NiZWE3MjNiMyBsZWdhY3ktdHJ1bmsKKzEwODYyIGNkMmRmZWQwYzQ0YjUzYTQ4YzBmYTUyMWNiMTFhZDQzMjdmZGJiNjYgbGVnYWN5LXRydW5rCisxMDg2MyA4MjJlMDgxMmYyMGMzNTcyZDBlNTY0OTJkNjZhNjdhYzhhYTdkYzAyIGxlZ2FjeS10cnVuaworMTA4NjQgMDU4MTkwYzlhNGYxMjZlODhmNWE0OWE4MGMxMjRmOTdmMTdmYWI5YSBsZWdhY3ktdHJ1bmsKKzEwODY1IDkxYmI1YTgwOTQ4MWEyYjFjOTZmZjVjMDczMmRkNjBhNTNjZGUwODYgbGVnYWN5LXRydW5rCisxMDg2NiA3NTJiOWY1NTU3ODhjMDI3N2MxODEwNzcyMzNjMmU0NGJhY2E3NjE5IGxlZ2FjeS10cnVuaworMTA4NjcgM2EzMTAwMTg0OTQ5OGUzNzRjMDI0MzdmMDY4MjM5NmY1MjhhNzViNSBsZWdhY3ktdHJ1bmsKKzEwODY4IGQ2Yjg2M2QxYmViOTI0NGFjZmI3NWMyZmY1MmQ0MzQxZWMxODE3MjEgbGVnYWN5LXRydW5rCisxMDg2OSA4ZTlkNWU1MTAzZjVkYzE3NWIxYTg2YmY5ZmE3MmMyYjBkODEyZTNhIGxlZ2FjeS10cnVuaworMTA4NzAgNzNhMjU3NzllODM3MmUxMWUwMDAwM2ZmNzViNDc4MTU1M2JhMWI1YyBsZWdhY3ktdHJ1bmsKKzEwODcxIGRlNjhmODNjMTY5Y2E2ODhlNTM4OTIyZjdmNDE3NDk5MDUwODE2YzkgbGVnYWN5LXRydW5rCisxMDg3MiA3NmNkMDM5NzlmY2E0MjNhODcxZjA0OTY1Y2FlNWY3OWFiZWZhMmQyIGxlZ2FjeS10cnVuaworMTA4NzMgYTU4MmQ3MGUzMTJmZWVkOTBhOTA3MzQ5OTBhZjdhZmU3MTA1NThmYiBsZWdhY3ktdHJ1bmsKKzEwODc0IGVmOWI5M2IyYTBmYWEzMzBiNGYzYjc3YmUwMjRhZDQyYmVmNjVhNjQgbGVnYWN5LXRydW5rCisxMDg3NSA3NjY5ZGRmMGU3ZDQ5NTBhN2NhOGYzZTgzZjY1NmRlYzBkNmFiM2JlIGxlZ2FjeS10cnVuaworMTA4NzYgOTNhYTA4Yzc3ZTYwZWIyYmRmZWRlYWUzOWI3YzJkNzc3Mzk5MmQ2NCBsZWdhY3ktdHJ1bmsKKzEwODc3IGQ3YzU2OGU3NzA3YmYxNzk4ZDQ1ZDI2MTA1MzM2YTA1M2YyODNlMDggbGVnYWN5LXRydW5rCisxMDg3OCA3OTA3MWE0ZTBlY2FiNjMxNDNlOTgzZmJiZWVhNGM3ZDk5Mzk1ZDc3IGxlZ2FjeS10cnVuaworMTA4NzkgYzliN2U5MjZmZDg2OTk1ZjE4MTA2MzUyODIyZDBiYmJiNGJlOWM2MSBsZWdhY3ktdHJ1bmsKKzEwODgwIGZmMzFmMjUwMTc0MjUzNTJjMzFmZDgyN2NiYjBkMjg4MzZjNzQ1MjMgbGVnYWN5LXRydW5rCisxMDg4MSA0ZWY3ZDI2MGZlYWM5MzFlYzE4Yjc5ZDFkMzUxZmFiZjZlNWFhNDMzIGxlZ2FjeS10cnVuaworMTA4ODIgNjI3MGM2YmFkODExNmZlMTdhN2VkNGM4MWQ1MjlmMWQwYWI0OTcwYiBsZWdhY3ktdHJ1bmsKKzEwODgzIDcwZjkzZTBjNTgwZWVjYWZiYTI5Mjk3NWE5MDY3NWI2MjVkNzNkNGIgbGVnYWN5LXRydW5rCisxMDg4NCAwY2IwMzk0YzJlZGNmZTE4M2NkNzc3Yzg3YmU4Njk5YjU4YTU5ZTIzIGxlZ2FjeS10cnVuaworMTA4ODUgYzRkZjhiNjYzN2I2OTQ1YjJmOWU4MjM2M2JmNmQxNWM3MDc2MGE5YSBsZWdhY3ktdHJ1bmsKKzEwODg2IDY0Yjg4YTE3ODMyODY5MWNkNGMyNWU3OGRlN2E1ZGZmYjE1Yzk4ZjggbGVnYWN5LXRydW5rCisxMDg4NyAzYzQwYWYyZDFkZTllMTM0YjVlN2RiZDVlM2IxMDcyZmZiYTk2MmVjIGxlZ2FjeS10cnVuaworMTA4ODggNGEzM2JiN2FkZjdkNjFiYjg0NmQyNDlhM2EwMzdlMTBhNDgxZjllMSBsZWdhY3ktdHJ1bmsKKzEwODg5IDA5Njg1N2IwZTRiODVkYmRjZTA3Yzc2OTAyZTFmOTk4NzYzYjk4NTQgbGVnYWN5LXRydW5rCisxMDg5MCA4YTRmZTE5OWI0NWRlZjcyOGNjMmQzMmMxZDgxMzAxZWVkODk1ZWQzIGxlZ2FjeS10cnVuaworMTA4OTEgZjIxODY3ZjgwMzViZDM4OTk1YzJmMWFhZTFjMzdmODA1ZjczOGJkNiBsZWdhY3ktdHJ1bmsKKzEwODkyIGM5ZTNjZThlNzRiNWQ3ZjUxYjRmMDkzYTJhMjY3Y2JlY2JkNmM5Y2EgbGVnYWN5LXRydW5rCisxMDg5MyBkYjhiMTBiN2NjZjIyNDk3NTQ3MTg4MDZmNTA0MTNiMDFhNmU3YWU0IGxlZ2FjeS10cnVuaworMTA4OTQgNDUwNTE2MGE3ZTVjNmNlMTM2ZGYxMTIwMmU5OWE2NjZlOTlkMzFhYiBsZWdhY3ktdHJ1bmsKKzEwODk1IDU1ZmM4ZDkzMzA4NzY2ZjE4OWM5Y2Y2OTEwMGU4MDY0NjE2Y2I5NmMgbGVnYWN5LXRydW5rCisxMDg5NiA0MDY0YjY3Mjk1MzdmMDMxYzA4Nzc5OTc4ZWU2YmE2MzMyMzMyZWY4IGxlZ2FjeS10cnVuaworMTA4OTcgZWNkZDRiNDY4NjI2ODU5MmM4NTNlNzRiNjIwOWE3MGEwZDMyOTFmZSBsZWdhY3ktdHJ1bmsKKzEwODk4IDllYTUwMDMxMTQ5YzIyMDRlN2I1ODg2ZDljMmJmNjMwMDQwYTc1NjkgbGVnYWN5LXRydW5rCisxMDg5OSBmMzk4NDE5ZDUwZjk3NGM1NTVlYjZmMjkyM2RmOTM4NTE0OTJkN2JjIGxlZ2FjeS10cnVuaworMTA5MDAgYjVmZjY2M2VlNzZkOWVjMzA2MzE0MzZhNmUwMGI4MzQ2NjNmZGM0YyBsZWdhY3ktdHJ1bmsKKzEwOTAxIGM4NWUxNDI5M2MyZWUxY2M0NTE2M2Y4NWRlY2ZlMjExNDk0NmNkMDkgbGVnYWN5LXRydW5rCisxMDkwMiAzMDRkNGU0ODg3ZjRjYTYwYTdjNDdmMzM3YjJiYzIyZmE4YzJjMWJlIGxlZ2FjeS10cnVuaworMTA5MDMgZDk2Y2JkYWNiZTcyMjRjOWY5OGI2MjAzMGU5ZDI5OGVjZmJmOGU5OCBsZWdhY3ktdHJ1bmsKKzEwOTA0IDQ3MmU0MjU0MTRkODI0N2ZkOTM3NTdjOWI1NTM1MjExNGM2NzQ4ZjYgbGVnYWN5LXRydW5rCisxMDkwNSAwYTAwZGQ1NzExZTYyMTMxOWY5YWFhZThhYjZlYWUxNmNjOTc0Y2U4IGxlZ2FjeS10cnVuaworMTA5MDYgNzU2ZTJlZjUxYjE5YzYzZmQwNGU4Nzk0OGY1NmFiZTg2NjQ0ZjE0MyBsZWdhY3ktdHJ1bmsKKzEwOTA3IGUyZDQxYmYxYTBmMDRjZWQ3NWQzMzAzZDZlZTE1MzBhZDI3YmQxMjcgbGVnYWN5LXRydW5rCisxMDkwOCAwYjNlNTc3YThkZjQ3YmZmZWY5ZmE1MDU3YzMyY2FkNzgxMjU4YzAxIGxlZ2FjeS10cnVuaworMTA5MDkgZTk2ZTNkMzg3NjExZjAzYTI3Y2JiYjZiYmYzOTY1YmIxMzIyMDAyMyBsZWdhY3ktdHJ1bmsKKzEwOTEwIDNlNjUzZTIwNGFkN2JiZmU5YTQ2YjcwMTdiZjYyMzAwOWNkNGU1NDQgbGVnYWN5LXRydW5rCisxMDkxMSBmN2M1OGVkMjk4MWQxZWIxYmY1MzUzZTY4ZGI0MjRjOTk5MzkzZDA1IGxlZ2FjeS10cnVuaworMTA5MTIgMTJkZGI5YmQwZDMzOTFkNTYzMTRjMDliZDI2MDE3MDkyOGJkNDk0NCBsZWdhY3ktdHJ1bmsKKzEwOTEzIDgyZjAyMWVlY2UyYzc4N2ViYTAyMzNmMTI2ZTY4OWY5OThiYTBjNWIgbGVnYWN5LXRydW5rCisxMDkxNCA5MmMwYzk4YjQyYzUzNjc3OGI1MjNjODg5OTA1NmFiYTkxNTJlNDQ0IGxlZ2FjeS10cnVuaworMTA5MTUgN2NkZmY4YWE4MzE4M2Y3ZjUxZDMxYjYxN2NiZjhlNzU2ZGRlNDk3ZCBsZWdhY3ktdHJ1bmsKKzEwOTE2IGFlNzQ2ZWFiMmE5NjA1NTRhODVlOWU4ODc1NTkxNTEwNzFkYjRmNTUgbGVnYWN5LXRydW5rCisxMDkxNyA3OGViNDBmMDMyODQzY2IxZWFhMTQ0MjBiMDgwNmY0MzEwOWM4OGFjIGxlZ2FjeS10cnVuaworMTA5MTggYTlhNzg4Yzc0ZDZlN2MyNTE1ZTAzYzFlOWY2YWZmNGU3NmI2M2I3NCBsZWdhY3ktdHJ1bmsKKzEwOTE5IGM3YjA0MzEzNmZkYmQ4MTFiMzA4NWM0NDg0MjAwZjk1NmViYTNkNTYgbGVnYWN5LXRydW5rCisxMDkyMCBjMDU5YmJkMTRiMjMyZDNlZmUyNGYxMjVlNDYzYjQxMmIyMGI0ZjZiIGxlZ2FjeS10cnVuaworMTA5MjEgNTM0NjAyNzQ2MDc5ZDEzYzkyOWJmOTE2YjY3MGQzZWU0ZjdjODUzZSBsZWdhY3ktdHJ1bmsKKzEwOTIyIDc3NDljM2UwMzI0YWYwNjZhN2U4Yjg1Y2Y1ZWM0NjE5MGQ2MThlNjMgbGVnYWN5LXRydW5rCisxMDkyMyA5ZTRhZWE1YTY1MmQyMWFkMGI1MWNhMjNkNjBlM2Q4ODNmOWQ5ODBhIGxlZ2FjeS10cnVuaworMTA5MjQgZmQ1Y2VmZGQxZjYxZGNmNGJlNGJiODA0ZGFhZWM2MmJmMzRhZTgxMiBsZWdhY3ktdHJ1bmsKKzEwOTI1IGM1NTBlZTQ5MzViMGM3ODZlZmVkNzc0MGQ4ZDM3Y2I0MmZkYWVkMTUgbGVnYWN5LXRydW5rCisxMDkyNiA2ZjcwY2E3Yzg0ZTY2Y2QzMmQ2M2I5Zjc1YWJhODlmMDJlZGIwMDZiIGxlZ2FjeS10cnVuaworMTA5MjcgMDI0NzE0NTU4NjIwZWJkMzMyZTY3NTBkN2E0ZTdlNTlmYWEzNGE5MCBsZWdhY3ktdHJ1bmsKKzEwOTI4IDU5ZGZhOWViN2MwNzBmZjY1ZWI0YjFkM2UyNDFlNzU1NjAxOGNmMWMgbGVnYWN5LXRydW5rCisxMDkyOSA0ZTY2OGYxYTlkZGRlZjVhMmE0Y2EzZjYzNGM3Y2RjN2VlMGE4YzYxIGxlZ2FjeS10cnVuaworMTA5MzAgYTM0MTYwOTFjMmEyNWEzNjEzMWFlMzgxMDY2MjViMjgzNTJmMzExMyBsZWdhY3ktdHJ1bmsKKzEwOTMxIDM2ZWExM2JhMzEzNjQ0M2Y3MmJlNTI4MzQ2YjJiMDRmZGM1YTIwNjMgbGVnYWN5LXRydW5rCisxMDkzMiA2MTkxMmQ0YWQ1MmY2NzgzZTlmOWIwNWVjMGM1NjY1NzI2NzJiOWY2IGxlZ2FjeS10cnVuaworMTA5MzMgNzU0ZGU2MjFlOGIzMGNlOGNlMmQ1YjE5MWRkOGU3Y2E5MDc4MjMwNCBsZWdhY3ktdHJ1bmsKKzEwOTM0IDg0ZDFiN2NmODE1YTc5ZTkyM2RkZTA0MzA4MjY3YjliODg1NTM1Y2MgbGVnYWN5LXRydW5rCisxMDkzNSA0ZTU5ZDg5MGE0YmRhZDk4YmVlMjEzMzIxNzUxNGMyNTE4YWQ3Y2JiIGxlZ2FjeS10cnVuaworMTA5MzYgMmJkOGQ1MjBmZmFjMDFhNTdlMThiOTU0NDg1MzcxOTVlYzY2NzJjNCBsZWdhY3ktdHJ1bmsKKzEwOTM3IGFmOTI3M2IxMDczYWFhZjg5NzIxYjQyMWY0YjI3ODRmZjY2ZDA2OWIgbGVnYWN5LXRydW5rCisxMDkzOCA5MmM4OGNhNjJkYTdiODEzNjk2ZmViNTdkZWZhNmIxZjVkOWRkYjRlIGxlZ2FjeS10cnVuaworMTA5MzkgYWY0ODg4N2M5NzE3NmI2ZTg1NTMwMDE5NGU5YmQ0YWYwNGM3M2U1ZiBsZWdhY3ktdHJ1bmsKKzEwOTQwIDU3ZGFlMWM3ZWE4NDdiYjk1MTA5MmQ1MTJiYjFkODQyYmE2NGQ1YzkgbGVnYWN5LXRydW5rCisxMDk0MSBmNzUwYjFmZmUzNTI5MmUyZGI3NDVmYmMwZGFmNTI1YTIwNTcxY2ZiIGxlZ2FjeS10cnVuaworMTA5NDIgMjA5NWFlNjkwYWFjYTA0ZDc0MmJmYmE3Yjk0ZmE1ODU2ZjQ3ZDNjMyBsZWdhY3ktdHJ1bmsKKzEwOTQzIDEwMjY3Yzc1NTVhZTY1MTAxNjY4YzY0NmU2ODMwMmZlMjY0NDMyNDMgbGVnYWN5LXRydW5rCisxMDk0NCBkYTA3NjYzZjlmZmY0NmZkMDgxNmQ5YTA2NDE2ODc4N2JlODUwYmMyIGxlZ2FjeS10cnVuaworMTA5NDUgMTMzZjQ1NTRhMjZkNTdjZTU5MzRkODllZmQ2YTVmNzkyM2VjYWI3YSBsZWdhY3ktdHJ1bmsKKzEwOTQ2IDcxNjBlNTI5ZTlhMWViMmFlNmJjYWI5MWE5N2ZmZDVkM2VjNTUyZWEgbGVnYWN5LXRydW5rCisxMDk0NyAwZTZmYmJlM2I2M2MxNDBmNzhjNjk1ZjJiNzE5OGYxNjQ3NTg5NmQ2IGxlZ2FjeS10cnVuaworMTA5NDggNDEyMDlkNWQxZDY0OTBjODA3YmU2Zjk4ZTMwYjRmNDFmNzkzNjE3NCBsZWdhY3ktdHJ1bmsKKzEwOTQ5IDc2MzhlNDU5NDIwNjc1YjZiMDgwNTY3ODE2OGRmMDRiNTA5MDRhNjYgbGVnYWN5LXRydW5rCisxMDk1MCBjMjdjZDVmYzQ2YjUzMmZhZGQ0NDExYWU3ZDJlYzE4ZGIxNTRlNzk2IGxlZ2FjeS10cnVuaworMTA5NTEgOWMzMmNhYzU2MjUwNWQzY2RlMjBlZDlkNGU5NDYxYmIzOTM1MzcwYSBsZWdhY3ktdHJ1bmsKKzEwOTUyIDkzMzg4MmMwZTlmYmEwYTJkZmVkZDA1OGQ5NDA1NmVhM2RhYmM4ZmQgbGVnYWN5LXRydW5rCisxMDk1MyBjODkxODliMDIzNmVjMWYxMzkzOTBkNDljODEyMjc2MTg4OTE0N2IxIGxlZ2FjeS10cnVuaworMTA5NTQgYzU1NWM3MmYwOTBkZDA4NzA1MGM3NGFlMGU2OTViNTkzMDE1N2NhYiBsZWdhY3ktdHJ1bmsKKzEwOTU1IGE5ZDg4YmZhMjRhZjM3MjM4NTAzYWFiZTljZjU5MThlMWM3ZGY3N2YgbGVnYWN5LXRydW5rCisxMDk1NiAwNDlhYTNhOGExNzIwZDE0ZWQzOTg0NGU4ZWQxODNkMDQ0M2Q1M2E1IGxlZ2FjeS10cnVuaworMTA5NTcgZjhjNmNmNWNmYTdkMDE2YzI5Y2UwNDc0ZWE3YmJhMTZmMWY0ZGY4MSBsZWdhY3ktdHJ1bmsKKzEwOTU4IDdmOTViYjJmMTcwNDg5NDM3Yjc0MjE0YmVmMWVmMzFjNzQ1MzIwZGQgbGVnYWN5LXRydW5rCisxMDk1OSAzYTg1YWQ1ZTQxMTZjZDUwNmU1Yzc2NWQyYTRjYTJjYmM3ZWU0OTJiIGxlZ2FjeS10cnVuaworMTA5NjAgNGJhNTg3YWE4YTk4YzljOGI4NGQ5OWYxYjdlMzFlOWZmNGVkNTJmOCBsZWdhY3ktdHJ1bmsKKzEwOTYxIGUyODFkNTAzNjcyNTI5N2Y1MTVjNDUwOWE4ZmZkNmU0NDAyMGU2YzggbGVnYWN5LXRydW5rCisxMDk2MiBkOTNhZTM3NGZiOTk4YWJkYmE2NWM2NjQ3MTQ2NDE2YTg2OTQ1OWU0IGxlZ2FjeS10cnVuaworMTA5NjMgNjE0YTdmZmVlMTEzM2U3MTFjOGMyYmNjNDNkMmZmZjNlNzUzMjQ2MiBsZWdhY3ktdHJ1bmsKKzEwOTY0IDdlM2I3MmQ4YWU5NDYyMDIwNzhjMTYwMzI0OTRlNWNmMjVjMTljNjAgbGVnYWN5LXRydW5rCisxMDk2NSBmNmU5MDBkYTM3ZGI0NTgyNzRmZDE5ZmNmNjNjYjAxMmFmMGFiNTVhIGxlZ2FjeS10cnVuaworMTA5NjYgMmU0ZjE3OGQ3ZTE3NTkzOGM2Mjc3MmJmNTY2NTE3NmExZGY5OTIzZCBsZWdhY3ktdHJ1bmsKKzEwOTY3IDdmOTRiNDk1ODA1NjI5ZWU2ZWI4YzRhMmUzNjg1YzhlNzZmYWRjZjYgbGVnYWN5LXRydW5rCisxMDk2OCA1M2FmY2QyODMyNWVmOTE3Mzc1ZTRmODYyOTZiODlmMjNiODllNGVjIGxlZ2FjeS10cnVuaworMTA5NjkgNTE0NTc3NDBmNWNhZTlkNTdkMjY1YTQ2NjI4ZjczZGU1YTRhZjJjNSBsZWdhY3ktdHJ1bmsKKzEwOTcwIDM2MDQxMzFmOTQyZDY4ZjNhNmYzNThlYTIyZjRmOGMxMzczNWQ3OWIgbGVnYWN5LXRydW5rCisxMDk3MSBiYmI3ZTFkYTQ2ODYyMzUxZDBlNTFmYzM5MGM1ZjZkMjNhMTZjYjhjIGxlZ2FjeS10cnVuaworMTA5NzIgN2QxZGZlNjZmNjRiYzU1MWMwM2I5Yjk1ZThlOTg4MjIwMDQ5Yjk0ZCBsZWdhY3ktdHJ1bmsKKzEwOTczIDAzOGE1YzQzMzU4NjFmZWQ3NTYyYjJmMWNlNmExYzU4MjI2ODNmZmQgbGVnYWN5LXRydW5rCisxMDk3NCBlYjZmNjU5NjZmYjIyYjhmMzcwYjI0YzM4Yzk5N2NkMGZkYTk2NzU4IGxlZ2FjeS10cnVuaworMTA5NzUgMjhmNmIwM2JiNjRmMDU4ZDlhNWQ3ZDgwYTMxYzA5OGY2ZDk5NmMyNSBsZWdhY3ktdHJ1bmsKKzEwOTc2IGZjMjk2MjVkZjUzMjU5MmM1NDhlMDVjYWQ1ZDA1ZmQ0N2RiNTI1YjggbGVnYWN5LXRydW5rCisxMDk3NyAwMzYzZjE5ODg3ZDE1YjJlNjBhZjNmOWZlYWE2ZDM0Njc5Yzc0Yzg5IGxlZ2FjeS10cnVuaworMTA5NzggMWQ4ZGFiNWFhN2QxMGUyOTM5YzU4NGQ1OWIyMjMyMGU0MmNhN2U1MyBsZWdhY3ktdHJ1bmsKKzEwOTc5IDBmOTFjMGJiYWNjNTdjNDQyYmI0MDkyN2NmNmEyMGQ4ZmMzM2M2YjUgbGVnYWN5LXRydW5rCisxMDk4MCA2OWM5YmJiNjlhYWIyNjdmZWY1OThmZmJjMWJhMWMwYWQzZjA3NTdkIGxlZ2FjeS10cnVuaworMTA5ODEgMDQ0N2VmODQ4M2M4Yzc1NGU3M2QxMDQwNzU0ZGE5ZmNlOTFiZWM5MiBsZWdhY3ktdHJ1bmsKKzEwOTgyIDkyY2Y3ZjQyNzcyMzBlOTA5M2ZiNTc3M2RhMjJlZjg4NTdkY2VmZjkgbGVnYWN5LXRydW5rCisxMDk4MyBiYTMxMmU3OTBiMmEyY2I2MzlkYWY2YTJkN2E2ZjA4ODdhYjU4MGU4IGxlZ2FjeS10cnVuaworMTA5ODQgYjhiYmNjMDA5YTZhYjM1ZGZiYTc3MjExMjE2MmYxNTMzZjM4ZWFlYSBsZWdhY3ktdHJ1bmsKKzEwOTg1IDg1ZTY4MjA0ODJmZjgzNWNiMTljYjExODI0ZmY4MTQwNTZmNDkzZGMgbGVnYWN5LXRydW5rCisxMDk4NiBkZTExYTg4YWM0OThlYjRmMTI2ZDVkOTZlYjI4YjE0MWY3NGI5ODllIGxlZ2FjeS10cnVuaworMTA5ODcgZTgyZDAyNzdlNjUzYzA5ODVmNTBmZjE5MzExMTkzZWVhYmJkZDYyMCBsZWdhY3ktdHJ1bmsKKzEwOTg4IDZiZjViODdhZjAyZjlhNjBjODRlMjIxYzU1YmM1YTIwOTg0NTIzYjIgbGVnYWN5LXRydW5rCisxMDk4OSBmNDgwOWZmMWY0ZGE0ZTZhNTJiY2Y3OWFlOGNkMDhkZDQ5Y2M3MzNmIGxlZ2FjeS10cnVuaworMTA5OTAgZGVkNjlkMTJjYzY4MzVlYjA0NzIzMWMyOTQ1MTM3NWEzZDE1MjczMyBsZWdhY3ktdHJ1bmsKKzEwOTkxIDhlODIwNzE2Y2YxMjNlMmMyNWZlNjZkMjY5OTMxMTNmYTJjMTRkZmUgbGVnYWN5LXRydW5rCisxMDk5MiBkZTBmMGMzZWQ0MjRlNmE2NTM1MjA4ZjViYWM0Njc5NTRhMTBiZmVjIGxlZ2FjeS10cnVuaworMTA5OTMgNjk2NjJmMTZhODM4OTY0MzY1MGE1NmI5MjZiOTA1MGYwNzk4YjY3NyBsZWdhY3ktdHJ1bmsKKzEwOTk0IDRkZWQ0MDE4YjBlYjNjZmYzMmMzNGE1NWFmYjdkMzgxZTBiNWU2YmIgbGVnYWN5LXRydW5rCisxMDk5NSBkYTliZjllZWQxZmM3MjIyYWY1N2Q0YjA3NmIzNTU4YTAyNjE2NDIwIGxlZ2FjeS10cnVuaworMTA5OTYgMWVmNDBkNWFjY2UyMmI3NjZlNDBiM2RmZmY1MTQ2ZTVhYWJjYjJlNCBsZWdhY3ktdHJ1bmsKKzEwOTk3IDE2YjNhMTIxZmY3NzJlMjRkZmRmMmIyOTZlNmYwNjU0MWFlYTE2NGQgbGVnYWN5LXRydW5rCisxMDk5OCA4MWUyOTQ3N2QyYTRjMGM3NjJhMzMyZTRlODM4NGMzMmMwMDU5MWU4IGxlZ2FjeS10cnVuaworMTA5OTkgNTBlODdjMDljMjM2NmMzMzM4YmEzYmQyM2U0NzhmYWU2ZTYyNTExMSBsZWdhY3ktdHJ1bmsKKzExMDAwIGI1Njk4MWMwZDYxZWJiMmI4MWZmMzg5MzUwYmEyNmNjZDRmMWU1NmIgbGVnYWN5LXRydW5rCisxMTAwMSA2MWE5YzUyOTQ1NWE5MDgyYmQ5ZTJkYmRiMmYxNmY0Y2RjOWJmNzg3IGxlZ2FjeS10cnVuaworMTEwMDIgYjk0MDE1YzBjODM3YWZlNmQwZTc1NWQ1OTI1MWUwNzYwYTM3YjI1NCBsZWdhY3ktdHJ1bmsKKzExMDAzIDA2NGY4NWVlOWJlNWIwNzk1YTE5ZjkzMTNhYWYxNDM2ZmY4YjUzYzMgbGVnYWN5LXRydW5rCisxMTAwNCA0ZTRmZDk1NGRkYTBmYmNjYzQ5MDIzN2RiMjg3ZDg5NWE5NTAzZGE1IGxlZ2FjeS10cnVuaworMTEwMDUgZDk5OTIwYzBiZmIwMTVlNzFjY2RiNGVhMzliOWYwNjkxYzQzMDViMiBsZWdhY3ktdHJ1bmsKKzExMDA2IDQ3YmYzYmI5NTU2ZTIxZjhjMDZhOGJkYTQzYmUyMmNhOTY1ZTNhN2QgbGVnYWN5LXRydW5rCisxMTAwNyBlYzI2ZDUxNDJlYjQ0MDIxMzQ4Y2QzYzczMDc4NjhiMWVlMjRhZTkwIGxlZ2FjeS10cnVuaworMTEwMDggZDdlMzllZWE3NmY0Y2UzODZkNDY0Zjg4YmI2ZTU3ZTFlMGM0NDQyZCBsZWdhY3ktdHJ1bmsKKzExMDA5IDVmMWU0MzFhMGE4MjY4ZjczYWFiODFhNjNiYjRhZTliOGZlOGNhMjQgbGVnYWN5LXRydW5rCisxMTAxMCAzYzhiMTQ5YjQyZmYzYTY1NmU2OGIzOTIwYmEzZDVjOTJlYjljYjE1IGxlZ2FjeS10cnVuaworMTEwMTEgMDM2NmRhZWZhMjNjMjY5NzBkMjQ3YTViMWMzOWM5NWZjZmJlMjJlMyBsZWdhY3ktdHJ1bmsKKzExMDEyIDQ4MjliOGZhZjJiNDJiNGM4ZTg0ZTNmYTM1N2JmZjMzZjUzYTRkOTcgbGVnYWN5LXRydW5rCisxMTAxMyAxOGE5Mjg5ZGY5OWExZjVkMzhjNDkyMjc5MTBmN2RiZjI5YWFhMTQ3IGxlZ2FjeS10cnVuaworMTEwMTQgMjE2Njg2NmFmOTJiYjE2Yzg1NGEzNDg3ZWFmNjljNmIxNzU2MDcyMyBsZWdhY3ktdHJ1bmsKKzExMDE1IGU1ZDA2YTYwMjQ2OWNkOWRmYmQwNmU3YmE2YmRjMzQyODYwMTJmMGQgbGVnYWN5LXRydW5rCisxMTAxNiA1ZjViNDkyZDE4MDQzYmE2MTRiZGM3MmNkN2QwZmI4ZGZjNGMxNTdlIGxlZ2FjeS10cnVuaworMTEwMTcgZjMxY2U0NjIwMWM5NTYwMTc4ZmQwMDEwNGY4ZDM1NDk0NjVjYjczMyBsZWdhY3ktdHJ1bmsKKzExMDE4IDE4YTRlMDMxZDdjYTBhNjg5ZmFhMjI0MGJiNDc3ZDE1MDhiYTI0MWYgbGVnYWN5LXRydW5rCisxMTAxOSAzYzQwNjNmMGE3OGZhZjI3NjY1Mzk3MmY3NjE3Zjk3OGI3NmNjOWMwIGxlZ2FjeS10cnVuaworMTEwMjAgMjEzNTg3YjNiOWQwYWY3MGU1ZWEyODYwZWMxYzA1YzNjMDRiYjlhMiBsZWdhY3ktdHJ1bmsKKzExMDIxIDUwOTlmNDRiYWYyNTVjMTk3Mzk3MzJjZjJiZTE4OGU3ZWY3ZjMyMWUgbGVnYWN5LXRydW5rCisxMTAyMiBmNGI2MzZkMTVhYmNkOTVjZDdiOGNjZDhlNDJmYzVjM2I5NTU0Y2FjIGxlZ2FjeS10cnVuaworMTEwMjMgY2YwZmFhZjNjMDRiNmRlYmQwNjM5YjAxMTE2YzMwOTA2OTAxNDU0MSBsZWdhY3ktdHJ1bmsKKzExMDI0IDVjMmYxOWQxOTY0M2EyODliYzc2ZGI4Mjg5Mzg5MTBiZTVkNGJmMjQgbGVnYWN5LXRydW5rCisxMTAyNSBlOTUxYmYyZDdkOTNiMjNiMDMyZGRkYWFhNDgwNTNjM2EwODE1NTE1IGxlZ2FjeS10cnVuaworMTEwMjYgMzVhMjE1MWZiMWMzZjYyNDc1YTI1YTUzYjcwMGVmMDYyODVhYzZiZSBsZWdhY3ktdHJ1bmsKKzExMDI3IGU2MzM5M2Y1MzY3MDIzNDgzOTIzNjc5ODVhOTQxMGQ0OGExMDlmOTEgbGVnYWN5LXRydW5rCisxMTAyOCBkYzhkYWE3NDhjNDA5MzQ1MWFjOGE1MmI2ZDBkYWU2ODAwN2IzNjFhIGxlZ2FjeS10cnVuaworMTEwMjkgZDg0ZjEyMDljYmE1Mjk5ODQ2OTM2NzdlZmEyZDQ4N2IzOTI2MDc1YyBsZWdhY3ktdHJ1bmsKKzExMDMwIGZhYzMzNzE2YTIxODM0ZjllNmY0OTU4NTQ0NTFhMGUxMTQ4ZDM5MTAgbGVnYWN5LXRydW5rCisxMTAzMSAxZWExOTViMTQyNDU5OTg0Y2Y5NTBhMTczODUyZGNhM2YzZjczMTFjIGxlZ2FjeS10cnVuaworMTEwMzIgMWU5ZDY1ZjljYTUzY2YzNzljNDAzMzA5NWYzZDYzMGYyNWI2ZDA5YSBsZWdhY3ktdHJ1bmsKKzExMDMzIDU4OWI2NDEzNWVlNjUxMjdmOWQ1MzVlM2UzYThmZjdlOTVmMGE5M2IgbGVnYWN5LXRydW5rCisxMTAzNCAyMmEwNzI0YzZiYWM1MWExYWIzZGMwYjAwYzI0YWRjNzM4NDgyZTg3IGxlZ2FjeS10cnVuaworMTEwMzUgNDM1N2I0ZWI1YzE5YTY2MTAzNDRlZmU5OTVjYzExN2NhNTkzOWU1MiBsZWdhY3ktdHJ1bmsKKzExMDM2IGQ3Y2U5YWUzNjJhOTA0MTgxZmUzNDViNDgzM2U4MWQxODZmMzIzNzEgbGVnYWN5LXRydW5rCisxMTAzNyBmNmQ4MjMzNGNlYjE1NmM2MDNlNGJkMmZiNDM0ZWFmZTEzNWZhZGY0IGxlZ2FjeS10cnVuaworMTEwMzggZDBlZWM5NmI0YzU2MjNkN2FlMGNmN2Y4MTg2OWYxNGQ3NDRiODhkNiBsZWdhY3ktdHJ1bmsKKzExMDM5IGIwMmM0M2EyMDFhZTVkZWMwMzFhOTE4Yzc5MGE3NzE3NGRkZjZlMmMgbGVnYWN5LXRydW5rCisxMTA0MCA4ZTYwZmYwNjQ2MDk5MzQ2ZDNhY2QxN2MxMGVhMjQyZTE3ZTc5ZTEyIGxlZ2FjeS10cnVuaworMTEwNDEgOTIyNjc4MzhmZWI5Y2FlNzJmYmVlNjkxYmMzOGQzNjIwZDUzZGNmOSBsZWdhY3ktdHJ1bmsKKzExMDQyIDQ2ZmQ2MzBkY2U2MzMxY2I1ODFlM2U2MDM1MmFiMTg2ZWUzZTg1MjggbGVnYWN5LXRydW5rCisxMTA0MyA4OTczZTcwODVjZjQ5Y2QzYzg2ODg5M2I4YmZmZjUwMjJmNGIxMWJmIGxlZ2FjeS10cnVuaworMTEwNDQgZmY5YWRiNTdiOGI1MWIyOTkzOGZmMjk2ZWJmNjU1ZTQ1ZWQzNzM1YiBsZWdhY3ktdHJ1bmsKKzExMDQ1IDQxOWVlOTVkZjJkODhmNWQ5MjA2N2FiNmQyZTRkNGRlNDFkM2JiYjEgbGVnYWN5LXRydW5rCisxMTA0NiBlODdkMjJjN2RlM2MzYzk4MzhiMmM2NWViZDhiOTA4NDMyN2VkZWIwIGxlZ2FjeS10cnVuaworMTEwNDcgMTllODAxNmNkMzhjZmU2Y2FiZWVmZGQzNjc0MjhkNzZmMWQyMjRjNyBsZWdhY3ktdHJ1bmsKKzExMDQ4IDZlOGIwZTc1NGE3ZjM3MDliMmQ0NGRkMTIwNGNiMjVjMzI3MmUzODEgbGVnYWN5LXRydW5rCisxMTA0OSBiYzg2MTlhZjA5MjNiZTE2ZjUyNWRkOGEyODYyMjBjZTc4Nzg0MTc5IGxlZ2FjeS10cnVuaworMTEwNTAgODcxNjgxNmUwODU5NGY0MDg5NjFiZGE0NzU1NjgwN2M4YTdlYWQ1MyBsZWdhY3ktdHJ1bmsKKzExMDUxIDQ1MDA3NjA2OGIyMmFlZTRkNGU0M2NjYTM3ZjY0NzVjYTFhZGZmNjggbGVnYWN5LXRydW5rCisxMTA1MiBiZDY5NWRlMThlY2YyM2FkY2JiNWIyZTk3ZmMxNDdiOTk3ODA5ZDU5IGxlZ2FjeS10cnVuaworMTEwNTMgNjdhYTk5N2ZiYjBlMTRiMjEzNzIzMjQ1MTUxYjI1NWVkMjZhMWFiZiBsZWdhY3ktdHJ1bmsKKzExMDU0IGVhOGYwZjVhYjAxNTdlOWNhZTliODc4YzRjNmMwYzFmZDQyN2MxM2UgbGVnYWN5LXRydW5rCisxMTA1NSA2MDUxZjJlNDM1MTc2OThmNDU0MmZlYWM5NGU0ZTg2ZmQxMmNhNzIzIGxlZ2FjeS10cnVuaworMTEwNTYgMTEwZTk3MzM5NzQwZWI0NWY2ZjljOWFiNjE4YTEzYjc3NjJjOGJjOSBsZWdhY3ktdHJ1bmsKKzExMDU3IDk0Y2U3NWY0MzQ1MmY5ZGI1NmYzNjY4ZTFkODVkMTY4NmNmZDJmZDIgbGVnYWN5LXRydW5rCisxMTA1OCBhMzM5MjU0NWQ4NjUyYzhhY2MxZWY2MWVkOTZkYjk2NmQxYzU3MjdlIGxlZ2FjeS10cnVuaworMTEwNTkgZjBmYWFkOGQ1OTM3Y2UzZDlhODUzM2FkZmRjMTZlMTU1NzNjMjU2ZCBsZWdhY3ktdHJ1bmsKKzExMDYwIDJiMDQxMTA1OTYzMDIzYWZlMzVhZjVkNThiMzRlM2Y3YzhhZWFjYWMgbGVnYWN5LXRydW5rCisxMTA2MSBiMWIzNWY1MGYzZmE2YTQwZGQ3MTRhNjNhNGUxZWJjZmY2MTU5ZDg2IGxlZ2FjeS10cnVuaworMTEwNjIgMWNhNjg5NTAyNGQ5ZmVlYjhjY2VmN2NiNTYxOTJkMGY2MjBjM2QwNSBsZWdhY3ktdHJ1bmsKKzExMDYzIDIyMTY2N2Y4OTA2NDg2YzA5NWRiOTUzMmY4M2M3N2FlMWY3YzMzYWMgbGVnYWN5LXRydW5rCisxMTA2NCBjMzQ5NzAyNjUyMGQ3YTA4N2NlNWU0OGM5ZWRiMDJlZDIwNmE1NTVmIGxlZ2FjeS10cnVuaworMTEwNjUgZThhZGViNWNkMmZiN2I3OTcwYmVmMDQyMjg5ZGQ5MmEyYmNlNjhhZCBsZWdhY3ktdHJ1bmsKKzExMDY2IGNiN2ZjZmI1NjI3NTRjN2EzNmE5YTBjNjQ4ODM2ZmVkNWYxMjBkZTEgbGVnYWN5LXRydW5rCisxMTA2NyAxZTVlOWRjNmY5OTM5NDg0YzZlYzEyMWI0MjRiN2QxMjY2ZmQwYTg3IGxlZ2FjeS10cnVuaworMTEwNjggYmRmZWY4ZTczNDU3MjMwOTlkNDQxMGUxNzI0YzAwN2Q4ZWZlMWM2MSBsZWdhY3ktdHJ1bmsKKzExMDY5IDE1ODFjOTMxY2IzNWE2NTQ4YjU3NWE3ZTIxYzYxMjYyZjQ2MDY0ODUgbGVnYWN5LXRydW5rCisxMTA3MCA3NGExMDBjYjdhNjQzYjUxYzkyYjc4NzJlMjAwYWIxMzM1N2IxYzE4IGxlZ2FjeS10cnVuaworMTEwNzEgOTdkYzZhYTUzMmU3MjE0ZDRlMDI5ZmZjMGU5YTMwNzY4NzdiOWE1YiBsZWdhY3ktdHJ1bmsKKzExMDcyIGUxZmUzMGYzMjViOTkxNWQyMGE2ODc3NWRkMWQyZjEwYTQ4NTE3MGIgbGVnYWN5LXRydW5rCisxMTA3MyAyZjQzYjYxYTk4ZGY1YWUxOWYyZWE3YTM2ZjY5NTAzZGUwNTRlMGQwIGxlZ2FjeS10cnVuaworMTEwNzQgZWNmMGQ1MTUyOWFjNTlkNTM0YzFlMjUwZTc0MDA1NGU2OTQ5ZmI4OSBsZWdhY3ktdHJ1bmsKKzExMDc1IGZkMWY0ZWUxYjMyYTYxM2Q1ZjM3YjU4MDZjMWJmODNkNDFmYTAwN2UgbGVnYWN5LXRydW5rCisxMTA3NiA1ZDc3N2JlYTU0MzUxN2NkZGNlY2YyYmQwYjJmYzcyZjU4MDE1OTA5IGxlZ2FjeS10cnVuaworMTEwNzcgNjM1YzNkOTRhOTQ4MjE1OTQ0NTkyMDI4OTljMWI4OGQ4MTgwYWQ5ZCBsZWdhY3ktdHJ1bmsKKzExMDc4IDEyNWYyMWZkZThjNDA2NTVlMTdjODJiYTA3MTFhMGEzNDNmZTYzMWMgbGVnYWN5LXRydW5rCisxMTA3OSA3YmM3MTQxNDRiOThkODRmZjhiZjIzMWM3NGZlMDQxM2Y4MzhhZGM5IGxlZ2FjeS10cnVuaworMTEwODAgZWFiYjgzODFiZmM3NGFlZDhlMDk3MjIwYzM0NTUxOTRmYjlmYTk5OSBsZWdhY3ktdHJ1bmsKKzExMDgxIGQ0YTY4OGNjYjkzNzAxYzMxYjIyYmYyYWE4MmY1OWJhYTg4NTE1MTcgbGVnYWN5LXRydW5rCisxMTA4MiAyODM2MDJmMzAwNDMyNDFkMWM0ZjUxNjEwYjVjMjgwOTc3ZGU3MDI4IGxlZ2FjeS10cnVuaworMTEwODMgMDE5OGIyZjZiMWM4M2JiNTYyNWQxZjE3Njk3MDQ0NTJjMWU5Njg1OSBsZWdhY3ktdHJ1bmsKKzExMDg0IGNlMzYyYjliYTgzNjFmZTc1ZjVmZDA2ZDk3ZmJkMDgxMGYxOTlmNDkgbGVnYWN5LXRydW5rCisxMTA4NSBjMDQ0OTc3MTQ4ZTkwNGRjYTQxYzE4NGQ5ZjkxOTk1YmI1NDk2YmFiIGxlZ2FjeS10cnVuaworMTEwODYgZDFmMzkyY2RmY2VhNmQ3ZmMzNWUxYzQ3ZDkzZTdkMmM3MDYxMWY1NiBsZWdhY3ktdHJ1bmsKKzExMDg3IDNjOTZmYzg0NmI4OGJhM2ExOTQ0NWZkYTJjY2I2Y2UzZjk2NzgyMjIgbGVnYWN5LXRydW5rCisxMTA4OCBlMDE3MzcxYjdlZDFiMzJkYzY1NzQ1NGMwODAwZWI4MmNmMzE5MjA4IGxlZ2FjeS10cnVuaworMTEwODkgY2MwZmRlNGRkZjQ0ZWFlNWVhMmFkNmFjOGY4YTcwZTY3NzllYmFlOSBsZWdhY3ktdHJ1bmsKKzExMDkwIDQ1ZjlkZmZkYmEzZGMwOTMzY2UyYTFmZmIyZjdmMWE3OWM2OTVmNDcgbGVnYWN5LXRydW5rCisxMTA5MSBjZTI5NWJmYWNlZjM3Y2E2M2RhMzgyYjM3ZWE0NTExYTM4OTQxNWQxIGxlZ2FjeS10cnVuaworMTEwOTIgNjZmMDU0MDY1NmEwZTRhNjFmMTVmMWUzZThjZDAzYzdkZTNjNjAzMSBsZWdhY3ktdHJ1bmsKKzExMDkzIDA0ZDU5ODczNzBkZTJlZWVjMDg5NzAxOGVmYTQwMjc0NWMyNGYzMmEgbGVnYWN5LXRydW5rCisxMTA5NCAxYmJmYjkxZjhlODg2ZjI3YjdkMDNlODY5ODEwNmQ1YWExYmY3ODc3IGxlZ2FjeS10cnVuaworMTEwOTUgZTNkM2JiYmQ5M2YzNGMzYzE4ZTM1ZmE2ZjcwOGY3ZjdmYWFkODU4ZiBsZWdhY3ktdHJ1bmsKKzExMDk2IDY0ZjBjMzE4OGU3MDdhZTE1Y2FhZDczYTYwMzI4ZDA0OTM5MDI3MTIgbGVnYWN5LXRydW5rCisxMTA5NyBlNzgyMmI2NGEzM2QzZDNlY2JmMzMyOTZiMzgxOGRkZTU3MmE4MzI3IGxlZ2FjeS10cnVuaworMTEwOTggMjQxN2YxN2ZhM2U1ZmQyYzgwZDViYjdhY2MxOGFjYzA3YjViZjQyOCBsZWdhY3ktdHJ1bmsKKzExMDk5IDQ2YjQ3MmVjYjBmOTBhNTE4YTBlY2ZkZDBjNTczN2E2ZTA1M2U5YTkgbGVnYWN5LXRydW5rCisxMTEwMCBhODA3NTUzMWUyMGQ2MGJhMTJkMzM3NjljMWVhYzMzY2UyNGMyYmFlIGxlZ2FjeS10cnVuaworMTExMDEgNmVkNTAzZDljM2Q1MmNhNmJkZDA5N2IyZjE0N2I0NzFkYjU4MDRhNSBsZWdhY3ktdHJ1bmsKKzExMTAyIDBhM2M4YzIzZTFkYTJhNDkwZWM0ZGE4N2ZkMWYzMzhkZTEzZjk1YTYgbGVnYWN5LXRydW5rCisxMTEwMyA5Zjg0YjkxOTk1MmU1ZGM0ZmY0MGE5ZjgxZGQ2ZDFmYzQ3N2VjMTllIGxlZ2FjeS10cnVuaworMTExMDQgZjA1Nzc1MWNlZjYxOWM3Mzk1YmU3ZjBmYWQ0OTUyNzE2ZjQ2MzM4MCBsZWdhY3ktdHJ1bmsKKzExMTA1IGJkYTVhYzlmNjRlOTRlYmJlMzRiMGM1ZmQ3NzU1MTNjODEzZjk0M2IgbGVnYWN5LXRydW5rCisxMTEwNiAzNzFjMzEyNzY3Y2M5NjA4M2JmMzFmN2U4OWFkYTI0MzkyMGZiNmYxIGxlZ2FjeS10cnVuaworMTExMDcgNTFkY2JmOGEwYjkyYWI2MGRlMDViOGNhZWQyMjlhZGE5ZWI4NjI2OSBsZWdhY3ktdHJ1bmsKKzExMTA4IDI2ZjQ4MmQxNjE0MGJmZDQ2YjgyNTY2MWI1NmM3MDEyNDg2NTU0M2EgbGVnYWN5LXRydW5rCisxMTEwOSA2ZWQyY2MyNzkzNDZmZDcxMDRmOTEyMzYyMWZkZGQyMGM5NjAzN2VkIGxlZ2FjeS10cnVuaworMTExMTAgYWVhNjg0MWFiODk4ZDBiYTJlNTE5MzUwYTg2ZGNjYmZlN2JhYmY4OCBsZWdhY3ktdHJ1bmsKKzExMTExIDIzOTQ5MmIzNGY2ODJkNWNjYWRkYWQ5YmZjZWUxYjg4NjIxOThjNGIgbGVnYWN5LXRydW5rCisxMTExMiBhOTM5ZDRlMTRhOGQzMjQ1MGRlNjdkYWM1YjY0YjhhOWY2M2Q5OTdhIGxlZ2FjeS10cnVuaworMTExMTMgZDg2NzMzNjc2ODE1ODE1MjNjNGEyZTE0ZDk1YzM5N2Q1OTM3OTMyMiBsZWdhY3ktdHJ1bmsKKzExMTE0IDZkNzVhNDQzNDdhMjAyMTUyYmVlMzJlYmMzNmI5M2Q5M2M2NmNlMWYgbGVnYWN5LXRydW5rCisxMTExNSBjY2RlYmI1ZWQzM2EzOWIyYjI0MGU0M2QyMzhkNjMxNGYzMmY1ZjZiIGxlZ2FjeS10cnVuaworMTExMTYgMTE3MTM4MWZhMDFjOGE3NTBjMzIzNWJkZGU5OTNiYTkzNzc3ZjU1NiBsZWdhY3ktdHJ1bmsKKzExMTE3IDU3OThjZTNiZmYzNTRhMmUzZWJjNTE4NjU2MDE1NDc0MGM3Y2NjOTYgbGVnYWN5LXRydW5rCisxMTExOCBkY2VjOTgzNTc2ZDUxNGZjM2ZjMmIyMThmNWZmNzEyYTY4NzQ2MmFmIGxlZ2FjeS10cnVuaworMTExMTkgOWYxZTk1Y2RmYTE3MzE0NWVmOWNhZGE4NTdlN2I3ZmY4NDAwN2ZlMiBsZWdhY3ktdHJ1bmsKKzExMTIwIDFlMTIwYTVkMmU5MzQ1NDVlZGJiNjM2MGJhNjcxOWExNmQ4NzhlZjQgbGVnYWN5LXRydW5rCisxMTEyMSAwMjdhMWRhZDEzNTMyZmI2OTBiZjJjODIxZDg0YmU2ODFjYjcwMjk2IGxlZ2FjeS10cnVuaworMTExMjIgOGU4NmE3OTdlNTk2YzhjOWIxMGFjYjk5YzU5NmVhY2VlZDVhNTJiNyBsZWdhY3ktdHJ1bmsKKzExMTIzIGI0ODBlNmVkYmMwN2JkZjY5Mzg0ZTdiYTc0YzljMzg2NTYyNGNmMWQgbGVnYWN5LXRydW5rCisxMTEyNCAyYmZiMTIzNTViMTAyYTliNjI0NjlkZTVhOWI3ZTRhZTIxODFkZjlhIGxlZ2FjeS10cnVuaworMTExMjUgZDQ5Y2JlYzU5Mzk1YzI4ZGNlMmEzOGQ1M2JkMzEwMTIxM2RkZjQ4OSBsZWdhY3ktdHJ1bmsKKzExMTI2IDlhZTkxZTkzMDdlMGFlY2M1NjhjNTk3ZGY5YTVhMGNhZDlkNGUzMTEgbGVnYWN5LXRydW5rCisxMTEyNyBhZTBiNmMxYzllOGQ2YTNkZmIyMjM0M2ExYzIxNzQ2NjViZGIwOWI4IGxlZ2FjeS10cnVuaworMTExMjggZTgzYjM1M2QwYTFjZGFhZTg0Nzc5ZjRhOTk2NGQ4NWMxYjdhMjc3ZCBsZWdhY3ktdHJ1bmsKKzExMTI5IGEyYmVhZWRmMGFlZWYwYjY5NDUyNWVkZTk0ODAzOTM1MzNhNjIyYzEgbGVnYWN5LXRydW5rCisxMTEzMCA3NzUxODgxNDBmZTFmYWJkYzVmMTYxNTM1MWMzMGZlYjZiMDE1Njg0IGxlZ2FjeS10cnVuaworMTExMzEgOWFmOTVkNzI3MGRmZWY1NWNjNmFmNzhiMTdhNmU3ZDRiYWMyODQ0NiBsZWdhY3ktdHJ1bmsKKzExMTMyIDNiZTkwNjQ2Nzc0MDk1YTNmMWI2MzIxNGVhOTdiNDJmNmM2NDdlYWYgbGVnYWN5LXRydW5rCisxMTEzMyA0YmE5YjcwY2E1NmUyNGY2M2E0OWQ3NmE1YzEyY2MxYjVmNWQzNThkIGxlZ2FjeS10cnVuaworMTExMzQgOTdhMTEwOGIwZWIyODE1OTExMTQ0NDYyNDc1YTljOWEzMGQ1YjI1ZCBsZWdhY3ktdHJ1bmsKKzExMTM1IDJlYjljMjFjMjJmN2U5NTE1NWVlN2RmMjUyMWYwZmZkNWE5NmRjMTIgbGVnYWN5LXRydW5rCisxMTEzNiA3ZDRhMzg2YmVkM2ZjNTM5MmRmYWU4MmUwNGE1ZWNlZDRiMGMzMzhhIGxlZ2FjeS10cnVuaworMTExMzcgZWQwYTM4Y2JjM2U2M2Q3MjhmODBlYjNjOGE4ODIwNmFmYjc2N2NkNCBsZWdhY3ktdHJ1bmsKKzExMTM4IDllNTM2ZGQzZGM5N2YzOTk1N2E0MTllY2Y1MGUyOTEyMTY1YmQwMTMgbGVnYWN5LXRydW5rCisxMTEzOSBhYzQzZTIyNDY2OTViZWM3ZWViNTYzZDVhMTI3NzNhNDlmN2QzODU5IGxlZ2FjeS10cnVuaworMTExNDAgMWU5M2ZhMDIxNDA1NGI5NWNkMzIzNDRlOWUwN2I2NzNkM2FiZTgwZSBsZWdhY3ktdHJ1bmsKKzExMTQxIGNlNTRiNTQ0OGM4NWQ3NWFhNjExYzUyMzgxMDBlMzJmMWE5ZDIyM2EgbGVnYWN5LXRydW5rCisxMTE0MiBkZTc1OWFjYTEwYjI1Mjg5YmZmZDBjNTM1ZmJlZjk3OGVmOTUwNmY4IGxlZ2FjeS10cnVuaworMTExNDMgMzBmYmYxOGFmMjllOGFjOTVjZDc1MTkzMDYyMTAzYTcxYmRhNGYxZSBsZWdhY3ktdHJ1bmsKKzExMTQ0IDc0ZjM4NWVlNDRjYmJlZjgzMThkZGE2MzE5ZjAxOTNhZjU0ZWExMjUgbGVnYWN5LXRydW5rCisxMTE0NSAyZmRkZTc4NGQ4NDlhZTExMTNiY2UzOTI3ZGFmNDkzNjMyYWU3YzUyIGxlZ2FjeS10cnVuaworMTExNDYgODU2OGFhNDk0NGEwMWYxYTlhOTkwNTlkNDFjYWZjODVjNDNmM2RhYyBsZWdhY3ktdHJ1bmsKKzExMTQ3IGY1OTQ3NzhhNTZhZjk1NDVmMmQzYWJkOTRjYTQ2ZDk5MmM3ODZkYjcgbGVnYWN5LXRydW5rCisxMTE0OCA2MjQ1YjgxOWJkZDg1YzIxNWJjNzQ2OGViNmU1NzFkYjExNmJmODRhIGxlZ2FjeS10cnVuaworMTExNDkgM2FkMWJmZmJkYWViNDIwNTkxNjAwNDRiOWI3MGNmMDNhODI1MGQ2NiBsZWdhY3ktdHJ1bmsKKzExMTUwIDgyODExYzZjYjU4ZjViYjI5OGJlZTdmN2ZiNTFjMTI2M2I5MWE2OTcgbGVnYWN5LXRydW5rCisxMTE1MSAyYjJmZjVhODEzOTFhMjY0MDIxOGM4Y2QzMmUzMGMxN2RmNTY0NTA0IGxlZ2FjeS10cnVuaworMTExNTIgMDdlNDczNzBmY2I4YjliZDkyMTQyZDdiZTM1ZWEwYjM0NWEzM2ZjMyBsZWdhY3ktdHJ1bmsKKzExMTUzIDc0NDRmZTM4ZWFkYmQ0ZDk2NWMwMjg4YzczMDQyZWI4NTkzMjRhZGMgbGVnYWN5LXRydW5rCisxMTE1NCBiMWYxYmE0MjliNzNmMDJjMjIwODk1MTQwMTYwMjJlYjViMWI3MjI5IGxlZ2FjeS10cnVuaworMTExNTUgNWE4ZDljZTkwNjMyYjhkNGIwNzZmMmZiZjU1ZjU0MzQ3OTkyMmEwNyBsZWdhY3ktdHJ1bmsKKzExMTU2IGQ2ZjRlNDFiMmM2YWU4NzdiMDk3MDc1Y2NmZGJlZmUxMjZlYjYxY2IgbGVnYWN5LXRydW5rCisxMTE1NyA0NjllOGY0NTMzNjVhMzlmY2VhMjNmZWI3ZThjMDY2NTI4NTllNDg0IGxlZ2FjeS10cnVuaworMTExNTggN2Q5Njg0MjM4M2JiYTlkMTFhNTA5NjczZGI4YzA1NTBhNjJkZjA4MCBsZWdhY3ktdHJ1bmsKKzExMTU5IDYxNzA2ODNlOThlM2IyN2ZjOTY4ZjM5YmM2NGNmZGM5OTk4NGEzNDcgbGVnYWN5LXRydW5rCisxMTE2MCA0OGJjNDcwMzU4ODE1YTE4ZmZiZDk5NjBiNDk3NDQ5MDUxN2IzZjA0IGxlZ2FjeS10cnVuaworMTExNjEgYmE3NDQ0NjJlOTU4MzFkMjgxOWFhMGYzZDc4MmUxMDRmODYwYmUxNCBsZWdhY3ktdHJ1bmsKKzExMTYyIDQ2OGRiMmI3MTBmZDgyMzIwMDY3NzVlYjhhZDhiZjFiOWYwNzcxMDMgbGVnYWN5LXRydW5rCisxMTE2MyBjZTFlNTkxYjMxMjYzODQwYmE1YjVjYmM5YThkMmM3NWYzODE1NzM3IGxlZ2FjeS10cnVuaworMTExNjQgNmVkNzE1OGZmMjdjY2U0Nzc4MWYxMzllYjRkMGM4NGU2OGJhNjBjZiBsZWdhY3ktdHJ1bmsKKzExMTY1IGEwMzI0YTMwNjhlOTUzOWI1YjE0Njk5N2Y5MDA0OGVkODgyMWYxNGQgbGVnYWN5LXRydW5rCisxMTE2NiAxMDA0NDVhZTQ1ZTM2YmQ5MWFlMWFhOTFjZDg1ZWM3YTFkYzQzMDI0IGxlZ2FjeS10cnVuaworMTExNjcgNzgxNzMxOGVjZDNhMmY2OTk3MGFlMGViMDE4MWZiNmY3ZGM1MmFkZCBsZWdhY3ktdHJ1bmsKKzExMTY4IDU1MmU0MmU0MTcwZWU3MTg0ZmFlM2ZjY2YzYWIyZDU4OTFjOWMzNDMgbGVnYWN5LXRydW5rCisxMTE2OSBmZDQ5ZWQ2NWNkMjBiMjAyZWFhNzZhYzhlZmRjNjczNzU2NjQyYzYwIGxlZ2FjeS10cnVuaworMTExNzAgYTM3MjZmZTM0ZDU4ZWMwNDc2NjZlMjlhZWMxMWQxZTAyNDJmZDE4NSBsZWdhY3ktdHJ1bmsKKzExMTcxIGRlNTQwMTY2ZDczMjhjZjU0MzEwYTgyNWNhNzIzOWNjODU5MzJhYzUgbGVnYWN5LXRydW5rCisxMTE3MiBhMDQ3N2JjODIwYjI3MmRmMTcyMTJlM2NlODI2MmVhMzQwOTIwZjI5IGxlZ2FjeS10cnVuaworMTExNzMgMzVlMWExNDBmZTRlMjAwNmM2MDM1MzBmZTc2YWJhOGM1NDhkYjkxNyBsZWdhY3ktdHJ1bmsKKzExMTc0IGM5NTE0ZWIxZmMwNjI3YWMyOTYzY2VmNzE3ZjIwYmI2ZDRhOWJjZTMgbGVnYWN5LXRydW5rCisxMTE3NSA4YWE5ZDEyNmU0NzMzMDcwMDY5NmQ0NzhlMzM0YmUwMDM0Y2Q0MDIzIGxlZ2FjeS10cnVuaworMTExNzYgZjQxNTgwYjRlZWExNTQyN2ZlMjZiNzgxMjlkOTVmODM3Mzc2ZmE2ZiBsZWdhY3ktdHJ1bmsKKzExMTc3IDZkMjE2OGE5NjQxZmU3NTM3N2E1MjU2NTI0MDcyMThlMGEwZTQzMWEgbGVnYWN5LXRydW5rCisxMTE3OCBmN2I0ZGIwYzViMDhkNTdlNGQzNzg2NjliMTM5Y2IxODdhODBmZTBlIGxlZ2FjeS10cnVuaworMTExNzkgZGM4NTgwNGMyYzY0NTY4OWViYjA1NmYwYWRlYTM5NWVmZDQzODgwOSBsZWdhY3ktdHJ1bmsKKzExMTgwIDdkMTQ3N2NkYTgzZDM3ZWFmNzYwZGM1N2IxNWFjNjI0ZWEwN2JjYmMgbGVnYWN5LXRydW5rCisxMTE4MSBmMTBiNDY5Yzk4MTA1NGVhNWMzMTc0NGNjNWM4YjUyYTY5ZDFkY2VhIGxlZ2FjeS10cnVuaworMTExODIgOTVmMzI0MjcyZjU0OTZjMTM5ZTc4MWVjODAzNzdkOTgwNWMxNTRmMiBsZWdhY3ktdHJ1bmsKKzExMTgzIDc4MjE0ZThjOWViNDkwOGE1YTA3ZTJmNTFjM2UwOWVjMThiYTVhZDAgbGVnYWN5LXRydW5rCisxMTE4NCAyZjI5MDU2MDI2M2ZiMGRjZmM2NzRjN2VjNzVkMTYxN2JiZDg0ZGNmIGxlZ2FjeS10cnVuaworMTExODUgNTA3NTc0NjVmYTcwZGVjZGVhM2E3NGM0MTI4ZTc2ZDRiMWVkYmJhNSBsZWdhY3ktdHJ1bmsKKzExMTg2IDgzYzhhZGFhMDg0ZjY4MThmYmJhM2M2NDI3MDMxY2Y5ZDJjZmNmMDQgbGVnYWN5LXRydW5rCisxMTE4NyA4NTcxYzEyNDZmMDkzZDM5NTk2ZTU3MTFlNTM0YjI1MTczZDcyYmRmIGxlZ2FjeS10cnVuaworMTExODggY2ExYzY2OWJiMDQxNjljYTZmNDgzMGQxN2E5YjlhNDg1NmQ0M2E5OCBsZWdhY3ktdHJ1bmsKKzExMTg5IDRlZGYzNDk1YzY5Mjc2YjE4YTE5MTA1NWZkZGRlN2Q1MWI5MWI4NTcgbGVnYWN5LXRydW5rCisxMTE5MCBhY2Y0OWM5ZGVmN2RkYjU0MjUxZGNiMGI0NGNhOGY0ODJkOGFiOTIzIGxlZ2FjeS10cnVuaworMTExOTEgMGUyNTYzYzBlYjBkNGE2YjhmZjY3MWFmNGQ4NjY3ZjBiMDQ3ZWYyMyBsZWdhY3ktdHJ1bmsKKzExMTkyIDIwODQyN2FiNzU2NDViMTM1NWFmYjVkYjg1MWVlYTBiNGUwOTdjYzUgbGVnYWN5LXRydW5rCisxMTE5MyBhZTZiNDFkYzY1MjAxNmFiYTk4NGI5YzhhYTEzYTg0MDhkYjcyMDc0IGxlZ2FjeS10cnVuaworMTExOTQgNzk4M2Q4NmI0OGFmNzMyNjE1ZWZiOTJkZDUwMDAzMDNmYzk1NWE1MiBsZWdhY3ktdHJ1bmsKKzExMTk1IGVkOGY0ZTJlYjExYTFhYTc4YThiMmM5NGRmOWQ3MTVlMTAzOTc2N2QgbGVnYWN5LXRydW5rCisxMTE5NiA5NzMxZDhhNmI0ZjNkZjQ5ZmY0N2RjM2U2ZDdiMjliYzhkM2M2NTc1IGxlZ2FjeS10cnVuaworMTExOTcgYzc1MGM3YTIxZTAzNzg4NGNlZjU1NDMwMzA3MjljNjVmNjA2OGQ2NyBsZWdhY3ktdHJ1bmsKKzExMTk4IDc2MGRjZjE5NzA0ODEyNjhiMzMxY2E2NDcwYThlYTNhY2MxMWViNmUgbGVnYWN5LXRydW5rCisxMTE5OSA5NDZkNjM5NzdmYTQxMWQ1ZjA4MDM5MjFkYzI3Zjg0YjI2MzU0MTQ3IGxlZ2FjeS10cnVuaworMTEyMDAgMDI4ZWFmYmNlOGFjNzIxZDRhMzIwNjk5NTNhYzJlM2Q4NzUyZjRjMSBsZWdhY3ktdHJ1bmsKKzExMjAxIDgxNzVjNmUxZTYxMzFhOTU0NWQ1YjQxMGUzYTFmYmVhMDZmNDMyNGUgbGVnYWN5LXRydW5rCisxMTIwMiBlMGQwNDc0ODQ5ODAwOTc5ZjA4YjY4NTk2ODczNjM3ZjMxMTVjY2QzIGxlZ2FjeS10cnVuaworMTEyMDMgZDdjYTQyOWVmMWFiNWZiYTkyMzk0ZTE1OGU2ODEzMzJkMzViZWIzNyBsZWdhY3ktdHJ1bmsKKzExMjA0IDhhMjk0NzZhNTljNTQzODgzYzMxNjY3MWIyMDRkZDlmMDFjYzFiM2QgbGVnYWN5LXRydW5rCisxMTIwNSA2Nzk0Mjk0ZWIwMTQ5ZTk2ZTY3ZDE0NjBlZWM0MzMxOGU5MjYxM2YzIGxlZ2FjeS10cnVuaworMTEyMDYgNWQ2YmY2MGNiNzM2ZDFlMzVjNDYyNjU0YTU0M2ViYTVlYmFhNGZkMiBsZWdhY3ktdHJ1bmsKKzExMjA3IGY3OTc2ZTAyYjg3MzQzMjczZTQyYjQwMmQzY2I2ODZiYWYzNzZlOTIgbGVnYWN5LXRydW5rCisxMTIwOCA3NGVhNGRmZGE4MmQyNDFmNmQwOThmZjY1MWExNDNjZGI1ODJiNDBhIGxlZ2FjeS10cnVuaworMTEyMDkgNTNiNTJhMzNkNGJhNjQwZGM1OTcxOTk2MGVhYjcyNmJlZDI0YjY2YSBsZWdhY3ktdHJ1bmsKKzExMjEwIGQ1ZjQ4NTFlNzYxMTNiZTI1OWFhNGYyNmY2NDY2NTlkMDgzZWY0NjQgbGVnYWN5LXRydW5rCisxMTIxMSAxOTA3ZDEwYTIzMjhlZTA5ZjVmOWFhOGQzMTM5YWZjZDQ3NzUzYzQzIGxlZ2FjeS10cnVuaworMTEyMTIgOGEzMDZkZmQ5ZjMzM2UwNTI5ODVhYWFkMDM0ZGFlNjQ2ODc3ZTdmZCBsZWdhY3ktdHJ1bmsKKzExMjEzIDc1MTM3Y2ZlZDk1NGY3OTY0NGJlOWJlOTA0MjU2NGY0YTZkNTI5MzIgbGVnYWN5LXRydW5rCisxMTIxNCBhODA0MGI5NDE4NjQ5ZDlmM2VjYjFhOTMzYTFiYjFiMDdjMWQwZDRkIGxlZ2FjeS10cnVuaworMTEyMTUgYWVhZmFmMzgyYTRiZWM0ZGQ3MWQwMzdjZjU4YWQwNTc2MjZhODAxYiBsZWdhY3ktdHJ1bmsKKzExMjE2IGRkYWFjMDZlYzMyNjZmNTM5OGEzZWI3YWY3YjI3NDkzMzQxYzVkYmMgbGVnYWN5LXRydW5rCisxMTIxNyA4MDc3NmVhYmQwMDVmYmI4MTVkNjQyM2NmMTU4MjhhYmMwODkyZWMzIGxlZ2FjeS10cnVuaworMTEyMTggNmMyMGNhNzIzMTgwNDc4N2FmZTY4NjQ4NzdhMTEwZjI2Mjc2YWQ5OCBsZWdhY3ktdHJ1bmsKKzExMjE5IDhkMDU0OTU0NzA4YTJmMDUwYjk0YjJmMWU4ZTk1ZjFkODc0OTI2ZTYgbGVnYWN5LXRydW5rCisxMTIyMCA3ODFhZDMyZTdiMWZmM2M1ZDZmMzk0ZWEzNmVjZjFhMjk3NmUyYWE0IGxlZ2FjeS10cnVuaworMTEyMjEgMWYwMjBmNzk5NjdkOTk1OGQwOGMxZjZmNjgyMTUzZmE5MWRlMDY1OSBsZWdhY3ktdHJ1bmsKKzExMjIyIDc0ZTAzMTNjZDgxMGUzNDVmMDVlMjNmYmVlMjAwODM3ZWZkMTQwYjYgbGVnYWN5LXRydW5rCisxMTIyMyA0MzQ2NGIxYzg4MGVhOTZmMmU3ODA4YmVlYWIwNTI0ODFkYjZkNTVjIGxlZ2FjeS10cnVuaworMTEyMjQgNzNhZmU3N2EzOTQ3YmYyZWEyMjAyMmQ3ZmMwZjQ5MWM3NzIyMWZhZCBsZWdhY3ktdHJ1bmsKKzExMjI1IDJhMzBhODE4OTRhZTBjYzQ5YWIzMmMzN2U1MDJmNzc4NTgyZjY3YjUgbGVnYWN5LXRydW5rCisxMTIyNiAxZDU4MWE2ZGZlZWUxMTY5MTU4NWUzMjhlZGEwYmNhNDA2MmIyY2I2IGxlZ2FjeS10cnVuaworMTEyMjcgZTFiY2YwYmQzNGQ1OTMzOThmNmY1MmFlNjY4M2Q0YzM1YjcyNWJkYSBsZWdhY3ktdHJ1bmsKKzExMjI4IGNhMWI5MDYxNDllNjIwOWM4NTM1OTkzZDQ3NmFmZTQ5ZTZhZTc1MTcgbGVnYWN5LXRydW5rCisxMTIyOSBjZDk5NTIwMzIwYTMxZmQwYmE0NWJiOWQ3Yzc1ZDQyYzYxODEzYmMzIGxlZ2FjeS10cnVuaworMTEyMzAgZWFiZTU3NGRjOTIxYTkxMGI5MDdmZmM4ZTA1NDI5ZTFjZWE5MTdkMiBsZWdhY3ktdHJ1bmsKKzExMjMxIGQ4NGMxMTNlZmVkYmY1YTQ0NTQ4ZTI5MmU5MGNiZWRhNDY4ZWMzNTQgbGVnYWN5LXRydW5rCisxMTIzMiA1ZWM4OTc5YmYxNzY4NTQ3ZTM4YzY2NWRkNDBjNTcwYjJkM2UwNWMyIGxlZ2FjeS10cnVuaworMTEyMzMgOTk3OTMzMDJkMTBkM2UxYWUyZjkxMTE0ZDhhZmMwM2UwNjY4MmVjMyBsZWdhY3ktdHJ1bmsKKzExMjM0IDRlMDVlMzg0NDVjZWIzN2I4NDZkZjlkOTNlODg4Mzc5ZDVlMDY2ZTcgbGVnYWN5LXRydW5rCisxMTIzNSA5ZTA4OTA3MGQ0YzVkMGU4MjRiYWQ4NWY1N2RhNzkyMTc4NTI2NDdkIGxlZ2FjeS10cnVuaworMTEyMzYgZTg4ZDRlNmU0NjIyYjQzODFmNzJjMGY3ZmY0ZWQzNDM4ZDJhY2E4OSBsZWdhY3ktdHJ1bmsKKzExMjM3IDcwMWE4NWIwNDRiMzQ1ZjUwZWZjNjY3ODA2ZDM4YWNjYjY3NmFiNDQgbGVnYWN5LXRydW5rCisxMTIzOCBmYmE4NDU1ZGNiNTRjNDBlMGNhMjIyZDU2MzQ4M2EzNDI3ZjU4NDQ1IGxlZ2FjeS10cnVuaworMTEyMzkgYjhhNzE5YzhhMGE2MDE3YTBlNDBjM2Y3ZmQzN2ZjODgxMDJlZjViZCBsZWdhY3ktdHJ1bmsKKzExMjQwIDY4ZmU2Mzc1MGY4NGY1MGZlZWQ5YzUzYjEzZTU4ZDQ4YjQyYzg4ZTUgbGVnYWN5LXRydW5rCisxMTI0MSA0YWMyZDQzNWNlM2JiNWJmNWJlYzliZDM0OWIxYzc2YTI1YTRhYjc0IGxlZ2FjeS10cnVuaworMTEyNDIgMmIyZWY4MmVkYjVlYjczNGUxMTY0NjIxMTQ2OTYzNjhlYTU4YjgwMiBsZWdhY3ktdHJ1bmsKKzExMjQzIDg2MWNkMjI3ODM0OGE4MzI5YTQ4YTYwNGYwN2VlNWZjMzgwMzQwYmEgbGVnYWN5LXRydW5rCisxMTI0NCA0MTkyYTczY2E0MzBlYmRmMmUyYTA0ZTgzNTI4MTkzMzMxZjE0ZGU4IGxlZ2FjeS10cnVuaworMTEyNDUgNTVmNzkwYTVmNjRiZmI0NTYyYjNiODcxNzJjMmNmY2U5Njg4NzNhOSBsZWdhY3ktdHJ1bmsKKzExMjQ2IDA3NjYzZGQwZmU4NjU0ODZkYmFjMTQ5NzNmOGZjYWYyYWQ5MDI4NDUgbGVnYWN5LXRydW5rCisxMTI0NyA2MmZhYmUyNDc3YzRkZjdiNDRjN2QxZmQwYTBhMTBkZmY2YzE5Y2I5IGxlZ2FjeS10cnVuaworMTEyNDggMDU4NDE3MDcxYjBlNTI2YmMyM2MyMmRkZmJiNDkyYTJlMjc3ZjllZCBsZWdhY3ktdHJ1bmsKKzExMjQ5IDg0MzRlOWQwMGI1YTVlNDRlNzU2NzMwZjMzZGMyNzgxYThiYmQyMzcgbGVnYWN5LXRydW5rCisxMTI1MCBmYzJhNzAwYjEwMDdhNTJmNTIxN2NkOWU5YThkMzFlZTNhZWVhOWEyIGxlZ2FjeS10cnVuaworMTEyNTEgMDZmODBiY2M5NTY5MTFmMzc5NjE5NzI3OTE0ODYxN2RkMTAxYzI1NCBsZWdhY3ktdHJ1bmsKKzExMjUyIDI1NmE4MGYzOWE4OGZkNzk2MjJiZjI3ZTNhNjRlNWM4YTNiMDllODMgbGVnYWN5LXRydW5rCisxMTI1MyAyZjQ2Zjg3YWE4MGFhZjVjZDNjYmYyMDk1ZDYzNTg0N2ZmN2JiNjIxIGxlZ2FjeS10cnVuaworMTEyNTQgNzBiNjMzZmYyZmI3NWM1NjE0Yjk0MzUxZjEzYjFlOGU0NDM0ZmFkNiBsZWdhY3ktdHJ1bmsKKzExMjU1IDQ1YmU0MGVmY2I5NTA0OTJlZTNjNzMzNjNmYzkzZWI1ODYyZTI2NGQgbGVnYWN5LXRydW5rCisxMTI1NiBlZGJmNjMxZmI3ZTllNDEyNjk5YTQyYjg5NmJmNWIzOGQ5MWFlNDIyIGxlZ2FjeS10cnVuaworMTEyNTcgZDM5Njc4ZDIyYjRhMzNkMDNhNTlmMDdhZmFkOWM2YzI2YjBmNzgxMiBsZWdhY3ktdHJ1bmsKKzExMjU4IDA0ODQxZWVkOThlZjkxNjRiMTVkNmM5ZmFhNTQ3YWY4NzVhODdhNTUgbGVnYWN5LXRydW5rCisxMTI1OSAwMDUyNDU1NWVmMTc0MjgzNzYzYjE3MTA5YTY3ODNjZDVmNWQ0MDkzIGxlZ2FjeS10cnVuaworMTEyNjAgM2ExZGQwMTM3NWUwOTQxNmNhZTVkNWVkZmU4YzdlZGZlMTk5NTI0NiBsZWdhY3ktdHJ1bmsKKzExMjYxIDkxMzgyNzJjMWZlNmVjM2IxZDcxZjdkMDBiMmQ4OTM1ODJmODBjZGMgbGVnYWN5LXRydW5rCisxMTI2MiA2ZDYxZDQ4OWQ3Mjg4OTE0M2M5ODAxMjU5YjBiOWI0MTNhNjMzNzMyIGxlZ2FjeS10cnVuaworMTEyNjMgOWUzMTQxNTQzNmY2MmNkOTQ3N2NiMWY5ZDkxNTk0ZDlkYzQ0MWFhNCBsZWdhY3ktdHJ1bmsKKzExMjY0IGFlM2UyZWFlZjliOTUyNWY2NWJhNjMzMjA2NTg0NTQwYTgyY2UyNTMgbGVnYWN5LXRydW5rCisxMTI2NSA4ZTk0Y2U5Mzk0YmYyNDZlMmNiODgzZWUyNjljNGU5YzU3MmM2Y2M5IGxlZ2FjeS10cnVuaworMTEyNjYgYzk5MDkwNDYyNDc2NmVlODdjMWM1NjNhMTBlNGY2ZjViMjE0YjIwNCBsZWdhY3ktdHJ1bmsKKzExMjY3IGM4NWIzOGQ1OGFjZDhjZjA4YTVlZDM4M2QzNTQ0YTRlNTFlNDc1N2IgbGVnYWN5LXRydW5rCisxMTI2OCA3ZDIzMmMwZTRkZDZjOTBiZjMzOWJlYzdlNjczZDRjNzg3OTU3MTdhIGxlZ2FjeS10cnVuaworMTEyNjkgZDJiZmM4NjU0MjgwYTc5YzE3ZGEyNmM1YWNjMDA0YzcyMDQ4ZDJlYyBsZWdhY3ktdHJ1bmsKKzExMjcwIGQ2NDJlNjc0OGQxMmMzYWJmMzc3ZDg1NTBhZjljNDJlODgyNzBjMGIgbGVnYWN5LXRydW5rCisxMTI3MSBkMzJkYmMyMDI2MTNlMjliYWIzOGNjZWY2ZGY5OTdlNTFhZjg4OTA3IGxlZ2FjeS10cnVuaworMTEyNzIgMTA3NmEwMjgzNjVhMmVkNWJkZmM1MTljMmY5NTdmZWIxYjIxZmQ1ZiBsZWdhY3ktdHJ1bmsKKzExMjczIDMzZDU5MzM2ZTdlNmZiYzU2Nzc0ZGJkMzQ5ZDIwNWRmZmQ1YTJkOTcgbGVnYWN5LXRydW5rCisxMTI3NCAwZjVlMGI0MDViYzJmMmFiNzQ1ZjgzNjQwY2U2NGQ5MjdlNTM4YzA5IGxlZ2FjeS10cnVuaworMTEyNzUgMWY4MDRmYWNmNjM1NGZhMmYyZWI4N2ExNThmZTgxOWFkNWM3YWQxZiBsZWdhY3ktdHJ1bmsKKzExMjc2IDBlMzBiMzViOGEzZmZlMzU2MGEwNWRlNTIxMTg2MzM3NzNmMGRhMWYgbGVnYWN5LXRydW5rCisxMTI3NyBiOGQyYmE1OTcxMWMyMjcwMDQzNjhjOWY5MWJmOWU0NzMwMDhmODgwIGxlZ2FjeS10cnVuaworMTEyNzggNmZiYjU2MDdjZGQ2MDRjNDE0MjI3YzIzZDI2MGYwNjQxNTllMzFlNiBsZWdhY3ktdHJ1bmsKKzExMjc5IGQ1MWQxYTYxYjFjZWY0Nzc4M2VhODdkNjUxNWU1NTczNzY4MDY3ODggbGVnYWN5LXRydW5rCisxMTI4MCBjYTFlNWJjNTIwOWQ4NDcxMjczZTkzZjUyZTQ0OGEzZGJkZTRjZWQ3IGxlZ2FjeS10cnVuaworMTEyODEgNDQ3MjZiMDU4NzAwYWQ5M2ZmMjA4M2U5MWQ3MjFjYzUzZWMxMTJkMSBsZWdhY3ktdHJ1bmsKKzExMjgyIGU4YjU2YjM4NzA0NWFlNzRkZDljM2Y5OGQ4ZDRlOTFjY2FhNWZiNmUgbGVnYWN5LXRydW5rCisxMTI4MyA2MTQ2NDAzN2RhNTNjMmQwNTUyMWY5N2ZhZmMyY2VlM2Y4NDNiY2I4IGxlZ2FjeS10cnVuaworMTEyODQgODFjYjk0MDFhMjFiN2M4NjI5ZTgyNDliMmUzMDk4MzNkZTA2ZGEwNyBsZWdhY3ktdHJ1bmsKKzExMjg1IDRkMThlYmQ0Y2Y0MjNlZjg3YmJiYTc5NjRkYzMyYTRlZDFlOGZlN2EgbGVnYWN5LXRydW5rCisxMTI4NiA1ZDVhNWJjOGRlNWNiNjI4OTQ1ZGE5OWM2ZjEyODZiNDM1MmZjNDY1IGxlZ2FjeS10cnVuaworMTEyODcgYzllNDU3MDVlYzllMTI5NDAwM2JiMTkyZWE3YjY3ZTMzMGI0Mzk4MCBsZWdhY3ktdHJ1bmsKKzExMjg4IDhlOWQyMTQ2YWU5MzAyMTVjMTE2NjEzOTVmMzQ2Njc2N2U5OTgxOWIgbGVnYWN5LXRydW5rCisxMTI4OSA2NDVhMzI4ZTdmZDQ5NDljZjZlMjM0Mzg3NzQzYjI0M2ZlNGEyMGRmIGxlZ2FjeS10cnVuaworMTEyOTAgNzg3ODU5ODVhMmFiNTgxYjRlNTU1ZjhjNWRlZWUzNzFlZDUxZDNiZCBsZWdhY3ktdHJ1bmsKKzExMjkxIGM1ZDcyYmNkYTkzMmE4ZDM2Y2EzNjAwNWI0NWFiYWI4ZmI3OWQ3OTEgbGVnYWN5LXRydW5rCisxMTI5MiA0YWE3NjQ4MGQ4MTI1ODkyYzUxNWFlMWJjMzE0ZjkwZDNlMDQ0ZjdhIGxlZ2FjeS10cnVuaworMTEyOTMgZTU4YTYxNGZiOGU0MGVhYTY3MjEyMTI5NjMyMWI5OWQwOGJhNmUxYiBsZWdhY3ktdHJ1bmsKKzExMjk0IDE0MDY5Mzc0NGEzYzg1M2Y3YjQ0Njk0ZjZhMzc1OGI0MWFjYzZmZjQgbGVnYWN5LXRydW5rCisxMTI5NSBkZDY0OTgzN2ViZDQ4OTg0MjU1NzFlYWIyNDYxZDYxZmQzMWY4Y2FjIGxlZ2FjeS10cnVuaworMTEyOTYgNjczOGU1MzgzOTc3NGZhZTI4NmQ3ZTkxMTBiODYzM2YyZGY1YWQ2NCBsZWdhY3ktdHJ1bmsKKzExMjk3IDg0NjBiZGMzZGJmN2I3ZTZkMzNkNzM5MDQzZGE4Y2ExZjhmZDEwNzUgbGVnYWN5LXRydW5rCisxMTI5OCBkOGI0NjE5ODkyMzhkODJmODNkYWViZmY1OTkzMzVmZjg3MGRmZThkIGxlZ2FjeS10cnVuaworMTEyOTkgMGVkZDM4ZGIyMjg4NDU5NWFhY2EzMTE0Yzc0NTE5N2MyMWE3ZWFkZCBsZWdhY3ktdHJ1bmsKKzExMzAwIDcxZmNjNGNhMGU4YWVkYzkxNjE4YjJiMDEzMjAzYjVlMDUyZWJhYTkgbGVnYWN5LXRydW5rCisxMTMwMSBjMjgwMTEwMDBlZDM2OTNkNjNjMjE0ZDMzMGE0ZjdiMTI1NDIyNWY2IGxlZ2FjeS10cnVuaworMTEzMDIgOWIwZGRhOWE1NThiZDVlZWM5NmU5MzQ2MzZlYjVlMzQ1MTkwMTQ3NCBsZWdhY3ktdHJ1bmsKKzExMzA0IGExYzE2YTNmYTdkYjQwYTM3NTU4N2EyMjM1N2QwZDAxZGViY2JkODYgbGVnYWN5LXRydW5rCisxMTMwNSBiZDQ3ZWUwNjhiODNmYjlmMmE4YjZhOTg5YWI0MGYzZjg4YzRmOTY4IGxlZ2FjeS10cnVuaworMTEzMDYgZjJhNGEyYjYwODYwN2IwYWZjODdjNmJkYmViMGRiMTYwMWJhOWNiZSBsZWdhY3ktdHJ1bmsKKzExMzA3IGIwNDA5OGEyNTZkMDA0NmQ5Y2VhNGNjNDZjODhhOWRkYTA5NjIxYjMgbGVnYWN5LXRydW5rCisxMTMwOCAxMjk4NzBlMjE3OWE5MWQyNzhhZGVmN2FjN2E1OTY5OTc4MGJlZjBhIGxlZ2FjeS10cnVuaworMTEzMDkgNGJmYTUzYmQ5N2JjMDY3NjJlN2MzYjEzMTA4M2M0ZmJhYTJjM2M1MSBsZWdhY3ktdHJ1bmsKKzExMzEwIGRmMTYwMmI2YTJhODYyMTY2MTg2ZGFiNDA3NjBhZDU4NjRkNTczOGMgbGVnYWN5LXRydW5rCisxMTMxMSA4NTMyMTQxY2ZmNGMxZjVkZjZkZDVlNjYzZmVlYjVmMjE1MDJlNmFlIGxlZ2FjeS10cnVuaworMTEzMTIgM2NjMmZhZDRlMDIwZTE3ZDgzZWEwYjBhNzVjMzY2ZmJhMjg0YjAxZSBsZWdhY3ktdHJ1bmsKKzExMzEzIGVlYzRkY2ViNDQzNmFhZTYwNTgwZTdhNjlhYjQwMDA2NWQ4MDQ3ZmIgbGVnYWN5LXRydW5rCisxMTMxNCAwMGE2YmI2NWZmMjkzYzBlMGE4ZDYyM2M1ZTI1NDNjOWI1ZDE5ZDJiIGxlZ2FjeS10cnVuaworMTEzMTUgNzQxZDUwNjE4ZWMyY2FhN2M2NTc4ZWYwOWY1OTk4MDVmNzhiOTAwOCBsZWdhY3ktdHJ1bmsKKzExMzE2IDA0NWU5MDBhNDE5OGUwMmFjYTJkMTgxODg5N2MxYmJhZjVmYzg4MDkgbGVnYWN5LXRydW5rCisxMTMxNyAzMzZjYjUwOTg3OWE0OWMyN2MyNTUyZDc3NjE2YjEwYzUzMzRkMTgxIGxlZ2FjeS10cnVuaworMTEzMTggYjA0Zjk1ZmVkZDUwY2ExYWQ1YjM5MmRhZWJiZjQ3YzFmODFkNzZkNCBsZWdhY3ktdHJ1bmsKKzExMzE5IGYxY2E0MTk5NWU2MmU1MTcyOWZhNmI3Yzc4N2IxNDkyN2ZjMmRlZDAgbGVnYWN5LXRydW5rCisxMTMyMCA5MjlkYjgzODViYTRhNTNlMGJhM2IxZWQ2ODRmNDM2ZjFkZWI2MDM3IGxlZ2FjeS10cnVuaworMTEzMjEgZTVhODMxMTY4NGU0YmRhMzcyYmNmZjc3MDY1MDY0ZjhkZTQ5NThiNyBsZWdhY3ktdHJ1bmsKKzExMzIyIGMyZjllNTA1Zjc1YTFkYTkxY2EyMTdiMDdjMDNiMDM5NzQ1OWY5MTUgbGVnYWN5LXRydW5rCisxMTMyMyA0NGJhZWY4YWI1Yzg5ZDM0YjE0ZjkwODNlY2RlMDE5NzJiZjBmZDI4IGxlZ2FjeS10cnVuaworMTEzMjQgYmQ2ZDk3ZDZiMmFlMGI3NzBiYzgyOTUyOWY0MzUwNGNmN2FlNWQwMiBsZWdhY3ktdHJ1bmsKKzExMzI1IDhhMzcwNTI2ZGUwNmFkM2RiMGQxYzMxNDA1OGYwODZjNDY0OGFkM2IgbGVnYWN5LXRydW5rCisxMTMyNiAxYzdkODYwODcxZDlkMTBlZWRlYjlhY2NiMzYxNjNmOTYxMzk1YjFkIGxlZ2FjeS10cnVuaworMTEzMjcgYjY1ZWE4MTI3NzUyNWE5ZTRkZDI3NjcwNDQ1NDNmOWQzMTJmN2Q1NiBsZWdhY3ktdHJ1bmsKKzExMzI4IGI5MzNmNTg0YTI2ZDAzMTI2NDFlNmMzOGIwZTg1MTg1NzM5ZGZlZDggbGVnYWN5LXRydW5rCisxMTMyOSA3NDUzMzQ1NDU4OTgxYmU4ODBkOTYwNDM5YjEzMjA2NTYwMzYzNDg5IGxlZ2FjeS10cnVuaworMTEzMzAgMDg2NzAyMjUwMTUzNGExZjI0ZDAxM2E4ZDhlMmRmNTliNmZmYjcxMSBsZWdhY3ktdHJ1bmsKKzExMzMxIDM3YzY5MThlZmQzYmNhMTJmZDM1NzI2M2E2NTE1MThiYTkyYTU4NzYgbGVnYWN5LXRydW5rCisxMTMzMiA2MWVmODgxODY5NWJkNDM2ZGYwYzhkYWY4MjQ4MGE0NTdkMzA3MGI5IGxlZ2FjeS10cnVuaworMTEzMzMgYzM1MTUyM2ViYzA1ZWViZGM5YzQ0OTc0MTA4NmFmMGY1NmIzYzVhOSBsZWdhY3ktdHJ1bmsKKzExMzM0IDUzNGExYTQzN2FmM2E5YjhlYWY3MzUzMjM4NjFlMjcyODkwZWQwNmYgbGVnYWN5LXRydW5rCisxMTMzNSBjZWYyMGVjNmYyNDljYzQ2MmQ5YzRmMmZmNzlkYjRkZGRlZTE4ZDgxIGxlZ2FjeS10cnVuaworMTEzMzYgYmJlOWQ3MmJjY2RhMjdhOWRhYTMzZTA1ODgyOTAzZmQ5ZjNiZWJlZSBsZWdhY3ktdHJ1bmsKKzExMzM3IDVmOWRmZjY4MTc5N2ZmOTQwNzk0ODQwM2IyOGMwNjc0ODA1MmI5ZDQgbGVnYWN5LXRydW5rCisxMTMzOCAzNTRjZDI0ZTVkZmU0MmEwZjgyZjAzMDFmNzlhYTAwODc2OTA2MDQwIGxlZ2FjeS10cnVuaworMTEzMzkgZDI4MDQ2MDhiZWNkMDhhMWE0YjVlMjllZGEwYjM5MDUwZDRmZWYyYSBsZWdhY3ktdHJ1bmsKKzExMzQwIGY3ZDRhNTg1ZGEwMTg2YzBiNWI4OGI4MDE0ZTdjYTk0ZjMwZjc2MzEgbGVnYWN5LXRydW5rCisxMTM0MSA1Njc2MDcwNzZkOGY0Yzc2YTI5Mjc2N2JiNDQzOGMzYzJhOTQ4MDZhIGxlZ2FjeS10cnVuaworMTEzNDIgODY1M2UxZjIxOWYxYmQyMjYxZTEzN2M5NmY3MGZmZTEzYmE1MGEwMiBsZWdhY3ktdHJ1bmsKKzExMzQzIGQ4MDhlYmE0YjNjNjUzMDQ4ODBmMGUyZTZkNWIxMjM2NjJiZGJjYTggbGVnYWN5LXRydW5rCisxMTM0NCBlMTQ0NThmMTM2Y2NhZTNkN2E2YjQ5YzE4MTYzODFhZTYyZWMxMTk4IGxlZ2FjeS10cnVuaworMTEzNDUgZTAyNGM2OTYyNWUxMmY4ZWQ5NjY2NTZhNWZmNTNkMDVmYzFmMzUxYyBsZWdhY3ktdHJ1bmsKKzExMzQ2IDgwMTFmMTQ2NjlhODE3ZDRiZTljZjE1MmQzNTMwZDU0NGMzMmFiZDcgbGVnYWN5LXRydW5rCisxMTM0NyA1Y2RlY2FhYTliZWIwZDM3ZGQxZTQ0OWE4MTliZGVhNDEyNGUxZWRlIGxlZ2FjeS10cnVuaworMTEzNDggZjQ1NmY1YWE1NzE4NWEyZDMxYzkyMGE5YzM2MmNlMGJjZTMwNDc2YiBsZWdhY3ktdHJ1bmsKKzExMzQ5IGExZWMzZWMyNjAyZWNhNTgyNmViODBkZjYyMTQ5MDg3NTg5M2I2MDUgbGVnYWN5LXRydW5rCisxMTM1MCBiYjc4Y2MyNzQ2OWFiNGJlODczOGEwZWMwNmZhMTE4ODI2MzJhOTY3IGxlZ2FjeS10cnVuaworMTEzNTEgZjhlMmFkNGNkNDViYzNiMWJkMTE2NDUwOGUyMTJhMGQ2YWZhZTA3MyBsZWdhY3ktdHJ1bmsKKzExMzUyIDU3MDg5YWQ0ZDczYzZlMjBiYWY4NTk2YTI5NWE2NjljY2NkOTY2MGYgbGVnYWN5LXRydW5rCisxMTM1MyAzYmMzZjk0ZDYwNjFlNGYyYWYzNTc4ZDVkZTAwYzZlNmMwNDRhMzgwIGxlZ2FjeS10cnVuaworMTEzNTQgMDVjMTEwNGUwODRiMzE0NjM3NGM5Mjg3OWI2ZGIyNDI1NDYwNDc5OCBsZWdhY3ktdHJ1bmsKKzExMzU1IDg2OGEyNWNmNjUzYmYwNWViMzk3NTllOGE3YTBhZmU3ODFkYmRiZmYgbGVnYWN5LXRydW5rCisxMTM1NiBhYWNiZmRmNDk0M2U1Mjk4N2NjMzVhYWE5NDE5YzcyZjlkYWZkMjRjIGxlZ2FjeS10cnVuaworMTEzNTcgMTA3OTBmMTRkMTNhYmQyNmFhMjI4ZjBjMThmM2JkY2Q1NDk2YTNkMCBsZWdhY3ktdHJ1bmsKKzExMzU4IDcyYjY5OGMzMzI0Yjk5MDVhNDM3MDNiMTI4ZWU3ZWMzOWYzZjFiOTEgbGVnYWN5LXRydW5rCisxMTM1OSBkMzQyZWI0NGQ3YmRkNTRmNzUyOTgwMDY3ODMzZTdhNDk5MjVhZWYxIGxlZ2FjeS10cnVuaworMTEzNjAgZWIwNTlhMzNmN2ZmMzFjOTkyODY1ODc3NWY4YzQ5NjhiOTk4ZjA5NiBsZWdhY3ktdHJ1bmsKKzExMzYxIDgxM2Y1MjdmM2JlYzAxY2Q3YzJkZDk5YzJiNGNlYjBkMzQzYWU4Y2MgbGVnYWN5LXRydW5rCisxMTM2MiAyN2VlMzIzMWRmYTliZWM4MGE4MmI0ZTU1M2Q2MmM4N2YxMjM0MmQzIGxlZ2FjeS10cnVuaworMTEzNjMgYTllYjI2NWQyZjU3MGRlYmZkNGQ5NmQ1NDVmMGQyMjdjNjE1MzE2MiBsZWdhY3ktdHJ1bmsKKzExMzY0IGZlYmNhNmIxODI3ZGRkZGEzYTNkMjliZjk2ODI1Y2Q2MzQyMTE5ODIgbGVnYWN5LXRydW5rCisxMTM2NSBiMjhiODRlNmE0Mjk0MDVhMzFkZTcyZTlhNTFmYjMzMDU3MDZjOGY1IGxlZ2FjeS10cnVuaworMTEzNjYgZjg4ZjQwMjQxN2YyOWYzYzQzYWE2YjM3NjRlMmQzMjZlYWIzMjYyOSBsZWdhY3ktdHJ1bmsKKzExMzY3IDg1ZGNlMzJhY2Y5ZDc5Nzg4YTljZmI5YjZjNGZjMDIwN2YxMzE3NmQgbGVnYWN5LXRydW5rCisxMTM2OCBjMGE5ZWQyMWRmYTA1NjAyY2Y3NGE5OTQ4MGI1NmE5MTIwNjlkMmY1IGxlZ2FjeS10cnVuaworMTEzNjkgMDRhNDkyZjExMGRiZGM3MDZjYjZmOGQwM2NmYzZmZGE5ODgzODUzYyBsZWdhY3ktdHJ1bmsKKzExMzcwIDhjMDUyNGE3MTI0NGZkMGVjYThlYjZlYTBmYzJkMjhjZmQ5N2JiOWMgbGVnYWN5LXRydW5rCisxMTM3MSA5YTA3NWEyZWRiMWY1NDJmODg5MWI5NjE0ZDI5NmU3MzAyMzZmYjRlIGxlZ2FjeS10cnVuaworMTEzNzIgMzQwMTIxMmU1NGZjMzgwNWNiNjdjOTk3MDE0MmI1M2MwOWUzYjFmZCBsZWdhY3ktdHJ1bmsKKzExMzczIDMxYzA2MzUxN2MyMmVjMzRjN2UyMGQwMzM0YTVjODE5YmQwNGVkNGEgbGVnYWN5LXRydW5rCisxMTM3NCA2MGI0YTYxMGRjZmNjYWE3M2I3MDY2YTFlNzAyMDhhY2MyY2E1NDU0IGxlZ2FjeS10cnVuaworMTEzNzUgYTcwODMyOTVlYjM4ZWFjMDBiZDFmZTQ5OWZjMTNkYzQzZTFkZjEyZSBsZWdhY3ktdHJ1bmsKKzExMzc2IDA5MDYzZWVkYTJiNzAzZGE4OWMyMmI3NmM2MDdmM2I4ZDMyNWYxN2QgbGVnYWN5LXRydW5rCisxMTM3NyA3NjRkZTczMWM4MDYzZmE0M2M1NjI2OTk3YWNkOTFlMzI1YTJkMTM1IGxlZ2FjeS10cnVuaworMTEzNzggOWI0YmMzYjhiOWQ0Y2QwNWU4MDFjZmY4ZTEzOGUzNDEwOTUxNmRlYSBsZWdhY3ktdHJ1bmsKKzExMzc5IGQyOTVhNTE4NzRhNmFmYTJhZjIxN2ZhYjliMGYyMjdhMzU0NzJkNjcgbGVnYWN5LXRydW5rCisxMTM4MCA5ZGI4YjVlYTZiMjEyMjA2OWQ3YzY2YmIxMDY5MDM5Y2I2NjhlNGFlIGxlZ2FjeS10cnVuaworMTEzODEgNDkyMzYzZDZiYzk0NTExODRjMmVmNDUzMzQwZjFlMWNlN2ZlZDA5ZSBsZWdhY3ktdHJ1bmsKKzExMzgyIDM4NTQ0ZjgyOGQ3NDA4ZTI3ZjllM2Q4OGUwMjRjYTRjMGZhNjU0YzMgbGVnYWN5LXRydW5rCisxMTM4MyA2ZGMwYTlkYzViYmI5MWE1NGMzOTEyMmJkNDU3Y2I5NTE1OGJkN2Y5IGxlZ2FjeS10cnVuaworMTEzODQgZGRmNzEwYjdlNmViNmZmYjUyMDg4MTNiNDE2ZWU0YzY4M2Q0MGZlYiBsZWdhY3ktdHJ1bmsKKzExMzg1IDZmNzNhZTFjZjkzNDZhNzE2OTZiZGQ1ZmE1OTNjMWUyMDM2MmM2NWIgbGVnYWN5LXRydW5rCisxMTM4NiA2ZDhiOTJjYWY4Y2RiNTJlMDY4Y2NjYzdhZWI1NTQ1MmUwMDE3YzZiIGxlZ2FjeS10cnVuaworMTEzODcgZDQxZmY1YjE5MWQxZDExNmI4N2JkZDMwN2RjNTliMTAyZjNmZDVhZSBsZWdhY3ktdHJ1bmsKKzExMzg4IDI5ZDg0N2M0MjhmOWRhNzE5OTBjNDkyYWJlZTdjYWY0OGUzNmJjNDcgbGVnYWN5LXRydW5rCisxMTM4OSA5ODAzNTU2YzFhZTdjM2ZlZWVkYTFjMGVlNGViODg4ZWY0ZWNlYzg5IGxlZ2FjeS10cnVuaworMTEzOTAgYTViNzFhOGExYWI1ODY5NjJjNDY2MGViYWJlODNkN2NiMjg1ODk3YiBsZWdhY3ktdHJ1bmsKKzExMzkxIDdkNjgxMzUyMWY2MTM1OWVjNzZiMjkwYmE3MzUxZWJkN2ZjZWI2OTcgbGVnYWN5LXRydW5rCisxMTM5MiA4OWU2NWE5NmE3ZDNmYTgwNTUzNTUzNGYwYjdkOWU1NDRhZTVmYzgwIGxlZ2FjeS10cnVuaworMTEzOTMgYjFkMWQ4YzAwNzFiYTdjZDczNGI3YjFkNWZjMTQwM2Y5NWUyZGI2NyBsZWdhY3ktdHJ1bmsKKzExMzk0IDlhOTg0Mjc2Y2M1NjVjYTJmZDZmNjViNmIzNGYzNTIzMTk2NGI2YmUgbGVnYWN5LXRydW5rCisxMTM5NSA0NTliZGE5NDBkYWEyNzgxNGY3OTk3YmZhNTQ2MTIzZjA0YjQwMTY3IGxlZ2FjeS10cnVuaworMTEzOTYgZDZiNzM5NjI1MjliYjY2MTRmNjNjMjVlY2VmM2NhNzYxMmJlYzdiOSBsZWdhY3ktdHJ1bmsKKzExMzk3IDlhNDA1NGI4NDg1ZmY0ZWFmNjZjNGYwYjcwMDdkODk3YzQ0Njg0MmIgbGVnYWN5LXRydW5rCisxMTM5OCA1NTJjNmIzYWJhM2RlNTA1NGJiZjQ2OWVlNDZmNDRmNTZiMWI5MWRiIGxlZ2FjeS10cnVuaworMTEzOTkgNmI2MzNkZjQxZTU5NTFhYWNjNGYwYmY4NzU2OTVjYmEwN2MyMjM0MiBsZWdhY3ktdHJ1bmsKKzExNDAwIGU1NWE3OWZmODIyOGY5MjJhOGNjYzZlOGFiOTZiNjkxMzZjNGQwNzggbGVnYWN5LXRydW5rCisxMTQwMSBhY2ZmZmUxNDYyOGU0NDhiZmViMDhiNWE4ZDM5MjExNDlmNDg2YTRjIGxlZ2FjeS10cnVuaworMTE0MDIgNjEwNjgwZTNiOTI5M2ZiNmNkMWQzMWQxZGE2MDUwM2UzOWFjYjBmYyBsZWdhY3ktdHJ1bmsKKzExNDAzIDAyN2YzZWVmNmU1YTc5ZWVjNDQyODYxNTAwMTEzOGQ5NmU3MTNhMmIgbGVnYWN5LXRydW5rCisxMTQwNCBkMGY5M2ViYTliYWFkMGM0YmFiNTlmMzdhYjJjY2Y0OTJkYTUyYjM0IGxlZ2FjeS10cnVuaworMTE0MDUgOGU0MTkwNjg2M2JlN2JiNDdkMTEzZmU3ZWEwYWI0OWZiMmQxNjRjMiBsZWdhY3ktdHJ1bmsKKzExNDA2IDI4YmM1ZDhlOGRjYTM2YjMzZjAxNGYzMjUzMmQwZGUyZTdjNzJhM2QgbGVnYWN5LXRydW5rCisxMTQwNyAwOTU0YWQ0YWNkZmRlNWM4Y2Y1ZDU2M2IwZDA5YzUwMTYyNjczMzQ5IGxlZ2FjeS10cnVuaworMTE0MDggYmU5MzU4NTFkYzUwYzNkZGFmZmZjYzgwOTA2YjRjOTkwYTAzOTIxOSBsZWdhY3ktdHJ1bmsKKzExNDA5IGFmOWJmODRmYmM1ZWE0MmI5YTYxMzg3YWFkOTFhNzUyMTM5MWU2MDQgbGVnYWN5LXRydW5rCisxMTQxMCA3M2Y5YTFlOGFlNTJjMDVhNTQ4N2E2MTE1YmVlNmQxOTUwZGNjMTI0IGxlZ2FjeS10cnVuaworMTE0MTEgYTgyNDlhNmIxYjU4ZTQ3ZGRlODMzMjM5MTM4MzE1Yjc5M2FkODc1MyBsZWdhY3ktdHJ1bmsKKzExNDEyIGJhOGQxYmM5OGIyZDgxNTlkOWZkMGY3YTA3YjQ2NThlNDE2ODU4NmEgbGVnYWN5LXRydW5rCisxMTQxMyBjNDVhMmQ5MTFmMzE1NjZmMzNlM2UxNjdlYWI4Y2QyNGQzY2ViZDM0IGxlZ2FjeS10cnVuaworMTE0MTQgZGFlMmYyZWY5MDE1YWEzZTM4YjcxMGNlZDUwNDg0ZWRmNjU4ODBjMiBsZWdhY3ktdHJ1bmsKKzExNDE1IDBiYTgxYjk5ODhlZWZlZDFkNjEwMTA3ZTJlZGVlNzYxOGE3YWEwYjcgbGVnYWN5LXRydW5rCisxMTQxNiBkYzZlZGZkNGJhZTViZmIzM2U1ZGEyNzA5NjM2ODdlNWJjNGUyZDVjIGxlZ2FjeS10cnVuaworMTE0MTcgMjBiODNjYTA2Y2U4YTE4NzM2M2U0Y2VmZjEwNTM4NTFhODkxZGFkNiBsZWdhY3ktdHJ1bmsKKzExNDE4IDJmOTM2YjdhMDlmOTRmMTgwNGNhY2E3YjcxNGU0ODNjZGQ0NDVkZGEgbGVnYWN5LXRydW5rCisxMTQxOSA1YjczZDViYWJjNzhlOTFhYjU1MDVlYjg2NjZjMTE4MTIyNTk1ZTcyIGxlZ2FjeS10cnVuaworMTE0MjAgMTk3YWM1YWQzMGNkZjM2MDkzODc1MTkzMGExNTE3YWJiYzA3MmUyYSBsZWdhY3ktdHJ1bmsKKzExNDIxIGI0ZTJiMmNiNjViMWJkMTA1ZjdmY2IyOTVhMmFjZTk5MjhmMzZkMDYgbGVnYWN5LXRydW5rCisxMTQyMiAzNDc4ODRlYzUzMTgxMzdjZTJiN2E0ZjhiYmJhNDExNTU1ZDQwN2Q1IGxlZ2FjeS10cnVuaworMTE0MjMgMmQ3NzUzMDg1Mzg1OTJkZWE4ZGRiOTI5Njg5YTIyMTBkOGFlYjYzNyBsZWdhY3ktdHJ1bmsKKzExNDI0IDQwMDg5ZTU1ODMwOTBjYWViYzMwOWU0MzZhN2QwYThjZDNhYjFiN2MgbGVnYWN5LXRydW5rCisxMTQyNSBmZGE0NjNjM2IxNzY3ODk3ZTg1MDcxYTQxNjY0ZGE5NDQ5NjgzYjEwIGxlZ2FjeS10cnVuaworMTE0MjYgMGYzMzE4ODNjYzE1ZjA1M2VlOTdlZDljNDZiNTIxYWYxNjE2ZThhZCBsZWdhY3ktdHJ1bmsKKzExNDI3IDNiMDI5MTY1NWUzMTYzMTJhYmNlZWI3ZWJhY2NkNTVkOTQ4ZjAyYTEgbGVnYWN5LXRydW5rCisxMTQyOCA3NjAxYTdlOTU4M2RlNWRiOTA5M2E4YmIzOGY5NTAwOThiYzY5ZWY3IGxlZ2FjeS10cnVuaworMTE0MjkgNTBhZmEyOGFhNGI5MTljOWU2YzJkNmE3NWZkZDY2ZjRkMmIwN2U4NSBsZWdhY3ktdHJ1bmsKKzExNDMwIGM5MTgwOWNkNjdlNTQxYmU2NGE4MGRhMjJlNDUwMzJiM2UxN2YwMjggbGVnYWN5LXRydW5rCisxMTQzMSA3Y2Q0MmM4NzhmMTYxOWIyZGU0ODZkNmI3ZGFhMzkxN2JjMzdjMzZhIGxlZ2FjeS10cnVuaworMTE0MzIgMGE2ODkyYjFhNGFjMjgyOWNmOWJhYzJmMTdiZTc1OGE0YTEyNzAwOSBsZWdhY3ktdHJ1bmsKKzExNDMzIGNmM2NlYmE3ZWZkZGVkNjI1N2E5NzY3Y2ViYzY1ZDdiOGY3ZDg1NmIgbGVnYWN5LXRydW5rCisxMTQzNCA4YWNjNzJhODEzMTk5OGY4MDU2NzhmM2IxYjVlODg1Y2JmNWUzYmQxIGxlZ2FjeS10cnVuaworMTE0MzUgY2I3YTE1MDY5MTlhZjRmNzdiNzA3M2Q4ZjE2YmMwODhmMzRiMzRiYyBsZWdhY3ktdHJ1bmsKKzExNDM2IDk5MDE1Mzg1M2UzYmIxZTc5Nzk3YWZjMzljNGVhODdhMDc1NTdlOTUgbGVnYWN5LXRydW5rCisxMTQzNyAzODRmZmVkMjUyZTkxZmQ4NDg4OGViZTVlZGVkNDhlZDk2ZmU1MTI1IGxlZ2FjeS10cnVuaworMTE0MzggYzI2NTkwYjFjMzk2YjU3MGVmMjk2YWYzODJlNjAyZGVjYjNiZWRlNyBsZWdhY3ktdHJ1bmsKKzExNDM5IGFjMTg4MWM0YmE2ZDlkMDZhOTZiNzFjMTE2Mzk3YjIxNDYwOTBhZmEgbGVnYWN5LXRydW5rCisxMTQ0MCBjNzlkZWZiNWEzOWMxYmQ3M2MzZDYyYWE3YTBiMmExMWY4OTJhM2I3IGxlZ2FjeS10cnVuaworMTE0NDEgMjQ5Y2Q0NDMzY2YwOGViZjJiODY5NTI4MzIwMTQ3YzViNDJlN2NmZSBsZWdhY3ktdHJ1bmsKKzExNDQyIGExZGVhZjA0Mjc3YmJiOGEwZGE2ZTNjZTc1ZWE2NDM1ODM1MjhlMTAgbGVnYWN5LXRydW5rCisxMTQ0MyA5NjE4YTg2ODc5Y2FlZmFhYTdjYzAzNzZkMTA4ZjU1MGJhZDNlZTBlIGxlZ2FjeS10cnVuaworMTE0NDQgZTc5NThlOGM3NzdhNzg0YjljMGM2NmU2MTljOTUyN2VjNjQ2ZWVhYiBsZWdhY3ktdHJ1bmsKKzExNDQ1IGVjZGQ5NmRkYjAwMzVmN2JhYTcxM2ZjYjQyNjY2NjQ5ZGE1OTM1NjcgbGVnYWN5LXRydW5rCisxMTQ0NiA0YjY0ZjEzMWFhNGQ4NTM0MjNmNDMxMjc2OTkyYTcxY2UwNDQ5NWI0IGxlZ2FjeS10cnVuaworMTE0NDcgOTlmZmUwYTM4YTFjYWQzOGFiZjU5NTViN2Q1MDg0YWM5ZTAwMjhiZSBsZWdhY3ktdHJ1bmsKKzExNDQ4IGJlMjFhYWRmNDkwOGY3ZDllZjBkZjUwODRiMmMzODliMjM3OWY5MWEgbGVnYWN5LXRydW5rCisxMTQ0OSBjNGMzMjhhYWJkODI1YWFlOWRkNDdlZGQwYzllNjA3ZjRjNmJmOWNmIGxlZ2FjeS10cnVuaworMTE0NTAgZGUxNmUxOWZmMWRkOGIwZjhhODg1NTZjZTQ1NjEwMjE1MDgwNGYyNiBsZWdhY3ktdHJ1bmsKKzExNDUxIDE1N2U0ZjIwY2Q3MTYwOTRhN2ZkOTVkNjlkMWUzY2Q0NDdkZThmODEgbGVnYWN5LXRydW5rCisxMTQ1MiA0NTYxNGNmOWU5MTFiMGQ2NDA0MzMyN2NmZWFlNWNkNmY5MjFmOTFkIGxlZ2FjeS10cnVuaworMTE0NTMgNThkNjkwZDRlMzEyODM3NWI0YzY1MTc4OTVhMmE0MTY1NDI5NWQ1NCBsZWdhY3ktdHJ1bmsKKzExNDU0IDc4ODVmMTVkYTA4MDFjOWEzNTc5YjZhYTg2MTg4MjhlMTc5ZjllNzYgbGVnYWN5LXRydW5rCisxMTQ1NSA0NjhjYTg0ZmJjMTRhMjU1Y2EzMGY5OWRmOWQ5MWUxZGQ5YmJiMjdjIGxlZ2FjeS10cnVuaworMTE0NTUgZmVkNjNjY2JlNmRjM2FjNjYzYmZlOTdhMmY3MDA2YjFiMjg1NjhmOSBsZWdhY3ktdHJ1bmsKKzExNDU3IGQ2OWNmYzIzYWE3NjY0MzBjMWQ1MzE4N2RjYTIwYzlhZjI2OWJlNWMgbGVnYWN5LXRydW5rCisxMTQ1OCAzYmNkNjI3OGU2NTgxMDdlZGJiNDY3YTFjNGIzZTEzYmI3MGMyNmQ1IGxlZ2FjeS10cnVuaworMTE0NTkgODJhNDNlMWJmYTRmZGEwNjAyMzdiMDFmMzk3NGI1ZDhlYmZmODlhMiBsZWdhY3ktdHJ1bmsKKzExNDYwIDA3ZDk3ZDE1NDZkNGIzYzQ0Nzk1YmNjZjRjM2Q5YWY2YTg1MTE5NWQgbGVnYWN5LXRydW5rCisxMTQ2MSAwYWZjMzgyNzk3N2UxMmIwZjczYmJiOWEwMzdjYmNkYzk1MmJkODlmIGxlZ2FjeS10cnVuaworMTE0NjIgMjZjMDQxYjE0NWMxOTViNGRmYjgyZGY4YjJjM2U5Y2E1OTZmZTAxOSBsZWdhY3ktdHJ1bmsKKzExNDYzIGYxZTQxZmMyNzgzYzE5ZGQ5NjU3ZTVjMDc4YTkwZWU2Mzk1MDFlNzYgbGVnYWN5LXRydW5rCisxMTQ2NCAwMzk4MDUxZjhmZmFlMTc1MTM3Y2NhNjY2YTliM2EzZjZjM2ZmNjk4IGxlZ2FjeS10cnVuaworMTE0NjUgN2MyYmM3ZGI0OTMzNmNjMTY0ZTI4YjNhODhjMTE0MWMyZjAzNDMxZSBsZWdhY3ktdHJ1bmsKKzExNDY2IDRlZjY0MGFjZjIzNjVhYTcxNTI3OWYxNzlmNjk0MWU1OGMwZTE0MDEgbGVnYWN5LXRydW5rCisxMTQ2NyA2ZDRlYTM3ZDcwYzIyYWZhNTBhYjdlMGUwNjU4MzRhNmNmNDc0NDY1IGxlZ2FjeS10cnVuaworMTE0NjggZDc4NzhiMzg2ZGFmYTgxMWExODljZTlkMGNlYmMyYWMzYTcxYjJlMyBsZWdhY3ktdHJ1bmsKKzExNDcwIGZmNjdmOTNjNGE5YmMwZmYzZTM1ZDhjNWQ4NTczNzg1OGE0M2UyMTAgbGVnYWN5LXRydW5rCisxMTQ3MSAzZTEyN2JjYTg0ZTcyZmJkOTRhMjRhYTNlMWYzNzU4ZDBlNTNjZTg3IGxlZ2FjeS10cnVuaworMTE0NzIgMDcwZGU0ZDM5ZGRkODZhYzk2ZGJhNTZkZTlkYzM5OGQxNDIxNDRiMSBsZWdhY3ktdHJ1bmsKKzExNDczIDVmYjNjNjgzZTg2MjYyMzU2NjZjNjE5NGQ0MDYyZGU1MjQ1Nzk3NTAgbGVnYWN5LXRydW5rCisxMTQ3NCBkMTc4MjI3MTI0MjEwZWNhNDk0OTllODkyMWJkNDNlMjhjOGI0MjE0IGxlZ2FjeS10cnVuaworMTE0NzUgZGIxNmNhNGRlNGM0ODc4MTllNjEyZTQ4OGIzNjljYjVmODgzNmVlMyBsZWdhY3ktdHJ1bmsKKzExNDc2IGVlM2FmOTExYWQ1NmI2ZWQ5YjExNTgyYTE0NzRlMDQwYmE2NTdlMjUgbGVnYWN5LXRydW5rCisxMTQ3NyAwOTE4Mzk0MzE4MmViMzJhODZlOTMzOWQ4MjU4YWYzMGFiZWZmMDUyIGxlZ2FjeS10cnVuaworMTE0NzggOWM5YzRjM2VkZWMyZWQwMDc5N2VlZDVjNjViMTBjODNlNzliMjRiZiBsZWdhY3ktdHJ1bmsKKzExNDc5IGYxNDczOTI2MWEzNGMxODBjYmU3MzczOTEzYzEwMWRlNDM0OTQ1NzMgbGVnYWN5LXRydW5rCisxMTQ4MCAzYmRkMGU3OTBiYzk4NjljMTI2MDg4YzZlNmYwZjcwZDNiM2NmNjkyIGxlZ2FjeS10cnVuaworMTE0ODEgMjllM2IxZWI0NmIxOTBlN2QzOGJlMzE3YTdkODY2MmE5YTdjOTU0MSBsZWdhY3ktdHJ1bmsKKzExNDgyIGY4NjRjOWY2NTYwOTUyYjUxOTk3ODZjNzRhNmM3ZWVkYmQ1Yzg4NjMgbGVnYWN5LXRydW5rCisxMTQ4MyBkZmI3ZjQ2OGI3OGQzNzc1ODk5N2ZiZjZjN2ZmYWZhMmEwMjgwMDg5IGxlZ2FjeS10cnVuaworMTE0ODQgYzJkZDRmMDg2YTQyYmZhNDExZmFmN2RmYTY5YzFiYWE5MjcwMTg1NSBsZWdhY3ktdHJ1bmsKKzExNDg1IDQ0NTA1MDc1NTU4NmI1OTEyMmM1ZmE0YWNkOGNlZGIzOGE1ZWE4NTggbGVnYWN5LXRydW5rCisxMTQ4NiA3MTE2Y2I5NzEyYmNjNzA5OThkZjk0ZGVhNzVmNTViMjM2MzA5YjA3IGxlZ2FjeS10cnVuaworMTE0ODcgZjE2YTZlNjQ4NTliYjhjZjZjOTg2YjU1NDhhM2FkMTM4YmU5MjU3NyBsZWdhY3ktdHJ1bmsKKzExNDg4IDkzYmVjNmE4ZGIyMWIxZjEzNTMyMGRiMmNkZGNkNjg2ZWFlNjYwNDIgbGVnYWN5LXRydW5rCisxMTQ4OSBlYzAxZmU5YzI4NDE3YWJlZTgzMGNjZjBhOGRlMjQ4NWYzNzkxMGJiIGxlZ2FjeS10cnVuaworMTE0OTAgYTlmNmZiMTRhYmQ3Y2EyMDE4YjAwOWExMGVmZGFmNTliNGI3YWU1MiBsZWdhY3ktdHJ1bmsKKzExNDkxIGZmMWE4YTM4ZjhjMTFhZmI1YjlhN2MzNDdlNDMyOTljZDNkYWYzMDUgbGVnYWN5LXRydW5rCisxMTQ5MiBlYWJiZTBlZDM0NjhjY2VjOGI4MGIyMTI1Yzc2Y2JjZGI5ZDBiZjIyIGxlZ2FjeS10cnVuaworMTE0OTMgNTk5MTY3Mjg4NWNiMWFjNGRmY2Q4OTQxYjZmNGE4YTE5NzQzYzYzZiBsZWdhY3ktdHJ1bmsKKzExNDk0IDllMDFiNzRkYWY3N2M3MWM3NzU4MWZmM2U0NGUxOWFkMDAxMDg4ZTkgbGVnYWN5LXRydW5rCisxMTQ5NSBhMTEwYjYwNjk5YjFiNDEyNTUxN2ExNWZhODdkZGU3NTA1ZmRlY2NjIGxlZ2FjeS10cnVuaworMTE0OTYgMzZiZmFmZGRhOGQxNGYzYjlmY2YyOTY0NjE5OGM2OWQ5ZTcwNTlkNyBCQlBZCisxMTQ5NyBiZmQ4NDcyZjY5NmI5YzhmYzY5YTJjNzMxOTAyZWMxNDFkOWE0MDQxIE9TQU0KKzExNDk4IGQ4NWU4MDcwYjE2NGYzNzZmN2U2YzUyZDRiZmJhZTRlM2NkMTM0OTYgUFlUSE9OU0NSSVBUCisxMTUwMCBhOGQ0N2EzNzE4Y2U5ZmQ4YzRmZjc4Mzc2OWYxYWE1OTUzZDlkOWQwIEJCUFkKKzExNTAyIGI0ZDNmOThiZjIyOTcyZDRhMTIxMWU1YmMzZDkyZGNlMzc1M2Q3YTEgUFlUSE9OU0NSSVBUCisxMTUwNCBlMWYzMjNhZTljNGI1MjM3ZGRkZjBlMTg1MDljY2M2ZTMyZTUyMDk3IE9TQU0KKzExNTA1IDExYWJhZTI4NGMwNzFlZGJlZTRlNTE4NDc1ZmEwZGM3Y2Y2YjEyY2QgbGVnYWN5LXRydW5rCisxMTUwNiAxN2NkNmU1ZDI5NGJiM2EwNGJkOTk4Y2Q3YTVlNjM1ZGRhYWEwMjg3IFBZSURFCisxMTUwOCBlOTIxY2RiY2M1ZGQ2M2FmYjYzMzRhZDkzYzc0ZTQ0NTVlYjE3NGE2IFBZSURFCisxMTUwOSBkZmY2ODgxMjQ2NTcyZWM3OTFhNGIxNTkzNjIyMGEwMGQ3MGMyNzY0IGxlZ2FjeS10cnVuaworMTE1MTAgMmNlM2RhNDE5ZTFkMzllNzRlMDA3YTA4ODQ5YTNmZDU4ZGJlZWMwNSBsZWdhY3ktdHJ1bmsKKzExNTExIGRkNWZhMTc1NzU1NmRiNzNmYzYzMDRkNGM0NWJiN2NhYzA5ZGIyYzMgbGVnYWN5LXRydW5rCisxMTUxMiBiOWEwNzA3MzZlYWNiMzExYzdjNzIxODA4YzZjYWI0YzdhMjEwODNhIGxlZ2FjeS10cnVuaworMTE1MTMgODk3Y2UwOTc2Njk2NTIwYTRiMWUzZmI3YjIwMmZmYWQyOGRhOGFiYiBsZWdhY3ktdHJ1bmsKKzExNTE0IGIxNTBlYmY3YjJiNzJjNDhhOTAwZjIyMTU5MTNiY2VkODEyZDM4ZmIgbGVnYWN5LXRydW5rCisxMTUxNSA2NzRmNDUxYzQ4MTVmZjRhMDQwNjJlYWQ3NzU4Yjc3NzY5ODlhYWE2IGxlZ2FjeS10cnVuaworMTE1MTYgOTI4ZmU4YmM5ZWI2ZDY3NTZmZTcxNGE3ZTBmZTQ0YjMxYWNlODE0YSBsZWdhY3ktdHJ1bmsKKzExNTE3IGE5NzI0YzhlNmU2ZmQyYjAzMGMyNmExYjRlZjQxZjIzNWFiYTMzNzEgbGVnYWN5LXRydW5rCisxMTUxOCBiN2U3NzQ3YzE5Njk2OGY3ZWE1OTdkNTMzNTU5OGE2YmE1ZGRiYzlmIGxlZ2FjeS10cnVuaworMTE1MTkgNmEyZTkyNjIxNTQxMWRlMjFkOGQ5YWFhNWNmZTMzYWQ0MDk3N2FjYSBsZWdhY3ktdHJ1bmsKKzExNTIwIGE4N2IyM2Q0Mjg4MTRlMzkwNWMyODFiNmEyZTBiZGE0ZmNjOWE5YTYgbGVnYWN5LXRydW5rCisxMTUyMSAzZGY1YjlkODMzNWI3NzVhOTY0ZGVlNGE2MWJhYWYyNGExNTI2ZDNhIGxlZ2FjeS10cnVuaworMTE1MjIgZmI1YTVlYzJlYTFhYjAxYmY3NDkxMDhmZGRlNTJmOTdhMmI2OWI3MSBsZWdhY3ktdHJ1bmsKKzExNTIzIGQ1MzIzN2JjZjE1Zjc3NDIxNTQxOGY3M2Y4YmZjMmI2MGI3ODU4MmYgbGVnYWN5LXRydW5rCisxMTUyNCA2NTEzOTcxOWI2NTYwNTllNTJjNzY5YjJhNWZjODgwODg2ZGRmNzAyIGxlZ2FjeS10cnVuaworMTE1MjYgYjNlZWNkZTM2NzllZGMxMzMwMzQwMDNkOGZlNDU0Mzc0ZjEzYjgwZCBsZWdhY3ktdHJ1bmsKKzExNTI3IGQzYzA2NzkzNGM2M2NiZjc2ZWY3OTYyY2E2ODgzYmI2NmY5Y2UzMDkgbGVnYWN5LXRydW5rCisxMTUyOCBkMjcyMmE0Y2JkOWM2MTI4YjUyMTY4NjY4ZjhmNWI4ZWRhY2QyNjUxIGxlZ2FjeS10cnVuaworMTE1MjkgYmFmOWE1YTcxZDJkNmRkZjY4ODE1YzRkNWFkN2Y5MzRiMDRiZDRmZiBsZWdhY3ktdHJ1bmsKKzExNTMwIDk5NjI4MzNkNDlmZGRiOTMyNjIxOTdhMTVjMGVkOGQzZWM2NWIzZGUgbGVnYWN5LXRydW5rCisxMTUzMSAxODJjOWNiZGYwNTNkZTNhODMyZDA4MDUxNGI0NTlhMjhlNTZjMTE2IGxlZ2FjeS10cnVuaworMTE1MzIgMTFiNmYwYzllYWM5OThjYThmNmM4M2NlZDNkNDBlN2I1Y2Q1NWRhMCBsZWdhY3ktdHJ1bmsKKzExNTMzIDE4Njk3ZjU5ZmQ0OGI3N2JkNTQ2ZWE5MWY5NmRmYjQzMGU3OWVmOWYgbGVnYWN5LXRydW5rCisxMTUzNCA2MmI5NGNjOThkZTQ1OWU3YTgwMzk3MWQxNDc0MmRhNWQ2MTg1MWJhIGxlZ2FjeS10cnVuaworMTE1MzUgMjRkMGE1N2FlMjM0ZGM4MzU3NjgzZTFlMWM0MzFlNTRiODk1ZGQwOCBsZWdhY3ktdHJ1bmsKKzExNTM2IGYwYzhiOGEzM2YwOGVhZTA4ZDNmZjI5ZDE1ZTBlMjA4N2Q4ZTk3ZTggbGVnYWN5LXRydW5rCisxMTUzNyBlYmMwYzEyZGJkNzhkNjBkOGZlMDhkODkyOTZiMDliMmMxMzk1NWJiIGxlZ2FjeS10cnVuaworMTE1MzggOGQxOGQ0OTZhZjg3MDlmYzNhYWIwY2VlOTYyZmQ2YzAxN2UyYmJlMyBsZWdhY3ktdHJ1bmsKKzExNTM5IDlmZDkxNWQyM2NmYTAzYzAwZDNlODA4MmQyMmMxNWYzNDNiNjNhOTYgbGVnYWN5LXRydW5rCisxMTU0MCBkOGVkZTAyMGRmZWIyOTRiNzVhZTdkYzY5NWFiYTkyMzcwYzJhYjMwIGxlZ2FjeS10cnVuaworMTE1NDEgZDQzN2I2NjgzZTI0MTc2ZWFiNzViM2RhMDdkYjg1OTlkMmI0MzRmNCBsZWdhY3ktdHJ1bmsKKzExNTQyIGFkNmJjMmM1ZDM1M2VlZGNiMDIzNmVkYjY3ZWNhYzk3ZDRlYmMzMjEgbGVnYWN5LXRydW5rCisxMTU0MyA5MWQwODYwNzQ2ZmMyNzMzYmQyMGExNDg2YzkwMTMwNmY0NjZkYzMzIGxlZ2FjeS10cnVuaworMTE1NDQgNmQyZWI1OGYwNDE4NjgwODZkOTg3MWNkMWM0YWY3ZDg4NzNmMzYwMyBsZWdhY3ktdHJ1bmsKKzExNTQ1IDExOGY5ZjczYWJlOTE5ZTkyZWI5YjNkZTYyZmY4NTQ3YzIyNDlkYjIgbGVnYWN5LXRydW5rCisxMTU0NiBjYmY3MmIyMjEwYWVhOWVlNzgzMjYyODc5OWJkN2Q0MzdhODJmOWM0IGxlZ2FjeS10cnVuaworMTE1NDcgZjNlYmRiMjI3NGU0YTgyOWY3ZjdjZDJmYjAxN2RhMzVmODAxMDBiNiBsZWdhY3ktdHJ1bmsKKzExNTQ4IDgzOWM2NjIyZDE1YTA3MjEwYzc2ZDU5N2M1M2MyYWQyNDMxNmZlMTAgbGVnYWN5LXRydW5rCisxMTU0OSA5MDViZmFjMGZhMzJlMDU2OTU3ZGZiN2QyMGRhZjlhNTI1M2NjYmY0IGxlZ2FjeS10cnVuaworMTE1NTAgMTZmODM5N2Q4ZjA0OGRlNjRhMWI4ZDBlMjBhYTkxZGI0ODA4NjUwNSBsZWdhY3ktdHJ1bmsKKzExNTUxIGRhYmIyYjZhM2E4MWViMGZlOGM0NGU0NTYxN2RmMjYxN2YyNjQwNWIgbGVnYWN5LXRydW5rCisxMTU1MiA1YmM2NGVmYzY1ZTAyOTg0MWMzMzVmNzI2NzhkNTU2ZjZhNjE0NzM5IGxlZ2FjeS10cnVuaworMTE1NTMgMDUxODFlMTA0NDIwYWMwM2Y1MDYxNzkyZWU0ODJmYzFkY2RmZTYwYyBsZWdhY3ktdHJ1bmsKKzExNTU0IDAyNmUxMjM2MjQzZTZjYmFlMWNiN2JjZmIwNTRhMjU2ODlhYTJjZjUgbGVnYWN5LXRydW5rCisxMTU1NSAxOWVjNTM0Njk0YWRkZWI4NGRmZWUyMTRkYmI1ZGQ2ZmJkNzlkYjhiIGxlZ2FjeS10cnVuaworMTE1NTYgODY5NTJiZGFiYjIxZTExZmVjOTFjMzFjMTVjOTQ1YzYxODIyYWVhNyBsZWdhY3ktdHJ1bmsKKzExNTU3IDVjMWUxZmIzNzJkZTA2ZWUyODFhNmNmMTBmZTI0ZTNiNGQyMDMwMjcgbGVnYWN5LXRydW5rCisxMTU1OCAwODc2YjZjMjQwMDdkODY2NmRlYTI3NzZkYjI2N2IwZTM2YTY4Mzc4IGxlZ2FjeS10cnVuaworMTE1NTkgMDA4OGFkOWQ5NmMzODZhYzQyYmM1NDYwZmUyY2JhMDA4YjdlYjBlMyBsZWdhY3ktdHJ1bmsKKzExNTYwIDU0MDFjNzE0MjhlZWZiMGU2MmE2ODE3MzdjYzdhM2RhOTc0MjE1MDkgbGVnYWN5LXRydW5rCisxMTU2MSAwNzgxYTQ5OTkwNTE1YzE2Mjk4NmZkYmMyOGY3OTY1OGJkMzdkYWI3IGxlZ2FjeS10cnVuaworMTE1NjIgMjU3MDYzYWFlMDAwZjNmNTk4N2M2MjZhZWM0YmFjOGM0Y2I1N2NiNiBsZWdhY3ktdHJ1bmsKKzExNTYzIDM0MzNhOWViZGY0MzllNmQxOGM5ZjIyZmJhMmZlZTc5NTlkZTllOTcgbGVnYWN5LXRydW5rCisxMTU2NCBhNWUzYzY5NWQyZmJlMzc3ZmVmNGEyOGFkZmE0MzUwZTUxMDhhNmNhIGxlZ2FjeS10cnVuaworMTE1NjUgYjI1ZDVhNjJlMzU3NjNkNTg4M2U5MGQxY2I5ZTNiMTgxMjQ5MDAzZSBsZWdhY3ktdHJ1bmsKKzExNTY2IGViYzhjYjA3NzAzZjg5ZDQ2NTJkNjk0NjdiNTg0NGU3ZTRkNzhmZDEgbGVnYWN5LXRydW5rCisxMTU2NyBjMmNiZTlhY2ZjOGU1ODgzMGNkOWFmN2IyMzkzMzRjNzlkZGU1NzJiIGxlZ2FjeS10cnVuaworMTE1NjggMDE4OGQ2MjU5NjlhYjMxM2ZkNmMyYjQzZGE4MjJmM2M2MzBjOTM1YiBsZWdhY3ktdHJ1bmsKKzExNTY5IDljZWE2YjYxNzgzOGU1NDEyZjUzYWE3MDY1YzJhYmMxMzM5MTVmN2UgbGVnYWN5LXRydW5rCisxMTU3MCA2MThmYjgzMGJlNjU4Y2ZiNDQzNzk5ZDhkMTFkYWU0ODAyMDllOTU5IGxlZ2FjeS10cnVuaworMTE1NzEgYTk4MmIxN2U5MzhmNTI5ZGZhMDRjMzRkODE2NWYzNDY0ZDE4MmMyYSBsZWdhY3ktdHJ1bmsKKzExNTcyIDg1MGFjZjI5OWVhMjNkYmIxY2FkMWVmYjEwNjkxM2EzNTQwZmJkN2UgbGVnYWN5LXRydW5rCisxMTU3MyBjMDYyNzIzODRmMTE4YWZlMGRjNjI5MWVhZDAzY2ZjNjZhODNkM2I2IGxlZ2FjeS10cnVuaworMTE1NzQgYzQ0N2QxYWQ3ODUxN2QzNThmZmY3YmQ3NDBiOTE0MjkzYjE1OWJjNyBsZWdhY3ktdHJ1bmsKKzExNTc1IDE4ZjgxZmFmNGJkOTdiNDFmMTdhYjhmZjA1MWE4Njc4ZjM0YTZiYmMgbGVnYWN5LXRydW5rCisxMTU3NiA0ZDJjYjIxMmM4ZDE1ODU0OTM3NzViODcxZjhhM2JjNzJhOTYwODNmIGxlZ2FjeS10cnVuaworMTE1NzcgZTQ5YjVmZWQ3NDRjNGZmNzcxYzk4YjVlYjcyZDQ5NzhkZTVhYmFiMyBsZWdhY3ktdHJ1bmsKKzExNTc4IGVkYWM4NjBhZDcxMGI1YWEyOTIxMGVlNGM5ZDcyNDBmMDQ4MGE1Y2QgbGVnYWN5LXRydW5rCisxMTU3OSA2Yjg1NDkzMDUyZThhMzZmODJlNTgyNDVjMzgyY2JmY2Y2NDkwNDQxIGxlZ2FjeS10cnVuaworMTE1ODAgYmM0MWU4NmM5MzhjZjRiOWU3MGFlNWE0MmMwNDJkZTU3ODI0MWFjYyBsZWdhY3ktdHJ1bmsKKzExNTgxIDNmNGJlN2UyOGQ1Y2U3ODUxMTRjZGYyYjdkNTk5OTBjZmI3NDFmMDEgbGVnYWN5LXRydW5rCisxMTU4MiBlOTQzZjljMDk5MDFhZDgxOGJlMjNjYWJlYzhjNWQ3NzE2YjA4Mzc2IGxlZ2FjeS10cnVuaworMTE1ODMgZDRlYjM1YzZlNmVmYmU3MGFmZjU0ZjI2MTU5NDE0NDUyNWNlZWRmZCBsZWdhY3ktdHJ1bmsKKzExNTg0IGFjZmIzYTY0OGRjYWFiZmE2MzIyYmFhMGE3NmVmYjk2M2RiMGMxODggbGVnYWN5LXRydW5rCisxMTU4NSA3ZTZjNGY1N2FmNjk5MjBhNThkNGFjY2ZlZjNiOWU4NGZhZTJmYWIyIGxlZ2FjeS10cnVuaworMTE1ODYgZTcxZjgzOTIyMzkyMDRhNDVkNTM4Y2Q1NzI2N2E4NDMyODU2Yjg2NyBsZWdhY3ktdHJ1bmsKKzExNTg3IDI2ZjViZmQ3MTVhNDY1NmU4OWFjZTdmYmU3ZTI0ZDEwMWFmZDI3NmYgbGVnYWN5LXRydW5rCisxMTU4OCA1NTY5MjdkODY4ZDhkODg4MmI2NTIzY2Q2OWVmZWM1MjgzZmI0NzA3IGxlZ2FjeS10cnVuaworMTE1ODkgMmUwN2YxYjI5OGUxNmRiODFmMzU5ZDE1ZjNjZDA3Nzc1Y2Q3MThmZCBsZWdhY3ktdHJ1bmsKKzExNTkwIDQ3MWM2YzIyMTg3OTllZTI3MDBhZDZkMjFkYjA2ZmVhMzcwMDFlMTMgbGVnYWN5LXRydW5rCisxMTU5MSAwMzEwZWUxNjQ5N2E4N2Q3MTkzY2MxNzEwODkxMmQ2Y2I1ZjRjY2JkIGxlZ2FjeS10cnVuaworMTE1OTIgNjM3ZmVjOGE3ZGQzZGFmZjE3YTdmNmI0NzYwMDJhYzdkOGVhY2EyNiBsZWdhY3ktdHJ1bmsKKzExNTkzIDIwODhmODAyNTNkYjA0ZjIxNGI1ZjJiMDU4M2FmYTVhNzRiNDA1ZmEgbGVnYWN5LXRydW5rCisxMTU5NCA0Mjc4NTYxYmQ1ZTg3ZjU5YTEzODc3N2ZmNDY0OTVkZTdhNjVkNWI1IGxlZ2FjeS10cnVuaworMTE1OTUgYjgyNmU1MGU5NTczZjRlMDk0MGM4MmNiZjY0YTExYmJiNjlkMzIzNyBsZWdhY3ktdHJ1bmsKKzExNTk2IDcyOGJiZWI5ZTRmOTY1NDcyZjg5MmIzMGUzZmZhNjAxNjU4NjY2MWQgbGVnYWN5LXRydW5rCisxMTU5NyA2ODdiNjZlNjUzZDYxNWEwOGZjMGEwZTkyMmM2NWIwNDAzN2E4MGRiIGxlZ2FjeS10cnVuaworMTE1OTggMzEzNTMxNmNkNjcwYjA4ZmE4Y2FhMTQ0OTNlN2JjZTM4MWQ0Y2IxOCBsZWdhY3ktdHJ1bmsKKzExNTk5IGYyMzk2ZDQzMDU2YjZjNmQxY2Q5NzY1YTM1Yzk2ZWMwN2M2ZjZhNWEgbGVnYWN5LXRydW5rCisxMTYwMCA3N2E5Yjg1Zjc2MmE3NjQ4YTc4YzI3M2VmZmZlYmU4ZjkyMTk2MDI2IGxlZ2FjeS10cnVuaworMTE2MDEgMmJiN2I2NjBmMDA3YmVmNzQzOWM2MGExMjk3MDQ4NmEzYzY4NTA2MiBsZWdhY3ktdHJ1bmsKKzExNjAyIDllYjJkNmY2ZmQzZjRjNzFjYTY3ZGFhZTE3NzBkYjk4NDllZDAzMjQgbGVnYWN5LXRydW5rCisxMTYwMyBjZTUyZTkyMmZiYjI2ZWJhYjUzOWI5NmYzNTIwOTRlOTFhNjUwNDI5IGxlZ2FjeS10cnVuaworMTE2MDQgMjRjYWQ0ZTBkYjhkZDM5YzMyNTQ5MGM1NWUzNzIyZTcyMTVjYzBhNiBsZWdhY3ktdHJ1bmsKKzExNjA1IGI1Mjg2NGM1ZTljOTQyM2E1M2QwYjJlY2QxZTkyZmU0YjdlNzQ2ZWIgbGVnYWN5LXRydW5rCisxMTYwNiA5ZTE3NDU2NzllNzE1MDAzYjJjY2JiYzA5YWI0NzMyZTlmZThlNTk4IGxlZ2FjeS10cnVuaworMTE2MDcgMDQyMGY1NDM0ZjQ0OTMyYWE2NjdkZmJhYzlmYmU0OTczMzE4ZWMyZSBsZWdhY3ktdHJ1bmsKKzExNjA4IGIwODQ1ZDA5ZmVkZjZmODE2NTIwODQ0NDc1MjQ0ZDRmNzdlZGY5YjIgbGVnYWN5LXRydW5rCisxMTYwOSA4MzY2MGNkYTNlM2YzOTcwMDVmODU2OTcxYWZhMmU2YjU5NDU4MWQwIGxlZ2FjeS10cnVuaworMTE2MTAgZGJhNzExNjI2YjQzMjQxYzVlODFlYzBiMzRiOTNmZjVjNDVlNzZlZSBsZWdhY3ktdHJ1bmsKKzExNjExIGQyMzdjODA4YTAxZTExMzE4ZDI1MTZkZDA5MjI4MGE1NjRkMzBhYWEgbGVnYWN5LXRydW5rCisxMTYxMiAyOTM4MGE0ZmEyMzA4OTAzMTYzYWI1ZmQxY2RhODU2OTZkNjY5MzMwIGxlZ2FjeS10cnVuaworMTE2MTMgZGIxNTQ3ZmQ0MGU0Njc1YjcyOGU1YjZjYTE5YWRmZWZmYzZjZmVmZiBsZWdhY3ktdHJ1bmsKKzExNjE0IDRjYzEwOTA4ZTZmNDVmMDBmZTgyODczODhhNzAxNWRlZDlkYTMyNmYgbGVnYWN5LXRydW5rCisxMTYxNSAxMjEzNjU0MmUxNTU0OWIxZTNmZGEyM2JhNDRhYTNkYThjZTJkN2FhIGxlZ2FjeS10cnVuaworMTE2MTYgNDQ4Njg2MmQ1Y2JkZDBmYzA1ZGVmN2IxZjQ1MjE5OWY0NjdlOGQ4NCBsZWdhY3ktdHJ1bmsKKzExNjE3IDU1YzE4MTFiYjhlZmJhMjliNTMyMjNkNzJkMDhkNmM1OTUyYThjMTIgbGVnYWN5LXRydW5rCisxMTYxOCBmZGVlZjE3N2Y1MzZhZDk2Y2EyYjgwYWU1NzliNTUxZmI0MTczMzJjIGxlZ2FjeS10cnVuaworMTE2MTkgODZiNzEyOWQ4ZDA4YmQ5NzdmMDIwMzY2YmYyYTJhOWJlZTIyMThkNSBsZWdhY3ktdHJ1bmsKKzExNjIwIDE3ZDBjNTFlMDg4NzAxOTI2MTJhN2E0Mjg0YzkxYzk3NDM3ZmIzYjUgbGVnYWN5LXRydW5rCisxMTYyMSBiMTY2MzNiMjJlNmFlMTcwYjhiNzZjYmM3NjRiYjUxOGIyN2EwY2U5IGxlZ2FjeS10cnVuaworMTE2MjIgNmNkOTMzMjJiODEwYjZmNTNmYTE0NjhmZTBiZTEwMzY4NjBlNWIwMiBsZWdhY3ktdHJ1bmsKKzExNjIzIDNkMzBkZDU0NDQ1NjIxZDA3NGVkMWM2MjMyNmJjZjRkOWZhNzhlZTEgbGVnYWN5LXRydW5rCisxMTYyNCBmNDEyOWQ1MmRmYzVhZGYzZjk1YzY4YzNmN2JhYWE1MmUwNzFlNDRkIGxlZ2FjeS10cnVuaworMTE2MjUgYmE0MDA2NWUzOTlmMDQwNDEzOWRlYWYwYzNlZDVmNzcxM2Y3M2JmMiBsZWdhY3ktdHJ1bmsKKzExNjI2IDlmMTAyM2M4OGY1NzA2NTNiMDg5NDU1YWY2MjA2ZGI5ZGZlY2E1YjAgbGVnYWN5LXRydW5rCisxMTYyNyBiMGZhMmZjMTJkZmIyOGNkODUyODJjMWNiOTRkNmYyYjAwZmYwNTBlIGxlZ2FjeS10cnVuaworMTE2MjggNmNiZjA1Njk2MTIwZDA5YjE1MTZkZmQ1ZWM3YmMzM2RmYThiYzU1YiBsZWdhY3ktdHJ1bmsKKzExNjI5IGViYjAxMDg1ODc3MWFhYzdkMjk0NGZkMjRlOTI2Mjc2YjhmODc3NjAgbGVnYWN5LXRydW5rCisxMTYzMCAwNjYwYmU2ZTY3OTE0YjljZjFhNmUzYThmNGU3NzRkNjBhMWM2YWVkIGxlZ2FjeS10cnVuaworMTE2MzEgODhiMjIxMDkwMDdjMWNiOTE4ZDVlY2IyZTM1ODJkNWUzMWJiZjFhYSBsZWdhY3ktdHJ1bmsKKzExNjMyIDVhZjRiMTAyMTQ0YWU1ZDkwNGE0OTk1ZmQ5MmU0ZDc2OTQ3ZGI5ZmEgbGVnYWN5LXRydW5rCisxMTYzMyBlMWI3MTBlMzBhY2Y3M2M1YjU5YThkYjEwZGU5MzQyYjgwMWYzN2VjIGxlZ2FjeS10cnVuaworMTE2MzQgMDMyOWQ0MTllNTA2MTgyZTlhODA4ZWNlMWMzMDdlZWY3MTdkZTUyMCBsZWdhY3ktdHJ1bmsKKzExNjM1IGRlZWIzY2UyMGFjZjFhODViMTBjODYwNzBhY2IxMWI2MjljYzFmN2MgbGVnYWN5LXRydW5rCisxMTYzNiBmNWQyNjVkNWU5ZGMwMmFkYmZjYTE1Zjc2YzA2NDA3MTQyN2NmOTM5IGxlZ2FjeS10cnVuaworMTE2MzcgOGUzYjZkNmFmZTRjYzFiNTUxYzM4YmZkZTk4MzljZjI5M2QxNTU3NiBsZWdhY3ktdHJ1bmsKKzExNjM4IDg4MWI4NjM5OGMyMDQzZjVhMjMzNmU2ZGE3YzNhY2IwNzVhNTVmN2UgbGVnYWN5LXRydW5rCisxMTYzOSA5OGRjNjc1ZDA5MTNiNmIzM2JiODgwZmIxODU5Mzc4NzkxZWFhNjgwIGxlZ2FjeS10cnVuaworMTE2NDAgN2ZhYmJiYjdhZDlhN2ExZDQ3ODc3YWRlNjkwOWMxZGEyZTM0MjdiMiBsZWdhY3ktdHJ1bmsKKzExNjQxIDUyMDU4M2JkZjBiMDI5MGNlOThhMjUyOWYwOGFiMGNkOTU1MmI1YWEgbGVnYWN5LXRydW5rCisxMTY0MiBlNTc4NDM5Yjk4MWY4NTYxNDRiNDMyMzRhMmMwZTU5ZTRhYmEzODQxIGxlZ2FjeS10cnVuaworMTE2NDMgYzQ2MDIyMzY0MDllOGI5ZTA0OTg2MTAxMDBlYzMyYzNhZmI3NTBmYyBsZWdhY3ktdHJ1bmsKKzExNjQ0IDZlY2IyNDhlNjdmZjJjMGE1NDdkMTBkZDgyZDg2ZmVkOTYxMWQxN2YgbGVnYWN5LXRydW5rCisxMTY0NSBlNjAwNTUyMTZiOGY5ZmM5MDNkOTU5ODVmNGI4MDlhNzE0YjBiNmQ3IGxlZ2FjeS10cnVuaworMTE2NDYgMWMyMmNiZmI0YTFlMjA2YTdjYjAxMTk5YTViYWNhZGEyOWE2OWVmOCBsZWdhY3ktdHJ1bmsKKzExNjQ3IDRhZjg3Y2VkOWYzYWFiNmQ5ZmRjMzhhZGQ2NDM0MTRjZjNmMjg5YzQgbGVnYWN5LXRydW5rCisxMTY0OCA0ZmI0YjAwNzU1YjVlMDZkNzdlOGIwMjYzZWZjMzQwZDJjYTJlZWU3IGxlZ2FjeS10cnVuaworMTE2NDkgYTMwNzY1NmM3Nzg4OTc2YzQ0NGZkMWI1MGM3NWRhNDJhZjRiYjkwMCBsZWdhY3ktdHJ1bmsKKzExNjUwIDQ2ODMwZTVhMDM1MWZhZDBkNDEzN2RlYTNlNDU1YzYyODljMTY3ZGQgbGVnYWN5LXRydW5rCisxMTY1MSAxZThmMzEwNzQ1NDc1MTAyNzE3YTM1ZWUzOWM2MjIzZjZmMGJhMjBlIGxlZ2FjeS10cnVuaworMTE2NTIgMzUyOWJiNGNhZWZkNmUwYTVlNWRiMWNmN2MxYjZiM2M0ZDY3NzdjNCBsZWdhY3ktdHJ1bmsKKzExNjUzIGRhZjFkNjFiOTYxMWQ3YTI3MzEyOTcwMjRkY2JiZTI3ODQyNjVjODYgbGVnYWN5LXRydW5rCisxMTY1NCA5ZjcyOTFmNTUwMjZkNGQ1NWM0MjViOTNkMTFkYjIzYjBlZmYzODAwIGxlZ2FjeS10cnVuaworMTE2NTUgYjI2MzBhMjlmZWZkYjhiN2Y0NWQ4YzllOTA0NTUzZDRjYTU3NjcyMCBsZWdhY3ktdHJ1bmsKKzExNjU2IGYyYjk4Y2JjNTAzMDE4OGFhMmU0NWRhZDhlOGZhOWQ3ZWU5Yjg2ZGEgbGVnYWN5LXRydW5rCisxMTY1NyBmMGE5MmMwYTExNWVjZmNkZDU1NWYwZjE5YmMzOTY3MzhlYWUxOTA3IGxlZ2FjeS10cnVuaworMTE2NTggMWU0M2RmN2Q4YmUzZmZlNTdlMDczOGIzMGQxMzgxODI4YTAwYzgyZSBsZWdhY3ktdHJ1bmsKKzExNjU5IGUyZGFhNzgzYmQ0NzI4ZWEwZTgzMzg2MjA5NjVmMzMwY2ZkYjBhMjMgbGVnYWN5LXRydW5rCisxMTY2MCAwYTA4NWQ3MzFjMWM3OWE4ZjMyODU2OTQwY2M1MmZmZWNiMTRjMjhjIGxlZ2FjeS10cnVuaworMTE2NjEgZDA4NjQxNGFkZTZlYzQ5ZTkzNmEzOWMyOWY1MDNmMWYwY2Q4MDFhYyBsZWdhY3ktdHJ1bmsKKzExNjYyIGQzZWY0ZDEwZmI5NTRjOGU4NTEzMzQyNTBmYWM0Y2IzNWI5Y2I0MmQgbGVnYWN5LXRydW5rCisxMTY2MyA2YTU1OWRjNzhjOTEzZjhkNjY5M2U3NTQ1YjA5NmUyNjAzYWE2MjNkIGxlZ2FjeS10cnVuaworMTE2NjQgYjBiYTMxOTY3NzE5NTgyM2Q4NTBmZDcwNDA5NmJjNzZjMjMxZDZiMCBsZWdhY3ktdHJ1bmsKKzExNjY1IDc1YTgwNDdkZmMxMTAzYWZiMDFkN2FjY2VlNTMyZDA4ZTgyMGM1NTAgbGVnYWN5LXRydW5rCisxMTY2NiA2YmUzNDNkYTI5MTQ0YTM5MjA4MjdiMDc5NmI5MmY3ZWFlNmFhOTY4IGxlZ2FjeS10cnVuaworMTE2NjcgYzAwYjI3MzA4NWJlZDcwYWJiYTA3MjVjYmJiZjNmYzYyMTJmNTQ1NCBsZWdhY3ktdHJ1bmsKKzExNjY4IDNjZTUxMWJhNDI0MjI2MTMyMTA3NDIwYjdmMDcyZWZhN2Q5ZTYyMDEgbGVnYWN5LXRydW5rCisxMTY2OSA5ZmQyYmJkNDQ1NGUzNjc4YjFjZDZmMTEwNTgwZDlhOGM4MmFjMmYyIGxlZ2FjeS10cnVuaworMTE2NzAgMzJiMTk0OTFlNzBiNWE3OWQ1NTg5OWY5MTYwYTZmNjg3ZjlkMTcxYiBsZWdhY3ktdHJ1bmsKKzExNjcxIDlhODhmZTIwNGQ5NWNkODU2N2FjYzk5MjgyMzg0YjEwMzBjZGZhMGIgbGVnYWN5LXRydW5rCisxMTY3MiA2OGFhZDhlY2ZkNzBlY2FhYTk0MTVmNGMxNmQ5MGMyYjliNGI0M2Q1IGxlZ2FjeS10cnVuaworMTE2NzMgNmZjOTIwYzkwNjQwOGNjMmU2NzU5MTk5MWNjMGRlMzA0YTQ4M2E3OCBsZWdhY3ktdHJ1bmsKKzExNjc0IDk1OGUxZmFhMzhhOTEwNGZkOGI4ODY1MzE3OTg0ZjUzNTY1OTExMDQgbGVnYWN5LXRydW5rCisxMTY3NSAwNjI1Yjk5NThiMjNiZjYyYWYyODgxODUzMjBlZTBmMzNkNTY0YTI4IGxlZ2FjeS10cnVuaworMTE2NzYgNTNlZDZiY2QwNjQxZGYzN2ViMmY4ZWU4ZTZmMzUyNzA3NThhMzI0YSBsZWdhY3ktdHJ1bmsKKzExNjc3IDI1M2M5OTNlZjkzNmFkNWExZjkzYzc4NTQyZTEzMWE0NjcxNmQ0YjAgbGVnYWN5LXRydW5rCisxMTY3OCBmYTg5M2Q1NTc5NGVjZDk4NjYzODQ4ODEwMDIzOWU4ZDMxYzg2OTc1IGxlZ2FjeS10cnVuaworMTE2NzkgZTc1ZTIyOGY4Mzk1ZTdlYzUwZjZkMDU2YzE1ZmZhYjgxMDFhYzllNyBsZWdhY3ktdHJ1bmsKKzExNjgwIDhlOTUyYmRkMGZhMzcwNDc0OGIwODY2MmQxYjI4ZGFmMGI1ZWVjNDQgbGVnYWN5LXRydW5rCisxMTY4MSBmMjY0ZTU3ZDY1N2RkMzgwNjAzNTYxZDNkMWRkODAwMTBmMmM5ZTIyIGxlZ2FjeS10cnVuaworMTE2ODIgYTg2YTcxYmViZDY0MDdhMmNiOGI3YzkzOTI3YTJhMDM0NzM1ZTBlNSBsZWdhY3ktdHJ1bmsKKzExNjgzIGFhNzNkZWUyMzA5MzA3NTc3NmU0ZWIzZGRjOGE2MzQ5NTI4YjdlZTkgbGVnYWN5LXRydW5rCisxMTY4NCBlMjFkMDc5OGMwMmFhYWRlMjNlMjFkNTQ0YzMwOWI2NWQ4ODkwZDUyIGxlZ2FjeS10cnVuaworMTE2ODUgYTE2NzJlNzc1ZjMzMWVjYzM0NjU2Yjg1Y2Q5ZGFhM2RmNjRiYTBhNyBsZWdhY3ktdHJ1bmsKKzExNjg2IDVmZTRkNTk0YTBmMjE5MjQ2YmFmMjg4NTliYTMyYzliZTQ3MDZmMGIgbGVnYWN5LXRydW5rCisxMTY4NyAzZTBjODdiZGI1ODg5Njk0ODY1YjQ3ZGFkOGIxZTFlMTMwYjZmMGRlIGxlZ2FjeS10cnVuaworMTE2ODggNGZlOGE3NjcwYzBkMmEzMDg3ODIyMGI0NmM4OTFiYWQ2Y2U3NTVhZCBsZWdhY3ktdHJ1bmsKKzExNjg5IGFjNmMyOWQxZjEwYzljMmY5MDNlMDY0YTZjNTBmMWMyYmQzYTc5NTkgbGVnYWN5LXRydW5rCisxMTY5MCAwMmQ4ZjcyMTQwOWFiZjRmYWI4NDExNTNhYzM4YzRmOGJlYWU1MDg3IGxlZ2FjeS10cnVuaworMTE2OTEgNGMyMDQ1NjE1OWViZGJiMjgxMjY3ZjQ0ZmNjYmZkZTgyZDQ3ZGIzMiBsZWdhY3ktdHJ1bmsKKzExNjkyIDE5NWU3NDhjZjY5NmE2OTZmOWZkYWQ2ZTdkOGIyNmEyNmMyMDhmZmMgbGVnYWN5LXRydW5rCisxMTY5MyAzMzk4NDg0MTIxMWQ1YWMxNjAyNDcyY2E3MTdjMGQ1MzNkMDEyODg0IGxlZ2FjeS10cnVuaworMTE2OTQgNDdjY2RiN2ZiNjIzYWU5YWRmYmQyODE3NGQ1ZDM0NDNmZjg2ODZkMCBsZWdhY3ktdHJ1bmsKKzExNjk1IDU4ZWNlZDUzMDlhMDZiNzdkZWE1YzAyNjZmZDUyZjExODViOGY1ZmIgbGVnYWN5LXRydW5rCisxMTY5NiBiMjQwNDY3MjBkNTYwNDVlNDkxMzIzYzk0Njc0MDFlODM3MTc5YjBlIGxlZ2FjeS10cnVuaworMTE2OTcgZDU3OGNkNjQ3OTZkMTI2NTg1ZmEwZjk1NTlmOTZhNTg2YTFkYmQzZSBsZWdhY3ktdHJ1bmsKKzExNjk4IGViODAzZTE5MTg4N2U2ZWQyMGQ0NzQwYmJkYTkwNGE1OTk2ODU3YjcgbGVnYWN5LXRydW5rCisxMTY5OSAxNGFkMDJkMDZlMzJkODg0MjYyMWEwMTAxMGQxOGU2MjA2NjZkY2U4IGxlZ2FjeS10cnVuaworMTE3MDAgMDdkYWU2ZmRhZTc5NDEzZGY5MmJmMzIzMGY5M2VjMTc3NjkwZjQzMSBsZWdhY3ktdHJ1bmsKKzExNzAxIDg4NTA1MjY5YjQwMzdkZWVhMjgzZDdiNmNjM2ZmNzM2NTliZWFmYTAgbGVnYWN5LXRydW5rCisxMTcwMiAwODU4ZjExYzg4ZDcyNThjMTYzMzlmMTViY2I5YTViYjBkNGI2ZGFlIGxlZ2FjeS10cnVuaworMTE3MDMgYzFkYzE5ZjlhZDYwOGU2YjRiMWE4ZGE2MzE3MThmNGEyMTllNjViNCBsZWdhY3ktdHJ1bmsKKzExNzA0IDY3MDk2N2JlNmRiM2NlYjMwZGYyNzFhYzg0MTI3ZmIxNjFhZmRjNmIgbGVnYWN5LXRydW5rCisxMTcwNSA4MTQ4ZDQ0Zjk5MDNkZTJmZDhkMjJhZTlhYzJiN2NkYzBhY2I3NjJlIGxlZ2FjeS10cnVuaworMTE3MDYgZDNhZjMxMGYyMzBjYjE1NmM5NjJiODE4ZGYyODRiNWM2NDNjNjFmZCBsZWdhY3ktdHJ1bmsKKzExNzA3IDcwZTQ5ZjcxNTk1NzJmMTM3OTZhOWNkMzViMDk2OWU4MjZmNmFjNzcgbGVnYWN5LXRydW5rCisxMTcwOCBmMTcyZDQ3NGM1YTkwNGE4ZDUzMWI4YWQwMzE1NjJiZTQwNzJjZTJmIGxlZ2FjeS10cnVuaworMTE3MDkgYmUzZDg0ZmYyOWY5YTk1M2FkMDhmOTdhMWQzYTBiNzYyMGEzODY5YyBsZWdhY3ktdHJ1bmsKKzExNzEwIDg5ZDkxNmRmNDc5YjE1YjExYWM2MjNhYzc0YzM5NWJkNjE1NGMzOWQgbGVnYWN5LXRydW5rCisxMTcxMSBjMjU5YzNjNGQwY2NmOWJjMzllNjA5OWZhY2I2ZGI2OTliYzY2NzI1IGxlZ2FjeS10cnVuaworMTE3MTIgMTk5NWNkYmUzMzg0NmU0NzcwMjRlNjk2Nzk5N2NhYTM2MzQ2NmIzZiBsZWdhY3ktdHJ1bmsKKzExNzEzIDkzNjk5MTc5YTUwZjJmNGFjOTJlZmZhNGQ3ZTUzMmNiYjY3YWMzNGMgbGVnYWN5LXRydW5rCisxMTcxNCA0NGZmMWFjNTI5NWIzN2Q2ZDVkZDYyYmMxYWE3MzAzNGQ1YzhlYjI3IGxlZ2FjeS10cnVuaworMTE3MTUgYTRlODIzMzE1Njk5MDIxODNjNmFkZjRmYzgyMTM5YzdjZjAxMGY1ZCBsZWdhY3ktdHJ1bmsKKzExNzE2IDI5OTlmMWQ5MDQyOTk2Mjg5YTYwZTI1YTQ1YzkwYzY0YTgwMDAzMzIgbGVnYWN5LXRydW5rCisxMTcxNyA1NjIxY2Y5YjA5ZDYzMjBiMzZmMDUyMGVjNDM5NGZmYzQ1OGU3Y2VhIGxlZ2FjeS10cnVuaworMTE3MTggM2M5ZmVjNTdiODU4YTY0ZjA3OWVlNTg2MmNjYzc1NmE3YTI1NjYxZSBsZWdhY3ktdHJ1bmsKKzExNzE5IDk4NDhmNDIzNDNjOTk4ZjRhOTNmMTViYTlmNTlmNDY0YjZhYzQwYmYgbGVnYWN5LXRydW5rCisxMTcyMCBkYzFkNDQ1ZjIzNzE4NGQ1YzZkMTIyYjVlYzY3NjM2ZDhkOTYzNjdjIGxlZ2FjeS10cnVuaworMTE3MjEgNzNkZjI0ZjZiY2NmMzNhZGY3NDg0N2MwNTNmZTVmZWRjMmE1ZGM2OCBsZWdhY3ktdHJ1bmsKKzExNzIyIGNlOGYzY2VmNmFlZDJiZmY1YzQ0MWZmNDU5Mjg4Mjk5N2QyMzJmZTIgbGVnYWN5LXRydW5rCisxMTcyMyAyNWRhMDliNDI3YjQ3NWY0NDY1NDZmMWQxMDFlZDkzZTk3NDViN2FmIGxlZ2FjeS10cnVuaworMTE3MjQgNzk0MDBkMDc4ZjFiMDNmYzVmOTBhNjViN2EzNmM0ZGU5MGNhNTllNCBsZWdhY3ktdHJ1bmsKKzExNzI1IGEwM2M2ZmQ4MWQ0ZDZkMWFiMzQ5ZGUzMWRlYWVhMGE4ZjE3NDU3MjggbGVnYWN5LXRydW5rCisxMTcyNiAyZTM3MTJlODQ3ODFmYjEyNDY2NTFmNTVjZmRmMDU5OWE2ZWJhMWUwIGxlZ2FjeS10cnVuaworMTE3MjcgMzhjMDdiYTRiOGU0MTFmODZjYzJmNGNjNmYwMTlmMDI0MGQ5NGFiMiBsZWdhY3ktdHJ1bmsKKzExNzI4IDA4YjhkYTZkNGNhNmEwNzI5MGVjYmFiZDFiZTkzY2U1YWY1ZjA5M2UgbGVnYWN5LXRydW5rCisxMTcyOSA0YmZkMjlkNTNiOTUwYzE3YTdhMmE2ODE2MDdlMTgxNzYyMTQwM2I0IGxlZ2FjeS10cnVuaworMTE3MzAgYjE4ZDFmOTFkNjY0ODMyNDk2N2Y0NWE0YmM0ZTM3MjVlM2VlNjBlYyBsZWdhY3ktdHJ1bmsKKzExNzMxIDQxZjgzYzcyZTA5ODRjOTE3ODk3ZDFlNjgwNWMzYjA5YTMzNzE1MjYgbGVnYWN5LXRydW5rCisxMTczMiBkNzI1MmE1YjdlMWU3YWQ1ZmE4MjVmZTZhNjkyZDFiM2QwNDI1YWFkIGxlZ2FjeS10cnVuaworMTE3MzMgMzljNDEyMjBmN2VkNDZmMjM2OWM3MWM3MGNlZjVkODVlYjhjNDAyYyBsZWdhY3ktdHJ1bmsKKzExNzM0IGRkODQ0M2JkNDQ3NDBjN2E5ZjkxMmZjYmRkM2FkNjY4MjYyNTAwODggbGVnYWN5LXRydW5rCisxMTczNSA0YzRjZWM1NGJhNjM0ZGVmNDFiNDhjNTM2NTY2MWY5N2ZjMzQ1MDAxIGxlZ2FjeS10cnVuaworMTE3MzYgYjU1ZGIwOGRmZjdiZjI1OTI3YTJlNzhjYjU1OWY4ZGM5ZGNlYTMwOCBsZWdhY3ktdHJ1bmsKKzExNzM3IDIyOTQ3NWQyOTUxZjcwNTkxZTFmMDE3ZTAyZjdhNjUyY2E2YWI2NGQgbGVnYWN5LXRydW5rCisxMTczOCBlMjNlYzI0MDMxNTcyNDdiM2RkNTliOGU5ZDJmMjFmMjA0Yzg2YTdmIGxlZ2FjeS10cnVuaworMTE3MzkgNzEwZGExMGRlZTlkYjM0YTBlNGQxMTE4N2E4Zjk5NTk1MmZlMTk5YSBsZWdhY3ktdHJ1bmsKKzExNzQwIDA0ODAwMmYyN2MxZDhiY2E1YTkzYzFkYWJkOTI3NjQ0MDBkNjRhMTUgbGVnYWN5LXRydW5rCisxMTc0MSAxNTlmOWU3NDY3NTQ5NDcxMDVlN2I3OTE0NmJkMjMzZTcyM2M4NmI4IGxlZ2FjeS10cnVuaworMTE3NDIgOGE4ODVmM2E1ZjQ2YWNlNTQ1NmM2NGU3MDhhMzM2ZDdmNGU3NTljMCBsZWdhY3ktdHJ1bmsKKzExNzQzIDFjNGJhMGUyZjhlNzQzYjYxNmI5ZmQ3NTAyZTdlNjUzYjE3NmMxMGIgbGVnYWN5LXRydW5rCisxMTc0NCBiNDg3MmJjOGQ5ZWY3Mzg2MzRmMGEyNjlhYmI5MmNlZGQyNThhYjEwIGxlZ2FjeS10cnVuaworMTE3NDUgZTE5OTU0YmExYmM0MTM3ODhiMzNiNzU2ZDhhMWExZDZiMDdiNmY1NyBsZWdhY3ktdHJ1bmsKKzExNzQ2IDAyODM3NTk0MDdlMTYxZGYwMTUxOTM4NjVlMjNkNjA5ZmQ1MjhhZjAgbGVnYWN5LXRydW5rCisxMTc0NyBjYTg1ODdkMjE1ZTZmZWNhZTM4YTYzMmQ0N2VlMzZkMzU4NzYyZDQ0IGxlZ2FjeS10cnVuaworMTE3NDggNDMwMDM4ZTE2NDMzN2EzMDAxMTI5OTZiYTc5ZGFkOTllMWNhODY3NCBsZWdhY3ktdHJ1bmsKKzExNzQ5IDU5MGJkOWI0NWJmNjBkMTg3OWI0MmI2MjUyN2YxZWQ5MWFkMGFhNzUgbGVnYWN5LXRydW5rCisxMTc1MCBiZTE0OTMzOTFjNmRkM2JjN2JhZDMxN2U3YzAwYmI0MjFmM2YwNjZmIGxlZ2FjeS10cnVuaworMTE3NTEgOWQzOTNhMGY3MjdjNzU0NGE0YWQxYWJhM2ZlMjIxYzlhOGI4ZmUzOCBsZWdhY3ktdHJ1bmsKKzExNzUyIDA4MDc5OWQwY2YyYjJiZDlhNDc2MGFlNTM1NzljNzA4YWY2YjNiYTQgbGVnYWN5LXRydW5rCisxMTc1MyA4ZDE0OTA2MjkyYzY2Y2MwMDVmNDU1NWUzMWU5YzQwNmFhZDc5NzQ0IGxlZ2FjeS10cnVuaworMTE3NTQgMWUzM2E4YTU2YmNhNWI3YzYzMDg3ZjU2NWU4NmJiMzBjNTE2YzhkMiBsZWdhY3ktdHJ1bmsKKzExNzU1IDI1NzdjMGNjNzQ4MmE4ODg1NGYyMWE0MDA1NDcxNzc5MTZjMmZiNDggbGVnYWN5LXRydW5rCisxMTc1NiA2YjZiZDE0ZDc1MGI4MWI4NDRmZTI3NDQyM2I0NmQ5ZjQ1NzA0Y2Y3IGxlZ2FjeS10cnVuaworMTE3NTcgYTczY2Q3Zjk5Yjk1YmQxMmQwYTA3ODE5YzE4YjQ0Y2NmZDQ0MWY3OSBsZWdhY3ktdHJ1bmsKKzExNzU4IGFjZDgxYzMyMjdkZWI4OTY4OTkxNzdlNjBkMDY1MTkwZTdmYjcwODUgbGVnYWN5LXRydW5rCisxMTc1OSA5ZDJjMTJmMjQwZTYzNjEyZWNhYTRmODdjOGRjYTRiZDZlODk0N2I4IGxlZ2FjeS10cnVuaworMTE3NjAgNjVmMDhjYzU5NTUzNjQwNjQ5MjRmOWJjZDk1M2FlNGQ3NWVjOWNkMSBsZWdhY3ktdHJ1bmsKKzExNzYxIDg2ZGUxZmEwZmJiNzY3MmMwMmM1NjkyZjMwMmQ2NDQ4MGZkZmI1NGUgbGVnYWN5LXRydW5rCisxMTc2MiBjMTE2YmIzZTJhZDE4OGIzMTAxZDRmYWZjNGFkNDlmMmE0MTkyYThhIGxlZ2FjeS10cnVuaworMTE3NjMgYTBmMzMyNWZlZGYxOTFlN2M0ZWViYmU1NWY1YjY2OTcyYjhkNjg5YyBsZWdhY3ktdHJ1bmsKKzExNzY0IDU1MGE0NTZkOGY2MTU4NzZjODBlZTJiOTUzYjJiZGU0MmM5ZWQxNDQgbGVnYWN5LXRydW5rCisxMTc2NSBhY2VlMzU5NWU2MDNlZDJiNGI0N2Y5OWVlNDJjMTI4Y2QyMzU4MzBkIGxlZ2FjeS10cnVuaworMTE3NjYgZmJiNDUwNjBiZTAzMjQzY2Q1M2MxNzgxYmIyYmU1OThiM2Y1ZjE1NyBsZWdhY3ktdHJ1bmsKKzExNzY3IDcyNDQxMTEzMjQzYTg1ZTBhY2FjZGU5M2ZkMWZhMWE5ODM2YjExOTQgbGVnYWN5LXRydW5rCisxMTc2OCA1MGQ5ODUwY2M4YzNiMTRiMzQyZDJiMDI5MGNkOTliYzQxNjhkYWZmIGxlZ2FjeS10cnVuaworMTE3NjkgMmM2ZGQwZmE0ZWI5ODdiNmZkOTc3NDI1NzNlZmE1YThjNTI0ZTM2OCBsZWdhY3ktdHJ1bmsKKzExNzcwIDhmZWQ4Yzg1YzYxYTlhNTdhMGVjMjdlMDI3Nzg4MTI0NTA5YTMyNGEgbGVnYWN5LXRydW5rCisxMTc3MSA4NzkxNDU1NDg1ZTUyY2NkYmQzYTBmMGVmOTFkZjMyMmYzZjgyYWRlIGxlZ2FjeS10cnVuaworMTE3NzIgMmY4OGQ4YWE3MzEwOTNhN2VkZjI0MGMzZWNiNTEyNjdhOTRkY2U3YyBsZWdhY3ktdHJ1bmsKKzExNzczIGYzN2JlMGM4MjJkYzJhZDQxYWRkMGFkNDFlMTY3OGI2ZTU3ZTE2MjEgbGVnYWN5LXRydW5rCisxMTc3NCAyODRiZjk1ZGFiODBhMWY4ODA0ZDFjMjFjNjUwMzM2YWE5OWIzMzRiIGxlZ2FjeS10cnVuaworMTE3NzUgYzM5MjE4YTY4ZGYxZjM3NmQ5MTg1MWE5ZDM4ODM2NTdjYTZlY2ZhNCBsZWdhY3ktdHJ1bmsKKzExNzc2IDUzYWI4ZDBiMGQ2NDRlMTFmZDIwOTM5MGRmNGY2ZmU3OTBhNGI3ZjQgbGVnYWN5LXRydW5rCisxMTc3NyBmZTdjYmQxMzA4NmMzYTQ5MGU4M2FjNTM5YzE3MTM2NTBjZGI4YjM3IGxlZ2FjeS10cnVuaworMTE3NzggODA5ZGNjMWJiYzIxZGNkMzUzZjg4MjcxOTQyOWVkZDdmY2RhYmNiYSBsZWdhY3ktdHJ1bmsKKzExNzc5IDRiOWM0Y2U1OTk5YzkyYjdiMTUzZTQwOGIwN2MwNWIyZTk3ZDQwZDIgbGVnYWN5LXRydW5rCisxMTc4MCAwYTZlZDM4NGFmMDZhNTcyMzAzYjFhMWZlMjdkMTM3MjEzNzczNGY5IGxlZ2FjeS10cnVuaworMTE3ODEgZmFhMzFiMWMwYjU0MDU3MjliYTNmMDE3YzNiYWUyOTgxNDFkZDQ3NSBsZWdhY3ktdHJ1bmsKKzExNzgyIDUxNTZjZjhlNDI2OTFhZTVmYjExZDJhZWY4ZmYyYjQzNTQ0YTI3ZDEgbGVnYWN5LXRydW5rCisxMTc4MyBiYzUxNTA2NTJlZGNhZDcwZTZkNGQwNjY3MTMxYmVlM2ZiYTQyYjc4IGxlZ2FjeS10cnVuaworMTE3ODQgZWMzZDJiMzc1NmQ3NmQ5NWE0ODgxZmI4NTZhMmQ0NDg0M2FlOGNmOSBsZWdhY3ktdHJ1bmsKKzExNzg1IGE2Y2ZmOWMyOTBlNTI2NDVjMTMxMTBjNzY4MzBlNjM3NzQ4NzMxM2UgbGVnYWN5LXRydW5rCisxMTc4NiA1ZDM0NDcxMGZjYzNkNmEyMzc2ZGI0NmJhYWRhOTc1MzA5NmVmNTQzIGxlZ2FjeS10cnVuaworMTE3ODcgMjM0MGY2MTVkYThmNDM5NzA0NmZmNmQyN2ExM2YxNmQxZjM1ZTM5OCBsZWdhY3ktdHJ1bmsKKzExNzg4IGJjMzFkOWY2ZTBhMTRlMzYyMzE1YjNkMjU2OWM4OTA1ZTFhMzUxYWEgbGVnYWN5LXRydW5rCisxMTc4OSAwMmYzNTA0YjM5OGRmNDc2NmE1MDY2YTZlN2E2N2Q5Zjc0YjcxYjY2IGxlZ2FjeS10cnVuaworMTE3OTAgMGE2N2RiNDdlMWQwZTQ2ZWQ3Yjg2NGJlOTgxNzgxMGFiMTJmOTgwNCBsZWdhY3ktdHJ1bmsKKzExNzkxIDBkZTY2MmNlY2FjZmNhYWU5ODUwMTExMzUwOWY0NzFiN2ZhZDc3OTEgbGVnYWN5LXRydW5rCisxMTc5MiBhMWNhMDg1MTY4ZmM4MTE0MGNjMTFkZDY3ZmU3ODM4NmVkZTgyZjRiIGxlZ2FjeS10cnVuaworMTE3OTMgZDY0YjRjYzgxYmE2MmQzMzlmYjVjNTZhYThiYTQwYThjNzIyMTUxYiBsZWdhY3ktdHJ1bmsKKzExNzk0IGQyOGI0OTFmNDU1NTZhYTA1MzdkMGVlZjAzYjYyYmExNDdiN2ZiYjkgbGVnYWN5LXRydW5rCisxMTc5NSBhMjM5NzI1NWE2ZDMzZjVkMjRkNTI1ZTQ2ZDQ4YmVkMWZhZDAxMzI5IGxlZ2FjeS10cnVuaworMTE3OTYgZDY0MjAwODM0YTZiNGFmNDZjOTJhZTgwMGE5ZDcxOTcyNmNlMmVmMyBsZWdhY3ktdHJ1bmsKKzExNzk3IDY5MDM0ODI0MzgwMDFjNTgzMWQ3OWRlYzRkYzUxMjRkZTkzZDc3Y2MgbGVnYWN5LXRydW5rCisxMTc5OCA0MTQxMjhhMTViYmQ5ZjRkZTZmYTZiOWRlYjQ4YWNjZDNmODUzYTM2IGxlZ2FjeS10cnVuaworMTE3OTkgMjQxZDAxMmU4MmRjZTU4ODE4YzMzMDE4MzgwN2MzYjY5NWM4ZGMzNiBsZWdhY3ktdHJ1bmsKKzExODAwIDNiNmM3ZTcwY2FmZmY2YmRmZGY2YjcwYWE1NDY4YjkyYTdlODIxYjQgbGVnYWN5LXRydW5rCisxMTgwMSBjYzNlMTQ4MzczNzk5NjNkNWE5ODZlNjNiZjZjMjBkNjE0MDM1MGFkIGxlZ2FjeS10cnVuaworMTE4MDIgMDgzZWZhMDc2MzY2MTBmODlkODNkYzQ4MjM5YTk4OTY1NDAzOTY3ZCBsZWdhY3ktdHJ1bmsKKzExODAzIDc5NDM5ZTRlOTk3Njk1OGEwZDRjYzgzMTE0ZmNiNGNlNDU5NDlkOTggbGVnYWN5LXRydW5rCisxMTgwNCA5MjhlYTVhNDA5ZTUzNTFkNDY0NTZlYmJkM2E5YmE3YTZjMjljMDUxIGxlZ2FjeS10cnVuaworMTE4MDUgMzRlNDIwMmVkZTIwMWQ3ZDljMDQ0Y2QzMDc0YWNlZjcxZjQ0MjA3YSBsZWdhY3ktdHJ1bmsKKzExODA2IGJkOWQzOGQ2NDM2OTRlYzUyMzdiNTU5YjRhZGYyN2JhOGQzYzJhNDEgbGVnYWN5LXRydW5rCisxMTgwNyA1ZGI2NDdmZWRiYTAzM2NlY2VhMDQ0MGEyODcyY2MzYzM2NTBiOTQ4IGxlZ2FjeS10cnVuaworMTE4MDggNDhjNjE1ZDg0ZGE2NmRhYjg0MjYxZDQxN2MwMjQ3NTVlYWViYzE4MCBsZWdhY3ktdHJ1bmsKKzExODA5IDVlYTg4MzZkOTY3MDBiOTJhZWVhZjE2YjY3MDZjZDI0NTBhODg5NWEgbGVnYWN5LXRydW5rCisxMTgxMCA0NjdkZjYxZmZiZmE5NWZlZTZjMzk3NDA1MDFkMGE4M2E4MDI1ZTI5IGxlZ2FjeS10cnVuaworMTE4MTEgNDE2Yjc3YjgxMWM1YjgzMWIzOTU5ZjcyNDUxN2EzNzk4OTEyYjY2NCBsZWdhY3ktdHJ1bmsKKzExODEyIDc4NDg3ZTcwMTY4NmQ5NDFkMGJjNGJhNjY2OWFlMGJmY2M4Nzg0NmMgbGVnYWN5LXRydW5rCisxMTgxMyBmMzNiMzk0ZTVkN2ZjYmMzODU0MWViOTU4ZWY0OGRhZWE1M2FiZGVmIGxlZ2FjeS10cnVuaworMTE4MTQgMDAzYjQyYzlmMjRkMjEwODI3ZmRmYjBiMTk4YTkwMDMxNTg2MzdkMSBsZWdhY3ktdHJ1bmsKKzExODE1IDhhMjZlNTVlMThiODEyZGJhZWM1ZjEzOGFhN2E2NGRmYjJlNjczM2QgbGVnYWN5LXRydW5rCisxMTgxNiA4OTE4ZTRmNTRlY2E4ZDE2NmE0MGE0Nzk3MmFjYzIxNmQxNmQxYThlIGxlZ2FjeS10cnVuaworMTE4MTcgOGU5ZDk3OWRkZjU1MGIzMDIyNTk5NDNjNzA1NzJkZmMwM2FiOTM4ZCBsZWdhY3ktdHJ1bmsKKzExODE4IDQwZDIxYTViOTk5MDE1NmIwNDhjNzkyOThmNzc0MGQ3M2EwZDg4N2IgbGVnYWN5LXRydW5rCisxMTgxOSA4NGUyMWFjN2QzZWEzNThjZDhmNmZiNDIxMmU0OTI5ZGE0MmM4OWZmIGxlZ2FjeS10cnVuaworMTE4MjAgMTUwOTA3YzJjMmMwODI3OTczMDJjZWM0YWMzZjQ3OTIxODFmOWM2YSBsZWdhY3ktdHJ1bmsKKzExODIxIDk1OGU0ODg5ZWNhYjU2ZTM4M2U5ZDIzMWMzNmQ3YjZjNDJlZmVjZjcgbGVnYWN5LXRydW5rCisxMTgyMiBjYTZlMjI3M2ZiZjYyNzU0ODBhMDRlNTY2ZGIwMDA5ODliMDg3NjUxIGxlZ2FjeS10cnVuaworMTE4MjMgM2I5MTQzMmJhMWE0MTMxNTZiMzdmMjZiMDFlZDRlZDM4YTlkOTMzMyBsZWdhY3ktdHJ1bmsKKzExODI0IGM5MWU0ZDg3ZjY5NDY5NzE1YWY1ZTM4MjJmOTc1YjRjNGQzMzJlMTkgbGVnYWN5LXRydW5rCisxMTgyNSA4MTU3NGU0NjQ2YjQzY2FkZjE4M2MwMDg2ZDU2MmM4MjRjODBmNmRlIGxlZ2FjeS10cnVuaworMTE4MjYgN2YyNDJmMjlhNDVmYThhMDAwN2I4NDk0YmExNDBmOTM3NTI5NzdlZiBsZWdhY3ktdHJ1bmsKKzExODI3IGZkNWE0MzA5YmZkYzJkNGFmODI1NDg2YWVmZjVmZjEwMDI2OTYyZTYgbGVnYWN5LXRydW5rCisxMTgyOCA3NTIzN2NhNTZhZmYzNzU1MmI2ZGFlODAzYTY3ZTU5OGM5YzI1OGRhIGxlZ2FjeS10cnVuaworMTE4MjkgNDYyY2NkMGJiZTUwYWM2OTJmZDNkOGZiYjg1NDcwZmIwNzQxYjIxMyBsZWdhY3ktdHJ1bmsKKzExODMwIDkzNDBjYjJhZDNhODg3NGY5ZGZlZTg5ZGQ1YWNlZmIxNzhlNDNlODggbGVnYWN5LXRydW5rCisxMTgzMSBiNjA1ZjIyYTA5OWFhOWM2OTZkOGM4ZjFkZjM1MTFkYTAwOWUyMDI1IGxlZ2FjeS10cnVuaworMTE4MzIgZjRkY2I5MGFjNDE5ZjY5ZWEyMGZkOWQ3OTkyZjQwN2YwM2E5MDU1YyBsZWdhY3ktdHJ1bmsKKzExODMzIGZiMmU3ZjM4ZTFiYmU2OGFiYTg5OTlkMmU3ZDUzY2JkOTYyMjdkMjcgbGVnYWN5LXRydW5rCisxMTgzNCAwNDFmMjJhNWEzOWRkOWIxZTMyNzMwYTM3YWI3NzYwZjg1ZmNkN2U3IGxlZ2FjeS10cnVuaworMTE4MzUgYmEzMjc3Y2QzMDY4NWY1MmNjOTlkNjMxOGI1NmM5OTc2NTIyYzJkYyBsZWdhY3ktdHJ1bmsKKzExODM2IGQ3NDBjOTYxM2JiYTdhMWFkZGEyNjRhYjY2NTRlM2MyN2Q3ZGE4YjggbGVnYWN5LXRydW5rCisxMTgzNyA3MGIzMmY0MWE3ZmJmYjM4ZWU1NzI5NDYyOTE2MTg0NDA0ODNhNGQ5IGxlZ2FjeS10cnVuaworMTE4MzggNWEzZDIxMzAxYTA1MTQ1YWYxMDAyOTIzYjVhZWI2MzY5ODc5OTFkNSBsZWdhY3ktdHJ1bmsKKzExODM5IGVmNjhmMGU2MDllMTk4YWJlN2E4OGQ3Y2I0MTI3ZjdlZmQxZTBiMWMgbGVnYWN5LXRydW5rCisxMTg0MCA0Zjc4NTA0YTVmODFkYzc2YmZiODU4YTA3NGQyNzIyYTkwYTI5ZTYyIGxlZ2FjeS10cnVuaworMTE4NDEgNTBhMmQ2NDI3NmU0YjEyNmVmZTA4NTIxNjExMzQ0OWVkNDVkYjFlOSBsZWdhY3ktdHJ1bmsKKzExODQyIDIzMzYzYmI4YmQ5MGNmMTlmZTdlNDRlOWZjOGVjNzczYTlmYzUwMzMgbGVnYWN5LXRydW5rCisxMTg0MyBlMTZlMzYzZTM5MWI0MzNhMzg3MTA3YTJkY2I5NjMzOThiZjgwOTMxIGxlZ2FjeS10cnVuaworMTE4NDQgYmM5YWVhNzE4ZTRlMzJlM2Q3MWI5YjMzZmI0NTcwZTljZDIzMWMwZiBsZWdhY3ktdHJ1bmsKKzExODQ1IDY2OTA4MzhiYThkYTYwZTRmNWM0ZjAxODZlZTJmYTI0MTZlNDdiMzUgbGVnYWN5LXRydW5rCisxMTg0NiBiZjg5ZjE0MzViNzI4Y2QwZWUzYmRlMzhlOGQwMDg2YjYyZTAwZjJiIGxlZ2FjeS10cnVuaworMTE4NDcgNDQyMmJhMzg5ZTQxNTcwYjcyODBlOTYzODY1MjA5YjMxNWE5MjIwYSBsZWdhY3ktdHJ1bmsKKzExODQ4IGZkYzNjNDU5ZWQwMGFmYzI4MTRmMDc5ZGQ1Yjg2ZTFkNTk0ZWEwNWMgbGVnYWN5LXRydW5rCisxMTg0OSBjZDE5YTdkYjg3MzU2Y2ZkY2NkNzA2MmVlZDZiYmVjOWEyNDkwNGRiIGxlZ2FjeS10cnVuaworMTE4NTAgNjViMDg4MmE0NGFiY2Q5YWQ2YzVhMmIxZjg4NTkzNTI5ODBjMmRhZSBsZWdhY3ktdHJ1bmsKKzExODUxIDYxZjQ1ZGQ3YzQzYTUzMDQ2ODhjMzQ2ZmVlYzE4MmE1NTg5NGFkYTMgbGVnYWN5LXRydW5rCisxMTg1MiA2YjVmN2U5YTMxY2I5ZTZlMDM3NTM3ZjRkMTZhMWFhMGU0MDFjNzA1IGxlZ2FjeS10cnVuaworMTE4NTMgZjBhM2MxZmM3YjkwMjRlZmZjM2Q5MTlhNzlkNTBmZmNiODE0Nzc3YSBsZWdhY3ktdHJ1bmsKKzExODU0IDZiODg5ZTRjMDc1NGUwMjA5MTRkYmI3N2Q3MDcyZmQzZWZiMDdjNzggbGVnYWN5LXRydW5rCisxMTg1NSAyZmU3YmJlNzFkZDhjMGEwMmIxZWRkMTg3MGJmNTQ0OWQwMTU2YzQ3IGxlZ2FjeS10cnVuaworMTE4NTYgZDFlYWRhOWJiYzNjN2EyN2Q4M2NiOGY2MGFmZDI1NTE5MTU4ZjIxMCBsZWdhY3ktdHJ1bmsKKzExODU3IDRjMjNhZTZjNmU4MmM2MWNlYzdhYTlkNThmMTNkYjk5YTY0OTcyNjAgbGVnYWN5LXRydW5rCisxMTg1OCBiMTAwNGI0N2JhYzBlNzI5NmY1ZDE1YjJhZmUxNjUxZDEyODBhNzIwIGxlZ2FjeS10cnVuaworMTE4NTkgNTBlMDYzMWNmMTE3Mjk4ZGQwYTEzOGFkM2Q1NGFjMWEyZWNkOTNlNyBsZWdhY3ktdHJ1bmsKKzExODYwIGYzNTFjNjRjODJlZGI4NjQ4NjU1MmFmOWIyOTdlM2VhYWY0NTNhYmEgbGVnYWN5LXRydW5rCisxMTg2MSA5ZjEzNWIzZDlhNzgzMTVkOWIzMWU2ZWQzOGJkMzczNzllYWYzNzgxIGxlZ2FjeS10cnVuaworMTE4NjIgYzgwMzIxYzMyOGI1ZDBkOWI0MDFkMzQ1YjdkZmMxN2RiM2RkNTczMSBsZWdhY3ktdHJ1bmsKKzExODYzIDk4MWRkMjBiYzcxMTYyYmYwM2M4OTYwNWJkODJhOWQzNDMwZGZiYjAgbGVnYWN5LXRydW5rCisxMTg2NCBmNjgxOWI5MjZmYjJjNjYxMzFiZTZmMmFmODkxZmI2YjkwZDEwNjE2IGxlZ2FjeS10cnVuaworMTE4NjUgZjA0Mjg4Y2NmNzdiN2IzMmJjYzUzZGYyOWEwODc3MjRkZWE0ODhkMSBsZWdhY3ktdHJ1bmsKKzExODY2IGE2ODA4YmNmOGFjMjliNGNiNWIxOWZiNjExZDM1MDM1YmJkZjgwMzQgbGVnYWN5LXRydW5rCisxMTg2NyA3YzNiZWEwMTE4OTU4ZWEzNjM0NzEyMWExNDQ2MmU4YTk3MWZjODI5IGxlZ2FjeS10cnVuaworMTE4NjggMTA2ZmFmMzY2ZTNmMDdlZmExMWM4YTc4YzllNGI1OWJkZmE1ZTNlNSBsZWdhY3ktdHJ1bmsKKzExODY5IDZmZjA5NDhmZjk1MWM3YWJjODU0NGE4Y2M4ZmI0YzVlZWVjNjQ5OTIgbGVnYWN5LXRydW5rCisxMTg3MCAyMjlmNzNmMmM4NzhmZTNkMjE0OWYwM2EzZjc1ZmNjYWIwZWZjYjU1IGxlZ2FjeS10cnVuaworMTE4NzEgNDgwNTY3MzEwMTk0Y2EwNzY1Njk4MWEyNTFiZjMwZjM0ZDU0Yjk5YSBsZWdhY3ktdHJ1bmsKKzExODcyIDliZjQwZWYyMjdjOTJiNmI0NGM5NmRiZjUyYjM1YzgwNTM3YmU5YTIgbGVnYWN5LXRydW5rCisxMTg3MyA0MmEwN2JlZjYwZTAyYzczYTkzMDA1ZTM2ODM0MDZmZjg2NTkxY2FkIGxlZ2FjeS10cnVuaworMTE4NzQgYTRiNGJhNWM0YWEyMTFiNjdmNjNjN2Q2NDQ0MTMxYzY3YTUxODQ0MyBsZWdhY3ktdHJ1bmsKKzExODc1IGUxODAyNzEzMGJiZTIwZDM0ZTYyZmU2ZTdlZTNlYmQ0NGQ2ZWMwNTIgbGVnYWN5LXRydW5rCisxMTg3NiBiZmE3ZWQwYjFhNmJkMjBlNDQyMGU1MzRkMGZlYWNiNDBlZTNkZjZlIGxlZ2FjeS10cnVuaworMTE4NzcgMDliNWNiNDc1OTJkNDRhYmU3ODRmYTI5NzVhNjZmYWNkZjEwNmRkZSBsZWdhY3ktdHJ1bmsKKzExODc4IGFmZTUwYjY2MTU0OGM4ZDI3NzNkNzVmZTg1Mzc5NzRmNmM4ZmIzZDAgbGVnYWN5LXRydW5rCisxMTg3OSA4YTM0OTMwOWZkZjQzMzE5MGRkNjBjMzYxODhiYzYzY2Y3NWEzYTQzIGxlZ2FjeS10cnVuaworMTE4ODAgMmIzNDQ2MWJhNGEzYWNlYTY2OGJkYjVjMWM3MjdhNDMzZDM3MmUwZSBsZWdhY3ktdHJ1bmsKKzExODgxIDY0Y2ExMTU2ZWRmMTkwNjc2OTQzMzZmZjlkMDNjZTA2YTNiY2Y4ZDQgbGVnYWN5LXRydW5rCisxMTg4MiAwMGIwNmNjNWI5ZGExNzgxMTRjNWY0M2NlYmI0YWZkZjU2Mjg0N2U3IGxlZ2FjeS10cnVuaworMTE4ODMgZjVkMzk3NGQyMDlmMzNiOTJmMTMzZWY2NWQyZTQwZDAyNGRmZjZkMCBsZWdhY3ktdHJ1bmsKKzExODg0IGYxMGM2YTc0MzhmNWNlMTM5YzFiMTM2YmQxNTA5ODU3ZTc2ZGI1MGIgbGVnYWN5LXRydW5rCisxMTg4NSA5ZGQ2ZjQyOTY0NzlmYmY3Y2E3NDUxOWE4YjU3YzM4OTA1MmE1YzlhIGxlZ2FjeS10cnVuaworMTE4ODYgNmNlMGNlNGVhM2MxODQ3ZDVlY2FjMGZkYWY5NmU0Mjc5NDc4NWJkYyBsZWdhY3ktdHJ1bmsKKzExODg3IGE5YWU5OWY5MjE1NDAxODc2MzlkNmE5ZGNiMWVkN2RiNWUwZDljYWQgbGVnYWN5LXRydW5rCisxMTg4OCAyMTFjOWUyODM0NjZmNmU1YjJiYzQ4ZWIyMWY5MjYxY2M0Njk5NjkxIGxlZ2FjeS10cnVuaworMTE4ODkgM2Q5YTBhM2U1OTZiMjhhYmM5M2Y5ZTgzOWE5NzcwOTg3NmU3NGNiYSBsZWdhY3ktdHJ1bmsKKzExODg5IDIxZDcxZjJlMjcyNDhhMGY0ZTM5M2QwZmMzMjFlY2Y5Yjg5MzIxZDIgbGVnYWN5LXRydW5rCisxMTg5MSAwOTRjMzg1YjU2MjQzMTM2YjU5MzJlNTEzMjRkMGViNTRkM2IyNjMzIGxlZ2FjeS10cnVuaworMTE4OTIgOTdhNTQzYmY5ZjlhNjQ0MDFlNTg5ZTNlNGExODlmOTIxOWJlNTE1ZSBsZWdhY3ktdHJ1bmsKKzExODkzIDg3YzgyNWVmNzg3OGRhNmUzNmQ1YzM2NTUyZmYwZjljNTczMjkwOWUgbGVnYWN5LXRydW5rCisxMTg5NCA4Y2IzODhlNzFkZDkwNTA3NWU1ZDVkZjQ4NDQyOWZjYTE3YWZiYmZiIGxlZ2FjeS10cnVuaworMTE4OTUgYjA0NjVhZWIwZWZjZTMwMzBhNjFlNjAxOThhNmI4ODMyNWE3YmE1MCBsZWdhY3ktdHJ1bmsKKzExODk2IGMxOWU5YWMyYjBjOGM5OTc4YjMzNDMyMWI4ZDhiYzJmNjZjZmRkYTMgbGVnYWN5LXRydW5rCisxMTg5NyAzYmZmNjczNjliMTEwODU5ZmU5N2U0ZDQ2YzgyMGQzMTY3ZDRhNGM0IGxlZ2FjeS10cnVuaworMTE4OTggZjM2NzA5MjViMDk4Yzk2NjY3NGQzOWVjYTNlMjJjY2JmMTQ3NjRkYyBsZWdhY3ktdHJ1bmsKKzExODk5IDljY2FlY2QzZGVhMzJiZTY2NDg3MmZkNDk3ZmNkNDBlMzkwNTczZTkgbGVnYWN5LXRydW5rCisxMTkwMCA1OGEzNWU1ZDEzY2M2MjcxNjI0NWZhMTBhNjUyOWExZDQ1MTVkYjZmIGxlZ2FjeS10cnVuaworMTE5MDEgZjUwYjljYzc2YzFlNmQ5MTczNTk5MTdmYjc0MzE2NDRmMWFiMmM3NCBsZWdhY3ktdHJ1bmsKKzExOTAyIDM4ODYxNjVkYmE0MjY3OGM1MmRkZWMwMjUxNzZmN2Y5ZWM5ODZjNjMgbGVnYWN5LXRydW5rCisxMTkwMyA2M2VjZjdhNGMwNzBlYzliMzMwY2VhZDFkMzcyNGY3NGQ1ZGQ0MjU4IGxlZ2FjeS10cnVuaworMTE5MDQgZWU5OTJiMzEyMGQzYWVjZTVmYTM5NjEwYTQyZmUyNWQyNzQ1ZWJhZiBsZWdhY3ktdHJ1bmsKKzExOTA1IDlmOWRhMDE4OWI3YjRkZWUxMzQxZWYxZWVlNDQyNzhhZjNlMWU0NWEgbGVnYWN5LXRydW5rCisxMTkwNiA0NGM1NDY4ZjhkMzY0NTM1NjE3YzNiNWI4MjBhNjAxZDExODE0ZjAwIGxlZ2FjeS10cnVuaworMTE5MDcgNjIwZTAyMjUwYzgwYmM2MDkzMzYyNWJmMzI5NDA1NDg0YzY5NjQ2MSBsZWdhY3ktdHJ1bmsKKzExOTA4IGZiY2E0ODYzMjdjZTFjMTRiMDk4YWUxNTU3ZTAxOTdkOTNlYmUyZTQgbGVnYWN5LXRydW5rCisxMTkwOSAwMzc5ZWI3YmUzMjNlOGU3OWIxMTQxNWNlNDJkNjA1ZmQwMDc3MjMzIGxlZ2FjeS10cnVuaworMTE5MTAgZTcyNTRlMmYyZGMxY2QxMWYyNzVhMTYzYjNjODMyMjQ4NDI0MjhmYyBsZWdhY3ktdHJ1bmsKKzExOTExIGMwM2ZmZmYzODdmOGJkZDQyNDUzYjFmOTlkNDAyMmEwNTBiY2MyMzQgbGVnYWN5LXRydW5rCisxMTkxMiA3YmE3ZmJlYjg4ZWMzYWRlZjI1ZGVhYzZiMzZkMWMyYTMxN2E2MWY3IGxlZ2FjeS10cnVuaworMTE5MTMgMDEyOTk3YjlmMWViZDEyNjU3NmJiZTExZGQyOTdjZDU0NmQxY2FiZCBsZWdhY3ktdHJ1bmsKKzExOTE0IGU2ZWEyYmM5NzRlMjZmYmJmMzc0MTUwNTU2MTkyY2Y1NDk0ZDZiNWQgbGVnYWN5LXRydW5rCisxMTkxNSBmNmY4NmIzN2YxZmMzYjlhNGUwYzE1NTg5YmIyY2I5YWI5ODg4NjlkIGxlZ2FjeS10cnVuaworMTE5MTYgM2I4YjMxZDJjOWNhMzExZmU3MmYzNmRiMWU2Y2IxODU2NjIwZTJkYSBsZWdhY3ktdHJ1bmsKKzExOTE3IDhlNGZkYjBiMGJiOGU1OThlNGE5YWVjNWM0YzY5MTc2YWYyNWYzZTQgbGVnYWN5LXRydW5rCisxMTkxOCAwMmIwYjg0ZGQ1NDVlN2JhNWViNjdiZTkwOGJhNWZiZjc2NTA3MTQ5IGxlZ2FjeS10cnVuaworMTE5MTkgMWE1OWYzNjU0YmMxMTNhMzk5NjAxNzZjNTZjYjVhY2JkMGU1OWRlMCBsZWdhY3ktdHJ1bmsKKzExOTIwIGUxODA2YjI4MGY1MzkzY2RkYWYzYzUxYTQ1NjdkZjk0NzY4ZmY0N2MgbGVnYWN5LXRydW5rCisxMTkyMSA3ZjhmNjA4YWNkYmNkMzcwYTdjMTQyMzMwZDM3M2RmNmFjYjJiY2FlIGxlZ2FjeS10cnVuaworMTE5MjIgNzkyY2Q3YzVmZDg4YWQ2N2Q0MTQ0NDhkNTY3MDNjYWViOTQ2NTVkZiBsZWdhY3ktdHJ1bmsKKzExOTIzIDkwZmJlYzQzNDNkZWM2MmZlYmJmZjc3Yzc2NmU1YjY1Y2M3Nzk4MzMgbGVnYWN5LXRydW5rCisxMTkyNCA3NTY3ZWY0MGRlNzdjYjdiZTk1YTk2NGQxMGYzNTBkMTVjODE0MDZjIGxlZ2FjeS10cnVuaworMTE5MjUgMWM5NGYzNGI0OWUzZjc0YzM1YTA4NTc2NGM0YTk4N2ViYjM2YzJhYSBsZWdhY3ktdHJ1bmsKKzExOTI2IDMzN2FlMTJkODA1MDA3YWQxYzZkZmFjNmFkN2RhYzJiNDU1MTg0NGUgbGVnYWN5LXRydW5rCisxMTkyNyAyMmMzMmRkNjNmZjVkNzdjZDc0MWRkMTdkOTIwZWQwNzcxNTlkM2FlIGxlZ2FjeS10cnVuaworMTE5MjggODdiOTU1NGM1MWQ0YmE2ZWE1NzgwOTIzMDk0ZGJhMzViZDJkZDgxNCBsZWdhY3ktdHJ1bmsKKzExOTI5IGVkZjc1NTNmYjIwZWZlZGVmOWI5MDE5ZDA0Mzk3NGZlNzFiZDU5YzEgbGVnYWN5LXRydW5rCisxMTkzMCA5ZWE1YzQyZGNiZWRiNWMzZTE2NTY0ZjYwMjE5MzBmMjg0MDM0ZjY1IGxlZ2FjeS10cnVuaworMTE5MzEgNGY2ZjczMGQyNTU2ZGJlOTMxZTBlYWI4NzBiNjcyMDgyNmExYWRiZCBsZWdhY3ktdHJ1bmsKKzExOTMyIDYzZmU4NTczNWJkY2Q5NTRkMWEwZjQ0NWJkN2E0NGNhMjEyM2Y0YjMgbGVnYWN5LXRydW5rCisxMTkzMyA0OTYyM2RhM2M2M2YzZjUyZTJkNTc3OWFhMmQ0M2VkMmFjZWU0YjQ1IGxlZ2FjeS10cnVuaworMTE5MzQgYzYzNjY4OTNjZWUxZDk3NjBiNTM2MTZlMzhhYjc3MjBmNzVlYTc3YiBsZWdhY3ktdHJ1bmsKKzExOTM1IGNlYjg3ODc5NjEwODE2OTEzOWQ0ZDM3MWIyOGY2YmFmOThjZDY4MzYgbGVnYWN5LXRydW5rCisxMTkzNiBlMWMzMzA5NDMyMjFlNWQ5OWRmMjNhNDJhMDk1ZDJjYmQ1MDZlMjA1IGxlZ2FjeS10cnVuaworMTE5MzcgZjhkZGQyMzQwMzk4ODlkOWNmZmY5NWM3ZDBhMjFhMGNhYWUyZjE1ZiBsZWdhY3ktdHJ1bmsKKzExOTM4IDkxM2ViMzFiMDMxNzIyMTI2NTFlN2NhYTg0ZDA4YzVmNGJiZGU4MGIgbGVnYWN5LXRydW5rCisxMTkzOSAwZmVhNWQ1YzRmZDlkYThkNzgzMTQ3NjkxNTIzNGUyNGI4NGFmNDE1IGxlZ2FjeS10cnVuaworMTE5NDAgNTYyMTdlYWJjMDdhYjRkNWM1OTgzMmEzMjBhN2M5N2U0ZTUyODY1MiBsZWdhY3ktdHJ1bmsKKzExOTQxIDRiZDUxMjhlNWVkNDM0NGVkMWIxNzg2MGE3NmZjNjBiNDdlYTUyOWEgbGVnYWN5LXRydW5rCisxMTk0MiAxODgwZWFkMzIwMGNkNDVmZTJhOTFlZGQ5ZWNiYjYyNzc2ZjgxMTAzIGxlZ2FjeS10cnVuaworMTE5NDMgNDFjODg0ZGZhZDVlZjRiOTk3ZjZjNjVhYjc0ZjQxMGNiZmQzMzk3NSBsZWdhY3ktdHJ1bmsKKzExOTQ0IDI1YjY5MjlmZmIxM2RlMDA1YTg4NjE4ZjBhNzUzYjUzNWFkM2FiMTggbGVnYWN5LXRydW5rCisxMTk0NSBmMjQyY2QxMGUxNmEyNDhlZWNmZjE2NzU0MDg4OTQ4MGUzMjlhZDljIGxlZ2FjeS10cnVuaworMTE5NDYgZDM5MzlhZDM4MTc2NmFhMzAxOWQ2ZjA2NTMzMzY0YjU4YTg4ODMxOCBsZWdhY3ktdHJ1bmsKKzExOTQ3IGRhNzFhYTFiZTE5MWMwMWMzZTg1ZDc5NDg5YjViMjk4YWU0MWM0N2UgbGVnYWN5LXRydW5rCisxMTk0OCBiMzRmOWU3ZTI2OTE0NjU0ZDQ4NjNjNjdiZjQ4N2U2MDA2Yzk4NmMxIGxlZ2FjeS10cnVuaworMTE5NDkgNGQzZTJmMWQwYWU0N2VkYjc1ZWMxMzE3MmJkMTA3NmJhNTBlNTMwNiBsZWdhY3ktdHJ1bmsKKzExOTUwIDhiYzBhMzJkZGFiNWEyMmJiOTZlMjc3MDg4ZjJkMmNhNjZiNjUyMjYgbGVnYWN5LXRydW5rCisxMTk1MSBlNTk5NjI3OWY1OGM3YjMzMWNhMDgzMzM2ZTFlMTU0NjVlZWY0NDc0IGxlZ2FjeS10cnVuaworMTE5NTIgMTdiY2E0YjNkYTkzNTdjZjlkZDlkYjk1NDA1ODk4OWU4ZGFiMWU1MyBsZWdhY3ktdHJ1bmsKKzExOTUzIDFhZmRjNTU4MDE1NzhjZjFjYTU2NzJkMDNjNWUwYjZiODg0OWEyMDMgbGVnYWN5LXRydW5rCisxMTk1NCA1NDQyMmI0NmY2ZDE4MDJjYzkzYzQ3OWYyMjc4MzY3ZmY0ZWI4ODk0IGxlZ2FjeS10cnVuaworMTE5NTUgZTdkOTg0ZjI2NmNjNjFmNmU2YWZmOTZjODRlYjRlMmMyMmQxMjM5YSBsZWdhY3ktdHJ1bmsKKzExOTU2IDYyZTFiY2M2NmE5M2U0MjU1OTU5YTdjMTgyZDYwY2E1ZGUwOThjNzUgbGVnYWN5LXRydW5rCisxMTk1NyA0ZmE4ODEwZTg1Y2FjZjVjZjBlMmRlYTA0YmZiZmNhM2QzMWNlZGUwIGxlZ2FjeS10cnVuaworMTE5NTggOWZmZDYwNDgwN2MyMTY3M2RhMzBiMTQwOTQ4MjhkYTQzOTExZDRhMSBsZWdhY3ktdHJ1bmsKKzExOTU5IDhkYzBlOTdhNDVlYzc1MjA4YzUyYTFkYzA2NjU3NGI5MmZlYTc1NzQgbGVnYWN5LXRydW5rCisxMTk2MCA3OThiMTA0MWQyNjA2ZjA5NDZlOWM1NGZiMGM0MzFmZDhjNDdjODkyIGxlZ2FjeS10cnVuaworMTE5NjEgYTExNWMzZDQ5MmRiMDgzNDc0Y2NiOTk5YTAwMTMyNmJhOTJmYzY4MSBsZWdhY3ktdHJ1bmsKKzExOTYyIDRkZTA5ZWExMGVlMDhlMDIwYjBlMzY0ZWQ3Njk5MTViOGZlMGFmMjUgbGVnYWN5LXRydW5rCisxMTk2MyA2YTI0NGU2NGIzZTZiMmVjMDc2OTRiZmU5YWNhYjQ0ODU0NTYxZDQzIGxlZ2FjeS10cnVuaworMTE5NjQgZmViNmMzODZhYjc3MjY1ODNlNGYwODMzYWMyN2M3NTYyODJlZjVhYSBsZWdhY3ktdHJ1bmsKKzExOTY1IGQwN2JjOGJmMmQ4NDU5M2VmNzkxMDNlODIyZWUxZTNjZjdhYTU4YjcgbGVnYWN5LXRydW5rCisxMTk2NiAxYWJkOTFmOTcwMzMyNWM3NDM0MTU0ZTliNzJmNTE2ZWYwMjlhMzg0IGxlZ2FjeS10cnVuaworMTE5NjcgYzIxODE1ZmEwNzc4ODY2NTA2MTY3NjI0Mjk4YzY0NDZiMTY1YTMwYyBsZWdhY3ktdHJ1bmsKKzExOTY4IGRlMDA5MzE2OTY0OWJiMzBmNmY4YWVmZTMwOGUyNDM4Yjg3NWQwNGQgbGVnYWN5LXRydW5rCisxMTk2OSBhYmYyY2QyNTFiMjRhOWM0OTFmMzg4YmI5ZDkxZmJkODQ2ZmJhNjc4IGxlZ2FjeS10cnVuaworMTE5NzAgM2Y3MTczNDJmMGEzNmRlOTFkNmRjZjMyZDE5NTdkMjAyNjMyNmY1YSBsZWdhY3ktdHJ1bmsKKzExOTcxIGMxZmQ4MTQ2ZjJlOWE3OWM3N2U1ODc3YWJhY2IxNjIwNTI5MTYzNTUgbGVnYWN5LXRydW5rCisxMTk3MiBmODllYTliZjlhNTI1ZDk4MzJkOGQyMWQyNzcwODE2ZWQyNzQ2OWVhIGxlZ2FjeS10cnVuaworMTE5NzMgMWVhNmQyMzU2ZTUyZGE0MGY5NDdiZDIyOTZiZjcxYWMwOWRmODk3MiBsZWdhY3ktdHJ1bmsKKzExOTc0IGFmYTBjZDIxN2Y0ZWJhNzJkYjQxYzE2NWEzMmFiZTJjZDY5Y2YyMzYgbGVnYWN5LXRydW5rCisxMTk3NSBmNmE4NGExYzdlMDJjZmIyYWVmYzIyMzA4YmNjNGE4OTJmZWMzYzE1IGxlZ2FjeS10cnVuaworMTE5NzYgMzlmZmM1OTY3YjZiYWNiMjQ0N2IwNjQzNDI1NzMxMzM0YTY5YThhMyBsZWdhY3ktdHJ1bmsKKzExOTc3IDRhYmNiMzJmN2VmNTRhMzMyZGM0ZGViM2I0ODAzMGQxM2JlOTAyZGEgbGVnYWN5LXRydW5rCisxMTk3OCBlMWU5YzlkZjRmMTJjOGY1MDFkNmMxMDdiYmQ5MTk4YzUzYjI3N2MzIGxlZ2FjeS10cnVuaworMTE5NzkgNjM4NzZjZDk5ODRjOTI2ODFkZmE4MzRiYThlZjM2N2Q1ODQ2ODY5NCBsZWdhY3ktdHJ1bmsKKzExOTgwIDI1YmUwMGYzMWRhNjE1ZDQzNmVlNTkzZjBiOGMzZTBmNjI3YzYxODEgbGVnYWN5LXRydW5rCisxMTk4MiBkODQ3MTU1MjMwOTVhYzI3ZjdiMzk5Mjk2OGIxYzFmMjZlOWZlYTE4IGxlZ2FjeS10cnVuaworMTE5ODMgNmU2YmU4OTZlYzQ2NmU5NDRiMzlkMzY5M2M4OGQzOWJhNjFjNjg5OSBsZWdhY3ktdHJ1bmsKKzExOTg0IGQzOTI4Yjk4ZTJlMTNlOTIzOGMzMTUzNGU2NTFmM2I3M2I1YjAzNGUgbGVnYWN5LXRydW5rCisxMTk4NSA4ZjNlN2ZlMWQ0Zjc2M2MwYWY1MTE0ZjNhZTVjOTYyNmE3ZTM3Y2QxIGxlZ2FjeS10cnVuaworMTE5ODYgYjBjYTJjYTU4NmIxNThiMWQ0YzEwODI4NjljNTEyOWFiM2RjNzYyMCBsZWdhY3ktdHJ1bmsKKzExOTg3IGRiN2NjYTA5YmVhZmU3YjdjMjIxZTgxM2RiMmRlOGQ0NGNhYWZiODQgbGVnYWN5LXRydW5rCisxMTk4OCBiNzVkOTNlYzhlNWE2ZjdmMWIzZTExM2NmOWYyYjA3ZDMxODE4NjQxIGxlZ2FjeS10cnVuaworMTE5ODkgYTNiY2YxYjM2NTUxN2I1NGE5OWZmN2ZkMjgxMGM3MDBjNjZkZDdiOCBsZWdhY3ktdHJ1bmsKKzExOTkwIDk2NDdjNmFkNmE1MDk4Y2U4OTVhZTJkNzI3YjlhYThlMjQ2M2RlMWQgbGVnYWN5LXRydW5rCisxMTk5MSAxODE1MDdjYzFhNzI1OTVhNWYwMDU1NmFhODI3Nzg4MmJkY2VmYzI4IGxlZ2FjeS10cnVuaworMTE5OTIgNTQ5ODMxNzIzZWY4NTc4YTFhYTJmMTFjZmRlM2ExOTU3NmZmZTlhZiBsZWdhY3ktdHJ1bmsKKzExOTkzIGVhYmViYzE2MTUxODZiMWUyZTRmNmRiMzMxN2U2NTAyMmVjZjIxMDMgbGVnYWN5LXRydW5rCisxMTk5NCA1ZDgxZTQyYzZiYTJlOGUwNTk4ODI4MTA0MzIyZWM3N2RkNmI1ZjlkIGxlZ2FjeS10cnVuaworMTE5OTUgOTZjNzM0YWNmODRmNTVjZjkwM2Q1ZWE3OTZiMmZkOGNiOTU2NGE3NiBsZWdhY3ktdHJ1bmsKKzExOTk2IDc2ZTkzNTkyNGZhZTBiNDhjNzg1MWIyOWE3MWNmYzZjYmNhNTJlYTEgbGVnYWN5LXRydW5rCisxMTk5NyA2M2ExYTg1MTNjMWRjZTcwZmVmZTczNzc0MTY1MjRmNGJmZWZhMzRmIGxlZ2FjeS10cnVuaworMTE5OTggNDQzMWU3YTMxOTc3NWJiNmVkYjQ2YjEyYWQ1NzA3M2I1ZjkyMGUxOSBsZWdhY3ktdHJ1bmsKKzExOTk5IDM3Nzc3ZTBmODBlMzc1NTRlZDJiMDdkY2VhNWM5NDBmMjUwYWI1ZWIgbGVnYWN5LXRydW5rCisxMjAwMCA2MGRmYTIxMWRkZThiYWQ2NDg0ZDhhZTE0NDU0NzEzYjQwMjVkMTk2IGxlZ2FjeS10cnVuaworMTIwMDEgZmVjODYyMzAxZDZlMzNjZWFhMmRkNGIxMWM0NDJjYjU1MjMwN2NjZSBsZWdhY3ktdHJ1bmsKKzEyMDAyIGY1OTY1MThkMDY5MWUwMjViY2FlNmNlNzQ3YzgxNzE2MWRiY2RjZjUgbGVnYWN5LXRydW5rCisxMjAwMyAyNDQ5NzY0M2RjYzkxZDE0ZGY2NTJhZWM4NjE4OGZjZjM1OTk4ODlhIGxlZ2FjeS10cnVuaworMTIwMDQgMDQ0MjYyMjQzMDJhYWRhZTRhMjM3NDRjNTFjZDM5YThjNTE4YjgxMCBsZWdhY3ktdHJ1bmsKKzEyMDA1IGNkNzkwMzEwYmM0ZjA2ZjJhMzEwNTQxMjA2NGZjMTJmZDY2ZDcxYTggbGVnYWN5LXRydW5rCisxMjAwNiA2MGQ5OTBmN2Q3YWI1NmFmYzU5YzU1MjhkNGM4N2RmMzczY2Q1NjYwIGxlZ2FjeS10cnVuaworMTIwMDcgNGE3MzQ0ZDU1YWUxODc5NTI4ZDBhODYzYzM1MThlZjYwYzdhNDIwNiBsZWdhY3ktdHJ1bmsKKzEyMDA4IDg1NDQ0YWYyYmU5NWQwNTViMTIzMzYwNWNmMmFkY2MzYjUyNGZmZmIgbGVnYWN5LXRydW5rCisxMjAwOSBiYmU5MjkzMmEwMDVlNTdlMjI4Y2VjMTQyZGE2MWJiOWRlNWZiZjUzIGxlZ2FjeS10cnVuaworMTIwMTAgYTJlODNiZGMxZmVhZWY3M2JhNTk2YWUxZTRjNDYxY2FkNjcxYzdjNiBsZWdhY3ktdHJ1bmsKKzEyMDExIDM1MGYyNDE4MGRjYjQyMmExNGQ3ZjZlYmEwOGIwZDRlZmEwYTRmZDggbGVnYWN5LXRydW5rCisxMjAxMiBhMTI2MTA3YzQzM2E2ZjlhMDdjN2QzNmFkODk5Y2Y5NTVkNGYwMjRlIGxlZ2FjeS10cnVuaworMTIwMTMgOTgzZjUzZjJiNmY2ODNjYjRmYWY5YTBiN2NkYjZhYTYxZmJiNWM0MiBsZWdhY3ktdHJ1bmsKKzEyMDE0IDU4ZjZkYTdjOGJiODk0MjE0YWYzOWY0ZWUxMmM2NWVhMGFmOGRiYjAgbGVnYWN5LXRydW5rCisxMjAxNSBmZTc4Mzk4NGY5MmVhM2EyNDg4OWFmNTRmMmM0ZTBmZTA1YWFhZTdmIGxlZ2FjeS10cnVuaworMTIwMTYgMjMwOTI1ZmU1YjJkZTlkZDZiMzZiMjFlYzAwYmE3MDU4NzhmM2IzZiBsZWdhY3ktdHJ1bmsKKzEyMDE3IDVhZTFhMjBiYmU3MWViNTY5ZTYyMTFjNGQ0YWNjZDlkNjJkNjJiYzEgbGVnYWN5LXRydW5rCisxMjAxOCAzMTVjYzA2YTgxNjE1NDdkZDQ5ZGU5ZjJiMTJjMzJjODU5Mjk4ZTBjIGxlZ2FjeS10cnVuaworMTIwMTkgMGYyNzI1N2ZiNmNmNGY0MTViZDZiM2E2NDA2NzFiMmVkOTA4ZDg4MCBsZWdhY3ktdHJ1bmsKKzEyMDIwIGExYThkZjczYmZmZjUyM2ZlN2M3ZDhkMzk4Y2NiYzkyY2ViMTliNTYgbGVnYWN5LXRydW5rCisxMjAyMSBlZDZjYWNkZGM2YzY4ZTg3YjkwNjFhY2ZmNDUzNjkzZjI5MWQxNDZjIGxlZ2FjeS10cnVuaworMTIwMjIgYzZhMTEwM2VmYThhZjMxZTZlNzlhNjljMGU1ZTFhNDg1OTE1MGY0OSBsZWdhY3ktdHJ1bmsKKzEyMDIzIDQ4YzcwMDQxMDkzNjNiYjE1MTQ5NTQzZWU2YzZmMjAwNWY1ODkzMTcgbGVnYWN5LXRydW5rCisxMjAyNCA3NTA0ZjIzYzkyNDdkOTEwNmU4OWE1NmZjN2QxZDg0M2ZlNjY5MjFkIGxlZ2FjeS10cnVuaworMTIwMjUgZjkwMmVjYzg2N2QwOGQzNGM5YTBhMzlmMDkwMmY0ODQ0OTRjMWFkNiBsZWdhY3ktdHJ1bmsKKzEyMDI2IGUwNTkwNDliMWE3NjIwYzhlMTUzYjQxNDlmM2MyNTZmNjdmZTE0M2EgbGVnYWN5LXRydW5rCisxMjAyNyBkN2QzOTI2MGZlODJkNWZmZTFkNTdiNmNhNjY2NDZhOTZiNGZkNTczIGxlZ2FjeS10cnVuaworMTIwMjggODNmODNmMDAyZDJlYWU1MWZmYjgyMzY4OWNkYjEzOTQxMTY0Nzk5NyBsZWdhY3ktdHJ1bmsKKzEyMDI5IDY4ODYzZjUxMjc2YzA4NTExMDViYzkyNWMxYWRjNzQ4MTJkMGZhNjUgbGVnYWN5LXRydW5rCisxMjAzMCBkZjA3NzdhYjdjNjM4NTRmODYzMzBhZTlhMzY4OTY0ODAzYjI3NmVkIGxlZ2FjeS10cnVuaworMTIwMzEgNzlhOGExYTc0NjdiMTIyZjQwZTE4MmRhYWZiOGUxYTdhMGI4ZDNmZCBsZWdhY3ktdHJ1bmsKKzEyMDMyIDUzMzI1YjhmOGNlOWIxY2QzZWIyNWY4YTc4MmQ5ZDMyNTFkZmZhY2UgbGVnYWN5LXRydW5rCisxMjAzMyA5M2VjYzUxZjU5ZDEyYWYzODNiNTM0YzJmMzE3NGQxMTczNDFmOTZlIGxlZ2FjeS10cnVuaworMTIwMzQgM2U1MGMxZGRhYjNhM2JjYjExYTJjOTBlMDBmOGZiMDgxNjczNWZjNyBsZWdhY3ktdHJ1bmsKKzEyMDM1IGYxN2NlZGE2ZTY2NjkyNTczZDNlZjFlM2EwNWI1NDcwZjUyNDA1NTkgbGVnYWN5LXRydW5rCisxMjAzNiBmZjM5MmRkN2I5NzA5NzQ0YmM0YzQ4M2ExY2YwNmM5YjBlOTEzMDNmIGxlZ2FjeS10cnVuaworMTIwMzcgODdiYmM3MjFiYTJiOTlkZjU3MWY3OGMyYjQwN2FkMGYwYjhlNDA2MiBsZWdhY3ktdHJ1bmsKKzEyMDM4IGFhMmMxYThmYThjZTExMjQ5NDk0Yjk5ODQwOTgwODNlYzNiNDEyMjAgbGVnYWN5LXRydW5rCisxMjAzOSBiOGVjOTc0YWZkNjk1NmQ2NzI1OTI1ODFmNjI3MzA4OWYxMDc2ZTQyIGxlZ2FjeS10cnVuaworMTIwNDAgMTQzN2MyMzM1YjNiNDZhNWU4YzZjMDQ1MzQ0ZTY5MDVhMWNkZDJlNiBsZWdhY3ktdHJ1bmsKKzEyMDQxIDZiYWQ2OWQzODIxNjI1ZjgyOTM4MTE2YTBmNTIxOTM5ZTkyZWNmYmIgbGVnYWN5LXRydW5rCisxMjA0MiAxNmFmMjU4MmM5NjRjY2M3YzVhNWUwNTViMWM2YjM3NThlMTY2NjczIGxlZ2FjeS10cnVuaworMTIwNDMgZDY0MTVjMjdiM2IxYjRiZjBiZWQwMGZlOTBmZjVlZGUzYTU5MjQ1NyBsZWdhY3ktdHJ1bmsKKzEyMDQ0IGFhOTYxYTQ2YWU5ZTA5NzYzYjMxM2E3NWRkNGRkZDVkYWVkMTRlNGMgbGVnYWN5LXRydW5rCisxMjA0NSA2ZTI0OWIxMzVlZDNiMjFkNjlmMTRjYzA2M2Y4MTVhNGEyYmZmNmEyIGxlZ2FjeS10cnVuaworMTIwNDYgODgxOWRlZjFiMzljNmFjYTA0MDFkYjZmODQ2Y2IxZTU1ODA3OGNhYSBsZWdhY3ktdHJ1bmsKKzEyMDQ3IDQ4NWMwYmRmZThhMGUzOWVmY2U1MDliOWI1MDk3ZGNmYWJkYTFlZjggbGVnYWN5LXRydW5rCisxMjA0OCBkNTk0ZTgzMmE1NmNiYzE5MjMzYzZkMmEzNjgxYzE3MzA5Yjg2NzVlIGxlZ2FjeS10cnVuaworMTIwNDkgZGYzOTg1ZWI1ODczYmM4Zjc2M2E0OTRlOGFiNjViMGU2NDQ3NGU4NiBsZWdhY3ktdHJ1bmsKKzEyMDUwIDlhNGY1YmFhODI0ZTdhYmJkOGIwNDQ3N2ZlM2I5Mjk1ZjljMWQ3NjYgbGVnYWN5LXRydW5rCisxMjA1MSAxNjg3OGE0YzI2MGQyMGE1ZGZlNDhmNGQ0Yjk5YTM4ZTk3M2NmOGU5IGxlZ2FjeS10cnVuaworMTIwNTIgOTE3N2M0MDlkYzQ1MTJhMDliMmNjMDgwNjIyZmNlNmQ2MzI3MjdhZSBsZWdhY3ktdHJ1bmsKKzEyMDUzIDIyMDA5MDRhYmRkYzUxMzY1NDRiMGRkMDhkZDZhN2IxMjQyY2U4ZWUgbGVnYWN5LXRydW5rCisxMjA1NCA4M2JiNjA2YTMyZTZmNDQ4Zjk4MDhjYWI2N2FkNDM5YTJjYjQzZWRiIGxlZ2FjeS10cnVuaworMTIwNTUgZjAyYzY1NDllZDFiNTQxN2I0NjIyMzdmYzU1YzQyOWM3OTZiZmJlZSBsZWdhY3ktdHJ1bmsKKzEyMDU2IGZhODY3ZDhlZTdlYmMwMzkwZWQ0NzlmY2IwMWQwZDAzNGQ2ZGRiOTIgbGVnYWN5LXRydW5rCisxMjA1NyBmZWI4Zjg3NjllZjYyZGM1ZmFjMTA5YzhkMTFkOGVmMWQ5ZDNiODlhIGxlZ2FjeS10cnVuaworMTIwNTggMDY3MTdlNTIwNjhmZmUzMDg1NzNlYjUzMDJiMDlhOGRlYTcwZjMzMCBsZWdhY3ktdHJ1bmsKKzEyMDU5IGFlOGUxNDk0NDQxNDdjYWYyZGI1NWU3MGQ0MWVlZWEzY2M0YmQ1YmUgbGVnYWN5LXRydW5rCisxMjA2MCBiYzllNzcyMWM5MTYyMDNmNTMxYjBjYTVjZjY1MTQ5YjZiNzZjM2I3IGxlZ2FjeS10cnVuaworMTIwNjEgZDg1ZDJkOTk0ZjFmNzg5ZjZmYzNiY2ZiZDIzMTE0NTgzMTcxZGU1ZCBsZWdhY3ktdHJ1bmsKKzEyMDYyIGQxM2E2MGI0NGI0NTg3YzY1YjkwOTRhMGU3N2E3N2Q2NjQ4OWZmMDUgbGVnYWN5LXRydW5rCisxMjA2MyBhMDkxMTg1Y2NmYjZiNDU4ZTBiYzU0ODNhYmQ4MjA1M2U2MWZkZWVmIGxlZ2FjeS10cnVuaworMTIwNjQgYWM3NDI4NjJjYTM2Mjc3ODg0MDA0Y2JkYTI3YmE2MjY5YWE4ZjZjMyBsZWdhY3ktdHJ1bmsKKzEyMDY1IGI3MTU4ZGIzNDdkOWI5ZmVlZGY4OWU3OTJhMmRiOTAwZGIzMDMzNTEgbGVnYWN5LXRydW5rCisxMjA2NiA1NTk5MTE3NjhkY2JhZGIyODUzYmVkNzY3MTcxN2M2Y2E1MTU3MWM3IGxlZ2FjeS10cnVuaworMTIwNjcgYWIyMGY1Y2RkNzlmNmU1NGE1ZGFiNGFjM2ZhZWU3MTExYjk3MmJhYSBsZWdhY3ktdHJ1bmsKKzEyMDY4IDVjZGJkOGMwNDAxNmNjNjQ0ZmM2ZTNkYTgwMjg4NjdlNGM3YjE5YTAgbGVnYWN5LXRydW5rCisxMjA2OSBiMDlhOWM0MTJiYTI5OTRhOTc5ZmZkYTVhYTFiMTQxYTAzOTczZDczIGxlZ2FjeS10cnVuaworMTIwNzAgYjY3NzQzNjc1M2E4NzJiMzQ0ZDgzOGRiYjk0NmQ1MjkxYjRkMjVkNSBsZWdhY3ktdHJ1bmsKKzEyMDcxIDhlNmVhNWYwM2U3MzQwY2I3ZmZjY2UwZjU5ZWVmZDMwYTBkMGIzODYgbGVnYWN5LXRydW5rCisxMjA3MiBhYTFlNDgyODVkN2JjZTAwN2E4ZTUwYzVjNTkzYzgxYjZlMTM4NDQ5IGxlZ2FjeS10cnVuaworMTIwNzMgY2RmNTYxN2MyMDIyZDJiNzcxODAwNThhZGMyYmM3ODhmMTRiNzI5NiBsZWdhY3ktdHJ1bmsKKzEyMDc0IDk4YWQ1N2MzOWQyMGRjMWYxMDVhNWE2NDgyNzJhNDlhYjEyYTA1NDYgbGVnYWN5LXRydW5rCisxMjA3NSA4MWRkN2M3M2Y3YjIxZjQ5YjM4ODcyNGNhYzcxZTYyYTEwZDQzOGUzIGxlZ2FjeS10cnVuaworMTIwNzYgMjk5Mjg0ZWU2NjlkZmZmYjdhNGZjOGJjNzQ0NmMwOWFiZjMxYmY3ZiBsZWdhY3ktdHJ1bmsKKzEyMDc3IGY0ZGE5NDQ5ZjAxMTAxZTJkNTc0NjY2NGNkYTllNWVkNDVhNDAxYWMgbGVnYWN5LXRydW5rCisxMjA3OCA5YThlY2Q3NTllMTM0MTFjMmFlMmYwNTFiOThjYmM5YTg1ZjczMTQ4IGxlZ2FjeS10cnVuaworMTIwNzkgNDU5NWVmNWE5NjhhYzUzNmViNjIwZjEyNzRmOGMzYmNkMzRjNjRhMiBsZWdhY3ktdHJ1bmsKKzEyMDgwIDg4ZDU5MGNjMTExNmU0ZjRmYTBhOWE0MDBlOTU1NDA0NjNiNGYxMmIgbGVnYWN5LXRydW5rCisxMjA4MiA2NDgzZGJlMDlmMDYxODhjZTNmYmUxNmU4YzMxYjQyODJkMDQ5N2Q2IGxlZ2FjeS10cnVuaworMTIwODMgZTY2ZTg4ZjUyNjA2NDNkMzgzN2VlODEwYTg2Nzk0MzQ4NzRlNDBkMyBsZWdhY3ktdHJ1bmsKKzEyMDg0IDNjMjk3YTZhZDRlOGJmOTlhOWMxYzc0YzY0ZmNhNmIwNGY0ODI5ZDAgbGVnYWN5LXRydW5rCisxMjA4NSA2MGZkYjFkYjExNzU2NjViOWQ3NTlmMDJiMWRjYWIxMGQwMDRmNTJhIGxlZ2FjeS10cnVuaworMTIwODYgNWE5Y2EyZTkzN2I1YmQ3MzRkZmNkMmU4YTUwNWMzNzViNjBlODVhZiBsZWdhY3ktdHJ1bmsKKzEyMDg3IDM4MDIzYTQyNWU0ODM4MGJlZDdiNjJiM2I3NTNiMDQ1ZjMzNDU2Y2IgbGVnYWN5LXRydW5rCisxMjA4OCAwMWM4ZmU0NDA2NGIzMmRkMmY2ZTczMDRmMzUyOTc4MDQ2OTc5NDIzIGxlZ2FjeS10cnVuaworMTIwODkgNDViZDZjNDBjMDVhZTA1MmZhMDA1MzZkMDcxYTIwMTAxYzQzYTRlYyBsZWdhY3ktdHJ1bmsKKzEyMDkwIDdmOTA3MzY3MDFhMzUwZTMzOTU1MzAwM2MwZWM1YTI2MDI3NGUwNTUgbGVnYWN5LXRydW5rCisxMjA5MSAyYWFmY2VlMjIwYmMwYjc2ODlmODJmNDZlMDljNGY5ZTAwZWJmN2U0IGxlZ2FjeS10cnVuaworMTIwOTIgZjIyZjc2OWJmM2Q5NDIxYzlhOWFhMTRlNjA2NTRkZTc0YzhlYjA3ZSBsZWdhY3ktdHJ1bmsKKzEyMDkzIDg2YmY3MGE1NWVmZGU0ZGU3NDIyYTE2OGFjODQ1NjEyNmUxNTEzOWUgbGVnYWN5LXRydW5rCisxMjA5NCA2MTZiMTc0ZWViNTQ4MzBkZTg0ZTBkZDIzNjA2OWU2ZjEzZmFmN2VkIGxlZ2FjeS10cnVuaworMTIwOTUgMzYwOWNkZGM3OWRmNjEwM2VlNDg0NTk2MDZkNTQ1NjkzZDFlOTdiZSBsZWdhY3ktdHJ1bmsKKzEyMDk2IDU4MzFiYjNjYTQyYTQ5Zjg4YWQ2NjIxOTVlMGYwYTE3ZWIyZGNiN2YgbGVnYWN5LXRydW5rCisxMjA5NyA1NGFhZmU0MmMwYzNmMjAxZWNmNjg1ZTc3MmJmNjRjNGZkMTZiOGRjIGxlZ2FjeS10cnVuaworMTIwOTggMzA3NmZmZjMwNTM1ZjJkMGI1YWI5ZjRmNjA2NTU4ZWM2MTgxMTRiZCBsZWdhY3ktdHJ1bmsKKzEyMDk5IGZjYmYyMjJlNjg5ODFhYTZmNDZkZWNmMzk0NGI0MTA2M2FkNTA1Y2MgbGVnYWN5LXRydW5rCisxMjEwMCAwZjNmOWUzNjYzNTZjN2I4MTE4ODViMjMzYjhkMzdjODExMzM1YmZhIGxlZ2FjeS10cnVuaworMTIxMDEgZDc5ODZiNGI5MTAwOWMwYTIyYzE0MjMzOWNiMGMxY2EyNTljM2U5NiBsZWdhY3ktdHJ1bmsKKzEyMTAyIGM0ZTJkYTQ3Nzk0OTI5Y2UwNWUwYWZhMzhjNDE4NjIyYzgyM2RmYjEgbGVnYWN5LXRydW5rCisxMjEwMyAxZGMwZWYyNGIxNWQzMjAyZTIyOTkxYjQxNWI5NjAxNjhiYTlkMzBhIGxlZ2FjeS10cnVuaworMTIxMDQgNmI1OWY5YWI1ZGIxYTUxMzg0MTkyYjYwYjRlYjBmOWNjNTQ4MjQ5MiBsZWdhY3ktdHJ1bmsKKzEyMTA1IGNiOWUzZjAwZDZiNjU0NzRkZmU4MDNhNzIwNzVlNmE4NzQ4OWM3YTggbGVnYWN5LXRydW5rCisxMjEwNiA4NDgzOTUzYTkyNDgzZDdlYjk1MDQzMWU1ZDQxNDU1MDE2NjQ3MThiIGxlZ2FjeS10cnVuaworMTIxMDcgNWEzNmJhZDFkMjQ4OWI4N2FiZDc3YTFjYmMyMjE5OWVjZGM1OWZmNiBsZWdhY3ktdHJ1bmsKKzEyMTA4IGMxZjk4ODU3Y2M1YmI3ZjYwNzkwMmQ4MzU3MmVmNWMzOTk4MjcwNjAgbGVnYWN5LXRydW5rCisxMjEwOSAyNjc4ZGJmNGFkNjlhMzMwZDZlNGVhZTNhMWVkNDBlMmI2MzExMmI4IGxlZ2FjeS10cnVuaworMTIxMTAgNTcwZmVkNGFiOGRhZjZmYzk3YjY0NTE0YTNkOWU0NzE2ZTkwNDRjNCBsZWdhY3ktdHJ1bmsKKzEyMTExIGFhODhjZmZjMzVhYjk0YTMyYTgxZTlhMTk0N2UyNzAxM2YzZTk4Y2IgbGVnYWN5LXRydW5rCisxMjExMiA1NDI2YmVmODllYzMzOGQwNGQ4ZmZkZDM0NjE4MmIyNDcwZmYxYzNkIGxlZ2FjeS10cnVuaworMTIxMTMgY2U3OWMwZTc0ZjZmZTFmMjkwYmU0OGY2ZmZlOTI4ZmVlYTE0Y2NjNSBsZWdhY3ktdHJ1bmsKKzEyMTE0IGMwMzc4N2VjOTgxMWM5ODZiNTg2YTBmZjZlZjlmMmU0Y2ZjMTk4ZGUgbGVnYWN5LXRydW5rCisxMjExNSA5YWJlZTYzYzZiYWIzYzQ2ZDdmNmI2YmU0MDg2YzJlNDhlYjI4YWEyIGxlZ2FjeS10cnVuaworMTIxMTYgYzEyZmVlNGNlMzYzZDhmMzFiMGRmM2YwYmI3N2ZhZDhlMzdkN2RhMSBsZWdhY3ktdHJ1bmsKKzEyMTE3IDk5MWJkMzUzY2ZlYmZiZDdhYjY0OWUyZjkzYjM1NTA3MzRiNzE4MjQgbGVnYWN5LXRydW5rCisxMjExOCA5MGZkYjM3NzY0YTIyYjEwNmI0ZjUyNzM3YzNlODQ2OGZlNmFkZGIzIGxlZ2FjeS10cnVuaworMTIxMTkgMTc5ZmI2M2IxNTU0NzQ3M2JiM2RhYTA4YmMyYzcyMTgxYTBjOWViOCBsZWdhY3ktdHJ1bmsKKzEyMTIwIDA3ZWQzOGMyOTZlZThmODViODlkZjdhYjg1MDBiMDkwZjIxMzA0ZmYgbGVnYWN5LXRydW5rCisxMjEyMSA1NjcyZjVmMWRiNDY4NGQxYTc2OWI4MmVmMjc5ZGU4YjBjYzY0NGU3IGxlZ2FjeS10cnVuaworMTIxMjIgZmE4ZjlmZTBhMzNkOTg1MTVhY2E0NDg4ZWY3M2U1MTgyMTIxNzgzZCBsZWdhY3ktdHJ1bmsKKzEyMTIzIGIyZmRkNzFjYTAwNmNiNDYzZTM3ZjI4ZGZiMDM5YzVmMzA5N2NjMjYgbGVnYWN5LXRydW5rCisxMjEyNCAxZmU0ODAwOWQ4ZWE4Y2E1Yjc2NTFjODliZTc4Y2QzYTJlYjFjYThmIGxlZ2FjeS10cnVuaworMTIxMjUgOThhNmZjNjg3N2FlZTJjMjE5NzNhYzAxNThiYTRiY2QzMWYyZmI2ZiBsZWdhY3ktdHJ1bmsKKzEyMTI2IDRmNTBjNzA0NTRhOWIyZDEyMGNhZDZjNGQ2M2FiNGZlZWY5ODNkOTUgbGVnYWN5LXRydW5rCisxMjEyNyA4MjAzMGNhMGZhMmVhMDBjNTRmNWM0ZGU3OTVlNjY0N2ZjYTk2M2E1IGxlZ2FjeS10cnVuaworMTIxMjggY2EyMTI4NGU4NzVkY2Y1N2UwN2Y3OTNhNDgyOGUxNmZhOWJjOTIzMyBsZWdhY3ktdHJ1bmsKKzEyMTI5IGQ2NjcxMDkzOWEzMjU0ODdmNGIyNTI1MTNlMWQ2Y2IwMzdlMjhhOWQgbGVnYWN5LXRydW5rCisxMjEzMCAyYjAwYmI1MDg4MDM2YTQwNTg4ZTIyZjM0YWFmNzQzMzI0YzQzMTlhIGxlZ2FjeS10cnVuaworMTIxMzEgYWM1MzQ1ODE0YmEwOTMzYzNkNWE5MmYyZTNiZDgyNTgyODZhMjMzMSBsZWdhY3ktdHJ1bmsKKzEyMTMyIGUyZGMzY2IwOGM2MGE3Zjk2MDVhZDA2OWIzYjkyYWJiYmJlNjI5ODIgbGVnYWN5LXRydW5rCisxMjEzMyA4NTg2ZDkxMWZiMzkwMjM4YjIzZTdlZGFlN2QyOTNjNzkyOGZhZDRkIGxlZ2FjeS10cnVuaworMTIxMzQgNDQyNjdiODhmYjU5NDEwZWY2OGU0NzE2Njc5YzUzYjg0MzQ4YzlkYyBsZWdhY3ktdHJ1bmsKKzEyMTM1IGU1ODk1N2YwNmExNTM4NGUyZDdkYzI2NWQwZTU4ZDE3ZDI1Njk0MDEgbGVnYWN5LXRydW5rCisxMjEzNiBmNWU1ODZiNWY3OTAwMDQ1YWE0M2U3MzRhMmY2N2Q2YTQ1MzIyNDM1IGxlZ2FjeS10cnVuaworMTIxMzcgZjljYzUyMzc0YzUyYzNlY2VlMmM4OTJlN2M5MmNkZjAwMzBiZjkyZiBsZWdhY3ktdHJ1bmsKKzEyMTM4IGRhMWRkM2U1NGI3YWUyNGEyNjIzZDBjZDVmZGYwMTlmOWNiYWZlZGEgbGVnYWN5LXRydW5rCisxMjEzOSA3MmEyZmJiMGUxZjkwMDM4ZGMwOGZjNTFiYzg0ZTI4MTM0ZWUxZThlIGxlZ2FjeS10cnVuaworMTIxNDAgZDE1MmFkZjNmMDk0Y2IyMmI5MjgyNWE5MDQ2MzE2NmIwNmQyNDJjZiBsZWdhY3ktdHJ1bmsKKzEyMTQxIDA4Mzc5YzdmNWZhOWIzMDFmMjFlZjBhYjJmYTM4MzY2NjE0OGY3MTkgbGVnYWN5LXRydW5rCisxMjE0MiBjMmVjMjFjNjVkMDUwMDVkNjA3NmE1YzU3NTZhNjlmNzQwOWE5MzUyIGxlZ2FjeS10cnVuaworMTIxNDMgMmNkNThhNjFiMDUxNjA3M2M0OGM5MzA1NjdiZmJjOWY4YWM0YjM0MCBsZWdhY3ktdHJ1bmsKKzEyMTQ0IDRlMTVkMTc1ZWVkMGM5YmI0OTFmMzViNjk1N2U4MjdmODVmYjc5MmQgbGVnYWN5LXRydW5rCisxMjE0NSA0NzQyYzUyOWQ5YzhlMWM5ZDY2MTdjZTI5Y2UzNzIxY2VkYWU0YzFlIGxlZ2FjeS10cnVuaworMTIxNDYgYzRlYWVmODlhNGE3NWQ5ODBhY2Q1MjVmODc4YWZmY2NhMzY4YTQ0NCBsZWdhY3ktdHJ1bmsKKzEyMTQ3IGM2NmIwZDM5YTczNmJlNjBlN2VlYmY1ZTZhNjlmZDcwODliMzUzZmEgbGVnYWN5LXRydW5rCisxMjE0OCA0NzAxMmMxM2VmZTQ3YjRkZWJiOTcwODEyOThhZWM1N2VjY2M5NmVjIGxlZ2FjeS10cnVuaworMTIxNDkgYjRjZGEzOTQwYWMzZmM5N2Y0ZjZhZWJhODEzNTFkZTc1YzBkOGQ1NSBsZWdhY3ktdHJ1bmsKKzEyMTUwIGI3N2QzNzM5OTM0MzdhOTljZGU4OWQwZDdjN2JlY2IwZDZmOGRkZjIgbGVnYWN5LXRydW5rCisxMjE1MSBlN2VlMTg4NGZkNTQ5MWNmZThlZGU1OWNiZTJkY2UwMWEyMGQ1N2Q3IGxlZ2FjeS10cnVuaworMTIxNTIgNjk0MWY0M2QzYmI4MDljNzA2MTAyNGE5ZjNmMGQ2NDRiY2JiMjE3MCBsZWdhY3ktdHJ1bmsKKzEyMTUzIDkxNzM1N2MxMjU1MjI2YzlmODhiZGVkYjU1ZTJkNmRjZTQzYTUxYzYgbGVnYWN5LXRydW5rCisxMjE1NCBiZmNlNzNkMzU3NmMzMjA4Y2RjMTJjMDg2NWI4MDExMzljZThhZTZjIGxlZ2FjeS10cnVuaworMTIxNTUgYWQ0OTdjYjVkMmRjMmY5ODlhNzRjMTMxZmYxMmI5ODk4MGVlOGU2NyBsZWdhY3ktdHJ1bmsKKzEyMTU2IDdkZGU0NTAxZjUzYWRhMzRkMTFlNjIwMjFkZWQyNTdhZWE4OTFiOWIgbGVnYWN5LXRydW5rCisxMjE1NyAyMzIzN2JjYjc3NGJmMmVmNjNmOWUyYzdjM2NhN2VmMjY5ZDkyY2Y2IGxlZ2FjeS10cnVuaworMTIxNTggMDRiMGEwZjI5ZjY1ZjMwYWE1NWRjNGMwNTU1MjczYWYwNjc3YjAzYSBsZWdhY3ktdHJ1bmsKKzEyMTU5IGEyMDZjNjFhODk1MDllNWQ0MWMxZDcxYTVmNzAxYzFjMDhmYzRmMWEgbGVnYWN5LXRydW5rCisxMjE2MCA0ODA4YThiNTdhZjNhYmJlNzc3NGEwNWJiYmMwZjE0NWM5MTg5NzVkIGxlZ2FjeS10cnVuaworMTIxNjEgOWJhN2Y1MGI4MjVhZDA4NTFjMzczODYwMGJhYmViMDM1MWUzYTJmZCBsZWdhY3ktdHJ1bmsKKzEyMTYyIDQ0NDk3MDJhMDk2YTRmZDc0N2M2OTI4YTU5Njk2ODE0ZGU3NDgxMGQgbGVnYWN5LXRydW5rCisxMjE2MyA0ZWVlMDYxZGFjNDRjYmNiNDVmNTMzYTUxMWI5YjhmNjRiYzg3Zjg4IGxlZ2FjeS10cnVuaworMTIxNjQgZTExZDc1MDA1YTVhOTY2MmNmMmU0NzdiMzU1MTM3OTBhZTU5N2MwMiBsZWdhY3ktdHJ1bmsKKzEyMTY1IDlkYTAxZTU4YTBiNTViYTk4ZjM2NGIyMTgxZjI4YmRiM2Y0Y2UwMGUgbGVnYWN5LXRydW5rCisxMjE2NiA5MTRmODNlN2ZhMGEwMjg5OWEzN2YyNDg2MGI2MmFiMTdhZDExOGQwIGxlZ2FjeS10cnVuaworMTIxNjcgNDA4NThhYjIzNTY4MjEzOWRhNDc5YzFlMzc1NDcyODFmOGRhNDRhNyBsZWdhY3ktdHJ1bmsKKzEyMTY4IDI3MmVjY2M1NzNlMjQwNmFmZWI5ZWVmY2JiZGJlNmEwMGQxMmZlNWMgbGVnYWN5LXRydW5rCisxMjE2OSAyMTRmMzA0NGQxOGMxMGNmNzFlOWMwMGUzY2YxYjZmMzFmMWVkYWY3IGxlZ2FjeS10cnVuaworMTIxNzAgMWQ0MGJjMjU3MDNhNTdjOWQ0YWViYzdlODFlMGU5YmY5ODI0YzgxNyBsZWdhY3ktdHJ1bmsKKzEyMTcxIGI0ODQzYTA3ZDU3OTFjMTMwMzZiMmVmMGMyZjAyOTJiZGI2NjBmY2EgbGVnYWN5LXRydW5rCisxMjE3MiA5OTE2ZmM4NWIyOGE1OWZiMjRmNzhhODI5ODQyZGJjMGU1YTU0NzQ2IGxlZ2FjeS10cnVuaworMTIxNzMgNTM3NjZmZWQ5ZjhjYjhhZWEwMjI0MzdhMzM3OTE1MTQ3M2RmMGY5YiBsZWdhY3ktdHJ1bmsKKzEyMTc0IGI3ODA0OWZlZmNlYjI5N2M2NjcyMGIxOTZmM2I3ODNhNmU3MDAzYWQgbGVnYWN5LXRydW5rCisxMjE3NSA1ZDRmMTM0NzE1MGVkZWE0NjUyZmE3M2Q1MDIxZjBkMDA2N2EzM2EyIGxlZ2FjeS10cnVuaworMTIxNzYgMDBmZWQ3Njk4MGJjN2Y3MjdlY2EyNGI5N2QzODJlNjViMDg4OTI5ZSBsZWdhY3ktdHJ1bmsKKzEyMTc3IGYzOWExOWExMjI5YWY2ZTFlNWU2NmY1MWUzMzBjOTVjZmU2OWQ2YzkgbGVnYWN5LXRydW5rCisxMjE3OCA4NzdkMjNiZDViZGMyZDMwNGZhMjFjMzQ1Yzk5YmRjZTFmYmYzMTFlIGxlZ2FjeS10cnVuaworMTIxNzkgOGI2MWUxMjczYjRiZGEzNGE3ZmI4OGIyYTc5MjcxYmI4Yjg1MzU5ZSBsZWdhY3ktdHJ1bmsKKzEyMTgwIDYxNTRkMmU2ODYwMzI4NjY5YjRmNjQ3NjUwYzYxYTEzNTIzOGE5ZGMgbGVnYWN5LXRydW5rCisxMjE4MSA1MzQ1ZmQxM2RlM2Q5ZDdhNGZmNTk5NjY3ODYwYTg5NTBmNmQ0OWQyIGxlZ2FjeS10cnVuaworMTIxODIgNWE2YmQ0M2UyZDVhNzU1NDQwYThjY2YwNzg2NzQ2OGQ5M2YxMWIwNiBsZWdhY3ktdHJ1bmsKKzEyMTgzIDEwOTU1YzM5YzBlN2I2YmU2OGQ2NGNlOGIxZWY5MTE0NjU0NzBkZWEgbGVnYWN5LXRydW5rCisxMjE4NCA5M2NiMWFhMjRmN2QxMDY5NzM4YmZmOTNlZTg1OGQ2Y2I0MzgyZDQyIGxlZ2FjeS10cnVuaworMTIxODUgYjBiODE1ZWVlZDJjNDkxYThlNThlYTA5YmRmYzJiMjExMmUzOTY3ZCBsZWdhY3ktdHJ1bmsKKzEyMTg2IGI4ODNlZjNiMmQxOTZiMmQ5YzhlMGI3ODcwNGM5NTEzMjA5ZDIzMWMgbGVnYWN5LXRydW5rCisxMjE4NyBlY2QxMTU0MmVhYmU1MTkzOTAzOWQ3OGMyNGIyMDM3YTFhMDMyNzE5IGxlZ2FjeS10cnVuaworMTIxODggMGEwNDM0ZWZlYmNmZWJjYTkwZjA1NjA1NjJiYjg2NDc1ODM2OTkyNSBsZWdhY3ktdHJ1bmsKKzEyMTg5IDMxNDg5Nzk5YzhjNjBhMzA5MjU1NThiYTQ5YTE2YzY3ODMyMzdlYWUgbGVnYWN5LXRydW5rCisxMjE5MCA4ZDNjMmE4MDgzNGNjMTBiZjEyMTg3ZjUwMWM1ZGYzYWJiMTFlZDc4IGxlZ2FjeS10cnVuaworMTIxOTEgNTM4OWM2ZTMwZTU0YjEzMDc1MGYwZjgxZjY5MzMwMzk0YzNiNWFjMSBsZWdhY3ktdHJ1bmsKKzEyMTkyIDI2MzY1NWM2YjY1NjcxODBkN2I4ZTNhYTE4NGNlMGRjZjE2MDk3OTEgbGVnYWN5LXRydW5rCisxMjE5MyA2MzczMjUyOWY2ZGY3ZTk3NWY3MTQ3ZDhhZmI1ZDRiYTcxYmIxZjQwIGxlZ2FjeS10cnVuaworMTIxOTQgN2E0ZWVlZDU0YjI0NTE0ZTBiMTEwNmVlZDYwZmQxZmU1N2I1MWEwYiBsZWdhY3ktdHJ1bmsKKzEyMTk1IDIyZjNhOGQ4MDNhNTE3ZWMyZDk2MWU1MTIzMTg5N2NjNTg4Zjc2MjkgbGVnYWN5LXRydW5rCisxMjE5NiA5M2M2NmFjNmFmMTg5NmQyNmFkNGE5YzZkZDkwMjJjMDJkYTA4N2ZiIGxlZ2FjeS10cnVuaworMTIxOTcgZjdlODY2ODRjZDRjMmQzNjQyZmE0Yjc5ZTQwNzExNjdhY2RhMWIzOSBsZWdhY3ktdHJ1bmsKKzEyMTk4IDk3M2MyMWRmMmQ2MDFiOWRmMTdmMTliMTIyMGY1ZmQxZjU5MDE5MTIgbGVnYWN5LXRydW5rCisxMjE5OSA5NzAxYzUwYzY5NDYwNzM4YTQ3ODMwNmEwYzg2YWMxYmQ1NzJlYzc0IGxlZ2FjeS10cnVuaworMTIyMDAgNTU1OTAyNTFjZjUyNzNiNjViMTNjYmRlNTljZmQ2NmY3YTk5MDY0MSBsZWdhY3ktdHJ1bmsKKzEyMjAxIDZiYTdiZDU2M2UzYmY3ZmE2YWVmYmM3YWZjZmY2OWE2MzdhMTA1ZTUgbGVnYWN5LXRydW5rCisxMjIwMiBiNWQxYTE2MjVjZDVkYjRmZmRjMGQyZmFjYWNmODI4NjMxMGM3Mzc1IGxlZ2FjeS10cnVuaworMTIyMDMgNDM5NDIxY2RhODllYTc2ZDY3M2MwMGNmZmJjY2Y0ZjQ5M2U4YzAzNCBsZWdhY3ktdHJ1bmsKKzEyMjA0IGMyMmRjMzAxYjM2YTgxZTJhZGRhNzM0NGE1NGNhMDRjZDVhMmM4ZmMgbGVnYWN5LXRydW5rCisxMjIwNSAxMjc3OTQ2MDU0ZThjNmUxNjJhZWNmMWVhMzE0NjRkYWRlZmNiNGVlIGxlZ2FjeS10cnVuaworMTIyMDYgZTBhNGZiMGFiYjc2OWRkZTE4MjUyM2EzMTFkYzM5NmFkZmM3MTFjYyBsZWdhY3ktdHJ1bmsKKzEyMjA3IGYzZjYwMjNmZWI3ODhkOTFhODE5NTc2MTQ5NThkMTNjNjdkMWM3NzMgbGVnYWN5LXRydW5rCisxMjIwOCBkN2RkNzFkMGQxODMxYTY4ZjEzYWIyYWM5Y2QwMTcwYmJmZjhmODkzIGxlZ2FjeS10cnVuaworMTIyMDkgZTc4YmRjY2QyMjRmZmM5MWVkZTg1Zjg3ZjhkZmNiNDQ5NGQ3Mzc4MCBsZWdhY3ktdHJ1bmsKKzEyMjEwIDJiY2RlMzQ3NDZkMWNmMGJkNDFjNDk2NmY3MWIxMzNjOWI0MDE0YWIgbGVnYWN5LXRydW5rCisxMjIxMSBhM2M5Y2UyOTg1ZGVlOTUxYzhiMjBlYjg4NGU2OTZjYWJjZTVmNDMyIGxlZ2FjeS10cnVuaworMTIyMTEgZjA4YzdhMmE1NmY4MDc0MWY1ZjE5MmZkMGViZTBiMDk2N2EyMDNjZiBsZWdhY3ktdHJ1bmsKKzEyMjEzIGNmNjU0ZWQ1OGZmMTZhMDhkYWRhYjhiNDg2Njc2ZjhhYjI3YjNmODMgbGVnYWN5LXRydW5rCisxMjIxNCBkMWRiN2Y2YWI3NTNjOWYzNDUyOWQ4NDk3ZDYwZTQwMjM4ZGY2NDZkIGxlZ2FjeS10cnVuaworMTIyMTUgOGIyNWJhMjQ5NDQ2NTJhNjBiZjIyNzI3ZjBiYmZjNWVhM2I4NjI4ZiBsZWdhY3ktdHJ1bmsKKzEyMjE2IDJhODk1NDNkZDNjYWIwZTg0YzhkZjZkOGU2MDcxZGMwMWU4MTVlNzQgbGVnYWN5LXRydW5rCisxMjIxNyA0ODJlNjNkNzljOWRmZWU0YTllZDM5MTMzOTRlZDdhMTY4NTUyNWNjIGxlZ2FjeS10cnVuaworMTIyMTggMzUxOWRlNDQwZjg5MmMyYzdlMTU5NjVhM2NkNWU3NzlhMjk1ZjUzYSBsZWdhY3ktdHJ1bmsKKzEyMjE5IDI0Y2E2NDEzNDU5NGFkN2YzMzZjZWYxYzcxZjRlYTFhOGZhZGIwNmUgbGVnYWN5LXRydW5rCisxMjIyMCA3MmI3NjFiOTQ4ZTdlOWFiNzkxY2MwM2U4OWMyZWU3NzhkZWYxYzgyIGxlZ2FjeS10cnVuaworMTIyMjEgMzk1NWY3ODdlOWExMWMxNGJjNDRhZTZlNTM0MjlhMGU5OGMzNTUwYiBsZWdhY3ktdHJ1bmsKKzEyMjIyIDA0ZTQ0YzYwNzZlOGYyZjJmMzUwOTIyOTQ1Zjg2ZGYxN2NmNjk2YWUgbGVnYWN5LXRydW5rCisxMjIyMyA1NmYzOGJmM2FmOWYyZDYzMzgyNDA5YjZiMTYyZTlkNjAxYjRjMjMyIGxlZ2FjeS10cnVuaworMTIyMjQgNGIxYjk0MzJiMjZiZmQ4ZjY3OWVkYjc0MTNlODJhOWUzYmIzMDdmNiBsZWdhY3ktdHJ1bmsKKzEyMjI1IDQzMzZhMTkwNTA1YjY2ZTI2MzJjZGE1YTFlYjQ3ZjMzOWRkZWNhZDQgbGVnYWN5LXRydW5rCisxMjIyNiBlYWFiOGZlYjdmYzA3NjRkODljYzJjNDVmMDMxZTBjNWM4ZWQ0ZTc3IGxlZ2FjeS10cnVuaworMTIyMjcgMmNjZjA0NWY1YTIxMWYxMDE0MDE2YzIwODNkOWM2MTZhYTdiZGI5MiBsZWdhY3ktdHJ1bmsKKzEyMjI4IDI2NDY4OTNjYjQ5OTM3NWFhZDAwY2Y5ZWE1NjhmN2IxYWYwYTBlOTkgbGVnYWN5LXRydW5rCisxMjIyOSA2ZjFjYTlkYzk1ZGFiMTc1MWQ0NWI2ZWQ3ZGM1NjY0NDgwNjRhOTA3IGxlZ2FjeS10cnVuaworMTIyMzAgNzJmNTA2MzZkZmVhMWU0NTgzZGNjZTM3YjVkZmZkNjk0N2M1NDgxOCBsZWdhY3ktdHJ1bmsKKzEyMjMxIDEwYWIyYzVmYmQ4ZWU3YzBkN2Y5YWUwMTk1YzlmNjBlOGE2YTY3ZWQgbGVnYWN5LXRydW5rCisxMjIzMiA4NWQ1YjVlY2VkOWVhOTk4NjMzOTBlNWE1M2YxODJlM2QwMTg2MGM5IGxlZ2FjeS10cnVuaworMTIyMzMgNDdkMmU0ZjcxMTQ3OGRkNWYwZTA3NTdmYzQ0NWI3ZDRmZWE1ZTA2ZSBsZWdhY3ktdHJ1bmsKKzEyMjM0IDJlOTkzMWY0NGVmNGY3ODYyY2IwODY0MzViZWMyMjZhYjNkN2Q0MGYgbGVnYWN5LXRydW5rCisxMjIzNSA0N2JiZDBiYThlOGEwNTlmMDlhNmExMTZiM2QxYWIzZjFiY2E3ZGFhIGxlZ2FjeS10cnVuaworMTIyMzYgMzQxNWQxM2Y4YmM4YzAzZDA5YWQ3MzU3OWQ4YjNlOGMzYmUxYzk1OCBsZWdhY3ktdHJ1bmsKKzEyMjM3IDlmY2M5MDJkNzQwZmFhZWE5NGY5MjUwM2QzYzc4OTlhZTAwZTkwMTQgbGVnYWN5LXRydW5rCisxMjIzOCBlNmI2NjJhOWI3MDk2MTE4OWI3NGM2N2U0OTY3MjMxMzc5MTVjZjYzIGxlZ2FjeS10cnVuaworMTIyMzkgZTA2ZWY4N2IzNGNjNGE4ODU4NjRlZDc2MDYwZmMxOGMzYTRhYzY5YSBsZWdhY3ktdHJ1bmsKKzEyMjQwIDA1ZmI0ZDk2NmM3M2ZmYWIwZGFhYjYwODk3MTk2OTcyYmNlYTAzMzYgbGVnYWN5LXRydW5rCisxMjI0MSAyNTA3ZTE1ZWNhNmI5MGM2YmVmMmEyZWQ5NWIxZDllZTFjNDZlOTdhIGxlZ2FjeS10cnVuaworMTIyNDIgMDk5NWE3YTYzNzgyYmJkMGE0ZmYwNjc1OTAxMmI4YmJmMWVjNDRmMSBsZWdhY3ktdHJ1bmsKKzEyMjQzIDg1YWIyODY0NDIwMTQxNDExMzZiNjUwMjQzMTZjOTAzOGQwODhiM2UgbGVnYWN5LXRydW5rCisxMjI0NCA2ZmM1OGQ3OWRhYzVkYzVkMTZlMmUwOGQ4YjYzMTIxOGY0N2U5ZDE4IGxlZ2FjeS10cnVuaworMTIyNDUgOTM0MmM2MGVhYWMwNzVhZDIzODAzN2RiODM2MTgzNjllNzQ4ZDg1MiBsZWdhY3ktdHJ1bmsKKzEyMjQ2IGQ2MzI4ZDc0YjU4MGVmZDkwNDUyNzZlZDYwNjRkMzhmMTA0YzQxNTcgbGVnYWN5LXRydW5rCisxMjI0NyBmY2U2YzExYzgwZmExZGU5YWI0MWQyZDQ5ZTE0OTgxMGMyZDQwNzBlIGxlZ2FjeS10cnVuaworMTIyNDggOTY3YWM1ZTg5MDdhY2E5NGM0NjIwNmQ1NTdmMTYwNDMyMDNkMzYwNCBsZWdhY3ktdHJ1bmsKKzEyMjQ5IDdjZWI5MmJhODZmNzY0OWVjMTU1YmQyMTc4Yzg2OTEyNzFiMTY1MzkgbGVnYWN5LXRydW5rCisxMjI1MCAwOGE5MzczODYwZTgzNmIxZmU2YzliNGUzNGNkNzEyMGFlYzIyMmY5IGxlZ2FjeS10cnVuaworMTIyNTEgZTQ1ZGY2ZjQ1NjA0Yjk1MzBjYzc0NmQyZWNjOTA5NDEzNWQ3NzJmYiBsZWdhY3ktdHJ1bmsKKzEyMjUyIDg4YWY4YTQyODU3ZDMxZjJiNmMyMGIwNTNmOTY0ZDhjZTRiZGU2YTEgbGVnYWN5LXRydW5rCisxMjI1MyA3NjYzY2Y5NWJkMGVhODYyNjgwMjVkZWE2ZDRlNjZlZmU2YjU2MzllIGxlZ2FjeS10cnVuaworMTIyNTQgMzBmMzYzMGI3N2NhOTk0NWNmMzQzNWZkOTU5MjRmMzM2NTQyMTU4MiBsZWdhY3ktdHJ1bmsKKzEyMjU1IDU4NmQxYjA4NjE0ZTI2MTdkYzMwZjhmYzU4YWFiNTkyZjE3ODdlNWIgbGVnYWN5LXRydW5rCisxMjI1NiBjNzA4ZDcwYjEzOWUyMTVlNmNmYjBkZTZhYWVmYmRiMjU1ZTQ5YjgxIGxlZ2FjeS10cnVuaworMTIyNTcgY2QyZTA1ZGFlNGMyOTVmYTRmYWM3YmExNWMwNTdiNmVlNGUwNDkwNiBsZWdhY3ktdHJ1bmsKKzEyMjU4IDllNmY1YmFjMTVhYzI0YTNhMTcwZGE1NGVkYjA2MzU3YzkxY2EzMjUgbGVnYWN5LXRydW5rCisxMjI1OSAzZTdjNDM0NTNlNWU5OTljNzExMTViZmMyZGQ0MTFhYzUzODdmYTFjIGxlZ2FjeS10cnVuaworMTIyNjAgY2ZiOTBkYjM5OTU4YjI0YTNkZDY4YTRiNWE1OTkzMzA4NjU5ZTVmNSBsZWdhY3ktdHJ1bmsKKzEyMjYxIGVkNTIzZWEwNzNkYmEwNDlmOGFmY2ZjMTAxNDQ0YTZjMTljNzM4YjkgbGVnYWN5LXRydW5rCisxMjI2MiAxNmM5YTcxNDg4MGZjMDBmMDhiNjI1N2ZlNzE0ZGRmZDFlMDkyN2NjIGxlZ2FjeS10cnVuaworMTIyNjMgZjc1NTJkZDIzNmIwYWQ2MjdiZmZiMTg2MTMxM2NjMjdlNWNkZmIzZCBsZWdhY3ktdHJ1bmsKKzEyMjY0IDYzMWQ5NmQzY2Y2NjBmZWYzMDBiN2QxMDkxNGMyYjI3ZDBhYzQ1N2IgbGVnYWN5LXRydW5rCisxMjI2NSAwZDg4NzMzNDA4NDYyMjU2ZWE2NTIyNDBlYzRmZDMyOWU2YTFmZDUxIGxlZ2FjeS10cnVuaworMTIyNjYgNjFkZGU3ZWJmYTk1MTY4OGE4NGIwNTkwMGEwNTYyM2JmOTZjM2JmZCBsZWdhY3ktdHJ1bmsKKzEyMjY3IDRhMDdkNjk4NjRmNTc1MTIyMjFmMjc1ZmJiMWE2MWRjMTY5ZWQxNTkgbGVnYWN5LXRydW5rCisxMjI2OCBlMTUwOGY3MmM2MTBiYWQyMTA1YmRmYjgzMzg5ZDZhMGE2YWJjOWM4IGxlZ2FjeS10cnVuaworMTIyNjkgODU0N2QyNzdhMjJmOTYwYzVkYmM5OGJiNjYyOWNhNGNmMzE5MWI0YyBsZWdhY3ktdHJ1bmsKKzEyMjcwIGVhZjkzZDViYjQ2Y2Y2NWI5OWNlODY0MmU2YzUyNDNmMmE5MTFiMzQgbGVnYWN5LXRydW5rCisxMjI3MSA4ODEzNjI3YWFjNDY2YTAxZmQxOTZjNWE1OWE2M2QxYWNmOWNlNDBhIGxlZ2FjeS10cnVuaworMTIyNzIgZTIwOGIyNzRlYjgwOGM2YmQzZTE0MjVlNTI4NGY1NzY4ZjNkNjM2MyBsZWdhY3ktdHJ1bmsKKzEyMjczIDc3MGI0MGZlZDVmN2FiMTA2YzY1MWE3YmFlMGJhOTM5Y2NiOTMxZmUgbGVnYWN5LXRydW5rCisxMjI3NCBiMTE2YWZiODE3MzI4ZWMyZmRkMGQwODM4YWRiZTY0ZmMzZTA4MTUxIGxlZ2FjeS10cnVuaworMTIyNzUgNzcwZDg5NGUyMGJkOGQyM2M5ZTczZjVmMDRlZmQzZTQ5ZDU3ZmNmNyBsZWdhY3ktdHJ1bmsKKzEyMjc2IDhiMDg2MzQ5YTQ4OGNiMWExYmVhZDY0ZmY3YzkwZTRiMDMyOGQzOTcgbGVnYWN5LXRydW5rCisxMjI3NyBkYTk0NDY3OGIwMGUwYjhmMzMxYmM5Y2NjMzUxMTJjYTM1NDkyZTYxIGxlZ2FjeS10cnVuaworMTIyNzggYzQ2OTIwNDZiNDgyMDFiZmY4Y2VjMzIzMjlhY2EzMzJkOGRiZGIwMyBsZWdhY3ktdHJ1bmsKKzEyMjc5IDRiMThmOGVhYTE2YjJiZjhiYjM4NDc3MDExNGFmNDFjY2YwY2MyM2EgbGVnYWN5LXRydW5rCisxMjI4MCBjOTFjZTQ5YjQwNzUwODlhZDFkYzdkZTJiZTFkYzI4M2VjOWIzZTlmIGxlZ2FjeS10cnVuaworMTIyODEgNjY4MGZhY2I0ZDViNWUyN2I5ZGU5OTk2YmM3ZDhkYTljYjlhNTMyMCBsZWdhY3ktdHJ1bmsKKzEyMjgyIGJlMjRiNWI5MGRlY2Q2M2RhNWMwNWFiOGM1M2RiZGVjM2U0ZjhlYmYgbGVnYWN5LXRydW5rCisxMjI4MyA4ZGJhMDgyMjNkZWJhMTY0ZjA0YTk4ZmY1ZmJhODVlMDhiNGIxMjVlIGxlZ2FjeS10cnVuaworMTIyODQgZmFjYjQ1N2I0ZDMyZWQ2ZTIyNGY3Nzc4MzZhNDM1MTA4MTczNjQxOSBsZWdhY3ktdHJ1bmsKKzEyMjg1IDQwZjcyM2FjMjZlODI4MDczNzQ3MzNiNGNiMzEyNWY5MjBkMmI4YzcgbGVnYWN5LXRydW5rCisxMjI4NiAxYmVhZjkxNzkxMjViMjRhZjk5YjEyNDNhOTI3ZWNhMGY3ODM3Y2Y3IGxlZ2FjeS10cnVuaworMTIyODcgZWNiOTEyYmU0MzE4YTYzYzUyM2U0MDlmNzljOWViYmZkMjE5NTM1YiBsZWdhY3ktdHJ1bmsKKzEyMjg4IDA4ZGZiZWUwYTMyYTEzOTdmYjFiMWVhNmQ1ZWQzMTI5NWI0YjFjMjcgbGVnYWN5LXRydW5rCisxMjI4OSA3Y2RjZGY4Njg2YjNjOTFiN2QwM2Y5ZTg2MTM3NWQ2MDU2ZmUzNGMwIGxlZ2FjeS10cnVuaworMTIyOTAgOWU2MTE2NmVjZGQ4MWQ1YjA4MDk3MDU3MDBjYjFiZmYzN2M4NjUzNSBsZWdhY3ktdHJ1bmsKKzEyMjkxIGZlNzAxOTY5YmMyY2Y2Yjc5MTVkNTlhY2E3NTRkMjI0NGE0OTQ2YmEgbGVnYWN5LXRydW5rCisxMjI5MiA3MzdkMDVhOWJiNWU4YTlhZjk0Y2Q4NTY5ZWNkMDJiNjk3MWJlMDRkIGxlZ2FjeS10cnVuaworMTIyOTMgMjA5ZWVkNmEyZWY2NThlZDM4Y2JlMmMyMWFmNmFmMGY1MWM2MjgwZSBsZWdhY3ktdHJ1bmsKKzEyMjk0IDgzNmY5NDA4Yzk1NjVhYTU5YzgwMThkNTI5ZGY1Y2MyODkzZDNjYjUgbGVnYWN5LXRydW5rCisxMjI5NSA3ZWY1YTE1MjBhZTUzZDAxMTVlZmM3YzhjZGEyNDJjMjFmZDY2MmIxIGxlZ2FjeS10cnVuaworMTIyOTYgZGIyOTgyZmI2M2MwNGQ1ZDk0MzM5M2Y0ZWJkYmY4NzZmMmJiNGU2YiBsZWdhY3ktdHJ1bmsKKzEyMjk3IDljZmM1M2U1OTk2ZTBhYTBjOGM1YTQ2OWZiODlmMWEwYzYwNTkzNmUgbGVnYWN5LXRydW5rCisxMjI5OCA5ZDAyYWZhMDIyYzUyZmQ3NGU5NDRhNTczYTc0OWIyZmZlZWJiYjdhIGxlZ2FjeS10cnVuaworMTIyOTkgYzFlYWIxZGM3NTM2M2EzNDExOTFiZDU2NDg0MTAwNjJmNDc5NjM5ZCBsZWdhY3ktdHJ1bmsKKzEyMzAwIDkyOGM5M2QyYzEwNzFkYjlkMGM2ZGRlYmIzMDc1ZDVlMTFlZGM2MjggbGVnYWN5LXRydW5rCisxMjMwMSA1NjY4ZjhhM2E0MzA0ZmJjMTBhNDhlM2QxMTI2ODE4MjFjNWZjZTRkIGxlZ2FjeS10cnVuaworMTIzMDIgODFiM2U2Y2E0YTI5YWZiYjEzOGI2MjRjNzE5YTNmMTgzOWJkYzE4YSBsZWdhY3ktdHJ1bmsKKzEyMzAzIDEwMjcwMTE1Y2Q0YjgwNWNmZjM3ZTEzNjUyMzU5YzViYTA5NjA5NzggbGVnYWN5LXRydW5rCisxMjMwNCA4ZDZmODRjNTk0OGMyODUxYTAwMGRmNTMwZjY3M2Q3NWFlMWRhOWU5IGxlZ2FjeS10cnVuaworMTIzMDUgYTlhYWMwMDJlODQzNWJhMmI2NmE5YWRkNmJiMDM3YjJmODBhZWNiZSBsZWdhY3ktdHJ1bmsKKzEyMzA2IDQxNWI5ODQxMTcwN2YxMjIyZmYyYWMzMjYwMmM0OTg4MDUyN2FiZTkgbGVnYWN5LXRydW5rCisxMjMwNyAwYmZhZmYxMWM1NzM5OTc2YmZhYTQ3MTI5NTIwMmM1MzY0ODNiM2UxIGxlZ2FjeS10cnVuaworMTIzMDggOTNkNzAzMDhiZTE3MWJiNThhNDhhOWQ5ZmQzZmFjZjUzM2MwMDM1ZiBsZWdhY3ktdHJ1bmsKKzEyMzA5IGY5ODFjOWQzNmM4YWY4NTY1MzU2NTQ5ZmUwYWZiM2NkNzU5MjZiMDggbGVnYWN5LXRydW5rCisxMjMxMCAxZWFlYmFlYWEyMmI5YTJhMTYwOTRiN2ZiNWI4NGQ1MGVhZDEwNWQxIGxlZ2FjeS10cnVuaworMTIzMTEgMzBlZTg2MTcyMTY4YTMxYzEzYjQ0ZDNkYzg4OTNmZTk0NDQ0OGRiNiBsZWdhY3ktdHJ1bmsKKzEyMzEyIDg3MDEwOWE0NGUwZWJlMThhMGJiNmI3ZWE2ZjUwMDhkZjI3NjVjMGMgbGVnYWN5LXRydW5rCisxMjMxMyA0ZDA0NDAwNTYxMWU0MGZlYzM2OGEzOWNhMzliMDA0MTNkZWE5NWQyIGxlZ2FjeS10cnVuaworMTIzMTQgNDAxMGU1ZDI0M2Q2NmI4YjIxZWFiNTE0NzMwMzNhY2RiNzZmN2FiMiBsZWdhY3ktdHJ1bmsKKzEyMzE1IDE0MjBmODQwMDkyNDliODZkMTEzNjhkZTRlNGNiYmQyNTNkODc4Y2UgbGVnYWN5LXRydW5rCisxMjMxNiA2NjM3MzcyN2ZhYzg1YjI4MGJlNWJlZDVkY2VlZTkzMzI2OWI5YmNhIGxlZ2FjeS10cnVuaworMTIzMTcgYTNiMjUyNWM5MzcwNDA0Mjk5MTM5NjgxYmQ1M2ZlZDA1NzM4YzU2MCBsZWdhY3ktdHJ1bmsKKzEyMzE4IGJkMWNlNDEyMGU2Zjk1NDZkZWRmODVjYTk3ZThlY2YxYTVhYzIzODggbGVnYWN5LXRydW5rCisxMjMxOSA0NTdjYjg2OGMyNWU0NWE0MWI3YWQyZjNlYzQzM2YwMDg1NGQ0MGU2IGxlZ2FjeS10cnVuaworMTIzMjEgMjhkM2E5ZmNiNTc3ZGZjODU2MmYxODQ5YjRkZGM0ZTRiNjE4OWNhNSBsZWdhY3ktdHJ1bmsKKzEyMzIyIDE3ZTRkODE5NDliOWYxZWMwMzk0YzYxMDZhN2Y5Mjc0OWViMWM0MjIgbGVnYWN5LXRydW5rCisxMjMyMyBiYTYzYzZmNjAyNWI0ZjIzNWIxMGEwMjFhNzQ4NmJmOTJkZjlhZWRhIGxlZ2FjeS10cnVuaworMTIzMjQgNGU5NTA2NWE3MmExYTZmMmQ3M2M5OGU5NjBmMDQyZjUyZTgzNjA4NSBsZWdhY3ktdHJ1bmsKKzEyMzI1IDViZGY5MTY1MTM3NzI2ZWI3N2JlYjZlNDNiMzkxOWQyZDA5MWQ4MmIgbGVnYWN5LXRydW5rCisxMjMyNiBjZTBjMTdjYzc3Y2U1MGZlODM3MTZiZTdjMWU1ODRiMjZiNDhiOGFkIGxlZ2FjeS10cnVuaworMTIzMjcgZWY5N2I0ZjZkMTg3NWZjNmViNTAwYzM1MTM4YzUyMTNmOWYyMTI4NCBsZWdhY3ktdHJ1bmsKKzEyMzI4IDgwMTUwZjljOGM0MWZjZTlkYTJmYzEzYjNmMDcxOTkwOTBmZjNiZjcgbGVnYWN5LXRydW5rCisxMjMyOSAxMzk5YmVmN2FmNjEzNTVkNmVlYmVlMzZhNjE0ODc0MGNjYjNkOTMwIGxlZ2FjeS10cnVuaworMTIzMzAgYWI1NTY5OGJmZjFjYTlhOGEwYjExODBiYTYzOTkyZDhjOWE5MmNkYiBsZWdhY3ktdHJ1bmsKKzEyMzMxIDFkYWJjNzNiN2IwYmNjODJiZGNkYzZhOTdhMTE1NjFhNjAyYTUzNjQgbGVnYWN5LXRydW5rCisxMjMzMiA2MWNhZmE5N2ViNzdhZjA2NjliNzJiN2Y3ZWZmMmVhMmU5MGRhM2RlIGxlZ2FjeS10cnVuaworMTIzMzMgZTVjYjE1N2ZmMDkzMWZmMDVlMzZiZjNlOWJjNGViYzRhZjNjMzkyNSBsZWdhY3ktdHJ1bmsKKzEyMzM0IDgyNDM5ZDk5ODdiMmNmNjdhOTAxYzcxZmViYzdiZTVmZjZhNDdmMTkgbGVnYWN5LXRydW5rCisxMjMzNSBkZDNjN2ZjMGEzNGQ0YjljZmY0OGZjYzU5ZTY0MWQwYTE4YmJmMWEwIGxlZ2FjeS10cnVuaworMTIzMzYgYjA4MjFiMGJjY2YwZmQ1ZTQ0ZDM2ZWYyODBlMWMwYjA4OTU2NTI4NSBsZWdhY3ktdHJ1bmsKKzEyMzM3IGY3NGRlNzdmMDUxMGVmM2FhOWUzNjFkMGI5NzViOWQ2MTgyYmJhNjAgbGVnYWN5LXRydW5rCisxMjMzOCAxM2QwZjYyOGM1NzIyOTBmMmM0ZDg4MTE0MjA1NDZhYTY4N2FhMTZlIGxlZ2FjeS10cnVuaworMTIzMzkgYjhmZWRiMjI2ZjA5YzEwODRiYWI2ZWJhZmNjMDIzNjAyZGY4NGU1YiBsZWdhY3ktdHJ1bmsKKzEyMzQwIGFhYjBmMzQ2M2FmMDZiYzA1YzdiNjE1Y2YxNTYwM2EzNmE3M2I1MDIgbGVnYWN5LXRydW5rCisxMjM0MSBkZGYzZDU1MjIwYjkwZDgyMTU1Y2I1MjQ5YWQ3MDMyY2JlYzQ2MTk0IGxlZ2FjeS10cnVuaworMTIzNDIgODZjYjc3ZmIxOWU4OGFkZjhkMzA2ZDcwZTkyYTllYjJiN2VlNGE5NiBsZWdhY3ktdHJ1bmsKKzEyMzQzIGYzNGJiNDdhYWZhY2FjYWQ0MzE3YjY0OGFiOTMxZDM3YWY3Njc3OGEgbGVnYWN5LXRydW5rCisxMjM0NCA0OTY3MDAzNzRmYzQzOGNiMzQ3MGY5NDBmNzM4NzYyNDk5Y2ExNmUxIGxlZ2FjeS10cnVuaworMTIzNDUgOWEyOTNlNzdjNTU0NmNkN2ExOWYxZGIwZDI1MWFmZjM2NWJhOTk4YiBsZWdhY3ktdHJ1bmsKKzEyMzQ2IGQ2NGNlMjk4MDFjYjE3MDlhZDA2YmE4ZmZkM2UwZTVjM2ZjNDNjZGMgbGVnYWN5LXRydW5rCisxMjM0NyA1YmFjNTZmZmNjYThmODAxNGIxNWM5MzMyNDNiZTVkZTU1NWFhMmM3IGxlZ2FjeS10cnVuaworMTIzNDggZTE5Y2Q4ZWMyMGEyZThmZTczYzZhNjA1MDI4NDRmY2Y4MmI4M2U2YiBsZWdhY3ktdHJ1bmsKKzEyMzQ5IDVlOWVmOWQ4NTc1YmJjYjU3NTQ5YzdmY2EwNTMyNGU3ZDc2NTBjZTggbGVnYWN5LXRydW5rCisxMjM1MCBlYzgwYWQyNWNhODYxMzI4YWY1MDY4MzllOTg1OGYxYjYxMWFkNDUzIGxlZ2FjeS10cnVuaworMTIzNTEgNmM2ZWUzYmIzZmNjMjJkY2RlYjA0NzgzNjEzNjYyMjE2M2Y2YjNmNyBsZWdhY3ktdHJ1bmsKKzEyMzUyIDAxNDc3YjFhNzRmOWMxYzU2NzQxOThkYjlkZGQ1NDg4MjkzZTg4MDEgbGVnYWN5LXRydW5rCisxMjM1MyBiNTMwYmM2MmUzYjk5MWI4MTNkNDBmY2I3ZGZhMzExOWIyMDlkNGMzIGxlZ2FjeS10cnVuaworMTIzNTQgZTZjZDY4M2EyMmY4MTg5ODE3YjA3NDAxOWUzNjNjM2ZhMTRkN2NkNCBsZWdhY3ktdHJ1bmsKKzEyMzU1IDMwYzFjNDBjZDgwZmQzNjlmYzUzZmY4MzBiNzQyYzIyNjM3ZThkYjUgbGVnYWN5LXRydW5rCisxMjM1NiAxZThmZjhhODc5MmVmN2M5OGNjMjcxN2I0NmYzZjk5ZjVlYmE4M2NjIGxlZ2FjeS10cnVuaworMTIzNTcgY2RiNzcyYWFiYmEyNWQ1MDNiZmU5ODU3NDA0N2E4NWM4YWEwY2JhOSBsZWdhY3ktdHJ1bmsKKzEyMzU5IDYwNWVhZjhjYzZkMGVjZWRhMjE3NjgyNmNmMDg0NDRjMzcwZmM2MmMgbGVnYWN5LXRydW5rCisxMjM2MCBhMTU4NWY2OTI1NWRhMDBkMGUxZTQ1OWI2ZGFmYTcwMThmNDgzNTUzIGxlZ2FjeS10cnVuaworMTIzNjEgNTFlODY4ZWYzYjMxZTVhMTk4ZGJmMmY0YmMwZjVmOTU0MjIzOThkMiBsZWdhY3ktdHJ1bmsKKzEyMzYyIGI5M2MzOTBmZDI1ZDVmMTRkZmViNzU0NjM5Zjk4MTMzZmU3N2Y3ZmUgbGVnYWN5LXRydW5rCisxMjM2MyBhN2QxY2Y5NWRhZGM1OWU2NDk0NzkxOGJhMjlhNDRjZWE4ZWZkN2I1IGxlZ2FjeS10cnVuaworMTIzNjQgOGE2NTM2YzFhMGE0NjI2ODA2MTIzNWExZjQ0MDM2N2NhZWM3Y2I5YSBsZWdhY3ktdHJ1bmsKKzEyMzY1IDYwZjQyNTg2ODY2ZWFmMjUzNWY1YjI0YzEwMjkwYzg1YTg1MmI1NGUgbGVnYWN5LXRydW5rCisxMjM2NiAwYWFlYTQ4OTAyZTQzYjI3NjA3MzQ4MjExOGQ1OTE5ZjgxYTQxYTc5IGxlZ2FjeS10cnVuaworMTIzNjcgZjc3Yjk0MWEwZjkzNmRlM2JkMDFmZjczNzEzMzM2NWE3YzdkZmNkMiBsZWdhY3ktdHJ1bmsKKzEyMzY5IGM5NWZmZjhmMTgwYThkN2NjODZlMWNmZGVlOWNlM2UwODkzM2RiODIgbGVnYWN5LXRydW5rCisxMjM3MCBhNThmMzYzNTJjNGYzZmVkY2MzMTRjNzJmMGJiM2I3MjA5ZDQ2MmFhIGxlZ2FjeS10cnVuaworMTIzNzEgMzNjNGJhNzc3YTNhN2QxY2EyMjI0MzM1MjUwODQ5ZTJlZjcwMTQwNCBsZWdhY3ktdHJ1bmsKKzEyMzcyIGVlMzZlMWYxMzBjY2JiNzlmN2ViOTNlZjdlYTUyZTQ5MzM1NmExNjQgbGVnYWN5LXRydW5rCisxMjM3MyBlM2E3OWY5M2QxZDNlNThkOTE0MjllOWIxOGFkOTA3ZjllZGY3YTU0IGxlZ2FjeS10cnVuaworMTIzNzQgZjM1MmVlYTY4MzczNDkzNWM2YTdkNDY3MTI1NTZmYjE1MmQ0ZjBhYyBsZWdhY3ktdHJ1bmsKKzEyMzc1IDlkYTQyNDkzNWY3ODY3Mzg2ODcxOGViMjY3NGMyZjdkZDFkYTQ4ZmYgbGVnYWN5LXRydW5rCisxMjM3NiAyYWIxODk1ODVkMjM4NjU4YzkzZDYzM2Q0ZGM3ZDZlZTJmN2MzYmIxIGxlZ2FjeS10cnVuaworMTIzNzcgNzc4NjI5Nzg0N2FjYTBhNjBjM2E4OGI2MmM3YTQyM2FiNWExYTAzZCBsZWdhY3ktdHJ1bmsKKzEyMzc4IGY3OGZkOWI2NzI4NGFkYzRjYWVmNGUwNTQ4ZDMxZjc4N2E4MDkxYTUgbGVnYWN5LXRydW5rCisxMjM3OSAxYWMzNDg1ZjllM2UzNjc2YjJmZThjZDg3NjUzMWZkZWQ4ODM5OGZlIGxlZ2FjeS10cnVuaworMTIzODAgZTE0ZmVlZTRjNDU2YmM4NmUzZTI5YmE0OGY2MTEwZDAxODBkY2RkMSBsZWdhY3ktdHJ1bmsKKzEyMzgxIGIwZWRjODkyZmM3ODJlOTBiMzdjODkzNzZiNTNmMGQzZjMwM2E0N2IgbGVnYWN5LXRydW5rCisxMjM4MiA2NTkzN2ZmNzE4ZGVmYzVkYWUyOWM3NjJkN2EyMjk2ZmNjZDM5Mjg2IGxlZ2FjeS10cnVuaworMTIzODMgZGU0MWU4ZDgyMTFkZDM1ZGI2YmZhMjM5MTA0YzdjOWFkNzVkZDg4NyBsZWdhY3ktdHJ1bmsKKzEyMzg0IDM1ODljMGU1NmVmMjUxNjYxZDMyNTAyN2NlNjA4OGU3YThiYTZiODkgbGVnYWN5LXRydW5rCisxMjM4NSA3MTk1ZWMyOTZiM2Q5NDQwMzQyZmI4YTc4ODgxNGRiZTEwYmUyMWQwIGxlZ2FjeS10cnVuaworMTIzODYgMTRkY2JiMzRiOWRkM2FlMzFmMzc0MGI1MTVkZmNlYTNkZmVjM2JjOSBsZWdhY3ktdHJ1bmsKKzEyMzg3IDAzMGVlNTBiZDhkMWI0ODU4MDg4NjQzMmM1YWEyNTU4ZDM3MGVjZTMgbGVnYWN5LXRydW5rCisxMjM4OCBmYWU2ZDI0Yjg5N2JjZTY0YWJkOTY3OTg2NmNlYjQ0MGIzMjNkNjI2IGxlZ2FjeS10cnVuaworMTIzODkgYWU5MDhlZjkxY2YwY2M1Njk4ZjFhOGFhMTczZGU4M2UwNmYzZjQwOSBsZWdhY3ktdHJ1bmsKKzEyMzkwIGRkYjgzYjI1MjI2ZWI3MDNiZjAwMDBjYzJiMzI5NGMwZWFkNGEwMDIgbGVnYWN5LXRydW5rCisxMjM5MSA5ZjEzZDczODBiZjg5ODMzMjE5NGJlZjIyMmVhN2M0MjkzYmIzMmExIGxlZ2FjeS10cnVuaworMTIzOTIgMjkxYzJkMGE5NjgzYzRjOGU0Yjg5N2ExOTNlYjdjZWRkNzIyNTcxMCBsZWdhY3ktdHJ1bmsKKzEyMzkzIDViZDZkY2YxNmQ0MWFiZmFiMDI5N2IxY2QxM2UwNWM4MmJhZGUzYTQgbGVnYWN5LXRydW5rCisxMjM5NCBiM2ZiODQxMGY2YWU5OTI1YjliNzJmM2MwNmJlY2QzZTAwZTBjZTRjIGxlZ2FjeS10cnVuaworMTIzOTUgN2UyZTUzZTc0OGM4NTg1YmJlYTlhZGYzNTU3YzEzNGNhMjg0Yjg0ZSBsZWdhY3ktdHJ1bmsKKzEyMzk2IDRkODZiNWE1YmY5ZTI0YTg5MjEzYjMwY2ZkOTNjOTMyMDcyMjhmMDkgbGVnYWN5LXRydW5rCisxMjM5NyBhMmQzMzdiMmUyMWJhNGJmNGRlNDEzNzU2MTE5NjM4YmFlZTQ3ZjJlIGxlZ2FjeS10cnVuaworMTIzOTggZjg4ZDE0YWRlZDc3MDQwYWZkZWViY2VlZmQyOWVkZmNkNTNlYjUzNCBsZWdhY3ktdHJ1bmsKKzEyMzk5IDdiZGVmNGJlZGQ1Y2U2Mjg4MTIxNWFhY2FjNjMwMmJhOTAwOTViOWYgbGVnYWN5LXRydW5rCisxMjQwMCA5MmFlMTE1NTczYWYyOWJlZjA0NmY2NjkxMGNlZGU1NGYxODUyYjI1IGxlZ2FjeS10cnVuaworMTI0MDEgNWFkMWEzNWY1NDBjNjU5MGJlMjJlOTAwOGE5MTEwNjUxMTM4MTNhOSBsZWdhY3ktdHJ1bmsKKzEyNDAyIGJhYzk2NTU1MmY3ZTZjNGRmOTRlMzYyMTQ4MWRkYTJiNDlkM2E2ZTUgbGVnYWN5LXRydW5rCisxMjQwMyA2OTUxMTNjNjUwYmI1OTYyYmEyNDdlZTNiMWZhMzQwMjM3OTNiMjQ2IGxlZ2FjeS10cnVuaworMTI0MDQgN2FhNTE1MzIwMDZhOWUzMzhjZDE2OTllZDZmYmRhOTg5NWQ1YmEyNSBsZWdhY3ktdHJ1bmsKKzEyNDA1IDFjNDY5NzA4MGQwNzE5YWQwZWQ0ZDRmODQ3ZGY1YjZiZTUyN2NmMTggbGVnYWN5LXRydW5rCisxMjQwNiBkOTVhZmU4N2RiNGRjYWI0MjQwYzIzZGU0YzI4NzZmMzMwMWVjMzkzIGxlZ2FjeS10cnVuaworMTI0MDcgNmNmMDFlYWIwNWEzMmFhYmMwOWVkMjNjZjExOWY5ODJiMmQ1NmFmNSBsZWdhY3ktdHJ1bmsKKzEyNDA4IDc4MDU5Y2YwNjdkZWZiYTBlZWUwYTViYmUxMDkyYzYyMDQ2YWE0NWIgbGVnYWN5LXRydW5rCisxMjQwOSAxMTQxNGYwMjNhZDBhMTMzMzEyNGI2YzU5NWJiYjFhYTliMzIwMzcxIGxlZ2FjeS10cnVuaworMTI0MTAgYThhMDcxOTk2YTczZDk3ZmIzMDhhYTQ3YjgxYzBkOTQ1OTIyYzlmMyBsZWdhY3ktdHJ1bmsKKzEyNDExIDM3YzNhZmZiMDViYTIzZWY2ODkwMDdkZDllNjk5OTBlMGI5MGM4OWEgbGVnYWN5LXRydW5rCisxMjQxMiAxOGMwNmQzOWNlMmMyYTg3YzE1Y2Q5NTIwOTk3ZGM2ZTQ0ZjgyYzJjIGxlZ2FjeS10cnVuaworMTI0MTMgMjBkOThjYTNkMzJmYWJhYzBmY2YzYjNiNGY4YTY3N2ExMjVmZjAyOSBsZWdhY3ktdHJ1bmsKKzEyNDE0IDkwMzQ0YzI2MWYyNDUwZjU3ZmIwZjBhZTAyZmIwMjBlMGQ4ZGMyNzEgbGVnYWN5LXRydW5rCisxMjQxNSBiNzRmNTVlN2QyMDhmNzA3NTQwZjQyMzY1YmZiNWZkYThmMjJjYjNiIGxlZ2FjeS10cnVuaworMTI0MTYgOWUyNTU1ZWRjOTRmNDg4N2UwMzY1YWMwYzEyNzI1ODBhY2ZiNjMxOSBsZWdhY3ktdHJ1bmsKKzEyNDE3IDI0ODYxNmQzZWQxMmNkYzllMWM1YmZlY2YzOGUyZjcyZDk2Zjg1YzQgbGVnYWN5LXRydW5rCisxMjQxOCA5YTdlNzhlOGJkZmEyOTIyMzcxNjQ1MTE5YThiMzAyNjg4NzI5ZDgwIGxlZ2FjeS10cnVuaworMTI0MTkgMjg2ODU0NzcxYjExOTExZjhhODUyNzEzYmQwODM4N2MxMzQ3YzBjNiBsZWdhY3ktdHJ1bmsKKzEyNDIwIDM3YWE4NGQyNzhjNTU5OTg0ZjNiZjY1MjEwYmE2OWYyY2M5NWY2OGMgbGVnYWN5LXRydW5rCisxMjQyMSBhNzgxMDAzNzA1MTVjZDEzZmFiZTRjMzU2ZTRmMGY4OWExN2ZmZGMyIGxlZ2FjeS10cnVuaworMTI0MjIgNjMxMjQ4YzljNjJlMTYyMWZmOTVkNDM2Mjg5Y2I0NmM4N2RlNWVkOSBsZWdhY3ktdHJ1bmsKKzEyNDIzIDFhNzk5ZDFkNGI1YTZlMTljMzhlZDE1ZGRmZDM4ODEzZmVlNjEyOTAgbGVnYWN5LXRydW5rCisxMjQyNCA2YzEwNzcyODQwMDFkNjExZDkwNTU0NjAxZDI2NjM2MzhmMmEyY2Q5IGxlZ2FjeS10cnVuaworMTI0MjUgNzZiZGFkMjNmY2RiOGE3NWVlYjI2ZmQyMmNhODY3YzVlMjk0NTkxYiBsZWdhY3ktdHJ1bmsKKzEyNDI2IDViMTc3ZDUxYmEyNzU4MTNhOTEyMzJjZmJmMmJmOGExYjIxOTlkYjAgbGVnYWN5LXRydW5rCisxMjQyNyBhNThkOGU0NGNlMzJmZDQ2NzQwNTA1ZGI3YmIyOGI0Yzk5ZDBhYTBlIGxlZ2FjeS10cnVuaworMTI0MjggMDQ1NTQwMjY3N2E4YWRmMWM3ODQzMTE2ZmE5NzlmZGE3MTQ0ODUwMCBsZWdhY3ktdHJ1bmsKKzEyNDI5IDM1ZjU2ODQ4MDc2NGFmZmIzOTZkYTUwNjVhNjk5YWM5ZjAyMDcyNzEgbGVnYWN5LXRydW5rCisxMjQzMCA0YmRmZTVkODBhNmY1YjkyM2I1ZGJmYWU4NTcyODk3ZDE5OGFkZjViIGxlZ2FjeS10cnVuaworMTI0MzEgNWY0ZDMyYjFhNjU4M2ZmYmYzY2RmMTk4MjlmMzdiZDA5ZmJmMmNhYSBsZWdhY3ktdHJ1bmsKKzEyNDMyIGY4NjdlMTNkYTU3NGNlN2JkZWEwNDI0YWFkZjY0YTcyMzhkODdjYzEgbGVnYWN5LXRydW5rCisxMjQzMyAwMGZjMThhYzZhZWI4ZTdmMzI0NzYxNGFkNmJlYWIyMWNhOWRhODkyIGxlZ2FjeS10cnVuaworMTI0MzQgMWRlM2RiYjI2YzJmYTJlYWFlMmYzNzFkZmUxMTk3MTI2Y2NjZWI1NiBsZWdhY3ktdHJ1bmsKKzEyNDM1IDE4OWYxZWM1YzY4ZjNkZDY3ZTJkYTQ4YjI2OGUzNmY2ZmNlYWE3YmUgbGVnYWN5LXRydW5rCisxMjQzNiAxNWU5NzYxZTU0ZGUxZDU3YWM0ODY1OTU1MzkyNWRiYWJhOTNjZDM1IGxlZ2FjeS10cnVuaworMTI0MzcgYWQ3NDlmYjBiZDRiZDQ1YmE5NDg5NzFhMjU0YTAzNjdhNGM1Y2QyMyBsZWdhY3ktdHJ1bmsKKzEyNDM4IGE2NGE2MTViYjc1NjMzMGY3YjlkNWEzYmYwYjA0NWY3NzE4OTllMTEgbGVnYWN5LXRydW5rCisxMjQzOSBjNTkyYzE3NzFkZmI1ZTYzZmU3ZTlmNGE5ZGEyNTBiNTc0YjEwZDA2IGxlZ2FjeS10cnVuaworMTI0NDAgMzM3ODQzYzZhMTgzNjlkNTc1MGJlYjUwOTA2MGM0ZTM3MDEzNTlkOCBsZWdhY3ktdHJ1bmsKKzEyNDQxIGZhZjM1MWUzMTU3MWQ4OGFlNzY5MDA5ZjlmNzBhMWE5ZjY1ZTNkN2QgbGVnYWN5LXRydW5rCisxMjQ0MiA5M2I5ZWFmZTFmMWRlODJhMWEyMDcxZjg4OTBkZDVhODIyNjlmNWI1IGxlZ2FjeS10cnVuaworMTI0NDMgMDZjN2ZmZjUyNzRhN2JmZDNjOWM2NmM4OTEyMDEyMzMxNjYyODI0MSBsZWdhY3ktdHJ1bmsKKzEyNDQ0IDYyNjMyN2E3OGE4ZWUzNmE5YTRlYjM1OGZkNDgwNjQ3ZTU3MDdmNjggbGVnYWN5LXRydW5rCisxMjQ0NSA0ZGExZmFmMjk3YWI4ZmEzNzQ2NDYxYWU1NTUzMDYyOTRlZmJlOGM1IGxlZ2FjeS10cnVuaworMTI0NDYgMzk2YTM4ZWE5Yjg0ZmFjZWIyNmFkNTM3ZDYwNjc2YjZkNzFkMWYxOSBsZWdhY3ktdHJ1bmsKKzEyNDQ3IGMzOWM0YmM0NWQzOTFlMmRmMWRiOGExY2Y1MTlkZDM5ZGZlY2MzZTUgbGVnYWN5LXRydW5rCisxMjQ0OCBjODc2NjJlZjNmMWRiNThhMjM0M2NhNDM5NjVjOWQwOGFlMGJhZTE3IGxlZ2FjeS10cnVuaworMTI0NDkgN2M5OTZmMzQwNDcyMGEyMzcwYzIzODNjNWFiNGU3ZTNmMzU4MTNlZiBsZWdhY3ktdHJ1bmsKKzEyNDUwIDc1Mzk4NTllOTg1YTE0YTRhYzdhNDRiMGNjNzE3ZmVlMjdjYjU5ZDggbGVnYWN5LXRydW5rCisxMjQ1MSA5OGUzNzM0NzM3OGIwMDZjZTZmY2M0OTIwOGUyMjRhY2M4YzNjMzExIGxlZ2FjeS10cnVuaworMTI0NTIgYWU4M2Y2MWQzY2Q3ZTcxOTlmZDUxYTM0NGI1ZGExOThlYWUxZjBlMCBsZWdhY3ktdHJ1bmsKKzEyNDUzIDQwNDYzZDUxNGYzZWE0YmE0OGEyYzI2ODQ1NTMwMWUxYTBlZWViZDQgbGVnYWN5LXRydW5rCisxMjQ1NCBlNWQwZGY4MjRiZjM4Mjc0OGMxZTBkYmM0ZmMzNmEwNTg2NjVkMTlkIGxlZ2FjeS10cnVuaworMTI0NTUgY2EyNzQ1MjcxMTExNjQwMWMwMjE1MjgwYWU0Y2Q5YzA5Nzk3NzE3YiBsZWdhY3ktdHJ1bmsKKzEyNDU2IGM0MDRhNmIwY2RiMWUyN2E1N2EwMGMwZTM0ZTZmNTFkMWMxNWRhMDQgbGVnYWN5LXRydW5rCisxMjQ1NyA5YTg0MmI4MWQ5YzNlOTRkZTcxYTQxZmRlZGExNTFlMDVjYWZlM2JiIGxlZ2FjeS10cnVuaworMTI0NTggNzE2ZGMxZDFkYmZmODkwMWMyNTkxMDFhODhhZjBiYjkyZWFhY2I0ZCBsZWdhY3ktdHJ1bmsKKzEyNDU5IDU3YmNjNmVjNjM4ZjZlYjljZWQ5MTIyMjhiNTkxNDJlYjk5ZmY2NTYgbGVnYWN5LXRydW5rCisxMjQ2MCAyNzUwZTFkZTY4MjlhZDE3OWJlMjQ3ZjFjYjA5YWMxNzgzY2ViMTQxIGxlZ2FjeS10cnVuaworMTI0NjEgNTcyZTEzMWFlMzY5MGZiNWQyMDQ3OTA0MWI4ZGNlODRjNjg4Mjg4OSBsZWdhY3ktdHJ1bmsKKzEyNDYyIDkyYTI1ZDUxZmYyNmNlMjUxNWQ0MGUxZjhlZGVmOWJkZjdjOTJjMTAgbGVnYWN5LXRydW5rCisxMjQ2MyA4NzllMzQ5MWI2NjFiOGU1YTViZWJhODYyM2E3ZTU2OTE5ZGU0MjZhIGxlZ2FjeS10cnVuaworMTI0NjQgODk0OTYwZmE5MGJjNzU1OWI3YTVlNzkzMmVhZjM1OGFlZjRmZTQ4MyBsZWdhY3ktdHJ1bmsKKzEyNDY1IDBkMjc5MWM3MjA2ZGFmYmFjOWFlOGFkOWM1Njg3ZWMxZmEzOTg3Y2UgbGVnYWN5LXRydW5rCisxMjQ2NiBkNDRjYjg3ZTUwMGRiYmM3YTE4OTViMTMwOGNhMmRiYTZjZWZjZGJiIGxlZ2FjeS10cnVuaworMTI0NjcgYzEwOTFlODJlNWFhYjA2ZGQ0ZDI1NDcyYTE5YjU1ODcyN2ZhZjNjNCBsZWdhY3ktdHJ1bmsKKzEyNDY4IDA3ZDMzMzQ4NWE1ZTA4YjI0ZjcwNzQ5ZDMyM2M1YWNhY2E0NTQ2NzEgbGVnYWN5LXRydW5rCisxMjQ2OSA0NDE0NmMwNmU3ZWQzYzc4N2ViMDExY2U0NzgyN2FiYzAxMjg4NWVkIGxlZ2FjeS10cnVuaworMTI0NzAgNDg1NTAyYzQyZDg5YTVkNjhlNGZmYTkwYjBiYzU3ODhlYTNlZjJjYyBsZWdhY3ktdHJ1bmsKKzEyNDcxIGVlODRmNDQ1ZTZkN2ExY2Y4ZjhlNjljNTg4ZWRhYjllMDE2NWNmYzMgbGVnYWN5LXRydW5rCisxMjQ3MiA4ZWZhMzdhNzcwYzY0N2I2NTg1ZTZmZGEzMzU5MDE1NGMyZjdjZmYzIGxlZ2FjeS10cnVuaworMTI0NzMgMDM5MGFmNmFjZjdmYTk4OTVjZGJmZDg0NjQxYWFiNmNhZjA2ODBmYSBsZWdhY3ktdHJ1bmsKKzEyNDc0IDE5ZmRhZjM2N2Q0NWI2ZGQyNDFmMTFkOWVkYTExMWNlOTZhNjdjYzEgbGVnYWN5LXRydW5rCisxMjQ3NSA0ZWMzYjNjYjA3YzhhMWVhMDI1MmQ3MTU1NmUxYmZiZTdjMmVlMzYxIGxlZ2FjeS10cnVuaworMTI0NzYgNjJmYTAzYTMzM2FhZmVkY2U3MmM4ZWU5ZTM3YjljMGY2YTIzM2U1MSBsZWdhY3ktdHJ1bmsKKzEyNDc3IGYxYTUyMGQyNjMxYThlY2RiZDJjMjQ5ZWMzMDdmMWQxNmNhZWYxMDYgbGVnYWN5LXRydW5rCisxMjQ3OCA0ZTJlZmY5NjhjZjVjNjcxZDEyYTVjZmU0NWRjOWNjODE0MzZjY2FkIGxlZ2FjeS10cnVuaworMTI0NzkgZjhmYzkxYjAxN2ExNDMxNWFmYmRlNWNmMTQ2NDM2OTM0MGZjMGUzOCBsZWdhY3ktdHJ1bmsKKzEyNDgwIGY2YjJmMjBkYTU4MTY3ZGM4NjY2MTZlNmI3MjMwMjgxM2QxM2FlNzkgbGVnYWN5LXRydW5rCisxMjQ4MSA0ODllZjdmNjQwNDEwYjJjZTdmM2U5OGY4YzllYzY1MDBhZDI5M2U4IGxlZ2FjeS10cnVuaworMTI0ODIgZGNiZTcyYTBiMzkyNmI5NDJlNmFjYThhMmE1Y2QyYWEyN2QyODg4NCBsZWdhY3ktdHJ1bmsKKzEyNDgzIDc1OTEyMWUzZDliNmQ2NzI5NWQ4OGMxN2RhYTA5YzFkZTc1MjhkZWIgbGVnYWN5LXRydW5rCisxMjQ4NCBhZGZhY2JjYmQ5MzYxYzkyOWUyZGZlNDQ2MzU5MjY1Y2JhOTEzZDczIGxlZ2FjeS10cnVuaworMTI0ODUgYzg2NmYxNjYzMzFiYjY2NTVmN2Y3NGE3NmIzYmZkZDQxYTk5ODFiMyBsZWdhY3ktdHJ1bmsKKzEyNDg2IDRhZjM4YTQ1ZDI5YzhjOTIwYTg2YmRlOWJkNjFmMDMxZTM1ZjhkNmMgbGVnYWN5LXRydW5rCisxMjQ4NyBhNmNiODhiNTgxNjUyM2YzOTM2MTUyMWIyZmZmYzlhNDZlOWE4Y2U4IGxlZ2FjeS10cnVuaworMTI0ODggZDRiOGRkZDlhNGZkMGZkN2YyMDQyMmE2N2VjM2QxY2I4ZTNhZDQyNyBsZWdhY3ktdHJ1bmsKKzEyNDg5IGI3YmNjMmNkYTFiM2IyNjE4MmYyOGFlZDkwMDViMTEzNzgzZjc3NjQgbGVnYWN5LXRydW5rCisxMjQ5MCBjZmJjYWI4MTUwZGE5MTc0MzA0N2JhMmFlYTZhN2E1NzEzYmUyNTJkIGxlZ2FjeS10cnVuaworMTI0OTEgNzhmZjIwM2VhZDI0NTRkNGYwZjY2ZGNiNGM2ZmVhZDI1NzdkNDZjNCBsZWdhY3ktdHJ1bmsKKzEyNDkyIDEyNGVmNjk0YzI4NDQzZTQyMDZmMTQ4ODljNGFkMjFmZjYzOTVmNzcgbGVnYWN5LXRydW5rCisxMjQ5MyBkZGJiZWQ4Y2I4MzBlZTQ5ZGFjODdjNTJlYTlmNzE2YTA5YWYxMjQzIGxlZ2FjeS10cnVuaworMTI0OTQgMDA5YzliYTlmNjU4YjI1OWM3ZGNjZGU0MGQ4NmQ2YWIxMjg2ZDk4MiBsZWdhY3ktdHJ1bmsKKzEyNDk1IDE2YmQwZmRlMDlhZWNiNzIzNjdmNTVjZTdlNjhkNTIxMDY0MjhhZTcgbGVnYWN5LXRydW5rCisxMjQ5NiBhNzhkMzA1NmFiNjEwNGIzNTAyZjJkMzU5ZDRjYzIzOTQ0ZDUwYWNjIGxlZ2FjeS10cnVuaworMTI0OTcgYmRkZThmYmFlYTU4YzdkY2UyZjZlYjZhNTdkZjczYWRiNWFhNzhiYiBsZWdhY3ktdHJ1bmsKKzEyNDk4IGVlZDBjYWNmNGM2NGQ4ZmYxZWNhMzdmMTVmMzVlZTdmM2MyNDQyZjIgbGVnYWN5LXRydW5rCisxMjQ5OSA4YzZlNzA1YjZiOTcxZDQyMTI2YmEzMDA2MTgyMDYyODEzZjVlZjc3IGxlZ2FjeS10cnVuaworMTI1MDAgYTFiY2YzZjI5ZjY2ZGY1ZDQ2MzMyODY4NDFiYzU5NGZhNzVjNmEyOCBsZWdhY3ktdHJ1bmsKKzEyNTAxIGMwZGFmZmU0MDAzNDY4OWZjZDIyMmY4ZTJjN2E1NDQyYTkxNzI1YmYgbGVnYWN5LXRydW5rCisxMjUwMiA0NDE1MDAwMTlkNTBhY2MyNWM1ZmViNGQxNTE2ZmRlZjQ3ODMwZGVkIGxlZ2FjeS10cnVuaworMTI1MDMgMmIyMzhkMTlhZTg4YTdjYmIzNzNjNjUwNTc1NGMwZmQxYTIwZTczMSBsZWdhY3ktdHJ1bmsKKzEyNTA0IDRhYjVlOWY4MzlkOTc0NmQ5ZjJmZjk1MzA4NTFmYzdhZWU5MWI2ZGYgbGVnYWN5LXRydW5rCisxMjUwNSAwYTU2ZTUwODI2ODBiOWYyNTQxMGMxNjljM2JhNzA3YTVlZmE1NjkxIGxlZ2FjeS10cnVuaworMTI1MDYgM2E0MjA3MTdiYzhhNDJlOTU3NTAxZjA1MDAwYjNiMTkyOWY3ZmZhMyBsZWdhY3ktdHJ1bmsKKzEyNTA3IDc3YTk0NTMxNTI5ZWMyMTJhNzRlOGJhODc0NTJlNjc5NWY1NWViN2IgbGVnYWN5LXRydW5rCisxMjUwOCBmZTBiNTIyZTQ2Y2IzYzg2MTMzNDkzYjQyZDM2NWRjOTI4NjBlOTJjIGxlZ2FjeS10cnVuaworMTI1MDkgZWY1Y2YxYTRlNTJhOWM0ODU0MGM5ZmQzOWMzOTJlZDc3NTM2ZDBiMiBsZWdhY3ktdHJ1bmsKKzEyNTEwIDU1ZjhjNzAxYzlkYWQxMWE1NDFjNzBiMDAzNjEwNzFkNGQ5NGI1YWEgbGVnYWN5LXRydW5rCisxMjUxMSBhYjZkZDcwZjI1MDc2ZjY4OTI0YTg5OWNkMGZmNzQ4YjkyMzljMGExIGxlZ2FjeS10cnVuaworMTI1MTIgNDY3MWFlMTAzNWIzODk1OTkwOTgzN2FiYzZkOGUzNjk0NTlmNDcyZCBsZWdhY3ktdHJ1bmsKKzEyNTEzIDQyYjIyOGQ3OGJlYWQxMmQzM2U3ZDAzMGM0YjM2ODYzNzllOGMyMTIgbGVnYWN5LXRydW5rCisxMjUxNCA0YTI1ZGQ4NWRmNjIyYTVjODYwZGI5ODczZDc4NjU0Njc2NWMzMGFiIGxlZ2FjeS10cnVuaworMTI1MTUgOThmYTUzNWI5YWYxZWY2MGFmMWZlOGU3OWEwZGM4OGNhMzA0ZjBjZSBsZWdhY3ktdHJ1bmsKKzEyNTE2IDYzN2ViOTYxYzExYmY1MjZiOGMzNDAyZWU3OTczNWI5MWM1MmUxMzggbGVnYWN5LXRydW5rCisxMjUxNyAyYTBjZjk2NzcxOTM5ODMzNGNmZGVlMmVlNjY3ODAzYzY0YzRiNjU2IGxlZ2FjeS10cnVuaworMTI1MTggYzY5MTNjNzMyNmYwOTZjMDIzMDQyZjE1NTAzNTAzM2Q4MDNiNjY2ZCBsZWdhY3ktdHJ1bmsKKzEyNTE5IGYyNDU3ZDY5N2EyYTI4ZTEzZTkzOWI5NjVlZmQyMDQ3OTllNDc1NmYgbGVnYWN5LXRydW5rCisxMjUyMCBkNzk3OWY0ZWQyYjYxNjM1NjVlZWIyODQ3NzM0YmYyNDczZWUyZTZkIGxlZ2FjeS10cnVuaworMTI1MjEgODMyNzY2OGNmZDE3MTRkMTJkZGZkODk5NjExNWQ5MjA4MTA1M2MzNSBsZWdhY3ktdHJ1bmsKKzEyNTIyIDk0MTI1YTEzNDNkODE4ZGRkYmEwMjg2ZDhjZjc4NzY1MDZiNDEzZjQgbGVnYWN5LXRydW5rCisxMjUyMyAyMTgzZjUwNmEwOGUxYzhiZTY2YjVlZjZjMDk5M2Y2ZDQyMzIxOWU5IGxlZ2FjeS10cnVuaworMTI1MjQgMjgxOTRmNTFmN2ZlNTRjNDFjZjdiZDA3NzUyOWZjNTIwM2Q1ZjAyMSBsZWdhY3ktdHJ1bmsKKzEyNTI1IDg5ZGNlYTYzYzQ2YmVhMDJiNWMzNTgwMjQ3ZDMzZjRhOTVjNWZhYWUgbGVnYWN5LXRydW5rCisxMjUyNiBjYWYyYzY1YTZiY2YyNWY5NjUwYzM1MzAxY2U4ZTA2MDI5NGJlMTM4IGxlZ2FjeS10cnVuaworMTI1MjcgZjU3MmFlMzZkNWJhYzliNDU2YTM5ZDdhZGE3ZWJjZGIwNTZlNjg5NyBsZWdhY3ktdHJ1bmsKKzEyNTI4IDYyMDY4NWU0YzQ3N2UyMDdhOWUxODc5NDdmNTYyZTMzMTQ3Y2JjMDcgbGVnYWN5LXRydW5rCisxMjUyOSAwODBiZDQ2ZjM4NDg3OTljZGY1MDEwZTk3ZDgyNGIyNDZiMmMwMTllIGxlZ2FjeS10cnVuaworMTI1MzAgMTY3YWRmMzE3ODZkNzM0NjJhN2NjNmZhZTdiNDZjNjVmMGU2NzgwZSBsZWdhY3ktdHJ1bmsKKzEyNTMxIDAzNGI0MmJhNjhhNjk5M2E4YTFmM2FlNGYxNTc2NzVmMDBhZGI5YTMgbGVnYWN5LXRydW5rCisxMjUzMiA3NGQwZDJmM2NiMWRiYThmYzFhODE2MGNhNzgwNWUyOWM2YjM5M2I5IGxlZ2FjeS10cnVuaworMTI1MzMgZGU1NjhlYTBkMDQwZWI2MzBkZWRjNTkyZTY1Njg3YTY4NWE1MzA2YiBsZWdhY3ktdHJ1bmsKKzEyNTM0IDIwZThhMzM0NGEwZmY2MGNkOGM0YzZkMTM1NWZlOWNhNzk3ODU2MmEgbGVnYWN5LXRydW5rCisxMjUzNSAxMDUxZWY5OTQzMWU1ZmVkY2FlMWMwNGU3OWU5MTVlYTk3MzAzOTgzIGxlZ2FjeS10cnVuaworMTI1MzYgYzliMDcwMDc0Yzg1ZDNiY2YyYjMxMTBkMmVjNDU5YmIzMTcyYzgwNSBsZWdhY3ktdHJ1bmsKKzEyNTM3IGI3MmE4YzQ4ZjJkMDA0M2YzZmYwNTgwNTgzN2JhMjA2NTg3MGVjM2YgbGVnYWN5LXRydW5rCisxMjUzOCBmNWRmMjJmZGFkYTg4NTliODAxZDYwYWY1YWRlOThlMDIxNjc1ZWZjIGxlZ2FjeS10cnVuaworMTI1MzkgZjEzMmVjZmRiMjg1NTc3N2Y2MDQyY2Q1MWE1YWQ0N2FkNzU1ZmUzZiBsZWdhY3ktdHJ1bmsKKzEyNTQwIGJhMDNlNjhkZjBmZDRmMDkwZGQ3MDZlMWQ4NjM4NDRiMjhhZDVkYjAgbGVnYWN5LXRydW5rCisxMjU0MSA2ZGZmNzY5NmUzNTgxMTJlMmE1MDhkZWYxNWU1MmEzN2I0Y2E1ZTYyIGxlZ2FjeS10cnVuaworMTI1NDIgM2FkMmIyZTMxZjUzMDhlYTNmYjIyM2Q0YjVlMzYzZTZhMzQzYjEyNiBsZWdhY3ktdHJ1bmsKKzEyNTQzIDMyNjUyZjY5OTZlMzc0M2UxOGM2ZGI2NGY4NGFiZDliN2Q5ZWJiMmUgbGVnYWN5LXRydW5rCisxMjU0NCBmMmMwNzJiMDU0NjY1NGQ2MjE0YTAzYjQ4NTQ4ZDUwOGIwMjZmYzcyIGxlZ2FjeS10cnVuaworMTI1NDUgMGRjNTBkNDNmYjg0NjM0ZGQ5NzhlZDNiOWU4NzEwZTdkMmYxMDU5MiBsZWdhY3ktdHJ1bmsKKzEyNTQ2IDhjZjY2YjFkNDE1NWVjZDFlOTBjMzkxOTFmM2JlOWI0OTU0ZWFjZjEgbGVnYWN5LXRydW5rCisxMjU0NyBlZTlhOGZlMGNmY2E1ZjExMGQ3OGI4OWZmNDgzNjg2NTEwZWQzYTZlIGxlZ2FjeS10cnVuaworMTI1NDggYzA3MzlmNjQxYmQxZDU4MWEyMjkyMjIwMjVlNGU5YmVmYzdhZmI3YiBsZWdhY3ktdHJ1bmsKKzEyNTQ5IGEwYjA2ODkxZDI4NjAwNjZjZWM5N2Y0NDZiODU2Mzg1ZDIxNjQ4MGIgbGVnYWN5LXRydW5rCisxMjU1MCA3Yjg4YzEyYjg3MDFjZGU2NjMxNTM0NGQ1MjY2ZmU4MDBkMTk3ZWU1IGxlZ2FjeS10cnVuaworMTI1NTEgZGNlMTA0ZTFhNzNiYmRjY2FlNjRhYWVlODE1Y2IwMTUxNjk2MTFlZSBsZWdhY3ktdHJ1bmsKKzEyNTUyIDY2ODU4ZmRmNDY3ZWJhMWM1MmQ2MDMyM2Y3MTJkYTQ5OGU4ODc3NWIgbGVnYWN5LXRydW5rCisxMjU1MyBmMDcyMDNjYzI3NDBhOTE5NzEyNzg5OGY1MGNiY2Q3ZjU2NjJlYzAyIGxlZ2FjeS10cnVuaworMTI1NTQgNzk0YTIxYTVhZDM1ZTE5MWFjOTZhMTIxZmZiNDRkMjI5ODc1NGI0MSBsZWdhY3ktdHJ1bmsKKzEyNTU1IGYzM2VkOWUyYTYwN2ZhNGM5Y2Q1ODJhNTk2MzBmN2E4ZGJlNWEwYTUgbGVnYWN5LXRydW5rCisxMjU1NiAyN2NjN2EzMTQ1MDI2NjBhNzcyM2E1MGI5MTcwOTg1Y2UyOWQ4ZTM2IGxlZ2FjeS10cnVuaworMTI1NTcgODBlMGFhYjE3MDVlYmQ1NDIwMmFjMTM0MDM0ODk4OWQ4NGRmNjAyOSBsZWdhY3ktdHJ1bmsKKzEyNTU4IGI4MmE2MWE4ODRjZjI4NzYwN2E3ZTcyY2U0NmNjZGRmOGVjMGViZDEgbGVnYWN5LXRydW5rCisxMjU1OSAwNzVmODcxZDgwYjU1ZWVhYTU0OTM5N2RmZDlmZTE4ZTFiM2Y4NzE4IGxlZ2FjeS10cnVuaworMTI1NjAgZWU2MjU2MDgxMzY2ZDI4MTVjOGFlMWIzNjMzNDhhMTM1M2M1MmIyMiBsZWdhY3ktdHJ1bmsKKzEyNTYxIGM4OGFhOTU5M2EwOGVkMTEwMzBkNmY2MjdlMjhlNzk5ODUwZGEwMzEgbGVnYWN5LXRydW5rCisxMjU2MiAwMTVjYjYyMzFmM2Y4ZTY2ZWNhMWRmMDk0NmZkOGE2NWFmNWZkNzZlIGxlZ2FjeS10cnVuaworMTI1NjMgZGRkYTU4NTRlM2VhZDUyMjBkNmZhMGI4ZjU2NzhkMmEwODIzNGZjNCBsZWdhY3ktdHJ1bmsKKzEyNTY0IGQ1ZTY0YTYxNjMyMDAzYzZjNmE3ZGY2Y2U4MmZlMzc3YzY3ZmQ4MmQgbGVnYWN5LXRydW5rCisxMjU2NSA4ZmZlNDUwNDI4YjFiMzM5MDEwNWMwY2M5NzhiYzA4YmI5YWU0OTM1IGxlZ2FjeS10cnVuaworMTI1NjYgZDliN2EyMDgwOTcxYmEzMDllYjBkZTdmZGM1NDllYzNkYTU1NmEyYSBsZWdhY3ktdHJ1bmsKKzEyNTY3IDZhYmQ4NGFhYjA4YThlNTI5MWEwMmIyOGIwMjM5OGIxNGVjZmFjMTkgbGVnYWN5LXRydW5rCisxMjU2OCBkN2Y0MzRkNzg0YmY5ZTY4OTJjZGZlNWM2YmNlOWJhZmQzNTNjMmIwIGxlZ2FjeS10cnVuaworMTI1NjkgNzEwMjI4OTA0MmQ1ZThlNDQ5MGM0YTI2NjM1ZmNlNjM5ODJlOGEzNSBsZWdhY3ktdHJ1bmsKKzEyNTcwIDZkNmY0MjdhYjZlY2IxODM2M2JmNjJjZGE4NDViMWFkMDE0YTIzNjkgbGVnYWN5LXRydW5rCisxMjU3MSA1ZTAxNjQ1ZWU0MWI4YzIwY2Q2ZjAwMTM1OWFkZjYyYzQ2ZjZmNDNiIGxlZ2FjeS10cnVuaworMTI1NzIgMTM3MTc5MTg2OTI3YTA0MGMwZWE4MmFhNzNmYjNlMzE5NmE4NDBhNyBsZWdhY3ktdHJ1bmsKKzEyNTczIDY3ZWQwNWNmMTcxZDA4ZjUzNWEwYWFhM2JjMGU5MzA4NzQzMThiYWYgbGVnYWN5LXRydW5rCisxMjU3NCBlY2ViY2Q4NGRmMzdiMmFlZjBlMjI1MDc1ZWY5MDc5YTFiMjNhOTIyIGxlZ2FjeS10cnVuaworMTI1NzUgMWUyMWUyMjQ1M2RjM2M0Yzg1OGQyNTg4ZDU5ODM3NzAxZDE4OWNmZCBsZWdhY3ktdHJ1bmsKKzEyNTc2IGQ0ZTk2MzI1MDNkZmRhMzMwNGJlY2FmYjI1MzVhNWVjNDgwOTEyZDkgbGVnYWN5LXRydW5rCisxMjU3NyBkNmJhOGU1ZTU1YWQ0Yzg5YTQ4NzY0ZTdmYWNiNDJhMTYxNDhhODRmIGxlZ2FjeS10cnVuaworMTI1NzggY2JmNTUwM2IzMmQ1NTliNjNiM2MxMTljYTk1MTQ5NDc2ZmRkMDQyMCBsZWdhY3ktdHJ1bmsKKzEyNTc5IDgwYjIxNTI0OWIxN2Q1MWIyNjUwZjliYTBlODhmNzU5MzRiYjFmZjkgbGVnYWN5LXRydW5rCisxMjU4MCBjM2Q1MDY3OTQ5NjdkZjg0MWNjMjFiOTg5ZjNjYzZhOTIzYjY5N2Y1IGxlZ2FjeS10cnVuaworMTI1ODEgYmMzNjAyYTgzYWQzMjk1YjJkNjNmOGE4YjdjYjNhMmUxZmQ1ZjhhNyBsZWdhY3ktdHJ1bmsKKzEyNTgyIDZmNDJjOGZlODc1YjdkZTIyNTg0NzVmMjQ2NWJkY2YxYjY4MDcwYWIgbGVnYWN5LXRydW5rCisxMjU4MyA0OGFmMmM2Yjc0MWU5YzgwY2QzMGNhYTY0Yjc5NTE2MTA3MzhiNDI2IGxlZ2FjeS10cnVuaworMTI1ODQgYjU0NTRkYzIyZGNiODExZjNmMjEyN2NjYzA3ZWE1YTJiMzJmYzk1YSBsZWdhY3ktdHJ1bmsKKzEyNTg1IDQ4OTRkY2VhMTI2YjQwNzlkYzYwZTIwNzlhZDVkNjUyNjI4NGM1NjIgbGVnYWN5LXRydW5rCisxMjU4NiA1ODIzYjYxNWMzMDFlM2JiNjlmZjk5MTdmNDA4MGI2MDQwOWFhMzEzIGxlZ2FjeS10cnVuaworMTI1ODcgZDNlNDRlNjEwZWExNGIyMjdkMDBmMjU1MWVmN2Y4OGI2NzkyMjVjNiBsZWdhY3ktdHJ1bmsKKzEyNTg4IGM3MTQ0ZTdlODQ5NDIwNTA0ZjQyM2Y3MWQyOWQ5YWYxMTA5YWNmYTUgbGVnYWN5LXRydW5rCisxMjU4OSA5ZWZhNDI0NDVlYzlhZmVlZTMyYjliMDFjY2NiZjNhMTJjYTJiMmMzIGxlZ2FjeS10cnVuaworMTI1OTAgZjVhNTVkMzI3NjA4M2ViYzUwMWE0Yzk3YjkwNDU0YjI1OTVjZTY5YSBsZWdhY3ktdHJ1bmsKKzEyNTkxIDJhOWVmMWUwZjU0MWQ5ZGUxODE1M2RmODIxNDhmODFlY2E5YjQzMTUgbGVnYWN5LXRydW5rCisxMjU5MiBhYTAzMzY1MjdjNGU5NTYzMzk0ZGIwNGEyMGE4ZmQ0MmQ0NjFlN2JmIGxlZ2FjeS10cnVuaworMTI1OTMgOTY1ODZkYjM3OWZiYTlkOTg0YzYzNjg2NGI0MGY3YjQ0YTk4OTg3ZiBsZWdhY3ktdHJ1bmsKKzEyNTk0IDU3NDA3NWU5YTI1ZjRkYjdiNTQ2MTk1N2Y1YTNkN2M2ZmE2MDlmYmUgbGVnYWN5LXRydW5rCisxMjU5NSBkOGM0Mzc4ZWI4N2RhYmU5NDgzMzc1MjA1NWJiMDE2N2JiMWFlZjFhIGxlZ2FjeS10cnVuaworMTI1OTYgMWQyOGM3ZTE2NjM2NTczMTVkOGJhMWUxMmIzZGQ4MWYyM2ZlYTE3NCBsZWdhY3ktdHJ1bmsKKzEyNTk3IDdlYWQ0YTA0NDI3ZTg4NDAyYzc1NTZlM2JmNGU5ZTI2MWE1ZTUyM2EgbGVnYWN5LXRydW5rCisxMjU5OCAzYWUwM2I5YjY1ZWRjMmEwOWQ4ZmI0ZGRjYmRkODA0NjU1OGE5MTYzIGxlZ2FjeS10cnVuaworMTI1OTkgZjVmMWI1ZTk4MTRhNDhlYTJlY2NiMWMxNDE5NzVjYmQwNGJiYmEzZiBsZWdhY3ktdHJ1bmsKKzEyNjAwIDNmN2RjM2RlMDYxNzBkNDk4YzE2Y2IwMDFiNTA3NTZhZWI2MTJhNDUgbGVnYWN5LXRydW5rCisxMjYwMSA5YTNhNDY5MjhkYmZlYjhmYjJjMzllZmNhYjJjMjk5MmJmZTM4OTgzIGxlZ2FjeS10cnVuaworMTI2MDIgOTE4NDg2MmJkOGQxZTkyZGMyM2Y3YTZmMGFmNjczOWJkZTIwZjczNCBsZWdhY3ktdHJ1bmsKKzEyNjAzIDZiMjhiNWYxOTdjZmIwNDgyZDA0ZTMwODE1YWNhNDQxZjViMDY1Y2UgbGVnYWN5LXRydW5rCisxMjYwNCBjN2RmZDYxOTM1MGJjN2Y0YTljMzc4OWJjNjRhNzA3ZjBiOGFlZmQ0IGxlZ2FjeS10cnVuaworMTI2MDUgZWZmMDhiZDgxNjVkODJhZmYyZDczMzk3NjU0NDEwNWJhNDk4OGEzMSBsZWdhY3ktdHJ1bmsKKzEyNjA2IDU4ZTdjYzVhMzg0MTMwMGNhNWFiMTI2YTBmNGQ0ZmZmNDg0ODMzMTEgbGVnYWN5LXRydW5rCisxMjYwNyBlNmJiYTAyZmY2MjQ2ODRiYjA3NmNmNzFkNmY4YTU0ZTg5MThkNmFhIGxlZ2FjeS10cnVuaworMTI2MDggMTZhYTczNTg4ZDkzYjY4ZjUwMjAzZDIxYThhZDk2ODc1YjA3ZmQ0MSBsZWdhY3ktdHJ1bmsKKzEyNjA5IDY5N2UwYzlkMDk0MGVjOTUzYzAzNDhlOGJkOWFlOGEwOTkzMzljYmEgbGVnYWN5LXRydW5rCisxMjYxMCA1MmQ1N2NjMDNmNDI5ZTgyZTQ3ZWEyNWI3N2MwOGY4ZWEyMWU3NjVmIGxlZ2FjeS10cnVuaworMTI2MTEgM2Q1ODdlNjUzZjJkNjU4ZDk4ZTExNjE3ODQ4YzA5MDkxZTdjYWY5YSBsZWdhY3ktdHJ1bmsKKzEyNjEyIDMxYzExMjU5NGFiNjM3YWU4YjRjMmY5YWJiZmFkMGZjNmM5Yjg2NzUgbGVnYWN5LXRydW5rCisxMjYxMyAzZjkzODU4N2YyYTNmMDJhMDllZTcwY2RlMDNhNmRhNTc1N2Q1MzM1IGxlZ2FjeS10cnVuaworMTI2MTQgYWJmNDkzMDY0N2UyODIyYjc4MGY3ZDRjMDY1ODI5NGY3YzE0ZTg2OSBsZWdhY3ktdHJ1bmsKKzEyNjE1IGU5ZjU5ODViNmVhNDY0ZjgxY2FkM2IyNDkzYTE1ZGVjZjQzMDZhNTUgbGVnYWN5LXRydW5rCisxMjYxNiA1MDhhNjM5ZDhmZWIzNWFmNjIzZDUzNTNiMzNlYWY2NDA3NTVkNTU4IGxlZ2FjeS10cnVuaworMTI2MTcgYTk5ODg1YWYzOWY4OGM0ZWU4ZTUxMTMzMmU5MmMwODdmMzc3M2IyYyBsZWdhY3ktdHJ1bmsKKzEyNjE4IDQ5ZTdlMjE4NDliM2NjNTFmZGI2NWM1YTQxZTgxNjJiNTc5M2EzNjUgbGVnYWN5LXRydW5rCisxMjYxOSAzMTQ1ZGVmNTgzZTJjYTE0ZTM5OWE5YzcyNGY0MDZiYjFlZDlkMDk5IGxlZ2FjeS10cnVuaworMTI2MjAgYTlmYzczOThjZTdiYmY3ZjY2N2ZkZmYyZjAzMjE0ZWQ4YTJlMTk1ZSBsZWdhY3ktdHJ1bmsKKzEyNjIxIGE2M2M5YzNlOWVjYzAxZDRmNzUzNmJlMjJjMzY1OWFkOWViOTc4NzQgbGVnYWN5LXRydW5rCisxMjYyMiA1YjE1NjQyZTdiZGY0YTI4ZDc3Nzc4ZTg0OTkxYmZjMWZlOWZkZjY4IGxlZ2FjeS10cnVuaworMTI2MjMgYjdkODEyNWMyNDE3ZDg3ZGMzY2IwNGNiZDhiYzczYzVjYTcwMmFhOCBsZWdhY3ktdHJ1bmsKKzEyNjI0IGNiYjNiMmM1NTVkN2E3MGExNjk2NDEyYzg3OTEwYmExNjVkNmM4NWMgbGVnYWN5LXRydW5rCisxMjYyNSBiYzI4N2M2Y2ZhMjMwZjA1NjZlMDRmNjczZDRiYjEwYzI3YmVjNTUwIGxlZ2FjeS10cnVuaworMTI2MjYgZmI5NjY1NjJkYjBlNjFlNjExZWNhMjY2ODEzZTA3YTZjYjdjYTQ2MCBsZWdhY3ktdHJ1bmsKKzEyNjI3IDY0NzI4YTUxY2I1NTFlODZiNDNjZTYxNDAxOGJmMzAzODNmN2Q4OWMgbGVnYWN5LXRydW5rCisxMjYyOCA4OWY2NTU2ZjA1OWViNjgzYzBmMzRkMjI3YTY3ZGYwMTRmZjgwNTM3IGxlZ2FjeS10cnVuaworMTI2MjkgYmFmY2Q3YjYyMzI3NWM3NTNlMmQ1Zjk1NTEyNjk1NmNhYTJiMjQxZSBsZWdhY3ktdHJ1bmsKKzEyNjMwIDBkZDRmYWZlZmQ2YzQ4YTRjMzg2YzgyOGQ2ZWRiNjY5NDRjNTdlOTcgbGVnYWN5LXRydW5rCisxMjYzMSA4YjU1YzUxNTY4M2Q5MjdjYWMzMGIwYmZjOTRhMDE1OTNmMGU2NDIzIGxlZ2FjeS10cnVuaworMTI2MzIgZTU2OWY5YjBkOTY5YTExYjZlYzdkMTllMmYxZTZmNjUzNGNhZTE1ZiBsZWdhY3ktdHJ1bmsKKzEyNjMzIDFhYzJhOGJiN2RjMTA4NjRjMDlhOTcwYTUzMzBiMTNkM2VjZDQyNzYgbGVnYWN5LXRydW5rCisxMjYzNCA2NGU2NGVmMDhkMWM5MTE1NmFiMDc2MzVmMzY2MjcwMThkZDRhZGFiIGxlZ2FjeS10cnVuaworMTI2MzUgNTcxOGU4MzAyMGFlOTVlNTNiYmJkNTExYjNhNzZkY2VhYWY5YmE5MyBsZWdhY3ktdHJ1bmsKKzEyNjM2IDEzOWQ1ZjFhNmY4OTlkN2NiM2YwOWQ3YTVmZDc1YTY4ZDQ3OWI1ZDEgbGVnYWN5LXRydW5rCisxMjYzNyAwYzA3YzBkYmUzMjgyYzA0YjlkMDc1ZTU1MWRjNGFkN2VhZjE1ZTdhIGxlZ2FjeS10cnVuaworMTI2MzggNjU3MzE2OThjNmVkZjRhNzZhZjZlMTQ2ZWIyOTRjODNlZDc4MjU1NCBsZWdhY3ktdHJ1bmsKKzEyNjM5IDQ5Y2YxNDEyNDQ1ZjMyMDk2MGMwM2YxYTQwNDU3ZmNkYjE3YTlhZTAgbGVnYWN5LXRydW5rCisxMjY0MCBiMjE5MTVlNjU4OWUwNGY5OGZjMTM3YWJhMWNkNTEyNmMzNjk0OTkxIGxlZ2FjeS10cnVuaworMTI2NDEgYmMwMzQ3NjQzZWNmYzZjYWI5NWI4MzUxNTQ2MDcxMTQ5MDA2MGFjZSBsZWdhY3ktdHJ1bmsKKzEyNjQyIDkyMzIzNjEyOTRiYjY5MjQ1ZmUxYzVjZjg4MzYzMzE0NGY2MTg3NjUgbGVnYWN5LXRydW5rCisxMjY0MyAwOTkwMmUxMzA1MzczNDRlM2NlYjIxYzE2MjQ2MTI3MjM2MzJjMzQ5IGxlZ2FjeS10cnVuaworMTI2NDQgNWJkYjcyYjE5NTdlMTZlN2FiODg3M2RjMDIwNDgyNGZlM2JiNTgxNSBsZWdhY3ktdHJ1bmsKKzEyNjQ1IDNjNjk4YjUzYmU1OTIxMTZmYjMwZDI4NzY2NDA3MDQ2YjgwODVhYjIgbGVnYWN5LXRydW5rCisxMjY0NiBhYmQzZjA2NmM4N2FjNTM5ZjU0YmMyZjkwNDIxZDZiYTYyZGE5OGZmIGxlZ2FjeS10cnVuaworMTI2NDcgODI4NDkyNzAyNWJlNmZkMmI0YWQ3OWM1MzJhNTY5OTVkZDU5YmQyZSBsZWdhY3ktdHJ1bmsKKzEyNjQ4IGJkNDlmOTFkNTliMmQzMWE0Mjg5NDVjODQzN2UxNmY1OWQ0NmNmNjcgbGVnYWN5LXRydW5rCisxMjY0OSAzYWM3ZjAwNjYzNzVmYzg2MWYzNDliMWQwMTExZTJkZjA0MjY0ZDgxIGxlZ2FjeS10cnVuaworMTI2NTAgZTQwYmNmNmJjMWM4YmEzNjA2ZjQxOGQwM2UyNjc4NDJkMzcxMzkzMyBsZWdhY3ktdHJ1bmsKKzEyNjUxIDk1OWU4MWIzOWI4MTEyMmY2NzMwYTg2OGZiMjVlYTI1NmNlNDVjMmQgbGVnYWN5LXRydW5rCisxMjY1MiA5YTZjM2RjMWRjZDNmMGUxNGVjZWE2ODQzNDdmODI3MWJmNGE4MDc4IGxlZ2FjeS10cnVuaworMTI2NTMgMWQzZmU3Yzg4Y2M4YzQzM2Q4ZTUyYWE1OGMyZDQzMmIwNWYyNjZkNSBsZWdhY3ktdHJ1bmsKKzEyNjU0IDYyZGM5ZmY5Y2Q0YzM5MmNjZGVkMTc1OWZiMDliNGE4OTEyOTJiMjAgbGVnYWN5LXRydW5rCisxMjY1NSA5YWE0MzkwYmUzOGI3YzBhYzI4YWUxZTQzY2JhMzI2M2QzMWQzNDljIGxlZ2FjeS10cnVuaworMTI2NTYgZDM3ZjAzMTI0YzU0ZjgyM2Y0YjJjYWY5NGVjNWVhNjMyNDY1Mzk1MSBsZWdhY3ktdHJ1bmsKKzEyNjU3IDg0NjRlMzEzNzZlZDliZjFhMzBiODczMDBkMmI4YWFlNzJmZjQ5ZDIgbGVnYWN5LXRydW5rCisxMjY1OCAwZjdkNjk0YmMzMzRlZmYwZjFjYzAwMTAzMTE1ZDRhMmM1OTM0MmI2IGxlZ2FjeS10cnVuaworMTI2NTkgMTMyMzliNDhjNDY5YzFhODI5MWMwNWY5MWM3M2IyMjdjZjViNjdjMyBsZWdhY3ktdHJ1bmsKKzEyNjYwIDYyNWI3Y2ViZmRlMmIyZDlkMDNmODkzMjI5Y2I0OTA0MWU5MDdkNzMgbGVnYWN5LXRydW5rCisxMjY2MSAzYjdiNmQ1ZjE5MzE2N2RjOTg0ZGFiMGJjM2EyN2RkZjM1OTJjZjE0IGxlZ2FjeS10cnVuaworMTI2NjIgM2JhMDI1YmE3ZjA5NTA0YjcxOGU5YTBkOTBhYmIxZTRkMDdhYmFjNCBsZWdhY3ktdHJ1bmsKKzEyNjYzIDVjMWViZjIzZjFkNzdiNDNkZTQxNzNhNWIzOWVjMTA3ZmZiMGEyOWMgbGVnYWN5LXRydW5rCisxMjY2NCA1NjRmMDM2MzI5MTYyNWRjY2M0YjM1NmQ3ZGI1YWIyNjhiNzM1MmZiIGxlZ2FjeS10cnVuaworMTI2NjUgZGRmODYxZDg0YmJiOTIyODRiMzQ0ZTM5ZGRkYzhjYmMyMDNhNmE0OSBsZWdhY3ktdHJ1bmsKKzEyNjY2IDE1NGM2NDA4YzNjMmRkY2Q2Y2M0ZjQxNDgxM2I2OGRkMmYxZTgwMDMgbGVnYWN5LXRydW5rCisxMjY2NyA5YzljZjQ1NzJhOTc3ZWY2ZjdiZGY1OWE3OThjNGMxODZlMGU1YWNhIGxlZ2FjeS10cnVuaworMTI2NjggM2YxM2VlNTkyYTQwZjgzZTI5MTJlMDFkZWE3ZWVkMThmMWIzZjQxZCBsZWdhY3ktdHJ1bmsKKzEyNjY5IGJkOGM0M2RhZWY4NWUyMDQxYWQ5OWExYzI5MTRiN2I3ZGVmNmE3N2QgbGVnYWN5LXRydW5rCisxMjY3MCA3NjJjZmU5NmZhZjlkNzFlZGI3YWFjN2JhMGQzZjljZjdhYjExYjdhIGxlZ2FjeS10cnVuaworMTI2NzEgYmEyNWIyZDNkNzg0ZDdkN2U1NjNjNTdjMDdkMWU0MGY0Zjg5ZDE5ZSBsZWdhY3ktdHJ1bmsKKzEyNjcyIDdjZjk3NjU4Y2FlN2UzNmYzOTYzNTQzMDY3NThhOTYwNGU3MjEyOTQgbGVnYWN5LXRydW5rCisxMjY3MyA3M2U1ZTNmNTFiODc0ZmM5NzM5YjAyYWMyNjM3YTAzYjc1NTYxMDNlIGxlZ2FjeS10cnVuaworMTI2NzQgOTY1NTBiNWQwOWUxNGMyZDY4ZjViYjcwMTU3NzUzYTUxMjIwNDczNCBsZWdhY3ktdHJ1bmsKKzEyNjc1IDZhMWNiNmYzN2E1MmM1YjcwYzQzZWNiZTViYzMwM2FjZWY3NzhlM2IgbGVnYWN5LXRydW5rCisxMjY3NiA3NDRkYjg2ZTAzMTFhZmRmNjYzNjRkMDEzODk0NjZiNjEzYzY5MGNmIGxlZ2FjeS10cnVuaworMTI2NzcgNDlkNzc2ZjM4NzhkOGRkNTA0NTdhYzY1NzE1NWRkMzE1NmYwNzQyMyBsZWdhY3ktdHJ1bmsKKzEyNjc4IGE3OWRjZDI3YmRjM2E2YjVmOWZhOTA4MzM2NDEwZDk0ZDFmNTJhNmUgbGVnYWN5LXRydW5rCisxMjY3OSAzNWY5MWNhZWFhOGRhMzc1NDczZjg0NjY3YWFjMzk4NTMxNDBiMDYyIGxlZ2FjeS10cnVuaworMTI2ODAgZjBhNTdjY2YyMzNjYjM1NmQ5N2UzNTEyMjkyODg2MDI1MWFiY2M1NiBsZWdhY3ktdHJ1bmsKKzEyNjgxIDA0Yjg4MDQyYTkyYjhmYzJkYzg1YjBhZWVkYmRkYTg2MzRhMTQxMTYgbGVnYWN5LXRydW5rCisxMjY4MiAwMDViYTQxMmE4ZWNiNTJhNDA2OTUwMmM2YWI5ZGNlMzJjNmI1OWI1IGxlZ2FjeS10cnVuaworMTI2ODMgYjg5MzJhYjQxYWRkNGYyMDFjZjkzYjBiZTdmN2Q5MDY3MGJkZjU5ZSBsZWdhY3ktdHJ1bmsKKzEyNjg0IDU1MzlhZWJmODkzOGE4NjQ1OWQxY2U2NWQxODExM2Q1NWMwMmM2NGIgbGVnYWN5LXRydW5rCisxMjY4NSA2ZGJjZDVhNmU1ZTYxOGI3NTFiMWJhZDM1ZDNkZjZhMzY4YjUyN2QxIGxlZ2FjeS10cnVuaworMTI2ODYgZDg2NDAwNTAwYWEwMzczMTUzNWFlMzdhZjhlYjk1MTdjZmFkOWY0YyBsZWdhY3ktdHJ1bmsKKzEyNjg3IGIyNmUyNTE1ODkyMmVmN2QyMzJlN2MwYzFhZDM1ZmM0YTI5ZTIzMmUgbGVnYWN5LXRydW5rCisxMjY4OCA2MmU2MTA1ODQ4MGEzOTkzMmZkMjRiYTdjM2RiMDhmOGFhNjc3YzA3IGxlZ2FjeS10cnVuaworMTI2ODkgZWUxZDMyZjdhMDU1ZjBiOGQxYjU3ODc4NjNjZTQwMjIzOTdiOWFmMSBsZWdhY3ktdHJ1bmsKKzEyNjkwIDY2MzNjM2ZjYTYyNjNmMzZlYTYxMGJkYTc0MTVhNTdmMzc5MjU2MjkgbGVnYWN5LXRydW5rCisxMjY5MSBiZDMwZDM5Nzk3YTQwOWViZDNiZGFhNjBhYjBlMmU1OGRlM2M0NWZlIGxlZ2FjeS10cnVuaworMTI2OTIgOGY0YWQxNGMzNDA3M2NjOGVjMTQ3NWNkMzA1ZjFmYjgxYjE4NGIxOCBsZWdhY3ktdHJ1bmsKKzEyNjkzIGIwZjA0YjdjOTQwNzFlNzJkOGE5NjFjZDMyNTE2OGMwNDE1NWQxOWEgbGVnYWN5LXRydW5rCisxMjY5NCA0YWY4NGNkY2ZkYjUzZDIwOWI0NmFjMzQzN2MzMzQxNWJhNzMzY2ZjIGxlZ2FjeS10cnVuaworMTI2OTUgNjdmMWQ2YmQ1OGNmYmExMDkzM2VkNTQ4NWRmNjljYjMxMGJmOTMxOSBsZWdhY3ktdHJ1bmsKKzEyNjk2IDFkOTQyNDhmZTJiOTlhMjk5ZTQwMmM0NjRiYTYyNWEyODM1OTQ1ZjIgbGVnYWN5LXRydW5rCisxMjY5NyBhMzY5ODY1NjlhZjE4ZDY4NDFkOTYxNjY1ZmQ3YmM4Mjk0MTQ1NTdjIGxlZ2FjeS10cnVuaworMTI2OTggMWUwZGQyZWYzOTcxYzJhY2IwZDA3NTdlMTRhZThlNDVhY2Q1Y2U0NyBsZWdhY3ktdHJ1bmsKKzEyNjk5IGRlN2MwMDAzNTc4ZjhhYTZlMjlmYWQ3MGE3OGFmYWZhMjI5MzE4MzAgbGVnYWN5LXRydW5rCisxMjcwMCBiNWYwN2E0YTY1NGJmMDcxYzE1Y2NiODM2OTRmNTFmNGMzZmQ2MmFkIGxlZ2FjeS10cnVuaworMTI3MDEgMjc5MDI1NTVmNjcyMWRkM2EwMjExYmUyZjQ2Y2EzYmQ4NWE2MDgzNiBsZWdhY3ktdHJ1bmsKKzEyNzAyIDA0OWM5MTM0M2Y5NTg4YWY1MDQxOWRlZjUzNzZmZTU5NjhhODhiOTggbGVnYWN5LXRydW5rCisxMjcwMyBjMGY2OWNiZTgwNWQxN2U2YTk0M2VkYTQxZGQzYmMyZTUzYTcwYjhlIGxlZ2FjeS10cnVuaworMTI3MDQgZTFkYTI5MGFjYzVmMTBlZGQwMzlhN2M5YmU1ODNkMDNmYWRlNWE3ZCBsZWdhY3ktdHJ1bmsKKzEyNzA1IGRmZGZmODcyNDg4NzVkZjU2YTQxYTNkYzJmZGZjNDZiMjIwMDFmNjEgbGVnYWN5LXRydW5rCisxMjcwNiBiZjQxODQwYzgxNTA3MjJhYTBiOGI4YWI2OWNjZjJiYjNjNmMxOTUwIGxlZ2FjeS10cnVuaworMTI3MDcgMWM1OWE5OWU5OTcwZjA2OTUzNDQ5NTkyNGFiNGZlMzg3ZjE2OGEzZSBsZWdhY3ktdHJ1bmsKKzEyNzA4IDAyYjE3MmE1ZDg5M2Q3YTcxMWNhODYzMGE1MDJjY2RmODlhZGFjMjcgbGVnYWN5LXRydW5rCisxMjcwOSAyOWQxZDNiMDhjYTdkNGY1OTZlMzE0YWI4MTlkNWQ2OGFhZTY3OTYwIGxlZ2FjeS10cnVuaworMTI3MTAgYTg2ZmUxZjNjZjRlNjViMzc1MjZjOWE4YWVmOWJkOTRlODg4MWVlZSBsZWdhY3ktdHJ1bmsKKzEyNzExIGQyODIyNzRmYmI3MjJmZDg1NWM3OTFmNzEyMTRmNzIzNjE5ZGViYmMgbGVnYWN5LXRydW5rCisxMjcxMiBiMWQ0MGZiMTBhZjZjYmQ5ZGU1ODVhZjY4MTUyNzQwYzVhOTA4YTFkIGxlZ2FjeS10cnVuaworMTI3MTMgMzJiNDNlNWQ4OGQzNTgxZGE2MDIxMTk5Njg1YWMzNWQwZGU0OWE3ZiBsZWdhY3ktdHJ1bmsKKzEyNzE0IGUzMzk3YWU4ODEyOTIxZTg1NjM0MjQ2OWNhYTIxZjUyYTBlMjgyZjggbGVnYWN5LXRydW5rCisxMjcxNSAwMmUxMzNlYWJhYzY5NmRmNmE3YmJhMDE4OGMyNGRjNDYzMjZhZjljIGxlZ2FjeS10cnVuaworMTI3MTYgMWZiYzRiYWUyOGNmMDU4NzE3NGIxZDc3ZDZkOTBiZDYxOTc4MDI2ZSBsZWdhY3ktdHJ1bmsKKzEyNzE3IGQxNjg2Y2YwOGQxMTZjNzE3ZTVmMzY4M2JlNmJjMmZiOThiZDQyZTggbGVnYWN5LXRydW5rCisxMjcxOCA2MWVkZDNiODVkNjM2OWQyY2FjNzQ3ZGRiMjlmMTQ3MzdkYjcwM2M0IGxlZ2FjeS10cnVuaworMTI3MTkgY2Q0NzY0NDJlZjcxNWI2MjRlNjk5MWQxNGM5M2Q1ZWQ1MzAwOWZiYyBsZWdhY3ktdHJ1bmsKKzEyNzIwIDQ3N2U5ODEwOWM3ZDY2MTUxODgwZmIyY2MzMzViODcxOWM0MzVkZDIgbGVnYWN5LXRydW5rCisxMjcyMSBhMjkxOTJmMmQ0N2FmY2Y2NDMzMDg1Nzc5YTM5Njk4YWVjNmJmZTQ2IGxlZ2FjeS10cnVuaworMTI3MjIgMGVmMTA3MWNiN2ZlZWQ5MTczNTc3YmVmOTU5NmMwOWNiOWIyMzAwMiBsZWdhY3ktdHJ1bmsKKzEyNzIzIGZlYjQxNTAwODc2NWU0M2VlNjkxMjQyNTllZDhkOTNhNjMwNGRjMDQgbGVnYWN5LXRydW5rCisxMjcyNCBiMzAwNzdjNTczNDg1NDJiZDYxZTZkODFmNjFkZWU0ZmMyNGI5NzcyIGxlZ2FjeS10cnVuaworMTI3MjUgNTUzZWQ2YWU5ZTdhODVmYTRmODg2ZTJjZWNkZDlmNWE3OTk5MTYzYiBsZWdhY3ktdHJ1bmsKKzEyNzI2IGRmNGE5NjdhODE0NjJlYmQyZmMxZmRiOGE2NTAxOTRjNDBkNWE5OGQgbGVnYWN5LXRydW5rCisxMjcyNyA3YmJlNzE2MzFjM2YwMjg4M2JlMzZlNjFhODg1Y2QwMTJlYmU4ZDUxIGxlZ2FjeS10cnVuaworMTI3MjggY2QxMzBjOTU1OGRiMzhiNmVlNjA5YzA4NGRiZjhkODM3YjBlZDQ0NyBsZWdhY3ktdHJ1bmsKKzEyNzI5IGFlNjEzNTI5NzU3NDJmYjkwNjM5MDIzY2FhY2Y5YjJkZDE4ODA2MzUgbGVnYWN5LXRydW5rCisxMjcyOSA4ZmU3ZWM0YjRmYzE1MThmY2FjODllNmJmNjc0ZmJiY2UxNjE1MGE5IGxlZ2FjeS10cnVuaworMTI3MzEgY2U1N2ViMzA5NjhhNWI4OTJjOGQxNzdjYTA4ZTUxZjhhN2ZmZWJjNSBsZWdhY3ktdHJ1bmsKKzEyNzMyIDBlMTQ3YTUxNzRhMTUyMTllMTVkYjZlYzM3NTBmNmIwMTg5ODZkYjIgbGVnYWN5LXRydW5rCisxMjczMyBhNjVmODc1ODQzNTRhZTY2YTIyNGYwNmU3MDVlMzJjYzJkYjMxOTU3IGxlZ2FjeS10cnVuaworMTI3MzQgOGNjY2ZjNmQ2MjcyMzY3NGFiM2ZjNDhmMzYzZmRhOGZhZmU2NDIxYyBsZWdhY3ktdHJ1bmsKKzEyNzM1IDI0OWQ5YTJiNWJjOTY4ZGY0OTI5YTFmZjg1ZmQ1ZjMzNmFlYjY2ZTQgbGVnYWN5LXRydW5rCisxMjczNiA5MmZjZTQxNGYzODIzMDhkNGM2ZDQxMmY1MGVhZmEyNzYyMTIxMTRmIGxlZ2FjeS10cnVuaworMTI3MzcgNTc0NGE2ZGIyZDRmODQxOTU1MDYyNTA1NjVmYjdlZDdjNzVkNTRlNiBsZWdhY3ktdHJ1bmsKKzEyNzM4IGM1ZTgzNDdlYjgwOWMyOGM1NTIxMjNjNTRlNTQ2MzM5MTE0MjFhN2UgbGVnYWN5LXRydW5rCisxMjczOSBmMWNjYmQ2YTk0Y2UzMzNkMmM0ZjEzZjQ3Njg0MWNiOGUxNjZjY2U4IGxlZ2FjeS10cnVuaworMTI3NDAgODY2NDJiN2E3YTYwZjU4NDg4MDVjNTY0ODEyYmMxZTk5NTc1NTcwZSBsZWdhY3ktdHJ1bmsKKzEyNzQxIGMxYmVmZGJkNjRlNTcyMjllNTBjNTY1NTk1Njg1ZTk2OTcwZTI1YWYgbGVnYWN5LXRydW5rCisxMjc0MiAzNTkyNDRmYTZiNTJhYjBlYmJhZjljZjAzMTc2NjUwZThiMGJlYTYwIGxlZ2FjeS10cnVuaworMTI3NDMgZjEzOGJhNzJiZjJkOWYyZTNlOGUxODBlMzk1YzJmN2ZjYTcyZWY3YSBsZWdhY3ktdHJ1bmsKKzEyNzQ0IGI2YjkzMDA2ZDA3Njg0MDA2NzMzMzAzZmI0ZjA4MTNhYzI4NzZkMDkgbGVnYWN5LXRydW5rCisxMjc0NSA1NzVjNGVhMjU0MmJjMGUyZjQ0YjYzYWFjMGFkMTJmOGIyOTUwZmU3IGxlZ2FjeS10cnVuaworMTI3NDcgMzJjNDIwNDc0MmJhZmQ2ZDNjNjIyOWFjYTFjYzM2ZWRiMjQ5MThjYyBsZWdhY3ktdHJ1bmsKKzEyNzQ4IGJkYmZlMGVjOTcwZjg5MmQ2YmI4MjBhNTMwYzVjNWM5MjcxYmM5MmMgbGVnYWN5LXRydW5rCisxMjc0OSBjNWYxMWM1YmY1YjIyMDA2MTQ4MWFjMmFlZTQ5MGY0MzcyYzMwMmQ5IGxlZ2FjeS10cnVuaworMTI3NTAgMWEyYTBhM2U5ZGRiMmUxMjJmY2ZiMTlmMTQ3ODg3YzU5ODMxMjAzNiBsZWdhY3ktdHJ1bmsKKzEyNzUxIDg5NWQ4NjFhMDg3MDFmY2RjOGJiZTJhOWI1NDRjNzFjOGY0YzBjYWYgbGVnYWN5LXRydW5rCisxMjc1MiBlNTljYTVkMzQ2ZjRkZjJjODQ0NmMzYzJhMDIxNWMzYjg3MTUwYWJiIGxlZ2FjeS10cnVuaworMTI3NTMgNDdjMTFlODI3Njk5OWYwMDc4YzA3MWRlMmI5ODM4M2M3NzAyZjk1NiBsZWdhY3ktdHJ1bmsKKzEyNzU0IGQ4MzkzNWQxNDA4NDU2N2Y4ZWE0OWQ2NDhkODM1NjdiMGU2ZGMzZjEgbGVnYWN5LXRydW5rCisxMjc1NSBjMjdjMTBjNmI5ZjI4Mjc0MDFkOGQwM2FlYzgxNDFiNGY3ODdiYmVhIGxlZ2FjeS10cnVuaworMTI3NTYgMTNiNDVjNzRlOTdiNTMwNjYyMjYxYjJkYTM3ZTlhYjVkMzJiNTllMiBsZWdhY3ktdHJ1bmsKKzEyNzU3IDhmZWIyOTUwZGE3YjI2MzIzOGZhMmI0MGZiNDY0ZDljNGUwN2NjODYgbGVnYWN5LXRydW5rCisxMjc1OCAwNjE0ZTdmMTY3NDFmMmExNTg4ZTI0ZDRlMjkwYzQwYTBlNjdiM2U5IGxlZ2FjeS10cnVuaworMTI3NTkgYTQ5MTNiYWU5ZjkzZTdmNDEwMDAwOTgyNTY1OGU2MjdkMjMzYmJjZCBsZWdhY3ktdHJ1bmsKKzEyNzYwIDBjYjhlNWVhODRhOGRhYWMwZTk1ZDQ0NDY5N2NhOTZhOTAyYTZmZTYgbGVnYWN5LXRydW5rCisxMjc2MSAxNjNmZDNkOTVjMTdlNDA0ODIyNGExYzg5MjExZWY4NzFhNDEwZDVjIGxlZ2FjeS10cnVuaworMTI3NjIgMGE1Y2RkN2U1ZmMzZjg1MGE2YmRjMTllZDJkNWM0MzQ2ZTZjODhkOCBsZWdhY3ktdHJ1bmsKKzEyNzYzIDI2YTAyMDYwYmFiMTc0MTZjZjgyNGM3NWY1ZGQ1YWFmOWYzMzU1NDEgbGVnYWN5LXRydW5rCisxMjc2NCBiNjRmMzM1OTRhMzExMDY5OGYwZWJkYzdjYzU0YmM1Y2NmMWM3N2QwIGxlZ2FjeS10cnVuaworMTI3NjUgZTgzZjY3NmQxNWMyODljZWI2ZDdjOTAzYjU1Y2YwYWI0MjFkYTBmOCBsZWdhY3ktdHJ1bmsKKzEyNzY2IDI5NzAxZTI5MDRhYzU0OTcwOTlmZDA0M2QwMzE2MDVmZDNmMTNkMTIgbGVnYWN5LXRydW5rCisxMjc2NyBiOWJiNzVkZWQ4MDRhY2E1N2JlOTYzYWYyZGNkZDQ4NTZhYzkyZjUzIGxlZ2FjeS10cnVuaworMTI3NjggNDg3MDBmOTljNmE2ZDMxZDUyMmQxYzc0ZDNhMTBmMzUyMmUzM2ZkZiBsZWdhY3ktdHJ1bmsKKzEyNzY5IDJmNDI1YTU3ZDlhZmU3MWVmNDRlZGVmOWU5MTAzMDgzYThiMGE5ODMgbGVnYWN5LXRydW5rCisxMjc3MCBhYmFjN2Y2Mjc1N2M4MzExOGY1ZjNmZGNiNWU4MDc5YmQwZWM2YTg5IGxlZ2FjeS10cnVuaworMTI3NzEgMzVkZjRkYzJkMzBkNTQzNjJkNWEyOTE3OGFhYzg4MTVmZGU1YmIxMyBsZWdhY3ktdHJ1bmsKKzEyNzcyIDBlMzU1ZGZkNmY3ZDE1Y2MzMmRmMjcyODA2NGYxYWE2NmM0MjNhYTMgbGVnYWN5LXRydW5rCisxMjc3MyA2NGJjYTNiY2FhMzc0ZjE3NjUwYTE0MjIyZDY4ZDEyNzkyOTQyN2FmIGxlZ2FjeS10cnVuaworMTI3NzQgNjVhMjUzOTcxZWNjZTg2NjUzZTUwMzAwODBjYmZkZTU1Nzc4YWY5YSBsZWdhY3ktdHJ1bmsKKzEyNzc1IGEyYTc2ODFiMjVmMWY1OWJlY2VjYTU4NWUwZmJlMWEzOTNlMjg3ZDggbGVnYWN5LXRydW5rCisxMjc3NiAwOGVhZGM2NTBlZjA5NWM3YTVlZDZmYmFlM2ZlODVkYjliMDM5NGM2IGxlZ2FjeS10cnVuaworMTI3NzcgMTlkNjEyMWZlNGYzNDNjNDYzYmQ0Y2MzOGFkMWM0ZjY3MjA1YTlhYiBsZWdhY3ktdHJ1bmsKKzEyNzc4IDYzMmJkM2E1ZGRlZjViZGQwNWMxOTNhZjU1OTM4YmI3MThhYzIzYmIgbGVnYWN5LXRydW5rCisxMjc3OSBiYTVjNjI5MDgxMjI1YTJhOTNlZWM2Yjc5OWJkY2QyNjM3ODJlYWU4IGxlZ2FjeS10cnVuaworMTI3ODAgODYwMzVhZTUzMDZjMTE3YWY3ZGZkZDI5NTM2NmU1M2Q4YjIwMzk3MiBsZWdhY3ktdHJ1bmsKKzEyNzgxIDQ2YWMxMWI3OGU5Mjc4MDU2YWE5NmU3OTZkYWU3ZmQ4MmViOGMzMDcgbGVnYWN5LXRydW5rCisxMjc4MiA4ODZlYTI1NWYzODFmZjBjNmRiNzBlMjc5MTIyMmIyZWI3MjE4OGMyIGxlZ2FjeS10cnVuaworMTI3ODMgY2M5ZmQ1MDYzMGE2OTljYjAzYzJhZjBiMzI0ZjBiNzQ4MzIxOTFmZiBsZWdhY3ktdHJ1bmsKKzEyNzg0IGNlZjJhMTM0NTY5NWQxOGY4MjEzMGQ2MWQ1NjI2MzZjYzgxZDNkNmUgbGVnYWN5LXRydW5rCisxMjc4NSAwMWRhZmM1NzFhMzAzMjg1MTg2OGMxNTA1ZDdmZmJiODFjODExMjg3IGxlZ2FjeS10cnVuaworMTI3ODYgZDNiZWNlNDY0ODZlMjlkN2EyYzVhNjJmOWZiYzFjNTExZjM5ZGQzYiBsZWdhY3ktdHJ1bmsKKzEyNzg3IDA2ZGEzYmEzYWFkZTJlNDdlZjcyYmM4ZTY1MmE4YmEwNGMyYjNlM2MgbGVnYWN5LXRydW5rCisxMjc4OCBjZDRjNDUxMGFkYmQ0N2U5ODUzMTlkZjFjMDcwY2YxYzU0OGM0NjkwIGxlZ2FjeS10cnVuaworMTI3ODkgM2I4MWE3ZDQxOGNiZWU4ODQ3NjMwMjY4NzVjZTk5ZWJiMzg3ODRjZCBsZWdhY3ktdHJ1bmsKKzEyNzkwIDNlM2MwOWUxNDUwMzFkNDAzOWI4OGM5YWVmZGI3N2IwYzg3MmI2MTAgbGVnYWN5LXRydW5rCisxMjc5MSA1YzBjMDYxZGUyYWViYTZmOGVkNGVjZWQ2MTM1N2ZmNDA3ZGZjMWJiIGxlZ2FjeS10cnVuaworMTI3OTIgMWU3NjZkZTcxNGRlYmIwZDM3MTgyZTU4MTY4MTg4M2FmNjAxYTM3MiBsZWdhY3ktdHJ1bmsKKzEyNzkzIDVjYzcxMjI2NzFhZWFmYThlMzEwMzc2NzRkMjNkMjk2MTk5OGUyNjkgbGVnYWN5LXRydW5rCisxMjc5NCA5YmUyNzI2YzliMjU0Y2Q4YWRhNmExZTdlYTFjMTY1ZmFjMGU5ZTU5IGxlZ2FjeS10cnVuaworMTI3OTUgMWM2YjEwZGVhOWYwNWY4NTY0N2UwYWNhZGI5MzAxNmQzMTMwNTg0MSBsZWdhY3ktdHJ1bmsKKzEyNzk2IDI2ZGIxZTk2Y2FmMzk0NjlmZTk4YTc4ZTZjNjU2OWY3YWFiZTU5MWIgbGVnYWN5LXRydW5rCisxMjc5NyBiNzgxMzViMTBhOGUxZTZiZjMwYzk1NDc3MGM4ODViNDk3YWRjNGQ5IGxlZ2FjeS10cnVuaworMTI3OTggMjRkZWY2YzI1YjBhMDUwYWVlMWZiZWQwZTMzN2Y3NzI1ODAzZGIzMyBsZWdhY3ktdHJ1bmsKKzEyNzk5IDUwMDM2ZDA2ZTk0YWE4NDBkZmY1NDZiYjQ5ZDVkMTlhOGZiMmNiOTYgbGVnYWN5LXRydW5rCisxMjgwMCAzMjQxMWFmOGMwMTI5NzYwMzZiMzFhMDlhMDY4NjlhNDA5NTFjYzNhIGxlZ2FjeS10cnVuaworMTI4MDEgY2MwYzkwNmMyNDE1NjY4ZDMxNTJjM2RlNjM2NTQxMjZmMjZlZmUyMiBsZWdhY3ktdHJ1bmsKKzEyODAyIGE5NWM3ZDJhODNmN2QwMTUxYTA0MWQ4NTgxNzExY2I3YmQ3OTRkZWYgbGVnYWN5LXRydW5rCisxMjgwMyBmZDA5YjNmZDFlZGM0ZGE0Zjk4ZDM3NzE3NmUxYjc3NDRkODA1MmQ3IGxlZ2FjeS10cnVuaworMTI4MDQgNWU4OTg5YzJmODVkZmRmYWVmOTk3MjVkY2NlZmZiNmNiNzJiYzY5OSBsZWdhY3ktdHJ1bmsKKzEyODA1IDg4YTdkODU5OTAwZTNhMTM3N2U4MzJlMDQzZmU5OTJhMTYyMWIxYzYgbGVnYWN5LXRydW5rCisxMjgwNiBmMWY2MzY0YWRkYmRlZGMxOTk0ZGVmMDFjYjU5MWQ1YWZkNTFmMjA4IGxlZ2FjeS10cnVuaworMTI4MDcgYjY0OGY5ZThiM2VkYTI5ZmExMjVjNWE3YmJmMmY1Njg5Mzc1NTg2YyBsZWdhY3ktdHJ1bmsKKzEyODA4IDVkYmNkZGJkZWQwMGIyZDhlODAwYTc4NGI2ZDFmMjM4YmRkNDMxNzkgbGVnYWN5LXRydW5rCisxMjgwOSA0MmM5YThkMTA4MzQ0ZjE3NTgyN2E1NzFjNTNmZjAzMmY2ZDM1ZjAyIGxlZ2FjeS10cnVuaworMTI4MTAgZTdjMDlhNjJiZjFmMWE2MjI2YWY0Yzg0ZWZiMGRhMjNjYzU0ZjJhOCBsZWdhY3ktdHJ1bmsKKzEyODExIGUzMDg5Mzk2MTM5ODI3ZjcyMzM3Mjk3NGQ2NzE2YTRhMjI1MGJmZTMgbGVnYWN5LXRydW5rCisxMjgxMiBkYjMyZGViMTNjOWYwNmUwOWZjNzFhZWNlODZlYTdmN2U3ZmIyOTQxIGxlZ2FjeS10cnVuaworMTI4MTMgYTRkOTk2MDczNDRmMDc4Yjg2YjQ2YzFmYjliNzU5ODk4ZDJhZTBiNSBsZWdhY3ktdHJ1bmsKKzEyODE0IGNkYWU2YzExNDVmNGMzYjhlNzIwZjBjZGE4ZmQxNmRiZTU0MDdjMGMgbGVnYWN5LXRydW5rCisxMjgxNSAxZTU3YWVlNTA1NjU0ZWVlYzVhNzk1MTJjMjVlNzVmNTk2ODAzM2ViIGxlZ2FjeS10cnVuaworMTI4MTYgZmExOGIwZmMwYzE4MWU0M2U5OWFmNmI3ZTJlMDcxYTA4YTFhZTJmOCBsZWdhY3ktdHJ1bmsKKzEyODE3IDkwYzc1MmFlNDRhNmI5MWY5NDg4MzA1MWJlNTIyNGNhODFjODk4ZGQgbGVnYWN5LXRydW5rCisxMjgxOCA0NGEzNzVlMzFhZTJmZTdkODBjZGNkODMzMzhlYjliMmQ5ZWRkNmJhIGxlZ2FjeS10cnVuaworMTI4MTkgNDQ2YjA5NjdmN2Q5NjljZjA2MDBmMTMzYzk5MzIzYjhlMWU0N2IwNSBsZWdhY3ktdHJ1bmsKKzEyODIwIDM5YmQ3Yjg0NzhkYjM1Y2RlODJkYjFhNjY3YTVlOWRmNGMxYzQ1YTEgbGVnYWN5LXRydW5rCisxMjgyMSA0ZGQ3NjhhZTg5NWU2NGNjODEwZWU1MTY1ZGZjZDkzZDZiNTI1MTQ3IGxlZ2FjeS10cnVuaworMTI4MjIgOTAwMmY0YjQ3MDAwYTNmYzdjMzE4NGU2NmE0MmMyYzNmMmFlNDRlYSBsZWdhY3ktdHJ1bmsKKzEyODIzIGU5MzVkODk0N2UzMzk2ZThkMDdhMDczMzU5NmFhN2FmNDk1MmE2ZTAgbGVnYWN5LXRydW5rCisxMjgyNCBiZDA3Njc0YzNjOGIwNzRlZjg0OGE5MGVkZTNkOTk4M2NlMzY0YTRhIGxlZ2FjeS10cnVuaworMTI4MjUgYTg3Y2ZlYTMwYjA0ZDgwYTM3NjRiZGNlZGUzZjg3NTI1MmI3NDIzNyBsZWdhY3ktdHJ1bmsKKzEyODI2IGZlZDY2YmRkY2U2MzgxZWIzNDhkYjM3OWMyNDljYTY1NTVlMjI1NDUgbGVnYWN5LXRydW5rCisxMjgyNyAwZDBlMjIzOWRmZDhjMDY4NThiNDhlM2ZjMWQ0NGNhZTc3OTQxMjkzIGxlZ2FjeS10cnVuaworMTI4MjggNGEzZTYzOTM4NDY5NDExMWU5MWQ1ZTI1YmMyOTE5ZjdiZGE4OGJmMCBsZWdhY3ktdHJ1bmsKKzEyODI5IDRjNGYzNjJmYTBhNmFkODUyMDQ3ZTUwODMyNDMwMmU3ODY5NGNjOTQgbGVnYWN5LXRydW5rCisxMjgzMCA2NmE3ZDYxY2ZkODRhM2RkYTlkMjUxY2IwMWYyYzBhZDJhYjYyYWRhIGxlZ2FjeS10cnVuaworMTI4MzEgZjQzOGM2ZTJiNmMxOGU1N2NkOTI0ZDY2NDRmYjkyOWE5OTMzYjg2MCBsZWdhY3ktdHJ1bmsKKzEyODMyIDIwN2I0MGVjOWE3ZTM5MTRiZmFjYzJkMWE2ZGZiM2ZiMDE4YTczN2MgbGVnYWN5LXRydW5rCisxMjgzMyBiZTA1NjA5NDc4YmVmMDQzOTU1YjQzMzRkMmU5ZWMyYjljODdjNTU4IGxlZ2FjeS10cnVuaworMTI4MzQgYWJkNDIwMjlmYTAxMDFkNTQzZmU2MTE1YmQ3MDZmM2YwYjJhZDliMiBsZWdhY3ktdHJ1bmsKKzEyODM1IGZmZjgyZDJmYjM2OWVmZDJlYzA5YTZiZTBmNjlkZDlkYzZkOGZkY2EgbGVnYWN5LXRydW5rCisxMjgzNiBiNmVkZWMxZWZlNjQyNzg1MWJhMTkwODk0YzBmZjg4MjYyMzc0NWNjIGxlZ2FjeS10cnVuaworMTI4MzcgNjEyMjQ0NTliYjA5MzYxYjExZjM0MGI0OWYzYjI4OWUxMDE1M2YzYyBsZWdhY3ktdHJ1bmsKKzEyODM4IDA5M2ZjMjk4YWZkNmIwZTAyZTQxMWE2NDVkMWMxZWNhODdiYjk3NmMgbGVnYWN5LXRydW5rCisxMjgzOSBkZGJmMWFjYjcxNzAyZGQ1MTkzNGVkZmJmNTUyYjZkMzU4ZDJjYmI1IGxlZ2FjeS10cnVuaworMTI4NDAgYThkYzU5YjY2ZjQ5NjZjYWM4M2ZjYTA1YjlhMTE5OWEzNzNjNTllNyBsZWdhY3ktdHJ1bmsKKzEyODQxIDVjNzBlY2RlZGVmYzMzNjQ5YTdjNTViM2UyZWZmMDk1MWU3M2FmZDggbGVnYWN5LXRydW5rCisxMjg0MiA2ZWUwZWNlYjc3NWYyZDIyZTkwMWMwY2FhOGY1NDdjZjBlODgyN2FkIGxlZ2FjeS10cnVuaworMTI4NDMgNjVhZWQ1MjlhZDhhZGFmMzQ2ZDE2ZDNkOWE3N2NkZWUxMjBlNjQxOSBsZWdhY3ktdHJ1bmsKKzEyODQ0IDA4ZDMxOTRhM2MzZmM4ZDY1MjgzMjEwN2VkZDZlNjQzYmZlNDVlZGQgbGVnYWN5LXRydW5rCisxMjg0NSA4ZDA5MmE2NzJkMDliYjE4ZDg1ZjUwMTI5OTAxNzg1MWZhNmM3ZmNiIGxlZ2FjeS10cnVuaworMTI4NDYgYjlhODBiYmJlNGE1YTY4NWIzODVjMmUxZWUwMTNlZTllZjc3ZmQxNCBsZWdhY3ktdHJ1bmsKKzEyODQ3IDZkYjM1ZWU5MGJmYWMwM2U1YzBmY2UzNjBhMWQwY2Y4YTZhNmY5NTMgbGVnYWN5LXRydW5rCisxMjg0OCBkNzM5ZTFlYjYxNzUxYzE5OTVhMjY3Y2QyZDc2NmNiMGE5ZDJkN2EwIGxlZ2FjeS10cnVuaworMTI4NDkgNGUyZDE4OTczYjk0YTAzNzdmMjViMmE4ZGU2ZGQ0ZjAxN2UxNzczMCBsZWdhY3ktdHJ1bmsKKzEyODUwIDFkODU3YjU5NzU4MjM3ODc2MjYyMjM1YjE2ODdkYmZiY2E5ZGFhNDUgbGVnYWN5LXRydW5rCisxMjg1MSA4OTJkYmE3ZjQwZGVlZmVlZWJlOGJhNzVlYzQ3ODFkMjk2YTU3NjQ1IGxlZ2FjeS10cnVuaworMTI4NTIgN2EzOWM4NzNkYzgxODBjOTc0ZjFlMDRhM2M3NmZmY2M5NWJiZmMzYyBsZWdhY3ktdHJ1bmsKKzEyODUzIDY3ZmY5ZTdkYzhhZmY0YTAwZTVkYWUzYjVkMmE0ZGM5OTFkOTVkYTggbGVnYWN5LXRydW5rCisxMjg1NCBhNzk3ZjBjNmMyZTFkZDEzOWMxNDk1NzM2Y2MyM2EzYmQ5YWQ5ZmIxIGxlZ2FjeS10cnVuaworMTI4NTUgZTZkMzRjYzBjNzljOTYyYzM5ZmU2M2FkZWZkODM3NjZjMmY2YmY0NyBsZWdhY3ktdHJ1bmsKKzEyODU2IDZiNTc5MGNlMjUzNmRjNmU0NjEyN2UxZTIxMDdlYTk1ODA1NjY4MTIgbGVnYWN5LXRydW5rCisxMjg1NyA1MGQzMDk5ZDUwYzIxZDNjNzg2ZTBmOTY4MWY1MmZiYzNmMzFjM2Q0IGxlZ2FjeS10cnVuaworMTI4NTggNDA3MDIyY2YxOTMxYzE1ODc0MGU5ZWEzZGU1N2NhNzlkNzVlMjJmZSBsZWdhY3ktdHJ1bmsKKzEyODU5IDg5MjNhZDdlMTNmMmIwMTU5ZWRlMWFiMDM2Y2NhOTM3ZmFkZjY5YjMgbGVnYWN5LXRydW5rCisxMjg2MCBlOThlMWVhNTFmMTYyNmQ1ZTZmNGQ1ODk2ZTE2YzNkYjEzMjI1NjZhIGxlZ2FjeS10cnVuaworMTI4NjEgZGEwYzEzMzBlNjZlZjJjZDBmYzA1OTMwZWM5NWM1YjIxMWNmMDE1ZiBsZWdhY3ktdHJ1bmsKKzEyODYyIDcwYTNmYjFjZTIzYjQxY2I4MjYwZTA5MjkyMWE5MzJkODE2ZDg3MzUgbGVnYWN5LXRydW5rCisxMjg2MyBlYTBiYmMzYmYxZGZhNjE4YjRjYWExOWUzMDA3YTY2OWY0ZjA0ZjdiIGxlZ2FjeS10cnVuaworMTI4NjQgNTBlNGRkZGI4MjhiMjA3MTJlNTk0OTI5ODg0OTU5OWRiOTVhYzJjYiBsZWdhY3ktdHJ1bmsKKzEyODY1IDE0MDllNzY4N2E5YTAzYjI3OGRmYTRiOTc1YjU4MTBkOWYyYTdmMGYgbGVnYWN5LXRydW5rCisxMjg2NiA0ZGFhYjdhOWY1NjZhZDQyMTU1MjQ2OTI2Zjk1ODdkZDRjYjQ0YWViIGxlZ2FjeS10cnVuaworMTI4NjcgZDUxNjRjNjZhY2M5NjNiYmJmZjIwMjA2MmVhZmVkY2U5MGRjNWE4YSBsZWdhY3ktdHJ1bmsKKzEyODY4IDI1ZDdkNGQ3Mzk5ZjEwY2FhYWZmOTA4MzFlYWNlZjI3OWIxMTA1OTcgbGVnYWN5LXRydW5rCisxMjg2OSA2NWU3MjEyZGYxYmNmMWNjMTdhNGM5NmQ5YTI4NGE4NzMyODYyZGRjIGxlZ2FjeS10cnVuaworMTI4NzAgYzVmNDlkNGUyOWM1MDM5ODNlMTI1OGMxNmJlYTRlYzJkYWM1YjhkZSBsZWdhY3ktdHJ1bmsKKzEyODcxIDc5NWQ1MWFkMjI4YTI0MGRkNDY2NDczZWI2YTI4ZGQxM2EzZWFkYzIgbGVnYWN5LXRydW5rCisxMjg3MiAxMzJmOTQ2NDJjNzRkMjg3MjQzNTNkZjNiMGVlNjkyY2EwY2JjODM4IGxlZ2FjeS10cnVuaworMTI4NzMgOTViOTIyNWE1MmU0NWJiMjU2ZGJhZTE1ZjUxMTQxZjY4MjI4YTg4OCBsZWdhY3ktdHJ1bmsKKzEyODc0IDk2OTEzOTA3YWU2OGQ5NDY5YzUxMmQzZjg0OTA2Y2Q4MDA0NzM0ZGEgbGVnYWN5LXRydW5rCisxMjg3NSBmYjdmYTQ3NjIxMWYzNWQxNTljMjExNGMxNGE0Yjc5YjYyOWFhOWU5IGxlZ2FjeS10cnVuaworMTI4NzYgMDdlZTc5NTc3NGQ4OWI0MWJlYjNiZDU3ZmZmN2Q4OTRlYzJkZWE1MyBsZWdhY3ktdHJ1bmsKKzEyODc3IDQ4MTQxZGE1MThkZmE3Y2FjMjlkN2E2ZWE3MTQwMTU0MjViOGI4ZWIgbGVnYWN5LXRydW5rCisxMjg3OCA0MTdhYTQyNTAxM2FkNzNlYTM4MDJmNWYwMzZlYjNjZjk5YWFiMzMyIGxlZ2FjeS10cnVuaworMTI4NzkgMzM3NzMzY2U5NTkzZmIxZWEwNWQ2OTc2YTc5YTQ5ZTAyNjkwMDY0OSBsZWdhY3ktdHJ1bmsKKzEyODgwIDRjYmIyMTIyYzczNThmNDg1MjJhNDExMjNmOWIxZTYzNWUzYWYyZTYgbGVnYWN5LXRydW5rCisxMjg4MSBkOTgwODVkZTk3ZDFmZTg4YTVjYThkMjE4NDk4NjhkNjYwMDhmOTViIGxlZ2FjeS10cnVuaworMTI4ODIgOWU5Njk1ZTMxNGM5NjA3MDM2MjI2Zjk1NjJiNmUzNjJlMzhlNTM4MiBsZWdhY3ktdHJ1bmsKKzEyODgzIDY5ODk4YWNiMjNmMjgxYmQ2OWNhMmVmNzRkZjk1YzQ4ZGViNDM4NjkgbGVnYWN5LXRydW5rCisxMjg4NCBmYjUxYWE4MjRkZjJkNDcyMTdkNDY3ZjFjNGI0YTMyOTFlNGFiNWIxIGxlZ2FjeS10cnVuaworMTI4ODUgZTJhMDhhODFlNTZmNGVlMjg1Njk1ZTIxYTk4ODMzNDg3MDZhYWJlNSBsZWdhY3ktdHJ1bmsKKzEyODg2IDcwZGQ5MWMyMTUxMzRmYWU0ZWRmY2UxODU2ZTc0N2U3ZDFiZDkyMjkgbGVnYWN5LXRydW5rCisxMjg4NyBkM2RjNjIwMDQ3NzZkZjAyZjQzMDcwZDllNWZlMTFjODgyZTY4YWRhIGxlZ2FjeS10cnVuaworMTI4ODggZTkzMzUyMjg2YWFjNmQxOWU4M2Q1NjA3ZGY1MGYxZDg2MTE5MjJhNSBsZWdhY3ktdHJ1bmsKKzEyODg5IGM1ODkwMjFjNDdjOTMzN2VlZjQ3MjUwMjE2NjY3NzdlMmY1ZmE5MGYgbGVnYWN5LXRydW5rCisxMjg5MCA5YzVkOWJkZjdlNDIzNDE5YmRmYmJkYzk4NDk3MzA1YjA0ZDU4MjNlIGxlZ2FjeS10cnVuaworMTI4OTEgZjRlNjA1YmQ4ZjFiNzZiNjYyZjc2ZTAwMzllMTNkZjdmYTk4YTQ3ZiBsZWdhY3ktdHJ1bmsKKzEyODkyIDAxNzNhNWY0NzIwNmRiZTQxZmEyOTNmYjg2YWFjNDVkYzMyYTJmZjUgbGVnYWN5LXRydW5rCisxMjg5MyBmYjgxNjU5NDg5YTE2NjU2NGExZWJhYzhhOGQ0YmJmMWMxOGQ4MGE2IGxlZ2FjeS10cnVuaworMTI4OTQgN2I4MTBhYTM1YjVjZTg2ZGIxODAwMmFkODUwOWExZTE3YjgyMGU0NCBsZWdhY3ktdHJ1bmsKKzEyODk1IGY1NGJhYzVhZjk4Y2EwMTQ3ZDg1ZGFmYzQxN2M3ODYxMDg0MjgwYjIgbGVnYWN5LXRydW5rCisxMjg5NiA3NDllMWIzZDgxNzNhMzA5M2MzNzBiOTIxMmVlMTAwZDVjYzE1M2NhIGxlZ2FjeS10cnVuaworMTI4OTcgNTIyMDY1MzJkMzg5MWEwOTMzYTJhYzlmOWQzMzQ2MGQ4Njg3MjU2YyBsZWdhY3ktdHJ1bmsKKzEyODk4IGYzNDMzMjk1MDBiZTc5YjEyN2Q2MzY4MmQ5Njc2NjdlMjZiYWEyOTcgbGVnYWN5LXRydW5rCisxMjg5OSBjMDY2ZmQ4NDMzYmE4NGVjMDUzZDNlYmE0YjdjMDdiODVmZGJkMmY3IGxlZ2FjeS10cnVuaworMTI5MDAgZGM5YjBkNDE4YzAwOWJiOGQ2OGE0Y2E2M2FiZDExYjU1MDU2Mjk0YiBsZWdhY3ktdHJ1bmsKKzEyOTAxIDdmMTQ3YzRlNDIxOWIxNmQ2ZTM0ZGEzMzQyODY2YTgyMzQ4YjgzMWUgbGVnYWN5LXRydW5rCisxMjkwMiAyYTRjMTc2ZGU2Y2RkM2M4ODkxNzY2ZDMxMDk4YzE4MTY5YTYzZGY1IGxlZ2FjeS10cnVuaworMTI5MDMgOTRhZDkwZmQyNzEyNmZlNWJmNjg4ODk5NWUyNjkxMzYyNmJlZTlhNiBsZWdhY3ktdHJ1bmsKKzEyOTA0IGY4MWRiNzM4YWJkOTJjMjZiMGQ0MTMwZmE3MWE0M2I0ZDExOTk4ZWEgbGVnYWN5LXRydW5rCisxMjkwNSA5ZDRlZmNlMTFmMDliMTU5ODZhMTEwODRhYjJhMjllMzA5YjViYmQ1IGxlZ2FjeS10cnVuaworMTI5MDYgOWM2ZGEzMGFlNjc1ZGNhNWM2OWRlZDcwNTY4NmRhZjg4ZjFhYmMyOSBsZWdhY3ktdHJ1bmsKKzEyOTA3IDgwZDJiOWFmZDE5Y2M1NTQwZjE2MmFjMTlkMGE4Mzc4OTJjNzQ3YjcgbGVnYWN5LXRydW5rCisxMjkwOCAyYzAzOWMwMTA0Mzc3ZTk0NWZlZTIzYzgwNmNjMmFlYmMwZDljMzZlIGxlZ2FjeS10cnVuaworMTI5MDkgMTU5ZjFjM2FmZTI4NGU5ZWM5YWU1MDRkZTczNGFiZTYwY2UxNjFmOCBsZWdhY3ktdHJ1bmsKKzEyOTEwIGNjZWY1YzBlOGRkYzY4Y2U1MTk3MWFjZDk2ZTNhZTI2YjZlODEzOTMgbGVnYWN5LXRydW5rCisxMjkxMSBhMTU0NGZjNDlhNzYzNDU1YTNlMDdjZWY1YzkzNzhiNmUwYTg4YmRjIGxlZ2FjeS10cnVuaworMTI5MTIgMDUwODMyZDgzOGNhNWVmODZmN2E3MWE2NmFlMWY0YjcyYWVjNTI4NCBsZWdhY3ktdHJ1bmsKKzEyOTEzIDk3ODIzMTg0MjY2YTAxOTAyMDBlYjM5Y2NhOTBkMTg2YjBkNjlmYjUgbGVnYWN5LXRydW5rCisxMjkxNCA5OTUyZjE2YmJlOGNlM2U5NzJmMDA1ZTIxMmE0Y2FjZTE0NmE1NjdmIGxlZ2FjeS10cnVuaworMTI5MTUgZTllNjliMDJkMGYwZDEwZmYzYWVmODYzZmQ3MGZjNWY5YmJjNTZiMCBsZWdhY3ktdHJ1bmsKKzEyOTE2IDQzNjNmYjJkNDM0NTAzZjc1MWE4NTY4YzU0ODE4NDU4MTY1OWJmNzcgbGVnYWN5LXRydW5rCisxMjkxNyBhNjMwZTU0ZTk3ZjI5M2JiYjY4MWY4OTQzYjhlMWQ4M2QzMmU4OWFiIGxlZ2FjeS10cnVuaworMTI5MTggNDhmYmM1NWMwNTUzNDE4ODBmOTUxM2YyOWFkMmI4M2NmNWFlOWNhMyBsZWdhY3ktdHJ1bmsKKzEyOTE5IDUyNDM4Yzg3ZmVkY2MyMjZhNjdhYTUyODc2OWNmZDQ1M2FiMGEwZTYgbGVnYWN5LXRydW5rCisxMjkyMCBkYzUwMmNlNzU3NWEyMDcyMTAxNjk0MDZmYWMxNTAyOThlNTIzYTIwIGxlZ2FjeS10cnVuaworMTI5MjEgYjhlNGRlMWMzNWNkYWQ5MDk2ZGEwNTZlNjBjNDNlMTEzNjUyNmI4MyBsZWdhY3ktdHJ1bmsKKzEyOTIyIGNhYmFiMWY1NTk2ZTI4NTI4YjJiMmU5ZDhiYTY0YWJiNzJlN2Q3MmQgbGVnYWN5LXRydW5rCisxMjkyMyA2ZDU4MjcwZGJjZDQzZDQ0OGIxYThkODMxNzQyYWViZDA5MDgwNGQ5IGxlZ2FjeS10cnVuaworMTI5MjQgMGQ2YmQzOTFhY2Q4MzcwOTc1ZTc0OTFmYjRkNTgyNzE5ZDc5ZmI1ZiBsZWdhY3ktdHJ1bmsKKzEyOTI1IGIzNjQ2OTM5ODI2MjY5ZTNlZWE4OWY3MTdlZWQ4YjcxNTlkYzM3YjQgbGVnYWN5LXRydW5rCisxMjkyNiA5YTRiYWYwYzU3ZWExOTQxOWVkZDc5OWZhYjAwMzM4Y2I0YWZkODUyIGxlZ2FjeS10cnVuaworMTI5MjcgNWNjZDNiODZiMWE2MzdmZDMwMmNiN2NlMGIzOTQ1MjFlYjA1Y2RlMCBsZWdhY3ktdHJ1bmsKKzEyOTI4IDRlOGRlZmVjMDlmODUwNDA3NWM5ZjA2MDAzMTRlYWQ3M2E3ZjM0MzYgbGVnYWN5LXRydW5rCisxMjkyOSBjMTc2OTY4YmM5MWMxMDkzMjhjNGQ5MzE4MTBlYzZlYzFmZjRjNmJmIGxlZ2FjeS10cnVuaworMTI5MzAgZTY3OTlhODU1YWY3OGM1NDdkNGU4YzJkOGU5MzkxZDFiMjQ3MWQ5NyBsZWdhY3ktdHJ1bmsKKzEyOTMxIDM1NzFiNGMxYmMwZTNkMzdjZGRmNzkxNWVmNWNiYzNjOGM3ZWQwOTcgbGVnYWN5LXRydW5rCisxMjkzMiBmOWFkMTQ4Yzk4MGNjZTBiZjcyZmQ5ZTU0OTBkNTVmNTRmODkyMTYwIGxlZ2FjeS10cnVuaworMTI5MzMgZDU5MmZlNWUwOWQ1NzRkMGRmMzU3ZDU2NWE3ZWE0ZDk3YTJhOTdlNSBsZWdhY3ktdHJ1bmsKKzEyOTM0IDA3ODllMGI1NTU4N2JiMjE4MWYzZWNkNmZlMGNiZTY1YmYwODNiNjAgbGVnYWN5LXRydW5rCisxMjkzNSAxY2M1ZDIwZDJlZDg0Mjk2ODFkNWI5NjQ0N2IxMDk1YWE1ZGRjZDljIGxlZ2FjeS10cnVuaworMTI5MzYgMmFiMGVjODQ3MTg0NzY3YzM4MzBjN2YyMzE0ZWM5NWU5NWQzNmEwYiBsZWdhY3ktdHJ1bmsKKzEyOTM3IGE0NzY4MzE1OTQ4ZGMzMTA3Y2QwZmE4YzFkZmExMDRiNGE0NzAzNjEgbGVnYWN5LXRydW5rCisxMjkzOCAzMjQ0NTBlYTU0NTAyYjg5MzYyMjIwNzkxMTZhMGI5N2JlYWVjZGIwIGxlZ2FjeS10cnVuaworMTI5MzkgN2QzYTYwZjRlMGI0NzM0NmVlYTAxYWFlMDY2NTY3MjYwMTMxYjRjOSBsZWdhY3ktdHJ1bmsKKzEyOTQwIDNiYzhmNTMwNDFjMDE1YmRhZjQ4MTU4NjJjZGM2YzU2M2Q0YTg4NjMgbGVnYWN5LXRydW5rCisxMjk0MSBlZTZmYTliODY4ODU0YWMxMzA3NGIxYjE2MGE2YmVlZjcxZmUyZmU3IGxlZ2FjeS10cnVuaworMTI5NDIgOWNlMTQ3NGFiZGRkN2MzNjlkODRkMjZiMTBkZDQzMmUwNmNhMWM2YiBsZWdhY3ktdHJ1bmsKKzEyOTQzIGI5NDE0NGRlMmYzMmI1M2UyZmQ1MTgyNWJkYTkyMDAxMzg5ZGE2ZDIgbGVnYWN5LXRydW5rCisxMjk0NCA5YmE1ZGZmY2NiMWJkYjQzNjM2MjcxOGUyYmJjMjhlZjIxYjBhMzQ4IGxlZ2FjeS10cnVuaworMTI5NDUgOTE4NGM5ZTEwOGY5N2JiNjZjZTEyMzNmOTczOGY5MmRjMmIxZmEyYiBsZWdhY3ktdHJ1bmsKKzEyOTQ2IGYzYTRjNGY0MDQ0Njc4NWU4NTY2ODQ3N2VkMzg0ZjRhYTFiOTEwOWEgbGVnYWN5LXRydW5rCisxMjk0NyAyYTE0OWU5NGVmNGFjMTQ1ZDVkMjFlNjUyMWFjZDc3MTdmMDRhMDYzIGxlZ2FjeS10cnVuaworMTI5NDggMDBjMzdjYjc1YzI4NTQ5ZDA0OTdlYjZmNGJlOGRiMzVlNWQwYzcyNiBsZWdhY3ktdHJ1bmsKKzEyOTQ5IGJmMjZiN2MxZTZkZWMxOWNhN2NhOTkxMDJkYmVkNjA5NzNmYjA2YzIgbGVnYWN5LXRydW5rCisxMjk1MCBkMzc2MjkzM2JmZjg4OWE5MDgzNmRkNTUzMDZkNmNiZmUyMDQwNTM1IGxlZ2FjeS10cnVuaworMTI5NTEgOTdhMDZlYzdjNmY0OWI3MjNiYTU0MjFmNDM0YjRkZjVkYTAwYTdkYSBsZWdhY3ktdHJ1bmsKKzEyOTUyIDdmZWY2MGY4YmM0NTU1ZTYzYjU3Mjk2ZjBkMWUwOGNiMDZiZDdmNTAgbGVnYWN5LXRydW5rCisxMjk1MyA1Y2ZiZDQ4OWE1ZDM0ZDA5ZDllMWY5N2NjNTc0ZjU2YTA3MTk1OTc5IGxlZ2FjeS10cnVuaworMTI5NTQgMmIxZGZjMTM5NTFkZmI2MzBhYTY2ZjZmZDNjMmEyNTY3YjExMzU0YSBsZWdhY3ktdHJ1bmsKKzEyOTU1IGM5ZTEwZWQyNmQ5YWIxMDAwNWViMDZkYzljZmMwNWQ1NThjNTE5OGMgbGVnYWN5LXRydW5rCisxMjk1NiA1YjU0ZmE3NzVlNTUwZWNkOGViMjJmMmJiZjhkZDM5NTYxYmM4MTFiIGxlZ2FjeS10cnVuaworMTI5NTcgZGFkMTRmZmUxYzIyYTA2YjA1ZjU5NmYwMTMxYjAwZmY1NGU3ZDk5YSBsZWdhY3ktdHJ1bmsKKzEyOTU4IDExMTc4YzhkNmJlMmE2YzI5M2E5YmM0NTYwZWRlNDFiMjc1Yjc2YTkgbGVnYWN5LXRydW5rCisxMjk1OSAzZjIxM2E4ZmMwNGUwNmZkZmVhYTFiODcyNWJmYjhlMjBlODljYmY0IGxlZ2FjeS10cnVuaworMTI5NjAgODJhZGM1NGRkMzc3YzQ2NDRmMzRiMGRmOTU5OGYwZjhmODcyMzU3YiBsZWdhY3ktdHJ1bmsKKzEyOTYxIDcwOTEwZTMxMjVhMjc2MzE0MmZiMDhhODk2ODFkZWQ3YjJlODRlZmQgbGVnYWN5LXRydW5rCisxMjk2MiA0YzFiYmVkYWQxNGJlNjNjZDBmNDg1M2Q0NTRlMTkzNWQ5NTA2YTg0IGxlZ2FjeS10cnVuaworMTI5NjMgNjI3ODE5MTRmYWRiODkzY2Q2YWUzZmNhMWJmN2I2M2VlMzU1ZTcyZCBsZWdhY3ktdHJ1bmsKKzEyOTY0IDRhYmM1YWJhZWM5YWI4ODBmNTEyNGExOWVmMjdlODNkODAyYWRlNTkgbGVnYWN5LXRydW5rCisxMjk2NSBhNjQ2NGViOTg3ZThjZWFmMzlmYzFjOGUzNTAwMGM3MTA2Njc4Y2U2IGxlZ2FjeS10cnVuaworMTI5NjYgNTNjMWZhZWMxZDQ2NjZhNTA2NDM1MjBiOTE2MTdjNDU3OTY5YzczZSBsZWdhY3ktdHJ1bmsKKzEyOTY3IGY3NGVmMTk3MWJkMTI2ODA4NGU1NjI3ZDIzZDBlZjg3Y2JlMDhiY2YgbGVnYWN5LXRydW5rCisxMjk2OCA1ODY4ODQ2MjAxZWRlMjAxMzlmMDI2NzYxN2IwZDFiYmYyNWEwOWJhIGxlZ2FjeS10cnVuaworMTI5NjkgMzZiYTRkYmZmNjg2ZTg1M2FiMGM0ZDA2MmU2OTAwZDFmNmEzNTFjOCBsZWdhY3ktdHJ1bmsKKzEyOTcwIDI1NWFiYWIzYzU3NDMwNTA4YmUzMWYzZjUyYjM5NTYyMzU4ZjMxMDkgbGVnYWN5LXRydW5rCisxMjk3MSA5Y2Q0ZmQ5MjZkZjY0NDk5YjNhMDRhNzcyYmM4MDgwM2RlZDM1ZWJjIGxlZ2FjeS10cnVuaworMTI5NzIgNjAxYjRmMmQ1ZmM4NTI0M2EwYmIwNmI3MjhmZjk0ODJjMWI4ZWY1ZCBsZWdhY3ktdHJ1bmsKKzEyOTczIDAyMmIxNzhmZDBlZDU3NzgwNWU0ZjFkZjQxMDRlZjI2ZWZhNGE1MzkgbGVnYWN5LXRydW5rCisxMjk3NCBhYzNhNDY1ZTUwYTY3YmU5MWE3ZTMzY2E2MTAzMGRkMTk3Zjg1YjU1IGxlZ2FjeS10cnVuaworMTI5NzUgNGVlOTAwMDA1ZWQ4OGU2N2FkOGJhYTUyNzBiNzA1MTY0MzliYzJhMyBsZWdhY3ktdHJ1bmsKKzEyOTc2IDYzYzQ2M2E4NTI5MzZlZjQwMGFhYjIxMzJhZDM1ZjRkYWRmYWVhYjggbGVnYWN5LXRydW5rCisxMjk3NyBmODUwZWYzZGE0M2FmNDRkZGU0NDc3MzllYTA3ZWUwMTc2ZmQ5NTQwIGxlZ2FjeS10cnVuaworMTI5NzggYzgyYTg1YmExZGRlZjhlODI4NWJlMGE0Y2RlMTgxMWNkZWVmODlkYSBsZWdhY3ktdHJ1bmsKKzEyOTc5IDU3NzA0ZjBhZDliMDVjMDc0MDE0NzI2MjQ0NmZkZTZkZDRmMDY4MDggbGVnYWN5LXRydW5rCisxMjk4MCA0YjE5NDYxNzgwYjk5YTBjNTk2NDc4ZWU5MTRmNmUxNThmN2IwYjlhIGxlZ2FjeS10cnVuaworMTI5ODEgMDEyNTBiODMyMzc0YWIyYzU2ZmZhYjg4YjY2ZGZkZjI5N2VhOTFkMyBsZWdhY3ktdHJ1bmsKKzEyOTgyIGVlNjEwOTQ5ZjkwMjI2NGVhYzEwMzBmMjEzYmMzMmE0NGVjYjRkZGYgbGVnYWN5LXRydW5rCisxMjk4MyBjMjU1NGJmNjE3YzMyNTY1OTZiZjUxOTJmMmU2ZDFlNjNhMzljY2QxIGxlZ2FjeS10cnVuaworMTI5ODUgYmFlNjUwZjU3YzQxNTBiYjBjNDgxNmVhODcyOTM0MjIxYzUzOWFhMiBsZWdhY3ktdHJ1bmsKKzEyOTg2IDc1NjgzZmQzOWU5MWVhNGNkZmUzYmNmNDg2ODVmNzQ1YTQ0MDlmYjggbGVnYWN5LXRydW5rCisxMjk4NyA3NDc0YWQ3ZTBhNDQ5YWI5MTUwMjI5NWJjYWU4ZDVhZDRhNjk3OTE2IGxlZ2FjeS10cnVuaworMTI5ODggNTAwZjhlYzlkZWQxOGQ2ZGQ0OTg1Y2RjY2Q4NGM0NjhkOTlkYzg3MyBsZWdhY3ktdHJ1bmsKKzEyOTg5IDhkMTE1ZTExMWExNzQwZTkzZTI1NjhjOTRlNjdlMjQzY2ZmZTFmMGIgbGVnYWN5LXRydW5rCisxMjk5MCAzMGM5NGNkNDlhNjg4YTY2MDhiY2UyOGNiMjExNjA2YWNkYTFjZjYxIGxlZ2FjeS10cnVuaworMTI5OTEgMDVlOTdmNmEzNjM4YjM1MGVjMzk1ZTAxZWIxYTQ5OTUxMDQ0ZmMyOSBsZWdhY3ktdHJ1bmsKKzEyOTkyIGVjZGZjZWExMjQzODU2YzYyN2Q2NTAwZWZjMDI3ZmYwZTgwMTA5ZDggbGVnYWN5LXRydW5rCisxMjk5MyA4NzQ5ZTg4YWI0MDY2MGNjMTE4Zjc5MmMyNDlhNDVhNTc5Yzg1MDg5IGxlZ2FjeS10cnVuaworMTI5OTQgMzkwZTRjMTAzYmUyNjg4ZTBhMGNhN2FlZDVlZTYzMWQ0Y2M3NmI2NSBsZWdhY3ktdHJ1bmsKKzEyOTk1IGIyMzU3OTI0YTlhOTI2Y2RjZjM5YjUzZDkzMjA0N2ZjMDIzOGJmYzEgbGVnYWN5LXRydW5rCisxMjk5NiA0MzA1MmQ1Yjk4MDgzNDkyNjFhNzg5NjMxNTUzMDQ1NWVkMzFhYWI5IGxlZ2FjeS10cnVuaworMTI5OTcgZjVkN2M0OTQ1ZDVmNWI0ZGM5MmIxMGE5ZTgxMTgyMmIwNTI4ZTkzZSBsZWdhY3ktdHJ1bmsKKzEyOTk4IGU2NGM4Yjg0ZTI0Yjc5NWZiMDBlOTdmZDMwYTQxZDdmYWEyNDUxOGEgbGVnYWN5LXRydW5rCisxMjk5OSAyNDZiMTM0MTBhMzE3ZTRkMGFjYjQyNTQ0YzBiMjhiNjg1YmMyMGU3IGxlZ2FjeS10cnVuaworMTMwMDAgYmExYTI3ZDczY2RiMGEzM2ZhYmMzNzY4ZGZmOWNiMzkxOWNlMTJjYiBsZWdhY3ktdHJ1bmsKKzEzMDAxIDhkNDBlNmJhNGM5ZTIxNDE2YTI4YmUzOGQ3OTllMmQyODE0MDk4ZDggbGVnYWN5LXRydW5rCisxMzAwMiBmZTg2NDVlNDkzMTQ4MGM1YjdlNzdmODJjNTU4MmNjNWMzODc5ZDI2IGxlZ2FjeS10cnVuaworMTMwMDMgOTkzOTA4Mjg2YWM3MTY1Y2FkYTFkZGExMGExMmQ3NzE3OTQxZGI1NiBsZWdhY3ktdHJ1bmsKKzEzMDA0IGMwZjE0N2Y0ZjEwMGRiOTliOTk5ZDQ1MzdkN2VkOGY4ZTdkZGJiZDYgbGVnYWN5LXRydW5rCisxMzAwNSBlMDhkYTM0YzQ1ODJmZWRhMWVkM2U3YTc3ZTdhMzQzNGJiZDc2NmJmIGxlZ2FjeS10cnVuaworMTMwMDYgZmU4ODFmNDQ2YzVkMjhmZWE5N2VmYTE4NjI1YzI2MzEyNjhkNWRlMSBsZWdhY3ktdHJ1bmsKKzEzMDA3IDUzOTNjZTUyMDdjNzA2NTE2MGNkZGNkMGRkMTQ5OThlYWE4ZDIyZjggbGVnYWN5LXRydW5rCisxMzAwOCA0OGNkZGQwY2M3MzMwNzgyMjBhMjA2NGJkZWNmMWZiMGYzYTBkOWIwIGxlZ2FjeS10cnVuaworMTMwMDkgMjBmZWJhOTY3NDM3MTdiNWQ0NTU1ZWI2M2NmNDdhZjVlYjdjZDliYiBsZWdhY3ktdHJ1bmsKKzEzMDEwIDQ1ZTk5NzVjYjA5Mzk0ODU3NjAyOTBkMmUyY2Q1YjljNTJhMzhiYzAgbGVnYWN5LXRydW5rCisxMzAxMSA3NTNmM2Y5NWM1MGYxNWM4ZDJhYzU5NGIzMjNmMDQzNzY1NDQ4YzA3IGxlZ2FjeS10cnVuaworMTMwMTIgZDc5OTg5YTQzNWQ5MmUzMWI3MjJiYTcwNmVlZDA4ZTNmZjQ1ZWE0ZCBsZWdhY3ktdHJ1bmsKKzEzMDEzIDY1YjNjZmU2ZTY2NjkyNzk3MTA1Y2I3YTY2NmM4MGU1ZDcxZjc5NWMgbGVnYWN5LXRydW5rCisxMzAxNCBjM2VkYzE0YzM4ODBhMzk0ZGUzMTFhYzk3MTQ3NmJkNTQ5Zjg5NDkzIGxlZ2FjeS10cnVuaworMTMwMTUgMjE5OWY3MGIwZWRhNzJjODljMGMwODY0MjdkNGI3NzE4Mzk2MjZiMCBsZWdhY3ktdHJ1bmsKKzEzMDE2IGNhNDRmZjc0ODJjNzc1ZDE2Yjc3NmQyYzkyMGM2ZjE1NjVjN2NhNTUgbGVnYWN5LXRydW5rCisxMzAxNyA4MWY0YTc3ZTczMzczMDFiMzY2NTIwZDhjOTdjZjZjYmQzNDUxYjEyIGxlZ2FjeS10cnVuaworMTMwMTggOTZiZWFlYWQ4NzRmNzZhMDc5MmRiM2VhNGE1YzA0MzNjZDk2ZDhmNyBsZWdhY3ktdHJ1bmsKKzEzMDE5IDU2MTA1NDQ5NzcxYTY4NDMzYjlmYTZmZDczZjkxYTJlOGJiMDYwYTYgbGVnYWN5LXRydW5rCisxMzAyMCBkMzg0ODY4YWQ0NjIyZWJiOTBjODY4MWEyZjEyNWYzOTM3NGM4YzJhIGxlZ2FjeS10cnVuaworMTMwMjEgZTNmNTlhMDY0NzJlM2E1NjQzMzk5N2NjNjU5MzYwYzc0ZDk5YWM2ZiBsZWdhY3ktdHJ1bmsKKzEzMDIyIDlhYTY1ZDQ4ZGQwNTE3NzVkYTEyNmIzNjQ2ODU4OWIxNWZmOThkYWMgbGVnYWN5LXRydW5rCisxMzAyMyBiMTlmMmE5ODIwMzA1ZjkyNTQ0NzNiZWI3NWQ1MDNiOTNjMmRjMjg0IGxlZ2FjeS10cnVuaworMTMwMjQgN2VlMWUzMTM0MTQ3M2Y1MWMyNGRlMDFlODNlYjFiNWFmNmIxZThiNSBsZWdhY3ktdHJ1bmsKKzEzMDI1IGYwMDVhYzczNTg2MzQxM2FkYWVmYTVhYjAxYjU5NThiNDNlM2M2YjcgbGVnYWN5LXRydW5rCisxMzAyNiBiNWRlYTRjNzlkMjRlMGEwYjU2MGJmNjRhODdhMjNlNjA3MjAwODY3IGxlZ2FjeS10cnVuaworMTMwMjcgNDc0YzViODJkN2RlOTlmN2VlMDQyYTBjNmRmYmYxYTAzZjJlN2VhYiBsZWdhY3ktdHJ1bmsKKzEzMDI4IDg3OGE1NGEwNjExN2IzOWI5OTRiOWU4M2RhZjMxODczNGUxOWFjNDkgbGVnYWN5LXRydW5rCisxMzAyOSA2MWJlYzFlNWZhNTkzYTk3NTY3OTM0MjUxYjZhYzNiZTQ3NzRlMjAwIGxlZ2FjeS10cnVuaworMTMwMzAgNDE1N2YzODYyYTA5ZGYxNzE3NDZiMWJkYjdhZTcwM2JiNGUzODNjMiBsZWdhY3ktdHJ1bmsKKzEzMDMxIDNlZWZlNmIwODY2MmY0NTI5YTMyZjFiZWYyMGQ0NjRhZTdhNjRjZGYgbGVnYWN5LXRydW5rCisxMzAzMiBkNGNlOWYxZjYyNjY2ZTRkODhkOGIyYWNjNWRjNDdkOGM3YmRmZDQ1IGxlZ2FjeS10cnVuaworMTMwMzMgNTQwYzgxNzNlNGZkYmZlY2JhMjQ2NTQ3YzdiODFhZjk1MzkwNjEwZCBsZWdhY3ktdHJ1bmsKKzEzMDM0IGQ4MzRlY2RmOGMyNmUwZGY5MjMxODdmMjBiYTQ3YWNhNmVmMmUyMjAgbGVnYWN5LXRydW5rCisxMzAzNSA5ZWM5YWJmZWM3OTRlYzE0MWQ3Y2Q2OWMwZTVkMDZkMjEzNWU1NTRhIGxlZ2FjeS10cnVuaworMTMwMzYgYzA0ZjAzZTgyYTc1NDM4MjA4MDc3MzNhNmZmN2VkZmQ1MGQyMDM3ZCBsZWdhY3ktdHJ1bmsKKzEzMDM3IDMyYmEwOWM4NjkxN2JiNzBmNWE0ODY4YjY0YmQ2NWViYTVlZGUzNjQgbGVnYWN5LXRydW5rCisxMzAzOCBhNGEyNjhiNzI1YjJhNDYyMzZmODBlN2ZjYzFiM2ZiNjYxYjljZTZiIGxlZ2FjeS10cnVuaworMTMwMzkgYjYyNzI0YjA5MzAyZTc0OWNjNTkzZjM4NTE4ZTI4ODBjZmY2ZjlhYSBsZWdhY3ktdHJ1bmsKKzEzMDQwIDkzNDcxOWMyNWFmODJlZGVmMTU4ZWI3ZTJmY2JkMWY3ZGZkN2UyYjkgbGVnYWN5LXRydW5rCisxMzA0MSAzZmU5NWMyYjM3MTM0ZWE2OTZlMGZlMmU2MjI3ODM0YTA3MDY3ZDExIGxlZ2FjeS10cnVuaworMTMwNDIgY2NlZTNjMjhiN2VmZjFiZjVlMWQxMDcxY2VkNzRmNzRiOTBiMmE5OCBsZWdhY3ktdHJ1bmsKKzEzMDQzIDVmNDU0YjcwNjE1NmVhMzFjODhjOWZhZTcwZmM2ZTAxOGM1ZTU0ZWMgbGVnYWN5LXRydW5rCisxMzA0NCAwYmViN2QzNmMxYTk3Njk0NzI2MTEyMDhmMzY0NGE4NzA3MTIzZGZlIGxlZ2FjeS10cnVuaworMTMwNDUgZjI4ZTZhM2I5MTM0ZTE4M2VmMWYxOGNmM2MwZTRmMGVhMDFiNGJlZiBsZWdhY3ktdHJ1bmsKKzEzMDQ2IGVkYzdiMjhkOTA1MjExMzZiNTNkZDQ3NDM3OWE1MzI4OWY1NjcxYWEgbGVnYWN5LXRydW5rCisxMzA0NyA1ZTllYTNlYWI3N2M4MTAyNTMwNzcxNWQ1MTUzMmViZWZlZjNhMmRkIGxlZ2FjeS10cnVuaworMTMwNDggMzQwMGFhMWIwMDczZmM3OGMzNjI4NmQ2ZTIzZTQ1NzAzZTcyOTJiYyBsZWdhY3ktdHJ1bmsKKzEzMDQ5IGMwYTY5ZWNmOTY0NmY2MWE2MGVkMWY2OGIzZjM1MmMzYTA1MDQ1OGQgbGVnYWN5LXRydW5rCisxMzA1MCBlNjhkNTM3ZWI1MGZlYWI3NzA1ZmEyMWE0NDc1ZThjNmJjZjJkYTVlIGxlZ2FjeS10cnVuaworMTMwNTEgNTk4MGJiMDAxZjg2NGVjMDA2NmU0ZjNmZjA4N2Y1OWQwMGIwZDQwMSBsZWdhY3ktdHJ1bmsKKzEzMDUyIDhjMWNmZTk2NWQ5YjJkYzMxZjEwNTNmNDA4YWQ4MzEyZjRiY2M4MzIgbGVnYWN5LXRydW5rCisxMzA1MyBhZTYxYjcwZWZkYjNhOTQ4YmZhODFjOTU5N2QwMmYxMjYxYmVkY2M2IGxlZ2FjeS10cnVuaworMTMwNTQgYzY5YmZlMGVjYmQ4NzA2YTM1Yzc3ZGRlYWFiN2M5MzZiNGEzNWY2ZiBsZWdhY3ktdHJ1bmsKKzEzMDU1IGFmZjA3ZTA0OWFlZWZhMmJlNDMyMDhhZDBkMjZkNzNjNDhiMzNhZDAgbGVnYWN5LXRydW5rCisxMzA1NSAzOWZiMGRjYzgzZGMzNzVjMTU2NWJhNjVkYmNlMGVkNTliMTM1OWM5IGxlZ2FjeS10cnVuaworMTMwNTcgYTgzN2E2YWVkODNlNmRlMmYzNDc3MGViNDRiMjVkMGZmOGYyZDBlMyBsZWdhY3ktdHJ1bmsKKzEzMDU4IDA1Y2ZhMjhlNjVmNjI0NTM3MjIyNDljYjg0ZDk4YjRiYTQ3NDhhZmYgbGVnYWN5LXRydW5rCisxMzA1OSAyNDNjYzZkOWM1YjhmYmUwZWRhMTdmMTU2NzljM2E3MjRkZjE1Y2FjIGxlZ2FjeS10cnVuaworMTMwNjAgZTNlNWQ3NjM2OTU4Njc5YzQxMzZhOTdlODg5NjU3MTAyZmM1ZTk4ZCBsZWdhY3ktdHJ1bmsKKzEzMDYxIDI4NmIyY2U2NTI0ODg2NDkzZDUwM2VlZWQ1MTMyZGZlMmQ4ZTc5ODcgbGVnYWN5LXRydW5rCisxMzA2MiA4ZDJhOGE0OWQ5ODM5MjEyMThiYTRhMDQxNTRhODMyYTVjMTA1N2Q2IGxlZ2FjeS10cnVuaworMTMwNjMgYWZhYTNhYTgzNWY5ODMzNzlhNzc4OTM1OTFiOWIzY2FiMWY0MmMxNCBsZWdhY3ktdHJ1bmsKKzEzMDY0IDk3MGQ2MWJiNmFjZjkzODNiMzU2YmU0ZjFmNWYwYWMzNDljYWViNjAgbGVnYWN5LXRydW5rCisxMzA2NSAzYmUwNTI1YmY0N2YxYWM0MzY4ZTk2NDJkZDg1YmI3NWI3NWZmZDI1IGxlZ2FjeS10cnVuaworMTMwNjYgYTQyODI0Y2YwYjE4MWUyODZiMjUzZDVjMDc3MmNlNWJlZmQzOTFlMCBsZWdhY3ktdHJ1bmsKKzEzMDY3IGY2ZmM2N2Q3MDVkZWFkMmJkNDFlMDg3NTMzNjI1ZDI3NTYwMGM3ZTggbGVnYWN5LXRydW5rCisxMzA2OCAwNGFmYzFhYzFhMGZkOWZjOGIzZTk4ZDliYjlhNGQxNGU5NzE3MmQwIGxlZ2FjeS10cnVuaworMTMwNjkgMTA0YTQ0MWIyYmM4Y2Q5MWQ1MjkwMDI3Mjg3ZTk0OWFmODA0MDEwMiBsZWdhY3ktdHJ1bmsKKzEzMDcwIDdiZjNmNDEyZTEzNzg2MWJmYzY5MTkyN2IyYTg3ZDJkYWNlNWY5NDIgbGVnYWN5LXRydW5rCisxMzA3MSBkYTE1ZWQzMTRlMjQyODE0NzYzZmE0OWEzMjk0ZGI2Mzc4ZjA4OGQyIGxlZ2FjeS10cnVuaworMTMwNzIgYmZmMzM4MmM2ZDJmNTFlZjg4YjE2NzViOTk5YTNiYTNhNWQzOTM1ZCBsZWdhY3ktdHJ1bmsKKzEzMDczIGY1ODA0NjMzOWNiZjM1ZDliNWYwODhjMjZkYmY2OTY4N2JjMGFlMmUgbGVnYWN5LXRydW5rCisxMzA3NCA0ZTBjYzZlMDJhMGRlOWNjNTY2ZjFmMWQ2MmJjZTUyZTc3NThhNTA2IGxlZ2FjeS10cnVuaworMTMwNzUgNGFmZjM5MTc1MTM3MWRhNWY5NTQ4NTRhOWU3ZDIyZWIzZThlMWJiZiBsZWdhY3ktdHJ1bmsKKzEzMDc2IDEwYmQyZmIyYTBkNjdkOWQzZmVkY2JkMTBjYTM4ZDAwN2I5NGMyMjkgbGVnYWN5LXRydW5rCisxMzA3NyBhZjFlODE5YzA0NDU2OWJmYWFkZDFiMjEwZWFkMzgyNDhiYWNkOGJlIGxlZ2FjeS10cnVuaworMTMwNzggZjk2YjI3Mjk4MWJjYTY0YWQyY2NkYjcwZDUxZjU5OWI5MjE2NDhmMCBsZWdhY3ktdHJ1bmsKKzEzMDc5IDU2MTcyZTBlZmI3NTJlYzY1Mzc0OGYyNmIxMTRkZDA1M2UyOTlkMzAgbGVnYWN5LXRydW5rCisxMzA4MCA2ZTdmMTRhZjg5YjcxZmUyNGFkNTgxZGRiMmE2YTI5YjllZmRkODU2IGxlZ2FjeS10cnVuaworMTMwODEgODg1YmU2MDEwNGQ0MjM1NTA4MzAwYmI0Y2I4MzBjNGYyYzNhM2U0NyBsZWdhY3ktdHJ1bmsKKzEzMDgyIDYzNDJjZTRmZjk0NjU0ZjAzOTg0ZmJkYWZhNWE5ZjY2NGEyMGEzMmMgbGVnYWN5LXRydW5rCisxMzA4MyAxZWQxZWI1YmM2ZWMwYWU4MDQyYzM0ZjY1NWRjNGM2ZDE0ZmU4MWM3IGxlZ2FjeS10cnVuaworMTMwODQgNDM5ZmM4NTMyNGNkZDIyMzc0MDZlOTk1ODY0MTRmMzNjZDZlMWRjYiBsZWdhY3ktdHJ1bmsKKzEzMDg1IGJiYjVhZjc4YTI1OTI4OTA4YjhmZjcwZjdkZmJiMGNmNmQxMmI2NjIgbGVnYWN5LXRydW5rCisxMzA4NiBmN2I4Zjg4NmI1MWE3OGM0MGFlMzJiOTA2MzJiMGFlYWE3ZjZiYzRhIGxlZ2FjeS10cnVuaworMTMwODggNDRkYTAzNjUxYmQwMmFkNjRiMmZmMWQwMmM4NjU1ODA5Nzc1ZThkOCBsZWdhY3ktdHJ1bmsKKzEzMDg5IGU0MTExMGZmOGMyZmEwN2IxMzZmNDBlYzVkYmE0MTcxNDg3ZjFlZWMgbGVnYWN5LXRydW5rCisxMzA5MCA3MDBkYWE3NTg0N2E1ZDRiNDI4NjAwYTAzMzQ1OWE4OTEyMzYwZGM0IGxlZ2FjeS10cnVuaworMTMwOTEgOGRhNDZkNmI4YWYzYjI0MTg2NTJhNGI4MjRjYjMyNTQ1MmE1ZGY2ZiBsZWdhY3ktdHJ1bmsKKzEzMDkyIDA0MGI1Mjg2OGZlOGNlMjI2ODE1OTQ2YWZjMGE5NDEyNzdkMGVlZDAgbGVnYWN5LXRydW5rCisxMzA5MyAyNTFiYWEwMzJhZjBjM2NiMmE5MDA1ZDMzYTJjOTQyYmYzM2M0MTQ5IGxlZ2FjeS10cnVuaworMTMwOTQgY2U4NjFiNDNlZjUzNTZmMDk0YWZiNzNhM2YxYzc4YmQ2NzRmYmM2NSBsZWdhY3ktdHJ1bmsKKzEzMDk1IDA5NjVhYTJkZjVjYWQ4YzhjODBmMjQ5OTAwY2FiNGQxMjk2YmRjYWUgbGVnYWN5LXRydW5rCisxMzA5NiA4M2QzOGM0YWQxZGVmYjA4ZTE1ZjYxY2VmZmIwZDljN2UzZDM0N2EzIGxlZ2FjeS10cnVuaworMTMwOTYgNjFjOTFjN2YxMDFiYWIzMTQ5YWRmY2Q1NjQ2YWU0MGUwNDhkZTcxMiBsZWdhY3ktdHJ1bmsKKzEzMDk4IGMzMWI4ODBhZTg0ZjlkMjJiMDM1NDZlYjllYjQ5MWU4ZTcwNzQ1ZjYgbGVnYWN5LXRydW5rCisxMzA5OSAyOWFiYjdkOTZjMjU5NTE4YzEyZGI3OTNlNWVlMTQxZTMwNWM0NzBjIGxlZ2FjeS10cnVuaworMTMxMDAgNGUyNjk0MTRlZWU1MzBhNjdkMTQzODY1ODViODY4OTM5ZGQ2ZWMyOSBsZWdhY3ktdHJ1bmsKKzEzMTAxIDYzYzdhOGFjNGU0Y2Y5Y2QzMDhmY2UyYmE0MTVhZjI1NmFlMTU5ZDcgbGVnYWN5LXRydW5rCisxMzEwMiA1NjZiZDg3ZTAwMzJlNjkyYmRmN2Y4ODNmZGUyNTZmNmRiYjAwM2U5IGxlZ2FjeS10cnVuaworMTMxMDMgYzg3NTliYTgzNTUyYTU2YjlmNjFjMzAwMWU2ODg5ZjcxOTM4ZTViYSBsZWdhY3ktdHJ1bmsKKzEzMTA0IDg3NmQ3ZTc5MjI1MmM1ZTA1MjIyZDM0NGVmYWZjZmNkNDRhYjI5MDkgbGVnYWN5LXRydW5rCisxMzEwNSBkY2RiYjEwMDA2MGYyYTlmOGIwZmFmZTliYTZiYjU5MDkwNGY4YWY1IGxlZ2FjeS10cnVuaworMTMxMDYgOTBiZGY4ZmE3OGE5YjhlYjdhODBlYmQyOGUwMzAwNmI4ZTc2Y2ZkNCBsZWdhY3ktdHJ1bmsKKzEzMTA3IDJhYjk2N2Y4NDg5NWIwZGQ4MmZjZjI2MmEzMmJjNjg5OWVkMGRkNjcgbGVnYWN5LXRydW5rCisxMzEwOCAyOGM0NDM3MmRlMzg0MWUyYTFjMTNmMzcyNjEwZDE0ZmM1OWRjNGEyIGxlZ2FjeS10cnVuaworMTMxMDkgM2RlMDQ0ZTY1MGExYjYzYmVmMzMzNTY4NDNhZjUxNDU3N2IxZGYxZiBsZWdhY3ktdHJ1bmsKKzEzMTEwIDAyNzAxYjk5ZjliYWJiOTY4YWRjNThmZTNmZDg3MTczODhiMWZlMTIgbGVnYWN5LXRydW5rCisxMzExMSBmZTVmY2I3ZTczZjc5YmQ1NTEwMjMxMDc3M2ZmZTNlZTY4N2U2NzM4IGxlZ2FjeS10cnVuaworMTMxMTIgZmNhYWM0MWY2ZjNhMDMzZmI0YmJlOWU2ODY4NGUxYjRjMTNkNTJjZiBsZWdhY3ktdHJ1bmsKKzEzMTEzIGI0ODg5ZjEwNmMzYjE4MDZkY2Y3N2QzZTc4MzZhM2JhMjlmZDRiM2EgbGVnYWN5LXRydW5rCisxMzExNCAyNDE5YTZjOWY2MjgxMDYzZjhmYmQ3YWY4ZDEyMDFiYWZiMWFmMmJlIGxlZ2FjeS10cnVuaworMTMxMTUgM2YxZTcyYzcxYjNhNWNiZDZmNjFlZDNlNmI3YTA4MWZiNzZlOTZjMiBsZWdhY3ktdHJ1bmsKKzEzMTE2IDZmOGNkYzdlMjI1YzkxNzdmNjk0NTNiOGYwNDgwNmU2M2FlOTE2MGMgbGVnYWN5LXRydW5rCisxMzExNyBmNDI1ZTYwYWM3MWE0NmQ4MmMyOTgxMGM3YzI3M2RkYzliYmQzNzJmIGxlZ2FjeS10cnVuaworMTMxMTggZjYxNGY1Y2YyZGVjOWUzZGM4NGY3ZWQ3NjFmYTY0MmJhMzE0MjBjOCBsZWdhY3ktdHJ1bmsKKzEzMTE5IGEwNzdlNWRhNWZhNTczMGEwYTg2YTUzZDI5NThhOGY3ZWRhY2RmZTMgbGVnYWN5LXRydW5rCisxMzEyMCA1NjhlOTQ3MjdhMGNjOGQ5ZmJiZThjZjNhYzc3ODczYzk3MDVhMDI4IGxlZ2FjeS10cnVuaworMTMxMjEgYTZiOWQ0NTAwMzE3NTI4OTA4MGMzMGM0MTRiZDc3MjU1ZjkxOTJlYiBsZWdhY3ktdHJ1bmsKKzEzMTIyIDAxMmQzNjFmZGYyM2E4YTM0N2MzMDE4ZjI4ZjNiNTM3YWRkNTU4MGUgbGVnYWN5LXRydW5rCisxMzEyMyBmN2U5YmM4ZGExM2QyMTYzM2VhYTQyZjIxNGE3OGNjZGNjZTNlMTg0IGxlZ2FjeS10cnVuaworMTMxMjQgZmE0Njg1ZmQ1YWRmZjEzNDQ4YmNlNGRhYTVkMTUzOWZmOTZiZjNiNyBsZWdhY3ktdHJ1bmsKKzEzMTI1IDg5MWQwODlhYmE0MTJiYTYwOTVkYWU5YTBlYzhlNTA2ZGFlYTFmYzkgbGVnYWN5LXRydW5rCisxMzEyNiA1YjE3MGYwZGE5ZmViZDk5MjJjM2Q0NWVlZTM5YmMwYmU5NTcxYWM1IGxlZ2FjeS10cnVuaworMTMxMjcgZGRjZWRkZWY1OGExYzcxYTdjZWNhMThlZTRmNTFmMjk1ZThiYjhkZCBsZWdhY3ktdHJ1bmsKKzEzMTI4IDg0ZDRmMTcyNjY5YTZmZDM3ZDMxZWNiZmUyZTY2MGMzZjA5MDY4OTkgbGVnYWN5LXRydW5rCisxMzEyOSAzNGZkMjUyNDI3MzE5ZjIzMTEzZWEzM2ZhODYxYzYxMjYyM2UyNDgzIGxlZ2FjeS10cnVuaworMTMxMzAgYWQ1NWJkYmE1ZGZmZWQ4Y2EyMGI0NjIwODFhNDg4ZDFjNzFkNzQzZSBsZWdhY3ktdHJ1bmsKKzEzMTMxIDM3ZGQ4YjhiMWQ4NDAzOWEyOGViNGJjN2EzZWViMWYzZjAyNmFiYmUgbGVnYWN5LXRydW5rCisxMzEzMiA3NWYxMjg3MWVlZWE3YjVjOTJkMWE1MzRjYjRjNzU3YWE5ZTA5NmRjIGxlZ2FjeS10cnVuaworMTMxMzMgMThjNzRkNmJjYWU4ODA3NDE0NDE1ZmFhOWUyMzgxMzY5Yjg3NjczZSBsZWdhY3ktdHJ1bmsKKzEzMTM0IDFiZGVhMTdiYzQ3MWYyNWY3YTk3NzE0Nzk5Y2FkMGM1ZDg5ZWNhMjMgbGVnYWN5LXRydW5rCisxMzEzNSBkNzE5N2IzMmZiZmVhMWVjYzE5ZDY4YjRmMzQxMGExMGZjZmFkYTRjIGxlZ2FjeS10cnVuaworMTMxMzYgNjQ3MjcyOGRmMmQwY2YyZDY0MjM2MDYyODcxZjUyZTNmMTg0ZTg1NyBsZWdhY3ktdHJ1bmsKKzEzMTM3IDQ2YTcwOGIwY2EzOGYwMTA2OWMyODUzMjg0ZmEyZGFmYzkzMjQ0ZjggbGVnYWN5LXRydW5rCisxMzEzOCBhYTRlY2I3MTZlNmUxYzhhNmM2OWYyNGFmMDQ5Y2RlZjJhMGUyYzJmIGxlZ2FjeS10cnVuaworMTMxMzkgZTI2NDM5MmUxNTM2MWY5NTY5NzJiYzQzYjAzZTVkMjRjMzE0MGZjYyBsZWdhY3ktdHJ1bmsKKzEzMTQwIDNjMjU5MzcwYWM1N2FiMWVhNTQwZGFjNWZmNDRkMjA4NjVjMWRiMjMgbGVnYWN5LXRydW5rCisxMzE0MSA5ZmQyOTAyMWQxNDdlYWM5ZDI2Y2NmMmQ3ODNkMmQzMzgyOTE1YzE0IGxlZ2FjeS10cnVuaworMTMxNDIgYmVkMTVhMDE1YzFjMzk0ZWM5Yjg2ZjQxMTk3YmE2MTExNzg3MjkzMSBsZWdhY3ktdHJ1bmsKKzEzMTQzIGRmOGExYzI4MWFkN2Q3NGQ0ODk4Y2NhZWM2MGYyZTM0ZDdmMjY2NzMgbGVnYWN5LXRydW5rCisxMzE0NCAzNjA0OTRjMjVlMGU1YTlkODAyZGY4NTNjZjQxMDdiZGY5YWUxNjdiIGxlZ2FjeS10cnVuaworMTMxNDUgZWFjYTM3NzViNDI1ZDdiZDM4NDZmZjY0YjRlM2UyYzkyOWQzMWMyZSBsZWdhY3ktdHJ1bmsKKzEzMTQ2IGY2ZWM0YTljYjBiMzkzZmQyMzdiYTY3NGRlZTkwNWNjMmY1ZmM4YjEgbGVnYWN5LXRydW5rCisxMzE0NyA2MzcyYzJhNGQ0N2JkODE0ZGIyYmVhMjE1M2NmZGJkOWQwZTE0YjRhIGxlZ2FjeS10cnVuaworMTMxNDggZTNhMDg5ODNjZDI1MWY4ZWZlNzIzMWY1MGIxMzFiNTU0YWZmZTYxNyBsZWdhY3ktdHJ1bmsKKzEzMTQ5IGNmNjJhZmYxMDQ2ODdhNGIzYzQxNDM5ZGEzYzhmMzU1ZDVmYzExZGUgbGVnYWN5LXRydW5rCisxMzE1MCA0Njc4OGYxNjY1MGIwN2I4MDQyOTEwYTY0NDVmZDMzZjcwZTFhMzZkIGxlZ2FjeS10cnVuaworMTMxNTEgZTA5ZjE5NDQxMTM2Y2EzOWQ2NzYwNTZmNjk2YTAzMWVkMzc0MjY4OSBsZWdhY3ktdHJ1bmsKKzEzMTUyIGM3NDcwYjE0ZGVjN2MzZGYwODFjMTYxMzRmNDNmZTNiMGIxMWQzNDkgbGVnYWN5LXRydW5rCisxMzE1MyA0OGMzM2QwNTM2N2YyYTVlODI1MTA1ZDYwNDYyZTQyMmZmODI4NDhiIGxlZ2FjeS10cnVuaworMTMxNTQgNDM2OTRkMzUzNDQyMTliYzk1MmJlMTgyMmFkYjNlN2ZlYWVjNWMzZSBsZWdhY3ktdHJ1bmsKKzEzMTU1IGM5OWU2ODdkMWFjNGFjNjUxYTM0M2E1YTRmMjA4MzBkYTFjNzYzYzMgbGVnYWN5LXRydW5rCisxMzE1NiA4YjM4Y2U0MjI4M2VjYmNmZDVlM2NmNjFjYTUzMDE1YzU1MzI5MjFlIGxlZ2FjeS10cnVuaworMTMxNTcgNmMyNjUxMTNlN2U4YzZmYTcxYTcxMGUyOWQ0MzhiZjVkNmMwY2M1MSBsZWdhY3ktdHJ1bmsKKzEzMTU4IDQyZGJmZDQ5ODM4NzY3MzJkZDZhMzIzZWIwYjY1NzhlZTA4YmE4ZDIgbGVnYWN5LXRydW5rCisxMzE1OSA5ODgzZTMwYWNhYzU5Mjg4NjMwYzQ4NzY2YzNiODgyZGQyZDJkYmY5IGxlZ2FjeS10cnVuaworMTMxNjAgMjk5YmY1M2U2ODYxNmVmYmZhODRlOTFjYzMzOWYwMjVhY2NlYTEwZiBsZWdhY3ktdHJ1bmsKKzEzMTYxIDhlNzJmYzU3ZjU1ZmQ0MzFmNGIzZjA5Mzg3OTZiNjJlNmYwZmIwNDMgbGVnYWN5LXRydW5rCisxMzE2MiBkMjAzY2I5ZWNlMzcyNzdkZjE1YTE2MDM1NDYyNGI3ZTQ2YTQxMmJlIGxlZ2FjeS10cnVuaworMTMxNjMgOTk2ODFlZTg2Njk4MmQwNjRkOGQ5MjZjMzdlN2ZiZDk2MDEwMTk4NSBsZWdhY3ktdHJ1bmsKKzEzMTY0IDY5ZmI4MWZhY2IwMzc4NGM1MDUwMWExNjEzZDkzYTFlZmNlODFiMTEgbGVnYWN5LXRydW5rCisxMzE2NSA5NWFjMWM4YzA4NWU1NGNlMmM3OWY2NTczYzI5ZDg5ZTk0ZTViZGNkIGxlZ2FjeS10cnVuaworMTMxNjYgYTcxYzYzNmI4NWQxNGEzNzMwZmIyYjE2MGRkYmY4NmM0NGJmMWUyYiBsZWdhY3ktdHJ1bmsKKzEzMTY3IGFiMDIzMzQ0NTNmOTZkNDcwMmVmZWQ0YWI0MzJiNDZkZDc0MjkyZGIgbGVnYWN5LXRydW5rCisxMzE2OCAzN2EyMjM2ZDQ3MmYyZjRmMTU5NzdmYTY2MzY0MTMwYjkzMDAzZmEzIGxlZ2FjeS10cnVuaworMTMxNjkgOTMzNzMyMDI2ZTljZDQ5ZDg3YzBkODQ4ZjBkZWFiM2ZkMDYxOGUxMiBsZWdhY3ktdHJ1bmsKKzEzMTcwIDdkMDViYjNlMTM1ZjYyNzc2NzFlMjc2YjMxNmE5OWQxNjgxM2RhMWMgbGVnYWN5LXRydW5rCisxMzE3MSBiZWJlOTgzMGIzM2NkYTE5NmI2NTM2MWJmYTJhNWM2OGNmZTVlM2I1IGxlZ2FjeS10cnVuaworMTMxNzIgMDJlYjc0NzQ5MjYyZTU1YjVmMzJjMTI4MGFhYjdkZDg0MWNiYmU0MiBsZWdhY3ktdHJ1bmsKKzEzMTczIDhjNmZmZTY3MDk2M2IwMWVjOTRlMmU0MmQ0YjFjM2FhNWFiMDkwOGQgbGVnYWN5LXRydW5rCisxMzE3NCBlMDVmNmJkYzhiNTIwNDVjMzVhZTk5ZDAzZGE0NzBmZWIyMGVmNjgxIGxlZ2FjeS10cnVuaworMTMxNzUgOGMwYTYwZmI2YWNmNjljZDU2NTlhMDI4OWQzMzdjNTAxYzNkMTkzYyBsZWdhY3ktdHJ1bmsKKzEzMTc2IDc5ODY1NTU1NjQ1NjU1MGRiZWQyNGU0ZWQ4MThhY2NkMWU5OTY2ZjMgbGVnYWN5LXRydW5rCisxMzE3NyBmNjA2MmU1OTIzOGYzZTM1ZWEwMGQ1YzJhN2NjOTNjZDBlYzk3ODRhIGxlZ2FjeS10cnVuaworMTMxNzggZTJhMWM4ZDIzM2RmNzE5MjA3MjcyNDk4YzliMDMyNGI0YWVlOGNmYSBsZWdhY3ktdHJ1bmsKKzEzMTc5IGIyNjA2YThmY2FhYmE5NjdkYjMzNDNjNzI3OGVlNTcyOGQwMzc4YTkgbGVnYWN5LXRydW5rCisxMzE4MCBlZTg2MWQ3YmMwZTkzMGNmYzc4YTMzZmI2OTYyMWU4NTk3MTdiYTJkIGxlZ2FjeS10cnVuaworMTMxODEgNThkZGVlMTI1NmU5NTQwNWU3NzMzMmY2OGYyYzhlNDEzZDY0YzM4YiBsZWdhY3ktdHJ1bmsKKzEzMTgyIDllNGM1NzNlYTQ5YmE2YjMyY2E2MTFkNmJiZjcyMDdlMGMyNGRkMzYgbGVnYWN5LXRydW5rCisxMzE4MyAxOWI0ODcwMGFjZGJiZjc0ZGEzMGVkN2JmMWM5YzczNmJhMGYwN2NlIGxlZ2FjeS10cnVuaworMTMxODQgNGNiODQ5NGFiYTYyMGVmMjdlZWFhNjE0ZDUyOWQzMmFlZTk1NTUwOSBsZWdhY3ktdHJ1bmsKKzEzMTg1IGFlMThlOGVlYmUwNGRhOGQ0ZjRhZDkwMzAwMWM1ZTFmMDIyZTUwMjQgbGVnYWN5LXRydW5rCisxMzE4NiA2MzNkMmY3YTFlNDg4MDVjMGE4YTQ4YTFlY2E2ZTUzMTE4MDg1MWZlIGxlZ2FjeS10cnVuaworMTMxODcgNzEzNzQwMDAzN2UwMTU5MDE1NGNhNmQ2NTA2ZjdlZmFhNWQxODc5NSBsZWdhY3ktdHJ1bmsKKzEzMTg4IDNiYjAyOWM2ZGQzNzgyMmEwOWRjM2VlOTgyZGJiNzFkOTdiNTdiMjQgbGVnYWN5LXRydW5rCisxMzE4OSBmNjcxMTk1YWYwMjBlZDhkYjQ4M2I5ZmNlOTNkYmFiNzdkZDlkMDdhIGxlZ2FjeS10cnVuaworMTMxOTAgODVjZjQ3NjY1N2M1ZGU2MTk4NGU1ZDVmZjBiZDQ3NjVlMWE3ODA4NCBsZWdhY3ktdHJ1bmsKKzEzMTkxIGFlMDMwNmFhYTY4OGUxMWJlNWQ4ZDIyZDM0N2RiMGEwNDBiNWEyZTEgbGVnYWN5LXRydW5rCisxMzE5MiAzYjg3NjJiOGMxNDBkMDE2Y2U0NTI1ODg3ZWJkMWEyMmMxNGVlMTc4IGxlZ2FjeS10cnVuaworMTMxOTMgOTIxZmYzODVmMjU2YTE4YWMyNzE4MDJjMGZkYzdkZWMwZWYxZmU0MyBsZWdhY3ktdHJ1bmsKKzEzMTk0IDliN2Q4ZWM5YjkxMGMzMjI0YjljNDg4NzljNjI5NmMyNTJlNWQwYWEgbGVnYWN5LXRydW5rCisxMzE5NSBhOWQ2MTNhYjVhNzY1ZTMzNTE5ZTA1MTQ4NmRkNDdhYTM2OTZkY2ExIGxlZ2FjeS10cnVuaworMTMxOTYgYWIxMmM2MzFkNzM1ZDQ4ZmY3YzBjNjJlMGFkZDZmZWEwY2MzZDUyYSBsZWdhY3ktdHJ1bmsKKzEzMTk3IGQzMGNjYjAwYmQ3YjgwYjU4Mzc0YjAxYjJmN2IyYjljZGYxYjEyNzcgbGVnYWN5LXRydW5rCisxMzE5OCA5ZTA0MDJlZTM4MTIwNjg5NzcxOTZhYzYyOTc2YjdmODMzNTQyMzIyIGxlZ2FjeS10cnVuaworMTMxOTkgMjVjYzdmMGQ0NWYzOGRhZGM4OWMyZWNhZmExNDE5Nzk2YzJjYWQ3OCBsZWdhY3ktdHJ1bmsKKzEzMjAwIDBiOGJhOTM1MWEwNjM1MTY4NGIzNWQwMzUzZDhhZGNhNTNiZjNkOTkgbGVnYWN5LXRydW5rCisxMzIwMSBlNzAzOTc5ZmY1ZTc0NjkyOGI4NjRhNTQwNjczYmRhMTUyYzU2YzFjIGxlZ2FjeS10cnVuaworMTMyMDIgNjdhNGFjZWQwZDg4ZTUzYTgzYzBiOWQ3MDc3YTNjMzhiODJhNzY1YiBsZWdhY3ktdHJ1bmsKKzEzMjAzIDQ4MjI2MTdiMzlmMTRhNzM3NzljNTkxNTliNmVkYjI4YWRiOWQyOWQgbGVnYWN5LXRydW5rCisxMzIwNCBhYmExY2QwZDEzZWFmYmQ0NTY5ZjZlMDBiMmZkMjIxOWQ1MmFjNDc1IGxlZ2FjeS10cnVuaworMTMyMDUgODFmNTExMDVmNDI4OGQyM2JlY2U1NzNiMjY5MDUwZmQ4ODgwZjViMCBsZWdhY3ktdHJ1bmsKKzEzMjA2IDM0NmU5YTBmMGY4YzdjZTZhNjkwZWJlZTQ2OTZmYTUzYWFmZGQ1YjcgbGVnYWN5LXRydW5rCisxMzIwNyBjOTAzZWNlY2JhNjY5YmIzMGYwZjcxNjA1YThiOThmMGIyOGQ4Y2FiIGxlZ2FjeS10cnVuaworMTMyMDggZTRlODAwYTc4ZDhkZDI3OTk0OWE1YzNhYWMyNDZhMWU1NWFlMzliMiBsZWdhY3ktdHJ1bmsKKzEzMjA5IDU4YjE5MWJhZGI5YThiNWUwM2I1MGRiY2M2YzgyZWY3Mzk1YTZkMzIgbGVnYWN5LXRydW5rCisxMzIxMCA0Nzg4ZmQwNzBhMzBiM2UxZDE0ZjQ1ZThhMzgyMDk5ODg0MTY3YzUzIGxlZ2FjeS10cnVuaworMTMyMTEgODUxMWVmZWM3MzA5YzdlMzU0NmNmZmI5MzVlMmEwZmIxNmY5ZDUxOSBsZWdhY3ktdHJ1bmsKKzEzMjEyIGNhZDdiNTVhMzYzZmY1NDYzYzgwNWU3N2RkOGNkMGYwNjQzYTgyYTQgbGVnYWN5LXRydW5rCisxMzIxMyBiMmFhZTcxOTg3MjM4Njc5NWYzYjEyM2VmZTYzNGNhNGY2NjRjY2Q1IGxlZ2FjeS10cnVuaworMTMyMTQgMTRmNmUwZGM5NjIyOWZjZTFkMmQwOWJhZTk3MDhlZmIzZTMxZjY0NCBsZWdhY3ktdHJ1bmsKKzEzMjE1IGQ4YjJmODJmMzNlZDJkZGU0MTUwODNhYThiYTExM2VjM2Y0MGE0YWIgbGVnYWN5LXRydW5rCisxMzIxNiBjZDAxYmExMGE5NjJjMDlmYzQ1MmM4YWIwZDcyYWRmOTM0MWMxZGIwIGxlZ2FjeS10cnVuaworMTMyMTcgNDkwZWMwYzQwY2M2MDBjYzdmMGIwNTUwMTEzMzU5NTBlZWQ2YjU1MCBsZWdhY3ktdHJ1bmsKKzEzMjE4IGNmZDA5MzJhNTNlNDkxZjgzYWYyNDc5MjM2NDEwZjUyODg4MzlhOGQgbGVnYWN5LXRydW5rCisxMzIxOSA3NjY4YmNkZTljMGFkNjQwODcyMTI4Y2I3MGM1ZWI4ODVhMzY2YTI3IGxlZ2FjeS10cnVuaworMTMyMjAgNjcxMjFhMmM2MmJmOTMxNGNkMWQ5YTRkZDk0YmNjOGRkOTk5NmQwZSBsZWdhY3ktdHJ1bmsKKzEzMjIxIGJhZjY2ZDZlMWJjMTZkMjFmZjAxMjcyMmY5ZTNlZWQ1N2MwYjg0OTIgbGVnYWN5LXRydW5rCisxMzIyMiA4MGQ0ODg1ZWRkNjY0MDhhZTJhYmY5YzhmYzMzYzFjYjkwYTc2ODlmIGxlZ2FjeS10cnVuaworMTMyMjMgZmUxZTk4MTkwYWY2ZWU4M2EzZDQ1MjQ1NGRjYmNmYzUyOTIxYTM2NyBsZWdhY3ktdHJ1bmsKKzEzMjI0IGYwOTUwNzdkMjBiMDJlMmY1N2M4NmQ1MGRjNjRkZjUxZDhkZmI4OWUgbGVnYWN5LXRydW5rCisxMzIyNSBlOTk1YmNjNGNjODIyNGM4ZTg3OTEzYzhkNzZjMDA5NGUxN2QwOGYwIGxlZ2FjeS10cnVuaworMTMyMjYgOWY2OTVhNTQ5ODY1NDhjOTc0ZDkyNTc3Yzg5ZDdjNjk1OGQ2YTg3ZCBsZWdhY3ktdHJ1bmsKKzEzMjI3IGYzMzVmYTFkNmU3MTVlYThjMzNmOWFjM2ZiNDU3ZTY0OTBkM2EyYWEgbGVnYWN5LXRydW5rCisxMzIyOCA0ODAzN2Y0ODE0YjExMGMwYzE0NTgxODk4OWNhYTA3MTJhNjRiM2JmIGxlZ2FjeS10cnVuaworMTMyMjkgZjNjN2ZmN2E2ZTgxYWI1NjQyNThiMjFlYzAwNWY3YTYwNjUyZDc4OCBsZWdhY3ktdHJ1bmsKKzEzMjMwIGI2ZDFhMzJhZWQ3NjM4YmViNzgzM2U2ZmE0MDE4YjkzNDU4ZTIwOTIgbGVnYWN5LXRydW5rCisxMzIzMSA4ZGU3ZDkwYjBiMzRmZTRlZGQzNmI5NmYzZTg4NDE4ODVjMTUyZDNiIGxlZ2FjeS10cnVuaworMTMyMzIgOWU1ZGY0YzQ5YTU2NzU0ZGZjYTljYzQxN2Y4OGI0YWU0YWY1YWQ2YyBsZWdhY3ktdHJ1bmsKKzEzMjMzIGVlYTFhYjAyOGY0MzFlY2M2ZGVmODgyOGQzMTA5MDcwNTdhN2I1YzggbGVnYWN5LXRydW5rCisxMzIzNCBmMzg3NjkzMDg0Mzg2MmUxYzg3ZDljYmJhYTY2MmI5OTJlMzkzMDRmIGxlZ2FjeS10cnVuaworMTMyMzUgYzVmNDQ5YWE0MzQ1OTIxNDE1OWQ1NTRjMTFhMDMxMWZhNTE0MTk1MiBsZWdhY3ktdHJ1bmsKKzEzMjM2IDI0NzVjM2NmZTgzOTAzMjZlODgyYzJkMzk2OWJjOWM0MjBmN2RjM2IgbGVnYWN5LXRydW5rCisxMzIzNyBlMDc1MjcyZjQzZjI2NTY4OGY5ZWVjYTUxMGExMWRlNWJlNzI2Y2ZmIGxlZ2FjeS10cnVuaworMTMyMzggNjEwNTFmZDY1YWFiMDgxMDVhOTU3NzliMjFjZjRjODI4OGVjYmU0OSBsZWdhY3ktdHJ1bmsKKzEzMjM5IDI2NjY0ZDA3OTU5Nzk5NTkyYmJmYWFkMDk1MjY1ZGJlYzkwMjc5OWQgbGVnYWN5LXRydW5rCisxMzI0MCA3NDQyY2NlZGQ1ZmQzYzAyYjkxYzMyN2EzYTAxNmQzMWMyOTZhNjFmIGxlZ2FjeS10cnVuaworMTMyNDEgZWM2NjQyNTRlZjVhYWE5ZTFjMzc3NGZlZmUzYTJmZDkzMzk0MDZjNCBsZWdhY3ktdHJ1bmsKKzEzMjQyIDI3MzcxYjZkNzBjMTExZDZhNmMxNWI3MjY1YTVjZjc5MmU5ZmEwNjYgbGVnYWN5LXRydW5rCisxMzI0MyBkZjE1NGRhMThmMGVhMGRmYzFlZGY3ZGIyMDczMzdmZTY0YWRmMTNlIGxlZ2FjeS10cnVuaworMTMyNDQgZTRlZThlYTRlODM2OGQyZjNkYTQxOGEyMzYyNzg0ZGYzNmYxYWNmNyBsZWdhY3ktdHJ1bmsKKzEzMjQ1IDAzZTc0YzRiMTg5YzlkYTU0OWYyYzUwOTBlMTA5ZDUzOGY5NDkxNGEgbGVnYWN5LXRydW5rCisxMzI0NiAwOWM2YjJjZWJlZTljNjFlODY1YTI3Y2MwMjJiNDk2MjQ3NzYwODViIGxlZ2FjeS10cnVuaworMTMyNDcgNjc2ZGU4YTdhM2NiZDI1YTBmZDlmZmVkZmEzZTFkMmMxOGU5M2RhZiBsZWdhY3ktdHJ1bmsKKzEzMjQ4IDg1NTg4N2EyY2M2MDE3YzZkOGE3OTZmODMyMDBjYTEwNmI0MzFmMjcgbGVnYWN5LXRydW5rCisxMzI0OSA0YzlkZTZmZDI2N2I5M2ZhY2JjYzEyY2I4NDVhNThlNmUzNWVhOTYzIGxlZ2FjeS10cnVuaworMTMyNTAgM2U1YjA1MDM1ZWI5ODQyOWU2YWZkZDNlMzUwYmJkMDM1ZWNiN2ZkOSBsZWdhY3ktdHJ1bmsKKzEzMjUxIDRkYjM2OTFiOWM4NzE1ZmNiZjhkODQ1N2I0MTMwOTY2Y2E3NmNhOGYgbGVnYWN5LXRydW5rCisxMzI1MiBlN2ViY2ZkZTNiNWU0MjcxYWM2MWRjZDc3ZTM3ZTE4ZjE3OWY0ZWExIGxlZ2FjeS10cnVuaworMTMyNTMgZjBhNjE5ZWViZTlhMmEyNzMzMWU1ZDcxMmUxMmFiZGMwZjhiMzI5NCBsZWdhY3ktdHJ1bmsKKzEzMjU0IGEwZDRhOTU3ZmQ5MWMxMWYwN2FhNWU2NzUwZWUxZmFjMDI4N2EyMmMgbGVnYWN5LXRydW5rCisxMzI1NSA4ZjM2NjViYjllM2UwYzgxMmRhZjE3MzQ4MDUxOGQ4YTkzZjE4YzBmIGxlZ2FjeS10cnVuaworMTMyNTYgOGVkYmQ1YWI2MjE3NTcwYmVhZGIwMWJlZjJmMTFiZTYxYzc3MGRiMSBsZWdhY3ktdHJ1bmsKKzEzMjU3IDhlZWY2ZjY3NTY3N2M1N2MwZDQ5ODljMzJiNTZlNzM4M2E2YjdiOWMgbGVnYWN5LXRydW5rCisxMzI1OCA4MWY1NGMwMGUyMjRmZTViMWRmYzQ5YTgxNWM3ZGZjYmIzZDc4ZTk2IGxlZ2FjeS10cnVuaworMTMyNTkgY2RlOWIyZTY0YzAwOTdlMTkwOTRjN2U4NTdlYmY5MjIwYzVlNzgzNSBsZWdhY3ktdHJ1bmsKKzEzMjYwIGJmYTBjNzQzMzQ3YTlkY2M5MjJmMWE4ZTdjN2FlZGYxMmFkYTg4OTcgbGVnYWN5LXRydW5rCisxMzI2MSBmMWIyYmI1MzVlYjM2M2M0MDkxMjhjZmMxYjg4ZGQ0NzE3OTFhMDFiIGxlZ2FjeS10cnVuaworMTMyNjIgM2M0ZGI2YzZlOTc5M2NmZjYxYTNlNDM0NDY4YTBkYjQ4M2JlODg0MCBsZWdhY3ktdHJ1bmsKKzEzMjYzIGVjZTA5OGYzZTFkYzhlZDBiNGVhNDlhMTAwYWRjOTljZWQ4MmQxMGEgbGVnYWN5LXRydW5rCisxMzI2NCBhYWE1Zjk4Y2IyZDZkOWM1ZWU1YmE4NjFmM2JmZWUyMzRjYWZlNjFkIGxlZ2FjeS10cnVuaworMTMyNjUgNmEzOGU2NjdkMzQ5ODA4Y2EzZDFkZDgyMWE1ZWU3OTI1M2I5ZGE5YyBsZWdhY3ktdHJ1bmsKKzEzMjY2IDA1ZDcwMzAxNWRlMTU0ZjliZWQ5NWI5M2E4MWI3NjhiNWNkNDM3Y2YgbGVnYWN5LXRydW5rCisxMzI2NyAzOTNhNmRhZjI4OWRlMzg5NGM2NWY5YjA1OGNlYWY1NjQzNmY5NTMwIGxlZ2FjeS10cnVuaworMTMyNjggMTUwYWMwZDcwOTI5MjI0OTRhZjI2OGI2NjRjZDkxM2JhMTRkMDIxMiBsZWdhY3ktdHJ1bmsKKzEzMjY5IDkyYTkyZGU5NTliOWUyNGJkZjliMmUzMzY5NWEzOGI2ZDM4ZWYxNWMgbGVnYWN5LXRydW5rCisxMzI3MCAzZjBhNmIxNTY5ZTdlNmVhOGU3MWIzZjg0ODk5OTMwYWVkOWY2MzYwIGxlZ2FjeS10cnVuaworMTMyNzEgZGJjYTQ3MGFmOGYyNDg3MTkzNDljNjkwZTMwMTRiYTU1NGQ0YTRiZiBsZWdhY3ktdHJ1bmsKKzEzMjcyIGUzNzA3NGI2ZTc4Y2Y0YWI3MWExYzhmNWVkYTQ1MGMyNzA0NzE3YWEgbGVnYWN5LXRydW5rCisxMzI3MyBjNmE0ZTQ2ZjFiMDlkZGUzMjUwNzUzN2IyMmM2NTIxNjczNWVmM2E4IGxlZ2FjeS10cnVuaworMTMyNzQgMWFmN2ExNDY3MDg4MzhhZTBmMDg0YTRlZWY3NzU4NDY4MGZhNjljZSBsZWdhY3ktdHJ1bmsKKzEzMjc1IGZiMTczM2I2YmVmNWVhYzBlYjNjOTUwNzQzMjZhYmI1MTYzMWM2MzEgbGVnYWN5LXRydW5rCisxMzI3NiAyZjZiMTI3NmU1ZGM2NDI5ZmE0NDI0NTc5M2U3OGJmMWFjNjMzMGE5IGxlZ2FjeS10cnVuaworMTMyNzcgNDQyNDgzZjQ1MzQ1NTg1YTcyYmIyMzk2NDYxMmVhNDExMzIxYmNkZCBsZWdhY3ktdHJ1bmsKKzEzMjc4IDJiMDE2NmQyMjU1MTNlNGQ0MzVmYjU4MjQyMDRmMDc1M2YwYTYyN2YgbGVnYWN5LXRydW5rCisxMzI3OSAxZDdlYmJmMWYwZjI3NTUwODk1NGY1ZDQwNDFjODg3NDc0Y2MxMTc4IGxlZ2FjeS10cnVuaworMTMyODAgZTBlOTNlNDE2NmNlMmQ1MDgyOGJlMzY1ODMzODA3NzhiZDNiZDg0YyBsZWdhY3ktdHJ1bmsKKzEzMjgxIGMxYzcwYjc0M2RmMmU3OGI5ODdmNjhiYmQ3MTE4NDljNjRlNzJmOTMgbGVnYWN5LXRydW5rCisxMzI4MiA5NjY1OTRjNmIxZTI1NmFkYTUxYzFmZTU3NDRmMmE1MDM2MGM3ZDU0IGxlZ2FjeS10cnVuaworMTMyODMgYjcwODk2ZWI4OTQ0MGU5MDdkMTA1MGFhYjY2NDhlNjM0NmMxYWIwZCBsZWdhY3ktdHJ1bmsKKzEzMjg0IDlmMGYxZDhlNmViYWY3ZTczZjkxYjY1OTAxMGM1YWMwOTdmYTQ4ZjMgbGVnYWN5LXRydW5rCisxMzI4NSBiMzlmZTUxMjk5YmU5ZGFlOTRkODVkNDY1ZmIzY2U0NTZiOWE4Y2FmIGxlZ2FjeS10cnVuaworMTMyODYgNDc5YjRkMWMwYjQ3Mjg1ZGY2NmFjYjYyNzA0ZmE2ZDc3MGJmMDFkYSBsZWdhY3ktdHJ1bmsKKzEzMjg3IDU0YTMwZDZiMDFmMTA4YTgwNTQwOGUzNTIyMTAwZTY2NzA4NTY1ZDcgbGVnYWN5LXRydW5rCisxMzI4OCBjMzljMTQwYjA0YmNjOWNmM2EwMzMyY2Q3YWY5ZDIzMjA1YmUyNGJmIGxlZ2FjeS10cnVuaworMTMyODkgMzJlNzhjOWZiNDk2YzM4OGRkMDNhMWJkNGNiOTdiZmE2NGZhYTIzZSBsZWdhY3ktdHJ1bmsKKzEzMjkwIDVkYjJjMDQyN2NhZDM0YTQ5OWMyOWU4NjUwMTUyZjc4YjdmZWFlNWQgbGVnYWN5LXRydW5rCisxMzI5MSBhMzRkNjY1NmY4ZTJkZGZhOTJmN2M0MjcxYWM4NmMzYzQ0N2ZlYjdhIGxlZ2FjeS10cnVuaworMTMyOTIgMWJmYWE1Mzc0ZGY5OTc1OGIxNGE5MTFmYTZlM2EyZDhiMjdiNzAyNSBsZWdhY3ktdHJ1bmsKKzEzMjkzIDMzNWI0YzAyZjEwZGYwZDkwMGJhNDQzNjMzOTBhZTdjNzEyMmM5OWYgbGVnYWN5LXRydW5rCisxMzI5NCA3NjczNTFmNDk0NGFiYWRlNDFjMWU1ZjBkZTJiNDdiNmQ1MWQ1MGIwIGxlZ2FjeS10cnVuaworMTMyOTUgMTA1YmVlZDA2OGY4ZTYyZDI3M2IzZGQ1ZjFlYjA2OGRkMmQzM2Q1ZSBsZWdhY3ktdHJ1bmsKKzEzMjk2IDJkMzZmMDY4OWI4YTNlMDU1OWI3ZWJhMzQ1MzE1ZmJjMjZkMzQ0ZGYgbGVnYWN5LXRydW5rCisxMzI5NyBiMDE1ZDVmMWRhMWI1NzE3OTFmNDQwZjRiZDk1YTJiZjA4NjVjM2ZjIGxlZ2FjeS10cnVuaworMTMyOTggN2M0MGQ3YzFlZWY5NGY3NzAzNWFhYjg3ODkwYWRmYWQwOGEzZmM2ZiBsZWdhY3ktdHJ1bmsKKzEzMjk5IDg4NWFiZTA4ZWEyZGVhYzkzMzUwN2QyMTc5Njc3MGEyNzljZTk2N2MgbGVnYWN5LXRydW5rCisxMzMwMCA5ZWZlMDY3OTQwZWFhODdmOGIxMTkyY2U4NmFiZmQ3MjFmMzdhNmEyIGxlZ2FjeS10cnVuaworMTMzMDEgOTRjN2EzZjFjMDA1ZTY1OTQ3MjFjOWE4NWZiZjE3NWUzMWVmYjI4OSBsZWdhY3ktdHJ1bmsKKzEzMzAyIDhmMzExMDNjODhhOGUwN2U1NWQ5MjMyNjc4MzBhNDkwOTlmOTlkZGUgbGVnYWN5LXRydW5rCisxMzMwMyBkMjBlNGQwYWZiNDM2MmQ4OTI1OTkzN2U0N2IyNDQ3YzJlYzE2NmMzIGxlZ2FjeS10cnVuaworMTMzMDQgMzEyZWI0ODAxYTFjODE2YmJlOTQ2OWNkYWFmN2M2ZDBkOTcwYmNkMSBsZWdhY3ktdHJ1bmsKKzEzMzA1IDNkMmVhNTViYzRlNjhhNDgwZjU5NDg2YjYwMjc0MDkzZjA0Nzc2ZDAgbGVnYWN5LXRydW5rCisxMzMwNiA4NzlkMWFlNWM3YTViY2VkMmUwNDlmZTljYjFmMWNiZjY5YzY2ZjEyIGxlZ2FjeS10cnVuaworMTMzMDcgNzgxMjM4MzYxZjUzMWUzYzUwMTk5NDU4MWFjMjQ2MmViY2FkOTk1OSBsZWdhY3ktdHJ1bmsKKzEzMzA4IGFlYjEzY2I3Yjc4Y2E1ZTgwODRiM2E2MzBmZjM4MWQyN2QzNDFhZTMgbGVnYWN5LXRydW5rCisxMzMwOSBiODhhNjA1MjQyNjkwOWQ2MmI3NmU1M2VkMGExMDg4MGM3ZDI4ZDU1IGxlZ2FjeS10cnVuaworMTMzMTEgN2VhMzg1OTdlNzBmYWJiZGI0NWYyM2JjMzY5NzZiNjNmNjZjMTEwZSBsZWdhY3ktdHJ1bmsKKzEzMzEyIGZmYjJhNDdiNjQ1ZWM3YmYxYTViYmRhZmRlMzBhNDcxMGQ5NmNlODkgbGVnYWN5LXRydW5rCisxMzMxNCBmMTY0ZDkxOTMzNDFjOWI0ZjA4ZTQzNjg0MWRiYzM0NmJlMGViMmQ2IGxlZ2FjeS10cnVuaworMTMzMTUgMGZlOGNmN2FjNmQ1YTM1NjQzOTQxNTE3NmYyZWVkZTQyOWI4Y2QzYiBsZWdhY3ktdHJ1bmsKKzEzMzE2IGRmYmUyNThlMjhjMTgxN2RhMjIyOTEwNzFhMjVmZThjYTdiNGIwMmEgbGVnYWN5LXRydW5rCisxMzMxNyA2ODc5OWEyMDI3NjZhMTQ0MWE3ZjE5YzQ2OTYzNTQ5ZjBkNmE4MDgxIGxlZ2FjeS10cnVuaworMTMzMTggZDczYTMyOTNjNDdiMmNkZjFlODVmN2QwMzhiNmNlOTJmODM1NmM4ZSBsZWdhY3ktdHJ1bmsKKzEzMzE5IDVhZDI3YWVlN2U1ODg2MWY2MjVmZTdlZDg2NzAwNjMzMjA0MWE0OTcgbGVnYWN5LXRydW5rCisxMzMyMCAyZmUwYmI4YjllZWY3OWJiZGFhMWI3NzUzMDFmYTAzMTE5MzcxY2ZmIGxlZ2FjeS10cnVuaworMTMzMjEgOGRlMTNjZWE5NjQxMTIyNjg4OWRhMGU4YjFkNWNiZjExMjQ5OWY0NiBsZWdhY3ktdHJ1bmsKKzEzMzIyIDMzMWM4NWFjYTE5NTcyYzJmNTkzY2IwNTQxODI4YWMzNDYzY2Y1MzAgbGVnYWN5LXRydW5rCisxMzMyMyBjMTJmN2NmMTkyZmIzMzg2MDk4Yjg2MWM1OTljM2UzZTMwNGZkZmI3IGxlZ2FjeS10cnVuaworMTMzMjQgZDI2YTlmOTI1NGYxNGRjMzE3OTY2MDQ2OTE4NTVjNWQ0ZmVhMjQwOCBsZWdhY3ktdHJ1bmsKKzEzMzI1IGViN2E2MmFjZGQxZGM1YjRmODNkZTRkOGQzNGVlMTM4NTQzYTBiM2UgbGVnYWN5LXRydW5rCisxMzMyNiA1ZTAzZWE2OTI3ZjIwNmY1NjAwOTIzNGJkMTJiYzE1YWUxOGM4ZTQ1IGxlZ2FjeS10cnVuaworMTMzMjcgZGZiNWZkYTNiMjczYWQ3NGNhY2ZmZGRlMmMwOGZiNDgyYjkyNjgxYSBsZWdhY3ktdHJ1bmsKKzEzMzI4IGQzYzZlOWExMjZiMjlmYWM2ZDc4ZjI3YjdjNzNkZDI0YmUzYjcwMTkgbGVnYWN5LXRydW5rCisxMzMyOSA0OWEwYjhkY2IzNmE0ZTI2OTI4YTI2ZDE2MGIyZjA5Y2M5MWJjZmZjIGxlZ2FjeS10cnVuaworMTMzMzAgMGJjN2M1MDJlYjRkMmVjYzNhOTY4NmY0Y2U5OWYyODRiMDhhYzFmMyBsZWdhY3ktdHJ1bmsKKzEzMzMxIDk2Mzg5ZjBiNWVmMDg2YjRmMzhmM2NhNzZmYjBiZTI0NzY5ZWVkNTcgbGVnYWN5LXRydW5rCisxMzMzMiBmZTViN2RlYTVhMTBmZmFkYzI3M2RlYWVhODQzMTIyZDMwMWIxY2VmIGxlZ2FjeS10cnVuaworMTMzMzMgZWE4MzJjM2M2ZTZkYTI2M2E0OGNiNDM4MDA5YTY5OGY5ZTBiM2U5MCBsZWdhY3ktdHJ1bmsKKzEzMzM0IDJhMzBlZDkxMTJjNjFkNTljOWEwZGFjMWU5MTY0YjA5MmE4OTY2ZjkgbGVnYWN5LXRydW5rCisxMzMzNSA2OWQ4OWY3ZjUzMGM1Yzc5ZTk1N2YzZjRmNTgxZWY2ZTJjOGEyZWYyIGxlZ2FjeS10cnVuaworMTMzMzYgMzkxYTljYjJiMDcyOWY3MmEwMTU3YmNhODg5ZmJiMjZmZDVjZWMxZCBsZWdhY3ktdHJ1bmsKKzEzMzM3IDAwMzQ0ZGJmMmE2MDUyOTQ5ZWY1ODg4YzdiNDdhNDUwMDkzMTM0NmIgbGVnYWN5LXRydW5rCisxMzMzOCA2NWRiNWUyNjI5OGYyNjZkOGFiNDlhZTAzNGVjNzJjYmNiNzgyMWI3IGxlZ2FjeS10cnVuaworMTMzMzkgYWFlMTRjNjE4MWI5ZDg4ZDVkYzM5ZGQ1YTkzOWU2MGQ1YjJmNmEzNyBsZWdhY3ktdHJ1bmsKKzEzMzQwIDEzNWMxZWM5NjM2YzY4NmEyMGQwM2VkMjc3YTM1MzgyNGM5NzQyNGEgbGVnYWN5LXRydW5rCisxMzM0MSA1NTgxMzA3ZGIyZjczN2U2YTM4ZTJkNWM3MTM0MTRiZTIxMDZlOTFiIGxlZ2FjeS10cnVuaworMTMzNDIgZTY1MjQzNDZkNjZjYzE4NTliOWQ1OTZlNDAwOTM1MDc3ODE5ZmVhZSBsZWdhY3ktdHJ1bmsKKzEzMzQzIGVmZDE1NzNhNGIwM2IyMmRhMmExMDdlZGY3ZjAxMjUzNjQ5M2VjNDUgbGVnYWN5LXRydW5rCisxMzM0NCAwYmYzMDE5NDFlZmQ4YzUzMzU3ZmFjMTRhNDllNzFhNGUyYzkxM2FkIGxlZ2FjeS10cnVuaworMTMzNDUgOGZkYWM0MDI1MDMyNWY4OWJlN2U5NmQyM2QyMGNlYTFjNmJjNmMyMSBsZWdhY3ktdHJ1bmsKKzEzMzQ2IDg0YTRlY2QyY2I5NTM4MjQ4NmRkZTNlYmEwNDU2YWU4ODRiOGVlZWQgbGVnYWN5LXRydW5rCisxMzM0NyBhZWU3NGU5NzdhZGQwZmY3YTBhYmE3MjI5ZDA1NGFlYmE0Y2U1NzI2IGxlZ2FjeS10cnVuaworMTMzNDggZmE2YmUxZDBiODY0NWEzM2ZlNWI1YjMxZmM5NjllMDE5NjM2Y2M2MSBsZWdhY3ktdHJ1bmsKKzEzMzQ5IDM1MmU1ODI0ZWRhNjY2MGE0MTE0OGZjZWRmMzA0NjJiOWM0NjQyZDAgbGVnYWN5LXRydW5rCisxMzM1MCBlMWI4NmVmNDU1N2M1NzU5MmZhYmE5ZTkwNWY3NTM3ZTZkMmQ0ZjQxIGxlZ2FjeS10cnVuaworMTMzNTEgY2RmN2FlNWIzMzY3ZWVlNmU0ZGEyNDRlM2Q2NzA1ODJlYjk3OTc5ZCBsZWdhY3ktdHJ1bmsKKzEzMzUyIDVlZjRiM2NhNTU2NDU3MTJmNTYzZGZjMzJhNGIyNWE2OTMwYWNhNjcgbGVnYWN5LXRydW5rCisxMzM1MyBiNzM3OGRmM2RiNTZkNzA0MzE2MjdjMTdkOWJhYmNhY2JkOTE3ZjJiIGxlZ2FjeS10cnVuaworMTMzNTQgYzdhYTk5NjU4MzgzZjI3ZmIyNDJlNTY1YTI3OTg3YzFlM2MwNzM1MiBsZWdhY3ktdHJ1bmsKKzEzMzU1IGQ3OGNjMjY3NmM1NTFiNjcxODc0MDQzMmVmM2MzNzcxM2M5ZTk1Y2EgbGVnYWN5LXRydW5rCisxMzM1NiA0ZGE3NmY4MzhhNWU0ZWQ1YzNlM2IzMzE2YTNiMzZjNjkwZDI3MDIzIGxlZ2FjeS10cnVuaworMTMzNTcgYTE0MTVlY2VhMjNkNGEzMjFkNzFkYWRjNjU2MjQwOTU0MWJjYjcyNyBsZWdhY3ktdHJ1bmsKKzEzMzU4IGZjYjI1MzM1ZDZhZWRmMmMxZTVlZDlhOWUxNmM5YmZkNjAwYjM3NzUgbGVnYWN5LXRydW5rCisxMzM1OSBiMjdhZDUwOWI0NGIzNTAyNTY2MzljNTI5ODAwYzY3OGZiMzQxN2ZmIGxlZ2FjeS10cnVuaworMTMzNjAgZTJmZTY1ZTg3NzYxYjg4MGM0MGJmYzZlNzZkOTk1ZWM1OGI1MGY1ZCBsZWdhY3ktdHJ1bmsKKzEzMzYxIGYyZTEyM2FmMmFkYTQ0NzEzYTdjNGE2NDgwMWRkMjJjYmZjZGJhM2IgbGVnYWN5LXRydW5rCisxMzM2MiAyODg4N2Y0MGUzNDQyZTBiNTFkNDQ5MGE3MTI1MTY3NDczMTY3MGQzIGxlZ2FjeS10cnVuaworMTMzNjMgYmUwYWM1YWJlODNiN2I2YWI3ODFlZTJjZWJkMWNhZTY2NGYyNjNiZSBsZWdhY3ktdHJ1bmsKKzEzMzY0IDFhYTgwZjViZjlhYzkxZDNjMDEyYmQ2YWFiNzRjOTFjM2NiOTAyOTYgbGVnYWN5LXRydW5rCisxMzM2NSA4MjAyZjVhY2UyNDg0OWFmNzUxZjNiMWU5YTk0MDk5MzVkN2M3NzBmIGxlZ2FjeS10cnVuaworMTMzNjYgZTc1MjUwZTU1NDI0ZjQxZDk0OGI2NjEzMGI1MzQ4NjAyODQ0MTdhOSBsZWdhY3ktdHJ1bmsKKzEzMzY3IGNmZTQ3MjkxMmI3ZjhiMDI4MmU3NGRhOGU0Y2IwN2E0OWQyMzg1ZDAgbGVnYWN5LXRydW5rCisxMzM2OCA5YTNhMDQ2OGY1MWM3Zjk3ZmIzNDIyZTlkYzA3ZDc4ZjdlYmQ5NDBlIGxlZ2FjeS10cnVuaworMTMzNjkgNGY1ZDQ5NDU2MDVjNjdkMzRjNzU5YzdhOWU4MjU3YmUzNTEzYzZmOCBsZWdhY3ktdHJ1bmsKKzEzMzcwIGY3YjQxYjI3MDU1NDgyMTgzZGMyZmRiZmI4NmY0ZmExY2YzZjlhYWYgbGVnYWN5LXRydW5rCisxMzM3MSBjZDJhMjViN2I0Mzg1OGU1ODUzZmFiOWRlNGQ3YmNlZGU3YzFiN2NlIGxlZ2FjeS10cnVuaworMTMzNzIgM2VkYjMyOTgyMzRjZDBiMThlMmM0NDdlNTlkZGY2ZGQ5NzI0NmM3NCBsZWdhY3ktdHJ1bmsKKzEzMzczIDI1MTM4ZGIzNWNlMWVkZTdkN2YxZGZlZGE4ZWEwMzlkZWUyZWYzZTEgbGVnYWN5LXRydW5rCisxMzM3NCBiYmMyYTg3ODk0ZDA4MjkzMWYwN2EyMDE3NjIwN2U4ZGRmYWVmZTJkIGxlZ2FjeS10cnVuaworMTMzNzUgN2QxMTgyZDBjNDE5M2VhMTE4ZWVmYjExZjA2MzZmNjFkYTZmZTQ3OCBsZWdhY3ktdHJ1bmsKKzEzMzc2IGZmZmY2NjVmOGE3YmYyOWVmZjU1NjE2NWEyMzZiODU1OGE3ZThkMGEgbGVnYWN5LXRydW5rCisxMzM3NyA1YzVhZTE2MWYyOGFjMDQwNmI5YjNjZWQxMzM4MTI3YWEyMGExNTg0IGxlZ2FjeS10cnVuaworMTMzNzggNzU1MGEzNWQ4MGY5YmFmZmNiYWFhMjhiOWEyOTk1MWRiYWZjMDIzNSBsZWdhY3ktdHJ1bmsKKzEzMzc5IGE1NjM3OTIwMDA3NzBlMTYwOWIzY2Q3N2ZhZGM1ZTllNDU0ZTkyYzAgbGVnYWN5LXRydW5rCisxMzM4MCA5ODY4YzgwNzczMmQ1ODcwOGQ2NTAzMzYzOTQ2MzI4ZDI4MzkwZTJjIGxlZ2FjeS10cnVuaworMTMzODEgODYzNGVhMmVjNGUyZmRjMmE3MGQ1NGRmMTZmZjc0ODM1YmU0NjRkZCBsZWdhY3ktdHJ1bmsKKzEzMzgyIDE4MjFlNjRlMDhmY2VkYThmYzI4ZTEwZDEyZDhkMGFmOGI0NWRjNDMgbGVnYWN5LXRydW5rCisxMzM4MyAxN2FlMTc4YTMwMzg4YzRjZDFmMDNlNmYwNzQwMTMzNjY0NDYyNTM2IGxlZ2FjeS10cnVuaworMTMzODQgMjY2OWFjN2NkNzZhOTZmODcxMzIwZWJmOTI3ZWY5YjAzNjEyYTQwYSBsZWdhY3ktdHJ1bmsKKzEzMzg1IGI5ZWY0MjQxNjVkNjI1M2QyYmQ1ZmQ0NjA4MzY0YWY3MjlhMjc0MzMgbGVnYWN5LXRydW5rCisxMzM4NiA1MDIwYmZhNzQyZWFhNzUxMWM2MDg1MTU4NmQ2MTgwMGNkZDRmZDMzIGxlZ2FjeS10cnVuaworMTMzODcgZjg4ZDNhNzYzNzIzZDViYTBiZTc1OTljZGEzZmZiY2U2MGI2NmVhYSBsZWdhY3ktdHJ1bmsKKzEzMzg4IDgzOGNiMzRhYmI3OTE5YzM0MmYyNDNhOTYwMzI4YjM2NjBkMGFmZGQgbGVnYWN5LXRydW5rCisxMzM4OSAwNmRlZjgwNDJkOGUxNmZhMDEwNjU1YTA3YmVjMDE2YTUzMzQxYTViIGxlZ2FjeS10cnVuaworMTMzOTAgYzIwOWRkOThiODY5NTI1YTFkZGY5ODhiNjdmMzAzZTE5NjE2OGVhZiBsZWdhY3ktdHJ1bmsKKzEzMzkxIGYwMzE4YTFjOTg5MmNiNTcyN2Y4NmQxMjdlMzk5MmZmMmE2Yzk3MmEgbGVnYWN5LXRydW5rCisxMzM5MiA2MmVkMzJlNzliNWQyOTYyNDYzMzQwN2QwZGNhMzM5NDI0ZWNkYWRhIGxlZ2FjeS10cnVuaworMTMzOTMgODIyYzUyODJjMTQ1Njk3ODk3NTU3ZTc1NGJkZjkwYjI1ZmQ1MTlhOCBsZWdhY3ktdHJ1bmsKKzEzMzk0IGFmMDczODljODUxNzVmYmE1OTQ4MTU3MDJmZDZiZjJiMmRkYmI4MzQgbGVnYWN5LXRydW5rCisxMzM5NSBiYTZkM2FlM2EwMjE0N2EyMTZmYWU4MDcxMzc3ZDljMzA3YmRkODgxIGxlZ2FjeS10cnVuaworMTMzOTYgYTYyOGMzNzA1ODk3YWNlYmE2Zjg0YjEyMDI3MzdjNGU1MzUyY2MxOSBsZWdhY3ktdHJ1bmsKKzEzMzk3IDYzMmI2NzA1YmQ5ZmFkZDYwM2QxNDkwZmFjYjQwNDhhZTNjN2RhMGIgbGVnYWN5LXRydW5rCisxMzM5OCBiODEzNjU2NmNhZjVjMDBlMDc5NWQ4YjNkNWQ1OWU3YTQzNmI1NTdmIGxlZ2FjeS10cnVuaworMTMzOTkgNjc4Mzg0MmMxMDQyNDVjMDM2ZDNkOWJmMTEwODE3YTIxYzRjYjcyMSBsZWdhY3ktdHJ1bmsKKzEzNDAwIGQzOGQzYjhlYTQ2M2JmY2YxZWIwOTRkYzY1YThlNWEzOWI0YjYzZjQgbGVnYWN5LXRydW5rCisxMzQwMSBlMTgzYmMwMDQ5ZGNkZGMwMDM2NWU1OWEwODEzYzhiNDY5NzAzM2ZkIGxlZ2FjeS10cnVuaworMTM0MDIgNzQ4Njc5NmZhZTViOTQ0NWZkYmNjYjc5NTljNmUxYjViNWZlZDU1NCBsZWdhY3ktdHJ1bmsKKzEzNDAzIDgxN2QwNTM4MzUwZDMzNjQ0NzEwMGMzYjFjYzc5NzdhMDAxNmM0M2IgbGVnYWN5LXRydW5rCisxMzQwNCAzZTQxOWFiYzViYWFkY2ZiMTA5M2ZiODgyYmE1NjA1MDZiMDE2ODViIGxlZ2FjeS10cnVuaworMTM0MDUgOTU4MzdlMjczMjU3NTlkMjM0Mjc4YWQyZmVkYzk3MjhmN2Q0MDU3OSBsZWdhY3ktdHJ1bmsKKzEzNDA2IDg1Y2Y0OWE5YjAwYmNlZTczZmExNzQ3NzViNDYyNGI5NjcxOWZjMWYgbGVnYWN5LXRydW5rCisxMzQwNyBhNTllOTVkMmYxODEwYjQzNjY5NzQyN2ViYzdiZDU1M2ZhMjFlOWQ4IGxlZ2FjeS10cnVuaworMTM0MDggMTdjYTJmNjRiNmQ2NzE3Yjc4OGNlZGNiYjI0NDg1ZTA4NGJiYzRlMSBsZWdhY3ktdHJ1bmsKKzEzNDA5IDdlNTZkMzlkMDc0MTE0MzI2YzY5Y2E4MmZjMTAxYWIzYTNjZDgxZmEgbGVnYWN5LXRydW5rCisxMzQxMCBmMGEyMjEzNDQ0YTA0OTQ1ZDVkMzhmOGI1ZDFiNzhhMmFmYjdlOTU5IGxlZ2FjeS10cnVuaworMTM0MTEgOTU3YzMzNTA0Y2MxMjRkYWY3MWFmYmFmZGYyZWZkYmU5OTlkNTk5MCBsZWdhY3ktdHJ1bmsKKzEzNDEyIGQzMTc0MzIwZTNjZWM5YmVhZDU5OTIzYWIzMzBkYjI5NTgwMDU5NzkgbGVnYWN5LXRydW5rCisxMzQxMyBmNGM2Y2U1NTkzYjlkNjBkOGJkZjYyYTZjNDhjMTUyOWIxOGNjYTYxIGxlZ2FjeS10cnVuaworMTM0MTQgYzI0NTE2MTQ2ODVhYzRkOGViNjQ4NmQ4NWVhNTRmYTM1YWQ2YmExOCBsZWdhY3ktdHJ1bmsKKzEzNDE1IDI5ZTk2Mjc1YTQyZGNiNzk1ZDU1ZWU4M2M5NTgwMzIwMjdkYjUyZTAgbGVnYWN5LXRydW5rCisxMzQxNiA4YTMxMDk3NDBjNmFmZjBlNDVhNWMwMzg2N2NmYWE1YjA1ZDhhNWYzIGxlZ2FjeS10cnVuaworMTM0MTcgZDgzYTRhYTcwZWI0MjhkMjJkOTNkY2FiODE2ZTg4NDkyMWYzNDBjZiBsZWdhY3ktdHJ1bmsKKzEzNDE4IGNmYWM4M2Y1YzBlZmE0NzJjMTM2Nzc4YTg1ODNhZjM5OGYzZjk1ODUgbGVnYWN5LXRydW5rCisxMzQxOSBiMWExZWIzMzQ5ZjM3YWQxYjYzOGJlMzRlMGU5MmM1MTRlNzRlYTk0IGxlZ2FjeS10cnVuaworMTM0MjAgZDFiNGZkMDU3YjRhNjM0ZWM0YWFhOGU4NTU2NjVjMjRlOGRmOGFlYiBsZWdhY3ktdHJ1bmsKKzEzNDIxIDNmZGYxYzdkOWY5ODhmOWU5MWIwNDcxOTc0NmZkYmNiMzI1Y2NjMmIgbGVnYWN5LXRydW5rCisxMzQyMiBiYTc5NzE3OWUyYmE2MzkwYTVmYjIxYzRlZmRkNTQ0YTg3ZThjM2UzIGxlZ2FjeS10cnVuaworMTM0MjMgYjc1ZDAxMTllZDUxYTA3YjhjYmI2MDNkMjNmYmQxMWJmNzZiMmFhMiBsZWdhY3ktdHJ1bmsKKzEzNDI0IDZiMWNiODU4MmExZjkyYmNjNjc0M2M2YWU0YmY5YTRkMDRmYzAwYjkgbGVnYWN5LXRydW5rCisxMzQyNSBhOGExZWI5OTM0MWMyMWI4ZTYxMjI5NWI1ZDkzODliNjA1OWZjMjBmIGxlZ2FjeS10cnVuaworMTM0MjYgYmRkNmIwOWEzNzFjNDBkYWRkYTg2ZWE5OGZiNWJiYTk3MGE0ZGJkYiBsZWdhY3ktdHJ1bmsKKzEzNDI3IDNmYWE2MzQzMDkyNDZmNjQzNWU3NmY4ZjNjNGY2ZmZkMjQyMmZjYjIgbGVnYWN5LXRydW5rCisxMzQyOCA5YzQwMzQ4ODc1NTcyOTEzN2ExNjczMzFhZmRlMmVlMTRjYWJkNWUwIGxlZ2FjeS10cnVuaworMTM0MjkgMWM1NTJkY2Q0M2Y5NzVjZDg4YzkxYWJiZGI5NGZkMDljYTI4ZDMzNCBsZWdhY3ktdHJ1bmsKKzEzNDMwIDgyMzRiYjM2ZmI4YzM1ZjkwMzk4ODRmMTNlYmVjNmQwODk2NjU2ZGMgbGVnYWN5LXRydW5rCisxMzQzMSA1MjU5NzAzZjRiNWMwMjAyMjU1NGU0NmM1NTY3MmViMWVhNTIyYjU4IGxlZ2FjeS10cnVuaworMTM0MzIgYjM1YmFiNDU3MzUwYjUwYWE1ZjE5NjkxMTE0MzRkNzFhZWRlNTY4MiBsZWdhY3ktdHJ1bmsKKzEzNDMzIGY5YzAzYjNkMGYxNDZlOTE4MTYyYzg1YTQzYWVhYmZkNjhlMjNiZmQgbGVnYWN5LXRydW5rCisxMzQzNCBlNDEwNDlhYzgyOGI0OWMwNmRhODNmNWZlY2M3ZDdhYmMwZGJhOTQ4IGxlZ2FjeS10cnVuaworMTM0MzUgNWVkOWEyZGQxOGQ5ZTZmOGEwNWVjM2FlYTU3OTNmZTliYjQ3YTQ5MCBsZWdhY3ktdHJ1bmsKKzEzNDM2IDg0ZjFjYmUwMDk0MzM1YWU2ZTVhZDA1MDg1NDMzNTliYzIwMDY0MWMgbGVnYWN5LXRydW5rCisxMzQzNyA0NTFiMDg0OWM5NzcyNWRiZWMxMDc0OGU4ZDA0ZjM1NzJiNjFmY2JhIGxlZ2FjeS10cnVuaworMTM0MzggMThhMjkyMTlmNWUwNmY0ZGNlNWExYTYyMWIwYzllODVmN2QwNDE1NCBsZWdhY3ktdHJ1bmsKKzEzNDM5IDUwYzNiM2MyMTdhMzllNDZhN2FmNTQ3NDRiNGQ4NmIyZmFlZGMwMTAgbGVnYWN5LXRydW5rCisxMzQ0MCBjYzZhYmM5OWQyZGRmMTQxNDE4NGM4ODAwOTE5YzE0MDljYjRhZGQ3IGxlZ2FjeS10cnVuaworMTM0NDEgYzA4OTAyMGE3YTFlNTc2NWZmOThiNThkZjhlNDE1MGI5MjA1N2FlYiBsZWdhY3ktdHJ1bmsKKzEzNDQyIGRjY2JmNWU4Mjk0ZGQ5MWY2ZmUzYTIzYjRkNTFiMDBjOWE4MDQ3MTQgbGVnYWN5LXRydW5rCisxMzQ0MyA4NDE2NTUzYzMzZGYxN2ZmMmJiNzk1MTc1NGJjNTJmN2E4NGNmNzc2IGxlZ2FjeS10cnVuaworMTM0NDQgZThmZjRiMTI5OGMyMzNkMmY1NWQzZTI5ZTNiZjQ3MWM1N2NiOWE1ZiBsZWdhY3ktdHJ1bmsKKzEzNDQ1IGFmNzY1MzhkZDA3OWQyNGYwZDY3ODFiNDE0MGE4MWY3YTA2NzJlMjAgbGVnYWN5LXRydW5rCisxMzQ0NiA3MTI4YzBmZDJiY2Y1MjRlNzQzZjQ1YzFiNzI3MDI1MDhlOTMwNzIyIGxlZ2FjeS10cnVuaworMTM0NDcgOGNjMGM4OThmNmE3NDc4M2QxODMxZTQ4MDJjZTNhNGI5YjA3MDIyNiBsZWdhY3ktdHJ1bmsKKzEzNDQ4IGU3ZWFlNjNlOGI5MDc3OTA0OWU1ZjhlMTNhZjc4ODgwMGM2OGRmZGUgbGVnYWN5LXRydW5rCisxMzQ0OSBkOTc2NDUxYjQ2NWYyMTJiODI0ZGU3MGMwZDQ5N2U2MTM1NzBhNjg2IGxlZ2FjeS10cnVuaworMTM0NTAgNmVlNjZmZTE3OWFkNzJlMGIwNTJiYjM5NGJkNWNiOGJkZTc1NjI4YyBsZWdhY3ktdHJ1bmsKKzEzNDUxIDM1ZDViMDczNjI0MjI2MjFiZTg2NDk1OGFkMjFmOTUzMWU3YzQ4ZGIgbGVnYWN5LXRydW5rCisxMzQ1MiBiZjZhMDk4Mzk1MWRkZGQ5YTFhOTM2OWM5NDQyNGE5OGUyMmFiNjYyIGxlZ2FjeS10cnVuaworMTM0NTMgMWFiYzI3ODViMzQ0NmMwYmY4OGM2NzU3OTU0ZmE3MWNhMzI0ZDQ3MCBsZWdhY3ktdHJ1bmsKKzEzNDU0IDM4NDI1MThjZjgwMzAxMmNlNTBkM2Y5OGFmY2UzYzNmOTZmMjMxNTUgbGVnYWN5LXRydW5rCisxMzQ1NSBiOTI4ZjdiOWRmYTIzZDNmZWQ0NmMzYzIyODYzMDY4YjMwMTA0ODA1IGxlZ2FjeS10cnVuaworMTM0NTYgMDM1MzBlYTIxNDhjODU4NDY1MGE0OGJiYTdmMDJjNTdmYmY3YzJiNSBsZWdhY3ktdHJ1bmsKKzEzNDU3IDBmYzJlODU3ZTgyMjg1MDM4NzAyZDM5NGZiODk5YWIwOGYxMzIxY2YgbGVnYWN5LXRydW5rCisxMzQ1OCBiNmQzZDE3MTk1ZGNiYTg2NTU1NmExMjk1ZTFmMWFmNmY0YjZkOWFkIGxlZ2FjeS10cnVuaworMTM0NTkgMzE3MTFhMDU4NzM4MjM2OGYxZGQ4NGJhZWZjMjhmY2ExNDFiZTA5YyBsZWdhY3ktdHJ1bmsKKzEzNDYwIGUwNTBkNGMwMTMyN2NkOWM2ZjViMTI5NDMzOGU1YzdmMTZlZGExNjUgbGVnYWN5LXRydW5rCisxMzQ2MSA0ZDc2Y2FiYmY5OWU2NTU4MGIxMmNkODUwNGU1ZjU2NDA5MGI4OTJjIGxlZ2FjeS10cnVuaworMTM0NjIgNDI5NDBlZDIyY2ViZDc4YjA3NWUxMmVhZGVhYTcwODI4MzkxMGIzNSBsZWdhY3ktdHJ1bmsKKzEzNDYzIDY2Njg5YjJkYzg5NTRiNWM3M2FhYjIzODUwNDA1MWI0N2YwNmYzYTggbGVnYWN5LXRydW5rCisxMzQ2NCBiZGMxNzAzZmY5MmNlN2Y1MjRiZWQwZTJjZmFiYjgyNDcwNTBlNjA2IGxlZ2FjeS10cnVuaworMTM0NjUgYzc3OTAyNTQxYjEzYTU3ZGMxMDg4NDE2NmUwOTE0Nzc2MDBmZWI5OCBsZWdhY3ktdHJ1bmsKKzEzNDY2IGJiYjAzODY4ZjIxYjYyNzEyN2VmN2MxMWI5YTI3ZmUyOTczZjViMDQgbGVnYWN5LXRydW5rCisxMzQ2NyBhYTMyNzZlNWRjY2Y1YjIyMTEzNjNlYWIxMGI3ZDNhNjM1N2MxODU5IGxlZ2FjeS10cnVuaworMTM0NjggMzZmYTgzNTJkMDM4ODE2NzgwMzQxOGEzZGE3OTkyYjYzNjQ2ZTAwNCBsZWdhY3ktdHJ1bmsKKzEzNDY5IDRkYzllZWUyNjE1NzE0NTY3Y2IxYTFlODcwZGU2NjRiMjNjNTQwZmEgbGVnYWN5LXRydW5rCisxMzQ3MCAyYjlhZjlkN2RhMmQ4YTdlYjQ1YWY4MTVjMzM3ZTRkZjQzNzU1NjI1IGxlZ2FjeS10cnVuaworMTM0NzEgZGEyMzYwNDRjZjZjOGE5ODJmYzI4M2U4MDRhOGU1ZTVkY2JlMTI4NyBsZWdhY3ktdHJ1bmsKKzEzNDcyIDMwOWQ4Y2Y4M2ExMTc5ODJhMTcxM2MyMGRlZTM5YWNkMGNhMWUzODMgbGVnYWN5LXRydW5rCisxMzQ3NCA1MGU3ZWIyMGJiMWQ1MWJhNTY5MjY1MzYxZDQ2ZDU5NzNkZTdlMmE4IHN0cmluZ19tZXRob2RzCisxMzQ3NSAyNTkyMzdiMjViOTM1ZjlkNzg0MzVjMjA5MWY0NjY2YjBhNDA2MmJmIGxlZ2FjeS10cnVuaworMTM0NzYgNzBjZjEzNjA5YWVkNjhhM2VhOWY5NmVkOWM4NDM4MGM2MDNkNDNjZiBsZWdhY3ktdHJ1bmsKKzEzNDc3IGZiYjRlZGI3MjAyY2M1ZTFmZTY1M2FiNWFjMWQwZWFhM2UwYzU0Yzggc3RyaW5nX21ldGhvZHMKKzEzNDc4IDViYTJlNGNlNThjYjRiYWFkMzUyYjI5NThiOTQxMWRmZDE5OTBmMGQgbGVnYWN5LXRydW5rCisxMzQ3OSA1NDgwOTIxYWU3ZjNmZWU2OWQ2NmU1ODQyMDg5YjZjNTk5MjE1MzA1IHN0cmluZ19tZXRob2RzCisxMzQ4MCA5ZDcxYzJjM2E2NzU2ZjI2ZTM0ZjQ2Y2ZjMzJkMTg4M2NmNTY0ZmFiIHN0cmluZ19tZXRob2RzCisxMzQ4MSBlMTQwN2Q2MzIwY2JiN2MxMDJmMzdmMmY5ODM0N2ViMDY2MzJjMDlhIGxlZ2FjeS10cnVuaworMTM0ODIgNmZmYzlkOGRjNWI5ODZhODgyOTExOTRiZDZiNzA4YmQxYjZjODc2OCBsZWdhY3ktdHJ1bmsKKzEzNDgzIDE3YzRkYmQzNmU2Nzc2NDQ4NDVhNTExOGEzZTNlZjc3MjU5ODllZmQgc3RyaW5nX21ldGhvZHMKKzEzNDg0IDc4Y2VmNTY3NmNjZjYxMmVmYTdkYTA3NzQ3YTRmMzg3YTk3N2I5ZDYgc3RyaW5nX21ldGhvZHMKKzEzNDg1IGFlODUwODEzY2I3YjQ4Y2M5NDNkYzYxNDg0MWUxZTJmOWNkZGNkZTMgc3RyaW5nX21ldGhvZHMKKzEzNDg2IGZmMGU1NzZlNzU4YTdiNGU4NWY0NTlmZmE1M2NhYTRhZmQxOTRjOTYgc3RyaW5nX21ldGhvZHMKKzEzNDg3IDFkY2M5NTZmY2U2NDlmNGY0YWVmZmI3YTJmYTQ4NzQwMTU1MzBlNzMgc3RyaW5nX21ldGhvZHMKKzEzNDg4IGVlZDVlYjViOWQ0ZjU5Y2YwMzg2ZjdmNGFkZWJjYjlmMzA2YWIwZTYgc3RyaW5nX21ldGhvZHMKKzEzNDg5IGRkZDIxNjAwM2JkMTg3MWQzNjQ1ZjI1OWEzYzY5NGNiYmQ5YzZlNjkgbGVnYWN5LXRydW5rCisxMzQ5MCBjYmJmMjk3YWVhN2E5Mzc5N2I4ZmQ5YWMxYjRmOTViMGMyYjM3MDMxIGxlZ2FjeS10cnVuaworMTM0OTEgYjJkNjlmNzUxMzgzOWE0NTMyOTlkNWQxMzg0MTkxY2NlM2UzYTA1ZiBsZWdhY3ktdHJ1bmsKKzEzNDkyIGVjNmM4YWQ5ODM0MTA3OTQ2M2FmOWY2Mzg0MDM4MTU0ZGE5MDA5Y2Igc3RyaW5nX21ldGhvZHMKKzEzNDkzIDUxOTY5ZmQ3M2M0YTdlN2NjYjY2MWE1Y2E1Mjc4N2ExY2M5NjY0NWUgbGVnYWN5LXRydW5rCisxMzQ5NCAyZWMwNGZmMmI5YjczMmY5NTI5ZGI4MWU1OTQzNjdhZGMzZmFmYzgwIGxlZ2FjeS10cnVuaworMTM0OTUgY2ZlZDI5NDkzZWQ2NTYxY2JlYWIxNzk2NTkzZTVjNmExYTA2NjIzOCBzdHJpbmdfbWV0aG9kcworMTM0OTYgMGYwYTY2YzFkZWFjYTI2ODhhZTRmNDRlZTY4MjIyOTZmNjk5OTc2NCBsZWdhY3ktdHJ1bmsKKzEzNDk3IDBmMjI5MmY1N2E4MzE3NDM2NjkyMGJhOWM1NzU3ODBiMGU5OTI0MGQgbGVnYWN5LXRydW5rCisxMzQ5OCA5NWQ3ODI4MTU5MDFkOGJhZTU2NTgyMmZmZjcwZmYxYzVjNTBkNWNmIGxlZ2FjeS10cnVuaworMTM0OTkgYjJmYmQ5YTVhMWI1NWMxMzJkNzI2ZDcwZWQyMGYxNmE5YmVkZTc2OCBsZWdhY3ktdHJ1bmsKKzEzNTAwIGFlOTZiMWExMjhmOGMxNjk4YTEyOTUxNmMyYmMzZDc5YmM5ODYyZTEgbGVnYWN5LXRydW5rCisxMzUwMSBmOTBlZDk2NjMxNmU4YzY5NDIzOTdhZmQ5ZjYzMDM2MDYxMDhiYjFlIHN0cmluZ19tZXRob2RzCisxMzUwMiA0Yjk2OTI2NWI5ZDIxYmNjYTg2MmQ0ODZmNWY3ZjBlMmM3NWQ1NWVkIHN0cmluZ19tZXRob2RzCisxMzUwMyA3MTEzODAzNzJiYzkxOGEyZmYwZDY5NTU5YWMwM2FlMmQ2ZmJiNDg5IHN0cmluZ19tZXRob2RzCisxMzUwNCAxN2VjMDkwMmVhZmEwNmNkNzQwY2MzNjIwYzdiZDViOTE1NjA3NzNmIGxlZ2FjeS10cnVuaworMTM1MDUgYmVmNDZlYTVlZjc1YzA0YzRkYzY1ZDM1NjJjYTg4Yzg0MmIzMGVkMSBsZWdhY3ktdHJ1bmsKKzEzNTA2IDM5ZjI0MmJmNDYyMjgzNjg3NmEyNmUzZWRlY2I2ZjFiYzQ0YTk1YjkgbGVnYWN5LXRydW5rCisxMzUwNyAxZGNjYmVlYWY3NmFjZWY0MzZjMTA0MDZlOTk4Yjk3ZTE4OWVhOWE1IGxlZ2FjeS10cnVuaworMTM1MDggNjNiNTMwYzAzMGM1NGIwMWU3N2ZjNTFkMDk4NjdjZjJiYmQwMjk5NCBsZWdhY3ktdHJ1bmsKKzEzNTA5IGM3M2Y1Mzc2MmY5YjBmMmYxMTI1MGU3M2Y3YzFkYzY2YjhkZTQzNzUgbGVnYWN5LXRydW5rCisxMzUxMCBlMzlhOWYxMjkxNjMyNmQ1MmUzZjYxZDJmZTJkZGRiODg2MDZlZWE5IGxlZ2FjeS10cnVuaworMTM1MTEgN2ExMjdmMTk5MmQxOTc1ZGRlYjkwNGNkNzVlMTYwN2Y4MzMxOTIyMiBsZWdhY3ktdHJ1bmsKKzEzNTEyIDZjYWZhM2Q0ZTIyOWU4YjBmZjUwYjQ5ODY0NmNiYjMwZjYyZGQ5OWYgbGVnYWN5LXRydW5rCisxMzUxMyAxMzQ2MmNhNmQ5NDc1NWVhYmViOGVhYjE2ZDFjYmRlYzFjNzU5M2Q3IGxlZ2FjeS10cnVuaworMTM1MTQgNDA1MDk5NWE2NjM5YmI4ODJjZTY3NGE0YmVhMjI3YjNiYTUxN2JkZSBzdHJpbmdfbWV0aG9kcworMTM1MTUgM2MzNTEyNTVmMTczYWE5NzMyMTM0NDc3MjU1ZGQ4MGEyNTk0NjBhNiBzdHJpbmdfbWV0aG9kcworMTM1MTYgNDZhNTYxNzczMjJlYjA2YWE0OWIxOTFiMWJlNjE0MzhmNzUyMzczNyBsZWdhY3ktdHJ1bmsKKzEzNTE3IDg3ZDNmOTFlNDRkNGQ3YzRjZTUxMjYzZWVhYTliY2I4ODIwNTU1MWIgbGVnYWN5LXRydW5rCisxMzUxOCAzZTA1ZmNhYWFlZDIxOTIxOGViYTg2MTI3YTlkZGEyMDZkMzg3ZDU3IGxlZ2FjeS10cnVuaworMTM1MTkgNzA4NjI4YjZjMDRiZjIyZTRlNzAxOGMyYzYzNjdjOTZiYmIwMWZiNiBsZWdhY3ktdHJ1bmsKKzEzNTIwIDBkMTg2YzEwYTcwZTI0YmQ5Y2I0Nzk1NWViMjhiMmRkMzBlNjljNGIgbGVnYWN5LXRydW5rCisxMzUyMSA4NGFiMTRkODU3NjM0MzBjM2RjNTFjMzcyM2NiZWI4MTQ0M2U2ZTAwIGxlZ2FjeS10cnVuaworMTM1MjIgZTY4ZTYwNmMxMzBmNTFhZTkwYWI4NTc1OWQ1Zjc0MDNmNGI0ZTdlNCBsZWdhY3ktdHJ1bmsKKzEzNTIzIDY5NjE1ZDUwZjU4YzAwNWQyZGY1OWYzNGNlNzRjYjFmNGE2OTY4ZTQgbGVnYWN5LXRydW5rCisxMzUyNCA4YTRmYzRkYTc2OGQ4ZWNjZWQ2YTM4MjE1Y2QyNDZkZjk3ZWQ2ZGNjIGxlZ2FjeS10cnVuaworMTM1MjUgZmNhYzY0MzJhN2RmYjNmNTE5NzhiNWUxZGY3Y2Y0MjRkYTdlZjE2NyBsZWdhY3ktdHJ1bmsKKzEzNTI2IDkyNmNiNWE1ZWUzMDkzMzU5N2UwOThhYTgyYTA5ZDExYzZiNWE3YjIgbGVnYWN5LXRydW5rCisxMzUyNyBlNTI3MjNhZjNjZDVlNmYxMGVkOTVkZWY4YjRkOTg0YmQ3OTNmYTFlIGxlZ2FjeS10cnVuaworMTM1MjggMDg2YjJiYzc1NzhmOWVmMmM1YzVjMDM2MDQzZWM5YjQ2NGM0YWIxNCBsZWdhY3ktdHJ1bmsKKzEzNTI5IDhjMTE0ZWRlMDU2ODYxZGQ1ZTI1YmEzMTE5YmY0YjZjM2Y5N2I0MDQgbGVnYWN5LXRydW5rCisxMzUzMCBjOGVkNWExNDQ4OGRlNmQzMjRkMTY3YTE1Y2IxZGNjZmM1MDJiOGQ1IGxlZ2FjeS10cnVuaworMTM1MzEgMDg3MmRhM2YzZjU2MTIxMDlmYzA2MzFmN2UyMGU2ODc1MTI5N2IxMiBsZWdhY3ktdHJ1bmsKKzEzNTMyIGI5ZjU1Y2MxMGFiM2YxMGFhNGI0NTM0ZTlkNzIwOTA2NWNlNDc2OTIgbGVnYWN5LXRydW5rCisxMzUzMyA0ODE4Y2I4ZTExMTAxZGY0MDBkN2I3ZTc3ZDMyYzI2MGIxNWE5ZDY2IGxlZ2FjeS10cnVuaworMTM1MzQgNDkyYTY5NDg5MDI4NmEyYWRjNGEyODZiMWYzNzY5MDViOWYyMDE4MCBsZWdhY3ktdHJ1bmsKKzEzNTM1IGU5NDQyNzM0YmM0OTczZDkyZDllYzQyMjMyM2NkODcyMGI0OTI4OTAgbGVnYWN5LXRydW5rCisxMzUzNiAzYjNjN2I4YWRlN2ZmYzg5NzZmM2I2YWU1MGE4NDQ3YmM3YWZhMGY0IGxlZ2FjeS10cnVuaworMTM1MzcgNDA3N2NhM2IyNjU2MzI4OThiY2RjZjQ3NWE5ZjdjNDU0ZTkwMzVhMSBsZWdhY3ktdHJ1bmsKKzEzNTM4IDJhMmU5OWFmMzgyOTE0ZTYyOTZiZWJiNzA5NjExNjM1ZGUwZmM3OTUgbGVnYWN5LXRydW5rCisxMzUzOSA2YzkyZGIzYTc3Y2YzN2EwM2I4M2RkNjMzZDU1ZjkyNjAyMDcwMmI5IGxlZ2FjeS10cnVuaworMTM1NDAgNDEzODVkNTBhMTBjNzQ2NTI0MzdkOGNlZjRiYTVmODlhYzUyNzAzZSBsZWdhY3ktdHJ1bmsKKzEzNTQxIDc0OTcxMWY4ODVjZDNlNTYwZWFlYThmMDVmYzEzMGZmMDYyYWM0YzMgbGVnYWN5LXRydW5rCisxMzU0MiBmNGM2MzE4NWNlMTEwODc0MTk0YjQwYzI5NGJjNzQyNDdiN2I2MjNhIGxlZ2FjeS10cnVuaworMTM1NDMgMzA4Y2UyMTgzOWQ2M2ZhMDE5OTkzMWRkODJjODFjY2RlOGZkZjAzOSBsZWdhY3ktdHJ1bmsKKzEzNTQ0IDYxMjdiNzM4NThiYzkxZjM1MzE5ODNlZTRmNzY4ODE3M2ZiYjhkNDIgbGVnYWN5LXRydW5rCisxMzU0NSAzYWRjMDM0MmQwOGJkMjVmNjgzZGIwNGE0MjhiMzZkNzc4MWRlZjhlIGxlZ2FjeS10cnVuaworMTM1NDYgMTE5ZTExOWZjZjVhYzBiMzcwNjNhNmE4ODdmOTUxM2ViN2NlYTM2ZCBsZWdhY3ktdHJ1bmsKKzEzNTQ3IDEyNmE5Y2RmMDU3MjllMTVmNDBjNWFkNTFkMzNjMzgxODM3MjU3NDYgbGVnYWN5LXRydW5rCisxMzU0OCBlNmFiZWRiYzc5YzY5ZWU5ZThkNDg5MWE4MjViZmU0ZDdkMGYzNDliIGxlZ2FjeS10cnVuaworMTM1NDkgMjcxYWYyOTdhYTNlYTc5ODUzNGI4ZmI2ZmU4N2I2ZTBmYmRmZWJkNyBsZWdhY3ktdHJ1bmsKKzEzNTUwIDMxZmQ0ZWQ3M2QyOWU1MWVlNDFiYjljZDg0NmFlNTEzMTBiNTg4ODUgbGVnYWN5LXRydW5rCisxMzU1MSA2NDlkYWFkNmNmNTE2N2ZkM2RiYjdiNWFhNzkyYjc2ZDNkNTU5ZWE3IGxlZ2FjeS10cnVuaworMTM1NTIgNzcxYTlhMTAwZDc1YmM4ZDcwOTZlMDM3OGY5OTM3MzAwZDQ2YzM5NiBsZWdhY3ktdHJ1bmsKKzEzNTUzIDM4MTllYjdjODM0YjM1OGU0MWFlMDBmZDAxYjZkNGM3YzczZTA5NjkgbGVnYWN5LXRydW5rCisxMzU1NCBmOWJhODAyMzk3NmQ2NjIwYTkyYTU5NzEzMDUxY2Q2Y2Y5YmM3NTM3IGxlZ2FjeS10cnVuaworMTM1NTUgM2JlOTM1YmUzNzgxZmNkM2Q2ZjAzM2YxMjhmNGFlZjhiNjhhMmE4YiBsZWdhY3ktdHJ1bmsKKzEzNTU2IDhiN2Y2NWIwZGIxOGEzNmM5ODRkNTk2MTNhMDU5N2IzZWE2NDJhODAgbGVnYWN5LXRydW5rCisxMzU1NyAzNjY4NGNlMGQ0MGQ2MzY5MGNlOTFhZGYwN2U3Yjg3MDgzZTQzM2Y5IGxlZ2FjeS10cnVuaworMTM1NTggY2IzNjYzMjExNTJjYjJlNjk3MWViZTQ2ZjI3MTBjYmM0YzViZTJkMiBsZWdhY3ktdHJ1bmsKKzEzNTU5IGI2YTQzOGNjMTk1Yjk5N2JhYzI0NDhhMDBjYTVhNjJjMjEwYjIwY2QgbGVnYWN5LXRydW5rCisxMzU2MCBhZDE1YTAzOTRmNzgyOGZkMWU3YjQ1OWU3MjY4NDRjMjViZDA2NDQwIGxlZ2FjeS10cnVuaworMTM1NjEgNWFkYmIzZjA0Y2JjMmY5Mjc4OGQzMDg2NmE4NDQzODg0YmE0YzE4MiBsZWdhY3ktdHJ1bmsKKzEzNTYyIDEyY2Y5MDk2NjgyMjMwMzYyODFiM2ZlYWQwZGM2YjhkZjc1ZTAzNjkgbGVnYWN5LXRydW5rCisxMzU2MyA1ZmE5NmQwNTAzMTlkODRiYmNjMGEyYWI0ZDNhNDY2MjM4NDRmYzE1IGxlZ2FjeS10cnVuaworMTM1NjQgOTc4OTZjMDllZjFiMzMxZTA5MTRiYzM3OTQxMjI1YmI5NWNhODBmOCBsZWdhY3ktdHJ1bmsKKzEzNTY1IDYyNmNhZWNhNTM1YTI0M2IwYzgxZWQ3NDQ2MzFlZGNlM2YxODRmNGMgbGVnYWN5LXRydW5rCisxMzU2NiAyN2M0OGRmMWNlYjc5NTkxZmIyZWFkYzhmYjRiOTc2OTM0MDE0NTRlIGxlZ2FjeS10cnVuaworMTM1NjcgZjc4ZjE2ZmVhNDU1N2Y0ZDRiYTgwNDc2ODljOWY3M2RjYzU3MDYzNiBsZWdhY3ktdHJ1bmsKKzEzNTY4IGNjMmViMDFhMTZmNDIzYmZiMDQ3MjJkMDgwYmJiYTdkYWUwZjQ3OWYgbGVnYWN5LXRydW5rCisxMzU2OSA4MTQ5OGM0ZTU2OWQzNDk4ZTQxZGI0ZGRjMjNlZTVlYTA1ZDdhOTIwIGxlZ2FjeS10cnVuaworMTM1NzAgNWJiNGY1MGRhNDc0YTViNDU3MjE0ZTJhMmRlNGZiYzg4ZDUzNjQyZSBsZWdhY3ktdHJ1bmsKKzEzNTcxIGZkNTQ2Y2JkZmI1Zjg2NWE5MWVlYTQ3ODM3M2Y0NGJmMWQ0MzE0ZWYgbGVnYWN5LXRydW5rCisxMzU3MiBhZWIxMGNjMjMwMGQ2ZTZhNWM4NDAxN2JkZDJlYTMyMGM4ZmFiMjJhIGxlZ2FjeS10cnVuaworMTM1NzMgMjIyYWVlOTZkYzQyNTEwYThhNzdkMDdiOWRkMmViZTk1YTc4YzIwNyBsZWdhY3ktdHJ1bmsKKzEzNTc0IDRmNTFlOTdhNmVkZjVkNzhhMDlmMmZjZjM3ZGZjZDg1NjIyMGM3MzIgbGVnYWN5LXRydW5rCisxMzU3NSA1YTgyZmI0Zjc4ZTU5NGNkZjhiOGYwM2JlMDcxM2M1MTk3Yzg4MmFiIGxlZ2FjeS10cnVuaworMTM1NzYgMjdmYmIwOGY4YzM4ZGNhZTc0MWZlOTFkNmEyNmFlOTM5ZGZkMjU0OSBsZWdhY3ktdHJ1bmsKKzEzNTc3IDI1Mzk3MGEyYzA1ZDY2NDU1YzkxZjdhYzRlYjc5NjM2NGFiNzQ0ZmIgbGVnYWN5LXRydW5rCisxMzU3OCAyNTZiODc4Njg5ZjNiMWU0YTA4OTk5M2Q0ZDk4MDRiOGExMzM3OWM2IGxlZ2FjeS10cnVuaworMTM1NzkgYjNhY2Q1NjUyMGNkOWZhZjcyMzIxZTM3MzJlMzdlZTBlZTYwMTgyZSBsZWdhY3ktdHJ1bmsKKzEzNTgwIGJjYzBiZTdjYjQwODAxZGIxYTBhYzhlMGY4ZTUzZTQwNzdhZDlhNWYgbGVnYWN5LXRydW5rCisxMzU4MSAxMjA5OGE4YTk1ZWNiOGI1NzM3YzA4YjQ0YTUyYTlkMDUxMzgzYjNiIGxlZ2FjeS10cnVuaworMTM1ODIgNzllZTZkYzkzZDBlOWUzY2JkOWY4NWRiMjk5N2Q5MWQxZWY0MTAxOCBsZWdhY3ktdHJ1bmsKKzEzNTgzIDk2MzFmOTcyNmE3MDViNDkwNzhmNjI5N2QxNzUzMDM1Mzg4NGI0NzcgbGVnYWN5LXRydW5rCisxMzU4NCAwN2IwNzM3NmNhNzI4OGM0OTMxNGViNWRjMjNjYmU5ZGM1MWIxNzAyIGxlZ2FjeS10cnVuaworMTM1ODUgOTAyMzE2YzcyYjQzZjk1M2UwZDNjNDlmZWY5Nzk1ZDE4ZTk1YTA3YiBsZWdhY3ktdHJ1bmsKKzEzNTg2IGUzZGRiODc2MTYzNzFjYmI1N2I3Yzc0OTdlOTdkOTc2MDQ3NDIyMzUgbGVnYWN5LXRydW5rCisxMzU4NyA0OWU4ZGUwYjVlYTc0YTg1NWJiNTQ1NGIwN2Y0ZWY3ODFlNGRlODU2IGxlZ2FjeS10cnVuaworMTM1ODggN2VkNmZiYTgyNjVjYjc5ZjYxMTdlZjdmOTVjYTk5ODFiMjAxZmI5NSBsZWdhY3ktdHJ1bmsKKzEzNTg5IGYxMTE0OGM1ZmJlZGNjZjJiNGFhMzIyN2EwYTc0NDkyM2ZjOWNkNzggbGVnYWN5LXRydW5rCisxMzU5MCBkNmNhOTEwNjNjZWM5M2NiZWJjN2Y4MmY1OTYxM2UzM2UwYTZkMjQ3IGxlZ2FjeS10cnVuaworMTM1OTEgZjUyNmRiOWE2Y2Y4MzZkZjAxYmY4MzdmZWQyZTE0NDJhZDYyYmY0NyBsZWdhY3ktdHJ1bmsKKzEzNTkyIGRmYjVhZGQ2ODRjM2U4MTIxNWQzNWY2OTQ2Y2MxNWNmODI2NzdhNTMgbGVnYWN5LXRydW5rCisxMzU5MyA2MjgyYWNlMjc5NWUwNmNiYzVhMzA2MjRkNDY1NmU4MWJhZDViZmMxIGxlZ2FjeS10cnVuaworMTM1OTQgYmFlM2ZiZTJiNTkxYWY5ZGVhM2I2MTRjODBjZWRmOTliZWE4NjU3ZSBsZWdhY3ktdHJ1bmsKKzEzNTk1IDBiNjU4MzVlMmIyOTA5ZDY1YmUyYmU5YTQwNjJhZDMzNTM2M2U4MDQgc3RyaW5nX21ldGhvZHMKKzEzNTk2IDhlNGRkNmExNjFmZmI3Y2M0NzgwZTE3ZjdjNzhiZTYwMzAyNmFkNzkgc3RyaW5nX21ldGhvZHMKKzEzNTk3IDBkZDUwYTcwYzQ3ZTIyZDYyZjgxMGM2NmZhZWMyZDlkZjk1NWE5ZjIgbGVnYWN5LXRydW5rCisxMzU5OCAyZmQ2NWQwZjNkNDE1MDgzY2MxZjczMGViODJkOGIzMjkzNWI2MTA1IGxlZ2FjeS10cnVuaworMTM1OTkgOWRkODE5ZDk5MzI2MzkyNmMyYTRmNGVhYWY3ZmU3MmJjYzZhYTUwMSBsZWdhY3ktdHJ1bmsKKzEzNjAwIGE4NGY5ZDM5OTlhZTg0NjU5NGExMzQzZGZlOGJiNzJhMDAxYWZmYTYgbGVnYWN5LXRydW5rCisxMzYwMSA2NjEzZGZkNzM5MTcxOGNkYzVmNDE0M2FmNjEzYTA0YTFlMTJhMDcwIGxlZ2FjeS10cnVuaworMTM2MDIgMzZlMjU4YjU3NzUwNjY5M2M0MTIxMTg4NjZjNzg0NzMyY2Y3MTExYyBsZWdhY3ktdHJ1bmsKKzEzNjAzIDRhMWQ2YzdiMDk1MDFmOTNjNzhlNTJiOWJlYTRiOWQ2YmZhNWFkOTcgbGVnYWN5LXRydW5rCisxMzYwNCA2MTkzY2MxNDViOGM3YWQ4ZTFjYzk3ZGU4ZDE5NTkxZDBjOWQ3ODFiIGxlZ2FjeS10cnVuaworMTM2MDUgZDFiNDhlZTE0NjAxZjhhNTQ0NjliNTE2NTU2YTg5YmQ0NzU5MDQ5ZCBsZWdhY3ktdHJ1bmsKKzEzNjA2IDg3YTM5MzVlNjZhYWNkY2IxZDQ4ZjM1N2Q4NDZkYTc3MzAzZDdkMWQgbGVnYWN5LXRydW5rCisxMzYwNyAzZTVmNjk2NGNkMzMxN2IwMmQ0ZTQ2NmVkYTFlZmFiMDc5ZjExZTNjIGxlZ2FjeS10cnVuaworMTM2MDggNzYwMDhmOGEwZTVmNmNkZTE3MTVmZWQxZWQ0NjQyNTg2ZGJlOTUzOSBsZWdhY3ktdHJ1bmsKKzEzNjA5IGQwNDYwOWEzN2RjMTE2NjNiMTYyNDNhYmJiNWZjYTA0ODgzODNhM2MgbGVnYWN5LXRydW5rCisxMzYxMCA1YmU5NDA2YmJiMDVjYTExMDM3NWNjODVhY2Y0MzA2NDEwYWZiOGZhIGxlZ2FjeS10cnVuaworMTM2MTEgZDQ1MWEyMTFjMTZhM2Q2N2Q4ZmZjYjFkOTQ3MjY0OGNhMDkxMGZjNyBsZWdhY3ktdHJ1bmsKKzEzNjEyIDI1NjczODg0YTNkMGYzY2QyNzM4N2Y5MjE1NWNiYjFiZDFkMzRkZDcgbGVnYWN5LXRydW5rCisxMzYxMyA4NDYxMmE1Njg4ZmM5M2MyNGUxZDVmMGQ0NjY2M2ZhZDBhNjQ3MzIwIGxlZ2FjeS10cnVuaworMTM2MTQgZGM2YmUwZWQzOThjZmQzNzY4OGM2N2FiNGQ1ZmY3ZmNiMGVjMjI1MyBsZWdhY3ktdHJ1bmsKKzEzNjE1IDQ0NjNkZDdiYjNlODk1ZjNlMDU5YzdhZGRkOWVjYzNhOTlmMGQ4ZjMgbGVnYWN5LXRydW5rCisxMzYxNiA0YTdiMmI0ZDE2NjlhZWY1ZjBkZTljNzcxNTRlYTgzZjdkNjlkZjNkIGxlZ2FjeS10cnVuaworMTM2MTcgNDdlMDAzYmQzNWVkMDUzYTg5ZjU5ZjNiNGNkNzQzN2Y4OGU2MjhiNyBsZWdhY3ktdHJ1bmsKKzEzNjE4IDRiNTNmNGEwYTk4YWNkMWJmY2RmYzYzMDMzZGY1Yjc1ZTAzZTE3NDUgbGVnYWN5LXRydW5rCisxMzYxOSA3MDI5ZTE4YjRmMTFlNzdjNDk1NzhhZmFiZmM0ZDNlN2E2YzI1N2NlIGxlZ2FjeS10cnVuaworMTM2MjAgMmUwMGI4ODkwMzVmMmY0NjdmOGE0MGY4NDg3NDFmMTk1MjQ2MzNkZCBsZWdhY3ktdHJ1bmsKKzEzNjIxIDcyOGEyNTAwZWE0MmZiNWZhODMxYmZjOTBjNTVlOThmYmQ0N2M0Y2IgbGVnYWN5LXRydW5rCisxMzYyMiAxZDRmNWY0OWRlNGVjZjM4ZjE5NjA5YzhjZTNkOGZjODJhZWYxNjJiIGxlZ2FjeS10cnVuaworMTM2MjMgNzY5YzZiNGM1Yjg4N2MzNGU3NTNmZjU2NmU4OTQ3NGIzOTBlMzA0NSBsZWdhY3ktdHJ1bmsKKzEzNjI0IDRjNzU1OTZlOTJmNGY4YWRlZmJlMDNjYWVjNTM3N2Q5ZDgzZjdhNjggbGVnYWN5LXRydW5rCisxMzYyNSA5YzI5MmFkOGE2ZDQ2M2MwMzRmNTQyZmFlMzA3Y2U5OThmOGRiNTFhIGxlZ2FjeS10cnVuaworMTM2MjYgNzFlZDBhMmMyNzlhNjA1ZjFiZGQ5OGY2NzdiZTU2NzNjZTVjZGEwYSBsZWdhY3ktdHJ1bmsKKzEzNjI3IGZhMmUzZDA2Yzc5MDJlMTZiZDdhMjBlNzNiODUzOGMwNDM0NTQwMDEgbGVnYWN5LXRydW5rCisxMzYyOCA4NzJhODJmZDBlYzQxZDQ4NzRiMjUwZjQwMjQyMGY1MDc3YjI4YWQ5IGxlZ2FjeS10cnVuaworMTM2MjkgYWE2YzVmODZkZjg3YTRlNWViM2NkNmQxNmI2OTllZWNhYzE5NTkwMiBsZWdhY3ktdHJ1bmsKKzEzNjMwIGZiZjQwZDdmZDRkYWMyNjVjMTIxNDM3ODNhN2VkZDU1ZWNkYTJkM2IgbGVnYWN5LXRydW5rCisxMzYzMSA2N2JkMmFhZTI3MzJlYWE1YTFhOWQ2NjE3M2Q3OWJkNzQ0ZjM0ODk3IGxlZ2FjeS10cnVuaworMTM2MzMgMDY4ZmJmNGY1NThhMjMzYzU0NmM2YTM3YTMxNmI4M2ExZWQ1ZTQzYSBsZWdhY3ktdHJ1bmsKKzEzNjM0IDVlODQ4YzNlOWM1YzcxYzQ0ZTQzMmQyYzQ1NTY5NjhhYjY5NTIwMjIgbGVnYWN5LXRydW5rCisxMzYzNSAxNDM3NGJhMzQxYTY3YThmNjU1ODVlYWMyOWJjYTdlNDZhY2NjZmUzIGxlZ2FjeS10cnVuaworMTM2MzYgMWNkZTUyMzBjNTA4MTllM2QyNDczY2MxMGQyNjcxNGJhMWI4YzdmNyBsZWdhY3ktdHJ1bmsKKzEzNjM3IDZiZjYyMDM3NTk3NjM0OWE5NmRlYjE0NjY1NmY4MzcxMzFkNDdiMjMgbGVnYWN5LXRydW5rCisxMzYzOCA5OTI4NmRhYTkwMGRkNDhlNTQwZmI3OTJjYTQ2OWM0MWFjYzg3NDc5IGxlZ2FjeS10cnVuaworMTM2MzkgMTJmMjA4ZGI0MmIwZTkyZmFjNmE4ZjkzNzZmMzI0YjUyMGQ2YmJlMiBsZWdhY3ktdHJ1bmsKKzEzNjQwIDc4ZjViZjE3OTc1MDRhOWU2Njk1MjVmYjBiNTNlYjJmNWFlYzA1ZmEgbGVnYWN5LXRydW5rCisxMzY0MSBiZThlYzgyOGMwNzIzNzI4YzI3MTk4YmY0MTdjMzIyMDMxOTM4Y2JlIGxlZ2FjeS10cnVuaworMTM2NDIgMDEwZTdiNjlkODZiZjBlMGYxYjczODk0YTNlOGEyZjIxMWUzMTZkNCBsZWdhY3ktdHJ1bmsKKzEzNjQzIGRjYzA5MjI4YTNkMjQyMjNjNzkxYTFlZDQ4ZjA1ZDViN2ZjYzk3NjQgbGVnYWN5LXRydW5rCisxMzY0NCA5MzlkOTE0YWY1ODE2ZmZjNDZjZmY3NzI1NTY5MTliNjQyMGY2YjMyIGxlZ2FjeS10cnVuaworMTM2NDUgZGE5YzgzYjVmYjA3NDVlY2FhYzRiYjUyMzQ0YjhiMmJjZGRjNDk3NiBsZWdhY3ktdHJ1bmsKKzEzNjQ2IDNiMTk4MGRiNGFlOTkwNDZjZWQyYTgwYzMxMzE1NGVjZmI3OTBjZGYgbGVnYWN5LXRydW5rCisxMzY0NyAxNjRiNGJjNGRkZGQwZjgyOTU4NjVkY2M2NzIxYTJiMDY5OTBmMDg4IGxlZ2FjeS10cnVuaworMTM2NDggM2EzOWViZTI3NmM4ZjRmOGM4OTc3OGYzMzMwMDBjZTA4YTVhNTk2NSBsZWdhY3ktdHJ1bmsKKzEzNjQ5IGQ0MjNmNTc4NDRiMjZiNzJiODFkMmVhZjI2ODU3ZjQyMTFkM2Y1M2YgbGVnYWN5LXRydW5rCisxMzY1MCAzMDZiNDlkNjgyMzM3Y2I5NTZkMDVlYzJkZjAwOTZiZDhjZmYxYzFhIGxlZ2FjeS10cnVuaworMTM2NTEgMmViMjg3OWQ1NjdmNGIzMTY5ZjJhZGE5YTNjOGZmMDNhNjIyMTM3ZSBsZWdhY3ktdHJ1bmsKKzEzNjUyIDdjMjM5NzExMjIxYTI0NzQ1ZjNiMWU2MGY5MzFmNGI2MDYwZDg0MWYgbGVnYWN5LXRydW5rCisxMzY1MyA0NDJmZmU5YTU4YzEzYzk3MDFjNDdlYTczNjZjZDA5YjQ3MDVlNTYwIGxlZ2FjeS10cnVuaworMTM2NTQgNWU3NmM5OTY1ZmU4MzkwMWUwYjE3NzI1ZmU4YjgwZmI2ZDdiNjI4YiBsZWdhY3ktdHJ1bmsKKzEzNjU1IDlhMjAwMzhmMGI5OTdlZjBkYzIwMGNmZjE1MTBhZmQ2ODZkMWVhNTQgbGVnYWN5LXRydW5rCisxMzY1NiBhNGI3MjQyYTRiNzRjYmY0N2M5YjZjYTYwNDcyZWMwNTFhZjZlZTg5IGxlZ2FjeS10cnVuaworMTM2NTcgMWM2ZmRjOGFkYWIwYTRjNmZkYzVkZDE2ZWM2M2I3MGMwOTBhYTE2ZCBsZWdhY3ktdHJ1bmsKKzEzNjU4IGY3MjliYmM0YTlmMzEwZjlmN2VhNWRmZjk4OWQ1YmJkM2E4YjRhZGMgbGVnYWN5LXRydW5rCisxMzY1OSAwZDg4ZTBkMjE4NGY4OTM5YWJkMGQ3ZDBmMDQwMWNiNWY5M2Y1OTM5IGxlZ2FjeS10cnVuaworMTM2NjAgNDFhNDY5NzhhNDQ0YTcyOWQ3NzJmMTg3NzE3ZDI2MmJlM2YxMWNjNyBsZWdhY3ktdHJ1bmsKKzEzNjYxIDJjNTg1NTI2NDQ3ZTk1ZWI4ZjQzZWY5YzNiYmFjMGZhMzRhNjlhMDcgbGVnYWN5LXRydW5rCisxMzY2MiA4MDQ5ZDJkZTFlNzk0YWFjNDY2M2ZmZmNiMjQ4YmI4ODI0YWU1YzY5IGxlZ2FjeS10cnVuaworMTM2NjMgODRlMzRkODEzOGFjOTA0MzUxZmY4ZDU2N2EyZTNmMWE5Y2I5ZTBmNSBsZWdhY3ktdHJ1bmsKKzEzNjY0IGMyYWM4OTY5MjZjYzRhNzk4NGU4NTI4ZDkzNzU3YTE4ZjJlOTZhMDIgbGVnYWN5LXRydW5rCisxMzY2NSAwYTVhOGY1MTNkMTM2M2E3YTc5MzFjNDk2MGE0ZTBiNjgzMTc3ZDhjIGxlZ2FjeS10cnVuaworMTM2NjYgYjU2YmRhMTkwMGZjMGVkMDBjNzliZDZhYmIzYTRhYTk0ZDBkNDhjZiBsZWdhY3ktdHJ1bmsKKzEzNjY3IDJjM2FmOTBmM2ZhZWI0NTU2YTUzMTdmZDIxYzMzZmJlN2E1YzhhMDEgbGVnYWN5LXRydW5rCisxMzY2OCBjZGZhOWNkNGU3MmJiMjZhN2Q1YzQyNTQ3MTg4NDc0OWIzNDZmZDM4IGxlZ2FjeS10cnVuaworMTM2NjkgYzA5NTQxMTI4YzVhNDFkZTM1NmY5NDBkNjAxZjZiODg2MzFmNjQ2ZCBsZWdhY3ktdHJ1bmsKKzEzNjcwIGM5NWUxZmQ4N2FmMGYwNjk2ZmIyNzk3Y2QwY2M1YTI4OGRmMTNiNGUgbGVnYWN5LXRydW5rCisxMzY3MSAyYjdjNDNkNGI0NjliMGYyMjIwYzk1YTY2YTBmMTFhNGJlNjhhNDJkIGxlZ2FjeS10cnVuaworMTM2NzIgMWRiYzVlNjk3OGY5ZGQyZjU4ODk0MmI0MjFiZjg0MGYwNDE1YzBkMSBzdHJpbmdfbWV0aG9kcworMTM2NzMgNDFmY2I0MGU4NDFmZDZhNjMxM2NlZGYyZWNhYWJkNzU2MWJlNjk5YSBsZWdhY3ktdHJ1bmsKKzEzNjc0IGQ5OTdlMjdlMzMxMmJjMGRjNjZmMjcwOTk1ZDU4NzMxZjg5ZjNjMzEgbGVnYWN5LXRydW5rCisxMzY3NSBmNjJlNDY1YzRkMDE0YjhlMzZiODUyNDhmYTgxMjlkZTA2OTE4YWU3IGxlZ2FjeS10cnVuaworMTM2NzYgYmJkMDM1ZTVhOTcyY2ZhMWVhYTRlZmFjN2Y0NDNjMWUwYzM2OGQ1ZCBsZWdhY3ktdHJ1bmsKKzEzNjc3IGI4YTI5ZGU5ZWQ1NGIyNDNhYmQzNDQ3MDk5NWI5ZTQ2NmJlMGY3MDEgbGVnYWN5LXRydW5rCisxMzY3OCA4NzhhYzBjZDBlNzY4MThlMjU2M2RlZWUzZTJhOTE2M2UyOWI4OGVkIGxlZ2FjeS10cnVuaworMTM2NzkgZjRlZmJhMzIzMjBlYzQzYTgxOTRjMjFiNThhMmNkODkzNWQ1YjEzOSBsZWdhY3ktdHJ1bmsKKzEzNjgwIDgzZjM5ZmM4NTc2M2JlZjQyOWI5ZmYyNWEwOGUxYzU5ZmNhNzNiYjAgbGVnYWN5LXRydW5rCisxMzY4MSAzNmE2NTQ2MmMyNjlkMGNjZDI1YzQxMmVlYmY3ZDZhZTBjODU4NDBjIGxlZ2FjeS10cnVuaworMTM2ODIgMWE2OGM5NzJkMDg0MWUzNWQ0ZTNlMTMwMzkxNTQyMTg3OTA0Njc4MyBsZWdhY3ktdHJ1bmsKKzEzNjgzIDY4NTJmZjAzMDMwODg0YmRmZTc1OWYyZjM0YzQxYTI0YzVjOTc3MWMgbGVnYWN5LXRydW5rCisxMzY4NCAyYzRkNDhlMzFiZDVlNzhhYjcwOTNjMmZhYTM4ZTk1MmQxZDNlODZlIGxlZ2FjeS10cnVuaworMTM2ODUgNDNjY2JjZjQzODRmMTIzMTEzMjAyZDlhYTZhODlkY2U2ZjM2Y2JkYiBsZWdhY3ktdHJ1bmsKKzEzNjg2IDdjZTViYWU3Zjc2NWE0NmVjZTE1NWQwZTQxNjUzYjkyMTJiYWY0ZTYgbGVnYWN5LXRydW5rCisxMzY4NyAyZjEwMjZkYjgyMjgwYmVmZTdmNjhiZDNlYTU5NTkxOTllZjBjY2ZiIGxlZ2FjeS10cnVuaworMTM2ODggYWVkMTlhZjYwZWEzMjUyYzhkZjBjYWVlNjU2ZTRmYzJkY2U5YjYzYyBsZWdhY3ktdHJ1bmsKKzEzNjg5IDBiYWZmMTM1YzRiNGUxYjA4YmEwYWU3OGJkMDY0MWJkM2Q0YmY5YTAgbGVnYWN5LXRydW5rCisxMzY5MCBkMTU0YWU3Y2EwMTRmNzkxMzBlNDYwMjk0NmJhZjczM2EyOWFmNjQ4IGxlZ2FjeS10cnVuaworMTM2OTEgM2M4YzU1NzYxMDljMzU3ZjFmNmI1NDk5OWIzZGM4NDUxZmE3NDFkYyBsZWdhY3ktdHJ1bmsKKzEzNjkyIDZlNmJkYWU4ODA4YTUzMTk0NTRiN2U2ZGRiYzZlM2JmMWM2MjI1NzcgbGVnYWN5LXRydW5rCisxMzY5MyA5OGU1OWM4NGVjMzFhM2ViZGJmODYyODI3OTZlMTg3MjYwNmY3YTlkIGxlZ2FjeS10cnVuaworMTM2OTQgYTRhYmEyMDUwMzhlYjVhMmFiOTkyNjNlMDJmMjMwMWY4NzQzOGZiZCBsZWdhY3ktdHJ1bmsKKzEzNjk1IDNlMGM3ZTY5MzliZDAyYTY3NTUwY2ExMDUyZDgwMmRhMzRiNGQ0ZWUgbGVnYWN5LXRydW5rCisxMzY5NiAxYTI3ZGQwNmNjZTE2OWRhZGMyODFkNmFkYzQ0MTcwMTgwMzMxMmZhIGxlZ2FjeS10cnVuaworMTM2OTcgNjE3ZTEwZmM1ZDhkMzI4ZmEwMDhmZDEzN2M3Yzk0OWMxYThhZTA5YyBsZWdhY3ktdHJ1bmsKKzEzNjk4IDVkYTU3ZWE1ZmM2NDE4MTNiNWYyNTA2MDU3ZmQwMTE3ZDRiNjg5ZmUgbGVnYWN5LXRydW5rCisxMzY5OSAzMjA2NTIyNDJlNmJhMDZjNTE1YTNiNjhlNTA2OTJmZjcyNGU5N2MyIGxlZ2FjeS10cnVuaworMTM3MDAgMDQ5MjlhYmNhZDg2YmNiNTI3NTQ3OGVkMGNkZDVhYzk2OWE1NTA4NiBsZWdhY3ktdHJ1bmsKKzEzNzAxIDhlNzRlZDE1NGY2MDg3ZmVjNzJmNWU2Mzg0YzdjNzYwZjcwNDQ3MjUgbGVnYWN5LXRydW5rCisxMzcwMiBmNzY2ZmI2Zjg1MjY1YTQ5YjgzOGI3ZTNkNjVhNmExYzY4YTgxODI0IGxlZ2FjeS10cnVuaworMTM3MDMgMzQ4NWE3ZTQ2MDBiOWZlZGYxOGU2NTVmYmY4YWU5ZGU1NDY0NjEzZCBsZWdhY3ktdHJ1bmsKKzEzNzA0IGZhYjgxZGY1NjZkMGNmY2U0NjRiZmE4NGM4YjUwNGViMWM1MzA0NTAgbGVnYWN5LXRydW5rCisxMzcwNSA2NGIxNWU5MDkxYTkyYmI2MzU4OTdjZmY5OTg3NTdjMzU1MDRiMjI2IGxlZ2FjeS10cnVuaworMTM3MDYgNWY1ZmMxMDMxOTU3YWE1YTQyZmUxYjYyN2E0M2M4ZTI3MzU2MWRkMiBsZWdhY3ktdHJ1bmsKKzEzNzA3IDI0NWQyYjYwNTAzNmQxNGYxNDk0NjdjODA5YjhjYTM1YTFkMmQzY2YgbGVnYWN5LXRydW5rCisxMzcwOCBkNmFiNzJjYjE2MjU4ZTljMTExMWE1NThiZmE0ZDZlNzUxZDVlYWQ2IGxlZ2FjeS10cnVuaworMTM3MDkgODE3NWJmZGZiZWE5ZTQwZjgxOWYwZjZjZGU2YTlkNzMyZjZhZWFjYSBsZWdhY3ktdHJ1bmsKKzEzNzEwIDZjMTMwOWQ4MmNiMTE0MWZmZTMxYjZjZjQyMTNlZWY4NWJhNWJhYWIgbGVnYWN5LXRydW5rCisxMzcxMSAzNWUwZDAzZjJiMDJmOWY4YzVkZGZiMzEwYWJiOWFiY2ZjNWZjMjA4IGxlZ2FjeS10cnVuaworMTM3MTIgMWUwYjE5NjdiZTdmM2U1ZDk0YjI4YzRjZDRmNTgwNTE2YTAzNDIzNCBsZWdhY3ktdHJ1bmsKKzEzNzEzIDkzOGI0NmZhNjM5NGU4ODhlM2RiZDc4YzA5Mzg3MjU2NjQ3OTRhNDIgbGVnYWN5LXRydW5rCisxMzcxNCBkYmI4MDgzZjBjZTcxYzM5Y2MyMjZkYjI5NjE3ZDBjYWNhNjk0MWIxIGxlZ2FjeS10cnVuaworMTM3MTYgMjRjNWJjNmJmY2FhZmU4ZWU1YjVmNjY5NGQ2NDdjMWQzZGM1NTBlOCBsZWdhY3ktdHJ1bmsKKzEzNzE3IGY2ZTZjZGJhZGJiNTA0ZTBjMzJiZTBhNmY0NjVhNjVjOTM4Y2ZlMzEgbGVnYWN5LXRydW5rCisxMzcxOCAxMjNjMzhkYTZmNDM4M2Y4M2ZkYzY5YzNkNWQzZTY2ZjkwODk1YWFhIGxlZ2FjeS10cnVuaworMTM3MTkgZWNlZTlkZTc5YjFlZjU3MzRmOGYxZGNmY2Q2MGUxY2EzYWFiZTVkNSBsZWdhY3ktdHJ1bmsKKzEzNzIwIDNkNjZhMTk3MTkzNjk4MGE1YzBjOTQxNjA4M2UzYmQ5ZDU5N2Q2M2IgbGVnYWN5LXRydW5rCisxMzcyMSAwMWM1MWIyNjhjMDQ5NjFmZjJjYTVlNmJkZmU0NWFhYTk3MjU2ZDdkIGxlZ2FjeS10cnVuaworMTM3MjIgYzcyMDMxOGUzYzQ5MjA3ODE3ZGZkYjBjMzY5YzEzOTk5NTUyZTE0NiBsZWdhY3ktdHJ1bmsKKzEzNzIzIDg5OTYxYjY4MTNhYzM5MTliNDdhYjkyZWFhNTg4YjAyOTk0MjBmMDQgbGVnYWN5LXRydW5rCisxMzcyNCBjNjI3NzM0ZWFmOTI5YTc5YzYyYTMzNWE5ZGE3ZjZhNDE1MGYxNjhmIGxlZ2FjeS10cnVuaworMTM3MjUgYTgxOTVmYTMyOWFjMzliZmMyYTM5MWZiMmQxYmNhNTU1MzFiNGMxZSBsZWdhY3ktdHJ1bmsKKzEzNzI2IDFjOGU0MjI3ZDk4NzkxYmFhOWQ4MDk5OWNkNGM1ODM1ZDY2NTQ5ZGQgbGVnYWN5LXRydW5rCisxMzcyNyA0ZmRkMzM5MTRlZGFiNDgyMDI5NjVhMjhiOWNlMTE0MGFmYjkyNzViIGxlZ2FjeS10cnVuaworMTM3MjggZThiMjRjZDE3ZGYyM2Q4NzJlMjZlNzU2YmZhMzZhM2VjNjdkNTcxMCBsZWdhY3ktdHJ1bmsKKzEzNzI5IGM1MmZiYzZiZDM4YTkxNzAxNWIzOTJkOWM5ZTAzYTk0ZGU2MDAyMTYgbGVnYWN5LXRydW5rCisxMzczMCBiY2EyZDE0ZjNlMzY1MGY2YjE3ZDQyMzNmOGMxZmNlNTc4OTRjNGUzIGxlZ2FjeS10cnVuaworMTM3MzEgYmY1NjViMThjZmRjNGZiYWQxMGYwN2VkYThmOWEzODJhMWEyMGVhMCBsZWdhY3ktdHJ1bmsKKzEzNzMyIDdlZWViMGQyYjBhNDAxYjE4NzI4MjdiMDVhNTY2MGZiNjY3MzdlMTUgbGVnYWN5LXRydW5rCisxMzczMyA3MWUwYjQ1ZDU1OGMyZjY5ZTRiMjM3MTc1ZmNiYjJjMjkyNDVlNmM3IGxlZ2FjeS10cnVuaworMTM3MzQgOTE1N2M2ZGE3NjE5M2ExNTNhNDZhZmRkZjdkZWI0MTAxNzk1NGU5OSBsZWdhY3ktdHJ1bmsKKzEzNzM1IGRlOGZmZDJlNzFiNWZhZWFkNjcwMjJmMzgwYWY5YWU2N2JjMTZkZDYgbGVnYWN5LXRydW5rCisxMzczNiA5OGQ0NTczODNhMmQzZjRiMDVmYzc3YTZhMTcyNGVjMzdkNzdmYzg2IGxlZ2FjeS10cnVuaworMTM3MzcgYzM4OGYwMGFmZmU3ZGNiM2NhYTFmYmNmMzZjMzdiNWUyM2IzOTYzMSBsZWdhY3ktdHJ1bmsKKzEzNzM4IDVmZTI2M2ZiNjc0YWIxYTAwNjdlNmNhYzA5MGM0NDA2NjVhYTE3ZGEgbGVnYWN5LXRydW5rCisxMzczOSBhOGI1YTViMzkyZmJjNTJjMDk2ODFlMGNhMmM1YTM1Nzg0YTM0MzZlIGxlZ2FjeS10cnVuaworMTM3NDAgY2Y3Y2Q3YjA0ZmE2NTlhNWMyMTNhMjgxOGUwZDc3M2ZiMmZjZDM0MCBsZWdhY3ktdHJ1bmsKKzEzNzQxIGQ1ZjQ2ZjU5OTU4NWJiNjg0NWY3ODJlYzdlOTc0MWVmN2UxNzJjYTMgbGVnYWN5LXRydW5rCisxMzc0MiBkNWIzNzM0NDBmOTlhMzgyNWVjYjg3YTQ4MDU2MDNlNzM4NTY0NTYwIGxlZ2FjeS10cnVuaworMTM3NDMgZWFmOWVlYWIzYmNmZjkxZGNkZGUxOTg5ZmY1MTYxYTNhNmNhMTc2OSBsZWdhY3ktdHJ1bmsKKzEzNzQ0IDk2NTAxY2MzYTY2M2I0Nzg1MzI1NDdjMDBiNmNlZjVhZDg3ZjZmZTMgbGVnYWN5LXRydW5rCisxMzc0NSBiNWJkM2Y5NzlkYzk4YzMxY2FiNjVlNWQwN2Q3YmZhMTk1NjUyOGE3IGxlZ2FjeS10cnVuaworMTM3NDYgNGFhZTVhZmUxZjE0NDQ0MmY1NmVjY2JkMjQwNzcwYzg1NzIyMDI1YyBsZWdhY3ktdHJ1bmsKKzEzNzQ3IGY0MDZlNzhlYzEwYmNkZjZjZWZkOWNhMjVmZDk5ZGIyNDY0ZDA0YTQgbGVnYWN5LXRydW5rCisxMzc0OCA0NDVjYmU4ZGI4ZjZmNDdlNjE3NjJlYmNjNjc5YzFkZDZiNjE3NTg3IGxlZ2FjeS10cnVuaworMTM3NDkgMmQ3MzMxZjRkZmUzNTFiYzlmYjhmYWU4NGI4MWIxYmMxOTEyZDUzZCBsZWdhY3ktdHJ1bmsKKzEzNzUwIDhiYjI3ZjRlYmUxNmU1YTk3NGMwOTUzNmViOTMyYjNmOTg2MTZjZWMgbGVnYWN5LXRydW5rCisxMzc1MSAzMDg5NDYxOTYzYzRiOTU3NjNlNTMwNWMzMDdhMTliNWUzMDYzNTNkIGxlZ2FjeS10cnVuaworMTM3NTIgZWNmZTNkOGNiMGMzNDcxMGQ2YmRlY2VlMWE0MDZmYmIwNDM0YjVjNiBsZWdhY3ktdHJ1bmsKKzEzNzUzIDI4NTZhZDVjNjc5YWU3MzljNjYzMTEyOTc1YmE1YmUzMDY0NjA2NDkgbGVnYWN5LXRydW5rCisxMzc1NCA5YTY2ZTc4MDdjNzczNDE5ZTE1ODY2YjhmNzY2ZTIxODZlZjg0ZjEzIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxMzc1NSBhYTRjOGUyZWY1YjQyOWU5MDg2Y2U4MWY2N2E4ZDE2MWE5M2RmNWUxIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxMzc1NiA5MDUyMjY0NzFiNGM3ZjlmYjE5MDljMjhmZjhjMzM4OTMzYzAyZmFhIGxlZ2FjeS10cnVuaworMTM3NTcgZTAxZjIzNTM5YjZjYThiMzJjNTBjYjgwYTcxYTgxZTBkNmQzYjI2MiBsZWdhY3ktdHJ1bmsKKzEzNzU4IGEwYzUyMGMxZDEyZDQ2YjVlOTQ4MzlhODAyYzljOGRmZWMxOGIzMjUgbGVnYWN5LXRydW5rCisxMzc1OSBlNzczZDJmMDc0MWRjNTg3MjQ5MmVlOGU2NTk5NDhlOTZmMTI4ZGM1IGxlZ2FjeS10cnVuaworMTM3NjAgZTBlNjdjZjJmYzY0NDUxOTgwYjU0MWYyZDI1NzEzNGI2NmQzODMwZSBsZWdhY3ktdHJ1bmsKKzEzNzYxIDEwZWJiMjViMjQyZDdhMDA5NGE1OWE3MDI5YTc3Y2Y5ZDJmYzYyMjcgbGVnYWN5LXRydW5rCisxMzc2MiBiNjk4NTliNjk3NjM5Y2VkZjU2OWU1NzM1MmRmYzViZTFkYmVkNTUyIGxlZ2FjeS10cnVuaworMTM3NjMgNmRjNGNjMzE4YTVjOGExMDMzYjk5ODE4Mzg2MzJjZmVhYWY4MmU2OSBsZWdhY3ktdHJ1bmsKKzEzNzY0IGU3NDY5NDRlOWE0YTY3NmY5YzgzNzIzYjJmM2Y3ZDU4YzUzYzY3YjEgbGVnYWN5LXRydW5rCisxMzc2NSA4MzNmZDIzMzhjNjk4ZGI0NjM0M2Y3NmYwZDc4YjEwYzY3YTE1OWM4IGxlZ2FjeS10cnVuaworMTM3NjYgMDI4N2Y1YjMyMjRjYzc4MTdiM2Q0ZWZmMzA1MTg0NGFmZGE2MzFhNSBsZWdhY3ktdHJ1bmsKKzEzNzY3IDA1ZTBjYjM2OTE0NjI3YTY5MjJiYjAzNTAwNzljMDRiZGMzYmIzMjUgbGVnYWN5LXRydW5rCisxMzc2OCA3ZmIyZjQ1NjJmNzY1N2RhMzQ5YjRmYTFlMzQ5NTc3NWQyMDU4MGNkIGxlZ2FjeS10cnVuaworMTM3NjkgNzc5Y2U0NmUzNDMwYThhZDY1YWQ5MTZjZTJhMzQ2ZGY3ZGZlMGY0NSBsZWdhY3ktdHJ1bmsKKzEzNzcwIDU2ZWY0YzJlMGQ3ZWZiYmQ5MWNhNThjMGQ2ZDNiZmI0NmUzOGQ2OGIgbGVnYWN5LXRydW5rCisxMzc3MSA1NzdlYTI2MWJkZjI1OWFhMzI0MTY3MTBiMDE3MjZhMDk4ODZiNWE1IGxlZ2FjeS10cnVuaworMTM3NzIgNGNjNGJhYTI0YTQwMDZlM2RmMjFiNDNmNjU3MWRlMzYzN2RmYTgxMSBsZWdhY3ktdHJ1bmsKKzEzNzczIDVmMDMyNjg2YTM3MTJkNmNkODNjNjg5MjYzNDFjYjczYmI5NGY2NTQgbGVnYWN5LXRydW5rCisxMzc3NCAwMDYxY2E0ODY1ZDczNGM4ZTg4YjFjYWRhNmNlMjMwOWM2NWEyOGZkIGxlZ2FjeS10cnVuaworMTM3NzUgNmFhYzMxY2QyMTAyNWQ4MjQxZDY2MjU0MGU3NjMxODg2N2Y5NDhiYyBsZWdhY3ktdHJ1bmsKKzEzNzc2IDQzODViMWJjYmMzYjNlYWI5MWY0MzlhMDY3MGEyNjE0ZWY1YzUyYTEgbGVnYWN5LXRydW5rCisxMzc3NyA4NTRiODAxMjUzZjBmZmM2YjdkNzJjMDFmZTlkMzlmZDVlNGY1OTcxIGxlZ2FjeS10cnVuaworMTM3NzggZDEzZGExOTQxOGVjYThkZWYyNzdhYzE4MTY3MzVhODk5MjU0MmM4MCBsZWdhY3ktdHJ1bmsKKzEzNzc5IGM5YzE4ODQyNmU3NmMyZTkzYzMzY2MzMDFhNDE0YTVlNWY2ZThmNTQgbGVnYWN5LXRydW5rCisxMzc4MCBlNjFjNDg2YjM1OGE1MDQ1NDI1NTUwOTM2ZDQzM2I4OGI5ZDE4ZmM5IGxlZ2FjeS10cnVuaworMTM3ODEgYWVkZTdiMmRkNDJmZTBmZTJkMzU4NDZjYzE1ZGU0OWFiOWRjOGI0NyBsZWdhY3ktdHJ1bmsKKzEzNzgyIGIzZjFhYmQzMDI3ZmRiOWZjMTBjMmNjNWYyOWFiZGZlMjE3NGIxMmYgbGVnYWN5LXRydW5rCisxMzc4MyAyZjA3YmM1NmU5N2U3YWM3NWI0YWEwMDIxZmZlOTFkYWU0M2Y3ZjZiIGxlZ2FjeS10cnVuaworMTM3ODQgZWNjODAxOGE0MThjMzQ3NTdhZTA3MjU3YTU1ZTVlMTc3YWZiMTkwYiBsZWdhY3ktdHJ1bmsKKzEzNzg1IGM2YmRmMDMyYjcwNTZlMmE4ZGJhODJlMWYwODcyZWZkODZjMmU3NzUgbGVnYWN5LXRydW5rCisxMzc4NiAwZDczY2U2ZDYyMjY3Y2FlNzQzM2ZlZDY3NDEzNmMzNDQyYjIyMGQ4IGxlZ2FjeS10cnVuaworMTM3ODcgNDI3YzNiNTAwNThlYWIwYzkwYTQ2NzgwMWQ4M2I2NjUwZDlkNDcxOCBsZWdhY3ktdHJ1bmsKKzEzNzg4IDI2ZmJjODBmYWRmMjVhZGMwZTI5MWViNzgyZDAxZTgxOTM5MGU2MjYgbGVnYWN5LXRydW5rCisxMzc4OSAwZDQ0YjBkYmRkOTUxYjE5MDBkZjZkZWUxNThiN2VhNTBkNmJiYjQ3IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxMzc5MCA3YWQ0ZTM5OGYzZWEzZGMyNDIzODJmZWNhMTI1NWI1NmVmNDFmYTk0IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxMzc5MSA5Mjg2ZDNlMTQ3NGM1NDYzNTk2NTEzNDFiZTliODE1N2JmYWRhNmNhIGxlZ2FjeS10cnVuaworMTM3OTIgMjM0MWJlNzRiNzU4MmY3NjM4YTc0MWRmZDI4NTRiYjcwYTMyZDM3YiBsZWdhY3ktdHJ1bmsKKzEzNzkzIDBhNzBhMmM1ZDllNjk5NzhjZWE0OTJlNjMwM2E5MDYwOWM1ZGMyNDEgbGVnYWN5LXRydW5rCisxMzc5NCBlYWVlYTllNDIzNjk4YTMyNzczODMzOTIzMzVjZjMwYTJjZjJhOTRkIGxlZ2FjeS10cnVuaworMTM3OTUgNjk2OGZkYmIxYTNmZWM5M2QzODcxNWI2NmIzN2RmODMxNGYwYTMzMyBsZWdhY3ktdHJ1bmsKKzEzNzk2IDgxMGMyNWQ1MDQxYzRhNTM0YjJmNTVjZDE3Y2U4MmRkZTBiZWQ0MDggbGVnYWN5LXRydW5rCisxMzc5NyA0NzE3MWYyZDdkNTg1ZDAwOGIyODJlODZhNzc3YWMyY2FmMjI2YjFjIGxlZ2FjeS10cnVuaworMTM3OTggMzFiZWNjNDMyNTIzOWUwZGY0OTQyMDQxOWM2NjFjNmRmMDYzZDlmMSBsZWdhY3ktdHJ1bmsKKzEzNzk5IDgzMzYxODhhM2MxMDA1MjA2NDUzOThiZGUxZWU1ZWZlMDVjZDk1NDcgbGVnYWN5LXRydW5rCisxMzgwMCBjMGI4NmE0NGExMjAzYTQ1NGYwOGYxYzhiNmI2ZmZhNWU5Y2Y0OTExIGxlZ2FjeS10cnVuaworMTM4MDEgMmIyNmU0OGE4NWE2YTI0ZTA1M2ViZWJhOGU2YjdkZWIxZmU4MGQyYSBsZWdhY3ktdHJ1bmsKKzEzODAyIDNmZThkMTMzMjhjODEzMjkzNDcyNTUxNWRhODVlNGZlNzI5OGFkYTIgbGVnYWN5LXRydW5rCisxMzgwMyAyZTA4NzUzOWRhNjA0ZGNiNTk1ZjNiMzQ0Nzg3NDJhMDc3YmMzYmY0IGxlZ2FjeS10cnVuaworMTM4MDQgMmNjNmExMmNkNDExOGUyZGZiNzc0Y2E2MDMyZTQ4NGE0ZDVhYjhjMSBsZWdhY3ktdHJ1bmsKKzEzODA1IDkyZjdhZjQyZWQ5MWM1YWE3NWFlMDM0ODYxNzI1NzgyYTAwYWFlYTQgbGVnYWN5LXRydW5rCisxMzgwNiAyMDFhYzA2OWIwZDBiOGE4ODNmZGI0Nzg1YWJmZTY0Njk2ODEyZDllIGxlZ2FjeS10cnVuaworMTM4MDcgZmZjZGIwNzExNjk1ODRmZjk3ZjExOThlNGRhNTFmMDMzZTQxOTIwNSBsZWdhY3ktdHJ1bmsKKzEzODA4IGVmYTc1YzY5ODU3ZDJiMjgyZmM4ZjhhNDY4NDcxNTc0NjljMzViZDcgbGVnYWN5LXRydW5rCisxMzgwOSA2NzJkYmJjMzliYTA4MzRiOTZjOTFjM2EyYjc2NjYyMDIyYmJlOTQ1IGxlZ2FjeS10cnVuaworMTM4MTAgNDI4ODY1ZDAwZWVlZjU1MmUxMmMwZTNlMTAzYjZkYjUwYTljNTRjMSBsZWdhY3ktdHJ1bmsKKzEzODExIDJlMjBhMGZjMmM1ZjNiMmI5ODk5NDhlMmI5OWM3NWI3ZTlmNGZkODUgbGVnYWN5LXRydW5rCisxMzgxMiAzYjk4MWVhY2FkN2I0MzkzNGU5Njc2YTlhOTJhZmUyOGUzNjNmMWZhIGxlZ2FjeS10cnVuaworMTM4MTMgNzBjY2NjYTZiZGYwNjFlMzlmYzM0NWM0NWJhZDU2ODk2MTlmYjk2NyBsZWdhY3ktdHJ1bmsKKzEzODE0IGE0OTlkMjBhMzVjYTJjZWFkODc2ZDJhMDllYjFmZmQxY2FhYjM5MzcgbGVnYWN5LXRydW5rCisxMzgxNSBjYWU0YjA5MjczYjMwYzc4NmQ1YmQzMTQwODg3NWEzZjA3OTIzMDBhIGxlZ2FjeS10cnVuaworMTM4MTYgYWRmNmQyMWNjZDdmMWFhNDRkOGM2Yzk5OWU5M2Q2ZDAxYWI0MjZhMiBsZWdhY3ktdHJ1bmsKKzEzODE3IGNkZDkyOGQyMjkzYzI4MmVmMGI5ZmNmYjIwNTVkNWZkMDQ0NjMxZTkgbGVnYWN5LXRydW5rCisxMzgxOCBkNDExMmQ0YzViYjE4M2U2NGFiNzdkZmUxMGM5NzliY2QyY2UzMWIyIGxlZ2FjeS10cnVuaworMTM4MTkgOThlMzAzOTM5YjM5ZTIyZWFlMjdiNmYyMTZiZjVkOGNjNWI2NzkyOSBsZWdhY3ktdHJ1bmsKKzEzODIwIDIwMzUwZWNjYTZlNGIxMzI4MTY4NjI1ZGFiOTIyYzUzODNkZjJlNDQgbGVnYWN5LXRydW5rCisxMzgyMSBmNjdjZTE1MjcxOWFhZmU5Y2ExY2ZiMjhlNzUxZThiOGNlNWVjYTI3IGxlZ2FjeS10cnVuaworMTM4MjIgODM3ZmU3NWQ2ZGMxOWUwMzYwMjFjODBhMjYxODcwMmEzODBmNDIxNiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM4MjMgNTE4OWVhNmU0YmY2ZWU0MjMxMzcxYmNkMjZkNzU3NGJkMmViYTExYyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM4MjQgYWRmODdkMTNhMGMxYWFmMTEzZTk0NTNmYzBiOGUyMjVmZjI5NDBlOSBsZWdhY3ktdHJ1bmsKKzEzODI1IGYyYzkyMGQwM2Y0NGNlMzFkMzk3ZDgwN2IwYWVhN2M3YWNkMWEwYmUgbGVnYWN5LXRydW5rCisxMzgyNiBjY2RmNWRjMmFjZjY1MjY0N2I4ODQ0NDU2YzNiODIzMTkwOWRkMzY5IGxlZ2FjeS10cnVuaworMTM4MjcgOTY0MTg2NzQ1ZWE2YTRkMTg1Njk4YjczOTFlNDIzMThjM2JmZTAyYiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM4MjggZDk3MGFmMGNlY2U5NjIwZDI0NzExYjZmYzI0NmQzYjVkZDA4MzJmOCBsZWdhY3ktdHJ1bmsKKzEzODI5IDMzMWVlNGFmZTliZWQ4NmJkZTkzMTAxZWQ1ZWQ1NWFlNzkzOTcwNTQgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzEzODMwIGI3YWQxODA5YmUwNDlmMDIzOGMxZjdiOGUyYjI0ZjY5YmNkNDBmZjUgbGVnYWN5LXRydW5rCisxMzgzMSA3OGZkYjZjMGMwYTE1MTIzMjgyNzQzNzM2MzA4OWNlZGRjMGZmMDRlIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxMzgzMiBhOWQyOGEwN2EzMjc2Zjg5OTM5ZjNiNmI0MWZkZjIwNmE2ZGY2YzUwIGxlZ2FjeS10cnVuaworMTM4MzMgZDM2OTZiZjA4ZWVlYTg2MWQ4MDU5OTNmN2Q1YzJkMWFlYWU1NTViZSBsZWdhY3ktdHJ1bmsKKzEzODM0IGM2YWEzMmZiM2NmOGZhZjE2MWQzNzU0ZmE0N2Q3NTIwNjkzODA1MjQgbGVnYWN5LXRydW5rCisxMzgzNSAwMDk0YmYxOGU2ODg4NWIwMWNlNWIyMjNhODIwYjI1Yzc5MGZmMGM2IGxlZ2FjeS10cnVuaworMTM4MzYgMjU2MDIzNmVjZWRiYWRhYmI3OTNhM2M1MmMzM2RlZDQxNGY2ZWZiOSBsZWdhY3ktdHJ1bmsKKzEzODM3IDQ4ZjJiMThiYWQ1ZDFmZmExM2Q2Yzg0Yzc5YmQzMmFiZDk4Yjg5OGQgbGVnYWN5LXRydW5rCisxMzgzOCA2ZDY0NmY3ZTFhMWM3ZWY0YjE1NmUxZWEyMGQxMWI2MTg4NWJiZGE2IGxlZ2FjeS10cnVuaworMTM4MzkgOGVjNmQyYzZjNTk4MWVmMjY1YTRmZDZkMGIwZTgzNjkzMjIzOGNkOSBsZWdhY3ktdHJ1bmsKKzEzODQwIDdmMTc1YzMyM2I4ZTQ2YThjNWRkZTkxNzBiZDQwZjY2OGQyNzM3ODkgbGVnYWN5LXRydW5rCisxMzg0MSA4MDI4OTA4YTk4ODk5MTIzNjkyYzY2NmQ3ZmQ2YWE5ZjZlNzliMGI0IGxlZ2FjeS10cnVuaworMTM4NDIgYWRiNWI2ZGRjMWU1ZWY1YzdmMDRkMGVhZDhhYjdlZTQ4MGU1NTMyNiBsZWdhY3ktdHJ1bmsKKzEzODQzIDQyNGIzMWFmNmQ1MTBlMTU1ZDgxNTE3NmY5ZmQ4OTg2ZDRlYzAyNjkgbGVnYWN5LXRydW5rCisxMzg0NCA0NGM4MjJhNGQ5NTAxODY1NjkzODljNzVmM2ZjY2ZiNzI1OWM0M2M3IGxlZ2FjeS10cnVuaworMTM4NDUgMTU4NDlmZWFjM2ZhMDFkYzYxZDA0NTJkN2Y1OTgxNzFkZWVlOTZiZSBsZWdhY3ktdHJ1bmsKKzEzODQ2IGQzYzRjMTNlMDEzOGMyNGNlZjRkMGM3MTFmMjA5MjZhZThkNjc0N2IgbGVnYWN5LXRydW5rCisxMzg0NyA3N2IzMzJkYzIwNjM2NDRlZjE0YTU0MjNhNGQwNGU4NTViYzJkZTEzIGxlZ2FjeS10cnVuaworMTM4NDggZTM0NGMxZmZjZGFmNTM2ZTMzMjg1ZGNiMTk0NmEzN2JjMTRiMjE5YiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM4NDkgNDIzMjAzYWFiZWZiNDhjY2Q2NmQ2OGE3Y2NkNWYxNTY0YmUwYTg0YSBsZWdhY3ktdHJ1bmsKKzEzODUwIDU4YjhkMjE2ZDcyMTRjZTNjMmIzZTY4ZDIyOGRiNTBkNWVlZmNlYmUgbGVnYWN5LXRydW5rCisxMzg1MSBlNmU0NWE2MGUxZTAyNzNhZjg4MGI3MzgwZGMxZmM3NTUxNDcwMjEzIGxlZ2FjeS10cnVuaworMTM4NTIgYjQ0MjQwYjI3M2NmYjUzM2RjZDM0NzIzZTZlNDExYzEyN2E0ZjIxMyBsZWdhY3ktdHJ1bmsKKzEzODUzIGIxYmI2ZDdhMzM1ZjRmNTI0NGNjYWFjZWE1ODY1YWQ0NmJiOGYxOGUgbGVnYWN5LXRydW5rCisxMzg1NCAxNTgxMzA3NmNiZWY2YWY1NzE4NzEyMDhjZGU1MjA0ZDdmYjVkMTM4IGxlZ2FjeS10cnVuaworMTM4NTUgZmRjYjg5ZDAwNjk1NGI4ZTkzOTYwMTkzMmViODg5MTA3OTQ1ZTRjOCBsZWdhY3ktdHJ1bmsKKzEzODU2IDAwZDU3N2U0NGQzNDFlODZiMjMwYWMyNzA3YzM3ZDEyZjhjZDVkNGQgbGVnYWN5LXRydW5rCisxMzg1NyBhNTk0ZDFlOGNkMWFhNWE4MjA2ZWNjMTBmYTdlNzhjMjgwZDQ4ZWEzIGxlZ2FjeS10cnVuaworMTM4NTggODNhOTg2MTgwZjQxZDY4N2UwN2E1OTRmYTg1YjFhZWUyNzRmOWZiYyBsZWdhY3ktdHJ1bmsKKzEzODU5IDU1NjY2NGM2MzlmYzI2NGVhM2VhNDQzY2FkZWU0MzkyMWRjMWY3MjcgbGVnYWN5LXRydW5rCisxMzg2MCAzYzQ0MDI4YjkxOWQ0YmVmNjdlZDQ5Y2Y2NWJkY2ZhNDQ5MTVkZTc4IGxlZ2FjeS10cnVuaworMTM4NjEgODk4YzMzZTIxNmJiMzYwN2IxN2VmNjExMWMxNTY4NDJlZWE5YzU3OCBsZWdhY3ktdHJ1bmsKKzEzODYyIGI0ZDJmNTQ2NWIzZjg5OGZkNjg1ZTRjNGVkZTY1MmVhN2JkYjgzNDEgbGVnYWN5LXRydW5rCisxMzg2MyAwNWY2OGQ3ZjkxYWM0MjBjNDQxMjdlZDE2ODVhYTk4YzY2YzdmMGQ3IGxlZ2FjeS10cnVuaworMTM4NjQgNTVhMWVmOWViZDRjZGVjNjllNWFhMWZmYzRjNmQ0ODk2MTI5MWFmNiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM4NjUgMGFlMjQ0MjBjOGE5ZjI2ZmIwMGNkN2NlNzE3MjM1ZmJkOTIxNDRiYyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM4NjYgYzFiNzI1YjFhMTQ0NjJjYjMxMzEwMTQxZGVkYTUxMTVjMGIwM2QxMyBsZWdhY3ktdHJ1bmsKKzEzODY3IGM3MDJhMTJkMzE4ZDY4NmMzNWQzNjI3NzhmZjEwYzdjY2YzZjc2NTQgbGVnYWN5LXRydW5rCisxMzg2OCBlZDFiNDk4MjJmNzA1NWUzODJmOTkzM2Y1YzNhNjIxNmZhMGU1ZWZiIGxlZ2FjeS10cnVuaworMTM4NjkgMDgyZjQyZDVlYWUzMGVjZDI1ZTNmZmE1ZDRhMWI0NTU2MTRhMTFlZCBsZWdhY3ktdHJ1bmsKKzEzODcwIGEyYjk2M2Y3YWM5OTA3MDUxM2M2NjJmY2Y1NWU2YzhkY2I3ZTMyMDggbGVnYWN5LXRydW5rCisxMzg3MSA1OTVjYjI5YTg4NjdlZTJhZTY2OWJlMWM4NDU1OTUxMWM1MWYxMjQxIGxlZ2FjeS10cnVuaworMTM4NzIgYWQ3NTdhZmY4ZDM3OTVjMTFlMDRkNzJiNTRlZmVkZjI2ZmVjNTBiNiBsZWdhY3ktdHJ1bmsKKzEzODczIDRmZGM5YzFlY2FmNmI3Y2NmZmFhNjdiOGIwOGY3MGRmN2QyMzFhNzQgbGVnYWN5LXRydW5rCisxMzg3NCBmYWQ1NWVlYzVkZmNkYTEzZjJiODkzNjg1MjVhYjk2YjZlNTVmNTgxIGxlZ2FjeS10cnVuaworMTM4NzUgZjllZjM2OGI4YzJkM2ZhZGU3Y2RlNThiOTIxNzAzNTQxOTU1MTQ3MSBsZWdhY3ktdHJ1bmsKKzEzODc2IDQ4NzYyMjI4OGY5YzI5OTQ1MDQyYTZlYmUzYmU3ZGNiNTY0ODJiNWQgbGVnYWN5LXRydW5rCisxMzg3NyAzZDE1NGJlODcxNjI5ZWM2YjZjYWE3ZjEyYzQyNGViNjdmMGU2MmNiIGxlZ2FjeS10cnVuaworMTM4NzggNzBhZGNjZDQ1MjNhNDkxZjJlZWYyOGIwM2YzMjU2ZGYzZTI4M2U0YiBsZWdhY3ktdHJ1bmsKKzEzODc5IDMzNDEwMDIxOGE0YjFkZDIwMTY3ZTViOGNhZTNiNDJmMTMxMDI5N2MgbGVnYWN5LXRydW5rCisxMzg4MCA0Mjk0MWUyZWI5ZDg2YTQ4ZjIzZGMyYWEzZDc3MzI3OTk3MWUyMjllIGxlZ2FjeS10cnVuaworMTM4ODEgNmY3NTA3ZWYyYjExNWE1M2JiOWNmNDZiOGYxYTQzOWVlODI4NjgzYSBsZWdhY3ktdHJ1bmsKKzEzODgyIDdhZTVjNDA1MTA0MWU1YTAzZTg3MjA1ZmQ2Yjc2MTZkY2QyYzQ3YzIgbGVnYWN5LXRydW5rCisxMzg4MyA4YjgxNTgwNWYxMGNiNzJiZDhlMGRkOTk1Y2QyNWUzMTFkMzJjYjMwIGxlZ2FjeS10cnVuaworMTM4ODQgZDgzZmExZGQ3Yjc5ODE5OTQ4M2FiN2I0NjFjMDU4YzA4NmMzNjA1YiBsZWdhY3ktdHJ1bmsKKzEzODg1IGNiYzQ2Mjg0YTVhY2I4NGNiNTNmYjIyMjA2YTkzNmEzYTI2OWUwMDMgbGVnYWN5LXRydW5rCisxMzg4NyA0YzZjOGVmZmNiNDJhMTJiZTI1YzhmYjc3MDVkMjg1MjE1NWZiN2Y5IGxlZ2FjeS10cnVuaworMTM4ODggNTNiMjk3NGVkM2QzNmY3MjQyNTc0ZjdkZjY3ODUwYWZmMjQzODgwZSBsZWdhY3ktdHJ1bmsKKzEzODg5IDEwNjY4ZThhMDk3NTZjMTRkZTc4YmQ4OWVjZjVlNzY5ZGNjMTY4OWMgbGVnYWN5LXRydW5rCisxMzg5MCA4MjZlZjhmMjg3ODJjZThkMjcyMTk1Njk2NzJjZWRlZWQ3NDBlZjM2IGxlZ2FjeS10cnVuaworMTM4OTEgY2ZjNjUxNTkzN2E2OTU0YmRiODEyYzVhYTMzNDJlZWEyMjVmZGM2ZiBsZWdhY3ktdHJ1bmsKKzEzODkyIGM1ZWRkODZlMjY5ODBkNGY5OWY0NTk4Y2MxMTg5MDE1ZDhjMzM0ZjYgbGVnYWN5LXRydW5rCisxMzg5MyA2NzhhOWE3OWM3ZTg1YjcyNjIyZTRkY2FhODU0M2NkZmI1MWUyZWNjIGxlZ2FjeS10cnVuaworMTM4OTQgMDNkMWI5OGQxNzhkY2ZlNTU1MGRkNWNhZDcwZmVhZDk2NGU5MjhiNCBsZWdhY3ktdHJ1bmsKKzEzODk1IDkxNWZhZGYyMjk0MTEzOWFjYjNjODFhNDY2NmIxNWI0MDg4NDgyOGUgbGVnYWN5LXRydW5rCisxMzg5NiAzNzFiOTc2MmQ2M2RlNDU1MTQzZDk1OTIyOGFiNDIzNzdmODI5MjdkIGxlZ2FjeS10cnVuaworMTM4OTcgNWQ1N2M2OGIyYjMyMTI3NGI3YzA5ZWI5MmVhNjExMmM0NWFhYTk5MiBsZWdhY3ktdHJ1bmsKKzEzODk4IDA0ZjAyNGQ4NTQxYzhkNTljNzQ5ZThlZjIyOWFkZmFmYzk4NGZjOTUgbGVnYWN5LXRydW5rCisxMzg5OSBlNTU1YmEwNGI5MjI3NmRjODg1MWEwZWUxZWY2NmI5NTY1NzVhZmQ2IGxlZ2FjeS10cnVuaworMTM5MDAgNWY0NmM3Nzg0OTcxNTBlMGFmNzAxZWQ5ZGUxNzBjOWE1YWI0YWJkZiBsZWdhY3ktdHJ1bmsKKzEzOTAxIGJlNjAzZmNiYTAwMWFhZmU3NDI4M2IyMzhhZmQ1Yzg3ZDJmMDkwZjMgbGVnYWN5LXRydW5rCisxMzkwMiBjYTliZjY5MzVjNTJhNjNlNTY5NDBjYmFlNWJiY2JmZjlmMWQzZTY2IGxlZ2FjeS10cnVuaworMTM5MDMgNGM3ZDYwNDNiNDNhMjg5NDQ0MzM2NDg0OWFjYTk3MTViZDU3ZWE2MyBsZWdhY3ktdHJ1bmsKKzEzOTA0IGRmZDJjN2QzNGQ0NDNjNjk5NGM2MDU1NDA3YmU4ODQzMTA4MTNiM2YgbGVnYWN5LXRydW5rCisxMzkwNSBkMzQ1OTk2ZmNiNjUyMWZiYzkzNGQ0MThiMDQzYmI0YzIzODI2OGRhIGxlZ2FjeS10cnVuaworMTM5MDYgMjVjMDIwMmUwMWE2MjYzODFmMWExMTA0ZTdhMTY3YjY1MDdiMTVhZSBsZWdhY3ktdHJ1bmsKKzEzOTA3IDhmZGFjMTY1NDRlMWM3YzY3OGQ5YjViZGVmNjliYTdkYzNmZjNkNjYgbGVnYWN5LXRydW5rCisxMzkwOCAwOWU4YWFlMTZlOTk4MDMyOTcxMTJkZDFmODc0NjA5MWMwNWQ0ZmFhIGxlZ2FjeS10cnVuaworMTM5MDkgMjNmMjc4NjYwY2E5YTkyNTNkNDM5MmM4MWVmNDhkODE2MTIyNjlkMyBsZWdhY3ktdHJ1bmsKKzEzOTEwIDhiNjNhNmY3YTUyM2M0ZTE1ZTVmYTMxNzg2MTViZDY0MjNhOGJhYjUgbGVnYWN5LXRydW5rCisxMzkxMSBiOWJiZTg4ZDk1NTQ3N2EzZjQwYjRhOGNmNzdmNTQ1ZjFlZThjOWE1IGxlZ2FjeS10cnVuaworMTM5MTIgMjljZTk1NmZhN2I3NWU3YWUxMzYyMTE0ZWE0ZDA3NTg2MTcxYjkzNSBsZWdhY3ktdHJ1bmsKKzEzOTEzIDQxOTkwYmNlMDIzYTgxMDM4NmM2ZTk2NzlkMDhiMTAyMGQyMDUyZTIgbGVnYWN5LXRydW5rCisxMzkxNCA4NjE4NDE1ZTdhNjZjNzFiYWQyOWY0MmY4MWUyMTc5NDhiOTAwYThmIGxlZ2FjeS10cnVuaworMTM5MTUgZDkxOWNmOWZkZDg5ZTcyYjExYzRlZjkzNGEwYjBlMTRlN2U5ZmIwNSBsZWdhY3ktdHJ1bmsKKzEzOTE2IDdlMDVhN2QwYjUxMWQ1ZGYwNThjNTIwMzJmYmVjNDkwYzgzZTdjMjkgbGVnYWN5LXRydW5rCisxMzkxNyA2NjIxNmYzMjQwM2QxYTkxYjQ2MjYwNzdjMzY1NmMwNzkzM2UxYmI3IGxlZ2FjeS10cnVuaworMTM5MTggMDQwYjA1ODE2YjE3Zjk4MTEwOTA4ZWFmMjcwN2VjNWI2ZDg3MWE3OCBsZWdhY3ktdHJ1bmsKKzEzOTE5IGExMGRiNWI2ODQzZjI5MGQyYmRjYThjNzA2OTVhMDU4MjVjMzFkY2YgbGVnYWN5LXRydW5rCisxMzkyMCAzMjI5YjEzODEyMWUyYTRjYWJmNDMzN2Y2NGZmNTU1M2M5YjA1M2FiIGxlZ2FjeS10cnVuaworMTM5MjEgZGM5ZjFmOTY0NjkwYmE0MDU4YzE2MzUxMjBhNmM5Y2MzZTBkYWE2MiBsZWdhY3ktdHJ1bmsKKzEzOTIyIDNmYWExMjE4OTUwZWVjZTMzZWEyZGVjOGIyNjZkNDAxYTc2N2VhYWQgbGVnYWN5LXRydW5rCisxMzkyMyAzZTNjNzFmNGQyZGVkMWU0ZjFmZWJhZWI5MDY0MzhjMDM5OWNhNDYxIGxlZ2FjeS10cnVuaworMTM5MjQgNGFkMTRlNGRjN2U1MTYwMGMwOWU5NDVjZjY1Mzg2MGI0Yjc1ZTVkMyBsZWdhY3ktdHJ1bmsKKzEzOTI1IDFlZjE4MDczNzdiZmE5ZWM4YWQzZDY3YjFjZWU1MWM4NWE0ZWE1ZTIgbGVnYWN5LXRydW5rCisxMzkyNiAzMmMwNTNjNzljY2IzYzJjZTAwNzQ4MDZlYWFiNTFjNDhjNjBlOTZlIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxMzkyNyBhY2E3YjVlYWY1ZTgyZjhhMGYwMGI0YzlmOWY0MmMzOTgwMDJhYjA5IGxlZ2FjeS10cnVuaworMTM5MjggYzI0YzI0MTg1MzUxNmZmMmJmMzlkOGYzMzBlZjQ2MDA5MjgwOGEyMiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM5MjkgZGFmODhlOGVkYmMwZTUzZGFiZDQyYmFiNDI3ZGFhZWY5NzYxZDRjYSBsZWdhY3ktdHJ1bmsKKzEzOTMwIGMyMDhjNGU5ZTJhYWNmOGZkMjgyNTQ2YzhhODliMjcxYzZlMDk1MTMgbGVnYWN5LXRydW5rCisxMzkzMSAxNDY2MjgwZTZiYjBhM2I0MWQzNDBkZDVkMWM1ZmIwNzRkNWIzYTY5IGxlZ2FjeS10cnVuaworMTM5MzIgYzdlNzIzY2Q2MzQ5N2NiOTM4Mzk0MmJhYTQwMjVkMGFmMjY2NTFiNSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM5MzMgMDE5Y2QyMWM4YzlmY2I2NTg0M2M3YTM2NzI3OWY1ZWM1ZDdlOWM1MSBsZWdhY3ktdHJ1bmsKKzEzOTM0IDYxYTBmMDIxNWE5NzZiY2VkZGM0NTEwOGZkZTUyNjM2NDI1MjZjM2QgbGVnYWN5LXRydW5rCisxMzkzNSA4OTUxMDJlZWE0ODUxYTc3OGMwNWFhZWVjZmVjNDU2MmU3NzQ4MTMzIGxlZ2FjeS10cnVuaworMTM5MzYgNmViZjY5MzhjODg3MjAxNzYyMTg4YjUzZjI4NzQ0ZmY4MjZkM2NjOCBsZWdhY3ktdHJ1bmsKKzEzOTM3IDU0ODZkY2YxM2Q3NzRjYWNkMzQ2MzFiZDI3YTgyNmJjMzY0NTA1YTggbGVnYWN5LXRydW5rCisxMzkzOCBhMTRkOTYxNGRhMDA3ZTFhOTMwNmI0MDk1Mjg2MjQ1OTIyZWQ0MDA4IGxlZ2FjeS10cnVuaworMTM5MzkgMGIyZTk5NGVmMTc1YTU5NzcwMzlmMmM0NDc3OTAxZGY1ZDM2NTAyZiBsZWdhY3ktdHJ1bmsKKzEzOTQwIDRjYTdiN2I4YTg0OTE2ZjU0MjBhNzY1NWE5YmUwZmQzZGM4ZGQzMzcgbGVnYWN5LXRydW5rCisxMzk0MSA4YzVlZTNjM2QzODkwMWJkZjRjNTM2MzFlZDg2YmViYjlkNTk1ZTk3IGxlZ2FjeS10cnVuaworMTM5NDIgZTBlY2YxYWVmZTA0ZTJkZWJlMWYwZDRjOTI2ODgyOGMzYTJlYmE3YSBsZWdhY3ktdHJ1bmsKKzEzOTQzIDY1MGU4OWQxNTU3ZjE0NjBmZjA5NzE3NGYxMDkzZGRhOWMwNjE3YmMgbGVnYWN5LXRydW5rCisxMzk0NCA4N2M1ZDBiM2RlNTllYmUwMTkzMDk1OWI1ZDk2MzY0OTFiMDZmYjdkIGxlZ2FjeS10cnVuaworMTM5NDUgNzkxY2Y3MTdjMGJlNGJmMWJiYTYxYmQ1ZjNhODc1N2MyNzk2YTcyNyBsZWdhY3ktdHJ1bmsKKzEzOTQ2IDZjNDUxNzFjMWExZmU3YmM4MjIzZjhiOWI1OGFhMDdlMmYzY2JiMTcgbGVnYWN5LXRydW5rCisxMzk0NyA0ODgyYjJlNTJjYjI0OWE4OTUwNjhmOWVkMTZiYTdhYWRkYzgzMWFkIGxlZ2FjeS10cnVuaworMTM5NDggOTVlOTY5OGZjOTA4YzJkM2VkNDRiOWZhNjA5ZTAzYjk1NWYyNzNlNSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM5NDkgYzE2MWQyYjg1MjA3ZmE3OGUwMGY5ZWIzYWY2YzJlYTI4Mjg2MzdjYiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM5NTAgYTVhNTEzZmVlNWIxZGIzYTYyMTQzZjVlZmUwOWUwYzRkMGZlNmM1OCBsZWdhY3ktdHJ1bmsKKzEzOTUxIDUzZjY5Yjg2NzZmM2MxZTU4ZjFlZTljODhiYWFmYTQwMGQ3ODZlNTUgbGVnYWN5LXRydW5rCisxMzk1MiBiZjM2OGYyZjdjMDA2ZDVlNzczZmUzNDM0MDkzNjMyZjRhMWM2MTRjIGxlZ2FjeS10cnVuaworMTM5NTMgNTI1YjVhOWFjZmQ1ZGRlNTFjOWFiOTViN2Q4YjgwMjRhNTcwZGVjYiBsZWdhY3ktdHJ1bmsKKzEzOTU0IGY0NmM4N2I2NjE1NDIwNGEyNjdkMDg3NmQ4MjJhNGE0ZDIxYWYzYTkgbGVnYWN5LXRydW5rCisxMzk1NiA1MDc1NDZhODdkY2ZkM2JiNTBmZjg4M2UzM2RlOTg5MTYxMWQ4NmMzIGxlZ2FjeS10cnVuaworMTM5NTcgYjU1MTFjMDE3MTMxZmU2MjlhMjRmMDQ4NmUwMDhmN2IxN2E1NDY3ZiBsZWdhY3ktdHJ1bmsKKzEzOTU4IDA2MTE1NjQ1MWQzNmFmODIxZjg5NjQ5Yzg1MDkxMmM4OWIyNTliNGEgbGVnYWN5LXRydW5rCisxMzk1OSAwNjA2NjgyYzdlYmMzNWM0MmYyZTExZTc1OGY4MTgzM2I4NTNmMWFlIGxlZ2FjeS10cnVuaworMTM5NjAgMjQxMzhlYzNmMzk2MjExZTQ2NGMwMDg5MjY2M2MwNDE5YWUzYTM2YyBsZWdhY3ktdHJ1bmsKKzEzOTYxIDNmYWIzNzExYzdkYzY4NzMzMDk0NjEwMmU5M2JmMmIyMDA2ZmVmNDUgbGVnYWN5LXRydW5rCisxMzk2MiBmYmMyYzQ4NThjY2U4YTUwMTdhMGUxMmVhZjMyZjU1OTRlNTcwZTJkIGxlZ2FjeS10cnVuaworMTM5NjMgYzgxNTVkMDVkOWNhNmZhZjhlMTEyYzI1ZjJlMjE0ZGVkZDk5ZjlmNSBsZWdhY3ktdHJ1bmsKKzEzOTY0IDI4ODc0MDc2NTA4OGQzNWQ2YTk0YzFmMTk3NTNkZjFkZDM4NGQ5ZWMgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzEzOTY1IDUzYjJmMjFhZDY3ZjA4MTZkY2I2NmI5YjJhMTZiNWZkNzhlMWNkNjQgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzEzOTY2IDJmOWI2NWIzOGFmMmRmMDc1MTUxMWYyMTgxZDFkMDE2YjFlNWUwM2IgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzEzOTY3IGM1ODIxYzNiZWZjYWNiY2E5NGMxZmQ1NDA1YjAzODNkZmNlMDZkZmEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzEzOTY4IGM2ZDA5OWI0ZWI0MmE0NDE5NTYxYTEzYmI2MWRlYzcyYTQxYzQ1YzMgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzEzOTY5IDFlMGZiZTMzNzUxODU3M2NjZWYzOTVhNGJkMDZhMGJjOWRjMjA1OGYgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzEzOTcwIGE2MGZhNzRhYWVhZmQ5YTVhNDhkMmJhMTA2YzZhODAwMDcyMDYzNGUgbGVnYWN5LXRydW5rCisxMzk3MSBjYTc2OWQ5ODY1MTRiYjI5MDJmYjM2YTkxMTg3YTQ3YzgyZWMyMGQ5IGxlZ2FjeS10cnVuaworMTM5NzIgMWNlNDE5ODlhMDNkMGFlZWI0Mjg0ZTRlMDIxYmM0ZjQyOTVmYjIyNyBsZWdhY3ktdHJ1bmsKKzEzOTczIDQxZTAwNzFkYjUzYTgwMDg0MzUyNmZmZTUxMTg4M2UxYjU5ZWJlZWUgbGVnYWN5LXRydW5rCisxMzk3NCAxMGFkMzcwYmM1YmQxYWE2Y2NjMzcyZGEwNmFhNGFmNmFlOTExZjAwIGxlZ2FjeS10cnVuaworMTM5NzUgN2ExODhhYWJlZjExNWM3NDBjNWU0MmM2NDJmZGFhMzg5MWVmZDdkMCBsZWdhY3ktdHJ1bmsKKzEzOTc2IGE5ODllZTg3Mjk2MWMwNjg3MTM2ZDViOGViYjVkZTE4Y2YzYTMwY2IgbGVnYWN5LXRydW5rCisxMzk3NyA3ZmI4YjBmMTNkYTBhMDk0NzNhOWMwZjMzOTAwZDAxNTBlYzczZjRhIGxlZ2FjeS10cnVuaworMTM5NzggMzMzMGViOGRhMjIyNzRjZTBkZDExZTdlNjIxZWIxODc2YTA1Mzk4ZiBsZWdhY3ktdHJ1bmsKKzEzOTc5IGJjMDg1NjYwZGJjMTMzODNiYTdiNDQ0NDJlOWQ0ZmEwOWZlODk5YTMgbGVnYWN5LXRydW5rCisxMzk4MCBmMzA4NjU0ODQ0NmVjNWIwNzQyYTczYTNjM2I4ZTA3YmE2YjJhZmI5IGxlZ2FjeS10cnVuaworMTM5ODEgOTQwNGE1YjQxNmI1Zjc2OWQ3MWQ4NDNiZDZkMjk2OWQ4ODAyYWRlMCBsZWdhY3ktdHJ1bmsKKzEzOTgyIDk4OTk3YWE0OTE2NDIzNjQyMmJjM2U2MjRmMDFjYjNlN2U1NGUzYzQgbGVnYWN5LXRydW5rCisxMzk4MyA4NGRmZjVjYzcyMTYyMWMxM2U5NWQ5NmZiMTkyYmZhZjU1YjMwNGM5IGxlZ2FjeS10cnVuaworMTM5ODQgNGZiODkzNDQ4YTZiOTVhMTQwY2JkZjM1NjZmY2UyMzFmYzE0YzFkZSBsZWdhY3ktdHJ1bmsKKzEzOTg1IGUzZGM1ODRlOTYyMzBjNGMzNDU3ODg0N2VlMTNhN2Y2MDdiN2Y4YTcgbGVnYWN5LXRydW5rCisxMzk4NiBhMzE2Y2Y5ZjgxYTc2OGY5ZDM3MmRiZGUyYmRkODkyZjBkZWM3ZGM4IGxlZ2FjeS10cnVuaworMTM5ODcgOGVkYjgxZmEwYTVmMjZkODY1MGMzZmM1MjgzMTcwNDU4M2Y0N2NiYiBsZWdhY3ktdHJ1bmsKKzEzOTg4IDA5YzYzZDkxM2FlMDVhZjQxYjg5YmI1MjczZTZkNWIzOTdjM2RmNjIgbGVnYWN5LXRydW5rCisxMzk4OSAzZDZiOTdhNThlOWNhNDBjNGY4ZjNhODllZWY2M2Y4NWE0NDRiOWQ0IGxlZ2FjeS10cnVuaworMTM5OTAgMDY2NzAyNDFhN2IxZGEyMjdlZTZmMjVhOGJjODE2MmFiODI2YzFiZSBsZWdhY3ktdHJ1bmsKKzEzOTkxIGViODQ2YjRkMDM4NTY0ODhlNGExYzAxY2IzNGFhM2E0NTFmNDA5ZTkgbGVnYWN5LXRydW5rCisxMzk5MiAzMmE0ODBkMDgyM2NmYTFjNDNlYTA5MjdiZTI5MTg5YWFiMDYyNzMzIGxlZ2FjeS10cnVuaworMTM5OTMgY2M5MjJhOWE0OGMwMjBiMDVmMWVlNTdkNDdmOGIzNjVlM2NmZDdmYSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTM5OTQgYmUyNWFhY2ExMWY0NTZmNGMxMTBkMzg3MDJkYjkwZmZiMDBjODRkOSBsZWdhY3ktdHJ1bmsKKzEzOTk1IDMxNmJlMDhjOWVjZGExZDlmZDJmN2UyOTNiMjE2ZWI1ODgwZTlhNjMgbGVnYWN5LXRydW5rCisxMzk5NiA1ZjE4ZTc4NTNkOTI0M2UyYzJmMzU1MjYyZWMxMzM3MzY3ZTRlMmZjIGxlZ2FjeS10cnVuaworMTM5OTcgMWRjMzkzNmU4NGRiMjgxNjFhNjA3MzhmZGM0Y2E1ZDhiMWVmNDFlMyBsZWdhY3ktdHJ1bmsKKzEzOTk4IDAxM2RkMzhhNTAzMWQwYjk4MzcwNDcxMGQ1YWRmNTIzMGY5MTY3ZDggbGVnYWN5LXRydW5rCisxMzk5OSAwYmMyYmExNzUyMzA1ODkxODQ2ZjBmZGZjNmFlNjY0NmM3OTQ4YjZjIGxlZ2FjeS10cnVuaworMTQwMDAgOTBmNDgzMGUyMTIyZjJkYWEwYzFmODE3MjU2YTE4MTY1NTBkNGYyZiBsZWdhY3ktdHJ1bmsKKzE0MDAxIGYwMjlkNDdkZDI5NjRhNmM0OTY5ODJkZmJlMzZhMGQ0OGZlZGZkM2EgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDAyIDViODAyNDM4ZDhmYzhkMjM2MDFmNTJkYTEyZTUzMjcxM2RlNWM0MjYgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDAzIDNhNTA2YWIxYzEzODlkMGJlN2Y5ZDc4NjhiYmY0ZmI3NTNjZjAzNmEgbGVnYWN5LXRydW5rCisxNDAwNCBhYWJmYTBkNzIxM2MzZWE4YzgxN2ExN2M4MzRkNmYyMjcyZjA5OTNlIGxlZ2FjeS10cnVuaworMTQwMDUgMjM5Y2E0Nzg4YmVjMGJmYWNiYzA3Yjc0YmZjZWU1ODkxYTI2M2ZhMSBsZWdhY3ktdHJ1bmsKKzE0MDA2IDhhNjg3MWU5NWQ4MGIwZWE1MTg0Y2Y3MTFmYjBkMmU2ZmRkNTI3MzIgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDA3IGNjMThiMjRkZWUzZGI3OWY5NzdhYjIyZWM1OGYzOTE4ZDVmYTIwZGMgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDA4IDJkNzliNDkxYTUyOWM1NDlhNjQ0ODUyZWU1YWFkYzMwODU1ODMwMzUgbGVnYWN5LXRydW5rCisxNDAwOSBlMGZlNGM3YTllZmYzM2RlYmYwMTE0Y2Q3YjNlNjcwNGU2NTdlM2JiIGxlZ2FjeS10cnVuaworMTQwMTAgMGEzYmI0MDNhNDMwNWExZDA5NTMyNzE0OTM4YjhhNjk0MmNlYjk5MCBsZWdhY3ktdHJ1bmsKKzE0MDExIDM4Yzc0NDRmNjMzYWI4MDJmYTUwNDcyZDgxYzE5YTMyMjIzZGYxNjEgbGVnYWN5LXRydW5rCisxNDAxMiBlMTJiZThmNTE4OGZkNzYyNTM1NDQ2YzczOTgwYzJiZGU0YTc0Mzk0IGxlZ2FjeS10cnVuaworMTQwMTMgYTA1YTA1NjAyOTAyOGE4MDU4M2Q2YWZlY2YyNDgzZWIzYmIyMTUyMSBsZWdhY3ktdHJ1bmsKKzE0MDE0IGU3NGVmMmI1MDU1NTZlZDNkZWU4YWUwMTE5MDQ5OWUzYjJmYmJjNDUgbGVnYWN5LXRydW5rCisxNDAxNSA3ZTQyOWU0Njk2OGEyNDYxYTFkM2U5ZDBiNGRiNDE2ODc4Zjk0NjE3IGxlZ2FjeS10cnVuaworMTQwMTYgNDI2OThmMzQ1YmQzMDQwYzQyNTY5ZjIyNDk4NGE4Y2Y1YTcwZTJhZiBsZWdhY3ktdHJ1bmsKKzE0MDE3IGVmMDNmMTZhZTVlYjI3NTM0ODNjMDZlMjRhZTc3OGY1NTI3OTQ2ZGIgbGVnYWN5LXRydW5rCisxNDAxOCA2YzVlMTJjNWE2MTY0ZDJkMWE4YjQ1MTQ2ZmNhNjdlMTE2YTY4NjY2IGxlZ2FjeS10cnVuaworMTQwMTkgMTJmNDYyZmQyNGY3NTNlZTI1MmFlNmEyN2ZhMDYxYzc1YTdmNTFkOCBsZWdhY3ktdHJ1bmsKKzE0MDIwIGQwZjRhNzliOTg1ZDRkZmRiYmVhNWM2MDE2MTI3Nzc1MjY3OWY0NzQgbGVnYWN5LXRydW5rCisxNDAyMSAyNDU5ZjExNzYxZjA5NTdkODhlOGNjMGUwYzdhZTU2OWU0MDBmMWVjIGxlZ2FjeS10cnVuaworMTQwMjIgOTVhOTgzM2IwMDBlOTdkZmUyYWRjMTIxZmZhMjgwZjM0N2MzMDg4NiBsZWdhY3ktdHJ1bmsKKzE0MDIzIDE3ZTEyMzA1OTczZWFiMGE3YjY1ZWMxNzkwYzU0ODllMGNlMjcwNDAgbGVnYWN5LXRydW5rCisxNDAyNCBhYWFlZTdiMjMzODAyMTVjODZiOTUwYzExZTRhNWEwNDQxYzVjYjlhIGxlZ2FjeS10cnVuaworMTQwMjUgNjk4MGQwNmUzNjA3NTI4M2Y4NTA0NDg4ODkxNTI2MmM5ZGE1MGJkMSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQwMjYgNjc1N2U4MGM3NDc4MzI2OWEyMmEwNTg3MjFhYzlmNmY5MGNmYmRhNCBsZWdhY3ktdHJ1bmsKKzE0MDI3IDA3N2ZmNmVmY2EzNWU4NDYxMjk1MWE3MTU0ZjYyNGE0YTVkNGI1OTkgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDI4IGExNzBiN2YwNGM2NDdhMWM0ZDE1ZmVjMDUxMzk4MGQ1MDIxM2UzYjAgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDI5IGFiMmE2ZjkxMGY2NTMxMjA5NjJmZWEyYTExMWVlYTFlODFmZGE3OTUgbGVnYWN5LXRydW5rCisxNDAzMCBhMjY3M2E4YmRjYTI4MjQyNWE5ZjQ3OTlkZGNkZDBlNDE1N2M4YjQxIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDAzMSAxNDhmZDQ3NWIzOTNkYzcyYmI4Mjg3NjFkYzY1MWZlZGRkZWY4N2JlIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDAzMiBiNGQwN2JlYWMwOWJlZWQ1NzNhZTNiMzU5YzEwMGM3OWRjYjI4M2FkIGxlZ2FjeS10cnVuaworMTQwMzMgMTg1NTEzMWE0ZGNkNDdhMDQwZmJhYzcyNTE3MmY4ZGQyOGRlNmIyNCBsZWdhY3ktdHJ1bmsKKzE0MDM0IGMwNTM2M2NmMWI3M2IwZjI1ZmM3MTY0MjYyNjBkOTk5YTI2ZTVjZDcgbGVnYWN5LXRydW5rCisxNDAzNSA5NmYzZWJhY2E2YWU1ODBmMTEyZTJhNzAxYmFlNDZjNjg3NWY3M2I1IGxlZ2FjeS10cnVuaworMTQwMzYgNGYyNzY4OTMzMzEzYWQ0MTE0YzYwNjY0M2Y2ZjJhYzQzZTNkNTk3YSBsZWdhY3ktdHJ1bmsKKzE0MDM3IDA5ZDM1MTg4MmM1MTBmOTZmOTZhYmRlZDA0MWFjNjA5YTU0MTkyNmQgbGVnYWN5LXRydW5rCisxNDAzOCBhZjExYWRjM2NiZDcxN2M2ZWZlYThmM2Q3NTcwZGJjNmQzMzAzYWY5IGxlZ2FjeS10cnVuaworMTQwMzkgOGI0NmVlMzI1ZGMwM2U2MjhjYWY3NzEyYmYzMDUwNmJkYTM4MmZiYyBsZWdhY3ktdHJ1bmsKKzE0MDQwIGM5Y2Q0YmJlZDhlMjgzZTI2NTcxMWQ5OGU2MWNiNzQyMzJkNjllYTAgbGVnYWN5LXRydW5rCisxNDA0MSBmMjFmMTk4ODZlZTM4ZjVmOGNjYWJhYThhMjUwNzgzNWI2NjQzMzYxIGxlZ2FjeS10cnVuaworMTQwNDIgNWM1YTNhNWNjNzlmY2RlNjJkMWM0OGZkMGFlZjNjNDVjZTcwMTg0YSBsZWdhY3ktdHJ1bmsKKzE0MDQzIGUyNDA4NzQ0ZGM3ZjM5ZTc2OWZiNjkyNjE2YmMzNzczOGFlZjYwYWQgbGVnYWN5LXRydW5rCisxNDA0NCBiYWI0NmFjYTJiZWNlNjYwMzRiODFlNGRkZGM0ZWQyMjY2N2FmMTY2IGxlZ2FjeS10cnVuaworMTQwNDUgYTk3ZTYyNWVkNWQwNGQwNWQxZTBmNmQ4Yzk2MzQ2OTVkYjI3OGZhMSBsZWdhY3ktdHJ1bmsKKzE0MDQ2IDdkYzkyNzIwNGQ2NTgyZTEyZTM5NzY5ZDJkZDUwOGU0MmE3ODEzYTAgbGVnYWN5LXRydW5rCisxNDA0NyAwNjgwZTY3YTBkNDk1NzM3ZDIxMzJjMDdkZGY5NGRiODdmNjg4ZWJkIGxlZ2FjeS10cnVuaworMTQwNDggNmI4Zjc0NmJiZDVhYTAyYTIzYjBjZGMzYmM1YTA1NjcwOWJlNmMzOCBsZWdhY3ktdHJ1bmsKKzE0MDQ5IDM0YjZhOTJmYTA4ODQyZmRjNzcwYWIyMGMwZmNmMTgzYjg3MGU1NGUgbGVnYWN5LXRydW5rCisxNDA1MCA5Y2RmM2ZhZGRhOTI3NmM2MmE1MTRiZDVhNTU4NzMzMzVkNDQ3M2ZkIGxlZ2FjeS10cnVuaworMTQwNTEgNTg1MTNlYmE1NjY0MzAwNjU0MzAxMDhiYjM0MmJkYjBmYzQyYWUxYiBsZWdhY3ktdHJ1bmsKKzE0MDUyIGJkZTA2ZDlkNGNiNGYxNjJmYTgxZjZlMTE3MzJhMDU4MTJkYzY2MDQgbGVnYWN5LXRydW5rCisxNDA1MyBiZGFlNjFhZWJhNTVlODczOGNlM2YzMzk2NTdmZDgxNjc3MmE2MWFkIGxlZ2FjeS10cnVuaworMTQwNTQgNzAzNGI3NWFhZDAzYjcxNDZmZjUxNWU2Njg3NWEyMzlmZWZmNjQxOSBsZWdhY3ktdHJ1bmsKKzE0MDU1IDNiMjBlNTBmMmQ4M2EzMTczZDNhMmZlZGY1ZGJlZTA4N2NkMzU3ZTggbGVnYWN5LXRydW5rCisxNDA1NiBkMDIzZDFjOWFjNDkxNDZmMTE4NzViYTk1NWRlZmIxOWY2ZGE2YWUxIGxlZ2FjeS10cnVuaworMTQwNTcgY2ViMDZkZTIzZmFhOTJlMWU1YTFkODFmMjI5MjZlYjg3NThmYWJkZiBsZWdhY3ktdHJ1bmsKKzE0MDU4IDYxMmI4MjMwYzZlN2ZjNjk3MDFmNDFjODk2MjU2NDBmMjBjMzZiOTcgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDU5IDAyYWUyZTU1NWVmOWQyNmVmZmZkNDc2NjcwNzgwYzJjMTFjNjhmMzcgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDYwIDU5MTE0YmUyMWE3NWY4OTdjZDRiZDg3YTlhOGE3MTQwN2ZiYWFkZDkgbGVnYWN5LXRydW5rCisxNDA2MSBkZmUzNzE5ZDc4ZTlkYzZlZWFjYmUzNjRjNDBkZTZiYWY3NDQ0ZGIxIGxlZ2FjeS10cnVuaworMTQwNjIgMzNmN2IxMmM3NzZjZmI2ZDk0ZjNkZmM1YTE5MmM4ZjAxOTQ0YzZlOSBsZWdhY3ktdHJ1bmsKKzE0MDYzIGNkZTg4MzdjODI1OWFkMDlkMjZmZmM0NmExZTU5NTU1N2Y1NmNmNDMgbGVnYWN5LXRydW5rCisxNDA2NCA5MjNiNDNkYjM4MTQ2MmIyZjc0M2JiZTg4YjA0YTBmZDVhN2ZkMTZmIGxlZ2FjeS10cnVuaworMTQwNjUgMTZiMTFhY2QzZThjM2Q1OGQzZjhjZDhjMWUzZjgxMmNhYjQ2NWIxZSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQwNjYgNzU2MzUxNzA3Y2FjYzViY2QwYjllMDFkZDBjOTcwZmY2NGY2MzY3YSBsZWdhY3ktdHJ1bmsKKzE0MDY3IGQ3MTk5YjlmOTA5MTJhYTM3NTQyMDhlNDA3ZTU4YjlmMjYwMWI4N2EgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDY4IDRjNTAzMGQ0MmM2ZmZlY2QzMjdlOTNiYTZiZTRlNTE5N2IyMWFkYTUgbGVnYWN5LXRydW5rCisxNDA2OSBiMDRiZjI3NzRkMDVlZGM3NGU1MTliMzViNzUwODkwNjM1OTk3ODJlIGxlZ2FjeS10cnVuaworMTQwNzAgN2VmZWNjNWEzOTRjNjlhN2ZkMzAwNjRkNDI3NmZhNWFlNTRjMmVhOSBsZWdhY3ktdHJ1bmsKKzE0MDcxIDdlNWY1MWRjMWI0YjlhMTQ5NTcwMzQ2MzQ5MzUxZDE2OTc4MjEyODMgbGVnYWN5LXRydW5rCisxNDA3MiA5NjM2YTUwMmY3OTE3ZDFkMGQyMmM3ZDMwNWVjOWI3NGM2ODNkZjU1IGxlZ2FjeS10cnVuaworMTQwNzMgMzNlOGU3NDA5YjEyMDIwMzFhYTQ5OTU4ZDAzNTBlZTUwMzFkYzI1ZCBsZWdhY3ktdHJ1bmsKKzE0MDc0IGNhODhlNTlhNmViY2EzYjhkMzFiMTcxN2U0MmI1ZWI2MWYyOGE4MmIgbGVnYWN5LXRydW5rCisxNDA3NSAzYjcxY2RmYTAyYzc0MmMyNjJkOGFjMTk2MmQ4NDExNjFhOThhN2JhIGxlZ2FjeS10cnVuaworMTQwNzYgYzdmMGFhNDUxMGUyNjM4ZTA0OTk5ZTE4ZTNlNGUwMzE1ODcyMDRjYiBsZWdhY3ktdHJ1bmsKKzE0MDc3IGRhNmYxNjkzY2Q2NTEzYzAzMjA3NzgzYWFjYmRmNDZmMzJhMjgwM2YgbGVnYWN5LXRydW5rCisxNDA3OCA5ZWFjZDI5ZTYwNjYxODA0MmRlNTI4NGJjMDgzZmZjZTMzNWU5ZTJhIGxlZ2FjeS10cnVuaworMTQwNzkgM2YyNzQ0NzhjNGRhYTk4OWQwNzY3NDgxODc5ZDFhNTliZTU4YWNlZiBsZWdhY3ktdHJ1bmsKKzE0MDgwIDUzZDljMTU2MGZlMTRmM2ZiOTQwNGE1NzljYzAxZWJlYjEyMzNhMmUgbGVnYWN5LXRydW5rCisxNDA4MSA2NjQzODZkNjk2N2NhZWZjY2Q3YWM5YzJhMjQ3OTM2NzQyYTMyMmMyIGxlZ2FjeS10cnVuaworMTQwODIgOWNhMzA0NTNkZDRlNGU0NzYxYmZlZGIyNTMzMGIxMzEyOWFkMzk3ZSBsZWdhY3ktdHJ1bmsKKzE0MDgzIGY5Zjc1YjIxMmRhNDE4OWNmYWYyNzUwYzk2NTVmYTc1Y2IwOWEyNmYgbGVnYWN5LXRydW5rCisxNDA4NCAwMWY3YTEzNmM2NzdmMTE5ODNjMjVlMmUzNzg3OWMzY2FjMWY0MWY4IGxlZ2FjeS10cnVuaworMTQwODUgMTc1ZDdmNjgwNGQ3YTNiNmM5M2FkYTQ2N2QyYjE2ZTA3YWI2NWRjMCBsZWdhY3ktdHJ1bmsKKzE0MDg2IDcxMjgxZmY4YzZhMmJhNTYwOTE2NDQwYWNjMjhiZjE5MWVmOTVjNTIgbGVnYWN5LXRydW5rCisxNDA4NyBjYzQxMmRmZDc5Zjc3YzdkYjA4OGEyYmJjMTRiNTk1NmU1ZWMyMWRiIGxlZ2FjeS10cnVuaworMTQwODggMTZmYzcxN2JlYTNjOWFlYjM4MDYzMDdmMzllZTY1MWI2YzZmNDRhNSBsZWdhY3ktdHJ1bmsKKzE0MDg5IGMwZWI2M2M4ZjFmZWJiOGNhOThmMzBiOTFhYzYxYWI5MWVhN2RlOWMgbGVnYWN5LXRydW5rCisxNDA5MCBiYTA3ZmZmNzI1MTFiMmM5NDgxYzIwZTdmNjdiZTY3MDkxNjU1NmFkIGxlZ2FjeS10cnVuaworMTQwOTEgNGRiYjdjNjA5YWMxZjViNWQwMTM3MzdlYWM5YTgyNmQ1N2VlODIzOSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQwOTIgY2JmNThjZDBiYjU3NDI5MjkyOTI2NjRiMWM5Mjc2ZWEzMGFkYzk4ZiBsZWdhY3ktdHJ1bmsKKzE0MDkzIDgyZmIwMmRlNTQyMTEzOTM3YzQzZWQ3YmRjM2IwNjBjNDlmOGQ3MjMgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDk0IDVhMmYxM2E3YmQ0NWYwNzkzMTg1MTMwMjEyY2RkOWFhYzFiZTcwYTEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDk1IDgwYWMwNzY4MWFiZWIxMjNiZTE4YWRhMTM2M2FhNDkxOWZmOTRjZGUgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDk2IDkwNjZmNjI3ZDM2MmYxMTkzNTQwZTQ1MDQ0MTZjZjQxMjYzMGJlYzYgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MDk3IGI1YmJjY2I3NWYyZGQ5MzVkNmVkNWJiZTA0YzIyOTRjYzY5ZDg5NmYgbGVnYWN5LXRydW5rCisxNDA5OCBhNDZjOWNiNDIxMjNlOWU5Yzc1MGQxZjVjZTVjN2U1OTM2M2NlMzQyIGxlZ2FjeS10cnVuaworMTQwOTkgYjEyYTExYWUxMjNjZjg1YjA5ZDlmMjQzM2JiMmQyOWYwOTgzZTMyNyBsZWdhY3ktdHJ1bmsKKzE0MTAwIDVjMTM1Y2VhYjIwYzU0NGRkMDBhNThmMTdlOGZkYjlmNTFkOGI2NTggbGVnYWN5LXRydW5rCisxNDEwMSA3NjFkMjVjZmMyNTk0MTJkNThmYmUwOTc1NWM0ODJkYjNlY2U3MzUyIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDEwMiBmODg2ZmRlNzY1YTA1NzAwNDQ5MDk5YmY3OTEzN2M2MWIyZmIwOTQzIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDEwMyAyOGI4NTg1MzU0ZGU1ODA4OTQzZThlMzkzMjIxZmM4NDYxMjc5ZGY1IGxlZ2FjeS10cnVuaworMTQxMDQgNTM1ZjQwZjlmODdkYzY3OTg4OTc3MjM0NzBkYWIzZGM5NGE2ZjVkYiBsZWdhY3ktdHJ1bmsKKzE0MTA1IGY4M2I3NDI3M2RhMjNhMDA4YzI0NzU1NzM3NDViMjZiOWJlZGYyYTAgbGVnYWN5LXRydW5rCisxNDEwNiA4MDU2OWQ3MjUzMjkxYTAwZTEyYTUzMDUwNjBiYjAwY2EyNTE3MjQ2IGxlZ2FjeS10cnVuaworMTQxMDcgOGNmY2QyNzNmYTVjYTJiNjQ0ZWZmN2I3ZGUxMDk1NWQ4ZDMxNWRiOCBsZWdhY3ktdHJ1bmsKKzE0MTA4IDI5NTFlMmQyNzg1MjJlZDQwMzdjYjg1MjBmZDU0ZWFjZGY4YTYxZjkgbGVnYWN5LXRydW5rCisxNDEwOSBhODNkMmExY2UxOTdhMzlhNzIyZWU4MmNmYmMzNGEyNTFhOWM1MzViIGxlZ2FjeS10cnVuaworMTQxMTAgNjgzNjRiZjAwMmYxMzg5MGIyYThkNTQ1OTRiMWFkMTY1YTgyNmM3YiBsZWdhY3ktdHJ1bmsKKzE0MTExIGJiZDNhOGFkN2NiNzY2NzI5YTZjMTY0YmQ3NGQ2YjM0Yjk0ZDk0YzggbGVnYWN5LXRydW5rCisxNDExMiBiM2U1NWNlMGViZDc1ZjRiMzhhNDg5YzRiOWRiNDY3ZTYwY2YyMGE3IGxlZ2FjeS10cnVuaworMTQxMTMgYWZiOTg3YTg0NGRiYTIxNzgzNDFmNDYxMTRjODllNmIxMzk0ZmJkOCBsZWdhY3ktdHJ1bmsKKzE0MTE0IDI2MGQ0MGYyMDA3NzhmZWY4YzJiMGQ5M2M0Y2RkZmIxNzk4ZmZiYzQgbGVnYWN5LXRydW5rCisxNDExNSA0YzY5M2ViMzIzYzZmMzE3MzJlZjVlZDhjMzZiZWRkMDc0NjE0M2UyIGxlZ2FjeS10cnVuaworMTQxMTYgNTBmN2QzNDVmMTU3YTZlMDc1ZDE3ZDVlNDA4NGUwOWY4ZDlmNWIyYSBsZWdhY3ktdHJ1bmsKKzE0MTE3IGI2MDVjNDY2ZDFjMGU4ZmMxNjYzY2ZiMDY2ZjI1ZDI0MGNlOWVlZDcgbGVnYWN5LXRydW5rCisxNDExOCAxOGZjMDhmYzlmZDQ3OGUyZGM2MjE3ODg3M2UyNGVkZTFkODM0NmRlIGxlZ2FjeS10cnVuaworMTQxMTkgOGQ0Y2E3YmU3Mzc5OGM5NzAwMTk3NjA3YTg0ZjI3YTAxNTYzODFlNyBsZWdhY3ktdHJ1bmsKKzE0MTIwIDkwZmZjMDdmNWQxMGYwMWQ2ZjI0YTE1Mzc0YWVmOTRlODQwYmZmZWEgbGVnYWN5LXRydW5rCisxNDEyMSA3NTU1OTkwZThkYjlhNDEzYTI0NjJlZGQ5MjhjODdhMjc4Y2QxYTY4IGxlZ2FjeS10cnVuaworMTQxMjIgZjcwMWU5MTYzYzc2ZDEzNTI5OWU4MzRiY2FjOTNhZjJiYzBjY2Q0YiBsZWdhY3ktdHJ1bmsKKzE0MTIzIDIzNmQ4NDI4YzRjNTBkYmQxYjI4YWUwZTBlYThkYTE3NjE2NWY3MjggbGVnYWN5LXRydW5rCisxNDEyNCBjMDQyZTQxNDBmMWVlM2M4OWNhNGY2MWNjYjNmMTc2M2VlYzM4NjMzIGxlZ2FjeS10cnVuaworMTQxMjUgNzNlYzY2YWRkOTQ3OGRlY2NkZmM2NWI3ZTA4ZjU1MTQ1MmJkMjVjZiBsZWdhY3ktdHJ1bmsKKzE0MTI2IDgxOThjNTMxYmJjNDdkNTgxOTFiNGJjOTMwNzgyZjA4MzQ1NzViMjEgbGVnYWN5LXRydW5rCisxNDEyNyBlZWFjNTRjYmIxZGNlZDBlYzk3NjFkY2JkMDUzODcyNGFjMTY5MzczIGxlZ2FjeS10cnVuaworMTQxMjggODk0M2I3N2YyMTlhZjE3MjYwMTY5MTU2N2JlM2VhN2E5ODJmZTI3MCBsZWdhY3ktdHJ1bmsKKzE0MTI5IDM5ZDY2YTA2N2QwYmYzODYyMzEzY2NiOThlYTNhYTNlOWYwMWViN2QgbGVnYWN5LXRydW5rCisxNDEzMCBiZWY4NjY4NmI3NTJiN2FhMTgyMjE2MzhhZTVlYTk5NjA3NGViNTEwIGxlZ2FjeS10cnVuaworMTQxMzEgN2E0ZjYyNDljOTc4N2RjNmJhMjkxNjcyYjA5ZWEwNTI1MWZiNDFkMyBsZWdhY3ktdHJ1bmsKKzE0MTMyIGIxN2VmNTRjOTFjNDFmZTJiNDAzY2QyNzFjNTcwYzY1N2MwNzk0MjUgbGVnYWN5LXRydW5rCisxNDEzMyAxNTZiMWJmZWMzYjg5ZDdjMDYxMGVhN2FmNzJhMDM2ZDY5MTZmY2IwIGxlZ2FjeS10cnVuaworMTQxMzQgNDUyMGY2OTNiNzY1ZjY4MzI5M2ZhZWZlMmRjYjcwZTc5ZGMzN2MxMSBsZWdhY3ktdHJ1bmsKKzE0MTM1IDIyZjRjZjE2YjVhMzE2MThiMzMyZDg1MjhlNjc3MjcxZTc2MDJiNTQgbGVnYWN5LXRydW5rCisxNDEzNiAyY2I1NmU5OGNmNTIzYWM1ZThlMzM1NDQyYThjOWJjZmY1OTgxMmNkIGxlZ2FjeS10cnVuaworMTQxMzcgMWU3ZWZjMThhODlkYjQ1MTUwMmFlYzFmNGViZDQ3MmM2NmYxNDBhNyBsZWdhY3ktdHJ1bmsKKzE0MTM4IGM3MTE1NWNlMTIxNTlmYWYyYzBhZDE4MzJkOGYxMzAzMzNiODcxNTMgbGVnYWN5LXRydW5rCisxNDEzOSBjYTE1Y2NjMjZmMGMyZGI1OTJlYmY3ZjI0YjVhMDI2ZWJkZmRkOTM5IGxlZ2FjeS10cnVuaworMTQxNDAgOGVmZWI4NzEyMTViNDhmMWEzY2ZhZjIxNWFjMThmMWY2MWE5NTUxYiBsZWdhY3ktdHJ1bmsKKzE0MTQxIDA0YWZiODdkMTEwM2QxMmZjNjQ3YjBlYmIwNjdmOTNkZGQ5NDY3MjQgbGVnYWN5LXRydW5rCisxNDE0MiBlMjY2MGFmZGMzODFiOGM2NWYxOGVjMmNjYTRhNmRiODlkZDRmMGI4IGxlZ2FjeS10cnVuaworMTQxNDMgNTI1NWQwNTA0MGMyNTIyMjc1ZGQzMzU0ODIxMDdmMmVhZmUwZDM5NyBsZWdhY3ktdHJ1bmsKKzE0MTQ0IGQ0NzMxZTQzZmE2MDUzYTQyYzQzYTA5YjAwMTUzZjA3NDZjNzRiZTMgbGVnYWN5LXRydW5rCisxNDE0NSA2YWJjNTBiYjQ3MDc0ZDM4YmM4YWVjYmEzODQwMTI3MWNkODVkNTk4IGxlZ2FjeS10cnVuaworMTQxNDYgODg1ODIwZmE3ZTMxODc3OGFiNzZiZmZhYWVlNmE2NjFkNDg0ZDVmYiBsZWdhY3ktdHJ1bmsKKzE0MTQ3IDA3ZDJlYTcxYWNkYzY2MDA2MmRkZjk0Y2JjMGRmZDg3YTNkMWEyYmMgbGVnYWN5LXRydW5rCisxNDE0OCAyMmMwM2FiNGZiMTY1MjVkNTMzMmFmY2IzMjFmYTgwMGNjNzNjNTgzIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDE0OSA2YWRjM2M1ZmExODVhMTFhOWVjNDM2ZmE4NTExZjFiYjcwY2VlZDY4IGxlZ2FjeS10cnVuaworMTQxNTAgYzVhYmM4MWRkMWVlZDkwMjQ0OGQ1ZjAzNThhYmJiYmVkYmMzYTQ2NCBsZWdhY3ktdHJ1bmsKKzE0MTUxIGZkMGQzMWMzNDZiMmJiNDk4M2FiZDAzODY0NmIxYTZiNWExYWQ2MzggbGVnYWN5LXRydW5rCisxNDE1MiA1NWRmMzcwM2M5NTNiNjdlMDZkNTBjZTViM2Q0MjA4ZDY3MGIzZmNiIGxlZ2FjeS10cnVuaworMTQxNTMgZjU3ZmY0Mjg5ZmM2NGI2YjhkMjZkZTYxNDMxZjdlMGQ2N2Y3OWY0OCBsZWdhY3ktdHJ1bmsKKzE0MTU0IDU3YzE2ODVhY2IxNjczZWVmZTQwMmNhYmZmMDcyMTUxN2FiMzdmMWYgbGVnYWN5LXRydW5rCisxNDE1NSA0YzNlNTVjODI4ZDNiZTNhMmZjN2FjZWFhMDAyNmJlMGYzYTZiMjM5IGxlZ2FjeS10cnVuaworMTQxNTYgNDlkNmQzMDI3N2RhNzdjOWJkZjQ5ZGE0MmFiZGFiMDgyMWJjM2MwNCBsZWdhY3ktdHJ1bmsKKzE0MTU3IDY2YWEyMWY1MGVhMzUxMGNmZTBhYzI5YTVmOTM3MDU5ZTc4MTQxM2QgbGVnYWN5LXRydW5rCisxNDE1OSAzZmUyN2JiMmYxMTkzNDBhMDMxNGRlYmVkMDIyNWZjMmVkZDk2OWUzIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDE2MCAyNzNhNWU5YWE2MzNlMzAzZTJjNmI3ZTlmNTcwMTQxMjEzOTU0ZjhlIGxlZ2FjeS10cnVuaworMTQxNjEgODZhMTYzYTUzYjFjYWI3ZTg5NDg0ZjQyZWQzYjBhYTNiZTZjYjhhZCBsZWdhY3ktdHJ1bmsKKzE0MTYyIGYzNjExY2IzYTI2MTczNzQyMWYxOWU5MjdhZWE4ZTZlZjc2MzA0ZTYgbGVnYWN5LXRydW5rCisxNDE2MyAxNzc1OTAwZGIxMDg3NTRmNmY1MGJlZTM5YjM5OTY3NTY0Yjc0MjljIGxlZ2FjeS10cnVuaworMTQxNjQgNTdhYTI3N2Q3YTAwZGU3ZTMxZGVhOGJlMDgzMWM3YTc4NTU5ZmRkMSBsZWdhY3ktdHJ1bmsKKzE0MTY1IGM2MjA1YmM3MTBlZThiMmIxZDJkZDJmM2VkODU1NTg2NDgyMjUzYjUgbGVnYWN5LXRydW5rCisxNDE2NiAzZmZkZjA1ZjU2MzVkZjNiYzQ4ZmIwYjIwM2Y4ODNlOWFiMjE3MzQ4IGxlZ2FjeS10cnVuaworMTQxNjcgYWY1YWQ1ZWRiN2E1ZGExZjAxOGRlNzljYWFlZTliYzVkNTNlMGUzZCBsZWdhY3ktdHJ1bmsKKzE0MTY4IDRiZDRiZDNiNTk3YWJlNjVmOTY2YjdiYzk4YmE3OGU5ZWE4N2Y0MmYgbGVnYWN5LXRydW5rCisxNDE2OSA2NDhkOTdiZDNhYzZjMzc3NWM4ZDQxZGU4MGI0NWFiNjkxNmQzYjlmIGxlZ2FjeS10cnVuaworMTQxNzAgMTEzMWJmYTFhZDk5MzIzNjg5ZGY3YTIzYzJjN2RjZGMxNjE2YTY2ZCBsZWdhY3ktdHJ1bmsKKzE0MTcxIDFiMmUzZTJhMjQzNzkzZjYwZGEwMmRjZjk1YzhkNjAzOWY4ZDM4ZTUgbGVnYWN5LXRydW5rCisxNDE3MiBjYWIzZmY1NTFmNGJjNjI2NTRlMjhlMWFhNzY1ODg0N2E2ZTYwYTNkIGxlZ2FjeS10cnVuaworMTQxNzMgZjI0OTY1ZTc3Yjg1NTZiYWQ1ZGVmMGEwNGU4MTdhNjBlOTNkZTNiMSBsZWdhY3ktdHJ1bmsKKzE0MTc0IGUwZTAxMWU0MDczYzVhNWEyZGIxMzRmM2I1ZWRmMGEwZTkwNGIxODggbGVnYWN5LXRydW5rCisxNDE3NSAxNWU1YmQ4OTM5NWE3ZDUyMDdkMjM4MWY3MmJlMzE4YzJlNzNjYWY5IGxlZ2FjeS10cnVuaworMTQxNzYgMjM4YjQzOTg4MmU1MjNiOGQ1OTA2ZTliYTE2MDA5N2NkNzJkNmUxMiBsZWdhY3ktdHJ1bmsKKzE0MTc3IDAxMTcxYmU0NzY5ZDEzZTQzNzlmNWI3NDdlZmRlODdkM2NhOGZmZmIgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MTc4IDc3MDYxOGQ5YTdmY2ZhMGQ3OGUyYWIzNzVmYmZmNTg5MzEyNGQwMzcgbGVnYWN5LXRydW5rCisxNDE3OSA3OGZlODdjZTBkZWQxMDYyMzcwMzYwOTk0ZDM3NzQ0ZDVlM2FkNWJlIGxlZ2FjeS10cnVuaworMTQxODAgMTQ1NjFlODM5NWJiOWRlZmU4NTNlMDY5M2YyMzgxMWMyMjA3OGRiOCBsZWdhY3ktdHJ1bmsKKzE0MTgxIDBiYWQ5ZDhiOTQ1ZjcyMjM5NGVmMGYxNzIyNzk2MDIzMDExMWQxOWIgbGVnYWN5LXRydW5rCisxNDE4MiA1NzM4YWQ3MzcxMTQ0NzM5YTJlZjNjM2E0ZjQyZDgyZDBiYTVjNGQzIGxlZ2FjeS10cnVuaworMTQxODMgMmFhYjQ3NDg0MDEyMjJlNzBiNmQ3ZTE1YjUwMzJlZTkwYzQ0NzVjZSBsZWdhY3ktdHJ1bmsKKzE0MTg0IDFjZmQ4MTc2OGU3MDM1ZDM5ZDMxNDc4MGIyN2EzODRmODUxMzdiZDIgbGVnYWN5LXRydW5rCisxNDE4NSBlY2Q2Njc5OGNmMGJkYmNkOTlmMzliY2RkNjU1MjBkYWM3YzZlYjU3IGxlZ2FjeS10cnVuaworMTQxODYgMTNkYWFkOGE2ZWVlMTA4Yzg0MTkzYzczMGQxYjc0YTQ4NmE5YjRlYyBsZWdhY3ktdHJ1bmsKKzE0MTg3IDY5MjE2YzExYTFiZDdjNjZmMjI0ZDkzNDQyNzg3MGY1ODJjMWM4OGUgbGVnYWN5LXRydW5rCisxNDE4OCA5ZWM3ZDk3ODgwMGQyNjY4ODNmZmU4ZmM0NTdhMjEyZDUwNzhkMjI2IGxlZ2FjeS10cnVuaworMTQxODkgYjM2MDQxMGQ2M2M2NzcxYjgxOGM3Y2M2YmRlN2ZjOTliNDRhYWY5MSBsZWdhY3ktdHJ1bmsKKzE0MTkwIDZkOGNiNjZjZDIzODU2NDVjMDU2N2EwNjhkZDY3YmYyNzY2MTQyNDMgbGVnYWN5LXRydW5rCisxNDE5MSAwODMxM2FjMTdjZjNkYWM2NjI1MjdkMTIzYWJiMjAxYzA0ZDMzOWJhIGxlZ2FjeS10cnVuaworMTQxOTIgNjc1Mjg0NDk3NDQzZTIyOTY5MTA4OWEwMjY0Y2EwYmMwOTE5N2Q2NiBsZWdhY3ktdHJ1bmsKKzE0MTkzIDIwYWYwMmE1N2E1ZjFlMzU4MTQ4OTdhNTQ0NTllMzY2ZTk2MjZiZmUgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MTk0IDY4YzI1OWI2ZTZjZGY4Y2QzYTVmZWI3ZTJmMzNmYmJkMTIzNGY1YTMgbGVnYWN5LXRydW5rCisxNDE5NSA1OTAyNzJhYmU2OWM4NWJjM2ZmYzA1ZDJkYjg4MDY3ZTA3MjQxYjNhIGxlZ2FjeS10cnVuaworMTQxOTYgYmIxZjQzZjI1Y2UwOWE1M2I5YmFmZjNkMDU0YTllNDBiMzVmYjE5OSBsZWdhY3ktdHJ1bmsKKzE0MTk3IGE3MGRjNzNhMjhkZTA5MzI0NTBiNDRiOTJmZjY4ZTY0ZGM0YzlhMWMgbGVnYWN5LXRydW5rCisxNDE5OCAxMDdjZTI5YjA0YTQ1ZDg0ODM4MTUwMDU3NjU2MmE2OTQ5NTdkOTQ0IGxlZ2FjeS10cnVuaworMTQxOTkgNTI4NTU5YTBiMmYyNTIwZTk4NzFkOTA0NmNkODNkZjRhZWJiOTY2NyBsZWdhY3ktdHJ1bmsKKzE0MjAwIDkxMjQ1ZGM5NDBlYmFmMDIxZjQzNzhlNmViZWNkMzM4YzE5ZmZmODAgbGVnYWN5LXRydW5rCisxNDIwMSA4Y2Y3YjIzZmI5NTUxNmUwM2NiMTkwMmMyNjMwNWFjZTczMzEwYzI0IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDIwMiBjODdiODYxYzZlYzYwNjExYjczMDliY2UwMTIxNzhkYjBjYzY3MDlhIGxlZ2FjeS10cnVuaworMTQyMDMgMGVjODAzY2JkODcyMjVhZTVmMDNmNGU3ZmI4ZDdkNDYwNDZjOTc4ZCBsZWdhY3ktdHJ1bmsKKzE0MjA0IDY1ZGMwODJmNzAwNGExZDNmYTU4OGRhNjgwM2RmMjEzNjU4OGJhOGYgbGVnYWN5LXRydW5rCisxNDIwNSA2ZjIxMTljZDk5ZDI1NmFjNjdlNzgyMzgzNWY1NjcxOWQxNjY1MjljIGxlZ2FjeS10cnVuaworMTQyMDYgM2MyMTNlMzcyYjIyODlmNzg3YTNlNmIyOTQ0ZGE3MTQ3OGUwODE4YSBsZWdhY3ktdHJ1bmsKKzE0MjA3IDkyYzUzYjBiMmVlNWEwZDY5MGM1NTA4YzlkN2Q5Mjg0MjQyNTc3NWIgbGVnYWN5LXRydW5rCisxNDIwOCBjNmUxNDNkZmM1YTMzMmIwNTkwYjBiNWNjNGY4OGYxYWY1M2JlODVjIGxlZ2FjeS10cnVuaworMTQyMDkgZDRlYTEzNjE3MzFiNjM1NjBhODEwYzYwNTY5MGM1NWI4NjJkZGEyYyBsZWdhY3ktdHJ1bmsKKzE0MjEwIDQ3ZjkzYTk2OTM2NmFiYTZlNDAzOTljODRlYTBiNTEwNDg5ZDk3YjIgbGVnYWN5LXRydW5rCisxNDIxMSBkN2U5NmNkZTZiNDdiZGQzZmI1NjY1M2I3YjYzYWNjZTFjMjQ2YmM2IGxlZ2FjeS10cnVuaworMTQyMTIgYzM1ZWVmOGEyMTcxYTUyNWRmYzczZmYzZmEwNjAxMjc0ODU4MzMwNCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQyMTMgNGUzMDk1YzRhZWEwZTc3YmNkYmFhNjEyMjZjYzU4MGM1NDczYWFlZSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQyMTQgZGZlMmJmYzgwNTBjYjkyOTM4ZWQ2NGYzN2RkZWJhNGY5MGI0NGU3ZCBsZWdhY3ktdHJ1bmsKKzE0MjE1IGI4MjczZTVkZTM3NGJmYjA3NzEzM2Y3ZGZiYmVhZDQ5N2M3NjkwMDEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MjE2IGNmN2EwZjFiN2I0OGI2YzhlZjgwYTg2NGJlN2Y5NTkxNWIxOTNmZDMgbGVnYWN5LXRydW5rCisxNDIxNyA0Y2Y5MjVmY2I1NjE5ZTZiNjc2N2Y0Y2QxNmRmNTA0MmU3YmVkNjBiIGxlZ2FjeS10cnVuaworMTQyMTggZjRjYzYwM2RkNzk5MWIzMWM0MWJkZDMxZmY2Zjc1NmJjMTIxYTllZCBsZWdhY3ktdHJ1bmsKKzE0MjE5IDgxNzU4OTE1NmYyMTYxN2Y4N2RmYTJjMWU0MTNiM2E3NGIxYTM4YTggbGVnYWN5LXRydW5rCisxNDIyMCA3Nzg1NDZkY2JhMDUyYmEwZmJkNWRiYTQ1MWQxZDBmODZjNWI1NDE4IGxlZ2FjeS10cnVuaworMTQyMjEgMzMyMjk4ODAxMGI1ZTE3MmQ0ODMxNDVlNDJjY2ViMDA5NTVmNWZhMiBsZWdhY3ktdHJ1bmsKKzE0MjIyIGE3ZjI3ZjMwMzk5NWRiNTRlMjE0ZjhiYTc4NzU2ZTBiNjlmNjM4YjkgbGVnYWN5LXRydW5rCisxNDIyMyBhOTRjMjk2YTZmY2NjYzgxMTU2ZDdlYjAyZTIwNmIwYjljNjIwOGUyIGxlZ2FjeS10cnVuaworMTQyMjQgY2Y3ZmNiMGM1YmRlMmIxZjUzOTg2NWRkNTRmNTEyZTY4YmVjNWM1MCBsZWdhY3ktdHJ1bmsKKzE0MjI1IDFmYzhlNjY3M2I0OGVkMjYyM2MzZWNjMjE1MDBhNDUwN2FhYjdlZWQgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MjI2IDg0ZmQzMWRkNGIxMjFiOWE3MjFlYWNlY2U2N2EwZWEyNGVkMjFmZWMgbGVnYWN5LXRydW5rCisxNDIyNyBhN2RmN2Q1MjNkMjkzNWJhNzYyNThhNzVmYjRkZWI5YzQyNzNjOWNmIGxlZ2FjeS10cnVuaworMTQyMjggYmNiMGQ2MzlhY2YyMWJkMjRkMWQ0ZWIzYTc0ZDUyMjZmMDg3MDEzNSBsZWdhY3ktdHJ1bmsKKzE0MjI5IDA2OWExZmQ0MGFiYmQ3NWQ2N2Y5MmFlOTIzOTgxM2Y5NTUyYmExZDEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MjMwIDg2ODkwYzA3M2MzYmZiY2FlYmEyM2RjMWJmODA5NTcxMGY4MmI0MjEgbGVnYWN5LXRydW5rCisxNDIzMSAxZGNmOWI3NTkzNzRmMjEzYWE3OWMyODAyZGYyMGY2Y2FkNWE1ZTU0IGxlZ2FjeS10cnVuaworMTQyMzIgNGEzMjQ3ZWRkYzQzODY5Y2YwMmYxNDRhNGEwNDE1YmViYzdmODVlNSBsZWdhY3ktdHJ1bmsKKzE0MjMzIDQ3MmExN2YyY2E5ZmNlMzE3MDJhZmQ1MDQ1ZTZhZGY3Y2RhMTM2ZTMgbGVnYWN5LXRydW5rCisxNDIzNCBjMGQ0ZWU5MzkxYjY4MjI2MTZkZjBkN2M0YmU0NGMzNDI4ZTUzOTI3IGxlZ2FjeS10cnVuaworMTQyMzUgZDA5MzRhODAzOGY2YTk2N2JhZDg5ZDRlNTQxYmY1MmE0ODQwMmZlMSBsZWdhY3ktdHJ1bmsKKzE0MjM2IDg3MDVlYTM5MGRiYTA1MmIwOTRhZTRhMTI3YmMyYWNiZWNlNDNkZWIgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MjM3IGRlZDk2MzY3ZThjYTcyYmViMmQ0ODVhZGQ5ZTFhYmIzOWRhNDEwOWYgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MjM4IGQzMzUyMDgyMGZhZmFjNGRhYTlkMTJlMWQ1NzRhYzM5ZDYzMDBmZjUgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MjM5IGU4Mjc2NzMzZGE4ZmJlOGM4ZDBmNjE1YzE4NzNjZmE3ZTNhOTVhOWMgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MjQwIDBiMDE5NGQ0MzUyZjMxMjRjOGRlMjViYTY2ODRiZjQ5ZTIyMWRmNDMgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MjQxIDM4NTYwYTNhMzI0OTEyYzU2OTEzNDhlODU5NzcyN2MwZTgwN2MwYWYgbGVnYWN5LXRydW5rCisxNDI0MiA5OWEwMWNiM2RkYjVlZjVkMTViYzQxYzA3M2FlYmEwZjM3MTVkNjliIGxlZ2FjeS10cnVuaworMTQyNDMgZDg4OTk2ZTQ2Y2IyY2UwMTFmMGVmYmQwMTk3NTc2YTNmODEwMDg4ZCBsZWdhY3ktdHJ1bmsKKzE0MjQ0IDk5YzliMTI2NjkwZGZiMDUwMjM1ODQ3NmIwYTFkNmRjODI3YzYxNjUgbGVnYWN5LXRydW5rCisxNDI0NSA0YzNjYTZjMDViY2IzMjFmOGQ3ZmE5YjQwODJmM2U1MzZjNzZmMGRmIGxlZ2FjeS10cnVuaworMTQyNDYgMGFkMjMzMjQwMTZlNGVkMzEyZmI5N2Q0NjAzZTU2MGQzMWYzNzk5MyBsZWdhY3ktdHJ1bmsKKzE0MjQ3IGZkNWNlYWQ3MzNiNjgyODhkMDkzMTAwZDE1OGMxY2QzZTgyM2E3MjAgbGVnYWN5LXRydW5rCisxNDI0OCBkYjc1NmQzMWU3MjdhM2JiY2Q2ZTdjNWZhMjQyNDliZmEzOTE4ZTBkIGxlZ2FjeS10cnVuaworMTQyNDkgMDIzZWQyNjYzMDc0NjNjZDIwNWZmMWQ4MmRlZTlmMmIxMTJhY2M1YyBsZWdhY3ktdHJ1bmsKKzE0MjUwIDBkMjdlOGQ4ZjA0YzFhMjAyOTY0NGZmYTFlYzNkN2VmNTU2YjQ3OGUgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MjUxIDY3NjQ2OWY3NWFlNjcyM2Q3MWI2NWM2Y2ExMTIwOGI2ODY0MzEwZDMgbGVnYWN5LXRydW5rCisxNDI1MiBlYTYxMDQ0Zjk4YWVkODYyZjJlOTg3MGQ2MGQzZjI2MGQ2Y2UyZTRkIGxlZ2FjeS10cnVuaworMTQyNTMgYWQ4NTk0MDg0MGNiYjViNTg4YjdjMjgyYWEzYzgzMGUyNGM4YWJlMCBsZWdhY3ktdHJ1bmsKKzE0MjU0IGI4OTZjMTJjMmVlYTVjYTM0OTcwNWQ4ZjdiMTZkNjM0ZGUyNWM5MDUgbGVnYWN5LXRydW5rCisxNDI1NSBjNDM0Zjk0MjdjOWIwM2M1MTljNDdhYWM4N2YwNTA3OWQ5NzE0ODhkIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDI1NiAyNGY4MTRkOWUzZmY1NDU0NWJlMjdmN2Q5NDgzMmQ3MzA1ODExZWNjIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDI1NyAwMDAxNzIyNWYwNzc5NTU1MTNjNzY4MmE1NzAxYWZlZTMyYTBhZDk5IGxlZ2FjeS10cnVuaworMTQyNTggMmFiNzRiMTkzMjg2ZDljOGRiYTYxZGE2ZjdmYTgzNjAxMWNiNGMyNiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQyNTkgNTI4ZWYzOGIzZDNhNzY3YTJhODQ1ZWQ3NGI4MDllMmJmOWRiNmIwNiBsZWdhY3ktdHJ1bmsKKzE0MjYwIDdmZGZhYWE2NTgyNzA5NjQzMTUyZjdmMzI4MjJiMjYwY2I2NjQ1NDMgbGVnYWN5LXRydW5rCisxNDI2MSBlOTk4YjM1MGE0YmIxZGExMmJiOGVjZWMxNjg5Y2RlZGVmZTc4YTYzIGxlZ2FjeS10cnVuaworMTQyNjIgODI4MzU1NGYxMzE5YTRkM2FkMGNiZDI0YzE0M2M2YmNkNmEzYTNmMCBsZWdhY3ktdHJ1bmsKKzE0MjYzIDc3MDljOTgzNTM4MjhjMmJiMjNiYWJkZWFkMjcwOGQzMWZlNzY4NmYgbGVnYWN5LXRydW5rCisxNDI2NCBiN2YyNjI4NzNiZTA0YmJlNGFmYzk4NGY2NjI2YjM1MWRkODhkZTAyIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDI2NSBhMjM4NmI5ZjQ3NGQ4YWIxYTU0N2ZkY2Q2MzcwYjk2ZGRhOWFjNmZjIGxlZ2FjeS10cnVuaworMTQyNjYgOTU1MTFmMzkzMTlhNGExZjc5YTQwMDlkMWFjZDU1ZGQxNTg4NmIzYiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQyNjcgYjgwMGUzNmFlZDRlYmRhYmVjY2RkZDI4NWUyMGZjZTExZDJjMjNiNyBsZWdhY3ktdHJ1bmsKKzE0MjY4IDQ0MmQ0Y2I0NDBjODgyMjg4NzgxMDYxMTE0ZWE1Y2FiOTQzN2JiMmMgbGVnYWN5LXRydW5rCisxNDI2OSBkZmY3YTAzZTdkMjRlZGEwOTE3YThmZTIyM2EyNWU2N2IxYjIxYjU1IGxlZ2FjeS10cnVuaworMTQyNzAgOGFmZDZmYjU4OGVlN2I5YzY1M2ZlODIyNTFmNjBiNGJhYWEzNjI1MyBsZWdhY3ktdHJ1bmsKKzE0MjcxIDVlNmU5ZTg5M2FjZGNlZmQ0M2FlYjUzOTZmZWIzMWZiMGQ5ZWU1NTQgbGVnYWN5LXRydW5rCisxNDI3MiBhMTI2ZmI1YzYyZGM3NDc4ODRmODI2OGE4ZjFmOWRmYjAyMzM2NDgyIGxlZ2FjeS10cnVuaworMTQyNzMgNDgzNzBjNjdkZDllNmM3ZmIxOTJkYTMyODBkYzYyZDUyNjVjOTIyZSBsZWdhY3ktdHJ1bmsKKzE0Mjc0IDQ4OTQ4M2I2NWIzYTNlYjFiYjk1MzM4NDM3NDNiZDQwOWE0ZjYxNjkgbGVnYWN5LXRydW5rCisxNDI3NSA2OWM5OTUxNjIyNzA2NDc0MWVmNWU3MGYzNmJjMjA2MzUxOTdjMjNhIGxlZ2FjeS10cnVuaworMTQyNzYgMDc1NmRmZWVjNGVlY2JkODM3N2VkNTE0M2M4ZDBiZTQzNGUxY2ExMiBsZWdhY3ktdHJ1bmsKKzE0Mjc3IDIxNmVmZGFkOWE0YjZmZjY1NDVlYjM3YWE1MGY4ZTE3Y2YzYmFmNWMgbGVnYWN5LXRydW5rCisxNDI3OCBmZjkxOTg1MzYyYzdjYzBkMjViY2ViMDJhNDE3ZWEzZWFjZGRlM2FjIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDI3OSBmOTRkNjYwMTY5MjFlOWQwZTA2ZTdhM2Y5Njc1YmIyZGUwMzkyMmUzIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDI4MCA5MTliMzdjNTJhODQyYTI2NWQ2NmZlYTY4MDdjM2FkZjhlODRiZWY2IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDI4MSBjYmY0NDEwMmQ0MmFmYzVkYjgyYjg2MWQ0ZDJkM2FlZjg4ODIzMTNlIGxlZ2FjeS10cnVuaworMTQyODIgNmQxZDVmM2NjYTVmYjYyYjk3OGE2OWI1YmJjMDExZjc5NGY3OGQ3MyBsZWdhY3ktdHJ1bmsKKzE0MjgzIDY3YzYyMzljN2JjN2FmYmZhYjUxNWQxYWIxYWRjODU0ZjZhZDg4Y2QgbGVnYWN5LXRydW5rCisxNDI4NCA0N2Y3NWExN2IxMDM3NGIyY2Q0Y2FjNjBkY2JjYTQwMGI2MWY1ZDdiIGxlZ2FjeS10cnVuaworMTQyODUgYTk0NzEzZDZkOWY2YTgzMDA4NDRjMjJhNGViYWFjYmVkNThkODRhZSBsZWdhY3ktdHJ1bmsKKzE0Mjg2IDVlZmI2MmFjZjI2ZWYzZDkzZjdlNjJlYjc3YjdiNGRlYjc2NTFmZDkgbGVnYWN5LXRydW5rCisxNDI4OCBiNWFlYzMzNzkwYzhlNTUyNWRlNDI4MTgyMGRjZjMzYjIxZDM0NzhhIERpc3R1dGlsc18wXzFfMy1icmFuY2gKKzE0Mjg5IDkzYmVkNjAzNTVlNGU5ZTU4NDg3NmJiZjIyNGUwZDhjYWE3ZGM0YTEgbGVnYWN5LXRydW5rCisxNDI5MCA4YjM0ODE4N2UzMDMzMjZjNDA0MDMzODFlYzhkMTE4Yzg1NzY3NjJhIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDI5MSBlZjFlNjNmNzc0NDU5OTBhYmQ0N2JiZDgzMDVhMjM2ZTgzZGJkYTUxIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDI5MiBmNjgwYWIxMDZlODYxZTA3ZTI2YjUxNTE1MmY0NjBhMzgyMGRmNTNjIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDI5MyA0N2Q3MGY0ZjYzNWYzMTBlOTFhZjRmM2QzMzE0Mzk2NjUwYmNiOTA2IGxlZ2FjeS10cnVuaworMTQyOTQgMWM0MzU0YmJhNDJiOWExOWJlZGRmMjA3YWI4OTY1Y2M2OWQzODBhZiBsZWdhY3ktdHJ1bmsKKzE0Mjk1IDA5ZGJiNDcwMzRlMGY1MmJmOTBkZjE5Zjk0Nzk3NmRiNzllMzJmNTYgbGVnYWN5LXRydW5rCisxNDI5NiA0YzE2ZjQyNWM3MTJjNDIzNzBmZmUzYjg3MTNhZTA0OGE5ZjBjMTY1IGxlZ2FjeS10cnVuaworMTQyOTcgZTM0OTkxMDIyNTcxNzUxMTJhMDFjYWVjMzEzYmZkYjQzYzNhMmY0MyBsZWdhY3ktdHJ1bmsKKzE0Mjk4IGY0ZjliNmI0NGU5ZTQ3YzczODgxNjIzYzUwMzg3MjRlM2VkOWU3MDUgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0Mjk5IDBkZDUyMGY0ZGNlOGRjMWRkZDQ2YjUwYzI4ZTM3YWY0OGZmYzg4OGUgbGVnYWN5LXRydW5rCisxNDMwMCA4Zjg4YjMxODQzYWJjNTI0NDlmMGY0Y2E3ZDgzM2IwMDRhODg1NDMxIGxlZ2FjeS10cnVuaworMTQzMDEgODkwYjExYWEyZWJjNzJmODY4NGUwYjgzMjljYjFiYjYzYzJjZDU0OSBsZWdhY3ktdHJ1bmsKKzE0MzAyIGRlNDRmNTExNzY4YWM2NjcwZGE1NGNmMWQ2ZmY3MDMzNTJkY2MzMjcgbGVnYWN5LXRydW5rCisxNDMwMyBiMGViNDIxZjhhZTliZWI3ZDhhMTc4YWUzZmMzMTVkNmM3YjYwYjg0IGxlZ2FjeS10cnVuaworMTQzMDQgNTg4MzcxM2UyZGEzYTYxZjEzOWE0Y2JlOGU4NTYyZTIzMWU0OTJkZSBsZWdhY3ktdHJ1bmsKKzE0MzA1IGRhY2FhMzRkZmNhNDZmOTQzYzBiOTk3ZmZmY2E4Yjc3YmM0NzExN2MgbGVnYWN5LXRydW5rCisxNDMwNiBkMzZkMzEyY2Y5MGJlZTg2MGRhZTc3YWIxMmU2ZDczZTBlNDk4ZmE3IGxlZ2FjeS10cnVuaworMTQzMDcgZmY3OWVlNDNiOGExZmE3NThlMGQ5OTRiYTIzZDE0ODk3ZGI4Y2I0YyBsZWdhY3ktdHJ1bmsKKzE0MzA4IDg2ZTdlNWVjYWY3OTYwYjE2MzEzODg5ZGQ4ZDY1MDJiZmNiYjI3MGIgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0MzA5IDQ5N2UwMTFlZjFhMzI1YzA3NWZlMmZmZjI3ODM1NDkwNTcwZWUzMjkgbGVnYWN5LXRydW5rCisxNDMxMCA3ZjI5MzM5ZWMzYTUwYTNhNTM0MjNhMjMzYjZhOGQxYTQyOTU2MjAxIGxlZ2FjeS10cnVuaworMTQzMTEgMzRmNTNjMzZiYTlhMWIxZDBjNTE3ZTUyODJjOGM2YzQxNDFjOTI1NyBsZWdhY3ktdHJ1bmsKKzE0MzEyIDcxNmZiNTk1NDhiZTQ5ZmMzOTY5YTRmYmRjNDgxMGI1NTdlMDNjMWMgbGVnYWN5LXRydW5rCisxNDMxMyBkMTBjMTA4ZDNmZDc2MjEyNTJmOTVkZGIxMzM2NGVlNmNjZWE2YzI5IGxlZ2FjeS10cnVuaworMTQzMTQgYjZmNTJjMWVmNmRhOGE4YWNiMGY3MjY2ZGQxY2Y0ZjY4YTFjZWUyNiBsZWdhY3ktdHJ1bmsKKzE0MzE1IDZmNDE0Njg0NjMzNzg3OGMwYmJmMTQ5ODJiMmMwYjQwMWQ1M2Q4N2UgbGVnYWN5LXRydW5rCisxNDMxNiA0YTIzY2M0OWUyYjA2NGQ5ZDI2ZjNhNDBjNDQ5N2E1M2UwOWRjOGIyIGxlZ2FjeS10cnVuaworMTQzMTcgZDkwMDBlZTk1OWU1MzdlOGQ5Mjg2MzRjMWYyMDcxOWRhN2RlNjI4NyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQzMTggNWQ2MjVhMzY1ZTc2NTdhMjkyODAzZjJjZGEyOWM5ZTg1NWFkYzJkNiBsZWdhY3ktdHJ1bmsKKzE0MzE5IDM4YzRkNjFkYjdlYTFmOTEwODRiMzUxNDQwNjU1NDQ5YTAxMzRmNTkgbGVnYWN5LXRydW5rCisxNDMyMCA2NTQ2ZWEwNmUxNTcwOTkyNTU3MWE0OTMwMmYxYWY3MDg0NWE3Yjg5IGxlZ2FjeS10cnVuaworMTQzMjEgOTI1MGU1ZDNhYTMxZmRkNGY5ZjZmY2ExOTFlMWNlYjYwNzIwOWJlMCBsZWdhY3ktdHJ1bmsKKzE0MzIyIGFiZmExY2IxZWQwNTJhNTQyZDJhODZhOWY5MTQxZTIxMDBjNWUzMzkgbGVnYWN5LXRydW5rCisxNDMyMyBiMzIyM2YwM2M5ZWE4OGRmOTVmNjY1ZWI4ZGEwYWZjYjhlMTdjYTAzIGxlZ2FjeS10cnVuaworMTQzMjQgNjI3YjRkYmExMTkyZTI1YjA5OGIwM2MxZjk0YjRiYzFjNjVlY2M4ZCBsZWdhY3ktdHJ1bmsKKzE0MzI1IGU0MjU1NTZlNjk4ZWJmYTMzNmE5ZjY4ZDQ1YzEwYTE1MWQ4ZDFkMWYgbGVnYWN5LXRydW5rCisxNDMyNiBlOTE2OWIxOWU5ZTVjNDQ3YzY1YWQ5ZWViNTIwZjQ3MzE1YzYzZjdlIGxlZ2FjeS10cnVuaworMTQzMjcgMTE2M2E3YTFjYzY3OWI4MjBhMDIxYmE4OTY2YmY1ZmI4N2E2MjdkNiBsZWdhY3ktdHJ1bmsKKzE0MzI4IDgzOWY4Zjg2Y2NhYTNhYTFlZTMxZDk0MTliZDkxNzBmYjQxOWE4ZGQgbGVnYWN5LXRydW5rCisxNDMyOSBmZGM5ZWViODllMGIzMGU2NjgxYTRhMjRlNjBlMzU0MThkMTIyZjdhIGxlZ2FjeS10cnVuaworMTQzMzAgZWIzODFmZjE3YTMxOThjMjMyNGM2NDRmMzE2NDI2MGE2ZWViYTdlMSBsZWdhY3ktdHJ1bmsKKzE0MzMxIDQyMjMzN2MzMjI5YWRlYTFmNzc2MWEwM2FiZmUzNWViNmM0Y2Q3Y2EgbGVnYWN5LXRydW5rCisxNDMzMiA2NzZlNjQ3YjFiZTZiOTQzYzk4NWVmNTYyYjlhMTg2MDc0MjE3NTYyIGxlZ2FjeS10cnVuaworMTQzMzMgNzFkMDM4ZGIwZGQyM2MyZjEyMDQ1NDJlM2IwZjAxYTRkNTAwNDA1NSBsZWdhY3ktdHJ1bmsKKzE0MzM0IGI3YWViYzg0Y2JjMTY0YTVlMDBjOWRlYzU3ZjhhZWZlNzNiOTliOGQgbGVnYWN5LXRydW5rCisxNDMzNSBhNTMyOTMyYWM0MDgzODdkMTk0YmE1N2JhMjdjZjJlMWQ5NWQyOGMxIGxlZ2FjeS10cnVuaworMTQzMzYgMWU5NTJkOTMzYWJiZWY1ZDNkOWJlMjYyM2U5ZDRiMDI1OWQxMDZmNyBsZWdhY3ktdHJ1bmsKKzE0MzM3IDk4NTcyMzQ5OGIxYmE2NDJjYzI2OTVlNjA5NzFlOGI5YmY4ZTZkMjkgbGVnYWN5LXRydW5rCisxNDMzOCA2MDI1YjA3YzVjMjk2NmU1NmMzNzBjOTAyOGIwNTk0YWVkM2Q5YjgzIGxlZ2FjeS10cnVuaworMTQzMzkgMGI0NmQyNTBlMTk5Y2ZhNmU4YTcxYjMwODJjYmM5MmNkZGJmMDZmYyBsZWdhY3ktdHJ1bmsKKzE0MzQwIDcyZWJmOTFkYWEwNWQ1YTczMGZhMzczOTFiNWFmZjBjNTM3YjZkOWEgbGVnYWN5LXRydW5rCisxNDM0MSBjOTc2ZDY5M2RkZWIzNjQwNWNkOTcxODAzNGFmZjllNmVmYTYxYzE1IGxlZ2FjeS10cnVuaworMTQzNDIgNzhmMDA5ODgxMmI3NGIyNTdiMjVjNTQxYjAyZTA0MDU1MzlkOTcwMiBsZWdhY3ktdHJ1bmsKKzE0MzQzIDZhOTlmZjA2OTQ1N2Q3MThkNDE4OTEwMGFlNWVhYzM3ZDExYzZjM2EgbGVnYWN5LXRydW5rCisxNDM0NCA4OWQzMDhmY2Y2ZjQ1ODM2M2I0ZGZmMDMyYzY5NDVmYzZlOWM5MzE2IGxlZ2FjeS10cnVuaworMTQzNDUgZTE5YTM1MDk5NGI3NWFmYzFiZDQ3OTFjMmMxYjdhMDVmZmVhMmJkMiBsZWdhY3ktdHJ1bmsKKzE0MzQ2IDY1M2E5MzUwYTgxNzMzOTY5YjNlNzAyNzYzZmRhNWUwNGQwN2FiMWIgbGVnYWN5LXRydW5rCisxNDM0NyA4M2QzNTFmOTQ4YWI3NWNlZGM4YTZlNmZiZTMyZGI4ZTRiMTk3NWM3IGxlZ2FjeS10cnVuaworMTQzNDggYTg2YmRmZTQ1NzI1ODRkNmM2YzY2YTJiMjljOGI5ZGNkMGI3YmMxMiBsZWdhY3ktdHJ1bmsKKzE0MzQ5IDIzZTdkOTc4MTAxMzExNTY5M2NkZTAyOTQwMzc5MDkzMDQ2NGUwNjggbGVnYWN5LXRydW5rCisxNDM1MCBkYTdmNWY2YTg0OWQwZWU4YTgyYWU3Njg5Y2YzNGNiODA4MTJhNGRlIGxlZ2FjeS10cnVuaworMTQzNTEgODQwZTE4ZWVjMDdmNGY1NWM4NzM5MDIyYTNiNWY1NmMzNGNmOTIwYyBsZWdhY3ktdHJ1bmsKKzE0MzUyIGM5NzhhMjNhNGRhYjEwNzU5MWU4ZDA3NjlmMDdhYmRjMTdmNDUxNmMgbGVnYWN5LXRydW5rCisxNDM1MyAzYzc3ZDZjNWM4ZTkxODBmMmZiYjlmYmMwOTM2MmQ4Yjc0NjhhZjA4IGxlZ2FjeS10cnVuaworMTQzNTQgNDVjMzViNTM3NmU0YmRiYjViYjNhNjFkYjcwYWI4OGU0YmQ1ZmE5ZSBsZWdhY3ktdHJ1bmsKKzE0MzU1IDc3NDY1ZDhiOWY1ZTI5MGRiYzM0MjdlN2NmMjJiMGZkZTdjZDQ0OWMgbGVnYWN5LXRydW5rCisxNDM1NiA3ZWYzOWUwNzEyMGE3ZGFiNWYzNGY2YmUzYTk0ZTAyZDllY2MxN2FjIGxlZ2FjeS10cnVuaworMTQzNTcgNzZhNjA5YTk0NzMwMjIzOGY1MTQ4YTUzNGI4ZjgyNTFmZDI0MTFmNSBsZWdhY3ktdHJ1bmsKKzE0MzU4IDVjMjc3MDEyNDkwNGVkYjNjMjNiMzExODg0MTQ4MTcwMGEyNDk0NjUgbGVnYWN5LXRydW5rCisxNDM1OSA3N2ZhMzMxNmJmNTgyNTQ3MDcwZmU0MGMwNzYxYjVjYWJiY2IzYzAzIGxlZ2FjeS10cnVuaworMTQzNjEgNGQ5MTIyMTIwOGZmYjBiNDk0MTEyNDBlNDAwMmQyZTgxYjkwYzdlNCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQzNjIgM2YxZGEwNWNlZDU1MzZhMjFhY2EyMTdkYjgwZTZhZmM0M2ZlYjhkNSBsZWdhY3ktdHJ1bmsKKzE0MzYzIDNkY2RkYjQ3OWE3ZTY0NzM5ZTBjOGFkNzhkMjIwZjEyYTc2ZjhkNDkgbGVnYWN5LXRydW5rCisxNDM2NCA2MDU2Y2Q1MDI5N2U0Yzk5MTkxNzhjZmRmNjgwMzcxYjVkOTE1N2IxIGxlZ2FjeS10cnVuaworMTQzNjUgZGZmYmQ5MjFlZWVkNDVjYjMwODRkN2M3YWU5NTQ2NTllYmZhOThjYyBsZWdhY3ktdHJ1bmsKKzE0MzY2IDU3ZmIzNTAxYWIyMmIyZjY0ODk4NDljNjBlNzViMGM1YWYyMDUwYTkgbGVnYWN5LXRydW5rCisxNDM2NyA2MzY3ZDgyOWYzNmJjMjBjOTZhNjU5Nzg4OGE3NzlhOTY5ZmE2Y2IzIGxlZ2FjeS10cnVuaworMTQzNjggZTM2MDZkMzA4ODZmMDM4MzdhYzcyZjIxZmQyOTc0MTAyZmIyMzE0OCBsZWdhY3ktdHJ1bmsKKzE0MzY5IDk0NWNlNjBkOTg3OTE3MzY4YjA5ODZjYWU4NThiODA2Y2M1ZTZmZjMgbGVnYWN5LXRydW5rCisxNDM3MCAwMjA1MjZlNzJlYWNmMjgzNTRjZDU1MWE2ZjcyMTg3YzUxMGQ3YjA3IGxlZ2FjeS10cnVuaworMTQzNzEgOTA5MmQzMGMyYmI3ZDU4NmY3OTA2YjFmMmZiNGZmNzFhZWI2MzlmYyBsZWdhY3ktdHJ1bmsKKzE0MzcyIDYyZmE4ZWM4NTk1ZjAyZWEyZjc4YWE1YzlhZTNjY2Q2MjJjYWMwNzkgbGVnYWN5LXRydW5rCisxNDM3MyBhNGVlZjA4MTNkNGNiZTBiZWY4N2FkYTRkMzg1MmY5MjYyMmJmYjBjIGxlZ2FjeS10cnVuaworMTQzNzQgOTg3NmE2NGMxODFhYWE2MTgyN2RhNzZiNWE5Y2FmMTIzODg2MjE3ZiBsZWdhY3ktdHJ1bmsKKzE0Mzc1IDM1Nzk5NzU1MDlkOTM1Nzk2MjllYTJjMTQ3Njg4NjYwNmIxMjYxNzggcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0Mzc2IDRjZjg0ZGRmNTEyOTA0M2QyNjkxYTI3NDVmOWEzOThiYmRiMDg4MjIgbGVnYWN5LXRydW5rCisxNDM3NyAzY2RlMTJiYjNkYTVkNzRjN2I2MWNkNWVjMzk4MmVlNTllMWUxZWExIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDM3OCAwM2JkNThmOGM5ZDAzZTEyYjliYmE1YjRkZjFhZTJhZTdjNzIwMTFiIGxlZ2FjeS10cnVuaworMTQzNzkgYjAzNjllOGRhYTBiZmYzOTY1NDFjZGIwYjZkZjU5ZTg5ZWZjNDY5NSBsZWdhY3ktdHJ1bmsKKzE0MzgwIDFhMjViYzJkMzI3MmFkYzZhMWUxMGY0ODhjMWE3NWFhNGIxODc1OTIgbGVnYWN5LXRydW5rCisxNDM4MSAxMDMzYTI0YzRhNTI5OGYwZDA5NjkxMzZiZmYzZDdjZGViYjU2YzU2IGxlZ2FjeS10cnVuaworMTQzODIgMzZjNjc1MGNmMjI3NTg2M2YzZWNhMTZhZTE4ZjdjYTcxNGRiNTBiOSBsZWdhY3ktdHJ1bmsKKzE0MzgzIDhkNWI5MGViYjkxOWJiMTdiODk3MTkyNzE3OWQ0OWZhNDE2NTY1MjggbGVnYWN5LXRydW5rCisxNDM4NCA3MDdkMTZmMGQzNDVhYTgzNDNlMjhhOTM5NjViNmI0YjBiZDI4MTA4IGxlZ2FjeS10cnVuaworMTQzODUgN2Y1MGY3MWFlN2JmMjU2MTU2ZjdhZjQ3MWRjOWRlM2RlZDEyZGUzNyBsZWdhY3ktdHJ1bmsKKzE0Mzg2IDI4MzlkODRjZmQ5NjY2ZDk2ODg4ODJjNjY3YjhkZmE1ZTg0N2YxZjYgbGVnYWN5LXRydW5rCisxNDM4NyA4YjZlMmIyMzZiYWI1MjM0NDhmYzhjMTczZWE5MzBjM2VhMjNlNDRmIGxlZ2FjeS10cnVuaworMTQzODggNmI4ZGFmMzM3ZDZiYWJjY2YzNDkzZThkNGJiZDJjNjBhZTAzZWUxMiBsZWdhY3ktdHJ1bmsKKzE0Mzg5IGNhZThlOGVkZDNlMmFiMjljYTIwOGRmNjg1MzM1YjkzMGM0NzY5M2IgbGVnYWN5LXRydW5rCisxNDM5MCBkYzE5YjU5MDBkYWViYmRmMTg3M2M5MWNiZTY3OTQ5MmNkNTY5YmUzIGxlZ2FjeS10cnVuaworMTQzOTEgYTc0MjE0NzM5NmVlZTA0ZGJkNGUzZGQ1NWJkZDU5Mjk5MjY2OTM2NCBsZWdhY3ktdHJ1bmsKKzE0MzkyIGUyYmJjM2U0MGNkYjk2NGQ1NzhjYzJjMTcxYTA3MTA1NjhmZjg3NTggbGVnYWN5LXRydW5rCisxNDM5MyBlYzQ2ZmFhODM1OTU2N2RhMzI0NmJhMDI4YzRlOTNmMzVkMTI2ODliIGxlZ2FjeS10cnVuaworMTQzOTQgYjdjZmMyZGJhNTg2YmJhZDExYmQ4ODlkYjQ3NTFkNThiOTYzZTc0MCBsZWdhY3ktdHJ1bmsKKzE0Mzk1IDA0OWFiOGYzNGRmMTY0ZmE1M2EwNTBhYjc4OWU4Y2FiMzY1MzA0NDcgbGVnYWN5LXRydW5rCisxNDM5NiA0MWRjMjRiMjBhMTc1YTQyNDgzMDAwMGJhOTRjMDY4MGQ4NmEyMWMxIGxlZ2FjeS10cnVuaworMTQzOTcgYjZmMTI4N2UxOTcwNzMxZTVlZGM4ODNlYzdkMDY3YmQ3MmQ3MDRmMSBsZWdhY3ktdHJ1bmsKKzE0Mzk4IDVhZjAxNTcxODI4NWUzNTYxNGY1MjEyNTU2NWNiN2QwMGYxZDViOWQgbGVnYWN5LXRydW5rCisxNDM5OSA0ODY3MjFlYzlkZDc0NmZjNTQwZWE1NmZkZTYzMDIyYmZkODM0MjVmIGxlZ2FjeS10cnVuaworMTQ0MDAgYWU4ZGYwN2Q0YjZhMWI2ZWQ2ZDgwNjUwYzkxOWIxNmJhMzU4ZmM0NyBsZWdhY3ktdHJ1bmsKKzE0NDAxIGY4M2NkY2JjYTFiMDhmMTM2OTViMzlhYjUzNDljMGYwYjA5ZGE0MjYgbGVnYWN5LXRydW5rCisxNDQwMiA4NjA1MjQxODJiOWM4Y2FjZDFiZjVmNTQxMWIyYzFiNTUwOGVmMTNiIGxlZ2FjeS10cnVuaworMTQ0MDMgNzI4NDhjNmI2MTFjZWQ0MDRhMDBlNDI3M2UyOGU5NTVmMDlhNDI5OCBsZWdhY3ktdHJ1bmsKKzE0NDA0IGZkNDgxNGI1OWI3M2E2ODBkYzE2Njg1N2FkNWNhMDA0YWZjMjhmNjQgbGVnYWN5LXRydW5rCisxNDQwNSA3ZWIxMjdhZGUwNjk0ZWIyMDNmYzM3Mjk2MzVhODY4OWJiMjczYmNiIGxlZ2FjeS10cnVuaworMTQ0MDYgZDJhYjk1NTNmODcxMmUzZjYyNzQxNjE4ZGI3NWQxMTQ2MjFjZmRmMCBsZWdhY3ktdHJ1bmsKKzE0NDA3IDA5YTNhNjhjZTk2NDA0ZWE4ZDhiMzVhMzAxN2RiZDRkYWE0OGNiZWQgbGVnYWN5LXRydW5rCisxNDQwOSBlOTNhNWE5MDZkNzNhMjhmODRlOGQwMWRmZDQ2MjE0MGEwY2JlODA0IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxMCA3MzNlYzZlODY5ZGQzMTczYjc0ZjhkNjg0ZDFlNGYyMDkyMDExNGQ4IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxMSA4YmM4NzEwODE3MjQ3NzhiMDRlZWE0OGM2NTdmMWNlOGQ2NjM0ODU0IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxMiBmNDVkOGIyNmJiMjQ1MzRkOTZjMTgxMGJlODRkYjljZTQ5MGZjNjhhIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxMyA3MWVjMzFmOTdmZmM3ZTA0ZTIxOWJhZmY0ZjAyMDU2YTNhZmU3NGNkIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxNCBhNGJiMzg0M2E1ODIyMzE2NTllODU0MjE1OTI1MzVlZWFiMzVjY2JhIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxNSA0NTQxOTYxMTRmZDI0NTM1OWExMzBhMjE2M2YzNzdiMjgxN2E1ZjYzIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxNiBjZWQ4ZGQ2MjI3ZGQyZDJjM2I1NTk0NjUyOTcyZDU4YTQ2YjFlMDdkIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxNyA1YWYzYzViNzRjNTQ1ODkzMDE4ZTc1OTVkOWRhZjgzMDZlZDNhM2Q1IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxOCAyOTVmZjNiMTc1MjJhMmVjNmU5ODMxMDM5YWI4MGFlNTczNzk1YTczIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQxOSA2M2NlMDlkZjYwN2RlMTlmNTgxMzM5NmQ1NWViNjUxNzdlYWQ5YzI5IGxlZ2FjeS10cnVuaworMTQ0MjAgZjUzZmVjMGM3NDJiZjViNDRiNGJjZTAzYWY0NzZhZWFlYWM0YTdhMyBsZWdhY3ktdHJ1bmsKKzE0NDIxIDI5ZTc0YzcwZGUxOGFmZDUzZDhlMDI4ZDIxZjBmYzRjMTkwMzU1ZmUgbGVnYWN5LXRydW5rCisxNDQyMiA1MGE2YWIzZmEwMzZhMmRkNjM4NjkxNDYzNmRhYTQ5MTI1ZDQzMGJlIGxlZ2FjeS10cnVuaworMTQ0MjMgMzY3OGRkNjg1ODY3MDVkOWI3OTdhMGJmZTNmNjNiYTAxOTY5MDk2MiBsZWdhY3ktdHJ1bmsKKzE0NDI0IDQ0OWIwNzRjMzA1MWIxNzFiZDE1Njk0YTQwM2RhYmM5NmI2N2EzNTEgbGVnYWN5LXRydW5rCisxNDQyNSBmZTk2MGFkM2RiNjViYzI0MDk2YmQyMWM1MGJjN2Y0OGU4MGZiOGJiIGxlZ2FjeS10cnVuaworMTQ0MjYgZTc3YTI4NmQwZWIxMDMwZGQzZDMxYTlmNTMyMTlhZWFmZTY1YzM3OCBsZWdhY3ktdHJ1bmsKKzE0NDI3IGMyMjg2YTFjMmYyOTU4NWI0YTYyZjU1Yjc5NGJhY2FmM2NlZTJhMjIgbGVnYWN5LXRydW5rCisxNDQyOCA1Nzc4OGRhMTY0ODg5Njk0ZjI3Yzk0NjdmYzI0MGEzYjM2Mjc3ODI2IGxlZ2FjeS10cnVuaworMTQ0MjkgZmZiZTBhMjNhMGYxNzU4ZmY5MzA2NTYwYzU0MjRlYWRkZjk2OTc0YSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ0MzAgYmQxNjFhOTA4YjNiZGE1YTBjNDNhYjBlYzQzMmM2OWJhZmUwOGUxNyBsZWdhY3ktdHJ1bmsKKzE0NDMxIDU3MTY3NzMxZDEyNDJlMzg3MjQyODc3MTJhYjBiYmRlMGFmNTAzODEgbGVnYWN5LXRydW5rCisxNDQzMiAzMDIyODZiMTYwYTdhMjY4ZTJmY2M1ODc3NGY3MjM0YTkyZmNkNmU3IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQzMyA4ZDBiMmZlZDdkNTU5ODFjMmQwZDU5ZTBmNTUzNWMwM2YyMWM4NTI4IGxlZ2FjeS10cnVuaworMTQ0MzQgY2Y4ZmE5MmViZjNkOTRlNGRhMTBkNzc0OWFkYWY1ZGM5NGFlY2ZlYiBsZWdhY3ktdHJ1bmsKKzE0NDM1IGUyYjYzMzk5MWUwMTM1NDY3OTZlNjQzMmZjMTk5NWU2YjI0MjMwZTMgbGVnYWN5LXRydW5rCisxNDQzNiBmYmMxM2ZiODAzOGNhNTk1ZjRkNWNjNzI4NWRmY2U4NjQzOTk1OWIyIGxlZ2FjeS10cnVuaworMTQ0MzcgMjBjYTcyMzBhZTNmOGE5NTVmOGY5MzdmNTcwOGY2MDVlOWZkMDc0OCBsZWdhY3ktdHJ1bmsKKzE0NDM4IDZlNWVhN2RjZjFmNTViNjM3ZDMyZTBlMzNmZjczNDZhMzYzOGQxN2QgbGVnYWN5LXRydW5rCisxNDQzOSBlYWVkYTQ2MjFmN2RjZDU1NGU2Yzk5ZDViMzRlMGVkNmU1YTQ1M2M0IGxlZ2FjeS10cnVuaworMTQ0NDAgODRmNzdjMTlkMTQzYjRiMTQyZDVlMjIzZTRmMDk4NjFmNTI0YWI1YiBsZWdhY3ktdHJ1bmsKKzE0NDQxIDAzOTAyYmMwMjE0YTE1MWQ1OGM0OGZjNmI2MjFiNTI0NTI2NjRiNmMgbGVnYWN5LXRydW5rCisxNDQ0MiA1MGYxMjg4M2NkZDc5Y2JmNDM3NWYzOWU3NzA3Y2QyMWVkOTY5NGNhIGxlZ2FjeS10cnVuaworMTQ0NDMgNDc2ZWFhMzhlMmQ2YWE3N2U4ZjUyOTdiNTJhNjc2ODcwYjRjOTI5NyBsZWdhY3ktdHJ1bmsKKzE0NDQ0IGI3YmNhMDUwZDdkZWJjZmU2MGQzYWEwMDQ4NzFkNjk2MWQ5N2RiOTYgbGVnYWN5LXRydW5rCisxNDQ0NSBiZjE1MDFjZjVmMDgyZDliNWJkYzViNmU1YzczNTAyZjA4YjI4MzgwIGxlZ2FjeS10cnVuaworMTQ0NDYgYmU5NTAwZTY0NzdmZDMxNjA4NjU1Yjc5ZmI1ODRhNzI5YTExZThmNiBsZWdhY3ktdHJ1bmsKKzE0NDQ3IDE5ZGU2ZDE5NGFjZTk4MzdjYzZhNTUzOWIyMjRhNDViZWUyYjI1ODggcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NDQ4IGFhMDdjNDdmNmVlODgyODEwNDM3M2NiZWI1NjUzYmM2OGExZjFjYzcgbGVnYWN5LXRydW5rCisxNDQ0OSBjNWZiNjUwNmVlYzQwZTI4YTM0ZWM2ZmU2MzZhYzFkZWYwNzA0ZTgwIGxlZ2FjeS10cnVuaworMTQ0NTAgZmMwZmNlYTE0YmEwNzIzZTZkZjIyYmI2MzM2OTQ5MjQzMjVjNWVhOSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ0NTEgODg3OGMwOTZmYTE5ZTczOWFmNjA1YWU3NWU2NmEwMDBhOWQ2ZGM0NSBsZWdhY3ktdHJ1bmsKKzE0NDUyIDdjMjU1ZTdhMjFjMmM1NzQ4OTEzYWQ4ZmNlNTFiYjY3MGE5ODI1NTMgbGVnYWN5LXRydW5rCisxNDQ1MyAzNjg0ZDVjNzkwM2MzZWRkZTc1ODU0ZWIyZmRlMmM4NzRlNTZmOTE3IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ1NCA3YmVkMWYwZWM2MWFjNTY4YTFmYjhhMGEyMmIxYmU5MTIxYjQ3YTgyIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ1NSBjNmY4NGNkMWZmNzA1YTBlNTQyNThiZDNiMzg4YWRmMmYwMjQ2ZDAzIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ1NiAzYjZkOGFkMjQ2OGUzNWEyN2NjMGI3ZDExM2Q5Y2VkZjNlZTM0YzFjIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ1NyA0ZDVkNWNmYThhNTM5MzFiMTNhMGUzYjJmODdkMzYwZmY3YzQ4MTk3IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ1OCBlYjQ4M2Q5YTBmNjJjZjAyODk1ZDk0MzNmMDM4NjU0M2ZkM2JiNGM5IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ1OSA0MDgwYzdhMGYxZWQ2YzlmOWQxNzExYWZjNjUxYWQ2M2JkNGQxY2E4IGxlZ2FjeS10cnVuaworMTQ0NjAgMGMwYmZhZGZmNzdhY2EzNDUxYWRkNDJkY2JlOTQyNjc3MjBjYzE4YyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ0NjEgYjJkNGIyZTAzYzk5NTNmYjcwOGExMGYwOTc5NTdhN2NmZDFhMTVlMyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ0NjIgOTRiNjQyMDc5Mzk4Y2E2NzY1Njg0Y2Q1Y2M3ZmRhOGIxNTQzOGQ5OCBsZWdhY3ktdHJ1bmsKKzE0NDYzIDcxOGQyMmRhMDAxN2Y1ZTI2ZDg1ZTg2NjZkODVhZWNiNzVkODI4OWEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NDY0IGUyNTEyZDRmZDQ3MDgzMWZlNzQzNTY3NDE3MTZlMzZhMzNhODI4YTQgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NDY1IDY4MzQ0M2Q4ZGEzYjlkNDM5ZTU0ZDlhYzQ3MTJkNGZmOGE0M2M0OTQgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NDY2IGZlNzYzMmZiZDRmNTM2OWI3YzhhNGI3ZDIyZDQ1MTYzZTdlNWJiOGEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NDY3IDU5NGE3NmJiOWZmMDMxNTc5Zjg1NmMxNjdmYjcwYzZjMDEwOTJjMzMgbGVnYWN5LXRydW5rCisxNDQ2OCBhMDMxMzAwM2NiMmQ1MjA2N2QwYzYwZGMwZmNhZjJmYmEwMWY4NWE0IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ2OSBkZDBhZTEwYjcyMDYwZjU3NDgyOTgzN2YyYmVkM2E0MTg5M2Y5NzU1IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ3MCA5YzU5Y2JhMDRkODU4YWE2YTY3ZTg2OWZkMTJmODcwMGUwYTRhM2UxIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ3MSA1MWMyMTc0NTQ5NTNmODIzNGFjNWYzM2Y1Y2FlMTk1NDEzODMyNzFjIGxlZ2FjeS10cnVuaworMTQ0NzIgM2U1MmYzZGJlM2RjZDlmMzZmODc4Yjg1NTQ2MzliNTkwOWUzNjM0NCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ0NzMgZWNkYzc4MTQ4ODExODk3MzMyYzFhZTBmZGIyODQ2YmNlZTM0MmFjYyBsZWdhY3ktdHJ1bmsKKzE0NDc0IDE4OWRlZTcwZDMyYTBjYjA3ZDU4ZGJiMTExZDAxNWNjMWExNDI0NzEgbGVnYWN5LXRydW5rCisxNDQ3NSBhMDQ2OTgzY2I1NzYxMmQ5MzhhNzBlOTRhYjE5ODlmMjBkYWY4MDVjIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ3NiBiYTIxMTE3NDgwMzhlMDI4NWZiOTZjNWRmMDFmZWM0MTA4Y2U0MGFiIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDQ3NyAzMjg3Y2NkMGRkMDEzM2VlNzRlZDNhOTMxMmQwOTU5MjcxNjgxNTVmIGxlZ2FjeS10cnVuaworMTQ0NzggZDIyOWJiNzkyNjU5MDAxMDNhOWEyZThmY2QwODM0MWMyOWI1MjkxNSBsZWdhY3ktdHJ1bmsKKzE0NDc5IDFiNzMxZWNkOWVkMzJiZGMyNThlNTdlZGNiMGEzZWFhY2Q3MWM5MDkgbGVnYWN5LXRydW5rCisxNDQ4MCAyYzcyNTZlMzk4OWNmOWIwNmYyODcyOTEwY2Y5MTY0ZDU0ZTU0NzI3IGxlZ2FjeS10cnVuaworMTQ0ODEgNzk3ZDk5NmY3YzZkYTAwOTRiZjdkNGI5MWIyMTMzN2VlZjM5NTUwMSBsZWdhY3ktdHJ1bmsKKzE0NDgyIGIwYzRmMjYxZTQ3MDMyNjM3NTczYzJhY2I5NWFkNmMzMGUxNTFiYTYgbGVnYWN5LXRydW5rCisxNDQ4MyBjYTUzNTM4NjdiZTIzMzIyMGNiMGVjN2Q0MzBkMzczNzU5MDEyZDYyIGxlZ2FjeS10cnVuaworMTQ0ODQgNzI2OTIxNjc0NmQwMmZhZGQ5NjMwOTY0ZTA2NGEzODQ2OGU3YzNhMyBsZWdhY3ktdHJ1bmsKKzE0NDg1IDkxY2ZiNmU2OGNhNDcxOWVhM2QwOWIzZjU4NGM1ODQ2ZjFmY2M1MDMgbGVnYWN5LXRydW5rCisxNDQ4NiAzMmY5NzVjYjlmNWZmMjIwNjU2YTQyMTYzMGRiZDc2NDhkYjc1YzFiIGxlZ2FjeS10cnVuaworMTQ0ODcgYmY2ZjE3NDZiMTBiYTBmZmExYTlhMGM3ZTRjMjc2NzZkMDk4YjRmYiBsZWdhY3ktdHJ1bmsKKzE0NDg4IGUxMTljMDI1MGIyMDkxNWQzMjYzNWU1ODU0YWYwNjMxMjkyM2RkNDYgbGVnYWN5LXRydW5rCisxNDQ4OSBjMDRlMWM3MGYwZjEyNmExMmU1YTFhZGNiNDI2YmVlMDlkOGE4MmViIGxlZ2FjeS10cnVuaworMTQ0OTAgZTEyM2U2NWVmMjU1Yjg0NjliMmIyOGMwZjUwMWE3YzVlMDBiYzNlZSBEaXN0dXRpbHNfMF8xXzMtYnJhbmNoCisxNDQ5MSAyNTE3NTY5YWExZGQ0MWI4ZWEyZTIzYWY4MjViMzEwN2Y0Y2MwMjI0IERpc3R1dGlsc18wXzFfMy1icmFuY2gKKzE0NDkyIDEwNDczMTNjZWI1YmM5ODMzNDk5YWU0MTgwMWMyYjM4YjJmOTAyNzYgRGlzdHV0aWxzXzBfMV8zLWJyYW5jaAorMTQ0OTMgMjUzZWM5NWYzOTFlMWM1YTk5ZjI2MzRlMjg3MTQxOTFhOGQyMjNiZiBsZWdhY3ktdHJ1bmsKKzE0NDk0IGU1Njc4MGI3NDM2YTZhNTc0MjU5NjBkZWE5YmQwMGM3YTNjNGFjNTAgbGVnYWN5LXRydW5rCisxNDQ5NSA4YjcwZWFhYWRmNGI0MGQ4NjM0NzBjMzExODEzYjQwOWM0MDMxOGQxIGxlZ2FjeS10cnVuaworMTQ0OTYgZDE1ZDhmNTE0MWE4ODhmYjE2NGE0ZDMzNjBiNTA4YTMwMDQyYTU5MCBsZWdhY3ktdHJ1bmsKKzE0NDk3IDZmOTc5OWExNDVlNTgyZTQ2NWU4ODc5NDU2OWY3ZWUxOWIxNDYyZDQgbGVnYWN5LXRydW5rCisxNDQ5OCBlYzA2MmM3YzM4YTU5ODM2NzEzYTM0Y2YxMGFjOWI0Mjk5YzE0MGE1IGxlZ2FjeS10cnVuaworMTQ0OTkgYjcwZGVlNzE1MzRhNmNhODIxYjdhYmJiZjUxMDliNzE3NWZjMzUzNSBsZWdhY3ktdHJ1bmsKKzE0NTAwIDBjZGU3MmY2ZWFjZWIwYmQ2OTBiNTc5NGUzNmZhZDI1MWVlMTg0MzAgbGVnYWN5LXRydW5rCisxNDUwMSA4OWI1Mjg5NTMxMGM3ZTI0N2I3YzUzMGJiYzYyYzE5NDg4YTZlZTcyIGxlZ2FjeS10cnVuaworMTQ1MDIgOTE5NzFlYjIxNTI3ZmE5NDFlMDg5OGI5ODhjZGYwMGJkZWExZThiMCBsZWdhY3ktdHJ1bmsKKzE0NTAzIGU2OTViNTIyOTVhODZhODFiMGQyYzY3OThlYjJmNjE1NmQyNGZjZTQgbGVnYWN5LXRydW5rCisxNDUwNCA3OWVhMTkwODVmYjZhYjhjODNiNzllZjZjZjBkZmVmNzhkMmRkYjdiIGxlZ2FjeS10cnVuaworMTQ1MDUgMTQ1MTUzOWEyN2VjZjRhZGVlNDVkODcyYjMyZGVhNmVjYmQ0NTc1YiBsZWdhY3ktdHJ1bmsKKzE0NTA2IDc4MWY0ODI5MWEyOTY5M2ZlNTAzZmM0MmJhMzJiODJhMmNjOTMzOWQgbGVnYWN5LXRydW5rCisxNDUwNyBiYmI3NTFmNTVkMDQ4ZWIwMGZhODQzODNlOTY1NDExMTFkMGI0YzIzIGxlZ2FjeS10cnVuaworMTQ1MDggMmQ4NzQwNjQ3ZTk5OGMzZTAzZmJhYWI5MzBlNGFjNTJiMDk3NjYwNyBsZWdhY3ktdHJ1bmsKKzE0NTA5IDk4NmE4NzM2M2E2NjkxMmEzZmY4MzI0NDM3YTIyNWM3MGE3NGNiYjcgbGVnYWN5LXRydW5rCisxNDUxMCBlMDA1OTQzNjZlYzRmNzQ0NjNlODcxOGY5MzIzYzAyYzllYzFhYjNkIGxlZ2FjeS10cnVuaworMTQ1MTEgNWUxZjRmN2Q3OWE3NTQwMDFhMzQ5NGVlNjNkZGFhOTlmZDE5YmI3ZiBsZWdhY3ktdHJ1bmsKKzE0NTEyIDQxYjg1YTI2Y2VlZGFhNGVmYzdlZjJkNWUxZTlkNWExMDNmN2Q5MTQgbGVnYWN5LXRydW5rCisxNDUxMyBjYTM1MGE3MTk4ODczM2VkNzU3ZWFmMTc4ZDdkZTk0ODUxNjQxZGVkIGxlZ2FjeS10cnVuaworMTQ1MTQgMmZhODllNjU3YTRlZGRlZjMxMDc5NDU3NjQxMmQzZjBjMzU5MzJkMCBsZWdhY3ktdHJ1bmsKKzE0NTE1IDA2OWVhNTczNmZmNjA3YTgxZjM4MjM0Yjk2Y2I1MDllM2IyZGQ0MjQgbGVnYWN5LXRydW5rCisxNDUxNiAwNjEwNGJjZjA2YTY0ZmIwODE5MDY2MmQ3NzA2OWI0NWJkNjhhMjA3IGxlZ2FjeS10cnVuaworMTQ1MTcgZDdlNjZlZjM0NWQwN2I5Y2NiYTljYzQzNGQ1Njc0Y2Q3ZmFkMGNiOCBsZWdhY3ktdHJ1bmsKKzE0NTE4IDMyYzU5ZTI4ODljNGNjNGFhMDE4NmMwMjZjMzY2NzE1MGFkYmRhMTEgbGVnYWN5LXRydW5rCisxNDUxOSBkN2VjYTViMDk2MGFiYjAyMWI0ODFlZTEyYTVjYTM5ODc5OGU3NzAyIGxlZ2FjeS10cnVuaworMTQ1MjAgMmZlOTU2OGJkZWYyYjkxYjFiNjA3ODE2Yzk5MTJkMmY3MjE5MDk0NyBsZWdhY3ktdHJ1bmsKKzE0NTIxIGM5MGFjNjk4MjE0ZGI3MzBiNTQ3YzVmZGJlNTViNWIxNWE4NTgwZDMgbGVnYWN5LXRydW5rCisxNDUyMiA0NDRiNzdjZWViZTY5MzEwZTJjZTdjMjZlZGFjMjNiOTlkNmFjOWI4IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDUyMyBiOTFkODQ4YzlhMWFkNGViNDNkYTZlNWRjZTY3ZDgyMmY0YmZjNGNmIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDUyNCA3MTQyMzIwOWQ3ZmMyYzUxZjdlODEwYWYzZjNhMDc3NTc0NTBhYmZlIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDUyNSA3ZWQxMDRjNDBkYjMzNjU5OWUyNWYwNTg2MWRkNTQ4ODNhM2MzNWE1IGxlZ2FjeS10cnVuaworMTQ1MjYgY2FiMDcxZTkyZjMyMWY1MmFjNmIzMmM5OTcxNjc5YmNjNGE3YTViYiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ1MjcgNTJhM2I0NjQ1NzhmMmU4NzIzNGYwN2RkNGE0NjYxNzhlNmNlMGFiOCBsZWdhY3ktdHJ1bmsKKzE0NTI4IDI4NjMwM2YwMDU0NmJjZWY1MDc3NjdiOTk2ZGFiODQ0YzBiZTFjZmQgbGVnYWN5LXRydW5rCisxNDUyOSBjMjdkM2U4YzQ1YzQ2NjY3Y2NhZDk4ZDUyYmNkMTM1Y2E4OGMzY2NhIGxlZ2FjeS10cnVuaworMTQ1MzAgNWQwODc5ZTFmZjM3YzU3ZWEwMjJjM2ZlYWM0ZDNlNTM4YjczZjg1NiBsZWdhY3ktdHJ1bmsKKzE0NTMxIDNkNzNmZmMxMDVkMGE0OGM5OGRjZGJhOWZlNTBmYTJjNGVkM2VjYzcgbGVnYWN5LXRydW5rCisxNDUzMiBhN2Q2MDllYTkwY2M2ODI2NjQwZWJjNTcxNGZmMmNlYzUzZmRmYzQ1IGxlZ2FjeS10cnVuaworMTQ1MzMgZDI3Njg0YWIyMTVhNmE1YWNiNDA3NDc0OTllYTQ5ZDJkMGYyODAxYiBsZWdhY3ktdHJ1bmsKKzE0NTM0IGVmZDYzMTVhZTY3OGQ2MmU1NTk3NDUzYWYyYmVhZmIyNzUxMmRiMWEgbGVnYWN5LXRydW5rCisxNDUzNSBkYzY1YzVmNmFkN2MxNGNhNDQ2OWY2ZWQyOGZmMTM0Y2IwOWVjMDg3IGxlZ2FjeS10cnVuaworMTQ1MzYgZDI0YWQ1NTAzODMxYTdkOTgxOTUwNzlhMDI2NjU0MGRlNmI4OGM5NSBEaXN0dXRpbHNfMF8xXzMtYnJhbmNoCisxNDUzNyA5YmVkMzM1OTljMzM5YzE1YTI2ZjEwYjM5ZTAzODNmOTJjMjJjYzU2IERpc3R1dGlsc18wXzFfMy1icmFuY2gKKzE0NTM4IDljOTNmMTBkY2Q2OTY4Y2Q5MDRjYzY0ZGRiOWMzNTliYzliZjk5OTkgRGlzdHV0aWxzXzBfMV8zLWJyYW5jaAorMTQ1MzkgOGVlNzU5ZDc5OTY0NmVkMTE0MjJmZWUxZmQyMDczN2IyZWVmMzY1ZiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ1NDAgMGM0NzI5ZTM4YzNkYjhmNDhkMGRkZTgyNTJkNWM5YjI5ZjJmOWEwMCBsZWdhY3ktdHJ1bmsKKzE0NTQxIDU0Y2YzYmIzYjhiN2NmNGM3MTAxYzE3MjM2OTE0ZTk4NDRjZmRkZjggcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NTQyIDEwZmJmZDA3ZjM4OTQxYjNkYjNjMDZlNWQzMmVkYzA4MzUyNTZhZTUgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NTQzIGEzOGZiY2I3ZDMzNTY4MGY2YTU5MWFhZDE0ZWIxMzI5YzViZWU5MGQgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NTQ0IGUzOTlhYmNjNWRlNjMwZWE4NTVjZGI2MzA3ODUzMTFhYTBiNmMzNzggcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NTQ1IDc1OGE4N2Y0Y2IyYzllOGQ4YjY3OTQ4M2U4Mzg5YmE0NjU3ZGFiZWIgbGVnYWN5LXRydW5rCisxNDU0NiAzOWJiMDE3NTUwNzkwOTcyM2MyNDMwOGFiNjdkMzZmMTliYjcxMTA3IGxlZ2FjeS10cnVuaworMTQ1NDcgMjcwYTExNDg4YzZjNWMzZDJlYzk4ZTUxNTVlNjFjMzQzY2RkZDZlYiBsZWdhY3ktdHJ1bmsKKzE0NTQ4IDgxZjEwNjllMTU1ODY5OTM5YzczZDEyMzk2YzM1YzExYWQzZGJmMDAgbGVnYWN5LXRydW5rCisxNDU0OSBhNDU3MGY0MDk4NzEwZjRmZDdlYzMxMWJkY2VhODhlYzQwZjA5OTU1IGxlZ2FjeS10cnVuaworMTQ1NTAgMWE0OWI2MTQ0ZjBkZTMyNWI1OTc4ZDEyYzY0ODNlMmUwM2NkMDBjNiBsZWdhY3ktdHJ1bmsKKzE0NTUxIDk0MzJkOGIxNWM5NzE0ZmQyNzg0YzcwYzcxY2E4NmIyNGY5Mzk2ZDEgbGVnYWN5LXRydW5rCisxNDU1MiBlODJhOTYzMzA3OGJjOTI1NWY4YzNkNTUyNTRlZmE0NzZkMjk1ZjI4IGxlZ2FjeS10cnVuaworMTQ1NTMgMDAxNjYzM2ZiZDMyMGExYzU4NjdkMzU5MmFkNjQ2YWExNTQ1MDBlMSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ1NTQgMjMxMDhjY2UxNjliNDVkZmJiM2VkYWM5MjY1YzdiZTAyNjk4ZDNiNCBsZWdhY3ktdHJ1bmsKKzE0NTU1IGVmOGIwNjJiNTc5ODA0NGZmMzMzNGZhZGQxMGE3NTUwODgzY2Q1ZWEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NTU2IDYxMGQ3ZDY0MjkxN2U1ZmNiZDEzYjY0Njc5Y2UwMjQ3Yzc3NTUxYjIgbGVnYWN5LXRydW5rCisxNDU1NyA3ODQyZWNmNWI0MjQ4OWYyYjIzMzhlMmZmMzg2YjllMWM3NTAwMGM4IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDU1OCBjZmNmYWEzOTUwZDY0MmM5YTIwYjMyOGE0M2Q2M2Y2ODM4MDZhM2UyIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDU1OSA1OGQxZTc3OTE5ODA1Yjg3ZTdlMDFhNjQwZmIwNjNkOGJkMjE2ZGM2IGxlZ2FjeS10cnVuaworMTQ1NjAgY2Q1N2Y3NzZjMWRmODUxNWY3NzhhMDE1MTdiYjc0Yjk5M2MzMGRhOSBsZWdhY3ktdHJ1bmsKKzE0NTYxIDI4MDJmYjUyZTk5YmM3OWE2NWJkMDM0ZjFlNjczMTA4YmE5YTBmOTYgbGVnYWN5LXRydW5rCisxNDU2MiAwMTdlNTkyYzBmZDJjM2U4NTNjNzQzOTA4MTdlMzE2NzYzNTk2NWJkIGxlZ2FjeS10cnVuaworMTQ1NjMgNDY3OWJjZWY3YTRmNjQ1YWIzOWVmOGI1YjE4MjEzYWRlMTUwZTA3MCBsZWdhY3ktdHJ1bmsKKzE0NTY0IDcyM2VmY2RjY2UxYmRhNWQwNmIyYmFmYzkyM2I5NWEwNTY5MzQzYjcgbGVnYWN5LXRydW5rCisxNDU2NSA2MmViZThjNzE1NjU5YjFmZDI1OTlhOWQ2YzJkMzA3ZGM3MjdiZmNmIGxlZ2FjeS10cnVuaworMTQ1NjYgMDFkNWI3ZDExZmMxMjhlMmNlMTViMDIzNTgyMWI0MzFlYzg3YThmOSBsZWdhY3ktdHJ1bmsKKzE0NTY3IDY5MzJlMThhZmY5OGFkN2YxNmYwOWQ5M2RiNDcwY2ZmYWFiYzg5NTMgbGVnYWN5LXRydW5rCisxNDU2OCBmODUxOGYwNjBiZWRmOGY4ZjVjZmVlZWJmYzZhOGMwOTZkYWUwMzVkIGxlZ2FjeS10cnVuaworMTQ1NjkgYTQwYzJmZWNkNTI2OWYzYWU4MjYxMzg4M2VkYWI2MjhhYWIzMDg0MiBsZWdhY3ktdHJ1bmsKKzE0NTcwIDBhNGJhY2NiZTlmZTkzNGQwMWFhM2JlMDg1YjQ0MzcxYTRjN2RiYzAgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NTcxIDQ5YjEwOWI0NTBkYTdkNzZhOTEzMjAxMWIyMDA3MWNkNTU0OThjOTQgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NTcyIGFiMWVmMWFhNDAyZWE1MjM2YmUyNWFmNDA1Yjc5MTE2NGFiYzdjNTAgbGVnYWN5LXRydW5rCisxNDU3MyBiM2NhM2NhYTM3NGM1MThiYjU4ZGM1Yjg4ZGM0ZTZhODcxMWVkZGU1IGxlZ2FjeS10cnVuaworMTQ1NzQgMTFhZTFlZmVjODcxYTM3YTBjZjdlNTljNTY5M2RlMDcwYjM2MjhkMyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ1NzUgZDc0ZTEyZDQ2NTgwZDM3YjE3NTU5MjVlNWNmNDJmNTk0NjBjNjRkYSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ1NzYgMDBhOWVmNzQ0N2JhYTUzOTMyNTlmOGY3M2Q3YTc1MjMyM2FiYjdkMiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ1NzcgODU1Yzc4ZjViNWRkZDRmYzUzYWY2YjI4YTg1YjVjYWNlOWU3ZmFlMyBsZWdhY3ktdHJ1bmsKKzE0NTc4IDk5NDhmZDUzMmQzYjRjYjJhODQyZGZhNzZlYjllZjlkZjg3Zjk2ODAgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NTc5IGI5NzVhMDU2ZGViNjY2NWM3ZDliODMxNWM0ZmJlNjcyMTQ4ZWI1YWQgbGVnYWN5LXRydW5rCisxNDU4MCAwZWNhNTY3ZTUzMmMyODRiNmY1ZDNhZmNlMTExY2RlNjk2OTA1MTIwIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDU4MSBmZTQ4NWE1ZDA0M2ZjN2JiN2Y1YjU0NzkxNDdiMWQ0YmI4MTU0NGYyIGxlZ2FjeS10cnVuaworMTQ1ODIgYzBmMThlMTFmNGVmMzI5MjBkODViZGFlZTc4YWY3MzcwNjY4ZWIyNCBsZWdhY3ktdHJ1bmsKKzE0NTgzIGMxNjcxMWZkZDk3MjQ0MzNjN2M5OTAxM2JmNGUzMjI0MGFjM2RkMjAgbGVnYWN5LXRydW5rCisxNDU4NCAxYzhhOWZhYTM1MDFlYzQ3MjkxZmZiNWZjOGUyNjY1MzFjOTEyYjRiIGxlZ2FjeS10cnVuaworMTQ1ODUgYzlkODdhN2E3MGIwYTI5MzI0OTMzNDViYjNhMzNhNWFiMTAxMTM3MCBsZWdhY3ktdHJ1bmsKKzE0NTg2IGE2ZTVmMDI3NGU1MTcyYzVkMDhlMzJhMjMyZTY1ZWU3YWM4NWExZDAgbGVnYWN5LXRydW5rCisxNDU4NyA3OTIyZDA4NDI2Y2FhZTdhM2I3ZDE4NTVjMDEzNTU3MGU5NjczM2RmIGxlZ2FjeS10cnVuaworMTQ1ODggZDEzNTk4MzFlNWYyNjRjOWFiMzg4ODlhMzI1NmJmYjNkZDI2ODk5ZSBsZWdhY3ktdHJ1bmsKKzE0NTg5IDViMDNjNTI3ODMxN2Q2NDlhNDBiNGFkNDk4MGQ3ZmRmZDY1MmM5MGUgbGVnYWN5LXRydW5rCisxNDU5MCAxNWNiYjU3Y2E3NDcyNTdkZTBmYjVjMDRkMDY5OTFhNDlkMDUxOGQwIGxlZ2FjeS10cnVuaworMTQ1OTEgYTg1MWVmMzI2ZDkzMmY3MTQ3OGQ4ZGE2YzJkMmNkY2QxMmI2NGQ5MiBsZWdhY3ktdHJ1bmsKKzE0NTkyIDdjYjQ5MWUzOTllNjE5ZjRlN2Y1NTk1YWM0MGRmMzc3YTc3NzZmYWEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NTkzIDI5YzVjNTQxNWRhNzFkZWNiZWJjZDgyNWIzMDhhM2E5MzA2ZGM1MzQgbGVnYWN5LXRydW5rCisxNDU5NCBmODJiOTIzYTdhOTZjMmFmNWQ0MGRmMzliYWQ0YjEwNTA1ZThkNWRlIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDU5NSBjZTI2OThkOGRmZWJmNmQ4ODUyYTQ2MGQ1MmI1YTQ2MzQ1NGY5NjJlIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDU5NiAwNmZiMmRkMzhkN2QyOTk5MGFjYjcyY2YyNjc4M2EzY2YxOGI0ZTBiIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDU5NyBjZmVjMTFiNGE4YTcyY2JlOGE3MmY3MDdhMzAwZmQ4MzBhNmY5MTkxIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDU5OCBhYTBkMGIxZjFiZTNlMTFiNjJhMTkwMmRjZDc0MWNiNWIyY2EzMDU3IGxlZ2FjeS10cnVuaworMTQ1OTkgOGNjNDQyOGM3YmFkOTFlNjRmZDlhMjRlOGQ1MDJmYWJiZTU1MWYzYiBsZWdhY3ktdHJ1bmsKKzE0NjAwIGQwOTdiYzVhYTdmMzQ0NDRlNWY0ZTQ5OTZlMmRiYjlhMjAyMDY4YmMgbGVnYWN5LXRydW5rCisxNDYwMSA0YjhiYzlhYjgxNzU1NTZmOWU4NzkzOGU4Y2RiYjc5YzZlZTM3YzQyIGxlZ2FjeS10cnVuaworMTQ2MDIgMmE2MjgwNjc5NjliOTNjYTU2MDRhM2I3ZmYyZjQyOTMyYWY5ZGZjZiBsZWdhY3ktdHJ1bmsKKzE0NjAzIGE0NjlhYThiMzMyYTU4NDYzNTU3NzFlZDFlODg5YTk5YTA2MTZiZmMgbGVnYWN5LXRydW5rCisxNDYwNCA3OWI2YTZhODgyZDllOGQ1NzEzNzA5MWRhYWFkNzA2ZmZhYTNlYTc4IGxlZ2FjeS10cnVuaworMTQ2MDUgYmRiNWY2YTUyNGI1ZTNmNjQxNzkxOTc5ODgzYzI1ZGJlOTAxNzU0OCBsZWdhY3ktdHJ1bmsKKzE0NjA2IDlkOGY0N2Y4NDQ3Zjk3NjIwMTM4ZDE0ZmFjZjZkYTJkNDdkYmUwMzEgbGVnYWN5LXRydW5rCisxNDYwNyAxYjU0YjIxMzQ2ZDI0ZmEyNDY5MGE3NjJjZWYxYjdjYmEyOGRiMzBmIGxlZ2FjeS10cnVuaworMTQ2MDggYWVmNWE3YzYyMjkxZWI2OWVlNDM4ZTg3YzFiYWEzMmMyNGJkZjI1NyBsZWdhY3ktdHJ1bmsKKzE0NjA5IDI1YWRjNWM4ZGQ2ODAwNGUzZmYxNzgwZDYwMDNjMGExYTkxOTIxY2UgbGVnYWN5LXRydW5rCisxNDYxMCA2OGUwZWYwNTI4MTUwNThmMDIyNTQ3OGI0OTM5ZDJlOTY5ZWQyODA5IGxlZ2FjeS10cnVuaworMTQ2MTEgN2JkOTdjM2RkNDMyZmQ5NDU5OGQ4Y2NkYzVkZDMyNGY2MTYwZjlhOCBsZWdhY3ktdHJ1bmsKKzE0NjEyIGM5NDU3MmE1MDk5NTIzMThlYTEzODgzMTQwNmE4ZDU4ZGM0YmZkYjQgbGVnYWN5LXRydW5rCisxNDYxMyBjMGQzNmY5MTZhZmQ4Y2E3MDFkZDU2NTg4ZDY0MWY5MmNhY2RhZTQxIGxlZ2FjeS10cnVuaworMTQ2MTQgZWY5OGVlNmFlYjQyYWUwMWU0Y2MwZjY4Zjk2NTNiZTExYWEzNzJmMCBsZWdhY3ktdHJ1bmsKKzE0NjE1IDA0NTZhOGMyZWJmN2MyYTk3MGYxNjczNjE2MmJiMzE0YmQxOTAyMGEgbGVnYWN5LXRydW5rCisxNDYxNiA3M2RmYmVlMTUwMjcxZjNhN2EwYmRmODE5MjNmNzY5Y2JhNjA4NTE3IGxlZ2FjeS10cnVuaworMTQ2MTcgZGU4NDA0NTczZmU1MTJjN2NkYTY5Y2M2MDRjYzhjOTNjMTUxMTEyNCBsZWdhY3ktdHJ1bmsKKzE0NjE4IGY2ZDFkMGZkYzFjN2M3MjAxYjQ5MGFjNzU5NjA3ODQwNzczN2FjNjcgbGVnYWN5LXRydW5rCisxNDYxOSA0MjFiMTYyMGY1ODJmOWE3YjgzZmMzYjkwY2FhOGVmOTQ5ZmIzMjU0IGxlZ2FjeS10cnVuaworMTQ2MjAgODAyMzcwYTYwZWY3ZTNkNzFmNGFhN2RiYmNiNGZlNmI5Njc1OGE0ZiBsZWdhY3ktdHJ1bmsKKzE0NjIxIDczNGYzYzA3YTZiYjlmM2Q1Y2MyNzkyMmVkMDcyYzY5MjBlNjkwMWIgbGVnYWN5LXRydW5rCisxNDYyMiAxYTU4ZTZmYzNhOTU0ZGY3OWY4NWYzOGQxMzAzMzgwMTI0ODU1OTU1IGxlZ2FjeS10cnVuaworMTQ2MjMgODI2NjkwYmExYWU2OWI4YjU4NGU0ZjY5NDdkNmZlZGM1NWUzM2UyMiBsZWdhY3ktdHJ1bmsKKzE0NjI0IDJhNDBlOWNhZTg1OWRjYTA0ODhmZGNkZTgxNjhjOGY1MDk4NWMyMmQgbGVnYWN5LXRydW5rCisxNDYyNSBkMDQwNDc4MGYwM2JmNGUyZjJhMzIwOGNlZWE2YWFhZGIzNGQ2MmIyIGxlZ2FjeS10cnVuaworMTQ2MjYgNWU0OGQ4M2MwZmNlMTcyMDQxOWJhZWU2MzdhM2QwNDc3MzM1OTBkNiBsZWdhY3ktdHJ1bmsKKzE0NjI3IGEzOTkyYTc4OWUyZTdiYjE1N2U3YjI5OGE1N2U4NzhhNzFlYzQ1NzkgbGVnYWN5LXRydW5rCisxNDYyOCA1YjMzZmNhMDJiNzg1YmI2ZGI3MDE1YzExNTkxNzAyZDU4ZDYwNTRlIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDYyOSBhZGRlYTExNTdhYTdmOTA3Mjk4YmFiOWU5OTcwNTIyNGIyNjVkY2UxIGxlZ2FjeS10cnVuaworMTQ2MzAgZTEwNTE1ZTdkMzU2Y2NiYTdkNDc0MTY0YzE3YTRmNTM4NTE4NjM0MyBsZWdhY3ktdHJ1bmsKKzE0NjMxIGY5ZGIzNjU0YTFmZDA4NzY2YTA1NmUzNjAzNzBlYTVmOWM3ZTAwYWQgbGVnYWN5LXRydW5rCisxNDYzMiAzOThhNDU5OWVlZTMzY2U5YjczNGMzY2U5YTg0OTM0MWZjNjNiY2RiIGxlZ2FjeS10cnVuaworMTQ2MzQgNmUzYzgxYmQ4MjkxZWRlYTdmN2Y0ZDc2MDQ1NGVkZTUyNjU0MmViYyBsZWdhY3ktdHJ1bmsKKzE0NjM1IDIzZmQ3ZDEwMDY0ZWIxNjIxZmNlY2JmYTAyZjJiMDE1ZGE5Yzc2ZGUgbGVnYWN5LXRydW5rCisxNDYzNiBkNDY2MmQzODE3NDhhYzZjYTZiNTUwYWUzMTI2OWY1MWRkNzM1Y2EzIGxlZ2FjeS10cnVuaworMTQ2MzcgZjkxNDFiZWJlZDQ4ZjRlNTlhMTFkYjEyY2U2MGNhNTQ1YmEwZTI1YSBsZWdhY3ktdHJ1bmsKKzE0NjM4IDNlNWZiZWY5YjFmNTFjYTYxNGFlYzczZTMzNDJjZmRjN2FiNWFiOTggbGVnYWN5LXRydW5rCisxNDYzOSAyNGMxODdiOTI3NzM4NDg2YWYwYWI0NGUwNmRkMDIzZmQxYzc5NzExIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDY0MCA3NDEwNjkwOTI4MzE5YmQ4MTJkNmMyMGIyNDZiNDczYjg0OTU4ZTk4IGxlZ2FjeS10cnVuaworMTQ2NDEgOWQ1M2ZjODA0M2JhNzlmNTRhMjk2MDFiNDQyZDZmZDEyZTY1MjA3NyBsZWdhY3ktdHJ1bmsKKzE0NjQyIGJlOThlMDU1ZTM5ZDk5MTQ1N2RkNjdjODg4ZmJhZWE0NTE5YTQ5NjAgbGVnYWN5LXRydW5rCisxNDY0MyAyNDE5OWMxYjkxODJhMzZjYzc5M2MyNjQ0NWVhMGJlZTYzYmU5YzA3IGxlZ2FjeS10cnVuaworMTQ2NDQgNDQxMmM3YTMyNDk3ZjkwYzI5NzFiMmQxZDBhMWEwYzc1ZWUxMGFhZSBsZWdhY3ktdHJ1bmsKKzE0NjQ1IDlmMjYxZTk0YjJiMjViMDQxZGJmZmEzZWIyZTUzNTJmNzQ0MTU1ODEgbGVnYWN5LXRydW5rCisxNDY0NiA1MzA1ZjliMDFmYzc1NDU3ODAyYjE3MTYyN2Y0Zjk4ZGJlNmY5MTc0IGxlZ2FjeS10cnVuaworMTQ2NDcgNTA3ODMzYjE4MjEzYjcwYjdjMjIzZWI5Njg2MzdkNTJhYTU1NTk3NSBsZWdhY3ktdHJ1bmsKKzE0NjQ4IDEzYmM2OGZhZWI2NTViNjZkYjY1M2Q0NjFkZTgwZmM3MGExN2Y2MTEgbGVnYWN5LXRydW5rCisxNDY0OSA3NGI3MjEzZmI2MDkyMGEwMWU0MjFjOTQ1MGNlNmU0Njk2ZWY0MGZiIGxlZ2FjeS10cnVuaworMTQ2NTAgZjc2YmY2MWNiMTljNGE3ODNhZmEzZjc4OTg3MGFhNWU5MTU2NzE1NCBsZWdhY3ktdHJ1bmsKKzE0NjUxIDU3NDI4M2RiMmIzZGRkZWYzNjlkZmQwMzY5Y2U4YTg4ZTJiMDJkMjQgbGVnYWN5LXRydW5rCisxNDY1MiBkMGUwNmVmYjMxNjUxZjBlNGNkY2I0M2Y2MDc4Nzc1NTgxOWEwYWEzIGxlZ2FjeS10cnVuaworMTQ2NTMgOGJkYzI1ZDIyOTI1YzIxYTEzNmM1MzMxMDE3OGU5MTNkYmUwNjY5NCBsZWdhY3ktdHJ1bmsKKzE0NjU0IDI4MDAzYWZhMWEyZjA5MWYzMmZmZjMzYWJiMTc1YTJmMmIyOTA4NTMgbGVnYWN5LXRydW5rCisxNDY1NSA4NzZmMzU4MjhlODcwYTJmMmE3Mjg4NmYzMTI1OWYyYTlkZDhkMjRmIGxlZ2FjeS10cnVuaworMTQ2NTYgNTEzMzU0ZDg3YTg1ZTc3ZTMxMTM5N2VlOGY5MDQ2YjM1OTljZjBmZCBsZWdhY3ktdHJ1bmsKKzE0NjU3IDhiODhlMWJjMGUxYjRiMGM4MmVjNDIzYWZhYzRlMzFkY2VlY2IwZDYgbGVnYWN5LXRydW5rCisxNDY1OCAzYzYyMGY2NWVhYTViNWViNjViNGU2ZmM2MWUxMjkxZjNkN2Q2YmMxIGxlZ2FjeS10cnVuaworMTQ2NTkgMzBkOTI0OGUxMWJiYjIzMWY3Mzg3NDNmM2MyZDFlNTViMjA0NDkxMSBsZWdhY3ktdHJ1bmsKKzE0NjYwIGE5YjVhMzFmZjhjYjE5MTM3MDc1ZjkzYWE3ZmE5YjU2YmZmMmI1YTUgbGVnYWN5LXRydW5rCisxNDY2MSBkN2E0YTVhZTJkYWVjNDdkNjc1ZjI2NmMzNjYyNmRiMzg5MDA5NGYwIGxlZ2FjeS10cnVuaworMTQ2NjIgYTEzMjk0YWVmMDJlYTRmZWIzNGI1NmU4ZjhmODg1NWVlMDEwNDVjNyBsZWdhY3ktdHJ1bmsKKzE0NjYzIDRjN2JjODg1ZjQyMGFmYTU4YTY2NmY5NDE2YmEyNDAyNzE3YmI1OTEgbGVnYWN5LXRydW5rCisxNDY2NCBlZmIzYTQ1YzY2ZjMxYWM4OWE4NGQ3YmM0NzkzMzRhZDhlZGM5MjRmIGxlZ2FjeS10cnVuaworMTQ2NjUgODgyMjVkZjM1ZWZiYWM0NmJiNWJjMTc2NWZkYzI4Zjc0MTk0NzdjZiBsZWdhY3ktdHJ1bmsKKzE0NjY2IDMzMDNhNWJhYzZkZGQ0MjAxMzM4MDFlNjk1YzRjY2JhODAxZjNjMDAgbGVnYWN5LXRydW5rCisxNDY2NyAwZmRhYzFmNTRlYzgxMDM1MTE1ZWY2ZmQ3N2MwMDRhN2M1ZDA2ZWZmIGxlZ2FjeS10cnVuaworMTQ2NjggOTNkYWM0MDUzMTg5YzBmNTUwYmY1NjlhNmY4MmY5NmQ3MjYxNTAxMyBsZWdhY3ktdHJ1bmsKKzE0NjY5IGVlNjQ5MmE1ZmRlZTY2YTgzNDIxNWIxNmFiYzg4NjI5NTUxNWRiZGIgbGVnYWN5LXRydW5rCisxNDY3MCBmMTA0MjUxYjZmOGYzN2VmNWZiMDAxMTQ4YmVlNjE3NzEzZDNmMDkyIGxlZ2FjeS10cnVuaworMTQ2NzEgODE3MDJhNzM1NGVjYjUwY2UwNDYzMzRkZDA5ZDhiYmU5ZGVkNWY4YyBsZWdhY3ktdHJ1bmsKKzE0NjcyIDE3ODlmYWU1ZjA3NDFhMDNjOWQ0NTZiNGUzYzM2ZDQ2NzNmNmM2NzQgbGVnYWN5LXRydW5rCisxNDY3MyBiNWU4MTI3MWM0YzhiYmNjNWFmNTZjNWY1Mjk1ZjZlOTkyYzMxOGVmIGxlZ2FjeS10cnVuaworMTQ2NzQgNGI4YjJlMjhiZTM0OTI1OThmYzkxZjFkOWFhYmRlZmY1NDViZGM3OSBsZWdhY3ktdHJ1bmsKKzE0Njc1IDk2ZmE0NmQzNDg5OGFjZGQ3YmM2YWZhYTNjMTk5MTEzZTYzM2VmMGIgbGVnYWN5LXRydW5rCisxNDY3NiAzMjYyN2RjYWZhYmZmNzJmNTNjNTc2NGJmOTQ0ZDYwNzQ0MmJiYTgwIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDY3NyAyM2RjODlhZDA5OTZlODk1NjFiNDBlMzg1YTAzYzU5M2YxYmQ1NGY5IGxlZ2FjeS10cnVuaworMTQ2NzggMzgzMTBlYjA2NTllM2E0YzQxNzM1YzhmZDkzMzc0ZDk5OWYyMjUyNiBsZWdhY3ktdHJ1bmsKKzE0Njc5IGY5NGQxMGI2ZDBmNGQxMzM2NmQ2YzdlZmMyMGM2YjNlNzgxMWI3MTkgbGVnYWN5LXRydW5rCisxNDY4MCBjOTQyNDdiNWMzNTU1NzhmNDYyNmQzZjY3Yjk1ZDllOTAxOTMyZTcxIGxlZ2FjeS10cnVuaworMTQ2ODEgODY1MWYyZGE3YzRjODcwMWU1ZDkyOTNmNGI2NWI5YzVmYjc1ZjlkOSBsZWdhY3ktdHJ1bmsKKzE0NjgyIGUzNjJmMzI2MDQ4Y2EyZDFkOTJmMTExMzQzOGJlOTYxYjlmM2YyZWQgbGVnYWN5LXRydW5rCisxNDY4MyBkNTBmYTM2NzBiNjZhMTdmNTYzMTU5ZjIwY2Q1OTU5Yjk0ZGNmZWQzIGxlZ2FjeS10cnVuaworMTQ2ODQgMTQ4ZGI2MzIyMTYxZmUyODQ5NmE0MDY2YTlmNzFjNmRhZDNmN2NmZCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2ODUgMDFmYTVjYTk4ODEzYjQ1NWM4MGMwNThmMGE4OWY5MzE2YWNiNmY1OSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2ODYgNzVkNmM3YzNlYzU1MDBlNDZhMzFhZTUzOTFkMTU2Y2ZkZjY4MzNkYiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2ODcgNzYxMGVlZDNlMDMzMjgzZmZjYTlhYzUxNWQzMzg3ZWI4OWI4OTljOSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2ODggZjc4ZjQ3NzI1NjhlYzYxY2FmMWNlMTk0NmYzMWYxOGQzNmFiY2NiYyBsZWdhY3ktdHJ1bmsKKzE0Njg5IDc0ZDk3ZDc5NWM0ZWU3M2NkODc3Mzk0MTY0MzM1ZDQ1MzBiZmVlYmIgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NjkwIDNmNTZjZGEzZDJmYzQxNzEzOGFhMGUzNGZiMDU3ZWJkNTNjZTRkZmMgbGVnYWN5LXRydW5rCisxNDY5MSBjNzQ1ODkyM2Y2YTJkMzMwMzQ1ZDExMDllYWMyYWQ5ODgzZWZlNTQxIGxlZ2FjeS10cnVuaworMTQ2OTMgZjI3Y2MxNzM1MTdlMzQyYzMxMjdmMjAwN2RmMzlmOGM5NzA5OGQxMCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2OTQgMGY2ZWFiMDNmMjg4MDFiNjMxNGY0OWE5YjFiZWI4ZjE5YWY1MmFhZiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2OTUgMzY2YzFlOThmNzA3OGJmODBjNDFjNjVhNWUwNTExYWQ0NmJkZTgwMSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2OTYgMGE3MDYwNzJkNTBhZjBmNmNmNzk5MTgyMjFhNDZhMWNiYmY2ZjUyNiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2OTcgMWM5MzVjYTM3ODVjOGQ4MDU4MDI0NjhmM2UzMDI4OWZiYjdkN2JhYyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2OTggNDM4YTQ0MGJiMDg1ZTVlOTUyYzlmNTEzYWMxMDFhZjNkYTI0OTZhZSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ2OTkgM2Y4NWM0Yjk5ZDMzMjIwNWI1NWRjMzc3ODI5Yjg1NDg0NTY3ZmM5ZSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDAgZmFmMGM5ZTliOTJmZWIzOTNlYWUxNWMyYTYzZGE0Y2U2MTk1MmFhMSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDEgZjIzODY0ZTRhZDJjYzU1MTI0YzFjZGEwY2M4NTJiN2EzODFjOTQ3ZiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDIgZTU3Y2U0ZGY1NzA3YTcyZmE1MjIxMTEwNTE2OTE0NjYwZTAyNzE4ZiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDMgNGZiZjY5NjIwODdkNThmM2IxMGQ5OGNmYTJjY2I1ZTdmNzhlZWRiNSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDQgYmRhYjljNTVmMTY4Mjk3ZWNkMDhkMmY2ZDZhNWYzNWUwMjVjMGIzOSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDUgYTMzZjJhM2RiODkyN2ViMjU0MjJlYTI2ZTJlOWQzZWYyYzY3ZGQyYyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDYgMmVhYWVkNzU4OWFlNWUwZDk2OTliZmMyMzA1ZjBhOGE3YTZkNTYzOSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDcgM2FmM2IxZWI2N2ZlMTRjMWE5MDAwZmY0ZGNhYTQ4YTI4Mzk1NGQyNyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDggMjYxMmI5NmI5OWFjNDRmYmY3MDQzZTIxNjYzMDljOGEyOGZhMDY1YSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MDkgMjhjOGNlNjY1YjAzMjBkZTk3YmEzM2FkNWIzNzM1Yzc2NDIxNWE1YiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MTAgYjU4ZjJmMGNkNTViM2U0MjgxOWI2YzBkNGQyOTI2ZjYwYzQ5MjA0NiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MTEgOTYzNDhiZWI5Mzg0Mzg5ZmJlN2YyZDkwNWQ1YjNiYmEyNjMzMmJmZiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MTIgMTY5YWRkNmE0ZGMxYjBhMjI5NjMxOTRkYTM2YTkxODQwY2Q3NTY5MSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MTMgNTAwMGVhZjA1OGRiNzhjZDc4NDI2YmMyMmE2NjA5YWY2ZjBkNDhmNyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MTQgNzAzZGE3ZTk0YjIxNjVkMjU4OTc4NjNhYzQ4NGM2MjFkY2U4Zjg0YiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MTUgZDdiODdmMGZmMGQyYTdmNzFmY2E2NjQ1YjAyMmQwNDZhYWQ4MjQ1ZSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MTYgOWQ3MzU2Mzk0MjlkMTNhZmNiOWFkY2MwNDAxMGQ0ZjFiZGQ3MjVmNCBsZWdhY3ktdHJ1bmsKKzE0NzE3IGUwZmIwNGQxYmQ5MzRiOTBiMzhhNjBiNWZmYTBlZTQ4MGYzYjljYTkgbGVnYWN5LXRydW5rCisxNDcxOCA3NGZiNjAyYjc2YzJmZmIxZGU5Mzc1YmNlNGEzMmI4ZGI5MjJhZjA2IGxlZ2FjeS10cnVuaworMTQ3MTkgMTI3ZjcwZjU5YjAyNjY0M2EyMzJiODllMDU0NWMyMDQyOWMzYzZmZCBsZWdhY3ktdHJ1bmsKKzE0NzIwIDY2MzEyOWYzYWJlMDAxZWJkNzU3MGUyMWFjZTQxMDkzMDNiOTc2OWUgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NzIxIGI0NzI0OGNlN2I2Yzk0NTA0OWM2ZGZlNWU3YWM4OWJlMjdjN2MzMTEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NzIyIDM5NTIzMTg5NTdjZmEzMzY0ZmFlYWE4ZmJlNmRhOWY4OWJjNGY5ZjUgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NzIzIGJkMTAxNDIxNWY2MjI1NGE2ZDA0YTViODNmZTU2ODI5Y2VhYzI1YzMgbGVnYWN5LXRydW5rCisxNDcyNCA0ZmEyNWEyOTIyNzNiNzU0ZGJhYjBkZGUwNjQ3OTEwNmUwYTMxMGQ3IGxlZ2FjeS10cnVuaworMTQ3MjUgYzJlZmQxN2NlY2JmMWQ2ZjI1ZWZkNzhlYmMyYmQyOTZkOWYxZWYzYSBsZWdhY3ktdHJ1bmsKKzE0NzI2IGU2YzQ2ODE5ZGI5MjcyOTc2YTJkOGZmOGNlYjBiODgxZjQwMTU1OWUgbGVnYWN5LXRydW5rCisxNDcyNyBiYTgwYzkwNjQ0OTE4MDY3ZTZmNzU4Y2E2YzY0OThkOTM3MjVkYTNlIGxlZ2FjeS10cnVuaworMTQ3MjggYTQxMTgzNjcwMzg2ZTYyZmYzODk4ZTE5NjhlN2I4ZmUzNDJjMTYyMSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MjkgYzYwM2NkZWRhZTE3NzRlMGVmYzU5YmFhNTVkOGY5MGRjODQxNjhiMiBsZWdhY3ktdHJ1bmsKKzE0NzMwIDEzZmQwZGZlYzU2MGE3ZGQ1NTZhZTA2ODY5YTVhNGZjZWY3NWFlNGYgbGVnYWN5LXRydW5rCisxNDczMSBlNzgyMDM1MmNiODBkMGYzZDdiMGVhYWNjNTFiMWIzZjg3N2M2YjA2IGxlZ2FjeS10cnVuaworMTQ3MzIgMDU2OTcyNTE3MTkxMmU1YjdkN2QxYTU5ODRiM2U5NzkyNzUwN2RhNSBsZWdhY3ktdHJ1bmsKKzE0NzMzIDY5YjBmY2VmNGMwZjIxZDc2OGI3NDc1NWU0ZGJlNDJkMTVlMmRiYzMgbGVnYWN5LXRydW5rCisxNDczNCA3NjUxNjIwNGI2MjBiZWI4NGZjMWRkZTlmYWVkYjg0MzQ0ZTIyZTUyIGxlZ2FjeS10cnVuaworMTQ3MzUgMWUxYWViYjNlNGY2OWU1OGYwYjRkOGQyMDUzNzA0MzM3ZDQ0Nzk2ZiBsZWdhY3ktdHJ1bmsKKzE0NzM2IDg2ZDljZTE1ODA4OThlZjQ3ODY5NzdkM2Y2YTZhNDE0ZDNjOGIxYjQgbGVnYWN5LXRydW5rCisxNDczNyA5MTRlZDUyODg5NmUwZWQ1YTUwYzJkNTZhZDAwOWQxNzMzOTM4OTI0IGxlZ2FjeS10cnVuaworMTQ3MzggYTBhOWM2OWFmOWY3ODc5NDY1M2I2ZjA5YzA3OWQxOWUzMzExN2NiOCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3MzkgNmZkMGJiMGMwMzMxZWZiZTdiMWYxNTQ1ZGFiYjFlNzM1MTlmNDk2MiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NDAgZjA3YzMzMDU1N2NmZjg2M2Y1ZTMxNWZiOGQ1ZjFkNjEyMDUyM2FmNCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NDEgZDc0ZWFhOTJmMGI0NTgzNDQ5MmY0NWUyNDY0YzRhZGM2Mjc5NDExMSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NDIgNDNkMjI0Nzg2YTU4MWU0NWQzMjZjZTM1MzczY2Q2ZGE1YWMzNzVhNyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NDMgNjI4Y2ExZTkwNTkxZTUwZTk1ODk4OThiN2Y1YzFkZDAwMWFkMzhmZiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NDQgZjIyMGZiYTU3NzQ5ZmI4MDMwNWNmZmU5MWJhMDdkNTZhYWI3NmFlZiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NDUgMGI5NjMzYTQ1ZDY4ZWI4M2JiYmFjOWU4YjI3OTRiM2NhNzQ1MDQ5YyByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NDYgY2EwMTdkZTRmMmZkOTRjNjdiYzJlZTIwYmNhMWI1NzAyM2MxYWExNCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NDcgMjVkM2RkMGIxY2EyOTM4MDMyOWY0NGFkYWQ2Njg0ODZiMjg0MTgxNSBsZWdhY3ktdHJ1bmsKKzE0NzQ4IDc5OTRkOWRiN2Y0ZDVkZmU1MWViYWQzMDA0NzFkMDFlYmJjMDAyOWIgbGVnYWN5LXRydW5rCisxNDc0OSAwMDlkOGZhZTgxZWFlNmVkYmI3ZmQ3M2YwYjBmOTA3ZWZkNmNlMmE1IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDc1MCAwYzQ0N2MyODkxNDY2ZmQxM2ExMmQyM2RlNTRkOTQyYjg3Njg2MDYyIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDc1MSBkMmEwMDYxMDkyZjgwNTAxNTVkNGNiOWI0NGQyNjljYmFhZGQ5ZmNmIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDc1MiBkYWY0ZWZjM2FiYTkxYmMxZTlhOTI1ZDI5ODNmOWQxZjU5NWNiMWU0IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDc1MyA4ZGMwOTE4YWUyYzJmZmNlN2NhYTRlYTBkMjNhYzZmNDJlYTAxNmFlIGxlZ2FjeS10cnVuaworMTQ3NTQgZjk1NWZiZDUxM2VlNGY2ZDRhNmM5ODY2OGUzNDhhMjdhZTAxYTgyOSBsZWdhY3ktdHJ1bmsKKzE0NzU1IDU1NmMyN2IzYWI2ZWJmNTZkMzM3ODI0NGM4MzcwNGE0NjIyZTJlODYgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NzU2IGM4ZTAwMTBjMTJlZjMxZWRjYmUzMjkyZGY2NmU2M2QyM2FkZmM3MGEgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NzU3IDg3YWVlNGVmMjlmNTI4NmFjNmFjODMwMDRhMjRhNGI3YWY5YmIzMGYgcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NzU4IDMyNTkzODMwMGE3ODQxNWM2MWI3Yjg0M2NiMTVlNDhjM2JiMzAyYzggcmVsZWFzZTE1MnAxLXBhdGNoZXMKKzE0NzU5IDZlN2VjOWEwMGNjZTVjYjA5ZDhkNjU3YTkxNjhkMGI5Y2M3OWZlZTEgbGVnYWN5LXRydW5rCisxNDc2MCAzNjkwYzg3YTliYzY2NGM2NTM0YzMzNjkwNTk0MDg4MmY4YTAwMjI5IGxlZ2FjeS10cnVuaworMTQ3NjEgYWZhYjdiZDcyYzQ3OTVkNDg1NWVhYjNlMzk4NDgyMzY0ZTUxMzFkZCBsZWdhY3ktdHJ1bmsKKzE0NzYyIGEwNWQ4MzM4ZmFjNTczNzQxZWEwYmQzOWU4YTdiY2JhYWYzMjkzYTcgbGVnYWN5LXRydW5rCisxNDc2MyA5Y2FjZDExNjY5ODYyM2NmZGFkOTAzMDkwMTY2MjM5NmNjNjk4NDBjIGxlZ2FjeS10cnVuaworMTQ3NjQgODU2ZGFkZjU2Y2Q5N2IyOGYwM2E4ZjMyYzRiNzJiYjNiMDY2OGRjNCBsZWdhY3ktdHJ1bmsKKzE0NzY1IDIzZmNlOWI5ZjNiYzkzMTdjYzI4MmRhNTY0ZGY5YWY5Y2U3NmIwNjggbGVnYWN5LXRydW5rCisxNDc2NiA2ZjBkMWUzMzQ2Zjk1YTcwMWM4ODBjN2ViNTViNmFhM2NkYzI4OTk3IGxlZ2FjeS10cnVuaworMTQ3NjcgOTQwNDE5NWZmM2ZlZmZhY2JlMjYwOTFjMGUxMGUwYTkyNTkzZDE3MyBsZWdhY3ktdHJ1bmsKKzE0NzY4IGQzZTRhNDU2OTI4YmUxZGE0MTRiNmQ0ZTA0MWIyNmE4ZjVlMmYyNGUgbGVnYWN5LXRydW5rCisxNDc2OSAxOTU2ZWMwNzY3OGU4NmYwNWVhMWRjNDJjODMzMWE4N2I4ZjMxMTFiIGxlZ2FjeS10cnVuaworMTQ3NzAgNzQwZWMwOGU2ZWMxYzU5MjdmNjNlNTFjZGFmNGRiMTNiOTk3YzMzNCBsZWdhY3ktdHJ1bmsKKzE0NzcxIDQxYTcyNWMxMjU1MWY2MWI0YjI4Y2YzNDFlNTAxN2UzM2IzNDFiZGYgbGVnYWN5LXRydW5rCisxNDc3MiBkNmJjM2JkNTI0MjRlNmExYmNhNjFhOTlmZDBjODZkNGVhY2RhN2RjIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDc3MyBlMTIwNDE3MzIzMDQwOTM1ODllM2RlN2ZmNDAyMzg0NDRkYTFiYjA4IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDc3NCBhNGE3ODVhMDEzNjBhZWFlMTlhYzQxODM5NzRkZWQ2NWFjMmZmNjcxIHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDc3NSAwMWE2MGI5M2MyZjUwMGYzNTczMDZiMzlmYTlmMGVlOTU2ODdlYjY2IHJlbGVhc2UxNTJwMS1wYXRjaGVzCisxNDc3NiAwMTljMzQyODBmYzIxZjNiNzI5ZmU5MzlhYjU1ODdhZjRmZDMyZDUwIGxlZ2FjeS10cnVuaworMTQ3NzcgYTlhMWU1OTFlYjNhMWIxZWEwNTgwMTQ4NWI2MWNkYTM5YmQ0ZjRlMSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NzggODFjMjNiMzg3YmIwODQ4YjBmNWVhZWRiYWQ5YjQ5ODZkYTFmOGQ5NiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3NzkgMmUyMWFkMWM2MGZmODY2MzAxMzg2NDBmNWE0YjcwMDM0YWVlNDc5NCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3ODAgYWY0Nzc4YTEzMDU1NjkxN2RiYWFkZTNmYTQyMTYzMTViYzM5N2JmOSByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3ODEgNjM3NGM2NjY5MTQ3OGU2NzJhZTlkNWY1YmEyNjg0NzFmY2Q3YzIyMiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3ODIgNDJjYmVhNjc3N2I3ZWU5ZmFjYTZiY2Y3NzZiNWZiYWQwNzFlNTg1YiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3ODMgY2FlNTZmN2U4MGZmZWU3M2E4NGI2MTc3ZDJhNzBiNDViY2Y2YWMwNiByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3ODQgZDhiMjJhNzgxOTA1YzE5MTE0ZTEwMWMzOGUzODYwMGQwMjMwM2Q3ZCByZWxlYXNlMTUycDEtcGF0Y2hlcworMTQ3ODYgNWNhY2NhY2UxZGNmODg0MmQ0YzQ1ODZlZjllYzBlOTUwZjY3MmEzNiBsZWdhY3ktdHJ1bmsKKzE0Nzg3IDE3OGM2ZWZhZWQ4YmFlMzFiM2Q1M2VlYWFmZDM3MDdjODE1ZmVlNTMgbGVnYWN5LXRydW5rCisxNDc4OCAxNDA5MmFiYjhiYjRiZTU0N2M4NGFlOTE0Y2VhNTUxNDQ4YWQwNDM2IGxlZ2FjeS10cnVuaworMTQ3ODkgYjJkNDRiYjc2MWQ0YjVhMTRkY2VkZjQ3ZmI5Njk2ZDg1ZGYyZTg1NyBsZWdhY3ktdHJ1bmsKKzE0NzkwIGEzODRiMGY2OTUxMmY2ZGRlZTYyMzVjZGNkY2Y0ZmFiMmU2Mjk2NGYgbGVnYWN5LXRydW5rCisxNDc5MSBmYTEyYTU2MzM2OGQ1MmYyYTcyN2Q4ODcyYmY5ZDlmMWI4ZTNhZTYwIGxlZ2FjeS10cnVuaworMTQ3OTIgZjg3YjU2ZWViYWNjNzJjM2VhYWE0OTFmNzFkMmUzZTQ5YzE0MThlNCBsZWdhY3ktdHJ1bmsKKzE0NzkzIGRkYTM3OTRjOWNkOTA0OWJhZTU3NGVjZWE5ODJjMjY2MmJkYjM1MDMgbGVnYWN5LXRydW5rCisxNDc5NCBiOTA4ODBjMGU1ZWIyMjVjMThmMDA3MjMxMjA0ZDY5NGFkMDkwM2JhIGxlZ2FjeS10cnVuaworMTQ3OTUgZDg5NTU2YzA0ZWY5OWRiYzlmYTZiMzhiNzg2YjFmODA4NDIyMmJjNCBsZWdhY3ktdHJ1bmsKKzE0Nzk2IDVkMzE2NWUzMGJjZTYzMTNjNDU4M2IxZjQ0ZDUxMDhmYzAzMjFiZTQgbGVnYWN5LXRydW5rCisxNDc5NyA4OGIwYjMyMTA4Y2ZhMmQ0ZTM0ODM0ZjllYjMyMDJjNjhkMTM2OWM3IGxlZ2FjeS10cnVuaworMTQ3OTggMjNhMWM1MjZjNmYwMmM1YmRiMDU2ZWM2ZWRmOTdhOTYwNzk0YTZkNiBsZWdhY3ktdHJ1bmsKKzE0Nzk5IDVkNDVjZmExYmM5MTM4OWE4NmUzZDRjOGY5ZDA2NzA2YzVjMzczZTMgbGVnYWN5LXRydW5rCisxNDgwMCAxZTVjZDcwY2VlMTA3NTZiODg4YTc1NjRkMjAxZWY2YzJkOGI3Nzk2IGxlZ2FjeS10cnVuaworMTQ4MDEgNDJkOGQ3NmRhZTZkMmM1ZDViYzEwOGIzMjJiMTE2NWQ2NzEyOThiOSBsZWdhY3ktdHJ1bmsKKzE0ODAyIGM2Y2IwZDI2NjgzOTMwMmI4YzljNzVlOGE5MWMwYzYzMTVjZmUzOGIgbGVnYWN5LXRydW5rCisxNDgwMyBkZTI5NmE3OGFiZmRjNGU1MDJkYTM2NTdmYmZmMmJkNWEyZGM1YzJjIGxlZ2FjeS10cnVuaworMTQ4MDQgNzc5NTU3M2VjMzU4MWM1MTgxOTU3Mzc3ZThkYzM5YTA3N2Q5ZDg5ZCBsZWdhY3ktdHJ1bmsKKzE0ODA1IDA0OWYwMGJmYjljZWYzNDAyODg2ZTU2OTBhMTcwNDdjYTE0NTg3M2EgbGVnYWN5LXRydW5rCisxNDgwNiBjNDNiMzgwNzkyMjhmMzk5MTU1ODk4NzViMThhMzRiNTAxYzczOTI4IGxlZ2FjeS10cnVuaworMTQ4MDcgY2E4ODgwY2YzNjc0Y2EwZjgyNjM1MGRhYzRjY2Y3ZWFlMzU1OWE1MiBsZWdhY3ktdHJ1bmsKKzE0ODA4IGRiMDNhMjljZjE2YjVjMjJjYmNlNGQxNTVjMzgxMzc4OGZkNjljOGMgbGVnYWN5LXRydW5rCisxNDgwOSBiOTgxYTdhOWI3MzhlOWMxOTM1YjAzYTkxNTI1NTZiZmQwYzIwN2QwIGxlZ2FjeS10cnVuaworMTQ4MTAgODZjZmZlNTBmYjE3MmMwMjUzZDBiMTQwOTg4ZTcwNGNlYjQ5YmJmOSBsZWdhY3ktdHJ1bmsKKzE0ODExIGJjYWIxODlkZGY4NmJkZWNjNjU2MmY1ZjFkMzAxNTBjMGNiYmQ3NTEgbGVnYWN5LXRydW5rCisxNDgxMiBlMjQzNTE5MjZlMTNlYTYwNzUzZDAxYTg2MjdkYTY4ZjBmZjYxOThjIGxlZ2FjeS10cnVuaworMTQ4MTMgMzMyMzEwZmUzZDNhZjM3Mjc0ZTg2OWY1MGVlYWYyOTA2NjA0OTFmMCBsZWdhY3ktdHJ1bmsKKzE0ODE0IGExYmZjOGQ0ZmMwMDZjODE4MDg1OWY5NjI4MmZlYjFhZTc4Yzg1MjQgbGVnYWN5LXRydW5rCisxNDgxNSA5NzUwYWY1ZTcxYjAxMzlhZWNjMGQ0YWNmZDE0ZDY2NjMxMjZjYjZlIGxlZ2FjeS10cnVuaworMTQ4MTYgNjdkNDEyOGRhMjU0M2ExYjQwYTQ0OTUyNTRhYmFhNDA5Mjk3NDc4ZSBsZWdhY3ktdHJ1bmsKKzE0ODE3IGU0OTQzZWJiNWY3ZDIyNTExMDA3ZjllODBkNTI3ZWQwZjI5YzJjYmIgbGVnYWN5LXRydW5rCisxNDgxOCA2NWYzNWI3M2UzNTA1NGQ5NWFmZWFhYmQyODk3MGRkMzg2OTg1NDI2IGxlZ2FjeS10cnVuaworMTQ4MTkgOWVkZWRlNjUxZmIxYTQ4ZTcwY2IwODgwY2EyODI1ZWRmNWY5M2Q4NiBsZWdhY3ktdHJ1bmsKKzE0ODIwIDRhNjFjYzgxZjM2NzM1ZDE2MzU2MTZkODVlYzMzMTNhZWQxOTE1OGYgbGVnYWN5LXRydW5rCisxNDgyMSBmZDJiMDZjNmZmNTNiNzIzNzczMDFjMDNhNGQ1ODcyOTQyYTgwYmZjIGxlZ2FjeS10cnVuaworMTQ4MjIgODk3Y2YwZTVhNDM0YTYwZDE3YTJiYWY0MWNlN2Y1MzU5MmRkZDAxOSBsZWdhY3ktdHJ1bmsKKzE0ODIzIDgzOGRjMzgwZTQ2NzdlZTg4NTcwYTA1YzBhNmM3NzM0NDc4MmJlZTMgbGVnYWN5LXRydW5rCisxNDgyNCA0NGI5NDJmN2ZlYjc2NmViM2U1YmRkNDgzOTBiMmY0Yjc5YTZmZDNmIGxlZ2FjeS10cnVuaworMTQ4MjUgZGM4YWE5NTFkZWY4MDQ1YzEzOGJmMDU5OTYxZGI1ZDRhNDIyOTBmZCBsZWdhY3ktdHJ1bmsKKzE0ODI2IDYwM2RiMGQwYWVkMTQzNDVjOTAwMDQ0YmFkOWU2NWYxYjZjMzMyZTQgbGVnYWN5LXRydW5rCisxNDgyNyA3ZTAwNjM0MmU3OTA3YzY5OTU4YTBlYzQ1ZmIwN2FiZjI0M2FkNmRlIGxlZ2FjeS10cnVuaworMTQ4MjggYTZlNTIyY2I1OTE4NGE1YzBhZjMyNTFmYTExMWI2YTAzYmIwZjM5NSBsZWdhY3ktdHJ1bmsKKzE0ODI5IDI1YjYzMzY3Mzg1ZWIwNjUzYWIyYmMyODRmMjlmMDA2MzE1YWQyOGEgbGVnYWN5LXRydW5rCisxNDgzMCA5NmVhMWE4MDBiMjM5M2M5NjdiYjVmM2M4MmI3YzllMzg4YWVkM2FmIGxlZ2FjeS10cnVuaworMTQ4MzEgZTJkYjg5YTk4Y2IyZjQ5YjQyYzlmMTU3MDE4ZTcwNWRlNTEzYjI1ZiBsZWdhY3ktdHJ1bmsKKzE0ODMyIDM3ODliNjQzZmU4OTgxMjkwYzM1MjA2NDYzMWUyYTY0NDFlYmNhODYgbGVnYWN5LXRydW5rCisxNDgzMyBiYjkwMDQ0OTIwMzA1MzhiZDYxMWZiZDRlZjJiNDYxN2NlMjRkOWEyIGxlZ2FjeS10cnVuaworMTQ4MzQgOTg3N2U5NzgxNzBlYTc1YjI2NjA3MTRkMWNlNWFiMmY4OTE4ZTZiZiBsZWdhY3ktdHJ1bmsKKzE0ODM1IGFlMDY1ZGRiYTBmMTQ2N2NhMjM3M2M0MWJhNDc0NDQ2MDI1ZWM5MDIgbGVnYWN5LXRydW5rCisxNDgzNiAyYTYwZDZmODM0ZmZiNDEyMDIwNzA4NzBhMWE0YTdjZDIyZTc3MGRiIGxlZ2FjeS10cnVuaworMTQ4MzcgZTA5ZDc0MTRkM2VjZjgxNjU3ZjZiZTMyYzIxODc0OWJhM2IzMWRhNCBsZWdhY3ktdHJ1bmsKKzE0ODM4IDhkMWM2OWJkYzRmMmMyYzk1YzE0YjJkMmM4ZWUwMzhkMDQ4MWQ0NGQgbGVnYWN5LXRydW5rCisxNDgzOSA0Mzg3NjA2YTEyODFiNWEwZjlmMzc3ZjlhMGM4YWVlNGZmOWMzZGZiIGxlZ2FjeS10cnVuaworMTQ4NDAgYzBlNGE5MGRjNGZmOWY3Njg4YmJmNGFlYzVkYTdhMGI1YWY0MWUxYyBsZWdhY3ktdHJ1bmsKKzE0ODQxIDdhNTE1ZmMxMGMxZDc3YzM5MjYyODEyMWQ5MjQ4MzM1Mzk3ODMyZmMgbGVnYWN5LXRydW5rCisxNDg0MiA4ODEyNTdkMWU4NTQ0YmY4YWQ1MTVhZTMyZWU5OGIyNWNlODM3NTExIGxlZ2FjeS10cnVuaworMTQ4NDMgNDBhMjY4OWRhZjM3NzY2YzIxZDdmNWZmMmU2NGQ1NTNlNmYyOTkzNyBsZWdhY3ktdHJ1bmsKKzE0ODQ0IDQxY2JkMjk4ZmZjNmMxZDJiNjYyYjhlNTc5ZWNiOTQwMzBmNjhjODIgbGVnYWN5LXRydW5rCisxNDg0NSBmMGUwMmFkYjkxZWJhMTliMzdmNTM1OWZlZjQ2N2U5ZjA5NDRkZDI4IGxlZ2FjeS10cnVuaworMTQ4NDYgZTgxYjEzOWFiOGE0OTU5ZmVhZGIzYTY5MjM5MTZiNzI3ZWM2ZjUwNCBsZWdhY3ktdHJ1bmsKKzE0ODQ3IGQ3MzFjZWY4MTJiMzVlNjE0ZDI2Mzg1MzM3YjQ4OGU0OWVlNDBlM2QgbGVnYWN5LXRydW5rCisxNDg0OCBlOTg3NzBkZTMxNDcyZDM2N2E4ODI4MjBlMzFlNDdiYmEwYzkzMWU2IGxlZ2FjeS10cnVuaworMTQ4NDkgNjZmMTRmZmU4ZWI3MTZmOTZlOGE0ODVkOTZiMWFmZjI2NDcyN2JiZSBsZWdhY3ktdHJ1bmsKKzE0ODUwIDJhOTEwYTc3NTc5YTRkODMyZjZkOWFiODliMWNjMjFkNTQ0MTFkMjggbGVnYWN5LXRydW5rCisxNDg1MSAzMjQwN2MwOGNhZjRkMzU4OWVhZWZmZDIwNWM5MmIyMTEwMzQyODkwIGxlZ2FjeS10cnVuaworMTQ4NTIgNmZkNDM4NjdhYTRmYjA3ZjlmZmViMTM3N2E5ZjNiNDIyMDE2ZTU0ZiBsZWdhY3ktdHJ1bmsKKzE0ODUzIGY3YTBkMjlmYjhiODFlMTQ0NTAyOWMxM2IyNmRjMmZjZDJmMTYxOTMgbGVnYWN5LXRydW5rCisxNDg1NCA5MmVjNzhlMjE3ZDI5YWY4OTkwNGQzZjczNGFjMTJjY2FjNjBjODYzIGxlZ2FjeS10cnVuaworMTQ4NTUgZTJiMDJkNDBhMTQyNWMzYzg1ODJmNjYxOGRmMDk3NjZhY2U5ZTM2YiBsZWdhY3ktdHJ1bmsKKzE0ODU2IGRmZTNiYWYwYWVjZGNlNDgwNDk1YWI5YzdhNTY1N2RlMDBkNGNhYTIgbGVnYWN5LXRydW5rCisxNDg1NyAyZjJmMmIxY2U1NjhkNjFlMWQ2ODcyYTc0ZjA4NGVkNjkyNjQyOGQyIGxlZ2FjeS10cnVuaworMTQ4NTggMjcyMWM3Y2MwYjI3MTVmM2QxYzUxZWI5NTg3NDQ4OTMwOWJhMmI3MCBsZWdhY3ktdHJ1bmsKKzE0ODU5IDYzMzM2ZjIwN2Q1MTI4ZDU1ZDM4ZWVmOGZkNjdiOTAwM2QwZTUyNjkgbGVnYWN5LXRydW5rCisxNDg2MCBlNmFiM2M2MDNmZjkxM2JhNjE3ZWFiNjIxOTU2NjY5ZWE0MzlmZDk3IGxlZ2FjeS10cnVuaworMTQ4NjEgNWYyMjM5NDA2ZGQyMGQzNzQ0OTljYjBlZTI0Y2ViZTYxOTgwNTFiNyBsZWdhY3ktdHJ1bmsKKzE0ODYyIDMwYTQ5ZDE1ZGE5NzVjMjYzN2VlOWMyZDNlNWQ5ZDNmN2UwNzI3NDIgbGVnYWN5LXRydW5rCisxNDg2MyAwNjk5YTdkZmQ3MzdjMjM1MTM5NGVkZDNmZmZmMTM4ZjZiNjgxYTQzIGxlZ2FjeS10cnVuaworMTQ4NjQgZWM1OGI1MDNiNjcwMGM1ZmQ2YjUwNThkNTFkZDAyZjY1NDg3OWExOCBsZWdhY3ktdHJ1bmsKKzE0ODY1IDA3MjdmZjM5ZTY0ZmI5MjY0N2UyZmRkYmQ1YzVmOGNmYjIwOTllMTUgbGVnYWN5LXRydW5rCisxNDg2NiAzZDc4NWMyY2RhODgxNWRiYTY3MzIxZDg3NjM0MTU1NDU4MDE2M2FlIGxlZ2FjeS10cnVuaworMTQ4NjcgYTBlZjhmYTRiMjQ4OGI0MzhkYWVhMTVkZDM1MjU3OTdjNDY3MWM4YyBsZWdhY3ktdHJ1bmsKKzE0ODY4IGVjMzYwYjRlOGY2NmZlN2ViYWQxNjAwN2ZhMzAzYzRiY2M2NGIzMjcgbGVnYWN5LXRydW5rCisxNDg2OSBlMmIzMjgzYzVkYjBhNGQ2ODIwMTliMjk0ZjlmOGFkNDM5MGU4N2U4IGxlZ2FjeS10cnVuaworMTQ4NzAgZTYyMTRhZDJhNjBjYjA3YjFkZDk0OTg4YzY4MjEyN2MwZDkwMjIzZSBsZWdhY3ktdHJ1bmsKKzE0ODcxIGIzYTRlNDUxYzA2Yzg2YTBiMDJmNmQ5NTA4MDdkMjJjNzc1ZDlmNjAgbGVnYWN5LXRydW5rCisxNDg3MiBiNWZjYjUzOTY5OTk0N2NlYjQ3NTM5Yjc3NmRiNGQwNzVlNGM3MjU1IGxlZ2FjeS10cnVuaworMTQ4NzMgMmNkOWM0MzZiZDQyYjM3OWFmMTdhZDRkNWUyMjk0YTVmYzFlYTY5ZCBsZWdhY3ktdHJ1bmsKKzE0ODc0IDEwMzhlNTg2MTA3OThlNGM4MDY3NDIwZGRjMzViYjViZmE2NjdmYTYgbGVnYWN5LXRydW5rCisxNDg3NSBiNDBmNjc5YjEwN2NlNTU4MjljNmI2YWY2YTk0OWIwNzEwNjk5M2FmIGxlZ2FjeS10cnVuaworMTQ4NzYgMWI2OGQwYWQ3ODM1NmMwZmEyMGRkNzQzM2EyOTBiMzI0ZWE1OGYzZCBsZWdhY3ktdHJ1bmsKKzE0ODc3IDcxMTM0MGQ0NDc3NzYzOTE0OTYwODAxNDljZWIyZTliY2UwMTdmMDkgbGVnYWN5LXRydW5rCisxNDg3OCBjMTYwNzQ5YWNmZjg1NzFiNWFjMmM0MTVlYjFlNjJhZGMzYWQ3ZjJlIGxlZ2FjeS10cnVuaworMTQ4NzkgNjY3ODc4Nzc2OTMzNmEzNWZiMTg5MDliODJiNjc4N2EzNDUxNDM5MSBsZWdhY3ktdHJ1bmsKKzE0ODgwIDliOWFiZGUwMzJiMzI0NTUxMThlY2QxNGM0ZTgxYzMxZDdhOTg2ZTEgbGVnYWN5LXRydW5rCisxNDg4MSA1YjU1ODFhZjk1MWM1ZDRkYTgwYzhmYTExOTIyOTM2NmNlYjE4NmY3IGxlZ2FjeS10cnVuaworMTQ4ODIgNTcyMGQxYzE4ZjRkMTMxNWUxYjVlOTA0NmQyZmM1NDgwYjdmMTYyYyBsZWdhY3ktdHJ1bmsKKzE0ODgzIDMzOGUwNTViN2NjMDljODAzOTM5MmI5YjgxNTZkYzVmZTU2OGY1NTQgbGVnYWN5LXRydW5rCisxNDg4NCBkYWRlODJiOWVlMTljZTBmMDg4OWViOWJlYmY5MDA5OGFhNDhhYTIwIGxlZ2FjeS10cnVuaworMTQ4ODUgNGEzZmQyYzEzNzJmMjI4MWUxODM1Zjc0MWNjYWQ3ZTI0ZjAxNTcwOSBsZWdhY3ktdHJ1bmsKKzE0ODg2IDQzYzM2ZjYzZjg2N2M5MzkyMDE1MzJiMjcyYTdmMzkzZWNlMTdmYmQgbGVnYWN5LXRydW5rCisxNDg4NyA5OTlmYzNlZWRhOTlhOTliOGI5NTRiNmJhODQxZGQ4NTEwNmM1MGIxIGxlZ2FjeS10cnVuaworMTQ4ODggNGNhYzM3NjQ4YTdmOTg2MDI0YjUwMmNhNTkzMTVhMGQ3MTU2YmJmYSBsZWdhY3ktdHJ1bmsKKzE0ODg5IDQ5ZTAyN2I0ODYyN2YwNTFiZmQyNzVlNTE1NThkNGM1MzAzNDg2ZTAgbGVnYWN5LXRydW5rCisxNDg5MCBlOGMzMGU2OTY2NmIwZTQyYThiMjc0MWU4NmRjNjA4Mjk0ODVlMjRjIGxlZ2FjeS10cnVuaworMTQ4OTEgMTRlOTNkODlkMzRlYmQxYTVjNzkwMmRiOTg2YmE1MDEzMzRlZmE3NiBsZWdhY3ktdHJ1bmsKKzE0ODkyIDgwNDQzM2YwMTEyYzliODBiMmZmZmI5OTRiNDlkY2VjMzc3ZDdmOTUgbGVnYWN5LXRydW5rCisxNDg5MyAwYWM1NzdlYjgyODJmMDdhYmM0Mjk2NDBlZmJhZThiOTRiZWFmMmIzIGxlZ2FjeS10cnVuaworMTQ4OTQgODFlNWY4MDAwMDk0NGZjNzU0ZTQ1MjQ1MzkzMjRmMTNiNGFiNzYyMiBsZWdhY3ktdHJ1bmsKKzE0ODk1IGNhOTM4ZjM4ZDA4N2RmYjFmMzczOWFlNTc4NDM4NDMxOGE3ZjNkNjUgbGVnYWN5LXRydW5rCisxNDg5NiAyMWE5YmJiNTcyZDczN2I5YTBmODM5MGQzMTNkYWVmMjFhMzE5ZjkwIGxlZ2FjeS10cnVuaworMTQ4OTcgODMwZGQ1ODFlOTM0ZjZjN2I1MTMwYmQ1YmZmZTViN2UwOTFjYWMzYyBsZWdhY3ktdHJ1bmsKKzE0ODk4IDc4ZTM2ZTA2ZTUzNjlkMjBlMjkwNjdiYTg3YmQ0Y2ZmYzEzZWYxYzEgbGVnYWN5LXRydW5rCisxNDg5OSBmZWQ4OWI1NzYzN2E2ZTQyZjAyMTdiZWE1MWI1NzMwYWFkZTU3NmFhIGxlZ2FjeS10cnVuaworMTQ5MDAgZGI1YzAzZmE4YzczZjU1ZDk2NzQzODFlZjhjN2YyNzRjZTdiODFjNyBsZWdhY3ktdHJ1bmsKKzE0OTAxIGJlMmYwMDNkNDdjYzZmMWUxM2Q0MzU5NGZjZTYwNjUzODhjMjVhMGQgbGVnYWN5LXRydW5rCisxNDkwMiA5ZTdhYmIyOGU5MmExNzEyOTQzZTU3ZDFjOGIzYzRlY2Y1YjAwZTRlIGxlZ2FjeS10cnVuaworMTQ5MDMgNzVhZGQ5NjQ0ZmYzNGEyOWYyYzA5OTQxNGJkNjljNzkxODBlNjMyZCBsZWdhY3ktdHJ1bmsKKzE0OTA0IDUyMmVlYWU2YzA2NjMyZTJhOTMxZDMzZjA5ZWE2ZjkwMWEzODQwYzAgbGVnYWN5LXRydW5rCisxNDkwNSAyMzZhYzFlYjE4OGUzZDI2OWZiZmFiN2IzZWZjZjkwYjI2N2FmYWJiIGxlZ2FjeS10cnVuaworMTQ5MDYgOThiMDljNDBkOTdjYzlkOGNhOWFmYTU0ZjFjZmU3MzllYmExN2JlZiBsZWdhY3ktdHJ1bmsKKzE0OTA3IGZlYjlhZjc1MjdhNTdmNWFkZTI1NWUwYTRkZGI1MjQyYTBmMDYyZDQgbGVnYWN5LXRydW5rCisxNDkwOCA0MjM4N2FkZTZhZmJlNTJlMzk4YWNhY2Y1ODk0NjczOTI3NDg1M2IzIGxlZ2FjeS10cnVuaworMTQ5MDkgMzU2YjhlODlmOGUzMDY0NWEzMDBlN2QzODA0N2FmMjhiMGQ5YjhlZSBsZWdhY3ktdHJ1bmsKKzE0OTEwIGM4OGM4YTg1Mjc0NDA1YjQwMmZmNjEwM2UxMzUxNjBhNGEwYTc4MDYgbGVnYWN5LXRydW5rCisxNDkxMSA2ZTY4YzdkZGNkYjU3ZjZmYTgyYzBiYjUxYWUzOGQ0YjJkYjE1YjI0IGxlZ2FjeS10cnVuaworMTQ5MTIgYTJmYmMwZmY3YzJlMDcyZTNkYzM3OTdlNjNkZWZiNmNkYTBhNzRmMiBsZWdhY3ktdHJ1bmsKKzE0OTEzIGZmNmMxYTgyYzMyMmFjYzQ1ZjA1MTNjNjQ2OGE4ZWFlNTdlNjM4ZGEgbGVnYWN5LXRydW5rCisxNDkxNCBmNDA3ZmFiMjczNTg5YTMzZGUyMjJkYzZmYTM1MTRmZDdlOThjN2Q0IGxlZ2FjeS10cnVuaworMTQ5MTUgMjY1M2ZkNTE2ZDRlMmVlMjAxN2ZiN2M1Zjc1YzFhYTRmM2E1NmUwNSBsZWdhY3ktdHJ1bmsKKzE0OTE2IGI3MzAzZjJmZjYxM2EzYTQxYTZiZjBjMGM3MjAzOGY4M2E2YWIzN2MgbGVnYWN5LXRydW5rCisxNDkxNyAwZDNkZTRjMTNjYjcyNGNiZjBlZmI4ZGIzZjNkM2Q2ZTc3ODNkZjZiIGxlZ2FjeS10cnVuaworMTQ5MTggMjc0NWRhZTg3MDVmMTk0MmQ0NDQ4MjMyODdhNjExZjY4ZWJiMTNjZCBsZWdhY3ktdHJ1bmsKKzE0OTE5IDAxNTVhM2IxM2JmMGUwYzliODY5NjU5NzFlYmZiMDAyYjFiZWEwMTAgbGVnYWN5LXRydW5rCisxNDkyMCBkYjgzZTYzYjM4NGI2ZGM3MmYwZmQ1MGY3ZjJlMzdjM2Y1NjBlNjgzIGxlZ2FjeS10cnVuaworMTQ5MjEgZjAzZTJhODE4OGFhMDdjZjVjMDdjY2MxZTAxMTgzMTk1ODc1NjU1ZiBsZWdhY3ktdHJ1bmsKKzE0OTIyIDc3MTkzZThlMDEzNzE5MmVhYjUzOTg0NWNmZjA3MzMxNjY0MjdmYzQgbGVnYWN5LXRydW5rCisxNDkyMyBlNzg5ZTJiZjA1YjNlZWUxYmZjMzdjYThiOTkzOGRkMWJlZGQ0ZDY4IGxlZ2FjeS10cnVuaworMTQ5MjQgYzI5Y2RkZThlYmQ4MDMwODg4Zjg5YTg0ODE5YWIyMDk5YTVmYjNkNiBsZWdhY3ktdHJ1bmsKKzE0OTI1IGI1OGFlZDcxY2Q2M2YzNzdiZjdjNDk0MjM2MDUzYzY5NDk0MmRhNGIgbGVnYWN5LXRydW5rCisxNDkyNiBjODg4NzkyZGU2YTc3MDg4MGE2N2M1MmI5OWQ1YTQ0YWFhNzk1N2ZlIGxlZ2FjeS10cnVuaworMTQ5MjcgMjQyNDU4NTAzYjEzMTFiNWQ2OGM3ODE2NmZmNGU5MjMzNWJjOWY3NSBsZWdhY3ktdHJ1bmsKKzE0OTI4IGY1YTFlOTU0NGM1ZGU2ZWU3NDM1MjQ5OTI2YjcyMzJiOTk3YzQ4OGYgbGVnYWN5LXRydW5rCisxNDkyOSA4MzI1N2YzMzk0YWUzMTBjOWNhZmFhZDAwYTExMGZlNmU1ZTY4NGJjIGxlZ2FjeS10cnVuaworMTQ5MzAgMTcxOWU0MWUyMzMwMzFlZDdhMWYzMWI3ZDcwNGEyNTcwMmFlZmQwNiBsZWdhY3ktdHJ1bmsKKzE0OTMxIDM5YjkxY2I4MGI0MWMxYWJhNDg0NDJmYjIwNDMwZDk5OTJmYmQ3ZTQgbGVnYWN5LXRydW5rCisxNDkzMiBjZGY2OGNlNTg2YzQzOWVjNTUzNzIxMWNiOGVlZTk2ZDI5MjkyNDM0IGxlZ2FjeS10cnVuaworMTQ5MzMgMTUxYjkxM2U3NGExMzc2MjY3OTU0MjExYTMwZjIzZDhhOGFiYjZmNCBsZWdhY3ktdHJ1bmsKKzE0OTM0IDk0YjYwMWZhZWJhY2VhZjJjNGViODBiNTc1OTY1ZWZlMTlhZjc4NmUgbGVnYWN5LXRydW5rCisxNDkzNSBlNzVhYzI5MmVmNGMxZmFhODVmMThiMzg3NWU5NGNmZTM3ZjZiMGUwIGxlZ2FjeS10cnVuaworMTQ5MzYgZjA5ZTlkNjU2YTExNTRlYmRlOWFjOGNlZjU5YzlmNTY3YTIxNmUwMSBsZWdhY3ktdHJ1bmsKKzE0OTM3IGMzZmMyYjQ2MTdmY2Q5NmUyNzk5YWQ4MWRjY2RmYTU4ODBmZGNkZWMgbGVnYWN5LXRydW5rCisxNDkzOCA0ZGQ4YjZhM2I5YzVkZGE4YjRhMzU5OGM1YzQ2M2FhMTZlM2YwOTI0IGxlZ2FjeS10cnVuaworMTQ5MzkgYmM4NjFhZGQ1ZDcxMmExODM1YmJmNmNkZDhiZDAxNzkzY2QzNDI3OSBsZWdhY3ktdHJ1bmsKKzE0OTQwIDZkMTA4ZDUwOTM0NmE4OTIwNGRmM2I5ODgzMWI2YWY2YmEwYWUyYmMgbGVnYWN5LXRydW5rCisxNDk0MSA3ZjE4Zjk3OWE5M2FmYTNjY2RmN2FkNDcwMTNjY2U5OGUyNzIzM2RjIGxlZ2FjeS10cnVuaworMTQ5NDIgNDc2M2EzZDU5YWI5YTI1NTgyMDM3NDNlODU0ODYyMDM1OGRmZDE5OCBsZWdhY3ktdHJ1bmsKKzE0OTQzIGYyOGU5MmRiYjllOGUxNGQ4YjY0MDgwZjQ2ODMwZWM1NjRiOTI5NGEgbGVnYWN5LXRydW5rCisxNDk0NCA0MmYyMWU0N2I0ODYwNzA3MmU5ZmM3NzdkNmI0ODViNWEwZTA5NGQyIGxlZ2FjeS10cnVuaworMTQ5NDUgNDFkZmM3ZDRhMzZiMjI2ZmJmNTIzYjIzNzJkZWZiNTgzYTY0ODM5YiBsZWdhY3ktdHJ1bmsKKzE0OTQ2IDZmZjdmNzZhNmYyZTU4MmUxMGY5YjlkZGExYjhkMzY2NDhmYjNiMzUgbGVnYWN5LXRydW5rCisxNDk0NyBmZTNjYjczNDFiNzA4NDJiNGFmNTEyY2ExMzUyMzQ3ZmY4NjBkNDliIGxlZ2FjeS10cnVuaworMTQ5NDggZjgzZTQwOGFlYjA1ZGYxMjkxZTdkNDYwNzZkODFjNjMyNWQwODg3OCBsZWdhY3ktdHJ1bmsKKzE0OTQ5IDI1M2NkZWVhZjQyZWY2ZTg3ZGQxNzVhNjc5NTlmM2RmNTVlMzk2OWIgbGVnYWN5LXRydW5rCisxNDk0OSA2MDVlYjkzMjZmZmUxZmQxZTQzZjQwZTIzMzhkNjY1MmFiNDQ5ZmRmIGxlZ2FjeS10cnVuaworMTQ5NTEgM2UzZDE1MmE4NTU0NzA0MGYzZmE4NTNiNjM5NTM4NGJjZDkwY2Q3MiBsZWdhY3ktdHJ1bmsKKzE0OTUyIGI3M2M5ZjhjNTM3YzFhZWQxNTNhYWMzZjZhNzI5MDhkZTM1NDZhNjggbGVnYWN5LXRydW5rCisxNDk1MyAwOTA5ZjU2MjNkNGZhMmMyYzA1ZWMxYTYzMjgzYjhhZjZlYjRmOWMyIGxlZ2FjeS10cnVuaworMTQ5NTQgMzdkODIyNzJmMGY0NDViZWYwMzQyYTdjMTFmN2JjZjg2NjcyMWZkOCBsZWdhY3ktdHJ1bmsKKzE0OTU1IDRiZjk4Y2MzOGRiNzFhYzYxNWExMmZhZTVkMDgzNzdjZjM3MDIzODQgbGVnYWN5LXRydW5rCisxNDk1NiAyNjNiZWU0ZWYxM2M1OWE0ZTAyOGFhMTk0YmJhZDIyY2Y1MzY1ZDhhIGxlZ2FjeS10cnVuaworMTQ5NTcgMWRjMGI2MzdlYjFiM2E1OTMxNTkxOWI5Yjc0MTZhYWI2M2NjMGQyMiBsZWdhY3ktdHJ1bmsKKzE0OTU4IGEyMTZmZTc5YWUwMGI0MTdiZGQ0YWRmNDdmMWFkNjU2MTk4NDk4OGIgbGVnYWN5LXRydW5rCisxNDk1OSA3NzQ4MTcyODViOGNhMjAzNTU1MGQ0NTgxYjZmMTUxYzkwOGEwOGFiIGxlZ2FjeS10cnVuaworMTQ5NjAgMzNiZmM1MWRlYzA1Y2YzOTQ3NmZjYTU1NGE4MjhkMWM1ZDRhN2Y1OCBsZWdhY3ktdHJ1bmsKKzE0OTYxIDVlYTc3MzQxMzUzMTk4ZTA3YjI1NzEyYmU0ZThhNzA5ZjkyOGExNTkgbGVnYWN5LXRydW5rCisxNDk2MiBmOTdiYjQyZDQzNDQ4NWMxZDY5ZDEzOTM2N2IzNzE0N2E0OTU3NTA4IGxlZ2FjeS10cnVuaworMTQ5NjMgNTMwY2Q5YWZhODBkNTQzYmFiZGUzYWEwOGFhMDgwZjU4MzMxNzg5NyBsZWdhY3ktdHJ1bmsKKzE0OTY0IDVhNjIwMGZmNzdhYWM0NTQ3YzVjMjgzM2JmZmQ5ZjlmOTg0ODA4NzAgbGVnYWN5LXRydW5rCisxNDk2NSAxN2NlNjYzOTY3ZDg0MDhjNTM1ZWUxYzBmNTI1YjgwNTM3NTUzM2I4IGxlZ2FjeS10cnVuaworMTQ5NjYgM2U5YTFjMWE5ZjU2NzYxZTkyZWNjNTA3MjQ0NWE3ODg5MzEyYTczYyBsZWdhY3ktdHJ1bmsKKzE0OTY3IGU4MmU4MmIzYjlhZDU2NWFjOGRmODEzNWE2N2ZhNjExMzU2ZGJlNjcgbGVnYWN5LXRydW5rCisxNDk2OCAyZGMxYmRiNDA4OGVkNmYxOGQ1NmQyNWQ3M2I0NmY2MTk2Yjk1YTk1IGxlZ2FjeS10cnVuaworMTQ5NjkgYzQwNWRiZGQyNmM5ZWM1ZGNiZTBjNzA4ODdiZjJmZDEyNTE0YjFmNyBsZWdhY3ktdHJ1bmsKKzE0OTcwIGZmZDI0MmZlZDBlMmRjOWRjOTg3Mjc4MGMxOTNjZDA2ZDMxOTE1NTEgbGVnYWN5LXRydW5rCisxNDk3MSAyMzY2MGI2NmJjYTMwYzBlNWVlZDg0MDBiNjhmZTRiOTgzYmQzNGI3IGxlZ2FjeS10cnVuaworMTQ5NzIgNzdiMDJlNTNmNjY2MmY0YzQyNmM2Yzg4MGYwZDdjNDkzYmE3ZDFmNCBsZWdhY3ktdHJ1bmsKKzE0OTczIDc4NTljMGE0YWQ5NTQzMGJhYjUyYTgwZmVhMWQxYjdkYTQyZjY4NjcgbGVnYWN5LXRydW5rCisxNDk3NCA3YmY4YjEwY2UyYWI1YzBkM2IzODA3ODhjMThlNjEzNjVhYzE5NzQ3IGxlZ2FjeS10cnVuaworMTQ5NzUgMDc0YzMwZmYzMjA2ZmQ5ZmZkYjc0ZmMzMzlkMmYxNjQxMThhZWQ4YyBsZWdhY3ktdHJ1bmsKKzE0OTc2IDYzMTM1ZTlkZWYyNDFlNmYwYTBhNTk3MzJhMjcxNzUzYjE3OTNjOWQgbGVnYWN5LXRydW5rCisxNDk3NyBkNDkyMzc3NTIwMjk3NmUzZDE0OTcxNWY4YTY4ZTVmZWJjZDdlZTU0IGxlZ2FjeS10cnVuaworMTQ5NzggMTQ1YzAwNzNkNzg1ODFiNGE0OGQ1YWNhNDViMjg3YTdhMzZiYjcyYiBsZWdhY3ktdHJ1bmsKKzE0OTc5IGNlMjZkNWYzZDNjZTdmYTVjOWQ5MjQ3Yjk3ZTM3OWFhMTEyYWRmZDQgbGVnYWN5LXRydW5rCisxNDk4MCA5MjM1YWM3NjE3NmQ0NTIyODU0MzRhMDBiMzU1MGIwNDYxNDMzMTRkIGxlZ2FjeS10cnVuaworMTQ5ODEgMGNkMjJjODRhNGYxNGQ2ZmJjYmY5YTdmNDU0NzI0MWEyY2FhNDEzOCBsZWdhY3ktdHJ1bmsKKzE0OTgyIGRlMGY5M2Q5MGVlNGQxOTU1M2JiZmY4MzM0YTI1YTVhODU5ODAwMzEgbGVnYWN5LXRydW5rCisxNDk4MyAwODM5ODM4MjcyMjQxZWQ3NWE2NDk3ZjNmNTIwNzU4OWJjMDgyMGMzIGxlZ2FjeS10cnVuaworMTQ5ODQgNzI5ZjMxNTI3NjVjYjhmNTZiZGMwYTliYWI1OTc2Y2E5Yjc5MzI1YiBEaXN0dXRpbHNfMF8xXzMtYnJhbmNoCisxNDk4NSAxYjdjNDk0NWM2MWMxODlhNDZhOTU0NmQxY2IxZThmYmU5MzI4MGIwIGxlZ2FjeS10cnVuaworMTQ5ODYgN2ZhMzE3NDg0OWJkYmE3YmQyODg0Y2JkNWU1YmM4YjEyMzM0NzliYiBEaXN0dXRpbHNfMF8xXzMtYnJhbmNoCisxNDk4NyAxOTBhOTI0MmY4M2E4YjAwZDMwMWNkMjA5ODM5YTA0MDk5NmUxOWNhIERpc3R1dGlsc18wXzFfMy1icmFuY2gKKzE0OTg4IGEwYTI0ZDNjZmQ5NjExYjZkZWUyYzlmNzExM2UxODM5NTFjMzQ1NGYgRGlzdHV0aWxzXzBfMV8zLWJyYW5jaAorMTQ5ODkgMTc2MDUyNDE2NjNjMTljMDUwZDEzNzUzYTJjY2M3YzI1ZTE0NTRkNyBEaXN0dXRpbHNfMF8xXzMtYnJhbmNoCisxNDk5MCBmYmZmYTdlYjJhNGY3NGY1NmU5NTAzZjhlMjVjZDBhYWE4ODhhNGE5IERpc3R1dGlsc18wXzFfMy1icmFuY2gKKzE0OTkzIDdlOWE1Y2Y1NWM3Njc2YTU5Njk2MTY4NjUzOTI2ZTgzYTA3ZWE2ZjUgbGVnYWN5LXRydW5rCisxNDk5NCAxYzNmOTE5NTFmNzM3YTAzNzMyZWRlNzM2MjdkMTA2ZTExMTJjMGE4IGxlZ2FjeS10cnVuaworMTQ5OTUgYmUzZTBkMTk3NTIyM2VlNjgxMDA2MGRmNDc1YjIwY2I1MDVlZDZkMCBsZWdhY3ktdHJ1bmsKKzE0OTk2IDNkYWM4NTRlNjExODUwZWRlNzkwZTEyNDU5NDNjZWI4ZTFiYTBiY2MgbGVnYWN5LXRydW5rCisxNDk5NyA2MTJiZTFiYjY1ZmZlMWMxYmQ3ZjI2YjY1MDQ1NmNmYzM2Y2Y4MzIwIGxlZ2FjeS10cnVuaworMTQ5OTggYmRmY2E1NGExNDFjYmMzYmJmMTkzN2IzZWQ5ZDQ2MTQzYjU2MmE5OSBsZWdhY3ktdHJ1bmsKKzE0OTk5IDY5ZDExZGY4NDNjMTU0NGIyZjIwNDgzOTY1ODdhOTNmYzU5OGUxZjkgbGVnYWN5LXRydW5rCisxNTAwMCA3MDE1NGUyZTljODkwZTkzZjFlOWIyNTcwN2UwOWE1NjVjN2QyMjBmIGxlZ2FjeS10cnVuaworMTUwMDEgOWViNzY5ZTE1ZjgxYmMyNDA2N2Y1YjQzYTQwMzhhZWRhZDlhMDcxZSBsZWdhY3ktdHJ1bmsKKzE1MDAyIDBhM2NiMDgyYzVkYmRiNGY5ZTc4OThjZGNhYjRhNDczYTU5ZDY1NzIgbGVnYWN5LXRydW5rCisxNTAwNCA5ZGRlMzE1Y2RlMzk2OWE2MGQxYWM0OGYxM2EwZGQ0YmM4NzYyOTllIGxlZ2FjeS10cnVuaworMTUwMDUgNGRhMDZmZGQzZTYzODFiYmZlYjkxNjU0YTk0MGI0MjVhNWY2NDJjNyBsZWdhY3ktdHJ1bmsKKzE1MDA2IDQxNTg1ZTg1MWY1NWI2MTQ5NDVjMjBhMWY0ZDdiODBhZjYzODAzZDAgbGVnYWN5LXRydW5rCisxNTAwNyA2NjkwM2MzZjE0ZGI0Mjg2ZDQ2ZjkzYTEyNjIxMjVkM2VjNTgwYTUyIGxlZ2FjeS10cnVuaworMTUwMDggYzM0MWU2OGYxOTg4ZTM5M2QwNmI0YjE3NjZkODZjOTVjNzU4YjA0MiBsZWdhY3ktdHJ1bmsKKzE1MDA5IDBiYTg1NzA5YTY3MTI5NTFhNzcwYTFiNWQ1OTczMzhhZGFjNzBhMDAgbGVnYWN5LXRydW5rCisxNTAxMCAyMzI2NjM1MmYxMzhjMDBjZTdhOWZiMGIxNThiZjc0NzhkNTFhYzMzIGxlZ2FjeS10cnVuaworMTUwMTEgNjViYzVlYWY0N2NlOTZlMTJlYjA2ZDhhZjdjN2RjZGE3NDY0OTk0ZiBsZWdhY3ktdHJ1bmsKKzE1MDEyIGQxZDAxNmFjY2U3NGViMjg5YTQxMjJmN2U3MTJjNmQ2ZDJkOTgzNGUgbGVnYWN5LXRydW5rCisxNTAxMyA4YzBmODYzYmE1MGM2N2UzOGJmNzQ3ZTRiN2VkNzFiYjhjMDI2ZDA0IGxlZ2FjeS10cnVuaworMTUwMTQgZmIyMGY2ZmRkMTZkNmQwNDhiYzcxYjFjNDJmYzU5M2ZiMzlhYTFkOSBsZWdhY3ktdHJ1bmsKKzE1MDE1IGFhYzExMmNjYTc5YjUxNmQ5YWUyMTNlYmU2NzgxYTM4ZjkwZTBhMjIgbGVnYWN5LXRydW5rCisxNTAxNiBmZjc1ZTQ3MzRkZDlmZWZkY2E3YjBmNzM4NmU2MThlODBmMDJkZDFkIGxlZ2FjeS10cnVuaworMTUwMTcgNjRmY2FlNzhkNDdhZjYzNTY0N2I5NmU1YjI1OGMwZGZmYjgxZTQ4ZSBsZWdhY3ktdHJ1bmsKKzE1MDE4IDY2ZTljOTdmOWY2NzdjMGJjNjc4YjA4Zjc2YjUwMzljOTZlMDUxNmUgbGVnYWN5LXRydW5rCisxNTAxOSA3NmVkMTM5ZmNlNTk3MzVmYzUwZWQ4ZTE1MGEyYjc1NDhjYWU5N2Y0IGxlZ2FjeS10cnVuaworMTUwMjAgM2ZkYWVjZmZjNGRkZGJjNTI1NDVhY2MxODIyNzVhZWNiZDNjMDBlMiBsZWdhY3ktdHJ1bmsKKzE1MDIxIDllMWY2MDk3NjIwOWYyN2ZjM2Y4ZGFmMjQzZmU1MDA0ZWNmMDRkNTMgbGVnYWN5LXRydW5rCisxNTAyMiAyNjFlODk1NDQwODU0ZjkwZDIxMzQzZDlhMDI0MGY2ZjllYWNmMjQyIGxlZ2FjeS10cnVuaworMTUwMjMgZjZiNThiMDIxZTU2ODkyOTdiMDZlZmU2MjQ1YjBhOWMwYTdlY2FmMCBsZWdhY3ktdHJ1bmsKKzE1MDI0IDhhMWVjOGZjMDBmZWE2NmE2MDMzMDcxODZkOTAzZTdlNjhkMDNhNmUgbGVnYWN5LXRydW5rCisxNTAyNSAwYWM0MGU0N2JkYjVlMWYyMjYwOWZkMTgwM2RhNzQxYmQ2NGUxNDRmIGxlZ2FjeS10cnVuaworMTUwMjYgZmQ3NTYxMTI0MjA3NjRiMGRmYWY2YWZhZWM5MTQ2ZDJhNzFkN2Y5NSBsZWdhY3ktdHJ1bmsKKzE1MDI3IDU1OWIyNWE3OTAzMmFjYmM2ZmRkOWNlNGE3M2FlYzRmZWNhZGUxMmIgbGVnYWN5LXRydW5rCisxNTAyOCBjZjEzMzhiYzIxYzAwMGJmNWVkMjA2YWJkMzRlZTVjNDgxYzE1NWUyIERpc3R1dGlsc18wXzFfMy1icmFuY2gKKzE1MDI5IGNhMzFlNjc5MDI0YjVjODhhMzFjNjg5MWJlOGM5OGMyNWJlNWUzNDYgRGlzdHV0aWxzXzBfMV8zLWJyYW5jaAorMTUwMzEgY2JmYTk1YTZhMDNlZTY5YWU3OGViY2JmYTJkZWY4MzQxNjQ1OGYxOCBsZWdhY3ktdHJ1bmsKKzE1MDMyIDhlZjM2NzIzNDI2NDllYTUzOWQzN2Q4MTM5OTYzYTNiNzhkNGRkYjcgbGVnYWN5LXRydW5rCisxNTAzMyA1N2ZkZmEwMGRhOTMzN2E4OGYyZmY1YTFjY2U5MDZhYjMwODZkZWM4IGxlZ2FjeS10cnVuaworMTUwMzQgNjQ3YmY3MTkxMmYwMmMxNDYzOGUzNDk3NDg5OGY0ZjMwYWJjOTY5MyBsZWdhY3ktdHJ1bmsKKzE1MDM1IGFmOGQyMTEzYmMxZDAyNGJjMzRlNTc2MzUyNWZiMmI4MTU0NzUwYzQgbGVnYWN5LXRydW5rCisxNTAzNiBkMDZiNTBiYTgxYTYyY2MxYmYzMWY3ZDQxMGI3Mzk5ODI4Y2Y3NzliIGxlZ2FjeS10cnVuaworMTUwMzcgNTFjMGMzYjZkOTE5ZWZmYzU2MWJhYWUyMTMwZThkNDRlMjk1YjM3ZSBsZWdhY3ktdHJ1bmsKKzE1MDM4IDNhOTRjN2Y4NTU1MWU4OTllZTVmYzcwN2ZlNDc4ZTE0ZTkwOGJjZWIgbGVnYWN5LXRydW5rCisxNTAzOSA5NjAxOTI1MTg4MjliMWVlZTk2MjRhYzg5ZGQwZjZhNjA4NjM2ODVlIGxlZ2FjeS10cnVuaworMTUwNDAgOWM5NmU1ZDQzN2E4MjFiNzQ5OTRlMmQ4OThmY2QzY2ZhMGQ0ZThiNCBsZWdhY3ktdHJ1bmsKKzE1MDQxIDgxODYxNDVjNGEwN2Q2ZTI4NmVlODViYmE3MTMxYTU5ODYxOTU5YWMgbGVnYWN5LXRydW5rCisxNTA0MiA0YzZjMjQ4MTY5M2VkNDA2OTFiNmVjYTQyNDY1MzlmZDY0ZGVjNGY5IGxlZ2FjeS10cnVuaworMTUwNDMgZDFkMjJhMzYyNjhmOTUzNDU5OWNhZDNkYzUyMjdiYmRkNzhiOWJiMyBsZWdhY3ktdHJ1bmsKKzE1MDQ0IDVmMzYyNGJmYTU5NGMzN2NkZWE3YzhiYzdjYTVhZTAyYzBhNTFlN2QgbGVnYWN5LXRydW5rCisxNTA0NSBmYjc1ZThhY2ZiMDU3OTllNjcxMzYyZGU2NDM5NmM3NTg0ZGVmZjA2IGxlZ2FjeS10cnVuaworMTUwNDYgMTVkNDExNDliZjI0Mjk0MjljYWQ0YTFkMzk0MTQ1ZDVkMzU3NGQ1ZiBsZWdhY3ktdHJ1bmsKKzE1MDQ3IGI3ZjJiMjI1ZDBjMDIwNTY5MWFkODgxMzk3MjlkMjM3ZTMxNWNkMzQgbGVnYWN5LXRydW5rCisxNTA0OCAwZDY0Y2U3MzU0Yjk5OWU0NmYxNGI3MDU4MzYwZTQyMTBkNmI0NDhhIGxlZ2FjeS10cnVuaworMTUwNDkgOWFmOTk3MDY1N2ZhZWI4NTM0ZDc1OTljNTkzN2M2MmFhYzliNTg2NCBsZWdhY3ktdHJ1bmsKKzE1MDUwIDM1YTExOWFhMTliNGJlZTMxYjk0OWZhZjUxODZhNDZiYTlkODRlYTAgbGVnYWN5LXRydW5rCisxNTA1MSAyMzQ2YWMwNzgwY2U5MTFiMzMxOTU1YTQxZGNiNjVmMDMwYzBlYjRjIGxlZ2FjeS10cnVuaworMTUwNTIgYjE1NzI1NmRiYTc2OTdjOWJkYjhlYWRmOWJlNzRhMWQ1ODU1ZGY1NyBsZWdhY3ktdHJ1bmsKKzE1MDUzIDE2MzE5ODZkYjEzYTY2NGZmOGMwZmE1ZmQ0ZDJjYmJlNzg4OTViYzAgbGVnYWN5LXRydW5rCisxNTA1NCBkNjQwZTdkNGFlYzQ4YzVkNjFjNDBkYjZkOTk3ZjIxYjhmZWIyNmE0IGxlZ2FjeS10cnVuaworMTUwNTUgOTE3MmVkYWFlZmY1ODY5MTBkYzRiNTBlNGM4YjQ0YzI4YjJmNjlkMCBsZWdhY3ktdHJ1bmsKKzE1MDU2IDE3ZmM5Zjk1OTkwYjQ4ZTE3ODI3Y2VkOTNkN2I2NjYwZTIyN2YzZmUgbGVnYWN5LXRydW5rCisxNTA1NyA0MGU1OGM1YjZmODRmYWRjMjhhNjdiZDExOGQ0MDBkOTNiYjVlMDAyIGxlZ2FjeS10cnVuaworMTUwNTggZmQ5MDViYjJmNmI2MzEwMzJmMDJlNDM5MTUyODgzZDY4Yzg5M2YxZCBsZWdhY3ktdHJ1bmsKKzE1MDU5IDBjNjJkMWM3NmMwNjQ5N2RjMGQzODEyNGJkNjhjYmUzNTIwZmE2NzIgbGVnYWN5LXRydW5rCisxNTA2MCBiYmFhZGE0MWEyMGI2OWRkNDBmNDJhODg2YzAwMmZiZmQ2YzMyNzRlIGxlZ2FjeS10cnVuaworMTUwNjEgMWY3YzMyODAxZGMxMWU4NTAyN2JjYjg3OTEyYTk0ZDhhMWVhNTI2NSBsZWdhY3ktdHJ1bmsKKzE1MDYyIDBhNDViOTUzZjRjMDNlOGRmMjlmNGUxZThmNmZkZjk5YjgxMTAwOTEgbGVnYWN5LXRydW5rCisxNTA2MyBlNTQwOTMwNjQyOTU1YTg3ZjA4YmFiOGY5YmNkM2Q5ZGU5MjY4OWVlIGxlZ2FjeS10cnVuaworMTUwNjQgZGRjNGU2MmIyMTZiMmZjYmM1NmNjYWZhMDFiZTcwNTA5NDUzNWMyZSBsZWdhY3ktdHJ1bmsKKzE1MDY1IGQzMjM5YjdjMDVmZTk4ZGE1MTk5OWY4MWI3Nzg1MmY4MTQ5ZjAwZTcgbGVnYWN5LXRydW5rCisxNTA2NiAzZTcwYzQ1ZjhkNmJiOGViMjljY2U2OWY4MjNjZjc1NTlmNzhjZjBlIGxlZ2FjeS10cnVuaworMTUwNjcgYTNiMDQ2MjM0YzA5MzEyMWE0ZWY4NGUzYjBkMTAwNmViYTc3ZWMyMCBsZWdhY3ktdHJ1bmsKKzE1MDY4IGY3ODI0NDYzOTVkYjJkM2U1OWI5ZGFiOWU2ZGVjOTk0ZjhhYThmMjIgbGVnYWN5LXRydW5rCisxNTA2OSA5MGIyYTNjZDM2NWZlMzBhMTc0MGRlMTFhYzkxYTUwZGVmMDYxMTAxIGxlZ2FjeS10cnVuaworMTUwNzAgMjBhNWNiZjlmY2MwMmM1MWM1OGIwNGE0ZGI0OGY1ODVkZGM0NjNhOSBsZWdhY3ktdHJ1bmsKKzE1MDcxIGYxZjY2NWUwNzVjYTMwNTk5YzU2ZDcxYzUwOGMzMzcyMWQyZTZkY2EgbGVnYWN5LXRydW5rCisxNTA3MiA1NDBmMTA4ODFhNTk3MjlmZTQxMGQyYzljMDFmMjA1MzNlYWZjMTc1IGxlZ2FjeS10cnVuaworMTUwNzMgMjllNzUzNDkzZDhlNWQ3ODk5YjZhZDc5NTQ5OGY0NWZhOTdlNTFiMCBsZWdhY3ktdHJ1bmsKKzE1MDc0IDIwYTM3MGYxYWY4ZGZhOWE2NmY4MDA1YzhiMGM0NGNlNTFjZjFlMTIgbGVnYWN5LXRydW5rCisxNTA3NSA1N2YzNGUxNjJlNjc2MjU4ZDgyYWVjYWYzZjI5ZmY0NjIwOTAyMjBlIGxlZ2FjeS10cnVuaworMTUwNzYgNWRlMGI5MzlmZTYxY2NiZGY3NDIyNDU1YjNjODc2M2Q3YTZlMGM5ZCBsZWdhY3ktdHJ1bmsKKzE1MDc3IGIzMjE2MjczODJiYzE0NTk3ZWJmM2E5MTc4NTJiOGJiYTI2OWMxNTQgbGVnYWN5LXRydW5rCisxNTA3OCBkNzYyOWZhM2IyOWY1ODE3ZWY3MDU4MmEyZDFhZDI0YmIyODliM2RhIGxlZ2FjeS10cnVuaworMTUwNzkgMWEyMDdjNjhlOGI0ZDVmOGNlZjUzYWRlZTljY2I0NTVhYmVmYmQxYSBsZWdhY3ktdHJ1bmsKKzE1MDgwIDcyOTZjZGRlOGE1ZTNiZTkxOGE5OTJkODAzOGI3YzBkZDBjMjE1NjUgbGVnYWN5LXRydW5rCisxNTA4MSBiNWY2YjRiY2VmOTBlY2Y2MzczNzRjOTVmZmQ1YjdmMTA2MDI4YmMxIGxlZ2FjeS10cnVuaworMTUwODIgOTQ4OGU0ZmRhZmU0NmIyNTU4YWMyNDViNzg5MTUzZWZhODExOTE0OCBsZWdhY3ktdHJ1bmsKKzE1MDgzIDY2YjQ5MDZkMGZjNmJlOWVhN2NmZjFiNDM2MTkxNjI5NGE3Mzg2M2YgbGVnYWN5LXRydW5rCisxNTA4NCA0ZjU2NzFhMzEzNDczYzZhZDJiNTQyODZhYjU4MTM3MTRjOTYxYTM4IGxlZ2FjeS10cnVuaworMTUwODUgM2NjNzc4NDhhNjJhZjdiNzA2MTZiMDk2YzFkNDI1N2Q2ZjI4MWU5MSBsZWdhY3ktdHJ1bmsKKzE1MDg2IDc3ZTRmMjFlM2VlNjRhOTVkYmVmODZmNjk0ZWY2NWJkNzJjZjczNmMgbGVnYWN5LXRydW5rCisxNTA4NyBkMTk1ZjE3ZjI5MjczMWU2MWM5MTc5YmM1MjQzYTY3YjE0YjZmZThkIGxlZ2FjeS10cnVuaworMTUwODggNmI0NjY3ZmE0OTM4MWRiZWQwMGUwMTY2ODY1ZjlmNmFkMjBkNTkyZiBsZWdhY3ktdHJ1bmsKKzE1MDg5IDUyNWIyMzU4NzIxZTllOTBmNzU1NTJhMmJiNjZkYzgwN2YwZjc3NDUgbGVnYWN5LXRydW5rCisxNTA5MCAzN2ZkMmU2YzgxYzdkNzBlODg0YjEyODljYjVjNDM0ODMyZThjZWQ3IGxlZ2FjeS10cnVuaworMTUwOTEgZTY5ZWVmNjkyNjEyNTUzMzc2MjAxYzI3YmEwY2Y3NmU2MTk3NjhmYyBsZWdhY3ktdHJ1bmsKKzE1MDkyIGQzMzc0MzEwMmY4YWQzZjIyMWU5MzM2YzhmOTdjNDExZWUxMGRkOWUgbGVnYWN5LXRydW5rCisxNTA5MyA4NTEwYjRhYjNjM2RlYmMzM2ExZDczN2U1YmVjYjc1NWFjNTA1ZjYzIGxlZ2FjeS10cnVuaworMTUwOTQgMTg1ZGU0ZTdjZWYxMGUyYmQ0MDM2MWYwODYwOGQzYjdjNGQ1ZmRmYSBsZWdhY3ktdHJ1bmsKKzE1MDk1IDllOTY2NmY2NzlmNzJjMjU2ODBhOGM2N2JkYjlkMTRiOTBkYTZmMTIgbGVnYWN5LXRydW5rCisxNTA5NiBlMjYyMGFhYjlmMmQ2Y2IxY2U4NWRjYzBhYmJiOGIzNzM0YzY5YTI0IGxlZ2FjeS10cnVuaworMTUwOTcgZmM1NTdmNDMxZTg3ZTBkZGI2MzE4NjVhYTUxZTk5YTczYzk0ZWE1NCBsZWdhY3ktdHJ1bmsKKzE1MDk4IGFhM2IwMmEwMzhhMzdhYWE3ZGEyNTZiNzVlYjI4NzMxNWU0MmFlMTUgbGVnYWN5LXRydW5rCisxNTA5OSBiZTUxMDBhZmExYjdlZDFhOWNkZWZiZjE3OTJjMjRjZDc0MmI2NjVmIGxlZ2FjeS10cnVuaworMTUxMDAgZmNmNTg4ZDg2YjE0MDllZmVmMjdmZGU3Yzc4ZDAyOWE2MGFkMmVhNiBsZWdhY3ktdHJ1bmsKKzE1MTAxIGU5NTJhNGI5MjBhZGYwN2I1MDM0MDQ4MTkxNmZhMzk2MGQ1NjYxM2UgbGVnYWN5LXRydW5rCisxNTEwMiAyNGQ0MTE2ODk3ZGQ0NDdiODFjMjZmYjg5YWM4MTkwNTQ3NGFiMDdhIGxlZ2FjeS10cnVuaworMTUxMDMgZmFjYzEwNWI2NDFiMDFiOWJkZTY4ZGU5NWE4Njg3NWJjMzIyMGYyOCBsZWdhY3ktdHJ1bmsKKzE1MTA0IDE2ODA0YjM3ZDc1MjVjZTkxMGJmNjJlZTZmOTlmYWFjMDBiNzY0ZWEgbGVnYWN5LXRydW5rCisxNTEwNSBlNDM0OWI2MmZkOWI0MTljMzE0ODMyOGM2ZjdmNDJmYzFiYzYyMGQyIGxlZ2FjeS10cnVuaworMTUxMDYgYzU5YmRjN2ZkOGE2MWRjYWNkZTEyMDU5ZDYyYzM2MjE4N2IwOTQwZiBsZWdhY3ktdHJ1bmsKKzE1MTA3IDY3ODU2MTljMzNlMWNiMWM5NWU4MWM3MjI3NjJiZTgyMTM2YzEwMTQgbGVnYWN5LXRydW5rCisxNTEwOCAxNzlhNmUyODUwYWNhNWQwYzc1MTc2ZDNjODhhZjI5ZTQ1MmEzNGVjIGxlZ2FjeS10cnVuaworMTUxMDkgNTRlODBkYjQ5NDIzNzVlYjljMWRjNTlkMGE5OWZiYWM1ZThkMDk3OCBsZWdhY3ktdHJ1bmsKKzE1MTEwIDk5NmViM2IzYjMzZWM1MzIzZjUwNmM0MWY0ZWI1Y2E3YzkwNTYyYzUgbGVnYWN5LXRydW5rCisxNTExMSAwNDgwMmI3ZThhMWYwODQ2ZTcwYTQwMTE2NzA3YTc4MzdmNjQ2YTk5IGxlZ2FjeS10cnVuaworMTUxMTIgMWU3OTFkMmU4ODc1MmUyZWU3NmQ5NjY1MTdlNmIxYjdhZjUyZWNlZiBsZWdhY3ktdHJ1bmsKKzE1MTEzIDViNTllYTQxZGI0ZTg2OTBiMTY3NmU0ZTUwYzVkMGRkNjZiMmIxYjIgbGVnYWN5LXRydW5rCisxNTExNCBmYmM4ZGFmYTQ0ODRjN2UwYjRjYTRjYzYzMWNjNWRjZDc4NGZhZWRhIGxlZ2FjeS10cnVuaworMTUxMTUgMTFlY2I2NjcwZjRmOWU0ODAxNjU2MWUxODMwZWQ1MWFkZDRjZGEyOSBsZWdhY3ktdHJ1bmsKKzE1MTE2IGY3M2JmNDkyNDM4NjgyZjM4Y2ZkODhkYjVmYTZkODk2YjY4ZjM3YjMgbGVnYWN5LXRydW5rCisxNTExNyA3OTFhMTEyYmUzYmNmOGJhY2E4MWMyNjlkOTdlMGJhMGMzNmE4YTNkIGxlZ2FjeS10cnVuaworMTUxMTggODc3OTY5ZWMwOTZmZDRmNjEwNTg2Y2I1YmE5YjZiOTkxMmYwOThkMiBsZWdhY3ktdHJ1bmsKKzE1MTE5IDdmNjUwZGYyNzFjOWUzZWU5ZjNjOWI1MDA4OWRjOGY3M2RjZGRlZWIgbGVnYWN5LXRydW5rCisxNTEyMCBlNjRmYWE2ZTI3MDIyZDMzYjUxYzMxNWRlYmQyMWRkYTM3ZGI3NTk5IGxlZ2FjeS10cnVuaworMTUxMjEgN2ZhNzZjY2RmMmRlNzNmMzY4MjQ0NjkwN2U5N2U2NGVkYzMzNjAwZiBsZWdhY3ktdHJ1bmsKKzE1MTIyIDA0ODEwOTZhMGY0NWJjOTcwODE3ZDZmYjljZjExNDA0ZDQ5YTM3NDMgbGVnYWN5LXRydW5rCisxNTEyMyA2NzdlMjE0NzgyOWE5ZDJjYTBiOWZmNGRjZGE3N2YxODVhM2Y3ODZkIGxlZ2FjeS10cnVuaworMTUxMjQgYzJkMGQ2NzQ0YjNiYjdlNTE0NGI3YjM5ODBhOTAxZWE4MWZiZjIxYSBsZWdhY3ktdHJ1bmsKKzE1MTI1IDY4ZTQ4YmI5NDA3MTFmYjE4YTZjNjdiMDc2ZTMzM2U4Yzc3MzM1OTUgbGVnYWN5LXRydW5rCisxNTEyNiBhZjg3ZmNhZTg4MGZkOWM4ZTQ3NWZkY2ZjZjg4Y2YzZGI2ZjI2NWZkIGxlZ2FjeS10cnVuaworMTUxMjcgNDI5YTM3ZmY5ZGI1Y2MyN2JlOTE2MGQ4Mzc3MjU2N2I2NTI4OTA4YiBsZWdhY3ktdHJ1bmsKKzE1MTI4IDIxNDMwM2QzMmY3NjY0ZDQzZjg0YmRkMGE2NThjYWFkM2QyMzRjNDkgbGVnYWN5LXRydW5rCisxNTEyOSBkNjNiNTdhYzYxN2Q0ZGIyM2JiYTZhNGQ2MzRiZjJjOTg3NDM2NmI3IGxlZ2FjeS10cnVuaworMTUxMzAgZjU3YWYzNjBiN2U1ZWYzN2U2M2E4ODZmY2M4NGE5NzFiOWJlYTJjZSBsZWdhY3ktdHJ1bmsKKzE1MTMwIDAxMWJlZThmZDlmN2Y0ZGE0NTdlYzcxNTk2NDg0ZmIwODgyYzA2MTQgbGVnYWN5LXRydW5rCisxNTEzMiA2Y2U2YzIzYWNkMTQyMWM4NjE0YWRiNGFhNzZkMjczOWIxM2ZjZTJkIGxlZ2FjeS10cnVuaworMTUxMzMgMDUyZmJkOTMxNDkyMWZmN2M3ZTgyZGUxODgyYjMyNTYyOWFlMWRkYiBsZWdhY3ktdHJ1bmsKKzE1MTM0IDYzYWQ3NTRhYTMwZWUyZTY2ZTZlNTAwNWFhNWVkNmYyNjMyZWJhMDEgbGVnYWN5LXRydW5rCisxNTEzNSAzYmUyZjc1NGMwMjM5YjgxYmUxMjM2NDI2NjgwMTI0ZjA3OGRlMDA2IGxlZ2FjeS10cnVuaworMTUxMzYgMzdkOWRlZDVhYjkxNDUwOWY0NDMyZTQzMGE2ZjY3YWNiODUxYWM2NCBsZWdhY3ktdHJ1bmsKKzE1MTM3IDExNmMzYWEzY2NmNzJkMTVkZThjNTZkZDI0NGY3Yjc5Mzk3Mjg2MTMgbGVnYWN5LXRydW5rCisxNTEzOCA1ZjI5ZDdjMDI0MzM4NzE4NThkY2M0NzIxNThhMGRmMGJhNWM2ZjUyIGxlZ2FjeS10cnVuaworMTUxNDAgYmU4MjU3M2U0NDQ0ODJkNTA5M2UwNDVkNjUwM2E3MGUyMjQzYjE4YyBsZWdhY3ktdHJ1bmsKKzE1MTQxIGFhMDEzZjJjZjgwYmU4YmQwMTVhYTg3YmJkYTQ5ODk0NTczZjI2ODYgbGVnYWN5LXRydW5rCisxNTE0MiA2MjcyMjZkZjlmMDE4MWQ5YTc1MTBkYjQ0ZTFhZWZiNWZjZWY2ZGMwIGxlZ2FjeS10cnVuaworMTUxNDMgMzJlOWQwZTc4OTM1MzM0MzY0OWEyNWE5ZTZhNzg1ZWUzODYwZDBlNiBsZWdhY3ktdHJ1bmsKKzE1MTQ0IGVlZjZhMjVmMDljNTMxNmRiOGEyMTkzNTMxYzUyNmUwZmIzZjI1NDMgbGVnYWN5LXRydW5rCisxNTE0NSBjNDgxNzJhZjEzZGMxNTI4Y2FlZTY1YTA2ZTE3MWVlMGY1MDJmMzExIGxlZ2FjeS10cnVuaworMTUxNDYgZTViMGJlYTAzY2ZhNTA1NTZlY2VhMTAwNWFhODU0NzgwZjFmZDQzYiBsZWdhY3ktdHJ1bmsKKzE1MTQ3IDZlZGJhZTZkYmNmNTVhOGI3YjJjNjg3OTI4OTQ1MDczZmI5ZDIzY2IgbGVnYWN5LXRydW5rCisxNTE0OCBhNmYwYjM5OWY2NjU2OTU5MTk4MDk4YjE3YThjZDZlZjIxMDk2NDg3IGxlZ2FjeS10cnVuaworMTUxNDkgOGQ3ZTA3NzM3YjRjNmExNGMyZWZlZjFhOGFhNDQ3YTM0YzMxYjRkNCBsZWdhY3ktdHJ1bmsKKzE1MTUwIGEwNDk4YjE1MjQ0Y2QxMGM4ZGJhYTIwMDYzZDk1MWNmODRmMDMyYjkgbGVnYWN5LXRydW5rCisxNTE1MSA2MGRkOTVjNzU5OTk5MzYyOWM0OTZkZTJjNDYzMTQwM2U2ZTViODQ2IGxlZ2FjeS10cnVuaworMTUxNTIgM2JiMzk4OTk2MjkxZjkzZjIxZjc0ODFiMmQzZjRiMDdkMTM2NjY3ZSBsZWdhY3ktdHJ1bmsKKzE1MTUzIGY4MmIyNTc3ZmEwY2YwNjcyNmY3YTQ4YWUxMjY4NzEzY2I0ZTk3MWUgbGVnYWN5LXRydW5rCisxNTE1NCBmMDcwNWJjZjY3M2IyYzc1M2ExNGJhMDczMzY3NDEyYzA4ZDZjYjBkIGxlZ2FjeS10cnVuaworMTUxNTUgMjM5MmQxMGUyMWYxNjk0ZjY3YTk0NzI0MGMzODg3MjA5ODYwNGEzYSBsZWdhY3ktdHJ1bmsKKzE1MTU2IDhiZjkxMzAyMDYwNGVjZGVkNDc5ODJkNDY0ODUzMDhjYzZlYWQ1OTcgbGVnYWN5LXRydW5rCisxNTE1NyA5ZjJjN2Y3MjcyZmE3MWVkYjBjMWRhOTc3OGY1NzMwNDE1YmU2YjU2IGxlZ2FjeS10cnVuaworMTUxNTggYTU3NDNlMTQ3ODYwYzE2YWE2NWIzYzg1Y2I2OWRmZGE2NDJiNWY5YyBsZWdhY3ktdHJ1bmsKKzE1MTU5IDRjNTFhOTY2ZDJhMzkwZWIzNjE0NGVlNzMzZGU1MGNkZDg3NDkyNTggbGVnYWN5LXRydW5rCisxNTE2MCA4MWM5NjZiMzVjMTI2MjIwMWJmNmNjZTVmYjQ1MzNhZDE5ODBhNTE2IGxlZ2FjeS10cnVuaworMTUxNjEgNjdlOTYxNTc3ZDBlYjhmYTM4ZWQ5Y2E5NjRkZTU0NzAzYjcyOGMxOSBsZWdhY3ktdHJ1bmsKKzE1MTYyIDE1NTU0ZDNhNjhjNzE1YzgzOTVlZDE0NWMyMzE2ZWZiMTMwYWMxZDcgbGVnYWN5LXRydW5rCisxNTE2MyBlYzZiNmNhNWQxMTE2MjNhZjc1YmM2ZmQwNTJkYmJhZjI5NTZmMDJiIGxlZ2FjeS10cnVuaworMTUxNjQgMDFjZmY5ZmUyZDQ1MjEyOTU1OGI0N2RkN2RmN2MxYWYyNjY0MjQ4MSBsZWdhY3ktdHJ1bmsKKzE1MTY1IDJmYjZjNzM5ZDMyNDcxYzExZGRlMWRlNTc0MWRiZTRlNmVlNDJmMjIgbGVnYWN5LXRydW5rCisxNTE2NiBjYjRmMGQ4MTg4MGQ1YjRiNTgzNTkyMmViNTcyYmFmZWUyMjRjNTFlIGxlZ2FjeS10cnVuaworMTUxNjcgNWI4NzBjMGVhN2I2MWEwZjhkYjQwYmJlZTYxNjEyYTQ2NDI3OWVjNSBsZWdhY3ktdHJ1bmsKKzE1MTY4IDRjNWQ2MmU4Njc1YjM4OTEyNGI2MmM5MWQ4OGExMTc0ZTNkZDljZWIgbGVnYWN5LXRydW5rCisxNTE2OSBhZTUyNWFiMjNlZWZjNjFlYzUyZGJlOTc3MWUyNmU0NWIyOGY2OGY1IGxlZ2FjeS10cnVuaworMTUxNzAgN2RlOTAyYzFmNDM5ZTU2ZDFlOTA4ZmY4MTAzYjZmNDQzMGQwMGU3NCBsZWdhY3ktdHJ1bmsKKzE1MTcxIDJmYzUzZGRhMjBlYjYzZTQ1NzBjY2I0MzRhODU3ZWI2NDdhN2ZhMDAgbGVnYWN5LXRydW5rCisxNTE3MiAwYjY4OTkwMDg5ZDIxNDllMDM0MmYwMmM2ZmMxZTU0ZTVhNGI4MzIwIGxlZ2FjeS10cnVuaworMTUxNzMgOTVlMjk2ZTY3YTEyYzAxZGQ2MjlkODhjM2U2ODQ3NzhhNGY4ZjljYyBsZWdhY3ktdHJ1bmsKKzE1MTc0IDI1OWM0YjljNGM4ODk3NmZiMjMxNzFmZmM5YjlkYmNlZWY2NmUyNDAgbGVnYWN5LXRydW5rCisxNTE3NSBhZTEwNjM3OWU3NTZjMjc3NmNhNjljMDQzZTFmY2FmMGQ5NzRiNDFkIGxlZ2FjeS10cnVuaworMTUxNzYgMWM4NWFlNjc2YmE3ZTVkYmI4MjEwNjZmODQ0MDUzOTNiMWZjYTMxYSBsZWdhY3ktdHJ1bmsKKzE1MTc3IDM2MjYyNjExODliNDhkOWIxN2EzNmM3ZTUzMWYwZjczNTgzMWFkMGIgbGVnYWN5LXRydW5rCisxNTE3OCA2OTc5OTY2ZWU5NGRhMTY3YTBlYzE2YWQ1MmM5ZWE4YjBiZTM1NzZjIGxlZ2FjeS10cnVuaworMTUxNzkgNmZiNDBhODVhNTE5NzU4OTk1NGY2MjIzMzZlMDQ4N2JlZDg5MGE3OCBsZWdhY3ktdHJ1bmsKKzE1MTgwIDBkMTNjZTJlMTU1YjkzODI2N2YzZjQxOTlhMDliZDY4NDRhNDVlOWMgbGVnYWN5LXRydW5rCisxNTE4MSAwYWU2MzUyM2Q1MDRiZGZhMzg4YzE2NjliODMzNzc4ZjRlZGIzMGU2IGxlZ2FjeS10cnVuaworMTUxODIgYzBiZjNlZDkzODM1ODBmZmUwNzJlOWY1YmFkNjQzMjg5ZTQxMjlkYSBsZWdhY3ktdHJ1bmsKKzE1MTgzIGU4N2U2YmRmY2JkYzY3Nzg5MWQyMzY1MDNmNmQwYzY2NzU2NTg1M2UgbGVnYWN5LXRydW5rCisxNTE4NCA5NzhjOTY4N2JlZWY0ZmQ2NGRlYjU1NDg0Y2MyZDFkNzk4NjY2ZDU3IGxlZ2FjeS10cnVuaworMTUxODUgNmIyYjlhMjNhNDFmMWY4Y2E1NjQ4Njg1YzRlYzY0M2MwYjUxNWJlYSBsZWdhY3ktdHJ1bmsKKzE1MTg2IGQ5NDAwYzQ3NmI5ZGMyZTVlMzExNjQ3ZGNhYmE0M2M5MGUxY2Y0NjUgbGVnYWN5LXRydW5rCisxNTE4NyBjNjA1OWU3MGJhYjIzYmViZDQ4NjdmOTAyZWM2NGFlNjczNGVkOTViIGxlZ2FjeS10cnVuaworMTUxODggY2E5ODk0MmZlMTAzYjljYzIyMDIxMjgxOGVlNGQ3MWE1YjJlZWMzNiBsZWdhY3ktdHJ1bmsKKzE1MTg5IDNmZDEzMjIyYTg3NmYzYTE4Nzc4OTk5NmM4MmU2Nzk4MDMxNzA2MjUgbGVnYWN5LXRydW5rCisxNTE5MCA4MTYxMzM0OTQyZDRmZjViMzFhNjAxOThhOTZkODBlMmMxOTcwZWJkIGxlZ2FjeS10cnVuaworMTUxOTEgNmE4Y2QwNjgyMDk2MWVhYjkwMGIyNzNlYWYzM2ExNzdmMGQ4NjI2YiBsZWdhY3ktdHJ1bmsKKzE1MTkyIGNhN2I5OWQyN2E0MDcxYTFlMWE5YzU1OTlkODE3YjcyMDhmNDRhMjIgbGVnYWN5LXRydW5rCisxNTE5MyBkZmY3YjI2MTE2ZGViZDNiZjRkZDE0YzVkZmEyMjViZjE4ZGE3YjFlIGxlZ2FjeS10cnVuaworMTUxOTQgODI4OWMwZTU1MWNkMzEyODRmZmI4YmZiY2I5Mjg1MmY5ZGE3YjNjZSBsZWdhY3ktdHJ1bmsKKzE1MTk1IGYwYjcxOTEzYzBhYTdiMDhjYzMwNzM3NGZmZWEwMzdiOWE2NTI5YzcgbGVnYWN5LXRydW5rCisxNTE5NiA0NTY4NjllYWE3ZDU5MWE1ZGRiODdiNWQ1YWFkMjc4ZDgzMmU4MWJmIGxlZ2FjeS10cnVuaworMTUxOTcgZDQ3NDYwYjFhNjc5OTcyNzcwNDNmYzI1MzVmMjYyN2U0ZjFkZjVjMyBsZWdhY3ktdHJ1bmsKKzE1MTk4IGQ3NjMzNDFkMzMxMGJlMGViNDZmNTVjYTgwYjRjOTgwMWQ0MmFmNTEgbGVnYWN5LXRydW5rCisxNTE5OSBjOTliYmE5ZTkyMTJjYjEwZGUzNDUzNjVmZGQ1ZjM1OTllMmM2ZGFiIGxlZ2FjeS10cnVuaworMTUyMDAgZjg3NjE2NGZhMTUxNDk4OWQxZjQzMTcyM2U1NDNlMTM5NWExNDkzYSBsZWdhY3ktdHJ1bmsKKzE1MjAxIDAzYjgxOTEyODM1ZWJlOWI1YzFhZWYxOGM3OTE4MmYxMzk2OTdmMDQgbGVnYWN5LXRydW5rCisxNTIwMiA5YzRhNGU2YmQ1NTVhZWQwYTc2MTNhZjRkZTE4NTVmMmU2OTA5YzFjIGxlZ2FjeS10cnVuaworMTUyMDMgZTM2N2FkM2VhNTlhODYxZDMxYjEwYzhlMWU4YzBmMTg4YzJkZGU1MyBsZWdhY3ktdHJ1bmsKKzE1MjA0IDk1MWQ4NGUxZDU0YmViMDA3NjQ5M2VmMTVlMGMxOTI1NjVkZGVjMjYgbGVnYWN5LXRydW5rCisxNTIwNSBlM2JiMjM5YjJkYmY1ZTA1ZGI3ZTRkODIyYTFhNzNiZTQ4OTQ0YThiIGxlZ2FjeS10cnVuaworMTUyMDYgMTlmNTNkOGJkMjk4MTA2YzI4Njc2NDljYjllMDJkYWU1MzY2ZGM5MiBsZWdhY3ktdHJ1bmsKKzE1MjA3IDE2ZGM4MDczMWMyM2EyMGMxOTAzNGYwN2FiNjllNDEyZjY1ZTg3MmQgbGVnYWN5LXRydW5rCisxNTIwOCAzM2JhMDYyNmVmNzJhOWUxMDNhODVlMzUzODk5YjY5NWFlOWE1NzU1IGxlZ2FjeS10cnVuaworMTUyMDkgMzQ2OWIyZjE3NjI0Zjg2MjcyMTRjMTZiOTlhZTVkZjBkMTZhZWFkNSBsZWdhY3ktdHJ1bmsKKzE1MjExIGQwZjI5MGIzYzBiMjNiYzA1ODRhZDk0YzFjMDk3MDc3MjBjMzZkNmMgbGVnYWN5LXRydW5rCisxNTIxMiA0ODYxNjE4OTQ1MDdmNDA1OGU3ZTRlN2I1NzQ2ODY1ZDVjNzViODAzIGxlZ2FjeS10cnVuaworMTUyMTMgNGNiMzMzNDgyMTYwYzhmODIzMDljY2RhMWU5YzQ2NDFkODRiNGUxYiBsZWdhY3ktdHJ1bmsKKzE1MjE0IGRlMzY1YjY1YzE3YmM4ZDlmMzJmMGNlNjlhNGE4YzRkZTRiYzAzYjYgbGVnYWN5LXRydW5rCisxNTIxNSBkNWZkYzliMWU0NzRjNzIxY2VlZDVmYzYyNTkxZWU2OTJiZjllNzcxIGxlZ2FjeS10cnVuaworMTUyMTYgYzI4ZmEwMWU3MzI5YzNjNDE2YzFmZDVlYWJmZTVmZGE3YzcyODk3YSBsZWdhY3ktdHJ1bmsKKzE1MjE3IGU3NjIzZDAxOTI3YzhjOWZiNWJkOTI5M2U1MTFkODliMmNmZjZhY2YgbGVnYWN5LXRydW5rCisxNTIxOCBlNWIzMWFjYjEwY2ViNmJmMTM4ZDI5ZWZmOGYwZDllNjEyMDIyMjFiIGxlZ2FjeS10cnVuaworMTUyMTkgZmQwZTVkYWVmODZhZTZkYTJlNmY3ZTBiODhkMmFmOTYyOTg3MWE2YSBsZWdhY3ktdHJ1bmsKKzE1MjIwIDE0NGE4OTU3MGEzOWNmMDVjNTE0N2VlYTNjMmM3YTJmYThmZmI3MGMgbGVnYWN5LXRydW5rCisxNTIyMSA3NGQ0ZTQ1M2E3ZjdkYTM5NjVlMTUzOGIwY2VkMzk2MDFjNDY4ZDFlIGxlZ2FjeS10cnVuaworMTUyMjIgMTg5NTFhMDI0ZDExZGYyYTc1ODkwNmJiNjI3ZTU5OWY0NjZhOGQ0YiBsZWdhY3ktdHJ1bmsKKzE1MjIzIDZmNTA5NmE4ZDAzYTIwYjhjNTc1YWM2Yzk5Nzk2MWM4NGQ0YjU3ODEgbGVnYWN5LXRydW5rCisxNTIyNCA0OWIwYjg0NmY2ODM0NzJkMzQzMDYxZWQwMTFlZjNmMGVkMzEwMzliIGxlZ2FjeS10cnVuaworMTUyMjUgMGJmOGFiZDAyYmQ4ZDdjZDFlNjRlNzRhYjE4ZmNhNmQ3MDAyNWE0OCBsZWdhY3ktdHJ1bmsKKzE1MjI2IDE4MWM2Zjk1ZjZmNmE1ZWJiZTNjN2MzZGU5YTc4ODQzZDVkYzM4MmUgbGVnYWN5LXRydW5rCisxNTIyNyA3NjEzZjhiM2MxY2U0Y2Q1MDk4ZGVlMjY3OTFlMjNkMWM3NDIyYzJiIGxlZ2FjeS10cnVuaworMTUyMjggZTM5ZWI5MGIyNTBhMDJhNjI0MWRmYzQ5NjcwNzYyMjY0ODhjNzExNSBsZWdhY3ktdHJ1bmsKKzE1MjI5IDJhMmQ1ZmY5MzMwODA3NzE4NjViOWJhMGVlMGMzY2QzOTY5MmNlZWYgbGVnYWN5LXRydW5rCisxNTIzMCBlNTY3ZTMzZGU2NDViZjcwZDI1ZTZhNGE2MjhhYjA3OWUyZmUzNjg0IGxlZ2FjeS10cnVuaworMTUyMzEgZmNiOTJiOTZmMWFmYjU2MDM5MzEyYzAyMjMwNWRjZjc4N2Y3MTE1ZCBsZWdhY3ktdHJ1bmsKKzE1MjMyIDY5OWRmYjEyNTRjYmY3MjM4YmYyOTJmNDllYjdjMTU3YjAxMTljYjQgbGVnYWN5LXRydW5rCisxNTIzMyBjMjdmNDg0YWVmZmZhN2ZlNDMwNmZmMTQ2NWVhNjY0MDE0M2YwNjc1IGxlZ2FjeS10cnVuaworMTUyMzQgMzUwMGM0MzUwZjYyNmUxMTBjMDg5MjU1NDJlN2U4MzY4ZTFjNTY2YSBsZWdhY3ktdHJ1bmsKKzE1MjM1IGYxYmZmMWVjNzk2YjY0MTA5MzIxMTVjMTY0OGRmNzkzMGU0MjQ4Y2QgbGVnYWN5LXRydW5rCisxNTIzNiA4NjZhZjFkODc5NzA4NGM2NzJhZmM4YTY1MzU3YTEzODc3ZTU3YmNiIGxlZ2FjeS10cnVuaworMTUyMzcgYTNlMWZlY2I0M2M2ZTUxOWRkYWRkMTUwNzBlMDc3MTBmZTBmZjU5ZCBsZWdhY3ktdHJ1bmsKKzE1MjM4IGJlMWQ3NWUxNmNiODE2MjllNGMxOThlNGZkZGZjNGFlOWZkMWI5YzAgbGVnYWN5LXRydW5rCisxNTIzOSBhODg5OGExNzJmZTJmMDc2OTcyNTc1NzVmMzQ2NTkzNGE2OWRjZDczIGxlZ2FjeS10cnVuaworMTUyNDAgYTNjMGI2Y2RkMTY4YTY5NDMxM2ZiYWQ4OWNiOGI3OTU5MzMwMzVkOSBsZWdhY3ktdHJ1bmsKKzE1MjQxIDE5ZTNlOGY4YzU3NGQyMmE2ODZiYTM5MWQyNDkxZjYwMGQzN2U4NzIgbGVnYWN5LXRydW5rCisxNTI0MiBmYzI3Njg3NzVmODIxOTgzOTAyZWJhNTA5MTYxZDI4YjIzN2NmNmIxIGxlZ2FjeS10cnVuaworMTUyNDMgMGRiNWEzNjAyNTI2MWZmOGU2NzFmMDQ3YTZlNzQ4ZGYyMzhiMGJmNSBsZWdhY3ktdHJ1bmsKKzE1MjQ1IDEwYWRiZjgxODNlNjhlMDI3ZDU1OTk5NWYxMDdmMTI4YmQ2ZmI0YjcgbGVnYWN5LXRydW5rCisxNTI0NiBmMWU4NjdhZDdkODVhYzNhMzA0MDJjYzQ5MjNjOWE5NDI2ZDBjMzhiIGxlZ2FjeS10cnVuaworMTUyNDcgOGIzMzBkMTYzODAwNzcxODA1NjU4MDcwNzE3NWNmYThjNTg0MmY0MiBsZWdhY3ktdHJ1bmsKKzE1MjQ4IDE5NTg1NzFkMjVjMTZiY2U0ZGZjYzU5Njg4Mjg1ZWJmMzI1YTk0ZDUgbGVnYWN5LXRydW5rCisxNTI0OSA0Y2VlMmRhM2RhY2ZkNzVkYzdkMTE3MzhiMjk0YWMzZTM1YmM0NTMyIGxlZ2FjeS10cnVuaworMTUyNTAgNzIwZDM1NTZiMTQzODUyMTdmZjM1NjE2YjJiZTU2YjM2NzlmMjAxNSBsZWdhY3ktdHJ1bmsKKzE1MjUxIDE3MjVlODAyZTNlYmQ1MmU3ZGE1YmQ5YTg0Mjc2MGI3YTY1OWM3ZWQgbGVnYWN5LXRydW5rCisxNTI1MiAwNGNmYTEzNDFhNTA5YzE3OTY5ZDkxYTRmMjdlNzlhYjUwNTU2YjUyIGxlZ2FjeS10cnVuaworMTUyNTMgMWNiYTY1ODljZTY2N2NlZjdjNDU2OTk1NDlmZmRlZTA4MzYwNzE2ZCBsZWdhY3ktdHJ1bmsKKzE1MjU0IGJlZjI0ZDQ4YWZjOGM1YjRkMzZhZDE4YzYwNDIyMDY2N2NiZTE5MWMgbGVnYWN5LXRydW5rCisxNTI1NSAyYTUzYTNhNDc5NjJhOGZmMmYwODRlYzM2Y2ZkZWQ3OGNiZWJlZDgyIGxlZ2FjeS10cnVuaworMTUyNTYgZTUwYmJiOGU5OGRhZDJhZThiYzJjODdjNTIxNzdjNGU0NWI4ZDI3MCBsZWdhY3ktdHJ1bmsKKzE1MjU3IDBkNzU1NTVlZDZlYjZkOTcwOTA2ZWFkMGFjYTY1OTIzZWVjNDJiZGYgbGVnYWN5LXRydW5rCisxNTI1OCAwNzgwYWJhOTc4OTg5MzE4YWYyMGZlNGVkNjIzNTZmMTYwOWQwMzY4IGxlZ2FjeS10cnVuaworMTUyNTkgZWI0MzNlZmEyNGRlZWE4NDYyZGYwNTA4NTkwNDlkYjQ4YjI5Y2Y1YSBsZWdhY3ktdHJ1bmsKKzE1MjYwIGJkOTJjNTNiMTY2OTkzMzQ0YTE0YjUyODQ1NDE0MDNiODk3MDViZTkgbGVnYWN5LXRydW5rCisxNTI2MSAyY2UyYTgzMjUzZTgwMzE3YzQyN2JmZmE2NTZiZjY4Y2VjNTg4YjdiIGxlZ2FjeS10cnVuaworMTUyNjIgMjExNDgzYmQwYTUxODJkY2I2MzYwYzNlNjgwMjUzYjdjODY5ODVmYSBsZWdhY3ktdHJ1bmsKKzE1MjYzIDQ0ZTUyMWE5MzY0OGE1MTI3ZWE0ZDcwYThmNWY4ODk0ZmNkNTMxM2QgbGVnYWN5LXRydW5rCisxNTI2NCA1YzNlNTk5OWRhYTE2YjgxMTk2OTNmNzk5NzQyMzU2OGJlYzVkMzA4IGxlZ2FjeS10cnVuaworMTUyNjUgZjRkZDdjODg0OGZjYTQ1ZDhiM2ViMGEzZWRlMmIwNDEwN2MzM2VjMCBsZWdhY3ktdHJ1bmsKKzE1MjY2IDU2NjFmNGY5YTQ3Zjc5ODQ4OGI0OWZhNTk3Y2Q3MjExN2M4N2EyN2MgbGVnYWN5LXRydW5rCisxNTI2NyBiNzZiYWNjY2QzNDYzMTBkNjJhOTc5YmU3ZGE5YjFmNDQxODcxNjZiIGxlZ2FjeS10cnVuaworMTUyNjggZTYzZWNjYmE4NzNiNzY0NzQxYWU1NDI0ZGE0NjMxZGUxMzY0NzlkYyBsZWdhY3ktdHJ1bmsKKzE1MjY5IDEzYTE2NzkzYmIxY2YwODA5OGNiZGFhYzc0ZDBmMDBiOGNhMTVjOGQgbGVnYWN5LXRydW5rCisxNTI3MCA4NzQ3ZjFjOGI1ZmJlYjFmNzhkZjNhMzlmNjdmM2JhNzlmZWEwOWZiIGxlZ2FjeS10cnVuaworMTUyNzEgYTYxMTU3MzI4YjEyMWUxNWRiNjExMTNiYmQ1ZDhhNDUzMjYyZThiOCBsZWdhY3ktdHJ1bmsKKzE1MjcyIGNhMGU5ZDk3ZDU1NGM0ODVhZGQ2YmI4YTg1NTllMjE5MWQ4NTU4YjcgbGVnYWN5LXRydW5rCisxNTI3MyBiYTU0ODYyYzg3ODVjMjBlZjg4N2RmNDk2NTBhN2IzYmU0ZjhmMmIxIGxlZ2FjeS10cnVuaworMTUyNzQgZmI0Nzc1MTExZWQ5ZDUxMmY1MWM4MDQ0ZGQxZTM3MGFmNTE4ZmYwMyBsZWdhY3ktdHJ1bmsKKzE1Mjc1IGU2ZTkxNGQ1YjIwNzJmZTQ2ZWRkNTg2ZGQ0M2Q3NjgzNDU4OTI0MDcgbGVnYWN5LXRydW5rCisxNTI3NiA2ZWJlMGFjYjc3NzY0OTEyY2EzZTA4YWEzMmRhYzg4NmUyZmNjYTI1IGxlZ2FjeS10cnVuaworMTUyNzcgOWU1M2E3MTEyMzk1ZmI0MDlkODA1NmQzODMzYmIyYjY4MWUzNTFlMCBsZWdhY3ktdHJ1bmsKKzE1Mjc4IGFmOWQ2MjNiYWJiMDc3MTc3NTEwYjhjZjAwOGU4ODY2MTRmOTFlOWEgbGVnYWN5LXRydW5rCisxNTI3OSBiNmI3YmQyMGM4NDViNzM3Njg5YjEyOTBjNTEwN2EwYWJiZDQyMTkyIGxlZ2FjeS10cnVuaworMTUyODAgZDM1N2FlOGZiZmU1OTBhYWFiMWNmNWU2Y2E0ZjRhYTg3MWNiNDMwNSBsZWdhY3ktdHJ1bmsKKzE1MjgxIDBjMjhjOWNhYmJkYWViMGZiOTdlZDY1MmRmYjk2MDNmN2MzN2YwZDYgbGVnYWN5LXRydW5rCisxNTI4MiAwMTllYWVmNjM3ZmY1Zjk5Y2U2MTJhMWQ5Zjg4ZDRhZDkzYzIzZTI0IGxlZ2FjeS10cnVuaworMTUyODMgNGFlMTI3MzEyYmJmZDc4NWVkYjdmZDMxNzk4ZTRkOGY0MGJlZmFkMSBsZWdhY3ktdHJ1bmsKKzE1Mjg0IGI0NzZlNGE4Yzg5MTFkMmM0ZWVhYmFkY2YxZDc1MTliM2RlNDQ2YjIgbGVnYWN5LXRydW5rCisxNTI4NSA2ZjczODQ4Yjg0NTIxOTE5M2YwZTBkMmJhZTBjNWViMGFkMTliODY5IGxlZ2FjeS10cnVuaworMTUyODYgNWFlODViZGM1ZjYxNjUwYTU0ZGQ4MWY4MWEzYjM4MDYyMWFjMzMzZSBsZWdhY3ktdHJ1bmsKKzE1Mjg3IGMwYWRiYzljYTU4MTMxOGQ2NDQyOTg2Y2RjMzJhYjRlNDY2MjZkMjAgbGVnYWN5LXRydW5rCisxNTI4OCA1NDBkOWJiMTY0MzlmMDdiYWNlMDdhZjdhMzg2MTQ0MmI2MmU1ZTRjIGxlZ2FjeS10cnVuaworMTUyODkgYzJiYjVlNGIwNGE4OWQ2M2Y3MDI4NDM0MjRiNmZjMzY2MjVkNTJhMSBsZWdhY3ktdHJ1bmsKKzE1MjkwIDg0Y2Q1MmI1NjBlNTcxZWJhMzcxZDcxMzZhYmNjOWM0MmMyN2IwMDIgbGVnYWN5LXRydW5rCisxNTI5MSA4MmNiYjJkZmU4YmRiMjdiZTEyMzcwYmRhODMwYzkyNzU2MDQ4ZDQ0IGxlZ2FjeS10cnVuaworMTUyOTIgNTIzNTY1NmY5ZDBmMGUyMmRjZDExM2E1MDg4NzFmYjYwY2E1MjA5NCBsZWdhY3ktdHJ1bmsKKzE1MjkzIDE4OTI5OGExZmFiNGMyMjMyODZmZGQyNjg3NzkzM2UxMWU0MWU4OTAgbGVnYWN5LXRydW5rCisxNTI5NCA4YTUwMzY1NDQ3Mjc3ODgzNWYxYjVmYjJmY2U3MTMwNDIzYmJiMmRiIGxlZ2FjeS10cnVuaworMTUyOTUgY2MwNWVkY2NjZjUyYmEzN2FmNTJkZTQ4MDY5ZjY4MjM1MmM0MGFlMiBsZWdhY3ktdHJ1bmsKKzE1Mjk2IDdjYzNkZDdjZDMxYWM2YTVjZjgyNmZiMGJjODNkNmRmZmMzOTZjMjEgbGVnYWN5LXRydW5rCisxNTI5NyA4NTllNTAwZjA3NjAwNDYzZDU3ZGJiOWY2Njg3ZTYxMzQ5YTc2NmY1IGxlZ2FjeS10cnVuaworMTUyOTggZDc0ODRhNzQzMzU0MWFhOTc4ZjA0MzcyNmJjNzlmNTIxN2RhMjAwOSBsZWdhY3ktdHJ1bmsKKzE1Mjk5IDgxYTEyMWQyMTM0MDgzZmRiYmYzMjZlNjE3NGYxMzc5N2IzNGEwNGYgbGVnYWN5LXRydW5rCisxNTMwMCBjMzRiYTNlM2NmY2QzODUwZGNjNDE3ZTZiYmE5YzdiNTcyODk5NDRjIGxlZ2FjeS10cnVuaworMTUzMDEgNTllZTE3MTI0NTExNTljOTE4YWQyOTg2NjRlOTdkODFiNGVhMGU0NyBsZWdhY3ktdHJ1bmsKKzE1MzAyIGM4ZGJkNWY3MDI4OGI4NDljN2UwYWY5MzM3ZWM3YTA4NDYzNmM3NTIgbGVnYWN5LXRydW5rCisxNTMwMyA1OTliZmE0ZmZkNDljMTQ1OTRiY2I1NDQyMGMwYjQzMWQxOGE3NzQ1IGxlZ2FjeS10cnVuaworMTUzMDQgNmI2NDdlMDg3OTI1YWI3NzM4ZDQxZDU4MThmYjQ4YmQ0N2M3YjM4NyBsZWdhY3ktdHJ1bmsKKzE1MzA1IDc2OWVkYjJkYThiOTNmZjdhMjE0YTgyYTAxMWJhMjQwNWFmMGFmMDYgbGVnYWN5LXRydW5rCisxNTMwNiAxNzdlNjFjNTU0MjZkYjQxNjY4MmY5YTY3OGNiNDRhYzYxN2VmNjEzIGxlZ2FjeS10cnVuaworMTUzMDcgM2U2ZThmNzZhOTg4MzgzNjM4ZGM4NzU4N2FlNGM4YjMxMDk0YWU2ZCBsZWdhY3ktdHJ1bmsKKzE1MzA4IGVmZDFlNWQyMjg0YWY1NGVhMzNmMzM4MWUwM2E2MDRiYzk4NzI1Y2UgbGVnYWN5LXRydW5rCisxNTMwOSBkYzlkMWI3MWNjMzgwYzZmN2VlNTg1NzJlNTQ2ZWI2OGEwYTgyNWRiIGxlZ2FjeS10cnVuaworMTUzMTAgYmVmNjc1ZGMxMWNjMGJjMTg0NDcyZGY2NzBmNmZkN2NhY2U2MzRhZCBsZWdhY3ktdHJ1bmsKKzE1MzExIDY2ZTQ3ZTg1ZWM1M2I1ZWJhODdiMDBhNWVlMTBjZTdjMWUyNWJjMzggbGVnYWN5LXRydW5rCisxNTMxMiAxMmM3NGIxMDJkMDI3ZDdkYjA2ZTNhMmEwMzAzOWQ1Y2VjY2IzNjEyIGxlZ2FjeS10cnVuaworMTUzMTMgOGY3YjI0YjQwZGU3MzYxNzNhNDNjNDkxMzRhMDU0MTdlNjMyZWU5YSBsZWdhY3ktdHJ1bmsKKzE1MzE0IDA0Y2Y3ODhkODYyYmUwNmFhOWZmZjhkOWYxZjJlNTQ4OGQ5MWQ3MDggbGVnYWN5LXRydW5rCisxNTMxNSA3ODM4MGRmYjJhOTA2ZGFlMjZkZDBjYmQ0ZTllMTNhYTc3OWEwOTNhIGxlZ2FjeS10cnVuaworMTUzMTYgOWE4NDFkNjg0NTNhN2M4ZGVlZjUyMTljZDMyYTY3MGI5MDRiYTNlZSBsZWdhY3ktdHJ1bmsKKzE1MzE3IDRkZjg0NjJhMjU5ZGViODgwZjJhNzhmNGM1ZTQ2N2Q4ZDExNGUwMWIgbGVnYWN5LXRydW5rCisxNTMxOCAzYjhkOWU2M2U0ZTE1N2I3MTVlNzk2OGE4NmZhNGJjNGM5ZDg3Mjk0IGxlZ2FjeS10cnVuaworMTUzMTkgMzhkNWExMWQ5Y2Q0YjAwMGVmNjFhNDE2N2ZhNjY3ODczZWI4ZTg5NiBsZWdhY3ktdHJ1bmsKKzE1MzIwIDdiOGQwYTQ3ZGFhOTdiNjY2MDBkOTI2ZjJlYTc1YmE2NGM3ZjUyNWUgbGVnYWN5LXRydW5rCisxNTMyMSA3YjBlMGI1ODY3ZTJkMzk2NjEwMzNiY2I3NjM1ODMzOTI5NGJmOTZkIGxlZ2FjeS10cnVuaworMTUzMjIgYjg3ZDc1Nzk4ZDgxNmMzMmExNGNjZWZlMTgwYmU2MjhmYmRlNWM0ZiBsZWdhY3ktdHJ1bmsKKzE1MzIzIGIwYTQzNTBkNWMwMzEzNzg4MzQxMmFhZTRiNDI3ZjFjZjU3MWI1NDcgbGVnYWN5LXRydW5rCisxNTMyNCA1MzlhMWE5OWE3OGI0ODIzNmYwMGMyZDYyODNiNjFkZTI2MGFkYWNlIGxlZ2FjeS10cnVuaworMTUzMjUgMTllNjFiOGY0ZTAwNmNkZjJiZjY0OGI1NTE1ZWNlNmViOWVkMzliMyBsZWdhY3ktdHJ1bmsKKzE1MzI2IDFiZTIzMzE1ODhiMjM4YjNkOGZkODAyYzJjMzYxNDNhZjE0ODc4YzMgbGVnYWN5LXRydW5rCisxNTMyNyA2NmRkMjk4ZWFmOGE1ZDRhYTVmODJhNjY4YTJjODhiY2FiMjVjZWIyIGxlZ2FjeS10cnVuaworMTUzMjggOWE5N2E3MTRhMWJlMDMwMWVmYzVhNDliYWJiYWRhYWEyNmU4NTcxNiBsZWdhY3ktdHJ1bmsKKzE1MzI5IDNkYmU0MTM4MDI2NjYwODQzYTZkNmJlZjU0ZGNkMzk5ZjM5MTYxOWUgbGVnYWN5LXRydW5rCisxNTMzMCA4YmNkMTQzMTNjMTFjZGM5MTc2OGMxNjUwMWY3ZGNiZDVhM2MwOWQ4IGxlZ2FjeS10cnVuaworMTUzMzEgMGRmMThmOTQ3MjY3OGM2YzBjMzI0Yzg2MDc3M2M4YmIzNTNjMTc2NSBsZWdhY3ktdHJ1bmsKKzE1MzMyIDU5NTJlZjY3ODZjMjAwODMzZmNjM2IxZmFhNGM3MjkxNzFhMzkyMTkgbGVnYWN5LXRydW5rCisxNTMzMyBhZWU3YzQ0YmI0ZmU1YmVmYmVkZTdhOGY4YTQ2NzYwZjRmZTk2ZjU2IGxlZ2FjeS10cnVuaworMTUzMzQgOGJhOGI1ODU3ZTg5NzU2YzhhYjcxZGY3MzhhNzVjODU5YzVlN2YwNyBsZWdhY3ktdHJ1bmsKKzE1MzM1IGFmODZjZjg4MmQwZmZjMGQ2MWFlMTJjZjVlZjdlZWJlYzU3MTJjZmMgdW5sYWJlbGVkLTEuOTguMgorMTUzMzYgMWM3YzJkZDFiZWIxZjgxMDZhN2FmYTYxZDRiOGJhYmNjODNlMTc1NyBsZWdhY3ktdHJ1bmsKKzE1MzM3IGRjNzg5YjNlMmI5Yjk4ZDg0NjBmMDBlMWYxYzkxNWE0NWQyMjExYTUgdW5sYWJlbGVkLTIuMTA4LjIKKzE1MzM4IDg1ZjAwZjhjZDY3NGJiYzYzN2MxODFmZTVhYzc1YTgxNzBlNWFmNDEgbGVnYWN5LXRydW5rCisxNTMzOSAwNzc0NTZjMzI0YmM1OTg5MDE0OTBiYTBhNDUxNzcwMDVlNWMxMGY5IGxlZ2FjeS10cnVuaworMTUzNDAgOTc4MjUzNTQyMDc2MGNiZWU5NjBiODZjMTNmMzhhZDE3ZDk5YTc5ZCBsZWdhY3ktdHJ1bmsKKzE1MzQxIGUwYTEyMDk1ZmFjMmUxMDhkZDdkYzM0NjYyOGI3MGVkMGY0NWZmMzQgbGVnYWN5LXRydW5rCisxNTM0MiA2YWMzYTJjMDA0MGZjYjFkZmI0Yzg4ZDkyZWNhODZiM2U2ZDljMGE5IGxlZ2FjeS10cnVuaworMTUzNDMgMGJhYjFlMzZhM2E2YzIzZjczNmEwOTUxOTgwOWFlOTEzMjkwZGVhOSBsZWdhY3ktdHJ1bmsKKzE1MzQ0IGRiOTQ1OGMyYjYzMTA3ZjM1MDU2MWRhMmZmZmRjN2IzZDVlOGYxOWMgbGVnYWN5LXRydW5rCisxNTM0NSBjZGU0ZGExOGM0ZmEwOWFhZDgyMTlkNjU5NmYxYmZlMzk5N2IyMDczIGxlZ2FjeS10cnVuaworMTUzNDYgMGI5MWMzYjM4NGQ4Y2MzNmVkZDM0YWE0MzYxMzI4OGUzY2ZkNmQ4OCBsZWdhY3ktdHJ1bmsKKzE1MzQ3IDZjZTIxZTQ1YTk2ZWViYjg4OTVhODI4NmZiYTExMzJjNDhlMmFlMzMgbGVnYWN5LXRydW5rCisxNTM0OCA0ODVkNWVhZjBmNzU3MTA2ZjA0NmI0MmM5NzhlYTc1MjBkYTA5MDllIGxlZ2FjeS10cnVuaworMTUzNDkgNTQyNzRiZWIyNDRkMWQ5YjBjNmUzNGRmMjQzYzk3MzI4NGQzZTE3OCBsZWdhY3ktdHJ1bmsKKzE1MzUwIDJjYzZlNmRmZTliYjc1NjVlMzE3YjVmNmI3Y2FmMTE0ODU3NGUwNGMgbGVnYWN5LXRydW5rCisxNTM1MSBjZWY0NWYxYTc5NDMwNzhjYjA0ZGE1Yzk3MmYzNjU2NDgzYTAyNjE0IGxlZ2FjeS10cnVuaworMTUzNTIgZTQ0MjY2MmIyOGUxODkwMDE3MWViOWVjMzQ3M2M2MDU4OWM1YmEyMiBsZWdhY3ktdHJ1bmsKKzE1MzUzIDc2YjMzOTliMzY0Y2RkNjYxNDk4YzgxZmIwOWFmOGFlYzlhYmQ1NDIgbGVnYWN5LXRydW5rCisxNTM1NCBlYWVlOTI0ZWZiMTkyY2Q5OTQwZTAxOTZhN2JmYmI1OGZlYmFlZjJjIGxlZ2FjeS10cnVuaworMTUzNTUgNTI4Y2ZlODc5NjY1MjA3YTFlNGNlN2QwMjVkOTBhOTEzMjM4MzdjOSBsZWdhY3ktdHJ1bmsKKzE1MzU2IDA1YzA2NzE1NjU3YmNjNGUwOTI2YThjNTJjZWRhNzUwMzdiZTRjZGUgbGVnYWN5LXRydW5rCisxNTM1NyA1NjQyM2I5MzgwZjRmNzZiMzZjMDZjMmQyZGYzZjJhYzUzY2I4NGE0IGxlZ2FjeS10cnVuaworMTUzNTggNjI2Yzk3YWIxMjhjZmU5OTc2ODZkNjNlN2ExM2Y5MTc4ZGI3ODM0MiBsZWdhY3ktdHJ1bmsKKzE1MzU5IDkyZDFkZGMxYzU3ZmRiOWUwNmM2NDBhN2RkMmYyY2VhMWM1NmJhOTAgbGVnYWN5LXRydW5rCisxNTM2MCA2NDU1ZDhmYjc4NzYxZTY5NjdmOTdlZTBjNzY2NzljZTQwNWE1YjcyIGxlZ2FjeS10cnVuaworMTUzNjEgYjU3MGQ0Y2Q2NDBhYzM4ZGZlYmYzZTM2YTllOTY3MGFjZjhiNTU3NSBsZWdhY3ktdHJ1bmsKKzE1MzYyIDgyZjE3NmI3MDY3YjdjZjMyYzY2ZDkyZDk3ZjFjNmFlMjFhODk2MTQgbGVnYWN5LXRydW5rCisxNTM2MyBkZDYwNzhkMjBmN2Y4MmUwNWI5YjE4MzFmNzZkOWFhMDIzNmFmNzdmIGxlZ2FjeS10cnVuaworMTUzNjQgMzVjZGIzZDAzZmQzNTJjNTAwZGVkNTVjYzAxNzlmOTQ5ZTZmMjQxOSBsZWdhY3ktdHJ1bmsKKzE1MzY1IGI1ZjdhYjI3MjIzNzk1MzM0Yzk5NDAzMDBmMzRkZDE0NmI4NmI0MmMgbGVnYWN5LXRydW5rCisxNTM2NiBhMTExMjljZWVjYTVkZjY5ZTQ3YzFiYmM3YmFmZDBlN2ZmODk4NTc4IGxlZ2FjeS10cnVuaworMTUzNjcgNTEyNTNlMDhmNzY3ODgxMGNkZDE0MGQ4YTY3MWU5NWM0YjhjMmY2NCBsZWdhY3ktdHJ1bmsKKzE1MzY4IGE4YWIwOWVmNDhiN2FmNTVmNTc1NDZlOTc1NTI1MTkwNDk0MWIwNDEgbGVnYWN5LXRydW5rCisxNTM2OSAzMmJkNGJhZDEwOGJhOGNjYzRiNDZhNzIwOWFjOWNkMDg3YzUyYzVkIGxlZ2FjeS10cnVuaworMTUzNzAgNzFlNDIwMjk2ZWYxMTI3ZWU1NTE1MDRiMWU0ZDdiMTQyYjZmMjFiNyBsZWdhY3ktdHJ1bmsKKzE1MzcxIGMxOTVmYTE1NzU0MWM2MWNmZjdkODNkYjYxMzk3NzI5NjkxZTIzZDYgbGVnYWN5LXRydW5rCisxNTM3MiBiMzIwY2YzYTk4YjkwNmZkYWY3ZjU3ZjBhNzU2ZDUwMDAxYzhmYjJmIGxlZ2FjeS10cnVuaworMTUzNzMgNTY0OGRmNzQzOTVmOWI0MzdiZDlmYWMyNGM5MDBmNTRhMDk2OTlhZiBsZWdhY3ktdHJ1bmsKKzE1Mzc0IDgyMjhjM2FlOTEzMGFhODgwODNiNGMyNjY3MzY3MGRjMjIzNGYzMGIgbGVnYWN5LXRydW5rCisxNTM3NSA4ZDdhZDM4MThlYTZlNzM4YzVlOWNlODcwOWFjZjU3ZGIyZDJlOTYwIGxlZ2FjeS10cnVuaworMTUzNzYgNjcyMzNkZjEzMDM3M2U3N2UxOTJhMmI2NzNmYmVjY2UxMWQ1NDZkNyBsZWdhY3ktdHJ1bmsKKzE1Mzc3IDgxYmFiYmE1YmQzNGU5OWIzMTAzYTFjOTI4N2IwNGEzOTgyNWE1ODIgbGVnYWN5LXRydW5rCisxNTM3OCBkOWNmYTJlNmY3ODIwODUwNzgxNjdlZDAwYWNjMWNkZTVkM2JlOWYxIGxlZ2FjeS10cnVuaworMTUzNzkgY2M0MzUwYjFiOTFmYzk1MzcyMTdhOGM0MmFiNWQ1MTdiODIxNDFiOCBsZWdhY3ktdHJ1bmsKKzE1MzgwIGViNDkxNDFkNmUxMGYwNzU0NDYxZTM3ZjZkZDhlY2Q4Zjk0NDY1YjQgbGVnYWN5LXRydW5rCisxNTM4MSA5ZWE2YWU4Y2YwNWNiZWNmODliMTg0Yzc4MGNlOWNhZDI1NmI3YWEyIGxlZ2FjeS10cnVuaworMTUzODIgOGE4MmRkYWViYTZhYTE0MGFjMTZmZDczZjNkMmNhY2EwYWU0ZTc3OCBsZWdhY3ktdHJ1bmsKKzE1MzgzIGY3ZjlhNzQwZWQxY2I1ZDIzYjJkOTRhMTE4OTIwODIyNWQ5MDJlNzUgbGVnYWN5LXRydW5rCisxNTM4NCA5YTc3MjVlYTc4ZWIwYjBhNzExNDM2MGY3MjQ1NzBmZWU1NDMzNWJiIGxlZ2FjeS10cnVuaworMTUzODUgNmUwNzNiYTUxNDE0MmQ5OTAwNzUwOTkxNGFhNGRhOGE5MGFkYzc1YiBsZWdhY3ktdHJ1bmsKKzE1Mzg2IDExMWRjOTE2OGU0MzVjMmMyZTdmYTNiNDExZDU4NDc1N2Q3MzIyNjYgbGVnYWN5LXRydW5rCisxNTM4NyBhNmM4NDEzYjNjNGZmNTM4NmI1NTg3YjI4OTRiY2I0NGIzZDc3YzU4IGxlZ2FjeS10cnVuaworMTUzODggODdmNTk0NmM1NmY1NjZiNWZjMzcyMWM5N2U3ZjAwOGFlMzhjZGFmMCBsZWdhY3ktdHJ1bmsKKzE1Mzg5IGU3Yzk4YWYwMjA4NDkxZDljYzFjMzhkMmQ0MmIwZGFkNDY0Y2JlMGYgbGVnYWN5LXRydW5rCisxNTM5MCAzZWZlYWE3NTIxZTQxYjJmYWRkNjhkYjE4MTM5MWVhMTQwOWY1N2JjIGxlZ2FjeS10cnVuaworMTUzOTEgNTdkNGZjODMwOGUzZjE3Y2Y3MzJiMDcyOTY2MWQ5OWVlNDQxNTMwNSBsZWdhY3ktdHJ1bmsKKzE1MzkyIDEzMmUyNzE0OWY5ZjNkNjc4ZTFjYWUxM2ZmNDQ0NGYwNmQyYTAxNzYgbGVnYWN5LXRydW5rCisxNTM5MyAzNGQyYjUwZWZmMmViOTMxZDUxM2IwY2NlODRhMGI5ZDdjMTgzYTEwIGxlZ2FjeS10cnVuaworMTUzOTQgYTU2NzA3YjA3YjgxZGQ0NDE3YTQ2MWU0MTVlYjRlYWUzYjViYzQ2YiBsZWdhY3ktdHJ1bmsKKzE1Mzk1IGRkZjk4NmE5NzFiNTY4YTQyMmIzNWY0YzViY2JjZTgwYTc0NDkxYTMgbGVnYWN5LXRydW5rCisxNTM5NiBiZWEzZDc3MGJlMGFjNGVlYjBlNDVhYjNhMjkyMWE2ZDYwY2FlNWIyIGxlZ2FjeS10cnVuaworMTUzOTcgNzVkYTlkNjM1MzFkMzI1NzkwNDQ4NmVjN2JkZTc2YzQxNjBlYzQ0OSBsZWdhY3ktdHJ1bmsKKzE1Mzk4IDY5NDgxY2RlNTExZDg2NWRmNzE5YWMwZTY2NjIwYmUxZmIxOTFhNTkgbGVnYWN5LXRydW5rCisxNTM5OSBkZWY5NTkzNTI0MjJkMThkN2RiM2Q2MTliZDI4Y2UxOTllNThiYmI0IGxlZ2FjeS10cnVuaworMTU0MDAgOTE3ZDg0NWU2ZTVmMjFlNDk5ZTVlOTdhNTYyNTk5M2FjYmI1NTFjYSBsZWdhY3ktdHJ1bmsKKzE1NDAxIDNmMDZmNDc2NWJhNDIxYjJmZTc4NzU0NWJhNDJiNTFhNjlkMDVhY2QgbGVnYWN5LXRydW5rCisxNTQwMiAwMDRiYjIwZGIxMWUwODY3ZWM1NDAwOTczNmNlZTcwN2FiZDg4M2YxIGxlZ2FjeS10cnVuaworMTU0MDMgOTFiMmVjMjA3NjMzNDllZjQwZWEzMTI5OGNmYWMyMTljYjE2OTIzOSBsZWdhY3ktdHJ1bmsKKzE1NDA0IDA2ZmY5NjZmNjlkNTJmM2IwMzcwODRkNDNjYTVhOTlmMDMyYmM5MzQgbGVnYWN5LXRydW5rCisxNTQwNSAwMGFhNjNkNmQyNmVhMGQ1MDAyMTkyNzU2ODM2ZjViZmIzNWRkNzljIGxlZ2FjeS10cnVuaworMTU0MDYgYzRlYjcwZDI0YTg3M2ZjYzQzY2U1ZTE5MjNmMGQ1MjA0YTZjZjNjMSBsZWdhY3ktdHJ1bmsKKzE1NDA3IDE3ZDFhM2YxZjA4NWQ3YTY0ZTM2ZjUwYmQzMGY1MzRhNGE0OTJmNzAgbGVnYWN5LXRydW5rCisxNTQwOCAwMzVhYmI5MzAzMTdmM2RjODBlZDQ4M2YxYjI3NzM4NDQ4OTczYjM0IGxlZ2FjeS10cnVuaworMTU0MDkgMmE1M2Y1ZGMwNTkwZmRkODBiMDZiOWNjZDJjMGM3MzM5NTg4ZWE5MCBsZWdhY3ktdHJ1bmsKKzE1NDEwIGM5MjY2ODc2NmY1ZGY5YjlhZTM0MzIyN2YwMmY3YjYyM2Y5NjA2OTEgbGVnYWN5LXRydW5rCisxNTQxMSAxYjA4M2ZlZDlhNDhmM2I0ZTU1YTg4NGMxZDk2NDg1MGUwOTlkMDdmIGxlZ2FjeS10cnVuaworMTU0MTIgZmFhOThjOGYzZjQyMjUyNTlmNDA0MDQ5YmE5NzFiODFmZTJiOGQ3NSBsZWdhY3ktdHJ1bmsKKzE1NDEzIDg2NjM2NWI0NGYyMzc0ODU3ZDc5MWU2YzA2NGM4NzY5YjRhNjg2ZjIgbGVnYWN5LXRydW5rCisxNTQxNCAwYTMwODFkZTU1YTE4NTc4N2RiYzQzNjU4YmQ2MjkzOTViZTY4MzFhIGxlZ2FjeS10cnVuaworMTU0MTUgNmIxNDNjYTRmZDdmMjM0ZTA0NzJiZGYxNGM0NWQ0NTBiODdkYjA3MyBsZWdhY3ktdHJ1bmsKKzE1NDE2IDRjYzc0YmY4MGUwYmM3ZmIyODIzNzUxYmIyYjRhNTMyNTcwZDZhYzIgbGVnYWN5LXRydW5rCisxNTQxNyBmN2E4OTk2NDdjYjNmYjBmMDliOWRjMTQwOTViMDNiYjQ2YTYxMzI2IGxlZ2FjeS10cnVuaworMTU0MTggODA1YmI5MGFmMTRkNzEwZjQzZjE4ZmExNTA2YjVjMWY0MzMxNDk1YSBsZWdhY3ktdHJ1bmsKKzE1NDE5IGUyZTQzNmE2Mjg5ODE5MTIyMjkxYTJkZjc3ZGE1YzMzZGQ3ZmUzNTggbGVnYWN5LXRydW5rCisxNTQyMCBiNjU2M2Q5ZGYwNmQwNzJlMzIyOTM0MmU3ZjFlMDYxNmQxZjY3MjdlIGxlZ2FjeS10cnVuaworMTU0MjEgMDU0OTMzZmFmNzdhMTE3ZGRmMzc0NGJmYmY1MDA5OTQ2NmE2MDIxNCBsZWdhY3ktdHJ1bmsKKzE1NDIyIGI5MWZkYzI5YzViZDJjMGEzNmQyNDJkMzJmYzRlMmZlYzdkOWJhODUgbGVnYWN5LXRydW5rCisxNTQyMyBhYTlhNjM1YTZmNDc3YTg3NTk5YjliMmQwYjM1YTQ5NWU2OTZlNzQ1IGxlZ2FjeS10cnVuaworMTU0MjQgMWVhOGNmODg1ZjdiZDkzMWJmOGM1OWRmNjg2MTZkODYxMjE3ZDFmYiBsZWdhY3ktdHJ1bmsKKzE1NDI1IGI3Nzg5MWZhOTNiMGU0M2QwMzRjYzdjMzlkOTUwNTIwOWFkN2MzNWMgbGVnYWN5LXRydW5rCisxNTQyNiAwNTcwOTc3OTYxMjBiODYzY2Q4OGRkOGM2NTFmNmI4MjlkMzE0NmFmIGxlZ2FjeS10cnVuaworMTU0MjcgNGRmNTIzOTk4ZTVkOTQ5NzYzYTMyNzcyNzUyNjk1Y2RkZDFhNWFkNiBsZWdhY3ktdHJ1bmsKKzE1NDI4IDdkMDI1NWJlZTBmOThhODEzZGE1NzA5MGY5MDhhMGU3MzdmZDUwNGMgbGVnYWN5LXRydW5rCisxNTQyOSAwNmEzNDZlYjNjYmYwM2IwNjVmZDExYTE0NGQ3NmZiZDU0MThhMjIyIGxlZ2FjeS10cnVuaworMTU0MzAgMmE2ZGM2NWMwNjBmNThkZDMwMWVhOGQ5OThjM2FhOWI4YWU3ZGFiZiBsZWdhY3ktdHJ1bmsKKzE1NDMxIDJmZWI5NzkwYjQwNDU2ZmVjNzM2NGNiYWRhOTY4MzU5Yzc3MGRhN2UgbGVnYWN5LXRydW5rCisxNTQzMiBhMDJlNmE0M2NhMTViMDk5MWUxN2M1NGJiM2NhYjY4ZDg5YjQ5N2Y4IGxlZ2FjeS10cnVuaworMTU0MzMgNDdiZGI2MzYxNTljODA1YTM1N2UyZWIxOGQwYjAxNjA5MjYwNTgwYSBsZWdhY3ktdHJ1bmsKKzE1NDM0IDU2NDY3NzMzMjBiZWE2ZGFkNjRiNTU0NTA4MDZhMjc1Nzc4MWE5MmMgbGVnYWN5LXRydW5rCisxNTQzNSAxMTZmYzQzMDVhMzliMTMyZWQyZWZmN2NmZGRhZWI0NTU5NDZhYmE5IGxlZ2FjeS10cnVuaworMTU0MzYgZGU0MzVhNTlhNGQ1MzU1NWQxNTFlMDQxMGYxNTA0ZWQ0OTI3MzgyZCBsZWdhY3ktdHJ1bmsKKzE1NDM3IDA3ZGMzZWQxN2RkNWQ5NWI2ZTRlNmFmNTY4MzVjNWM4ZmRjYTVjM2YgbGVnYWN5LXRydW5rCisxNTQzOCAyMzQwNzQ1NDVlYjRlMTk3YTdmOGRlOGIzNTY1NGIzNTJkNDY2ZGEzIGxlZ2FjeS10cnVuaworMTU0MzkgODc1ZTY3NzIzNmE3MTg5ODgyNmJlOTgyMDQ2M2MxMmNjZWZmMGQyNCBsZWdhY3ktdHJ1bmsKKzE1NDQwIDhlODFjNmM1MjRiMjA1YWQ1MTMyNWY1YTQ2YTUyYmEyYzBkOWU1NWMgbGVnYWN5LXRydW5rCisxNTQ0MSBiODlkYTIwMmQxOGQ3NjljM2FhODNmNjk5YTNmYTBmMjk4NWFkNGMzIGxlZ2FjeS10cnVuaworMTU0NDIgYmRhZTZiOTA5MzRmNDZkZDQ2OGEzYzMwODk0OWJkNmMzMDY3MzcyMSBsZWdhY3ktdHJ1bmsKKzE1NDQzIDdjODllZTQwNzMwZjQwZTMwNTQ3ZmYwMzdmYTVkMDExY2VjZmRhMzkgbGVnYWN5LXRydW5rCisxNTQ0NCAyZTFiMDQ4M2IxMDFiMzA3NjQ4MmNkN2NkNDUzZmMyYzA3NDMxOGRiIGxlZ2FjeS10cnVuaworMTU0NDUgMzRmMDkwNmZlODIzNDg0NjE0ZGI5ZmI1YTE2MjlmYjMyYjdiMmJlMSBsZWdhY3ktdHJ1bmsKKzE1NDQ2IGNiZjlkNjdiNWZjMWY1YjBhMzRlOWM0ZGZhZjZmMzhhNzAyMDliMWMgbGVnYWN5LXRydW5rCisxNTQ0NyBiYzk2YzkxMmRjZThjZDU5ZWUwY2Q4NDZkNzg1ODlmYjE2YjViMTM5IGxlZ2FjeS10cnVuaworMTU0NDggNmJhZDE2Nzg5Zjc5YjQ1MjUzM2QyOTE3NjA3YWY5MjI4OGY5YTcxZiBsZWdhY3ktdHJ1bmsKKzE1NDQ5IDljYjk2MDg2MDUyOGYzMzdmZmQ0MTUzZTdjNTg1MzQ4ZTk2OTQ3ODYgbGVnYWN5LXRydW5rCisxNTQ1MCAyMGIzYjk3NjVjZWM2NmJkYWE3Y2E0YmQ1MjQ2ZDgyN2I2MjcyOTEzIGxlZ2FjeS10cnVuaworMTU0NTEgNzI4YzE2MDUzMzY4YWVkYzYwYWQ2ZGI4M2ExMDRjNDBiMzU0MWZkYSBsZWdhY3ktdHJ1bmsKKzE1NDUyIDdiNDY2YTczYzk2MTY2M2U4YjhjMjQ3ZTgzOTg5ZmFiYjkyZDhlODAgbGVnYWN5LXRydW5rCisxNTQ1MyA0MjBmOWFhZjg4MGJkZTMxZGU0ZDEwYzg4ZjJhMWIzMGE1OTg4OWM0IGxlZ2FjeS10cnVuaworMTU0NTQgMWRlZTkzZWI5ZWUzMjE1YTdmNWZmNmFhZGQ2NzEyODU5ZTQ1NDhkNSBsZWdhY3ktdHJ1bmsKKzE1NDU1IGE5NDI2OWJkNjU4NTkxOTRhZDUxZGFlODM0MjQ4YzAwNjFhYzZlNzkgbGVnYWN5LXRydW5rCisxNTQ1NiBhNDhiNjBiNmViNDgzN2RjNjhlMzYxZjg3YzAzNzRmNjUwNTNlZDc2IGxlZ2FjeS10cnVuaworMTU0NTcgYTQ5ZTQ1MDY4OGUyZTBkNjgwNTNkZjBkOWVkZWIxZGZkMjMwODQyYSBsZWdhY3ktdHJ1bmsKKzE1NDU4IDkwMjgwMGQ4ZThiZTExNWU1MmU1YjI0YmIxOTFjY2Q3MTMwYjg2YWEgbGVnYWN5LXRydW5rCisxNTQ1OSBlYjE3MThjNWE1NmMwZGJlYTAzZmVkOTJjYmNlMWNmNGJjNjY3N2ZjIGxlZ2FjeS10cnVuaworMTU0NjAgZWU5NzJjYTY1YzFjMjMxNGFhMWFmNzhkNGYwNzE4MTRhM2U0OTkyZCBsZWdhY3ktdHJ1bmsKKzE1NDYxIDk0ZWRlMDRiOWE5ZWVhZGZhMjRjMTY4ZWUzYjBhNGFlYWFlNTk4MDcgbGVnYWN5LXRydW5rCisxNTQ2MiA5MGM3OTA2YjA5OTliNTFhNzVkOGRhNTFmNzU5ZWIzMDgxYjYyZTg4IGxlZ2FjeS10cnVuaworMTU0NjMgNThhZDYxOTZkODFmMmI0ODk5NTRlMTRmM2ZhYzcyYmYxYjU5ZDhiNyBsZWdhY3ktdHJ1bmsKKzE1NDY0IGY1NTVmZDgwNTA4NTVlYThjMTk5ODRmZGJiNzM4MmE2N2QyZWQ5ZjUgbGVnYWN5LXRydW5rCisxNTQ2NSA2MDU5YTkyNzlkOTk5NGIwNWRhNjBjMjJmNWFiYmY2MGY5ZTM5ZDhmIGxlZ2FjeS10cnVuaworMTU0NjYgN2ZmNWFlMTBhNzcxZDdjNmQ5ZmQ4OGIyZDUwOWRmNmIyYjYxY2M3MCBsZWdhY3ktdHJ1bmsKKzE1NDY3IDI5Nzc1YzI4NzIzNzhmNTQzOGRhN2U0ZTk1ZDhkZjI5YThjYjA5MzAgbGVnYWN5LXRydW5rCisxNTQ2OCA5YWJlZmM1YjFkODlhMmZiNjMxMmI3NGIwYzZhMDI4YmI0YmQ3NTY0IGxlZ2FjeS10cnVuaworMTU0NjkgMzUzMDU5OTE3MTliNTE3ZTI5ZGQ1ZjFhOWFhMTIzZTA4ODZlNzU2ZiBsZWdhY3ktdHJ1bmsKKzE1NDcwIDFiZjcxNGUwYzEwZjVhZGM2ZDI1MmFjZWIxOGZiZjc4Y2RjM2Y5YWYgbGVnYWN5LXRydW5rCisxNTQ3MSA5NDJjZTIyMTEyOGEyODMwMTU1MzBmNjkzNzdmNThjNDMyOWNjZjE5IGxlZ2FjeS10cnVuaworMTU0NzIgYjgxN2YxNjM5OTM5Y2ZkNDRmMzk2ZjZlYjZiMDRkZDU4YWI1MDA5MCBsZWdhY3ktdHJ1bmsKKzE1NDczIGJlNTVmNWRkYzYxNWJkMjE1YzE4NDZjZjUyMTIwODJiODhkZTVjM2IgbGVnYWN5LXRydW5rCisxNTQ3NCA3ZWZiYjRlNmFmY2E4MzBkYjFmZThkYWZkMjQ5MzgyYzZlOTVlOGY4IGxlZ2FjeS10cnVuaworMTU0NzUgOGRjYTU1ODY3OTk4YTU5MmNmMDljM2YzOTQ2OWQ3OWJiMDRhMTM5MSBsZWdhY3ktdHJ1bmsKKzE1NDc2IDZhZDhjZDM0YWQ4YzhmMWFjYjE4ZjJiZjU3YWJjZDkyMzAzNTMxOWYgbGVnYWN5LXRydW5rCisxNTQ3NyBhZWNmMzVmMGMxNmJhM2M5ZTkzOWEyMTIzMzQ1ZGUzZmY1NTI1YWM4IGxlZ2FjeS10cnVuaworMTU0NzggMGE2YWY1OWViZmZkOTNhZDViODliMmQwMTY2NTEyMGQ5OTRiMzBjNCBsZWdhY3ktdHJ1bmsKKzE1NDc5IDUzZTU0YmQ0ZTVmNGFjYjFiYWY1OGU4NGEwMjMyNTQyZjk0ODMxNjMgbGVnYWN5LXRydW5rCisxNTQ4MCBmZjgxYTY1ZTBhOWJiMjIwNjdmYzZhNWY0YzNjY2ZhMDg1ZDRiZDNiIGxlZ2FjeS10cnVuaworMTU0ODEgMmVhOThkOWRjNjY5NDQ5ZjY5MTdiYTk3YWY5MDNjZWRmZGY1NTUyNCBsZWdhY3ktdHJ1bmsKKzE1NDgyIGE1OThhY2UwMTk0MzljNTAzMzk1ZTk1NzhlODMwNDZmNTBjNGI5ZTcgbGVnYWN5LXRydW5rCisxNTQ4MyAwNTJhZmI3NDk1MmVjZmQzMjk4MGQxZTQ4MGMxNWE5NTA3YjNjNzQxIGxlZ2FjeS10cnVuaworMTU0ODQgZDA0MGNlYmQ3NGFjMmYyNTM1MjA3OTRmM2Y3ZDY1MzJkMGFjZTIyZCBsZWdhY3ktdHJ1bmsKKzE1NDg1IDJiNDk4ODM3Y2Q4NTg2ODY3NzFjYzI2YTkxOGMyNTU1YzY1NGE2NGIgbGVnYWN5LXRydW5rCisxNTQ4NiA0MGQ2ZDJmYzljZmZmNDc5NzIxNTZiZDFiZGYyZWFmMzhlODI0NjYyIGxlZ2FjeS10cnVuaworMTU0ODcgNWRkM2IzNWJmZDUyMmY4YTMwYzhmN2M3ODg1NDY0YjgzZDcxMTMxZSBsZWdhY3ktdHJ1bmsKKzE1NDg4IGNlM2RlMjk0MzYyYjhhODUyYmIxMDcxN2JiYzc1Nzk1MWY0M2RjNzUgbGVnYWN5LXRydW5rCisxNTQ4OSA0ZmQ4NDU5MjJjNDlhZTBlNGNlOTIwZTg1NWZkN2UzZmE3NWRmNjhlIGxlZ2FjeS10cnVuaworMTU0OTAgMjRhYjg0ZGM0MmFiZjA5ODQwYTZjNGRlMmNhYjFkMTY0Y2NiY2M5OSBsZWdhY3ktdHJ1bmsKKzE1NDkxIDE0N2QwYjQxNDRlYTE3ZGYwZjgwM2M1NDE5YjBkZGQzZjFkNDdkZDUgbGVnYWN5LXRydW5rCisxNTQ5MiA0MTE4ZjAwMmU3Mzc3MzJlZDA3N2YxZmJkZTdiOWZmMTc2MmYyMmY2IGxlZ2FjeS10cnVuaworMTU0OTMgNzk1NGZmOTNlZTNiYzY5Zjc5Yzk4YzRmZDMwMWFiMDFhOTY3OWI5ZiBsZWdhY3ktdHJ1bmsKKzE1NDk0IDgxMzgzMjIyMDk4YTNkOWQ0MThmYzJiZWRlNTM5NWFlZjBjOTI2NGUgbGVnYWN5LXRydW5rCisxNTQ5NSBjYWIyMmJjYmY1YjZkYzZhM2U5NGU0OGM5YzViZjhkMDEyNTI0ZDNkIGxlZ2FjeS10cnVuaworMTU0OTYgZDJkODY1ZDk1ODYxMjY0M2IwOTBjYmU2NTE4MGY1NGMyYTI1N2RjNiBsZWdhY3ktdHJ1bmsKKzE1NDk3IGQyNTczZGJmNjg1MjU0NDg3ZGM4N2I4ODdlY2RlNmI3MGY3NjRlMDggbGVnYWN5LXRydW5rCisxNTQ5OCA3N2E1YTE0Njk1YjMyYTllMTc3YTI1NDcxZWNkNGQ0ZTRlN2VkOWQ4IGxlZ2FjeS10cnVuaworMTU0OTkgM2QyNmNiMzgwOGE3ZDIyMGRkZjdjZjEyNGE3NWQyZjk3YzM5NmE5YiBsZWdhY3ktdHJ1bmsKKzE1NTAwIDE4YjAzNTY1MDVhNWE0YWMyNjc3ODQ4YmZiNTY0ZTdmZjdiNDk1ODEgbGVnYWN5LXRydW5rCisxNTUwMSA4OWY0MjA5OWM1ZGQ2ZjQyZjQyZTQyZjRiNjBiOWM2ZjRjMjUwN2UzIGxlZ2FjeS10cnVuaworMTU1MDIgYjUwYmY3ZDM5NjFmODdlNTZhMjhhY2JlMGY1OWQ5OTBhMjZlYzc3YSBsZWdhY3ktdHJ1bmsKKzE1NTAzIDU3MGZhY2I3M2UzNjRmNzc3MjU1ZjYyZmU5NDg5OTAxNWRmNmUzMTEgbGVnYWN5LXRydW5rCisxNTUwNCBlODc4YTY0N2UwNmVhZjkxZmM0ZDgzNDQyZDVhMDkwNzQ3ZjRiMjY1IGxlZ2FjeS10cnVuaworMTU1MDUgZWVhZmFiOGM5MjViZTY4NDRmZmI1M2Q4MDFhMWZkYTgxNTgxN2NkMyBsZWdhY3ktdHJ1bmsKKzE1NTA2IGRhZDIwNWQxM2JiNTlkYjYzNDI3OTJkZDBhNDJiYjBjMDBkMGMyNDggbGVnYWN5LXRydW5rCisxNTUwNyAzYzMwZjdiNTEwZDM0MTM2ZmE2YWQzNzZmZGE0OGI1NmY0NWQwODA0IGxlZ2FjeS10cnVuaworMTU1MDggNmM2ODQ0YTJmYTMwNGYwMjAzMGQ1NjgxMjliNGQ5MjI1OTExNjQ0OSBsZWdhY3ktdHJ1bmsKKzE1NTA5IGViNTYyZGYwY2ViZTBlZmVmY2YwZGY2MjBiZDgyMGM0YzhmNmUzYzYgbGVnYWN5LXRydW5rCisxNTUxMCBiY2U0OWE2ZmE4YjllNWJkMjZiMjNlNDU5N2RkOGMyNjQxZGZjNThiIGxlZ2FjeS10cnVuaworMTU1MTEgMjQ5N2UxYzllYmNlZWE3MTg4ZTM4NWJiYTlhNjVjNDNjNzRlMzZkNyBsZWdhY3ktdHJ1bmsKKzE1NTEyIDJjMmI0MGViM2E2NTQ2MzE5MDczMTE0MDc2ZGNjNTNmMjUwZjFjYTQgbGVnYWN5LXRydW5rCisxNTUxMyA3YjQ5MzM0YTYzNjk2YWNjNGM4M2RkMDdkYjkxZTZjMjYxZWE1OWM3IGxlZ2FjeS10cnVuaworMTU1MTQgODZlYzc1ZGFjMjcyYmFmYzdlNmFkZDk5NzM5YWNjYzFjY2NlYjFmOCBsZWdhY3ktdHJ1bmsKKzE1NTE1IDUyMTNhYmZlNTIzMGJlYjAzZmMxOTk2MDEwMTc2NTcwNDg4YWJjNGMgbGVnYWN5LXRydW5rCisxNTUxNiA4ODlmMmNiM2Y3MmFhZjgyMDk2MzU5MTJiNmVmNjdjZGUyOWUwMjU4IGxlZ2FjeS10cnVuaworMTU1MTcgZWNkZGIyZWQ0Yzc1NmE3NWNkYmRmZjRhNzdhNWFhYjg1MGU3OThmMSBsZWdhY3ktdHJ1bmsKKzE1NTE4IGYwZDIyNTNiNjY0ZjU4ZDNjYTQ5OWIyYTJlNTczODkxZjQ3MjI2YWUgbGVnYWN5LXRydW5rCisxNTUxOSA0MDZiMGUyNGQ2MmU3M2Y4YWI4YjRlNTZmNTlkMTM0NzBhZTZiMzFhIGxlZ2FjeS10cnVuaworMTU1MjAgMWRlMDAxN2UxMjI2N2IxMDExOTM2ZjU3MWYzMDZjODBiNzczNzkwOSBsZWdhY3ktdHJ1bmsKKzE1NTIxIDBmMWU0ZTM5MzVkN2M0MDAzOGJmOWQyMDAwMGM5MzkyYzRlYmVkMzEgbGVnYWN5LXRydW5rCisxNTUyMiBkYTAyYTg5MmQ2MTE4NjQ1OTY2OTcxMzY5OWI3YmRmMTNlMTljMjE0IGxlZ2FjeS10cnVuaworMTU1MjMgOWUxYjgwNTBkZTYzYTQ1ZWE0ZDIwODNjOGIxMjdmMTJjNWVhOGU4YiBsZWdhY3ktdHJ1bmsKKzE1NTI0IDNjMTQ5ZDM4YWJmOWZjNDg5Zjk0N2Y5OTU0OThiNjM0NTYyZmFlYmEgbGVnYWN5LXRydW5rCisxNTUyNSBjOGE5ZDE3NjY0NjVjZTVhZmJlZTljMDA5OTFiNzkwOGY2YWIwYTY2IGxlZ2FjeS10cnVuaworMTU1MjYgZTBlZjYyMmY4YzIzY2U5NGVjMjlkYjU5MGM0Y2NkYmExOTkwOTc2OSBsZWdhY3ktdHJ1bmsKKzE1NTI3IDk2NzczMmRkM2Y5NTliYTg2ZjE2ZmVkOGQ5Y2I5ZTU5ZWQ5Njc3NDAgbGVnYWN5LXRydW5rCisxNTUyOCA5Y2JjYWQyZTg3MjM4NDU5MWNhOTZjZmE2M2I5YTljZDg1Y2MyMjM3IGxlZ2FjeS10cnVuaworMTU1MjkgYjVhYjQ3MzY1YmFkNjU4YWMyMGEzYTkxZmE3YjhlYjExYTFmMWExYSBsZWdhY3ktdHJ1bmsKKzE1NTMwIDI2M2NkZjljODQyZWU3NGQ0MWM1MDQ5YTZmNGRhOWRiMTU3ZjQzNjEgbGVnYWN5LXRydW5rCisxNTUzMSBmYjQwMzliMWNmOGQ3NWYxMmJkNWY5Zjg4MGVlOTYxYTc5Y2I0YzA1IGxlZ2FjeS10cnVuaworMTU1MzIgNTJjNmFjMmQxNmE4Y2FlZWI4MDc4NjYxMmU4Y2IyNDY2Mjk5Y2NlZiBsZWdhY3ktdHJ1bmsKKzE1NTMzIDdhNGY2NDAyYzY3Zjg4NzVjNjZkZjgwMjQ5NTljMGM2NjI0NmJiYzMgbGVnYWN5LXRydW5rCisxNTUzNCBiMDY5NGMxYzEyODdkOGI2ZGY5MzlhMzUzZGE3YjFiYWRkMjUxYjQ0IGxlZ2FjeS10cnVuaworMTU1MzUgNDBkYjkwOWNlMmUzMmFhZjZhNzRlODI5YmFhNjU0MDI2NjQzNDljNiBsZWdhY3ktdHJ1bmsKKzE1NTM2IDhlMmIzNWQzODZhYWNhYzc2ZDc5NTRjZDZjYmEzZGUyMTZiZjg0ODYgbGVnYWN5LXRydW5rCisxNTUzNyAzNDI5NDdmMmZiNTE0MzFkODRiNzQzMzQzYTI2MDkzOGI4YjFjODQ0IGxlZ2FjeS10cnVuaworMTU1MzggMzhkYTg2NGEwYzgwNjZhYzVkMjg0OWYxOGVkNDhhNGUyNTRiNGVmMSBsZWdhY3ktdHJ1bmsKKzE1NTM5IDAyNjNhOTlkMGViMjg4OGRjOWE5N2NjZDhmYTNlM2I4MTE5OWQ1ZmIgbGVnYWN5LXRydW5rCisxNTU0MCAwNTcwZGU5YzgyMDJkNWJlMDYzY2VmZDE4ZmYwMDYwOTVhYmY3YmEyIGxlZ2FjeS10cnVuaworMTU1NDEgOTMzNWRhYTlkZGQzYjAzODYyNjE0YjIxZTNkZjFmYzFhMGExYWFlMSBsZWdhY3ktdHJ1bmsKKzE1NTQyIDkzNmVmZGMwMWQ1MjQ2OTBmZTIxODhiMjkxMTNhZmU4MWU2MWUzZDMgbGVnYWN5LXRydW5rCisxNTU0MyA3NzFiM2UxYTc3MWM4Zjg3NzQzNDA1Nzg3ODFhMjIxYzE2Y2M1ODQxIGxlZ2FjeS10cnVuaworMTU1NDQgYjkxYjM1YzFkNGMwMDhlZDhiOTlmOWE5YzA3MTllYjkwZTViNjYwMSBsZWdhY3ktdHJ1bmsKKzE1NTQ1IDUzOThiMThmODMxOWQxZTQ0ZmU1NDI2YTZkZGI3MzFhY2JjNWVmMjggbGVnYWN5LXRydW5rCisxNTU0NiBmNmU3MzBmNjViY2U2MmViZjk1YzgyYTU3YTk5MmJlNmRiMDBlMjdlIGxlZ2FjeS10cnVuaworMTU1NDcgZjc2OGQ0ZGFkOWE2MmEzN2VkYzBmYzc4ODc4NGQ3MjY4OTEwMDRjZSBsZWdhY3ktdHJ1bmsKKzE1NTQ4IDZmN2RmOTg1YTgwYzQ3ZDYwYTNiYjUzYWVlODk5N2JhOGMxOWFmODkgbGVnYWN5LXRydW5rCisxNTU0OSA4MDA0ZDI5Yzc3YjhiZDI5NjI5ZTA3Yzc4YzRjMjMxMTNlMmEwNDdhIGxlZ2FjeS10cnVuaworMTU1NTAgZjBkMDM2ODljMWFlMDA0ZmY3ZWMxNjI5ODNhNGNmOWZhMDA0ODE2MyBsZWdhY3ktdHJ1bmsKKzE1NTUxIGY4YzFjNWI3ZGM5ZjRiOTczNzA0NmNiODc0NjkzYWVlYjdhYWYyMTMgbGVnYWN5LXRydW5rCisxNTU1MiA5MzdmOTg1OWM5ZGUxYjY5Njg4YzQ0ZjZhOTVmNmU2N2NiOTVjOWM1IGxlZ2FjeS10cnVuaworMTU1NTMgNWNlNDJlMDdhZmQ4NWFlOWNmNzhkODQ3NTQ1NDQxODIyMWY0MDA3NiBsZWdhY3ktdHJ1bmsKKzE1NTU0IDUzOTc0NDUxZTMxZjExNjY4ODI4ZGU5NmFjODAyM2MzYjBiZTQ4ZTkgbGVnYWN5LXRydW5rCisxNTU1NSAwNzQ4MTlhZmRjOTVhYjFkMTYzMjQzMGY3NzMyODYzMDE1ZjI1MTI2IGxlZ2FjeS10cnVuaworMTU1NTYgZWUxMTkwNTFkZjc3ZjQxNWRhZWI1YjkxMTE4OTZkZDIyZjgyYjQ3MSBsZWdhY3ktdHJ1bmsKKzE1NTU3IDVjMGVkYjM1MWMwNzI3OTE4ODU0MGM0ODhlNGQ5MDRhZTQ5ZjYzNDIgbGVnYWN5LXRydW5rCisxNTU1OCAwOWY3MGY5MWJkYWUyZThmNWFjOWFlMWIyYWQ3NmRiNDBiZDFmMGY3IGxlZ2FjeS10cnVuaworMTU1NTkgODhkMGIzMzgzZmUyNTU2NDM5ZWUzMDY1MGYzNzZhNGMxMGRmODE4YSBsZWdhY3ktdHJ1bmsKKzE1NTYwIGQ4MWM5NWRkNDAzOWRkYThmNWFkNjk2NTMxZmJjYWIwNjljMzdjMjcgbGVnYWN5LXRydW5rCisxNTU2MSAzYWFiMGM1MTkwMDkwYWY2OTYxNWFkOGNlMzE0NDQxNGU2ZjAxNTFhIGxlZ2FjeS10cnVuaworMTU1NjIgZWVmMmI5MThkMDdhYzg2OTI0ZGIwYWU1MDJjYmI4YTFhODYxYWRlOCBsZWdhY3ktdHJ1bmsKKzE1NTYzIDMzZGRjMTJkZjI2N2Q4NGQxMDgzMTIyZmQ3YzBiODExY2RlNTA4ZjcgbGVnYWN5LXRydW5rCisxNTU2NCBmNmQ3ZTMyODY2MDkyNjExZDQ0M2E2MmM5NzkwYTM3Njc4NDdkMzYxIGxlZ2FjeS10cnVuaworMTU1NjUgM2JlOTJjZWYxOTE3NDQ5OTZmYjAwYmY3NmZjOTgzZjVmMmUyNDYyZSBsZWdhY3ktdHJ1bmsKKzE1NTY2IGUzNmJlN2ZiNzZjY2M3ZmJhZjg0MDJjNDY0NjJmZjFlMzJmOGY4MDQgbGVnYWN5LXRydW5rCisxNTU2NyA1ODNkZWY4Y2VkZjQzMTBkYzFkMTVlNmNlYzdhMWJlOTRmNTI2YmMzIGxlZ2FjeS10cnVuaworMTU1NjggYmNlNTNiMTQ3MjFlOTE5YmM5NTIxZWZjMzc4NTgzMjAyMDU5NzBhNyBsZWdhY3ktdHJ1bmsKKzE1NTY5IGJjMWZlOTU2MjM5OTgzZjIyZWQzNmZhM2RiYTZjNmZkMDdkMDRjMWUgbGVnYWN5LXRydW5rCisxNTU3MCAyNThlZWQ0NTcwY2U4OTBjMTBmNzM0N2Q1ZTA2YTljZDczYjlhZDk3IGxlZ2FjeS10cnVuaworMTU1NzEgNzExYjMyOTYwOTM0N2Q1ZDI3MDY4MWY5NTQzYmI2MzgyMjZlNWIxYSBsZWdhY3ktdHJ1bmsKKzE1NTcyIGIxMmFkYTJlYjMxMmIwNmQwMzllMTQwNzEzMjEzOTczY2M1ZGZlYzAgbGVnYWN5LXRydW5rCisxNTU3MyAwYzIxN2U1ZjA1NWI3NmU0OTBiMTgyM2U0NjEzYTA2YzRkMzdkODNmIGxlZ2FjeS10cnVuaworMTU1NzQgZjFmOWMzMGE0MTU2OTU3NDhiOGQ5YjU0MDQzNzE1OTI1MzFmZDAxZSBsZWdhY3ktdHJ1bmsKKzE1NTc1IGIxYjI2MGEyZGU5ODdlODc4NTM5ODE3NzZhM2RkZGQyODZhZjBiM2UgbGVnYWN5LXRydW5rCisxNTU3NiBmZjBmNzI4MWJmYjg0YmMyNjQ0NDQ4ZjgyYjgwNGZjMjUwN2MxMTcyIGxlZ2FjeS10cnVuaworMTU1NzcgNDI3MmIzNjhiZjY5ZjZjZWFhM2ZlN2Y5YmIxOGJiNWM4NTU2YmViYiBsZWdhY3ktdHJ1bmsKKzE1NTc4IDVmMWY4ZGRjMmEwY2RlNDlhODdlOTM3OGVkMjUxOTkyMzI5MWE3YjMgbGVnYWN5LXRydW5rCisxNTU3OSA2NjY3ODIzMjZkNDJjMGRiMzViMDEzMTJhZTYyYjkwNmQyZTVjODI4IGxlZ2FjeS10cnVuaworMTU1ODAgYTI0ZDlhZDY3ODZkNjYzOTI2NjFhYTI1NmQ2YzU4YWE0ODQ0MjZiZiBsZWdhY3ktdHJ1bmsKKzE1NTgxIDM1ZWE1ZGUxZWU4M2FiNWY1Njc5YzIxNzIwNTBkNThmNGY4YTRlNGUgbGVnYWN5LXRydW5rCisxNTU4MiBmMmRiNjA5NDNkNmI4MzFiOTQyZmYwNTRkZjc2NjAxMzViMjlhMDEwIGxlZ2FjeS10cnVuaworMTU1ODMgNzIzZGYwYzgwMWQxZGM0YTVhNWY3NWY0ZWRlMmFkZTE2YjZkOGE1ZiBsZWdhY3ktdHJ1bmsKKzE1NTg0IDJjN2E0N2M2NGUzMDZlNmNhYTJmZDgyNWM4ZDQwMTBlNTJlN2RjZmMgbGVnYWN5LXRydW5rCisxNTU4NSBiNTMxOWY0MjI1OTEzZjA0MDE2NzU5YzFmMDJlZDNhNWI3ODM2NjQ4IGxlZ2FjeS10cnVuaworMTU1ODYgYzkyOThlYzYzN2M1YTYxMmQ3NDlkMjk5NzlmODYxOTE4MjU0MjczNSBsZWdhY3ktdHJ1bmsKKzE1NTg3IDdkMmEwMDYzZTI2ZGZmZWJlMmQyNTNhMDIyNzllYWEwMDIwOWFkNDEgbGVnYWN5LXRydW5rCisxNTU4OCAwNDc3NGQ2MjJlYTJkZTIxOWJlOWE4NWMyOTE5NTQ5MmVhNDUzZDVlIGxlZ2FjeS10cnVuaworMTU1ODkgNjJhZDM1NzA4YjhjNmY3NzAyMmM5ZDRjZmQ4ZGU2NTAxY2M1YmFmMyBsZWdhY3ktdHJ1bmsKKzE1NTkwIGFmMzhhN2E3YWYxMGI3NmMzYWE4NzVkMzAyYTNkOTI0YWZlOGE4YTYgbGVnYWN5LXRydW5rCisxNTU5MSAyZjYwNjg2N2FiNGU3YjA2MTc5ZGUzMDQ5ZTYxM2M1OTI1N2JkOWJhIGxlZ2FjeS10cnVuaworMTU1OTIgMWY1MzEyMDhiZTExNzNiN2RlMDNiMDQ2MmVlNTc4MTM4OWQxN2EyMCBsZWdhY3ktdHJ1bmsKKzE1NTkzIGI5MGQ2MDFkNGQ1OTNhODJmNDg3YWM4YmU1MDAxMjkzMjQ0YjhjMDcgbGVnYWN5LXRydW5rCisxNTU5NCA0MWMwYzYwZGNhZjVmNTI5NmE2MzVjY2Q1YTM4MDkwNjY2NDIzYmI5IGxlZ2FjeS10cnVuaworMTU1OTUgYzJhMGYyYTgxZmE4YTliNWE5Y2UyMzVkZTk3NTEzYTA2MzNiZGExNyBsZWdhY3ktdHJ1bmsKKzE1NTk2IGJjMzU2NDdmZTQ3MjljMWIzNTY1ZmE1MDg2OGQzZDhlOWRjYjMxYmQgbGVnYWN5LXRydW5rCisxNTU5NyAzZmUzMDQwNTA0MzRlM2EwMDY2ZDc5OWQyNWNhMGM5NDhhNjc2ZmJjIGxlZ2FjeS10cnVuaworMTU1OTggNGU5ZWI4NjZhYWM2YTU4MzVkNzFkZWJhY2NmMjU1NzRiODc3NjgzMCBsZWdhY3ktdHJ1bmsKKzE1NTk5IDE2MTU1OTg5ZmE5MzJhNjIxODFkYTUwYjkxZGRiOGQwZWU5MDg1YmQgbGVnYWN5LXRydW5rCisxNTYwMCBiNGJhMzJiYjc1OGJlYzNjODhkMDg4OGRkNDRkZGJiMzcyOGM3MjFkIGxlZ2FjeS10cnVuaworMTU2MDEgMzkxMmZiNmM2M2Y2MTMzZGJmYjQ2YWNlNTZiYWM2ZjVjNWI4OWE3OCBsZWdhY3ktdHJ1bmsKKzE1NjAyIDY0NWQ1N2VmMTYzOTU2NzNjZjY3ZTFiNThhZDI2OGQ4MDUyZWY2NWMgbGVnYWN5LXRydW5rCisxNTYwMyA0ZTlmNzcyNGFjNTU5NTAyYzU0MDcwMTA4M2IyMDllZGIzNjUwYmM3IGxlZ2FjeS10cnVuaworMTU2MDQgMDQwYzEwOTdjZDM1MjQ0ZTk5ZmU2ODhjNGY0Mjg5M2JkOWY1ODlkMSBsZWdhY3ktdHJ1bmsKKzE1NjA1IGFmZDdjYmUxYzQ5MmY2MzU2ZjlhN2QyNWE1ZjA1YTVmMTU4ZGRkMzQgbGVnYWN5LXRydW5rCisxNTYwNiAyMjlmZDNhNWFmYTA4MWQ0YTI0ZjdhYTU4N2I3NzhlMDI3NzBmOGFkIGxlZ2FjeS10cnVuaworMTU2MDcgYjU4YjkwMzNjNjVhNDJlYzAyNzI2NDc0N2EwNWQyMDVlM2YzNjg2YyBsZWdhY3ktdHJ1bmsKKzE1NjA4IDQ5MTZkNDBkOTY3NzZhOWM4NDRjODAzZjlhMWIzZWVkY2FiNzcwOWEgbGVnYWN5LXRydW5rCisxNTYwOSAwNTdhZDg4YWFlOWE2MzU5NzNjODgyZmE1YjgxYzgxZmU5NTQ0OTRmIGxlZ2FjeS10cnVuaworMTU2MTAgNTk0YzI3Yzg3MGFkZWRmZWRmZTYzYzYyMGMyNjM0NzNkOTgwMWEyNCBsZWdhY3ktdHJ1bmsKKzE1NjExIGE5MmFkYjc4MGY0M2Q5MmU0NTNjNGMzMWQ1NDRjYjNkYjI4YTBjODMgbGVnYWN5LXRydW5rCisxNTYxMiBlNzg3ZjY2NDFhZmI4YzkwYjk4MGY3YTU1N2FmNjkzYjZlNGNiODkxIGxlZ2FjeS10cnVuaworMTU2MTMgMjg5MDllODBmMzZjZjU4ZDZjNzQ2YWY1YjQ0ZDdjZDk1YTg3NTc3ZiBsZWdhY3ktdHJ1bmsKKzE1NjE0IDIxNTUzYmQyZTg3NWYyY2Q2YzNjNzFiZWFkYTlhNjMzMGNiZTc4NjYgbGVnYWN5LXRydW5rCisxNTYxNSA2M2QzOTM1OGRiMDkzNDJlMDdiZjEzNDdhZjkyMGU2Mzg3N2UxODY2IGxlZ2FjeS10cnVuaworMTU2MTYgMGZlMDIxNmY2YzRlNGExM2ViMDRlNDYyODQ3MTE0OTZiMjY4MjRmMSBsZWdhY3ktdHJ1bmsKKzE1NjE3IDBjODg0YzhkMWU3NWNkYTA0N2Y3NWE2YjdhMDk4Y2ZhNWFkODc3YjIgbGVnYWN5LXRydW5rCisxNTYxOCA2YWUwNDZkNGNkMDQyMDNlYTJkNWIwMDhiMGExYjFmODAwZTc3MDc4IGxlZ2FjeS10cnVuaworMTU2MTkgMTRiMWI1ZGI2Y2IyZGViYmUwZGJhZTEzYjFmMmNiNjA2NTBhYzRkNCBsZWdhY3ktdHJ1bmsKKzE1NjIwIDM3OTc5N2YzZWViMjA2MDQ0NTUwNzc0ZWI0ZGVlZjBhZjJhOTgwOWIgbGVnYWN5LXRydW5rCisxNTYyMSA0MzIzZDQ4NTUwNDdiOGM3MjRiNTRkOTI3ZDIwMjhmMzRmNmY4NGY4IGxlZ2FjeS10cnVuaworMTU2MjIgMzk3MWU2YjE0YTA5NzQ5N2Q1MWIwYmRkMzlkZWY2MGQ2ZTBhOTQyYSBsZWdhY3ktdHJ1bmsKKzE1NjIzIGFmMGRlZjA2MzY1ODAzNmNlYWE4MWNjZjUwNjg4ZTlmMjU3NmFhMDMgbGVnYWN5LXRydW5rCisxNTYyNCBjMGZkODhmMmE2NWE5MTY0YWM4MjllNmI5YzRmMWE2NGE0ZTA4ZTgyIGxlZ2FjeS10cnVuaworMTU2MjUgMzFkMDk4OGRhOGE5NzMxNGY2MjZmMGVlMTlmYzBkMjYzYmM1MzlmYyBsZWdhY3ktdHJ1bmsKKzE1NjI2IGU1NDVhMGM0NGZlMTVjYjJmMmUzMGY1MWRjYjAzYWNlZjE3OTRkY2YgbGVnYWN5LXRydW5rCisxNTYyNyA1NDhjYzEwZGY5ZWJhYzgwOGU1YjY0MDU4YjAxY2E3YWQxMjNlMTQ3IGxlZ2FjeS10cnVuaworMTU2MjggZTA0NjQ5YzNjZWQwM2RiMjEzOTA2OGY4YzFiMjAxMjk2OGIxNTQxOSBsZWdhY3ktdHJ1bmsKKzE1NjI5IGY0YjQ4N2UzNTIxNDBjZTQxYmNjODFkMjg2MjQxN2NhYTgxYzRhZDQgbGVnYWN5LXRydW5rCisxNTYzMCA4ODg3Mjc5MTk5OGEwZGExOTYwODAzMTdjM2RkZWNiMGIxZWI2MThkIGxlZ2FjeS10cnVuaworMTU2MzEgNTI3ZjdlM2JiNzZkN2VhODRlZWZiM2M2Y2VjODE5ZGEyY2Q3MTg3OSBsZWdhY3ktdHJ1bmsKKzE1NjMyIGRkYTFjYTUzZWE4YTI2MThlOTZjZjJjMWU3NDdkYjBiMzE2YTUxMmMgbGVnYWN5LXRydW5rCisxNTYzMyBlMDI0ZWQyZGI2MjViOGUzZThkNmY1Njk5Yjc3YjJkNWMzMTJmYmZkIGxlZ2FjeS10cnVuaworMTU2MzQgZWZjNmQ3Nzg5ZDllNmY3MzM5Y2MyMmFkNDdlMDM1NWQzNmE5ZGQwNCBsZWdhY3ktdHJ1bmsKKzE1NjM1IGQ5OGE3NTU3MzI2YTRkODBlYzkwNWI2NDZhZmNkZGU1YWM5MzU0MzUgbGVnYWN5LXRydW5rCisxNTYzNiBhOGNlMTljMzJkYjlhN2NmN2FhYzIzNzlmYzQ1M2NlN2MwNTdmYjgwIGxlZ2FjeS10cnVuaworMTU2MzcgMjQzNTkzZjExZmNmNjhlNjc1ZmJhM2E5M2ZhMTM1Zjg5MjY2MjEwOCBsZWdhY3ktdHJ1bmsKKzE1NjM4IDc4MjMxYmJlNjA1ZGMyZWE3Y2ZhODNhYjU1NTVlYmY1NmI5YmEwODEgbGVnYWN5LXRydW5rCisxNTYzOSA2ZDc5MTQ4ODVkNjNmMWMzOWFmNzk2MTAyZjE4MmM2NDUwODhkMDk2IGxlZ2FjeS10cnVuaworMTU2NDAgMzAxZmYxNGIyYTBlYTYxZmJjMGVjYjkyMWU4ZjU0M2VmMzFlNTQ1MyBsZWdhY3ktdHJ1bmsKKzE1NjQxIDI2ZTIwYTI4ZDA1MWM2Y2VkNGI3NGNhMDdiYWU4NjFjY2ZhMjgzODcgbGVnYWN5LXRydW5rCisxNTY0MiA2ODg5ZGUyOWM1NTg0YjI4ZWE5ZjMwNjBmMTBiMGY5YTYwYTJiZWQyIGxlZ2FjeS10cnVuaworMTU2NDMgMTFlNWJmOGViNDczNjlhZjBkNWViYzMzMDg0OTk5YzBkNjFiNjM2ZSBsZWdhY3ktdHJ1bmsKKzE1NjQ0IDdiYWJmOTFiNmQ3NWM2NjUwMmE1N2UzMGQ3ZThjMmVjOTI2YzA3YWIgbGVnYWN5LXRydW5rCisxNTY0NSAwOTJiYWY2OWQ2YWY4N2Q2MGNiYjM1ZTdhZGQwMDAzYmVkNWJmYTZlIGxlZ2FjeS10cnVuaworMTU2NDYgNWEwZDE1NmM0MjBhYzcxM2IwMTI1ZTExYzRhODk2ZmMyNmNkOTQzYSBsZWdhY3ktdHJ1bmsKKzE1NjQ3IDFhZTAzNWEzMWNiNDgzNWQwMWU5MzI1NjRhNjM4NDMyNDkwY2U0ZWMgbGVnYWN5LXRydW5rCisxNTY0OCAxMWQxMGU5YjUwOGQ4MGIwYTQ4NGNmMDlkYWM1M2NhYzgwMWU5YTFmIGxlZ2FjeS10cnVuaworMTU2NDkgYjU3NTJkZTBjZmE0NjczNTRkMTFmNTI0MzQ2MGE3MDM3ZmM1ZjcyZSBsZWdhY3ktdHJ1bmsKKzE1NjUwIGY1NGMzNjc3YmFlN2Q4NjFhY2I4N2QwM2NjYjEzZTU0YjMzOGNlYWEgbGVnYWN5LXRydW5rCisxNTY1MSAxN2YzNWY2NmVjZDhiYzk1NGY3MTA5N2RkMTU2NTI1YzI0ZDMwZDMyIGxlZ2FjeS10cnVuaworMTU2NTIgMGM4YjlmOTZiMjZhYzczMGJhN2NjMTAzYmYzNzQwNTA4MzBmNWVmYiBsZWdhY3ktdHJ1bmsKKzE1NjUzIDBjMmNkZDdjZjdkYzZjNjI3MmViMDllNDNlODY5ZmMzYmNkZjI3NzMgbGVnYWN5LXRydW5rCisxNTY1NCBmZDU4ODFlMTc0MjdiM2Y2YmMyNTRjMTYyMzE2YzVlZGUwNDFmMTY3IGxlZ2FjeS10cnVuaworMTU2NTUgNjFmNmFjYzRhYTc0OGRkNDBlOGMzODE4YzcyYzcxMWQxNDAxMDgyMiBsZWdhY3ktdHJ1bmsKKzE1NjU2IGYwYThmMTI3MzQ1NjRiYzJiNmIxOTQ5OWQ4ODA0YzljM2MwYTY1MmQgbGVnYWN5LXRydW5rCisxNTY1NyBhZGVmOTdmM2ZlYTBmNTQwN2RlMjUyMWFlN2EzODY3MmY1OGM3OGU4IGxlZ2FjeS10cnVuaworMTU2NTggZTQ3YjFhMGQ2NDg0Nzk3NzExMWQ4Y2UwY2NkYTc1ZDQ5YzEzOTU0YiBsZWdhY3ktdHJ1bmsKKzE1NjU5IGYzMWRjZDFhZDhjNDExODc5YjY3OWIyMWQ1YjFlZDE0YjJiM2FhNmUgbGVnYWN5LXRydW5rCisxNTY2MCA5ZGY5MWY5MWU1Y2M5YTQ0MjQwMGJiNzQ5NzEwZWQ1M2I5NDQ0MzllIGxlZ2FjeS10cnVuaworMTU2NjEgZjgyYjE1N2Y0NWUyOWMxMDZiNjU2ZTFkZmMyMGFhOTExNjQ5ZGI3NSBsZWdhY3ktdHJ1bmsKKzE1NjYyIGVmZjI0MTA2ODVjYzQ2MGY3NTE4OWI0ZDY4M2YwNDIwOWVhMjMzZDMgbGVnYWN5LXRydW5rCisxNTY2MyA5OGViMzA1OWFlNzYwYmNkZjE5ZGU2ZDgzMzVjYWNiYjA5NDQwNmFiIGxlZ2FjeS10cnVuaworMTU2NjQgOWVlMWU1OTQ1NzFkNzE1NWQ4ZTVlMzY5NmM1ZTcxODU0YTEwMTcyOSBsZWdhY3ktdHJ1bmsKKzE1NjY1IDc1MmFhOGRmZjUyMGI5NGVkYzUxNjlmNjRhOGZmZDc3MGIzYjU2MmYgbGVnYWN5LXRydW5rCisxNTY2NiAyNTQzMTk3MjI5NGI0ZjM3Y2Q2N2M2ODA0NTlkMjZjMDY3YjAyNGNhIGxlZ2FjeS10cnVuaworMTU2NjcgZjY5MTAyYzFmNDEzZjFjNjZhNGUzN2Q5MDAwMjA3ZmNmZjVhYmFiZCBsZWdhY3ktdHJ1bmsKKzE1NjY4IGRkZTdlOTFmMmYyZTVjMzE2ZDhkNDBiYmI5NzkxYTNiN2NjZjQ4OTcgbGVnYWN5LXRydW5rCisxNTY2OSAxZTc4NGI4NzkwMzkwZTMzNjYwY2JlOWIyYWY0ODBkYzJlN2JhOTk3IGxlZ2FjeS10cnVuaworMTU2NzAgYmUzNmYxMDNhOTUzOWMzZGRkZGRiZjU1OWY3OTBhZTM3NjBkYzMxYyBsZWdhY3ktdHJ1bmsKKzE1NjcxIDUxMzk4ZjcxZDMwMTIyNzg0MzY0NDJmZDRlZWUxODU5MTI1MDA1MzkgbGVnYWN5LXRydW5rCisxNTY3MiAzY2VlMGQ3NTE5MWUyMzFjMDM2ZmJkZTkyOWZiMGYyMmU4NWZiOGI0IGxlZ2FjeS10cnVuaworMTU2NzMgMzQ0NTJiODgzYTcxZDVmNzBiOGQ4MTYxODY1NjBkZTFhYWMzYzQyYSBsZWdhY3ktdHJ1bmsKKzE1Njc0IGU1YWFjOWRmYWNmODcxNWJkOTJkMmI0ZmRkNzJiZjIyYWQzYTU5MjEgbGVnYWN5LXRydW5rCisxNTY3NSBjOGUxMzUzNWZkYzMxOWFiMjA3MTdhNzViZDM0YjdmNTM4ZjAyZGM1IGxlZ2FjeS10cnVuaworMTU2NzYgNTdlMjk0NTQzNWM5MDA0OWU2NGY2MDgxMTJlN2FmMTE5ZDMyNzNmMSBsZWdhY3ktdHJ1bmsKKzE1Njc3IDAwZjVkMGRmNzBhZDgwZTFkOGU3YmJkZGQ0ODJlMDg2OTIyMzdmNzQgbGVnYWN5LXRydW5rCisxNTY3OCAyYTJjYWFlZTY3OTczYThkYmUxMTlmMmJmOTFmY2RjZGE5NmMzNGFkIGxlZ2FjeS10cnVuaworMTU2NzkgOGEyM2FiMDU3YWY2MTc2Y2UyYmUzN2Q0ODUyYjFkNDc4ZWVmZjYzNSBsZWdhY3ktdHJ1bmsKKzE1NjgwIDMxYzcyNWQ3MGU2NTIxMmQzYjE4NzUzNTM4MWRjNDk3OWM3OWFiOWUgbGVnYWN5LXRydW5rCisxNTY4MSBkZWFmMjVkZjE1ZmUyN2U2NGNiNjUxZGNmMGQwZDUyMzFhMGM1MjVkIGxlZ2FjeS10cnVuaworMTU2ODIgMTJkMGM0NjViMTAzY2ZlOTQwODlkZmMwY2NjZjFhNWJlOWQ4MmY2YSBsZWdhY3ktdHJ1bmsKKzE1NjgzIGE4YWZlZmM0ZmNlZDk5NDdiNmU3OTYwNDUwMDJkZmI3MGM1NGQ1ZWEgbGVnYWN5LXRydW5rCisxNTY4NCAxY2FhZGZiOGNhNzEwYmQ5MWQ4MTQ2ZWNlMjlhNDYzOGE2OGU1M2NkIGxlZ2FjeS10cnVuaworMTU2ODUgMmQwYjk5Nzc4ZWRmMWJhNmNhYmU4NGNlMDU1OTRkN2U2ZGI3NzRlZSBsZWdhY3ktdHJ1bmsKKzE1Njg2IDEyOGU3Yjk5NDUwNTljNjAwYjVhNmNhZTFlNGIwNTFmZTRmOTU0YmEgbGVnYWN5LXRydW5rCisxNTY4NyBkZjY4NjliZWJlMDNjNTdjMzE0OTUwNWYwNmMyZDljOTVmMjczYWYxIGxlZ2FjeS10cnVuaworMTU2ODggMTVkZjNmYTBmZDRkN2RhOGUyMjhmYzBhMTAzN2QwMDY0NDg0Y2QxMSBsZWdhY3ktdHJ1bmsKKzE1Njg5IDU5ZTQ5NGMwODAyZmM5MjU2YTY1YWU2ZDQ2NWY2OTIyNDgwMGNiZGMgbGVnYWN5LXRydW5rCisxNTY5MCAyZWVmNjM2YmExYjYyZjZlMTAwYzYyYzE4MzIyNGFiYjA1MmQ4YWFlIGxlZ2FjeS10cnVuaworMTU2OTEgNjYxODMyNTU3NGNiOTUzZWYyN2U0ZmYxNTM0ZDM2NTQ1NGUyOGRkZSBsZWdhY3ktdHJ1bmsKKzE1NjkyIDBhYTNmODBkYmIyM2FlNTZkNDAyNzc3ZmVhNDgzYmNiZThmYWIzNjUgbGVnYWN5LXRydW5rCisxNTY5MyAxZmE3YzExOWI3YTU2ZjIwYTk4OGQ1YmFjYjhlYmI4NWEzZGRkMjQxIGxlZ2FjeS10cnVuaworMTU2OTQgYjY2MGVjYmVhZWI4ZTMyYWQ4NDM4ZWY2MGMyOGM4ZjY4OTc4NWYwOSBsZWdhY3ktdHJ1bmsKKzE1Njk1IDc1M2Y5MTYzZGYwYmIzZjM3OTMxOTViMmE5Y2E1YmZkODY2YTUzYmEgbGVnYWN5LXRydW5rCisxNTY5NiBhOTgwMDlhNDM5MWU3ODc5MTZmMDZhOGZmMDBmOWJlMGJiMjczNTQ3IGxlZ2FjeS10cnVuaworMTU2OTcgMzQyN2IwZjg1YTdjZTcxYmFiOWNkMmExNjYzYzVhOTcwNDE0NWE3MiBsZWdhY3ktdHJ1bmsKKzE1Njk4IGFiYmNlYjZhMjUzMjRiNWI0NGM1MWJmZDYxYTc1NWVlNzFiNmZkYTEgbGVnYWN5LXRydW5rCisxNTY5OSA3YWI1YjFlZWViZGU5MjgzOTM0ZmE5YmE2NWY0YzgyM2YyYjliOTdkIGxlZ2FjeS10cnVuaworMTU3MDAgODgwMDRmMjVkYzI1YWJiZGIzNTA3Y2UwZjQwZGYxZDY1NjY4MzZiMiBsZWdhY3ktdHJ1bmsKKzE1NzAxIDNmN2EzNTc5OGFjZWExMDliNGU1ZTg0MzcwN2RiZmUxMjVjNGM0YTcgbGVnYWN5LXRydW5rCisxNTcwMiA4Yzk1NTRlZGJlYmJiNDhmNDZkZTY5MTU5M2EyNDIwYjRjNjcwMWQ5IGxlZ2FjeS10cnVuaworMTU3MDMgYTg1MzBkMzYwMjFjNmM4MWU1OTk2NjcyZDcxY2U1NDFkNmVjYmM3MyBsZWdhY3ktdHJ1bmsKKzE1NzA0IDQyOWRkMDIyNzJkNjgwNzkyNmIxYTIzZDJmNzFmZjY3NTdiZGFmOGUgbGVnYWN5LXRydW5rCisxNTcwNSBiMWVjNDliMmM1YzJhOTAzYjNiOTNkZjE3MmMzMzkzYTgyYjQyMzdkIGxlZ2FjeS10cnVuaworMTU3MDYgNWQyZmI2NzQwOGE3Y2M2MzI0Yjg5ZDIxMTY5YWQwNTVlOWYwNzI4NyBsZWdhY3ktdHJ1bmsKKzE1NzA3IDc1NWM5YWM5ZTZhZWJiNWYxNDY4MTMxNzZiNWI4ZmI4NzE5ODg4M2IgbGVnYWN5LXRydW5rCisxNTcwOCA2YjJlY2QxNzIyMDNiNGExMTc3MmNlNWFjOTg2MjI2OWVhOTIzYmI5IGxlZ2FjeS10cnVuaworMTU3MDkgYWNiMDI2MWI2OTQyZjNiZTdiMGJhMzc0ZWRiMWYwMzhiYjkyMzA1OSBsZWdhY3ktdHJ1bmsKKzE1NzEwIDJhNjRmMjI1YTEwNTMxYzI0Yjc1ODI5OWQ5Y2JmMmNlOGQwMDBiNTUgbGVnYWN5LXRydW5rCisxNTcxMSA4OTRlZmVhNzFhY2ZlZTI1ZDcwYmQ0YmU2MWVmMjhiZWM5MGRmY2QxIGxlZ2FjeS10cnVuaworMTU3MTIgN2YwMjJlMjYwYTRkOTMzNzcwOTBhZjM0YTI0MjFmYjA3YTc4ZDVjYyBsZWdhY3ktdHJ1bmsKKzE1NzEzIDUxOTQ5ZGU3NjM2NWIxYjU0MGM5NzQ4YWFiM2YzNGJiNGI5ZjU3YjMgbGVnYWN5LXRydW5rCisxNTcxNCBhM2UxMjg4MWNjM2MyM2UzNzNkMGE4ZTczY2NlZjZjMWM0OThlNTE4IGxlZ2FjeS10cnVuaworMTU3MTUgNDMwOTg1ZDU3ZGEzMTZmNWQzNGM5MWI2MjAyZDEzOWIxZTlkOGI2ZCBsZWdhY3ktdHJ1bmsKKzE1NzE2IGNhYWU3NTAxZGJhNTU2ODUxNTRiOWY4MmUxOWJkNDIyODMzMjI0YTQgbGVnYWN5LXRydW5rCisxNTcxNyBkYzBhMjEyZmIzNTM5MGZkYmRiOTA5YjI3NTY4M2ZiODExNzkwNjQzIGxlZ2FjeS10cnVuaworMTU3MTggOTdkZDZkYzMzNTAzNjdmNGU2MWQ0M2VkOTUxYTdlMTY0NDZmN2Y4ZSBsZWdhY3ktdHJ1bmsKKzE1NzE5IDNjNjY0MWM4MTBkYmEyYjU3NTY0YzljZDBkOGNhOGU2OWY1YmRjZTQgbGVnYWN5LXRydW5rCisxNTcyMCAyNTEzY2Q3NDE0N2M3Mzg5NDFiYjU3NmQ5MDEzNDE4YjI0MDgwMmExIGxlZ2FjeS10cnVuaworMTU3MjEgNDVhYWE3NWYwOGEzNzgwMmZjZDAyODc2NGFhMjg0YTRlZjE2Njg1NiBsZWdhY3ktdHJ1bmsKKzE1NzIyIGViOTExZWNhOWVlOWU4MTljMDAwMjk1MzVjMzE5MDQyNjQzMTM2MjcgbGVnYWN5LXRydW5rCisxNTcyMyBiYWMwNDViODUyNjNmMzU5ZjRkZTYxNDEwNGI1NTVlMzU0YWYxN2Q4IGxlZ2FjeS10cnVuaworMTU3MjQgYWNlMTM3MDFmMzM0ZDg3YmQ5OTI0NjkwYmViYmYzYzU1ZjgzMDAxMyBsZWdhY3ktdHJ1bmsKKzE1NzI1IDkzNjYxZDBlYjVjYzUxZGNhNTY1NTY3YWE0YTFmOTRiMzc1MjE4YTUgbGVnYWN5LXRydW5rCisxNTcyNiAwNGM4OWQ3N2RmZGJmN2Q1NWZkZDU2ZjAyMDQzMDAzNjk1OWI0ZTVmIGxlZ2FjeS10cnVuaworMTU3MjcgNDQ3ZWZiNjRjNzJkZGNiM2FkNTEwOGY1ZDc5NTA3MzUyNTIzNjlhNiBsZWdhY3ktdHJ1bmsKKzE1NzI4IGQxMTVhOTFjYTVmYTdmM2NmYzllNDRlMDQxYmQ4NzQ2N2E0ZTdiYzUgbGVnYWN5LXRydW5rCisxNTcyOSBmMzFmZmIzN2Q3MmNmNzMzNjQ4YmYwYzMwMzE0ZGJhYzE2NTM1ZWNhIGxlZ2FjeS10cnVuaworMTU3MzAgZTZiNDA3YmE0NzE1M2VjYjZmNDllN2M3ZTcxNzNhNzMxNDVhM2ZhMyBsZWdhY3ktdHJ1bmsKKzE1NzMxIDYzNDM2NzE5ZDEyZTAyYmQ5M2QwZGExOGYyY2E5ZDY2OGUwMTkzYzggbGVnYWN5LXRydW5rCisxNTczMiBiYzBkNDk2ODBhYTNkZjZhYWM4YjRkMDQwMTkwMWUyZGNjMTY5OTJlIGxlZ2FjeS10cnVuaworMTU3MzMgZmM3N2UzNGVmMjc0M2Y4Mjk1N2JkYjAyMjcyMmMxZWZiZjM2MDZkZSBsZWdhY3ktdHJ1bmsKKzE1NzM0IDBiNDIyNjRhYzAyMTU0NGJhZjZlNDg5NzcwZDVlYTAxNjA2Y2M2YWIgbGVnYWN5LXRydW5rCisxNTczNSBlNzk5MmQwZDY4MDgyOGNjMjZkNmEwMDA3ZWYxYWU0NThjN2VkZGFiIGxlZ2FjeS10cnVuaworMTU3MzYgZGY2MjdlNjE5MTZlMjBhMTA0ZTFjOTkwZjVmNzkyMjI0OWIzMWU0ZCBsZWdhY3ktdHJ1bmsKKzE1NzM3IGY3OTNjNDdjNTEwZTEzNjczMzRiNjdlMDRjZTBhYjUwYzkxMzljYTQgbGVnYWN5LXRydW5rCisxNTczOCBkYmIxMDNlOWE1NmY1MTNkODBkZjlhZmFjM2JmYTkwMjIwMTYwNjZkIGxlZ2FjeS10cnVuaworMTU3MzkgNzdjNjUxMTMxOTg0YjJlZWIzNzcyNzIxZjJjMGUwNzU4ZGM3MzY2MyBsZWdhY3ktdHJ1bmsKKzE1NzQwIDQwMDM4MjE5MDM2NDk3YzQ0NjU5YWM5ZWIxOGUzNTI3OTM4ZTM4ZGYgbGVnYWN5LXRydW5rCisxNTc0MSBkZmE4ZDlmMWMxMjMxOGU5OGMyY2Q0MjIwMzA4ZmVmYmUxNjk3MjczIGxlZ2FjeS10cnVuaworMTU3NDIgOTU2OWM1NjI1NzY1N2UwNjFlZmZmOGQ2MTVlNWUzOGVhZDA0ZmIxYiBsZWdhY3ktdHJ1bmsKKzE1NzQzIDg5NjAyZjMzMjQ0N2I0ZWYzMmMxYjg4YTdkNjg5MzA0ZjNjZjY2YTUgbGVnYWN5LXRydW5rCisxNTc0NCBiNTQ0Mjk5ZTY4YzVmYTc0ZmE0NTdjZGFiYTE1M2QwOWU5ZDU0NWUzIGxlZ2FjeS10cnVuaworMTU3NDUgNTM2YzYzMTI5OTMyOWIyYmMyMjg1NWMwZThiOTAyY2M2MmY2ZmU4YiBsZWdhY3ktdHJ1bmsKKzE1NzQ2IDU1ZTJmYzRkMzQwZTQ4Mjk5N2U0MGYwYzNlYWUwN2IwMzJkNjU2ZjQgbGVnYWN5LXRydW5rCisxNTc0NyA1Mjc5YTZlMDBkMzY3YjAwZjU0YWY0ZTA3OWVmOWNkZTU1NGUyZmZlIGxlZ2FjeS10cnVuaworMTU3NDggNjU4YzU1YzA4MTM5Y2NmNmIzOTM4OTIxMmRkYTc3ZjAyNTMwYWRiYyBsZWdhY3ktdHJ1bmsKKzE1NzQ5IDBlYjUzMWNlMDhkMThiY2E3ZThmZmMwZTk0NGZiZWY0MmIzNTdkMWQgbGVnYWN5LXRydW5rCisxNTc1MCAyNzJkYjQ2MDViZTQ3YWZhNDZlYTJjODk1ODM3OTc3Mzk0ODFlZGU2IGxlZ2FjeS10cnVuaworMTU3NTEgZTYxNTU5NmM1YzQ3YzAwMTg0MjA3MmNlZmU2MjJlOTk2ZGI5YzRkNyBsZWdhY3ktdHJ1bmsKKzE1NzUyIDFhNDBmMDBhNDhiZjY0OWEwYmZjNjNiNWRjZjJjOWUzOTY1YmNmMzEgbGVnYWN5LXRydW5rCisxNTc1MyAzZjk5MGVmNjY2Njc5ZDdlZWJhMzZlYzZlNzg0MjliNDJmYTY0YzhhIGxlZ2FjeS10cnVuaworMTU3NTQgOGY3OWM1YjY5ZTBhZGEzYzdjMDUzNjRhYTgxYjIzMmEyOGE4ODNmMiBsZWdhY3ktdHJ1bmsKKzE1NzU1IDAxY2U4OWZjNzQ1ZmUxYWVkZTdkNjkyYWYxMTA0NjI2YmI1MzkxOGQgbGVnYWN5LXRydW5rCisxNTc1NiBjOTEwYjlkOWEwYzBlODVlMGMyMWZkMzY5OGFkNDljNGZkYWY0Zjk1IGxlZ2FjeS10cnVuaworMTU3NTcgYzc1NzE4ZmJkODYyNmU4YmVlZWM2NGM4N2FiMjQ3NDQ1ODEwODQyOSBsZWdhY3ktdHJ1bmsKKzE1NzU4IDI3ZjNhMThmZDI5NjU3YjY1ZTIwMzYyNTFlYzc3YzZlMWYyYjVhYTAgbGVnYWN5LXRydW5rCisxNTc1OSA4NmQ0OTg5NDY4NjhjZjVhNjcyMDZiMmYyZTkyZmMzOTAxZjQ2ZmVkIGxlZ2FjeS10cnVuaworMTU3NjAgNzE2MGI1MmNhNzRhMDZiMWIwMDNlNTJhNmI1MDQ2MjQ1OTBiZTg1YSBsZWdhY3ktdHJ1bmsKKzE1NzYxIGJjMTQ3ZTE4OWI3ZjliNDc5MDNlYmFiYmViNmNkYWI5NjVmYzQzYTQgbGVnYWN5LXRydW5rCisxNTc2MiA3Y2QxNTJlMTUzOWM1Y2JjNjlhODgwOTA3NmY1MjZhOTZiZDBjMjBjIGxlZ2FjeS10cnVuaworMTU3NjMgNWYzNjI2ZmU1OGNhOGVkMmExMDljY2UwNjQ0MjA5NmVjNDM1YmYyOCBsZWdhY3ktdHJ1bmsKKzE1NzY0IDU3NzA3ZGJjYzI0NWM4MTE2YmEyNWMwZGM4N2Q0N2ExNTk5Y2Q4ZDQgbGVnYWN5LXRydW5rCisxNTc2NSAzN2JhNzA1NmQ0YWJmYjZkZjBmNjUyNzcwMjdjYjg4NDMzZDM0NzAwIGxlZ2FjeS10cnVuaworMTU3NjYgODIxODFlODIwZGUzYzg4OGNjYmQ4N2NlY2FiMTQ4ODJhNGMyNjYwZiBsZWdhY3ktdHJ1bmsKKzE1NzY3IDg3MDAzODQyZmFlY2E2ZWZjMjliYWIyMzYwMjkyN2E5YzgxODE1OTYgbGVnYWN5LXRydW5rCisxNTc2OCA1ZDhlZjIyYWRjYTUxNDY4MzM3MTBjMWM0ZjM0NzkyMmVlNGQ2YmI5IGxlZ2FjeS10cnVuaworMTU3NjkgNmUxODYxZTBlZDY4NzZiYmY3MDI3ZWViOWRkOTBmOWZjMmM0ZDU5ZSBsZWdhY3ktdHJ1bmsKKzE1NzcwIDdiMzg2NzhiMzY1MjY1ZTJiYjhlODU2OGMxZTBiZTMwYTRiMjRhNzYgbGVnYWN5LXRydW5rCisxNTc3MSBmYmFjZjZkNTVkYzY5MzgzMzYwNjIxOGQxYTI5ZjgwNDg1M2FiZjYzIGxlZ2FjeS10cnVuaworMTU3NzIgMzc0MDFlYzJlOTEwYjBjYmJlZDdjODZkNDQ3ODA0OGYyN2RhYzBhZSBsZWdhY3ktdHJ1bmsKKzE1NzczIDkwNzZlZmFjODQyMGI3NjA4MDYxNWRhODYwYjQ4OTk5ZWJjYjg5ZWUgbGVnYWN5LXRydW5rCisxNTc3NCBkYWRiMGNjNWMyZDI4NWVkZWQ5ODJiYzk4ZDUxOWNiZDI0NTIxZTBkIGxlZ2FjeS10cnVuaworMTU3NzUgNGYxM2MyYjgzMjBiYzNhYTI5MDk1YTY5ZjAwMWYwN2UxOWI1YjVlZiBsZWdhY3ktdHJ1bmsKKzE1Nzc2IGFmZmUxMGMzYjkyZWNlMjMwY2JiYzEwYzBkYmU2MDNkNzRhOTkyZTIgbGVnYWN5LXRydW5rCisxNTc3NyA3YTI5MjU4YzU1ZGRhZGZmZTNmNjNmOGExNDlhOTdhOGQxNTFkYWI2IGxlZ2FjeS10cnVuaworMTU3NzggMzgzZjQwNGI3NmQ3ZmIxNjJiMjcwOWY4YjRmZWVhZWNjMjliM2QxMCBsZWdhY3ktdHJ1bmsKKzE1Nzc5IDJlMmVlMTE3ZDQwZmQ2YjE0NDExY2Q1MGQ2YTIwMDRkN2M4Y2QzNDMgbGVnYWN5LXRydW5rCisxNTc4MCA0YTNlOTg3MWI0MWJiYTBiNTVkOGUyOWE2NmJjMjI4OWJkMWNjMjdmIGxlZ2FjeS10cnVuaworMTU3ODEgMWRhYzg5YmJiY2QyMTczM2Q2ZjEzMmYyZmM1ZjFhYjM1YjA4NzA2YyBsZWdhY3ktdHJ1bmsKKzE1NzgyIDMwYTRlMTM5NTIxMTAzNWJiZmZmMGVjMWM0ZWU3ZDY2NTNhOTllN2YgbGVnYWN5LXRydW5rCisxNTc4MyA4N2VjZTEyN2NiYTJkNjllYmE5MWZiODFmZjI1NmJkZjdmYTIxYTEwIGxlZ2FjeS10cnVuaworMTU3ODQgNDEwMmY3ZWRlOGU5OTljZTEwMWFlYTc5NDA4NTNlZGVkMDU3MzU5MiBsZWdhY3ktdHJ1bmsKKzE1Nzg1IDIzZThhYTQ4NWE3MGQ1NmUyZTE1OGMxY2Q3YTExZWMyMDE2MDIxNzUgbGVnYWN5LXRydW5rCisxNTc4NiA1ODY2MWE1NTdkYzY5MzRkZDRlYmQ0NTE0MzZiZjRmZDk0NGU4YTM1IGxlZ2FjeS10cnVuaworMTU3ODcgY2E5NmQ4Y2UxMmYzZGRlMjdmMjkyMTdjZDk1Yzc2YTAxMzI3NDg4MSBsZWdhY3ktdHJ1bmsKKzE1Nzg4IGJmMmVlODU2NzIwMTU0OGY5NDkzZDg2ZTQ3MDljYWEzM2I5ZDVkMjYgbGVnYWN5LXRydW5rCisxNTc4OSA5NzQ4MWQ3YWM1NDhhZDRjYThjZmFhYWNjYzBhOTJmNDI0MWVjYzAxIGxlZ2FjeS10cnVuaworMTU3OTAgNzBiMTZkYzYxMzdmMjQ5MDBkYTQ1NTFmYTVmN2EyNmNiNTJiYWRjYiBsZWdhY3ktdHJ1bmsKKzE1NzkxIDVkZjAzNDgyNjczNTJhZGQzM2UzYTdlZTk4ZWIyN2FjM2NlODlmZTIgbGVnYWN5LXRydW5rCisxNTc5MiAwMGE5ODExOTRjYTY5ZmYwZjRmYTk5Yjc3ODIyOGQ0MjRiYTVmZjhhIGxlZ2FjeS10cnVuaworMTU3OTMgMTI0MGJjOTk3YzhmYjg2OTQzODA5NWUyNjYxOGNkNzI0YWUwZDQwMSBsZWdhY3ktdHJ1bmsKKzE1Nzk0IGY3YWQ3ZTc5MTVlOTlmNTczYjQ5MDlmZmFhNGJkYzkyNDUyY2I2ZjYgbGVnYWN5LXRydW5rCisxNTc5NSBmMWU0MGFiYmVkYjNlMzFiNTY5MDA5ZmNiNjM0NDBjMTQ3YjhkZGIzIGxlZ2FjeS10cnVuaworMTU3OTYgMWY2MWVmNjQ1M2Q1NGYxMDQ4N2M3MjE0YzQ1ODkyYTk0ZTM2MWVkYyBsZWdhY3ktdHJ1bmsKKzE1Nzk3IGMwOWE1NzBlYjZlYjVmZjc0MGFjMGQxMjViYjIzMDExOTcxZjc1ZDUgbGVnYWN5LXRydW5rCisxNTc5OCAzNjAzMjBkMmZlOTQ0ZDY0ODgwZGE4MWFjODI0ZDNjM2VmZGYyYjhkIGxlZ2FjeS10cnVuaworMTU3OTkgZWFhNGM2ZmFmM2M0YjIzYmU5YWEyNjc4YmEzMjQyYTY0M2I4YWFhNyBsZWdhY3ktdHJ1bmsKKzE1ODAwIDFjOGMxMDFmMmJlMWUzMGRkYTVhNzUxMmU1OTRkZDlhYTZjMzhkZGEgbGVnYWN5LXRydW5rCisxNTgwMSAxMmFjMmMyNjdiOTMyZTVjMzY4ZDJhYjI0YzEwYTZjNDgyMGNjOTk5IGxlZ2FjeS10cnVuaworMTU4MDIgODRjMmE0ZDJkZjlmNGZmMDdlY2EzOGVlOTE0MTNiZGViNmY1YTljNCBsZWdhY3ktdHJ1bmsKKzE1ODAzIDFmMjQ0MTk3OGFiMTQwMDYzNmUwZmY0MGNhZTczOTgxNGVkYTA2ODEgbGVnYWN5LXRydW5rCisxNTgwNCA3ZGY3NDUyZDEzY2Q0MzM5MjQzNTIxYzM4M2JiMmViZWEzYWI2MWViIGxlZ2FjeS10cnVuaworMTU4MDUgMGQzMDlmN2YwMjNmYzRhZWM4YmFiMzkxNGQxYTM4ZGI0YzcxYTQ0NCBsZWdhY3ktdHJ1bmsKKzE1ODA2IDcyMDU4ZGM3ZDU0NWI3N2UxZDE3ZjY3NjViNGIxMDYxNTZmNzg3YjMgbGVnYWN5LXRydW5rCisxNTgwNyAwMWQxZTEwMTg0OTUwZjJhNDM4MWU3NTZlMGZmYjEyYTUzZWQ2ZDhlIGxlZ2FjeS10cnVuaworMTU4MDggZjczNDU4YzVjMzVkMDFkZDkxYzc3OTQ1YmNiOTQ4YzM3NzZmNjVlMyBsZWdhY3ktdHJ1bmsKKzE1ODA5IDcwMDk4NDEwOWNiOTlmZWJlOGJhYWMyOGRkNmU4MDU3MTU2MjU4MjYgbGVnYWN5LXRydW5rCisxNTgxMCAwYmU0YjdiNjUwZTMzZGRhMDgyODlkN2Y2ZWFiZDJjNTQ0NzQ3YWRhIGxlZ2FjeS10cnVuaworMTU4MTEgYTE5NTk2MmUzODljYjJhM2NhMTI2ZDVkZjBjN2YzNDkzY2Q3NWUxNyBsZWdhY3ktdHJ1bmsKKzE1ODEyIGYxMzM4NDEwNTUyODljN2JjNmZjYmY1NWU0ZjhkMDQ3NjIzZTEzMGMgbGVnYWN5LXRydW5rCisxNTgxMyA0ZGJlMTMwMjdjYjMxOWNlMWM4OTUzODNjZDc5MDE5OWUxYWU2MWVhIGxlZ2FjeS10cnVuaworMTU4MTQgYjAwNzQ0MjM3ODc3MGRmZWY3OGM3ZDBjNmM3NDhmY2VjZDg3ZTliMCBsZWdhY3ktdHJ1bmsKKzE1ODE1IDI3N2JhODI2Y2ZjOTdmZmVkMmZhMjVkZWNjMDA3OTdjN2YxZTcyMTIgbGVnYWN5LXRydW5rCisxNTgxNiBjYjgxMDllNzI4NzcxY2Y3NWUxNzJkMTZlYjIyYjQ3OWZjMzNhNThlIGxlZ2FjeS10cnVuaworMTU4MTcgOGEwNzQwMmUyM2RlYWZjNGVlY2EwODU1NDlkNmM1YWVhOTY5NTUyOCBsZWdhY3ktdHJ1bmsKKzE1ODE4IDJiMjFjYzFiYjU2NDkxMmFiOTY0Yjc1MmQxOWFiYTBhYTc2M2I3MDAgbGVnYWN5LXRydW5rCisxNTgxOSA1M2Y0MDIyYzBjZDU4N2M5N2FkNDdhMTU4MDNhNzMxYjY2NTMyZTE3IGxlZ2FjeS10cnVuaworMTU4MjAgZjQwMjA1NzU2MWIzYTFjNmM0NTcwZmMyNzY5YTQyYjY5MjZkZWQ5NCBsZWdhY3ktdHJ1bmsKKzE1ODIxIDRiNDgyMWJmNTNkY2YzMWIwZTdiZDdjMzRjNWJiODQzNmJlZTE2OTMgbGVnYWN5LXRydW5rCisxNTgyMiA5YjJlNzBiNTVjN2YxNWYzNGU3MDBiNGYzNjdjMTgxNzE4MzcxMjMzIGxlZ2FjeS10cnVuaworMTU4MjMgY2JkYjA1NWU3OWQ5MjUwMjQ3MmQ2YzAyMTgyZTk3YzYxOWNkMzg5NCBsZWdhY3ktdHJ1bmsKKzE1ODI0IGViMjQzNDQzYjg4NDBlODJmYWI3ZDMyMzgwYzQ3MzcxYWYyYjBjY2MgbGVnYWN5LXRydW5rCisxNTgyNSBiZDhkYjcxNDIyZjYwODlmNmJmMDYxMGMyZDIyMTM5ZDI4MTgxNDMxIGxlZ2FjeS10cnVuaworMTU4MjYgN2IyNGM4MThlMmNmMmQzMTk3YzlkM2Y5OGFlODBiZDdkZTM2NDY0YyBsZWdhY3ktdHJ1bmsKKzE1ODI3IDViYWJjMGFkZDY0ZjI3OWJmZjJmMDM2YWM3NDJhNTFjMzgxYjRkYjQgbGVnYWN5LXRydW5rCisxNTgyOCBhNjc5YmRiNDNmYWRjOTFlZDRlMmQ3NTkxOTgxMmMxNWRhYjgyZDEwIGxlZ2FjeS10cnVuaworMTU4MjkgNzA1MTMyNjY3ZjdiYTJjZDdiYzcyMzg3MjIzYmM2ODQxNDY4YzU4YiBsZWdhY3ktdHJ1bmsKKzE1ODMwIGI3NmRmNjgwOTlhNWY3OTYzMWJmNmQ4ZGVmYTFjNWIwZjRmMTZhOWQgbGVnYWN5LXRydW5rCisxNTgzMSA3MzkyZTcxZjZjY2UwMjcyYmE3MTM5MzFiZDkwMTM2NWY0OTliMDg1IGxlZ2FjeS10cnVuaworMTU4MzIgYzg3OGRjNjNkN2FlZmFiY2FmYTY2ZTVhODQwNTgyYTQ5YzcxODhmMyBsZWdhY3ktdHJ1bmsKKzE1ODMzIDZhYjhlMWJiMTY3Y2QzMzcyZjhkNWVlY2JlOWU2YWM1MGE3ZDJiMjIgbGVnYWN5LXRydW5rCisxNTgzNCBlZjNkNDk4YWEzM2MyZWU0NzIyNmYwZDk3MzM3MTBjNmFjNTI3NjEwIGxlZ2FjeS10cnVuaworMTU4MzUgNGZmM2NlM2YzY2M2MjFlNGM1OTJiMzZiNWZiOTZmNzNkYTUxNDMyZCBsZWdhY3ktdHJ1bmsKKzE1ODM2IDJjZjk4NzRiNjIxMTRmZmU4NDQ3NjM1YzI1Njk3NjFjNWY0NGE5YmYgbGVnYWN5LXRydW5rCisxNTgzNyA1YTcwODM2OTA4ODRiN2NjMTUxNDAwODQ3NGIyYjc2ZDQ4MDE0ZmUwIGxlZ2FjeS10cnVuaworMTU4MzggMDNiMWNjNDdhODZkMDE0MjI3MzM2M2UxNDA5Mjg0ZmZhNGI0Zjc0ZSBsZWdhY3ktdHJ1bmsKKzE1ODM5IDFkMDQwNzk2MDk1M2E2ZDgwMzI0YWUzNmI5OWUyMzEwYzk5YzkxODggbGVnYWN5LXRydW5rCisxNTg0MCAxODUwMDNkMDllNzY2YzgzYjJiZjYxMmJiZDE1OTc3YzMwZmE4ZWZhIGxlZ2FjeS10cnVuaworMTU4NDEgODdiNDY2YjcwMmQ2MDgzZGJmYjQ3OTgyNGJjOTk3NDVmOGQ4ODU2YiBsZWdhY3ktdHJ1bmsKKzE1ODQyIDBhY2VjMjExYTIwOTBmYzg4NDMxYTMwMGNhNTc4ZTc5YTE4MDdlOWIgbGVnYWN5LXRydW5rCisxNTg0MyA2YjJjNjk2M2M0MGI2OGYxMWU4YjMyZGMwNTc4NGNkNTNkN2I3ODljIGxlZ2FjeS10cnVuaworMTU4NDQgZTBjOTAzMTEyZTRlZDRmNGNhMDg3MDMxYjE1YWNlMjAxMTA5YTIxYSBsZWdhY3ktdHJ1bmsKKzE1ODQ1IDA4MTc0YmYyMzcwMmZjMDg3NDhjZTExYjlmMTQ5YWVkOTkzNGI5ZmYgbGVnYWN5LXRydW5rCisxNTg0NiA5MjQ2OGQ0M2EyM2YwMzQ4NjRlMmIzMzc1ODdkODYyMDMzYjYyYTJkIGxlZ2FjeS10cnVuaworMTU4NDcgZGU0ZTMwOTYyZmFiYTAwNjU5ODlmZTU0NzQ0MTY5ZTY0MGViNjhhNyBsZWdhY3ktdHJ1bmsKKzE1ODQ4IDBmMjE2YTU0ZDM0YjQ5MDNlM2VlNGJjYTQzMDQ5ODhhZmE2MDA0ZmQgbGVnYWN5LXRydW5rCisxNTg0OSBhODgzNDg4YjlkY2JmMjhhY2UyNzUwYThmMTIwYTZhM2ExYTdhMGQzIGxlZ2FjeS10cnVuaworMTU4NTAgYmYxZWJlODY5ODc4MWNmNjU4MDIzYWZmY2I1Y2UyMzI5MmRkODY3OCBsZWdhY3ktdHJ1bmsKKzE1ODUxIGQwNjAxMjk2N2VhYTIyZWM4MmY5M2RjMzEyYmE1NTZmZDZjZGZkM2YgbGVnYWN5LXRydW5rCisxNTg1MiBiOWFiM2IyYWNjOGNlNDBmNzA2ZmVkMWE4YzE2ODA1ODIzZjUyOGQ1IGxlZ2FjeS10cnVuaworMTU4NTMgNTUyZmI0M2FlODIzNzc2NGRiYzI5MmVhZWMzNDg2Mjc1OGQxNmFmYiBsZWdhY3ktdHJ1bmsKKzE1ODU0IGNiZTAyYjhhZWUwNzg5MGZmODc0OWI4NTEyMGNlOGVjN2Q1YTk1ZDcgbGVnYWN5LXRydW5rCisxNTg1NSAwN2E0ZDE2MzdlMDZkZjkzYjAwODY0OTUxZTc3Yjg1NTBiZjhlZGI4IGxlZ2FjeS10cnVuaworMTU4NTYgMjIzMDllOTU3ZmE3M2VlMmQ3NTkxNDJhNWQwZDk0NTQ3MzhjNTdmMiBsZWdhY3ktdHJ1bmsKKzE1ODU3IDhjOGRlNWI3MzZkYzIxZjBlNGQ0MjYwMmY0N2UyZTRhMWYxOWNkNWEgbGVnYWN5LXRydW5rCisxNTg1OCBkODQ5YTBkMjI5MjdhZDM2MjUzY2MxMDZmMjA2YjkxZTZmZWIyMTVhIGxlZ2FjeS10cnVuaworMTU4NTkgN2JlNTQ4MjQyNmQxZWZjNjIxYmViMzEyNjVhY2Q2MmE4NzE4YWQ2MyBsZWdhY3ktdHJ1bmsKKzE1ODYwIDk5Y2VlMGM4N2Y2YTA0ZjA5MWM0YzAzOGMxZjE3NDU1MTk3MjA0NGIgbGVnYWN5LXRydW5rCisxNTg2MSAzNjU4NDRlNzU1ODY2OTM5OWVkMDgxZmI2ZmYzYWMzMTBkMmZhN2E4IGxlZ2FjeS10cnVuaworMTU4NjIgM2NlYTczYTJiYmQ4YzEyNjY3MDQyZTI4NjI0ODA5NjI4OTMxMmQzNyBsZWdhY3ktdHJ1bmsKKzE1ODYzIDQ1OWQxOTdhZGIwOGZjNjdkOTIwMjgzMzk2ZTQ4NmViNmNhM2Y5MmYgbGVnYWN5LXRydW5rCisxNTg2NCBlODM5ZThlOGQzZTljMGExMDZkMGZmM2YwYzgwNmU3OThiMTk0NWU0IGxlZ2FjeS10cnVuaworMTU4NjUgNzk3YWNmM2ZmZDI2NjU3MzFjMThjMTg5MzY1MGMxZDcxZmYyOTc1YSBsZWdhY3ktdHJ1bmsKKzE1ODY2IGZkODQ2N2QxMzc1ZDIwNGE1OThkZmQ0OTZjNGE5MjM2ZGZlYmFhYTQgbGVnYWN5LXRydW5rCisxNTg2NyBhNjcyNWFjZGYzM2IxYjk4ZjQwYTkzMjYwNjVlMzBhZmU3NzdkNzhlIGxlZ2FjeS10cnVuaworMTU4NjggZjYxYjRhOThiOTcyOTJjZDZkOTczNzUwY2U2ZTcxOWZjYWJjY2JjZiBsZWdhY3ktdHJ1bmsKKzE1ODY5IDY4ZTU3YzVkMWJlYzA3Mjg3N2JlMzJiMGVjNTEyNTlkNWQzOTczOTUgbGVnYWN5LXRydW5rCisxNTg3MCBjM2EwMWI2NDJjOTcxODlhZGE0MzJmMGUzZTZmYzBmNGI1YTc3Y2NlIGxlZ2FjeS10cnVuaworMTU4NzEgMzQ2ZjJhMWMwMmEwYTM0YTM3MGRhY2RlNTBjZjQ3MGYzYWU1Yzc0NiBsZWdhY3ktdHJ1bmsKKzE1ODcyIDUyZDVmYjQ3MWUxNzIwZjA1ZjFlYzE3MGY1NTk1MTVjMjExYWZkN2QgbGVnYWN5LXRydW5rCisxNTg3MyBmOGJjN2Y2MmRjMjNhZmRjZTYwOWQ3N2Q0YzM0YjdlYTRlZDZjZmEyIGxlZ2FjeS10cnVuaworMTU4NzQgNWJkMTI3MzNhNjRhYzQ4YjIzYmEwZmZkNDQwYjA3ZjY5MDZmNjBhMiBsZWdhY3ktdHJ1bmsKKzE1ODc1IDkwZWI1ODIyNGU0MzE3MjM3ZjJlY2MwOWJmMjRlMTRjNWU4MDBiY2UgbGVnYWN5LXRydW5rCisxNTg3NiA4MTkzZTA0NTc4N2JmZjA4MTZlMjQ0NmRhM2RhMjU2YzVhMWEyMTcwIGxlZ2FjeS10cnVuaworMTU4NzcgODk0NjEzYjRlYjA3NWE4NTBmZTI1MzUwN2RiNjNlMDJhZWEyNzczNSBsZWdhY3ktdHJ1bmsKKzE1ODc4IDI2ZWMxYjMwZWZhOTNmZGY1ZDRiMzNlOGIwNjNmNDViMWM5NjhmZWYgbGVnYWN5LXRydW5rCisxNTg3OSA3ZmY0MGRhMDhjMmE2NDY1MGVlMzI3MjhjZTJlMDBjZTRhY2Q3ZmJhIGxlZ2FjeS10cnVuaworMTU4ODAgZmQxMmNkOTk2MTU0NDQ0ZmJjMTE4MDQwYTM4YWZkYmUzYmFlNTllNSBsZWdhY3ktdHJ1bmsKKzE1ODgxIDg5NmIzNTlkMWM3ZDZkMjQyMWUzOWZlNDRhNTNiNzdiZjE5NDNiNDMgbGVnYWN5LXRydW5rCisxNTg4MiBmYWVmZmY0M2U1OGE5OWIyZTUzMzlhNTYzNDMzOGM2N2IzYTBkODkzIGxlZ2FjeS10cnVuaworMTU4ODMgNTNkMDBlN2M1ODQ4NDM2N2IwYmMzMWNmMDE0NzAyY2E5NzNhYTJkNyBsZWdhY3ktdHJ1bmsKKzE1ODg0IDQ2MjE3NTgyN2E3NGVlYmY5MDgwNzYzMTdjNmMwZmFiOTNlOWQ2ZTYgbGVnYWN5LXRydW5rCisxNTg4NSA1MDIxZGI2NzQwMTkzMWY2Y2U0OWMzODBmZTA1NWNlNGZmOTBmODAxIGxlZ2FjeS10cnVuaworMTU4ODYgNDI1NThmMWJiZmM0ZGM3MTkzNWE1YTgyY2ZiOGVjOWY3YjI3NmFkMSBsZWdhY3ktdHJ1bmsKKzE1ODg3IDc4YWQ0ZjY0YWRjNWY0MTgyNWVlZGIxYWM2NGFmY2Y5MzdjY2FhYmUgbGVnYWN5LXRydW5rCisxNTg4OCAwNzA0MGQ1NjFmMDkxMjQzOGY5MDc1NzNjMmQ0YTg1OGIyMTk5ODA3IGxlZ2FjeS10cnVuaworMTU4ODkgY2I5MjhkOTI2ZjI3M2RiOTE0Yjc4ZDQ5NGFhZWRjNmM2YjE1YzRmZCBsZWdhY3ktdHJ1bmsKKzE1ODkwIGUwNDJjNGMzODYwNTZhODQzNWE4MmI1NzkxYTJkNjE2ZTE3ZTRhNGIgbGVnYWN5LXRydW5rCisxNTg5MSA3YTc4NzE1MzU3MjcxZTdmN2Y4MjU5NWNmZDE1OGJhMTFlMDkxODM0IGxlZ2FjeS10cnVuaworMTU4OTIgMDVjYzQ1ZDU3YTdmYTE2MGIzYmJlYTA3ODAxNmE0NmU3YjVlOGRjMiBsZWdhY3ktdHJ1bmsKKzE1ODkzIGVhY2E5ZTI1YTA0ODk2MDdkZDUxYTFiMjVhMTdkOGRhZmYyYjdjODIgbGVnYWN5LXRydW5rCisxNTg5NCAxNTY1MTQ5MGFmMzQyZjA2MjU0NDhiMjNiMzdjZmFkNzg1N2E0MzEwIGxlZ2FjeS10cnVuaworMTU4OTUgZjgyNjUyNTRkOGE5ZmNjNTcxODc5MjE0MWJiYzg2YWJhYzhhNzEzOCBsZWdhY3ktdHJ1bmsKKzE1ODk2IGIzMWZmZjU5NjIyYTNkZjM3Y2JjNmQ4ZDEyYTMyZThjNzk5ODEzYTIgbGVnYWN5LXRydW5rCisxNTg5NyBiNmVkOGZhMjY3NWM3N2Q0MWIyY2UxNjEyMjRjNmY4NjdkYWJlN2VhIGxlZ2FjeS10cnVuaworMTU4OTggNzJlM2NkYjMyYTZjNjE0NDdhNjFkZjU2M2UzYzVmMzdmNmZhMzNjYiBsZWdhY3ktdHJ1bmsKKzE1ODk5IDQwNDE1NjA5MmY3ODFiODk3ZjRhZjY1OWNjOWIxMGU0NGVmNWQ0YzMgbGVnYWN5LXRydW5rCisxNTkwMCBjMjIwN2Q2YzAzYTgxOGVmNTNmNTViZDkxYzYxY2EwMDQxMmNjZDQ2IGxlZ2FjeS10cnVuaworMTU5MDEgN2M2YjEyY2VjZWYyNmUzMzhlOWJlMTY5MjZhZjVhMmYyNjUzOTJhZCBsZWdhY3ktdHJ1bmsKKzE1OTAyIGNjYTg0NzQ1ZGEzZTAwY2JmODNhNGY2Y2U0ZGViYjVjM2I0OGIxYTQgbGVnYWN5LXRydW5rCisxNTkwMyBmODZlYTVhNjljNWVhZGI4MDQwZmMxOGY2N2Y1Mjk4NDA4ODJjMzc4IGxlZ2FjeS10cnVuaworMTU5MDQgZjVmMGYwMGY5MjJhMzZhYWFjOGZhMDY5MmJmZjc4ZjJjN2ViMjY2YSBsZWdhY3ktdHJ1bmsKKzE1OTA1IGZmYTRiNGI0MzcwMzFkMzRmMDEwMGFlZmI2M2UzZGZiZGExYWRjNmUgbGVnYWN5LXRydW5rCisxNTkwNiAwYTE0NjNiYTI5MzQ4N2Q2ZWE1NmMwOGIxYjliNjliNjllNzNjZjE3IGxlZ2FjeS10cnVuaworMTU5MDcgNzk1YjMyN2E5NWZlYmRhYmJmYzliZGRhYzAyMDFhOTEzYWRhYmFmOCBsZWdhY3ktdHJ1bmsKKzE1OTA4IDJmM2U0MTg2NWQzZDNiZmJiYzNmOWFiMmY5MDFlMjY2MTBhZDkzZmMgbGVnYWN5LXRydW5rCisxNTkwOSA2MDdlNTI4NDFkZjI3OGZjZTJhNDEwNzk0MWVmMjFiNTY0ZWQ0NGY1IGxlZ2FjeS10cnVuaworMTU5MTAgNjdlNzc0NjYxOWRhN2VkN2NiNzVjYWI2MDJjOTRhYTczZDI1YTgzMiBsZWdhY3ktdHJ1bmsKKzE1OTExIGYxZjRkODIyZTc2MWU3YWNlYTlmY2QyNDUyNTY1MDliNzkxY2NiMjAgbGVnYWN5LXRydW5rCisxNTkxMiAzZjgwNzNjNjMwMzNjMTYzYTc5NDBlNjNiNzk3NWY3MjJkNjIzZGIxIGxlZ2FjeS10cnVuaworMTU5MTMgMmI3MmFhYmE3ODk1MTExNTY0ZWE3M2FiMWEwZDhkZTYxYWYyMzZkZSBsZWdhY3ktdHJ1bmsKKzE1OTE0IDMyODE2Y2U2MGE0OWIwOWFkZTk3NTkxNzI5ZTI4MDMzMTZmZmMzNzIgbGVnYWN5LXRydW5rCisxNTkxNSAzNTdiNzFjNjkzM2I4NTEzZDI1YmY5MWVmOTRhNzUzMDQ2ZmMzOGY3IGxlZ2FjeS10cnVuaworMTU5MTYgOTkxOWQ2NWVkYzc2Y2FmZmJkNmZjMjgwMDBiNjhiZjI3ZmUxMGVjYSBsZWdhY3ktdHJ1bmsKKzE1OTE3IGMzMzlhYzdiNmQ0ZjFlMTEyYjhiZmZlNjFmN2M1MmZiNGY5ODFlNjUgbGVnYWN5LXRydW5rCisxNTkxOCBmYTNkYzIxZDBlMDg4MGU1YzQyZDBkOTYyODQxODQ4NjIxOTYyY2ZjIGxlZ2FjeS10cnVuaworMTU5MTkgMWE0MmE5ZDEwMzU3ZTE0NmFmYWRkZTdiNDIxMGE2NzBjODA3ZTExMCBsZWdhY3ktdHJ1bmsKKzE1OTIwIDUzMzU1ZWQ2MTI4ODkyODE4N2M4NWNiN2U2MWM3NGYyYzJjYzBjNTUgbGVnYWN5LXRydW5rCisxNTkyMSAxMzllYWYyZjk2YWI2NzIxZTMyYTE4YmMyNGRlYmQ3NjFmNTA0YTA1IGxlZ2FjeS10cnVuaworMTU5MjIgY2NlMmM3YTM4YmQ1NmRlMTI2NjM0OTc4MTFjOWY1NjQxZGE2ZWNkNCBsZWdhY3ktdHJ1bmsKKzE1OTIzIGMzNjA4MDZjMDZjNzYzMjYxYWM1ZGRkODI0MTZiNGU4OGI0MzU4OTggbGVnYWN5LXRydW5rCisxNTkyNCBhMDllODYzNTUzNGRlMTJiNDJlMTc5MjY4MmExMjlmNGE1ZDM2NTlkIGxlZ2FjeS10cnVuaworMTU5MjUgNmZhYTQxMWM2MWZiNGFlZGYzMTAyYTIyMzUwNWJmOWZlYmM3ZDBjOCBsZWdhY3ktdHJ1bmsKKzE1OTI2IGM5YjFmMTk4NmM0MDI5NDhkNzIyN2Q4YjNjODJlNGFjMzFhMDQ3MmUgbGVnYWN5LXRydW5rCisxNTkyNyAwMjNhMjAxOGI5NmRlYmE4NGY5Nzc3NzIwMjFlZDE1MDNjYjI5NzAxIGxlZ2FjeS10cnVuaworMTU5MjggZjcyOTQyNDZkMDRmOGQ0YzU2ZDY2YTEwMzFjYTk2NDhlMzQwNWNiMCBsZWdhY3ktdHJ1bmsKKzE1OTI5IDVmNmYwODg2OTA1Y2QzMzE4NTAwZWVlYjE2MTUwNDIxMWIwMjA4NDEgbGVnYWN5LXRydW5rCisxNTkzMCBiNzhiOTk2ZThlYmMyYjA2MzIxY2ZhYmYxOTczYzZhNWU5ZjQ5MTAwIGxlZ2FjeS10cnVuaworMTU5MzEgMjA4MzQ2ZTkyNGNiMDI5MGFkNDA3MTc5NWIyNjQxNzA1NmFlYTUxMCBsZWdhY3ktdHJ1bmsKKzE1OTMyIGMxN2ZkMmNhNjY1OWMwMTQ4YThiNjhiNWVlYjRkYWU1NDIzMjAyMzIgbGVnYWN5LXRydW5rCisxNTkzMyAwNWU0NWM1ZjJkZTViN2NlZmQ2ODBkOGYxNmI3ZDA0NzQ2MjdhNmZiIGxlZ2FjeS10cnVuaworMTU5MzQgMDAyMWYzYzBiMjM4MDMyMzhlY2M1NDIyN2E5Yzk5ZTUwYmU5YzkxNiBsZWdhY3ktdHJ1bmsKKzE1OTM1IDlkOWU1YTdjMTJkYWJkMzkxOThkNzc0YjRjODMwZjMzZDFkZDVkNzIgbGVnYWN5LXRydW5rCisxNTkzNyBkMzdjMDI3ZTNmYWU5N2JkOGM1MGI2OTZlODkwN2Y1ZmExYjUwNjRjIGxlZ2FjeS10cnVuaworMTU5MzggMjhhOGJiNzk0ZjE5ZDU4YzgyMjJhYmI5NTcyMGY1MzA0YTQ5M2ZiZSBsZWdhY3ktdHJ1bmsKKzE1OTM5IDdhOTZlYzAxMDMzM2RjODI2MTIxOTc4N2QyODliZTQ0MmFjN2FhNDIgbGVnYWN5LXRydW5rCisxNTk0MCBkMzczNzQ1NTJhMTVmOWI2ZGMyZjhjNGQwNzVjN2UxYjRhZGY2NDJhIGxlZ2FjeS10cnVuaworMTU5NDEgOTE1ZDk4NTkxOGUyMWQzYTljZGJkN2Q3M2NjZmQ5N2Y2MTQwMzQyNiBsZWdhY3ktdHJ1bmsKKzE1OTQyIGVmMTMyNDJkZTQzM2U3NGQwYzI3N2RlMjk4NGVhNTk2YWUzNzY2NDQgbGVnYWN5LXRydW5rCisxNTk0MyA2ZjQ2Njk4MTQ4ODRhMzEwNjhlYjA4NTNkMTJmOTU0NDlhYjgzM2U0IGxlZ2FjeS10cnVuaworMTU5NDQgMWUzMDJkOTk2ZDU4ZDhjYjRhOTkwMWIzOTk5ZDMyYjBjOWM1ZjJlNSBsZWdhY3ktdHJ1bmsKKzE1OTQ1IDU0YmZmZGRkYzBlZjA4MzE1ZDY1MGU5YWYyZWM5ODQzMDQ1NGVhZGUgbGVnYWN5LXRydW5rCisxNTk0NiBlZmVjYmJmNzI3NjUzZDc3YTYyYWM4MDc2YzkyYTY3Y2FkYWFiNDZkIGxlZ2FjeS10cnVuaworMTU5NDcgZTljMzRjY2EwYzk2ODYyNDM1NTJlNmQ3YzBhZjZmNDQ3OTgzODg4MyBsZWdhY3ktdHJ1bmsKKzE1OTQ4IGM0NWJjMjU4ZjgzM2MxMjkwYTZlMDk2NWViYjNhY2ZlMmVmODQ0ODIgbGVnYWN5LXRydW5rCisxNTk0OSA1OTI5NGRkNGJmZGRmMWUxNDI4MzcxNjhiZGI2NzYwNmZhOGUyZWY3IGxlZ2FjeS10cnVuaworMTU5NTAgOTJiYTkyOGMwOWI4YjhjYzFhNzYyMTEzNTQ0YjdkZDIxMTFlOTIxNiBsZWdhY3ktdHJ1bmsKKzE1OTUxIDdlMjQ1YmM1OThiN2JjMzcxODNhNTVhNjllMzM1MWRiMmMwNTAxOTkgbGVnYWN5LXRydW5rCisxNTk1MiBjN2JlODQ3ODI2YjE3MjQxMGYyZDBlNmE5MWZiYzQ5NjRkYWMyMGI2IGxlZ2FjeS10cnVuaworMTU5NTMgN2U3MTk3NWVhNWYwOTBmZmZjMTQzZTkxNzdjZjQ5NGRmNTRiOTQyNiBsZWdhY3ktdHJ1bmsKKzE1OTU0IDMxMjhjM2NkMThlODZjZWE0NWYyMjA1ZmYxNzQyY2MyM2IzMWJmZGMgbGVnYWN5LXRydW5rCisxNTk1NSA1NDFkYjVmNjI1OWU5NmFjMzRjNzNjZDliMGI3OTc5NWQ0MjkzNzgwIGxlZ2FjeS10cnVuaworMTU5NTYgNzUzYWY2MmFiOGExOWJmOWFlYjMzNjhlMjQ0YWJiMjUxNzVhMTEyZSBsZWdhY3ktdHJ1bmsKKzE1OTU3IDk2MTY3YWY5MGZhMDMxMTRmMTk4ZTMyZGNiNzZlYjAxNDFhMmVmZjQgbGVnYWN5LXRydW5rCisxNTk1OCAxODkyMGVhYTEyMjY0YTdhZmE4ZDc0YWJiOTM0MGI1YmRkZmYxZjAxIGxlZ2FjeS10cnVuaworMTU5NTkgZWRlMThmZDVlZDE1YWU4ZDZmZWZhZjUyYTNmNGE2MzAxNzIxNzFmMSBsZWdhY3ktdHJ1bmsKKzE1OTYwIDRkZWVlZDU4YmY3NjRjZDU2N2I0ODVkY2NkYWM5ZTZjMGRlZTI4NmQgbGVnYWN5LXRydW5rCisxNTk2MSBjNTI3OWMwZjcxNmYwNWIyN2VjMGZjMDJkNmZhYjhmMzgyNzMxOTc1IGxlZ2FjeS10cnVuaworMTU5NjIgZWUxYTM0ZTVlZGIxMjc1Y2NiM2Y1NzU4NzU4YWZmZjY3MzcxZWY2MCBsZWdhY3ktdHJ1bmsKKzE1OTYzIGEwOTNmYWQ5MmNjZjg5NTA0ODhkY2Q2ZDg4MDcxODljZmU2Njk4MTAgbGVnYWN5LXRydW5rCisxNTk2NCA3OWM0YTA1NDI1NzI0NDJmNGY0ZGZkODNmMjg0YTg4ODQ1Y2RiMjVlIGxlZ2FjeS10cnVuaworMTU5NjUgYTYyNWNlMmZiZmJkODU1MmFhYTM0ZTc5Y2E5NWJlZmFlODQxMGI5ZSBsZWdhY3ktdHJ1bmsKKzE1OTY2IDVhNGRmOWQ5YzdiZjU2ZTNiNDdmNmRiYTJlZjUwYmMyOTUyYWMxYTQgbGVnYWN5LXRydW5rCisxNTk2NyBiOWE1NmU1ZTNkMjI3ZmQ5ZDAxZDc5NmNkNWNkZTc2ZjBjZWIwZTcxIGxlZ2FjeS10cnVuaworMTU5NjggZDY2NDM1MzM3ZTFjMmI1NTNiNGNjYjgzYWFjYTA5Nzk0YzcxZGJjYSBsZWdhY3ktdHJ1bmsKKzE1OTY5IGVhNGJiYWJjNzQ5NzMwOWJmZTUwYzJiYWRhOTE1ZTI5MjNiNzg3NWYgbGVnYWN5LXRydW5rCisxNTk3MCA5ZDIwNjg3M2M1YmQ0YjFmYThlODlkZmY3NWRhNGIxYjk1NjczNTNmIGxlZ2FjeS10cnVuaworMTU5NzEgYjExZTBhODk4ZGUwOTU1YmQ0Y2VmYWRlODZhYzg1M2ZmMjUwNjI5ZiBsZWdhY3ktdHJ1bmsKKzE1OTcyIGZmMjQzYjBmMTZlZWI4ODU1OTI3YzEyNjA5NWI1ODVmOWI1YzhhNjAgbGVnYWN5LXRydW5rCisxNTk3MyA4MjdiNTc2ZTI2NWI5NjA4ZDkyNWYzMzNjMGM0YThmMTA4MTgwOTczIGxlZ2FjeS10cnVuaworMTU5NzQgZjI5ZmJhNWM5OGJkZjdiMDgzMzI2MzBlMDU1YmQzODM1OTEyZDZkYSBsZWdhY3ktdHJ1bmsKKzE1OTc1IGMyOTA5ZWM3ZDRjZGNhMDI1Mzg1ZWEyYmM2ZWVjODliMDgyY2U3MzggbGVnYWN5LXRydW5rCisxNTk3NiA1NTViMmUyMmVlODk4MmRhMmRhNmYwZGI5ZmFiYTQ3ZWQxNjM0YTliIGxlZ2FjeS10cnVuaworMTU5NzcgMDk3Njg0YjkzY2E5YzEwNDlhODI2ZjI3NjdmNWI3NmQ1N2ZlMWE3OSBsZWdhY3ktdHJ1bmsKKzE1OTc4IDYzZWJiNjkwNjg3NzQ5ZDgyMDRlYWExYmUxOThiMjkyZjQ0MzMzNjMgbGVnYWN5LXRydW5rCisxNTk3OSBlMmFlZTYxOTBiMTk4NTAwM2UwMmI4YjZmYjMyYWJhYTk1MmE3NzhkIGxlZ2FjeS10cnVuaworMTU5ODAgNzlkYzFlZjVjMjJkMTk2OTE4OTI0NzZjYzcxOTYwNjVlMmFhODk5NSBsZWdhY3ktdHJ1bmsKKzE1OTgxIGE5MmY0M2QyMGVjYjE1ZjgzNzhiNTJhZjlmMWM0YTZkNTJlNmVhNDQgbGVnYWN5LXRydW5rCisxNTk4MiAwNDJiOTZjZGY3ZDc5NDUwMDgyMGM3MGRmNDA3N2Y4NTFlM2FmYmYyIGxlZ2FjeS10cnVuaworMTU5ODMgZDdiNDhjODQ5MTg5NTM0YjUzZjRhMzQzZDQ3MDk5OGE2NGI2YjEwOSBsZWdhY3ktdHJ1bmsKKzE1OTg0IDVkZDM4MWFlYjIzYjI3YTg4YTI0NGNiNGNmZDRlNDQ3OTU1MjI3NDMgbGVnYWN5LXRydW5rCisxNTk4NSAwNWQ1ZDNmOWExOGNiZmFmZGI4MDc1NDc3Mjg0MmMyMWU3ODlkZmQwIGxlZ2FjeS10cnVuaworMTU5ODYgMWNmNTQ0YmEyMzllNTYxNjU4ZGU0YjUzNjQwZTNhMzEyOTBiZjAzNiBsZWdhY3ktdHJ1bmsKKzE1OTg3IDJlYmZmZjEzOTM2YzI0YzBkMWJmZjFkYzVlMTZlMGI4MTMxNGZiYjEgbGVnYWN5LXRydW5rCisxNTk4OCAxMjQzN2RlYjA2ODBhYmFmYzExNzQ3ZGFlMTZhOTAwODkzY2MxYTcwIGxlZ2FjeS10cnVuaworMTU5ODkgYzJkZjVkMjgwMzRkYTU3N2I4OWI1YmVkMGM4MmQyMGEyODkyYmM2ZSBsZWdhY3ktdHJ1bmsKKzE1OTkwIGYxOTVjOTk4MWZhMWE5YTY1MGViZDNiNTA2MWJjNTFhY2VmMmViMDIgbGVnYWN5LXRydW5rCisxNTk5MSAzNDRhYjM0OGYxZTljOWQ4YjAwNzMzMmY4NjA4YzBkZTdhMzU4Zjg0IGxlZ2FjeS10cnVuaworMTU5OTIgNzA2NmJlMmVkYzNiNjlkNWY2OTMxZTUxZjQxOTdkMThjYzFmM2U0OCBsZWdhY3ktdHJ1bmsKKzE1OTkzIDIwOWViNDRjZGJmN2UxMTQ2NjIyNThhMjU0Yzg4YzU4MTNkMzYyYjQgbGVnYWN5LXRydW5rCisxNTk5NCA2OGRkNDAzMDcxNzI2ZTFmOTlhYzQ5YTU2OWU2OTE1Nzc3YzI2NDE5IGxlZ2FjeS10cnVuaworMTU5OTUgODZjOWY2OTFmMzc5MGEzOTBiYjcyMzkwZDAyNDNjOTg3ODRhNWZlNCBsZWdhY3ktdHJ1bmsKKzE1OTk2IDc5ZjhmNmI5NjNjMjY5YTI0OWY0NjgwOTA0YjVlYTJjMWIwNDVmZTYgbGVnYWN5LXRydW5rCisxNTk5NyA3OGJmYzc0MGI2MWNkMWQ5Y2UxZGI2ZWY0YTNjMDA2ODU0ZmU2NTUwIGxlZ2FjeS10cnVuaworMTU5OTggMzFmOWZhNDJkZjYwMGFhY2Y1ZWUwODM3NWJhYjRjNmQ5ZmUxMTBlMiBsZWdhY3ktdHJ1bmsKKzE1OTk5IGFmNzI4MDVlOTk0MmFkMmZkZjVhZmI5MjVjOWQyNTNiNTNhYzI5MTEgbGVnYWN5LXRydW5rCisxNjAwMCAwNDkzOTViMDI2MDJhMzRkMTBiNDVhNjI4ODkwMWQxZjlkNDE1MWQzIGxlZ2FjeS10cnVuaworMTYwMDEgNjUwMTU0MjkyZWUxMTczYTYzMDRlMmI2NmYxMWE0OGM4NzExN2RkYSBsZWdhY3ktdHJ1bmsKKzE2MDAyIDUzYmUyODVjZmQyY2FjNmJiOWI2ODZkYTQ0MzcyYjlhMDA0MDNiOTQgbGVnYWN5LXRydW5rCisxNjAwMyA2MTA0YjYxMjE1ZTY3Y2E2M2Q2Yjg1MzYyMjBlNDdkNWVjNmY1YTdiIGxlZ2FjeS10cnVuaworMTYwMDQgNTQ2NjI3MGRiYzkyNjhhMGNhMWE5N2RkZmI5MjU3ZTM5ZDkwYzFkNyBsZWdhY3ktdHJ1bmsKKzE2MDA1IDFlNDZjMjNiMWRhZGI3NGU2ZWMzMzdlMjY4OWIwZjIyYzkwMmMxODcgbGVnYWN5LXRydW5rCisxNjAwNiBhNzkyYjc0Y2M5ZThjMzUyNjdiOTlhYmQ4ZTk5OTczNTc2YmQ0YTU4IGxlZ2FjeS10cnVuaworMTYwMDcgMDlkOTE3MmZiMWQzNGNkNzIwMGQwNjVhN2E2OTYxYTcwNWI1NzZiMyBsZWdhY3ktdHJ1bmsKKzE2MDA4IDU3ZDZhMzFlZTQwZTAxNDlkMTk4Nzk5MzY5Njg3NTNkYTYxZjVmYzYgbGVnYWN5LXRydW5rCisxNjAwOSA1ODkyMDJjNjQ4ODc5MWQwZTdjNzMyN2M4YWM0OWFiMDkyM2QwMDAyIGxlZ2FjeS10cnVuaworMTYwMTAgOGVkZTRiMDgwM2ZiNzlmZmMzN2NiMmQwNzZkYjE3NzU4NjZhYjFjMiBsZWdhY3ktdHJ1bmsKKzE2MDExIGFjNGQzY2ZiYzFjOWQxODQxOTRjYjljMmU1OWMzYWZkMTI3NzNkZGIgbGVnYWN5LXRydW5rCisxNjAxMiA4ODY0MGVjZjU1MDYxZjMyNWNlZjhiMTIyMmJhNGY4YTk3MTBkYmQ2IGxlZ2FjeS10cnVuaworMTYwMTMgODYxNzdmYjBlZGQ4MzVjY2M0Yjg4ZDc2ZDEyY2M4NDc2YTEwOWViZiBsZWdhY3ktdHJ1bmsKKzE2MDE0IDMxMGQ3Y2JiYTMyOTIzOWM5YmM2N2EyYjczNzk3NTFkMGMwOTI5NTggbGVnYWN5LXRydW5rCisxNjAxNSBhNmE2NGU5YWIyMzhkMGZlNDFjMjY4NGY2ZWEwNWFiOWY5NWVkZTUzIGxlZ2FjeS10cnVuaworMTYwMTYgZmYwOTc0ZTg4MjFiZWVjMzJkNzYxZTAxYzk5MzFmZjUzYzZmNmUxMCBsZWdhY3ktdHJ1bmsKKzE2MDE3IDkxNmZiMDI0Y2U5NDJkMDk3YjA4Y2U1Nzc5NDc0Y2E2ZDZiYTZiNjQgbGVnYWN5LXRydW5rCisxNjAxOCA4N2VlODJlNWM1NmQzMWI3NzFmNzZlZDVjZTMwYWNiNjMzNGY5ZmY0IGxlZ2FjeS10cnVuaworMTYwMTkgMzRhNmU1ZmVjYTE4ZTNlNGIzMmFmNTJkMTYyOTQ0ZGJlMjcxZGM1NCBsZWdhY3ktdHJ1bmsKKzE2MDIwIGJhYmU3YjljYzYxNzQ1NmY0MmQzNTVmMWMyOTllMDUzODViYWUwOTggbGVnYWN5LXRydW5rCisxNjAyMSAzZGE0OTM0MjE5ZTVmNDc3ZTc1YzQ4ODdiOGQ2ZGU4YjQ0NWIyNjJmIGxlZ2FjeS10cnVuaworMTYwMjIgNWZjMThiY2E3ZjU1YWMzM2E1MjkwYzUyNDA5ODA3MTE0YmIzM2Q5NyBsZWdhY3ktdHJ1bmsKKzE2MDIzIDFjNWE1YWRlMDRlMjc2MmM5YjExZTI5ZGI5MTI5YTJmMjY1YWEyZGYgbGVnYWN5LXRydW5rCisxNjAyNCBjNmZkNmZmYmNiMTVjNzgxY2E0ZDRlYjg1MjViNmVkNmZlYWUyNjgzIGxlZ2FjeS10cnVuaworMTYwMjUgODQ4NzlhYjcxYjlmM2ZkOGRhZjk2YmZiNzdiZGYxMWExMjY3ODc4MSBsZWdhY3ktdHJ1bmsKKzE2MDI2IGI5YWRiNzljZGViNjM0MDlmOWY1MWQ0YjQxOGIxZjIzODM2MGY4NWUgbGVnYWN5LXRydW5rCisxNjAyNyBlOGJiMGQ1MzY2MzNhZTc5NTIzMDk4YTI1N2YxOGM0ZDUyMzc0ZDM0IGxlZ2FjeS10cnVuaworMTYwMjggNGM0ZTk1MTQ3MjU4MTExMjU4Mjc0ZjU0NGQ1ZGVlNzU2ZmRkNmRhMiBsZWdhY3ktdHJ1bmsKKzE2MDI5IDRjZTI1NTQ5NWRhMzQwMzA0NDBhNThiN2M3MGY0YTU1YWJiOWJhYzcgbGVnYWN5LXRydW5rCisxNjAzMCA4MzM3N2ZjMjk4ZDgzYzhhZjRlZDdlZmQzZDhmY2RlNmU1OTI5MjFjIGxlZ2FjeS10cnVuaworMTYwMzEgZTcyY2I0MjE3NmJjNzE5M2Q5NTIyMzI0ZDdkMzVjNDVhY2Y0YzU3MCBsZWdhY3ktdHJ1bmsKKzE2MDMyIDYxNTVmNTMyZjFmY2M0ODg3YmZlODlhNTA5MTliYWRjNDUwZDVmZWEgbGVnYWN5LXRydW5rCisxNjAzMyA4OWYwYTY2NGUyODMwYjFjZWJlZDNlOGRiM2ZiOWExZTUwMjdjZmJlIGxlZ2FjeS10cnVuaworMTYwMzQgZmRiNzhjZmQ5ZTc2N2Q5MmE4MjExNjMwMDg1NjlkMmViMDkyOTMxYSBsZWdhY3ktdHJ1bmsKKzE2MDM1IGVmYjRiMGM2NjY4OGU0MzYzMmRjMTM1NWI5YzllYjcwMDc5NWI1YzIgbGVnYWN5LXRydW5rCisxNjAzNiBiNTMyOTBiN2I1NDY4YTE5YjdlOGQwOGY0ODBiZDFhNzk0MDVhZDU4IGxlZ2FjeS10cnVuaworMTYwMzcgMWMyN2IzN2VkMWExYWU3N2YyNWU2NWU2NmI4MjNlNDYxYjY1ODNiMyBsZWdhY3ktdHJ1bmsKKzE2MDM4IGJjNzE0YTdhMDA0Mjg0YmVkYzc0NzhiNDU1YTc1NGFlY2U1MmMwN2UgbGVnYWN5LXRydW5rCisxNjAzOSBlMmIzNjIxZTY1MjEzOTJhZWI2YmI3Y2NjNzVmNTliMzViZjUyNmVlIGxlZ2FjeS10cnVuaworMTYwNDAgMzM3MGVkYWQwOGNlZDVkZjg4OGVhY2JhNzk2ZjlhYWVlYTYwNTc5NiBsZWdhY3ktdHJ1bmsKKzE2MDQxIGUyZWUzOGVhN2YzNWU0ZDRhMDNlMDczY2UxMTQzMDAyM2I0ZGRjMzEgbGVnYWN5LXRydW5rCisxNjA0MiA1MDNhNzM5OTgyMjJjNTMxMjQ2OWM4MWI2YjA5ZDYyYjZjNGNlNmE3IGxlZ2FjeS10cnVuaworMTYwNDMgM2Y1OThiOThkN2Y5MjI0MDZmYzRkMTgzN2JiYjAzYjI0OTkwOWQ3MSBsZWdhY3ktdHJ1bmsKKzE2MDQ0IDkxZGUzZjAzYWU4OTI3YWYyZjc3OTAxMTcyMmQ0NTViMTA3NmIxMjIgbGVnYWN5LXRydW5rCisxNjA0NSAzZTA3YTczMTVhZjUyZmY2ODQ1Zjk4YzQ5MDZhNGRlZmZkNGE1NjVmIGxlZ2FjeS10cnVuaworMTYwNDYgNTEwMmVmZmIwYzRiNGM1ZWI1ZTZjMmRlODVjOTljNmY5ODA4YjZhNSBsZWdhY3ktdHJ1bmsKKzE2MDQ3IGUwZWI0MzFlNDM5M2FjZDdmNjI2YjFjMmJhNzM5NmIyY2RmYzU5YzMgbGVnYWN5LXRydW5rCisxNjA0OCA3Mjk1ZjM2MDI2NGU0N2NjNTFlNmFlMWE2MTA3ZjEwN2YxMTkwMDUwIGxlZ2FjeS10cnVuaworMTYwNDkgNDAxMWFjZmUxNDMzZmE5NjE1YmIyZDY1ZGQ0YWIzZDY5MTE3MTUwZSBsZWdhY3ktdHJ1bmsKKzE2MDUwIGYxMTljMmQ4ZDU2MDNmN2ZmNGMxOTk4ZGJiZjliZjRjNTNmNDg4ZGIgbGVnYWN5LXRydW5rCisxNjA1MSBjYjE4NjQwMjU5OWE3MjdmYWExMDI0MzI5NzI5MDc3OGQ0MDNhNGIyIGxlZ2FjeS10cnVuaworMTYwNTIgN2VkYzQ4MGJiOWYzOThlOWQyNDFlZjU4YTQzZjUzZTQ3OTkzNjQ5YyBsZWdhY3ktdHJ1bmsKKzE2MDUzIGNmYzY0ZmFmMTJjZTU5OTAzOWFlMTlmZGQ0YjllZDQ1MmVlOTIzNDQgbGVnYWN5LXRydW5rCisxNjA1NCAxOGM4MWYxYTBkYTIzNDg5MDM5NGI3MTZmMmNhZTZjMmY5ZGU3NWZkIGxlZ2FjeS10cnVuaworMTYwNTUgZTM4YmU4NzE3ZWMwMzFiNjEyYjhlZjU1NjFiYWUzMjYzNmQzY2JmZSBsZWdhY3ktdHJ1bmsKKzE2MDU2IDgwMGE3NWQwNzg3ZjBhMDFhODg5NWNjNmQ4NmVjYjk5OWIzZWE0YTcgbGVnYWN5LXRydW5rCisxNjA1NyA2ZTRkZjM0MTRhNWZjZjUwMGM1NzhiYTNjMTJiNjBmOWZlYWQ1M2I3IGxlZ2FjeS10cnVuaworMTYwNTggYjkxYjU3NjJiMWNkMTE0YWI3YzAzN2ZkMzY0ZTg5ODVkZGVhZmFmMiBsZWdhY3ktdHJ1bmsKKzE2MDU5IGE1ZTIwZDA3NDcwYzVlN2I4MzE5ZDkwNTRmZDEzZTRjOTkwMzhhNmYgbGVnYWN5LXRydW5rCisxNjA2MCA0NmVlMjcxNWQyOTgzOWJkNjNlYWJhYjI0NjliYjM1OWZjZTNmYmE0IGxlZ2FjeS10cnVuaworMTYwNjEgMmZiM2ZiNjQ2Y2M1OTU5NjMwNGEzNThkNTYzNGNjY2I4MzllMmVkYiBsZWdhY3ktdHJ1bmsKKzE2MDYyIDNkYjYyYzc1ZTY1YjE1NzI5ZmU2NjBlN2IwMmRlMjA0MzBiYjVhMDQgbGVnYWN5LXRydW5rCisxNjA2MyAxY2Y2NzM4MjQ5YWZmNWUzMzM5YmU3OTFmM2I0OWVhZDAzZDZhMjBhIGxlZ2FjeS10cnVuaworMTYwNjQgOTA1NDBjZGY5YzhkOTY0N2E2ZjRlNmM4OGY2ZmE5YzI5ZGY4OGE1OSBsZWdhY3ktdHJ1bmsKKzE2MDY1IDM2MDc0MjIyMTYxYzBiMWI0ZTdmOThhNWQ0NWM2ZmZmYjQzN2MxNTYgbGVnYWN5LXRydW5rCisxNjA2NiA1MGY5NzdlMWUyYWI3MGQyYmU3ODkzZmZkMjliNWRkOWQ0MmNiMDMxIGxlZ2FjeS10cnVuaworMTYwNjcgMzNjZTYzYjA2MzU5MDhmYTNmYzAyMzc3MTYwYWQxNTBiZDc5NDljMSBsZWdhY3ktdHJ1bmsKKzE2MDY4IDM4NGZhOWI5ZTI1M2NhMGY3NDQwN2FjYzNmZDBmNDRjYTBjZTFkZjMgbGVnYWN5LXRydW5rCisxNjA2OSAwODViMDE1YTkyOTFkOWQ1YTEzNjk4ZWMzODA3YzBkNDQyYjc2MTdmIGxlZ2FjeS10cnVuaworMTYwNzAgZmMyYWQ2ZmEwOGVjZTkxMmIzOGQ1MTc2ZTVhMTY3N2U0NzUyOWU5MCBsZWdhY3ktdHJ1bmsKKzE2MDcxIGM3ZWYxNTg1OTgzYzQ2NjU0Y2M0YzdhMjExMDJhMjk5NWMwOGY5MjQgbGVnYWN5LXRydW5rCisxNjA3MiAzYzM1YmY3YjU4MGIwMjJlOGI3YmU3NjAzNGQ4MGZkYjQ3OTBiNDc4IGxlZ2FjeS10cnVuaworMTYwNzMgMDY5NGNlM2JkNDhmNjdiMTE1ZGI1ZTc4OTU0ODA0YzZhYmRkZmRmMyBsZWdhY3ktdHJ1bmsKKzE2MDc0IDQyMGFiNDQzMDIxZTk2NWQzYmNjYjJjMzgxYzI0MjYyMDA4NzRkMGQgbGVnYWN5LXRydW5rCisxNjA3NSBhMmJjOGRmZjU1ZGZmNTQ3NDRhNGMxM2RmMTY0M2NmYmQ0NzBlNzk4IGxlZ2FjeS10cnVuaworMTYwNzYgMDNhYTI2ODE5YWMyNzY1MWQ5Y2Q5MmUwYjk0YTIzMDQ3Y2E4MTYyMSBsZWdhY3ktdHJ1bmsKKzE2MDc3IDU4MTgzNjc5YzkwYTIyMDk4YjYwOWUxZjJiNDBlZTUwMWUyOWU3MDcgbGVnYWN5LXRydW5rCisxNjA3OCBmZDc4YmM1ZjJiMmNjYjFiZjRkMzg0NDExMTc3NzRjODQ0NWEzM2I1IGxlZ2FjeS10cnVuaworMTYwNzkgNjZkNDJjNTFkZjE2YWVmOTJlYWJlNDIwOGVkMmM5MzYxYTY0N2I5MyBsZWdhY3ktdHJ1bmsKKzE2MDgwIGNkOGE0MWJmNGFjMjBiOWE3MmI0ZjBmNzE4MjRiZTdlZjdjODYxZDkgbGVnYWN5LXRydW5rCisxNjA4MSAzOTBlNWQ1MWZmNzMzMmI2NTEyYjhmN2U0MWQ4OTc4ZTdkNTcxMmQ4IGxlZ2FjeS10cnVuaworMTYwODIgNjdhMDQ4MTZlYTUwMTFhMzAwZWUzN2EwNjM2ZWE0NzNiZjM0NGUwOSBsZWdhY3ktdHJ1bmsKKzE2MDgzIGFjMjRkODJkOGUzM2JhYTYzYTllN2VjMTgwZTY2ODY4MjBlMDhlYzggbGVnYWN5LXRydW5rCisxNjA4NCBhZjEwZDliNzQxNDNkMmMzYWIxOGQ4OGNiOGEzZmUyMzk0M2RkYWFmIGxlZ2FjeS10cnVuaworMTYwODUgY2VkODYwZjJkOGQyY2E1ZTBlYzJmYTBjOTRkYWMyOTY4NGU3MjhjYyBsZWdhY3ktdHJ1bmsKKzE2MDg2IDM0MThkNWMwZjk2MDIyY2E4ZWMzY2U1ZTA3N2NlNmFkMjk0NTBhNmQgbGVnYWN5LXRydW5rCisxNjA4NyA3YmFjMTBhOWJiNjFjZjZlYTBiZGExZjA2YzNkZTk1MmMzOTJjYzNiIGxlZ2FjeS10cnVuaworMTYwODggMjQ3MTc0MDVkZDg5OTBmOWIxYTk2MjU4ZjFmOTIzMGIyMDYzZjIwOSBsZWdhY3ktdHJ1bmsKKzE2MDg5IGMxNTViY2NiN2EyMmZiMjQ2OGExZTQwZGY0YjkyNjUxOGI3ZmZkMDggbGVnYWN5LXRydW5rCisxNjA5MCBkOGE0MDc3NzdhNmY0YjdhNGE4MTMxNGM1NDM3MmYzZWQ5Nzg5Mzc5IGxlZ2FjeS10cnVuaworMTYwOTEgNDU0OTQwNDZjMmZiNjFjNTdiZjNhNzk1NGNlMWVkMTUyMjk1Y2NkNSBsZWdhY3ktdHJ1bmsKKzE2MDkyIDYzZDI4ODdiYWYxMTg0MjZkMzJmYzQ5MzRjMzZiY2MxZDUzMmQ4NmEgbGVnYWN5LXRydW5rCisxNjA5MyA3ZTNkNjA0NTU5NThmYzczODYzYjY1ZTQ0YzI5ZDEwYTQyNzQwNzAxIGxlZ2FjeS10cnVuaworMTYwOTQgNTYyNmQ0MjU1ZmNlZDVjYzkzNjE2MDgzOTg3NDNjOWRlY2JlN2NmZCBsZWdhY3ktdHJ1bmsKKzE2MDk1IDg5ZTQ3ZWJhMjc3MTg5YmM4OGY0ZDkxYTgzY2MzZjU2ODliNjk0Y2UgbGVnYWN5LXRydW5rCisxNjA5NiA4N2RmMWFlNGYxMTBjNWQwOTdkMjMyNDE1YTQ1MDk1YjA2NjgxYzNkIGxlZ2FjeS10cnVuaworMTYwOTcgOGQzMjRkOWQ1MThmZGJkNTBlMGM4OTMxNDRhYmZmMTg5MGM4MTlhOCBsZWdhY3ktdHJ1bmsKKzE2MDk4IGYwZDQwMmQ0ODE4MGJlOTQ4OGRiOWRkZTZjMjI5MjBhZTRkY2IxMGEgbGVnYWN5LXRydW5rCisxNjA5OSBlMTAxNjAwYWRlZTQ0YTYzMTJlOWYxMjAyMTZiZTFmY2E1YzU0MzZkIGxlZ2FjeS10cnVuaworMTYxMDAgYTdmNzIwMjJiOTNhYzg5NzIzOGMyNmRjZmNhYjM3OWZkYmRmMjEyMyBsZWdhY3ktdHJ1bmsKKzE2MTAxIGY5OGQ2ZDYzYWQ3MWI2YmMxNDRhMGRmNDdlMWM0N2FiZDFjMDYwYTYgbGVnYWN5LXRydW5rCisxNjEwMiBkZmYyNzdkNWZlYjI1YjBlZTlkY2EyNWFkODMwMjMyMDdlMTEzZTYzIGxlZ2FjeS10cnVuaworMTYxMDMgM2YxYmQ0NzgyNjI4YjZhMmQ1ZjQ3NDYzNDY1MTY0MDk4MzZkZTBlMyBsZWdhY3ktdHJ1bmsKKzE2MTA0IDJhNWEzY2FkNTE3NGE1ZmJhNzU3NzJhYzNmZGNhNGVjZmNiODBlYmUgbGVnYWN5LXRydW5rCisxNjEwNSBhYmVkODBiNTBhMmNjYWJhNDMzMmRhZWRjYzQ5OTY4NjA3YTRmYjQ2IGxlZ2FjeS10cnVuaworMTYxMDYgYzMwMjlmMjc2MDQ3MmNkODU0YjBmOTYyZTJjZmVjNTExZDQzYzdiNSBsZWdhY3ktdHJ1bmsKKzE2MTA3IDRjNDBlZjVkY2Q4MjdhZjlmYWQ4MWZjMjhhZWEzOWRhZDZkOTNkOTcgbGVnYWN5LXRydW5rCisxNjEwOCBmYjMwOTk2MTAxYmM4MzRkMjllOGEzMTZiZWE0YzBiMGM4NzNiMjgxIGxlZ2FjeS10cnVuaworMTYxMDkgMzg0ODM1ZWEwYTVhMTZiMzg1ZTIwOGNiY2FkNDRmNzg5NjZiZDNjNyBsZWdhY3ktdHJ1bmsKKzE2MTEwIDc2Mjg4ODJkY2NjZGU4N2UwNjhlZDQzMWM5M2E0YzU1OTgzNTI3M2MgbGVnYWN5LXRydW5rCisxNjExMSBiMzUzMGRhZTAzYmZiOTdmZDhhMzA3NzIzYzIyZDJmZGRjOTBjNmY0IGxlZ2FjeS10cnVuaworMTYxMTIgZTBkNjc2ZTljYjY2YzE0MGE3N2ViNWQwOTg1Nzg4ODEzMTA1ZThmYyBsZWdhY3ktdHJ1bmsKKzE2MTEzIDU2MTljM2Y3YTQ0YmRjNWFkMTY0MzA3NjE0NmU5Y2QyMGNlNWM4YmMgbGVnYWN5LXRydW5rCisxNjExNCBkODg1MzVjY2FlZTVjMjY5YzY4NDJmOTc1ZTdkNDRkYzE1MWY2M2ExIGxlZ2FjeS10cnVuaworMTYxMTUgMGIyODllMDBkNTJhMjc0NTUyMTNhZWRjZTBiMGQwYjIxY2VjZDRkMCBsZWdhY3ktdHJ1bmsKKzE2MTE2IDk5ZjM0MWE5N2ZkZWI2ZjA3OTI0YWU1ZDgwY2ZlYzQ2OTQ5NTEwOGQgbGVnYWN5LXRydW5rCisxNjExNyBiNGFlZGQ5MGM4NjQyZTlkYTBlYTRjMTYxMmMyNmQ3YTZhOWUxOTM4IGxlZ2FjeS10cnVuaworMTYxMTggOWExYjk2MWUwYzNhZjUwNDFiMDlhNTNkZmQyOTJjZjhmNWQ1NjllMiBsZWdhY3ktdHJ1bmsKKzE2MTE5IGQ4MDM4MTMzNjYxMmQ2MWQ3ZTI4ZjQxNTkwMzk4Yjk1ZDI2MmU4ZjQgbGVnYWN5LXRydW5rCisxNjEyMCBjODcwNmU1YTg4MmZhMjEyZGYzM2MwZTU4ZGFhZjk1NDE3ODI5ZDc4IGxlZ2FjeS10cnVuaworMTYxMjEgNjBhOTcyNmQ4NWY4ZTMwMzQ2YzhmY2EwYmNlYzFlYTE1ZTVmZjRiYiBsZWdhY3ktdHJ1bmsKKzE2MTIyIDQ4NGJmZGU3MGRjY2JmNGNiNmJjODNjNjA4NjlkNDk2YjU0ODY4MWMgbGVnYWN5LXRydW5rCisxNjEyMyBiZWY3YjYyOWFjOTU5YmUxMzVjN2NkZDA1ZDFlOTU5Y2I1NDU3YjY4IGxlZ2FjeS10cnVuaworMTYxMjQgMDJmODcwNWJkYTA1ZTUyMDZmZDg2MTExZTllOGIwODk1NDZkMWUxZSBsZWdhY3ktdHJ1bmsKKzE2MTI1IGYzNjkzNmQ0M2QwMmJiYzYzYmUwMzA5ZjQxYWE2OGJhZTRmZmVhNTIgbGVnYWN5LXRydW5rCisxNjEyNiAzYmUyOTQ0OTU5ZGE3M2M1Nzk3MTc1YmY5MGE0ZmI4MDBkNjgyYmY2IGxlZ2FjeS10cnVuaworMTYxMjcgYjU5NzA2N2UwNTZmNzkxYjM0NTk5MDI4MjJmZWJjYTY3ZTg2ZDhhMSBsZWdhY3ktdHJ1bmsKKzE2MTI4IGExMTEwZGE2NTdlNTBkZGU1M2UwZmE5MzBlYTQ2ODUyMjIyNTFiYTQgbGVnYWN5LXRydW5rCisxNjEyOSBjYmY2NmU0ZmYwOGYwZWU5Y2EwYjEyYTllYjFjZTg2MGZiMzk3OWQ0IGxlZ2FjeS10cnVuaworMTYxMzAgOTQ3OTBiMGM1NWQwNGFjY2NmMzk2Y2Q2MTYzODQzMmYyMzM3Mjc1NCBsZWdhY3ktdHJ1bmsKKzE2MTMxIGYwYzgwYjgzNjRlMjBiM2I0OGQyOGVhZGI2MzcxYmM4ODlmN2EyODEgbGVnYWN5LXRydW5rCisxNjEzMiAzYTAwMDMxZjlkNjBjN2MyZGYyZTFmYzFkODJhZGJhYTkwYzNjOTYxIGxlZ2FjeS10cnVuaworMTYxMzMgY2Q4YjhiYWZiYjMzOTczYjE5NDEwOGY2N2E3NTMyMmViZmNhYjk5ZCBsZWdhY3ktdHJ1bmsKKzE2MTM0IDc0NTE3N2JlMWE3MTdjZjE1MzJhMTUxZjI3YTVjOWNkOTYxMDgxOTkgbGVnYWN5LXRydW5rCisxNjEzNSBkNjc5NzQ1ZDk4NmZkYjQ5MGE3Mjc2YTMxNDRjNGZlMTA0ZWVmZmJkIGxlZ2FjeS10cnVuaworMTYxMzYgOGZiNzMxMWQxMzgxMDg4ZTU4ZDY3MGIxOWJmMGVmMzVhMTM5MTViOCBsZWdhY3ktdHJ1bmsKKzE2MTM3IGNiYmU1MTJkMjRlMDVjZWQzNDdhMGQ2ZjgyMTlhYTFmOTZhYTNhOTggbGVnYWN5LXRydW5rCisxNjEzOCBiZmUyMmNmNmU3NzA4YmE2NDJhNDBhZGQyNmYxZjBiM2IxNDQ4YTFjIGxlZ2FjeS10cnVuaworMTYxMzkgMjAxN2Y1NGIwMzI1YzdhNjliMjdjZTJkYzY3YzA0MjlkYTFlOTNhNyBsZWdhY3ktdHJ1bmsKKzE2MTQwIDExM2Q4MzNlZWE3ZTA3YTkxOGJiNTE2YWI1NDU0OWQ5NDQwNDE4MzkgbGVnYWN5LXRydW5rCisxNjE0MSA2MmUxNDBiYTc4MmRjMDQwMDk0ZDE4ZGY4NWNmN2U0MzU3ZmE3NDZkIGxlZ2FjeS10cnVuaworMTYxNDIgZDE2NmExZTYwNzYwZmQyNmY2MTFhMmMzMzNlOTViMmI0ODEzODFkZCBsZWdhY3ktdHJ1bmsKKzE2MTQzIDg5ZmY1OTE3YmM4YmM3ZjA5Y2RhZTVjMzczZWE5MTdiMDgyMTQ5M2EgbGVnYWN5LXRydW5rCisxNjE0NCBiMmQxMDQwN2FiOWRiY2FjYTZkYzBlN2E0ZThiZTI0OGU2ODg2OGI2IGxlZ2FjeS10cnVuaworMTYxNDUgM2ZmMDIyZTFiOTVkMWFhZjA1YjE4MjJmYWUzNTZlZDc4YzIxYTE4OCBsZWdhY3ktdHJ1bmsKKzE2MTQ2IGVhY2IyZTUxZTE2OTY1MjBiZGM4NWYwMjczZmY3Y2M0YjUxOGEzNDggbGVnYWN5LXRydW5rCisxNjE0NyBhZmYxYzQxNDZjMWMyZjNhODc0Zjk2YjUzNDJkNTNjYWMxNDVkY2RlIGxlZ2FjeS10cnVuaworMTYxNDggM2YwOGJlZGMxYzI2MTUxNmM1MjIzY2JlN2U5ZTIyZDc2M2JhNWMwNCBsZWdhY3ktdHJ1bmsKKzE2MTQ5IDFiZTQ2NjUxOTBmMDY5NTFiMzgyMmIzOGNkZGU4MjhiYTg0YjMyMWIgbGVnYWN5LXRydW5rCisxNjE1MCA4ODA0NGY5ZGY4MzNkNTY0ZDgzZmNjNWM5NzMzODhjMjQ2M2M5OWNkIGxlZ2FjeS10cnVuaworMTYxNTEgMWMwZDM1YmExNmIxYzYyYjIxYzA2MzhkNDI1NWUzYTYyMTM5MmQ4MSBsZWdhY3ktdHJ1bmsKKzE2MTUyIDYyNzU0YjllYzdkZmMwNWY1NjIwZWM2N2Q0YzUwZWY5YTg2YjA5ZjkgbGVnYWN5LXRydW5rCisxNjE1MyAxYjQzNTlhMjk3NmRhYzMzMTY0NzViYjFiZTI0MzBhZDVkYTZhOTczIGxlZ2FjeS10cnVuaworMTYxNTQgYjA1ZGY2ODcyMTVlZjQ0Yzk3ZjVmZTEwZDA4MjFhOGFjN2IzYTI1NCBsZWdhY3ktdHJ1bmsKKzE2MTU1IGJjYjE0NjI3YjhmNDFjYTExMTZkNTA3ZmVmNGM1NzljNWMzZWM3OWIgbGVnYWN5LXRydW5rCisxNjE1NiA4MTA3ZGUyOGJjODIxMzlkMDQ3ODMxMmRhMGFjOWVkYjNjNmY0NzFlIGxlZ2FjeS10cnVuaworMTYxNTcgMzE3ZThlMDljZTg3NzFjNjJjYmM2ZDdjYTI0NGI2MDNkYzI0ZTgwYSBsZWdhY3ktdHJ1bmsKKzE2MTU4IDc1OWY2OTg3NDBjY2YzZDZjZTk2YmY3MzM5OWY4OTA2OGM1ZDBlYTcgbGVnYWN5LXRydW5rCisxNjE1OSA4ZWI1YzM2ZWRlOWU3MTNkNjVlMGZiOGNiMmI4NTY5ODlhMTk4ZjU1IGxlZ2FjeS10cnVuaworMTYxNjAgZThjZTFiYjA1NmFlYzIxY2RkNmZhY2I5OWVkY2I4MGI3NDQyZWZlZCBsZWdhY3ktdHJ1bmsKKzE2MTYxIDIxMTE5MTg5ZWUxODJjYmU4MDkxMmZkZDBhOGE1YjZlZWUwNWI2ZGUgbGVnYWN5LXRydW5rCisxNjE2MiA5OGRiMGMzYzFmYjlkYzAwNDk3M2EwMWFmMDJhODQ5MzcyMDk4MTFiIGxlZ2FjeS10cnVuaworMTYxNjMgOGYxYTJkZWViOWIwMDBkNDgzZTBhNGFjOGE0ODA4YWRlMjU0ODAzNCBsZWdhY3ktdHJ1bmsKKzE2MTY0IDdmYmRiNTgxODM4ZjYzMWJkZDc0YzJjZGIyZTE0ODg3NTE2ZmFiZTUgbGVnYWN5LXRydW5rCisxNjE2NSBlOTVmZjIxMWI5ZDNjN2I4YTAwZjhlMGRjOWViNjFiZDgzZDFlODQ2IGxlZ2FjeS10cnVuaworMTYxNjYgNGNmMjE4NTJmZDUyMTYwMDkxNzYwMmU2MjcyNTNmM2I0OThkNDFlYyBsZWdhY3ktdHJ1bmsKKzE2MTY3IDUzNzE0NzhmNmY1Yjg2ZGUzZTZkMjUxZjVjYTRiMWFkNDM2NDdiNTUgbGVnYWN5LXRydW5rCisxNjE2OCBhNTAzYWY3ZTdmYjdiYTY3YTRlMzBmNTE3OGY2NTE3NWYzYWQ0ZGM0IGxlZ2FjeS10cnVuaworMTYxNjkgZjI2MzNjOTNlMmU1N2U3YTk4Zjg3MDc0MTk0MTVlNTM3ODJlMzYzOCBsZWdhY3ktdHJ1bmsKKzE2MTcwIGY1MjEyYWY5ZTY0MTNmMzE3NGZjYjAxNzExYWY0MmYzYWZlNjlkZjUgbGVnYWN5LXRydW5rCisxNjE3MSBjMzhiYWNkOGVmYWQyZmUyMjgwMDY0ZTk2MTJmMmExNmQxMDY1MGU4IGxlZ2FjeS10cnVuaworMTYxNzIgNTE1N2ViN2JlMjBkNzgwMzJlOWFkZTI2MmM2NTg4M2JjNDdmNTA2NCBsZWdhY3ktdHJ1bmsKKzE2MTczIDlhODM5MTA1NDg0MDkyNzRkMmEwM2E2NGNkNmJmN2U0YmIyMDc3MzYgbGVnYWN5LXRydW5rCisxNjE3NCBlNzEwNmMyZmMyNmNjNDc0M2FiOGNiMDJkZDBiNTM0OGI3NjRjOGI3IGxlZ2FjeS10cnVuaworMTYxNzUgN2ZlYTRhMWFmMDkwOWZlYWE2OWNmMDExMjRjNGRjY2ZjYTMxZmYyMyBsZWdhY3ktdHJ1bmsKKzE2MTc2IDZhNzhlYWQxMzk4NzA0MzY4YjVjZjg0YWZlZmMwNGUyNjliYmM4MTMgbGVnYWN5LXRydW5rCisxNjE3NyAyYmE3NmUzMTUwMTZiMjM2YmQ1M2Q5ZGFkODQ1MmM5MTg2YWViMjJhIGxlZ2FjeS10cnVuaworMTYxNzggZGE2MTA5MzA2MzhiNDc4NTk5NjYxOWM5Y2MyYWYwOGVmYTc5NjU5YSBsZWdhY3ktdHJ1bmsKKzE2MTc5IDcwZTRjYmZjM2IyNDc5YzhlYWUzOTRhMGNhZGMwNWY5NWEzZTQ1Y2MgbGVnYWN5LXRydW5rCisxNjE4MCA4NTUyMGMyMjAwNjdhMjlhYjFhNmJkMWQ1ZTdlYjZlZGY3Mjk4NDZkIGxlZ2FjeS10cnVuaworMTYxODEgZGI5MzkyYTA0YmVkNDIxY2U5ZTAyNjZmMDVkZDQ4NGVlYTFkNWZhZCBsZWdhY3ktdHJ1bmsKKzE2MTgyIGQzZjFlZWZkY2IzYTljYTE2YjEyOTRmYWQwM2FiYTQyZmU0NjljNjcgbGVnYWN5LXRydW5rCisxNjE4MyAzNDZkZjE5MjA4NzM3YWJkZWI2YzkzZGYzZGM3ODQ0MDM1ODQ1NTk3IGxlZ2FjeS10cnVuaworMTYxODQgYWEzZDNiZWNlNzc0NTQ1ZDIyZjYxOGY3M2Q4NzgzYjgzOWI4MDMwOSBsZWdhY3ktdHJ1bmsKKzE2MTg1IGE4NzgwM2ViOWRmYjE0NDdmNTlmZjY1NDFiZjYzYmMwZmZlNTY3MzcgbGVnYWN5LXRydW5rCisxNjE4NiA2NGExNGJhNzQ2NDEzODUzZjAwZDk1ZjY4YzNjMjIxOWNkZDNhNmI3IGxlZ2FjeS10cnVuaworMTYxODcgMjYzYjQ0OTI4NDRhMjA2YTNiOTU0YjcxMzg1ODllNzNjNjIyYmI4NCBsZWdhY3ktdHJ1bmsKKzE2MTg4IDVlYmFkNjg5YjdhNzkyMjRlMDdhNDc0YzA5NmE3NjdlNzM0OGEzODcgbGVnYWN5LXRydW5rCisxNjE4OSA2MThhNzI4MGY2YmU1MGI5NzY3Zjk3NjcyOWM1NzFiYzQzZmI4NDFhIGxlZ2FjeS10cnVuaworMTYxOTAgMGQ2YWYzMDNhODZjYjRkMzY3NzZlOTRkODlhZTlkN2ZkNzg2ZTIxNiBsZWdhY3ktdHJ1bmsKKzE2MTkxIDhhM2Q1MGVkMDZmNzk3YzczNzA2NDQyY2QzMDEwZWVkOWVmNWZkMWIgbGVnYWN5LXRydW5rCisxNjE5MiAwODhjNWYzYjcwOTRjOTU5MjQ5OWRiYTUyODQ2ZjVmYzdiYWRkZmQzIGxlZ2FjeS10cnVuaworMTYxOTMgYzcxMTE4Yjc4MDU5NGJiYmE5MTgwNzE2ZjQwY2Q1OWE3OTA5MGNkZCBsZWdhY3ktdHJ1bmsKKzE2MTk0IGQxNzY2NGJkOWI2NTdlYzU0YmJhNmZjOWIyYmIyYjgyZDAyYWY5ZDMgbGVnYWN5LXRydW5rCisxNjE5NSBmYzc4ZTVhNzgxMmE1MTBhNTk1ODk2NGFlMTYwZTczNjdkMWMyMzA4IGxlZ2FjeS10cnVuaworMTYxOTYgY2RlMjczMThjZjg3YjViZTgyYzE2MjgxNzEyMmQwY2U1YjY4ZGFlMSBsZWdhY3ktdHJ1bmsKKzE2MTk3IDdlM2NkOTQ4MGY2NjM4YWMxNDY0ZTA3MzlmZmMwN2IwMWM2NTk0OWMgbGVnYWN5LXRydW5rCisxNjE5OCBiYzllMjJhZDVjNDYwODExODJiOWIzNjc4MmExMWNlZDc3NTkwMjI1IGxlZ2FjeS10cnVuaworMTYxOTkgOWZkMzMzNjkzMzUwODFkYjc0YjhmZTI1MmZmZTY5NjA5ZDdiYWU4ZSBsZWdhY3ktdHJ1bmsKKzE2MjAwIGRkZjA3NGVjNjUwNjNmODgxYTNkMzFlZjEyNjhkMDg3MzdkNGRlZTkgbGVnYWN5LXRydW5rCisxNjIwMSA5NjhhMDA2ZTU0ODBjMjY4Y2MwODZjZDM3OTY2MjdkMzk2NmUzZjFmIGxlZ2FjeS10cnVuaworMTYyMDIgZjhkMDg0ZTNmOGVjZjFmODNlYTViMjBiZGUyMTMzMWMxMjY0OTcwMiBsZWdhY3ktdHJ1bmsKKzE2MjAzIDVlZGVlNjg3ODk0MzI2MmI3ZDAwNmVjZDBjNDgzNWI4NWJhOTE5MjcgbGVnYWN5LXRydW5rCisxNjIwNCBlZDcyMDY3YWFjMDMyODg0MTMzNTYwZGNiMzQyMzAwNWYyYmRmY2Q2IGxlZ2FjeS10cnVuaworMTYyMDUgN2U1OGMwNjBkNTM0MmQ0ODMyMjI2N2Y0ODg1OTI0Zjk5OTMzMzA2NyBsZWdhY3ktdHJ1bmsKKzE2MjA2IDU3MDlkZGJhNDIzY2M4ZGJmZWRjMTU1OGM4YTZmZjhhZWE5NGQwNjcgbGVnYWN5LXRydW5rCisxNjIwNyAwOTFjYTZiOTM0OGY1MGQ1MThmM2Y2NDVmNzAwNGRiYTZkYjQ0ZDFhIGxlZ2FjeS10cnVuaworMTYyMDggMjNmOTY4OWFjZTUwNjM3N2JjMmU4YjUyZjE3YTY4YzVlMGYxNGJhNCBsZWdhY3ktdHJ1bmsKKzE2MjA5IGE4OWY3ZjI2OGRlNDVmMTE0M2I0ZDliNDFmNjE0NzE1OWM0ZGRiZjMgbGVnYWN5LXRydW5rCisxNjIxMCAzZTEwYWM3YTViZjM2ZmQzYzc2NzM3MzY5NzU2NDhjMTk2ZGIzYWY3IGxlZ2FjeS10cnVuaworMTYyMTEgMDQwOWE5OGNkNTgyZTM2NzVjMzAyNWU4ODlkNzJmZDQzZTVmNzFkNiBsZWdhY3ktdHJ1bmsKKzE2MjEyIDRhZDI2OTY4NjYyYmUwNjI2NjJiNmIyYjdmMmYyZWMyM2Y5NzJhOGUgbGVnYWN5LXRydW5rCisxNjIxMyA4MDhiNDQ2YWY5N2M3NjM2MTFlYTdhODlhYjg2ZWIzM2E5MmE5ZjNiIGxlZ2FjeS10cnVuaworMTYyMTQgZWQ0ZjdhMjJlOTI4Y2FhMjMzY2Q5MjJmNTcyZWU2MzBlZDg5Y2U1YyBsZWdhY3ktdHJ1bmsKKzE2MjE1IGQ2MTk4ZTcwMzYwMmJlMzA3MGIxNjA4Mjc5ZjBkNTBkMTM1YjljODkgbGVnYWN5LXRydW5rCisxNjIxNiBmY2M3NWEzNzQ4ZjU0MTk2NzBmOWQzZGEwODIyYzg0MjQ5NDE4ZTkzIGxlZ2FjeS10cnVuaworMTYyMTcgNDMxNTM4ZmZiM2FkMzIxNDY1YTExZDQ4YTI5Zjg5NTE3MDdiNDI1ZiBsZWdhY3ktdHJ1bmsKKzE2MjE4IDYyMTEzMTVlYjU5MmNlZDJkYTM3OWZiMWNiY2QzOWFhZTJiZDNiMWEgbGVnYWN5LXRydW5rCisxNjIxOSBlZjJlYmIzYjBjNjQ3ZmZhYzFlY2ZlOWU4MjM1MDQ3ZGRkOGQ3NjllIGxlZ2FjeS10cnVuaworMTYyMjAgNzkwOGVjODU1NjY1ZGNiZDRkMjZjNDI0ZjZhNmJlYTJlMzUzZjRkYSBsZWdhY3ktdHJ1bmsKKzE2MjIxIDBmOTVjOTNmMjAwYmRlZWIyZjA1YTk0ZjQxYTk1ZGE4NzY3NmNlYWMgbGVnYWN5LXRydW5rCisxNjIyMiBlNmQxN2YxNWFlNmFlZmFlOTViOWExNDEyMjNkMDlmOTUzMWQxNjc1IGxlZ2FjeS10cnVuaworMTYyMjMgZjZjZGVhYzQ0YTEwNTI4ZGU2MjQyMDM4NThhMDZmOTRjNjE2NzFjMSBsZWdhY3ktdHJ1bmsKKzE2MjI0IDRjZjBkZTI5YzA4YzcxYWJlZTk1YjkxZWY3ZTZiMzBhNDcwNzA1M2UgbGVnYWN5LXRydW5rCisxNjIyNSBiNzA2NmJiNzk1ODEwY2IxOTRmYTEwNTEwM2Q4MWM3YWU5OGQ4OGZlIGxlZ2FjeS10cnVuaworMTYyMjYgZWE4MjM1ZWRmYzk2MTU4MzcyZmE5OWI4Yzg2NDg0YjEzYTE4NTM2NiBsZWdhY3ktdHJ1bmsKKzE2MjI3IDhlOTJkOTQxZTA3ZjUwNDQ5Yzg3YmRiYzU3MTJhNjg2NDhmZGNiZjMgbGVnYWN5LXRydW5rCisxNjIyOCBiZmFkZDM2M2EyMDBhMzFhNjhmMTIxODU4YmI5MTRlZTdmYWRkNDNkIGxlZ2FjeS10cnVuaworMTYyMjkgNjY5MDM3NGExZGMxYTVhMGVhYjgwNGRlNjkwOTVmMThhNTJlMjkwYSBsZWdhY3ktdHJ1bmsKKzE2MjMwIGI5MDdlYmYzYjA1MmI5MzIxNDQ2NGQ4Y2JmNTJjYzkyMjI3N2U4NDggbGVnYWN5LXRydW5rCisxNjIzMSBkZDdlMTM5MTUzMjhmYzlhNTkxNzRiODgxOWUzYzA4NjIyMjU3MDBmIGxlZ2FjeS10cnVuaworMTYyMzIgNzViMGU4Y2IwNzgzMWQzZGZjZmRkY2Q5MjcyYzRlNzdhNDgyNjliMiBsZWdhY3ktdHJ1bmsKKzE2MjMzIGRmMTg5ZjljZDAxMGRlYTBlZmNkODk5ZjIyNDAxOTQwYTA3OTkxNjcgbGVnYWN5LXRydW5rCisxNjIzNCBkYmU4M2ZkMjMzOTNhMjEwOTk5YWFiNDQyMmQwMWE5NjdmYmEyMzJkIGxlZ2FjeS10cnVuaworMTYyMzUgMzFiMWY2OTFhN2Q5MTg5ZTdiNzc5ZWVhMjY4YTUyMmVmMWZiYTcyMSBsZWdhY3ktdHJ1bmsKKzE2MjM2IGUxYjA3MGQ3MTYyYzhkZTc2NmFiYjQzODJjNmQyZGQ3M2JjN2RmMzkgbGVnYWN5LXRydW5rCisxNjIzNyAyZmYyNzg1ZTUyOTE5YzFjYzYxYzVjYzEwZThhM2U1ZjYwZjQ3OWJkIGxlZ2FjeS10cnVuaworMTYyMzggOGY2NmM1ZmZhMjZjODYwNTI1M2M0ZDQ1MWM3OTRlYjc1MGI0NDlmNyBsZWdhY3ktdHJ1bmsKKzE2MjM5IDE2MjJiYjI0ZGE1NTY2NGQzOGQ0NTgyMGViYWMwMmJiODliYzQzNjYgbGVnYWN5LXRydW5rCisxNjI0MCA3MGQzNTFmY2I4ZDU5MDBjODZlYWJmYjI0Yzc1MmM2MGZlNzk3OThlIGxlZ2FjeS10cnVuaworMTYyNDEgOTNhZTM0YWEyMGFiMzYzNTY3YjFhMmUwY2I0M2Q4OGMzZWVkMDkwYyBsZWdhY3ktdHJ1bmsKKzE2MjQyIDYwODRmOGQzYTgyNWMwYTc2NDdiMjQyZjNiOGFkZDVhMzAwN2Y5NTUgbGVnYWN5LXRydW5rCisxNjI0MyAzYWJlY2IzNDczN2ZjYzgwNmVkZDIyZGNjNmI5Mjk0YWVmN2Q2YmEwIGxlZ2FjeS10cnVuaworMTYyNDQgMDAwYTFjN2ViMDlmYmNmYTg4ZmE0M2U2YzJlZTBlNTkzNDg2NjI3YyBsZWdhY3ktdHJ1bmsKKzE2MjQ1IDg3ZjgzOTY4NTFiMmFhNjVmMTRhNTNjYjk1NDU0ZTBmMmU4MDkyYjYgbGVnYWN5LXRydW5rCisxNjI0NiA2N2ZkMTlkNzQ1MjgxOGQ2OTRhYjZiNGI5Njg1OTkyZGJlMDY1MmQ3IGxlZ2FjeS10cnVuaworMTYyNDcgZTRlYzc3ODc5ZGRkMDJlZDg4YTI2NTY1ZjRhMTMzZmFhMjI1NzQ4ZSBsZWdhY3ktdHJ1bmsKKzE2MjQ4IDMyYjY4NmRhM2U1MTkxM2E3NDc0MmFkYjcxYjNlMjRkMTA3YjhjMTEgbGVnYWN5LXRydW5rCisxNjI0OSA4NDI0ZWM0YzRiYjIwMzBjZTM2MTI5YzgxNjVhYTgxYTYyMzBjMzJjIGxlZ2FjeS10cnVuaworMTYyNTAgYjMxMzExYTc4YTVkYTY1MzE3Mjk1MWJmMTE0ODFlZWRmZGUyM2I2NiBsZWdhY3ktdHJ1bmsKKzE2MjUxIGY1MGJkY2IwZGQwZWFlMDFkOTAwNmUxMmZmMmJhYmIwZjQyYjM0ZWYgbGVnYWN5LXRydW5rCisxNjI1MiBjYjUzOTgyNDQ0OGU4NWUyYjUzY2YyYjVmYWM4ZDI1ZjI4OWZjZWMzIGxlZ2FjeS10cnVuaworMTYyNTMgNWRhODQ1NmYyZTRkMzQ0MzdiYzI5ZjBiOWY4YTlhMTI0ZDk3ODc5YSBsZWdhY3ktdHJ1bmsKKzE2MjU0IDUwODdkMWQ0NWYxZGE2NmNlZTdmNTE1MjM5NzZhZTZjZjFjYmJmOTggbGVnYWN5LXRydW5rCisxNjI1NSA4YmFjZjg2MzFhMTFjZWNlNTgwZGUzNmQzMzdmN2YwYzk3MDk0YjI5IGxlZ2FjeS10cnVuaworMTYyNTYgNGFhMTJlNTViZjk1ZDFkZjIyM2I2NDBhYTE2MGYwODI2YTNkYWY2ZiBsZWdhY3ktdHJ1bmsKKzE2MjU3IDQyM2E1Yjk1MGNjOTgzY2EyOTU0MDhiMjViNjc1NjVlODMwNThmNTMgbGVnYWN5LXRydW5rCisxNjI1OCAwM2JjNTFlNDNmN2FmNzU1YmVlMGEyZDcyOTlhMmM4ODZlMDczMmE0IGxlZ2FjeS10cnVuaworMTYyNTkgOTU0NTRiNzNlYTkxZDNkNmJhMmRmNzMxM2MwZWU1MDYzNzQxMjlmYyBsZWdhY3ktdHJ1bmsKKzE2MjYwIGM4MzA4NTRmYTUwN2FkZGE4M2Q1ZjY0YjlkYTc0MWM4ODdjZjMwYjMgbGVnYWN5LXRydW5rCisxNjI2MSAwNDY3OTlhMDgwNTdjMjlmYjlkZjhmMDJmMDdjMjE4YjZkMDY3ODc3IGxlZ2FjeS10cnVuaworMTYyNjIgZDljYzYyMGZmMTg2ZWY4YWFmYjYxYWU1ZTM4Y2I2NWVlZjk1YTkxMCBsZWdhY3ktdHJ1bmsKKzE2MjYzIGNhMzJmZjdhMDY3ZTY5NWMxZDNiMjJmNTlhOGIyYjE3MmVjY2EzY2IgbGVnYWN5LXRydW5rCisxNjI2NCA3MzQ4Y2NlZWU4ZmFhOWQ0Yjg3NTViYjRmMjg2OTM5ZjQ2MWFkMjQxIGxlZ2FjeS10cnVuaworMTYyNjUgNjQ4NDA5OGY0MGZjM2QyNDhkNGQ1ZGIyYTUyNWYwYzY3OGMyNTVkOCBsZWdhY3ktdHJ1bmsKKzE2MjY2IDgyNTZkNjE5OGVjMmY3Yjg5YjI0N2Q5MmZjMDE1MWIyNGFjM2UwOWQgbGVnYWN5LXRydW5rCisxNjI2NyAwZWRlYjRlZmU2ZGJjMzljZTc3OWIzZTMyNzEyYTg2M2NjMzk3YjQxIGxlZ2FjeS10cnVuaworMTYyNjggODZiMzY3ZDJlN2FmYWJjZjA3YmIwZmEwZjJiYmE4Mzg5MjYyMjI0NiBsZWdhY3ktdHJ1bmsKKzE2MjY5IGMwNWViOTAyZTU2MDBkNWU1MGQ1NWQwZTQ2YzgxODZmNTczYmQ0ODEgbGVnYWN5LXRydW5rCisxNjI3MCA3YjBmNDQ4M2MzMzE3NjA0ZDQ5YjM3Y2ViMmM5YTYwMGY3Yjg1MmY4IGxlZ2FjeS10cnVuaworMTYyNzEgZmE3NDE5ODhkYjE3ODVkODMzYTg2YWQ3NzIwMjgyOTZlYjA4M2IzOSBsZWdhY3ktdHJ1bmsKKzE2MjcyIGQwMTg0ODUyNzFmYjRlMDAyYzcyMThlZDE5MjliNzg4ZGY4NzQ2NWIgbGVnYWN5LXRydW5rCisxNjI3MyAxODM5NWNhNWMzMGVmYmI3ZTIxZTFiNDY1MDg1MGQwM2Y0ODk3ZWE3IGxlZ2FjeS10cnVuaworMTYyNzQgOWE0MGYxOGYwNTYxZmZmMmM2NGI0OGI3OWRhMmY5MWJiOGRjMDA3MiBsZWdhY3ktdHJ1bmsKKzE2Mjc1IDYwNTdmNDRiMGI3YWM1Y2M0Nzk5MTQ1ZTY0NTE2OWUzOWE3ZjI2ZTYgbGVnYWN5LXRydW5rCisxNjI3NiA1MzA0Yjg4ZmUzY2NmMDc5ZTU2NDM1ZmI2MTUzMjE3ODgwNzQ4N2NlIGxlZ2FjeS10cnVuaworMTYyNzcgY2Q3YWJiNGZlYjFiYTZmM2Y1YTNhYWMzZmQ3OGZlNjE4YjBjMmE0YiBsZWdhY3ktdHJ1bmsKKzE2Mjc4IGU0NGNhNjFkYjcxNTg0ZjU0YmQwM2QwNDllNGZmNjAyZmM1NTY5YjIgbGVnYWN5LXRydW5rCisxNjI3OSA0ZjExMDQ0MWRiMzkxODJhYTM3MWIyOWIyNDVlMTkzM2U4ZTcxNjI0IGxlZ2FjeS10cnVuaworMTYyODAgODY3MDQ0MzJkMjgzYTVkNGE3ZGM1MDk2M2YyOGUzNzMzZmI5Zjk0MyBsZWdhY3ktdHJ1bmsKKzE2MjgxIDA3MGU0MWYyNjk3YjZjZjk3NmU4MTBjMDM0NmJjZmNiMTcwNzhjNDEgbGVnYWN5LXRydW5rCisxNjI4MiAyN2Q4N2UwNzJiZmIwNTJjOTk3MmNmZDRhYzNlNjk4MjkxNjkzZGYwIGxlZ2FjeS10cnVuaworMTYyODMgNGRiYzc1YzE4OWJjZWQ5Y2UwNjM1ZmQ4Y2I2N2Q2NjNiODQzNWVhMyBsZWdhY3ktdHJ1bmsKKzE2Mjg0IGFjYzQ2MzhmMzdkNTdhNjBlMjVhZTg3NzNmN2Y5NzhjN2Q1NjZlNmIgbGVnYWN5LXRydW5rCisxNjI4NSAwMjQ3NGRmNTQ2ZjYwMGEzZGFmMjc3NWNmMTQ4MWYyOWFjMzEzYWJjIGxlZ2FjeS10cnVuaworMTYyODYgMTZlNDkwNDYyZTZiZjE5OGQxNTE3ODY3ZjBkMDQ4ZDdjZWU0MDdmZiBsZWdhY3ktdHJ1bmsKKzE2Mjg3IGYzMzZhMjY3YTJhMjU2Mjk2NGNiOTdhNWJmODg2NTE5M2JhNThlYjAgbGVnYWN5LXRydW5rCisxNjI4OCAzNjg2ZDEyMzYyYjhjMDk2MGZiOTdkNTQ0YmQ0NTQ4NTNkZTM0ZjZiIGxlZ2FjeS10cnVuaworMTYyODkgMDdjMzExODJmMjM3MWQwNDEyM2NhZDkyY2Y1NWMxMjU5MGI5NzZjMCBsZWdhY3ktdHJ1bmsKKzE2MjkwIGU4NDhkNmVkM2ViOWQwM2M2MjYyMmQxYWY0OTI5N2U2MWNlNzE2OTAgbGVnYWN5LXRydW5rCisxNjI5MSBiYWJhZTkxMGMyZTEzYTM2MjI5ZjhmNjk3NGJmYTJjMTM2YzYyMDkzIGxlZ2FjeS10cnVuaworMTYyOTIgZWQ1NjViMGZlNjQ4NDE3OGIxYjNhODQ3ODcxOWU2YTU5ODlkYzNhYyBsZWdhY3ktdHJ1bmsKKzE2MjkzIDMwNDk1ZDczYjk0MzYxNWE2NDdmZjM1ZTExYmRjNjFhMGRhZTRjYjAgbGVnYWN5LXRydW5rCisxNjI5NCBiMDYzNmE1MjdhODc5OTlhZGY5MzEwMjU0MDFmYTI1MTBmYmUzNmY3IGxlZ2FjeS10cnVuaworMTYyOTUgMWU3YzMyYmRkYjhmNzAwNDM0ZmI1M2Y5ODU2ZTUwZjBjMjcyMjNjMiBsZWdhY3ktdHJ1bmsKKzE2Mjk2IDQ3ZmVjNDhjYTQ5NTk0NjliMWM2ODY5ZTI0OTVjNWYwNjE0YTE1NGEgbGVnYWN5LXRydW5rCisxNjI5NyA4YjEzNDVmZjk4MDEzZjkyZjhlZDg3Y2MzNDU5OWU1YzRlZDUyMzk4IGxlZ2FjeS10cnVuaworMTYyOTggOTdjZDQ3MzYzOTJjMTc3NzliMGM5NzE2ZDg3NzM4NGFiYjk3MjdlMCBsZWdhY3ktdHJ1bmsKKzE2Mjk5IGI5ZjlkYTFhM2ZjNDczZjUxMzA1NzkyNDUxYmNhYWUzNDUxODQxYzYgbGVnYWN5LXRydW5rCisxNjMwMCA0MjI4Nzc1ZDQ1NWVkNTdiMTRhOTliMmFkNjllNjMwODFkMTEyYWI2IGxlZ2FjeS10cnVuaworMTYzMDEgZmVhYjY3NzI2OWUwOGMxNWVjMGZhYTk1ZWY2OTM3ZmJiMzVkZDg5YiBsZWdhY3ktdHJ1bmsKKzE2MzAyIDA2MTVkY2VmMDI0ZGUwNWQzNjEyNzc1NDBiZGFjZTFkNmZjNzljNjAgbGVnYWN5LXRydW5rCisxNjMwMyA5ZGJlZTRiNGMwM2ZkYWM4ZDNiM2U2MmI2ZDUzZGVjMGQ2NzAyNDM1IGxlZ2FjeS10cnVuaworMTYzMDQgZGRkNjEzOGM5ZTZmZTc2MmRiYTFlNzMxY2FmODA3MGEzMzNmMGE1ZSBsZWdhY3ktdHJ1bmsKKzE2MzA1IDdhYTUxZWJmNDgzZjk5MmQzZTQ5MDI2YThiZDc0OWEwNjRkMzcwNDEgbGVnYWN5LXRydW5rCisxNjMwNiAzY2Y0ZjVhZWUwMGUyZmFjM2ZkNDA5NGNiYjYwZmJmZTZiZDdlNWEzIGxlZ2FjeS10cnVuaworMTYzMDcgMWQ2NjMwNzkyMjEyNTkxMWE2M2VjNTBkMjg5MjAyOGM1MmI5YmRlYyBsZWdhY3ktdHJ1bmsKKzE2MzA4IDFmODJhNGJmZDI5NDU1OGU1YTgxOGI3ODE4MTA5Y2U1YTc0MTMyZmEgbGVnYWN5LXRydW5rCisxNjMwOSBkYjk2M2E2MTViYzkzMTJjMWM5NmMzMTM0MTM5MjA5MmUwMmFiZjIyIGxlZ2FjeS10cnVuaworMTYzMTAgZDhiODc0OWRlMDRhYmE2MWQ2OTgxZjhhOTAxY2UzZjkzOTVkYjQyZCBsZWdhY3ktdHJ1bmsKKzE2MzExIDMzMzg4OTI3YWMyZmFhNzkwMWZhNjQ1ZmZkZTA1YmExZjRmZDljMTAgbGVnYWN5LXRydW5rCisxNjMxMiA5NWI5ZGRiMDAzNTIzZTM2N2ViYjY4ZTdjNzI0YmNiMjI3MTRjZjk4IGxlZ2FjeS10cnVuaworMTYzMTMgMTViMThlMGNjM2ZkMjQ4MjkwMDgzODlhNmYzN2IzNGMyN2M1NjhjOSBsZWdhY3ktdHJ1bmsKKzE2MzE0IGRkMmI1MjE4ZTA2OWVhMjllODhiZDMwZTBjNGZiOWM0MmQ3NDcwYTcgbGVnYWN5LXRydW5rCisxNjMxNSA2MzFiNmEwM2MxNjBlYjljMzJhNjA4ZTAzMTkxMDIyYTM1MTJmOTM4IGxlZ2FjeS10cnVuaworMTYzMTYgOTA2ZWZjMWRhMjQ3YTM2MTU3MWZmMWJkZmNjYjg3ZTIxMTRiZjM5ZSBsZWdhY3ktdHJ1bmsKKzE2MzE3IDljNzRiODIzOWZmODBmODcyZDc5NzU3ZTBkN2Y1MWU2ZmM0MTk2MzQgbGVnYWN5LXRydW5rCisxNjMxOCAzN2IxYTM5NjA2Y2U4YmZiNGE3ZTgwMzZkNDNlMjNiZWJjOTM0ZmVhIGxlZ2FjeS10cnVuaworMTYzMTkgYzM5NmI2MDI2MTdkYzQ2MGI3NzlkMTg1MDlmMmUwYTM1Y2IzNmI3OCBsZWdhY3ktdHJ1bmsKKzE2MzIwIDZhNDQzNmQ2OTU4YjBjNjc0OTNlYzM2Mjc0NTE1ZWI4NDhiZmM1MGEgbGVnYWN5LXRydW5rCisxNjMyMSBiNzg2NTM2ZjIxYWNiZjgzODEwMTlkZjRlZjA3MmU0ZmYyMzI2MjMxIGxlZ2FjeS10cnVuaworMTYzMjIgNjk4N2U5NDUwNjE5YjdjYmRlN2ZjNzRlNzlkNDAwNDlhOTVlYTliMSBsZWdhY3ktdHJ1bmsKKzE2MzIzIGVhNzMyNzE5YjNmZDA3YzAxNDMxMmNkMTNjYzU2MzliY2ExNGEyNzMgbGVnYWN5LXRydW5rCisxNjMyNCA5MTlmM2Q1MTcyYTk1ZWYzM2RjNTEwMmY0ZTRhZmNjZmU5ODhlYmVmIGxlZ2FjeS10cnVuaworMTYzMjUgZDFmNmI2NTYxMDNiMmMyMDA4ZmMyNzA4M2U0MmIxNWZlNWRkZDIwNyBsZWdhY3ktdHJ1bmsKKzE2MzI2IDc5OTFhZWIzNTk4ZmViMmVlN2IxYzdkNGY3ZTRmMWM3ZjBiNWI4MzggbGVnYWN5LXRydW5rCisxNjMyNyBlNTU4ZWIyMjhhNDYzZjU0ZGQ1Y2VhOWNkZGU5ZmQwZTFjOTgzMmNkIGxlZ2FjeS10cnVuaworMTYzMjggNDdhOTQ3MTk1NmFmOWJmYWJkMTZlZDFjZWU4Njk2MmExYzgwMTgwZiBsZWdhY3ktdHJ1bmsKKzE2MzI5IGNmYjJhMGQwYTg2OTZmMzc3NDIzNDA4NjQxMmRiNDIzZWNiZmJhMmYgbGVnYWN5LXRydW5rCisxNjMzMCBhYzJiYjc3MDgzMjBkYmU0NzUyYTk5MGM5YmRhMzE5ZmJiZDk3MmMzIGxlZ2FjeS10cnVuaworMTYzMzEgNWQ2MWI2ZjJhZWEzY2RhMWE3MzEzODQzYWVlNGQwNGI0NTQ3YmJjYyBsZWdhY3ktdHJ1bmsKKzE2MzMyIGVmM2VkNzVmMTk1Yzc4MGE3ODhjNGFlODIyNjgwZjQ3MzRjYmQ3ZTggbGVnYWN5LXRydW5rCisxNjMzMyAzYThjNjcwMzA5YTIxZGI0YjE3NjZjNWRkOGRlYjZmMDk5NWE0N2M4IGxlZ2FjeS10cnVuaworMTYzMzQgZTQxN2Q5NTI4ZmQ2MTE1NDRjMWZlMTM0N2MyNjlhNGY4OWU1OTIwYiBsZWdhY3ktdHJ1bmsKKzE2MzM1IDAxYjIzMDcyY2M3Njk2NzYyMjEyNWY0YjI4MmYwY2YwYzVhNmExYzkgbGVnYWN5LXRydW5rCisxNjMzNiBjYjc2ZDdkYTY3MDI3OWUwZTY4OWY4NTRjODQ4YzQ1MWUyZjQ1OGUwIGxlZ2FjeS10cnVuaworMTYzMzcgN2MxMTlmMDUwMjkwZTNhMmQ5ZmNlMTMwODc0Y2Q5NDJiMWY3MTc2NiBsZWdhY3ktdHJ1bmsKKzE2MzM4IDYxZTRjMjlkNTNkOGQyNzdiYzhjMjQ5ZWZhMWI3M2FhZDEwZDYzYjEgbGVnYWN5LXRydW5rCisxNjMzOSAyZTQ1YjdjMjNkYzY4NjVmODE4YWZjNDFjNjQ2NDY4MjlkYjljN2MwIGxlZ2FjeS10cnVuaworMTYzNDAgYTAzMjEwMWVkOTI2NDRjMmU2MmEzNmE1ZTAxMzhhMDQ1MTNhYjg5OCBsZWdhY3ktdHJ1bmsKKzE2MzQxIGZmZDVlOGI2N2M4NDMzMmIyOGZkNDZlYmE1YTk1ZDM2NjcwNTRjOWYgbGVnYWN5LXRydW5rCisxNjM0MiBiNGI2ZjM5NjJiZDEyMzk4YmEwMzg2ZDVhMWNhNzA2ZTYyZmUwYmQwIGxlZ2FjeS10cnVuaworMTYzNDMgZTg3MWJkMDVjNmE3NDRkMjViY2ViODg0ZDJhNDRjYTE2OTkzNjVlMyBsZWdhY3ktdHJ1bmsKKzE2MzQ0IDA4NGE3NTgwNTFlMGUxYzZlMmI2ZGUwNmM2MzVjOTEwMjVlZmZmZmQgbGVnYWN5LXRydW5rCisxNjM0NSBhZDFjODI3MWI2ZjgyODg2MGU1NjZmMTMxMWQxZWExOGJiMjhiMGFkIGxlZ2FjeS10cnVuaworMTYzNDYgMjk3N2ZiYWU0Y2E1MWI0YTA0NDA4ZTBlMzAwMjc4OGNjNmU0ZWY0OSBsZWdhY3ktdHJ1bmsKKzE2MzQ3IDg5ZjkwNTg3MGMwYTkwZGU3YmFjNjc3Nzk3OGRjYzlhZWI5Y2JlYjAgbGVnYWN5LXRydW5rCisxNjM0OCAxNGNlYjE1OWU0NDk5YTM3NjZlMGEzMGYyMDhmNWJjYzczY2QzNWM5IGxlZ2FjeS10cnVuaworMTYzNDkgN2MxMjdhNzlhMzY5ZTU3NGU3YzhiYTQ3ZDFkMGMzZjFhMmJhMjIxZSBsZWdhY3ktdHJ1bmsKKzE2MzUwIDRmYWY4YzIyZGE2MGJlMmEyZDc4MWUzYjFiZGQ5NjM5ZjYxZDE1NjcgbGVnYWN5LXRydW5rCisxNjM1MSA1MDI1MTE1ZDIzY2YyYjFmMGQzMWE4OWY5ZGQ0OWZiN2EyYzg5ZmQ2IGxlZ2FjeS10cnVuaworMTYzNTIgYzUwM2Q4ZTQ3NGIzNzBjMmEzYzkwMWQwNDZkMWMyOTdlMDQzYjU4MyBsZWdhY3ktdHJ1bmsKKzE2MzUzIDIwNzdiZjE0MWIzNzdhNDQyNjg0ZGQ0MDg1Yzk2YjJmMjM2MTYwZjkgbGVnYWN5LXRydW5rCisxNjM1NCA5Y2E1MGUyNDMzZWI0MWVmMjQ5NmMzNDM0OTJiY2YxMTE4ZjNjNDVlIGxlZ2FjeS10cnVuaworMTYzNTUgZGY2NGNjMGU4NGUyYTkyYTc0ZTk2ZTQwNDE4OTNiM2IzODI5NjVmMyBsZWdhY3ktdHJ1bmsKKzE2MzU2IDU5NDliNDc1ODdkOTU1NWJhNDZkYTI1YTYxZjZjZDJhOTQyMTg5YzYgbGVnYWN5LXRydW5rCisxNjM1NyBhMTNjZWE0MzBjMTM2MGU0ZThjMmUxM2M4ZDIzMzlhM2VkOTM2ZThhIGxlZ2FjeS10cnVuaworMTYzNTggOTMwZjRiYmJkOTNhYTZkMTU1OTNmNWFmOTc2OGUzMmMxM2U5ZmU1YSBsZWdhY3ktdHJ1bmsKKzE2MzU5IDI1ODQ2OGEyMGQ3NDU3NmU1ZGQ3YjMxZDYwMjg4OGE3NTlkZTA4YmEgbGVnYWN5LXRydW5rCisxNjM2MCAwN2Q3NDAzY2ViMGYyNWFjYzNjNjRiZTNmOGEzMDA0ZTAyOTQwOWE3IGxlZ2FjeS10cnVuaworMTYzNjEgMzI2MDIyMGFhZWU0M2QyYzU3ZjY4Njc0ZmFmNTBiNDQwNDExY2UzNCBsZWdhY3ktdHJ1bmsKKzE2MzYyIDM5ZjU0YjlhN2Y5Y2I2OTYyMjQzMGUzZDk3OTYzYmM2YTg5OTc1NDUgbGVnYWN5LXRydW5rCisxNjM2MyBlZjhiMjBiOWY2ZjUzNzE4Mjc2MmMwY2M0YzY1MDhjOTVjODk4OWJmIGxlZ2FjeS10cnVuaworMTYzNjQgZDdhZWMxN2NkMGI1MDQ2YjU5NDgwZDZkNTlhNjllMGM3M2UzZWZiMSBsZWdhY3ktdHJ1bmsKKzE2MzY1IDQyYjY3MmEwOWM0YTEwM2U1NTlmZDYxMDMzYjAyZjhiNjhiODRhZTcgbGVnYWN5LXRydW5rCisxNjM2NiA0ODNlNzVlZmMxMTEyMTgwZGZhNGYwY2Q0MzAwZjI1N2RmNWI4MTJmIGxlZ2FjeS10cnVuaworMTYzNjcgZGMxN2VmMWE3NjEzODBjYmVlZTJhZmE0MjBmMTdmMjgyYTQ0ODEwYyBsZWdhY3ktdHJ1bmsKKzE2MzY4IGM5YTRhMTMxNjE3MDgwOTBiMDczZjg0Nzk2ZmIzOGIxYzM0YjA3OGEgbGVnYWN5LXRydW5rCisxNjM2OSA1NTgzY2ZhNmQyYjBmM2NkYjE0M2I0OWFkMDQ4N2E0YzMyODBlNzU3IGxlZ2FjeS10cnVuaworMTYzNzAgYTkwMWMyYzAxNjZiYWE2YTE5NTI4OWJlYzMzNWUzMGMzOTFjYmM0YSBsZWdhY3ktdHJ1bmsKKzE2MzcxIDI5NTk4N2YzZmJkMjIwMTI3NDE5OWE0ZWRlZGMxODhlYWQyNzE0OGYgbGVnYWN5LXRydW5rCisxNjM3MiAyZWNhNDA1MWYwNWNiNWY5NDE1YWY5ZDZiMjkyYzJhNDAwZDAxYzE2IGxlZ2FjeS10cnVuaworMTYzNzMgODhiNGYzYjUwOGRhYTU5ODliNWMyNjk0M2VhOWRhYTg0NzU0MTZhZCBsZWdhY3ktdHJ1bmsKKzE2Mzc0IGYzNDAxZWQxMzJhMTRjZmY0YTYyODNlZjM3MGJjY2VhZmUxNTMwODkgbGVnYWN5LXRydW5rCisxNjM3NSAyNjA3NWMwM2YwMjI3OTU5NWIwMmIyNzU1Zjc4MjM5ODkyNjQwZjdkIGxlZ2FjeS10cnVuaworMTYzNzYgZTc4ZWRjM2NmYWU2ZWFlNzMyMzZkODcwODU2ZDUxNjFjMjVmZGUyNSBsZWdhY3ktdHJ1bmsKKzE2Mzc3IDg3YTQxNmQ5ZDliNmY3NDAxNTRlNmUzYTBlMzg1YmRkOWMzNTg1YWEgbGVnYWN5LXRydW5rCisxNjM3OCBmN2Q5ZTYxODVmNjIyMmMxZWIyZDc0ZmI0ZTZiM2E2OWRjODY4ZmMyIGxlZ2FjeS10cnVuaworMTYzNzkgZmE4OTQ5NjU4NGM2MjdiM2ZkZWMyMzJkMzJkZWU2NWEzNTMwMjdmZiBsZWdhY3ktdHJ1bmsKKzE2MzgwIDA4Njk0N2NkMjAyY2MxMzU2ZWExODNkNzA4ZDM4ZDE0YmJhOWFmZDAgbGVnYWN5LXRydW5rCisxNjM4MSBiNzQ1NDhhOTBhNjNjMDM2OWVkZDI0NzkyOWNmNzVhNTIyZjRhZjJjIGxlZ2FjeS10cnVuaworMTYzODIgNWI3MjdhYjM3MDkyZDU3MmFhNzg5NGY2MzljY2UxMDBjNjg5OGYxMSBsZWdhY3ktdHJ1bmsKKzE2Mzg0IGYxMWM0NzI3NjRhZDM3MTcxN2NhMTllMzE2ODIxNGU5MGVhZWQwNzUgbGVnYWN5LXRydW5rCisxNjM4NSAzNzkxOTY3Y2IzMmVmODZmYzQ5MTQ1MTcwMDIwYTg3NmEzM2RkMzNiIGxlZ2FjeS10cnVuaworMTYzODYgMTY3ZGU0OTUzODEyZmFjYWE2YWQxYmYyMDMwMjQyYmVhZWQwNmE5MyBsZWdhY3ktdHJ1bmsKKzE2Mzg3IDgzYTU5NWU2OTFlNDI2MmI3YzI0MmI2MGNiODVhZGVmZGEzMDdlNWMgbGVnYWN5LXRydW5rCisxNjM4OCBmZGZkMTA0OWYzNmU5NDNlN2Q1OTQ2OGVkOGE0ZTk0ZDM1ZjQ5ZTQ5IGxlZ2FjeS10cnVuaworMTYzODkgZjRkYTQzNTVhY2RlNjJmZTYyY2E2NmRiMzBjOGE3ZjdkMmVhZDdjYiBsZWdhY3ktdHJ1bmsKKzE2MzkwIGY0MDg0ZjQ0M2YzMTlkYTU5OTRhNTcyMjcwYjYxZTc1YzEyNjRiNDQgbGVnYWN5LXRydW5rCisxNjM5MSBkNmQyM2Q1ZTI5NmQ0MmY0YWNhYmY1MTBkNzczMjY2NmZkYWI1ZDZhIGxlZ2FjeS10cnVuaworMTYzOTIgYTFhZDc5MWUxODIxODJlZTZjNzE0MTQ4ZTg4MWRhOTg0MmY2NDYwMyBsZWdhY3ktdHJ1bmsKKzE2MzkzIDczYzY2MWJlMWVhM2RlNjNmNzM4NmRmNzkzODk4MTZmMjNhY2I5MmQgbGVnYWN5LXRydW5rCisxNjM5NCBmZjgyZmQ0MjJmMWMxYTMyOGQyZTNhYjE2NGE5MTgxM2U5ZjViYjUwIGxlZ2FjeS10cnVuaworMTYzOTUgMDg1OTYwN2NhM2U1M2JhYWYzNTFjZDhlYmFkZjNiNTU4YTA5ZTUzYSBsZWdhY3ktdHJ1bmsKKzE2Mzk2IGUxNDY5YjdhMmU2OGRiMjkyNmUyMDkwYjc0MTJiNTllMmNlYWFhYWYgbGVnYWN5LXRydW5rCisxNjM5NyA2ZjBkOTZlNmI1YTUxM2NiN2IxNDA3ZjNjNjEyYzM0ZmFmNzQ0ZDY1IGxlZ2FjeS10cnVuaworMTYzOTggZGZiN2VjZmZmZTNkNWIxYzY2YjY0YjdmMTJhOTU3NjI3NGFkMjg0NyBsZWdhY3ktdHJ1bmsKKzE2Mzk5IGI1MTIwZjU4YzVkYTU4MzEwZjhkZjdjMWNlNmZkNjA1YTRjYjE4YzIgbGVnYWN5LXRydW5rCisxNjQwMCBkOTAxYzQzZTdkNThjZTk5ZjdhZjg0OTBjMmIzNGM4M2ZmZGFlMzdjIGxlZ2FjeS10cnVuaworMTY0MDEgNTgzOThjMGY5NDhiYzg5Njc2Mzc4OTA5YmRhMTQ0OWE0MWM1ODg0NiBsZWdhY3ktdHJ1bmsKKzE2NDAyIGUyZTI1ZWVlNmE0YjE0N2I4Y2QzMzM3OTI3Y2UzMTgxMWQ2ZTc5MmMgbGVnYWN5LXRydW5rCisxNjQwMyAzNzE4ZTUzOThmYWQzNGI3NjgyYTkxNjJjYTdkZmM0ODBmODViNjlmIGxlZ2FjeS10cnVuaworMTY0MDQgMzhlYTI3NDU1Y2JiM2NiODg3NGE4OTg2Mjc2MjUwYTdmYmVjNDc2NSBsZWdhY3ktdHJ1bmsKKzE2NDA1IGRhY2M5ZjE2N2U5NTlmZjcwYjZiZmZmNmRhZDgyMjgyYTQwZmVkMzQgbGVnYWN5LXRydW5rCisxNjQwNiAxNTI4YmMzYWM3M2Q1MDMxOTQ4YzZlNDNjYzg4OGQwZTdiNzQyM2Y1IGxlZ2FjeS10cnVuaworMTY0MDcgMmQ1YWEyMTJhMzIyYjJmOTk1ODMzNzIzMDZlNDNhZTQ2ZmVjMTU4OCBsZWdhY3ktdHJ1bmsKKzE2NDA4IDBjMDhkZmE2MzRjMzRlNDdiYzMzNmM1NTg1Y2ZhYWNjYjNkMjFmMGUgbGVnYWN5LXRydW5rCisxNjQwOSA1MjU5NWI3MGE1Njg0ODhmYTM1Njk1YmE5MWIwNTk5ZDI1ODQzZDA1IGxlZ2FjeS10cnVuaworMTY0MTAgYjJmYmQ5ZmNlMDVlNWU1MDA1YmUyM2Q5M2Q0ZGIzMGU3YjJmMWY2MyBsZWdhY3ktdHJ1bmsKKzE2NDExIDhlZTRhMjA5YTllZjViYWJkMWJmMTA4MDQwOGM2ZGUzZmJlOGUzYTAgbGVnYWN5LXRydW5rCisxNjQxMiBmODA1NzFiYjI5MTNlNzg3NzlhNDQxOTMxZTM2Yzk3YmY3ZGY2NDczIGxlZ2FjeS10cnVuaworMTY0MTMgM2Q2ZDIxOGI2NzNkMGNmMTQ1NWEzMDgyYTljMTBhMWU0NGRkZjhhYyBsZWdhY3ktdHJ1bmsKKzE2NDE0IDhhMDYzNDIzZTBiN2RmOTk3NDg4ZjMxZTZiYjZlYWM1N2M5NzIxMjUgbGVnYWN5LXRydW5rCisxNjQxNSAxMTdkMjA5NjhhMTA0MmQwMDUxODg0NTM3N2FjMTI1YTlmYzE5MmYxIGxlZ2FjeS10cnVuaworMTY0MTYgYTc0YWE0OWIwYzM3ZmFkOWVlNmNhYTBmZGEyYjliMjE2ZDczYmE1ZCBsZWdhY3ktdHJ1bmsKKzE2NDE3IDBiYjQ5YjNkYmRmMGFjYWRiZTM2ZDBlMDBhMDZiMGZlNmU4M2FkNjIgbGVnYWN5LXRydW5rCisxNjQxOCAxMjY1MmRhNmQ2MzJiYTA4ZDI3NTBmZGUxOGM3YWM3NjgyNDI5ODFmIGxlZ2FjeS10cnVuaworMTY0MTkgOTlkZDFjOTMzMTYxNmJkYjg5NzdjZjE0MjQ5ZDkyNTBlNDU4OGY3OSBsZWdhY3ktdHJ1bmsKKzE2NDIwIDZhNTMxNGE2YzJjMjk5ZTMzYzczYzc5NGFmMzFkYTNhM2ExMDJlOGYgbGVnYWN5LXRydW5rCisxNjQyMSBmNzk0MzRlZTQxZmE4NjAxOTIxNjI0MGJhMzJiZTY2MGJjZmM1NDE5IGxlZ2FjeS10cnVuaworMTY0MjIgZTc4MTUzZTE3OWZiY2NhYTUxMjk3YTA5MTE1ZjNmN2E1YWFlNjNjOSBsZWdhY3ktdHJ1bmsKKzE2NDIzIGExY2UwNzIxODc4MTM0YjM2ZDUwZGIxMWZkODJmMDdkODQzZGZlZmMgbGVnYWN5LXRydW5rCisxNjQyNCBlZjI1ZjMyYzQ1MjM5M2YwZDRkMTAxYzMyNzM0N2ExNDNlMDE3ZWQzIGxlZ2FjeS10cnVuaworMTY0MjUgYTM4NTZhYjZiMjA2ZDdkMmNmNmJhNjc2YjBiNTE5OTdjZWFmM2Y2YiBsZWdhY3ktdHJ1bmsKKzE2NDI2IDI5ZGEzNTU0MzgzMzIxNjAzNmQ5NDE1Mjc1Y2MzZWNjNjBjZGI3YzMgbGVnYWN5LXRydW5rCisxNjQyNyBlZTEwODM0ZDY3YTM2YzRmN2IyNjMwODNkN2JhNzNmNmEyYjQ3NDE1IGxlZ2FjeS10cnVuaworMTY0MjggZWFmYjc5OTYzZWE2NGVlOTE1MDRkZGI0ZTI4ODFlMmM3ZDk1YzA0MyBsZWdhY3ktdHJ1bmsKKzE2NDI5IDM2ZGU3YjZhYjdlYjk5NDE3MDEzM2MxY2MzOWQ4ZTA3YjA2YWRjYTggbGVnYWN5LXRydW5rCisxNjQzMCBhNmM3YmZkZDY3Nzc0NjRhYmU5NDc5ZDI4MmI1NTk5YWY5OTk5OWNkIGxlZ2FjeS10cnVuaworMTY0MzEgZDdkODFlYTljODJkZTAxNzcxOWM1M2NmYzgxNzQxM2VmYjlmZjYxNiBsZWdhY3ktdHJ1bmsKKzE2NDMyIGU5NGMwNTM1MWQ0Mzc0YmVhNWQ5YTBiYjRiNjE3ZTUyYmFhZDU2YTcgbGVnYWN5LXRydW5rCisxNjQzMyA0Mzg4MjQ5NTA2ZDE5MGE3NmE0ZGJiYmM3MDI5NGVmNmJhMDY1NmQ1IGxlZ2FjeS10cnVuaworMTY0MzQgMjY2ODViZDJjMDllNjFiZjM4OTY1NWY4M2VmMTRmNDJiNTYwNTVkMyBsZWdhY3ktdHJ1bmsKKzE2NDM1IGJmYzViMmE4YzExZjVlNjI2NjgyYjk4ZDM3NmZhMmVmNjk3MGEzOWQgbGVnYWN5LXRydW5rCisxNjQzNiBjYzBjMGRjOWZlZjBkYzQ0MWI4NTYzYTliNDRjOGQwNDBjMmUwM2I5IGxlZ2FjeS10cnVuaworMTY0MzcgYzkwZDk0ZDI4N2Q3OWI3NDVlNGI1YTBiZDU1MTVjZWRhNzMxNzRlNiBsZWdhY3ktdHJ1bmsKKzE2NDM4IGIxOTU5ZjAwNjU2NjU5MWIzYmUxNDAxYjljZDBmMTY0NTFlYmM2MDAgbGVnYWN5LXRydW5rCisxNjQzOSA1NDIzYjEzMmJjOTdhZjRkMjQwNzZjZWYxNmYyNzNiNjRmYWYwNGQzIGxlZ2FjeS10cnVuaworMTY0NDAgZWRiMWE4ZTZiODU5NTk2MGJiZGQ3OGJiYzYwYWUxZjdkZTc1YmQ5MiBsZWdhY3ktdHJ1bmsKKzE2NDQxIDMxNzdlMjgyOTE2Nzc5N2VhMDgxNmNmNzA3MmU0MDNjZjhjMjdhZTggbGVnYWN5LXRydW5rCisxNjQ0MiA2MWY2NWRlMTllMWU2OGVhYWM5NzVlM2JjNTUyNDcxMTJiZmIwNDJiIGxlZ2FjeS10cnVuaworMTY0NDMgOWY2MTg5ZTg5MjEyMTU5NDY5YTYxNWVhNzI0MTA1OWRkYTgyZjJhMiBsZWdhY3ktdHJ1bmsKKzE2NDQ0IGIwZTgzOTYyZjRkYTcwOGRiNzhlZjE3MGI0NDMxMjNiYWIzYjJkMGYgbGVnYWN5LXRydW5rCisxNjQ0NSA3ZGUxOGYwNGY4NWE3N2ExZDU1YWI2MTkxYmZlM2JjNTk1ZGE3NTVhIGxlZ2FjeS10cnVuaworMTY0NDYgOGNiMjRlMGJlZjliZTU5YzNkZjUwOGZkNjE4M2I1Y2YzODRkOTliYSBsZWdhY3ktdHJ1bmsKKzE2NDQ3IGVjMTlhMGE4Y2Q2ODc3YjE5ZDQyNWU0OGM3YWFmMDg1YzdiNDdiOGYgbGVnYWN5LXRydW5rCisxNjQ0OCAxMjljOTc3NWNjMTkzMjBjZTU4OGUwNGNhODdhMzQ3NzBlYWVkNTk4IGxlZ2FjeS10cnVuaworMTY0NDkgOWE1ODU1ZWEzZTU2YWU1NDM5NDA1NzNmNTdiZjM5ZGVmNDkwNTNjMSBsZWdhY3ktdHJ1bmsKKzE2NDUwIDYzODMyZWRlNTc3ZmM1OWY5YjQ4YWVjOTllYjRmNGVkNWEwZjYzM2YgbGVnYWN5LXRydW5rCisxNjQ1MSA5NTg5NGMzMTA4ZDE5ODVmNjA0ODVlMzQ1YjEwMzY4MWY4MTFhMTM2IGxlZ2FjeS10cnVuaworMTY0NTIgOWRiODZiMjcyNzhmYzkyMzY1YThlNDY5OGY3NjM2NmZhMjdlYWE5NSBsZWdhY3ktdHJ1bmsKKzE2NDUzIGMwOWMwMTcxNDc0ZjBmNDljMWRhYmMwODRkYWQ4NDM5OTZiOTkwZDUgbGVnYWN5LXRydW5rCisxNjQ1NCAwZjFjNjA1M2U4ZDA5MjIzNzI4Y2E3OGFkY2UwNjg3NmUzM2M3YWJlIGxlZ2FjeS10cnVuaworMTY0NTUgNzkzYmJhZDZkMDljZjA4MzhjNTgwYmM2MWUwNDkyNDgxYjJmNDczNiBsZWdhY3ktdHJ1bmsKKzE2NDU2IDI1ZmM2ODA3N2I2NjU0MzQwMmU3MmFmODlhMmJkYzBhYmUzNGYwNmIgbGVnYWN5LXRydW5rCisxNjQ1NyBiNTRmMTFhZGE5MWVhMDEzODg1YTMxNDhhZDViZDA2MGJjYmU2ZWJhIGxlZ2FjeS10cnVuaworMTY0NTggYTI4ZWQ4YzVlNjJlMDI2Y2EyODM1Y2E4NGI3ZTVmMzcxMGVjZDFkMiBsZWdhY3ktdHJ1bmsKKzE2NDU5IGJiMzY0ZDZmOWY2OTI1NjA0MTYwYmUzNmM0MmUyNzg1MDc0MDJjZTggbGVnYWN5LXRydW5rCisxNjQ2MCA1ZTJlOTFmZmFkY2Q4ZTQ4NWVmYTQxM2YyYzhhZmE0ZWNkZTM5YjQzIGxlZ2FjeS10cnVuaworMTY0NjEgY2IyOWQ0YTJjMTdiMGIzZmVmYjRjNjdjMzkzZWUwNzI5ZmM4NTViNiBsZWdhY3ktdHJ1bmsKKzE2NDYyIDAyNmUxMmFjOWY3MWI0MzllY2M3MDZmZWY0NmQzYTNmMzAxNWNhZDggbGVnYWN5LXRydW5rCisxNjQ2MyBkNmRkZWQzYzg1MDc3OGVjMTliZTNjZTg3ODc2NDkzYzEzNTJlODdhIGxlZ2FjeS10cnVuaworMTY0NjQgYzY4MDAzZWZiNzk2YTNhMWQwOGQwY2IxYmRkNzdkOTJiYTYyZWI1NyBsZWdhY3ktdHJ1bmsKKzE2NDY1IGY4NDBiZjZhMzM1MWU2MzhjYTQzMTQwNWE2NjAxMWE3MjM5M2RmNDYgbGVnYWN5LXRydW5rCisxNjQ2NiA5Nzk3MDE2OThjZDI5NzExNWZkYzMzYThhYjVjMGE2ZmUwNjJhNjljIGxlZ2FjeS10cnVuaworMTY0NjcgYzlmZDUyZDdjYTBhZTdjOTQzYzk5Zjk0ZjllYmIxODRlY2I5NzA0MyBsZWdhY3ktdHJ1bmsKKzE2NDY4IDQ2MWY5YjZlZTU1NTc1YmE1NjFhY2E1MTc5NTY1OGFmNDNlMTBiN2YgbGVnYWN5LXRydW5rCisxNjQ2OSAyZTYwM2JkMGMxYTkzZDdjNDcxMjkyNGFmNjE2NTMyM2I3YjgxNjgzIGxlZ2FjeS10cnVuaworMTY0NzAgZGQ5ZmZhMGE2YjExMDdlMDc3NjExMmViNmFhOWJjN2JjY2I3NjNmNCBsZWdhY3ktdHJ1bmsKKzE2NDcxIGZlODllYTFjOTEwODk4YmEzZGJhMTk5NzRkNTkzZmMwMGZmYWQzNDkgbGVnYWN5LXRydW5rCisxNjQ3MiA0ZTJhYWYxZTcyMmE3ODcyNTE3MjcwNjA4Y2YxZTI4NjI4M2Y3MzM3IGxlZ2FjeS10cnVuaworMTY0NzMgNjk3Yzg4Y2M0NzE0ZGZiMDJkNjNlYTIyZmQxMWM4ZTAzNTEzZTY0OCBsZWdhY3ktdHJ1bmsKKzE2NDc0IDQ4ODg2ZmE4MmFkNTBlODZhYTVmODVlY2U1ZjgyZGE5NTVmZDc2ZjAgbGVnYWN5LXRydW5rCisxNjQ3NSAwMDAzMGViODgxMzFmODQwZjNiMmJlZTkyZDAzN2VjNGM5MzYxYTQxIGxlZ2FjeS10cnVuaworMTY0NzYgYzg3YTM3YTNkMmU2NWI3NjE0ZDcxY2RkM2EzNWRiZDE5Mjc1MmFjYSBsZWdhY3ktdHJ1bmsKKzE2NDc3IGM5ZDAzOTE5NmRiNjEwOGIyMmVhZTNiYTZhMDlhNWM1YTc2YTczOWUgbGVnYWN5LXRydW5rCisxNjQ3OCAwNmQ0MjI1OTE5ZDRkMjYzNzI2NzljZTMwNzEwYzZhN2U5ZTZmOWQxIGxlZ2FjeS10cnVuaworMTY0NzkgNjU3OGZhZjQ4Y2QxZDQ5Y2Q5ODk3MDQ1ZTg5OGY4Y2VlNTYzZmI2ZSBsZWdhY3ktdHJ1bmsKKzE2NDgwIDVjM2VlNzZkMjQyZTNlOGYxZWQ2NmRhMTlhYTNiZDc2NzljM2RlMTggbGVnYWN5LXRydW5rCisxNjQ4MSAxNzI5M2YxMmU4ODQwZWIyZTdmODQwMTA4ZTUwY2FhOTM0NzIzMTQyIGxlZ2FjeS10cnVuaworMTY0ODIgNzY3YjJmN2JlNDBlNjNkZmU1NDhlMGQyYmZmNzg1MGJkZGYyNTEyYiBsZWdhY3ktdHJ1bmsKKzE2NDgzIGQzZjY5NDAyMzY0MjViY2Y4OGEwMjI1ZDIzNDE5MDU0OTdjOTkzZWYgbGVnYWN5LXRydW5rCisxNjQ4NCAwNWQ1OWY0NDc2YWQ1MGY2YTk0OTY0ZDJhNmJiZTA3OWYxMzNkY2IyIGxlZ2FjeS10cnVuaworMTY0ODUgYjNlOGQyZTNkYzczYjA0YjBlZDEzZGVjMjRmMmVlNmVjMjY1NjIzOSBsZWdhY3ktdHJ1bmsKKzE2NDg2IGI3YzkzYzY3N2U1NjU4OWU2NjAzN2NlYTFhNzQ3ZDkyZjAzZTgzMTUgbGVnYWN5LXRydW5rCisxNjQ4NyA1N2QwMmY2MzRhMDJiNzc4OTBjNjA5MmRiZmQxN2JmZTAyYWVhMzc5IGxlZ2FjeS10cnVuaworMTY0ODggNDQ5ZGQzYTAwYmQ3MjkyOTg5NmViMTA3MzRjZGY4OWNjNjQ3M2VlNiBsZWdhY3ktdHJ1bmsKKzE2NDg5IGVjYjhhYWNmZjJlM2FlODZmZjUzN2NlMGIwZGI5MmI1MzQ2YzE5ZmQgbGVnYWN5LXRydW5rCisxNjQ5MCAwNTE3N2NkNDQxYTE4ZTc4Njc4ZWQ5N2E2ZjQyYmQyYmQzZjEwYWUzIGxlZ2FjeS10cnVuaworMTY0OTEgYjc2OWUyZGQ2YTUxYmZmZDY2MDdlMGY1Nzc5ZjNkYTAyNTJkMGRhMCBsZWdhY3ktdHJ1bmsKKzE2NDkyIDU0ODYxYmY2NzQ4ZGE2M2Y3ODRmNmRlODI4YWM4NGI3ODBjYzExZmMgbGVnYWN5LXRydW5rCisxNjQ5MyA2ODlmMTkwMDQwNjM1NDM2YjkwMTcyZmNkY2I3MWU1MzU2NGY4OTUwIGxlZ2FjeS10cnVuaworMTY0OTQgOGQ5OTZmOWM1OTAzYmYwY2Q2ZTdiNjhiZTY2ZWMzOWZkYzdmMWUwZSBsZWdhY3ktdHJ1bmsKKzE2NDk1IDljZTNlMDViN2ZkYjI3NGE2YTc1NTk5NTFlMTg1MzIxZDA3ZTg2OTUgbGVnYWN5LXRydW5rCisxNjQ5NiBiYTM2YTljM2Y0NzcxNDIwMzQ2MmQyYzJkZGE4Mzg5OGQ1MDcxYWMwIGxlZ2FjeS10cnVuaworMTY0OTcgM2I2OWE5ZDA0NGYxYzQzMWY3ODMyMjEyMjNmZWQyMTM1OGE2Y2JkYyBsZWdhY3ktdHJ1bmsKKzE2NDk4IGE5NDlhNzJhZjk2OWNiMmZmOTQwMmExZjg0OTVlNGZkMGE1N2RmMmEgbGVnYWN5LXRydW5rCisxNjQ5OSAzMmNlMjU0ZjNiZWE2ZjkwYmE0NjZjMTI5NWI2ODExN2IyODAyNjZjIGxlZ2FjeS10cnVuaworMTY1MDAgYzMxYjEzYjdkYjc0MDc1MTA2OGI2Yzc0YmY0NWViMTA3OGI2ZjZjOSBsZWdhY3ktdHJ1bmsKKzE2NTAxIDE0NzVjMWNjM2JmMWVlOWMwMTU5NWJkODdkNjFjYmEwNmYzNDRhYjcgbGVnYWN5LXRydW5rCisxNjUwMiA4MmQ5YzJmMTMwOThlNWM3NmZmNDlhY2NiZDZlZWZkZGU2YmQxNDM0IGxlZ2FjeS10cnVuaworMTY1MDMgOThkODE2OTU2M2U3MWQ3NGFhZTM2YTMxZDQ5Y2I2YjRkNmJmNGRiYiBsZWdhY3ktdHJ1bmsKKzE2NTA0IGY2NWI4NjczOGQzYjU4YzIxYjEzOTZmNjgxMTdiNmY1M2JkZGZkNmIgbGVnYWN5LXRydW5rCisxNjUwNSBlZThmMDllNDEzOTU0NjFiYWI4YThlMDE4ODA3ZDM2NTg0MWZhYzkzIGxlZ2FjeS10cnVuaworMTY1MDYgYzc2ZTc0YWJiNjViYWYzZGVmNTQ0NWViMzI0MDc1NTljODBiMGI2ZCBsZWdhY3ktdHJ1bmsKKzE2NTA3IDVhMzExNGU4YzAyN2E5NDYzZWE4NDkzODI3ODJlMjY4ZmJjODUwNmMgbGVnYWN5LXRydW5rCisxNjUwOCA1YzA2N2MxYjVlZDBkOGE1ZTY5MWY3OTM2OWQ5MzFlOTcyZDVjNTUzIGxlZ2FjeS10cnVuaworMTY1MDkgYTQ0ZGJiZGU1ZWNmZGE1NzlhOTY1OWI5ZGJiM2E2NmMyOWE0NWRhOSBsZWdhY3ktdHJ1bmsKKzE2NTEwIDdhZTlmYTQwOWI0NmYyNmM1MjMxMDNmNjFiMzgzY2ZmNTQyY2NlZTQgbGVnYWN5LXRydW5rCisxNjUxMSAwODNiNGU1NDcxNzFlZjlhNGRiZTQ1NzJkMWQ1NGYwZjcxNDA0NjNiIGxlZ2FjeS10cnVuaworMTY1MTIgMWU5ZjMwZWVjNDgyNDQ4MWVkYmFhMDMxNDJkM2NmMGUwNmEwZDVhNiBsZWdhY3ktdHJ1bmsKKzE2NTEzIGRmZGI5MTFjYmVjMjUyYzkzNjY1YmJjMWQ3YTlmOGFkYWZiNGI0YjcgbGVnYWN5LXRydW5rCisxNjUxNCA4M2RiYTNmNWY3YjQ2YTAwOGI5MDAxZDk0MGI1NTU3YTBiNzY4MDcwIGxlZ2FjeS10cnVuaworMTY1MTUgOGQxMDc1N2E1NzViMGE2Y2ZlNTFmZDg4YTM0MzI4YjA1OTczYzFmZSBsZWdhY3ktdHJ1bmsKKzE2NTE2IDg0Zjg1NzlhMDc5Y2RhYWJmZGJlZDk1NWE4ZTE0OTUwODVmMmQzZmYgbGVnYWN5LXRydW5rCisxNjUxNyBlOGRjMGEwYmU0YmFjYzA4MTdhMTQ1YTU2NmQ3MjFmNTcwOTBhMTcwIGxlZ2FjeS10cnVuaworMTY1MTggNjMyYmU5OWNjMmNiMTM4NGMwMmM1ZjVkYmQwODNlYTc3ZjMyNDVlMiBsZWdhY3ktdHJ1bmsKKzE2NTE5IDAwZWQ0Yjc0MzAyZmQ3ZTg2NzllMDViMTdmZGQxYzA4YmQ1YTY1ZjQgbGVnYWN5LXRydW5rCisxNjUyMCA2N2I5YjA1Y2U1YTVkZmIyNzUyMTYwM2MwZTY0Mjc1Yzc2M2FkNThlIGxlZ2FjeS10cnVuaworMTY1MjEgYmMzN2U2YTMzNWYyMTVkOWI5Y2E5M2Q1ZjM2YzU0YzMxMGE4ZGNhYyBsZWdhY3ktdHJ1bmsKKzE2NTIyIDQ5M2IxMDY1NzYzZGJmY2JjM2YyNDIwZTg1ZTgwOWNjMzQ3NjAxNmMgbGVnYWN5LXRydW5rCisxNjUyMyAxNmI2MGJkNmMzNzVkYTliZjRmYWU2ODBkNTBhODBlNGRkODgxMzc0IGxlZ2FjeS10cnVuaworMTY1MjQgZDg5ZGExN2I0NmY2MTBhYTVmY2Y5NjIyOTEwM2ZlZDA3YmE4MTZiNiBjbnJpLTE2LXN0YXJ0CisxNjUyNSA2ZjhkMjRiMzMyZDM1ZDU5NWNmNGYyYjJkMWFkZWQ1MDBhNzcxZjRkIGNucmktMTYtc3RhcnQKKzE2NTI2IDU5ZjhjZWRjZjA0OTUxYzMwZmQ4YTBjMmEyOWNhMTNjYjg1MjU0N2YgbGVnYWN5LXRydW5rCisxNjUyNyAyZDAwYmNlZDYwMzg3MGEzMjczNjhhMTY1NjI5Y2VkZDMwYzgxNTdmIGxlZ2FjeS10cnVuaworMTY1MjggYzFmYzQwNjY0NjAzODJmM2QzMzkyMjc2ZWQ4MzM0Mjg3MTJhMDllYSBsZWdhY3ktdHJ1bmsKKzE2NTI5IGZkYmM4NzMwZDM1Njk4OTcwZGRkZTQwZjk1NTNhZWQwZTkyZmM0MGUgbGVnYWN5LXRydW5rCisxNjUzMCBiMWI0NzRjYzg5NjY0MzdkYTRlYTIxNGVlMTY2NTE0NzhjYTczMTY4IGxlZ2FjeS10cnVuaworMTY1MzEgZGFkMDEzMTdiZWQ3MmZhZjcwNWViNTA5NmYxOWQyOWYzMTIyN2IxMSBsZWdhY3ktdHJ1bmsKKzE2NTMyIDhiYmMwZTY0MzJhYjQ4MmJiODc4YmNkOTc4MzYwMzY2MTY2NTIwZWMgbGVnYWN5LXRydW5rCisxNjUzMyAzMjNkZTNhOGZmOGViYzI1YjhmMzZiODU1MjA5NTlmY2UzOGM3M2MwIGxlZ2FjeS10cnVuaworMTY1MzQgZjcxY2QyNDUzNWM0MDYxOWNjOTE2MmQ5ZjMyNDUzZDdlMzJjYjMwMCBsZWdhY3ktdHJ1bmsKKzE2NTM1IGIwOGFiMmNkZjc0MmQxMGFkYzgyZjI0MzE3MmEwOGNjODQwYTEzMjggbGVnYWN5LXRydW5rCisxNjUzNiAyY2ZmY2Q3MWQ1ZTQxNDcxNDgyZDNjY2NhNGJhM2MxMTZlNTU2NDg5IGxlZ2FjeS10cnVuaworMTY1MzcgZWVhNTEyNzVhY2JmYjQ0MmZhZWRhYzQzZmQwM2Y4NWYzYWZhZWYwMCBsZWdhY3ktdHJ1bmsKKzE2NTM4IGI2ZDkzZGJhMTIwZWFiNWQ1NjEwMjIzN2MzZjIzOGE2ZGY1MjhmMjkgbGVnYWN5LXRydW5rCisxNjUzOSBmMWM5N2FmNGM4NDcwOWJlNjJhNzBmNjZiMDRmZjExMzA4MDg3ZGNkIGxlZ2FjeS10cnVuaworMTY1NDAgOWZiY2ZiZjhhMWQyOTJiOGZlZjAzYmQzOGRmYzU2MzRlNTA1ZDY5ZSBsZWdhY3ktdHJ1bmsKKzE2NTQxIDMzZGYzYjUxNjcxMTllMDUzYjBkZTMyMGFkYzM1NjNhMTIxZjllMTUgbGVnYWN5LXRydW5rCisxNjU0MiBiMzkwM2UwNTAxN2YxNjA0MmE2NTA5MTYwZmE2ODRjNDc4ZmI2MGQ1IGxlZ2FjeS10cnVuaworMTY1NDMgZjZlNGE5ZGQ2N2NkZDNlYTRhY2NlZjc2OTY2NjNhZjIzNTVkOTNjZSBsZWdhY3ktdHJ1bmsKKzE2NTQ0IGFiNDJkNDU0MjQyNDg1MmY5MGQ1OWUzZWYyOGJlMjJhNTQwYjI4NjMgbGVnYWN5LXRydW5rCisxNjU0NSBlMjBmZTAwNTI2ODA5NTU0YzA4YjRmNjFiODhlNGEwY2U2YzgxNjhjIGxlZ2FjeS10cnVuaworMTY1NDYgYWQzOTAyNDBlZmIzYjA5NWFjMWE4ZmJjMTI4ZTA2MmI3YjAyODg2MyBsZWdhY3ktdHJ1bmsKKzE2NTQ3IGZmMTExZDI4OTkwNWQ1MjQ3N2MzNTkxMTA5MTY0ZDdjNzk5NTFiODEgbGVnYWN5LXRydW5rCisxNjU0OCBjMjRmNzc1NWIxZjUyNTUxZDA1YmRiZjM5YjVkMzE0YTlmMTA4NGQwIGxlZ2FjeS10cnVuaworMTY1NDkgMWMxODYwMzA2ODgyMjk3MTZjZWUzYWJiMTMzN2JjZWMyNmM1YzZkOCBsZWdhY3ktdHJ1bmsKKzE2NTUwIDQyMDQ1NjRhYmYyMGM1M2ZmZWE2NGM2NTAwYWIxY2Y4MjkwN2QxMGEgbGVnYWN5LXRydW5rCisxNjU1MSA2NjU3OTU2YWYzMWUwYWE2NWZkMDU4ZThmZDUzYjgyZWJiZmEyNGM3IGNucmktMTYtc3RhcnQKKzE2NTUyIGM5MzY4N2Q2YzczMTcxOGY5ZmMyNGM5MmIyZDVlMjc1OTlhNmUwMzMgY25yaS0xNi1zdGFydAorMTY1NTMgZjEyOTBhYmEyOWRhNGEyNzhhYWU4ZmM0MmRhOTg4ZDkzMDYyZjQxYiBsZWdhY3ktdHJ1bmsKKzE2NTU0IDFmOTY2ZjBkNDY3Y2ExZGE3NGJmNjI1NTgxMzJiMDUxNDcwNGI3YzYgbGVnYWN5LXRydW5rCisxNjU1NSBmNjY1MTNhMGRlYTVhNTVlMmFmYTI0ZjgxNDQ4ZjFiYTMxZDkzNWZkIGxlZ2FjeS10cnVuaworMTY1NTYgNGVkZDEzZWI3NTlkMjZjM2Y2MDhhNjg3ZjExN2EyMzYzMWYxNzFjYiBsZWdhY3ktdHJ1bmsKKzE2NTU3IGM2NmU5OTFiNWYyMTdjYmE2OThkN2QwNzg3MGNjZjM0MmE2YzliMzYgbGVnYWN5LXRydW5rCisxNjU1OCAwNjM3NDEzZTU5Mzk3ZTc0ODVjNWE1NjhmNmJlOWRhZDcyNjY1ZmVmIGxlZ2FjeS10cnVuaworMTY1NTkgMWI3ODEzNTc1YWY3ZGM5NDI4ZGZlYTZhZjYwMDllMzE0OGU5MDE5NSB1bmxhYmVsZWQtMS44LjIKKzE2NTYwIDM1Mjk2OGVlNDBlNjI5YWQyNzgzZmZkYTBjYzViNjc5MjkwNzcyZjQgdW5sYWJlbGVkLTEuOC4yCisxNjU2MCA2ZjdhYjc0YjEyOThkYWM1MWEyMTQzYjJmODNiMmI2ODAzZWExMmQ1IGNucmktMTYtc3RhcnQKKzE2NTYxIDhmYmYzMDdiOTBhNmMyZjRlNDdhZmFkNzRiYTU0ZWU4ODdjYmMwOTAgY25yaS0xNi1zdGFydAorMTY1NjIgMTM2ZDNkNzI2NjZhNzk1M2ZjNzQyZTM4ZGUxNzFhNTBiNWQ1NDdiMSBsZWdhY3ktdHJ1bmsKKzE2NTYzIDRjMTBiYzgxMWZlZGFhZDZhMWI5Yjc5MGY3NzZmOTQwMDE1YTA5NTkgbGVnYWN5LXRydW5rCisxNjU2NCBiYTEzODNjOTg3YzhkZTk4ODI4OTY0MGEzMGIyY2FiNTQzMmUxOTc5IGxlZ2FjeS10cnVuaworMTY1NjUgODI5NWY4NTA2ZWFlYTc1OTZmOTNjNzVjZWMwMTYyNWRkYWFiMTkxZSBsZWdhY3ktdHJ1bmsKKzE2NTY2IDQyYTRhNDE3YjQ3NTAzZmQzMWMxMWNmNTg1MTY1ZmMwYjg4MzI3OWMgdW5sYWJlbGVkLTEuMjMuNAorMTY1NjcgMmM3ODY4OTZlNTQ5ZDRlZWI3NWYxYjQ0YmMzNzhjZWMxNDQ3MDg5ZiBsZWdhY3ktdHJ1bmsKKzE2NTY4IGUwMGQzY2U3MWY4OTNhYmNlNWIxNzY3MGFlOGE4YmZhZjE0NzhiNzAgbGVnYWN5LXRydW5rCisxNjU2OSAwMzFkYWUwOGEwYTk4ODAyZGE2ZGFkZWY2OGEwZjg0YTc4NzlmODhhIGxlZ2FjeS10cnVuaworMTY1NzAgYWM0OGQwNzdlYWFjOTdiYzVjZjMyMjk0ODA0OGRhYWVjOGVmMTU4YyBsZWdhY3ktdHJ1bmsKKzE2NTcxIDU0NjYzMjRiYjgxMTRlZjdiYTg4OWZhOGY0NzFmMjQyNTM3NTc4NjcgbGVnYWN5LXRydW5rCisxNjU3MiBmZDQzNzI3ODc2MTFhYTcxZWNjNjk5ZGJkYjZiOWUwN2U0MGM2OTExIGxlZ2FjeS10cnVuaworMTY1NzMgYjFhN2Y2MWFiNzgxMWIxY2UyOGQ3NGI1MmViMGNlMGYxNDk1YThiMCBsZWdhY3ktdHJ1bmsKKzE2NTc0IGU4YjIyYmM4OGQ5NWVhM2Y3ZjFhZTA1YWJjNTkzNmFiNWYzNjM2MGEgbGVnYWN5LXRydW5rCisxNjU3NSBjNzdmODg3M2RhODQxMzI0ODJjMmRmN2U5NTE2YzI3NmU5MDBlZDkyIGxlZ2FjeS10cnVuaworMTY1NzYgMTE2MjU2MzNkMGY2NzAwZmMwMmU4Mjk0ZThmNTNkZWQ2ZjZjOGZhMyBsZWdhY3ktdHJ1bmsKKzE2NTc3IGRlOTA2NjJmMmVhYjE1NDZjY2VlNWFkNDc3MjIwZDY2MmQ0NzI0YjAgbGVnYWN5LXRydW5rCisxNjU3OCBiYThkYjk2ZWE0ZDlmZDQ1Y2RlN2VlODM2NmNmOWQ1NzFmNTA0NWViIGxlZ2FjeS10cnVuaworMTY1NzkgMzc0ZGE1ODJlYzEyZjRkYWE4ZmViMDZiZGRiZjEwMmUwNTAyMzBkNSBsZWdhY3ktdHJ1bmsKKzE2NTgwIGYzOTY4ZGQxNzExYjI1YWI3Yjc1OTBjNGY1Yjg4ZDFjYjk5NmU1OWYgbGVnYWN5LXRydW5rCisxNjU4MSA3NjIzN2MwY2JmMTMzZjZkYjhhNmRjZDk1YTVhZTY5OWVlM2QxYmQ2IGxlZ2FjeS10cnVuaworMTY1ODIgZjM4ZTMyMWJlOGE0MzY0MTYwMWEyODZlMTBjMGZkOWVmNzY0NzE1ZSBsZWdhY3ktdHJ1bmsKKzE2NTgzIDY0ODczY2YyMGIxNmI0MGY5OTExMzhhZTBjODhmMTllN2RkYmI3ZDQgbGVnYWN5LXRydW5rCisxNjU4NCBhY2QwNzU1ZWU3NzI1MTM4ZjcyNTBmYzQ3N2M0ZDgxZDBmYjA0NjM2IGNucmktMTYtc3RhcnQKKzE2NTg1IDRmNzM3ZmIwNDUyOGRiZGIxZWQyNWNiMmY3NWU0MmM5NTVjZjk3MzAgY25yaS0xNi1zdGFydAorMTY1ODYgNDFhZDM2ZmIwMGVlOTM1ZWZkOTZlM2Y3YjYxNDRlNTI2ZmNjODg3MyBsZWdhY3ktdHJ1bmsKKzE2NTg3IDQ1ZDhmMjNkZjIxODJjMWQ3NjY2OWU0OThmYTRkZTBiMTgzNTBhYzEgbGVnYWN5LXRydW5rCisxNjU4OCA1MWYyOWZjYmQ5YmE1YTMwZTM0ZmJiODkxOGIyNWQ1NWNhZTJjOTNjIGxlZ2FjeS10cnVuaworMTY1ODkgMzNmZjRkNGQ5MWFjM2Q4YjM3NzIzNmY1OTUzMWFiZWRkYTcxNGY3NyBjbnJpLTE2LXN0YXJ0CisxNjU5MCBhZmJiZTY3NGQ1OGEwYmFiZmU5YTljNGY3YzkzYWI3ZTQyMzU2NmJiIGxlZ2FjeS10cnVuaworMTY1OTEgM2MwZjc1YTIxOThmZjE5MTIzMzE4ZTQzY2EzYmUxYzE1ODkyMDU5YyBsZWdhY3ktdHJ1bmsKKzE2NTkyIDY2MjJkNzYzMWNjZmYxZjcwZjUwNWRmMTczMjllYThiMmI3NmY5YmIgbGVnYWN5LXRydW5rCisxNjU5MyA5NWVlZTg2ODYxMWVjNjhmN2MyOTAyZTFhY2IzOWE2ZWMyNGE5NjQxIGxlZ2FjeS10cnVuaworMTY1OTQgOGJkODJjZjM2MWFhNDI0MDg1NGNiNDI4NjE4OTg3YjFkNDViODA5ZCBsZWdhY3ktdHJ1bmsKKzE2NTk1IDM1ZTIyNjY4NmMyZWQ4MDBhMzg3NDg2NzFhZGFjOTMzYzk3ZDc5NWEgY25yaS0xNi1zdGFydAorMTY1OTYgZDQzMDA5N2QxYmZkMTg5OWUzMDQ2NzllNGZkMzA2ODZmNzA2YjdiNiBsZWdhY3ktdHJ1bmsKKzE2NTk3IGM1N2I1NzRlNjc2NjRkYzJjOGMwYmQ0MTMwYzViOWVhNWM3NjY2OTMgbGVnYWN5LXRydW5rCisxNjU5OCBlZWVkN2JjOGEyODNkOTVhMzhjOTMzMjgzN2VlOTFlOTY0MDkxOTg0IGxlZ2FjeS10cnVuaworMTY1OTkgMDg0YzYzZDg1ZjkwODI5NTRkNTUxNjUyODMwN2Y2MGJlMzNmYjRlNyBsZWdhY3ktdHJ1bmsKKzE2NjAwIGExMGRjNzIxNWMxZWMxNzViYzMwNDkxYjYyZDczMjlkYTczYTY1YmQgbGVnYWN5LXRydW5rCisxNjYwMSBjNjM4NjNhYmUxYWE5ZGRlYWIxMmQ2MDdhMDM1OTI5NjQ5NmIwNDM0IGxlZ2FjeS10cnVuaworMTY2MDIgNWZkODBjODJhMTVhOTE0MzQ4NzBlYzZhMWI5YTE4OTFlOTMxNmZkZiBsZWdhY3ktdHJ1bmsKKzE2NjAzIDI1NGY4YjdjNGE4MzgxMzY1OWYyMWRhMTAxZjJlMzE1NDhlNTY0YzAgbGVnYWN5LXRydW5rCisxNjYwNCA2MWNjNTRjMzEzZjZjZDE1ODdmZGNlMTRhMzAxYzhhMDUzODA4NGYzIHVubGFiZWxlZC0yLjU0LjIKKzE2NjA1IDAyZTA4MTZlNGIzNzE3YjlmMDE3MWFmZWRjYTY2NjdjYTUyYTI3NWIgbGVnYWN5LXRydW5rCisxNjYwNiBlNGMzODBlZTkwNzlmNzEzNTI3Mzc1NDJjNzkxZjdkYTZmZDE3ZGZjIHVubGFiZWxlZC0yLjU0LjIKKzE2NjA3IDIzYTYyYTg3NTFiNDc2MmI4NTg5NzI0Y2Q5MTUxYTY5MzM5N2ZhMjIgbGVnYWN5LXRydW5rCisxNjYwOCAxNTExNGUwMTc2NTI5NDYwMzg3YWQxYjgyMmU3YWQ3NTBhZDQzZGFlIGNucmktMTYtc3RhcnQKKzE2NjA5IDQwM2M5NzBkMWE1ZTRhYzljYjFhYTY5Njc3ZGRjMmNiYjllZTBjZGQgdW5sYWJlbGVkLTIuMTA4LjIKKzE2NjA5IDlhY2ZkMDM3Y2I5NGRhMTgzNjA2MDI0MzM4MzRhYmRiYzI5YWQ5NGMgY25yaS0xNi1zdGFydAorMTY2MTAgYzM3ODNhMzNmODRiZjAzNTc4ZTkyNmQ2YjQ2YjM4ZTM4OGQ5NTczNyBsZWdhY3ktdHJ1bmsKKzE2NjExIGIwMTZlYzg3MzhmOWQyM2RlOGYyYjgxNWJlOWViMjVjODJlZmU2YzAgbGVnYWN5LXRydW5rCisxNjYxMiA1MTM2ZTM3ZmY1NDhlNjkxMDE3MzIxNDU5YmZkZWM2ZGZiNmE1NzM0IGxlZ2FjeS10cnVuaworMTY2MTMgNGFlYmQwZjJhMDYyNjkyM2Y1YzE3NjU4MGM1MDRmOTJiMjEyMTQzOSBsZWdhY3ktdHJ1bmsKKzE2NjE0IDYzMWI1ZGY0NGRlNjA5NTEzODllZjcwZmI3M2JlYTcyZmJhMjA3OWYgbGVnYWN5LXRydW5rCisxNjYxNSBiMzY4YWE4MjA4ZjNhMWY0ZTZjZjVhZGJiMTE0MmJlNzg5N2FkOWQxIGxlZ2FjeS10cnVuaworMTY2MTYgMTFkODgyMjBmYjUyMjhmZjhjODIyZDk0ODFiNmYwZjBiMjViYTAwMCBjbnJpLTE2LXN0YXJ0CisxNjYxNyAyYmFkYjMyMjM1NWZjZTQ5ODQzNGM2N2ZiZDQ2YmQ0YTYwMjA1NDlkIGxlZ2FjeS10cnVuaworMTY2MTggOTFkOTVhN2I3ODU4Mzc0MDMxMTliMDhlZjYwYzI3MTE1MDVlOGE5MCBsZWdhY3ktdHJ1bmsKKzE2NjE5IDNhZTA2YzU3ZDA5ZWE4Y2I4MWJkZTlhZjVmMTljOTUzODYxMWY4NWIgbGVnYWN5LXRydW5rCisxNjYyMCA0NjUxNDRhYmYwMmEyZWE5OWUwYzA2NjBkNDgzODA1ZGYxOWJlYjAwIGxlZ2FjeS10cnVuaworMTY2MjEgMWU5ZDFjYzJiYzNmN2FjNThhMTJkZDY3ZWIyNjYxYjlhMzRmMWJmYSBsZWdhY3ktdHJ1bmsKKzE2NjIyIDkyNGYwOTgxYmY3NmRjZDkxNGZhYjUxZDRlMWQyMmZiM2RkMDJhNzAgY25yaS0xNi1zdGFydAorMTY2MjMgOTc1NzNjZjkxZTZhZGU5NDc4YmUwZGI0NjVmZTY2MmVmZGQ2OGJhOCBjbnJpLTE2LXN0YXJ0CisxNjYyNCA4NzQ4OGMzMTEzZjI3NmQ2N2RhNDU1ODg4YjVlMmM1NTQyNjY2MDE0IGxlZ2FjeS10cnVuaworMTY2MjUgMDBhNWM4MDZjZjdjYjhhYmE5NDU2M2YxNTMzNWQ4YTYxNzM2Yzk0YSBsZWdhY3ktdHJ1bmsKKzE2NjI2IGIzN2YwODYzNTAyM2YyNjczYWJmYzI2ZTVjMjc5MGFkZWQ2ODE2NTMgbGVnYWN5LXRydW5rCisxNjYyNyBmYzg3M2NhMGM3ZDNmNDhkN2Y3ZDJiYzhiMWU3ODU5YmZkODVkYWE1IGxlZ2FjeS10cnVuaworMTY2MjggMDUyNTg1MWJhMGI3N2FiNzBjMzQyYzM2N2RkM2UxYWU0NDViNzU2YSBsZWdhY3ktdHJ1bmsKKzE2NjI5IGE1NWU0ODgzZjg4NmI5Y2M5NmY3MDIyMGJiZTM5NmE0ZTdhMDFlYTEgbGVnYWN5LXRydW5rCisxNjYzMCBkZDA0MmY1YThmYTIyMTQ0OGVhYmJkOTAxMGM4MjBjMmFmYTU2ODViIGxlZ2FjeS10cnVuaworMTY2MzEgMDk4ODI1ZTc0YTA1YWQ5MmNkZmU3ZmIwNWVlYWJkOTQxMjhjNDI1YyBsZWdhY3ktdHJ1bmsKKzE2NjMyIDM0OGE3YzE4ZTBlNjNhN2YzMjYzMDVhZTE2ZWRhM2ZiMzQ4ODJlNDYgbGVnYWN5LXRydW5rCisxNjYzMyBiNzMxYTIwNjMwMmFlNzBhOWE0MzQ4ZGNmN2UyYmY2NzhiMDA4NGJiIGxlZ2FjeS10cnVuaworMTY2MzQgYzQ4MDUyOTgwN2FiMzMwNmFhNGZhMzExZDNhZjczZjQ3MjIzMzlkYSBsZWdhY3ktdHJ1bmsKKzE2NjM1IDA3Yjg1ZmM3ZWY2ODRmNzc4M2E0NTU5ZTRhMmJlOTcxZjZmOTljNDIgbGVnYWN5LXRydW5rCisxNjYzNiA2NjU4OWIwNmM2MzMwODYxNGZjZGRkZjcwNjg4ZWJiYzA1MDI5ZmUxIGxlZ2FjeS10cnVuaworMTY2MzcgMDRhMzZlOTNkYzNkZDgwNjZmNTA4MWFiOWU2MGJhOWFkMWMwN2YxMCBsZWdhY3ktdHJ1bmsKKzE2NjM4IDQ1ZWRjMzI1ZTg5YTU3NjkwZDg2ZmVmMmNkMTY4YzZjOTdlYTg3YWUgY25yaS0xNi1zdGFydAorMTY2MzkgOTRhZGQ4OGVmMDhjMDZiNTUxODRmNjJmODFjM2UwMDdkNGVjMzQ0YiBsZWdhY3ktdHJ1bmsKKzE2NjQwIDY2ODJmZjNlMzE4ZjVmMjk0MjgzOWFmYWQ4MWQ2MGIxNmRhZWFhZGIgY25yaS0xNi1zdGFydAorMTY2NDEgYTI5NmZmNTUyMjFmNzEyMGI1NmY3ZWU1N2UwMGIxYjcxODdlYjM0YiBsZWdhY3ktdHJ1bmsKKzE2NjQyIDk5ZjA0MTNlZjc5NWYzMTViMjUxZDE3MmI3MmU5YzA5NTg3M2FhNTAgbGVnYWN5LXRydW5rCisxNjY0MyBiZjhkNTZlMjdjN2JiYTU2ZGZmODQ0N2EwZTQ5YzBmZDA0NzBkNzU1IGNucmktMTYtc3RhcnQKKzE2NjQ0IDk0ZjZlYzg3OTMwYWJlNWVkZDRiZmRhMTIxZTI1MzNlOTY1NGUwZTkgbGVnYWN5LXRydW5rCisxNjY0NSBkNzRhNGE0M2Y0NWZiODhhZGM4N2NjMmRiNjYwMzU2YWQ0ODE1YmUwIGxlZ2FjeS10cnVuaworMTY2NDYgNDY4ZGY1YThjZjRhY2ZkMzQyY2ZmYjNlOTE1NjAwODMwY2Y0N2QwNiB1bmxhYmVsZWQtMS4yMy40CisxNjY0NyA5NmFkMzI0OThkYjc4MjE0ODY5MDFiMDJlMmEzZjMzZDAxOWE4N2UyIHVubGFiZWxlZC0yLjU0LjIKKzE2NjQ3IDFjMmFkYWU0NTA2OTdkZmMzMWM2NjUzM2ZiNzJjODA2M2ZiM2JhYzEgY25yaS0xNi1zdGFydAorMTY2NDggZjNkNWY3MWNjYmI0NWU3MzZmOGNjM2NhNGJhN2UzZTFiNTM4ODI4YiBsZWdhY3ktdHJ1bmsKKzE2NjQ5IDRjM2Y5NzdjZTA2Y2ZlN2NiNWJkNDg3OTFhNWQ1MGY5Zjg4MzNhYmYgbGVnYWN5LXRydW5rCisxNjY1MCBhOTRlMzdlY2RiZWI2ZmI2OGQwZGU2ZGFmZWE5M2Y0MjMyNmM1ZjY5IGxlZ2FjeS10cnVuaworMTY2NTEgYzU4MTQ5YzA2NzBhYTk5MWVkNzQ4YTE2ZDVlZGUxMGIwODQ1ODQwMiBsZWdhY3ktdHJ1bmsKKzE2NjUyIGZjNDlhM2IzODYzYjE5NmM1YzEwYjAwNzczMDJiMjhlNWU3OWRiMzEgbGVnYWN5LXRydW5rCisxNjY1MyBkZmRiNjAxY2VlMWNmNTE0MzViYjMzODZhMmU2YjZiMWYzOGM0YzkzIGxlZ2FjeS10cnVuaworMTY2NTQgNTkyYWMyNzI2NDFkMjJkZjM1ZmY3MTQ3ZDVjOTM0MDE2YTU1N2JmNCBjbnJpLTE2LXN0YXJ0CisxNjY1NCBhNjk4NWQ4OTQ2NDM3NmI5MTczYzlhNTc3YzY3MGI3ZDBiNzY3ZDNkIGNucmktMTYtc3RhcnQKKzE2NjU2IGUyNjNhMjczZTMyMWY5NmU5N2FkYWNjNTMwYjliZWU4MDdiYjkyM2QgbGVnYWN5LXRydW5rCisxNjY1NyBlZThjNWNmYWQzMzVlNmJjNmZkZjRhNzRhOGY2MjQzY2NhZWU5MmEzIGxlZ2FjeS10cnVuaworMTY2NTggNGVmNDYxZGYzMmMxOTFlOTEzMGRjOWJjYjdiOTUxZWEwYTExNDg3MiBsZWdhY3ktdHJ1bmsKKzE2NjU5IDU4ZmVmZWY3MGZhY2I3MzAwYTJlNDU2ZmM3NTY3NjIwOTA4MzgzYzQgY25yaS0xNi1zdGFydAorMTY2NjAgZGY3ZGViMmViYTQxNDEwN2VkZmJjYmFiZTk2NTk1NDY4YTlkNjQ5NyBsZWdhY3ktdHJ1bmsKKzE2NjYxIDgzMDc0NDZiYzZhYWQ2NjBkZDUxMTdlNjMxMThmODBlNzgwYjUyYmMgbGVnYWN5LXRydW5rCisxNjY2MiAzNWZjOTUxMWEzNmZmMmM0N2E2YmE2Njc4MmE0MzAwOWM0NDk2ODZlIGxlZ2FjeS10cnVuaworMTY2NjMgZDAxNGM4YWI2YTgyNDM1M2QzMzAwMWEyMzJiMTAxMDZiODQxN2Q0NiBsZWdhY3ktdHJ1bmsKKzE2NjY0IDI2NmUxMWEyMjZmN2NkODM5YzIyNmYzNDAxNzk5MDZhMjA3YWVjZjYgbGVnYWN5LXRydW5rCisxNjY2NSBlYTVlYjUxZWQwZjY5OGM0YjQ2NjJjZDA3OTA4MjU0OTEzNTA4OTNkIHVubGFiZWxlZC0xLjguMgorMTY2NjYgZjkxMTYxOGEwZWEwZmFjNDZjZTk2ZTJjYjY1Y2QzZjAzOTFkMDJhNyBsZWdhY3ktdHJ1bmsKKzE2NjY3IDFjMDBmZWE5YWU0MGMwZjFmYjQyZmVkM2VhYjM4MjE4ZmNiM2Q5NzAgbGVnYWN5LXRydW5rCisxNjY2OCA3NTVlMjEzNWExOTQ4YThkM2MxMzFmMWZiNzYzYmQzMDRiMjRiNTVhIGxlZ2FjeS10cnVuaworMTY2NjkgYWJmYTRlNGIyZjNlOWFjZTJlZjI4MmRlZGZhZDY3OWRjODg0MWRjMyBsZWdhY3ktdHJ1bmsKKzE2NjcwIDBmNjgwMThjY2U1OGY5ZjFmYTlkYjQyNzZiYmZmNzdlZjdhNjEwNGIgbGVnYWN5LXRydW5rCisxNjY3MSBkZDgzMGM5ZTVjMjE4ZmFlNTkxODI2ZTQwMTQ1ZTMyNDU5NGY4MzhlIGxlZ2FjeS10cnVuaworMTY2NzIgYzRlMzIxODM0MjUwM2FjNjI2N2RhMjE1MTU2ZDMxNWMzYzMyZGExOSBsZWdhY3ktdHJ1bmsKKzE2NjczIDg4MWQzOThhNDRlMDcxMGFlMDBmZDcwNjNlMDNmM2U2M2M1NTcxM2QgbGVnYWN5LXRydW5rCisxNjY3NCBiZjcwNjJlOGVlYWNmNDNlM2U3NjcyZDc3ODQ0ODEzZTA5ZGYyNTFlIGNucmktMTYtc3RhcnQKKzE2Njc1IDMxYTdiMDA0NTU4ZmI3YzNhOTEzZTBkYTFmOTgzZmQ1YzE4YmQ1NDggY25yaS0xNi1zdGFydAorMTY2NzYgMzNmZDYwYWJkNDgyMmM0YWFkNTcxYmU5Nzk2N2EwOTViMjQ4ODg2ZiB1bmxhYmVsZWQtMi4xMDguMgorMTY2NzcgMTVhZDQwODhhNzAwYmZiMDViZDMwMGE4NmFmNzBiYzI5YTUwNTI3OSBsZWdhY3ktdHJ1bmsKKzE2Njc4IDhlZWFmZjk2YjRjMjQ0MjJmYWFmMjcxNmYzMWMyYWFjODAwYzBhZjggbGVnYWN5LXRydW5rCisxNjY3OSAwOTU2NTc4NDcxNWUxYzY2NTVlNjk4OTlmNjkyOWEwMDVmY2YyMTkyIHVubGFiZWxlZC0xLjk4LjIKKzE2NjgwIDNhNWE3ZDI3ZjFiNzJiOWRlMWY5ODhhMThjZDA0NDRiODZkOTEwYTYgbGVnYWN5LXRydW5rCisxNjY4MSA2MjQ5NGE5NmRjY2FiNWFhMjM5ZTY3ZWRlOWFmNjFiNjBlZWVmZGVjIGxlZ2FjeS10cnVuaworMTY2ODIgYzBjMTczNDdkYTViYmVjY2JlZmYxYzc1ZDFlYTNmMDFkYTUwNDQzOSBsZWdhY3ktdHJ1bmsKKzE2NjgzIGFhNDlkMDc0ZjcxNjFiMDcyN2M5NjUzY2FjMDk2OThmYmJiYTUxZGQgbGVnYWN5LXRydW5rCisxNjY4NCA5OGYwOGNhZmUxOWIxMjU0MWVhZjNkMWEzY2E2ZmUyM2Y1NjY5YTMyIGxlZ2FjeS10cnVuaworMTY2ODUgOGYwZmMwYjVmNzg0Y2NkMDZhMGM3MTE0NGZiZGYxZTNhODViNDNmMiBsZWdhY3ktdHJ1bmsKKzE2Njg2IDA4ZmViNTM4YzgzNzE2MGViNDg1ZTljMDQ0Y2IxOTk5NWE3N2E4OTcgbGVnYWN5LXRydW5rCisxNjY4NyAyMTkwYjc1OTk4MzczNGEwYzRlOTRkZjBkNTIxZGM4YTEzYzg2NDJhIGxlZ2FjeS10cnVuaworMTY2ODggMWM1YmRiNjYyM2M4YzExNDg1YzI1ODkxOGZjMzNlOGMxMjQwYmQzNSBsZWdhY3ktdHJ1bmsKKzE2Njg5IDc3YjllMDQxYjU5NWNiNTA5ZDBkODIyNTEwNzQyMDBjNDliOTRmYWYgbGVnYWN5LXRydW5rCisxNjY5MCBjMzMyMGQyNGQ3ZGU0NmFkZDBlZTRiNzMzODAwYmY5MmY4YzZjMmZkIGxlZ2FjeS10cnVuaworMTY2OTEgZTJlYTAwNjIwZWQ2ODk5YTRkNDE3NDY5MDYxNjE1NGI4MTI1Zjc0NCBsZWdhY3ktdHJ1bmsKKzE2NjkyIDA0MzBhMTMwOTU5NmM4NzkwZDM3ZDc2ZmQ3OWY3NzUwZTExYTYwMmIgbGVnYWN5LXRydW5rCisxNjY5MyBkM2JmOTdkNTMyYTA4YjRmMTNmMmQzZjUwNzk1NTM2MWRjNWEyMzkxIGxlZ2FjeS10cnVuaworMTY2OTQgMjVkZTcxOTNmOWZjZWE2NTgzNDUwNGE3NmY1OGRmZjJlOTdjYmVhNSBsZWdhY3ktdHJ1bmsKKzE2Njk1IGEwYjM2NTk4YjMxZDBkMjk4OTkxMTc0NTkzZjRhYmYyZmFmZmFiMmQgbGVnYWN5LXRydW5rCisxNjY5NiA5YzY5YmQxYTI4MjJmMGU1MDVmMDhkZDRjMzQwOGFjMzUzM2NlY2NkIGxlZ2FjeS10cnVuaworMTY2OTcgZTMwYTE5NGRjYTAxNDgyYzRkZTIxYzY4ZGI2NDBmMTU4ZTVlMDdmZiBsZWdhY3ktdHJ1bmsKKzE2Njk4IDBlZmRmNDViZjZiYjZiOGQxNjM4NjA4MzE3ZDljYzM1YmY0MDk0ZWQgY25yaS0xNi1zdGFydAorMTY2OTkgMGFjOTE5Y2E4ZTY5NjI0MDU5ZTg3YTVjY2RlNTA1ZWNiZTc4N2M1NCBsZWdhY3ktdHJ1bmsKKzE2NzAwIDk5ZTE5Yzk4MmY5NDQ1ZGY4Y2Y4YzMxY2YyZmI0MTFkZThhNDE2OGUgbGVnYWN5LXRydW5rCisxNjcwMSA5YzFlNjg5ODQwMjczZjk0MjM3ZTIxNzIyZDVjZmY0ZmQ4NDE2NTM0IGxlZ2FjeS10cnVuaworMTY3MDIgYzQ1YWNjYzhlNmQwMzZmZjc1YWRhNWJjNTE1OGE2OGI2YWE1NzAzNiBsZWdhY3ktdHJ1bmsKKzE2NzAzIDQ0NmMzNjE2YzMyM2IwZjQ3YmZmZWE5YzNiMDFmNjljNzQ5MmU4MzIgbGVnYWN5LXRydW5rCisxNjcwNCA1Mjc1N2JhZjAzMGRkYTBmMDgzOTE0OTUyYTUzNmEyODk3NjMyZWJiIGxlZ2FjeS10cnVuaworMTY3MDUgYjM0N2ZjNWRhZWI3MGM3MDA2ZDM1OGY3ZDRhNTg2ODY4Yzk1NDQzMyBsZWdhY3ktdHJ1bmsKKzE2NzA2IGE0MjU5YmZjYTViZmU4YmEyZjJmMDFmZTAzNGEzMmU5NzUwNGYxOTMgbGVnYWN5LXRydW5rCisxNjcwNyA2YmYxMjgxZWM3NjM5YmRlNDE3MTY4Yzg0ZGE0NTkzNWEyMjIyODAxIGxlZ2FjeS10cnVuaworMTY3MDggNjAyNDM5OWI3OGJmYTYyZjkzZGFkOWIwZjA1ZDA2NTZmZWJkOWZmOSBjbnJpLTE2LXN0YXJ0CisxNjcwOSA5NDE0ZDAzMWEyYzNhNGNiZjY0Y2U4MThmNTg0MjE2NWIxMzU0YTRlIGxlZ2FjeS10cnVuaworMTY3MTAgYzhmZjgwY2VhNGY3YmU2MTkxZDVkN2NjOTYwOTRjY2NmZDZhOGQ1YyBsZWdhY3ktdHJ1bmsKKzE2NzExIDhmNDNlNTkyY2Y5YTRmNjhhNWIwZTUyMWUyZDhjNDE2MjMyZGE4MGUgY25yaS0xNi1zdGFydAorMTY3MTIgZDcwYWVjMmUzNDljZWFiNWU5ZjI0YzhkYzVlMmJmZjIxY2YzODQwZiBjbnJpLTE2LXN0YXJ0CisxNjcxMyA0NjZlNWZmMjg5MjYyMGEwMjdjMmY0OTgxZjVlODgzYmVkOWNmOWY0IGNucmktMTYtc3RhcnQKKzE2NzE0IGY0MDVmY2JhYWVmNWE5NzU0ODBjOGI4MTM4YzkwMDg4ODlhN2ZlMTkgY25yaS0xNi1zdGFydAorMTY3MTUgZTZlZmNmY2YxNzRhODdkZGQ0OTFkYWQxNTA3NzU5MTI2YzY1YjJmMyBjbnJpLTE2LXN0YXJ0CisxNjcxNiBjZjUwMzQ1MGYwN2IyNGM2MmQ2NmQzOTE3OWExZTVjMTkyMjdlMzAwIGNucmktMTYtc3RhcnQKKzE2NzE3IGJkNjdhNGQ2ZjRmOGMxZDZkNzVhZTgyOWZmNjQyMWMzYWNhYTE5MzQgY25yaS0xNi1zdGFydAorMTY3MTggMDgwMjNkMjZhMGNlODc1MDllMjQ2OWFhNWQ2MWE5MzViOGE2MzM5MCBjbnJpLTE2LXN0YXJ0CisxNjcxOSA1OWM2ZTk4MzJhMjA0MjUyNmVlMWRkYTNmMzE1ZDliNzQ0NTlhMDAzIGNucmktMTYtc3RhcnQKKzE2NzIwIDY5M2I2MTU4MTc0NjY5MDdjYmY3NDY0MWM3NDg3NmE2YTdiZDI0NGQgbGVnYWN5LXRydW5rCisxNjcyMSA0ZDE2YzhkZDg5OWM0ZWVhMjEwOTQ2OTFhNzkyNmJlNjMxYTk0ZjA5IGxlZ2FjeS10cnVuaworMTY3MjIgYmMwMTUzYTczOWFlZjQ2N2U1YTJjZDMxYTA3YTliMDFkN2RiZTVmYyBsZWdhY3ktdHJ1bmsKKzE2NzIzIDAzZmE0MDUyOGQxNzlmYWI2NTI4MDc5ODc3MjE4NjJhNzgxMWU3MGYgbGVnYWN5LXRydW5rCisxNjcyNCAwODA5MmQxZWIyNmFmOTdjOTZmYjI3MzgyYWQ0MjA1ZjllNWJhNjNjIGxlZ2FjeS10cnVuaworMTY3MjUgMzM5Njk3NTFlMzUxZmQ3OTA0OWY3ZDk0ZWUzYTdlOWI5NTJiYjExMiBsZWdhY3ktdHJ1bmsKKzE2NzI2IDUyZmNkMDk4NTQ3ZTllY2IzNjgxYTY3NjM4Nzg5MjUwODJiNWI0MTcgY25yaS0xNi1zdGFydAorMTY3MjcgZDA1N2NkNTQzZWQ5NjZkZjAzNjEyYTZjNDJlMDcxMWFkYzc2MGExOCBsZWdhY3ktdHJ1bmsKKzE2NzI4IGM3YjNmZTg0MzM1ODY3NWMyYjcxMWYwNGVkZTc0YjkyNjY1ODZkYzUgbGVnYWN5LXRydW5rCisxNjcyOSAxZDE3YzVlNjdlZjU3MjUyNDg4MDA4YTJmOGFlNTY5YTg1MjZjMzk4IGxlZ2FjeS10cnVuaworMTY3MzAgNjU4YjA4NWUxNzViZjg0N2Q3NmQ2ZTFhMTZjZWYxMjYwYWNiZTE5ZCBsZWdhY3ktdHJ1bmsKKzE2NzMxIGRkZjMwMmQ2OTIxMTNlNmU0YjlkYjIxY2M1Mzc2Y2Q2MTRkNWNiMWUgbGVnYWN5LXRydW5rCisxNjczMiAyYTA0ZmJiN2MwN2Q5NjQ3N2RiMDcyNTZhMmQwOGU2YTY5YTFlOGNhIGxlZ2FjeS10cnVuaworMTY3MzMgYjZlMDdjMjcyNDg3OTAwZmRkOTc2OTBmZjIzM2Q1ODM3MmFhZDVjNiBsZWdhY3ktdHJ1bmsKKzE2NzM0IDI2NmZiNjMwMmYzMTE3ZDcxZjhjMTY3Mzk4NzI1MzA0Y2QxN2JhMTkgbGVnYWN5LXRydW5rCisxNjczNSAzOTI3YTRkOWMyZmIwMmRhMjcxOGYzY2Y0M2Q0YmMwOTk0YTZiY2NhIGxlZ2FjeS10cnVuaworMTY3MzYgZjE5NGQ4YjI0ODY1OTEyYmQxNmMxNzU1MzAxZTliZTFhMzg3N2Q3MiBsZWdhY3ktdHJ1bmsKKzE2NzM3IDRlYWE0NjNjMDMxYTFiZGI1ZTc3OTFjMzcwZDA0MTA4ZTA2ODJkZDQgbGVnYWN5LXRydW5rCisxNjczOCA2MGM3Y2RhMzVjZmE0ODc3ZWNjNWExNTQ4ZTkwMzYyMWNhODU4MDhmIGxlZ2FjeS10cnVuaworMTY3MzkgNzE3MmMyZDhiOTJiNjU4ZjJjZGM2ZDJmNGYyMjJjNzA3M2NlZjdkNCBsZWdhY3ktdHJ1bmsKKzE2NzQwIDRkMTRlZWY4ZWEwNzY1NjhiYTc1MjkwNjcyYzUwMThhYjU4MzAyMmEgbGVnYWN5LXRydW5rCisxNjc0MSAyZTBkMWFlYTljMzc0MWUwNGFkZmY4ZGExNTM3NjIwZjRmNTMyYjkxIGxlZ2FjeS10cnVuaworMTY3NDIgNDRiMWI4MThmMjhlOTI1ODMzMWFkYzRiNGVmMzIzYmI2MGE4YmRlOSBsZWdhY3ktdHJ1bmsKKzE2NzQzIDI1ZmQ5ODQ2YmQ1NDJjMzQ0ZjBjZTU4MDczNDEyM2ViOWMyY2FlMjIgbGVnYWN5LXRydW5rCisxNjc0NCA0NjRhMjE5MGQ5YjY3NmE2OTM1N2ViZmNlY2JmOTU2MzQxOTcyZDA3IGxlZ2FjeS10cnVuaworMTY3NDUgODAwODlhNDUwYzM0ZDBiNWJkYTFmNDZiMWUzYTA2MGI5YTQwNjIwOSBsZWdhY3ktdHJ1bmsKKzE2NzQ2IDg3YWYyYzM0MWI3OWJhMGI1NTkxMDZkNjUwNDhmMjNlYTQxMzliMjYgbGVnYWN5LXRydW5rCisxNjc0NyBlY2U3NWIwN2IxMzYwODAxMGNiNWEyOTdmNGUwY2E1NjNhNTIwZTU4IGxlZ2FjeS10cnVuaworMTY3NDggZDU2ZGQxNTMwY2UxMTMyYzI1N2MxZWZhY2YxMTFjOTA1MWMzNDcwYSBsZWdhY3ktdHJ1bmsKKzE2NzQ5IDMxYjI1YWMxZjAxOWFmMzAzYzY2MmJhMTA3MGFhN2ZmMDI3YzNjMzIgbGVnYWN5LXRydW5rCisxNjc1MCA1NzgwYjE5OGFiYzg5OWVhNzg3NTgxYjQ5ZmNlMWQwYjc4MWNlMzI4IGxlZ2FjeS10cnVuaworMTY3NTEgNjQ4YmE0MDQ0NDU1OWZiNGZhNWRmNDJhNjRiY2RmNDA0NDUwYjRiYSBsZWdhY3ktdHJ1bmsKKzE2NzUyIGFmZGIzZjQ4NWQ4ZjkzZTM4N2YxZTQ3Yzg2YjQ2MGQyOTNjNjI5ZDggbGVnYWN5LXRydW5rCisxNjc1MyA3YTk5NDUwZGEyZDY0ZjdiMjUwNWVmYTRjOTg2YzQ0MDZjNTYyOGI3IGxlZ2FjeS10cnVuaworMTY3NTQgMTkxZjIwZTA0NzNlZTFmZmM0MGU4ZDNlM2I2YzQ4YzRlZGM1NTFlNSBsZWdhY3ktdHJ1bmsKKzE2NzU1IDI2ODk4YTk4ZGI2ZWQwYmMxYWQwNTE0ODI2ODBjZGIyMWJiMDk0MDMgbGVnYWN5LXRydW5rCisxNjc1NiAyOGFmYmM1ZTA3NzAwNGFlNzJkN2YxNzgwMjEzMDZiNjRlOTg2NDc1IGxlZ2FjeS10cnVuaworMTY3NTcgMzcwYWRlODhhNTJhNTQ0Y2JkNjQzOTgyZWY5YTJjYjczODNkNDU2ZCBsZWdhY3ktdHJ1bmsKKzE2NzU4IDFiMTU2ZWY4MjgxYjhiZWFiYWJmYjc5MTU1NTg5YzhlYmY4MGYxMGMgbGVnYWN5LXRydW5rCisxNjc1OSA3MGM0N2FiMDFhODVlMmJlY2UzMGM4ODYwOTFiYzM3NTU2OTAxOWJmIGxlZ2FjeS10cnVuaworMTY3NjAgNzQ0NWQ5OWRhOGRkODgyNTUxNDI2NmYzZGQxNjY5NGIxMWQ0NmJlMiBsZWdhY3ktdHJ1bmsKKzE2NzYxIDgyYTIyZDgyOTYwNzEwZWE5NDY3ODA3ZDA1YWE0MGJkOGI4MDQzYTUgbGVnYWN5LXRydW5rCisxNjc2MiA0OTRjZjVmYjhmMTc0ZWYwNDBjNDgyNWViNGNjZDZiNjI2NzlhMzcwIGxlZ2FjeS10cnVuaworMTY3NjMgOGU4YThkZjBmZTczNGYyYjkwYzhhZTMwNTY3ZWYwMGVhMzlmNmVhNCBsZWdhY3ktdHJ1bmsKKzE2NzY0IGI5MDAyZGE0NmY2OTNhYzdmNDcyODM5OGQ3NzNhYzlhOTA0M2I0NWMgbGVnYWN5LXRydW5rCisxNjc2NSAwYmIwYzcxNjdkMWZjN2IwYzQ3MWZjNGE5MWMwMTQ4N2EyZjgzYzkwIGxlZ2FjeS10cnVuaworMTY3NjYgOGJlNzUyNDA4NWQ2MTk0YTYzODI5MDcyNmM3NzRlMzRmNDY2YzBjYiBsZWdhY3ktdHJ1bmsKKzE2NzY3IDdkZGU3NGMxZWJiZTRjZjUyMzg3OTdlNWZhYjE1N2ZiYzllYzQwYTQgbGVnYWN5LXRydW5rCisxNjc2OCBjOWFhNDllODc0OGU3MTViNGQ1MzcyYWEwMzBkODFlMDllMWQ4NzY1IGxlZ2FjeS10cnVuaworMTY3NjkgNzA3OWFhMDViYmQwNThjOTU2NzkwOWY2OTYzN2RhYWNiZDRlMjA3OSBsZWdhY3ktdHJ1bmsKKzE2NzcwIDJlZTBmNDdmMTRkM2IwYTQ0ZDU4ZjZkNmNiZWY2MGE5MDQzYjAxZDkgbGVnYWN5LXRydW5rCisxNjc3MSBhMjU2YzEwMWJmMjc5NWVjMjFlYTI0MmM5MzU1NjNjZTQ4NGNmY2E2IGxlZ2FjeS10cnVuaworMTY3NzIgNTYwMTc1ODAwYTA3ZTcxMmRkODI2ZGY4MDMxMGI4OTNlYzdjZjQwOSBsZWdhY3ktdHJ1bmsKKzE2NzczIDkxZGRlZWQxMmZhNzAzYTZjYzQ4NzIxYmJiNzBhNzFhOWRjNTMwNzIgbGVnYWN5LXRydW5rCisxNjc3NCA3YjdlZTU4OTAxZmIwZjBhN2UwZjJmMDdkMDkyYzdkODkwNmFkMWYzIGxlZ2FjeS10cnVuaworMTY3NzUgODQxY2Y5MDEyYWMzY2JmZmFhMTgyY2JlZTNiOWQ5YmQyOWFiYjRjOCBsZWdhY3ktdHJ1bmsKKzE2Nzc2IDU1ZTM5ODgyMDViMzQ4MGJjZTdlZDA1ZWUwY2FlMTY4ZDRlM2EwNDggbGVnYWN5LXRydW5rCisxNjc3NyBkOTkxODNjZGJiZGM5N2E5YmI5MTgwZmFjZjFhZDc2M2FmZGFlMjdlIGxlZ2FjeS10cnVuaworMTY3NzggNGVhYmQ3ZDM5MjVmYzk4Yzg5NzYwZGQxMmNlYWFiMzVlNWFiYmI0NiBjbnJpLTE2LXN0YXJ0CisxNjc3OSA4MTU1YThiMzA0NDRhNGE0YTZlZjBmNTBhMzk4Nzk4Y2RmZDFhODg2IGNucmktMTYtc3RhcnQKKzE2NzgwIDZlMmMwZDBjM2ZkNTZkNGFlOTc0YTAzNDE5YzAwNWNlYThjNTQ3OTMgY25yaS0xNi1zdGFydAorMTY3ODEgZGUyYmZjMTVmOWVjZTVhNWJlNDUzMjQyZWRlYjRiMDA1ZTYxYWM4NCBjbnJpLTE2LXN0YXJ0CisxNjc4MiBhYTQyMDI3MDIyNTI2MjcxMWVkNmUwMjY3MTBhMThiMjViMGY4OTc3IGxlZ2FjeS10cnVuaworMTY3ODMgYzI1OGYwNWViODVkYzk4YjM4YTM5NDk1ZWJmN2IxNjFkN2MwYmVjYiBsZWdhY3ktdHJ1bmsKKzE2Nzg0IDRlMjhjYTM0NWNmZWU3NmZiZWQ1NTViOTFkY2JlMzk3ZWEwMGZhOTcgbGVnYWN5LXRydW5rCisxNjc4NSAzZTZlM2QwNWQwMGI3ZDVmMTZjYzg3YjZlNmFiM2RmMzBiMDNkNjEyIGxlZ2FjeS10cnVuaworMTY3ODYgMzA3MTNkNTI4OGRmNDljNDQyNTJlOTA3YjFmYTRjYmJhNzJhMDI4OCBsZWdhY3ktdHJ1bmsKKzE2Nzg3IDhhNGExNzk0MTRkNGFhNDg0MWIzNDBlZDA5Y2JmZmFkZTU1YjY2ZTUgYXZlbmRvcgorMTY3ODkgNThhYzgzMDQwMWJkNWM5NDlmZTA1MWIwYjc5OWZlM2NkOGNkYmI5ZiBhdmVuZG9yCisxNjc5MCA1YWRhOWZhNTQ4MDE1YmViNjlhZjUwNzI4ZGI4ZjAzNjUyYTFmNjYxIGxlZ2FjeS10cnVuaworMTY3OTEgZWI5YTM2MTYzYTllYWE5OTQzMWM5ZWQzNDBkODg2M2M1ODRhNDMxOCBsZWdhY3ktdHJ1bmsKKzE2NzkyIGIyY2Q2NmU1ZWE0YzI0YjczZDUzY2Y2YjhkOTMyZDkxZDEwNTk4OTcgbGVnYWN5LXRydW5rCisxNjc5MyA2M2RlN2YwMGI1YmNjYmU5YmE5N2NiYzQwYWVhNGM5YmM4ZDU5ZGFlIGxlZ2FjeS10cnVuaworMTY3OTQgODhmNGU3MmQ3MjQ1MzlkZGQzMGNmNDQzOWRjZjA3MDBiNzY5YTFmZCBsZWdhY3ktdHJ1bmsKKzE2Nzk1IDcyZjY4MmViOWFkYmU0MWIyYTkyZTU0ZDMxODU0YWJjYzczZTc0MmUgbGVnYWN5LXRydW5rCisxNjc5NiA0M2Y0ZjhkMTU5NzFlYTI0MmZiOTRmMzU0NGNiNDdlMmFjYjM1OTUxIGxlZ2FjeS10cnVuaworMTY3OTcgMWIxMDdjOWJhNzAyMTM2NzlhNzFjY2VhMDA0OGI2NDhjZDY3MjI4MCBsZWdhY3ktdHJ1bmsKKzE2Nzk4IDJjNDI0Mzk1OTRiN2U4MDM0OTEzNjY0YjY4ZDU1Zjg2N2QyMWRiODEgbGVnYWN5LXRydW5rCisxNjc5OSA2MTM0N2VjYjliMDEzN2VlOWZkNTg2NjU0MDNiMzU2N2YzNjM1ZDVhIGxlZ2FjeS10cnVuaworMTY4MDAgNDAwYTVlM2FjNzZjOTRhYWJkOTUxNTkwMjgwMjhlMzUwYzIzYzI4NCBsZWdhY3ktdHJ1bmsKKzE2ODAxIGYzYmZjZWU3NDVhNzYzNmNkZGU4YjM4NmEyZWRmYjVjYWUzYjUxNzYgbGVnYWN5LXRydW5rCisxNjgwMiBlNWE3NGNmY2M5NzFjMDVlYjgyMWM2ODNjNDg5NjQ5OTg1MjA5ZWRhIGxlZ2FjeS10cnVuaworMTY4MDMgZjI3OTJlYWQxZjA2ZWU4ODlkZjI3Zjc4ODZkZGI0NjcxNDJlMzhmZSBsZWdhY3ktdHJ1bmsKKzE2ODA0IGE5NTVmZDVkZTAzNTA1NDhkZWM3ZjQwZDVjNmEzYjY0YTM0OTU5OGQgbGVnYWN5LXRydW5rCisxNjgwNiBhMjg0ZWQyMWEwZGRhZTcxZWNkNWE4MGY3NzQ2MDlhMjU0ZGJjN2I4IE5vbmUKKzE2ODA3IDc4MzRhMTEzY2UyNDgwMTBkYWMwNGY4NDhmYTdjMzhkNTg2M2JmOTIgbGVnYWN5LXRydW5rCisxNjgwOCA5N2Y1Mzg4YTZkY2UwNTdhZjA4NTZiYmNjMjQ4YWQ0YTZlN2Y0NzIxIGxlZ2FjeS10cnVuaworMTY4MDkgNzE2ZTFjNGUzZjc4OTQ3MjZmOTIzYTkwNzQzZTI1MzdhNjE0Mjg1MCBsZWdhY3ktdHJ1bmsKKzE2ODEwIDJlODdiYmI4N2FkNDQwNWM2ZDIxMThkZTgyZTA3MjU2YzExODFiODYgbGVnYWN5LXRydW5rCisxNjgxMSA2NWMxYWJmNDUxZGMwNTMwZjcyZjNkNmFlNjU1ODM4ZThlYmI3YzRlIGxlZ2FjeS10cnVuaworMTY4MTIgZDgwNjllZmNkNzZlNDgzNDdjODBmZWM1NzA5ZmRmOTk3NWZkYmM4YiBsZWdhY3ktdHJ1bmsKKzE2ODEzIDE0M2ZmYmY4N2U1MWJiMWIyMGExNWU4YTE1ZjEyY2ZkMWUzOTk3NzkgbGVnYWN5LXRydW5rCisxNjgxNCAzMGRiYjMwZmYwMTkxOWIwZTU1ZWQyZjBlNWU1NDQ1Y2M4ZTYyNGM3IGxlZ2FjeS10cnVuaworMTY4MTUgNDQzZjNjNzdkODhjZWQ2ODc3YTJkOWYzMDQwZGFhMDBiYmFhODE2NyBsZWdhY3ktdHJ1bmsKKzE2ODE2IDU1ZTRmNDI4OWUxODgzM2I1NzAyZjUxNWY3NTczYTdmMjMzOTRlNDQgbGVnYWN5LXRydW5rCisxNjgxNyA3M2Q5NzZhZmE4ZDQzZjQ5ZTljZjE3MTQyYmIxMWU2MGM1OTZjNWU4IGxlZ2FjeS10cnVuaworMTY4MTggNTkxYWZlMmZjODIzMGI2MDk0ZWY3MzFjMGNkNjEwYjY3OTFiYTJhMSBsZWdhY3ktdHJ1bmsKKzE2ODE5IGYzNjkzODg3NGNlNWFiYjk4MTBkNzJmMTMxMWUwNTE4NjlmN2UxMjYgbGVnYWN5LXRydW5rCisxNjgyMCA5YTA1MjY5NmNhMTIzN2JiNzJjZDE2NTQzZDFlMTY0ZjczYzE1ODFhIGxlZ2FjeS10cnVuaworMTY4MjEgOWNkYjZmOTc5ZmE1NTBhZmZiNTZhZDU5ZjhhM2VkOGEzY2JlYzA4NyBsZWdhY3ktdHJ1bmsKKzE2ODIyIGVkMzY5ZjBhYTMyYjM5NjNhYjlhNDNjZDhhMmVjNTM0YmY3ZDFkYjkgbGVnYWN5LXRydW5rCisxNjgyMyBlZGEwOWY4MjRhOWZiOTA4YzZjNTFhOGViODU4MjdhN2QxOTExN2RkIGxlZ2FjeS10cnVuaworMTY4MjQgNmM5MWFkOWMwZTA2YzNjZWI4NTk1MmU4ODQ3M2I0YTk4NzhhNzFhZiBsZWdhY3ktdHJ1bmsKKzE2ODI1IGZhYTk3MGYxNTQwZmY5NGViODc3MWVhMWQwYzIxZTBiZmU5YjgwYjAgbGVnYWN5LXRydW5rCisxNjgyNiA0OWM3YTRkZDlmNjE1ZDc0M2QzMzZkNmNlYjNkZTMzZmVhNmVmZGExIGxlZ2FjeS10cnVuaworMTY4MjcgNDljODMwNTAwNDgwMWVkYzQxYWFiNTliOTNhYTg4MTFhZTVjYjg0NyBsZWdhY3ktdHJ1bmsKKzE2ODI4IDgyZjc5NjE4YjQ0Mjg1MTgwNmM1ZDBhNDQ2MTgzMjY2MTFiYTM3ODggbGVnYWN5LXRydW5rCisxNjgyOSA2YzdmYTUyMzcyNmZjNTU2ZmFhZjEyOThhNzIyNjYxMDkzNWQzMTViIGxlZ2FjeS10cnVuaworMTY4MzAgM2Q2OGQ1YmNjZDQwNmU4OGQ1YjU0N2FiZTk4NWQ1ZTJkM2VmMWY4OSBsZWdhY3ktdHJ1bmsKKzE2ODMxIDliOTQ2MWE2NTZkZGM1NTdhYzM5YTczOWVjNWEyNGJkYzhlNzM3ZWEgbGVnYWN5LXRydW5rCisxNjgzMiA5YTI5MTg4OWFiNWYxNzg4NDY3Y2UyNjUwMWQ5ZDc3MWZjN2FlZTA5IGxlZ2FjeS10cnVuaworMTY4MzMgMTI4ZjY0MTE5MWMzM2M4OTUzMjViYmY4M2E3N2VmYzljNjVkYTQ5MSBsZWdhY3ktdHJ1bmsKKzE2ODM0IDBkODA1ZTIzOWQ4ZjQ0Y2ZlMjNhNmQ4NmM5ZDVmODhlYTM3NmMyOWEgbGVnYWN5LXRydW5rCisxNjgzNSA1OTg0YzNkNzYxZjc4NDQyZTI4MDkwMzRjOTU5ZDg2OGI4MTkzZTRlIGxlZ2FjeS10cnVuaworMTY4MzYgYjRiMjYxMmVhMzMzMGZkN2NiZWNhMWZjNmE0ODY1Y2M1YTg1NmYxNiBsZWdhY3ktdHJ1bmsKKzE2ODM3IDViMzRiNzBlY2YyMmZkYjRhOTNmMDk1MTIwYjJmNTk0OWZhMzUxZDIgbGVnYWN5LXRydW5rCisxNjgzOCBkNDQ2MDNmMmI5Mjg5YjRhNjgyNzllMDUwZDMxNzkyZDA4MTg3M2JmIGxlZ2FjeS10cnVuaworMTY4MzkgNzQwMjkwYTU2MTkwYTEzM2NkM2ZkMjUzM2IyZWJmNjc3YTQwZGE4MiBsZWdhY3ktdHJ1bmsKKzE2ODQwIDA0NjBjY2NlZmU0ZTNiNmU0OGM2ZGYzZjViOTgxOWY5MzVhYWYwMzggbGVnYWN5LXRydW5rCisxNjg0MSBhZTIyOGE2NDI5M2UxMmRjYmMxMjQ2ZGFhMmI2YjFhODQ1Yzc4ZWFjIGxlZ2FjeS10cnVuaworMTY4NDIgMjE5Y2U5NjIyMzUyNTE0ZGJmMjI0MTczNzM5ZWQxMzE4YmE1ZjMzNSBsZWdhY3ktdHJ1bmsKKzE2ODQzIDY3YTU0NDhjOWEwZjI1YTc0MWM2ZjA1ZGYwMWZlNDBlN2RlZDZjMzMgbGVnYWN5LXRydW5rCisxNjg0NCA1YjBmM2M0MDA2MGZjMTgyMDJmYTgyZjUyYTRkNGM2NjI5MGM4MjdjIGxlZ2FjeS10cnVuaworMTY4NDUgZjVkOGU3M2Q3N2I3ZjViYmI2NThhNmU0MmRhZDc2MjAwNWU1MWFmYyBsZWdhY3ktdHJ1bmsKKzE2ODQ2IGE5NmQ3YzQ1ZDk2MWYzMzYyOTNhYWFlY2YyNTQ2ODE5ZDgyYTExZWIgbGVnYWN5LXRydW5rCisxNjg0NyBkMjZjYzViZGQyNDgyMWU2YWE2YjU0YmJlNTA2NGE0MWM4YmRkZjJhIGxlZ2FjeS10cnVuaworMTY4NDggNzdhNjE1YzkyMTdlMTk5ZTkzY2Q2NjQ3MDhlYTFmODZiY2Y0N2ZkNSBsZWdhY3ktdHJ1bmsKKzE2ODQ5IDNkZGZhMmQ2N2JlNDY3Y2MyZjQ1Y2EwYjAxZGJlN2JmMjQxYTViYmMgbGVnYWN5LXRydW5rCisxNjg1MCA5MWM2NTk5NjhhODAxOGUyNjFmZmIzZDhlMjRhNjVhZmVhMjlkZjhkIGxlZ2FjeS10cnVuaworMTY4NTEgNzliZjZiMzhiN2Q1ZWU5NjhiNjQ4OTcxOGQ5NDczMWY5ZDIwOGQxZiBsZWdhY3ktdHJ1bmsKKzE2ODUyIDMyMDQ1ZDQyM2E3ODY5ZjAwMjU3MmIxYjJmYmVhYjM0OTM3YzU5N2UgbGVnYWN5LXRydW5rCisxNjg1MyA5MWY4NDdhNzgzZDJhMDI3ZjVmNWM4MjU4ZmEwY2FmY2NmZTdlZDhhIGxlZ2FjeS10cnVuaworMTY4NTQgMTgzODUxNzJmYWMwYjcwOTliZDJkMjI2NGRmNjE0ZWQ0NDY2ZjA4MyBsZWdhY3ktdHJ1bmsKKzE2ODU1IGEyOWE4Y2Y1ZTY2ZGQzZjdmMTY3N2RlYmI1MzgyOTBmMTYzZDY1NzUgbGVnYWN5LXRydW5rCisxNjg1NiA4MzA4MDUzOWY3YjRiODQ5OTM4YWMxOGFiOWIyNmU2YTRkM2FiOGY0IGxlZ2FjeS10cnVuaworMTY4NTcgNTNhYzNlMjA2MmVmYTk2ODU1ZjkwMzYyZGQxMDRjZGYzNzk3MWQ5OCBsZWdhY3ktdHJ1bmsKKzE2ODU4IDk4ZTMyNTU0ODY3OTAyNjRjMmZkMDZkMzc3Y2I2NjI0NjRmNWYyNjQgbGVnYWN5LXRydW5rCisxNjg1OSAwMjM0NjgxMTc1MTRmNDhlZGU3MmMxNDIxMjQ1NWJkMTA0MTQ1NDZlIGxlZ2FjeS10cnVuaworMTY4NjAgYTkwNWM1YWEwNjkxY2RiOWVhYTZjNDVlYzE3MmY2Y2Q5YjhhODg2YiBsZWdhY3ktdHJ1bmsKKzE2ODYxIGM0NDQ0ZjY4ZWJmOTY3NzNmYmRhYmM5YTA4NzUwZGVhMmJlYmQ3MzYgbGVnYWN5LXRydW5rCisxNjg2MiAxZjk0YTExZDJiODBiZjQ4NzgxNGJiNjdhNjUwOGZlY2VkMWFmMzgzIGxlZ2FjeS10cnVuaworMTY4NjMgMGE4N2M1Yjc1ZmUzZDVlZjRkNjRhOWNkYjIzZjVhMWJlZmRjNjQxMCBsZWdhY3ktdHJ1bmsKKzE2ODY0IDhjZjU2MTQ3ZDdiNWRiZjlmYjQ3NjI0N2QxYTk4NTdmMTU0OTdjZjggbGVnYWN5LXRydW5rCisxNjg2NSBiOTEzMTI1NjE5YzhiYjc0MGY1MTAxNmZkMTA5ZTFmYWE1NzE2OWNiIGxlZ2FjeS10cnVuaworMTY4NjYgNmUyZGJhNDVjODNlNWRlNDEzYzg2YzRjN2JjZDc3MjU0NDk5NzhhOSBsZWdhY3ktdHJ1bmsKKzE2ODY3IGZlZTBmNDAyZWNjYjRlMDg1ODliODcxMWNiMWNiYjc3MzBmOGEyODEgbGVnYWN5LXRydW5rCisxNjg2OCAyNzViYzRmOWQ1MGQxNzU4ODMwY2U5NDYxNmNkMTg3NjVmZWU4NDc1IGxlZ2FjeS10cnVuaworMTY4NjkgODBhNDE5Mjk0MmNlOTVmMjNiNWUzY2I0NjQ5ZDI4NDgyMDE1NzIyMCBsZWdhY3ktdHJ1bmsKKzE2ODcwIGU4MzAxNjEyZTdkODBiOTM3NTcyM2U5YWE3MWYyZmM3MjY2NjYzNTggbGVnYWN5LXRydW5rCisxNjg3MSA3YTZjNTg2OWY0NTY2NjQyZDk0OWNjZGEwZWNjNjYwZmQxNmI1ZTRjIGxlZ2FjeS10cnVuaworMTY4NzIgNjM2NWE4NWJmNGZiMWNlZjM5MDNmODAzMzg1NmI0ZmMyMmI3MmMwYiBsZWdhY3ktdHJ1bmsKKzE2ODczIGNhOGRjMWJhZTY3ZDdkYzk3YTc3ZjFlMjk0YmE5NWIwOTAxMzI2ZWUgbGVnYWN5LXRydW5rCisxNjg3NCBmNjlhMzcyNDA5ZmMwZjAxMmQyNGUzZGY4NTQwYjI5YmRkZDU0YTM1IGxlZ2FjeS10cnVuaworMTY4NzUgZDAzNDhhMjZiMDkzOWViYWJjYTYzMDVhNzhkNGNhNmFlMGYxZTA1MCBsZWdhY3ktdHJ1bmsKKzE2ODc2IGRjMmRlZGNhOTNmNzBlY2IxZmY1NzFjNTYwZWEwNzRjNmU3YTA5MmQgbGVnYWN5LXRydW5rCisxNjg3NyA2NTMxZmIxYzg3OWZlOTE4ODdjZTcxMGMyMjkyYmM4OWE2ZThmMDJkIGxlZ2FjeS10cnVuaworMTY4NzggYzcyMmI0YzQyMjlhNjExNTRjOWJmYzJlZmMxY2NkZGJmNjNkYmNlMCBsZWdhY3ktdHJ1bmsKKzE2ODc5IDE3YjdmYzQ0MDE5NWJkNmEwNzM4ODk1YzY3MmMyOThlNDk0NDkwYTMgbGVnYWN5LXRydW5rCisxNjg4MCBjN2ZlNzU2OWU0ZTE3N2Q3NTZmZmQyNmY0NTQ1ZDcxYzJhZjcwYjZmIGxlZ2FjeS10cnVuaworMTY4ODEgYzUwZmVmZmFlODIyMDk0NjhlNDkzMzU1NTA4ZmIwYzJlY2QzZGJhOSBsZWdhY3ktdHJ1bmsKKzE2ODgyIDI1ZWVhODgwNDdlOWVjZmNjYWMyNzlhZTMzNjA5ZmJlYWFiODFkYzMgbGVnYWN5LXRydW5rCisxNjg4MyBkYzJkYjQ1NjJkMDYwMmQ3ZTg0Y2M0ZDlmMmRhMTQ0OTJkZjFlMjQxIGxlZ2FjeS10cnVuaworMTY4ODQgMDM0MDFhZjM2YjVjMGExMmU3OWI1Mjc2NDAzZTM4ZGM5ZTdjYTE0YSBsZWdhY3ktdHJ1bmsKKzE2ODg1IDkyMGZjMjg2ODU0Mzk2ZmQyYTEzNWNhNWFjNjM0Y2QyYTMxYjNlNzIgbGVnYWN5LXRydW5rCisxNjg4NiAyNjZkN2VhZjA2OWU4ZTcyYjAxMGU2NTE2OWVlZTFkOWVhYmNjYWU2IGxlZ2FjeS10cnVuaworMTY4ODcgMWZjZjdiNDM4Y2FiOWI0OTI4YjNiMmNhMzBhZjljYzU0MDY5MGY2YiBsZWdhY3ktdHJ1bmsKKzE2ODg4IDAwODliMzlmZTQ5Y2JjMzIzODhmMGFhYTFmN2U2MjAyYTExNWJlOTcgbGVnYWN5LXRydW5rCisxNjg4OSAzMTRlYzU5ZTRlMTRjZTJmZTU4ZmJkYzVlZTMzYzFmZmViNDZkYzNhIGxlZ2FjeS10cnVuaworMTY4OTAgNzEzZGQ3NmJlMzdiYWM3ODJhNzYyMWI3ZDUzOGRhYjgzNmJmZTU0YSBsZWdhY3ktdHJ1bmsKKzE2ODkxIGM2NGFjODNkM2YxODIyNWRlNDlhNDlhN2U5ODI4ZWE0MzE5MmFkZjUgbGVnYWN5LXRydW5rCisxNjg5MiBmODg0MzEwMWM5NDNiOGE3YjUzZTEyNDJmMWUxZWQ2ZGJlMmUzNDVlIGxlZ2FjeS10cnVuaworMTY4OTMgYjY3ODQ5MWY3ZTExNmY4NTAzZDM5MDMyZGExOTRjMjdiM2ViNjc0NCBsZWdhY3ktdHJ1bmsKKzE2ODk0IGI2NTJhOWFhOTRmMTMzNTFhMTM2Y2NjYTUxOTY3YTc4NTZkMWVjNTggbGVnYWN5LXRydW5rCisxNjg5NSA1MWMyZWVkNjAxNTkwY2Y4M2IyNWY1NzRlYWEyMjdhMTE2MThkZjhhIGxlZ2FjeS10cnVuaworMTY4OTYgNTc3OGY5M2NmMjJiNGMyMTg1N2VmNTU1NDIwNTgxMzlhZTBkYTM0MCBsZWdhY3ktdHJ1bmsKKzE2ODk3IGRlNzQyMzAzYzQ1NjkxMGQ2ZGUxYjY1YTUzYTFmYzZiMjUyM2FmMGEgbGVnYWN5LXRydW5rCisxNjg5OCBlNjc4ZTU4MDQ5YjRjNTQwZDYxM2Y1NzA5ZjE3MTllOGFmYjM1ZDljIGxlZ2FjeS10cnVuaworMTY4OTkgZjE5YmVhNjgxYjY2N2M0Mzg0ZTg0OWZkZjA1YTk3OTk4NmMzYjIxNSBsZWdhY3ktdHJ1bmsKKzE2OTAwIDAyYWJmNzcxN2M5NmUxNzlkOWMzZDRlNTEwMmQ1YTZiMDVlM2Y5OTAgbGVnYWN5LXRydW5rCisxNjkwMSAwYTYzYjQ3ODlkZmNlNGJlMjBjOWRiNWE2Y2RiNmIwNTM2MDVhZjY2IGxlZ2FjeS10cnVuaworMTY5MDIgMDYxMmExY2ZiYmY2ODk1MmE0ZWUyMTZhYTQ1YWUyMDY1YTA3NGRiZiBsZWdhY3ktdHJ1bmsKKzE2OTAzIDViZjU2MzkyNDE5NDM4MzYzZjcxYmZlMjFiZDU1MjU1ZDFjMTdiMjggbGVnYWN5LXRydW5rCisxNjkwNCBkNjM4ZjUzNWY0MDNjOGUxOGVlZThhODRjMzU3OTRjYjIyMDgwMGJlIGxlZ2FjeS10cnVuaworMTY5MDUgNTc5ZTVjNzAzNWUyZDAwMzlkMmI4OWEyMjQ1MDc5ZjI2MDdhZTRjZSBsZWdhY3ktdHJ1bmsKKzE2OTA2IDk1MzQ2MTlkYWFhMTJmNzVkNjVlMzYzYTAwNGU4OTQzZjMyN2IxN2YgbGVnYWN5LXRydW5rCisxNjkwNyBkM2Y1YjQ1M2FkZTg0ZTFkZWE2YWUyMDU3MjZmYmRmMzgwNTNlNzY5IGxlZ2FjeS10cnVuaworMTY5MDggNDY1YzdjMmU4ZjIxNDZkNzYxZmM0MDY3NjAwYzZiYWQ0NWQ0Yzg2NSBsZWdhY3ktdHJ1bmsKKzE2OTA5IGVjNmEwYjRhNjQ3OWE1NTgxNzU1MTgyZTM2YTdkYjA2NDIwYWExYmEgbGVnYWN5LXRydW5rCisxNjkxMCA2MDY3MTRmYWUxYjUwN2M5MDkxYTY4MTZiYmIxMTU4ZWUzYmZhYjgwIGxlZ2FjeS10cnVuaworMTY5MTEgODhkMTFmNDhhMzg0NWI0N2YxMThlOTI4ZjcyOGE1ZWU0NjJmNDA2MyBsZWdhY3ktdHJ1bmsKKzE2OTEyIDAzZGI3YjIzOTJhZTg4YTQwMmI4MjQwZDkyOGNlMDU5MTlkNjk2OWQgbGVnYWN5LXRydW5rCisxNjkxMyA3NDYzOGQyMGM0ZmQwZjQxNjhmNGVjZWMzNmYxMDU0MzJlZTY5MTRlIGxlZ2FjeS10cnVuaworMTY5MTQgNDRlNjY2Y2M4YzA3YmRlZWMyYmExNDViN2Q5OGNiNjYxYmRmMTNhMCBsZWdhY3ktdHJ1bmsKKzE2OTE1IDQ2ODQ4MTEzNWM0OTBiMWEzMTk0MWY1NTUwYWVlYzk5ZDllYWJiYTMgbGVnYWN5LXRydW5rCisxNjkxNiAyZGUwY2MxNzRjM2JlOTFhZTQ1NTAxOWIwYTk1ZDQyZWRkZDY1MjI3IGxlZ2FjeS10cnVuaworMTY5MTcgZTJlZDY5YjgyZDhkNzE4MTg1MjhlMjFjOWU2MGMwNGY4ZmFmYjk3NSBsZWdhY3ktdHJ1bmsKKzE2OTE4IDI5NjM2ZjAyMGQ0YzdiNGE1YjNhZjM0NGM1ZGNkNDZjYTNhOTFiNGQgbGVnYWN5LXRydW5rCisxNjkxOSBmNjU3ZGM4ZmYyNWU5M2I4NzczMDViYmNmYzQ1ZTM2MDE5MWJiMzI2IGxlZ2FjeS10cnVuaworMTY5MjAgZGE2OWI3ZDFmMjBmMGE2Y2JhNGFmMmYwMzZmMmI3ZjQ5Y2IyMDI5ZiBsZWdhY3ktdHJ1bmsKKzE2OTIxIGQ4MDliOWI3NWI5OTM5MzE5Zjc0ODVlNDZiMjYyMmViOTk1ODBkMDEgbGVnYWN5LXRydW5rCisxNjkyMiA0ZGFjOWUzMTQ5YmVhYzk5MGZmMTBlNDQ2OGExMGY5MmI5ZTY2NTFmIGxlZ2FjeS10cnVuaworMTY5MjMgZTk0MzQyZWVhNGY4OGU0MmQ1ZmQyM2E5M2QyYzNhMzExNjRkZWI4YSBsZWdhY3ktdHJ1bmsKKzE2OTI0IDE3ZDMxMjg0NzhjM2I5M2YxYjlkMjU4ODM4ZGI1NDhkMWVkODkwNDcgbGVnYWN5LXRydW5rCisxNjkyNSAzMTQ4ZWZlNTYwNmZjMTgxOGMzM2NjZTM4MTM1ZjJmNjExMjVlMDg4IGxlZ2FjeS10cnVuaworMTY5MjYgMGFiZmNhMDAzNWRjYzgzMmZhMTVjMGUyZDMyNTBjYzA4MWM4ZmFjYyBsZWdhY3ktdHJ1bmsKKzE2OTI3IDg3YjhmMGVhNTBlOGQxNTYwNjUzNDk2M2I3YmRlYzE4YmI2ZDk2MGEgbGVnYWN5LXRydW5rCisxNjkyOCAzZWEyM2UzYzFiMDZlMmE2NDllMzI2OWQyYTk5YTkyNjQxYjNjYWJlIGxlZ2FjeS10cnVuaworMTY5MjkgNGVhY2MwYzkxMjA5MGJhMGU1NmYwNjBkNjJhMWQwZTAwNTJlYjlhMCBsZWdhY3ktdHJ1bmsKKzE2OTMwIDNhM2FkZmRkYzI5ZDFmMDgyM2U2MTVhYzY3NTdiOWVjYTc2NzMyZjIgbGVnYWN5LXRydW5rCisxNjkzMSAwZjgzNDFkY2MzY2JjNmI0YWY2ODZmYjNkOTg5OTY2ZmYwYzQ1YWRkIGxlZ2FjeS10cnVuaworMTY5MzIgOTI5ODA5MjBkNWVkMTBkZTViNWZlYzcxZjcxMTEwNTE2ZTdmMWY4NCBsZWdhY3ktdHJ1bmsKKzE2OTMzIGFjODgwOTk1OWQwMTY0NDE0MGU3MjFkYzUxNDkyN2UxMTdlYjllYTAgbGVnYWN5LXRydW5rCisxNjkzNCA0NGY0YTg0YTgwYTgyNWQ4YmYwYzA4MzA5NDNkNTY0NDUxNTIzNTJlIGxlZ2FjeS10cnVuaworMTY5MzUgZjYzMzhkNzRkY2ExMDdhYmE4NmU0N2U2Y2U1YTE5ZTU4NmExZmIxOSBsZWdhY3ktdHJ1bmsKKzE2OTM2IDgwZDQ2NjhmMWUxMDM3YjUyZDQ4NmI1ZTk4ZGFmNDUzODQ4ZWYwZmEgbGVnYWN5LXRydW5rCisxNjkzNyBjMTRjYTIwZDFmYzhkOTViNTExYjIyZjBmM2IwZWRhOGUzYTlkYzgwIGNucmktMTYtc3RhcnQKKzE2OTM4IDczYzU2NGU0YTBmMzUyN2FlYmRlNjZiY2ZiNGIyNzNlNDNmYjVlNDUgbGVnYWN5LXRydW5rCisxNjkzOSBlOGFlNzBjM2FiYjQzYTE3OWNkOWQyYjE3NzE0ZmUyODdlYzg5ZjY1IGxlZ2FjeS10cnVuaworMTY5NDAgMjY4OTY3Yzk5MzRhMDU4NjQxNmMzYjQ4NmU3OWJmNTFiOTcxOTYzNSBjbnJpLTE2LXN0YXJ0CisxNjk0MSBkYzVmNjdlOGEyYWYxOTM4OTBlM2JkMDU1ZWE4ZjhmZDAxZTkxYmYzIGxlZ2FjeS10cnVuaworMTY5NDIgY2VmNGRhNDE0N2M4M2Q1ODk4OTM5MmU2ZmM3OGEwZjVjZGUxNDU3NyBsZWdhY3ktdHJ1bmsKKzE2OTQzIGZkM2Y4YWNmMTAzZDFlN2EzZjhmMDJlZWFkOTQ5NDI1MDM1NTdmYjAgbGVnYWN5LXRydW5rCisxNjk0NCA0MWViNzU1ZTRlZDE1M2Y2NThiODYzYTljZTZhYmIxM2MxNTBjMGM1IGxlZ2FjeS10cnVuaworMTY5NDUgMjY3NjhlMjFhY2Y5MGVjZjUwMmQ1ZDVjNjU0OWE0ZjY5M2JjMzZhNCBsZWdhY3ktdHJ1bmsKKzE2OTQ2IDAzOTU4M2MwOTBjNDM0MjRiOWE4NDQzMGMxZTc5NWRjZmQyZTlkZWEgbGVnYWN5LXRydW5rCisxNjk0NyAyYzJhZTg2ZGZlODc3MjU5YWIwOTFlOWM5YzNhNjM1NDE2MDNhYTZmIGxlZ2FjeS10cnVuaworMTY5NDggN2FhZDdkOWI2MTZlOWRkYmRkYmJhMDRmMmZiZWE5OTVhMjA1OWVmZiBsZWdhY3ktdHJ1bmsKKzE2OTQ5IDQ0MWRhMmM1ZGU0M2E5NTNhY2I2NWM2NTk3NjcyOGY4NmI2ODllZGMgbGVnYWN5LXRydW5rCisxNjk1MCA0NDIxMjMzNmQ3MWVhOTdlZmU3YWUyMzc0MzJmOTc0MzAzOGI0NzEyIGxlZ2FjeS10cnVuaworMTY5NTEgM2ViMTM1ZDYyZTJhZWQyYzMxZmRjMzI3Y2QzYzJiMjUwZmE4NmZmOCBsZWdhY3ktdHJ1bmsKKzE2OTUyIDc2ZTczMzg5YzM0MDcwMTIwZTY2MmYyN2ZlNTgyNGJmMWRlNTBlNzAgbGVnYWN5LXRydW5rCisxNjk1MyA5OTZjYzA2NzVkYjY3ODY5ZTk2ZTAyNmJmOTg0YmQ2YmI1YTNkMGQzIGxlZ2FjeS10cnVuaworMTY5NTQgYWFlMzdkYzk5ZjU3NTU3MDhjZDFhMDI5NmU2MmI2ZTIzYzRlYTA5MSBsZWdhY3ktdHJ1bmsKKzE2OTU1IDA3MDhjYWM1OWRlZjNhNjY4NDY4MzNiZjVkODZmNDI2NGU0MDQ0OTQgbGVnYWN5LXRydW5rCisxNjk1NiBmNmU1Y2MyYWY2ZjE5N2E0NDMwMzE1YjBmZWQzOTVmODkxNjVjOGYyIGxlZ2FjeS10cnVuaworMTY5NTcgMzExNmIwYjkxMmU5NzVjNjE4NjlkYTU5ZTQ2MDA0ZjI3MTY1MTA3NSBsZWdhY3ktdHJ1bmsKKzE2OTU4IGY3YThjNDBiMzg4MGM0MTM3MzJhMDExZTRlMDczYTZjNmIzZGUxMDEgbGVnYWN5LXRydW5rCisxNjk1OSA0Mjg3MjlmZjg4MjQ5ZmRlYjUxOTdiNmEwMDFkYTRjZmNkNTc3NTJhIGxlZ2FjeS10cnVuaworMTY5NjAgZjcwNDI0ZWJiMzliNGExZjQ4YzIyNDA1ODhkYjRmZThmMjkyYWU4NSBsZWdhY3ktdHJ1bmsKKzE2OTYxIDIyYjU5MGY4Y2Y1MzgyNDEwZTBjMzVkNDBiMDNmYjBlYTkzOTAzY2YgbGVnYWN5LXRydW5rCisxNjk2MiAzMWNkYTg3ZTlmZjRlYTQ3MzE4YTY4YzQzZjk3ZWRkMjczMWIwZjJmIGxlZ2FjeS10cnVuaworMTY5NjMgNzNlNDg4NDcxMjYzMDhiMjBjNzg5OWY5MjFkYTlhYjA1Mjg2YmUzYiBsZWdhY3ktdHJ1bmsKKzE2OTY0IGY1Zjg3ODRhNGMyN2M4YTUxMGFlM2RkZWZiMjNmNzQ0NzRmZTVhODkgbGVnYWN5LXRydW5rCisxNjk2NSAyMWVjNjlhNTYyMjg4NjNkODlmODdjNmQ0OTdhZDIxNjg5NmE5NWVhIGxlZ2FjeS10cnVuaworMTY5NjYgYjhlNWU5MzM4MDFlMzZhZmJkMzVjNjhjODZmYjAzZTY4NzBhNmZkNiBsZWdhY3ktdHJ1bmsKKzE2OTY3IDhkY2RkY2YxMzMwYTc3ZDU4MmUwYjg4OWZhNTEyMDIzZjQ4NzI5MmUgbGVnYWN5LXRydW5rCisxNjk2OCAzMDJkZmQ1M2IzYzhmYzIyNThhZDg4YjIxNzUyMGFkMzVhOWM2MTc4IGxlZ2FjeS10cnVuaworMTY5NjkgNzJkOGEzYjIwM2IxNGY2YjFkYjZmNDM0Mjk5MDJhNDVlNTRlNzczMCBsZWdhY3ktdHJ1bmsKKzE2OTcwIDNkYTViZjNjNWYxNTc0ODY0ZTE4NDNjMjQxYWU4MTg2YjdlZGFmMWEgbGVnYWN5LXRydW5rCisxNjk3MSA0MDQ0N2I2NzIwNjRiNDIwNDk4ZTk2YTcwM2E1NGIyMzA5ZTBiNTEyIGxlZ2FjeS10cnVuaworMTY5NzIgZWMzZTBmZTE3YjNkNzdhOTljMzk4N2M1NTlmNjRkNDMyMjJkN2VjMCBsZWdhY3ktdHJ1bmsKKzE2OTczIGRhZDU0ZDQ0ZDllY2MyNzM0NDY0NzFiZTEzOGZiOTY3MzhmZTk0M2EgbGVnYWN5LXRydW5rCisxNjk3NCAwNTFkY2Q3Y2QxOTkxZGU5ZTE2ZWQwMzBhYWU2YjFmMDRiYzBlNjExIGxlZ2FjeS10cnVuaworMTY5NzUgZTdjOGI1OThmZjc1ZmEyMzk1MzY2ZmQ1ZjIxZDgwYzc0MTI0ODVmMyBsZWdhY3ktdHJ1bmsKKzE2OTc2IGMxMmU3OTZiYzRiNjc1YjA4NDkwOTUwNjZiMWUwZjYwNGI3ZWRhNmQgbGVnYWN5LXRydW5rCisxNjk3NyA2YmYwNjFhMmZjNzgwMmY3NmFlYzYzYjZlZmQzZjg2YjY3NWY3MDYxIGxlZ2FjeS10cnVuaworMTY5NzggNTQ2OGI2ZTNiOTZhN2QxN2Y1OWIwNTUxZjQ3NTE0ZDA4MThkYjY1NSBsZWdhY3ktdHJ1bmsKKzE2OTc5IDUyZmQ0OTZkMzUzMjA5YzUzZjdhN2FjMDJmYzA2NDc1MzE1N2I4ZDggbGVnYWN5LXRydW5rCisxNjk4MCAyN2Q3ZDg5Yzc3NGIxMDAwM2E4ZTgzMzMwYmM2M2Y2NDQ0ZmYwNjI0IGxlZ2FjeS10cnVuaworMTY5ODEgMWI5ZmQwY2JkOTE0OTQ3Y2M0MjFiYTdlNDVhYTA5M2Q3YmE5YWYwMCBsZWdhY3ktdHJ1bmsKKzE2OTgyIGRiYTRhZWM5NzBlNmNkYjUwZDE3NjUxMmMxYjdmMGJjNjBhYjUyMTYgbGVnYWN5LXRydW5rCisxNjk4MyAwMTg0NjU2OGQxNDdkMTY3MDdlZDk1OTJkODY5YjkwNmNmMWFkZDBmIGxlZ2FjeS10cnVuaworMTY5ODQgZTljMmY4MzBmOWJhNTJiZjU5NjhjYzdjZDI2OGQyY2U3MTc1YTJkZSBsZWdhY3ktdHJ1bmsKKzE2OTg1IDUxYTMzYTNiMmJhOTM1NDU3ZmQ1ZmM4NmNhNzlkZWExNGYwYzdhNzEgbGVnYWN5LXRydW5rCisxNjk4NiA5MWRlYWRmZGFlMzZiYWFlNmEyYWQ3Y2NlMmY5ZjY0MTdjMjIzN2EwIGxlZ2FjeS10cnVuaworMTY5ODcgYjhlYWRlZWQ4ZWQzNTE4MDM2NjRhNmI4NzhmMzk5MWZmNzNhZjM5MCBsZWdhY3ktdHJ1bmsKKzE2OTg4IDAxOTI2NWIzYTg1NjU5YzQyNjlhOWNhZDdmNTM4ODAwY2RmZjZhZjMgbGVnYWN5LXRydW5rCisxNjk4OSBjNTYzNzJhZDkzNDM1ZjFmY2M1Y2RjNTBlYjU5OTBlMTEzNTBhMTViIGxlZ2FjeS10cnVuaworMTY5OTAgMmI2YTYzNzU5Yjk3Y2Y5N2YzZTdhMTg0NWQ1N2YxZmZkNGJjNjhhYyBsZWdhY3ktdHJ1bmsKKzE2OTkxIGY2NmU4NjNhMmE1YjFlNDI3ZDZmYzE3MDUyM2JlYzI0MmNlMmM2OTYgbGVnYWN5LXRydW5rCisxNjk5MiAzNWI3OTg5YmEyMGM4YTE1M2E0N2MwMTQ4YmM2MjRmYzFkMmVmYjA3IGxlZ2FjeS10cnVuaworMTY5OTMgOGQxYTA1OWFlOTlkNDRlMjI2YTNlMjUzMDhiOWNhNGVmODkwMGU3ZiBsZWdhY3ktdHJ1bmsKKzE2OTk0IGFjYzcyODU4ZWI3MmM4MzYwMTY5ZmRiMWM4YTE2OWExMzE2OWI3OTIgbGVnYWN5LXRydW5rCisxNjk5NSBhYmJjMDI3OTVjNGRlZmVjYTI5ZThjNjg1OGExNWVmZmUxODIwY2ExIGxlZ2FjeS10cnVuaworMTY5OTYgZGZmMjJkNGE0OGRhZTM2ZmIwYThhNGRiMjc4MGZmOWJkYjNlNmFjNiBsZWdhY3ktdHJ1bmsKKzE2OTk3IDU3NzJjNDk4M2RkODdkMzgyMDI5MDg3ZGJjNmFhYzQ3N2ExZTJjYWQgbGVnYWN5LXRydW5rCisxNjk5OCBlYTcwNDBhYjcyODZmMjJhY2IxMjYwMWI4NThiMjA4MmY3Y2NlZDM0IGxlZ2FjeS10cnVuaworMTY5OTkgODlmODE1M2ZkMWJhMTYxZjgyM2YxOTYxZTNmNGE4NDFiODU2MjJhZSBsZWdhY3ktdHJ1bmsKKzE3MDAwIGM4NWE4MGRiNjg0NWIwNjJmNTc5OTRiYjVlYWEwY2JjOTBmODcyNDYgbGVnYWN5LXRydW5rCisxNzAwMSAyMzg1ZWE1ODcyZTE5M2JlNTRiYjdhMGRmYThiNTMyNjIxYTEzZjY3IGxlZ2FjeS10cnVuaworMTcwMDIgMjg2M2ZiYjEzNWYxZjljYzZjOTdmZjQ1MTBlNGQ0ZGU2YjY5ZWU4ZSBsZWdhY3ktdHJ1bmsKKzE3MDAzIDkzMDEzZTRiYmUwMmUyNGIwMmNhMDM3NzE1YjM2NDU4MDUxYjY0ZGEgbGVnYWN5LXRydW5rCisxNzAwNCBlOTIxMjI4YWY0MzU2N2VmYzkwMTIzNTg3ZTAxNmU5MTQ1ZjBlYjVmIGxlZ2FjeS10cnVuaworMTcwMDUgNTgxNDYwZmNmMTQyNTYwMGU1MWE5YTQxMjc3OGRhNmIwMGNmNWE1NSBsZWdhY3ktdHJ1bmsKKzE3MDA2IDYyMjMzOTdiZDZhMjY2MTg0MzM2MjIwOWZhNjdlM2I4MTlmZTNlZGMgbGVnYWN5LXRydW5rCisxNzAwNyAyNzdmZGQ5NjQ3ZmUwOGIxYTdhYTI3YjgwYWY1ZWIxNjIzYjQ0NGUyIGxlZ2FjeS10cnVuaworMTcwMDggNGU2NmEzYWI3NTdkYTMyZjY2ODFkZWNlYmVkZjBkMDA1YzM4OWZiZiBsZWdhY3ktdHJ1bmsKKzE3MDA5IGJkM2QxNDExYjY2YzFkNDA1ZDYzNjJkNTQ5YjlmNDgxNzRmYmI4YTUgbGVnYWN5LXRydW5rCisxNzAxMCA5YmYxNTlmZjQ5MTI5MjNlZDJkNDUyMDlhMzFlYTU3YTIxMjcwMDJmIGxlZ2FjeS10cnVuaworMTcwMTEgMjExOTc2MDM0Y2Y3ZWUzOTBjMzBmNzk3NjY3NjE2ZWRkNGE3Yzg1NyBsZWdhY3ktdHJ1bmsKKzE3MDEyIDlkOGNlNmVkNGEyOWFiNDIwMDM1ODAxOWI3MmUxYjY5ODI2NjVjNzggbGVnYWN5LXRydW5rCisxNzAxMyA5OTk2NzFmNjlkZjRkMDVmZjc0ZmYxOTEzNTA5YWZiNWIwYjFmNTg1IGxlZ2FjeS10cnVuaworMTcwMTQgNDEyMzRhZTk1ZDJhMDdlNWRiMDM0MTFhZTQ1MmNmMTBlYWQ5NWZmMiBsZWdhY3ktdHJ1bmsKKzE3MDE1IDI3ODdlOTM4MTdjNmEwYTE4ZGZiZTlhMGYzM2U1NjVmYWVjMTQyMjEgbGVnYWN5LXRydW5rCisxNzAxNiAzNGU3ZGU0YWRhNzBhZjNjYmI2MDc2YTNkZGY1ODJiNzRmOTE1MGU3IGxlZ2FjeS10cnVuaworMTcwMTcgOTAwYTE3NzU0MDIxM2NiZmRhNTRmM2IwMWMzZmE0M2VkOGQ3Nzk2YSBsZWdhY3ktdHJ1bmsKKzE3MDE4IGVjNmEyMWY1NWZhMWNlN2Q3NDVhMmRjOTZhZGQwMDE4NDhhODg3ZjMgbGVnYWN5LXRydW5rCisxNzAxOSBkMjIzNjIwYTgxMTI2ODljOGIxZmM4NDYyYjhmZTNlN2E4YjI1NzExIGxlZ2FjeS10cnVuaworMTcwMjAgMWIwZGFiZmZjNTFjZjA5MDA0MGVhYTk3YTM4ZWUxNmRiOTJlN2UzYiBsZWdhY3ktdHJ1bmsKKzE3MDIxIDFjMzQ0NTM3ODg3OWJhMjZiNDgxYjBjMmQ5NWRhY2FmNjA2NTYwZmUgbGVnYWN5LXRydW5rCisxNzAyMiA2ODE2ZGIyNjUwY2FiZjliMDFkY2UwNWZjYWFlNjg5ODg2ZGNlYzdjIGxlZ2FjeS10cnVuaworMTcwMjMgM2FlMTg1YjhmZjAzMWIxNDhlNTY0YzgyN2E0NTM2YjQyMmViNjA3NyBsZWdhY3ktdHJ1bmsKKzE3MDI0IDRlOTA3YTUxYTdhZmZjMWYzY2MyZGI5ODRiYWRlZjlkYzQ1YzFhNGYgbGVnYWN5LXRydW5rCisxNzAyNSA4YzdkY2QxZWQwOGE1N2Y2M2E3ODFlYjk2OGNhMTE5NzUzYzliYzNjIHVuaXZlcnNhbC0zMworMTcwMjYgYzE2ZjJkYzljMDg5ZTg2YTVjY2MwMDFiYTRiN2ExZjQ5NjM1ODY1OCBsZWdhY3ktdHJ1bmsKKzE3MDI3IDk0ZDcxZjJmYzlhODNjZGRjNzAzNWE4OWZlNTIxZmFiN2IzM2FiNmUgbGVnYWN5LXRydW5rCisxNzAyOCAwYzBlZTg4NmZiMDNiNzkwNTdmMDBiYjUxNzIzNzRhMGU3ODZiOTZmIGxlZ2FjeS10cnVuaworMTcwMzEgMTkxMjZlNTU3Y2U4NDFmNzQ1MzYwYzA2NmJjYWI1OWM4ZTM2MTIwNCBsZWdhY3ktdHJ1bmsKKzE3MDMyIGE4NTZjOTJiMWQ3YmYxYTNkZWMwZTMwMWFmY2UzYWU1YzQ1MTc3NzEgbGVnYWN5LXRydW5rCisxNzAzMyA1ODkxMTJjNDgyNzM0MTAwOGFjOGE5MTJjZTJhOWZjZGE1OGYyZWQ1IGxlZ2FjeS10cnVuaworMTcwMzQgNjNlYTJhMmRmMDZmM2QxOGFlNWQ0YjJlYzZlYzJjYzVlMjE4MGQ3NCBsZWdhY3ktdHJ1bmsKKzE3MDM1IGI1ZmIxNzVhZDUyODI1NDFjNmMyM2Q3MDQyZWE5ODk3ZGU2NTM3ZWQgbGVnYWN5LXRydW5rCisxNzAzNiAwNzk3ZmRiMjVhNzc5ZTE3YThiY2RlZjM0MzhjZWIxNjBlOWQxNmJmIGxlZ2FjeS10cnVuaworMTcwMzcgZDMzMTc5Y2RjNTExMjFkM2I5Mjk1NDhkYTgxZWVjOGFiOTc1MzNmOSBsZWdhY3ktdHJ1bmsKKzE3MDM4IGFlMWVkYzZmZjU0MzVmYWRmOGM2M2ZkNzc0Mzc2ZjdkOWZmNWEzNGQgbGVnYWN5LXRydW5rCisxNzAzOSBlNzlkM2NmNDQ0M2VkOWQ3ZmQ3MWY1Zjk0Y2JhZWNkOTExMjNlOGMzIGxlZ2FjeS10cnVuaworMTcwNDAgMmMzMjgzMDk0MzExNjc5NzNlYjU5M2VjYzJhNmVjM2I4NTM0ZDEyYyBsZWdhY3ktdHJ1bmsKKzE3MDQxIDMwM2MzNmU0ODc2OWY5Mzk1MjdjMmQyOGE0MTBlMDY3NjU4MjhkNDggbGVnYWN5LXRydW5rCisxNzA0MiBlNzVlYjRkOGUzMjliNDdhYjM5YTBjYThiNTQzYmVlNTkzMGQ1OGM1IGxlZ2FjeS10cnVuaworMTcwNDMgZDk3NGNmNTQ1Y2E2YWRiM2MyMjMzNWVlNDUxODlkYzFjYTE2OTIxNCBjbnJpLTE2LXN0YXJ0CisxNzA0NCA4YzUyNjkzMzk3ZDI0YTExZGRjYTI4OGE4Y2MwYzVlMjQ2NzAzNGM4IGxlZ2FjeS10cnVuaworMTcwNDUgYzM5NzMzYmUwZGM4MTFhYThiMTEwOWVmOWNjZDliNWM0MThmMWJjMiBsZWdhY3ktdHJ1bmsKKzE3MDQ2IGE0ZjUzMjhjY2YxOTIyN2JmZGYwZTVlNjM4OGM1NTA4M2EwOWNlNGEgbGVnYWN5LXRydW5rCisxNzA0NyBjYmU5NTkwZDIzNDRjNGI4MjZjY2M5YmFhZmI2NWM2MGVlNWJjOTE4IGxlZ2FjeS10cnVuaworMTcwNDggMTFhMjZlOTYzZGM5MDhmNmQ0MDBhZWQwY2NiMzAwOWQ0MTU1MWZhZSBsZWdhY3ktdHJ1bmsKKzE3MDQ5IDlmOWYzMjgwZGM2OGEwMTc4YjY0YzQzMDljODI4ZWY0MGEyOWRlODggbGVnYWN5LXRydW5rCisxNzA1MCAyMDM3N2YxNWI5NmE3Y2JmMWYxOGMxMGU2YmQ0ZjUyNDcyZjBjNDBiIGxlZ2FjeS10cnVuaworMTcwNTEgYWIwZWJmMTJkNGRlMjIyYzA3NDUxYWY5N2JlZWY4ZDIzZmE3NGZlYyBsZWdhY3ktdHJ1bmsKKzE3MDUyIDMxOTI1YWI0NmIyMzU0MmExYzM0N2UzZmMzMTViMjZhZDI3NTQwZTcgbGVnYWN5LXRydW5rCisxNzA1MyAzOTZiNGFiM2I5YzJhOWNiZGNiMjVkN2FlZmE0NzExYzUzMGU0OGMzIGxlZ2FjeS10cnVuaworMTcwNTQgMWYxYTE1NmVkNWFmOGY3YTUwY2UwNWZjODVmODU0MjNhMjRmMmFhNCBsZWdhY3ktdHJ1bmsKKzE3MDU1IGI5N2U2MjAyZjBiMTk2OGJkOTg5MDMxZjJhMTE4NTkwMjNiNmUyOTQgbGVnYWN5LXRydW5rCisxNzA1NiAzZTVkNmUyMDkzZGZlMWM1YmQ5NjU5YjYxYWRiOWI1ZjlkOGNjMThhIGxlZ2FjeS10cnVuaworMTcwNTcgNjNkODU4OTdjNjlmYTRkNTdjMTcxZTNiODlhZDM1MGE3YjM0ZTY3ZSBsZWdhY3ktdHJ1bmsKKzE3MDU4IDU4ZDc5OTVjZTc5NWY3OWZlYjAyY2ZkOWVjYmY4Y2ZlMDE3YmU3OWEgbGVnYWN5LXRydW5rCisxNzA1OSBkOTY0M2U5YzkwZWIxYTVjYzlkMDFlNzg4MjNlYTFjZDMxOTA3MDQ0IGxlZ2FjeS10cnVuaworMTcwNjAgNzRmN2YyMzdmNzM5ZDhkNmM5MWU0NTM3MTY0M2M3NGYzNGM4YWJlNiBsZWdhY3ktdHJ1bmsKKzE3MDYxIDBlNjZiNzc0MDk0YmZlNTUxNDU0Y2U3YjJjOWIxZDUyNTZiYjRlNjkgbGVnYWN5LXRydW5rCisxNzA2MiAzNDgzYTc4ZDEzNWZkNDYyNDFiYzZmM2E2OGU3Y2RmNThkMDQ1NGQyIGxlZ2FjeS10cnVuaworMTcwNjMgM2ZjYWMzNWM3ZjVlMjFmZmVlMTdiMjViNWNjMjI3YzU3OTMzNDRiMSBsZWdhY3ktdHJ1bmsKKzE3MDY0IDA2NzBjNGY5MDE3MTBmMmQwOWMyMjk0N2Y0MTZkNWJmNDc2MzVjMGQgbGVnYWN5LXRydW5rCisxNzA2NSBiMmE4MjkyYzM5YTlhMmRmM2ZlOTkxOTIwMWZhYWE3MzU1MTZkMjE2IGxlZ2FjeS10cnVuaworMTcwNjYgN2IzMmNjZGYxZDRhMjAyNGZjZjM4ZmNiM2ZmMTZkNmE3MzM2NjcwZSBsZWdhY3ktdHJ1bmsKKzE3MDY3IDU5OTRiYjYxOTE2MzMyYzVmZGU5MTRjNTJmNjgyMjkwYWZjMjQyYTkgbGVnYWN5LXRydW5rCisxNzA2OCA5Y2QyZjc5MGM1MGMzODI4NjRlYTM2YWNkMjdlNmQ3YjBkMDU4ZjVhIGxlZ2FjeS10cnVuaworMTcwNjkgYTE0MmVhMjBmZTk0ZjE4NDZmNDVjODlhMjk4MzRmNjlmN2U3YmQ4MyBsZWdhY3ktdHJ1bmsKKzE3MDcwIDQzODg3MWU3MDUzMmIxN2JlMjcwY2I4ZDVkODJmMjYxNjdkMTFkNGYgY25yaS0xNi1zdGFydAorMTcwNzEgYTFiMmZiMTdiZGU3ZWQ3YWI3Y2FmM2YwNmFlMTA5YWY2ODYzMzdhNCBsZWdhY3ktdHJ1bmsKKzE3MDcyIDRlMzY0MGEwNjg1NzIwNmJmMTY2ZWZmNWFiZjY3OGY3M2RiNWRlYzIgbGVnYWN5LXRydW5rCisxNzA3MyA0YWZiMDg4OWExNjVjMTk3NWI0YTEwNjEzMmI4YzJlN2U5ODlhNDc2IGxlZ2FjeS10cnVuaworMTcwNzQgNThmM2Y5MzYyNzlmZjY4MmM2MDVjODFiNTIzZDI0YTk3N2FmZTViNSBsZWdhY3ktdHJ1bmsKKzE3MDc1IGE5OWZhYjBiYTJkZjg4YzlhOGMxNjYwNzAzYjJlNzZjYzVjNGU3YTIgbGVnYWN5LXRydW5rCisxNzA3NiA3NDU5MTU5YmEyNDlmNDZmZjFkNDMwNWY1YmIxOGJjZTJmYTUxYzQ2IGxlZ2FjeS10cnVuaworMTcwNzcgODMwZGU2OGRlMzMwOTVhYjczZThlMTQ4ZDkwY2Q4MTgwZWM4OTc1ZCBsZWdhY3ktdHJ1bmsKKzE3MDc4IGNkZDk1ZDY3YTcxNDI1ODI5ZGU4Yjg1OTA4NTNiZTg3NzBkOTA3M2YgbGVnYWN5LXRydW5rCisxNzA3OSAxZmMzM2RmY2VjNDQyY2NmZjhlM2NmOTQxODAwZTJmMTZjNzVmZDE3IGxlZ2FjeS10cnVuaworMTcwODAgNWZmZjRmZmViMzVkNWM1YWYxZjdjM2ZkMmJiODRjYmRiMDRkOGYzYyBsZWdhY3ktdHJ1bmsKKzE3MDgxIDYzOTY1MjlhNDIxYzllYTQzMTMyNjVhMDIxMzU1NmJiNWVlZjdiODUgbGVnYWN5LXRydW5rCisxNzA4MiBhZTI3NTY0NDQ1N2I1NTRhY2U0NmJlYWY3YjhjOGNmYWRhYjE3ZWI5IGxlZ2FjeS10cnVuaworMTcwODMgZDg3Y2UyZDJlNDI1NzMxNjU2ODQwZTUxMTA3ODA4ZDE0ZTEzMDhmZSBsZWdhY3ktdHJ1bmsKKzE3MDg0IGFkZjNhMjg0YTJjZjFkNjZlNmFiMDE0MmFlNWJjMTdiM2NjMWZlYTkgbGVnYWN5LXRydW5rCisxNzA4NSA5YjIwYTY5YTUwNWUwZTZmMjg4N2I4NjY3MjI2OTMwYzljZTA5M2RhIGxlZ2FjeS10cnVuaworMTcwODYgMzYzODUxY2NjZjJhZWQyMmE3NWY2YWI2YzY3OWI1MGVlMjYyOTQyNyBsZWdhY3ktdHJ1bmsKKzE3MDg3IDY2MGRiY2MxOGI5ZWM2ZTk2ZmNlMWEwNDg4MzE1NGIzZDQ0YmQ0NWUgbGVnYWN5LXRydW5rCisxNzA4OCAxZjc2ZmM5OGI0YzhkZjAwN2IwODg2NTYwYTZlYjM5NzE0NWMxNWJkIGxlZ2FjeS10cnVuaworMTcwODkgZDNmOTJmM2ZjMGIwOTAyNmQ5M2FlYTVmYWY5ODk1YWZjOWMyOWQzYiBsZWdhY3ktdHJ1bmsKKzE3MDkwIDk4NjA4NDI5Y2E2ZTQyOTI0MzBkMjJhM2M4NGRhNGYyY2U2MjI0NGMgbGVnYWN5LXRydW5rCisxNzA5MSBjZDhiODE1Y2IxOTY1N2EwY2Y1MjFhZjBlYjVkZDRiMmNkN2Y3ZTc5IGxlZ2FjeS10cnVuaworMTcwOTIgOTBjYTZhYjI2OTA5ZWMzNDFlMDUxZGIyNGVmZjAzYmVlNzI1YWI3OCBsZWdhY3ktdHJ1bmsKKzE3MDkzIGRjOWQ5ZWM0NDY3OTM5NWEwZjljNmFmNWIxNzM4YWZhNGJlN2UyMDcgbGVnYWN5LXRydW5rCisxNzA5NCAxNWI2ZmMyNWY2MDUwOTZmOTM2NmM3MzcxMjk3OGMxODBiZmFlYjM3IGxlZ2FjeS10cnVuaworMTcwOTUgMjE1NTdiYTRhZmJjZWRiY2ZkZDQ3NmQwOWY5MTdkZTdhYTVhYTA1NyBsZWdhY3ktdHJ1bmsKKzE3MDk2IGJiZmM0OWE4NDM4OTY0MmU5OTBhOGJiYWQ4YzdjYzk2MDQ5MjIwMTAgbGVnYWN5LXRydW5rCisxNzA5NyAxOGRhMmJjNTA1OGMwZmRmOGI3OGY2NDFkN2NjMzYxNGUzNGYxODk3IGxlZ2FjeS10cnVuaworMTcwOTggYmQ5NTBjNTAxNjdmYTFkODFjMTQ0ZjgyZTcxZWM4YWRjYWQzZjJkMyBsZWdhY3ktdHJ1bmsKKzE3MDk5IGYzYThmNjAzNjU2NzA5OTUzYTRlNWQ0YTJmNDQ1MDE3NGVmMDU3YTAgbGVnYWN5LXRydW5rCisxNzEwMCA5ODRhYmQyMGVlYzI2MGQyNWI0MmU0NzNkOWU1NTdmNThjNTA3ZWE5IGxlZ2FjeS10cnVuaworMTcxMDEgZmI4ZmI1M2EyZWZmMDEzYzU2ZmMxYTllZDFiYTcwYmJhZWZlYjQ5ZSBsZWdhY3ktdHJ1bmsKKzE3MTAyIGIxYTBmZDNkZjFmYzhkNjEwN2NjZDlkZmZiMTQ4NmMzMjFjM2RkYTAgbGVnYWN5LXRydW5rCisxNzEwMyA2OGI2MWFhMWFhNGFhMDk0MDRiOWNiMGY2NDQ3OTg4ZDc1ZGJkYTRlIGxlZ2FjeS10cnVuaworMTcxMDQgOGNmNjYzMTI2NzIzYWRhZmU2NGYzZGU0ZTgxZTA5Y2E4MWQ4ODM1NCBsZWdhY3ktdHJ1bmsKKzE3MTA1IDRkNTY1MDk1YWU5OTMzMDE3MjcyZjk3ODAxMTdlOGM4OTZlNTYzOGEgbGVnYWN5LXRydW5rCisxNzEwNiBkZjg5MjM4YWM3NDc3MTkxODc1OGRlZDQ5YTk1NzM0ODc5ODE4MDllIGxlZ2FjeS10cnVuaworMTcxMDcgZTI1YWE1NmE1MjA3ZGY4YTkwYTU3MWQ2M2JiMTBhZWExYWFmY2I1YiBsZWdhY3ktdHJ1bmsKKzE3MTA4IGQzNTdhZDM2N2YyNjBmYmI5Y2IyYjM3MGYyNDE1ZjY2NzY4ZTZkYWIgbGVnYWN5LXRydW5rCisxNzEwOSBlYTk1ZWVlZTA0ZTcyNDkzNDhlNWRhZjdlM2NiZThjMTg2MDVlMGExIGxlZ2FjeS10cnVuaworMTcxMTAgNmFiNThjNTVlMGEzYzA2ODQwNjUwNzBhN2ZmNGZlYjc2NjU1NDQ4YiBsZWdhY3ktdHJ1bmsKKzE3MTExIDc3ZTI0NDNhYmY5YmRlMzI1MTg5ZmNjY2Y2ZWJmMGY1YTBhOTM1ZDcgbGVnYWN5LXRydW5rCisxNzExMiAyZTJmYmVlNTNlNjlmZTZjY2U2ZjA2YmU3N2FhNmZmZTkxYTk4MzM0IGxlZ2FjeS10cnVuaworMTcxMTMgNTljMTkwNTJhZTRmYjAyMWU4MDM3ZTRkMDI4YTgxZjJkZDIwZTY2YiBsZWdhY3ktdHJ1bmsKKzE3MTE0IGJmZTMwNGZjMDZhYjkxMjI0NDQ4NTc2ZDkzYjVmMzQyNDkxMTZkMTAgbGVnYWN5LXRydW5rCisxNzExNSAxMWE4OTNjYmMxYTAxMmE3ZGY4ODU5NGVkYjQyNDcyMWFlMTk1ZDFhIGxlZ2FjeS10cnVuaworMTcxMTYgMjZkYzYyZGU5YjZlMTVhYTU4OWNlNTk3OWZjMTVlYThhNjc4MTY4YiBsZWdhY3ktdHJ1bmsKKzE3MTE3IDA1MzYyN2U3YWMxNDFlNDhlM2MyNWIyNjNhZjY5ODQ2ZDFmYjU5NTEgbGVnYWN5LXRydW5rCisxNzExOCBlNTI1M2I2OTJlOWZiZTM2NWFiNDM2OWNkNzU5YjI0YjhiODZkNjA5IGxlZ2FjeS10cnVuaworMTcxMTkgODE3MmFjOWQyMTk2NmNmYmE1MDlmYmNkZTIxNWVmMjZlY2FkNGJhMiBsZWdhY3ktdHJ1bmsKKzE3MTIwIGVkYTQ0OWY1NGU0NDllZjIyZTczY2FhZDUzY2UzODBhZmZlMzEwNGMgbGVnYWN5LXRydW5rCisxNzEyMSAxMjA1YjE4MGJhOTAzYzZhYTA0ZDdlZGYzYTM0ZTIwMjY1NDY1M2YwIGxlZ2FjeS10cnVuaworMTcxMjIgYmVjYjFlZjBhNTczNTM5MDc2YTY5YjcxYjI3NDdiM2I0ZmYxZjNiYiBsZWdhY3ktdHJ1bmsKKzE3MTIzIDUxNjdlZDY4MzZmYzRhMWFhMjAxYzYxYzAxYzRhNTIzMjNhM2I0MTggbGVnYWN5LXRydW5rCisxNzEyNCAwMTNjZTdlZTcxNjdjMzlmZjM5ZTQ1YTc4OGZmMTcyMmU1YWE1NTE5IGxlZ2FjeS10cnVuaworMTcxMjUgMzE2NDFlYTg5YTUzNGQ3MDZjMWIwODM0ODcxNTdiNTMxOWU0Nzg4MSBsZWdhY3ktdHJ1bmsKKzE3MTI2IGY4YjIwZDkwYzlhZjI1NDA4MDYwZTZjZmU5NmVmODY4OTUxODI0MmQgbGVnYWN5LXRydW5rCisxNzEyNyAwMTk4ZDIwMjAzOTAzNjgzMTQ1NWFmYzlhZDU1ZGE3N2VlYjk3NDVhIGxlZ2FjeS10cnVuaworMTcxMjggZTM3NzllZTk0MmQwYTAwNWViMzI2YWU5YjYxNjYwOTA0ZGI3NmU3MCBsZWdhY3ktdHJ1bmsKKzE3MTI5IDYyZWMwYmZkOTNmODA4YzY3YTNiMjhmNmU0MDdjYTBjZGJmYmVlY2YgbGVnYWN5LXRydW5rCisxNzEzMCBiMjRkYjc3MGRmZmRkYTljMDhkZmNhZGY5YjRlNThiYjIxOWU1OTRmIGxlZ2FjeS10cnVuaworMTcxMzEgYjhiM2Y3NmZmZDUxZDEyNDFhNjgyZjgyZWQ3MmQwMWY4NTI3N2M5MiBsZWdhY3ktdHJ1bmsKKzE3MTMyIDdkNDBiZDA3YjEyOTY2MzViYTgwZWM2YWI4ZmZkN2U3YTNkMmEzZDggbGVnYWN5LXRydW5rCisxNzEzMyAyZGI4MDdmMzQ1YmNjMDc3NTQ2OTFhYzgxNzc3MDZmY2E3OGE4Njk1IGxlZ2FjeS10cnVuaworMTcxMzQgOTc2NTFmMjhiMDA0YzViNmZiZWJkY2NmNWNiMjE1MDY0MjI5MTU1NyBsZWdhY3ktdHJ1bmsKKzE3MTM1IDRiOThkZmRlZDQ5ZjQwYjA5YTYxNDMwZmRlMzE5YzBjYTE1NDk5MjUgbGVnYWN5LXRydW5rCisxNzEzNiBjMGZlMWE4Yjg3MmMwNDA3MzJhOTUzMTU2ZWZiMTFiYWVjMTllNzBiIGxlZ2FjeS10cnVuaworMTcxMzcgNGQ0OTFhZWI5ODBmZDFkMzNhNzZjZTY1MTE0OTM0YWYzNGMyNGI4MCBsZWdhY3ktdHJ1bmsKKzE3MTM4IDRkZmJkOWIzNDEyYmFhZTM2MzYzYzdmMzFhOGY5YjhjYTEwMGVjZTggbGVnYWN5LXRydW5rCisxNzEzOSA1MTExMjNkZDg0MjQzZDM0MmRjMDZmNmY3YWNkYTFlYjg3Zjg4NjZjIGxlZ2FjeS10cnVuaworMTcxNDAgMmRjZmFkM2IyMTE1ZGViNjU3NmFmZDk0MDhjNzY4YTc5NWI5MjcxOSBsZWdhY3ktdHJ1bmsKKzE3MTQxIDMzYzdkZjBjNTQ5ZDcyZmUzZGFmM2Y1NWZhYmRlNjllMTQ4ODMyZTEgbGVnYWN5LXRydW5rCisxNzE0MiBkZGFlZjQ1NTk1ZTJkNzYyYmUzYTAyZmQ4NDc3ZDIxNzQwY2UwZGRkIGxlZ2FjeS10cnVuaworMTcxNDMgMWZhYjkyODM2NzU4ZjgwNDNiY2NhNjUzYjQxYzlmZWUzMjNjYWQyYiBsZWdhY3ktdHJ1bmsKKzE3MTQ0IGFkYTRlYzRjZmZkNTAxZGJjZGE4OGMwOWYwNDI4OWE1ZDRmYjBhY2QgbGVnYWN5LXRydW5rCisxNzE0NSA1OGYxMDBhY2MzYWMwZWZhMmE1OGZhZGUzZjNjMDE3NWY2NzJjOWMzIGxlZ2FjeS10cnVuaworMTcxNDYgNDYwZmYzY2YzMTk1YmUyZGMxZWQ2NDhjNGFhZThiMzI4ZjZlNDI4YyBsZWdhY3ktdHJ1bmsKKzE3MTQ3IDU4ODQyY2JhOGRiY2QyMzFmNTM0ZDI4ZDU2NmVhZjU5NDhiZmYwNDEgbGVnYWN5LXRydW5rCisxNzE0OSAyMmIyZWJkNzgzNzJmMjU1M2ZlZTg4MDcxOTJmMmQ5MDQ4YjllMTliIGxlZ2FjeS10cnVuaworMTcxNTAgMTRhMmI4ZDRmY2ZmMDhiYmYzZDBlNzZmMGRmZGJjYTgzNjBjMDRlZSBsZWdhY3ktdHJ1bmsKKzE3MTUxIDczZjM5ZWE0ZWZiN2E3NGY2OTEzOTk2MmUwZTMyMDU0NzE0ZGFjY2MgbGVnYWN5LXRydW5rCisxNzE1MiA4ZjJlNjEzNGNlYTAwYTUwNmE5NWNlZjk0MzdiZDg3MjQ1M2Y3ODFhIGxlZ2FjeS10cnVuaworMTcxNTMgYjU3ZTM2MGE2ZDE2MWE5YWM2ZGVmYzM2MjY2NmI1NDYyZjU5MzQxZSBsZWdhY3ktdHJ1bmsKKzE3MTU0IDZkZWUxOTg1YzY4MWMxMGFjNTAyYzJlNmM5MDk2ZGIzNTRhOGU0MTkgbGVnYWN5LXRydW5rCisxNzE1NSBjYmU0MjNiM2JhM2EwNjViYTY1ZDYzOGIzOTQwNjhmYzY5YjZlZDQ3IGxlZ2FjeS10cnVuaworMTcxNTYgZWI3YzI3ZThmZTM3ZWU3ZDRhYzYwMmMwMmM5YTE3ZTFiZjQ0MDBkNSBsZWdhY3ktdHJ1bmsKKzE3MTU3IGY1NWI2NzNkOWFjZDc0MjVjYWY5NWUwZGUxMTg5Y2YxOGUxMjcyNjUgbGVnYWN5LXRydW5rCisxNzE1OCBiZWE4ZjE0ZTdkNjFjZjgwZTUzMjNjMWRjOTlkMjczOGMzMGUxMmZhIGxlZ2FjeS10cnVuaworMTcxNTkgOTUxZWIzYWYzNDk0ODNiZDU3MTYzYTQwN2I1MDhhZDIzMjc4OWEwYyBsZWdhY3ktdHJ1bmsKKzE3MTYwIDAxMTVmNDAzZmFkZDhmYjUwZGQzMDRmYzJjNTFiZjcwMGEwYWY3OWMgbGVnYWN5LXRydW5rCisxNzE2MSAzYjg0YzVmZjg5ZGE4OTNmZDlmYmI0NzZkZmM1ZDhhNDFiMjljZmI1IGxlZ2FjeS10cnVuaworMTcxNjIgMDU3YzdjZWI5MmYwNDQ4NmYyOTdiYmY3Njg2M2U2NGYxNTJlN2Y4NCBsZWdhY3ktdHJ1bmsKKzE3MTYzIGY0OGVkOTQ0ODg0YmZmZjJhNTUxNzM0ZjQ5N2QyZGUxOTkxOTcyZDMgbGVnYWN5LXRydW5rCisxNzE2NCA4MDFhMzA0ZjI0OGZiZmY3NjhjZDRlYzJlMDljMGMyMjM2NTNlZjg1IGxlZ2FjeS10cnVuaworMTcxNjUgYWI2MWMzMzVhMDRkY2QxYmY0OTU1YjZkYmMwYTUxNzI4ZjM0MTUwOSBsZWdhY3ktdHJ1bmsKKzE3MTY2IGQ0MWM0MTM3MWRjMTA4OTA0MGRiNzQ3ZTE1ZDMyODU5NGY3OTlkMTQgbGVnYWN5LXRydW5rCisxNzE2NyA2OTQ5YjUwMzY0ZGQwOGM4MjE4Y2U3YjczNGM2OTYxMDRkOTIzMjc3IGxlZ2FjeS10cnVuaworMTcxNjggN2I1M2VjMjcwNGUwMGEzYTVlNWQ3NDhkM2UwZjgyYTI4ZjcwMjVhZCBsZWdhY3ktdHJ1bmsKKzE3MTY5IDQzMmQzMDhjNDVlOGQ4YjQxZmMxYWM3MjQ3MDI4N2FlZGZkZWUyZWUgbGVnYWN5LXRydW5rCisxNzE3MCA1Mzk3ZmRmODhlYzI1YTFiNTgzN2RlYzlmYzg1MjgzOWFiZTQ0MWUwIGxlZ2FjeS10cnVuaworMTcxNzEgMmRlMWZiNTMwMmVkODdlZDY4ZjJiZDk3ZDBmNTMxZThlYmY5MzlkNSBsZWdhY3ktdHJ1bmsKKzE3MTcyIDZkMGY2NGY3ZGVkZDE4MzU0ZTU4YzkyYjNmYWRlNmE3NDc2OWU1YTkgbGVnYWN5LXRydW5rCisxNzE3MyAyMWJmOWZhOTIyNTU4NTNlZTQyY2FjY2MyNDRlNGU0ZWM1Y2E4Mjk4IGxlZ2FjeS10cnVuaworMTcxNzQgNzM1MmJiMTYzMmJjMDFhNDkxNjEyMjAzY2ZhNWM2MjY5NmNjYmNhYSBsZWdhY3ktdHJ1bmsKKzE3MTc1IGVmOTc4NTIwMDg1ZjEwZTU5NzgyNmIyNTlhYTkwNmIxYjdiOWU2NDYgbGVnYWN5LXRydW5rCisxNzE3NiA5M2RhYmZjM2E4M2ZjOGM1MmJhZDg4MmJjYjUzNzY1M2NiOGNhZTYzIGxlZ2FjeS10cnVuaworMTcxNzcgZGViNzI3NDM1ZjM5MDY0ZTM1ZjY4MjVkNzk0OGQyMGVjODkwMmJlYSBsZWdhY3ktdHJ1bmsKKzE3MTc4IDBmNjgwOWViYTUwYTg4Yzc3M2QxZDcxMThiYzM2OTdhZmI1N2E2MmYgbGVnYWN5LXRydW5rCisxNzE3OSA2MzBjOGFiZmE4ZDdjMDhlNTQ1NjdlNzk0OTE1OTIwOWZjMzgzMzhjIGxlZ2FjeS10cnVuaworMTcxODAgM2IyZGZiYzM0Njg5ZGVkMGIwZTcyNjI2ODIyNjdmYTY3MmE5MmNmMyBsZWdhY3ktdHJ1bmsKKzE3MTgxIGEzOGUxMmU0YWZiNzBjNTlkYmU1ZTY0Nzg0NDFhNGFmNzU1MDAxNTEgbGVnYWN5LXRydW5rCisxNzE4MiAzZWRhMzAxMGJjMGEwZGI4NWQxOTgxODI4Yzk2NmJmYTA2OGYxMzQ5IGxlZ2FjeS10cnVuaworMTcxODMgZWE5ZTYyNWIwMWEyYTA1NmQxZTUyMzU5NThlNmZiYzU3ZmYwOWE1OSBjbnJpLTE2LXN0YXJ0CisxNzE4NCAzNTc2M2JlNzVkZGI3Y2E2ZjcyMjhkNTdmODJjY2E0NjRmMzNjZWQ0IGxlZ2FjeS10cnVuaworMTcxODUgZDFkNWUyZGMyOWRiNTBkNzQ4ZDkyZGEwYzhlNDRkZWJlZjlmZjU1MyBsZWdhY3ktdHJ1bmsKKzE3MTg2IDVjNTFjMDk2ZGUzYmZlNmNjMzZiYTcxOGRiZjBlMzRmNTRkMGM4OWIgbGVnYWN5LXRydW5rCisxNzE4NyBhNjY1YmRjNDkyMmY1ZGZiMGRhZGRiYTkyNmRjN2ZjMjNkOGZjOWFiIGxlZ2FjeS10cnVuaworMTcxODggNWRhNDA2ZWJlZjU1MjA0ZjdkYTFiN2E5YmFmYTk4MGNjMDM0ZGEzNyBsZWdhY3ktdHJ1bmsKKzE3MTg5IDY2NWIxOWU3Nzc2YjUzYjIwMWU1NDI5NmVmYjBhMGQ5NGE0Mjc1OGUgbGVnYWN5LXRydW5rCisxNzE5MCBjN2VkNDEyYTA3NWIwMTlkZDUwZDdjZmE2MDY1YjgzNjU2Y2IzNGVmIGxlZ2FjeS10cnVuaworMTcxOTEgMzZkMGI1YjA5NGU0MjFmYjdlNzk2NmEwYjU0YTUzNjM3NjA4MDExYSBjbnJpLTE2LXN0YXJ0CisxNzE5MiA3YTFmZWNjMDhkNzBhOGNhMDBlMjIwNGU1YjIyYzU2ZWJlYjNkMjIyIGxlZ2FjeS10cnVuaworMTcxOTMgNjQ4YTEyYTc4MGQ5MDgzNDRhYmY3ZGY5NGZlMTZjYmViOWI4YjYwMiBsZWdhY3ktdHJ1bmsKKzE3MTk0IDAzNGJmMTA4MTMwNDc1MDIzOGE0NjU2Njk2YzhhN2I5NWZjMGE2MWMgbGVnYWN5LXRydW5rCisxNzE5NSBjYWM5MzkwNzZjN2RiZWU3MjIwMWJkZTMwYzYwYTMzMDg3MjQ2NDI0IGxlZ2FjeS10cnVuaworMTcxOTYgY2QwNDdhODU4YWNlMTliYmI1MWQ3NjBjOGU5OGJlYTg0ODA5ZDE2ZSBsZWdhY3ktdHJ1bmsKKzE3MTk3IDA5ZGNmZjUxOTMyYzc3ZGRlNTJiYmY2MmE2YzVkMTZmMjk0OWFmNjggbGVnYWN5LXRydW5rCisxNzE5OCA2NGMyNWZkMjlkNmY2NzE3YmRjYWZmNzEwYmM4YzY3NjgwM2I3NDdhIGxlZ2FjeS10cnVuaworMTcxOTkgZWQxNDdhNTM3MDFiODAwNjUyNDc4MTRhNTVhYWM5NWRkNjliMDA3NiBsZWdhY3ktdHJ1bmsKKzE3MjAwIDhkZjE2NmNhMDliMjVhZTkyNWI3MjM2MzE1YTM0Njk5YjkwOGY1MDQgbGVnYWN5LXRydW5rCisxNzIwMSA2ZjZmOTY1YzVlMmRiNjRiOTQ3ZDRmY2M3MzgxZTgzYWEwY2IwNzU2IGxlZ2FjeS10cnVuaworMTcyMDIgZmQ0Nzk5NjBlNWUwYzJjMDc3OGVjNDIwODEyNzZiNDE3YTAyYjU0NiBsZWdhY3ktdHJ1bmsKKzE3MjAzIGRkNDc2NmFhMmZkMmY3N2I3NmE4Mjg3NzgyOTg1YTQ4N2E2YWE5NTkgbGVnYWN5LXRydW5rCisxNzIwNCBjYTczMTZhMDA0NjRlYTQ4ZjE4ZjBlYTg1MTlkZGE5MjVkY2ZmZGVmIGxlZ2FjeS10cnVuaworMTcyMDUgYjA2OWQ3ZDljZThhMDBkZmFmNzEyNDBiOTEyZTNhY2QyM2ViY2ZjZiBsZWdhY3ktdHJ1bmsKKzE3MjA2IGNkMGM0ZGQ0OTA0Yzk2MzQxMmJjMmM2NTM4NTczZWU4NWY0M2NlOGIgY25yaS0xNi1zdGFydAorMTcyMDcgZTk5YjBkYjE2ZGQ3ZDNjOTNjYTg4NTg1ZTI2YzBlNjkwY2E4MjgyNSBsZWdhY3ktdHJ1bmsKKzE3MjA4IDc5NThhODhlZGRhMTc3Mzg5NTI3NTkyYThjMGJiODk4NmZkNmQ2MzkgbGVnYWN5LXRydW5rCisxNzIwOSAyZDZjZjY4YWE2NGE1NWQyZmEyYjJmN2NkM2RkNTMyZjA4NGQ1MDMzIGxlZ2FjeS10cnVuaworMTcyMTAgMzg4YzcyMWMyMGNmYjk1MzQxMGU4MDFlZWMxNmU1ZDUzMzE2ZGE1NCBjbnJpLTE2LXN0YXJ0CisxNzIxMSBjZmQwNzQzMjFhYWQ5ZDFhNTJjZGVhZTdlMDBlZGZkOTdmOGU4NTExIGxlZ2FjeS10cnVuaworMTcyMTIgN2U0N2IzNzBlYjY3NTUxOWI4NzUyODY0NzAyNjYxNjA2NGNlYmQ4NiBjbnJpLTE2LXN0YXJ0CisxNzIxMyA2ZmI2MWI4MzQzNWRhMWI2Zjg3ZDZiYjBhOGZjMzI1NTYwMDA4MTM5IGxlZ2FjeS10cnVuaworMTcyMTQgZDM5NWNhYzc4NmIyMjRiMTg2MWUzMjhjZGRhZjMwNTJlMGVhY2NkYSBjbnJpLTE2LXN0YXJ0CisxNzIxNSAwNTA3ZTU2OWQ3NGFlNjUxNmVhZDY3M2RkYmNkMjU0ZjZkYzM5M2EyIGNucmktMTYtc3RhcnQKKzE3MjE2IDhhOTMzZWM0N2VmNzMzOWNkYjE1ZTEyYWM5MmFiODE2NTE2M2IzYmQgY25yaS0xNi1zdGFydAorMTcyMTcgMzlhYjI4NTcyMzA3ZjgxODhhZTU1MmMyYWNkNmQ4OGNlOWE4ZmZlNSBsZWdhY3ktdHJ1bmsKKzE3MjE4IDU3OWExZTczMWZjODQyNGVlODUxZTJkYTBlNWQwNmE3OThhOGE3ZGYgY25yaS0xNi1zdGFydAorMTcyMTkgMWZkY2EwYWY3MWQzNDNlODhlNmJmNTBmNzk1NDQyMTMxNGM5YmJiZSBsZWdhY3ktdHJ1bmsKKzE3MjIwIGFmZDZmYWU0NjdlNTkyNTk1MWJlOTk5OTM5NWVjYTdhM2ZkNGJiMGYgbGVnYWN5LXRydW5rCisxNzIyMSBlZjI3MTRiYjA3MzBhNzUyNTZlODMyYjcwNzcyYTQ3M2I3YTNhYmM3IGxlZ2FjeS10cnVuaworMTcyMjIgOWYwM2QyZmFmMTU2YWRlOWRjMjk2YjEwNWYwNDlmMjVkMjc2ODg1MyBsZWdhY3ktdHJ1bmsKKzE3MjIzIDFjNDM4ZmQ1YzBlOTM0MDA2ZWI0MmI5YzU2M2FhNTEwZTdhMjMzMDAgY25yaS0xNi1zdGFydAorMTcyMjQgNDRmZjdlNDE2M2FhMWUwY2IyMjUwMmJjMDY4NGI4YzhlYWUxOTk0OCByMTYxLWJyYW5jaAorMTcyMjUgNTU4ZWE5MGY1YjFjYTI4YzNmNjA0MmJjNDZkZTEyYjljNTU4MTdjZiBjbnJpLTE2LXN0YXJ0CisxNzIyNiA5YjFkYWYzZGVlMTRkNGU0MWNkMjQ3Y2M3Mzc2ODkxNWE1Mzg1MTEwIGxlZ2FjeS10cnVuaworMTcyMjcgZjFiZDMwNDQ3ZTMwYjU5YzA4ZjAyMWM1OWYxN2M2OGQ4OGM2ODM5ZCBjbnJpLTE2LXN0YXJ0CisxNzIyOCAxZmQ2NGIzYWY3NjAyMjhiYjVlYjUxMzRhNjI0YWUwODFkNjNjNDM5IGxlZ2FjeS10cnVuaworMTcyMjkgNjNkODI0Njc5YjI4NTMzYmZhYTEwZTM0Y2Y0OTdhMDU2ZDBjNDExZCBsZWdhY3ktdHJ1bmsKKzE3MjMwIDdlNGY2MDJkYzY4NTc2YjJlODg2YjBmNTIyMTkyNmQwOWUxMTczM2QgbGVnYWN5LXRydW5rCisxNzIzMSAyZWViNThiNDNlYjE4ODNiZGY0NDM3MmZmNGM4MTFjN2I4MzFiYmY2IGxlZ2FjeS10cnVuaworMTcyMzIgMDVmMTIxMjhjMzhkYmU0MjRjMjk3YjRmY2FhM2RmODc2NzBiZTczZiBjbnJpLTE2LXN0YXJ0CisxNzIzMyA1MzJjOWNlNmM4N2MxN2Q5YmI1MWIwN2FhMGZjYzRjZTM4MDkwYmNiIGxlZ2FjeS10cnVuaworMTcyMzQgYTEwYWZiM2FkMjc1MGMwZTI2MjQxMzRiMWY1OWJjOTAwOTBiNzI0MyBsZWdhY3ktdHJ1bmsKKzE3MjM1IDU0MmQxMGJkMDRmNDc3YTRiODk5ODdmYjEyNjc1MGZlOWU0ZDIyYTAgY25yaS0xNi1zdGFydAorMTcyMzYgY2Q2ZjcwNWM1NGI4YzQ1M2I5Y2QzNjljOGYxNjcwMWFiMTQwNGQwOSBjbnJpLTE2LXN0YXJ0CisxNzIzNyBmNjI5YWYxZDRiZGFhODJjYjVmZTYwOTkyYjM1ODhlZTg4YjdlYmQzIGNucmktMTYtc3RhcnQKKzE3MjM4IDhkNDcxMDE0MTliODRjYWI5M2RjNWFjZjJkMjAxMTEzMmIxNzJkMWUgbGVnYWN5LXRydW5rCisxNzIzOSBjZDJiZTE1M2YyMjhmN2ZjZTc2OTAzZDFjOGM5YTZmNmYzNmMwMTEyIGxlZ2FjeS10cnVuaworMTcyNDAgMzY3Y2E0OTE5MGJjNTI2NWU2ZDcxZWZmYWJkYzc5NTAyNGQ2ZTE3OSBsZWdhY3ktdHJ1bmsKKzE3MjQxIDMyMDE1ODAyNmE0YmM0ZWU5MTY1MGVkOTA3YmQ0MDgzMmUxNGY3M2IgY25yaS0xNi1zdGFydAorMTcyNDIgODg4NTNjMTAzMDg3OTdjODVjYWM1ODg3NTljZjA5MTA3MWU1YTExNCBsZWdhY3ktdHJ1bmsKKzE3MjQzIDZhNWZiZThjNWFhNmE4ODkzOGY4MTIyZGIyMjA3ODRjZGFhOTdkYzMgbGVnYWN5LXRydW5rCisxNzI0NCAzZTM3Njk4Y2Q3MzdmNGY3Y2FjYzQ0OTM5ZWEwMTcyODc0Zjg3YjcwIGxlZ2FjeS10cnVuaworMTcyNDUgOGI0MDY4NTZiYzMxYzEyYWY0Yjc4MGM1NTU2NzI3NzI3NTdhODliMiBsZWdhY3ktdHJ1bmsKKzE3MjQ2IDA1N2JjMTk3MDM0NTI2YTVkZjEwY2U1ZjFhNWJhNDEzM2UwOWYzZDQgbGVnYWN5LXRydW5rCisxNzI0NyBkNjg5YjhjZTlkMGE5MjhiYTY1MjM5MjY4NTIxYjBkZDNlNDAxZGYxIGNucmktMTYtc3RhcnQKKzE3MjQ4IDg3MjE5MTVhNmFjYjgzMDdhNWVjMTIwYTg3MGVlMjI4YjNhYmNiZTUgY25yaS0xNi1zdGFydAorMTcyNDkgYjE3NTk4ZmYyY2RkNzQwMWQ4Zjg2NjUxZjVmZTAwMGZiYmFhNjgwZCBjbnJpLTE2LXN0YXJ0CisxNzI1MCBkOGQxODEyZGZjZTA2NDZiMmZkZTU1OWJkMjYyYTkxYzgxOTI1YTc5IGNucmktMTYtc3RhcnQKKzE3MjUxIGQ4NDY2ODU1MDI2ZjVlOWJkYWJhYjdhMmJhM2Q2OGNkMDMyNmJjMDcgY25yaS0xNi1zdGFydAorMTcyNTIgNjU2M2Q3MWU3ZDk1YWQwYmY4ZGFhMTZjNDQ3MThmMDdkMTM0ODI4MSBjbnJpLTE2LXN0YXJ0CisxNzI1MiA3ODZhNTdiN2RjNmNjZjU2ZTYzMGViOTFhMjYyMDE2YjlhMTQ5ODJmIGNucmktMTYtc3RhcnQKKzE3MjU0IGJlZWZhODVhMzkyNGMzZTIyYTU4MzdiZDNlYjYxODZkNzZlYzg0OWMgbGVnYWN5LXRydW5rCisxNzI1NSBmYzEwYjIyN2MxN2RkYzJmOTE4OTUyYWJjODczNmU2MDQyZGIwMmE1IGxlZ2FjeS10cnVuaworMTcyNTYgOGQwMzVjMmZjMjM0MDg1ODM1MDljODI1ZmU3NTA3ZDg5Mjk3M2I5ZiBsZWdhY3ktdHJ1bmsKKzE3MjU3IGQxYzM5NWM0NzEwMmExNTZiNDIyYjJiZjVkMzA5OTU1OTI0NzliMDEgbGVnYWN5LXRydW5rCisxNzI1OCBhNzZhYjdjOGZjMjkyMWJiYzFlYzAyNTJhY2MwMjkwMDg5M2U5NzAwIGxlZ2FjeS10cnVuaworMTcyNTkgNDMwNjEwN2IxMzk1NTE4ZDlkMzI5N2UxODMzYWJlYTBhZWZkMzcxNyBsZWdhY3ktdHJ1bmsKKzE3MjYwIGE3MDdhNWYxNzEzOTMyNGE4NGRjMmU2ZTQ1MTAzMGVjZGY2Y2IwMmUgbGVnYWN5LXRydW5rCisxNzI2MSBiMTk0NGNlNTQ5MmIyZjJiYzMyZjBmZGE3YTlhMDE0NzcyODkxNzFiIGxlZ2FjeS10cnVuaworMTcyNjIgODYyNjZmNzYzZDQ0MTk3MTdlZDY0MGYyMDdkNjAzODIyODkzZTNlZiBsZWdhY3ktdHJ1bmsKKzE3MjYzIDkwZjA5NDZmNjRlNzgxZTczMmQ2ZjU2N2NlY2JkNDZlNjM1YTkwMjkgbGVnYWN5LXRydW5rCisxNzI2NCA2MDcyNjRlN2JmNTE0MzQwYjYyMTc5MTEzNTBiZjAwNzZjYWRkOGU2IGxlZ2FjeS10cnVuaworMTcyNjUgNmJlNDQ2ZmZhMmQ5YWJjOTEzYTcyZDNjYzZiOTI4ZTBkZGVmOTU2MCBsZWdhY3ktdHJ1bmsKKzE3MjY2IGQ0MmZjM2M3MTczZTVjNzNjN2I4OWZiMmVlYTYwOTFkNGI3NjBmNmQgbGVnYWN5LXRydW5rCisxNzI2NyAxMGJlOTY4MmIwMDNmMjNjMjI3NmQxMjcxZDI1YjViMzFjMTA2ZTVkIGxlZ2FjeS10cnVuaworMTcyNjggMGRjYWU4NDUwNmJhYTljYjczNTJjMjc3NjRiNzE5Yjc2OWJiMTI4ZCBsZWdhY3ktdHJ1bmsKKzE3MjY5IGJhMjJhNWVkNDY0MTBiY2Q5MWFhMGY1NjZjY2EwN2VmYzZiZjhiNGIgbGVnYWN5LXRydW5rCisxNzI3MCBlMzZhZmY1MmZiNGUwZmMzNjA4YzBkNTkyMjI2Y2RkY2M4OGZiYTMyIGxlZ2FjeS10cnVuaworMTcyNzEgYWNkNDExM2UzMDFhM2M3YmEzZDJhN2EwMmRhNDIxMjQ2YTNiMzJhMCBsZWdhY3ktdHJ1bmsKKzE3MjcyIDI0YmUwNDlkMjAzNzkzNDJhNWUwNjc3YzA5NGIzYjRjODM0YTU1MzUgY25yaS0xNi1zdGFydAorMTcyNzMgZjk0NDhmNDRlNzAxY2FkNTZjN2NmNTgxNTk2ZjE1MDM1NTBjOGY1OSBsZWdhY3ktdHJ1bmsKKzE3Mjc0IDY0NjA0MTFmNDczZWZmY2ZkODYwNjVjNmQwN2M3YTkwNjMwZmIwMDggbGVnYWN5LXRydW5rCisxNzI3NSBjNjE2Yjc5MTA3NDU4ZGZlYjRmYWQ1ZThmMTgxMmE3YzI1MGMwMTAzIGNucmktMTYtc3RhcnQKKzE3Mjc2IGMzODRmYWFlNTA1MmM1ZjM5ZTY4M2JhYmEyMDExZGMyOGRlODY3ZDggY25yaS0xNi1zdGFydAorMTcyNzcgZjhlNjY4NDQ3ZTJhMWQyOTBkNTcxYTQ5OWFiYzE2ZGE4NmQ0YzQzMSBsZWdhY3ktdHJ1bmsKKzE3Mjc4IDQ0OGJkZjQ0MTc5MjNmYWI3YWFjZDhmNTU2Mjc4ODYxODMzNGVkODEgbGVnYWN5LXRydW5rCisxNzI3OSBiYjkwODMzMTJkODE0YzRlYjRkYWNmZjE3ZTFjM2RlYzkwMTA3OWE5IGxlZ2FjeS10cnVuaworMTcyODAgY2NiMzdlMmIyNDYwM2I3YzIyMmQ1OGQwNjllMWY3OWFlNjhmYWRhOCBsZWdhY3ktdHJ1bmsKKzE3MjgxIDlmMWYwYTZiYzE4ZTc1N2Y1Mjc0Y2M3MmRlMzRhZmFjNDQ5ODYzYjggbGVnYWN5LXRydW5rCisxNzI4MiA4Mzc2YWQ2NjQ1ZTNkZGM1OTI4N2I1ZWYxZGFhOTU1NGE4MzMzMDk1IGxlZ2FjeS10cnVuaworMTcyODIgMzVjNGZjMTQxNGE1OTg4ODYxNGI5YmU3ODRhMjVmMjMzYmE2Nzk4NCBsZWdhY3ktdHJ1bmsKKzE3Mjg0IDc3ZThlNTUwYWUxM2Y3NWUxYzY0MzcwMjMwNDc1OWU5NDkxMmM5NDcgdW5pdmVyc2FsLTMzCisxNzI4NSA0ZmUwMTQ4MDg4ODVhNDZmNDdiODEzYTM1MjczODc5OTRhYjU3ZTQxIGxlZ2FjeS10cnVuaworMTcyODYgNzg4NmIzYjZjNDBmN2JkNWVlY2FlNWMzNmNmZmYxOGUyNjc5N2NmNCBsZWdhY3ktdHJ1bmsKKzE3Mjg3IDM0Mzc5MTI3ZWUzYjRkOTFmZjA1ZTMwZTU4M2YyNmExNjQ2ODM1N2YgbGVnYWN5LXRydW5rCisxNzI4OCA5ZmEzYzU3MWRhZmYyMDJlMzc3ZDIzMGJkZTNlODIwOTY3ZDE0MTQyIGxlZ2FjeS10cnVuaworMTcyODkgYzA1MDk5ODk0MDVlYzBlZWJhNzZjYjdmMmYxNTlhOTgxYzI3NzA3OCBsZWdhY3ktdHJ1bmsKKzE3MjkwIGUzNDhlZDk0NmQxZjRjMWIwYmMxOGI4NWZmYjlkYmFmYTk5Nzk2NjIgbGVnYWN5LXRydW5rCisxNzI5MSBhYzM5MTc4ZmE4NWZjOWU0YzI0ZTFkMTY5MTYxOWYyZjg2M2JkOTRlIGxlZ2FjeS10cnVuaworMTcyOTIgM2E5MzJjYzY0MzIzM2ZkY2Q4ZGJhYTkyZWY2MGRjMjg4MzQ2YzQyYSBsZWdhY3ktdHJ1bmsKKzE3MjkzIDE5NDQzNTg1Y2NjYzI1NWU4N2M1N2RhN2VhMThkNjRmMTI4ZDg1YzcgbGVnYWN5LXRydW5rCisxNzI5NCBmN2ZkMDk1YzMxYTZhYWM5OWM5ZTI4M2FlNzM1ZWJiMmZkZjdmOGY2IGxlZ2FjeS10cnVuaworMTcyOTUgYzczODA0MWY5NzVkYmU4M2VhNjRiYzFlMWRmNDU4YTIxZGQ0YjViMyBsZWdhY3ktdHJ1bmsKKzE3Mjk2IGY0YzkyYTI0MjExYmRkZDAzMGNlNTQzNWQ3MGIxNzFmNzc2MDg3NDkgbGVnYWN5LXRydW5rCisxNzI5NyBmMDUxYWM4MzQwZjdiOGExZmMwN2YyM2JkYTIyMDlmOTE0NDMxNTEzIGxlZ2FjeS10cnVuaworMTcyOTggOTNiMWRhYjA5NzY3NmQ5Mjk0NzAzMmFjM2ZjMDVjZjJlOTcxZWQwOSBsZWdhY3ktdHJ1bmsKKzE3Mjk5IDUyMGNlN2VjZTI1Mzk4NWFmMDg5ZTYxN2MxNDMwZTc2OGU1NzZkZTMgbGVnYWN5LXRydW5rCisxNzMwMCA1ZDEyZDk2NjBjMmVhOGQzODc3ZTQ4MmQyNjEyNDEyY2RmZDc0OTA1IGxlZ2FjeS10cnVuaworMTczMDEgYzllZTZmNzQ2NzBkYWY1NWQ1ZWIyYTZhMjQ3ZjcxZTQ4YzZlNzI3YyBsZWdhY3ktdHJ1bmsKKzE3MzAyIDNlMzg3NTA3YTk5MTliMDU1MTMyOGNmMmNiNzMyYmUxMDc3MWIxYzQgbGVnYWN5LXRydW5rCisxNzMwMyBmYzViNDA2MTYyNjIzNzNlZjc0NmJkYWQ3ZWYzMWFkZGJjYzEzODBjIGxlZ2FjeS10cnVuaworMTczMDQgZTVjZGNlMmEyYjE2NDlmNmQ2MmU3Mjk0NTk3ZTc3ZGY1YmMyYTkyYiBsZWdhY3ktdHJ1bmsKKzE3MzA1IDBkMDYxM2I5NTc1OGU3YmNmOWQwOTNiNTJlOGI0ZmQ5MDI3MjQzMjYgbGVnYWN5LXRydW5rCisxNzMwNiAwZDEwMjVhZWZlYmZmMjQ4OGM5MzVkNTMzMjk3OTM5MTgxZWEwMDcyIGxlZ2FjeS10cnVuaworMTczMDcgMDE1YTM0YmZiY2NiYTA5OTJiZGE3NDUxOTc4ZjE0YjNiN2Q5NjljMCBsZWdhY3ktdHJ1bmsKKzE3MzA4IDY5MTlkOGUxNGEzMDM2OTAwNjI4OTNlYmY3ZjM4YWVmMjExMGY4OTAgbGVnYWN5LXRydW5rCisxNzMwOSAyMGFjZWI4ZWRmYTVlNmNhNGZhZGY5YzUyOTg3YzQyNDZjMGVlNTBkIGxlZ2FjeS10cnVuaworMTczMTAgMGI2NmQwMzAwZWViZTljMjA3YjlmYzhjYzEwMzE1NzY1YTI2NDA2OCBsZWdhY3ktdHJ1bmsKKzE3MzExIDk1ZWViMDYxZmM2ZDRkNDU1MWU3ODM3OWFlODJkM2UwMTBjMDE0ZjUgbGVnYWN5LXRydW5rCisxNzMxMiBlZGEyNmYxMjMyMjc0YmY2YmYxOGIwNGE5MWZjN2FlMTg1YjZjMzY0IGxlZ2FjeS10cnVuaworMTczMTMgNWVkZDQ5ZDM0MGVhOWFhMGE0ZGJiNDliNTMwZWM0MDZjOWJjNjVkOCBsZWdhY3ktdHJ1bmsKKzE3MzE0IGRiMDI2MDkyY2I3ZTQ5ZDhlNzY1ZmY1YzUzODJlNzg4YTA4ZDI2NDkgbGVnYWN5LXRydW5rCisxNzMxNSBhYTQ0NTM3ZDgwYjUzZmVkZDU2YzJlNDc5NTZjMGQ0ZTE1ZThiNGFlIGxlZ2FjeS10cnVuaworMTczMTYgZWMxNjVkMDNkNDZjYTg2MTc2YzA0NzhmNWZhNDExNWNkNjRhM2FiZCBsZWdhY3ktdHJ1bmsKKzE3MzE3IDE3Y2VjOTZmNzViYzFkNTYwOWQyMjMxNWY4N2EwMThkZTQxMzI4M2UgbGVnYWN5LXRydW5rCisxNzMxOCBlMTNkZjRlOTA3NmY3NThiYzdkOTA0M2Q4ZTg3NjMxMjliZDM5ODQ3IGxlZ2FjeS10cnVuaworMTczMTkgMDcyMWRmNzg5MjcwZTc5NDM4ZGE4YzJlYzBmOWMyMGRmYzMyZjA5NSBsZWdhY3ktdHJ1bmsKKzE3MzIwIDE0MmNiNGU3MzEwY2RlYTRjNWUwODFkMTQzZTY1MzY4MjhjYzEyMzAgbGVnYWN5LXRydW5rCisxNzMyMSAwZWY2ZWE1ODU5MGI2MGE1YTM2Yzg3MDk4ZGM3N2FkOGZhYzFkNTNiIGxlZ2FjeS10cnVuaworMTczMjIgZjkwYjgyMzIwNWZmMWUxYzY4YmIyZTdkZWMyOThmMjA2MWI2NGFkZiBsZWdhY3ktdHJ1bmsKKzE3MzIzIDM5ZmY2YjNjNDNhZmMzZWIzYWI0ZDg2ZjY2NzFhYTQ3OWU2Yjg2ZTcgbGVnYWN5LXRydW5rCisxNzMyNCBjM2M0OTg1OWU4MGIwOGZkMTEwZGU0YmEyMjU3YTY1MjY0OWM5OGE1IGxlZ2FjeS10cnVuaworMTczMjUgZjZiODZlMmRjNTViYmZmMjZhOGNhMzQ3NTEyYTVkNGZhMzMwNzRlZiBsZWdhY3ktdHJ1bmsKKzE3MzI2IDk1MzdlNzg5M2YzYzNkNDUzYWM1MmY2NDZlZDc5MGFjNjg0M2Y2NTkgbGVnYWN5LXRydW5rCisxNzMyNyBiN2JiNGEzNWMxMjE4OTc3NzlhOGUxZDk5NGE3OGJmMDVlODM4ZjI0IGxlZ2FjeS10cnVuaworMTczMjggZTRjYThjMjEzNzdhM2NiNzNiOTNjMjVlMzU4MDlkMmY1YTMzMmUxMyBsZWdhY3ktdHJ1bmsKKzE3MzI5IDcxNDU2NzgyZDhmZDVhMWYzMGI5NWZkMDEwM2UyZGY2N2IxMTUyODQgbGVnYWN5LXRydW5rCisxNzMzMCA5OTk4YjcwODdlZTYwNDlhYzBmZWMxZmY3ZTBmYjJjZWNjYjM2OThmIGxlZ2FjeS10cnVuaworMTczMzEgY2M2ODNhMGFjNTY4ZWI4NDQ3MDUwODBjYjFmM2EzYmZlMjgxNmU0MyBsZWdhY3ktdHJ1bmsKKzE3MzMyIDg5ZTNiNmE1NGZlOTNjNmRjNTM4MjhjYzk5YjllODJjNGZkZDBkNDYgbGVnYWN5LXRydW5rCisxNzMzMyAwZDE1YzgwNTM3MjZiMjdmNGYyYjAyZmQxOTRhMTMxZjRiYjdlYjczIGxlZ2FjeS10cnVuaworMTczMzQgNTAwNDM0OWVkZTRkZjhlY2E0MTFlZWZiYzQ4ZDgyZGY1MjVkNDZmMCBsZWdhY3ktdHJ1bmsKKzE3MzM1IDhhNjNjNjA0ZWU1OThmYjY0MGYxZWU1MmY5NWUyMzU3MGE3ZDlkMzQgbGVnYWN5LXRydW5rCisxNzMzNiBjMzJmNTQ5MGY1ZTNhYzJlODI5MjgxYjhlNGEzZDNkNzFkN2Y3NWRlIGxlZ2FjeS10cnVuaworMTczMzcgMzRmOWEwMTdjZTYzMmNjZGM4YzE3MjhkMTI1Njg0Njc0NGU0ZDkxYSBsZWdhY3ktdHJ1bmsKKzE3MzM4IGFjMDI0NjU4NmQ1Mjc4MmI1Y2VmZWIxNzk2NzFlZDE3MTQ4MWE2MjggbGVnYWN5LXRydW5rCisxNzMzOSA1MTM2OWE1N2IwYWFiNDgwYTA3OWM2ZThiZDEzZTEzYTkyNzVhNzEyIGxlZ2FjeS10cnVuaworMTczNDAgOGE3MTVkMmRmZWI5ZjlhNjFkN2FjMjYwYWM2M2Y1MzFjNDU1ZWU3ZCBsZWdhY3ktdHJ1bmsKKzE3MzQxIGFiYTdlYjlkOGQ2MTQ1NGY4OWE1ZmQ4N2U5OWRiMzM2MWIzOTEwZjAgbGVnYWN5LXRydW5rCisxNzM0MiA1MmE2MDBiMzhmN2VlNTk4MGMwZWJlNjIwZjk4OWMxZmYzMzIxYzViIGxlZ2FjeS10cnVuaworMTczNDMgZjc4ZjI4N2IzYWRkYmM4ODdjMTk0NGI1Yjg3M2U2OTQxZmUwMTkyZiBsZWdhY3ktdHJ1bmsKKzE3MzQ0IDMzNGQ5YWViYWFmMTBhMDJlZDEzYTI5YjcwZDIxMTY1YTQzOWZhMDkgbGVnYWN5LXRydW5rCisxNzM0NSA3NzI4YjBlYTkzNDQxYzUzMDBhY2FmZWUzMDY4YzY4YzIyMDRlYjAxIGxlZ2FjeS10cnVuaworMTczNDYgMmJhMDhkOTkxYzQzMzBhZjRkN2VlNDY4MTBjMjkxNzZlMTkyODkzOSBsZWdhY3ktdHJ1bmsKKzE3MzQ3IGIxOTg4NmJlYTM3ODdmYWZjMGQyMWI4ZDQ1YWEyYTcwYWVhNGI2OGYgbGVnYWN5LXRydW5rCisxNzM0OCBlNmE5ZDQxMjY1MmQyOGE5Y2U1MWM1NGMyOTliNWNjNzRkYmYwYjY1IGxlZ2FjeS10cnVuaworMTczNDkgYWVkMzdmNWFhNDc1ZTc0NzNmOWU4ZDZhZGNkMjlmYTRjMDhjMWJkOCBsZWdhY3ktdHJ1bmsKKzE3MzUwIGQzMjdmYzQ3ZjhmZGRmYWQ5N2RkOTBkZGQwYzFiOGIzYTg2MWVlODEgbGVnYWN5LXRydW5rCisxNzM1MSAzNzFlODhhZjY0NWYxZTg1NzQ5NWZkYTVlZTNhMDMwNTQ2M2QwNWZmIGxlZ2FjeS10cnVuaworMTczNTIgN2YyM2VjNWNkOWNhODQ1OGM5NmE4ZjFlZmJkM2RjZDZmMGQzODBmYSBsZWdhY3ktdHJ1bmsKKzE3MzUzIDIxZDg0NzY1M2Y1NGI5NTk5MDMyNDAzMTM5YmEzNGEwOTMzN2Q1YWEgbGVnYWN5LXRydW5rCisxNzM1NCA1OGJhOTBlNGU5ODVmMWJhYTljZWZhYWVkMWRjNDdlOWE4ZDMzMjRmIGxlZ2FjeS10cnVuaworMTczNTUgZWVmMjU3MzBlNjRkYWFlNzgyMTI0MjlkZjg4MzdiMzkzZWQ4MTQ4MSBsZWdhY3ktdHJ1bmsKKzE3MzU2IDE1YWNkNWM1OTFmZDRjMDUxOGRmMjRlYjliMzEwOWUwZjhkZWVlMTcgbGVnYWN5LXRydW5rCisxNzM1NyBkZWIzZTk2ODVhMWVkZGMyZTFiYTllY2NlNWNmMDFmNzhmZDQ0MmM3IGxlZ2FjeS10cnVuaworMTczNTggMzgyM2ZjNzIyYjUwYzUzMDlkMTc0ZDU1YzViOWJhMWQ0OWZkNTQ5MiBsZWdhY3ktdHJ1bmsKKzE3MzU5IDI4YWMxNDhkMDEyOWE3ODAyY2M3NThmZmMxOGQ4NmEzZmFlZTQyMWYgbGVnYWN5LXRydW5rCisxNzM2MCBjODcyN2FjYTE0MDRjODlmMzY2YmRlZjBkZjM2YWU0OGJmMzBkOWE3IGxlZ2FjeS10cnVuaworMTczNjEgYzJmN2FkMDcwYjllZmYzMDEzZTg4ZmFlOWUzNmU2ZDc1YjIwMmQwZSBsZWdhY3ktdHJ1bmsKKzE3MzYyIGEwMzkyZjQzODk2MDVmODcwNTA3YjI5ZDMyZGEyMDVhNmQzODRjZjAgbGVnYWN5LXRydW5rCisxNzM2MyA3NWVkNDI2MzQzNjYyOWVhYjQ5NzBkZDJiOTliNTI5ZGFiMWE5OGM2IGxlZ2FjeS10cnVuaworMTczNjQgMjlmYWNiNzhkNmY0MTY3NDA4ZWM2ZjIyODc3OTc1MDRkMDZmN2I5OCBsZWdhY3ktdHJ1bmsKKzE3MzY1IDBkNDlkZDBmMWJjZTMxMzVkMjYxOWI3ODIyODQ3MDUzZWJlOGFkMjEgbGVnYWN5LXRydW5rCisxNzM2NiBiMzQwOTVlNDg4Y2YxYWM4ODE4YjIyMTNjYmRjMjlhYmU4OTQyZTliIGxlZ2FjeS10cnVuaworMTczNjcgM2I2MTkzODVhOTBlNDdjOTY4Y2YwMmNmZGM5ZmI3YjM3ODRlZDg3YiBsZWdhY3ktdHJ1bmsKKzE3MzY4IDFkYjQ1MzI5NmM3NjdiZGFjZWZhY2VmZjA2MGFmNWRlN2FmYWM1NmMgbGVnYWN5LXRydW5rCisxNzM2OSBiODI4MDJiZjdmZmYyZGZjYzRhOWFlNzE5MGYwYTUxMGJiZDM0NGY1IGxlZ2FjeS10cnVuaworMTczNzEgYmY4NDRhYzJjODFhYmYzMDIzMjVjODIxMmIyNGJlZjAzM2I2MDk5ZSBsZWdhY3ktdHJ1bmsKKzE3MzcyIDUxNjdkMjNiZDZiMGJmMDFkYWQyMDhlMDNiNjk0MmZhOGY5MWI3YjAgbGVnYWN5LXRydW5rCisxNzM3MyA3NDM1MzMxYjQ4ZWU2NTg0MDUxMTY1ZTYxMDc0ZjMxYzc4YjBhYzczIGxlZ2FjeS10cnVuaworMTczNzQgYWRkYWJhOTkxMDc3ZDQ4MzhiYmQ2MWY2NDZlNWE4MDZjMDBhYTJlOCBsZWdhY3ktdHJ1bmsKKzE3Mzc1IDlmZWQ0ZWViYzU4NjRmY2Q4ZTRlZWE1MDczOWVjY2M1NTZmYTI3ZWEgbGVnYWN5LXRydW5rCisxNzM3NiAyMzViY2QzZTVmMTc0NDY5M2Y2YThkODM3YzNmZTg0NWU0NWFmNGI2IGxlZ2FjeS10cnVuaworMTczNzcgY2QzZTRkNzNkZjhlNDg2M2Y2MzJjNTNlMGMwMDc5MDM5NmM1MDVmNSBsZWdhY3ktdHJ1bmsKKzE3Mzc4IDkxOWQzNmZkYThjOGQxODU3MTE4NzE4YTc2NjUxMDNlZjMzM2ZlYWEgbGVnYWN5LXRydW5rCisxNzM3OSBmYzU0ZTM5NzE2OWZmNmVhZGJjYjA5ZjY1NGU4ODM1MWQzZGYxZjI1IGxlZ2FjeS10cnVuaworMTczODAgZmY0YWU2OTFiZTliNTBmOWMyZTZlMTJlM2I0NDAyYzZkYTcyODcwNCBsZWdhY3ktdHJ1bmsKKzE3MzgxIDg2ZDQ3ODY3MzRjYTFkZDY1MDBlNGRlMzk0MGRkZGIwMTBkMDlkNDcgbGVnYWN5LXRydW5rCisxNzM4MiA3MzY2YmI5NWYyMTI5OTBhODBiYTdjZjY3M2ZlNDM5NDYwMWMyZDdkIGxlZ2FjeS10cnVuaworMTczODMgYmUxYWIxODczNThjODFmMDk2MmRiYzgyY2FiODAzNTA5ODM3MDk0MyBsZWdhY3ktdHJ1bmsKKzE3Mzg0IDhkMWE0NjhmOGU1OTE1NGI3MDJiOWU0Y2NjNWYzMTc0YjNlYzkxMjQgbGVnYWN5LXRydW5rCisxNzM4NSAzMDY3YWUyNzQ1OGMyNDA1OTJlY2MyZWU1YThjNjI4NDQ0MzJhNDllIGxlZ2FjeS10cnVuaworMTczODYgNzE1MDk3OWY5Njk0MTU2NTUxZWY4ZjY0NDNkZGFiMmY4MGYzZTNjNSBsZWdhY3ktdHJ1bmsKKzE3Mzg4IDYzNWY2OTEyMzM0OTNlNWI3OTM1YTk0Mjg3NGEwMGNjODMyZWY2YzMgbGVnYWN5LXRydW5rCisxNzM4OSBhNWQ2NTQ1OWE3YjY5MjAzMGU1NDUxMTM0YzA2Nzc0YzA4ZGFiNGJmIGxlZ2FjeS10cnVuaworMTczOTAgNjg3OTVjMTNhY2VhMDAxMTZhMTVlMTE2Y2Y0MzRjYjU2N2YzMWRmOCBsZWdhY3ktdHJ1bmsKKzE3MzkxIDQxNzVlZTgwYTA4NThjOTg3NmYwNzMwNmY3MTFjOGI5ZGJmODgyZjAgbGVnYWN5LXRydW5rCisxNzM5MiAwNTJiMTEzYzc1ZDRjYmU2ZWQ5NjAxNDg4OTFjZGYwZGRiZGNiMDE0IGxlZ2FjeS10cnVuaworMTczOTMgMzY5YWMxODUwNTVkMzExYzAxZGEzMDg5MmNkY2FkZmE3NDc4M2Y4OSBsZWdhY3ktdHJ1bmsKKzE3Mzk0IGRjM2JlZjc3MWQwNzMyYzY5MWNlNWRhOTVhOTUwZTI0MjZkY2RhMjAgbGVnYWN5LXRydW5rCisxNzM5NSAzNWFlOGRmZjhlZDA5OWJlYTlkOWE1ZDJiMDcyMzIwYjZhYTJjYTk2IGxlZ2FjeS10cnVuaworMTczOTYgNTYxYzBiMWQ1MTRiMzRmODlhYmNiM2MyY2U0MzYxY2RmYTZmZDA4ZSBsZWdhY3ktdHJ1bmsKKzE3Mzk3IGE0NWNhMWY3ZjI0MTViYjcyNDFlZDk3ODU2OGNhZGI5ZTQ1NDFiMzcgbGVnYWN5LXRydW5rCisxNzM5OCBjMTYzOTY1MTFhYTM1NmFhMWM5ZGI3ZDg4YTNmOWZkYzQ1NTMwYzI2IGxlZ2FjeS10cnVuaworMTczOTkgZmY3MTJkZThiZDgxMzQ1ZDc0OGM0MTJhYzJhMWZkZTEyZTM4NzQ4YyBsZWdhY3ktdHJ1bmsKKzE3NDAwIDEyMjc3NWZmYTM2YzkzZmUwMmRjZDU0MDU0ZDVjZWI3YThmNDFmZDcgbGVnYWN5LXRydW5rCisxNzQwMSBlZmJhMzA3MGNkZGVjOGFmOWJhYzhhNzYxYWIxOWQ2ZTgyOTAxZDEzIGxlZ2FjeS10cnVuaworMTc0MDIgYWVkMTIyNmE3ZmM0ZjM0ZDEwY2MzNGEwNzBjYTZlZGExYjc4OTljMiBsZWdhY3ktdHJ1bmsKKzE3NDAzIGU5YzMxMzc0NTMwMjE3YTY2OGMzODA0ZDRmN2M4ZDMxMDBlZjljYTAgbGVnYWN5LXRydW5rCisxNzQwNCBkNDkwYzJhMTg2ZGFmY2Q5YWYzOGUzZGQ2ZmQwMzI1NzVjZDNjNjI3IGxlZ2FjeS10cnVuaworMTc0MDUgN2ZhNDMwMmE1YTA4NzBmMDQ2MzE5M2EyNTBhYmY0Mzk0YzM3YTgwMSBsZWdhY3ktdHJ1bmsKKzE3NDA2IDI4ZGY0ZjQ1OTY3ZmI2NGViOTJiOGNjZWY1MTllZjBhMDEzOWQ1YjAgbGVnYWN5LXRydW5rCisxNzQwNyBhOGQxYzAzMGIxOWZlNjgwYzcwYjY3Njk1ZTQzNjEzOTU1YjExY2IyIGxlZ2FjeS10cnVuaworMTc0MDggYjNmMTU2MTE2MjcxMjNkOTA5Zjk5ZjUyYzYzZTc3YmRhOGFiMGVmMCBsZWdhY3ktdHJ1bmsKKzE3NDA5IDg3NzQ1ZTU1NDcyNzE0ZGNjMjg4YjM1Zjc0MDhlYmYzYzg1MmM4OGIgbGVnYWN5LXRydW5rCisxNzQxMCAyMTllMDAyMjFjODQzNWNmYjdmZDQ4ZjM2Mzc5NzA3ZjlkY2M4ZWRlIGxlZ2FjeS10cnVuaworMTc0MTEgNGFjMDllOTcwODI4MmRmNTcxYzA1ZWEyNDFjMDMzOTAyYzc3ZmQ0NSBsZWdhY3ktdHJ1bmsKKzE3NDEyIGE3MTM4NWY4YjRkYWJmZDgxZjMzZDFlZGJiZTg4NjM5Yjg5ZTc0N2EgbGVnYWN5LXRydW5rCisxNzQxMyA1ZjJiOWVmM2YyYWVjMWMzODIzYTM5MzNhMDRjMjk2Mjc5NDRlMzQyIGxlZ2FjeS10cnVuaworMTc0MTQgMjhjYWFhM2UyOTJmZmUxYzNiMTA4ODZlNTEwMTVkOWI2MmNhMmIzNiBsZWdhY3ktdHJ1bmsKKzE3NDE1IGVlYjhlZTQ4ODEwNmE3Y2I5YjllYmYzZjliMDFjODMyNjEzNDEwMmQgbGVnYWN5LXRydW5rCisxNzQxNiAwN2EyZGMxYjcyYWVhMmZlZDE0OWVjYjljNDQwYTMxMWE2OGU2NmQ0IGxlZ2FjeS10cnVuaworMTc0MTcgZmU4ZWY0MWMzMjIzZjk5ZjliMTdkYTYwZDUyY2I2MTM2ZDZkZWIzNiBsZWdhY3ktdHJ1bmsKKzE3NDE4IDAzZTYxNTBmZDhkNTI0YTgyZGU1Mjc1ZjY3Y2Y3YzQzMTA1ZTQ1YmYgbGVnYWN5LXRydW5rCisxNzQxOSBiY2YyM2I1MmIwMmZkOWFlYjBhYjY4NWQ5YmFkMTQ3YjY1OThiMzcyIGxlZ2FjeS10cnVuaworMTc0MjAgYWM4MWUwY2FjNWY2Y2Q4YjA5ZjZhMzE4ZTJjMDRmMTY2MWZjNDUwZiBsZWdhY3ktdHJ1bmsKKzE3NDIxIGI3ZWQ1NDNmNGM1NmQyYTYyMWY2YWM1MTRkNzgxMzVmOWVlNWM0OTcgbGVnYWN5LXRydW5rCisxNzQyMiA2Mjk3OWM3YjlhNzE5YjMxMjQzOTJiZTEyNTgwNmQyYTJkZDYxYjY3IGxlZ2FjeS10cnVuaworMTc0MjMgZjQ0NGNmZDRmYTA3NTQxMDkyMTk2NzFlMWRhMGMzMjA3NzE1ZmYyZiBsZWdhY3ktdHJ1bmsKKzE3NDI0IDU1ZDY3MzAyNGU1Zjk2YjdiNDY2OTEzMjVlY2M1YzM3NGExOTZhMjUgbGVnYWN5LXRydW5rCisxNzQyNSBiY2ExZDIwMTM2MjZiOTI0NTgxN2JjOTdlNGRhNTFlOTMxOTI0ODAxIGxlZ2FjeS10cnVuaworMTc0MjYgNjAwNTE1NzQ3YzUxYTM1YTI0ZjI2YjlmODQyOWRkZGQ0YThhZDE4OCBsZWdhY3ktdHJ1bmsKKzE3NDI3IDI1YjdhYzA1Njg5ZTUwOTJkZGVjZjA2NzMwZjY4YmUyMjVlYmE2YzggbGVnYWN5LXRydW5rCisxNzQyOCA4NTczNzZkNjk5YmI5ZGY0MjlhNTA4Yzc3YWQwYWZhY2UyODZiYWFhIGxlZ2FjeS10cnVuaworMTc0MjkgYjRhMzdhYjMyOWRhMjQ4MWI5NWMzYzMxYTZkOWFhYjBkZWY4ZTE5ZCBsZWdhY3ktdHJ1bmsKKzE3NDMwIGJhNTQyMWZmMDI1NjdiMDJlNzM4NjViNjRiZThkNGFiOTdkYzQ4M2EgbGVnYWN5LXRydW5rCisxNzQzMSA4MzY5ZmNkNzlhNjRiY2RmNDhmOThhNmM0ZTg2MWI5ZjI0NTU0MjAwIGxlZ2FjeS10cnVuaworMTc0MzIgMTgzM2QyYmJmNzZhNDljYTEwZmVmZjM3NGNhNDZlMjUzYWU2MWZjYSBsZWdhY3ktdHJ1bmsKKzE3NDMzIDM0NGQyMmI5ZGIzMmFkOTJiODg1M2NmMDZiOGM1MGJmMzE5MzhiNjggbGVnYWN5LXRydW5rCisxNzQzNCAyMGIyMmZkZTFjYjc5ZjhmM2QzYmQ1ODI0ZGRmYzc0ZmMzYTA0NTIyIGxlZ2FjeS10cnVuaworMTc0MzUgNWY4N2VlYzdiNmI4ZjY2ZDJiNmE2MGVhOGU1NThiMmQwODZmMTBjZSBsZWdhY3ktdHJ1bmsKKzE3NDM2IDRkNzQ0NTE1YTczZTRiMmI0MzJlMjY1YjU5ODVmNWY0N2MzZjBiODEgbGVnYWN5LXRydW5rCisxNzQzNyA2NDM1Y2M0N2ZjYzZmZjI0OGIxOTY3NGU3NTYwYjNmYTBmN2U0MGViIGxlZ2FjeS10cnVuaworMTc0MzggMjEzZGJjODgwMTU5OTY3ZmMwMDNjYzE3NzBjNWRiYTQ3ZGY5NzAzNyBsZWdhY3ktdHJ1bmsKKzE3NDM5IDg5Y2U0ODA5NjNmOWJiNDBlNGNlZGZhMDhhYjEzMjM1NTBlNWUxZTAgbGVnYWN5LXRydW5rCisxNzQ0MCBkODRkNTc1OTQ4MTU1NmFhN2E4MjBkMzlmYTkwYWFkMjJjZjY3MzE1IGxlZ2FjeS10cnVuaworMTc0NDEgY2QxYjlkOGQwNDVkZDk0ZGUyZWIzOTFjMzMyMzIyNzdhYjM2NTg1MiBsZWdhY3ktdHJ1bmsKKzE3NDQyIGU4ZDg3NThhZGZkYjYzOGM2MjRkMjMzMTkzYjlmOWE4OGNhNjRkY2MgbGVnYWN5LXRydW5rCisxNzQ0MyBkY2JjMDg0ZDA0NmViYTVkMDI0YjI0MzViOTgzMzQ0NTQzN2Y1MDkyIGxlZ2FjeS10cnVuaworMTc0NDQgOWFiNDE5YTVlMDUyODkxOTg5YTQ3MjllNDY3ZTI2MzA1Zjg1NmY0NyBsZWdhY3ktdHJ1bmsKKzE3NDQ1IGM0MjEwNWJkYjVmYzRlYjFhZTQ2MGRlNmNmYWQwM2U3MjNmNzhiNmQgbGVnYWN5LXRydW5rCisxNzQ0NiAxNmE5YzA1N2RjMTE5ZjJjNTM1N2UyMzgzYzIzZmYyMzc2MTQ1NTRlIGxlZ2FjeS10cnVuaworMTc0NDcgOTBmMDc4OWQ1N2I3MTdkMzBkMjc0ZGQ5ZjZmNGViNmE0ODNjZDYxMCBsZWdhY3ktdHJ1bmsKKzE3NDQ4IDZjMzE3YWRjMThhOWUyYmFkZjFhY2I2YjhkNjk5ZGUzMDM5MGViMjYgbGVnYWN5LXRydW5rCisxNzQ0OSBhMWUyZThkNTVlZjAwNTAwN2EwZmZkNzNiZTQzNGJlZTcxMzA3ZTZhIGxlZ2FjeS10cnVuaworMTc0NTAgMmE0NDE2YWQ4MzdjNDU5NmE0MmY5MzVlOGYxYjU3YzZkNzE3YjEyMCBsZWdhY3ktdHJ1bmsKKzE3NDUxIDI1NmQxYmI2Mzg4ODk0N2ZjNjE2MGQ2MmYwOGQ0NTRiN2NhMTM4YmMgbGVnYWN5LXRydW5rCisxNzQ1MiBmNDg2MTc2ZjU2Zjg3MDg3MGFhNDcxZjlkNTQ3YjNiZmEwNWI1ZWE1IGxlZ2FjeS10cnVuaworMTc0NTMgNjlmOTZiNmNhZDI5MmI0MDYwZjEyYzQzODU4ODdjNDkwMGYxZTRmOSBsZWdhY3ktdHJ1bmsKKzE3NDU0IDQ5YTA0MTMzMDQ2MWNlODRhODQ1ZTBlYWE4ZWZkNGVhMjhiMTFjYWMgbGVnYWN5LXRydW5rCisxNzQ1NSAwMTRjZjZkMjkzOTg3MmRhYWUyYTgxMGU4YTAyYjJlMTkzOGE0ZmEzIGxlZ2FjeS10cnVuaworMTc0NTYgOGU1Y2EzZmJjZGI2NDYzMmI5NTFjMjQyNmI0YWZjNjkwODRiZjBlNiBsZWdhY3ktdHJ1bmsKKzE3NDU3IDI0ZmJiZjEzZGFhNWJkNjc2ZTNmMzE4ZDRlYThjNzMzZWMyZjA1YWMgbGVnYWN5LXRydW5rCisxNzQ1OCA4MGE3ODIwODZhNTdmMTliN2MyZTZhYmNhYWU4ZjhlMTkxMTYxNDMyIGxlZ2FjeS10cnVuaworMTc0NTkgZDI2MDlkNDMwNGVmYzVjYWNmYzczMGQ4NWE4Y2NhOWUwMjQwNTcyZiBsZWdhY3ktdHJ1bmsKKzE3NDYwIDhhZDliZDljYTYwYzAwNGFlY2I3ZWU4YmFiNDk0MGJmYWNkZmVkOTAgbGVnYWN5LXRydW5rCisxNzQ2MSBmMmZjNjZhNjE1M2I0MDU2ZTYyZDlhZWU1ZjEwYzg5NDIxMzYyYzBhIGxlZ2FjeS10cnVuaworMTc0NjIgYWM1ODNlNmEzYzhiNTFhNWYyMGI2MzU4NmIwNjU1OWQ0MmEwM2FmMiBsZWdhY3ktdHJ1bmsKKzE3NDYzIDE0MmE5MGVlYThmNGExODkyMTY5MTQ3YjEzYzkxZGIxMTAzZDUxMTIgbGVnYWN5LXRydW5rCisxNzQ2NCAwYjYzMzMyNThmNTQ3ZDFlOTAwY2RkMjdkNmQ5ZTI3M2Q5YWY5MDdlIGxlZ2FjeS10cnVuaworMTc0NjUgMTNjNzNhMjE5Y2IxMWQ5ZWUzNzc4M2Q0NzE1NTAyNTBmYWMyY2NmNCBsZWdhY3ktdHJ1bmsKKzE3NDY2IGRjYjkyNmU3Mjk2ZWMwYWQyZmM0YmEwM2VjMTQ1NzYwNjNlYzlhN2UgbGVnYWN5LXRydW5rCisxNzQ2NyAxZTZjMDQ0ZDhlNTk4NTE1N2Q2YTBkZjZiYjUwNzc1MzE4NTcxNGU1IGxlZ2FjeS10cnVuaworMTc0NjggNWE1MTJlYzhhN2FkZTI4ZDllOWMxNWJjOGVkNWU5NTI1OTk1NTE5NSBsZWdhY3ktdHJ1bmsKKzE3NDY5IDMzZTJlZjMzOWU1MGQxOTEzZDVmNWNiNGNkMjYzMzIyOThhZWRjZWMgbGVnYWN5LXRydW5rCisxNzQ3MCBjNGQwNTk4NWM2ZjMwNjljOTEyZTYxZjUwNzFmYWYzMTZlZjBhM2RlIGxlZ2FjeS10cnVuaworMTc0NzEgMjg0NTA4YzY1M2M3YzNlOTMxYjFiZTIzYzFjNTU5ZjU2MjMyYzA2NCBsZWdhY3ktdHJ1bmsKKzE3NDcyIDlkNzk4YTc2M2QyNDE3OThkNzBmMDUyZDE2NTM3Y2U1ZDg4OTFhNWQgbGVnYWN5LXRydW5rCisxNzQ3MyBjYjc2MzgzNWIxNzYxZGE3ZTcxZWY3MzFmNzllYmIzNTQ1NGNhOWE4IGxlZ2FjeS10cnVuaworMTc0NzQgNGYwNjlmNWRmYTdiOTc4MGIwYTUyYTY2ZGNmNjZhYTE0NWU4NDAxZiBsZWdhY3ktdHJ1bmsKKzE3NDc1IDRhY2NjNjNkNTZkYzU2Njg2NDgxNTc0MjhlMDBmZDIwMjBkNTE4OGYgbGVnYWN5LXRydW5rCisxNzQ3NiA0MWFmY2QwNjlhNmM1MTg0ZDAzOWU5MGVkNDQyMzQ4YjIxNzFhMDRlIGxlZ2FjeS10cnVuaworMTc0NzcgNDZmNzYyYTYxYjk5NjMwMDUyMTMxMTVhZGU1NTVkMjMxMjhiODIzOSBsZWdhY3ktdHJ1bmsKKzE3NDc4IGFhYTFkYzE2MWNlM2QyZjMwYjFjMzgxNTU2NDA0ZGM5NjA3ZTQ4MzUgbGVnYWN5LXRydW5rCisxNzQ3OSA5NjE4NjBkNmJlYTkzYmE1NGY0MTJlNDUyZTQwNjFmMzE2MmQwZmExIGxlZ2FjeS10cnVuaworMTc0ODAgYWYzNmJhNTA2MWY2ZTg0NTM4OGVmMzI1OWVkMGVlMWFhNzg3NTY2NiBsZWdhY3ktdHJ1bmsKKzE3NDgxIGZlNDdkMjM4YjUwZGUyNTJjMGQ4ODIwNzRhNjczMTRkM2Q3NDFiNjkgbGVnYWN5LXRydW5rCisxNzQ4MiA0MDU5NTAxN2E5OTJlNTUyZTNiY2FlM2U5YTNiYTNhNzNkYzkwZDhlIGxlZ2FjeS10cnVuaworMTc0ODMgNzIxMWZiZTBkYjlkODcwOWI4MmEyMGZjMmM4OTlmZjBmZWJmYjRiMyBsZWdhY3ktdHJ1bmsKKzE3NDg0IDlkOTlhMmRmNjc1ZjQ5NmFiNGIwNzZhZGU5MjgxNzNiMDAxZTJiMTYgbGVnYWN5LXRydW5rCisxNzQ4NSA3ODljNWI2YzBmMDlhMDk3OWM1OTI0ZmUxMTBlYjA3YTZlYjU4MmVhIGxlZ2FjeS10cnVuaworMTc0ODYgM2NkMjE3NGVlMTBkMTE2MjIzNDUzNGMyNWQ0NmM0ODAzYTY3Yjc5MiBsZWdhY3ktdHJ1bmsKKzE3NDg3IDRkNmE1ZTVmZTk4ZGM4OTEwNjhkNGU4MmI0MjEwZjk3OTg4YzVkZTQgbGVnYWN5LXRydW5rCisxNzQ4OCA3ZDBlMzQ1MGVlNDEwNzQ2YTQ2YTY4MjdkNTAxMjg3ZmY5Y2UzNWE2IGxlZ2FjeS10cnVuaworMTc0ODkgOGJkNTM0OWU3YWE4ZTA0YzYxNWMzNzM0NDNiMDI2N2U3YTYwOTgxMiBsZWdhY3ktdHJ1bmsKKzE3NDkwIGRiOWVhNWI1ZjMzN2U3ZjVmMmFlMjZjM2E2YTMyN2QwNThhZDM1NTQgbGVnYWN5LXRydW5rCisxNzQ5MSAwYzMwM2EyMmQ5YTQ5NzExOTExNGQ2MzZlMTQ2NzkxMzExYzk1YmQzIGxlZ2FjeS10cnVuaworMTc0OTIgMzczOTdiZDFmOGE4ZGI0YjE4NmYxMDE1NTI1NDg5MDU5NDk4ZjA5MyBsZWdhY3ktdHJ1bmsKKzE3NDkzIDJlMTcwYzJmNjFlMTM4YjBlN2I1YWU4ZWYyZmY1NzA1MTEyMjVjZWIgbGVnYWN5LXRydW5rCisxNzQ5NCAxMzM2MjRhYmM1MjVhZWNkZWJmM2ViNWUwYTI3OGRkNWNkN2IyZTk1IGxlZ2FjeS10cnVuaworMTc0OTUgM2ZlZmVhZmEzZjRhMGY1YTJhNmU2YjM0NTU5MDhkMDMzOTcwNzI5NyBsZWdhY3ktdHJ1bmsKKzE3NDk2IDhhN2Q0N2QwNzk4MTIyYjRlOTNhNzg4YTBkNGU5YTQxYmZmOWNhY2IgbGVnYWN5LXRydW5rCisxNzQ5NyAwOGUxYzNjNDFlNjA3ZjQ2MWZlYTNhMDAxOWI3ZDI5Y2QyMTkyYjk2IGxlZ2FjeS10cnVuaworMTc0OTggYjk1NGMzM2YwYjRiMGNkNzkzNGYwYTkyMmE3ZjcyYmE3NTExNzIwNSBsZWdhY3ktdHJ1bmsKKzE3NDk5IDY2MzdjMDkxZmY0NGYzNjJiODkzZDFhZmI3ZjdlOGRjM2FlZjQ3MDYgbGVnYWN5LXRydW5rCisxNzUwMCAyZDMwYzM1ZmVlYmU1MDMxYWU4NzU1MWUyZTgxYTAzOTkwZTFjMzFiIGxlZ2FjeS10cnVuaworMTc1MDEgMWI4MDY1NTM5MDlmNWRiYmYyMjQ2ODI2YjgxOWNhOWU2NjBmOTQ5NSBsZWdhY3ktdHJ1bmsKKzE3NTAyIDNiNzBlNjAyOTlhMzE4Nzc1MDYxMjViYjY5YmY1M2FkZjE5ODI4MWQgbGVnYWN5LXRydW5rCisxNzUwMyAxNWNiZTM5OWE5YzNiNTg1YzIwNDM0OGQyODE0YzM4OTBlNTljYWUxIGxlZ2FjeS10cnVuaworMTc1MDQgMWVjNmM2MzM0N2VhMzgzM2UyNzdhNTZjYTJhYmVhNGI1NGVmYWZhOCBsZWdhY3ktdHJ1bmsKKzE3NTA1IGVkZGEzNTNiZGUxMmExZGI2YmU4MjA3NmY4MDViMGIyNTQzYzljODkgbGVnYWN5LXRydW5rCisxNzUwNiA3ZmM0NTY5ZDk2MjUwNzA1MmNkNmIzMzdlODQwZjQ0NGNkMGJjZmY3IGxlZ2FjeS10cnVuaworMTc1MDcgZjRmMzg0MWEyNmVkZDE0YmJjNDY5MzI2NGUxOTdmMDVhNWUzYzgxMiBsZWdhY3ktdHJ1bmsKKzE3NTA4IDNkNmZlNjRiY2QyMThhMGM0Y2U3YjJlZWExYjZiM2FhNjNhNWQ4ZjMgbGVnYWN5LXRydW5rCisxNzUwOSAwYmQ3NDZiYzc2MjdmN2Y0MDdhZjAxNDdiYjAzZjJkYmU1NmY3OWQyIGxlZ2FjeS10cnVuaworMTc1MTAgMDIyODkxNGUwYzVmMGY3MTBiNmRiMjQ0MGUzZjQ2MzczZjYwZmE4ZiBsZWdhY3ktdHJ1bmsKKzE3NTExIDYwMDI5ZTNlMDVlZWE4ZTFmZGEwMDEyOTc2YTk2MjU5OGJlNDVmMTYgbGVnYWN5LXRydW5rCisxNzUxMiA5NDY3MDllODJiZTAyZDcwNjFhMDk2YzZkN2VkNjY4MzAzOGMzYzQxIGxlZ2FjeS10cnVuaworMTc1MTMgNjg2ZDNjY2FlYjRhN2UxYTAzMTI0MTQ2ZGRlZGMxNTJjMmFhNzY4ZiBsZWdhY3ktdHJ1bmsKKzE3NTE0IDY5OWZiYmJhMjlhNzMwYzhhMDgzODE5Y2ZmNmRhNmJjZWYxMDA1NzEgbGVnYWN5LXRydW5rCisxNzUxNSA5ODM1MDJiMmNkNDNhNDNmOGFiN2RhYWVjODczOGZjNzA0N2I5Yjk2IGxlZ2FjeS10cnVuaworMTc1MTYgZTdmNzNkMzVlY2Q4YzJmODJmMWI2NDkyZGJjY2RkZGFhZjIwMGMwNSBsZWdhY3ktdHJ1bmsKKzE3NTE3IDJkNjE4OGMyZWE1NmYxYmFmOWVhOWY3YTljMTVkMjJjMWRmNmRkOTIgbGVnYWN5LXRydW5rCisxNzUxOCBkMWVkMzA4MjU4MWE2MjgxNWY0ZjFmNjk5M2NjMmQ2MjA1M2Q5YjgwIGxlZ2FjeS10cnVuaworMTc1MTkgZjgzODQwOTg2MjY4NDQxZjFiYTljYmExMTE0MWE1YWJmNzI2NjNmNCBsZWdhY3ktdHJ1bmsKKzE3NTIwIDZmY2Y1YTcwNTMzY2YwY2VjZWI5MjAyMmY2ZTc4NmQ2Mzg1NTZhMWEgbGVnYWN5LXRydW5rCisxNzUyMSAxNTcwODU0OTExY2UwNmU3ZmZmZTRlMGVhYjUzMGM4ZjNjZDZhODUwIGxlZ2FjeS10cnVuaworMTc1MjIgMDgwMDU0YjEyMzU2NWE3NGIzYTVmNWNlZWQ5YmM5OWUyNGZkN2U4YSBsZWdhY3ktdHJ1bmsKKzE3NTIzIDQyYzQxZGFkZjI5MzZmZTQwYzYyOWQyMWE4NzQwOTgyN2Y0M2M2OWQgbGVnYWN5LXRydW5rCisxNzUyNCBhNWI0MDI5NWRjMTliYTdlMjg3OGIzZmE4ZDhlODJlMmM2OWUxZTVjIGxlZ2FjeS10cnVuaworMTc1MjUgOGRiODYwNmQ4NGVhYTBhNTZjMjEzZGU1NWY2OTFlYmVlZWZmOGVlZCBsZWdhY3ktdHJ1bmsKKzE3NTI2IDBjNmI5ZGUxOTEwMGY0OTM3MjIxNzBiYmNkNzg3ZGIwNjNlMjMzODggbGVnYWN5LXRydW5rCisxNzUyNyAxYjIwYWQ2ZWI1MDE5NDBkNzMxYzg2NThkZjIzMzY0YTViMTY2OTRiIGxlZ2FjeS10cnVuaworMTc1MjggZGY4ZDU3NWQ5NjdkODhkMDU4MTFiZDZlZDQ2MGJiZmE2NzFkODFkOSBsZWdhY3ktdHJ1bmsKKzE3NTI5IDc1NmM4YzY1MzVmZTJkZGVjMmYwZWRjZjhhMjRkNDlhMDgzOWNmY2EgbGVnYWN5LXRydW5rCisxNzUzMCAyMjAxMWQ5NzY5MTczODRmNjg5OGYxMDliOWJjODA2MTU3MTE2YzFkIGxlZ2FjeS10cnVuaworMTc1MzEgM2M1ODcxNmZhZmRlOGIzZjczZjZhOGFlN2Q2ZjgxOGY2MTQwM2MxOSBsZWdhY3ktdHJ1bmsKKzE3NTMyIGE3ODEzYWQ3M2E0ZWRlZWQwMzJjYjVmOWEzMzAxZGMxOTFkZTMxM2EgbGVnYWN5LXRydW5rCisxNzUzMyA5NGNhODdhM2U1ZWVlMjhjNTgwZmE3ZGVjOTY0YzVjMDBiNWMwZTZmIGxlZ2FjeS10cnVuaworMTc1MzQgMDg4MjMwOTlhZTYyNmUxMTIyYjRiOTQ2MmUzZTk4ZjYyZDFiYjFmMSBsZWdhY3ktdHJ1bmsKKzE3NTM1IGUyZDYyZDc0N2Y3YTgyYzE4M2NlN2YwNGM1MGY5YTlkOGZjODMyODcgbGVnYWN5LXRydW5rCisxNzUzNiBlNDMyYTE4NWY0ZGI4MzMxYjMxZWRhNmMwZWY4NjNiMzFlNzc1ZjMzIGxlZ2FjeS10cnVuaworMTc1MzcgMjk1MTI2NDMzODU2Y2QzMzNhMjNhMDJjMWJiOGY4YTFiNTdlNjYzMiBsZWdhY3ktdHJ1bmsKKzE3NTM4IGVkZjFlMTVjNjcxYTA4NGU1MzhlMTFiYWRhZTg2MWZlMDlhYmM4ZjcgbGVnYWN5LXRydW5rCisxNzUzOSBjNTJmZjAyYmJkNzA0ZmU0N2M5Y2Y1MmI2NDU0ZmY5ZDQzNTU2YTliIGxlZ2FjeS10cnVuaworMTc1NDAgZmFmM2U3MzQyNTRkZDZmNjExYWZjYmI4MDRjNmY4ZTVhMWVhYWIyNCBsZWdhY3ktdHJ1bmsKKzE3NTQxIGUzODRmNTAxNDljOTQwNDQ1MDhhZTkzNTdmMGY3MDlmMmVhZGUxMDkgbGVnYWN5LXRydW5rCisxNzU0MiBlODZmYTdlODUwZjE0MjBiY2I1NDQ4YjkyZjFmYThmMWY0NzM2YTk5IGxlZ2FjeS10cnVuaworMTc1NDMgZDZmZmI2ZDdmZThhZDM2NWZjMWM1NWQ5OTQ3MTFhMDc5MzJjMDAyOSBsZWdhY3ktdHJ1bmsKKzE3NTQ0IGNlYzAwM2JhM2M3Yjk3OWM3NDAzYmYxYjg4ZGUxOTc2Mjk3ODIyNjIgbGVnYWN5LXRydW5rCisxNzU0NSA2N2E0OTEzYzA3N2ZlZmM5MTJlZjdiMzFkY2FmZDJlYzM3Y2UxY2NiIGxlZ2FjeS10cnVuaworMTc1NDYgYmFiNGZhNmMzYzI0MWI2YTlkYTRhM2Q2YzI2MTBkOWZkNzBmOTYxOCBsZWdhY3ktdHJ1bmsKKzE3NTQ3IGM2ZjQzYzYwMzZiYTEwNTEzN2JiNzEyZDQ1MTcyMmRlYTZkZjFmMjggbGVnYWN5LXRydW5rCisxNzU0OCAzNDExMDUzOGIxMTg0NDg1NWQ4YzEyYTE0OGY1NzJmODA2YTA1MjkyIGxlZ2FjeS10cnVuaworMTc1NDkgMmI5YjE1OTY1OTUxNWY4ODllYTU0NmExNmJjYmI5NzNlMGMwNDlhNSBsZWdhY3ktdHJ1bmsKKzE3NTUwIGVmMzcwNzhkMjcyZDY0MmMxMTA1NGVkNWNkZGQwYzJmMWI0OGVkYjggbGVnYWN5LXRydW5rCisxNzU1MSA4NTAzOGEwMjRiMTkxYTg4ODFhZGM2ZmRkZDM0OTY1OTJiYTMwMzllIGxlZ2FjeS10cnVuaworMTc1NTIgOWUzZGM3YzQ3YWZhMjlmMTA3NTlmYTMxYTkxODk1NDdlMzEzM2E4ZiBsZWdhY3ktdHJ1bmsKKzE3NTUzIDQwN2NlMWM5OWU5OGUzMjkxNTY2NmQ0MWU1MTEwNjg4ZDdkYzY2NWIgbGVnYWN5LXRydW5rCisxNzU1NCBmYTgyODIwYmQzZmYzZGQzYzI3YTc3ZWNlNjk5ZGJhYTAwODY4ZTU0IGxlZ2FjeS10cnVuaworMTc1NTUgOTVmZTA4M2M3OGVlNWUwYjQ4MzJkNDQ0YjEwMjdkZGEwZmJmZDUzMyBsZWdhY3ktdHJ1bmsKKzE3NTU2IDU4MWQxZTc3ZTM1ZTc1ZGVkMzM3YmY2Njg1NjcyMDAxMjBiNzc5ZGIgbGVnYWN5LXRydW5rCisxNzU1NyA5MWRkZTdiZmZlN2Q5ZTNjMjA5YWE1NjVjNGQyZmIxNDU2NWMyMTE5IGxlZ2FjeS10cnVuaworMTc1NTggNDM5MzZhMjVlYWYxMDAzNDg5MjYyNGM2NGU3ZGQ0YjVhODU5NmMwZCBsZWdhY3ktdHJ1bmsKKzE3NTU5IDA0YzM5OGU3NDg3ODljN2M0MDE0ZjJkYjQyNmRkNDQzZjZlYWM4ODkgbGVnYWN5LXRydW5rCisxNzU2MCA0NzEyZjViOGYyNzlhZjJhODdmOTUxMTA4ZTQ3YmM4ZTUwMTQ1NTMwIGxlZ2FjeS10cnVuaworMTc1NjEgZmVmOWI4OWFkMTYyMmFlOTdhYzYxZjUxNTE4ZTM0MWYxYTRkZjExMCBsZWdhY3ktdHJ1bmsKKzE3NTYyIDJmY2I5OTBiOTY1Zjg2ZjVmMmFhNTJiNDc1M2ExNTI1ZWU1ZjViNDkgbGVnYWN5LXRydW5rCisxNzU2MyA4OWIyYWVlNDNlMGJkNTI3ZGYyZTZiYTc5ZmI0NmUwNTAyNzM2OGNhIGxlZ2FjeS10cnVuaworMTc1NjQgZTAyNDQzODUyMmRkNzBiYjM3Y2FlZGY1NjRiOTRmNmI4Yjg0YzE2ZCBsZWdhY3ktdHJ1bmsKKzE3NTY1IGFjNmRmMDQ5NGM1ODI2YmJiZjgzYWFkMDJkZjE3MDlhYTU0M2JiYTYgbGVnYWN5LXRydW5rCisxNzU2NiAxOTIyM2JiZjFhYTE5ZTU1MGFlNWEyZTJiYTAzMjM2N2I1ZTZhMmRmIGxlZ2FjeS10cnVuaworMTc1NjcgYTY5NzA0NDlkZjQyNWE1ZjRkYzUzYzc1OGIxMDA5YTk2NWVlOWU3NiBsZWdhY3ktdHJ1bmsKKzE3NTY4IDU4YjgzMmI4NzQ1ZWUyZWU2M2ViNmU3ODgxZWVkZDhmNzk4ZmZiMjMgbGVnYWN5LXRydW5rCisxNzU2OSAyZWM1OWExMWQzYzYxZTMxNmFmMjI1ZjYzZmEwNGM5NTUwNWE0ZGRkIGxlZ2FjeS10cnVuaworMTc1NzAgODMwZThlY2U2NTYzOWI1M2JkZTU2YWQ1MDVmOTQwZWZkYWQwZWUzNSBsZWdhY3ktdHJ1bmsKKzE3NTcxIDVhZTFkOGE5ZjFkZDhlZmZiNzNlNDYyN2E2ODYzOWYxODdmM2JmNDAgbGVnYWN5LXRydW5rCisxNzU3MiBjM2EyN2I2ZWJlMWJjYjFmZTAyNWIwMWVjMjk5YjVlMmFmOTVjYmE3IGxlZ2FjeS10cnVuaworMTc1NzMgNjljYTQ2YWY0MzZhNmMyM2I0ZTRiZjQxYmE3YzNkM2VkNTJjOWJjOCBsZWdhY3ktdHJ1bmsKKzE3NTc0IDg3MDIzNzA4OWJhMjhlNzYzNTA3NTY3NjJlMjljMmU4YjJkMTAwOGYgbGVnYWN5LXRydW5rCisxNzU3NSBkOGI3OWUzOWM0N2UxNDQyZmYwOTlhMTMxNmJiZjIyMDk5YmFlODEzIGxlZ2FjeS10cnVuaworMTc1NzYgN2Y0OWM1ODY0Zjc3NDFiNTBmNjdkNjk5YTQyZDM4NzlmMjRlOWY0NiBsZWdhY3ktdHJ1bmsKKzE3NTc3IDRkMmU5Y2YxZWIyMGI2YmRiYTIwZGFmYTAxZmYxYmNlMTlkOGNkNjQgbGVnYWN5LXRydW5rCisxNzU3OCBjMDRhYWMxODY1NmFiMjk4M2ExOGJhOWFlMzQwZDQ2MTQ2Nzc0NTZiIGxlZ2FjeS10cnVuaworMTc1NzkgYTZmODAxM2JiYzNkMTZmMGE1OTRlYTNjNzNkMmJhODNhNGY5MThlZCBsZWdhY3ktdHJ1bmsKKzE3NTgwIDA2YmI1ZDVkODk5MjdkNTY1MWNmMDE5NzkwMDU5ZjU0MzUwZDgzMTMgbGVnYWN5LXRydW5rCisxNzU4MSAxNzY2NjBmZjBjOTU5NjY5NDg5MDg4YzQyNDQ1MTMzNzI5NzY1ZDU2IGxlZ2FjeS10cnVuaworMTc1ODIgYmY0NmYxODVjNWU0YzBjMTYyNmZkYWM0NzJjNDUzYWQzM2M5NGM5OSBsZWdhY3ktdHJ1bmsKKzE3NTgzIGUyYzAzYzMwYjA2ZGRmYzZmZWFjYzgzZGJmN2ExMTlhYjI4M2E4ZGMgbGVnYWN5LXRydW5rCisxNzU4NCA4NzQ5Y2M4NDc5NzAyMjY1YTEyMDEwNDk2ZWU5ZDYxZjJkNTQ1NDE0IGxlZ2FjeS10cnVuaworMTc1ODUgZmZjMzAwZTlkODY3YmQxZDk4NDA3ZmQwNzE4ODkxYTYzYTcxZjFjNyBsZWdhY3ktdHJ1bmsKKzE3NTg2IGYxYWJlMDNiMmYxNjg0NjcyOThkYjBkMzVmODM3MTk3YmYwMmFlNTUgbGVnYWN5LXRydW5rCisxNzU4NyAzMzZhNjE3OWUwNTk3MjRkZWY4MDJkNTdhY2EzZDhlN2EwNmU4MTg3IGxlZ2FjeS10cnVuaworMTc1ODggODE0ZjQyMWUwMzI2NzMxNmQ3YjdkYTQyNzhiMzAyZDgyOGFkODE4OCBsZWdhY3ktdHJ1bmsKKzE3NTg5IDhhYTExMmY5ZTEzMGMzMmQxN2ZiODkxODQ4ODg4OWEwYzk3NjA5ODkgbGVnYWN5LXRydW5rCisxNzU5MCBkNDZhMDQzNmQ2ZTE5ODE3ZjNmZTA2ZjNhMDdkZGZkN2NkOGE5OGJjIGxlZ2FjeS10cnVuaworMTc1OTEgMmI5YTg5MDE2MmIwNTM4ZTQ3NDJkM2I0ZTA0NzJlNjRjMmFlZmQ5OSBsZWdhY3ktdHJ1bmsKKzE3NTkyIDdlZDA4MGI4Y2RhY2E3NzlhOGY3ZGNhZmRjNzJjZmM2ZmU2ZGM4ZmQgbGVnYWN5LXRydW5rCisxNzU5MyAyMjE0MDYyNjk1ZTc5OWU2OTYzNjVjZTNiY2JhOTkwMGQ1M2Q1NjE4IGxlZ2FjeS10cnVuaworMTc1OTQgNTcwNDM3MzQxYTA5ZDA3ZmZiNjJkNmVhY2QwZWY3N2E2ODVmMjQzMyBsZWdhY3ktdHJ1bmsKKzE3NTk1IDhiYjZkY2E2NmVjZGM0OGE3ZTVhNGI5ZmZiNmY0NzRiMDFmNThlMTEgbGVnYWN5LXRydW5rCisxNzU5NiBjMWRlMmMzZTQ1Y2E2NDY3YTIzYzllMjc4NTkzYzg4YmRjMTljMjMzIGxlZ2FjeS10cnVuaworMTc1OTcgZDczMmEzYTEzOThlYjA4ZmJhOWM3N2RhNmEzZjU2NjQzYzM3M2JhOSBsZWdhY3ktdHJ1bmsKKzE3NTk4IDhkYjA5NmI3ODJmOTczM2QyYmRlZWVlYTE4OWQwNjZiMDBiYWI0NjcgbGVnYWN5LXRydW5rCisxNzU5OSA0Zjk1Y2YxYjI2NjRmN2M3MmI5MWE0ZjZiNDMzNGYwM2YzNDQ5M2U2IGxlZ2FjeS10cnVuaworMTc2MDAgNzA5NDI3NjdkYzgxMGM4YmU1M2YwNWZlNzQzOTVkN2VlZTc5YjAzNCBsZWdhY3ktdHJ1bmsKKzE3NjAxIDAyOWZmNDZjNzk4YzdjMTE2NWIzZWM0ZjAyODU0MzQ2ZDMwZGYyZjMgbGVnYWN5LXRydW5rCisxNzYwMiBlMTU0ZTc5ZjRkMjJiZjk2YmQxNDM1NDdmZWM5OTg2MDdjNmRiNzVlIGxlZ2FjeS10cnVuaworMTc2MDMgOWY4YjIxM2I4NDE1NzcxMmUxNjg1MzE1M2NmOWM5ZjZlNzAzNWY2MiBsZWdhY3ktdHJ1bmsKKzE3NjA0IDZmM2ZkN2EyYTdiY2IzODNiYmEyNjNiMzI5ZWEyZDBhZGE5ODRhZGQgbGVnYWN5LXRydW5rCisxNzYwNSAwMGU4MTcyYWMwY2I5NTRiNTQ4NTZiODRiNzJiYTM3ZDlmMTU1ODRhIGxlZ2FjeS10cnVuaworMTc2MDYgZjg5ODRmMDNkZTIwMjUzMTkxZjVhNDkwMzJiZWEzZjZkM2Y2ZDk0YSBsZWdhY3ktdHJ1bmsKKzE3NjA3IDQ2YTY5OTA3NjlkMTcwYWI1NjYwNmY2MDAzYmRjMjI5YWNjMWY1MWIgbGVnYWN5LXRydW5rCisxNzYwOCA5ZmZjZjc0OWMxNWE5ZmJiYzY1ODgxNWNhZWJkZWVhZWU2YTM1ZWFjIGxlZ2FjeS10cnVuaworMTc2MDkgMmY3N2NiODU0N2ExYzAxNDJmNGExZTZlZTBmNDMzZjVlZTEwOGI2MSBsZWdhY3ktdHJ1bmsKKzE3NjEwIDkzMjA3MDc2ZDYxMjE4ZDBjZTlkOWY2YjBmNDc0MTBjYjU1NGRmYTggbGVnYWN5LXRydW5rCisxNzYxMSA2ZTkzMzFlNjhhM2JkNzhlOWY4NDVlNTJhYzU0M2UyYjRjNTdiN2JlIGxlZ2FjeS10cnVuaworMTc2MTIgYjRlYTU3ODcwZjJhYWM1OWQyMGNmZDAzMzg5M2E2Nzk2NWJmZDUwOSBsZWdhY3ktdHJ1bmsKKzE3NjEzIGE4NjU2OGY1NDM3NWRkYzQ4MjUwNWFmNzQzMTdjZTBmZjNhNTI5YWYgbGVnYWN5LXRydW5rCisxNzYxNCA1YTlkZmZmZjBkYTJiNDZkMDMwMTI5MjBjZDM0MTk5MTI2YjE1NzNiIGxlZ2FjeS10cnVuaworMTc2MTUgYjU0NTFhNjg3MmEyOThhMTc0MGM0YzYyZWMxMDkzYzk5MDk1Mzc1MCBsZWdhY3ktdHJ1bmsKKzE3NjE2IGM1NjZhYzljNTJkNzkyZWNjZDViMGY4MDc4YjdmNDE1YmRjMjUwMTQgbGVnYWN5LXRydW5rCisxNzYxNyA1ZjYzOGEyOTk4ODhjNzA0ZDdlNDJkZWU1OGQ4ODc3YzlkNjM2YWI5IGxlZ2FjeS10cnVuaworMTc2MTggZDI3MDU4NDA0OTgxMDYzNjM3NGE2MWE3MGU5ZDU4MzM5NDA1MDQ1NiBsZWdhY3ktdHJ1bmsKKzE3NjE5IDgyOGVmN2VjZDFmNzZjZDgzM2FjOGVlZWY5MTMwOTllYzE5NjY1NTEgbGVnYWN5LXRydW5rCisxNzYyMCA5ZmU1YzgyYzRjOGEwYjhjNGFlNDdiNmM3YTQzZDE3MTdiMWZkNzg0IGxlZ2FjeS10cnVuaworMTc2MjEgNzI4NjBlZjAzMTcxNDg2NzFmYWU3MGEyZmViZmFjZjYxYWVjNGYwZCBsZWdhY3ktdHJ1bmsKKzE3NjIyIDYwY2UzN2YwNjZkOGNlYTEwODJlYzZlNmQyZGFlYzM1ODVhNjQ4ZmIgbGVnYWN5LXRydW5rCisxNzYyMyA5MmFlZTMxZDc2MTM4YmE3NGRkODgyOGEyMmIyMmQzMzBiZDhlZTBmIGxlZ2FjeS10cnVuaworMTc2MjQgYWExOGU1MjM5YjQ2OWMzYmYyMDFhZTViMTdjYTgxYTdiYzQ0ZmU0MCBsZWdhY3ktdHJ1bmsKKzE3NjI1IDNmZmFjZjFkYzhmMDVmNmU5ZjkwZDJkMDc2NTQ5ZDE3YzUzNWI0NmMgbGVnYWN5LXRydW5rCisxNzYyNiAxMzMwMDc2NDZmYjQ3NzBmNzI0YzhhYmQwNWMxOGFkZjdjYzRjMTViIGxlZ2FjeS10cnVuaworMTc2MjcgNjQ4NjNjNTZjZThlM2U5MDkyNDUyMmNkZWQxYTg1Y2YyODRlOWQ2NCBsZWdhY3ktdHJ1bmsKKzE3NjI4IGM1ZWMwYjExZjhjOTU4MzhmZmYxZDYzNWY1ZTE2OGI2NDMyYjUxZTAgbGVnYWN5LXRydW5rCisxNzYyOSA1MjE3NGIwMDJmMWZmMzdmMzBhZDU1MTBjYmZhYzkxMjU3YjM4OGY2IGxlZ2FjeS10cnVuaworMTc2MzAgNzQ1NmM5N2M5OWVmYTA2ODY0NmQ4YmRiNzgxNDc0YWFlNjczNTE2YyBsZWdhY3ktdHJ1bmsKKzE3NjMxIDE3OTg3NzBjYTM2YjIwYWM3OWVjOGUwZWU3M2ViOGQyY2RkZWJmMGEgbGVnYWN5LXRydW5rCisxNzYzMiA2Yjc3MmM1MjdjYTc0Y2ZlNzBiOTYxYzg1NWFhZTJhZDYwZGQ5MmYwIGxlZ2FjeS10cnVuaworMTc2MzMgOGZhZTNmOTExNjFmOGViNGRiMmQ1NDQ4ZTg4MDIyOTY0ZjdlZDg2OSBsZWdhY3ktdHJ1bmsKKzE3NjM0IDdiYTQ5M2JjMjRhMGMwZjgxZjQ2OWZmYTJhOWQ2NDIwOWRkNGFmMmMgbGVnYWN5LXRydW5rCisxNzYzNSAwNjRlNDM0ZTc0NGYxNzI0M2YwZjI3MTM2NzA2NjJjZDczM2NhZjRmIGxlZ2FjeS10cnVuaworMTc2MzYgMDgxNjcxY2VmN2MxYjZkZmQxODc2MmRmNmZjYTMzYzQ3MzI0NWZiOSBsZWdhY3ktdHJ1bmsKKzE3NjM3IDNjMDFmOTIxYzQ1M2VjMzY4NDY0NzAzMzk1ZDUzOGIxNWQ4ZjBiMTcgbGVnYWN5LXRydW5rCisxNzYzOCA3N2VkZGRkYmI3Y2NmOTQxODc2ODg3ODIzZjViYjA3N2JmNjNjNDFhIGxlZ2FjeS10cnVuaworMTc2MzkgMDk4NWRkZmQ0NDJiZTliMDg4MjYwODEzYzc3ZDE4MGI3NzE4ZTI0YSBsZWdhY3ktdHJ1bmsKKzE3NjQwIGQwYjc3N2VjOWUwMjdhZGMxYmZmNWUyNDQzMzA1MWI2OWQ5NTdjZGIgbGVnYWN5LXRydW5rCisxNzY0MSBhZDBkOTMyY2NlMzJkNzYzZTdkZDk4MTQzOThmMTQ3ZmFjNGJiMjFlIGxlZ2FjeS10cnVuaworMTc2NDIgMWVkYjZiNmUzYjViNTk0MjM3NmU4ODFmNDgzZmJmZGQ3NjE3Y2M5ZSBsZWdhY3ktdHJ1bmsKKzE3NjQzIDE3OWUwOTgyMzhlODA5NjM5YmVlYzcwMzQ4NmZmZTIxMTM4NTZhZGYgbGVnYWN5LXRydW5rCisxNzY0NCBiZTJkZjk5MzVlZGQ4ZmExYmIxMDlkYzY4YTRhMWZlODRkYThjNjE0IGxlZ2FjeS10cnVuaworMTc2NDUgNDMyOTNjZjc1M2MxNWMwMWJmNTlhZGI3NTkxMzc4OTg4NTBiYTBkNSBsZWdhY3ktdHJ1bmsKKzE3NjQ2IGZmODhjNjRjZmYyZTUxOTVhMjFjZDhlMWM0MGZjYTNjMjk0OTg3NGEgbGVnYWN5LXRydW5rCisxNzY0NyBhZmJhZGFjNjBmZjc0YzhmMDE0MTFlZjkzY2QxNTcxNjNmNmM5MjJjIGxlZ2FjeS10cnVuaworMTc2NDggZmZkM2U5ZGE4OWIwZWI4ZjQ0MzE4ZTMxNjRjNWZjNGUxZDBlMDc2ZiBsZWdhY3ktdHJ1bmsKKzE3NjQ5IGMzNjAyYWU0OTg5MDY5ZDNhNTZjNjZjM2RiN2NjMWJmMWNlNzhkZTQgbGVnYWN5LXRydW5rCisxNzY1MCA3YzU3NGJmYTZlMTM4Y2YzZDJkNmE2MGU4MzE2MTZiNTE4MGFlNTBiIGxlZ2FjeS10cnVuaworMTc2NTEgZDY4MjhkZDlhOTI3MDU5NTEzODNlYzk0M2Q0YzJjOTBiZjU2YzgxNiBsZWdhY3ktdHJ1bmsKKzE3NjUyIGE5MGRhYzRiZjg4YTI0YTEwMGIwNmM3ZGQ1MWJjNDNiMzcwOGE1ODMgbGVnYWN5LXRydW5rCisxNzY1MyAzZTNjMmVmYzc5YzczYzAxYzljZWZjNzJkNjIzZTliMzlhMjVlYTY4IGxlZ2FjeS10cnVuaworMTc2NTQgY2Y5ZDhiZjU2ZDE0NTA3NWQ5NDExOTJhYjYzMjllODE4MjA2ZjMxYSBsZWdhY3ktdHJ1bmsKKzE3NjU1IGZjYTVmOGYxYThmNDcxZThkNDdjZGE5MjBmZWVlMDkzMTVmYzlhMGEgbGVnYWN5LXRydW5rCisxNzY1NiAyNTc0Mjk1NTQ1ZmY3YzE2MGQ5Y2EzZjZkODRhNTM2N2FmY2Q4MzhjIGxlZ2FjeS10cnVuaworMTc2NTcgMWQ3ODAzM2E1M2Q3NzJhMjc2ODBlM2MxMGVkMmE0ODQxOWMyOTAxMiBsZWdhY3ktdHJ1bmsKKzE3NjU4IDI5OTAyZjc3NDhmYTY3OGU5YmY0YWJkN2Y1NWQzMGE2OGY4ZDVlOTIgbGVnYWN5LXRydW5rCisxNzY1OSA3ZGEzNmY2ZmQ1NDRiYTc3ZjI1MWRlYTA5YTI3NzNkODEwYmNiNmI2IGxlZ2FjeS10cnVuaworMTc2NjAgNjk4NzNhMzBiN2M5OTczODQwMTU2ZGQ1NTQxMjkyY2VmMDZlZDlkZSBsZWdhY3ktdHJ1bmsKKzE3NjYxIDc0NjFlZGNkMjQ5ZDQ1MTI4NDU3NDc3N2RhMjY3MDgwYjU0YjA5OWQgbGVnYWN5LXRydW5rCisxNzY2MiA2ZGI2OTUyZDg4N2FjOWI1NzdmYzNjYWQzMDNhNDM3ODc2OTI0NmYwIGxlZ2FjeS10cnVuaworMTc2NjMgMDNlZWE3ZWE3ZTVjYmRiMmQyYWQ4MTVkMTIwZWQ0Y2FmODc4YWRjMiBsZWdhY3ktdHJ1bmsKKzE3NjY0IDRkMTBhMTM1NjhhYTNkOTUxMWE2YTI0MmYxZWJlODQzYmQzNzNlMDggbGVnYWN5LXRydW5rCisxNzY2NSA1MjNhMTJlZDMxZjBkZTNjMTc5MWQ3NDQ0ZmJiZjlkOGNlNzBmYTRkIGxlZ2FjeS10cnVuaworMTc2NjYgZjU2NTNhYWUxY2JkN2NjNzIwNTY1MWZlMDA0Mjg4MTc0ZjkwZGY4NCBsZWdhY3ktdHJ1bmsKKzE3NjY3IGQ1NDNkYWExNWQ3MTU4ODZkNmI2NjgyY2E3OWFjOTg0OGNjYzE5ZWEgbGVnYWN5LXRydW5rCisxNzY2OCBiN2ZiMTIxNmY2YjYyMjIyNzNlYjMxZGQxYjc5N2JhNGExZTY2ZGEwIGxlZ2FjeS10cnVuaworMTc2NjkgYjU2YTg4Mjc3ZThjZWY1OWVjMTliNDk5MTM3Mzg1MTY3MDkwYWI2ZSBsZWdhY3ktdHJ1bmsKKzE3NjcwIDRmZjg0ZTczNDU4OGZhY2QxODFlYmMxZGMxOTZmM2E4MWM4MmRjMTYgbGVnYWN5LXRydW5rCisxNzY3MSBiNDEzZTg3ZWVlZDQyMzczOTBhYjJhMzVlYzE4NjUwMjlmZDIxMTg0IGxlZ2FjeS10cnVuaworMTc2NzIgMGRkMjA0ZDkzNmUxNjM1MjI2Njg0YTc5ZTUyOTFlZjE0ZDcyZmYwMCBsZWdhY3ktdHJ1bmsKKzE3NjczIGM5NWM2NzZiMTg0MDcwMDQ1YmVhMTIxMGE5MGZiMzk3OWY5NmE4YTEgbGVnYWN5LXRydW5rCisxNzY3NCAxODJkODI0ZjJiNDczYmUwODM5OTZlZDc2NjIwNzA1MjYzNjBiMzI2IGxlZ2FjeS10cnVuaworMTc2NzUgMDc5NjM0MjFmYWZjYzlmZTU0NDg1MDEyZTFhYWIyM2RlZDQ0ZjQ2OCBsZWdhY3ktdHJ1bmsKKzE3Njc2IGM1MzY5NWYzZDg0MGQxNGFjMzgwZWFjOWVhNjBiZjEyNDE1ZWNiNjkgbGVnYWN5LXRydW5rCisxNzY3NyAzZTM5M2Y5YjEyOTM5MjY4MjA3ZTM5YjMwYTM2NWU5M2QxOWNkMDRjIGxlZ2FjeS10cnVuaworMTc2NzggNDk0NGUzODU5YTg2MDllZDM2MDdkNTM3NTY2YWM5YzkwYTM1ZjNhOCBsZWdhY3ktdHJ1bmsKKzE3Njc5IGExMDMzMjgzYTI1ZGM2MGJkZjU1YjFmY2EwNzczZGNlMDc3M2NlMmQgbGVnYWN5LXRydW5rCisxNzY4MCA5ZmQwMzBhZjJmZTAzOWFjZTRiOGI0NGI1MTM4YTRlNDBhMGFhY2ExIGxlZ2FjeS10cnVuaworMTc2ODEgOTJkY2VhMDg1OTMwNTg3NmZmMTZjMGVlMjhjOWYxMjAzNDA4MTgwYyBsZWdhY3ktdHJ1bmsKKzE3NjgyIGIxYTBmYjU1NDQ1NmNhZTBhMjY3MzYyMzU4NzFiOTBjNDAwNTI2MTcgbGVnYWN5LXRydW5rCisxNzY4MyA5Zjk2YzkyZjAzZTNiZTZjM2IxNjg3YWZiNzIxZTI2NzljYTI1ZmNkIGxlZ2FjeS10cnVuaworMTc2ODQgYjFmMjIwZjYzNmVkZDFlOGNjMDFjYTI4NzdkNGRmZTBlMWRjNTI2NiBsZWdhY3ktdHJ1bmsKKzE3Njg1IDA3Mjg4ZDJkYjU5NjQyNDZhY2EzOTZiNzRmNTZjN2ViY2UzMWIxYjcgbGVnYWN5LXRydW5rCisxNzY4NiAxYTFiNzk1ZjBjOWI5ZWRkMGQ4NDIxZTY5ZTU1ZjdlYWJlYzU2MmViIGxlZ2FjeS10cnVuaworMTc2ODcgNTRhZGI3YjRmOGM4NGRlOGRjN2JiNTNiZDg2NGU3ZDkzYTBiNTJkYiBsZWdhY3ktdHJ1bmsKKzE3Njg4IGVlODEzZTg0M2YzZTU3MGUzNmM3ZTk3NDQwZDAyODJiNmY5MDcyNmIgbGVnYWN5LXRydW5rCisxNzY4OSAxZDYyNzI0MmUyOWEyY2ZiNmFjZGNkZTg2ZDgxNGE5M2MyYTFhZjg5IGxlZ2FjeS10cnVuaworMTc2OTAgOTZkMzFhMTQzODU3Y2Y4YjVmMzU0OTRiNzgzMmFjM2MzMDZkNTVhMCBsZWdhY3ktdHJ1bmsKKzE3NjkxIDY3ZTBmZjRhYTdiOTc3ZjFhYjU2NWExZjVjMDNkNjNkMzA5YmFkZmQgbGVnYWN5LXRydW5rCisxNzY5MiBiNzc4N2E5MDUyZTNkMDgxZDAwZjY5OGYxODc0MzY5NWMxODVlYzc3IGxlZ2FjeS10cnVuaworMTc2OTMgNzZhYWQ1YjA2NTQzYWZjNzQ0NGNiN2E3OTZiY2I3NjljMWU2Mzc4MCBsZWdhY3ktdHJ1bmsKKzE3Njk0IDNiMGNhMGNjMzc1MGUyMjMzYTFiYzg0MGU5MjI4OWNjMzUyOGQ4YjEgbGVnYWN5LXRydW5rCisxNzY5NSA2MjVhOWE2OTU0NjliNWNjNGJlM2M5NTRiYjdkZGM1NTQ3MGRjZGYyIGxlZ2FjeS10cnVuaworMTc2OTYgNjgxODkyODU2NThmMjI4ODBmZjUxZGFjOTlkNjc1N2QxNWQ0ZDkwZSBsZWdhY3ktdHJ1bmsKKzE3Njk3IDQ2MGFiMTlhMzI4OWJiOWY3M2FmY2MxMDFlNWEyYWZmMWQ3NzQwOTggbGVnYWN5LXRydW5rCisxNzY5OCA5NGMyNDZlNjM5OWQyMjAxYTM4ZDFmNjkxYjE3ODQ4NWQ4ZTNhMGVkIGxlZ2FjeS10cnVuaworMTc2OTkgZTdkNjc4OTkwOGQ3MDkzNGIzYzkyZGFhMWExYTZkMTAwZTkxNDNmYSBsZWdhY3ktdHJ1bmsKKzE3NzAwIDg4ZDNhODk3NDQwOWVlNzJjNjI5MjU3ZWQ3ODg4NWQ2Y2JmNGFmZGUgbGVnYWN5LXRydW5rCisxNzcwMSA0NWVjNWRmOWE2MmQzMWVhZDU1MjlmMmM3YTNkNmI4NGIwNWI0MTVlIGxlZ2FjeS10cnVuaworMTc3MDIgZjZlNTAxZmMzMmM3NzFkZmVmNTRlMTE5NWUxYjU5NmY3ZGRlOTU3MiBsZWdhY3ktdHJ1bmsKKzE3NzAzIGU1MmMyNDMxOWFlZjUxOGI0MzBlNzc3MDQ0NTk5YjEyYTc3NGJjNTEgbGVnYWN5LXRydW5rCisxNzcwNCA5MmNkYmMwZjU1ZDUwMzJmNjRmN2FkZDBkMjc2MDA2YWU5Y2VlZjYyIGxlZ2FjeS10cnVuaworMTc3MDUgYzhjYTkzMTA3ZjJlZGM0ZmY4OTg2OTY4Mzc1MjY1OTUwZTliMTc2MyBsZWdhY3ktdHJ1bmsKKzE3NzA2IDU0NDkzMDJjNGQyZTE0OGQ0N2VkMTllZjAzNjMwZjRjMWZkODFjZTQgbGVnYWN5LXRydW5rCisxNzcwNyA0NjNmYWYwMTY4NWU3MTI3MTgzMjU3MWJlNWRlMzM3N2NlYjQxMGFlIGxlZ2FjeS10cnVuaworMTc3MDggMTI5MzQ5MmRmZTYwM2VhNGFiNzdhOTI4ZTM1ZmEzNTY3ZjY4YmY4MCBsZWdhY3ktdHJ1bmsKKzE3NzA5IDg5YmM4NDc1ZmM4NGUxNzBkNjYwNGY4NmY1ZDE1YmVhY2JlZDMxZGEgbGVnYWN5LXRydW5rCisxNzcxMCBhZTEyYjhjM2MzYjMzYWI2ZjA1OGE3ZTQyY2E4MTE0OGIzOWE5MzdiIGxlZ2FjeS10cnVuaworMTc3MTEgODNhZmYxZWE1YjcwZGU2NTI0ZmRhMTE3MWM4ZWFiYTM3ZTkxZTBhMSBsZWdhY3ktdHJ1bmsKKzE3NzEyIDZlZGE2YTFhNjkzYzU0NzI1ZTUxNzFjYmE4NmQ4NzYxYmE2MDdjMDkgbGVnYWN5LXRydW5rCisxNzcxMyAxNjYxMTllYzMxOTU1YjU5ZTU3ZmUzY2IzOTc0YjEyODJjYWZjMTIxIGxlZ2FjeS10cnVuaworMTc3MTQgZTk3NjYwZDFmMWFhZWIxMmUzY2YwYTU2OGVjOTljMTI2NDM3NWMwOSBsZWdhY3ktdHJ1bmsKKzE3NzE1IDE4YjNkZWY2YzRiODI3NjJjMzYwMThmNjlmNzQwNTIzNzQ0MTVkM2IgbGVnYWN5LXRydW5rCisxNzcxNiAwOWMxNGFlNWMyZjU0MzU3OGI4Y2MxOTY1ZWJkNWE3NTcwN2Y0Yzk0IGxlZ2FjeS10cnVuaworMTc3MTcgNWI4Y2RhNmYzYjVmNjllYzI0NzMwNWEwNGU5MGQzZmEwMzViZTY0OCBsZWdhY3ktdHJ1bmsKKzE3NzE4IGMzZjBkNmYxOWY3YmZmYzNkZDYzNDBmZDk3OTk5MjFmYTEyYTA1YmUgbGVnYWN5LXRydW5rCisxNzcxOSA1NmZkYTRlOWVjZTlmN2MyMjg4ODEwNGVlMmMzOTFjMDU4ZDdjNWNkIGxlZ2FjeS10cnVuaworMTc3MjAgNWJhZjdmNzQzOTZmMWRhZmMyZjhhZmE2ZTEwOTZhNmVmY2ZiYjUwYiBsZWdhY3ktdHJ1bmsKKzE3NzIxIDRjMDg5YWQyOWVlYWM0NWE0YTlkZDZhY2Q5NWJiMWQ4MDZkYTVmMTggbGVnYWN5LXRydW5rCisxNzcyMiBjODkyZTZhYTk5OTc2YzgzMDE5M2Y0MGM0YTQ3YWM5Njc4MTExYWIxIGxlZ2FjeS10cnVuaworMTc3MjQgYjY4MDA2YTU2NDcxMTZiMDFjNDI2MTE0OTI4Nzc4YzEzMDQzMzQ5YiBsZWdhY3ktdHJ1bmsKKzE3NzI1IDI1ZGRkM2RjN2E3YTJlNGQ1N2MzMmM0MGU5YjBiMTQ0YjQ5YTdiYzkgbGVnYWN5LXRydW5rCisxNzcyNiBlMzVhM2E3NzJkY2E5ZWZiMjU2ODY1YzJmMDZjZDcxYjA0MTFkNGNmIGxlZ2FjeS10cnVuaworMTc3MjcgZmI2YjUxMDMzYzNiNjBlMTE3NmUxNThkNzNiMGU0YWYxY2Y2NzE0MyBsZWdhY3ktdHJ1bmsKKzE3NzI4IGFjMTRiODZmMGY4YjhmODBlZWE1MmRhMDg1MGM1OTZiNDNjNmY0ZGIgbGVnYWN5LXRydW5rCisxNzcyOSBhOTNiMmYxNzZhNWUyZjE1ZWM5MDFlNGVkMWVjY2I0MWRmOWNkOGE0IGxlZ2FjeS10cnVuaworMTc3MzAgNjQzMWNmNWM4YTAwNGM2NjY1MWM0ZjQ3OTA2MTIwOGE1NTNkZjM2OSBsZWdhY3ktdHJ1bmsKKzE3NzMxIDE3YjVjNDNjMDhhNmM0ZDhhZWYwYzZkNjFmOTc2ZmIyM2RlNjc3ZTIgbGVnYWN5LXRydW5rCisxNzczMiA3M2ZkZTQ0NTYzZDFlZjkyOGQxZWYxYTJjNjBiOGQ2NTkwOTVlZDhmIGxlZ2FjeS10cnVuaworMTc3MzMgNzk4NmE0NTUzOTMwYjI2MzAxZTcwYzBkYzQ4YzNhOGZiYTU2MmU2NyBsZWdhY3ktdHJ1bmsKKzE3NzM0IDY4ZTIzZjFmZjVkYjdhMjg4YzNkNmZlZDZkOWE5YmNhOTE4ODkyMzMgbGVnYWN5LXRydW5rCisxNzczNSAyODA5NjYyYWU5Y2UxODM4NGU3Y2FjNmI3Y2Q3ZDU4ZTc5MjgxYWIwIGxlZ2FjeS10cnVuaworMTc3MzYgM2E1OWEwNzMzZGY4YzE2ZmEzZTE2Yzk5ZTBhYzRlZmEwNGRhNmE4YyBsZWdhY3ktdHJ1bmsKKzE3NzM3IDVkMDg5MDk1ZjQwZjVjZTY1ZGIwY2Q0NjdlNzcxZDFlOGU4N2EyMzggbGVnYWN5LXRydW5rCisxNzczOCA1MjhiNTJiZDRiYzMyZWQyM2ViZWYzNzcwYmY2YjhkNDRlY2EwMWZlIGxlZ2FjeS10cnVuaworMTc3MzkgZDZiZGNiMDg5OWRkYTkwZGYzMTE5YzZiMmY2MmZiNjljYTVmM2UzOCBsZWdhY3ktdHJ1bmsKKzE3NzQwIDk2OGFlNTVmZTZlZWFiMjhkMGZjODgyZDFhNzBjZmZlNjBjZDhiY2UgbGVnYWN5LXRydW5rCisxNzc0MCA1NWJiYTE5N2Q0ODcwY2RhZTYyYWVjYTAwZTIwMjQwYTc1NmI4NGY4IGxlZ2FjeS10cnVuaworMTc3NDIgZjY1NzkzMGZkMjc0YzNiODFmMmRhNTQwOGMwNTA1MjJiZmU5NzJkMSBsZWdhY3ktdHJ1bmsKKzE3NzQzIDRmZGY2NjAwZDhhYTcwMTBjMjlmZTI0NTY2NWNmZDQzNDMwZTdiNGEgbGVnYWN5LXRydW5rCisxNzc0NSA2NTM3NDkwMDNkYjk3NjM5MDJjYzgyMjFjMzY4NTY3MmJjZjc2NzAzIGxlZ2FjeS10cnVuaworMTc3NDYgYzdmNTU1NTFmZTMxYmNjYzBiMWJhMzg3ZGFmM2U5ZWIwMTgzOTk2NCBsZWdhY3ktdHJ1bmsKKzE3NzQ3IGFmZDdlY2UzN2M0Njk1ZWU2OWY1OWNiZTYyMDc5N2E5YzgzNTk0MWQgbGVnYWN5LXRydW5rCisxNzc0OCBlNDY0MWQxOTMyMjBmMzg2YzBkOTdhNzM4NTY3NGQ4OGQxNzdlOGQzIGxlZ2FjeS10cnVuaworMTc3NDkgMTk2N2JlMTM1OWVlNTk4YmE5MzhkMTFiOGYxZTY1Y2E1MzYxODdkNCBsZWdhY3ktdHJ1bmsKKzE3NzUwIDgzNDA2MmY2OTVlMGYyMWM3NGI5MDE3ZWE5MjY2MDA0YTc3NTgzYjggbGVnYWN5LXRydW5rCisxNzc1MSBkZTE4OTJlYWNjZmZhY2FiZWVjMDg4OTA1OWZlODg5MWY3MWI2ZjE3IGxlZ2FjeS10cnVuaworMTc3NTIgNDIwZDNjNTdlZmVjNzM4NzRlZGE3YjJkZjAxOTVhYjU2NjAwOTRjNSBsZWdhY3ktdHJ1bmsKKzE3NzUzIGFkOThjMTM2NDc1ZTdiMjM3MzJiOWJkODg3ZWRjZTkxNzNkNTgwMzYgbGVnYWN5LXRydW5rCisxNzc1NCA0MTExY2YyMmEwYWQ5NDFjYTJlNDUyOGQ5ZWY5NTA0MzQ0ZmM4MDQzIGxlZ2FjeS10cnVuaworMTc3NTUgNGJlYTRmNTljNGU0M2M5YzVjNGE2MjY1M2I4ZmU0MGRmZjdlYWQ4ZSBsZWdhY3ktdHJ1bmsKKzE3NzU2IDYwNmE4MDgzNGE4NjIyMzhjN2NhOTdjZTVhNWJiNDRhOTM2M2JmM2UgbGVnYWN5LXRydW5rCisxNzc1NyBmOTMyYzEyODI3OWJjZjNmYzQ3Nzc2ZjcwOGNkZDQ3ZGRmNGQ5MmJmIGxlZ2FjeS10cnVuaworMTc3NTggMjkxYWJlYmVhNTViMmVkN2M0MDhlMWEwOWQ1NzY0Mjk2OWRiZjA5MCBsZWdhY3ktdHJ1bmsKKzE3NzU5IGVjNzU2ZDU4ZThhNzBlZmE3NzVkYjRmNTM1ZWEyNzYwMjc0ODFlYWEgbGVnYWN5LXRydW5rCisxNzc2MCBmNGExZDNmOGYyNjI4OTc3MDNiMDVmMGU1ZmM3N2I4ZGM2OTAzZWE3IGxlZ2FjeS10cnVuaworMTc3NjEgYjE1ZmNlODY4ZTUwYjc3YTA2OTk0N2VmNjEyZmI4YjllNTVjZDI3MCBsZWdhY3ktdHJ1bmsKKzE3NzYyIDQ1OTY3ZmYxYjZkYzE4ZTU3MTBkMDYwMWY1NGY2ZGZjNzhlN2UxZDMgbGVnYWN5LXRydW5rCisxNzc2MyBhMGExM2YxMGNlNGJmNWNlY2MyNWRjYzBjMDI2YTM1MGM4NjMzMDA0IGxlZ2FjeS10cnVuaworMTc3NjQgZDAxMzk0YjBhYTY5ODgwYTRiNWQ1OWE5YmQ4ZGFhNGNjMDNhMTgxMCBsZWdhY3ktdHJ1bmsKKzE3NzY1IDhmNTliZDk1Nzk1MjU3NzY4ZTljZWYyNjI3MDM3ZmE2ZjdhNmVlOWUgbGVnYWN5LXRydW5rCisxNzc2NiAxMDE4NzI3ZjMyMzE3NmNhZmQwZTJlYzkxYTlhM2QyMTNmZTY1ODYyIGxlZ2FjeS10cnVuaworMTc3NjcgNmZiMmFmNzY2ODkyZWI4N2JiYjNkNmM0MmMwZTIwMjFjYTJlMGZkNCBsZWdhY3ktdHJ1bmsKKzE3NzY4IGFmOGQ3N2FhOTBmODg1ODcwYjdmNGVlOTMyY2U1OWU4NzQ4NjUyZTggbGVnYWN5LXRydW5rCisxNzc2OSAyY2RmN2FjOTE2MmQ5MzUwNGRlMmVkZTY0YTdmNWU4ZjQyY2E0NjEyIGxlZ2FjeS10cnVuaworMTc3NzAgYTA2Mjc0OWI4MGY4YzUwM2VlNGNkZWU3ZWYyODIyMTgwY2I5MDk4YSBsZWdhY3ktdHJ1bmsKKzE3NzcxIDc5Y2RlZWVlZmFmYTU3NTVlOTMxMGJjOTg2ZjBjNWU4YTI0NDU4MDEgbGVnYWN5LXRydW5rCisxNzc3MiBlYTJiYTkxMGU1ZjA1ZmU2Y2FjY2JjMDY2MWIyNDFiMGE4Y2VhM2UyIGxlZ2FjeS10cnVuaworMTc3NzMgYWFkMmI1YTNmN2JmNGMzN2FhMjE3ZTI1ZGU0Yjc2YjI0NDAyODU1OSBsZWdhY3ktdHJ1bmsKKzE3Nzc0IGNlZmIxOTEwYWQwZDdiODRkZmIzZmQ5N2NhZDc0YWY4NTI3OWQ4MmQgbGVnYWN5LXRydW5rCisxNzc3NSA5MTRhZTdmOWM2NGNmN2YwMDYxNGIzOWM3MWFlYzA0ZGI2NzE0ZDhhIGxlZ2FjeS10cnVuaworMTc3NzYgOTViMjAwMTliNzExNDU0YzQ3NTdjN2NkNjViZDU3MTcxZDMyMTgwZiBsZWdhY3ktdHJ1bmsKKzE3Nzc3IGZhZDgyNDdlZjBhNTJkYTczNGM3Mjg4ZjVlYjkwMWU0OWYyZGM1YzMgbGVnYWN5LXRydW5rCisxNzc3OCAzZGI4YjgwMzFhNmE0NzQ0MTg0MDU5ODQ5N2JkYzZjOWI2ZGY3YjZkIGxlZ2FjeS10cnVuaworMTc3NzkgOWE4NzAwZmRjNTJiZTgwNjBmMzdkZjk3YmQ3NjQzYjA5ZWI5ZmNkYSBsZWdhY3ktdHJ1bmsKKzE3NzgwIDc1ZjNkNWU3Yjg5Y2EyZTE4NWFjMDMwMTlmMjk0NTA5ZDMzNmY2ZjUgbGVnYWN5LXRydW5rCisxNzc4MSAxNTM1NDFmODI0YTM2Mzk2NzkyNTc2ZjFlMGM2NjI2NmY4ZDFlMmM5IGxlZ2FjeS10cnVuaworMTc3ODIgYjRmNzQ0ODJmOWFmZTEwNzgwMzA2N2E3ZGQwNjIwOWZkZTNjZWJlYiBsZWdhY3ktdHJ1bmsKKzE3NzgzIDc2YzFlNDBjNWM1ZGU5MDYxZTQ2MGE2YjhhZGNlZmY5ZWRiMmY5OTkgbGVnYWN5LXRydW5rCisxNzc4NCBjOGYyMmYxNTQ5OWY4YjE3ZGU2NDE2MTk4MjBlMTAyOTJjMjk4MTBkIGxlZ2FjeS10cnVuaworMTc3ODUgMmVhMjk3ODY5YjAyNzFlMGViNTE5MjhlNDI3NTI5ZTMwMDZmOTdjZiBsZWdhY3ktdHJ1bmsKKzE3Nzg2IGFmMWRlNGY1MDUwODliMzQ2Y2Q0N2ZjODVhMTMzZWNiNmU0NjViYTEgbGVnYWN5LXRydW5rCisxNzc4NyA1NjEwZWNkMDdkYzAzNmU0YWEyMWI2MWVjYWNlZmRjYTE1Y2VlMGI2IGxlZ2FjeS10cnVuaworMTc3ODggMGM5M2QyZTI3YWMwN2MxMzAzOGRjYzdhMTc4MTdlNDAzYzAxZTJhYSBsZWdhY3ktdHJ1bmsKKzE3Nzg5IDgyN2U5ZDIxYTc4MTY0ZGVmYjNjOGE1ZWY3MjY4NDE5YmFlYzhkZGYgbGVnYWN5LXRydW5rCisxNzc5MCA3MTVhM2U5MjQ3MzcxODI4MDZhOWI1MDcyMTgzM2NlYTM1ZTBiMTZhIGxlZ2FjeS10cnVuaworMTc3OTEgM2RhOTlmMGMxODRmMjZiYTRjYmU5ZmY0ODg0OTlkMjkyMzhhNjUxNiBsZWdhY3ktdHJ1bmsKKzE3NzkyIDEzNDg4NTM5ZjAyYmZlMjhiYmFhZjFiM2Y0N2Y5MGFmYzY2ZTVjNTkgbGVnYWN5LXRydW5rCisxNzc5MyAwMTFkZjI2NDdmNDEzZDJkMTVkZDg0ZDc3M2NiODA0OTIwZjU5NDBjIGxlZ2FjeS10cnVuaworMTc3OTQgZmQ3Zjg3OWFmZjgxYzVhYmNkM2Q1YWJiYzkyYmZlMTE0NGExMThlNCBsZWdhY3ktdHJ1bmsKKzE3Nzk1IGMxMjg3NWRlZmMwZTRlMzk2MDdmMzA0ZThiMTk1YTU3YmJlOTVhMDAgbGVnYWN5LXRydW5rCisxNzc5NiAxNjI5ZWY3MzhiMmYwOTY3ZmIzMzkwNDQ5OTUwOGE2OGRkZjNjZTVmIGxlZ2FjeS10cnVuaworMTc3OTcgOWNlYTRkYjQxZDlmYWZlZWQ0ZmM0M2Y2YzY0OGU3MGRiYjk1MTJmMSBsZWdhY3ktdHJ1bmsKKzE3Nzk4IGY5Y2Y2MTEwOTZiZjUwMmY4ZmQ3OWIyNTk1NWU4NjAwYzMzNTZmYjkgbGVnYWN5LXRydW5rCisxNzc5OSBlMTVlOTdhNmMxNGE4MzQ2NTE4M2Y3YzlkNGNjMTQ0N2IwMjZlYmRkIGxlZ2FjeS10cnVuaworMTc4MDAgMTk5MTllMTQ2ZmY4ZjMxYjVlM2ZiY2E5Y2I3YjZhZWRkZmUyMDE2ZCBsZWdhY3ktdHJ1bmsKKzE3ODAxIDc1OTJmNzIxOWI3YzZjYTFkMTEzNTc1ZjI5MWE4OTJjZmNiM2Y1YWYgbGVnYWN5LXRydW5rCisxNzgwMiBhNTk2MDBhOTc1ZDEyNDcwZDJlZDg2ZmM0NDUyNGU1OTQ2OGJkZjdhIGxlZ2FjeS10cnVuaworMTc4MDMgOWU0NDVkZGNhMmQ3NGEwMDE4MmVhOTI1OTYxYzBiZWM1Y2RmYWU5NSBsZWdhY3ktdHJ1bmsKKzE3ODA0IDczY2VhNTk2NTdiYWJjN2U2M2Q2Y2ZiNmUzZGI5ZjI1MzM4NzkzNzcgbGVnYWN5LXRydW5rCisxNzgwNSA3YWNiOGJiYzIxNWJiNzJhMzMwODg2MzJiZmQ5OTNlNmE4MjBkMGM1IGxlZ2FjeS10cnVuaworMTc4MDYgMTRiNjQ3ZDU1MGQzNzkzMWE5MjEwODVjNDYzOTM2MDMyNTJjYThlYiBsZWdhY3ktdHJ1bmsKKzE3ODA3IGY4YjUyNmZjMzlmNjdmZDI2NDE5MTgyNDNlOWVhZTk3ODFhNjViYWEgbGVnYWN5LXRydW5rCisxNzgwOCAwMDVhMGI0YzM4MmQzNWY0NWRkNmIyYzEyMzU3YjFjNzQ0MjdmNjc3IGxlZ2FjeS10cnVuaworMTc4MDkgNmU3MDUyNDczNzc4NmIzNWUyNjI5YWUzM2E4NTNhMjMyNzk4MzUyZCBsZWdhY3ktdHJ1bmsKKzE3ODEwIGQ5ZTY2YTgzZTQzMzg0YTYzNDFlNzYxYTA2NWRiMTIwZGIyZjdhYWQgbGVnYWN5LXRydW5rCisxNzgxMSAzNDI0OTdhZDhmZWM5NzYzMmQ0MGUyOTY0ZGFiNTM4NTJhYjBkZTE4IGxlZ2FjeS10cnVuaworMTc4MTIgMWY5ZDIzNzc3ZmQwMTc0NDllYjI4OTE5NmRjNTRhYzkxYWExNzkwYSBsZWdhY3ktdHJ1bmsKKzE3ODEzIGM3OGU3NmE1NzFiNjVkYjkzOTJiMjAxMmIwMmJlZjNiNzE1OTZhMzkgbGVnYWN5LXRydW5rCisxNzgxNCBkYjFjY2UxZmZiNjA4MjY4MTE1M2I2MjYzMjZkNDhiOTk4OWY4YmU5IGxlZ2FjeS10cnVuaworMTc4MTUgNTAzODZjNzNiYTIyNWQyOTg1ZmQyNjUwNjQ1OTRiYTllNDlkZDhmMiBsZWdhY3ktdHJ1bmsKKzE3ODE2IGIwMzFhYmNhM2U5MWFiZTA1ZDNlMDYwYjlkNTI4YTBkNGE4NDE4NmYgbGVnYWN5LXRydW5rCisxNzgxNyA1NjkyMTRhNDE4MmM5M2U0ZjNjMjY3MWIzOWI1YWZiYTc1YmZlMWJkIGxlZ2FjeS10cnVuaworMTc4MTggZWJhZWIxOWUwMzgwOWI4ODYxY2JkMmNmMWIxZGVlMWE0NDBkZTY0YyBsZWdhY3ktdHJ1bmsKKzE3ODE5IDljM2FlZmE1Y2Q3ZjU5MzJhZDM0Zjc4MDYzOGNhMjJkZWMyMmQ2ZmEgbGVnYWN5LXRydW5rCisxNzgyMCA3M2QwOTMyMmYyYzM2MDA3NTQ3ZjE1NjBjYTkzMzc4NDE0OWQ0NDcxIGxlZ2FjeS10cnVuaworMTc4MjEgNTRlYzVlYzMyMzUyZjBlYTg3YjNlNDhhYWE4YjQ5MDE0ZDIyNWUxMCBsZWdhY3ktdHJ1bmsKKzE3ODIyIDFhYTM3MDA4ZmQyYzgyNWUxMGFiNzg0MjUyMmQwMzAyYjE0ZTRiNTMgbGVnYWN5LXRydW5rCisxNzgyMyA5MzE0Y2M3OWQ2ZTEyZTdjMWRhZmRlYTY1NDQxYTEyYzY5YzU2YzI4IGxlZ2FjeS10cnVuaworMTc4MjQgMzE0ZWI4ZjdhZTEzNTI5YTU3OGQ2Y2JjZTgxMjA4OTg0N2U3MmIzMiBsZWdhY3ktdHJ1bmsKKzE3ODI1IDUzMzY5NDZiNjQ5NWExNjQwZWJiMmQwYjc5NmQ0OGFjNGQ3ODY5MzIgbGVnYWN5LXRydW5rCisxNzgyNiBiNDExMjM4ZGU5ZDEwZjEyYTE4MmJlNWQzYjVhZjdiMmY2OGY0YWY0IGxlZ2FjeS10cnVuaworMTc4MjcgNmFmOWFhMTU2NDdmOThmNzg3NDcxOWY4YjBlODlhNGI0NmM0MzhhMSBsZWdhY3ktdHJ1bmsKKzE3ODI4IDMyZDI2M2Q0NDdiN2UxM2E3NmI1YmJhMjA4MDMyNjM3N2YwMWU3OTMgbGVnYWN5LXRydW5rCisxNzgyOSAzZWVjZGEyYmE5M2EzODQ2NjYyMDI3NjVhMDRhZjBmNzllMTc0Njc0IGxlZ2FjeS10cnVuaworMTc4MzAgNDhiNDVhMjgxMjc3MDAxNjE4NGRkZjRlZWY1MGU2ZjQwNzk1NTE0OCBsZWdhY3ktdHJ1bmsKKzE3ODMxIGM3OTA3Mzc5YTZiZDIyODUzZDA2NzQ0ZmRkOWZkMWM4ZTQxZDEyNmUgbGVnYWN5LXRydW5rCisxNzgzMiAyN2VhYjgwMzI3NjYyYTdlZTU1ZGZmM2IxMTJkZjk4NmI3NzU1NzA2IGxlZ2FjeS10cnVuaworMTc4MzMgODM5YmEzNWIwYWEzMTQ0Mjg1ZTQxOTIwMjVjNmEwMTE3OGRjMTBkOSBsZWdhY3ktdHJ1bmsKKzE3ODM0IGIwMTJhZWJiYmU1MTc4ZmEwZDkxZWNiMTUwZGU0YzNmY2Q4YWJiODcgbGVnYWN5LXRydW5rCisxNzgzNSAxNzRkMzRlYWM1MTYzYjljOTRjMTIyNzdlZTNlZDQwMWM5YTJmN2JiIGxlZ2FjeS10cnVuaworMTc4MzYgZTc5ZDA3YzI0NTcxZTM4ZTIxOTljN2U5YmYyYjY0MDI5Y2QwN2QwYSBsZWdhY3ktdHJ1bmsKKzE3ODM3IDI2ZDJlNGY1OGFkY2E5NzBiZGRmOTk4NDQyM2NkM2Y0OGRhNTUwYmIgbGVnYWN5LXRydW5rCisxNzgzOCA4MjEyM2NlMDI2ODRmZTI1MDFmZGJhMjViMzEwNzY3NDliYjdhYTkzIGxlZ2FjeS10cnVuaworMTc4MzkgMGZhNThmZWEzMGNmMjE2YzIzN2YyZWYyZWNlOGFlOTFkYjIwYTc1MiBsZWdhY3ktdHJ1bmsKKzE3ODQwIGI2MWNkMWE0ODk2MDNiYzQ3OWY2ZGIyZTc2Y2VkM2ZiNjVhYzQ0ZWQgbGVnYWN5LXRydW5rCisxNzg0MSBlY2U2YzE5ZWRjYzE1NWI0ZmY3YzRiZmU2NWU3NDJkYjU4MGI5Y2ZiIGxlZ2FjeS10cnVuaworMTc4NDIgM2ZjNmM1YWRkZjFlYzFhYzI1NjNmMGJmYzU5NDQ3ODY3ZTQ2NzQyMyBsZWdhY3ktdHJ1bmsKKzE3ODQ0IGE5ZDI0YTUzYzU1MzM0ZGEyMmFhYmNiMDY3ZTE3MmE1NzM3Yjk4ZDYgbGVnYWN5LXRydW5rCisxNzg0NSBiYmUwOWNjY2I0OWJlMDcwNGYwODAwNjFlZjRhM2I4OTljYTAzZGEzIGxlZ2FjeS10cnVuaworMTc4NDYgZTg1NzU0ZmE2OTE3NGZhNzJlYzYxNGIxNzJhY2JhMDljNTJmMDFjOSBsZWdhY3ktdHJ1bmsKKzE3ODQ3IDJiNDIzNjU4MGUwYzRmYmEwZTZmNmY4ODNlYjFhZjFjOTU4YmMwOWYgbGVnYWN5LXRydW5rCisxNzg0OCBiYjZjY2E1N2ViOGIwYzk0YjE2Njk5ZDhjYmU0OWU0NmY1MjljM2ZlIGxlZ2FjeS10cnVuaworMTc4NDkgNWQ0MWNhNDlhMTBhZGMyZThjYjJlOTY4ZmYxMjQ5NGQ5ZGI2N2JkOCBsZWdhY3ktdHJ1bmsKKzE3ODUwIDRjNDkzNGNhODU3OTYyMGUyMWI4MzI3YzBmYzMzMjcyY2NkNDdhNWIgbGVnYWN5LXRydW5rCisxNzg1MSBmYTVjNDgyMzY3YzdhZjUwMzhkZWJlZmY2ZTdjODQ3ZDNmNzkzMmY2IGxlZ2FjeS10cnVuaworMTc4NTIgN2Y0ZTI4MDQ1ZGZiNDU4NDEyNDYyNTgxZTc0OGRjNjliYjk1ZDM3OSBsZWdhY3ktdHJ1bmsKKzE3ODUzIGVlYzJlYjEyMWRhZTBjYzFkMGM4MWY0NjkzOWM1ZjM5MDY0YTdkNjYgbGVnYWN5LXRydW5rCisxNzg1NCA1ZTRlZWQwNjJiNTRhOWU2ZjIzODAwMWMyNzAyZDY2YTJmOTk1MjZkIGxlZ2FjeS10cnVuaworMTc4NTUgMGM1YjAyY2M1NDg5MzkyYTJjZmNiZjkwYjI3OWE1YWQwNDRhMDNmZCBsZWdhY3ktdHJ1bmsKKzE3ODU2IGMxNmJkZjU1NWM3OTc4MTEwODg3OTZjMjIxZGY3MWMwYmUyOWY3MmMgbGVnYWN5LXRydW5rCisxNzg1NyAxYTNiNWM4ZDY3MzBkOTc5NzNkOTAyYzgwMmQwOTNlZGM2ZWY2YjVmIGxlZ2FjeS10cnVuaworMTc4NTggMGE5N2Y1ZGRlM2E3OGRjN2MzNzM5YmY4MmMzODg0OTMyNDk4Y2M5NCBsZWdhY3ktdHJ1bmsKKzE3ODU5IGEzNDliODliZjEwZWU1ZDUxZDdiMmIyNDQ3N2JhMzAzOGFhYjE5N2IgbGVnYWN5LXRydW5rCisxNzg2MCA5ZDUxNDJjOGNmMmRkZGQ5NzM4YmQ0ZjQ1NTY4ZjczZmJjYzU3OWRkIGxlZ2FjeS10cnVuaworMTc4NjEgMDAzMmRmZmViMTYzYjRmYWQ4MjVhODIxNDM5MjNhYzQxNjAwMDM4ZiBsZWdhY3ktdHJ1bmsKKzE3ODYyIGRkYjIwMTkwNTkxZGJiZjE2ZjUyM2VmMDVmOGU2ZTg3NWZmOTEzNzggbGVnYWN5LXRydW5rCisxNzg2MyAwY2Y1MTExYmYwOWNiMWJmMTcwNTBlZmVmMjI5YWVlMThkOGMwYmYwIGxlZ2FjeS10cnVuaworMTc4NjQgOGI2ZmU2Yjk5N2MyZGI3YjRhMzkxMmNmZmY4NzUzNDZmZDMzMWE3MCBsZWdhY3ktdHJ1bmsKKzE3ODY1IGNiNGIyYTE2ZWI4NzEyNTU5ODhlZjE2MzBkZmVjN2VhYTNkZGZmNjggbGVnYWN5LXRydW5rCisxNzg2NiBhYTA1MmE1MmVmODcxMmYwODVmNmVmNTVkZmY4NWY1Y2VhMWE4NDM3IGxlZ2FjeS10cnVuaworMTc4NjcgOTg0N2I0ODZkMTVmYmE4MDlmNDdmMzA0MGZhYTg2OGIzYTUzMGM5ZiBsZWdhY3ktdHJ1bmsKKzE3ODY4IGM1Y2Y2ZmJhNTRkZGI4YjczNjYyNzIzMGYwZjMzZjFlNmNhZWRmZDMgbGVnYWN5LXRydW5rCisxNzg2OSBkYjNhOTU3OGFiMGJlZmNlYmMzOWI0NzRlYzdkMmU3MGYyM2VkZTExIGxlZ2FjeS10cnVuaworMTc4NzAgNmM1MWI1YWYxYmRlMTMwOTYyMGVlY2E5NjNkYmJjMTZjMDVlYThlNCBsZWdhY3ktdHJ1bmsKKzE3ODcxIDI1YmMxNjk1MmEyNGU1NDc3YjliODQ0NTJjMGI3Mjg4ZThmMmUwM2IgbGVnYWN5LXRydW5rCisxNzg3MiBiMGQxZGVjMjM1M2E0MTFhZWNkOWNiMzMzNDk4ZWQ5ODUwYWIzYWMyIGxlZ2FjeS10cnVuaworMTc4NzMgZGEzZThjNTA2NGNhZjNiZDIyYjFkMTNkY2ZjZmE3ZTg4OTUyMDBhMSBsZWdhY3ktdHJ1bmsKKzE3ODc0IGZiN2FjOGE0MGE5N2MyNGUwZGEzYzI3YTVjNTQ2MWVmZjdlOGFhNzkgbGVnYWN5LXRydW5rCisxNzg3NSBjMjg1ZGYxNWEwNTAzODMwMTU5ZGZlNGI3MGU5MmMzNDU4ZmJlYjNiIGxlZ2FjeS10cnVuaworMTc4NzYgOThiMWZhNmMxNjAwMGU3YTRmMzU0ODEzY2M3N2M5MTg4YWM5ODM4ZSBsZWdhY3ktdHJ1bmsKKzE3ODc3IGE2ZDM1Y2M0YmY1ZWU1ZDgzMjE3NGJiMDZhZDRlZWEyNjQ2ZGQ0MDkgbGVnYWN5LXRydW5rCisxNzg3OCA0MDVhZDBhN2Y3YTYxMDk5ZTdiYmQ4YzU3ODdkNmFjZGJmMDI5NWE2IGxlZ2FjeS10cnVuaworMTc4NzkgZjEyZDM1Zjk5NDg4NTVmYzM0Yzk2NTk3ZDRiYTM0YmYyNjkyNGMyMSBsZWdhY3ktdHJ1bmsKKzE3ODgwIDM3YjFjYWVlZDcwNTU3YTU5MDYzMzJmNjJmMWY2ZWQ0NTk4MmUzMGIgbGVnYWN5LXRydW5rCisxNzg4MSBkYjkxMzVmMzgwNjg5YTIzZWEwMDI0MjNmM2U1MWVmZTNiZWMxYzAyIGxlZ2FjeS10cnVuaworMTc4ODIgMGJiMzQ4OTg2ZDUyODFiMmUzZDk2NjljZTc1MGJlMmNlZmM1OWI5NiBsZWdhY3ktdHJ1bmsKKzE3ODgzIDI5YzJkNWU1MjE2MTJiODEyM2I2Yzk0ZjIxOGM4YzM5NTRhNjc1YzUgbGVnYWN5LXRydW5rCisxNzg4NCBiMzY4ZTA2YTNiNjI3NWU5MTQ2NTY5MjJhMzY3NTdjNjVjZTYwNDc4IGxlZ2FjeS10cnVuaworMTc4ODUgNWZmYTUxNWU2MjBlNGQ3NjQ0ODU3MzQyNDU2ZTg2ZWI1ZDQyZDY4NSBsZWdhY3ktdHJ1bmsKKzE3ODg2IDI1ZjEwOTJlY2Q4NmQ1NDgwZjI4OTI0OGViMjQzOWNhZWRlZTA0YzYgbGVnYWN5LXRydW5rCisxNzg4NyA1MmViNDk5ZjI1YjA5ZmQ1N2JlNTA4N2MzMjlkZTc2ZTA4MjM0NmY1IGxlZ2FjeS10cnVuaworMTc4ODggN2E1YzM4NTlhMzYxMzk4ZmExNjJjZmFmMTMwZWYwMjE2ZTQ5MDIxOCBsZWdhY3ktdHJ1bmsKKzE3ODg5IDliYzUyNzA2ZDI4MzRmN2E4YzUzODY5ZTMyOGE5ZDRlNTc4MTg5NjEgbGVnYWN5LXRydW5rCisxNzg5MCBjZTVkZmYzMGE5MzVkMTlmMThlZGViNDJlNGMxOTdiYzM5Y2I3MmZiIGxlZ2FjeS10cnVuaworMTc4OTEgNmM5MWEwNDFjMWQyYjJjOTVmZTZlZmVkYmYwNjA3OWQ0MmY3NTY2MyBsZWdhY3ktdHJ1bmsKKzE3ODkyIDk0YzAzMWQ3ZTljMmU4Mjg5ZTRhMWJmMzM0MTY2N2E5M2UyYmE2MjkgbGVnYWN5LXRydW5rCisxNzg5MyA4OTRkY2EyMjVkMjRhZWMyODU5Y2FlOWQyNWZhM2JiYTJiNTY2YTQ0IGxlZ2FjeS10cnVuaworMTc4OTQgNmU5ZmYwNjBhNzI4ODI5OWY5OTdlMTcyNDNiY2QyM2VkYmY5Y2FjNCBsZWdhY3ktdHJ1bmsKKzE3ODk1IGM3ZDQ2ZWFlOTVkODk4ZDg4MDQ4YTE0ZGZkZWUwZGM4MDBlYzliMjEgbGVnYWN5LXRydW5rCisxNzg5NiBlOTcxM2NiZTJiYThkMzA3ZDQ5NzFmZjc5YzA2NzllZTRlYzJjMzhhIGxlZ2FjeS10cnVuaworMTc4OTcgOTIxYzc0NTk3NzFiNDEyZWNhMjRlZmE4MWMzMDAwZjU2YTg0ZmRjZiBsZWdhY3ktdHJ1bmsKKzE3ODk4IGQxMDZkZmRmZjQ4MGFlYmYxYTM1OWM2OWEzYjliNzJkZjIyNGQ0ZDggbGVnYWN5LXRydW5rCisxNzg5OSA3ZWVmZGU5MGVjMGVlNGI0Y2UxZjQ5MDg0MzgxNTJlYzgyOGU4MDMxIGxlZ2FjeS10cnVuaworMTc5MDAgMjkzY2FmMGU2MzJhMTc0NDhiMjZjMTNiNWExYzE3YWE5Zjc3ZDE4YSBsZWdhY3ktdHJ1bmsKKzE3OTAxIGMwYzI1NGZiZGU1NzZiYzAxOWRkYzhjMTUxNWEzNTI0ODJiZTQ0ZmUgbGVnYWN5LXRydW5rCisxNzkwMiBkYWU3Y2VmNThhYzI2YWRkYzIxMzA1MTA4NWQ2YWNmYmQ4MDBlZjU2IGxlZ2FjeS10cnVuaworMTc5MDMgYzkwYzNhYWJkOGY1MDM2YTVmODE4N2UxNzIwNTFlZDQ4ZjQzNjI3YiBsZWdhY3ktdHJ1bmsKKzE3OTA0IGM2NTRiMjAxODQwMzljODhjNWU3MDcwMGVhM2YyNmI4NjI2ODA2ZTkgbGVnYWN5LXRydW5rCisxNzkwNSA0NTdmMGRmNDZkZDk4MDU1ZWI4ZWFkMDAxZTdhZjYwZWMzZDZmODU0IGxlZ2FjeS10cnVuaworMTc5MDYgMWRkNzJhOTJlOTIyYzM1YWQzZGM1Y2ZhYTJmY2VlMWFhZGM5OTg2YyBsZWdhY3ktdHJ1bmsKKzE3OTA3IDQzYzQ5ZGJkNDU0NmU4ZWNhZDE0OTBjMWQyMjI4MzJmM2FkOTU4MWQgbGVnYWN5LXRydW5rCisxNzkwOCA3OGJjYWU3N2U4YzcwM2U4NjZiYWE5MzRiZGQ4OGZlMjU0NmFhN2QxIGxlZ2FjeS10cnVuaworMTc5MDkgZmNmODVjOTBhMjc0MGJmYzZmYmMxYjY0MTYzMjc2ZWVlZjg1M2E0YSBsZWdhY3ktdHJ1bmsKKzE3OTEwIDI1NTc5Y2Q2Y2RkOTAzODA3ZmU0ODI5OGY5YWM4Mzg3OTFjMGVkMWEgbGVnYWN5LXRydW5rCisxNzkxMSBiZTRmYzhiNmUxY2I4M2EwMzA2Mjg2ZjgxZGMxODNjYTFkZTNmOWM0IGxlZ2FjeS10cnVuaworMTc5MTIgMDhlNmYxMDE5MTcxNDk4YjA0Yjc4MDNmNDkyM2YxNmNhNDI0OTgyYSBsZWdhY3ktdHJ1bmsKKzE3OTEzIDYyN2ZmNTc4ZjEyZjhmODUxOTJmMTczMmI5NGI0NjllNTY5OTA1NTQgbGVnYWN5LXRydW5rCisxNzkxNCA0MWJmYzlhNDBmZTM5NDk2YjgzNGQyMzU1OWQ2YzgxOGVkZThmODMwIGxlZ2FjeS10cnVuaworMTc5MTUgYmYyN2NhYmEzZDBlNDA5MjMxODU5OGM0MzNkMzc1NDQyZWY5ZWE5NiBsZWdhY3ktdHJ1bmsKKzE3OTE2IDNhMDRiZWJiNjY2YWViMGUwYmNlOGZkY2YxMGU3OTU0YjBhMzRjODQgbGVnYWN5LXRydW5rCisxNzkxNyBhY2I4ODYwN2I0YmQ3ZThiYzBkZTQyYTRmOWZiY2JlMmQ3YTBlMjk2IGxlZ2FjeS10cnVuaworMTc5MTggMTc3YWUxYzUyMDM3NjUwMjA2YWNkYjU3ZTM0MTM0Yzk5NjA3NGI3YiBsZWdhY3ktdHJ1bmsKKzE3OTE5IDEwMzYxMjUxNmFhOGQzNWZjZGRlYTBmZGNkOTk5ZWM3ZDhkOTA0NjEgbGVnYWN5LXRydW5rCisxNzkyMCA2NzU3NDgzNzhjODE5OWQ5NzQ5YjU0YTg5MWNlZjcxN2QyNmYzY2UxIGxlZ2FjeS10cnVuaworMTc5MjEgZjc4MDQ2OWE5NTc3Zjk1YzhjOTc1ZjEyMTRjMDMwZTk4ODY5MjFmYSBsZWdhY3ktdHJ1bmsKKzE3OTIyIGMwNThiYzM1NjQwZjc4YWU4ODQwZGI2MTJmMmE5YmI5M2JlZDg3Y2EgbGVnYWN5LXRydW5rCisxNzkyMyAxMThhYzg1YWYzMGEwNWM0YmMxMjE3MWFjYjZjZDhkMzQyODFjOGZjIGxlZ2FjeS10cnVuaworMTc5MjQgMTg3OWE0OGEzMTMzNmE0ZWI0Y2QyNWVkNzkxYWE0MzAxNDY1ZWU4YiBsZWdhY3ktdHJ1bmsKKzE3OTI1IDY5MGI0MWQ0N2MxZDZhZDU2NTg2ZmRhNjY4OWM5M2IwMjAwMmZjNDIgbGVnYWN5LXRydW5rCisxNzkyNiBhNTNmMTZiMjBmMWQ5MWJkOWRiMDMzMzViODkwOTZkZGUxYTMxODQ1IGxlZ2FjeS10cnVuaworMTc5MjcgNTdmZWE4NzA5NzU4ZjFmMzdmZjgwYjE0YmE4MTg0NDJmMzVjNmI2MyBsZWdhY3ktdHJ1bmsKKzE3OTI4IDcxYTRhYWRkZTAxOThiODY2YTQ2MDZmMWM3M2E2MWY1NTcyZTdhNzAgbGVnYWN5LXRydW5rCisxNzkyOSA2M2QyMzdhMjVmNDkxZTI2OGVjYWU3NjI0ZDg0OWM2ZDg4ZTI1MjQ5IGxlZ2FjeS10cnVuaworMTc5MzAgYjI1ZWFiZjY2ZDhkMzc1YzQ1NTUyODIzYjUxYjc1NjQ4ODY0NTg1NyBsZWdhY3ktdHJ1bmsKKzE3OTMxIDdjZTkwNjFmNzk2N2ZmYzczMjUyNTk1NWQzYTQ3ZWNmZjlmZTExNTUgbGVnYWN5LXRydW5rCisxNzkzMiA3N2QxZDc5YTY1ZDc1ZTg0YTg0NzczYzM3ZDgxYzMyZjUwZmZmZWE3IGxlZ2FjeS10cnVuaworMTc5MzMgMzE0MjAyN2I1OTc5ZGFlYWJkNTI2MTc1MTVmNDE4NGI5MTU3NmEyNiBsZWdhY3ktdHJ1bmsKKzE3OTM0IGFkOGVmMTU1Y2EzOTBlOGE2ODEwMjJhZTMxMWQ0MzM4ZDhiYWFiMWIgbGVnYWN5LXRydW5rCisxNzkzNSBkYzRjYWVkYzU5NjExYjE3MWIxNDk3OGMxNmE2YWYxZGI3MDYyNjQxIGxlZ2FjeS10cnVuaworMTc5MzYgNDdlNjgwNzcxMTdlNDIxMTUwOWRjMjgzYTNlNzY3YTEyMzhlNWY1MCBsZWdhY3ktdHJ1bmsKKzE3OTM3IGNkZmVjMzZmMTJjYzlmYTFiOGU5ZGE1ZWFhNTYwYTg2NTc5MmU5YmQgbGVnYWN5LXRydW5rCisxNzkzOCAwZTBlYTU2ZTRiZTg0YzA0ODgyMGIxMDI4NjVjMmEwNmZkZmFiZmM1IGxlZ2FjeS10cnVuaworMTc5MzkgYTExOWUwYzhiODBiMGU0ZDE5NjNiYjMzNGM2M2VhMzgyYjdiYjI5MCBsZWdhY3ktdHJ1bmsKKzE3OTQwIGMyZjEzYzM5NWI5YWU3Zjg4NWZjNDdhODE2YWFiMDZmMzI4OGUxZTEgbGVnYWN5LXRydW5rCisxNzk0MSAwMmFkOWNiNTIyMjI3ODMwNmE1N2Q4NzM3YmRkOTJjNWU4YmMxZGZhIGxlZ2FjeS10cnVuaworMTc5NDIgOWJlNjdjNWE4MjNhYjFkYTFjOTMyMGE2MTFhY2M1MWUzZTczMzQ2ZiBsZWdhY3ktdHJ1bmsKKzE3OTQzIGY5ZDRiZDc5YjQ2NDgwYzE0YWM0YWQ3YTI3NzIzMGUxMTRhM2FjMjAgbGVnYWN5LXRydW5rCisxNzk0NCBmMDlhODRhZjY0YmQ4NjMyMDFiY2I2NWZmZWJmNjA5ZDZjZDFhMTM2IGxlZ2FjeS10cnVuaworMTc5NDUgYTEzYTJhY2JlMjE0ZWY4ZmMwNmJhMzVlMzgwMGEzZWNjMzRiMTU5ZiBsZWdhY3ktdHJ1bmsKKzE3OTQ2IDFhNmY5MTU4NjMwZjFkNmVmYTk1YmVkODcwYjA5MDZlNDA1YmFhNTIgbGVnYWN5LXRydW5rCisxNzk0NyBkMGE2ZDQ0NGQ2YmM3N2IxNmQ4NjYzN2IzNmJhMWU1ZmJiNjUyYThjIGxlZ2FjeS10cnVuaworMTc5NDggNWRhOTYyMmZlZDdiNTQ3NGI1ZGM0ZTkxYmM3YjVlMjg3YzQ3YzBjZCBsZWdhY3ktdHJ1bmsKKzE3OTQ5IDQxYzQyYjFiZDU4MjhiOTQ4ODgwYzk1Y2U3N2RiMjYwNGMwYWI2N2EgbGVnYWN5LXRydW5rCisxNzk1MCA0NGZhMTZmMDFiNGUxMjI5YWNjM2QyNDU2ZWM2N2M2NjQ4OTZhNmVjIGxlZ2FjeS10cnVuaworMTc5NTEgMWIzNGM0NzVkYTg3ZmFlM2VhOGQ1YTU0NjY0NzEzZWFmZDczODc2YiBsZWdhY3ktdHJ1bmsKKzE3OTUyIGVjMWYyMzY1YmMyZDU3YjExZTYwYzI1NTVkZTcyZDc3N2FlNjA2MWEgbGVnYWN5LXRydW5rCisxNzk1MyBjMTk5NDYwY2NkZTkwNjYwM2M5MzI2YjgwMzgxNjA4NTE4OTE2MzkyIGxlZ2FjeS10cnVuaworMTc5NTQgOTViZTQzZDFkMzMyNjU3MTkzNmVkZTU5NzRhOTBlZTIwNzUxYTY2ZSBsZWdhY3ktdHJ1bmsKKzE3OTU1IDVmYjhkYzI4OTgxMmRmOWViNGQ2NDYyMDA5OGU4NGQyMzMwZDIwMzMgbGVnYWN5LXRydW5rCisxNzk1NiA3ZGUwODA4ZjFmZTMyMDdkYmM2NWExMTBmMGM2MDQ2NDNlMmJlZmYzIGxlZ2FjeS10cnVuaworMTc5NTcgMWFjYWM0NzU2YTAzYmViYTQwZmZiZDI0NzcwZDgwMGEwNGFmN2Y4MSBsZWdhY3ktdHJ1bmsKKzE3OTU4IGY4ZTk2MjUwNjA2M2RkYWY1MDgwZDEzNjg2NTgxNzdlNDQzZTI5YjUgbGVnYWN5LXRydW5rCisxNzk1OSBhMDJmOWRhYzIxNmNkOTg5NDI0ZmYwOWNkOWMzM2ZiM2NmNDZmN2IwIGxlZ2FjeS10cnVuaworMTc5NjAgOGJmYTk3MDNhNGU0ZjQwMzcwZTVlOWE0Y2M0NzRiYjY4M2NiZDA0MCBsZWdhY3ktdHJ1bmsKKzE3OTYxIGE1YTljZmMwMDliNWIzYzBhYjhiM2VkYTkxNGRiMjdiMWRjNjQzYTEgbGVnYWN5LXRydW5rCisxNzk2MiAyOTAwNDUyMDI2Y2NkNWVlMjIyNWRkODdkOGYxZGU4MmJiZjRmOGNlIGxlZ2FjeS10cnVuaworMTc5NjMgZjc2YTFlY2Q2YjU5MTZhZmUwZjU2NTZlNjY4NTI0NTg4ZDFhZjZhOCBsZWdhY3ktdHJ1bmsKKzE3OTY0IDY2NjA5MWYwZDcxNDQ3MWFlZDU1ZDg3N2UzMzg5NTYwNTk2YjRiNzcgbGVnYWN5LXRydW5rCisxNzk2NSBkMmMxN2FkZjJmMGM0NTU2OTUyYmE3NDQwZDkzZTc1ZWNkNWIwODAwIGxlZ2FjeS10cnVuaworMTc5NjYgY2UwNjY3OTkxMzNlYTQ3NTA1NWYxM2UzZGUwN2RlNzYwM2EyZWM4OSBsZWdhY3ktdHJ1bmsKKzE3OTY3IDMwODFkNzAxYmU4NjE1ZjMyYzlhODkxMDI3MGQyZGQxZTFiNDA2MTMgbGVnYWN5LXRydW5rCisxNzk2OCAxNTRiNzFlMTY1NjUwM2E2OWU4YjEzZWE5ZjJkZjVmNzEwNWY2M2NjIGxlZ2FjeS10cnVuaworMTc5NjkgYTgwNTQxMjQ1YjY2MzIwMGQxZTJjOGMxODRiZTg2YTFjYTdlOGJjNiBsZWdhY3ktdHJ1bmsKKzE3OTcwIGU5NmQ2NjRkZTI1NmFjYjlkZWQ4NjA3MTM2YjJiZmJiZDQzZGJmOWEgbGVnYWN5LXRydW5rCisxNzk3MSBjNmQ5YWZhNmU2YTA1YzVlN2IzODRkODJkZDI5NTZlMGM0NjYyYTRhIGxlZ2FjeS10cnVuaworMTc5NzIgZmM2ODZkZTg2MDU5Yjg0NTYwZjE0YTg3YjliYzQ4MmQxZDQwMmU1NyBsZWdhY3ktdHJ1bmsKKzE3OTczIDRlMWU5ZjVjMDc5NTA2OGU0M2QyYWU4ZjJlYWU5ZGYwM2ZjNjM5NzQgbGVnYWN5LXRydW5rCisxNzk3NCAxY2QwMjg1ZTNjZmVkODdjMjE4ODc4ZTZiZDdmZDcyMDY1OWMyN2Q0IGxlZ2FjeS10cnVuaworMTc5NzUgZDE2Yjc0MTNkYzY5NmRmNzRmZjllY2NhNGMyYjJhNzQ3NjNmNzc4MyBsZWdhY3ktdHJ1bmsKKzE3OTc2IDY2ZDI0ODMyODk2NzJkNzVlMmM4ZDNiZGNkODkzNWI4YmQyZDY2MzYgbGVnYWN5LXRydW5rCisxNzk3NyBhMzU4YmE3MDdlNGQzNTFlNTQ1ZDRiNDllYjRjYTVlMmU5YjBmYjU5IGxlZ2FjeS10cnVuaworMTc5NzggMGMwZTkwOWI4ZWQyM2FkNDBkNmI4ZDJhOTJjOWNiZDliNDc4Njc1NSBsZWdhY3ktdHJ1bmsKKzE3OTc5IDdkMGFmNGU4MTNkODVkZWVhYmZhODk5ZDMzYmQ0MTdlNzkzNWUyNTAgbGVnYWN5LXRydW5rCisxNzk4MCBlZjFmNDczYWFlZWJlYjNmMmU2NGNiNDJmODdkZjk2YzU0ODk2YzI0IGxlZ2FjeS10cnVuaworMTc5ODEgMzJiOGM1YTQ4MGFkZTM1Y2RiNTVmYjViMzY5M2ZkMmZhYjhkZDI2ZSBsZWdhY3ktdHJ1bmsKKzE3OTgyIDNhZTlkMzEzYmMzM2UwYjRmYTVmYWU2NTVhNzMyM2IzOGMyNDJjNjYgbGVnYWN5LXRydW5rCisxNzk4MyA2ODAzNDI5MjUwZTliZDA4ZmM3NTBhOTE4MjYzNjNkYjBjYTI1OGEyIGxlZ2FjeS10cnVuaworMTc5ODQgZjc3MTQ1M2MzYWY1ODg2NDg4MmZjMzM5NzNkNWE5ZDBmODVjY2M1YyBsZWdhY3ktdHJ1bmsKKzE3OTg1IGViYTMyM2Q3NDA3ZmExMzZlYjJmMjRkMzYzMDIzMzMwZDE4ZDg3YTEgbGVnYWN5LXRydW5rCisxNzk4NiBjZjI2NjFhNDU5OGViYjI3YzY3ZTlkODI2MTFkYTgyYmMzOTE3NDczIGxlZ2FjeS10cnVuaworMTc5ODcgN2U2ZTQwZTQxYzZlNGE3YzM2NDU0NTEzZTkwNWUyYjVlOTRmYjFiOCBsZWdhY3ktdHJ1bmsKKzE3OTg4IGIzOTE3OTQwZTFmYTFjMWEwNGE2OWYxYjk1MjRhZTBmN2VlZTBlYWEgbGVnYWN5LXRydW5rCisxNzk4OSAzNGE2ZTNlYWQxYzA0ODU1NzBmMjJmYjQxNTgyMzg3MDg1MmE0YjBkIGxlZ2FjeS10cnVuaworMTc5OTAgMDU2ODZmOTdmMzhkMjQ2ZGQzNDVmZWFiYmM4ZTM2NTI1MmQxYzlmZCBsZWdhY3ktdHJ1bmsKKzE3OTkxIGE1YzM0NjkyMThlOWM0NTRjYjVhZTI0ZGI2NmNkNmJiZGNjMjVlOTMgbGVnYWN5LXRydW5rCisxNzk5MiA5YWQwNzY0ZjJlODQxYjE2NTliZTc2NzE3MmY0MDgzZDJmODQwN2JlIGxlZ2FjeS10cnVuaworMTc5OTMgOTEyMDFkZTI1ZjM2ZDY0OTAyODQwN2U0ZGQ1OGJjMDQwMDRjOGFkMCBsZWdhY3ktdHJ1bmsKKzE3OTkzIGUyNzYzMjljY2UwMzZhNWY5ZTlkMzQ1MTI1NmRjYTU5ODRlNTQzZGMgbGVnYWN5LXRydW5rCisxNzk5NSBkYTkwNjdiYzk0OTQyOGY2ZDg4NDhiZDUxNjI0Y2JjZGI5N2VlMmQ5IGxlZ2FjeS10cnVuaworMTc5OTYgNTcxOTJmMGFjMTNhN2Q2ZmRmOTNmNTZhODE2MDI4MDVmNTgzNTc3NyBsZWdhY3ktdHJ1bmsKKzE3OTk3IGRkNDlmMjlkOTg3OTVlMjVkMTM0MjZiYzM3ZTMwMjM0NmI3ZWM2Y2MgbGVnYWN5LXRydW5rCisxNzk5OCBmYjk5NTg5MzNiMjU4YjU4MzZlYTM3Y2E2NjE0NmNlNzMxNzJmOWUzIGxlZ2FjeS10cnVuaworMTc5OTkgNDMzMTg3NDY2OTAxNjlkMmI0OTU0NDI1NTc4Y2UyNWViMzFiYTNiYSBsZWdhY3ktdHJ1bmsKKzE4MDAwIDU2M2RlZTU5OGQzYTlmNDYzZDM4MzY0NDI3ZmQzZGU5ZWE4NDNlY2IgbGVnYWN5LXRydW5rCisxODAwMSA3NGMwMjBhZGQ4NDZlYzRiNjZhMjBjOWI4MjljNjBhYjFlYzNhNDQwIGxlZ2FjeS10cnVuaworMTgwMDIgNmIwMWZjMjJlZjZlZjhlZDNkZmUzOTk4YzkwOTUwYjhlMDhmMWM4NCBsZWdhY3ktdHJ1bmsKKzE4MDAzIGExOWIxZDZhNTljZTFjNjhlNjJhYmIzYzY1YjU1MDhlMGM0NWVjNWEgbGVnYWN5LXRydW5rCisxODAwNCA1Y2YwYTAyYTU3NGIxMTk5OWJjZTNjNzM3OGVhYjVkZTc0ZDk2YzdkIGxlZ2FjeS10cnVuaworMTgwMDUgNWU1YjQzMTE4YzUyZGE2ZmM2YmM5YmVlNDdiMDI0YzUyMzAxZDc1ZCBsZWdhY3ktdHJ1bmsKKzE4MDA2IGEyZmNjNDg3YjlkYTE4NTg3NmZkN2U5Y2UwMzFhZWIxNWI2YmQzOTMgbGVnYWN5LXRydW5rCisxODAwNyBmZGMyYWJkZjQ3NzdlYmQyZjhkOWRkMzNhNmY5ZmM5OGRjZTBlZTdiIGxlZ2FjeS10cnVuaworMTgwMDggNDg2ZjNmZjE0ZDk1YWM5NzgyYTUzY2ViZTE5YjM1ZmVhMmVmMWRmOSBsZWdhY3ktdHJ1bmsKKzE4MDA5IGNhOWY2YThlOTg4NTcxM2JjN2Q4MTk4ZjYwMmFjM2QxMjVmM2Y4YWQgbGVnYWN5LXRydW5rCisxODAxMCBlZDQ5YTY3ODY5ZTljMjBmNGI2YzNlNDk5Y2Y2NjYzYzdkZDBiOWE0IGxlZ2FjeS10cnVuaworMTgwMTEgZTE3ZDhjZDA5Njg5ZjAxYWI3Y2FhYzJkZjZiNDYzZjA4N2Y0ZTYzNSBsZWdhY3ktdHJ1bmsKKzE4MDEyIDE3MzA1OTFkNWQ1ZGE4YTI1M2FiZTNjYzBmNzc5NmQwMDZkYTgwZDggbGVnYWN5LXRydW5rCisxODAxMyA3NGYxNjVkYzBiNWFlN2I1YWJmMjA0MDBhNDJmNTMzY2NhZGQ1NTk2IGxlZ2FjeS10cnVuaworMTgwMTQgYmVjZDhhMTIxNDY0ZjM2YTRhYTlkYmQyN2E2NzRlOGE3N2MzNjc2NCBsZWdhY3ktdHJ1bmsKKzE4MDE1IDQ1OTIzMmE5YjgwNGMwYTBjZjY0OTU3YzkyM2FlOTYxN2I4MjY0NDkgbGVnYWN5LXRydW5rCisxODAxNiA3YjA3ZDYyZDJjNzk2MWQ0NTRmNmRlMDc4NzM0NGMxZjMyMGU0ZmU1IGxlZ2FjeS10cnVuaworMTgwMTcgZTcxOTcxYTQwMmQzMTlhZWZjNGUzY2FiMmVjN2EyNzY0YjkzZTY5ZiBsZWdhY3ktdHJ1bmsKKzE4MDE4IDNjMjEwNjRlODIxNGMyN2RkZWU2MjE2YTI4MDM0MmM1MWIyY2I3NGIgbGVnYWN5LXRydW5rCisxODAxOSAwMDdhOTFkNzc3MDNmZWI2YmMyYTU2NGQyMzAwYTMzYjU2OTRmNjU0IGxlZ2FjeS10cnVuaworMTgwMjAgYjA3NTM1OTgwMzAxNjU0MGNmYjk0Mjc3ODQ4ZWFjMDU1MDFiMDRjNCBsZWdhY3ktdHJ1bmsKKzE4MDIxIGE4MDA2YmJiNjIyNTc3OWMzYTBkN2ViYTgwZmU4ODk3NTBhYzhhMTggbGVnYWN5LXRydW5rCisxODAyMiA4OTMwZWMzYmMwMGE5MWI3MjJhMjdmYzRmY2JkMjg4YTFmY2U3NTA3IGxlZ2FjeS10cnVuaworMTgwMjMgMjU3NzUxOWQ1ZWExMzk3NDZhNmUyOTcwZDA0ZTM3ZjI4ZjA4ZDQzOCBsZWdhY3ktdHJ1bmsKKzE4MDI0IGU2MWU2NGQxYjVlYzNiODFjNzQyMjgzODg4ZmJkYmNiZGRmYzJkMjkgbGVnYWN5LXRydW5rCisxODAyNSBlNTgyZjU3MzQzZjRkNWM4Mzc0M2RlY2I3YmE4MDQxZmQzMmJkYmMyIGxlZ2FjeS10cnVuaworMTgwMjYgMmVkZjM2NmY1NjNjOGRiNjg3NmIyMTNhODAxNDBjOTA5NzgwOGJhNiBsZWdhY3ktdHJ1bmsKKzE4MDI3IGY2MTAyYzVkM2Y5YzJjMzJkOTk5ZmIzOGRmNTVmOTMxMjQ1MTYyNTYgbGVnYWN5LXRydW5rCisxODAyOCAwOWM3YWMxODhjZTIxNzhiODdiMDY1MDRiMGU0ZmU1NWIzYmM0ZGI5IGxlZ2FjeS10cnVuaworMTgwMjkgODVhMDJjYzM3NTkwYTZmNDkwZGQ4OGNiZDk4ODYwNjg5NDY1YjhkZiBsZWdhY3ktdHJ1bmsKKzE4MDMwIGQyZjRkNzQ4YzkyMWViZGIwOTBmMzI3OGRjYTE2Yjg0ZjQ4NWVmOWYgbGVnYWN5LXRydW5rCisxODAzMSA3NDRhYTA2MmY0NzAxYTQxNTQwZGQ0NjgyN2FjZTVjMmFhZTkwYjgwIGxlZ2FjeS10cnVuaworMTgwMzIgM2ViODY4N2M5OGM2ZjdjMmM0Y2M3OTEyOTViNWNjYTdjNWYzN2I1NSBsZWdhY3ktdHJ1bmsKKzE4MDMzIGFiMWY5MGRkNTAyZjhhYTg1OTIwMzdkYjY3NzQzZGNmMmM1ZWQ3NDQgbGVnYWN5LXRydW5rCisxODAzNCBlNzgyM2YwY2EyMWEwNjEyYWEwNTk5ZGNjODUxNjVjM2Q1NjY1NDc5IGxlZ2FjeS10cnVuaworMTgwMzUgNTJkMmQzNmI4YmY3Zjc4NTZlZWM3NjUyMzI2ODg0ZTBkNWMzNGUwZSBsZWdhY3ktdHJ1bmsKKzE4MDM2IDFiNzNiMzUxNGI1ODU1ZDVlZDQ3YjcyMzg1YjIzOTU3NWRlMDJhZGEgbGVnYWN5LXRydW5rCisxODAzNyAwMTVkYTEzZjAwMzhjMTY2ZjBlNDZlYjc0YzE2OWI5ZjYwOTE3Mjg0IGxlZ2FjeS10cnVuaworMTgwMzggNTQyNzM4NThlYWQ5YzYyNTEwNTRlOTU0NzdhYTU0Nzk2N2IzMmI5OSBsZWdhY3ktdHJ1bmsKKzE4MDM5IDJlZDM1ODQ0NmYyZmUzMzkwMjM5MWU4ZjQ4MjM1OWZkMjExZThmZTEgbGVnYWN5LXRydW5rCisxODA0MCBiMzM4N2VlYmE2OGRmZTRjYTk4ZDVmOTJhZDJkNGUyMGYzNDBmNWUyIGxlZ2FjeS10cnVuaworMTgwNDEgNGQyMTg3MjY0Y2ZhN2FkMTEzMDBjZTllZDgyNTMzZDA5MWUwYWMwYyBsZWdhY3ktdHJ1bmsKKzE4MDQyIDllOWVlM2M1YTYwNzhmM2FlZmIxM2E1OWU0Y2FkYmYxNjFhZTkwZjMgbGVnYWN5LXRydW5rCisxODA0MyAxMDBiZWViZGU5ZGZmNTRkNDhiNDUwNTU3MTIxYTIxMWI0N2RhZTJlIGxlZ2FjeS10cnVuaworMTgwNDQgYjI4OTJjYmM2M2RiNzM0NDE4MGNiNTI3MDI1OTJlZDU2Yjc5OTUzZiBsZWdhY3ktdHJ1bmsKKzE4MDQ1IDVhYThjNWFhZmZhZGQ2NDI0NWQ0MDk3Mzk2NzBhNjYxMTZkOTdhMjggbGVnYWN5LXRydW5rCisxODA0NiBmMDQ0YjA2ZTMxN2RhYTI0MDJkMzc5ZjY0ODRjN2YxNDkwZDVhOGYwIGxlZ2FjeS10cnVuaworMTgwNDcgMzE5YzZlMzcxODI1MWM5ODM1MzQzNjExZmQyNzMyODBmNDBmYzEzYiBsZWdhY3ktdHJ1bmsKKzE4MDQ4IDY1NmQ0MzQzODhjOGUyMjgzMDIyYWMxNGQ5NmQ0Y2I1MjJjNDJjNGEgbGVnYWN5LXRydW5rCisxODA0OSBkYjRkODBhNjczODlhMjA2MWQxYTFhM2RlMjMwOGMzNDAwMTBmYzA0IGxlZ2FjeS10cnVuaworMTgwNTAgMWM2M2UyMjRmNjE2NjQwYzY4ZWE0NjU5YzViZDg3ZTg0NGU3YWFiMSBsZWdhY3ktdHJ1bmsKKzE4MDUxIGUzZDgzNjVlYTIzMTUxMjZlODAzZDQ5MmQ3ZjlkOGE3MDFiNTg4OWYgbGVnYWN5LXRydW5rCisxODA1MiBhZjAyYWM1ODAwMjhjOWU1ZDFjMDkyZjIwMzUyZjVjYWM0YTJmYmVjIGxlZ2FjeS10cnVuaworMTgwNTMgMzc0M2E2ZGJjNGE3NzJiNWIwOGJkY2QxMTJiMzgyNzVmODZkNjA5MyBsZWdhY3ktdHJ1bmsKKzE4MDU0IDQ4Y2M3N2I2M2FkNWRmNWRlYzBjM2IwNTk3ODI2OTExMzE2YzRmM2UgbGVnYWN5LXRydW5rCisxODA1NSAyM2JmMzA4NThlZjQ1MzFlZjE0MjYyZjkwNjFlMzhlNjE3YTUzNDNjIGxlZ2FjeS10cnVuaworMTgwNTYgZDQ2OWQxNTcyM2QzNWYwNTJmZmI2NGMwNGNkZmJiNGUyMDRmMmNiMCBsZWdhY3ktdHJ1bmsKKzE4MDU3IDc3ZWE4ZmNlZjI0Y2IzNTViMGJlMWZkNjgyMDgzNWUzZjFiMTg0MzYgbGVnYWN5LXRydW5rCisxODA1OCBjNTBiNzg2ZWJjNDg0YjI0ZmI5MDdiZjIwMWQ4N2E5OWFmNTNiYjQ1IGxlZ2FjeS10cnVuaworMTgwNTkgNGVlYjAyODE3YjVkODBlNDEzYjdhNmVhZGM1YjNlNWNmYmYyN2FlZCBsZWdhY3ktdHJ1bmsKKzE4MDYwIDliN2RkZDljYWUzM2UyNzcxZThkMjcyZTYzNDI1OTg5NjFlYjkzNGYgbGVnYWN5LXRydW5rCisxODA2MSA2NDE3Y2U5MTRkYWU4N2VkZDI4NDkxNDhhZDFmNmI0MjA5OWU0MGI3IGxlZ2FjeS10cnVuaworMTgwNjIgZTBhNTgzNWFmODMzNTBhMDc4NjBhYjdlMWE3OWY5NWY0OWQwOGI3ZCBsZWdhY3ktdHJ1bmsKKzE4MDYzIDA0ZTc2ZTA4ZTEwZmY0MWZlMmFlYzhhNTZiZWFlNmZkYTM1MWRiYWEgbGVnYWN5LXRydW5rCisxODA2NCBjOTRmMWM3NzYxNTM2ZWE3MDYzMTY3MWZjMGNlMzljMWUxMDRkZGY1IGxlZ2FjeS10cnVuaworMTgwNjUgNzAxYTU2MWJkZWZhODE2NDg2NGNhYTkyODJhNGFiMmU1YTg1YmFhZCBsZWdhY3ktdHJ1bmsKKzE4MDY2IDc4Mzk2N2IxNjg3OWE4YTg0YmU1OGIxOTJmZTE2Yjk3YWU5MjJhNTkgbGVnYWN5LXRydW5rCisxODA2NyA5ZjMwNzc1MDZkMWExNmJhNDg3YmM1MTBiMDdmZjAxYTE2ZDhkY2JkIGxlZ2FjeS10cnVuaworMTgwNjggZDJjMjA1YzM2ZDhhNDE4ZjcwZGM5MTFmMDhmOTNiNDQ0YmQzNGI2MyBsZWdhY3ktdHJ1bmsKKzE4MDY5IGU0YzliODA1ZjM5ZmJkNzgzYTA5MjUwYTEwOWRjMTc3YjMzN2QxMzYgbGVnYWN5LXRydW5rCisxODA3MCA1MGE4ODhlYzU3YzEyNzExZmQ1MTFhMjkzY2UwNTM2NTkxMjBjYWJkIGxlZ2FjeS10cnVuaworMTgwNzEgODgyY2VmZTIxZGMzNjgxODVkN2ZmZDc5MDk4NjNjYjA2NzU4MjdlOCBsZWdhY3ktdHJ1bmsKKzE4MDcyIDdkNDUyNDliMTQ3N2Q5Yzc4Yjk1NGZhMzk0MDM1OTZiNDViYzA3ZmIgbGVnYWN5LXRydW5rCisxODA3MyA5NTk4NjUwZjJiYzkwMjMyMGI3ZTkyMGNlYzgyYzYwZmQ0OGQwMzFiIGxlZ2FjeS10cnVuaworMTgwNzQgYTM5NzVkMjgxMWYwMDg5ZjUyZGEyY2UzYzU4NmFhN2U3YjZjYTg4YyBsZWdhY3ktdHJ1bmsKKzE4MDc1IGE4MmU0YzI5NWI5MzAwZDMwOGIyNmQxNGJmNDIwOWJiMWYzMDc4NTggbGVnYWN5LXRydW5rCisxODA3NiA1YjU2NTRjYTc1NTViOThiMGUyYjQxY2Y2NjExMDlkNjAzZTQzY2MyIGxlZ2FjeS10cnVuaworMTgwNzcgOTlmMzhjNzU1YWJlYmE0NTUwMTA5OGY2YTJhYjQwNTY2MzU5MDFlNyBsZWdhY3ktdHJ1bmsKKzE4MDc4IDNlNzAxNmM3OWRhYTBlN2FmY2QzZTQ1MmZkZjJkZjcwMGM1ZTMzYzcgbGVnYWN5LXRydW5rCisxODA3OSBkN2M5M2E3OGM5NDkyOGFmYjljMjhjM2I0NGFiOWYxN2Y4OTJlMDQ1IGxlZ2FjeS10cnVuaworMTgwODAgM2Q5MGUxZDc2MDVmNzEyNzIzYzRiNGQ2YmNlMzBiZWNjNGIyNDBkMiBsZWdhY3ktdHJ1bmsKKzE4MDgxIGU0NzBhOTYxOGNhNzJhYmEzNTg2ZDE0YTM0YTNkMjM0NjE0MjcwZmQgbGVnYWN5LXRydW5rCisxODA4MiA3ZTkyYjdhNTA1N2M1MTBmMWQzYmVlMjc5MmUzNDNkZjAzYWNkN2U0IGxlZ2FjeS10cnVuaworMTgwODMgNDg2YTMxZDhhM2IzNWM1ZjkxZmUxNzI3YzU0M2M4ZmE3NmMwNjNmNSBsZWdhY3ktdHJ1bmsKKzE4MDg0IDQ4N2IzNTAyYTQ1YjMxMGZjZGE3MGFhMDlmZGIyZDY1OGNkNWQxYWQgbGVnYWN5LXRydW5rCisxODA4NSBmNzkyODIwZjNjZDRiZWY1NjA1M2NhZGZlOGU0ZGU1ZDAxMjY0NWFkIGxlZ2FjeS10cnVuaworMTgwODYgZDJiOWNjNDQwYjhkZDQyZTAzMTVmMmI4ZDMyNjFmMzEwYzdhMGIwMSBsZWdhY3ktdHJ1bmsKKzE4MDg3IGJkODhkZjIwZGEyZjU5YWI0ZWRkZDU5MmEzOTUzNzYwMjQwY2E1OTEgbGVnYWN5LXRydW5rCisxODA4OCAxMGIzY2JkYmRmZDlmZDkxOTVmNWY1NDAyM2EyZDQzZjcwMTMyMDk3IGxlZ2FjeS10cnVuaworMTgwODkgMzhjNzk1YWZiM2I4MDUzZWI2YThkMmFjZGY2ZTg3YjY5YjZkMmFkMyBsZWdhY3ktdHJ1bmsKKzE4MDkwIDg2NGYxNzE0YWYyODcxYjMwN2NlNDM3MWY5NmE5YWE1NmMwNGNiZGYgbGVnYWN5LXRydW5rCisxODA5MSAwMzcyMGEyNmNmZTczNjU0N2Y4NjdmNDc4MTM4OGQwMmI3Y2RkZGJlIGxlZ2FjeS10cnVuaworMTgwOTIgOGZlMmE3OTgxZDcwYjMyYTk4ZGJhNjQwYTY0NDIwNjJmMDkwN2VkMSBsZWdhY3ktdHJ1bmsKKzE4MDkzIGM5NGMyYWU3NDZmMWNiM2E2NDJhNWZkMTRhODMwM2MwYTdlYmU1OWQgbGVnYWN5LXRydW5rCisxODA5NCBmMWFkZThhYjE4Njk1NTM3Y2NlYzkwZjdjZTMzYTg2ZDY2NTY5NTU3IGxlZ2FjeS10cnVuaworMTgwOTUgNzViZmJlMzdhYjdhNmMwOTAzNGJmYTdjMGEwNmViNzZjNzQ2ZTk5ZSBsZWdhY3ktdHJ1bmsKKzE4MDk2IDlhZjdmY2UzNjM4NDEzMTczYTAwN2ZjZDM0MjI0MmVlZjE5ZjkwODMgbGVnYWN5LXRydW5rCisxODA5NyAwMjI3YjU5NjFlZWY3NGE4NzgyMzBhNjA4ZDBmMWYyYTk5YTViODBmIGxlZ2FjeS10cnVuaworMTgwOTkgZGE0M2IxNjk4NmI2NzcwMWQ4YjcwNDQ1ODdjNzE1ZGMyYzc5MzY2MyBsZWdhY3ktdHJ1bmsKKzE4MTAwIDY1Nzc1MGMxZDc4MzU0ZDg3ODc3M2RjZjJjMzJkOGQ5MjQ4NjRjNzAgbGVnYWN5LXRydW5rCisxODEwMSAyY2RmYzQ2ZTgwNjhkMGQ4YWQ5ODIzYzQ1YzgxMWY0NmM4NGVmZmFiIGxlZ2FjeS10cnVuaworMTgxMDIgZTllODgyNGUzZDhkZmQ5YTNiZmIyZWQ5ZmQ0N2FjMjRiNjg0NDA2MiBsZWdhY3ktdHJ1bmsKKzE4MTAzIDcxZWEyYmIwMTg4OTU3MmY5Njg3ODY2OGQxMTZkMTc2NDE0OWE5ZDAgbGVnYWN5LXRydW5rCisxODEwNCBlNGVhNDRiMTBhYmJlZjI1YWQxMDdlMGZlMTE2NGI5YzllZTRkNjg0IGxlZ2FjeS10cnVuaworMTgxMDUgNjgzNzEzNTA4MWQ0NzI3ZWVmZGU3NDc1NGJkZjJiMDIwYTYxZDMyNyBsZWdhY3ktdHJ1bmsKKzE4MTA2IGRkMGQxOTk2NzRmODJhNGNmNWUzMWY3MTMxOTNjMGY0ZDJmOTcxODMgbGVnYWN5LXRydW5rCisxODEwNyA4Njg2ZjI4NGZhOGQ3NDkwMTNlY2Y0M2Q5Nzk3NjgwZDAzOWVmNGE4IGxlZ2FjeS10cnVuaworMTgxMDggNzM1ZWQ4NTZkZTYwZTQxOGY2NzU3YWM3M2NiYWU0YmEwYzBhNTVjMiBsZWdhY3ktdHJ1bmsKKzE4MTA5IDJhMDVjMWZiZDg5NDdkZDIzMzAxZjhmNDgwZWVmZWRhNTFkYzU5YjIgbGVnYWN5LXRydW5rCisxODExMCBjYzllYjE4N2I3MzAyY2EzNzcwYjExNmE5YWMyY2Q0YWRkYzg4OTQ1IGxlZ2FjeS10cnVuaworMTgxMTEgOTcyMGMyYzZmNDM1ZDNkNmNkZWIzYjkwMmY0YWIyMDJiMmNkNjU2NyBsZWdhY3ktdHJ1bmsKKzE4MTEyIDBmOWZkM2ZkNzc5OWE4YWNjZjFmNTZiYmFjZWZkMTkwOTMxMTEwYzkgbGVnYWN5LXRydW5rCisxODExMyAwODEzMDIwYjI5Nzc1ZTFjZjJjZmEzNDE4MGYzYWFkZTQ3ZTY3ZTQ2IGxlZ2FjeS10cnVuaworMTgxMTMgMmZhNGUzNTA4M2UwMjM0MmNhMDE0YmY1YmZiYTQ2YWVjYjgxNmMzMSBsZWdhY3ktdHJ1bmsKKzE4MTE1IGJkNGNkNzNjYjBkNmQ1Zjg4Y2VkN2RmNzRkMzBkN2QxNGIyMjZiYjcgbGVnYWN5LXRydW5rCisxODExNiA2MWY4MjMwMDkxNDVjYTEzYThmYjVmNjk4N2ExNjI5Mjk5NjYzM2NjIGxlZ2FjeS10cnVuaworMTgxMTcgMzE0MjY5OGQxNzJjODU3YmI5OTE4YzUxMmYxZWI4ZjA1NjYyMjYwYiBsZWdhY3ktdHJ1bmsKKzE4MTE4IGExODdhZDgyYzMzZjQ3MjkzZjQ0YTRjMzQyMzhkM2Q0NGM2MDRhYzAgbGVnYWN5LXRydW5rCisxODExOSBkMmFhMjY2YWU0MWM4OGViN2VjMGUyMTg5MWZlYTA2YzQ1ZDhiYzA3IGxlZ2FjeS10cnVuaworMTgxMjAgYmM0Zjg5ZWVmYjA0ZDQyZWI3ZTFiMWMyM2Y0YTM2NmU4MDMwMDRkYiBsZWdhY3ktdHJ1bmsKKzE4MTIxIDg3NzgwZGJmOGQxNzRiMWJkZTc1M2FmNTBlODYxNTYxM2U4OGFiM2QgbGVnYWN5LXRydW5rCisxODEyMiAwZDNiYWJhYzQzOThmYmUzOGI1ZjQ3MGFkOWE4OGI0ZjAyYTEwMDRkIGxlZ2FjeS10cnVuaworMTgxMjMgYjUxNjI5OTgwYzg4NmMyODRlYjQzYjVkY2I0NDI2YjkxY2EzMTVjOSBsZWdhY3ktdHJ1bmsKKzE4MTI0IDM4N2YzMWFjMzJlNjQ4YzU0Mzc5N2Y0M2EyZmYyMzkwYmQ4ZmZjMjMgbGVnYWN5LXRydW5rCisxODEyNSBjOTRjMWI2NjBkZGIxNTZhN2VmYjRlZDgxZDAwZDg0ZjhjNDEyNWM1IGxlZ2FjeS10cnVuaworMTgxMjYgZDUwMzM1YWM1NTgwM2MwNDkxMWY0YzkxMzUxYzIyNDM5ZWNkNTFiNSBsZWdhY3ktdHJ1bmsKKzE4MTI3IDA4MzI4MTBjNDYxMjQzMzc4YzUzMDU4MWE1ODQ3Y2I1MGEwMDEzY2QgbGVnYWN5LXRydW5rCisxODEyOCBkNTc0MGUxMmVhOGEyOWE5ZGFhNGFkYWI1ZGFlNTlmMzk3YjNlNWY0IGxlZ2FjeS10cnVuaworMTgxMjkgNzRjNjE1M2FiYmMxMGQwZDdkZWQyNDBmYzQ3ZWIyNWJiODc5MDI2OSBsZWdhY3ktdHJ1bmsKKzE4MTMwIDkyOWM5MmM1MGNiMmJiZWM4MzY3YzA1OGJlMDE5MTI0MDlhZjA1N2UgbGVnYWN5LXRydW5rCisxODEzMSAzZTk2ZmQ0NGI5ZDBmNzhmZDQ5MjU5ODFjNDJhZmQ1Y2NiOGQzODA0IGxlZ2FjeS10cnVuaworMTgxMzIgNjM4MWZhOGQ3ZGYzMzcwNGJjMjk2ZDgwNGViN2M3NmUzMGVjOTdlMiBsZWdhY3ktdHJ1bmsKKzE4MTMzIDY4MTU4ZDY0ZTg3NGU5NTA3NGM4OTE2NzBkZGI0NGMwZDI3ZjNmNDQgbGVnYWN5LXRydW5rCisxODEzNCA4NDdkOTllNGYyNGFkM2UyMDdlOWE2YjhkMGFiZTdlMTk0ZDgwNjAxIGxlZ2FjeS10cnVuaworMTgxMzUgNjVkMjY1ZDg5ZDhmNDI1NWM3MzU3Yjk5OGQyMjBlOWY2YzA3ODJjZCBsZWdhY3ktdHJ1bmsKKzE4MTM2IGJhMzY3N2UxZjgxYjY1ZGM3NGM0MWRlZjk1ZWVkNWQ2MDZiYzhkNjEgbGVnYWN5LXRydW5rCisxODEzNyAxMTY3NmRkYWZmMDE1ZTI4N2EwZTc4MWYyN2I5YjY3MGU4NmEyMGQ5IGxlZ2FjeS10cnVuaworMTgxMzggMjU0MTA2MmVkNGRkOThiYWM5Y2IxZmM3MDk0Y2NmMGIyOTUyMmFkNSBsZWdhY3ktdHJ1bmsKKzE4MTM5IGE1Y2E1NDk2OWEzZmZlNzI4YWY1MzYxNmU3NmRjYjgzMzkxMmE3MzkgbGVnYWN5LXRydW5rCisxODE0MCBhZjJhYTgwN2FjZGU3ZmE0Y2EwODg2NDMwNDIyNDkyMWJhNjE2ZTAxIGxlZ2FjeS10cnVuaworMTgxNDEgYmYyMWU0MTdiZWQyMjM0OTIwNTg1YzMyYjM5OWJiOGU0M2M4NmE1MSBsZWdhY3ktdHJ1bmsKKzE4MTQyIDRjN2M3NzliYWQ4NzliOGRlYjcwZGRkMzVjZTdhMmE0NTQ4ZGMyOGIgbGVnYWN5LXRydW5rCisxODE0MyBiOTQwYTBmYzI5ZTMzOTQ5MzY1MDc3YTBmNWExZTg1NzczMzczYmY0IGxlZ2FjeS10cnVuaworMTgxNDQgOGY0NTkyZjU0OTg4ZGJlZDQ2MGE3MmQ5MzE2NGM2MzRiMjFjM2RkZiBsZWdhY3ktdHJ1bmsKKzE4MTQ1IDEzMmU2OTg5MmFhNWQxNWFlNTA4ODBhZDFjNWFhMTExYmZkOWE0ZTAgbGVnYWN5LXRydW5rCisxODE0NiAzYTdhZmQzZTZjOTc4MTRiNDA0ODQ3ODEzMDMxMDNlNzE1MTE4ZDNkIGxlZ2FjeS10cnVuaworMTgxNDcgMWY0YTlhZGUzMGVjYzE3Y2IxYjc4MzQxZDFlMGIwNWI4ZjM5ZmEzMyBsZWdhY3ktdHJ1bmsKKzE4MTQ4IDI3MmMyOTY1MDgxYzY1MTg2MDM2OGQ3NDFjNWM2ZWZjOTE0YzE5Y2IgbGVnYWN5LXRydW5rCisxODE0OSAyM2IxMTA4ZDZjOGI1ZmNhZDcyODI4MDFiMTI3OGQ0ZDFiZjUxOGExIGxlZ2FjeS10cnVuaworMTgxNTAgMWY5ZDVlYjg0YjBiMjBjMGJiNmU4YWJhNmRiMDc2ZWM4NDYzOTY5MSBsZWdhY3ktdHJ1bmsKKzE4MTUxIDlkZDdlYWI4MzZkN2NmYzljNTljM2VlYTZiOTYwNGE3MGNlNDMyM2QgbGVnYWN5LXRydW5rCisxODE1MiAwOWJmNmQzMDAyNGZiMDg4YTUwOGY2OTAyZWVmNTBlNTAzNGVkNzc2IGxlZ2FjeS10cnVuaworMTgxNTMgODQ3ZGM2MWUzMGY1YzhlODhlOTc2OTViNDQ3YTk0NWEwOWM2OTZkYiBsZWdhY3ktdHJ1bmsKKzE4MTU0IDc1N2ZmODhlMTdhYWRiZGEzZDMxY2Y4OGM2YWY0ZjI5MzBkZmIyZjQgbGVnYWN5LXRydW5rCisxODE1NSBlNmExMDg1NzI1YWNmNDc4YTllODFlYjM3NWU0NzMwNWY4Y2QwY2ZlIGxlZ2FjeS10cnVuaworMTgxNTcgZjIwZGVhZWFmOGI5N2MyMWQ2ZmUwMjk1NGJlZGZiN2ZkMDQ1NjgwMyBsZWdhY3ktdHJ1bmsKKzE4MTU4IDg1YTUwOWZhY2NjNzk2ZjMwMmRmZjk2NGRiZmEyOWRiZDNiNTU1MjggbGVnYWN5LXRydW5rCisxODE1OSA2OGJjZTVkODNmN2I5M2E3MWVlMmQ0YTdlM2Q5Y2Q4N2Y2MmE2NTg4IGxlZ2FjeS10cnVuaworMTgxNjAgMGRhNGNjYzdlOGNmMzZlNmZiMmJmNWVjZWJmYjhkNWEzODY1YTNiNSBsZWdhY3ktdHJ1bmsKKzE4MTYxIDJhOWQyNzY1NjI1ZTVhNzc1ZGQ1YmRhNjBkNDM1NTRhNzY3Y2QyMjcgbGVnYWN5LXRydW5rCisxODE2MiBiMjExMDI2Y2VmODRjYTgwM2Q4NmY5ZGFhMmI5NjM2ODBlNTYyYWM4IGxlZ2FjeS10cnVuaworMTgxNjMgMDgyMDk5NGUyZDVlODc2ZjFlMDliZjJjNDc1ZDg3N2RjMWFjMzczYyBsZWdhY3ktdHJ1bmsKKzE4MTY0IGE2ZjNlZjEwODE1ZWNiOGRjMTBkOGQ3YjljYTA5NGFhZGRjYTBmYmMgbGVnYWN5LXRydW5rCisxODE2NSAwN2YyNDI2MWM2ZTZlYmUzZWZjZTQ0OGNlNDk0NmM1MTZmN2ZiMjZhIGxlZ2FjeS10cnVuaworMTgxNjYgYTk5OWQwNThmYWI1NTgxNTgzOGMwMDA2MjM1Yjk4Nzg4OWE0N2FlOCBsZWdhY3ktdHJ1bmsKKzE4MTY3IGY4NzIxZTg0OTQyNDZjYmE0MTgzMDE5MmVkYjdhMjg0N2VjZWJjODkgbGVnYWN5LXRydW5rCisxODE2OCA4NDdhZTQwMDc0ZDRlMDA3MzRiMzBhMGQ0Zjc2YmUyNWFiYTY0OTQ3IGxlZ2FjeS10cnVuaworMTgxNjkgMDc1OGNjYjMzNjNjZmQ2NGU5Zjc2YzQ4ODAxMWNlZDZlNWNjYjg2ZSBsZWdhY3ktdHJ1bmsKKzE4MTcwIDVkMmEyMTg1YzY1MWE0MzM5YmE0ZWE4MTY3ZDYwYTY0YmY1NjBjNjAgbGVnYWN5LXRydW5rCisxODE3MSAzMzMzN2U1YTQzMDBjOThkYWExNTlhY2Q4YzBmMTU4Zjc1MjVlYzM5IGxlZ2FjeS10cnVuaworMTgxNzIgODZkMDY5NDE0MDk5ZmU5ODM2MzU0MjFmOWU1Yjg3MTMyYWIwNzEzZSBsZWdhY3ktdHJ1bmsKKzE4MTczIDQ5NDY4YzAwN2MwY2Q1YWYyOWMzOTcxZWZmNzQ5NjRjNTQxNWIzYjcgbGVnYWN5LXRydW5rCisxODE3NCA4N2I1ZTQ4MDc2MmY4NmIxNzk3MGM1YjNjYTkwMWJhNjQ2ODE3MDE5IGxlZ2FjeS10cnVuaworMTgxNzUgYjQ5ZjUyMmJmODkzZWE1MmFiMDU5OTY4YWY2MjE1ZGFlYWQ1MGY0ZiBsZWdhY3ktdHJ1bmsKKzE4MTc2IDhlODY1ZjVlY2Y3ODQxZmQ0MTkxMmFiMDRlMzBiZDEzZjdjODFmNGUgbGVnYWN5LXRydW5rCisxODE3NyAxMzk3NWFlYzUxNTIxNTYwMTczMzhmYWZmMWUyOTZlM2Y4YjNjZGNjIGxlZ2FjeS10cnVuaworMTgxNzggOGFhOTQ3ZTFlZWU4MmEyZWYyZTJjZjYwZDAwMTFjMDQzOGFmY2JhNSBsZWdhY3ktdHJ1bmsKKzE4MTc5IDA5ZWM4ODJjZGU2MTQ0MjBiOTU1MWEzOGJjMTk3YjBkYTc2YWI2ZGMgbGVnYWN5LXRydW5rCisxODE4MCAzYmQxM2EyZmM4MzgyNDg0ZTAwMmM1MmU3M2NlMWI1YTVhMjM0MjkyIGxlZ2FjeS10cnVuaworMTgxODEgMTFlM2E2ZTE2YTlmMjI1ZmE2MmE4ODE0ZGVjMDRmZTRjMDNlMDZkOCBsZWdhY3ktdHJ1bmsKKzE4MTgyIGQxN2JhMTQxNDgwYWU3YTYzYjc3ODI3MGFjZTQ2ZmUxZDRmOWU1OWQgbGVnYWN5LXRydW5rCisxODE4MyBmZDE3MjE3ZDViYTg2OGFmMGZlYTM0N2M4YThjY2NhOWZiM2M4MGYwIGxlZ2FjeS10cnVuaworMTgxODQgZDhhY2EzYzg5MGY3YTRmYzM1Mjg1NmIyYzFlZTQ4YjU2MjM1MDcyOCBsZWdhY3ktdHJ1bmsKKzE4MTg1IDY1NTk0ZmViNTUyNzU3ZTc2ZWFkOTY3MGU1M2QwYmM0M2ViZjY3MjkgbGVnYWN5LXRydW5rCisxODE4NiBlNWQ0YzQyNGM0NGY5MzZiNzY0ZjhhNTBhM2ZjYWRjZjgzMzIzZGQ3IGxlZ2FjeS10cnVuaworMTgxODcgYzE4NDZkMzMxZGU5ZDFkMzk3NTJkNWU1MTEzMDFmM2JmZWI3OTI0NyBsZWdhY3ktdHJ1bmsKKzE4MTg4IDBkNjNjMGNhN2FlNDIyMzk0NjUzZWMxYjE0NzMzNGVhMDRmNzNkOTQgbGVnYWN5LXRydW5rCisxODE4OSA1ZDU4NmQ0NWNiNWE1MjRhZDhhMDNkODE4OTg1MjcxZTc3OGU5NGY5IGxlZ2FjeS10cnVuaworMTgxOTAgODE4OTA0YTk5Y2EzNzMxN2UxYzIzN2IxN2ViZjhiN2I3MDhlYTE2NSBsZWdhY3ktdHJ1bmsKKzE4MTkxIDc4OGI1MjNkNDgyN2IyNDY5NDZjMDUzYzU1Zjg0OGI2MDRjZjkyZWYgbGVnYWN5LXRydW5rCisxODE5MiAxMmFlYzMzODFjOTQ2YmM3YjE4ODcwZjIzNWQwYWY5YWQwMjc5NzZkIGxlZ2FjeS10cnVuaworMTgxOTMgZDUxNTdjOGJiMTFhNGRkYTEyYzBjN2YxY2ZkOTJiODgzNDM4YjI1ZSBsZWdhY3ktdHJ1bmsKKzE4MTk0IDEwMGM1MzNkOWEzZTYxNTY2ZDNjNTFlYTcwNGJiNmM0MWI4NzdiYjIgbGVnYWN5LXRydW5rCisxODE5NSBlYzc5ODAwZjRjMjc3MDI1ZjAwN2NhZDMzY2Q1YmVhN2UwNDY0NWZhIGxlZ2FjeS10cnVuaworMTgxOTYgYmJjOTkxYWI2ZDMyMjFhNmY1M2Q1MmM1ZWY1MjIxODg2ZmVkZjg4NCBsZWdhY3ktdHJ1bmsKKzE4MTk3IGE4MWY5MjAyODAzZGJkMmU1NTE2MGExNDk1NTk1N2UzMjA0ZWQxYTUgbGVnYWN5LXRydW5rCisxODE5OCBjYTFhZTIxYTMwMzliMzQxZDNlNjY1NWY4NDk2ZGRiOTM3MGMwN2I5IGxlZ2FjeS10cnVuaworMTgxOTkgYzJkNzQ1MWI0MmY2NmM1MjhiNTAzMjZmZGFhNGZlMWMyN2YwMGFiZSBsZWdhY3ktdHJ1bmsKKzE4MjAwIGQ5OWEwZjZjZmNlMjBjOGFlOTk2MjY2NmU2Y2UzOTU1ZDBhMTYxMjkgbGVnYWN5LXRydW5rCisxODIwMSBjMmQxMDI3NGEyMTQ4OTJmNTNmNzIzZTIxNmNiMmI4ZDI5Mzc3OWVkIGxlZ2FjeS10cnVuaworMTgyMDIgY2IxMWZhNWIxMWY0MjNkZmI1MzM4OWFkNGQyMjMxNTk5MGVlNzU1ZiBsZWdhY3ktdHJ1bmsKKzE4MjAzIGFjZjJiMTllNDM0NDMyMzE0YWI2NzAyMTNiNzcyY2RlZDNiODFmODQgbGVnYWN5LXRydW5rCisxODIwNCBlNTlmNTM4YmI4MjkzYWYyODg1MTFkNTkwZWM0NjRiZWZkNjEzMzFkIGxlZ2FjeS10cnVuaworMTgyMDUgMDNkYzc2MWQyY2M0OWU4ODQ4NTZhZDIxMTVhZTY1NTM2ZTc3ZDZjNyBsZWdhY3ktdHJ1bmsKKzE4MjA2IDU2M2RjZmVjMmFlOWU2YzNhZTE5ZmU1YmM3Yzk3NWI5ODU5MWNmYTIgbGVnYWN5LXRydW5rCisxODIwNyAzMDQ4NzFkNmU4NjYyNDQ2Nzg0NzdiZTE5NzM5MjQxYmIzMmQzN2NkIGxlZ2FjeS10cnVuaworMTgyMDggZDRhNDYzMjZmYWY0MzY5NGVhNjczOWVmMjBlNzYwNzM1NDZkYTNmNyBsZWdhY3ktdHJ1bmsKKzE4MjA5IDBjMTk2NzJkNDdiYjFlMTcxMWNkNGJiMjkxMGQ2NzM5ZTUwYTNiMWMgbGVnYWN5LXRydW5rCisxODIxMCBiM2RlYmY2NDdiNTNlYTgzMTJiYjg2MGI3NTI1ODEwMzhiNDM1Yjk2IGxlZ2FjeS10cnVuaworMTgyMTEgYTYyMjRkYTdiNGU0MzVjYmZmMmUxN2E5NGUxYjU4NTg1OTFmOGQ2OSBsZWdhY3ktdHJ1bmsKKzE4MjEyIDNlNTRjZWZjNThjNjAxZThmMjBlMjlkOTc2N2FlOTQwMjNkOGIyZTMgbGVnYWN5LXRydW5rCisxODIxMyBmNDgwZDUyYzA3NjBhZGIxNDkyZTJjMjM1ZGYyNjZhOTZmNWY3NThiIGxlZ2FjeS10cnVuaworMTgyMTQgN2JlOWVkYzRkNWRiMTFiMDI2ZGM3Y2E0OGQ5MjYxZDllYmJhMjA0YSBsZWdhY3ktdHJ1bmsKKzE4MjE1IDJhMzY5NmQzMjcyMWU3MDA5ZDI5Zjg3YzFkMDUxMGYyNmYwNzFjNDggbGVnYWN5LXRydW5rCisxODIxNiA2ZTcwYmFhNDg3ZWQ1MjM0ZDRiM2ZiZDY1ZmJkMjRlYWJlMDdhMmU5IGxlZ2FjeS10cnVuaworMTgyMTcgZWUyNzFjMjBiMDVmM2IyNDlhMGMyMjdlYmUwYzZkZjdkZmRiOGZiZiBsZWdhY3ktdHJ1bmsKKzE4MjE4IGFiMzQzOGNmMWYzZTZiMzZhOTkwY2I4YTI1YWIxMmUyYzk1YmI2MzIgbGVnYWN5LXRydW5rCisxODIxOSAxMmI5MmEzNTY0MWJlMmVlY2JhNjhlZmVhY2FkMGJlZmU0MmQ4MzkxIGxlZ2FjeS10cnVuaworMTgyMjAgNzRlMWQ3OTUyMGZkNGNkZWNjZWFmYWFjZGQzZmExYWU4YmM3YzNjOSBsZWdhY3ktdHJ1bmsKKzE4MjIxIGEzYWYxNDVkMjUzMWUwYzM2NDI3ZmM1MTM3NzRmMDNhM2UzNDU5MjUgbGVnYWN5LXRydW5rCisxODIyMiA5YTE3Y2RjZDMzMjAzNThkYzE2NTMzZDQ2ODQ3MmExYTFiOGJkNDY1IGxlZ2FjeS10cnVuaworMTgyMjMgNDdkOWZiZTY1MzdjODdjZDZkYjkzYzJiYzY3NjdhZjlkNmE2YzIwMiBsZWdhY3ktdHJ1bmsKKzE4MjI0IDA5OTUyZDZlZDM3MjU5ZjE2ZDU2MTY1MmIyMDA1MWI4NTZjNGFjODggbGVnYWN5LXRydW5rCisxODIyNSAxZTRkZTYwMTA1MWMxNjI0MTE4ZGVhMzM2NDM5MWU1NzQ3OGYyOTk1IGxlZ2FjeS10cnVuaworMTgyMjYgM2M2MDgzMjQ3Y2U3NTVjOTYwMDI3NTJlYTljNTkzZTc3NDVmNjQ5OCBsZWdhY3ktdHJ1bmsKKzE4MjI3IDgyNzVkODY0M2U3OTg5MTM0ZWRiMDQ3YTUzYTIzMWI0OTA5ODllZmEgbGVnYWN5LXRydW5rCisxODIyOCA5MDBmMjY2YzVkOGUyYzE5MjcyNDZmNzc0ZDZhYjkyODA0YzQ1MTM5IGxlZ2FjeS10cnVuaworMTgyMjkgM2FiY2I2OTY2NjE3NTkyNjRjYWI2YTU2Mjg2OWVlOGEwZTM5ZjMxMCBsZWdhY3ktdHJ1bmsKKzE4MjMwIDJlMWFiMGM5NDFjMGVjYzI3YWRlYTA5MzNjM2FmMWY3OTkwMzA1NTggbGVnYWN5LXRydW5rCisxODIzMSBjN2Y1ZGQyYmRjN2Q2OWY1M2U5ZWY3OWIwOThjMmU2ZmZjNGY0NTE0IGxlZ2FjeS10cnVuaworMTgyMzIgZjYyMzM5MzhmZjg5YjBlNjQ4ZjZmMzEwMjBlOTgxZTVhZDY5N2M0NiBsZWdhY3ktdHJ1bmsKKzE4MjMzIDAxOTIyYTBmNmY5MmIyZTNmZWIzZjhjODllYTk5ZTIxOTkyNWZjODcgbGVnYWN5LXRydW5rCisxODIzNCBhODI2YTQ2YmFlNTRhYzkwZjBmYTllZDAxZmQyNjUyMGRiYWNlZGQxIGxlZ2FjeS10cnVuaworMTgyMzUgY2VlOTZiMzkxZmZjMjYwNjc1ZWI1Njk4MTJhZDIxNmQ2ZTYxOGJjNCBsZWdhY3ktdHJ1bmsKKzE4MjM2IDQ5M2NhOWU0MjYwZTUyYTIzN2Y0MGRkMzQ3NjViY2E0Yzg4MThhOGQgbGVnYWN5LXRydW5rCisxODIzNyA4M2NkZDQ1NDg1YTU3M2EyYWU1YmY4NzI0YjcxNTE4ZTk2ZjYxNTBiIGxlZ2FjeS10cnVuaworMTgyMzggOWIxYmUxZDg0ODEwNDY3Mzk3NDY4MGFjZmM0YjQ4ZjczMDhjNTcxOSBsZWdhY3ktdHJ1bmsKKzE4MjM5IDdhODJmODQyOTBmN2JiZDMwNDg4YTE1NWE4NmIzOWQyYjgzMWYyZDcgbGVnYWN5LXRydW5rCisxODI0MCBiYjAwNmFkMDBkOWVhYzZjZjk1NzgzN2ExMmQzYmE4M2ZiZjRmODIyIGxlZ2FjeS10cnVuaworMTgyNDEgNTJjMjdiNzExNjg2OTAwNzI0OWI2M2YxNTU1YzJhNGQwNjJlMjk2MyBsZWdhY3ktdHJ1bmsKKzE4MjQyIGMxMDRmMDBjOTkwOWViMTg2MDVkODc4MzkwMjgzY2E5ODdkMTViZmEgbGVnYWN5LXRydW5rCisxODI0MyBlZWI3YzhhNWI3OWY2NDNjMmRiNzdiNDcwOWRiN2M2OTQzMzUzYWZhIGxlZ2FjeS10cnVuaworMTgyNDQgM2NiMTJlMGU3YWNkMTAyZGMzOGI2Y2Y0ZTViNGFiMzAxN2U0NTg2OCBsZWdhY3ktdHJ1bmsKKzE4MjQ1IDIyZGJjZmZjNTRlZjEwZjg4MDNjZWNhNGNhZGQ1ZDEyNDgwYWEyMjEgbGVnYWN5LXRydW5rCisxODI0NiAxNmMxMmQxNjk4ZjZhZDYwZDFkNjlkMmJkNmM1MTFlMmE0YzhhNjI3IGxlZ2FjeS10cnVuaworMTgyNDcgYjM0NjllYjc4YmM2NjgxMTMzZGEyNWRkZTUwYmE3MzI3MGMyNTZhNSBsZWdhY3ktdHJ1bmsKKzE4MjQ5IGYyOTAxYjZhYzVlZDk0NjhjNTYyYzkwNGYyODMyODFiYzA4MTE2MWUgbGVnYWN5LXRydW5rCisxODI1MCA4N2E1YmFlMWI5NDRhOTk5MzFmN2I1YzFiNzc3MmRiOTZiMGUwZGIxIGxlZ2FjeS10cnVuaworMTgyNTEgZjYyZTNlNzg3MWJlOTIzOTJjYjkzZWQyMTRhNjAyMWZlM2RkMTE5YiBsZWdhY3ktdHJ1bmsKKzE4MjUyIDUxOTJiZmQ3YThiYmQ1OTAxNzkzMjRlMDJkYzY5YjdmZTljZjViYzcgbGVnYWN5LXRydW5rCisxODI1MyBmYWU1YjFlNDE0OTFkNjM2YTk0ZGY1MmFjNGNkZmM4MDc2YjYxMWQxIGxlZ2FjeS10cnVuaworMTgyNTQgODZmMDZjMTUzZGRhNGEzYTM0MzZiNzk3MzIxMDFlMjFmYTk1YTVhNiBsZWdhY3ktdHJ1bmsKKzE4MjU1IDk2YzM5NGE0M2I1YmFmYzY3MWViYjA0MGYzZTkxMjAzZDBkM2VlYjUgbGVnYWN5LXRydW5rCisxODI1NiBkMjY1YmY0YWRhN2M5MjEwZjU2ZGYzZDk1Mjk4MzViNzM1OGMxY2Q5IGxlZ2FjeS10cnVuaworMTgyNTcgYjcxNDU5YWVkYTk1NjhkZTc5Y2EzOGI0NGU5ZWZkNjY3M2FjMzFjMiBsZWdhY3ktdHJ1bmsKKzE4MjU4IDVkNWM1MTMwNGY3YzVhYThjNzA1MDI2OTI0ZGRjYjEzYTY5NTA1ZWYgbGVnYWN5LXRydW5rCisxODI1OSAzYWI3ZmFhZTgwM2FmMjRjM2M2NzBjZTAxOGE2NmViNmMyNzgyMTAyIGxlZ2FjeS10cnVuaworMTgyNjAgYWExZWMyNzBmMmQzOGI4NGUwMmMxN2E5ZTZjNDhiOTk3MmVkYmZjMyBsZWdhY3ktdHJ1bmsKKzE4MjYxIDhmODIzMTZmNjlkNDA1MWZiOTgxYmRlZWY3Nzg5MWI3ODI0OWU3ODYgbGVnYWN5LXRydW5rCisxODI2MiBjNDVjNTA4MGM4NDQ4MTBmMmFkMzFjOTE2ZGUzYThjNTczZDU3MDMyIGxlZ2FjeS10cnVuaworMTgyNjMgZmRlZDVjOWVjYzliYmY0YTBkOGQ0M2ZjYjBlMzhiZDUxMGFlOTM2OSBsZWdhY3ktdHJ1bmsKKzE4MjY0IDViNGFiY2VmZjUzZDRkMzk1YWJjMjFhYjc5NzQ3ZWMxYzJkNGQwOTEgbGVnYWN5LXRydW5rCisxODI2NSA5YTY4OTRmOGUxYTA5NzM1ZDk5M2YyNDI5ODA4ZmY2ZTFkZWJmMzA4IGxlZ2FjeS10cnVuaworMTgyNjYgYWYxZTllNjRlZDlkMjQxODkwZGVhNjQ1ZDczYzBmYzI1MDlkYmU5NiBsZWdhY3ktdHJ1bmsKKzE4MjY3IDc3MTcxMzE4ZTMyMTI4NzI5ODQyZTY3MWFkMjY0OThhZjNhYWVhMDUgbGVnYWN5LXRydW5rCisxODI2OCAzNzUyMjljM2FjMGQ5OWVhY2FjOWJlNDFiOTY3ODRmZjQwZTAxMmJmIGxlZ2FjeS10cnVuaworMTgyNjkgZGRkOTAzZmI2YTcxMDgwMzdjZDQ5ODIzOWQ5MGExZjBiZTBiNzA3ZCBsZWdhY3ktdHJ1bmsKKzE4MjcwIDk5Y2E0MTljYTU4YmJiN2UxM2RlMDlkYjEwZmQxODcxY2YyMzRiMzUgbGVnYWN5LXRydW5rCisxODI3MSBiNjQ4Y2IwZDE5ODhmMTdmNDQ1OTg0YjEwMWFkNTUwNjA2NzFmNWEzIGxlZ2FjeS10cnVuaworMTgyNzIgNTZlOTdlNzI3NTY5YzNhMjYzMTA4N2U3NzM4MWU2ZTI0OTJjZGMxYiBsZWdhY3ktdHJ1bmsKKzE4MjczIDg3NmNmN2IzZDNkZmIxYjViOWYxMjRkNzlhZDYxOWRmOTAwMTMwZTkgbGVnYWN5LXRydW5rCisxODI3NCA0YWU0OTI5YjEyZmZlMWQ4NzMxNmU3ZjgwMjdmMGQ4NWQzY2VhYzhjIGxlZ2FjeS10cnVuaworMTgyNzUgODZmNGUxZWY4MWNhYWMwNTViOGRjNjIwMmEyYTdjNzM5MDVmNDgyMyBsZWdhY3ktdHJ1bmsKKzE4Mjc2IDBmMDBiNmM3YjliOTVlMTM2NGQwYjI2NjFiMTgxZjM0NjhlNGUzYzQgbGVnYWN5LXRydW5rCisxODI3NyBjOGQ0ZTZmMWI1ZmU5NzVjMjc2ZjE5NWZhODE0ZDhiMDZiZjhhZjQ0IGxlZ2FjeS10cnVuaworMTgyNzggNmIyNTI0ZTljNjcyZTgwNWQ2MGQ2NTVlODE2MzA4Y2UyZTllNjM0YyBsZWdhY3ktdHJ1bmsKKzE4Mjc5IDA2NDY1ZWQ4MTgyNjMwNWE4ODdkYWEyMTg2ODlmYWQ1ZGEzNDZkN2MgbGVnYWN5LXRydW5rCisxODI4MCBiZDQxZTYyNzNlZDliMzE0NjY5Yzc4MmEzOTk1YzBmNDM5NWNiYWY1IGxlZ2FjeS10cnVuaworMTgyODEgMjdlNGY1NjAxYWE1ODljMjBkZjc2MjhmZjEyZmE1MmRiY2M2YzI0OSBsZWdhY3ktdHJ1bmsKKzE4MjgyIDQ5MTg1MTdlZDZiNGNiNGYwYjNmYWY4MTQ1OWJiNjZlMDdkMGQ5ODUgbGVnYWN5LXRydW5rCisxODI4MyAzOWFiODI3ZTcyYmQ2ZTc3YmRlM2Q5MzQyYTlmNWJjNThjZWIwZmNjIGxlZ2FjeS10cnVuaworMTgyODQgN2ViZGZlNDI1YzgxZWI2MjM2NzYyYjgzN2QyNDZkZGI1OWFiNjBjMyBsZWdhY3ktdHJ1bmsKKzE4Mjg1IDk3ZWEwYjQ5NDIyZmZmMmE4NGFiOWI5ZjJiODQxZWZkNDUyYjY3MmMgbGVnYWN5LXRydW5rCisxODI4NiBiZTMzMDc5MzYwYzY2OTRhY2QwNTcxNzllZGFhZjExN2M4NzgxZGNiIGxlZ2FjeS10cnVuaworMTgyODcgYTkzNTEwNTE5MjNlMGIwNDUxNWEyMzg5NGJjMDMxY2I4OGI1YTM3YiBsZWdhY3ktdHJ1bmsKKzE4Mjg4IGMwZjFlYmQzMjA3MjM5MDA4MzUwNjFmNTUwMTNjOGIwNGRlZDk5NDIgbGVnYWN5LXRydW5rCisxODI4OSBjODMzZGNkYjNhMTU1NDdhOWJkOTExZjY5MzJlNjNjZDkwMzdhNjY5IGxlZ2FjeS10cnVuaworMTgyOTAgNzhhN2Y4YTY0Zjg1YTc0ODE3YjU5YmFmN2U3ZDEzYjUwNWE0ZTAwZSBsZWdhY3ktdHJ1bmsKKzE4MjkxIGQ1YTU0MjhlOTY1YzRkMjUwYmI0NWMxNDVkODU0MWIzZTdlNTA0NDAgbGVnYWN5LXRydW5rCisxODI5MiA4NDk2OTg1NTBiMzJhNjhiOTVmNWQxMzYzNzlmYWYzYjNmMTdlMzE4IGxlZ2FjeS10cnVuaworMTgyOTMgMjA0OWQ1NzBjYTVhN2IwZTQzY2ExNTU3MWQwNTE3N2E2NDViNGIzOSBsZWdhY3ktdHJ1bmsKKzE4Mjk0IGFjNmZiYTBlY2MyOTAyNDI4OGZiZjdhNjhiODNiNGIxZDI1MGU2YzkgbGVnYWN5LXRydW5rCisxODI5NSA1M2M5ZDE1YWQ5OGVkNjkzNGYxMTE0OGIyNDRhZTJhZTlhODI3ODk5IGxlZ2FjeS10cnVuaworMTgyOTYgZmIxMDkzNzA2MGNjYmMzODhkOGRkNjM3YmNlZTJkZjg1N2Y1Mzc4YyBsZWdhY3ktdHJ1bmsKKzE4Mjk3IDRlODU3N2ZiOTQwN2ZmNmU0ZTQwMzE4OWIzMGQ3NTdmM2E4ZTZjOGQgbGVnYWN5LXRydW5rCisxODI5OCBkNWYwNjk2YzM3ZTgxYmFiMmY5MDdiZjljNGY5YzIwYjc2YWQ3YzhjIGxlZ2FjeS10cnVuaworMTgyOTkgNDMzNDU4NjUxZWI0MDI3OTU0ZmI3MzI1YzAzNjljMGRiN2M0MzlhYSBsZWdhY3ktdHJ1bmsKKzE4MzAwIDMyOGZhYzFjYTIxMGZjYjYwMGIzNWJmYTY0MjU2NjRlM2VjZTJmYWIgbGVnYWN5LXRydW5rCisxODMwMSBlZjQ2NmExOWUzYmM2YTI1NmQwMzQzODA5NGRlNzQxZTViNjU2ZjgwIGxlZ2FjeS10cnVuaworMTgzMDIgNGFjNTU1YTg3NmEyM2Y1MDBmNzY0Zjg2NDE3NTM2NGQ2YTc4ZmFiMiBsZWdhY3ktdHJ1bmsKKzE4MzAzIGI4NTVjODhjNmFmNmE0MTZkMjgxMjUxNWJlNTZjMzc4MDc5MDE5NjcgbGVnYWN5LXRydW5rCisxODMwNCA2OGRlOTE4NWI0MWUyYTMxY2UyM2NhNmUzYjhjYzRiNjQ4ZjJjMDU4IGxlZ2FjeS10cnVuaworMTgzMDUgN2U1MTRmMWZlMzFmY2Q0ZmFmYzYwN2JmMGY4MDFlYzQ2ZGVhMzVjMiBsZWdhY3ktdHJ1bmsKKzE4MzA2IGRjZDJiZWJjMTgwZWY0M2I1ZTBhNjU0ZjkwNmVlZTkzZWU3NTkxNGIgbGVnYWN5LXRydW5rCisxODMwNyBmODEzZWRlMTM0YmY2OGQ0NWM3MmNjMDMwYjA0YTc2MDJhNjgyYjZmIGxlZ2FjeS10cnVuaworMTgzMDggZjgyM2I5YWEwYzAzNjE1MTQ5ODQ2Yjc1Mjk1NmE5NDNjZThkMTkyOCBsZWdhY3ktdHJ1bmsKKzE4MzA5IDMxZjcwY2EwNmM2OGY5NGE3NGY0YTRkNmQ3NzY0ODk1ZDI2NzIxYjAgbGVnYWN5LXRydW5rCisxODMxMCA5YWI3YTU5N2VlZmU5MTQyOWVkZDA4ODdiM2MyMmYzZDg3NzU4NGUyIGxlZ2FjeS10cnVuaworMTgzMTEgYWU0OTAwNmIyZDhmYWE2YThiODA4MDViYTM1Y2I3NDJlMDc3ZDZlNyBsZWdhY3ktdHJ1bmsKKzE4MzEyIGRiNmQ5YmI3ZWM5NDUzYjc3NGI5ODhmNDgxZDQzOTBiOGE5NWU3MzggbGVnYWN5LXRydW5rCisxODMxMyBmMmMxNzZkODQ2YTRhNWI5MGNjMWM3YmIyOTc4NDZiOTQxOWNjZjc4IGxlZ2FjeS10cnVuaworMTgzMTQgNzcyMWZiNTA5NDYyMzFkOWY4NjNlMjNjYzg3NmZlMzg2MTc4OWZmZiBsZWdhY3ktdHJ1bmsKKzE4MzE1IGNlNzc3MzhiODFhY2JmNmJkZmY0OTE4MTVkODNjZGE4Y2Y0MjlmOWIgbGVnYWN5LXRydW5rCisxODMxNiBkMDE0NmQxMjg4OTdlNzM1NDY2MWQ5MTQ4ODI5NjhjMGQ3MWZlMTRhIGxlZ2FjeS10cnVuaworMTgzMTcgNTk3MDg5ZGQyNjA5YTVlYTJlMWVkNTdhNTY1MzljOWYxZjFiMzI5MSBsZWdhY3ktdHJ1bmsKKzE4MzE4IGFmMzk3ZjdkYmJkNWViNTA3NTdlOWU1YjU2Njg4ZjRhNGEzOGFiNGIgbGVnYWN5LXRydW5rCisxODMxOSA1ZDc1OGNmNTExMWQ3ZDhjZjg0MDEwZjE0OTFhNDcyNzc2NmU5YzM2IGxlZ2FjeS10cnVuaworMTgzMjAgYTc5ZDM2MjRmODQ1NGE2ZDQyODIxOGI4Y2U0NGU3ZWUzMjlmZjNhMSBsZWdhY3ktdHJ1bmsKKzE4MzIxIGQzOTdmNjY3NzVlOGJjNDFjYTYzYzU1MDY1MTM2YzY5ODcwOGI4NWIgbGVnYWN5LXRydW5rCisxODMyMiA5Zjc3NWUyNDliYTE4MDg0MTk2YjU2MjE5YTdlNGM1NDU5YmUxNDlmIGxlZ2FjeS10cnVuaworMTgzMjMgYmJlOGE2NGUyMTllNThmNWZiNTI5ODQ5ZDVhMWNlNjAyODhmY2QzOCBsZWdhY3ktdHJ1bmsKKzE4MzI0IGFhYTkxZWQzZmNmZDI5ZDU5NDAzMmQxM2M3OGMyNTE4MTY3NmQ4ODcgbGVnYWN5LXRydW5rCisxODMyNSBjN2YyMjVhZTMxNjA1YjIwMTM1MmY1ZjNlYWIxNWU0OTgwY2JhN2UyIGxlZ2FjeS10cnVuaworMTgzMjYgMGI4NGIzMWFhOTc1MTg5N2ZiNGY4NjU3M2EyYmZhZjdmZTk3YzZkOCBsZWdhY3ktdHJ1bmsKKzE4MzI3IDk3MzFiYmI1MmZiNGFjNDliNmUzZTVjN2I2OWI4NDc0NTE0ZjQzMjIgbGVnYWN5LXRydW5rCisxODMyOCBkNzg2NDM0NWIxYzhhOGM0ZTdhYjkyYjU5MmYwZDNjZGYzMWUwMjg5IGxlZ2FjeS10cnVuaworMTgzMjkgMjE5ODZjYzE0YmIyYTdkMGM0NTcxZTI3NThmYTg0NWVlODIzMDhmOCBsZWdhY3ktdHJ1bmsKKzE4MzMwIGFjMjIwYzMxZGRkN2U5YWIwM2QyMDlhMmJmZmQ3ZWQzOTlhNWNiOTEgbGVnYWN5LXRydW5rCisxODMzMSBlMGQ4YTZmMmQwOTExYjI2ZDZmYTVjNTM0M2NiZTg0Yzk2NGI1ZjNkIGxlZ2FjeS10cnVuaworMTgzMzIgODZjZjY0ODBkMmZhNjNiN2U0ZGEzMmIzMTEzYjQ1ZTQ3NTk5OTE0NSBsZWdhY3ktdHJ1bmsKKzE4MzMzIDQ4ODA0ZGFiNzg4Y2E2ZGE1YzBlZGU1MDllNGJkMmRkZTU2MDZiNDggbGVnYWN5LXRydW5rCisxODMzNCAyZWNlOGZhNTY4MDgwNzhiNzQ1NjZmYTNlNmJlNzI0ZTIxYjBlZjU1IGxlZ2FjeS10cnVuaworMTgzMzUgZWY5MTM5MzM3NTQ3NGZhOWQ2ZDM0OTk0MmMzNmViNzc5ZWY0NDczMSBsZWdhY3ktdHJ1bmsKKzE4MzM2IDY1NWY0YzRiYjk0NDliMWRhNjBkNGRiMWNjY2NlYTMxNGJjZmE1NzMgbGVnYWN5LXRydW5rCisxODMzNyAzYmUxZjVjNTIwYWQ1MjVmMmY1NzY5MDI1YmMwMDRjNjhhNWUxYzVkIGxlZ2FjeS10cnVuaworMTgzMzggYTVjZmY4YzFmNGU0YTQyMTRiOGYzOWNlZjNjMDY4NjczMjA2MmRkZSBsZWdhY3ktdHJ1bmsKKzE4MzM5IDg1NmIyYmMyMTZmOWZiMzgyNmNmMjE1MTRhNTQ2MTRjM2ExNTQ2NDggbGVnYWN5LXRydW5rCisxODM0MCBlOTg5NjRiYzI2ODE0MzIzMTQwY2YxOTRlMzM3ZTJlNDg3MGY0YjBlIGxlZ2FjeS10cnVuaworMTgzNDEgM2MzM2YyYzM1N2QzYjZjNzVmNGMzMDY5ZWUxOWFkMWQwYWE3ZDY1NCBsZWdhY3ktdHJ1bmsKKzE4MzQyIDA3YzJlMTM2MjYwYzNlY2U0MDI2NWQ4NTIwZjIyZTFkOTljY2YxY2EgbGVnYWN5LXRydW5rCisxODM0MyA2ODM4ZTcyZjhkZDI3MDdkYTA4ZTIxMDU5NmVlNmQ5YjhkMGQ0NWY2IGxlZ2FjeS10cnVuaworMTgzNDQgMTA1YzI1MDUyZGU5OGVjNmE0NjQ1NjRkMDZlMWY5YzY0NDc5MjRkOSBsZWdhY3ktdHJ1bmsKKzE4MzQ1IDA3NzA1MTc3Y2E2YmVkOTVhODgyNjY0OWQ1NDk5YzEwNGVlN2Y2M2QgbGVnYWN5LXRydW5rCisxODM0NiAxMDkxYWQ5YTAzMDNjZmM4YTI2YTM5YTM1ZmU0OGZlNDNhMTg2N2Q5IGxlZ2FjeS10cnVuaworMTgzNDcgYjMzOThjNDUyZDk1OTFhMjE0NDUwNDA2MDlhYjNhMzAyN2Q3YTQ3MSBsZWdhY3ktdHJ1bmsKKzE4MzQ4IGYwY2E0YzY3OTU3YjU3YTlmMmNjNWFmMDZiOTVhMGNlYWUxY2IyYjUgbGVnYWN5LXRydW5rCisxODM0OSAyZDFiYmJhYzc2ZDMwN2EwZjk4YmVlY2Y1ZGMzNDAzZTI0OGRlYzU3IGxlZ2FjeS10cnVuaworMTgzNTAgMTBmNmUxOTU2NzFkZmU3ZjdhOGI4ZTlhMDVkMjJlMTg1MmNlZGNhYiBsZWdhY3ktdHJ1bmsKKzE4MzUxIDhhNTk2ZDEwYmM3MDg1M2JiZmJhYTkxY2FkYzJmOTA3MjExY2IzMzcgbGVnYWN5LXRydW5rCisxODM1MiA1OGI0YWU0ZWM1NWM2ZThjZTJiMGJhZjI3OTg3MDJmYWY3YTUxMzJkIGxlZ2FjeS10cnVuaworMTgzNTMgZjY0MDM5MDIzZDY0OTIzYTA5ZmJlNDhiODQ4YzQ0NjlmMTFmNDhkOSBsZWdhY3ktdHJ1bmsKKzE4MzU0IGZkODRiMzUyNDE0NTc2MTM4OWQ2Y2JkOGY5OTY5MGNjYmE3ZmI0OGEgbGVnYWN5LXRydW5rCisxODM1NSA4YjU5NjQ1MWYxYzE4ZjE3NGZkY2ZhOWFlYTNlYmEzOTQ5M2VmNjI2IGxlZ2FjeS10cnVuaworMTgzNTYgMzJjNDQwZDJiMGRmZDZkZDFjNzZkZmM0NzE3OWIyZjRlMGIxZDE1NSBsZWdhY3ktdHJ1bmsKKzE4MzU3IDI2ZDQxNGMwYTA5MjAyZTBiZjA1MWRiN2Q4YzkwOTA0YTBhNjEzYTcgbGVnYWN5LXRydW5rCisxODM1OCBmM2JmNWYwODJhM2Y4YTc5ZmYyMTZiNGZjZmQ1NmRlNmIxNDJiZjE4IGxlZ2FjeS10cnVuaworMTgzNTkgNDYyNzU2MTFjZDU5YmU4ODgyNTNkMjFmMmIzYzllMTQzNjAxZDFhZCBsZWdhY3ktdHJ1bmsKKzE4MzYwIDhiZTg4OWU4MTE1YmNiMDRkNGZjOWFhNTg5YmI1NWUwZjY3ZmYyY2MgbGVnYWN5LXRydW5rCisxODM2MSBkMTM3Yjk0ZjNkZGZkMTZlYmUzNTRmM2VmNDFjYTM0ZDk5YjUzNmYyIGxlZ2FjeS10cnVuaworMTgzNjIgNTVmNGE2ZThiNWIzYTdlNDMxYjkzMjliZjQ5YTY5Yjg1NmJkMGQ0YSBsZWdhY3ktdHJ1bmsKKzE4MzYzIGRhYWRkMWU4NTMxNjU4MTg0Yzg2OGQ3OTM2YTQyMjVmNmZhNjI4ZGUgbGVnYWN5LXRydW5rCisxODM2NCAzOTc0MmM5MWFkZDNlNDdlMTEyOGM0MDkxMzdkOTVmZGQyZTY5MTIxIGxlZ2FjeS10cnVuaworMTgzNjUgNGI2NThjMDU5YzIzZDlkZjljYmNiYzQ4YzcyNjg5MmJjNjA0NWFjZSBsZWdhY3ktdHJ1bmsKKzE4MzY2IDVlOWQwMTI3YWNlOWExY2M2MDFhNzA1NGJjMzE0M2YyZGI4OGRhMGEgbGVnYWN5LXRydW5rCisxODM2NyBhYzgzMGM5ZTlhODM3MmEzMWMxYjc1Zjc4NzE3ZjcwOTkwYmNiODc1IGxlZ2FjeS10cnVuaworMTgzNjggMzQwNThhZjk3NmNlY2VlYWRmMTAzMjQwYmVjMjVlNWM5Y2M3MDY0OCBsZWdhY3ktdHJ1bmsKKzE4MzY5IGVjZGU3NzE0MjhmOWViNDcyZTg2NWU5ZDMwZjI2Y2QxYTFlMTA3ZDUgbGVnYWN5LXRydW5rCisxODM3MCAzMDU0NmEyYjk0NTBlNTg5Yzk4MDk1MTIwM2UyZDYwMjMxYzk2OTkwIGxlZ2FjeS10cnVuaworMTgzNzEgZGI3NTcwMjI1ZWY4NDIxOWE5MDBiZmE3YjE4ZmY0MzY4MTJlMWQyNiBsZWdhY3ktdHJ1bmsKKzE4MzcyIDM0ODBlODNlMTdhYmIxZTg0N2FjMjIxNGFlOWE4ZTY4NWJhZjFjMTEgbGVnYWN5LXRydW5rCisxODM3MyBlMTFjMTIzMjNlYmY1YzUwOTI1MWQ5NjJjMTg0ODA3NDk3NDVkYWE2IGxlZ2FjeS10cnVuaworMTgzNzQgZWZjOTZhYWI3MWMyODkxZDA3ZTEwM2ViM2JkMjE4YTE4NDlmZmU3ZiBsZWdhY3ktdHJ1bmsKKzE4Mzc1IDNlOTRjYzJhMDQ3M2ZmNWY4YmQ3NTg2OWVjMDQ1MzMxOTJmMWRiNDIgbGVnYWN5LXRydW5rCisxODM3NiBkZDU4M2MzM2Y0NTVhY2EzNTNlNDhiODI1YzU0OGZhNjY3MmZkMWIwIGxlZ2FjeS10cnVuaworMTgzNzcgYzEzMzM2NTcyZjRmNDFhMDFiYzM4Y2Y1YzkxOTA4YTFmMDMwZWI3ZiBsZWdhY3ktdHJ1bmsKKzE4Mzc4IDVlNDFlYmRmYTlhMDBlNDNmNTZjOGYzOGNhOTlmMTY0MTk2NDJiNmIgbGVnYWN5LXRydW5rCisxODM3OSBjMGFkNGMyZWY0NDQ2MWZjYTI4NmYzNzI3YjlkMjM4MGUyOGUyMzNlIGxlZ2FjeS10cnVuaworMTgzODAgZWQyOWRmN2ViNWM5NjE4NmU3ZDIwMDI3OTFjYWZjZTViOWQ3Y2JjNyBsZWdhY3ktdHJ1bmsKKzE4MzgxIDg4NTRkOWQ1YWRkNWY0NjIxZTJmZTcxOTVmMzdjYzExZjRmNWYwOWYgbGVnYWN5LXRydW5rCisxODM4MiAwNzBlZTMxY2FmMjhiNzBlYzA1MTIyYjFmMjE0NmEzYzA2YjNmYWFlIGxlZ2FjeS10cnVuaworMTgzODMgYWFhNTQ3NTJlNGJhZDAzOTYwNWFjYzgzOWRmMDlmZTk2M2RlNjI3OSBsZWdhY3ktdHJ1bmsKKzE4Mzg0IDEwMjIxYTZjN2MzYzVmNmNlY2FmZjNiMzA4MmE1MTVhYzlhZGQ4YzUgbGVnYWN5LXRydW5rCisxODM4NSBjZjE3NTBjM2Y3ZjdmOThkMDhlZGYwMDBmYWZjNGIwZjc5NTcwNjIzIGxlZ2FjeS10cnVuaworMTgzODYgMzJjNTVmNTc0NmRlZDIwYTIzNTNmNzQ4ZTI5M2Q4MmNlOTc4YWRhZCBsZWdhY3ktdHJ1bmsKKzE4Mzg3IDhkOWZmZmVkMzRmNDA2NGJkYzkwZDJhN2Y1Y2E4MzNlNTY1YjQ2YTcgbGVnYWN5LXRydW5rCisxODM4OCAwNDFkNTdlM2EyYjkwNGJlNWE4ZmZmMGNjNmYyOThmNTA3YTExMWE1IGxlZ2FjeS10cnVuaworMTgzODkgNWZlMmVjNTA0ODM2YzEwZjIwOTk5NDY4ZjY1Njk1MDk1M2VlOGFiYyBsZWdhY3ktdHJ1bmsKKzE4MzkwIGE5M2Q3OWRhNGY4YzVkYmNmM2Y4NGJkYzQwNzA3NjY1NGU5ZDUyNDcgbGVnYWN5LXRydW5rCisxODM5MSA3OWZjZDJiMzE4MDhiZGU2Y2RhMTQ3ODYzMTVlYjYyYWM5ZjUzNTk1IGxlZ2FjeS10cnVuaworMTgzOTIgYWQxNGRkYmQwOWE3MjVlZjZiNDNlZWExNDNiYzcyODFjNjA1N2QwMCBsZWdhY3ktdHJ1bmsKKzE4MzkzIDI5ZjQyNjk0NDAyYjgwY2Q5NDM3NWIwMjhjMjEwNTZkYWNjOWQyNjcgbGVnYWN5LXRydW5rCisxODM5NCA1ZDk4ZDQ5NzEzZjIxYTFjNjkzZGNiMzE0MTgxNDcyNDI4MmIwMWI1IGxlZ2FjeS10cnVuaworMTgzOTUgMGNiNzUxYjU2MzkxNmMzMGU4ZTdhNmViMzU1NWViNWY2Y2EwMDdmZCBsZWdhY3ktdHJ1bmsKKzE4Mzk2IDdlZTM5ZTE0Y2YyYjBmODJjNGJlODVhZTA5ZWIyYzQ3ZmVkMzA2OTIgbGVnYWN5LXRydW5rCisxODM5NyBjNTlmNjQ1ZGFlZGVkMGRkYTRlOGIwMTEyNTllNjA1YzQ2ZmYwNzVhIGxlZ2FjeS10cnVuaworMTgzOTggNTAzNThkNjRkYzQzN2I3ZTVhYjM5MTVjMmRiODJhYTQ0ZTY2Njg5MSBsZWdhY3ktdHJ1bmsKKzE4Mzk5IDNiMDRkMzQyNWZmMGYzMTA4OTRjZTcyNTU4NzIzMjRjYmZkM2Q5MmUgbGVnYWN5LXRydW5rCisxODQwMCA1YWFjNTg3M2FhYWU3ZDA0ZGY3Y2QzOWUyNzZkNmIwZWM4N2Y4OWJmIGxlZ2FjeS10cnVuaworMTg0MDEgOWQ0MzEyOWM4YzU1ZjMzN2E5YmY1OTU2YjE3YjYyNjQ5MTU5MTliOCBsZWdhY3ktdHJ1bmsKKzE4NDAyIDU4YmM5OWUwMTJhODVmYTk5NzcxNWI4ZGZkNjA2ZmRhMDA4NzY1MjEgbGVnYWN5LXRydW5rCisxODQwMyA2MzU5NDgwMTA2ZWNmYTk5YWQ2MTljNGViZDcyYmNhZTAwYzU0NGZkIGxlZ2FjeS10cnVuaworMTg0MDQgNzg1MTU1ZTJjZmNhMjk0OWYwZDc3ZmI2MDYwZTVmODk0NDk4OThiZCBsZWdhY3ktdHJ1bmsKKzE4NDA1IGNiZDRmMzU1YmI5NmY3OThjMzBjMWZlYjdmMzAyNTNmODY3ODY4ZDQgbGVnYWN5LXRydW5rCisxODQwNiBkNjk2MTFjY2U4Nzc2ODNiY2M1OTdkMmUyNTZkZGUyNmJjZDM1Y2U0IGxlZ2FjeS10cnVuaworMTg0MDcgYmI5M2IxZGNhNTcxOThkMTlhZDM4NDI4ZDc1Y2ViNTQ4NGRhN2MyYSBsZWdhY3ktdHJ1bmsKKzE4NDA4IGFmN2M2MjNkOGQzM2JkN2E5MDAzYzEzNWIxMjk5MWU2YmJiODE5M2IgbGVnYWN5LXRydW5rCisxODQwOSBmM2IwNjgyZDI2ZDYwMTFhMzdmNWIxNzcyZmRiYzJjNGNkNjAyNDBkIGxlZ2FjeS10cnVuaworMTg0MTAgMmZkYmNkZWUyZTFmMmVkNjhhNWU5YTZlZGJjNjE5MDVkOTMzYjEzNSBsZWdhY3ktdHJ1bmsKKzE4NDExIDg0NTY0NmIwOWJmODI0NTgyYjg3MWQwOTI3ZmY5NzIwYTRiMmU1MTQgbGVnYWN5LXRydW5rCisxODQxMiBmOWIxODRhNTcyMjM5NTAxNzliMWM2Y2YxMDNkZGMzMjdmMmRiOGMwIGxlZ2FjeS10cnVuaworMTg0MTMgNGQ5YzMxZjMyYzA5YzI0YmZlMjQ0MGNhNjljYTZjZTAwNDMxN2QyNCBsZWdhY3ktdHJ1bmsKKzE4NDE0IDU3NDM5MzM2YzJlMGVlOTZlZjU5MjIwMTJmN2NiMmVmMTU4N2ZhNjYgbGVnYWN5LXRydW5rCisxODQxNSA0MzU0NmM1YWVlY2NlYTdlZDk5OTA4OWM5OWNkNjAwN2RjODgxNzViIGxlZ2FjeS10cnVuaworMTg0MTYgZjcyMzQ1YjQzNjYyMDFjZmU1NjU0ZTFmZDExZTNkNjk0Y2YzMWMyNSBsZWdhY3ktdHJ1bmsKKzE4NDE3IGQzZjZmMzE1NWMyNDA0YmQxYzkxZDY3YTAyY2E0MTdlNDU5YjlkNTAgbGVnYWN5LXRydW5rCisxODQxOCBiMTc1NDAwZThiMjJhZmQzM2M5NDdiMzFmODRhMzFhMzQzYWJhNzgzIGxlZ2FjeS10cnVuaworMTg0MTkgYzgxYmVkMDE2OGEwOTQ5Y2IxOWNhMjQ0OWRhNmZlOGJhYjYxNWZiMSBsZWdhY3ktdHJ1bmsKKzE4NDIwIGQwOGY4Y2ViM2Q1NTZlM2VlNDVmNDYxY2ViZTFiNzFlZDU5MzhhZGYgbGVnYWN5LXRydW5rCisxODQyMSAxNDM2NDZiYWZkMWJlODkwZjZkZmVmYjE1N2IzY2VhZmVmMGMzOTVkIGxlZ2FjeS10cnVuaworMTg0MjIgOTQ1M2Y2ZmFjZWZhNDVlMTc2OWQzNjE5ZDU1ZWE4MjMxNmUwYzgwOCBsZWdhY3ktdHJ1bmsKKzE4NDIzIDc0ZWU2NjE1ODFiNmQ0N2U4NmU1NDRkMmJhNzViMzliN2I0ODAzNDQgbGVnYWN5LXRydW5rCisxODQyNCAzNWU4YTI5ZTU0ODg0ZTAzYmE1MmVmYTQ2NDFmYzgxZjU5YWE5NzJkIGxlZ2FjeS10cnVuaworMTg0MjUgYzEwNDI2ZGE3YmNlMjQyMGQ1OTMwN2Q1Y2E0NzgxZTg2NDQ5YWFjNCBsZWdhY3ktdHJ1bmsKKzE4NDI2IDRjMjAzNzllNjYzZDQ1ODJiZjBhNDIxNmJhZjQ1ODgwMGYyNTU3YzMgbGVnYWN5LXRydW5rCisxODQyNyA5OTQyMmQ2MTBkYjNhZTk2ZjMxMjhiODA0ZGVhYzgyYmU2ZmVhMTlmIGxlZ2FjeS10cnVuaworMTg0MjggZDM4NTE2Y2U2ZjE0MTlkN2UyOTM4NzA4NDQzMjU2YzFkZGY5MWRmNSBsZWdhY3ktdHJ1bmsKKzE4NDI5IGIzNDIwYjAwMmQ1NWNmNzE5MGE0N2EzYzJjY2IzY2UwMWM4ZDY1NWUgbGVnYWN5LXRydW5rCisxODQzMCA1NmFkYzY4ZTA2ZjY5MTNkYzk0NzM5YzU0OTRkZjMyODNjYzQ1NzFjIGxlZ2FjeS10cnVuaworMTg0MzEgZDQxMGY2YWQzYzYwMThlZWEzMTQxMDdhZjFiNjNhOTg1M2E1OTc4NiBsZWdhY3ktdHJ1bmsKKzE4NDMyIDAyN2VlOWE4NzBkMmMyMzNjOGZkMTU1NmU1YTg2MzkyMzcxOTlmZTggbGVnYWN5LXRydW5rCisxODQzMyAyMTc1ZTU2N2JkMDYyOTBkYmJhNzI4MGIyODA4MDk2NDc5NjVhNjMwIGxlZ2FjeS10cnVuaworMTg0MzQgMjQwNzRmOTcyMzVjNDlkM2IzOTNkN2FkMWU2ZmEyNGEwOTY2MGI5MSBsZWdhY3ktdHJ1bmsKKzE4NDM1IDRhOWYxNTUyYmE2OGUwYmYwMzk4NzAzOTY2NTc4NTAzMTcwYzAxYTUgbGVnYWN5LXRydW5rCisxODQzNiAwM2MzMmZhYTFhNDliNGM3YzU0NDJjMmEwN2UyYzBiZTg2MjFmMjYwIGxlZ2FjeS10cnVuaworMTg0MzcgNThmZTkzN2Y3MzRhNDg3OGFmNDQ5YjlhNTk5ZmI5ZmY4ZDQ2ZTViMyBsZWdhY3ktdHJ1bmsKKzE4NDM4IDk2YzNhZTEzZGRjYTgxOGIyMTNjYzE0NmQzZDE3ZDNlNjQxYTkxNjMgbGVnYWN5LXRydW5rCisxODQzOSBlMDc2NWM1NTEyZDcxOTg5N2QwNWFhNGE0M2IyZTQ3NWYxZjVmNjY3IGxlZ2FjeS10cnVuaworMTg0NDAgMzFkNzhmMzYxNTMwY2YwODczZTkzNDE2ZTYyMGFkMDA5NDJjMjIxNSBsZWdhY3ktdHJ1bmsKKzE4NDQxIDY2ODE2NmE1MGM3MDcxYjY1NzYyOTE1ZDUwMzQxY2ZlNDRlYTI3N2QgbGVnYWN5LXRydW5rCisxODQ0MiBhZmI0NWI3ZmEyNTI4Y2VhOTA0NzIyYjZkNjUyZGVjZWFlZTQwZDNjIGxlZ2FjeS10cnVuaworMTg0NDMgNjE3OWQ0YWZhNGU0ZTVjZmYzYzI1NjJhYjY4MGZmMzUyNzhlMmFkZSBsZWdhY3ktdHJ1bmsKKzE4NDQ0IGI4ZjViNzI2N2YxNDk3YzQ1NjM4YTFlMmE4MWViOTUzNWFiMTY3NDcgbGVnYWN5LXRydW5rCisxODQ0NSA2N2MyNGM3NGYxOGNjNDM0NGM0MTRiMjJhNzIzOGMxNzUzMjExYWNiIGxlZ2FjeS10cnVuaworMTg0NDYgYjJhOWJjOTE2NjhhN2YyNDBmNDkzYTg2NjFlZDgyMDQ4NjVhYTM0YiBsZWdhY3ktdHJ1bmsKKzE4NDQ3IGZmODQxMTJkYWJjODk1MjM2MDU4MjJmMGU3YWM1MDY2OTgyNDQ3ODEgbGVnYWN5LXRydW5rCisxODQ0OCBlYmNlOWIyNjdiYjhlYTYxOTJkMTk5ZjFhNjgzYzgzOTExZWRlNGViIGxlZ2FjeS10cnVuaworMTg0NDkgY2U5MjIzMDI4MTY0OGNmZDVjMDVhYzI2MTk3N2Y2Mjk1YjQzYzQwNCBsZWdhY3ktdHJ1bmsKKzE4NDUwIDg1N2E1NDAwYmU4N2VhZGFjZTg3MGZhMzgzMjU4OGViMGY2N2ZlY2UgbGVnYWN5LXRydW5rCisxODQ1MSAxZTc1NmY5M2JmNWRhMWU5N2QzOGYyM2QyYmE2N2JjYWU4NmNkNzY1IGxlZ2FjeS10cnVuaworMTg0NTIgMzYyODY2MzJmZjNhOTNjZjIzZjkyYmRhZDlkOGZhY2IzZjAzMGFhOCBsZWdhY3ktdHJ1bmsKKzE4NDUzIDUyNzU2ZjYxM2MxODJhOGIzMDE0NjU2YTE1ODc5Njk5YTBhNzg2MWIgbGVnYWN5LXRydW5rCisxODQ1NCA5Njk0OTA5ZGJiMGE3OTg4NmM1MjBlZjI4NzE4YzA0OWJjMjZhMjU4IGxlZ2FjeS10cnVuaworMTg0NTUgMTc3OWY4NTc0YTgzYTBmNDdjYjZlNDI2ZWU0MmY2OWUwODFjZjczOSBsZWdhY3ktdHJ1bmsKKzE4NDU2IDBmNDJmNjY2OWU4MDJjMmVmMjQ2YzlkMGM2YWY1Y2NlYTFmNDY0ZWUgbGVnYWN5LXRydW5rCisxODQ1NyA1OWE0NWZhOTUzMThmZWVmNzc5MDg1ZWMxMzhmYTc1MTJjODgwMDEzIGxlZ2FjeS10cnVuaworMTg0NTggM2ZlNTllZDExYWYxMGU1NDEyODZmNmJiOTQyZTBiNzJkMWUxMjU1YSBsZWdhY3ktdHJ1bmsKKzE4NDU5IDE0OGI4YzFiNzEzYTlkYTlhMDhiMDE1Y2Q1ZDQ0Njk4NDdlNzdiODYgbGVnYWN5LXRydW5rCisxODQ2MCBkNWM5ZGQyNGQ5NzdiOGM3MDQ1MmIyOWVlYzUzYWVmNDhlOGRlYjllIGxlZ2FjeS10cnVuaworMTg0NjEgNjYzMGNjYTI5OGNjMGViOWZjZGE3MmE1MDg3YzAzYTgyNGMxMDNiZCBsZWdhY3ktdHJ1bmsKKzE4NDYyIDUzNDIzZWMwYTcyODg0YjA1N2Y0NjEyNGVjZWRlOWMyMDM3ODVmNzYgbGVnYWN5LXRydW5rCisxODQ2MyBlMjNkNWIyZTIyOGM0MmMyMzhiNjM0MzJkMTUyNDcyMmM4ZGFlMjczIGxlZ2FjeS10cnVuaworMTg0NjQgOTg3Yzc0Yzg4NDI4OTdkNmY4MzY2ODllMmI3YTFkODYxYmExNGM3OSBsZWdhY3ktdHJ1bmsKKzE4NDY1IDE1ZTFlYjEwMTliOGEzN2FmNDg4YWNmMzZkZWJmZmI3YmNmNWIxNDcgbGVnYWN5LXRydW5rCisxODQ2NiBlMWYyZTNlYzc2ZDRmZTZhZmJmNDZmYzdkMDJmZmE5NGY1ZjljYjZjIGxlZ2FjeS10cnVuaworMTg0NjcgZjk5YmI2YTkyZTg0Zjc4MWE2N2ViZmNlNjUxMjg3OTQ0ZTgyNmI5MSBsZWdhY3ktdHJ1bmsKKzE4NDY4IDU5YmZiYmU1ODFjMmQwYmE5ZTc2Yzg0YTcxYmI1YmRiMzQ3Y2Q5ODggbGVnYWN5LXRydW5rCisxODQ2OSBmZjA3Njc3NTNkODEzZGMwODBiNDBjYzE2MGFkYWFiNTVmZmMyZTA0IGxlZ2FjeS10cnVuaworMTg0NzAgMDkwNmM4ZTJjOTYxYzNiMDNmMWIzYWFmM2Y4MGM1MzdmMjQ1YmQ0OCBsZWdhY3ktdHJ1bmsKKzE4NDcxIGVkMzE1YjU1ZjE5ZTYyZmFmMzhjZGQwMzc0YjdlZmMzM2EwNDc1NTYgbGVnYWN5LXRydW5rCisxODQ3MiAyZmU3NDI3NTkxZWE5NjdmYzg3YjBkOTFkYzI2OTk5MWM2ZDEwYjI4IGxlZ2FjeS10cnVuaworMTg0NzMgZTU3ZjkzYWU0ZmU5ZjY4NTJjMmNlOWJhOTcwOGUxMTdlNDFiYzUzZSBsZWdhY3ktdHJ1bmsKKzE4NDc0IDM1NzQ5YTU1N2YxZTVkNmQwYmE1YTdmOWIzZWZjNTAyZjEzYmNkOTYgbGVnYWN5LXRydW5rCisxODQ3NSA3YmI3YjcyZmE2NjY2YzE1MmYwNDJhNWExMmVkYmYxNmEzODY0YjY5IGxlZ2FjeS10cnVuaworMTg0NzYgMDc4OWRkMDYyZDZjMDgzM2QwMWZiYjRmZjFiNDIzMjU2Yzg1M2U4NCBsZWdhY3ktdHJ1bmsKKzE4NDc3IGUxMmI2NTBmMGZhY2U2ZDFmODdmZGU5Y2VlOTFhZmY1NDkyMmMwMzEgbGVnYWN5LXRydW5rCisxODQ3OCAwNTJlMzcyY2UxNTFjODQ3NzdmM2ZkZDlhMjhiMGIyMTJmNGU1ZjAwIGxlZ2FjeS10cnVuaworMTg0NzkgZDNlODZmZjg5M2IxMDU2ZDdlMDY1MTdkMWU5ZDg2YTU4NDZiY2M1OSBsZWdhY3ktdHJ1bmsKKzE4NDgwIDUwZDliNTkwNjI3ZDY0ZTM2ZDI5YTA1ODNiYjc0ZDczZTg5ZTUxZWEgbGVnYWN5LXRydW5rCisxODQ4MSAzMGVjODczMzM4YWQxNTY0NGZkZTdmYWVlMjQ2NjFkMGM5ZWE3ZDRiIGxlZ2FjeS10cnVuaworMTg0ODIgODI2MmJmYTUxNGMyYzAwMjkzZTczNmQyNmY1YmE4YzY3NjY2MTM0ZSBsZWdhY3ktdHJ1bmsKKzE4NDgzIGY1OTQ5Mzk3YzhhNTg4ZmY2ZWQwMWQzODBlYTQ2OWRlMTQ1Y2I2MGQgbGVnYWN5LXRydW5rCisxODQ4NCBkYjY5YzA5MmM5MDZkMzk3OTM0YjMwMjNkNjc4MjliODkzMTFjN2U5IGxlZ2FjeS10cnVuaworMTg0ODUgNTBkZTNiMTk4YTYyMDViMDU3MDBjYzJhM2I4MDdlYmRmYWVkYjMzNyBsZWdhY3ktdHJ1bmsKKzE4NDg2IDM4ZjA5ZmIxOGI4MDIwYzc3YTJjNmM5ZDY4YTlmNGRmZjNlYzZjYWMgbGVnYWN5LXRydW5rCisxODQ4NyA1MzgwOTcxOTk3ODM5ODZkMzRiNzVlYWU2ODBjY2Q1ZDNlZjY3MmViIGxlZ2FjeS10cnVuaworMTg0ODggN2UyYmI5OTRjMmQzYWM2ZTU2MzAyZTEyYjhkMzQ4NjQyM2NjZjZiNSBsZWdhY3ktdHJ1bmsKKzE4NDg5IDdmMjJlMzRjZTQwZTNlYWEyY2I5MmVjNTZjZDdmYThkNzg5ZTQyY2MgbGVnYWN5LXRydW5rCisxODQ5MCA1MGJiZWVkYmNlNGE2ODNiYTMwNjNmODNiYjIwMmQ4MjM0MTc4NmZjIGxlZ2FjeS10cnVuaworMTg0OTEgZGI3ZWU1YzYwYWYwYjg3ZDIzMDZjMDIwODY0OWM3NjYxMDhkNjc1MCBsZWdhY3ktdHJ1bmsKKzE4NDkyIDU1MmRiOGQ4M2FjZDg5NmQyMWQ2M2JhZTZkZjBiOWQ2N2QyNTIwZDMgbGVnYWN5LXRydW5rCisxODQ5MyAxOTc1NmI5MTgwNDE2NjI2Zjk1NDhlNzgyYTEzNmVjNjdmZTExYWE5IGxlZ2FjeS10cnVuaworMTg0OTQgMmE2MTJhZTI1MDk1OTJhMmMzODA5OGMzNGFhNTZiMWY3MTFlZWE1YSBsZWdhY3ktdHJ1bmsKKzE4NDk1IDQ0NmYzZjkzOWRmMDM5NzY2NTdlMTkxY2IzYzJiOTAyNmRmMDBiNDYgbGVnYWN5LXRydW5rCisxODQ5NiA4Mzg1NTE4Njk3OTA0ZDg5M2I3MDJjNDA1ZGU0MjQ5YzkyOWQ2ZmFhIGxlZ2FjeS10cnVuaworMTg0OTcgMmQ2ZTc2ODlkYzQyMDU3OTUyYmM2MmYyNzQ1ZGVjNWFhYzc2NjkzYyBsZWdhY3ktdHJ1bmsKKzE4NDk4IDdmYjdjNTFhMmU2MTYyMDA3YzNlYjNjNWFkNzVjMWI5M2FhNGQyZDcgbGVnYWN5LXRydW5rCisxODQ5OSA3NjM5YTk1NTI0NzllMzA5M2RhY2E4MmQzNzBlYzBhZTExNjU2YjhiIGxlZ2FjeS10cnVuaworMTg1MDAgN2ZiNTA5OWJlMjAyNjliYzUwYjcyM2I1NzNhMGI4ZDhiOTAzYWFkYSBsZWdhY3ktdHJ1bmsKKzE4NTAxIGM0YmVjN2M0ZDZmZjY0MTM4ZGNlMmEyYzgwZGY2NGMyYjhlODc0MjggbGVnYWN5LXRydW5rCisxODUwMiBmMGNkYTBkNGI1M2MyMDgyNmE4ZTU4M2FhMDMwMTc1NDc1N2U3MzZhIGxlZ2FjeS10cnVuaworMTg1MDMgMTljOGEyZDM4MDdkNThkYTA0MGVhYTdkM2NlNmYzODhjMWY4NDdhMSBsZWdhY3ktdHJ1bmsKKzE4NTA0IDYzYjgwYjc3ZjViMmRiMzA5Zjk4NzJhNmVhYTUxMTAyNmZjODJkNjQgbGVnYWN5LXRydW5rCisxODUwNSA4Y2ZlMjZlZDcyOGQ5NDJkMGQ1MmYxYTQ1NjMxZGNiY2VkNTBkOWIyIGxlZ2FjeS10cnVuaworMTg1MDYgYzEzZjVhMjBlYTMxMjMzOGExZmQ2OWIzNGRkZTFhNWNlMjhjMTE0NiBsZWdhY3ktdHJ1bmsKKzE4NTA3IDViMTU4ZmMwZWQ1NTVhMWFiMWU4NDI0NTE5MzIzMWEwMTkwMWU2NzIgbGVnYWN5LXRydW5rCisxODUwOCBlOWY0Yjc2Njk5YWEyMzEwZGNmMTk2NWMxMzM4Nzk3ODU1OGMxNzA0IGxlZ2FjeS10cnVuaworMTg1MDkgMWE0YTVhOTM2ZjUwOGNlNWM1NDdmYTAwODQ0NzE4OTA4MjIyYTdhYSBsZWdhY3ktdHJ1bmsKKzE4NTEwIDU2Yzc0NDgzYjA1MGNjMjE2NzBlZjU3NDkzZTBlNDE5MzUyMzE0MTkgbGVnYWN5LXRydW5rCisxODUxMSAyZjE3OGJkZGRjMTYzN2QxYjE1YzI4YmJjZmI5MWE3Njc2NDg2NWEzIGxlZ2FjeS10cnVuaworMTg1MTIgOTI3YmNjMzE1ZTU2ZTgzMDFmMmM1NWU3YjFjZmE0NzU5NjdmOWRhOSBsZWdhY3ktdHJ1bmsKKzE4NTEzIDNlMjU0ZjU2ZWVmMWNkNWM0ZjI3NjVmNDIxOWY4OWRkNDRjMTU1NjkgbGVnYWN5LXRydW5rCisxODUxNCA4MmJlYzM4OGM2MzYyOWFhYzViODQwYThhODFkNDY1NGU4ZjI5ODkxIGxlZ2FjeS10cnVuaworMTg1MTUgNjQwNWYzMGFhMDhjMmNjNTEwOGVjYTZlMzNmN2UzOTM5NGE4MzVhNiBsZWdhY3ktdHJ1bmsKKzE4NTE2IDgzZDU5OTY1MmI2MjJiNTM5YWFiZWRjOGEwZGY4MjA3NTMxMTYyOTkgbGVnYWN5LXRydW5rCisxODUxNyAxNzNkNzBlNzJjOWY2NWFlOGE1YTk2ZDJlZThhNDE3NDExZGI4YzU5IGxlZ2FjeS10cnVuaworMTg1MTggMDI2YTkyMTA1MTQ1MjhjNGRiZWZkZWU3ZTlhNmMyMzViNzcwMmY4ZiBsZWdhY3ktdHJ1bmsKKzE4NTE5IDU2Y2UzOGU1NzUwMjZiYjNjMmIwNjk2NzQ3OTQyOWVkNjZhNDUxM2EgbGVnYWN5LXRydW5rCisxODUyMCA2NTg1ZDNjMDRhMjlkODU2OWFkNjRkNjhiYTBhZjUxY2RmMmQ5Mjc3IGxlZ2FjeS10cnVuaworMTg1MjEgZWFmNWE3OGJkMjgyNzExOGEyNjE2NmIzMDkwM2I0ZDY0YTgxMmQwNyBsZWdhY3ktdHJ1bmsKKzE4NTIyIGFmYWQ2NTk3NWE4MmU1YzQ5OWFjZTMxMDcyMTgzMjEzOGNjMmI3YjcgbGVnYWN5LXRydW5rCisxODUyMyA1ZjNlZTVmMWIzZDc5N2Y5ZWRmNDhjYmUyYjdiYjczNzczNjY3ODQyIGxlZ2FjeS10cnVuaworMTg1MjQgMWU0MTcxNzE3ZTc3Y2NmMTgxZmM2YzFkM2I3MDg5MmU5ZDg0M2FjYyBsZWdhY3ktdHJ1bmsKKzE4NTI1IDE4M2QwYmQyZmQ2NmRjMmVjNTRhMDg2NzZmNDIwZTUyZjg0MTZlNWQgbGVnYWN5LXRydW5rCisxODUyNiAxNjkwNzU1YzU5ODZiYWJkMzQ0MDU1ZjZhOGZkZGM4NmNiNWZlYWU2IGxlZ2FjeS10cnVuaworMTg1MjcgOTBlYTFlM2VlZWIxNGQzNDNkZDkxYTRiMDAxZGIxZWZkMWVhNmQ3MCBsZWdhY3ktdHJ1bmsKKzE4NTI4IDNkNTViZjY1Njk5YWRkYzQ2YTBmZTgyNjEyOTA1YWE1MjgwNzc0NTkgbGVnYWN5LXRydW5rCisxODUyOSA4YjRjYTVkYTdkYzI2NWQ4NzZjYjMxMjM3MTk5ZWE2NzE5NWJhNmZiIGxlZ2FjeS10cnVuaworMTg1MzAgNWM2NWU2NzZmMjk5NmM1MGYwODY0YjRmMDQ4MzgyZmE5OGJmOTk1NCBsZWdhY3ktdHJ1bmsKKzE4NTMxIDUxYjU4OTgwNDA1MTRmODNiZTc0YTczNDMzNzcxNGI5MTAzZmU5OGMgbGVnYWN5LXRydW5rCisxODUzMiBjM2M4YmZhZDA3Y2EzMmMzMjljOGMyZTkzZDZlYzYyYTZmNTQ3ZWNlIGxlZ2FjeS10cnVuaworMTg1MzMgMjc3YTdhMTVlYjk0YjA1MzYxNTJjNTVlYWVkMGM4MjZlN2E2NzEwYyBsZWdhY3ktdHJ1bmsKKzE4NTM0IDY3YjNhYzQzOWY2NDAyMjgwZjk1N2MzMTA5MTVhMzVmMmRlODRjNGQgbGVnYWN5LXRydW5rCisxODUzNSA3NWMzYTY0ODQ3YzQ5YWYyMDc2NTMyZjViZjUzZjEwZDA0NDgzMWIyIGxlZ2FjeS10cnVuaworMTg1MzYgOTNhNTc1YmJhMDlmNmY4NTY4OGE3YjZlYjY3Y2U5OWFiNTQ4YThlZCBsZWdhY3ktdHJ1bmsKKzE4NTM3IDNmMmZmMzhjYzY1NzRlZDk5YzEyMTgwZGFlYWVlZTRlZDllNTAzMTUgbGVnYWN5LXRydW5rCisxODUzOCAyOWEyYTExNGU5YzkzMzJjNjhkMGI0MDE0MTkwZTdkNjY2NjUxYWZkIGxlZ2FjeS10cnVuaworMTg1MzkgMDFhNGRjMzFiNTc5YjI0ZDFiNjY3ZTQ1MjRiMGUwNWQ5YTczYjYyOSBsZWdhY3ktdHJ1bmsKKzE4NTQwIDljNzFhZGQ3ZTE2MDgxOGFlY2NhMjdjYzFiMmFhOTM2ZmQ5ZDA4ZTcgbGVnYWN5LXRydW5rCisxODU0MSBlYTQ4MzJkZWVhYzU5ZjE3YTBiNzUzZTA2NWRjNDg3MWRhMmFlMGUyIGxlZ2FjeS10cnVuaworMTg1NDIgM2NhNzAyY2FhNjFhZWFjYzY5OTVkMGNiZmRhOGE4NjJhNGVlMTBmNSBsZWdhY3ktdHJ1bmsKKzE4NTQzIGE1MTlmMjA3ZWQzNjg3MjNkYzIwOTZjZGI4YjRkMDhhMTY0NjRlZjAgbGVnYWN5LXRydW5rCisxODU0NCAxMDYxMmNiYjQ2MjNhZGVmYjk2Y2Y2OWRlOTgyYmYwYTE3YTU0NjBlIGxlZ2FjeS10cnVuaworMTg1NDUgZWNkYWNmNTE3NTk0NTI1ZGFhNWI4ZThjMjQ0NTE0ZTMwOTMyOGEwMyBsZWdhY3ktdHJ1bmsKKzE4NTQ2IGQ2Zjg2NjE5ZGJjNzM0ZmFlM2MzZGU0NzVlNWE5ZjExMDJjNWM4ZGIgbGVnYWN5LXRydW5rCisxODU0NyA5ODZkMWMzY2NkZGU5MWExNDE2YzkzNWU4OGVlNTNkMjllYjFjMDFmIGxlZ2FjeS10cnVuaworMTg1NDggZThmNWU2MWE4Yjk0MzVhODM2NTk1MTFjYTE0YWEwMTZhYmQ5MmU0ZCBsZWdhY3ktdHJ1bmsKKzE4NTQ5IDg0Y2RjODlhYzU2MWY5ODJhYjdiOThhM2Q0NmQ1NjVhNjBhNzRmOWUgcmVsZWFzZTIwLW1haW50CisxODU1MCAxNzVhM2IxNzIwNjg4MGEyOGQ3ZjQxNmZjMTEwYzhlYTI5ODA1NDljIHJlbGVhc2UyMC1tYWludAorMTg1NTEgNTU2YTRlNTNjMjY5NzczMzkxODgxYzYxNWRmYTE3YTEwZDNlZDI4YSByZWxlYXNlMjAtbWFpbnQKKzE4NTUyIGU2MDU2MjQwMDBiZjE5MTA1MDY5YjA3YTBjNjhiMjQ2YWZiNjdhNTMgbGVnYWN5LXRydW5rCisxODU1MyBmNDE3MDUzMDRhZjQ0MmYzMmNlOTA2ZGQyZjRkODk5MTE0NmNmMDlhIGxlZ2FjeS10cnVuaworMTg1NTQgMjgwYTc4ZWQwMDM1NTI4MDhkYzQ0Y2JiZjdjNTc2MjY2YWUxOWQ0YSBsZWdhY3ktdHJ1bmsKKzE4NTU1IDZmMTQ1M2JiZDU2OTAyZWI0ZmE3NTE3MTEwMTA3MGYxYjQwZjllZjYgbGVnYWN5LXRydW5rCisxODU1NiAxMzk2ODRhOTAwNDFhMGVjYzg5MDc2YTc2NWE0YmY2MWNkNTkzZTUyIGxlZ2FjeS10cnVuaworMTg1NTcgNTdhNDg1NzQzMGZmNWQyNTc3MWQ1Y2YyNDMyNTM3ZjFlNDgzYjk5YyBsZWdhY3ktdHJ1bmsKKzE4NTU4IDM2ZjdjMDljMmQ3ZjI0M2U2YzNhNmY1Y2Y3N2ZjMDk3ZmU1YTAyN2IgbGVnYWN5LXRydW5rCisxODU1OSAwYzIyYWYyY2RkNmZiMzdhNzEwOTg5NGJiNjIxN2IyMWEyNDQ3Zjg4IGxlZ2FjeS10cnVuaworMTg1NjAgOGUwMTQxN2VjMDAxN2FiNGU0ZjI1OTY0N2YzZjY0ZDgzZjk4MzM4OCBsZWdhY3ktdHJ1bmsKKzE4NTYxIDRiMTY4ZWViNjFiM2I3Yzc0YzY4YmRkYmFmMGNlNjIzNDRmNjQxMDYgbGVnYWN5LXRydW5rCisxODU2MiA1YTVlOWU3ZmI2YjIxMjcwOWM0NWFiYmM4ZTY0ZWM0MWI0YmI1YTZmIGxlZ2FjeS10cnVuaworMTg1NjMgMTk5N2RmZWQ4ZDIxZDZkOWY1ZWJkZDRkNWQwYzhlOGVmNDExNjVkNiBsZWdhY3ktdHJ1bmsKKzE4NTY0IGY2ZWUwZDQ2NzJkNjI5NjA2NWQ2Yjg4MTZlYTA4MTVmZTM0YmIzMTAgbGVnYWN5LXRydW5rCisxODU2NSA2MTJmYjc3MjdmYTI5OGUxNmYxY2M5NDRhZjNmOGQ2NjZmOTU4ZTkzIGxlZ2FjeS10cnVuaworMTg1NjYgYjQwOGFjZGNhZjNlZWVjYzVmZjBmMmExYmRjYzgwZGU3ODAwZGJhMyBsZWdhY3ktdHJ1bmsKKzE4NTY3IGJmOWJiMGUzZGQzNDEzZjMwNjc2MmZjYTE5YmU4M2RhODk1MTk2ZWYgbGVnYWN5LXRydW5rCisxODU2OCAzMDc1YTE1M2EwODNlMjI5YmRjYTJmZWJhZjAxOTMwZTFlMDFmNGI4IGxlZ2FjeS10cnVuaworMTg1NjkgZTI5NzhjMGI3Y2JkNjkyMWFmOTZhMzlkMzQxYjBiZjBhOTUyMDdhNyBsZWdhY3ktdHJ1bmsKKzE4NTcwIDE2MTg5MmJmN2MxNWVmZTk4ZWRmNDk5MDNlZmE5MDFlMmI0YjUzMWUgbGVnYWN5LXRydW5rCisxODU3MSBhNjI2ZTM5ZDY4NGRjMjNmYTZmNWY0YWE2MWRlNzk4NmU1ZDlmMGVjIGxlZ2FjeS10cnVuaworMTg1NzIgMjQ4MWI1ZmU4NmQ2ZGNlN2FjNDYwM2MzM2I5NTE1YTZiZjQzMTkxNiBsZWdhY3ktdHJ1bmsKKzE4NTczIDkwMWYzOGY3ZjZmNzU1MDc3NTJkMDM2YTIwNzA0MDdhNWExYjNjZDEgbGVnYWN5LXRydW5rCisxODU3NCAzNjkzYWJkMGVhYzFkNDFhNDcwODdlMDI3NmU3NTRjNTYzZmZjMTg5IGxlZ2FjeS10cnVuaworMTg1NzUgMmEzMDUxMjlkNTY2ZWMxNDNlNDI3MmE4YjA1MGJmMjg1NjE5ZmM5MCBsZWdhY3ktdHJ1bmsKKzE4NTc2IDRkOTc4YWQ4ZmIwNWQ2MDRlYTk3NGEwNjg2NzNiNzJkOGI5MDUxNWEgbGVnYWN5LXRydW5rCisxODU3NyAzNjJlNTNmNDNkZDIzNjFiOTA5ODhmZTY0YzgyODJlZDk0MzhkZThjIGxlZ2FjeS10cnVuaworMTg1NzggYzY1NmYzMDhhYTFmODdmY2ZkZGZhMjNhZGZiODBiNTgwMGI1MjEwOCBsZWdhY3ktdHJ1bmsKKzE4NTc5IDZlMmVjOGY3Yzg3MWY3NGEzYmVjMmVhMWZlNjEyN2YxYWZhOWQ1ZjMgbGVnYWN5LXRydW5rCisxODU4MCAyNjVmNGVmN2Q3YjFkMGQ2MjVhMzQzMDZlYzA2YWQ4ZDkwNjgzZWM3IGxlZ2FjeS10cnVuaworMTg1ODEgMDYxMjUyZjVjNzI5NmNkMzQ2ODQ4ZWNjMzQxYThlZjYyZjQ4ZTU5NiBsZWdhY3ktdHJ1bmsKKzE4NTgyIGVhZDhiNWI5OTRhZDdjZTYxMmNmNjBlYmM0NjAyY2VmNWU0YWEzNzUgbGVnYWN5LXRydW5rCisxODU4MyAzZTg2MmE1MTg2MWZkNmI2ZGNmMTkyZTE3ZDhiZjdkMzUwZGM1YTMyIGxlZ2FjeS10cnVuaworMTg1ODQgYWM3YWUzZWFkODhhNDRhYWEzNTQ5YWYwMGI1ZmU3ZmU4MWJhMzZlNSBsZWdhY3ktdHJ1bmsKKzE4NTg1IDJkY2M0YTg2YTg3NmE3MWY3YzZhOWU3MzdhYzVhNjNmNWMzNjBhMjAgbGVnYWN5LXRydW5rCisxODU4NiA4ZTQwMmFlY2EwYTNkMWNkZjhkYzM0YmZhMGU1ZjQ3OGM3ZTliMjM5IGxlZ2FjeS10cnVuaworMTg1ODcgZGI5ZjE4OTNiZTAxNjgxNjY3NjI1YWEzNDhlM2E4YmM5ZDA1NTQyYSBsZWdhY3ktdHJ1bmsKKzE4NTg4IDY0MWFkNmM4MzNiZTgwNGNhZGY1YWM4MDVlMmFhMzczY2FhMzAyYmQgbGVnYWN5LXRydW5rCisxODU4OSA0ZGQwYjk3YWE2ZTE2NjkyOGIwYzVhNWEyNmI5MGZkOWQ5OWNkMDk5IGxlZ2FjeS10cnVuaworMTg1OTAgMmIzYmMwOGQ0ZDg1M2FlZjQwNDg0ZjEzZDk3YTVhNTgyNWZhMWJiNyBsZWdhY3ktdHJ1bmsKKzE4NTkxIGQzYzdlZDE1Y2UyNTc3OGViOTUxMWZiZjEwNzFhODNkODRmZjY1ZTcgbGVnYWN5LXRydW5rCisxODU5MiBhMDY0MTU5OTRjYjU2YTc4NmY2MWY1ZTEwMzAwOTQ1NzRiZGE3YTAzIGxlZ2FjeS10cnVuaworMTg1OTMgM2FkMzAwNGRmZTZkYjZkOWQ0M2E4NjY4Mjc3NTRmYjIwNjAwZjMyMyBsZWdhY3ktdHJ1bmsKKzE4NTk0IDAwYzY4NTVkNzQyYThkMmE1MTg4M2Y2OGU3OTRlN2NlYjhhOTZhM2IgbGVnYWN5LXRydW5rCisxODU5NSAzMTdjMjAzYWJlZTY4NmNiNmJkYTI4N2FiZmExZDUyZTk5ZjBmZTNmIGxlZ2FjeS10cnVuaworMTg1OTYgODVkYzBjZTAxNjJlNmYzY2U2NTY0NDNlMGE0NjQwZTZiODllN2UxNSBsZWdhY3ktdHJ1bmsKKzE4NTk3IDYxMjRjZWRmODQzOGRjODZhMGY4Mzk1MjQzZmM5NGExNmYzNmJlNjggbGVnYWN5LXRydW5rCisxODU5OCAyNzI5MGViOWM1MjY0YjA3Yjk1YzVjOWRjZGZmY2Q1NDZkOTFmMzA4IGxlZ2FjeS10cnVuaworMTg1OTkgNzZjYWYwODU1ZDFmZmU3ZTk3MWJjMTEwMmNhODkyOTBhOTljZjgzZiBsZWdhY3ktdHJ1bmsKKzE4NjAwIDk3ODIxYTQ2ZTAwMDMwM2E2YjgyYzA5MjMxNjFmZTBiYzA1ZmIwYzggbGVnYWN5LXRydW5rCisxODYwMSAwYTc3MDEzYzUwYWNhMjA0NWIxNDg4NGY1ODMxODA3NWM3N2QzMTkyIGxlZ2FjeS10cnVuaworMTg2MDIgOWQxNWJhZjcxNDVhZmYyZTUwNWMwZjJiM2JmNDVhZWRiYjFkODg5NCBsZWdhY3ktdHJ1bmsKKzE4NjAzIGFiYjk0NjA5MzE4ZTZjNDM0MDQ3N2QwZjIxNmIzYjYyMjNhNDY3OGQgbGVnYWN5LXRydW5rCisxODYwNCBiZjgwODY2ODI0ZWNiNWVmOGE3OGM1OWEzODg4ZWMxMTk3MDBjM2Q5IGxlZ2FjeS10cnVuaworMTg2MDUgNGMwNDNlMjI3YzQ0MDdlYWRiMDlmMWYxYmQzODg5OWZkZjI0ZDRjZiBsZWdhY3ktdHJ1bmsKKzE4NjA2IGY1YzA0MTM0ZjRlMmJkN2FkM2E5ZGM4YzVhYmNhNjdhMDNiMTkyZjQgbGVnYWN5LXRydW5rCisxODYwNyA0ZGJiZjMyMmE5ZGYyY2ZiYjU1ODkwYWM0MTVhNDNiNmNmMmE2Yjc1IGxlZ2FjeS10cnVuaworMTg2MDggZmEzZjUzN2M4MjQ5YzQ0YWFmNjYwNTU2YTVhMWVkMzIyOWUyNzA4MCBsZWdhY3ktdHJ1bmsKKzE4NjA5IDc5ZjllMzMzMzE2ZTZiY2RlMmIwOWFjMWMwN2FlNDU5N2E2NWQ4ZTkgbGVnYWN5LXRydW5rCisxODYxMCA3N2M3NjFjZDEyNzJlOWIwMzA0M2JlNWEyNmFiM2Q2NDM2Mjc5MmUzIGxlZ2FjeS10cnVuaworMTg2MTEgZDY3Y2ZjYzA2ODNlZGE4NGZkMTY0MTU1NWJiOGUwMTk1MmU0Y2Y2MyBsZWdhY3ktdHJ1bmsKKzE4NjEyIDkzOWI4ZmZmYzQ1MmUwNTI1YjM4MDA2MWI2MzI4NjhkMzU1ZTZlOWQgbGVnYWN5LXRydW5rCisxODYxMyBjMDgyMmEwNWU5MjNiNmY1MDA5NGQ4NTkwZDQyNDBlYTgxOWZkOGI1IGxlZ2FjeS10cnVuaworMTg2MTQgOGQwMGY3NTU1ZWVjMjc4MmY4NTBjYTBmY2ZiOTg2NzBmZjNhZmViOCBsZWdhY3ktdHJ1bmsKKzE4NjE1IDdjOGZhYzRhYzMxYWJkNThjOTMxYmFiZTI2ZmUzYzA5ZjAwNDNiMTcgbGVnYWN5LXRydW5rCisxODYxNiBhNDNhOGExZjQ2ZWUxYmI2NWM3NDczYmM5YmU2OWUyYTNmYjUzNjBjIGxlZ2FjeS10cnVuaworMTg2MTcgNDU5NzljZGNkMzY5NzM5Y2JiODU5YTg1ZjVmNmM1ZDY1NWE0OTQ3NSBsZWdhY3ktdHJ1bmsKKzE4NjE4IGE5ZTE1YmNhYjMyY2I2MDEzM2RiNzYxMGYwMWIzZDI2ZTljZTE1MmMgbGVnYWN5LXRydW5rCisxODYxOSBhMWQ4OGFiMDIzYTBiZWNkNWRlZmE1MGI4YzM1MzZmMzRjZTFlNzI5IGxlZ2FjeS10cnVuaworMTg2MjAgYTMxYzM4NjhjODEyZmNlNzY2NmQxMjRiOGNiNTQ0NWY2ZGVkZmFjMSBsZWdhY3ktdHJ1bmsKKzE4NjIxIGE1NmMwMDBlNTc5Y2Y3ZTQzNTY3MWVmY2I4YTc1MjM3MzhmNTI5MDAgbGVnYWN5LXRydW5rCisxODYyMiA5NWVlNzlkZmQ3NDYyMzE4NjdkNzM4NGViMGIwMzdhNGZhNTEwNDgxIGxlZ2FjeS10cnVuaworMTg2MjMgZGVmNDE2Y2Q5MjNkZjIyYThiMWFmZGE0MGM0Y2E2NDlkODY5MGQwYiBsZWdhY3ktdHJ1bmsKKzE4NjI0IDM1ZTA4ZGQzN2RmMTM3ZTE2NTI4NTY4MDVlOTM5NWMyZWE2Y2ZlMjYgbGVnYWN5LXRydW5rCisxODYyNSA3YjNmOGU3NjFhMmQ4MmRiMzc2YzI4MzMwNzhiNDg1OWRlMTM4NWNkIGxlZ2FjeS10cnVuaworMTg2MjYgNmQ4ZjdlMTI0MmMwMjlkODE2Mjg5OGMzMWQ2NjQ2YTA1YjIwM2QyNyBsZWdhY3ktdHJ1bmsKKzE4NjI3IGQ2ZTZhNWNmZWIzZDZiN2QwMWFlNWZlZGU2YzQ2OTdlYzQyODM4MmIgbGVnYWN5LXRydW5rCisxODYyOCA4NzQ1ZmIzYTExOTE3MmFkOGViM2Y4MDRmOWEwNzEwZTBmNWZiZjgzIGxlZ2FjeS10cnVuaworMTg2MjkgZTc5MWY0OTA1ZDI1NjFjMjdmZGExNWRhMzJlMzVhZDcxZjJiNzBjNCBsZWdhY3ktdHJ1bmsKKzE4NjMwIGZiMTQzZmIyMzZkMGFmNGI2NTRmMjEwZmI2ODhhZmViNGJlODNmOWMgbGVnYWN5LXRydW5rCisxODYzMSAxOGE2ZTZkOWI0Zjg4YmVmMzlmNjM0ZDRiZTdjMzUwNmMwMjRlYzI0IGxlZ2FjeS10cnVuaworMTg2MzIgMDg2OGMzNjFhZjVhZmRhMmZmMmFjZTM5MDEzNjc5MzY1NzJlYzFiNyBsZWdhY3ktdHJ1bmsKKzE4NjMzIGVkYjk2NjZjMDdjMDRhOGY5ZTg3OWNjM2E5YzQ1ZTVmMDkyMDRmYzYgbGVnYWN5LXRydW5rCisxODYzNCAwNzZiYjI5YTY1ZGM0YjA5M2NjYWMzMjg3YjAxODQ1YTk0MzlkMGY3IGxlZ2FjeS10cnVuaworMTg2MzUgNWQ2ZmI3ZmY2OGM3OWE2OWZjZTQ0YzA0YjEzY2FjMGNmMTQ3M2MxMiBsZWdhY3ktdHJ1bmsKKzE4NjM2IGU4YWFkODQyNDczYTRhNWRiYzE5ZjVkZTc4MDcxOGVmMjQxOWNiNTcgbGVnYWN5LXRydW5rCisxODYzNyA0MzcwZmMxOTY5N2U0YTk2OTMwZGUwYjljODc5Njg5ZTBlNWNlMGE0IGxlZ2FjeS10cnVuaworMTg2MzggNTA3NjU0NGMzMzhiMTM5ZGI5YTZjYTA4MzljNTBhMWEzOWMzYWQ5YiBsZWdhY3ktdHJ1bmsKKzE4NjM5IGI1YTM3YmY5ZDEyZGE3YTIxMTQ4ZTI1Y2E3YWY2NmNlZmFhMDc4ZjEgbGVnYWN5LXRydW5rCisxODY0MCBjNjY5YzI5ZDFiOGNkZjliZGQ4MGEyODNhZWFiMGI3OTIxNGUyMzIwIGxlZ2FjeS10cnVuaworMTg2NDEgZDY0NmQ2MDY4OTI0MzBkMTYyMjJjNWYwZmY1ODRmYzBlZTAzNmEwOSBsZWdhY3ktdHJ1bmsKKzE4NjQyIGIxYzU3Nzg0ODBhMTlmOTU2MzdiMGVlMTg0M2VhNzVmZDMwYTg5MjIgbGVnYWN5LXRydW5rCisxODY0MyBhYjUzNTI0NDQyMDU3ZWRhMGUyMjhmODJjYWUzMGY0OTc5YWQ2YmM2IGxlZ2FjeS10cnVuaworMTg2NDQgZmNhMmNmODUwZTRhY2YxMjJiNGUxMjAwYTJlZmRjMGIxMzUzYTJjNyBsZWdhY3ktdHJ1bmsKKzE4NjQ1IDc4YzRiNjNiNWI5ZDM1NGY3MmUzZDY5ZjQwOWQ5NjM5ZTYxMzJjZTcgbGVnYWN5LXRydW5rCisxODY0NiBlZmYxMWZhYzVmMzYzOWE5OTFjMjQxMjZhZGU1ZWM2YjQ2NGRlOTRhIGxlZ2FjeS10cnVuaworMTg2NDcgODNlMTQ2OTc0YjcyYTRhOTdmMjg2MGIyMmY1Mzg1YzA2M2Q5OGM5ZiBsZWdhY3ktdHJ1bmsKKzE4NjQ4IGIzMWEwNDZmODhhNzcyNDEyOWVkYTU4M2NhN2Q4NDM5ZGUwYjhiZGMgbGVnYWN5LXRydW5rCisxODY0OSBkZGQzZDhjMmNjYTA1MjhhOGFkNTI5NDdlZmUwZWQxZGJiMWFmOGVmIGxlZ2FjeS10cnVuaworMTg2NTAgOWU5NTU2OTI0YjBhNzQyMWU4Y2JiNDQ2N2JiN2QzZWRkMDhjOTJhMyBsZWdhY3ktdHJ1bmsKKzE4NjUxIDFkYjNjYTk1MzBjMjg2M2RlN2JmYjBiZDA5OWQ3ZGYxYjZmYzUxODQgbGVnYWN5LXRydW5rCisxODY1MiA0ODU0ZWU1ODVlMGRmODgxYzgwMjU2MDg1NmI2OGQwZDI0YmQwYTYwIGxlZ2FjeS10cnVuaworMTg2NTMgMDEzMTc5Mzc2ZmEzNWU1M2UwNjBlZTU3MGY3OWUxMTU1MGNhZDA5ZiBsZWdhY3ktdHJ1bmsKKzE4NjU0IDBmZGZhYWVhNWUyZjkwMzFjZTMwMWE4MThiYTNhMGUxOWNmYmU0MzkgbGVnYWN5LXRydW5rCisxODY1NSBiN2Q1ZjY4YmUwMTdmNGM4MDM5YmI4NTdhZmJkYjE5ZDkyZjJhMTk5IGxlZ2FjeS10cnVuaworMTg2NTYgNjNjMDQ4M2VmZjY4ZmY4ZDIyNzQ0OTY4YzVmZDY4MjhjNmIzZjg4YiBsZWdhY3ktdHJ1bmsKKzE4NjU3IGI1N2UzZTM3NDMxNGUzNTNiNWE4NzBhZWU2ZjdkNzQzN2JhYzU0MjUgbGVnYWN5LXRydW5rCisxODY1OCBlZGQxOTIxN2IzOTY5NWRhOWJhNzY5NzZlYjdjYzg0NmQxMzI5NjUwIGxlZ2FjeS10cnVuaworMTg2NTkgZDAyN2U4NWUyMDlmN2Q4NGQxOWRmYzhkZmQ1MzE0MDY0MWJjMWY2MyBsZWdhY3ktdHJ1bmsKKzE4NjYwIDVhMzA4YTlmOTlhNTY2NDdmZGIzYzJkM2E0MWNmODI0Y2VkNThhMzcgbGVnYWN5LXRydW5rCisxODY2MSAzYTI2MDI3NGJjYzZhMTViNGVjNjcwMmY4YjEwYzMxMzlkN2E5ZmI5IGxlZ2FjeS10cnVuaworMTg2NjIgMjI4ZmZkMzZhMGRkYzczOWUwYjc5M2E0NjA0ODRmYTY2N2EwMGEzZSBsZWdhY3ktdHJ1bmsKKzE4NjYzIGViMTc2N2IwNjhmZWMyMjc2ZjczMmE5MjhlNGQxNmQyNmM0MTE3MDkgbGVnYWN5LXRydW5rCisxODY2NCA5YjY4MTRiZmIyYzBkOWY1MzIyMzk5MjgxY2U5YWNhYjExODM2ZmM4IGxlZ2FjeS10cnVuaworMTg2NjUgMzc4MTlhNzc3ZmMwYzQ5ZWY0MzBlNDdhMGNhM2QzZDc5MTYyNmZhMyBsZWdhY3ktdHJ1bmsKKzE4NjY2IDU0MTU4MDRmYjM0NWM2OTIyNGJmZjE3ZjkxZmFmZDg1YmJhYzM4ZGUgbGVnYWN5LXRydW5rCisxODY2NyAzYjliOGYyZGRmZTc5NmJjZDg3MzA4MDk0ZTk3ODJlZDRiMzhkYWQzIGxlZ2FjeS10cnVuaworMTg2NjggMjJmZWQyYjE1YTU0YjJiNWMxYTU2ODRhYWZhYjc1ZjZlMjM1YjJmNSBsZWdhY3ktdHJ1bmsKKzE4NjY5IDM3ZDEyMDIxZGYwNTExMzQ1OTc0MWI4MmY0NTMzZWJkYjY4MTI0YjUgbGVnYWN5LXRydW5rCisxODY3MCBmOTc3MmY4N2IxM2UzZDBmY2U2ZGE1ZjdiYTI1MDdmZWRkNjhiYjY2IGxlZ2FjeS10cnVuaworMTg2NzEgOTU0NjExZmQzNWUxZTk0MGQ0NmNmMTI2ZWJjMWJhNzFhNGY5MzhiOSBsZWdhY3ktdHJ1bmsKKzE4NjcyIDFhMDBkMjE5MTBjODlmMWIzOGIxMmE4NjUzYzFhMjYyZDZlNTc5OWIgbGVnYWN5LXRydW5rCisxODY3MyBhNTYzZWVjNDZjMWFiZTkxZjZhMTNjMDBhNjE5MDAyMzE2YzE5NjIzIGxlZ2FjeS10cnVuaworMTg2NzQgMDY0MDI2ZGM3NjRlODllNTBlN2E4MGFhN2IxZWZkYWQ0ODMwNWYwOSBsZWdhY3ktdHJ1bmsKKzE4Njc1IGZhYWY5ZjEwZDg0OTQzOWU3OTEzYzlkNDUyODYwZDM0M2MzMjQ3YzEgbGVnYWN5LXRydW5rCisxODY3NiA4NjhkMmFjZjc0NTgwOGM5MDMzZjU3Y2Q1ODI5ZDk3YTY5ZWNmNTZlIGxlZ2FjeS10cnVuaworMTg2NzcgYzY4YjA2MjQ5ZDhhMjE0NjdhN2FlNTNjNWYzYjZjNGJlYmFkOWEwNCBsZWdhY3ktdHJ1bmsKKzE4Njc4IDY0NWY4ZmQ2ZmE5ZGNjNTk5NTFjYzJkMjlkMjY5ODA1Mjg4ZjA3ZTggbGVnYWN5LXRydW5rCisxODY3OSAyZDM5OTA2NTYyNDgwMDQxODI2MGVmN2Y5ZDQzYmNlYzk4NTUyNmMxIGxlZ2FjeS10cnVuaworMTg2ODEgNzk3NzBjYTE1YzVhOWY1MjkxNGIxNjJjYjkwMWU1ZTRiM2VlNzBhMSBsZWdhY3ktdHJ1bmsKKzE4NjgyIDMzYjQ0NGNiYWRiOTkyYTdlNTcyOTFiYjllNzUzOTEzYjg3YTZiZWQgbGVnYWN5LXRydW5rCisxODY4MyAwZjIyZmViOTM5N2RiOWIxYjgwN2ZjZTYwNGQ3Zjg2ZDk0YTA2NzhlIGxlZ2FjeS10cnVuaworMTg2ODQgYzdkZmJhMGRiODc5MGIwMDRkMTFmYmMzYjViYTU1NzFmYmQxNjVmNiBsZWdhY3ktdHJ1bmsKKzE4Njg1IDk4MjE3NzdmOGRhZDZjMGY0NWYzMmRiODM1M2VhOTkwNzFkY2ZmZjggbGVnYWN5LXRydW5rCisxODY4NiA3ZjdlZjk0NDdlNTlmY2E0YjhlMjBhNTJiZGQzMTUzMzU3ZGZlYjA0IGxlZ2FjeS10cnVuaworMTg2ODcgNDMyOGZmZTY0N2JmN2JlYWZjY2RkNzU1ODEzOGVlMmQ4Yjc4Mzk4MyBsZWdhY3ktdHJ1bmsKKzE4Njg4IDE3NDQ5MGU5MjRkNDdmMTkyYmQ5OGZhOGRkMmVlNTNkNjlmNTA3ZjIgbGVnYWN5LXRydW5rCisxODY4OSA4MWRiOTJlODBlYTg4NjNkYjk5OWZjOWVlZWEzNjRmY2Y3MjU1N2Y1IGxlZ2FjeS10cnVuaworMTg2OTAgMDVhZDI5N2UxNDRmZTk3ZGU1MmVlMDJiNzUwNDQ4ODgwYzEyMGNkNyBsZWdhY3ktdHJ1bmsKKzE4NjkxIDkzMDhkYzhjODVlMDM1YzQ0NGI1ZDRmYTdhMjk5MWIxNzQwMTMwN2IgbGVnYWN5LXRydW5rCisxODY5MiBlMDBmNzE4ZTRkOGFiMzk1ZTY4MTk0ZTNkY2NlMTU4ZTdjY2ZiZGE2IGxlZ2FjeS10cnVuaworMTg2OTMgOWEyMzg1ZWUxZDk5NDQ2NDA3NjE3ODU1Yzg0ZDYyNGVlNmJkZDkzMiBsZWdhY3ktdHJ1bmsKKzE4Njk0IDBhZTM4OWU5MzVmYzQxNmViODc0MzdiY2QzNWNlMzkxODgxNDhjM2IgbGVnYWN5LXRydW5rCisxODY5NSA3ZWEzMGExNjM0NjM2ZDhmZWFjMmQ2NGU4YmI1OGMzY2Y5YzJiMTFhIGxlZ2FjeS10cnVuaworMTg2OTYgNmUzMjlmM2UxN2YwZTUzOWE2MjhkODhkMzAzNTZiYTFkNmYyODE1MyBsZWdhY3ktdHJ1bmsKKzE4Njk3IGIxYjBhNzAzZWM0ZTZhM2IwNjczZDEzZDJiM2JmMTU3NDBiNmViNzEgbGVnYWN5LXRydW5rCisxODY5OCAwZTRmNDhjNWZjODRkODgwNjA1M2Q5YzY4NTUzOTA4NjM0N2JkYmRjIGxlZ2FjeS10cnVuaworMTg2OTkgYmIzMDNhNzZhNDc4MzdjZjA0NzI2NmJiNDY3OWU3YjRjYjZkMTU1NiBsZWdhY3ktdHJ1bmsKKzE4NzAwIDY3YzhhYmQyMTAyNWE1NDJmZWE3NjM2Y2M4M2ExNDg4ZTU3MDU3NTUgbGVnYWN5LXRydW5rCisxODcwMSAzYjY0MzY1M2UwNzgyMGJmNTczNWIyNmQ1NmE2NjE3ODUzZWJkODc5IGxlZ2FjeS10cnVuaworMTg3MDIgN2Q1MDI1YmJhMDM3YzZjNGZhNTEwOTFiOTg4ZTU5NWE2NWE5NTUxYiBsZWdhY3ktdHJ1bmsKKzE4NzAzIDE3ZWJhNzQwNDA5OWNlNTNkM2Y1ODYyMTQxYWRiZmUyOTNlMmQxZGQgbGVnYWN5LXRydW5rCisxODcwNCBmNmNkMzY0OThhNTAzZjMxNjUxNjczMTJmZGQ1YWM4NjZhODhjMjkyIGxlZ2FjeS10cnVuaworMTg3MDUgNjAxYzUzYTllNDlkZjFmYjIwYTkyZThmNjQxZjBjNmQyMmUwMzc2ZCBsZWdhY3ktdHJ1bmsKKzE4NzA2IDI4MzM1NmZiNmVmYzc1OWRhYTc5ZDQ1MTU3MTg0NGQwZTIyMjdhNmEgbGVnYWN5LXRydW5rCisxODcwNyAyMTBiYmU1M2I2ZDRhYzc4YmRlYjQ3NDczM2QxYTk0OTNiZTcwODgzIGxlZ2FjeS10cnVuaworMTg3MDggZDQxZjliMGE0MGNhYTYxNDc4OTVlZTRjYTI1NzZhMGVmYjgyYjUxNyBsZWdhY3ktdHJ1bmsKKzE4NzA5IDY3OWQ1MDcwNWUwNjk1ZTExNjZiNDM1MjEyMGJjMWVmNDNjYTc1YzQgbGVnYWN5LXRydW5rCisxODcxMCA0MDVhNTk3MzU4NDE2ZDAyYTQwOTA1ZGY0OTJjYWY2YTQ5YjA0ZTY5IGxlZ2FjeS10cnVuaworMTg3MTEgMTdkM2E2M2UyMmM3NDI4MzkwZjgyMjEyNTdjMmI4N2UzZGZlYzhiMiBsZWdhY3ktdHJ1bmsKKzE4NzEyIGM3MDQyMTQzMzk5ZjMxODQ0YTJkMGEyMjQyMTUzMTIwM2ZjZTQwNmYgbGVnYWN5LXRydW5rCisxODcxMyBhM2MxYTIzNGNlZTcxODQxNGNjMjdjOGNlZWQwZTY4MGJjM2RlZDEwIGxlZ2FjeS10cnVuaworMTg3MTQgMGQ4YjViM2Q5ZDgzZDA2NmNlZDY4MWI5OWUzYTJjZjYyZTZjNzY4ZSBsZWdhY3ktdHJ1bmsKKzE4NzE1IGE4NGI1M2JhOTBjNDFkYmVkY2EzM2NmNDM2MjI3ZWVlYmNlYTZmMDIgbGVnYWN5LXRydW5rCisxODcxNiBmYzc2NTQ2NGIxNzgwMTJjN2NjMmFiOWI0MjQ4MWI3MWJkMGJkNTljIGxlZ2FjeS10cnVuaworMTg3MTcgMTUyZDAwNzE4MDA2MDlkNTBiMGNhNGU5NjJmZWU3YTc3ODUyM2Q5NSBsZWdhY3ktdHJ1bmsKKzE4NzE4IDhjNzE0MDlhYzBjMzk0ZDE5NjY1ODY5OGU4OTU0MWRlNTIyMTVhMTEgbGVnYWN5LXRydW5rCisxODcxOSAwYThkYTZmMzk3Yjc4ZjU4MThkOTA3ODc4NDE3MDlkZWU4YjBkYThhIGxlZ2FjeS10cnVuaworMTg3MjAgODFlM2Q4NjI2YWRmMGY3OTA1NzliYTg5NTExMDQyOTFhYWZlYzJhYiBsZWdhY3ktdHJ1bmsKKzE4NzIxIDMxOTY3YTIzMzYwMDkyYTVjODdmODdkYjA5Zjg0ODJkYmMxYmFhNDggbGVnYWN5LXRydW5rCisxODcyMiAwODNhNWM3NWVkOTA0NTIyMTNiNDg0NjA0NjA4OTYyYjhkMjJjMWE5IGxlZ2FjeS10cnVuaworMTg3MjMgZTdmNmQ1NGMwMTRkMzQxZWU1M2EzNzVjOWY1ZTdhYTEyMjhjMzdkYiBsZWdhY3ktdHJ1bmsKKzE4NzI0IGZjMWU1ODMxZmUxMDc3Yjc4MjFlZTNkNWZmZTA1NThmOTY2NWM2ZWUgbGVnYWN5LXRydW5rCisxODcyNSA3MWIxOWQzNmFhZmE5M2ZlYjAwM2MyMTQwMjc5MDJhNzNkYjcyNTlhIGxlZ2FjeS10cnVuaworMTg3MjYgMWIwM2Y3NmFiMDNlYTc0MjU1ZWI3NTQ1MmI5NmE0OTk1Yjk0YzhlZSBsZWdhY3ktdHJ1bmsKKzE4NzI3IDU1NzhlOWI0MjRkNGFhOGRkY2U1NmVhMGFjZmQyZGMwNGJiZjMyNGUgbGVnYWN5LXRydW5rCisxODcyOCA3MGE1OWUzZmIyNzhiYjUyMGU5NzEzN2JjY2RjNTVhOGQ4OGQ2OWZkIGxlZ2FjeS10cnVuaworMTg3MjkgZjVhM2Q5OGEzNWJjNGJkYzc0YTg0ZmJhNmVlZDg1OWQwZjA3YWQyOSBsZWdhY3ktdHJ1bmsKKzE4NzMwIDMwNjBjYmZhMDFiZTZkZmM2ZmRiODhmMGY1YzEwYjczYmJmYmYwNmQgbGVnYWN5LXRydW5rCisxODczMSAxYTRjMWMwZTE0YTEzZjU5NTI2NWFiNjRjYjE0Y2M0OTEzODY2MWE4IGxlZ2FjeS10cnVuaworMTg3MzIgMDEwZDAzODUzNTQ2NDZmMTU3MDA1MWYxOTM2ZjY1MDc0MzMxZGUwYiBsZWdhY3ktdHJ1bmsKKzE4NzMzIDYyYWVlZmEwMWZkZDU1NGUzMGI1MDVlNWUwMzc3NTRkZTcxYzU0ZTQgbGVnYWN5LXRydW5rCisxODczNCAzNjg1ZWYyYTU1YTQ4ZTNkNmMwMGE5MThlYmFmZjczMGYzYjI0ZGY1IGxlZ2FjeS10cnVuaworMTg3MzUgM2RkMjE3ZmJkZDU5YjFlZDI2ODM3MjE4N2RjODFkOWYxNTgwOWVhYyBsZWdhY3ktdHJ1bmsKKzE4NzM2IDRjMDFlZTBhODA3M2Y5ZGU0OGQyYzBmNTdkOGJhZjhmNWQ2MzcxMTMgbGVnYWN5LXRydW5rCisxODczNyAxOTU1NTdhMGYwNTBiODEyNzJlMmE1YTYxNTdlMTA3MzRhOTIyM2M3IGxlZ2FjeS10cnVuaworMTg3MzggYTMzZGUyM2IzMDY2ZmJjZGJiMjdlOTE2ZjQyZTg0MDg4N2VkODNhZSBsZWdhY3ktdHJ1bmsKKzE4NzM5IDkzZDA1NjdjOWZjOWNiMWYxNGU4MzcyZjExMWYzZjVjYThkMjNlOWIgbGVnYWN5LXRydW5rCisxODc0MCA3NTEyMTVmYTBkYTdmM2MzMTI2NzQ2NWY0Y2QwOTY3NTgxYjJhMDFkIGxlZ2FjeS10cnVuaworMTg3NDEgOTA5OTJjODJkNDZlOWZjZmZjNGY1YWY0NjA4MTE0Y2JmMDQ2ZmIzOSBsZWdhY3ktdHJ1bmsKKzE4NzQyIDNlYTEwZWU5MWU5YzVlNWQ0OTliODRiMDA5OGQxMmE0ZGNlM2ViMWYgbGVnYWN5LXRydW5rCisxODc0MyA0MTU0NjM1MzI1NWM3ZjBhOWI4NDM0NWRmMTBhNDEyOGM1YzRmMTdkIGxlZ2FjeS10cnVuaworMTg3NDQgMTkwZDE0YjcwYzI3YjhmNTUzMjBjNTk5MjQ0MWIxMDFjNDQ3ZTczZiBsZWdhY3ktdHJ1bmsKKzE4NzQ1IGY0N2QxY2JmYmU3MDYzMjRiOWE2ZTNkNjhmM2Y1MjM5ZDIwZWRkZDYgbGVnYWN5LXRydW5rCisxODc0NiA3Y2Q0NmZmODliZmMzYjBlZmZlMThjODk1NGM2ZmM5NmFmZWUyNjg5IGxlZ2FjeS10cnVuaworMTg3NDcgZTZhMGZkNTRiNjA3MmZhODRhMjhlZTU2OTBhMjgwYTNlZTJmYjM2ZSBsZWdhY3ktdHJ1bmsKKzE4NzQ4IGE3MDI1ZjA3MDljNWI5OWY5NTA4YjgyMjZjMTk5OTUwNjE0NGE1ZDMgbGVnYWN5LXRydW5rCisxODc0OSBmODMxMTVlZGYxNmFmNmFkNmI0N2U4N2YwZmVlYzk1YmFjN2JjOWMzIGxlZ2FjeS10cnVuaworMTg3NTAgYjUzMjA2Mjk1YmRmZWY3NTQyNDI5NTJjNGFjMjRmZDkzOTgwMmQwZiBsZWdhY3ktdHJ1bmsKKzE4NzUxIGIwYmE0NmIxNmUwNzUwOTRmYjA0NGM5NWViOTM3ZDU0MmFhNzI0YWYgbGVnYWN5LXRydW5rCisxODc1MiA3Y2JlNDVkNzlhYjVjMGJkMDYyMDcyMTE2ZjE3YjIyZDc5Njg3MzkwIGxlZ2FjeS10cnVuaworMTg3NTMgMThjNGM3Y2E5M2VhMDZhMTljYjMzMTcxYWJlNjFiZjViNTgzYzhiYSBsZWdhY3ktdHJ1bmsKKzE4NzU0IDhlZjMxYTAzOWE5NjQwYTA1NzUxYTEzNjYxMmViZTk4YjU5NjY3MzMgbGVnYWN5LXRydW5rCisxODc1NSA1NTNhMzE1ZjU4ZTkyZmQxMzJkMTRkNmVkOGQ4N2I3Y2M3NThjY2EyIGxlZ2FjeS10cnVuaworMTg3NTYgMWM2YjBkM2E1OGVhZGI1NTY3ZmNjZGRiZDg2MWZjN2Q5NDg0NGM0NSBsZWdhY3ktdHJ1bmsKKzE4NzU3IDg3NjRkZmZiYWYyMzRlMTk2ODdmMjI5ZmM4MWRhNDNiOWQzM2U3NzQgbGVnYWN5LXRydW5rCisxODc1OCBjODdlMmEyZTMzNWQwYTI5MDI2MjViNTJlMWRkZjRmY2YyMTEwZmJmIGxlZ2FjeS10cnVuaworMTg3NTkgYzU2OGJhOWRjMTgwYTJjYTIzMDkyNGY1MTRhMDEyZDk4MzY3ZGNiYyBsZWdhY3ktdHJ1bmsKKzE4NzYwIDgzNjZmY2ZiNjA5MDRjZmI1ZmFmNjgzZDYyNDFjOTUyOGJkMzNhZWEgbGVnYWN5LXRydW5rCisxODc2MSAxNTI4MTRmNmNkMTEzM2U3YjMyYTI3NzZhZmFlNzI0ZTMzNDg4MjJkIGxlZ2FjeS10cnVuaworMTg3NjIgMTEyOWUxNmExMWRmYjM1NzkxN2Q1YTZhOGMxZDE0MjkxOTcxMWUyZSBsZWdhY3ktdHJ1bmsKKzE4NzYzIGNkODNmN2E5Y2RjZDFmMzE1OWU2MzkxYmExNmMxMDZiNjBlYzBhMWIgbGVnYWN5LXRydW5rCisxODc2NCBlZWYzMjFiNmU0MWNlNjYzYzY4NmI3ZmI2Mzk4ZmE2ZmQzOGRlNmU5IGxlZ2FjeS10cnVuaworMTg3NjUgYzlkZGJlMzQwN2ZhNDQwMGRhOWFjY2ZmNGYwN2U3NWUyOWIzODgxYSBsZWdhY3ktdHJ1bmsKKzE4NzY2IDE0OTQ1OGE1NzQwYWYxZjU5NmQ1YWViNzhiOGJmZDE4NWEyM2U2YzQgbGVnYWN5LXRydW5rCisxODc2NyAxM2U1ZWIwMDZlYjMyMWJiZmU0OTM5YzMyYTQxNzRiZGRhYWM1MGFmIGxlZ2FjeS10cnVuaworMTg3NjggNTA4OTBlMzQ1NGM5NTBhODhlYjQzMTNlNTA0YmE2YWU4YTEwNDNiYyBsZWdhY3ktdHJ1bmsKKzE4NzY5IDEzMjViZGU5NDg5NmRkNWRkMzZmODU5ZjE1MTE1MmMzZmQ0MjQ3YTcgbGVnYWN5LXRydW5rCisxODc3MCA5OGU5NWUwZjViZWM3NDVlOWUwMTAyNzlmZTdlMGFmOTY3YmU5NWJiIGxlZ2FjeS10cnVuaworMTg3NzEgOGRiMzE5ZGRmYjM3OWU3Y2Y2YTc3OTgyMTczMTA4NjkxNmVkZTUyOSBsZWdhY3ktdHJ1bmsKKzE4NzcyIGY3ZjNiZTNkMDBiOWM5ZGVkNmM0ZmI2MTAzNGQxZWNlZWM0YjJjYWQgbGVnYWN5LXRydW5rCisxODc3MyBhOGVkYjNmN2Y0ZjgzYjk1YTA1M2JlZDA1NDEzNWMxOTNmMDFmMDZjIGxlZ2FjeS10cnVuaworMTg3NzQgZTgyNDY0NDBhODI1Yzk0ZGVhOWFkMjc5ZmY2ZjZiYmJkMzE0ODM2NiBsZWdhY3ktdHJ1bmsKKzE4Nzc1IGQ3ZDE2NjU1MGM0MzM5ZmFlZjk4YmIyMTk3YWMyM2U4N2MwODYyZWIgbGVnYWN5LXRydW5rCisxODc3NiA4OGExMjY3YTMzOTVlYWYxMzNlMTk4NDkxNWIwMmQ2Y2ZlYzg2NzQ2IGxlZ2FjeS10cnVuaworMTg3NzcgMTg1MTFlMTEyODcwMGQxZWQ1YjhkNjkyZTliZmFmODJhMGJmZWQ1MyBsZWdhY3ktdHJ1bmsKKzE4Nzc4IGFlNjM2YjhhYzQ4MDhkZjRiYmE5Y2ZhYmI5NDgyMTEzMzk2M2ZmMGUgbGVnYWN5LXRydW5rCisxODc3OSBhMzgxOTBmNzFiZjJiNWY1NzdhYjUyMzNkMGZlNTI0ZTUzODFlMzMwIGxlZ2FjeS10cnVuaworMTg3ODAgYmE2ZDRiNTIxODBhNzdmZmRjNjYyMTMwZTJiNTYyODIwYTc3YWJhMCBsZWdhY3ktdHJ1bmsKKzE4NzgxIGJlMjU3YTc1NTNhMjI3MTY2M2ZiZDEwNWQzZjE2NjZkMmU0OWUwNzQgbGVnYWN5LXRydW5rCisxODc4MiAwMDdmN2ZhZjYyYjIwMzE4ZjI3ZGEwZGIxYjQ4NDE5NmQ0MzM1NDVhIGxlZ2FjeS10cnVuaworMTg3ODMgNDg5NjkyZTc5MTUxNDMyMTQxNDgwZTFjYzA0ZWU4NjJmMDBkMzU3NiBsZWdhY3ktdHJ1bmsKKzE4Nzg0IGZkYTlmODZkYzRlODQ0NTVkYjkzOWI1NmI3MDEyMGRiY2M4NDE4YmEgbGVnYWN5LXRydW5rCisxODc4NSBmZjZjMzBlOGNhNzNjODY5Y2ZiZDEyYzQ0MGZjOTBkZTkwYjRmZTQzIGxlZ2FjeS10cnVuaworMTg3ODYgNzAyZWQ5OTY1MjI4YmIwN2I2MGE3ZjdmMGE1MGU2YTYyNmUzMjRhZCBsZWdhY3ktdHJ1bmsKKzE4Nzg3IDlkNWJlZWQwYjkzZmRmMzVhY2YyMTE5NWY1NmE5YmY0ZDRkMzdmMmIgbGVnYWN5LXRydW5rCisxODc4OCBhYzEzY2VmNDIzYzgzM2Y1ZDEyNzk3MjMyMDMxNTEzNjk0MTUyNDc4IGxlZ2FjeS10cnVuaworMTg3ODkgYzk1OWY0YjNlZmExMWFlNDlhMzE3OTZiOGFkYWVlMmIyNzFlZDg1YiBsZWdhY3ktdHJ1bmsKKzE4NzkwIDE4NzJlNjA5YTYzNGMwMmMxNDNiMTg3MDc5YzViNTJjNDQzZTFjZmIgbGVnYWN5LXRydW5rCisxODc5MSBhNDg0NTkzY2Q0MDdlMWM2NjE1NzRhMDcxZmIxZmZhMTg2NzUzZDg0IGxlZ2FjeS10cnVuaworMTg3OTIgMTRhMjdhY2M3NTVhYjQzNDFmYjc3Y2M4YzY2ZDllZTQyMjcxMGEwYiBsZWdhY3ktdHJ1bmsKKzE4NzkzIGRjM2I5YTU4MTY4NmNkOGM0YzRhOTJkYWJiMjFhNDZlMjQ4NzI3NDUgbGVnYWN5LXRydW5rCisxODc5NCAxODgxYjk2ODk4OWI4OGRhNzNkYjg0NjUwNTM3NDU1MDU2ZDZkZDFkIGxlZ2FjeS10cnVuaworMTg3OTUgMzVhNDE5NGY5ZWFkOWI5NmZjNjNmNTIyMDFlZTcyMjU5OWZhNDMzNyBsZWdhY3ktdHJ1bmsKKzE4Nzk2IGIxYTVlZGI4MGY1Y2ZjZWNiNWIzMTZiYTI2MTQxMTg3MjM5YjRlY2IgbGVnYWN5LXRydW5rCisxODc5NyAwYjBmY2UxNGQ0ZTg4MjZiZmM2YmNhYjMxZGM4Yjc3NDkxNTc5ZmVkIGxlZ2FjeS10cnVuaworMTg3OTggYmVjMGY2MWNmY2Q1NmUwNjM0ZGI3ZjdlMzE0OTgyYTQ0ZGM3ODYyOCBsZWdhY3ktdHJ1bmsKKzE4Nzk5IGQ5ZDBkY2I3MzVkN2Y3YWM0NTcyNzVkMWMxNTA3YTAxNGY4ZDZmYmIgbGVnYWN5LXRydW5rCisxODgwMCA4ZmQyMjFhZWQzNTc1OWJmMDlkZWI4MzYyMDQ5YWI3MmNmNGMwODM3IGxlZ2FjeS10cnVuaworMTg4MDEgODY3YTRhNmU3Y2RhODc3Zjg3YjZjZTAwZDM3NWY4MjhjNmI0OWUxYiBsZWdhY3ktdHJ1bmsKKzE4ODAyIGVhNDY0ZWRhNjE1ODRiODk4OTQyMzA1ODVkMWEzNDQ0NmIyNzM0YTggbGVnYWN5LXRydW5rCisxODgwMyA1YWJhZTc5NTc0MmVhOTY5MzdkZmViMWJlZDI2ZTg2M2QwMDUwZTM0IGxlZ2FjeS10cnVuaworMTg4MDQgNjQzOTBjZWFhYzFhZjljZjk2OGZjMDBmZTQzMTY3NWY1OGQ4Zjg1OSBsZWdhY3ktdHJ1bmsKKzE4ODA1IDViMDYzYmFlYmVmOGM2ZDU3Y2Q5NGZkZjFlMDUwZTIwOGViNTIwODkgbGVnYWN5LXRydW5rCisxODgwNiBmNDY0YTAzYmU4NWFlNmQ5MTJhYWJlMGQ1NTM0ZmExYWY4Njc5ZjFkIGxlZ2FjeS10cnVuaworMTg4MDcgMmVkZjVlZDMwNTgzOWIxY2NmMjU0MTE3M2U2MTg0ODdhNDQ3NGQwYyBsZWdhY3ktdHJ1bmsKKzE4ODA4IDRmNjIxNzA4NTE0YjFhYTVmMjFhMDYxMzEwNDEyNTllZmJjMDA5ZGMgbGVnYWN5LXRydW5rCisxODgwOSA2YTg1MjQ4YjQzOWVhYTNkOTA4ZWMxM2M2MmUwOThiMDJlYTZiNTM1IGxlZ2FjeS10cnVuaworMTg4MTAgM2JjMjQ0MDQyN2QzMzFjZmQyMTdhOTBmNjVkNjM2ZmZlNzA0MzhiMCBsZWdhY3ktdHJ1bmsKKzE4ODExIDc2YWQyYTlhM2U1MzRlMWMwNTY0YjQ2MzM1MzM5YWRmNWFkYzIwZDcgbGVnYWN5LXRydW5rCisxODgxMiBmMmUxMzg5NWJkYTdkZjUxODA3NzE2ZmQwYWUwMWNkMGVhNWMwOWJiIGxlZ2FjeS10cnVuaworMTg4MTMgZGIyNmI0M2M5MjRmMzBkY2EwNzRlYmRiNzM1MjQ1Mjc1MzExN2U4NiBsZWdhY3ktdHJ1bmsKKzE4ODE0IDFmOTJkNjNiMjBmMDIzMTA3ZmE1OWVlZjQwNzk5Nzg0ZThmZjYzMjkgbGVnYWN5LXRydW5rCisxODgxNSA4MzQ5YjRkZmM1MWFkZTYzZDI0ZmM5YzBiMjcxZjIxZmYxN2NlNTMwIGxlZ2FjeS10cnVuaworMTg4MTYgMDFlYWU0MDg1N2Q4M2RiZTU5YWVmODM5YTg2ODNmOWVkZjRhNjczOCBsZWdhY3ktdHJ1bmsKKzE4ODE3IDI4M2EwYjJhYWRjNWYyYWE5NGFiZjNmYTZjYzYzYjc0NmVlZWNmZTMgbGVnYWN5LXRydW5rCisxODgxOCA4NTdhYWQ4NDJhZTdkOTlkMTI4MmYzMGRmZjA4Y2VhZmNjMDk4MzNiIGxlZ2FjeS10cnVuaworMTg4MTkgYzFhOGRlYjE1ZjBlMDY2ZWUxYTEwYTE3MzQyNzYwNzBhMGJmMzFjYiBsZWdhY3ktdHJ1bmsKKzE4ODIwIGM4MjA1NTUyZGRlMWViNjhkZTBjOGJiNWY2NTZhOTQxYTkwOThlMDYgbGVnYWN5LXRydW5rCisxODgyMSBmZGEzZmYxOWQxYzRhOTY5ZWE2NDg1NGVmMjQzZGNjNWRiN2IzMjExIGxlZ2FjeS10cnVuaworMTg4MjIgZDczYjIxZGFlMjlhMmVlODk4OTNkMDRhOTY0ZjM5MmFjMGVhNGFhMCBsZWdhY3ktdHJ1bmsKKzE4ODIzIGMwMDAwYmQ2MjUyYzY4MDMyNTA0ZDE0ZjIxNDczNWE4MTYxMGJiNWIgbGVnYWN5LXRydW5rCisxODgyNCBmMTc1MWFiZjc3MWZmYzRhY2I2MTE5OTYzMmMyYTE5NzVlYTk0NWRkIGxlZ2FjeS10cnVuaworMTg4MjUgY2YxN2EzY2U1Mzg3NDNlZDIzYWYzMmFlNmQwY2FhNWE0NzE1ZWU1NyBsZWdhY3ktdHJ1bmsKKzE4ODI2IGRjOGEzMGI4ODg3YzgwNzNiZTVhN2QyMmQ5ZTgzZTc4YzU1M2JlNjQgbGVnYWN5LXRydW5rCisxODgyNyA1YWJiNDczMDRiYzc2ODVlNjkwYzVkZTA4MjlhNWY5OWNhMjMzZGMyIGxlZ2FjeS10cnVuaworMTg4MjggZTU5YjgzNWFkODlhNTJlY2Y5NzFjMjRlNWNjMWYyNjRkZTliMWE4OSBsZWdhY3ktdHJ1bmsKKzE4ODI5IGRjYWUzZTA4ZDg0ODQ4NTczYzJmMmJjOTc0NDRlNzdkOWIzYzdmNGYgbGVnYWN5LXRydW5rCisxODgzMCA1YmJhODVkNDllNWFmOGI2YzI5NGQ0YWExOWZmYmEyYTc5MTA1OGQ5IGxlZ2FjeS10cnVuaworMTg4MzEgZTIxZGE4NGQwYzY1ZjBhMTAyNDI0ZWQ4ZDg2OGM3Nzk1ZDE0ZDRiZiBsZWdhY3ktdHJ1bmsKKzE4ODMyIDc3MDA4ZjA3Y2UyNWRhYTAzYzQ3MjgzN2E1YWFlNjc3YTRiMTM2NjcgbGVnYWN5LXRydW5rCisxODgzMyBmZjljNzliYmMzZWVkMWIyMTU2ZjdhMmU3NzdiNGRjNGQ2MjM3MDE2IGxlZ2FjeS10cnVuaworMTg4MzQgODg5YjdiYWY4YmJiNGIzYzlkZDIwMzZkZDU4ZDRhOWRhNzg0MTc2MyBsZWdhY3ktdHJ1bmsKKzE4ODM1IDcyMTM5MjYzZjhhNzk3NTJkMjMxZThkMzk5YzA0NDZhZDUwMDk5MzYgbGVnYWN5LXRydW5rCisxODgzNiA1YjkxMDNlNjJmYWMzZGE0Y2YyODI1ZjljM2E3YzYzZmFlZGRjOTBiIGxlZ2FjeS10cnVuaworMTg4MzcgNTQyMDU4MjhiMWUxNzNjNmY5MmU4ZjJkOWEzMzQxZGM4MjYwZWYyZSBsZWdhY3ktdHJ1bmsKKzE4ODM4IDUxZmM0NTI3NmE0MzNkN2EwNWI1MzM3Y2RiYTY3OWE5ZWQzMDJmMjYgbGVnYWN5LXRydW5rCisxODgzOSBmMTY1NDVmNTgzNDU2MDhiNWFkY2U4NDM3MzQ5MDdjYzQxMGYxMjM3IGxlZ2FjeS10cnVuaworMTg4NDAgMjRkYWZiYjBkYjU4ZjY2MmU1ZTBlM2I3MjEwYWZlODc2YWI0YzRlMSBsZWdhY3ktdHJ1bmsKKzE4ODQxIGEzNmE0OTMyZTM5OTEzNWMxNTQwNGQ2NTc2YWI5ZmZlNWI4MjVkNmEgbGVnYWN5LXRydW5rCisxODg0MiBhZmFlNDA2OGQyZGQ5ODgyOGYyM2M2NDM5NDZkNTJkMmRkMGNiMjg0IGxlZ2FjeS10cnVuaworMTg4NDMgZDFjYjQxMzhmZDM0YTRhOTY5NzUyMDc0Yjc3MDI4NWVhZGJjZjVjYyBsZWdhY3ktdHJ1bmsKKzE4ODQ0IDkxMzA0YzRjNzI1NmY4M2Q2MDI3NWNhMzhjZTVhODU4NjYwMzA1YjYgbGVnYWN5LXRydW5rCisxODg0NSAyYjI5MzE5YWU2ODE5NDAzZWYwMzNjMThmY2IwMWZmM2RmMzgwYzdjIGxlZ2FjeS10cnVuaworMTg4NDYgNmMxNzUxZjZhZmUyM2UwZGViNDM0YjQ1YWZiNGI1NDAzMjc0OWRlMiBsZWdhY3ktdHJ1bmsKKzE4ODQ3IDE3ZjIzZjhjZDhjNzdmMmQ1OTU4YzUzM2FmYTgwMmMwNDhkYjYwMDQgbGVnYWN5LXRydW5rCisxODg0OCBiZDVhZWU2YjgzOTBkNGRiMjIwZjM5M2M3MWIyNDBkYTNiZWNlYjhkIGxlZ2FjeS10cnVuaworMTg4NDkgNWZiODY1MDc1MTljMDlkOWFkZWNjYzFmYTJjNTU0ZTY5NDcyZjY2OCBsZWdhY3ktdHJ1bmsKKzE4ODUwIGFlMjlhODliNzdjM2ExMjY0ZGU4NTNlMjg3ODNjNmNjYmEwN2JlZjAgbGVnYWN5LXRydW5rCisxODg1MSAxZjFlZmYwODFhMmE3NTEyZTgyMmQ5MDA0ZTM4ZmI4YWY1MDljZjNiIGxlZ2FjeS10cnVuaworMTg4NTIgM2Y0YjYwMDJjMDdkMzEzZGE2MzczYzliNWI5N2UxZGI2YjFiYWQ2MCBsZWdhY3ktdHJ1bmsKKzE4ODUzIDYyMDg0Y2Q5NTdiZDZkNGQyNDgxZjU2N2FiZmFkNmQyNDE0ZGM5ODYgbGVnYWN5LXRydW5rCisxODg1NCBhYWNiYTM3NDc2ZDQyNmVkMmNhNjVkMmI5ODZiMmE3YjAzODU4MjkyIGxlZ2FjeS10cnVuaworMTg4NTUgZWFlMjYxMTc5ODZmYTRiOGIyMjI1ODE5YjQ1ZTc1ZjkxMDYwODcxOSBsZWdhY3ktdHJ1bmsKKzE4ODU2IGY5YTE1YTU4M2M3OWQ5YTYxOTA3NWQyM2FmODg2MGU1N2NlZjM5ZDQgbGVnYWN5LXRydW5rCisxODg1NyA4ODMyNWI3M2E2YTNiMTI5NjZhOGUzY2U4NDZmNzA4NGMzYjk0ZjU0IGxlZ2FjeS10cnVuaworMTg4NTggYzUwM2ZhOWIyNjVlMjJiZTJlNTVhZDRhNWNkZDI5ZWU5NzE0MDYxZCBsZWdhY3ktdHJ1bmsKKzE4ODU5IDY5NjVjMjA1YjYwMzY0ZmU4OGZlYjk1MzZhOGVhODQyZGI1ODgwMWMgbGVnYWN5LXRydW5rCisxODg2MCBmMzkwZjQzYWM0YjY0OWE5YWE4MzNmYmVhMmEyYzU5YjdjMGI1MWMzIGxlZ2FjeS10cnVuaworMTg4NjEgMWRjMDJiMjI5NWE5NzQ2OTVlYzRhNmQ0YWMyZDkzZGIyOGQyZDkxNSBsZWdhY3ktdHJ1bmsKKzE4ODYyIDNmNjFlZjcyYWVmMzUwNmUyN2M0ZWRhMjBiMjVlMmFjYzQ0ZmM2NTEgbGVnYWN5LXRydW5rCisxODg2MyBmMzc0MDY3NGFjNWJmMzI5OWVmZjk1NmFlOGZhMjk3MWE2Mjg3MTZhIGxlZ2FjeS10cnVuaworMTg4NjQgZTFlNzZmZTNjYjUzYjE1MjVlY2I1YzdjMDg0YmI3Y2M5YThkMzM1ZCBsZWdhY3ktdHJ1bmsKKzE4ODY1IGU4ZWUwNzg1Yzg0Njg2OGNkZGQ0ODczYzYxNWVkNzAxOTRiNjM1MGYgbGVnYWN5LXRydW5rCisxODg2NiA5MjUxY2Y3MGVkMWY4YjVlZDViM2MwMmJjZTE3MjBkOWZlMGU1ODQyIGxlZ2FjeS10cnVuaworMTg4NjcgY2VkODA0MWViNGVhN2RhOTU1NDZiZDc0MTM5NzM2YzM0YmQ4NWZmMCBsZWdhY3ktdHJ1bmsKKzE4ODY4IDUxODExZDc4YTlkYWE2NGZlNTlhM2ZhNWE0NmI2YzBmMjc3NWU2NmQgbGVnYWN5LXRydW5rCisxODg2OSAzMjM1MmUxMjBjMzc5NDgyYzE4ODEyZDlhZjI2NDU2MTA1MWJiMTk4IGxlZ2FjeS10cnVuaworMTg4NzAgNGM4NTZhMTgwNDU4N2IwNTE3NzA1NDliOGY0ZGVjMDQ2NTdiODk5NSBsZWdhY3ktdHJ1bmsKKzE4ODcxIDJkZjQ1NzRkOTBmZTZkODg4NDBjZTdiOGNiNDA2OGU3MGZkMzVlMzggbGVnYWN5LXRydW5rCisxODg3MiAzM2Y1ZWU2YTBlYmU3NDlmZjQ1ZGYyZWJmODA2OTQ1NjIyNjk2ODc5IGxlZ2FjeS10cnVuaworMTg4NzMgZDkwZWVhYjVmOWE0MThlZGY4MzEzMjgxNDE5Zjc1YWM2M2FmNzkwNiBsZWdhY3ktdHJ1bmsKKzE4ODc0IDhlNGRmYjY4MTY4OWJhMGMzZjZlZTRkOTc5MTMzMWYxYTU1OWZhYTAgbGVnYWN5LXRydW5rCisxODg3NSA5YmM3NTQ0MTNhOGMyZGEzZGJkMzA1YWNiN2ZjNDVhMDdjMjEwNGJjIGxlZ2FjeS10cnVuaworMTg4NzYgNzU0ZWNkMjFmYmVmNjVlMmVlMTU0OTY1NzVjNDJiOWFhYWVjMjFlYyBsZWdhY3ktdHJ1bmsKKzE4ODc3IGM4MzJlZjcyNDk5ZGIzYmQ1NTI4MWRkYjY4MWMzNGFkYzExNDZjYTYgbGVnYWN5LXRydW5rCisxODg3OCA4Y2E2ZDhjYWZjZDM3Njc0ZjBjMmYxOGY2YTFkNjRkNzBjZmQxODliIGxlZ2FjeS10cnVuaworMTg4NzkgNzIzNGQ3YzNjMjlmOTc1Yzk0MDQwMzgyN2FlMjM4Yzg0MDcyYTQ5ZiBsZWdhY3ktdHJ1bmsKKzE4ODgwIDIxZTdhMThkZWJlNjgxYjU0NTNmYmRiMDY2NjU3MWUwZTI0Yzc2ZTYgbGVnYWN5LXRydW5rCisxODg4MSA0NmY3NzJjNmEyMDAzY2U5MjEyZDdiZDY1MzJiM2EyOWQxODkyMmZkIGxlZ2FjeS10cnVuaworMTg4ODIgN2MxM2JjN2M0ODVmYTdlMWE0NmY3ZTMwYzY5N2VjNzE2NTQwMzY4MiBsZWdhY3ktdHJ1bmsKKzE4ODgzIGNmYWMyMjQ1YTJjNzJlMTFmMDA5YTM0MzE3NmVhMzgxYmFjNjk3Y2QgbGVnYWN5LXRydW5rCisxODg4NCBkN2Y1M2YxMmRiZWUxZmY5MWY3ZGY3NmFjY2NmM2ZlOTZmNmE4Y2FmIGxlZ2FjeS10cnVuaworMTg4ODUgY2UwZTQxY2U3ODdmZmY5M2Q1MGU2NTM1ZTBlZjRiYjEwYTkxODc5YyBsZWdhY3ktdHJ1bmsKKzE4ODg2IDBmODEyNzM2NmEzZjdiZTI3MTc0NWU1MDcyNGZkNmViYTlkZDE1ODEgbGVnYWN5LXRydW5rCisxODg4NyA1ZGMxNzczYzdmN2M5N2UwN2U4MjgzZjdkOTUyM2YyYzY2MmVlNmM4IGxlZ2FjeS10cnVuaworMTg4ODggODY1MjY2MDExZGZhOTJhMmIxYTAwYzFlYTk2MzQzNjU0ZTJmMjVhZSBsZWdhY3ktdHJ1bmsKKzE4ODg5IDU5ODhmNzY0ODBkNmQ5ZmE4NzQwYWFmMWQxMGRmNmI5YTY5NDAzNjggbGVnYWN5LXRydW5rCisxODg5MCA4M2QzM2Y3ZTlmZDQ1NzQ3ODhlYjc2YTk3NzhmZjU5YmQxYzhkYTAyIGxlZ2FjeS10cnVuaworMTg4OTEgNTVkODlhOGZlOTYzZmViMTdiMTFjMzVlMzkwMTA5ZGYwM2U5ZWExNyBsZWdhY3ktdHJ1bmsKKzE4ODkyIDhiYTg5MDlmYjgyMzA0ZWNjOTdlOTZjZDdkMmZkMjdiOTE3ODBhOWQgbGVnYWN5LXRydW5rCisxODg5MyAxYmY1ZDhiNGNlYmU4OGVkMDkyZjE0OTc5ZGRlMmEzOTUyNDM2MGEwIGxlZ2FjeS10cnVuaworMTg4OTQgNWJhNDU5MTZhZmM3ZjA3NWIyZThhMzFhYmQwYzUzMmNmYzdkOGQ0NiBsZWdhY3ktdHJ1bmsKKzE4ODk1IDc2MTU1MTEyMTg3ZTBhZGRiMTVmMzVmZjAxYTc5MTI5YjI3NTEwYWQgbGVnYWN5LXRydW5rCisxODg5NiAxOWVlZTJkYjJiMTZjYjU4NDk5NDNjYjJlMTZkM2Q4MWYyNzk2Nzg3IGxlZ2FjeS10cnVuaworMTg4OTcgMTE0NGFmYjk0MDE5Y2RhMDlmYTkyNWI1NGM5OTkyNzJhOTJmN2U2NSBsZWdhY3ktdHJ1bmsKKzE4ODk4IDczYzQxYjQ5YTliODBlZmVkNDhjZDFlMmQ4ODRlOTFjZTYwZTMzOWMgbGVnYWN5LXRydW5rCisxODg5OSBiYTI5NWUyYzczZWE2MDhiZGUxZDhlNTdkMmM5ZDUwZGRhMjhkNWU5IGxlZ2FjeS10cnVuaworMTg5MDAgYjY4NjNiYTg4OTg5NjJkNTljOWQ4NmJjNmU5YWRmMjdlYjlhYzRiMSBsZWdhY3ktdHJ1bmsKKzE4OTAxIDRhNjY1OGUxOGYzNmYxMDBjNjk0YzFlN2RlN2ZhNjg4OTllZWMyMjYgbGVnYWN5LXRydW5rCisxODkwMiA2M2EwYTZkMThhNjA0MjU2ODQ4YjU1OGRiYTVjNTM0Y2EzMGMzNDRhIGxlZ2FjeS10cnVuaworMTg5MDMgMzBlMzFjMmFiNjBmYTU5YmI4MzBiMGRkN2Y0ODc3MjIyYmQ3Nzg2ZiBsZWdhY3ktdHJ1bmsKKzE4OTA0IDc4YmQ5N2Q4NDEzY2NmN2JmN2I0NDNmMTVlNjBkNDMzMzM5ODI1MTIgbGVnYWN5LXRydW5rCisxODkwNSA4YmFjMDY1OTM5M2ViZGZmZGU0NzY2Yjg1Mzc4ZTNhZjQ1M2JmNzE4IGxlZ2FjeS10cnVuaworMTg5MDYgMzVkZmY0NzEyYzhlNjI1YTZkZDE2NDkzNDRmNzA5ZTI2ZWU4NGEyZiBsZWdhY3ktdHJ1bmsKKzE4OTA3IDNhNTZmNjUwOTlhYTc4ZGRjODQyZWIwZDIzZmQ3ZDkzMGM1MGQ5YjIgbGVnYWN5LXRydW5rCisxODkwOCA3OTM3YmNiYmRkMjRhMDhkOGZhNjQ3ZWIyNDYzMzBkZmVlMjIwYjJlIGxlZ2FjeS10cnVuaworMTg5MDkgZTUwY2ZhNTQ3NWYzNDIwN2NlMTkxZjcxYTdkZWExZDA2NWY1MzZjMCBsZWdhY3ktdHJ1bmsKKzE4OTEwIDcwYmIxMTE5MDQ0YWNlZWViMzA3ZDU5ZTViZTEyMTczZTM5Yzk0Y2IgbGVnYWN5LXRydW5rCisxODkxMSBiYjgwNWNjZWI0MDMwMGE4NDAzZTU3MzJiMzczM2FkMmI4NGViMjFkIGxlZ2FjeS10cnVuaworMTg5MTIgZTYyZDVhZmYwYzNhZjFkMjQ0NjUzOGQ4ZTkxOWViNmI1NTY3NDI0MiBsZWdhY3ktdHJ1bmsKKzE4OTEzIDQ3OThkYzczOWMxOWEzOWY2NDExYmM5ZmM3ZTFjZTZiODAwZDJiZjYgbGVnYWN5LXRydW5rCisxODkxNCA3NWEyMWMyMzBhMjY4MTlmMWU3Nzc4YWQ4ZTNmMTI5ODlmN2VjODA4IGxlZ2FjeS10cnVuaworMTg5MTUgYWNhMDVkNzVkMjMyZjEwMGQ5NjgwMmEyYWQxYjJkYTRkOWI3ZjdlYyBsZWdhY3ktdHJ1bmsKKzE4OTE2IDRjYzlhMWViZWE2MjhlZDE4NDZkMjQ3OTk4OTBiMTM4YmRiNmU4MjggbGVnYWN5LXRydW5rCisxODkxNyA2NGZhYjAwNDdhMTQyOTJhNzIwYTk2ZmE3NWU0NGNlYTgzMjE1N2RjIGxlZ2FjeS10cnVuaworMTg5MTggODgzYzdmNjE1Nzg5MDk5YzY0ZTU3YmZjMTUwNTJkNDQ1MDExZjk1NiBsZWdhY3ktdHJ1bmsKKzE4OTE5IGUzMjU5ZTRiZWM2MDYzOTJkNzQwMzQ2MDM2YmRlYTFhMDhkNDkzZGYgbGVnYWN5LXRydW5rCisxODkyMCA0YzQwZTlkNzRjNWFhNWQyMDQ1YjgwOTUyNzI2YTNhYTdhOTRkMjJmIGxlZ2FjeS10cnVuaworMTg5MjEgNTY0YmMyNDJmZjBmMDgzZWIyYjZiYzcwNTA2N2VmMzVhMDc4NDgzZCBsZWdhY3ktdHJ1bmsKKzE4OTIyIDU5NmVkZjgxMjlhMDc4MGQ1Njg2YjQzNDBiZTVjYjg5MWEwZTY2NjkgbGVnYWN5LXRydW5rCisxODkyMyA2YjY0N2E1ZDViN2UzOTFlZTkyYjE3Y2YwM2ViMzExYTliZDRmYjk5IGxlZ2FjeS10cnVuaworMTg5MjQgYWZjNmYxMTM3ZWE0N2M5MjQyNzA2NDdkYjY4MjQyMzg1NjU2YWU5NCBsZWdhY3ktdHJ1bmsKKzE4OTI1IDgxMjg1ZjU0NWQ1NDY5NjhhYTFlMzNjOTIwNzlkMmU1ZGUyMjYyMGMgbGVnYWN5LXRydW5rCisxODkyNiBhOTdhYTkyMzg3NzExM2MxNjU2MWQ1ODY3MjA0YjJjNDE1ZWY1MDZjIGxlZ2FjeS10cnVuaworMTg5MjcgYzI5ZGEyYzE0NDE3ZDhlMDY5ZWUzZTU1Nzc1NmNhZTA3NjBhYThmZCBsZWdhY3ktdHJ1bmsKKzE4OTI4IGQ5YjY5ZDc4MGExNjBiMDUyYzViYWM4YjNhZDNkZTRkMzJlNzliZmUgbGVnYWN5LXRydW5rCisxODkyOSBmZTM2YWI0YjNlOTczMjU0M2FkMjZmY2YxODE5ZmY0MjU1YjA1YTVlIGxlZ2FjeS10cnVuaworMTg5MzAgNGRiNjY0Mzg5NDE1MjAyZGI5YTkxYWUxYmRiZjZkZDcwMDNkOTVhMCBsZWdhY3ktdHJ1bmsKKzE4OTMxIDY4YTgwM2I0ZDYxODJhYjRjNzJhNWUwYTJmZDEwYzU2NTE3NTYyYjEgbGVnYWN5LXRydW5rCisxODkzMiBiNTM0NWU5OTU5NmJlYTk4NDRiNzA1N2UyNTEwZDEzNTU4M2YzYmE4IGxlZ2FjeS10cnVuaworMTg5MzMgYWY3ZDc5MTRmYmY5OWJjYjI0M2NhYzE3ZGYyMWJjMmQ5MjMzOWFjYSBsZWdhY3ktdHJ1bmsKKzE4OTM0IGJhZTg4OWY0NGNkMWZkZGQyMjUxODZkZTkyYmI5ZjExZWE5NGU3NjQgbGVnYWN5LXRydW5rCisxODkzNSA3MTNlZDZjNmJjYjUzNGZkM2YwZTU0MDhhM2ZkODE4Y2MzMjczMzVkIGxlZ2FjeS10cnVuaworMTg5MzYgN2U1NWZhOTNmNGRiYzI4NzkwZTRhYzAzMGQ2NjljNGI0ZmJhMDM3ZiBsZWdhY3ktdHJ1bmsKKzE4OTM3IDUwYmJlODExYjM0NGM5MDY1MjVmYzRhZmQwYzEwOTI2YWE5NTc4ZDggbGVnYWN5LXRydW5rCisxODkzOCBlYWJkMDA4YjM2ZWU3ZmVjYTdlMmJlODY0ODZmZGYzYTllYzE2MTc2IGxlZ2FjeS10cnVuaworMTg5MzkgMmQzZTYwMTc5ZDdhZmVhZDcxNjBlNGNjMDM3MGJlNjVkOThiMzg0YiBsZWdhY3ktdHJ1bmsKKzE4OTQwIDkxYTYzZGY3ZWVlNDE4ZDE4NzE2Yjg1MWQ1Y2M1MTk4YjE0NDY5ZTUgbGVnYWN5LXRydW5rCisxODk0MSBjNDM1NTkwNWIwNDRkZTEwZDUyOThjODk1YjhmYzRlNjRjYjc3MWNiIGxlZ2FjeS10cnVuaworMTg5NDIgOTNmODM2NDMyYzJiZDJhMDI4ZDEyM2E1OWQ1NjhhMzM5OWFkMzVjMCBsZWdhY3ktdHJ1bmsKKzE4OTQzIDFiNmU0NTdkMDNhYjZjYjVlMzI4M2VmMjY0YTgwODc5NTA5ZjM3MjEgbGVnYWN5LXRydW5rCisxODk0NCBlMmIyYjA0M2FiNGVmOTc1NTExN2JhZDUyOTZjYzBhOGY2ZmY1OWFlIGxlZ2FjeS10cnVuaworMTg5NDUgYWJmYjExZjhlMDUxYTAxM2MzODIyYmI5YzQ1ZjRmMzZlNWMyZDJiMiBsZWdhY3ktdHJ1bmsKKzE4OTQ2IDRjMzA3YTEyZGNiOTc2YTQ3MTY2NmE2NTMxNThlNzc4MGZlMmNkNDggbGVnYWN5LXRydW5rCisxODk0NyBkNTZiNDkyNjUzMTBmZWE0ZGE2NTUxMDcyNDBiYzA3OTU3OGNkYzcyIGxlZ2FjeS10cnVuaworMTg5NDggNDgxYzNkNTBhNGU1NTU3YzViNWM3MTVjZWE0OGY2ODU1ZTI3ZTgyMiBsZWdhY3ktdHJ1bmsKKzE4OTQ5IDI2MzAzNWJlYTNhZjIxMGUyNDQ4OTg5Yzc0MjMwNDRiMGYyOTk0OWEgbGVnYWN5LXRydW5rCisxODk1MCBkYmE4MzgwOWE3NzUwNzcxMzAyMzQxN2UyNGExZmU1NmMxMzkzZTI2IGxlZ2FjeS10cnVuaworMTg5NTEgNmUxNDNhZjg0OTI3YTg2YTE1OGI1ZDMxNDUxNDBmMjkwOGRlZmFlMyBsZWdhY3ktdHJ1bmsKKzE4OTUyIDhhYzQwZDQ4YTU4MTRiZjk3MWJhZmUwMTExMDAzMzAzYmY1ZjQzM2QgbGVnYWN5LXRydW5rCisxODk1MyA0NWMwNjU2NjhlYTVjOGY5OWMxMjgxYjc2ZGZhNGVjN2M1NTg4MTQ3IGxlZ2FjeS10cnVuaworMTg5NTQgZjNmNmI3NTk4YmM1YTA1MjM2MjQ2N2Y5MTNjMjNhMTQ2ZmI4Y2I2NyBsZWdhY3ktdHJ1bmsKKzE4OTU1IDBjMWFjYzE1NDU1ZjBiNGIwZTI5M2NlMTBkZWU4MDM5ZTdjYWM4NjcgbGVnYWN5LXRydW5rCisxODk1NiBjYTQ2ZDM0NTQyNjllNjlkN2FhYTVhOTMwZWQ1YTFhNmM1ZjZlYzQyIGxlZ2FjeS10cnVuaworMTg5NTcgYWIwMmYxNzQxYTI4YzdjYzE3MDdjZGUxNjA3YWUwODY5MjI0MGM4NiBsZWdhY3ktdHJ1bmsKKzE4OTU4IGZiNjcxMjJlNWMxZWRiYWU3YjUxMWY3MzZmMDk2MjYyYjNjZDliMGYgbGVnYWN5LXRydW5rCisxODk1OSBlMzUzNmFhN2FlNGFjNGE0YTFhNWUxYTM2Y2M2MGU4MGFkYWVjNmRlIGxlZ2FjeS10cnVuaworMTg5NjAgZmI3NjdhNDQ5NjFlNzE5MjU5NzlhM2EzZmIyODk2OWVmOWYzOTMxYyBsZWdhY3ktdHJ1bmsKKzE4OTYxIDk2N2FiYmVjYzQwNDFhMjJlMTEzMjY0MjNkOTFkYzE2NzhmNGU3YWEgbGVnYWN5LXRydW5rCisxODk2MiBhZTI5NjIyOWY0MjY5NTdlNjhiNWQ0NGM5ODQxOTE0YzBiMDhiY2U2IGxlZ2FjeS10cnVuaworMTg5NjMgM2ZjZDdmNDY1ZjM0OWZjYjhmNjMyNWJmMGFkYTgwZTFmZjA5YzNiZCBsZWdhY3ktdHJ1bmsKKzE4OTY0IDdjYjk0MGMxNTY0NTFlZTNlNTBlMjY1YTZlZTFlMjBhOTA3NWM3YjMgbGVnYWN5LXRydW5rCisxODk2NSBlMDQxOGIxZjVjYjdjYjE3MGQyMjU5ZjdmYTU4MDdlNzNjNDQ3MWQ3IGxlZ2FjeS10cnVuaworMTg5NjYgYmFlOWFiYWRlZTIyYTQ4ODM4MDdkYjZhMWY2ZGNhODIzYjRhMjU0ZCBsZWdhY3ktdHJ1bmsKKzE4OTY3IGQ2OTU3MWJmNzg0MjY3YmRlZDc0NGY4N2U0Yjg2ZWMwMzJmNTJiZWIgbGVnYWN5LXRydW5rCisxODk2OCAyOGM0MTRkY2IzZTE4ZTU0M2YwMDA5MTY0ODJkYTk0NjdiMDE1NWU1IGxlZ2FjeS10cnVuaworMTg5NjkgZGMxYzU3NzE0YjNkZDRmMjQzZjYwY2ZmZDE0NTJhNzBhZjUzYjI0YyBsZWdhY3ktdHJ1bmsKKzE4OTcwIDI4ZDhjY2JlMjM3ZjY4M2QyMTUxOTY4MWEzZDUwMWNkMjkyYWJlODcgbGVnYWN5LXRydW5rCisxODk3MSA0ZDQ1MWM5MmJjNTBiMmQ2NDQ1YTlmNjE4ZWNjMWFkMGJiOTY1YzkxIGxlZ2FjeS10cnVuaworMTg5NzIgMTQwZDQ1YWEwOWRjMDlkNjAxZTc5NGNjNjI5NTAxNTg5ZjBjNWY4YyBsZWdhY3ktdHJ1bmsKKzE4OTczIGUwODI0YjM1NDRmYmVlODFiMjYzNzcxZGNmYmJjZTQwNTllYjIxNGEgbGVnYWN5LXRydW5rCisxODk3NCBhMDU5ZDEzNjA1YTBlMTc5OWEyYzQwOTAyN2FkNzlmODEyYTFhODMxIGxlZ2FjeS10cnVuaworMTg5NzUgNzA2NjZiMjdjMWIxYWNkZDcxMmYzZmFhZTcxYTVkYjA4YzdlYTU1OCBsZWdhY3ktdHJ1bmsKKzE4OTc2IDQ0ZmQxYTdjYjI3OTM5YWYxZGVhNGY0ODQ3YjE4NzBlZjkyZmUzYjAgbGVnYWN5LXRydW5rCisxODk3NyAzZTEzNTI0ZWQ4NmNjMGVjMzRmYTUxOWQ3YzQwNmI5YTY5ZjkzNDM4IGxlZ2FjeS10cnVuaworMTg5NzggNjBmYWM2MmY2YzE1ZWEwNjAwODZjZTRhZWIzNzU4YjMyYTBkY2U1ZiBsZWdhY3ktdHJ1bmsKKzE4OTc5IDhlMDEyYWU5YTA0MjMyN2E3ZDUxZjk5YTgwZWU1ZGEwNTNhMGE2MWQgbGVnYWN5LXRydW5rCisxODk4MCA2NDU0NWM5ODZiOThiMjZmMGQ0MjI4ZTA4MzI2MTZlNmQ2Zjc4OTg2IGxlZ2FjeS10cnVuaworMTg5ODEgOTJiMjE0YmI0Mjg4NDg1ODQxNmQ1ZDkwZGRjY2Y2MzhmNTE0ZWNiNSBsZWdhY3ktdHJ1bmsKKzE4OTgyIGUwNTIzYTQyYzc4Y2FlOTJlYWFlODY3MDE1MzUxMDhiNTVhMDg3Y2QgbGVnYWN5LXRydW5rCisxODk4MyBmNmQ4YTEzOTI5ZDcyNzA1MjQ0NTE2MzJmZjc2OWI2MDY3OWNjNGI5IGxlZ2FjeS10cnVuaworMTg5ODQgMjM5YzczNzJjM2QzN2Y4Y2U0YjY0OTFiNGM5NjU5MTJhNWQyZTY2MyBsZWdhY3ktdHJ1bmsKKzE4OTg1IGY5OTdkZWQ0ZTIxOWYzMGFkYjBiODk0NGJhNmIzMGE1MmY3NGQyYTQgbGVnYWN5LXRydW5rCisxODk4NiA0NTQwZTQxOGI4M2FiNGYxMDg1MTYzYWUxYzAxNjM5Yjg5NGRmZGVjIGxlZ2FjeS10cnVuaworMTg5ODcgNTQ4ZTdhNTQyOTE4NWZmMGFlZGRhZGNmYmYzZDU3NDAyYzNkYWRlMCBsZWdhY3ktdHJ1bmsKKzE4OTg4IGZiZjA3ZTFmM2NhMDcxZDkyNzBlNzEyYjQzMmY3ZDJlMDIxZTc4Y2UgbGVnYWN5LXRydW5rCisxODk4OSA2ZjFmZDg1MDAzOThjYTkxZDlmZDk2ZDVhOTk5ODZiMDMxMzRlOWMxIGxlZ2FjeS10cnVuaworMTg5OTAgZDA4NjQ5MDJjOGM3ZDg5OTRmZWY0ZTk1MTAxZDA0M2EyZDQyMzk5YiBsZWdhY3ktdHJ1bmsKKzE4OTkxIDU2MzY4ZDM1MDhkZTU2MDI0NDQ5MGY4ODU1ODE1NzAzZGUyMjI1OGQgbGVnYWN5LXRydW5rCisxODk5MiBhOWUzYTUyODE1ZTJiYjNlMGViZTdiZjVjYTE4NmE1Njk1MjVmZDg4IGxlZ2FjeS10cnVuaworMTg5OTMgYWEwM2MyMGU4OWI3YWVmOTJkODViM2I2MWZkNmNjZjRkZDFiZWI5ZiBsZWdhY3ktdHJ1bmsKKzE4OTk0IDhmNjU1MmM3MDMwZDA1NGZhMGVhYzhkZGIyNDU2YTk1ZDUxODYyZTEgbGVnYWN5LXRydW5rCisxODk5NSBkNDgwMThiMzNlMzU3ZjQ5ZmRhYmEwMDYxYjljM2IyNzQzNWI0NGVlIGxlZ2FjeS10cnVuaworMTg5OTYgYTA2YjczYWQzNzFlYTc3NjBmNWM0MzNjMzcyZWUzNDk1NDVjMjQwZCBsZWdhY3ktdHJ1bmsKKzE4OTk3IDUxM2U1OWIzYjlhOTBiNDI1MGY2ZmYyOGNmNGYzYWU2Nzk3MjQzM2UgbGVnYWN5LXRydW5rCisxODk5OCBmYTllZjBlMmRjMDdkYWRlM2U3NWEyZTczYTNmMGQwMDAzMDcyZmY4IGxlZ2FjeS10cnVuaworMTg5OTkgODgzY2IwZTMxYmIyYjNmNTNhMmRhODI1OTc1NWYzMjY4MGJkYzFiYiBsZWdhY3ktdHJ1bmsKKzE5MDAwIDQ5YjdjMWJjNjAwNDI5M2JlMjJlNGEwYTBjYjI4Nzk4OTdmZjRiYTMgbGVnYWN5LXRydW5rCisxOTAwMSBkOTZjZTk3MDhjMDA3YzdkZDI4ZjBmZWQ5NWZjNDMyM2Y0MzI2MWM3IGxlZ2FjeS10cnVuaworMTkwMDIgMzhkY2VjMDY2MTdiZGZhMWY1MmI4YWIwMjhhYmFmNzQwNWJkZTE1OSBsZWdhY3ktdHJ1bmsKKzE5MDAzIDA1OGJkMWJmZjAwODBlNTliMDJjNTFhNTBlMDcxZTk3Y2E3NmQ1OGUgbGVnYWN5LXRydW5rCisxOTAwNCA0OWY5NGEyYjFkZDQwY2Y5MTQ4ODQwMzkxZGRkYWFjMTEwY2U0MDc0IGxlZ2FjeS10cnVuaworMTkwMDUgNmFhOTcyZGY4MGQ1NzYyY2YyNDdhMDAyM2RmYzM4M2U2MWM1ZjIwMyBsZWdhY3ktdHJ1bmsKKzE5MDA2IGQxMmJkZTRiMmFlOTJjZDFlZmRkOWM3MTMzOGMwZGYxOGY4Y2I5ZWYgbGVnYWN5LXRydW5rCisxOTAwNyAyNmU4MzFiYjBkNmVjNjg4YzUwYTlkNDRkMjQxN2EwYWI1Njk0NmE2IGxlZ2FjeS10cnVuaworMTkwMDggY2Q5ZGRkZDg5N2E5NTUzZTJmODZiMjJlOTA1ZDM3YjMyYjNlYzliNyBsZWdhY3ktdHJ1bmsKKzE5MDA5IGZiZjhhYmVjOTNkMTlmYzAzNDdhZTdjZGEwM2UyZDFhMjFhMDI1Y2UgbGVnYWN5LXRydW5rCisxOTAwOSBiNjA4MzFlZWFiNWEwNmRkM2M1ZTgyOTdhOTllMzkyOTdhYTg3OTRiIGxlZ2FjeS10cnVuaworMTkwMTEgN2Q3NjVjMWQ0OWUyZjMxNTdhNmYxODljYzU3ODRkMzY1NTk4NWQ5MCBsZWdhY3ktdHJ1bmsKKzE5MDEyIGNhMDU1NjA2YjNhMTFjMTc1YjM0ZjllNmY4MzM4OGY2ODE4ODM5OTAgbGVnYWN5LXRydW5rCisxOTAxMyA0OTUxZjVjNDgxMDViYmRkZjcyODM0ZWVlMGM3YmVjNzNhYWEyZTZkIGxlZ2FjeS10cnVuaworMTkwMTQgODVlMzVlNjhlM2RiMDU3ODk2ZTQ2ZGQwYjJlZTViZmUyODhlNWVhYSBsZWdhY3ktdHJ1bmsKKzE5MDE1IGRmN2JmYjM0YjJhMmU4ZGQ2ODhmMTMxYzExMGMwYjU4NjNjNDBlM2QgbGVnYWN5LXRydW5rCisxOTAxNiAzZWU1NTg2MzQxNjRkYWY0OTlmNzc2NTcwMzVhZDg0ZDRlNjFmZjgyIGxlZ2FjeS10cnVuaworMTkwMTcgYjJjODc5NWEzNDQ4OWViMjJmNjY4Y2RhNmVmNjgzNzdmOTNjYTQzYiBsZWdhY3ktdHJ1bmsKKzE5MDE4IDgzYzFmMTQ2ODJhMjU2MWFkN2M0ZjVlNzJiN2RmYjZjNmQ1NTdiMGYgbGVnYWN5LXRydW5rCisxOTAxOSA2MmJmNzM5OThjZGIyMWI0OTRjMzZlMTI4OWVkZDYwZmQ5NDg1NDFjIGxlZ2FjeS10cnVuaworMTkwMjAgNjM5NmNjNmIxZjdhMTI3ZWQyMTdhOTEzM2JmODQ0YmE5NWVjZDJkMyBsZWdhY3ktdHJ1bmsKKzE5MDIxIDY4MGQ2YTUwYzJlODQ0ZjExODhhOGNmYWM2MWNlZDE3YmM1ZmY4ZGEgbGVnYWN5LXRydW5rCisxOTAyMiA0NjkyMGI2MGNkMzM0M2YyNjMzNTU0OTQ0YTc3ODhkNDBmYjEzYzVjIGxlZ2FjeS10cnVuaworMTkwMjMgYzBkZTcxMGYzMWMwM2Y4MDE5NDU1ZTFkY2EzNDMyODM4ZGM3OTEwYyBsZWdhY3ktdHJ1bmsKKzE5MDI0IGZkMjc4MDMxZjQ0OWNiODUxNzQ0ZmRiYzQ0NzU2NTA3NTJkMDJlNmMgbGVnYWN5LXRydW5rCisxOTAyNSA1ZjQwZmRiZGQwMmM0MThkMWFlM2UxYzJiZDhhZTI0ZDBhYTBkN2UyIGxlZ2FjeS10cnVuaworMTkwMjYgMjIwOGEwM2QwNWEzYWRkMWYzMmM1OTYwYTEwMzJkNzA2MzA4OTFiNiBsZWdhY3ktdHJ1bmsKKzE5MDI3IDBhNzIwNzBlYWI2ZWJhNjMwYzQ4OGRjNzQ2ZjM4NTljMzE0MGIyODIgbGVnYWN5LXRydW5rCisxOTAyOCAxMDY0NmQwOTJhNTJmYjJkMzYzM2ZmZTJkZDBiMTgyZjViNDY3OWMzIGxlZ2FjeS10cnVuaworMTkwMjkgNzFjZWFiYTNmNjE1MWI0NGY5ZTdjYjgwOGIwNDY2N2NmMmQzNjIxMyBsZWdhY3ktdHJ1bmsKKzE5MDMwIGEwZTUyMDM4Y2M0ZTFjODEzYzY0ZTg0Mjc0N2MzMGM2YjFiNjFjZTYgbGVnYWN5LXRydW5rCisxOTAzMSA3OGNkZGJhNDU4MDUzMmZhYTc3YmI1NTZhMzUzMjVjN2Y0NWRmOWVhIGxlZ2FjeS10cnVuaworMTkwMzIgMmM3ZGY0NTQ5NmE2Mjc2ZTQ2MzliZDI0MjE3MjAzYTIyYzIxNGYyNSBsZWdhY3ktdHJ1bmsKKzE5MDMzIDdhZTZhMDlkNGQwMmRlZGQ1ZWM5ZjYxNTg5MzBkNmI1M2NhMDc4ODAgbGVnYWN5LXRydW5rCisxOTAzNCA3MjViMWJhZjNkYWI5MWMyYjQzMWU1M2I5ZDU5N2RlMDNkZTkxMjFlIGxlZ2FjeS10cnVuaworMTkwMzUgZjc1Yjg2NDg5OWZiMTUzMTVkODEwOGU4NGY4NjM2N2FiZDY1OWQ1MCBsZWdhY3ktdHJ1bmsKKzE5MDM2IDMwYzRjNGU5ZTNkNTY3N2Y0NDgwMjlkNjUxYjkyNGZiOWNlMDlhYjEgbGVnYWN5LXRydW5rCisxOTAzNyA0Mzg0MjhkMWJmMjcwZTY5NzBmMmI0YWU1NjFlNDhlNjlkYjRjNTZkIGxlZ2FjeS10cnVuaworMTkwMzggMmRjYmMxZGZjYTljNTRkZTYzMDcxODY0NmQ3Y2UzNzY4ZTlhNmI1ZCBsZWdhY3ktdHJ1bmsKKzE5MDM5IDI3NzQ5ODE4MzAzMDc0OGEwZDYxOTUyZmRmOTQ2ZjE1NTQ3ZjVjOTYgbGVnYWN5LXRydW5rCisxOTA0MCBkMGU4ZTE5NTljMGJlNDJmMTIwYjlkMzg4NDEwMzNkOWRiZmQzZjY0IGxlZ2FjeS10cnVuaworMTkwNDEgM2EwZWI0NWIyYjVlMDI2ZGZkMzUxNzUzNjQ0NTM0NTU5NjM2NGE2NyBsZWdhY3ktdHJ1bmsKKzE5MDQyIDZmOTI5MjBjMTE1MDA5ZGY0NWEwMjM4ODJmNjMxYjdmNDAyMTgxOTcgbGVnYWN5LXRydW5rCisxOTA0MyBhNTRjMjgyYmZiNjNkYTJiN2E3OGU1ZTZjOWZiNGYxZmFjNTMyNDA0IGxlZ2FjeS10cnVuaworMTkwNDQgYjg4MmY0Yzg1NjY2OGFmMzMyNzQ4NzQyNThlNGZjNDk0Mjc4MzRhMyBsZWdhY3ktdHJ1bmsKKzE5MDQ1IGExMzBkNWY3ZTU4YWViMjE5NjRkY2U2NGE0N2Q5YzRkZWEyZmIxYzAgbGVnYWN5LXRydW5rCisxOTA0NiBlMjZmOGQ2Y2YyODhlZjM2ZTJiYjQ3NGVlY2EyZmZmZWYzNjViZDMzIGxlZ2FjeS10cnVuaworMTkwNDcgMTE1ZmRjNjFhZTkxNGI4MmE5YzhmYjEzNDM4ZDA4MTJmMjdkMTYyNCBsZWdhY3ktdHJ1bmsKKzE5MDQ4IDAxZThhNmQ4ZGE4YmI2NWVmZWY1MTUxNTk5MTExMTdlZDVkMDkyYzkgbGVnYWN5LXRydW5rCisxOTA0OSBkNzIxOGFjOTljMDlhYjJjZWU2ZGE3NGViMDE3YmJlYTJkZmNiZjVhIGxlZ2FjeS10cnVuaworMTkwNTAgNDk5ZTIyOWU2Y2VkYTg5MmVmNTcyMDM1ZWE1OWNkNjZhNGRhMWZiYyBsZWdhY3ktdHJ1bmsKKzE5MDUxIDk5MWExN2Q2MTAzNjI3NjljYTQyNWJjYjQ3ZmViYjY1ZTRmMjkwYTAgbGVnYWN5LXRydW5rCisxOTA1MiBjMTJkODYyM2IyOTQ5MGUxMjBiOTAwZGNhZTUzNDk0OTE1NjhlZDc4IGxlZ2FjeS10cnVuaworMTkwNTMgYzAyYWU3YWUwMTFkNjI4MmFiMjE5M2NhMzhkZTdkZjkzYTlhOWZlMiBsZWdhY3ktdHJ1bmsKKzE5MDU0IDRmZTY5YTlmOGIzMDc2YjllZjE3MWY5NGYxOWYyMzA1YjUzNTBiYjYgbGVnYWN5LXRydW5rCisxOTA1NSAxZmY0Zjg5MDFkOTYwNjA5NTVkMjdiNjllMWY1N2QxNzc4ZTIyMzcwIGxlZ2FjeS10cnVuaworMTkwNTYgZjRhYzA2MGE4NDFiMzk5YzA3MTZkNzZlN2Y0N2Q4ZDkwNjYzYTYzMiBsZWdhY3ktdHJ1bmsKKzE5MDU3IDFhYTgzNDlmNjY5NTU4MDZiMDA1ZDA0N2JhZWVjMDY0NTA4OTI3MGEgbGVnYWN5LXRydW5rCisxOTA1OCA1NzEyNjIwMjk4ODgyYWMwNjk3MWYwOWRjY2Y5YmQxOTBiNTkwZDY1IGxlZ2FjeS10cnVuaworMTkwNTkgMWJiNzY1MTY4M2U3NDEyODRhMTQyYzU3M2Y1ODFjODg1ZWNmYjk3ZiBsZWdhY3ktdHJ1bmsKKzE5MDYwIDMyNzU1YjQ1NjM2OWQ4MjI2OWI0NzNhMWExZjQyODgwZTVkZmI1ZTggbGVnYWN5LXRydW5rCisxOTA2MSAwMWU1ZDNlNTg4MzNhZDllOTkwZGY4N2U0MzJmNmY3YjIwZjY5NjQwIGxlZ2FjeS10cnVuaworMTkwNjIgMzQ4NDY3MGMzN2YyZThkYmYyMDYwMTFjM2Q5OWVmZTRjYmIwY2E5OCBsZWdhY3ktdHJ1bmsKKzE5MDYzIDM4Njc4Y2IwYjNjZGI4ZGQ2MjIwN2VlZTJkYzMzMzgzMGUxM2EzYjggbGVnYWN5LXRydW5rCisxOTA2NCAzOTdhZTUzZjFhNDg5OTA2ZTU2MTUxOTc5ZmUzNjRkNjAwNjNkYzU2IGxlZ2FjeS10cnVuaworMTkwNjUgNzQzZDUyMDc1YmU1ZWZjYmYwNzgxOTJhNmVjOGQyODUzMDMxYTlkMCBsZWdhY3ktdHJ1bmsKKzE5MDY2IDIzYWI1OTkyMTIyZTgxNDA4ZmZlMjM0NTJkNzVhN2Q3NTlkZTFiYjUgbGVnYWN5LXRydW5rCisxOTA2NyBhM2Y1N2VkNzU3ZTUwYTliNTQ5NjQwMmU0ZGQ3MTE3ODZiMjM1N2IwIGxlZ2FjeS10cnVuaworMTkwNjggYTY0NTNjZmI3MzNmMWQ3YWY4MzVmZmZkMmE2ZWEyM2FmNjY3ZjVkYiBsZWdhY3ktdHJ1bmsKKzE5MDY5IDc0M2YxNjMzNjgyNzNiM2I1ZDVmNDAyOTdlNDcxOTQxM2Y0N2Q4MjcgbGVnYWN5LXRydW5rCisxOTA3MCA4ZDRhMjVjODFhOWI5NDMwZmIwMmRhOTBkMGQ1ODgzYjVlZGRjZGE4IGxlZ2FjeS10cnVuaworMTkwNzEgNTVlOGMwMjZlMWUzZmYyMmM1ZTYyNGJlMjUwYWQ5ZjMyN2UzZDM4MyBsZWdhY3ktdHJ1bmsKKzE5MDcyIDFlNDNhMjQ1NmU4ZmU0Y2NlNTFkNTJhNDJiMmZkNDFjN2ZiYWUzMjYgbGVnYWN5LXRydW5rCisxOTA3MyA5OGI2NTQ4NGFkZTZhODRjZTgxMWRhYmI4YjBkMzEzZjVmMWM4NTU3IGxlZ2FjeS10cnVuaworMTkwNzQgMWRmNDBkNzcyNGNjZGU0MDY1N2MzOGM3NDUxOGE5MzY2NDU1MTVlNSBsZWdhY3ktdHJ1bmsKKzE5MDc1IGMwZjYxZDRmNWEwNDg4MTIzNDY5ZmIzY2MzMGM1NTk2ZjdhNzUzODAgbGVnYWN5LXRydW5rCisxOTA3NiA2MzVlOWRjZmVkMmNjNjU4NDg5NWNjYzQyMTcwNGI2ZGMzMzQzNmQ1IGxlZ2FjeS10cnVuaworMTkwNzcgNzI4NjBlZTllYWYwODkwZmQwZTJiNmJhNTkzMDM1MjMxYzBjOWU2ZCBsZWdhY3ktdHJ1bmsKKzE5MDc4IDVhZWExNTgxNTQzYjQ0ODI4NTBhNWIyMWFhMzg1ZDYzODc2ZTA2MTYgbGVnYWN5LXRydW5rCisxOTA3OSAzOTc0OTFhYTIwYTZlYmNhN2M5Mjg5MWI1ZTVkZDcwZjM3ZDg1ODJjIGxlZ2FjeS10cnVuaworMTkwODAgYTRlNTRiZmQzYzI5ZDY1NjkxMWVhYWI4YmNiZGYwOTkyOTA0MGU0ZSBsZWdhY3ktdHJ1bmsKKzE5MDgxIDI1OWY3OWEzNmUyZjM2ZDBiMmRlMWI0YmRhODI1MDY2ZDRmZWIxYmMgbGVnYWN5LXRydW5rCisxOTA4MiAxODVkZmMxNGE5MzQyZmI3NjViZDE1MWI0YWRjNWU5ZThlNjE4ZTEyIGxlZ2FjeS10cnVuaworMTkwODMgNTg4NjkxZjgwNmY0ZDA4MWEzNDQxNjcwMjEzOGMxZmQ4YmYzMGVlMCBsZWdhY3ktdHJ1bmsKKzE5MDg0IGEwZTQ2YzNiZTYzZWYyZGY0ZjQxZDQ1OTcxNzg2MDZhZTQ4YzVlYjYgbGVnYWN5LXRydW5rCisxOTA4NSA1NDUzNDE0ODg3M2U2ZjljMTc5MmNlNmVmZGQyZGMyY2E1NjZhYTgzIGxlZ2FjeS10cnVuaworMTkwODYgZDMyOTJlZTViNmUyNGExNWM1NDVlMGIxYjkxMTJiZTliODJlNzM0OSBsZWdhY3ktdHJ1bmsKKzE5MDg3IGU1NmRkMmRkOTk2MDcyYTc5NDk2ODllNDg3YTM0ZmIxNTA1MTNhYjAgbGVnYWN5LXRydW5rCisxOTA4OCBjN2M0MDRiMzVmMzNhMGQ1NGM4MmY2NzU4OTlmMTkwYzEzZTUwZmQ3IGxlZ2FjeS10cnVuaworMTkwODkgOGM0ZGI4YjlhZjliOTBlNTM2YmZiNTAwZTQ3MGU2MjA2MmUxZjhmMCBsZWdhY3ktdHJ1bmsKKzE5MDkwIGFiYjk0NTA2NjQzNjc1MDgwNDRmOTRmZGViMDJlNGM0MTBhZjMxYmQgbGVnYWN5LXRydW5rCisxOTA5MSBlMzAyNTg2NDUyYTMwODM4MGNiYTQ5ZTYwNjAyZDg4ZTEwN2U3NjY5IGxlZ2FjeS10cnVuaworMTkwOTIgMzlhMTRiYzhhMGY3OTBiODQ4YmVkZmQzYzZkNDg3Yjk5YWNlYTZjZCBsZWdhY3ktdHJ1bmsKKzE5MDkzIDNhMjBkYTI4OTNjNDdmNThiZDZkYTlhYTI2NWRlN2Q0ODc2MmE5YTIgbGVnYWN5LXRydW5rCisxOTA5NCBkZjJlZDU2NjRiZTUxNTIyZTEyZmRmNzg1MzZkN2RhZGMzN2IwM2U2IGxlZ2FjeS10cnVuaworMTkwOTUgOWJmNDM4YzhmNWM3OTM4YTVmNWY1NTE3Y2QzMjk2MDYwYjUwMWEyYiBsZWdhY3ktdHJ1bmsKKzE5MDk2IDQxZWQ0ZDg2ZGI3NzcyNTBjNjJjNDFiYTZlM2QwODcxMmNlZWM1Y2UgbGVnYWN5LXRydW5rCisxOTA5NyA1YzYwMTg0ZjdmNTJhYjFkNTIyMzNlYzllMzk4MzQ5MjBhZmM5NzU3IGxlZ2FjeS10cnVuaworMTkwOTggZTVkNTlhOWRiZmMwMjhjZGVmMGVkMjY3YTIzOWFjMmMwMzUyN2I0ZiBsZWdhY3ktdHJ1bmsKKzE5MDk5IDNmZTc1OTI0ZWFjMTBkY2FhOTczOWE2MzIzNGVlMmI3M2IxOTUzZTMgbGVnYWN5LXRydW5rCisxOTEwMCBiNGQ0ZjIwMjExMTQ0YTljOGUyODAzMWY0OGRmYTJlYTUwYzdkMTEzIGxlZ2FjeS10cnVuaworMTkxMDEgMmZmODI2MzE4ZTg5ZWRmYmQwZDc2ZWE3Y2E1ODI1NGRhMTRjNDM2MSBsZWdhY3ktdHJ1bmsKKzE5MTAyIDdmNjE4YmMxMzk4MTEwOTIyYzU1NTZkNmNiZGUzYjUzZDA5ZDJmYmMgbGVnYWN5LXRydW5rCisxOTEwMyAwNWJlNWY4NWYzYmY2MDhkNmI5ZDkyODU3MWI1YTNkZmQ4ZTlmMTVkIGxlZ2FjeS10cnVuaworMTkxMDQgM2M1ZjA5NDIyYjY5YTlmZDg3MjMwYmU3NGVlOWM1ZjcwMjFjNGJkMyBsZWdhY3ktdHJ1bmsKKzE5MTA1IDlmZDk2ZTI0NTViNjJjNzc1N2YxZTBlMTdkZGU1ZDQ1OTYwYzBmYjUgbGVnYWN5LXRydW5rCisxOTEwNiBmYTIwOWNjODRjYWNlM2VjOGQzYzk4ODM3OWI3ZjE2ODVlNDE3Njg1IGxlZ2FjeS10cnVuaworMTkxMDcgMDk3MzZhZWFiODMxMWZmMjM3ZGJhNWVjMDI0NWE2M2EyMmE3MGE5ZCBsZWdhY3ktdHJ1bmsKKzE5MTA4IGM0MWRkMjIwNGI5YzhlMGIzMDNkMTIyMTgwYzE3Y2Q1ZGEwNTI4ZDggbGVnYWN5LXRydW5rCisxOTEwOSBhNjhjNzAzMmNkZjI5OWYyYjNlZjgxMzhkY2E3ZmE0NTUyM2QyOWY0IGxlZ2FjeS10cnVuaworMTkxMTAgMTQwYzUyODU4ZjY1ZTQwODhhYjE1ZmY1Nzk2YWVkZDk3YTMwM2ZiZSBsZWdhY3ktdHJ1bmsKKzE5MTExIGZhMjcxZDdiMmE2MmJjYWZkZjkzNmY0YzE2Yzk2OWQ4NTIzYjkyNTYgbGVnYWN5LXRydW5rCisxOTExMiBhYWI4NzE2MzVmZmFlNDliODkwOWVmNjYwZWRiMjY0ZjYwMzBhZWQ4IGxlZ2FjeS10cnVuaworMTkxMTMgYmQ4ZDI5OGFmODgwYzJhMWUwMmMxOGVkNzk5ZjIzNDg2YTUwMmUxZiBsZWdhY3ktdHJ1bmsKKzE5MTE0IDNmODllNzI0MDA4NjA1NjgzOTQxM2UzOWYwNGE3YzhiYjVjYzIyMzMgbGVnYWN5LXRydW5rCisxOTExNSA0YjUxZDA2OWJlMzUwZWQ5YTU0MDRmMDI0NzYzOTY5YWNiZjAwMmE2IGxlZ2FjeS10cnVuaworMTkxMTYgYzFjZjVkMmMyNmNhZTcwZTMwYzhjMzVlMjg0NmIxZTFiMDAxMThlNCBsZWdhY3ktdHJ1bmsKKzE5MTE3IGY4MDQ1M2U0NDViNWE0NDE1OGVkOTY4NjJhZDAyYzVhYmViMTBkYWIgbGVnYWN5LXRydW5rCisxOTExOCAwNzA3MTg3MmRlM2UxMTRiMDEyNmMzZTI3YWI3ZTZmN2U5NTA2MjAwIGxlZ2FjeS10cnVuaworMTkxMTkgZmQ4YzcyMDMyNTFmZjM3ZGJiMzk3ZjdkNDIzYWU0MWYxNmEwM2M2OCBsZWdhY3ktdHJ1bmsKKzE5MTIwIGY0OTRjYTBhMmIzNDZmZjY4ZmFhY2NjNjUwOGJlYTI4MDJkYTlhMDggbGVnYWN5LXRydW5rCisxOTEyMSA5Mzg2YjMyYmZmMWRhYjQyNGQwYjU1NGY2OTg2MTliY2I1NDNhOGZhIGxlZ2FjeS10cnVuaworMTkxMjIgMjBlZjg0OWVjODc3YzcyZTU0YjZhNDRiZjU4ZDQ1YWUzYWQ0MzUxYSBsZWdhY3ktdHJ1bmsKKzE5MTIzIGJkZmM2ZjFmYTQ3NWNlNjczMTNkOTNkYzFlMzNhZTJiY2ViYWY1M2QgbGVnYWN5LXRydW5rCisxOTEyNCBhNzA0ZWE1ZWNlYjZiM2QxYWZjMWZhZGNkYzg4NTQ0MWNlZGY3ODRhIGxlZ2FjeS10cnVuaworMTkxMjUgNzYzYTNkNDJiYWVkZjE2N2QyOTI1OTA3NDhhZjNhMDY3MTJkMzJmNiBsZWdhY3ktdHJ1bmsKKzE5MTI2IGUxODg4OWUzOTQ5YzA2OWYxYzM0MWUwZTc3YzJiNjQ2NTNiMWZjYzUgbGVnYWN5LXRydW5rCisxOTEyNyBkNjE0YjZlOWZiNGVkOTRlMWYwMGI3MTA5MGU5NDFjMTM5YzdhY2UyIGxlZ2FjeS10cnVuaworMTkxMjggOTlmMzQ2NzM4NDE1YTA2YjMyZmI3YTRiYjExODkwMTc5Y2QxODkyYiBsZWdhY3ktdHJ1bmsKKzE5MTI5IDYwZWUzMzhmMGQ2NjZmZGVmZTAwMzYwMjE1MzE5NjZmY2M2MWY5MGYgbGVnYWN5LXRydW5rCisxOTEzMCBjMmNlOWIyZTViYjQyM2FhZWVkYjBmMWQ5NTQ5ODhhMTllMTk3YTBiIGxlZ2FjeS10cnVuaworMTkxMzEgNzc5NTgyNjZjN2Q3YWFiZmVjNTM5ZmJiNzFlNDU0MmY2ZDZlMGRlZSBsZWdhY3ktdHJ1bmsKKzE5MTMyIDkwMjU1ZDQ0MWNkNWY2MjFkMDg1YTQ4ZTNiZTE2NzI0ZmVlMzIyOWIgbGVnYWN5LXRydW5rCisxOTEzMyA3ZWYyMzgyZjYxMjNhMDY1ZjkwNzYyMTBkYTdjMTI0NTkzZjllY2YxIGxlZ2FjeS10cnVuaworMTkxMzQgODM1ZTlkZDU0YmZiOGFjNjNmZWFlMzkzZDhlMWY0Y2JmZTFlODg0OSBsZWdhY3ktdHJ1bmsKKzE5MTM1IGM4NWNhOGM2MjEyOWNjODExNGM1M2E3MDQxZjNhY2IxYmE2ZTQ5NzcgbGVnYWN5LXRydW5rCisxOTEzNiAyYWViM2EzNGM3YWNkYjMzZmZhNWY5ODdlNDVmN2IyYmM2YTZhYzM5IGxlZ2FjeS10cnVuaworMTkxMzcgOWNlNTE0OTgyNWY2YWVhYmQwZDdjYjQ2OTBmNjAyZmQ1YjBhODRiZiBsZWdhY3ktdHJ1bmsKKzE5MTM4IGNhODU1NDdmY2I1ZTQyNGY1M2JmNmM0ZDQ0NmVjMGM3OTU5NjYxNzYgbGVnYWN5LXRydW5rCisxOTEzOSAxNmUyMTc3MmNhM2YxNDYyMDJkYWQ3NTk5YWVkMTljNDI1NDliYjAwIGxlZ2FjeS10cnVuaworMTkxNDAgYjQ2Zjk1NmFiY2Y4NTJmNTYwYWU5OTM0MGU0MmZlMWIxZThhYjM3MCBsZWdhY3ktdHJ1bmsKKzE5MTQxIDc4NWNlNjE5Njc5NjE0MjgzNDMwZGY0OTMwZGZmMDYyNGNmZTM3MDQgbGVnYWN5LXRydW5rCisxOTE0MiA4YjgxYTdlNThhMWQxOWM4YmY2Zjk1YWJmNDU4NzgyNzU1ZjdmMzZlIGxlZ2FjeS10cnVuaworMTkxNDMgMmFiY2JlNDQyNzFhYmIwNzYzNDUzNzI4NTljYzUxOGJjMzVmMjMxZSBsZWdhY3ktdHJ1bmsKKzE5MTQ0IGVhNGEyZjNiMjY2ZTAxODY1ZmQ2NGEzMjU4MjY2NGI4Y2ZiNzhiNDkgbGVnYWN5LXRydW5rCisxOTE0NSA2NWM2YTI5OThiMWJkZWQwYzk5NjUzZDYyMjA3MzIyNWZlNzk0MzJkIGxlZ2FjeS10cnVuaworMTkxNDYgYTA1NThlYmY2NjEyNzUzZTAzODhiNmQ3YWUzYzBjMDQ2NTVkYTQ1OCBsZWdhY3ktdHJ1bmsKKzE5MTQ3IDE1ZTBjMTAwOTJiYjRkYjBhZDY3MzI3MmZhMjk3MzEyOGExYzk4NjIgbGVnYWN5LXRydW5rCisxOTE0OCAyMGUzYzBkNWU0NmZkMzQzZTE4ZjExYzYwYzNhZTVmZmRhYTZhMTQ5IGxlZ2FjeS10cnVuaworMTkxNDkgNGI3Mjg4OGM5ZTJmN2VkZDMzNjY5M2Y4NWYyZjY2YTMyY2UzOWNiYiBsZWdhY3ktdHJ1bmsKKzE5MTUwIGMwYTI0NDFhNDQ1NGJkZjMwZGExZDI3ODRkYmMyYTRiMWFlOTNlOGEgbGVnYWN5LXRydW5rCisxOTE1MSA5M2JhMzNkYzMzM2FmMjJjN2FhZGVkYzdiMGIxMWNiMTA2YjgxNWY3IGxlZ2FjeS10cnVuaworMTkxNTIgN2EyNTE0NDBjZTY3ZDY4OTRhYmYyZmJkZThiMzI2YjYyZjYwMmNhMSBsZWdhY3ktdHJ1bmsKKzE5MTUzIDA5NDAzYzVjZGFmYmMwOGE2MGIyNjg1NmYxZDQyODBkZjNiNjZhY2MgbGVnYWN5LXRydW5rCisxOTE1NCAwNTAxYzJhMTAzMTVmYzRmMGQ0YzE0ODUzZWMxMDY0MjYzN2NmMmY2IGxlZ2FjeS10cnVuaworMTkxNTUgMjdhNGExN2FlYzI1MTRjZDg4NjQ2Nzk5NzI5ZTk1NmQxODVmNTNmNyBsZWdhY3ktdHJ1bmsKKzE5MTU2IDI4YzZlYzU4MWFhNjk2ODIyYjk5ZTNjZjI5MmJhYTMxMjUzZDZiNzUgbGVnYWN5LXRydW5rCisxOTE1NyA3YjM0NzZjMTM4MmViY2JmY2E1ZGQ3NzcxNGNkZTA5NWNhZjU2NzIyIGxlZ2FjeS10cnVuaworMTkxNTggYWI5OWJkMzk0NzBjZTM5MWJhYzJmOGNjYzYwNzk5OTk3MTNhMTBkNSBsZWdhY3ktdHJ1bmsKKzE5MTU5IGQwZDhjOWQ1MmYxODQ5OWQwYWFkZWNlYjAxMWE0MDI4MWE0NjZjZGEgbGVnYWN5LXRydW5rCisxOTE2MCAyZGIyOTkzOTU4MGRiYTc4ZDUwNmEzMjFhMDYyYzJhNTI0MDkyZGY0IGxlZ2FjeS10cnVuaworMTkxNjEgZTFlMGU5OTZiMDAzNWRhMjJkOWRiNTZlODRiZjA2MmUwYThlMTdlYSBsZWdhY3ktdHJ1bmsKKzE5MTYyIDI2YzFmZmZkZmZmMmYwOGU3NGM5ZjRjYWJjMDNmMzY0YjcxYzM2YTAgbGVnYWN5LXRydW5rCisxOTE2MyBiZGZiODFkM2M2MTBlYWQ4ZjM5ZGM2YTUzOTY3M2VjNjFhM2I3ODUyIGxlZ2FjeS10cnVuaworMTkxNjQgM2ExZTY1OGU0NDc0NmMwMjE2YzcwYWY2ZmQ1NTI5YTllODc5MjE0OSBsZWdhY3ktdHJ1bmsKKzE5MTY1IGU3ZjQxM2Q0ZWUxNWFiODZkNDY0YTE1YmUzZmM3ZGFkMWQ0MmQ5MDAgbGVnYWN5LXRydW5rCisxOTE2NiBmYzNmNTA1OTQ1ZDRjZDA4MmQ2NTA2Y2FlMzE4NzMyMDYzMTc0YWJlIGxlZ2FjeS10cnVuaworMTkxNjcgZmIwZjU2YmIxNDA1OTk3M2U1NjQ1OTZkODY4OWNkYTg3ZDYyYzMxZCBsZWdhY3ktdHJ1bmsKKzE5MTY4IDhlODczZmE1NDUwZWJmNTZiZTQwNmYxOTZhNThkNGVhODg2NWRhOTcgbGVnYWN5LXRydW5rCisxOTE2OSBmODRmOGQ4MWUzMmNlNzA3MTEyYjM4NjUwOWQ5OTk3M2I0MjYzMTcxIGxlZ2FjeS10cnVuaworMTkxNzAgOGU2NmVhNjAyNjE2ZGE4ZmVlOTE4YWE3MTE5MGQ0ODdjNGE3ODU2OSBsZWdhY3ktdHJ1bmsKKzE5MTcxIDk2NjNkNWViYjY0NmMxMjJjOGMxYjUzOTc3NTQ0NzA3Mzk1ZjU4MjYgbGVnYWN5LXRydW5rCisxOTE3MiA1NGIwYWVmNjUwYzUyOWQwNzZlODc4MDkxZjc3MDY5YTBkNjRlODRiIGxlZ2FjeS10cnVuaworMTkxNzMgOGM0MWYzODYxYWFkZGNjYWYyZDBmMmJhYjE1ZjhlN2Y0OWQ4NzE5MiBsZWdhY3ktdHJ1bmsKKzE5MTc0IGI4MDE4MTQ1ZTJhNWU3OTUyNmI1NjllNzJhMGY3ZDc1NzNlNTcxYjYgbGVnYWN5LXRydW5rCisxOTE3NSA2NjJhZGYwM2U0ZmEyZjY2ZGE2Zjg4MGE4MWMwNzEwMjVjNThhMmVmIGxlZ2FjeS10cnVuaworMTkxNzYgMjRlNDU3YmExZjkyNmM1YjRjNzRjOGMyMjE2NmY4YjA0MzYwNjVlMCBsZWdhY3ktdHJ1bmsKKzE5MTc3IDI4YzYwZWY0OGZhM2ExY2JhMWUxOTM4Mzk4ZmZiZDQyZTJlOGEyMDAgbGVnYWN5LXRydW5rCisxOTE3OCA3OWU3MmNlMjJhNDMwZjAxYTA0YmJmZGE1N2ZkZDIyZjliNWZjMGVmIGxlZ2FjeS10cnVuaworMTkxNzkgODYxYmY4ZGNmYjU4Yjg2NjdkODVlOTZhMjA3MzI4MjM5MDFmZmU4MiBsZWdhY3ktdHJ1bmsKKzE5MTgwIDE3Y2FjNzBjYWU3NjYyMTcwYTJhOTU4ZTQ3ZWNkZWY2MzZlZjZlMzUgbGVnYWN5LXRydW5rCisxOTE4MSBiMzM1ZDRkZDIyM2YzODg0YTY3NmJjNDAwMjZiZTk3OTExNDZiZTVlIGxlZ2FjeS10cnVuaworMTkxODIgMGVmYTZjOTdhNGZhYjU2NTg2YWQ0N2MwMGM5ZWI1NTY5M2M3NWVkNCBsZWdhY3ktdHJ1bmsKKzE5MTgzIGE1OGM5OTNkOTIzNDU3MmY4MjlkODU4YTRlODJiM2Q3NzVlZmFmZDQgbGVnYWN5LXRydW5rCisxOTE4NCA5MjViMjMzZjAyZWEwZGNlMTk0NDY5NjQ3OWRkZjFkNGU2MjM2ZjdkIGxlZ2FjeS10cnVuaworMTkxODUgYWZkMDkzMGY4NjgzOTlhZWIyNTBmZTRkMmQzMTYwYTNiMjU0Y2ZkZCBsZWdhY3ktdHJ1bmsKKzE5MTg2IDlkNTcyMDM4MjA2ZTAyNzYwODk1NjMxM2JmN2U5MWNlYTMwOTRmZTMgbGVnYWN5LXRydW5rCisxOTE4NyAzMzAyMzk1NzVlMWU2NzU3ZmNmZTc3YTY3ZmRmNGFlM2I2ZjJhZTIzIGxlZ2FjeS10cnVuaworMTkxODggZmZkMjUxZGZhYmY0MmFkODJhOTcyMDY0NWYzMjljMTllZWJjMDA5YiBsZWdhY3ktdHJ1bmsKKzE5MTg5IDkzYWZiMmJiMjJlZDA5YmFmOGY5NjA3MDQ4MDM2NTE3MmQ4OGUxYjUgbGVnYWN5LXRydW5rCisxOTE5MCBhYmQzODNmMTkwNWM4MWVjZTkwZjRlMjJjZTNkZTQxOGM1YzViNWNiIGxlZ2FjeS10cnVuaworMTkxOTEgNGQ0MjRkMTM5N2IyZDhiOTg1NDc4MzU3OWViZjMyMGQ1NzEyMTVjMiBsZWdhY3ktdHJ1bmsKKzE5MTkyIGJlMDZiZmNiZTUxYTJlYWM1MDI1OGI3NzJjZjQyNTZhYzI3ZWFmYTMgbGVnYWN5LXRydW5rCisxOTE5MyAyNGU4YzY5Y2QzNGRhNTRhNTgyOTc3MDMzYTAwYjgyYWNlM2I5MGM0IGxlZ2FjeS10cnVuaworMTkxOTQgYmFjYmI0NWZlODQ0OGZlMjM2N2Y0NTIyMTBkNDdhODE3MDI1ZDE3MCBsZWdhY3ktdHJ1bmsKKzE5MTk1IDAxZDViODBhM2MwMzgyMzc1ZGY5NDY0OGE3NDZjY2I4OTM4ZGVmM2MgbGVnYWN5LXRydW5rCisxOTE5NiAzNmRiMTkzNjA4YmVlMTU0NWI3Zjk1OTQxNTg4MTI3Y2RjZmNmM2UxIGxlZ2FjeS10cnVuaworMTkxOTcgMjg1MmVhZGI3ZGFiYTUxMmNiMzFlZGNjNDMyNjYzNTJiZDQ4OGQ2MCBsZWdhY3ktdHJ1bmsKKzE5MTk4IDJkOGUwMjkwMmQ2N2U5ODg5NzE0ZDkwMDNhYWZlOWYyNmEwZmQ2ZjkgbGVnYWN5LXRydW5rCisxOTE5OSBmYTkzYmQxZDg3MDlkOGNiYmRjYmUwNGJiOTdjMDc2YTdiMDkyOGQ2IGxlZ2FjeS10cnVuaworMTkyMDAgNjg3ZjkzZGRmM2Q3MzQzYmEwM2JjYTIzY2RkOTlhOTM4YmQ4MmU0OSBsZWdhY3ktdHJ1bmsKKzE5MjAxIDY1NDk4MmE0NjYwNzc2OWVlYjIwZjVjYWQ0ODIxYzk4NmI4ZjFmMGEgbGVnYWN5LXRydW5rCisxOTIwMiAyMDcwNzQ1ODhiOWZkZTA0ZDFkNmMxZjMwNDU2ZTIwOTRiNGZmZTU4IGxlZ2FjeS10cnVuaworMTkyMDMgYTRiYmEzZWIzNGMxZjE3MzZlMjkzNTY2MzVkZTFhZDM1MDM3ODAzNSBsZWdhY3ktdHJ1bmsKKzE5MjA0IDA1YTkxM2ZmOTdhNmUyMTBmNmEyMDE5ODdiOTU5NDcxZmNhYzQzM2EgbGVnYWN5LXRydW5rCisxOTIwNSBmODdhNDFiOTZlMjhjYzk4ZDEwMTQ0ZTRiMGFlODQ2ZDc2YmNkZjVlIGxlZ2FjeS10cnVuaworMTkyMDYgYThkODg1N2FiMGYxZWNkNWJhYTYwY2U5ZjU1OWIzMDI4YTg0NTMzZSBsZWdhY3ktdHJ1bmsKKzE5MjA3IDBjYjQ3OTU1MzQ0ZTQ0NGUwMTFhYjM3OTI1MGRkY2FjMDc2YWRiZWMgbGVnYWN5LXRydW5rCisxOTIwOCA5MGVkZTUxNjVkMWYzYzE1ZWEwOGEyYjg3ODhiMzI3YTUxNzBhYjA3IGxlZ2FjeS10cnVuaworMTkyMDkgNmYxYzM3ZTgxMTYwNWJmYTA1MTE1Y2NlZjY3ZDI5OWJlODFmMTg4ZiBsZWdhY3ktdHJ1bmsKKzE5MjEwIDZkZjEyNzMyZTI2MmYzYzc4M2IyYzA2OWE3ZGQ2Y2JlYWI4YjhlYjUgbGVnYWN5LXRydW5rCisxOTIxMSA3YzRlYjQwZDRmZjc5MjhlNTBkZTEzZDJkNjBkODc1MDFiMDlkZTE5IGxlZ2FjeS10cnVuaworMTkyMTIgNjZkNGJmNTZlMzJkYmIxODViMmVlMmMzNjFlNDIwMzAzMjY2MWJjMCBsZWdhY3ktdHJ1bmsKKzE5MjEzIGVmMzJiZmE1ZjVjNjgxMzQ4MGI0YTEzOGM2MTRkNTczNTUwMWM4OTIgbGVnYWN5LXRydW5rCisxOTIxNCAwZWViMmVlMjA3OTk5ZGFhZWIxZGI2ZjFhMDU4ZjRmZjk1ODQxM2Y3IGxlZ2FjeS10cnVuaworMTkyMTUgYWUwNGQ2MTRhM2UwMzNiNDBlYmY3ZGFhODY3OTc5Y2I4YTdiNDc5YiBsZWdhY3ktdHJ1bmsKKzE5MjE2IGMzYjc1YTdmYWQzZjc4MDZjNzQ5MDk3NWIyYjdiNzIyMDk3MDRhODcgbGVnYWN5LXRydW5rCisxOTIxNyBlNDQyMGMyNDY4ZjkwYWE2YjFiNjFmZjE3MGIzYmYyMGZhODA1MmYzIGxlZ2FjeS10cnVuaworMTkyMTggNGZmMjg1OGQ3YTg1NTY4NjQ2OTU3NjgxMmZmNTMyZTRhNDFjYjQzYyBsZWdhY3ktdHJ1bmsKKzE5MjE5IDlmMmNhODU1ZmE0NGRiNjRhMTY4Y2I5MmVkZGJmOWU3NWQyODBmOGMgbGVnYWN5LXRydW5rCisxOTIyMCBmYThiZTI4NzMwYzk4NTMyNDNiNDI3ZmMwY2ZmMzczMjQyMGJiYWMwIGxlZ2FjeS10cnVuaworMTkyMjEgMTA5YzZhMjgwZTUxYWEyYzdlZjJjMzVmZDYwMTY2NjU0Njk4YjRlNSBsZWdhY3ktdHJ1bmsKKzE5MjIyIDk1ZGFlNjFjZWQ1MTgzM2Q4ZjE4NTkxZjg3MDE2MGNmZGY3NjhjOTAgbGVnYWN5LXRydW5rCisxOTIyMyA4YzVkOGI2MTc5NzlhYmIxZTZiZGQyNTFmNWY5OGFkYjQ3MDA3ZGRjIGxlZ2FjeS10cnVuaworMTkyMjQgNjU1YWFjY2QxY2FmOGE1NTlmZmMzMmYxNjNkMTAyMjhlNTljNDEyYiBsZWdhY3ktdHJ1bmsKKzE5MjI1IGMyOWNhMTk4MDMwMzhiY2I0YTJmMGFhNDk2OWNlYmJmYTFjZWJjM2IgbGVnYWN5LXRydW5rCisxOTIyNiBmMWUyZjk4ZjAxMjA3ODAzNzFkMjBhYmRhZTE2ZjRiZDZkMjlhYjYwIGxlZ2FjeS10cnVuaworMTkyMjcgNTBmN2RkMWE1MzU3ZDljOTU5MzI3YjliMTY3NzMyMWYyNTM5Y2IyZiBsZWdhY3ktdHJ1bmsKKzE5MjI4IDM4Y2E5Y2M5ZmM0OGExY2YzMDA3YTlhOTA5YmNmMjA4NzJkOTU3NWIgbGVnYWN5LXRydW5rCisxOTIyOSAzYzFiNDI2YjNmZjRjNmVjY2ViMWUxMjZmYmVmYTQ3ZDBmNzM0ZjNlIGxlZ2FjeS10cnVuaworMTkyMzAgYzY5NmE1MmMyNjIxODQ1ODIzMWZkOGY2MzcxZDZiZGI5ZTM3OWI3YSBsZWdhY3ktdHJ1bmsKKzE5MjMxIGMwNGNhNmNiYTFlM2M4ZThiNTJkNWEzNjE1MTE0ODcwNWI3YzEwMjYgbGVnYWN5LXRydW5rCisxOTIzMiA0YjViZWNmYTJlYjNhY2Q0ZjFmNTljZDc5YzMwNjNjNzMwMTM3Y2Y2IGxlZ2FjeS10cnVuaworMTkyMzMgM2ZlODU1NTI2YzU1NjA0OWQ4OWM0NGUwNmIyZjExYmQ2YTVhNjc1NCBsZWdhY3ktdHJ1bmsKKzE5MjM0IDY3MGEwMTk0YThkYTdlOGJlOGQxOTc5MTk2OWY4MmZhNjg5ZTJkZmQgbGVnYWN5LXRydW5rCisxOTIzNSA1ZGZkN2UxNmM2MmYxNzJlNjRhZDRiNGVkODUwMzE3ZDliOWQyZjQ3IGxlZ2FjeS10cnVuaworMTkyMzYgNjMyNWJkMDYzZjBhODgzMzZmYmE1NTA3Yzk0NTY2YzhjNGQ5YTU1MyBsZWdhY3ktdHJ1bmsKKzE5MjM3IDZmZDYzYzVjMTlhOTIxOGIyODk5ZWNlMjk0M2RiZTlhNWYwYzcwNjcgbGVnYWN5LXRydW5rCisxOTIzOCA4YjFhMzgyMjRhZGU5YjU3NWE1NTNiMjU4NTg2OWExMjlkMjMxYTdkIGxlZ2FjeS10cnVuaworMTkyMzkgMGQ0YjZiYTVlZWVjODUwNTIyY2Q5MzU3NzkzYjNjZWU4MWZmMWVmZSBsZWdhY3ktdHJ1bmsKKzE5MjQwIDRjZDU3NDQ2OWZlMWFhOGM5ZGEwZGU4ZjFjYzYyNzQyYTY5YTFlMjkgbGVnYWN5LXRydW5rCisxOTI0MSA1ZjA2ODNhNjllZmM2ODg0YzY0MTczYTAzZDhjZDAzZTU0NjI5NjZhIGxlZ2FjeS10cnVuaworMTkyNDIgM2E0ZDJiZWZiYjc0NzM0MmRmMzMwYThlMzNiYTZkNjc4MGM4YTM4ZCBsZWdhY3ktdHJ1bmsKKzE5MjQzIDQ4YjRhY2Y3M2FkN2FiZDIwM2QzMmQzYzg5NWEwMzZjMmVjZDk0NDIgbGVnYWN5LXRydW5rCisxOTI0NCBlYzhmNDdhMWNjNDgzODg3ODFkODJjNDJjNzcxZTdiYTg2YmNiNTgzIGxlZ2FjeS10cnVuaworMTkyNDUgOThhODhhYmU1OGQ0MmViNzg5MGQ5MTI4ZTIzMmFiMDE0ZWM5OTI3MyBsZWdhY3ktdHJ1bmsKKzE5MjQ2IGM4OThjZWJhMjI2MTg0MGViOWNkNGExMTkxYjQ4Yjc1MWZkNzZjMDUgbGVnYWN5LXRydW5rCisxOTI0NyAxZmI2NjcyYjIwZWYzY2NhZjIxMDQ4Njc4MDFiOTExY2QwYWQ2N2NiIGxlZ2FjeS10cnVuaworMTkyNDggYzI1NTViNGYzOGEzMTQwZjYxMjExOWE4ZDZiZTA0NTE0NDc4Y2VhZCBsZWdhY3ktdHJ1bmsKKzE5MjQ5IDU1Njg4NzI5NmQyYWQ4YWUxYWRkNDE4NmFiMDAwNjc2ODcyOGNkZTAgbGVnYWN5LXRydW5rCisxOTI1MCBmZDRhNjM1NjZiYTFmNGQ5OWEyNzk1OThhMTZjMzA4YjEzNjgwZjQ1IGxlZ2FjeS10cnVuaworMTkyNTEgNDZhOGNmZTlhZmE2MzRkMGMzOGMzZDQxYzFiOWNmMzQzYWViNTEzNSBsZWdhY3ktdHJ1bmsKKzE5MjUyIGQzNGYyNTA0NmFkNGJhNDY5ZDc3ZTdhNDQ0YjdlYTgxMWQwOTJjY2YgbGVnYWN5LXRydW5rCisxOTI1MyAyYWIyOGIyMTNkNzA1ZGNjOWZkMDMzYTI1NDM0YmE0ZGJhNjg2ZmVjIGxlZ2FjeS10cnVuaworMTkyNTQgMmVjY2ViOWQ4N2Y1OWUyMjBmZGI0NmRhZjAxNjZlN2VkMTExZmMyNyBsZWdhY3ktdHJ1bmsKKzE5MjU1IDAzOTQyNzBkNGQwNmQ1YTE4NzI1N2U0OTQ1ZTQxM2VmMjc0NzkyM2QgbGVnYWN5LXRydW5rCisxOTI1NiBmNzAwZTZiOGRlMWZhNjA1OWUyN2ViZDRlMjY3MWIwMTQwMTQyMDAwIGxlZ2FjeS10cnVuaworMTkyNTcgNzRkMTQwYTNmMDM0NjM1NDg0ODI0YTIyOTZjZjVhMGQ2YTBiMTI4MiBsZWdhY3ktdHJ1bmsKKzE5MjU4IGIyMmU0ZGNhNDUxYTM1NzY5N2M2YmJkNTFjNTQ5ZTVjMzAyNzJkMTkgbGVnYWN5LXRydW5rCisxOTI1OSAwYmI1OGNkZmE2ODhmZjFkOTM3ZmFiOWMwZWEyOTAyZmY3NzZiZjYyIGxlZ2FjeS10cnVuaworMTkyNjAgODBjMGIyODBhNGY5MTFlZjZiN2M4MmZlMzJjOWQ0YTBjM2NmZTQyZiBsZWdhY3ktdHJ1bmsKKzE5MjYxIGRjZTdiNGU2ZDQyMWJjYjhjYzcxM2RlNGE0YzMyNjBlN2ExZDYxYTIgbGVnYWN5LXRydW5rCisxOTI2MiAxNjZlODc4MzZlOGU2MDU5MjYwYzlhYTdkMzYxMTZkMjZmODExNDczIGxlZ2FjeS10cnVuaworMTkyNjMgYWJlODVkMjYyMmY5ZmJkZWY1M2NiNTQwZTViOGQyZmQxMDA5MTVkMiBsZWdhY3ktdHJ1bmsKKzE5MjY0IDA4YWM1NTZmMmQxMmRlNTllYmE2NWQzNDVhNDdkOTdhN2Q1ZjY5MzAgbGVnYWN5LXRydW5rCisxOTI2NSBjMjJlODcyNTAxYTBjOTUyZTQ2ZmY0NTk5OTExZDU4YmE0N2E2YWQ5IGxlZ2FjeS10cnVuaworMTkyNjYgMzkwY2E0M2U1Zjc5ZDBmMmZiMDlmZmMxYzBhNThjZGQ0ZDRmYTY2NSBsZWdhY3ktdHJ1bmsKKzE5MjY3IDdhZDk3ODMyYTVjZDA1YjE3YTVlZTIwYTQ1MWIyZTY3Y2YyMTVjMTggbGVnYWN5LXRydW5rCisxOTI2OCAyZDcyZGI5ZjVjYTU0NGNkYmVkMDkyZjkwOTA0YWYzYmI4Y2I3OTAwIGxlZ2FjeS10cnVuaworMTkyNjkgOTllZGUyMTkwODcyNzM2NDE2MmMxNWJlMmFjNjI0YjNhNzY0YWFhZSBsZWdhY3ktdHJ1bmsKKzE5MjcwIGVjNzA5ZWU4ZTZmYTY1MjdiYWRiMDNmZDE0YTczMjBmN2ZkNjUzZDEgbGVnYWN5LXRydW5rCisxOTI3MSA3NDMwZWJhYmRiZGNhZWUzMjljY2IxYzdiYzJkN2FlYzM0OWQzNmUyIGxlZ2FjeS10cnVuaworMTkyNzIgM2Q0YTdjZDBiZjE3OGFkNjNlMzhiZDNjZWVmNTBmMTMyNzI0MDJkYSBsZWdhY3ktdHJ1bmsKKzE5MjczIGFlZGI5M2Y5YzZiODBkNTk5MWMwMmRjOTY1ZThiMGFmOGUwNmFjYjQgbGVnYWN5LXRydW5rCisxOTI3NCAxMGVhNDA2MGM4ZGM1NWJkNTNmOGFmZWIwMWJmMjJhY2NjZmM1YWQ5IGxlZ2FjeS10cnVuaworMTkyNzUgODgxOTg2N2YxNGVmNjU5YmU4ZmY4MDUxYzAxMjRhNGQ5YzVkNDM5ZSBsZWdhY3ktdHJ1bmsKKzE5Mjc2IDE4NWI5MTk2NzE0N2RkMDI3NjYxNWUyOGEzMmYyYjc2MWQyZmI5OTkgbGVnYWN5LXRydW5rCisxOTI3NyAxMmQwMDQ4ZWQ2Y2E1YjY4YzJlNjQ3ZjU2YTJmMzc4ODBhNDU3Y2U5IGxlZ2FjeS10cnVuaworMTkyNzggN2QzOWQ5ZGNmMmQ2MTEzNzhmYWNjNjgwNDA4MDI0YmZiNzU1NGRjZiBsZWdhY3ktdHJ1bmsKKzE5Mjc5IDkwMWI5NDY1NjkyOGIwZDBhZWViNmMwNzI4MGEyOWM4ZjI0Nzk4YzEgbGVnYWN5LXRydW5rCisxOTI4MCAxYWM3ZTYxODZiNmUzZjc3YmE3YjM4NWFlZGRjNDY5MjA0NjVkZTlmIGxlZ2FjeS10cnVuaworMTkyODEgMWVmN2U0MzcxNWY1NDBjMzBiZGQ2MTA3YzVhZmNiMGZjMzhkNjljMCBsZWdhY3ktdHJ1bmsKKzE5MjgyIDM4MjA0MDkzZDljOTI5ZDY0NGVmOWM1NmJiODlkYWY5OTQ1ODdjMGEgbGVnYWN5LXRydW5rCisxOTI4MyBhYTg0NDcxMTQ2M2FhODk0YWZmY2UwOWE4N2JiYWMzZjRjN2UwZTI3IGxlZ2FjeS10cnVuaworMTkyODQgOGIzMThiOGQ3OGM5NDQ2NmRjYmVmNWJhOTEyNWNiNTNiMzk2ZjI5MiBsZWdhY3ktdHJ1bmsKKzE5Mjg1IDVjNDAxMTM0MDljMzI3N2M2NjI0MWM5YmM3ZjNjZTYxZWU5MGFjNzcgbGVnYWN5LXRydW5rCisxOTI4NiAyNWVjNGY4YzYwYWFjZjZhMDI4MzQ5YmM3Mjg3MTI2MWVjZDcyZTIwIGxlZ2FjeS10cnVuaworMTkyODcgM2ZmY2M5YjNiYWI4N2Y3MTQ4ODQzNzMwNmQ3YzAyYmJiMGFmNDFlYyBsZWdhY3ktdHJ1bmsKKzE5Mjg4IDdlYTdhMWM1YThkMjAzYjNmYjI1MDJlNjhlZjE1NWE5ODgwOWRhODEgbGVnYWN5LXRydW5rCisxOTI4OSBjOGVmODY0YmE4NjFmMjM0Y2I1MzVhYWZkOGY4Mzc1ZTZhZmYzYjQ0IGxlZ2FjeS10cnVuaworMTkyOTAgNjQ5Njg0NGM0YTQyODA5MDZiNzUyOWNkMzhkNDkxMjQzZDQ3OTVmMyBsZWdhY3ktdHJ1bmsKKzE5MjkxIDhhNDQwZmYyNzRlY2JjYjFlNTM1NjY0MTliODljZTM0ZTA1Y2Y1YzAgbGVnYWN5LXRydW5rCisxOTI5MiAyYmU3YzkwYzFkZGVkMmU2NDEwYzE3N2Q5NTUxOGQ1ODg0NTNkMTM2IGxlZ2FjeS10cnVuaworMTkyOTMgYzE2ZTA2MWQyM2U4ODZiYjFiMTFjY2JhNDI5NDhkMTY2Mzc3NzIyYyBsZWdhY3ktdHJ1bmsKKzE5Mjk0IDZiNWUyMGY2OWU5ZWU5ZDU2Y2JmNTBjZGUwNDYzNDQ2ZjhjOWE3YmUgbGVnYWN5LXRydW5rCisxOTI5NSAwMDc2ZThkMjhmOWViYTllZmY0NTA4Njk2ZGMzMzczMGFmMmI0MDAxIGxlZ2FjeS10cnVuaworMTkyOTYgNWE0YmRmYzY2MDgzZWNjMzNjM2MyMDBkODE4NGVhZjUyNmU5ZmY4NCBsZWdhY3ktdHJ1bmsKKzE5Mjk3IGE2MjE5OTUwNzY2ZTc4YWYzODZkOWU0ZWU1ZTdhZTJhMDVmMGUzYmUgbGVnYWN5LXRydW5rCisxOTI5NyBiMzgyZjFmMDdlYzZiMmM5NTU1MTY1OGIzMGM2MTM5ZWViMzIwNzdhIGxlZ2FjeS10cnVuaworMTkyOTkgNjc5ZjgyNmIyNGNhMjY5YjhmMThjNDA0M2VjZjVjM2Q1YWQ4N2ZmNiBsZWdhY3ktdHJ1bmsKKzE5MzAwIDI0NmIzYTZhYTdhOTQxMWVhNzc4NjEzNGEzMjVmZDAyMmQ0ZjJmZTEgbGVnYWN5LXRydW5rCisxOTMwMSBkNTU3ZmYwYTJmNmM5N2Q0MmE4MDMyNDM2OTljNTEwMWNlNWIxYjBlIGxlZ2FjeS10cnVuaworMTkzMDIgN2EzOTcwNGE1MDQ3ZTRmNmZjNzMwMTEwOTJiZTJkZTkyMTU4Y2QzMiBsZWdhY3ktdHJ1bmsKKzE5MzAzIGM0NTNmYmYzMGY2MTM3NzgxZjRmNTg0ZDA2OTgxNmQ4N2QxYzViMDMgbGVnYWN5LXRydW5rCisxOTMwNCBiMmM1MTZiYjczNGE3MjllYWYyZGU2Y2M3NjY2ZGVjZTQwYzM0YTI1IGxlZ2FjeS10cnVuaworMTkzMDUgY2U5ODUwMDUxMTIwNDkwZGUzMDg1MmQzZWJjOTdjMGEwZDI1OGVlYyBsZWdhY3ktdHJ1bmsKKzE5MzA2IGI3OGM4ZDhjNTJlNjFmNmExNmM2OTU4MjVlZDczYmJkZGYzZGYwN2EgbGVnYWN5LXRydW5rCisxOTMwNyBmOTNlMjNhODJhNzNkMmYxYmE5YTZlMGIwMjQwOTA3OGQ1NjFkNDljIGxlZ2FjeS10cnVuaworMTkzMDggNTc1ODcyNTg0YjBjZmM2ZGQ1ZjMyNjEwODE2MDg5YTBmMTkyZmVkMSBsZWdhY3ktdHJ1bmsKKzE5MzA5IGFjNTJkMzcyNzg2NzNmY2Y0NzM5NGVlNzcxOTU4ZWRlYzM4YzM3ZTQgbGVnYWN5LXRydW5rCisxOTMxMCAxODc3MDU3YWE5MjYyMDc2MTdiOTVmNmM5ZTg0NmY0ODY1MzRjN2EzIGxlZ2FjeS10cnVuaworMTkzMTEgNjRhMzJkZjVjMDYzNDVkODkwNmViMjVmNzgyM2RkYmVkZmM0MGZlMiBsZWdhY3ktdHJ1bmsKKzE5MzEyIGFmMzlkZTI2MmI5YzliOGYxYjdmODlhYWJjZWY1ZjMxODRmYzBhMTQgbGVnYWN5LXRydW5rCisxOTMxMyA5OWJlZmVhYzg0MDBmZmE4MDYyOTkwYjE2NThhZWU3NWZlZTBiNzA4IGxlZ2FjeS10cnVuaworMTkzMTQgMjg4NWEzMzk2MzVlZGU5YTAyNzFjMjkwZDMyZDM1NTg4Yjk5MzIwMSBsZWdhY3ktdHJ1bmsKKzE5MzE1IDJlM2RkNjJjZWFjNWY4ODQzOWUzOWMzODAxMmEzYjM2YjE4Y2I1OWYgbGVnYWN5LXRydW5rCisxOTMxNiBkZGNlNzE1ZTQ5YmEwNjc3ODdkNWFhMDliYTAwMzRiOGJmOTA4OGRjIGxlZ2FjeS10cnVuaworMTkzMTcgYjMwNWMxNTM2YjdhYTRkNDIwYmRiZDg3ZGZiYjM1Y2YzNzJiNWE1ZSBsZWdhY3ktdHJ1bmsKKzE5MzE4IGE1MDZmM2I3NTY5NDE0OTkzZTgxNGYwNzc1ZjgxMjRjODQzNzI2MTMgbGVnYWN5LXRydW5rCisxOTMxOSAzY2M4NjM1NTg3OTMzZWM1YTkxYWI2MGNiMzZiOTM4MzE4YzBjN2FkIGxlZ2FjeS10cnVuaworMTkzMjAgYzk5ZDZkNWFmZDc1ZDBiY2IwMGViZThhYjliYTU3NjMyMjRiZDJlNSBsZWdhY3ktdHJ1bmsKKzE5MzIxIDVlZjcxY2I2NjQ5NTM2MTQxZmRlZmRkODVlYWI2ZTEzYTk5NmEyN2QgbGVnYWN5LXRydW5rCisxOTMyMiBjMThhYzhjMmYwMzY1YmE3ZDNhNTllNjcyNThkMjAxOTRiMTk2NDYxIGxlZ2FjeS10cnVuaworMTkzMjMgMGJiMTcxMjdiMmY4ZWEzYzI4YTlmYWFkNmM0Y2RjNzNjN2YxMWZkMiBsZWdhY3ktdHJ1bmsKKzE5MzI0IGE0ZjZiNjMzMjMwYzM3MjJkMzdhOGRiNWI2N2FiOWExZjMyOWUzODggbGVnYWN5LXRydW5rCisxOTMyNSAyY2E4NzgzY2U4YTM1YWU3ZTJjZTkyM2MxNGNkOGZlMWZjMjY4YjBiIGxlZ2FjeS10cnVuaworMTkzMjYgMjg2YTlkOTg3Mzc1MzYzZDNlMmE1OTI1ODhlNzE1NmQ5MzQ5NTUwZiBsZWdhY3ktdHJ1bmsKKzE5MzI3IDY1YTcwODk1MDkyMmI2ZjhmODMyNGY5MDhiNTBhNmMwMzJiYzBkNTAgbGVnYWN5LXRydW5rCisxOTMyOCBlYTg4YzJhNzMxNzMwNDRmMTQ4MGE5YmZmMTJhZDhhMzU2MmNjMTlkIGxlZ2FjeS10cnVuaworMTkzMjkgMWM3MWFhN2Q1NTEzMWFiZjJkMDBiYzFhMjBmNjQyOWYyYWNlZjUwNSBsZWdhY3ktdHJ1bmsKKzE5MzMwIGVkNDMzOGM3ZThhNDVjODk3YmY4NDAzZWY1OGRkZDkzNDY1NDJiZTQgbGVnYWN5LXRydW5rCisxOTMzMSBjMGIwZmMxMzI3OWUyMzIxNjQ3YzI0OGRhNzA3ZDY0NGU5NWNmOTNmIGxlZ2FjeS10cnVuaworMTkzMzIgODA3Y2E2OTc2MjBhZWUxOGJjMjZhZTMwZDEwMmUzZDk5YWJmOWVhNSBsZWdhY3ktdHJ1bmsKKzE5MzMzIGFiMDJiYzZhNWFiMmNhZGMwODg1OTZjNjgxODNlZjJlMjdhMjNkN2QgbGVnYWN5LXRydW5rCisxOTMzNCA1NDllOTkzYTQ3NmNkNzBmMjUzNjkzMDMxYTQ0NGFmMTk1NmJjMjIyIGxlZ2FjeS10cnVuaworMTkzMzUgZjViY2JhNWZhNDFjOGIwYzZmMmE5Nzg0YjY1MzQyMDE0Zjc2MWNhZSBsZWdhY3ktdHJ1bmsKKzE5MzM2IDRkNDA2YzI2YzE2ZWE3OWRhN2EzNjk3MzI3MzYwMWQyYzJlNTA0YzYgbGVnYWN5LXRydW5rCisxOTMzNyBiNjMxM2M5MTE0ZWQ2ZDEyYzZhOWNkZjE2MWEzZDFkOGNmNjRjM2MwIGxlZ2FjeS10cnVuaworMTkzMzggZjdiMTY3YzgzMzE4NThkZDc0ODM1ZmQ0YzgxOWM4MjdjMDE0MmRiYiBsZWdhY3ktdHJ1bmsKKzE5MzM5IDU3Y2U5MmExNmIzYzllZWIyOGE2MzBiNzVjMjg5NmNjNjg3OWM5YmUgbGVnYWN5LXRydW5rCisxOTM0MCBlZGMwYzk5YTY5ZDZkMjI1NjIyNzNkYmJiNTljNDVjOWM2YjZhYzAyIGxlZ2FjeS10cnVuaworMTkzNDEgZDU5NjYzZDNlNDMzYTM1OTk3Y2U4NjlkYzMzNDBhYjBhYTI0NjFhYiBsZWdhY3ktdHJ1bmsKKzE5MzQyIGU5NzIxN2Y1YjMyMzE5ZjNhN2Y5ODdlMzIyZWZjYjY3ZmYyZGQ5OWUgbGVnYWN5LXRydW5rCisxOTM0MyA4MTFiMGNjYjYyYWVjZTkzN2QxMDNkYjllYzVhM2ZjNzQxMDhlOWQxIGxlZ2FjeS10cnVuaworMTkzNDQgMWZiN2JlZmI1OWYwNzNiMDFiYTE0NDdkZjM1NjExYTA3ZWVkOTdiYSBsZWdhY3ktdHJ1bmsKKzE5MzQ1IGMyMzNlZmNiNDg5ZTViZjVmNDdjNGU2OTRmZGUxMGQ0OGMzYWZjYzMgbGVnYWN5LXRydW5rCisxOTM0NiBiZjk3ODE4ZGQ5ZTFlMjhiOGFkMWRkYzlhZjU5OGUzMjEyMmQxZThmIGxlZ2FjeS10cnVuaworMTkzNDcgNWYxMmRmODhhMjA4NWFhMjM4OWUwZTI1MmRiMWU5ZGU5YjUxNTRhOSBsZWdhY3ktdHJ1bmsKKzE5MzQ4IDQ2NGRlOGRmYTU5ZTlhNzVkYWQ5ZDQ3MTk4ZjZjODJlZDk1NWIwNjcgbGVnYWN5LXRydW5rCisxOTM0OSA3NzFkYmIxNTU1NzVmYmNmZThkYTVkN2Q4ZGNlNDI4ZTE5MDA1YzY1IGxlZ2FjeS10cnVuaworMTkzNTAgOTJjYmVmZGI2NzRhNjVjZDc4MjFiY2M2N2FlZGRhYTI4OWI2Yzk5MiBsZWdhY3ktdHJ1bmsKKzE5MzUxIGE2ODg4NGRlMTJlYzU0ZTU0YjY4Yzk2ZDczNTUzZmRmYWJkYTBmZDIgbGVnYWN5LXRydW5rCisxOTM1MiA4N2YyYWJiNzMxODQ4YjZmZmEyYmYyNDk2OGFlZmY2NTk2NmE3YzhkIGxlZ2FjeS10cnVuaworMTkzNTMgYTRjNmU0MDFlZTE4NGMzZmZkNTI1ODA0ODMzNDMxM2UyM2IzMDI3NiBsZWdhY3ktdHJ1bmsKKzE5MzU0IGZjNGFjZTAyNDJjYjA5NGI2YjM2ZWQ2MWRiMTY2ODNlNzhjNDczYWUgbGVnYWN5LXRydW5rCisxOTM1NSA2ZTVhYjc4NDBiMDVkMGJjOTRkOWJmZWVjMTkwNWEyY2ZiYzUwYzM1IGxlZ2FjeS10cnVuaworMTkzNTYgZjRkMTVmZGQxNWRkN2IxZWU3NTFjYjc2OTIzN2YyZTkwODZjNjQ2MCBsZWdhY3ktdHJ1bmsKKzE5MzU3IDY5ZjE2MmRjZDhiNGMwOWM1ZWY0ZGRkNGI1N2I5MDdiNzlkNmY4YzkgbGVnYWN5LXRydW5rCisxOTM1OCAxZmY5ZDU3MWJhYzA5YTc4MTU2N2UwNmE5MTdkYTVlMDk5ZjgwZTgyIGxlZ2FjeS10cnVuaworMTkzNTkgZDMyOTYwNjM2MWY4YjNiYzVkZTU4NGQzM2VmMzdkOWQ1MmNlOGU4OSBsZWdhY3ktdHJ1bmsKKzE5MzYwIGY3NTFiOTZkZTYyMWVlNzE0ZTVhYWU1YmJlOGM2ODBlMWM4NjllNzQgbGVnYWN5LXRydW5rCisxOTM2MSA1OGRlMjgyOWNmZGQzYjg5ODEwMjU1M2NmOTdlZGY4MTBjOTRjZWExIGxlZ2FjeS10cnVuaworMTkzNjIgYzk3ZTYxODlhZDk2YTllYWQ1MmFiYTUxZjRiOTM4YzVlMjc5OGI1MyBsZWdhY3ktdHJ1bmsKKzE5MzYzIGIxMTc4MGIwNjhmYTZjMTIyOWNiZWQyOTVkZjNjYmU5NzQwNzVmYWIgbGVnYWN5LXRydW5rCisxOTM2NCBiZjAzMDlkNWZjMGE5MzllOTBhZWIxYjc2M2UxMjhiZjQxNjcyYTVkIGxlZ2FjeS10cnVuaworMTkzNjUgOGQ3NjU1YWM4YmY4NjhhNTM0ZTA0MTM4OTY5MDY2OWNjYWQyMGQ4NyBsZWdhY3ktdHJ1bmsKKzE5MzY2IDZmZmNlOGJlM2UwYjhkZDMxNGM2OTZlNjYxYzY0ODA2ZWRhNGFmNmIgbGVnYWN5LXRydW5rCisxOTM2NyA4OGM4N2M4OWI0MDY4MDA3ODk0YTExOTI1YThiNmNlNjVjNGVjYTIyIGxlZ2FjeS10cnVuaworMTkzNjggYjI2Y2JjMWZlNGUzYjViZjYxOTZiYTY5NTM4OTE2ZDY0YzkzNmQ0NSBsZWdhY3ktdHJ1bmsKKzE5MzY5IGJkZmM2YmY3YjBkYWU3ZDIyOGFhN2ZmZDc1MDlmZDZkYmJkZWVhYmUgbGVnYWN5LXRydW5rCisxOTM3MCA1YzNiZjJlODlkODAxMWFmYjVmZWY2OGI5OGE3MWEyNmIzNzU5YzdmIGxlZ2FjeS10cnVuaworMTkzNzEgNWY1ODhkZDU0MzliZjAwNmExNmRmMGYxNDUxZDBkZjRiOTA5MGYxMSBsZWdhY3ktdHJ1bmsKKzE5MzcyIGM4N2ZkZjdkZTBlNmI4ZjkxNzcwMGQxMDhmMWFlMTcyYTcyZmNiNjIgbGVnYWN5LXRydW5rCisxOTM3MyAxOGVmM2Q1ZWFiNGYyMmNiOTNhN2M3MDAyYTZhYzZmYWE4NDQ3ZDYwIGxlZ2FjeS10cnVuaworMTkzNzQgODkzYTUxNWQzMzFhNzNhYWIzNjdkOWUxYmFmOWFhY2ViZmRmNWM4OCBsZWdhY3ktdHJ1bmsKKzE5Mzc1IDU2NDNlMzdiOTlhZTY5ZWVmNjNiYmVlNWU0YjdjMDk2ODE5MWY3Y2UgbGVnYWN5LXRydW5rCisxOTM3NiA5MGM2MDBhODE5ZTk2ZDQ2MDY5NzllMmQ2OGUzOGRkMTRmZGI0MTEyIGxlZ2FjeS10cnVuaworMTkzNzcgOGJhNmJjOGMyZTA5MzgxZjM3NmYxMTkzOWE5ODljOWQzYzQxMTRjNCBsZWdhY3ktdHJ1bmsKKzE5Mzc4IGFmODg0NjU5OTljN2E2YzAzMzQ2YmIwYjhmNzVkN2U4ZmExZWUyNjAgbGVnYWN5LXRydW5rCisxOTM3OSBlZWU2N2E4NGU1ZmFhZjMwMGExZWYyNjgxYjg5OWUzNjgwMWQyZmY5IGxlZ2FjeS10cnVuaworMTkzODAgYjNkOTIzYTY2MTUyY2Q4ZDUzNjlmNjllY2ZhNGZkMjQ4ZDhlMTE1NSBsZWdhY3ktdHJ1bmsKKzE5MzgxIDYzMWQ0YzhkYjc4NDA4MDI4NjdmOTNiMzk2ZjIyNWE2MWY1N2MzNTcgbGVnYWN5LXRydW5rCisxOTM4MiBjODAyMzg1YTZhYzNlNjQyMjY5MjhhYzAzZTI4YzY4N2Q1ZDQ1M2I4IGxlZ2FjeS10cnVuaworMTkzODMgZTNkNDg4MDc0OGI1YzQ3NWM0YzU4ZThmZjAwM2VlYTUzZDFiNDQ5ZiBsZWdhY3ktdHJ1bmsKKzE5Mzg0IGY0Mjc5OWM2ODkyOWVlNjRjOWM4MjRmNmY5MmFhZDVkZTlhYjgyOTUgbGVnYWN5LXRydW5rCisxOTM4NSA5ZDYyNTMwM2Y5MTRiZTgzMGE5OTI3ZDNhNTRhMjUxMDVkNjE1ODU1IGxlZ2FjeS10cnVuaworMTkzODYgMjRlOTQ2ZTk1MWZhMmEzNWExOGE1OTIxY2E0ZDY5YWE0NTBjMjM1OCBsZWdhY3ktdHJ1bmsKKzE5Mzg3IGMzNjk2N2JkYzlkZDRkYWJiNzhiYzVmNzI0MGNlMzIwOWI3ZDRiMGEgbGVnYWN5LXRydW5rCisxOTM4OCA1N2QyNDhkZGJlMmFiYWI0ZGZmNGFhNjZjNWIwODY4YjgzN2RlOWY2IGxlZ2FjeS10cnVuaworMTkzODkgYThlMTIzZGYyNjhiOWNiZmEwNTAxODcwMGI2ZDFhNmU1OTM0NzIxNyBsZWdhY3ktdHJ1bmsKKzE5MzkwIGYzZTgzZTUxNGRkODlhZmNlZjgwNDk4MGY3ZjQwMWRjZjFiZjFjYmYgbGVnYWN5LXRydW5rCisxOTM5MSA3NTFlOWNjNDc3ZDlkMDM0OTI3NWRhYjkzYWNiYThhNGEyNDYyYzA1IGxlZ2FjeS10cnVuaworMTkzOTIgYTgwZjY3YjcyMzA4ZTlkMDUxNWJkYjQ5YWZmYWRlZmJlYzI1Njg1ZSBsZWdhY3ktdHJ1bmsKKzE5MzkzIDA2ZGQ5NGUyMGYzYjgxYmNjMTQwOGQ1MzcyOGIwMTI2NTQwZDNlZTcgbGVnYWN5LXRydW5rCisxOTM5NCA3ZmM2NGRmMTNkYjBhY2FmYzYzMzkxZDAyZGM0YWEzYjYxNTE2MDc0IGxlZ2FjeS10cnVuaworMTkzOTUgYzQ4YWYzOWNiMjkyZTAxYjdjOTJiNzAwNzQ2ZmNkZjY4ZThhOTgyYyBsZWdhY3ktdHJ1bmsKKzE5Mzk2IGI1OWYzYTFlYjEyMzkxYmMxYWVkYTc1YTY5ZDkyYzMzOTVmMTkwYjUgbGVnYWN5LXRydW5rCisxOTM5NyAwODRiM2RjOWI2ZmYzMTAyYWU4ZDVmOWU5YjdjYjRiNzliNTQ5MmJhIGxlZ2FjeS10cnVuaworMTkzOTggNTRmNzIwOWNjNzFlN2I2OTA5ZDMyZjJjMzZkMTRjOGVmNDE3ZjRkMyBsZWdhY3ktdHJ1bmsKKzE5Mzk5IGY0ZTcxYmFiNzg1M2M5N2I1NTc5NzkwOWMwZWZlOTY2NGNhMWQzZGMgbGVnYWN5LXRydW5rCisxOTQwMCBhNTQwYzZmZDBjZWQxZDg4MWRiZWNhMTdiODIxYjIxMjdlM2Y0MTdjIGxlZ2FjeS10cnVuaworMTk0MDEgYTQ3ZDkzZWYxMDNhNzY3M2JjMjJmM2I2NWU3ZjUyZGNhYjMyYjhkNiBsZWdhY3ktdHJ1bmsKKzE5NDAyIDgyMzZmM2U3NTg1ZTE0ZmM4MDAwYTRhOTI2ZjRlMDU1MTdjNDA2NzYgbGVnYWN5LXRydW5rCisxOTQwMyA4ZWVkMzczYmNlN2ZlNTBhZGUyYTYxZjU3ODRjMDUwYTRmOThhNWFiIGxlZ2FjeS10cnVuaworMTk0MDQgZmVmNGMwMzk3MzNkY2I4MWRjNzc5NGJjMjk1OWNlNDE2YWEwYzNiYSBsZWdhY3ktdHJ1bmsKKzE5NDA1IDEyMTRhYmVhMGM3YjJhODM1MTE3MGQ4ODg0NTVhM2U2ZGQyZTFkNDAgbGVnYWN5LXRydW5rCisxOTQwNiA0NjUyNzIzZWE2NTVjYTgyYThmZTI2OGExZTFjNDY2N2E3MTNlYjZkIGxlZ2FjeS10cnVuaworMTk0MDcgMzhlY2ZkMTFkOWI1M2EyNmM0Y2ViMzFjY2MxN2U0OGViOWFlOGM2NyBsZWdhY3ktdHJ1bmsKKzE5NDA4IDYwYTJlOTljODYzYmU5NzE5ZTMxNDM4OTU2OGRiMzhhOWUwNTFhMGMgbGVnYWN5LXRydW5rCisxOTQwOSBjYzljYjFlOTBiM2QyNGJkNzhkMzQwM2IzN2ZhYmE4NTNkMTU3MmMzIGxlZ2FjeS10cnVuaworMTk0MTAgZGE4NjgxZjE3YjUwMGU2NGUxZGU2NzFkNDRlNDUzYjRmZWI1N2NiMyBsZWdhY3ktdHJ1bmsKKzE5NDExIDdlOWY0MDUxYmE0YWYxM2ZmZDVhNWNjOWYxZTRlYWMwMmNmMzNkMjYgbGVnYWN5LXRydW5rCisxOTQxMiA4ZjcwYjVkZGQ1YzA4ZjY0MDg4ZjY3ODNjYWFjZDVjNTM3ZjdmYjZlIGxlZ2FjeS10cnVuaworMTk0MTMgN2RlNTA0MzgyN2Y3MGZkYzE4NmI2ZGY2ZWVlY2JjMDIxODcxZDRhMSBsZWdhY3ktdHJ1bmsKKzE5NDE0IGU1NTkyZjFlZjQxZjg2NTFmMjdlM2ZiNjVjOGIxMDU1MWQ2YThhZmUgbGVnYWN5LXRydW5rCisxOTQxNSA5YTk1Nzk0ZTBmN2VjNjViNTM2OWRkODQ1ZjdiMGYwMGI4YmI5NjdkIGxlZ2FjeS10cnVuaworMTk0MTYgNDQ0YzBlZWQ1YTY2YzVhYzk1NTIxYjQ3M2QwNzg3NGE0ZjEyNGMzOCBsZWdhY3ktdHJ1bmsKKzE5NDE3IGQzOGFmYjIwYzMzNmE3MjRhZWUyMzI0Mzg5MTc5MzViNDVkNjRhZTYgbGVnYWN5LXRydW5rCisxOTQxOCAyN2ZjZTJkN2ZhY2RiNDI3ZDk3NjhhYjgxYTZjYzJjZTU0ZmQwYjg0IGxlZ2FjeS10cnVuaworMTk0MTkgOWNlOWUwMzQyY2MxZjBmMDJlNTliZWNiZWU3NjBiMTY5ZDc5YmJlZSBsZWdhY3ktdHJ1bmsKKzE5NDIwIDE5MmU5ODU1YzdjMDA2NTU2YWQyNzhlMzBlYmE2N2E5ZDVmNWQ0Y2UgbGVnYWN5LXRydW5rCisxOTQyMSA4YzFjNzg3YmQ2ZjllMmI1YTVkY2QzNWVkMjRkNmUzMThkNTJhYTYxIGxlZ2FjeS10cnVuaworMTk0MjIgZThlNjM2Y2MxYTA5MzNkNmU3N2NjZGYwYzEzMmJmMDIzMzE1NDEzZiBsZWdhY3ktdHJ1bmsKKzE5NDIzIDBkMTMwNWM4M2RlNGM5ZTBkYzU4MWRmM2YwMzE2ZTJiMzYxOGI1MDEgbGVnYWN5LXRydW5rCisxOTQyNCA2MjM0NTY1NzZkNmE4ZTU0ZDVlOTBiNDY4MDY4YmQ4ZmMxMzU1OGQyIGxlZ2FjeS10cnVuaworMTk0MjUgMzBkMzRiYmY4NjIwMWFhOThjOGI0YTg2YTY4ZWYzYThmMTBkM2JmOSBsZWdhY3ktdHJ1bmsKKzE5NDI2IGQzNDg0Y2E0MGI4YTBkN2Y5MTFjYWMxMjQyZDYyZWJhMzY2ZTY5ZDAgbGVnYWN5LXRydW5rCisxOTQyNyAyM2I1ZTdkMDNmNzZmYmI4NTk0MGIwMDIwMDlhZWQxMTI1NmRkNmM4IGxlZ2FjeS10cnVuaworMTk0MjggNGNlZGM4MjZiZWU4YjZkMTk4NjQ4ODg5OTEzOWNjNDg0YWYyMDk2NiBsZWdhY3ktdHJ1bmsKKzE5NDI5IGI0ZmYxY2Y0YTEwZmFmYjg3ODI5NDYxYjdmNTUyOThlNWM0MjFmMjYgbGVnYWN5LXRydW5rCisxOTQzMCA5MTc2MzAxM2MzNmZjZjVjNmUxZTA5YmMwYzJjYzQzMTYyM2RjMGM3IGxlZ2FjeS10cnVuaworMTk0MzEgYzkwNGE0MGUxNGVhOWZmM2U0NzIwMTMyODZiMTVhMjJhMjMwNzdmNCBsZWdhY3ktdHJ1bmsKKzE5NDMyIDg2NTczODRkY2M0YWIyODNlZGQzYTcyZDM3Y2RkM2I4NjNjNzZmMGYgbGVnYWN5LXRydW5rCisxOTQzMyAyYzY0MTdlZjQ2Mjg1MGJkZWY4NjdlYWE2YmEwYzlhMjM4NTA5NjExIGxlZ2FjeS10cnVuaworMTk0MzQgZWUwZGQwYzc5NjRlZGJjYTA2NjNhMjY0ZGE1YTA2NzQ5MjkyNmExNSBsZWdhY3ktdHJ1bmsKKzE5NDM1IDQ3NzJmZTJkYjJjNDZjMjQ1YWUzNDg1YjgzNjkxNWNiZDU3M2I5MWEgbGVnYWN5LXRydW5rCisxOTQzNiBiZjljMjRiZWRhN2Q1NzUzNGU5MzBmNjY5OTU5OGU3MDJmYjdlMzA3IGxlZ2FjeS10cnVuaworMTk0MzcgNWYzYTgzNTA2MTVjOGI5Y2U2Mzg3MjM0NjhhMjliNTMzYzY3NzE1MyBsZWdhY3ktdHJ1bmsKKzE5NDM4IGY2NTQ0NjhiOWFlOGE5YTA1MWFhYTI4ZGNlN2VmMThhNDYzMTJmZjcgbGVnYWN5LXRydW5rCisxOTQzOSAwNjhjYjg0OTRiN2IxZTY2MWZmMDM0MjI2OTk3ZDk3YzM5NmUwODMzIGxlZ2FjeS10cnVuaworMTk0NDAgYjQzOWVlZGEwMDgyOGYzYmYwZDZhZTUwNTFhNzJlZDY0N2M3ZTI4YSBsZWdhY3ktdHJ1bmsKKzE5NDQxIGE2M2RjNTliZTBmOTg2YTI0MmFiM2Y0NDQwODk4M2IwODhjMjMyMjQgbGVnYWN5LXRydW5rCisxOTQ0MiBkYTE1ZTVmNjg2NDRhOTYwZGViMGI2YzcyNTViNTlmZTFhMzlhNzVmIGNucmktMTYtc3RhcnQKKzE5NDQzIGUyYjJmZTdmYWJiODk0MzkwNDFlMWE1YzgyNDczNjc2YmQ4ZGQ4MTcgY25yaS0xNi1zdGFydAorMTk0NDQgOWQwOGMzNzQ3M2NiOTI2YWJmOTYzOWQ2NzY2NWYxOTY3NWRjMmVlNCByZWxlYXNlMjAtbWFpbnQKKzE5NDQ1IGMwY2RmODI1OTllMDNmMzk0Yzg1MjE2ZjBiNmNjZjE3ZGIyNWIxMDAgbGVnYWN5LXRydW5rCisxOTQ0NiA5YThlOTYxYjUwNWYwMzA2OTZkMDJjZjFjOGEyYzMwMjg3MDQxYjUzIGxlZ2FjeS10cnVuaworMTk0NDcgODE3ZGY5ZWZhY2JhZTc0MzAxNmY1OGVmNzcxZDBhZmVmMTBlNzRhOCBsZWdhY3ktdHJ1bmsKKzE5NDQ4IDNmNmMwNWUwNDA4MjZkYzcyMjlkNDNkYjM3NDE0MjQxNmYwMmQ4ZTggbGVnYWN5LXRydW5rCisxOTQ0OSBhYWUyYmI4YWMzNzM5ZTBjNThlNGYyZGY3YmQ1YmRjZTFhMzlhNjRjIGxlZ2FjeS10cnVuaworMTk0NTAgNWZhMjU1NDJiODk2NzVkNDJiMTVkOGRmYTU1YjZmNjYyMzJiM2M0NSBsZWdhY3ktdHJ1bmsKKzE5NDUxIDliYjJiNjk2M2M4MjVhYTkwZTVlZTZiYzBmNzkxMWJhN2NhYzU3ZjggbGVnYWN5LXRydW5rCisxOTQ1MiA1NmE4MTA2YmFmNjM1YWRhMjkwMTk0YjYxOGIwNWMxZDVlOTg4ZGUxIGxlZ2FjeS10cnVuaworMTk0NTMgYmE4NDQ2M2VmYzdiYzVjYmVlZmQyYTczMGE0YjhiOTEyNjhjZDIwMCBsZWdhY3ktdHJ1bmsKKzE5NDU0IGY4MTNlOTg3ZTY1Y2U0MGE4M2Y0ZTkzNjJjZjBlYmI0NTdiZWY2OTAgbGVnYWN5LXRydW5rCisxOTQ1NSBkZjdkNTJhZTIwZTRjZDA1MzYwYzhhMWU3YWEwOGNiOTgzNzlhNWVmIGxlZ2FjeS10cnVuaworMTk0NTYgNzRhZTgwZDkwZmE2Y2MyNjQzNjU5YTg4NjU5YzFmYzEwNDUyZGVjYyBsZWdhY3ktdHJ1bmsKKzE5NDU3IGIzNjI1MTMxNmY2YWVkYTZlM2I5ZmI1MWQ5NjA3ODhhYTEyZDNiMTYgbGVnYWN5LXRydW5rCisxOTQ1OCA5ZWY5NzhjNmYwMzk1NjUwYzk5YjcyYjhhMDExNGQ4MmIwNGQ5YjM0IGxlZ2FjeS10cnVuaworMTk0NTkgZmZkYzcxODViZGFiZDYzZTA0OTMwYjAxNTc2YThmOTI2Nzg5ZDBhYyBsZWdhY3ktdHJ1bmsKKzE5NDYwIDA4NTUxMTkxNjc3NjI2OTZjNmExOGE0YWU1N2NhZmUwODA2NDA0M2IgbGVnYWN5LXRydW5rCisxOTQ2MSAwN2ZmYjBjM2JkNWVlNjdjMThiZWI3YjIyMTQyZjQ1M2Q1NDBhZTMyIGxlZ2FjeS10cnVuaworMTk0NjIgZTEwNDM2NzI1NmYwMjAzNzU0ZDRmZmE1ZjczYjgwNzZlNDlkYzRjMCBsZWdhY3ktdHJ1bmsKKzE5NDYzIDI2MGYwMzNhZTdkZjM4OThiOTMzYjZmMmU3NWNjYWFjZjFkNDBlMGUgbGVnYWN5LXRydW5rCisxOTQ2NCA4ODVkNTQ1MjQ4ZGIzODA3OTMzNzE1MTAzYWMwMjYyYjNkOWY5OGJjIGxlZ2FjeS10cnVuaworMTk0NjUgMGI0NTVhNDI4OTY3Nzg3ZTA0Y2NmOGMzOGM4NDZhNDhjOTcyYzQ5OSBsZWdhY3ktdHJ1bmsKKzE5NDY2IDk2ZDg4NjhhMDAyODRkOTljODhlMzk0MjgyNGE3NjUxOWMyMDYwNjIgbGVnYWN5LXRydW5rCisxOTQ2NyAwY2Q4N2E1ZDFlZjk3NGVhZTdmMDFjMjk4YmVhOTQzYWRjNWZkNDZlIGxlZ2FjeS10cnVuaworMTk0NjggZWYyYmUxMmIxOGZlYTM5NjZhOTdlOGE2MjQ0YjM2NWQ0MDNkYjBlYSBsZWdhY3ktdHJ1bmsKKzE5NDY5IGIwNWI4YjZjMGI0MzA5ODljN2I3YjZkOGM0MzliNTVmZTE4NjhlMjggbGVnYWN5LXRydW5rCisxOTQ3MCA0NGVmNjQ0Y2I1MjZlZWI3ZmRjMmE0NGQ4ZTdkOGEwNGNjYWE0MTA3IGxlZ2FjeS10cnVuaworMTk0NzEgOTQxYTc2ZjM4NzQ3NDI1NjE0MThkYjlkYzQ2N2Y4YzE5ZGEwMWE4ZSBsZWdhY3ktdHJ1bmsKKzE5NDcyIGY0MjVkODUyMzQ4MGIwMWZjMzY0NjEwOTI5NTViN2FlNjhlMTY0YzEgbGVnYWN5LXRydW5rCisxOTQ3MyA3MzMwNjk0OTExOWMwNGQzNThhMTA1NjhhZTBkMjNjNmY1ODQ5NjAxIGxlZ2FjeS10cnVuaworMTk0NzQgZjBmNTcyOWQ2MDNmYjU5ZjhhOTZmNjczNzE1OTgzMTZjNmI2ZWQ5NCBsZWdhY3ktdHJ1bmsKKzE5NDc1IGUzY2ZmYzAzOTRiZmI2YzA0NTJiNTg2NWM4Nzc3MzJkNmQ2MzA2NDUgbGVnYWN5LXRydW5rCisxOTQ3NiA4ZWYyNDY3ZjAxOTFiYjYxMDA0YjMwMDZhZGYwZjlmMDk3ZjdlZDQ5IGxlZ2FjeS10cnVuaworMTk0NzcgZjY4ZGJmZmZmOTI3YmZhNTY2ZmQyYzNhOWU4YWVmYjViNjEzMGFkOSBsZWdhY3ktdHJ1bmsKKzE5NDc4IDIwZTUyZTVhNDA4YTE2ZjAyODY2YTZmYWUyMjg2M2QwNDJhNGExZDYgbGVnYWN5LXRydW5rCisxOTQ3OSA4ZmY0Y2Y0OTI2N2VjNTQ3OTAxYzBkZTZmNjUyMThmYmIxMDBjNmJlIGxlZ2FjeS10cnVuaworMTk0ODAgZTJhNjM1ODQ1NjZmODJkYjkzN2UwYTMzMWExYjNiZGY4YjI1MjdlNiBsZWdhY3ktdHJ1bmsKKzE5NDgxIGUwNTBiOTRmMDRkM2M5NjcyNzkzZWY2YTQ5Y2QxODNlM2ZmOTM3ODggbGVnYWN5LXRydW5rCisxOTQ4MiA1NjkxNDg4NGFhYjYzMDFiNDc2MjRlZmNiMDYwOGQ2YzVjMTcyMzE5IGxlZ2FjeS10cnVuaworMTk0ODMgNGUyZDFjNmYyOTA0ZGE2NGJlZjNjNWQxMjkxZGY5YWQ4MDgzOGNlMyBsZWdhY3ktdHJ1bmsKKzE5NDg0IDFjNmJhOTQ2ZDhmYTBiZTJlNDQwMjEzZmI0Y2QzYTc0NWY1ZDQxOTggbGVnYWN5LXRydW5rCisxOTQ4NSBjOTU4Njc4NzIwZmRhYzQyNDY1NDVmNWE4OTg1NDVkZGIxMzAyZDA2IGxlZ2FjeS10cnVuaworMTk0ODYgOTE3ODBlYWQ4YzI1YjI3MjdjNDIyY2I4ZjdlYTVmYzRlNmUyNjRjOSBsZWdhY3ktdHJ1bmsKKzE5NDg3IDNhNmI0YTAwM2ExN2U0YjlhZjZmZGZiMWQzM2E3MzQ5ZTk5ZjcyMmMgbGVnYWN5LXRydW5rCisxOTQ4OCA2N2EwNjY2ZjExZTMyMzA3MGY1MzI4NTIzMTFmYWQ3NWMzNDE2NjA5IGxlZ2FjeS10cnVuaworMTk0ODkgYzlmMjNmODBmYzkzMGQ4NWZiMjlmYTMzZWM4NDRlYmNhNmE0ZDI5OSBsZWdhY3ktdHJ1bmsKKzE5NDkwIDYxMTc2ODM0OWRkOTBmMzlhZGYxMDljZGNkOWUxYWUwOTNlYjBlMWMgbGVnYWN5LXRydW5rCisxOTQ5MSAwNjNkNWM0ZjZjZTU4YjM0MDg4MTFjOWQ0NzdhZjc1OGE1MjkxMzYyIGxlZ2FjeS10cnVuaworMTk0OTIgYzg3ZTcwMTdkNjZiMzNhODhhYmQ5OWUzOTFmOTU5MzViZDcxYjhlNCBsZWdhY3ktdHJ1bmsKKzE5NDkzIDk2ZTljY2JmMTY1ZjZhNGUyMDE1Zjc5ZDE3MTQ4MmYzYTkwOWIxNTkgbGVnYWN5LXRydW5rCisxOTQ5NCBjOTUwOWQ4NGYzZGY3ZjhlYjBmNjM4YzgyODIzMDFlYjY4NDRhNjZmIGxlZ2FjeS10cnVuaworMTk0OTUgZTM4MTQ1MzA2MjMxMjYzNWE3NDE2MzMxOTY4N2I0YzVhOTk5NmVhMiBsZWdhY3ktdHJ1bmsKKzE5NDk2IDA1NjRiMTM0YjU4NDAzNTUxYmRiYTFkMDk4Y2EyZjQ1MGNmZDk5NDYgbGVnYWN5LXRydW5rCisxOTQ5NyAyMTcyNzc1ODM0NjhkMDU2ODg0ZTRmM2I1YWQ1YjU5ZmZmYzc5ZTIyIGxlZ2FjeS10cnVuaworMTk0OTggZDQ1NTliNzQ1N2EwZTMyYTMxNTI1ZGFhYjQyNjk5ODIxYzFkMGMwZSBsZWdhY3ktdHJ1bmsKKzE5NDk5IDJmYjY0OTgzOTY1ZmYyMjNhZWEyNTIzOTFmZjM0Y2ExYjUzYTRhZTggbGVnYWN5LXRydW5rCisxOTUwMCBlMzBjMTk3NTMyYWExMjZhNmRhYTRiMDdmYzY5ODM2YTA2MWJhYzkyIGxlZ2FjeS10cnVuaworMTk1MDEgNTlmNGY2OTYwMTAxNjhkYTE4YTliYTlhNzkwZDJmNGUyZTNmN2EzZCBsZWdhY3ktdHJ1bmsKKzE5NTAyIDc5NTY4YzBkM2U3N2E2OTM2MmIzNTc5Y2NmNWI0NzUwMzU2NTBhMWYgbGVnYWN5LXRydW5rCisxOTUwMyAxNDZkZmU3ZTAzMzgyY2ViMjE5MGNiMTljZTliN2Q2OTE5ZDMwZTdjIGxlZ2FjeS10cnVuaworMTk1MDQgN2QxZTdiNmVjODM5NDUzNDg2ZGIyYWNlODFlZjFmNjI1OTJjZmU5YyBsZWdhY3ktdHJ1bmsKKzE5NTA1IDM4ZjY5NzJkYzhiNDE3ZmYyYmFiOTg1MzIxNTVlYzhkOTFjYzYxNjQgbGVnYWN5LXRydW5rCisxOTUwNiAxNWYwMDY0Yzg0MDA5NmVmZGM5YWRjNTU2ZjE3MzVjNzU4YWExOTFkIGxlZ2FjeS10cnVuaworMTk1MDcgZjdhOTc3Njc3MWFiMGVmZTFkNjcyMDkyZTkwMDEwYmFhYTVkMjNlNSBsZWdhY3ktdHJ1bmsKKzE5NTA4IDdmMTI3YmUwN2M1MDk1Nzc4MWUxYzM4MWVkZjc3YjM3OTA5NmE2MTAgbGVnYWN5LXRydW5rCisxOTUwOSBkNmQ1YzExZjc1YTkyMmU5NWNlMmI5Mzc0Y2MwZWFiYmQ2MDFmODc4IGxlZ2FjeS10cnVuaworMTk1MTAgYjllNTQ4MWY2NDRjMzBhZjc0NjM0ZDZjN2U1ZDQ5YzEzNmYxNGFlMyBsZWdhY3ktdHJ1bmsKKzE5NTExIDcyOGMxMTU2MjE4NzJmMTcwMWNlZTNkY2ZlN2YzNTNiOGYzY2RjYzIgbGVnYWN5LXRydW5rCisxOTUxMiBhNTFiOTk2MWYzYmJiMGMwNjA1ZGE3ZTEyZDBlOWNiNGVmMDc5NDdhIGxlZ2FjeS10cnVuaworMTk1MTMgOGQ4NTA5NjE3ODc0MWY1OTQwODg3ODg4OGUyOGJkMjBmYTJjODgyYyBsZWdhY3ktdHJ1bmsKKzE5NTE0IGQzZThiODgwNjUxYjdkNDczNTRlOTg5OTFiMTMzZjEyYzRiMzIxOTIgbGVnYWN5LXRydW5rCisxOTUxNSA5MTUyMWM1MmIxZGI1NWFmYzZkNmZjY2E0MjA0ODM5YzM5YWE0ZmRmIGxlZ2FjeS10cnVuaworMTk1MTcgZGE5YTRhMTY5OGYxZjY4NGU3OTY5MWI5NjY0YjdjNjA3YmJlMWM5MiBsZWdhY3ktdHJ1bmsKKzE5NTE4IGI5ZmU4YmQ5ZTVmNGZiYjA2ZDI5OTY3YWIyZmU2YjBjMGRiZDY3ODUgbGVnYWN5LXRydW5rCisxOTUxOSA1OTIxYjEyOWYzNTA0ODQzNWMwNmVjNzQ5ZDlmOGQ0NzA2MTFhZmQ4IGxlZ2FjeS10cnVuaworMTk1MjAgMWQ3YWVkMDc2OTY0ODEyNmE1ZjYwNGM5M2MxODJmNzFkZjhiYjMwNSBsZWdhY3ktdHJ1bmsKKzE5NTIxIDdmOGU4MTdhYzQyM2M0NTY5Zjg5MTU2OGI3ZDEwMWE3ZTIwYzc5ZWMgbGVnYWN5LXRydW5rCisxOTUyMiA3OWQ1MzM5MzRhYzFiMzA5NWUwYzRmOWE0YjczMWUyMWMwZWZmZjI4IGxlZ2FjeS10cnVuaworMTk1MjMgMWE1YTQ0MTc3MmZmNjNhYTlmOTE4YzFiZTllYjU5YmIyYjA2YTFiYyBsZWdhY3ktdHJ1bmsKKzE5NTI0IGRlZWM2ZmE4MDQ3MTA4MzdkMTc2ODEyZGY4ZTk1YWQxOTMyODk1M2UgbGVnYWN5LXRydW5rCisxOTUyNSAwMDQ5Zjc3YjM2YzYyMzIzN2U3MWQyOTY5ZDFiZTE2NzdmZjA5ODdlIGxlZ2FjeS10cnVuaworMTk1MjYgNmFmNDE1ZjBjMDFlYjAwZDIzNzI0OTY1Y2UyMzllNzAyM2U2MTY3OSBsZWdhY3ktdHJ1bmsKKzE5NTI3IDg5YzFjY2VmNWNlODM2MGUzYjQ2NjQwM2EwM2Q3MTA0NWY1MjY2MTggbGVnYWN5LXRydW5rCisxOTUyOCA5NGEzODQ0M2Y5OWJiNTcwNTU1Y2IxNzFkNTQ1YTk5Mjk5YzUzNTVlIGxlZ2FjeS10cnVuaworMTk1MjkgNTc0NmQwYmY1ZjA0ZGY3ZjI1M2I5Y2IyMGY1NDY2MTU2ZjZkMjhjMyBsZWdhY3ktdHJ1bmsKKzE5NTMwIGRlMGU4NzUyZDViNzJjZTc0NTBjZjQ4NTUwYzM4M2IxMWEyZDMyMmUgbGVnYWN5LXRydW5rCisxOTUzMSBlOWZjYjQ2YzFmMmNhY2JjMzk3NDZkNWU3ZjU0ODM2YWRlZjYyMWRiIGxlZ2FjeS10cnVuaworMTk1MzIgNzI1MjM4MjkzODY5Y2M1YWM5ZjY2NWE3MGM3MTQ2M2FlN2VmMzc5OSBsZWdhY3ktdHJ1bmsKKzE5NTMzIDU3YTk3MjJjNTg4ZDRkYTJiOGE1YTBlODkxZjkyYmZkNTdjNWNkNjEgbGVnYWN5LXRydW5rCisxOTUzNCA5OTBmYTI1Y2RlMWNjZjE1NjhjODY5NDMwYThkZTY2M2VlZjIyYjAxIGxlZ2FjeS10cnVuaworMTk1MzUgYThhMDBkZTAyNGU3MzgwYTlmZTg0ZGNiZDcyNWYyYTdjYjU2YjlhZCBsZWdhY3ktdHJ1bmsKKzE5NTM2IDhiY2MxMGRiNTYyZTRmOWZmOGUyMmYyN2MxMzU4ZDBmZDdlMGQxYmEgbGVnYWN5LXRydW5rCisxOTUzNyAwZDNhZThmMDg0OWQ5MmE1Mzk3ZTFlNDhjYTg4ZTdiZDY2OTM0ZjY4IGxlZ2FjeS10cnVuaworMTk1MzggNWJjZjljNDliNmU3OGM0NWZiNmVhMGU3NzJjN2JhZjE5MjFiYjBjOCBsZWdhY3ktdHJ1bmsKKzE5NTM5IGY0ZTk3ZWMxZGM5YWI2MmU2MTUyZWZkY2EyODhjMjc0OWE2OWZmZjcgbGVnYWN5LXRydW5rCisxOTU0MCA5NjNmOTVlYjc2NDZkYWExODgxOGE0OTFmMzEyNjBlZTYyNDQzZDg2IGxlZ2FjeS10cnVuaworMTk1NDEgMjk0YmExNmIwZTg4YTQ3NjNkM2VhMDdiNTgxYTU0ZDRhNWVhODVhYyBsZWdhY3ktdHJ1bmsKKzE5NTQyIGI5NTVlNzQ5NTVkNTRjOTU4YTY5MjIyNzkxNzE4MjJmMGJkMTk4MzMgbGVnYWN5LXRydW5rCisxOTU0MyAwNmFkNTA1M2Y0MGEwNjJjOTA3Nzk3ZTUwM2MwYjEzNWJlNGZmODg5IGxlZ2FjeS10cnVuaworMTk1NDQgZGI0ZmM4MmFhNDRiYTliNTNiNjg0YTY4MGNmYjVhZmFhMTI1NTBjYiBsZWdhY3ktdHJ1bmsKKzE5NTQ1IDE3ZWQ2MWZkNWI2NTQwOTMzZjM1OTZjNzRhMzdjMGIwOGQwYTJhODEgbGVnYWN5LXRydW5rCisxOTU0NiAyNmFjYzI0NDVmMzczNzMyZjE3ZGQ1MTgyYWMwZjJlMWMwNjFhYTI5IGxlZ2FjeS10cnVuaworMTk1NDcgM2NiMDBjYmU3NDU1MDg0ZTcyMWU5MWNjYWE4ZDM1NTNmNjQ5YWMyMCBsZWdhY3ktdHJ1bmsKKzE5NTQ4IGQ5NGZlYTU3ODM0YzMzYTAxZGFiMDBjOTEzOGRjYjc1ODA3NTYxMDUgbGVnYWN5LXRydW5rCisxOTU0OSBmN2FlMGQ5MzdjZDA3NDMxYTMwMGM3MjMzMDlmZTgyNjIwYTM2NDE1IGxlZ2FjeS10cnVuaworMTk1NTAgYTZmMDgwZmU1MjUxMWY5Mjg2YWEzMzUyODcyZThkOTBmMWZmNDYwZSBsZWdhY3ktdHJ1bmsKKzE5NTUxIGEwYmFmNGNkODM1Y2YyZjQwZGI5MTU0NDY5MmNiNjkyYjA1ODRlNWMgbGVnYWN5LXRydW5rCisxOTU1MiAxMDJmZmUxNjExZTBmODQ3NDlkOGZkZmMwMmI4ZjhhZWQyY2EzYjg1IGxlZ2FjeS10cnVuaworMTk1NTMgNmViYjE0YjE0MWFkNTFiOWNjNGI4OGYyMTdiOGRiM2IxODNlZjA4OCBsZWdhY3ktdHJ1bmsKKzE5NTU0IDczNmJjZWVjYTNkYmQ2M2FmODMyODhkYjJiYmIxNzZmNzE3ZGE0ZjUgbGVnYWN5LXRydW5rCisxOTU1NSA0MTM0YjU5NzIyMTljZmJjOWVmZTYzYTc1NzMzYmI4MDU1ZjA5MzU1IGxlZ2FjeS10cnVuaworMTk1NTYgNjYyNjZjNDZjY2ZkY2Q2MmFhOTdhOGVjYjNmMmQ2ODdmNmE2MTJmNSBsZWdhY3ktdHJ1bmsKKzE5NTU3IDJhODZkNTE5ZjgwZTVlODg1MjEzN2NmOWRlYmM4MzU2MzdlNDNmZDMgbGVnYWN5LXRydW5rCisxOTU1OCBkZTVhOGRkMWM2ZjI0NzU2ZmE0M2E0MTYzYTBjN2YzMWNiOWM1ZTgxIGxlZ2FjeS10cnVuaworMTk1NTkgM2JkZDU2NWM3N2JkZGRkMjI4MDRmMDczZTE1OTdlZjJiNzVmZGFhYSBsZWdhY3ktdHJ1bmsKKzE5NTYwIGUxNGM1ZjM0ZmEwNTg1NmE1NDEyY2E4NWQwMzJhNDE5MmIzYTk0ZGEgbGVnYWN5LXRydW5rCisxOTU2MSA1NjQ5MjdjNTU3NDI1ZjhiZjU4Y2RiYWNkMzg2MmRhYjQxNWY5OTRjIGxlZ2FjeS10cnVuaworMTk1NjIgYzAyYTlkYjU2ZmUxNWQ1YjA1MzI2MDNhNDI1Y2Q5YWFmNzIyMWM1YyBsZWdhY3ktdHJ1bmsKKzE5NTYzIDFiNDAwYzg1NGEyYzJmZmU0MTg5ZDI4NGVlNmYyOTNkYjY0ZDhiOTQgbGVnYWN5LXRydW5rCisxOTU2NCA3MzM0YjJjZWRkYThlNzUwYmUyZWI1MzQ4ZDBiN2U3YzE5YzdhMGQzIGxlZ2FjeS10cnVuaworMTk1NjUgZDJhODQxNGExZWFiM2QxZTNkODVkMjhkNmM3NGUzNDJkNDllZmFhNCBsZWdhY3ktdHJ1bmsKKzE5NTY2IDYwYzkwZmY5YzJmNzhhZDZkOGU4MzhiMjM0YTA3MTgxMzQzYTg4YzYgbGVnYWN5LXRydW5rCisxOTU2NyBmOWY0YzIzM2VlMDM3Y2Q1MzRjNTY4Y2UxMDY1NzAyNWE0ODczZDI1IGxlZ2FjeS10cnVuaworMTk1NjggODE3MjkwNmM2ZGM4ZmIzNzg2MTU4OGJiYmMwZWE2ZTZhNWE0N2E5ZCBsZWdhY3ktdHJ1bmsKKzE5NTY5IDA0Njg1OTZlMzAxODc0MDA4ZDA3ZTZhN2E4YTM1ZTAxMGVlOGU4YzYgbGVnYWN5LXRydW5rCisxOTU3MCA5MzJhMWY4ZDkyZjcwOTE3MmMyN2Q2YTlmOGU0YjJjZDcyNThkYmJkIGxlZ2FjeS10cnVuaworMTk1NzEgNjE3Y2I0MGNiNzRiOGY3NDIwMDFkMTY3OTMzYmUyMTIzZWVmZmYzZCBsZWdhY3ktdHJ1bmsKKzE5NTcyIDk2OTZjOTVkMDliNzQyNGNkMTIzZDQwYmU4Zjk5N2FlMWI3YzAwZjEgbGVnYWN5LXRydW5rCisxOTU3MyA1Nzc5OWYwMTNhYWQyNTRhOGY4OWRmNmI2MTRhOGI0YmQ5NjBlODQ0IGxlZ2FjeS10cnVuaworMTk1NzQgMWNmMzZlYjVhMjVjMGY1NjAyZmNlMDczZmM0MzYxYzhjZDk4ZTc2OCBsZWdhY3ktdHJ1bmsKKzE5NTc1IDU4OTA4YmI0N2NjYWNhZDdhNjE3MGRkMGU4MTVkNzYzZWQwZGU4MTYgbGVnYWN5LXRydW5rCisxOTU3NiAyYzFmOGQzYmJhMmY4MWViYjUyN2I2NjRkNTIxOTA5NzYxZTk1OGFjIGxlZ2FjeS10cnVuaworMTk1NzcgNjM0MWY4ZDkwOWFjNWY1NmMxYzJmNzRkNmY5ZGEwNjIzOWI2NGQ5MyBsZWdhY3ktdHJ1bmsKKzE5NTc4IGU0YjQ3YjQzOTNjOGFkNGQ2YWNkMjVlMjhmODFiOTNmODQwMmEyNzcgbGVnYWN5LXRydW5rCisxOTU3OSA2ZDFmZDkyNDRkYWRhYWJlZjJhOWVlZWUyMTZjZTcxMTE2NWZjYjdiIGxlZ2FjeS10cnVuaworMTk1ODAgM2U5Mzk2YWM0YmEwN2U0ZGNkOTg2MDQ1NTlmOTY0YzE1MjQ0Mzc0OCBsZWdhY3ktdHJ1bmsKKzE5NTgxIGVmNjRkYzY4NTIwZmRiOTkyZmFlNTJkZjk0MzQ3ZDZiNWVkZmEwOWMgbGVnYWN5LXRydW5rCisxOTU4MiBhMWQ4YmI2ODY1OWE0NzQzN2VlZjcwZGY3ZGQyMzE0NDljMzA4NWUyIGxlZ2FjeS10cnVuaworMTk1ODMgMDFjMjQ3MGVlYjJlYTAzNDE1ODc2Y2EzN2M1NDZkZGZjM2JmN2Y5YSBsZWdhY3ktdHJ1bmsKKzE5NTg0IDg5YzEyNjg4N2RmMDkzZTBkMzdiNzU0OTAyYWU4M2FmYWI2Njg4NzYgbGVnYWN5LXRydW5rCisxOTU4NSA0MDdkNDAyMmNjOGMwNDI4YjE1NGZlOTZhNThlNTBkMDNlMWRjNDA1IGxlZ2FjeS10cnVuaworMTk1ODYgNGRiMGZkZGI2OTE3OGRiZmNmZDdiYTFhYWYzOTNkNzYwOTA0NzVjMCBsZWdhY3ktdHJ1bmsKKzE5NTg3IGNjMzM4YTVjMTZlNWM0MjAzZTRmZTMxZDE2NTE1ZjMzNWUxMTQ4NmUgbGVnYWN5LXRydW5rCisxOTU4OCA1OWYxYjU3YmM5MDk5OGYwNzQ5NzY4NmNhYzY2YTUyNTcyMjlkZjIzIGxlZ2FjeS10cnVuaworMTk1ODkgMTIwNjIxYmQzM2ZjYTU5YTEwMjZhMTZiNGJkYTViNDE2YjNjNjc1ZiBsZWdhY3ktdHJ1bmsKKzE5NTkwIGQxNzBjMWU3NzJjNTUzYTliNTg5NmI2YTRhMTRkZWY1ZDdlNDkzZDkgbGVnYWN5LXRydW5rCisxOTU5MSA1ODNhODEyYzQ1Yzg4NjEzNDU1NjdhNWNlN2NiOGMxYjc1ZDQzYWJiIGxlZ2FjeS10cnVuaworMTk1OTIgODAwYjAwNGFjYzcxNzgwZTZkOTkzZDMyYmY4MTQzNDNjYTkxNTkyNiBsZWdhY3ktdHJ1bmsKKzE5NTkzIDI1NmUxNTk5ZDhkOTZjM2JiZDc0N2JjMzYxZmY1YTBmMTQ2OWI0YzMgbGVnYWN5LXRydW5rCisxOTU5NCA3NDE0NWFiMWZkYzViZDlkZjUwM2ZhNjc1YjY0OTkyYmM2NjViM2Q1IGxlZ2FjeS10cnVuaworMTk1OTUgZTgxZGRhNWQzN2M0YjFiMDYzMDIwNjM5OGQ2YjUxZjQyNTBlOGUyZSBsZWdhY3ktdHJ1bmsKKzE5NTk2IDg2Yzc2ODNiNjA2YTkwYmVlOWNjOTA4NDBlYWI1ZWI2ODk0MjAyMTkgbGVnYWN5LXRydW5rCisxOTU5NyA4ZjAzNGJjZWU4NTZiYWRmMGY1NDY0ZjcyMzI3NjIyN2RlODA4YjE0IGxlZ2FjeS10cnVuaworMTk1OTggYzk5ZDE5YTk2ZTllYmJlY2Y2MmRjNzcxNTE2NmFlN2ZlZGI5YmMxOCBsZWdhY3ktdHJ1bmsKKzE5NTk5IDA1ZWMxYjA1NGI0ZDkzZmUwNmYyODllN2U4ZDM3M2NmZGQ3ZjZkMWQgbGVnYWN5LXRydW5rCisxOTYwMCA5Zjg2Y2JhNDc2NmI1NGVlOTUxNzAwZGQ4MGY1MGQ1Yjc4N2NiMmUwIGxlZ2FjeS10cnVuaworMTk2MDEgYjMyNzhiZjRmMDkxODIzNzEzY2ZjNDcxMTMzMjBjMmJiY2RhOWU3NCBsZWdhY3ktdHJ1bmsKKzE5NjAyIDM4NmNjNjk4YWVmOTU1NmY2ZGI0MGJiMWM0Mjc5ZWMxZWIyYzEzMDcgbGVnYWN5LXRydW5rCisxOTYwMyA4NDRmZGU2MDBhNjFkMzM4OWFhYjFiZjFkZWQ2ZjZhNDVjZjA2Y2ZjIGxlZ2FjeS10cnVuaworMTk2MDQgZGRhZmRiZjkxNDk4NWI4OTE0Y2Q4YTA0YTU3MDk5NGY2YTYzM2M3OCBsZWdhY3ktdHJ1bmsKKzE5NjA1IGMxMDA1NjEwMGVhNWRkMmZlODRkNTJjMmUzMjcwZDg5YmJlOWVlMGMgbGVnYWN5LXRydW5rCisxOTYwNiA4NDY2YmIzNzI4OWNkNmU3NjEwYWE4OGQzOGZlYTI0NzE0NTY4ZmJmIGxlZ2FjeS10cnVuaworMTk2MDcgZGI2MTg5NGIwZDZmYzNlNDAwZTQwMjQ0YzA1ZjhjOTg2ODQxMDhlZiBsZWdhY3ktdHJ1bmsKKzE5NjA4IDg1ZDJhZjk3MmU2MjMwNGMwYjkyMDYyMDk3NmRmYTNlZjc0YzJhMmQgbGVnYWN5LXRydW5rCisxOTYwOSAzNWY1N2M3MTcwYmQ0MGE3NWQ4ZGMzMmMyMTA1NGVmYjFiZjJhMzE1IGxlZ2FjeS10cnVuaworMTk2MTAgNGNhNjJhZmVjMDA0NTI1ZmMzY2I3MzRmYWFmNTY2MGNhMWU5MTI1MiBsZWdhY3ktdHJ1bmsKKzE5NjExIGI0MmIyMmE5MjI4Y2M4NjA1YTU5ZjkxNmIwNTQ5OWFiZDA4ZjA3MzEgbGVnYWN5LXRydW5rCisxOTYxMiBlMmEwZGI4MzllYjFhNDNiNDUyNjg2MzlkMmU1NWYyOTJjNDY3YzBmIGxlZ2FjeS10cnVuaworMTk2MTMgZTQ0NGE1MjcxMTgxMmNjY2M3MTBhOWFkYzAwMTU0MWM5ZGQzMWZiMiBsZWdhY3ktdHJ1bmsKKzE5NjE0IDk1MTg4OTNjYzhhN2Q2ZjVkMjI2ZWNkNzgwY2VjMjU0MmYzM2QwOWMgY25yaS0xNi1zdGFydAorMTk2MTUgMDZmNmYwZTFlMTA2MTZjOGI2NjM0ZDc3ZDFmOTk2Mzk5MTA1Y2MwMiBjbnJpLTE2LXN0YXJ0CisxOTYxNiAzYzBhMzUwMDIxMDhkMmUxMjA0MzFkNTRkNmMzY2JiZjUxNTdiNWFjIGNucmktMTYtc3RhcnQKKzE5NjE3IDZhNTViNjc3ZjUwOTY0NWYzYzg3YmJlYTk1MGNiMTk4MGVlYTE2MjAgY25yaS0xNi1zdGFydAorMTk2MTggNzgxNTkxOWUyYWY4YjYzZTBlYTc2MTY2ZGQzNWE5MGQwNTYzMWU3YyBsZWdhY3ktdHJ1bmsKKzE5NjE5IDkwZTkwYzkyMTk4YjdkYTYwOWU1NjBmYzNiM2ZjNzY3ZTUzNmNlYzMgbGVnYWN5LXRydW5rCisxOTYyMCBjYTFiZTdkMDA0MTNlOGFhYTVlMzljZjVhZGMzNDE2MGNhY2U3ODBmIGxlZ2FjeS10cnVuaworMTk2MjEgNWMzYWVkYzk2OWRhNDU2NzhjYzliMGVkMjBmMzkzNDg1ZThiMGU0NCBsZWdhY3ktdHJ1bmsKKzE5NjIyIDUxOTc3YWYyMzBmYTQ3YmVlOTQ4MTM3NjMxYzA1YjcxODI5MDcyZWQgbGVnYWN5LXRydW5rCisxOTYyMyAyM2M3YTAxMDhmNTkwY2ZjN2MxYjk4MWIwMmFlY2M1MzUxODU3YmUxIGxlZ2FjeS10cnVuaworMTk2MjQgMmZiNGQ2MjViZDM5ZjAxYTRhMmNiZjg3YmNkODliZTkyZDY1ZjBhMSBsZWdhY3ktdHJ1bmsKKzE5NjI1IDM0NDg1OTFlODI3NWU3YTc1YTQ3MmUwMjk1ZjRlZmM4MTUxN2NjOWIgbGVnYWN5LXRydW5rCisxOTYyNiBlMWZhOThmZDIzOWU3NWExM2YwOGY3NzVhODJhOWQzNTYyODRlNTA5IGxlZ2FjeS10cnVuaworMTk2MjcgODk5NjI4OGE4ODczYjFjNGU3ODE0YmJiMGE4ZWNkYTUyNDVmYjllZiBsZWdhY3ktdHJ1bmsKKzE5NjI4IDZjOTZlODMyOGQ1MzAxYjdiNmQ1YzE0MjFjOThkMTI2YTBiZTQ3ZDEgbGVnYWN5LXRydW5rCisxOTYyOSBhOGU1MWY2YjVjZmMwOTdjNWQ0ZmFiZDgyNDUyMTEzNWM1ZTQyODVmIGxlZ2FjeS10cnVuaworMTk2MzAgZmYxMjJjNDA0ZjY0MzFjNmY0NThhNGIxZmY3NzQ0ZDM5ODVkZmM5NCBsZWdhY3ktdHJ1bmsKKzE5NjMxIGRiNDhkMGIxM2IxZWQwMTIyMzcxOTA1NTgzOTRmMzc3Nzc1MzM0MzkgbGVnYWN5LXRydW5rCisxOTYzMiAyZjU4NWNiZTcxZGE1OWRlMzk3YTc3YzBhODVkNzA4YjVhMzEwMzQ3IGxlZ2FjeS10cnVuaworMTk2MzMgYTdjNTE0ZTE1MDAzNjcwYWFiOTFmY2M1OWQwNzNmZmEzNTMwNjgxMiBsZWdhY3ktdHJ1bmsKKzE5NjM0IGE4MDRjOTFjMTgyZTFjMTVlMTc5NmIxNTFmYzBmMDhjZDI3ZjM2NmYgY25yaS0xNi1zdGFydAorMTk2MzUgMGEzOGY0ZDk2NjdlY2VmZDlhMThmMWY2ODU4MWFiNjM3ZDYxOWUwNyBjbnJpLTE2LXN0YXJ0CisxOTYzNiBmNGYyODYwZDNhNWYzZTA5OThjOGNkM2E2ZmQyZmM2MDA2MjBkZTA3IGNucmktMTYtc3RhcnQKKzE5NjM3IGI0ZTQyZDI5OTYzZGQ0Y2JkMmQyYzU2ZTkwZTgyOTFkYjIyZjJlZmQgcjE2MS1icmFuY2gKKzE5NjM3IDdlZTM3OGQ1YTQxZDJkODMxNmVlMzI2ZjgxODk5MjQxOWE0ODA0ZTIgcjE2MS1icmFuY2gKKzE5NjM5IDYzNDhjZDQ1OWVlNDllM2U1NTdlN2Y1YjUxMjdlMDc4YjMwZjdiMmIgbGVnYWN5LXRydW5rCisxOTY0MCA2ODBjODg1ZGZhY2U5MWI5NDYxNjJlYjU2MjJmY2YzY2U2ZTE1OTVlIGxlZ2FjeS10cnVuaworMTk2NDEgYjZhNTJlNDM4MzQ0MWY1YTMzMTQwMWJiYmQyMmIzZjk5ZGUxMzMzNCBsZWdhY3ktdHJ1bmsKKzE5NjQyIGQ0NDZlNGVjOWI3YjM5NzcwY2ZmN2ZhOTI5ZTRmNjliMzA0NjE4YTUgbGVnYWN5LXRydW5rCisxOTY0MyA5MDUwMTFlODc0MGM1NDU5Y2Y4YmIxYjg3OTIzYTA1ZjRkZDdlYmY5IGxlZ2FjeS10cnVuaworMTk2NDQgMTRhZmZiZDAzNzUwNmM0ZDk4YmM5ODA3NDBlMDJhMDY1NDYxYTlhOCBsZWdhY3ktdHJ1bmsKKzE5NjQ1IGIyMzUxNjBmMTM0NjcwODUxOWNlMjVmNTJhMTAwOGJmNjM1MTA4ZGIgbGVnYWN5LXRydW5rCisxOTY0NiBlNGQ5YmEwYWMwYjJjYTE0Y2IzNDE4ZDI3NmNkNDdjYTcwZmNmNzdlIGxlZ2FjeS10cnVuaworMTk2NDcgNjdlZDhhNjkwNWMzMzlkYThlNWE5YTE4OTFmYzYwNjVhNDRlNWJjMyBsZWdhY3ktdHJ1bmsKKzE5NjQ4IDM4MzlmMGFhMWU3Y2NlY2U4YTEyMDg3MzEzZjQ5MmYzNzc5ZWI3NDkgbGVnYWN5LXRydW5rCisxOTY0OSBhNDE4MmM2NzljNjFjNDQ4MjUyNDBmNjNjNGVhNDJkZmY1M2MzN2FjIGxlZ2FjeS10cnVuaworMTk2NTAgMjkxNWViMDdiZDI1YTM0YjlmZTg0ZWYzYzc5MTBhODE4ZWQwNjQ1OSBsZWdhY3ktdHJ1bmsKKzE5NjUxIGI5ZTVjMTIyMjEyZWYzNDc4NmIxMDliNTI4NDY5ODIxMWI3Y2Y3ZDggbGVnYWN5LXRydW5rCisxOTY1MiA2OGJkOTZlNDI2ZTMyYmIxYjk5MmJhMTFiZjEwMTJhZGZlOWI0Y2Q0IGxlZ2FjeS10cnVuaworMTk2NTMgZWIyOTkyNGEzMzcwZTFmYTgyMGFhYmI4MjJkYWVjNTY5NWM0NzNjMSBsZWdhY3ktdHJ1bmsKKzE5NjU0IGJmOGQyYjkyZWEwZWYzMjUxY2NhYjZjMzNiMGNhYzEwYzkyYjA4ZDYgbGVnYWN5LXRydW5rCisxOTY1NSA1YTEyMzBkZTQzNmE4NjA1N2Y3ZmQ0NTgyODMyMWY2MzFlNjJjODRkIGxlZ2FjeS10cnVuaworMTk2NTYgNTg2NGE5YzU4YzgxYzIyODFhNjE3ODU0ZDE5ZDdjZTRhOTExNjlhNSBsZWdhY3ktdHJ1bmsKKzE5NjU3IDRmZWVhOTliZTc3N2Y5NjI3YjQwZDg2OTgyYTcwYmY4MmFkN2NhNmMgbGVnYWN5LXRydW5rCisxOTY1OCA2MGZkOWQ0NTQyMDZkYTU3ZWY1ZjIzOTkyMjc5ZTM2ZDZhYzJlM2VkIGxlZ2FjeS10cnVuaworMTk2NTkgOTk3NzgwNmI4NjE3NGQ5NmRiNzc2MTMzOGU2N2E0YmM3NDI0NWM5MCBsZWdhY3ktdHJ1bmsKKzE5NjYwIDI2ZDNlOGVhY2VkZmFkZWU2YjkwOWE1ZTE0ZjRkYzRhNDJlNzc2MTMgbGVnYWN5LXRydW5rCisxOTY2MSA5NTE5Y2FkNmJmOWQ0YzUzYjZiMTgzZTM2MGQ0ZDIwYWM3ZjBhMTgyIGxlZ2FjeS10cnVuaworMTk2NjIgMDBmZWE0MTczMGNmNDNjNWNjODE4ODlmMmQ4NzIyZGQzNTUzNDBiZiBsZWdhY3ktdHJ1bmsKKzE5NjYzIGU5OTFkODg0M2FiNDdlOTE2YjljNGI0ZjZhM2E5MmU4MjE0ZWM2MWQgbGVnYWN5LXRydW5rCisxOTY2NCA2N2JhZDlmMjBiMjljMTc5M2VlOWFjNzFmY2ZlOWJiMjUzMzc4NzFlIGxlZ2FjeS10cnVuaworMTk2NjUgYTg5Zjc4M2MxMzNhNTAyODg4ZmU3MGYzMmU3YzE0MzE1Njk2MDZkYyBsZWdhY3ktdHJ1bmsKKzE5NjY2IGRhZTM5ZWJiYzAwNDFjYzE1YmUyY2ZiNWI4NjNhNzY4ZTE5M2JlNTQgbGVnYWN5LXRydW5rCisxOTY2NyA3ZjhmN2JlYmQxZjY0Njc2NzlmNzJlYTI5OGEzOTExYWQxOGZkZjljIGxlZ2FjeS10cnVuaworMTk2NjggMjlhYTgzMmI4Nzg3NDc4NjZkNzhmOTgwMmRjYWRmYzA2NGYzZmJkNyBsZWdhY3ktdHJ1bmsKKzE5NjY5IGI4MDI0M2Y3Zjk3Y2JlNmE3ODY0MDVkYzg5YzU5YTE4NDhlZGY4YzggbGVnYWN5LXRydW5rCisxOTY3MCBhYzE4MGM5ODIyOTUwMDFhN2U0NjYyNTQwY2I4ZTQzYjVjNjE1NGQ2IGxlZ2FjeS10cnVuaworMTk2NzEgM2MyMTQyZjA3NmI0NmZlMmFiMmJkMDQ2NWY5NTVjNGZkYjQ3YWJhNiBsZWdhY3ktdHJ1bmsKKzE5NjcyIDI1OGRjYWZlMmQwYjhkYzZiY2VjMTZlMmEyMzJkOTE4NzdhMDI2OGUgbGVnYWN5LXRydW5rCisxOTY3MyAwOGQ5MzcxMDdmZTZjYzIwOTViMThhNjU0OTNjOGRkMjRkOTI0ZjVkIGxlZ2FjeS10cnVuaworMTk2NzQgZTAwNjJlODlkOGY0MjdhNWZhODhlNTBmZTUxMzVhNmU5MmJmZWQwYSBsZWdhY3ktdHJ1bmsKKzE5Njc1IDJjOTE4NmU0MGIzMDc3OGZkMDcwMWIxNGE3MzQxYjJhYWYxMTYzYWEgbGVnYWN5LXRydW5rCisxOTY3NiBhODY5NTA1MTk1ODYzYzg3YWVmMjAzNzMyY2ZkZWVlYzEzYWY1MDU3IGxlZ2FjeS10cnVuaworMTk2NzcgNDQ0NThmZTk0N2RkYjA1NTQ1Y2Y4YTg0NmZlOGIyNTc4Y2JiNjU5YyBsZWdhY3ktdHJ1bmsKKzE5Njc4IDgxNTY4NzlmZTYwZDFlMmRhYjMwNzk2YjkyNDg5ODZlZDMxOTIwNGEgbGVnYWN5LXRydW5rCisxOTY3OSA4Mzg5NWI0Y2UwYmJmMWVlZjVlNDcwZjNjNmNkYmUzNDZkM2VmZDdhIGxlZ2FjeS10cnVuaworMTk2ODAgYjI1ODVkOGZkYjhiYmY0NDIyNWNmNzJkZjYxZGY4OTUxMTQzZWEzNyBsZWdhY3ktdHJ1bmsKKzE5NjgxIDc0ZmQxOTU5Y2Y0NGVlMmIzZmMwMjE2ZDAyMzcwNmQxNWIzOGZiMmQgbGVnYWN5LXRydW5rCisxOTY4MiBhZTdkNzIwN2RhNDg4MDM2ZTJmNzE4ZmRhYThiZTlmNzZkNzk4N2Q5IGxlZ2FjeS10cnVuaworMTk2ODMgOGJmMGM0OWZjZTEwMWFiYTkxNzk2YjRlMDQxODhhMTA4MjVlYzAzMyBsZWdhY3ktdHJ1bmsKKzE5Njg0IDUwZDkxNTllZGFhYjY3NmJiZmYyZWU3NzRlMmIyNmU0M2Y1ZjM5YzkgbGVnYWN5LXRydW5rCisxOTY4NSAxZDFiZjY4MTNlZTU2OTg3OWRjNTA3NjkzMTlmOWIzZGNlNmM4MGFkIGxlZ2FjeS10cnVuaworMTk2ODYgNTgwYWQ2ODU0NDVmNTE4M2E2MTYxYTVkY2M2MjQ5NDNmM2U3YTUzNyBsZWdhY3ktdHJ1bmsKKzE5Njg3IGMzZmIwNDRkN2U2ZjFhYzhkNjA2MTk2M2E3YmJhYjU1MjI4Yjg2NzAgbGVnYWN5LXRydW5rCisxOTY4OCA0ZWFkZGY0NzhlOTdhNDYzYjc3YTk5MTdhNzNmNmFhMGZhMDllOGY0IGxlZ2FjeS10cnVuaworMTk2ODkgYjJjZmY1NzA1Nzc1ZTI2OTkzOThjZGRjNzkxNjEwNTExMzEyNmZhMyBsZWdhY3ktdHJ1bmsKKzE5NjkwIDc2NTgwMWRlMTUxMjA4M2Q2YTQ5NjBjMGFiYmNkM2ZlYzVlNTkwYTAgbGVnYWN5LXRydW5rCisxOTY5MSBmZmNiM2NmZjk0Mzk0ZDA1MjMyNjMxNTBhNTUyNjRmZDFmZDFmMzMwIGxlZ2FjeS10cnVuaworMTk2OTMgZmQyYTg2OTc2OWIyNDliODc2NzMxMzlkOWUxNjRlZTE3MjAyODU5NCBsZWdhY3ktdHJ1bmsKKzE5Njk0IDUzZThlYmQxMTYyMGQ0NWMwOGE3Mjg0ZDczMTU1ODI1ZGJhNDY1NGMgbGVnYWN5LXRydW5rCisxOTY5NSBmNTRiYWU4NmEyYzZiY2M2MTZiZTBjZTJlZTdjODExZjcwZTdjZDk0IGxlZ2FjeS10cnVuaworMTk2OTYgZjc5NmE4NzcxMTdlNzE1YjM0MWYxYmE3ZTAwZGMwNDI0ZTIwM2YzZSBsZWdhY3ktdHJ1bmsKKzE5Njk3IDBmMGVmYzJkMTJmMTQzYTY4NmVjZTc2NjhjMzVjMTc4NTM5NWFlZjUgbGVnYWN5LXRydW5rCisxOTY5OCBhY2JlNzRmM2E3ODZmMmY0NTc5YzZmNzg0M2M2YzJjN2UzOGQxNmVjIGxlZ2FjeS10cnVuaworMTk2OTkgZDRhMzE1ZTQwOTRjNDg3MWRmNDMzZDBmNmY2NjFiMjFiYjAyMDllNiBsZWdhY3ktdHJ1bmsKKzE5NzAwIDUxY2Y0NTFmYWFlNDYwMTk4Zjk3MDQ2YzBiZjU0MDUwYmMwMWNkZTAgbGVnYWN5LXRydW5rCisxOTcwMSBhOTU2OTM0OTFlY2FhZjcxMmRlYjc4ODY3MmU3ZmEwZWNjM2YyNDQ1IGxlZ2FjeS10cnVuaworMTk3MDIgY2U0NzQ5OGEzMTU4NTk3M2JhN2QzYzk1NWYzMjc5ODA0YmQ5OGFjMyBsZWdhY3ktdHJ1bmsKKzE5NzAzIDNiMDUyMTJjMTYxNjAyNTU3MDM4YWM4ODgwZTY0ZjhiMmQwYzZjZTEgbGVnYWN5LXRydW5rCisxOTcwNCA2NzMyOTA1Njg2ZDQwZTgxY2JmMDgxZDI5ZDhhZTdkM2FmMDFlZTg4IGxlZ2FjeS10cnVuaworMTk3MDUgZjUzNzBlMWUyMzkyZTZlNDJhZDQzOWE5ZDYxYTU5ZTA1ZDFkMWNmNSBsZWdhY3ktdHJ1bmsKKzE5NzA2IDI3ZjA0ZDcxNGVjYmM1MzZjZTdhZmRmMjNlYWUxZmQyNmI1YTNlMTkgbGVnYWN5LXRydW5rCisxOTcwNyBiNDYzYWNkNmRhMjIyOTllZDFhMDcwZmU4ZjJiYmI3Y2NmMjllZDJhIGxlZ2FjeS10cnVuaworMTk3MDggYmJkZWI2ZDRkZWExNTJmYzM2YTUxOGFhMjk2ZjljYzdmMWZkMzEyMiBsZWdhY3ktdHJ1bmsKKzE5NzA5IDUyZmUzNzdmMDdmMmNlMTYwYjAzMjVmMGFlYzIyNDA1NzM2ZThmOGQgbGVnYWN5LXRydW5rCisxOTcxMCA1OTAyYjU3OTRhMTdlYjdmNzMwZmYzODZmMDIwMmNjYjQzZjNmOTM2IGxlZ2FjeS10cnVuaworMTk3MTEgZjI5Yzc2Njg2NGNiNWEzODhmMzQyNzdlNWI5N2NmOGVkMjhhNjA4MSBsZWdhY3ktdHJ1bmsKKzE5NzEyIDBlNmEzZGE0Zjk1NjEzMDUyMTY2NWFiNjBhOGNjYmIxZDk4NmZiYTMgbGVnYWN5LXRydW5rCisxOTcxMyAwOWY2YzEzNzIwNTY5OTM3MDg4NmVmNmM3YzY2ZjFhYzc5YjU2Njc4IGxlZ2FjeS10cnVuaworMTk3MTQgZTFiMWU2OGNiZDhjMTViODFjZTkyMWU0ZGRmNmZlODhkMDMxNDY4MyBsZWdhY3ktdHJ1bmsKKzE5NzE1IDk1MGZjMjI2MWRhNDYxYTEyODg5OWMyZTRlMDFmOWM3NGQyMTM5YTYgbGVnYWN5LXRydW5rCisxOTcxNiAzZDI5NjkwYTI0ZTg5NTUwNjRkMDczOWQ3ZTMyM2NkMjcwODg1MzQxIGxlZ2FjeS10cnVuaworMTk3MTcgNzZhNjg0ZmUzZjdmYzVkODM5MGRhMjRhMDIzNzg3Y2M4OTJhZjhlMyBsZWdhY3ktdHJ1bmsKKzE5NzE4IDMyNmE0ZGNiY2QyMmE3NjZmMzk2ZTQxMDRhYzE3N2FhZjc0ZjVlMDIgbGVnYWN5LXRydW5rCisxOTcxOSA4MTU2ZGViMGU2MmRlNWUxMjE1OTdhODk2YTVhYjgyNTA1OWRhZGM4IGxlZ2FjeS10cnVuaworMTk3MjAgMDlkY2Y1ZWJjZDgwMzJmYzliZTMwNzRjYzk1NzUzYWExZjlhM2NiZiBsZWdhY3ktdHJ1bmsKKzE5NzIxIDJkMmVlMzBmNDNlYWRkNWRjZDJkN2FjMDg3YWVjZDk4YzFlNzUwMzYgbGVnYWN5LXRydW5rCisxOTcyMiA5NWE3YzU4OThmYWExZGE3YTBjNGI2ZDM1M2ExZjgwMjhmYzU5NjYwIGxlZ2FjeS10cnVuaworMTk3MjMgNDg5NGJhM2VkZDBhNTM0NGY0YTE5ZjEyZTFmMzJmOGRjMTFmZTkyYiBsZWdhY3ktdHJ1bmsKKzE5NzI0IGE4NzcxYTUyYWJiMzdmZTA3YzljNWVlY2UxZTViODVmMjU2Y2M1NTkgbGVnYWN5LXRydW5rCisxOTcyNSAyZDRkYTZjZmVlNjE4MjlmODNiNGQ2ZGQ5ZGIzMjcyYTA0YzY3ZDlmIGxlZ2FjeS10cnVuaworMTk3MjYgZTVmMmFiODExZWMzZDgxOGJkNDY3YzY1Y2E4M2NhNmZkZjEwZjk4NSBsZWdhY3ktdHJ1bmsKKzE5NzI3IDg0Nzg0NDI0OGM2ZjkyNzcyOTY4YmU5NGM5ZjMwMzc5ZDEzNzUxN2IgbGVnYWN5LXRydW5rCisxOTcyOCAwNTc4NWJkZjI4OWNkMDYwOGEzMTUyYzFmZDViOTdlZDFhNjJiMDJjIGxlZ2FjeS10cnVuaworMTk3MjkgYmM4OWYxMTYxNjBiOTc0YWMyNjg4ODUzYTkzZDFmZDk4YmY2ODE2OSBsZWdhY3ktdHJ1bmsKKzE5NzMwIGVjOTA4M2FjMjZkZjdkZGMxYTdiYmJmN2I3YWI0N2FkMjMxNDBiM2MgbGVnYWN5LXRydW5rCisxOTczMSAyNmNlNmVmYzk3NDQyNzlhYzY3ZmJjMWJiMTk2ODVkZjk0YWJhMTljIGxlZ2FjeS10cnVuaworMTk3MzIgYzU1NzgwODE1YTZlNWEzNWQzM2FmMGE2NmI2YzA2NDQ4MGMwNWNhMiBsZWdhY3ktdHJ1bmsKKzE5NzMzIGIwYWFmOGY4NWQxMjhlMjQwYTYyZDg5NDEzN2FkMTZjNjZjMzE5M2QgbGVnYWN5LXRydW5rCisxOTczNCA4ZDdmNzJjYzJlY2M4MTQ1NGM0OTFkNjY5YmMwM2I4NThhOWMyODQwIGxlZ2FjeS10cnVuaworMTk3MzUgY2Q0MDg1Y2VlMzA5M2FhNWY0MTAyOTJmMzY4YWFhNmFlZmI3OGY3MCBsZWdhY3ktdHJ1bmsKKzE5NzM2IDlmYTIwMDk4MjU4MzNjODE4NjE4NTQ1ZjU2YmYzYzdmNjVlMmJlZjQgbGVnYWN5LXRydW5rCisxOTczNyA3N2E1NDcwMjk5ZGJlNGQyN2U0M2JhYzUxNDZkYmI3YmFiYjVkOTQ5IGxlZ2FjeS10cnVuaworMTk3MzggMTNjZGJmYjU5MWE0NzQzYTE3NTBiOWYzNGIxM2M0ZDYwMGNkOTE0MCBsZWdhY3ktdHJ1bmsKKzE5NzM5IGQwNTJkZGRiZmQ0NDUwYTExOTM1ZDIwMDA3Njc5ZThiNWFmMjg1M2QgbGVnYWN5LXRydW5rCisxOTc0MCAyNTE0ZmNmYTBmMDgyNTRmZjM0NWNmNWQyNDIwOTNjMzQxNTlmYzYyIGxlZ2FjeS10cnVuaworMTk3NDEgM2E0MTFkNDFlZWI0ZmYwNzA0ZDJlYjJiNDVmMWJlZWYzY2ZjZGU1NSBsZWdhY3ktdHJ1bmsKKzE5NzQyIDc5NzZjZjdmZDE5NjgzYjU4YTQ0ZTRjNjQzMWZhMjk1NmE2OThlYWEgbGVnYWN5LXRydW5rCisxOTc0MyA3ZGM2NmQ1YjEwMGVlYWZmMDljNTI0ZTg4NmY0MGExOTdlOGUxMDZiIGxlZ2FjeS10cnVuaworMTk3NDQgNDEyNjgwM2UxYTg1ZGNhZmRkZWExZWI2ZjU4NjU3MThkYTdkMmNiYiBsZWdhY3ktdHJ1bmsKKzE5NzQ1IGYzOTllNmE4OGY2NTg0OTU4MTYyMWM3NjFlMzgzNmY5OGM0MGIzMjcgbGVnYWN5LXRydW5rCisxOTc0NiBkNjc1ZDc1YWY4Mzk1ZWI4NGFlOGYzMmFiMWNlZDgwOTdkZWUxMzllIGxlZ2FjeS10cnVuaworMTk3NDcgNTI4MGU4NDM5ZDU1NjM4NDI5NDA0NTRiYTE3ZjdkNDlmOTBkMjIzYSBsZWdhY3ktdHJ1bmsKKzE5NzQ4IDlkMDE4YTNkNzk0NmFhNzFkMTk3NTk2MGUwNjBmN2M5NDA1YTY0N2IgbGVnYWN5LXRydW5rCisxOTc0OSA3OWJiZjdhZDBmYzE3OWIyNmM0ZGE0MzZlMDgyM2MxMjVlZGFjMjBiIGxlZ2FjeS10cnVuaworMTk3NTAgMTBiODQwNjBiN2YzOWM2NzVjZjhlZDlkODZiMmM3NDU1ZjNmZDZjMiBsZWdhY3ktdHJ1bmsKKzE5NzUxIDhkNzQ4NmE4ZDY5YWMwYjFhNWJjY2M4OWRlYzMwN2UzNjZhOTFhNzUgbGVnYWN5LXRydW5rCisxOTc1MiAzMGJhODgzNzY0ZWJiNGUxOTU0ZjYxYTcyOWMxZGM4M2RiMmI3YWY2IGxlZ2FjeS10cnVuaworMTk3NTMgMWNmNTI1MzZjMzgxZWQwZGMzMWI1YzZkYWVjNmZmYjZiMjY1OGEyYiBsZWdhY3ktdHJ1bmsKKzE5NzU0IGFiYWVhNDQzZTI4YzJmY2FiOTQxNGE0N2EyNmYxNjY2NTliMmM2YzUgbGVnYWN5LXRydW5rCisxOTc1NSBiZGNkNzk4NzM5MjRjZTY0MmIwYWMzZGJiMzA5NDVjZDk2ODVmNDlkIGxlZ2FjeS10cnVuaworMTk3NTYgODU5ODI5Mzg0NjYzYjM2ZDkwZjk0YjkwYTg4MWU2ZGZlM2ExMThhMCBsZWdhY3ktdHJ1bmsKKzE5NzU3IGFkNzM0MzczN2FlZTllMTJlZTc0NjJlOWEyYmE2ZDE4NjdjMWRiNmUgbGVnYWN5LXRydW5rCisxOTc1OCA3YjViNTc1NmIyY2FkMGUxZjE0ZTIzMzhhZGIwZmYyN2ViMmJhYTdiIGxlZ2FjeS10cnVuaworMTk3NTkgMWNlNzUxZmE2N2Q4MDZlZTdiNTQ5MjcwY2E2ZGY5MzcyNjU5OTIwMSBsZWdhY3ktdHJ1bmsKKzE5NzYwIGQzZjY0NjQwNGE0MzU3MmE1NmIwNDFjNzUxZGU4NzZjYjBjZTZjNzQgbGVnYWN5LXRydW5rCisxOTc2MSA2OGNlMzI4NjE2MjZmOGU2NDMzNTZmYzhlOWIxYzBmNWEzZTIwZTI1IGxlZ2FjeS10cnVuaworMTk3NjIgMTRkYmRlMWVjZGVhYjljMzM2Nzc1ODIwOTZkZTZjOTEwMjIzMjIyYiBsZWdhY3ktdHJ1bmsKKzE5NzYzIGZjZmI0NDJkN2IzNGUyOTY1MzA1OTRkZmMxNDY3ZmFlNmNkYzY3NzMgbGVnYWN5LXRydW5rCisxOTc2NCAwZmViNjM0OTAwOTM1YWE2YjM3NzRhMDRjZjkzYzQ0Yjc1N2ZlMWNmIGxlZ2FjeS10cnVuaworMTk3NjUgZjI4N2M2ODRlMDRjNDVlNjgwMWU5YWIxOWY2N2Y5MmU3ZDI5MWQwYyBsZWdhY3ktdHJ1bmsKKzE5NzY2IDgwNmM2YWUyMzEwMzI0NzU1NTdjMDg3ODc2NDUwODkwNjgxMjU3MmMgbGVnYWN5LXRydW5rCisxOTc2NyBmMjdkMzI5OWRmMzkwNjIwNmE5ZWNmZWYwYThlZjA5Y2EyNzllZjllIGxlZ2FjeS10cnVuaworMTk3NjggZjFjOGVhOTJlZTg1MmVlNGE3YWJjZjE5YzgwZDc1NjMwYjRkNjQ3ZiBsZWdhY3ktdHJ1bmsKKzE5NzY5IGIzZDUwNGJkZDk3OWZhMzZlNDBhNjEyNGI0MGFkZDdlNjQxMjk2YmMgbGVnYWN5LXRydW5rCisxOTc3MCA4YWVjZGIyMjM0ODgxNzMwYTFkODExNDQ4YWJlMjM2MTdlN2M3ZDdhIGxlZ2FjeS10cnVuaworMTk3NzEgZmE4NGY5ZjQxMDkyMzExNmIxY2Q1Nzg3NzFlMDUwODRkOWU5ZDFlZCBsZWdhY3ktdHJ1bmsKKzE5NzcyIDc0YTlkMGE0MjMxYTVlYjBhMWIzODY0YjZlMTQyZjVlMDZiZjFmNDggbGVnYWN5LXRydW5rCisxOTc3MyBkY2VhMDkzODgzMzJjYWI4NTcyOTM0M2E4M2Y3NTI3OTdiYWUwNmUyIGxlZ2FjeS10cnVuaworMTk3NzQgMzIwZmE1MGExYTdkMjU1NjE4M2QxMTg2ZWUwZmExMDBmYjk2NDNiZSBsZWdhY3ktdHJ1bmsKKzE5Nzc1IDhkMWU4NDRmYmIxYWI1YWYwY2IwMTc2OTk1YWNkOTVlZjk2YzJkNzEgbGVnYWN5LXRydW5rCisxOTc3NiA1NzJiNjU0YmY0ZWQ1NGIwN2NlMzA2ZGYzNzIyNTAwYjllYzM0NjhmIGxlZ2FjeS10cnVuaworMTk3NzcgZjU1ZjM1ZGM1MzIwMWE1NDlkNGNjODk3OTYwOGZhZDAzZjk1NWU0NiBsZWdhY3ktdHJ1bmsKKzE5Nzc4IGU4Njg3NWYwNjliMTZlMzRkMDk2YjAzNzNiN2I0OGU4Njc3MjQ0OGIgbGVnYWN5LXRydW5rCisxOTc3OSA0MWYzZjRiMmZlNGE2NzYyYWIwMTA4NWJkZDc1OWRhOGZmNjE0ZTFjIGxlZ2FjeS10cnVuaworMTk3ODAgMGYwNzcwYTc5M2FjZDJmYjg1Yjk4OTRiOTIzY2ExZDZjMTExOTE3ZiBsZWdhY3ktdHJ1bmsKKzE5NzgxIGI3MzI0OWM4ZGUxODAxNjkzZDM2NGQ5OTEzMjZjMDI5ZDQ0ZjExZTggbGVnYWN5LXRydW5rCisxOTc4MiBmMWQ0NWQ2YzEyYTI4YzIyYTM5YThhYzE0ZmM3MzA4OWJjMTYxMWE5IGxlZ2FjeS10cnVuaworMTk3ODMgNmM5M2YxOGQzMjMzNDVlYWY2ZWI3ZjM3NDRkOGZkMTdlOGU1ZmNkMyBsZWdhY3ktdHJ1bmsKKzE5Nzg0IGZhODkwNmVjZGI3MDI0NTk1MGQ4ZWZkNzNlM2E2MGU1NjZmZDg0NWQgbGVnYWN5LXRydW5rCisxOTc4NSAyMDNhZDZmM2VmOGNlMTJlMmJmYTE5MmJjYmRmMzk5YTk5YTZlNGNjIGxlZ2FjeS10cnVuaworMTk3ODYgZGE2MzhjNDg0ZDA4YzYzZDY1NjU2ZWE1OThlNWRhY2NhMGIwMzA5NyBsZWdhY3ktdHJ1bmsKKzE5Nzg3IGE0NmExMzIwMWVlYjg4NDRjMTM5MmQ3MTJmMjBlNjQ1YWEzZTFmOTAgbGVnYWN5LXRydW5rCisxOTc4OCBmMDdmYTdmNTI2MmE5MmZkYzQ1M2U3YmQ4YTZjNjA0ZGY4NTMxYTM3IGxlZ2FjeS10cnVuaworMTk3ODkgZjI5MDI2NTkzNzRhYzg4ZTgyNGIyYjJhMWJiNDg3NWY3YzY5NmMxYiBsZWdhY3ktdHJ1bmsKKzE5NzkwIDQ5MzQxMDIyMjcxOTJlY2I2N2UyMmM3Y2E3OWM3MzUxNjQyMDYwZmUgbGVnYWN5LXRydW5rCisxOTc5MSBiMDQ1NmQzYTBmMWYxZDNlYzYzMmRmMTZiMGIzYWViMGZkZDg5MzM5IGxlZ2FjeS10cnVuaworMTk3OTIgYmIyNWYyYjdiZGFlMDNiOGM0MTYxZmVmYTM3ZjBkOTZhOGMwNTUzOCBsZWdhY3ktdHJ1bmsKKzE5NzkzIDZkNTk4MTdjZjc5MjhlYmViNTM5NmJlNDlmNGJmZDExNmIzOGVjNGUgbGVnYWN5LXRydW5rCisxOTc5NCA0OTFmYjQ5YjQ2ZTZmZGVkOTY1ODU4MmE5YjRmODllYTVmY2RlMmNmIGxlZ2FjeS10cnVuaworMTk3OTUgMDA0OTg1YTVhZDVhODA2M2E1OWE4NTE4MDk4ZDU5NzIyOTE2OTY5YiBsZWdhY3ktdHJ1bmsKKzE5Nzk2IDQxNTIwNWIyY2RiMmRkY2YyNTFhZjhhNDRmOTZiZjQ5ODcxOThmNTYgbGVnYWN5LXRydW5rCisxOTc5NyBiNWRiMjNjN2E4MDRhMTkyYmFiZGIwY2ZlYWYyZWMyY2M3OTk0MGMwIGxlZ2FjeS10cnVuaworMTk3OTggNWFiNGRhNmFkNGZjN2JjODg0MGM2YmRmNDZiNzZhZDRlYzY5ZGI5YiBsZWdhY3ktdHJ1bmsKKzE5Nzk5IGIwYTk4MmM5MWFmMDEzM2YzNjVhZDRmMjYwYWI2NDY3NTg4M2JkMzIgbGVnYWN5LXRydW5rCisxOTgwMCBmYWE3YWFlYjAyMTBkZjkxOGMwY2YyYjhlYTE0ZTMzYTYzYTNlZjc5IGxlZ2FjeS10cnVuaworMTk4MDEgM2M2NWJhYmYzMjJmYjNjNWZhZDM2ZDcyY2ExNjg4NmYzMjhiOTRkNyBsZWdhY3ktdHJ1bmsKKzE5ODAyIDI1NDhkMWE3MDE4MDAyZjVhNjY2MWVkY2Y0MmJmMmIyYzkyZGUyMDUgbGVnYWN5LXRydW5rCisxOTgwMyAwMmUwOTdmNzJkNDdiMGEzYjVjOTM1Mjg0NmE5ZDVmYWQ2MDNiODNkIGxlZ2FjeS10cnVuaworMTk4MDQgM2EyZThhM2VkZTQ4MTkzOTQ2NjU3ZTc4YzNlNDQwYjc3Yjk2ZDRmMSBsZWdhY3ktdHJ1bmsKKzE5ODA1IDljOTIxYThlZDNhNzIzYjg0ZGJmOWQ4ZjkxNzY4ODI5YWRiOWRkZmYgbGVnYWN5LXRydW5rCisxOTgwNiA1MmEzZjgyNjE3YzQwYzdlNGZlMWYxZjVlZjljOTgzNjc3MjUwNGY0IGxlZ2FjeS10cnVuaworMTk4MDcgYWJjOGM2YzAyNWNlODM3MTE5NjQ3MjliZWE2ZGYyZjk4ZTFkYjE2OCBsZWdhY3ktdHJ1bmsKKzE5ODA4IGIwNDZhMzFhZjJlMDZlODNhMTMyNzNlNzcwOGZiNjM1YTQ2MTQxMmYgbGVnYWN5LXRydW5rCisxOTgwOSBlYjRlZDlmMjNkMjA2OThlNTFhNjE1YzZmOGRjZTRmMGZhZjkxZDZjIGxlZ2FjeS10cnVuaworMTk4MTAgOTQ2ODNjODVlYzc2ZTZkMTYwNGMwNjg0YWZkMGY1MzdkN2MzZmQzYyBsZWdhY3ktdHJ1bmsKKzE5ODExIDhjNjRkZGExZDI2ZjMwZGVhYTNmMGU2ZTYzODNhN2U3Y2ZiNjdmNDAgbGVnYWN5LXRydW5rCisxOTgxMiBiODI1OWM3ZmY0OWM5YmRlYjU4ZDYyNmFhYWU1YjM1ZDdhNDc5MDdlIGxlZ2FjeS10cnVuaworMTk4MTMgNWQ3ZTBlYTMxODE4MGNmYjA0YmU5NzE4NzdjYjdlNmU4MjFmZTdiMyBsZWdhY3ktdHJ1bmsKKzE5ODE0IDA5YWVjNjY4ZGYzYWUyOGMyNmZlM2RhOGFiNDViYjU1NzBhZjA0OTIgbGVnYWN5LXRydW5rCisxOTgxNSBjMjhkZmU1Zjg3YTczYmUxOTA4Yzg3ZTE5OTFlNjJhN2E0NWViZTZiIGxlZ2FjeS10cnVuaworMTk4MTYgYTAxNWFlZDNhMWFjMTA5OGZlMzRlNDU5MTY5MTFjMDY0ZjRkMzU0MiBsZWdhY3ktdHJ1bmsKKzE5ODE3IGFmODEwZjA4NDI1YmVmMjU0OGI1ZmZiNTA4NzdhYTgxNjIwM2E1NWYgbGVnYWN5LXRydW5rCisxOTgxOCBlOTQ0NWM1MWZmMjlmNjkyMzE2NjcwNWVjMjYwYTNkZmY0NDZlMjE1IGxlZ2FjeS10cnVuaworMTk4MTkgNGJhYTVhOTU1NTMyYWU1NWE4ODFkNWNiNDUwNDYxMzI0OWRjODE4NSBsZWdhY3ktdHJ1bmsKKzE5ODIwIDhhNDY5NmQ3Zjc0YzBjMjFlNmVmZmZjNjM4MmJkMTc5ZDlmZjUzMDYgbGVnYWN5LXRydW5rCisxOTgyMSAzMWUzMDJlOTRkYTg4MWIyZGUzYjdkYTgyYjhjNzc3MmZkMjU0ZjAxIGxlZ2FjeS10cnVuaworMTk4MjIgYjI1MTMxYmM2ZWM3Yzg4MjU0NzE1Mzk5OWU4ZGVhNGVmNTcwOWRlMCBsZWdhY3ktdHJ1bmsKKzE5ODIzIGZhYTUyZjM4NGFmNjUyNDhkYjRiYzI2MmZiMjA3M2ExODMzMTM4MTUgbGVnYWN5LXRydW5rCisxOTgyNCAwOWJhMTVlZTE5NjFiYTMzNTdkYTkxOTcyYzI0ZTYxNWEzNmQ0NjgyIGxlZ2FjeS10cnVuaworMTk4MjUgYjZjMGNmYjFlZmVhY2NjNjY5NWI2NjM1YmY2YTAyMmIxZTFmNTk4NiBsZWdhY3ktdHJ1bmsKKzE5ODI2IGRmZWIzYWU2OTJjMTExOWVkNzA5MTQwOTAzMjAwYjQzNTM4NjljN2UgbGVnYWN5LXRydW5rCisxOTgyNyA4MzJlNDA5MDllZjQ4NGY0YWRmMTEwODg5OThiYzkzNmY4MGI3Mzc3IGxlZ2FjeS10cnVuaworMTk4MjggOWZkMjBjYWU3Yjc2Njc1NGM1NmM3YjI0ODQyZWZlNzhjNTQ1MDU0OSBsZWdhY3ktdHJ1bmsKKzE5ODI5IGM3YzUzNTM2MTQ2N2Q0OTAxZDE5NWJiOWUwZjkyMmQ2OGNkNzc3YjkgbGVnYWN5LXRydW5rCisxOTgzMCBhY2Q1MDYwODQ3MjdlNzM0ZDg3YjMwMmNjZmI2ZjZjZjhmZmQxOTBlIGxlZ2FjeS10cnVuaworMTk4MzEgYTFiMzQ0NmM3MjBmMWE0ZmY3NThlMmUxNDFhMGYwM2ZiNzgzYWU4ZiBsZWdhY3ktdHJ1bmsKKzE5ODMyIGNkNmU0YmM5OTI5NWI4NTVmZjQ3NWE4YzdmMThlZjcxMjgxNWE4NTEgbGVnYWN5LXRydW5rCisxOTgzMyBlNTNiMzI4NDUyMjRlNzkzMTk1MjE2ZGE4NjZiNjRhZmM1YjQ4NWVjIGxlZ2FjeS10cnVuaworMTk4MzQgOTEyMzFiYmIzODQyZjQ3NmYwOGM2ZTNkOGFiZjBlMGE4NTBlMDk0NSBsZWdhY3ktdHJ1bmsKKzE5ODM1IGI4MzIwYTI2YzA2NTc2ZDczOGE1YzA0NGRhM2Y0OGFmMGE2MWQzMjEgbGVnYWN5LXRydW5rCisxOTgzNiAwZDRlODA2YzQyY2NiZDNlYzJiYTM5MzM1OGVjZmFjOThjYTg5ZTU5IGxlZ2FjeS10cnVuaworMTk4MzcgNjAyZWIwNDZiM2U3ZDM0NDQ3OTcyMjExN2MxZTgxMDE4ZGYzMjQyOCBsZWdhY3ktdHJ1bmsKKzE5ODM4IDJjMjkwZDRjM2IzODJmN2E4N2ZiNTg2M2NkNGY0YTVmMjFkODVmZDggbGVnYWN5LXRydW5rCisxOTgzOSA2ZjQyYzFkNTVlNmFmMDY4NDAxZjFhNDRlMGY1Mzk0MDgxMGM5ZTE0IGxlZ2FjeS10cnVuaworMTk4NDAgZWMyOTg5NWVlNDBjZmQyNjExZjlmNTRhNzA0MjczZTZhMjYzMjIwMCBsZWdhY3ktdHJ1bmsKKzE5ODQxIDM4ZTE3YTA4OTQ5MjkwNjRmMjc1OTgwMWNkZmY3M2QwNTEzMzQ2ODMgbGVnYWN5LXRydW5rCisxOTg0MiA2YmJlMjY4ZjhhZDg0OTE4Y2Y0YWFiYjcyNzI3MDAxOGEzNDdiMzdmIGxlZ2FjeS10cnVuaworMTk4NDIgZDBjODMwZGI1ZTY4ZWRkNGFhYTM0MDEyMTZlNjEwYzlmZjE0NTgyNiBsZWdhY3ktdHJ1bmsKKzE5ODQ0IDlhOWVhZWNmMGZkODI5MjZiZDIzMDBlNjFlYjlkMmNiZWNkNDk5NzAgbGVnYWN5LXRydW5rCisxOTg0NSA3MjNjZjVlMzc4ZTU3ZGJkMmZhZWQ4N2M3YjdiMWQ0NWM1OTY5NmZjIGxlZ2FjeS10cnVuaworMTk4NDYgNjQ1MzJiYTVkY2VkNWRmZjNlNWM1Mjg5NWNkMmZmM2Y1YzgyOGQxZCBsZWdhY3ktdHJ1bmsKKzE5ODQ3IGI4M2EzYjc4MzE0ZWI4OTMxOTkzYTVlZmNkY2MyNThmY2FiZjJkZjYgbGVnYWN5LXRydW5rCisxOTg0OCBkODg4ZGM3YmVhMzJlYmY1MzE4MjY1OWJkOGM0NjFmZTI2MGFlYjJjIGxlZ2FjeS10cnVuaworMTk4NDkgMmRmZWUzMzNhNjUxMDA2Mzc4MDI2ZGZhNmI1MzM4NzgzMTlkMDRjNiBsZWdhY3ktdHJ1bmsKKzE5ODUwIGE3OWViYmE2NDY2YTYzN2JmMzU5ZmI4MTZiM2JlNjFmOTU3MTU3NTcgbGVnYWN5LXRydW5rCisxOTg1MSBlNmM1YmM1YmVhYjNhMDdjNzFhNDVjZTNlNDBiZmQ2YTBlMTA2M2U2IGxlZ2FjeS10cnVuaworMTk4NTIgMGI0YzU3YTI1OTc3ZWRhN2E5NzU2MWVjMWM0MDE2ZTJjZDFjOTljNiBsZWdhY3ktdHJ1bmsKKzE5ODUzIGQ1ZTUzY2Y5ZGU3YzMzMDkzNjJmNGM3ZGUwNjc1MTc1MTc3MjEyYTYgbGVnYWN5LXRydW5rCisxOTg1NCAyYjkzNTRmNDg1MmZhYWIwNWZkODM3M2MyMGE2M2ZmODkzZGI5NDY4IGxlZ2FjeS10cnVuaworMTk4NTUgYzFlMTk0OWYzOWZlYTIxNTJlNWJmZjhhMWVhYTkwYjczZWNhMzM5YyBsZWdhY3ktdHJ1bmsKKzE5ODU2IDY3MDJjMGRmMTZiNjY4YWEwM2RlNzZmODRkM2ZhYzhiNTFlMWE1ZWIgbGVnYWN5LXRydW5rCisxOTg1NyBjNzlkYWI2NTJlYTg0NDEzYzhjMzRiNzVmOTFkNjhmYTNhY2Q2YzYwIGxlZ2FjeS10cnVuaworMTk4NTggZDZlY2U3YzNiMzVlYWY2YTVlOWQ3ODg5NjBmYmZmNjUzNzdkZDk5MiBsZWdhY3ktdHJ1bmsKKzE5ODU5IGY1Y2I2ZDY2YTk3N2JkZTMzMDg3NDRjMDBkMTIxNjI3MjkwMjU2ZWIgbGVnYWN5LXRydW5rCisxOTg2MCAxYTVhMDNlMmRhNzM5NjllMjI2NTVmZWNkNmUwYzUzZGE4ZjQzODFjIGxlZ2FjeS10cnVuaworMTk4NjEgYzVhNDE3ZThkODRjODM2Mzc0YTI5MGMxZjA4N2RlZjgyYjkxY2M0ZiBsZWdhY3ktdHJ1bmsKKzE5ODYyIDYxYzlmYTk0Y2U5ZDlhNGFkOWExODBjYTU4NmJlNDljMGRkMTAxYjEgbGVnYWN5LXRydW5rCisxOTg2MyAxYzk1YjZiMDZhZTMxZDI3YTVhYjQxNTg2OTUyYWQwNzlhNjY4MzBkIGxlZ2FjeS10cnVuaworMTk4NjQgNDE1Mjg1NWVmOWE4YjYzNWE4NDEwMTBkZmUzNDk1N2FmNWUxMWZkOCBsZWdhY3ktdHJ1bmsKKzE5ODY1IGE5NzVmMmMxNTRjMDYwNDU5OTkxM2I2M2NlMWYxYTExZDc2ZWFkNTggbGVnYWN5LXRydW5rCisxOTg2NiA3YzdjY2ZiNWRiM2VmMTM3NWJjNjcwN2Q4YjdmZTZjMmNjMzI0Yjc2IGxlZ2FjeS10cnVuaworMTk4NjcgMWRkYzcwZGQxZDFiYmFkMDMxOTg4YmMzNTM2MTYyMTQ3ZTgwMTE2YyBsZWdhY3ktdHJ1bmsKKzE5ODY4IDg2MzE4NzMzZmU3MDkzNTlmYTcxOTljZGE2YmYxMWFlNjQwZjRkMWUgbGVnYWN5LXRydW5rCisxOTg2OSA0NTljOGVmMGEwMTAzNTk4MzQ5YzA1MzNkY2M1ZmQ1NjMyOTRmZDQ2IGxlZ2FjeS10cnVuaworMTk4NzAgOTEwNGVkMzhhYzA1MWM5ZDUwOTFhZGMyZDE5OWJlOTRmNTc3MDVhZCBsZWdhY3ktdHJ1bmsKKzE5ODcxIDQxYjkyNDllNGQ0ODYzYmQ1YWEyYmFjNzYyYTM1ODc5MTViM2NhMTAgbGVnYWN5LXRydW5rCisxOTg3MiA4NmZkNzIzZjI5Mjg2YTJjM2ZkNzM2NzM3N2Y3MDdiZjg4NTUyMTZmIGxlZ2FjeS10cnVuaworMTk4NzMgNGY5ZGI4MzQ4MjVjYWEwYzNmZDhiMTZlZDY3ZmI3OWFjZTk5MjE1MiBsZWdhY3ktdHJ1bmsKKzE5ODc0IGVlZTdkMGM1YWU1OTJhZjRkZTk1MGZiNzJiMzYyMDk0YzE4YmE1MjMgbGVnYWN5LXRydW5rCisxOTg3NSBlNTllZGE1MjVmYzFlN2I1MmI3NDVlYjNmOGYwYTBmY2RjMGJjZDdjIGxlZ2FjeS10cnVuaworMTk4NzYgMmRjM2NhMWQ4OTBjNzczMTdlNjM0Y2RiNjU1YTAzM2MxOWExNDQ3NSBsZWdhY3ktdHJ1bmsKKzE5ODc3IGYzZmIwNWJmZWVlYjEzNWM2ZTkyNjZmNjEwYmJlMjk2N2EyNWQyNzggbGVnYWN5LXRydW5rCisxOTg3OCA1MzRhOTNkODJlZGNhMWFkZmIwZThlMGNlNjZhODAxOWQ2MjczMDM4IGxlZ2FjeS10cnVuaworMTk4NzkgYjdiMDQ4ZGExNjczNWYwNGMxNjBjMWQ2MTIxODIyYWI2YTE1YzcyOCBsZWdhY3ktdHJ1bmsKKzE5ODgwIDU0ODcxNmUyZjFmMTNjMzhiOGI1ZmFkODJhZTAwZjgzOGUwMzY0NzAgbGVnYWN5LXRydW5rCisxOTg4MSAzYjQ5NGM1YzYyMzRkZWFkMTFhMzViODY3NjEzOTgyNGQ0M2M4YjY5IGxlZ2FjeS10cnVuaworMTk4ODMgNGMxN2NiMmM2MjFlOWJkMDlhYmI3YmIyMDkwNjY2MWRlOWEwYTJlOCBsZWdhY3ktdHJ1bmsKKzE5ODg0IGExZGQwYjA3MDlkMjA2M2ZmM2ZmNmNlN2Q1MDdhYjA1NTkyNDZjYWMgbGVnYWN5LXRydW5rCisxOTg4NSA5OWRlNGJmMmI5ZTU1MTkzYjI4MGE3MGNhOWQwOWIyZWUwYTMyZWZkIGxlZ2FjeS10cnVuaworMTk4ODYgZDU2ZDc3ZjkzNzNiZGVmOTliYjNiZmY4MTA5ZDNmZmIyMjEwMzllMCBsZWdhY3ktdHJ1bmsKKzE5ODg3IGRiNTU2MDQzNTNiM2EyYTRkYTJjOTM2YzIxN2E2MzY2YTk4MTY1NjggbGVnYWN5LXRydW5rCisxOTg4OCA4ZWFmNzRhMTExZWJkOTIwNTk4M2FlODEyYTcxMTkzMzgwMWNmNzQ2IGxlZ2FjeS10cnVuaworMTk4ODkgZDE1YWNlMzIxMTAyNjZmNmUzZDUwMGJhOThiNGYwMjk5NTlmMjZkZiBsZWdhY3ktdHJ1bmsKKzE5ODkwIDZiZGY1NjNjNzYzYjNhNGQwMzM3NzBjOTdhNmE1MTVhM2E5M2RmNjcgbGVnYWN5LXRydW5rCisxOTg5MSAzYzY1MGQ5YzM4ZTc0ZWVhYzNmZTQwZjdiZmM2N2Y4MjdlNDVjNDk0IGxlZ2FjeS10cnVuaworMTk4OTIgMTljMmY1MGU1Mzk1NzFjNGVmOWRhNTcyYzY4NjY5MWI2NTY2YzE1YiBsZWdhY3ktdHJ1bmsKKzE5ODkzIDNmNWE1NGE4YTFmYjUwNTg5NjdhM2YwYjBkZGZkNzgwOWFhYWFjNDggbGVnYWN5LXRydW5rCisxOTg5NCA3YTM2ZjYyMDFjOTQwMDcyZDJmMzYxYWNiODAyYTljNDRiYmNiNGY0IGxlZ2FjeS10cnVuaworMTk4OTUgODk1NDZiZGRjMjJjYzBkZWVmMWI0ZGM2NmMyNjQwMjBjOWUzNDIzZCBsZWdhY3ktdHJ1bmsKKzE5ODk2IDk1M2M1MGYxMjE4NGFhZTJjNDAyMmI0ZGJiZDI2NzRiNDRlMWU1NGQgbGVnYWN5LXRydW5rCisxOTg5NyBmMGVmZGNkMjQ1MTJmYjhkNGI0YjRmMGUwNjAzMDc3OTBhYzRmYWEyIGxlZ2FjeS10cnVuaworMTk4OTggY2Q3YWM0ZDlhZGQwMjA3OWEyOGI5NzI4NjViZjdkYjkzODU5MmE0ZiBsZWdhY3ktdHJ1bmsKKzE5ODk5IGUyMWQ0YzIwNTY1ZDAwY2E0MjQ3MzM0NGE1Mjk4NGEzN2QwNmVlNmMgbGVnYWN5LXRydW5rCisxOTkwMCAzY2ZiYmNiZjcxMzRkMTE3YjgyMTM4MGZiMmI1NTZkYmE5ZGVjYTUzIGxlZ2FjeS10cnVuaworMTk5MDEgOTcxZmY2YjU4ZWRiZmI3ZTY2ZmI1MTRlZTI4MTQ4MTljOGMyZTBmMyBsZWdhY3ktdHJ1bmsKKzE5OTAyIGY0MTQ2Y2EwZjI5MjFlMjBiNGQ3NDJjNThmNzMxZjE4MTI4MDg1MDAgbGVnYWN5LXRydW5rCisxOTkwMyAyYTgwMTkxZDEyMDMwZTgzOTgxYmQwNzlhMDNiYmI1MmYxMzZmZTMxIGxlZ2FjeS10cnVuaworMTk5MDQgNTFjNmEyY2IwM2QxYjQxOWUxZDRhNmE3YTMxYTM4YjkzMzBjYzg0MSBsZWdhY3ktdHJ1bmsKKzE5OTA1IDY1YTYzOGEyNGY3ZTk1NGY0ODA3N2JiZWQzODU3MDc0YjYzMWM5N2EgbGVnYWN5LXRydW5rCisxOTkwNiAzZWM1MDA0MDNmMDEwZDhlZmQ1NDMwNzFjZWVlYTM5ZDFkMDI3YzU4IGxlZ2FjeS10cnVuaworMTk5MDcgYjQwYWIzMTA1NTIxZjE5NDVjZGRiNzVjOTZjYWFjNTMzMTMzMjkxYyBsZWdhY3ktdHJ1bmsKKzE5OTA4IDFlNThkNzgyYzA5YWM5ZjNmYzEzNWI5NTQwYzNjNzVjZDhjNTliOTMgaXRlci1icmFuY2gKKzE5OTA5IGQ1ODExYWY4YWNmM2RkNGUzMjhiZGJkMTZiNzI4MWM3ZGFhZjg0NDkgbGVnYWN5LXRydW5rCisxOTkxMCA1MzNjYzkwN2VkYmQyY2I2MTM3OWRkNzUwNDBmMDVhMDg3MjUwYjMwIGxlZ2FjeS10cnVuaworMTk5MTEgYmE4MWQ3OWRjM2EzMWRhZjU3MDFmN2ZlMjRmMmFmZWUzOWE0OTRkNSBsZWdhY3ktdHJ1bmsKKzE5OTEyIDdlMWU2NzI1NTA5ZTZjNTk3MWM5ZTk0ZDgyZTRkY2Y3OTQyZDQ3ZDQgbGVnYWN5LXRydW5rCisxOTkxMyBhZDc0MTc0NWNiNmMwOTQxNjI2ZmNhNTQwNGIzMmFlZWE0MmJjYTVlIGxlZ2FjeS10cnVuaworMTk5MTQgOGEzNDgzMDgzMTZkNTQ0ZmIwNjgxZWM0OTQ4YWQ4MTMyZDA2YzI3ZSBpdGVyLWJyYW5jaAorMTk5MTUgNDIwYTA3ODFiYjkyZjdjNjAxMWM3ZTg4YTY4MDIxY2MxZjY1NDRjZiBsZWdhY3ktdHJ1bmsKKzE5OTE2IGMxZWRiMTRmMDQzYmJiNzMyYTJlZDI0NzFjMDY5ZWFiZWU3NDJjZmIgaXRlci1icmFuY2gKKzE5OTE3IDQwYWQwYTA3NjFkMjRmYTY1NGIwMTViZWQ4N2IxNDBkN2M2YWYyMjggaXRlci1icmFuY2gKKzE5OTE4IGYzOTRhZjhjNTgwZjA1NTFlNDYwOTNhYWQyZDQ5NTlhNDdlNjkwYzMgaXRlci1icmFuY2gKKzE5OTE5IDYyZjc0YzI1OTc2MmRmZTVlNWVkMDQ4M2JjZDIwYjY0YTkyMTFkNzMgaXRlci1icmFuY2gKKzE5OTIwIDNmNTU4N2MyOGE1MGY5MTNhN2MwZDA1Y2JlZGRkMjg4ZTI4ZWQ2N2IgaXRlci1icmFuY2gKKzE5OTIxIGY0ZDQ5OGE5ZDk4OTAzZmJjMTY4MTAwMmRlMWNlMjhiZjAxMGJlMjcgaXRlci1icmFuY2gKKzE5OTIyIDUyNzk3YjRiMzc1YmM5NDI2Y2QxYjA3NDJlYWJkZDJlZTM5NWQzODMgaXRlci1icmFuY2gKKzE5OTIzIGQyN2Y4NDRmNmNmZTU2MmUyNzNhNThlMDk5NjQ4ZGNlMTY2ZmZmNWQgaXRlci1icmFuY2gKKzE5OTI0IDk4YTJiYjkwNTIwZDZjZjVlMjgzMDg4NzQ4YmI1MWZiODVkMDI4ZjEgaXRlci1icmFuY2gKKzE5OTI1IGFmYjMzZmVmMTRjYjhlMzZlNGNmNGJhODgxODRmMDUxZTJmNmE4YWUgaXRlci1icmFuY2gKKzE5OTI2IDNhODY2NmUxMjlhZGY5ZWI2ZTBjNmIwNDhkN2E0ZWFiYjQxNzkxY2UgaXRlci1icmFuY2gKKzE5OTI3IDIyMGI2MjczOGQ3NDI4MTMzOTAyYzQzZWQyZjUwMGFmNjE1ZjhmNjMgbGVnYWN5LXRydW5rCisxOTkyOCA1ZDY4YWZjNTIyN2M5MWIxYmYzZGYyYWE2OThjMTkyMTUxMTgxNjVkIGxlZ2FjeS10cnVuaworMTk5MjkgMTcyZDJhMjgxNmJmYTNhMGFmZWIxMjZmMGJlMDM1N2Y0Mjg5NDUxMiBpdGVyLWJyYW5jaAorMTk5MzAgMDk1YjgwZDJlNzg1ZDlmOTIwYzllYjI0NGQyYzcyZjY5ZWYzZTgyYyBsZWdhY3ktdHJ1bmsKKzE5OTMxIDJlZDdjNTg5NDNlNjExMmFmMjVmOWJhYTdkY2NmODRhNzFlOGU4YzQgaXRlci1icmFuY2gKKzE5OTMyIGM1N2ExYjY3ODFiMDRmYjQ1MTdkMzFlYTk4N2E2YWYzMDY4N2M0OTcgaXRlci1icmFuY2gKKzE5OTMzIDdiYjEyNTZiNTA2ZGI0NjRkZThhYzk5NDRjZmJiNGIxMWY2NTdiMjUgbGVnYWN5LXRydW5rCisxOTkzNCAzMzc1YTJhOThlNTY2ZmQxM2U0M2MyYmJmNjliZjgzN2FkY2QxNWRkIGxlZ2FjeS10cnVuaworMTk5MzUgZWI0MzY2YjNlMzkxYWE5MGMzYzgzNzEzNTU4ODkwY2E1Mzk1ZTExYyBsZWdhY3ktdHJ1bmsKKzE5OTM2IDZjYTcyZDcxNTM2ZTBjN2YxZGVlYjg0ZjY3ODU3MTgzZDQxMGM5MzUgbGVnYWN5LXRydW5rCisxOTkzNyBmZjc1YzM4MmYwZDMyZTBmNzJkMzkwM2RkYjFhODY5NmUxNDNkNTAyIGxlZ2FjeS10cnVuaworMTk5MzggMWY3MDBhNzIwNmIyZmM0NGZiM2E3MmVjMWQ5NGIxNjIwY2RhYTAxMCBsZWdhY3ktdHJ1bmsKKzE5OTM5IDVlNmFiOTM5YmRiY2M0ZGE2YzRlZGQwNGI5OTc5ZmM5ZThjNzcwOTEgbGVnYWN5LXRydW5rCisxOTk0MCBiZDQwYjEzZmE1YWJmYWI5M2RhNGEzNTVhNjg1M2FmZTEwNmIzOWJlIGxlZ2FjeS10cnVuaworMTk5NDEgN2ViNWE2ZThjOThkNDUwY2NiZDM4YjA5ZGNhZjY3ODVkMDc5ODE2YSBsZWdhY3ktdHJ1bmsKKzE5OTQyIDdhNDE3NWUxMDYyNmNmNzQ5OGMzOTI4ZDQxMWU1NThmODk3MzUxMzQgbGVnYWN5LXRydW5rCisxOTk0MyBkNThlOTNkYWZiOThjMmZkZGRmNTA1MWVmMzY4M2E2ZGEwNzEzYzYyIGxlZ2FjeS10cnVuaworMTk5NDQgNGU2ZjE0ZTc1NTdlOTkwMDU0NzZjNGEwOTBiZmYxMDgxZDQyZGQzYyBsZWdhY3ktdHJ1bmsKKzE5OTQ2IDkwZTQwNjRjYTA0NWVjZThkMWE5ODUwMmQ4MmM3ZjAwNmRlZDRlZGUgcmVsZWFzZTIwLW1haW50CisxOTk0NyA0MTVhMTliYjE2NzVjNDc5NGMxNjhjNjRlYjhkNDI1MmRiZmY1MWE4IHJlbGVhc2UyMC1tYWludAorMTk5NDggNzQzMjk2Y2UwNTJiMTg3YWEwNzQzMGFmZGVhNTQ2MDY4YzkzYTY4MCBsZWdhY3ktdHJ1bmsKKzE5OTQ5IDE0YjdhN2I4ZDU4ZGJiZjJhNGRlMmRiYjE4NGY2MjFlODViNzI0OTIgbGVnYWN5LXRydW5rCisxOTk1MCA3OTdlYmI3MDMzZDcyNmVmMGU5MjhlYzQ4YjlhYWVhNDE0MGY3ZWEwIGxlZ2FjeS10cnVuaworMTk5NTEgYTEwNjZlNWExMDY1Y2FkNDE2ZWY0YzFiYWZmOTg0YzFkZWQzNzAyZSBsZWdhY3ktdHJ1bmsKKzE5OTUyIGRjMGY2MmU3NTg4YjNlODk1Y2RkNGQ4MzQ4YjE2NDc2NmZjN2QyNTYgbGVnYWN5LXRydW5rCisxOTk1MyAzZjUyNzZjYmJjNGRhMjQ0YWFmYzQ4ZjkyOWVjNjVlMjFhYWY5YmNlIGxlZ2FjeS10cnVuaworMTk5NTQgYTU4MTRmNjIwZTg2ZDlhNzAzZDY5N2M5ZjAyY2RkODhjOGMxN2I5ZSBsZWdhY3ktdHJ1bmsKKzE5OTU1IDMzYzg2ODBiM2IzNTQwNDZkMjMyNGE4NmMxN2ZjMmFkOTk5MDUyYTkgbGVnYWN5LXRydW5rCisxOTk1NiBkN2UwMmI5ZWUxNzljMWU0M2FkY2ZkNGE5ZGFjOWQ3OTAyMjUwNzJkIGxlZ2FjeS10cnVuaworMTk5NTcgNTQ2OTIyZmE4ZDk5NDkwYTM0MDIzZDg2ZWY3MWExY2I2MGIyZWNhNCBsZWdhY3ktdHJ1bmsKKzE5OTU4IGRkMDRiYmZkNWE3NmNlZWFhMDUyZDQxMzFhMzJmOGNhYzFmMjg1YzcgbGVnYWN5LXRydW5rCisxOTk1OSAyYzFiZTc5MjRiMDRhZmFmNzRiYWM3YzNjNzdlMTIwNmJlNDU4MzZiIGxlZ2FjeS10cnVuaworMTk5NjAgMjZjZGVkNTljMTcyNTNmOTdjNjVlMTRkM2M3MjQ5MGUyZjNkZmMxMCBsZWdhY3ktdHJ1bmsKKzE5OTYxIGViNGE1ZmYwZjcyY2M4NTM3MjlkYzliZGYzN2ZjMjMzYTVlZDNkZGMgbGVnYWN5LXRydW5rCisxOTk2MiBlZTY3OTNhZTA2YzE0ZTAwMzg3MjhiNjRmM2NjZjdhMWVmZmRlMTIzIGxlZ2FjeS10cnVuaworMTk5NjMgYjY1MGQ3ZGFhNTkzY2M5NmIyMzMwMDZiMTBjMThjN2IzY2M4NjE4MyBsZWdhY3ktdHJ1bmsKKzE5OTY0IGI0NWFlOGM0NjdhYWY0NGQwYWViY2M4MjI3MTAyNDY3MTY1N2Q3NzQgbGVnYWN5LXRydW5rCisxOTk2NSA0MzE3Mjg4OWU4ZTY2YjE4OThjNWVmMjI3NjM0Mjk1MWI3N2JiNmFmIGxlZ2FjeS10cnVuaworMTk5NjYgNDYyYjhkZmU4NzUzOTFlOTYzMTYwOTYyN2NmNzk1Y2IwY2ZhODFkNCBsZWdhY3ktdHJ1bmsKKzE5OTY3IDgzMjNiMDk4YzZjZTBiMWM2MzExZDJhZTUzZDI4Y2MxOGJkNDQ0YWIgbGVnYWN5LXRydW5rCisxOTk2OCA5MDc5ZjcwYTViODNmOWYyMjhlNWRhODI0N2Q2NjA0MGRjYTU3YzBkIGxlZ2FjeS10cnVuaworMTk5NjkgODVkNzRmMDQwNzEyZTY0ZGE1MzA5NDhmZWMwY2FkYWMwNGVlMTg3NSBsZWdhY3ktdHJ1bmsKKzE5OTcwIGY3ZTJjM2Q5YzM4NzkxZDMxNzljYjU0YTM0MTFhMDU2Y2JlOGFlNGQgbGVnYWN5LXRydW5rCisxOTk3MSA3ZTE4MWViYTZiOWJkNGQ4MTRiOTRiMDExZTA5NDEzNWQ2YTEzZDViIGxlZ2FjeS10cnVuaworMTk5NzIgYmMwNTU1YmUyMjEyM2E0ZDVhOGRjMzI0Y2I1Y2MxODg3ZDQ3ODI0MyBsZWdhY3ktdHJ1bmsKKzE5OTczIDUyY2IwYzVmZGYyMzgwOTkyODM5MmQzMjM0NjFhZDFjNmEyMmNlMzMgbGVnYWN5LXRydW5rCisxOTk3NCBmMjcxN2IwMTM3ZDA3Mjc0ZGVhYWZhNTAxZjczNTlhMjFiODA5YzI4IGxlZ2FjeS10cnVuaworMTk5NzUgNjQzNGRjNzc2Y2I5NzVhMmMzNTk1MDY0YTNmN2RiOTAwZmFjZmQxNyBsZWdhY3ktdHJ1bmsKKzE5OTc2IDEzODBhNTJmMWEyMTg2MjkwZjllYTVjYzI1OWEyOWM3ODU3NTI3ZTYgbGVnYWN5LXRydW5rCisxOTk3NyBjZThhYzM3ZGIzMDBhNWE3NDA0OGY4NTdiMzliYjQ1YzQ3ZDM2NDBkIHJlbGVhc2UyMC1tYWludAorMTk5NzggNmE1MjdiZTRjNGQxOTA3ZDg0ZDllYjQzNjIwZTU2ODhmM2M4ZmY5NSBsZWdhY3ktdHJ1bmsKKzE5OTc5IDNmMjI4MWUyNGUyZGM0Y2M5YTYxOTlmNGQ5NTdhNWYwNDUzNDI3MmQgbGVnYWN5LXRydW5rCisxOTk4MCBjMDY0YzBkM2M0OWI5MzYyMjQ5ZjZkMWJjZGI0ZTY2ZWNlNTA2NzNjIGxlZ2FjeS10cnVuaworMTk5ODEgNzQwNDY3ODIwNzJkNjA4YzhhYzBkNzljY2ZmNDk5OGU5YTc4MmM0MSBsZWdhY3ktdHJ1bmsKKzE5OTgyIGIxYWJiMjYyMjk3OTNkZjdjNWZkZGJlOGViOTMzMGNhM2VhNjBkYzggbGVnYWN5LXRydW5rCisxOTk4MyA3ZTkzOGYwZTlhNDk3NTQ4ZTg5OWQ0MmE2ZDU4N2U4YjQ2NDRjNmVhIGxlZ2FjeS10cnVuaworMTk5ODQgNzcxOTY1NTdmZDMxNjdjYWU0MzNkYjgwOWNhNzc1MzFjMWRiNjJkMyBsZWdhY3ktdHJ1bmsKKzE5OTg1IDljZmQ5YzMyOTdkZDQyOTNjNjAyM2M2YjBjNTRlYTg3MTg3YWYwMDEgbGVnYWN5LXRydW5rCisxOTk4NiA0NWFkN2E0NjhiYTJhMzUzYmZjNmQ2ZjI0OGFhYjg1ZWM2YTgzNWQ3IGxlZ2FjeS10cnVuaworMTk5ODcgZGQ1YTFiMjgwNDQwNzljMDYyMmYwNWU3MDNjYWQ2Mjc0NDBkNGMzNiBsZWdhY3ktdHJ1bmsKKzE5OTg4IDU3OWFjOGUzNWY1YjVlODI3Nzg3N2Y1NTVkODM0ZTg5NTFlMDQ0MjAgbGVnYWN5LXRydW5rCisxOTk4OSA4ZjMzOTI2OWUwMjdkNmY4OTE2YzNmM2RlZDZjNWQ5YTAyNWJlYjc0IGxlZ2FjeS10cnVuaworMTk5OTAgYzIxNGYzNzIwNjU4ZTJiODY1MzVmMDg2MmJjOTc0N2RmMDY5ZjQxYyBsZWdhY3ktdHJ1bmsKKzE5OTkxIDk4OWZlZDI4Yjc0ZjMzYTQ0OGUwNGY2MzljZDg0ZjczMWI0NzIwNzYgbGVnYWN5LXRydW5rCisxOTk5MiBkOWVlNTZiNmRiMjZhNTQ3ZmQ3M2Y4YzVlZDY4ZTZlYzc5ZjA5NDFjIGxlZ2FjeS10cnVuaworMTk5OTMgZGNmNzNmMTBmN2NjZjAzZDc5Y2RmMTFiZDQ4OTE1MTUxODA1NjI4NyBsZWdhY3ktdHJ1bmsKKzE5OTk0IDliZjM3NDkzMzg3MjA1YWNmM2RkYmVhN2M4MGE3NDBkZjJhMWYzYTEgbGVnYWN5LXRydW5rCisxOTk5NSBlZGRhNGE0MzIzOWJjYzMwYjUwYzIwMzA0ZTg4YTY3ZWI3ODQyMjRjIGxlZ2FjeS10cnVuaworMTk5OTYgYTM4Y2NlM2Y0MWI0MWRmYzIyMGRhMzU2YzVjZjBhNTA2NTFlZTVhMSBsZWdhY3ktdHJ1bmsKKzE5OTk3IGE0ODhhNjNjYjg2NzRlNmI3MDQyNGM5NjcwMzE4MmU0ZTY5OTk5ZTMgbGVnYWN5LXRydW5rCisxOTk5OCA4ZmYyNGFiZWIzODgxMTBjYjRjNTgyNzU4NWFiY2RkOWVmMzQwZWQxIGxlZ2FjeS10cnVuaworMTk5OTkgMTgyM2ZhMjMxNTIxNWMwNGU4NWUwZDRhMDJkMGUwOWQ4YjFjNDQ2ZiBsZWdhY3ktdHJ1bmsKKzIwMDAwIGFkYzhhNDFiZWU5ZjY5NzY5MTNiMmIyNTE5MWUxOTQ3NzZjZTI4OTUgbGVnYWN5LXRydW5rCisyMDAwMSAzM2Y3NzY5YTIxOGVkN2I1NGY2YjdhODVkOWE1NjI1YjAyODA1Zjc3IGxlZ2FjeS10cnVuaworMjAwMDIgN2ViOGIyNDBkZDZjNGIwMTc3NWZhODliY2I4ZTBmYTM3YzUwZWViYiBsZWdhY3ktdHJ1bmsKKzIwMDAzIDdlZDNlN2EwOGEzMTAxOWRjODM5M2Q3MDI0YTcxZjQzMzI3YjQ3OGQgbGVnYWN5LXRydW5rCisyMDAwNCBiZjY3OGExMWMyMWFlYzdkMTlmYjc0NThlNzBjMzNhM2I4NTEzOWIxIGxlZ2FjeS10cnVuaworMjAwMDUgNzZlYWIyZWJjZTU4YTQ0YjQ4ODBlNWUyY2YzYTAyMjA5ZjY3NmY3NyBsZWdhY3ktdHJ1bmsKKzIwMDA2IDQ4NjNiNTk1YmRhZTg2MDAxMjQ2ZTE0YmYyMTMzM2I1ZDE1OWFmOWIgbGVnYWN5LXRydW5rCisyMDAwNyA2ZmUxM2QwMDhlMjVmN2E5MzJlMzNjZjAxNTBlZGFjOTA2ZTFkMTdlIGxlZ2FjeS10cnVuaworMjAwMDggZTEyMTRmOWUxMmEzY2NmMTg2OGUzZmQ1ZjI1OGZkMDI3NDdjZGFlYyBsZWdhY3ktdHJ1bmsKKzIwMDA5IGQzMWFkZDk5YTg0NjhjYThjYjEzMDA1MmNkZjRkNmFmYTM5YzBlZGEgbGVnYWN5LXRydW5rCisyMDAxMCAzM2Q4ZGQwMmFhOTkxMjkxOWZlNjJiYzc4M2E2M2Y4NjczY2JlZjMxIGxlZ2FjeS10cnVuaworMjAwMTEgZjlhMDdlOTk5MDdlNmViOTc0ZTQ5M2E0NGVjNTI5YWFhN2ZjMWExOCBsZWdhY3ktdHJ1bmsKKzIwMDEyIDNiNmVhNGNmZWVlMDYyZWNiYmMwZjQ2ODY5NGU5NjRjZWZhMjE4ZTggbGVnYWN5LXRydW5rCisyMDAxMyA4NDhmMDg1NTk5MTZkNGE3MzE4OTZkZjMyODNjNDAyNWExNGQxZDE3IGxlZ2FjeS10cnVuaworMjAwMTQgNjQ2ZWMyYTRkN2Y0ZTBjYjI3NjA5MDI4NjEyOTBmNjdjOTlkZjY4YyBsZWdhY3ktdHJ1bmsKKzIwMDE1IDllNmU0ZjVlNTYwNDVmODY0MzUyMjI1ZDllNzBkN2M0YzYzZDVjMmQgbGVnYWN5LXRydW5rCisyMDAxNiBkYTZjNjYyOTgyYjY0NDQzYWFlMTE5ZjlkZDYxNjI1NjY5NDQzMWQzIGxlZ2FjeS10cnVuaworMjAwMTcgYTgzMDFkNGVkMmIxYjk1ODk2ZTBiN2E0OTllOGVmOGMyYjcwNjdjOCBsZWdhY3ktdHJ1bmsKKzIwMDE4IDIwNTRjZWEzODc1NGJkM2JhZGJjYTNmYzQ0MDNjNDNmYmNkNDZhM2MgbGVnYWN5LXRydW5rCisyMDAxOSAxYjg3NDVmYWEyZWQyYzlmMTRiZWFjNWVjYzI1YjM3MzJmNzg3YTU4IGxlZ2FjeS10cnVuaworMjAwMjAgNTRiNmQyOGE2ODc4YzliMTAyYzY4ZWQ0YmYzOTgzNDgxYjJlNWFiZiBsZWdhY3ktdHJ1bmsKKzIwMDIxIDExNDYwNzBmNDdlYzZiN2VhYzQ0NWQ1Yzg2Njg5YWE1NDNlMTk3NTcgbGVnYWN5LXRydW5rCisyMDAyMiAzMmJjYjRlMjEwMDU0ZmYxODJmNGNiNTEyODYzNDUwNzkyMzc1OTg4IGxlZ2FjeS10cnVuaworMjAwMjMgMGIzM2ZjNjdjYTRlNDlkN2UzYWY0NGNkMDE3YjAwZGExNzM2ZjM0ZiBsZWdhY3ktdHJ1bmsKKzIwMDI0IDFjOTBhMWNmNzk1Yzk2ODBiN2U0NzhjMzhmN2NhYzkyZmMxZWUyNDkgbGVnYWN5LXRydW5rCisyMDAyNSA1NTIxOGUwNDk1YmM0Nzg0ZjNiYTdlYTU0NGM4ZDE5NDI4NjEzYmI1IGxlZ2FjeS10cnVuaworMjAwMjYgZDBmZDYwYzU5YWVmYWQwYThlZjhlYmI5OGI5ZjIzNGQ5OWM3ZGY1YyBsZWdhY3ktdHJ1bmsKKzIwMDI3IDBmYTJjMDUxODhhMGI3OWM2ZTkyZTQwNTRlNjI3ZTk1ZjhhNWM3ODIgbGVnYWN5LXRydW5rCisyMDAyOCAyMDZhOWYxOTc4ZTUwMGE4NjljZmEzZjgyMDVmZDYwOWE2N2RmNThiIGxlZ2FjeS10cnVuaworMjAwMjkgMmVkODQ1ZjgxYjBjNWRmODg0ODE2ZGEyZjA5YWRmZTA0NjMzNjExZSBsZWdhY3ktdHJ1bmsKKzIwMDMwIDgxNmQ4NjAwMjY4MzFiMjQwOWRmMDY1MzM3ZGQ3YzA2MzY5YzAyMGYgbGVnYWN5LXRydW5rCisyMDAzMSA3MjQzZGViMDIwZTg3ZTMyYzA3NWJiZDQxNDllNzhiN2NmZTA1Y2IwIGxlZ2FjeS10cnVuaworMjAwMzIgYzliNGVmZjE1ZGNkYWNmNzkwNDg0NWNiOWQ3MDBiNGE1NWYyNWQyMCBsZWdhY3ktdHJ1bmsKKzIwMDMzIGY1OGE2NWQ0Y2MyMzc4MzdlZDU0ZjczYzZiMTQ0NDg5MTUxMTVjODMgbGVnYWN5LXRydW5rCisyMDAzNCBmNDI5ZWU5NDQ4YWFkNGQyZWIzNzY0NTUzYzc1NTRmM2VjNDc2Y2MzIGxlZ2FjeS10cnVuaworMjAwMzUgOGZiMTBhZmZiNjE1N2FjZGU1N2VjZjgyMWZiMTNiOTdlNWEwM2RjMiBsZWdhY3ktdHJ1bmsKKzIwMDM2IGMyZTRiYTNjODVjYzkyY2I4MzkyOTIwNzBhYmJmYjdhNDJlYTE2MGIgbGVnYWN5LXRydW5rCisyMDAzNyBiYmY1ZWEyYTIyZTU1OTdiOWQ3YzRkYTU5ODZlOWJmYWFhMmZkOTlmIGxlZ2FjeS10cnVuaworMjAwMzggODM2ODQwNDM3M2VjY2YyNjM3ZjNmYmUzMDA1MzllNjUyNGUwMzIxYyBsZWdhY3ktdHJ1bmsKKzIwMDM5IGYwN2JjNGY4ZGI5ZTY5ODdjZDJmNjY3NWZmMjMxMzk1Mjc3NmYwNDkgbGVnYWN5LXRydW5rCisyMDA0MCAzNDljODc4ODYwNGUyOTMyNDliOWVlYWQ5MmIzZmYwYzMxYzQyOWY1IGxlZ2FjeS10cnVuaworMjAwNDEgMjA2ODA5ZTI1YjUwZDJkZGUyMzg4YWE4MTkyOWI5ZTU1YjNlMWZiOCBsZWdhY3ktdHJ1bmsKKzIwMDQyIDUwODA3YzQ2NTAzNGI2OWEyM2MyODQ2NmRmNzBhZTg2MWVmNDI0MDcgbGVnYWN5LXRydW5rCisyMDA0MyBjNzRjNGJkY2I0MTEyMmYzODA4M2E5ZGFkZDk5NjgwZDM2MmU2MWQ2IGxlZ2FjeS10cnVuaworMjAwNDQgMjYwODY4Y2FlMWExZDVkZmQ4NzdmYzRmMWVmZTg5NmY0ZTY0ZWU5ZCBsZWdhY3ktdHJ1bmsKKzIwMDQ1IGNlOTBmNTY3ZmE0MjAyYTU5YzRkN2FlMTE3MWI5ZTA3Yzc5NWI1MzQgbGVnYWN5LXRydW5rCisyMDA0NiAwYjhiNmY4NDA2ZGNmYjgwNmQyZWQ4ZjU5MGViZmY4ZjQxZTZmYjAxIGxlZ2FjeS10cnVuaworMjAwNDcgM2I4YTViYmZkMmU1NzIwZDZlOTYxNDBlNGM0MGQ1MGJmNDk1OTFhYSBsZWdhY3ktdHJ1bmsKKzIwMDQ4IDE1NTA4NzIyNDllOWU4NTE5MzEwZjFiZmZjYzliNzg0OWQ5NDA3NmQgbGVnYWN5LXRydW5rCisyMDA0OSAxYmUwZDFjNTc4MzQwMjVkZDVkMWMzMzVkMmIwOTBmZjUwNTcxOWZhIGxlZ2FjeS10cnVuaworMjAwNTAgOGM2ZjIyY2VmODc4MjJkNmUwMGFiNjVlMTFhYTY5ZDJjNTllZmFiZiBsZWdhY3ktdHJ1bmsKKzIwMDUxIGY3MjE3M2M3OTNiNmQ4MzJjYmU0NzdmNjY2NTZmMWMyZGUzNGU5NjggbGVnYWN5LXRydW5rCisyMDA1MiAxMDk0MDU2MWU4OTFjMTAwYzk5MzVhMTlmZTUyODUxMGMwNmI5N2EwIGxlZ2FjeS10cnVuaworMjAwNTMgNzI5MTg5MWNiMGJmNzY4N2NjNWRmMDczYjZlOTIzYmUwNTg5N2E0MSBsZWdhY3ktdHJ1bmsKKzIwMDU0IGUzYjVkMDNlM2Q3ZGI3YzZjZmJiM2Y2MGRlYWM2MmJiMzg2ZTlhYzMgbGVnYWN5LXRydW5rCisyMDA1NSAxNDNlZjg4ZWM4NTYzNGI0NDA2NmU2ZGQ3ZTY3NDU1MmIyNzRhYzUwIGxlZ2FjeS10cnVuaworMjAwNTYgYWQ2ODNmMjBiYjE0MDc1YjFhYzIxMTQxZmYwMzJmZTkxNmZmYmJlNCBsZWdhY3ktdHJ1bmsKKzIwMDU3IGI0NGU3N2ExMjk3ODhkZTViOTA2MjI5YTgyMDlhZmRhN2JlNTI4YWIgbGVnYWN5LXRydW5rCisyMDA1OCBkYzlhMTUxYTBiZDUyYTk2ODJiZDA3NzAwZThkMjI5YjhhMjY5MDIwIGxlZ2FjeS10cnVuaworMjAwNTkgOWRiYWIzZDU0ZGVlZWMzZmEwYzU0NmZlMGFlODliODUyYjBhYzRjNSBsZWdhY3ktdHJ1bmsKKzIwMDYwIDM0NmU5Nzg2MzBhOWMzYmM3ZGUxYmYwNmYwNzY1NzQxMDlmYjA0ZDkgbGVnYWN5LXRydW5rCisyMDA2MSAwZDUyMzU4Y2IyODgzNDE5NTQ4ZDRhN2Y4NTQyNjIyNTE0MDk0OGFhIGxlZ2FjeS10cnVuaworMjAwNjIgZDgwNzQ4OGRmYzdhMTJiN2FlM2ZhYmM5MjFjOTUyNDg5Y2NhMjE0ZCBsZWdhY3ktdHJ1bmsKKzIwMDYzIDk2MjE5NmNlNzIzMTU2M2ZiMDU4NDRmYjYzZTZlOWIxM2Q4ODg2MmEgbGVnYWN5LXRydW5rCisyMDA2NCA0ZjY4ZDNmOGZkYzgyMDA4MDU5Nzc5YTg0NWFkNDg5N2NhZWMyZjlkIGxlZ2FjeS10cnVuaworMjAwNjUgMTA5MDJlY2FiY2E5YzczMGExZGYwZWQwNjE3ZTc5MzgyZjA5M2ZmYiBsZWdhY3ktdHJ1bmsKKzIwMDY2IDczZjQxYjBmZjc3NzVhZmRlNWY0MjZhZjFhMGQwZDBhYTlkNTljM2QgbGVnYWN5LXRydW5rCisyMDA2NyBjZDI0NTVjYjEzZWY1NWM2NWVjNmY1ODQwMWMxZWIwYmVjMGUzZDdkIGxlZ2FjeS10cnVuaworMjAwNjggZTQ5MDc4MTAxYTY4NzQxZDc3YTVmMDRiOGNiNzRhYjUxMjFhN2RlMSBsZWdhY3ktdHJ1bmsKKzIwMDY5IDU5NmVmYTdlN2RmODNjZmFmZDdiYThhNDQxYTMwYTYwNDY5MzlkNzUgbGVnYWN5LXRydW5rCisyMDA3MCA2M2NhY2RlYjgwNDViZDUxOWEyNmQ2ZDZhNzk3MjAwMDE4OTVjYzlkIGxlZ2FjeS10cnVuaworMjAwNzEgNzA3Zjk1ZDA1ZTY5MDc2NGU4OGJkMWNjNGE2N2IyNGRkMDM5NGQyOSBsZWdhY3ktdHJ1bmsKKzIwMDcyIDhkZjBmNjVlMzg2MDM1ODc4MTZkMTk1NzdkYjRiOWYwMWE5OGRhNGYgbGVnYWN5LXRydW5rCisyMDA3MyBhN2JiZjMzZmNlMDVhZTRiYmYwMjI5ZTEyNzk5YmI1ZmEzOTJlODliIGxlZ2FjeS10cnVuaworMjAwNzQgNzkxNmQzMmFhMDgxMjVkOGM5ZGY2ZWRmYzYyZGQyODgzYzhmZjQwNyBsZWdhY3ktdHJ1bmsKKzIwMDc1IDVlZTM1NDNlYTMzZjQyNTBlOTdjODFmZThjODU1NDFmNDZkOTdjZjIgbGVnYWN5LXRydW5rCisyMDA3NiA5ZTY0NjgzNTZhMGIzMzcxNjVmNWIyNWRmMDdkMjU1NmNhYzhkOTYwIGxlZ2FjeS10cnVuaworMjAwNzcgNTZkMTk1ZjIxYjRmZTBkYThlNWFjZGE5ZWVhYjlmNDJkN2VmOWQ0NSBsZWdhY3ktdHJ1bmsKKzIwMDc4IGY5YTMwMDE1ZThiMGZjYjRmY2M3ZjVjZjJjZjc4N2MyZTQxMmU4OWMgbGVnYWN5LXRydW5rCisyMDA3OSBmMmY4ZjNlMmFjMjMxYzFiZjQ5YWNkYzVmMjc0NzY4YzBiMTdiZDFkIGxlZ2FjeS10cnVuaworMjAwODAgZDQ4ZDA5Yzc4N2E4NDlkMTQwNTgyZTc4NWZiYjlhYjQzYWY1OTRkNyBsZWdhY3ktdHJ1bmsKKzIwMDgxIGY1ZDM4YzViMTc1MWUzZDcxNmQ1YzE1NjNhMDg3NDlmODJkZWRkYzcgbGVnYWN5LXRydW5rCisyMDA4MiBkNzE4YzI5M2ExZmZhMmI3ZjRmOTgxOGJjNzA4MjZjMGUxMGViMTA1IGxlZ2FjeS10cnVuaworMjAwODMgYmFjYWM3NWQyMmZkZTllODZhMjRkMGQ2MGE3ODU1MzBkYTMzMGM4YyBsZWdhY3ktdHJ1bmsKKzIwMDg0IGViMDZhMDJlMDUwNzZiZTRjZTE2ZDRhZDk5MDY3N2RiMWEwNDNjMzkgbGVnYWN5LXRydW5rCisyMDA4NSAxMTUzNzk2ZDIxYzI0MDcwNmJkMDkzMTIwZTgzM2YxZDdkNTJmOTk2IGxlZ2FjeS10cnVuaworMjAwODYgNDEyMGViZTA4ZGQwNDE2Y2MzZDdjODdjYWNhY2U1ZDBmMTdiMTA5MiBsZWdhY3ktdHJ1bmsKKzIwMDg3IDM0ZWYwNTQ0MTQxM2YyNmI2NWNiMTU0MDBjYWU4MmEyNzc2NThlMDcgbGVnYWN5LXRydW5rCisyMDA4OCAzOGVmNDY2MzU5NDkyNjU2OTAzYzc0NGViMjRkNmQwNWQxZTA3OWI0IGxlZ2FjeS10cnVuaworMjAwODkgMmU3ZjQ3MzE0YWRhYTMxNzc4MzRiY2YxMmQ0YmZkMWY3ZDRhODNmYiBsZWdhY3ktdHJ1bmsKKzIwMDkwIDU3MDVkNWE4YmNiM2NkOTVlNGZhYjBkMzNjMTJhOWVmMzZkOGE3ZGMgbGVnYWN5LXRydW5rCisyMDA5MSBjNThiNmQ4NjhkMDgxNmY1YTY5NGUxMGE2YmUzNTI0MTI1NGRlZTg5IGxlZ2FjeS10cnVuaworMjAwOTIgN2E0OTQwYTRhY2E2ZjcyOWUyOTA4MGNiOWZkZDkzNmQ3NjBlYjQyOCBsZWdhY3ktdHJ1bmsKKzIwMDkzIDcwNTdiNmFhNDZlYzU1ZmNhMTgwYzVmZGU1OGQ3MGUwYzU2ZGFkN2EgbGVnYWN5LXRydW5rCisyMDA5NCBhYzY1NmM4MzdiNmM3NjRiYWMxMGViOTJkMDk2ZjMzOTcyZWE2YWZhIGxlZ2FjeS10cnVuaworMjAwOTUgNmNmYTNkNjVhYjU0NjliZjA2OGI5MmU1MmM2YWVhZDQ4MWUzZTM1MSBsZWdhY3ktdHJ1bmsKKzIwMDk2IDkwNTQ2ZDZlNTQ0NTRmYzY4NTk0YTIwNWY5MTEyZTY2MTEyMWUxYzggbGVnYWN5LXRydW5rCisyMDA5NyBiNzQyY2FmMGE4NjJhNDVjM2YxNTY1NTcwYThiZTczYjIwNTdlYzg1IGxlZ2FjeS10cnVuaworMjAwOTggNDA3ZDYwYjJmYTQxYTk0YzlkZjRlM2M2NjVjYThjMDdlZDMzZWEwYSBsZWdhY3ktdHJ1bmsKKzIwMDk5IDc4MjIzOTQ4ODA1ODViZjdiNmE1YmEyZDJhZjdlN2IyMWNiYjRlOWYgbGVnYWN5LXRydW5rCisyMDEwMCAxNmYxNDVhYWMyZWMxMmU1ZDYxMjE3ODMyYzQ3NDlhN2I5ZjM2MWY2IGxlZ2FjeS10cnVuaworMjAxMDEgYzg4MTdhOWJiYmRkYmM0YzBjY2RhYmUxYTZiMDZhNzljYjZjNzRiMyBsZWdhY3ktdHJ1bmsKKzIwMTAyIDUyZGEwOTRiNTNlYzM5YmY5NTA1YWVmNjE5NmViOGYwMWQ4NGM3NDcgbGVnYWN5LXRydW5rCisyMDEwMyBkM2Y3YzdmYWRlYzAzOTg5Y2FlZDc5NDkwYmU5Y2QwMjg4MWJlYWJmIGxlZ2FjeS10cnVuaworMjAxMDQgNjQ4NzZiYjhhYWNkYzViMWRmOWQwNjM3NDg0MjViMmNkMjU1YWE1NCBsZWdhY3ktdHJ1bmsKKzIwMTA1IDIxNWRjNzI1ZGI4NDA0OWVkNjhmNTVhNzViOGQ3ZWY1MWI2YjVlZDYgbGVnYWN5LXRydW5rCisyMDEwNiA0ZDZlZTdmMmJlZTY2MDlhMGMzMDY3NmNkYjEyYTg2NzU0MWEyNGJjIGxlZ2FjeS10cnVuaworMjAxMDcgZjFhNDllZWM3YzJiZjFkYjc1ODVkMmVjMjczMTA5NjkxZjBkMTUyMyBsZWdhY3ktdHJ1bmsKKzIwMTA4IGY2ZTFmYTJkYjQ4Y2JiN2E0ZjcyZDI1YmU3ZjkwZjAzZDA0ZmE2MGYgbGVnYWN5LXRydW5rCisyMDEwOSBhMWI5OWQwODhjZWE4Mjk0ZDViOTIxMzI3ZDJiNDM0YTAzMTgzMzg1IGxlZ2FjeS10cnVuaworMjAxMDkgYjU5YTUzNmFlMWVmMzc3NGZkODVjMTdmNjIzZTg5MjZiN2I2YzA5NSBsZWdhY3ktdHJ1bmsKKzIwMTExIGIzZGNlMDY4NjhkNmQzNWY1OTAzNDUyZTZlOTBkN2YwYWM0MTdjMzggbGVnYWN5LXRydW5rCisyMDExMiAzZjkxMmZiOGMxODA4MTg0ZWJhNjMyODY3YjIwYWIxZGJiY2JhMzU4IGxlZ2FjeS10cnVuaworMjAxMTMgYjYwMDk2ZDUwMDFhNmUwZDgzNmEwNjYwZmY5NWM3OWNkMTFlMDE5MSBsZWdhY3ktdHJ1bmsKKzIwMTE0IGUzY2MyMGU5ZWEzNmVjZGQ3ODdiZmI3YmZkNmRmMDIxMWEzZWQ3NDggbGVnYWN5LXRydW5rCisyMDExNSBlZWMzOTFhNTVmODQ0MDE5ZWI0ZjNmOWM2NGMxNmUzM2Q4MjMxYzY0IGxlZ2FjeS10cnVuaworMjAxMTYgYjI5MTgzM2EwZWZiN2UxZDE0NjZkM2U0MTcyZWIwMTM0ZTNhYzFiOSBsZWdhY3ktdHJ1bmsKKzIwMTE3IGY5Mzk1Zjc2MjdjNGI3YmYyNGFmNGI2OTkzOTZkNDVmZTBkYzVkNmMgbGVnYWN5LXRydW5rCisyMDExOCBhYjcwNzIwOTQwOWJiOTU4NTc0YWQzNDYxMDY1YTQxNWE4MTBkMjg3IGxlZ2FjeS10cnVuaworMjAxMTkgMDJhNGIwY2ZjNTdlMTM1NGIwZWY3ZTBhNjZlM2M5NTMyODA5NGFjMiBsZWdhY3ktdHJ1bmsKKzIwMTIwIDNlYjhkNzI1OTk2OTI0YzJhNzU3ZmMwYWM5NjE5NmQ0MGZkNjcxOGUgbGVnYWN5LXRydW5rCisyMDEyMSAzMmZiNjY0M2FkZjFmMDRjYjg3OGViNmZhYjU1NTVjZTZiYzcxNWY4IGxlZ2FjeS10cnVuaworMjAxMjIgOTJiM2UwODMxOTcwMmE0YzczM2I0YmY0MzJjYWUwYzBjOTkyNjZiMiBsZWdhY3ktdHJ1bmsKKzIwMTIzIDQ1Y2RhMWIzOTM1NWJjNzY2MzllM2Y1YWRkOTcxN2Y3MjBjNTIyZGUgbGVnYWN5LXRydW5rCisyMDEyNCBiZjRjYzk5ZDcxMWQwYWM3NGYwMDE0NTlhNWNjMWI1ZWUzZDgzYzE0IGxlZ2FjeS10cnVuaworMjAxMjUgNGUxOWZiOGNmMWZiZDM5ODcwZWNiYWQ2YjZkNzg4MjA3OGU3YmUyNyBsZWdhY3ktdHJ1bmsKKzIwMTI2IGQyYjAxZDRlMTdlOWRjZmQyYjI3NmE5OGNhNzNkNDlkZGQwZjEwZTMgbGVnYWN5LXRydW5rCisyMDEyNyA3MWFmM2I2MGFhNjI5MTIzYTU2NDMyOTRjOWRmZWQ1Yjg2MjFmZWQ1IGxlZ2FjeS10cnVuaworMjAxMjggNWY3MTE4NWVmMmI1YWRkZWRlN2FjMjFiYmRlN2NmMmY4NzMzNWZjNiBsZWdhY3ktdHJ1bmsKKzIwMTI5IDE0MTIzMDk1NjMyNTZlMWU0MzAxNjNmYzdmZmVlYzc2Njg1ZTBlNGYgbGVnYWN5LXRydW5rCisyMDEzMCAzOTBhODMxNWQ2MzQyYjRjMmY3MGY4YTIxYmVhMjQ0ZWM4ZGJlYzc5IGxlZ2FjeS10cnVuaworMjAxMzIgN2MwNDcyOTMyZmJmOTYwYmQ1OWJiMjhkMmM5MmExNzYyMzJlNWVmMyBsZWdhY3ktdHJ1bmsKKzIwMTMzIDIyZDg1MDE3YmVjZTg5ODk5YjcyMTA2MmYzMGIyOWNkZTkyMDE3MjkgbGVnYWN5LXRydW5rCisyMDEzNCA1MzZlOGRkMzU5NTMyNDRkMzAyNmZkZjMxOTZiNmE4NGUyN2M2M2VhIGxlZ2FjeS10cnVuaworMjAxMzUgZWU0ODAzODI2Nzg0Nzk2NjkzNTc4OTdiMDQwNDNmMTc2MTk5MTUyMSBsZWdhY3ktdHJ1bmsKKzIwMTM2IDFiMTJlNjM0MDAzODk0Y2MxOGM4NDEyMTU4ZmQ5ZTdlMWY4ZTlmOGYgbGVnYWN5LXRydW5rCisyMDEzNyBhMzQwYmE0YWFjMjcwZDg0YWY2YjhkMWUwMjJhN2Y3ZDY3MjFmYTA5IGxlZ2FjeS10cnVuaworMjAxMzggMjVlOTNhMDFmODZkOWVmMDVkZTQ4MmZmYTEyYzY3ODAzYjQ5NjBlMCBsZWdhY3ktdHJ1bmsKKzIwMTM5IDAzNzdmOTI3Y2FmYTMzODQ2Mzg2MzQwYjJmZTdkNDQ5YWYwN2ZiZDcgbGVnYWN5LXRydW5rCisyMDE0MCA3NTEwM2JlZjBjMjQ1NWQzMzg2Y2FmMDQ0N2RmYmE0MjNmMzUyNzQwIGxlZ2FjeS10cnVuaworMjAxNDEgNTk0NzJiY2JmYjhlOGE1YWJkNThiMTcyN2QwM2I1NTdhNzFjNWI4NiBsZWdhY3ktdHJ1bmsKKzIwMTQyIDAyY2VjMDBmMjJiYjUzY2Y2MDhkMmUzMDZmMGI4MTIyZjhmZWQxMGMgbGVnYWN5LXRydW5rCisyMDE0MyA2ZDMwNTUyY2I0Zjk5MDg3YTFmMzkwYWZkZWIxMjQzZTkyOTZjYzE1IGxlZ2FjeS10cnVuaworMjAxNDQgNGFhN2FmYmYyOWQ4MjE1N2UyNDljODMwZjFiOTc2ZDgxMzQ0YjJhZSByZWxlYXNlMjAtbWFpbnQKKzIwMTQ1IGZkYzUyMmRjOWRmNTU2Y2NhYmJjYTdmZDk2NzQ4NmRlMWI0MTQzYWQgbGVnYWN5LXRydW5rCisyMDE0NiBiNTUzZmJhYzE0NmRkYmVhZDA2OWI0NjkxOWExMmIyMjgzNGVjYmIzIGxlZ2FjeS10cnVuaworMjAxNDcgODdkNTA5ZDA4NWEwZmMzODg1MmQ3MTk4NTY0ZWZlZjM0ZDY4MTgwMCBsZWdhY3ktdHJ1bmsKKzIwMTQ4IDg3MGRhMjRkNGJhZjI0ZTdhZjA3OGYxNjA1MTI5MDRlYzU1ZTg0MmYgcmVsZWFzZTIwLW1haW50CisyMDE0OSAyMmQzNDk3NDgzODRmODY2NmE4MGE4NmU4NjliNTMzNmIzOWE5M2MwIHJlbGVhc2UyMC1tYWludAorMjAxNTAgYzRhNWJkMDg4NTFiY2ZhYjVmN2FkOGE2MjA2OTY3ZDgxNWJiYjYyMiByZWxlYXNlMjAtbWFpbnQKKzIwMTUxIGVlMjY0NjY5YjY3ODBlOTdlZGU1MDRmNDAyZWJjM2UzMzZmZDM2NTggcmVsZWFzZTIwLW1haW50CisyMDE1MiBhMDAyOTE4ZmMwYzI3NjQ0YzQ3OTkwYzEzNzFiOTg2MzMyY2RhN2QyIHJlbGVhc2UyMC1tYWludAorMjAxNTMgMTJmZWU3ZmIwMTliM2I4NDM1NmIzMjJmY2M3NmJiYzJlYzllN2VmNiByZWxlYXNlMjAtbWFpbnQKKzIwMTU0IGJlYjI5ODJkODVhYTgyMmM0NTRmZWZlNGM5NzA0MmZmYjE1MTBjOWMgcmVsZWFzZTIwLW1haW50CisyMDE1NSAxMWEyMWQ1OTI4MzQ4N2E1ZTNjYTYxNzE4NjllYTRmOGMxNzQzMjA0IHJlbGVhc2UyMC1tYWludAorMjAxNTYgYTYyNmFjYzMwZmMyMzk5YWJkOWFiYjk5Njg5ZWFkNjY0NjllYjkxZiByZWxlYXNlMjAtbWFpbnQKKzIwMTU3IGY0Y2E5M2U4YTJkNDc5NjRjODdkNzhhNmEwZDY4ZTNlNjc0NDIyMTEgcmVsZWFzZTIwLW1haW50CisyMDE1OCA2MzkzZjU1ZGJkN2JlOWRmN2UyNzhjYmU3YjAzYzE5MmNhNWYwNzExIHJlbGVhc2UyMC1tYWludAorMjAxNTkgNWVkNGM3ZThiNGY5OGVjZmRmNDYzNWFjNjc1MGJhMDkzZmUzMmY3ZiByZWxlYXNlMjAtbWFpbnQKKzIwMTYwIDlkZGJiNzZjMzExNDU0MzViZTJmYWZjYjkxNmVhYjM1ZjE1YzRhODUgcmVsZWFzZTIwLW1haW50CisyMDE2MSA0MmIxYTY5OWE1ZGRjMWNkNTAwYjU5NGRlYWVhNjk2ZWUyNDZiOTNmIHJlbGVhc2UyMC1tYWludAorMjAxNjIgZDQ2N2QxODRiNDI5MzA0ZTgzYzFjMDI4YzEwM2ZkYzBmYjEzMTExNiByZWxlYXNlMjAtbWFpbnQKKzIwMTYzIDA5M2U5YTI0ZWU3NjdhMWQ0Y2NkZWYxOTZkMTViZmI5ODU5MjcwOWUgbGVnYWN5LXRydW5rCisyMDE2NCBlMmU5MTQ2ZjRhYjRkOWMyOWJmMzRiMGIxMTA0NDVjOTdlODViOTFiIGxlZ2FjeS10cnVuaworMjAxNjUgMjRkMjJlZWU5NGNmMzcxNTczZDEyMzJiNmNkMDEzZTMyNjRhOTI3MiBsZWdhY3ktdHJ1bmsKKzIwMTY2IDcyZmQyNjU3YmUzNDI4N2Y1OTZmMzRiYjZiN2IxZDU2YjFiMGYzMDIgbGVnYWN5LXRydW5rCisyMDE2NyA1MzZjYzEyNmZiOWY4YTA3MTEyYjA1MGJkMWI3NDJiYWZmMDhlODk3IHJlbGVhc2UyMC1tYWludAorMjAxNjggNmRjNDNlMGM2YmJmNTAzNTM0MzMwMDYyZTczYjcyOWVlMGJlMTkwYyByZWxlYXNlMjAtbWFpbnQKKzIwMTY5IGU1MTBjNGNjNTczNzYzZDNkY2QxNGI2MTJmYzk1YWFlMGUzMjJjMzkgcmVsZWFzZTIwLW1haW50CisyMDE3MCBhNDY5NjRkNzExMWRkZWY0YTJhMjkyMWZkNzRkMGMzYzRkNDY2N2NkIHJlbGVhc2UyMC1tYWludAorMjAxNzEgZDdlMGQyMGNkZGFkYjM2MzJlNWUwMDA2ZjUyMGI5MWEzOGMwZjU5NCByZWxlYXNlMjAtbWFpbnQKKzIwMTcyIGQ5ZmYxMzEwMGUyZjIxMjJjYTIzYTk5NDVmNjU1OTFhNWE2ZTNlNGMgcmVsZWFzZTIwLW1haW50CisyMDE3MyA1Y2YzNTVmNjdhYTM3YjFmNmZjZGQ1MGI4ZjliYWUzYjRjYWE2OTViIHJlbGVhc2UyMC1tYWludAorMjAxNzQgNTczYTkxMzg4NzA1YjUwMGZjYTViNGQ3M2FjMWYzZGYwMDFhYzAzOCByZWxlYXNlMjAtbWFpbnQKKzIwMTc1IGNjZWYwMmRhODhhNjdmOTkxODM3NGU4YTdlYTBjMTg0M2Y0YjE3NTkgcmVsZWFzZTIwLW1haW50CisyMDE3NiAzMTIwM2Q5OTM1ODI3M2NmNzMzYjlmZTFkYzIzZmM2Zjc4N2JlMTE1IHJlbGVhc2UyMC1tYWludAorMjAxNzcgOTk1NmExYzVkNDQwNTRkNjRmNjFmODg1YWViMGY4MWU0ZWNiYzEwMSByZWxlYXNlMjAtbWFpbnQKKzIwMTc4IDE5MmYyNWU0MWZiYmVlOTg4YmYxYjVkOTk1Mzg2ZDRkMWRmMTgyYTkgcmVsZWFzZTIwLW1haW50CisyMDE3OSAyYjU3NjhjMTM1OTkyMDI5M2U1NmUwZTg2MzVhZDJhMzc0NjQzMDQxIHJlbGVhc2UyMC1tYWludAorMjAxODAgOTkyNDYwYzY2OGMxNWJmOTI2NDg0Y2VlMzAzNmM5MDdlMzg4NGQ5NSByZWxlYXNlMjAtbWFpbnQKKzIwMTgxIDhkZWNhNzllYTZhYmI1NWUzM2Y4YjM4MDU3Yzk1NmI4ZmEwZDg3OGMgcmVsZWFzZTIwLW1haW50CisyMDE4MiAwNDM3NzViM2I4YjI5NjYzNDc0OWJmOTIxZjlhYzgwZjhjN2U2NjZiIHJlbGVhc2UyMC1tYWludAorMjAxODMgZjM0YzkwOTg5MTM4MzQ1ZGNmNjczYWQyMzIzNTViNDk2ODVmNjJlYiByZWxlYXNlMjAtbWFpbnQKKzIwMTg0IGQxYzEzNTBhM2E1ZjQyYjU4NWM2OGM0OThhYTI0ZWM4ZDQ3OWRhZDcgcmVsZWFzZTIwLW1haW50CisyMDE4NSA1YTRlMDgzOWNjZTc2Y2YwNmRlMjRmMTM0ZTY2YmVmNDdlYWFlMzExIHJlbGVhc2UyMC1tYWludAorMjAxODYgNWJkNjg2ZTBlY2Q0MWY2MDAxOTg3Mjk0YmZhODdiZmNmMDNlNjZkYyByZWxlYXNlMjAtbWFpbnQKKzIwMTg3IGQxNmVkYzcwNGRhMWY1OGNjNTRkODI4ZjJhYjM4ZGEyZDNmOWRjMTAgcmVsZWFzZTIwLW1haW50CisyMDE4OCBkNTNhOTY3OWE5M2JiOGJlODFhZDk1ZDNlMDNiZWYzZDI1ZDE2OGY1IHJlbGVhc2UyMC1tYWludAorMjAxODkgOTc3NmNmNWRiZmUzOGQwYzc4ODFiNmRlZTJkMWI1NWQ2YmIwYjNmMCByZWxlYXNlMjAtbWFpbnQKKzIwMTkwIDc2Yjg5ZmEzZWYzNDA2MGEzY2MxZDQ2ZTRmOWEzZWE1ZjQ0MjZkZTggcmVsZWFzZTIwLW1haW50CisyMDE5MSBjMDExNGVkZmQzMTM3NmE4ODZjYmQ3Y2FhOGUxMzUzMThkZjA1YjRlIHJlbGVhc2UyMC1tYWludAorMjAxOTIgZWYxMjIzZDg0NDJkYzU2ODFkOWVhNDhlZmExOTU0MzY3MjAyYmM1NSByZWxlYXNlMjAtbWFpbnQKKzIwMTkzIDZiMGZmNTI5ZDYxNTAyNDNiOTBlMDllODZlMWJiNjc0NGRkYTQyNjYgcmVsZWFzZTIwLW1haW50CisyMDE5NCA3ZDA0MjQ1ZWQ3NWYzOWJmMmU0ZmQzNGJjZGE2NzFmYTc1ZTg4NzZmIHJlbGVhc2UyMC1tYWludAorMjAxOTUgZDY1NDdmZjk0MTZiYWI4MTlhYjg5YmRhOWViMDhlMDI3ZmNhMzUzZCBsZWdhY3ktdHJ1bmsKKzIwMTk2IDAzYmEwNjI0NzQ4NjYzMGFhZmE3ZTBmNGVkY2EyMzA4ZTFlZjVlM2MgbGVnYWN5LXRydW5rCisyMDE5NyA4MzZjZGY4ZDEyNDVkNWY5MmIzZDVkMzZhODUzNjlkOTQ5MTJkNGNiIGxlZ2FjeS10cnVuaworMjAxOTggZWEzMjZlYjQ3NzVjYzFjNDBlZTFlMjEyZDVkZDc1OTY4ZTAxNTFlZCBsZWdhY3ktdHJ1bmsKKzIwMTk5IDQ2YTZjMjhkMzVlNWRiOGQxNGE2MTcxYzM0NzY5MmI0ZjQ5M2Q1NjkgbGVnYWN5LXRydW5rCisyMDIwMCAzMTFlNmFlZWY4NThhZDUwNTIzZTA2ZWE2NTEwNTMzMTk1ODkyNGUzIGxlZ2FjeS10cnVuaworMjAyMDEgMjg4ZDgwNWFmMTQyMThmM2Y0OTI5OTViZWJiMjZkYWUwZDY0N2Y0OSBsZWdhY3ktdHJ1bmsKKzIwMjAyIDUwNmEwODBkMzllY2ZjMjI5MjM5ODc0YWZlMGNiZTYxYmIyYTFiYzUgbGVnYWN5LXRydW5rCisyMDIwMyAzN2Q5ZWQ1NTQxNmZmMTlhZDY0ZTRmMjk4ZTMzMzZlMDc0MzY5MzU3IGxlZ2FjeS10cnVuaworMjAyMDQgMGNkZmNjZGI2ODcxMGExMGM1NjY4ZGRkZjMyYWQzNDllOTQ2NWE0MiBsZWdhY3ktdHJ1bmsKKzIwMjA1IGIwYTdmYWY5OGE4ZWRiM2YzYWUwM2FjNDBmM2ZjMzQ3ZWVjOTYxZDggbGVnYWN5LXRydW5rCisyMDIwNiA3NjM1Zjg4MzhjNjg5MmUyOWMxNjBiODM5OGNkMmE0ZDQ5ZTZmZTYxIGxlZ2FjeS10cnVuaworMjAyMDcgYjczNTQ3YmY4YmMyNDg3MjkxYzUwZjVkYjNiZGVmNWM5Nzk3ZjY1YyBsZWdhY3ktdHJ1bmsKKzIwMjA4IDExZWJhNWJiZmExNGFiNTFhMzIyYzNjNDcyMmVkMjE1MWU0OWE5YTUgbGVnYWN5LXRydW5rCisyMDIwOSA2YmU4YmI0ODA4ZTE0ZWY5ZGRmOTg4NmI4ZWM1Njg1OWJiNzJmMTdkIGxlZ2FjeS10cnVuaworMjAyMTAgNTdhNWY2YjAzMzdkMWUxNzM4ODRlYjg1NGE2ZjhkZjIxNmIyOTVhZCBsZWdhY3ktdHJ1bmsKKzIwMjExIDMxMDA2NmI5OTJmMmY4YThlMWI3ODcwZGYyYWU5M2ZiOGI4YTc0YTcgbGVnYWN5LXRydW5rCisyMDIxMiBiMjVhMjQxMzAyMGUyMzU4Y2VkNzk5ZDcxZDJkZDkwOTg5NTFmMjYzIGxlZ2FjeS10cnVuaworMjAyMTMgOTkwNmRiMmExZmZhNzg2MTE0N2M3NzkzMjRiYzQ3YzY5OWE5NThiZCBsZWdhY3ktdHJ1bmsKKzIwMjE0IDkyYjY1ZjEyMWEzZTk3NjcyMDFlYTcxMDZkNjM2YTA1YjkxNWQ5YWEgbGVnYWN5LXRydW5rCisyMDIxNSA5YjhlYTYzODdkYzYwOWZkMGE5M2Y0ZjQ2OWJjNjg4MDgxM2U0N2MwIGxlZ2FjeS10cnVuaworMjAyMTYgYmQxMTBlYWRjMTlhZDQwOTk1MWJmM2FmMzAyYzE0ZDQ5YTQ1ZTc3MCBsZWdhY3ktdHJ1bmsKKzIwMjE3IGU3ZjViNzBiMDYwNmFiYjBkOGI1ZDk4OTNiNWM4OGI1NzYwMjI4OTAgbGVnYWN5LXRydW5rCisyMDIxOCA5MTFlMjExYjg5MzBiOTBlMjRmYmUyMmQxOWRhNWIzYTIwMDczMDhmIGxlZ2FjeS10cnVuaworMjAyMTkgYTNkZWIyMDFlY2RhMTBmODE1ZGFmNGFkOTI2YTE0ODM0YTg3ZDQ5NyBsZWdhY3ktdHJ1bmsKKzIwMjIwIGJiOWUyMTQwMzVlMTI1YjkxMzQ4NWMyNzUzNmUzNjBjNGY1NjM0NzYgbGVnYWN5LXRydW5rCisyMDIyMSA3NjA3NTQ0MThlZTAyNzBhYzRlZGViODVhOWEzOWE2Y2MxODdmNDg0IGxlZ2FjeS10cnVuaworMjAyMjIgMDgwODI4YmY4ZGJkZThmZTE4YjE0NTNiNmE5NmNmNzlhOTkyOTY1YSBsZWdhY3ktdHJ1bmsKKzIwMjIzIDRiMzQ2Y2MzOTg5YmFhOTkzZWE1NzU4ZGM5NGRiMmY0OWI3MmU4ZTIgbGVnYWN5LXRydW5rCisyMDIyNCAxMmY3ZjE2N2FjNTMzZDQ2YTRmZWU0MmNjMWI2MWM1MDZlOTk0NWFkIGxlZ2FjeS10cnVuaworMjAyMjUgZDMyOGNmZWIwYzc1YmMwNDY0ZGVkMDBhZDVjNzhmN2ZhM2QwMDY2MiBsZWdhY3ktdHJ1bmsKKzIwMjI2IDE4MWQwMTMyMGVmNDNlM2Y1NjRlNzZkNDBlOGZhMTBmZDA2MTczOWYgbGVnYWN5LXRydW5rCisyMDIyNyBiM2ZkNDRmZmFiMWU5MTYxMDJlMmY2YWIxM2ZlYjFlOGE0NDQwZTQ0IGxlZ2FjeS10cnVuaworMjAyMjggOTJiNjBkZWU3ZjA4MzVkZjI4OWNjZTU2ODIxNjYxNWI3YjgwNWE1NiBsZWdhY3ktdHJ1bmsKKzIwMjI5IGNjYWU0MTJiYmMzZTIyY2ZhNjI0OWE3MDJhOTdjOGQyN2IyMTA2NDIgbGVnYWN5LXRydW5rCisyMDIzMCAyMTQ2YTczY2UzNWMwYmRkNDQ5OWYzZWU5YjRiMTdiZTg1NGZmMTZlIGxlZ2FjeS10cnVuaworMjAyMzEgOTZlYTBlY2NkYjMxNzM3ODg4MzU4ODE2YjY3NzE2NmZiYTBmMjhjNSBsZWdhY3ktdHJ1bmsKKzIwMjMyIGMzMjc1MmEyODY1MjIxM2UyYzM3ZTY3ODM3YzIxZGIwZDExNTA1MjQgbGVnYWN5LXRydW5rCisyMDIzMyBhNTcxMDU3OGMyZTAyMjE2NjI5MzM0YzFhMWI3Y2UxZTViYWJmODIzIGxlZ2FjeS10cnVuaworMjAyMzQgYWI0ZTRjYjA5NGMxZjY0MzBkNDM4YzkzZjdhZmM3M2FhOWYyODc3MyBsZWdhY3ktdHJ1bmsKKzIwMjM1IDgzZWU2M2JjZjAzNjU5ODcyN2ZiNjI3MDNiYTEyZTBmMjA1M2Y4YzEgbGVnYWN5LXRydW5rCisyMDIzNiA5ODc2ZDZiYWY4NDM4OTYzODFjZmM4NjJlY2RlMDlmYTQxZDUzN2VkIGxlZ2FjeS10cnVuaworMjAyMzcgZGU5ODU4NTMwYTU1M2RjODRlYWFkZGU4MjE2OTZiZDExMGFiOTczMCBsZWdhY3ktdHJ1bmsKKzIwMjM4IGYxZDJlODhmYTExZGUzMjYwNTgzNTkwZTIxOTVlMzFmOGFmZmQ3NzQgbGVnYWN5LXRydW5rCisyMDIzOSA1YWZmZmNhNjZlMmZhZTI2ZjIwNjAyN2ZhYmIwZmMwOWU3MTlhZDYyIGxlZ2FjeS10cnVuaworMjAyNDAgZjhmZGJlYjczNjY3MDhiNzMzOWNmMWQ3ZDhjODQ2NGUyNWE2MGRlYyBsZWdhY3ktdHJ1bmsKKzIwMjQxIDg3Njg2MWYxMzU0MzZjZTdjNzljZjk2ZWMwNWIyOTcwMTY1YWEzZjAgbGVnYWN5LXRydW5rCisyMDI0MiBhOWVmNDRiYmQ5NjgyOTA1OTdiNTY4NjY2OTRmMjMwN2U4Mjc2ODg2IGxlZ2FjeS10cnVuaworMjAyNDMgZTcyMmQ0ODgzZTE5NzE1ZWYyODhhNTJlMTY1M2RmMGNjMDNlNDc3YSBsZWdhY3ktdHJ1bmsKKzIwMjQ0IDMzMDhhZmNhYTEzMTU1ZDczZDYzYjNlYmViM2RkMTgzNzRjYTdmZDMgbGVnYWN5LXRydW5rCisyMDI0NSAyZDMwYTA5OTcwNWYzOWZjZGNlYWFlZDg1ZDYzNDk5NjdlMjdiMWViIGxlZ2FjeS10cnVuaworMjAyNDYgZWQzZTY2ZjMwODM3YzIyMTE2NTE2ZmNjZmQ3ZTNiNWY2MzY5M2E2ZiBsZWdhY3ktdHJ1bmsKKzIwMjQ3IGFlZDZiMTQzNmRiNDc4NzBmNWM4MDA1OTQyMzBhNDQzOTkwYjNkYTAgbGVnYWN5LXRydW5rCisyMDI0OCAxOTQzMzE4ZmFlMzE3N2E1OGVjYmVlYzBmM2M5NGRjODE2NDk5NTI0IGxlZ2FjeS10cnVuaworMjAyNDkgNDQ2OGE4ZGE2N2NhMDEwNDI0ZWFlYTc0YTc4MjhjZGJmMGY2ZjVmOCBsZWdhY3ktdHJ1bmsKKzIwMjUwIDI4Y2YwYTc5NDNjZmQ3YjIzNTMxYmMyZGQ2OGIxNDMwNzMyYTRiZGMgbGVnYWN5LXRydW5rCisyMDI1MSBjYzhhMjFiYTY0NDk5OGNjZWFkNDI5NjkyNDUzZTdiZmQ4ZDI0YTNmIGxlZ2FjeS10cnVuaworMjAyNTIgM2FhZWRiYWM5NWIzMTJiZTVmMTM5MTg4NDk5NDk1NGI2ZmM2MTg2ZSBsZWdhY3ktdHJ1bmsKKzIwMjUzIGExODQwYjliMTRmMTQ1ZjBkMWYxMGQ5NzJjYTZiN2QzZmNlODA5ZjIgbGVnYWN5LXRydW5rCisyMDI1NCA5NjIxZDBmYmMyZTUyZjBkN2Y0OTgxYjczZjk3MGViZjBlN2YzMzY2IGxlZ2FjeS10cnVuaworMjAyNTUgY2E1NjVlM2QzY2M1YzA2OTdmY2EzZDNiZTUxODM5ZGYxNTc2YWNjNyBsZWdhY3ktdHJ1bmsKKzIwMjU2IDZiOGQ5MWVhOWRlMzQzNDBmZGRhNmQ0MmYyMTJiZGRlZTFhZDk4NDUgbGVnYWN5LXRydW5rCisyMDI1NyBkMTA5ZWM2NjdlYzI1ZDhmZWQxMDYyYTM0NzZmMGZlNjhmMTQyMWE4IGxlZ2FjeS10cnVuaworMjAyNTggOGEzYmExMGYxMGY2YTI1NDkxNmFkNDgwZWFiY2ExMjM4NWI3YzFiMCBsZWdhY3ktdHJ1bmsKKzIwMjU5IDExZThiYjRkODQ1ZDJjMGJlNTNmZTAxYWJiZjU2NjM4MTE3ZGMzYTQgbGVnYWN5LXRydW5rCisyMDI2MCA1MDc5ZDZlM2I2MTUwODAwNzg2NjVmY2I0ZDYyZmQyNDdiZDBiMmIyIGxlZ2FjeS10cnVuaworMjAyNjEgZTJiM2U2ZDg1MzQzMGEyMTBmY2JhYWZlZmZhZTNhZDExNTAzMzFlYiBsZWdhY3ktdHJ1bmsKKzIwMjYyIGJiNzVkOTNmNmEzMWM5MzM0ZGVhNmMzNWFlZDgwYmRjNDdhYWRhNzcgbGVnYWN5LXRydW5rCisyMDI2MyBmMzk4ZTU4NTZmYTc0NjUzMDU1YjhiYmMzOGE2MzkzMjkwMDFiMWY1IGxlZ2FjeS10cnVuaworMjAyNjQgNjVmMzYzMjM2ZWNmN2ZhNmE4MzZhYTlmMzVjZGMxZTIzNzQyMTkwMSBsZWdhY3ktdHJ1bmsKKzIwMjY1IGU4NDNlZWU3YTMzZTg2MjViMDYyNmE0OTdmZmE2NDIyMzI5ZjFiNWUgbGVnYWN5LXRydW5rCisyMDI2NiBkMzgyNzkyMjkwOWNhMjU3NTRkYjljNzY1MWUxZDUxNTQ0MTUyY2UyIGxlZ2FjeS10cnVuaworMjAyNjcgZTU0ZTExYzMwZTRiMTU0OTdjM2Y3MmNmZTQ2OWUxODRkMDIwM2EwMiBsZWdhY3ktdHJ1bmsKKzIwMjY4IGNiNDBlNzcwYzkwM2RkOGUwYjk5ODk5MWYyYTEzNGI1ZjkyNDIxYWUgbGVnYWN5LXRydW5rCisyMDI2OSAwYzg3YWM2NzRjZTE4MjA2NzRhOTgzZDRjZjVkMjMxYWU3YTM0NDhkIGxlZ2FjeS10cnVuaworMjAyNzAgYTgwYTg0N2Y1ZjRlYmE1OGJlMTAwOTUwNDQ2ZmJiYzU0ZmQxNjNmNiBsZWdhY3ktdHJ1bmsKKzIwMjcxIDVmNjg3NTRlYjNiNmJjODAwN2MzM2U5NzBmZDBlY2M5MWI4ZDgxZGYgbGVnYWN5LXRydW5rCisyMDI3MiAzMGU1MjcwZGIxMjgzYmY4Y2RhMGFhODZkMTYyNmRmZDg0YzM5MjNkIGxlZ2FjeS10cnVuaworMjAyNzMgMGY2ZDhmZTRhM2E5MWNmZDdjZGM3MDkyN2Y1YTQyYWZlY2RjY2M0OSBsZWdhY3ktdHJ1bmsKKzIwMjc0IDQ2MjJhZjRkYTllMjgyZmIxZGNlNzhhNWFlMzExOWNhMTlkNDRhMWIgbGVnYWN5LXRydW5rCisyMDI3NSA4YTJkZDk3ODczZjI1NzYyZmY0YjdjYjMzOTcwZmE2MjVjYjkzNDg5IGxlZ2FjeS10cnVuaworMjAyNzYgZDM2ODU1MmMyYjcyNjEwMWY5ZmZiODY5YWM2NTY1NTc5YWQ5NjgxZiBsZWdhY3ktdHJ1bmsKKzIwMjc3IDdjNGJhYzJmN2IzYWI3MThlMjM5YjcwMzQ1MWNlODUxNjNjOWQ1OWUgbGVnYWN5LXRydW5rCisyMDI3OCA5YjI5N2FmMThlMmYzMTUwODQ0OWNlNDY2MjNiN2U0ODE4N2M4ZmQ2IGxlZ2FjeS10cnVuaworMjAyNzkgYjYxMmI1MTlkNDFhNTQ2OTg3NmU1MzA5YTllNmM3MTI2ZjRlYzUyMSBsZWdhY3ktdHJ1bmsKKzIwMjgwIGJiY2M5ODM3MzEyZThlNTlmNmJjNTgwOWQ1M2E4MWY3ZTNjY2EzNDggbGVnYWN5LXRydW5rCisyMDI4MSAwZWMwNmI0NzU1ZGI3MjRkNTI2ZWRhMzkyNDNlM2YzNGNjNzRmODEyIGxlZ2FjeS10cnVuaworMjAyODIgZTRhYmU3NGJjOTczMmQ3MjhiMzFhNWY0YTUzOTUxMjkwM2MyZTZlNyBsZWdhY3ktdHJ1bmsKKzIwMjgzIDQ3MWNlMGZhYTc3NTBmNDIwOGU2OTUyMTZlYzc0NGQ3NDFkZmJmY2YgbGVnYWN5LXRydW5rCisyMDI4NCBiMmJjNTYzMzIwNDVhZTAyNTI1YWI5MzFmODgyYzQwN2M1MWU1ZDlhIGxlZ2FjeS10cnVuaworMjAyODUgMTEyYmQ0N2UwNzhkMzE5MzBjNmM1YzgxNzJhNThhMGVjYTY2NzQ3MCBsZWdhY3ktdHJ1bmsKKzIwMjg2IDY4NzM1NDlkNDg0Yzc1ODVkNjBiZDJiZjM0NzRlODhhMmEzMmIwMmMgbGVnYWN5LXRydW5rCisyMDI4NyA0YjA2ZTRkYjAwNzVkYzNiMDU1YmZlZmRjMThlNmNlYTNlNGMzYjQ4IGxlZ2FjeS10cnVuaworMjAyODggNzE3YjBjOGRlNzFlOWExMjY3ZWU2MmNjOGQ4ZmI2ZDdjMmZmZmU0OSBsZWdhY3ktdHJ1bmsKKzIwMjg5IDg2M2U4MDczYzdhYWYzMWYzMTdiZTg3MmZkMWQ3NjU3ZGMzYzA5YWUgbGVnYWN5LXRydW5rCisyMDI5MCBiZWI5ZDJiMDI4NDY1N2JlMjNmYTlmOWIzNDQ5OGUyZGFhODhjODlmIGxlZ2FjeS10cnVuaworMjAyOTEgY2Y4YTU5NWNlYzMzNzQ4YjUyMzYyNDA0ZjczMzUzYTVhNmY4OWI1OCBsZWdhY3ktdHJ1bmsKKzIwMjkyIDAwNGM5YjAzMTkyNDFjNWMwNTQ2YWMxMGNiNTliNTRiOTA0N2I3ZTQgbGVnYWN5LXRydW5rCisyMDI5MyA3MDc2M2M0NzUyZTJmYTNmN2VjNmJhMzkwMTI1MDQ2YmYwMDM5YTg5IGxlZ2FjeS10cnVuaworMjAyOTQgMTM4NTdmYjMzMDE3NzBjZDJjYTQyNzZiMWEwYmYyNTlkNDEwYWZiOSBsZWdhY3ktdHJ1bmsKKzIwMjk1IDg1M2Q2YTk3YjdkOWI0ZDM4NmM3MzVmNmNmMGEyNzBjNmU4NjUzNWIgbGVnYWN5LXRydW5rCisyMDI5NiAzYjkwNWYyOGYyMjU2OThjOGI0ZDNmNTZjNTEzMDQ3ZDk4ZWFmMzkxIGxlZ2FjeS10cnVuaworMjAyOTcgMzRlYzVlMmZhMzU2MWVjYmYwM2FlYWVjYTg1OTlhZmM5YzA2MjBhNCBsZWdhY3ktdHJ1bmsKKzIwMjk4IDAxNzkxYTA5NzQ1NmI2ZmU3NTEyZTYwOGQ3MTExMDQzYTIxMmIwZTkgcmVsZWFzZTIwLW1haW50CisyMDI5OSBhZmJiNjViNjBmYTIwMzgxOTMyNDFiNTA1NjYyNDcwZTkzMjZlYTkzIHJlbGVhc2UyMC1tYWludAorMjAzMDAgYzllMDdiYzMwM2EyM2VkMGM3ODNiOTkwNjFhMzE5MjcwZDY5YzIyZSBsZWdhY3ktdHJ1bmsKKzIwMzAxIDlkNzZkODU1MmMzNjEyNzc0ZDZhYWFmNDc4ZTY0Nzk4NmQwZTBmOTMgbGVnYWN5LXRydW5rCisyMDMwMiA2OTRiOGMzZjI1ZTdjNmQzNzMxZjE0MjU1OWE4NDJhOGM0ODg3ZDI0IGxlZ2FjeS10cnVuaworMjAzMDMgODRhM2Q3MGVjNmY0NGQ2NWZhZWJjNzQ5ZDhlOTIzOTgyNTU5NTVkNiBsZWdhY3ktdHJ1bmsKKzIwMzA0IGY5Njc0ODllZTNiNjRiYWQ4NmU3NDVkMTVmZDg2N2U0ZDI1YmY2ZjMgbGVnYWN5LXRydW5rCisyMDMwNSBiZDg0NGIyMGI5Yzg1NDRmYjkxOTk3NzhhZmU3OWYwODk3MmRlMTRlIGxlZ2FjeS10cnVuaworMjAzMDYgMzcwNGJlM2RiMzAyODYyNjBmNjI4YmJmYjZhYmMxOGVmYWVkZTRmYSBsZWdhY3ktdHJ1bmsKKzIwMzA3IGJhZDJkYWViNzQ0MGMzMzEyMDQyZDU2Zjg2NDBmZWZkMmQyN2NmNmEgbGVnYWN5LXRydW5rCisyMDMwOCA0YzQ5N2M1ZTcyYWRjZTFkYjhkY2I4NWEyNmM0OTIxMzBkMDJmMWQ2IGxlZ2FjeS10cnVuaworMjAzMDkgNjVhOTIyNTFkNmI4NWNhYzIzNTllMjYzZDgzNTg2NmE3YmQxMTg4OSBsZWdhY3ktdHJ1bmsKKzIwMzEwIDlkY2I0YmQ2NTE1NDhlODc2OTlhNjIwZjBiYzZmOTBiM2RhZDk2YzMgbGVnYWN5LXRydW5rCisyMDMxMSBiOGZjZjQ1ZGM2ZmRjNzQzOTIzZGI3NjY0Yzk0MDRhMmI1N2M1NTliIGxlZ2FjeS10cnVuaworMjAzMTIgOTY1ZWViNDRlNDU0NDEyMWMyMjE3NDY5MGMwMjYxM2UxMmUwYzJmYyBsZWdhY3ktdHJ1bmsKKzIwMzEzIDNmYWRjMzdjZmE5MjA5ZWQ0MDY3NmU1YTA5YzI2NDBhMzc3NmM1NmIgbGVnYWN5LXRydW5rCisyMDMxNCA2NDM5NjI0M2MxMTQxZGNmOTA4NzYwZDczYzFkNDA3MDQ1YmJiNDNkIGxlZ2FjeS10cnVuaworMjAzMTUgMzQwMmM3MTY2ZDMwODExNDRjY2E0Y2JmMjQyZWVjMDM2ODU1ODQ2NCBsZWdhY3ktdHJ1bmsKKzIwMzE2IGYzZjk2NDE3NDNhMDdlODhkZjllZmM3OTg2NTI5YWJjZjBkYzY5YjQgbGVnYWN5LXRydW5rCisyMDMxNyA2MzJjNGQ1Yjc1YjdhOTZkZWMzZmNhMzJkM2FhYWFiOWEyYWEyMTIxIGxlZ2FjeS10cnVuaworMjAzMTggN2M2MTcxNTc1MmJlMjAyNmFiYjU4YjA0NTEzODQwNzkwMTA5ZDAxZCBsZWdhY3ktdHJ1bmsKKzIwMzE5IDhlYzdmNjU2ZjgwODMxZTZkYzY2MTJhMjQzZTVlNTYxMDc3OWYwYTAgbGVnYWN5LXRydW5rCisyMDMyMCAyNTdiNTdiY2NkZjNiZTg5NGIyYmQ4ZmQ5NzY3ZWQ3OTIxNjNhNjQ3IGxlZ2FjeS10cnVuaworMjAzMjEgMzE2MGRhNGRkZDg5MWFlMGJlODA2ZmQxZmZlMmViNjdjYTMwNzc5OCBsZWdhY3ktdHJ1bmsKKzIwMzIyIGVjMDc1Y2M4MmJkYjNmNTdjMmVmNWJmNzhmY2RkNDczOGYzN2IyZDIgbGVnYWN5LXRydW5rCisyMDMyMyBjMmZiMmQ0NzZiZDM4Y2RmMjdhYjM4NWMzNDk0ODM2MjgyYmIwMDg1IGxlZ2FjeS10cnVuaworMjAzMjQgZTUwMDkwMjVlNjJmMmMxYWY5OGZjMzQ3MGYzMDE1ZmEwMmRjNmYxNCBsZWdhY3ktdHJ1bmsKKzIwMzI1IGI0YjNjZmZjN2MzNTVmZjIxNGE0YjQ0ZDU3ZjAwZjFhZGNlMGRkODYgbGVnYWN5LXRydW5rCisyMDMyNiBiZmMxMGE4MDU0NWJhYWQ4ODkzYjJiOTMxNDFiOGM0NGQ2ZDhiNzI0IGxlZ2FjeS10cnVuaworMjAzMjcgYjAwNWViOWJjODQyZDk3YTVhMzE1ZDIxZDk1YWMxMWJhMmU4MWYxMyBsZWdhY3ktdHJ1bmsKKzIwMzI4IDJjY2MwZjJjOWUxZjI4MWZhMmNmY2MxYjJmYTA2M2M3NDJkOTE1ODQgbGVnYWN5LXRydW5rCisyMDMyOSAwZjMyYWI1YWZmZjg5ZTY0NGIxNjc3MDYxNGQ4NWFhNjYyNjY1MjRmIGxlZ2FjeS10cnVuaworMjAzMzAgOThmNjkyNDViYjY5Y2QyNDdhZmQ0MzI5ODQ0NmJjZDkzYWJiNzQ2NyBsZWdhY3ktdHJ1bmsKKzIwMzMxIDAyZDY5YTg4NzAzODkxMjE0Yjc4NzI4YzUyYzM0YWFmMWE1NGVhMGMgbGVnYWN5LXRydW5rCisyMDMzMiA0MWE0MjMyOTRjYjUxMzEyODU5YTVlYzYwNjZkYzMyZmMzYjVkYTY4IGxlZ2FjeS10cnVuaworMjAzMzMgZmJjMTJkNmNkMDUxMWI5NGU2NDE0YjA1ZDU3MGUwMzliOWFmZmZlOSBsZWdhY3ktdHJ1bmsKKzIwMzM0IDFjZGZmMjgzOGExNzhlZjQ2MWQ5MjRiYjlmODc5NjQ1NGJhNzA0YjMgbGVnYWN5LXRydW5rCisyMDMzNSA3NGI5ZmIxYzk2MzM5NzkyOGEzZTVjMGVjOGRjOGY5YWU1MTMxYTJkIGxlZ2FjeS10cnVuaworMjAzMzYgMmQ1MjE0MjBkYjhmMWUyOTJiZTJkNGMxY2Q3MTE4ZGUxYWZjM2NkOSBsZWdhY3ktdHJ1bmsKKzIwMzM3IDkyMzdmNThkY2MxOTIyOGYwOTBkNWY2MzJlZDgwYTMwNWQ2YmU1MzEgbGVnYWN5LXRydW5rCisyMDMzOCAxMTE5MDJjOTkxYTkwNGYzY2EyZTE0MDI0ZmE3OGEwZjU0NDU0NDA3IGxlZ2FjeS10cnVuaworMjAzMzkgZjBmMDQ2N2EzMzM0MmRhYzg2NzY5ZWMxN2I5MTAzNzg0MThjMDZmNiBsZWdhY3ktdHJ1bmsKKzIwMzQwIDAxODRjNTBhODc1MTBhZGE4MTdlYjU5OWFlYTU5MzllYjQ0NWFiZGEgbGVnYWN5LXRydW5rCisyMDM0MSAwNDc1YzhiNzIyM2JhNThiODQ3MTlhNjk4NzFhMjFmZjc5MTk3NjdmIGxlZ2FjeS10cnVuaworMjAzNDIgNDVjMTgyNTE5NmVkNjYwM2E3ZDJkYTVkNTllMjBhYTI4OTgxODJhZCBsZWdhY3ktdHJ1bmsKKzIwMzQzIDUxYzhjZTFhMmUyNTk5NTNmMjlkY2YyNmM2YjIwMWI1ZmNlN2Y4N2YgbGVnYWN5LXRydW5rCisyMDM0NCBmNzRmNWFhZmRjN2UyNTBhNWQ1NGQzMzUyMzhmOGY5NDVlNGNhOWE3IGxlZ2FjeS10cnVuaworMjAzNDUgOTk0MWM0NDgxNmMxYzczMDY4OWJkNGY1ZmE5NDFlN2Y3ZjY4NDNjMyBsZWdhY3ktdHJ1bmsKKzIwMzQ2IDFhMmZkNWM0ZGNmNTcwZmQxMGRjZTQ0Mzg1MTMwMGE4N2QxNDZlMzYgbGVnYWN5LXRydW5rCisyMDM0NyBmM2I2YWMxMjhkZTlmMTM3NWI4YTRmOGQwNzQ4Nzc4Zjg5YThkMmY3IGxlZ2FjeS10cnVuaworMjAzNDggZDkxNTc3NzgzMzM1NzY0MTQ2MWU0OGQ5MTZmMzI3YmMxY2JjYzliYiBsZWdhY3ktdHJ1bmsKKzIwMzQ5IDRlZTM0NmIzNTUyNGE4ODVkZGRlZTQwOTljYmFhYTE5MjVlNDRmMzkgbGVnYWN5LXRydW5rCisyMDM1MCAzYmRhNTkwNzEzODk1MTM0MTcwNDFlODgxZTFiOTRjZWJlMDhkZjU0IGxlZ2FjeS10cnVuaworMjAzNTEgNjZhN2M4YzhkZDI3MjM4ZjY0NDMwYjIyZGZjMGYyODZkZjdkNzNiZiBsZWdhY3ktdHJ1bmsKKzIwMzUyIDBkMDU0NmJkODQ0OGFjNTIyMGMwMWZkYjgzYjIwMTg4N2FjZTdlOWUgbGVnYWN5LXRydW5rCisyMDM1MyBlODQ2ZTk2MGU3ZjYzMWZiYjNhYTA2MWFkNTFjM2U1MDBmYTE0MjEzIGxlZ2FjeS10cnVuaworMjAzNTQgOTljNDcxY2VkMTcwMTg1Y2RmY2Q4MmRiZGU2MDRiN2M3N2VkNTFlNyBsZWdhY3ktdHJ1bmsKKzIwMzU1IGEwMDRjNjJlNjk2ZTZlMjI5MTA2ZjdhMzg3ODFjYTE5MzFmYmJkYjUgbGVnYWN5LXRydW5rCisyMDM1NiBlODc0MWRjMzZhZDEzYjkxOTQxOTQ4OTRkNjJhYzIyOTNlYThhMzk5IGxlZ2FjeS10cnVuaworMjAzNTcgYzI5ZWUzNzNmNzE4Zjc4YWI0MjM0NmQ1YWNjMTRlYThjYjYzYjVhYyBsZWdhY3ktdHJ1bmsKKzIwMzU4IGYxZWM1MmVmNzcxYzExYTZiNGJkYzRiNzhiNWExNTZhM2Y3MGE5YmQgbGVnYWN5LXRydW5rCisyMDM1OSBmMjQyNzJlODk2MjE1MjU3ODg1MWRjOTEyOTAzZTNiMjAwNWNlNWE0IGxlZ2FjeS10cnVuaworMjAzNjAgYjg0ZjA4NGIyOTkyYTgxZTZiMDZjMjA5YmIzY2VjMzVmNzA2NzYyMSBsZWdhY3ktdHJ1bmsKKzIwMzYxIDRiOWU2ODRiZWJiODcyZWIzYmUyNWZkNDdlZTVhYzMzZTZjNWIwNTEgbGVnYWN5LXRydW5rCisyMDM2MiA4YWE0ZGUyMDdhZTM2NGI0NGJhYWMyMjg2OGVhOWI4YmUwMzIxZTZiIGxlZ2FjeS10cnVuaworMjAzNjMgOTI2YjY0ZmJhNWU3ZWQ1OWEyZjQwMTNhY2Q2MzQzMTNiOTA1NGQyZiBsZWdhY3ktdHJ1bmsKKzIwMzY0IGI0ZTJiOGU5ZjFlNjg0MjM2OGY5NmZhOTQzOTk1ZjI1OTMxZTI3YTQgbGVnYWN5LXRydW5rCisyMDM2NSAyNGU4MWI0MzA2N2RjNjVmNWFhMjM4MTVkMDk0MGFjNDQ4YTJkODIwIGxlZ2FjeS10cnVuaworMjAzNjYgMjg4OGZjNjBiZjlhY2VhZDY0ZGUxMjgzZDFhNzY2NWJjOWQ5MjBkMCBsZWdhY3ktdHJ1bmsKKzIwMzY3IDMzOWE5M2IwMDg0Yzc1YjNhYzQxNzg2ZDYyMzFmZTU0NTU1ODY3NjggbGVnYWN5LXRydW5rCisyMDM2OCAxNDI1NDVkMmFhZmM4MGE3NzczYTZmOTBmYTc1MDBiY2ZiOGI2NTQwIGxlZ2FjeS10cnVuaworMjAzNjkgNGFiNTg2MjQ2NTNlN2Y1NWFlMWI5MDRhMjgwZjkyMTViOWQzNmY0ZCBsZWdhY3ktdHJ1bmsKKzIwMzcwIDI1ZjU1YjJlMzhhY2M4M2QyYmQyZWExNTRhMTc3ZDlkOWE0YjUxMGQgbGVnYWN5LXRydW5rCisyMDM3MSAwYjY5ZTE3ZTA1NWZhNzRlMjU5N2NmM2U3NmFlMTFkMDE2YTQxMDRhIGxlZ2FjeS10cnVuaworMjAzNzIgNjEzZGNkNTQ3NmI2ZTZkYTliZmZlZTMzYmVmMmYyYjRlNzNkMTBlMCBsZWdhY3ktdHJ1bmsKKzIwMzczIGVkMDdkNmE4NzNlNzM0MGM1ZWQ5Y2EyYTBmOTM5MmJkOGNlOGI0ZjkgbGVnYWN5LXRydW5rCisyMDM3NCAwNGRhZWUzYWI2MjdhMGE2OTJiYWI5MjE5NGQ1MmI5YzZiNDkzNzgzIGxlZ2FjeS10cnVuaworMjAzNzUgOTlhZDAyNTdiOTQyZGVkYzE3YzZiMmRmZGUwYWY4ZTU2MDBkNzhiYiBsZWdhY3ktdHJ1bmsKKzIwMzc2IDIyNjUwMzJlZmM5ZjBmNGJjNjI4ZGIyNGY5ZDNmNjM1NTI5ZTQzN2QgbGVnYWN5LXRydW5rCisyMDM3NyA3MTc1MmE0MWI1N2Y5OGJhNmNjNjVmZDg4YjExMTgyYTRmY2NjYjg3IGxlZ2FjeS10cnVuaworMjAzNzggN2U4MjlkZDAzZjk3YThiNjljZjA5ZmYxYWEyZmM2M2YzMzE5NWNmYyBsZWdhY3ktdHJ1bmsKKzIwMzc5IDY0MGFmZmRmOTllNTA3ZWE1MTQxMmViODcyNzE5ZDE5ZGFjMmUwMWMgbGVnYWN5LXRydW5rCisyMDM4MCA3NGU3ZTkzZWNkNDE0MTlkYTY5NTZhZGJmMmNmN2ExZGM3NzZjMjNiIGxlZ2FjeS10cnVuaworMjAzODEgOTZiZDRhODRmMWE0OTRjMjdlNWM0YWNhYjNkYjVkNDNmNmFkMTViZSBsZWdhY3ktdHJ1bmsKKzIwMzgyIGY3YzEyYmE0MjczNzA4ZWM4YTkyOTJhNzcwMjcwMmU2MDRkMjQyZWUgcmVsZWFzZTIwLW1haW50CisyMDM4MyA1ZjRmY2ZiOGQzZGQzNjY3MDFhY2UzMDgzYjRiODAyZjRmYTA1MDRhIHJlbGVhc2UyMC1tYWludAorMjAzODQgMzUxMzlhOTQ1NGQ0MzgwMTVhZTdiMjBhNzI2MmQ5MjVmM2Y2OTQwYSBsZWdhY3ktdHJ1bmsKKzIwMzg1IDE1Yjc2MDllM2UyYzg5MWQ0ZDYwMjM0ZmU2MGY1YTcyNmJmYzc0MzcgcmVsZWFzZTIwLW1haW50CisyMDM4NiBiNjVkMDg5ZTg4NDE4OTBhMTBmN2I4OGFkOWVhZjdhNmExZWYxZjA3IGxlZ2FjeS10cnVuaworMjAzODcgNmVlYTRjZWI3NTE2NTI4MmUyYjliODI5YzYwY2IyZmU4MjY5MzQ5ZiBsZWdhY3ktdHJ1bmsKKzIwMzg4IGEzNDI5M2NlZDYzYjYxMDlmNDc1ZTY1ZDg4MzY2ZjEyYzFmN2Q0Y2IgbGVnYWN5LXRydW5rCisyMDM4OSBlNTI2ZDkyNDg5NjVmNDdkNDczNWNiNTU0ZWYwOTE1NDhkYTAwYmI2IGxlZ2FjeS10cnVuaworMjAzOTAgMGIwNjBjZjc2MmNlNzM4NTE5ZTkyZTllYTRmYzQ3MmFkODI3MjBmYSBsZWdhY3ktdHJ1bmsKKzIwMzkxIDZhMzc3NjIwMTc1MDc1ZmQzY2I5NzZkZmQwMWViNDVmYTNjN2E3MzQgbGVnYWN5LXRydW5rCisyMDM5MiBmNzJkY2Q2N2NjY2IwOWNiMWE4MDE0OWQ0MWJkNTY0ZTRhNWUwYzFiIGxlZ2FjeS10cnVuaworMjAzOTMgODA2ZmQ4ODAxNWY1M2I3MzkxNjI2NmVhNGE2YTYxNzEyZThmZDYzMiBsZWdhY3ktdHJ1bmsKKzIwMzk0IDVlOTlhMWQwZWE0ZGQ3OTA0NGE3MGMwMTE0ZDI3MTg3ZGJmMWU5NDkgbGVnYWN5LXRydW5rCisyMDM5NSA2MWQ5NTRlN2JlOTkyM2E0MzRlYzk3ODNjNjgwN2UzZTY0NDFhZWU5IGxlZ2FjeS10cnVuaworMjAzOTYgYzViYWI3OTRkY2RlNjQ0OWMyODU3YjBhMmNiNjcyNmE2MjY3MzZmOSBsZWdhY3ktdHJ1bmsKKzIwMzk3IDMyN2VmYjU5ZGJjZGU3YjYwY2JhMzhjM2FjOWMzOGYyYWY3MzE3N2YgbGVnYWN5LXRydW5rCisyMDM5OCA4ZTE0MTVlZjliMjhkODMyNmViZmUyNWJjYmM1YzQxMWM2MjNjNjcwIGxlZ2FjeS10cnVuaworMjAzOTkgMTExNTNjMTQxOTk5MzFhYWE2NDZiMTE2MmM3OWQ3ZmE1OTU0ODFjMyBsZWdhY3ktdHJ1bmsKKzIwNDAwIDU1ZWUxNWM0ZWVlNjgzZjRhYWEyNTBiMDk0ODJmNWU0YjcyZWI0MmQgbGVnYWN5LXRydW5rCisyMDQwMSAwNjhmYjU4YTExZDQ4NjgxYzE1YWU5NzAzYjg1YzIwMjJhZmFjOTcyIGxlZ2FjeS10cnVuaworMjA0MDEgZDYxMTI3NmU5YWQ1M2I1ZDMyZDFlODA2NWUxZDgxMWMzMmY3ZDk2ZiBsZWdhY3ktdHJ1bmsKKzIwNDAzIDdiNjdlYjI2YjM5YWI2OGJmNTYyZjczNjJkYzk1ZGI1ZTRhZTY0MjcgcmVsZWFzZTIwLW1haW50CisyMDQwNCBmZDA2ODNjYjczMDEyZmFhYzA1ZmIzZDBjOTE2NjQ4ZDQyZDEzNmZlIGxlZ2FjeS10cnVuaworMjA0MDUgOTBhZTM3ZmY2MTdmY2ViNjA0MTYzOTI5MDE3MWNmNWQzMzViNzllNyBsZWdhY3ktdHJ1bmsKKzIwNDA2IDc2ZmFlNjE0NTI2Y2VjMWViNmI1NWRhOTViOWM2ZWRlMmM3MDg3YWEgbGVnYWN5LXRydW5rCisyMDQwNyBjNjUxY2ZkMGZmZDQ4OGE1Y2MzN2NjOWQ4ZDk2MGJhZmNmNzU0ZTliIGxlZ2FjeS10cnVuaworMjA0MDggNzczYzY0ZDM4YWM2ODk3Y2U0ZTk5OGFiNGQ2ZWFhNjA1MjM4ZGRmNSBsZWdhY3ktdHJ1bmsKKzIwNDA5IDgxODIzY2ZiNWIxNDY4MjNiMzYyMTcyZGQ4MjhiM2QwM2E4MWE5ZmYgbGVnYWN5LXRydW5rCisyMDQxMCAzM2Q3MWU4MGEwOWM3NzMxOTA5NGRkYWEwNzQyMGY2OTRlMzIxOWQyIGxlZ2FjeS10cnVuaworMjA0MTEgMWUyM2Q5MWMwYTgyMWMwNmRjNjgyNzJiNDAyYWVjMGY2NjVmZDA1ZiBsZWdhY3ktdHJ1bmsKKzIwNDEyIGY5MzljZTUyYTczNGQ1ZDJmNmIwNGMyMDY4MGQ3MGIxM2IxMzZjZWMgbGVnYWN5LXRydW5rCisyMDQxMyBmOWRmZDU4N2MxNDJiNjhkZGJkZmU5Y2NmYzlkYmUzN2M3NTE3YjkxIGxlZ2FjeS10cnVuaworMjA0MTQgMDViYWQyZjA1YmZhNmVjZWYyZjE0ZTQwODczYWY2YmI4ZDdmZGI1ZCBsZWdhY3ktdHJ1bmsKKzIwNDE1IGM5Y2FlNWE3MGI0ODI5NzIxMjUwN2ViYzQ4YmViMTQ3Yjk5MGNlMDcgbGVnYWN5LXRydW5rCisyMDQxNiBiMjg0MGEzYzU2MDFkNzc0MzAwMDI0MWY2ODcxZTQ1ZmJmOTJlNDk1IGxlZ2FjeS10cnVuaworMjA0MTcgODM4OWM0ZGY0ODhkYjA1YjNlMDE1MGJiNzg3M2QwMzViMmUzNjdjYiBsZWdhY3ktdHJ1bmsKKzIwNDE4IDc5ZWZiYzlhMDNkZWZjMzJlMzcwMDllMzlkNmE1YTI3Y2ZhNjMyNDEgbGVnYWN5LXRydW5rCisyMDQxOSA1ZmIwYzQ2NzUzZjk4MzAxMDc3M2MyOTI5ZGYxNzcxZTI1Yjg3YzM0IGxlZ2FjeS10cnVuaworMjA0MjAgMGY1YTI2YWE0ZTRhMzBhZTY0YjNkM2QxZjZkZjc5MmY0MGE0OTU3NCBsZWdhY3ktdHJ1bmsKKzIwNDIxIDAxYmUwODMzMzMwOGVhMzUzYmM0N2Q2YzY0OTBjMjMxOGE0ZjBhMDUgbGVnYWN5LXRydW5rCisyMDQyMiA1MDBkNTM0NjBmNTYwODM1OGIwNjFhYTU4NjIzOTFlZWQ1MGYxYzYxIGxlZ2FjeS10cnVuaworMjA0MjMgYzQ0NDJmYjk5ZDI2NWZiMTQ5OGM5MTM4NWUyNDFjYzk1ODYwOWUyNyBsZWdhY3ktdHJ1bmsKKzIwNDI0IDE3YTcxZDJiODFmN2NmNzg1NDJjYjM1MzhmNzk2OTM4OThlODFmMDggbGVnYWN5LXRydW5rCisyMDQyNSBjNDk3ZmEzZmUzOGEyZTNjODVkOTI2ZmUxY2FmMzlmNTJjZGM0Y2MxIGxlZ2FjeS10cnVuaworMjA0MjYgZGQ2YmU2MjVhOTIzM2Y4NTk1OTAyMTg5NGJlMDkzYjAyNTkzNmYyNyBsZWdhY3ktdHJ1bmsKKzIwNDI3IDFjZmVmOGFkZTI3MDczOTAzNDBlOTcyMmI2MGZlMzRkYzFjZjEzODQgbGVnYWN5LXRydW5rCisyMDQyOCAwMjU5MjljMTUzMWQzZDc2ZjZkZTRjZjdiZjJjZTkxZGNkYzVlZjRkIGxlZ2FjeS10cnVuaworMjA0MjkgODNjN2I0Yjc1NjY4ZmZjZDQ3MjJlZWQ1MTM5YzEwZjhiN2FkMGUyNCBsZWdhY3ktdHJ1bmsKKzIwNDMwIGQyZGE2ODFjY2I1NGRmNGIwYjJlNmUzZGU3NjNjM2MwYzgwYmFhNzcgbGVnYWN5LXRydW5rCisyMDQzMSBlMWM1MDdjZGM2ZjFmN2NmZDc3MDBlOGRlYTQwZjlkM2Y5ZWJmNTQ2IGxlZ2FjeS10cnVuaworMjA0MzIgMTYyZmE2YjEzNjZmM2I0YTQ3YzJjZGFiMGI0OTJhNzk3MzBiOGY4NiBsZWdhY3ktdHJ1bmsKKzIwNDMzIGYxN2E4MzBlMjVlYWIzNGUyMTgwMTU1NzNhOTlhYzBlYTg2NmE1Y2QgbGVnYWN5LXRydW5rCisyMDQzNCA1MmE4ZTM1ZGYxMjc5OTRjMjhiNWU1MTE3MWY4Y2MwZTk2ODQ2MjVkIGxlZ2FjeS10cnVuaworMjA0MzUgZTBhNWE2M2FkNzU2OTYxYmRiNmI0NGIwMDgwNDFkYTRkNjI1M2FiYSBsZWdhY3ktdHJ1bmsKKzIwNDM2IDQ0OTMxOTlkMmI5NTZlYzE4Y2JiYzJiZjMzZTgyMzQwNWQ2OTBlMjYgbGVnYWN5LXRydW5rCisyMDQzNiBmZjA2NWU2NzRhZjZjOWFiODk1YmQ5ZWZmN2Q5ZTkwMzlhMzc2YzdkIGxlZ2FjeS10cnVuaworMjA0MzggNDkwODViYjdiY2Q5OTQxNjk5YzlhMGFmMjk1YWRkZGQ2NTE2YzE0MyBsZWdhY3ktdHJ1bmsKKzIwNDM5IGU1MjJlZDgwZmIzOTMzYTYxYjZhNWFhMGM3YmZjZWU1YjNmYzlhNTcgbGVnYWN5LXRydW5rCisyMDQ0MCBkYTVlYWIzMzE0N2I5NTk1YjA0YzMyNGJkNzgzZDNmMmE1MDU1MGM4IGxlZ2FjeS10cnVuaworMjA0NDEgNjI1MjY5M2FmZDlhZjFjYmQ5ZDZkNjk0NmEzMjM3OWIwNmNkZThjMyBsZWdhY3ktdHJ1bmsKKzIwNDQyIDM1NGE1NzFhMDViNGY0ZTUxMDgxODdjNTNlNDNkZDM1MDI5YzI4ZTggbGVnYWN5LXRydW5rCisyMDQ0MyA2OTNmYTZiNDFkZmE1ZTBiY2U2YTI1Y2Y1NTA4N2NjYmQyMGQ4ZDYyIGxlZ2FjeS10cnVuaworMjA0NDQgODRkNzgzOWJkY2Y2M2RjMGUzNTk0YWM4OWE0OTdjODFkZTcwOWZkNSBsZWdhY3ktdHJ1bmsKKzIwNDQ1IGNiYzlmODg2NTU5NTg5Y2M0ZDQwODk4YjFjMDgxMDFjZjFmYzkzN2EgbGVnYWN5LXRydW5rCisyMDQ0NiAwNTQzNmE3NDAxMmQxYzYwMjZkOTI5MjUxZWFjYWQ2YWNhNzk2MjdjIGxlZ2FjeS10cnVuaworMjA0NDcgMWQ5OTUxZDEyNmY1YzM0NTkwOGUzMjA1MjU0NWQ3OGUzNjgzMGFjOCBsZWdhY3ktdHJ1bmsKKzIwNDQ3IDAyMGU5NWQ4MTgwZDc5NDNmZTU0NzAxZTFkYjBhN2Q3ZDg3ZTJiMWUgbGVnYWN5LXRydW5rCisyMDQ0OSAxOTY4NmE2Mjc5ZjQ3NWViODcxMTc1OGI0Y2EzM2QyNzYzYzI2ZGI2IHJlbGVhc2UyMS1tYWludAorMjA0NTAgZmZmMzAyMjFkMTlhMzRjMGVlYmZkZGRhMzBiNjU5NzVhNjg2YzQ4ZSByZWxlYXNlMjEtbWFpbnQKKzIwNDUxIDczMmRkZWU2ODk1NzIwOGIxZTdlZmEyODA5OTczMzQ5NzUwYzhjNDcgbGVnYWN5LXRydW5rCisyMDQ1MiBkMDZiYmI4YzQ5M2FjMDE2OTdlZWY0MDE0ODRhMWI0Yzg1ZDk0ZGE0IGxlZ2FjeS10cnVuaworMjA0NTMgMjhjMTRhNzlhZDIyNWI1MzIxNWYzY2Y0NDI3OWNlZmEyMGU4NjdhYyBsZWdhY3ktdHJ1bmsKKzIwNDU0IGRiOTI4YTI3N2Y4YjJlODQ4NTMzZDM5OWRiYjI2MjMyNTg3MDU3OGQgbGVnYWN5LXRydW5rCisyMDQ1NSAzNjIzMmY1NDMyMjBlZWRjOGQzYWY3YTExNDkzMzYzNjU3Zjc2ZjZmIGxlZ2FjeS10cnVuaworMjA0NTYgODk1ZmM1Yzk1NzYzZWQxMGQ3YTRkNzRkYjk4MTNjMTFkYTE0NzM4YyBsZWdhY3ktdHJ1bmsKKzIwNDU3IDI4MzY4M2I1ZTc2N2M3OTE0ZTgxODBlZWZlOWEwODBjNmRlMzY3ODggcmVsZWFzZTIxLW1haW50CisyMDQ1OCBiNmYwOGQyNzk1YjVlMjQ0MmM4ZmFhZjA1MWQ5ZjllZDBlZDQ4NzY3IGxlZ2FjeS10cnVuaworMjA0NTkgODhhNWM3NmZmYzhkM2Q4YWVlMzQyNDk2MWM5ZGM3ZTVkMmUyMzI4YSBsZWdhY3ktdHJ1bmsKKzIwNDYwIDQyYmNhZmZhNWQ5YjFhZTc0N2IzYzUyYTY4MGZjNzk3YTE1MDRiYWEgbGVnYWN5LXRydW5rCisyMDQ2MSBkOTQ0NDIzZTZmZmY2ZGMyNjI3NjgzY2QwMmNlODZiMGMxMGFjNDhlIGxlZ2FjeS10cnVuaworMjA0NjIgYTlhZDhkZWFjMTdkNWIyZmIyNmQzOTEzYmI2YmM0M2NhNDZjODkzNyBsZWdhY3ktdHJ1bmsKKzIwNDYzIDA0MDVjNjU3ZDJhYzlmZGRmMmRmZjY3ZDhiYjUzY2UzYzg3NGRjNmYgbGVnYWN5LXRydW5rCisyMDQ2NCA3NWUzMjJkNjA0ZjE2ZTI5ODcyZWUzMWY5ZDAxZjEwNmRhZWQ4NzhmIGxlZ2FjeS10cnVuaworMjA0NjUgM2VhYzIwYWZkNTRhYWFkNzQ3NzI2NmRhY2M5MDQyZjRkOTI2NjUzYiBsZWdhY3ktdHJ1bmsKKzIwNDY2IDUxOGRiNDU0ODYzMDE5YTRlOGZhYmIzYzE0ZTJhZjg5NDU0MGMzYTkgbGVnYWN5LXRydW5rCisyMDQ2NyBkMTEyZjEzNWFmOGQxNDE5ZjM3NjcyZWFmY2NlOTc1NGI4ODdjOTBmIGxlZ2FjeS10cnVuaworMjA0NjggMGRkNWQ2ZDlhOTUyYTZmMTExMDU0NjA4MzQ0NTJhNGFjMjFhMzdlNiByZWxlYXNlMjEtbWFpbnQKKzIwNDY5IDcwNzQzMDM4NDYwMzE5MTdjMjYzMGQzZjk4Y2VlYTg1NmQxM2ViNzUgbGVnYWN5LXRydW5rCisyMDQ3MCBjY2M0NGU1NDNiZWVmMTdlYjg0MTA4YjQ1OTgxZjdjZTNmYzUwMjI3IGxlZ2FjeS10cnVuaworMjA0NzEgM2RkOTg2MGU0ZTJkNGJkM2U3ZDgyNDYyNGMyNmRjZTQ5ZDRjYWZlMiByZWxlYXNlMjEtbWFpbnQKKzIwNDcyIDIyOGY0YjhkMThmMDFhOTkwODczOWI0MWI3MmZiNjU3NTA4MzMzNWMgbGVnYWN5LXRydW5rCisyMDQ3MyA0NTI2NjZjYjI4M2RmOGI5MjQ1YjMzOTA1ZmE4ZDk5MTdmMDMwZDQ2IGxlZ2FjeS10cnVuaworMjA0NzQgYzY1N2EzOTM3OTAyMDc3MjY1ZGUwYWRjNGEwNmViNzFlODU5MDUxZCByZWxlYXNlMjEtbWFpbnQKKzIwNDc1IGMxOTM3ZmFhYmIyMzc0OGE0ZTI4M2U3YzRlOTBjN2QyYWI3N2EwYTIgcmVsZWFzZTIxLW1haW50CisyMDQ3NiAyZmNiM2ZhNjdlM2I2ODc4NjY0YzUyYTM0NzljY2MxYmIzMmE3MGRkIHJlbGVhc2UyMS1tYWludAorMjA0NzcgMGQ3MGRhZWI4OTZlMWVmMzliOTA0MDMyMTlmZjI0YzllNGVmZDAyZiByZWxlYXNlMjEtbWFpbnQKKzIwNDc4IGY5OWRmMmEwZTJjZjljNjIzMTE4YWM2ZTk5MDAxOGYzYmZiMGQyYzggbGVnYWN5LXRydW5rCisyMDQ3OSBkMTZkYzI2ZWM0MjdhYjAwYjk1NDBlOGM4MGMxNjBlMTc4MjVjMmUzIGxlZ2FjeS10cnVuaworMjA0ODAgYzVmNzE5MWNlNjdlOTM0YmQxZjEyYmM1ZGQxN2NlM2E1ODYxYmU4ZCBsZWdhY3ktdHJ1bmsKKzIwNDgxIDdlYjg3Y2YxNmE1MzYwYzE0NGJjNTI5ZjI5ZjAwMzNhYmNjNDYzYWEgcmVsZWFzZTIxLW1haW50CisyMDQ4MiA1YTU4MDVhNDVkYmY0OTQxMTFlMGFhZjhmNDIxZWY2MzFmNzE4NTZkIGxlZ2FjeS10cnVuaworMjA0ODMgOTZmOWI4NmI3YjNkZGQ2NzYwZDBlYTNmNzk2MTFmYzU4MDRkMTgyMSBsZWdhY3ktdHJ1bmsKKzIwNDg0IDFlMzA0MmE0ZTYwZTJlM2NmMTI0N2Y3MDljY2ZiOWFhOWExODA0NzggcmVsZWFzZTIxLW1haW50CisyMDQ4NSA0NGEzYWM1OWMyNjhkZDhlYTUyMGY4ZmFkYjgwODJlODg1ZGViM2I5IGxlZ2FjeS10cnVuaworMjA0ODYgMWYzYTE5NGUyMWYzMWY0NTdmYmRkNDNiN2U2Y2M5MjI5NDNjMmE5YSBsZWdhY3ktdHJ1bmsKKzIwNDg3IDAwYTZiMDYwNTExMzUzNWUzZjMxODgzOGU0ODU3MTY1ODlmNmI2YmIgbGVnYWN5LXRydW5rCisyMDQ4OCA1NmYxYjhiYTVjYTE3ZDFiZDI5NTFhZmM1ODU1ZjQxODQ5NWQxNWUxIGl0ZXItYnJhbmNoCisyMDQ4OSBiZjk0YWYzOTZiMWUxMDdhZDNjZDhmMTE2NzE2YjI3NmVhODEyZGI4IGxlZ2FjeS10cnVuaworMjA0OTAgMWQ3MjZmNWNkNTdhMGZkZmJhNjIyZmFhYTM1ZmVjMmQ2NzZjOWUyYiBsZWdhY3ktdHJ1bmsKKzIwNDkxIDFiNDliMTc3YTEwNWUxM2NjYTFmMWM0ZTdiNDFmZWViYzQ2NWRiMjYgbGVnYWN5LXRydW5rCisyMDQ5MiAzMmU3ZDA4OThlYWI4NWRlODEzNGY5MzI2ODBhODVjNmU3YWJjZWMwIGxlZ2FjeS10cnVuaworMjA0OTMgYzNiYjBmZjM5NmRjYzYzM2NiNjcxOTZhNDM3NzYxMzNmNzAyM2ZmOSBsZWdhY3ktdHJ1bmsKKzIwNDk0IGUxNWFiNGU2NTJhZGNiN2ZhNTU2YTE4MTU0Y2MxMTZkNDljN2I1NjIgbGVnYWN5LXRydW5rCisyMDQ5NSAxZmU4ZTUwZTZlMWI5ODJkN2I3ZGQxZjY4ZTZhOTRkNDA2YTM1YjM1IGxlZ2FjeS10cnVuaworMjA0OTYgYjZkYmZjNDVhYzliZjE5MDM4ZTFjZDMyNThkOWI5YWMyMDg0MmYzOSBsZWdhY3ktdHJ1bmsKKzIwNDk3IGY2M2Y3NDkzNjRlZmZkZDM2ZTBmN2M4NDk5MThkOWI2NzkzMjk1NTQgbGVnYWN5LXRydW5rCisyMDQ5OCBkNjM4ZTQxOWMzMDQ1MmQ5ZDFkN2ZlOWE5ODYxZmQwYjlkNDVlZjNkIGxlZ2FjeS10cnVuaworMjA0OTkgZDMyNGFlMjg5MmZmYTRhYmZiMjE3ZjVhNTk4OWE3ZDJkMDlhOTBlOSByZWxlYXNlMjEtbWFpbnQKKzIwNTAwIDRkN2ZiMjRmZTc5NTNmOTBmODM2NGIyYTFmYWQ5MjZiMmU2YmJhNjUgcmVsZWFzZTIxLW1haW50CisyMDUwMSA0YWJkMDcyYWIzZDViNWJkYTFjZDZhY2JkMGFmNzEyOTIyMTNhZDVhIGxlZ2FjeS10cnVuaworMjA1MDIgMzg3ZTgwZTExYTc5NWZjZTU2NzY3Y2Y0OWZhYzMyMWEzZTdjZGYxZSBsZWdhY3ktdHJ1bmsKKzIwNTAzIDIyYWYxNWY4NDEwYThiMjc3MzQzNGQ5YWZjZGFjMjI4YzA0MjE4NDIgbGVnYWN5LXRydW5rCisyMDUwNCA3OWYwY2QzYTcxYTFlOTk2ZWQ4NDNhMjBjNzE3MGNiOGRjYmM5MmNlIGxlZ2FjeS10cnVuaworMjA1MDUgNjI0ZmM5NzEzZDE4YjExMDE1NmRmYjY2OTJkNmE1ZjI2MWYwYWY4NCBsZWdhY3ktdHJ1bmsKKzIwNTA2IDFlYjAwYTEyM2EwZWNkN2Q2ODE0NjIwOTA0MDM1YjBiYzU5NTFiZDYgbGVnYWN5LXRydW5rCisyMDUwNyBjMTlkNmRiNmU5OWI3YWFjN2NmN2M4ZWM5YTIwZmFjNTU4MDY4MjY0IGxlZ2FjeS10cnVuaworMjA1MDggN2RjZGIxNmJkMDY4Y2NhZWM1OTE3NDc1NmQ3OTljM2I0Mjk3NzQ0MCByZWxlYXNlMjEtbWFpbnQKKzIwNTA5IDE4ODU0MTdmNDVkYTM5ODU1YjhjNDIwMjgzNmEyZjQzYjAwNjdlMGEgcmVsZWFzZTIxLW1haW50CisyMDUxMCBiODMwZGYwODNhOWFkZDA3MDliNjhkMGI1MTkyMzE2YTAxMTE4NTg2IGxlZ2FjeS10cnVuaworMjA1MTEgN2FjYmE3OGUxZTA5MWRiYjdlZWMyOTA4MzAxNmY1YmI5MWMxNzhlNiBsZWdhY3ktdHJ1bmsKKzIwNTEyIGFhYzY1ZjUwZGY2ZmYxNDRiNjcwMWZlNTFhMTYzYjMwYTZiY2QwMmMgbGVnYWN5LXRydW5rCisyMDUxMyBiNDRiYTdjMDEyMTc3NWQ2NDQxMGNmMWM5M2QwMjc1YjVjODJhNGI0IGxlZ2FjeS10cnVuaworMjA1MTQgMWI3MzBiZjNmOGQyYWMxZDE1MjM3ZWM5ZWVlNGQ1MmQyNjdkZmM2ZCBsZWdhY3ktdHJ1bmsKKzIwNTE1IGVmYjVjODE0ZmZiNmFiNDg1NmNlODIyYmYzY2VhNzMxNjMzYmM2ZDEgbGVnYWN5LXRydW5rCisyMDUxNyA5OWU5NDZhODI2OTkyMTcwNjBiOTVkYTQ2MmFiN2Y3YWZiMDA2YjJhIGRlc2NyLWJyYW5jaAorMjA1MTggZTJhZjkwYjYxYjJiZDI2NzliNGVhY2NlM2Y4NGQzNWRjNjY0ZGMxNiBkZXNjci1icmFuY2gKKzIwNTE5IGI3YTcxMzViY2NjOGIzZTFhZDE0ODVlN2Y3NzBlZTZkNDExZGU4YTIgZGVzY3ItYnJhbmNoCisyMDUyMCAwYjVkM2UwMzEyMDE4YWRjY2QwOTAwNzZlYmUxMWYwYThkY2JmYjA3IGRlc2NyLWJyYW5jaAorMjA1MjEgYzk3YjM3MTM2ZDgzZTM1MzAwNTA5YmVhNTJhNDViMTFhZTFlYWJhMyBkZXNjci1icmFuY2gKKzIwNTIyIDY4MTkzMTBkZTgyODQ0N2NkZGZmZjBkNjAxNjUwNjkxYWZkNTU5YmEgZGVzY3ItYnJhbmNoCisyMDUyMyBhMWYwN2ZjYzNkNDEzZjc1MjdmNGZkOTUyMjIwZTNjOWM3MDNlYzEzIGxlZ2FjeS10cnVuaworMjA1MjQgNDRhMGE5YTI3N2VmNjkxYTNjYjNkYjY4NWFmMTA1N2I5Mzg2MDg0NSBsZWdhY3ktdHJ1bmsKKzIwNTI1IDE2ODYwODBhN2M2YzM3NmQzN2IwNWVlMjUyMjk3ZmI5MDQ3OGQ0OTEgbGVnYWN5LXRydW5rCisyMDUyNiBkOTFmYzAyMjY4ZDhkMDEwYjcyNWIxMGYwMGI1NzRjOWUxM2U3Y2FmIGxlZ2FjeS10cnVuaworMjA1MjcgOWMxMTMyZjMwOTVhMDYzYWU0YmU2YzM4N2E2MDcyMmUxNDU0NjgzNiByZWxlYXNlMjAtbWFpbnQKKzIwNTI4IDk1MGYxYzNhOGU2YWExNWYxZDQzN2EyODIyMTkwMzE2ZGIyYTAzNjUgcmVsZWFzZTIxLW1haW50CisyMDUyOSA3ZThlZDZlMzllYmQwZDc1NTkzZjAxYWQzMTM4NzdlOTFkZWJiMDdlIGxlZ2FjeS10cnVuaworMjA1MzAgOTFjYmQwMWI4NWNiZGY5MWFjMzUxZjdkN2QxMGQ2M2M3MTk5MTZmOSBsZWdhY3ktdHJ1bmsKKzIwNTMxIGE5NDg1ZDQwNGYwNWQyNDEwNjM3MTE0NTBhMTk3NzZjYjg4NTQ1OGYgbGVnYWN5LXRydW5rCisyMDUzMiBkYTQ4MDk5NDdhMzIxMDViOGY0ZDJiNzUyNjFjY2YxZTU1NmUyNDAxIGxlZ2FjeS10cnVuaworMjA1MzMgMjQ5MTIzYzFmNGRjMTEzNDBhNGI0MGM3ZGY0NWQyZmMzM2U0NDY3YSBsZWdhY3ktdHJ1bmsKKzIwNTM0IGZjZGRlNjgwMzMxZTVhZWNjNDg0MmIyM2YxMDAzOWQwMTY1ODJmMmYgbGVnYWN5LXRydW5rCisyMDUzNSA3ZjVlM2U2YjJhMzkyMDc1MDBjMjBlMDljN2RiMWZhNWRhNTU0Y2U1IGxlZ2FjeS10cnVuaworMjA1MzYgMGJjMzM3N2QwZDcyMDhiYzIyMzliYWM0MDQ3OGM2MGZlNjYwMzY4OCBsZWdhY3ktdHJ1bmsKKzIwNTM3IGI3ZGY4OGE3OGFkYmFiODFkOWY4N2I2ODA1OTk5NjlmNWFmMGQ2ZDggbGVnYWN5LXRydW5rCisyMDUzOSA5OTIxYTlkMjdmNzI4YzYxOTA1NjEzZWY2MmVhYjAzZjE5Y2UyM2M1IGxlZ2FjeS10cnVuaworMjA1NDAgOGZmNzZjZjMwYThjYzM3Y2Y2ZWVhMzZjZjYwNGI0YmViNzk5Yjg0OCBsZWdhY3ktdHJ1bmsKKzIwNTQxIDdkNjc2YjQyMzdhOTkzMmY5MTNmYjI4MTMxN2RjMmM5MTkxMDEwMzggZGVzY3ItYnJhbmNoCisyMDU0MiAzMmU3MzViZWYwYmMyOWIwNTY5MzY2NDc0ZDExM2NjYjNlYTg4NWI3IGxlZ2FjeS10cnVuaworMjA1NDMgYmQ2NWY4ODkzYmUzYWVmNDA1MDE0YzVhMzI3OWNjYWEzMzNkMTE5YyBkZXNjci1icmFuY2gKKzIwNTQ0IGIxMjU0MTYzOTRmYWNhMzA2NGZmZDdmMjEyODIwZGI0ZWJmNjczNjkgbGVnYWN5LXRydW5rCisyMDU0NSBhMTllNjhlMzY1Yzc1NzFkOTc4NDk0NjEzMWIzODg1N2RjMjFmZmMzIGRlc2NyLWJyYW5jaAorMjA1NDYgOTkzNDIyNWZlMjk3ODI3NDBiZjBiZmVmMDhlMmE2MDBmYjY4NGRjMCBsZWdhY3ktdHJ1bmsKKzIwNTQ3IDliZTc3NThhOGM5NGM4ODk2OTc0MzE5YTYzMzBkZTI0ZGQzMTA4ZTYgbGVnYWN5LXRydW5rCisyMDU0OCBiMjgyMzYzNDlkZTUxNDczNzExMWQzYzVlNjZjNGYxMTEyMmFiMzc4IGRlc2NyLWJyYW5jaAorMjA1NDkgOWU4MWQzOTFiNzY1ODlkODZmYWNjNDVkYWMyYWQzNTVjMzcwMDU2NyBkZXNjci1icmFuY2gKKzIwNTUwIDk4N2NlYjllYzAyMzMzZGMwYjFkMDM1MzY1NGRiN2Q3ODVkMjhjOTggZGVzY3ItYnJhbmNoCisyMDU1MSA4ODdiNTI5NzY1MmEzYzZmYWZhZjBkMmVlNGFiYjYyYjA3Y2ExNGMzIGRlc2NyLWJyYW5jaAorMjA1NTIgZTA2YzM2YzEzZjEyODYyNDNlZDA4NWRmMDUwNTU0MzU3ODFlNDkxNCBsZWdhY3ktdHJ1bmsKKzIwNTUzIDUzZWUwZmE2NzY2MTdhOTE3YzlhODJhOWU3MTFkYzI2ZTRhZjAwZjAgZGVzY3ItYnJhbmNoCisyMDU1NCAwMTNkZWI1ZTE3MmJmNWM5NGExMzZlMTE3ZmEwNTE1ZTc3ZDBiN2M1IGRlc2NyLWJyYW5jaAorMjA1NTUgNzAzN2QxZjZlNzlhZWI0Njk0MDAxZjdmOTYxMDg0NjZmNTJjZjUyNCBkZXNjci1icmFuY2gKKzIwNTU2IDU4N2RhMjlkNjlkNWQwY2U5NzE0MzU0MTQxNDc5NmQ2YmU3OTNjMTAgZGVzY3ItYnJhbmNoCisyMDU1NyAxNzIxMjYyYWJhYTgyYTMzN2RiYWViNDU3M2YyMWY5ODE3NzRmZTljIGRlc2NyLWJyYW5jaAorMjA1NTggNGI4MTFhNzFiZTVjMmZhZDk3YWU1YzlmYTIyMGFiMjljZjFjNzBiYSBkZXNjci1icmFuY2gKKzIwNTU5IGFlMDc1OTlhZGYzM2Y3YTg2ZGJkNzVlNWNmYjdlZjY3MjgxMWY3NzUgZGVzY3ItYnJhbmNoCisyMDU2MCBlMmRhZWYwNjg0OTZiYzEzNmI2MTMxNzRjNzQ1MDA4MzdiYTRlMWQ2IGRlc2NyLWJyYW5jaAorMjA1NjEgNTZjNTQ0NWVjODM1ODZlNWY3NzdhYWZjYTVkMDZhNjMzZjM2ZTU4ZiBsZWdhY3ktdHJ1bmsKKzIwNTYyIGFhNzA4N2FjNmQ5NTU5YmM5OTFmOGRkMDlmNGRlY2Q0Yjc0NjcwMDUgZGVzY3ItYnJhbmNoCisyMDU2MyBiZDMxM2E1ZTIwZDc4OGZmOTBkMTEwNTA1N2YzNmY5ZjQxZGY2NDBmIGRlc2NyLWJyYW5jaAorMjA1NjQgNWRiZmU4MzE2MjM2Mzg5Y2U3YTNkOWU2MGJkODgzMzk4YzRhMWY3NSBsZWdhY3ktdHJ1bmsKKzIwNTY1IGI1ZjU4M2VlY2IyMDNjNGMyODRiMjBjYzM0M2IwNGM3NTIwMDExNzAgbGVnYWN5LXRydW5rCisyMDU2NiBkMWVjNjc5YmFhM2RiODJhYjg1YWRjODA3YzJhZDE5ZDBlMTUwYzQzIGxlZ2FjeS10cnVuaworMjA1NjcgNTU3YWFkM2U3NGJhNjM0YjAyZmViODA3NmQxM2I3NWIyYTI5NDNmMCBsZWdhY3ktdHJ1bmsKKzIwNTY4IDZjODIyNzdlNzdmMzU3ZDc0YTM1NzE4MDQ3NmQ0YzQwNTgwYmUwNmUgbGVnYWN5LXRydW5rCisyMDU2OSBkZDI0YWJjYjIzMzFjNzhjZDY4ZDVlYTRkNzI5MjkxNWU4Y2M5NDE3IGxlZ2FjeS10cnVuaworMjA1NzAgMTExODFjZDM4OTdkYzFiODAxY2MxZDE5NzY0YmMzMWE3MDVjZjVhOSBkZXNjci1icmFuY2gKKzIwNTcxIDdhMzY3YWQ0M2YzNTIzOGQ0NjY0Y2NmYjk4YWY0ZTAxOTRhYzczNzkgbGVnYWN5LXRydW5rCisyMDU3MiBmYTgzMjZjYzc2MWNiM2FmZmQ2ODAyZWUwM2UxM2IzNWE1ZjA0YTc0IGxlZ2FjeS10cnVuaworMjA1NzMgZWJjMjRhMTA0MTMyOWM1ZWVmMmU1MGFlOWM5ZjZhNjQ4NjI4OGVkNyBsZWdhY3ktdHJ1bmsKKzIwNTc0IGE4NDg3NDY4N2NiMWNkZTM4NzE3ODA5ODY1YzU1Nzg4YTA3N2I1MTEgbGVnYWN5LXRydW5rCisyMDU3NSBhOTdlMThlNDk5YTljZjdiMWJiNGMwYTlhMjNkNGM5MTU2ZjA1ODQ1IGxlZ2FjeS10cnVuaworMjA1NzYgMDQ3MGJhYmRhZTQ5ZmVlODMzNjQ4NGU0ZDEyMzk3ODdkY2VlOGVkOCBsZWdhY3ktdHJ1bmsKKzIwNTc3IGE2Njk4YTAxNmFmZTIwNjFmNzc3NDViMTcyYjhlMDI2MjQxNGY3MDAgbGVnYWN5LXRydW5rCisyMDU3OCAwODVmNDYwYjBlM2I1OTk0YTI0YmQ4NDBiMDIyOWFlYWY2MGRiY2I3IGxlZ2FjeS10cnVuaworMjA1NzkgZDY0OThiMWVmNTBkMWNkOTNmMGQ3MjY0MjkzYjhlZjUzMDFmYTNjMiBsZWdhY3ktdHJ1bmsKKzIwNTgwIGRlYjhhNWUxNTFhMzQ2Y2Q1NGE2NGIwNDY3Y2RmZjBhMWRlMjg2YjkgbGVnYWN5LXRydW5rCisyMDU4MSAzMGQ3NTE4ZTE3ZTViZmE5MzUyZDI1Njk4NWFjNjRjNzA2MGU0NWZkIGxlZ2FjeS10cnVuaworMjA1ODIgMGZmNGNkZjM0ZmMxYTUwZjNlMGI2ZjQ1YTdkNzRhZGVmMWQwNmE1ZiBsZWdhY3ktdHJ1bmsKKzIwNTgzIDY0NTIzMzA3Nzk0ZTkzNTQ3YzU4NTYyNWEwNmI0YjcxZjNmYmZjMzcgZGVzY3ItYnJhbmNoCisyMDU4NCA1YjZkNTk2MWM5ZTM4ZTBmNjJmMTk0OGRiYjM2MzMzYzYwZjZiZTc0IGxlZ2FjeS10cnVuaworMjA1ODUgZDc2NjQ5YmQzOGQwMWM5NmU1ZGUyNmMxY2RmNmIwMGJjM2MxOTE0ZiBsZWdhY3ktdHJ1bmsKKzIwNTg2IGI5MDc2ZDg3MThhYjFkMmRiYWQwYTBjNDRkYWEwOGZkOTdmMDE3ZTIgbGVnYWN5LXRydW5rCisyMDU4NyA0YzI5YjA0ZTRkNmZjMTg2YzUxZmRmMTQyMmU4YTEyNjliNzUxNzQ1IGxlZ2FjeS10cnVuaworMjA1ODggMTJjODBiNTcwZDAwYTBlY2I5MjliOGNiZTY3YWZiZDQ1Y2MxMTI0NiBsZWdhY3ktdHJ1bmsKKzIwNTg5IDc2ZWU4YjYyZWUyYTgyZDYyM2M2YzRlMDkxYTRjOGNmZjEwZWRjNjYgbGVnYWN5LXRydW5rCisyMDU5MCAxNWNjZTNkODBkMGZkOGQzYmIxYTc2ZDMwNDA3YWE5NjI0OGI1MmE1IGxlZ2FjeS10cnVuaworMjA1OTEgZDdkMDUxMDNjMDIzZmM2NDU5OWNjYWUzNGYxZmQxMjQzN2IxMDJlNiBsZWdhY3ktdHJ1bmsKKzIwNTkyIDhkOWViNWE0ZWJjZDk4ZGRiNTg0ZTk0ODcwYWQyYWNhYjRlZTc1ODIgbGVnYWN5LXRydW5rCisyMDU5MyA5OWIwNmE2NDliMTQ3Yjc1MGM3ZDhhZGY1ZTYxMzZiODkyOTkyYzA2IGxlZ2FjeS10cnVuaworMjA1OTQgNzk0OGNkNGY3NjYzNzQyNDNmY2ExNDg3Y2I2ZTRhYWU3ZTQ3ZmNiMSByZWxlYXNlMjEtbWFpbnQKKzIwNTk1IDg2NDNlNmRlMTNkZmE3MDM1YTRlOGRlNDNiMjNiN2RhMzg0ZWIwYjcgZGVzY3ItYnJhbmNoCisyMDU5NiBlNmU4MWRjZWJmZGU1ZDllNGMyNTYzYTgxMGMwMmY5ZTBlNGNmNTRjIGxlZ2FjeS10cnVuaworMjA1OTcgOThmMzRjNDY0M2U5ODAwMTI0Y2JlNGRkZjBmNjRmODdjNDFmZjJhOCByZWxlYXNlMjEtbWFpbnQKKzIwNTk4IDBiZTI3NzAzOWQ5M2I0MmYzNmRhN2NmOTM1MWZlMzJjOGU3M2JlYzUgbGVnYWN5LXRydW5rCisyMDU5OSBkODA1MDAwNzZlOWZiOTVjZmY4MmI4MGUyNDI5ZDhmYjU1NzE2NDhiIGxlZ2FjeS10cnVuaworMjA2MDAgYmY3ZjE2NmQzYzk3NDYwZGIwZTg5MjJlMGE1NzkxN2VhNDQ2NGJkMCBsZWdhY3ktdHJ1bmsKKzIwNjAxIDU1ZTMyMDE4OTUwODdiM2VkMTE1MTUzMmY5NTg2MGI1ZjI5NmI1YzUgbGVnYWN5LXRydW5rCisyMDYwMiAxYzJkMjZlZWY3ZWQxYjU5Yzk4MmQ3NTVhMTRkODRlNDYzOTgwMzhiIGxlZ2FjeS10cnVuaworMjA2MDMgYmI2YzU5YTg1Y2ExNDdkZDE0ZDc3YzdjOWViZWQzN2JlYTBiMDdhYSBkZXNjci1icmFuY2gKKzIwNjA0IDhiMGMwYzQ4MmE1NWZkMDZkOWVjZTlkMzdkN2MwZjY2N2Y0ODFkMGYgZGVzY3ItYnJhbmNoCisyMDYwNSA4MzlmNmYyY2Q2NmYzY2ZkYTI2MTk5NjgxNWFlMGViOWY4ZWFjYWZlIGRlc2NyLWJyYW5jaAorMjA2MDYgMzA5MWZiODNkNTI3MWNjZDM5MTI3N2FiNTNhNzgwZjY2ZDM2NWU2NiBkZXNjci1icmFuY2gKKzIwNjA3IDhmYzdiZWNmNzgzOTQ3MjkyN2ZmNjQ4Y2RmNmY5YmQ5ODJlZTE4ZmUgZGVzY3ItYnJhbmNoCisyMDYwOCAwYTllM2FhNzFkYjlmMjMwYjg1N2U4OWQ4Mzg0M2VkNWE5OGMzOGJkIGRlc2NyLWJyYW5jaAorMjA2MDkgODJmOGEyYjFiNzljYzMyZGIxNmE3Njk4ZjJjNmFmYmEyMGMyZTNhMSBkZXNjci1icmFuY2gKKzIwNjEwIGZjNjU4YWRjZWRjOGU5YjRiYzI4NmU5NWZlNWJmMmM5NTU2MzJiNWEgZGVzY3ItYnJhbmNoCisyMDYxMSBmODllODUxNTNkMDQ3NTM5YzRmNDc0MzQ0YTBjOTY4MDJiNWZjMGY1IGRlc2NyLWJyYW5jaAorMjA2MTIgMzljYWJkMGFhZTFlYmQyODUzZTVjYzU4Y2YzNjZjN2IxZDM0ZGIzYiBsZWdhY3ktdHJ1bmsKKzIwNjEzIDlkMWUzMDRlY2IxOGE1OGRiNGZkYWNjMzA4MWFkMmE3NTU4NGQ1MjkgcmVsZWFzZTIwLW1haW50CisyMDYxNCA1NTI3ZDYyZmFmZTA1ZTZiNjZhNWU4MGE5ZjZlMGZiMWFmZGRjNTk0IHJlbGVhc2UyMS1tYWludAorMjA2MTUgNmY4ZWZkYmRmZjQ4MjNiY2FmZWRlMjFjMzhhNmVhOGExYzFiNTZlMCBkZXNjci1icmFuY2gKKzIwNjE2IDE2MmI5NGM4ZDJkMWE5NGFlNmI4YzQ1Zjc1MTA4ZWFjYWU3NjI5YTkgZGVzY3ItYnJhbmNoCisyMDYxOCBlOWE0ZTI3ZThkNGUxNmUxNGIzMmFiMjY2OTUzMDM3ZWEyNDY4MTE1IGxlZ2FjeS10cnVuaworMjA2MTkgMzk5ZDk5NjAxYjJkYzBkMmU3YmI0YjU1MGQ4NDIxOGMzNzczZDE5NSBsZWdhY3ktdHJ1bmsKKzIwNjIwIDBjOTg3NzEyMGYzODE3ODNmNzUwM2JkY2FiNGQ1NjAwNTA2OTNmNmIgbGVnYWN5LXRydW5rCisyMDYyMSAzY2Q0YWY2NjZkZTZiM2U2ZjAwYzgxMjIyMjBiMWFkOWY5NzU3YzM5IGxlZ2FjeS10cnVuaworMjA2MjIgOWUwOTNiZjhmNmE5M2YyYzMzZDdjZmFiMDkxNjZiZTZkMTk2OGU1OSBsZWdhY3ktdHJ1bmsKKzIwNjIzIDFlYmI0ZTU2NjI1N2FhODlkZWQwZjNkNmYwMTA4MzRmNWFhMDE0YWYgbGVnYWN5LXRydW5rCisyMDYyNCA0OWQ5YmE1NTU4OGI2N2I2Y2M2MTFiYzMxNGZiOWFhYTYzOWI0ODExIGxlZ2FjeS10cnVuaworMjA2MjUgZWU0ZDE3ODYyYjYxODBiMTQwNzU4MGZmNTc2OTM3NzQ2NTQ4M2QzMiBsZWdhY3ktdHJ1bmsKKzIwNjI2IDAwMmVjNzMzYjVkYzViNjM4ZDVjZGQ1MDA0N2FhODQwNDc0ZWU0MjkgZGVzY3ItYnJhbmNoCisyMDYyOCBkNGQwNjUyOWMyMTgxMWQzMGVjYjcyYWUyYzIxMTIyNDdlZjgyMTA0IGRlc2NyLWJyYW5jaAorMjA2MjkgOWU1M2E1ZDcxZjFkYTFlZjMxMDQ1ZjVmMzNhMzY5NjYzZWRkMWQ5MCBsZWdhY3ktdHJ1bmsKKzIwNjMwIDE4MTI0NzZiN2ZlNDU3MDIxOGUzZDZjNTNhZmU5NWRkOGZhNjg0NjggbGVnYWN5LXRydW5rCisyMDYzMSA2OGU3MWU5YmMyMDQ1NDJhOWEyY2RkYWQxNWIyODUwMGIxN2I3NTBmIGxlZ2FjeS10cnVuaworMjA2MzIgYWFiNmMxZjE5Mjg5ZGNmZGJkYmEyYzE5ODY2MWNlOTcxMThjNzAzMCBsZWdhY3ktdHJ1bmsKKzIwNjMzIDMwNjRiNzNhZGMxYWQ3NzA0YTE5ZWU3YzIxNDY2ZDM1MjViZmNhYjkgZGVzY3ItYnJhbmNoCisyMDYzNCA0NDI0ZTA2ZDQxNTk1NGZhMTIyNzdiM2I2YjI3MWZjZjQzMzUzNzQzIGRlc2NyLWJyYW5jaAorMjA2MzUgMWU5MDJmYzczNjQ1MTg1NDczZDc0NTQxMDI4YzhiNDZkMjIxZDcxNCBsZWdhY3ktdHJ1bmsKKzIwNjM2IGZmYzI5MjNiYWQxYTk2NDU4YmM2YTg5OGIyYTJkODAxMGRiNzYyOGQgbGVnYWN5LXRydW5rCisyMDYzNyBmOTcwMTk1MTk2YzRmYmU3NjMxMmNkZmY1ODRmOThjMTlkODZiZWNjIGxlZ2FjeS10cnVuaworMjA2MzggYWFkMGFkZjgwNmFkYzgyZGIyNmFmMTQ3MmExMjk4ZjgwZTlkNDUyMSBsZWdhY3ktdHJ1bmsKKzIwNjM5IDM3OWZlODg3NjQ0ZmI4MGM2M2Q3OTI3MjkxYzE3MGZjMzdmYjJiYTEgZGVzY3ItYnJhbmNoCisyMDY0MCA1NDYyMzYyNmRhNGUzYTFmZTkxOGJlYjFlZTM3MGYwZTQ4NGU0M2NhIGxlZ2FjeS10cnVuaworMjA2NDEgNDMzMDEzYWY0NTk4NzhhOGIwYzQ0NWIzYjVmZjAzOGUyZjQxZjg5ZiBsZWdhY3ktdHJ1bmsKKzIwNjQyIGRlZDQxYmU4NGRhNGZhY2MxNWQ5ZmMwNzJkODM3YmY0OGZhNWEzNjggbGVnYWN5LXRydW5rCisyMDY0MyBlM2YwZmQzOGMyNGI3MGIwOWI1OTE2ZDM2OWE4MWE1ZDdmZjRlZTE4IGxlZ2FjeS10cnVuaworMjA2NDQgZjNiODc4NWJkMDIyMmE2MWZlMmJiYTM4MDMyNGRjN2I4YWMzOThkMyBsZWdhY3ktdHJ1bmsKKzIwNjQ1IGI0MWY2ZWY2ZWE4Zjc4ZjE2YWNhYmM4MDgwYmE2OGE3ZDUzN2JlODggbGVnYWN5LXRydW5rCisyMDY0NiAyZjE2MDYyYTFiN2M3NWNmYmU2NjBhOWY4ZWE3N2VlZWFjZjg5MzY5IGxlZ2FjeS10cnVuaworMjA2NDcgYWQyNWJmY2M0Mzc3MTVmNzBjZmQzNzdkOWVmYWE5OGJlYTI5YTMxZiBsZWdhY3ktdHJ1bmsKKzIwNjQ4IGZlNGMxMDM0YjQ4MDEzYjRmMjJkYzc3MThkMzE1YzFlZjlkMWFlMWQgbGVnYWN5LXRydW5rCisyMDY0OSBiYThmOGU0ZDQyYjA0NzkyNWY4MTYxNjA5ZjEwYjY4NzRhNGVhNjU5IGxlZ2FjeS10cnVuaworMjA2NTAgMWM4NmM4ZDFjOWM3NjJhNzIyYTY2ZWE2YzRhYjdhY2I3MDU3MjZhZiByZWxlYXNlMjAtbWFpbnQKKzIwNjUxIDYxOTllNWJkMzcwYjU2MGM0NTMzODg1MmMxYzE3ZjJjMzZjOGI4MDQgbGVnYWN5LXRydW5rCisyMDY1MiAzNTBiZTE5Y2E2YTVmODlkZGNhNmI2MjhhNWJiYzA2YmZlMWE1NzRkIGxlZ2FjeS10cnVuaworMjA2NTMgMmE3Y2ZjMTcyYTY4NGEwYTJkNzQyMDE2OWI4NWM2OWM0NDZjNzJhZCBsZWdhY3ktdHJ1bmsKKzIwNjU0IDVlM2JhYjhhZWY3YjBmYWEyN2MxZGFlZDU4MGNkNjhjYmFjNmEyY2QgbGVnYWN5LXRydW5rCisyMDY1NSA2NDkzZDVlOTQxYzJhODBmZmVhNTgyZmMyNzQxYWI0YTg4YzY5Mjg2IGxlZ2FjeS10cnVuaworMjA2NTYgZmY4MTBmYjU5NTEzMjE5YWNkMmNlZDY5MjRjZDkzMGIzMTc5N2JmNiByZWxlYXNlMjEtbWFpbnQKKzIwNjU3IDc1ZTc4MTQwNDFkYWNiOGViZDNmOTQzMmU3NzMzOTdjY2VlOWVlYzUgbGVnYWN5LXRydW5rCisyMDY1OCBhNmEzOTlhY2Y2MjA2NGY5YWMyZmE0MTJjNjUzMDQ0NzVmZTJhMGM5IHJlbGVhc2UyMS1tYWludAorMjA2NTkgOTk0OWM4NzBlMTQ0MjBhMjY4MjY3YjRhOGQ2MDYwOGY5MTY1NmJmNSBsZWdhY3ktdHJ1bmsKKzIwNjYwIGJiMDk1MzQwYWM5ODc1OTNlYzE5NGUyNGE4ZmMwMGVmZjY2ZmUyNzggcmVsZWFzZTIxLW1haW50CisyMDY2MSBlZGUyOWFkNjQ0MGFjMDI4YjgzNzA4YjQwZjU1ZjU4NWQ3ODZlODYwIGxlZ2FjeS10cnVuaworMjA2NjIgMWRlYTQzMWZiMGEwNDExMjMxNzg3MjRhMzBmMThiYWUwMjM2OTczNCBsZWdhY3ktdHJ1bmsKKzIwNjYzIGNkOTJjMGQ3ZWFjNDdmOWQ0NzU2NjdiMTE2YjEyZTcxMzEwYjdiYzMgbGVnYWN5LXRydW5rCisyMDY2NCA5ZjZjZmRmNzFkNTA2OWFhNDMzMjRjNTk5NjcwNDI3OTk3NzI5NTg1IGxlZ2FjeS10cnVuaworMjA2NjUgNmRjMzYwNzhmNTNlMWU4Njg3ZWEzYjEwZDE3YjNlMjIwN2ZhNWRiZiBsZWdhY3ktdHJ1bmsKKzIwNjY2IDFiMWYwY2IyODVjMjU4MzZhNjIyZjE3OGMyYjY0NDJiY2NkM2MwZTEgbGVnYWN5LXRydW5rCisyMDY2NyBiZGVkNmQzMTg2YzBkMjk4YWQ2N2U5MGJjZjg3OWVkYTQ5Zjk5ZDFmIHJlbGVhc2UyMS1tYWludAorMjA2NjggNDg5NjYzMDU5MzQxMzIyZDI3M2QwOWM0YjA5MGFmYTUyMzRhNDQxMSByZWxlYXNlMjEtbWFpbnQKKzIwNjY5IGE2MjZmYTBlM2Q3NTA0ZDZjZTcwOWM1YjE0MDk5MDQwOWQwM2QzMDggbGVnYWN5LXRydW5rCisyMDY3MCAwY2ZhZGQ3NjA3ZDUxZTI1NGQyMjU5YmM5N2FlYWUyMGRlNTI1MWE2IGxlZ2FjeS10cnVuaworMjA2NzEgMDZkN2RhODE0MDlkZTFjMGZjNGYzMzI5NDNiNjZlMGFiY2RmN2I5YSBsZWdhY3ktdHJ1bmsKKzIwNjcyIGUxM2VlZGQwNGE0YTgxYzc1YzEzNWZiOTBhNjA0NjZlN2YyMTQ2MGYgcmVsZWFzZTIxLW1haW50CisyMDY3MyBlNzg1ZDdiZDc1OThmYTQ5ZjBlZjUwODdjOWVjYjYyMDNhZGNlMjA0IGxlZ2FjeS10cnVuaworMjA2NzQgNjBmOGMxNWMwMjU1ZGI5ODdlM2I3NjYwNzVkOWMyZTA4OGY2NWMwMCByZWxlYXNlMjEtbWFpbnQKKzIwNjc1IDM5YmYxZjZjZjBmOWJkNWY4MjA2ODE1YWY2YWYxZWZmNjFlZjUwYzYgbGVnYWN5LXRydW5rCisyMDY3NiAxNDc2MzJhZDFiY2MzYTNkNzMzMzIzNzNmMjMzZTYxZGE5OThlNTZiIGxlZ2FjeS10cnVuaworMjA2NzcgNDM3NDgyZmU1NWU2NDc3YzU1MjMzODE1ZjIwZGZlYmNhOGRkNzQ0ZSBsZWdhY3ktdHJ1bmsKKzIwNjc4IDBlYmZlOWExZWI0M2U5NWM0NGJjZDBmYTkwNzkwN2RlZmE5YjU0MjEgbGVnYWN5LXRydW5rCisyMDY3OSA4MjBlNWEwYzMxMTJmY2YzZDc5YjdkOWJlYjM2NjQ0MWEzYzFlYTQxIHJlbGVhc2UyMS1tYWludAorMjA2ODAgZjk3MWYyNTJkOWI4N2E2NTYyN2ZiZDY1YzIwMmM4YTI4MDRmOTU0OSBsZWdhY3ktdHJ1bmsKKzIwNjgxIGQwNWRiZjNmMzZmNjcyOTQyOGNiOWVlNjUxMWYyYWRhNjIwNTRkNjUgcmVsZWFzZTIxLW1haW50CisyMDY4MiBlZDc3MWI1ZGI1YWFmM2E3NzY3MDRlMDE2MTNhZWQ5ZjMzMGYxM2UwIGxlZ2FjeS10cnVuaworMjA2ODMgMWEyMWRkMTNlNjBhNmU3NDJlYTFiMGJkNTk4NzZmMDBiYWU3MzJmNSBsZWdhY3ktdHJ1bmsKKzIwNjg0IDNlZTlhM2Y2MGJjNzk2NGExNzIxZDE1YmQ0MDI2ZDRlNzU3YWVjNzkgbGVnYWN5LXRydW5rCisyMDY4NSA1M2JiZWIyNWJkZTcxOWY0NmFiNmI4YzZhOTNmYWRmNDM5MTc2Y2U4IGxlZ2FjeS10cnVuaworMjA2ODYgYjE2ZmM4OWMxOTRmNmEzNTRmMTVjNDE3OGI4ZGM3ZmFiOWZmNTNhZiBsZWdhY3ktdHJ1bmsKKzIwNjg3IGI3NmQxYjVlODg2MDBkNmVlZmUzN2JlMWE4NzEyYWE0YTg5NjQzODIgbGVnYWN5LXRydW5rCisyMDY4OCBjNTdjZTc1ZGNkZTBjODJmMTc2ZDhjMWUyZmY0ZjQ2N2Q1YmE3MzY1IGxlZ2FjeS10cnVuaworMjA2ODkgMjYxMTk2YmQxNmQ3ZWYyMmNmYzk5N2ViYjljZDc4NjE5NjdhNmE0OCBsZWdhY3ktdHJ1bmsKKzIwNjkwIGY0NjVjYWUzMDFlZTYxNWQzMDE4OGRiNDBiMzViODQ0YTA2ZTI1Y2MgbGVnYWN5LXRydW5rCisyMDY5MSBiMzkyNjZmNzQ4NGM0NDgwNTRlMzY5ZmE4YTYxZWQ1ZjhhMmE4NzBmIGxlZ2FjeS10cnVuaworMjA2OTIgYzg4NmNkMWMyMTg0NzNkMmNmZmY3NjM2ZTI0MzA0NjgxNTBmNTgxOCBsZWdhY3ktdHJ1bmsKKzIwNjkzIGY0Mzc0ZDc5MzFiYTlmZmJlYjUzNWE0MTRmOTE2YWNiOWY0NzUxNWEgbGVnYWN5LXRydW5rCisyMDY5NCBjNDdjYzlhOTg2NGM0ZTQyMWEwNGY4N2ZlOTMxYTJhNGY3MjVmMTlhIGxlZ2FjeS10cnVuaworMjA2OTUgZWY2ZjNlMTgxODc4NjYzM2I0YWJhMjVmYmYzYzZhNWI5ODM4MDkwMSBsZWdhY3ktdHJ1bmsKKzIwNjk2IDQ3ZDE4NjAyZDVlYTQ1NTEwNmU0MmVkYTk2YjJkNmMwMzNlODFjZWEgbGVnYWN5LXRydW5rCisyMDY5NyBhMDZhNzA0MjYwZTk2YTFkNWZlNWY0NTQ3YTA3ZDJiYTc5OTQ5Nzk4IGxlZ2FjeS10cnVuaworMjA2OTggYTk4N2NmMTgxNDM0OTBkYThhZGI5NDdjOGFjZjRlMzZlM2Y2MDJlNiBsZWdhY3ktdHJ1bmsKKzIwNjk5IDVlMGVjMzljNGNlY2M0YzQ4NGU2MzRlNjRmMDcyZjFiYzE3MTk5NjkgbGVnYWN5LXRydW5rCisyMDcwMSAwODBhMTI5MWJmNmM5ZjgxZjc2MTJjNDExNjIwYmU2YWZiNzk4M2NlIGxlZ2FjeS10cnVuaworMjA3MDIgMzMyNjk3ZGU4ZGI4ZTJkNTI5NGE3YzNiZGI1ODQxNWY2ZGQzMTczMSBsZWdhY3ktdHJ1bmsKKzIwNzAzIGI1MzRmMTA3Mzk4N2NkMzYwMzA2ODZiNzNjYTY3ZDVlZGQ5OWU1MTkgcmVsZWFzZTIxLW1haW50CisyMDcwNCAwOThkNmY4NjlhOWRlODU1MTc0ZDVmN2YwYWUzMmE0N2VmMDJjZjlkIHJlbGVhc2UyMS1tYWludAorMjA3MDUgNjg2MDU0ZTAzYWM1OWM1YmQyMGM2MDRmMmRkMDFhNDYxYjU1N2FhMiBkZXNjci1icmFuY2gKKzIwNzA2IGVmNjViY2VlNzJjYTIyMzZjYTdiM2NhMGU4MTA0M2U4NjY3OTdjMzggZGVzY3ItYnJhbmNoCisyMDcwNyA2NWUyNjExM2IzZmIyZTExZjliNjExZGFlMzBkOGE0ZDRjMzQ0MTMwIGxlZ2FjeS10cnVuaworMjA3MDggNGVmMWI2YTgzYTQ3OTRlMTQ0YjY4ZTRiZjY1OTc1NWUyYjc4NTNjOSBsZWdhY3ktdHJ1bmsKKzIwNzA5IDJmMGRmOWYwYjA4ODc4MmQ4NjdmZGM4ZTc3NzU4MTNjZTQ3NzZkZWEgbGVnYWN5LXRydW5rCisyMDcxMCA2NThjMDc3ZGQzNTEzMTM1YzQ5ZjIxNDdkNmQ4Zjg1OTg2OWMwZDM1IGxlZ2FjeS10cnVuaworMjA3MTEgNTFhYTQyNTAyOTc1NTBkYjFlYWFiNWUwYjc2ZmE2NTMxNDJlNDI3NyBkZXNjci1icmFuY2gKKzIwNzEyIDQ3ZDQ0ZDg1NDJiN2IyZmI2NTEyMjhiZTA0NTMzN2RiMWFjMTFiZjMgZGVzY3ItYnJhbmNoCisyMDcxMyBkZDZmOGM5Y2FmZjBlYzVlMDQ1ZWQ1NjExNjBmOTk3MmRhYWNhYjM0IGRlc2NyLWJyYW5jaAorMjA3MTQgN2E5ZjZjMDk3OTFhOGVlZDI2NGE0ODQyZGE5NWExODFkZTg2M2MwMCBkZXNjci1icmFuY2gKKzIwNzE1IDQ3ZjRkMDU2OGM3Y2I3MzI3NGRjZThmNDE2MmE0N2Y3YTExMWMwOTcgbGVnYWN5LXRydW5rCisyMDcxNiBjMTg4MGY2YjMxODljZjg0YzM0ZWYyZTAzODA0NDdmZDRkZDY3YWUxIGxlZ2FjeS10cnVuaworMjA3MTcgY2UzNzM0MmY2ZjZlM2YzMGU2MzZhMDdlMWU2YmRhNzYzNDI0ZGJlYSByZWxlYXNlMjEtbWFpbnQKKzIwNzE4IGNjOGQxNDhjMzk2YWU5MDhjOWI0MzM0NmFkODhlZGMxOGY1ZTM0ZTAgbGVnYWN5LXRydW5rCisyMDcxOSBmYjEwM2UzZGEyYWVhZmYzYzlmZTE5YzIyYzk2MDZlMTc0ZDYzOWM2IGxlZ2FjeS10cnVuaworMjA3MjAgMDFiNTA0M2E0NTA5ZjcwNDQ0MzQwODcxYTE0MDhkZWE0NDYxNDUxOSBsZWdhY3ktdHJ1bmsKKzIwNzIxIDY2OTYwNGQ5MzQzZjA1ZDE3Y2E4MzViN2FhNTU5YWZiZDI1N2U1OWEgbGVnYWN5LXRydW5rCisyMDcyMiA0YjJmZGFlYmJmZTVkZTMxYzg3MGIzNGYwNmNkZDRhYTE4ZGI3YmQ2IGxlZ2FjeS10cnVuaworMjA3MjMgMGVhMDkxM2Y4MjRkYWIzZmUxYjViMDEzNzdlOTJiYzMzYzkwOTNhNSBkZXNjci1icmFuY2gKKzIwNzI0IGQ3Y2NiOTMxY2E3OTU1NWVmODY3ODI0NjE3NTViMTJjYWVlMTdmMGQgZGVzY3ItYnJhbmNoCisyMDcyNSA3YTJhMTIyYzk5N2MyMDYzNzViZDEzMDE0NDdlZGMwNjc4NTI2MThlIGRlc2NyLWJyYW5jaAorMjA3MjYgZGNlMWY1MzQ1MWE1YWY0NjkyZTVkMzhhNmZlOTViNjNjYzczNDM4YSBsZWdhY3ktdHJ1bmsKKzIwNzI3IDU5NjA0ZjViNGRkMTI5MGUxZWM0ZmQxYWJjNjdmYTI5NDc4MWRhNTAgZGVzY3ItYnJhbmNoCisyMDcyOCA0MTllYmM2NzNlZDhkZjljNmY5ODEwYjhmNjAwYTU2NGRlNDEwYjdhIGxlZ2FjeS10cnVuaworMjA3MjkgMGViYjkxNTIxYWU2YmNlZGJiYzA1ZWVjN2I5MjYxOTJiMjEyOGI2YiBsZWdhY3ktdHJ1bmsKKzIwNzMwIGI0YjM2NTdjYjFmYWE0NTczYTRkNTRkZTc0ZDY5NzI4NjQ5ODc5ZDEgbGVnYWN5LXRydW5rCisyMDczMSA5OTNmYjE4MDFmNDFiMjRhNmFjMDgwOGVkYWViNmM0YmRjNTdmNTU1IGxlZ2FjeS10cnVuaworMjA3MzIgYTE1NzVkYmY3ZDgxMmIxOWU4NjU3YjAwMzkyNmY0YjhiN2FkMmE1MSBsZWdhY3ktdHJ1bmsKKzIwNzMzIGFiMTdiOGI4ODY5NjJkOTEwMGFlNjBiYmIxNmYwOGM5ZTM2NDNiNDAgbGVnYWN5LXRydW5rCisyMDczNCA1Mzg3Y2I3NjcwNTk0YTJmOWVmZDZjNGYzYzQ2N2Y0ZTYyMTc3ZTIxIGxlZ2FjeS10cnVuaworMjA3MzUgMWRhY2QwZDYwNjM3Yzg3M2M5MzcxZmQ0ZTAzOTgwNTRmMTEyMDYzZSBsZWdhY3ktdHJ1bmsKKzIwNzM2IDEyOTZlODYzMDRlZjU4ZjRmMmJlNWM1N2U1ZGRkYjM2YmRkYmYxMDEgbGVnYWN5LXRydW5rCisyMDczNyAwZWQ4YzVmM2Y1MzA2MjQxMjUyMWM0MzBjMzA2Y2IzZTNmMmQ0YTA1IGxlZ2FjeS10cnVuaworMjA3MzggOTljNDlmMDA5Mzg4ZTUyY2I0ODI0OWQyZWEzYTY2NTFlNTYxYWFmNiBsZWdhY3ktdHJ1bmsKKzIwNzM5IDg5OWYzNjdlYmE1NmI1MGM5MmUxMDZhNGU3ZDM4NDJlYjNiOWY2NTYgbGVnYWN5LXRydW5rCisyMDc0MCA0NzllYTY5ZWM4NWIzMjBiOWJiNjBiMzM3ZDI3MzA3ZDcxNGNjYWM0IGxlZ2FjeS10cnVuaworMjA3NDEgMjJhMGIyZTMyOTFmMDJhODg5ZTRkZWM4NTRhMzExNDZmMzNjMTdlNiByZWxlYXNlMjEtbWFpbnQKKzIwNzQyIDc4YzY0YzBmNjYxY2JjNGY1M2E4ODU0ZjUyY2MwOTEwOGU1NDIyM2UgcmVsZWFzZTIxLW1haW50CisyMDc0MyA4MDQyNWIyYzFlNGM3MDIzY2Q1ZWIxN2ZjYmVmMjdjZTJiZWE5MTJkIHJlbGVhc2UyMS1tYWludAorMjA3NDQgMmUwMTVmOGExYWMyMDFiMTJmMjI1MzRmNDFlYjBhMmI2NjIwMTk0ZSBsZWdhY3ktdHJ1bmsKKzIwNzQ1IDFjNjA0YmM2YjkxZTU0ZmRmMTYxNjdhYmU5MWRiZjVhMmQzOTg0MDIgbGVnYWN5LXRydW5rCisyMDc0NiAxZmIzZWNhODk2OWVhOGNmZTcwMDA3NWFiODIxZmY4YWEzMzNmODlkIGxlZ2FjeS10cnVuaworMjA3NDcgNmUwMDhjNjE5ODU1Mzg1NmYxMTc3NzhiODYxYTJmY2ViY2ZlNGUyZiBsZWdhY3ktdHJ1bmsKKzIwNzQ4IDNiNWJlYjkyNzdlMDQ3YmUzMzExYjk2ZjkzNDBhOTc5MjMzZTVkODggbGVnYWN5LXRydW5rCisyMDc0OSBhOGZhOWMwZjFlMGJiNWNjZDc4OTJiYTc3OTBkNjkwZTBkMTAzMWEyIGxlZ2FjeS10cnVuaworMjA3NTAgOGFlZTUzOTUwNTgzMDkyNTMzODRhY2ZjYjJhM2U1YzIwZTUxYmI3YyBsZWdhY3ktdHJ1bmsKKzIwNzUxIGEyYjY1NmE1MjI5NDNhMTkxOTNjMTJhNDkxZjdlZGQ0NGNiOWEwNGEgbGVnYWN5LXRydW5rCisyMDc1MiBjMTk5ODBjMDNlMmRlMTVmNDc4NzZiZTcwODJhNDA5NDdiNDg5N2U3IGxlZ2FjeS10cnVuaworMjA3NTMgNTU5N2Q0YmNkZTA3NTg1YjM5MzE1Nzg5ZWNlYTM2YjQ2MTk3M2Q3MiBsZWdhY3ktdHJ1bmsKKzIwNzU0IDdlYjMyODhjODFlMzU1YmNmN2U3OGVlMjM1MWM5OGE2MWRiODA2ODggbGVnYWN5LXRydW5rCisyMDc1NSA1M2ZjY2Y0ZDZhNDE0MTM1NzI3ZWUyNGQzZDBjYzQ3MjQ1YTRlMjE5IGxlZ2FjeS10cnVuaworMjA3NTYgNDllNzFhODNmNzkwZmEyMjRhMTdhNTU4OTdmZDM5YmY1MGY1ZDhhNyBsZWdhY3ktdHJ1bmsKKzIwNzU3IGJmNzBkMWY0ZjYxZjZjZDE1MTc0M2VlYmYzMzI3NTNlZTUwMjI1ZDggbGVnYWN5LXRydW5rCisyMDc1OCBjZThjMzU2NTQyYWI3Y2U2NmJjMmJkNDIxYTMxNDY2ZDA2NDk0YmVhIGRlc2NyLWJyYW5jaAorMjA3NTkgZGQ1ZmIzOWU2NWVmMzY1M2YyZGYwMDY3NTM1NmRmNTE2NjA4N2YzMCBkZXNjci1icmFuY2gKKzIwNzYwIDMzODAyNzk2MTJhMzNjOGJjN2IzOTNiODI0MDA0ZDBhMDI4ZWEyYzUgbGVnYWN5LXRydW5rCisyMDc2MSBmZjlhODMzOWFkMWI0YjI5NTliNmM2NTg3MjIxNGI0NDdkOTk1MWY3IGRlc2NyLWJyYW5jaAorMjA3NjIgOWY1NTk3ZWE5NmZjMTRlZDE3ZmUxZThmMDk5M2RkZDM3MzQ2NmRhNSBkZXNjci1icmFuY2gKKzIwNzYzIDdmMGY1ZWNlNDU2MjhiZTljNDIzZTI4NjMzMmExZTk5NDE4NzAwMTQgZGVzY3ItYnJhbmNoCisyMDc2NCAxNGZkNGJiNzc5OWFjMTVmNzg5ODM5M2I3N2NmNGU1YWM3ZDA5MGViIGRlc2NyLWJyYW5jaAorMjA3NjUgMTU3OWQzMDk2NzZlMzUwN2NhOTlhNjNkYzU4ODQ4ZjQ2NTllNThiMyBsZWdhY3ktdHJ1bmsKKzIwNzY2IDU0ZDM5NTQyNWU5MjkzNDY3ZDYxYmY3N2FhM2M4Y2I2YzcwOWYwMDYgbGVnYWN5LXRydW5rCisyMDc2NyBjMzRjYWI4N2Q3MjE5ZmJmODBmZmE4MWUzNjQ0ZDc1ZWUzMTZhY2Y0IGxlZ2FjeS10cnVuaworMjA3NjggYzgzNjIzMDNlYzNiMWUzMzIyM2IyZTY2ZjIzYjhmYzJkOTM1YzRkNSBsZWdhY3ktdHJ1bmsKKzIwNzY5IDIyMjc2N2ViMjhmNzVjZWUwYTFhOGM2Y2YzMWJhYzIzOTg3OTRjZTkgbGVnYWN5LXRydW5rCisyMDc3MCA0ZjIwNDk1YjhiZWRjNTk5ZWQ3NDFlN2UzNTMzNmY4YTcyYmI1ZWY4IGRlc2NyLWJyYW5jaAorMjA3NzEgNGFmODY1YjIyMWVkZjBjMjE5ODQ4MmFmNDE2OGEwMmNmMjkzM2I1NyBkZXNjci1icmFuY2gKKzIwNzcyIGI4ODFkYzNiY2ZiM2QzYjMyMjVkNWY5YTZjMzA2M2JhZDhmNmI0MDYgZGVzY3ItYnJhbmNoCisyMDc3MyA0YjA4ZmQwODdkMzY0M2U0OGJhNDc1NjZkM2RlNWQzMTg1ODNhMWM1IGxlZ2FjeS10cnVuaworMjA3NzQgOGNkODc0MWViZWMwZDQ0ODMxY2Q5YWViODE2MWU3ZGQzN2M4NjhiYSBsZWdhY3ktdHJ1bmsKKzIwNzc1IDIyMTFjODk5NWE1ZjhkODVhY2ZjZjhhYTE4OWUxOTgzMDljZjIxMDYgbGVnYWN5LXRydW5rCisyMDc3NiBkNmRmOGQzNzFiNjc0Njc4YWY5MGI1MzVjMzM0OTVlYTk0NzBlNTBhIGxlZ2FjeS10cnVuaworMjA3NzcgOGY1Y2U1ODExOWUwNTRhYjcyMzY1OGVmZGUyNWEyMTUzOGE4ZjI0NiBsZWdhY3ktdHJ1bmsKKzIwNzc4IGY3YzM4NTIyNmY2NWE4NTM1ZWQ1MjIyOWQzNDM2Mzg0NjliZTg0OWIgbGVnYWN5LXRydW5rCisyMDc3OSAyOWQ4NGY5MjBkNWI5NzMxYjA3NGNiZjU1YWMyYzcyZGY0YzM4MjgwIGxlZ2FjeS10cnVuaworMjA3ODAgMTlhNDQ4ZmRlZGY3MjRiNjE0YmNmODY4ODgxOWRkNjU5YzA2ZDVkMyBsZWdhY3ktdHJ1bmsKKzIwNzgxIDRiY2Y4OGU0YWJmZjIwOTljNDVhNjBjOWMxMjA1MmI5ZDdhZWJjMTUgbGVnYWN5LXRydW5rCisyMDc4MiA3ODAyNDhjZDFkOWFmYTViNzA2N2MwOWM1MTE5NzY3OTdiOThkZWUwIGxlZ2FjeS10cnVuaworMjA3ODMgNTAzNzZkNDcwNjQ4MjE3Nzg3ODFkZTVlYzIwNTI4YzE2NDFmNGNjNCBsZWdhY3ktdHJ1bmsKKzIwNzg0IGYxMjM5NmM1MWFlYWY0ZDQ5ZDJlNmNmYzE3Njg2OGU2YTQwMGEwMWEgbGVnYWN5LXRydW5rCisyMDc4NSAwYWRmYmUzMjg5ZDVhZTNjYjBlMzUyODIwYjhlODg4MmM3NTg3N2FiIGxlZ2FjeS10cnVuaworMjA3ODYgMGJlMTZkMGVjZjY0YTc5NzEyMzM4NzE5ZTE3ODI2NzZjYzMzYTJlMCBsZWdhY3ktdHJ1bmsKKzIwNzg3IDA3YTg3NTIwMDFiYWNiOWMxNWQxNDA4YWQ4ODZkMDg2NTE5NzU3ODIgcmVsZWFzZTIxLW1haW50CisyMDc4OCAwYjNkYTk5ODI0YzdkNWRmY2FhMzIyODliYjA2M2RhMDdkNGIxN2E0IGxlZ2FjeS10cnVuaworMjA3ODkgMjY3NDUwNTNmODQwNTk2YWMzNGQ5MTFkY2E2YzA1ZmM5NjgxMjc1MiBsZWdhY3ktdHJ1bmsKKzIwNzkwIGI1NGRiZWYxZjhkMzY1NjRmZmVjZjA4ZTBhYTY2ZWQ3YmYxMjU2YzkgbGVnYWN5LXRydW5rCisyMDc5MSBkODkwYTIxYmViZGEyYjhhMTRmMzE5MjQ2YTIzMGNmNmYxOWM4ZGU2IGxlZ2FjeS10cnVuaworMjA3OTIgY2VmNWI2MDBmYTE2Mjg0NmZhZWJkZmU4MWVjZjBiMTA1MTI4YzExMSBkZXNjci1icmFuY2gKKzIwNzkzIDc1MDllYTA3MmNjYjQyMmQxY2Y3M2E3N2NkMDE4NDc3MTQzZTExYzYgZGVzY3ItYnJhbmNoCisyMDc5NCA1YzA2YTk1OTZmYmZmZGQxMWQzYjViZDFkMjE1YjVkYWQ3ZTUwMTNjIGxlZ2FjeS10cnVuaworMjA3OTUgMWJlY2Y0NDJkNzM1NTliYzU2NmI4ZWQ1MGJhOWExZTMxMzcyYzlkZSBsZWdhY3ktdHJ1bmsKKzIwNzk2IGMzZmY1NzIyNjNkMzMyZjg1MTVhY2IwZTMxOGFhNTUwMTI5OGY4ZWEgbGVnYWN5LXRydW5rCisyMDc5NyBlZDFlOGI2ZTI2ZWNiMWM3M2ZmM2U3OGMwY2IzNjNlZTM5MDRkN2JlIGxlZ2FjeS10cnVuaworMjA3OTggOWVhODdjMGE3YzA0Mzc4MGQ1NjliNjNhNzFkMjI0NGQ4NjZmZDg4YyBsZWdhY3ktdHJ1bmsKKzIwNzk5IGFkNTAwYjUyNjczYzYzOTg2ZDY0YmQwNWU1ZTU2MDI4MjY3NTA4YjQgbGVnYWN5LXRydW5rCisyMDgwMCAyODkyYWEyNjA3ZDVmNWU3NDc4YWQ4M2M0MDc2ZjE2YzZlMmJkNWQyIGxlZ2FjeS10cnVuaworMjA4MDEgZGIwNzRhYmE5ZTM2NGNhNzYyNzVjYjE2MzkyOWYwNGFkOTEwNTllMSBsZWdhY3ktdHJ1bmsKKzIwODAyIDNkZDQ5NTQyYzRkMDFhMTYxYzllMjkzMDI4YWVjNDFmZmZlYjYzMGYgZGVzY3ItYnJhbmNoCisyMDgwMyBjODcyZmRmMTAxMzBmNDY5ZTkyZjhhMDg4MjFhM2FmODZhODYxMjBkIGxlZ2FjeS10cnVuaworMjA4MDQgZjE4ZTgwOGMwMjMwZDAzODdhZDZjMjJkZTM2ZTkyNDEwZWJmZGQwOCBsZWdhY3ktdHJ1bmsKKzIwODA1IDJiNWE5YmZmMWIxMWU5MzgyZDVhOWFmODJhYmQ1MmIwZTY2ZmMxMmMgbGVnYWN5LXRydW5rCisyMDgwNiA3ZWQwY2FlYmRkODYxY2UyZGFhMmYyNTQyMjU5MTJiMWQ2ZTczMmM4IGxlZ2FjeS10cnVuaworMjA4MDcgM2UyNTZmOWQ5OWFkZTBhOTE1Mjg5N2EzMDRkM2Q2ODk0OThhNDI0OSBsZWdhY3ktdHJ1bmsKKzIwODA4IGFkYTNiZDFiODcxMzQ3Y2NiMmEwZWZkOTlmYTUyMmYxOWE1NjhlZGMgbGVnYWN5LXRydW5rCisyMDgwOSBmYjMxYzMzNzYxYzk2NWYwYzA4YjFhMjg1NTllMTNlZGMxMWI2ZDVmIGxlZ2FjeS10cnVuaworMjA4MTAgOWZmMzVmNzY2MWJkNzNlZDYwMWI1NDI0MjYyNzAwM2U5Nzg4ZjM0MiBsZWdhY3ktdHJ1bmsKKzIwODExIDdmNDU1NGExY2FlMjI4ZjAyOTE5NzZjOWU5MzRmYTNiNzhlZjc4M2EgbGVnYWN5LXRydW5rCisyMDgxMiA2OTYwYjJiYmJmY2FhMjExYmJmMGIxMDg5ZDM3YjdiMzQ1YjE0YzU3IGxlZ2FjeS10cnVuaworMjA4MTMgMDE3YTY0YTRiZGM3YTk4YzYwMThjNGQ3NzRjODBkZGM1MmZiODQzNCBsZWdhY3ktdHJ1bmsKKzIwODE0IDI5NWEyZjQ5MjdhYjY5YTVjYWNhMGQzOTNlZjcyOWY5MTNmMzYzYzMgbGVnYWN5LXRydW5rCisyMDgxNSBhMGQwOGM0MmU3MTAyYmFlYWIzMzFhMTQ5MWZkOTY5ZjEwYWQwNzlhIGxlZ2FjeS10cnVuaworMjA4MTYgYmE5NzExMWE2YWQ5Zjk5N2YwMTA4ODY1ZTIzMzJjYzJmMzk2YTM5MSBsZWdhY3ktdHJ1bmsKKzIwODE3IDA1NWZjMDQ2ZTA4MGVjMGUyZGE0YTE4ZmQwZmFhMjAxMDY5MDMyZmUgbGVnYWN5LXRydW5rCisyMDgxOCAwMjhhMWQzOWVmYjY1YzRiMzhmYTg1NGNlYTQyNDljMTYzNzYwZTEyIGxlZ2FjeS10cnVuaworMjA4MTkgZDJkM2Y4ODY2MWEzZTk5NGFmNzE3ODI1NjBmZDJmYzYwNGRjYzM2ZCBsZWdhY3ktdHJ1bmsKKzIwODIwIDI4MDc5NDllMGJhNTkxZjE0ZmYxZDIzMDFkYTViMTk5ODgzMTkzNzEgbGVnYWN5LXRydW5rCisyMDgyMSA3OWFlZTQ5OGEyYmU1MWJmODg5YTE4NjY1YTdjMTgyYjU4MzU3ZGIyIGxlZ2FjeS10cnVuaworMjA4MjIgNzc2MzU0OWNjYTQ1NjRhNGU1MTMxZTVlNTZkYzRjNDI4NTJmMzdlYyBsZWdhY3ktdHJ1bmsKKzIwODIzIGI3N2M0ODg4ZDdjY2FkZDZmNzQ3NmJmY2YzMjU2ZjQzMGYzZjQzOTEgbGVnYWN5LXRydW5rCisyMDgyNCBiNTNiNjBmMWVkNDU5Njc4N2ZmMWE0YWMzNGMyM2Q5NDlmMzVhMzM3IGxlZ2FjeS10cnVuaworMjA4MjUgMzM1ZmJkZWU3Y2Y4M2MyN2JmYWNiYTMzNTI0MmY3NWJiNmJjNDEyOCBsZWdhY3ktdHJ1bmsKKzIwODI2IDk3ZWNlOTMyMWM1MzY0ZmU4NzllOGVjNjExNGJiODU5MzBiYTMzMzcgbGVnYWN5LXRydW5rCisyMDgyNyAwZTg2YmRlYjBiOTI2MTdlYjcwODJjZTk0ZGYwNDg3ZDc3ZTI1MjcyIGxlZ2FjeS10cnVuaworMjA4MjggYmU5NjllNzE3YjkxYjBhMjhiZjUyYzBjZGFlY2E5MTJiYWYyMDk5ZSBsZWdhY3ktdHJ1bmsKKzIwODI5IGZkZTU1MDhlODJkZTZjZDlkOGRkNzcwZGE2ODg5YjIzNzJjYzhmNWMgbGVnYWN5LXRydW5rCisyMDgzMCAwNDJkY2ExZDQ1MjZlMTU5MWNjZDk2NWUzZDVlN2RlY2Y5NzdmMmEyIGxlZ2FjeS10cnVuaworMjA4MzEgY2NiNmQ3NjYzM2JlNGQ5ZGEyN2VhOGU2YTQzYTQ0YmZmM2Q3NjFmYSBsZWdhY3ktdHJ1bmsKKzIwODMyIDY4YmYwN2U3YmNjYzk0ZGQ2ZTJkYWI4YTdkNTBjOWRkNzYzNGU3NDMgbGVnYWN5LXRydW5rCisyMDgzMyBiODIzYTMzMTgzZmM2NGJiZjk2Y2I3NjcxZTgwMDc0YjllMGY3MjU5IGxlZ2FjeS10cnVuaworMjA4MzQgMDk0Y2VlNjg5OGMxMDI2YzRhOTg2N2Y3OTVmNmVjY2Y2Mzk4Zjc2MCBsZWdhY3ktdHJ1bmsKKzIwODM1IDQzYjdlZTcxOGY1M2ZmYTkxYzNlNmE2NDJlZWYwNTYzMTZkOWYxYmEgbGVnYWN5LXRydW5rCisyMDgzNiAyMDBmM2E1ZGUxYzlhZGIyZWU4Y2FkNzJjM2ZhMWZkZjNjMzM4NzYyIHJlbGVhc2UyMS1tYWludAorMjA4MzcgMWViMTIyNTlmZWVhNjQ3OTg0ODI2Nzg2NzVlZWIzOTJkYTFhODJmOSBsZWdhY3ktdHJ1bmsKKzIwODM4IGViMDNjNmZjMzFlNWJkOWZiNTMxMGUwODE1OTUwNzJkN2Y2ZGZkZTUgbGVnYWN5LXRydW5rCisyMDgzOSAxNTFhMmZhMjk2ZmU0MmFmYTQxZmRjZTVlN2NlODU4NWEyYjExN2FhIGxlZ2FjeS10cnVuaworMjA4NDAgY2IxMWM1OWMxOGRkM2JmZmFjZmUxYmU2Mjk1NTI5NDM5ODM4N2UxOCByZWxlYXNlMjEtbWFpbnQKKzIwODQxIDEzYmRiNWIyMDdkMjZkOTM2OTY1OTQ2ZmZkMDkzZmUwYjRlNWZmNDIgbGVnYWN5LXRydW5rCisyMDg0MiA1MjRlMGYzYzE2OWIyNzA3YmFhNWU5NTEyOTc2NjM3MWRmMjBjMTNhIHJlbGVhc2UyMS1tYWludAorMjA4NDMgMTdjMjAwYTdkYjg1YWQ2ZDQ4ZTVhZDhlYTY1ZDc0YzRjNWZlZTk4MSBsZWdhY3ktdHJ1bmsKKzIwODQ0IDQzYWI5ZjgyNGQ4OTBkNTVjYjNhODRhYzljMzIyNDJlMTVhNTdkOGYgcmVsZWFzZTIxLW1haW50CisyMDg0NSBkNTY2NjZkZWI5NTM4ZmYzYWUwMzk1OTA0NjdkZmM4YWQxNmMwN2ZjIGxlZ2FjeS10cnVuaworMjA4NDYgNjAyN2QzY2Y4MDVjZjcwN2EzYjU5OGFkODk5M2Y3MDlhZTdhOTE2ZiBsZWdhY3ktdHJ1bmsKKzIwODQ3IDIwNjBlZTBhN2Q5MmM0MWYzZDJiMDlkOTU5MGIwMWY0ZThhMDg5MzMgbGVnYWN5LXRydW5rCisyMDg0OCAyMTM1ZDdkZTg2YWRiMmFhNWQ4NzExYTFjM2EzZjY1ZjFjMmI3OWRkIGxlZ2FjeS10cnVuaworMjA4NDkgYTkzZGFhZmJkMTNkNzQ4Y2U5NWQxNmFjOWVkY2FiY2RhNWJkYzEyNyBsZWdhY3ktdHJ1bmsKKzIwODUwIDBhZjgyNGM4ODIwMzA2MWU0MDRlYWQwNWJjM2YxZjljYTdiYjhlM2IgbGVnYWN5LXRydW5rCisyMDg1MSBmZDVmODMxODg3Nzg2ZDMxMmMzOGIzNmY3YWJkYmFmMWE5NmMzOThkIGxlZ2FjeS10cnVuaworMjA4NTIgOTNiNTkwNzI5YmRjODk5MGVlZjcxY2E1NDUxZWJiMWMzYWFkNjZiNiBsZWdhY3ktdHJ1bmsKKzIwODUzIGZkMTJlODJiNzcyN2ZiMjgyZjVlZDdkZDQxMDdiZjA5NjIyZDlkMjYgbGVnYWN5LXRydW5rCisyMDg1NCBhMWRkYzQwODBjYzU3MjE5N2VjZTg2Nzk4Zjg5OWEzNmY5NzcwZDQ3IGxlZ2FjeS10cnVuaworMjA4NTUgZjk1YmFkYTUyNzNlMjg5OTBjY2NjMzZmMzZiMzRlZjA2NDI3MzVmZCBsZWdhY3ktdHJ1bmsKKzIwODU2IDkzOWUzZGE1OWM2MTIyMTI2MzBhMTRmYzk1NzEwMGE2YjdhNWU3OWMgbGVnYWN5LXRydW5rCisyMDg1NyA1YjA5N2Y2MTcxNzM1Mzg5MmQwOGY0N2JmYTJhNTRlZDY1NTBlMjA3IGxlZ2FjeS10cnVuaworMjA4NTggOGRhOTQ3M2YwNzM2YjA0OGJhNGNhZTE0Zjg1MzRiMzJlZGM0NTdjMyBkZXNjci1icmFuY2gKKzIwODU5IDE0ZGE1MzE0NjY0ZDk0ODJjZGEyMTA2ZTA0OTUxODRkZjhlYWVlMjEgbGVnYWN5LXRydW5rCisyMDg2MCBjNGY1NTQwMWU4YWVkNTcwMWUxNDEyMzJhZDU3NWNjN2NmM2ZlNDIxIGRlc2NyLWJyYW5jaAorMjA4NjEgZTIwODBkYjcxYjFiMGNiYWFiNjZmZWM5Nzc2YzQ4Y2E2ODgyNGViYiBkZXNjci1icmFuY2gKKzIwODYyIGMxMGI0MTg1NTIwMjhhZDdiZmMxMWJlZDUzNGM2ZGI2MjBkZTAwZmMgbGVnYWN5LXRydW5rCisyMDg2MyBmMGMzZGUyMmNhZWRkZWEyMjRiNzgxMzQ1NGYyYmE3NGIzMGJmZGRkIGxlZ2FjeS10cnVuaworMjA4NjQgY2M5ODRlZDI2NTg2YWMwNmM2ZWM4OWQ2ZjQ3NzBkZWQ3YjNkNTNkNyBsZWdhY3ktdHJ1bmsKKzIwODY1IDVkNTBkMWZhZTA3ODdmNTkyZDU3ZGRiMTczZDBkZGYwNzJiOGI4YmIgbGVnYWN5LXRydW5rCisyMDg2NiAzOGZkZjk4ZGE5OWZkZDE2MmUyZGJmM2FmZjRjN2Q2YTljNWY2M2JmIGxlZ2FjeS10cnVuaworMjA4NjcgMzRiMTUwNGU2NjQ0YzdlOGRhMTBkYTIzNGIwYjFkNGY3YjQ0NDE1MiByZWxlYXNlMjEtbWFpbnQKKzIwODY4IGFlOGM0ZjQ3MGEwZTQ0NzI3YzczOTI0MDM1ZmExMDA4MDllMDQ2OWQgbGVnYWN5LXRydW5rCisyMDg2OSA1M2RlMGVlYTRkMjVjODZlOTk4ZWVjNTdhMzcyM2I4ZDU1NGFkNDkyIGxlZ2FjeS10cnVuaworMjA4NzAgNjk3MzdkN2Y0Nzc2ZmQ2YzMyOTQzZDUwYmQ2MjFjYTIxMzhkNmQyNSBsZWdhY3ktdHJ1bmsKKzIwODcxIGE0NmYxZjdhOWM4NjlhMmM3NTQ5ZTFiNTc2MWI1M2Q1ZTUzYTk0NTEgcmVsZWFzZTIxLW1haW50CisyMDg3MiAwYTdhZjBlNTM4ZDRhYmRjYzBiNTdmYTMzNmQ2Nzc1YWVjMTQxMWE3IGxlZ2FjeS10cnVuaworMjA4NzMgOWFmODA2YjI4NmM2MTY1NDc2NmQzZTMwYzE0OGMxNTA0OWMwYjExNyBsZWdhY3ktdHJ1bmsKKzIwODc0IDdiOTc3MWY2ODU2YjMwOWRkMzMyY2E5YTZkMmViYzY0MjRlMTE3OGIgbGVnYWN5LXRydW5rCisyMDg3NSBkODg0MjM1ZmU3NWMzZjRmNjUxMzEzNDAzZDE5MjA3MGVjZTZlMWU2IGxlZ2FjeS10cnVuaworMjA4NzYgNzc4NzFjNDk5MjE1ZmIxOWM3NDY3NGZjZTMyNmI3YzMyMTM4NjFlNCBsZWdhY3ktdHJ1bmsKKzIwODc3IDYxOWZkOGUwNjdkYWVjZjA3NzA4M2Q5NzY1ZmE0NDVmMTk3NDgwNjIgbGVnYWN5LXRydW5rCisyMDg3OCBmYmZmYjZkZTI1ZGRjYjNiODNlZGMyZjhlZDE3ZGFmNzllZjcxMGMxIGxlZ2FjeS10cnVuaworMjA4NzkgNDIxYjFkNjYwNDk1MDg4NjlmMWM3ZTcyOGUyOTY0ZGUyYzVlMDNiZCBsZWdhY3ktdHJ1bmsKKzIwODgwIDg0ZmYxOTc3ZDc3MjVmYjUyNDA1N2VkNzNlYmY5YWM3NGM1YWVhODMgZGVzY3ItYnJhbmNoCisyMDg4MSA0NjkwOWYyMjE3MGMzZTg2ODI2MDJkNjY3ZDBlYTVmYmExMjYwZGMxIGxlZ2FjeS10cnVuaworMjA4ODIgZmY2YTZkMzQ3MTk1YWQ0ZDI0MjNkODdjNmJjYzZkNWNjY2QwMGVjYyBsZWdhY3ktdHJ1bmsKKzIwODgzIDFiZTZkNjhhZTEyY2U3YjFhNGZjMzRhYjM2NjkxNmI4Y2NiYmZhODggbGVnYWN5LXRydW5rCisyMDg4NCA2YzVhODAwZGE3OTFmNDI1OWNkMWUxZDNmODY2ZGUwMjE3ZmY1OGE0IGRlc2NyLWJyYW5jaAorMjA4ODUgYTY0M2E4N2E0YjJjYWE0NjMxYzgzMjI0ZTczNWU5YTllYzA3ZjFkMyBkZXNjci1icmFuY2gKKzIwODg2IDcwY2Q5YTQxOTA3Njk0Mjc0MDQyN2ZkODgzNDI1YTMwYmU0ZTVhY2QgbGVnYWN5LXRydW5rCisyMDg4NyBiZDUzNDliNDExZjYxYTY5ZjFhZjUwMWZkNmVmMzU0NTljMjBkZWU5IGxlZ2FjeS10cnVuaworMjA4ODggZDQyNjk0MzdlOGIzZGMxZmM1ZjE3ZDU3NzQ5MWExZThjOTlkNDc2OCBsZWdhY3ktdHJ1bmsKKzIwODg5IGNlNjlmYjljOGQ1NjE3MDhiODkyOWUzYTkyN2VmMmNiNDUxNjY2YzkgbGVnYWN5LXRydW5rCisyMDg5MCAxNjAwNWIyODU1NzYyZGYxZGEwMGIxM2RlNzRjZTA4OGZkYTczODQzIGxlZ2FjeS10cnVuaworMjA4OTEgYTFmY2ZkY2IzNDc5NjY4MTUzMmRmZGIyYmUzN2U0YmFmYjc3MDA2YiBsZWdhY3ktdHJ1bmsKKzIwODkyIDVhYmMyMzI5OTIyZmVkNmEzMjYwZGU4MTZlZjAzYzFiN2IzMTA1NDEgbGVnYWN5LXRydW5rCisyMDg5MyBhODk1ZDdkNzM5YWQ0MTZiNzRlMmY4ZDU2ZGVhNTM2NWQ2NDhkMWVhIGxlZ2FjeS10cnVuaworMjA4OTQgNDc0ZTNkZTAwYjA1MGVjYmJiMDUxMmUzNGQ3ODBiODg5Nzk1OThlMyBsZWdhY3ktdHJ1bmsKKzIwODk1IDI5N2EyNjZhYzRlZTE3MmJkZDVmZjJlYWVmZjA0OTNkOTgwNjk3NWEgbGVnYWN5LXRydW5rCisyMDg5NiBkZWEwYmFkZTY1NmQ0OTE1MTBmMDhhYmViNGZlZmE2YWJiOWZmMmE1IGxlZ2FjeS10cnVuaworMjA4OTcgNjk0YzlmMGNkODE0Mjk3OTM0OGQ2YjM0MTJjZWU1MzkwYjJhYmJhMSBsZWdhY3ktdHJ1bmsKKzIwODk4IDgzMWMyN2Y4NzZhYzlkYmNkOWI3N2FiNzY2MzAwYWZiNjRhMGJlMzUgbGVnYWN5LXRydW5rCisyMDg5OSBiYmY3MDIwNDllYzZiMWJmMWY5YjM2MGQwMmY5NjE5MzdkYmZiODY3IGxlZ2FjeS10cnVuaworMjA5MDAgZTRlODUzZDU1Njc1YTI5NmJlM2U2YjdiZWVkZGFjZGEwMjJiOTNmMyBsZWdhY3ktdHJ1bmsKKzIwOTAxIGVhMGNhZDkyY2ZkMjdiN2Y2ZGNjYTczZTAyZWQ0NDUzNjE3NTY3YTggbGVnYWN5LXRydW5rCisyMDkwMiBjZTdmMGUzODA4MzA0ODdiZDkzZDhlMGYxZDY3ZjgwZDRhNDUyNGJkIGxlZ2FjeS10cnVuaworMjA5MDMgNTYyMTc2MTkxZTYwNDk4NzU5ZGI2YTAwYjJiYzc4ZjI1MmQwZjU3YSBsZWdhY3ktdHJ1bmsKKzIwOTA0IGUxNGI0MWZkMmFiMjUxNTIxODg2NzIzNGYyNzE4MTc0NTRiMGE0NzUgbGVnYWN5LXRydW5rCisyMDkwNSBjZmUwODFjOTU1M2VjNzg0NzZmZDc1NGFjODkzYmMxNzFiMzY3N2MwIGxlZ2FjeS10cnVuaworMjA5MDYgM2U2OWQ3ZGI1ZjhkNTBmYjU1MzllNDdmODk3YTg0ZTM1MjQyMTVhNiBsZWdhY3ktdHJ1bmsKKzIwOTA3IGE0MjkxMGI1NDQyYThmZDc3NGFmNmU0M2RjNzU3MmQzMGUzYmU3MWUgbGVnYWN5LXRydW5rCisyMDkwOCAyMmI1MTUyZDIzZmMyYmVlMDgwZmYyNjkxMzZhZDIzODBiMzczNDI4IHJlbGVhc2UyMS1tYWludAorMjA5MDkgMjIzNDQxNTQwNDQzMTY2NzhiNzc3YTFjOGI2ODNjNWQ5YjliMTQ3YiByZWxlYXNlMjEtbWFpbnQKKzIwOTEwIGI4NmVlZWRkYWUyMTM0NmU0YmNmZDJmNmUwNmQ0NGUyNzNhZjI0MzcgcmVsZWFzZTIxLW1haW50CisyMDkxMSBkYjQzYmUxOWQzZTMzYjAwMDE1OTE3MTQzNTg4YjEzYmQ2OTZkZWJkIHJlbGVhc2UyMS1tYWludAorMjA5MTIgMDk2MDcyZDg4Nzk4NjhhY2IwZGMyYmQ4ZmJhMjRkZjVjZjk5MjQwOSByZWxlYXNlMjEtbWFpbnQKKzIwOTEzIGQwNzk4YjNhMzhjMTU2ZWYxN2IyODg0ZTM3OGI0NTVmYjk3YjNmNjUgcmVsZWFzZTIxLW1haW50CisyMDkxNCAyZWRhYThlOWYzODE1MTVjYjBhNzg3ZTczZDllZmRjODJiOGIxOWQ4IHJlbGVhc2UyMS1tYWludAorMjA5MTUgMDcxMWYzY2Q0NGQwNzcwNzAzOTQzZjY2ZmQ1ZDQ4OWUyZjQ4OGUzZCByZWxlYXNlMjEtbWFpbnQKKzIwOTE2IGUxODE2ZjY0OWZmOGUxMjM2NDk4MTE3MjdmZDZiZmE5M2VjMTE0NjUgcmVsZWFzZTIxLW1haW50CisyMDkxNyA1ZDg5NGE1ZmNlMzhjMmM5NWRlMDA2NzY3NjVjMzhhMjY2ZTVkMDY1IHJlbGVhc2UyMS1tYWludAorMjA5MTggYjM4ZmQyYmQ2OGMwYTE5ZTQ1MjQwN2Y0ZTJmYjU2N2IwZWVhZDU2MSByZWxlYXNlMjEtbWFpbnQKKzIwOTE5IDE0NThiNTk2YTQzNGFjOGMzY2QwNDc5MDc2YTc0ZmQ3OWY1NDJhOTYgcmVsZWFzZTIxLW1haW50CisyMDkyMCA3OTNiNzU1NDNmMTNmNWI1YjNiODJmM2E1YjU1MTA4ZjJmOGE0ZWI1IGxlZ2FjeS10cnVuaworMjA5MjEgOGM0N2Q5ZGEzMGRlMjZkYzg4ODliYzliZDIyNTVjODM5MWExMTA4YSByZWxlYXNlMjEtbWFpbnQKKzIwOTIyIDlkZmQyMmU4ZTliNzZkZDE5NzEwMjg2NjgwNWQ4NmM5YjIyMzE1NzUgcmVsZWFzZTIxLW1haW50CisyMDkyMyBhNDI5ZGE3ZGI3MDY5NTQ2N2NkNjJjZTVmODZkYjdkZDFmOTIwYzFmIHJlbGVhc2UyMS1tYWludAorMjA5MjQgMjQ4NDE4Y2JkMDA1MjdkNDdlNTVmNTg3NmZiNDVkODMyNjBhOGYzNyByZWxlYXNlMjEtbWFpbnQKKzIwOTI1IDRlZDY1N2QzN2NlYTdiZDhjM2RhODBlNGRhMTJiNjdkYjVjYzg2ZGYgcmVsZWFzZTIxLW1haW50CisyMDkyNiA1Njk2ZGRkYTNlNDBmOTcxZmJhMTczZGEyNGY5NDQxMjljMmVkNTU4IHJlbGVhc2UyMS1tYWludAorMjA5MjcgZmM2OGY2ZWQ3MDE0MjA0NTVmNjdkMDhiNDg4ZWQ4OWI0ZjQ3MGIwOSByZWxlYXNlMjEtbWFpbnQKKzIwOTI4IDRhZDdhMmFiNDJiNDJlOGM1MGM5OGU5ZGE3MTUzNDA5MzQxNGIyYmUgcmVsZWFzZTIxLW1haW50CisyMDkyOSBlNWJhMGQyYjQ3ZTI5NDI1MmUxZWFiNGVmMzUxZWM1MmEzZTJlMjg4IHJlbGVhc2UyMS1tYWludAorMjA5MzAgMTAzMTExYWQ5OWYxZjBlMmViYTUwNDMxNjM2OWRkZWNkYmUwMjE1NyBsZWdhY3ktdHJ1bmsKKzIwOTMxIGFmNDg5NTg3NTA5ZGNkZGU2M2MwOTJlODAzZGNjYWRlYzlhMWY4YzkgbGVnYWN5LXRydW5rCisyMDkzMiBkODZiMjQ1ZTA4NTgwMWMyNGM3MjQxNDM4ZDI4ZGU1Yjk1ZDNjNjhhIGxlZ2FjeS10cnVuaworMjA5MzMgOTViYWEzMzNlZTQzY2I4MDE3ODc1YWRhZjI4ODdjOGZkZDU5N2YyMiBsZWdhY3ktdHJ1bmsKKzIwOTM0IDVlMTE0MTE1N2Q1M2ZkOTVlNzY4Y2EwY2VjMDY3NGYyNmViOWI3MGMgbGVnYWN5LXRydW5rCisyMDkzNSA3OGY2NzA3MWM5NDllYjJjOTJjM2ZlZTlkZDJhMzc3MGNkOWY0YmM4IGxlZ2FjeS10cnVuaworMjA5MzYgMTc4YmVkZjk1MzZkOGNlMWMwZmM2NjY2ZWUzMTA4NTVjNzA3MWUyYSBsZWdhY3ktdHJ1bmsKKzIwOTM3IDA1YWIwYTcxNGU0Y2FlYTk3NDBjZTI1ODljZDQ3NTkxMmVjM2EwMGEgbGVnYWN5LXRydW5rCisyMDkzOCBiMjAxOGU1ZDIxNDJiOTQxZDIxNzEyMDhkYjY4N2NhN2MxYjVmNGQyIHJlbGVhc2UyMS1tYWludAorMjA5MzkgZWQ4Yjc5YzZjYjRiMmNkYWFjNDNmNzZhYjk4ZDFhYThiOTJlNjVjZCBsZWdhY3ktdHJ1bmsKKzIwOTQwIGY5YTM0YWMxNGM4YmU5OTYyMjIyYjI0MWI3Njg3NDhlZDJjM2U2MTMgbGVnYWN5LXRydW5rCisyMDk0MSA3M2ZjYzRmNGExODIyOTBlZDE1MzA0YjlkODA4NTNhZmE5NjZhYjM2IGxlZ2FjeS10cnVuaworMjA5NDIgNDAxY2NmY2YyOGMzODg0MGVhN2U3NzJkZTIxMDBkYzg3MzM1MWI2OCBsZWdhY3ktdHJ1bmsKKzIwOTQzIDJmMmVlNWRhYTYwZGI2NTc5NzBjZjU2ZTc1ODE5ZGZlN2ZlMjk4ZjUgbGVnYWN5LXRydW5rCisyMDk0NCBiMGI0NmQ3NzM0ZTBlZDNlNDhjNGJmNTJhNGM0MjhjZWJkM2ViMjcxIHJlbGVhc2UyMS1tYWludAorMjA5NDUgNTI3ZDBmZmRmMDk5MDE2MTFiZjYzNjFjMzM4YmJmMmMzMzU2YjYyYyBsZWdhY3ktdHJ1bmsKKzIwOTQ2IGQ1NzlhNWQ4YjNmZWE4MWMxMTVjZmZjNjc0YTAwZTM4MDg0MDJjZjUgbGVnYWN5LXRydW5rCisyMDk0NyAyYTk0YmYyMzVkYWFjZmFlZjRlNzkzNzdlMDkxYjc4ZWYwZTdkNTM2IGxlZ2FjeS10cnVuaworMjA5NDggNWU4N2EwOGFiYjA1N2ExNWNhOTJjZDJhYzliYjBhYTA1ZTMzMDU5MyBsZWdhY3ktdHJ1bmsKKzIwOTQ5IDE5MmQzNjg2OTQ0NTU4YTNmMzU5N2RjZjRkYjljNmIxM2MwZmE5MGIgbGVnYWN5LXRydW5rCisyMDk1MCBkYjEzZmI1Yzg1OGE1MTkzMTExNmIyNDRmZTY3YjNlOWY2MDAwNjRhIHJlbGVhc2UyMS1tYWludAorMjA5NTEgYTJiOTk2YzcxNmExYzUwNDQ1OTkxYmY1NGQxMGJhYWZiNDc3YTA0OCBsZWdhY3ktdHJ1bmsKKzIwOTUyIDYyZWVjMjkzNmNkM2Y5ZTFiNjAwNTg1ZmE5MWEzNWZjNmIwZjI5NzUgbGVnYWN5LXRydW5rCisyMDk1MyA5NTI2ZjBlZDA2NmEwNDdlNGM0ZThmZDA1NGRlZDVlOTc3MjI0ODkzIGxlZ2FjeS10cnVuaworMjA5NTQgNDdjN2MxZWI5NTc0ZDE5OWNlNTRlNWUzMjJiNDNiNDY5ODc5NjkyOSBsZWdhY3ktdHJ1bmsKKzIwOTU1IDcwNmJiNmM5NDVkZmY1ODMzN2E3ZjkzNGY0NjY1MDM2YjI0MGJhNDIgcmVsZWFzZTIxLW1haW50CisyMDk1NiA4NTg1MDQxYmE1N2IxYmVjZTFkZjdkMzk0NGQ2MDdlYmJmNDBlYjM3IGxlZ2FjeS10cnVuaworMjA5NTcgYWUwOGEwMWYyZjJkZDJmNTg3ZmE2OTdkY2M1YzMwMDcyY2MyM2QwNSByZWxlYXNlMjEtbWFpbnQKKzIwOTU4IGU4MTljYzBhOWVmNmRjMGJlZGYxOWY1M2JlNDUzOTVlM2YzMzk5ZjQgbGVnYWN5LXRydW5rCisyMDk1OSA4MzYxNGQwZTAwZjE1ZTc0NWYwZTI0Yzk5OGFlMmE5MjQ2NzM3NDE1IHJlbGVhc2UyMS1tYWludAorMjA5NjAgY2RmODhiYTJkOTY4YjkzYjBiYWM1ZTQzODA5Y2Y4NGIxOTU0MWI3NyBsZWdhY3ktdHJ1bmsKKzIwOTYxIDA3NjllMTFkOWQ1ZjQ4ZjNlMzYxYTU0YTk1NjNlMTBlYjcwNDM3MzYgbGVnYWN5LXRydW5rCisyMDk2MiA5ZWUyMTgyNDgxYWY5YTE0NzNhNmFiNzBiODJkOWJlNTQxOTc2Y2VmIGxlZ2FjeS10cnVuaworMjA5NjMgNDQ3ZWE2NTE4MWMyODVjMDY3NDc5ODJiYTQ3ZDdlZDE3YzEwZThhZSBsZWdhY3ktdHJ1bmsKKzIwOTY0IDI5OGZiMjlkYWE4MWMyNzM0MzYyYzY3YWZlMDhlZjViZTc1NGE2YTAgbGVnYWN5LXRydW5rCisyMDk2NSA4Mzc4MjVhNzc5YzE2ZWEzMjFjNTMyNjYxODRiMjA0M2ZmMDZjOTYxIGxlZ2FjeS10cnVuaworMjA5NjYgNWE5ZGViYjE0NDQwZTI1MmUzMzU1ZjMzYmE0OTViYzE0Yjk2YjliNCBsZWdhY3ktdHJ1bmsKKzIwOTY3IDI3ZjI0MjJlYTMzNTc4MGE3NzBmZTE0NzI4NmY2YmMyNjk0YWM4YWUgbGVnYWN5LXRydW5rCisyMDk2OCBjOGNiNzk3NzIzNjRlNDg2MGFiMWNhZjQwYzMyYjg4YmIzZDE4NjRmIGxlZ2FjeS10cnVuaworMjA5NjkgZmY2NDRlNjA4NTI4Y2Y2YzQ3NWNhMDNjOTVhZTcyMThjNDM3YjFjNSByZWxlYXNlMjEtbWFpbnQKKzIwOTcwIGVjOTM0M2FkMWU2MDlhN2M1YmE1ZGU4NGMyZjQzYWQzMzI0ZDY2MTUgbGVnYWN5LXRydW5rCisyMDk3MSA5NzgwNmE1OTljN2ViNWE2OTc2N2NjM2IzODkxNTBiMTMwZDA3ZGViIHJlbGVhc2UyMS1tYWludAorMjA5NzIgNDViYWRmYmZiMDBlZjYxMzZmMDU3M2YxZTYxMTZhZmFjYjA3ZDI1OSBsZWdhY3ktdHJ1bmsKKzIwOTczIDI3ZWRlOGIwOTVkNmRmMWQxNGUxOWRhMmFkYTU1Y2Q0NzNlOWU5ZDkgbGVnYWN5LXRydW5rCisyMDk3NCA2NGUxZWEzNGI1NTMwMGQzZjJlNTU5NGY3NGUwY2IzZWUxOWQ4NWYzIGxlZ2FjeS10cnVuaworMjA5NzUgYmFmMjEzN2U5Njc2Y2I0NDZjOWY3ZDRiZDFhOTMyZTI0YWEwZTZlMSBsZWdhY3ktdHJ1bmsKKzIwOTc2IGU2MGZjMDE3NjJhMGY5MDE3NzQ2NjQ0ODc0M2NhZmVhNzg2ZmYyNjYgbGVnYWN5LXRydW5rCisyMDk3NyA2YTJlMjU0OGU2Y2YzOWExZDlmMWQzNTc0YjFlYWJlMmNjMDliOTRkIGxlZ2FjeS10cnVuaworMjA5NzggYTQzMDE0MzFiMmFjOGU3NWVmYzM4YzkyNjlkNzRjZjU2OTgxYzk2YSByZWxlYXNlMjEtbWFpbnQKKzIwOTc5IDUwZTMzODBiMDg2YTFkNDc2MjFlM2Y5ODg1ZjFlYzY2MWFjZWZhNmQgbGVnYWN5LXRydW5rCisyMDk4MCA1M2IwZjY1YTBhMDVkNzVkZjEzYWRlNDVmMzI2MmVlN2FiM2NhZmUzIHJlbGVhc2UyMS1tYWludAorMjA5ODEgMTgwNzEwOTExZjE1ZDdkYzY3ZDRhNDA4Njc5NmRlNmRkNjg5NDMzZSByZWxlYXNlMjEtbWFpbnQKKzIwOTgyIDU4Mjg0NWUxNGU1Y2MxNWNjMDhjZDE4ODdmMmI3MDJkODJmNDY4NmQgbGVnYWN5LXRydW5rCisyMDk4MyA5OWFlYTZmNWNlYmQyOGVmNTE5YzgxMGFmMmRlNjQ2ZDIzZjJlMzUyIGxlZ2FjeS10cnVuaworMjA5ODQgOWY5NzE2N2YxNjQzMDE2NzNjZWVjYjk2YTdlZmE3NDQwMTEwNzNjZiBsZWdhY3ktdHJ1bmsKKzIwOTg1IDBjMWEwNGU5ODEzNDJmZDViOTRkMWNhM2FjOGU1ODY4NmY4NWY0N2UgbGVnYWN5LXRydW5rCisyMDk4NiAwZDZmNzYwYjZlZjFhNjQ0MzZiMThmYTcxMTc3ODkxNTBlODliYzJkIGxlZ2FjeS10cnVuaworMjA5ODcgZmFjZmY1ZjUwZmNjYWYyOGU5ZGQ5MDA2YTRhZjU2NGJlY2I1ZjdkNyBsZWdhY3ktdHJ1bmsKKzIwOTg4IDAzOGUyZjc0ODAwZDk3ODMwMWVlNDBjZDgxZGI1MTJiZDM5NDJhZjMgbGVnYWN5LXRydW5rCisyMDk4OSBjYTdlMmUxYWU4ZGY5NmU1ODY2OTAyZDQyZjYzNzMyMjJlOGI3NGNjIGxlZ2FjeS10cnVuaworMjA5OTAgZTg2ZDMzMDgxYmJhOTRiZTlkNzg2ZTY2ODVmOTNmOWI1NWM3NGRkZiBsZWdhY3ktdHJ1bmsKKzIwOTkxIGM5ODdkY2Q4ODJiOWM3MzE4ZDg1MWY3NmRkZGEwMGMxYjgwYjc0NjMgcmVsZWFzZTIxLW1haW50CisyMDk5MiBiZDFjNGZlOTc3Y2JkYzc1NzMyZjVmMDFjYmQxYTJmY2FjYTFmNjg5IGxlZ2FjeS10cnVuaworMjA5OTMgOGQyYmJiYmYyY2I5ZmRjMmZhODdiYTNiODNiZGZkYmMzMzIwYzQ5NyBsZWdhY3ktdHJ1bmsKKzIwOTk0IDE5YjUwNGZiOWQxNTZlN2IxN2Y5ODkyMjFkMTVkNmNhODNlMGZiNDggbGVnYWN5LXRydW5rCisyMDk5NSA1MTE1ODdhYjJkZDJlNmYyODJkNmZhZGU4MDkyZTA4OGUzYjI1Y2Q5IGxlZ2FjeS10cnVuaworMjA5OTYgMDI0MjY3NDQxNzYxZTk0NGJmYWFmM2RjYWM4M2Q2MzE1NWRhNjI1MyBsZWdhY3ktdHJ1bmsKKzIwOTk3IDUzOTFiOWQwMjJhYzEyNzU3MTUxZjc4N2IzNDFmY2I0MGJiMGNhODYgbGVnYWN5LXRydW5rCisyMDk5OCBlZTVmMDE2NWU0ZTNlYjFkYjBkMDk0NGNjYmZmYjVhNmZkYTQ5ODFmIHJlbGVhc2UyMS1tYWludAorMjA5OTkgNGQ2MmEyZmVjOTMwYTJhODg0MDE3N2Q3Y2Q1ZDVmNzU0MTMyMzUwNSBsZWdhY3ktdHJ1bmsKKzIxMDAwIDZhZTYxMjI5MTJkMmVkYjlkNDI1MTBiOGY2OGZlZTMwZjhkYTNkZDkgcmVsZWFzZTIwLW1haW50CisyMTAwMSA5ZWJlODVlNzE1NTA0MTA0YzAwYmNkYjNkZjZlNjlhMWQ2ZmNjZDAxIHJlbGVhc2UyMC1tYWludAorMjEwMDIgYjk5OTc5ZDBmOWU3YzA4MDRkYjQ5Yjc1YzFhNjk2NDUyNTRmNjkxMiBsZWdhY3ktdHJ1bmsKKzIxMDAzIGJkOTdhNGZkYjZmM2M1ZjgyNmQ2NjZlZGNiZGI3NDM1NzM0OTQwNDMgbGVnYWN5LXRydW5rCisyMTAwNCBjMDAzNzMxNzdiYmI2ZDZhODY4YTQ2YWIzNzhjMDI3ZTJiOGM4Y2I5IGxlZ2FjeS10cnVuaworMjEwMDUgZmEyMjU1ZDMxNTAwZTkyZDQ0NzYyZDM2ODAxY2UyOWZjNDhlN2ZmMSByZWxlYXNlMjEtbWFpbnQKKzIxMDA2IGEwMjA4NTg3MWMzZmU0ZmM2NjVhM2QxMTY2NjFlZmE1Y2U0NjE4NmEgbGVnYWN5LXRydW5rCisyMTAwNyBkZjFjNTNhODE1MDI5MTI2NWQ2NzljZDQzZWM1NzNhMTUyNDk2NjBjIGxlZ2FjeS10cnVuaworMjEwMDggYTZmOGIyZmEyZTIwMTgzZTUxMTE5NDJmZWE3YzY3NmJiMjdhMjlmOCBsZWdhY3ktdHJ1bmsKKzIxMDA5IDkxNjE5ZDdkZjU4YjliMDdhZTk0ODFkYmNkZWViMTE1MTJjN2E1YzggbGVnYWN5LXRydW5rCisyMTAxMCA2ZmRjZTc2ZDQwNjY1ZTBkZDYyMzI1MmMwZDI3MDQzM2E3NTc2ZDI1IGRlc2NyLWJyYW5jaAorMjEwMTEgYmYxNmMzY2E1ODBlYzY0Nzc0YmU5ZmZhY2Y0OWYyYmU1OTA4ZWU3YyBkZXNjci1icmFuY2gKKzIxMDEyIDczYTFlOWY3YzgzZjIxNjYxOTYzZTQwM2JjNTRmYTE5ZDI5MTJhY2YgZGVzY3ItYnJhbmNoCisyMTAxMyA4YzQ1YTY0ZWU4MzFiNzg5MmJmYjdiOTA2OTM2MzZlMDAwZjFkMzM2IGRlc2NyLWJyYW5jaAorMjEwMTQgZTkxOTQ3MzE3NmM4MjM0ZGNiNTgxODUyMzUxM2UzNTIxMDY5MTdmMCBkZXNjci1icmFuY2gKKzIxMDE1IGVkNDI1MmJmMDgwYzk3ZTFkODY3OTBlNTAzYzY3MGQwMjcxYjUzZmEgZGVzY3ItYnJhbmNoCisyMTAxNiA0OWYwZmY2ZWI0ZWIxMzVkYzJhNWVjNTQyNmEyMzgyZWVjM2QyODU1IGRlc2NyLWJyYW5jaAorMjEwMTcgYzA3NDMwMjViMjNkYjM4ZjFmMzAzODJkOTkyODU0MTYwY2NlMjhkYSBkZXNjci1icmFuY2gKKzIxMDE4IDU0NjZjY2JiMmY5NzQ5OGViYmIwZjc1OGZhMmRiYzRjMDg1MDMyNmMgZGVzY3ItYnJhbmNoCisyMTAxOSA1YjUwNTZjZjE0ODhjNzVjYzRjM2EzZDhmMzYxOWIwMjQ0NDVmMjY1IGRlc2NyLWJyYW5jaAorMjEwMjAgZmI5M2RmYmQ4MDUyMzU3ZThkODU4NGVmZjg5N2JjZGZlZmYwOWYzZiBsZWdhY3ktdHJ1bmsKKzIxMDIxIGMyZDQ5YTczMjE2NmRiYjFkOTJlOTFkYWI4MmZiZGJlM2I1NTM3ODEgbGVnYWN5LXRydW5rCisyMTAyMiA5NTdmOTQyODY2MGYyMjk2NGQ1MmZhYzE2MGYwYzdhZDAzMjAyY2UxIGxlZ2FjeS10cnVuaworMjEwMjMgM2NiYjg1NzI2ZjZlZDIxNDI2M2Q5ZjNjOGUxMTE1ZDBjMWRiNjhjZSBkZXNjci1icmFuY2gKKzIxMDI0IGUwZjBmN2JjNWRhNzY5NGJhYzcwNWFiMmFlOWJhMGJmOWRlYTgyNDUgZGVzY3ItYnJhbmNoCisyMTAyNSAzYWI2YzQzNGE5Yzg3NTNjMjRhYmZlNTJmZDFlNzAwZjI5MTlkMjlhIGRlc2NyLWJyYW5jaAorMjEwMjYgNjUzMjIxMDM5NTVhMDRkMDkwZjA4N2U5MDE3ZDhlOGNmY2QwMjEwMyBkZXNjci1icmFuY2gKKzIxMDI3IDBkNDZiN2M3MTA1ZTJlM2VlMTE0YmZlMmU5ZjJlMWM2NTE0OGExMDggZGVzY3ItYnJhbmNoCisyMTAyOCBhNzgyNjg0MjQ4NjhhMTkxYWJiNGFiNGMzMGM1M2NkY2Y1NWRkMmFkIGRlc2NyLWJyYW5jaAorMjEwMjkgMGU1MThhNTNlYzViZWFkOWFkYmZjYjhkOTFiODY5NTJjNGZjNGZkOSBsZWdhY3ktdHJ1bmsKKzIxMDMwIGRjYjFjM2JkOGUwZTg5NzY2ZGZlY2U0NzMxOGVkODk5OGFmNjk3NmYgbGVnYWN5LXRydW5rCisyMTAzMSA5NmQxMTIxNTAxM2FiMjMzMGU5OWVkY2MwZmNlOWNmODIzZjNhMDA0IHJlbGVhc2UyMS1tYWludAorMjEwMzIgOTYzMzBjY2M4NzBhOTQ0NDEzMDE0NDI3M2QwZDJhYTczNDk5MmMxNSByZWxlYXNlMjEtbWFpbnQKKzIxMDMzIGVhODMwOGZkMDZmMjNkOWEzOTg4NTRjZTNjY2QwZGFiNDZlMzdiYTggZGVzY3ItYnJhbmNoCisyMTAzNCA4NTkzYjdlMGI2NDU0MTYzZmUzMDgyYzQzNmQ4Yzk4NDNkNTcyZTk0IGRlc2NyLWJyYW5jaAorMjEwMzUgNjU2OWM4NDk5YjE3MGZhN2I1MWQwYjY2NjVkZjE5YzcyYTBiYmJkMiBkZXNjci1icmFuY2gKKzIxMDM2IGU3OWJiNWI4YTVkMGU5YWE1MjRmZDExYTYyMWI3ZTc0ZjBjMjY2NDQgbGVnYWN5LXRydW5rCisyMTAzNyAxYjkyNzAxYTBlZDJkZDVmYjQ3MjNmYTljMjgzYzQxOTMyZWY3YThjIGRlc2NyLWJyYW5jaAorMjEwMzggYjczYzI4MTdjYzFhYzAyMWNjNzIwZjZmODQ5MmJhODJkYTMwZjQ5NyBkZXNjci1icmFuY2gKKzIxMDM5IDE0ZGM3NWE1NjAwYWM1YWJhMjhiZTY2MDFkMWQ4ZGJiM2E3YjNjNjAgbGVnYWN5LXRydW5rCisyMTA0MCA4MWE4ZDE4MzBiNjNhYmM5ODFkYmQyNjNjYzZjOTE5OTE0YzhkMzkxIGxlZ2FjeS10cnVuaworMjEwNDEgNjVhMmUzZThiZjU2ZDEwOTdmNDMwNWU2ODJjMGU4YmU1NzkyYjNhNyBsZWdhY3ktdHJ1bmsKKzIxMDQyIDU4NmZkNzllZjRkOTdjOGQ3NDkxN2QyY2I0ZjBkMTZjODZkZDhiMDIgZGVzY3ItYnJhbmNoCisyMTA0MyAxM2E4ZGNhNGIwNDBhZjg4MDlkYjA4ZjY1NDE2MmQ1OGExMGE3MTcxIGRlc2NyLWJyYW5jaAorMjEwNDQgYjBmYzgzNmYyY2VhZDBiMjBhODBkZDhkZDJmZTcyODAzZGZmMGVhYyBkZXNjci1icmFuY2gKKzIxMDQ1IGU4OTc1NTBiNDc0ODQwZjc2MTZiNTAzZTFhZmIxMWEyZjQzMTQxYzcgbGVnYWN5LXRydW5rCisyMTA0NiBmODQ3NWZhNmJhMzZkYTVjNWJhOGVlODE3MGIzN2RlNTVlY2E0N2EyIGRlc2NyLWJyYW5jaAorMjEwNDcgYzQwMTZhYmQ2YjdmM2VhMWRkNTA1ZDU2Zjg3MTljOTcxZjk2MjE0MSBsZWdhY3ktdHJ1bmsKKzIxMDQ4IGEzYzMyOWY2OWUzYTYwYmU0M2E2MmE4MzAwMTE2Y2FmOTg0ODRmNmUgZGVzY3ItYnJhbmNoCisyMTA0OSAyYjAxN2IyYzhmN2NiNTJmYTZhODU0NjhhNDBlZjg1MmI2NjYyOWI0IGxlZ2FjeS10cnVuaworMjEwNTAgZTY2Y2Y5ZDZhZDQzZWQwNTVmYzkzMTY3MDdkZjU1ZmJmYjI4NzZiNSBsZWdhY3ktdHJ1bmsKKzIxMDUxIDlhMjY4MzJkYTBmOWU2NTc3NTk4NzIzZmNjMmUyODRhNDE4ODhhOGUgZGVzY3ItYnJhbmNoCisyMTA1MiBhMWYzNTc2OTYyNjRiM2NiZWZhZjg1M2E0N2Q2NTM4NzFlYjA3Y2E0IGRlc2NyLWJyYW5jaAorMjEwNTMgOGNhZjIxOTcxZjM3ODc5ZWNlMjhmNTA4NzI2YWJiMDY3NDFkZGQ2NCBkZXNjci1icmFuY2gKKzIxMDU0IDdkZTdkMDY5NGJhODdhNGZmYjRjMzNlNGI1MmY0ZjYwZGI1NWUyNjggbGVnYWN5LXRydW5rCisyMTA1NSBhMjMyYTZjM2ZjOGM3ZGZhODNlMTJmNjczOTNhZDBiOGVhZjI3YmMzIGxlZ2FjeS10cnVuaworMjEwNTYgMTVmNDM4MWNmZjBmMGM2OGJmNGUzN2I0NDBhMGFjZTUwOWVjYmUwMCBsZWdhY3ktdHJ1bmsKKzIxMDU3IGQ5M2I0OTI5OGFmZDZmMTIxZjkyYTljN2U3ZGFjYmUyMjczMjFhZmMgbGVnYWN5LXRydW5rCisyMTA1OCAyZWMwOGQ2YzdkMTIwNDY5NTQ3YTEwODc3ODJiNTEwODYyZTIxOGRjIGxlZ2FjeS10cnVuaworMjEwNTkgOTk5YjEzZGUzOWE0MmRjNzdiNzg0OTUzYzY5NTE5ZDI2NDk0ZjA1ZCBsZWdhY3ktdHJ1bmsKKzIxMDYwIDFjMTgzYWU1YzkzNDkyYmM4ZjJhM2RlZWZmMWVmZTFjZDU2OWU3OTMgbGVnYWN5LXRydW5rCisyMTA2MSA1YTZiODNmNDE1MjdiNzgwYjA2ZjQyOGM3ZTY5MWFkMDk0OTliZjg2IGxlZ2FjeS10cnVuaworMjEwNjIgYmJhYzJhNmE1ZDE2ZmMyNzJiMWE3Y2E2MDdhZDA2NzM3ZjFhMWU5MyBsZWdhY3ktdHJ1bmsKKzIxMDYzIGFjNTQ4OWEyNTQ4ZGU0NjM1N2IwZmQ3NzUxZjA5YzExMmU3YTkxOGEgbGVnYWN5LXRydW5rCisyMTA2NCA4ODlkYjZkNTU1MDYwMWM1MzJiM2VhYjQwYzc0YTMyYTEyNjE4ZDAzIGxlZ2FjeS10cnVuaworMjEwNjUgYmRlMWNmNTc0MGVjNjlmOGI3NDY4Y2RlY2FmMGQyNTAwMTlkNWYxOCBsZWdhY3ktdHJ1bmsKKzIxMDY2IDEwOTkyMTk4YzlkNjdhYTVkZWQyNDY3OWUxMGUzMWY4ZTNkZDViMTQgbGVnYWN5LXRydW5rCisyMTA2NyA2MjQ3MjY1NjgwN2VhOThlNGU2YTBhODc1MzY2ODBjM2U4NWQ5NTg4IGxlZ2FjeS10cnVuaworMjEwNjggOGUxODc3NDBhYTk2YTY4MzEzY2U1YzVhM2MzMzA4OGRmOGQ2NWY3YyBsZWdhY3ktdHJ1bmsKKzIxMDY5IGY5MDFhN2RjNWZiNGNiOGYxNjdlMTc2YjBiMjExZjFhMTdkMDZmZjUgbGVnYWN5LXRydW5rCisyMTA3MCAxZjgzZTQxNTVmY2QxNzJiNDczOTc4MTk0NDQ5YWIyYTU1ODZiMGMxIGxlZ2FjeS10cnVuaworMjEwNzEgN2RlNWQzNzg1NzhjZGUxZDAwNzZiMGEwZWJjNzJiY2QyZTE5NGQzNCByZWxlYXNlMjEtbWFpbnQKKzIxMDcyIGU4NDk0ODg2NzRkYTI2NjE4ZDU0YTdhMmM0ODEyZmVlNzcwYTQyOGEgcmVsZWFzZTIxLW1haW50CisyMTA3MyA0MTBiYmY1ZDk4Zjk3YWEyMzU4MWY4MDI1M2UxM2I5YThmOGYwMWJkIGxlZ2FjeS10cnVuaworMjEwNzQgNzJiMTU3MzFhODc2OWEzZGU0NmU5ZGY3MDdlOWZlODU5MDkzYjM3NiByZWxlYXNlMjEtbWFpbnQKKzIxMDc1IDkwMTkzNzUwY2M4Mzc2YmYzYzgwMWQ1OTBhZmU1ZTkwZmZiMjA2NmUgbGVnYWN5LXRydW5rCisyMTA3NiBmM2JhYjkyOWQ3MGVlMDc3MGY1ZDY4ZmM0N2QzYTJiNmE0NjNkYWZiIGRlc2NyLWJyYW5jaAorMjEwNzcgNjIyODY3ZTRkODMyZmIwM2ExYTFkMjQwNDgxYzZmMmYyNGM1YmEzOSBsZWdhY3ktdHJ1bmsKKzIxMDc4IGFkZDA5NTYzOTg1MzBkZTQ5ZTM1NjU3Mzg5ODc2YzY1OWY5ZTEwMDAgbGVnYWN5LXRydW5rCisyMTA3OSBiYzA1YjBiNWUwNTc4MTMyZGFiNjUyNzRiOGJjOGFkOTE5OGU2YjU5IGxlZ2FjeS10cnVuaworMjEwODAgZmYyZDdjMTgzNzE1MmI2OWUxOTY4MmUwYmQzMzZlMWI1NWZjNTk0MyBsZWdhY3ktdHJ1bmsKKzIxMDgxIDRjY2JiOGU1ZmIyNGNiYzczOTVmZmUxODk0YWFkMjI3MmFjYTJlYjIgcmVsZWFzZTIxLW1haW50CisyMTA4MiBiOGZiZmE1NjljMzQ4MDNiNmM1MGUxMjU3NzYwNTE0MzQ3ZGE2MjdhIGRlc2NyLWJyYW5jaAorMjEwODMgNmI2ZTBiMGRiNGY3NTUxMWM3ZjZmMWVmZTBiNjIxYzY2MGY2ZTllZCBkZXNjci1icmFuY2gKKzIxMDg0IGM5MGJkZThiNjdiOGRjODc1N2JiOTY3ZjRmYmRmZGMwOWJjOGJmNTkgZGVzY3ItYnJhbmNoCisyMTA4NSBkYWJlNzEwMGIyMWYzMDdkOWMxNzBlNzQxZjQ4YTUxYmU0ZjQzM2NmIGRlc2NyLWJyYW5jaAorMjEwODYgNGNjMmFmOGEyZjRlNjYzMGQxZGFkNjVjMDkyZWFhMDk0NTBiNDY3MSBkZXNjci1icmFuY2gKKzIxMDg3IDZmZTU2YTliMzAyMThmOTIwNGQ5NDhjZWQyNTlkNTdjZjJkOTJkYmUgZGVzY3ItYnJhbmNoCisyMTA4OCBkZDA5ZjExZmE0MGRjOTVkZjg1ZjBiNjliMDE5N2ExYzdlMjVmZGQxIGxlZ2FjeS10cnVuaworMjEwODkgNWZjNmQwMjdlODYxMThlZWM3MTFkY2U5Y2FhMzc0NWY3Y2Q1ZjBlMCBsZWdhY3ktdHJ1bmsKKzIxMDkwIGJiY2RiZDhmNDQ2OTk1MWFjMDVlMDA5MmE5MzkyZjU4N2I2OWEwOGYgbGVnYWN5LXRydW5rCisyMTA5MSA3ZTQ1OWZiM2MzMzI5YmUyZWVlYjkzMTNjOTM3ZDQyNzdiYTllODYxIGxlZ2FjeS10cnVuaworMjEwOTIgNTkyMTA5ZjJhNmZkNjk2MDY5ZmVkNjNkMmNkMGM3ZjhjZTVkYmU1NyBsZWdhY3ktdHJ1bmsKKzIxMDkzIDYyNTQ3MzdjYjYyOTY4MDEzMzk5NjVkMzRiYTI4ODA3N2FkMjg5ZmYgbGVnYWN5LXRydW5rCisyMTA5NCA4NmNjZjkzY2M5NTIyODIyZDQ0MWU3ZDdmOTg0MjI2NmUxOTZkNmEzIGxlZ2FjeS10cnVuaworMjEwOTUgMThhMWUwOTM5N2RhYzk1YzZlZmU4YzczNTQ3ODUzMTU3ZWYyMjM4YiByZWxlYXNlMjEtbWFpbnQKKzIxMDk2IDQxMDE2Njc1MDAyZmU0ZDk5ZjI0MGQ5MzhhNjc5MjcxMWFiMjA0MzMgbGVnYWN5LXRydW5rCisyMTA5NyBhMDAxZmNiNzYxNzc5ZGU0NTljZGE4MjM2ZmQ1N2NmYzFmMWE5NzcxIGxlZ2FjeS10cnVuaworMjEwOTggYmQwMDU2ZWUxYTZlNDkwNWYzOTJkMzNjZmEwZWVmMmZiOTAyYWQ0NCBsZWdhY3ktdHJ1bmsKKzIxMDk5IDZlYTM2NmEyYjJhNjM0ZjRjMTUxNjk1NmUxYzJkYTRhYTIwNGQzMGQgbGVnYWN5LXRydW5rCisyMTEwMCAyMzY3YjdhMDAxYTdlN2U2OWE5ZjRhZjY4N2NkODQwOGVkMmQ3ZTM4IGxlZ2FjeS10cnVuaworMjExMDEgN2E5YTY5MjcyOWI0MDM5Y2Y3NDAzMWZlMTZiM2FkOWY2NjI5NGUxNSBsZWdhY3ktdHJ1bmsKKzIxMTAyIGMyZmNhNzdiYmYzYWI4ZDZmYzI3YjFkMmVkZTkzNTNiYjE0MzdmMjQgbGVnYWN5LXRydW5rCisyMTEwMyBkZTdmOWFhMGE2M2E1MjNiZjI3MTY0Yjg0M2E1NThlZmU1MTc2MGJmIHJlbGVhc2UyMC1tYWludAorMjExMDQgZjc0ZTkyYzhlYWMxYTY5ZTk4ZjE3MWU4MjhiNzJiNDMwNzY4ZDA5ZiByZWxlYXNlMjAtbWFpbnQKKzIxMTA1IDAzNzM4NmEyYjI0N2NiZTkzMjBmMDM4N2M2ZGQ4MmM2MjEyOTc5YjEgcmVsZWFzZTIwLW1haW50CisyMTEwNiAxNDIxMjllOWE5ODU2NDkwNjA3NmQ1MDgyYTQzMGNjMWNhYmNkZmIxIHJlbGVhc2UyMC1tYWludAorMjExMDcgOWRkYTBjMTFlMDA2OTlhOTQ0MDI4ZmMxYzAxN2Y2ZGNjMjZlYTViMyBsZWdhY3ktdHJ1bmsKKzIxMTA4IGEzYzliNDE0MGNjNWVjNWJmZjdhM2IzZTFkMTRhN2ZjZDA4MDkwNDYgcmVsZWFzZTIwLW1haW50CisyMTEwOSAwMjI0ODczYzBhYzc0YjAxYjAxMzdkY2QxNTU4MTY0Zjg0ZTk2MWQ5IGxlZ2FjeS10cnVuaworMjExMTAgNWQ2ZmMxOGM0MDA5ODVkYWQ3NDkxNmJhZDQ5ODA2ODQzMjQ4NWQ3NyByZWxlYXNlMjAtbWFpbnQKKzIxMTExIDE1YzA0ZmUyNGQ4NTg2NjJkZjUzMmZlMjBjNTcyMWIzYTNiZjMyNDEgcmVsZWFzZTIwLW1haW50CisyMTExMSA4MzQ1OWNjMTkxYzFjOWM4Y2M2YjA4YWRhOTljMDJmMGFmNmFkNTRmIHJlbGVhc2UyMC1tYWludAorMjExMTMgYzU3OGI3NWFkNjJmZGVkNzBiNjRhYjczNTFmZDRhMjg4Njk1OTdkYSBsZWdhY3ktdHJ1bmsKKzIxMTE0IDhjZjcyYjE4N2IzYWI5ODY2ZThkODQxZGY5MmYxODRhNzYwZTUyODIgbGVnYWN5LXRydW5rCisyMTExNSBiZTJkZGIyNWI2OThiMzlhODc5YzQ2NDUxNjE2YWVjYTliYjJiMWZiIGxlZ2FjeS10cnVuaworMjExMTYgZTIxY2Q0MTM1ZjNkYjFhZjIzYjNlNWY3MTBiMDdkNjM4MDMzZGJhNCBsZWdhY3ktdHJ1bmsKKzIxMTE3IDA5OWFlNDkxODA2OWE1YmI5NTA4MzY0NDg3NjhjMWM1MGNiNGQyMjEgbGVnYWN5LXRydW5rCisyMTExOCA3ZjVkODA0NGY5OTRjMWY1MTQwNjk1M2Q1ODc5M2UyYzA3MTU5YWIyIGRlc2NyLWJyYW5jaAorMjExMTkgYjE0MGI3OGYxNzg1Y2JhODg0ZDViYTVjYjExZmM4ZTAzZTlkYzhiZSBkZXNjci1icmFuY2gKKzIxMTIwIGE2MjMxZjI0ZGJiNmUwYTQ3NGU0ODNmZWUxNWQwMDg1OTczODhiZDMgZGVzY3ItYnJhbmNoCisyMTEyMSA5ZWI0NjlhNDMxNDQxNzY4ZGU4MTExMjEwNWEzNmYxZjYxYmQyOGIzIGxlZ2FjeS10cnVuaworMjExMjIgZTY0YzcwMzFkOTRmY2I3MmE0NDUyYzMyMGMxYjkxYWU1Mjc2YjY4ZSBkZXNjci1icmFuY2gKKzIxMTIzIGE0NzYzYmZlZDlmMGU5MzA3NTUzYjhjMjVjYmVmNTMzZjlmOWEwZDcgbGVnYWN5LXRydW5rCisyMTEyNCAzMWNkMGRiMGYwOWZjZDk5NWQxOTg1ODE0OTA5MjFmOWM2NGIxYzViIGxlZ2FjeS10cnVuaworMjExMjUgMmVjYWY5ZTIxYTA0NmQ2ZmU5MTg0OWI4ZWNkNjUxYWI3YTBjMjllOSBsZWdhY3ktdHJ1bmsKKzIxMTI2IDc1MTdmY2EzMjI2MmNiYWZkMzg5YzljMDIyNDIyMjdmZTg1Yzg2ZTYgcmVsZWFzZTIwLW1haW50CisyMTEyNyA2OTkxMDE5NDk1OTk0NDg0MDEzOGZjMjBjYzk0OWVjNWM3N2U4YzUwIGxlZ2FjeS10cnVuaworMjExMjggYzA2MTZlMDk2NDMwZjIwZDcxMWM0NDlmNjM4NDM1ZDRlYWI0ZTYwNCByZWxlYXNlMjEtbWFpbnQKKzIxMTI5IGU0MDY4MTU3ODJhZmQ0NzFiOGE0YTc1ODg3YzQ0MTk4NjY4YmRlNDkgcmVsZWFzZTIwLW1haW50CisyMTEzMCA0MGQ3OTRiNTA0MWRmMDQxNDcwNTFhMTY3NGMyZjgxMWQ0ZDIyMjQ4IGRlc2NyLWJyYW5jaAorMjExMzEgMDI1MzA3NzdiNTIxOGQ0MWI5Njk2MGZjOWY5NmVhZWZkODEwYWQ5YSBkZXNjci1icmFuY2gKKzIxMTMyIDA1MDU0YmQ3OTU5YjY0NTE1ODlkN2RjMDNmMDRhYjA0NGY4YTQzOGQgZGVzY3ItYnJhbmNoCisyMTEzMyBjNjE2NjU1NzgyZjFhZmMxOTA4NzkwNWY2MTQxYjZhMjE3YjYzYjY4IGRlc2NyLWJyYW5jaAorMjExMzQgYzI5ZjMxMzVhMjBjYjA0NDQ5NTZjYjE1NGVjNTdlYzQ5ZDU3OWFlNSBsZWdhY3ktdHJ1bmsKKzIxMTM1IDMzM2EyYzZlYjc0MzhhNTE3MTVlNWFjODMyYTI4OGJhODg0ZWNkNjYgZGVzY3ItYnJhbmNoCisyMTEzNiAxNjZiN2IzNjU4NTE5M2NhNzg2ZDNmN2Q3NGRlMTViYjUwNzRjMjVkIGxlZ2FjeS10cnVuaworMjExMzcgOTUyMjk3NmQxZTk5NmNjY2IzNTQxMzlmN2YwM2QxMzQ0MmU4OWU2NiBsZWdhY3ktdHJ1bmsKKzIxMTM4IGFjN2RjZjBlNTEwNGFmYTE0MGY0MzdiZTA1YTE2NTRiYzNkMjFjMjAgcmVsZWFzZTIxLW1haW50CisyMTEzOSAxZjEzNjQ4MDY1OTljYTMxZWU4YmQ1MGIxZWYyNTk4ODc4YzQ3YmQyIGxlZ2FjeS10cnVuaworMjExNDAgOWU5ZWRkYWMyNWI4NThmNmZjMGExZWQ5ZGMwMTEzNTZhMWRiNzRlYyBnZW4tYnJhbmNoCisyMTE0MSAyN2RkOWVjMzE2MmNkOGNhYjk0YmQ3MzQwOTRlMjA0NTcwMzUxZWIzIGxlZ2FjeS10cnVuaworMjExNDIgMGFmNmVhZjlmODllZWY0YTlkYWVkMTRkM2YzNTkyZWRjOWI4MzI2YSByZWxlYXNlMjAtbWFpbnQKKzIxMTQzIDM2NDI0NDI2OTUwNjNhOTgxMDkyZWE0ZTk3NzZiOWU1ZGYyMjE2OWEgZ2VuLWJyYW5jaAorMjExNDQgNmFjYmE5ZTQ3NThjYjAxODkwYmUwNjkxNzFmOGRlZmJmY2ExNjYzNyBnZW4tYnJhbmNoCisyMTE0NSBlMzI4MjE4NTQ2YjU5OGJmZTQ2ZjY4OTQ1MmFhM2JmMjhmYTg2MWNjIGxlZ2FjeS10cnVuaworMjExNDYgYjdmMmUyMzEyNjEwZWM0ZmIzNTFkN2RlZjQzYzEwODNjODJiMDAxYyBsZWdhY3ktdHJ1bmsKKzIxMTQ3IDlkNTMzYWU1NzRkMjBkMTRjM2RjYWQyYjZiYzA0MzZiNjQ3MDBmNjMgbGVnYWN5LXRydW5rCisyMTE0OCA4ZWVhMmVmYjM0Y2QxZjE2ZTZjYmY3MTI3Mjc1YzllNTE3MWEyOTY4IGxlZ2FjeS10cnVuaworMjExNDkgODVlM2ZhMWViODM2Yzg4MjIwZWZmNGEwYjc1YWE5NzE3N2QyY2MyNyBsZWdhY3ktdHJ1bmsKKzIxMTUwIGU4ODdkNjg2MmY3N2I0MDgzMGQ3NDdmMWEwNWExNmI0NjkwYWNhM2UgbGVnYWN5LXRydW5rCisyMTE1MSBiNDk5NDVlODA0NGE4MDZmYjJiYTI4YzUwMTY4OGQ1ZmZiZmNkY2JmIGxlZ2FjeS10cnVuaworMjExNTIgZWZmOGRhN2MzZGNiOWJlYjBlODViYmZmODA4NTcyOTJjNzg1MDk0NyBsZWdhY3ktdHJ1bmsKKzIxMTUzIGNhYzIwN2IzYTQzZmQ4YTg5NDY0ZGQyY2UwY2FlNGMzZDIzZmQ4OTkgZGVzY3ItYnJhbmNoCisyMTE1NCA3YTMzOGY1MzdlNDJiYjJhM2QxYWI0YzYwZDEwYTQwMGEzNjUxOTFkIGRlc2NyLWJyYW5jaAorMjExNTUgYTQ0N2ZjOTQ3Mjk5OWExNjM4ODAyNjRmMzU0MThjOTg5YTg1ZDk4NyBkZXNjci1icmFuY2gKKzIxMTU2IDI4YzRiNjZlY2JjNThkYWI0YTM5MTZhNzljYWQ1OWZjZDVmOTgzNDMgZGVzY3ItYnJhbmNoCisyMTE1NyBhN2MyZmZlYmJkMjY2ZmFmYjAxNGU4MTI0OTFkZjUxMWYzOTYwNTYyIHJlbGVhc2UyMS1tYWludAorMjExNTggNGNiMzQzMTRiZDk3MDljMDA1NmY3MzNlYTczMjQ5OTI5OGY2ZDE1NiBsZWdhY3ktdHJ1bmsKKzIxMTU5IDU0MWUwOTVhNmVkNjUxNjkyNWU2NjFmOGI5YmM4YzdmNzFlZTc2YzAgbGVnYWN5LXRydW5rCisyMTE2MCA0MThjYWJjYjc2M2YwYWMyZDU1YjBmYTVkNzZjODE4M2UyZDk4ZWRmIGxlZ2FjeS10cnVuaworMjExNjEgMzU0YTRkZjA5ZTM4NWI4NDkzZTAyZDgzMGU5NWE3YTVjN2E5ZjAwNSBsZWdhY3ktdHJ1bmsKKzIxMTYyIDMxY2I1ZDE3MzExYWI1Mjg5MDkxMWY3MjVlYWE1MWRlMmMyMjFiM2QgbGVnYWN5LXRydW5rCisyMTE2MyAwMTE2ZTQ1OWRhZDJjYmRlNmU5MjI2NGRmMTc3ZGMwNjU2ZjFkODIxIGRlc2NyLWJyYW5jaAorMjExNjQgNGUzMDE5ZGE5MWE5MzY1ZWJhNTE1NzIyYjI4ZDBlODE0MjBiYTFkNiBkZXNjci1icmFuY2gKKzIxMTY1IDIyZmViYTk2NTljZTc5MjBkZDYxMmNkODUzNjJlYzk0MmYzNDFhOTkgZGVzY3ItYnJhbmNoCisyMTE2NiAxMWFjMDJjMDM2OTBkNDE0NGEwYmZlZjUyNWE3ZDQ0ZjVjMzRkNDU5IGRlc2NyLWJyYW5jaAorMjExNjcgOTdhMjA4MjkxY2Q4YmIwODQ5YmQ1NWY4OTU3MWE2OTQ4M2M2NTQ1NiBsZWdhY3ktdHJ1bmsKKzIxMTY4IDQ3YzlkMGNiNmUzMTRkYmI3OTZkOTgxM2IzNDcxMDgwYjYwNjdhMjQgbGVnYWN5LXRydW5rCisyMTE2OSA3NjdjNGIyODIxMGFkZWI0ZWUyOGMzZGFiNmZhNmJlYmMwYTUwYzUxIHJlbGVhc2UyMS1tYWludAorMjExNzAgZGJlODJhOWM2ZjdkNzNmNTk5M2M0NTEwNjM2ODljYjc5OTIzYzliNiBkZXNjci1icmFuY2gKKzIxMTcxIDgwNjQ3YjgyZTFiMmQ4NzQ2YzdjZmI3MWFjYjBlMWVkNTUyYzExMjAgZGVzY3ItYnJhbmNoCisyMTE3MiAwZTdjYWQ1MWNmNjY1MzBlOGE0YWQ3YTc3MWZiNGM4MjFlYTlmNWM5IGxlZ2FjeS10cnVuaworMjExNzMgYTcxZmVlODRiNGU0OTAxYjk1NzI0NDIwYjVlMTg4YmY1NzIzMWE0OSBkZXNjci1icmFuY2gKKzIxMTc0IDhjZDRhM2YwMTk1MjFkOWE3ZDQ3NTYwNjQxMjYyMWEyYzBmOWZiN2EgbGVnYWN5LXRydW5rCisyMTE3NSBiNTFiNGMyYmY1ZjllYWZhODk4ZjAwZTgzYzE5MjgyYjhmM2IyZDhlIGxlZ2FjeS10cnVuaworMjExNzYgMTdiM2VlOWNjNDNmYTJmOTEzNTk4YzNmYmRlMTNkYjAzNzBmZDRjOCBkZXNjci1icmFuY2gKKzIxMTc3IGUxYjMwNjI1YTQ2NzQwODkzM2Q0OGIwNjU0ZDhiZWNkNDY3ZDYyMDcgZGVzY3ItYnJhbmNoCisyMTE3OCAyY2U3MGE4ODNhZjZhN2MwNjBlM2U3NTc5YjkwMGIzY2VlZTAwYTZhIHJlbGVhc2UyMS1tYWludAorMjExNzkgMzFjMTFhYjFhM2U4NTc0ZWE0MmIyZWQ2NGZmNWM1MjFmYjUzYjQ2OSBkZXNjci1icmFuY2gKKzIxMTgwIDA0NjNiOWU1NzA0ZWIyODc4NTdlOGNjMzI2ZDNlZDdmZTlhNzEwOWYgZGVzY3ItYnJhbmNoCisyMTE4MSA3YmM0NzNiMmM2NTQyNDMwNDI3ODRiOGFjYTI2NGNjMDI1Y2NkYzg5IGxlZ2FjeS10cnVuaworMjExODIgMWJjZThiYjQxZGJkM2YwOWQ3MGUwMmY5MGNkODIzMTZmMDk5Yjk2YiBkZXNjci1icmFuY2gKKzIxMTgzIDJlNGM2YmE3ZDA5YzE0ZDEwYjgxNDg3N2M0OGVlOWEwYTZhYmRmMWUgbGVnYWN5LXRydW5rCisyMTE4NCA5Y2U4YTk5NWJmMTJlNTgzZDQ3NDRhNDMzZTJhOGVlYjZiZmIzZWYxIGxlZ2FjeS10cnVuaworMjExODUgMDY3NmVhMmZmODY3YTk4ZGE0MmQ5ZTVkOGZkY2Q0YWFmZDk5MGFkNSBsZWdhY3ktdHJ1bmsKKzIxMTg2IDU0Zjc2MjkzZDkyNjk4NTE1ZDUwMzM3Yzg5MjVkMzQ3OGE5MjVhNzQgbGVnYWN5LXRydW5rCisyMTE4NyA4ZWY4NGI4M2VjMWZhNDM1NTE0Y2IxNWUwZjhlMGI3YWI1NTkxNjljIGxlZ2FjeS10cnVuaworMjExODggMTI2YTY2YjM0MTNjZDJiYmZmNDJhNjdlYjZmODIyYjhmMjE2ZGU5YyBkZXNjci1icmFuY2gKKzIxMTg5IGIxZjYzMjgwYjJjMjk4ZWM5MTE1MThmZWM4NTgxZThhZmNjOGFkNjYgZGVzY3ItYnJhbmNoCisyMTE5MCA2NTFjNjY0MDZiZjgyMTFjMGMxMGJkMGM1ZThlNGYyYWViNGI4MzEzIGRlc2NyLWJyYW5jaAorMjExOTEgZDYzOWExZTFmMWY0OGY4OGZlNDNjMDcxZjE1MDdmYzE2NjA3ZmFiOSBsZWdhY3ktdHJ1bmsKKzIxMTkyIDdjMzQ4OTlhZDUwNjIzZTJjM2I1MWQ3MTBjM2I1NmQ5OGJiOTY3MjQgbGVnYWN5LXRydW5rCisyMTE5MyAwZWMwM2UxYmU1NTg4ZWI3ZWFjZjJjMGQ4OGJkYzU2ODdhYTQ5NTdhIGxlZ2FjeS10cnVuaworMjExOTQgNGQxYzc4NDkzMjIxYWJhYTMyMWE2ZDkwMzRmMTQyYTg3MjI3YTk0MyBsZWdhY3ktdHJ1bmsKKzIxMTk1IGU1YjI3M2U5NWY3NGI4NDk4YzgzYzhhYzM3OWJmYTk1YmEzNDQzNDQgbGVnYWN5LXRydW5rCisyMTE5NiAzMWJkMjVhMmQ4YzViOGQ3YWY3MTg5NTVkMTZjMmFmYmYwNGZiNzMxIGxlZ2FjeS10cnVuaworMjExOTcgNmZiYzVmMjAxYTFmODc2MGNlN2ExNTFlNzNlOWU1OGNkNzA5NmVlMSBsZWdhY3ktdHJ1bmsKKzIxMTk4IGE2NjU3MmFjNzFlN2RjNzg0Yjk1MWE3OTI3MTc3NmNmYzg3YTEyNzAgbGVnYWN5LXRydW5rCisyMTE5OSAwMmFhMTMzZGViNTM4ZTRlODdmMmY0MTBkMmY5OWNmOWNjOWExZDcxIGxlZ2FjeS10cnVuaworMjEyMDAgZjkyNmViMWY1NzcwMWMyMzAxMDcyZDEwN2I5YWVmZGMzOWJhZDBmYyBsZWdhY3ktdHJ1bmsKKzIxMjAxIGVmYjUwNjljYzc0ZmU3MDhjMzhiZjU2MWQzN2FkMGMyZDllOTQ4ZGQgbGVnYWN5LXRydW5rCisyMTIwMiAwYmFkNDJlNTYzMjA0MTVjMmQxMjc1MmIxYjY3ZGMwNGFjODEwN2M4IGxlZ2FjeS10cnVuaworMjEyMDMgY2Y2YTg2NDM4N2QzNzg4MWFkNzI4NTg2NDNmNmZhZmE5N2Y0ZWU4OCBsZWdhY3ktdHJ1bmsKKzIxMjA0IGM1YWM2ZjA1NWM2MjM1YzI0N2EwNGRiMzQ4OTE2Y2JkMmNkMDE3YTggbGVnYWN5LXRydW5rCisyMTIwNSBkM2U0Mzk5ZmUyZjk0MzE2MTVhZGJhYmY2YTQzYjdkZjY0ZWI4ZTc2IGxlZ2FjeS10cnVuaworMjEyMDYgYzYzOGE3YTJmZTc3YjkzMjIyZjA3ZmMwZGZiMjgwZDZmMWQ1MjlmYSBsZWdhY3ktdHJ1bmsKKzIxMjA3IDY3NzFkYWIxZmUzMmZmMzkwODBjNmJlNDQ4NTdlZmRmOGEzZjFiMmMgbGVnYWN5LXRydW5rCisyMTIwOCAzNDBlOTMwMWU4NWIzMjRmYzVjMTU1ODExYmIwZmM5N2M4NDVhMjNmIGxlZ2FjeS10cnVuaworMjEyMDkgMTJkN2Q0ZGI2OWYyZjZmMDUxNmFmZTBiMmQ1MWIxMGQ2OTM1Yjk4YSBsZWdhY3ktdHJ1bmsKKzIxMjEwIDA5YTA4YTFlNDdkNjhhYTc2ZmNmZjZiMDRmMTA3YWExNWM1OTdiMjggcmVsZWFzZTIwLW1haW50CisyMTIxMSBlN2Y3ZWVmMThjOTg2M2NjM2E3NmNjMTg2Njk1Yjk0YzQwMmVjZTBjIHJlbGVhc2UyMC1tYWludAorMjEyMTIgYjczMjQxZTUwNTU2NzBlZTRmNDkyOGJlNDYzMThiMTc5YjAzZjhlNSBsZWdhY3ktdHJ1bmsKKzIxMjEzIGNjNzYzMWZiZjdmOTJlMTNkNGQ0YTRhZTdiYjk2OWE5NTI3OGM5YTkgbGVnYWN5LXRydW5rCisyMTIxNCA4MjYwMDBhNDA4NjY1MjI4YzY3NTAwZGRkNzBiNzMwMGRkNTA2OWY0IGxlZ2FjeS10cnVuaworMjEyMTUgMmYyMWZlYmY2ZDQ2MmI3Zjc0YjVkNjc5YmVjMzk2NDhjNjM2NzgwMyBsZWdhY3ktdHJ1bmsKKzIxMjE2IGY1YWIzNDc5YWNkNGQ1MzJhODJmZWQ4YzgyMzQwMjc1ZjUzZjRiMjQgbGVnYWN5LXRydW5rCisyMTIxNyBjMjU4NzZhNTFmMWI1OTYzMGZkYzBmMDk5ODdkYWFhZDhjYWIxMmQxIGxlZ2FjeS10cnVuaworMjEyMTggYTJlNmZmZjQ3MWIwMjUzMjAwOTY3ZGFkY2ExNDg5OWE4YThlZjllMiBsZWdhY3ktdHJ1bmsKKzIxMjE5IDE1YTI0ZTBiZjk0ZjIyZDEyYTVmODU4YmQxNWI1NTkzY2Q5YzYzNzIgbGVnYWN5LXRydW5rCisyMTIyMCBkMTIyMWZiZGQ4NWQ4Y2RmOTRjZGE1NmQyODU4MDVkZjdkOWQ4YzhhIGxlZ2FjeS10cnVuaworMjEyMjEgYmQzOTkzYzQ5NGExYmVlYTFhN2I2ZWI0MzUxNDIxNjFhMjc5MjYxYSBsZWdhY3ktdHJ1bmsKKzIxMjIyIGQzYjE5NTZlM2RlMGMxM2VjMDRkNmE4NTdhYjg5ZWVmY2FlNjg5YjEgbGVnYWN5LXRydW5rCisyMTIyMyBhZTBmMDljN2MxZTkxMTYwNDhjN2M3Y2MxNTJiOWViZmIzODkyM2M2IGxlZ2FjeS10cnVuaworMjEyMjQgM2E1ODAyN2NhZTRlN2RkZjdkNDYzOTM4NmE2YTQ4MDk4ODhiODdiMCBsZWdhY3ktdHJ1bmsKKzIxMjI1IGE3ODI1NDQxY2FhNGE3NzdhN2VjMDM0Yzg0YzUwYWQ2YzA3Mjg4Y2EgbGVnYWN5LXRydW5rCisyMTIyNiBhNDM4YWJhMmQxMzdiN2E1OTEzMjczNmI1OTdhNTQzYzBkNGVlZDZiIGxlZ2FjeS10cnVuaworMjEyMjcgYWVkYzNlOTIwZGViY2FkYThkMmY4ZTEzZmM4ZmNlMzIxY2QyM2IzNiByZWxlYXNlMjAtbWFpbnQKKzIxMjI4IDhlNWI1MzdmODdhMTkxOGNjMjc1M2E4NjIxZDM5YTlkZDkxMTY1NDAgbGVnYWN5LXRydW5rCisyMTIyOSAxOWJjNjNhODQ0MzkwZTRhODJiNzkxYmU1MjRhMDBiNjkzMTA3YmJmIGxlZ2FjeS10cnVuaworMjEyMzAgNTk2NTMzOTQyOWM5Y2QyMmZlNWIwNTMwMGE2NDZjMzEwM2NhY2IyYSBsZWdhY3ktdHJ1bmsKKzIxMjMxIDk5MGI3M2ZhMDc0Y2RhNGNhYjMxMmViODRlNjY1OWU4MDZlNzc2NzggbGVnYWN5LXRydW5rCisyMTIzMiAzNmU4MjU2NjBhMjQ1MWFjYzhiNmU1NTFlNWM4YmRkOTU5MGY1YzBlIGxlZ2FjeS10cnVuaworMjEyMzMgOWE0Y2FjMmI4YjhmYzk4NjcwMzEyYzhhZDZkODM1M2VlNjQxNWMxMCBsZWdhY3ktdHJ1bmsKKzIxMjM0IDFhNmI4ZjY5ZmVkNjIxODRmYTE3NTZhNzc3ZDhmNDEwYzAzMjQ2OWYgbGVnYWN5LXRydW5rCisyMTIzNSA1ZTQzNTczZjBkZjFmMTlhNzM4OTY0N2QxMDE2YzRjYjFlZDcwNjNlIGxlZ2FjeS10cnVuaworMjEyMzYgZWQzNzQ1ZGE3NDE5MjgwODZjNzRiOTY0NmQyNjBiMDNhMGVkY2YyNCByZWxlYXNlMjAtbWFpbnQKKzIxMjM3IGJlNDJjZTI5NWVkYjUzYTM1OTQ4N2UwNGRhYmNlNTA4NmMxMzkxZDYgcmVsZWFzZTIwLW1haW50CisyMTIzOCA1ODczNmNhOTE0M2MwZjZmNzVmY2QzYjg5MDAzM2M4OGI1MmRhNjRkIHJlbGVhc2UyMS1tYWludAorMjEyMzkgOTAwNTk0M2M3NTRlZTkyMGEwYjY4MmY1NjY3NmFlOWNiMDQxNDFlYSByZWxlYXNlMjEtbWFpbnQKKzIxMjQwIDRhODcyNjc3OWJiYWY3M2EzNmYyYWMxYTMxODZmNGJhMjlmOTdkYTEgcmVsZWFzZTIxLW1haW50CisyMTI0MSAyNTY0MDZiNWNmMGM0ZjRiOGZkMTM4YmIzYmRmZDQ0MmZmZDFmYjExIHJlbGVhc2UyMS1tYWludAorMjEyNDIgNzZjM2ZmNTdlYjZkMDY2ZjIxNDkwNDA0YWQ4Yzc1NGM4MGIxOGY3NCByZWxlYXNlMjAtbWFpbnQKKzIxMjQzIDYyNTNkMTI4YTc4YmY5MmM3NjdmNTBkNzMzOWU4ZDRjYjkzOTQzZDYgbGVnYWN5LXRydW5rCisyMTI0NCBlMzcwOGNiMWUwZDA3Y2I5YzVjY2MxZDAxMGIyMWUyMDcwODQyYzNhIHJlbGVhc2UyMC1tYWludAorMjEyNDUgODI2OTk0OTliMzhlYzFkMzA0MjljOGQyOThjMTFhMWMyYTM4ZWU3YSBsZWdhY3ktdHJ1bmsKKzIxMjQ2IDU0NmM3ODUyYmFjNTVjZDkyMjY3N2EzNzVkM2I5YTlkMTFkYjNhMGQgcmVsZWFzZTIwLW1haW50CisyMTI0NyAwZDRhZDg5ZWQzMmQ4N2VjYWVkYjNlOGE1ZGMxM2IyMDk5MDFkNzI3IHJlbGVhc2UyMC1tYWludAorMjEyNDcgNzNkZTk0YTcyMmQyMDZhNDVjMGI0OWQzMDExYzYyOWVhZDRkNjJiMSByZWxlYXNlMjAtbWFpbnQKKzIxMjQ5IDA3NTdiNmM5OTMwNDE0MzdkMWZiMzAwODQ0NmFiZDU0ODQzYTBlYjEgbGVnYWN5LXRydW5rCisyMTI1MCBmOWQxMjdhYjMyZWM5YWFkMzM3Mjg4MDYwNjRlZTNhMDM2NWFhNjhjIHJlbGVhc2UyMS1tYWludAorMjEyNTEgYjY2NGIwMmMzZTkxY2Y0OWUyZTEyZWVmMGVjODczOTBhMDYyZTMxYSByZWxlYXNlMjEtbWFpbnQKKzIxMjUyIDQwOWFiZjIyNTE4NWQyMWQzNzA0YjkzMTNiZjA0ZTBiNDYxMDliN2QgcmVsZWFzZTIxLW1haW50CisyMTI1MyAwODYxOWJmMTgyOTkwNDIzN2U3YTBjYzlkYThhN2Y5MmVjYzg5MzU2IHJlbGVhc2UyMS1tYWludAorMjEyNTQgZTFkZDQ2MzBlZjNiOTFiYWQ3ZjIxZDU4MWQzOWFlNjk0ODc5ZDE3ZiBsZWdhY3ktdHJ1bmsKKzIxMjU1IDY5OTFkZGFmZTM4MjhhMmRjMThmZWQ1ZDJmOGEzYWQzYThkY2ZlMTMgbGVnYWN5LXRydW5rCisyMTI1NiA2ZWVmMjFlNTIzYjY0NTY5NDkxNDI3ODJiMWY4YzUzZjFlMzY1NjllIGxlZ2FjeS10cnVuaworMjEyNTcgM2E4NzMyYzY3ODk4YzZkYWE0Y2ZhMGFhNWQ0OWUwNDNkYjVhYzc0OSBsZWdhY3ktdHJ1bmsKKzIxMjU4IGFjZDNkYTVkNTYzY2M4MmNmYjA3NDBhNTVjODQ0YzZlYjZhMDI4NDMgcmVsZWFzZTIxLW1haW50CisyMTI1OSA0OTc1MTczZTFhMDJkODJhZWQ4ODljMDczM2Y2YTVlNmNjNzY4OTdhIHJlbGVhc2UyMS1tYWludAorMjEyNjAgMjIwNDA1YzA3MjMyNTkzYTRjZDlhNzEyNzRjMzI4ZGIyZWZiZmYwYSBsZWdhY3ktdHJ1bmsKKzIxMjYxIDgzYzQ3NDhiOTM5MGU4Y2U0MjQ0MGZhMDU4ZjAzMThjOWE3NGM1ZmQgbGVnYWN5LXRydW5rCisyMTI2MiBhYThlMjM4YWIwYWQ3NjM0ZTdkZGQ2N2RhOWYxY2E3OGFhMzM0MWFhIGxlZ2FjeS10cnVuaworMjEyNjMgYTRkYzIxYjQ3NzRkYzk5N2UwNzAzOWUxYmViYWQ3OTExMWFiMzhlNSByZWxlYXNlMjEtbWFpbnQKKzIxMjY0IDdkMmU2ZTFkNjBjZTU4YmE0ZjlkZmYwOWVhZDFlNmI3MGM4MzVjYzEgbGVnYWN5LXRydW5rCisyMTI2NSA0ZWJkMjkyYzk3NWY4MDk4ZjFmNWFiNGE5Y2IyNzU5Yzg3MmE2OGZjIGxlZ2FjeS10cnVuaworMjEyNjYgZjAzNjE4MzczMjNkNmQ2YTQ4Mjc0MzEyYzRiYTFkODNlYjI1NmQxNSBsZWdhY3ktdHJ1bmsKKzIxMjY3IGI4OTNkMTIwNDVjYjQ2MDllYTIyMTM1ZjU3YzJkYjY1ZWJmMTg1OGMgbGVnYWN5LXRydW5rCisyMTI2OCBmOTI2MTkwNGNlYmJjNTU5YTRjZTA0ZWFjNjIyNzE2NmY2NGNhM2IyIGxlZ2FjeS10cnVuaworMjEyNjkgZDkyM2IzYzhiMTUyNjlhY2YyN2M3ZDEwMDE4OGViYzc5MjQ5YjY1MyBsZWdhY3ktdHJ1bmsKKzIxMjcwIGVhZTY2YmYyNDg3ODg4YmQ0NjkxNjYyOGNjZjNkMzU3MGFlNTI3MjYgbGVnYWN5LXRydW5rCisyMTI3MSBmZTQwNzFiZWZmNDE4NjhmOGMwZjQ2OTA0Y2RlMzQzMWM4N2JlYjU5IGxlZ2FjeS10cnVuaworMjEyNzIgZWI1MjQzMjJhMWMzMWM2MzUyOTc5ZDI1NWE1MjE1MjMyNjdhYWU2MyBsZWdhY3ktdHJ1bmsKKzIxMjczIGY4Mjg3ZDg0Yjc1NTE3MTZmNWFjOGMyMWUzNWFkNTUyZDhjZGVlZDYgbGVnYWN5LXRydW5rCisyMTI3NCBmMDI2MDViOGZkYzFlNTk3MTU2MjFmODgxZjVkYjllMDgxZThjYzViIGxlZ2FjeS10cnVuaworMjEyNzUgMDM3YzhiZTUwNWUwNTlkNzc0Yzg3MzQ1ZjUxMTVmMTU4Y2JkMjNmYiBsZWdhY3ktdHJ1bmsKKzIxMjc2IGExZWY0M2E2ZDZlMTMxM2Y0OWE5MTdkYTY2MWY5YmJiY2YwYjg0ZTQgbGVnYWN5LXRydW5rCisyMTI3NyAwNDM5YzgyYThmZjQ3NTYxMzA2NWFiZjY0NGZkNjljNTRlYTY3Yjk3IGxlZ2FjeS10cnVuaworMjEyNzggNDUxNzA5M2ViOTllYWNiYThhZDA4YjEyZWYzZjBmMGE5NTFmNGIzMCBsZWdhY3ktdHJ1bmsKKzIxMjc5IGU0ZDY1NWFlOTE0MGUzMTNmOTk1MzM5M2Q5YmY5NzRkOWI0ZTI2YzMgbGVnYWN5LXRydW5rCisyMTI4MCA0NzcxN2U1NjY3ZWIxNWYxODRlMGE3NzJkMzJiNWQ3YzhhZjVmZjU4IGxlZ2FjeS10cnVuaworMjEyODEgMjRjMjliMzcxNTEwMmNkYjM1NjlmMGI2YTQ4YzBjMmMyYjBlZTE2MSBsZWdhY3ktdHJ1bmsKKzIxMjgyIDlmYTU0YmQ3YTdjYjU2ZWM4ZTk0ZGQ0NDAzMDhkZjIyMzQxNzQxNmMgbGVnYWN5LXRydW5rCisyMTI4MyBjNGRiMDliODc0MjQyMzBkMjJlOWZmZWVmZGYzZTVjNGJiN2IzMDk5IGxlZ2FjeS10cnVuaworMjEyODQgZTNjZjMzNDhmZWNhNTMwYWY0ODNkZWRjNzRhNzQ1OGQxZjg4YTJjMSBsZWdhY3ktdHJ1bmsKKzIxMjg1IGYxYjVmYmVlY2MwZTk5MjE3MTQ3MmQ5ZThlZmUxMjdiZGY1ZjhkMmQgbGVnYWN5LXRydW5rCisyMTI4NiA0ODI2YTZjZGFmYzQwZGUyMmFjYmVjZTQzN2QwMGYzOGZmNjZmMTY2IGxlZ2FjeS10cnVuaworMjEyODcgNDVkZTFhYzJhMzc2N2I2ODVjYTBiYTEwOGQ1OGU0YThmNzU5NTMxMiBsZWdhY3ktdHJ1bmsKKzIxMjg4IDVkM2U3Zjk5Y2Y1MmNmNDZkZmM5YTU4MWJmZDc4YWQ0YmM5YmZmNjQgbGVnYWN5LXRydW5rCisyMTI4OSAwNjViMTdmYzBkMmVlMDZmNjUxMjhiNWFiZWIyNjIxY2QzZWVmMTcwIGxlZ2FjeS10cnVuaworMjEyOTAgOWYxZGZhNzg2YmE2NTVlZGExMjdmMWZlNWM2Mjg4OWY2YTQ4ZGU5MiBsZWdhY3ktdHJ1bmsKKzIxMjkxIDA1MTRiMTZjMWE2ODNmM2JkNTQ3YWNkOWZhMGQ0NjYzYzFiZWI3MTEgbGVnYWN5LXRydW5rCisyMTI5MiBmYjdjNDRhZTRhNjI3N2Q0MmI2NjMxZmU2MGY2YWFiNjZhN2Y0NGI5IGxlZ2FjeS10cnVuaworMjEyOTMgZDUwZDRmODFhYTRjNWE3YzAwZWRmOTA0NTMzYzU4OTVkYWYwMDE0ZiBsZWdhY3ktdHJ1bmsKKzIxMjk0IDM1OGNiNzRjMDg2NGY5YThiNzkzYTY3MWRmMmEzNmFhNDFkNmUzYTUgbGVnYWN5LXRydW5rCisyMTI5NSA1N2RkMTNiNmM4MDMxMGQ0NDNiMjBmZjU1Y2NmZDYzZjI4YjM4ZjQwIGxlZ2FjeS10cnVuaworMjEyOTYgMzA5ZmIwMjZjODRlY2Q1N2ZkMjU3MDk1ZTdjODM1ZGIwMjI5NzM4ZiBsZWdhY3ktdHJ1bmsKKzIxMjk3IDFhMmE5MTRiMjQ2YzIyYzZmMTMxZWJjYTA0ZjRlOGQxOTIxNThiMmMgbGVnYWN5LXRydW5rCisyMTI5OCBjODhmNDE0ODYwNWZkNTJjZTBlYjIwNjI2MzRkNzk4OTQxZjYyOWE5IGxlZ2FjeS10cnVuaworMjEyOTkgNmIwYTgxNTdiZTNiNjgwNmYxM2UwYTMyYjA0ZmVlYWMwYjdkN2FiNiBsZWdhY3ktdHJ1bmsKKzIxMzAwIDQxNDkxZDE5Njc0OGNkNGRmZjkwMzIyOWYwZDY1MTFkMjU3NmU0N2EgbGVnYWN5LXRydW5rCisyMTMwMSAzZDkxNjRkOTVlNzg5ZjcxOGQ2NzlkODI2MTgxMTc4MjdmNWYzNDY2IGxlZ2FjeS10cnVuaworMjEzMDIgYTQ2ZTM1YWNmOWMxYzY0YmE5MDE2M2JhYzBlZDRlY2Q5YjZmMTg1NyBsZWdhY3ktdHJ1bmsKKzIxMzAzIDE2ZTRlYjQyNzc5NzhmNjZiZThiNDY2Y2VlNTQ4Y2U5NTNlNzUzODIgbGVnYWN5LXRydW5rCisyMTMwNCA3OGJmYmUyZTcxOWNiM2JkOTAzNTRkNDg0OTc2NmQxMGU5NDcyYTk3IGxlZ2FjeS10cnVuaworMjEzMDUgNDI2ZTBjNzIxYmJmNmViMjBhNTI5N2NiZTA3NGNkMTgxOTQxZDBmOSBsZWdhY3ktdHJ1bmsKKzIxMzA2IGViZjYxYjViNWFlYmJjYTcxMWNjNmNhNzU0ZmRhMjExNTBjNGFlYzYgdW5sYWJlbGVkLTEuMS4xCisyMTMwOCBmZDgzMjEyZWI4ZjI0ZWZkNjQ5NGM4OWE0MzI2MjVjNTg1N2VmNDA1IGxlZ2FjeS10cnVuaworMjEzMDkgZGVlNDk4OTYxYmZlM2M5MGZjNzU5ZTAyYWI0YzRhOGRkOGQzZDdmMiBsZWdhY3ktdHJ1bmsKKzIxMzEwIDRhZDg0MmY5ZDQzMTQ3YTgwMThiYzBmOGIxZDdkOWEzMTllZTdjNzcgcmVsZWFzZTIxLW1haW50CisyMTMxMSA0NDEyMmU3YjQ5Y2YyYzk0NzNlNjhkYTIxM2RjYTg5MjVmYzQ5YzAyIGxlZ2FjeS10cnVuaworMjEzMTIgOWUzMjZjOWU2YmU1OTQyMTAxYzEwM2Q2YThjNjdkNTU0NTZkZmEyNSBsZWdhY3ktdHJ1bmsKKzIxMzEzIDg2ZGFiMGQ0M2I3MzEyZjBiODg3ZTU3NjkxYzRmZTc4ZDU4N2U3MzggbGVnYWN5LXRydW5rCisyMTMxNCA5NzM0Zjg5NWY0ZmJlZDk4YjQ3ZmE2MmRkMTI2Njk4ZjBmNDdkOTJhIGxlZ2FjeS10cnVuaworMjEzMTUgZDJjOTUwMDMyMzkzMDAxZjdiZDIzMmZjOGE4ZmU0NWQxYjI2NTY1NCBsZWdhY3ktdHJ1bmsKKzIxMzE2IDdjOGRhZDVmMmQ5NjZkYzIxZGJkZGQ3MGRkYjkwZjkxZTI5YjdkMDYgbGVnYWN5LXRydW5rCisyMTMxNyBiNTY1OGEyMzBlMWE1Mjc2MDQ1ZTI3YmQ0NmEzZTlhYzEzZmY4ZjM1IGxlZ2FjeS10cnVuaworMjEzMTggOGI3ZmY0NGI0NjY5NTk3YTY0N2Y0ODA2MjNkMzVkYThmNjg3YWM5MCBsZWdhY3ktdHJ1bmsKKzIxMzE5IDA2MzJkY2Q2OWVhM2FmMTlhNjk4MzU2NzRiNGQ2NDVhNzE0NmI2NDIgbGVnYWN5LXRydW5rCisyMTMyMCBlM2JhMzczOTg1NWFkMWZmNzdkODg0YmQ3ZjU3YmRjMDg5ZmMzZTQ5IGxlZ2FjeS10cnVuaworMjEzMjEgZjM4OTIzY2UzYzZiMGY0YWRiYTMxNjdiZjI0OTI1ODQ2N2Y3Zjg1YiBsZWdhY3ktdHJ1bmsKKzIxMzIyIDFmMWQyYzUwYjNjNzg0ODExYzc0YTEzYTRjNjZjZDY1ODg4MzQ4OTggbGVnYWN5LXRydW5rCisyMTMyMyBmN2MwMWI5MzhhMTczOGFkNzUyNWYxNDExMjVhMGYxODZhYTA5NDA5IGxlZ2FjeS10cnVuaworMjEzMjQgMDQzZTIwMDE3NGYxYjdlOWMzNGY0ZWQ2MWYxZDJjOGVlYzY5ODJjOSBsZWdhY3ktdHJ1bmsKKzIxMzI1IGUzMWEzNDkxNjZmNGUwY2QxZTI1ZTE5OTgwZWZhMjdjMzAxM2I0MmQgZGVzY3ItYnJhbmNoCisyMTMyNiBiYzA1YTk1MjQyYTM3ODAzYTUxYmRlNTI5MmExZDliZGJkMTkzMjVkIGxlZ2FjeS10cnVuaworMjEzMjcgZjYwNzhhMzBmNzBhMjgwZWE2ZWI1ODRlMjMzYjllYzgzNmE2ODc2ZCBsZWdhY3ktdHJ1bmsKKzIxMzI4IDY4MDBiY2NlMDQ1NTViOWZhM2ZlMjRmMzQwNTA5NWFlNjUyNzZhYzUgbGVnYWN5LXRydW5rCisyMTMyOSA0ZmEzMWVjYTNiZTRhNTRkOGU5MTdkMzUwODBiNDFjY2QzMTM2ZDA5IGxlZ2FjeS10cnVuaworMjEzMzAgMjk1YWNjMDc1NWYwYzdmZWM4YTFkOWFkZWM1MDJhMWZlYTM5ZTFiYiBsZWdhY3ktdHJ1bmsKKzIxMzMxIDU1ZjNhMDRlMDY0MTFlY2ZmMjc2NWQwN2YwM2NkOWE3MDQzOWFkODEgbGVnYWN5LXRydW5rCisyMTMzMiBmZmJiOWM5MThhYzA0NmIwY2U2YzViYjZiN2IxNDQwYjM0ODY2ZjcwIGxlZ2FjeS10cnVuaworMjEzMzMgMDM0NGU0YWM3MGIwYzhmOTU1ZTIxNWYwM2Q2NjRkNTJkYzlkNmRiNSBsZWdhY3ktdHJ1bmsKKzIxMzM0IGIxNDUyMWZkOGUzOTE2MjFhMzFkMGZiZmNiMTM1ZmVkMWUxMWM4MGEgbGVnYWN5LXRydW5rCisyMTMzNSAyMGUzYTZlMTBjMjQ4ZmUwM2NjYmNkZjQ1MmNkN2Q3MDdhZjcwNWM1IGxlZ2FjeS10cnVuaworMjEzMzYgMjJmODVjNmE2NTIwYTY5NThiM2E5MTE4NWM4Y2Q5NWU1YjAyMzllYiBsZWdhY3ktdHJ1bmsKKzIxMzM3IDkzMjkwM2M3ZDA1NGIwMmJiODk3MGNlMmYyMjE0Zjk3MTI2MDE4ZWQgbGVnYWN5LXRydW5rCisyMTMzOCA5ODIxNjNjNGU5ZDJiZTBhMDMyZjZlNjE4NTFjODM4OWUwMjJiMzA5IGxlZ2FjeS10cnVuaworMjEzMzkgNjhjMTJkNTU1NmRmNzE2YmQwNDZjZGY4ODMxNTAwNzM0NjJmYWQ3YSBsZWdhY3ktdHJ1bmsKKzIxMzQwIDBmZjc2ZDc4MWQyYzYxMThkNjk4MjE5ODljNGRlNDk0OWIyNmYxZDIgcmVsZWFzZTIxLW1haW50CisyMTM0MSBmZjhlMTgzYWU1OGY5NDFlZTI2OTY2NTI2MTI0ZTQ0ZmNlMjRhOTVhIHJlbGVhc2UyMS1tYWludAorMjEzNDIgN2NkNmU1MTVmZDMwYTY5MTYxNzk0MWFjNmUxMWY0YTZiYTY0Y2NiNSByZWxlYXNlMjEtbWFpbnQKKzIxMzQzIDMxNDg0MmRjZDUyZTk0ZTc0MWVjNzljZTkyMmVhMmE2YWZlNzM4NzIgcmVsZWFzZTIxLW1haW50CisyMTM0NCA4OTNiYTFmMDM3OGExZjY0NGJjMDVhZDRjNDhiNjBiNDhmM2RkNzE0IHJlbGVhc2UyMS1tYWludAorMjEzNDUgNjdjODQxZDgyMWUwNzRhOWI3ZjRjZTcxNDAxYjU1ZDEzNTIyZDA1NyByZWxlYXNlMjEtbWFpbnQKKzIxMzQ2IDkwOTg0MTU5NzFkMDE3MDFiYzNmMmE5OWNjMjcyNDFkMjJiOWM3ODggcmVsZWFzZTIxLW1haW50CisyMTM0NyBiZTk2NzFlNjFmNGE2MDg2N2E0ZmYxMWQwMWE4YmVlYzJhZjdkMzBmIHJlbGVhc2UyMS1tYWludAorMjEzNDggM2E2YTJlNTlkZTAzYzM3MWZmMzlmODAyNjM4MjI5YWFkZjExNjliNSByZWxlYXNlMjEtbWFpbnQKKzIxMzQ5IGFjMDAyN2UyYjNiN2E0ZmQzZjJiMDA0ZjU1ZWU3NmUzY2U0OTViMjUgcmVsZWFzZTIxLW1haW50CisyMTM1MCBlODY1MGQ3NWU1YTQ1NGM4OGM1MDZkYjI2NTYyYjk1ZTRmMGI1MzA1IHJlbGVhc2UyMS1tYWludAorMjEzNTEgNzVjMWY5YzNmMGQxZjdiODMwNmE4NjczNWZjY2ExMDA5NjNjY2IyNyBsZWdhY3ktdHJ1bmsKKzIxMzUyIDljMmJjM2U0ZGY3MzgzNzFmYTk3NDBmODdkZTU5MjM2NDJjYTM4N2IgcmVsZWFzZTIxLW1haW50CisyMTM1MyBkNTJlNjM1ZTIwNWY4NzYzNDM0YWJlNzU4ODJlNDUzZTE5MDNiYTE3IHJlbGVhc2UyMS1tYWludAorMjEzNTQgNmNlYzc2MWRmMmMzNGFlMTk4YTU5NDM1ZjIzMjIzZGFiYjU2OWQ5YSByZWxlYXNlMjEtbWFpbnQKKzIxMzU1IGZhNGE3N2U0MjRkZGIzNWU4OTMxMTM3NDVmZWYyYjM4NTQyMDNlMDQgcmVsZWFzZTIxLW1haW50CisyMTM1NiAwNzFjOTU3MjIxZWNjNTlkODU1NDVhMjA5NjBjMmU3ZDUwMTZlMDk1IHJlbGVhc2UyMS1tYWludAorMjEzNTcgYzgyM2VjNDdkZjQ5NWU1OGNmMTczODUxM2YwMzA0NTdhZDc3ZTQwNSByZWxlYXNlMjEtbWFpbnQKKzIxMzU4IDFhYTU5MWU0MTgxNTQ1YzNiZGM4NTA5ODM0MWU1NDdjMjQ0MzU5NmYgcmVsZWFzZTIxLW1haW50CisyMTM1OSAxNDBjYjI0NmI4NjRhZWEwM2Y1YWI2N2UxZWEwNjg3MDc0NThlNzI3IHJlbGVhc2UyMS1tYWludAorMjEzNjAgMTU5YWJmYzhiMWJjNTFiZmM5MmQxNmEwYmRkNjhhMDU3NjUwOTRjZSByZWxlYXNlMjEtbWFpbnQKKzIxMzYxIDBjOTc4NzI4ZWJhZmVjODczMmQ4ODljNDNmMGVkYTdmNWM5ZmExMDMgcmVsZWFzZTIxLW1haW50CisyMTM2MiAwZDI4NzQzNDE0NGI1OWMyYzFlNzZmNGNiZDJjNDA1OTE3NzkwNzgwIHJlbGVhc2UyMS1tYWludAorMjEzNjMgY2RhNmNhOWRmZDU5MGQ0OWY4MTllMWZhN2NlMzc0NmE4YWE5OTVlZCBsZWdhY3ktdHJ1bmsKKzIxMzY0IDNiYTdhMzU4Y2UwMjg4NWFmNGQ1YTNiNWIyZWQ2NTgyNDhkM2U0OTMgbGVnYWN5LXRydW5rCisyMTM2NSBmYjM1YjNhMjI2MDQ2MjIxZjdiN2QzNGEyYjY2NWI0M2JhMzYyOTFhIGxlZ2FjeS10cnVuaworMjEzNjYgZTQyN2FmYjU2MzdmMDhjMWMyNDBlZmVhZTE5NTJiMzI5MDlhMGZkZSBsZWdhY3ktdHJ1bmsKKzIxMzY3IDkzYmRjNWVjZTFiZjY5ODdiNjE3Yjg5Y2FiNGNmMjU5YTZhZDc3YjAgbGVnYWN5LXRydW5rCisyMTM2OCBlNDUyN2Q0NWU5NDJkMWM5NWY2MjBlZTE5NjFiZDM1YjJiYWY4MzY2IGxlZ2FjeS10cnVuaworMjEzNjkgZjk5NWM0ZjI1MTIwMDhiM2E1YTY0Yzk5YzlkNGUzY2IzMmNmZmQ4NiBsZWdhY3ktdHJ1bmsKKzIxMzcwIGQwMTRiNTIyNjkwMGQ3MzMyMTE5YjY4ZmEzODdjYmVhYWM3YTIzNTIgbGVnYWN5LXRydW5rCisyMTM3MSBiZjkzNmM1Mjk2MzUzYzI2OTRjYTNlZmM1Y2RjNzAyMDM4MzRmYzlkIGxlZ2FjeS10cnVuaworMjEzNzIgNDlhY2M4YWM2MGMyMzI0MTVkOWJkNTdkYmNiZWI0NjIyMWI4N2JmNyBsZWdhY3ktdHJ1bmsKKzIxMzczIDQxMjQzY2I0ZWEwNWQ3NzcxMmE1NDZjODk2NDUxODA1NDU0ODRjNTYgbGVnYWN5LXRydW5rCisyMTM3NCA5NzZiMGFlNGY1MjdjMWExZTc1YzViNWFjNDM1MTIzMWRhZWJlZTEyIGRlc2NyLWJyYW5jaAorMjEzNzUgM2YwYmRkNGFlNjg0MDBmNjQ4ODdjMDg2NmMzM2I2NWEwMThkYjVhOSBkZXNjci1icmFuY2gKKzIxMzc2IDc1NGRlYjg2ODIwZTVmNWNhOGNmYmE2MGYyNGYyYTM5OTUwYzA2YmQgZGVzY3ItYnJhbmNoCisyMTM3NyA2Y2EzZGQ4MmNiMDdlZDQzNTVhYjViMjMyMmRhYWQ1OGI0ZDNmMDM3IGRlc2NyLWJyYW5jaAorMjEzNzggMDRhNjRkMmQ4YjJkMjA1Nzg5MDVjNTdkY2VjNDYzMGFkNDUyYjM1OCBkZXNjci1icmFuY2gKKzIxMzc5IDAyMjZkMDZlM2VmZjU5Mjc0OTBlYTdjZTY3NThjMDQ2YjlkNTc4ZmYgZGVzY3ItYnJhbmNoCisyMTM4MCA3ZWY2NjJhZWQ5ZGU0ZTBhNjdhNTljYzI0MzhjNjFhNzc1NzM1ODcwIGRlc2NyLWJyYW5jaAorMjEzODEgZjczMDI5YzcxYjBkZjA5ZWUwNzk1NTkyMTFiNGE0MDZhOTRlZjc3OSBkZXNjci1icmFuY2gKKzIxMzgyIDJkMGI2OWE2N2Y2OTRjNjViMzliNWYzN2UyZTBmMDliMjA4MTQzMDYgZGVzY3ItYnJhbmNoCisyMTM4MyA0MDVlYWJhMzZiMmZjODYyZWMyYmE3YTRkN2VhZjllYjI4Y2NhMjJmIGRlc2NyLWJyYW5jaAorMjEzODQgMjc4MzliYTdlYzIyZWQ0OWUyYzMxNGY5MTYzYWJkNjlhNTk0YmM1MyBkZXNjci1icmFuY2gKKzIxMzg1IDg1ZGI5ODlmNmE3M2M2Y2NjNTZhYzQzOWRiNjhiNGU4ZjVhOTMyYTIgbGVnYWN5LXRydW5rCisyMTM4NiA2YTE2MzAxMTc4MDUxNjdlYWI5YzA4ZDQ2Y2QzYTlmOTc0NTA4OGY3IGxlZ2FjeS10cnVuaworMjEzODcgNzk0NTgyZmMwNjIzZTNiOTU4NzdhZDhmZDVkZWFmMTUzNTIxY2IzMCBsZWdhY3ktdHJ1bmsKKzIxMzg4IGMyYTYwZGU5MWQyYzcxMzgxM2YzY2QyMjEyNzVlZThlMDI0ZWIwNTcgbGVnYWN5LXRydW5rCisyMTM4OSBlZGFkZmEyODM1OWY4NTI1MzAwZGFjYjQzMDQ0MDFhMGZkMjg5NDE3IGRlc2NyLWJyYW5jaAorMjEzOTAgNTg0NjkyMDJlZThkOGIxYjVjOTdkMWQ1ZDg1YmFlNmY0MDEyYWJjZiBkZXNjci1icmFuY2gKKzIxMzkxIGZlNjMzNTM0ZjQ0Nzg2Mzc1NDdhMjc0NzhiOWMzNjk2NjYzNTIxMzAgZGVzY3ItYnJhbmNoCisyMTM5MiBhMTJlYzg4NzY1MTVjMzdlNzYzOTZiNmFjNTdhYzU3NmQ3ZjQyZjk5IGRlc2NyLWJyYW5jaAorMjEzOTMgNTY2OGE4NTUwYmU0NTQ1YjRiZTRkMjE1M2NkODllMjk3M2JlNjk4MCBsZWdhY3ktdHJ1bmsKKzIxMzk0IGU5MGZjMzRkNzNkMDBmYTIyYTFiNTJhYWY1OTVhZDMzOTlhMjY4NjIgcmVsZWFzZTIxLW1haW50CisyMTM5NSBlOGRjNzMzODY3MDYyYTE0OWFhMTI3NzMyODBmOTU3YWI3NzRiYjM5IHJlbGVhc2UyMS1tYWludAorMjEzOTYgMGZkYzI3NzllOGQ0M2M0Y2Q3ZWZjMmIyNmI2YWNmZTMyOTlmNzBiMiBkZXNjci1icmFuY2gKKzIxMzk3IDhkYjk0MzY3ZmFlMWM4MDgwNzBiMWMxZmMyMTE5ZjU0MDA3YjU5ODUgZGVzY3ItYnJhbmNoCisyMTM5OCBiM2JhMGY0OGFkYzRjZTgwNWI1MTZlM2RmY2RmODdmYmNiMTQ0N2RkIGRlc2NyLWJyYW5jaAorMjEzOTkgMTE2NjAxMWE5Y2ZjYTk4MmUwMzAyODNkNTJmNjIzMmZlOWNiYmUwMSBkZXNjci1icmFuY2gKKzIxNDAwIGY3MGIyZDYzZjMwOWE4ZTI2MTFmNjUxYWI4MjdkYjY0OGEzNzY0MTAgbGVnYWN5LXRydW5rCisyMTQwMSBkMzJmZTQ4ZmJiOTY4ZDcwYzEwMGU2ZGViN2MyZWYzODc1MjkyYjIwIHJlbGVhc2UyMS1tYWludAorMjE0MDIgMjY0ZWQ1NWRlYzZlMWFkMzU0MTljZjlkZDBiYjEzNjQ2YjM0MDVhNyByZWxlYXNlMjEtbWFpbnQKKzIxNDAzIDQ0OWRhODU3ZGNlNTk0NDFhOTFmZDI3ZTIwZjdlMzNmZGRmNjU2ZjkgbGVnYWN5LXRydW5rCisyMTQwNCBjMDI5Yjc0MzMyZDJhYWZjYmJjMGNkODA3MWQ1NDJmYjZiMTE1YzU1IGRlc2NyLWJyYW5jaAorMjE0MDUgZDJjOTk2M2U0MjkxNTU1NjgxN2MxYmRjNmI2ZWI1OWQ3YTlkYTZjYSBkZXNjci1icmFuY2gKKzIxNDA2IDFkYTcyNGNlZTIyZDNmNjU1OWNkYmEwMWQxMjdlZGU5MWMwZDNiNzggZGVzY3ItYnJhbmNoCisyMTQwNyA1YTc4NDEzNDBkYzdjMWM5MzBkMWQ1OTg0MzVmMjI5Y2I4MjllODQ0IGRlc2NyLWJyYW5jaAorMjE0MDggMDhhMmMyZTc5NGVmZGU2Yzk0MWM4YTYxNTNmMTlmZjkxMWNiMzZlZiBkZXNjci1icmFuY2gKKzIxNDA5IDAyMDBjZDIyNDkyZWMyNjA5Y2YxNGZkNDA2MzA0MjM5OGNkMTJmZjIgbGVnYWN5LXRydW5rCisyMTQxMCA0YmFiOWVjZjNlMDVlMmY2NjhmZjBiZmZiMGZlZjEwNmE3YTlmYzU2IHJlbGVhc2UyMS1tYWludAorMjE0MTEgMTczMzA0MjljZGZlYjU4MDhiMDgxYjgzY2VlYjk3N2YyYzJmNDM1MSByZWxlYXNlMjEtbWFpbnQKKzIxNDEyIDc5OGI1ZTZiNDkxNWYwZGU5NGVhNjI4MzE5OTMxM2FhYjYzYTQyYmQgbGVnYWN5LXRydW5rCisyMTQxMyA1NTk2NTA0YWQ0OWFmYjBhNWNmYTAzNzU2N2M5ZWY2OWE0NWFjZjI2IGRlc2NyLWJyYW5jaAorMjE0MTQgZTU4Nzk5ZWVmYTM5NzgxYzAxYjg4ZGJjYWI5MjA0MTA3OWViOTFhNyBkZXNjci1icmFuY2gKKzIxNDE1IDI3Yjg2NjUxNGM5ZWJkY2ZkMmEwNjgwODUwN2U4NDM0MDA0MjQyMDIgbGVnYWN5LXRydW5rCisyMTQxNiAyNTEzYmMxZGIxMmZlZGFhNDMwOTgyYzI4ZjFiNTE4ZTU1MDVmOTRlIHJlbGVhc2UyMS1tYWludAorMjE0MTcgNTIwZTFmNDAxMDFhYTAxZDM4MWI0MjA4MDZhNDEzMzM1OTVmZDFiNiBkZXNjci1icmFuY2gKKzIxNDE4IDg5MzdkMjM0YjJhOGQ2NTJmYzk1YjYwM2UzYTUzZjI1NTA4NGQxYzkgZGVzY3ItYnJhbmNoCisyMTQxOSBjNjcyM2NkNTU0NThiMjQ4ZGE3ODBjNTFjMTJjNzEzYTA0Zjc4Y2FjIGRlc2NyLWJyYW5jaAorMjE0MjAgNjUwZjcwMDRlNmQzOWFhMzM2Mjc0NmQzZmE2ZDQwNDU0MTI3MWZmYyBkZXNjci1icmFuY2gKKzIxNDIxIDIzYmIzZjQ5Y2I5NDI0OTgzYmRiYWFmYzM5YmE5YTNmZjg4M2JkMDYgZGVzY3ItYnJhbmNoCisyMTQyMiA0NGE4N2MzMDBmMmJhNGYzYTBmODRjYjQzYTE4MjIxMzY2MzdiNjgxIGxlZ2FjeS10cnVuaworMjE0MjMgM2VkYTYyMzFlMWMyNTg0OTA4YTQ4MTQxYTBlMTdlMmZjODgyMmQzNCBsZWdhY3ktdHJ1bmsKKzIxNDI0IGQyM2Y5OTMxYjAzMzU5YTg1ZmNmMmMyOTdjOGUzM2ZmODIwODQ0NjcgZGVzY3ItYnJhbmNoCisyMTQyNSA0ZTI2YjQxZDJmM2RiY2I2ZTc0YzQ0ODgwYzcyNDVhYzJlZWM3YjFiIGRlc2NyLWJyYW5jaAorMjE0MjYgOWRlNjU2MDA0MjBiNjA3MTgzNDFmYmI5Y2FjMzRlNzM2MmY2N2Q2YSBkZXNjci1icmFuY2gKKzIxNDI3IDljNThkZGM0NzE5NWFkODMzMTE4MWU5ZTk3MjRkNjMwZmI2YTYwYmMgbGVnYWN5LXRydW5rCisyMTQyOCBiZTA5NmJiNGUzZjIyN2E3NDQ0MzNhMzQyYjJkMzVkZDY3NDUzZTlmIGxlZ2FjeS10cnVuaworMjE0MjkgOTg1NTZjZGZlNzE2OTRlYjVjMGVhOGI3MDMwNmVjY2IwMDljMTAyNSBsZWdhY3ktdHJ1bmsKKzIxNDMwIGE4MGUwZDM5ZjEwYjI3ZmE4YWQ0ZTk1MWM2MGRhM2QwMjkyYWI0NDQgbGVnYWN5LXRydW5rCisyMTQzMSBmYTNhNDIwN2Q5NTcwODQ3NTJjZDVhZDNkM2NmOTJjNTEwMDU5ODEzIHJlbGVhc2UyMS1tYWludAorMjE0MzIgNTY2NTJlNjg0NzM3YjlkYjJmYzUyZTBkZTBkZjUzZmJjMmZhY2M1YyBsZWdhY3ktdHJ1bmsKKzIxNDMzIDkwMzIxMjYxMjc3MTI5MGE0OWY2MDdiNjYyNGIyNWE0ZjJjZDk3N2EgbGVnYWN5LXRydW5rCisyMTQzNCAxMTczNzFhZjU0NGIwOTBhNTQwOGIzMDAyYjVhNzI5YmZlNGJlZGQ3IHJlbGVhc2UyMS1tYWludAorMjE0MzUgY2FhOGZmYzNjZDFjNzBlMDdiNzY3ZjQ0MmU1MTZlMTAyM2JmNTdlNSByZWxlYXNlMjEtbWFpbnQKKzIxNDM2IDc3ZjQxNjM4NzkyMmVhNzgxOGIyNjQ1ZmE4MzNiYTJmZDE4NDNjNGYgbGVnYWN5LXRydW5rCisyMTQzNyBjMDI4ODY3MDIzMGU5MzI1YmY0NjNlNDZlMjkzNzhlYjAwNzljM2JlIGxlZ2FjeS10cnVuaworMjE0MzggMmUxYWRiZTg5ZTRhNTg0NDFlYjdlMTI5YmJhYzgyNTBlZjYyNjVjYyBsZWdhY3ktdHJ1bmsKKzIxNDM5IDgxMTg0MmRhY2QzOWUxZTljNzk5MWUxYjlmNDA1N2RiY2YzMGY2NTggcmVsZWFzZTIxLW1haW50CisyMTQ0MCA0NTFjMGFiYmY4YTlmNTQ1MjhlMWMwYmQ5NWYxMTVkNTRjYzM3YWM3IGxlZ2FjeS10cnVuaworMjE0NDEgZWFhYmNhMTMxNzRlMDNmYzRkZjY5ZWEyYjJjOWNiNWE5MzIwMWNiNCBsZWdhY3ktdHJ1bmsKKzIxNDQyIDNmZGUxZDIwMzMxZWFmNjFkZjEwZDAzMjQyYWY1NzNiMTZmZDEyZWUgZGVzY3ItYnJhbmNoCisyMTQ0MyA0NzJlZjY4MzE4YThiZjhmZDI3MTkyMDNhYzkzMjNlZDlhODE1NDFjIGxlZ2FjeS10cnVuaworMjE0NDQgNGQzN2I3MmFlMmQyNjA0MDA1NjZjNmMxMjEwNTU4NDQxNDNkZjQwNSBkZXNjci1icmFuY2gKKzIxNDQ1IGYyNGVjMjNjZDQ3ZWRmZjc2YjQyZDJiNjhhZjI2OWM4MDgxZGUzNDYgbGVnYWN5LXRydW5rCisyMTQ0NiBjNzZkYWQwNjQ2MWI4ODg0MDIwNzEwM2FmYjNkZDg3YTcyZWE1MjkwIGxlZ2FjeS10cnVuaworMjE0NDcgZmJlMGRlZDVlNGMxYmYwMjkxZTQ3ZGIzOWMyNGMyNTNjZDQ3YjE5YSByZWxlYXNlMjEtbWFpbnQKKzIxNDQ4IGZiOTZhNzhlNzJhYzZmNTQ4N2QyODNjNjUzYjQ1NzMyN2I4ZWQ5NTQgZGVzY3ItYnJhbmNoCisyMTQ0OSA3NjQ0OTJhOGY2YTc1OTM3M2U2YWJlMTM0YzVjOWUxNTVhMjA3ODdjIGRlc2NyLWJyYW5jaAorMjE0NTAgZTNlYWMyMWUxZDMwNGJjMzc2YzM3MWQ0OWZlNmUzMTE2OGI2NzVkZSBkZXNjci1icmFuY2gKKzIxNDUxIDlkNmQxMTE2YmYyY2NlOGM0MzI5ZDkwOWFlNTg2NmJkNGFiZjE3YWIgZGVzY3ItYnJhbmNoCisyMTQ1MiAxNjk0YWI4N2YxZDdjMzMzOTVlOTkzYWJkYmFlYjI2MmI4NDcyMTVjIGRlc2NyLWJyYW5jaAorMjE0NTMgZjM5OWU2YmM1MGFmZDVmM2RlNDIyNGUxODFkNTNkNzRmNGE0NTYxMCBkZXNjci1icmFuY2gKKzIxNDU0IDAxYjkyMGVhNTJmMTZmZGVkNDU3OTA3NWI1OWM3NmY4NzZmYTE3ZjkgZGVzY3ItYnJhbmNoCisyMTQ1NSAyZTMxNjY1YmJkYzI1NTMxNDg5ZTA2M2I1NWM5YjJhNjljYzkwMDQwIGRlc2NyLWJyYW5jaAorMjE0NTYgYmZlZDIxMjNiMTRkN2M0NTA2Nzk2ZTBjYjI5ODMxMmVmZDg3Mzk5MCBkZXNjci1icmFuY2gKKzIxNDU3IDBiZDY3YzhhOTY5ZTA1MThkYTk4OTRjMjdmYTBkYzBmMjhiNjM5MDMgbGVnYWN5LXRydW5rCisyMTQ1OCBiNjFmM2I2Y2UxZmY5MGQyNDNjODZlYjEzZjcyNGRkNDY0NTQyMDM3IGxlZ2FjeS10cnVuaworMjE0NTkgM2IyOTVjZTI3MDVmNjdhYzZmMTJiNTRhYzJkZDYxMmVjMWE2NzkxMSBsZWdhY3ktdHJ1bmsKKzIxNDYwIGUxMDBjMDVkNDQ0ZWU5MDE2NWNjOWQzY2YwOWJhZWQzZTkwZmUxNDQgZGVzY3ItYnJhbmNoCisyMTQ2MSAyNGEwZjg0YWQ3NDY1ZTdiMjEzMGNlZjMyNGI0MGRkYjU3YjEyMDVhIGRlc2NyLWJyYW5jaAorMjE0NjIgMzM4YWFhMTRjNGU1YWVlYmUzMWE3ZmFmODgzNmZhMTQ5YzBlOGRhZSBkZXNjci1icmFuY2gKKzIxNDYzIGIyMWU3MGM2ZDA5ZDRhMzAzN2Y1OTI1OGRmZTUwOGE4MTllZmZlZTEgZGVzY3ItYnJhbmNoCisyMTQ2NCA2MzBjODZkMzMzMGJkNDk3Y2E2MmU0N2ViNWYwNzk3ZjYyZjk3MTc5IGxlZ2FjeS10cnVuaworMjE0NjUgYmFmMDRjZGY2NWEzMDBkZTZhNDQ2M2UyZTJkYmEwMTE2MTFiMWViNyBsZWdhY3ktdHJ1bmsKKzIxNDY3IGZkYzNiMTYyMTVjNzVmMzJkYTJkMDczZGUyYjI5ZmE3YjFiNWI3NzggcmVsZWFzZTIxLW1haW50CisyMTQ2OCBmNjkyNWFkMmQxOTExYjM4ZTg3MjdlOTIzYjBkNDM1YjcyNGUxNzMyIGxlZ2FjeS10cnVuaworMjE0NjkgNDBkMTlmOTA3ZTEyMDE1NDYwMDhlOTU5OWQyMjI1MzA4NmYwNWE1MSBsZWdhY3ktdHJ1bmsKKzIxNDcwIGQxYzYwYjA3MjE3ZjhjNjJkZjY0OGE1ZGE2MWZjZGMzMTU2NmY4YTIgbGVnYWN5LXRydW5rCisyMTQ3MSBkYzc0ODIzYjQ5ZWE1NzBkZWM0ZDk5YWZkNmEyN2ExZDIyZjgzOWM3IGxlZ2FjeS10cnVuaworMjE0NzIgZjZiM2E3YTkwZDgzZmMwYmEwMjRlMDNhMGMxYjNkNTNmYjliYTIwZSBsZWdhY3ktdHJ1bmsKKzIxNDczIDA4MDEwMDY0NzM5NmM4ZDAzNGZjNmUzMDZkNzdmNDhlMGNiNTUxYmQgbGVnYWN5LXRydW5rCisyMTQ3NCA5NWUzOTQ3Y2EzY2VhMTk0NTA4NzhmZDhiNWQ3NWQ4NjZkNDQxNWRjIGxlZ2FjeS10cnVuaworMjE0NzUgODM0NzkyNTIzMDk0ODkxMjJmOGU4OTAyOTk1ZjRlOWE2Y2RlYjVkMyBsZWdhY3ktdHJ1bmsKKzIxNDc2IDhjZGZmNTQ1Y2JkZTUwZTI5NTZmZjBlMWY2NmQzNTZkYTMxNWUxODYgbGVnYWN5LXRydW5rCisyMTQ3NyA5YzZhOGRjZDcyMmQ1NTUzMTA2YWFhYzlmNTc3Yzc5ZTliZTJkMmEwIGxlZ2FjeS10cnVuaworMjE0NzggMDYzMzJiM2M0MzM1ZDQzMzAwYjJkNDQyZTJlNzE3MjBhM2ZjY2ZmMyBsZWdhY3ktdHJ1bmsKKzIxNDc5IDYxMzVjMTJlODQ0ODY3MmIxM2RjNGJjOGY0YjhiMGZlM2QzMzU2YjUgbGVnYWN5LXRydW5rCisyMTQ4MCAxZTAyZTIwMTRlMzZhNDA5ZDQ2NTZjY2JjZTdkYzVlZDVlYWY4ZDBkIGxlZ2FjeS10cnVuaworMjE0ODEgYWFkZDk5ODMwNTMxYWY1MDY1MzhhMWQ5ZTA5OGE1Mzg1MGE5MzA4MCBsZWdhY3ktdHJ1bmsKKzIxNDgyIDc0YjNjNGUzZjQ4NjExMGE0OGFhM2ExYTg3YjMyYzMxYTc1MDE4NzYgbGVnYWN5LXRydW5rCisyMTQ4MyBmODBmNmU5MjI4ZGU2ZGU0M2YwMGE5ZGQ2ZTY4YzY0YzY2NTIzNmQxIGxlZ2FjeS10cnVuaworMjE0ODQgMTE2NTMyMTQxYWRlZTM4MDQzODQzODgwNDgxNTc1ZmYxZmRmOTMwMiBsZWdhY3ktdHJ1bmsKKzIxNDg1IDFkMGQzZTZhMzIwMWEwMTM2NzVmNWQ0YzJkNDE3ZjFlM2U4MTU2YzMgbGVnYWN5LXRydW5rCisyMTQ4NiA3MjZlNWYyY2QzNmVkMGQ3ZGViYTgzOTBlOGU5NDY5ZDhjNDc4Y2Y3IGRlc2NyLWJyYW5jaAorMjE0ODcgN2RlNWMzNzYyMzJjYjRhMzgwNjYxOTdjYzUwMzllYzMxYzVjYjY3NSBsZWdhY3ktdHJ1bmsKKzIxNDg4IDgyNGQ2MTExM2E3MTIyMGNjOTMzY2YyZjg1ZTg0M2Q1NTgzZTgzNzMgbGVnYWN5LXRydW5rCisyMTQ4OSBjODY2MjU0M2NhNmE2ODVkNDE2N2U4ZGM3Y2RjM2QwMDJkZmVjMzYxIHJlbGVhc2UyMS1tYWludAorMjE0OTAgY2FkYzE4OTQyYTM0NDU3OTExZmVkNjNiZjg4MzY5OWI2Mzc4YWE3NyBsZWdhY3ktdHJ1bmsKKzIxNDkxIDdmODNlZTM3OTdhMjY0NjZkZmY0Yzk5M2Y1NWYwNzg1M2MxMDg5ZjkgbGVnYWN5LXRydW5rCisyMTQ5MiA3YjAzYzE1MDc1NGEwOWQ0MmZjOWNhNWY4NjAzZDFjZjQyMTRhMzFmIGxlZ2FjeS10cnVuaworMjE0OTQgYWZkYTVmZmY1MDI3MWJkNDJjNGMwNmNmMTlhZDU1YjIzYzJhNTkzMiByZWxlYXNlMjEtbWFpbnQKKzIxNDk1IDgyZjk1MjRjYzg0NDEyYWFiNDEzMjQwNzg3NTYwNTljMjAwMTg1YzggZGVzY3ItYnJhbmNoCisyMTQ5NiBiNGFmMDkxZTMxYzRhNDYxNzNmNGNmNDcyMjk0M2Y1OWU5N2IwZDk2IGRlc2NyLWJyYW5jaAorMjE0OTcgMmU2ZmI2ZTY0MjhmYTA5N2RjZjVlMmI2OGI1OTk5OWMwOThiMDdhNCBkZXNjci1icmFuY2gKKzIxNDk4IGQ5NGY4YjMyMTNlOGNkZmVkZTU5NTA1MzBmYjA2NDExZGM0ZjdjZjkgZGVzY3ItYnJhbmNoCisyMTQ5OSBhNDU3NzYyNzBjOGUxMWFjYzgyOGE4NjRkOTllYzkyMzBjZGZiYWIzIGRlc2NyLWJyYW5jaAorMjE1MDAgMjMyMDhmMzAyN2Y2ODMxYTNjYjk0ODNlYWQxODgxYjlhODhkMzZhMiBkZXNjci1icmFuY2gKKzIxNTAxIGEzMTg5MWNiYWQ0NDI3YjQ4NzJjODJhY2MxMTYyNGFlMDAwMGE0YjggZGVzY3ItYnJhbmNoCisyMTUwMiA2OWI4OGQzNGU3MjJkZTlmMjg2NzgwMWExNzZjN2UyNDJmNjYzNjkwIGRlc2NyLWJyYW5jaAorMjE1MDMgNDdiYjA2MDIzZTgwNTkzYTk0Nzg4Y2QyYzcyNDVjNTYxZWI2NTIxZSBsZWdhY3ktdHJ1bmsKKzIxNTA0IGY0MDMyYmVkNDcwZjM4ZjJkZmYwODIyMGMwM2UxYmQ2OGJkZjg1ZTcgZGVzY3ItYnJhbmNoCisyMTUwNSBjNWU0NjYzNGM3ZDk3OGU0NzFiZTg3ZTRhODUyYjE2Y2UxNmIwY2Q2IGRlc2NyLWJyYW5jaAorMjE1MDYgNTNkNGU3MmJiNDQzYjBiMzU4YjgxMDZjNTI0Yjg3ZjUyMzY2N2UwOSBkZXNjci1icmFuY2gKKzIxNTA3IGZmODFlNzM1ZTE4NGZlMzUxZWRmOWY3M2RmYWRkMjYyNDVmOTJlYjcgZGVzY3ItYnJhbmNoCisyMTUwOCAyMzkyNzY2NGM3Mjk1ZTg2ZWY2M2FhM2UzMzc4Y2FkMDIyYzViMmE3IGRlc2NyLWJyYW5jaAorMjE1MDkgZWI4MGI0OWM3YjE1ZmZjNmQ2ZGE1Zjg3MTE0YWZhMmIwZDAwZTIzOCBkZXNjci1icmFuY2gKKzIxNTEwIGU2ZGVmZTI0Y2U4NTU2NWQ4ZDAwOGYxOWUwMTEwNzRhMzQ2NzA5MGUgbGVnYWN5LXRydW5rCisyMTUxMSBiNjg5NDBjZjIwMTcyMTA0YjhhM2NiMDZjMjU3YjA2YTY1OTNiN2EwIHJlbGVhc2UyMS1tYWludAorMjE1MTIgMTE2NWQzZjdlYWYzY2E1ZmQwNGU3ZGRhMjY4ZmYxY2VkZWUzNTMwZCBsZWdhY3ktdHJ1bmsKKzIxNTEzIDk1MTI3NDdhZmU5ZTk0MmE3OWM0NDljY2M3MTZhOTgyZjY0MGY4YjcgcmVsZWFzZTIxLW1haW50CisyMTUxNCA1NjgyZjk2ZjI1ZGUyNDM4OWExYTlkZTgwZjZhNGFjN2RiZmQ2ZDQxIGxlZ2FjeS10cnVuaworMjE1MTUgMjgzNmIyNjg2MTgwNmM2OTU1NTRhMGE5NDBkMmFlZTM5OGI3MjQ5MCBsZWdhY3ktdHJ1bmsKKzIxNTE2IGZjMTY4MGZjOWQyMzY4OWNjMjQxM2VlZDc4ZTNhN2Y5Y2NhYWU4OTkgcmVsZWFzZTIxLW1haW50CisyMTUxOCBiY2JiYzUxZjBiYjNkOTZjYmEzYzY1YzU0NWZhMmMzZGFhZjVmZDI5IGRlc2NyLWJyYW5jaAorMjE1MTkgYjBmOTg0NzU5MTdkNGU1ZTEwMDRhYjVjMjViNDliMTU3Yjg2ZjAwNSBkZXNjci1icmFuY2gKKzIxNTIwIDM3ZDlkMmE3Y2E1MGRmYWJjOWMwYjI4MjU5YTFlNzgzNDBhZTExYmMgZGVzY3ItYnJhbmNoCisyMTUyMSBlZWIyZTc3YzViYWQyYWEyZDZjOWQwYWUwMTVkOTk1NjM2NmEzNjE0IGxlZ2FjeS10cnVuaworMjE1MjIgN2FiMDlmYmI4NjlhMGU1Yzc5ZmYzOGQ0ZGU0NzhlYzYxNmExMWM1ZiBkZXNjci1icmFuY2gKKzIxNTIzIGEyOWJlZjQ1N2VkOGYwMmJjY2M1MDU0NjUwODg0MDg3ZTJhOWIwZjEgbGVnYWN5LXRydW5rCisyMTUyNCBjMWU0MTNlZjk4MTc3NjUxNGNkNzZkNmVmZjJhOGU0MDM5MTdmMDkyIGxlZ2FjeS10cnVuaworMjE1MjUgZGZjYzAzOGMyZDRjYTY5OThmZTE0YzQzOGIwNzA5MWU4ZGUxZTZjNSBsZWdhY3ktdHJ1bmsKKzIxNTI2IGQ4NDE0ZjUxZDRmNThlZjc5YzM2YmRjYzM0MTc2NmNhOTNkNzY2MzQgbGVnYWN5LXRydW5rCisyMTUyNyAzM2I0MzU3YWViYjhjM2IxYjJiYjMzYzk2MzdmZGMzMjBmYzI0OTZhIGxlZ2FjeS10cnVuaworMjE1MjggNGU1ZTk3N2JkM2UyYTc0MGYyNTQzMTk2ZmNmNGViYjRkN2NjNzkxMyBsZWdhY3ktdHJ1bmsKKzIxNTI5IDA5MjM1YmU3NDY0OTM3NTE4NjExMWI2MzAwODRjYTZmZTNmMDM5OWQgbGVnYWN5LXRydW5rCisyMTUzMCBkNTZlY2FlNTdlMGMyNTI5M2Q5ZTY2Nzk2ZDFkOWFiY2Q5NTkxMjBiIGxlZ2FjeS10cnVuaworMjE1MzEgYjZjZWJiZWIwN2QxYjI5MjI0ZWE2YmU0MDZlMmVkZjY4M2E0YWRiYSBsZWdhY3ktdHJ1bmsKKzIxNTMyIGY4M2JkZDA3NTM2MWIxZjk4YTI1MzQxMjBmNDQyODA2MzU4MzA0NWEgZGVzY3ItYnJhbmNoCisyMTUzMyA5ZjAxM2QxM2EyOGIxZGFmMTg1ZjI5ZWM1YzFiNWE5YmZiZGVmZWRiIGRlc2NyLWJyYW5jaAorMjE1MzQgYjQ0MTFkZTAxNjYyZjdmOTI0NThmM2Y0OGJkNDUyOTk2MDFmOGVhZCBsZWdhY3ktdHJ1bmsKKzIxNTM1IDc2MzYwYWZkYjk3MDI3ZjAzZmFmNjY5NzJlMzU2OTA2YzgyNjBiMmEgZGVzY3ItYnJhbmNoCisyMTUzNiBmYTFlODhlYjE5OTRhNmJkZDJiMDFkMGJkOTFjYzUyMTdlYTZiNDQ4IGRlc2NyLWJyYW5jaAorMjE1MzcgMTQxN2NmNDcwYWU5ZTVkZjQ3MTg5ZTU2NjhlMmE3YjgxZTIwMDE4ZSBkZXNjci1icmFuY2gKKzIxNTM4IGQyZWIyMzYzNmNjNjI3ZWM5OTU1MmRmNDgwZWQ5M2Q2MzdkM2JmNjUgZGVzY3ItYnJhbmNoCisyMTUzOSA0NjgyNWVkMjM1MjhhMmMzYmEwMGJmZGU5MjJlYzc5OGNkNWExMTIwIGxlZ2FjeS10cnVuaworMjE1NDAgZjMxNWY1Njc0Yjk1ZjYyYmE2MzI5MjZhODkyZDBlZjFhMjc5NTFkNiBsZWdhY3ktdHJ1bmsKKzIxNTQxIGE5NzMzNDk3MWE4MTg2YjRhNzljNDQ4MDg2ZDE2MGFlMTgzYmZhOGUgbGVnYWN5LXRydW5rCisyMTU0MiAyZmQxMzc3ZWM0OGMwZDJiMWE2YjNjMTMwYjc5MzU4YWM5NzM3ZjExIGxlZ2FjeS10cnVuaworMjE1NDMgYTgzZmY3NzM5OTkyOWY1Y2ZmY2RhYjEzZWYwYmQ5ZmY3NzFlNjgwMSBsZWdhY3ktdHJ1bmsKKzIxNTQ0IDZhNWVmMTk5NDE1MzZlMWJkNGQyOTU1OWUzZGM1ZTRlNGIxYjkyZTIgbGVnYWN5LXRydW5rCisyMTU0NSA5OWM4YjViMGM4OTYzODQ1OGFiN2JiNjU4ODMzNWZjZmM4NzY5YWE1IGxlZ2FjeS10cnVuaworMjE1NDYgOWMzNTRlNjlhNDg5ZTg1OTFiYmM2ZTUyMWFhMDhmZjIzZDllNDljMCBsZWdhY3ktdHJ1bmsKKzIxNTQ3IDBiNDA2MWVlYzY4ZTAzOThjMGJiYzNmNWJkYjVmN2MxOGM4ZWNkNTUgbGVnYWN5LXRydW5rCisyMTU0OCA0NTkxNzMyMzc5MTUwM2Q4Y2E3Njk3MDZhYTA0ZTU1ZDhkNGY0OTE3IGxlZ2FjeS10cnVuaworMjE1NDkgNzFmMTYxZThhMWQ3MTY4NjdlOGQ4MTFlMjdkMWExYzg2NWFlZjY5MCBsZWdhY3ktdHJ1bmsKKzIxNTUwIDQwZTBmNWEzMzJlOTBhNjZhZTA0MGRkYWNiZGI0ZjFjNDhiOTMyZWQgZGVzY3ItYnJhbmNoCisyMTU1MSBkOTA1MmNkOWUwYTc2M2UxYzE5NzQ2YTkzOGFhZWVjYmIzZDExYjU1IGRlc2NyLWJyYW5jaAorMjE1NTIgZjA0YTFkZGQ3NDFhMzQ4NjU0ZWI3MDM5NzJjYmUxZTk3M2ZlM2NlMCBkZXNjci1icmFuY2gKKzIxNTUzIGJhOGE1NjJiZTM4MzU4Y2Y1ZDRlOTEyMzA0Y2RlMGI5ZDg2NmI0MTYgZGVzY3ItYnJhbmNoCisyMTU1NCA2YTVmZTFhOTQzY2NkNWMxNWQ1NWRlZTAwZjZlNzc1ZWRhYmY3MTA0IGRlc2NyLWJyYW5jaAorMjE1NTUgZWFjYjc4ZDljYjhlZGIwY2NmN2FiZmU0NTlhOTA5NDIzMjYyYmM1ZiBkZXNjci1icmFuY2gKKzIxNTU2IDY2MzcwMTZkZjZlMjhmNjZmOTQyNmYxZWFjMjA3ZmU1MjIzYzkyNDAgZGVzY3ItYnJhbmNoCisyMTU1NyAxNzNiYzcyNGQxMTBlMjk4MDM2MWYzZGY4MTk4YzY0NDA4ZWQyNjlhIGRlc2NyLWJyYW5jaAorMjE1NTggM2RhZTI1MWI1ZGY1YTMyNzVkY2FmNzYxNTk5YmExMWQyYThkMjM0OSBkZXNjci1icmFuY2gKKzIxNTU5IDVjOTc2OTAxNjczZTVkMDZmNDJkNTQ5YWQ2MTQyMDQxZjE2M2M2ZTMgbGVnYWN5LXRydW5rCisyMTU2MCBmN2RlOWUwNDg3Y2YxNGMyZTE0NDYyNDU0ZTFkYjRiMDFmMDZiNmIwIGRlc2NyLWJyYW5jaAorMjE1NjEgODhlZTk2NjVkZTA1NDNkYmZmNjNlYjMwNjVjZTE2NTM3MDRhN2FiOSBkZXNjci1icmFuY2gKKzIxNTYyIGY3ZjA3NmJmY2FlOWM4YzJkMjhlMzlmNmQ3MjBlY2I5MTI3OTUyYmUgbGVnYWN5LXRydW5rCisyMTU2MyBiNjZhNjUyZTNjM2ZlN2I4YTcxZjAzZWQ0NzJhNTEyM2NkYzFmZGViIGRlc2NyLWJyYW5jaAorMjE1NjQgYWE3NmMxN2E1ZjA4Y2Q5OTlmODg5MTg4YWI4N2M3ZGExMDYwY2RiZCBkZXNjci1icmFuY2gKKzIxNTY1IGRlODU2MGM2OGM2ZmRjZDY2NzFhNTY0OGZkOWVjOWUwYjlmYjU0NGQgZGVzY3ItYnJhbmNoCisyMTU2NiBlOGM2NjFkZjMwMzgxNGFlZDljY2Y2ODM3NTE2Y2M4YmFlNTY1NzNhIGRlc2NyLWJyYW5jaAorMjE1NjcgYzE1YWNmMmUwMTEwOGNhZDNiZjIzNjNmYTUyYzNkNTNjNjZkNWUyZCBkZXNjci1icmFuY2gKKzIxNTY4IGViMDRhMDU2NGE4MTg2MDdiMTA5ZDc0YjA4ZjQ3NDRhMjM2OGMyZGYgbGVnYWN5LXRydW5rCisyMTU2OSA5NjUzMjcyZjAzNmY0MGEzMzY4MWVlZTE3NTI2NGRkODExYWQ1ZmQ5IGxlZ2FjeS10cnVuaworMjE1NzAgNjg0YjAwOTkwMzJkNDYyYzhhMmEzYWU5YjYzMzM1NjBlYTAxNTlhYyByZWxlYXNlMjEtbWFpbnQKKzIxNTcxIDA1YzQ5MzQ2YjY4YjhkZjZlOTA2MmFiMjlkZTE0MmJjYTRlZjg3MmIgbGVnYWN5LXRydW5rCisyMTU3MiAzMTExOWQwYTE4ZTZmYzI5M2YwOThkOWZmMTM4N2Q2OGRiMGVjMDk0IGxlZ2FjeS10cnVuaworMjE1NzMgMTAzMDI4NzI1MjUzYjM4N2Q3M2VlYjRlMjk1MGVlZDI2OWE2YTJhZiBsZWdhY3ktdHJ1bmsKKzIxNTc0IDUxYzUwMWM2ODYwOGM1M2FmMDY3ZDliYjFlYzZjM2FkYmMzMWU5ZDUgZGVzY3ItYnJhbmNoCisyMTU3NSA2NWM5Mjg3YWJmODViYTg4ZTAwOTdlNmYyOGRmZWFiOGYwOWI4YjM0IGxlZ2FjeS10cnVuaworMjE1NzYgZWU3YTg2Zjg3MzgzNWZjNTdiNmJkMTM3MjE2MDIzZDQxN2FiODlmZCBkZXNjci1icmFuY2gKKzIxNTc3IGE0ZmJjMmYwMTM5YTgyZDdlZDdiMmQ1NjhlNmE4YWEzZDY2MTk0YjQgbGVnYWN5LXRydW5rCisyMTU3OCA5YzA0ZTIzZjhkNDNiMzkxODZlMjM0NGE1ZGQyN2Q2MTYwZTQ1YmViIGxlZ2FjeS10cnVuaworMjE1NzkgZDQ1YWI3MTQ2YjM3Y2Y4NzY4ZDQwZmQ1OTdlZGI2OWQ5MWJkNTdkZSBsZWdhY3ktdHJ1bmsKKzIxNTgwIDZkYTg2MjMzOWEwZTk5ZGI1ZDk3ZTVkMzYxNDNhYjhlMzVjNjc3OTMgcmVsZWFzZTIxLW1haW50CisyMTU4MSAyOTMzYWU0OTIxNmYyNjM4MmMyYWY1MDI3YjlkYmY2ZDRlNjI0OTJmIGxlZ2FjeS10cnVuaworMjE1ODIgY2EyZWE3NWRmM2YyNTJiMDcyODg2MTM2YTMzYmZiODg2NTc5YjM2MiBsZWdhY3ktdHJ1bmsKKzIxNTgzIDk0NmI4MTZhZDVjYjhmZGY4M2Q3MjViY2JjNmMyODdkMmQ2ZjM5OWIgcmVsZWFzZTIxLW1haW50CisyMTU4NCA5YWQ0ZGI5N2UyZDliNmVkMjkxMDkzNzkxZWNiY2M5NDI3ODI3NjljIGxlZ2FjeS10cnVuaworMjE1ODUgZDRmYjk0MTUzYjMwODIwOWU1ZjliMGM3MTg5ODZmY2VmNTRmYzZkNCByZWxlYXNlMjEtbWFpbnQKKzIxNTg2IGZiY2NmMThhYTU3YmZlYjBjM2Q3ZmUwYTE3ZTQ4NDljMzA1N2EyZjUgcmVsZWFzZTIxLW1haW50CisyMTU4NyBhNzhmNGJkNTllMTBhMGIzZWYzZDNkZTMwZGVlYzg0MDQwMzY5YjM0IGRlc2NyLWJyYW5jaAorMjE1ODggYWJjNGEzYjdkMThlMDFjNzkxYjE4YWZmMDFkMDA3YjkwNDRhMmNkZiBkZXNjci1icmFuY2gKKzIxNTg5IDJmMWI0Y2RjYmIwNmM0NDIyMjliYjYyZmVkYTczNDY4NTk1YTU4ZTkgbGVnYWN5LXRydW5rCisyMTU5MCBlNzhhNTEyNjhjODFkZmM3NTcwN2ZiYjcwNGEyNDk5MjcwNzdjOGQ2IGxlZ2FjeS10cnVuaworMjE1OTEgOGMzODQ0OWRmNzQ2MDk0MTFjMTM0YTRiZGJiYjQwNzVjM2JlY2EwOSBkZXNjci1icmFuY2gKKzIxNTkyIGZlZTViNTcxN2RiYmI4OTBkNGY5NGFkN2RiMGRjM2VkOWJmM2NiNTIgbGVnYWN5LXRydW5rCisyMTU5MyBjNmQ4NjQ1ZDRjODg1ZmZmOTlhMDMyODliNmI4ZTRmZThkYWM1NjE5IGxlZ2FjeS10cnVuaworMjE1OTQgNzBhZjRhMTczYTk1NjRmMDg4MDllNjk2NzI3MDJmZDZlM2E3ZjljYiBsZWdhY3ktdHJ1bmsKKzIxNTk1IGNiMmVhZjQ1NzM4NmI3ODY5MDE0NDQ3ODdlNDUyN2Q2MDkyMGI1ODcgbGVnYWN5LXRydW5rCisyMTU5NiA2YjkzMWJmNmJkZjY3ZjliN2U4ODY5Mzg3YzBmNGU5NjZkOTBhODYyIGxlZ2FjeS10cnVuaworMjE1OTcgY2Y4MTQ5Y2VkY2NkMjFhZjJlZjZjNDI2MTI4NmM2ZTRkY2JkZWNmYiBsZWdhY3ktdHJ1bmsKKzIxNTk4IDAwOTM0ZDYyZTc4MTY3MjMyZGMzNWE4YjY5NTEyZmRlNmY1NWRlZWEgbGVnYWN5LXRydW5rCisyMTU5OSAzZGI5MjFmM2VkZTBiYTU1YzhiNjE5NmQ1Mjc0ZjQ5Y2JiMTdmMGFlIGxlZ2FjeS10cnVuaworMjE2MDAgZWQwZjBkOTY3NTBjZGU2NTY2NDk0ZTU2YWM4MTg0NDUwMWI3YWQwMSBsZWdhY3ktdHJ1bmsKKzIxNjAxIDkzOWJiYzUxY2QyMTkzZDJkYzIxZDM0NTQ1Njc4ODkzMjI3NzM0ZTIgbGVnYWN5LXRydW5rCisyMTYwMiBjMWE1ZTUxNzU5MDdiMTI2MWQ2NGI5NmE1YzJiY2QzYTM2ZTA4ZDQzIGxlZ2FjeS10cnVuaworMjE2MDMgY2RhMTYzODNiYzZiYWEyZWJkNzVlNGU5NGJlNWM3NTY5NzhjYzdjMiBkZXNjci1icmFuY2gKKzIxNjA0IDNiMTNiMjY5NWI3YTZiNzYwM2EyYmE0ZGQ3ZmRlOGFjY2NhZmYzZTcgZGVzY3ItYnJhbmNoCisyMTYwNSBiNzNlMWY0MjJlYThiZmFhM2IyNGM2MjdjYWRlNzYwMmI3ZGQyM2MzIHB5LWN2cy12ZW5kb3ItYnJhbmNoCisyMTYwNiA0MDRjNjBlMDAzNDQ3MDY3M2I5MTJjZTEyY2NjMGQxMGIwYmYyZjlmIHB5LWN2cy12ZW5kb3ItYnJhbmNoCisyMTYwOCA4ZDZiNGFjMDQ0MGI0YzBjMjE3N2VhZmMyZGIwYWRhNGMyMzFmODg5IGxlZ2FjeS10cnVuaworMjE2MDkgZmVlYTNkMmYzNTYzZjBiZmFmNTg2ZTFiN2FmMWFjNDAwM2EwMjhlMyBweS1jdnMtdmVuZG9yLWJyYW5jaAorMjE2MTAgMTFkOWU0NmYxNDcwNTE3MTlmMzg4YTdiYzJjMjJjYjZhYjNiMWE5MCBweS1jdnMtdmVuZG9yLWJyYW5jaAorMjE2MTIgOGI5M2QwNGZhN2E5YjlmNTBhNTg2ZjBhOGNhYWJhN2EwOWY3MDhjOSBsZWdhY3ktdHJ1bmsKKzIxNjEzIDlmNzQ5NjVlMGYzNTg1NWM4NjBjOGYxODRlY2IwYmVlOGQwNTI2MjUgbGVnYWN5LXRydW5rCisyMTYxNCAzNGQ1ZTQ4YzFlZDI2MjU3YzVhZGY1Nzk4YjVkNjhhNmE5ODYwY2E2IGxlZ2FjeS10cnVuaworMjE2MTUgNmM1MDFkODkyMDAzMGE5MmFkZDk2YTRjZjcyMTRiOGExODAzY2Q1OCByZWxlYXNlMjEtbWFpbnQKKzIxNjE2IDQ5OGQ3ZGQ5OWRhNDFlOTI2NjM4OWYxZTMxODYxMzI1MmQ5YTA1Y2IgcmVsZWFzZTIxLW1haW50CisyMTYxNyA5OWFkNmZkMjc5ZTliZjVhNjA5YTEwZTU0YThmMTQzOGMxNDYzMDRmIHJlbGVhc2UyMS1tYWludAorMjE2MTggYjFhMWRlMThmOTFmYmNkMDc0NjQ1ODE5ODM2ODE5M2VjMTkyZTVhYyByZWxlYXNlMjEtbWFpbnQKKzIxNjE5IDg3ZWUxYzNmZDBjODIyNzU1ODVlN2IwN2E3YTRmOGFkNmZiMzljM2MgcmVsZWFzZTIxLW1haW50CisyMTYyMCA4MmEzNDkzMmVhMjJkNjI5ZDE0Y2UyZjg3ZjM4NzI2NmE2MjFjYjg1IHJlbGVhc2UyMS1tYWludAorMjE2MjEgYzk5MTI5YTBhNDdkOTA3YmI3ZDRmMzI1ZjAwOGRjZmNmNzQ2YjY4YiByZWxlYXNlMjEtbWFpbnQKKzIxNjIyIDA0ZTI1YzAxODQ5YjQ0YmI0NGZlMjk0NzRiNDY3OTU5MGNjYzg1OWUgbGVnYWN5LXRydW5rCisyMTYyMyBjMzk3ZDRjZDgzN2QyMDZmNWExMGEzMWQ5YzJkM2JhY2UwMDVhNThlIGxlZ2FjeS10cnVuaworMjE2MjQgYTRkMzUwOGFlZmMwZjk1OGE5OTAwOGNjMDk0NDFhMDkxMzNkY2ZkMiBsZWdhY3ktdHJ1bmsKKzIxNjI1IGRmYjc3NDIyYzYwNzQyOTY3MDIwNzQxYjJkMzAxMjQ3MzJmYjUyNmQgcmVsZWFzZTIxLW1haW50CisyMTYyNiAxMDZjOTk5NWRiNjhhZTVjOGY3Njk4MzBjNzI2MWIwNDg3MTQ3OWE5IGxlZ2FjeS10cnVuaworMjE2MjcgNzk1YWE0NTkwMjExMGE5OTg2MWQ3M2ZiODczNmFiZmEyMDZhZWJkMCBsZWdhY3ktdHJ1bmsKKzIxNjI4IDJlMmVmNDcxMTRmNzcyNDBkMDY4YjFjMzczZTM2ODJhNjVmMzdmNDggcmVsZWFzZTIxLW1haW50CisyMTYyOSAyZmJiMjVjMzA3MmViNmQ0N2U2NjgxMTM0OTYwMTdlZDgxNDczZTVjIGxlZ2FjeS10cnVuaworMjE2MzAgZTA2MTE1NWY5OWU4ZWIwNzcwNDNmMjA0MDljZDBhOWM5YjM4MGNmOCBsZWdhY3ktdHJ1bmsKKzIxNjMxIDk4YmRlNmU1ZTc0MzJkYzdkNzc2N2VmNzRjZTliMjc5ODk5NGE1MWEgcmVsZWFzZTIxLW1haW50CisyMTYzMiAyNmZjOTA1ZGRjMTJlNTViN2I3ODFjZGI0M2Y2MDQzMzE5MWNmZmRmIGxlZ2FjeS10cnVuaworMjE2MzMgNmY4YTI0MDJmNmZhNGIzZjkxZTUwZGVjMzFmNDQ3NzU2MWQ0YTA5YyBsZWdhY3ktdHJ1bmsKKzIxNjM0IDk5NzdjZjIwNjUzMmIxNDZmMzE5MjcyYWE4MjMwYmI5Y2RkNGI4ZjEgbGVnYWN5LXRydW5rCisyMTYzNSA0YzMzZGMzNDU5MDJhOTE1N2ZmMDM5NDE4NmE3YjU2ZTVlM2NmZDc0IGxlZ2FjeS10cnVuaworMjE2MzYgYzdhMjRkM2IzNTk3Mzk2OTcyOTdiZjBkNTFlOTNjZDEzNDNlNGZhYSBsZWdhY3ktdHJ1bmsKKzIxNjM3IDRiN2ZkM2FlMWQ5MzBiOTIyNThlNGY5N2NmMDZlODkyMWJiMWZlNDUgbGVnYWN5LXRydW5rCisyMTYzOCBmNDA5MmE1ZjdiYmM3MTQwYjFkNDA5NzE2M2QyMDg2Yzk4Y2U4NjJhIGxlZ2FjeS10cnVuaworMjE2MzkgMDY5YjgxNTE5YmU3ODUwYmI0MGFhM2NlNjRkYjQzYjMyZGU0MTZjYSBsZWdhY3ktdHJ1bmsKKzIxNjQwIDU4NDZjMjU4Yjg4OTYzNjk2ZDhlNTVlYzhmYmFiODM0Nzk3ZGM2ZGMgbGVnYWN5LXRydW5rCisyMTY0MSBjNGY3NTg1NzUwMmE2ZDNmNjcxOGYwNzZhYmY2MzlkMDVhNjg3ZmFlIGxlZ2FjeS10cnVuaworMjE2NDIgYmExZjNkZTEwMDg1NDM0ZjExZWY5NzExNzM1ZjFlMDViNWM4OGU0NSBsZWdhY3ktdHJ1bmsKKzIxNjQzIDQyNzQxZTY3NzMzODQxZjI5M2Q4YmRhNDg5MTBiOGZkYmUyMjgxMGUgbGVnYWN5LXRydW5rCisyMTY0NCBlYTdjNzdmZTUwYWU5OWRhYTRkMDVlOTAxOWJmZmE4NzJjNjkzODc1IGxlZ2FjeS10cnVuaworMjE2NDUgMmJiNzVhMWYzMTg0MTkyODVjZDhjMjg3ODlkOWQ0ZTcwOTY3MDI0OCBsZWdhY3ktdHJ1bmsKKzIxNjQ2IGU2ZWNkOGEwN2VhODhmMjdiZjU1MDQ4YWU2YmMyOTUwODg1NTE0YTkgbGVnYWN5LXRydW5rCisyMTY0NyA0NmRkODczZDI2ZjY0NGY0OTgzMWM2Zjg0ZjRjYjVhN2E4NmEzMmE5IGxlZ2FjeS10cnVuaworMjE2NDggMjAyZGRkYjdjOTc0NzRjYTcwNmY2NzY2NGNmMThjNGI3ZDJhNTVlZCBsZWdhY3ktdHJ1bmsKKzIxNjQ5IDg2MjYxNzFiMmM3MjUyODU1MmMxNjBhZTZjNjM1OTUwYzU2OTVkMjEgcmVsZWFzZTIxLW1haW50CisyMTY1MCBjYzI0ODY3NTdjOGJmM2UyMmJiOTRjNmIzMzUyYmMwMjdmZjYzYmRjIHJlbGVhc2UyMS1tYWludAorMjE2NTEgYzViNTA1NTJkNTZkMWY2MjczYzMxYzYzYzZiYjEzZDUwOGE2YjI1OSByZWxlYXNlMjEtbWFpbnQKKzIxNjUyIDMyY2IyOTVkMDg2MmMyMmExYjA3ZTgxNDU5MTc2ZWEwZjdlOTcyNTggbGVnYWN5LXRydW5rCisyMTY1MyA4NmIxYzgyMTYwZWE5OGQ1N2EwZjlmNDFhMmQwYmI4OWU4YmIyMTZjIGxlZ2FjeS10cnVuaworMjE2NTQgOGRlOTEwNDIxNzNmN2Y0ZTEwMWZhNDgyN2RjMDkyYWY4YWI3NGVlYiBsZWdhY3ktdHJ1bmsKKzIxNjU1IDI1NGE0YTlhZjBmYmM2ZTg1ODBlNDliYTJjNWI3MjFiNWRhZDEzM2MgbGVnYWN5LXRydW5rCisyMTY1NiBmNGVhMjFhMGY5NTQyZDM3ZmQzOGE0YWM1NjYzNzYzNGYzZDBkNTcxIGxlZ2FjeS10cnVuaworMjE2NTcgZDIxMTcwOWYyNWYxZWVjYjQxN2FjNTIxOTEwZWUxODBiYzIzODY0YyBsZWdhY3ktdHJ1bmsKKzIxNjU4IGIyYmY4OGUwNmZjNTk5N2I1ZmRkZjYyZDQxMDljM2E0YzFmZjgxMzggbGVnYWN5LXRydW5rCisyMTY1OSA2NWFmYWM4NGQ0ZjczMjM2ZWNhMTNlNzgzNjQwNGU4NzE3NjhjNGJjIGxlZ2FjeS10cnVuaworMjE2NjAgNzMyOGM4Y2Q5MTdkOWVmNjBlZWIxODZkMGFjM2FmYzA4YWY5MjkwYSByZWxlYXNlMjEtbWFpbnQKKzIxNjYxIGE1OWNhODQ0NmY5MmI2ZWRiNzdhMTljMzFiMzk5Mjk0YTc5NmM5ODAgbGVnYWN5LXRydW5rCisyMTY2MiA0ODYxMzczOTU5MTc2YzU4Y2QyNjdhMTFiNDEzNzQ5YzRkNzZkNDAzIHJlbGVhc2UyMS1tYWludAorMjE2NjMgZjcyYmNlY2RkMWY3ZTJmY2IxZDFhMWMyMmI5MTIwNGRjY2VkMWM4YSByZWxlYXNlMjEtbWFpbnQKKzIxNjY0IGQ5N2M4MmNiZDc2NjkxY2NjMDM2YmIxNWRiYTk1Y2Q0ZTZjZjY3NTMgbGVnYWN5LXRydW5rCisyMTY2NSBkNTAyNjZiNWRjNDhjNWFlMWNmMDY0NGQ1NzliOTkwYTQ0NTBlYTM3IGxlZ2FjeS10cnVuaworMjE2NjYgZWFlOTI3MjkwMzU3MWEyNzdjYjA4ZGQ0YjlhNDc4ODc5ZDZhZmEzMCBsZWdhY3ktdHJ1bmsKKzIxNjY3IGIxZDZhZTMyOWRkMDU4ZmQ1YTU2NTViNGViMzMzOTJjNjE0ZjZjMzcgbGVnYWN5LXRydW5rCisyMTY2OCBmZDk0NjEzNzNjYWIzMDA4YjgyOTJhNTUxMzljYTViZjQzMDcxNjg4IGxlZ2FjeS10cnVuaworMjE2NjkgMjFiNWIyZWFlYjNkNDFlNjI4MjNhMTMzZTg0YTYxNmU5MTVhM2IzYSBsZWdhY3ktdHJ1bmsKKzIxNjcwIDFmYmNmNTQ5YzFjNDUzNWYzYmU4MDNhMTg0NGQ4MDY4NDBjNzIyNGYgbGVnYWN5LXRydW5rCisyMTY3MSA2NGZhNzJhODQzNDc0OTAwMzkwNWY4MGQ1YWNlNGJmMGE4YTg3NjAxIGxlZ2FjeS10cnVuaworMjE2NzIgMjNkOGViMjllNGZhMGZmZTY4M2YyYzAxYzhhOTE3ZTQxODI5NWQxNiBsZWdhY3ktdHJ1bmsKKzIxNjczIGU0ZDZhNzM5OTk3ZDk2MWQyZDQ4MjA2ZDMwMmQ2MGM3ZDFmNmZkMGYgbGVnYWN5LXRydW5rCisyMTY3NCAzN2VlOWNkNTRhMTEzZmNiMjUyNTJiYzMxNzVhNDQ3OTJjMjcyNDNjIGxlZ2FjeS10cnVuaworMjE2NzUgZTA2NGY1MjZhNmVmZTgxOTJhMmFjYzNhOWY5ZGFjNTI2YTE2ZGU3NyBsZWdhY3ktdHJ1bmsKKzIxNjc2IGZjNWEzZWMwNzQ1ZTFkNmI4N2Y1OTBhMDU3MWZjYjk3MDU1OWRlOTUgbGVnYWN5LXRydW5rCisyMTY3NyBlYzlhYTBkYzhiNzM2MDZhNzE2ZWIxZWEwZjljMzI3MDA0NTI2MWJlIGxlZ2FjeS10cnVuaworMjE2NzggYmY1NjI0MThkZmI4MWUwZjY2YTNhNGJhYjA1NGNhMjRiY2JkZWVlYiBsZWdhY3ktdHJ1bmsKKzIxNjc5IGNkM2I0ZGQzZTRjYTE5MTc5NGVmZWIzMDM1MmFhMTRiZjYwODU3NmYgbGVnYWN5LXRydW5rCisyMTY4MCBlYTI2YzliNjZmYmQ5ZDJlYWIzNTNmZGNjMzdkY2NhZDBmYmUzYWY2IGxlZ2FjeS10cnVuaworMjE2ODEgMGM3MDEzNTM4OTk4M2NjNDVjNTQyYTEzNzIzYWFlZWVmN2ZmMTQxMyBsZWdhY3ktdHJ1bmsKKzIxNjgyIGIyODdmMjkyN2RiMzhhM2U1MWQwZGMwNWM4OTExNGVhMTE0OTU4OTQgbGVnYWN5LXRydW5rCisyMTY4MyAzZmNmOThjYTZjNGExNDZmNWFmN2M4ZmEzMDlkNGFjYTJmMTc2ZTJiIGxlZ2FjeS10cnVuaworMjE2ODQgOTA2MGMwNmJlZGJjNDMxODQ0NGFiMjBhOGE5MTkzN2NlYjZhZmE5YyBsZWdhY3ktdHJ1bmsKKzIxNjg1IGM0OTMwMTMxZjVlM2FjNzI3NWE2N2M0ZDM1MjYxOWNmOGEzZjZjNDQgbGVnYWN5LXRydW5rCisyMTY4NiBjMWVjODdmMTA0NGE0OWNkMTc4NmU4MGU5ZWFiMGRiNTBkYTdiYmY2IGxlZ2FjeS10cnVuaworMjE2ODcgNzA0NjFmMmQyMTA5OGQxYzUyOTI4NDMwMjYwZDllMmYzMTk0NmQ1NCBsZWdhY3ktdHJ1bmsKKzIxNjg4IGU2NzVmZjU3NDhmMDVmMjc5YWM0NjlmNDQzZWMxNjJkMDAzZjNkNGUgcmVsZWFzZTIxLW1haW50CisyMTY4OCAyMmJlZDJkZDFiMjg2NTY0ZGVhNGQ5YTY3ZDRlZDgwZGMzMjI1MTkzIHJlbGVhc2UyMS1tYWludAorMjE2OTAgMTM3ODNlMGEzNDIzN2Q1MGQ1MmFhOTIwZDA3NTU5ZDBlYTEyNTBjMSByZWxlYXNlMjEtbWFpbnQKKzIxNjkxIDZkNGM4YTI5YmU3MDg3ZjkwNmVlMmY0NjljODk0YTY1YWNkNTRiMWUgbGVnYWN5LXRydW5rCisyMTY5MiAwNDdkN2M0ODA2OGFkZDdhMzUwNGQ0MTJkNjcyZjU0YjMzZjVjNDIwIGxlZ2FjeS10cnVuaworMjE2OTMgZjUzZDhjNTJjODFmOGQ5ZTM0ZDJmMThjMDY5YjRiZTc5OWQ5MDFiZCBsZWdhY3ktdHJ1bmsKKzIxNjk0IGY2MGU4NTM4NGI3OTgxYTZlZjhlOGExMWViZTE1OWJjMTJiMmNjMTIgbGVnYWN5LXRydW5rCisyMTY5NSAwMDIzYTc4YzFjODJjNzE1MjBkNDUzNTdhYTdjYWY3YmUwZDMyMTk1IGxlZ2FjeS10cnVuaworMjE2OTYgMDlhNWZlMmE3NDI2NzM4ODljMTliMTIzNDhhMDM1YTI0YjU2YTQ1MiBsZWdhY3ktdHJ1bmsKKzIxNjk3IDcyOTM5YTIyMzBkM2JmMTcwODlhM2QyNTJjZmZmMzhmMjIyNTM1NjEgbGVnYWN5LXRydW5rCisyMTY5OCBiZmFhOTdhMTliMzA4M2YzNGY4N2FjYjQ5ZWUxYzlhZGQxZDAwMDJiIGxlZ2FjeS10cnVuaworMjE2OTkgMjliZTg3MWJkODc2ODU2NjNkYjg1MjI3YTk2NThlZDJhNTExNzVhOSBsZWdhY3ktdHJ1bmsKKzIxNzAwIDY0MTdkNTg4MTZjZmRkNWI5NjU0MDkwNjE3YjkyYzk2YWY0M2M0YzUgbGVnYWN5LXRydW5rCisyMTcwMSBhMDY4MzFiMzU0MDc2MWIwODViZGNkYzkzMTVhNTMwMmMwNjliYWQxIGxlZ2FjeS10cnVuaworMjE3MDIgZmQ4OTZiN2NhYmI3NDIyNTMyYzJlZTQ1MDZmNDNiN2Y3YjdiNWQ5MyBsZWdhY3ktdHJ1bmsKKzIxNzAzIDc0NjEzNDhkOTlkYTQ0MzZmZmQyODY2Yzk4NjY5NDc5MTBhYzcwNzEgbGVnYWN5LXRydW5rCisyMTcwNCBlYWUxN2M1NzY3Mjc0MjU5N2EwNmNmYTc0NmRlM2NkZWFmYTlhNGU1IGRlc2NyLWJyYW5jaAorMjE3MDUgY2ZlNTNhNjIwY2ZmZTgxMjczNjhlNjliMDBhYmRhZDJmM2IwZTc2NSBkZXNjci1icmFuY2gKKzIxNzA2IDQ5YzA3YWNjNmU4M2U3YjdiNjcxYmY3MTllNWM2NmY1Y2EyOTgyNzUgZGVzY3ItYnJhbmNoCisyMTcwNyBjOTQwMjg3ZGJhNzliZGY1NjM5MGFhZDkzZTVmYTYzODY4NmFiMmM1IGRlc2NyLWJyYW5jaAorMjE3MDggNjQ2ZTA1MmUwNWJlZDUxZWYyZDQzMDFlYTQ1YzE3YzdiYWYyZTA1ZiBsZWdhY3ktdHJ1bmsKKzIxNzA5IDU4ZWI1MDUyODY5MmM4ZTZjNDM4MTcyYjhlY2VjYmQwMWYxOTdlNzMgbGVnYWN5LXRydW5rCisyMTcxMSAxMmU3YWQxMDgyMjkxNjA1ZGU1NTRiN2Y0OTIwOWQ0YjY3NjE2NGY3IGxlZ2FjeS10cnVuaworMjE3MTIgOWI0MmRmNGI3NGQ0NTYzZWE0ZjliM2ZhZWZjMzM1MjBhM2UwZjc1ZCBsZWdhY3ktdHJ1bmsKKzIxNzEzIGY0MDE0MDU4OGIxZTgzYTc1ZmFhNTVlM2JiMzljNGVkNmQ1MmI2NzIgbGVnYWN5LXRydW5rCisyMTcxNCBlNzYwZWVkNWY2ODgyY2Q0NzYwYzUwNzA4MTUwMjU1ZTdjNDIyNjE2IGxlZ2FjeS10cnVuaworMjE3MTUgYWEzNDQzNjE0NWQwMzNkYmIwMjQxNDBjNmMyNzNhZGVlMmUwOGJiYiBsZWdhY3ktdHJ1bmsKKzIxNzE2IDVkMzk2NGU2MjJhODUyY2MzYjllOTY3NDRmYjYxYTY4YTM1MjJjMTAgZGVzY3ItYnJhbmNoCisyMTcxNyA2MzhkOTA0NGZiZTIxZWI4ZmE2MzhkNWIwZWM4Nzc0OTQ1NzE3NjZhIGxlZ2FjeS10cnVuaworMjE3MTggYTc1Y2EyMTdmNzM3NzdkNGRmZjY2NWY2ZTUwMDA3MGNlZTk3MGY1ZCBsZWdhY3ktdHJ1bmsKKzIxNzIwIGFjZTcwZTMyNzkyOWNhYmJkZTVkOTE5YTVkNTJkMTA1ODBmNTkwYjcgbGVnYWN5LXRydW5rCisyMTcyMSA1NTUxMWNhYTI0ZWViNTk2ZWM2Zjc4MjYzMWI1YzVjMTA4NDJhNzE3IGxlZ2FjeS10cnVuaworMjE3MjIgNWUxYTE0ZDk5M2IzNWI5MjM1NjI5OGI1M2FhYTlkYjJlNzUxMDAwZSBsZWdhY3ktdHJ1bmsKKzIxNzIzIDk5YjVkMzM0ZGUxZTQzMWZkYjZmMDBkMDVlY2VlMTE5MjkzZDdmOTIgbGVnYWN5LXRydW5rCisyMTcyNCAxNDRhMzAwNWI1YmFlM2RhNTFjMmE0ZjNlYzg3NjVhNjc3NWU5NTRhIGxlZ2FjeS10cnVuaworMjE3MjUgOWI4NTY0ZjZlMzRkNTFjYWUyOTU4MmRiYTJjYWQ4ZmYwMGJiNjkyOSBsZWdhY3ktdHJ1bmsKKzIxNzI2IGM0MDQxMDcyZDEwMTAxMGRiMmQzYzg1NDlmOTc3ODVmMjU5M2MwYzUgbGVnYWN5LXRydW5rCisyMTcyNyAzNDZkY2FmYzg3OGI0NjZlNmUwODFmMjk3Y2U3YjFlOTNkYzc0OWVjIGxlZ2FjeS10cnVuaworMjE3MjggNjcwNDY0Yzk0YjkyYTY4MjMyMGQxNzk0OTMxMzVjOWIwYzNhOGEzYiBsZWdhY3ktdHJ1bmsKKzIxNzI5IDdkNzc2MTRmZDBiN2ZkNzAxYzc4NjE4M2JhYTY5M2YzMjA3ODkwNGUgbGVnYWN5LXRydW5rCisyMTczMCBjNmMzMGU0NWFiNWJhNjYyYjU4NWYzNDkzM2NkNjljNjQzODdlOTAwIHJlbGVhc2UyMS1tYWludAorMjE3MzEgNDM4NGY5MTliNDQ4NTQxZmYxMjhjZThjMzAwY2I5NjI2NDY4YjNmNSBsZWdhY3ktdHJ1bmsKKzIxNzMyIDhkNjJkZGU3NjI3Y2VmN2NmMGU0Zjg4YzAzZmMzYzY0MWYxZWJhMWQgbGVnYWN5LXRydW5rCisyMTczMyAxMzJhMDZhZDk2ZWVjMWE1ZTg5ZDliNmYzMjJhZDBlZjI0YjU1N2M5IGxlZ2FjeS10cnVuaworMjE3MzQgYTg2MTk1ZTZjN2UzMzJhNTdiNjhiYWIwYzNlZDJmODE0ZGVmMTI2NyBweS1jdnMtdmVuZG9yLWJyYW5jaAorMjE3MzYgNmI2MGQwZDk3NGMzMWQ1YjlkYzk2ZTk3YjllODI1MTMxZDdjOGE3YyByZWxlYXNlMjEtbWFpbnQKKzIxNzM3IDI4ODE4NzY2YTY0Y2E1Zjk1YmJkMWY2OGU2ZDNhOGUyZTIwN2ZjNjAgbGVnYWN5LXRydW5rCisyMTczOCA2MWU1MGQwYWE1OWExZDg5NjlkOWQ4OTdlNzM0MWViOWMyOTg1ZDk2IGxlZ2FjeS10cnVuaworMjE3MzkgNDA1MzUyZWE1MGEwN2QzMWY2NWQ3YjFiZDA1MzEyODBjMWFkMjJjMiBsZWdhY3ktdHJ1bmsKKzIxNzQwIDQyNDdiNGIyYzQ4ZTY5MTQ3YTk4YjFlMWEzNzIyYWU4ODIzYWVhMzUgbGVnYWN5LXRydW5rCisyMTc0MSBmZTQ0NDI4Zjk3NzRkZjg0NWJiZjM3MzVjZmE4YWE1YTM5NmQxNjI1IGxlZ2FjeS10cnVuaworMjE3NDIgMzA0MTRiNDFmYWM5Nzg0YjZmMTM1YmE3NWIxZWEyOTQxMzAzYjNhMSBsZWdhY3ktdHJ1bmsKKzIxNzQzIGU5OTU0NTY3YzU0YjAyZjcwNGE5Y2ZkMGExMjVkZDVkZjBkZDc0YjggbGVnYWN5LXRydW5rCisyMTc0NCAyMWEwNGQxNWUzOGMyNmQ4MzNkMWUwMWI5NjlkZmUzYmEyZTc4NDEzIGxlZ2FjeS10cnVuaworMjE3NDUgNWI4MjBkN2EzZTdjMTNlMjlmM2YzNDJjYzk0NjZkOGFiNGNmZjkxMSBsZWdhY3ktdHJ1bmsKKzIxNzQ3IDI3ODMxODMwNDM1NzkxOTJkZjUwMzQ5N2NiODkyMjA0MjI3MzY0ODAgbGVnYWN5LXRydW5rCisyMTc0OCBjN2JlZjZhYTZmOTI2NzI3ZDExOTlmYmFjYTdhNWU1NmFjMDcyZDdhIGxlZ2FjeS10cnVuaworMjE3NDkgMjFjNTQ5YjY2NzAyNDExYzhlNjI4NzE1MzEzN2M0ZjI1OTEyOTEyZSBkZXNjci1icmFuY2gKKzIxNzUwIDExNTM4ODA1OTdjYzcyYThjZWNiZDFlYjNlODM1MjAzMTllNzA0NjYgZGVzY3ItYnJhbmNoCisyMTc1MSA5YTM3M2ExNDNhMTMwZjJhYmM4NjM0MDBiODIzMWEwM2UyMzFmOWRhIGxlZ2FjeS10cnVuaworMjE3NTIgMTkyNTBmOTE4MWRjNDRlMWE5NTZhOTM5NTdmNmRiNmI4NDJjODIwOCBsZWdhY3ktdHJ1bmsKKzIxNzUzIDIzZTZiYmE4OGQ2YTdmYzdmNWI5Yzk4NjIxMDY5NmI2M2Y2MDU5ODcgbGVnYWN5LXRydW5rCisyMTc1NCAyOGI2MjkxZTJhNWNmN2Y1NTJkM2RiOTlmYjdlOTAwNmNiNzZkNTFhIGxlZ2FjeS10cnVuaworMjE3NTUgM2YyODNjOThlODE1MDc5YjU0Y2RmZDNhMDczZDA2MzljY2QzY2IxMyBsZWdhY3ktdHJ1bmsKKzIxNzU2IDExNTFhYjhhMmNkZmU1OGUyNTBiNTA1NjFkZGJkMWI1ZTkxMWM4NzAgbGVnYWN5LXRydW5rCisyMTc1NyA3ZmRiNDE2MDNlOWEzYzNjMzEwY2E5N2E3NGUwMDQ0Nzg0ODY4NGUyIGxlZ2FjeS10cnVuaworMjE3NTggODU5NTA1MjI0ODUwMjBlZmIwMWY4YjIzOGZjZTg1ZGYzNWEyYWU5OSBsZWdhY3ktdHJ1bmsKKzIxNzU5IDcyMWYxYTg5M2ZiYmMyNDhjYzA3MWZlMzIzZjU4Y2MzZWUyNTVlNGYgbGVnYWN5LXRydW5rCisyMTc2MCA5ZjQzZTNhOWJiNmVlMjUyNmUyODljOTI2ZDU5YmE4MjY3NDQ5NWQ2IGxlZ2FjeS10cnVuaworMjE3NjEgYjlkNDdkMDgzZDJjYWYzNDI4N2I1ZDg5NzdmNDMyNzlmNThlNzQ3YSBsZWdhY3ktdHJ1bmsKKzIxNzYyIDI3NWFmYjVhNzY3ZTJiZDkxMTEwYjk3OTU2MDNlYzBiYzk3ZDhiNTggbGVnYWN5LXRydW5rCisyMTc2MyBmODRhY2M5ZGZkMGI1Y2RjYmFkOWNmMzE0MDJlNzAwNWVkMmY1MjliIGRlc2NyLWJyYW5jaAorMjE3NjQgMDg1N2ZiNDg5ZmEzYTYzMTA3N2E5NzMxZDhlNjE1ZjcwMzkzOWU2ZiBsZWdhY3ktdHJ1bmsKKzIxNzY1IDczMGFiMGJlZDZhYjQ2ZjBhMTcwODc4Y2YxYjQ4Yzk3NTQ3MmFlNTMgbGVnYWN5LXRydW5rCisyMTc2NiBmYWY3ZjE3MWE5ZjMyMjQwOWI1MThlMDE2ZmMzNTVlOGRhMGU3ZTQ0IGxlZ2FjeS10cnVuaworMjE3NjcgZGNkMWEwYWFhZWNiNDljYTc5N2NhNmNlYTdlNWI4NmZkN2U3NjMzMiBsZWdhY3ktdHJ1bmsKKzIxNzY5IDIxZDdiYWU5ZGMyZGI2YzJjYjNkNzJkOWUzZjczZDkyYTkzYTgwODUgZGVzY3ItYnJhbmNoCisyMTc3MCA1OTQ0NmQwZjgzNDFkZDE3MzBmMTYxZTAzZTFkNzI5NjIxNTc0MDljIGxlZ2FjeS10cnVuaworMjE3NzEgMWY5YzdiNGNlZTc3YWZlOWZhOGE0YTVlNGRlZTExMDAwNzc2YjUyYyBsZWdhY3ktdHJ1bmsKKzIxNzcyIGZkYjM2YTBjN2U2ZTk4ZTYyMGJmZjFmYTA2NDg4NjU2MTBlNjgxMzUgbGVnYWN5LXRydW5rCisyMTc3MyA0YWM5OGZlN2FiZDJiNTE2NzYyNjk4Njc0NmRlNDJjNDY0NTMxNDQzIGxlZ2FjeS10cnVuaworMjE3NzQgNjIzOGEyMjJiN2NkNjU4YWI0MzM5ZWE2YzNhNmJhNDc3NWNhODg5YyBsZWdhY3ktdHJ1bmsKKzIxNzc1IDM4NGE2MWZhNmY1YTIwNDdkYzRmMzllZjZmYjM1OWQ2Nzc3Y2IxNDMgbGVnYWN5LXRydW5rCisyMTc3NiAwYTkwZTVlYzYxYjY5ODFlNjU2ZTdlYzhkNDlhMjk2NGY4Mzc1ODc3IGxlZ2FjeS10cnVuaworMjE3NzcgMDFmYzk4YmEzOTlmMWE4YWYxZjM5ZDRmNzQzNDRiZTQwZjIxNGUzNCBsZWdhY3ktdHJ1bmsKKzIxNzc4IDE5ZGNmYjkzNWY2MGU0ZTBmOGFjZjg2MTI4YmMzMDQyOGQ0Y2M3NzEgbGVnYWN5LXRydW5rCisyMTc3OSAyNzEwNjRkYTFkNTJjY2VjOThmZTE4NTMxMDBiODU4MzRjOGNmNWRmIGxlZ2FjeS10cnVuaworMjE3ODAgMWYzZDc2NmRhZDkxZTVlZTI2OTI4ZTU5MjU5NGMyMWNkNWNmZGJiMSBsZWdhY3ktdHJ1bmsKKzIxNzgxIDkxNTkyMjJlNjQ2M2ZkNTk0NTA0OGI2N2QzYzlkNzYyYmI2YTVhZDkgbGVnYWN5LXRydW5rCisyMTc4MiAxMDcxN2Y4YTZkOTY4NGMyOTdlMTUwOWJhY2ZlNDg1YWY0YjAzZDJlIGxlZ2FjeS10cnVuaworMjE3ODMgOThkODFjYmU4YmJkN2ZkYjM5NjE3NDA1YTJhMGVhNzMyM2FhYzczNCBsZWdhY3ktdHJ1bmsKKzIxNzg0IDM1ZmVjNDg3YmNlZjc3NzM4ZDVmYjNmZmE5ZDgzOGM3MmQxNGFhMDMgbGVnYWN5LXRydW5rCisyMTc4NSBlNWU1YmI1NDgyZDNiNzJjNjcxMTI2YTg5NzEzOGNiNDE4N2U3YTAwIHJlbGVhc2UyMS1tYWludAorMjE3ODYgOTIwZWU3ZjJhNTkyMmU2ODVlYThjNTQzMjA3ZDkzZWM2NWM2MTdlZiByZWxlYXNlMjEtbWFpbnQKKzIxNzg3IDJiNWU3MzgzYzc3YTE2ZjM0ZWRlNDg3NmUzZmY4MWY4ZDdmNWY0YjAgbGVnYWN5LXRydW5rCisyMTc4OCAyOTU1MThlNmZjZWFiZTE5MDc2MjVkODU0YmVkOTkwMjJhZmUwZmVlIHJlbGVhc2UyMS1tYWludAorMjE3ODkgYzA2ZDgxNzllOWUzYjMzNjg5NmE1NmQ5ZDIwOGQzODZkMTc4NTk4NyByZWxlYXNlMjEtbWFpbnQKKzIxNzkwIDkxNDk0MDk0NmUyZWExZmNjYWUwMDNmYzAxMDNkYmM4MDkwZWNiODMgcmVsZWFzZTIxLW1haW50CisyMTc5MSBjOWI0YzhhZTYxNzkyMzA1MWE2MWZmMjYzMjdiOGM4MWVhZjgxMTYzIGxlZ2FjeS10cnVuaworMjE3OTIgNDAzMGM5MDE5MDY3YzVjMjA2N2U4ODMwYTMyZjAxYjBjNjg0ZTI1NCBsZWdhY3ktdHJ1bmsKKzIxNzkzIGZkZGU5ZmFjYmI2ZWE3ZDE1NWQwZDRkZTI4YWM2Y2MxZWQ2ZTA4NmUgbGVnYWN5LXRydW5rCisyMTc5NCA3N2M4MjgyNGRmNDEyOWYzN2JkYTYxMTk3N2FiMThkMzg4MTQ0MGZmIGxlZ2FjeS10cnVuaworMjE3OTUgZDU5YTg0NzZhZmFiOWRmNTRhYTA0MThlZDVjZTA0M2M3YTM3MmUyMSBsZWdhY3ktdHJ1bmsKKzIxNzk2IGM4ZTQ3MjhkMmFiMGYzY2E4YTBkMmIyMTY5ZGZmYTRjMDVjZWY1NTUgbGVnYWN5LXRydW5rCisyMTc5NyAxZDNjNTdjYzhkMDg1Yzg2ODdiNzhkODllNjk4YWQwYzMzNmRkMjU4IGxlZ2FjeS10cnVuaworMjE3OTkgOTgzYWNhYzU2NDY2YjNiY2ZjZGRkMmM0MzE4MjkwZWE3Yzk1MzZkYyBkZXNjci1icmFuY2gKKzIxODAwIDA1Y2Y2YjNlNjNkZTU1NGUxN2I5MzU2NjUzNDQwZDZiYzUzZGJhNDMgbGVnYWN5LXRydW5rCisyMTgwMSBlNTNiY2JjMzE2NWUzOTY3OWFmNjM4OTkzZWUyNWJiNDUwNzU2Y2NmIGxlZ2FjeS10cnVuaworMjE4MDIgZDNjMjViMDZiN2U1YjQ0ZGM1MzAxZmRmY2MyNjQ4ODAwOTY2NWRmMiBsZWdhY3ktdHJ1bmsKKzIxODAzIDU3ZTU5NTI1ZDIxN2RmY2UzNWQxOGE0NmViOGQyNDhlYmFiOGNlZWQgbGVnYWN5LXRydW5rCisyMTgwNCBmZGY4ZDA4MzEyNzg5NTNhMjg1NzljMWRjYTAzMmI3MGQ3MDVkNTM0IGxlZ2FjeS10cnVuaworMjE4MDUgZjcxOTY0ODZmNDJkMTgwOWQ1ZThhNGE2ZWRkN2MxY2NhZmQ1MzUyYSBsZWdhY3ktdHJ1bmsKKzIxODA2IDZhNTA5MTBjYTMwM2FkMDRhMzdjZjlkOGFlZmU5OWMzZWE2YzhjZmUgZGVzY3ItYnJhbmNoCisyMTgwNyA1NTcxN2RjMjI3ZjRkZTEwYjQ5MGM4ZjVmNjMzYjVkNjVjYmMxZWEyIGRlc2NyLWJyYW5jaAorMjE4MDggOTRmYmNmMTk2NTQ5NTU3YjhlMjcxZmI2ZDllYWY2N2U4ZDlkYTU3ZiBkZXNjci1icmFuY2gKKzIxODA5IDA3NzJlYWExNzYzMTlhYjRmZmM1OTQ4ZTY4MDM4ZmVlMDQ1MDc3ODUgbGVnYWN5LXRydW5rCisyMTgxMCA3MzM1YWM3YzUzMTU3ZmMwMGQ5YzFkZTM4YTUyMGFhMzg4ZmJhMDdkIGxlZ2FjeS10cnVuaworMjE4MTEgY2I1ZWE0ZDhlOGJmOTgxMWQ2NjZkZjQ0YzNiNDBhMGM3Njk0NDNhOSBsZWdhY3ktdHJ1bmsKKzIxODEyIGU1YTJlODkxNmUwYjRlNjRjM2YyNzgwYmJlMjUwNDY2MWUzN2IxN2EgZGVzY3ItYnJhbmNoCisyMTgxMyBjNDNmZTIxM2VlMTA4ZjUzNTMzOWI5YjI5M2I1NTc5Y2U2YjRiYWU0IGxlZ2FjeS10cnVuaworMjE4MTQgYWQ4MmNhZmU0NWFjZjQ5MWY4OTg2MTVkYWY5MmEzYzJkMjc0Mzk0MyBsZWdhY3ktdHJ1bmsKKzIxODE1IDMzODE4ZWM2Mzk1YmFkOTBhOGRjYzMyOGZkYmE1ZjMyMTQ3NWZkZjMgbGVnYWN5LXRydW5rCisyMTgxNyAxZjFjNzhiYTU3ZmY0NTdmNjAwYTI0YzU0NjM1NjI5Mzg2NDVkNjExIGRlc2NyLWJyYW5jaAorMjE4MTggZDYyMzNmN2I3NGMxOGZlNWNhZjY0NDU3NTYxNTdmMTc2MjNlZjM2YSBkZXNjci1icmFuY2gKKzIxODE5IDhhYTYzYWVhNzI2OTU5OGE3MTNiZTQ0NzQ4NmFjNTZlODhhODIwMTcgbGVnYWN5LXRydW5rCisyMTgyMCBjYjY2YTk4MzA5NmY3Y2YzOTUxNWI0YzMzYWU0YWVlMTU2NmM1MGM1IGxlZ2FjeS10cnVuaworMjE4MjEgM2I4ODg4NTlkNTJiM2E2MDdiYzg1YjU5ZDZhOGM4OTQwZGVhZTBjMyBsZWdhY3ktdHJ1bmsKKzIxODIyIGNhOGE0OGFiYTIyZWNlMjliZDY3NzA5ZDU1ZWFiOWQ1OGRmZTFjZTUgbGVnYWN5LXRydW5rCisyMTgyMyA1ZWJlZTVjMDYwZDBlN2RiMjE4YzdjMWJmZTIxMDhkYTVhN2I2NGQyIGxlZ2FjeS10cnVuaworMjE4MjQgNzQ4ZjZiM2E4YmY2Mjc0ODFmMjk3NjJkZWIyMjU0MzhjMmNjOWYwNiBsZWdhY3ktdHJ1bmsKKzIxODI1IGFjMTFhZjdkODYwYTM1ZjVjZTc2Njk0NzYxNGRlM2ZjNTM4NTUxMmYgbGVnYWN5LXRydW5rCisyMTgyNiBmY2RiOGM5NGI1ZDhmMzNkZWI4YjQ2NzBiNmYyN2NlZmNjN2I5ZTk4IGRlc2NyLWJyYW5jaAorMjE4MjcgY2Q2MzlhOTQ3MWI4Zjc5MDVlZjU4MWVjOTQ2YTkwYWMwZmMxMzdlYSBsZWdhY3ktdHJ1bmsKKzIxODI4IGU2MzhmMTIwNmVlMGJkOTlhOWE5MWYyNDUyZDg5MzhkMGE1M2EyYTQgbGVnYWN5LXRydW5rCisyMTgyOSA3MDI3NTAzN2YxMmQ4ZGVkNmFkMjJiY2FmOTNhZDc0MzIzYzBmYjhlIGxlZ2FjeS10cnVuaworMjE4MzAgNzQ2MjNiMDc2ZDFiZTllMzNkMDhmY2RmNjVlMTFkN2VmYjZlYzk2NSBsZWdhY3ktdHJ1bmsKKzIxODMxIDk1ZGRjZDQ0NGQzOTJmYmIxMzZjNzY3YjFhM2EyMzdhYTE0ODJhMTYgZGVzY3ItYnJhbmNoCisyMTgzMiBkODllOTM2ZTFiMTA2NWM1ZjU3MGMwMjU5ZTczMzAyZGQ2NDNjNWRhIGRlc2NyLWJyYW5jaAorMjE4MzMgNzA3MTFhOThkOTg5N2M4OTM3OWJhZDA0YWZlNDM5YzMxNWRjOWY4YiBkZXNjci1icmFuY2gKKzIxODM0IGUwOWJlZTliNTcyOTJkNzYxM2VlNzYyNDRiZTg0MjRhNTY3NDdhZTIgbGVnYWN5LXRydW5rCisyMTgzNSA1ODRiZTBiYmQ5NDJiNjQ1NWMzOTkyZmFiNDg2Y2YxNjE2YzkwZTljIGxlZ2FjeS10cnVuaworMjE4MzYgZjY1Y2U1OTkwNTQ3ZDUxMDRjYWRhZmEwMDk2NTJjNmVmOGI2MDExOCBsZWdhY3ktdHJ1bmsKKzIxODM3IGI3Nzc1ZWJiZjQ0OTA5OWE0ZTFiMDU0OTgyNTg1MTVjZjBlNjNmNWIgbGVnYWN5LXRydW5rCisyMTgzOCBmMTQ4MDAyMjk2NzdkZWEwYWFiNmU4ZjVhN2RiMmY0ZmI5NThmZDg4IGxlZ2FjeS10cnVuaworMjE4MzkgOTI2MjZmNDJlMDQzM2NlZjY2ZjVkZTY2MGRlZThhNDhiNjUyODU2ZiBsZWdhY3ktdHJ1bmsKKzIxODQwIDVmYzJiYTFjM2YyNDIzZWU5MzkzMDMzMjhiZGE2NmE1ODFlMDZiZTMgbGVnYWN5LXRydW5rCisyMTg0MSBhMDI3NzlmZDliOTIwZWI3ZmE5NWI3OWM1YzQxMzJiOWU1OTI4N2VmIGxlZ2FjeS10cnVuaworMjE4NDIgMWY5NzQzYTFlZDdiMGIwOGFhOTQxOGI4ZTczZDcyYjIyYzE1NTIyZiBsZWdhY3ktdHJ1bmsKKzIxODQzIDZkNGE1MzBmZTdjMTYyMjExMTY4OTgwZDZlMGE5MTE5ZDRmYWIxOTQgbGVnYWN5LXRydW5rCisyMTg0NCAzODRiOTExM2EyZTBjNjlhZGZiNDJkNWE3MWQ5MjAzMmExZDJhN2QwIGxlZ2FjeS10cnVuaworMjE4NDUgNzkyN2U4Y2Y0NjE1MGFjNGQxMmFlMDg3MjJjN2Y3NWE5MzhjOWVlOCBkZXNjci1icmFuY2gKKzIxODQ2IDM4MjA2ZjI5YjBmYzFjNTQ3NWQ3NzE4NWFhYmE1M2YyMjJjZjFiYjkgbGVnYWN5LXRydW5rCisyMTg0NyBjZmI1N2RiNGMzODhlNzU1ZjlkZTFhMDVkNzJlYWNjZTYwYjYzODgxIGxlZ2FjeS10cnVuaworMjE4NDggNDkyYTFiZDRkMGM1ZmUxYTJkZmM2ZGJjMTIxNTdmNWFlNWIzZDliZiBsZWdhY3ktdHJ1bmsKKzIxODQ5IDllZThmMTZiMGUyNzJmNjllYTQ0MGFmNThmMjg5NTdiODUwNjU4NDYgbGVnYWN5LXRydW5rCisyMTg1MCBmN2JlN2U5YTZmMjAyODFjYmJlNTY4M2EwZDE4MDU4NTFiYjkyYWJjIGxlZ2FjeS10cnVuaworMjE4NTEgZDNiYzgyZDFjNWE5Mjg1NWMwNDA4NzQ0M2NkMWU5MmM5Yjc4NDZmNCBsZWdhY3ktdHJ1bmsKKzIxODUyIGU0MjFhYTQ1MDQwY2QwODY5MWNhMzgyMjQ5NTVmMjU3M2IyYWMwYzYgbGVnYWN5LXRydW5rCisyMTg1MyBhN2JjMzM5ZWUyZjM1MDg5N2NhNTc1MWNhM2MxMTYzMWNmMmZhMWU4IGxlZ2FjeS10cnVuaworMjE4NTQgMmJhMWQ5ZDk5NmEzODNlZTIxMjRkYzNiNzcxNjFlN2Y4NjM2YTVmYyBsZWdhY3ktdHJ1bmsKKzIxODU1IDA1MDVkOWRjODMzZDc0MDM1OTUyODM1MzMxZGEyY2Q0Y2U2YWY2ZWUgbGVnYWN5LXRydW5rCisyMTg1NiBjNjU5ZDRjMDA5Y2JmYjM3ZjE0NGNkOGYwNmQ4Njk5OWVkNzExNzNhIGxlZ2FjeS10cnVuaworMjE4NTcgYWQyZjUyNmYwMDE5ZDQxOTgxZTk5MjA4MDQyNzUyN2VhYmU0MDk5MSBsZWdhY3ktdHJ1bmsKKzIxODU4IDhjYTcwYzljMTk3MTM3NmU1NGI1NTU1OTY0Yjk4MGZhMWViZmJiZjUgbGVnYWN5LXRydW5rCisyMTg1OSA0NzkzMmQ4MmI4ZWIxZmY2MDE4YWQxYzhhYmQzMWU2ZDcwMWM0NjU2IGxlZ2FjeS10cnVuaworMjE4NjAgYTM4ZTc3MjQwYTY3Mzk4MGVlOGQ5ODE4MTQ2MTVmMzEyNzJkMjQ0MiBsZWdhY3ktdHJ1bmsKKzIxODYxIDU0ZDA0NTljOGUwZmRiZDYzYzI0YmVhM2I0NWE1ODc2NTAxNTc4ZDkgbGVnYWN5LXRydW5rCisyMTg2MiBmZDc0Y2I1Yjk1NzMyYzg5ZjRmOTBmNjgzYTJhNTUwMTY0OGJkODFmIGxlZ2FjeS10cnVuaworMjE4NjQgMDljNmZlN2RiYjFjNTNjZDdhZTFlODViZDQxMjU2MTg1ZTZiMWUzOSBkZXNjci1icmFuY2gKKzIxODY1IDQ1ZjUzZmU0NGMwZTZkNWNhNmM1MmY0NzRiNDQyNGIxZjY1ZWIxODYgZGVzY3ItYnJhbmNoCisyMTg2NiA2MmUyNGJjNDdiNjIwNzJkMzE1NzQxM2U0MjQyMDJkZDM5YTJjYTVkIGRlc2NyLWJyYW5jaAorMjE4NjcgYjIxZGYwOTFmYmJmZDZkN2M3ZmZlODY4MTZjODRiZTQxZTQxMmJjMSBkZXNjci1icmFuY2gKKzIxODY3IGQyNTA5NTkxMzNiNWE5OTZiMWVkZjhhNDc3MmZhMDJlNThhM2E5NzIgZGVzY3ItYnJhbmNoCisyMTg2OSA0YzU5ZTkzNGU3NjVkZTUwM2JlOTM2OTg5OGU2OTExNjY5ZmY3ZTkyIGxlZ2FjeS10cnVuaworMjE4NzAgMDY0ZGU4NDM4NWNhZWEwZDI3ZDdlNTlkMDRlNmE5Y2ZhMjM4OTM3YyBsZWdhY3ktdHJ1bmsKKzIxODcxIDUxYzM4MmQ1ODUxYjkxOTJmODZkMWM0NWM2MTgyZTc5NGE1YjhhZDQgbGVnYWN5LXRydW5rCisyMTg3MiAwNzkxN2YxNDM0ODg2MjE2MDNlYzU2NzE5ZDc5OWI3NDBkMjEzZjIyIGxlZ2FjeS10cnVuaworMjE4NzMgMDA2OTU1NTFkNzIxMjExNzA1ZGQ3M2EyMjUxNjMyZjIxZDg2YmQ5NSBsZWdhY3ktdHJ1bmsKKzIxODc0IDQzODE0NjFjY2U1ZGY5MmNlMTM1ZDVhNGQ0YmMzZjBmMjZlN2YxNWYgbGVnYWN5LXRydW5rCisyMTg3NSA5MjE4ZmE2NTIzOTFmM2E4OTFjNzI0YzRiOThkMzdmODZiN2NjNDc1IGxlZ2FjeS10cnVuaworMjE4NzYgMjUyNDRiZGIxNjNkOTIxZTIxMzBjZTZhZTBlMDJlMmFmM2Y2MWE0NyBsZWdhY3ktdHJ1bmsKKzIxODc3IDFjMmRhNzhiODM5YjliMDU4ZDY2YjY3MzVhMjhlNTBmMDY1MGNiMjkgbGVnYWN5LXRydW5rCisyMTg3OCA2Nzk0ZGNhZTVkMGNkOTg0ZTBkMGQ3NDgzYWE1YWU4MjQ4ZDBiYjM2IGxlZ2FjeS10cnVuaworMjE4NzkgYzc2Njc1NmQ4NGQzMzc1ODMzOGU5NDlmNGFlN2ViZDJkN2M1ZjcwMCByZWxlYXNlMjEtbWFpbnQKKzIxODgwIGRhZWE5NGYwNjQyOTYwOWY0YmZiZGQ5YmZiNjQwY2U3OTM2MWI4MzggcmVsZWFzZTIxLW1haW50CisyMTg4MSBhMWYxOWVlMDFhYWUwZDVlZTNjMzJiOTdlZmJjM2MzZjFiNTMxZjU0IHJlbGVhc2UyMS1tYWludAorMjE4ODIgNTM1NDVjMzcxZmUzODQwZDEyMDk0N2M1OTFjNDBjM2Q4MmUxNjlkMCByZWxlYXNlMjEtbWFpbnQKKzIxODgzIDNjZDMwODFkZjYwMWMyMGE5MmY4MWFmNDI1MTg4YWIxN2MwNzIzYjEgbGVnYWN5LXRydW5rCisyMTg4NCA5NWVhNjEwZjNmNTRkNzJhYzg2NmUzNDk3YjgxNmI4MTI1ZTdkZDYxIHJlbGVhc2UyMS1tYWludAorMjE4ODUgMzZjNTYxZWU5NmI1MzI5ZjUwYjAzMGNkYjkzZjVhOWJiZWYwMzNmZSBsZWdhY3ktdHJ1bmsKKzIxODg2IDhkZjc3NDE1YTYxZDU2NGM4NjM5NTY4MjM1OWI0Y2MxYjhjZjZmYWEgbGVnYWN5LXRydW5rCisyMTg4NyAwM2MyMGU3Y2NlNmFjZDRkMjgwNDQ4MGRiNGI3YmNiZTFkZDkzNWY2IGxlZ2FjeS10cnVuaworMjE4ODggNzBlMTg1OGFkNzAzMjIxYTYyNjA4MzdlY2FiOTI5OGZjOGY4OGQ1MiBsZWdhY3ktdHJ1bmsKKzIxODg5IDIzNzM2ODY0NGMxM2Q1MzdjN2MyY2M4NzNhNTkzMzE1ZjQ0MzI1MDkgbGVnYWN5LXRydW5rCisyMTg5MCA3MjZmNGQwNmJkNGJkMzg4MDI5MWVjYTE2MzdjYTllMjA1NTFiMTUyIHJlbGVhc2UyMS1tYWludAorMjE4OTEgMjRkMDA1NTdmYmM5NWFhN2ZkMWZkYTMzODEyZjhiN2UxMDBjMjlhZCByZWxlYXNlMjEtbWFpbnQKKzIxODkyIGIwOTQ5NjU5NjBhZjkxZDBhOTMxNjdhMjg5ZmQxNDU5ZWViNGQzNTMgcmVsZWFzZTIxLW1haW50CisyMTg5MyA0YzBhZGI4YTViYzY1MzkzNDI4ZjY0NTFhNDA0N2M4YjQ3MzMyMTMxIHJlbGVhc2UyMS1tYWludAorMjE4OTQgOGNmNTNkMGY4NWM4NzRlN2ExZTdmN2MwMTVmZTJhMjRkM2I1ZGVkZiByZWxlYXNlMjEtbWFpbnQKKzIxODk1IDVjNzM2MjFjOTU1OWI1OGZiZmNjMDU2OWNmN2Q4M2UwN2E1OTcxOWMgcmVsZWFzZTIxLW1haW50CisyMTg5NiA1YjA3NDcwMjM5ZGI4OTI0Yjg3MzY0M2JmNDY3MzMzNGU5NzliNjEwIGxlZ2FjeS10cnVuaworMjE4OTcgNGNhOWFjZWQ1NTAzN2NmMzE2NTcxOTk3MWM4NDM2MmNhZWVhMjQ3MSBsZWdhY3ktdHJ1bmsKKzIxODk4IDU1MzIwZDYyOTFjOWY1YWI4ZThkNjFlZTQ1MGJlYmE2MWY3NGI3MjIgbGVnYWN5LXRydW5rCisyMTg5OSAzYzA1MGQxZTM1YjEwMmE5NmNkMTMxMDVkZDFiODM4ZmZkZGY5YjY3IGxlZ2FjeS10cnVuaworMjE5MDAgMTFmNGNkNDVhODBjMDc4MzdkMDg0OTVkY2RlZDhkMDRmZGZmODY4NyBsZWdhY3ktdHJ1bmsKKzIxOTAxIGJhYWFjOTRmZWM1NDc1MjBhZmU3MTY2NDZkZjUyNGU0NmU2OGI1NzUgcmVsZWFzZTIxLW1haW50CisyMTkwMiBlZTliNDU4MDQzMzc3MGI0MjdkZTZmMmVlMWQyNzMyOWY2YzVmMGE5IGxlZ2FjeS10cnVuaworMjE5MDMgY2E5ZDdhNjM3OTRmMDE1YjhiOGM3ODVlNWQxMzllNTdhNGFjODhhMSByZWxlYXNlMjEtbWFpbnQKKzIxOTA0IDkxNzE2OGZiZmQ5NGIzZGY3ZmU2YTNlOGViMzFkZTgyMDlmYjIxODQgbGVnYWN5LXRydW5rCisyMTkwNSBhNTU3ZTk1YjkyZjBiZGYyZWUxZTU3MTliMjhkYmY2MjliM2ZlZGI4IHJlbGVhc2UyMS1tYWludAorMjE5MDYgYWU2NzZjZjE0OTVkNGZjZmYzN2U3ODhjY2RhNTI4ODg3NTJhOTQ3MyBsZWdhY3ktdHJ1bmsKKzIxOTA3IGM3ODBjNjFiMzVjZWM5OGRiOTJlOTNiNGY1YmZlMjg3YTgzMjRmMDggcmVsZWFzZTIxLW1haW50CisyMTkwOCBhZDZjNWMyN2VjYmU2M2U4NjE2YTIzZjM2OGVhMTllMDlkYzgxN2NhIHJlbGVhc2UyMS1tYWludAorMjE5MDkgZjhlMjg2OTk3NmIwZTUwNzUwOTE0NTIyMGFhNmI4NTIyNDhhNWQ4MiByZWxlYXNlMjEtbWFpbnQKKzIxOTEwIGQ1MWIyZDkzMzgxNDc4NjE5YzI3Y2ZhNGQzMGJkZjVlOTA0ZTEyZGEgbGVnYWN5LXRydW5rCisyMTkxMSAzMzVlNzViY2I1MWFkODZlMDBiYjc1OGU0MjVlNTI0MjY4YzA5YzYxIGxlZ2FjeS10cnVuaworMjE5MTIgMmNlNmE5YjBhNTFkNjg0Nzc5MjA3NTA0YTljOTIyNDZhMWY0MjAwYSByZWxlYXNlMjEtbWFpbnQKKzIxOTEzIDE0MGI3MjkxMzBkMGM1ZjBiZTMyOGRkZjU3MjNiZjM0NDQ0ODk4NzggcmVsZWFzZTIxLW1haW50CisyMTkxNCBiMDMyOTY0OWI4Y2ZjZmE1YmEzNjFmYTE2MmFlOTQ3NmZlZDVkNjYxIGxlZ2FjeS10cnVuaworMjE5MTUgYzI1ZjJjMTNkMzgwNmY0YzM4NzY1N2VjYWIzOWU1NjY4OTI0ZDE0MCBkZXNjci1icmFuY2gKKzIxOTE2IGRmNGI2YjVlYTliODVjNWM3OGI4ZGZlODcwZTk0YTQ1N2I5NWE0ODYgcmVsZWFzZTIxLW1haW50CisyMTkxNyA1OWQxNGM4ODY1MWNiNDQ0Y2EwZTkyNTc1YWJhMTI1YjQxMTc1Y2YwIGxlZ2FjeS10cnVuaworMjE5MTggZmVjOGY0MDM1ZmIyODY2YWU0NWU4MTQ4MjNkZTY5MWM5YWFlNzY1NSBsZWdhY3ktdHJ1bmsKKzIxOTE5IGRlNmYxNTg5Njg2MTk4MGNhOGQ3MmYzZjgxZDNhNzdmOTBjMDA1MmQgbGVnYWN5LXRydW5rCisyMTkyMCBiMjZmZjE2NDMyMTFmMTRjMmM2MGQ0YTM4ZTkxMWM5Y2QyMTFlMmRlIGxlZ2FjeS10cnVuaworMjE5MjEgNzA0NDg2NjQyMDc5ZmU2MzEzN2MzYTEzODVlNjFiNjJkMWQ5MzM4NCBsZWdhY3ktdHJ1bmsKKzIxOTIyIDFhYTdlMjE5ZjUyZGM4MmE5ZDU2YzY4MDQ4MmVjYzk2ZDNhNTk5ZGEgbGVnYWN5LXRydW5rCisyMTkyMyBjN2NiMWM5ZTlkOWM1N2RiNTI2MTc1YjdmM2ZmY2QyODUyYjU5MjRlIGRlc2NyLWJyYW5jaAorMjE5MjQgYzcxMmIxNmZmYWNkNjNiNWQ2MjgyYjEzMzlkMDEyNmRiYmE0MjZhYSBkZXNjci1icmFuY2gKKzIxOTI1IGIxNDJiNTE3MzA5Yzc1MmQxMTFhNTQ1NTI0MGVlYTg0MTFhMWUwODYgcmVsZWFzZTIxLW1haW50CisyMTkyNiA5MjBlMDM2MWRkNmUzZTc0MmNkNTAzMmM0Y2U3MDQ1NmVjODQxMGY4IGxlZ2FjeS10cnVuaworMjE5MjcgMTMzZTU3MDE1MTAxNGY5ZGYwN2EyMjA2ZGMyMjYxNDYzMWI2ZmQ2OCBsZWdhY3ktdHJ1bmsKKzIxOTI4IDhjYTJlZjY2M2FkMjBjYmQ5ZTgyMDNiODJkZjg5ZjY5NmQzNTQyYzggbGVnYWN5LXRydW5rCisyMTkyOSAyNzZiZjU5NmU4ZDE4MDg2MTU4ZTBlYjg2MjFjODhiZTg3ZGMyYjcwIGxlZ2FjeS10cnVuaworMjE5MzAgZGY5YzRjNTRlZjNlZjlkNjM0MjU4NTczZWJhMmZmNWZjNjU4YTQ3ZiBsZWdhY3ktdHJ1bmsKKzIxOTMxIDc0YjdiOGE5NjI4YjY2MjAwZjAxNDIyNzAwMzlkMzRiMjZkNmRiNTUgbGVnYWN5LXRydW5rCisyMTkzMiBlNWJhZmRkZDFkYTA0MmU5YzQwZjBhNDFkMGRhMWNiOTRiY2ZkY2JlIGxlZ2FjeS10cnVuaworMjE5MzMgZDA5MzhiYzEyYTExZTY3YjNiZTA4ZTFlYmM2MDM1NTMxNTA0NDdhNCBkZXNjci1icmFuY2gKKzIxOTM0IGM2ZWY3MWU5NDNkZDY0MGI0ZmQyMWVlM2JiOTJmZDYzZmFlYTgzNjMgbGVnYWN5LXRydW5rCisyMTkzNSBhYWM2MmFhYTg0NmRlZmFkMGJjNDU1NDljYTMzNDVmZWYyN2Q0ZjJkIGxlZ2FjeS10cnVuaworMjE5MzYgZGI2NDdmN2M4MzFiYzU4YTIzMDI2ZGFmYmFlNzQzOGVmMDYyYzEzYSByZWxlYXNlMjEtbWFpbnQKKzIxOTM3IDkyZjgxNDQ5ZTE2YzIxZTdmOGY5NGE0NWM0YTE4YTExMTIxOGZmODggbGVnYWN5LXRydW5rCisyMTkzOCAwMTY5MmJmMDJmOTc4NTA1NTdhNmU0NGM4ODY2MmUzMTliZGYxM2Y3IGxlZ2FjeS10cnVuaworMjE5MzkgM2NkMDNhNjRjMzM4YzAwMzQzOThhMzI0NjIxZDhiZTE2MzFmZGU3OSBsZWdhY3ktdHJ1bmsKKzIxOTQwIGY4YmQxNGFlZjRkNmZiNWRkZjRlOWQ3YzcyNmYyZmQ4Njg5YzQ5N2MgbGVnYWN5LXRydW5rCisyMTk0MSBhZjlhZDkwYTQ0NDU4YjZlMmQ0OGNjZDhkZGUxYzMxNDM4MmQ2NWY3IGxlZ2FjeS10cnVuaworMjE5NDIgNGQ0NmExYjMzYzYyMTNiZTAwZTdlN2M5NDU5ZTRjZDNkMGUzMzg0ZiBsZWdhY3ktdHJ1bmsKKzIxOTQzIGU3MDkyOWUxMDY2M2NlZGRhODBiNmI0MGM0YTc0M2I4ZTU1NzhiOGYgbGVnYWN5LXRydW5rCisyMTk0NCA4MDJhODRlODRlYTk0MmY2MDY0MDhkMWQ0NjY3MjM0YmI1NjFmMzYxIGxlZ2FjeS10cnVuaworMjE5NDUgMjllMDliOTZlZDM2MzVhOTNjMzljZGVkY2Y3ZjU1ZDYxMzg1MTMzNCBsZWdhY3ktdHJ1bmsKKzIxOTQ2IDc0ZGZlMzIwMDQyM2RkMzZjM2NhYTBkZmJmYmM0YzYyMDg4NDczNDMgcmVsZWFzZTIxLW1haW50CisyMTk0NyAxZDUwODNlNmQxN2U2Y2NlNTdlNmE5YTAwYzJiODNiZjgzODJkMTExIGxlZ2FjeS10cnVuaworMjE5NDggNmJlZjA5ZGE5YjkzMjRmMjgyZDlhZDZiMzNmMzY0Mjk3NWY3YWY1OCBsZWdhY3ktdHJ1bmsKKzIxOTQ5IDBlYmZiMjU5ZWNjNjVlOGNjMjcxNWU2YTRlOTU5ODQwZTA5NzlmZDMgbGVnYWN5LXRydW5rCisyMTk1MCBjYmQyMmM5MDI3YjJiM2QzZjM0OTY2NjVmOWEwMWU0NjQyY2FiYWQyIGxlZ2FjeS10cnVuaworMjE5NTEgZmY4ZTBjZTFkOTg2OTgwNmZjNjhkNjUyNmFkNWIwMDZjYTVhYjYxMSByZWxlYXNlMjEtbWFpbnQKKzIxOTUyIDE0MWJkNzBlMGI3MjMwNTljNmRkNTQ4ZmJjNzk3ZDRlYzQwYWU2ODQgbGVnYWN5LXRydW5rCisyMTk1MyAyZTE3M2RhMTFkMmQxNDZjOGJiODIzYTcyZmZjNTlmM2Q2ODcxYmZmIGxlZ2FjeS10cnVuaworMjE5NTQgODI0MjkwN2M4OTU3M2Y4ZWViMzZhY2UyMWI0YzA5MjkxNTM3N2ZmNyByZWxlYXNlMjEtbWFpbnQKKzIxOTU0IDU3MjUzM2EzMDM4ZDE4MzJjOGEyMDBmYjg3MTgxMTJkZDgzNzU4ZTkgcmVsZWFzZTIxLW1haW50CisyMTk1NiA3OWQzMDRlM2JhMjU3YzkwY2E5MTRhOTg1MmZmMTRiNTFkNWI1ZDFiIGxlZ2FjeS10cnVuaworMjE5NTcgYjEwZmYzMzc4OTZiZTU3N2VkN2MzZWY0MDFiM2Q5YWI2M2RiNTZkMCBsZWdhY3ktdHJ1bmsKKzIxOTU4IDVkZTIzYTYzOGFkNjRlOWY1OTVkY2FkOTc3NGNkMDJmMzdhOWE5YjMgZGVzY3ItYnJhbmNoCisyMTk1OSA3NDNmOGUxZDk1M2NiYzFiZWY2ODk0YWVjMDZlMDhhYjJhOGVhN2ExIGxlZ2FjeS10cnVuaworMjE5NjAgNTc2ODRkM2NlZmNlOTFjMDM5MTliMWM1MWRiNDNkOGRjNWY1NGNhYyBsZWdhY3ktdHJ1bmsKKzIxOTYxIDJkNjg2MjYxNDNhNzljOWZhZjcxYjA5ZTdiYzRjNWNjMDQxMDk5YmIgbGVnYWN5LXRydW5rCisyMTk2MiAyMmIyZjRiNDM2YWZmODM5MDI1YTUzNzdjOTZkMzEzMGNmYjg5NWNmIGxlZ2FjeS10cnVuaworMjE5NjMgNGQzM2FjYmRjNTA4ZjRiZDc5NmJmMWI4ZjJjYmIwNGQ4Mzc2NWVhMiBsZWdhY3ktdHJ1bmsKKzIxOTY0IDIzYWU0N2UwMDExOWYzYzY5NjJlYjc0ODg2MTkwNTM4MTY0YzM3YjggbGVnYWN5LXRydW5rCisyMTk2NSA0NDE1NTEyMWYwMmIxZTI4Mzc0MWY1NjJiMjI0M2FiNmI1MGZjYTUwIGxlZ2FjeS10cnVuaworMjE5NjYgNWViNDYwYTY1ZmY3MGEzNGU1ZjQ1ODg1ZTljMDc5YzY0NWQ1OTYwNyBsZWdhY3ktdHJ1bmsKKzIxOTY3IDAxYWU5NjJkZjg4NWU0ZTZlN2JjY2M4ZjI1NTQ2MTAyMzhjYzMxNzQgbGVnYWN5LXRydW5rCisyMTk2OCA5ODQ4NGVmMjI1ZjkyODlmNjIxODE1OWNhN2YzYjg0ZjcxNmM4MDA3IGxlZ2FjeS10cnVuaworMjE5NjkgYWMxM2E2Y2UxM2UyNGNkMGRhYTE4Y2Y0MDJjODhjMzc0NTk0ZmM1NiBsZWdhY3ktdHJ1bmsKKzIxOTcwIDAxYzYzOTk3MWJmZjEzYmZkNTRmODQ0OTZlODJiZWM5NjA1MDIxOTggbGVnYWN5LXRydW5rCisyMTk3MSBiNDY1Y2Q1MGNmMzY0YTk2MjM1YWIyMzdjNDU0ZDk5Njk3YWVmMTc5IGxlZ2FjeS10cnVuaworMjE5NzIgMGUyMjMxMmM0NzMzNGJiZDg5Y2I5ZGUzMjFiNTNjZDU1ZGUwNmM3YyBsZWdhY3ktdHJ1bmsKKzIxOTczIGY5OTlkMzYwOWY3NDY2ZGM2NDUyNzMyZmI3YTViZDU3M2YwMTU4MDQgbGVnYWN5LXRydW5rCisyMTk3NCAyNDAyMDcwZWUwMjRjMzJlMjFiYTVjMDc3OGYwMjc1NjRjZjA3ZTliIGxlZ2FjeS10cnVuaworMjE5NzUgMThkZjA5NzhkZTVkMmUxMTIyODc2ZGZkYzlkMjA1NmFlMjg2NjAyNiBsZWdhY3ktdHJ1bmsKKzIxOTc3IGIzMDdlNWE4YjRkOGQ1OTFmOWZlOTQ2MTg5MmMyZTNkNjFkY2E2MTcgZGVzY3ItYnJhbmNoCisyMTk3OCAwMTQ2MzlkYzY1ZjhjNzY0ZDkxNjRiYTRiNDg0ZmMyMzg1ZmQ3NzlmIGRlc2NyLWJyYW5jaAorMjE5NzkgN2NkMjJiZjU2ZDdiYzIxODFjNDMyZGU2NzdmNTA5YTdjYWE4YjIxMiBsZWdhY3ktdHJ1bmsKKzIxOTgwIGQxMTE5NjMzYTczZTljZGRhNmI3ZDFkZmM0MWNkNWM1OTBhZDVhYjIgbGVnYWN5LXRydW5rCisyMTk4MSAwMmI4MWRmMDQ4YmM1OWY2N2ZjNjlhNWMxMDZmMjNlNDJlZTY2ODY2IGxlZ2FjeS10cnVuaworMjE5ODMgYzJmYmI1OTQxZWU1NmZiOGE5ODU2ZTkzYjMwM2Q0NDdmMDljMmZkZiBsZWdhY3ktdHJ1bmsKKzIxOTg0IDRkMGVhNGMyMzg2ZDVkODhjNDMzNzE5MWYwYjE3NzBhOWI3NzgwZjIgbGVnYWN5LXRydW5rCisyMTk4NSAzZDUzYjU5ZjQ4ZTY2YzgzNWQwMjg2MzljODY4OGU2M2JhOTEwYTRlIGxlZ2FjeS10cnVuaworMjE5ODYgNjA0NzkwZDQ5M2ZhNzM1OWQ2NmU4MmY5ZDA4ZjkyOGZjZGIyZmE4YyBsZWdhY3ktdHJ1bmsKKzIxOTg3IDE4YTNlMGQ4ODA4ZTBmNzU1NjRiMTNjOTFlOGJjMTMwY2E3ZGJmOTkgcmVsZWFzZTIxLW1haW50CisyMTk4OCBkNTkxYTk2YWVkMDY0M2Q1OWVlNjc1NGJiZWZhNmNjY2JjZDUxYmY1IGxlZ2FjeS10cnVuaworMjE5ODkgOTY0NTVmNGFiYWRkMzNlN2JhNDExMDRmMGI0MjIyZTk2NzY3NTE5YiBsZWdhY3ktdHJ1bmsKKzIxOTkwIDRhNDMxOTUyNjc2YjU3YjAyZWJiMTdiMjI4Mzc5MDU3NTg1Yjc2Y2QgbGVnYWN5LXRydW5rCisyMTk5MSA2ZDk4NzRiYjk3OGZiZjVjNWZkOWY2MmVlOGUzN2FkMzVkNmE2ZGY4IGxlZ2FjeS10cnVuaworMjE5OTIgOTk4ZjgwNTE0YTEzMTI5ODhiMzU0NDk1ODBkNDQ0YzdiMDVmZDY0NiBsZWdhY3ktdHJ1bmsKKzIxOTkzIDc2M2JiNmZhZTI4MGZmNzAyN2VkNzRmZTAwZTdlNDU2NmRlYzI5NzMgbGVnYWN5LXRydW5rCisyMTk5NCA3MGI5YjZmNGU3OWMyYTgyOTY0Y2Y5N2U4OGU3YzI0MmQ0MTJmYzM1IGxlZ2FjeS10cnVuaworMjE5OTUgNDQ2MmM1N2Y2Yzk0OGRkZDhkMDI2YmNlNmNlNWQxNmRmY2E3MDZjYiBsZWdhY3ktdHJ1bmsKKzIxOTk2IDc0ZjA1MGY3YzM2NGRlZmI1OGMxOWE1NzhiNmY3NDVmMjZjNTNkODQgbGVnYWN5LXRydW5rCisyMTk5NyAxYjY4NjhlODlhMjNlOGYwYTBlMDdjYWIxZDhjZWVjMjc5NDJiMmY4IGxlZ2FjeS10cnVuaworMjE5OTggYThiMWFjYzdhMjFmNTRkM2Q1MmQ0ZWZlZjRlMDczYjg2NGM1ZGVmMCBsZWdhY3ktdHJ1bmsKKzIxOTk5IDgxMzE1YjZmOTQ2OTUxMDIwNzRmNGIxYzA0NzdmMzJjMzNhOGUwZGEgbGVnYWN5LXRydW5rCisyMjAwMCA0MTAwN2Q1MGNjYjczZDI3NTYwM2RjZTY0MDYzZjliZjE4ODRjYmIzIGxlZ2FjeS10cnVuaworMjIwMDEgMjllNjYxYzUyYzBiNTVlOWI1OGJiYjE3ZjAyNTZhN2ViNGZlZTlmNiBsZWdhY3ktdHJ1bmsKKzIyMDAyIDBjM2FkNTAzYWQ2YzQ5MjAyODFlMzZjZjllMzk4NTM5ZjlmMTk0MmIgbGVnYWN5LXRydW5rCisyMjAwMyBjMzA3MWJkNmE3MTMzMThjYjBhYjc5ZWY5NjlmYzMzZmQ1YzMwMDYxIGxlZ2FjeS10cnVuaworMjIwMDQgMTA3MzI2NTE1NDI1ZGI3OWE5Mjk0MmIwNTY5MDViODE2YTg0ZTc1YSBsZWdhY3ktdHJ1bmsKKzIyMDA1IDY5M2IzOTgzMWY3MTgxMDcyNTU3NDZlMjAxNDViNTQ2NDRjZDkxOTcgbGVnYWN5LXRydW5rCisyMjAwNiA1MDAwNGJlZDRlNjVhOTE2YjNiNTE1MjM0YTdhZjliOTUzM2NhZWNiIGxlZ2FjeS10cnVuaworMjIwMDcgMzE1YjNjYjEyN2MwNjIyMWQ4NDJlZWFlZGI1YjAwMDE4NDIxMTBjMCBsZWdhY3ktdHJ1bmsKKzIyMDA4IGNlYmI0ZTE4NzQ0OTlkNDgzMDU3NzAxMTU1MDJiODYyMmM2NGFlM2MgbGVnYWN5LXRydW5rCisyMjAwOSBkYzliYWY4MGM0NWFmZDkyNjc2NzlhNjU2NjNkOWUxYWE0N2RkYjEwIGxlZ2FjeS10cnVuaworMjIwMTAgNDY3N2QyZmYzMTUwOGY1ZmE2YWFiNjQwYzU4MzRmNTU5MDYzM2Y0OSBsZWdhY3ktdHJ1bmsKKzIyMDExIGE2MzYxYzJlNTA0NGFjZDQ0NzFhYTg1NDljM2FkMDRjZTEwZTk5NzggbGVnYWN5LXRydW5rCisyMjAxMiAzM2Y4MjA4MDU1OWUxNjk4ZDQwNzkyMzkyMmM0MGMxN2FlNmFhNjk2IGxlZ2FjeS10cnVuaworMjIwMTMgM2FhODdmMzRjYWIwMWI2NDRkMjYyMmEwMzkwZjEyNjFkM2M5NDk5ZiBsZWdhY3ktdHJ1bmsKKzIyMDE0IDZmOTI0MmQ4NzA1OWU4NGZhOGE4YWE2N2VhZTQ5YmNmZGVkNjI2NjcgbGVnYWN5LXRydW5rCisyMjAxNSA0MDkwMDYyMDI5M2U2ZDZkY2MwMWNkNWRhY2ZlMjI5NjAzOWYxMWYzIGxlZ2FjeS10cnVuaworMjIwMTYgYjgwYWM4ZTMxYTgwMmVmZTc0OTYwZDMzODc1MjgxMjQzMzAzNzU3MyBsZWdhY3ktdHJ1bmsKKzIyMDE3IDdjOTI4MTE2YmFhMDBkZTBmM2QxYzI0NjUwNWViNGEzZWY4OWU4YWUgbGVnYWN5LXRydW5rCisyMjAxOCAwODFkOTZmYmNmNDMyY2JiNzUxOGRmZTc2MGQ1N2MwZjFiNjVlODBkIGxlZ2FjeS10cnVuaworMjIwMTkgMWJjMWZkZjE0ODJiMDZjNzdmYWNhNTYwYTVjMmM2YjZjYjZjNWFhNSBsZWdhY3ktdHJ1bmsKKzIyMDIwIGZkYjM4OGYyZGY0ZWFhNzMxOTBiNDI1MDE4NDU0ZTBlOTFkNGZlYjYgbGVnYWN5LXRydW5rCisyMjAyMSAxMzJjNGJmZGJhNzQ4MDE4Y2QwNjYwZTBjOTIzNDljMjc4OTM5ZjI4IGxlZ2FjeS10cnVuaworMjIwMjIgMTMxYTlmNzVlMjU4MmRkNTRlZjZjMTNkYTk2NTY1NzBjZTVmMmQ0OCByZWxlYXNlMjEtbWFpbnQKKzIyMDIzIDNjYzY2NzUwNjg3ZDVjZTgzNGU2NTE4ZGQ2ZjNmNTFhMGQ5NWRiZmUgbGVnYWN5LXRydW5rCisyMjAyNCA3ZTUyYmY1MmFlMzM0ODdkYzQ3NWYyMDM0NjM4ZmM1YmM5MDc5YzZlIGxlZ2FjeS10cnVuaworMjIwMjUgMmRlYTQwZTQwZDlkNTczZTUwNjdhNWM3NjBlOTkwYTM3NTI0ZDBjNyBsZWdhY3ktdHJ1bmsKKzIyMDI2IDAzMzA1NjAyYmE5Yjg1YjNiZmE4MWEzMzdiMjZkNDVlNGNiOGE0NDggbGVnYWN5LXRydW5rCisyMjAyNyA1ZTBhNDBjY2I5ZGE0Y2ZjOTVhNzI3ZTU0MGEwYjNlZGM0OWYwNmZkIGxlZ2FjeS10cnVuaworMjIwMjggYTg1NzVmMzU4YjlmZGY3ZDcwYTU0YzEzNTRlOWFhZTgwZjBhZDdhZCBsZWdhY3ktdHJ1bmsKKzIyMDI5IGFiOGFhNDMwMjEwOTkxMzIyNmUzMTdmMDdhNzkxNjVkZTMzZWM3YmEgbGVnYWN5LXRydW5rCisyMjAzMCBjMDMyYWFmNmM4MTIzMjBkZjIxMjE4NTA4ZGZkMzk2ODA3OTk3MDQwIHJlbGVhc2UyMS1tYWludAorMjIwMzEgYTFmNmZkMDEyMDVmMDIyY2NlZTMwMjZkZjBlNWJhOGYwZGMwMWE2YiByZWxlYXNlMjEtbWFpbnQKKzIyMDMyIGU2NmQ2NDdiNzMyZjIzZjc1YjQxYTdlYmVlODU3OTY3YjFiNjY5Y2EgcmVsZWFzZTIxLW1haW50CisyMjAzMyAxYzVkMjU2YjEyNWE0YzQ4YTA5ODNjZDI4ODBlZGFmYmRlNGNiZWY3IHJlbGVhc2UyMS1tYWludAorMjIwMzQgMDQ1ZjU1MTM1YWQwMDRhNGNiYjFmZWQ3ZTU1MzU4ZGFjNWNkYzA1ZCBsZWdhY3ktdHJ1bmsKKzIyMDM1IDg3NmFlY2VmNjQ4M2YzNGUzOTUyM2NjODkyYTgzMmMwNzkzMzJjNWIgbGVnYWN5LXRydW5rCisyMjAzNiAzZTVjZTk5NDU5ODYyYTIyMjc2OTY4NDJmNTFlZWI3ZGM4NWZkZTFjIGxlZ2FjeS10cnVuaworMjIwMzcgZTE0NjQxNDNjNDYzMzA2MjQ0NjRiZGVmOWFjMTQ0NzgyMDc0Zjk4ZiBsZWdhY3ktdHJ1bmsKKzIyMDM4IDEyY2JjOTQyZjU0OWQ1MzhlZmZmMDVkOTc2Y2ZhNjcwNzAwOTY4MTYgbGVnYWN5LXRydW5rCisyMjAzOSA3N2ZkMjBiY2M3NjYxYTcwYjg0YjViMTRkNDNiYWNmOGEyYTliNDJhIGxlZ2FjeS10cnVuaworMjIwNDAgNDNhYzE4MDRkMmFhY2JkZGNiNWM5Mzk4Yjg5OGU1MTMwZDQ3NmMwNCByZWxlYXNlMjEtbWFpbnQKKzIyMDQxIGVmMjAzMWM1NDg3NTc2MzI0ZDY3ZjM2NzFiOWQ1MWI4NDNmMDU4NmUgbGVnYWN5LXRydW5rCisyMjA0MiA1MzMxZjQ3MDU4YTE5OTEyMzIwMWEyMWZmZGMyNzQ3MmJlZmJjNDJkIGxlZ2FjeS10cnVuaworMjIwNDQgMmIxNjUyNmEzNWE0ZGUxMjFlYjdmMWEyZjZlNWY2YzY4YzUxMWMyNSBkZXNjci1icmFuY2gKKzIyMDQ1IGY1MmMwODNiNTU4ODE2ZTEzYjYzNTlmZjhlNzQ3NDQ3MDdiZjIzMWUgZGVzY3ItYnJhbmNoCisyMjA0NiAzMTQ3ZWZlMzFlYjg5ODIxNTM2OWNiNzFkMWE4MTBiNjlhZWJjNTI2IGRlc2NyLWJyYW5jaAorMjIwNDcgZDk3MmNlYjRkYzA2NDBjZjA1MTliNWQzODI2NzVjYzkzNDhjMmQ3NSBsZWdhY3ktdHJ1bmsKKzIyMDQ4IGQ2NDYyOGNjOGZmYzhhODZkZmY3M2ZjMTNiNjc1ZjNkNTNhY2E0NjIgbGVnYWN5LXRydW5rCisyMjA0OSA2ZjMwMWIzY2YzMjNlYzkzNTQ5YzY4ODZmMDFiMDViODI5ZTc1ODc0IGxlZ2FjeS10cnVuaworMjIwNTAgNGVlMWZlZTFkNGFkYjc0MzA0MGJlNWM5YzY0YzhkNDU3ZDcxYjFlZSBsZWdhY3ktdHJ1bmsKKzIyMDUxIGQxNjY5YWY5ZDBlYzUyZDM3Yjc0OTVlMTNjMzUzMGQ2MTNlZTUxZWIgbGVnYWN5LXRydW5rCisyMjA1MiA3MzQzNjIyZjJiODVkMTQxMjRhNGMzYjc4ZTk4MGU2MGM1YjliOGU1IGxlZ2FjeS10cnVuaworMjIwNTMgZDNkOWNlYTIzMTU2NjlhMjFlNzRlNGU4Y2EyMmE2ZGMwMWYwNTE0MyBsZWdhY3ktdHJ1bmsKKzIyMDU0IGFlMTljNjk5MDc0OTYyMGIwYWU5MThhNzg3ZTcyMDQ2MmMzNmRhYmUgbGVnYWN5LXRydW5rCisyMjA1NSA5YWMxZDM1ZjgxMzY2Y2UyYjI1NGU4MjJiNWFmODhlYmJjMmUxYTE2IGxlZ2FjeS10cnVuaworMjIwNTYgZWE4ZTk2M2Q5ZTY3MjQ0NjlkY2Y2MzYxNjAxYmE2ZjFjMjc5OWRhMSBsZWdhY3ktdHJ1bmsKKzIyMDU3IDZmNTkwMzJhZjE1OGYxODU2MTQ2MDVlOTNhMGU5NjM1MzA5YzdlYzMgbGVnYWN5LXRydW5rCisyMjA1OCA4MTMzN2ZiYTdkZGJlMDU5YjA5MTgyZjE1ZjhkZjE1Mjc5OTlkNDQzIGxlZ2FjeS10cnVuaworMjIwNTkgYzA3NjU1ZjcyNjQ3YjBkZmQ5NDQyZGY2MDJkYzJiMmVhYjliMTgwMSBsZWdhY3ktdHJ1bmsKKzIyMDYwIGE1YWFmNjhmZmNkYWFhYmM5MTg3ZGRhYWFlNGEyNzg2OTNjYjJkM2QgbGVnYWN5LXRydW5rCisyMjA2MSA5ZWNjZjc4ZmVhMWFjMDNlYjU4OWJjNzkwNjFmYjhhNjNjNGI5ZjBkIGxlZ2FjeS10cnVuaworMjIwNjIgNDMyNDU3ZjAyMjg3ODQxMDk2YmJmZjQxZDVhZGFkYmQ3MzJhMmY2NSBsZWdhY3ktdHJ1bmsKKzIyMDYzIGNiNzYxMTdjMWI0YmI4MDA5YjM5ZTRkODE4MTE2ZmIxZWU3NDczOTUgcmVsZWFzZTIxLW1haW50CisyMjA2NCAyNzYzNmM5MWNiMjdjNWExMDU0NDg3NGE2NTFhZTIzNmVlMDM3YmYxIGxlZ2FjeS10cnVuaworMjIwNjUgMWIwOWE5Y2IwNmQ1OWY1MDAwZTMyN2RkMzdhZGEyN2FlZDZhM2I1MCBsZWdhY3ktdHJ1bmsKKzIyMDY2IDNjMTJlZWU3YmJkNDIzNjQ3NmJhYzQ0MWE3Yzc0YTM1YTAxOGIyMTIgcmVsZWFzZTIxLW1haW50CisyMjA2NyBhMzU2NmVlNWIxZjk0ODQ0NGQ5ZjRiNmEwNDA1Mzc1MTY0ZjQ4N2MyIHJlbGVhc2UyMS1tYWludAorMjIwNjggMTExMTJiNzM2YzdiNWFjMGUyN2FhZTdlNDA0MWQxYzc0Yjc3ZThjOCBsZWdhY3ktdHJ1bmsKKzIyMDcwIDEyYjRiYzRhODA0ODhlNTgzYTMwMDE2N2VjZGE0MDNkNTRiZDJkNmYgZGVzY3ItYnJhbmNoCisyMjA3MSA0MDgxYjU2ZjIwZmY1OWJmYjExMzU2NDRhOGJhMmVlYTEwNjQyZDJjIGxlZ2FjeS10cnVuaworMjIwNzIgMmRmZmEzZDNkOTRmZjFhZGEyYjdkZjAwYzUwNWQ4ODNjZjE1Nzk5NyByZWxlYXNlMjEtbWFpbnQKKzIyMDczIDBlMjEyZTg4ZDMzZDA5MmQ5ZDQ3MTY3ZWU2YTc0MTYyMmIwNDU0NTkgbGVnYWN5LXRydW5rCisyMjA3NCA0ZDllYmVlZGJkMDQ1ZmUxOGE5N2RjNDZhNTFkMGViMjZjYWVmODFiIGxlZ2FjeS10cnVuaworMjIwNzUgOGM0MDJhZGVlY2NiYjViMDNhYWU2ZGU2ZjNmY2MwMDBjNjdjMjkyZSBsZWdhY3ktdHJ1bmsKKzIyMDc2IDBiOWNlYTYzYmNmY2RjYzMzYzk4NDI5OTQzNzQ2ZWM2OTkwZjVmNTkgcmVsZWFzZTIxLW1haW50CisyMjA3NyBmNWUyNWZlNDY2YTQxOTFkZDVkMGQ2MjMxNzc5OTI0NDZlZWY3MWVmIHJlbGVhc2UyMS1tYWludAorMjIwNzggOTJlZjM4YjAxMzQ2M2IyNjNlMzc5YjU1MGUwZjVjNDljMGQzMGUwYiByZWxlYXNlMjEtbWFpbnQKKzIyMDc5IDBjZTM1ZTdkNmUzMzY2MzUzNmNjY2I5OWEwNGVkZDU0N2VkY2VjNDkgbGVnYWN5LXRydW5rCisyMjA4MCA2NDM0M2ExMjcyMDgzYzA1MGNjMmVjNmI2OGE1ZjY1YWMxOTRjMjg4IGxlZ2FjeS10cnVuaworMjIwODEgMjI0NTZkMGVlNzM3OThjNDcyMjY2M2Y2Nzc0ZjFiOWRkODYwNDQ4ZSBsZWdhY3ktdHJ1bmsKKzIyMDgyIGM3YmI5NTYzYjE0OTgwMzdjM2EwMmJmZWVlYjczMzMzYTUyM2EwMTIgbGVnYWN5LXRydW5rCisyMjA4MyA5YjI5MWNhNjU0NmM0YjRmOTI0ZmU2ZmMxYjJlYzlmZjI1MzZkY2M2IGxlZ2FjeS10cnVuaworMjIwODQgZjEyZTFhNzY2YTE0MmQ1NDc1NTQ3ZGQ0MzU3ZDcyMTYyNTI5NmEzNyBsZWdhY3ktdHJ1bmsKKzIyMDg1IGFhYWZjODUyYzJkNTNmOGQyOTI1MmY3N2U4OTM4ODQ3YTUyMzA2OTIgbGVnYWN5LXRydW5rCisyMjA4NiBmYjgzN2M1YWU1ZDNmMzZiMTg2OWVmMzA5MGE1NTkwODUwYzVkMDgwIGxlZ2FjeS10cnVuaworMjIwODcgNWJkYmU2MWEwYzI4YmIyYzNmOTYwNTg1MGZkYmQxMGQyYzI3MjQ4YSBsZWdhY3ktdHJ1bmsKKzIyMDg4IDU5YjdlOGVjZmI5NjY3MzIxZDI5ZjRhMzM3NmJjYjY1MTQ0YTI3NWYgbGVnYWN5LXRydW5rCisyMjA4OSA3MWZlYWU3YmY1NjA5NGJmMzQwMTcxOTRjZjBhNmM5OTkxYTIxYzAyIGxlZ2FjeS10cnVuaworMjIwOTAgYmRiYjdjNGRjNjNhZGM1Nzc2NzUwYTE1ZDJkZDZiNjMxMDFkZTZmMyBsZWdhY3ktdHJ1bmsKKzIyMDkxIDIyMTU1YTcxODI1NDE1ZTczYmY4NWFhOWUyZTE0Nzc2MDgwNTYyZjMgbGVnYWN5LXRydW5rCisyMjA5MiBkZWFkOWZhYmJlZmI3YjU3YTAxOWVjZWM0ZTk1NTQwZjAxYTBjNWY1IGxlZ2FjeS10cnVuaworMjIwOTMgMGIxNjI1YTllODlhNzJjZmVjNjdjZjdjZWEyODJjZjcwZTVlMTM0YSBsZWdhY3ktdHJ1bmsKKzIyMDk0IGQyMGE0Y2EwNzA1YzFlYWQ5MzA5ZDM2YTI2NGEyYWE5NGUxMGJhODUgbGVnYWN5LXRydW5rCisyMjA5NSAwMTMyYWY2MzUwNmI5Y2RlMGQ3ZDc2YzcxZDkyNGZhYWQ3ZjJmZmRhIGxlZ2FjeS10cnVuaworMjIwOTYgODU4NDIxN2RkYzhkNmQyMDgyMWZhMjc5ODc3YzNjOTFjODc3MDM0YyBsZWdhY3ktdHJ1bmsKKzIyMDk3IGNiYWJlNTIyYjhmMTY3NmU1ZjdhODFlMjcxYWE4MjNkMTIxMTU0YmMgbGVnYWN5LXRydW5rCisyMjA5OCAyMmU4MjMxNDYzYmE2YjIzZTE1ZTRkZGExNDVjNmRjOWFiYzZjZjY1IGRlc2NyLWJyYW5jaAorMjIwOTkgZWRmMDU4YjE2ZGRmM2ZhZDNmMjI1NTBkNDVkNTZiYjI0YTQzY2YzOCBsZWdhY3ktdHJ1bmsKKzIyMTAwIGNiZmRmNjIzYzI2NmY2OTNmZGEyOWU1NTFjY2ViMTRiODdlNWI0NjMgbGVnYWN5LXRydW5rCisyMjEwMSA1YWYxZWU0MjI1NzUyN2I1MjRhZDZhZDljM2VmNzFhMGFjMzlkNDYxIGxlZ2FjeS10cnVuaworMjIxMDIgNzYyOGFhODE2YWRhOWRhOTY4YTI0YzM1MzRkMTBiZTliMzIzZmJmMCBsZWdhY3ktdHJ1bmsKKzIyMTAzIDI5MTA0MTczYTA3MmViZDYzYzFjZGZlNjcyY2RmY2FhMzA4NzUwMWQgbGVnYWN5LXRydW5rCisyMjEwNCA0NDNhODYyMmU4NTFhYmNmNjJlMjg2NWZhY2MyNTkxN2ZhMDI4NzY0IGxlZ2FjeS10cnVuaworMjIxMDUgNzljNjc2ZjliMzRhOTE0MGI5ODQ3ZTc5YzA1ODE5YTA1MGIxZGI4MyBsZWdhY3ktdHJ1bmsKKzIyMTA2IDk3NTNiMDI2OWYzYWMwZGQ2ODQwZWM4YTIxOTQzZmYyZWJmNDk2YzIgbGVnYWN5LXRydW5rCisyMjEwNyAzNGYwMWM2Y2M4MTg2MTM3MmVmOTg5ODBhYWNkMzgzNzk2YmJkOGNmIGxlZ2FjeS10cnVuaworMjIxMDggNTViNDViNDdmYzQ4NzhmYmY0NTQ0OGRjNzM3OTM4Njg5YzJiNGM1MiBsZWdhY3ktdHJ1bmsKKzIyMTA5IDM2ZTdkMWVhYmQ5MjFhYjA0MzRlNzUyMGRhZmFjMWQzMTk3YjRjNDggbGVnYWN5LXRydW5rCisyMjExMCA5MTQxMjJmYmVhZDJkYzJkZGJhOTk4YjNkZDFhYzQ1MzRlMGMzODliIGxlZ2FjeS10cnVuaworMjIxMTEgZjYxZGY4ZjBjYjQzOGE2NzUzOTRlNzA5OWFhOTQzZGUyNTkwZGQ2NSBsZWdhY3ktdHJ1bmsKKzIyMTEyIGRlYWY3YjEzOWJjOGY0YmJjMGM2Y2QzZWExODUyZjczYWU3ZGY0OGUgZGVzY3ItYnJhbmNoCisyMjExMyBmMDgyMTg5YTQ0NDI5NGI0Njg5OGY2NWU1YTlkNmRkNWI1MzYxODM5IGRlc2NyLWJyYW5jaAorMjIxMTQgNTEwZjdmNmE4NzdlY2Y3NGI1NjNmZWZkODZlNDljNDBiMTQ2ZWQ0ZiBsZWdhY3ktdHJ1bmsKKzIyMTE1IDJiYzY0ODkzMmQ0NGZiMTUzM2RjNDY2Yjg3MGFmNDBkNDQ5ODQ3N2UgbGVnYWN5LXRydW5rCisyMjExNiBiNzMyNjkwZjU2MWM2ZTc2NWI1MDM3NThhMGUwZTk1NmQzYmM1OTlkIGxlZ2FjeS10cnVuaworMjIxMTcgZTdjM2M5YmY1MmIyN2Q1OGVhYjZjOWJiZjFhMTU1MGRiM2Y3NDFkYyBsZWdhY3ktdHJ1bmsKKzIyMTE4IDQyZGQ2MjUxY2MzY2M0ZjAxYmQ0MTFlYjA5MTMxOWMzMzc0Mjg0NTIgbGVnYWN5LXRydW5rCisyMjExOSA3MmEzNjkxZjEwNzFmYWYyZTI2MTFiZTliYzFkN2JhMmI0YmZlNDdhIGxlZ2FjeS10cnVuaworMjIxMjAgNTJiZDllMWRiM2Q5MGE1MjE2OWVlMWEyN2UwNmFkN2JmZjAzMjRmNyBkZXNjci1icmFuY2gKKzIyMTIxIDUyZTkyY2ZhYjIzNzZhM2Q0NTBhMDhkOTg0ODgxYWExZGQyMzQyNzQgbGVnYWN5LXRydW5rCisyMjEyMiAyZjI3ODM4ZDhmYzU5NDI3NTg2MjQ4NmYwMzM1MDUwMTM4ZTA1NzQ4IGxlZ2FjeS10cnVuaworMjIxMjMgMmU0OWYwZTkyYmM1YWE1YzhiODZmZGU5YmNmMmVkM2JlMzJlYjBlNyBsZWdhY3ktdHJ1bmsKKzIyMTI0IDFlZmQ2OWJmMTg0YzM5MDg1MjNiMzkxODU3NzVhNWIxMmRjYjBiMmQgbGVnYWN5LXRydW5rCisyMjEyNSBmYTAyZjc5YmI0OTFjYzcxMTBmODc0YTUwNWFiMjI4YmI2MzZhYTMxIGxlZ2FjeS10cnVuaworMjIxMjYgMGFhMTkxNmNmMTAzNDkxZGM3YjZkNGVjZDg5YmJhZjVkNmYzNTg3YyBsZWdhY3ktdHJ1bmsKKzIyMTI3IDhlMmY2Mjk2ZmQ3YjRhNjc1ZDVjMGJhNmFjMDBhZTJmNmFjY2ZlYWYgbGVnYWN5LXRydW5rCisyMjEyOCBmNDlhMTJlN2UyNGE0MGEwZjQ3NDUzNDc4MjQyOTE4ZmZiMjQ2OGQyIGxlZ2FjeS10cnVuaworMjIxMjkgNGJmZDhhNWRhMGIxZGYxYjdmNzc4OWQ2NDE0NGFkMTNhNWQ2ZWZmNCBkZXNjci1icmFuY2gKKzIyMTMwIDIzZjU1YjlmNGJjNzQ0YjExMGY1YjU1NWY0NDE0ZDk0NTI4NzBiZjIgbGVnYWN5LXRydW5rCisyMjEzMSA0YThkZWQwODcyNjJmMmM1NjZlMDdhZGQzMGI2MWMxMGQ0NWM1NmEzIGxlZ2FjeS10cnVuaworMjIxMzIgMGRlZGFlN2JlM2FhMTA0NzFiYWMwZWU5N2M5NmU2ZGUwNjY1OWEzMyBkZXNjci1icmFuY2gKKzIyMTMzIDBmZGM1ZWViZTQyZDFjNTE4N2I5NjRjNmI1MTBiNzYxMTllMGM5YTEgZGVzY3ItYnJhbmNoCisyMjEzNCA2YzAxODVkZjcxNDdjMzk4MzA0NTJmNmM1ZmMzNDk2NmI4YTQwNmFjIGxlZ2FjeS10cnVuaworMjIxMzUgZGFiOTVjYThhY2ZjMmE0YTcwNjUyMDQ1Yzc1OWFhZjkzMzQzMTRlYiBsZWdhY3ktdHJ1bmsKKzIyMTM3IDQxOTA4NjkzNzc0Njc1YWI2YTAxZTg3OGJlYTlmM2JiMmM2NTQ4MjggZGVzY3ItYnJhbmNoCisyMjEzOCA2NTA5NzNlMjkyNmNhMWY0MDc4MmQxYTczMTJiZDA4MWNiNDE3NmQyIGRlc2NyLWJyYW5jaAorMjIxMzkgMDlkZjMyNTRiNDlkN2M5MzA2NTg1MzAyZmU4MTVhYjBiZGI1MzQzOSBsZWdhY3ktdHJ1bmsKKzIyMTQxIDE1NDFkNWM2YThmMTgxMjA4YWE3Mzc2ZTU3OGIwN2EwNzJjOWVlZGIgbGVnYWN5LXRydW5rCisyMjE0MiA5MDBlMzg1MjRiZjI5MWIxY2Q2YWVlMmUxM2IwOTg1OTZkZjM2NDdiIGxlZ2FjeS10cnVuaworMjIxNDMgNzE0OTE3M2U4ZWRjZGFjNmJmYjI2YWU1NTNjMGQwM2JhOTkyMjQ2MyBsZWdhY3ktdHJ1bmsKKzIyMTQ0IGY4NThmOTg3ZTc3MmEyOTIwMDZlOGY0NjJjZmQwNDVjOTU0YWM2YTkgbGVnYWN5LXRydW5rCisyMjE0NSA2YzIxZTkzOTRiNDRmNGZlMWVkODhkNjhiN2M5YTJhN2MxMzZkYjY3IGxlZ2FjeS10cnVuaworMjIxNDYgZmUzYmM0YTRhZDg0MzZlOWFlMWQ4YzUzMDkwN2MzMzAwNGZiM2M2YiBsZWdhY3ktdHJ1bmsKKzIyMTQ3IGE1ZTRkNGEzMGM5ODM4NTM2NzY5OWMxZDJjMzczMGUxNGFhNjIwZTcgbGVnYWN5LXRydW5rCisyMjE0OCAwMTNjZmZjZmQ4YTNiNDAxOWFhNjMyZDBjNTI1MjFkMTQ5Y2E4YWNiIGxlZ2FjeS10cnVuaworMjIxNDkgOTBkMDZjYmNlMjZhNGIwMTQ1Nzg5NTNjZGMyMTI3MjgwZTFkNDY4NSBsZWdhY3ktdHJ1bmsKKzIyMTUwIGUwMWQyOTYzOWQ4ZTVkM2M3YTU3ZTM3YzI3ZjVmNTUxOTRiNDY3ZGMgbGVnYWN5LXRydW5rCisyMjE1MSBhMDgxOTcwOGZlOWM3MmQ1OGI0ZmU2MTc1MDhhZjUxMDMxYTRiMjVjIGxlZ2FjeS10cnVuaworMjIxNTIgZjhmZGQ1MDgzYWYzNjU5MzgwZmQ1NTkxNGYwNWI1MjA5NmM2OGY2ZSBsZWdhY3ktdHJ1bmsKKzIyMTUzIDJiMTRmMTMwODI3NTUyN2QyYjRkNGVhMmU2NmEyM2I3ZjI2MjIwYzYgbGVnYWN5LXRydW5rCisyMjE1NCAxMzQ2ZWNmMzE4ZjI3N2QwYmU1MmNhYzA5NzVjNDNlYTMwOWRmNjFlIGxlZ2FjeS10cnVuaworMjIxNTUgOTMwNmRhZGRjMjZmZGFiNzg1ODBjZTA2OGM4OTFkZmVkNjFjNGIzZCBsZWdhY3ktdHJ1bmsKKzIyMTU2IDM4OGRmNDljMWMzODIyODI4YzM1M2FiMTkxNGU2ZDk2OTQ0NmViMzAgcmVsZWFzZTIxLW1haW50CisyMjE1NyA0ZGRjNWFiOWJlYzQxOWY2MzBjM2I0ZTc0ODRhYzc4M2JiZDQ0YzJkIHJlbGVhc2UyMS1tYWludAorMjIxNTggZjcyZDYxYjEyNDZlZTAxYzEzMTg2OGEyOWVlODkxNzJiZjllMmJjYyBsZWdhY3ktdHJ1bmsKKzIyMTU5IGU5MGE2NThhNThkNGY2MzNhZmExNjM4YjljMGMwNzNjYWY1YTE1ZDcgbGVnYWN5LXRydW5rCisyMjE2MCA0OGUwZmIwNTVjMzNjYWJhMjQ5ZTM3NWU0YjcyOTZjOTVlODg3NDlkIGxlZ2FjeS10cnVuaworMjIxNjEgZmVmY2MxZTgwY2VlMzU2MGFiNWE3MTI0Y2RjMTY3MmM3MGQ5NDAxYiBsZWdhY3ktdHJ1bmsKKzIyMTYyIDFkYjY5MDBhMDc4MzVhM2Y1YzNlOWVhODk0OTUyNzc0MjdkZmY3YTggbGVnYWN5LXRydW5rCisyMjE2MyBiNzYyMjIwYTYxNTlmYzMzY2MyZTc3MjE5ZmQyNGE4N2RhM2RmZTVmIGxlZ2FjeS10cnVuaworMjIxNjQgZjI4ODViMGRkYmFlYjYwYWNiMDYwOGViYjRhYTE4MjkzM2JjNjQzNCBsZWdhY3ktdHJ1bmsKKzIyMTY1IDQ3ODljMTJhODlmMWJmNDQzMjNiYjA3ZjNkODliOGRhZmNhZjQ2ZTkgbGVnYWN5LXRydW5rCisyMjE2NiBjZjkyNTQyMTAwMTVkYjZmOTY2NDFmYmJjOWJhMmU0NjlhMWRiYzlmIGxlZ2FjeS10cnVuaworMjIxNjcgOWFhNWQ2NmNkMTNkY2ZhM2QyMmU1ZGI2ZDgwODgwYjIyNjNhNGFkNCBsZWdhY3ktdHJ1bmsKKzIyMTY4IGVlZDhhOGE4ZjYyMmM4ZDk5ZDM5Y2M4ODI2YTAxNGM2MTQwYjlmMTcgbGVnYWN5LXRydW5rCisyMjE2OSBkNzU5MDEyMmY5YTI2MTM3MzExMzNhM2I2MmU2ZDRmNmQwOWM0OGI1IGxlZ2FjeS10cnVuaworMjIxNzAgOTMxM2I0OGYxMWMzZjhjNjdiZDI3Mjg1ZjkwNTExMDdmODU1NTI2OSBsZWdhY3ktdHJ1bmsKKzIyMTcxIDkxOWU2MGQ3NzMzNDJjYTRhYWJhMzkxYTQ5OWU1NWM2MjkyYzIxZjggbGVnYWN5LXRydW5rCisyMjE3MiBmOTQ2YjdmN2Q4MzE4ZWYzMDRkM2Y1NjVlNTJkOWRiMjk4N2MwYjliIGxlZ2FjeS10cnVuaworMjIxNzMgZWQ2MmFkMzA4MzRlYjBiNTM1NThkYTcxMWFkZjUyMTc2NjI5MTYzMiBsZWdhY3ktdHJ1bmsKKzIyMTc0IDFhZTcxODk3NmFjNmRjMTE4ZWIyNGJmMzQ3N2RlNGFiMmFkMjg1YjUgbGVnYWN5LXRydW5rCisyMjE3NSAwYzMwN2ZhMzQ0YjVjYTYzNTYzMTkxYTQ2ODY4N2RiMjM3MmNkZmUxIGxlZ2FjeS10cnVuaworMjIxNzYgYjAwZTdiMzhmNzdmMjc1MWY0ZDc1MGE3MjZjOWQ4ZGNlYjNjYTkzMSBsZWdhY3ktdHJ1bmsKKzIyMTc3IGJkOTcyZmE4NDFjNWZlYjZhY2Q0NzQwNWE2ODY0NDk0NTQ4M2RmMDAgbGVnYWN5LXRydW5rCisyMjE3OCA5YzNkNTM5NWUzZmQ5MzA5MzkyYmM2ZmQzYjNmMmViMWQzYTM5NDI1IGxlZ2FjeS10cnVuaworMjIxNzkgZDE0NGM4MWVhZjQ0NjgwZjk1MDc2YzgyNTMwNWRjZTJhYzE5ZWI5NSBsZWdhY3ktdHJ1bmsKKzIyMTgwIGRjNGJlN2JkNjc0NjEwNDFlMDAxNjhjMjU0MjYyMzU0ZTRmOWUxOWEgbGVnYWN5LXRydW5rCisyMjE4MSA2NTFlNjM5NDIwOGM4ZDkxZDgzMmJjYjVlYTg4Y2ZiOGU4YWVmMTNiIGxlZ2FjeS10cnVuaworMjIxODIgMWU2ODZiMDg5OGEyZjY4NzNlZjNlMWJiOWZlNjMxMGUzMzM3NjllYiBsZWdhY3ktdHJ1bmsKKzIyMTgzIDQ3MWE5MDE4MTI5YzNmZDE5MTkxZDY3N2VmNzUwOTUwN2Q5Mzg2ZjAgbGVnYWN5LXRydW5rCisyMjE4NCBmMWNmMmE0NDQxNzQ5ZmIyMDAyMzI5ZWFkZmM3MWJhMDI4ZGM5NDRjIGxlZ2FjeS10cnVuaworMjIxODUgMzQyODQyMTYyMDFiZWE5OTM1YjQxODIzYzFlOWQxOTM1ZWFiNmMwYyBsZWdhY3ktdHJ1bmsKKzIyMTg2IDNkZDhlNjRmNTEyZTg0YWZjNGMzODhiZjQ2NTRiODdiNGNmYjc3MTkgbGVnYWN5LXRydW5rCisyMjE4NyA5ZTRjMTI2NzNmYWI0NGZiZTUyNmVkYmM2YmJjZTA5MmQ0YzliZTAzIGxlZ2FjeS10cnVuaworMjIxODggZGFjOWNjYTQ5MDEyMWMxYWI2MGE1MWJhZmNhZjcyYjBkN2Q4MDlkZCBsZWdhY3ktdHJ1bmsKKzIyMTg5IDhiOWQ4N2FmNjFlYmRiZjY5NTNiZmEwYThhZTVlYzQzNDUyYTkzYmYgbGVnYWN5LXRydW5rCisyMjE5MCAxMTNmMGI1NzQ0YzQwYzkxZjA5MDUxMDQ1ZjQxMTJhNjBmNDlkMjE3IGxlZ2FjeS10cnVuaworMjIxOTEgMDA5MzUwMzFiMzczYzU0OTA4NmUyZDAzNmRjNzYzN2RmZDQ4Y2Y4NSBsZWdhY3ktdHJ1bmsKKzIyMTkyIGJhOWU0ZjU1MTMzZjkzYmUzNjQxMmIxYzM5NmFiZGRjMmVmY2M5ZjcgbGVnYWN5LXRydW5rCisyMjE5MyA5Zjc4NzU5YTUxYjBmNzNjODM4Zjg2YzUzNTA5MGIyZjgwZmFkZDI4IGxlZ2FjeS10cnVuaworMjIxOTQgNGY0ZDgzMDNkZTYwY2Y2YzA2ZmRlNGY4OTgyZDdiNWUyZWEzMjFiMSBsZWdhY3ktdHJ1bmsKKzIyMTk1IDA4Y2Q4MWNkZmZhOWRkMmY0ZDY2OTM5MjhlMzY3Zjc2ZDA4YzM4NWEgbGVnYWN5LXRydW5rCisyMjE5NiBhY2NmMTkyNTQzMWM3NzBlODMxZjE2YjU3NGQ1ZGRlN2JiMWVjYjViIGxlZ2FjeS10cnVuaworMjIxOTcgMmIxMWQxNjZiMDdiNzFhMGM1MDc0NTYzOWY5ZTllZjJmZDg3MzI5MSBsZWdhY3ktdHJ1bmsKKzIyMTk4IDM2MGNlY2U3NjEyMzU1ZTNmYWU0YmY0YWMyOGJiNmQxMWEyMjBlYWIgbGVnYWN5LXRydW5rCisyMjE5OSA3ZmExZjg3Y2E2YjJkM2Y2MmFiOGE4NzhjZmQxZDQyMDBhZDgxNjYzIGxlZ2FjeS10cnVuaworMjIyMDAgYjBhYWY3ODBiY2E2NmM3ZGY0MWM4ZWQ3OTIzMzkyMmFiYTg2NTc2YyBsZWdhY3ktdHJ1bmsKKzIyMjAxIDExNGE5MGE0M2RiN2U5ZTgwN2JmZDQxNTI0ODFmY2Y4NjRiMzE2Y2UgbGVnYWN5LXRydW5rCisyMjIwMiA4MDUwOTBjZTMyOGEwMDE3YzhlZTA5Mjk3MGM3OTFhZTI0ZmEyY2E0IGxlZ2FjeS10cnVuaworMjIyMDMgOTA1OWU3YzFkOGIwMThiN2QxNzE1ZjdlNWQ4MjFmNTY2MWVkYjRjNSBsZWdhY3ktdHJ1bmsKKzIyMjA0IDlmYzRhNWFiYjM2OTQzYWZmM2UzMzRmYzdiYzljN2M0NzdkMWU4YmIgbGVnYWN5LXRydW5rCisyMjIwNSBhZTQzZjk5YjQ3ZTFlMjc2NmJkMjk4ODY3NTNjZWVjYWYyZjY2ZDI0IGxlZ2FjeS10cnVuaworMjIyMDYgYTJiMzU4N2Y1OTJhOGY1ZGRlOWRlN2M2NGQxYmMxNzNkNTkwYzQ5YyBsZWdhY3ktdHJ1bmsKKzIyMjA3IDhlYTYwZTJiMGYyMTllNDIzM2JmYmE1YmVhMTY4MTQwZTEwODU3ZDggbGVnYWN5LXRydW5rCisyMjIwOCAyOGYwZWE4ZDYyNzgxYjRhYzJjNTRlOGZiYWFjZTQ5ZjAwNzdiYjMwIGxlZ2FjeS10cnVuaworMjIyMDkgMmFlMzdjZmIxODlmOWU5YWI0OGIyMjUzZjVlZDk0YzY5MjY0YzgyMCBsZWdhY3ktdHJ1bmsKKzIyMjEwIDE5YTNjNmFmNDM3NDQ2NGUwMTcyYzE2ZDY0OTVhNGVkYWM2Yzk4YmEgbGVnYWN5LXRydW5rCisyMjIxMSBiMTZmOGQwMWM1MWUzYTMzYTgzNTgxNjVlNWZhZTQyZGQ1NmM0OGQ0IGxlZ2FjeS10cnVuaworMjIyMTIgYzk0MmE5ODIxZDA5OTczODZiNGU0YTVjNjlkOWZkZGZmZWUzNDAwMiBsZWdhY3ktdHJ1bmsKKzIyMjEzIDgxMTE0MjA5ZWU4ZWVlODlhNjM5NjI4ZGQ1OTE1OTY3M2E4OGM3NTIgbGVnYWN5LXRydW5rCisyMjIxNCBjZWZkY2Q2MGE4YjJiMDE2NDRjZWM3ZGY2MmU0ZTE0MTNkZGJlMTllIGxlZ2FjeS10cnVuaworMjIyMTUgZjViN2ExZWM0YjlmMmIxZDQ2N2Q1MTY0OWE4MTlhYzUwOTVmMmU2YiBsZWdhY3ktdHJ1bmsKKzIyMjE2IDFiYzY3Y2Y1N2QwYWI2YTZiNzMxNjM4ODA2ZDZkOTNiMDZhMTVhZDggbGVnYWN5LXRydW5rCisyMjIxNyBmZTIwZDFjZmVjM2Q5YTNjMzllMWZiMWUwOGQ2YmZjY2U1NGY3M2E2IGxlZ2FjeS10cnVuaworMjIyMTggYzFkYWE5NGMyMWQ4MzBlMzJlOGFjMTg1ZjU5ZGEzY2EzOGM1MzFjOCBsZWdhY3ktdHJ1bmsKKzIyMjE5IGJiODVjY2JkNGZlZTU1NDNkZTkyZWY4YWViZDlmOWY0NzRjNzFjMDcgbGVnYWN5LXRydW5rCisyMjIyMCA3ZDI3ZTM4OGVjNmM5ZWQwMjM1MTU5ODZhOGExODZkNTJkMzZjYTgyIGxlZ2FjeS10cnVuaworMjIyMjEgZWM2NzZlMTQwNzNkN2ZjZmE1MjFjZDg4MWJmZDQ1OGU3NzE2OWUyNyBsZWdhY3ktdHJ1bmsKKzIyMjIyIDUwZGE2MzczNDFhZTUyMmZiYTJhY2I1MjVhZWMwMWYwZDUzZWVlMzYgbGVnYWN5LXRydW5rCisyMjIyMyAwMzg0OTk0NjY3MjcyOGYxYTdjMmFiMDdkYTJmMDJlNWJkNjFlOWE1IGxlZ2FjeS10cnVuaworMjIyMjQgMDc4YzE5NjFlMTc1MTQ2MDBkNjVmYThjNTIxMmM2NGFiMTg0ZDBhNSBsZWdhY3ktdHJ1bmsKKzIyMjI1IDgyMWUzNTcwNmMwNzE1OWY1YjExMjIzMWJlOGIzNzQ3ZDFjNmI3NzEgbGVnYWN5LXRydW5rCisyMjIyNiAzMGFlM2FmZjAzYmQ5ODQ4OTlmNWE3MTAyOTVlNDNjOWQ1MWZiNzhlIGxlZ2FjeS10cnVuaworMjIyMjcgNjAwYWM1ZGJjNjY2NGY1NGI2MzE1NjMyNzIwNGI5NjQ2ZmVlMDAwNiBsZWdhY3ktdHJ1bmsKKzIyMjI4IGU1NzU0ZjA0OGYwYmMzNWZiYzAwZTQ1ZmY1MTQyZjJkMzMzYjRkNDcgbGVnYWN5LXRydW5rCisyMjIyOSBiYWQ0MDhjN2Q5ZDc4NTQwNmNkNWE5YjY4MzI2YmY5MjNkMzgwNzA2IGxlZ2FjeS10cnVuaworMjIyMzAgN2IxYTA4MDQxNjFlZWQ4NzI0NWRiZWVmYmNiMTgxODc3ODM2OTAwMyBsZWdhY3ktdHJ1bmsKKzIyMjMxIDBhYjhmOTM3ZmY2NjViODU4ZGFkYmI5NzI5OTcxMzQ5YjRkZDlhODkgbGVnYWN5LXRydW5rCisyMjIzMiAyMzg3NmUyZDg0YjZmMWU1MTIyNTAxMGVlNWYzNTY1YzMyOWIxMmM5IGxlZ2FjeS10cnVuaworMjIyMzMgNjBhNzUwMDJhNzRjZmQwMmI1N2I3OWRiMWJkMzFmYmRlY2FmOGQwYiBsZWdhY3ktdHJ1bmsKKzIyMjM0IDk4MzE1ZjBlMWQyNmQ3NDI3ZjY3YjYwMWU2NWU0OGQyZWUyYTE5YjAgbGVnYWN5LXRydW5rCisyMjIzNSA2YjhiNjVmY2NiMDNkOWYxZmM4MzZiMWZhMTgxOTZmNThlOWU2OTlhIGxlZ2FjeS10cnVuaworMjIyMzYgMjYzZGNhZjAwZWVkY2UwY2YyYjZjYjRkMTkyNWRkY2MwODE5MzdiZiBsZWdhY3ktdHJ1bmsKKzIyMjM3IGU0YjY3MDVkYzg0ZjkwZGQxODUwMDUyNTg3YWY4NDNlNjk1N2Q1NmMgbGVnYWN5LXRydW5rCisyMjIzOCA5ZTU3OGZjYjhkZGFiNzNmZDEzMGNjMmFlMjA5NzY3Yjc5YWQ5ZDBiIGxlZ2FjeS10cnVuaworMjIyMzkgZDMyNjhkNjJlNDYyMjFkMjZkZGY4ZDk3N2M4MTJhOWQxMDA1NGM1OCBsZWdhY3ktdHJ1bmsKKzIyMjQwIGQ5MTVhMGVkYjJlYTMxMTFkNzM2YWQyMGRhYTdjMzIxZDEzODhlYWUgbGVnYWN5LXRydW5rCisyMjI0MSBiMTUzMDdkMjliZTdiYzRmZGVjODgzNjQyYjFiZTRmZjMyNjAwNWUzIGxlZ2FjeS10cnVuaworMjIyNDIgYzE3MjljZGMwNzM0MGNlNjIwZDRiZThkZTcyZDI4MGZhN2FmYmQzOCBsZWdhY3ktdHJ1bmsKKzIyMjQzIDNhN2Q2N2VlMTAxMTNlOGZiMjU2ZGM0NzE5MWQ0ZWIyNzI3ODQzYzkgbGVnYWN5LXRydW5rCisyMjI0NCA4MDNhN2ExNDQ4YjJkMWZhZmExNTQwMDc5MzJkZTg1MDc2NzBhNzNmIGxlZ2FjeS10cnVuaworMjIyNDUgMmQwYTA0ZTI3NTgxZThhZGJkY2YxYTA0OWU1MDNjMGFmNDU5MjhjNSBsZWdhY3ktdHJ1bmsKKzIyMjQ2IGY2NmNjZjJjNjNlYjNhOTNlMDJhZGZjOTBiYmM0NDhlODc3MmNkZTUgbGVnYWN5LXRydW5rCisyMjI0NyA0ZGY3MmVhNzhhZTgwNjI4MGMyZTdjNzY5MjRmZmM0ZDIxMWQzY2RjIGxlZ2FjeS10cnVuaworMjIyNDggOWE4OGU1MGJmMTE0NTZlMThlNWUwMDQwZGRiYzBkY2JiMDlkYTIwYyBsZWdhY3ktdHJ1bmsKKzIyMjQ5IGFkMmI4MDc1NWQyZDRjNmJkYmU0NzBiZjk4N2QyYTZhMmE3YjViZmEgbGVnYWN5LXRydW5rCisyMjI1MCA4ZDQ3YTIxZDk1ZTA0MjA3Y2M3NGI5NTQ4ZWYyMDgzOWVmMzNlMzdkIGxlZ2FjeS10cnVuaworMjIyNTEgOGU2MGYzMDAzN2ExZmNmOThkODU2YTIzYTVlMThmYjI4MWU2NGQ0MSBsZWdhY3ktdHJ1bmsKKzIyMjUyIDc0NTc3NGRiZWQ1OGU3NWY4YmFkNjIyYWZmYjg0NjdjYmY1ODc4ZTQgbGVnYWN5LXRydW5rCisyMjI1MyA3ZGI1YjU0MjNjY2Y5OTAzZGMxYjJmZDNmNWM4MzE2NzZmYjM3ZGNjIGxlZ2FjeS10cnVuaworMjIyNTQgMzUwNTBkMTg4YTZhYzFjMWM0OWZkN2Y5YzQ3OTU0YzdmZmU5OTQ0ZSBsZWdhY3ktdHJ1bmsKKzIyMjU1IGUyODJkNmIyYjc1OGU2NGYzNGQyNTIyN2NjNTQ5NTFkN2MyZWI4OTUgbGVnYWN5LXRydW5rCisyMjI1NiAyOGI2NDNiYWQ3NGQyYjY4NTA3ZWMzZWE2NmIyY2YzNzQzODIyM2MxIGxlZ2FjeS10cnVuaworMjIyNTcgMGM1ZTUxNjk0YjBmN2VmNGRmZjY0MDdhMzE2ZDVhMjllYzU4MzY4ZCBsZWdhY3ktdHJ1bmsKKzIyMjU4IGYyMDcyN2NjM2QwZjJmM2JmMTI0ZGFlMTg4ZjBiOWFjNWYyMzkxNzggbGVnYWN5LXRydW5rCisyMjI1OSAzOTY5ZmNiZjk1MDA4NmY0ZTY3MmUwOGY3YTUxNmZiZTVhNjRiZmZhIGxlZ2FjeS10cnVuaworMjIyNjAgMmJiMjQyZGM2OWQ4ZTQ5YTc2ZGJjMDE0YTBhZGIyN2VmZDYyYzE2NSBsZWdhY3ktdHJ1bmsKKzIyMjYxIDExYmJhMzBlOWMyODQwZTA0MzFlNDVmNzZiM2Q3YjFiNTNmMDg2YTQgbGVnYWN5LXRydW5rCisyMjI2MiBjOTBmMDAzNjEwOWQ0YmFhNzFhYzYyMWYwYjdlMTA4MTA0MmE4YTUzIGxlZ2FjeS10cnVuaworMjIyNjMgYTMwNzdmOTZkNDc4OTU5ZjJkMTRlNWNmYzkxYzBiYmIyODE3YzY0OCBsZWdhY3ktdHJ1bmsKKzIyMjY0IDY1ZmU2YjA3MjQ3YjAwNzA3YjVjODk0YTQ3YTg3Mjk4ZDI4MzBhMDcgbGVnYWN5LXRydW5rCisyMjI2NSBmOTQ5NDEzNWI1NzkwOTVkMGJjYmQyZWQ3Yjg2NmFkMWM5N2U0MzU5IGxlZ2FjeS10cnVuaworMjIyNjYgYzk3OTYyNWZlYjQ5Njg5MWU1NDI5N2ZmNjY5OTcyNDA1MWJjNTM2MSBsZWdhY3ktdHJ1bmsKKzIyMjY3IDhiZDA2ZTMyNDliYjVlMGMxYjk4YTA4NGFlYjhiMThmNDQyNjY3NmQgbGVnYWN5LXRydW5rCisyMjI2OCBmNTFiMTNiZjVkNTRmOWYyYThlMGRhYTQwZWE0ZTBkOWJhNDNmY2JlIGxlZ2FjeS10cnVuaworMjIyNjkgZTQyNjIzMGVhNTczMWM5ZjE2MTE1NjJhMmU5ZjlmMWVlZGRiY2Q1YyBsZWdhY3ktdHJ1bmsKKzIyMjcwIDljYzY3YWFmZWM2YzE4ODAwMmJmOTRkYWRlOTg4NzkzZTdkYTM2MWMgbGVnYWN5LXRydW5rCisyMjI3MSBlNTdhNDYxNDQ2OWU2ZjRjYjAzN2JjYzk5N2MxOTQ4NjI2NTY4YzdiIGxlZ2FjeS10cnVuaworMjIyNzIgYWIyZjgwOTVjNGZjYzZkMDJiODNhNDlhOWJiNTUxYzkyY2VjNDk4NSBsZWdhY3ktdHJ1bmsKKzIyMjczIGExYjRmM2ExZWUwNzk2NTVjYmViNWNiYTkzODRjYmUwNTg0MTYyNzkgbGVnYWN5LXRydW5rCisyMjI3NCBkNzk4NjVjMGY4MDQ1ODlkOGI3YmExY2NmZDMyNWUwZTBiOGEzYzk5IGxlZ2FjeS10cnVuaworMjIyNzUgZDAwODAyYzc0YmE0ZGM0MTkwMjQxZTMwNDRmZDA1Yjk4Mjk1MzVlMSBsZWdhY3ktdHJ1bmsKKzIyMjc2IGI2MmM4MGQ1OGQxZWMzYmU1ZDA3Nzc3YjQ1ZTNlODZhZWY3N2E4OTQgbGVnYWN5LXRydW5rCisyMjI3NyAzOWE3M2M2NzczZjEyZWQ5OWJiYjBkYjZlOTE4YzgxOWY3YjcwZTdiIGxlZ2FjeS10cnVuaworMjIyNzggNzY0OTIzZDk4NWE3NjgxNGU0YTdjOTJiZTk0ZDdmY2QzZTNkNGZmMyBsZWdhY3ktdHJ1bmsKKzIyMjc5IDMxMGE5MTcwYWFkNDc2ZGFlMTJkNmM0OThmMDNkZTVlYTQ2ZDQzNGUgbGVnYWN5LXRydW5rCisyMjI4MCBlZmRkY2Y3MTlmZjJlZmM3MmEyNWZkNzE0ZDdkNTMxOGMxYWY5MDc0IGxlZ2FjeS10cnVuaworMjIyODEgOTRjYThlYmE3ZTRmMDk3YmExNjIwZDI0NWVlNjg4ZjM2MmQwMDc0NCBsZWdhY3ktdHJ1bmsKKzIyMjgyIGUyZTU4OWZlYWQzMGYxYWQ4ZmU3NGMyMTdkMDM1YmQ3OTZkYzYwODUgbGVnYWN5LXRydW5rCisyMjI4MyBmNzUxMjVlYWQwYTIzYjk2MzQ4MDZhYWMxZTg2YmM1YjYwYzkwNWMwIGxlZ2FjeS10cnVuaworMjIyODQgYzNlOGY0N2ZlN2M4NGRmNTVjNmM3MzMyNzMzNWUwODVjZDM0NDZjMCBsZWdhY3ktdHJ1bmsKKzIyMjg1IDBhOWNlODFkZTM5OTkxNmE3MWNhY2M0Yjk5YzMzNmQwYWU1YTVmYzUgbGVnYWN5LXRydW5rCisyMjI4NiBjYjhmZGNlOWU2NWE2ZDI5Yzk5OWE1NmIzZTE4ZWI4ZDNiMWQzYmVjIGxlZ2FjeS10cnVuaworMjIyODcgMjdiNGRiZDQyOGZlN2Q1YjAwNjZlOWJjY2Y4ZTdmYzE5NWVjMzIwYiBsZWdhY3ktdHJ1bmsKKzIyMjg4IDM2Y2EzNzZlNTg2NDY1ZWRlMDg4Zjg3NjExNWNkMDQxY2RhMWRhY2MgbGVnYWN5LXRydW5rCisyMjI4OSA4OGQxMjRjNzQ3NjYwNmY2ZDJjMzIyMGZiYzUxODBlYWNjNjkzOTlmIGxlZ2FjeS10cnVuaworMjIyOTAgNWMyN2YwZTRmNTBmNzM2ZWY4NWU2MTY3YTdlNzFjMDA5ZWU0YjE0YyBsZWdhY3ktdHJ1bmsKKzIyMjkxIDlmNzg1MDczZTQ4YmRmM2M0OWRmNDNhMmJjZGE3NDZhMDM0ZWVhNTAgbGVnYWN5LXRydW5rCisyMjI5MiA2ZTk1OGQ1ZTk4OGJkMDVjMzQ2YzczNTJkNTMwN2Q5MzhkMDA4YWU5IGxlZ2FjeS10cnVuaworMjIyOTMgZjNlMjc4YmM0MzllMjcwOGExYWQwNzQyMmM5YzIwYzYwMmU0ZTlmMCBsZWdhY3ktdHJ1bmsKKzIyMjk0IDk2ZWJmMmI4ODZmNzY4MjliNGY5NzlhOTc2M2E4MWNjYWJhYmMzNDIgbGVnYWN5LXRydW5rCisyMjI5NSAxOTYwY2VlYzFhMDBiYTU2MjM5MTRhMGFmNDMwY2UyM2MwZjg4NmQ2IGxlZ2FjeS10cnVuaworMjIyOTYgYzRiMzFiZTdlMDgwYjk1YmM5NmVlMWIxOWE5YTBlZDg1NDhlNDc0ZCBsZWdhY3ktdHJ1bmsKKzIyMjk3IGU0MTFiZmI5ZGI1NzY0YWJiNDVlMzc1ZWE4MzU3NzRmYjQzMmRlZWYgbGVnYWN5LXRydW5rCisyMjI5OCA2ZmFlZDYxNWIwNThkZmMwMmEyOWE2NWIzMGJlMWFkNGVkYjhkNzM2IGxlZ2FjeS10cnVuaworMjIyOTkgZTc5ZmQzOTM0ZjYxMDI3ZmYwNDQ5M2FlYTlkNWQ3NWI4ZmE2YWJjYSBsZWdhY3ktdHJ1bmsKKzIyMzAwIDk3ZGU4NjhhZDBmNDAyODQzYzU2YzExNTY3ODlmYjFmMDZlNGQzOTQgbGVnYWN5LXRydW5rCisyMjMwMSA4ZWJmNzFlMWVkMjk4ZWE5MjFiNjgyMWNhYjY1ZTk4MmMyNmM5ODMyIGxlZ2FjeS10cnVuaworMjIzMDIgMTFhOTc2N2U1ZDhhNTNmMjVlNGMxNTU3YmM4YTMxNzc2OGYwYjMyNSBsZWdhY3ktdHJ1bmsKKzIyMzAzIDQ1Y2NmM2I4ODliNTAzNjhkZDAxNWZhOTBhYWM3Nzc5MDNiMjBkNDkgbGVnYWN5LXRydW5rCisyMjMwNCA5ZTZmNzgwNGVmMTQ1ZGQ4YzM3NTYzZjU3YjMzYTYyODE0NzljMjY2IGxlZ2FjeS10cnVuaworMjIzMDUgYzk1ZjBhMTJiNTFhNTlkMDZhNzUxYmY3NjA5ZDBhMDdlMGY3NmM0MSBsZWdhY3ktdHJ1bmsKKzIyMzA2IGRlNWQ3YTk0MjhlZjkwY2I3ZjM5NGFhNTE2NjUzMWIxYjM0OGUxOGYgbGVnYWN5LXRydW5rCisyMjMwNyBjMjM4NzQ1ZTBhYWU2YzA2NmNlMjIwODM5NTIyOWZhNzdmODI3YzY5IGxlZ2FjeS10cnVuaworMjIzMDggNjM1MGJiYWE2MzJhNzU1ZDgzOWMzZDY2Y2EwZDg0NGZmMTA1ZGY5ZSBsZWdhY3ktdHJ1bmsKKzIyMzA5IDllYzU2MTFjZmU5YzAzMzAzNDMyYmE3NTkwYzlhMTNkMWZmZDJlMDUgbGVnYWN5LXRydW5rCisyMjMxMCAzNDIwYzllNmFmMTEyOWU1YmE2NDU4MGY3Y2Q3MTliMTY0NjRhMDlhIGxlZ2FjeS10cnVuaworMjIzMTEgODc1YWM4ZTkzNTQyNGJkNmIwMzUzMjg0MTRiMTcyZGNiYmY4ODFhOCBsZWdhY3ktdHJ1bmsKKzIyMzEyIGVlYThkZmJiZWU4NjAyOTBmNzgzMWZiOWUyYTdlN2U2YjQwNzY4NDAgbGVnYWN5LXRydW5rCisyMjMxMyAxMGVjMzk2ODQyOGRjODNjODVjMjExZGY2MDAzYWRjODRhODI4MWM2IGxlZ2FjeS10cnVuaworMjIzMTQgMTMxYTAxYjZmNmM3MTRlNTkxOGJlZWU1ZDUwYTg4YzA2ZDcyNjg2NCBsZWdhY3ktdHJ1bmsKKzIyMzE1IGI3OTg0YzliYmYyY2RlMDM4YjQzYTAwNmE1YzU3MGJjMGFhNzU3YWEgbGVnYWN5LXRydW5rCisyMjMxNiAzNzNjYzU5NDE1OTAwYjQ0YjU5YmUyNzM2Y2EwNzQ1M2YwY2UzNDFiIGxlZ2FjeS10cnVuaworMjIzMTcgMDIwMWJiNWUzYjgzNmIzN2I2ZmE1Y2M0YjdjZmNjY2ZhYmNhMjhkZiBsZWdhY3ktdHJ1bmsKKzIyMzE4IDZiYTQ0MTUwNzIyMDRhNjFiYzI3YjE4ZTI5Y2NlYjcwMGI5NDRjYjkgbGVnYWN5LXRydW5rCisyMjMxOSBiNTU0NzhiZDkxNjVjNGZlMzlmNDI2NjJmN2Y4NDI4ZWExOWVhNDhjIGxlZ2FjeS10cnVuaworMjIzMjAgYjM1NTM3NmQwNzMxMjc4YWVjNWZhZDFlOTM5OTJiYTg3ODk3ZDkzMiBsZWdhY3ktdHJ1bmsKKzIyMzIxIDc4MjZjYzM3YTIzNGI4YjEwYmZhNWU1YWQ4NTk3OGY2M2MzOTkxNmEgbGVnYWN5LXRydW5rCisyMjMyMiAxNzUyNWI2YzUzMmM1OTI0ZTYxZjgyYzFjMzcxNGM1OTcxYmU5NzhhIGxlZ2FjeS10cnVuaworMjIzMjMgMTNkMGYzNGI2YTE2MDk5OWZlYzExYmY3NTE5Zjg5NjQwMDc3NzA0MiBsZWdhY3ktdHJ1bmsKKzIyMzI0IDhjYmY5ODRjOWMxM2Y0NzVhNmMwOGYwYTc5NjRmODA0YzU4OTQ1YmYgbGVnYWN5LXRydW5rCisyMjMyNSA5MTI5OTQxOGI3MmRjOWE4YmZjYjJlNjEyNjEyYjJlNzA1MTUyOTljIGxlZ2FjeS10cnVuaworMjIzMjYgNjAwYTlhMmI3YTE4MzEzMGYwYjY0ZmRlMmMwZjEyZWNjYWJlOGQ2YyBsZWdhY3ktdHJ1bmsKKzIyMzI3IDk1NTE1YzZiNjk0YWI1Y2ZhZGRjNjVlNGU1MzIyODdjMjgwMGRkNTggcmVsZWFzZTIxLW1haW50CisyMjMyOCA3N2U0MDVmM2E5NDJhOTE3ZmYxZTQ1OGM2MTA3M2FiMWY4ZTk4MWY5IGxlZ2FjeS10cnVuaworMjIzMjkgNjcyOWJmMzBkM2FlNWIxOGRmNjU2NTI2ZTUxNDAzNGU4MjQ0YTdmZiBsZWdhY3ktdHJ1bmsKKzIyMzMwIGUwODQ3YmExZDZmNGViMDZhM2U4NjgxNDc0ZjRhYTgxZDhjNDM0OGYgbGVnYWN5LXRydW5rCisyMjMzMSBhZjQ4MjA1NWQ1Y2U0OTBhMGRjY2JkZjZiY2Q1MzEwMGM2NjBlNDczIGxlZ2FjeS10cnVuaworMjIzMzIgZjhiNTFjOGNhMDgyNjMxOGM2ZjI4N2EwM2FlZWJhZTU4NGRjOTc4OSBsZWdhY3ktdHJ1bmsKKzIyMzMzIDY3YmUzYTY4ZmRlNDkyNDE0YmEyMjM3MmVmNDMzNTA4ZWE5Mzk0NWYgbGVnYWN5LXRydW5rCisyMjMzNCA3ODc1MmVhZTEzMmUxYjJjYTlkMTczMWFhZjljNzVlMzIwMWYxYTBjIGxlZ2FjeS10cnVuaworMjIzMzUgNDkwMWE5MzU0OTBkZDg2YmI0MDcyZWFmZDE0OTYxYTU2MTcxNjc2ZiBsZWdhY3ktdHJ1bmsKKzIyMzM2IGMzOTU5ZjZlNDA0NDc4YmQ1NjMzOWEzZTE2YzAzMWE2MmEwMjE2ZmQgbGVnYWN5LXRydW5rCisyMjMzNyA5NTdkZDY0NmI1Yjc0MzRmZDg5YTMwNjE3NDA3N2IzMTJiNjUyMmJkIGxlZ2FjeS10cnVuaworMjIzMzggNjc2OThkNjg5MjAzMjBmYThlMjFhZWUzZWZlZmIwMTRhNmI4MmEzZiBsZWdhY3ktdHJ1bmsKKzIyMzM5IDQwYTE3ZDk1MDBhOGI2ZWU3ZjI5NGY2M2IyNDZjZDMyYmFhN2M1MjggbGVnYWN5LXRydW5rCisyMjM0MCA5OGJiYTk4M2JmZDM3Y2ZmOTkwOTJkYjcwMjQ5ZjQ4OTRhNWMzYmE2IGxlZ2FjeS10cnVuaworMjIzNDEgZDk4MTIxOTMwZTcwNjFmNGNiZjcyNTJmMDdmN2M0MGFkNWE0NzI4ZCBsZWdhY3ktdHJ1bmsKKzIyMzQyIDNmOGE1NmY1MmNkNjFiYmE1NWM5ODBlYmQ5NGM1ZTkxNDc5YmIwMzAgbGVnYWN5LXRydW5rCisyMjM0MyA2NDYzY2Q5ZGIyZmNlZWNmNThjMmU2OGQ0Mzk1OTMyMDhkNWRlMDE1IGxlZ2FjeS10cnVuaworMjIzNDQgZmIxMmVhOTI5MGIyZDIxNzI5MTZhYTM1YzMyYTczMWMxZjkwMmUwNSBsZWdhY3ktdHJ1bmsKKzIyMzQ1IDgxNWU3ODEyNTM1N2FmNzk4ZDU4Mjg1NTVlNTE5MGU1NmUyMjI1MGMgbGVnYWN5LXRydW5rCisyMjM0NiA0YThhYjY3NzczYTljNmM1M2E1MzA1Y2RkNjE4YjcwNmI1MGU2M2I4IGxlZ2FjeS10cnVuaworMjIzNDcgOGMzNzhmOTA4NmNkNzNiNTRiZmJiMjFiYmRlMDY2ODAyYzAzY2QzYyBsZWdhY3ktdHJ1bmsKKzIyMzQ4IGUwMDFhOWNkZTZiYWY2YzhhY2RiNmU1YTJkZTkzN2RlZDlkOGJmNjUgbGVnYWN5LXRydW5rCisyMjM0OSAyZDY3ZDIzOGQ0ZTkxOGJhYmVjMWIzNGEyNjBlYzExNWFjMmQzZDM1IGxlZ2FjeS10cnVuaworMjIzNTAgODUyOTJkOTU5ZTFiODc3ZTk1NzgzOWViNTE2NWZlYzMzYjczZGQwYSBsZWdhY3ktdHJ1bmsKKzIyMzUxIDA4Y2ZkOGU5OTgwNjYyODQxOTkyM2NiZGJiZTBkODc5M2RhMDEzNGEgbGVnYWN5LXRydW5rCisyMjM1MiBmMGQ1MmE4ZmRlNWZlOGQ5OTM4OWQxNWIxZjUxZTU1YmI0NWEyZjFmIGxlZ2FjeS10cnVuaworMjIzNTMgZWRmOGQyZDFhOTBiNjk4OTNkNWFlNmI1OGUwNDNmOGJhYThjMzlkZSBsZWdhY3ktdHJ1bmsKKzIyMzU0IDJmM2IxODMwOWNjZTY3OGM0NmZjZGVjYjY2ODQ1NGM1NjRmMDJiMTMgbGVnYWN5LXRydW5rCisyMjM1NSA4MDlhZWM2NGE3OGViYTJmODEwMjljMmFiNGU5MjlhNzhhY2IxZDgwIGxlZ2FjeS10cnVuaworMjIzNTYgNDgxYjgxZDMwMGRmODJlOTRlOTgwZjQ1YmMxMTM5NmRmYzU1OGM5YiBsZWdhY3ktdHJ1bmsKKzIyMzU3IDNmMzRmNzI0ZjAxNDg5YmNiZDYxOTNlODhhZDA2NjVhMDNjZGFmODMgbGVnYWN5LXRydW5rCisyMjM1OCBjZDQ0MjU0MzYwYjZlYTk0YzdmNGQxN2RjMjIyNmVjZWYxYmY1ZTUxIGxlZ2FjeS10cnVuaworMjIzNTkgMWU2ZjRiYjY1MDY5ZDIzZTI0YzYwMDNiZDYwYWY2Yjk2YjZiOTFlMSBsZWdhY3ktdHJ1bmsKKzIyMzYwIDY0ZDRhZDczYTg4NzVlMGU4MTgyMTMwZDQwYWQwOWNjYmU3OTZiY2YgbGVnYWN5LXRydW5rCisyMjM2MSA3YTFlZjY3NWQ4YWNmMDQ0YWQwMWNhNDA4YmM3N2JhYTA1Y2U0MDkzIGxlZ2FjeS10cnVuaworMjIzNjIgMmY0MWM5NTJiZWIwNThlZDM4ZjY5MzNmZWJmNWEwMTNkMDQ3MGE0MiBsZWdhY3ktdHJ1bmsKKzIyMzYzIDc3NjYyOGVlYThmNzM2NzQ2MGZhZDA5ZDUzYWRkNGM2OTVmNzg1NTYgbGVnYWN5LXRydW5rCisyMjM2NCBiNzY1OGU2NjVkMmVjN2EzOTg3NGQ4ZmZjNzdiYTEzYTE4OTFmMGEzIGxlZ2FjeS10cnVuaworMjIzNjUgOTdhM2QzZDcwMjlmOGZiMjZiMjQ0NTBkZWRjNTQ3ZmFlMTllNDU3MiBsZWdhY3ktdHJ1bmsKKzIyMzY2IDM1MzcwNjJiM2RjMWJlMDgxZDRiOGU0NjgyNzE0ZTRkNWMxZmE4ZmYgbGVnYWN5LXRydW5rCisyMjM2NyA5ZDAyNGFlMDU4MzdjOTRiZTg2NTNlY2QxMjNlODY5YzY0YjhhNTRjIGxlZ2FjeS10cnVuaworMjIzNjggZDY0ZTA1OWNkMTk5ZGEzOGVhMTJmNjQzN2E0YzIwZGNhOGIxNTFkZCBsZWdhY3ktdHJ1bmsKKzIyMzY5IGIwNmQ5ZGJkYWY4ZmJlNzViYjMxMzE4Y2I1MzQwYWY5OTA0MWJhYzggbGVnYWN5LXRydW5rCisyMjM3MCBiMTYwZmE2M2Y0MGM1N2E0NDEzNjg0MDRmNTFiNWVkMWIwM2I5YTExIGxlZ2FjeS10cnVuaworMjIzNzEgNWQ2YjJjMTdlYTJjZDdhODcxODEyMDA2OGYzNjVjNjk5Y2RjODUxMyBsZWdhY3ktdHJ1bmsKKzIyMzcyIDAzOWUzZDI2ZWEzNWNhNjEzMzhhYTI1MTA5NjlkZTg2MzlmZTY3MDkgbGVnYWN5LXRydW5rCisyMjM3MyA2N2YzNTRkNDM0N2Q1ODIyODIzNmI2YWE4ZGY1ZjVlYmFjMDg4ZTk4IGxlZ2FjeS10cnVuaworMjIzNzQgMzA4NjBiZTNhZTdiZTlmNGRkZjVmMTdjNjBiN2RhZTUyYjQ3NTRiMSBsZWdhY3ktdHJ1bmsKKzIyMzc1IDgwMmM0Zjk0MGE0ZWEzMWEwOTkzNjFiM2E2YzAwM2MyNDlhMWEyM2UgbGVnYWN5LXRydW5rCisyMjM3NiA5NjYxMDkzZDNlMmFmZmMzZjc2OTMwMzcwZmVjNTI5MWRhNzc5NTUwIGxlZ2FjeS10cnVuaworMjIzNzcgODFmNGNkZjg2ODU1NzIyNjJiMmI5ODFlOWQ1YzU1NTlhZDk3N2VmYyBsZWdhY3ktdHJ1bmsKKzIyMzc4IDJmNjU5M2JmNThhZmJmOTNmZGE0NmQ2YjUwNDVhMDY3NDBkNzgzNjQgbGVnYWN5LXRydW5rCisyMjM3OSBjYjM0NmJhZWRhZDZjNGE0MThiY2JjZDgwNjIxNDBhNWIxYTVlOTRlIGxlZ2FjeS10cnVuaworMjIzODAgZjBkYjM0NTYyMWJhN2VmY2FmMmQwMjc1M2MxMTQ0YjgyOTViN2I2OCBsZWdhY3ktdHJ1bmsKKzIyMzgxIDcwNGFkODM0ZGUyNzY5NmJlNWE1MGU5MWVkZGJlNjg3MzA1YjliNTQgcmVsZWFzZTIxLW1haW50CisyMjM4MiBiMDAwMmQ3YzIyYjFmMGNkY2E5NmVhNTUxMTgyNWZiMDAzZGJkMTIyIGxlZ2FjeS10cnVuaworMjIzODMgZmZmNmM2NjI4NTlkOWMwYTA5Yjg4MWE3ZGJjMDNiMTYxNWViMjk0ZiBsZWdhY3ktdHJ1bmsKKzIyMzg0IDUwZjg4ZWU3MWQ0NWEzZDdmMjgwNzIwNjliYjQxOGQzNzM2ZGEyOGUgbGVnYWN5LXRydW5rCisyMjM4NSBjYTEyZTFlMzMzZWExMDQwMzYwMjg5MTM5ZWUzN2I4ODVjNDhkMjQ2IGxlZ2FjeS10cnVuaworMjIzODYgNjM3MGEwZjk4OGYwZDNmNjVhMjE3OWM5YWY2OWY2ZTkxNmFiYzIzOSBsZWdhY3ktdHJ1bmsKKzIyMzg3IGZkZTNiMGY3MmUzODkwMmVlY2U1NzhjZDhhNDM1NWUxM2U0NzU2MGQgbGVnYWN5LXRydW5rCisyMjM4OCAxZDQ2MmI3Mzc4MTBkYzgyMGQ5OTdmMmU4MTM0NjNiMTVlYmJjNTUyIGxlZ2FjeS10cnVuaworMjIzODkgZmMzOWMyMmI1YTdhZDE1YjQ3NDhlYzVlMTAwNzhlZGE0ZDk2Y2M3YyBsZWdhY3ktdHJ1bmsKKzIyMzkwIGIxNDk1MWNkMjU2NzNhNjAxNjZjNzBlOGE0OTE0NzU2ZTFhMTZjMWQgbGVnYWN5LXRydW5rCisyMjM5MiAyOTY3Y2E5NmQwN2VlN2VlMDk5N2JiNjgwODM5MTU1NzQ2YzVjOWY0IGxlZ2FjeS10cnVuaworMjIzOTMgNzhkMDBmNzAyM2EyMTZmMWI3NzU4MjEzNjhiZmUxZjBhMWY2ZGFhMCBsZWdhY3ktdHJ1bmsKKzIyMzk0IGNkZDBjN2E0NTU3NWEyOTExZjk1YjkwY2NmMzliNGZmZjlkZWM5YzIgbGVnYWN5LXRydW5rCisyMjM5NSAzMGY4YjY1NGMyZTViZmYzY2RhZjEyYTliMTgxMDFjZDVkZjVjMDE2IGxlZ2FjeS10cnVuaworMjIzOTYgYmNmZTMwY2QxZjBkZTE2YzllZDk1ODJjNGM4NzA3ZGI4NGU4ODRlZiBsZWdhY3ktdHJ1bmsKKzIyMzk3IDExNWU0MDk5ZjNkOTc5ZmIwZGViNDRjOWI2YjNiMzk2ZmZmMjEwZDcgbGVnYWN5LXRydW5rCisyMjM5OCBiZWU3NTU3MjEzYjIyOTkzMjk2NDYzZDg4OTAzMjM5ZTJjOTZjN2Y5IGxlZ2FjeS10cnVuaworMjIzOTkgYTk3YzgwNjRjOWQ4M2E0MTU4YTdhZTY5MmVkOTg4YjFmMzcxMzUzYiBsZWdhY3ktdHJ1bmsKKzIyNDAwIDY4MDIzMmZiNjFmMzAyMDdmMWRjN2ZmZDI3NGY4ZDQ2OWFhNTlmY2YgbGVnYWN5LXRydW5rCisyMjQwMSAwOTVjODlhODI1YTkwYTFiZjk3ZDg4MTE1YjA1NTY2MDgxM2I3YWM1IGxlZ2FjeS10cnVuaworMjI0MDIgN2U5ZjVjNTllOWYyN2YwMjY0ZGEyNjU3MDQ3NGY5YWQzNWFmNGVlZSBsZWdhY3ktdHJ1bmsKKzIyNDAzIDdlNDQ4NzNkYWY3YmRjMzdiYTFlZmM5M2IxZjIyMzE4OWRiZGMxZDcgbGVnYWN5LXRydW5rCisyMjQwNCAzMDFiY2IwMWI1MDM0NWYxYWQ2MDM3NDlkZjg2Yjc4YWQ5NGZjYTJlIGxlZ2FjeS10cnVuaworMjI0MDUgMDFhOWI3ODA3MTYwYjE4MTA4YTM4OTQyYjdmMzEyMDNmYjY4ZjdjYyBsZWdhY3ktdHJ1bmsKKzIyNDA2IDNjMWM5OTQ4ZmY2NTU3Y2VkYzBjYzQyZjRjYjI4OGI1ZGM5MDZiZjYgbGVnYWN5LXRydW5rCisyMjQwNyAzODM3ZGNjZDExY2FkMzUyNzUwMGRhMTI0YWZmMzgwYTg0NzU3Yzg1IGxlZ2FjeS10cnVuaworMjI0MDggNTBmYjQ2ODNhNDYxODYzNzlmZDU3YjMxOGRjY2U3NDMzZDMxMGVmYiBsZWdhY3ktdHJ1bmsKKzIyNDA5IDJjNGMyY2FhYmNmY2Q5M2IzNGJmMjM5Y2QyZWI3M2ZkZTM0MThlOGYgbGVnYWN5LXRydW5rCisyMjQxMCA0N2E0NWRhMDNiMDlhYzgxMjVmYzUwNzVjZTI3OTk1MzA5Mjc3YTQyIGxlZ2FjeS10cnVuaworMjI0MTEgY2QxMzEwZTg3ZmUyMTU1ZjM0M2M1YTU3ODkzOGJhYTg4NWY2NzhjZiBsZWdhY3ktdHJ1bmsKKzIyNDEyIDY3ZGNmMDRmYTc1NDE4NTRjNWFhYWU4MThmOTZkZjY2Njc3NzA4ZmMgbGVnYWN5LXRydW5rCisyMjQxMyBhY2MwZmZhYjA3NzFjOTAzNzQzOGRmYmU5NTQ3OTgzZDVkMDc0NTg5IGxlZ2FjeS10cnVuaworMjI0MTQgZGUxYzJkNGQ3MmJhMTc3YTJhOGZlM2EwNmRmZjQ5MzIxMzRkYTA0MyBsZWdhY3ktdHJ1bmsKKzIyNDE1IGZiMTUzZTMwNjE1Mjg4NmUzNDBkNWJkMWRhYTQ3NWU0NDVlYzM3MDkgbGVnYWN5LXRydW5rCisyMjQxNiA3YjUzZmIzYmEwMTE5MmJlYTA0OTMxMTM1NmE0MGNkZmEwMDZiNzRiIGxlZ2FjeS10cnVuaworMjI0MTcgODY5MTQ4NGM1YmVmNTMzZGRhMDRjYWRiZmQ1NTUyMmQyMTgxZjNlZCBsZWdhY3ktdHJ1bmsKKzIyNDE4IGI0ODRiMjA3ZTk2NDE5ZTgwYzViM2M0NjJkYjE2NDk1MzA1NDM2YzAgbGVnYWN5LXRydW5rCisyMjQxOSA0ZGQzOGQ5MzAxNTczYzkwY2NkOTRlODg1MmZiMmY4ZDAzYzU2M2YzIGxlZ2FjeS10cnVuaworMjI0MjAgYzlhNGU2ZDFiYzMwYjE5OGViZmZhZjExMDQ3YjI3MjRlM2M4NTNlNCBsZWdhY3ktdHJ1bmsKKzIyNDIxIGMwYTE2YjRjOWVkYjdlMWEwOWJiNmEzMzFhNTZkY2I2YThlZTcxOTkgbGVnYWN5LXRydW5rCisyMjQyMiBkMzdlMTc2NTgwNDhkYWI4ZWQzZTk4MGUwOGMwYjhiNzkwNmQwMjVlIGxlZ2FjeS10cnVuaworMjI0MjMgZjUxM2M2YzdkMTY3MGJjY2VkNTk2M2ExMjViYzhhMTczMGMxMTU3OSBsZWdhY3ktdHJ1bmsKKzIyNDI0IGU4YmU0MGM3NWEzZjcxN2M3ZTU1YzRjODFkY2ZhOGNjZTM5MjAwYjkgbGVnYWN5LXRydW5rCisyMjQyNSA3NzY0MGMzODg0N2JhMjU3YjM5YTk4YmMwMTVjOGI1YTFhMjljYzMwIGxlZ2FjeS10cnVuaworMjI0MjYgZDE2YTNhNWM4YTg2YjEzMGIyOWQyY2ExMGEyZWRmMWQ3ZmNiNTdhOCBsZWdhY3ktdHJ1bmsKKzIyNDI3IDM3M2I2YWJhZGM1MDBmY2M4Y2ZjYzY2MTM2ZjYyNGZiMTE4ODJjN2UgbGVnYWN5LXRydW5rCisyMjQyOCAyNDJhYzQyN2YwZDBmMGQzZDZmOTE3YmJlMDk1M2ZkODFhM2E3NzUzIGxlZ2FjeS10cnVuaworMjI0MjkgM2M3YWQ1MDM3YWIxYmM1YTIyM2E5NDZjOWQzOTExMWUyNTI0YjM4YSBsZWdhY3ktdHJ1bmsKKzIyNDMwIDQxNzg1NzkzYThhMzc1ZTBiZTFmZjhhZmMwMGY0MzlmYmQ5ZjgzY2EgbGVnYWN5LXRydW5rCisyMjQzMSBjZDFjMjc4N2ViYjRhOTMwMTk0YjJhNGMzZGFjOGE2MDAyMzczNzU4IGxlZ2FjeS10cnVuaworMjI0MzIgNmU0NmM3Y2QzNzQ5MGUxNDE0NDkwZDMwYTQyMGFkODg1NzAyNWU1NSBsZWdhY3ktdHJ1bmsKKzIyNDMzIDcxZjA1ZmQzMGU3M2Q1Y2I3ODI3NTQzNjVjYzRlZTk0NjM0ZGQ3OGEgbGVnYWN5LXRydW5rCisyMjQzNCAyNTU5MjY2OTg2OTJkNDZjOTFhMTBmYTQwZDcwZDFjMDU4ZjVhNWM3IGxlZ2FjeS10cnVuaworMjI0MzUgODRiNjAyMTMxNTliMDIyMzY4MDkyNWFkM2E5MzY5MTFkZmYwOGZlNiBsZWdhY3ktdHJ1bmsKKzIyNDM2IDBmNjEyZDY4N2ViY2Q3NzQ3NGVkOTEzMjFiNzliYzE3MWJhMDFlNWQgbGVnYWN5LXRydW5rCisyMjQzNyA1M2YzOTk1OTg3OTk5ZWMzZjYxMjZhNDU5YzdiMjIyNmQyZThjMTQ2IGxlZ2FjeS10cnVuaworMjI0MzggYWNiMThjOWZiMjBmNmE1MTkwOGFiMWRlM2NjZDE1NjExNWI1MjIzMSBsZWdhY3ktdHJ1bmsKKzIyNDM5IGUyOWJhOGYxZTdmODBhMmU2MjI1ZWM1MjgzMzQ3ZjUzNDAzNTlhOGEgbGVnYWN5LXRydW5rCisyMjQ0MCA2NTg4NWVhNzZjMzc3MTY0MThkZDEyZDZjYWRkZTkwZTFmOTQxZGExIGxlZ2FjeS10cnVuaworMjI0NDEgY2I3ZmI1NjVjODliOTRmYzgzMWY0OWQzM2FkM2U4MDAyY2IzNTdkYyBsZWdhY3ktdHJ1bmsKKzIyNDQyIGMzMzYzZTRkNmQxZDYwYWQ0YWVlYTJhY2JmZTYzNjIzOTVhN2FkMmQgbGVnYWN5LXRydW5rCisyMjQ0MyBjNjEyOTQyOGUwNTNjY2FkMDFiZDdlNjFjZGZiZmNkNWM4ZmZkYjQzIGxlZ2FjeS10cnVuaworMjI0NDQgMzhiNTkwNmZmMDMxZDNjZjkzYzEyNjhkNWQwOTUxMTI0ZDA4MWJkOCBsZWdhY3ktdHJ1bmsKKzIyNDQ1IGUxMTBjZDRmYzNjNjI1MGQxNjBkZjM2MjY1M2U3NTk4ZDg3MjYyOTQgbGVnYWN5LXRydW5rCisyMjQ0NiA1Yjg3ZWU0NDAwMGJhYTA2Yjg1YjQ5M2IzOGVkOTU1N2I2MmM0NmRlIGxlZ2FjeS10cnVuaworMjI0NDcgYTA4ZDBlNTg2MWNjZjI1OGFiM2Q0OGY5NTU2MzYzZDNmMDk1NWQzMSBsZWdhY3ktdHJ1bmsKKzIyNDQ4IGFjNmQ5Yzc0Mjg2NDMyNTMxNmQ4ZjY4ZjgwZGRlYjgzZmU1YWM2MDAgbGVnYWN5LXRydW5rCisyMjQ0OSBkM2RkMGYyZmIxZjQ0MWE4NjU0ZmJjN2Y5NDMxYTRlYTFkODQzY2IwIGxlZ2FjeS10cnVuaworMjI0NTAgZDk5YzEyNDBkMGFjM2VlOTliNGVjNDM2ZDBmNWM4NmZjNjVlMTZmOSBsZWdhY3ktdHJ1bmsKKzIyNDUxIDc4OGExNjM1MWUxODk0Mzg4Njk1MmY2ZmU1OGVmNGI1MTY4NDE0OTggbGVnYWN5LXRydW5rCisyMjQ1MiBmYmUyMDc0YzVmYTVhMjE5MTQyM2U5NDg5MWJkNTM4YjQ0MmM0ZWE3IGxlZ2FjeS10cnVuaworMjI0NTMgM2I5OGNmMTY5MmQ0MTU1Y2Y5MmZjZDE1OTRhNWI0Mzk2M2Y1ZTVmYyBsZWdhY3ktdHJ1bmsKKzIyNDU0IGJlMDI0YzI3NGUwMmNmOWEyN2M0M2ZmNDg1YTg2ODZhZmM4NGNmYWMgbGVnYWN5LXRydW5rCisyMjQ1NSAzODhiY2RlZTUxMjlhM2RmYWRjNWQwNTYwMTU0Njk1OTQyOGZhZDc3IGxlZ2FjeS10cnVuaworMjI0NTYgOWY4MGM3MGE3YTUxZWJmNzAxMjMyNjU4ZmJlZDk1NTNiOWE2ZjFiZiBsZWdhY3ktdHJ1bmsKKzIyNDU3IDA2ZjkwMjcxNDFmZjlhYjkyMjgwZGIyMzM5M2FlMmY3NDQ3YTQwYTkgbGVnYWN5LXRydW5rCisyMjQ1OCAyZmY1NzAyYWRiNTZkYWI4NDI5YzAzMGM2NDAzZmIzNzI1ZDhiM2Q5IGxlZ2FjeS10cnVuaworMjI0NTkgMzk1NmIyMmQ1ZTI5MzRmNjJlYmQ3MWUzNGQ0NDFhNzU3MDJmZjVkOCBsZWdhY3ktdHJ1bmsKKzIyNDYwIGZiZjFhZTc2OTMwNjYwMTVjZmZkNTM5YmI5NjliNDhjZmY2ZmRlZTAgbGVnYWN5LXRydW5rCisyMjQ2MSA5NjhkMTY5NTAxZjI3NjZhYmQwYjJlNTEzNmFhMmNjZGE3Y2MxYjY1IGxlZ2FjeS10cnVuaworMjI0NjIgNjYxNzAzMGM1MWUzYWQ4NTAzMGM3ZGUxZDUzMjc1NDRjNWRmNjdjZSBsZWdhY3ktdHJ1bmsKKzIyNDYzIGFmMWM2ODkzMjRmNTMxNmFmNjVlMTUwNTdhYWM1ZGZlY2U2NTZhZDEgbGVnYWN5LXRydW5rCisyMjQ2NCBmZWRiYTg2ODY1ZTI5NGM5NGIwZmM5Y2U1Yzg2NDBlMGQ0YWExODU2IGxlZ2FjeS10cnVuaworMjI0NjUgMWMzOWI5NmQyOWMzMjVmYWQxMTUyOTU3OGQ1MGNkYWQ5MjEzZTJkYSBsZWdhY3ktdHJ1bmsKKzIyNDY2IDE0Zjc4MmJhNDBmOTEyZjc1ODhjNjA4ZTYzYmQ5MjVjZWU3OTUwMTAgbGVnYWN5LXRydW5rCisyMjQ2NyAwNDY0M2ExODQ1NDZhMTE2N2Y5ZmJmY2ZlOTQ2ZGQyMDBlOGRjMjJjIGxlZ2FjeS10cnVuaworMjI0NjggNDlmZDcyNDM1MWY0YTg1NGI3YjIyYjJmMjVlMjVhOGMxNWNjZTIxNCBsZWdhY3ktdHJ1bmsKKzIyNDY5IGNhN2RiYWNiYmUxODY2YjZkYTc0ZDcwN2JkNTkwYzdiN2I1MTM1NTIgbGVnYWN5LXRydW5rCisyMjQ3MCBjM2M4N2NlNGFmZGNhNmIzNzhiZWIzZDFiZmM0MDg0OGRmMDBlNzhmIGxlZ2FjeS10cnVuaworMjI0NzEgNzg2MWVlOTUxYTkxYzRlOWY1ZmY3MTQwMmMyNGMyZWU0ZGNkMjQ0NiBsZWdhY3ktdHJ1bmsKKzIyNDcyIGViNWUyYjY4MzU0ZjVkZWJmMjNkMzAyMGY4YWVjMjQzNGU3MGRkOTIgbGVnYWN5LXRydW5rCisyMjQ3MyBiZDhjYjY2NWI1ZTEwOGIyZjk0Y2YwNGQ0OGM1ZWY2ZjI3MzQzMDRjIGxlZ2FjeS10cnVuaworMjI0NzQgZTlhOTdiMDI4ODliMDgwZjgzYzlkZjQ5MzllNzRjZTk5YzgxZGI0ZCBsZWdhY3ktdHJ1bmsKKzIyNDc1IGE5ZmYwZjZmZjI2MGVhNDEzNjExOTlhYjhkNjkyYjY0ZWM4MzRiNzYgbGVnYWN5LXRydW5rCisyMjQ3NiBkZDgyY2Q0ODZkOGExZDE5YTI0NzhjZjAxYzBkYzcwYTg1N2YxNjljIGxlZ2FjeS10cnVuaworMjI0NzcgMzVjNjVkOWFhODZhMjZmODc5YmJlZjYwZjhkN2M5ZDkxODZmYzEzMSBsZWdhY3ktdHJ1bmsKKzIyNDc4IGI2NTMxMjIzOGMwYjY2NGFhZDMyZGVjOGVhZjg3ZWZiMjc1MmEyZTkgbGVnYWN5LXRydW5rCisyMjQ3OSAxY2U1YTkwZmIxOTJiODQ2OTgyY2ZhZjI3NDU4MjA5YWI4OGNlYWQxIGxlZ2FjeS10cnVuaworMjI0ODAgZDg5OWJmYmZmYmJhMTc5NDc1N2NmMDE3NmYzZDU1MjNmNjMxMzg3ZCBsZWdhY3ktdHJ1bmsKKzIyNDgxIGMzNGJiZjE3Mzg1ZTRkNGQwYzg1YzQ2NDM3NjNhY2MzNGQyOGY3ZmEgbGVnYWN5LXRydW5rCisyMjQ4MiA1NTAxOTU4ZWRjMzYxZDE0YzgxZTBkZDcyMDMyOGU1YjRlZDY2ZGY2IGxlZ2FjeS10cnVuaworMjI0ODMgNGM4ZDc4NjhhOGU3NjEwMDM1M2M0YTY3MzBkNWNkNTIwM2M1M2YxMiBsZWdhY3ktdHJ1bmsKKzIyNDg0IDlmYjQ5Y2UyNDBkMTllYmU0ZWNkOTFjYTBlZTBkNjEyZTJjNmEzMmMgbGVnYWN5LXRydW5rCisyMjQ4NSBiOTUwMmQxYTI3YTdhNTk3OGE4YmFjZjcxY2FkZWRlMmUzOWU0OGVkIGxlZ2FjeS10cnVuaworMjI0ODYgMWFmYzMxMTZjNjAyMzViYTMwZGU5MmZmZGRlNDI2ZjNkNWRmZDhlNCBsZWdhY3ktdHJ1bmsKKzIyNDg3IDFiYTllMzY4NGQzNTQ4MmI3M2EzNzRmZjU3NDJiNTY0Y2UzNmRkZmIgbGVnYWN5LXRydW5rCisyMjQ4OCBmMTBiNjhlY2VlZmMxYWFmZTI5NDVlZWI5ZjMxZTMzYzUzOGE2ODlhIGxlZ2FjeS10cnVuaworMjI0ODkgYmU4NWY2ODZhZDk3YmJiZTIwZmM0ZTA1ZWJjZjNiMjZlNjAzZTBkNCBsZWdhY3ktdHJ1bmsKKzIyNDkwIDZmNmFjYmY3ODkzOTQzZjgzNGI1YzQyM2M5ZTM5MDgxYjIwZjc5MTcgbGVnYWN5LXRydW5rCisyMjQ5MSBiODY1Y2Q1YzE5MjUwMzZkYWVhYjNkOGIyYWRmYzNiNmEzNWU1MGM2IGxlZ2FjeS10cnVuaworMjI0OTIgYTVhOTMyYzIxNTgzMGUwOTUwNTdkNmMyNjY1OWVjZjIyNzNlNTFkZiBsZWdhY3ktdHJ1bmsKKzIyNDkzIGJhOGM2MmU1ZjkyZDY5ZGZhMzFjYmViMDJkOGZmYzVkNmI2NGFjOTAgbGVnYWN5LXRydW5rCisyMjQ5NCAxNGU2MDUxZDVmMWYwN2E4YjQ0MGEyN2NjMDUzY2U4MzRhYzBhNGJjIGxlZ2FjeS10cnVuaworMjI0OTUgM2FhMDYwNjQ0OTAzMTY2ZTkxZDc1YWM3YTEyNDNhYTQxZjhlODk0OSBsZWdhY3ktdHJ1bmsKKzIyNDk2IDVhZDcxZmRiMjA1YjM1NjdhYjJiMGIwNzc0Y2NhNmJmZjE5YTIyZjkgbGVnYWN5LXRydW5rCisyMjQ5NyA1YzJiZjZjZGUxMjMwM2IxYzJhYzIyM2E5YjI3YTI3ZjA2MmE4ZGQ3IGxlZ2FjeS10cnVuaworMjI0OTggZjdhMjEzMGEyNTYzNjc3NDRkZTczODQzZGRmNjkyOGQ3Zjk1ODcwOCBsZWdhY3ktdHJ1bmsKKzIyNDk5IDM3NTU4ZTg2NWVhZDU0YzI3OWM5NjE1N2RkYTU1N2IyNTZjNDdiYWEgbGVnYWN5LXRydW5rCisyMjUwMCBjM2Q1M2QzNGFiNDRkZWJjNjk0YjMwYjM2ZGUzZWI5NmQwNWRkOGMyIGxlZ2FjeS10cnVuaworMjI1MDEgMWU4N2RiMGNhMjQ4MmUxYzhlNTMxMzZjN2M2OTcyMmU4NzA0MjFiYyBsZWdhY3ktdHJ1bmsKKzIyNTAyIDE0NTZlYzczNTA4NzJkNjdhOTUyYjk1MmYwZTU5NGQyNjc2OTVkYzIgbGVnYWN5LXRydW5rCisyMjUwMyAxNTdiYmI4OTYxOThiOThjMWZmOWM5YTM1MzFjYjU2ODMwNDY0YTc5IGxlZ2FjeS10cnVuaworMjI1MDQgMTA2OTA5MGIxMjRlZjg3ZjNlNWNkM2YzN2U4Nzk5YzU3Njk4ZjA1NSBsZWdhY3ktdHJ1bmsKKzIyNTA1IDNkZGIyMTA5MzJjYTZkZDFjOGMzNGY2NTIzYWUyMmUxYzc4MDA5ZjIgbGVnYWN5LXRydW5rCisyMjUwNiA2YzRhODczMDY2M2FkZTBlOGUzODQ3ZTk4OTk1ZWQwMTk5MzJhMWM1IGxlZ2FjeS10cnVuaworMjI1MDcgNjMwMzAyNjY2NDY2MmI5ZmQwYjk0M2U3ZjVlODc4M2M4NzY3YjE5MSBsZWdhY3ktdHJ1bmsKKzIyNTA4IDgxNDQwZGQzMjZiYmUxNzUyZWFmZDEwNjg1ZGU4NWYyMjllYjkwOWQgbGVnYWN5LXRydW5rCisyMjUwOSBiOTcwMTUzOGY4Mjc2YTY5NGM1ZmFiNWE3YzVmNmNkOWRmNTg0Mjc2IGxlZ2FjeS10cnVuaworMjI1MTAgZWQ5YWJhYjk3MTA3OGNkYWZiMTFkOGJjZThmYjcxMmM0NjlhYTcyYiBsZWdhY3ktdHJ1bmsKKzIyNTExIGNlYTk0NTc2NGRiMjE5ZmQ5NGI2Njk5YmM4NjJkN2EyNmUzMjQ2MDggbGVnYWN5LXRydW5rCisyMjUxMiAxMTkwM2ViMDA5ZjY3MDIxYzliZDY0MzlmNWE1NDY2ZTFjODZkZWFjIGxlZ2FjeS10cnVuaworMjI1MTMgZmE3ODZmOGE3NTcwYTViM2MyNjI4OWIwMjNlOGFhZjUyYjE4MGNhYyBsZWdhY3ktdHJ1bmsKKzIyNTE0IGE3YmJhYzY5YzhlZjIyNjYwNjdlNjkxOGNlZWMxZmUyYmU1YzI2ZjUgbGVnYWN5LXRydW5rCisyMjUxNSBiMGQyZGU4Y2UyNGY0YzI1NzMzNGNiZDY2YzI2NTcyNDExODNkZTg3IGxlZ2FjeS10cnVuaworMjI1MTYgYWYwMDE4YmI4Y2ZjMzE5ZWNiYjk2MTMyMzI3NzVhYTE3YTZiMjAyNiBsZWdhY3ktdHJ1bmsKKzIyNTE3IDBjMmI0MzkxZGY3ZGQwYzRlNWFkZWZiNDdhNWIzNjA5NzY4MDkxMTEgbGVnYWN5LXRydW5rCisyMjUxOCA2Y2I5ZjUzOGRjZTQ5ODdkMGYyYmRhZDMzNmRjZmI4OWQzMzQ2MWQ5IGxlZ2FjeS10cnVuaworMjI1MTkgZmM3NjE3MzEyMTgyODNmN2IxYjZlMTc2NTg5MjdjODA5YjY2MTc1ZSBsZWdhY3ktdHJ1bmsKKzIyNTIwIGE2M2E2OTMzNTU0Zjk1MGQ4MmUzOTE0YmYyZmJiNDk2ZTRkMDA4ZDAgbGVnYWN5LXRydW5rCisyMjUyMSA2ZjYyZjVhNjJhMmM2YmQwNmE5MWVkNzRhYTkzOTA5MGRkYmJmMDIyIGxlZ2FjeS10cnVuaworMjI1MjIgMmQ4OGRlYTQ2NDE3N2NhNTdjMjcyZGRlZjNjNjRhMTA2OGRiYzNlMyBsZWdhY3ktdHJ1bmsKKzIyNTIzIDFmNGViOGM5MjVkNTE4ZTU5YmNhODAyNmE0MjQyYmE0MWVlNDRhNTQgbGVnYWN5LXRydW5rCisyMjUyNCBmN2RjMjFjYjE2NjFkYzM3OGIyMzkzNDVkOGQyMWJjNDViMzgzMzEwIGxlZ2FjeS10cnVuaworMjI1MjUgM2VhMjkwOWUwNTFmZmI2Njc3MThkNTE0NzZlM2M3YjgzOTg1OWUzMyBsZWdhY3ktdHJ1bmsKKzIyNTI2IGNiYWE1NDVjNzg4ZGFhOTc5MjEwNDYwNjgxNTRmMmI3ZmJiODE4N2EgbGVnYWN5LXRydW5rCisyMjUyNyBkMzcwYTU4ZmI3ZmQ4ZjNkZDA1OTJmYWRhNGFkMzQ2MDMzYTdlNzhkIGxlZ2FjeS10cnVuaworMjI1MjggNzk1N2IzZjVkNDYyZDdkZDAxNWEzMGFjZmUzNTczNDZiNmFjOTdiYiBsZWdhY3ktdHJ1bmsKKzIyNTI5IDQyMjQ2YjhjNThiYmE4OTYwYjNjYjc0NDJkMDcyZDgwNDU2N2Q4NjEgbGVnYWN5LXRydW5rCisyMjUzMCAxZmVjMDMwMTIzNDY3ODk1NGMwM2MyZDY4MzVmN2E2MmRhNjJlOTdjIGxlZ2FjeS10cnVuaworMjI1MzEgMjYxZTI4ZTdmYTAxZmFhMTI1ZTM0YmIyYjQ3YzBkMjlmOWQ2NDBmMCBsZWdhY3ktdHJ1bmsKKzIyNTMyIGI1MjVlNjAyZjZjMmE0Mjg1OTY0OWNkYzk3NDE4ZjNmMmY2ZWUyNGIgbGVnYWN5LXRydW5rCisyMjUzMyBkYjQ4OGNjOWYyNTk4ODZlNjZlNzFkODUxZWU2M2MzOTgyNzYwYjlmIGxlZ2FjeS10cnVuaworMjI1MzQgZWZkY2Y0MmY4ODUyNzJlYmRkOGE5MWEyYmZiMDc4NTcyODg2Yjk1NSBsZWdhY3ktdHJ1bmsKKzIyNTM1IDczZjY4NWRiOGMwYzc5Mjk3ZjhiNzVmMmNhMjQyYzY1MjlmZmRiMjIgbGVnYWN5LXRydW5rCisyMjUzNiBiNDE2MzhhMTFlNGU0MzllZmRiZWZiMDA1YWFjZjVkMjhlZTI4N2E4IGxlZ2FjeS10cnVuaworMjI1MzcgZjkzYzE2YzEwYTU1YzBlOWRkYTM3MzBiZGNhM2FhMDZhMmNiODEzMSBsZWdhY3ktdHJ1bmsKKzIyNTM4IGVhOWNmYzM4ZTExYmQ4MGUxODdjZDkxMzI2YWQzMTM0OTEwYTcwZjIgbGVnYWN5LXRydW5rCisyMjUzOSBiYTg3YzI0NGZiNTliZTY1NGI3ZmJhZGVkNzE2NjdhMWMwNzllYTMzIGxlZ2FjeS10cnVuaworMjI1NDAgMDYxM2ZhNTdhZTZkOWM3MzU0ZmVmODRiNWUyNTY4MDAyY2YwNmFjYSBsZWdhY3ktdHJ1bmsKKzIyNTQxIDA1YzlhMzVmMjE0ZjI4YjQ5ZjU3NWZlZDdjZTBkNzMwMjM0YjYwYzEgbGVnYWN5LXRydW5rCisyMjU0MiA2MDI2NGQxZTEwMGU5ZDY0ZTkyMWY0NGI5MjZlZGZmYzQ0MzA0OTU4IGxlZ2FjeS10cnVuaworMjI1NDMgZDZiMDg0YzI1YmE4YmQxMTc0ZjBmNDJiOWUyOTA4ZTkyZTUyYmJlNyBsZWdhY3ktdHJ1bmsKKzIyNTQ0IGViZmI3NGNlN2U1NjgxMzQ3NzQ5MjEyYjI3NTgwMGIxODc3Y2Q0NjMgbGVnYWN5LXRydW5rCisyMjU0NSBiMTExMmEyYzM1NGZmM2I0ZDVmNDkwMzY4YTNkZGE5NGFlNDczODQ2IGxlZ2FjeS10cnVuaworMjI1NDYgNzg2YWNlZDkzN2M1Mzg5YjFjNWY5MTg1MTE3YzFlZjFhOWVmOTBhYiBsZWdhY3ktdHJ1bmsKKzIyNTQ3IDYxMzBkZWViNGNjNjE1YjRjMDJjMGU2NTFlNGIwOGZjM2Y2ZTA1ZWYgbGVnYWN5LXRydW5rCisyMjU0OCA4NmNkNTdmOWRiOWI5NmYwZWQ2Y2Y5NTk5NjNmYjNkMGUxM2UyODRkIGxlZ2FjeS10cnVuaworMjI1NDkgZDQ2NjgyYmRhODJmZjVjZDgwMmE2MWFkZjQ5MzIxOGIxM2RlMjdhYyBsZWdhY3ktdHJ1bmsKKzIyNTUwIDgxNDQ3MjJkYzA3NjVlZjkyYTNmMDdmZWU3NmJiOTRjYjYwYzI2N2QgbGVnYWN5LXRydW5rCisyMjU1MSA3MjU3ZTg3ZTA3MjAxNmEzNzgwMGUxNmNjNzY5NzYxNzAyYWQwMjlmIGxlZ2FjeS10cnVuaworMjI1NTIgZGI5NzYyNTI5ZjQ1NDY2NjY0MmIwZTA0OTc0MWZlZGNhZjAwZGEzZCBsZWdhY3ktdHJ1bmsKKzIyNTUzIDM4YmUxNzdiZDQ5M2EwOGYxMjU3NGMyMDllYWI1MWMyYmRhMWVkNDAgbGVnYWN5LXRydW5rCisyMjU1NCBhNDhhM2Q3NTQ3NWVjZjJmMDM1ZDVjNDA0OTlhMjg1ZTQ1NTM0NjJlIGxlZ2FjeS10cnVuaworMjI1NTUgM2Q5N2E0YjVjNmFhNWU0NzNhOTA4OGQ4NmFmZDkzYzIxODVlOTU4YSBsZWdhY3ktdHJ1bmsKKzIyNTU2IDEzZjRiYTA1NTY4N2Y0N2U3MTg5MjU0Mjg3MjJjZGQ2ZGFjNzc2NmMgbGVnYWN5LXRydW5rCisyMjU1NyA5YjVhMmMxYTAyZjNjMGI5ZDU3ODY0NmUyMTFjNWVlMmI4MTVmMmFkIGxlZ2FjeS10cnVuaworMjI1NTggNWI2YTZkN2Q0NGFlZDJiMjAxYjdlNDI1NGE2YzAxYzIwYjg4N2E1ZCBsZWdhY3ktdHJ1bmsKKzIyNTU5IGY5MjBkZGI3N2Q4YjNmODQwN2E5YTlkOWQ4YjM2NmExY2Q1ODc0MzYgbGVnYWN5LXRydW5rCisyMjU2MCA5NDkwNWViNzJmNGZjYjViMjM1ODk5MWRmN2JiMjk3ZTJkZDE4ZmRhIGxlZ2FjeS10cnVuaworMjI1NjEgMDUxZDhlMzgwZjM4MmZlZDFhNDZmZGMxZWQyYWE3NGVlNGY3MWVhMyBsZWdhY3ktdHJ1bmsKKzIyNTYyIGU5M2Y1YzM4NWZmNDQzNGMzNGIxMDg4N2EzMDhmM2IyNWI4OWIxOGEgbGVnYWN5LXRydW5rCisyMjU2MyBkNWFjZmYxNzhhZDVlNjY0M2ZlZTJlMjE2NzZhNzZlN2YzMTFmY2QxIGxlZ2FjeS10cnVuaworMjI1NjQgYzBlZTEwZTBlMTNlMzVlNTQyODI4ZjA0YmQ1MDg3ZDIwNjBmNjQ1NiBsZWdhY3ktdHJ1bmsKKzIyNTY1IGJlOWI1MDcwNGU0YzBhODAzMTQ5YzU4MGM0MWUwZmZiNzg3ZjQ4MGIgbGVnYWN5LXRydW5rCisyMjU2NiAwZGFkMGRjNzE0OWIyYjdjMWRiMDdkMmRlN2QzYzMzZmNkM2JhZDdjIGxlZ2FjeS10cnVuaworMjI1NjcgZWZmOGNhNjc5YmY2YWVjYTY3M2QwYWU0NWNjZDhiNmEyMmY5OTI3NiBsZWdhY3ktdHJ1bmsKKzIyNTY4IGVhMTMxZmYxZDhjZDgyZjk5OTA4OTgzMWRlZjFiYWYwODU4MjMwNmEgbGVnYWN5LXRydW5rCisyMjU2OSA5MjIyYjZlM2IzNjg3ZWYwMjkyNWMyMjY4YWI4NTQyNzZjMWRlMWQ3IGxlZ2FjeS10cnVuaworMjI1NzAgNzhkYWNiNTQzODg3ZWZiODFiNWVkY2Q5NDY3YmE0MmYzNTgxMDUzMSBsZWdhY3ktdHJ1bmsKKzIyNTcxIGYxOTlkMGFhOWY4MTBmN2NhNWVhNDFiMjlhMzg5YmIzOWUxN2JlOWYgbGVnYWN5LXRydW5rCisyMjU3MiBiNzM4NDI4MjM4ZjE5NTAwY2IxMGFkNTBjMGZlMzFkOWQzMjU1ZjM3IGxlZ2FjeS10cnVuaworMjI1NzMgYTFhZGJmMDc1NjU3NzNjOTcxMGY1ZmVlN2NjNTQ5YjlkYzc4ZDQ4MyBsZWdhY3ktdHJ1bmsKKzIyNTc0IDYzYjliMTc3ZTM1MGZkNjZkNTM2NDA3NDllMjZkYzFlNWE0NzRjNjcgbGVnYWN5LXRydW5rCisyMjU3NSAxNzgwMjA3N2U3N2NmNTlmZDE0N2M5MmI0MGE1ZjdiM2E0NDA0NWE4IGxlZ2FjeS10cnVuaworMjI1NzYgM2IzMDc5Yjg1NzI3NDM1MjBhNzdhNzA5N2Y0NTQ2Zjg3ZDQ5MTIyYiBsZWdhY3ktdHJ1bmsKKzIyNTc3IDhjMmEyOWI3NTQ4ZWQ2MjQyZTE1ZDM1MDIwY2UyOTUxZTIxM2ZhNzggbGVnYWN5LXRydW5rCisyMjU3OCBiYWZiZTVjYzk0MWZmMWFjNzIwN2Q1N2E1ZmYxOWRiYTYxMjQ0MjYzIGxlZ2FjeS10cnVuaworMjI1NzkgMmJmMjY5MDk2NmZmZDMyMWFjNjUzYTFlMWY2NjdkNjNjZTlhNDU3YSBsZWdhY3ktdHJ1bmsKKzIyNTgwIDM2ZmE4ZTliYzJkYTllODI1NDM5MGE5NGQyNWIwZTY0NjYzZDk5NjQgbGVnYWN5LXRydW5rCisyMjU4MSAwMzM0NjJkZjE3YmY1OGI3YjdkYjc3OWQ2ZTNjMTViNTA2MWM5NWYzIGxlZ2FjeS10cnVuaworMjI1ODIgYzRiMmE2YjA0ZDBiOTBjMTA0MzA0YTRkZTFmZTBiYjk5MTU4NDA0YiBsZWdhY3ktdHJ1bmsKKzIyNTg0IGZjYWIzNmM5MzMyN2NhNWE1NmZjMGEwNjcwYmFmZjQ1NGEyMjJiYjUgcjIyYTItYnJhbmNoCisyMjU4NSA0ODRjMDVkYzQ5OTg0MTc3ZDE1ZmVkZGI5NjIxZjNlNzJkMzVkNzljIHIyMmEyLWJyYW5jaAorMjI1ODYgMjk0YTU2YmY3MzE1ZjAwMDRiZmQ1YTFkNzg4Y2JjYWM1NTI0NjZmOSByMjJhMi1icmFuY2gKKzIyNTg3IGZkMTE5ODk5MDQ1YzgzODRjY2VlZDg2MzYwZWU0MGUyMjFkNjJiNTYgbGVnYWN5LXRydW5rCisyMjU4OCA5ZTRmNzM5ZTlhODQ4NjhlYTA1ZjYwZTRlMWZmODExYWJlYjM5MzE0IGxlZ2FjeS10cnVuaworMjI1ODkgNjM4NmYwMWYyNDAxNjJkOTdhMDhiOWVlMmI4Njc2MzllNGY4MmQ2NCBsZWdhY3ktdHJ1bmsKKzIyNTkwIDVmMWU3NTcxYjEyOWNiMDdiOTJhNTUxZTNhYzg2MDc4MGNkN2FiM2IgcjIyYTItYnJhbmNoCisyMjU5MSA4YTZjZGExNzU1ZWI5OTFkMjQzNDY3ZDdkOTA2MWI5NDQzMjRlNTM5IHIyMmEyLWJyYW5jaAorMjI1OTIgNzM0MDY2ZjIxNjRmMzZlNDJiMjY1MWMwMTcwMTlmMTEzYmJhZGUxYyByMjJhMi1icmFuY2gKKzIyNTkzIDVjOGRlNjhiM2NkY2JjNDYzZGFhNTMzNTk0YjdlMjQyYjczZmJmOWMgcjIyYTItYnJhbmNoCisyMjU5NCBhZjA1OGQ2OWVhZWRkNzkyMmJmMTJiZDZlYjUxMjk3M2ZlYmM0ZTU1IGxlZ2FjeS10cnVuaworMjI1OTUgZDc2NGQ1NTY5MmExNGY0MWM2NTNmZjlkN2E2MTBkZjFjNDNkYmY0ZSByMjJhMi1icmFuY2gKKzIyNTk2IDQ3OWI1NjBkZWNhNzAxNzE3YWE5ZjIyMDk1MzRmYTk4MzM3ODFhM2QgcjIyYTItYnJhbmNoCisyMjU5NyA5MzVhYTA3NGNkYjg2YWJjOTE1MzJiYjU2YmQ2NGIwNzM2NTVlZTBhIHIyMmEyLWJyYW5jaAorMjI1OTggMmEwODNlMDUwNjE3YjU5MjFkMjIyYmNiYTY4YzIyOGI1YTc0MTE1MCBsZWdhY3ktdHJ1bmsKKzIyNTk5IDUwZDNiMzY2ZThjOGE5MGQ2ZjMwZGM3MmUxNDE5ODE4YTg2NDM3YTcgcjIyYTItYnJhbmNoCisyMjYwMCA4ODQyMjA4MTA5NWFmNDA4ZWNiODg2OGRhM2M4YTU3Mzg2YTE4MzVmIHIyMmEyLWJyYW5jaAorMjI2MDEgZTliNzk1ZDRjMDYwY2Q3MjIwNDNkNzIyOTM3NzQ2Mjk2NTg3YzM2OSByMjJhMi1icmFuY2gKKzIyNjAyIDdiNTUzYjFjM2U4YmQxNGQwYzhiNDE2OWM0YmMyMzZhYTM0YWQ5YWYgbGVnYWN5LXRydW5rCisyMjYwMyA2MGQ1Y2JiZWFkYzNiODY4ZjZlZWY1ZWZjNmJlZmRhMTVkYzZiNDExIGxlZ2FjeS10cnVuaworMjI2MDQgZmI0N2RiODU0MTBlNDlmODU1ODMwMDg3ZjFkY2ZkNWZiZmY2NWUzZiBsZWdhY3ktdHJ1bmsKKzIyNjA1IGMyZGIxOGMwNzBmZWNkYTE2YzRkZjQ1MTUyMDg0ZGRlZjhmMGIzOWIgbGVnYWN5LXRydW5rCisyMjYwNiA1ZWJkYzNhZDg4Nzc5ZmU4YWRlZTlkMmVhN2U0YWRlNzYyZDA5YmNhIGxlZ2FjeS10cnVuaworMjI2MDcgY2U2ZWE0NDQ5ZTk3Y2IxZWEyOTkwMzZiYmI4NjAxZTJjMTRhOTYxOSBsZWdhY3ktdHJ1bmsKKzIyNjA4IGI5Y2FmOGNiMTJhMmVjMzhmNjFmM2ExYjhiZGMyNTMwNTEzMzc3MGQgbGVnYWN5LXRydW5rCisyMjYwOSBiNDUwODQ3MzA5MTZkOTllMDEyMDI3NGNhZTAxMjVjZGUwZGE3MjNjIGxlZ2FjeS10cnVuaworMjI2MTAgNzdmNDk1ZTgyMmMxNTgyMDFhZjllYWJlNTM4MGZiYTQyMWNlNmNlMiBsZWdhY3ktdHJ1bmsKKzIyNjExIDBlN2FlZDUzYjU4MzMzMmJkYmI2NzlhYzdlZGRkYjRmZTU4MmQyOWQgbGVnYWN5LXRydW5rCisyMjYxMiAzYTJmZTc0NWEwYmJmYWZmNzU1OWM4MjgxZjQ1NDgwYjIyNWFkYTEyIGxlZ2FjeS10cnVuaworMjI2MTMgYjIyNjU4YTQ2OGNmYWFkNDM2NTQyYzAxYzcyMjk3NjM4NmE1N2MwYyBsZWdhY3ktdHJ1bmsKKzIyNjE0IDYyMTg0OTlhZWJkYTJiOTk5MjYyNDE2MDMwMDY1ODk3YzhlMGQ4OTQgbGVnYWN5LXRydW5rCisyMjYxNSAwZjg3M2QwNmFjMTNmYmUxNTMxNzM4MjUyZmNiYzdjNmJlMDZlNWE1IGxlZ2FjeS10cnVuaworMjI2MTYgZmIzMTllOWNjMmFkZmVkM2ZhNTg3YzIwMWYxZWFhYjQ2NWZhMGE3YSBsZWdhY3ktdHJ1bmsKKzIyNjE3IDc3NjFhYzhiZWI4MTllMmNhYmNjZTliYTFiMzY0NzYwMmI3ZmYwMWEgbGVnYWN5LXRydW5rCisyMjYxOCAwYzZjNmU4NzgzODhiOWFjNDljYWRiYmM1MzQ4MTY2ZjcwY2E2ODYyIHIyMmEyLWJyYW5jaAorMjI2MTkgODhiMWVjZDA0OGZiYzIzYzUwN2U5MDkyZTg0MTQ2NzlhMjlhZjlkYyByMjJhMi1icmFuY2gKKzIyNjIwIDhiYzdiY2EzMmE5NTY4YzZhYzJkNjM4MzEyODE3NTI4MjA1YTU5YzIgbGVnYWN5LXRydW5rCisyMjYyMSAyZmMxMDJiODM4ZWQ4MjBmNzY4MTZhNDVmZmNjOTE5MWJiNDczZjA1IGxlZ2FjeS10cnVuaworMjI2MjIgOTYyNjNjZmIyYzk2NjI5OTliYzZhYTdhMjQzNTgyZDdlZWRmNDA1NCBsZWdhY3ktdHJ1bmsKKzIyNjIzIGU4NTFlNjE0OGFkOGQ5ZTU2NWZmMzhmZjgzNTQ4ZmU4NjIzMTA3N2YgbGVnYWN5LXRydW5rCisyMjYyNCAxMDBkY2M5ZTZmMmYzYWFkOTAwMjkxZDY2MzA3NzI5MjQ2OGVkMGYyIHIyMmEyLWJyYW5jaAorMjI2MjUgYjk0Y2U3ZDcwY2ZjYTkwNjU1ZGJlNmRmOGI2NzcwYzIxZDhlZTZmZiByMjJhMi1icmFuY2gKKzIyNjI2IDYwYzBjZmY1ZDU3ZWNiZTBlOWNmMWI3NWRjY2RmZDM4ZWE0ZGMyYjMgcjIyYTItYnJhbmNoCisyMjYyNyA4NTNkYmUxMmJiZTY4YTY2MmFlYzc2YjUyNGMwYjI5YzEzMGU0Yjk3IHIyMmEyLWJyYW5jaAorMjI2MjggYmU1YmU5ODljYWZmZWEwNDZiYTBlMzMwY2ZjN2U1ODU2ZjJhMTZkZiBsZWdhY3ktdHJ1bmsKKzIyNjI5IDg2MDdiYzg5MGIxZjAyNWQyZGRlZmM4ZjBjYzFmMzE0YjE1MzFjN2MgbGVnYWN5LXRydW5rCisyMjYzMCBhMDM4OTkzODkwYjIzZTZjMzJjZGU5NDU4MDE0OTY1MWZmYmM3Nzk2IHIyMmEyLWJyYW5jaAorMjI2MzEgNTU0NDUwNDA5YTczOGUyMWY5ODAwOTM3MGEwZjgwNTczZTY5NzU0ZiBsZWdhY3ktdHJ1bmsKKzIyNjMyIGQ5ZWE5OWE2ZjZiNDQ2Njg2ZTdjODdlZDYxMGM4M2MwZjY3YmE2MmQgcjIyYTItYnJhbmNoCisyMjYzMyA1YmNiYzU5MGY0YTcxMTYwY2U4NjExMTE2MDQ2MzgwMjdlMzA3Y2M2IHIyMmEyLWJyYW5jaAorMjI2MzQgODk5NmRjNTIwYjU3YmI3MjRhOTNmYmM2YTFmNzVjNjUzNGM2YTVmYyByMjJhMi1icmFuY2gKKzIyNjM1IGFjNmJmYTU1ZmNlYmY0YjgwMTA2YjUxNjM3OTI1NjFjOGY4ODdkYjEgbGVnYWN5LXRydW5rCisyMjYzNiA2MTI1ZDlmOTI0NDFkYzMyYTUzZDYxMTVjODgyOTFjNDZlYzdlMzc4IGxlZ2FjeS10cnVuaworMjI2MzcgOWRlODNkZGE5ZjA5YTNkMTZiYWUyOWE5Y2E0MzE1NTk1N2M1Yjk1NCBsZWdhY3ktdHJ1bmsKKzIyNjM4IDkzMDZmODI4ZmJiNzczNGZiMTJkNTc3ZjRmMDk1Zjc2MTA5NWYzNjkgbGVnYWN5LXRydW5rCisyMjYzOSAwMWU2Njc4MGFmNjE2MzFiZWI3NjgxNjZkYTVlODMzY2ZmMWI0OWI2IHIyMmEyLWJyYW5jaAorMjI2NDAgODFjNzU2NWE1NmFjY2U4NThlNmVkZmNlYWU4NjMzNWM3NzZhYjM0ZSBsZWdhY3ktdHJ1bmsKKzIyNjQxIDdlNWU5NzRiM2QzNzZkNGJiNWVmYTEzMTk4YWJmMmFjOWRiNzQ1NzcgbGVnYWN5LXRydW5rCisyMjY0MiBiYzljOGNlYmMyZWZjODA3ODYwNTE0YTllZWYwYzhjZTVkMDNiZjI1IGxlZ2FjeS10cnVuaworMjI2NDMgYzQwM2FmMDAzODg0ZTZhZGI1ZjUyM2Q5MWY3NmZkZjg0ZTljMWFkOSBsZWdhY3ktdHJ1bmsKKzIyNjQ0IDBkMWJiZTY1YTFkODc3Yjg1NzUwNGU4MzJiMzRhNTRmZjMxNTc3MjkgbGVnYWN5LXRydW5rCisyMjY0NSBkNGJhNmUyYWFhZTM0YWMzZTBiYjAzOTExNzlmNDdiZjFkZWQ1MzgwIGxlZ2FjeS10cnVuaworMjI2NDcgY2NjNGFmNjg3Y2FjNmNkMjE4ZWMwMTM5NWJhMWFiOWRhYWQ4OTc4NCBsZWdhY3ktdHJ1bmsKKzIyNjQ4IDVmNzMxMTE1ZTM1MjZiZGE3OGEzMWFjZjlhOTcwM2YwMzYwYmZlYjIgbGVnYWN5LXRydW5rCisyMjY0OSA0NzYzM2I3OWVjMTlmM2FlNjZlZGRkZmI2MWNmNjY5Nzc2MDMyODI1IHIyMmEyLWJyYW5jaAorMjI2NTAgYjJkYWQ0ZDE3Y2E5YWUxZGZmM2ZiNWMyMzhmMDVkZTczOThjZmEyYiByMjJhMi1icmFuY2gKKzIyNjUxIDA5MjhjZDYyZGRlYTVkMjBjMWFjODAyNDA3ODMyY2ZiNjNkODMzMzQgbGVnYWN5LXRydW5rCisyMjY1MiBhNmNlMmQxNmQ3MzlmNzJiMjRiNzE5ZDhmYTA5NTI5ZTFmNzFmNzdiIGxlZ2FjeS10cnVuaworMjI2NTMgMGIxMWYwOWNmMWU0MGQzY2MwNTE3YzhmNzYwNDkyZmZiZTJmMDRhNCBsZWdhY3ktdHJ1bmsKKzIyNjU0IDI5M2E0MTJjOWZkOTdkOTUyNGJlNTllYzY2MTE3OGMxNmQxNzNjODkgbGVnYWN5LXRydW5rCisyMjY1NSAxMjU3ODVmMWUxMmZlN2I4MmE1MTg4MmU1MGI2NTlhZDcxNzg2ZDFkIGxlZ2FjeS10cnVuaworMjI2NTYgODExZjI4OTYzN2FkMjRlZjFlMmYyNGNjZGYxZGM4OTkzMWJmZjc1MCByMjJhMi1icmFuY2gKKzIyNjU3IGIxNTljZTMzMTVjYjhkYTY4YzBiZWQ1MGI4Yzc1NWRkMjM1YjgxYWMgcjIyYTItYnJhbmNoCisyMjY1OCAzNGE3NGI4MWM5YjJmYTY4NTY0MDA4MmIyMTgzYzBkNGVmODIzZmIzIHIyMmEyLWJyYW5jaAorMjI2NTkgNzMwZGNkNmQ1OTBiMmJiZTFjYThlYWQyYWE3YmQ5ZWJiMTg2YzE4MCByMjJhMi1icmFuY2gKKzIyNjYwIGY1MmZhMmI3MDNkNzJjNmRkMDE5ZjI1ZGRmNjc0YzE1ZWUyZjczM2MgbGVnYWN5LXRydW5rCisyMjY2MSBlNzZmN2M4M2ViMGQ1NjA5Nzk3YTY0OGJjNTBkYTU3NjgxYzM3YWIyIGxlZ2FjeS10cnVuaworMjI2NjIgNWMwMzU4NGNmM2NjMWM2NWRkYjE5NmE1MzhkNzAwNjk4ZmY2MWExZiBsZWdhY3ktdHJ1bmsKKzIyNjYzIDJiN2MwYmVkZmZkYmQzOTQyOTQ2MzA1Y2YwMTY0NWY1NTY1ZThlMTcgbGVnYWN5LXRydW5rCisyMjY2NCA4NTg2MjhjZjZlMjU2OTQ1NDcyYWNjOTY5ZGViNmM3NzI5NzdmNTMzIHIyMmEyLWJyYW5jaAorMjI2NjUgMTdlN2IxYTMzMWYzNWRmZWYwMmRiODlkZjQ4OWIwMWU0MWJjMjRlNiByMjJhMi1icmFuY2gKKzIyNjY2IGZhMzlmMDBkZDVjMzMzYmRhY2NhZDhkN2VhMDBlYjE3ZTk0OGNlMWEgcjIyYTItYnJhbmNoCisyMjY2NyBmZmVmNGU0MWYwNmVkYzQxZmQ4MmFkYzFjNTQ1MjRmMzRiY2FlYWM5IGxlZ2FjeS10cnVuaworMjI2NjggYzYzN2YyOWM4MTk4YWUwMzcyYzU4MmQwMjY2OTJjNGRlYjFlNzBiYSByMjJhMi1icmFuY2gKKzIyNjY4IGQ3ZjQyYzlkZTk0NDBkN2E2YTI1MmM1MGYzZGNiMDVjOTdlYmVjYzQgcjIyYTItYnJhbmNoCisyMjY3MCBkZTJmYmM1MmMxZWI5ZjRkODE5YjI3ZDIxNjdiZmQxZDEzMjc3ZTE3IGxlZ2FjeS10cnVuaworMjI2NzEgNzUyNjlhYjI2ZDAzMTM3N2IxNzAyNjE0YzlmMmU0Y2QwOTI1OWU5YyBsZWdhY3ktdHJ1bmsKKzIyNjcyIDhkNjQwNDQ1MzQ0ODU3ZTQ4ZDVhMzQ5NzJhZWZiYzQzMTY2MmQ3NmQgbGVnYWN5LXRydW5rCisyMjY3MyBjNzI2MTZkNjE0M2MyYzg5NzI3MmFmMTA4MGE0MjI3NDQxNmVjOTkzIGxlZ2FjeS10cnVuaworMjI2NzQgOWNmNjY5NTgxMTEwMzRiZTYzMjgxMDdmYWI0OTM1ZGUwZTVmNTg3NCBsZWdhY3ktdHJ1bmsKKzIyNjc1IDUwMGMzNTkwMzhjN2IyMzVmOTkxN2ZhMDhkMjM5ODJlYWMxYTJhM2IgbGVnYWN5LXRydW5rCisyMjY3NiBiMTM5YmRiNmQ0OGE0YmNkNTA5OWNjOGZlMzdmODQyYWFkMDFlOTExIGxlZ2FjeS10cnVuaworMjI2NzcgOTk5ZGU1NGFjNmE2MjFlNmU3ZmJmMmY5ODk1OWJmOGE4MWEwOTg2ZCBsZWdhY3ktdHJ1bmsKKzIyNjc4IDVkODFjNmJmZjMwNmU1YWYwYTY1ODAxNjJmOWVmZjZiNWEyY2E0ZmMgbGVnYWN5LXRydW5rCisyMjY3OSBjMTQwYmQ3ZDNiZGNmZmNlZmVlMGU4OTliNGY5OTY3M2Q2M2FmNWRmIGxlZ2FjeS10cnVuaworMjI2ODAgZGFkMzIwOWNlOTczMzJhOWRhMjU1OWU2YjlmNWU5MTA5YmM4ODliYyBsZWdhY3ktdHJ1bmsKKzIyNjgxIGUxNmFkNWY3ZjM4NzIyMWJmN2VlMGJlN2NiZTNmY2I3NjY3YzUwYWQgbGVnYWN5LXRydW5rCisyMjY4MiA1ZmVjMWM5YTIxZWFkZjRlOTU1ZTAyYjRjNjhkYzhiMWRmNTg4MWUzIGxlZ2FjeS10cnVuaworMjI2ODMgN2JlNGM3M2JhYzUzZTE0OTM3YTRiODhiOGQwODNlZWIyM2Q5NTRkMCBsZWdhY3ktdHJ1bmsKKzIyNjg0IGRlNzQ4MzQ3YTQwNDgwZmY0MjQwMjlmYzc4ZGU3YjJhOGU4NjY2NTYgbGVnYWN5LXRydW5rCisyMjY4NSBjYTFiOGNjMWJhMmJkNjViZGVlYzAyNmZkYzA1NjJlNzAxODUwM2UwIGxlZ2FjeS10cnVuaworMjI2ODYgMDc1NzA5ODM1MGMyODU3ZDUwNmY0ZjAzMGM5NzQ4ODhmZGU2NTAzZCBsZWdhY3ktdHJ1bmsKKzIyNjg3IDRkNjlkNzQyZGIyZjQ0YmQ4NjRlMDhhNWFjYTNmZjczMTM5NWI2NzIgbGVnYWN5LXRydW5rCisyMjY4OCAwOTIyZDYwOWFjZDEyNTJhNzdlYTA5NWQ5Yzc2YmQyNDdiNWRmNmI0IGxlZ2FjeS10cnVuaworMjI2ODkgNzEzNzJhMGY1MGUxYjRkNTBkODA0MTFhN2MxMzYyNTdiYzExYzNmZCBsZWdhY3ktdHJ1bmsKKzIyNjkwIDJhZWEzOTRmNDdkZDQwZTFmMmM2NGM3NDFhMDZiYTFjNjJlMWQ5NTkgbGVnYWN5LXRydW5rCisyMjY5MSBmNWQ4N2M0MWY2NWIyMDI3YjYwOTBhYWU1N2ZlNjEzMDg2NjkzM2IyIGxlZ2FjeS10cnVuaworMjI2OTIgM2JmY2RjYWJhNzAzNDI1NDRjYjVjNTE5ODZjM2VlYTVlZmM3MWZhMCBsZWdhY3ktdHJ1bmsKKzIyNjkzIDI1ZDJmNjQ4MzM4NDE5ZmI1YTBhOTNkMjNkY2E2OTk5OGYzYTdkNzMgbGVnYWN5LXRydW5rCisyMjY5NCBmOTRjNGJiNzg4OGIyYzc4Mjc5YTMxYjQ1Y2U2ZWNkMjcyZDhlODQ3IGxlZ2FjeS10cnVuaworMjI2OTUgY2VlMWRlY2M0ZmYyMDlhM2Y0MmVmMzdlNWM0M2Y0YzRhZTZiYjc4MCBsZWdhY3ktdHJ1bmsKKzIyNjk2IDI4MTdmMWQzYWRiZTMwM2YwYWEwNTRhMWM4Nzk0YTU3ZTZiOTUxZDkgbGVnYWN5LXRydW5rCisyMjY5NyAxMGI0NGUzYjM5MDU0N2ExNzZmYTQwYWM1NDQzNjg0MTAxMmJiZWViIGxlZ2FjeS10cnVuaworMjI2OTggN2ZiNWYxNTY4NWRkMDZhOTI2OGFiOTRlZDVjNWUwOTEzZGVmNDI3YiBsZWdhY3ktdHJ1bmsKKzIyNjk5IDlhZmQ5ZDVmYjk3YTBiNjBlNmMxNDA2MjA5MzY5NDc4MzVhYmFlZDEgbGVnYWN5LXRydW5rCisyMjcwMCAyNWI5YjYzNGQ5ZTNkMWVhZmY1NzA1MzExOTVjNzE3ZDM5MTAxYmViIGxlZ2FjeS10cnVuaworMjI3MDEgM2I1ZjM0YzViYzZjOTNhMTcwMDgwZDViNDc1NWIyNDg5YzQ1NDNhYiBsZWdhY3ktdHJ1bmsKKzIyNzAyIDZjMmI3YjYyNGVmMjNmMjJkMjg0Nzg1ODc5OGM3ZmI1MDY1MjM4YjEgbGVnYWN5LXRydW5rCisyMjcwMyA4ZjkwZTFmNTBjMTE4MzhmY2FkMDNiZjgwMmZlZTFiOGZjMzQ3NzQxIGxlZ2FjeS10cnVuaworMjI3MDQgNTAwMTljYjc4NGUwZGNlZWIzZGRhMTU0ZjZhYjkwMjM5NzA3NzhiOCBsZWdhY3ktdHJ1bmsKKzIyNzA1IDc1MzM0MTJkYzU4Y2Q2YTlmY2ViZmI2OTkzZDlhNzRkZmM4NGVjZjIgbGVnYWN5LXRydW5rCisyMjcwNiBmN2FhZjcyMWE4MWIzY2ZiNzVjODViYzU2ZjlkOTU5ODc2ZTA0NjM1IGxlZ2FjeS10cnVuaworMjI3MDcgMTM0ZTEzM2Q4YzQ0NWNjNmRhZmM2NTkxZDdiNTdiM2RhM2VmODA3ZCBsZWdhY3ktdHJ1bmsKKzIyNzA4IDBiNjQyZDIyMGIwMmUyZDBkZjg5M2FjMjM4OGRkNzY5YTUxZmI2YWUgbGVnYWN5LXRydW5rCisyMjcwOSA0NWQwZTExNDIxMmU5ODA1MTY0OGJjMWM2OGU5NzgwNmVkNzNkN2ZkIGxlZ2FjeS10cnVuaworMjI3MTAgNGEzMGVjNzk4ZTZjMmViODU4YTA3MGI4NTI0NmE2ODQ0NDE2ZmMzMSBsZWdhY3ktdHJ1bmsKKzIyNzExIDYxZDUzYzA1M2U0MzRlOWVhMDY2MmM1MTNjMjBkMWYyM2M0YmRlZmEgbGVnYWN5LXRydW5rCisyMjcxMiA2ZTZmYzdiNmEzNjAxYmRlNmVmNDgzNzM4YWRmYjYyNGMyNjA4ZDI5IGxlZ2FjeS10cnVuaworMjI3MTMgMGRjZWU5YmNkODEzZTg2MTYwNTI3OGVkOTZlYzE3NDE2N2EwODNmMSBsZWdhY3ktdHJ1bmsKKzIyNzE0IGIzYzkyZjAxMzg2OWYwNjg5ZWZmZDUyY2I1YTAxOTlhYTc5ZDVjOWYgbGVnYWN5LXRydW5rCisyMjcxNSA0NWVhM2I1ZmNiZTU3ODdiMDVjYmVjNjU3NjFmNjVkOGFmYmVhNjA3IGxlZ2FjeS10cnVuaworMjI3MTYgOGQyYjJjYjJmZWJjZjA0ZTk1MTIxZDhhNjhlYmE4YzNmNDAzZjM5MCBsZWdhY3ktdHJ1bmsKKzIyNzE3IDU1M2Q2ODg0MzhjNDM0NTZlYTc0NWU1NDhjZmEyMzQ4MTMyNTkxNDUgbGVnYWN5LXRydW5rCisyMjcxOCBjMzkyYzNlNDlkZDU2ZWQxNDJmZWM2ZWJhY2FhMzE1MDFkMjI2ZmZlIGxlZ2FjeS10cnVuaworMjI3MTkgZjlmNGJkY2JjMjVhYWUzYjg1MmRiNGMxMmM0ODlhMjg3YTAyMTdhMSBsZWdhY3ktdHJ1bmsKKzIyNzIwIGJjNjNhZmM3MDFlZjcwZGE2NWUwZjdkNjk4NmZjMzI4NmI5Y2RlZGEgbGVnYWN5LXRydW5rCisyMjcyMSAwZTcwZGY5ODQyNGVkY2MzNmI4ODgxZmNiMGRhMmZmNDMzYjdiMWE0IGxlZ2FjeS10cnVuaworMjI3MjIgZTFjOTFhYzU1Y2NhODA0Y2U3ZDEyOTIzYjQ1ODM2N2U0MjNlNDRkNiBsZWdhY3ktdHJ1bmsKKzIyNzIzIDY3YjMyNWNlMDIyNmQ0MGFmMTAxMjRkYmEzOTU2ZmZlMWQyMzA3MjcgbGVnYWN5LXRydW5rCisyMjcyNCA0Nzk2YTY3YTk5OGI5OTBjYjgyMzM3OGI4ZDdlMWUxY2RjZjFlZDM1IGxlZ2FjeS10cnVuaworMjI3MjUgOTg0ZmZhMTI0NjA2MDliOTkyN2MxYjk3NzE1MzIyNDM3ODYzNzIyNSBsZWdhY3ktdHJ1bmsKKzIyNzI2IDc3ZmVhOGZhMWYxNjQzMWMzOWZlZTcyZGZjNDdiZGFjYzFlZmFjYjkgbGVnYWN5LXRydW5rCisyMjcyNyA5M2NiNWVjNDQwMTc5OGQ1MjNhNjgxZjJhYmQ2NTBmZjAzMWEyNzY4IGxlZ2FjeS10cnVuaworMjI3MjggYzE3MWIwN2JmNmE5ZThkZWVmY2Q5N2FjZmE2Yzk5NmFhYThjMDBlNyBsZWdhY3ktdHJ1bmsKKzIyNzI5IGRlOTc3ZDc2MjdlYmZmYzE5MTcxMjA2Y2E0MTUwMmVlYzY1MWJjZjIgbGVnYWN5LXRydW5rCisyMjczMCAwMDNhMGZlOWMzNTAzZWVkMDZhZTU4OWE0NzUzNGE2YWViYzhjZmJjIGxlZ2FjeS10cnVuaworMjI3MzEgNWM4NTlkMmNiMzdiZGM1MDY5NjUyY2E4MzQwYjMzYjBhNDg3Y2ZhZSBsZWdhY3ktdHJ1bmsKKzIyNzMyIDNlNjhlMWEwMmFkMjA4YWRkOGYzM2JhY2MyZDcwMjBiZjRjNjIwMTggbGVnYWN5LXRydW5rCisyMjczMyA0MmIyZjE5MzYyNTQ2ZWQzYjgxNTE3ZmJkYjczODFkMjYwNmViMjBlIGxlZ2FjeS10cnVuaworMjI3MzQgM2U3NDMxOGExYjc2M2JkYjRiMTRiMzg4MjY2MDEzNmI3ZGIwOThmZiBsZWdhY3ktdHJ1bmsKKzIyNzM1IGM2Mzg1MDM4ZGUzOWFmZTVjNzEyNjI2YmQxODE0YjcwNmU4MWU1OGEgbGVnYWN5LXRydW5rCisyMjczNiBjMWFjNWY4MjdiYzI2MzAwM2M2YzJmNThlNGNhYjMzNmJhYzBiMDMzIGxlZ2FjeS10cnVuaworMjI3MzcgZDc5YjUxODY3Y2RiNTE5MDFhNWVkMTI0ZjkzZWNmYzAzZTU0NjRhMCBsZWdhY3ktdHJ1bmsKKzIyNzM4IDU2YjUwZTRkNjg3ZWJhNTEyM2RkOTAxNDliODQwOWZhNmUxNDQwMzIgbGVnYWN5LXRydW5rCisyMjczOSA2NzM0YzgwNjUxMTQ4ZjVhMDg1NWFmNjhkN2U3ZGRkODM2YjUxYzE1IGxlZ2FjeS10cnVuaworMjI3NDAgNDM1NGJhNDczNWEwOTY3NzYxNDRjODY3OTIxYmUyNzVhZGJlOTg0NSBsZWdhY3ktdHJ1bmsKKzIyNzQxIDYxNzU1NTU3OTYxMWZhM2JiMjU3Njk5MGZlNzMyYTE4OWI0MjNhM2YgbGVnYWN5LXRydW5rCisyMjc0MiA1NDdiNmVmMTEwOGM4NDk0NzlkOTA2YTM0YmFkZmIxZWNmYWE0MTUwIGxlZ2FjeS10cnVuaworMjI3NDMgZmM1Yzc1ODA3ZTE5NTJjYjZkZTk2MjIyYjAyN2NkOWY4NTk2MTVjZCBsZWdhY3ktdHJ1bmsKKzIyNzQ0IDA3ODI5MmJmOTRjYzcyMTBhNzVhZWVkMDRkNDI4NDA4YjViZmE1MGEgbGVnYWN5LXRydW5rCisyMjc0NSBkMGNlMDQ2MGY0YTdjNjFhZGQ0ODRiYjVlYmE3YmEwYWE3OWQ4ZDI2IGxlZ2FjeS10cnVuaworMjI3NDYgY2U0ZjFlOThiYTdlNDM2OWIzZWM5MDZlOTNhNzgzZjhhYzY2MzdjYyBsZWdhY3ktdHJ1bmsKKzIyNzQ3IDYyYmY5NDAxYTFhY2ZkZGZiOWVjOWU0ZTUzM2M4MGJiZDFmNWZmMTggbGVnYWN5LXRydW5rCisyMjc0OCAxN2IyYWZiYTdhNmZiMDRhMzEyMWUyNDE2Yzk5OWU3MGViZDk0YWM0IGxlZ2FjeS10cnVuaworMjI3NDkgNTk5MzFkYjU3MmIyNDQ5YTg4MjczNTRiMGZkMWJiZGMzYjlhYTdhMSBsZWdhY3ktdHJ1bmsKKzIyNzUwIGZlZmU5NTMxOWYyNGIwZDIyMjIwZjAyM2M4NDViMjIwY2IzNjk3MzYgbGVnYWN5LXRydW5rCisyMjc1MSA4NzYyODAzMGFkNzVkNjg3YmZkZTQ5Njg1YjU5ZDk3OTgzNWEwYzc3IGxlZ2FjeS10cnVuaworMjI3NTIgMDc2YWI4Y2I0NTFlYTAyMzc2OWNjMGE2MzFlZjhjNmZlNjE5OGE2OSBsZWdhY3ktdHJ1bmsKKzIyNzUzIGRiYmEyY2E3ZGMxZTVkNGQzNmVkYjk5ZGFjZDVlYWM0MDU1NjAwNGEgbGVnYWN5LXRydW5rCisyMjc1NCAzMzRmNDE3ODQ3N2FhNzc3MjE2OTFjNDRjMzAyYzdkZWE3MzI2NzU0IGxlZ2FjeS10cnVuaworMjI3NTUgY2UzMTliODJhOGU0ZGQ5ZDMyZmMyNjUyNmVlZTdkOWE3ZDA5YmQ4YSBsZWdhY3ktdHJ1bmsKKzIyNzU2IDVjZjkyNDFkMzViMDlhOWIwZGRmYzNkOTI5ZWRlN2M3M2EyZGNiOGYgbGVnYWN5LXRydW5rCisyMjc1NyBjYzAyMzQxZGVkZTQ3ZTA1OGQ1ZDY0NzcxNDJkZTdmZmI3MGFmYTRhIGxlZ2FjeS10cnVuaworMjI3NTggMjQ0ODBhNmQyN2M0ZDQ3OTM1Yzk0NGNkMTA5YzM1YzcwMGZlZDc1MyBsZWdhY3ktdHJ1bmsKKzIyNzU5IGIxYWNiY2Y3ZDU4Njg0MjZjZWNmYjQwZjg5NjhlNTE2OTQ3NTVlNjkgbGVnYWN5LXRydW5rCisyMjc2MCA1NDZlZjMxOGJhNWRjZDRhNzNiOWQ3N2E4Yjg1MzZjYmI0MDk2MGViIGxlZ2FjeS10cnVuaworMjI3NjEgNGFlYzljYjdmZTVkOWQ1ODMzMjAwNWNiNTU4MDllNDdkNzVlYmM2NiBsZWdhY3ktdHJ1bmsKKzIyNzYyIDFhNmNmMzI1MTQxZTBkOTU1ZjIwZmZlZTIyNWI0ODFjNTkxMTQzNGQgbGVnYWN5LXRydW5rCisyMjc2MyBmYmIzNTI2OGZlZDRmODc4YjFlY2E4MjM0Yzc5ZDA1YTZhN2JlMGM4IGxlZ2FjeS10cnVuaworMjI3NjQgOTllOTUzYzY3MDljZWVmNDcxOGIzZTIxNzI3NTQ3NTNlYzg2MGY3ZiBsZWdhY3ktdHJ1bmsKKzIyNzY1IGMwYzVmZTc5MDJjZjI3MWMyNjE0Yzc0NGViOTIwZWQ5ZGQwZjc0ZWUgbGVnYWN5LXRydW5rCisyMjc2NiA0MTJkMGViNWQ0YmE1MjE0MjZkODI0YTRlMTliOTRhNDc4ZGYzMTE0IGxlZ2FjeS10cnVuaworMjI3NjcgYTA4NDdiN2E4OTAyOGM3NjYxNWY4MGIxYjI5ZTdjNjYzMjVkODYwZSBsZWdhY3ktdHJ1bmsKKzIyNzY4IDNhOTAyMTFhMDI5NThmZWFlNDg3ZTMwM2U5NWRhZDllMjZiNTFkYjIgbGVnYWN5LXRydW5rCisyMjc2OSBhYjE5NGYxZjA1M2I2NmZkZjg2Y2ZjYmFmZjgzY2I3OWUxZTNiZmIxIGxlZ2FjeS10cnVuaworMjI3NzAgZjNlYzU0ODg5MDhiM2M0OTlkODYwMDIwMzcyMmRiYmRiYTgwZjBkOSBsZWdhY3ktdHJ1bmsKKzIyNzcxIDQ0MzNlYmE3MzllN2YxNmE3YzBkZjAxMjMwMjlmOWQ1NWNhNDgwM2YgbGVnYWN5LXRydW5rCisyMjc3MiBlYzUxZTEwYTYyMjljNmVjMTYyOTdkZTJmNWVkNTE4MmU1ODMyMmY5IGxlZ2FjeS10cnVuaworMjI3NzMgOTZhMGJiM2E4NTIxYTFiNmI1OTgyMzdlNDg3ZDA5NzA2YWVkNGE4MSBsZWdhY3ktdHJ1bmsKKzIyNzc0IGRkOGQ2MTUzYThjNjVkYjhlMWM0NzVjNTQ0OTg4ZmQ4MWM3MWMxZmEgbGVnYWN5LXRydW5rCisyMjc3NSBlZGU3ZmNiOGIwYjIzNzcxZjcxODBmYThjZDM4Yjk3NmJkYWVmMjk3IGxlZ2FjeS10cnVuaworMjI3NzYgZGVhY2Q2MDI3MmJlMzI0N2JmMDg2ZDdkMDVmMmIyN2RiYzVmZjRkMCBsZWdhY3ktdHJ1bmsKKzIyNzc3IDIwMmQ4ZGQ2NWViNWIyZmY0ZjcwYzk3ZjMwZTRhNDc3YTk2NTQ3ZDcgbGVnYWN5LXRydW5rCisyMjc3OCAzZTc4OTc4MjI0NTk3ZjQxNjEzMDk4NjE1NWY1YWEyODNlZGRlMzE5IGxlZ2FjeS10cnVuaworMjI3NzkgZGUxMDE1MWE3ZjYzZWRiZDE5ZjQ4NWFhNWFmMGYzYTQ0NTMzYjEzZCBsZWdhY3ktdHJ1bmsKKzIyNzgwIDk3NTM2MDhlMmQ1N2EzZDNjODA3MmMxYzQzMDViYTNhY2RjZGUxOTUgbGVnYWN5LXRydW5rCisyMjc4MSBjZjllMzQxODg3NjNjMDIxNDUyM2M3OTA4OWZiZTIzMzgzMjBlMDVkIGxlZ2FjeS10cnVuaworMjI3ODIgNDdmYTRhYzA0MmQ3ZjBlMzJlODEyOTZjYWU2MWQzZGRhODRlN2Y5YyBsZWdhY3ktdHJ1bmsKKzIyNzgzIGI0YTNmYzE0NzkyOTRiNDM5M2M0MWE1ZTE1YWI1ODE3Nzk0MjE1NzcgbGVnYWN5LXRydW5rCisyMjc4NCA3MmQ5YjdjMGQyMTFkYjc2OTViMzc3YjdiNzMyNjM2MTg4NjYxZThhIGxlZ2FjeS10cnVuaworMjI3ODUgZTE0MWIzOTJiNjFkZDJiNDNlNTY1N2Y3ZmQyYjgxOTE5ODQ5OTc2MiBsZWdhY3ktdHJ1bmsKKzIyNzg2IDNlMTBjMDg3NDAxY2ZjY2ViNWQwZTAwY2VmMTAwNzIwNTNkM2YxNDYgbGVnYWN5LXRydW5rCisyMjc4NyAyZDI1MTZlMzcyOTkzMTJjYTc0NjRjZmQ5NWMwZjlhMjdkZjBiMTNhIGxlZ2FjeS10cnVuaworMjI3ODggMWNkODc2NDIzNTljYTU5NTI5Zjg5MzVmMTk0YjM5YmRiODJhZDkyNCBsZWdhY3ktdHJ1bmsKKzIyNzg5IGQ3MTFlODJlY2UyMzMyZjEwMTk5NWVmN2MwODc5MTlhODI0NDQ2OGIgbGVnYWN5LXRydW5rCisyMjc5MCA4NTYwNWM5MzY1MmI1YTRlMDNhYjIwZWYwNGNkZTI1M2VkMGY4ZTYxIGxlZ2FjeS10cnVuaworMjI3OTEgNDc3YjZkZGQ0MjQyNWY2MmQwODM2ZTY2N2Q0NDZiOTExNzNlMDkxZiBsZWdhY3ktdHJ1bmsKKzIyNzkyIDdlNjI4ZjYwMjQ1ZTliMmQzYjBlZmRjNDc2MDIyZmYyNzBiOTQzZDggbGVnYWN5LXRydW5rCisyMjc5MyBkYTVlZWJiZmU0MWRhNWY3NThiZmQ0ZDNlZWZjZDkzODUwMjY1MTNmIGxlZ2FjeS10cnVuaworMjI3OTQgMTFhNzU4YzU2MDI3OTBmNjkzNGEzMDI3ZmEwZmE1NTM0MjE1NTBlOSBsZWdhY3ktdHJ1bmsKKzIyNzk1IDE5ZDI3MWYyOTdkYzc1OGNlMzdlNzUwNjZlZjA5MmQ1ZTE2Mjg3Y2QgbGVnYWN5LXRydW5rCisyMjc5NiAwMWE2OTAxY2QzMDVlMjllYWM3MmU1MmUyYTc3NjFhYTNlOTdiZGQ5IGxlZ2FjeS10cnVuaworMjI3OTcgNmMzMGQyMGQyN2YyY2NhOGFhYTVlOTI1YmE4ZTUyMTljOTY3MmE4YiBsZWdhY3ktdHJ1bmsKKzIyNzk4IDdiMzlkOTE0MjRhMmFmMGM5ZjEyZjY1MDcwZjgxZTM4OWViY2Y4NDQgbGVnYWN5LXRydW5rCisyMjc5OSBkZGM0YzJmNWVmYmM5NTk4YzVhODFkODdlZjAyYjYxMmViNjVhM2MxIGxlZ2FjeS10cnVuaworMjI4MDAgZWE3NmRlYTY0NDBmOTc4NTc2OWJjNDQzZTEzYTcyODcyZmQ1Nzk4NCBsZWdhY3ktdHJ1bmsKKzIyODAxIDM3ZTBiMGZjY2E1NDBmNjdiMzgxNjllNWFkNTRlYWE3ODllZTUzYmEgbGVnYWN5LXRydW5rCisyMjgwMiAyYzJjYzMxYmRmMTUzYWM2NzA1YzJjZTQ0NTljMmFjMzUxMDllZmVlIGxlZ2FjeS10cnVuaworMjI4MDMgMDIyNTFiMDQ4YmJiZjE5MmNiMDY2MDdlNDQwNGQ4N2U3NjgwODUwMSBsZWdhY3ktdHJ1bmsKKzIyODA0IDE4NDlmNDlhYTZmODY2NWZiOThlN2YxMDI4OGZkYzQ0MDIyYWMxY2IgbGVnYWN5LXRydW5rCisyMjgwNSAwNzM4OGE2YTU1MjZiOTVhNDQyM2ZhMDNkZDczMzQ5NDQ2N2NiOTQwIGxlZ2FjeS10cnVuaworMjI4MDYgODExNjhlZjRjYjY1OGJmNWNmZjQ3OWIxMzRlMGI2OWFlOWU0OTBkOSBsZWdhY3ktdHJ1bmsKKzIyODA3IDQ5YmI0MWE2OWRmYzM4ZWJjNmM0YTc4MDkwMzAwMDkzY2Q3MzJlM2IgbGVnYWN5LXRydW5rCisyMjgwOCBkOWVjYjIxNzAzNTRmNTYyZGZhNmJjYmRlOGU5MjM2NmViMWYyZmE5IGxlZ2FjeS10cnVuaworMjI4MDkgMzgxMTU4MGZkYzM3M2NjZDcyZDhlY2ZjOTRmNDRlZjUxN2U2OTI4NCBsZWdhY3ktdHJ1bmsKKzIyODEwIDNmYTI5Y2Y3MzE5ZDQ4NDUwNTY4ZGQ5ZjVjMjliZjMwMWI2OThiNjUgbGVnYWN5LXRydW5rCisyMjgxMSA4NTZlM2ZhMTRjYmE2OGZmODQzZDA2ZDk4MzljZWEwMjliZDY3ZTM4IGxlZ2FjeS10cnVuaworMjI4MTIgYjk4ZTQzNDYyNTdiZmJjMzdjMThmODMxMDliMGE5Yzc2NzUwNmQ5OCBsZWdhY3ktdHJ1bmsKKzIyODEzIGIwZjUyNzhhMmFiNDM3ZjJkMTE2NzlmZTUxODRiYzMyNTY3ZjFiNjEgbGVnYWN5LXRydW5rCisyMjgxNCBjZWE3ZmVhMTc0MmI0MDM4NDE2MzU0YjAyZjM0YjcxNjEyZjE5NjcyIGxlZ2FjeS10cnVuaworMjI4MTUgOWRhNjhjMDM3OWFiYjliYmViNWIxZmRiOTFhZTUyZDAxNzQxNTMzYiBsZWdhY3ktdHJ1bmsKKzIyODE2IGM0ODVkNzczNzZmYTQwNzUwNjA4ZjM1M2M1NzdmMzQ1ODJlYWU3MTMgbGVnYWN5LXRydW5rCisyMjgxNyA0NzZlYjdkY2VlZWMyNDk3ZDRiMTdmMmIwZTBiNzI2MjRjMzhiMTEwIGxlZ2FjeS10cnVuaworMjI4MTggNzI1NzYyY2EyNzc0OWFkNmVhOTdjMzc1OWE4NDkyYWQ5N2FmMWRmZCBsZWdhY3ktdHJ1bmsKKzIyODE5IDI2NTg4ZDcwMzUzMDhmMTBjMzk1NDBmNDMyOGM2YThkNTYxZTU2NmQgbGVnYWN5LXRydW5rCisyMjgyMCA3ZWRjMmZjZTFmODgxNTc0ODI4ZWQ4ZGVhYWZkNGJkNGZjZGM5YjJjIGxlZ2FjeS10cnVuaworMjI4MjEgYjY3MzA5NDA3Y2ZjODg1NGMxMzQwZjAwYzI0NThkMTZmN2NmZmZjZiBsZWdhY3ktdHJ1bmsKKzIyODIyIGZiZDQ5ZDE3MTdjNGMyODM4YWRjZWFhMzVhZmZjZmM5ZmFlNjFhYmYgbGVnYWN5LXRydW5rCisyMjgyMyBmNmY5MzQxOWJmYjY4MDIzY2MyNGI4MGZlZTBmMGZlMzQwNzczODhmIGxlZ2FjeS10cnVuaworMjI4MjQgNDNkZGM0NmM1YTk5Njc4Yzc5MDJlMjZlODNkZGE1MjY5NjM3MGNlZCBsZWdhY3ktdHJ1bmsKKzIyODI1IGRjMjc4MzljMGI4MGZhYjFlZjBhMzA3OGFmZjcyZTU0MzgwZDg4NDkgbGVnYWN5LXRydW5rCisyMjgyNiBmZDQ4YTU1YWMzNjRmZTMwN2ZhYzI2YTc4NmJhODQxM2I0MWJkZDk3IGxlZ2FjeS10cnVuaworMjI4MjcgMTNhOTNhNWRjYjFkZTY3ZTcyYjYyYjQyYWJjZmY0ZGQ4MDlhYmQ4MCBsZWdhY3ktdHJ1bmsKKzIyODI4IDQ0YTYyZTNiNzA2ZjkyN2YyYWIzMDE2YjQ5YjI0ZWVkMmRjN2ZiNjggbGVnYWN5LXRydW5rCisyMjgyOSBjMGNmMWEyNGZjMTNkZDlkOTMxNDQ3ZTMyMmJmMjZmZDVjMmI4YjM2IGxlZ2FjeS10cnVuaworMjI4MzAgYzQzZDdhOGYwMGE0NTk1YWEwMDJmZTYyY2U0ZWI2ZDM0YmFlNjkwNCBsZWdhY3ktdHJ1bmsKKzIyODMxIGM1OWYwNmYzOGE0NjhmOTgwM2UwZTdhMWRkZTM2NDliNzNkMTY4MjQgbGVnYWN5LXRydW5rCisyMjgzMiA1MDA5ZmE2ZGRmZWIzMjI4Njc1YjU2MWI1NTg3ZjE3OWExYjUwMmU4IGxlZ2FjeS10cnVuaworMjI4MzMgMmZlMDg5MThmYWM2NjdjOWYwZTBhMTFmNmQ3YzcyNmYxNGQ4ZDcxZiBsZWdhY3ktdHJ1bmsKKzIyODM0IDg0NDU1MzQ3M2ZhNDY2OGYwMzRhOWQ4MTJkY2E0ZTI5Mjc1Y2VjMDIgbGVnYWN5LXRydW5rCisyMjgzNSBiZjJjNzc4NDBmMWNjNmZmYjA4NzJhMTk1ODhhNjcxNjJmMTc0YTkxIGxlZ2FjeS10cnVuaworMjI4MzYgNDdlMGMwZmRkNGM4YTAwNzk3YmM3YTdmZTVmZTI1YzlhMjIyYmQwNiBsZWdhY3ktdHJ1bmsKKzIyODM3IDg1NzY1ZTYxZGViMGMzMWQ4M2Q0MGRkNTkwMjJjMGEyMjdhNzA2N2UgbGVnYWN5LXRydW5rCisyMjgzOCBhODBiNGIwMDZlYjdjZjMzZjgzODJiMjFiM2IzNjkxNTFiN2IxMDYwIGxlZ2FjeS10cnVuaworMjI4MzkgYzQ4NjU0OTU5ZGM0NmZkMDE0OWU5MTNiZGJlMGVjMGIyMWJkZDUxOCBsZWdhY3ktdHJ1bmsKKzIyODQwIGRiMzZlMzk2ZjA0MzE3MjJhYTZiMDAzMmFlOWUyNzA2NjM2ZTlkNzkgbGVnYWN5LXRydW5rCisyMjg0MSAxYmUxOGVmODY5YTQ3ODg5MzczZGEzMjE5OWI0NGNmYzc5NzE3NThhIGxlZ2FjeS10cnVuaworMjI4NDIgYmJkZjg2ZjM1OGU5NTU4ODhiNDA0ZDdkNTFkNTQwYzc5MTllMGU0YiBsZWdhY3ktdHJ1bmsKKzIyODQzIDA2NjMxNTQ0Nzk0MTZiMDk3YjRmZDUyYWRkMjZhZDJkYjgzMDZlMjkgbGVnYWN5LXRydW5rCisyMjg0NCAwMGRlNzE5YWU4MzE5Nzc5NGI1NWZiOWM1YWYwMjQ4ZDE1M2JjMmVjIGxlZ2FjeS10cnVuaworMjI4NDUgMWNlY2U3NDNhNzA4NDNhYzMzMWZiYmI2ZGFkYzVmZWRkN2UyYzgzZiBsZWdhY3ktdHJ1bmsKKzIyODQ2IDA0ZmQzODY5YzZiYmViMjA1ZDExOTFkNzExZGQ5NmM3NWJmMmUyYzEgbGVnYWN5LXRydW5rCisyMjg0NyA5MDRiMmY5ODExYTI5MTJlZGQ1YWY1NTZhMTkxMzU1NDRjZDBkZThmIGxlZ2FjeS10cnVuaworMjI4NDggNWQ5NzM0NDhlNjkxZGYzMzg1NGViNDZjZjIxZTdhZTIxZWE1ZTFjZiBsZWdhY3ktdHJ1bmsKKzIyODQ5IDRhYzlhNDRjN2U0NzhjOWY5YjhmMWZhYTk2MmE5MDM3MGYzYTkxNzEgbGVnYWN5LXRydW5rCisyMjg1MCAxMGJmNGJlZDUwOTZmODRiMTczMTRkZTA1MGE3YWU5NjZiOTVjOTY2IGxlZ2FjeS10cnVuaworMjI4NTEgNmQ1YWMzYzQzNDE2MzRmNjE0NmQyYWI5ZDIyYjdmYzcxMzY1NzIzZiBsZWdhY3ktdHJ1bmsKKzIyODUyIDQzZmU5Mzc3ZTJjZjYwMzY1NmQ1MTRiMzljMmIyODljNmNlMWY4MTkgbGVnYWN5LXRydW5rCisyMjg1MyA2YmViYThiNmY2MGFkZDk2YjBhNmVkODk1M2QwYTAzYTg0NjFlOWVhIGxlZ2FjeS10cnVuaworMjI4NTQgYjRlOTE4NjEyZGM5NzUwYmVlMzhkMWExNzk3NmE3Njc0NDFlNzIyYiBsZWdhY3ktdHJ1bmsKKzIyODU1IGM3NzNkYWE0NDg0MDZlOGM5NGRkOWRiNGFmNjZkZmYzMjlmMzI4MWEgbGVnYWN5LXRydW5rCisyMjg1NiA4ZjAzNTgwMGEzNzNkNzZjOTk2NmZkNzJmZjA3NmMzYzY4YmZjMmNkIGxlZ2FjeS10cnVuaworMjI4NTcgYzM5NmFmZWYxYWE5MjMyOWE0MWU3MDgzMWQ0ZTlkMjMzNWUyNDUwZSBsZWdhY3ktdHJ1bmsKKzIyODU4IGY3Y2Y4OTYxYzY2NzhlNDBlM2Q1NGUzMGQ0ZjZjNjkyNzE2Yjc2NTQgbGVnYWN5LXRydW5rCisyMjg1OSBmNGE4OTllN2VjOTNhZjA1NjhiNmIyNjI3YTdlNmE3NzZjZTE1ODI4IGxlZ2FjeS10cnVuaworMjI4NjAgMjUzYWFhMWVkY2JkMTgwNTNiMmFiMTRjYjJjMGI4ZDY4ZmNhOWRkZSBsZWdhY3ktdHJ1bmsKKzIyODYxIDMzN2I1MzY3OWM3MzQ4OWQ5NTI4ZTExNGExNmQ2ODhlNjI0ODMyZWUgbGVnYWN5LXRydW5rCisyMjg2MiBiNzMwMTA3ZGJkMTM3NTJhMGZjOTc3MzAxNTBmZDAwNTA4YzI5ODEyIGxlZ2FjeS10cnVuaworMjI4NjMgYTg4NWQ4NzYxYmQyOTA1MDBmNGFhZmQ0N2Q3YWQ5ZDg4YjU0Mzg5YyBsZWdhY3ktdHJ1bmsKKzIyODY0IDU2NjNiODgzZWE1ZDk5OWI2MTg0NzZlOGI4MGI3YTAzY2E4M2UxOTcgbGVnYWN5LXRydW5rCisyMjg2NSBiNzA2YzAyN2MzYzBjYTE0MjVkNDkxNjIxMDkzY2QzODNkMGIwZDI5IGxlZ2FjeS10cnVuaworMjI4NjYgMGJlYzY5OTc4M2QwMDliZGMyYTM0ZjgyYjY2MWFmNTU1OWZkODc1YSBsZWdhY3ktdHJ1bmsKKzIyODY3IDFhYzExMGU5MDVjMmYyNWU0YTQ5NWE5Y2JhMDBiMGI0MDNiYjYyZDcgbGVnYWN5LXRydW5rCisyMjg2OCAzOGE2ZGRmZjg2NmYxNzg2ZTU2NDRlMjA1NTM4YzA0YmMwZjAzNmFlIGxlZ2FjeS10cnVuaworMjI4NjkgMGY1MTQ2NWY5ZjMzNDBjNjlkMTI2NDMzNTEzNTU0MjYwN2UwZjkyZSBsZWdhY3ktdHJ1bmsKKzIyODcwIGQxMDY1M2U3MWNmZTA0MjIwNWMzNjgwYmIyODdiY2VkYWQwYmQ2MzIgbGVnYWN5LXRydW5rCisyMjg3MSBmMDliZTY0MWM3YTNhMWIxOTJkZGQyYWNlN2NmMDFiYzZmZjk1ODg2IGxlZ2FjeS10cnVuaworMjI4NzIgNTQ1MDgwZTMwNjI3Y2RjYjBlY2VjMDQwMTM4MDIyODJmMjkxYjc4YiBsZWdhY3ktdHJ1bmsKKzIyODczIGVmMmNmOTk0M2FjZGE3ZWVkMmM0MmM3ZDBiYzc5MjcwNTFmMjQ4NzcgbGVnYWN5LXRydW5rCisyMjg3NCA0M2NkMGI0ZTcyNjFmZDgxMGY4ZjNiOTkxZDM2ZTI0YTA4M2YyN2M2IGxlZ2FjeS10cnVuaworMjI4NzUgYWUwNTZmMTE0OTc0OTY1NTNlODg5N2QzYmIyMjk4ZmQ0MDIyMzAwMCBsZWdhY3ktdHJ1bmsKKzIyODc2IGFkMGNjZTRhNWRlMWY3OGEyMDkzZmFiY2NiZjNlMTkzNmZhZmEzNmQgbGVnYWN5LXRydW5rCisyMjg3NyAyMGZiNzU5MWY4ODU1OWMwYTY5NjU1MjAyMDQ5MjYyNDllZGU1YWMxIGxlZ2FjeS10cnVuaworMjI4NzggYzBhNDQ4MjliY2Q1ZmYyNjExNWYxYjk1YTc3N2NiNDAxZDdlMmYzMCBsZWdhY3ktdHJ1bmsKKzIyODc5IGNmMTkxOWVhOTRjMjhhMmYxZDNkOTg0MGM4NmI2NDdjODczYzEyNjggbGVnYWN5LXRydW5rCisyMjg4MCBmNWNkZTdlZWI2ZDc3ZGE2OWZiZjU4NzNjNTYwMDNjY2I4MGI1MDM5IGxlZ2FjeS10cnVuaworMjI4ODEgNzFkNDVmMzE0ZDkwYWUzNTJlZjE2ZTM4MjliMzNhOGQzMDk1NGEyMSBsZWdhY3ktdHJ1bmsKKzIyODgyIDA4YWJlZTJhMzk4ZWZhNTRlZjQ2YTk4ZDQ2MTk1NTk2NTVkMGMxNDQgbGVnYWN5LXRydW5rCisyMjg4MyA0MGZlYWVkYjc4NjdlMzRjNzc4ZjZmN2JjYmYwZDhiZjIyYmRjNGJkIGxlZ2FjeS10cnVuaworMjI4ODQgNjBmMjkwYTdlYWU4YzE0ODliM2Y3ZDgyNmE5NjgxMmUyY2VhNWM5NiBsZWdhY3ktdHJ1bmsKKzIyODg1IGY0YWYyN2NiMjYzMjQwYTBhMjFlMmUyNzQ3NWVkODQ3ZTFjYWNjMjMgbGVnYWN5LXRydW5rCisyMjg4NiBjOTY0N2ZhNzhmMDUyZjNlZjBiNTNiYWVlZjM1MDFmMDU2MTAxMjM2IGxlZ2FjeS10cnVuaworMjI4ODcgZTAzY2UyZDY1NTg1NTdhMjk0MmRhZTI2MjgwODY5Y2UyZGUxZGM5YyBsZWdhY3ktdHJ1bmsKKzIyODg4IGIxYjA0NzljOTEwNmQ1ZWQ3M2FmZmZjNTFiZTZhMTU5NGMyY2M5YjYgbGVnYWN5LXRydW5rCisyMjg4OSA5MmRmNjg0NTEyMGQ2NDYxODM3OWVmYzlkNjc3NTRkZmE4ZDU0NGExIGxlZ2FjeS10cnVuaworMjI4OTAgZDU1Yjc1YWMyZmI0ODgzMTY1ZjQ4NTAwMTk3NWZjZjU4ZWRhNGRkZCBsZWdhY3ktdHJ1bmsKKzIyODkxIDc5NzQwOWQ5NzAyMjQ1YTM5YjM3YzQxNWE4OGFkZWZjNjc1NjBiMTEgbGVnYWN5LXRydW5rCisyMjg5MiAwMWRhZThhMDNmODYzNzYyMDZjODRmZDZiZWFkYTZmYWYxMTM3OGQyIGxlZ2FjeS10cnVuaworMjI4OTMgYTNjMDQ1ZmE0OWY1MGNhOTU3ZTM4NTlhYjA3NzVkOWIwNzhkOWNjMiBsZWdhY3ktdHJ1bmsKKzIyODk0IGE0ZmVlZmNlMGNlODQ5NjlhYzQ5NTc0ZjFlNzIxMDcyMzNmZjYxZWEgbGVnYWN5LXRydW5rCisyMjg5NSBkNGIzYjhlMjM1NDRiOGY0ZGVmODJiNzZhOWI4OTBjNGY0NmEwOGRjIGxlZ2FjeS10cnVuaworMjI4OTYgYjM5ZTU2ZGZlMzVkMmI5OTQ0ZTQyMWZmMWRmNjhlOGIxMmNlYjYyMSBsZWdhY3ktdHJ1bmsKKzIyODk3IGRlMGYwMzUyMDVlZjlhMzQ3YzNiNDY3NmM4ODU3OGRlMmNhYzU5MzggbGVnYWN5LXRydW5rCisyMjg5OCA3OWUyMzI3ZTUxZDYxMzZkOGQyMmY2ZWYzNWRlZmEyOGM5NWNmZTBhIGxlZ2FjeS10cnVuaworMjI4OTkgNmI4MWY5ZTlkODYwMGEyODRmZWEzYzJlODM4ZTFlZWQzZjAzYmFkOCBsZWdhY3ktdHJ1bmsKKzIyOTAwIDkyZDBmYWM4YTE2OTM0ZjU5ZTIyMjU4N2M1MWIzMzI2ZTY4YzIxNGUgbGVnYWN5LXRydW5rCisyMjkwMSA1NzVmNTBjZWNlYmExODMxYTk4OTIwZjQyMzdmYzgwMWQyNDU0OWRkIGxlZ2FjeS10cnVuaworMjI5MDIgOTM3OTY1NTE2YjU0NzJmMjlmNGY0NTY4Yjk4MmQ5YmQwZTQ1NTU4OCBsZWdhY3ktdHJ1bmsKKzIyOTAzIDJmYTYxNWRmYzQ2NGM4MGUyNjM0MGE2NGJhODhiNjBkNmRjMWRkMzggbGVnYWN5LXRydW5rCisyMjkwNCA4MGJlYmM1Mzg5ZmQwZDE4YmY1NzE1YzExYmM0YjY0NzNhMDI5ODZkIGxlZ2FjeS10cnVuaworMjI5MDUgYjRlZGNlOWQ2ZTk5MGVjNGU5MTU2M2ZkYTZmNjE4YTlkNTc2Mzk2ZiBsZWdhY3ktdHJ1bmsKKzIyOTA2IDg0YmUwY2FiNjNhODg0YjQ2YjBhMjc2ZmU3Y2FkZGYyODU1ZmRmZWUgbGVnYWN5LXRydW5rCisyMjkwNyA3ODBlNzQxNTg1ZTEwZTI2YzU2ZDExZjhiZmMxYmIzNjdhZjg2ODMxIGxlZ2FjeS10cnVuaworMjI5MDggOGY4ZTk3MTEzMmI4NjczODQ2NTQyNzE0MzBhNDcyNjRlZTI5ZDE5MSBsZWdhY3ktdHJ1bmsKKzIyOTA5IGVjN2EyYTZjZGJlOWM0ODZhN2E2ODkxNGI4MzBmNjViMGYwMDM1N2EgbGVnYWN5LXRydW5rCisyMjkxMCAwOGMzYzllZGQ5OWJiMGJhMWU0ODA4MWFiYzQwZmU4YzA3NDdmMmFmIGxlZ2FjeS10cnVuaworMjI5MTEgY2Y2NWViZjg3NTYwOTEzMWU4YzkzZTYzMmM2NWQxMzhhODVkNTVkOSBsZWdhY3ktdHJ1bmsKKzIyOTEyIDhkMzU4YzI0ZGNmYmIxMDQzYTk3MGE4ZmExMWI3ZGRjMTZlZmI5ODMgbGVnYWN5LXRydW5rCisyMjkxMyBjYzYwNGI3MTAzNmM0ZmY4YzJkMjEzYjQ4ZWJjYzg2Mjc1OTA5Yzc4IGxlZ2FjeS10cnVuaworMjI5MTQgODdlOGZjMGE5ODYyYjU1MzljN2YyYTZmMjdiMTYxM2M0ZjQ5Njc3OSBsZWdhY3ktdHJ1bmsKKzIyOTE1IDc4Y2ZiOTkzZjI3NDE5MDZkNzQxODdmMGYzNjUyODRkOTE3YzY5MmQgbGVnYWN5LXRydW5rCisyMjkxNiA3ZGYzMDBkMjg0YzZhYTAyM2YzYjNmZjI1MDgzMDg1Y2UwNjg4YWY2IGxlZ2FjeS10cnVuaworMjI5MTcgMzU4NDU1MGE2MjJhZDU5YTY5MmVhZTgyOTJhZTE5Y2JiYzdmZDQwYSBsZWdhY3ktdHJ1bmsKKzIyOTE4IGIzMjcxMjk3Yjk4NGVhNDliNjkzNjE0ZGVhY2I4NGI1Nzc4Y2JiYzcgbGVnYWN5LXRydW5rCisyMjkxOSA3MTUyNDQxMDhmYWEwZjc3MThiZTliNTg2MGZjYjJkZWYyYjVjNjllIGxlZ2FjeS10cnVuaworMjI5MjAgNjg1ZGNhZTVjMTIzNzAyOTgzNmI5ZWIzOWUxMzY3NDU3YTIwOTI4OSBsZWdhY3ktdHJ1bmsKKzIyOTIxIGM3NjhkMzE5MWRmMWMxZWJlYTViOWQxODc2YWZmMTY4ZDFiZTZmZjYgbGVnYWN5LXRydW5rCisyMjkyMiA5MTUzMzY3NWQ2Y2JmMGFkNWYyNzUxNzUxZDE1NzAwNTU0NWU1NDY3IGxlZ2FjeS10cnVuaworMjI5MjMgODJkYjlhOTAwNmFjNWVlM2NlYmYzNzNhYWFmYTVkNjRhZTc4ZGQyYyBsZWdhY3ktdHJ1bmsKKzIyOTI0IDY5NTg3ODRiMWNlZjAxNWNkZGZlMjMyYjg4NTZhODhmYjk5NWM0NGEgbGVnYWN5LXRydW5rCisyMjkyNSAzZjg0YjIwMDBmNjJiNDE0OGZmN2E0ZmY2MjI3NDA2ODAxM2ExNGM3IGxlZ2FjeS10cnVuaworMjI5MjYgN2RlNGU2YjhkMTk5YzBlNGE0NTJkY2VkZDE4M2RkYTkwZDczMzQwZCBsZWdhY3ktdHJ1bmsKKzIyOTI3IDhkZmIxM2E0ZTE3NWMwZjM1MTU2MTM2ZGExZDNjNTg0ZTBkZTU3NzAgbGVnYWN5LXRydW5rCisyMjkyOCA4Y2JjNzRmNTU4NmI1MDc2N2QzMGQ2MmVmM2VkNmU3MjVlYjE5ODVmIGxlZ2FjeS10cnVuaworMjI5MjkgNzE0YWVlY2MyMzE2MmY3NDdiYWQxYWZmN2UyZWVkY2M5ZjYzZGVmZCBsZWdhY3ktdHJ1bmsKKzIyOTMwIDZlYmMyNjMzM2U2ZDdjYzFlYWVlMzhhZTU2ZGE0YTk2NTZmNmY0MjUgbGVnYWN5LXRydW5rCisyMjkzMSA3NDllNDljOTQ3YzA3MWJlOTAzMGE4ZDg1MGJmZDAzOGNlMzA1OWZkIGxlZ2FjeS10cnVuaworMjI5MzIgMzczMWFkMWQ5MDMzM2VkMTFiMzgzODczNThiMzc3ZTdmMWNlMDJlZCBsZWdhY3ktdHJ1bmsKKzIyOTMzIDMxYTY2YzBjN2QzMDFlNmEzYWUyNTdhZjEwNzg3NThkNWQ0ODc5ZmIgbGVnYWN5LXRydW5rCisyMjkzNCBjZmM1ZTUxNjBjZjVkZjgyNjUwMjFiNzM5MjQyNjVkZmJiNzQ5MTRhIGxlZ2FjeS10cnVuaworMjI5MzUgNmI4Mjg1M2RmMmVkYjc4Njc3N2ZiMmRjZjM1Zjk3YjZmZDQwNTQ5NCBsZWdhY3ktdHJ1bmsKKzIyOTM2IDkzM2U4MTI5NzRjM2VhOTBkOTNlMmUwMjA0NTc2NjcxNjRjYzBjMTAgbGVnYWN5LXRydW5rCisyMjkzNyAwNDIxOGU4NWIxNTZmZDY1OGY0NzAwYzAxMDA0MzAwZjRiNzBlZGMwIGxlZ2FjeS10cnVuaworMjI5MzggNjE3ZjVlNzJiMGVjODMzMmQ5MmZkOTVhMTY0YzI0MzFhMjI4YmI4NiBsZWdhY3ktdHJ1bmsKKzIyOTM5IDM3MTZiMTE2ZmIzMTMyMjU1YjQ1NzRjYjE1OTA5ZmVhZTMxZDRkMWUgbGVnYWN5LXRydW5rCisyMjk0MCA5ODMwZDAwYjg4N2RmYTQyNmQwZDk5MjA2YmZkYTQ4OGU3ZGI0Mjc5IGxlZ2FjeS10cnVuaworMjI5NDEgODQzZGE5Nzk1MzgxMzA3ZjAxNTI0N2IxZmMxOWZjYmU5ZDczNDY0OSBsZWdhY3ktdHJ1bmsKKzIyOTQyIGJjNmJkMzVmNTk5OGRmNDlmNWRjNGYyMjEwMTk0MTZjNmJlNzczZmIgbGVnYWN5LXRydW5rCisyMjk0MyAzNzJkOGMxZDJiNjRlMjg4ZDYxMDIwNzBjZTYxZThmNTU2MWQxZGI0IGxlZ2FjeS10cnVuaworMjI5NDQgMmE0ZTNjOTI4NWI1NGZiZTg2YmM4N2MxMmJhMWU2NzQyMTkwOWQ2ZCBsZWdhY3ktdHJ1bmsKKzIyOTQ1IGZiYWY0ZTU1MjYzZjkxMDM5M2Y5Zjg3YTNmMGRjZTgzMTQ5MmRiZjMgbGVnYWN5LXRydW5rCisyMjk0NiA0NTY1NzM3NmI5YjhjYzkzNDYzNWJmZjY4ZjIzY2E2M2EyZWY3NzM2IGxlZ2FjeS10cnVuaworMjI5NDcgZDZlMWIxMDkxNjA5NzFiMzcyNDhhYzFkYzYyZTNjMDczNDYzZTJjOCBsZWdhY3ktdHJ1bmsKKzIyOTQ4IGUyMDJhNzVkODgxZTE0Nzk5NWJiNDM2NTU2ZjZlNzg2OWQ2ZWRhNjkgbGVnYWN5LXRydW5rCisyMjk0OSAxOTAxZjg3NWI3ZDNkMWQ4ZDRmMzAyZDEyNzk4YjYyYjFkYjgzZmJhIGxlZ2FjeS10cnVuaworMjI5NTAgYjdmNmZiYzA4N2E3N2VhYTcwNzY3MWIyNmJhMGVlMTMzYmJlODQzYSBsZWdhY3ktdHJ1bmsKKzIyOTUxIDUwMDU1NDViNjQ4N2YwNmE3ZWQ2OWFmZmIzZDMyMDQ1MWFmMjQ0NzkgbGVnYWN5LXRydW5rCisyMjk1MiAxMWIzNzNiMDBmMmFmZTFhZWYwNTdlOGNmMjMwZjgwOTQ3NGQ5ZjdhIGxlZ2FjeS10cnVuaworMjI5NTMgNmVhZmM0YTYzNTlhODBhOGVlMTU0MWUwNzg2NWFlNDY4YjgxMTFlMSBsZWdhY3ktdHJ1bmsKKzIyOTU0IDBiMGM4NDA3OGY5MTYwZGEyNjE1ZWQ4MGY3MGMzYjQ3OWM5MGM0NGEgbGVnYWN5LXRydW5rCisyMjk1NSAxYzhhOTUwZDY5NzAwZTc1YjE0NDNlODE4YjQ3OGVmMDExMGQyMjA5IGxlZ2FjeS10cnVuaworMjI5NTYgYmQyNTJiMTgzMmEyZGJhMTg5MDgwMmVhMGMzNjE2YzU2NWQwMDkwMiBsZWdhY3ktdHJ1bmsKKzIyOTU3IGI0NTIxNDM2ZThmOGY5OWQyODE3MjdhMzc3Njc4M2E1N2RiYTUzZmIgbGVnYWN5LXRydW5rCisyMjk1OCA5NDMzZGQzYzE5N2VmNGIxZjZhM2Q1YTU5OTJiNjQxYjUwOTYwNWY1IGxlZ2FjeS10cnVuaworMjI5NTkgNDUwZTVhMGU5MjZiOTQwZGI4OTM5YTE0NzJiODc1Nzg0YzcyNDA2YiBsZWdhY3ktdHJ1bmsKKzIyOTYwIDBkOTYxNDVjNDRiODlmNmEwZmQzYjgxZDcyODYzNWU2MTkyYjYyMGMgbGVnYWN5LXRydW5rCisyMjk2MSBmYjJkODNhYWZmNjg2NDVmZTdmNmYyYTEwZjZjMTg1NGJiMTk2NjUwIGxlZ2FjeS10cnVuaworMjI5NjIgMDFkZTBhNzAzMDY5OGM3NGMzMjhlNTE0ZjUzYmYyYmEyZTY1NjY2NiBsZWdhY3ktdHJ1bmsKKzIyOTYzIGQxOTY0OGNhODc0OWNjYzFhNDI0OWIxNDU3NTI1OWRiMjViOGI1ZWMgbGVnYWN5LXRydW5rCisyMjk2NCBjZGZkZDUzNTk0MTFhMDk3NDI5MGI0MDQyOTc3YjcyZWVmNDdhMDhlIGxlZ2FjeS10cnVuaworMjI5NjUgYTY4NGI0YzEwMTI4NDNlOTMxYmUzMDIyN2E2NGFiNDU3OTcxMzU1OSBsZWdhY3ktdHJ1bmsKKzIyOTY2IDc3NjZlYTcyNDMyMDk0Zjc5ZjNhYmYzNDkzOGQ5NjI4ZjQ0MjRmNTUgbGVnYWN5LXRydW5rCisyMjk2NyAyMWQyYjllZWRjMmRlMTc5OTYwNDNjNDU5ZWY1YTIwNDZlYTMyNjYwIGxlZ2FjeS10cnVuaworMjI5NjggMmE5YmJkYmVmYmIxYzk0ZjFkMmZlMjA5NjMxNmU3OTcxNjYxMmM2NiBsZWdhY3ktdHJ1bmsKKzIyOTY5IGJhOWFhYmNkODllM2RlY2VhMmVlOTJlMWVjZDU3Nzc5OTZkMmZiNDEgbGVnYWN5LXRydW5rCisyMjk3MCAyMjZkNWVlZmE0NGFmZDZiNWNiYzU2Yjg2Njg4N2E2MDBkOTk2M2FjIGxlZ2FjeS10cnVuaworMjI5NzEgNTQ4N2Q5ZDUzYTBlMWU1NTIxMjFiYzkwMGRiNzMzMzM3NTA5NjNmZiBsZWdhY3ktdHJ1bmsKKzIyOTcyIGYzMDM2ZDRlM2MyMmFmODEyZjA4OWFhZTE0MTM1ZmUxZjc5MGNmMjkgbGVnYWN5LXRydW5rCisyMjk3MyA0ZDJjYjZlYWE0MTEzOGM5YTAwNDJiMjUzZWI4ZDFkNWViNWMwNWNkIGxlZ2FjeS10cnVuaworMjI5NzQgZGViMDhhZjg5YTM1ZDY5ODg0NjEyZDMyZWYxMTQyODlkMDY2MzA5YiBsZWdhY3ktdHJ1bmsKKzIyOTc1IDJlNmRhMmRkMmFiODIwNzBiNDExMWY1OWFiNDRmYWY1MzU0NzdhNDggbGVnYWN5LXRydW5rCisyMjk3NiA4NWViMWM5MTFhZTVjMGM3NjZjMGY3ODhlYmY1Y2UzOGY4MDJjZDE5IGxlZ2FjeS10cnVuaworMjI5NzcgYjdkYzUxNTk0NDhmNDhhNzczMjJiOTJkZWZkYmQ5YTM0MjgzYjU2MiBsZWdhY3ktdHJ1bmsKKzIyOTc4IDJjMWE5ODMwOThhMDY0YjQ4ZDkyNWEyOTM4ZjRmY2ZiMmM0ZjllNTYgbGVnYWN5LXRydW5rCisyMjk3OSBkOWRhYTRhNjdiZTI2MjM4OWExMGM0ZjYyMjExMGQ0YWExNDM0NjMyIGxlZ2FjeS10cnVuaworMjI5ODAgZjU2YzkxODIwZmFlMmQyY2E4M2JkM2ZhODIxZDU2YjBhODYyN2NmYSBsZWdhY3ktdHJ1bmsKKzIyOTgxIDBlNDY0NmJmODA0MTEwZTMzN2VlMzg0OTRhN2UxZTQ5YTk4MTJhNDcgbGVnYWN5LXRydW5rCisyMjk4MiA1NmM1NDlhMjUzYTZlOTRjNmZjOWE2YTExYTQ3OTNhOGU5YjI5MzI2IGxlZ2FjeS10cnVuaworMjI5ODMgNWRkMjhhYTJiZTZiZmQwMDQwNDMxMmMwYzY2NDIxNTkyMDA5ZDUxZSBsZWdhY3ktdHJ1bmsKKzIyOTg0IDhkMmM3NDM2YjlkMjdmN2YzMjVjZTY0OWI0MzI3MDJjZDM4NGVhMDkgbGVnYWN5LXRydW5rCisyMjk4NSA4ZTZlMjQ4ZGZkZDg2NWJiOGI2YzMyMDI4YjViNDI2MTcyNjg5YTEzIGxlZ2FjeS10cnVuaworMjI5ODYgYTVlZWIxZTcwZjQxZjJmZTg2ZGQ4NTI3NjEyODI4NjdmZDk5YzNiZSBsZWdhY3ktdHJ1bmsKKzIyOTg3IDJhNDY1YjBlYjU0ZTQyMGFhM2RmMjQ3OTZkYmYyZTNmMGVlYTIwMDQgbGVnYWN5LXRydW5rCisyMjk4OCA4NTQxODc4Y2YyZTEzZDI1NjA0ZmE5NTAzOGI0YmY4ZjRjM2I4NzBhIGxlZ2FjeS10cnVuaworMjI5ODkgZjE0MzBlMzM4MmJiZTRiYWY4MjQyYjhiNTg1OTk4MTY5M2MxNzU5YyBsZWdhY3ktdHJ1bmsKKzIyOTkwIGRjMDU5YmZiNTNiMjJlY2Q2NTEyMjg3ZTlmMGJiZDIyNTU3OGUyMmUgbGVnYWN5LXRydW5rCisyMjk5MSA5ODg1NmE0YWVkMTAxNzI2YWU2ZDI0YjVhZDA2N2QwMWQ4NzEyY2MxIGxlZ2FjeS10cnVuaworMjI5OTIgN2ZhNDA1OTdkYTdlN2Y5MmUzNDgwZmM2N2JhMjBjNTc1NTQzYjJkMCBsZWdhY3ktdHJ1bmsKKzIyOTkzIGM5M2Q3ZDA4NTdhMjc2ZGJjYjFhMTI0MzFkMTE1MmNlNDM0YjVjMTggbGVnYWN5LXRydW5rCisyMjk5NCBmYTA2MjFlNGFkOGFjN2Y3ZjhkNTc0YzRmYWUzNGM1MzFhZTM2OWM2IGxlZ2FjeS10cnVuaworMjI5OTUgMzViNmExZDBiMWUwNTRiNGQ2NGUyMDU4OWFmOGQyNGZkOGNhMTU2YyBsZWdhY3ktdHJ1bmsKKzIyOTk2IDNkNzZkZmMzNGM1N2U2Mzc1NTI4ZDgxNzZlMDFiZjhkNTQyMWJjODIgbGVnYWN5LXRydW5rCisyMjk5NyBkYmI5ZDgyYzdjZTM3ZmY0Mjg1NzMwNDlhNGYyOGFjYmI3OTM0ODAzIGxlZ2FjeS10cnVuaworMjI5OTggYzA1ODBkOGMxOTNlM2UzM2ZjYjc4YzU3OTRiM2FhNjQ4ZDI0NTU4ZiBsZWdhY3ktdHJ1bmsKKzIyOTk5IGUxZjFlOWViZjA1MDEzYTcwNmU2ZjA3OTEzYzYzMjE1NGNjOWZkYjEgbGVnYWN5LXRydW5rCisyMzAwMCA1YTdhYzhjMDYzY2NjZmMwYzZlYzI3YTMwNGNkZDlmNWUzNGMwZmM0IGxlZ2FjeS10cnVuaworMjMwMDEgYTFkMzk3MDg4NWJkYmViYmU3MDZhZGI2NDlmMWU4YTJiNzA3MDA1NiBsZWdhY3ktdHJ1bmsKKzIzMDAyIGNhN2Y3NTc2ZDgyM2U4YzcwYjg2ZDAyYTVmODg4MmRlZjA1MTcyNWUgbGVnYWN5LXRydW5rCisyMzAwMyA2NGJjZWYxNzAyYWQ5N2FlMDE3ZmVmNmMwNzlmYjcxOGExYjZjZTlhIGxlZ2FjeS10cnVuaworMjMwMDQgOGU4N2NkZGVkOTZmYmZlN2Y1YTZlNWMyYzRlMzM0OWQ1ZTc2MTZiMyBsZWdhY3ktdHJ1bmsKKzIzMDA1IDk2ZGE5ODVjZGU5ODQyNmFhYzRkM2ExYjVkNGRhNDkzYTkwNmFjMjAgbGVnYWN5LXRydW5rCisyMzAwNiA0NDE3NWJiMGI3YmZjODA3ZWVjNmRkYTkyOTYwZGJhOTgwZDRhMTRkIGxlZ2FjeS10cnVuaworMjMwMDcgZDA5MjY4ZDBlYTUyOWI2NDkxM2NlMDRiOWJiYmZiYzUzYjBhNzJiOSBsZWdhY3ktdHJ1bmsKKzIzMDA4IDk0ZDBmMmVlYTA0N2UyZThiMTIzZTMxOTc1MWRmNGYxMDcwZjU2ZDUgbGVnYWN5LXRydW5rCisyMzAwOSA1NzhlZjM2ZjhmZGUwYTQyYjZjYmRkNGE0YmJlOGU5OGQ4NGMzMjg3IGxlZ2FjeS10cnVuaworMjMwMTAgNWZjZDBkNDFhNDQ2YmQ2NTI1MDcwOTRlMDBmNGE4YWU0MTQ3ZDdiYiBsZWdhY3ktdHJ1bmsKKzIzMDExIDJiY2NlOGJhYjhiYmU4ZGJkMzc4MjNjODI2NTc3YTQwZWEzMzBlYzkgbGVnYWN5LXRydW5rCisyMzAxMiBkNTQzNzhkMzMzNGZkNDI4ZTBhYWVjOTE5NDIyODBjYzRmNTBkMTA5IGxlZ2FjeS10cnVuaworMjMwMTMgZDRmNTNiMWZiNDI0MGRmYzJiMzg3Y2RlZTBkMjZjY2ZkZTk1YjU3OSBsZWdhY3ktdHJ1bmsKKzIzMDE0IGE1ZWFlZjQ3YTliMzM2MGZmNDIyYzdkM2E2YTQyODMwMmM5MDQzZDkgbGVnYWN5LXRydW5rCisyMzAxNSA0MmQwYmRlNzM1MzNlMTI0NWM2MzUzMTQyNmM2ZmNiMjVmMWVmNDQwIGxlZ2FjeS10cnVuaworMjMwMTYgNDMyNTkxMzI4NDEwMjQ1YmQ4YjUwNjYxN2YxNDFiMDE4YmE2Y2RkZSBsZWdhY3ktdHJ1bmsKKzIzMDE3IDMzNWJmM2VhYjlmMWFkZDlkOWE1ZjAzYTg5NjczNzQ4OTAxNmY1ZmIgbGVnYWN5LXRydW5rCisyMzAxOCA2YzdkZDliM2U1MGI1ZjMzNjhkNDEzMmNiMjMzMDAzOTMzMjhjY2ZhIGxlZ2FjeS10cnVuaworMjMwMTkgYzU1MjNiMGY4OWQ1ODNkZWRlZDFlYTcwZTJlMDFiMzg3MzIyNmRkZCBsZWdhY3ktdHJ1bmsKKzIzMDIwIGVlMTJjMzhlNDZhNmZjMDM1Yzg3YWMwMjNlNDlmZTk0MTYwNjc3OTEgbGVnYWN5LXRydW5rCisyMzAyMSBiMjMyMzg2NDZkMTU2YjJkMTcwOTU0MWRhYWFhZmViODc1Yzk4Yzc3IGxlZ2FjeS10cnVuaworMjMwMjIgZTcxNDcxNTZlZjMzZTc0YTQ3N2JjMDcxM2ExYmE0MDk5MDI3ZmYyZSBsZWdhY3ktdHJ1bmsKKzIzMDIzIDFjNjJiNGE1OTdmNmU3MmIwNWM3M2RmMmZjMTJmYjVmMzdjNWVlODEgbGVnYWN5LXRydW5rCisyMzAyNCAwN2JiMDlkZjMzMjRmMTAyMDFjODgyOTI5OTc5OGRkNmE0NjczNzg4IGxlZ2FjeS10cnVuaworMjMwMjUgMWNjODRkZmNkNmJkMjc0ZjNiNTdmNGIzNDY2ZWY4OWMwY2FjMjVkMiBsZWdhY3ktdHJ1bmsKKzIzMDI2IDdiNzIyYjZjYzc3YjMxYzI4OWYyNjU4MDFhZTdhYjMwMjNiYzc4NjIgbGVnYWN5LXRydW5rCisyMzAyNyA5ZGUyZjdlMWI2ZThiOWJlMzgxYmExMGFmMTA2OTUzNjM5N2JjOThjIGxlZ2FjeS10cnVuaworMjMwMjggMTNiNjU0Y2U2M2E0NzdiZjZkNjg1YTVhMThkY2JiMWQyM2RhNDkwOSBsZWdhY3ktdHJ1bmsKKzIzMDI5IDE3MzEyMmU1ZWRlNDE3MmM0MTFhMWU4YjY4MGFkNzA2YjQ2ODA5NWMgbGVnYWN5LXRydW5rCisyMzAzMCBjNzM3ZDEzZGE5MmQyYWUwYTA2MDMwYTZhOTA4YjIxODkxNTU1N2UzIGxlZ2FjeS10cnVuaworMjMwMzIgNGFiZmMxNzY2ODVjMzAyYTIxYzE2MDNjNTdlNGM3YmNjNDMwOTZmNCBsZWdhY3ktdHJ1bmsKKzIzMDMzIGY4MTRlYTZiYjY2NzZiODI0MTk1YzUxMjA4ZGQ2NjNhN2M5ZmVhZTIgbGVnYWN5LXRydW5rCisyMzAzNCBjYWQ5MzNhNDU0ZmU2MWQ0ZGYxODBhYTJiZTI5MzhmMjdlOGRjNjZiIGxlZ2FjeS10cnVuaworMjMwMzUgOTRlMTQxZTIwZDYxOGU4ZTEzMWY5MGJmN2NkYWMyNjExYmFhODhjYSBsZWdhY3ktdHJ1bmsKKzIzMDM2IDBiNTc3MjkyODRkZmI0ZTZjMjM5ZjE2YWIzNDk0MWUxOTQyNmUwOTggbGVnYWN5LXRydW5rCisyMzAzNyA5MDc5NzEwZWMyMTY5NmUzOTg0Njc5ODJjYmM2MWM4YzkxYjY5NmM2IHIyMmEzLWJyYW5jaAorMjMwMzkgOTYwNDc0ZDEyOWFlZDczNjVlYzc5YWFlYjBhMjZiY2E0ZGZlODY0MyByMjJhMy1icmFuY2gKKzIzMDQwIGM5N2RkYTIzOGIzNjI2NjFiYWI3N2JiYTlkMGFjM2E3OWM1MmEyMTkgbGVnYWN5LXRydW5rCisyMzA0MSAzZjYyMTQ4OWJlNzIxZGE2ZTRhZTUyYmNlNDQ2NzI5ZGQ3MDViNzI3IHIyMmEzLWJyYW5jaAorMjMwNDIgYjM1YTJiZjBjOTgwYWI0NTNiNGRhYTQzMWRkMWE0YTlkYzI3ZGYzNyBsZWdhY3ktdHJ1bmsKKzIzMDQzIGUyZTlmMTcyMmM0ZmEyOWYwY2ZjZTBmY2RkODM5NDE5NTg3MmUwMGQgbGVnYWN5LXRydW5rCisyMzA0NCA5NWVhNjYxMjIzMjU2ODhlMjRiN2ViMTcxNGFmMzIyMzg1ZmY1NzNhIGxlZ2FjeS10cnVuaworMjMwNDUgOWM1NGExNmFjOGI5ZWRjNTM0ZGE4YTZkMzIxNWY0NmMyODZlMDJhMSBsZWdhY3ktdHJ1bmsKKzIzMDQ2IDcwMGZlZmRjMDNkMjg1ZjMyNGZhY2UzM2IzYTg3ODVmYTJiODJjZmIgbGVnYWN5LXRydW5rCisyMzA0NyBjMGY5NGJjNWZmZTgwNmU3Nzg2MWY2OTJiYmQxNjE0NGExMzhkODc5IHIyMmEzLWJyYW5jaAorMjMwNDggNzcwOTdhNTVlOTczMWYwNWUwNGY3OGQ1YTUzMjU2OWQzOWU5YmZlOSByMjJhMy1icmFuY2gKKzIzMDQ5IDAzMDgwZTM5NWM5ZWQwZmVhODU4MzU2ZmU5MDM3NWFlYmVmZTdhOGYgcjIyYTMtYnJhbmNoCisyMzA1MCA3OGU3M2I4NTFhYTlkYmEzNjRmZTkxZmZiNjM3ZDM0Nzk2OGFjODk5IHIyMmEzLWJyYW5jaAorMjMwNTEgMjg1Yjc0MGI4NDQxOTJjNjdmODQzODIwYzYyNmQ2NGVkYWNjNjZhMyByMjJhMy1icmFuY2gKKzIzMDUyIDQzZGM4MjdkZDcxN2NhZmJhZDViNGE0NDVhN2YyNjUzZjUxZTgxMzUgbGVnYWN5LXRydW5rCisyMzA1MyAwOTFjMDFkMDdkOTgxNDI3Y2ExNGMxMjA4NGQyMmY5OThmOWVjOWRkIGxlZ2FjeS10cnVuaworMjMwNTQgZDQ4MDE0ZGJiODVmNmE5YTViNmQyZWMwNDQwY2Y1YzMwNjI5MmMwOSBsZWdhY3ktdHJ1bmsKKzIzMDU1IGVkNTQ5NDNjZTI0ZTBmZTQ0Njg4OGY5NWY4MDZkMThkOTZjYzQ3NjEgbGVnYWN5LXRydW5rCisyMzA1NiBmZTIyOTcyN2E0MGNmZDQ5ZGI0MTk2M2JjNTFhYWUzMmNmNjM3N2E5IGxlZ2FjeS10cnVuaworMjMwNTcgYjQ3ZDI5Njk5Y2QyOThiMWIyYjQzMjZmODQ1NTNiZTY5NWRhMzkxOCBsZWdhY3ktdHJ1bmsKKzIzMDU4IDMyY2ZjZTRkODNkYzA2MDQ4MGI5MWZiNDhhNDdiYzQ4YmVhM2U4NDIgbGVnYWN5LXRydW5rCisyMzA1OSA5MDMxYWFiMjdlYWVkZDJhNTBiNGIzZjQzNTFlMDNkMGY3ODhjNWM5IGxlZ2FjeS10cnVuaworMjMwNjAgNTYwMTU1ZTc1MDg3OGMyZGYwMDBkOWFmNTc1MDY5MWVlZTAyYTNmZSBsZWdhY3ktdHJ1bmsKKzIzMDYxIDhjYWM1ZWI3MDNmZDg0NjVkYzI0MDllZmNhOTY2ZTQ1NTVhNWMyOGYgbGVnYWN5LXRydW5rCisyMzA2MiAwODZmZmFmYWVkNTUyNTk5MGY1NDg3NWEwYWRhM2UwNDdhMjAwNTA5IGxlZ2FjeS10cnVuaworMjMwNjMgMDU4NGM5MTMyNTI1YTU4OGUwNTQ0NjJjNzRmZDhhNmViMDJmOTg5YSBsZWdhY3ktdHJ1bmsKKzIzMDY0IDc5YTMxYmE4NzNhMzQzZGQ5NzUzOGFlMDRlMmJmNDJiY2NjYzFkNWMgbGVnYWN5LXRydW5rCisyMzA2NSBjZTU3ZmZmOTM5NjI5ZDBjYWJlODEzMWVhMTMwODUwODllZGMzMzZjIGxlZ2FjeS10cnVuaworMjMwNjYgMzhjMTJmYWY2MTJhYTU4OWM4MDk5MDRlZTQwNzg3NTExMTU2MTg1MyBsZWdhY3ktdHJ1bmsKKzIzMDY2IDA4Nzk2YTEzN2YxYWRhMjQ2MmY3YTMxNzczMDZkZjVmNjdhNzY3ZTEgbGVnYWN5LXRydW5rCisyMzA2OCA3MDQxMWViYTIyNWIxYTUxZjdjYzNhN2YyNjhlZTk2ZjVmNzUzYmVjIGxlZ2FjeS10cnVuaworMjMwNjkgZGM4N2Q5MWQwZGZkNjg1ZTg1NDRlMWU2MmU0N2RkYjQ3NDdiN2U4NSBsZWdhY3ktdHJ1bmsKKzIzMDcwIDhkNTg1ZDgyMmY5ZDBkYjFjYzkxMGE4MmQ1NWEyYzAzMGY0OGU3M2UgbGVnYWN5LXRydW5rCisyMzA3MSAwY2JiMDYwZGEyYzM0YmNkMDk0ZWY1YTFiYjE5MmQwOTk4YzM1YWZmIGxlZ2FjeS10cnVuaworMjMwNzIgYjczOTYyODdjZjY1Yjk3MjZjMjQ4NTE5NzkyNzlmNWQ3NzBhMDFhYyBsZWdhY3ktdHJ1bmsKKzIzMDczIDZiMWJlMTRkNzY1MDMyNDkwMzc1ZDIwMGU4NDQ0ZWMxYzFkYTM5MDIgbGVnYWN5LXRydW5rCisyMzA3NCA1M2UwY2FlM2NmNmNkMDkzMWI2ZTdkN2U4Yjc4MjY2MWNlNjQ1YjBiIGxlZ2FjeS10cnVuaworMjMwNzUgZmU1ZWMxYTNhN2UwZjczMGIwN2ExZDY1OWNjMmJhNGVkMmNmOWU2MCBsZWdhY3ktdHJ1bmsKKzIzMDc2IDNmNzNhOGJmNzZmN2M5OWJhOTZmMTY4ZTQ2Y2FiMWUyN2Y5NTQyOTMgbGVnYWN5LXRydW5rCisyMzA3NyAzZGMzMTU0MDk5NjgxNDJjMGQ2ZDU2ZDUxMWJlM2RkYWI1NDNjMzc2IGxlZ2FjeS10cnVuaworMjMwNzggNmU1N2RjMzA1NTUxMDhhNmZjMTgzMzRhMWEyZDgwMTZjZGMwMmU4NiBsZWdhY3ktdHJ1bmsKKzIzMDc5IDM3MjE0OTc3OTI0MDY2OWY4NDc1MzEyYmJiODg5ZDNkOWQ1YmUzMTcgbGVnYWN5LXRydW5rCisyMzA4MCA5MTk1MzJjNTBhMTc1OWI4OTRkYjk1ZjAxMDU1MzRiNDFkMWI1YTAxIGxlZ2FjeS10cnVuaworMjMwODEgOGVmNDU2OTQ5Yjc2MjQ2YWVlODRjNjg1NTJkOTVlNDM1YzNlMTdiOCBsZWdhY3ktdHJ1bmsKKzIzMDgyIDM5ZWVhYjY4OWQwNjdiMDljYTVmZGIzODA5YjFkYTczMTk0YzE3NTggbGVnYWN5LXRydW5rCisyMzA4MyA1YjI4ZDdkYzMwMDYyNWI1ODNmMmRmMTYyZDg4MzMxOGRmMzg1N2IxIGxlZ2FjeS10cnVuaworMjMwODQgYmJhZWE1M2FjMDg3ZjU4NjU3ODJkNTA1ODBmNTkyZjk0YmRjZjljOCBsZWdhY3ktdHJ1bmsKKzIzMDg1IGU0MTkwNjBlMTNjOGQ0NDEzZjBkN2E2ZGE0YzJjZmFmNTlhMDM5MDQgbGVnYWN5LXRydW5rCisyMzA4NiAxMzU5ZmFjNjE3ZjFiYjQ3Yjg2NmYwNmE1OTU0Y2YwOTVjYTU0Y2RkIGxlZ2FjeS10cnVuaworMjMwODcgMDBkODA5NDdkODE3OWY4ODlhMGM3ODJhOGI2MzEwMjM1YWYwMDk4ZSBsZWdhY3ktdHJ1bmsKKzIzMDg4IGY0NDYwNmIyNDJjNTkxMTE0MDc5MTYxNDI2OTg5NmE4NWYyZTE5ODUgbGVnYWN5LXRydW5rCisyMzA4OSA1MzI1MGNiMTA2ZWI0NzFiNzQ0ODNhYjY4MWU2NmQ4MjI1ZjEzNDkxIGxlZ2FjeS10cnVuaworMjMwOTAgOWNmMTMzOGZkOGQ5ODUwMDIyMjlkYmViMTRiMzYxOWJjMzVkOTNjMyBsZWdhY3ktdHJ1bmsKKzIzMDkxIDU0MjBlN2QzNDhhNDRjNjMxYjhjMzVlYzliYjU1NjQzNDAxZmJkZDIgbGVnYWN5LXRydW5rCisyMzA5MiA1MTU4ZTQ3ODk0NTkyMTgxMGUwZDY2OTM2Y2YxMjY5OWNiMDZhNzlhIGxlZ2FjeS10cnVuaworMjMwOTMgYzE1OTIwYzJjZjZjY2I5ZmU5ODg0NDg0ZDQwMjNmNmQ0MmM4ZWQxMyBsZWdhY3ktdHJ1bmsKKzIzMDk0IDEwZjU5MjdkYmYwNWQwODlkYzZiNmIzMDI2MDZmNWM1NWU0NDEzZTcgbGVnYWN5LXRydW5rCisyMzA5NSAzNzc3NDZhMzg5NzIxOTk4YzQxYjlkYjQ5NDc5ODcxOGZjOTk2ZmEwIGxlZ2FjeS10cnVuaworMjMwOTYgZDhkZDc1ZTNiMzA0NjVmYjFlNTczYjY5MDhiZGZmYThiMDU1ZmU2YyBsZWdhY3ktdHJ1bmsKKzIzMDk3IDIwOTI0YTcwZmExYmJjNjQ3M2E4MmE3NzI0Njc2MGJkOGE2NDg0OTYgbGVnYWN5LXRydW5rCisyMzA5OCA2ZmY3ZWU4NGQ1YTE1ODM1ZDljNjE0YmM3ZTBhOTdkYjE4NmIzZjZjIGxlZ2FjeS10cnVuaworMjMwOTkgOWU0ZDFhNjMwN2Y2Mzg1NTUyNWIzMGI3MDllMzBmOGYwYzNlM2Q3NCBsZWdhY3ktdHJ1bmsKKzIzMTAwIDdhOTgwYzk4YzhhZWZmZDNmMjJlM2M5MDE3Yzg0MmM3YjQwZmQ5NzUgbGVnYWN5LXRydW5rCisyMzEwMSA2NjJlMjJmOTk2MzlmNTA3NGUyYzg0ZTg0NGNlMjljYWZhODBkMzEyIGxlZ2FjeS10cnVuaworMjMxMDIgYzVjMjQxYmVmODhkM2IwNjZmNGI4ZmExZmEwOTdjMmMyZDA4OTViNCBsZWdhY3ktdHJ1bmsKKzIzMTAzIDhhZjc0ZjAzNThhYzM5YTliY2QwOTViMDFiNGE2MmU0Mjk0NmU1MjcgbGVnYWN5LXRydW5rCisyMzEwNCBiZjAyMDJkYWM0NDE3MTYwYmViNzU1MWZlN2VmZDI0OWRmMjRiNmM4IGxlZ2FjeS10cnVuaworMjMxMDUgMmI1ODFmNGM2OWI0ZjIwOTRlM2YxMGUyMzhmMzE3MjRlMjNiZjkwMCBsZWdhY3ktdHJ1bmsKKzIzMTA2IGYzZjY5NDExMWVhMDgxNjBiNDdhMzYxMjRkOTFlOGIwOGQ5MzlkMzAgbGVnYWN5LXRydW5rCisyMzEwNyA1ZTc5YmVkMzQyNmY5M2RmMzM2ZmQ2YTc3ZWUwZDE5YTkwNzkxYTkwIGxlZ2FjeS10cnVuaworMjMxMDggOTgzMDMyM2Y1ZjhlYjJlNThiYTZlYTVhNjc4YmQ2MzM5MzI3MzNhMCBsZWdhY3ktdHJ1bmsKKzIzMTA5IDQzZWQ4YTM0NWY0ZDgzMzkxZDM4NWU1Y2Q3ZjI4ZjM3MDRjOWM3MGMgbGVnYWN5LXRydW5rCisyMzExMCA1NTY4YjMyMDkxNGY2ZGI5NTc0MjMwN2Y4MzcyMTMzYmU0MTBlM2U3IGxlZ2FjeS10cnVuaworMjMxMTEgNDE0MTNjNzgzODM2NzkzNzM5NjIwZTZkOGZhZWFkMzQyYmEwZTc3OSBsZWdhY3ktdHJ1bmsKKzIzMTEyIDlhNWJiZjg0NWM2MzNlYzdhMWU2NWM1OGNlZjE2MWExMGM0NDc4Y2QgbGVnYWN5LXRydW5rCisyMzExMyA4NzNiZThlMzQ2MmJlZTY3YmFiNTNjN2Y4YmY4MjllYzE1OGNhNTZlIGxlZ2FjeS10cnVuaworMjMxMTQgNTg3MWUwYWEwMjFiODUwY2NkOWVjOWRjY2ExOWIxMjM2MTBhNmU2MCBsZWdhY3ktdHJ1bmsKKzIzMTE1IDJhODA5YjNkMDNlOTRiZmY2MDY2ZDNkMmE2ZWU3YzljYmExMzk4MzkgbGVnYWN5LXRydW5rCisyMzExNiBkOTk3MGQ2MzE4NzgwYjk4OGY1MzU0ZTM5MGFhZjkwZDIwNzBjN2U4IGxlZ2FjeS10cnVuaworMjMxMTcgMzZjYTE2ZGMzNWI5ZDk5OWRmMDRhY2VhMzAxNTc4MGI1MzE2MjQwZiBsZWdhY3ktdHJ1bmsKKzIzMTE4IDY3NjI5OGMwYzc2Mjk2MzQ4ODc4YzBmZTA3MmZkNGNkMTUwOGMxM2MgbGVnYWN5LXRydW5rCisyMzExOSAzMDQ2NTJmZmM2YWM2MDM1NGY5ZGM3M2ExMzNlNDgwODA0MWM1ODE1IGxlZ2FjeS10cnVuaworMjMxMjAgZjJhMzAwOWI1MjhlOTNlNWMwNjNjYTU0NmUyZTc1YTNiYjg4ZGU2MiBsZWdhY3ktdHJ1bmsKKzIzMTIxIGEzNDk5MWI5MTAwODYxOWNiYzdlMDVmMDViYjhlZjBiYmY4MjA0YzAgbGVnYWN5LXRydW5rCisyMzEyMiA1NzgwNzI0NDcwZWViNGU3YTBiZDc3ZTFlMDNmNmJiMDFlNDIxZTZkIGxlZ2FjeS10cnVuaworMjMxMjMgYWY5ODI4MmU5Mjc3YjdjZGNhODYxOWI3NjljYjllNmY0YTQ4OTRiNiBsZWdhY3ktdHJ1bmsKKzIzMTI0IGRmNDkzNjQ2ZWM0ZGNkOWU4NmIxMzNlMjNhOTg2YTBmNzA4NjViNTMgbGVnYWN5LXRydW5rCisyMzEyNSBlOTFiOTkxMzg5ODVhZTk1MTU4ZmI4YTQxMzFlZmY4NDBlYjY5NjU4IGxlZ2FjeS10cnVuaworMjMxMjYgMTgwODZjOTEzZWQ1YzUxMzFiMjRhZTA5MzI2ZWZjOTRiZDhlNDhlYiBsZWdhY3ktdHJ1bmsKKzIzMTI3IDUxMzYzMzQ4ZGNmYWI3YjAyZjdkMGY0NGJiNzM1NTUwZDg1NjBiZmUgbGVnYWN5LXRydW5rCisyMzEyOCBhMTllZWE0MTY2OGZjZmZhMDBlZjEyYmI0MDgwNWNiN2JiMTkxMTNjIGxlZ2FjeS10cnVuaworMjMxMjkgZWQzZTUyOWZiZTQ3OTFjOGFiZTlkNDJmODA2NTZiODg1MzgzYzQ1NCBsZWdhY3ktdHJ1bmsKKzIzMTMwIDcwYmRmODQ4NjJhZDFjYjMzNDNmOGY1M2E0NDRlYjg2N2JmY2Y2MmYgbGVnYWN5LXRydW5rCisyMzEzMSBiODdjMDU4NjI4MTU1OTY3MmVjNGRiODk3ZWE4NTVmMjY0OGFlMDhkIGxlZ2FjeS10cnVuaworMjMxMzIgNjJkMzFlYzQzZGY2NjM0OTdkNDJjOGQ3M2IxZjFmMWUyNmIwOTQ5ZiBsZWdhY3ktdHJ1bmsKKzIzMTMzIGNjMTQ2ZWU1Mjg5NzViNTI3M2FjZDg2YzFmNTdmMDg1NWQ1YWMwNGIgbGVnYWN5LXRydW5rCisyMzEzNCBiYzUwNTgxYjNkN2NkZTI3OGZkY2MwNTBjYmJiYmFmYTFlZjZmMzk2IGxlZ2FjeS10cnVuaworMjMxMzUgZDFjZDRjZDcyMjcxZTA3YTc1N2ZmOTAwNGQ0ODAwZGY0YTNlYmQyYSBsZWdhY3ktdHJ1bmsKKzIzMTM2IDE2ZTRkMDk2Zjc4N2QxYTk1MjQ4OTJiYjkxZjE0N2EzNGRjYzU0MWEgbGVnYWN5LXRydW5rCisyMzEzNyA5NmY1M2Y4ODMxZWVlNGQyOTA5ZjY4ZjhiODY3MjM1YmM2YTVhOTZlIGxlZ2FjeS10cnVuaworMjMxMzggYzhmZWNlMzdmMDIwYjBlOTYyNjIzZjI4OTAxZGU5YzM2MTlmOTQxMyBsZWdhY3ktdHJ1bmsKKzIzMTM5IGRmNjZiNGRkMGIwZGJiNDQ4OGJhY2Y2YTNmNmJhNzdhMGQ3ZjZjODUgbGVnYWN5LXRydW5rCisyMzE0MCA3MmU2ZWI2NTMzMTIwN2I4MTZlM2ViYTViMDgyYjQ0OTE0NDJhZjUyIGxlZ2FjeS10cnVuaworMjMxNDEgM2IwZGExM2FjZTQ4NTcyMmVkMmU0Njg5MTUwYTAyMmM2YWQ0N2UyMSBsZWdhY3ktdHJ1bmsKKzIzMTQyIGIyOGZjOGMzNmUzZGU3OGY3ZTE1MTE5M2M4OTA0NDRiM2JlZDFjMzUgbGVnYWN5LXRydW5rCisyMzE0MyAyZGE2NmNlN2VlMjI5NTE3NDcyMDkzNDEzMTJjOTY0ZTE1ZDliYmM0IGxlZ2FjeS10cnVuaworMjMxNDQgNzMzMzE0ZmNmZGFhMGE5NWVmNmJiNzhkN2ZlZWQyNDgyYzJlZmY3OSBsZWdhY3ktdHJ1bmsKKzIzMTQ1IDMxZmU4YjNlMjc2YmFhZGU0NTAxZjc1ZDU4ZjA3Yjg0Y2Q4MTBhYTQgbGVnYWN5LXRydW5rCisyMzE0NiBjMzNhODU1YzEyNzQ1ZjgyYTljOGQ1MmRjZjhkOWJmMjcyZGUyODAwIGxlZ2FjeS10cnVuaworMjMxNDcgZTkxM2Q3NTcxM2U2NDMyNTE3MzlhZDYyMWI4NjY0NTVhMGZlYTBjYiBsZWdhY3ktdHJ1bmsKKzIzMTQ4IDNhZjAwNjUwMzY3OGE3YzRlYTYyNTVhYjA1ZjVlZTIzNDU2OTBmMDkgbGVnYWN5LXRydW5rCisyMzE0OSA1MWNjODI2MDVkMzJkYjdiMTQyZjU1MzY2ZTkxZGU2YjFkYTQxZmVmIGxlZ2FjeS10cnVuaworMjMxNTAgMWM0MWZiZDA5ZDkzYTY4NjExYzIwZWNhN2IwOGQ0NzhjYzAwNjdjMCBsZWdhY3ktdHJ1bmsKKzIzMTUxIDA0OTFlYTYxMWJjNGI3NzNjMWJiOWZjYTViNTBjZmM2MDNmZGE1ZTcgbGVnYWN5LXRydW5rCisyMzE1MiA4NDM3NjM1NmZmODkwZTkwMjc5MjBkZDIyNDZmMGQ2ZGRhNGVhZTBlIGxlZ2FjeS10cnVuaworMjMxNTMgZmM0MGQwYjU0MDQzN2U5ODg3MzQyODM2ZTFjMzM5YTJjZmZkNjRkZCBsZWdhY3ktdHJ1bmsKKzIzMTU0IDFmNjE1MjYzMDdjMDBiNjc4OGExYTY5OGJjODlmNDcwODU2OTY4MTUgbGVnYWN5LXRydW5rCisyMzE1NSBmZjM3NzQ3MmVhYzk0MGIyNWRhMTMxMjQ0NjllMjc0YzY4MjgwZjFkIGxlZ2FjeS10cnVuaworMjMxNTYgMDc4MThjYmNkMzAyNjg4Y2ExMjQxNzU2ZmM5OWVmN2MxOWVlZTZjYSBsZWdhY3ktdHJ1bmsKKzIzMTU3IGRlMzk5NTZiNTQ1ODA0MzY1ZjE2MjRhNTJlNTJkMjdiNDlkMTI4ZDEgbGVnYWN5LXRydW5rCisyMzE1OCBjMDgyOTcxODIzY2U5MTMwODhhMTk4ZGY5YThlYmMxOWQ1Y2Q2OGE0IGxlZ2FjeS10cnVuaworMjMxNTkgNThkNTAwOTRiZjgwODQ3NDAxMWY4Yjc0ZGQzODE5YTg2MzlhYTc5MSBsZWdhY3ktdHJ1bmsKKzIzMTYwIGE3YmEwMGUzYjBkZTJmZDRiZGM3MjlkMzAzNTNlZGJlYzdmMTViYmYgbGVnYWN5LXRydW5rCisyMzE2MSBmMzlhOWJlN2M5YWY3NDY4NWM0MTFlYTU3ODMyOTIzYTBjYTdmYmNkIGxlZ2FjeS10cnVuaworMjMxNjIgZDY4Y2ZkODVlNmRiOWI1ZmJiYzgzMmY2ZDJjNTMxYTBjOTczM2JiMSBsZWdhY3ktdHJ1bmsKKzIzMTYzIGQ1N2E2YzgxMzY1OGNjMDMwMGY1ZjRkMzY5YWVlNzAzZDNjZWQ1YjYgbGVnYWN5LXRydW5rCisyMzE2NCBhMjg4YTU1ZjkyOTE1MWJiYWQ1ZWEyZTZhOGY0NjQzMGU2YTc3ODAzIGxlZ2FjeS10cnVuaworMjMxNjUgNDliN2UzOTgwODUzYmMyZDU1MzQ3YzFiY2Q3ZTZkYTJhYzFiODU0MyBsZWdhY3ktdHJ1bmsKKzIzMTY2IGNiYTQ0OWFiNTkxNTc5Yzk0ZmNkMmQ3YzBiNWZhNzdmNTk2ZDM2ODIgbGVnYWN5LXRydW5rCisyMzE2NyA3MWM4NTNkZWRiMDcyOTFkZWYwYmNlOGM0NjBhZmMyNDY4ODc3MjNjIGxlZ2FjeS10cnVuaworMjMxNjggY2EwZjU0ZGFjZGQ4YzQ1ZmU1ZmJkMGM2MDA4NGVlMGIwNGVlZDkzNyBsZWdhY3ktdHJ1bmsKKzIzMTY5IDIwMjdkYzEyNGVkZGFkYmM5ZTgwNGVjNmNmMGEyZjY0MjZjZjJlOWYgbGVnYWN5LXRydW5rCisyMzE3MCAyMjYzY2I0M2VhYWJiZWEwY2ZkNWViMWNlMzEyNTQ3YmI2ZTIyNjEzIGxlZ2FjeS10cnVuaworMjMxNzEgMWI1NWQ3OWM2OWQ1ZmUwNDlkMzUzYTc1MzAzM2FkYWMxYTZmNDYxYSBsZWdhY3ktdHJ1bmsKKzIzMTcyIDI5NGEzOGExOWI1YTk3ZWU1YWFkZTFiODRjZWRiZjA5NTQ1Yjk2N2EgbGVnYWN5LXRydW5rCisyMzE3MyBkOTZjZGJiNGQyN2JjMWUxNWM3YjVmZGY4YmVmOTY3ZDgzZGJhYTEwIGxlZ2FjeS10cnVuaworMjMxNzQgOGU0ZDM1YmM2NzNmZmFkOWRiM2MyYjk3NGI4NzgzZDllMWUxZGZiZiBsZWdhY3ktdHJ1bmsKKzIzMTc1IDYzOTMwMTU5Y2EzYzcyYThiOGY0NDNmMzQzOTczZmFhOGMyMjAwNTcgbGVnYWN5LXRydW5rCisyMzE3NiAxNmY2NGQ3ZGE4ZTMyMWMyMWRhMDc1NmZiZDdkMTA2NWUzMjk0NTBkIGxlZ2FjeS10cnVuaworMjMxNzcgOTdjZjZkY2QwYWVkMjdhNmJkZmJlYTJhZWZlYTE4ODQ2M2JkNDNjNyBsZWdhY3ktdHJ1bmsKKzIzMTc4IGNiMzVkMGY3MDRkZTBiNzBiMDZiMWJiZmUxMDEyYjAzY2M2MWNlMjYgbGVnYWN5LXRydW5rCisyMzE3OSAwMWY2NmY1ZGIzMjYxODUzMTgyZGM0Zjk4ZTk4MmU3MjQ2YmJkODI4IGxlZ2FjeS10cnVuaworMjMxODAgZGY0MDk4NDRiNjU5NzkzZjM2OWZhYWRiODVhY2E5NjhlNjkzZGQ0MSBsZWdhY3ktdHJ1bmsKKzIzMTgxIGNlNDE0YTZkMzBiNDZlODM2ZWNlNjYxZDI5NzMwMGI0ODBmNDc0NzIgbGVnYWN5LXRydW5rCisyMzE4MiAyODk0NDU4ODc3YzgyOTkzNzEyOTA5MWEyYjU0NjMwNzdjYmM1M2RhIGxlZ2FjeS10cnVuaworMjMxODMgNjA0NmU5NTQ2YTcwMmI2MTUzMjM2MWE5MWM2ZmNjOTc0YzA0OTZkNSBsZWdhY3ktdHJ1bmsKKzIzMTg0IDliYzc2ZTM2YmE1N2VjOGY1YTNmYmNjMzE0OGRmZTNiODUyMmYxYjEgbGVnYWN5LXRydW5rCisyMzE4NSAzNmMwN2ExNzE4ZTk4OTI5OGU2MGQ4ZjBmNDU3ZThhYWI1N2UzNzliIGxlZ2FjeS10cnVuaworMjMxODYgYzMyN2E4YWM5ZjJiNWZkMTAwZjA1ZmE0MjYwYWU3ZDgyODVkYWJlZCBsZWdhY3ktdHJ1bmsKKzIzMTg3IDYyMWVkMTM0NDVkZTU1Zjc5YTdhMTAxNzk2YjlkMjNhNTllYWRhZDAgbGVnYWN5LXRydW5rCisyMzE4OCBiNmNmMmYyN2U0NGZhYTUzZGFlZDI1MzM5ZDI0MzA3ZDdiZDQ3OTA1IGxlZ2FjeS10cnVuaworMjMxODkgZjJmMjVhNzM4ZjdmMDkzYjQ0YzUyOTJkNTc2OTY2ZGNlOGJjYzk3MSBsZWdhY3ktdHJ1bmsKKzIzMTkwIDYxOWEyZDZiNWVhOTIxOWQxNzY0MTUyZTNjNTZhMWU5OWY2MDUyOGYgbGVnYWN5LXRydW5rCisyMzE5MSA2OTQ0ZjViOWRlMDNkYjllODYwYThiOTFjOGQ0N2RhOTEzZDdkZGVmIGxlZ2FjeS10cnVuaworMjMxOTIgODk2ZjJkMWUyZjQ2ZDc2YzE3MzQzMzM0MTlkOTk0M2E5Y2ZmMjQxYyBsZWdhY3ktdHJ1bmsKKzIzMTkzIGZkN2E3ZjgzMjI1OGQ3YTk3MjM4YTljMzM4MmQ0ZTE2YmM1ZDA4OWMgbGVnYWN5LXRydW5rCisyMzE5NCBhYWNhNGQzY2Y2MmI2NzViZTA3MGM2NzdhMjMwZjg0MTQzODNmOGRlIGxlZ2FjeS10cnVuaworMjMxOTUgM2JmNjIyYmMyNzkyMTgxOTNkZjE4ODE3MTU1NDU2OTNhMDIwZTU2MCBsZWdhY3ktdHJ1bmsKKzIzMTk2IDBkNTM1Yzg2YmU1ZjUyZjBhODQxMWM4ZGMxYTlhMTkyMmZhNGVjYzMgbGVnYWN5LXRydW5rCisyMzE5NyA4NTIyYjAyMmY4MGEyOTM1ZjY2MDJhYzBlODQ2M2JjNTUyZWRiOWVkIGxlZ2FjeS10cnVuaworMjMxOTggNjc3M2RjZmUzNGEzNjkxZjU4MGYxOWUyNjI1MjJjNGVmYzFiNmE1MiBsZWdhY3ktdHJ1bmsKKzIzMTk5IGQ5NDBhZjUyNTg0MDhlZDQ4ZDBiZDlmYzI0M2EzMzAzYzlhZjczYTEgbGVnYWN5LXRydW5rCisyMzIwMCBiZTRiYWFmYTRjNTI4ZDA2MjM1NjRlM2VhNzU0NTkwZTFmZjliNmU3IGxlZ2FjeS10cnVuaworMjMyMDEgNDE3OTliNzBhOTZjMWUzY2MxMTllYTkzM2M2MmY5YTUwOGQ5MWI1OSBsZWdhY3ktdHJ1bmsKKzIzMjAyIDNmMTkyMjk5MDkwMzQ5MjQwY2EzMmRhMDljY2ZhYzQ1ODdjMTU3MDAgbGVnYWN5LXRydW5rCisyMzIwMyBlYWYxMjAzYjg1Y2ZkMDg0ZTAyN2JiNGU0YTlhN2Y4YjkzZTZmNGE0IGxlZ2FjeS10cnVuaworMjMyMDQgMDRjZTJhNDhjMGE4MzFhODRiMWEyMmI1NjA5OWU4NGIwNmFkMWI4NiBsZWdhY3ktdHJ1bmsKKzIzMjA1IDc2MTMzYTQ2NWUwMzk2ZjQ4Y2RmM2NjOTVkMmM1NDYyNjc1ZmIyNWMgbGVnYWN5LXRydW5rCisyMzIwNiA3ODk0NmE3ODQzNTEyMDJkMDUyZDJmYWIzOWJmNGZjYThkNTJjNjMyIGxlZ2FjeS10cnVuaworMjMyMDcgOTZjNGEzZjA4ZGNlMjRkYmRmNWY3MDUxZTE5OTAwY2JmZWU5OGJmMSBsZWdhY3ktdHJ1bmsKKzIzMjA4IDBmOWRmNTYzYjY1ZGU0ZTE0ODIyMzFhM2U0ZDQ4NGJiMTdlMjE2MWUgbGVnYWN5LXRydW5rCisyMzIwOSA4NGFmMWRkMDExZWUzM2Y3YWNkZjlkZTY2NjVlZGQwODcyYjc3OTE3IGxlZ2FjeS10cnVuaworMjMyMTAgZjM2YTJkNDBhMWRmNjhhZjM0MjIzMzE3MTEwNDZhN2M4NGZmMjMzMiBsZWdhY3ktdHJ1bmsKKzIzMjExIDMzNjY5Yzg5MTRiNGFlMTIzYzNjOTU4NDI3YTkwZDljYmY1NDE0NTEgbGVnYWN5LXRydW5rCisyMzIxMiA5MDk4YTMwOGE1N2IwNzhjYTAyNjc0M2E1NzBiNzI5OWI4YTViYzA4IGxlZ2FjeS10cnVuaworMjMyMTMgNjA4MWQ3MzYxNjdiMGU2OTNmMDViMzc5ZWZjMDc1ZjZkMDE1NTExYiBsZWdhY3ktdHJ1bmsKKzIzMjE0IDAzZjNhYjBjNzI4NmRjYTFhZWJkMTM2YWRhN2I2NGQxN2Q0MjhiNjUgbGVnYWN5LXRydW5rCisyMzIxNSBjYWUzZmYzMWJkOTEyYzE0MzdkYWI0NmM4MjEzYThjM2I1OWY4M2ZjIGxlZ2FjeS10cnVuaworMjMyMTYgMDgzNzRhODUyNmUyMTAzZmQ2YzBiNmNkNDIwYjIwZDIxZGMwN2EyZSBsZWdhY3ktdHJ1bmsKKzIzMjE3IGNjNTJiMDVhYzk3OTU0NDJhNzQ3N2RmODFjZGY4MTFjMzVhOGMxN2UgbGVnYWN5LXRydW5rCisyMzIxOCA5NjllMzA2YjYyZmRlOWJkYTY3ODQ4NjM3MGI5M2M3NTE4MjBhZmY0IGxlZ2FjeS10cnVuaworMjMyMTkgNDNlNWZkNTRmOGM5OGQ5YTdkZjVmMjllNWQ2ZDkzZGQ4Y2Y4NjhlZSBsZWdhY3ktdHJ1bmsKKzIzMjIwIDgxNzc0NWU1YWRmYjM3NmQxNjU3MThjZDRiOGMyNDFkZTE5ODg2ZTEgbGVnYWN5LXRydW5rCisyMzIyMSA0ODY4OTM0NmU4YmJkNjY3MDJiNGIxNzRjNmUxNGMzNWE1MmUzMDIxIGxlZ2FjeS10cnVuaworMjMyMjIgMGI1MWU2MDdmMzMzN2Y5NDU3MDI0NGQ5NjlhZDU1NWY4M2YxNDMxNCBsZWdhY3ktdHJ1bmsKKzIzMjIzIGU5MTI4ZWE0NWNkYTgyM2U3NzhlNTkwMjA1MTYwOTQwNWU0ZjFjZDcgbGVnYWN5LXRydW5rCisyMzIyNCBiMTQwOGEyOGQ4YmUyYjZmMTY3ODllMzFjNTE5NDJiNDVjZjM2YjUyIGxlZ2FjeS10cnVuaworMjMyMjUgZjc2MWNhYjI4YzFjMTBmNDk1ZTlkMTMyNmZmYWI5YjNiZjhlZmE3MCBsZWdhY3ktdHJ1bmsKKzIzMjI2IGQ0Yzk2NTMxNjYxMDRmNjlkZmU0YjM3MWMxNDE4MmNhNDIwMGVhODYgbGVnYWN5LXRydW5rCisyMzIyNyAyMGFkZmVjNjE0NjdkNWJjNGRjMmEyM2Y3MjM3ODVhYTAyMWExYzI3IGxlZ2FjeS10cnVuaworMjMyMjggMDVmNmIwOTg5OTUzMmE2NjE3YjU2Y2MyOWI5ZGQwZDJhZWI5Yjk4YyBsZWdhY3ktdHJ1bmsKKzIzMjI5IDhlZGM0NGJkMGFjN2YxNDNhMzkwN2U1M2Y4NThkMDAyYjY2M2M4YjQgbGVnYWN5LXRydW5rCisyMzIzMCA0ZTQ0NWEzZTA3YzZiNTM1OGI5ZmUxZmY4ZWJmNDJmMmIyNDRhMjNmIGxlZ2FjeS10cnVuaworMjMyMzEgZGEwMDE4OGQ1MjcwOWFmNjg5YTM1M2Q5MDlmZWMxMzIyODk1NGU5ZSBsZWdhY3ktdHJ1bmsKKzIzMjMyIDYzMTNmYTM4ZTkwZWFkYTM0ZDY0MDkyMjk3ODBhOTcxZWJhZGZiZmUgbGVnYWN5LXRydW5rCisyMzIzMyBhOTYwZTY3MzA3N2ZjNWIyODM1NWUzMWYxZjU0MmFmNzJhZmJjOGY3IGxlZ2FjeS10cnVuaworMjMyMzQgOGRjZmFmMGU2NTU5YmI2ZGNiNDFiYTY5NGNiODJiMmFiZWM2MDg5NCBsZWdhY3ktdHJ1bmsKKzIzMjM1IDlhYjZhZjY4MTVhZmNiNmRhMDYwNWNmZWJjOGM4YjA5MmQ5ZTEzOGQgbGVnYWN5LXRydW5rCisyMzIzNiAwZmQ5NTIwMGFiNmVjNGQ3YTA0OTE2MmY1MzI5NDQyZjFkMDVkMjgyIGxlZ2FjeS10cnVuaworMjMyMzcgYmY0YjFiMDhhMmM2ZjIyOWE5OGZkY2I4MzcyZDI4M2JjYjk5ODdkYyBsZWdhY3ktdHJ1bmsKKzIzMjM4IGQ1NjQ2YzBjNTEzMGNjMmY5MmRlMDcxYWMxMzhiOGJlODc4MzY5YWMgbGVnYWN5LXRydW5rCisyMzIzOSA5ODgxMmQyMjEwNzUxODA2Y2U3MmY2MzYyODMxMjEwNGJiZTE0YWIxIGxlZ2FjeS10cnVuaworMjMyNDAgNzEyYWZkYWUxMTIzOTRjMGE5ODlmMGYxNGE1Y2M5NThjOTA4ZDI3OCBsZWdhY3ktdHJ1bmsKKzIzMjQxIGY0MmY4OWI1YjhmOWJiNDZhMmM0NWIxNTBmM2ZhMzkyYjRjMmI4YmUgbGVnYWN5LXRydW5rCisyMzI0MiBkYjE2ZTI2YTA3MWI4MzQzYzM5YjkwNGM5ZTkxYzBlMjYxOTFhMjQ0IGxlZ2FjeS10cnVuaworMjMyNDMgZmNiODc3MDY5ZmFhNzExNzMyYzA5YmYyMDgzODBlMjc4NGYyZjU4MiBsZWdhY3ktdHJ1bmsKKzIzMjQ0IGNlYzllMjVhZjEyMWIxNjU3MWY4MTA3YjEyMjNkNzIyY2IxYzFkZTYgbGVnYWN5LXRydW5rCisyMzI0NSBmZmExYTg3YWM0M2E4ODZlZjI1NDgyMjAyMzU4NmE5NWI4ZDAxMTFmIGxlZ2FjeS10cnVuaworMjMyNDYgODcxMzRjN2YyYmM3N2I4MzY0NTRiNmQ2YTk3MzkxNzkyMTM1NzFlZCBsZWdhY3ktdHJ1bmsKKzIzMjQ3IDlkN2NhNTkxNGQxY2ViNTYzYjUwYjgzZGVmNzg0NzhlNTI2NWE4MTMgbGVnYWN5LXRydW5rCisyMzI0OCAyOGVmMjJhMjU5OGU1YWEzMWIxN2ViZTVhMmU0N2JkMGI2ZTZiZGYzIGxlZ2FjeS10cnVuaworMjMyNDkgYWI2YzE0ODIyZGUxYmY2NWVjMTBkYzBlNzY2YmVjN2ZhMTYxMjg3MSBsZWdhY3ktdHJ1bmsKKzIzMjUwIGIwN2NiNTFkNzMxYzg3MTE1YTE2MjE1NzBmM2M5ZjgxY2NjNjgyZmQgbGVnYWN5LXRydW5rCisyMzI1MSA2NDZlMjQ3Mjg4NTIzYjhlYzkwYTBhNzRlMjlmMjI3YzJiMWRmMDRhIGxlZ2FjeS10cnVuaworMjMyNTIgOTQxYzI4Njg2MDM5Njg0ZjAyMThjNzkwNDdiNGZiMDNhODZiYTNjOSBsZWdhY3ktdHJ1bmsKKzIzMjUzIDhhMGM5NzQ1M2RmNDgzNWQyZmJjZmJhMzI0ZDkyMjgyNjk3ZTExYTEgbGVnYWN5LXRydW5rCisyMzI1NCAxZjRlMjYyN2I2MjcwMTFkNDNiMTAyNDNmY2ExZjY3MDZkNDQ1ODU5IGxlZ2FjeS10cnVuaworMjMyNTUgMzRhZjE5ZGNlZjU5M2YxY2FkMGU2N2U5OTMzZTkzNGY4MTMyNTZjMiBsZWdhY3ktdHJ1bmsKKzIzMjU2IDdmZmUyNzZhNjg1NGM4MzIyN2QyNGQ1ODAzYmYxZDFiZjYyYTYzMDIgbGVnYWN5LXRydW5rCisyMzI1NyBiMGFmYjY5MTM0MDFhYTc0YWViYzk2MmFjYmE1ZjA4NzViZjFjNTY2IGxlZ2FjeS10cnVuaworMjMyNTggYzdjYWY3OWY1MTQzM2Q4NmJjNGI5NTE4YmVkMGZmZDQ0ZTY0YWYyZCBsZWdhY3ktdHJ1bmsKKzIzMjU5IDM4MTVjOGFkMDJkMDMzNDA5MWUyMDdhODZkMDk5ZDZiYmZhMjcxMjEgbGVnYWN5LXRydW5rCisyMzI2MCA5YzhiMTk2MTUwMzQxMzQzNTYwNGZhYzJlNDY3NmU3ZmM4NGRmZTg0IGxlZ2FjeS10cnVuaworMjMyNjEgMmE3YjRkNDQ2MGQzZWJlODZiMmQ5M2VkMWY5Nzc4MDBhM2Y1NGY2ZSBsZWdhY3ktdHJ1bmsKKzIzMjYyIDU2ZmZlZTFlZWVlYzRmOTkwZGExMmZlYTRiZjEzOWI3YjkwNzIwZmEgbGVnYWN5LXRydW5rCisyMzI2MyBlZDE4ZDQ0MzlmMDg0ZjI5ZWQ5NjJhOGI5MDIxYTY5ZDU5ODU4ZDdmIGxlZ2FjeS10cnVuaworMjMyNjQgMGZlMzE4YTc4OTkwNDE0OWZjMDI4NTVhMmM5MjM3ODRiNjNhZDk4MCBsZWdhY3ktdHJ1bmsKKzIzMjY1IGQwM2MxOWRiMzA5NDc3YmViNDRlOTNlNWQ3Mjc1ZGVkMGNlMjBhYWQgbGVnYWN5LXRydW5rCisyMzI2NiA3NWI3ZThiZGIyMWVmNjA1NDVjOTZlYTgxYzAzMWY5ZjYxOTkzNWUxIGxlZ2FjeS10cnVuaworMjMyNjcgM2ZhYWJmNTRiOGI4M2QxMjVkZmNlY2Q1YmE5NzUyNDA2YzA0YmYzMyBsZWdhY3ktdHJ1bmsKKzIzMjY4IGUzMTg0ZTQ2MzAzYjU0OTgyOWRlNjgwYTU1NjIxZGM4MDhkMDNkYjUgbGVnYWN5LXRydW5rCisyMzI2OSBmMDIwZGE3ODFiOTE1Y2M2YWJhM2RhNjczMDQyY2JmNmIzZjFjMDViIGxlZ2FjeS10cnVuaworMjMyNzAgY2E3YWYyYTVkOTE1YjljNjRmM2EzMzhlNTk0Mjk0OGYzZmExNTU5MyBsZWdhY3ktdHJ1bmsKKzIzMjcxIDcxODk1ZGQyNjhlMmQwNjM4NDc4NjE1ZmI3OTZiYjYwYzg5N2RmZjEgbGVnYWN5LXRydW5rCisyMzI3MiAwODQ0NmE5ODZhNTYyZDJhYTkwZWYzNTllMTk3NTBkNTdhNGFhNGYwIGxlZ2FjeS10cnVuaworMjMyNzMgOGFhMWFkYTMzZjY0ZTIwMjdiYzRjOTkzMGYyNjRjZmFmMWQ1NmZiMSBsZWdhY3ktdHJ1bmsKKzIzMjc0IDBmZDEyZjkyY2U4ZjBjNjBjNjU3MmNlZjAyMDc0NThjMDc3NmMyNDMgbGVnYWN5LXRydW5rCisyMzI3NSBiNzBjMDg4MTNiYTk3YzI0YWEwNzMwYTNkMGU2OTY0YTE1MTMyMTEyIGxlZ2FjeS10cnVuaworMjMyNzYgNDBjYzY2MjFlZGRjYTA3MjFiZDE5OWU3ZTc5ZGUyZjRmY2E4NGJlNSBsZWdhY3ktdHJ1bmsKKzIzMjc3IDEwOWRlZjRhNWY2ZTk4NTJhNjIyMWIyM2Q1YTk2NThlYzc2YmM3OWEgbGVnYWN5LXRydW5rCisyMzI3OCA3MjlmZGYwNDU0OTQxZTk2MGI5MjNkOWI3ZWFmYjgwNThmMTk1NWMzIGxlZ2FjeS10cnVuaworMjMyNzkgNGY3NDcxNDJlODRjODM5OTI2MGEzMzljZDg1MzkwMThjMDMzYzc4NCBsZWdhY3ktdHJ1bmsKKzIzMjgwIGI3ZWM5ODVkODVjNjE5NmUyMjBiNTIwNDNmZmU2Y2QxMzFmYWY5M2EgbGVnYWN5LXRydW5rCisyMzI4MSA3YzVjZDY4NWMxZGUwMmQ5NzVmMzllMGNlNzRhY2Q3YTFhZWIyNGY3IGxlZ2FjeS10cnVuaworMjMyODIgZTYzZjk3NTYyYTYyOTE0MTZmZWJiNGQ0YzA4YWMwMGFkZTk3NzRlOCBsZWdhY3ktdHJ1bmsKKzIzMjgzIGRmMWI4M2ZkMGViYmRiYjdhZGFmN2QwOWNlMmU2YmY5YTBiZDgzYTkgbGVnYWN5LXRydW5rCisyMzI4NCA0YmJiNGQ5YjRkNzc2NDFkMGQ1OWE5MmNjY2EyOGFmZmNlN2YxZWVhIGxlZ2FjeS10cnVuaworMjMyODUgNjM3OGNiMTE3YjczYmIzMmFlOWQ1MGQ5YzQ1MDRkMjkyYmE1MDVmMSBsZWdhY3ktdHJ1bmsKKzIzMjg2IGU1YTNmOWQ3NzY2YjdkMGY0Yjk0MDFlYzZjNzg4YWY1YzNiYWRlMmUgbGVnYWN5LXRydW5rCisyMzI4NyA1YzlhOTU1ZWYxN2NkYTExNzMwMTJjZGU2MjllMTcxYTNmMTRhOTJiIGxlZ2FjeS10cnVuaworMjMyODggMTA0YjVjOWI4OGVhZTk3ZGRiOGM1OTE2MjM5NGUyMTY5OThlOGM1ZiBsZWdhY3ktdHJ1bmsKKzIzMjg5IDA2MmFjOWFhZmU0N2I4MzBiMzQ5YTRiY2M1ODE5Nzg4MmFiN2EyYTIgbGVnYWN5LXRydW5rCisyMzI5MCAwOTk2ZjA3ZDA0YTNhY2YwZDYwYzE0ZTA1ZmI3ODQxYjExOGI4MGVlIGxlZ2FjeS10cnVuaworMjMyOTEgYWI2MmQxNDdiYTkwZjM1OTc1Mzg4OGQzNTc1M2YyZTE2ZjJjMzJkZiBsZWdhY3ktdHJ1bmsKKzIzMjkyIGU1MjFmYzM3MGJlMjA1MGY0NTNhNmExZTk4MGJkNDQ3MGUwMGRmNGEgbGVnYWN5LXRydW5rCisyMzI5MyA4YTZmMmVlNmVhYmEzMWE0Y2E0NjhhZDdmNGEyYTFhNzJhYjRlOWEzIGxlZ2FjeS10cnVuaworMjMyOTQgM2E0YTAwMzllZGYzMmJmNjkyNThkOWQwZjk5ZGQ1MjlkMmVkNzI2NyBsZWdhY3ktdHJ1bmsKKzIzMjk1IDU5ODgyZTdhYWI4OWM5MTI0NDBkZDdiMTUwOWQzNzJjNzRhZWQxM2IgbGVnYWN5LXRydW5rCisyMzI5NiBjZDcyYjY0YWVjOTc4OWNlZGZlN2YwNzI5ZWU0MTI0NGYxZmVkMmQyIGxlZ2FjeS10cnVuaworMjMyOTcgZTA4ZjQyM2Y5MTY1YzA1Y2VlZDM0MDMxNjkxYTRkMWJjNjU2OWRhYSBsZWdhY3ktdHJ1bmsKKzIzMjk4IDY2YmIxMGVlNDk2MTJiOTE2MGRiN2Q5YWFiMjVhZTU3Mjg1ZWFmNjQgbGVnYWN5LXRydW5rCisyMzI5OSAxOTI5ZmM2OTZhMDQ4NDFjM2Q2MWRlZjk5ZjkwNzVkYjZhZmVjNWVkIGxlZ2FjeS10cnVuaworMjMzMDAgN2I4YzExNzM5NzE0ZDI3MDA2NDZmNjNjYjJiN2MwMWFlZWYwMzMxMSBsZWdhY3ktdHJ1bmsKKzIzMzAxIDliODE4YWYwZDczMGU5YmMwYTU3NjhiYmU4Y2FjNWMyNGVhODY2NjQgbGVnYWN5LXRydW5rCisyMzMwMiA0YzVjZDNkMWNmNGI1YmMzYzgxZDI3Y2JlOWE4ZmU4NTc1N2VhZDMyIGxlZ2FjeS10cnVuaworMjMzMDMgNjMxMDgzN2NhNTM0MzkxNzdhYTQ2N2ZmOTA0YmVhYjQ3YzkzM2EzYiBsZWdhY3ktdHJ1bmsKKzIzMzA0IDFhNThjNzQ2NjJlOTNkNjRkODY2OWU2N2UzYjI2MzJiMzUyZGU4MDQgbGVnYWN5LXRydW5rCisyMzMwNSA2ZTkzYTE1ODY4MDBhNzlhNWVmNmIwZmQ0YjdiOThiOGFiOTAwMGIzIGxlZ2FjeS10cnVuaworMjMzMDYgNDk2NmNmNzkzYjQ0YzA2MjM5NmY5Y2IyMzFjZjljNjI3OGU2MjVjZCBsZWdhY3ktdHJ1bmsKKzIzMzA3IDBlZTg5MDNkM2ZlZDAxNzEyN2NkMTQyYjg2MjBhMWY4NGJiYWQyZTggbGVnYWN5LXRydW5rCisyMzMwOCBiZmQ0ZTAzYWQyMTJkMjQ5ZGY0OTdmZGY1ZjgxZmUxZWNmNWVhZmQzIGxlZ2FjeS10cnVuaworMjMzMDkgOTIwYzYzY2ZjYTBjZGUzMjgyYWQ1ZmRiZWM1NmRlYzQwYzQ4YzZlMSBsZWdhY3ktdHJ1bmsKKzIzMzEwIDg4YTAzZWE1NzcxNGY4ZjE1NWRmYTdlNjI0MWUyZWEwZTIzMWIwOWYgbGVnYWN5LXRydW5rCisyMzMxMSAzM2VkYzk5ODYxYjkwZDRkM2Y1YTQxMDRhOGYzMWVmYjM3YWM3YjJjIGxlZ2FjeS10cnVuaworMjMzMTIgNWIxYWQ3YWNhYmI1YmM1NGNlZGQ5NDRmODI4NjVlZTc0MmZjZmI1NSBsZWdhY3ktdHJ1bmsKKzIzMzEzIGMyYmYwYjEzMzgwZTMwNGYwZDY2MDk3NjllOTQ2ODNmNTJhNDkzZjMgbGVnYWN5LXRydW5rCisyMzMxNCBkMmQ4MzViMzVkNDc1ZTViNzVkMmY0YTMxMDZkZjBjNGQxYzU1M2VkIGxlZ2FjeS10cnVuaworMjMzMTUgY2NlYzAyYmZlOWEwNThmNjQ0OTY4ZWFkYWM1ODY2YTU2MGJlNjBiMCBsZWdhY3ktdHJ1bmsKKzIzMzE2IDJjYWRkYjgyZmZlYTJmNTNiYjk4YWYzNTQ3NGVhNmQ1ZjUwNWU0OWQgbGVnYWN5LXRydW5rCisyMzMxNyA2MzkwMTM5YWQwODI1ZGNiMWRhZGI3MmVjYmMxMzUyYjY5NGEyZWFjIGxlZ2FjeS10cnVuaworMjMzMTggOWE1OTliMWQ5ZDFjODRhNzc3OGNlZGU1NzMyZDE0YzliYzE4OTJhNCBsZWdhY3ktdHJ1bmsKKzIzMzE5IGVmMzAzNGE2MGEzZWMyZWYyOWRiYjIwZTQzMDNhNDI1ZmJlYWVhMTMgbGVnYWN5LXRydW5rCisyMzMyMCBmODQ2OTFiMTE0MDI3YTlhOTkxOTcyYmQ3M2I5OGQyYjQxNDc3MzFlIGxlZ2FjeS10cnVuaworMjMzMjEgMTRjODNjZjdmMzM4MmUyZmMwZjBiMTk1MGU1NjliNWNjODliZDc1NCBsZWdhY3ktdHJ1bmsKKzIzMzIyIDI5OWY1ZmNiMGJhODBlY2RkNmQwYmE2ZWRjYzY2OTBhYWU2YjMzYzAgbGVnYWN5LXRydW5rCisyMzMyMyA2OWU4MjA2MjRjYmMzMTZhMzllMTg5NWUwZWQwYTNkOWQ5ZGEzODEzIGxlZ2FjeS10cnVuaworMjMzMjQgOTBhNGYyM2FiZGE3ZGNmMDYyZDFlMzVjYTQxMjJlM2NhZTU0YzgwMCBsZWdhY3ktdHJ1bmsKKzIzMzI1IDkzOTc3ZjE3NTUyZDU4ZTgzOTNjZWMwMDM2N2VkOTQwY2MwZjZkNjQgbGVnYWN5LXRydW5rCisyMzMyNiBlMDFkZThiYzU4MTM3NzhhZjhjNTc2YzlmZjJhMzIwYWEwYjdhNjcwIGxlZ2FjeS10cnVuaworMjMzMjcgMzk5ZDc3N2FmMDQ4NTEyNjdkZDA3MDQ0ZTIwYTFiMzlhYjk1ZjBjMSBsZWdhY3ktdHJ1bmsKKzIzMzI4IGQ4YWJmOWNlMzIyNTMyNTY3OWNjMzg0N2FkZWM5Y2NkMjFkMzhlZjkgbGVnYWN5LXRydW5rCisyMzMyOSA1MTE3NzZkNmQ3ZDg2ODVhODZhNDI5NzE1MGJlMzA2YWE5NGEwZmIwIGxlZ2FjeS10cnVuaworMjMzMzAgYWFlNWNmN2U1ODYxNWM0N2NiMTVmYzg1OGQ3MWJkNGEzZDczMjc3MiBsZWdhY3ktdHJ1bmsKKzIzMzMxIGQ5MjUwZDViNzlhNzU5MjZjYjFiNjUyMjZiYzNkYzg2MTBhNTYzMmIgbGVnYWN5LXRydW5rCisyMzMzMiA4ZjE5YjJhOGM2M2M2Nzc5NzBkMjc0OTY3YzBkMjE1MmQ4MmIzNDRjIGxlZ2FjeS10cnVuaworMjMzMzMgMDA0Y2RlZmI3MGQxZjlkYmNmMmQyOTU3ZDI0OWU2Y2YyM2E1N2U0NiBsZWdhY3ktdHJ1bmsKKzIzMzM0IDkyOThmZWU0NDZiNzc0MGFkM2ZjNmNhZjM0ODA5MGVkY2Q0OGYxYTcgbGVnYWN5LXRydW5rCisyMzMzNSBmNDhhNDFjOTcwMjE1Njk0MjI1YTI5NjVhNDliZTFjZWI1Y2NjZDJjIGxlZ2FjeS10cnVuaworMjMzMzYgNDM5N2ZhNTE1MmZhNDE2NjgxYjY1MjZlMWFmYzIzMzU2ZjY1ZjZkMCBsZWdhY3ktdHJ1bmsKKzIzMzM3IDE4ZGYzMmY2Y2VhMTNlM2UyN2ZkZjRkYTE0Y2YwMDIyNmU0ZWE3ZmMgbGVnYWN5LXRydW5rCisyMzMzOCBmZGZjMThkNTU2MTUzMDg5ZDExZTUwOWRiYTM3OGI3M2ZiMWZmYjkyIGxlZ2FjeS10cnVuaworMjMzMzkgNDhlOTNlZjNjNWI3MGI4ZTQ0M2I3ZDBjZTYxNmQwN2IxODUxNTA1NyBsZWdhY3ktdHJ1bmsKKzIzMzQwIDMxOTJhMzJmZDQ4ZjZjNGM5ODliZDE3MGE0MjBjZTVmZTkwMzE4MjAgbGVnYWN5LXRydW5rCisyMzM0MSBkYWQ5NGNhNDdlMjEzOTE0ZTQxMWFkNDUyOTljZmM3ZTdmZjUyNzhmIGxlZ2FjeS10cnVuaworMjMzNDIgYjQxNjFjZTU4NWU2NGNhMWM5ZDIxZWQxYWI5YWE0ZDgyZmVlY2U4NCBsZWdhY3ktdHJ1bmsKKzIzMzQzIDM4NmZiMjZlMDg3NDdlYmY1NWVmMjBiZWI4ZGFmNDJlNWVjYzI3MTggbGVnYWN5LXRydW5rCisyMzM0NCAzNzE5YmE1ZWU4NDQ2YTZkZDIzMWRlYTdlNGVmNTNhYWMwYzE3NDRjIGxlZ2FjeS10cnVuaworMjMzNDUgOTMzYmY2OGUyNjUwM2E4YzJiMzZjMTgyM2MxYzc3ZWMyZDdhN2ZmYSBsZWdhY3ktdHJ1bmsKKzIzMzQ2IDQwZDRkMWNkNmM4NGE0MTYxNjZmNmNlMjk5OGQ0ZTRhM2UzNjQwZmMgbGVnYWN5LXRydW5rCisyMzM0NyBiNTJhNjMwNTIzMDY4NjliMmY1ZjU2OWQ0OTI1YTU1MTYzZjMyOGRmIGxlZ2FjeS10cnVuaworMjMzNDggYjI4YzA3YTFiNDBkZjk5ZTUxMzMyM2MyZTJiZWNmNzc4YTc0YTBmYiBsZWdhY3ktdHJ1bmsKKzIzMzQ5IGQ2NThhMTVhOTBhZDk1OTI4NmE2MjcyZWY4MDVkNjBhZTFjYmYzOTcgbGVnYWN5LXRydW5rCisyMzM1MCAyODljMWE3MDAyODY0Yjk1YzNmNTllY2EzNDYwZjIxNTM0OTZiNzQ5IGxlZ2FjeS10cnVuaworMjMzNTEgMTlhYmMzMzlkM2ZjZjJmMWJhOTJkYTMwMjczOTZjNzcwMTc5ZWMxOSBsZWdhY3ktdHJ1bmsKKzIzMzUyIGEzODFhYjBmOWQyODNiYmFiMjY2Yzg4ODRjYTFhMzM2MTM5NWEyYjkgbGVnYWN5LXRydW5rCisyMzM1MyA1NmJkZDkwYzlmZDZkZDg2NjZmNzQyNzNhOGIwMDI1YmI0MTM5N2MyIGxlZ2FjeS10cnVuaworMjMzNTQgODE5YjZmZjdlNTZhNmI1ZmM2MDE4NDZmYWEyZTUzN2RjN2YzOGE3OCBsZWdhY3ktdHJ1bmsKKzIzMzU1IDJhNjhjNmUxZjljNTRhOWRhYWMyNjdkN2RjOTcxNWQ2NjkxYmY0NzcgbGVnYWN5LXRydW5rCisyMzM1NiBhYjFhZjFjYTAzMGM1YzViYzQwZGE0YjBiYmNmMGI0ZTFmYWI3MzllIGxlZ2FjeS10cnVuaworMjMzNTcgNjAwOWQ4NTlmYjU3M2VjYjBiYWYyYzBkOGZmZjZlMjM5MzY1NGE3NiBsZWdhY3ktdHJ1bmsKKzIzMzU4IGQxOTEwMjIzYjI0N2RmM2QzMDFlMzM4Y2VjMWRjNmU3YTQ4ZmQwYWUgbGVnYWN5LXRydW5rCisyMzM1OSA4YTE2MTRjZWIzNzc3ZWMwYmFlMGM1YTE5NGJkYjdhOWFmNmYyNTYzIGxlZ2FjeS10cnVuaworMjMzNjAgM2RmNGI4Y2RiOGM2ODc5YzBiZWJkMDA3YTgxMzAyODdkZTBhZDIyZSBsZWdhY3ktdHJ1bmsKKzIzMzYxIDhmMjVlYzAxMDE4YjVhODY1ZDY1NzQ5NDVlMjZiNWZkNWY0NjE3YzcgbGVnYWN5LXRydW5rCisyMzM2MiA4MzIxNmNhNjdlYmVhMWIzNDBlZjYzNzc0MjRmY2QwZDM5ZmU1MDNiIGxlZ2FjeS10cnVuaworMjMzNjMgMzM0YmYwYmFlZWI3ZWI5MWEwZTU5NTY0MzFmNmYzZGU4NDNlMWE1OCBsZWdhY3ktdHJ1bmsKKzIzMzY0IGQ3ZDg0ZWFlOTJiYTBhMTI5YjE2NzExMzQ5ODYxNGY3ZTk0YTEzZDUgbGVnYWN5LXRydW5rCisyMzM2NSBiZWZhNzI1OGMyMDBmMzhlODllMTVhM2VlNmY1NWNiMGM4YzY0NDc2IGxlZ2FjeS10cnVuaworMjMzNjYgODBlMzZkYWIyMTExN2E0NDBiMWZkN2E5Mzg0MmYzNTI2OThkMmM3ZSBsZWdhY3ktdHJ1bmsKKzIzMzY3IGU4YTI5ZDIzYzcwYThkM2NiY2ZiMDAzMjNjYWQyZTdkNjBmZWVlNjcgbGVnYWN5LXRydW5rCisyMzM2OCAxMmE3ODdmYjcxZGYzNTI2ZTAxODdlZmRiYzM3ODM5ZDIyMjE1YTU4IGxlZ2FjeS10cnVuaworMjMzNjkgMjMzZjk2MDZiYThlMjRlMDMyMTc0ZjE3ODBiOTNkMTFhNTE4ZDViNiBsZWdhY3ktdHJ1bmsKKzIzMzcwIDhlYzk1Y2U3ODczNTgzNjZhYmJmZWRiYzZiNzZkMmQ0MjQzYWU3MGEgbGVnYWN5LXRydW5rCisyMzM3MSA1NTg3NGQ4ZTBkZmJhOGEwZDZjYTU4YTJmNWM2NjBjMTNiOTFmZDFhIGxlZ2FjeS10cnVuaworMjMzNzIgZTAyNmY1MTdmNjU1YjQ1MDk2MDJkZDAwNzI4Mjg1ZTYyMzQyNzE1OSBsZWdhY3ktdHJ1bmsKKzIzMzczIDhjMzcxNDM1ZjY5M2MwZmJlNmQ4ZmE4NzQ3ZGI5ZWM5NzNlZDBlOTQgbGVnYWN5LXRydW5rCisyMzM3NCBiOWY2MGI4MjUyNjFhMGY5NWQ2MzA4NDA2MzNmZWEyYmI0Y2EwNTNiIGxlZ2FjeS10cnVuaworMjMzNzUgMDE3NmY2MWFmODQ1ZDRjOGNmMmJkMmE1MGY0OTQ3MGRjZGQwNTRjZSBsZWdhY3ktdHJ1bmsKKzIzMzc2IGY4MjJiMzU2YzNkOWRmYTgwYTViNmRiNDk0NmE3NzNmMzNjNWUwMjIgbGVnYWN5LXRydW5rCisyMzM3NyAwOTgxODY2MTNiMDU3ZDgxY2FhMGVmODQzZjUxZDgyODk0ZjYxMGI1IGxlZ2FjeS10cnVuaworMjMzNzggYWVkNjIxMThkNjMyZTg4ZDM1YmJmNmQyNzc2YzQ0Yzc0OTExNGZlMyBsZWdhY3ktdHJ1bmsKKzIzMzc5IDljMmI5Yjc2YTA4ZTNlY2Q5OTY4MjZjZjRmZDhlN2Q1YWQxYzE3MGMgbGVnYWN5LXRydW5rCisyMzM4MCAzYmNkYjUxOWFiZjg4MTEyOTI5ZDIwZjYyNjQ3ODc5YjBmZTRiYmI5IGxlZ2FjeS10cnVuaworMjMzODEgM2ZiMjkzZmExN2M1NDY4NDg5ZmVhY2IzYjYyNzkwYjNhMDM3YmU5OCBsZWdhY3ktdHJ1bmsKKzIzMzgyIDY5NzIwNmU3NDc2MzliMThhYTk0YTc4ZGVlODBiNTA2ODUwNTZiY2EgbGVnYWN5LXRydW5rCisyMzM4MyBmZGZjZmZjMjE1MmM2MGVhYjYyMzdlZWViYWZhNWVlMTNhMTk5OWZiIGxlZ2FjeS10cnVuaworMjMzODQgZTNhMmU2MDc2YmM1MjY1MGEwMmI3YWFkMTgwMmJmNzE2ODczYzVlYiBsZWdhY3ktdHJ1bmsKKzIzMzg1IDczZmJjYzk1ODI5NWYzOTU2OWUzYjUwNTNiMDk1NjEwZmUzZDQxMGYgbGVnYWN5LXRydW5rCisyMzM4NiBhMjc2YWU1ZmU4YzMwMjliMmQyOThlNzkxMTY3MDhmOGY0MTZjZmJiIGxlZ2FjeS10cnVuaworMjMzODcgYmEzNzE0MTkxYTdhMmYzZWViZGEyYjdhMDQxYTRhNGRjMDVjZDU2NyBsZWdhY3ktdHJ1bmsKKzIzMzg4IDQ0MWIyZTE1NTgyNmMxOGVmNzI2OTAzYTQ2ZTZiNGNhNjNhMGFjNzggbGVnYWN5LXRydW5rCisyMzM5MCBjZTI3ZDljMGMzNTgyMzE1NGFlZTlhZDZjYWZiNzE2NzU1ZWFiNzQxIHIyMmE0LWJyYW5jaAorMjMzOTEgYzI3ODJjMzVlNzJkNzQ1YjM1ZmMzZjBjOWJiODliNjc3MzZhODYxYiByMjJhNC1icmFuY2gKKzIzMzkyIDNhYWM5MTZjMTUwNWM3ZGI3NmY4ZGIwNmExNTkwODMxYzNhMWU5ZjcgbGVnYWN5LXRydW5rCisyMzM5MyBhOTdmYmM1YjE4YjZmYzExYzk4MGM0OGQyNzZiYzBiYjgyYTE1YTNlIGxlZ2FjeS10cnVuaworMjMzOTQgZmNjMjE2YzU4Yzg3ZmEyYzYyMDE1YWMzNjI4MDIyMDdjYWQwOTYxNyBsZWdhY3ktdHJ1bmsKKzIzMzk1IDcyN2I5NWRkODY4ODYxMTVhMTVjYjk1MjlmNjU3ZGEzYzFjYjQ1ODcgcjIyYTQtYnJhbmNoCisyMzM5NiAxYzUyOTEyODA1NGM4YzIwY2UxYTU5Y2QyOTJhOTljMDhlM2I5NzgxIGxlZ2FjeS10cnVuaworMjMzOTcgODMyNTZiZWYwZDc1ZTMxMzVlNDg3MTRhNjlkNjY3ZmU1ZjAyMWFkNiBsZWdhY3ktdHJ1bmsKKzIzMzk4IDcwZTU3Zjc1OTQwMjdkMjhmOGZjZDQ0YWIxNTE4ZWE2NjkzM2RiNWMgbGVnYWN5LXRydW5rCisyMzM5OSBlYzJkNGY5OWJhZGM0YjcxM2NkMWViMjFjNmJlMTA4OGM0ZjJiMjZmIHIyMmE0LWJyYW5jaAorMjM0MDAgNjg5MDA3MTg3N2RjODYwY2RkOTYzYTRkYTc0NWUxYWU4Zjk5YWE4ZiByMjJhNC1icmFuY2gKKzIzNDAxIDIyNWYxN2VjODkzMjNhOGIxN2I4OTUwY2U5OTFjNDRiOWVhYzVlYTAgbGVnYWN5LXRydW5rCisyMzQwMiA5NTYwZjg2YzRmYTRhN2YzMGQzNDkzN2M2NjM3MWJjNDdkMjQ5YWM1IHIyMmE0LWJyYW5jaAorMjM0MDMgY2E5NWJjZTVhMzNlZmZmN2I4YjNjYThhZjUzNTYxODJhMTg4MjA3MyBsZWdhY3ktdHJ1bmsKKzIzNDA0IGJkZTlkZWI1OWQxYmMwOTU3MzFlYjdiZDZiNzllYzU5Nzk0MTAzY2EgcjIyYTQtYnJhbmNoCisyMzQwNCAyYWM2YzMyZmMyMDZkZjkxNGRjMmY5ZDQ1NmU3OWM1OTY1MzcyOGI2IHIyMmE0LWJyYW5jaAorMjM0MDYgODllNWYxMGM5Zjk5NDAwZjI4NzBlZDg3MGI4NmI5M2E0M2Y1Y2I3MCBsZWdhY3ktdHJ1bmsKKzIzNDA3IGI5NGJjN2VjN2JlODUxZWJlZjRkZjM0NDRmYzI5ZWY1Njc2NGZmZTMgbGVnYWN5LXRydW5rCisyMzQwOCBlNzhjOGY0ZTJiOGM5NDM1NTMzMDRlMmJmMmIxZGJjN2EzNWQwYTEyIGxlZ2FjeS10cnVuaworMjM0MDkgYzZmYzg3ODEwNTUxNDNjMDQzZWQzZjllY2YzZGQ1MDNkYTU5MzI2ZiBsZWdhY3ktdHJ1bmsKKzIzNDEwIGI1Y2M1ODZhYzI1YWVkMGQ4MmYwNjAxZDVjOWEwYTIyY2IyNTNmYTcgbGVnYWN5LXRydW5rCisyMzQxMSA4OGRhMzhhNWYwYmY1YTg1MjYyZjY0ZmZhZmNjNzJkMGM0YTY3NDJjIGxlZ2FjeS10cnVuaworMjM0MTIgMjA2YjI1ZmViZGUzY2VhMDAwNDQ0NWUyNmViYzU1ZmIwNzM3ODVjNiBsZWdhY3ktdHJ1bmsKKzIzNDEzIDFmNGQ5OWU3YjFlNzU0OTljYzM1M2JlNWE4ZGM3MWY5ZWJhZGEzOTQgbGVnYWN5LXRydW5rCisyMzQxNCA1NzA3ZGE5MDA5MzYyOWJmZjZiMWJmZmZmZjUxNzMwYTMxMTUzNzJkIGxlZ2FjeS10cnVuaworMjM0MTUgYzhmYjAwZjVlYjVlNWRhOGU5YjQwOWQ5NTBjNGNlN2ZkZDhmZjBjOSBsZWdhY3ktdHJ1bmsKKzIzNDE2IDcyYTUzNDdkMmY5YWQ5OWU4ZDkwNGQwNDg4NTYzZjNjZDgxYTQ1M2IgbGVnYWN5LXRydW5rCisyMzQxNyBjNjhlZjQ3YjE3MDlkYWU2NmRhM2FjZmRjNzUzZTI1NmVjY2FkOTlhIGxlZ2FjeS10cnVuaworMjM0MTggZDVkMDAwODYyYTY2OWE5ODQ2NDYwYzdlMTIwMzcxZDUxMTc5MmIxMSBsZWdhY3ktdHJ1bmsKKzIzNDE5IGJiYjM1M2QzMWUyNTQyNWM4ZWNkNmEzNGM0YjBkYWFhMGFhMTIwMWIgbGVnYWN5LXRydW5rCisyMzQyMCA0MTZmMGJjMjI4ZThiOTQ1OTc5ZDg5NDE1YjY4Njk3ZDFhMWVkNGM4IGxlZ2FjeS10cnVuaworMjM0MjEgOGJhMzI4NzE4M2UwNWJlMWFkNjE4OWI5MjljMDBmZmI4NzVmNmQ4ZCBsZWdhY3ktdHJ1bmsKKzIzNDIyIDJjOGE1YTE3MmY0N2JiMzVhODVhMTBkNDVkYTgyYWQ0YWFlNTIzZDIgbGVnYWN5LXRydW5rCisyMzQyMyA2ZmY1MzE0MzViMzRkYzcxOTg0ZmFkZTAyMTc1OGQyMjJjNzE2ZGM2IGxlZ2FjeS10cnVuaworMjM0MjQgYmVhNjg2NDQ5NTk1NjM1NDgyYjA0YmJlYjhmYTQ2OGNiMzI0NDcxNiBsZWdhY3ktdHJ1bmsKKzIzNDI1IGVkYjBiODA1ZTU0OTg4OTBhYjAwYWE1MmY0MGFhOWU5M2Q5ZTlmZWEgbGVnYWN5LXRydW5rCisyMzQyNiAzYjM1NmY3NzkyMmQ4ZGI1ZDEzMzgzZTczZDAxZjY5NjA2NjM4OGE5IGxlZ2FjeS10cnVuaworMjM0MjcgNDcwYzFjNzJhMGE3YTVmMGI5YmEwNDkwYTRiYTQ0N2MzNjM2MTRiMSBsZWdhY3ktdHJ1bmsKKzIzNDI4IDViNGY3MzIxZDljYmY4MWI2YmQ0NTFhNjVhYWNhZTk0ZTY0MmUzOGEgbGVnYWN5LXRydW5rCisyMzQyOSBkYjgyYzBiNDBkZmM0MGZlZTFiZWRkYjVmZGUzNmY2MTI2ZjgyOGQ5IGxlZ2FjeS10cnVuaworMjM0MzAgNjUwOGFkYmQwYmIxYmIyNjYzNzRkN2I0OTcyMzg3YzdlNWQyNjEyNyBsZWdhY3ktdHJ1bmsKKzIzNDMxIDAwNmNmYWFjMDI5YTc2ODRiYzdiYjE4OTM0NjQxZDllZjI2ZjU2MGYgbGVnYWN5LXRydW5rCisyMzQzMiAwOTFlOWUzY2VlYWYwN2I0MjlmYjE1MTFjNGVlY2E1MDUxMzQ0Y2YzIGxlZ2FjeS10cnVuaworMjM0MzMgYWJkNmEwOGIyYzMyNzFhZmQ4ZjA0NGIyMTkyNzJkMzQyMGE3NzBmZSBsZWdhY3ktdHJ1bmsKKzIzNDM0IDVmYjA2OTFmYjY5MDM5MWUzN2MyMTdjMTlhOWIxMjQyMDMwZDA2NGUgbGVnYWN5LXRydW5rCisyMzQzNSA4MzEwNjYzM2Y5MzMzNGY1NzI4Njc0YTdlMzhkMmJmOTIxNDMyOWM0IGxlZ2FjeS10cnVuaworMjM0MzYgZGUzZTg1MTgxOGE0MzI3ZmI5OWNkMGM1ZjNiN2Y5MTE3MDNkNWQyNiBsZWdhY3ktdHJ1bmsKKzIzNDM3IGYxMDA3OTNjYTlhZmM3MGZjM2ZiOTgwYjgxYjkyODY0MWVkNDNjNWYgbGVnYWN5LXRydW5rCisyMzQzOCA4Zjc5ZmE1MzdiZDI0YjMwYTM4YzE5NzVjYTY5MDVkNjM2NjY2Zjk3IGxlZ2FjeS10cnVuaworMjM0MzkgZmVmMjg5ZDY2ZThlMTU4MjMxMjlhN2M3NzVlNDU1ZmJlYjNmMzUyNiBsZWdhY3ktdHJ1bmsKKzIzNDQwIDc1NGI4MTYyODRkMTM4ZWVjZjY3ODdjY2JhZjgzZDc5NDYxNWY0MWQgbGVnYWN5LXRydW5rCisyMzQ0MSA4Nzk5ZGZhMGY3NmFjNDdjNTEyYWY5YzJlNWRiZmMwMmRkNTk2Y2YyIGxlZ2FjeS10cnVuaworMjM0NDIgMDFhNWM0M2YxODk0Y2RmMWMxMzZmOTc3NjU3OTMzMDk3ZWJkYTVkOSBsZWdhY3ktdHJ1bmsKKzIzNDQzIDVlY2MwMmMxZWRhYzNhYzY3OTYwZGI5YzA2ZWUzZGZlNjM3ZTQzMDMgbGVnYWN5LXRydW5rCisyMzQ0NCA3ODRlMjFiZGQ5YTJmOWRkYTM0ZmU2YzM2MjEyMDYzNTNmN2EyZTdmIGxlZ2FjeS10cnVuaworMjM0NDUgOWRlMjkxNjk0YjFlMWJkMWNmY2NkZWE3YjJjZWU2MDBlOGM4OGUzMSBsZWdhY3ktdHJ1bmsKKzIzNDQ2IDZkNzNiNTRkOTIwNTIwMTRlMjMxYmE5NzljYjM5YjY1MzU1MDczOTggbGVnYWN5LXRydW5rCisyMzQ0NyBjNmI2MTg5YTgzOTc2MDhjNjQyNGRjODQ5ZWIwYzVkZmI5YzQ1ZTUzIGxlZ2FjeS10cnVuaworMjM0NDggNGM2OTIyZjI2NmYwNzk0ZmE4MDE1NTJiOTQwZjc1ZDM1ZjZiNDFkOSBsZWdhY3ktdHJ1bmsKKzIzNDQ5IDhkNzlkYjAxYjJiYTI1ZGI4ZWUxYjkyM2Q5YThhNDUwNzA1MGQ4OTAgbGVnYWN5LXRydW5rCisyMzQ1MCBjNzgxN2I2MDc0YjU4MDQ0Y2E2OGI3YzkzYzFiMDIyNGZlMTkzNzlmIGxlZ2FjeS10cnVuaworMjM0NTEgOGU0ZTQ5MTA1NTk1NGJiZjY3YjA0OGE3Yjc0NTgzZDdlMzE1ZjAzNyBsZWdhY3ktdHJ1bmsKKzIzNDUyIDZkZGE0OThjY2NjNDg1NWEyMmRmMDMyNTJiMzFlNWY2NTk0ODU5NmQgbGVnYWN5LXRydW5rCisyMzQ1MyA1OGI0Y2ZhNTQ4NzE5MWMxZmIyZjgyZjBlOGJhMDE5OTkzZDZiODQ1IGxlZ2FjeS10cnVuaworMjM0NTQgNTY0MmQzN2YxYjE2MWQ1NTUzNTg0N2M5MTMyOTUzMTA0OTQxN2E4OCBsZWdhY3ktdHJ1bmsKKzIzNDU1IGU5NDZjNWQyZmUxNTFmNWIxYjI3NTFkODNiMGE5MGZmOWYzZGZkYzQgbGVnYWN5LXRydW5rCisyMzQ1NiA0OWExM2U2ZTkzNWRiMjk2NmEyNWVkMTAzNDQxN2UwYzY3MTQ4MWFlIGxlZ2FjeS10cnVuaworMjM0NTcgYmU1NDhkNGJlODg4ZjQ3ZWVjODY1OTBjOGJjODIxOTIyY2NmZmUyOCBsZWdhY3ktdHJ1bmsKKzIzNDU4IDIxMDYwMzE4ZjUzOWFmMDk5YWE0YzcxNzYxODI5ODM1NWNmNTdlYjYgbGVnYWN5LXRydW5rCisyMzQ1OSAzNDA4ZDkyOWJiOTQwYWQ2MTBkMmI2OTRkNjZjNzkzOTAzNTAxNTM1IGxlZ2FjeS10cnVuaworMjM0NjAgNmRlNGVlNDc3OTQ5ZjhkNzg2Mzc0MWYzOTQxODUyYzIwMzEzMDRkNiBsZWdhY3ktdHJ1bmsKKzIzNDYxIGI0ZjBmMTBhNmM1ZjRkMzcyMTI1MThjNjJmMmFhNDI1M2Q4ZGFkM2EgbGVnYWN5LXRydW5rCisyMzQ2MiA1NzhjMWJiNzI4Mzk5MjU2NTk2NGEwOGIxZTRjODk2MmY4NTczNzk0IGxlZ2FjeS10cnVuaworMjM0NjMgNzJlZTU3MzQ3YWVhNjUzMzQxYWM2Zjc1YzczYTEyZTFiOWU5ZTc4YyBsZWdhY3ktdHJ1bmsKKzIzNDY0IGY1ZDc5MWMyYWNjOTUwZWViOGVmZWM4NTVmZjIzMTU0YjczMmUxMDEgbGVnYWN5LXRydW5rCisyMzQ2NSA3ZDVhZTdkN2M3YTk2MzZlYWM3YzJiZGQwZWU0YWM0MjJkYzNkNTE4IGxlZ2FjeS10cnVuaworMjM0NjYgZTVjM2NhN2I1MDk5MjRiNWM0NTgyMTcyMDEyZmUzM2JmNTFjZDEzZSBsZWdhY3ktdHJ1bmsKKzIzNDY3IDk4NzNjOTljNDNmNzUzNjc4NzQzYzRjMzM5ZmY2ZWQ4YjY5NzQyMTQgbGVnYWN5LXRydW5rCisyMzQ2OCA4ZTZmNjA0YjA3OTkzN2JhODc0YzE3ZTc1MmRjMmQ4YTIyNmQ2OTM1IGxlZ2FjeS10cnVuaworMjM0NjkgMDAxNTJlNjg3NDVhNTE4ZGZlMmU1MmY2NTg5YzEzNGY0YTc1ZjEyNSBsZWdhY3ktdHJ1bmsKKzIzNDcwIDIwYmE0MmNjYjM2ZjY3NjU0OTJiODg2ODAyZTI0NWFiMzM2OWI0MTcgbGVnYWN5LXRydW5rCisyMzQ3MSBlMmRhOWE5MjlhY2FiNTUyOTBlOWU3NjgyNWJkYzJkNmZjODZmODM1IGxlZ2FjeS10cnVuaworMjM0NzIgYmE1YWFhNmJjMWU1NmI1YmQ3NjExZmRlMDFlOTU2OGQ4MzY3YzNlYiBsZWdhY3ktdHJ1bmsKKzIzNDczIGU3ZWY4ODEzODk0MTlhNjg2NzcwODkyMDIxOWIxN2I0YWY1OGY1MGYgbGVnYWN5LXRydW5rCisyMzQ3NCA2OWI5NDFkMTMxNzY3NTM1Zjg5MWIxMGM5YTAzYWZiYzc3ZTEyZGJmIGxlZ2FjeS10cnVuaworMjM0NzUgYjJmOTU3ZjljNmY0MTNiY2YzOTc5ZjAyMTFjYmE3ZWFlN2Q2Nzg4ZCBsZWdhY3ktdHJ1bmsKKzIzNDc2IGUzZDc1Nzc4NjE5ZTNkYzZiN2VmNjI5YTVmNjU5N2E3M2Y1ZTZiZjcgbGVnYWN5LXRydW5rCisyMzQ3NyBkMDUzNzI2ZmIwMWJkYzY0YWE1OGJhNzQzMDJkOTZmOTNjMWQ4M2M3IGxlZ2FjeS10cnVuaworMjM0NzggOTY5OGI3MWIwMDMxNWFiOWFiNzM4OTViYzRkNjc0MzQyZGI5Y2IxNSBsZWdhY3ktdHJ1bmsKKzIzNDc5IGZhY2UxZWFhNjhjYTliNWFlZWVmZTY4MjY5NTgwMTZjZGE2MDFjNDUgbGVnYWN5LXRydW5rCisyMzQ4MCBhNWEzMzA2NDZjMTMyYWMyZjQzZGU1MGVhYzhhYzNhM2VmMGVlYjhmIGxlZ2FjeS10cnVuaworMjM0ODEgYzBhNmY1Mzc3M2UzNTNjZTkyYTJmYTgxMTM0MjZhNmYzNTBmZWIxOSBsZWdhY3ktdHJ1bmsKKzIzNDgyIGJmNTU3NGY0ZjQxZjc2ZmQ2NGUwYWIzYzFmNzRjY2IwYTE5MmYwY2QgbGVnYWN5LXRydW5rCisyMzQ4MyA1YWNkMmE4MWQ2ZmE3MTQ2NzdhODdlMDIwNTRmMTMxYzE4NWQ1YzczIGxlZ2FjeS10cnVuaworMjM0ODQgMGI5OTE3NGQ2YjE3ODQ1ODc2YmU3ODkzNTVhNzZjZjU0MjM0YzJhNyBsZWdhY3ktdHJ1bmsKKzIzNDg1IGFiYWY5ZWEyZTU2MDcyOTk1MDk2MmM3ZTE3MzdkNGRjZmVjNTVkYWIgbGVnYWN5LXRydW5rCisyMzQ4NiBhNGVmMDNiNWE5Mjg2ZDlkYzkxYjUxMWIwMGQxOWYwODczMGY4NTUwIGxlZ2FjeS10cnVuaworMjM0ODcgYTgxZGIxMjk1YTllMjI3OGVjZmVhMjBiOTc3ZDVjZWRmZmJiMGQ0NSBsZWdhY3ktdHJ1bmsKKzIzNDg4IGQ2ZWFlNjRmZGI1YWMxODYwZjdhZjliNTEzOGFmMDYyYjJjN2IyYzQgbGVnYWN5LXRydW5rCisyMzQ4OSBhYTE4YzBlY2M0ZmI2Nzg0N2VlNDU0NzM5YWM1ZDlkMWI2ZThjYmM0IGxlZ2FjeS10cnVuaworMjM0OTAgYWI1MDQyMDU4YjZmMWVmZWE0MGU2OTUyZDM3ZGQ2NzY1ZWQ5MDhiNCBsZWdhY3ktdHJ1bmsKKzIzNDkxIDkyZjg2NDM2YjZiZTYzM2RhMzBhMzg4ODYwZWQ0YjFmNjIyNGMwMWQgbGVnYWN5LXRydW5rCisyMzQ5MiAxYmVlNDliYzhkOWM1NWVkOWU2MTc1Yzk2MGJjZjdkZjljOWJjYjYxIGxlZ2FjeS10cnVuaworMjM0OTMgOGJhZDU1ZWRmZGYzOTM4MWE2NmFmZmE3Yjc4NGUzMzg1NDQzY2JmMiBsZWdhY3ktdHJ1bmsKKzIzNDk0IDVhMmU3Yzc4ZDQzMzQ1ZWI2YzgyN2M5ZjZkYTc5MTY2NmVkODg3NmQgbGVnYWN5LXRydW5rCisyMzQ5NSA0NjRmOWEwOWE5MTAzOGE5ZGNjODQxMDkxODFjZDA4NDJhYzVjMWIyIGxlZ2FjeS10cnVuaworMjM0OTYgZDQ3ODI0OTRhMWUzYzI5ZWQzMjRlZTU0NjI5YzU0NmQ5OGI2ZWJmMiBsZWdhY3ktdHJ1bmsKKzIzNDk3IDgxMzg2YTcxZWNjZTg2NWM4ODJjN2Q3YTc1MDNjN2M5YWVkYzRmMGUgbGVnYWN5LXRydW5rCisyMzQ5OCA3ZWE2MWRhODc4YWYxMDczZTFlODI1OGQxOTg0OTRlNzZhMzkyMDE1IGxlZ2FjeS10cnVuaworMjM0OTkgYWNmYjI3ODY2MmM2MmMzMjAyMjU5NTA1N2U4MjBlOTQ1ZjFlMzYyNiBsZWdhY3ktdHJ1bmsKKzIzNTAwIDllZTZhOThmMDMyYzMxM2U4ZjA4OWZhNGVlNTUyY2Y3YjhlZjBjOWEgbGVnYWN5LXRydW5rCisyMzUwMSBkMTY3MWRkZWFjZTBiNjQ0MTY2NGZjZGEwODhlOTUxZTFjMTRjNDEyIGxlZ2FjeS10cnVuaworMjM1MDIgZTdhY2EyYTMwMmNkNzEzNDg0NGY5OTFjM2FkNTRiYzBkZmEwM2I1OSBsZWdhY3ktdHJ1bmsKKzIzNTAzIDI3NDVjM2RjMjRhZjI5Y2U0MzA5NmQwNDJiN2JlZGU4ZDBiODBlMWUgbGVnYWN5LXRydW5rCisyMzUwNCA1YzQyNjFlNzQ0NzgwY2YwMDMxMWNhNjgyMWRlZTk4ZTZlZDQyM2VlIGxlZ2FjeS10cnVuaworMjM1MDUgYWZmNmZjZDI2YzE1YzQ3MTMwMWI2ZGE5YzExYWFhNWRjZDk3ZDFmOSBsZWdhY3ktdHJ1bmsKKzIzNTA2IDdjZWRiYWFhMTJlNDc0ZmM1NjgyNzkzMGEzMGFiYjI2M2QxZDlhYzMgbGVnYWN5LXRydW5rCisyMzUwNyAwZTk0MGRhODQ1YmY4Mzc5MDgyYjI0MzYzNTY3YzVjN2Y5MzBiOTU0IGxlZ2FjeS10cnVuaworMjM1MDggMTY2NThkZjg0NTZhNjYyODFiNWZjMGY1NzA3MTJiZjZjOGE5NTg2YiBsZWdhY3ktdHJ1bmsKKzIzNTA5IDcxNjBkNzk1NDczZTkxODNlNzRkZGMxYjI4M2Y5Y2VlZDkxOTBiNDkgbGVnYWN5LXRydW5rCisyMzUxMCBmM2IzZmQ1YWJmYTYxNmRmYTNjNzBlMDM3M2MyODhlYzczNzVhZDIxIGxlZ2FjeS10cnVuaworMjM1MTEgYTRkMzI4ZDUwODk3NTliY2Q4MTg1ZWYyZTUxOWUwNzdkOGY0NjgyYyBsZWdhY3ktdHJ1bmsKKzIzNTEyIDEwYjk3YWU2OTAyNWM2NTRhNzM1YzYzYzM2ODAwZTk5NzNjNjU0OWIgbGVnYWN5LXRydW5rCisyMzUxMyAxYWNlY2M5MDhlZTg2YjRmM2QxMDdjMTllYjdkYzVmODk0MDQ2YjRmIGxlZ2FjeS10cnVuaworMjM1MTQgMWRiNWFhNjc2NWMwMWIxNDVkMWEzYzY5YWE0MzAyNGMzYmQzMGVmZSBsZWdhY3ktdHJ1bmsKKzIzNTE1IGIwY2U5MjU2MWUwNzViZDVhYjM3Mzg1NDA0N2RhZTNiZWRiMmMzZmIgbGVnYWN5LXRydW5rCisyMzUxNiBiODVjZDE2M2NkNWNkMGU3ZDE1NjVmMTY4MDRjM2VkNzhhNDQ2ZjBjIGxlZ2FjeS10cnVuaworMjM1MTcgZDk2Y2QzOGEzZmVjNzI5NDI2MDdkYWMxNDIxY2ZmOGQ5MTI1MTMyZCBsZWdhY3ktdHJ1bmsKKzIzNTE4IGM2OGYzNjQxYmFjZDgyNzIzZDMwYTUxNWE3NGI5ZTc2Y2Y1NjBhOGYgbGVnYWN5LXRydW5rCisyMzUxOSA2NjkyODU1OTIyODg0YjUxYzg4YWJlYjJlMjlhOWRlNWI2NzQ3OTBiIGxlZ2FjeS10cnVuaworMjM1MjAgNmYwMjU2OWNjNDZmZGE1MjE3ZmNiNzc0ZDM3MDQ0MzM2ZGJmZTk1ZiBsZWdhY3ktdHJ1bmsKKzIzNTIxIGUzZjYzYTk1NDU1ZjdjMDI0ODJmOThiZDVmZmZjZjNmY2JlODA3OTggbGVnYWN5LXRydW5rCisyMzUyMiAzMTg1ODk0MDRiOTU3Mjc4MzBiZWI1MzkyYTAyZTc5NDFjOTNjZjdlIGxlZ2FjeS10cnVuaworMjM1MjMgNjE1MmY4MmVhODIzODAzMGRjNTdhYzkwZTQ1NzIwNzRlNDQ4MjI5YSBsZWdhY3ktdHJ1bmsKKzIzNTI0IDFlYTViYmJhYjdkNzcxZGNhOTg5YzY3YTIzZmI4MDY2ZWFhYTM5MTEgbGVnYWN5LXRydW5rCisyMzUyNSA1NmYxNzgxMDUzNGMyZDNiNTU4ZDk4YjgyMGNiNjAzYzljODY1MWExIGxlZ2FjeS10cnVuaworMjM1MjYgZGUyOWM4ZTRkZTliMzE0YTg3NTY0OWY2MWJmMzYyYjVhOTJkMTJkOCBsZWdhY3ktdHJ1bmsKKzIzNTI3IDg3M2Q1ODRjMTIyMTM5MGI5OWYxNWM2YjQ1MDM3MDg0ODVhNWUxYmMgbGVnYWN5LXRydW5rCisyMzUyOCBkMDkyYWJjZjljNGI3NmVmMjgyY2JkYjViYWM3OWVlYTQ1MDAxZTk5IGxlZ2FjeS10cnVuaworMjM1MjkgZTRlNzQ5YzQyZjQ2MTdmZTY0MGVkMTQ2OTJmMTQwMDM3NmU2YTdmMSBsZWdhY3ktdHJ1bmsKKzIzNTMwIDI0MWVmOGE5MjNjNzYzOWEzZjE4N2E1OWVhZThmOTRmODM0OTE4YjIgbGVnYWN5LXRydW5rCisyMzUzMSA1OTM0YWVlYjM5N2YwZWZlNWU5YmJkZjBiMmJkMWU3MDIyYWFkMmFhIGxlZ2FjeS10cnVuaworMjM1MzIgMDUyNTA0NzYxNThhNjU1YTU5MDI0OTlhMmNkNDU4MmZkZDJmZGU1OCBsZWdhY3ktdHJ1bmsKKzIzNTMzIDdlYTA0MDI5ZDFhZWFkN2EyOTMyMTkzYzg3YmZiMmI3MjMyNmRjZjggbGVnYWN5LXRydW5rCisyMzUzNCBjZTRhN2U0YWQ2YzQ4YzlmMDE2ZjRiZWIyMjViYTk4MzIxNWI3ZmVjIGxlZ2FjeS10cnVuaworMjM1MzUgNjEyZTg2YTRjZDlmNmVjM2E1MTQwMjYxZWE0MGRjYjQwZTJlM2YxMiBsZWdhY3ktdHJ1bmsKKzIzNTM2IGYwOTE2YTZkY2VmMjc1ZmZlMmNhNDkwNTcyZmRmMTZkY2M2NTc0OWIgbGVnYWN5LXRydW5rCisyMzUzNyAyMjY5Y2IzNzFlMDVmYzBjYjVjZjRmNTQ4MGRhM2Q3YWI2ODk5N2NhIGxlZ2FjeS10cnVuaworMjM1MzggZDdkOTU2YjQ3ZDI0MmUyYjdlNjBkNDk1ZjliYjIzMWJjMzFhYTgwYiBsZWdhY3ktdHJ1bmsKKzIzNTM5IDE2N2U3Zjk4YjUxZmIzN2QwMTY0MDUwODcwMzU5OTdmMGExMGYxNzcgbGVnYWN5LXRydW5rCisyMzU0MCA2NmE1NmEyMGNmYTNmNmNlMjI2OTUwNTU4N2NlZGUzNTY0NTBmYjNkIGxlZ2FjeS10cnVuaworMjM1NDEgMjk4M2I1NDI1NmM3MjI1ZTYxZGVjYmIyYmQ1ZTU5ZGQyNzRmNTg5OSBsZWdhY3ktdHJ1bmsKKzIzNTQyIGEyNjVkOGJkMmYyNzc3YzFlNTk2ZDMzYjZkOTk0MjQ2MTllNTZiYzggbGVnYWN5LXRydW5rCisyMzU0MyA4YjNlYTczMzVjMWJkYzY1MzIwM2QzMWMwMjUyNDg5YjgxYzQyMmFmIGxlZ2FjeS10cnVuaworMjM1NDQgOTdjZmE0NjFkNzkzZDM1ZGU3OWY1YmE1ZWQ0NjAwZDQ2ZWU0NjVmOCBsZWdhY3ktdHJ1bmsKKzIzNTQ1IDM4MGQ0YjRlZTYwMjQzYzIyM2FlMDVhMjA3ZTFjMzZiNWE1OTRiOWEgbGVnYWN5LXRydW5rCisyMzU0NiBlMzc1MWFmMGYxZGQxNzhjMjQwNTg2MmQxZWY5YTkzYzcxNmY4ZjM1IGxlZ2FjeS10cnVuaworMjM1NDcgMDRmMjk2ZjcxMWRmMDIzYWZkMWYyMWM5MTkxOGZmOTA0MDdkZDY4YyBsZWdhY3ktdHJ1bmsKKzIzNTQ4IGZiNWYxMjExNzAzNjAzNTA5NjI1YWRjMzJmZWQ1NWFmZTYwODU5MDIgbGVnYWN5LXRydW5rCisyMzU0OSBjY2I3YWJjNzE0ZWRkYTdlOTQ5ZDgxMjdiODJmZTdhYTA0ZGQyYzM4IGxlZ2FjeS10cnVuaworMjM1NTAgYzg1M2QyNDZmM2M4ZjcwMDQxMDY1NDcxOWQ1YTI1MWFjMWYyZDhiMSBsZWdhY3ktdHJ1bmsKKzIzNTUxIGY0ODc4MjIzN2Y4NTMyODgwMjdiMjg4NjY3ZmU1ZjhlNmIyNDQ1ZGUgbGVnYWN5LXRydW5rCisyMzU1MiA1Y2NmZTA0NDkyYWM5YjczNDZiZmI0ZjM1YmMwMWZlY2ViZDhhMWVmIGxlZ2FjeS10cnVuaworMjM1NTMgNmU3ZDVhZTI4MDBmYzk0NzQxNDBlYzhiYzgxNjMyYzliY2E5YmJkNSBsZWdhY3ktdHJ1bmsKKzIzNTU0IGFjZDgzNzgyMTZjMzFmMWNjMmI2NjA3YmI3Y2FhMjhlMThmODA3N2EgbGVnYWN5LXRydW5rCisyMzU1NSAxNzhiYTMzZjY3ZTRlOGQxZTQ2N2RlZDRiNzAzNTM5NmZhMzQ5OTA3IGxlZ2FjeS10cnVuaworMjM1NTYgYTQzY2I2YzU5MDcwZjgwZTUwYzY3YjdkOTZmYWFhNThkMTA3NWNhOCBsZWdhY3ktdHJ1bmsKKzIzNTU3IGIyODVkZWNmMDQyMWVjNjY5OTE0MDAzNDkwZjU2NDEwYzIzNGUyYjAgbGVnYWN5LXRydW5rCisyMzU1OCA0MjZiMzc5YTEzOGI0MWI3MWFiNzZhNzVkOWY0MTgzY2QwODc3NWM0IGxlZ2FjeS10cnVuaworMjM1NTkgNWQyZDFlMmVjNDczYjEwMjUwYjE4OTQ1MDRjOTVkYjMxOWIwZjE2YSBsZWdhY3ktdHJ1bmsKKzIzNTYwIDZjYzBiNDgwNDllYzRiNTllYmQ3NWVlZjZjNWJkNjQ2N2E1NGI5OTMgbGVnYWN5LXRydW5rCisyMzU2MSA3OTM5MmFiMmMwMmE5ZTJkZDliZjkzMWZjYTIxNjEwZjY1OWFmZGM0IGxlZ2FjeS10cnVuaworMjM1NjIgNjIxMTY4NGVkOWRkZjA3NzM2MDEyNmFjOTU0M2VjZDc4MjQ5NjRiOCBsZWdhY3ktdHJ1bmsKKzIzNTYzIDQyYjUyNzkzNzQwYzBkZjE3MDVhMWZjMjlkYjM3ODIxMjQ3OTE1Y2IgbGVnYWN5LXRydW5rCisyMzU2NCA4NzRiYjE3MDc0YjBkNGRmOGYzMGNhNjlhZTI1NzAyNTdmNzVlYTFmIGxlZ2FjeS10cnVuaworMjM1NjUgM2IzZWU5NzYzM2MxMWRiMDQ5ZTdhMmZmOWFkYTE3MjRmZjA1NDRmMiBsZWdhY3ktdHJ1bmsKKzIzNTY2IGM1MzQ1YzBhYmQ3MDYxOTMwNjQwNTlhNzZkMjdkZjhiNjMyYzRjNWMgbGVnYWN5LXRydW5rCisyMzU2NyBmYWVjNjljMTE2NDAzNjFhMWFlOGMxOWY3OThlNTQ2ZWQ4MGViNDAzIGxlZ2FjeS10cnVuaworMjM1NjggZTQ0Y2RlZjc5MWVlODQwNTVhODJlNWIxY2NkYjNkZDdjMGJjOGY0NSBsZWdhY3ktdHJ1bmsKKzIzNTY5IDA4Mjk1ZWM1OGVhOTdkZGUxNjViZGU5YmRkZTkzYjVhZTg5ZTJiN2QgbGVnYWN5LXRydW5rCisyMzU3MCAxY2EyMjhlMjFhOTg3YTcyMmYxNDQ2YzgyZWM3OWNmYTZhNGE0NTVkIGxlZ2FjeS10cnVuaworMjM1NzEgYWE2ODEzNDViZmFiMTMzNzNkMmFmMjlhNWFiNDE1NTg2NDNiMzc4MyBsZWdhY3ktdHJ1bmsKKzIzNTcyIGNhMmJjNWNkYWE4ZTllZDIxZDQ2MmUzM2RjYjhlZjVlYjFhYTg5OWQgbGVnYWN5LXRydW5rCisyMzU3MyAzMjZlNWE3MmM2NjAyOGUyYmE3ZDBiMjYyYzU5NGI2NDUyYTkyNGEwIGxlZ2FjeS10cnVuaworMjM1NzQgYjQ0NDdiYjVhYTBlYWRlYzk1NmE5NWI3OTAzZDZhM2YwN2U2OWU0NSBsZWdhY3ktdHJ1bmsKKzIzNTc1IDEyMzUzYjEzMTIyNGM2YWNjODU5OTY2OWNjNGUyZThiNzJiMDc4NzggbGVnYWN5LXRydW5rCisyMzU3NiAzMzkzZDZmODA3ZjVkN2I1YmEzMWVhMWQ5Y2UyOWI5ZjZhMWU0NjJlIGxlZ2FjeS10cnVuaworMjM1NzcgZWExOTEwZDJjNzgxZGQwYTlkZGI4MGI0MzBmYmEyNzM5ZWVkM2Y1ZSBsZWdhY3ktdHJ1bmsKKzIzNTc4IDI4NGVhYmUzYjU1MmNkYTNmY2RkMDY4YTU2NjhmMjgxNjBlOTg4ZjEgbGVnYWN5LXRydW5rCisyMzU3OSA3YjQxZjdhMmU1Mjg1NGYyOWJjY2EwNzhkODI2M2MyOGZmMTUwYjk2IGxlZ2FjeS10cnVuaworMjM1ODAgMmUwNzNiYzcyNjg2OTUxYTJhYTkzNjA5ZTZkNTg2MjMzNjBkYWM2YyBsZWdhY3ktdHJ1bmsKKzIzNTgxIDRlZjdlYjkwYjY5YWM3NGRjN2Y0NjAxOTExZWVmZDY4YjE0ODU2ZTIgbGVnYWN5LXRydW5rCisyMzU4MiBmOWE2NmIyNGJmZmZiYTJlMmY2MDk2OTQwOGE0MGU1MjY0NjUwMTdhIGxlZ2FjeS10cnVuaworMjM1ODMgMTI1MzU1M2ZjM2NjOGVjMmIzMTkwZjRmNDM4M2RlMjc4N2MzMmUzMCBsZWdhY3ktdHJ1bmsKKzIzNTg0IGYyOWI4ZWEwYjY5NTQ0OWNiOGIyYzQ5MDZiODUwMjU4M2JhMzIyYWYgbGVnYWN5LXRydW5rCisyMzU4NSAyNjdjNmZlMGFiYzJlZWI4YjdkYjEyOGRmZTM1OGM0ZGMwNjZjODM3IGxlZ2FjeS10cnVuaworMjM1ODYgNWE5ODgwMTU2ZDcxMjUzN2U1NGFmNjRmY2JiYjFhYzk2ZTJiYTNmZSBsZWdhY3ktdHJ1bmsKKzIzNTg3IGJkYTI3NGRkZTI3ZTEwMjY0YjEwZTUzOGUyMDJhNWFkMTVmYzE2MDEgbGVnYWN5LXRydW5rCisyMzU4OCA0MjlhMDhlMmZjNzgyYzNjNmI2Y2U4OTAyZDE5YWY1ZjhmMjdjNDg0IGxlZ2FjeS10cnVuaworMjM1ODkgODU4NTUzNWU0MDRiY2FiOWRiNGQxNDgzNWQxOTg0NDAzNzljYmJlNiBsZWdhY3ktdHJ1bmsKKzIzNTkwIGIzMmQ2NmE0YjVlNmFkNDJiOGI1NmNjZmE3ZWQ2Yjc5MmZjYTkzYjcgbGVnYWN5LXRydW5rCisyMzU5MSA1NGYwNWI5YjFmYzRiYmJhOTJmNmNmZTk1MGM3ZTg3ODI3ZjBkNjg3IGxlZ2FjeS10cnVuaworMjM1OTIgMjZiNWY4Yjk0ODcyYjdhZmY3MmFkNzQ3MWExNWE5ZmQwNzdlMmQ2OCBsZWdhY3ktdHJ1bmsKKzIzNTkzIGE5NzYzNjc1Yjc0YzdhNWZiZDJiNTQ0N2YwNTM1ZDJhMTQxNTAzZTcgbGVnYWN5LXRydW5rCisyMzU5NCA3OWZiY2ZmZjU3OTcwYmUxNmE5YzNiYzA4YmM0Y2FiZTE4MDU1YTI3IGxlZ2FjeS10cnVuaworMjM1OTUgYzUyNDdhMzY2ZmY1N2JlZDg4OGRkNDk0ZDJkY2VkODdiMjhlNjM1OSBsZWdhY3ktdHJ1bmsKKzIzNTk2IDA0ZmVlNzBmZWQ4ZmVhYjk0YzIzOWQ1YTRmMzdmZTAyMzlmYmJiYjUgbGVnYWN5LXRydW5rCisyMzU5NyA4Njg5NmI1ZjFlYmMyZjgxYjIxMzhhYjRiMGZhZjk3NDdjYzdkMGZiIGxlZ2FjeS10cnVuaworMjM1OTggYzcwYTJiNTdhNGRkMjUxZWFjMjQ1ZjFhNWE2ODk2MzI3MTA3ZTA4ZSBsZWdhY3ktdHJ1bmsKKzIzNTk5IDgzODM3YWM1YmI0MGY0ZDVhNTE0MDg3ODc2NTEzZTRlNzNlYzViNjkgbGVnYWN5LXRydW5rCisyMzYwMCAxYjNmZmRmMTIxNTA5YmY2NDQxNDFkZmI5MDFkNDc4ZWRkYWJiMTViIGxlZ2FjeS10cnVuaworMjM2MDEgNGJmM2ZjZTNmNmNlZGY1ZWJmZTc5MzIyYTZiNmYyZTZhYzQxYmIyMSBsZWdhY3ktdHJ1bmsKKzIzNjAyIDcwOTZlNDRjZDFiZDI5ZWUxMGY5YzVlZThhNmJmYjkzYzZkY2U4Y2YgbGVnYWN5LXRydW5rCisyMzYwMyA4NTIyNmRmOWE1YmU5MWUxNzhhODNjOGI0MWJjYmIyNjE1MTA3Njg0IGxlZ2FjeS10cnVuaworMjM2MDQgNTNhOTU3MmI2MjM3NzdlMDFhNzliZmY2MDdkOGM3NTFkMWVmNmZiOSBsZWdhY3ktdHJ1bmsKKzIzNjA1IDE0ZTBmZTE1MjcxMWZhMjQ2N2RkOTBmMDczN2YwMDQxYWY5NWM4MzAgbGVnYWN5LXRydW5rCisyMzYwNiA0NGJlZDI1NGQ4MzczY2VjZmNmYmMwZDg5OTc0NzNkYTgzNWNhYmEwIGxlZ2FjeS10cnVuaworMjM2MDcgN2JkMTIyNzBkYzNlNzdjZGM5ZjRmOGIyM2IyMjVlNDI2ZDIwNTMyNyBsZWdhY3ktdHJ1bmsKKzIzNjA4IDM2ZDE0ODIxNGQ4ZTI3ZGZmNDI1ODkzNjE2M2Q0MmIxMWExYzVlMGQgbGVnYWN5LXRydW5rCisyMzYwOSA2N2E3YTk5ZjJkNWFjMzhjNjM2ZGJjMDMyYmQ0MTVkNzk3OTE0NDg1IGxlZ2FjeS10cnVuaworMjM2MTAgMzJlMTJmOGQ3NWQ4MzI2YjM0Njc0OTA0OTZkMjg5YzYxOGEyMGNlOSBsZWdhY3ktdHJ1bmsKKzIzNjExIGI3OWZmZDNmY2EyOGM4ZmY1YTlkYThiZWVkZTRlNGUzN2I4NzE1YWQgbGVnYWN5LXRydW5rCisyMzYxMiA0MjVjNmM1NThmYWMxYWE5OWM0NTk1NDhiMDRjZDU5ZDNlMGZjYmY1IGxlZ2FjeS10cnVuaworMjM2MTMgMzNkYWM2MTgxYmU1N2M4ZTkyOGYwMTNiMWVhODVmNTEwZGIwYjIyMyBsZWdhY3ktdHJ1bmsKKzIzNjE0IDBhOTE1YjIyZTAwNmFhMWNiYjAwZWVmZWM5MWQ0MTQxMmRhYTYxZjMgbGVnYWN5LXRydW5rCisyMzYxNSA2NmU3NzU4NWI0YmQ5NTk0Mzc1MjM5MGU5Yjk1ZTUwZDY2NjNkMjE1IGxlZ2FjeS10cnVuaworMjM2MTYgOWU3YTBhZjRjMGEzYjZhNzFjNDc3NGQ4YjU2MjllM2EzYjYxOWE5YSBsZWdhY3ktdHJ1bmsKKzIzNjE3IGQxYzdiM2VkZTQ4MTU5MjYyMDI0ZDZkZjJmOGIwNTVmMjBmZDU3OWQgbGVnYWN5LXRydW5rCisyMzYxOCBmZGMxOTE0NDA2ZTI2ZTI3MmZmYjQ2OWQ4YzIzNTZjNTlkMjZmNzc4IGxlZ2FjeS10cnVuaworMjM2MTkgNGRiYjUwNTgxZDkwM2E0NDI4YjQxNThjZTc4MTkyYWVkZjYwOWVkMiBsZWdhY3ktdHJ1bmsKKzIzNjIwIGMwZDY2Mjk2NjI3Mjc0NjQ3YzljZWIyMWY1MWM3MmRmM2U0OWFjZjUgbGVnYWN5LXRydW5rCisyMzYyMSA5MmQ1NmFlNjNlZDNmN2QwZGM1MzBmYmE0MDZhZmM1Y2U0NDJjZjkwIGxlZ2FjeS10cnVuaworMjM2MjIgOThmNTk3YTE3YzkwN2Y5NjJkODMyYmNhMTAyNGU1ZGU0MDA2MDljNSBsZWdhY3ktdHJ1bmsKKzIzNjIzIGUxOTFjZWVlNjcyZmZlMTU1ZjVjNDg5MTg2MmQ2ZDc2ZWNiMGU4MjcgbGVnYWN5LXRydW5rCisyMzYyNCA4YTA5Yzg1NWY5NTczMDQxMDVkYjhiNjEyZGE2YzAyYzQxYTVhMTAyIGxlZ2FjeS10cnVuaworMjM2MjUgYzQwODMzM2QzN2YwNjE1NTYwMmViNTczMDI1MjE1YjMxMmZhM2JiMSBsZWdhY3ktdHJ1bmsKKzIzNjI2IGI5OTdhYzcwZTQ0NWVkYmEzZmI1MTc2M2ZkMzEyZjg0OTEwY2NhNTEgbGVnYWN5LXRydW5rCisyMzYyNyA2YjFkOGNiOTkwNGFjMDFkNDEyNmYyZDIwZjg4NGFlMTNjMjlkMDNiIGxlZ2FjeS10cnVuaworMjM2MjggYjBkODMwNmMwOWM1MWIwYjY5ZGNhODZjMzYwZDY0NTA1ODBiZTcyZCBsZWdhY3ktdHJ1bmsKKzIzNjI5IGU0NmY2OWY1Nzk4YjY4OGMxYjAyY2JjODA5NmVlZWI0ZGU2NGIzNmUgbGVnYWN5LXRydW5rCisyMzYzMCA3YmNhY2E2NTMzODgyNGQ2NDYyNzMyZGJmYmM4ODgxYzAzYmJhMjk1IGxlZ2FjeS10cnVuaworMjM2MzEgMzAwYjFkOGJmYTRkZTFkMzUxMzFkZWE4NjViNjk3ODI5ZjZjOGE5NSBsZWdhY3ktdHJ1bmsKKzIzNjMyIDllNzJiY2ViNTQwYjU0NzQwZjRkZWExNDRkYjJhZDliOTk0NTY0MWIgbGVnYWN5LXRydW5rCisyMzYzMyA4ODMwYmUzMjA5YTJhZDFiZmQzYTQxNjcwMTU2NmI5YWUyZmIyNTdhIGxlZ2FjeS10cnVuaworMjM2MzQgYWJmZDE3MDAxZThmNWVmZTFhNzM5Y2JmM2YyNjNhN2VhMDhkOGY2YiBsZWdhY3ktdHJ1bmsKKzIzNjM1IDhlZjNlOTUxODJjMzZkYzEzZDViNTJmYzE1ZDU0ZjgwNTRkODk0YmIgbGVnYWN5LXRydW5rCisyMzYzNiBkYmVjODYzZDMzZDdlYTM1MDE1YzQwZTA1ZmVmOWU5NDg5MWNiYmNkIGxlZ2FjeS10cnVuaworMjM2MzcgNGJjYzIzMWMxYTQxYTRlMjkzZDNlNmUyMmI0ZDQ2OWI0YzFlODJlYiBsZWdhY3ktdHJ1bmsKKzIzNjM4IDk0OTgzOTQyYzk0YjliN2VhYmUzMWU5MjlhN2JjY2I4YzhiNzhhNTIgbGVnYWN5LXRydW5rCisyMzYzOSAzYWIzYjUzNWRhZjI0OTVmNmVhMDlkMmRjYzZmY2M5MDc5MDUyYzkxIGxlZ2FjeS10cnVuaworMjM2NDAgMDYxZGEyMmY0MjAzOWNjYWRhYmQxZDM0ZWM1N2U3ZDdhZDYzZmFhYSBsZWdhY3ktdHJ1bmsKKzIzNjQxIDljMmQ0NDQ2NzRkMDkwMWY1OTRmNWUyODM2Y2Y0Yzg1ODg5ZGE4ZjcgbGVnYWN5LXRydW5rCisyMzY0MiAyZjg5YjM0NGZkYjNkZDVjODRjMjdkYzU5ZmI4YWJmNjVjNmYxN2RmIGxlZ2FjeS10cnVuaworMjM2NDMgYWZmOGQxNGIyOGFkYTNkNzllZjBiNjVhNTJhZjg5NWUzYTQyNTg4NyBsZWdhY3ktdHJ1bmsKKzIzNjQ0IDNhZGMzYTE0Y2RlNDEyN2FjMWY0YWU0ZGY5YjQwZDdkYmZhMjc2MTggbGVnYWN5LXRydW5rCisyMzY0NSBiNGY4Mjk5NDFmM2RmNDExZTExNDNhMTFjZGM3ZGQxODA4MmU2NzA1IGxlZ2FjeS10cnVuaworMjM2NDYgYmUwODczNGIwYWZkMjEwMTY5MmFkODlhMjI0NWQ5MTE2YTg2YzU5NyBsZWdhY3ktdHJ1bmsKKzIzNjQ3IDNiNDVjMDRhNDgzM2JlOTBjZTdjNGQ1NGI4YzgzMGM4NzIwZWU2MTUgbGVnYWN5LXRydW5rCisyMzY0OCAyYmE0MDE4ZGUyZTMxMDY0ODA5YjVjNmQ1M2UyNGI5Zjc3NDQ1NzdlIGxlZ2FjeS10cnVuaworMjM2NDkgYmU1OGVlZTY5YTk0OTQ0M2IwYTllZWY4ODk0NjhmYmI1MjAyYjQ5ZCBsZWdhY3ktdHJ1bmsKKzIzNjUwIDNjMDFjMzRkMDdmNjhlYzE2Y2E0Yzk1MmM3MmE4ODdhOGQ1YWQ1YjcgbGVnYWN5LXRydW5rCisyMzY1MSBmOTA4YjA2M2YyOGI3OTc1ZTVlZjg4NWJkNmU5NjJjNzJkODFkYzhmIGxlZ2FjeS10cnVuaworMjM2NTIgYmU4Y2JhNWEzYjdiZTg3OTkzMGNkYTNkZTM3NjJjYTAwZDk2ZmNiYiBsZWdhY3ktdHJ1bmsKKzIzNjUzIGI0NzE2ODE3OGQ4NzljYmUzMjkzODBkN2Q3MGI3MTcyNzRkZjk3YTggbGVnYWN5LXRydW5rCisyMzY1NCA5NDZiZWJkMDAxMzJjM2JiZDQwMzc4MjBiY2FiYTAwZGU3YTIxMjhmIGxlZ2FjeS10cnVuaworMjM2NTUgNzczYTEzMGIzMzBlYmVhY2VjOTNiMTQ0NzA0ZmFjZjYyYzYzODk5NyBsZWdhY3ktdHJ1bmsKKzIzNjU2IDg1M2MyNjhiZjI0Nzk1ZTdhMjViZWFjYjc0M2FhMzE1NDZjMTA4YjMgbGVnYWN5LXRydW5rCisyMzY1NyBjMjdjZjkxM2IxZDY5MTAzMGQ3ZTJkMzNlNzE0MDJmZDg4ZDIyMzIzIGxlZ2FjeS10cnVuaworMjM2NTggYWQxZjA4MTI4MGFhMDA5ZjVlMzJmYWM1MzllODkxZDg3Yjg4ZWZkMiBsZWdhY3ktdHJ1bmsKKzIzNjU5IDIwNTA4NzdjMGMzNjNhYzE4MTFhYjVjYTMxMDU1MTdmNjE0MDVmMzYgbGVnYWN5LXRydW5rCisyMzY2MCA3Mjk0OTMyZDc0ZWNhZWY1YzUzYzk1NmQ1OGE0NmMyYWVlNmZhNDgxIGxlZ2FjeS10cnVuaworMjM2NjEgOWZlOTc1NDhkOTUyMWZkOGVhODQ5N2IyOGJiZjRjNjk0NzM3YmEzOCBsZWdhY3ktdHJ1bmsKKzIzNjYyIGM5YTIxMjMyOWRhNmYwY2ExYmM3ZTFmMzhhYTJlZTY4NjRmYWFlZTAgbGVnYWN5LXRydW5rCisyMzY2MyA2NWY2MGQzZmNkZDc3ZTAyZTczMDI1YTQ0ZmYyMjBjN2MyMzAwNDUyIGxlZ2FjeS10cnVuaworMjM2NjQgNjU3OTA1NjIwMzNjMTNjYmM4MmIwZmQ0YzE4ZWU3YWMyN2E3OGM0NiBsZWdhY3ktdHJ1bmsKKzIzNjY1IGI3NDYxMGM5MmQ4YjgyNmQwYjNiZGViZWIyN2VjMjEwZjI0MTMzNjAgbGVnYWN5LXRydW5rCisyMzY2NiBmNTdmMTdjYjQxMDg2NTQyYmNhYjBhMjIwOGM4ZjkyMDNhM2RjZDY2IGxlZ2FjeS10cnVuaworMjM2NjcgZWQyZWVhYjgwMmQyYzQ5YmQxNTQ5NDAyNzM4ZjA1ZmQ5NjcxN2YwMiBsZWdhY3ktdHJ1bmsKKzIzNjY4IDlhZTc4ZWY4NThlMmNhOWJiZWE2ZmIwMmIwOWI2MzJlMWYxYmM2NzQgbGVnYWN5LXRydW5rCisyMzY2OSBiNmE1ZmVjYmVjM2NiZWE2ZjhjY2NjMGMwOTYyOGZiZjE4NWQ2YTM5IGxlZ2FjeS10cnVuaworMjM2NzAgYzNhOTM3Y2Y2MGE1ZjVjZGE3ZDY1YmIzMTUxNDFhYWJhYjIzOTg0MSBsZWdhY3ktdHJ1bmsKKzIzNjcxIDZiMTA0MDgzZjVmMzNhOTBiOGU3Y2YxN2I2YTgxMDJlNTU0OTA1M2MgbGVnYWN5LXRydW5rCisyMzY3MiA0NjlhOGUxZjdlZGY1MTM3ZjBjMzIyMTRjYjgyNDgzNzBjMjdhZWM1IGxlZ2FjeS10cnVuaworMjM2NzMgYjk4MTg1Yzg4MmU0ZTc2ZmExOTI5YThjMWE1ODVkZGY0YTliZjY5MCBsZWdhY3ktdHJ1bmsKKzIzNjc0IDJhNGJiN2QxOWI2MDNmZTg1NmQ0ODVmZmMzYzU1NDM0NTg2MDY0ZDYgbGVnYWN5LXRydW5rCisyMzY3NSA0ZGFiNjFmNDg0NTgxNzIxZmIwOWRjYmU2Mjc3OTdiNmQ1ZmRjOWZkIGxlZ2FjeS10cnVuaworMjM2NzYgNjk4YmY3YzIyYmZlYmE2MmNlZWNlNzljNGFlOTg3ODQ4YTUyODg1ZCBsZWdhY3ktdHJ1bmsKKzIzNjc3IDFjYTYyN2M0YzEwNWYyMWZiZDJjMjdlOTU1ZDM5Nzg4MzVjZjViMTggbGVnYWN5LXRydW5rCisyMzY3OCBlNGQwYjFmOTRlY2E4ZDZiMjMyNDU3MjU0NjNkYjhlYzMxYWM3YmE2IGxlZ2FjeS10cnVuaworMjM2NzkgNjIxYzc3MDNlOGI3NTI4ZTlkZjliYTM3MzhiZWJhY2FhNjg2NjNiYiBsZWdhY3ktdHJ1bmsKKzIzNjgwIDU5MDBhOWQ4MDg0ODA5MjY5YzU1YmJiYmM4OTRkMGJlMTU1OTViN2YgbGVnYWN5LXRydW5rCisyMzY4MSBjMTY4ZWRhNzM2ZTQ0YTdjOGI0Y2RhZTM0YjIxNmM3MTE0MTg2Yjg1IGxlZ2FjeS10cnVuaworMjM2ODIgOTAzMjIxODUyYzNhNTljMzE3MDczNmVhMjQzYWUyYTEzOGRlNjAzYSBsZWdhY3ktdHJ1bmsKKzIzNjgzIDRmM2QxMjQwODMwZTZmNTMwMzhhODAyZWRkYTA0MDgwNGQ1YjVhMWYgbGVnYWN5LXRydW5rCisyMzY4NCAzYTE4MTMzZjk5MDY0MzUwNGI0OGUwMDA0YmM1OTE4NGQyYjJmMjM0IGxlZ2FjeS10cnVuaworMjM2ODUgZWU4OTU2N2JjYWI0NDUwYTUxYWRlODg0MTFhNzhhNTI4MTEyYzhhNCBsZWdhY3ktdHJ1bmsKKzIzNjg2IGY2MTg2MDdlOGY5ODQyMGQ2ODg4YzRlNDc3NzJiZTgyMjhhOWE4MDAgbGVnYWN5LXRydW5rCisyMzY4NyA0Njk4YTNlYzVmYThjZmFkOWI0ZDc5NTEzOWU0ZGFkYmI2NDZmNTk2IGxlZ2FjeS10cnVuaworMjM2ODggNmRhMDM3MThjMTMzMGMzYzIyMTE4Nzg3M2FhOWM5Nzg4MTllMmEwYiBsZWdhY3ktdHJ1bmsKKzIzNjg5IDdkMWY0OTBiNmNiMTcyODI0ZjlkZGViMDczZWE0ZGY1MTUyNDlmMDggbGVnYWN5LXRydW5rCisyMzY5MCA1MThlMzBmOTBkMWY3ZDg4NDRlMjcxODhkYWE1OWNjYTU2YzQ2ODJmIGxlZ2FjeS10cnVuaworMjM2OTEgNDcxMmJiNjJjYzI1ZDA1YjJkMGM3NmE5M2NiM2JmNThhZWU4ODkxYSBsZWdhY3ktdHJ1bmsKKzIzNjkyIDYzMmI5ZDNhOGQxYTdiMjkwNmY3YzgyYjE3NDFmY2Q2YjE5NjQyYWEgbGVnYWN5LXRydW5rCisyMzY5MyBiMDI5ODZlOWE2YmU0NzIyNjY0MmI3ZTVlZDY1N2RlMThiYWQ4ZTU0IGxlZ2FjeS10cnVuaworMjM2OTQgNWQ1YWQ5NTFhNmQ2ZTE3MGQ0ZjMzYjY0MjlhNjhlY2NhOGJhOTA5NiBsZWdhY3ktdHJ1bmsKKzIzNjk1IGNlZTBmZTVmY2UxMTVkYTU5NTk4YTg0ZmE5ZThjMjdiM2NlMDVmM2MgbGVnYWN5LXRydW5rCisyMzY5NiA1NjE0MWI4NmE3ZjJjOTVhMTJmNjZkZWVhNDk4MmY3NGE1MzU5Y2IzIGxlZ2FjeS10cnVuaworMjM2OTcgN2Y1MWE0YjdkZWI0NDBlZTJmZDVkNmM0NzNjNGNmMTAxZDE2M2Q1YSBsZWdhY3ktdHJ1bmsKKzIzNjk4IGJhMjg1MDQwOGYwYTI2MGQ1OGQ5NDM2Y2EyNDM0YTRlZjRiZDQ3ZDIgbGVnYWN5LXRydW5rCisyMzY5OSA1MDAwYjVkNGMzMjY1ZjU0MTBlNzc4YjMzYWQ3YzJlMjUzODdiZDRhIGxlZ2FjeS10cnVuaworMjM3MDAgMjAxMThmNDEyOWRlZmRmZTMxOWZlMDg3OTc4MTA3N2ZkY2Q1MGJiNSBsZWdhY3ktdHJ1bmsKKzIzNzAxIDM1ODM5N2I5MDcwZjZhN2VlOTVmZTM5MzQwOTdhMGZkZjFiOTc5YzQgbGVnYWN5LXRydW5rCisyMzcwMiAwOGQ3YTY3NTZiZmVkOTJhODg4YTgwYjNhZjRlYzk3YzQ1NjY3OTFhIGxlZ2FjeS10cnVuaworMjM3MDMgODU1NzFkNWY2NTQ1YjY3YmE2ZWJmODA4N2FmN2E2NDBlYWY4MGUxZCBsZWdhY3ktdHJ1bmsKKzIzNzA0IDliZTJjYzZiOTk1OWQ4MzFjNTFhYjA2ZTA0YjAxMzRjNjk5ZjIyNDYgbGVnYWN5LXRydW5rCisyMzcwNSA1NjI4MzRlZDhiYWJkZjdhZTMxY2I2YjkzMTgxODlmNGY5MTQ0MWFkIGxlZ2FjeS10cnVuaworMjM3MDYgNDY3YWM0NTNjY2MzMmM3ZWI2M2QyYjlkZWRhNWYyODQ3YWNiZjdiMiBsZWdhY3ktdHJ1bmsKKzIzNzA3IDAzNjI0ZDc0ODRmYTA2MDBlMGM0OGZkZWNhNzRhMTg0MjE3ZTc1ZTkgbGVnYWN5LXRydW5rCisyMzcwOCBiYzkwNWExMWMxNDhhNDhiY2I1ZmQ0MGIxMzM1YTUyZDlkNjQ5ZjMwIGxlZ2FjeS10cnVuaworMjM3MDkgMjdhYjAzMjdiMmZjM2E5ZTdhN2JkMDNhOGU4NjNjMzM0NWZmNDkxMiBsZWdhY3ktdHJ1bmsKKzIzNzEwIDg1NTI0NWJiNGQ0Mjc2Y2VmNzhhMmNjZWRkOWVmNmU2M2I1NDY2NjcgbGVnYWN5LXRydW5rCisyMzcxMSAzNTNhM2U5Zjg1MTZjMTU5OWI3OGZkYWEzZTM2ODM0OGNlNTBjYTViIGxlZ2FjeS10cnVuaworMjM3MTIgYjFhODYxNmYxM2U0Y2Q3MjZiZTU1ODAzOThmNzQ0ZTA0YWU5ZDM4ZSBsZWdhY3ktdHJ1bmsKKzIzNzEzIDY5ZTY1ZTczOTFiODE3YmMwNDg0NmI3ZThhMWJmNzA5ODVmNDAyNzAgbGVnYWN5LXRydW5rCisyMzcxNCBiNzI1NjhhMmMxN2NlYzIzMDg5MTE0Y2ExZDI1NGQzZGFkNDVlNmJmIGxlZ2FjeS10cnVuaworMjM3MTUgOTliMmJkMjViYjEyZDQ3YTAxZmMxNDMxNDQ1OTU1NWFlNjE2ZWYyNCBsZWdhY3ktdHJ1bmsKKzIzNzE2IDQxYmVkMWY2ZDI2Y2ViM2E3NTdiM2VhMjEzMzk4YzJmODE1NmYyYmIgbGVnYWN5LXRydW5rCisyMzcxNyA2NGY0YWM2MDZhZTUzMTNkNDI1ZWQ4YTNjMDA4NmNmYWNiMTJhY2M0IGxlZ2FjeS10cnVuaworMjM3MTggNTk4YzAyYWIwNjJkNDNmZmNjNjZmMWRlOTRiNDdjMGMxNjNiNWJkNCBsZWdhY3ktdHJ1bmsKKzIzNzE5IGVjOTU5NjY4NzI5Mjk2M2UzNmU0YmFkNGI3OWQxODg0Mjg1Zjc1ZTYgbGVnYWN5LXRydW5rCisyMzcyMCBiZmY2YzJkNzZmMzM2YzUyZDZkZWI0OGM2NzkxNDMzZWE3YTAzZmJhIGxlZ2FjeS10cnVuaworMjM3MjEgNGY3MWRjZmQwYTkzNzBlZjdiZTQyNmI0Mzk4NzI3NjgxODI3YzcyZSBsZWdhY3ktdHJ1bmsKKzIzNzIyIGE5NjIzNWIyY2E2MjViMzBhNjg2NDZhNjM4NGVhZWFjM2M2OGQ5N2YgbGVnYWN5LXRydW5rCisyMzcyMyBjNjhkMTg1NWRhYTllYTI0ODUxYWFiYzFmMzA5Yzg3NWI5Nzk0ODdiIGxlZ2FjeS10cnVuaworMjM3MjQgZmZiZjk0ZmQ5Y2VmOGUyZjZlODUzMWRhY2UwM2UzMWVlMmFiMDA2MyBsZWdhY3ktdHJ1bmsKKzIzNzI1IDdlNzFlZWJhYjRlYTM5ZTk5ZDYyNmQ3MmNiYjM5NWFhNWU5NzZhNWEgbGVnYWN5LXRydW5rCisyMzcyNiAyZjBjNWFmNGQ1ZWEwN2ZiNTZhMDViNmU2ZDE1YmE0YmRiMWRkNGU0IGxlZ2FjeS10cnVuaworMjM3MjcgY2UxMmJiMTA5N2E0MTY3NTM0ZTQzYzQ2NGY3ZjFlNzY1MWM1M2ZjZSBsZWdhY3ktdHJ1bmsKKzIzNzI4IDk4ZGYwMTE1ZWNmOTAxMmM0NmNlYzk5OWFhOTZjMzdjMWQ2NTMyNWIgbGVnYWN5LXRydW5rCisyMzcyOSBjNzI5MTVkOGFhYzcyODlmODZjZGM4YjMyNDAxNGE0ZmE2ZTVmNDNhIGxlZ2FjeS10cnVuaworMjM3MzAgNjBlMTJmODNkMmQyMjVlM2IxYTg5MmVmMDRmMWI5NmE4NjQ2ZDNlYiBsZWdhY3ktdHJ1bmsKKzIzNzMxIDViNWMxNWEwOTVjYzdhYmI1MTVmNDg3MTU0ZTQ0NGI5ZTk2MjMyMTAgbGVnYWN5LXRydW5rCisyMzczMiBlYmZkODdlODc4ODRlMDZmODAyZTEwZGFhYjJlOTMxODllY2RiZjczIGxlZ2FjeS10cnVuaworMjM3MzMgYzQ2ZTk0ZmQ2OTg2YjZlMGVhNjZmNzhjMDQ0MzUxZTEzODM3ZmJlNCBsZWdhY3ktdHJ1bmsKKzIzNzM0IDg5NjRlZjg0YzkyZjRkMjE3OGJiMzhmZTQxZDFmOWZhMzRjNThlNGIgbGVnYWN5LXRydW5rCisyMzczNSBiYmRjMGFiZmJiMTM5N2ZmNTFiYTk3MzQ3NzJiY2NlNWVmMmQ5OWFlIGxlZ2FjeS10cnVuaworMjM3MzYgZGM3MjA0ZGQyNjg2ZWEzZWNmYjkyOGFkOGVmMDY5NTQzZDI1MjA4OSBsZWdhY3ktdHJ1bmsKKzIzNzM3IDhkNWMwMDBlMGU1YjQ0Mzg4ZjUzMzM5MmJlMjYwOTdjYTM4NWYzYWYgbGVnYWN5LXRydW5rCisyMzczOCBhNWEzMGJhMjg5OWY1N2U5ZGVmNjFmYzc5YjNjNWMyNGM0NmJiNjExIGxlZ2FjeS10cnVuaworMjM3MzkgMmYwOTVjM2UwMDdkZDc3NmQ0NzQ0OWNkODFhNWJjNjZmY2QwOWI2OSBsZWdhY3ktdHJ1bmsKKzIzNzQwIDBjYjI4N2NkNzU0N2E4NDdjNjI0M2VlZDY1NjE0NTVmMjIyNTA1YjYgbGVnYWN5LXRydW5rCisyMzc0MSBjMjM5ODllMjJmZmE1MDExNGZiMTVmZjg4MmRmMzg1MGZiNjMyYzRjIGxlZ2FjeS10cnVuaworMjM3NDIgMDcxY2ZlZThkOGViOWFjMjk2ODNhYWY4MDA0MzdlNDZhODA0MTUxNCBsZWdhY3ktdHJ1bmsKKzIzNzQzIDc2OWRmODVkNzBiYzEzZmYwZGM0MjVlNDNmNDZkNGNlNzRlNzFjNGYgbGVnYWN5LXRydW5rCisyMzc0NCBkZDBjZGQzZGVmZDgzOWY4OGM2YmZlZmExYmIwMGI0ZTA4ZjE3NWQwIGxlZ2FjeS10cnVuaworMjM3NDUgY2Q5NmM0YjAxZmYwZjBhODMxM2VjMDMxZmJkMzYwNGE2ODJiMDFhMCBsZWdhY3ktdHJ1bmsKKzIzNzQ2IDhmNDczMTc5YjA3MzAwOTRmMmE1ODA4OGY0YzBjMmU3YmViNGU0NzkgbGVnYWN5LXRydW5rCisyMzc0NyA1ZDY3ODM1NmM4OTQyOWIyZTRiOTNjYTlmYzRhZjEwYzQ0NjNlZmNkIGxlZ2FjeS10cnVuaworMjM3NDggMWE5NDk0ZjllZGIyNzAyMTdkNjgwMDg0ODgyMDlhMjI1ZmRkOWI5ZSBsZWdhY3ktdHJ1bmsKKzIzNzQ5IDRhZjhkMjRmYTY5MWVlYTFhMGU2YTFmNTAwMTVlZDNlYTlhZTQ0ZDAgbGVnYWN5LXRydW5rCisyMzc1MCA0YmZkYmM4MjMxMGYxYmMzNWE2ZDBiNmU0YWQyYTUyMDQwZjQ5YTY3IGxlZ2FjeS10cnVuaworMjM3NTEgYjY5MjczYmVlMDk1MGNkN2M5MGIyMjMyMDVlZTNjNmU2ZWZiZGQ3NiBsZWdhY3ktdHJ1bmsKKzIzNzUyIGJlNjdiNjZlNWZlZDBmNzI2NmNlZTc5M2QxNmY5ZGFiMGI4NGNjMjUgbGVnYWN5LXRydW5rCisyMzc1MyBlMDlmYjQ4NDg3NjUzNTI4ZmU2NDEyYzNjMzM0NjFhODViMjQ0OGRkIGxlZ2FjeS10cnVuaworMjM3NTQgN2NiZDQwN2JlNmU3ZDNkMTZkNzc4NjQyZWYxMjJhNzAwNjAyMWIyNSBsZWdhY3ktdHJ1bmsKKzIzNzU1IDE0OWE2NWZhNDI3YzM0OTU5YjYyMWRmZmFkNzI1ODZmN2VkY2E4MGMgbGVnYWN5LXRydW5rCisyMzc1NiBiZjRmZjA1ZWFiNTIwN2FkMDY2ZWViMjA1MzE0MTJhOTk1OWQ1ZGUwIGxlZ2FjeS10cnVuaworMjM3NTcgMWQ5ZTY5ZmNmMGY4ZDRmNTE2MjdlZWYyMWU5ZWRjZGQxYmFkMzY4NyBsZWdhY3ktdHJ1bmsKKzIzNzU4IGM4YjBlOTk0NTE1OTlmNWM3NzE3OGIxNjJlYWQ2MzQ1MjNjMWU1ZDAgbGVnYWN5LXRydW5rCisyMzc1OSA2OGZlZmE5ODJjNWMyOTFlOTc5YzdjMjYyNjU2YTVjNTFkMGIwZGYzIGxlZ2FjeS10cnVuaworMjM3NjAgN2NiZDI4ODdmNjBmY2UzZTRhOTQ2OTJhMDkwNTRmZTNmYjE0ODkxNyBsZWdhY3ktdHJ1bmsKKzIzNzYxIGE5YjE5ZGIxODBhMjYwMGIwMjFiM2M2ODFlNmJmYzlkNDM1MzY5ZDMgbGVnYWN5LXRydW5rCisyMzc2MiAyYmM0MTgzZmI1N2U2OWZhMTYwZGMyNDFkNDhlYzg5NGE1MDNmNDk2IGxlZ2FjeS10cnVuaworMjM3NjMgYTBjOGMyZTVhNDRkMDg3MmFjNTIzZjhkOGI5OGY3NTY3NDE0ZjNlYyBsZWdhY3ktdHJ1bmsKKzIzNzY0IGZkZGFjZWZlZWIzNmRmYTI2YjE1MTJhNTcxZWRhMTY4ODgzZmVjYzkgbGVnYWN5LXRydW5rCisyMzc2NSA3MzNjYjI2OGFkMmZiMGI3NDA3Y2NjZjVkODVhMjc5ZmUzNzRiODBjIGxlZ2FjeS10cnVuaworMjM3NjYgNjQyNmE1YWRiZjc3NTNiZjA2YzdjNzVkZDQwYTE2ZGVjZGU0NzdmMCBsZWdhY3ktdHJ1bmsKKzIzNzY3IDg0MzMxYzhkOThhNDFhZGQ5MGQ3YjY3MTRmZjQzZjk4ZjlmZTViYzUgbGVnYWN5LXRydW5rCisyMzc2OCBlMDg2NGFhYzliNmIyNWQyN2ZjMTVkYWY5YzY4OWFlYTk3MzU1MGZkIGxlZ2FjeS10cnVuaworMjM3NjkgOTM4NDFjNWY0NzViMTAwYThjMjU0ZmRmZGE2Mzk3ZDA3NGMyNDU1MSBsZWdhY3ktdHJ1bmsKKzIzNzcwIDk3Yzc1Zjk4MWE5ZTYyNzNkNzNjNmYyZGMxN2IyMjMwYmZmMTA3NWIgbGVnYWN5LXRydW5rCisyMzc3MSAzNjRjMjM4YTY4NzEwZmQ5NDYzMmJkNTA4NjBlMWQ4ZmI1M2E0YjUwIGxlZ2FjeS10cnVuaworMjM3NzIgOGUwYzMxODQ5YzY0OGU3ZDM2ZWZiYmQxY2U3NTgxYmM1ZDQxOWI2MSBsZWdhY3ktdHJ1bmsKKzIzNzczIGRmYzlmMjNjODY1NTM0NTMzMjMxNWRkNzI0YjNhZWE1NzA3NGQzNzMgbGVnYWN5LXRydW5rCisyMzc3NCBiZGM0ODZjNjZkZjA0YmEwZDc0NDkxOTFhNzZlYzk3NmU4YWIzN2RiIGxlZ2FjeS10cnVuaworMjM3NzUgYzEzYTQ3M2NlMWI3ZWRkYmIwOGRmMDhiNjNjZDA0Zjg4OTUwMDU0MiBsZWdhY3ktdHJ1bmsKKzIzNzc2IGRmYjJlZmE1NTk2NzJiODdlZWEwZjU3YjVlNTk2ODUwNjZiNTUwMWEgbGVnYWN5LXRydW5rCisyMzc3NyA2MmIyMDc1ODg4NjZjYzZmNTBlNTUwOGYzYWFmMzFiZTk1YzljYzA5IGxlZ2FjeS10cnVuaworMjM3NzggZjkzOGNkMWJhOTRlYzRlMzI3MzAwNTQwNGUwOWFhYTg1MDAwNmI5ZiBsZWdhY3ktdHJ1bmsKKzIzNzc5IDA2ZjEyNTRkMjI4MDhlYWQxODIwMjNhYTVjNjY0OWQwMDgxYjdlNmIgbGVnYWN5LXRydW5rCisyMzc4MCBkMjExNjBhOTIxNzkxMzg5YzEyODU2ZmIxM2U1MGYzNDliNWMzZmU0IGxlZ2FjeS10cnVuaworMjM3ODEgZDUxZmU1MjBlNWZkYzAyMGMzMjc1ZGJhNDAwMjEwMmJiMjg3NmUxOCBsZWdhY3ktdHJ1bmsKKzIzNzgyIDIzZGM3YmIwYmU0ZmI3Nzg2OGUwNTM5NmYxNTEwMWM5NWUwZTk0ODkgbGVnYWN5LXRydW5rCisyMzc4MyBkMDFjNWYyOTkxNWEyOGM4MzhhNDcyNTI3NTNlMjNmODVmNzg1YjE5IGxlZ2FjeS10cnVuaworMjM3ODQgYmMzYzg0MTk4NzRjNmUxZjM4OWNmNWM4Nzk3ZjIwMTgwMDc3YWFkMCBsZWdhY3ktdHJ1bmsKKzIzNzg1IGNiODdiZDk3Zjc0MGYxNzUxYWZmZTQ4MDFlMjUxYjI5ZDA5MzFmN2YgbGVnYWN5LXRydW5rCisyMzc4NiAzZDEzNDE3YTYzZTBmZDczNWE4NWUyZDFiMDZjOGVlMDcxN2M4ZjAxIGxlZ2FjeS10cnVuaworMjM3ODcgNTRhODM5NjA0NTQwM2MwZTI4N2YyZWNmZDFiMzhhNzBmZDBlMjgxNiBsZWdhY3ktdHJ1bmsKKzIzNzg4IGZkNTYxNDRhOTZlOGZhNjQ0YzVlMjkxODliNjUzOTFlNmE1ZTU5M2YgbGVnYWN5LXRydW5rCisyMzc4OSBjOTQ4YmNiMDQxNWUwYzMyZWE0MTM4NmJmODQ0M2ZkZDA0Y2M5MTkyIGxlZ2FjeS10cnVuaworMjM3OTAgMWYzYzFlODMxZjIxNmE0OWJlNmMwODMyM2E3MzA2MjljZjdlMDk1NyBsZWdhY3ktdHJ1bmsKKzIzNzkxIDNkM2I2YjRjYjc5ZjM5OWIyMmUyMTQ5YTc3MDcyYTkyNjE3M2YyMTUgbGVnYWN5LXRydW5rCisyMzc5MiBjYjMzNGE4YzhkZDIzYTU2NmZkYWQwYmY3YjA0NDVjMTI5ZGFlMmM3IGxlZ2FjeS10cnVuaworMjM3OTMgZGJmZWQzYmYxNjBlZWRhMDNkM2EzMjAxNzk5YTMxYTM1MzVlODQzNiBsZWdhY3ktdHJ1bmsKKzIzNzk0IGYwZTMzYzU3ZTQ2ZTgwMTAxNGQ5NzhkMTBiY2FjY2I0NTZkOWY5MmIgbGVnYWN5LXRydW5rCisyMzc5NSA5Yjg0ZWZiZjZiMGQwYjc3NjczMzJkMjM0YzNlN2U0NmRmNDEyNjMxIGxlZ2FjeS10cnVuaworMjM3OTYgYmMxMzhiYzczY2RkMWMzNTRmNzE5ZTc2MzM2N2E3OTZjMDFhZDMxMSBsZWdhY3ktdHJ1bmsKKzIzNzk3IDRmN2JlZmVjMzViMDE5N2Y0Yjc5MDcyYTU4YTE4OWFlNDI4NzZiZjIgbGVnYWN5LXRydW5rCisyMzc5OCBjMjAwNWJiODc5YjQ2N2Q1NDc5ZmYzMmFjYzI3ZjU4NjQ0Y2M3MzU4IGxlZ2FjeS10cnVuaworMjM3OTkgODBiOGJmYTA0NDA2YmYzZjQ5MTVmN2JhYTJiYzZjNDBmNzEzNDgxNCBsZWdhY3ktdHJ1bmsKKzIzODAwIDRiMTYxNWJmNmViMDlkMzFjNzYyMWM2NWE5ZWY5MTM0MTNlOTM5YjggbGVnYWN5LXRydW5rCisyMzgwMiAwMWFmOTFhZWNjZDQ0NzI1NDI0MTc5ZTI3YWY2ODMxZjM5MzY4OTU5IGxlZ2FjeS10cnVuaworMjM4MDMgZmUxYjZjZTRlYjkzNjM1OTg5MmM0NzBmYzc5NTIyOTc2YTk0NDBlYiBsZWdhY3ktdHJ1bmsKKzIzODA0IDJkNTk5YTM2YjY3YThjMzBjYjk4YTQzZGVmNDljN2VkZjM3ZWQ5YWEgbGVnYWN5LXRydW5rCisyMzgwNSBhZDI2NjIwOTVkNzcyNDY5MWQwYzQ4NGFmZjQ2YzJiZDI5NmQ0ODgwIGxlZ2FjeS10cnVuaworMjM4MDYgZjU2N2I0NTczN2MwZTM0ODBlMjhkMTJmMTEwMjg4M2UwNTIxNmNiOCBsZWdhY3ktdHJ1bmsKKzIzODA3IDI5NDkwMWFiODYzMGI1ZGMwOTcwM2NmYzA3NzA4YTI0NmZhZTRhZTAgbGVnYWN5LXRydW5rCisyMzgwOCBhODk5NWE2ZGU4ZDAwNWU2NjM2NmU3MzE1YzYwZjgzMDk4YWFkNDAyIGxlZ2FjeS10cnVuaworMjM4MDkgNGJhNDU0OGJhOTQxNzk0MGRlMmJiODMzOTdjMTJmM2M5YTYzMTM5NiBsZWdhY3ktdHJ1bmsKKzIzODEwIDM2NzE0Yjk4ZmU1MTIwZTY1MjcxZDgwMzFlN2RhZWM5ZmU1OThjYzggbGVnYWN5LXRydW5rCisyMzgxMSA3M2ExMzk1YTIzNTE2NDkwOTY5YTA0MzFmNmQzMzlkZjE4MTRmNDMyIGxlZ2FjeS10cnVuaworMjM4MTIgYTEyY2NkYmNlOGRhOTNlYmE2NWI4ZmE0ZTQyOWM1MTQ2Nzg5N2M2OCBsZWdhY3ktdHJ1bmsKKzIzODEzIGE1NjQyN2U1YzVlMTcyODRjMjJmOTI3ZWYxY2IzNDJlM2UyMTdlZTQgbGVnYWN5LXRydW5rCisyMzgxNCBkODgyNTQ3NWI4MDA3MmU4ZWE5Yjk4N2ZlODZjYjgzMGI5N2UwMzgyIGxlZ2FjeS10cnVuaworMjM4MTUgNmE1YTEwYTViNTI2NWRkMTNlNjY1MDhiZmEwMWZhMWFjZmU1ZWUxOCBsZWdhY3ktdHJ1bmsKKzIzODE2IGM5NjA4Yzc5MGY2ZjVmYTg1MTM5MTRhMzQ5ZTRlZWE1YzdlOTcxMzQgbGVnYWN5LXRydW5rCisyMzgxNyA2NWRkNjE1N2Y5OTkzNGJhNDEwNzBmODZjOGY2M2VhYzkwZDIwMzRjIGxlZ2FjeS10cnVuaworMjM4MTggNzIyYmIxZmQzMWVhMDk2ZmNlYmYwY2MwMWQxZjg2ZTlkYTNiYjVmMSBsZWdhY3ktdHJ1bmsKKzIzODE5IDAzMzZlZTViNDZkNDIyMmVjMzA3YTRiZGU2ZjdmYjVjMmQ5YWViZDQgbGVnYWN5LXRydW5rCisyMzgyMCA5NDliYTQ3ZThmMzBjYTdmM2Q2MzgyMTljNTM5ZmQxN2NkN2VlMGRmIGxlZ2FjeS10cnVuaworMjM4MjEgODdlNWZlMDU2ZDI5OWY1ZWEyYWFjNTJkOGE3ODkwZDYxNDJlYTc3MSBsZWdhY3ktdHJ1bmsKKzIzODIyIGFlNTA3Y2Y2N2ZiZmM0M2QyZjE5MTg5OTIwMDgxZmM0NzBkMjdkNzkgbGVnYWN5LXRydW5rCisyMzgyMyA0YTI1N2E1OGJlOGJmYjczMzFhZjc2YTZiOTAyOTQ4ZDFmOGQ0MzU5IGxlZ2FjeS10cnVuaworMjM4MjQgZGE4MTEyNWIyYWY4ZWFmMTBiZDEzMmZhYjMwYWU3NjU3MmJkNjM2YSBsZWdhY3ktdHJ1bmsKKzIzODI1IDQ3M2FkYmY1MjE3MTg0OGQyMTczMzE2MTQ4M2EzMGU1NTYwMjg3MjQgbGVnYWN5LXRydW5rCisyMzgyNiBlYzcyYjYzZDI2OWFlYjlhMzI5Mjg0YjAwZDdlNmFiNWVjYzdhNjRjIGxlZ2FjeS10cnVuaworMjM4MjcgZDA2MjFhNjY5YzU2OTBkMDZiZGUyODUwZTZiMzZkNjk1ZDMzNGM0YSByMjJiMS1icmFuY2gKKzIzODI5IGVjMDVhZmFmZTEzYjk1ZDdmNjRhYTUxMmFhYjc2ZTdlMDdjNzgwZjUgcjIyYjEtYnJhbmNoCisyMzgzMCAzNzdiMDlhYzcyNmU3ZWEyZTI2NTg0MjcxYjdhM2RhOGQ2ZmZmYWQzIHJlbGVhc2UyMS1tYWludAorMjM4MzEgOTA1OGU0OWM2YzU3ZDIzN2I5MGJhYzY0MGU4YzUwNGU4MGNjMDJiNCBsZWdhY3ktdHJ1bmsKKzIzODMyIGNlMmEzZjE1NjE1ZjZiYTNhZjcyNzNlYzEzNTMyMjRjYmViOTlhYmIgcjIyYjEtYnJhbmNoCisyMzgzMyA4ZGRkZmZmYjlmMmJiN2U0YzhmN2MxYzkyZTViZjI3NmUyMTUzNjFmIGxlZ2FjeS10cnVuaworMjM4MzQgNmY5OTAyYWNlMThkOGViNmYwYjgwMmJlNjkyNmEzZTM2ODhiZmM2NiBsZWdhY3ktdHJ1bmsKKzIzODM1IDA4ZjE2NWYxMzVhOGE2NDM2MGU0ZDgyMzU5Zjg0NDI1ZGI4NjUzZGYgcmVsZWFzZTIxLW1haW50CisyMzgzNiBjYjhlOGI0MmNkZmJlYjVlMTc0MzA0YzQxZjlhNGY5Y2I4NDc4ZTYxIHIyMmIxLWJyYW5jaAorMjM4MzYgZTlmYWQ1NWVmNzA0ZGJlYmNkZTVlMTRjYjhkYjk2YWY4NGMyMmU1NSByMjJiMS1icmFuY2gKKzIzODM4IDYxODA5YzUxNGFkODA2OWVmMjQzMjM2MjBkNjNjNGVkMmNkNGVjMGYgcmVsZWFzZTIxLW1haW50CisyMzgzOSA4MDVmMTg0YjZkZTA5YTUyOWNhMjAzN2MxNjNkZWE1NzY0ZmZmMmJmIHJlbGVhc2UyMS1tYWludAorMjM4NDAgZDA2NDQ2ZDRlNzhkYTIzNDA4YmY1ODU1YjIzMDhjZjkzOGJhNjViMiByZWxlYXNlMjEtbWFpbnQKKzIzODQxIDcxMTEzNWNlMWU1NGY1ZTc2OTExNTAxMmQxYzlkM2ZkZGMzN2QzMTkgcmVsZWFzZTIxLW1haW50CisyMzg0MiA1NDFmODI1YzdkNjM3Y2VjOWRjZmVjZDI0YmM2ODU2YTkxNjU0N2VkIGxlZ2FjeS10cnVuaworMjM4NDMgYTliYWJhMTZlYmYzOWQxYzk5ODcwMDBkNzdjOGZkZmVlM2ViMWFiNiByZWxlYXNlMjEtbWFpbnQKKzIzODQ0IDVmNDk1MGRkMzdjOGE5YjczYzQyMTZiYTc3OGU0MmExMzE1ZGZhNzUgbGVnYWN5LXRydW5rCisyMzg0NSA1YWY2Yzg5YzhjYjc1ZjMzN2QzMDVlOTc2ODc5MjkwMDM5YjNmNGQ5IGxlZ2FjeS10cnVuaworMjM4NDYgMTUxZTQ1ZTk4YzExZDM1NjMwMTk1N2EzMDBlNTIzZjgxYTIzZDM4YyBsZWdhY3ktdHJ1bmsKKzIzODQ3IDJjYjMyZjdmNzhjMmQxZTRmZDZlZjgxYjI2Y2IyNDdlYTgzZGMwYTIgbGVnYWN5LXRydW5rCisyMzg0OCBjZTg4ZWI0NjVjZTc2YzEzYWQwOWQ5MTFiMGFiMWRkOTFhN2YzOGJhIGxlZ2FjeS10cnVuaworMjM4NDkgOTA1OGJjY2U2OWUzMThjODBkNDRmYTAzYWYyMmVhNWMyYjAyNmY2MCBsZWdhY3ktdHJ1bmsKKzIzODUwIDg0YTU4NmFjZGMwMjM3MzNhYWUzZmUxZGE4ZWUzMTMzYjM3Y2E1M2UgbGVnYWN5LXRydW5rCisyMzg1MSAzNzZlZTE3NGVjZDA3NzQyMTE2OWI4OTAzM2MwNDc3NGU0YjQ1N2JiIGxlZ2FjeS10cnVuaworMjM4NTIgYmYwM2I4ZTNlZjkzYWYxMTUwOTA5ZDhjOTVjYzMzM2NiNDYwMzdlOCBsZWdhY3ktdHJ1bmsKKzIzODUzIDgwYmNjOGI3ZDYxOTBlYjczZTBhMTFmNDFmNjQwNGUzZWFjNDdhNWQgbGVnYWN5LXRydW5rCisyMzg1NCBiNWNhMDY4N2JhNmE4MDk2YjExYmJmOGQ2ZTZlOTVlMGJhY2JmYWFlIGxlZ2FjeS10cnVuaworMjM4NTUgODg3YTkzZjlkNWQ1ZDljYmZhMzhjNGJlYmQyMzI1MDljZjM0ZmUwYSBsZWdhY3ktdHJ1bmsKKzIzODU2IDdkMTI1NzQ4NWFlZjJlN2I4MGY3MWQ3ZmVmYjhiMTBlMDFiYTI4YTQgbGVnYWN5LXRydW5rCisyMzg1NyA5YmQ2MDNkNDM0ZjU1MmFiODMzYjAzMzE1NTU3NTUwODFmN2FhZWMyIGxlZ2FjeS10cnVuaworMjM4NTggMzI1ZDUxM2E1MGJiYThlOTAwYmI2ZmE0MmVhYjI2MDRjYWRlMjJlNCByZWxlYXNlMjEtbWFpbnQKKzIzODU5IGFhZDc2MjUwM2QxMWU4YzI0NDMyNjVmYTk1NDMyZTMwMDNjNzNmYmIgbGVnYWN5LXRydW5rCisyMzg2MCBkMzI5ODQzNWQ4NWI1ODRiNjUwOWZiMDhiYmNjMjc3M2VjZGFmNzYzIGxlZ2FjeS10cnVuaworMjM4NjEgMDUwZWQ4YTIxY2RlNWRkZjNlZmI1YWQ1ZjMzMmU4ZGViNjE0ZTAyMiBsZWdhY3ktdHJ1bmsKKzIzODYyIDkyNDZiNmM3ZTc0MjJiYzZlOTIzNTczYzAyYTIzMzc1NjE5Njk2ODAgbGVnYWN5LXRydW5rCisyMzg2MyA4MmJjZmFjODk2NDI1Y2M4YWZmZDVjNzM2ZDE2ZTgxMmVjMjVjODY3IGxlZ2FjeS10cnVuaworMjM4NjQgMjVkNzY0ZDg4MTQ5MWM3M2QxMDE5OGU0ODI4NGUxZWUyMGE0ZjU1YyBsZWdhY3ktdHJ1bmsKKzIzODY1IDBkNWU2ZmMwNDgxZDYxNGFjZmM5MDI0ZWQzN2RiYzE1YzAzMGE1MDUgbGVnYWN5LXRydW5rCisyMzg2NiBjNGQ5ZDg2NzQ1MDYyZWExZTMyNGIxOTQ3YjE3NzlhODFhNGE5OTBmIGxlZ2FjeS10cnVuaworMjM4NjcgY2E1ZjJmZjgzOTc5MmFjODJlOTViOTlhM2U4ZTUxYjhkMDIzZTIyYSBsZWdhY3ktdHJ1bmsKKzIzODY4IGI0N2UxNWZhNDNlODUxYzM2MDcyYjhmNjg4OGZmMDUxN2NiMmVkNjEgbGVnYWN5LXRydW5rCisyMzg2OSBlYjZiOTUzZWNmN2NhN2VmMzUzYzgyMjk1MzFjMmE3YjkwMTg4MjZkIGxlZ2FjeS10cnVuaworMjM4NzAgZmY1N2ExYTM3MGIzNTAxZjI1MjI2ZTJhZDI2YjZjNzJkYzRjYTQyMCBsZWdhY3ktdHJ1bmsKKzIzODcxIGVlYmRkZDNiOTRhNTMwY2E5MTUwM2E0NWE4ZTZiMjVmMDJlZGYwMDkgbGVnYWN5LXRydW5rCisyMzg3MiA1YzFkZmQ5Mjg3N2Q0NTdkNzUxMWE1Y2Y3ZjQ4YTkyNjFlNzE0ZGIzIGxlZ2FjeS10cnVuaworMjM4NzMgOTAwOWMyNTY5NGQxZmMxYmJjZTU1YTBkYTBkNjBhNzkxMGJiODc0YSBsZWdhY3ktdHJ1bmsKKzIzODc0IDRiNzlkN2Q5MWI0ZjlhMmEzZTkzZWUyOTM4ZDk1NGVkY2I3ZWE2OGYgbGVnYWN5LXRydW5rCisyMzg3NSA3OTQ1NjM5ZGYyNjUwMGNhY2RkZDA0MTY4YWE4ZWM0NGI3YzIxYjc1IGxlZ2FjeS10cnVuaworMjM4NzYgNzM3MDJkN2YxM2IxYjE1OWEzOGVlZTllNzBmZWViOTdmZmQ5NjFhNyBsZWdhY3ktdHJ1bmsKKzIzODc3IDJkOGRiZWJmODFlMDZhMTdjZWY0YmM4ZmRmZjQzZjM2ZDg1NzExY2EgbGVnYWN5LXRydW5rCisyMzg3OCA3ZjNkMGNjMjE4ODk5NmZmMDMxZGI3YTNiZjcyYTk5ODk5OWFmN2NkIGxlZ2FjeS10cnVuaworMjM4NzkgNjg5ZDBiYmM5MWIxMzkyNTkyNzNmNGFjYWJiYWMxMDEzNjc5ZDZhZSByZWxlYXNlMjEtbWFpbnQKKzIzODgwIDgyOGNiMGMyYzQ4MDVkZTMxNGRiMzIwNDQ1NDNkNTM5YjU4ZDI0YjMgbGVnYWN5LXRydW5rCisyMzg4MSA3ZGNjOGEyODEzM2EyMmIwOTQzZTg1MWI1OGJhYjdmOTdhZWU0MmNjIGxlZ2FjeS10cnVuaworMjM4ODIgNzE2YTQwNmU5YjRmYjNkNWE3NDcwOTVmMGRlNGViZDhlOGZjOWQ1YyBsZWdhY3ktdHJ1bmsKKzIzODgzIGJlYTk0MDRjZTYyY2QyNDgzYWNiZDdmMzgxNWViMWJlMDEyZTNkYTAgbGVnYWN5LXRydW5rCisyMzg4NCBiZjRiMzc1MThjMTQ3NzJlYTIzZWFhY2JmMzAwMjczMzM0OTcxYTYyIGxlZ2FjeS10cnVuaworMjM4ODUgNDAzZGQ1OWNhN2Q1ZGYwMTIwMzhkZWM3YjM0OTUwOGVjYWRhYWQ0MSBsZWdhY3ktdHJ1bmsKKzIzODg2IDMwMmExYzAyNWRjNzkyZWE4ODJiOTQwNzAzNGY4NDY4MzQ0YWY4N2EgbGVnYWN5LXRydW5rCisyMzg4NyBhM2Q2YjMxZThiYjlmZGNkZWM0MGQ4MjQ1MDBlZGI1OTBhNTRiYzZlIGxlZ2FjeS10cnVuaworMjM4ODggYjk3NDUyMjliZDEzMmM3MjQ5YTlhZWRkMjI5OTcwZmQ2M2FjZGEzYSBsZWdhY3ktdHJ1bmsKKzIzODg5IDU3YjUxOTY2YTRmMWYwNmYzMDcyZTY5MWQ5OGM3OGM3MDQyNjUxOTUgbGVnYWN5LXRydW5rCisyMzg5MCAwYjFjMTM5NGJlYzYxMTkzYTAyZGE5YjA1NjdmODRhNWYzMzYyYWM4IGxlZ2FjeS10cnVuaworMjM4OTEgZTRmNTEzODI5MmU2NTliZTI2NWZkNzAwYjRhMDk2YTI4NWRkZTlmOSBsZWdhY3ktdHJ1bmsKKzIzODkyIGI2ZjgxOTdmNGRmNzg0YWFhYmE2OGUyOGZlYTNiNDA0ZDY5Y2MwYjMgbGVnYWN5LXRydW5rCisyMzg5MyBhYTU2NDc1NjllZTJhYjM0MTVmYjJkMDgzNmRhMzMxYTMwMzZlOWRiIGxlZ2FjeS10cnVuaworMjM4OTQgNGZiNzcyN2U0ZjQ3NWJlYWMwODQwZWY1YTQxZGE2ZGE1ZTM3MmUwNiBsZWdhY3ktdHJ1bmsKKzIzODk1IDdjMzgxZGQwNzc5Y2E3NmM5ZmIwNjE1NjUyZTg3OTY5YjU2NDJjZGEgbGVnYWN5LXRydW5rCisyMzg5NiAyYzFhNDU4NGE3MDQzMzVlMDU2OWU5OTA1MDY4NjQ0Y2UwOWZlMWU3IGxlZ2FjeS10cnVuaworMjM4OTcgM2QyOTliMTU2NTExMThjYzk4ZmVmMjkzNjg1YjNjOTYyNTliODUyYyBsZWdhY3ktdHJ1bmsKKzIzODk4IDk3YjE4YzA5ZDIyYTJhMzQ2NDE3YTFjMTA3ZjI1ZDg1N2RlNzc1ZmUgbGVnYWN5LXRydW5rCisyMzg5OSAxNTk4NTg4ZWYxYWRiN2U0ZjhkOTQxNmNkNjI1MWU5YTZlNWY3MmE3IGxlZ2FjeS10cnVuaworMjM5MDAgYWNjN2UzYjRkMDQyZmVlNWE3NzQyMzM5ODE0Y2U4N2JhMmM5ZTU2ZiBsZWdhY3ktdHJ1bmsKKzIzOTAxIGU0OTZiODUyMjljNzliZDAyYTljNzZjOTIzNzg4NzdjYTFiYzY4YzcgbGVnYWN5LXRydW5rCisyMzkwMiBkNWIzMWVmMjNjZWJlMzFmMzZiNzEwZWU0NTAzZjRlMjdhNzY1NWUyIGxlZ2FjeS10cnVuaworMjM5MDMgNmM4NGQ1NWFiYjU4YTEzNTdhNzBjODhhZWNjMzlhZjA3NTc2NTVkMCBsZWdhY3ktdHJ1bmsKKzIzOTA0IGZlZDhhMTg4OTRmNWY5YmJkNGM4NWY1MGUzMDUxNTdiZDQxZWRjMWIgbGVnYWN5LXRydW5rCisyMzkwNSA4OTliZWJjODkwNDdlNTA4MGIzMjA5YjQyZDIwODk2ZDVmNTEzNmUwIGxlZ2FjeS10cnVuaworMjM5MDYgMDRmMjgwMWQ5OTc3MGY1OTM0N2NhNWVlNWUxZDlmY2U3MWE5MzljOCBsZWdhY3ktdHJ1bmsKKzIzOTA3IDNmODBjOTFiNWMzY2ZkYjU0ZThhMGY3YmU2ZWFmZjFkN2Q0YjhkZjQgbGVnYWN5LXRydW5rCisyMzkwOCA4YjllMmZiY2FlMWZmY2ZiY2MyNGQ3NTk2MDFiYjVmOGFhYjkwNDAyIGxlZ2FjeS10cnVuaworMjM5MDkgNmYyY2IxODA2OGRkZjkwNjUyZTc0OTk3Njc4M2NjOTIyMmZkNDEzNCBsZWdhY3ktdHJ1bmsKKzIzOTEwIGFhNDZjNjYxODhkMzZjOTU1MDIzZDEyYmQwZGNiOTUyNWZjNzFjMmIgbGVnYWN5LXRydW5rCisyMzkxMSA3MWE5YjA1M2FiNDJiMmNkMmJiNTA3OTg0Y2QwOWI0NWIzYTdkYmRlIGxlZ2FjeS10cnVuaworMjM5MTIgYzgwZGFmY2UxYjc0YTZhZGY5NDMyMzI3YWNlMDlmNTBiNTNiY2M2YSBsZWdhY3ktdHJ1bmsKKzIzOTEzIGFiODMzZDlhMDliOTgwYWYwZGZiOTc3MTcwMDY4NTlmMWIyNTllZjkgbGVnYWN5LXRydW5rCisyMzkxNCBlZjc4ZWM2MDJhNDA2MzgwN2QwOWNmNGZlMDkxYmQ2NGFlMzZlNzE2IGxlZ2FjeS10cnVuaworMjM5MTUgN2M0MWM0ZmJmOWM3M2MyYTc1ZjQzMWUzNzg1NTc1MmY3ODZiYTlmZiBsZWdhY3ktdHJ1bmsKKzIzOTE2IGIwNzg5OTFjYjU2YTNkMDNmMDRjNWQyNDBhMjVlNDcxYWIwMzU3OGYgbGVnYWN5LXRydW5rCisyMzkxNyBjYWJiNTY4YTU1OGIxZTYzNGNlNWUzZjUwMTEyYjU5NzQ4Mjg2ZTUxIGxlZ2FjeS10cnVuaworMjM5MTggZGQ3OGIxYTcxZjNlYWY3MzEyMTVkMjQ4M2VlNWFhNDRlNzA0ZTlkOSBsZWdhY3ktdHJ1bmsKKzIzOTE5IGZlYzk1MGQ4YzI1ZDdiNGZhYjJjOTMxNDhiMjQ2NDhjZWEzMzFlOTUgbGVnYWN5LXRydW5rCisyMzkyMCA1Mjk1N2EyZGZhZmU2OTA0NTk4OTYzMjQyMDNiNGJmYmVkMWMzMGM1IGxlZ2FjeS10cnVuaworMjM5MjEgZWIwMDRjYzAwOGQyNzc2YzhhODEwMTcwYTEzN2I1MzU0ZWIxMWYzMSByZWxlYXNlMjEtbWFpbnQKKzIzOTIyIDhkZWIzYjVmZDdjMTc4OWZiNmQyOWM5ODNhNDhmODQ1MjllYzgzNTIgbGVnYWN5LXRydW5rCisyMzkyMyAyZDNjZWU5ZjE2MzMyMGFjMzQ2MDc4NWQwMzFlZGEzODE2NTRlYmEzIGxlZ2FjeS10cnVuaworMjM5MjQgNzU3YmNmYTIwMWRjMTk4YTQ2Mjc4MjI3YjM5ZDQzMjAyOGRhNzAwOCBsZWdhY3ktdHJ1bmsKKzIzOTI1IGVkZDlkMGIzYzQ3ZWZhZTdmYjIwMTBlMTMzMjkwYjU2ZWFhZjBiN2YgbGVnYWN5LXRydW5rCisyMzkyNiA3MzQ0Njg3YmYyYzBhYjhmZGQ5ZDUwZDcxNzE5OGY3ZjE3NGQ3ZWNjIGxlZ2FjeS10cnVuaworMjM5MjcgZDBlYjIwMzZlY2NhZjI2NGU5NWZhNWFhODdhZjRmZDkyZDRmN2Q0ZSBsZWdhY3ktdHJ1bmsKKzIzOTI4IDM5MzU1NmFkYjI5NTBhMzc3MmI0MWE2NWZjZDg2ZWFiZjFiZGM5YTggbGVnYWN5LXRydW5rCisyMzkyOSBkY2FhMmM4OTQzMGU3OGZlYzExYTdmYWZiODNiOTdhN2E5MjBjZWEyIGxlZ2FjeS10cnVuaworMjM5MzAgY2UxM2FhMzFlMTg5YTA5ODFkYzQ1YzJmMjU2NmMwN2IxNDVhZDIxZSBsZWdhY3ktdHJ1bmsKKzIzOTMxIGMwNWQ0ODk1MjM0YzEwZWI5ZGYxZTMxYTkyODAxMmM2OWRlNzhhNDYgbGVnYWN5LXRydW5rCisyMzkzMiBmNzAwOTE2N2RkNjdjMzhkZDA0YWQyNTYzMDk3NzM2ZDgwOGE4MTE5IGxlZ2FjeS10cnVuaworMjM5MzMgYzQ3OGE1MDkxZjNmZmZiZDVhOTg5MjNjZjk4YmFhYzIxOGJkNzM3NiBsZWdhY3ktdHJ1bmsKKzIzOTM0IDVjZDhjODdhODhhZWQ4MWI0NzRhMGVhZjI3MDE4M2I1MTM2NGYwM2YgbGVnYWN5LXRydW5rCisyMzkzNSAwMzk3YTc1YTViZmRkNWZjZmQyYjE0YmRiYTVhOGE0ZmY1Y2Q1OWRlIGxlZ2FjeS10cnVuaworMjM5MzYgM2NlMDNlMmYwMWVmN2YwMTZmMjQxOGYyZTI3NzQ5MWQ3OGUzOGQxNSBsZWdhY3ktdHJ1bmsKKzIzOTM3IDg4YTI0MmJmYjIzYWIwYTE1ZDk0YWI4MDBkMTc2MjFlOWZjZTAwMTYgbGVnYWN5LXRydW5rCisyMzkzOCA5OGU1ZDkwMWJmZGZkOTIwODgzNDQzM2ZlZjlkMjgwNWE4N2Q4MTA5IGxlZ2FjeS10cnVuaworMjM5MzkgM2U5Yjg1ZGU0NDdiOWE2MDdjNmNlMjk3NGFmY2RkOTliMDkxZjk4NCBsZWdhY3ktdHJ1bmsKKzIzOTQwIDUzNWRjMzY1MGJlY2Y1M2RlYWVjOGNmMDBmY2NkNDZmZTRjMWVhMzcgbGVnYWN5LXRydW5rCisyMzk0MSAzY2ZkNTc4ZjY0OGIyNDhlZGYyMDc4YmRjMWQyNGViMGIyOTA0ZDY3IHJlbGVhc2UyMS1tYWludAorMjM5NDIgM2ZiNDAzZWFlZGUxZTYyN2FlMmYzYzY3YTE5NzA2ZGQ3MTBhYjQ5OSBsZWdhY3ktdHJ1bmsKKzIzOTQzIGQ5NTFjMmRlMDk1Y2FlYzQ5NmViODhkZjUxZDI1MGQ5MmU0YTU5MzkgbGVnYWN5LXRydW5rCisyMzk0NCBhZjlmMjkwMjY0YWZkZDc5M2I0N2MzNzBhNjllMzk3NTdjZDI3YjhmIGxlZ2FjeS10cnVuaworMjM5NDUgYWJhN2E0ODk1ZTRkYWU0OTFjZWIwNDE4MTYyYzkyY2ZiMTI4ZGJiYSBsZWdhY3ktdHJ1bmsKKzIzOTQ2IDc0MThlMGQ1ZmMwMTBmYTE4NzlkMDY2MDc5NTY4YWFmNTg2YjE2ZjMgbGVnYWN5LXRydW5rCisyMzk0NyBhZTk0YjVmN2RkMzBmNTU0MTAxOWNiMWM4NThiNDkyNWJlM2UyMzQ3IGxlZ2FjeS10cnVuaworMjM5NDggZjYxNDgyNWQzMjZhYzI3OGIzYjc5NmQyMTE0YzAwMzMyYTNmNWEzMCBsZWdhY3ktdHJ1bmsKKzIzOTQ5IDYxZThmMDFkZTgyMTI1ODU2M2U0NDdkOWNiYjEyZTdiYWJjYTQyNmYgbGVnYWN5LXRydW5rCisyMzk1MCBlODljMjVjYTZiMjlmNjA1MDY3NmUxZjZiN2NlY2E1M2I1ODM5ZTBjIGxlZ2FjeS10cnVuaworMjM5NTEgZTNjMjRmYzIwYThkYmMwNmM0NDk0Mjg0OGQwY2VlNjkxZDU2NGI3NyBsZWdhY3ktdHJ1bmsKKzIzOTUyIGEwZjFjMmQyYWM5ZTRhMjMwMzMyMzQ5YzQ3ZDcyNTUwYzUzYzVjNGQgbGVnYWN5LXRydW5rCisyMzk1MyBmMzFiMTJhNDI5NTFjZDc1N2YyMmIyMDEwMjVmNWNjNTNiYWIzNzNlIGxlZ2FjeS10cnVuaworMjM5NTQgNTA1ZGQzNGUwZWViZjlmODI4OTM2YjU5NTJhZjdmZjg1Zjg5YWYyZiBsZWdhY3ktdHJ1bmsKKzIzOTU1IDQzM2FlNDgzODcwMzVmMTk2NzNmMWRjNzFkNTcwZDQ1M2NlNGNkOTYgbGVnYWN5LXRydW5rCisyMzk1NiA5OWFkMmE5ZDIwZTFjMTI3OGYwYWNmYTg2OTYyMDYxYTkyYmExOTZhIGxlZ2FjeS10cnVuaworMjM5NTcgMzExYTJhYmVhOGE0N2FjMzJhMzUzNGIxZTU5ZjNiYzc5YTdjNTQwNyBsZWdhY3ktdHJ1bmsKKzIzOTU4IDM2N2NkOGU1ZGY0Nzk0OTRlN2NlMDc1YmMxZjVhNDU0M2YxMDcyNGUgbGVnYWN5LXRydW5rCisyMzk1OSA5OWVlNzE5MTk3YmE3ZWMwYTQwZDM1NzFmOGRkOWQxOWEwOTE3NjQ0IGxlZ2FjeS10cnVuaworMjM5NjAgYTAzMzJhZTg0OGUyNmZiOTZhYzYwMzc5ZWI2MzFkYjNmYmEyYzBhOSBsZWdhY3ktdHJ1bmsKKzIzOTYxIDg2ZmIxOGZhMzQ2ZjhhOGE2OTc4NzQ0ZjI3NmI1ZDQ4ZTVmYjE3NjYgbGVnYWN5LXRydW5rCisyMzk2MiBjM2UwYmQyMDc3NWNjNDlmNDM0NGI1NmMyYTUyYmE0MTNmY2UyYjQzIGxlZ2FjeS10cnVuaworMjM5NjMgMzgzODBkNWYyN2Q0MGIyY2I0NmRjMTViODA0YmU3NDQzMjg2NWFiMiBsZWdhY3ktdHJ1bmsKKzIzOTY0IDY5MDM0MjBmMGE4MjVhY2NlZWY0OThhYzljOGFjNWI5MDc1ZTMwNDEgbGVnYWN5LXRydW5rCisyMzk2NSBkMDIwNjhkMTYzY2ZjZWRlYzEwNjI3OWVhZDI3YjlmYjBhMzhkYjMwIGxlZ2FjeS10cnVuaworMjM5NjYgYWRmNTY1ZjBmOGFlNjA4NWVlODBjYmJlNjBhN2ZhMGFjOGE4NzBjOSBsZWdhY3ktdHJ1bmsKKzIzOTY3IDM5ODEzNWU0MDBjN2Y4M2I1MmQ5NzZhN2I2NGY3ZjNmOWUxYWI1YjEgbGVnYWN5LXRydW5rCisyMzk2OCA2NDhiYzc0YzQ3YWI3MjYyZTNmODFkZDNhOTQ2MTBhZWNkMjJkZTQyIGxlZ2FjeS10cnVuaworMjM5NjkgYjIyOTIwOGEyYTcyNzM4Yjk4ZWZkZDA5MTI0OTZkYmMyYjZiNThmOSBsZWdhY3ktdHJ1bmsKKzIzOTcwIGZhMGJmNmM3OWUwNDJhMDJhZjMzZDgyOGMwODlhMzQ3MDkyOGEzNDYgbGVnYWN5LXRydW5rCisyMzk3MSA1ZGUzYTU5NDcyNTdiYmIxNDQ2NDhkMTM2M2Y0YTNjMDI2MGJhYTBkIGxlZ2FjeS10cnVuaworMjM5NzIgNWY2ODUwZDFmOWU4NTIzOTIxZGRhMWE0OGI5MDk2NDY2ZGMzNzdlYSBsZWdhY3ktdHJ1bmsKKzIzOTczIDRiM2VmYzc1MDEzOTZmYzIwMWQ2Mzg2NDVkNDg4ZGZlYzdkYmRiOWIgbGVnYWN5LXRydW5rCisyMzk3NCBiM2EwMGQzMTY1YmVlMjMwOGUxMjU5MzUyZWI0YzljZWRiYTdhYjJiIGxlZ2FjeS10cnVuaworMjM5NzUgMjkyNWUyN2EyODFjNTIxYTNiZjFhYTE0MzFiNjNkYzk5YWEzOTg3MSBsZWdhY3ktdHJ1bmsKKzIzOTc2IDc5OGY2MTk5N2MwOGQ1ZDJkMDQxZWRiZmQxNzRiYTUxZTgxZjIyMzAgbGVnYWN5LXRydW5rCisyMzk3NyA0MTMzYWJlZjVhYmJkMWEwZmM5YWQ4MzJlNDUyMTVjMTRlMjU5MmQ2IGxlZ2FjeS10cnVuaworMjM5NzkgMTg0YjhiOWEyNjU0Y2JkZmNmY2Y1N2M0NmI3MzY5MjA2YzcyMjQxNCBsZWdhY3ktdHJ1bmsKKzIzOTgwIGU5MTJiNjgzZWQzZTE1MzZmMGI0YzlmNWU2ZTFkM2I1NmEyMGY1NDQgbGVnYWN5LXRydW5rCisyMzk4MSAzMTA0NTBlNzRmMmY1N2RkZmRiYWIyYWU2OGE5MmJiMzVlNDc3NDY1IGxlZ2FjeS10cnVuaworMjM5ODIgYTQ0Y2MwYzIxY2ZlMzE1NDI1ZTM4MGU2NDZjMDFhZDJkMWUzMzMzNyBsZWdhY3ktdHJ1bmsKKzIzOTgzIDI4OTA3NjliMWU2OTY2MjRmNmY5M2QwYTk4MWRjNDFiYmJjNGRlMzUgbGVnYWN5LXRydW5rCisyMzk4NCBhNmE0YmQyZjA2ZDBmOWZlMjg0NzEwODQ0OTc4ZjQ1NmEzZmJmNGFhIGxlZ2FjeS10cnVuaworMjM5ODUgN2Y0MDg5NTE5OTI2ZTVjNWExNDMzMTcyNDRjYjRhZGJkZjNjMTUyNCBsZWdhY3ktdHJ1bmsKKzIzOTg2IDA5MWY5NjU2ZDc5YjM1OTE4ZjkwNDJjYWI2NzhlYWEyMTgyNTFjYTcgbGVnYWN5LXRydW5rCisyMzk4NyA1ZTZmODE4N2JkNDg5M2YzOTU0NTBiMmYxYzM4NDg1ZWY3ODMwN2M3IGxlZ2FjeS10cnVuaworMjM5ODggZGNmNzY5YzEyZDhiNDEyZmJkYjcxNTc5NTIyOTQ1NDRiZGVjZWI1MCBsZWdhY3ktdHJ1bmsKKzIzOTg5IDg0NzE1ZDUyZDk1NGU5ZDUwNzk0N2I1NjViZDAwMGQwYjkzNGViZjYgbGVnYWN5LXRydW5rCisyMzk5MCBjNjM4NDU5MWQ4NDZjZTZhMWIzZDY2YzcyNGExNzM3ZTM1MjM2NGQ5IGxlZ2FjeS10cnVuaworMjM5OTEgNWUzNDdlNGUwNWJmNWVjYzhiMGRhNDIzZmQ0OTM0ZDVhNjhkY2VlNyBsZWdhY3ktdHJ1bmsKKzIzOTkyIGFhZWZjMmYyMWJhZWYxY2UzOWU4MmQwYjM0OTRmY2FhZDYxZjFmYjIgbGVnYWN5LXRydW5rCisyMzk5MyBhY2I4NTRiODk3YmI2MTU0Zjg0OWEzOTBhNjg0MmVhM2RjYjk3MjQwIGxlZ2FjeS10cnVuaworMjM5OTQgNjc2ZjEwNmE1MDAyM2Q0MTBmMjVhMDAzNjFiN2Q0MTIzOGYxMDJmZiBsZWdhY3ktdHJ1bmsKKzIzOTk1IDZhYzQ1MjQ0YzQxZTBhZTdjZDU3NzBjNTg0NDI1MzNmY2QzYzBiZjkgbGVnYWN5LXRydW5rCisyMzk5NiBmMjI0NjMyZDAyNjAzZjFiNjg0MzZlZjQyNjdiOTQ2NWI0NWRjYjhmIGxlZ2FjeS10cnVuaworMjM5OTcgNzEzMDc1MGE2MjIyMmU0NGZjNGIxZWMxYzQ4NGRlMjQ2NzFhOTljYSBsZWdhY3ktdHJ1bmsKKzIzOTk4IDU4N2I3NDg1NGY4YzA1MDQ5MmJlM2E5ZmVlNjA5MTE4YjJjZDFhMTIgbGVnYWN5LXRydW5rCisyMzk5OSBhYmQ3MWU4OTg0MGY3Nzg0MWYwNTQ4ZjZjMmRhZTlhMThmMjcwNDRmIGxlZ2FjeS10cnVuaworMjQwMDAgY2Q4MzVjYWE1MDZjMDkyYjEwNGExZjI2NmZmNTg2MTY0ZWFiN2UzMiBsZWdhY3ktdHJ1bmsKKzI0MDAxIGNkNjAwMDM5YTEyM2UwZjdiNTU3M2FlYTBiMmVkYWY1ZWM5YTMwZTYgbGVnYWN5LXRydW5rCisyNDAwMiA3M2NhYmU2NjRjMTFlYjZiYTdiYjJiNDIxN2Y0YzcwYzZkNTE1ZjliIGxlZ2FjeS10cnVuaworMjQwMDMgODM1OWMxMTg5ZjczMDI1MDQ5ZGY5MWUwZGQwYzYyZWFiNTVkNjJjYyBsZWdhY3ktdHJ1bmsKKzI0MDA0IGIzYjJmYTc2YTM5MjllY2VmMDZjMWI3OTM4MDFlM2E3ZTI4NjY5OGEgbGVnYWN5LXRydW5rCisyNDAwNSA2MzVmYTE0ZWRhNTA5YTgxZWIzNTQyYzk0MGUwNDlmNTE5MDVjNDMzIGxlZ2FjeS10cnVuaworMjQwMDYgYjA2MjgwNDNlNTM3ZGFkNzg0YTUwMWJmMmY2MjY5MGQ5ZjRkZDg3ZiBsZWdhY3ktdHJ1bmsKKzI0MDA3IGZhYTI3MjZkZWEzNzE1NzgzN2M4YjkyOTYyYjIwNmNjMjEzNjAxOGYgbGVnYWN5LXRydW5rCisyNDAwOCBhNzg4NGU3ZWVjYzliMjU4OTM5OTE3MWM5MTU4N2NiMmViMTFjZGM1IGxlZ2FjeS10cnVuaworMjQwMDkgMDBhNTgxYmRlZGViYWYwMjQyZjUxYzlkYWI3ODgwMWU5NWZmNTQ0OCBsZWdhY3ktdHJ1bmsKKzI0MDEwIGM3YWFjNzhlMjNiNDljMzFiZTE5NDczZGRiOWRjYTQxZjg4MTEzYzMgbGVnYWN5LXRydW5rCisyNDAxMSAzYjg3NzQwZDFiYmM4NWE2Mjg4NDQ1NmRkOWUwNDY4MjcyYmJiOWI2IGxlZ2FjeS10cnVuaworMjQwMTIgYWQ0NWQyMmIxOTVkMTNhODI5ZjUyYTQxNDcyOTMzNDFkYWMzNzZlYSBsZWdhY3ktdHJ1bmsKKzI0MDEzIDNlNDYyNTgxOGY1ZmY1OTY0Y2E4ZTljMGFmOGU5MjJkZmVmYzEwNmMgbGVnYWN5LXRydW5rCisyNDAxNCBkNWY2YjRkNTgzODBlYWE1ZDY0YjdlZDkyYmE3OTAxNWMyOTlmYTJmIGxlZ2FjeS10cnVuaworMjQwMTUgN2RhNDE3OTk5NTExMTMwOGY2NTk3ZmYxM2JiNzc3ZTZhNmVmOTRmMCBsZWdhY3ktdHJ1bmsKKzI0MDE2IDIzZDIzMGVmNDE1YmE1NmEzMmIyM2UyZmY2NzIzNTg4ZDBjY2Q0ZTAgbGVnYWN5LXRydW5rCisyNDAxNyA4MzYwZDY0MzI3MDdjNWI4NzQ0M2UwM2QxMzI1NzNjZTYzOTgzODdkIGxlZ2FjeS10cnVuaworMjQwMTggNDYxN2QzZDc3MGM1OTkwZmJiMzBkMDY4Y2NlMTNlODFlNTMwODNlZiBsZWdhY3ktdHJ1bmsKKzI0MDIwIDlmNjI5NTVkZTRjM2ExZTcyYjBkMjEyNDJkMDg0OWNkMDEyOGQwMWYgbGVnYWN5LXRydW5rCisyNDAyMSAwOGRmZDNjMjJmNDFkY2UzYTE0OGI2YzBhMmI4MjI3ZjVjYjU0YWYwIGxlZ2FjeS10cnVuaworMjQwMjIgNzc1OTI2YmNmMDY5MjVmNzFlYjc4MTg2OGU4ZmU1MGYwYmMxNmRiYSBsZWdhY3ktdHJ1bmsKKzI0MDIzIGM4YmEyZGIxYzNjMjRiY2FmMDFkNzU0OTg3M2Y3YmJlNjZhYWUxOGQgbGVnYWN5LXRydW5rCisyNDAyNCA4NTEwOWE2MDk5YjVlMWYyN2I0MzM3NjZiM2QwMmI2MjljMGMwOWJkIGxlZ2FjeS10cnVuaworMjQwMjUgZjJhZjQyY2Y4MjdhYjdlMzk2MTFkYjZkNzY3NDMzMGFkMjdkNTc1NiBsZWdhY3ktdHJ1bmsKKzI0MDI2IGVjZDY0OTMxNDgyYzlmMmU3NTUxNmM5NzZlYjcxNThmZTQ2MzgxYjAgbGVnYWN5LXRydW5rCisyNDAyNyAyNzIzMzY2NDhkMWZmMWUyY2ExZTFkZjc1N2UxOGNiNDE0ZDcyYTVhIGxlZ2FjeS10cnVuaworMjQwMjggMTdmN2M5YzFkNjZhNTE0YWJkODgyMzJkNzcxOWM0YTE3NTQ4ZmZhZiBsZWdhY3ktdHJ1bmsKKzI0MDI5IDgyOGJmMzE3ODgwYTIwNWU5ZTc0MzIwNTdhYWNjMzdmZGJmNGVlY2MgbGVnYWN5LXRydW5rCisyNDAzMCAwNTBmYzUyYWIzZDQxNTI3MjBhMTZkYThjNjQ5ZjIxZGMwZmQwNmU0IGxlZ2FjeS10cnVuaworMjQwMzEgYTRiZjNjNWNjNDVhMmJhMjNjNDdhODg5OTk0OWFlZTBhMGIxOTE0MiBsZWdhY3ktdHJ1bmsKKzI0MDMyIDViMjM2ZjM3N2EyNTg4NzFmZGU2MDZmMjcwMzU3ZjhkMzVlMTE2ZTIgbGVnYWN5LXRydW5rCisyNDAzMyA2YWVhYjM4MDI5MmVkNDY5OWM4MmZmOWFiMGZjMWU2NjE1OWI0NGIwIGxlZ2FjeS10cnVuaworMjQwMzQgMDgzNDEzNjIyNTk1OTdiYTRmZjNjMTI5ZmZjZjFmODliNWIzNDhmMCBsZWdhY3ktdHJ1bmsKKzI0MDM1IDZiMTRkMjllNTMwODk3MDJmMGIxMzU4YTc5OGY4NWJhZmE5NWE4ZTYgbGVnYWN5LXRydW5rCisyNDAzNiA3ODFhZTE3NmJhYzJjMjUyMDA4ZjRlNTFjZTJlN2E5MzI5OGE3OTQ3IGxlZ2FjeS10cnVuaworMjQwMzcgMzdiOGQ5MmUxMmY1MThkYzcwZmExOGJkY2RjN2U2NGNhZjRiM2FhZiBsZWdhY3ktdHJ1bmsKKzI0MDM4IDNhMDdiZDJiMDM4NmUxZjNiMGZmZTg0NGZiODFjMWU5ODNhMmY1NDQgbGVnYWN5LXRydW5rCisyNDAzOSBhNmFmMDA5MzQ3ZTEzMTI4ODY5YzVlZjVkNDg3MDkyN2M4ZWI5OTAyIGxlZ2FjeS10cnVuaworMjQwNDAgYjNmNDhjNWQ2ZTE2NzQ4MjZiM2EzNTk5NWNmYzM2NDE1NTYyNmU4MyBsZWdhY3ktdHJ1bmsKKzI0MDQxIDdiMDU0NmVlNDc4OWVkZDY1NzA1YTBiZjlhOTQyYzA2MDA4ZGMxNWQgbGVnYWN5LXRydW5rCisyNDA0MiA1MjNlYzcwMjE4ZTQ5MGE2ZThiODJlN2NhMGUyMmJjZDJiN2UyNzc2IGxlZ2FjeS10cnVuaworMjQwNDMgZWJhNjNkZDBjMmY1YTkyZGZlNTA0NmM4OTk1NDVjNjgyYmUwMDczZCBsZWdhY3ktdHJ1bmsKKzI0MDQ0IDEyNDRlZTE4YmFlYzMzZjQ2ZjZhMGRlZGUwOTRlZjI4YTlkOGNkNzQgbGVnYWN5LXRydW5rCisyNDA0NSA3NDQxMmU1OWJmZjgyNjEwMDBiNWY2ODQ1NTRhZjkzZjZhODljOGMyIGxlZ2FjeS10cnVuaworMjQwNDYgNzZhODU3NTJkNDUyNGMyNDQ4MGIxZTczNTdiMDMyZWE5MGVjMDcyMSBsZWdhY3ktdHJ1bmsKKzI0MDQ3IDEwNDNlMTBiZTc4MDA5MTIxMDQxMTIxOTgzMDFhNzQ3ZTNjNjIwYjcgbGVnYWN5LXRydW5rCisyNDA0OCA3NDRhMTkyMjBhM2NiNzZmZTMzMGRmMjJhZTA1YWY3MTUxODkxNjllIGxlZ2FjeS10cnVuaworMjQwNDkgYTZiYmEzMWIzY2Q3NzU4MTQyMWRlMGMxNDEzMTUyNGJjOGY0YTJkMiBsZWdhY3ktdHJ1bmsKKzI0MDUwIDU3YzYxYzYyMjRhMmY0YjYwYzcyNzhlNmEzYWEzNWE1MDdhMTQ4NDUgbGVnYWN5LXRydW5rCisyNDA1MiA0YmI2NzUzZTdkNTNlZTU3ZDZkNTY5NTM1ZTFkZmExZGIyMmFlNTA1IGxlZ2FjeS10cnVuaworMjQwNTMgNjExMjNiODYwYjQ1NTZhNGFhN2Q2Y2VkMzkyOTZhMjgyZjNlZTFhMSBsZWdhY3ktdHJ1bmsKKzI0MDU1IGFiMmUzMTU4NDlhN2I2YzdhYTMxNWJmYzg1MWZjZjI1NTM5MWEwMjcgbGVnYWN5LXRydW5rCisyNDA1NiA2MTIyNmRkYWRjOTc1NzIzNjg0YzUzY2ZkMzcxNDU2YmYxZmZjODEwIGxlZ2FjeS10cnVuaworMjQwNTcgYjFkOTAyOWUwOWQxNGQ1MTc3NThiZDAwN2FjYjAyNjdkNWQ3Mjg1YiBsZWdhY3ktdHJ1bmsKKzI0MDU4IGEyYjExZDAwYjY5NzQ2NmMyNzZiOTAzZTg5ZDk5ZTgwMjNhNTMwYTggbGVnYWN5LXRydW5rCisyNDA1OSBhOTAwMmZiMGE3ZDc5ZDNiNGNkY2MxMzE0YTEzYTY2ZTM5YzEwYjNjIGxlZ2FjeS10cnVuaworMjQwNjAgNGRmNjUyN2I3ODgyMjA3ODg4OGY3MGI3NTQxMjU4N2RkMjU4NjRjZCBsZWdhY3ktdHJ1bmsKKzI0MDYxIGZlYjgwNTA5ZmIyMTUwNjE4MzZkYThjZTJjNmVhZDUwMDg1MDI2ZjUgbGVnYWN5LXRydW5rCisyNDA2MiAyNWZlZDFkMDk2MDUzNWUzMTA4NTU1ZWE3ZDk3OTEzMWNjMWJjN2RiIGxlZ2FjeS10cnVuaworMjQwNjMgNDBkZTg0YmM2MmFkMDIxNDhmMDJhYzI2MTdjMTgyNTJjMzlkMGJmNSBsZWdhY3ktdHJ1bmsKKzI0MDY0IDk2MWIyNGY4ZTFkODI5OGY3ZjM1ZDg1YTk2ZTY2N2E0Nzc1MzhjZDIgbGVnYWN5LXRydW5rCisyNDA2NSBjOTFmMTdhNGRjN2JmMjJlOTdhYjAyYjhiYzZkZTE2NTUxMjY2ZTVlIGxlZ2FjeS10cnVuaworMjQwNjYgMmY3YjY5MjZlMzhkZDEyNTU2NDhlOTY5Yjg2N2IwOTIxYWIyN2FkZSBsZWdhY3ktdHJ1bmsKKzI0MDY3IGUwYWYyODJmNWRmYWM0YWI5YzNjNWJmNmVhYjVkNmQ1Y2MyN2M3NjcgbGVnYWN5LXRydW5rCisyNDA2OSA3OWZjYmMzMWEwM2VjOWRlNDM5NWVhNDAzYTQ0YjdiNjE5OWQ3YTU4IGxlZ2FjeS10cnVuaworMjQwNzAgODNhM2UyMWE3Y2MzZjQ3YWIzYjNkYzZjYjFjYWY1N2Y2MmM5ZmNiYiBsZWdhY3ktdHJ1bmsKKzI0MDcxIDczYWJlMGFmN2UwNzBlYWMxNzg3Njg3MTJiZDQxYTQ4Zjk5ZGFhNzcgbGVnYWN5LXRydW5rCisyNDA3MiA5YzIzYWJhYjk2MmRhNTBhZjA2MjE3ZDUxZTNjYjM4ZjlmNGY5ODJiIGxlZ2FjeS10cnVuaworMjQwNzMgZmE5N2M5OTcyZDFiMzhlYjc5MWM0MzUyYzBmZWVhZDYwMGYyM2FkZiBsZWdhY3ktdHJ1bmsKKzI0MDc0IDYxMGE2NDRmZDRjM2FiZjQyYWUyZDNmYzUzMGM5MzcxNTk0NDMyMjQgcmVsZWFzZTIxLW1haW50CisyNDA3NSBlZjhiZDhiZTk4YmViMGI1YTI0MTNkYTYwNWRkZGMxOTcxOTAzNDU2IHJlbGVhc2UyMS1tYWludAorMjQwNzYgZWU3MGZhYzk1MzViNDUwOWI1N2I3ZjMyOWNmMDQzYmFlYzgzNDI2ZCByZWxlYXNlMjEtbWFpbnQKKzI0MDc3IDc1NmI5ZWRmMjU0ZmMyMTNkNGYyMzFhMDllY2Y4YTkzOWNmZGY3ZGEgcmVsZWFzZTIxLW1haW50CisyNDA3OCA1MWVhY2FkYzgxNWEyOTYwNWZlOGQ4MzQzMmU5M2IwMjMzZTk1ODA1IHJlbGVhc2UyMS1tYWludAorMjQwNzkgMTA0MjIzYjMyMjZhNDBhYjNiNzFkNGY0ZWIxNDA4NTdhNGJiMDI4ZiByZWxlYXNlMjEtbWFpbnQKKzI0MDgwIDA2Mjk2NjZlNjVjNTNmOGQ0Y2I0NDgzODFkMTk5MGU5ODMxZmQ1NDIgcmVsZWFzZTIxLW1haW50CisyNDA4MSAwNzZlNWU0OWUyN2QzOTQ2MjdhNmUxYWYwZjQwMTNkMDZhN2Y3MDRjIHJlbGVhc2UyMS1tYWludAorMjQwODIgNDJmMjJlYTZhMGYxMzYxMzczZWViYWQ2NTM5MWNhNTA2ZmE2MWI5YSBsZWdhY3ktdHJ1bmsKKzI0MDgzIDAyNmJmMGFiNjhhNTE1YjRkNzlhMzlmNzc5M2Y0MDBmYzdjZmIzYmYgcmVsZWFzZTIxLW1haW50CisyNDA4NCA0NjRkMjEzZGE4ODhjN2YyZjExNjJjMjFlZTk2NjI3NTI3OWUzODliIHJlbGVhc2UyMS1tYWludAorMjQwODUgODIxZTE0MmUxOWZhNGNkODFiMGEzZWY1NGQzZjRhNWFlNmE0ZjA5OSByZWxlYXNlMjEtbWFpbnQKKzI0MDg2IDZkMzhmYmEwNWYzNTc0ZTgyNzAxYzc0Y2ZhZjY0OGE1ZmVkYjIxYzMgbGVnYWN5LXRydW5rCisyNDA4NyA4ZDRiNjY0MmE2MDRhMDAxYjdjMmM1OWZkZTc0NjdmNGMzZGRlNzU4IHJlbGVhc2UyMS1tYWludAorMjQwODggMTk2NTExNmQxYWVjYTk0NGIxZWI1YjVmMTAyNjE0YzU2ZGQ4NzY0MCByZWxlYXNlMjEtbWFpbnQKKzI0MDg5IGY0ZWZmMzI0N2M2NmFjOWY4MDk4NDBmOGUyNzhkNjU3MTdkMmFkMmIgcmVsZWFzZTIxLW1haW50CisyNDA5MCBlZjFlOWM4YWEzZGRmZGI2ODA0OTE2MjZiNTEzOTk3M2ZhMzlmN2NlIHJlbGVhc2UyMS1tYWludAorMjQwOTEgNTdhYjY1YzJmMTcwNzkxZDZlMGFjNDFiZDlmODU3ZTZlMDA5MTg2YiBsZWdhY3ktdHJ1bmsKKzI0MDkyIDNlMDk4YTk2MzU2MWQ3NzAzNzkyMDg2OWRkZjE2ZTRkNDM2ZDE1NjMgcmVsZWFzZTIxLW1haW50CisyNDA5MyAzYTc0OGNhYTAzYjkxYTE1MGM1YWZiMDgyMWFjYzE3NDhlMzJmMjg5IHJlbGVhc2UyMS1tYWludAorMjQwOTQgOWFkZWQ2MjM1ZDg5MGU5MGEyMzczOGRmZDlkODViMDI5NTg3OWFkZCBsZWdhY3ktdHJ1bmsKKzI0MDk1IDI2MWE3MGMwYWE3OTJjM2I2ODZlNzQ2YmUyMDlkNjc0NjUxMjNmOGMgbGVnYWN5LXRydW5rCisyNDA5NiA1MzQ2YjY5MDZkMWFmODVlOTFhM2Y3MjAzZGJjMzg5YjljZTk3YTg4IGxlZ2FjeS10cnVuaworMjQwOTcgY2E0MThhNWZhNDcxY2I4ZDI1OTczZWFjOWJiMDgzYTRkZTE3YTBkNSBsZWdhY3ktdHJ1bmsKKzI0MDk4IDY1NmMzYzg0ZGViZWY0ZWY3YjljNDc3ZDA1ODllMjk0NWE1MDE5M2QgcmVsZWFzZTIxLW1haW50CisyNDA5OSBjN2FhMzMyYTJmZmFmYjczNDA0ZDU3YzRkMjJlMjc1ZTE4N2FlMDBjIGxlZ2FjeS10cnVuaworMjQxMDAgYjNkOGQyNjE1YjIzYmY0ZjBkYjNiMDhmN2E4NGQyOGE0Mzg1NGVjNCBsZWdhY3ktdHJ1bmsKKzI0MTAxIGRlZjJhMTE5ZDVjZGEzMWE0NmJlYmI2ZWRjNWZiNjVjYzVjYTI0ZWUgbGVnYWN5LXRydW5rCisyNDEwMiAzNzUxMzY2YzJmMzkzMWNhOWRiMjgxMTNkNjdlZDU1YWVmZWU3ZDcxIGxlZ2FjeS10cnVuaworMjQxMDMgOTUyMDExNTMyNTFjYmIwYmY5MzQ1ZmM0ZmI3OWQ3N2ZmZWM1MDU4MSBsZWdhY3ktdHJ1bmsKKzI0MTA0IDZmMjU5ZjdiYmVkODBlNGE1Y2E5ZjMyZDYyZjBhMGJlZGFhMTNjN2IgbGVnYWN5LXRydW5rCisyNDEwNSAxNGRjNjkzYWY1MzIxOTU2OTlhODAzNTgyNGYxOWFhMTNkZjZjMjRlIGxlZ2FjeS10cnVuaworMjQxMDYgNWYyNGIyMGUxMDNkMjMyZDk4NDc5NWM0YmVjMTQzNzU5MGRlNmU4MSBsZWdhY3ktdHJ1bmsKKzI0MTA3IGRhYjUyZGJkMTJhYTE0NDRiZTk3NzM4ZGI4NGU5MjE5ZWFiMzIwZjIgbGVnYWN5LXRydW5rCisyNDEwOCBkMTM5ZWM0OWQyMDRkNzA3ODlmODQyZmU3MWQ3MjEzZWY4ZGNjZTU5IGxlZ2FjeS10cnVuaworMjQxMDkgODYwNDcyODc3ZGRhMTUxMTFiODExYjRkYTQzMGRjOThjYjY4NjgyMSBsZWdhY3ktdHJ1bmsKKzI0MTEwIGIwYzMxMGNkYjk4NjlhZjY5M2UwYmIyZmI2N2NiNjczOWIzZGMwZWYgbGVnYWN5LXRydW5rCisyNDExMSAzZmJkMjUzZGVhNWQ0YTljNmY4NTNmMmI0YmRhNDM3OTg4MzhlMTYwIGxlZ2FjeS10cnVuaworMjQxMTIgYzFlYmMwMjg1YTVlN2QxYjE5YzgwNzkwODBiNmJiYzczNjQyYmEzMyBsZWdhY3ktdHJ1bmsKKzI0MTEzIDk4MWU1NDY4YzliNTMxZmVkNDlkMDAyMzM1YmI1NmMyOTllNDUwODggbGVnYWN5LXRydW5rCisyNDExNCBmMTg3ZDI0MDU2ZjQ4ZDg1NmZhYzQ3YTQyOThjMmE2MjFjYTUwZDllIHJlbGVhc2UyMS1tYWludAorMjQxMTUgZjZjNzQ2MGNjYWY4OTlmMTIzODhmZjhkNDhiMDI4ZWRkNjYyMGE3ZiBsZWdhY3ktdHJ1bmsKKzI0MTE2IDM4MDNhZjlkODc5NjNmOGMyOTdiNDcyNDZmNjFmYjBhZjg1MDFmOTYgbGVnYWN5LXRydW5rCisyNDExNyBlYWNmODFkZjZjNDI3NTZkZmJjMWQ3MzYyOTc5MWU0OGQyMDVhYjdjIGxlZ2FjeS10cnVuaworMjQxMTggOTE2ZjE5MWZjZmY0M2YwNWI2NDk1ZDQwNDU4Y2VkY2JiM2ZjZGY4YyBsZWdhY3ktdHJ1bmsKKzI0MTE5IDhkMTRmNTM0YTVjMjc2ZjY5YzVmYjkwM2E1ZDk2ZTI0MzM0ZDEwNmIgbGVnYWN5LXRydW5rCisyNDEyMCA2OTkwZmU5YzQwZjZhN2EyOGIwZTkwYTI0OTkxM2MyY2ZjMDYzMDAxIGxlZ2FjeS10cnVuaworMjQxMjEgNGFkZTc2YTZiMjQ1YmE3OGRiZWU4NThiZTkwMzdmM2IyYTVkYTIwOCBsZWdhY3ktdHJ1bmsKKzI0MTIyIGUxMGQ5MDcwZTEwNzMyYzExZWMzYWI1M2M0ZWZhZGM0NzE2OWYzNTIgbGVnYWN5LXRydW5rCisyNDEyMyBlYzYzMmE0MWVlMzVkOWI2NDYxMzRkY2FhMThhNTk1MmViODkzMGNhIGxlZ2FjeS10cnVuaworMjQxMjQgZDlhOWQ5MjYyNGRiOTc0MjhhMzRjMmFlZGJkZGU0ZDBmOTU2Zjk3YSBsZWdhY3ktdHJ1bmsKKzI0MTI1IDQwNGFlZWNhNTFlOWM0NTFhMTBiY2MzYTFhZmZiMDU0NDcwMDkyNTggbGVnYWN5LXRydW5rCisyNDEyNiAyOTYyZjAxOTI0Yzk5N2EzNWNmOTJlZWY0Y2FlNjQwZGQ2ZDBkZGU5IGxlZ2FjeS10cnVuaworMjQxMjcgZjM0YThkZjhiYmE0NjAwODhiMWVlOTM0MWM0MzVhOGU3NTQ5OGZmNyBsZWdhY3ktdHJ1bmsKKzI0MTI4IDA1M2RiZDliNThkZjAzYzAwMjMxOTdkODMwOTViYmYwODZlYmM1MWYgbGVnYWN5LXRydW5rCisyNDEyOSA3N2JiMmFlMDY3YzI1OGNkNGE3ZDY2Y2FhOTNkMWEyNzFjZDczYmJmIGxlZ2FjeS10cnVuaworMjQxMzAgMDQ0NGY1NzZjOTJiMTllODFjMjQ1NWRjNjIwNWIxMDQzYzc1NDY4NCBsZWdhY3ktdHJ1bmsKKzI0MTMxIDYzOThkMTA1NWZjZmI5ZGUyY2RkODY1YzhhNzQyMDlhODJlMGM2OTUgbGVnYWN5LXRydW5rCisyNDEzMiA4Y2YxZDkyNjY5MTEzMjhlODNkNmU0ODY5OTJkYWRjZTAwZjk2NzFmIGxlZ2FjeS10cnVuaworMjQxMzMgZDFiM2NhODlkNzhiNDlkYmRjZmNiNWIwOTJkZThlM2YyZjQ5OTdlMyBsZWdhY3ktdHJ1bmsKKzI0MTM0IDI0MTA1ZTk4OWYxNzhmMmY2MDhlNTFkMWRmMGE3ZGJmOTkwMmYyZDQgbGVnYWN5LXRydW5rCisyNDEzNSAxNWM5MjRhMTFhZWNjNGRlNGE2NzhkOTQzOTg3MWNlODRlODA4MGM3IGxlZ2FjeS10cnVuaworMjQxMzYgMGNhZWE1ZmVmYTVjMWM3ZGRlNjhiMTcyNTk4M2FlYWZjNDc4ZjcxMCBsZWdhY3ktdHJ1bmsKKzI0MTM3IDVhNDdiNThhNDRiYjRlNGFiMTNjMWE1NWI2MzgzOTcyZDllYmQ2NTAgbGVnYWN5LXRydW5rCisyNDEzOCBkOWI5YjViNDgxNWI2MjFkY2YzMmIwYzQ2NmE5M2I5YThlZGZjNzhiIGxlZ2FjeS10cnVuaworMjQxMzkgZDZmZjFkYWFlMzk4MTc2NDZlNzhhODRiNDA3Y2U5ODE2ODE0ZTE1NyBsZWdhY3ktdHJ1bmsKKzI0MTQwIDg5NTczNDFmOThmODQ3ZDZmNGQ2M2RlMGQ0NjA3ZTZmNWRlZThhNWEgbGVnYWN5LXRydW5rCisyNDE0MSBmNTQ4MjhlYjhlMDc2ODlhMWY1ZGQ1OTYwYjAxMGY5NzgzZTgxYTg4IGxlZ2FjeS10cnVuaworMjQxNDIgZWJiZGMzOGViMTFjOGE4YmY5ZjE2NWU5NTY4ZWVhMDFjOWI3Yzg2ZCBsZWdhY3ktdHJ1bmsKKzI0MTQzIDQwYTg4OTg5ZDZjYmE0NGU4NTNhZTJlYTA5NTA4NjRhYWMyNTc0NzMgbGVnYWN5LXRydW5rCisyNDE0NCAyZDllNDFhNzJhNjhiMzkyNGE1ZWE3Nzk4NmNjOWIxZTBmZTEwZDc1IGxlZ2FjeS10cnVuaworMjQxNDUgN2JiMzFmYjQ4M2JjODY3YjQ0NzkyYTM5NTk4YzU4NjkzMzI4ODgwYiBsZWdhY3ktdHJ1bmsKKzI0MTQ2IGE4YTY2MTIwYmFkZWRiYWRiZjhiYzE4YjkzNTk2MmZlN2U3YWUyZmYgbGVnYWN5LXRydW5rCisyNDE0NyBmNTc2ZmZkNTc5NjZiNTdkYWJkNjVkNjUyYjcxMjM5YTYyMjliNTY1IGxlZ2FjeS10cnVuaworMjQxNDggN2U4Y2RlNDY0ZGI0MGU5OTI4ZmM4Y2I0MzI1YjY0MGNkYmU2NTdiMyBsZWdhY3ktdHJ1bmsKKzI0MTQ5IDdlMjQ3ZjA4MzdlMjY5NTQ0ZDJiYTg1ODZmODU1NGNkYTZmNjZiN2EgbGVnYWN5LXRydW5rCisyNDE1MCA4MTFhY2UzYzQwZDAxYzJhZWViMGU0M2JlOGY2YjNlYmIxMTkwZmM2IGxlZ2FjeS10cnVuaworMjQxNTEgMTc5Y2QzNzBiNjIxZmEyNGZjMzZjODNjZjI2N2U0N2Q5ZDJiYjgyYyBsZWdhY3ktdHJ1bmsKKzI0MTUyIDI3ODc0Yzg2MDI2ODM3MzExOTE4ZGM2NDFjYzRjYjUwMmRiODRjOTUgbGVnYWN5LXRydW5rCisyNDE1MyBkNTRlMjk0NDg0YjJiZmRiM2IyNzFhMDRjOGIwODYxY2YyM2NmMTAxIGxlZ2FjeS10cnVuaworMjQxNTQgNzMyZWEyMmViNTE4MmZkMzBhMGViMjdmM2MwOGRmZGI2MTZkNTdiZCBsZWdhY3ktdHJ1bmsKKzI0MTU1IDhhNzJlZjZiODExOGQ3YzVhYzc3YTQxZThlNTY5MTE5NjUwMmI3MGUgbGVnYWN5LXRydW5rCisyNDE1NiBlZWY5YmQ4N2ZjYzA3OGQ4ODk2MTFkZjI1OWI3OGUwZjk2MzA5MDgyIGxlZ2FjeS10cnVuaworMjQxNTcgMTk4MTdhNGZhMmI2Y2ZiYmI1NTBhZjdkZGEwODZhMGE3ZjcwZDE5NyBsZWdhY3ktdHJ1bmsKKzI0MTU4IDg5ZDE3MWY2YmM3ZDYzMDU4MjU3MDQ4NzE4NmJkNTE0OTQwMzM3OTkgbGVnYWN5LXRydW5rCisyNDE1OSA2ZWUxOWMxOWIyYzM3M2E4MzYzYjdjNWYwZjBjYTE0MDdlYjg4YzE2IGxlZ2FjeS10cnVuaworMjQxNjAgNWM0MzViNWI1OWRmOTBlZjE1MmZjYjk5Yzc2NDM0YzBlNzY1Zjk5ZSBsZWdhY3ktdHJ1bmsKKzI0MTYxIGE2MGMxZThiMGJiYmViYThmMDgyNWYwOGQxYTY5ZmU5NTFhZGNhZmQgbGVnYWN5LXRydW5rCisyNDE2MiA3ZjU2MWZlOWVkZmMyMjgzYzQ5MmYyYTliODVmNzdhNTY4MGExNmFhIGxlZ2FjeS10cnVuaworMjQxNjMgMGMxNzUxNWIwNWRiOGI3YTJlNDZjZjZhYjIxNzE1YTljNjcyZGVhOSBsZWdhY3ktdHJ1bmsKKzI0MTY0IDJjZDJhZTRkZTMwZDkyMWFiMmY0ZjRjMjQ0ZWM1ZmJhNDVmYTY3MGUgbGVnYWN5LXRydW5rCisyNDE2NSA2NDBmMDI4NGUzMGFiMjk0Y2NhYzU4MzUyNDY4MmJhNzRhODM3ZmNmIGxlZ2FjeS10cnVuaworMjQxNjYgZTIzMTQwZjZmYjkwMzk2ZTMzNDc2YTkyM2E4NDlkMDYxMTNkYjFjZSBsZWdhY3ktdHJ1bmsKKzI0MTY3IDQxZDJkMDBhMzFmMTVkOTE1OGRlNTZkZWNjZGYxYmM0OGRhMDAzY2QgbGVnYWN5LXRydW5rCisyNDE2OCBmNDY3OWY2YTk1OGY5NTRlOTZjZGZkZjk1NjA0MGZjYjg4NTc0NDkwIGxlZ2FjeS10cnVuaworMjQxNjkgZGU0ZjZiMTRkMzgwYWNkMTM1ZmQxN2YyYjM4OTM3NjBmYWZjYTk2YSBsZWdhY3ktdHJ1bmsKKzI0MTcwIDViNjFhMmZmNjk2ZDBmNWE4NjRhNDY0OGUyMmRmN2FhN2EzMDJlZmEgbGVnYWN5LXRydW5rCisyNDE3MSBiNWZlOWE5NDE0ZmNhNjZiOTZmNTcyM2JmNzliODBiNjMwNDk2ZWU3IGxlZ2FjeS10cnVuaworMjQxNzIgYWYzNjczODEyZTMzNjEyYTFhYmJmNWY4ODRjMWNmZDBhYjRhOGFhNiBsZWdhY3ktdHJ1bmsKKzI0MTczIGUxODRiYmQ3MTY3YzNmMDQ3ZjliZDI0MWNmMTA0YjNkOGJjZDI5YjEgbGVnYWN5LXRydW5rCisyNDE3NCBjM2QzZGM4Mjc2NGM5ZjRhMTllMTExMWJjZjM1NDdiYTY5Y2E5MThkIGxlZ2FjeS10cnVuaworMjQxNzUgODcyMmIwYWJlYWM2Mjc4ZWZmYzhlNzYxZjk2N2M3YzI5YmY0MWUzZCBsZWdhY3ktdHJ1bmsKKzI0MTc2IDBiNjMzMmMyYWJhMDFjYWNlNjc2YzQzNmU1YjE5ZTg4NzdhZDA1MDggbGVnYWN5LXRydW5rCisyNDE3NyAzNTg2NDg4NzNhZGVhMmRiZTBiZDZmOTFjMjBhNDc3ZTAzNmE3YTdjIGxlZ2FjeS10cnVuaworMjQxNzggZDNmM2QyMWFjMDRiYzkzNjMyOGQ5MDc2MDgwY2VhNTY5Y2M3Y2QwZiBsZWdhY3ktdHJ1bmsKKzI0MTc5IGJmY2MyZWQ5Y2FiYTI3ZWQ0MDFmMzAzYzVmOWI1Yzg2YmU5N2ZjY2EgbGVnYWN5LXRydW5rCisyNDE4MCBmMmM3ODhhZGJkYmJhZjNiNDU4MTRmMDgyMmFhNWU3NDFhMjZhOWY2IGxlZ2FjeS10cnVuaworMjQxODEgYjBhNmRiYzkwMDQ3MDYzOTg3NGNmMmQ4NGY2MjA4ZGZiNjIwNWYzYyBsZWdhY3ktdHJ1bmsKKzI0MTgyIDYwMjdmZGYxZWJkYTNhYzA5OWFlZTUzZWQ0MDUxMDRjNTQ5YTMxZDkgbGVnYWN5LXRydW5rCisyNDE4MyAzMTZmZmZkODBiMTYxYzhkMjNmNDkxYTMxNzRjYjM4YTdmYWRhOTFlIGxlZ2FjeS10cnVuaworMjQxODQgODBiYWEyN2JmMGVjMzE2NTI3OWY0NTgxNjI1MDY4OTQxZDQ0NDViMCBsZWdhY3ktdHJ1bmsKKzI0MTg1IDY2OWVkZGY0NzBiYWRkNmU3Nzg3M2IyY2NlNjVmMzMxN2FhZTYwYWQgbGVnYWN5LXRydW5rCisyNDE4NiA4MzQ2MjU1Y2NhN2M3YTkxMmY4ZGZmNjk0MGQ1NGQ1ZDNkNGNmMWNkIGxlZ2FjeS10cnVuaworMjQxODcgNTVhMDYwZjQxNzNmNzIwNjZkNjljODA0NDc5YmQyMTA5MjBlNzRkNyBsZWdhY3ktdHJ1bmsKKzI0MTg4IDA2ZDk1YjY4NzdjNDVhYWY5OTBkY2M5YjgwM2RmYTI2NmE2NDU1ODkgbGVnYWN5LXRydW5rCisyNDE4OSBkODhkZDVjMmIyODJiOTUwNjE0NWZhNmU1NmU1MzAyNDU0ZDUzYjZiIGxlZ2FjeS10cnVuaworMjQxOTAgOTMyNTNjNjVkODYzMTE1Y2VmNTU1MDBmYjNhNDkyOWYyZjVkNTMxZCBsZWdhY3ktdHJ1bmsKKzI0MTkxIDIzYTIwOTQ4NGYwMjhlNjYxZTg0ZTM4MjkxNjhjOTg3ODYxMzdhZDUgbGVnYWN5LXRydW5rCisyNDE5MiBiOTg1MGM0NDc1NmIzYzc4YzBiOWFlZWQ1N2U1ZjNjNGNhNzE5OGZhIGxlZ2FjeS10cnVuaworMjQxOTMgMjAwMTQ3MTY1NTZiNmJiYmFhNjgyMzE4YzdlNDI5MzE0NjhiNjY1OCBsZWdhY3ktdHJ1bmsKKzI0MTk0IDdiNTg2NDk0N2JhZjZjYzkzNDg5NTM2NDFhZWM3YzU1MDEyY2IzMDggbGVnYWN5LXRydW5rCisyNDE5NSBiMjFiNDIzMzBlNDAyMTk4OThiNzcxNDRiMTgzZGIzOTU5MTAyYmZhIGxlZ2FjeS10cnVuaworMjQxOTYgOTA4NzFmYTQzZjRlMGFlMDExNDdiNDE3ZTk4NjJhYTAyYTRjZmYxNCBsZWdhY3ktdHJ1bmsKKzI0MTk3IDllODg4NWJiZGJjOTUzMzFiYzRkZDg3MGYxMjYwNzA3NjI1NmYwYTEgbGVnYWN5LXRydW5rCisyNDE5OCA3YTk5MWQwMTJjZDYzMWNhMTIwNDAxZjk5YmJjYjM1NTAyOWFmNjc4IGxlZ2FjeS10cnVuaworMjQxOTkgOThkYmIwNzljNWQ0OGMxYzljN2M5YThkNDIzZjQ3NDVhODRkNTUxNSBsZWdhY3ktdHJ1bmsKKzI0MjAwIDIxZmE3NTc5MDgyMjIzYzc2NTE0YjI5ZmEwMmRlMmJjYzBlNjdlMzYgbGVnYWN5LXRydW5rCisyNDIwMSBlZTE0MzdmNWRlMDMzMjg4OWQ1ZTgzNGVlN2Y0MDVmMGU4NjQxNWE2IGxlZ2FjeS10cnVuaworMjQyMDIgN2NlZGJmYWM3NDZiOTc3M2QyNDk5ZDU3NDdiYTI3M2Y1ZjE5MWQ2MyBsZWdhY3ktdHJ1bmsKKzI0MjAzIDVjMDJkMjE1YTM4ZGI5MDI2ODQxY2FlMTUzMDA5ZWM5NDIzN2VhZmYgbGVnYWN5LXRydW5rCisyNDIwNCAyYjVkMzMyOWQ3ZTJhNGJlOTNjOTIyN2U2NjdlYzRmNDkwYjkzYzhhIGxlZ2FjeS10cnVuaworMjQyMDUgOWFlZDc0NTI4NjYxZjcyNTM3NmFjNDAyNjNkMGJiZjMwNzQ5ZTI5NSBsZWdhY3ktdHJ1bmsKKzI0MjA2IGZhN2UwZDAwYzgyOGU0NWU0NmU5YTc1OTgwZWNjMTA1M2I2ZGYxODUgbGVnYWN5LXRydW5rCisyNDIwNyBjZDYwNmE1ODQ5MDNlNDgxNWVmYmRiNTA1MjkzMWQ3ZTI4ZWIwNjQ3IGxlZ2FjeS10cnVuaworMjQyMDggMTk3NTA1ZTY3NTJhMjU0ZGE4YjU0MzAwZjVmYzlmYmUzZTEyYTg0OCBsZWdhY3ktdHJ1bmsKKzI0MjA5IGVjY2U1ZDdkYTYwN2RlNGFmMjkzY2U0ZTM5NWYxMjE2YzBlOWZlMmIgbGVnYWN5LXRydW5rCisyNDIxMCBiYTk0NTVmYzRjOGIwZTI1YjJkYTY0OTUzMzY4ZDgyNjgwMzE5MmZhIGxlZ2FjeS10cnVuaworMjQyMTEgMGI2NDUyMGMyMDBjODhjN2Q0ZTQ1YzAzOTkwZGQ2NmU1Zjg3YThjYiBsZWdhY3ktdHJ1bmsKKzI0MjEyIGUwNTNlNDRmOTY2NmZmOGRhNDY3ZDk5NDM5ZDJjZTE0OWM1OTI3ZjggbGVnYWN5LXRydW5rCisyNDIxMyAxM2ExOGNiZmZkOWM3MGJjYmRjMWQyMDNkMDFmMWJlMTM2N2UwYjg0IGxlZ2FjeS10cnVuaworMjQyMTQgNTQwZTUzMjVmYzZiMDhkYjIyMDQzMTQ1ZTJjNmFiMGU4YzYxZjI1OSBsZWdhY3ktdHJ1bmsKKzI0MjE1IDEzZGY4YjZjMmI4MGM3NTI4MTYyMmRiY2MwMzMzZjY5ZjExNDk5MWQgbGVnYWN5LXRydW5rCisyNDIxNiA0NWM5NTJkMmE2MTEzNTIzM2YyMTc0ZGIwYzg2ZjMzZDJmOTRiYjQwIGxlZ2FjeS10cnVuaworMjQyMTcgNWU3MzVmMTk3Y2E2N2RiZjg2Yzc4Mzk1NzA2M2M1NTI1MzJjMzQ3OSBsZWdhY3ktdHJ1bmsKKzI0MjE4IGQzZGQwYzJhMTc3MWQ4NWZlZmFiNmQ5MmUzOTFlNjc4MTM5MGRkYmIgbGVnYWN5LXRydW5rCisyNDIxOSBlNGQzODBmNWYyOTc2NjQxYjZiNjJmNDg2NjhlMDYzM2U0NjFmODBhIGxlZ2FjeS10cnVuaworMjQyMjAgYzNiMzNlYWQzNTQ2ZWY0MWI5NzQxZmM3ZjMzYjRlYjZlM2Q4MDllMCBsZWdhY3ktdHJ1bmsKKzI0MjIxIDNjNWQwZWVhMWFlMmIyMjhjYTdhOGM4Y2Y2OWQxNDM3NGQ0ZTIxMTcgbGVnYWN5LXRydW5rCisyNDIyMiBlZjEyYzlkZGVmYTcwNTYwM2I5MDM0ZTVhNjczNjI3Yzc3ZDcyYjFlIGxlZ2FjeS10cnVuaworMjQyMjMgYzU1NWYxZTdjNGJlNGQ5M2QzOTg2YTI5ZDI3YzczZTEyODE0ZTQwNyBsZWdhY3ktdHJ1bmsKKzI0MjI0IDliZmMzMWNhODBmMzQyZmEyNDY3ZWExNmEzZDY2OTI2NTVjM2Q1YTQgbGVnYWN5LXRydW5rCisyNDIyNSBkMjdjZThmZTQzZjgzOTkxZjMxNDcyZTRlNzMzZThiZTkzYjM3ZTkwIGxlZ2FjeS10cnVuaworMjQyMjYgYzNiMDgzMTk5NTljNGNhMDlkMmQzNTBjNTk4Y2I5OWUzNjViZjQxOCBsZWdhY3ktdHJ1bmsKKzI0MjI3IDBkMTc2Nzg0NGM0YjcwN2EyNGIwYWY4ZmYxNDFkOGQyMGJkMTY1ZTUgbGVnYWN5LXRydW5rCisyNDIyOCA3NzFiMDI5YmRiOGExODM2Y2NmMGU1YzAyYmY4YjRlOGM0OGJiNDIwIGxlZ2FjeS10cnVuaworMjQyMjkgOWVkZTRkNmNjOWRlOGQ1ZWRmMjAwOWY4NTJhY2VmMTQxMzdjMzY4YyBsZWdhY3ktdHJ1bmsKKzI0MjMwIGMzYjNlMmU0MDAzNWVhMGU3ZTI5ZmFlN2IzZDViMTAyMmY5MzBmZTUgbGVnYWN5LXRydW5rCisyNDIzMSA2MTVhNGY1NjAyNjg1MTA2ODczMmMxNjQxN2VmZjhhMzdhMzQzYTcxIGxlZ2FjeS10cnVuaworMjQyMzIgZjc5Y2ZkMDU0ZjIxYjgxYzllMjM3ZTVlZDA1YmI5ZjI2NDM1NzQ3MiBsZWdhY3ktdHJ1bmsKKzI0MjMzIGNhOGJlYzRiMzM4Mzc0MmNmM2FiZTM4YjExMzc4ZmE1NDdlOTIxZTQgbGVnYWN5LXRydW5rCisyNDIzNCBhMTNkN2NkMGVmN2YyNzUxMWQxNGNmNmIzMjMyOGUxNGQ1MGFjMTk2IGxlZ2FjeS10cnVuaworMjQyMzUgZGE1ZmJjMWViMWQwNWZmOTFjNjE2NGEyNDM0OWQ0NjJhMmE0MTQ2YSBsZWdhY3ktdHJ1bmsKKzI0MjM2IDNkNTIyY2JiN2E4MWYxOTY1YjI3N2I3NTQ4ZTM1YzZhZTUxMGNlZWMgbGVnYWN5LXRydW5rCisyNDIzNyAzMDBiNjhkNjNiOWY0YzI1YmI1YjA2MjNhNzIzNTVjNjg4ZDhiNzliIGxlZ2FjeS10cnVuaworMjQyMzggYTNjNTdlNTliNWE4MTNiZmRmYjRjYTcxNzE1MzVjZjZkZWEzMjk5YiBsZWdhY3ktdHJ1bmsKKzI0MjM5IDNlOWQ2ZTlmYmU1OGY2YTYzNmRjZTk0NzA2NmM5MjAyNTExODRmYWUgbGVnYWN5LXRydW5rCisyNDI0MCA5Y2E3ZTQ2ZmFhMjRiYzI5ODRhOGRmZGRkMTUxNjZjNjg2OGQ3Mjg2IGxlZ2FjeS10cnVuaworMjQyNDEgNTU0NTgxOGY1ODFhODJmNmQ2MzNiMWM2ZTdkOWVjMmQzNjFlODM3MSBsZWdhY3ktdHJ1bmsKKzI0MjQyIDkwYTBmMDk1MThjOGY2ZWYyYjUxZmE0OWRmODU2NzlhYzE0Y2RjY2UgbGVnYWN5LXRydW5rCisyNDI0MyBiYjg3MTYwOTVhODFhNWNkNTU2NTJhY2JjNjFmZWMwZWNhNWRlMGMyIGxlZ2FjeS10cnVuaworMjQyNDQgZjFjZmRjYTczZjg2OTU4NzdjOGJlOWVmOGViMGViNDlhMThmMTRmNSBsZWdhY3ktdHJ1bmsKKzI0MjQ1IGMxZWNhZmQxNTU2MGI1MTliMWU2NDQxOWU1MWVjZWM0YTYxYzI2ZjIgbGVnYWN5LXRydW5rCisyNDI0NiBlMTY3YjgyYzY0NDQwZDgwYzBkY2E3ZjdiNzgyNDZiNDA1ZTU0OTU3IGxlZ2FjeS10cnVuaworMjQyNDcgZWJhOGM3NzFkYjY0Y2I1MDk4YTJhN2IxZjVlOGE2MWM3MDU4MGUwZCBsZWdhY3ktdHJ1bmsKKzI0MjQ4IGNlNjlkNGVlMmZhMDBlMTdhZjY1Y2M4NTcyODk5YzQ2OWY3NjY4ODAgbGVnYWN5LXRydW5rCisyNDI0OSBhYzUxOTE2YmZkYTA3ZTJkODkwYzA5MjkzMWJlMmY0NTQzNDg1ZWE2IGxlZ2FjeS10cnVuaworMjQyNTAgZjE2NzFhNjEwMDc5OTM5NjBhZTNkZTQ3MDA2YmNlNzI0ZmUzZTM3NSBsZWdhY3ktdHJ1bmsKKzI0MjUxIGU3MWNjZmJmMzZiYjhkZWQ2Mjg0NjJkYWY1NDc0OWM5MzU2N2YxMTggbGVnYWN5LXRydW5rCisyNDI1MiAwN2YxZDJjNWRkMDQxYzhkODQxMThmNGI2YTY2Y2E0MGJkOGRhMGZlIGxlZ2FjeS10cnVuaworMjQyNTMgOTVlMzU4NGFiZTQ1NzZlMWRjNDgyYjYyNzQ3ZDFiNzU2MmY3N2IwYiBsZWdhY3ktdHJ1bmsKKzI0MjU0IDQ0ZjNmNWE1YmZlMjQ1ZDc0YWE3ZDA4NmRkNTU5YWEyN2E2ZjAzM2QgbGVnYWN5LXRydW5rCisyNDI1NSA2M2MxNDY2OTUyN2U0OTdkOTA0MWEyZjE5YjEyZjE4ZmRiOGUyNGMyIGxlZ2FjeS10cnVuaworMjQyNTYgNGI5ZTYzY2YwMmE2ZjgyOGM5ZDBjOTAzMWMyZGM1NjU3Y2RkM2QwNSBsZWdhY3ktdHJ1bmsKKzI0MjU3IGIwZGYxZmQ4MThmYzFmNTY1YjFhMjQ1ZTE4YWNiOTBhYTU3NDE3ODIgbGVnYWN5LXRydW5rCisyNDI1OCBiMTYzZTc4NmFjNzRlNGE1NjdlNDEwOGI5MDUxODdjNDBiNzQ5YTJiIGxlZ2FjeS10cnVuaworMjQyNTkgZjcxMWNmNDU4NTI1ZWVkN2NiZjhhMmMwZDE2ZDQ1YWI4ZmY4ZWNhNSBsZWdhY3ktdHJ1bmsKKzI0MjYwIGFhY2U0ZmFmZjE3ZGQ5MjQ1ZWRmYjdmYjUxNGYyZmVmMzI0NDBhMjMgbGVnYWN5LXRydW5rCisyNDI2MSBmOTZlODkxY2YwZTRlZTUyZGI5YjQ0ZDBhZWYxNzhhOTg0NjlhZWRjIGxlZ2FjeS10cnVuaworMjQyNjIgYWMyYmMwN2U4Njk3Zjc2NWVhNTk0OWE2Mzk0ODFjYjAzOWFmZjRjYSBsZWdhY3ktdHJ1bmsKKzI0MjYzIGE4NWEzYzEwYmE0ZGE0YWQ5MGNiMzgxMDk0NzE3Y2UxYTQ1NDE5NjIgbGVnYWN5LXRydW5rCisyNDI2NCAwMWU0N2NlOTYyMDEwZjZjMTRhYWUwYmFhMTJiZWIxZGQwYzI0NWMzIGxlZ2FjeS10cnVuaworMjQyNjUgODE2MjY0YmRhMTM2Y2U2MjE3Zjg1OWYwZjBjODdhZTFmZDdlYzRmZSBsZWdhY3ktdHJ1bmsKKzI0MjY2IDBkMWRlYjQwMjE5ZjlmYzAyODdmY2RmYTE3MTVmMjU1ZGIxYzY3MGEgbGVnYWN5LXRydW5rCisyNDI2NyA1YjU3OGQ0ZDg5MDJiOTViNTIxZGRiZTBiNDg4YTBjYTRjY2U4MDExIGxlZ2FjeS10cnVuaworMjQyNjggZDliNzg1M2EwNDMxYjM2ODQ4ODYzZWVhMmQxNWYwMzg5ZTVjMjhiZSBsZWdhY3ktdHJ1bmsKKzI0MjY5IDNhNTQzYWYxOWM3OTVmYTE5M2Y0ODUyYTI2MjFiZDFlYzAwZDIzNGIgbGVnYWN5LXRydW5rCisyNDI3MCAyMmRmM2VkMTFlMjE5NmRjMmIzOGY0MGU4N2UyYzRlYWIyZTFmMzIxIHIyMmIyLWJyYW5jaAorMjQyNzIgMDkyNDRjNDY4MzBmN2I4OTA4NmJiOGMyZjc0ZDI2Mjk0OGM3OGFjMiBsZWdhY3ktdHJ1bmsKKzI0MjczIDE3NGNjYjAzNWIzZDg1ODkzYmI4MGJhZjg4NTFhZjA5Y2Y4MjY1YzggbGVnYWN5LXRydW5rCisyNDI3NCA1NzBhNTRiYjFhNTk4ODgyYzEwNWI3ZTFjMmRkYjRiMjY5YzExZjg1IHIyMmIyLWJyYW5jaAorMjQyNzUgYzMyOWI4MTFlZTU0OTZiZDU5YzQ4NDkyNDA0NzA0YWUzOGEzNjgyYSByMjJiMi1icmFuY2gKKzI0Mjc2IGYwYjU3NWQ2ZmVhYTcwZGY0MzM5ZTQwNDdjYTc3MzA3ZTliMmMyOGMgbGVnYWN5LXRydW5rCisyNDI3NyA1NTVhOWUwMDE5YTc3OTk2YjkzOWJkOWU3N2M5NmM5ZWJhMDdiNDUwIHIyMmIyLWJyYW5jaAorMjQyNzggNmJmZmQyZTIzMjZhMzE0MTgwNjlmZDI1ODA3N2E4YTg5ZWE1OGRiYiByMjJiMi1icmFuY2gKKzI0Mjc5IDg0YmNhMWVmMTE2OGJjOTdhODJlNTRmN2Q0Nzc0NGRkZDU4ZDVkZGUgbGVnYWN5LXRydW5rCisyNDI4MCAzZTBjY2NjYzRkY2IxZTc3YWFiMWU5NWQ1ZDE4NzM5NzU2ZGJiYjk5IHIyMmIyLWJyYW5jaAorMjQyODEgNDY1YmFiMDdkMmE4ODQ4MDhmNjAwNWQ0OGNkNjM1MjI1OTYxNTMyZCByMjJiMi1icmFuY2gKKzI0MjgxIGY3MTU4MWNlN2EzY2VkNjljMWJiZTVhYjkxMzk5MGE1YzhjNDE2OTQgcjIyYjItYnJhbmNoCisyNDI4MyA5MmQ2ZjZmOTdjNzBjOTRmNjg4N2E1YzMyMzRjODFkYzRlZjQ1ZWU1IGxlZ2FjeS10cnVuaworMjQyODQgMzBlMTNmMGVhNzZiMjFjN2EyNTJjZTQyMzQ2YmEwMjMyMmFjOGIzZCBsZWdhY3ktdHJ1bmsKKzI0Mjg1IDQzNjUzMWIwYWNmODFhMTQ3YmEwN2U2MjcwNDRlZWU4ZWExMzQ1YTMgbGVnYWN5LXRydW5rCisyNDI4NiBmN2I2MTAwNTkzZGNmMTc2OTVjM2RjMzMzNzVkMTI4OGRhNzllMDBjIGxlZ2FjeS10cnVuaworMjQyODcgYmVhOTJjM2Q3N2EzMmE0MTZlNjNiMGVjYjYwNzg5ODEzZGQyOGM4MiBsZWdhY3ktdHJ1bmsKKzI0Mjg4IDM5NGRhNGVmZmJlYzY4ODI4NGMyOGYzMTNmNzRhZDljMDg3MmJiMWQgbGVnYWN5LXRydW5rCisyNDI4OSBkOTE0ZTBmMzlmODM3OGUzMTkzNzYzMGE1NTY2Y2FiY2ExZmUwZDRkIGxlZ2FjeS10cnVuaworMjQyOTAgMWI0ZTJhNzk3NTk2MWEwODlkYTk0MGFiMDkxMDdlMGZmMmQzYjlmMSBsZWdhY3ktdHJ1bmsKKzI0MjkxIDZlMTBhMTQ5OWUyNDIzZDJiNDdkNGY0Y2QyNGI2ZWM3OWZkNmQ0MzQgbGVnYWN5LXRydW5rCisyNDI5MiA5NGZlMTdjNjc3MTU0MDgwMjc5MDYyZTdiNDUxNWE0ZDZiNWIwYTM2IGxlZ2FjeS10cnVuaworMjQyOTMgNjFhMmRmNTY3NDZlZWUzZmRhMWY5OGY4NjljZDIxNzgzZDM0NmQ2MiBsZWdhY3ktdHJ1bmsKKzI0Mjk0IDIyY2VkZWRhMmE3M2NjNTk2YzZmYTdhODMzMDEyOGIzN2FhYjdlODMgcjIyYjItYnJhbmNoCisyNDI5NSBiNWMyZjc5NGQ4MDU5MzcxN2UyZTg3N2Y2MTgwNDk3NGQ5NDc0NzBlIHIyMmIyLWJyYW5jaAorMjQyOTYgMWZkYjg5YThiNjIxOTliYThlNjI4ODE3OWQzZTQ1NGJlOTdjYTBjNiByMjJiMi1icmFuY2gKKzI0Mjk3IDQ0Yzc3ODFkM2YwY2NkNDhjMTE5N2M0OWJhOGE1Njk2ZWM5ZDRiY2IgcjIyYjItYnJhbmNoCisyNDI5OCA0MWVmOTgyYTY0YjFiMWQxOWQ3YWE5OTNlZmRjMGQ2M2ZhMTU2OGY1IHIyMmIyLWJyYW5jaAorMjQyOTkgMTI2ODk1YTM5MmJhNzNmYjk3ODM1N2MzYmRlZWYxY2VhMmY5NWIzZiByMjJiMi1icmFuY2gKKzI0MzAwIDE0NWZhZjI5OGNkY2MxMzI0Y2VjYmViZDVkYjIzNjE1Y2Y2YjQ3ZDggcjIyYjItYnJhbmNoCisyNDMwMSA5NGM4NThmZWFlN2Y4ODYxMGNmM2UzMjdjMDcyNjQxYTg3YjMxNzQxIHIyMmIyLWJyYW5jaAorMjQzMDIgYzUyYmI4NjJkMGY3NzM1NGRhN2M0ZGFmNDdjOTM4MDZmYTUwOTkwYiByMjJiMi1icmFuY2gKKzI0MzAzIDMwYTQwODBiYzMwYjU5MWRjY2JhODMxM2RiYWRhYWY3NDcwM2JjYjYgbGVnYWN5LXRydW5rCisyNDMwNCA0YTlhOWNjMDQxZGVjZTZhMTllMWQwOGIwMGM4Y2YwNzQxZWZjZmM5IGxlZ2FjeS10cnVuaworMjQzMDUgZmUyOTMyN2U0NzFjZTJlNmY0ZjFjNTRkMWYxNTFlN2E4NjcxZDc3MyBsZWdhY3ktdHJ1bmsKKzI0MzA2IDhjMzIxOWE0ZGNkNmRlYjYxOWE4NWM2YjcwNzQ3MTg1OGM2OGJlMTIgbGVnYWN5LXRydW5rCisyNDMwNyA0MWI4ZDY2NzMwZDYxZjRhMWE2MGVhOTk1YjQ0MTkwMTJjZmJlODNhIGxlZ2FjeS10cnVuaworMjQzMDggMzNlYjYzYjg2YTE5MzZlZTQ3NDhjZWEyZmM3MjE1YjUyNWIwNDcwYSBsZWdhY3ktdHJ1bmsKKzI0MzA5IDQ5ZGMxNDRhMTU1NTdjMTdlNmE5MTU3M2M5NGRiMTZmZjY3MDMxYTMgbGVnYWN5LXRydW5rCisyNDMxMCA1N2M3OTFhNWY4MWM3NTg3MmJlZGJlNGJkMDMxOWY3MWVmMzA1Njc3IGxlZ2FjeS10cnVuaworMjQzMTEgMmI2NTBjMjFhNTYzOGQ1OGZhZGU4NzA0YjY3Mjc4ZWNjNTVjY2NiMyBsZWdhY3ktdHJ1bmsKKzI0MzEyIDQyMzY1YjcwZTlkOGI4ZTRlYjUwNGIzMDUwZjQwNjc0NjIwZDliZjQgbGVnYWN5LXRydW5rCisyNDMxMyBmNGQ5ZmEyMDdlNDBlNWIwZWJhZGVlNzI2NDhhMGQzNTFlNTk1ODc0IHIyMmIyLWJyYW5jaAorMjQzMTQgNjJjNjNiYTkwZGYyMTBiYTM2MGE4Zjk3NWY2NjE4MTVlODNlOTc3ZiByZWxlYXNlMjEtbWFpbnQKKzI0MzE1IDBmNDA4MjYxYjNjOGI3YWFiYWMxZDM5YjI1NWQ2OWQ1OWYwZDI4OWYgbGVnYWN5LXRydW5rCisyNDMxNiBhOTY1MzgxMTczMWEwMDNiYTQ4MDFjY2EyZDcwM2JjOTEzMGRlYzIwIGxlZ2FjeS10cnVuaworMjQzMTcgOWY2NmFhZGRmOGQ0MGJmMWEzODIxZjJhZDE5MWY5ZGMzODdmOGU2YyBsZWdhY3ktdHJ1bmsKKzI0MzE4IDdlYmMzZTI5ODNkMTFiMmQ1ZmEzY2M1NjU0OWQ5ZmE5ODBjNTk4ZTMgbGVnYWN5LXRydW5rCisyNDMxOSAxZGFlYmZmMTc3ZWYxMzc3ZTFjYjk5MGUzMmZiZDAxZjlmY2U5NTg4IGxlZ2FjeS10cnVuaworMjQzMjAgZjk1N2QzOTZjODRlNzFkZjIyN2JlZjczMGM2MjEyOGUyYWFlNThlZSBsZWdhY3ktdHJ1bmsKKzI0MzIxIGU3OWZjMjU3YmNhMGU2ZWQxMDc4MWIwN2JhODM3NzY2MTZjYTY0ZWEgbGVnYWN5LXRydW5rCisyNDMyMiBkZWUwZTg2NjY1M2U2ZTQxYjVmNjUxYTIwOTIyMzkwZWJkZDk4YjBkIGxlZ2FjeS10cnVuaworMjQzMjMgM2RmYmJmNDJiZjE2YWU5N2ZiYmQyYTQ2ZWYxM2IxOWIwZmYwYzVlYiBsZWdhY3ktdHJ1bmsKKzI0MzI0IDFlZTc1YmQ0ZWUzNDY4ZDUxN2JjNTE3NWJjN2RmNjE1ODhmN2E4MzYgcjIyYjItYnJhbmNoCisyNDMyNSAxMDllZDY5NjQ4MzJhZGY4N2M5YjA0ZGM0NTYwNjJmNzFlMDFjNGVjIHIyMmIyLWJyYW5jaAorMjQzMjYgYmQyZTg5ZDc3ZDQ1YWRmMTdiZTA3ZjhkNTEyODEyZjM3YWU0YjYxNSByMjJiMi1icmFuY2gKKzI0MzI3IDRjODMyODc4ZGU3NGViNzIxYTVmNmNlZmRjMTZiOWFiNGQ0MjVkMGIgcjIyYjItYnJhbmNoCisyNDMyOCBlM2UzY2Q0N2JhZDVmZDM4M2JjNThiYjIyNTg5MjU4MjhhZjc0MTI4IHIyMmIyLWJyYW5jaAorMjQzMjkgZDIxMDI4ZDVjYzg1MjhjNDY1ZDc4ZDY2ZTI2ZWNmNDRiMTAxODczMSByMjJiMi1icmFuY2gKKzI0MzMwIDQ4MjYwYjBiNTI2ZjY5YTE1YTFkNDcwZDdkYzc2ZDFlZmVhNTc3YjQgcjIyYjItYnJhbmNoCisyNDMzMSBlZTI0YmQwY2FkMjkwM2IxMDg0YWYwYjE4MzM2OTQ0M2Y3MzllNjdmIHJlbGVhc2UyMS1tYWludAorMjQzMzIgYzdlODMzYjNjZDljNWFhYTJmZWY1ZGQyY2I1MjNiMzZkODlmZjE3OCByZWxlYXNlMjEtbWFpbnQKKzI0MzMzIDk3NDYyMTk4MTNmOTk3OTI3ZWVkYzI3YWRlZWM1NTBlNjU4OTJjMWUgcmVsZWFzZTIxLW1haW50CisyNDMzNCAxMWNiM2RlMDgyM2RhOGVjMjhiOGUyNTY0MmQ1NzE1OTU4NzlkMjIyIHJlbGVhc2UyMS1tYWludAorMjQzMzUgMjIzOTUzMDY5YTFhMDlmMDI5NmFmMmE5ZGFmMTBlZDM2OTEwNDAyOSByZWxlYXNlMjEtbWFpbnQKKzI0MzM2IDNmYzA2YzExNDlhNDNkYjJmODY2YTc1MzllZTdhZjljYjBiOTNhYzMgcmVsZWFzZTIxLW1haW50CisyNDMzNyBjNDQ5OTU5NmIxYTQwZmQ4YmNmMWQ4OTY3ODg3MDg4Mjc0YjhkYjYxIGxlZ2FjeS10cnVuaworMjQzMzggMWNmNzdkZjk1ZjQ1MjUzODk3NjU5M2U0ZjliN2VlODFjMzI3ZGM4YSBsZWdhY3ktdHJ1bmsKKzI0MzM5IDU5ODFkZmRkYTg1NzBiNjE3MjNlZDg4Zjk5MTk4OTMyMzA5YmM2N2YgcmVsZWFzZTIxLW1haW50CisyNDM0MCBhZmI3ODlhYWRhMTZmZDhkYTZmZDQyZDkzZTRiZDZlYWU4MWNmNjEzIGxlZ2FjeS10cnVuaworMjQzNDEgNzc4ZTZhODBmY2VlNGY1NWZmNDM2NmQ4OGFkY2ZkYzMyOTU2YjQxNiBsZWdhY3ktdHJ1bmsKKzI0MzQyIGMzZTZlNjNkOWJhMmQ4MjlmMDFjYzY4NjM5NGExOGJiOGZmNjkxNjUgbGVnYWN5LXRydW5rCisyNDM0MyBlNWNmNzRmNzkxNjc5YmFlMTVlYTM0MzQyNjdlMTRkZDMxNDgzNGU2IGxlZ2FjeS10cnVuaworMjQzNDQgMDg0NmI0ZTI1MTdkZjAyOGJjYTJhNGI2ZDJhMDAyZThmZTExOTI1NiBsZWdhY3ktdHJ1bmsKKzI0MzQ1IDcwYjQzMDZmNDg4ZGIxNDYwZWExMDA5N2FmNzgxZTRmNWIxZjJkYjkgbGVnYWN5LXRydW5rCisyNDM0NiBiM2Q2MjdlZTJiNzNmZTFjMDVmNzA2MWEzMmI5NjVhOGZkNzZmNjMyIGxlZ2FjeS10cnVuaworMjQzNDcgZTZlYWY5NTdlYTI2ZjcxNjRkZmI2ZDBhZDA0YzA2MjQ2ZTg4OGI3NCBsZWdhY3ktdHJ1bmsKKzI0MzQ4IGIxMTRiMTAwNzQxOGVlMmUxMGQxNDE2YzBmMWEyMGQ3NjNjZTRiOTUgbGVnYWN5LXRydW5rCisyNDM0OSA4ODFmNDliZWZjYTNjMDFhMDRiYTk4Y2M2ZDA3YTFkMmE0NTIwMjhkIGxlZ2FjeS10cnVuaworMjQzNTAgY2QwYjc1YjE5ZGY3ZDgyNjI3ODJhYTU1NzE1OGNhYjAzNTFmMDA0MSBsZWdhY3ktdHJ1bmsKKzI0MzUxIGZlZDUwNzFkYTk1NzVkNGQ2OTQ0NWY0OGMzMDIxZTQxMWU2YWYyNDYgbGVnYWN5LXRydW5rCisyNDM1MiA3Y2E1YTQ4MWMwZDE3OTU1Njk2M2NkMmRlYzU1NmVmNTdhYzg0N2E5IGxlZ2FjeS10cnVuaworMjQzNTMgMWFlMmFmZTY3NWZkYTdiY2M1MTBjZDk2Y2NmOWVjNTA0Yzc2MzE2NCBsZWdhY3ktdHJ1bmsKKzI0MzU0IGRhMzg4ZTFkNDA0YmZiODNmNTkxMDNiZjI4YzY2MmVkY2MzNzcwYjkgbGVnYWN5LXRydW5rCisyNDM1NSBiN2YzOGU3NjUxNDc5MzM5MzVhYWRlYzZhMDVhZWNkYWRhZjc0MmQ2IGxlZ2FjeS10cnVuaworMjQzNTYgYmNiZGE2MDZkOGM3NTcxOGI0MDI4M2M3YzVmOTgxYzE2MGRjY2I2YSBsZWdhY3ktdHJ1bmsKKzI0MzU3IGQ0NTY5MWE2OTg3ZmU5NjdhMDVmYmJjZjFiN2YwOTdjNDkwY2YzMzggbGVnYWN5LXRydW5rCisyNDM1OCBiYWM5NDJlNjg1ZmFkMmRiYmQyMGQ5ZjYzYWU4MTliMDQyYzgzN2RhIHIyMmIyLWJyYW5jaAorMjQzNTkgMzZjODk3YmNmNGQ3ZTY5NDI0MDExMzg2MjNlZjNjMzlmOTkxMmViYSByMjJiMi1icmFuY2gKKzI0MzYwIGY4ZmRiZmE4ZDVmM2I4MmZlYTk5Zjk1ZWI3OTlmODdkODcyZDg2MzYgbGVnYWN5LXRydW5rCisyNDM2MSAyYzBhOWE1MDg2ZTEwYjk5ZjA0MWQwYjBhY2EyZGI2Y2MxZGRkNDczIGxlZ2FjeS10cnVuaworMjQzNjIgOWRmODJjMTNjNjc1ZjA3NDAwMmQwMjgzMmJmYWQ5OTEzNTk3NjZkZSBsZWdhY3ktdHJ1bmsKKzI0MzYzIGU3NjMwNmVlYTM3MDk3NTBkYjU3NjgzNWVhYzViNjdkMjFjNDJmZmIgbGVnYWN5LXRydW5rCisyNDM2NCA1OTdkMTBjZjc5MzhlOWJiMjY1OTdlMzM2ZjVhZWYyNmQzZDZlMTY4IGxlZ2FjeS10cnVuaworMjQzNjUgMTgwMmE5ZWRiNGVlZjRkOGU2MGVmZDhlMTc1OWM5NDAwYWViMDcyNyBsZWdhY3ktdHJ1bmsKKzI0MzY2IGJjMDJjM2IwOTYyNmEwNDVmNjZiNDc5MGQyYzlmNzdjNjZkZTQ5OWUgbGVnYWN5LXRydW5rCisyNDM2NyBmMTg3NDk2ZmZhZWY5ZDIxZmMyNjM4OTBlOWE1OTdlODkzZTljNzkzIGxlZ2FjeS10cnVuaworMjQzNjggYTJkNzhlMjFhNzg1N2UxNmVjMDdlNDA2OTcxMDEwNDI1YzAyYmI2MSBsZWdhY3ktdHJ1bmsKKzI0MzY5IDUwY2ZiZGRjNjAzN2U5NzUxZThlMTk3ZWE0NzlhN2MxNjJkZDMzMGMgbGVnYWN5LXRydW5rCisyNDM3MCAyMjVjN2RkMTdlMzcyNjc5NDNkM2Q3M2FjZTQ0MDI3YmMzYTlhODBhIGxlZ2FjeS10cnVuaworMjQzNzEgYzljNGM1MjNkY2JmMTI4ZDdhNjVhYjc5YWJkNzJiMmQxNGU3Y2M4ZCBsZWdhY3ktdHJ1bmsKKzI0MzcyIDliMDU5ZjFiMmExZjA1Njk5OGY5OTg2NTEyN2MzMTAyZGMwMWEyZDQgbGVnYWN5LXRydW5rCisyNDM3MyA3ZDNhMjExZWYyMzM2OTlmZWRhZjQ5YWQ5MDk3MjRkODg2MmFhMTljIGxlZ2FjeS10cnVuaworMjQzNzQgYmE2N2I5Yzk3YjY5NmJmNjI1NWQ1YjM5YjBjMmY1YTA3NWE1OWFlNSBsZWdhY3ktdHJ1bmsKKzI0Mzc1IDYzOTJmMDMyMjJlMDEwZTgwMzM4NjcyOGE3OWZkYTg2OGYzNzU4MmUgbGVnYWN5LXRydW5rCisyNDM3NiA2MzljMGEzYWU4ZGNiNDVkYTE2MWYyZDgwZWNkOGQyNzkxMDE2ZDZiIGxlZ2FjeS10cnVuaworMjQzNzcgMzA0YjM0MDIzODc2OTIwZjU3MDQ2NWMyODYyYmVkNDA2ZjQyYzZjMCBsZWdhY3ktdHJ1bmsKKzI0Mzc4IDQ3ZWE3M2ZkN2U2YmEzMGNiOTg2YjAxMzc5MTRkNzM3OTAyYTYwM2EgbGVnYWN5LXRydW5rCisyNDM3OSBkYzY0MWUxMjU2ZjljNGRlODA3MjdlZjZkMjVkYzMwMDIwOWU4MGY5IGxlZ2FjeS10cnVuaworMjQzODAgYzVmYmU5MmUwMmQzYTE1NzAwYzlmNDljNGVkOGEyOWIzNmRmOGE0ZSBsZWdhY3ktdHJ1bmsKKzI0MzgxIDM3OWZjNjZmNGM5NmQwYTFmN2MxNzZmOWJlZGQxMGNkNzM1YjZkMmYgbGVnYWN5LXRydW5rCisyNDM4MiAwMjVhZDI3ZDQyMjRmNDU3MjQ1MTM0ZmNjOWJhZWUwYjM4NmNlNmE1IGxlZ2FjeS10cnVuaworMjQzODMgOGNlZjc1Y2FjYjAxNjA0Y2RmMDAwMGFkZmViNjY4YzY3MWQ0OTg1YSBsZWdhY3ktdHJ1bmsKKzI0Mzg0IDViNDU5Njc3ZmM0NDRmYzliMGMwM2JiYjk2ZGQ1MGFiMThhMGQxOTkgbGVnYWN5LXRydW5rCisyNDM4NSA5NGY1YTlmYTM1ODM0NzUwODE0ZDE2MjlkNjdkNDNkYWViZDk0MGIzIGxlZ2FjeS10cnVuaworMjQzODYgYzhkNzc1YjlmZjkyYTliYjkzOTVkNTBiNmFmNmZhMjE2ODZkYTQzMCBsZWdhY3ktdHJ1bmsKKzI0Mzg3IGQzYjY0MDFjYTI3M2I1ZTRjOGVjZGEzYWE5Mzc3NTg5ZmI4MDQzMzEgbGVnYWN5LXRydW5rCisyNDM4OCA1MmNlODg3ZGIzYzkzMWE2MzhlMWFmNWZjYTVjMjNlOGY3OTc4ZjNkIGxlZ2FjeS10cnVuaworMjQzODkgM2ViMjRmNGM4OGQ1YjE5Y2ZlYTRmOGRlZWM5YmYxNDQ0YWVmYjNiNSBsZWdhY3ktdHJ1bmsKKzI0MzkwIGVhNWIwZjBiNzE2ZjI1NDg0MzI2OGE5MjdhMjg0Yzc0NzY0NGQxYjggbGVnYWN5LXRydW5rCisyNDM5MSA0MWVhMmFiYjc0ZmIzOWMxYmM3NzdiNmVmN2E4YWIxOTY4ZTU3ZDkyIGxlZ2FjeS10cnVuaworMjQzOTIgMzQ3ZWE2OTMwMDJkNTJiODllMzEwZDBiNDU4NjBmM2IxM2ZiNGI1MyBsZWdhY3ktdHJ1bmsKKzI0MzkzIGQ5NWE0ZWM2ODVlMGUzOGEzOTc0ZWVjYmE2OWQ1MDVhMjE2YTQ5OTEgbGVnYWN5LXRydW5rCisyNDM5NCA1ZTI1YzY2OTc0MWNmOTExYTFkYWE5MTE2MWI1NTdiNGYzN2MyYTkzIGxlZ2FjeS10cnVuaworMjQzOTUgNDdmNjUzMzY3NGZkYTJkYjYyNmJkZmI2Mzc0MzM3MzU4NWE5M2NiYiBsZWdhY3ktdHJ1bmsKKzI0Mzk2IDUzMjcwZDI4MWJmMDgzYmQ4ZDE2NGUyODc2ZDQ0NjRmYTYwOWFlNWIgbGVnYWN5LXRydW5rCisyNDM5NyA3ZGUxMzNjYmJhZjE4ZTg2ODNhMDQ4MTMyOTExMmE0NTY0YjQ1YzgwIGxlZ2FjeS10cnVuaworMjQzOTggYzIxNTAzMTNkOWQxM2U2YjUyNmVlY2IxZjUyYTQwZTQ5ZDNiMTg2NSBsZWdhY3ktdHJ1bmsKKzI0Mzk5IGIxMjgwY2JhNzliNTlhYzNmNmI5Y2Q0ZGYxZmM0MzRiNDdkMDkzZTcgbGVnYWN5LXRydW5rCisyNDQwMCBjZGI3MGJmODhkYjFhOGQwYmE2MDBmNDAyNDYyZGExMzNiYTA2MDBkIGxlZ2FjeS10cnVuaworMjQ0MDEgOWJhM2M4Mjk0NmI4OTYxYzE3Njc5ZTZlMDNlYjY5N2VjZjg3ZTRkMCBsZWdhY3ktdHJ1bmsKKzI0NDAyIDgyZDg0MTM2MzZlNzc5MGQ1NWY5ZjhmYjgzYjQ0NzVmZTNmYjhlZTAgbGVnYWN5LXRydW5rCisyNDQwMyA4M2ZjODgzNTBmODBhMjJiOWVjYWM1NzViZGQxMTExNzc0Njk1ZGI3IGxlZ2FjeS10cnVuaworMjQ0MDQgMGZlYWM0NWVlNjYyZWZkMDllNzMwYzY0ODAwYzNmZTUyZTUyNzRmZiBsZWdhY3ktdHJ1bmsKKzI0NDA1IDE4M2YyODU5OTczNjYzMWQ1MDkyMzAzOThmYjI3MTAyNTIxZjkxMTkgbGVnYWN5LXRydW5rCisyNDQwNiBkNmMxODNjYTA5M2M4MDNiNDZlZTg2YjcwNGE5NjNiOWExYTJiZmY2IGxlZ2FjeS10cnVuaworMjQ0MDcgY2VjODAwOTMxYTM3MGQyNWM5NGE5ZmFlMzNhOGZmMzRmNmUyOTEyNSBsZWdhY3ktdHJ1bmsKKzI0NDA4IGU0MjIwMzFiOGZkNzA4NjJlMDU3NzRhMDM2OTg5NTQ2NTdiOGVkZGEgbGVnYWN5LXRydW5rCisyNDQwOSA2NzQ3MTA3MGI5NjY4M2MxZjJlNWYwZjNmYjVmZTA3ZWMyMjk0ODc5IHIyMmIyLWJyYW5jaAorMjQ0MTAgMTE0NzVkZDQ2ZmE3NjEzMjcwNDcyM2UzM2U4ODJiMTY0ZjQ1NDNiMyByMjJiMi1icmFuY2gKKzI0NDExIDM0ZmM1MjM4MzEwZDMzYzQwODUzNGVlZmE4ZjcyMDIxOWRjNzRlOWYgcjIyYjItYnJhbmNoCisyNDQxMiBlOWEwMWUyNGE0YTk3NGY1NGMwYjRiOGRjMWIzNTQ2OThkY2E3OWNiIHIyMmIyLWJyYW5jaAorMjQ0MTMgNjE4NWE2N2IzMDEyODQwOWU5NTM4MTdjZDlkZTE4ZDUyZDA1YjUzMyByMjJiMi1icmFuY2gKKzI0NDE0IDAzYWVhNzU3NWFmYmE2YmY5ODIwZDFiYzQzMjMwOTA5MDA4MmFkYjAgcjIyYjItYnJhbmNoCisyNDQxNSBhNzE4YmE5OTJmMTA0YWYzZDlhYmU3YTllYTk0NWI2Yjk0ZDU1MWQwIHIyMmIyLWJyYW5jaAorMjQ0MTYgYmUzOWZhNTU1OGM1NDVkYTMzZTljODMzZTQ1NzVlMWFjOTdkZjA1MCByMjJiMi1icmFuY2gKKzI0NDE4IGQxOTUxM2UyODkzYzk5ZWZlNWViY2JmMTVlNTE3NmM1MDRiYzBiYzEgbGVnYWN5LXRydW5rCisyNDQxOSAzODI3ZjEzNmUwZDZlNmEwYTE5NTRhYTM5MjViZTk4MjliYmFiMmZhIGxlZ2FjeS10cnVuaworMjQ0MjAgMjcxMWY4ZGIxNjRjZmFiNWU3ZDk0ZGRlZjRjZTIzYzllZTNhM2UzMiBsZWdhY3ktdHJ1bmsKKzI0NDIxIDEyNjY4ZDBhZjhmN2Y1NGY3OTI3ZTg2OWEyY2QwMjg5OTUwM2ZlMmMgbGVnYWN5LXRydW5rCisyNDQyMiAwNTA5NTM5OGY5MzkyZTJlODc0YTNhZWM2OWI5ZGI1NTcyNjNiNjBkIGxlZ2FjeS10cnVuaworMjQ0MjMgYWYxYzVmYjZhNzAzOTJiMzBlYzYxYTFmMWE2MzEzMWFjNGNlMTkwZSBsZWdhY3ktdHJ1bmsKKzI0NDI0IDhkMGMxMDZkOTA5OTI2ODExZTMzYTAzN2ViMzNmMTE2YjM0YjA2MjEgbGVnYWN5LXRydW5rCisyNDQyNSAzOGQwYmQwZmE3ZjJlN2I3MGJiNTNlOWM5ZTk0NTMzOTVhNTlkNjQyIGxlZ2FjeS10cnVuaworMjQ0MjYgZWQzZGNlMTdmYzc5YjdhNmM2ZmZjY2M2YTI5ZGNjNTU1MWJlMDZjNiBsZWdhY3ktdHJ1bmsKKzI0NDI3IGY3ZGIyYzBhMzBmY2U4ZDU5NzNjMjBlOGIxODRkZDllMGM3MTM3YjcgbGVnYWN5LXRydW5rCisyNDQyOCAwZWQ2ZmM3YzFjMDkzZDA2Y2QwOGQ1OGY0NDNhODlmYjZiMzMyMjdlIGxlZ2FjeS10cnVuaworMjQ0MjkgMGE2NzQ2M2Y4YjdkMjI1OWM4ZmYyZmUxZTYxNmU0ZTVlODhjYTVhOSBsZWdhY3ktdHJ1bmsKKzI0NDMwIGNmNzk3MDMzNDA0MThmZDc0ZDk0M2M3ZDgwZjMzNmFiOTY3ZjZhMzMgbGVnYWN5LXRydW5rCisyNDQzMSAyZTZjZTNhNTYyODRiZmVjYTViOGY3YTVhNjAwYzM0NGQ4NzhiMjE2IGxlZ2FjeS10cnVuaworMjQ0MzIgNDkzZjkzMmQ1ODI5YjFkYzhjMTgwMmMxMTgyNDBmZmM2Y2VlZmIyZiBsZWdhY3ktdHJ1bmsKKzI0NDMzIDQ2ODUzMDczODRlYjBkN2ZkMzFhMDg2MGE4YzY1ZDAxNjgwNWRjMDMgbGVnYWN5LXRydW5rCisyNDQzNCA2NzFhODQ4NjZhYzk5OTYzOGVjZjBlYmQ4YTY2MmU4Nzg2YWEyZTAzIGxlZ2FjeS10cnVuaworMjQ0MzUgNjg3YjhjNzE5MmExYTE2NmMwNmQ0N2FiNzBlYzlmZTFjYjBiOTUwMSBsZWdhY3ktdHJ1bmsKKzI0NDM2IDIxODIwNzMyYTExNzFiZmM2NzQ2YjcyYWQzZjlmZjQwNzE3ODJlNGQgbGVnYWN5LXRydW5rCisyNDQzNyAyMWJiNGM0YjdlMjZmNTA4NzA2ZWI3OGI0ZmU1NDhjZDVhYTlhYTM0IGxlZ2FjeS10cnVuaworMjQ0MzggMTdlODdhYTM3Nzk2MmM1ODY0ZDZhZDA5ZjcyNDBmYjgxMDE1ZjczNCBsZWdhY3ktdHJ1bmsKKzI0NDM5IDZiNmE5Y2FlMjU2ZWUzMWMzNGNkODY1ZGViMzAyMTgwOGRjMjRhYTIgbGVnYWN5LXRydW5rCisyNDQ0MCBkZDI4YTRlY2IzN2Y2MDkzOTQ5NTEwZTliZTRlMzg5ZjZkYzJhYWE3IGxlZ2FjeS10cnVuaworMjQ0NDEgMTVmZjUwNDYzMmVkNmE4ZTgxZDc3ZjkwMWUzYTlkZWQ1NDFlMzEzNyBsZWdhY3ktdHJ1bmsKKzI0NDQyIGExM2E0MzkzZjQ1YzAxZWFlYjBjMDI1MTM2ZjE0YzUwN2RhYjMyM2UgbGVnYWN5LXRydW5rCisyNDQ0MyA2ZTM0MTUxYWVmZTY2MzA1M2YxYmNkMjhmZGUwMWFjM2ZkOTc3MjIzIGxlZ2FjeS10cnVuaworMjQ0NDQgNjBlMzZkNTE4NzU4ZjFlMjk0ZmMxNzJiOWNkMmE2NmZjMGU1NjEzMyBsZWdhY3ktdHJ1bmsKKzI0NDQ1IGE5YTg3MzQxYTllN2IwNmVjZDA0OGZkNDA3MDRkNWRkNTU5NDdmY2QgbGVnYWN5LXRydW5rCisyNDQ0NiBlYzg4ZmM0MzAxMjc2MTFlNmE4ODBlYmNhOWY2MGU1Zjc1NDFkZjY0IGxlZ2FjeS10cnVuaworMjQ0NDcgYWJlMTRhYzYyMDI0MjEzNzU1Mzg3ZDYyYzFkMDkwOTY0ODY1Y2FjMyBsZWdhY3ktdHJ1bmsKKzI0NDQ4IDk0MzYzOWI5NDRhYjRlZTMyYjMzZDk0ZmIxNWUwYjdkOGQ4ODMyODQgbGVnYWN5LXRydW5rCisyNDQ0OSAxOTdhOTA0ODliZWVkOWM1ZGFkNTQ3MGZmMTVjNWYwYzhhZjAxYTY1IGxlZ2FjeS10cnVuaworMjQ0NTAgNWI4ZjA3ZTYzOTljMWU2NzAyZTlkYTQyMzUxNTlmMTY4YmFhOTc3ZCBsZWdhY3ktdHJ1bmsKKzI0NDUxIGEyZDAzY2ViYTgwZWJmYTYyNWNjMmE0NTdlOGYxMDQ1MDdmM2ViMDUgbGVnYWN5LXRydW5rCisyNDQ1MiA2NzUwOGEzNTFhYTJiZmJiNjI3OTA0MGJmMDc4Zjk3ZDExYjIwOTJhIGxlZ2FjeS10cnVuaworMjQ0NTMgMWM2YzAyN2ZkMTEwYmY5YjVlM2Y0ZjQ5YTI5MmVmNDhiYzY1MGU4ZiBsZWdhY3ktdHJ1bmsKKzI0NDU0IDUxYjQ1NzJjZjAxM2QxYTZjOGM3OTZiMThlMjBmNTZiODU5ZTczNTAgbGVnYWN5LXRydW5rCisyNDQ1NSA4NDJiMjgwNDIxYmE2MWVjZDRhMTlhZGJmYzA5MWI3MDZkMmU3NjQwIGxlZ2FjeS10cnVuaworMjQ0NTYgNzI5NjZjOWRmOWE5OTg3ZWNjNjMxNDNiMjI5OGE0NTk1OTdmNGIwMSBsZWdhY3ktdHJ1bmsKKzI0NDU3IDk2YTA4ZmQzOGVmODEyNTk4ZDQ1OGZmOGEzNzQxODRmMzViYjkxOWMgbGVnYWN5LXRydW5rCisyNDQ1OCA4N2ZhNmU5YmQ3N2VjM2M3YmQ2MTgxM2RkNmM1MzJjN2IyNTZjYzAxIGxlZ2FjeS10cnVuaworMjQ0NTkgMzRmZTc0MzM1MjZiYTQ3ODViYTZlMjA2ZjAyODQ4ZmFiNzI4MWU0MSBsZWdhY3ktdHJ1bmsKKzI0NDYwIDkwYTBkODAwMzNiNGY3MDM0NmJmZjk2MGZlNzdiMGViOTk2OWVjODUgbGVnYWN5LXRydW5rCisyNDQ2MSBkNDUwOWNmOTNmNTBmOTJjMGE2NzJiMzE4N2QzY2Y4YTQxODhlZmU0IGxlZ2FjeS10cnVuaworMjQ0NjIgOGU3MjQ1NDYwZDMwYmZmNDllOGQ3NTFlMTZhNWZhMjRmZGVjZTUwNCBsZWdhY3ktdHJ1bmsKKzI0NDYzIDBkZDE2ZmQzNmVlOGU1YzRiOTE1NTVjNzZmNDU3MGNjZWQwYmJkZDUgbGVnYWN5LXRydW5rCisyNDQ2NCA5MThiNTczNTRkODc0OGI5NzM0ZDEzYzJhNDQyODU0YTJkMGU5OTQ2IGxlZ2FjeS10cnVuaworMjQ0NjUgYmU1ZjUyOTYyYWRiMzRkMmQ1M2NhMWEwYjI3ZGJlNmUwYjc2Yjk2MSBsZWdhY3ktdHJ1bmsKKzI0NDY2IDExYTk2OWUyZmE1MDUzNTZiMGYwNmQzZDBkY2ZkMGI0Y2EzOTMxNjEgbGVnYWN5LXRydW5rCisyNDQ2NyBhMjBiMzcyZmI5MzljMjIwODQxMDhlYTVhMDIxY2M5YjQzMGNmNTJhIGxlZ2FjeS10cnVuaworMjQ0NjggYmNhNTNhMzdhOGE1YWZlMjQ5OTg2ZTA5Mjk2NjBkMjZlN2U5MjUxZSBsZWdhY3ktdHJ1bmsKKzI0NDY5IDlmZWNiYTUyNjkzNjdhZWI5M2NhNzU1YWY4MWE4NWM5MDQ1MTRlYjcgbGVnYWN5LXRydW5rCisyNDQ3MCBlNTkyNDcyZDU1YTM4ZjBiZGQ0ODhkYTFlZDM5NWU5MzQxYzA1MjE4IGxlZ2FjeS10cnVuaworMjQ0NzEgMWFjYzRiYTczYjlkMTYxNzdjMzZkNzE3NWVjYzBmN2NlZDkwOGQ5NCBsZWdhY3ktdHJ1bmsKKzI0NDcyIDZmYTk2YjMyOWUxNWVlMWMwNWRmNzkzYjZkZWVjMDQwNzM3N2QzZGEgbGVnYWN5LXRydW5rCisyNDQ3MyA3MzM4NGUxM2JkMmFlMTEyYmU0NmRjYTVhOGIxMWZlODljMDgwNDg3IGxlZ2FjeS10cnVuaworMjQ0NzQgOTQzY2E4MWFkMWRmM2Y1Mzk5NzMzM2Y4YjVkYTNjMDg1OTU2YTMwZCBsZWdhY3ktdHJ1bmsKKzI0NDc1IGUxYTY3YmU2YzZlNDBhM2UwYjY1ZjI0YmNmM2ExZDRhNjIxNGMzMDEgbGVnYWN5LXRydW5rCisyNDQ3NiA3YjY4Nzk3MTRiNzQ2NmU0NDlmMTdhMjczMzZlYmNjZGJmNDdlZjRlIGxlZ2FjeS10cnVuaworMjQ0NzcgMjFhYzU1ZmIyZGQ4YzgyYWQyMGZjZjZjMWNhOGNkOTNkODQ4MTcwZSBsZWdhY3ktdHJ1bmsKKzI0NDc4IGNmZTQwN2U0ZDhjMDE1ZGE2NGIxODc4ZWE2YjI5YmM5NGU4ZGYyYTYgbGVnYWN5LXRydW5rCisyNDQ3OSAwYjRhZWI0MTNkN2RmNzMwYTg4MTZlZTgzNjBiMGExODAyZjFhZWY5IGxlZ2FjeS10cnVuaworMjQ0ODAgZmQ0MmVhY2U1MGVhNWRhYjQ2NzYzNGJmMWY3ODVmNWFlYTg3Mjc3YyBsZWdhY3ktdHJ1bmsKKzI0NDgxIDQ3NWM4MjcxZTA1N2U5ZmU4YTY2ODRlNGU3ZTBkODIwOTMwNmE5ZGIgbGVnYWN5LXRydW5rCisyNDQ4MiA4OTA1ZTY3MjVjYTFiM2E4MzA4MTdiZjA1YjM3OTA4ZWQxYzc0NzQ4IGxlZ2FjeS10cnVuaworMjQ0ODMgMmRmYzYwMGY5OWNlZTZkNjIxYTc5ZGZmMjFhMTVmMWFmN2YzMTFhOCBsZWdhY3ktdHJ1bmsKKzI0NDg0IDI0NThjYmNjMWRkMzc2NWU2ZjZjZTViODMyYzlhNzJkNmZkYjRjNzAgbGVnYWN5LXRydW5rCisyNDQ4NSBkZjJmZmIwY2Q2YmJhNjBiMjJjYjhiODUwNWM4OTMwNDRmMWFkNzYyIGxlZ2FjeS10cnVuaworMjQ0ODYgMGI2YTE4YzZlNTllYzQ1MDg1NmFjNmQxYmI1OWY4ZWM2OTE1YzkxNSBsZWdhY3ktdHJ1bmsKKzI0NDg3IDc4OTI5MmNmMDkxNGM0MzYzZDQxNDZlNGM2YjEwOTcyMTVmMmY1NmMgbGVnYWN5LXRydW5rCisyNDQ4OCBjOWE3OTY0MDBhNTFjNTE0ODdjMjcxZTMzNTQxOTU2YzdlOGYxYTc5IGxlZ2FjeS10cnVuaworMjQ0ODkgZDRjYzA1ZjZlMTgzOWQzMGY0ZGIwYmE5ODE5YjUxNzcwYTlkMjg4ZSBsZWdhY3ktdHJ1bmsKKzI0NDkwIDdkMWVhYzQxY2UzZWNmZTBhZTJjZmQ0OTI3MTJjOGY4ZjU0YTczNmIgbGVnYWN5LXRydW5rCisyNDQ5MSBiYzUxZGU2NDNiNWU1OGNhY2YzZWIxNjdjY2U5NDcxNGVjZmFjODBjIGxlZ2FjeS10cnVuaworMjQ0OTIgNDg1NDIyOTAwZWYwNzljMjE3ZmM3NWRmYjNmYjcxN2Y1OTllNjE2MCBsZWdhY3ktdHJ1bmsKKzI0NDkzIDBmYmM5Mjg5YTRjN2NlNDAzOWJjNGYxMmNkNDgwYzhjN2Y1MmFlNGQgbGVnYWN5LXRydW5rCisyNDQ5NCA5NDRkNmUwMmYzNTkxNzc4M2I0Y2I4YjM2NTVkNmMwZTM0NzljYTM4IGxlZ2FjeS10cnVuaworMjQ0OTUgNDczZjI5NDExZjNiMmVkMjM4NzM1NmQ3MTYyOTQ5ODNmZWE4M2E3ZiBsZWdhY3ktdHJ1bmsKKzI0NDk2IGFjMTM1N2ZkMWFlYTFmOGExMjRjZDgyMjY1ZWNlN2FmZTk0YmQxNjkgbGVnYWN5LXRydW5rCisyNDQ5NyBjMmJmZmE2NzJiNzU5YmY5YWYzNzUzMzMxZjdkZWU2ZTk4MTJiOTZiIGxlZ2FjeS10cnVuaworMjQ0OTggYWViY2U0ODViNTZiOWNiNTA1OWFhNjhhYmMxYTcxODllMGZlYTJkNyBsZWdhY3ktdHJ1bmsKKzI0NDk5IDAxODkxODZmNGVkOTE4MjI5MWZlNzQwNzdkNzhjZGI5MTE1OTBjMWQgbGVnYWN5LXRydW5rCisyNDUwMCBlZjZmNjkyYzc2ZTIyYTliZWYxZTc4M2QzYTlhOTA0ZDE5NjhiYWI2IGxlZ2FjeS10cnVuaworMjQ1MDEgMDhmMjFhNTM3NGQ5YTlmYjljOWFiMjRlYmNiOTRjM2FlMjNkNjJkNSBsZWdhY3ktdHJ1bmsKKzI0NTAyIGE2MjNmOWNmOTUzNTQyMzFhMmRjYmJjMjViMGMwZDI3M2FjODRkOWYgbGVnYWN5LXRydW5rCisyNDUwMyA2YTczZDU4ZTE3NDcyMmYyOWY4ZTE0YWM4YmUzZDAwZjJhOTk3ZTY4IGxlZ2FjeS10cnVuaworMjQ1MDQgMzNjOGQzMzVhMmM0Mzc3NjJlOGE3YzFhMDcxYjRiZWViMzMzN2E1MCBsZWdhY3ktdHJ1bmsKKzI0NTA1IGMxOGFkNTJkZWNlMzVjMzgxY2RjOGRhYzQ4YzAzOWJjMWE2ZTdjMzAgbGVnYWN5LXRydW5rCisyNDUwNiA0MjZjMGQyNGRlYmQ4YTU4ZWU3YjYxNmQwNTE3ZDNmNzJiMjZlYTVjIGxlZ2FjeS10cnVuaworMjQ1MDcgMTUxOWQ2ZmFhYjE1OTQwNDVlZGE1N2UzN2M1NzAxOTVmMzRiNDI2MCBsZWdhY3ktdHJ1bmsKKzI0NTA4IDViM2IyOTI0NzU3MzVhOThmZGNmMThlNzBmZjY0MGJjMDlhZjUwM2QgbGVnYWN5LXRydW5rCisyNDUwOSA5MjA5MDJmNWE4ODRjMDlmNDVhOGQwMTJmNDllNWRmZmExNjA0OGQxIGxlZ2FjeS10cnVuaworMjQ1MTAgYWQ3YjQ0MjRhYWI2ZjNiMzNiNGEzNDg3NGI3ZDY0MTU0YTdiNzFhNyBsZWdhY3ktdHJ1bmsKKzI0NTExIGYxN2EzN2RlNjI4NWFhNTFkZGVhYTkzYWM1OGI2OGMxMDQ4ZDc2NGUgbGVnYWN5LXRydW5rCisyNDUxMiA2MDQxNWJmNWY4ZjJhNDY2MWUwOWY5ZmE1YmM1ODRlMDc5YWNlN2MyIGxlZ2FjeS10cnVuaworMjQ1MTMgOTQ3OTMxMzkyNjk0ZWQzOWEzMmE5ZmIzNWYzN2UyZTFkOTBlMmU3MCBsZWdhY3ktdHJ1bmsKKzI0NTE0IGRiOWI1OTc2ODI5ZTQ0N2MzYTM2ZjNmYTk3YTJlZGMzZTM2NTZkNTcgbGVnYWN5LXRydW5rCisyNDUxNSBjODRkZjg0ODYxNjM2NmY3YWZiODc2NDEwODhlYjhiNzYxYzI1N2Q3IGxlZ2FjeS10cnVuaworMjQ1MTYgZDk1ZWI3ZWM0NTUzNTQyYjU4ZWFhMmMxNTI1Y2M0ZjdjZThlNWZhOCBsZWdhY3ktdHJ1bmsKKzI0NTE3IGY3OWU0NzE5ZGI5NjQ1ZjVjMzgwODU5NmVlNDhhMmNhMTk5OTc4NjAgbGVnYWN5LXRydW5rCisyNDUxOCA4NjRjYzU5M2JkZGEyNzdkZjk3OTlmNDAxOTMyZTc4M2U3MGU2ZWYyIGxlZ2FjeS10cnVuaworMjQ1MTkgODE5MjhjOWQ3MDExN2VlZDZkM2EyYzQyMDJhM2Y3YTMzMWQ0ZGM0ZiBsZWdhY3ktdHJ1bmsKKzI0NTIwIGJjZjY2NmU4ODMxMjFkMmI3ZTM3ZTcxNTNkYzBjMGUxNzY2MTNmN2EgbGVnYWN5LXRydW5rCisyNDUyMSBlYWQxZmEyNjk1MDJhMWNlNmZiNGZkM2I1OGQxOGQ1N2U4ZjBhOGE1IHJlbGVhc2UyMS1tYWludAorMjQ1MjIgZDgyNjVhMGMzY2YwMjg4YTZkMjFlOWVkYjljNTA1NTVmMzdjZDU3OSByZWxlYXNlMjEtbWFpbnQKKzI0NTIzIDJkMjE2NTBmNDZmODlkMmVhMGZjNWJkYTY2YjdiYWQ1NzFkNDUxNWQgcmVsZWFzZTIxLW1haW50CisyNDUyNCAxNTFiNjk2N2JkMjEwYjJjMTJjZTViMWQ3ZjhkOWYyODFkNjg1YjAxIHJlbGVhc2UyMS1tYWludAorMjQ1MjUgNjcwOWFkNGZlNzVlYzhlNTU4YzZlZWE5ZjFiY2Y5NTM0NDc1OGRkZSByZWxlYXNlMjEtbWFpbnQKKzI0NTI2IDNiMDllYTcyM2VjZTcyMmU5MWM4MDM5MjlkZTFkNjUxZjAyZjcwZTkgbGVnYWN5LXRydW5rCisyNDUyNyBkMjZlNjU5NTA3NDAyYzM3NmQyOGM1ZTNhYzc0ZDUwNDNkZjU4MTUwIHJlbGVhc2UyMS1tYWludAorMjQ1MjggMTk4YWViZTEyMzk5OGQ5NjVkN2FhYWZiNTE2MjE4ZWQxN2U0ZjIzNCBsZWdhY3ktdHJ1bmsKKzI0NTI5IGEzOWFmODAwYjlhM2VkOWY0N2U1MTRmNjBkMGJkZjljMmM4MzljOTggcmVsZWFzZTIxLW1haW50CisyNDUzMCAxNDhmZmQ5NTc2MThkMzJlYWUwOTRiZDk5OGRkNDM1NmFiMDlhYjIzIHJlbGVhc2UyMS1tYWludAorMjQ1MzEgNjU2YzRjZjUxNjVmYTgwZGMzNWE2NzY3ODRjYmNlNzQ5MDhkZjNjYiBsZWdhY3ktdHJ1bmsKKzI0NTMyIDkyMDVjZmI3NzA5NDY2NTAwNDE4MDgyZDliMDFhN2ZiY2U0NTFiYWIgcmVsZWFzZTIxLW1haW50CisyNDUzMyBkMjI5MGU5N2RlMTg3ZDNkZDk2NGQzYmFiYWEzNTM2YzY5ODQyMTQ2IHJlbGVhc2UyMS1tYWludAorMjQ1MzQgMzQzMjdjZjQ1Mjk5NGE4ZjA1YjM4NmFkOThkMjQ2NDI0NDlmNDY0YiByZWxlYXNlMjEtbWFpbnQKKzI0NTM1IDIyZDgyMTY3M2U1MjY3YTEzMzVkODhlMjNjYTI4ODIxNTNhMDk2ZjYgcmVsZWFzZTIxLW1haW50CisyNDUzNiAwMmQwMTcwMzk3ODg1YzZkZTc2NTc4ZDc1NDAwMGI4YTIxYjM0OGFhIHJlbGVhc2UyMS1tYWludAorMjQ1MzcgNGFmMzE4NmU2NjMxNTE4ODE3MGIwN2IwYmYyYjk3MWVlMjQ1M2U4YiBsZWdhY3ktdHJ1bmsKKzI0NTM4IDVhYjBkYzdmMmViMDQ2MmZmZTM0NTFlNzgwZjE4OTY2YzA0YzkwZTYgcmVsZWFzZTIxLW1haW50CisyNDUzOSA5NWI0MmYxMDU1YzI0ZTcwYzE5NGJmYWIwYWM2NzI1MzczNzkwNjM2IHJlbGVhc2UyMS1tYWludAorMjQ1NDAgMGJjODgzODQwN2JiNTc5NmU4OWFiYWZhZDZlYjEzODZiZGYwZGJmOSBsZWdhY3ktdHJ1bmsKKzI0NTQxIGFjY2JlNTY4NGFjNjE0ZDVlYjMzZDk5YzM5ZjgwZjExYjJhMjE3ZmUgcmVsZWFzZTIxLW1haW50CisyNDU0MiAwMGVjZmUxOWE4ZDI5ZmVhNDRlZGQyOTM4NmM5YWE4MzAxN2FlOWExIHJlbGVhc2UyMS1tYWludAorMjQ1NDMgMDYwYzM3NTg3OTUxYjFhODQxYzUxYTQyYWI5YWFhODBkNjRlNjg0MCByZWxlYXNlMjEtbWFpbnQKKzI0NTQ0IGEzZDAxYTIyNTMyOTczZGI2MTMxY2JlMTU3ZmNhYWFhMDZiMDg0NTkgcmVsZWFzZTIxLW1haW50CisyNDU0NSA0OTMwMTk4ZjkyZGJmMzYzNDFjMDIwMjc4ZGFlNmQyZGQ5OTUwMjU5IGxlZ2FjeS10cnVuaworMjQ1NDYgODAzY2NiZTNlZTdjYWI1YzIxODI4YTBjZGI1OGNlNDczZThjYTFiMyBsZWdhY3ktdHJ1bmsKKzI0NTQ3IDlkYzg3ZTYxYjVhMmUyMmVlMjI5ZTAyY2M5OWY3MWNiOWJkZTZiNzUgbGVnYWN5LXRydW5rCisyNDU0OCBiNzgyNDkwZGE3ZjA4MjE4NDI2MTQwZTBiMjVjMDgxOGVjNzM0YzBkIGxlZ2FjeS10cnVuaworMjQ1NDkgODlhNWMxMTA2YjgyZjE4MDg3MjBmYjc5NThjZGU1MzlkOWZkYzJiNiBsZWdhY3ktdHJ1bmsKKzI0NTUwIDQyZDA4MTk1NDZkNjA5ZmI4MmI5YmMyNjM1ODU4NGM3YjNmZWQ5ZDQgbGVnYWN5LXRydW5rCisyNDU1MSAzZTg0NjBmYjJmYmU0OWY4MDc2ZmU1MzE4ZTcwNTc0NWVlMGE1NzdjIGxlZ2FjeS10cnVuaworMjQ1NTIgOWQ2ZmJjYjk1MGY5YjM0YTRkYzFkYmMxZTQ1NTg3MTE2M2JlZDZhZSBsZWdhY3ktdHJ1bmsKKzI0NTUzIDU0ZGRjMzc5ZDRmYzI4OTgwMjg5YzAwMDQwYmZmOTQ5MDU0YjdiZGEgbGVnYWN5LXRydW5rCisyNDU1NCBhZDg3Njc0ZGUzYTFiM2M0ZWZlZTI1NjNhZDI1NzQyZWVlZmQ2ZGVlIGxlZ2FjeS10cnVuaworMjQ1NTUgNWMwYmE2ZWJjNjJkMGNkYjkzMjUzNjM0NTBiNjFjMWEwYTJiMDAwNyBsZWdhY3ktdHJ1bmsKKzI0NTU2IDIwMzQ5MDJiMGYxYWM4NGFmYmI1ZWU5N2MxOWY4MmRhZGIxZWM3YzUgbGVnYWN5LXRydW5rCisyNDU1NyAxMjg5YTA1NTllNWE0NGRkMWQwYzdlMDdhNTRiYzc1YTQxNjU0YjhmIGxlZ2FjeS10cnVuaworMjQ1NTggYmE2YTdhNWMzMmU4NzE3MzFiZmM3ZDU2MzBiYWVjNmQ5MDA4MTg3NiBsZWdhY3ktdHJ1bmsKKzI0NTU5IGNiOTIxZDQ4M2UwMDk0MmU0NGZjMTI2M2MxOTliYzRjOGQ1YmFlMTcgbGVnYWN5LXRydW5rCisyNDU2MCBiYTE2ODU2YmZiYWJkOGQ0ZGVhMDEyMGY2ZDkwMGU5ZDA2ZWQ3MjJkIGxlZ2FjeS10cnVuaworMjQ1NjEgMDYyYzZmNDcxMDZmYmUxYWNmNGM4MDhmYzMxNDAyZGE0YjYyYWYwMyBsZWdhY3ktdHJ1bmsKKzI0NTYyIDIyNGVkYmFmNjMwMTkxNTQ0MjUxYmEyODc1MDcxZTc4ZTMzYjMyOTYgbGVnYWN5LXRydW5rCisyNDU2MyBiMjZkNThiOTgxMGNhZDdlODMxNmMyMDYxODczOGYwMzdmNjhkZTUxIGxlZ2FjeS10cnVuaworMjQ1NjQgNDVlMTE3NzQyNGUxYzc5OTY4NzJmNWJiZWUxMGI3M2VlNzVkN2ZlYSBsZWdhY3ktdHJ1bmsKKzI0NTY1IGUzODZmNmUyNmE0MmUzODFmNzg0ZTllMTkxNWY1MGJjMzBmYWJjYWQgbGVnYWN5LXRydW5rCisyNDU2NiBkMDI0YTVjNzJjYjU2M2M0YjQzNDQ2OWM0ODNkYzk4YmFmODJkZDg2IGxlZ2FjeS10cnVuaworMjQ1NjcgMTkxODZiMTdkMjVhYTM5MDBkN2JhYTBhODgzZjBlMDkzNTYwNzJmZCBsZWdhY3ktdHJ1bmsKKzI0NTY4IDE0NTA3NjcxYzAyY2M5OTg5ZDI5OWFjMTMyZGE2YWZmOGI2NDI2ODIgbGVnYWN5LXRydW5rCisyNDU2OSBmYmY2OGM1OWQ2NmNjZDI2MDcxYTc0YTg3YWQzNzUzMGQ3YWFkNzM5IGxlZ2FjeS10cnVuaworMjQ1NzAgMDhkYmY2YjNjMzE2NDMxOGViYjI1NzBkYmE4N2FmMTQ3NWE1YjA2NyBsZWdhY3ktdHJ1bmsKKzI0NTcxIGU1ZDI5NTU0MmM3ZmI5NjYxMTY5YzE3YTg4MDE1ZGJiZjkwMDcxMTEgbGVnYWN5LXRydW5rCisyNDU3MiAxMDJkMThlYTAyY2ZhYzM5YTIxMzhlYWI3MjllYTI1OTFjODhiMDNkIGxlZ2FjeS10cnVuaworMjQ1NzMgYzUwNmJmN2IyNmI4YTBmMWY5OGYyY2U5YWYwY2NkMzk2YjdjODY1MiBsZWdhY3ktdHJ1bmsKKzI0NTc0IDQyNzFkYTcwZWQ5ZTEzNjIxZjNlNTc1NWJjMGViMjQ2NGI5MmQzZTMgbGVnYWN5LXRydW5rCisyNDU3NSBlOGZlYTk1YTgyYTQwMzYwNzgwYWRiMzAwYmFiNGY0NzI3NGFiNTM1IGxlZ2FjeS10cnVuaworMjQ1NzYgMmYyYWJlZWVmZDg3OGJlZjMzN2M3MTZiZTg5ZTAyMjU5ZDUzMjVhZCBsZWdhY3ktdHJ1bmsKKzI0NTc3IDI2NTY3ZjI4Njc3ZTE0YWZiNDVlZDlkNWVmM2E4MzhmNjg1YTA2YmMgbGVnYWN5LXRydW5rCisyNDU3NyBhYmVjNGUzYjA4MWYyZjgwMmMwZjI3YmMxZWE3MGVkNzUyYWJkODRjIHJlbGVhc2UyMS1tYWludAorMjQ1NzggNGRhZTg0MmFhN2M1OGZmZGU0YjQ3YmY5NTAyODNmNzA3ZDM3OTM0NSBsZWdhY3ktdHJ1bmsKKzI0NTc5IDdhN2Y1NTdiNGQ1NDE4ZWIzNzAyZGE1MmU5NWRjOWM4M2RlOTZlMmIgbGVnYWN5LXRydW5rCisyNDU4MCBkMjk2ZTZiYjE3ZTU0Y2YwN2NmMDFlMWFhZmNmYmFmYjc0OTBjOWRlIGxlZ2FjeS10cnVuaworMjQ1ODEgMmI1ZGM2Yzc3YzNkZTZkZmI1ZjMxNWY5NTliOWEzYzc0NTdlNWEwNyBsZWdhY3ktdHJ1bmsKKzI0NTgyIDk3NzA5ZmQ4ZmRhMDI2YmVlOGFhM2Q3ZThlYWI1M2IzYjMxODZmOTcgbGVnYWN5LXRydW5rCisyNDU4MyBhYzNmZGQxNDEyZDllYWE4M2M3Y2MwMTU5MTQ5NTZkNjUwNjYzMDY5IGxlZ2FjeS10cnVuaworMjQ1ODQgZDY0ZGZiZGM1ZjhjNDQ4MDZjMDI0M2MyNjAyYjMyYzIwMTA2MWM0YiBsZWdhY3ktdHJ1bmsKKzI0NTg1IGVjYmJlY2NkZTA3ZGQzYjk2MDVlNGNiMDg1YTc5MjkzZTg2M2MwZWYgbGVnYWN5LXRydW5rCisyNDU4NiBjZmJlMzhhMDNlOGMxOTA3YzBjYjJlNjk5YTMzMzY2Zjg0MDJhNzk2IGxlZ2FjeS10cnVuaworMjQ1ODcgYjAxMzIzYmZjZjZjZTkzMjlmNDkyZmUyYTg4NDAyYmI4ZTY2OTZmYyBsZWdhY3ktdHJ1bmsKKzI0NTg4IDI4ZjRjZWEyMDlkNzhlYTg2YTUyNzlkZjg2N2Y5MDUxOWMwZTI2MDUgbGVnYWN5LXRydW5rCisyNDU4OSBmNzAyZmYzOTBlNGRjNzczZDJjMWYyNTZhNThhNWExMjhjM2NiMjVkIGxlZ2FjeS10cnVuaworMjQ1OTAgMDNmMzE1NWNiNmViZTE3ZmM2N2Q2ZTU4YWFmYzc3ODViOGY2NjY2YiBsZWdhY3ktdHJ1bmsKKzI0NTkxIDY0MzI0NGY3ZjQ2NzA4ZDFlNzE5NGQxMzgxYzk3YjIzMjBiN2QyYzggbGVnYWN5LXRydW5rCisyNDU5MiAzNjU3YmVmYWJhNGYwYTgxZGExYmUxZWViYmVmNDIyMjk1NWM1MDg0IGxlZ2FjeS10cnVuaworMjQ1OTMgOTkxYjE3MGNmNDM4NWQxMDI1NzFkYTNhOTI2ZWIwMjNmMDM1YTQ1NCBsZWdhY3ktdHJ1bmsKKzI0NTk0IGQzNWE1NzcxYzRjNjlmNGUzYjc4NjMwNzIxNzgxODAwNTRkNWM4M2UgbGVnYWN5LXRydW5rCisyNDU5NSBkNDkwN2NkY2MyOTk0NTQzNjY2MzQ1ZjhjMGJkOGQwYjhjNmU0NTAyIGxlZ2FjeS10cnVuaworMjQ1OTcgNDNiOGE5NjJhMzJhZWVjZWUyM2QyYjZiNGYyMDk5NGU5YWQ3MDhhYyBsZWdhY3ktdHJ1bmsKKzI0NTk4IDUwZjI4ZWQ4MDQ0ZmZjMWM0NDVmYzczYzBmZDFhOGQxNzc5YTE5NjYgbGVnYWN5LXRydW5rCisyNDU5OSAxZTdjMGI4NDk1ODRkN2ZmN2ZmYmQ3M2ZhMjBmZjYwYTE1ODI2Yzg0IGxlZ2FjeS10cnVuaworMjQ2MDAgZDUxZjIxNThmYTc5MDcwYTRhZDE1MzU4MTgwMGE1MGJmNGFhM2YwZCBsZWdhY3ktdHJ1bmsKKzI0NjAxIGQwYzIwNDBmZWRlN2Q0ZmFkODVmM2E5MTAwZDk3OTJhNDRlMWQ2ODEgbGVnYWN5LXRydW5rCisyNDYwMiA3NzZkZDJlNzY3OGUwNDNkNjVlODRjMWQ0MDg5MWNhYTIzZGJhZTM4IGxlZ2FjeS10cnVuaworMjQ2MDMgOTgzNWJhYjI4NzZlNDJmODNkNmJlYzU0YTBiNzgyYTYwODA4ZTMxNCBsZWdhY3ktdHJ1bmsKKzI0NjA0IDIzNzVkMmRmYjViM2E2MmI4NmNkYThmM2JiYzI5NDRiZGFlOGZiMzkgbGVnYWN5LXRydW5rCisyNDYwNSBlOGRkYWIxMzczMmFiYWQwYjI5NDljOGI5Y2JjNjNhZGVkNzBlMzYyIGxlZ2FjeS10cnVuaworMjQ2MDYgYjgxMGMzMGI0YWExYTdhZDkwZTA3ZGJhOTZkMDQ3NWM0ZjdmNWJjMSBsZWdhY3ktdHJ1bmsKKzI0NjA3IDI0YTZjM2ZkMGU1OGJjMGExOTQzNmQwYWU3Y2Y1NTQ1YzgwMmVhODQgbGVnYWN5LXRydW5rCisyNDYwOCA1OTg5NDQ5NmI1YzczNjJkZDRlYzljZmE2NTY0MzFmNDE5ZDVhMzEyIGxlZ2FjeS10cnVuaworMjQ2MDkgYmI3OGE1MmI4ZmZjZTI3MDVkZTgzYTk1MTA2MDI2ZTUyYzE2Y2JmNCBsZWdhY3ktdHJ1bmsKKzI0NjEwIDExOTQyMjQzMGU4ZmNiZTFmMjBjOTA4OThhNzVmMTVlNGExOTkzN2IgbGVnYWN5LXRydW5rCisyNDYxMSA5YTI0M2VlMzU0YTEzNGNjNWQzZmFiNzczNmI1N2Q1NzM0NjE2NjVjIGxlZ2FjeS10cnVuaworMjQ2MTIgNjJlYTMxN2RmYzdmNGEwYTU4ZTVmMDI2ZWY2ZDViNmQ1NWYwMjU2MSByZWxlYXNlMjEtbWFpbnQKKzI0NjEzIGY1NTMyY2MxNTE0YjdkYjYzNWIwNjY0ZTc4NjYwZTk0ODE4MjdmNTIgbGVnYWN5LXRydW5rCisyNDYxNCAxMmMwOTRhMjMyNzM0NmU2YjliM2E0OTEzYTNmOWM4ZDQwY2ZiZWNkIGxlZ2FjeS10cnVuaworMjQ2MTUgZGU3NjQ2NjNjMzI1YzA0NjdhNDQwMmY2YTZlMTNhYTg4MmMzZDlmMCBsZWdhY3ktdHJ1bmsKKzI0NjE2IGI2ZjU5MmVlYzI0MWQ2ZWNjY2IyNmQ5Yzk4YjNiNzIyZjM0YzNkZTUgcmVsZWFzZTIxLW1haW50CisyNDYxNyBkOTgwZWJjYzY5NmEyODgyOTVhODQ0N2NjY2NjNWQzNjhiZGE2MGRmIGxlZ2FjeS10cnVuaworMjQ2MTggZDg2ZDZlMGQxNThjNWM4MjQwNzQxMmNjMTIzZTA3Yzc0YzM4NjhmNSBsZWdhY3ktdHJ1bmsKKzI0NjE5IDBkMmVlZjYzNmQxMjljNTc1ZDkyZDk4NTg1YWE2NzY2MmU4OTBiZGEgbGVnYWN5LXRydW5rCisyNDYyMCA4OThjODI1ZTA4YWNjY2Q2NDUwNWYzZDJlNjI3OWZhZTU1ZDc4N2I1IGxlZ2FjeS10cnVuaworMjQ2MjEgY2I2MjAzZmYyOWU1YTFlM2I1ODgwMDcwNmZjNTI2NDRhNTRmY2M0OSBsZWdhY3ktdHJ1bmsKKzI0NjIyIDI2MDc0MzNiMTNlOWU4MWVjYTI4MmQzMmEzNjAyYTQyNjgzODk5YTEgbGVnYWN5LXRydW5rCisyNDYyMyA5MDgwNGEzNDg5MjNkYzdmMjc2OGJkMDM3OTM2MDYyNTFjN2U0ZWZhIGxlZ2FjeS10cnVuaworMjQ2MjQgYmZhNWY3YjRlNzg4NTk4YmVmZjFmMjBmYzg1N2VjMDNkNWJiZmQwZiBsZWdhY3ktdHJ1bmsKKzI0NjI1IDAxMDI2OTI0MTdhZjBmZTNlMTJlMWIyMTdlYzFmOTU1YTMwY2U2YTggbGVnYWN5LXRydW5rCisyNDYyNiA5MWRkMjIzODI5YzZlMDM1NjAxMWJlMmM2YzFmNGJiNDc5YjE2NWE4IGxlZ2FjeS10cnVuaworMjQ2MjggNGQ1MDk4Y2ZhNzgxYmZlM2E3YmYzM2VhNjY0YmIyYTE1OWMyZjFhZSBsZWdhY3ktdHJ1bmsKKzI0NjI5IDliMmQxZjhmNGJlMzQ5ODNiODQwOWYyOTEwM2YwOTBlNThhYzVlZmQgbGVnYWN5LXRydW5rCisyNDYzMCAwYzJlYTIzM2FkMjQ5M2I1MDQ5YjBjMmQ4MmVlYmMxMGZlOGE1NWI0IGxlZ2FjeS10cnVuaworMjQ2MzEgYjU4M2NhZjFiZTg4MmIzMjk4MDliMTkwM2Y5OWU2MDBlZWNjYjgyMCBsZWdhY3ktdHJ1bmsKKzI0NjMyIGJiNTY2ZjUyNWYxMmNmODhlZGNiYTAwN2I5ODdjZjgzMjg1NTM1MjMgbGVnYWN5LXRydW5rCisyNDYzMyA0YmNmYjlkYzU3ZTAzZGNiMzUwODgyZTc2MDc0NmQ3MzEwYWZhNjgxIGxlZ2FjeS10cnVuaworMjQ2MzQgNjBkZjJiZjg1NGFjZTQxN2I3MTAwOGE1NDYwMThhZDEyYzIzOTVhNyBsZWdhY3ktdHJ1bmsKKzI0NjM1IDNhMmNmNWU0NTY1NmE5OGE3NTcyOTQzNWEzNjNkNmM5YzBhZjBhOWIgbGVnYWN5LXRydW5rCisyNDYzNiAxODUyY2FiYTcwMTRiNDE1NDk3YjM5OGIyZmIyMDk1ZjFkN2ZkNDY1IGxlZ2FjeS10cnVuaworMjQ2MzcgNjQ0ODg1MTE4ZmU3Nzk4NzZjNzM5OWJhYWIzNGJmNTZkZGU3M2E3MCBsZWdhY3ktdHJ1bmsKKzI0NjM4IDc1MmZhNDg1YzRhYmE1ZjQ3MmExMTI1YWY3NjkxYWVkOTJmNTk5NTAgbGVnYWN5LXRydW5rCisyNDYzOSA4YTI2YmIzNjlmNTM3N2Q2OGEzOTcxMGZjYTQ1NGVmNzZkOWEyY2NiIGxlZ2FjeS10cnVuaworMjQ2NDAgYzlhZGFjZTNjODIzZWZkZjU3ZDRhZmQ5OWEzZTYwMjI0MTVmNzBkMCBsZWdhY3ktdHJ1bmsKKzI0NjQxIDM0YTFhNTBlNmFiNmY4MTkxYTE2YzZlMmZmM2JmNjRiZDhkZWVkMDMgbGVnYWN5LXRydW5rCisyNDY0MiA3ODRjOGJjMGIzMDM0YTU0ODVhM2ZkNzlhODJhMzZmZTAyNjgyNWZhIGxlZ2FjeS10cnVuaworMjQ2NDMgODQ4ZjY5ODg4MjlmMWEyZTU0MGQ0ZmZmNzdmOGE3NTIwNjVjMzFlYyBsZWdhY3ktdHJ1bmsKKzI0NjQ0IDQ0MjBhNGJkOTZhNDRjMWEzMGM1YTA5Y2I3NjQyNmRlZWM3OTFjNjEgbGVnYWN5LXRydW5rCisyNDY0NSAyYTdkNWZmZWNlMWM5Yjg3YmY0NDNiOGE1YzgzNjE3OTM5OGQ1NmFjIGxlZ2FjeS10cnVuaworMjQ2NDYgZmJiZDhhNGNhN2E2ZmNjNWI5ODk4YTliN2VjNmQwNDdiODQyY2JmNSBsZWdhY3ktdHJ1bmsKKzI0NjQ3IDZkODc0YTkxYjU4YjgxYjg4M2EwYzllM2ZhM2M2ZGY0NTFjODJiNTYgbGVnYWN5LXRydW5rCisyNDY0OCBjZjJmYjIwYTZjZTdlYjNiMDJlZDI5ZWJhYTYzYmFkNjEwMTcxNGUzIGxlZ2FjeS10cnVuaworMjQ2NDkgMThmNjA4MTBiOTRhM2YwMTBmZTRkODE0NWUzZGUzNTdmZjdiZWY3ZCBsZWdhY3ktdHJ1bmsKKzI0NjUwIDdjNmRmOTY0YjA0YmI0MTRhYjQ1YjliYTU2MmIyMGI1YzVjMWIxZTAgbGVnYWN5LXRydW5rCisyNDY1MSA5M2Y1NDA1OGVmNDhmNWRjYmZkOWNhMDUyMmM1NjM5MjM0MmM0NDUwIGxlZ2FjeS10cnVuaworMjQ2NTIgNjgwNDBkYjA4NGI2YWE1N2FjZDVlNmYyMjY3ZTVmOTAyOTA2NzUzMSBsZWdhY3ktdHJ1bmsKKzI0NjUzIDUyNWM3NzM2OGNkMDU3ZGYzNTk3NmNlN2JhODg0ODdlMmZhM2UzMGQgbGVnYWN5LXRydW5rCisyNDY1NCAzZDY4ZTMxMTBlMWZlNThlZTZlNmU1MzIxY2JlNDdjZDM0MTM3NTc3IGxlZ2FjeS10cnVuaworMjQ2NTUgMGIxZmFmMTE2ZjYzZWE4YzU2ZDE3ZjI0Nzk1MDEyYWE5ZDQxNzBhZiBsZWdhY3ktdHJ1bmsKKzI0NjU2IGEzOTJlMWZhZTYxZGQyMmZlOTEyMjgxNDVlZWUzY2UwOTlkMjIyMGEgbGVnYWN5LXRydW5rCisyNDY1NyA3YTU4Y2QzMzdjZjQ0MGExYzExMGQxMmM5ZTEyNTA1MzVkODIzZjg5IGxlZ2FjeS10cnVuaworMjQ2NTggZjdlYWVlYWM5YzY1ZTdiZTRiODFjODczNmQ4NWIyYzNlNmU5YWIyNCBsZWdhY3ktdHJ1bmsKKzI0NjYwIGQxZjkzOGVlZTcwMGEyNjI5MTc3OGFkOTA4NTE5ZjczMGU3ODBmNzggbGVnYWN5LXRydW5rCisyNDY2MSA4YThmNTdkY2Y5ZmU3MzYzOTdmNDk5YjMyNTMzODdhNjM1ZGE0NDY0IGxlZ2FjeS10cnVuaworMjQ2NjIgZjU5YzZiNWRkMTIyMmIyZmNiMjJkNTRmYWZlNmU3MjI4ZDc0OWVkNSBsZWdhY3ktdHJ1bmsKKzI0NjYzIDEyMzEwZDY0M2Q4ZDcyOTc2NWQxMTMyYzQxOTZlMzJiYjA5MmNjYmMgbGVnYWN5LXRydW5rCisyNDY2NCA5MzhiNWJmNzRmYjk0ZjViZjg1NWY3ODMyZDBhMjMzZDZhNDg2MTk2IGxlZ2FjeS10cnVuaworMjQ2NjUgYTUxNDZmODQzMDEwMDYyNzUwYjM0MWU2N2I5NzMzMWY3NzU0OWI3OSBsZWdhY3ktdHJ1bmsKKzI0NjY2IGJlOTkwZTcwM2QwZjE0NzJjZmRjNzQyNGY5MTE4ZWY2NDZiMjZjMDIgbGVnYWN5LXRydW5rCisyNDY2NyBiZTMyODNlZDhmOTc1ODg0MzkzMDRjODU5NDAwZTI3NjcxNmRhYjhlIGxlZ2FjeS10cnVuaworMjQ2NjggMjU3YzkzODkwMGE2ZTVlM2Q0ZTc4MDFmZThhOGY5ZDAxMTlkZDk4ZSBsZWdhY3ktdHJ1bmsKKzI0NjY5IGZiZGRiNjRkMjFjMmNiM2Q5OGVjYmZiMGM5NTE1MjE2NmZiODM4NzUgbGVnYWN5LXRydW5rCisyNDY3MCAwMDNkYzU3M2IyOTUwY2ViNGU3ODMxNTI2MjYxZDQ1OGU1YTU2ZTdhIGxlZ2FjeS10cnVuaworMjQ2NzEgYzY3MDQ2ZWY1Mzg1NjdiY2Q0YWM5NTcyOWMyNzBlNTBiNTM1NDgyZSBsZWdhY3ktdHJ1bmsKKzI0NjcyIGRlM2M4OGI1Zjg4OTYyYmQ3ZmUxYTNmNjQ1NGE5MDk2YTBjMWE2NzMgbGVnYWN5LXRydW5rCisyNDY3MyAyZWIyNWVmMzQzODZjMzk3NWRkMmRjZjJlYjNkNzBhN2FlMzk4ZDJjIGxlZ2FjeS10cnVuaworMjQ2NzQgMmMyMDhkYmYwY2IwMzg3NTcwN2JkMTA3Y2Q3MWU1Y2EzYmY1ODc1OSBsZWdhY3ktdHJ1bmsKKzI0Njc1IDI5MDcyZThlOGQ5ODJiMWFmYmE0MjY3OTFhYjNlNzE5OTdlY2NjYWYgbGVnYWN5LXRydW5rCisyNDY3NiBlOGIwOThmZTNkZjg3OGY4YzQxYmRkYTM4M2UwM2NlYWU4ODc3MWU1IGxlZ2FjeS10cnVuaworMjQ2NzcgMzAxMmY2MjZkZjdjYjM1ZTEzMGNlZGEwOWI2MDJmNzNjODA0YjMyYSBsZWdhY3ktdHJ1bmsKKzI0Njc4IDcxZTVlZWNkNTg5ZTU1YzMzNTZlY2JjY2YwYWQyYzgwMmY3ZjhmNWUgbGVnYWN5LXRydW5rCisyNDY3OSAwNDAyMzBjMTU4OTA0N2E3ZTJjYzJmNWVhOTM4N2ZiYjU1OWE3ZjEwIGxlZ2FjeS10cnVuaworMjQ2ODAgNWFiOWE2NWUyMzQ2NjE0NjE1MzViMWE0NDcxZmM2ZjA3YWM2ZmViYyBsZWdhY3ktdHJ1bmsKKzI0NjgxIGY1Nzc2N2Q3NmRlNmRiN2Y0ZjRkZjUwYTQzOWEzNzM0NWRiNzRjMzEgbGVnYWN5LXRydW5rCisyNDY4MiA4YTg5ZmYxZTA2NjJkYjRkYTA0ZTU5ZTZiN2VhOGUzZmM4NmZiZmExIGxlZ2FjeS10cnVuaworMjQ2ODMgZDg3Y2E5MzJlNzBmY2QwYmE1MDBhYTg3MDhlY2NhNTEzNjQ3OTQ1YSBsZWdhY3ktdHJ1bmsKKzI0Njg0IGFmNTE2MDRkMDBkYjI3MTQ0OWI3N2YxM2I2ODE2YTUwNjdiN2ZiYzIgbGVnYWN5LXRydW5rCisyNDY4NSA4YTAzNTA4N2ViNzI5Nzc2YjI3ZGVkMmRhZWJmMTk0ZmU3MDUxZTA2IGxlZ2FjeS10cnVuaworMjQ2ODYgNzM0NjZhNzZmMjVlMmU3MTcyNTI5MDQ4N2FkYzdlYTJmZTE0NDMxZSBsZWdhY3ktdHJ1bmsKKzI0Njg3IGMyOTY2YTdiZDExMzUxNDk4MzlkNDNlMGIxZmRjZTBkNjk4MTJmYTIgbGVnYWN5LXRydW5rCisyNDY4OCBjNTkzOWQwYzc0N2E0OTJjMjUyZWZjNDcyOGMzY2ViYzM2MWFlMTY5IGxlZ2FjeS10cnVuaworMjQ2ODkgNDk3NzJkMzE4NDQwYjhiNDk1NmJhYWQzMDY0Y2E5ZjUwNjYwMDU3YiBsZWdhY3ktdHJ1bmsKKzI0NjkwIDdlMGQyZDU5YmJjZTliN2VjNDg3NTkxYmQ3NjY2MjVkZTljYTY4OTAgbGVnYWN5LXRydW5rCisyNDY5MSA1MGQwMzY2ZThmMDU4MjJmOWNlYjgxMzRjZDEzNDg5MTFkMDcwZmU3IGxlZ2FjeS10cnVuaworMjQ2OTIgNWY1NzEzNDRjODljY2YwMzI2NzBiMGRkNzE4NjJlYjc5YjMyYjNlZCBsZWdhY3ktdHJ1bmsKKzI0NjkzIDExNmFmMmYwMTQ0MmE5MDBiMDg4ZGU3ZTYxNzkwYTI1NGJkMGRhNWEgbGVnYWN5LXRydW5rCisyNDY5NCA3NDNmNjdiZWZiNTdlOTUzMjY4YzcyN2U1ZmNhMTNjMmE1ODNiYjk5IGxlZ2FjeS10cnVuaworMjQ2OTUgNDRlYmVhYjI2OWM1YTc3ZWZlMjA4MDAyZmM4Yzk3OGNmZWU3YjVkMiBsZWdhY3ktdHJ1bmsKKzI0Njk2IDkxMzQ1OGVhZWY5MDBiOWMxNjlmYTRiNzU2Zjg0YzdlOGFjZDJlNTEgbGVnYWN5LXRydW5rCisyNDY5NyBkMTZiMzI3MTgxYThkNmIxNjEzZDIyNjc1MWJlNTZlZmQyY2MzMzBhIGxlZ2FjeS10cnVuaworMjQ2OTggYWJjZDJmNTJmMzE2ZGEwN2YzMjRkNWE0YzE5MTRhNDEzMTA5OGZlZiBsZWdhY3ktdHJ1bmsKKzI0Njk5IGM0NGM5MTE2MDZhNDRjZjcxM2EwMjBmZTA0YTgwYTNhNmYxZGE4OGYgbGVnYWN5LXRydW5rCisyNDcwMCBlYjc4ZjAzZGNkZWM2ODMwMjgzZjNhMWU3MDllNDYwYWJlMGUzMmEyIGxlZ2FjeS10cnVuaworMjQ3MDEgODFhNTc4ZWI3MzQ2Mzk1Y2ZkNzcyZWZiNmVhOTA3ZjE2ZWRkZjk0ZiBsZWdhY3ktdHJ1bmsKKzI0NzAyIDQyY2Q1MDU5NGQwZDk3ODJkMWM3YjYwM2FiYjIxMGY3MzJhZDg1MTMgbGVnYWN5LXRydW5rCisyNDcwMyBkZmFjYzczM2NiZjRiNWM5NDU2YzI3ZDJmZTVkM2YxMzA0Yzg1NTQ3IGxlZ2FjeS10cnVuaworMjQ3MDQgNzUwMzdkODZiMTEzNjMxODE3MGY4ZWM3ZTllZDAyYzI5ZmMzMjQ1MSBsZWdhY3ktdHJ1bmsKKzI0NzA1IDk2YmJiM2QwYzZhMDQ0ZjAxNjI1ZTFhYmU3ZWM0NTdmNDVlMWVlNmQgbGVnYWN5LXRydW5rCisyNDcwNiAyYzMyZmM1ZjIzYzAzNzA0M2YyZTVlMWJlYjczMWRiMzM3YjZlNzFmIGxlZ2FjeS10cnVuaworMjQ3MDcgNjU3OGM3ZGMzMjhiMWU3Mjc2OWY5OWJlNGQ2MjQ1ZDkyYTljMTY2OSBsZWdhY3ktdHJ1bmsKKzI0NzA4IDNmM2VmMDc0MzUzN2IyN2E0MDg3MGViZTdkOWZmMzgwYTAyMjFhMGYgbGVnYWN5LXRydW5rCisyNDcwOSA4MmFmNTRiNDM4MTc3NTFjZTNlNGY0MTA0YmQ0NDUwMjcwNWQwNWM1IGxlZ2FjeS10cnVuaworMjQ3MTAgNTYwMjIyZTlkNDcxMGIwYTRmNjI3NWYyYmQ3NTNhYTI2NWQ0ZmYzMCBsZWdhY3ktdHJ1bmsKKzI0NzExIGVjMzJlNTlkZjQwMGJiNzY3ZDQwNzJkZTZjMmVmYjJmOTQwMDEzMDQgbGVnYWN5LXRydW5rCisyNDcxMiA1YzliYTI0MTgzOTAxYmY1OTI0Mzc4YzkxZTkyZWYyMjc4ODg4MmYzIGxlZ2FjeS10cnVuaworMjQ3MTQgZGUxMjU3OTJiZmFhZGRkMDgyYTc5MDZiOTI1NmMwMjRmY2FiNWFkMyBsZWdhY3ktdHJ1bmsKKzI0NzE1IDMzZDU5ZTE4YjY4ZDQ0NGEzNWQ1NzdjNmZmYTkwNTQxYmY4ZGZiOGIgbGVnYWN5LXRydW5rCisyNDcxNiBjYjA4YmM2OTg2ODU5ZTc0ZDY1YTY5YWMwNDc5NDc1YmQwODNhYzIxIGxlZ2FjeS10cnVuaworMjQ3MTcgNmRhNjA5MWEzMWVlZjIwOWE2MTE0N2MxOWJkM2U4OGJmMTQxNGU1ZCBsZWdhY3ktdHJ1bmsKKzI0NzE4IDA1YmM1OTA1MjI0OTM0ZWZhNDM2NDA4MDMzMmIzM2M2MTFiYzQwMGMgcjIycmMxLWJyYW5jaAorMjQ3MTkgMjJjOTg4Y2MxNTJkMTIyYjI0NzE3ZTc2ZGM2NDA4MzdlOTUyZDkyYSByMjJyYzEtYnJhbmNoCisyNDcyMCAzZDk3YTA1NGY5ZDRhZmU1YTZhNzg2ZDNiNmU4MTdjZGYwYTEzN2E2IGxlZ2FjeS10cnVuaworMjQ3MjEgNjk4YjZlZWI5YTg2ZDg5MzgxYmIzMzU5YTgyNDhjMWIzOWEzZTc0OSByMjJyYzEtYnJhbmNoCisyNDcyMiBlYmY4YTAzNjE1MWQ0NjVjMjU5NmVhODJjZjBhMjExYTkwZjNkZTdhIHIyMnJjMS1icmFuY2gKKzI0NzIzIDIwNGQxZDViMDhkNjhhOGM3OGY1NzA4Mzg1ZGJiYTI2ZTk1MWM2ZTggcjIycmMxLWJyYW5jaAorMjQ3MjQgZmJkNTdlZTViNzdkNzgyNTAwOTI5MWNlNzVhMWQ1ZDg2YTIyMDkzNiBsZWdhY3ktdHJ1bmsKKzI0NzI1IDNjZTg3MWEwNDU1YjUyZDVkYjQ0MjFhYjkwZmQ1NmE5YmZlMTMxYzYgcjIycmMxLWJyYW5jaAorMjQ3MjYgMzYzYjJmNzUyOTM1MWVkY2FiYjA1ZTliYmQzOWYxMjYzNTE3ODIxYSByMjJyYzEtYnJhbmNoCisyNDcyNyA2ZWE3MTkzYmRjMmVhZmQxOTQzZTVhZDgzNTdhOTIyODA2YjZmZWUyIHIyMnJjMS1icmFuY2gKKzI0NzI4IDA2NDMxMTE0OWNiNGQzZGZjNDhiZWUyZmM0ZWM5MTdjMDdlYzZhYzEgbGVnYWN5LXRydW5rCisyNDcyOSAyYWZlNDJmMjQ1NTkwOGYwZDAwZTQzZGJmYWFmMmNlODIzZjA0ZDAzIGxlZ2FjeS10cnVuaworMjQ3MzAgOWM4MGI1YWY4MTIxYTc0YmRhMjcwOGVmYTNhZjhjMWY2MGViNTE3NCBsZWdhY3ktdHJ1bmsKKzI0NzMxIGZlMThlYjA1NTEwNzQwODI2OWI1Mjk2YmRjZTAwMjAzNWQ3YmQ3OGQgcjIycmMxLWJyYW5jaAorMjQ3MzIgY2VkYjUwMzkxNTVhNjU1MzMxNGEyZjc0M2ZmNjM5N2M0ODc2NjQzYSBsZWdhY3ktdHJ1bmsKKzI0NzMzIDMxYTI0OWEzNDBmODE3YWQyOTFiN2JiYjdiNzVjN2M1ZThiY2FkMWYgbGVnYWN5LXRydW5rCisyNDczNCA4NTA4NmYzZTcwZjM0Nzg4OTNmNGM2Y2VkZDcyYTk0YmU4MjAyZTFjIHIyMnJjMS1icmFuY2gKKzI0NzM1IGZkYzBjZjU2YmE5Y2ZkNWYwMjRlZTQyZTdhOTBkNWIxNjBkZmZkYmMgbGVnYWN5LXRydW5rCisyNDczNiAyNzY2OGRhYjc3Zjg4YWNmMmVlYTA1ZjdmMGQ1OGQ2MTljMWNiZDEzIGxlZ2FjeS10cnVuaworMjQ3MzcgMDQwNzI5NDAyMWEwYTZhMDE4YTE2ODIzNDUxZmZmZGQ0NWQ5MjVkMCBsZWdhY3ktdHJ1bmsKKzI0NzM4IDFkODlkYTgyNWY5NTc4ODZlYmRiMmNhMTMxOGZmNTI2MTNhYmQ1YzMgcjIycmMxLWJyYW5jaAorMjQ3MzkgMGE5NDhjZTQ3ZTdhMDZhMzUyNjc1N2Y3YjNmYWZlOTM1M2VjMWRkYyByMjJyYzEtYnJhbmNoCisyNDc0MCBlNjNmNDY2OGM5NWQwODcwOTNlYjY2NGE3ZTI0MWY1NTkyMTY4Zjc0IHIyMnJjMS1icmFuY2gKKzI0NzQxIGZmMWI1NzFhY2E3MTBmNDAzOTE5OThkNjljNWIwNDllMGEzZGNjMzEgcjIycmMxLWJyYW5jaAorMjQ3NDIgOGZiMGMyNGY0ZDQ1MGQ5NDBiNGU1Y2Y2MzMzYzYxY2E2M2M1YzgyYSByMjJyYzEtYnJhbmNoCisyNDc0MyBiMTE3NzRjY2QxMDFmNzMwZTkyNzEzMGNlZjEwYzgxODYxYjAzOGMyIHIyMnJjMS1icmFuY2gKKzI0NzQzIDdmNDY3OGVlZmFmYjE0MzkzNWMzOWMwMzY0ZTBiNTNiMzNkMjg4MjAgcjIycmMxLWJyYW5jaAorMjQ3NDUgNDIxNmVmMTk2MjBiYmRlZGU0Y2IzYjFmMzA1ZjU5NmE4ZTM3ZWU2MyBsZWdhY3ktdHJ1bmsKKzI0NzQ2IDhiMmJkMDc4MDkyNWY5ZDVmMWM2Yjc3NzBlY2E4ODJkMzEyNDQ0NjcgbGVnYWN5LXRydW5rCisyNDc0NyBmNTM2Zjg1Mjk1Yjg2MzdjYmYxNWE3NWUzYTU3MjcxZmYyMjJiNDZkIGxlZ2FjeS10cnVuaworMjQ3NDggM2ZjYjIyNDhiYmU4ZDkwN2U4ZTZjY2UxODg1YzZiMTE4MmJmOGUyMiBsZWdhY3ktdHJ1bmsKKzI0NzQ5IDZiMzBjM2Y0Mzc4ZDQzMDRjZTFlN2Y2ODY0MjY3NTFhZGM1ZWEzZTQgbGVnYWN5LXRydW5rCisyNDc1MCBjMzkyMGM0MzUzMzMxODg0ZjJmMjI4ZGFmZTUyY2FmZjdiZTk2N2U0IGxlZ2FjeS10cnVuaworMjQ3NTEgNTcxZDViN2I3NDZjODJhZDgxMThkNDJjM2I2YTJhZmVjZWFlMDZlZCBsZWdhY3ktdHJ1bmsKKzI0NzUyIDgxMzQ5ZTUxNjU5YjUxYzVmY2RlMmFlYTJjZDFiYTQ5OTZlNzBjZmUgbGVnYWN5LXRydW5rCisyNDc1MyA0Y2IyMjNlZjg2OWJhMDUzN2M3YzkxYmNiNzAzOGRhNzUzODU4NjYwIGxlZ2FjeS10cnVuaworMjQ3NTQgYWE0NzUzZjk0NTcyMjE0MTYyMTYwOWI5OTdkMWYwYmE4MzdiMmFjMiBsZWdhY3ktdHJ1bmsKKzI0NzU1IDU1OTIxMjU1ZWM5M2QyMzQzODRhZjFhNjc2ZTQ3ODE0MTAzNTY0ZTAgbGVnYWN5LXRydW5rCisyNDc1NiAyNzRhYTkxYjQxN2MxM2Y1MDk5MDIyZjIwZmQ5NjMyN2EzM2I3ZDgzIGxlZ2FjeS10cnVuaworMjQ3NTcgZTBlMmI2MTYxYzdmZDZiZGVhZTdhYThjMTQyNDZjYzU1MDI2MzUwMSBsZWdhY3ktdHJ1bmsKKzI0NzU4IGE5NjU2Y2UwMTViMGQ4ZjEyOWQ3OWE4NzcwY2E0MDQ3NWZhMmU3OWIgbGVnYWN5LXRydW5rCisyNDc1OSAwNjNmOGEzMWI2YjhiNzI5ZTJjOGY4N2UxOTM0OWY2MjI3YWI2NGVjIGxlZ2FjeS10cnVuaworMjQ3NjAgYTYyMGVmODRiMGZiMjYyMzE4NTE4Mjg0M2RmY2ZjZjUzNTBiN2M3MSBsZWdhY3ktdHJ1bmsKKzI0NzYxIDNmY2MyZTI5OTJkNGQ1ZTU3YjQ3N2I5NDU1ZTAwOGYxN2YxNGI4ZDggbGVnYWN5LXRydW5rCisyNDc2MiBiMmQzMzkxMzY0YmJiNzMxNmNmMDMwNDgyODk2YmJkNzkwNzM0MjE5IGxlZ2FjeS10cnVuaworMjQ3NjMgZGJkNmE3NjEyMTU5NmJlMDNiM2NjYWE3M2RjYzRmYmY0YzI5NDE0MyByMjJyYzEtYnJhbmNoCisyNDc2NCBhMDI5ZTM0ODMwNGM4ZTdjYTU5MTM4ZjA5NDY1ZWJmMmE4YjkzMjExIGxlZ2FjeS10cnVuaworMjQ3NjUgZmQ5ZDdhZTNmOTRhNzAyNWRlNjVkNTIxOGYzNGIzODhkZDc2NTEyYyBsZWdhY3ktdHJ1bmsKKzI0NzY2IDNkMmNjODU3NzEyN2U1NjNlOGZiMmNjYjRhMDRhMmE1MGI1OThmMjUgbGVnYWN5LXRydW5rCisyNDc2NyAxNDUwZWU2YjhiOWVjZDdkYTk3YWQ2MDI2NjI0MzkwZGJlMmUwMzdkIGxlZ2FjeS10cnVuaworMjQ3NjggYzY1ZmFjN2MyODQzM2U2ZTg2MTRmNWNmODZlODkzNDJmNTkzZGY4YiByZWxlYXNlMjEtbWFpbnQKKzI0NzY5IDk3ZDg1Nzg4MWM4MmFmM2QyZGU5N2I4N2VlZGI2NGVjYjIwOWJjNTEgcmVsZWFzZTIxLW1haW50CisyNDc3MCBmNTQ2NjIzZWYwYzY1NjVkY2ZiNGU5MTRhZTM4YzlkZDdlZmM1NDMwIGxlZ2FjeS10cnVuaworMjQ3NzEgNWE1OTBmMTk2ZWM1ODNhNzE4MGFlN2NhNTU4ZGQyZDZiMWQ5YjQ5YSBsZWdhY3ktdHJ1bmsKKzI0NzcyIDlhNjM0ZDYwNTQyYWU3MTY0NDYyNzMwYzU1NDY3ZWMwMzk2NTFiMzYgbGVnYWN5LXRydW5rCisyNDc3MyBkN2E5ZWJhNzRmZTI2MTFjZmEwZWIwZjEwNzIxZTEwZGIzYzkzNTA1IGxlZ2FjeS10cnVuaworMjQ3NzQgMzBlZmU0NmY4ZTNjYWE1YWIxZmU0NDBhMThiMzE3MzlmYjdlYTQ2NCBsZWdhY3ktdHJ1bmsKKzI0Nzc1IDA1YWQ3YTY5ZDkzMzExYzdkZjFhOWQzYWM1YjM1NDkwODZlNTI1MmYgbGVnYWN5LXRydW5rCisyNDc3NiBkN2QyNWVjMDJkNDEyOWJlY2UzZWYwZWM2Y2ViMDJiNGI3Mjg0MzY3IGxlZ2FjeS10cnVuaworMjQ3NzcgNGY2MjFiYWM3NTI2NWRhMjdlZDQyYjMzYThmMjExYzk0ZTgxMDFkZCBsZWdhY3ktdHJ1bmsKKzI0Nzc4IDUxOTMyOTBhZWYwYTViNGMxZTMzODY4MmU3NTQxODgwYWYzZmRkYjIgbGVnYWN5LXRydW5rCisyNDc3OSA0MGM1NmZlZmExNzcyYjYyOTQwNjlhYTI1M2FkNTMxYjUxNTFjNjY5IGxlZ2FjeS10cnVuaworMjQ3ODAgNzdjNzQ3NmY0MWJkZTc2NzQxMjgzYTA1OTA3YzdkOWMyMmYyYjY5OCBsZWdhY3ktdHJ1bmsKKzI0NzgxIDdlNzQ1NTg5MGZkNmViMWE1OWM2ZmI1NTQ0MTZiMmVhMDMzNDEwYWYgbGVnYWN5LXRydW5rCisyNDc4MiA5N2YwOTk2NzFiYmNkZGU4ZjAyYjhkZTAzYzZiYjMxNTNjODNmNjEzIGxlZ2FjeS10cnVuaworMjQ3ODMgM2FiZjAwMjE1YzFjY2UwNjMwM2I1MjAyZDdlMjlmMTUwZTVkNWZmZCBsZWdhY3ktdHJ1bmsKKzI0Nzg0IGZhMGJkZTNjODZiMjc4Yjk1ZDBkZWRhZGJkN2Y0ZGQwYWQ5YzkyZGUgbGVnYWN5LXRydW5rCisyNDc4NSBiZTVjYTBiMjViZmRjN2JkYjI2MzE4MzBhNWQyZTFhYWQwODBmMzk1IGxlZ2FjeS10cnVuaworMjQ3ODYgZmI2YjNmYzRlMGMxYWFiMTM0NjgwYzllYmYwZjg3NDY3MzcwYTJhZiBsZWdhY3ktdHJ1bmsKKzI0Nzg3IGJkMTJiNTk3M2RhYTk5NjUyNGUxOTVhNjQ2Zjc2N2I5NjlmODUyZjQgbGVnYWN5LXRydW5rCisyNDc4OCA3YWY0NWFmZmQzNTMyYTBiMDhjZjdiYTg0YzZiNzViNWQ2OGIwZDdkIGxlZ2FjeS10cnVuaworMjQ3ODkgOTg0NjQzOTRjY2UzMzY4M2JhZWUxNmZmYjhiMmNhODQ2M2M1MDQ1YiByZWxlYXNlMjEtbWFpbnQKKzI0NzkwIGUzYzJmZDE3N2E2ZTRlMmVlNzg5ODkzNmE4MGM1Y2VlNTI4ZWM0ZjEgcmVsZWFzZTIxLW1haW50CisyNDc5MSBjNTc5N2EwMDgzZDhmYTJhMGQ1MzZlNmQ4NGQ1OWZhOTFmYWY5ZWEwIHJlbGVhc2UyMS1tYWludAorMjQ3OTIgNDY1YzkzMjVhZjY5ZjQxODY0ZDI2Y2U4NzcwZWRjNjliNTJlOWYzZCByZWxlYXNlMjEtbWFpbnQKKzI0NzkzIGY2ODVmMDcwNGJiZDNhOTg1Y2QyY2U3ZWI3N2I4ZmUwMTAwODQ3ZmYgcmVsZWFzZTIxLW1haW50CisyNDc5NCAwZjc0ZGI3NGE4ZjQwODAzMDdiYzQ4YTdiZGQwYjVkZWM5NmM2MjhhIGxlZ2FjeS10cnVuaworMjQ3OTUgMzMwM2YyZDkyY2VmOWM4ZDM0ODkyZWNjNzQwNDc5ZTcwMWQ5YTM3OCBsZWdhY3ktdHJ1bmsKKzI0Nzk2IDY2NGFjODIyN2NjNTNmM2UzNGFjOWRmZTkwNmI5YmFlMmRkZDg2NmEgbGVnYWN5LXRydW5rCisyNDc5NyBkZjc3MGRkMGJlYzRhNzZmZWZiYTRiMTdlMjE3YmJlODE4YmJmOGExIHJlbGVhc2UyMS1tYWludAorMjQ3OTggYjI3NTk5YWJjYzQ5YTExN2U4MWRkZTU3OTk3ZmFkZjQ5YTJjZjk2YSBsZWdhY3ktdHJ1bmsKKzI0Nzk5IDk0MjMyNDU1MTRhODg1ZWM5ZTc3YmQ5YjdjZmE4YTFjZWRhNzA1NTQgbGVnYWN5LXRydW5rCisyNDgwMCAzYTkzMTQ1YjZhOTYzMmRiMjY5NDZkYTliOTdhZjIzYWU3MDViZjhkIGxlZ2FjeS10cnVuaworMjQ4MDEgNGUzNWZhNWQ1NzA4ZGM1NTcwY2JlYTMxNzkyZDZhNzRjM2IxYzJmZCBsZWdhY3ktdHJ1bmsKKzI0ODAyIDgzNDhlODQ0MWVhZjc1YmU4OGViYmU5Nzc5MmMzMDgyMWI0MmI1NzEgbGVnYWN5LXRydW5rCisyNDgwMyBmMThjZmRlMmU4MDQ5ZThlMGQyOTZmY2RkZDRmM2NiY2E2ZDhlMzFjIGxlZ2FjeS10cnVuaworMjQ4MDQgOTU5YTJlZDU3MzVjZDA4NTliZGJlOWRkNmZjMTliYTVmOTExYzcxZSBsZWdhY3ktdHJ1bmsKKzI0ODA1IDgwM2FhMGMyYjEzMGY5MmQ1ZDQyNTc5NmM0OGYzNWM4NmY0ZDFjODYgbGVnYWN5LXRydW5rCisyNDgwNiA2NzNiYmYxMTU1MDg5MjI1ZjRlOWJhYjI2MGY4MzQ5ODY2ZTZkNDI2IGxlZ2FjeS10cnVuaworMjQ4MDcgZTFmM2ZlNTY3N2RhM2Q4ZWU1ZWU4YTRhMDhiZDhmZTUzMmQ0Mzk4OCBsZWdhY3ktdHJ1bmsKKzI0ODA4IGEzYjA2NzNiYTJjYTVmYTQzYzM5ODU1Njc3ZjRlNDVkNDU3YTEyNmYgbGVnYWN5LXRydW5rCisyNDgwOSBhYWMyMzMzMWEyNWQ3ODMwZWZjZmI2M2E5ZDMwYzczYzM1ZjAyY2M1IGxlZ2FjeS10cnVuaworMjQ4MTAgYWYyNjIzYmI1ZDBiYzNkOGRhNGIyZWQxZGVkOTA3ZjEyNGQ4ZTYyYiBsZWdhY3ktdHJ1bmsKKzI0ODExIGNjYjI2YTExODg2N2U4MjA0Yzc0YTc2ZGU4ODBhNzQ2MjUwNzM0ODQgbGVnYWN5LXRydW5rCisyNDgxMiBiNDg5MTBhOTU3OTcxYTc5ZTlhMzk3NGVjYjc5M2E4ODZlZjQ1MDNmIGxlZ2FjeS10cnVuaworMjQ4MTMgNGM4MmM4ZWQ2ZGY0ZDRjNDdkNDc1NWE5OTQzZTBjZjJhNzA0ODIwMiBsZWdhY3ktdHJ1bmsKKzI0ODE0IDIxYzdkNzU2NTk3N2NlYTY5NjY3ZmQ4NDYzNDM5M2U2OGQxM2U3MmYgbGVnYWN5LXRydW5rCisyNDgxNSAwMGIzYWQxY2U0MDRkNmZmZDMzYWI2NGVlZmMzNTZkMGExMDhiYzlkIHIyMnJjMS1icmFuY2gKKzI0ODE3IDAwM2E5ODVjYWI5NWJiYjZhOTliNjM2MThiMGFmZDIzYTQzYzYyYzIgbGVnYWN5LXRydW5rCisyNDgxOCA3NjIyNTQzNGE2ZmVkNzQ0YTFjMmQ0ZTlkZWRlZTAxNDdlYmU4N2Y2IGxlZ2FjeS10cnVuaworMjQ4MTkgODczMjkxYTQ4ODllYzkyZTZlYjA4ZjQ3NjA1YzYzODM0MWNjNGZkZCBsZWdhY3ktdHJ1bmsKKzI0ODIwIDJkMzc2ZDkyNmRhODJhOTAyMWZhODE0MmI0ZDVlZjQ2MDIwODEzOGEgbGVnYWN5LXRydW5rCisyNDgyMSA5ZDk1YzFhODljZmNiMGEzMzk3YTk2OGJlNzRhMzBmZTM2YzI0OGMzIGxlZ2FjeS10cnVuaworMjQ4MjIgNWUwNmY4ZmUzOGVlNGFmZjgzN2UxMTZkMWE0M2RiODM4YTY4ZGQ0NyBsZWdhY3ktdHJ1bmsKKzI0ODIzIGExOTkyNjk0YzgyNDI1ZTBjNDI1YzRlMzEzMTEyM2Y0YWVkN2Q1OTEgbGVnYWN5LXRydW5rCisyNDgyNCBiYjE2OGRlNTBhMDMyYjczOThjOGU0NTBmMWFiMzYyNjE5YmRkM2RmIGxlZ2FjeS10cnVuaworMjQ4MjUgMWQxYzQ2ODI0ZmMzZTdlZDUwMGFhNzRhNTRiZjQ3ZTJiMWE1YmY0ZCBsZWdhY3ktdHJ1bmsKKzI0ODI2IGJmNjQ0OGYwMjI3Mzc0ZWRhOTE4OWVlZTViZGFjNTgyNzZjYmQxNjMgcmVsZWFzZTIxLW1haW50CisyNDgyNyBjYTQ1MGU0ZGZmOWE2MjY0ODQwNTIxN2M0ZTQ0MDdkZWZkOGM4ZWQ2IGxlZ2FjeS10cnVuaworMjQ4MjggMDQ0NjMwMTYxMDkzYzkxNzQ0YzUzOWU2ZjUwYjllZDQwYjYzYWRhNiByZWxlYXNlMjEtbWFpbnQKKzI0ODI5IDE2MjEwNmIxNmU0NDRjMWE0NzViNjA4NGQwZGZmYTQ0YjMxNGRmYjIgbGVnYWN5LXRydW5rCisyNDgzMCA0NGM0NzlmODRlMzY4YzBiNWYzZDg1MzU4NGJjODg5YWYzMjY4MTI4IGxlZ2FjeS10cnVuaworMjQ4MzEgMjQ3NDQxNGQ0MzQyOTI0YjA2ZmJiOWRjMThiYjA2NDQ2ZmFmODRmMSBsZWdhY3ktdHJ1bmsKKzI0ODMyIDdjMmY5NWRlY2NhZDVlMjQ4NDg1YzA1MDE3Mzg3MDE3MDM2YjdhODEgcjIycmMxLWJyYW5jaAorMjQ4MzQgNjVmNDA5NGY0M2Y0NmZkNTI5YTY4NGZlMjlhNzhjMTUyMjAyMTNiZiByZWxlYXNlMjEtbWFpbnQKKzI0ODM1IDgxNGNlMDkyOTUzZWMyM2YzOTgxNGZjOGRjMGQ0MGJmZDc4NWU3NWEgbGVnYWN5LXRydW5rCisyNDgzNiBlOTIwMmZlMzJmMGI4ZmY2ZWFiODU5OWQyYzM0Zjc2OGJjOGJkNmZkIGxlZ2FjeS10cnVuaworMjQ4MzcgODhiYWE0YzRlZWUxMDViNmU0NzlhZjRlNWJkMTM3NjY5MzBhOGM3ZiBsZWdhY3ktdHJ1bmsKKzI0ODM4IGNjYTU2YTk3NmNiMjVjYjA2MDI0ODUxZTgxZmExMmYyMGIyYTZiNDYgbGVnYWN5LXRydW5rCisyNDgzOSA0YTM0ODYyYTM5OTQyM2Y0NzAyNTkzOWQzNDRmYzM4ZjBhZDgzNTcwIGxlZ2FjeS10cnVuaworMjQ4NDAgNjUyZTE4Mjc5NTgzYzE0NmE5Mjk2NDg1ZDE3Y2RkOWU0YWFmZjE0YiBsZWdhY3ktdHJ1bmsKKzI0ODQxIDVhNTA0MTAyYTA5YzUwMjQ3YTEyM2E3N2Q5MWQyYWNmMzMxOWRiYWMgbGVnYWN5LXRydW5rCisyNDg0MiBhMDNiMTNiZTJmNjhmOTViZDQ2ZGJkZTFiMmNhODYxYmZjZmE0OTlhIGxlZ2FjeS10cnVuaworMjQ4NDMgMzgxNWE5NTk4MTljNDY5MzgzYjVlN2YxM2ZmODgxMWNhYTRjNDQxYSBsZWdhY3ktdHJ1bmsKKzI0ODQ0IDNjOWYzOTFkN2UwMzM4NDIwY2MyYmY4OTU5YWZlYjA1MGQ5YjJjYmQgcmVsZWFzZTIyLWJyYW5jaAorMjQ4NDYgMzI0OGVhZDcxOTI4NzlkOGNiZDBjNDA0NzRmMTMzNDA3ZmVjMWQ2OSByZWxlYXNlMjItYnJhbmNoCisyNDg0NyBkNmE0NGZkMWY0YzE0MzcwOTA2NzkyNzYyMTlmNGQ2NzY2NjFmYzg5IGxlZ2FjeS10cnVuaworMjQ4NDggZTNkZTM4YWE2NDYyMzE0ODFhZDAzNjRlNDlkMDA3Yzg0NDA2N2RhZiBsZWdhY3ktdHJ1bmsKKzI0ODQ5IDA5N2RkOTUzZTExOTYyNGYwMTlmODkwNWVjMzhiZjc1NTMzNmQ2ZmYgcmVsZWFzZTIxLW1haW50CisyNDg1MCA1NjhjNzVkZDUwNzgyYTliNDAzMTE3MTZjMjNiOThjYjBmZTNiMGNmIHJlbGVhc2UyMS1tYWludAorMjQ4NTEgODVlNjk0ZTliOWZjMTQ2NDRkMjU1MWIwMzQxZDJkMGFmZGVkZTk5NyByZWxlYXNlMjEtbWFpbnQKKzI0ODUyIGUzYWE1YWFiMjg3NmRmYmUxZDlhZDFhZjllZTViZGZkMDdhY2VkMTIgcmVsZWFzZTIyLWJyYW5jaAorMjQ4NTMgODJhYzgzNDc0NDYyOTExMjVhZTFjZWNmY2ZhODNjNjhiNzYwZmRiNiByZWxlYXNlMjEtbWFpbnQKKzI0ODU0IDI1YmFiZDQzMmIyNGY0YmIxMjVkYWUxZTJjYmVlOGYxNzYwMDZmZmYgcmVsZWFzZTIyLWJyYW5jaAorMjQ4NTUgMzI2ZDk5NzJmNmY2MTAwMzZmOWE0ZThiYmVlMjFhMWE2YTdmNjQwNyBsZWdhY3ktdHJ1bmsKKzI0ODU2IGU4ZDM2YzE4MzEzNzU3Mzc0ZmJjMjg2NWJkMjAwZTQ3MjQ1ZTlkYjYgcmVsZWFzZTIyLWJyYW5jaAorMjQ4NTcgMDQ2MTJkYzMyM2RmMzA4MjBjNDhlOGU4ZThkMjE3MDU0ZGM3M2NmZiBsZWdhY3ktdHJ1bmsKKzI0ODU4IDc2N2QyNDVmZDhkY2ZiNjllZjZiNGYzM2I0YjliMjgxZjBmMzdlZTUgcmVsZWFzZTIyLWJyYW5jaAorMjQ4NTkgMDk1MThjNGM2ODUwOGI0MmQwOGY3MDg5YTQ0Yjg5YWQ5MDBhMjU2NCBsZWdhY3ktdHJ1bmsKKzI0ODYwIDQ4ZjMyMTk4Y2ViOTFmNDlkZDhhMDBhNDBkOTJkZDRhNTVmZTA1N2QgcmVsZWFzZTIxLW1haW50CisyNDg2MSAwODI1ZWIxZGJlYjgxY2FiNzYwMTdmNWY0ZWEzN2ZiYTAwOGFkODI3IGxlZ2FjeS10cnVuaworMjQ4NjIgMTc5OTc4MjA5NzFkMGMyOWJlNTdkY2M1YTFkOWY5OGE5MjNkMTRlMyByZWxlYXNlMjItYnJhbmNoCisyNDg2MyBmYzllMjcxMTcxNGRlZTk5NTk2YWQzNjQxM2QwMmEyYmNmZmU4N2JkIHJlbGVhc2UyMi1icmFuY2gKKzI0ODY0IDZjMjNhM2ZiMGIwNDk4NzJhNTM3NzRhZWIxNzUwNjcyNTA2YjNhMmUgcmVsZWFzZTIyLWJyYW5jaAorMjQ4NjUgNjA2MzU0NDAxMzk2ZjU0MDZiZmEwMTk5ZDcyZmE0YWIxZjcwNjNmZiByZWxlYXNlMjItYnJhbmNoCisyNDg2NiAzZmZlZWRhMDIwZGNhZTEwZDY4MjIzMmU3YzVhYjNhOGI0MDBlNGRiIHJlbGVhc2UyMi1icmFuY2gKKzI0ODY3IDQ3OWNmODgyYmRiNWU2NjJjYjcxOGZkM2JlMzNhMDUwNzJiNDVkMDIgcmVsZWFzZTIyLWJyYW5jaAorMjQ4NjggMTEwMDNiNjY1NTQ1ZDYxZjE0OGJlN2MwODUwMDljMmVjNTA3ZDUwZSByZWxlYXNlMjItYnJhbmNoCisyNDg2OSAzMjQ2ODRhZGI0ODM1MjQxMDUzMDEzY2U4NzAwYTU2NDA2MDgwMDVjIGxlZ2FjeS10cnVuaworMjQ4NzAgNzRjNWRjYzE1YjczNTU2NTQ5MjY4OGE1YmU2MGFlODY1YTcxNjg1MyByZWxlYXNlMjItYnJhbmNoCisyNDg3MSBlOTNmMTQ0ODYyZGU5NzJiMWIxMTdlNDZhMWZjYTMyZmZlMjA0NDY3IHJlbGVhc2UyMi1icmFuY2gKKzI0ODcyIDhhZjg2YTk1MmIyY2EzZmEyMGI3ODNmZThkOGRlMDM0MWQ3MmNlN2UgbGVnYWN5LXRydW5rCisyNDg3MyA0Zjg5MzIxMzRkY2EzYjNmZDdhNDgxMDIxMjNiYjY3NDhlYTQ0MTA5IHJlbGVhc2UyMi1icmFuY2gKKzI0ODczIGRjYThiNTg3NDY0MzlhOWY3ZGYyMTJmNjQzZWU0ZDQwZWI4ZGYyNGIgcmVsZWFzZTIyLWJyYW5jaAorMjQ4NzUgOTM1Yjg2MDJjYWQ5ODM2NzA0YTNhYTE3Y2JiZDhlNGVjOTgyNDA5MiBsZWdhY3ktdHJ1bmsKKzI0ODc2IDkwMjUxOTdhOGVhMGM0YmJjNzZhMGQwOGIyNDRlNGE3ZGQ4YjAyMzIgcmVsZWFzZTIxLW1haW50CisyNDg3NyBlMGE1ZDE2YTljYjk1MTk2Y2ExODYxNDQyMzA5M2JlYjIyMWUzOWQwIGxlZ2FjeS10cnVuaworMjQ4NzggY2I1NWYxNWIyNzMwMTA1ZmQ5YjU5M2UyMWE5OTA3MjRjOWI5NDVhNyBsZWdhY3ktdHJ1bmsKKzI0ODc5IGI0ODRhYTYxY2FiNGE2YWVlNmZmMDdmMTg5MmY5NWE0NWE5YjdlYTEgbGVnYWN5LXRydW5rCisyNDg4MCA5ZDQ4MGQwZmU2OTA1NzFjZmJhZTUyMGIyZDcxZDY1YmMxZWFlMDIyIGxlZ2FjeS10cnVuaworMjQ4ODEgMjY4YjU3ZDlkYWVkMThhM2M4ZTc2YjVkNDNiMGZhOGE1ZDkwYzkzNCBsZWdhY3ktdHJ1bmsKKzI0ODgyIGZjODEzMTY0Y2U5Zjk4MTNlNjcyMDBiNDY3YmM4ZTlmODU4YmRkY2IgcmVsZWFzZTIyLWJyYW5jaAorMjQ4ODQgMzQ5ZDY2Y2Q4NzRjMzM1ZGM0NjU2MDk0YmQzYmM0NzZmMWFiOTUyZCBsZWdhY3ktdHJ1bmsKKzI0ODg1IDdjMjhlOTU2ZjliMGJhZDZiYzZhMTQ5ZTNlZWVjYmUwMWYyN2VjMDYgbGVnYWN5LXRydW5rCisyNDg4NiBhYzNjZTFmYWVjNjhlYTNjNzExNGExY2YwZGU0Y2ZjMjY2MGY3YTM0IGxlZ2FjeS10cnVuaworMjQ4ODcgNDIzMmQyNTdlNGZmMjJlYjg3ZjdiMzM1MDE4NzQ3YTlkNzZiMzBhNyByZWxlYXNlMjEtbWFpbnQKKzI0ODg4IDQxZmY0Nzc3OTI2ZWI1MTkxOTlhNWRiOTcxZWU1NWQ5ZWFjZGZjYTUgcmVsZWFzZTIxLW1haW50CisyNDg4OSAxMzM5YjZkMzJlOTUzZGI4YjhiNmI0MDY3Njg3OTk0NzgyMjM0NGRlIHJlbGVhc2UyMS1tYWludAorMjQ4OTAgZTY5YjIxZjI1MjllZTZjNDU5YWEyZmI3MjY4ZmU5NDgzZmEzNTVkYSByZWxlYXNlMjEtbWFpbnQKKzI0ODkxIDRhMmMzYWUwOWUwYzRlZmRlYTJhNTYzY2M4MzcwNmNiMWUzZGRjMDIgcmVsZWFzZTIxLW1haW50CisyNDg5MiAyYTc4NWI2NjhhMTYwOTI1NGVkYzdmNjBiM2Q2ODYzZmIwYTcyY2RlIHJlbGVhc2UyMS1tYWludAorMjQ4OTMgMDA2YzU1YmRmN2UxNTZmYzJlNTc1NmVkZGM0MGY1MjdlZjY5OTJiYSByZWxlYXNlMjEtbWFpbnQKKzI0ODk0IGM0OGQ4YjM2MmFjZWUxY2RlMmIwNzQwNmJhYzEzYzA4ZDQyNmJjNDkgbGVnYWN5LXRydW5rCisyNDg5NSBjYTI3ZDgyYWM4OWI0NmUzZDNlOWVhM2UwN2EzMzQ4OTJjOWQ3NzA4IGxlZ2FjeS10cnVuaworMjQ4OTYgZThjYjIzNmFhZDI3OTYyNmZhYWY3ZWJhNmM0Zjg2YjU4MTUzYzYxYiBsZWdhY3ktdHJ1bmsKKzI0ODk3IDdiZGU5Y2E5MDU1NDkzNGUxMmVkYTZkNGQ2ZDkxYmNkYTQ4ZGU3MTkgbGVnYWN5LXRydW5rCisyNDg5OCAwYWY5YWM4N2ZmYmMxZDllMzI1NjZmODIxNTMxMTE2NTAxYTBiZThmIGxlZ2FjeS10cnVuaworMjQ4OTkgYmY1MTkzMjFlNzk2N2UyZDIwNmMxOTBiODJjYjc4MDE1ZGFkYzdiNCBsZWdhY3ktdHJ1bmsKKzI0OTAwIDVkNDEzNTYwOWVmYzFhODQwODNkZmViMWYxY2ZkNTIxOTlmMGNhOWQgbGVnYWN5LXRydW5rCisyNDkwMSA5YzMyZTkyMDBhYmVlOTFlMjE3MDkyNzI3NWM5MWNkYzBhNDM3NjhjIHJlbGVhc2UyMS1tYWludAorMjQ5MDIgNWYzMjEzNjU1ZDk1NWY0MTdiNTEwMWI4N2M0YWQzNTU4NmY2ODIxYyByZWxlYXNlMjEtbWFpbnQKKzI0OTAzIDExNGE2YmNmZTg2YmI4NGYxZmNhNjdiY2VjNTFiMWExYzAyOGZiOGEgbGVnYWN5LXRydW5rCisyNDkwNCBmNzIyNDRjZjg1YTliNzYyMmI0N2JhZDZkNzRlYjA4ZDY5YTZlMTZkIGxlZ2FjeS10cnVuaworMjQ5MDUgYWQxMjZjMDYzNjU0OGQzNWJlNDc1YTExZDYxNmNlNmU3N2JjYjYzMyByZWxlYXNlMjItYnJhbmNoCisyNDkwNiBhNjBmY2RjNzUzNDZiM2UzNjhhNDQ4NDA5OWZlMWU1N2JjN2E3MzQ0IHJlbGVhc2UyMi1icmFuY2gKKzI0OTA4IGQ1OTg2OGJhZmViMTBiMmNlZDhjMmFiMjZiZDQ2MzhiMDY2ODllOTAgcmVsZWFzZTIxLW1haW50CisyNDkwOSA1OGE4MmE0YmU4YjE3M2U1MmU5ZmNjZTFmZWUzM2I2ZmRjNWEzYjAwIGxlZ2FjeS10cnVuaworMjQ5MTAgNjg4NDJkMjk1ZDJjY2NkZjg2YjkwY2NiOWMxYzg0NjQ1NTZhNzE1OCBsZWdhY3ktdHJ1bmsKKzI0OTExIDgyY2IxNzQ5OGZjMWZiN2RlYjczYjJmM2I5OTI2MzhkYzU0ODM0NmIgbGVnYWN5LXRydW5rCisyNDkxMiAzYjM5YmEyYjgwMGVkZDdkOWEyNDU0N2YwNWYzMGQ1OWYzODNmYzZjIGxlZ2FjeS10cnVuaworMjQ5MTMgMTg5NDc5NmU5MzBjMTQ1NzRiZDMzNGRiZGU1Mjg2ZTUxODU0ZTk4OSBsZWdhY3ktdHJ1bmsKKzI0OTE0IDQ1NTQwNzJlNzZiNGYwOWFiNmZlYzk5M2I4Y2U5MDgwNGVhMWEyNDEgbGVnYWN5LXRydW5rCisyNDkxNSBiMmU3OWNhYTY4ZTBiMWM5YmM4NWNlMzlkY2IzM2JhMTFhYjRmMmMxIGxlZ2FjeS10cnVuaworMjQ5MTYgZTZhN2FkNmMzNjUyZGEzYTM4ZDRiZmEyNjU5N2M4ZGI1ZmNkMDc3NiByZWxlYXNlMjEtbWFpbnQKKzI0OTE3IDU4Yjc3ZWY0NzJkNGMyYTMzMjBmNjVjNDk4Yjc2ZTc0YjBhOGRiMDkgbGVnYWN5LXRydW5rCisyNDkxOCA1MjA1M2FmY2FkMzI1YzYzODY3YTljNTZlMDgxNTBiY2NjOTk4NjEzIHJlbGVhc2UyMS1tYWludAorMjQ5MTkgMWVjMzRhMGQwMmE3N2NlNDNhYjI5YmVkYjU1M2Q4OGVjYThhOTM1NSByZWxlYXNlMjEtbWFpbnQKKzI0OTIwIDQzYjY0MjQ1ZjFhYTdiOWUxM2M3N2U3OTY5Y2E5OTk3ODliOWQxZmYgcmVsZWFzZTIxLW1haW50CisyNDkyMSBhYjkyZWFhMTQwZWY5NGU3NWNkMmY2MzliOTVlNGY2ZWVhZDZiYWU5IGxlZ2FjeS10cnVuaworMjQ5MjIgODQ3NDI1ZDViY2E4MDc5MzliNzZkOTE4NjkxMDgxZjY4NDM3YjNlOSBsZWdhY3ktdHJ1bmsKKzI0OTIzIGY4NDc1MTM1YWMxMzQzNmYwNjJjMzVlZTE5ZjhjNmM3Yzg4ZjI1ZTggbGVnYWN5LXRydW5rCisyNDkyNCBmY2I2NDliMTAwNGRlMzdlOThkMWYyNzdkNGZiMTdhMzgwNDFkYWJjIHJlbGVhc2UyMi1tYWludAorMjQ5MjUgNWQ3NzgyNWJiYzEwNjU4ZjIxMTUxMzM1NWU4N2JhY2ZiYWRmMGY5OSByZWxlYXNlMjItbWFpbnQKKzI0OTI2IDllMDIzM2MwZTAwM2M5MThjNzUyNDM5OGQwZjAyMDg2NjdiMTBmYjcgcmVsZWFzZTIyLW1haW50CisyNDkyNyBhYzhkODVkYTZkMGRiYmU0ODczN2MwZTEwNzFlNWMyZmM2Zjc4MjhkIHJlbGVhc2UyMi1tYWludAorMjQ5MjggZTIwNDdhZjBiMmU2ZTZmZDJiNTI1ZWMxOTBhZDE2ZDI0ZDVmNjVlMyByZWxlYXNlMjItbWFpbnQKKzI0OTI5IDEyZTBkNThlNDRiZGJhMTRjYTQ2NmEzZDc3ZDQzOGEyNmU0NWVhMGUgcmVsZWFzZTIyLW1haW50CisyNDkzMCAxOGRiOTFjMGE3OGYxY2U3ZjIwYjQyODI3ZWExMmQ4NTc0MWM1NzM2IHJlbGVhc2UyMi1tYWludAorMjQ5MzEgZWZkMDRkMWYzMDg1ZTFmYTYxNDJkZjIyMzgyZDZjMjFlYzZhN2M1MCByZWxlYXNlMjItbWFpbnQKKzI0OTMyIGNkNzdhYTExZWRkYzE5ZjZjOGEzZjVmMjUxZjJjYTVmZDlmZWM2OWMgcmVsZWFzZTIyLW1haW50CisyNDkzMyA4MTJkMTU0M2JhMDg5YWExMDNmNDY1NmIzYjg5ZjdlODEyZmI1M2IzIHJlbGVhc2UyMi1tYWludAorMjQ5MzQgZDA4OWQxZTg0MTFjY2M0MzQ5YjUxYzUzNDVjZDk3OTgyMTJhNGJmZSByZWxlYXNlMjItbWFpbnQKKzI0OTM1IGY3Nzc1OGM4NzJmYjUxMWY2M2IwMDFiZGEwYzcxYTIwOGY3ZTllYTYgcmVsZWFzZTIyLW1haW50CisyNDkzNiA4ZDUxYzc1Mzk3MTliMTljNTQxNWI4NjI1ZDgxZjY5MjNjZDRlNTQ2IHJlbGVhc2UyMi1tYWludAorMjQ5MzcgOWNjZWFkNWZkMjk3MTE3OGE2ZDE2NGI3OGU2MGQ1MWVkYTc1OWZmZiByZWxlYXNlMjItbWFpbnQKKzI0OTM4IDM5NzdhZDNiMDgyNTdkNTBhNjQ3YWI4NjYyZDhhZTQ4OThhMDU2NzQgcmVsZWFzZTIyLW1haW50CisyNDkzOSBiOTM3MWYzMjQxYjg1MDA3ZTJiOGE1ZjZkNTA1NWZiOWJlMjgxYWEwIHJlbGVhc2UyMi1tYWludAorMjQ5NDAgYWM0YjFjNGMzYjEyZjI4NGRmMzcxYTBmZWM3ZmQ0ZmJlNDBhMDg3NyByZWxlYXNlMjItbWFpbnQKKzI0OTQxIDdiMmQ3MDFlYzQwNGQ3MzlhODgwNjYyYzIyZWEzMDE2ODY3NzI3NDIgcmVsZWFzZTIyLW1haW50CisyNDk0MiBhOTRlNDgyMTM5OGRhMjljNTgyMDE3ZDkwMjNkMWNiM2U5MTczNTdkIHJlbGVhc2UyMi1tYWludAorMjQ5NDMgYTJlYWI0ZGU1NTA1Mzk5YjIwMTQ1NzNhYjk4Y2NmMGZmYjE2NWFhNiBsZWdhY3ktdHJ1bmsKKzI0OTQ0IGVjNjIzMDQ3MDczYTJiZTQxNzI4NDQ5OTVmYzBjZDVkZDY0YzRjZjggbGVnYWN5LXRydW5rCisyNDk0NSAxNmE4MjQyM2I4NjAyMDQ1N2E0ZjRlODE5YzgwNGI0YmZmMjI3ZTljIGxlZ2FjeS10cnVuaworMjQ5NDYgZmRjMzllMjdhNDk0ZThiNmE3NGIyZTUwMzcyMTcxNmNjOThhMjhlZCBsZWdhY3ktdHJ1bmsKKzI0OTQ3IDI5YzFhNThkZGE1M2ZhZjM1OTllY2U2ZjhhMWFkOTQ0MjI1MzAzNWMgcmVsZWFzZTIyLW1haW50CisyNDk0OCAwOTdhZTBhZGY0N2ZiYzQxNmNjZGZkNDAwYWVhNzkxMTM4MTc0NzBjIGxlZ2FjeS10cnVuaworMjQ5NDkgNmU5YTRmOWE1NWE0MWIzNGE2ZjljNmYzYjNkYjg3YzE1YTU0N2Y2OSBsZWdhY3ktdHJ1bmsKKzI0OTUwIGQwNGViOGQ2NjRlMmRmMzBjNmZiZTA0YWRlZTBkY2UzZWRmY2Y4MjkgbGVnYWN5LXRydW5rCisyNDk1MSA5MmRhNzRjOGU1ZThjMDJiN2Q3YTE5NTU3OTBjZWE1ZmM1ODM0MzkwIGxlZ2FjeS10cnVuaworMjQ5NTIgNWI3YjM4NmNiMGQ0NTM1NzZhN2I4NTE5NjhiOGQxZmI3OTE3NGNmZiBsZWdhY3ktdHJ1bmsKKzI0OTUzIDdkZDM5NTk4ODI3NTgxY2IxNWNmNmY2ZTlmYjc2ZjQ3ZWJlN2I2ZWUgbGVnYWN5LXRydW5rCisyNDk1NCBmZjcwZTU2MzRhZTkxMjdhNzkxZmIxYjM3ZWJlZGE5NDYyZjc2MjBiIGxlZ2FjeS10cnVuaworMjQ5NTUgMThhNzBhODJhZjE1OTc4ODYxNDYyZjdiOTZmZWRiYjY5NDU5ZDk4YyBsZWdhY3ktdHJ1bmsKKzI0OTU2IGU1NjA0N2RiNjUzODQ3MjM1MzIyYjQ1MDIwMjIyY2EzYjM0YTNlODAgbGVnYWN5LXRydW5rCisyNDk1NyA1ZmY4YmIyNTAzMWM4MjMwOGM4MWExYTE5YWZiMmJlODJhZDZhMmZlIGxlZ2FjeS10cnVuaworMjQ5NTggODU3ODM1NWQyM2QzNDk1YTA0YTMwOGM3OWM1OTJlMDA1MjNlYzY5MiBsZWdhY3ktdHJ1bmsKKzI0OTU5IGNhYzkzMWFkM2NjNWE2NzJkMGUyNjYzNTkxNmJkZDkwMDFlZjYwYjQgbGVnYWN5LXRydW5rCisyNDk2MCA2OTcwNTFmNjdlOTc2YTUwM2E2ODM2MTJmOGZiODA3Nzg4OGM1ZmYzIGxlZ2FjeS10cnVuaworMjQ5NjEgZmU1NGU4ZDkzY2I0OGMyMGQxZjg1MDA2ZTA3MTQ3NGZiYTViOWJmMiBsZWdhY3ktdHJ1bmsKKzI0OTYyIDUyYjNiODQ2ZjExZjU0ZGNiNWQ2N2EwMzYyZmMyMmYwMDczMGEyNjAgbGVnYWN5LXRydW5rCisyNDk2MyBhNTBkZjY1YWNhN2E5YjgxNTAwNGNjY2JjNDNhNjkzMTFhNTQ3NWU0IGxlZ2FjeS10cnVuaworMjQ5NjQgMmY0MDczMjY5ZGFmZDMzODdiYTE4MWFhZGY5OWQzYmQyZTBmZjc4YiBsZWdhY3ktdHJ1bmsKKzI0OTY1IDY0ZDBjOTQ5ZjMzZTJmZWJkYTdiYzFlNDYzZmE4ZDY3NjQwYjU2MzggbGVnYWN5LXRydW5rCisyNDk2NiAwMzVkOWM5NmFhZWNmYzg4NDBkNTgyNDQwYjVmMWQ3YmNiNzM2MzY5IGxlZ2FjeS10cnVuaworMjQ5NjcgNjdkYTExMjkzNDA2Y2Q0Zjc0NGZjMzE4Njc3NTI1NTAzMDU4MjI2NiBsZWdhY3ktdHJ1bmsKKzI0OTY4IGJlMjEzZjFjZDQ2MmUxYjU4YWFmY2FmMWQyNDAyZWZiNDdmZmIwODUgbGVnYWN5LXRydW5rCisyNDk2OSBmYjM0ZjU1YTAzZmFiZjQwMjE3ZjIxNzRkZWExYzIzMzA0OTA3YjYzIGxlZ2FjeS10cnVuaworMjQ5NzAgM2JhMGYxYjIwMzIwYzk3NGZiMGJjMDk1YzQxMWIzOTgxMjNiMjIxMyBsZWdhY3ktdHJ1bmsKKzI0OTcxIGE5ZTA2ZmZhZjdmYmU5ZDhjNzlhOTg4ZTY4NGU2ODE0YmZhYmRkNzYgbGVnYWN5LXRydW5rCisyNDk3MiA5MzdjYzEwY2QzOWRmMDE3N2MxZTJjZjk3MTg3ODgxZWI1YTBhZWYzIGxlZ2FjeS10cnVuaworMjQ5NzMgZGE4Yjk5NzQ2OWU3ZGMwZmI1ODE4MWIxNWE3M2MzNjY4M2M0NGNmNSBsZWdhY3ktdHJ1bmsKKzI0OTc0IDhkZmJmYmM5MzFiNGE2N2I4OTFmNDIxZDg4NGZiOWM1OGFjMTc3MjAgbGVnYWN5LXRydW5rCisyNDk3NSAwOTVjZmYyMTk1NmNiZjkxNGU1NzFlOWViZTJlMjBmNGQ1NmEyMTE2IGxlZ2FjeS10cnVuaworMjQ5NzYgZWE4NWVlYTZiMmI5NDlmZGE2MmI1NjUwYWJjOTU2ZGI0NTE1NzBhZCBsZWdhY3ktdHJ1bmsKKzI0OTc3IDNiNDNmNDBhZjI3YTk4NGExYTY2MDkxMGZkMzAwMGZjNjdiZmIwY2EgbGVnYWN5LXRydW5rCisyNDk3OCBjY2VhODc4MmI4NDcyMzFlMGNlODRjYzNhYjc4NGQ0YzJiYjgxMWQ1IGxlZ2FjeS10cnVuaworMjQ5NzkgM2M4YTllZjNiOTU0Mzk2MmViN2RiMGI4NWMyNGU0MTE2YTBkOTU3MSBsZWdhY3ktdHJ1bmsKKzI0OTgwIDVkMDA5ZTVlMTNmNzk5ZWVkODU0NDgwYzBiY2Q5ZmQ4NjVlODVmMTEgbGVnYWN5LXRydW5rCisyNDk4MSA3MjQ2ZmU1ZTVhMjgyN2UyZDRlOTkwYjhjNmE5MGUxODViZTA0NzMwIGxlZ2FjeS10cnVuaworMjQ5ODIgZDU5NGE1OGI0NDZkNWYzY2U0YmJlY2RkZjE4ZWYxZDAwMWQ4ZThkZCBsZWdhY3ktdHJ1bmsKKzI0OTgzIDE0OTFmMTEzN2UwZWE1NzBlNThhYjQ5YzIxODcwNGM0MTVhZjM3ZDkgbGVnYWN5LXRydW5rCisyNDk4NCBiZTg2OTdjNzBlN2MyZTU1NDQ5YTU2MjEzYjliYjEwOTkyYjU0MGIyIGxlZ2FjeS10cnVuaworMjQ5ODUgYTMzYmI3MzI0NjgzOWRiOGNkOTNjNDcxMDY0ZTdiY2IzNDYyMjA0NyBsZWdhY3ktdHJ1bmsKKzI0OTg2IDc1ODMzOWRiZGFlYTc4MmQ1ZmUwMTU4ODMxMTcwMDYyOTRjNDUxMDQgbGVnYWN5LXRydW5rCisyNDk4NyBkZTFlYmNlZjdkMzEwN2U0YjMwODIyZjkyZGVhNTM3NzMxNzA1YTAyIGxlZ2FjeS10cnVuaworMjQ5ODggMDUxZjNiNjVkZGFiODQ5NWJjZjFiMDY2NjgyY2EyNGVjNDhkNTYzOSBsZWdhY3ktdHJ1bmsKKzI0OTg5IDZkNDI4OGU4OTE4YjI2NzRiODdjZjQzOGIyZDM3MTc3MGUxYjU3YjYgcmVsZWFzZTIyLW1haW50CisyNDk5MCBkY2NjYjljZWEwNTkzMWEyNTQyNDcyY2Q1NDljNTY4ZmM5YjIwNGJkIHJlbGVhc2UyMi1tYWludAorMjQ5OTEgZGZjOTcwNDA5ZjdlZDAyMzQxZjdlMjJiNjcwZmZjNTI2Zjc2MzM2YiBsZWdhY3ktdHJ1bmsKKzI0OTkyIDY2ZTAwODBjNmRjYzkwMWIwYjg0Y2M4ODAzYjRhN2E4ODc0MjRhOGEgbGVnYWN5LXRydW5rCisyNDk5MyA1ODYxODg1NTc3ZTk5NzA1MWEyOTIzNTU3ZDgwMWIyZTU4NDE1NDJhIGxlZ2FjeS10cnVuaworMjQ5OTQgNmY2ZjBlMTAzNTY2ZGM5Yzk1MWY2ZjMyOTkwNmZjYmI2MjRjNjA2YyBsZWdhY3ktdHJ1bmsKKzI0OTk1IDYzYTJmYWMyMTA0YzlhN2EyZGM1MTBiM2ZlNGFiNjI1ZDFkYjVlMzIgbGVnYWN5LXRydW5rCisyNDk5NiA2YWU4NWQ4Mzg0NjZhMjU3Y2Y1M2MzZTYxZjAzYTdkOThiYzBjNjE3IGxlZ2FjeS10cnVuaworMjQ5OTcgOWM3ZGEyNzJjOWI5NGU4ODE2MjdjN2I4YTYwZmVhMWVmZDNiZjRhOSByZWxlYXNlMjEtbWFpbnQKKzI0OTk4IGNkMDdlODQyMzVlNmRiMDM1M2UxYWNmYzAzOWZkODY3MDFiYWY3MzIgcmVsZWFzZTIyLW1haW50CisyNDk5OSAyYjc0NjU0M2FiM2Q3MjhkZTQ3NjgzZTJhNDE4ZjdkNTU5ZTY1N2NhIGxlZ2FjeS10cnVuaworMjUwMDAgNjIyMTllZDIxNTk5YmNlNGQ5MzBiZGI1MWRiZjgyYzk4Yzc5N2M1ZSBsZWdhY3ktdHJ1bmsKKzI1MDAxIDg1MWU0YmYzMDM1OGVmOGQwM2UwNDZjZDA5M2MxN2QzMzZlZTRlMWEgcmVsZWFzZTIyLW1haW50CisyNTAwMiBiNzJkYTA3ODBlN2E1OTJhMmU1YzQwOWViZmFmMmMzNWRmYTYyOGUyIGxlZ2FjeS10cnVuaworMjUwMDMgM2E0YTM0ZmRmYTgxYTA5NmJjYThiMWRkNjhhYmFhMjFhNTk2Zjc0MyByZWxlYXNlMjItbWFpbnQKKzI1MDA0IDM1ZTNmMjQxOGIyZGE5ZjZmMjk4YzZjNDE0MTI2ZmFlYjRkMzI4ZDkgcmVsZWFzZTIxLW1haW50CisyNTAwNSAzYzBiZDJmMzdhNzg4YTFmZjA0YmY5ZDQ1MTdkOTJhZTVhYTU3NmMzIGxlZ2FjeS10cnVuaworMjUwMDYgYTNhNjJlNDQwZjJhNjkyZDBmZjc1MzgwYjMxMDk0YThkM2U4NDIwZCByZWxlYXNlMjItbWFpbnQKKzI1MDA3IDdlMmEzYTJiYWMzM2ZjOTg4ZmU2MTQ2NmJjZjIxMjNmYjllZWRjNWIgbGVnYWN5LXRydW5rCisyNTAwOCBhNWJlMDc2NWM1NzEzNjExOWY1NGU0YWUyNThkZTg0NTNlYjg0ZjFjIHJlbGVhc2UyMi1tYWludAorMjUwMDkgOTkxMmE5NmMxZmIzOTRmMGMxMTc3MGNmNzBlNmFhZWM1Mzc2MmE1NSBsZWdhY3ktdHJ1bmsKKzI1MDEwIDE5NTkxN2I3YTYwMjQyZmI0ZDA2ZWYxMzA2NWIwZDc3YzE3NmQ1NTYgbGVnYWN5LXRydW5rCisyNTAxMSBlYjA1MTlhNDY3YWJhMjRmZDA3M2Q4ZGZhYTU2YzFmMjU2ODY0ZmNmIHJlbGVhc2UyMi1tYWludAorMjUwMTIgZWM0OGY5NmM5Mjk1ZGRlMDgwZWYyN2VmNDlmNTRiMWNiMzk0MGFmNCBsZWdhY3ktdHJ1bmsKKzI1MDEzIGMzYzZkZTE0NTMwOTk2YTY2YmFjYTI3Njg5N2JjN2FmYzJmZTdjMzQgcmVsZWFzZTIyLW1haW50CisyNTAxNCA2ODgzNGE2OTc0NmE4NWY3Y2JiYzBkM2VmMzg1YjFmMzI4MjEyYjI1IGxlZ2FjeS10cnVuaworMjUwMTUgMjliM2RjOTBiZTk1Y2I0OGFhNWU1YmI4ZDk2Yzk1YjQ1MTBiNmRjMCBsZWdhY3ktdHJ1bmsKKzI1MDE2IDlhMjY4Mjk4MjZlOTc5MmI4MTc0ZjM3YjNmMTlkNzljOTEwNDFhZmEgbGVnYWN5LXRydW5rCisyNTAxNyA2YjBlMTZjYjY1ZDU5MjllZGM4ZGY3NzgxMjdmNjI0ZWVhOWRmYjNkIGxlZ2FjeS10cnVuaworMjUwMTggMzRlZGRjYTFmZGE3OWE1NTQwYzI3OWU0N2UwY2I2MGY3YTdjMWZlZCBsZWdhY3ktdHJ1bmsKKzI1MDE5IDdjNTgyZDFiOWNmODFlMWE0YWJiMzZmMWJhNDE1MDgxNmE4NGEyNzcgbGVnYWN5LXRydW5rCisyNTAyMCAyMmRhZDlmZTA5Y2ExM2RjZjk5YWQxMWUyOThmMDMxNmMyNzA5ZDE1IHJlbGVhc2UyMS1tYWludAorMjUwMjEgMzYyOTE1YjM4NzI0NDRjYzk5NDA3ODMwMjU3OTk2YzZjOGZmZjY5YiBsZWdhY3ktdHJ1bmsKKzI1MDIyIDlkZTM1MGE2NTQyZWRmMWE4NzE5MzQ3NGIzZTY0YjJmY2FjMzY3MjkgbGVnYWN5LXRydW5rCisyNTAyMyBiNTY4NDNjMTUyNDliMzk4OWVlNDU2ZDMxODM4Yjk0NGU2ZmM0MTkxIHJlbGVhc2UyMi1tYWludAorMjUwMjQgYTkxMTkzNDEyNmZkODY2ZGMxMGZjOWE1MGYxZjE1MDJiMjM2NzdlNCByZWxlYXNlMjEtbWFpbnQKKzI1MDI1IDcyNDhjMzc1MTNmMzc1ZGQzMDMwNTZiOGQ5NTI1MTY0Y2VlZGQ1YzYgbGVnYWN5LXRydW5rCisyNTAyNiA4MjM5MTI5ZTc1ZDBhMGFhNTI1YzIyN2Y5NWYwYjU5ZGE2YzRhYWY2IGxlZ2FjeS10cnVuaworMjUwMjcgNzJiYjcwZTk2NDBlNDgwNGIxMjZjYmQ3NTFlNGQ1OTQ5MGRkNWU2NiBsZWdhY3ktdHJ1bmsKKzI1MDI4IDBkM2JiNjhlM2EyOGEzMmUxMjYwNmFlZjRlM2RiNTNjNmY4ZGFlODggbGVnYWN5LXRydW5rCisyNTAyOSA1NDRlMjYyMDYxYTM2MmNjZDIwNTgxY2YxZTcyMTkwYjIyZTU1YWI3IGxlZ2FjeS10cnVuaworMjUwMzAgNjQ2ZjhjMDg4ZjVkODQ3ZWI4NzBkZmFjOThmZTk5NGQ3ZDljMTk5YSBsZWdhY3ktdHJ1bmsKKzI1MDMxIDg5NzBlNzQ2NjgxMTMzYTg0MmE1YTA5N2EwOGM0ZTI0YzViMmJlNzggbGVnYWN5LXRydW5rCisyNTAzMiBmZmFiYWM1MDk3M2RmYzYxOTM5NGQwYThjNjNlYWVlNmI1Y2FkNmEzIHJlbGVhc2UyMS1tYWludAorMjUwMzMgYTFjMzI4MzM3YzhlODQ4ODYyMjA3YzBiNWFmZTNjMjIxZjBmMDFmMiByZWxlYXNlMjEtbWFpbnQKKzI1MDM0IDg4YzQ2M2Y4NzllZjI3NTViYjMxNGI1MmU0MDM1M2I5YzU3MGE1MDAgcmVsZWFzZTIxLW1haW50CisyNTAzNSAwNjhlODczZjA5MzJhYWJhYjM3ODQ2ZGQzODNlNGMyNjU4MDMxMjRjIHJlbGVhc2UyMS1tYWludAorMjUwMzYgMDhhM2FhOTUxMmU5ODJiMjBhYjg0MGNjNmRiNDhhMDMxNWY0NTRlMCByZWxlYXNlMjEtbWFpbnQKKzI1MDM3IDI5OTk2OGMyNzliOTgwZDczMTA2ZDFjOTIxOGY1NGNiNzkwMmEwODQgcmVsZWFzZTIxLW1haW50CisyNTAzOCAzYTU1MTUwNTBiNDM2YmM1MjNmNjkzYzE3MTUxNmM4YWRkY2ZjNjdlIHJlbGVhc2UyMS1tYWludAorMjUwMzkgYTFkNmNkOTdlMzE5NjNjZTJlZjZhYjkzMTIwYTcwMGUyNjhmODJjNCByZWxlYXNlMjEtbWFpbnQKKzI1MDQwIGVkYzM1MzJmYjJiOGZkMGZmZDYxMDYxOWU0ODZmZGFhMGMwYTgzYTQgcmVsZWFzZTIxLW1haW50CisyNTA0MSBjNGZlOTVmZWEzZTZmZmFmZjAyZDJjOWM3OWYyYjdiMWM4OGJlZjQzIGxlZ2FjeS10cnVuaworMjUwNDIgZDA1ZWJiZDk2NWEzNzEyNWY3NDcxNTg0NmY4NjZlYjliOGYwM2NjMSByZWxlYXNlMjItbWFpbnQKKzI1MDQzIDExNmUzMjE4YTdjYTYwN2E4ZTI3N2M3NzFhZTA0ZWFiZjg0M2UzY2UgcmVsZWFzZTIxLW1haW50CisyNTA0NCA4YjI0NTI5N2MxNjZlNmNjMjU2Y2MyZjAzZTM4ZGNhODgyMTA4NmMzIHJlbGVhc2UyMS1tYWludAorMjUwNDUgNTkxNWQ0NWI4MDk4NDE2Zjk4ZTFmYjcyNDkwNDM1OTIxYjlkMTUxZSByZWxlYXNlMjEtbWFpbnQKKzI1MDQ2IGE0OWE2NWE5NWUzNWNkMzY5Y2M4ZTZhM2RmYTI5MGZlMTFkMjUzYmUgcmVsZWFzZTIxLW1haW50CisyNTA0NyAxZWRmNWVkMWFmMDgxYTAyNTVkMGU4MWY1YjkzY2E4ODAzOTIyNjFjIHJlbGVhc2UyMS1tYWludAorMjUwNDcgZjc2YTQyNWIxNGU0ZWU4YWRlNWU5MjM5NTk4NTM4NTM0YjNhOTBhNCByZWxlYXNlMjEtbWFpbnQKKzI1MDQ5IDNlNzhiZjBlMmJlOGQyZGRmMTkyNmJkZGMzYzIzODQ1ZmZiYmNmMTEgbGVnYWN5LXRydW5rCisyNTA1MCBkYjJjMTI4MTI1ZjQ1NjlhYjliZGRiZjBhYmE4YWQ4ZjJiYjljNTZmIHJlbGVhc2UyMS1tYWludAorMjUwNTEgMTBkMWQ3ZDYzNWQ0MjJlZjc0YTRkNjNiZTk1OTI3MjE3NWMzZTFhYiByZWxlYXNlMjEtbWFpbnQKKzI1MDUyIDJmMzY0ODYwMGU2MDFmZGQ5OTU5YzdhNDUzOWI2NGZlY2E2OGEwODUgcmVsZWFzZTIxLW1haW50CisyNTA1MyA3ZmUzZTYxYWJjZTNlYTgyYzJkM2I0OWFhZjI2ZTFhYTE4NWY4YTkwIHJlbGVhc2UyMS1tYWludAorMjUwNTQgNWM2MmVmYmNlNGZhMDYxZGRkYzg4NjE5M2MyZTY2Njk1NzgyYjEwZSByZWxlYXNlMjEtbWFpbnQKKzI1MDU1IGQ3NGRjNDA2NjQxNjg5MjQ5MDI3ZWM3YWFjNzNjMjIwZTE0OGUxYzQgcmVsZWFzZTIxLW1haW50CisyNTA1NiBhZWRkODUxODc0OTY0ODdlYjkxYzc0YjFhMTcyNGIyNTQwZDA2MmI5IHJlbGVhc2UyMS1tYWludAorMjUwNTcgY2UzNWU1NzBmZmEyMWViZGIwNzQ3YzZjNDlmYjEzOWRhNzYxNzQ3NSByZWxlYXNlMjEtbWFpbnQKKzI1MDU4IGEwYjM1MmU3Njg2MmRmMGM4OTk1YmRiOWU1NzVlODBhMjdlZDMxZjggcmVsZWFzZTIxLW1haW50CisyNTA1OSBlYTE3NTVkNzNlOTIxYWM5MGE2MDNmYzJlMmY2Yzc4MDgzYmEzNTk5IHJlbGVhc2UyMS1tYWludAorMjUwNjAgMmUyMjg0NjFhMzkxYjE4ZDc5NjVjNTkzYzRjOWM2YTgyYTQzZjQxYyByZWxlYXNlMjEtbWFpbnQKKzI1MDYxIDMyYzFjMGFmY2Y5OGRjNGM3ZDc4NTY0MWI2YTBmMWNjODc3YjFkYTUgcmVsZWFzZTIxLW1haW50CisyNTA2MiAzYjU0YzQ0NTI0ZWI2MjQzNDM5NjYzMzlhNTdlZjI1N2JiN2FkNjU4IHJlbGVhc2UyMS1tYWludAorMjUwNjMgNDhlY2Q2MDYxZTg4ZDBkYmU5MDJjZTY3M2M3MTQzZDkxYjUzNDUzZSBsZWdhY3ktdHJ1bmsKKzI1MDY0IDQwMjczNjFlNzk1NmEyMWVmZjlmMDRiMTA4MDg0NTQ4ZjE4NjU0MzYgcmVsZWFzZTIyLW1haW50CisyNTA2NSA3NTMxY2M1OTJlNDYzYTFmODQwZWRkNTc2NDhhMGUzYTY3OGUyOWRmIGxlZ2FjeS10cnVuaworMjUwNjYgNGE1YTAxMGM4ZjQ0NDI5OTc5NmFkZTVkZTA1ZGJhNzI5ODRiNzI2NSByZWxlYXNlMjEtbWFpbnQKKzI1MDY3IGFhODNmZTZlOWM0ZjVkZGM0ZmU0MWI3M2ExMThhY2U0NmE1NDkyZDQgbGVnYWN5LXRydW5rCisyNTA2OCAzYjczMzI1YjMyZTU5NDNmYjQxN2Q1Njg2NjFkYTg3N2Q0MWRiZjliIGxlZ2FjeS10cnVuaworMjUwNjkgYTZhMzFjNTVhMTZkMDUwMDg4ZDM3Yzc1NTRhYmFhYzY5MzM4Y2I4ZiBsZWdhY3ktdHJ1bmsKKzI1MDcwIDg2NjYxNWYwYWUyYTcyNThkNmIwNDUxZmVmZDRjYjgxYTk3ZGZmNGUgbGVnYWN5LXRydW5rCisyNTA3MSAzYmU0MGQzYWZmOTQ1ZjZhOTAzOGEzNmY2M2FkY2JhMzgxNmJlM2Q2IGxlZ2FjeS10cnVuaworMjUwNzIgNDM3MzkzZTc4MGNiZmYzZDMyZWE5NDQwMjQxYzQwYThlYzQ3ZjA3MiBsZWdhY3ktdHJ1bmsKKzI1MDczIGM2NGZjNTZmNjA3MjVmODkyODI4MWZjZDI0ZmZhMGI5OWMwY2NmMjggbGVnYWN5LXRydW5rCisyNTA3NCBlMjIzMzk3YjI2ZmE1YTI2NWZkZjM0OTJmZmFjY2VmODBjZWE0MTUyIHJlbGVhc2UyMi1tYWludAorMjUwNzUgNjMwMjkzYmUxMDM1NmUxYjA2MjczNTZhNGU3NjIzNjk3NmNkMmZhZSBsZWdhY3ktdHJ1bmsKKzI1MDc2IDRjNmMxM2FhOGE5OTc1MjlmNzA2MjhjNWZmNmJjYTc1NTAxZmQ2NTQgbGVnYWN5LXRydW5rCisyNTA3NyA0ZWFlNjZiZTFkMjkxYmEyNzQ1OWFiNjE4NzZkMjhhYmM5YTM5NDk1IGxlZ2FjeS10cnVuaworMjUwNzggMWQ5MTgyMDEyOGExYzk5Y2EwODQ0OGUxOTY4OTIwMDY2ZDAzMzdhNiBsZWdhY3ktdHJ1bmsKKzI1MDc5IDgxYTgzYTY1MjQ2ZDMwMDZjOTY3YTRjNTI0N2NkZGU3OGUzOGY1MzggbGVnYWN5LXRydW5rCisyNTA4MCBlYzZiNjdkMjgwM2QyZmEyMmRjMWMyZTVmOGI3MzQwNDMwMTcyY2Y5IGxlZ2FjeS10cnVuaworMjUwODEgZTk5MTk4MjM0ZDk2ZDI0ZDU0YjQ5MzBjZjkwNzExYjM4Y2NkYTRkYyBsZWdhY3ktdHJ1bmsKKzI1MDgyIDI1ZTQ0YTAxMjVlNDU3YzZhZjY2ZDc0NTQ2ZjViNjZlNDdmZTY0YTQgcmVsZWFzZTIxLW1haW50CisyNTA4MyA5ZTE3M2NiMzViNmRmZGQ3M2VkMzViMGQxZGQ2MzQyZTRiOTNkOTUwIHJlbGVhc2UyMi1tYWludAorMjUwODQgZWJlNmJkNTc2ZjY1ZDliOGFlZTA4YzI4OTE0M2UzY2QyODg2NjVhZCBsZWdhY3ktdHJ1bmsKKzI1MDg1IDg4NGU1N2JmM2FkYTQxMDczYjZlNmQ3OTE4YWI4YWUyMzIwODkzZTMgbGVnYWN5LXRydW5rCisyNTA4NiA1ZDJiZmJkNDdmMWJlMmEwMmFmYjAyMDUyN2QyY2FjYTE5ZDZiYTI4IGxlZ2FjeS10cnVuaworMjUwODcgNjc3NjFkNWI0YWU2YTJlZjE1NzFkZjdkNDY5YTUyZDBmZTU0MmMyYyByZWxlYXNlMjEtbWFpbnQKKzI1MDg4IDVhMzI5YTI1NzE5N2Y5NTJjNmRkZjZkYTdjNDZkY2E4NjVlM2IwNjEgbGVnYWN5LXRydW5rCisyNTA4OSA1NGVjY2M1ZDIyZGQyNzQxZWY4OWY4MGUwMDU2ODUzZTlhOGU2MjI2IHJlbGVhc2UyMS1tYWludAorMjUwOTAgZTY1NDc1YjRmM2NmOGI1OGU2OTk0YTRjMGE5YWFhZjY3OWU3ODIzNyByZWxlYXNlMjEtbWFpbnQKKzI1MDkxIDNlMjZmNWRhY2JiZTY2MmYxMGI1OWNmOGNjNjFmNDNmMjZjNjNhOWIgcmVsZWFzZTIxLW1haW50CisyNTA5MiBkOTYzMTg0MzgxMTg3Mjg4ZGY4OTc4NDFmMDY2ZmY2NzU5YTZhZjUzIHJlbGVhc2UyMS1tYWludAorMjUwOTMgMzFiMjUwMTQxNzRiZDZjODQ4MjQzY2ZhZGNlOTQ2Njk0NWUyZDc3OSByZWxlYXNlMjEtbWFpbnQKKzI1MDk0IGRjY2JkN2JiNWJkNWM4NTE1MzMzZWNkOTY5NzRmOGYwOWNlZTkyOTcgbGVnYWN5LXRydW5rCisyNTA5NSBjM2E4NjQ4YmYwOTdhYjcwMTI4YjRmYjFmZWE5NjNkYzdmNzViMDQ3IHJlbGVhc2UyMS1tYWludAorMjUwOTUgY2YzMWIxMGU0NWI0ODYxNTA5NGNhZTkwZTNjNWJkMDcyNTg3ZDhlNiByZWxlYXNlMjEtbWFpbnQKKzI1MDk3IGJhOGRiOTBlZWY0ZWNhYThhMWZjYmU0MDNhNmUzYTQ4YjA4NDVkZGIgbGVnYWN5LXRydW5rCisyNTA5OCAzMGE4MTcwMzhhZjBmNGJkNmRiNjg5ZGQzMGQ2NjUyMzlkMjg4NDE5IGxlZ2FjeS10cnVuaworMjUwOTkgY2ExYjY3ZjVhM2VjZDhmNDdiNjNhNDc3Y2M1Y2UwMmU5ZGU0ZDQ2ZSBsZWdhY3ktdHJ1bmsKKzI1MTAwIDJiNTZhZjY5ZjY3ZGVkOWY2ODRmYTMzNmRiNmRmNjM4M2RiOGU4N2EgbGVnYWN5LXRydW5rCisyNTEwMSA4ZjRjYzgyMWFmYWE3MjgzYTVlOGU4MTNmYjI1NzVkOTUzZjQzZjI4IGxlZ2FjeS10cnVuaworMjUxMDIgZWE4Yzg0MDBhNGM4ZDAwZTc0ZTc0YWI0ZTE4M2UxY2Y2MGRmNWFiOSBsZWdhY3ktdHJ1bmsKKzI1MTAzIDlkNWFkZmY4N2YzMDAyMGFhMmJkOGMzNGIzNzU0N2FjODUwYzNhMGEgbGVnYWN5LXRydW5rCisyNTEwNCAzNGY4NWEwYTdmYWFkY2I3ZGNmZDhkZDhlYzZhZjIwYWJjNjllMGM1IGxlZ2FjeS10cnVuaworMjUxMDUgNTNmYzZlYzhhODM3NjA1YjMxZmM4MDk4NzM3ZTczZWIxMDUwYzkzNyBsZWdhY3ktdHJ1bmsKKzI1MTA2IDFiN2VjMzk1ZDM5MjRmOGYyOWY1NGRlNDdhMzcxMDJjZmIzZDkyOWIgbGVnYWN5LXRydW5rCisyNTEwNyA0NDJlZmYyOWI0OWY3YjMzNjM4ZjgzMDViMWU4ZTc5ZTM2YjFjZTc4IHJlbGVhc2UyMS1tYWludAorMjUxMDcgZDgyM2ZjMTM1ZTkwZTdiYjg0NTkxNWNlYzkwMjc3ZWJmY2QyYzhkMyByZWxlYXNlMjItbWFpbnQKKzI1MTA4IDc0MjQ2YTJkOTk2MjIzZWMxZWUxZGVjOWE3NDZhODdjOTcxZTkyNTMgbGVnYWN5LXRydW5rCisyNTEwOSA2NjA1ZjA3NmY5NWEyZDA1NmMyM2MwYzhlZDExZTg3NzUyYWRhZDdjIGxlZ2FjeS10cnVuaworMjUxMTAgYzRmNzJiNDcyMmRhNjM0ZDBjNTE3ZTA0ZGU0MzRiYjJkZTZjM2E5MiBsZWdhY3ktdHJ1bmsKKzI1MTExIDljMGEwYzg5NzczZjE4MmIwMDY1OTdlZTlmNDhhZGNmZTEwZDZlYmEgcmVsZWFzZTIyLW1haW50CisyNTExMiA5ZDc3MDhkZGNmYjk5OGUyOTQ5MDI1NDJlYmMwNWUzNDM2Y2Y2OTc4IHJlbGVhc2UyMS1tYWludAorMjUxMTMgMTlkNjY4NzUxYjFlYWYwMzQzMDA4MDY2YzVlM2NiODM5NTllNGY0NCByZWxlYXNlMjEtbWFpbnQKKzI1MTE0IGNmYmRlODUxOWU1MDBlMTIzMGEzZTY3NGIzZDAzZWFlMzE5MzJlNTEgcmVsZWFzZTIyLW1haW50CisyNTExNSAwZWZmOTYxYTE1YjUzODhlZWI1MzFlNDdiOWQzOTNkZGZlMmE5ODZhIGxlZ2FjeS10cnVuaworMjUxMTYgZDYwMzUwZDcxYjYwNTgyOGU1YjYwNDRmZjcxOGIxYWM5OTczYWE4MyBsZWdhY3ktdHJ1bmsKKzI1MTE3IDQwNjMxYWU3NGIxN2JiYTIwNTFjODc0Yjk1OTJkZWU3ZjVjNDMzMGIgbGVnYWN5LXRydW5rCisyNTExOCBjYjQwYWNhNDE4ODljZTc3Mzg1ZjZmNDY4ZWI5MzllZjBkMjFmYWFmIGxlZ2FjeS10cnVuaworMjUxMTkgNzIzM2I4NmJlNjU2ZTM5Zjk0ZWE5MmY2MGIwM2ExNDI3YjFiNTlmOSBsZWdhY3ktdHJ1bmsKKzI1MTIwIGRiYjcwM2ViNmIzZDliNGUwYTNlZmM4ZDE3ZGE5NjIxYjJlMGZiNDEgbGVnYWN5LXRydW5rCisyNTEyMSAxYTI2ZGNkZmI2Y2M5ZGVlM2Q4ZDMwOTU3NTllYzJiZTkwNDM5YTMzIGxlZ2FjeS10cnVuaworMjUxMjIgYTFiMDY1ODI5M2E3MDk5MTNiODEzOTRkOTY1MjI1Y2JiZTkzMjA1YSBsZWdhY3ktdHJ1bmsKKzI1MTIzIDY1MmRjNTFiNWY4MzIxODdjYmFkMDczNGZmODQwYWUxNjUxYzgyY2IgbGVnYWN5LXRydW5rCisyNTEyNCAwMTEwYTA5ODNlNjE5MzBjYzEwNWQxYzQ2MTc4NGRmNmY3YjQ4NTExIGxlZ2FjeS10cnVuaworMjUxMjUgMzY4NTYxNWQyMWIzMjdmNTgxMWU2OGQxMjNmMDI5N2VjMTRhMzY2NCBsZWdhY3ktdHJ1bmsKKzI1MTI2IDhiMTE2YTg0NDliZDVlZWRmYzgyY2ZlNzYzZDJhMmQzMjdjNzIyOWMgbGVnYWN5LXRydW5rCisyNTEyNyA4YTJjZDFjMGMxMzU0ZWM4ZmFkNmIzOGYyMzM1YzAwYjg4ZmEwNDZmIGxlZ2FjeS10cnVuaworMjUxMjggZTIyN2M4ZDAzZDZkOGMyNGQ0NTRjNTNhNzE2MzFkYTRmY2QwOTcyNyBsZWdhY3ktdHJ1bmsKKzI1MTI5IGU2ZDVjNGM3NDViYzAxM2M0ZmM2MzEwODhjNTNmYjMxNzQ0NWE3YjkgcmVsZWFzZTIyLW1haW50CisyNTEzMCA1Nzg3ZmM0OGMyYjU1YTUwNzE4YWE0MDZkZjRhMzkxYjYxOGUwN2YyIHJlbGVhc2UyMS1tYWludAorMjUxMzEgOGU2N2Q5MDM1YjY5OWFiYmEyMTE4MTJjNTUzYjY1ZTJkOWRhMTk1YiBsZWdhY3ktdHJ1bmsKKzI1MTMyIGVjNzUwZTM3NjcxYmUzZWI1MjVlZDg4ZWQxN2U5ZDRhOWQ1ODIwMWUgbGVnYWN5LXRydW5rCisyNTEzMyBkNWEzOGEzMmY3OGI1MGNjODU4OGVjYzI0NDVhNDIzNjdjNGU1NWZhIGxlZ2FjeS10cnVuaworMjUxMzQgMWVkMjY4ZWEyZDI2MzAzOTMzNjUxYzZmMWMxMDIxZTVlNjk4YzE0ZSBsZWdhY3ktdHJ1bmsKKzI1MTM1IDE2Y2M1Mzg0MDFiM2YwODJkZGQ4ZmQ1NjdlN2Q1YTIzZDFmOWRiMWIgbGVnYWN5LXRydW5rCisyNTEzNiA5YmVjMTgzZmVmZmY2MWNlZDNjY2FkMWMwNWQ2ZDNmMTYwYjM5OWVlIGxlZ2FjeS10cnVuaworMjUxMzcgNjMzZTY0NTY0ZWRmYTFhYmM1Y2EyYTY1Njg2MDhmZWIxNzliOWYwYSBsZWdhY3ktdHJ1bmsKKzI1MTM4IGY4ODczNjI1ZDhmNjA0YjZmYmY1ODNkMWUzMzMzOWNmMGUxOWM1YjMgbGVnYWN5LXRydW5rCisyNTEzOSA2Zjk1OGY0OTliNDI5NTcwNTM2NGU1Y2VmYmY1YzE0ZjBlZGNhMjAwIGxlZ2FjeS10cnVuaworMjUxNDAgMGZlODc1ODY2ZDRlZjU2ODYyNTUzODFkNmJiYTU4NjQzYTU4ZmM4MiBsZWdhY3ktdHJ1bmsKKzI1MTQxIGRhMTdhMTBlMmYyMzFjOTIwNzY1OTQyZWI1YjI3YTEwNjFhNGNiMjUgbGVnYWN5LXRydW5rCisyNTE0MiAzZTBkYjk4NGJkM2UzMDRjNzdhZTE5YjNhMmNkZjhmZWM4N2JlZDQyIGxlZ2FjeS10cnVuaworMjUxNDMgMmM2NjE3ZjI3MGUyYzkyZGJiY2YwMWYwZDIxYzdkYjY0MjJjZWY2YiBsZWdhY3ktdHJ1bmsKKzI1MTQ0IDVhNWQ5NGM0OTk3NTBlM2QzY2E4YzU5NDM2OGY1ZGViNDZiMTZmMWEgbGVnYWN5LXRydW5rCisyNTE0NSA2YzVjMTEyZDQ1MzM5YmQ3NzI4NTNiZjg5OTk5Y2QxZDg5ZmE2MTI2IGxlZ2FjeS10cnVuaworMjUxNDYgMTM4M2U2ZjdiMTFmOTlkNzQzNjllZWNiOTAzYjI5M2I1MDJiZjZjMCBsZWdhY3ktdHJ1bmsKKzI1MTQ3IDNlZjdiZWQwMDdmNmVkMzdjMjk2OTlmNjRjZWMwM2Q4Njc3ZGE0MDAgbGVnYWN5LXRydW5rCisyNTE0OCAwNWZhYmQ4ZjRlN2Y4ZDY1ZjNkMWIwYWE1MzE1YWY5NDJhNGUyMDYyIGxlZ2FjeS10cnVuaworMjUxNDkgMTllMGE5MmUzMjc3N2VkNmZhNWRjMjdjZmJmOWU4ODcxYTc1ZWRmYiBsZWdhY3ktdHJ1bmsKKzI1MTUwIDZhOGM0NmQ4MjEyYmM2N2IyOTJlNjk4MmU3NTQxNDY3MTFmMjlhYjEgbGVnYWN5LXRydW5rCisyNTE1MSA5NTc2MGFiMTE4NzU1ZjU3MWZiMWRjOWU0MjNiOTc4YzhhYWQ0NTk3IHJlbGVhc2UyMi1tYWludAorMjUxNTIgYTY4YmE3NTVkNzAwZTVlMzFhY2ZlZjQxOGZmMjNmZTUzYzI4ZGUyYiBsZWdhY3ktdHJ1bmsKKzI1MTUzIGNlMTBhN2Y5NjdlNWE3YmRiNjI0ZWM3M2Q2NDA4YTVkMTM1NTliNGQgbGVnYWN5LXRydW5rCisyNTE1NCA0ODNmNWYyNzJkZWZjNmY0N2U0OTljM2Y2OWI3NjZiYzFlMTc0NjAzIGxlZ2FjeS10cnVuaworMjUxNTUgYzg4ODYyMGU4MDYyYzdjN2QwZjUwOGIwMjE4YjMzOWEzN2NhNzBiYSBsZWdhY3ktdHJ1bmsKKzI1MTU2IDI2YTU0ZDNmNTVlNDdmZjM1NDczNGZhMDY1YzU5YzNlZmNhN2M1NzAgbGVnYWN5LXRydW5rCisyNTE1NyBlN2Q4YTlkYTNiMTgwNDBiN2YzMTJkYjM2ZDg4ZmQ0ZGYyM2EzODM1IGxlZ2FjeS10cnVuaworMjUxNTggMDNhMmJhNzQxNzliOWYxNWYwZGFjNzNiYjc0YTBiMWE1MmEwODIxYyBsZWdhY3ktdHJ1bmsKKzI1MTU5IGFkY2MxNDE0MjQzMmU4MTRlMjA3NTVhYzhkM2FlZjA1NGMzZGQyYzUgbGVnYWN5LXRydW5rCisyNTE2MCAyNDA5OGY0ZjY4MmVkMTZmZWYxNmRmYTIyOTUyYmZlNzVkN2ZhYTBiIGxlZ2FjeS10cnVuaworMjUxNjEgZmEzMDUxZTBmZDkzMjEyMDlmN2VhNDY3YzU3NDk4MDgyOGNhYjE0OCBsZWdhY3ktdHJ1bmsKKzI1MTYyIDJjOGIwM2VkMzkwNjNhNGUzMGZlMDU1NGZlNzY4NDNhYTQ1N2Y2OGEgcmVsZWFzZTIyLW1haW50CisyNTE2MyBlMGRiZDE3NTRhYTkwOGMxN2MxNWY4ZTM3NWI4YjZhYTEyYzljMDY3IHJlbGVhc2UyMi1tYWludAorMjUxNjQgYWFlOTc3Y2E1OGEzYTdiMWUxM2UxNDAyMzc2YjhiYjdlMjQzMDNiMSByZWxlYXNlMjEtbWFpbnQKKzI1MTY1IDM0NWI5MmVkMmEzZmI3YWEyZmM5YTU0MWQ0ZGM5NDU2ZmI1ODM1ZTMgcmVsZWFzZTIxLW1haW50CisyNTE2NiA5MjYwZjY5NDMyYTkzYzlhN2Q0YWZkMjJlNGIxOTVjMzI0YzYxMzQ4IGxlZ2FjeS10cnVuaworMjUxNjcgNTlkMDliYTFmNzgyYzhmOGVhZjNhZTE3YjYwNDVmZmI4NzE1NjFhMSBsZWdhY3ktdHJ1bmsKKzI1MTY4IDYzY2JhNDIzZmEwNDBiZjEwNWYyYzg4YzhiMThlNTMwNzJkMTlkYzUgbGVnYWN5LXRydW5rCisyNTE2OSA3NDQxNTMzYWNhM2JiOWJmNjA1M2ZlOGJmOTFkOTM2YzUxNzg5NDJiIGxlZ2FjeS10cnVuaworMjUxNzAgN2ExMWJmYzY2MjE0MzE3MTM3ZjM1NjE4ZWUwZDY0NTU5ZjFjYzNmZiBsZWdhY3ktdHJ1bmsKKzI1MTcxIDQ0NDU5MWFmZmQwZTAzY2MzMDZjNmM2NjM0OWM2N2Y0ZmM1YmQzODggbGVnYWN5LXRydW5rCisyNTE3MiBmZmM0MTE2ZWMxMTlmOGFiY2Q5YmY5ZWZiNmI3MGMwM2FkNDE3ODVmIGxlZ2FjeS10cnVuaworMjUxNzMgZjNiMGUzY2IzNDBiMzAyMTg5MTA5MzNjOWI5Y2ExODA2MmFjOGI5MSBsZWdhY3ktdHJ1bmsKKzI1MTc0IDA1ZTYzMTExYzMxMDZlMGQ5YmEzYjk4NTg4ZjM2MzM2MTU0MTc0MjggbGVnYWN5LXRydW5rCisyNTE3NSA5MDUyMTNlMjg2Nzc1NzEzY2ZmM2U2YmFhNWNlZDgzMTI1ZmIyODAzIGxlZ2FjeS10cnVuaworMjUxNzYgOTY5Y2UwMTdiZDNhMTc1YjU1MDU0NTYyMTk5NWViYWIzNmE0NDM3MyBsZWdhY3ktdHJ1bmsKKzI1MTc3IDNhNzA3NTIwZGUzMDkzZTdmODFhOWY4MDAwY2QzYmMxYzAwNGM1N2MgbGVnYWN5LXRydW5rCisyNTE3OCA5MGMxZjNmMzdkYWU0NmE4NWZlNzJmNmIxMGJmZjYxNzFkZjZiODI5IHJlbGVhc2UyMi1tYWludAorMjUxNzkgYjEyZGNkMjc2ZGIwZmQyM2U5ZWU5YTA3OTgxM2EwYjIxZGUyNGZiMyByZWxlYXNlMjItbWFpbnQKKzI1MTgwIGE0ZTQ3MzY3OTliMThmMzY5ZjdmY2IyM2ViZTA5ZTU0ZjEyYzNmZWQgcmVsZWFzZTIyLW1haW50CisyNTE4MSAxZDg2Y2RiMTcyOTE2MDllZDBlZGMzMTEwZjUzMjMyNWM0ZmQ3ZDkwIHJlbGVhc2UyMi1tYWludAorMjUxODIgMTRkYTdkZDM3Yzk0ZTZhNjQ4YjI4Mzc5MWJlZjZlZmYyNDkxMzQ1YSByZWxlYXNlMjItbWFpbnQKKzI1MTgzIGRmZjIyOGFkMTdiOTgzNTI1YTM3NjU4ZGZjZTgxMjllY2FlMWI0MjEgcmVsZWFzZTIyLW1haW50CisyNTE4NCA2ZjQ1NWQ0OTE4NzE1ZjM3MTllZjdkODNkNjIxOWMwMTE1Yjc5ZDE1IHJlbGVhc2UyMi1tYWludAorMjUxODUgMDZmOGE4MjFiNjgzY2QxMzU1NWM4ZTU4YmMxZjgwYTlmZGMzMzczMiByZWxlYXNlMjItbWFpbnQKKzI1MTg2IDdlNzk2NGM2ODJiNTYyMzhmY2JkMzMzODk3N2Q2MjUyZWQxNjFkYTcgcmVsZWFzZTIyLW1haW50CisyNTE4NyA3YmEyYThjMTYyZmEyNjdhNzczYTE1MWIzMTIwNTVjOTA1MzRmODA0IHJlbGVhc2UyMi1tYWludAorMjUxODggOWI0MTRkZjQ4ZTE0N2U5NTc0NDQyMWM2MTg2NTZjNWVjZjhjNzczZSByZWxlYXNlMjItbWFpbnQKKzI1MTg5IDczMWJlYjY3ZmVjOTAxN2E5MjZiMjZmOWE2ZjJiNTkwNDM3NDhlMGYgcmVsZWFzZTIyLW1haW50CisyNTE5MCA1Y2FlYTJiMTMyY2ExODVlMDdlMGJmZjUwZDkzYTczNmFmOTE5NjI1IHJlbGVhc2UyMi1tYWludAorMjUxOTEgNGY1NGU5YTI5NzZlNmMyMjFjZDYwNmJmYTk2YzcwMTBhOGZjM2Y5NSByZWxlYXNlMjItbWFpbnQKKzI1MTkyIGFhNzEzYzRjNDk4ZGVkZjNkYjIwZmE1NzE3ZDAyN2RhYTU5Zjk3NjQgbGVnYWN5LXRydW5rCisyNTE5MyAwNzBkMzkyMDQyZTNlZWY2NzAyYzUxODc4YmNlZjMzNzJlZGI4YTI1IGxlZ2FjeS10cnVuaworMjUxOTQgYzFkNTVhNjI3ODk3NzQwMzc3Y2YxZTdmMGMwOWVhMTRjY2RkN2IzNyBsZWdhY3ktdHJ1bmsKKzI1MTk1IGYzNzliYzBjNWUzZmM5NzI0NzNjNjNlMjliMWU1YzFkNDk2OGM0NGUgbGVnYWN5LXRydW5rCisyNTE5NiA2YTFlNzRhZGY4ZDZjZWM0ZDJjMTEyNjY3OTY2NTgxOTg3YTkwMDhjIGxlZ2FjeS10cnVuaworMjUxOTcgMTFjYzA1OTg1NzRkODE4NDVmMThjMmRiZmNlYTAzMjNmZmZmNTNhYiBsZWdhY3ktdHJ1bmsKKzI1MTk4IGZjMTBlNzAyMThkM2JlM2MyNWZjYTMzODllMzc0NGM1YWQ5MWY2MzAgcmVsZWFzZTIyLW1haW50CisyNTE5OSA1ZTY3YWQ3NmM3MmZkYWRiYzhhNzE0ODA5OTk0NGFmN2JjNzY2NTdmIGxlZ2FjeS10cnVuaworMjUyMDAgZmQ0MTg0ZGEwOTgzMGY2ZGNiMGI1MWY2YTE0MzI2MjFlZWIxNjE5ZSBsZWdhY3ktdHJ1bmsKKzI1MjAxIDRiM2IwNmRlMDJhMzExNWJjMDQwOGU1YWY1NWMzNjc2NDhlZDMxOTUgbGVnYWN5LXRydW5rCisyNTIwMiBmZTJiNjRmYzU3YTBhMGU0MGZjYWU4NjBlNGEyYjhjMDM3ZGI0NTY1IGxlZ2FjeS10cnVuaworMjUyMDMgNDNkOWMyZjlhMmY2YmMwMjE3MzVkOTA2MjNiYmFlOGU3NDYzODY1YyBsZWdhY3ktdHJ1bmsKKzI1MjA0IDQ4YjU5ZmE2ZjY0NzIyZDVlY2ZjNzU4YTFjNGZjNTE0MTFmMjY4ODMgbGVnYWN5LXRydW5rCisyNTIwNSBhOTNhN2JjYmMzODZmZDY4NzhhZGE0MGJiMjZkOWE1ZDU2NzBjZWM4IGxlZ2FjeS10cnVuaworMjUyMDYgMjZiNzU4YzAwZmI2MDY0NTMxMTE2YzExMmNiODFkZWY0ODdjZjk1MiBsZWdhY3ktdHJ1bmsKKzI1MjA3IDQ1NzMxZjEzNjBlZWNlMjY1YjkyZmYzNTk2ODVkNWZjOGVkMTQzMDEgbGVnYWN5LXRydW5rCisyNTIwOCBmZDQyNGY1MTlhOGViZTgzZTg2MDM4M2UxNDk1ZmQ1NzUwNTVlNGExIHJlbGVhc2UyMi1tYWludAorMjUyMDkgZmFhYWViNTM1ZDM5MmU3ZTBkYmFmYmUzNmQ0NmE1Yzg2ODc2YjIxMCByZWxlYXNlMjEtbWFpbnQKKzI1MjEwIDBkMDhjYjg0OTUxMTgwOGEzOWRlYmZkZWRlNzdmOGQzNjRmYjY0YjAgbGVnYWN5LXRydW5rCisyNTIxMSBlMGZjMjg2ZDU3YTQ2Y2Q2YTc4N2FhNWI5MWUxOWZmYjJhNjRhZWY2IGxlZ2FjeS10cnVuaworMjUyMTIgOWUzODRmMTAzMDQ3MjEwODdlZjc1YjFkMWY5NTY4MzJiNjkyNWE5ZiBsZWdhY3ktdHJ1bmsKKzI1MjEzIDY1ODNjOTVjZjY5MjI0MmRiMTM5ZmNkMGRhYmQ5YjA4Yjg1OTBkM2IgbGVnYWN5LXRydW5rCisyNTIxNCBjNDMzZGUxN2MxNTgzYWFhNzgyOGVjOGQ2YTA1OGM5Njg0NzYxYjc2IGxlZ2FjeS10cnVuaworMjUyMTUgMWYyZTkyODUwMTg4NzM4ODg5YWMzYjBkOTA1ZWZhMDI2YzJlODM1ZiBsZWdhY3ktdHJ1bmsKKzI1MjE2IDJmNjE2NDc0ZWFlYzdkZjVhYjE4YzU3MzM2MjljYzJkMDg5ZjZjY2QgbGVnYWN5LXRydW5rCisyNTIxNyA5Y2ZmODkwYjRmYjA3NmE4MzUxZjNkY2FmMGNlNjcwNjg0ZDZlMzMwIGxlZ2FjeS10cnVuaworMjUyMTggZDUyMWNmMDg5OWM4MDNiNTJiMGRhZWQ0OWI3ZTlkODU4N2I3MjE1NSBsZWdhY3ktdHJ1bmsKKzI1MjE5IDc2NjA3YTBjNjk1NjA4ZjU3NjMwNDQzMzg2YzQ2ODQxZDM0ZWExYTUgbGVnYWN5LXRydW5rCisyNTIyMCAyMGJjNGZmMTIxNWMwZmU3MGM4NzQwMTQwYmNmYjQ3NDI5NGRkMDY3IGxlZ2FjeS10cnVuaworMjUyMjEgZjVhYWI4ZWI4MTI0MTU3YjJkZmM5OGE1MmFhY2FiNmQwMjE0MGJjZSBsZWdhY3ktdHJ1bmsKKzI1MjIyIDUzYWM4Mjg0MjE3YWZkMWZhNzMzY2YyMjk1ZTMzNTE3MTE4MTEzMjcgbGVnYWN5LXRydW5rCisyNTIyMyBjYmY0MTkyNWRkM2U5MzE3MWIwZGQ5MTYxYTNmZjYwZGJhYjg2ZjdjIGxlZ2FjeS10cnVuaworMjUyMjQgZjcwOGE5MDdkYzY5MWE3YWNiMzg3NDQxNjQwZDM0YTZhYzM2YWYxNCBsZWdhY3ktdHJ1bmsKKzI1MjI1IDUzZmVjYzhkZDRjOTA1Y2NjNzc1YWUzNGJkYWM1ODM3MjQ3MDllZTQgbGVnYWN5LXRydW5rCisyNTIyNiA2ZjYyZDUxYzljMTI4MTlhZDMzODg4Njg5YjM5YmEwYzkzZmRmOTI0IGxlZ2FjeS10cnVuaworMjUyMjcgZGEwMDhiNWM1MDM1ZWMwNWRiNTI4OTExM2E0MzI1ZGM3ZWNiYzhlZCBsZWdhY3ktdHJ1bmsKKzI1MjI4IDNjZDBiNGJiNWUzNGQyNDlhYWMzODE3OTM1NzMxOWM0YzE5ZDc5YWEgbGVnYWN5LXRydW5rCisyNTIyOSBiNWQwMDJlOTA4MjdlMDZmZTdkYjFiYjUwOTMyMDA5MTY4ODhiNjFjIGxlZ2FjeS10cnVuaworMjUyMzAgMDQyZGIwMzgyY2QzYjgzMmY1ZWNlYWNlZGU2YzM2MzMxNTg2ZGQ5YiBsZWdhY3ktdHJ1bmsKKzI1MjMxIDUwNDNiNzM4YjA3MjBjM2YwZTA0YzI3NTI2ODBlN2YyNDQ5ZWJjNzIgbGVnYWN5LXRydW5rCisyNTIzMiBlZDg2MWUwZDRhNzFkNDg2NmNlNjE1MDMwOGE0MWI3MzQwZmM3NjhkIGxlZ2FjeS10cnVuaworMjUyMzMgODQ0ZmU3MjViMWNkNDMxMjhmZjVmZmZmZWJiMmY1NDY5ZjM2NTY4ZiByZWxlYXNlMjItbWFpbnQKKzI1MjM0IDRkNzIxMzU3YmRkYjVhOGFmNTY5OWU2Y2Q5NDJlZTZmMzU2MWFhNTYgcmVsZWFzZTIxLW1haW50CisyNTIzNSA3ZmFmMGZkZGY3ZTY4YWFmYzlkMmM2Mjc2MjUzYTdlNTI2ZjJhNTE3IGxlZ2FjeS10cnVuaworMjUyMzYgNzhlMzZmMDUyM2E4Yzg1OGEzYmQ3MzE3MDgxZDU2ZmQyYTlmODU1OSBsZWdhY3ktdHJ1bmsKKzI1MjM3IGU0ODg0NjcxN2MyNmYzYzM2OGJjNzk3YTYxYjUzZDQ3ZDZiZGNlZGMgbGVnYWN5LXRydW5rCisyNTIzOCA0OWQ5MzY4OTQwMmI1NGUwMTA0YmMzMGY2NDQyZDczN2NlMmRmODNiIGxlZ2FjeS10cnVuaworMjUyMzkgOGRhZmU0YTc4Y2FjNDY1MTVhNjNmNTQwMzQzNzA0NjQ4ZmFkMzE3MiByZWxlYXNlMjItbWFpbnQKKzI1MjQwIDM1Zjg0ODkzYWNmNzY5YzhkMmYwMGEwOTEwOWFhNWIxYmM0MWIwOTcgcmVsZWFzZTIyLW1haW50CisyNTI0MSAxYzc2OTIxN2MxMDU5ZjNmZTMzNTdlMGNlODk1NjU0MzY3NTM2MGYxIHJlbGVhc2UyMi1tYWludAorMjUyNDIgOTRiYWM4OGYxNTBmMDAxMDJmNTQwMjZiYTRmMjFhYTk0Njg2M2I0NCBsZWdhY3ktdHJ1bmsKKzI1MjQzIDBhODEzYTNkZGI5MmRkOWNhZjlhNWIxYzJiMjNlOGIyZWE1OGI2NTcgbGVnYWN5LXRydW5rCisyNTI0NCAwNGNmNGUxM2U1YzlmYjM0ZWQ3NDEzMGQ1ZDE5YWJmOTJjMTVlNjBlIGxlZ2FjeS10cnVuaworMjUyNDUgYzgyODZjYzcwMmM5OTI0ZjFlMmIyMTNjZmVlYWUyMjAyZmRkMDQwMiBsZWdhY3ktdHJ1bmsKKzI1MjQ2IGFiZWRiMjQxOGY2MjMxYWRmMjQyMDUwOTJhNTk5OTZmMWYxZTRjMDIgbGVnYWN5LXRydW5rCisyNTI0NyBlMTA4Njk3MjZjZDQxYjcyYThiMWY5MWRjMGFmM2IzM2Y0ZmM3NDU1IGxlZ2FjeS10cnVuaworMjUyNDggODM2YzFkYmYyM2EwZWE5ODFjZGY2M2IzZjcxZDM1NDI2NGJjYmYxZSBsZWdhY3ktdHJ1bmsKKzI1MjQ5IDE5ODM0Y2QxMDFkOTFiNWYzMjZlNDUxZDkxNDJlOTExNGFhZWZkMDcgbGVnYWN5LXRydW5rCisyNTI1MCA2NGU1YTM5ZjFmZjA5NjE1ODJmNjFhMzk1NjI3YTViYjVkNDI1ZjRlIGxlZ2FjeS10cnVuaworMjUyNTEgMTdhNTZlMWM2ZmY4ZTI3ZDJkM2RkOTY1M2U0YjFkMDZjMWY4OTI1YSBsZWdhY3ktdHJ1bmsKKzI1MjUyIDhlZDdjNjFiNWYxYmEzNWIxNWExYTRiNTE5MzExMjY2MjFiY2JlNTQgcmVsZWFzZTIyLW1haW50CisyNTI1MyA4NjEzZGYxN2YxOWJiZDM4ZTU5MTQxOGM4NGRkMWYyM2FjMTE4MDA3IHJlbGVhc2UyMi1tYWludAorMjUyNTQgZjI0NTk1NWIzZmJlN2Y0YTJjMWFhYWIyMjUwYTVkYjZmYjU3OGQxYiBsZWdhY3ktdHJ1bmsKKzI1MjU1IDIxZjU5ZDllZDE2OWY0ZGIwNzYzYjgzY2UwMDQ3YzBkZDgxZWE1MDMgbGVnYWN5LXRydW5rCisyNTI1NiA5MzczNDhlZjE4Yjg1NjA0MjNhODllNjkyNTgxNDBiNDY5YTIxNzNmIGxlZ2FjeS10cnVuaworMjUyNTcgOThlOTJhNjRlNzNjMmZmNzUxZWJhYjI1NWMxZjhkMTQ1MWMzZTZlMSByZWxlYXNlMjItbWFpbnQKKzI1MjU4IDg2ZmNkOTQzOGNiZWJkNzE4Mzc4ZTU0ZTY0YjIyYjllYzIyNWVhOWEgcmVsZWFzZTIyLW1haW50CisyNTI1OSA0YjVjMjhhNjJkMTZlNGE0Zjc4YzNiNGQzYTEyN2YwYmEzNzExODU0IHJlbGVhc2UyMS1tYWludAorMjUyNjAgNTdlYWE1ZDY5YWMzNWY1MGQ4MGE3ZGMwZDBmYzQ4MzBmMWZiOWU1YiBsZWdhY3ktdHJ1bmsKKzI1MjYxIDRjMWNjZjM2MDI1Y2Q5N2FhZGQwZWExMzE2N2ZhZmNkNDAxYzkwMDQgbGVnYWN5LXRydW5rCisyNTI2MiAxZjZiYzQ5OGU2ZTU2ZTJmYzU1ZTVlZjNkMDQ0MGJmYTI3YTdkODNlIGxlZ2FjeS10cnVuaworMjUyNjMgYzA1MThhZDcyYjkyZTBhYTljYWRhNTEwNjcwNTZiN2Y3MGVlMDAxMCBsZWdhY3ktdHJ1bmsKKzI1MjY0IGYwMDc4MWQ2NjRhOWE0YjQzMWViYjA3ZTQzZmExNjhkNmQ3NDc1YjggbGVnYWN5LXRydW5rCisyNTI2NSBkY2MwNzc4ZWI3ZDNiNDFjMTc4MmFjYmQzNjdkMTAxMjM2NTUxNWViIGxlZ2FjeS10cnVuaworMjUyNjYgZjg4MWUwNjE4ZGYwYWY2NjUwZDExZDY3NjVhNGYzMTRlYTc3YzQ1OSBsZWdhY3ktdHJ1bmsKKzI1MjY3IDdmNjUyM2IzMjE3OTI2MjNhNjFjMjZmMGIzMjUyNzZkNDJlMTlmMTEgbGVnYWN5LXRydW5rCisyNTI2OCAxNmZhZjY4NzUwMDQ1MmY5ZDJiMzMxMTgzYzRlYTZhZWJlMTZjYmQ1IGxlZ2FjeS10cnVuaworMjUyNjkgN2MzMGNiMTdjMmY2NTZkN2EwNTM2ZWI5ZWNjMzI3ZWYyMDhkY2YyYyBsZWdhY3ktdHJ1bmsKKzI1MjcwIDE2YzJhZTM2OWQ3MTVlMmU5ZjY3ZjA2ZjIxNTI4ZjNlOWNiZTMyMDAgbGVnYWN5LXRydW5rCisyNTI3MSA3OTRmZTM3Y2E1ZjRlOGI1OTk2M2IxOGQ3N2E2YWYzYmY4YzYzNjAzIGxlZ2FjeS10cnVuaworMjUyNzIgMTUxN2I0NTQ3Yjg3NjZjYTM4NzUwNTNmNTkwZDgxOTU5NjIxYjQwMyBsZWdhY3ktdHJ1bmsKKzI1MjczIDlkMmFlODUzMTk0NDA0NTg4MDZlNGZkOWFhMTAzOGE0ODkxOGYyOGEgbGVnYWN5LXRydW5rCisyNTI3NCAwYzY5OTkyY2NlMDk5NDZkMzg5NzVmMjM0MTNkNjAxZjQ3NzBhOGYxIGxlZ2FjeS10cnVuaworMjUyNzUgZTE2MzcxM2I0N2NmMjFiMTNjZDliODU5MWE2ZGMxNWFmNjgyZWYyYyBsZWdhY3ktdHJ1bmsKKzI1Mjc2IDE1YzBlN2FlZjY2NmQxODgzYzJkN2U1ZjcyYzliOGE0MGRmZGNjZTkgbGVnYWN5LXRydW5rCisyNTI3NyBiOTgxNWY0ZDhiZTM1ODU0OTU2ZmYyZjc3YThlNjYyY2M4MTlhM2QyIGxlZ2FjeS10cnVuaworMjUyNzggMDc2ZTlkYzc3YWFkYjM4NTcwMjM2NTVmNWVmNTEwZDg4OTg5YjdjNyBsZWdhY3ktdHJ1bmsKKzI1Mjc5IGMzNzYzOTc2MTEyZDVhZmZiYjllNDU1OWY5MDEwMjE4NWQ5NTM2YjcgbGVnYWN5LXRydW5rCisyNTI4MCA1OWJiNDNiNmViMTFmMjVmYzljNDIwZGYyM2UyOTg2OTdkODZhOTE2IGxlZ2FjeS10cnVuaworMjUyODEgMGY1ZGZhMzNmOWVlODRlMGQ2YzA3ODc2NTRjYWVjMGUyYmFiNDExNiBsZWdhY3ktdHJ1bmsKKzI1MjgyIGY3YWEzMjdmZjBmZWI5MjcxZTNlZmZhMmE2NDllNjllMWY4ZjhkMDAgbGVnYWN5LXRydW5rCisyNTI4MyBlZmI2ZTYxN2FlYTM5ZGQxYWFhN2YxY2M4YzkwZWE0MjE1NmFjOTBmIGxlZ2FjeS10cnVuaworMjUyODQgODdhZmY2NDhkOTk0ZTIzN2RjMjZlZjY2ZDQ0ODJhNWFmZDUyYThkYSBsZWdhY3ktdHJ1bmsKKzI1Mjg1IDEwOTdmNzMwMjk0YjJjOTBhOWM3YWJmNjI1NTNjYmNkNzViZWE1M2IgbGVnYWN5LXRydW5rCisyNTI4NiA5ZjZlMGNmMWFiMzA5N2ExNTVlNzVmZjJmMTNmODg3YzEwOTI1NmRmIGxlZ2FjeS10cnVuaworMjUyODcgMjQ0ODI5MjFhNzhhOWI5MmQ0YTU5NWQ5NTY2NTRkZjQ3YjY0YjMxYyBsZWdhY3ktdHJ1bmsKKzI1Mjg4IGExM2JmMmY3MjYyOWFiNjhhNzEzMDc1NGM3YTVjZDE2NjA4ZDc0MTUgbGVnYWN5LXRydW5rCisyNTI4OSA3ZTcxNTljMDI4MzA5MWY4ZmViN2IwZWViZjYwZDVjZjEyZWIyMmI0IGxlZ2FjeS10cnVuaworMjUyOTAgODhlMjE3ZTUwNTNmZTQ0N2RmZGQwNzhmNTBiMGU0YWY0N2RlMmYyOCBsZWdhY3ktdHJ1bmsKKzI1MjkxIDc3ODI0MTU4MWQ0YTM1NmM2MDM4M2VlZDZkYjYwNzYwM2RkMGYyOWMgU291cmNlRm9yZ2UKKzI1MjkzIDdmMzViYjkyZmJmNzUzNDgwMmI4OWQ3ZWU5Nzg3ODljNjAzNmJkZDAgU291cmNlRm9yZ2UKKzI1Mjk0IDdkNWIyYzY3OWYzYmNkMTNkNmY2OGEwN2ZlYWY3YzExMGQ3YjYwNTUgbGVnYWN5LXRydW5rCisyNTI5NSBhYjY4YWQ0M2Q1MTQzNWQ2MTAzYTU1NTRiNGUzMjg4NDA5YjBiMWY4IGxlZ2FjeS10cnVuaworMjUyOTYgYjM4NjI5YjkxNTQ1MTJiYWNkMzFkMTQzNGY1MWI3NjVlMTE5MDg2NyBsZWdhY3ktdHJ1bmsKKzI1Mjk3IDcxZmZjOWZiNTk4NmY1OTUzMWEwODU5Y2UwMDJiYzhlOTlmOTg2YTQgbGVnYWN5LXRydW5rCisyNTI5OCBlMjBkMTJiNWRhZDFjMGZjNjIzYWVmZTYwODUwZmQ0YjA4MDZjZjBmIGxlZ2FjeS10cnVuaworMjUyOTkgZDc0Mjc5OGNkNGI0YTQ2YjhjNDdhNzE5ZGNmODAxM2JhOWI2NjZkNyBsZWdhY3ktdHJ1bmsKKzI1MzAwIDgyOThlOWM1MzVkYTg0ZjE5MzVmYjUyZjI2M2VlMTVlMDYyZjhlZGIgbGVnYWN5LXRydW5rCisyNTMwMSA0YWIyOWIwNmE3NmNiYTBlMjJjNDhhMjNhMTUzMjVmYjY2MjRhNGUwIGxlZ2FjeS10cnVuaworMjUzMDIgNmJkZmM5ZjZmMDU5MDMyZDVlZmZjODA4YjRiMWFlNjEwMTRmMzYyMSBsZWdhY3ktdHJ1bmsKKzI1MzAzIDMyZDBlZjZmMTk1NTcwNjJjMmIwMzBhNjA4M2JkZjljMDAxZjIxMTcgbGVnYWN5LXRydW5rCisyNTMwNCBmNzQ1N2ZhYjc2ZjBkYmJjNzBiMjc5ZDE4NzRjYzNhMDkxMDA2NTA1IGxlZ2FjeS10cnVuaworMjUzMDUgOWQ0NGU3NTJkNjE3ZWM1NDA5YjRhZGZmOGY1ZjU5YmZkZDMyMTk3ZCBsZWdhY3ktdHJ1bmsKKzI1MzA2IDljODMyM2FiZjFkYmQyN2Q5Y2EwY2Q3ZDcyNTQ5OWU5YTU5NjkxNzYgbGVnYWN5LXRydW5rCisyNTMwNyBmMzkyMTM0MDVlMDVjNDhiNjM5ZjNjN2NhMmNiZTBlNjgyYmQ0M2MwIGxlZ2FjeS10cnVuaworMjUzMDggY2JmMWRiY2ExZjYzMGNjMzcwMmZjYmRlMGI3MWJkNjI4YTQ2Y2RkZCBsZWdhY3ktdHJ1bmsKKzI1MzA5IDc2NmM1OTM3YTYxZWM2NzdhOWQ4Mjc2NjEyMzlhZmZmMTAyZTYxMjkgbGVnYWN5LXRydW5rCisyNTMxMCA5MWE2ZGI2ZWZhMTQ5YTI1MTVjZWRhY2Q5ZTQ2ZWI1MzY1MTkwMWUzIHJlbGVhc2UyMi1tYWludAorMjUzMTEgZDI0NDExMDVhOWJmZjEwOGNlYzkwMzJkMjM1Y2RlMzBkODc3MTlhYyByZWxlYXNlMjEtbWFpbnQKKzI1MzEyIDE3Zjg0NjlmMDlkMjA3YWViMzUyMGI5NDYxN2YyNmEzM2NjM2RhMDMgbGVnYWN5LXRydW5rCisyNTMxMyA4MWMyYmRhNWQzNzc4ODg2NGQyMzhlZDFlYmI2ZWM4YzllNjcyZTM5IHJlbGVhc2UyMi1tYWludAorMjUzMTQgNDg2NDQ0NDUyMGQ5MmJjYTBkY2YwNzg2YzFlMjUwYjQ5NGFjYTMyYiBsZWdhY3ktdHJ1bmsKKzI1MzE1IDY3NmRiMDMwMGYwNjc3ODVmYmQ5Mjg0YjAxZTQ2N2EzNzE5YjhiMWIgcmVsZWFzZTIyLW1haW50CisyNTMxNiAwYzllYmNmMTdlYmZkNTkyOTZlMTY5YTRhOTk1MmE1YWVlYjg0MDdjIGxlZ2FjeS10cnVuaworMjUzMTcgOTdmNDllZGNiZGU3MjBhMDczNDhiNDUxYmY4Yzc2YTY4NjBkMzQxZSBsZWdhY3ktdHJ1bmsKKzI1MzE4IGI1NWYyZmY4YjI1ZjYxN2U0NGYzOTc5Yjk2NzFkMTE3YzgwNWMwYTUgcmVsZWFzZTIyLW1haW50CisyNTMxOSAyZTllMWIwMmI3ZDdiNjJiMjgyMmQ4MDc0NWNiYjE1M2IzYzc3ZWM1IHJlbGVhc2UyMS1tYWludAorMjUzMjAgOWZhNWQ0MGNjNzIyMmQ2ZjE3ZDU5MTk0ZjA4ZmIwNDMwMDNkN2IwYiBsZWdhY3ktdHJ1bmsKKzI1MzIxIDVlZDc4MmJkYmIyYWEwMDc5YTZkMWMzNTUwYjM4YzVhZDQ4OWQ3NTggbGVnYWN5LXRydW5rCisyNTMyMiAzOTU3ZDE1NWY4YzU1MDE5NGE4ZTVkMzhlYTYzOTM5ZjU2OGE0MDk0IGxlZ2FjeS10cnVuaworMjUzMjMgN2E5MTdhZDhmNDQyNGY1MmZkNDk2YjEwYWM5ZjdlZmQ1YzczMTUxYiBsZWdhY3ktdHJ1bmsKKzI1MzI0IGVhMjNlNmU0OTI5MDNkMTAzZTYzNjYzNWIzOTdjNTkwZGFmNTIxNDAgbGVnYWN5LXRydW5rCisyNTMyNSBkM2IxZjJjMGViY2ZjM2UzZjk5MDU1ZGM0NjQ4ZjBhYjY4NDM3ZjYzIGxlZ2FjeS10cnVuaworMjUzMjYgMmZhYTIzZmFjZWY3MmRmMjRlZjhiMzZhMmVhMzk4YWU1ZDE2MmI1YSByZWxlYXNlMjItbWFpbnQKKzI1MzI3IDk0YjkwY2RkNmUwZmU1ZTNmN2EyOTM5YmI1YTc0YTc4ODcwZGRhNzggbGVnYWN5LXRydW5rCisyNTMyOCBjNWQzZTQ1ODc0OWU3ODFlOGNkMzA2ZWQyNGZjYzRkN2NmYzE1ODZkIGxlZ2FjeS10cnVuaworMjUzMjkgOWM0MDI1MjNmOGY1YWI1N2Q0NTg4NzhhNGI0NWI3MjM0N2JjZjIwMSBsZWdhY3ktdHJ1bmsKKzI1MzMwIDRkNTU0NzAwYzRkMTcyMzI2OGE5ODY0M2Y4YjMyN2VlN2VhMDk0YjQgbGVnYWN5LXRydW5rCisyNTMzMSA2Mjc0MWIyNWVkNjUxNzg2NDg1MjU1OTNlZmZjNjc1NTE4OGMxMmVjIHJlbGVhc2UyMi1tYWludAorMjUzMzIgNzJjOTU0NDhlZTRiM2MwYjVjNGQ4MmY4ZWZjZGZmN2MzMTdhZGFmYyBsZWdhY3ktdHJ1bmsKKzI1MzMzIGIxYTg3MWRjNTE5NjJkNWI4MTM3ZjNmMjg2NGRmYzNmN2RjYmU1OWQgbGVnYWN5LXRydW5rCisyNTMzNCBmY2U3Mjc4ZDQ2YjBhODQ5MGU0NjliNWZjMzlkMDA2NzIyOGNmYzI1IGxlZ2FjeS10cnVuaworMjUzMzUgNGExMzM3OTA2NjA4ZmI3NmEzZTk0MDExNjgyZmIzNzlmN2Q4YjkyMSBsZWdhY3ktdHJ1bmsKKzI1MzM2IGVhOGRiNmY1ZDFjNTc5MjZjZTU3MTNkYzhkYjQ2NzE0ODhkMTcyMGYgbGVnYWN5LXRydW5rCisyNTMzNyAwNTJlZmMwNjUyMGEyMWRiZjY4YzFjODZjYmJlYWExMDc2NjMyOTk2IGxlZ2FjeS10cnVuaworMjUzMzggOGUwYzNiNzVlZmY1OGIxNWE5ODY2YmY4MGNjNGU5YjQ5OWViODEwZSBsZWdhY3ktdHJ1bmsKKzI1MzM5IGU5NjRlMGZjNGJmZTcxYmIzZDAzMjdlMDhhNjA1MGQxZTViY2FiODkgbGVnYWN5LXRydW5rCisyNTM0MCBhMGFkNjljMGJjMzY3ZjM0MTNkNTg3ZTRkODA5NTI5Nzk3MmJjZGQ3IGxlZ2FjeS10cnVuaworMjUzNDEgMTllM2Y4NjU5ZWVjZTJjNTBjM2YzNmM3YWJjNTI0NTVhMTQwZWJkYyByZWxlYXNlMjItbWFpbnQKKzI1MzQyIDg4YThmY2FkMDJkMGRjY2JjNGZmNzk3YTY3OGYyNGM2ZmMzYTA3ZTggbGVnYWN5LXRydW5rCisyNTM0MyBjODBmNTYwMTBiMjg1YzgzYmVlZGUzMWY2OTg0YjYxYTM4MzMxMmJiIGxlZ2FjeS10cnVuaworMjUzNDQgNGU5Y2MyNmUwM2ZkZTkwMzhjOWZiMWE2MTkxYWYyZDI2ZDFmNDM3MCByZWxlYXNlMjItbWFpbnQKKzI1MzQ1IGUwOGFiMzQ3ZDEyZThiM2ZhZmUyYWFlM2E0OWI4MDBjYjMzNTNhNDAgbGVnYWN5LXRydW5rCisyNTM0NiA0YzMzODdiYTExOWQwMTg3YjIyYTE1OGU0YjQyMWZkMTk4MzAyMDQ2IHJlbGVhc2UyMi1tYWludAorMjUzNDcgMThiNWM3ZjY0YzgwNWMxNWU0ZjZjZGEzY2E1MWI2MDQ1MTgyYjQyZiByZWxlYXNlMjItbWFpbnQKKzI1MzQ4IDliNDVhNTg3NGMwOTkxOWFjMGM0YWU2YzYwNThmYWVmYWE0MjM3ZDIgbGVnYWN5LXRydW5rCisyNTM0OSAzNWQ5ZjU2OTM2MWFmZTZjYTNkMDk2NTQxOTBhYTBjMWQxYmU2Y2FlIHJlbGVhc2UyMi1tYWludAorMjUzNTAgMGY2MzExMWJmNGM1ZDc3NWY5MjY2OTdkM2RhODg0M2FjNmRhYjgxMCBsZWdhY3ktdHJ1bmsKKzI1MzUxIGY5MmU4NjhlYjQ0MGI3NjA5OTQ4YTU1NzYyZGNiYzlhZWY2YzljZTcgbGVnYWN5LXRydW5rCisyNTM1MiBjODQzYmU1ZDU4YTlkYzhjN2RjMmJmNTRhNWE3NmM5OTM5MTM5MTk1IGxlZ2FjeS10cnVuaworMjUzNTMgMDlhYjljZTFmNTJhNjAyNGVlYjUyZTcxNTJlY2MzODBmODJhN2Q1YSByZWxlYXNlMjItbWFpbnQKKzI1MzU0IDA4YzViMGM3ZDlkODE4ZTdjYWVjOWM3NTEzN2Y3MTI5YjViY2FkODUgcmVsZWFzZTIyLW1haW50CisyNTM1NSBhN2ZiZGU2ZTM0YTUwZjQ1OGZkYmVlMWMzNGE2YWVhYjYzYTQ5NjljIHJlbGVhc2UyMi1tYWludAorMjUzNTYgNGU5OTYzMTRmOGZiNDQxMzlkMzgxYjg2MjZkM2ExZTc1NDc2MDkxMiByZWxlYXNlMjItbWFpbnQKKzI1MzU3IDFhYTBjZTYwZjZhODUyNzBjMTUyNDY4YjIxOWQ2MWM4OGI2NWU4ZTkgcmVsZWFzZTIyLW1haW50CisyNTM1OCAyNzE0NzM5ZDQ4M2I2MjdkNzEyODkwYzliZGFhZjYxMTRhNGI0NWE3IHJlbGVhc2UyMi1tYWludAorMjUzNTkgMGIxNWNmMTE0MzFlNGQxNzZlMGZmYzFhODY3NTQ3YjhkNDk5OWNkMSByZWxlYXNlMjItbWFpbnQKKzI1MzYwIGNiNWI0YTU0ZmYxMmE0Y2Q4MzAxZjYyNDZhYjM4OTk4M2UyYTM2NzAgcmVsZWFzZTIyLW1haW50CisyNTM2MSBkZWZkMmIxYTg0MjY4OGJmMTYzOTA5NjNlMWNiNzE1YjU0ZWEwZGE0IHJlbGVhc2UyMi1tYWludAorMjUzNjIgN2FlZTBmOGFmYWM1MDhjZTZmYzE4ZTBkNzFmMzRhNWY5NzExOWU4MSByZWxlYXNlMjItbWFpbnQKKzI1MzYzIGJjNWJmNzJmYjVkNDVkNGMwZDZhZWY2YTM1MjRmYjBkZTZjN2U0ODYgcmVsZWFzZTIyLW1haW50CisyNTM2NCA5NjU4NzQyNzllZTJkMjY2NTk2MTA1ZTNlNmZkNTNkZjIxYzBkOTM0IGxlZ2FjeS10cnVuaworMjUzNjUgNWU5NWYzZWU3N2VjMTQzYzdlMjNmMGU2NjVjNTcxNmYzYTQ4YjYxYiByZWxlYXNlMjItbWFpbnQKKzI1MzY2IGE2YTViMWZjYzJhN2U4ZjU0ZWEwMGNiMjJjNDJlNmU4MmQ3OGQxYjYgcmVsZWFzZTIxLW1haW50CisyNTM2NyA1MTI2NmIyYjQzNjBkNGU2ZDA5OTY5OTM1MGQ4YjllYjUxNTZmMWIzIGxlZ2FjeS10cnVuaworMjUzNjggNTJhYTNlM2U1NzdmMTIwYzU5MmM4ZmVjMGE3NzM3OWIyMGUxYjU0MCByZWxlYXNlMjItbWFpbnQKKzI1MzY5IDRjZGFmZmM5ZTE4Y2MwZjBiZTUzODIwM2U0NjU4NjY4YWJmY2M4MjEgbGVnYWN5LXRydW5rCisyNTM3MCA4YTc5MTMzMGZjMjAzYjZjMjUwNzQ1MzU3NzUyMWU5OTY0MjBiY2I0IHJlbGVhc2UyMi1tYWludAorMjUzNzEgZDI0YWFkZmUzYzA2YTlhOGJjMTczN2QwOWY0MzNlYzExZGIxZGFiOCByZWxlYXNlMjItbWFpbnQKKzI1MzcyIDhjZTE3ZGE5OGU4Y2JhZmNiOThlMGIxODIxODc0OTA0NWFmZjAyOWIgbGVnYWN5LXRydW5rCisyNTM3MyA4MmZiMGY5OWUyZGFkMzE4ZGU0MDNhNGRkOThiYmM1YzAyOWUxZjc2IGxlZ2FjeS10cnVuaworMjUzNzQgOTYzNjc1ZmU5N2U3ODkxZTIzOGZiZmQ5Yjc3MmFiZDg4YTgxMjY5MCBsZWdhY3ktdHJ1bmsKKzI1Mzc1IGU3OTk0OTg4MzZiOTRlYzlmZDQ1ZmIwYzYxZDU0N2ExYjFhOGQ2MDYgbGVnYWN5LXRydW5rCisyNTM3NiA5ODg1ZGEzZmVlZWNkMWIxMzBhYzNlNDBlOWMwODY4NjhiZjgxMzM2IGxlZ2FjeS10cnVuaworMjUzNzcgZTNmYjhkMTZhNTFhY2E1N2QzZjlhZjJhOGZkMzg4YzA0YTA0OGEwMCBsZWdhY3ktdHJ1bmsKKzI1Mzc4IDRlYjgxODY5ZjYxOTdiNWIyNWFlZGQwMzcyZDlkZGNmODk3NTk2ZDEgbGVnYWN5LXRydW5rCisyNTM3OSA0ODFlOWE0NmQ2ODAxMWIzMjM3OGJlZmYwYTZmYjliYWYzNjc1NWVmIGxlZ2FjeS10cnVuaworMjUzODAgODBhMDRjYmNkMGM4MDExYTYwMmVjMTA2NjYxM2U0NjkxNzQ0ZmY5MyByZWxlYXNlMjItbWFpbnQKKzI1MzgxIDQ0ZWRiZTBmMjE3NDhlOGUyZTNjZDUwMDEyYmFhODc1MGRkNTE4N2EgcmVsZWFzZTIyLW1haW50CisyNTM4MiAzMmQyNGY4ZDY0ZjdiMzZkYTc0NDI5MTY0NDZiYzYwMTFlMTQ3NWI1IHJlbGVhc2UyMi1tYWludAorMjUzODMgOWY1ZTM1Nzg2NzUyNTI3YmRiZTk2NjBhZGFiZDNlYjllYjE0NzcxMiByZWxlYXNlMjItbWFpbnQKKzI1Mzg0IDcxZjI1Zjk1ZTkwMjU5ZDUyMTA2ZDc0ZTVkMmNiZDVlNjQ4ZTZjMjEgcmVsZWFzZTIyLW1haW50CisyNTM4NSBiODY5MTYwMWQyYTAyODgyOTdhNTZkMTk5ZTE5ZjAwNjQ0ZjVmZDJjIHJlbGVhc2UyMi1tYWludAorMjUzODYgZTA2ODQ0MGUxMTZmOTM5NmU4NWZlZjE0MjgxMmZhYTcxNjNmNDZiMiByZWxlYXNlMjItbWFpbnQKKzI1Mzg3IDk1ZGMzMDI0OTI3Yzk4OGViZjE2MmRhNjU3NWRiMWRkOGE1NDA4OTcgcmVsZWFzZTIyLW1haW50CisyNTM4OCAwMmE3YzY0ZTMzMzFmOTk3ZGM1MDMyMDc4N2IyNDc2ODFiMzA2N2E0IHJlbGVhc2UyMi1tYWludAorMjUzODkgZmJlODIwZTBjNjAxZDY2NTc5ZjFiMDEzMGNiNjZkZmFmODAxOTY3OSByZWxlYXNlMjItbWFpbnQKKzI1MzkwIDdmYmVmZTNlM2RlZTJkNzIyYTVkY2RjNWY1ZWUzMmJhYWEzMmMwYWYgcmVsZWFzZTIyLW1haW50CisyNTM5MSA1NTZmYjdmMWI2MDY3NDNlMTg2NTRkZTNiZjU0OWYxY2Q3YjZjOTA4IHJlbGVhc2UyMi1tYWludAorMjUzOTIgYTViMjVhODE2YTZkNjhjMmU5M2NjODY0ZGMyNTlmYTg2NzVjODZkZSByZWxlYXNlMjItbWFpbnQKKzI1MzkzIDk5MzQxZTg1MDE3ZWE0NmJkZTgwY2RkY2QzNDU2NTZmOTg3OWNiNDMgcmVsZWFzZTIyLW1haW50CisyNTM5NCA3NjEwNzUyODBhOTVlNjBiZTFhNTZkZjU0NjI1NzhhZTdjMzkyOTM5IHJlbGVhc2UyMi1tYWludAorMjUzOTUgYjEyZTk3MTQzNjY4ZDg3ZDhiNmRiM2E1ODJkNDA1NTdkOWRiY2ViYiByZWxlYXNlMjItbWFpbnQKKzI1Mzk2IGZkYWFmYWE4OTU4N2Q3OTkwYzRlY2VlYWEwZDA4ODNhNzNhMjU2YTkgcmVsZWFzZTIyLW1haW50CisyNTM5NyBhZTQ4ZDU0MWY2NWFjMzlhYTY1ZWJhOGQxMmY0NmE1MGJiMWQ4MmZhIHJlbGVhc2UyMi1tYWludAorMjUzOTggMjI5M2UwZDdiNWM0NTA2ZmUxMzU4M2U3NmRmOWYwNWFlYjBmMWNlNiByZWxlYXNlMjItbWFpbnQKKzI1Mzk5IDIyOWI2MjRjNmI1NGM5MTYwYjM5MjM0M2JiYTY0YTU2NWUzMjc0NmMgcmVsZWFzZTIyLW1haW50CisyNTQwMCA3MjIzYzU0YjA3Mjc2ZDk4MGRkZTg5MzNhNWRiMDI5OTAyM2E1YmFiIHJlbGVhc2UyMi1tYWludAorMjU0MDEgZTZkNDRjZjI5ZGJmOTc2YTUxZTRmNWFjZGNiYWJmMDQ4NTZlZjAwMyByZWxlYXNlMjItbWFpbnQKKzI1NDAyIDEzMzljYmU5NGNlZTU1NDVhMzJiYjJmZWU0MWM0ZDM1OThkYTc4N2QgcmVsZWFzZTIyLW1haW50CisyNTQwMyA4NzVmYjViNzI5MTBjMzUxZjhhMjQzZDAzMDNiYzFmYWRiZTU2Nzg5IHJlbGVhc2UyMi1tYWludAorMjU0MDQgZTBhMjg4ZGIwMjJkZTFiMTFjY2JmY2E2NGFiZjU1OTYyZjE4OWU4NiBsZWdhY3ktdHJ1bmsKKzI1NDA1IGYzODYzMzAzYTlmNGZhNTVmMGJlYWM3NzkwYWRmNzBjYmI2ZmU3ZmUgcmVsZWFzZTIyLW1haW50CisyNTQwNiA0N2FhMTA4MWFmMjgwOTgwMDdlMWRmZjg4NTlmYTY0YWI0ZDUzMDUzIGxlZ2FjeS10cnVuaworMjU0MDcgMTQ5OGM2ZTRiNDNhMWY2ZGI5MTBlYmZlZmNkNGJlMzllMDdhZGQ4ZiByZWxlYXNlMjItbWFpbnQKKzI1NDA4IGNhMmNiYTEwYjQ0ODdhYWYwZmZmMjk1ZWYwZTU2Y2YwMDgzZGNiNTcgbGVnYWN5LXRydW5rCisyNTQwOSAyNzYyZDIyNTFlODVkYzY0YTc2MjEwYTExYTVmMGU0ZDNjZWYxNWQ5IGxlZ2FjeS10cnVuaworMjU0MTAgZWZhMjNkMjZmYTM1ZDQ2ZTRmZWNjNDc0NGY1MTFiODFkMTdmOGVhMyByZWxlYXNlMjEtbWFpbnQKKzI1NDExIDZiZTY1OTIzYzAyZDZkYzQ2NTUxZjk5Yjc4NzA0ZGM5ZmE3YmY3MWIgcmVsZWFzZTIyLW1haW50CisyNTQxMiA5YjFjYzk5ZjU5MzJhODQ5NzhjMjM4ZTM1NDQ5YWNhNmIzMmU2MjMxIGxlZ2FjeS10cnVuaworMjU0MTMgZWNmZjQwNDYxOTdkYTE4MDhiN2EyMWQ4MGEzMzIxY2VlNzBhOGZmMyBsZWdhY3ktdHJ1bmsKKzI1NDE0IGUzMWFkNGRkMzBkOTk4ODMzMzhkYjc1MzM3NzliMGNjNGI3ODVlYWMgbGVnYWN5LXRydW5rCisyNTQxNSAwOGQ1Y2Y1OTZiMDEwNzFjMGRjNjNjNDA3NGVjNjEwMzcxMjcxZDY5IGxlZ2FjeS10cnVuaworMjU0MTYgNDkxOTdmZDc2MzYyYjJmNzRmZWViYjM1Y2JiMjE4MGZhZWE0Y2U1MSBsZWdhY3ktdHJ1bmsKKzI1NDE3IDVjYmNmZGUzYWQ1NTA3NjdkZjg4YTE5NTE0NTQ2N2EzZWQ2ZTNkZTcgbGVnYWN5LXRydW5rCisyNTQxOCA4NmQwZjdmODY1NTA1ODdhMTkxNDU3ZmY4NWQ0NWE3NmQ5MGQyZDk4IHJlbGVhc2UyMi1tYWludAorMjU0MTkgOWYxZWI4ZmYxNzk1NmFkOGUyODE3NjU1MjRmZGRlYTU5ZjJkZWM0NCBsZWdhY3ktdHJ1bmsKKzI1NDIwIDQzODU0MzExNjRkYTU5ZmM2NWM3Njk2YjdjOTI5YjllY2E5MWY1NzUgbGVnYWN5LXRydW5rCisyNTQyMSBjYThhMjg0OWRkNTZlYzEzN2M1ZWY2ZjFiNTE1ZTM4NDA1ZjBlZWRjIHJlbGVhc2UyMi1tYWludAorMjU0MjIgNDZiY2VlMTFiNDgwNTBkMTE1OTVmMmQwM2FhMzQ1YzM1MzdkZTY0MyBsZWdhY3ktdHJ1bmsKKzI1NDIzIDUxZWUzYmRkYjcyY2U2ZTQxMzRjNzEyZGI0M2ExYmVjNjMwODhhOWMgcmVsZWFzZTIyLW1haW50CisyNTQyNCA1Y2I2Y2M0NmNkNDJjZTRkNjQ4NTgwZTVmYTdjZDYyMzNjNTU1MzU4IHJlbGVhc2UyMi1tYWludAorMjU0MjUgMTA4N2NhNTE5ZWI5YWU3ZjI1ZTM2M2YzYTg4M2NhYTliYWFhNjE0NyByZWxlYXNlMjItbWFpbnQKKzI1NDI2IGE1MGJhYTEyNmM3NWU2ZThkNmNmOGRkNTRiZDA1MzJmMDg2YWM4YzggcmVsZWFzZTIyLW1haW50CisyNTQyNyBiODM3NGRlODRlMmFlNzM1MTUxY2JhNDYxYzM1NzI3ZDA0NjkzZmEzIHJlbGVhc2UyMi1tYWludAorMjU0MjggOTcyMjRhOWNjODNjNjUxMmE3MGRmYjZhOTg3Y2U3Nzc2YWFmZWVjMiByZWxlYXNlMjItbWFpbnQKKzI1NDI5IGY1NzZkOTAwMDI2ZjM2Yjk1OTkzZjY0OTVlZjU4MDQ4OTM5N2Y1NWEgcmVsZWFzZTIyLW1haW50CisyNTQzMCA1YzE0OGY1ZTFjMTE0MjAwMjU5YmJjNzg0ZTViNDcwZTMwMTY5N2EzIHJlbGVhc2UyMi1tYWludAorMjU0MzEgM2MzYWNhYzg2NzM0NTQ5ZmEyNTAzMzI4YTllM2MyZWMyMWQwZmZkYSByZWxlYXNlMjItbWFpbnQKKzI1NDMyIDUwMzJlYzg5MWU3NDU2M2U4ZDJiMTM2MzdiZjMzZDgyNmVkYzFmZjIgcmVsZWFzZTIyLW1haW50CisyNTQzMyA0YmJhY2FlZGM2ZTJkNzQxNWJiMDI1YzQ2YTVjMGU4NWVmYTc0MTNjIHJlbGVhc2UyMi1tYWludAorMjU0MzQgYzJmOTBjZTU5NzU1Mzk4MzEzN2FiMDc3Mjg3YmY1ZmM2NDBlMWQ3NiByZWxlYXNlMjItbWFpbnQKKzI1NDM1IDUyMTA2MjkwZDM5MmM5NGFlNGVkNGI0MmU1YTVjODk4OWJjZGQ2MzAgcmVsZWFzZTIyLW1haW50CisyNTQzNiBlY2U0MzE1YzEyMDZmN2Q0MmI0NDFiOTgyNzM1ZWRkYzNhOGY4ZjQ4IHJlbGVhc2UyMi1tYWludAorMjU0MzcgNjU5MjZhOTcwYTE3MWM4MWUzMmQwMzgzNjA2ZGRlYWMyZDQwYjZkYyByZWxlYXNlMjItbWFpbnQKKzI1NDM4IDVkMWIyMjAzYjZlY2Y3Y2QyNTZiM2Y3ODYzZjkzMDc4NjIzMjUzMmQgcmVsZWFzZTIyLW1haW50CisyNTQzOSBiMzgzYzNmZjNiMWVjYmUyNmYxNjM0Y2EzMzhmZTYyOTBjN2JjNTYyIHJlbGVhc2UyMi1tYWludAorMjU0NDAgMjg1MmI0Y2I3ZjZhYmYwODY0NWQ1NTcwMGFiMjk5Yzg0YTkxYzVlZiByZWxlYXNlMjItbWFpbnQKKzI1NDQxIGI3MDIxMWMxZDI1Njc5ZTRlNGEzY2NjMTE2YTU4MDczOTZjNjdhZmIgcmVsZWFzZTIyLW1haW50CisyNTQ0MiBiNWI3NzM1MGEwMDQ0MDNkNzA0ZTdlMDc0MDEyODQwNmFhNzQ0NWU4IGxlZ2FjeS10cnVuaworMjU0NDMgOGQ1ZGMxYTdlZTE4N2JjYTEwMmUwMGU1NzM4ZjY0NTkxZTY2NWI2OCBsZWdhY3ktdHJ1bmsKKzI1NDQ0IDYwNzJmYTQxMGRjYzk0YTRjM2M5YzAzY2U5ZWIzYjFhOGU2NGJlOTMgcmVsZWFzZTIyLW1haW50CisyNTQ0NSA1NWM0ZDA4M2MzMDlhMGVhNzcyYTcwYzUxMDk0OTg4OGI0ODgxNjAwIGxlZ2FjeS10cnVuaworMjU0NDYgZGZlYWMwMzM0NTc0Zjc5ZTA2YjkzNGMzZjA5NThkNDVkMGViMDE0OSByZWxlYXNlMjItbWFpbnQKKzI1NDQ3IGFkM2Q1OTYxMjM0NWEyNDEyOGI4NmM4OTlhMmQzYTlmY2YwOGIwMWUgcmVsZWFzZTIyLW1haW50CisyNTQ0OCA2OGE2YTlkZDQyZjgwMTFjZmZjNTFiNjVmN2UyZDMwOTJkMGEyNjI5IHJlbGVhc2UyMi1tYWludAorMjU0NDkgYTlhZjg5ODY4Njg5YTA1OGZmMGZiYzNlZWIyOWYzNTZhMmE4YjhkOSByZWxlYXNlMjItbWFpbnQKKzI1NDUwIDViMjRhNmFlMmRjNGYwZDhkZmVlYjJhYTg0N2NlM2ZlNGRlNzMxOWMgbGVnYWN5LXRydW5rCisyNTQ1MSA3MzZmYjVhZWM5YjNiN2MxZTU3NzZmZGE4Mjg4YTAzOTlmNmNlZDUyIGxlZ2FjeS10cnVuaworMjU0NTIgNDAwOWMwODQwMmIxNDU2MDU1MjBlNjc0OGNkNDU0MmM4ZTJlMGQ5NiBsZWdhY3ktdHJ1bmsKKzI1NDUzIDkwZDNjZTNlYjE5Y2I1OWFjOTE2NjI3ZDBlOWI3NWNlNjIzYmIyZDMgbGVnYWN5LXRydW5rCisyNTQ1NCA3MDY1MTM1ZjkyMDJmMzhjZTg4ZGExYTRjZDc1YTI5MDUwYzM5NDdiIGxlZ2FjeS10cnVuaworMjU0NTUgN2EzZTAzYjU0MWZmYjEyNzgxMmFlZWM3MzQ4ZDBmMjQ1NjQwNDFlMyBsZWdhY3ktdHJ1bmsKKzI1NDU2IGNjOGI3ZjcxMTI3ZDg0ZDBmYTUzOGQ4YjgwMTczOWM0Y2Q2Y2M3MGQgcmVsZWFzZTIyLW1haW50CisyNTQ1NyA2NmM3NDVhN2FiYjFmZTgyMWVhYjU0YzUyNmFhNDUxM2U3ZmJiMTQ4IGxlZ2FjeS10cnVuaworMjU0NTggNTk1NWUwZTI5NzZkM2U5MTUxNDc2ZjdmNmIxYWJiN2QzODM4ZGM0MyBsZWdhY3ktdHJ1bmsKKzI1NDU5IDllNWZmNjc0NzQzN2Y5ZmU0Mzk2YTlhMTkyN2QwMjQzZTYzYWNmYTIgbGVnYWN5LXRydW5rCisyNTQ2MCAyZWZkNDNjYTAzM2Y2NDlkZTEzNTI1NzkxZDFlOGViODY5ZjdlOTNkIHJlbGVhc2UyMi1tYWludAorMjU0NjEgOTY2NzI1MDk1ODU0NmRmMmNlZDk5YmQ5NzEyODhlOTNhMDBjNjViZCBsZWdhY3ktdHJ1bmsKKzI1NDYyIGQwYWNiM2NiMDExZGE1NWViNzU2MzExNzRkNGY3OWIwZTlmZTU2N2EgbGVnYWN5LXRydW5rCisyNTQ2MyA0MjNiYzliNTFhN2U0MTMzYzVkYjQ1NWQ5ZjdiYTQ4OGI0NjVhNWM0IGxlZ2FjeS10cnVuaworMjU0NjQgYzgxZThlYTBjNGJhN2M3MzY1Nzk2NDhiY2I5NDJkOGE4YzUyYmNiMyBsZWdhY3ktdHJ1bmsKKzI1NDY1IGZjZjBjMjQ0ZTI4N2U5MmQ2YzYwMDZhYmRjZGFiMGRmM2MwYWE0NTkgcmVsZWFzZTIyLW1haW50CisyNTQ2NiA2NDQyZmJlNWRkMDQyNDBhMTY1NzUwZWNjOTA1NTQ5ZDRlZWUwZDdkIGxlZ2FjeS10cnVuaworMjU0NjcgY2QwY2U0NzBjMTUzYzk0OGFhYWY4ZmM0YzUzOWQyOTFhYzc2NGQwOSBsZWdhY3ktdHJ1bmsKKzI1NDY4IGQzODQ1ODA1MjQ0MmZmMTUyY2RhNDlhYjk4N2QwNzcxZTQ0ZWI4NmYgbGVnYWN5LXRydW5rCisyNTQ2OSA5M2ViNGI2MWY2ODdiYmRiNDA2NDI0NGNjNWZkOTEyMDVhZDcwZjg1IGxlZ2FjeS10cnVuaworMjU0NzAgMTNhYzI3ZmEwNzA0ODM5NDEwZmQ1YmVkY2ViYjM0NDdjN2ViZDRmYSBsZWdhY3ktdHJ1bmsKKzI1NDcxIDM1NGNkZTdmOTBhMTUyN2FhZmI2OGY4MTk3MzI4ZmJiZTA2MTliN2IgbGVnYWN5LXRydW5rCisyNTQ3MiA1OGYyYzI5OWI2NTQ0MzM4YjA3NjcyZWJiOTg5NDI5MTY5ZDg4NDJhIGxlZ2FjeS10cnVuaworMjU0NzMgYWQ3OTY5ZThmNThkZmFjMzk1MTk4NjQyOTQ1YmJjZTY1YTBjZDYwZCBsZWdhY3ktdHJ1bmsKKzI1NDc0IGM0OTQwODRkYzZkODg5MDgzMWQzMmRlYzNmZmI4OTVlYjUwODFlNzggbGVnYWN5LXRydW5rCisyNTQ3NSA4YjEwNGE4NWI5OWM3YTI3Nzc3NGExZmU2MDkyYzkxMWE4MmE5MGFiIGxlZ2FjeS10cnVuaworMjU0NzYgNzlmMjkyZGJhYmNlYTI5NWRiNmE2MTBjOTQyYjUzMTE1OTFhZWYwMiBsZWdhY3ktdHJ1bmsKKzI1NDc3IGM0NTRiNzZkNTFlN2I5MDA3MTVjZmU0MjI5ZDBlYzU1YzQ4MjAyM2EgbGVnYWN5LXRydW5rCisyNTQ3OCBkMTA0YmI1MGExOTRkMzJhZWNkNTAxNTVlZWRjYjEzZGFjMDc2YmIzIGxlZ2FjeS10cnVuaworMjU0NzkgMGM0MjMwMjY5ZWQzZWZiOThjOTdlNGI2ODQwMmIwYjQzNTliNTdmNSBsZWdhY3ktdHJ1bmsKKzI1NDgwIDEwNDY5NjQ4OTZhMWE0ZTM5NjY0NjU4NTJkYWM0YjQ5ZmI5ZGY4NjcgbGVnYWN5LXRydW5rCisyNTQ4MSBjYmMwOGIxNzJkMWZkNjE3NWJlZDliNjQwNjM0OTUxMTYyMjRkNzMyIGxlZ2FjeS10cnVuaworMjU0ODIgMDg1OWU3NjQ1MDllNmE5NjI2MTQ0Mjc1NDI0YjNhMmQxMGM0ZWVlYyByZWxlYXNlMjItbWFpbnQKKzI1NDgzIGIyYTJjYzBjMmE2MzczMGI4NTMwY2MzNWQ5NzNhNmFiMGUwMDkxNjkgbGVnYWN5LXRydW5rCisyNTQ4NCBkNDQwNmZiZmNiNGU1NGU5YjQxNTM0ZTkwOTc4NDQ0NWM4MmYyMjA4IHJlbGVhc2UyMi1tYWludAorMjU0ODUgMDc0YjdlM2U1NDhkOGU3MzExMWU5YWQ5MmZlYThhMGNkZGMxNjBiNiBsZWdhY3ktdHJ1bmsKKzI1NDg2IDNhMDZlMTlkZjQ2YjkwM2IyOTdhZWUzODM0YWRmMTRlNjg0OGNhYmIgbGVnYWN5LXRydW5rCisyNTQ4NyBlZGYwNWM2OWJiZjNiYmJlNTAzNWZiZmM0NjgwYzA2OTBkMTg1YjVhIGxlZ2FjeS10cnVuaworMjU0ODggNzRmMTZmN2E2MzY5NjY5N2M2MTllNmRlMTJmMjAzYTBiZjk5MTdmOCBsZWdhY3ktdHJ1bmsKKzI1NDg5IDk4NmViMWQ0ZWJlZjUzYWY0NTY4MzZhMzBiOTk5ZGY1NjMxMTAzY2UgbGVnYWN5LXRydW5rCisyNTQ5MCA1OTk0NDQwZTVkZDUyYjg2YzUzN2RhMzBiMDcwYTViZmU0ZmU1OTJiIGxlZ2FjeS10cnVuaworMjU0OTEgMmJmZDEzN2E5NzZmNTk4M2U0ZTdjMTY5MWQyN2RjOTUzMDEzYTk3OCBsZWdhY3ktdHJ1bmsKKzI1NDkyIGUxM2FhNGM2NzJhOTQ5YmE4NzBjOGQ4Yzg2NTcyNjc5ZWRlMzdlNWIgbGVnYWN5LXRydW5rCisyNTQ5MyBlODFiMzA3NmE2YzMwZDljYTQyN2M2NWRiOTIxZGM5NjVhODJhYWYyIGxlZ2FjeS10cnVuaworMjU0OTQgY2NhOTg4ZjNmNjRmMjA0N2EzZjRmM2UxNDJjNmJhZDQzMjdjMThjNyBsZWdhY3ktdHJ1bmsKKzI1NDk1IDk5ZTYwODE3Y2U2ZWNlMjUzMTk2ZjE5NDIzNGFjM2QxOGY3ZjY1NWUgcmVsZWFzZTIyLW1haW50CisyNTQ5NiA1NDkzMjA1NGY2YTk0MWU1ZWJhOGM4YjI3NWJkODM4MDI5NmViZWNmIHJlbGVhc2UyMi1tYWludAorMjU0OTcgZTU5OWU3YjhhYmY3MDI1M2JkZTViZDRkZWI0ZTdlZmI2NDI1ZmExNSByZWxlYXNlMjItbWFpbnQKKzI1NDk4IDlmZGRlOGNjZGNhNjVlNDRiODY3M2YwYTIzMzE0ZWQyMTk4OWYxMTggcmVsZWFzZTIyLW1haW50CisyNTQ5OSA3ZTE4ODE0MGI2MTgxYzI3OTMwOWVhZTIzOTg1YTZjOWRkMDUzZGUxIHJlbGVhc2UyMi1tYWludAorMjU1MDAgMWE1MTEwYjRiZDcyYTJlMDZiOTYyMzYzMzlmNWJlMTA3MGU2MmVlNCByZWxlYXNlMjItbWFpbnQKKzI1NTAxIGVkMmExN2EzNzZkMGM2YmVlNmUzNGJjMWJiMGRiZTI4ODRjZjYyZGYgcmVsZWFzZTIyLW1haW50CisyNTUwMiAzNDc3MDMwMzI3YTYwZTMwZmFhZDI4YzhjYjZkMDIyMzdhZDM0ZjIxIHJlbGVhc2UyMi1tYWludAorMjU1MDMgMWU4YmU3NGEzNzRiYmFkZDYyMjY1NjRlMWJkNmY2YmU0YjVjOTdhMyByZWxlYXNlMjItbWFpbnQKKzI1NTA0IDRmZjlmOGE3NGM4MjdlZjNlYTJiMzEyNWRlOGU1YzliMGRmNWI5MGMgcmVsZWFzZTIyLW1haW50CisyNTUwNSBjMjVkNmQ3ODBiMWI0NzJkOGI1YTYzNTI3NWIzNmUzZWU5YWYwOTJkIHJlbGVhc2UyMi1tYWludAorMjU1MDYgZmQwZWUwYTA3MDQ3ZDE3ZWM3MThmMTQyNDg5OWVkZGI2MTQ0N2NjNSByZWxlYXNlMjItbWFpbnQKKzI1NTA3IDhlYjU5MWRkNzY4MjY4ZDBmYWI5MTZiYjljMzRjMDM0M2VmODBiY2QgcmVsZWFzZTIyLW1haW50CisyNTUwOCBiZWY0NGQxMDhlNTc2MTM4MGYyMGRiM2Q3M2IwOWZkYTcxMDc0YmI3IHJlbGVhc2UyMi1tYWludAorMjU1MDkgZGIwNDA5MzhkYzY2M2IzZDZlZWRkNjE1NWUxZWY3MmU1MGNiZDkyMyByZWxlYXNlMjItbWFpbnQKKzI1NTEwIDFkMWEwMWQ5NTZhMmVmMGU4NDlmMDhkNjhlNjVjMTY2MDk2YjA4NjYgcmVsZWFzZTIyLW1haW50CisyNTUxMSBlYTliZTJlNWQ5NTQ0NTQ0MWJmNzNmMDIyZDFjNTFkZmNhM2RlM2RkIGxlZ2FjeS10cnVuaworMjU1MTIgMWU2MGIxZTE4MTQ1ZGRlMjgyY2E5NGNiMTJiODkxOWJkMWYxMWJmOSByZWxlYXNlMjItbWFpbnQKKzI1NTEzIGU0ZDdlNTEyOWU0YzE2N2QwY2JmOWEyNmQ5ZjRkODEyY2Y5OGZlMTUgbGVnYWN5LXRydW5rCisyNTUxNCA0YjM0NTk1MWE1YzUxY2ZkZmQ1MzVhNzk2ZDQyMmMxYzdiMTYxZmExIGxlZ2FjeS10cnVuaworMjU1MTUgYTUzNzMwY2QyOWMxNDc0YTVkN2NjOGJlM2M4OTI5YjdmYTc4NmQ5MSByZWxlYXNlMjItbWFpbnQKKzI1NTE2IDUxMzEwMzI0OTQ2MmQ3YzViM2Y3YmEwYjBiOGZiNDI4ZGRmZDg5ZTYgbGVnYWN5LXRydW5rCisyNTUxNyBlODFhNGU5OWVjZmEzYzZiMTIxMzViMzlhYzVkZmJjZDUwMDVjODY3IGxlZ2FjeS10cnVuaworMjU1MTggMzQ1ZGVmMzdiMGQ3YTU4N2U3NTBhNDZiNmZlMDM4MmY5ZTY2M2ViMSBsZWdhY3ktdHJ1bmsKKzI1NTE5IGUzMDE2MmIxYjMwNDY4ZGJmYzYxOTRmNjc3MmYwNWZjYjNlODExNTQgcmVsZWFzZTIyLW1haW50CisyNTUyMCAyYjNmNDM4MDY3M2Y4MTYyZmYxMjhkMmNjYjg5MmIxYmZiMDBmMzk4IHJlbGVhc2UyMi1tYWludAorMjU1MjEgYjFkNTczYTJhNzc0NWIzNzkzZmRhZGU0Njg0M2ZjYTg3MzQ3YTRhMSByZWxlYXNlMjItbWFpbnQKKzI1NTIyIDcxOTAyZTFjZmJlZjMwYjE3NmI4YjZlODlmZDljZWE0OGRjYjQ1ZDEgbGVnYWN5LXRydW5rCisyNTUyMyBkNjk3ZDg4ZDI1YjQwY2FlYWNjNTBhNDFmNzk4ZGYxMGIzOGJkZGYzIGxlZ2FjeS10cnVuaworMjU1MjQgYWY1MmJmOGUyYjg5ZjQzNTVhMGFhZDI2MWU0MWE5NjY4NmJmZWU4ZCByZWxlYXNlMjItbWFpbnQKKzI1NTI1IDgxZGZhMmRiNGM2MWIzMGVjYjg4M2VmNWY4NGE4NzUxMTVhNDIxY2IgcmVsZWFzZTIyLW1haW50CisyNTUyNiA0Mjg2MjE2OTU0MWZiOWQ1MDMwYTU5YTA1NWYwMDgwNzFlNmEyMDIzIHJlbGVhc2UyMi1tYWludAorMjU1MjcgYWY2MTIyZGYyOGUwN2U0MmNhNTY5ODA4NWYyMmE1NTRmYThiMjZjNiByZWxlYXNlMjItbWFpbnQKKzI1NTI4IDIyYzY2NTg3YzQ1MmUyNDk5OGNjMjM5ZmMxZDdlZmY5Mzk1YTFkMDMgcmVsZWFzZTIyLW1haW50CisyNTUyOSA4Mzc5NTFlY2RjZTk1NzU0Yzk5OWU4NTVkMWRhOWY2ZmQ1ZWU0ZmViIHJlbGVhc2UyMi1tYWludAorMjU1MzAgODU3OWQzZDMwMWQ0OGQ0ODUwYWVkNjQ0NGQwNjMyZGUxYjRjZWE3NCBsZWdhY3ktdHJ1bmsKKzI1NTMxIDY4ODMxYWM1NDk1YmIwMTNmZDAzZjg5MDQyMGY0ZTgyZDRkMDAzZjkgcmVsZWFzZTIyLW1haW50CisyNTUzMiA0ZDViZWNjNjkwMmJjY2YzZjZjYmY0Yzc4MzY5MDAwNDBiYTlhM2VlIGxlZ2FjeS10cnVuaworMjU1MzMgMzJhMWI0ODRhMmYzYTUyYThjNGU4ZTA5ZjNmNzdhM2FjYTZhYzVlYSBsZWdhY3ktdHJ1bmsKKzI1NTM0IDEwM2M0YzRjY2NmYjdiNzk0YmUzNTM3ZjBlOWNjNWFlMmQwMjE3MzIgcmVsZWFzZTIyLW1haW50CisyNTUzNSBjYThiZDk5N2U0MTlkNDE4OTY5Yzg2YjkxMWZiYzYzMmMzYzA4NGQ1IHJlbGVhc2UyMS1tYWludAorMjU1MzYgYzVjOWUzNmMzOTA5OWY5MzkzNzFlODQ5ZDc4ZDFkMjk1ZTgyYTIyZSBsZWdhY3ktdHJ1bmsKKzI1NTM3IDBlM2U2OWUwMWVjZDY0N2Q5YmYzNTdiMDVjYjJiODlmMTY2NWM3NGQgbGVnYWN5LXRydW5rCisyNTUzOCBjZGEzMDZiMjMyMWY2ZDYyYjU1YjY0MzRhZTExYmQ5Y2U5MjI2ZjY1IGxlZ2FjeS10cnVuaworMjU1MzkgZTIxOTZiYTM0MzMwZmNmZDlhNjg2NTI3YTI4YzcyZGVmMTEyOGRiNSBsZWdhY3ktdHJ1bmsKKzI1NTQwIGVlMzNiYmFmMzM4MTkzNGY2YjdmYWI3ODEyYWRjNjdhOTU4ZDkzZGIgbGVnYWN5LXRydW5rCisyNTU0MSA2ZmE1NmM0M2ExYmFlNDhjOGEwMTljOTVhOGYwMThmYTc4MDE1NmM1IGxlZ2FjeS10cnVuaworMjU1NDIgZGFmMDRkYjFhNjk5OGQ3OTJjMDQ1ZDZiZTljMGY5YWE3N2FiMjY2ZiByZWxlYXNlMjItbWFpbnQKKzI1NTQzIDI2NjMzNGE1YzRjYTI2YzY1ZTYzMjNmOTZkY2RhMjZlMjE0MzNiYWUgcmVsZWFzZTIyLW1haW50CisyNTU0NCBkMmE3NmY3ZGQ2NTEwNjZkNjc3YmQ0ZTUwMDNjNTIyZmQxZTA4MzdiIHJlbGVhc2UyMi1tYWludAorMjU1NDUgZjhhOWRiNjdmYTViNDVlOWRlYmJiMTUzYjcwMjczMzYxMzY3M2U4NyByZWxlYXNlMjItbWFpbnQKKzI1NTQ2IDUzNGU3OTA1OWJlMTAwODc2ODRkZjkwNjYwMWVlODI1OGI2NDY5ZjIgbGVnYWN5LXRydW5rCisyNTU0NyA4MWE4ZGIxNWZiOTg4YmVhNDA5MzRkZWQ0ZmFlMjEzZjkzMTc5NGVkIHJlbGVhc2UyMi1tYWludAorMjU1NDggYWMxMTMxZjczZDFmZDcwOWRiNzY4ODNhZjkzNDM2YmE4ZTE1ZjRmOSBsZWdhY3ktdHJ1bmsKKzI1NTQ5IGM2Mjg5ZWM4ZGEwYTc5Y2MxOGRlZGVjZDlkODdlYjZjZGU3OGY4NTYgbGVnYWN5LXRydW5rCisyNTU1MCAyYzVmODAzNzEyNjFlZGZhOWRmZjNhMjRlYmFjZGQ5MzMwMTIwZGZhIGxlZ2FjeS10cnVuaworMjU1NTEgYzZhNjYwZjg5ZmZlODU2OGVmZDlkMGIyMThkZjU4MDA0ODQxZjg4NyBsZWdhY3ktdHJ1bmsKKzI1NTUyIDFjYTJlYjY1MGUxMzc3YjU1ZjdjOWE3NDBmNDIwYTljNWE1MDIwZDYgbGVnYWN5LXRydW5rCisyNTU1MyA5NWU4NjQzMDk4MmJlN2Q5MjAwNjdmMjM5ZDBjMjFjZTBmNTc5ODcxIGxlZ2FjeS10cnVuaworMjU1NTQgY2I0ZWRkMTA4NzdkOTE3YzhlZGY3YWYzNDdkZDU0ZWM1Zjc1NGUxYyBsZWdhY3ktdHJ1bmsKKzI1NTU1IDA0NGY5ZTcxMzIwZjYyY2VjNjAyMmQzNWY5YzNiOTBlNmEwMzUyMGEgbGVnYWN5LXRydW5rCisyNTU1NiA5OGEzZmE1ZjY4N2NhYWVmYzE1OWZkMWU1NmE2MWJkOWQ5MDJlNGQxIGxlZ2FjeS10cnVuaworMjU1NTcgZmM2ZGMyZWEyNWNmNzdiOGMwNzAzZjY2MjFiODg2YTYwNDAxYjJkZSBsZWdhY3ktdHJ1bmsKKzI1NTU4IDI0YmE2OTNlOWM3MzllNjc2ZWYyMjQ1MDA4M2E5MWRiOTYwMWRhOGYgbGVnYWN5LXRydW5rCisyNTU1OSAwMWQ0NTgyNjk3NTAyZDY1MDFhYmJlNzYwOTQ1OGExZjE5ODAzODI3IGxlZ2FjeS10cnVuaworMjU1NjAgZDdmM2Y4M2I5NjU4OGMyYzBlNTBmZDViNzJhNGE5ZDhjNDg0OWYyMyBsZWdhY3ktdHJ1bmsKKzI1NTYxIDI2ZTNiNTYzZTI2MTMyZGFiOGIxNGZlNzQ5MWMxODZlY2UyMWMyMDggcmVsZWFzZTIyLW1haW50CisyNTU2MiA0ZWJhY2FlZTMwMDllMjY3ZGRmZGI1OWU3MGUwYjIxNTViZjY3ZTk5IHJlbGVhc2UyMS1tYWludAorMjU1NjMgZGFiMDVhYjAzNDdiOTNiNzE3ZTA2MDJiNmE5MjkxODUxYWFhMmNjYiBsZWdhY3ktdHJ1bmsKKzI1NTY0IGFkODFmOGZiNGVlNDc1MTQzOGE3NTEyZWQwY2Y4MzYwYmEzNThiMDIgbGVnYWN5LXRydW5rCisyNTU2NSA1ZjJjMGY2ZjBhZjczNDljNzUxZDBkODM1MjEwZGE2M2VkNmY4NjI3IGxlZ2FjeS10cnVuaworMjU1NjYgNDA5YWMwZjY4OThmNDFiMmQ3MjQ2YTcwNDhhMWE2Njc5OWJjNzMyMCBsZWdhY3ktdHJ1bmsKKzI1NTY3IDkyOGMxMjgyZTVlMmI1Y2ZjOGJmN2EzM2Q2Y2E0OGY3MTJiNDI1OTkgbGVnYWN5LXRydW5rCisyNTU2OCBmNDQ4NzM1MGM1Mzc4N2E4ZjRiYzQ5ZTI5MmFhZGEzYzNkMjQyMzEwIGxlZ2FjeS10cnVuaworMjU1NjkgYjg5OGMwZmViNzU0ZTQ4OWZjNDM1M2ZkOWZhMjllZmM2ZTcxNWVjNSBsZWdhY3ktdHJ1bmsKKzI1NTcwIGYwYWUzNzYyNTE4OTVjODBiYjE5Y2IwOWQ2MzNhZTY1OWY0NDFkZDIgbGVnYWN5LXRydW5rCisyNTU3MSA3ZmVmMzU2ZGFkNzVmOTFiYjdjMjQ2YjYzNWZmZWI2M2Y4Nzc0OTg3IGxlZ2FjeS10cnVuaworMjU1NzIgMGIwOGVlZmI2ZmMwNzdlZGRlNmQ3NTc4ZTJlZGVlNDUyN2Y3NTA5YyBsZWdhY3ktdHJ1bmsKKzI1NTczIDBkYzEwZDU1NzA2MjM4ZDQ3N2Y5Y2ExZmVhOGM2M2U2OWZhOWQ5OWEgbGVnYWN5LXRydW5rCisyNTU3NCAyMzkyNjljOTY1MTQ0M2RkMmRhYmIyNThiMDY4MDY1OTM0YWIxZDZjIHJlbGVhc2UyMi1tYWludAorMjU1NzUgMjM2MDZiNDlhZjc0MzA0NjQzYTkwN2FlMDZkNTBlNTU3ZTk4MzI5YiByZWxlYXNlMjItbWFpbnQKKzI1NTc2IDI2YmViZjIwODkxZTc1OWJiMjBhMDQxZGEzZmM0YzljY2NkYzcxYzUgbGVnYWN5LXRydW5rCisyNTU3NyBlMjRiYTA0ZDAxYjA4ZTcxY2ZlNjZmM2EyYTljODNhNjVhMzQ1OThmIGxlZ2FjeS10cnVuaworMjU1NzggOTA3ODMyZWU3MTczNzEzOTQzYzAzMmM4YzhiMjBjODc5NDk2MmNkNiBsZWdhY3ktdHJ1bmsKKzI1NTc5IDY0YzczMWQxODBlOTFlMWRkMjY3ODQxOTllMjZmZDA2YjdkODhjNGMgbGVnYWN5LXRydW5rCisyNTU4MCBkYTUxOGZjNzgwNjY3NDMyNjg0N2M2Zjk4ODU4MzQ2Y2JiOTc5M2M1IGxlZ2FjeS10cnVuaworMjU1ODEgNTQ0MGU0YjE3YWZmYjJlZTNhMmEyMzc4NGEyOGQwNGZmNmUzNjU2YiByZWxlYXNlMjItbWFpbnQKKzI1NTgyIDc4YmRmYmI2ZTU5ZTEzNWRlOWJhMTFiNzVhYTJhYzAyYjY0MDI4N2IgcmVsZWFzZTIyLW1haW50CisyNTU4MyA4MTI1NWI1YmUyMTlmYTM2MWYzOTdlNTViMGRjZTA0YzcwYWYzOTU5IHJlbGVhc2UyMi1tYWludAorMjU1ODQgZDZkMTJlMjFkNDRmNTI3MGI2ZDVhMjk5YWQyODhmOTdmZjllMDI3YiByZWxlYXNlMjItbWFpbnQKKzI1NTg1IGU2MWQyOTgyZmMxMzVkNDE1YzdlMzdkODRlYWIxNDM3NmRiYjcwZmUgcmVsZWFzZTIyLW1haW50CisyNTU4NiAwMWE1NWMzZDUwNWMwZDdhYWQ3OTViNzg4NWQ4YzE1MjBlMTMyNzA2IHJlbGVhc2UyMi1tYWludAorMjU1ODcgYTc2MmVkYjA0NjFhN2JlYzQ3MGEwY2NhYWE2Nzk0MDg2N2FhMTU1NSByZWxlYXNlMjItbWFpbnQKKzI1NTg4IDY3YTVlMjVkYzg4YmM3NGViMWM5MGYxMGZkZTAxYzhkOGQwMmRjMWEgcmVsZWFzZTIyLW1haW50CisyNTU4OSA3ZjRkMTVkODc4Y2NkNjA1MmMxMmNmMDgxMWVlNWE3Mjg2MTI1YTU0IHJlbGVhc2UyMi1tYWludAorMjU1OTAgMmY0OGFlNWM4YTk0NzBkMTlkMjRiY2JhYzAxY2I0NmY0YTgwNTE1ZiByZWxlYXNlMjItbWFpbnQKKzI1NTkxIDRiNmVkYTdkMGM4ZjU0Y2VjZDFhOGQ4MGRhMzk2MGQzNjI2Zjc0MjggcmVsZWFzZTIyLW1haW50CisyNTU5MiA5OTY4ZDhkZGRkNTNkZDYyOTZjY2MxZTcwMWM5NWQyNjM0Y2FlYTdhIHJlbGVhc2UyMi1tYWludAorMjU1OTMgZmM0MDU2YjljZjE4YzE3MTY4YTc2ZTA5NWRlMzYwMzhhYWQxMmY4OCByZWxlYXNlMjItbWFpbnQKKzI1NTk0IDQ1MmNjMGYzYWUzY2E4Zjc5ZjNhMTA1NzE4NzRmNzA2ZGNiMDlkNTEgcmVsZWFzZTIyLW1haW50CisyNTU5NSA2NDFmMjYzZjRmNDRiYjhlNDk0ZGVkYjA0MDg0OGQ0YTAyMjhmZWU5IHJlbGVhc2UyMi1tYWludAorMjU1OTYgMTgyZjAxNzNhOGVlZjViYzE1NTJhODg2NjA5NDdlNTc3ZDNmYjQ0NCBsZWdhY3ktdHJ1bmsKKzI1NTk3IDIyZmM4YjgyMmQ0MGQyYjA2MTFlMTM5MGU3ODQ4MjJlMGI5MGIwOTggbGVnYWN5LXRydW5rCisyNTU5OCAyOTg4NzlhOWY5ZjRiYjQ1YmYwMGZkNWI4N2I1M2FkZTI3YWNjYzgzIGxlZ2FjeS10cnVuaworMjU1OTkgNTBjNjY2NmZjNDU2NzAzOWE2ODA4ZjM4MDA0YzZmM2I3MDcyYTNlNCBsZWdhY3ktdHJ1bmsKKzI1NjAwIDQyN2UzMzFiNDFhMmUxY2U0Mjk0YzJkYzdmZWM3NzM4ODQyOTMyMWUgcmVsZWFzZTIyLW1haW50CisyNTYwMSBhZTU3OGM4YzZjZWQzODA3ODY1NGNlMWViMzMwZTMyZGRmYjc3ZjFlIGxlZ2FjeS10cnVuaworMjU2MDIgZTU0ZjVjNTBlZjA5YjlkYWVhZjE2ZWZkM2NmYjBjMGI4Yzk2YjZkYyBsZWdhY3ktdHJ1bmsKKzI1NjAzIDIzNmFlNTNkNjQ2NjIyNDYzMTE3YmU5NzUwNGU3ZDdhYzYwNDMxYjEgbGVnYWN5LXRydW5rCisyNTYwNCA3NTg0YjZmMWFmZGU0MjRkZDQwNTJlN2U2YTE2NWUwZmE3ZmNmMWNhIGxlZ2FjeS10cnVuaworMjU2MDUgMTYzZGU3MWYxOTQyOTM4YWMyYTVjZjkxYzkwMGQxNmViZTliNDQxYiBsZWdhY3ktdHJ1bmsKKzI1NjA2IDZhMjc5ZTE3MmQyMjNlNmZmMjlkZTFiMDMyNDg5MGU5ZmZjMjlhMTEgcmVsZWFzZTIyLW1haW50CisyNTYwNyA3MmZkYTY0YjJhMmU4Y2RiNGNjMzgwYzM3YWNmMjRhOGJhYzdjNzA2IGxlZ2FjeS10cnVuaworMjU2MDggZThlNDY1ZTZkNDVmOWYwOTMxYTEzMzY3YmExYWRjOGI0Njc5OWJlMyBsZWdhY3ktdHJ1bmsKKzI1NjA5IDI3YTBmYjAxOTU5OTEyNGJhMzYxOTU0NjU2Mzc0ZWMxNDkxOGQ0ZDAgbGVnYWN5LXRydW5rCisyNTYxMCBhYmNlZDU1ODFjMTg1MGE0YWMyMzExZjk5OGI3MjM1YjQ4YzRjODI0IGxlZ2FjeS10cnVuaworMjU2MTEgMWU3Y2M4ZTRiYWFiOTVhNGFiNjc2YzJkMDkwYjRiY2U0ZTY5MDg4ZiByZWxlYXNlMjItbWFpbnQKKzI1NjEyIDI3MmY5NjUzODVjNzEzYzc4YzMwZmE4ZmQyNWRmOWVhMTVjY2MxZjMgcmVsZWFzZTIxLW1haW50CisyNTYxMyBlZGFiYWQwMjVlZjFhNWI1ZTUxNzJhNTkzMDUxYTcwMGZmYTk5ZGI1IGxlZ2FjeS10cnVuaworMjU2MTQgOWYxMTkxMzJmZmJjNDYzZTk3OTBkYTVmOWI0ZmU0NDVjZjUyYmQzNSByZWxlYXNlMjEtbWFpbnQKKzI1NjE0IDcwZWRkMjkyYzc1N2FmNjhjYTIyNTkwY2VlOGM3ZDEzMTljOTllZTQgcmVsZWFzZTIyLW1haW50CisyNTYxNSAzN2I2OTgxNWFmMjJmZDU2ZjYzZGZmNGY4NGI1ODIzYWVjZjg5MzU2IGxlZ2FjeS10cnVuaworMjU2MTYgOTNkYjcyM2Q1ZTQ3ODkxMjBhMTgzMjI3NDFiM2ZjMTkxZTYwMjliZCBsZWdhY3ktdHJ1bmsKKzI1NjE3IDA5Mzk0MmJhZTFhNjM5YWYwMzgxMWE1NDhiNTBhNWE1MGM5MWI3NmIgcmVsZWFzZTIyLW1haW50CisyNTYxOCA1NGI2MzYxNjBhY2RmZTY0NmQ1MjJhY2FiZjJhMTBjOGZjYjUzZjhiIGxlZ2FjeS10cnVuaworMjU2MTkgYWEzYmY1MjVmNDgyY2I5OGQ1NzcyN2E0MGQ1MmUwNDMxMmExOTRjZCBsZWdhY3ktdHJ1bmsKKzI1NjIwIDIxNmNjZGEyODRkODU4NWU1YmZkYzI2ZTViNDYyMzE3Mzg1MzdiMzYgbGVnYWN5LXRydW5rCisyNTYyMSAwNzUwNWE0NTEwMTc2YmYzODA0YmQzMzFlODRjYTg3Yzk2OWYxOWMwIGxlZ2FjeS10cnVuaworMjU2MjIgZDMwNzk3ZTVjYzFhYjg1NTM1OTM4OTcxNDJlMTIwZDM3N2RkYzAzYyByZWxlYXNlMjItbWFpbnQKKzI1NjIzIDZjMzRjZDNhOThhOTNlMDI4ZmVlN2VkOWQyY2IyNWFkZDYzZDkyMzkgcmVsZWFzZTIxLW1haW50CisyNTYyNCBhZmYyMTQ1M2JlZmZmMWEzMzFhMjVmODYwNTgxODNjYjhhMDFmNzcxIGxlZ2FjeS10cnVuaworMjU2MjUgMTdlOGEzYzkzMTBjYzM5MDJmNGM3YTZlOGVkNTBiYTY2MmE5ZWI4YiBsZWdhY3ktdHJ1bmsKKzI1NjI2IDhlOTlkNTY4MTk4NDZlZjQwODVmNTM4NThjZjI0ZGQxZjg3NGQyNzUgcmVsZWFzZTIyLW1haW50CisyNTYyNyAxNTBhMmE5YzU1Yjg3Y2FlZjI0NzMxNjY4ZWFkZDVhN2E5NmUyN2FiIGxlZ2FjeS10cnVuaworMjU2MjggNjQ4NWQxYmE3MzVjYzVlYzVhNjgzMDAzNGY2ZTllOGYxODQ4YzYzZSByZWxlYXNlMjItbWFpbnQKKzI1NjI5IGY5YTVhOGZjMzE3Nzk2ZTAxYzYwYzhkMzNmM2ZiYjM2YWYzNjAzNTUgcmVsZWFzZTIxLW1haW50CisyNTYzMCAyYThiZjNkMGJkODY1ZWI3MGMxOWU1MmM4NmExMjk0YTZkMzZhNzE3IHJlbGVhc2UyMS1tYWludAorMjU2MzEgMTAwMDdhYTc4YTVlOTU0NjI4ZDk1NzJiM2UwMGY5ZmJhZTJkMzVlOSBsZWdhY3ktdHJ1bmsKKzI1NjMyIDY5YWQyYTFhZDY4OWUxNDYwZjAxOWU3ZTc0MDNkZTQ3NTU4MDcyNTEgcmVsZWFzZTIyLW1haW50CisyNTYzMyAwYmIxN2QzYjUxOTdkMTZiMDJkNmM4YzE5YzA1ODU5NjQyMWU0MGJlIHJlbGVhc2UyMi1tYWludAorMjU2MzQgMjgzODE2NTI5ZTcyNTBmZmVjNTQ0Mjc4OWEyYjY0MzY0NDcwZmU5NyByZWxlYXNlMjItbWFpbnQKKzI1NjM1IDc2M2Q1YWU4OWU5ZWQ4N2MwNGQwOWFmZDE4M2UyZmZiNjBiNTJjZWMgbGVnYWN5LXRydW5rCisyNTYzNiAxN2NhMjkwN2QxMzU5ZDEzMjJlODkzZTAzNzI1ZGI2ZWFlZmUwMjkxIGxlZ2FjeS10cnVuaworMjU2MzcgM2M2ODVjMDM3Nzk0ZmE4MmRkODE4NGYzMGFkY2NjODc3YzhmZDM4OSByZWxlYXNlMjItbWFpbnQKKzI1NjM4IGYyZGEyNThhYWMyMDk2ODU2NmJlNGE2NDhiNjc1NjU0Zjc0NjBmYWEgcmVsZWFzZTIyLW1haW50CisyNTYzOSA5ODkxOTU4ZmM0YjI5NmI3MTE0MmNmZGEzMjFkODZkYWZlMGUwYzE3IHJlbGVhc2UyMi1tYWludAorMjU2NDAgYWE0NGQzNzk5YjQ3YmJiMzUyYWM2YzEyZThjYzgxOTM5Y2UxYzVhNyByZWxlYXNlMjItbWFpbnQKKzI1NjQxIDZkNGUwNWQyNTc1OTZmNGU2MzU4ZTEwNmI5ZTAzYWJiNTJmMTQ0YjEgbGVnYWN5LXRydW5rCisyNTY0MiAyMmUwZGFkYTU2ZDdiODY0YmIzZWQ1MjQ4ZmE3YzVmNjA3YmE2OTE0IHJlbGVhc2UyMi1tYWludAorMjU2NDMgNmEzNDhhMzkwMGNkZjgzNjA1MDBiZjI1NTRmZTUzMjgyNDNjMWM2YiBsZWdhY3ktdHJ1bmsKKzI1NjQ0IGYwMzQ2ZDkzMDc3MDE2ZTJjNmExMzE3YjAyMmJlODYwN2VjYThiMzggbGVnYWN5LXRydW5rCisyNTY0NSA1YWRlN2U4MjA0ZTUyMDJmNjExNTE0NzVlZWExZDkzNGM0N2UzYmZlIGxlZ2FjeS10cnVuaworMjU2NDYgMTYwZTMzNWZiZTZmZGQyYjQxZGVkMTYzNjI5YzVmM2FlMzYwNjk3MyBsZWdhY3ktdHJ1bmsKKzI1NjQ3IDU2ZjRkZmNjYTlkODFmYzE1MmI1MjRkZjg5YTg3Njg1ZjlmZTE0NjMgbGVnYWN5LXRydW5rCisyNTY0OCBjYjZjODVkODM5MWY1ZWQ1MTcyNTI3YzRjODAyMGM5MmIyMDg1NTgxIHJlbGVhc2UyMi1tYWludAorMjU2NDkgZTRlNTRmYzVmYjNkMzk1Mjg4YWExZDA0ZDY2NmQwZmQ4ZmQyZmIzOCBsZWdhY3ktdHJ1bmsKKzI1NjUwIDkwNzhmMjk3NmJjY2EzYzA0NGU4OGRkYTVmNjYzYTE0ZTI0MzRlMjUgbGVnYWN5LXRydW5rCisyNTY1MSAxODczODMzYzYxNmRmNDMzYjE3ZGFjMWY5NzZiMzM5OWIyNzhlYjNiIGxlZ2FjeS10cnVuaworMjU2NTIgYTc5NTg5NzFkZTFjNzJkYzNjZWVhOGM0OTRmNjE4MzcxNjQ3ZWU5OSBsZWdhY3ktdHJ1bmsKKzI1NjUzIDEyNTc3YWU5NTk1NjIzMjY2Y2M5OWZlZTg4YzI4MjBkNDUwMDE4MjkgbGVnYWN5LXRydW5rCisyNTY1NCA0OWVkYmVlOWRhZTIyMjQ4YzVkMzFjODY0N2EzMjA5ZTI3NDY3ZmU0IGxlZ2FjeS10cnVuaworMjU2NTUgMjRhZjg0MjAzMGEwYjQ3ODc4NjNhNDk5ZmFjYjk4ZmQ1YjRjMDZlNiByZWxlYXNlMjItbWFpbnQKKzI1NjU2IGM2YzFhNWZiYjZjMWYzZWRlZWY5Zjc3Y2RmNjlhYTUzMGI0MmJkMWEgcmVsZWFzZTIyLW1haW50CisyNTY1NyAzYzc0YTFiMTI4N2FmYWNjZTJiODdhN2E4OTA2ODMxODgwZGYxYTc5IHJlbGVhc2UyMi1tYWludAorMjU2NTggOWEwOTFkNzIxMzZhYzA1ZjE1ZTg0NzYyYjY4MTk3Nzc3YWY3ZDcxOSByZWxlYXNlMjItbWFpbnQKKzI1NjU5IDU0M2IyYTQ4NDY3YjY0Y2RiZTM2NDY2OTI1MDIxODhhYzI5MmU3NDUgcmVsZWFzZTIyLW1haW50CisyNTY2MCA2MzNhOTZhNjUwMDkxNDhlY2U5M2VjOGFmODQzMzk3MmNmNWYwNmE3IHJlbGVhc2UyMi1tYWludAorMjU2NjEgNDFiNTE1M2Q3MDVlNWY3YzBhNjgxYmY1NTFlYjIzMGMzNjE4YzFiMSByZWxlYXNlMjItbWFpbnQKKzI1NjYyIDU0YmNjNWVjM2E1MTI1NTcyZDA5MDE1YmEzOTA1MzIyZGU0MWFjMzcgcmVsZWFzZTIyLW1haW50CisyNTY2MyBhMzQ2MGNiMjNmMTk0NTE1NDg3ZWQyODk0MjJjMjU5YmYwYjU5MTRjIHJlbGVhc2UyMi1tYWludAorMjU2NjQgYTBjYzUyNzM1ZTZlNDY4ZDk0ZmYyMGVmNjQ0NjE5NGNjMjc5M2FmNSBsZWdhY3ktdHJ1bmsKKzI1NjY1IGM0MDM2MzMzNTU4NTUxOTY2NjhhZjU3MzcwNmRiMmNmZmQ4YWI3YTggbGVnYWN5LXRydW5rCisyNTY2NiA5YzQzNWIxYjU5YTU2YzA0NGFmYzlmMDdjMDI0NjlhN2ViNDM2N2FkIGxlZ2FjeS10cnVuaworMjU2NjcgZWEzYjE4Nzc0NmY3ZDUzOWU3YzIyMzgzMTNiODYxNTg3ZTlmYTRiYiBsZWdhY3ktdHJ1bmsKKzI1NjY4IDA4OWFiNWJhOTQ2NmI0NmVkYTYwMzIzOTJlMjY2MWQ5YTRjZmVlZGQgbGVnYWN5LXRydW5rCisyNTY2OSA5OWUxZmVjMjZiNDA1YWJiNDRiNjIxMGRhM2RjYjA1MWMwYWVlNDkyIGxlZ2FjeS10cnVuaworMjU2NzAgYjU1ZDdiYzA1ZWM4ODY3NmIyZjEwOGY0ODk2NWUzMzYwNGIyNzIyMyByZWxlYXNlMjItbWFpbnQKKzI1NjcxIDEzNGNiNDE4Njk0NjZhYmNmNDJmODA4ZWI1YmExYWRjN2RmZTBmNGMgbGVnYWN5LXRydW5rCisyNTY3MiAwNDk3MzljYTBjMTM1ZDFhNTFjMWU1MTI5Mjg5YmE5OTVkZjQ5MjZiIHJlbGVhc2UyMi1tYWludAorMjU2NzMgMzVjOWJlNjkzODg4ZTAwYmRhZjg1MGFhMGZkOGIwZDk4NTYwOTdhZiBsZWdhY3ktdHJ1bmsKKzI1Njc0IDE5ZDFkMzUwMjBiZDQzN2QzYmRiNDYxMjQwY2VmMGQyMDZhNGQzOGEgbGVnYWN5LXRydW5rCisyNTY3NSAzZjZkZGVhYzQ4NTZiNTI4OGZlMDcwM2YyYzU0ZjFhMDk3ZDdkYmJiIHJlbGVhc2UyMi1tYWludAorMjU2NzYgYTQxNWNhM2U4OTAzODYwMTRiNzgwMTJlNWUyZTg0Yjg2Y2Y5ZTY3ZSByZWxlYXNlMjItbWFpbnQKKzI1Njc3IDA0MDhlY2Q4NGFhMmEyNjA0OWYyZTkxZGQ0ZjZiZTY2ZmU1YzMyNTMgbGVnYWN5LXRydW5rCisyNTY3OCBjYzc4OGIzYjIxYjYyMjRiMzZkNzY5OTViMzhlY2VkZGZkZmY3MjQ0IHJlbGVhc2UyMi1tYWludAorMjU2NzkgZGM4MGNlMTFmYWUzOTA5YTMxNDE3NTU4MGI0YjMyNGEwYjRhMzFmOCBsZWdhY3ktdHJ1bmsKKzI1NjgwIDVmNGZmYmZlNmJlNjgxYjVmOTYwYjZiMTlmNDM5MGZmMDNhYmE2YjkgbGVnYWN5LXRydW5rCisyNTY4MSBhYjc0ZmY4MGY5ZDBhYzUzYjIzMjJjZjVmYmU2Mzg5NjllNTQwZTZlIGxlZ2FjeS10cnVuaworMjU2ODIgZGM2MDU0ZTViNjQyY2QzYzNmMWY2MTdkN2Q0MzI5MGUyNGMyZDBmMCByZWxlYXNlMjItbWFpbnQKKzI1NjgzIDA5NmI3NTEyMGU3MmI0NGZlNGEzMmRlMjkzY2Y4Y2IyMDBlYTZiMjEgcmVsZWFzZTIyLW1haW50CisyNTY4NCA1YTc3OGFlMTg1MTIzODkxY2VlYWEwZDYxOWFjNGEyZmE1Zjg3Y2IzIGxlZ2FjeS10cnVuaworMjU2ODUgYWM5NzZkMzY3MDhkM2Q3ODFjMGY3YTYwNjY4YzcxNGVmNDgwNmJiYiByZWxlYXNlMjEtbWFpbnQKKzI1Njg2IDMxZDlkMTFhMjk0Y2E5N2Q1YmNmYjkxY2ZmOWVjNjBiMjQzYzFkZGQgcmVsZWFzZTIyLW1haW50CisyNTY4NyBkZmYwYTQ0YjIzNjhlNDE0YTQ0NTY4ZWFmNzJhMTM1ZmY5NjBiNGIyIGxlZ2FjeS10cnVuaworMjU2ODggMTZmMGRlZmE0NWMyMGRmMjYwNDE2MGFmMzgxM2NjMjkxMDIyYWE2OSByZWxlYXNlMjItbWFpbnQKKzI1Njg5IDM5OTI1NDRkYzE0NWZiZWJmYjEzNzM1MDI4NjZjYzQ5NDg4MDljNmIgcmVsZWFzZTIxLW1haW50CisyNTY5MCA2ZDA4YTI5NTViYjYyNTE4NzI3OTIxZjE0MDg4MTJlZTc1ZDgzMDcwIGxlZ2FjeS10cnVuaworMjU2OTEgYTYxOTNhODdmNTAwZTI3NzdiM2YxOTY4MzhlNjAyYjZiZjdmYjg1NCByZWxlYXNlMjItbWFpbnQKKzI1NjkyIDFhNzUwZmI5M2IxNjkzNjFjYmIwZWY4ZDA0NjFmNTA2MGYyZTk2ZmUgcmVsZWFzZTIyLW1haW50CisyNTY5MyBmMmViOTVmYjQ1MjllMjc2OTU2ZjA2YWRlYWE3YjMyMmIxNTQwODVmIHJlbGVhc2UyMi1tYWludAorMjU2OTQgMjhlMzc5MDViZWU0NTgyOTM0ODU5NzNiYjBjMTc0Y2QyODk4ZTM4ZCByZWxlYXNlMjItbWFpbnQKKzI1Njk1IDc5ODU2YWQ3NDlhYjdkYzczOTg2YTkzMTIzMjA2YjUxY2M3NWQzZjIgcmVsZWFzZTIyLW1haW50CisyNTY5NiBkZWJiMDA1ZjE2NzNhMDM5MmY3M2QwNzg5OTBlYjgwMWExZDIxMzYwIHJlbGVhc2UyMi1tYWludAorMjU2OTcgMGZkMzgzMWNmMmEwNzU3YTNmNjM3MDc1ZGE2MjRmOGMyOWZmMDJkZSByZWxlYXNlMjItbWFpbnQKKzI1Njk4IDAyOWU0Y2JkMjMxMjk5YjFiZDFjY2EyYWFmNmZkZDQ0ZWUxMzRjZTIgcmVsZWFzZTIyLW1haW50CisyNTY5OSBjOTAxZDE1OGFkNjg5MzZlOWMxMTUxNmYyM2FkMjg4YTEzYjA2YmQ5IHJlbGVhc2UyMi1tYWludAorMjU3MDAgYTM0ZjkxOTVmNjExZTczZjYzMjVmZWY0ZGEzYjAxMTgwNzIwODA5NSByZWxlYXNlMjItbWFpbnQKKzI1NzAxIDZjM2UzMjM1N2Q5MTA4YzMyNzYxNmFiYWEyZTFiYmRhZjM2YWJjOWEgbGVnYWN5LXRydW5rCisyNTcwMiA3ZWNjNDkxMTdkN2U4OGI2NzI1MGY0YzM0MzdmMjYzYjdmN2Q5OWIxIHJlbGVhc2UyMi1tYWludAorMjU3MDMgMjU0OGUyZjMyM2ZhN2U5Y2UzZjA4NjRiMzcyNGNlMDQ5MGQ3M2NiZiBsZWdhY3ktdHJ1bmsKKzI1NzA0IDEyZDIwNGQ5M2FmMzY1MzQ1MmZjZjFjMTY4MmNjNmE0NTI5NzQ2NWYgcmVsZWFzZTIyLW1haW50CisyNTcwNSA2NDFmYjRiNDcyMGU3NjljZWI4MWZjZDQ2MjFhNTc1YjgzMDEyYzc4IHJlbGVhc2UyMi1tYWludAorMjU3MDYgZjk3NmZhYTMzMGVhMTY3ZDgyYWQ1ZWZiYWRkODQ1NDhmYTJlMTk4MiByZWxlYXNlMjItbWFpbnQKKzI1NzA3IDFmNzMyNTFjNjI1YWM2MjIwOWRmNjZjNjI5OGFmMTg2OGJiMzRjYWMgbGVnYWN5LXRydW5rCisyNTcwOCAyN2YzNmY0YmY1MjU4YmVjNDUwMzMzMTRmYmZkNTA4MjgyMzRlMGU0IGxlZ2FjeS10cnVuaworMjU3MDkgYjg3OWU2ODUxYmUzYjk4ZjFiMWMwYTUxMGM5MmEyNWNiMjc2ZWI0OCBsZWdhY3ktdHJ1bmsKKzI1NzEwIDUxYWE5ZWIyNGQ4MWY2MjdiMGQ5Y2YyN2I3ZjUzYzNiZWVjNjJmNzUgcmVsZWFzZTIyLW1haW50CisyNTcxMSBmYjlhMDA4MjFjMGQ1MGQzM2Y4MGRjNmRjMTJiY2Y0Yjc0MzhkNDZhIHJlbGVhc2UyMi1tYWludAorMjU3MTIgNGNlNTE3YjNlMzAxZjZjYzUyZDY0ZGE4OGQxMWNhMWM5YmMxOGU5NiByZWxlYXNlMjItbWFpbnQKKzI1NzEzIGEyNzMzZmVmZmIzNjY5N2ExYzE0ZGJiNWFmODY0OWM5MDcyOTViNzggcmVsZWFzZTIyLW1haW50CisyNTcxNCAxYmI0ZDJiYWJjMTQ1YzZmMmI1ZTdhYzMwYzBmMjhiYzIzNzE1OTI4IHJlbGVhc2UyMi1tYWludAorMjU3MTUgNWE5ZGFkYTdjYmFjMzdkNTVkNzI0MjY4OTBhNTViMGMwM2FiNDMxYSByZWxlYXNlMjItbWFpbnQKKzI1NzE2IGRjYTRhN2MzNmViOTljYzlhNWI0M2U4YmE2MzljMDM4YmExMDdkZWUgcmVsZWFzZTIyLW1haW50CisyNTcxNyAzNTEzYTlkMDkwYTlhOTVlM2ZlNGNkMjE1Y2UzNjI4NjBmN2JhYTAzIHJlbGVhc2UyMi1tYWludAorMjU3MTggOTJlYmU0OWQyMmM1M2JkMTU4YTljZjYxNDg4OGUwZTlhY2MzM2I1YiByZWxlYXNlMjItbWFpbnQKKzI1NzE5IDg0ZjJjNzc4M2QzMTAxNjViN2JmZDg0ZjgwODYxNWRiNTc2MjhkMmEgcmVsZWFzZTIyLW1haW50CisyNTcyMCBkZDE3YWFkZTNiZWI4YTU1MjQ1ZWZiYTY3ZThiYmIzN2Y0MTAxNTdmIGxlZ2FjeS10cnVuaworMjU3MjEgZGY5NzliZGQ2YWVmZDJiZWRiMjQ1MzcwMDg4MDQyMjJlZmM4NTRmYyBsZWdhY3ktdHJ1bmsKKzI1NzIyIGM4YTZlYTAwYTllMWFkY2JiMTlhNjJjMDFlY2VkMDQyNTFiZjBiMjcgbGVnYWN5LXRydW5rCisyNTcyMyAxN2Q1NjEyNDNmZjgxMmRkMTJhZjZlZDgwNTc1YmFhY2RkNTYyZWY3IGxlZ2FjeS10cnVuaworMjU3MjQgOGVkNjQ3ZDMxZjQ0ZWY0ZmE5NWIxNWM2ZmUxMjM1ODQyYmUwMGMxNCBsZWdhY3ktdHJ1bmsKKzI1NzI1IDZhYzQxNTBjNGU4ODQxYTI5YjIxYjZjYTI2NmYzYmVmODkxOWEyOTcgbGVnYWN5LXRydW5rCisyNTcyNiAzNGNiZWZkMmMzZmU5NjY3NjU1ODU3MDA1MTdlNDE4ZjdjOGM1OTQzIGxlZ2FjeS10cnVuaworMjU3MjcgYzg1NGI2ZDBiMmMwNGJiNzE5NzdmYzFjNGYyNDg5NzNkNDQ4YWJlNiByZWxlYXNlMjItbWFpbnQKKzI1NzI4IDEyMWUxOThmNmRkYTllOGI5NTNkNzQ2ZjAxNDJlODI0NDEyYTA0ZDMgbGVnYWN5LXRydW5rCisyNTcyOSBmMmI2Y2NjMDA4MDg1MTRjYTM0YzFiYmVkMzUzODk0MjBiNzU3ZjI4IGxlZ2FjeS10cnVuaworMjU3MzAgNzE1ZDYzMWVlYTJmNDI2MjNhY2ZjYzhhZmZiNTE0MTJkM2EwNjg1NCBsZWdhY3ktdHJ1bmsKKzI1NzMxIDdmMGQzOTAxNGUyZTE1ZWE5ZmIzZGFhMTAwYTkyNmM5MjQyZDgyNzEgbGVnYWN5LXRydW5rCisyNTczMiBjMjEwNTYyZTE1NTgwYzYyNjUxN2NmMmI5MmZjNjU3NWM2YTMzNGJmIGxlZ2FjeS10cnVuaworMjU3MzMgYjM1N2RmMzAxZjVmMjU2ZjJmMzRhZDI5ZjMzODdhYjUzMDRiNzUzYyBsZWdhY3ktdHJ1bmsKKzI1NzM0IDA3MWY1MDNlNWY0ZjRhZWMzNTNiNGY5ZDI5OTJhY2EzYTA2YmI0YTQgcmVsZWFzZTIyLW1haW50CisyNTczNSAwYTk2ZGFiNzBhMTU3NGViOGEwYmQ1YzQxZmI3ZDA4N2U1NzdmZDQ1IHJlbGVhc2UyMi1tYWludAorMjU3MzYgMjQxNzY5NDMyNGVmMDhkMTMwZmYzZmZiZWU5YmVjOGYxYjljODQyNSBsZWdhY3ktdHJ1bmsKKzI1NzM3IDg2MDBkYmE0ZjU5ZDNkMjUyMTcyMmNkN2RhYTEyMzc3Mzg5ZTViMDkgcmVsZWFzZTIyLW1haW50CisyNTczOCBjZjlmMWI2ZGJhM2I0Nzg3ZGViOWZiNWU5YzE5ZDliY2ViYmNlYmEzIHJlbGVhc2UyMi1tYWludAorMjU3MzkgNzc1ZGE2MTc4ZTg2NTU3ZjAxYzI3YWRiNjE2MmMxOGU2OWVkN2Q5OSByZWxlYXNlMjItbWFpbnQKKzI1NzQwIDQ2NjhkMWM5MjZjZGYwNDljZjU4Y2Y5YTdhYTkzYTJkYTA4MzcwN2MgcmVsZWFzZTIyLW1haW50CisyNTc0MSA1NTUxMmZlMWQ2ZjE0YTQxNzJlNTRlNzUxOTM3OGVkOTRmM2FhYzdmIGxlZ2FjeS10cnVuaworMjU3NDIgYjkwMDRiODM2OTk0ZDk0M2M5NGNhMGQ0ZmMzNjM4Y2JhMzQ0MjM4MCByZWxlYXNlMjItbWFpbnQKKzI1NzQzIDY4ZTdlOGRmYzVmNTAyYmQ2M2U0NzJmMGQ0YTg2NDljNmI5ZTFhODEgcmVsZWFzZTIyLW1haW50CisyNTc0NCAxNjVlMjBhYzBhYjEyYTdjMjk0MzkzNTk0NDVkOWZlYTA3MDYyN2IxIHJlbGVhc2UyMi1tYWludAorMjU3NDUgZDVmNjNlN2NhYjMxYmQ0YjY1M2VkNjFiZmYyYzEwZmM3ODMxYmM2MiBsZWdhY3ktdHJ1bmsKKzI1NzQ2IDQyZTZjM2NkYzA5NTgyNzZjNjIyNjAxOTg4MDViNTE3MGE1ZWUzMWQgbGVnYWN5LXRydW5rCisyNTc0NyA4ZmM5YTU3NmZiZmZjNDFkYTUxMGMwZmNmMjExN2MzY2Q1N2Q0MTIzIHJlbGVhc2UyMi1tYWludAorMjU3NDggMDkyOTg5NGNkZjk1ZmMwNTYxYWYyMGIxOTM4N2QwNTY5YjhjYWVhNCBsZWdhY3ktdHJ1bmsKKzI1NzQ5IGI1OWU4YThkZjU3ZTg2N2IyYjU1OGQ5YmMxMzJlMTc2NDEwOTg0ZTIgcmVsZWFzZTIyLW1haW50CisyNTc1MCBjNzNjNmE1YjZhODA0NGJlMzc5NWZlMDA1MDRjYzU2YmFjZTk3NjlhIHJlbGVhc2UyMi1tYWludAorMjU3NTEgZmQwNTBhYzFlMGNlNWIyOGRmN2VhZWRiYTA5ZGJlMzljMDdhMmU1MCBsZWdhY3ktdHJ1bmsKKzI1NzUyIGFmODg0MWFjMjk4OWRiYWJlMmZkY2M0NjY0NDg2ZWUwNTUyNmU4NjAgbGVnYWN5LXRydW5rCisyNTc1MyAxMWY2ZjhjMWNlNzM0Zjk4NTc3YWFlYTk4YTVlZTU5MWQ2Y2E4NTYzIHJlbGVhc2UyMi1tYWludAorMjU3NTMgNzY1NDM0ZTdhYTAxOWMxYmI4MmY5ODEzYjgwMjU4MzA4NjdjYmRjMCByZWxlYXNlMjItbWFpbnQKKzI1NzU1IGU4OGQ1ZTI2ODdlZTQ3MzA2NmVmYjgwMzZjZDc5MzhiOTRkOTBlZDAgbGVnYWN5LXRydW5rCisyNTc1NiBhYjY2MTZlNmNlYmZkMWZiOWM3OGUyYzQ5YWYwOGE2MDg5NGZjY2JmIGxlZ2FjeS10cnVuaworMjU3NTcgMGM4YTM4NWZjOGEwMTMwYTEwYzNjODBmYzg3YzU5YzY4NGZjMjM3OCBsZWdhY3ktdHJ1bmsKKzI1NzU4IDY3MDZiODNkMWJkMTVjMzlhYjk1ZGY0Mzc5ZjRjMzc5ZGZjODViYmEgbGVnYWN5LXRydW5rCisyNTc1OSAxMzJhMDY0ZGE2NTZlNTIzZTZmMDVjZTg1ZjEzMjdjMjRkYjgwMDBmIGxlZ2FjeS10cnVuaworMjU3NjAgOTYzZTgxNGU2OWNjZjVmZTYwMmM0YmMwYzI2NGEwNTlmMzE3NDhjOSBsZWdhY3ktdHJ1bmsKKzI1NzYxIDk4NGViOTk1ZmI5ZWRjM2M1Y2MxZTg4MjMwZGIyNjcyMWNjOGRlNmQgbGVnYWN5LXRydW5rCisyNTc2MiA3MTg1N2YxNjIyMzExNTU2MzFiZjE2YjIxNTQ5NWI1NTNhODBiMTYzIGxlZ2FjeS10cnVuaworMjU3NjMgOGJmY2Y2ODI3MjQ4MmJhYjczMTA0NzRiMjEzMjc5ZjUxOTlmYTgwMSBsZWdhY3ktdHJ1bmsKKzI1NzY0IGE2YmI4MDAyOGFjZjJkY2JiNjQyY2VkNzhiYjYzNDFjYmZmODc4NGQgcmVsZWFzZTIyLW1haW50CisyNTc2NSAzNTFmOWI0ZDgwYzVkMjcwYzViZDNlZjRjNWFmOTMxMWU1MGE3NGQwIGxlZ2FjeS10cnVuaworMjU3NjYgY2VjZGE0ZWNjMDkwY2E2OTg4ZGI4ZGQ2Mjc3MmJlOTE4MTdiMmY2ZCBsZWdhY3ktdHJ1bmsKKzI1NzY3IGUxNTAxMDlkMmI5YzYwYzlhZDgzOGUyNzRiMDA1NDhjOTA1YzA4YmUgcmVsZWFzZTIyLW1haW50CisyNTc2OCAwNzNkYjY4YTJjMmJiZWZmYTFiN2MxNDY3ZmU5ZjhlM2IxMDlhYWEwIHJlbGVhc2UyMi1tYWludAorMjU3NjkgMGM4ZWQzODQxYTY0ZjhmODI2YmZkNTc4OGJiNzkwMzAxNzRhMGNiYiBsZWdhY3ktdHJ1bmsKKzI1NzcwIGEzZWU3MTMyMDM2YWYwNWQxMWVjNjIyYWIxZTY4OGM2ZDYzMTc4ZWUgcmVsZWFzZTIyLW1haW50CisyNTc3MSA0ZTgyM2JmMjUxMmNlZTg3Zjk2OTE3NjM0YzA5ZTJlNmIwYjFlNGRhIHJlbGVhc2UyMi1tYWludAorMjU3NzIgNDU3YmYxODRlN2JhOGI1NzhlMmFlNGEwYWE3N2Y2ZWNlNzBlZjllMyByZWxlYXNlMjItbWFpbnQKKzI1NzczIDRhNDU5N2JjNGVhMjIyNzg0MDE0ZTBjYzRhMzhhZjZlZGQyZDUzYWUgcmVsZWFzZTIyLW1haW50CisyNTc3NCAzNmM1MmNmYmQwYjc1ZTYwNTRkMmUwZmVlODg2ODUyNjk0M2I3ZjIxIGxlZ2FjeS10cnVuaworMjU3NzUgOTI3YmQ0ZjZlMzViMmVlOGU2MjUyYTcwNDRjYmE2ZGI0NTNkMzA0OSBsZWdhY3ktdHJ1bmsKKzI1Nzc2IDUzYTFmMjFiMDQ1MTQ4OTNjNWQ3ZGVjNTUxOGE5YTEyZWFlYmQzMzkgbGVnYWN5LXRydW5rCisyNTc3NyA3MDEzNDBjODc3MjMxOWJjNmU0ZTQwOWI0ODhhN2ZhZmM4N2ViZjEwIGxlZ2FjeS10cnVuaworMjU3NzggYzc4ZmZiZmMzNmQ5MzY2MGRkZmE4YzdkMDExM2YwM2ViM2JkNGMxNSBsZWdhY3ktdHJ1bmsKKzI1Nzc5IGRmMzU2NTZlN2Q5OTcxOGZmN2E3ZGRlY2ZhZGQ1ODJkYTQ4Y2E2M2EgbGVnYWN5LXRydW5rCisyNTc4MCBlNjIxNzRjN2Q4ZTUxNzY4NmY4ODRlZmQwMGI3YzlhY2M5MjAwM2Q1IHJlbGVhc2UyMi1tYWludAorMjU3ODEgYjE0OGUxOGFlNzdhYjAzOTFiMjcyOWIzYTg1Y2E0ZGM4MzgwNTdiMSBsZWdhY3ktdHJ1bmsKKzI1NzgyIDdhZmJiZTI4OGFmM2RhNmNkOWM4YjlkZmE5Y2UxYTZmYmI1NWNhYWIgbGVnYWN5LXRydW5rCisyNTc4MyBmNjRhMTE5N2E1MmE0NzgxNjViYWEzOTg1NjRkNzQ0OGJjYzc3OWUxIGxlZ2FjeS10cnVuaworMjU3ODQgOTg5NWUyZTMzNmMzYTEwZjZiZGMxYzc1YjgzYzBhZWM1ZmVmMGQ3MiBsZWdhY3ktdHJ1bmsKKzI1Nzg1IGI1MjNhNDcwYTBjZTk4YmU5NGNhMGFhNjQ0ZDRmN2I0YjMwYThhMjAgbGVnYWN5LXRydW5rCisyNTc4NiA1YzNhMjU5MjM4Y2ZmNTNjNDY3N2IwY2JhNTU3YjE4M2I3YjYwODQ5IGxlZ2FjeS10cnVuaworMjU3ODcgYmU0OTJkZjgzZDAzMDA4YmE1N2NhZTEyNmRiOTE1NDQyOTVmOTI1YyBsZWdhY3ktdHJ1bmsKKzI1Nzg4IGY1MmQ2YTY3NWY1Zjc4NzYzMTQ2YzhjYTFiYzk4MDg0Y2FiZWM1YTcgcmVsZWFzZTIyLW1haW50CisyNTc4OSBlYWM1NjBjYzAzOTlkN2YzMzhiMDM3YWRmZWFhOGFiNjA2OGQ4Y2RkIGxlZ2FjeS10cnVuaworMjU3OTAgYzEwNjhiMDkyODc5ZmNlNjFiOTY5YmFhNzEyNTljOTg2MWYwNGM0ZCBsZWdhY3ktdHJ1bmsKKzI1NzkxIGY0ZTI0YWIwZDEyNGFlZGI1ODk0OTk0OTUwM2MxMmI1NjVlZTEwZGYgcmVsZWFzZTIyLW1haW50CisyNTc5MiA3MDAyZjI0ZjgxOGZiMmM3ZTA5YTdjOGZkYmMwODVlMWQ2ZmM4YjAwIGxlZ2FjeS10cnVuaworMjU3OTMgNTAzYjkyZTY2YThjNzY1ZWVjZjU5YzBmMGNhYmViMzNhYTMzNmIzNSBsZWdhY3ktdHJ1bmsKKzI1Nzk0IDgzMjA1OGYyMWFhMjc0NDU1ZTIzZjVhODhlM2NjY2Q4MzE4ZWY5Y2IgbGVnYWN5LXRydW5rCisyNTc5NSAyMzdhZDQzZjg5YThmOTQ1MDJmZGQwNDAzZjY0NjQzYzA1ZjAyNDAzIGxlZ2FjeS10cnVuaworMjU3OTYgYzBhZTZmNDZmMjMxNTc0MzIyZWNhYjA2ZWYyYTAwMDVhZTRjOTg4MyBsZWdhY3ktdHJ1bmsKKzI1Nzk3IGQ4ZDk4MWQwYTQ3ZTVmMmE5ZWRmNTkyMDk5NmUwZGVkODIzMGMxOWMgbGVnYWN5LXRydW5rCisyNTc5OCA4ODhmY2Q5Yjg1OGRjZTMzMTczODBjOThiZjdiMzUyMTRhYzU3ZDFiIGxlZ2FjeS10cnVuaworMjU3OTkgZDJlNDU3YzQ0YmYyNzU3NTI5ZmI1YWMxZWYxZTcxNjY3ZGIyNjI4OSBsZWdhY3ktdHJ1bmsKKzI1ODAwIDA4Zjc0MmRmOTkzN2EyY2NiM2M5ZGM1NzJjMzE4MzkzMzI4YzRjMTYgbGVnYWN5LXRydW5rCisyNTgwMSAyNzNlZWUzODcxMmNmZmVhMWIzYTdmNWIxODRkM2Q2OTY5NWMxZjczIGxlZ2FjeS10cnVuaworMjU4MDIgMTA4NDZmMWUxNTkyZjk5YWJiZDBiNzBmMWFlM2Q0OTUyOTk1NjQ0NCBsZWdhY3ktdHJ1bmsKKzI1ODAzIGIxODM2Y2NjOTUxYzk3ZjUwMTVjNmZjNTI0MGU2YjllYmE5YjM2ZmQgcmVsZWFzZTIyLW1haW50CisyNTgwNCA5YWZlYWY5OTc5YTBhMmJhMWY4NTc3YmViNTM0N2FkOWYxNTQ4ODU3IGxlZ2FjeS10cnVuaworMjU4MDUgZDFhZWNmNjYzMTY3OTBlNWU4MWY4NjdiZTU2MGFjNWE5ZDA5ODM4ZCBsZWdhY3ktdHJ1bmsKKzI1ODA2IDcyZmQ4NDE2OTg0YjgwODUwOGQ0NmFiYTZlMjJiYTFhZTE4NmRjMjYgbGVnYWN5LXRydW5rCisyNTgwNyBlYzFhNWEwMjlmNzRjNTdmZTI4MjkzNmM1MDdmN2ViNzExMmViODk0IGxlZ2FjeS10cnVuaworMjU4MDggZDVhYWQ2YzU4MWM5YWU0NzNlOTJjNWQyYzc0OTYxMDkwYzJkNmQzZCBsZWdhY3ktdHJ1bmsKKzI1ODA5IGVmNmUyZmVmODFkMmE4YjhiYThlMTIwNWJiMDljMzU5N2U3ZTk3NzEgbGVnYWN5LXRydW5rCisyNTgxMCA5ZThhYTI5NTIzZjA5Nzk3NjJiZmRlMGViNWE1MTMzZmQ5ODY2YzU0IGxlZ2FjeS10cnVuaworMjU4MTEgODgxYjY0ODRmMGRmYWE2MWIyN2UzODI3ZjBlZjBmNmJlNTExODNmMSBsZWdhY3ktdHJ1bmsKKzI1ODEyIDUyMjA4ZmU0YWM0NzExNDhjYzcxZjc0OGI0YzVkMDlhYzMxYjM4YjEgcmVsZWFzZTIyLW1haW50CisyNTgxMyBkODY0ZTJiZDkxYTZlMTE0M2ZlOWRmYjgxY2ZkNjIzYTFlZjRjZTAyIHJlbGVhc2UyMi1tYWludAorMjU4MTQgMjM5MjVkZjRlMzcxMzA2OGZlZDg5ZTUwYjg4YmY0MjIxM2JmNjFjOCByZWxlYXNlMjItbWFpbnQKKzI1ODE1IDdiNWQ2ZjFmMWM2ZWM3NjUzYjM5ODIyMjFlZWZmNmI5NGRhMDMyZGYgcmVsZWFzZTIyLW1haW50CisyNTgxNiAyYTdmNzFhOWJkMmUzMGNlYWZjYWRkYjVlM2U1ZDc4Yjk1Yzg2N2Q4IHJlbGVhc2UyMi1tYWludAorMjU4MTcgMWZlMzgwMjMzNmEzNTZjYWRlODdlZjYwYzZmM2FjNDlmYmQ4Y2U3OSBsZWdhY3ktdHJ1bmsKKzI1ODE4IGEzNjdiYzYxZDViNjA3ZTlmMWVkOWIyODA3MTMxMjA0YzYwNzcyZGMgbGVnYWN5LXRydW5rCisyNTgxOSBmNmU2ZmRiOTM1ZDIxNDIxOTM0YTUzNGYwNWU5YTc0M2I2MzQxZjRkIHJlbGVhc2UyMi1tYWludAorMjU4MjAgNjhmZTJiMzkxMTU5NDcyZWEwZjQ2MDAzNTUwNTk3YTYxMDYyYmJkMSBsZWdhY3ktdHJ1bmsKKzI1ODIxIGJlYTAxZGMyZjAwZTJiZjNlMmU3Yjg0ZTU4OTgxMThjNzVhOWU0ZjcgbGVnYWN5LXRydW5rCisyNTgyMiBjM2UwZWEwOTczNzM2NmRiOTk0YzJjOWM2MGI0NjgxZTcyZTQ1YmRjIGxlZ2FjeS10cnVuaworMjU4MjMgOWJhOWQxMjM4ODA0ZjQ1ODcwOGVmNGRlOTUxMzQwNGQ2M2Q0MDQ4ZSBsZWdhY3ktdHJ1bmsKKzI1ODI0IDg1YmQ1MzRjYmQxOWY2OTMzMTU4ODQ1ODAyMDRkM2QzMWVlYTY4ODQgbGVnYWN5LXRydW5rCisyNTgyNSBmNTUxYWY5MjY2MGViMjJmMDZiNTQxZTk1MDFjNzdmMjhhNDBjODY4IGxlZ2FjeS10cnVuaworMjU4MjYgYWI5OGEwZGVmOWQ3NjMzMzdmMDFiNjY1NTcyYjFiZWYyZmUwYjZiYiBsZWdhY3ktdHJ1bmsKKzI1ODI3IGFiMjRlZjJjOTMyMzg5YWZkNzU1NzM5ZTRjODc2NjA2NTg0MTQ3M2MgbGVnYWN5LXRydW5rCisyNTgyOCAxZGIxNTEwYWJlMjE4N2I2NTZlYjI0N2Q5ZDk2YzU0NjJjNGRiNGM4IGxlZ2FjeS10cnVuaworMjU4MjkgYWFmNWVlM2I4ZjkzNTU2NDhlNWZlNjUxNDczNzE3ZjRmNjRkYzUyMCBsZWdhY3ktdHJ1bmsKKzI1ODMwIGVlYmFlNGY2MGQwNWNhMzQ0Mjc3M2Q3ODRkNTljNjM2YTBkYTA1YzQgbGVnYWN5LXRydW5rCisyNTgzMSA4ZDAwNjE0OTNjNTdkMjI3YmVjOWM5YjliZTU1ZDc1MTE5YjFiMWM1IGxlZ2FjeS10cnVuaworMjU4MzIgMGU0NzU4Y2NmZTJiZTY5MGVjM2ZmYzhmNWMyY2IxNWMxMzRlMTNhYyBsZWdhY3ktdHJ1bmsKKzI1ODMzIGFjZjVlY2Q4MDZhZmM3OWZhNTE4N2Y0ZTc1Yzg5NmJhNDY3YmY2MjIgbGVnYWN5LXRydW5rCisyNTgzNCBhZDM4MjVkMDRkZWNkNjIyNjQ4OTFkMWIwM2IyZmQ1Nzg3NTNmZmRhIGxlZ2FjeS10cnVuaworMjU4MzUgYmM4OGYxYjQ3NjQ4ZGU2ZTZlNTdiMWZhYWUzMWNjMDVmZGZiNjNmYyBsZWdhY3ktdHJ1bmsKKzI1ODM2IDdhZGVkNmQwNjk2ZTM0NTg0Y2I5OWUyOGFkYWIxYWRhM2I3YmRjZGEgbGVnYWN5LXRydW5rCisyNTgzNyBlNGQxMGJkMzk3M2YxNjQ4M2UzNjY4YzljY2IyZDg0MmE1YWUwZTMwIGxlZ2FjeS10cnVuaworMjU4MzggZDc3ZTc0ODg2NWZmOWI4OWJhOTNjOGMzOWUyY2M4OTlkYmRmMjE0NSBsZWdhY3ktdHJ1bmsKKzI1ODM5IDgwNWJlN2MwZTI2YzUzMDlmMzVlYzk2OGVmZjdlZDkxYTFlNTIwYmMgbGVnYWN5LXRydW5rCisyNTg0MCA2NDA4Mzg0YzgxMzdiMjQ4YjU3MTU4NGMxYzQzZTU5YmE4MTA3Y2Q5IGxlZ2FjeS10cnVuaworMjU4NDEgZmI0NTc5MTE1MGQxOTc3NzczOTZiOTkzNThhZTIxOGEzYTJjY2M4NSBsZWdhY3ktdHJ1bmsKKzI1ODQyIDE1NzAyZTFiOTYxZWJiNmNmZWFhNGFhNjYwMzM4MmVmMDdhN2Y2NDYgbGVnYWN5LXRydW5rCisyNTg0MyA3ZGUzYzliNThkYjhmZWZlZjQ4NzQ3NTM0ODRhOGM3ZmE2YWIwNmM3IGxlZ2FjeS10cnVuaworMjU4NDQgMjNiOWFlNmIzZjdhZmViNWEwNGIzNDYxMTUxNjc1ZWU1ZjlkOTE4NiBsZWdhY3ktdHJ1bmsKKzI1ODQ1IDBmMWFlMzdjZDhlYjAyN2U5Mzc1N2E4MjAwZGI2NGI4ZWI0ZmU4MzkgbGVnYWN5LXRydW5rCisyNTg0NiBmZmNiMmZkMjk0N2UxMjhhNzgxMmFlNjk2NTczNGY3NjEwMTU3YTg5IGxlZ2FjeS10cnVuaworMjU4NDcgYjM2MGE2NTBhMGRiZTQ5ZWQzMTliNWIzNDJmYzNmNzk5MjBkMTg4NSBsZWdhY3ktdHJ1bmsKKzI1ODQ4IDhlY2QxYmFkMjQwODFiNWM5NTIxODQwNWExZWU3N2FjYmVmZDc5OWMgbGVnYWN5LXRydW5rCisyNTg0OSBmMDJjZGIyYmMxN2E3M2ZiOWQ0MTI5NmY4ZmMyZTBjMDQ2ZDA3M2Q3IGxlZ2FjeS10cnVuaworMjU4NTAgMTM2MWY3YmIzZjE5OTM3MTZiZDQ5MDJhMTYwZmE1YTZkMmJkZjdkYyBsZWdhY3ktdHJ1bmsKKzI1ODUxIDYwMzkyNTRhYWFkYzQ4NzI3OTc4YmU5NDc3ZGFhNDkwYzZmNDE5NGQgbGVnYWN5LXRydW5rCisyNTg1MiBkNGY1NDE0NjdiNmQ1MmU1ODhmZjBjNDIzMjY0NTk5ZTFhNjE2ODE4IGxlZ2FjeS10cnVuaworMjU4NTMgZmY5YWI3ZDMwYmJmYmQyMWI2YjcxNjFkNGRiYzM1NTJkMzdhNTcwZiBsZWdhY3ktdHJ1bmsKKzI1ODU0IDQyMjUxM2Y0MjBjZjM5ZmMyNzFiNDU2YWIxNGNiNTczNjAwMmQxMTQgbGVnYWN5LXRydW5rCisyNTg1NSA2NmFkYjU1MWNkMzhmM2QyYjBmYTU4YzYwNzEyNzlmODE3YWYyNGYzIGxlZ2FjeS10cnVuaworMjU4NTYgNzIyNGExZGY0ODA5ZmI0NzFhZjM0YjJkZDBmMzJhOTM3YzkyZWI1ZSBsZWdhY3ktdHJ1bmsKKzI1ODU3IDkxZjlhMjQ4ODdjYjVlNTgwOGVlMDUzYTdhZjBjYmUzMzIxNjljN2IgbGVnYWN5LXRydW5rCisyNTg1OCBlY2QxODFiMDJhOGE5NjZhZTFkN2FiOTFmMTBmZDIxZTFkYmI3OGM3IGxlZ2FjeS10cnVuaworMjU4NTkgMzkzYjBjM2Q5NzczMjQ3YTZmZjMxM2VkMGY5M2NmOGNjMmM3YzNmNSBsZWdhY3ktdHJ1bmsKKzI1ODYwIDU0YmNlM2NhYmNjZDU3YzdjMzhmNmU0MzBhNmNhNjk4ODU4M2ZmMzkgbGVnYWN5LXRydW5rCisyNTg2MSAzYTNkZTY1NjdmMWE1ZDIxNTk3MmU2NTZhZmI2OTk1NTEzNzcyNDk1IGxlZ2FjeS10cnVuaworMjU4NjIgODJiZGJjYTAyYzA3NTFhY2EzOTM3YTNlOWVjMzVlYWVlNTRmNzU3YyBsZWdhY3ktdHJ1bmsKKzI1ODYzIDllM2Q2YjVjZWUwNzYyZDY2MDUzOTYyYTBiZWFjOGI5MDdjODAxY2QgbGVnYWN5LXRydW5rCisyNTg2NCA1YjhiZTg2MTFkOGNkODkxZDEyMmM4OThkM2FlNWY1ZGQzNzA4NTQwIGxlZ2FjeS10cnVuaworMjU4NjUgYzgxNjU3NThhNmRlN2MyYTA1YWNjOTU3OTVhNmRlZDU3ZTI3NWQzYiBsZWdhY3ktdHJ1bmsKKzI1ODY2IDI1ZTJiNTgwYjJjZmJiY2IxYmExNTQ4MjJkMGU3NjY3MTE5MjQzNWQgbGVnYWN5LXRydW5rCisyNTg2NyBhMzJjN2IzZjFmMTEwNmM5Yzg4ZDgwMmVjNDFhZDFkMGU5ZDU2MTU2IGxlZ2FjeS10cnVuaworMjU4NjggZTk0ZWRkZWNmMzMwYTA0MDQyOTQ5OGZhN2ZkOTJhOGVkMjU3MTBkZiBsZWdhY3ktdHJ1bmsKKzI1ODY5IGU3Nzc0NTI2NDgzMDZlZTYyMTRhNWNlOGFhMzcwMDkwNjQ5ZDBkMzYgbGVnYWN5LXRydW5rCisyNTg3MCAzYmQyMmJkMTg3YzMyYjUzYzJmZDZiODliMTYzYjY4YjI2ZDUxN2Q0IGxlZ2FjeS10cnVuaworMjU4NzEgNTRjMDVhOTQ3YmNiYzU4ZDg5NTAxNzE0NTdjMzM5MjRlNjNhODlhYSBsZWdhY3ktdHJ1bmsKKzI1ODcyIDBlZGEzZjgyYjZmM2Y0MjgxNGY3OThmMWE0OGVmMzhiZmU0MzJhYmMgbGVnYWN5LXRydW5rCisyNTg3MyAyMDVjMTA2MzJmMDg3ZjM5ZTE4YjQxZTUyMGRjM2U3MjdiY2Y1MjFhIHJlbGVhc2UyMi1tYWludAorMjU4NzQgNjU4ZWEwMjY2MzRjNGMyMjAxM2RjODFkYTk1MzhkOWU5NTYwOTgxZCByZWxlYXNlMjItbWFpbnQKKzI1ODc1IDBkZDJmOWI1N2NmZjVhYzkxOGU4NzViMjdmNjQ2NTJhZmFkMTkyY2MgcmVsZWFzZTIyLW1haW50CisyNTg3NiBhNDA1NDNiM2UzYmYzMjY0M2JiMzVkOWNkZDUyZDgwYTFiY2RmMThhIHJlbGVhc2UyMi1tYWludAorMjU4NzcgODE0MzI5YTY0MjZjZDc3ZDk2MDZmMTNjOGIwMzVlMmUxY2EzMGMwNiByZWxlYXNlMjItbWFpbnQKKzI1ODc4IDRlZjM2OTNmMWEyNmFhZDkwMzdkZWU5NTEzZDJlZjE5ODIzYjljYzAgcmVsZWFzZTIyLW1haW50CisyNTg3OSA2NjU3OTFkNTNjNDM1NmEyMjY2NTdiOThjMTU2YWY1MmI1OWMxODI0IHJlbGVhc2UyMi1tYWludAorMjU4ODAgMTYyNDVhOWNiZmExZGYzNzBkYTdmMTQyZmJjZmQ5ZjI4MWVmMDdhMiByZWxlYXNlMjItbWFpbnQKKzI1ODgxIDdjN2M5MGZjNzAwNWE3ZWZjNzlmNzA4NGFmMzBlYTA3YjM5MzM0YzkgcmVsZWFzZTIyLW1haW50CisyNTg4MiBjM2RmOWI3YTZhY2FiMTg5YzRjYWY0NWRmMzMyOTMxZDc3M2JmNDI0IHJlbGVhc2UyMi1tYWludAorMjU4ODMgNzk1YmRkNjkyMTc2MDI1YTRhOTFhYzZjZWY4NTI4MTIwMmYwYzRkYyBsZWdhY3ktdHJ1bmsKKzI1ODg0IDhiZmM5MTg0OTI0MmMzMDg5OGRjYWRkOTk4OTQ3NDQ1ZjJlOGMyYWYgcmVsZWFzZTIyLW1haW50CisyNTg4NSA2NGE2ODM2MTg0OGNkNDAyNmZkZmRhMWI3MTQ1ZWE2OTNiMGRlYzM2IHJlbGVhc2UyMi1tYWludAorMjU4ODYgMGFhZTA5OTg2ZmM5OGY1NmQ3OWMzMmJlMDQxY2FkMWRhYjQzMjM1ZSByZWxlYXNlMjItbWFpbnQKKzI1ODg3IDRmZjM3YzU4YWI4OTM5M2FkOTI3YTIxNjAzMjg4OTI1NjFkY2VhZDMgcmVsZWFzZTIyLW1haW50CisyNTg4OCAwYzE5MTJmOWQxY2U4M2RlZmU0NzFmN2QwZjlmNmIwZTU3YWVmYTU0IHJlbGVhc2UyMi1tYWludAorMjU4ODkgYTJmZTBlY2QwY2UyYWJkMGNkYTY2OTlmNWY4Y2QyNWZmMmY2NzI2MCByZWxlYXNlMjItbWFpbnQKKzI1ODkwIDJmOWM2Y2JlYWE2MjhkNWUzZGRiZDVjNjU1ZTA0NWIwMjNmYzgxYWQgcmVsZWFzZTIyLW1haW50CisyNTg5MSBkNjZlNGU3YzllOWE3MGM1NjAzZTQ1OThmZDkyMTNlNzAwNjI3OTEyIHJlbGVhc2UyMi1tYWludAorMjU4OTIgNDU3MjFjMDIxNjA2NjRmY2I1ZGM1N2Y2MjJhMGYwNmMyYWQ4ZWUzYSByZWxlYXNlMjItbWFpbnQKKzI1ODkzIGVmMzE0YjM3ZTI2MGNlZGJiYzU3MWI2ZmM1MjAzNzE4MDE1ZTliYjkgcmVsZWFzZTIyLW1haW50CisyNTg5NCA5MTk4ZmIwNDM1ZmJhYWNlYTkwNzE4ODVjYzFjZGM4NTVjZGQ0MDNkIHJlbGVhc2UyMi1tYWludAorMjU4OTUgMjkxMjAxNWExZTdiNzZiODVlNWUzYzJhNzQ2YWE0YmFhOTA2YzVhMyByZWxlYXNlMjItbWFpbnQKKzI1ODk2IDgwOTBkMGQ2M2VlMWE1OTE3ZTBkY2I5NWU4ODI4OTQ4ZjhmNjJmOWEgcmVsZWFzZTIyLW1haW50CisyNTg5NyBmNmE3ZmRiZDMwZDRmMjE2ZjYxZGE2MDZlOTg4OWNlZDUxZTNkM2RkIHJlbGVhc2UyMi1tYWludAorMjU4OTggMjFlODk3MmQzN2U0NjgxZWNiNGU5OWE0M2Q4ODcwZjE0MGU3YWY2MyByZWxlYXNlMjItbWFpbnQKKzI1ODk5IDFhZmJjNTYxODhiMDA3NDhjYjlhMTA3NzhmMTQ5YjBhMWUwOGM0OGEgcmVsZWFzZTIyLW1haW50CisyNTkwMCBkYTlhZGVjNjZlMmIyMTlhMTQ3MTU4Yjg5ZDQ5NTY2MjM4YWU2NWMwIHJlbGVhc2UyMi1tYWludAorMjU5MDEgZTJjYmU5YzMzNDExYTBiMGI1Nzg0ZWE1NThmMzQwZjA4ZDIxYmZlNSByZWxlYXNlMjItbWFpbnQKKzI1OTAyIDc1ZWYxZjE2NzI1ZWY0ZWNhYmRjZWQ5NjAyYjMxNDU0NDhjYjZlZmYgcmVsZWFzZTIyLW1haW50CisyNTkwMyBiNzI2ZTZiM2E4NTIzY2E0NTIyNDI5Nzc1YTMzNTcwMzU0NjkwNjQ4IHJlbGVhc2UyMi1tYWludAorMjU5MDQgMTZlNTQyYWYyYzQ1YmMwNzkwM2FhMzBjYmVkMWJhNmNhNTY4ODg3OCByZWxlYXNlMjItbWFpbnQKKzI1OTA1IGM1YzEzMjYxNjZiOTIxYTQ3OTY0YzBkOTU5ODlkODE2NjY4NjY3ZTggcmVsZWFzZTIyLW1haW50CisyNTkwNiA3NTY2MTg3YTIwMWNmMjE0NTk4NmY3Mzg5YjI1YWI1OWY1OWE1ZGQwIHJlbGVhc2UyMi1tYWludAorMjU5MDcgMTQyZmQzZTEwNzNkMWUwNzU4NDIwMmRmMzhiNjE2N2NkMjVjYWE4NyBsZWdhY3ktdHJ1bmsKKzI1OTA4IDZiM2U5OWIyZmY5MWM0NTcxYTBkNmIyNjliMmNiZDUzOWUyYTFmZDQgcmVsZWFzZTIyLW1haW50CisyNTkwOSAwOTIyYzkxOWNlZGJlMzdjMGQ1OTcwZjIzOTAwODRhNTY5MWI4ZmViIGxlZ2FjeS10cnVuaworMjU5MTAgNjNmYmNhODk4ZWFjMjZhYzQ0ODQ4NWQzODBjZjc3ZGY1ZGZjNDcxZCBsZWdhY3ktdHJ1bmsKKzI1OTExIGZhZDA3MWZiNDE0MWZlNjA5YmE2NzZmZjc1ODVhNDVhOWY0ZTdmZjMgcmVsZWFzZTIyLW1haW50CisyNTkxMiBhZDE1YjM5YWQ4ZjcxMjQwNDAxMWEyOTM1MzMzNDQwZWY5YTk4YmEyIGxlZ2FjeS10cnVuaworMjU5MTMgOGI2MzZmY2I4NjE1ZWEyOTIwZWNkYjk3N2Y1ZDI2MWE0MmE0ODM3OCByZWxlYXNlMjItbWFpbnQKKzI1OTE0IDllYjRlNjIzMDliMGUyMzJlMDdjZWZkNDA3Y2ZlNzMxYWI2YjFhMTggbGVnYWN5LXRydW5rCisyNTkxNSAyNWI1OTlmMzYwYmMyMWQxODM1NzRmYmI5OWMzZGE0NGZlZmFkNjBjIGxlZ2FjeS10cnVuaworMjU5MTYgNmRlMWExOWY0N2E0MjVmZTExZjI5MWJhYzZiYTQyMGEyYjJiNGIwZiByZWxlYXNlMjItbWFpbnQKKzI1OTE3IGY5ZDk2ZGVkZDFmNDY2YjQ3ZDEwNDdhNjMzYWU5MDIzMjJmMjVjYzEgcmVsZWFzZTIyLW1haW50CisyNTkxOCBmMmEzYWY0ZmE0ZmZlZWYzNGI3ZWM3MGU4YTE0NjViOTViZWQ1MzAxIGxlZ2FjeS10cnVuaworMjU5MTkgYjY4YWY0YTgwMDBiYTEyYTYxYWRmZjhjZDU2MjlhMjQ0NGRlZmQyNSByZWxlYXNlMjItbWFpbnQKKzI1OTIwIDNmNDIxNjM0YzM3Y2M2YzVlMmY1NTAyODU3YjU3YmI4NjRhZjcwZjMgcmVsZWFzZTIyLW1haW50CisyNTkyMSBiNTlhZDRiOTdhNDI2ZTE0ZmI1ZjAzNDI5YzhmOGY1YWU4YjlhMGI1IHJlbGVhc2UyMi1tYWludAorMjU5MjIgN2E0Y2I0ZTk3OTc2NmFhNjBlZDU3NDM1NTY5ZTc3MjY4N2FiY2Y5ZCBsZWdhY3ktdHJ1bmsKKzI1OTIzIDA0M2FkN2FkYzg5NmY0YTQ4ZmUzMzQ1MmM1ZWYwMmY5ZWM5MmZlZDIgbGVnYWN5LXRydW5rCisyNTkyNCAzMDNiNmFkMTNhMzJkOTk1MTEyYzlhMzEzZjA3ZGJjNTY3YzdkOGVjIGxlZ2FjeS10cnVuaworMjU5MjUgM2JmMmI1YWNhNjFlYzE4NTBkNTAyNjk4MjI0MjZkMThlNmJiY2YwOCBsZWdhY3ktdHJ1bmsKKzI1OTI2IDliYjQ1MDM2NWRmNzg3MWMwZTQ5YzNlMjQ4MjgzODU3Mzk3MzZmOTMgbGVnYWN5LXRydW5rCisyNTkyNyA5MDZhZDM2Y2I3YmNjZTc1ZDVjODg1MTA4Y2RmYWFjZTAwNzVmM2YzIGxlZ2FjeS10cnVuaworMjU5MjggMzllNDJkNmY1ZGEyZDA3MDRhNTI2MmJiM2I5ZGZiMGJmYTNiY2VkNCBsZWdhY3ktdHJ1bmsKKzI1OTI5IGFlZGRhMGFiZDMxM2UwMGVhYTQ3Y2QyNTg3ZDhmZWFkNWEzOTMzMGUgbGVnYWN5LXRydW5rCisyNTkzMCA2YTFjODc1MmE2NWZiMDcxZmRkNDUxMmE5NTNkYWUxNjBmZTNjMjA2IGxlZ2FjeS10cnVuaworMjU5MzEgZWU0YjU5YjVmZWI3MmY3YmViMDJkMjcwOWE0MGIxZDk5ODUzYThhNCBsZWdhY3ktdHJ1bmsKKzI1OTMyIDQ3MGU5ZGEyMWM0YWU0ZmY1MWYzNjI3ODI1MDczYWRmNzMxNGVmMGEgcmVsZWFzZTIyLW1haW50CisyNTkzMyBkMTkwYjJkMzAzYzI4MWQ3YmQyYzE5NmQ0ODE0MjBhYmJlMDRiZWI2IHJlbGVhc2UyMi1tYWludAorMjU5MzQgNWEzMGQ0YjNkYTM3YTEwYzYwMTRhNzgxNDYwMmU5NjFlMjQwZDFjOSByZWxlYXNlMjItbWFpbnQKKzI1OTM1IDI5ODgwMmFiZDM4ZGZmZmE3OWI0NzJjMmY1ZGRjMzM3MGViMjRmZmMgbGVnYWN5LXRydW5rCisyNTkzNiAwNmE4MTU2ZTNiY2Y3M2JmY2I2NDU3ZDA4NmJiMjVjY2Q2MjI0ZjZiIHJlbGVhc2UyMi1tYWludAorMjU5MzcgYmMyMGJhYWFlM2VlMTE5ZTM5YTlmMmUyYTJmNmEyNDNkMTlkYjA0OCBsZWdhY3ktdHJ1bmsKKzI1OTM4IGQ3MWQzYjcxNWIxM2VhMjk0YWQ4M2Y1MmZkZmJmMWRiYmIwMzFhMTQgcmVsZWFzZTIyLW1haW50CisyNTkzOSBlNmM2YmFiY2VlZTUzNjBmM2RiNzM4NGQ3YTQ4Y2FjMWE5NTllMjc4IHJlbGVhc2UyMi1tYWludAorMjU5NDAgM2EyMWRiZTFiNmZlNDY4OWE4ZTg1ZDYwZGM1MWJjMTc3MzRkYWYxOSByZWxlYXNlMjItbWFpbnQKKzI1OTQxIDY0YTEwNDlmZTUzYjk2MWE1MWI4OTkwZDU0OTBhOWJkMTQwMmI3ZGMgcmVsZWFzZTIyLW1haW50CisyNTk0MiBmMGVmOGI0MjZkOGQ5YjA3Y2FiM2ZhYzdiYmEzNGM5YmYyODg0ZDg3IHJlbGVhc2UyMi1tYWludAorMjU5NDMgMmQzM2NmZDZjMTdmMDc3OWJmN2NkM2Q0MDI0MWIwMGI4OGE2OTU3MCByZWxlYXNlMjItbWFpbnQKKzI1OTQ0IDlhMTdiM2EzYWYwOTg5YzBkNDFmNGFkMzE0YWUzZGExZmY0MTNlMTggcmVsZWFzZTIyLW1haW50CisyNTk0NCAxMWM5NTJjN2Q0YmU2NjM4MDQwNzY0OTEwYmU4MGJkOWMzYzE3ZGU2IHJlbGVhc2UyMi1tYWludAorMjU5NDYgYmNkMWZkZjEzYWNmZTM2NzFhZjY4NjY0MTIwYTRmZTg4Y2ZkNGJjNSBsZWdhY3ktdHJ1bmsKKzI1OTQ3IDkzZGFhNGZkZTA4N2VkZGFjODNkNTEyNWExOTliNGExNzg5YjY2YWQgbGVnYWN5LXRydW5rCisyNTk0OCAzZDY4MDg1ZjQ5NWY5ZTU4ZTM2NTI0N2RlMzIxNDk2ODZiYjBlMTk1IGxlZ2FjeS10cnVuaworMjU5NDkgOTFlYWI3NDU4MTBmMTEzYzQwNWZlNmYyNDc2YTUyNmFlNGQ2MTljMCBsZWdhY3ktdHJ1bmsKKzI1OTUwIGYxZGJlY2I3ZTQxNjBkMjc0ZTJmYWQ0MmI0NGQ4MGQ5M2UzNjc5M2YgbGVnYWN5LXRydW5rCisyNTk1MSA2NmU4NWE3MzJkZGRlMTkyNTg2Y2E0YTAyYjQwMjk1ZjQxYjRhOGRhIGxlZ2FjeS10cnVuaworMjU5NTIgYzE4ZmU0ODcyNTcxNjBmZDY4MzczYjA0MDJiMjc1OTVmOWEyMWJjNiBsZWdhY3ktdHJ1bmsKKzI1OTUzIDdiY2U0NzUxYmZiMzQwZjJmMTgyOGVkMWYzNzdmNmNmMjJlMDdmNTcgbGVnYWN5LXRydW5rCisyNTk1NCA3ZDBmMGJiOTQ0OGIwMTAwNjI2ZDgzOGFhNzI3NmYxN2MxN2ZkOWE0IGxlZ2FjeS10cnVuaworMjU5NTUgYTc1OGQ0YzQwMWUwOGVhYWRjODIwNWFjZjM2Yzc3MDgwMzY2YzU4MSBsZWdhY3ktdHJ1bmsKKzI1OTU2IDliNTMxMGNmYTJlMGRkYjE2MGM3M2Y3YjdkYjViYmE3NjVhYzdjZmIgbGVnYWN5LXRydW5rCisyNTk1NyAyMDRkNDZmYzU0ZjY4ZTAzMzRmZDcxNjkzNjBkZDgwOWEyOTBjMWE1IGxlZ2FjeS10cnVuaworMjU5NTggMGEzYmYyMmFlY2E0YTJlNGI4NWY0ZWU3MjFhMTdiZDU1NDFlMzRjMiBsZWdhY3ktdHJ1bmsKKzI1OTU5IDFjNzIwN2FkNWRiODE1NzgyMzM4ZWRjZTU3ZjVjYTE0ZjliMjY4ZjUgcmVsZWFzZTIyLW1haW50CisyNTk2MCA4MDgyMWE2NWZkNDk4MTgxOGQ0ZTcyOGI5YzhlNzQzN2E1ZmRmZDAwIHJlbGVhc2UyMi1tYWludAorMjU5NjEgMTk0ZWQ1ZTBkYzhmZjBkZTEzMGU5YjI1ZTY4OTMyMDQxNmIzNmY4YiBsZWdhY3ktdHJ1bmsKKzI1OTYyIDBjNWM2NGI3NWQ1ZDBhMTgxMmRlOWViM2EwNzU1NTFiNmM0OTc0MDQgbGVnYWN5LXRydW5rCisyNTk2MyBhMzMxYzYxNmJiMGFkNWNjNTRlYTlmNzkzZWRmZmQ2NjhjY2MzNGY2IGxlZ2FjeS10cnVuaworMjU5NjQgZjNhOTEzZTY0ZWI4ZWQ0ZGI5MjZiMTAwOTBhOWRkMWFlODAyYWNmZSBsZWdhY3ktdHJ1bmsKKzI1OTY1IDI4NjhlOWE5ZTI4MGI2OGEzOTY1MmUyNjk3ZTUyYjdhNTQ0MmE2ODQgbGVnYWN5LXRydW5rCisyNTk2NiAzZjRiMmY5M2U4YjViNTQyNmU4ODhjNDliNDQ5YjdjNWY4M2RkYTk5IGxlZ2FjeS10cnVuaworMjU5NjcgZGExNjQ1ZmQ5YzI0MzhhZmViZTc0YzA5MzIwN2RiOGJmNjVhOTljNCBsZWdhY3ktdHJ1bmsKKzI1OTY4IDFjODM4YmU2ZDAwNGJiODg2MDYyZjNlZGM5OGE2MDQ4ZjA5M2U2MDIgcmVsZWFzZTIyLW1haW50CisyNTk2OSBhYzI0YzJjOWJjYWY4M2Q4Y2RmNWVjZGZkYWI4MDE2NmU2YmZmYTUzIGxlZ2FjeS10cnVuaworMjU5NzAgODM3NzZiYTU4MGVmMjBhNWM0MzVkZTQyYjdkNmM4NzUyY2I4ODQwMSBsZWdhY3ktdHJ1bmsKKzI1OTcxIDRjN2JiMGI0ZDM1NGJkMjQ3NjEzYmZmYmExM2I5NmU0NjZjMGQzMTcgbGVnYWN5LXRydW5rCisyNTk3MiBjOWI3MzI2MjhlNmM2MDYzZjE4ZjBiMmQwNWZjNjk1ZTQ1ZGVmNzM3IGxlZ2FjeS10cnVuaworMjU5NzMgMjY3ODVmZTYzY2JiZTJkNGM2NTkxYWRiODY5OGQ2MzI2YjM0Nzk2YyBsZWdhY3ktdHJ1bmsKKzI1OTc0IGY2MmJmYjBiMDk0NmNkNmMxMzcyNzU5MzcxY2EwZmE1MTU3ODdlZGUgbGVnYWN5LXRydW5rCisyNTk3NSBkZGM5NTQzYzc2YTAzMWM5Y2IyZDIzNzhkM2IxMjUzMjkyMDIxNWI5IGxlZ2FjeS10cnVuaworMjU5NzYgZjI5NGZkZDE4YjViMDhhNGMwNzMxZmE5MDVhNGVjYjA3NjcyNzYxYSBsZWdhY3ktdHJ1bmsKKzI1OTc3IGQ2ZjUwNjRmMjY3MzcxM2ZhNjVlOTNmZTE0ODcyYzBlZjRjZjkwNmIgbGVnYWN5LXRydW5rCisyNTk3OCAzMjk5YjdhYmE4ZWJlNzAzMjljMWVjMWMwNGZlY2VhOTQ1OTE0ZjBlIGxlZ2FjeS10cnVuaworMjU5NzkgNjc5NmRkMzBhNjAyNDc5NGJkMGExMGI3ZDRhNjk2ZTYwYmEyOWJkNiBsZWdhY3ktdHJ1bmsKKzI1OTgwIDE5ZDRlODM2YmQwNzVlZWRlYTIxMTUyMGMyNmFkYjEwMGJkNjk1M2YgbGVnYWN5LXRydW5rCisyNTk4MSBlYzZlY2JiMzRiMDZiOWUwNDViODhlNjYyZDVkZDg3MDFiZTIzMWQzIGxlZ2FjeS10cnVuaworMjU5ODIgNmE4NTA0NDhmYzhlOGUzYWM5YjM2ZWE5NzA3NTQ5NDNmZjExODI3NyByZWxlYXNlMjItbWFpbnQKKzI1OTgzIDgzMGM4MjlhN2ViMmFlZDU1MjJhN2E0Nzk3ODk2OWRhODZmNGVjZmYgbGVnYWN5LXRydW5rCisyNTk4NCBhNmJiM2NjOTE5Yjk2NTZkNjdlNzdkODg1OWNjNDBiMjJiYzY0YTFjIHJlbGVhc2UyMi1tYWludAorMjU5ODUgZDlmMzAzMDNjODYwZDAyMThjMWQ1ODA0MjYzZjE0MmUxNzhkMGI0NyBsZWdhY3ktdHJ1bmsKKzI1OTg2IDg4MGQzMTA2NDk5YmFiNWJlZjRiOTc2YTM3ZGQyYmVhY2ExMjVlN2QgcmVsZWFzZTIxLW1haW50CisyNTk4NyA4OThjMzkyNDc3ZDkxZDEyODY1MmM1NzQxODUxODRlNzI2NTJiOTkwIGxlZ2FjeS10cnVuaworMjU5ODggMDQ0NmVlYjc4N2I3ZjkyZGFkMjFhNTZkYWJkMmFjNzMxNGViZGM1NCByZWxlYXNlMjItbWFpbnQKKzI1OTg5IDUxYjFjNWVhMGZiYjQ1NjE3NGU1NDBiODhmNzNhNDVhMzdhZTAwMTMgcmVsZWFzZTIxLW1haW50CisyNTk5MCA4NDY4NGZjMDJkYTAwNGY0OGMzZWM5NWYwYTVjNTc4NjZlMTZlOTdhIGxlZ2FjeS10cnVuaworMjU5OTEgNzIzMGUwMWMzYzQ5NGVkNGMzMzIwNThhOTI0ZjhjMDQyOTM4NjgwZSBsZWdhY3ktdHJ1bmsKKzI1OTkyIGU2ZmNjZGU2MTA4NjZkMWIyZmEyNjdiNGQ3MTE1N2YxODUyNTNkOTggbGVnYWN5LXRydW5rCisyNTk5MyA3ODcwZmFjMDQ5ZjcyMTNhNzc4NjFlNTA5NzQ0MTMyYjExZTQ3MzczIGxlZ2FjeS10cnVuaworMjU5OTQgMzQ5NDA0NDI2ZmFhYzM3ZTI0NWM1ZDcyZDU4OTEyYzU4MjQ1MWI5YiBsZWdhY3ktdHJ1bmsKKzI1OTk1IGY4YzY1OTg0OGFkNmY3ODJiNzhiMGFkM2EwYmFhNzI4YzZjZjQwZjUgbGVnYWN5LXRydW5rCisyNTk5NiBiOWNlOTY5MjgxY2I3MzgyMTM1MWY2OWU5OGM1NjRkMGRmYzAwZDU0IGxlZ2FjeS10cnVuaworMjU5OTcgNzI2Yzk2MWYzZGI1MWE3NTBmZWVlYzE1Zjk5ZDlkNjZjNmRlNmZiNSBsZWdhY3ktdHJ1bmsKKzI1OTk4IDBmODAxNjI2YzJkMzc5YzhjOGI0YTQ5MjMwNzA0ODg1MGExZTZmNzIgbGVnYWN5LXRydW5rCisyNTk5OSBkNzc4ZWE5ZGU3ODBmYWMwZjg3ODYzMzE1NDYyMTk0NmM3NDVmOGI4IGxlZ2FjeS10cnVuaworMjYwMDAgYzE2NjYxMDRiNTU0ZjlhNmNlY2UzYjRhMWYzNDYxZDAxNTgzM2I5NyBsZWdhY3ktdHJ1bmsKKzI2MDAxIDljMmNhMzdiZGVlYzU4MTU2ZTRhYTI4ZGVmYTVmNDRiMjAxYjdhMTMgbGVnYWN5LXRydW5rCisyNjAwMiBlYzEwNDNmNmQwNWVmY2U3Nzc4YTZjZmI4NmU0YjMyNzI4NTZjOGU3IGxlZ2FjeS10cnVuaworMjYwMDMgY2VjZjMxZGI4YjBkYjU3MzQzODBjMjhhYzM1YzY0NmVjYjgzNDAyYSByZWxlYXNlMjItbWFpbnQKKzI2MDA0IDk2YjEzNmI2MTE3ODQ1NDhlYmEwNzMyMzE5ZGU2MWU1NTgyMWRmNTkgbGVnYWN5LXRydW5rCisyNjAwNSBkMjkxMTlkMjQzZTllMzdhNGE0MDVkZWUxN2ZkNTE1ZTdjMGVhMmRjIGxlZ2FjeS10cnVuaworMjYwMDYgYjE3MmVlOTNjMTNjNmM5MzJkZGIwZmU2ZmI2OWEwMGE5NjViODQ2OSBsZWdhY3ktdHJ1bmsKKzI2MDA3IDE1MGYwMzQwN2QwZDI2OTcyNDNkMTZhYTNiZmJmZjI1ZGU4NGJjNzAgcmVsZWFzZTIyLW1haW50CisyNjAwOCA4NmEyN2JhMWJlZTc1ZjAyMmJkZTIyZGUxMmEwOTZkOGQ5ZjZlZDVjIHJlbGVhc2UyMS1tYWludAorMjYwMDkgNTY1NWJmYjYwN2NhNzIyNGFkOTdjYzk1YmJjMzcxZjM5ZmIxZGQxOCBsZWdhY3ktdHJ1bmsKKzI2MDEwIDhhODM2ZDBiNTk3NDE2NWZmMGI4NDdmYzMxYjRiMjFjYjA1MWU0NDIgbGVnYWN5LXRydW5rCisyNjAxMSAxNjE2YmQ4YjMxYmMwNDgwODczNTQwOTc5ODY3NGE1YjQxOGQxZGQ5IGxlZ2FjeS10cnVuaworMjYwMTIgMjI4OGM3MjRmZTJiYWQwMTQwZmE2OTljNjRjMjAwZDA0Y2ZmZGE5NSBsZWdhY3ktdHJ1bmsKKzI2MDEzIGYzYTQxNmIxNzhjNDIzY2YwOWM0MGY0MWRlZDk2ZjAxMTBjZDVmZWIgbGVnYWN5LXRydW5rCisyNjAxNCBlOTcxNDc1YzA0NzE5MzFjZWViNjNlN2JlYTZjZDFiZmJkZmY4ZjNlIGxlZ2FjeS10cnVuaworMjYwMTUgMmRhMTEzNzYwMGFlN2U5ZWFhMWQ1Mzg5OWRhZTJkMGIwNTM5OTkyMSBsZWdhY3ktdHJ1bmsKKzI2MDE2IGE4MmNlMTk4ZmU2OThjMmU1NzZkNDJlMmY5NWY5YjdhMWRiYmExYjIgbGVnYWN5LXRydW5rCisyNjAxNyAxMDcwMjNjMGM0NTZkZjNjMmM4MzI0OTQ1NTk4ZmEwN2VmZjZkZTI2IGxlZ2FjeS10cnVuaworMjYwMTggM2FhZGUxNTBlNzE3MjQ3YjM5YWVlMDQ2ODdkNmQ4OWYxMzEwZmFhOSBsZWdhY3ktdHJ1bmsKKzI2MDE5IGFmNzE5MTRkOGJkZjBkZmU1ZGI0N2Q5OTVmZDBhMDBhYmI4MzdkYmMgbGVnYWN5LXRydW5rCisyNjAyMCA0MDkzMTFjNzgzODM2NTNkNjgxMDk5MzE0YzA0ZDk5ZTFiNzdhZWNjIHJlbGVhc2UyMi1tYWludAorMjYwMjEgYmNjZDQ2MTNjNDk2YTMwYmIxYmFkNjQxOWNhNzg0OWJmNTllZjZkOSBsZWdhY3ktdHJ1bmsKKzI2MDIyIDQ2NDA3ZDBhNjAwMGY1ZWUyODhiNWFkOTQ4ZTQzMjBjY2E2YWU3MzEgbGVnYWN5LXRydW5rCisyNjAyMyBjMTZiZWE3OWY0ZGIzYjRlN2M1MWE1MTMzZTczMzk3NWFlMjQzY2M4IGxlZ2FjeS10cnVuaworMjYwMjQgMWFlYTdhZjA5MjYwZTdmMjE0ZjNmY2U1NGQyMmYyMDFjMmYxZjkxMSBsZWdhY3ktdHJ1bmsKKzI2MDI1IDlkMmE4ZjZiMDZiNmZiOWM0NWQ3NzZkZGRmNDE4Yjc3N2RlNTI1ZDIgbGVnYWN5LXRydW5rCisyNjAyNiBmNjNmMmJjOGJkYmE2ZjBkNWQ4ZTQyYTNlZGU3YjUwMzRiMzU3Mjg3IGxlZ2FjeS10cnVuaworMjYwMjcgNDVkYmZjZjBmYTE5ZmJjYjgwN2E1NmIxOWVlNzE1NWNjMWNlMDU1ZCBsZWdhY3ktdHJ1bmsKKzI2MDI4IDUzMmMyN2E3MzViN2I5MjViNjY4ZGQ5ODEzYWE5Y2M5NGU5ZjM0OTQgbGVnYWN5LXRydW5rCisyNjAyOSBkOTcxZDFlYjcyZjZlMjRmZmFkOWI5YTlmNmE5MDI0ZGJmYTdiZTI5IGxlZ2FjeS10cnVuaworMjYwMzAgM2UwZGE4NDkzOWQwYjMzNDA2YmNlYTA4MzYyYzYwZGRhN2EyZTRmOSBsZWdhY3ktdHJ1bmsKKzI2MDMxIGJmM2IwN2M2MmNmN2JlMjRlNDY5ZTNjNDE4YmE2NTQ3NGY2OGJhNjAgbGVnYWN5LXRydW5rCisyNjAzMiBmYzJlN2UzOTdiYzY2YmY5N2E4NjA5MDE3ZGViNDNkM2I5MjIwNWMwIHJlbGVhc2UyMi1tYWludAorMjYwMzIgNDA0NWU2ZTkyZmFmYWJhZDQyZjZjOTk4OWI2NzA3NmZiYWQ0NTJjYSByZWxlYXNlMjItbWFpbnQKKzI2MDM0IDg2Y2U5ZWUxNDA0NTBlMTZhNWJhYmZlMTRkMDNhNTdiNTZjNDAwYjYgbGVnYWN5LXRydW5rCisyNjAzNSBiOTY3NDBjNDJlODA3MGI3MmQ0MzE1NjQ1NjA4OTQ1OTEyODM2NTVmIGxlZ2FjeS10cnVuaworMjYwMzYgOTExZmUwNzkzMDUwNDY4MTMxYWE3ZDkyYzdkODY2YWNkNzc5Zjc0ZCByZWxlYXNlMjItbWFpbnQKKzI2MDM3IDU3ODExYzM1NWYzYWJjZWU1N2IzMzMwNzE4ZTY0MmM5ZTExYmY1MjEgbGVnYWN5LXRydW5rCisyNjAzOCAwYjU4ZWEwNzQ5NWNiMDdlYjhmZmNkOGZhZTRlODc4MmVlM2M2YjhmIGxlZ2FjeS10cnVuaworMjYwMzkgODgxYTZjMmQ1ZGIyYjhjZDZmYWJlOGZjYmJiMTkzNTZiOTdjOWEwZiBsZWdhY3ktdHJ1bmsKKzI2MDQwIDE4Y2ZlZjAxMWFiZTdlNjhhZjVlMGZiZGZjY2NkOGY4MWNjOTM0Y2MgbGVnYWN5LXRydW5rCisyNjA0MSA0ODhiOWIzZjU5OWFkNDEwZGIxYzEyNjc1OTdjODVmYTliZTQwYzkwIGxlZ2FjeS10cnVuaworMjYwNDIgN2MwY2NhYzk3ZjhlZmQ3ZDg1NjgxM2NlNGM4NTRkM2VmMzNmMTg2MSBsZWdhY3ktdHJ1bmsKKzI2MDQzIDEyMGU0YmEwNTUwYmQ3MDk3OTc5MjkxYjg5NzE5NWRkOWRlMmY4ZDcgbGVnYWN5LXRydW5rCisyNjA0NCA0NGJlNWU3NGYxNzI3YmU0NTU5MGNmMjIxZGJlYjg4YmY5NGNkYjI4IGxlZ2FjeS10cnVuaworMjYwNDUgNmYyZjFiMDRlODJlMGRjOTZkNzA1MTg5NzczYzQ4OGJjYzNkNDg4ZiBsZWdhY3ktdHJ1bmsKKzI2MDQ2IGZkMWI4ZWJlNGVhZTQ4YjZkNDdhMTg4MDMyNTM5YzIwZjYyMGJlYmEgbGVnYWN5LXRydW5rCisyNjA0NyBiNDU3NjM2NTM5ZTgwZDUxMTExYjBkOGY1NTY2MDJjOTViMDVlN2MyIGxlZ2FjeS10cnVuaworMjYwNDggZjhiZDkzMDY0NGFhMzQ0ZTU5NjllZmViOTRjYzYzNmM3MzE0NjBmNiBsZWdhY3ktdHJ1bmsKKzI2MDQ5IGVlZTMzNzJjMmY5NjJkNDg1NTI5MmFhNTRkNDcxNThmZTgwMDVhOGQgbGVnYWN5LXRydW5rCisyNjA1MCBjMDU5NmY4NGE4ZmIxNDliMzc4MzcwOWQ5NTE2MjhjZDZlYjE1MGI2IGxlZ2FjeS10cnVuaworMjYwNTEgNjE0MTY3ZGYyMDk2MGE2MmJjZGNmY2Y2MGZhZDlkZTk2ZjM0MWU1ZCBsZWdhY3ktdHJ1bmsKKzI2MDUyIDAwYjI5NzJhYjRhNGIxYTFiM2U5OGE2OTVmMmYwOTU1NWJlYmJkOWMgbGVnYWN5LXRydW5rCisyNjA1MyA1YWUzYzMxNjczZTRkZDY2MjFhN2ZmNzAzOGJkZjZlYWIxYzI5MWMyIGxlZ2FjeS10cnVuaworMjYwNTQgMmMwMmNmMjc4ZjAyODJmMTdlYzk1OWFkNmQ5ZmMxMzA2NTRkZDcxZiBsZWdhY3ktdHJ1bmsKKzI2MDU1IDU5NjE2NzY0N2JjZjU3ZGE0NjI1OWFmNjNjYjM1MDU0MzkwNTkwZGMgbGVnYWN5LXRydW5rCisyNjA1NiAxNzM4NzEyOTMwMzQ0YWEyNGM0MzEzOWNkMjk1MzNiZTVmM2UwNTFiIGxlZ2FjeS10cnVuaworMjYwNTcgZjA1ODNiMWU5M2FiMGY4YTUyNjNmNGQ2MzlhYzJjNDI4NjdhYjM3YyBsZWdhY3ktdHJ1bmsKKzI2MDU4IGZhMGYzNWY5NDRiNTYzMDBkNGFmYTk4MzBmM2IzYWJkNWYwNjdhMDIgbGVnYWN5LXRydW5rCisyNjA1OSA2YmI0Mzg2YjExMTEwMzM0NGNlODgzM2IzNzIxY2YyNzNiYmVkYWMxIGxlZ2FjeS10cnVuaworMjYwNjAgYTRhMWU2ZjU1NTMxOGFlMDIzNjMzMzU3ODkyMjA3MzFkMGQ4NWZiZiBsZWdhY3ktdHJ1bmsKKzI2MDYxIDM1ZjU4YzI5Nzg5OTY0NGNjMzc5MTZiNjFlNjkzN2U0YTkxMzY1ZjQgbGVnYWN5LXRydW5rCisyNjA2MiAwZWVjZTczYzEzYzA4ZGVhZDc0YTA5NWU0ZjgyZDFiZTFmZTBjYjI4IGxlZ2FjeS10cnVuaworMjYwNjMgY2YxYTA1Yzg2NTk1YzEwY2IyMGE0ZmIxNTMwNmNlYTlhZGE2NzU0ZiBsZWdhY3ktdHJ1bmsKKzI2MDY0IGYwN2NhOTk3MjMwNDA4OTI5ZDI0MzFkNTRjOWM2OGFjNjIzMzhhZGUgbGVnYWN5LXRydW5rCisyNjA2NSBlMGVlMDA5NDE3ZGYwNzNlZDFlNDBjNzllYzBlYjljZDAzY2NlYzM1IGxlZ2FjeS10cnVuaworMjYwNjYgMThkY2NkZjJjNDZkODAyNzRlYmJkZDljM2I5ZTM1NjVlNDU3MWY2MyBsZWdhY3ktdHJ1bmsKKzI2MDY3IDg3MDNkMjA1MjMzOTk4NjZmMjkxN2M1N2VjMjUwZjIxZGM3Y2NjYTYgbGVnYWN5LXRydW5rCisyNjA2OCAxNGViZDc2MTA5MDI2Y2FjYzdmM2QzNDc3MmE1MmE5NjA0ZDM3OGUwIGxlZ2FjeS10cnVuaworMjYwNjkgZGMyZjc0NWZjYzY3ZTgyYzdkZTQ0Y2VkZmQ0MmZjZjVjYWI5Mjg1ZSBsZWdhY3ktdHJ1bmsKKzI2MDcwIGFlYTZkZmVhYWFiODQxNjkyYzAyODhkMDBmNWNiMzEzZDczMmU3MTAgbGVnYWN5LXRydW5rCisyNjA3MSAzYWE0YmY3YWMzMWU5ODVmMzUxM2E4NjdhNDcxNzE1MDU5YzU3YTFmIGxlZ2FjeS10cnVuaworMjYwNzIgOGEyMjViZDg3NjNhZDBmZDYwYmRkMzc4OWFlZjllYTRlZDhjOTE4ZCBsZWdhY3ktdHJ1bmsKKzI2MDczIGNhNDY1ZTRkODhiYzFmNzJiYzM2OTM0ZWEzOTVmOTczNDUxMTkxZjMgbGVnYWN5LXRydW5rCisyNjA3NCBiMzgzZGZlMzZlZWU3ZGVhMzZmYjMyYTYyM2U5NWIxYTgwZjIxMDQ0IGxlZ2FjeS10cnVuaworMjYwNzUgY2M4YjczMDQwZTgzN2Q2YmVlMzA3MTE4N2UyZTg2ZDY5NTRhMDMwMSBsZWdhY3ktdHJ1bmsKKzI2MDc2IGNlY2E2Y2M0NDQyMDhjMTA4Y2Q2OTg3ZTI4NDI4MmQ1MDE4MjZlYWYgbGVnYWN5LXRydW5rCisyNjA3NyBlMGVkZmVlYTUxODNiNDYzMDE3MzcyNjgzYWY5MDgyNzUzYjYxNzZiIGxlZ2FjeS10cnVuaworMjYwNzggMjJmZGI0MTZiYTJmMWI0MjlmZWE3NjIwM2Q2YmZjMTEyMmJlYzkxNSBsZWdhY3ktdHJ1bmsKKzI2MDc5IDBiZGQ0MTNhMzQxNjliNDY5NDk2MWIwOTM5MjJhNjE5OGRmNTQyYzMgbGVnYWN5LXRydW5rCisyNjA4MCBjM2Q2MzczMDg5NTRhMzEyM2RjYTg3YWZhMzlhNTMyZTcwOTVhYzZlIGxlZ2FjeS10cnVuaworMjYwODEgZmEwYWM4NDU5MjliMjFlMGVjZTY1YTBhNmI3MzMwOWZiNmE5NWViZiBsZWdhY3ktdHJ1bmsKKzI2MDgyIDZjNGIxOTMwMTZjNjc1YzFjNTAzMGMzMTc2NzlkYWE5MDRkNDgwYWYgbGVnYWN5LXRydW5rCisyNjA4MyAyNTNkZTU4OGYyZmI2NWUyZjE3NGNkZGQ5MjNhZWY4MjU2YjY3Yjc5IGxlZ2FjeS10cnVuaworMjYwODQgYmE2OGRkYTE1ZGYwNjg3ZWNjYTEyMmU3NmIxMDNkYTZiZjBmZTI0MyBsZWdhY3ktdHJ1bmsKKzI2MDg1IDFlMzA2MmU2OWYyY2MxMTAzNTlkMTU0ZTYyYzJlYTdkNDE2OTRiYzcgbGVnYWN5LXRydW5rCisyNjA4NiA5YmFhOGM5YTFlODQzYTk4MTM5YmVjYjY5NTkwODVkOTM4YmFjNmFjIGxlZ2FjeS10cnVuaworMjYwODcgZmE5NTU5YzViMTAzNzE1MzI2NDM2YmEwZjU0Njc2MmQ1Y2Y5YjJkZSBsZWdhY3ktdHJ1bmsKKzI2MDg4IGM4NDExMGYwNWRjMzZjNDcxOTc2MDFmNjllZTYyM2M5Y2I1ZjViM2UgbGVnYWN5LXRydW5rCisyNjA4OSAwOTczNjkzZTRhZDIxZDY4OGIzYTQ3NzcxOWI2YWY1N2U1MGVhMTE3IGxlZ2FjeS10cnVuaworMjYwOTAgMTRiNzk4NmE5MmUxMDM4ZmE5MDJjNDA2OTE2M2U3MGFkYTZjYmExNCBsZWdhY3ktdHJ1bmsKKzI2MDkxIGNkZmYzYzdjMWE3NjQzNzkxMGY0MTljZTA0MzVjYjlhZjFjZjc4MmMgbGVnYWN5LXRydW5rCisyNjA5MiA2OTMxZGJkMmVkYjQyMWRiNTIzZTJiOWNlNmIwNzkzZGZkOWRhYWI0IHJlbGVhc2UyMi1tYWludAorMjYwOTMgMGI2NDU1MGE3NDYxMTVjNDdlYjZlODM0MmZmMmMzYWI4ODRiMGE3NSByZWxlYXNlMjEtbWFpbnQKKzI2MDk0IDAwMTU0YTBmZGU2MTc1YTRjODU0ZGY2Yjc1N2IzNDgwN2M1NjRjMmEgbGVnYWN5LXRydW5rCisyNjA5NSBkMjQ2NzAzODRjMzljZDI2MGM0MGVmZmZiYzM2N2NhMzNlZDVkNGYwIGxlZ2FjeS10cnVuaworMjYwOTYgMWFlNDIzMjYyZmM5ODY4MTVlZDk2OGFjMTljNjc4OTA0YmRjNjQ4ZCBsZWdhY3ktdHJ1bmsKKzI2MDk3IGYwMmVhOGU4MjRiMGMxMzc4OGUxZTE0M2JkNzYxMjI4NTNjM2Q3ZjAgbGVnYWN5LXRydW5rCisyNjA5OCA3M2U4MjcyMmIwM2MzOTJmMTU2YTFhYjA1OTdkNjNiNTlkZDRiN2U5IGxlZ2FjeS10cnVuaworMjYwOTkgODEwYzE0ZjI0MzczNmQ5MjJiNzIwMzNhZDFkOThlYjAwZGQwNzRjYyByZWxlYXNlMjItbWFpbnQKKzI2MTAwIDgyNmJjMTUyMmQyMjEyYzNmNGViMzAwMDc5MWJhNDZkNDBkYTc0YjEgbGVnYWN5LXRydW5rCisyNjEwMSBlNDQ5YzgxYzFjMDFmNGUwMmM1MGU4YmMxNTZjMWUxM2UzOWNiYmQwIGxlZ2FjeS10cnVuaworMjYxMDIgMjcxZDYyMWYwZTlmZGYyMmRhODNhODI4Y2MxOTU1MWJkZTQ4NjAwYSBsZWdhY3ktdHJ1bmsKKzI2MTAzIDc3MWIyYThkNDQ1ZGMzMjFhZDU3M2Y3OWIzY2Q4ZGI3ZDIyYWVmZjkgbGVnYWN5LXRydW5rCisyNjEwNCBmNTFiNzc4ODQwMTI4N2VmZTNlZjZlNjdkNmNlYzc5NGY2Y2Q0ZWFjIGxlZ2FjeS10cnVuaworMjYxMDUgNzM2MWVjODgxODhhOTFlMWExZThjNGJkNGZlM2Q1ZGRiZTU1Yzk2ZiBsZWdhY3ktdHJ1bmsKKzI2MTA2IDI4MGU3YTIwZTMxYTVjODY4MzRhYmU0YWE5YzIzMDliMWY5NGM5ZDcgcmVsZWFzZTIxLW1haW50CisyNjEwNyBjMTE4ZDA5NWJkZGViNWRiMTczNmNkYWZmZDIyZDVjNzhjM2ZjNzVjIHJlbGVhc2UyMi1tYWludAorMjYxMDggZmVlMmY2NmYzYzE2NWVmMGMxNjE5MTRmYzJiYWUzOWVmNjUzMDI2OSBsZWdhY3ktdHJ1bmsKKzI2MTA5IDFiZGYyMTdiYWQ5MzA5Yjc2NjkxNmE0OGZhMGU3ZGZmY2JjMTBlY2QgbGVnYWN5LXRydW5rCisyNjExMCAyMjI0YWZjNjNhNWJiOTYzZmYzNTE0NDRkZDI0NGQxMDA2OTdiNDRkIGxlZ2FjeS10cnVuaworMjYxMTEgNTNlZDlkZDZiY2Q1ZDQ5MDllNzk5NDM2MGYxZDgxMDdiNTRiMzk2NyBsZWdhY3ktdHJ1bmsKKzI2MTEyIDUyMjQwNWFiMzVjMWFkMmM2MjI4YzA1NjI2ZDZmYzhmYmZhYThjYWEgbGVnYWN5LXRydW5rCisyNjExMyA0YzEwZjE2OTI1MjMyNjQ1NzlkMTYwYmZiNjdkNDllNDIzOGE2NmYwIGxlZ2FjeS10cnVuaworMjYxMTQgNDA4MWVmZjkzMmZlMjg3OTI2YjNjYzkyMTIyNTk2NWRlYzI5NTlkOCBsZWdhY3ktdHJ1bmsKKzI2MTE1IDJhYTk0OWQwMmQ0MDUzMjhkMzEwNGM0MjU3MjM4Njk5MDE4OTFkNjAgbGVnYWN5LXRydW5rCisyNjExNiBjYjVmY2EzY2U3OWE5ZmE3OGM2YTcyYTc5MDg4ZjA3ZDVhMWNkZmQ1IGxlZ2FjeS10cnVuaworMjYxMTcgZmQ0NDk5OWU3ZWFkNDIxN2ZkNTEzZjUwODVkYWRmNTkwNjIxNTRkZiBsZWdhY3ktdHJ1bmsKKzI2MTE4IDY4NzFlNjc0NWFhNTQyMTBhOWIxMDJjZThjYTNjNDc1NDhiZTNmMjggbGVnYWN5LXRydW5rCisyNjExOSA2ZmE0NmMyMTc2NmQ5MjMxZGRhYThkYzdjYWFmZGE3NDFiZjYxNDg5IHJlbGVhc2UyMi1tYWludAorMjYxMjAgZTcwYzliN2FhZjNkNjg5NjRlMWZjM2M5NjJlMjU0NzU0ZTVhNGRmMiByZWxlYXNlMjItbWFpbnQKKzI2MTIxIDg3MTk4NjYwMTRhYjM2YTkwOWY3NTYwYjI4ZTQ2NDJhYTYyMTBjNjMgbGVnYWN5LXRydW5rCisyNjEyMiA5OTMxZjE1NGJlOTg4ZjVkODhkNGU5ZWQwYTg2NWRlOWQ3MTcyYTlmIGxlZ2FjeS10cnVuaworMjYxMjMgODE3YjQ5NGM5YjVlNDk3YjRmZDAwMzc5NzBhYzBhNGUyYTJhYjdhNCByZWxlYXNlMjEtbWFpbnQKKzI2MTIzIDViNTQ2NDBlNzJiNjZiOGMwODU3OTVlMjhlZjc1NmQ1OGI5NTVjNmMgcmVsZWFzZTIyLW1haW50CisyNjEyNCBhNzg4NGQ3ZDJkNDg5MDBmOTVkMmQwZDQ2YWY5MzRkNDQ5MzE5MTI4IHJlbGVhc2UyMi1tYWludAorMjYxMjUgMzQyODIyOWYxMmJiMTlhMjg2OWMzM2ZiNDJlMDllODUzNDJjNzQ1ZSBsZWdhY3ktdHJ1bmsKKzI2MTI2IGFkM2NlNzMwMTZiZmFhMWJjNmNjNWU2Njc3YzllNzY3MzYzYWQxYzAgbGVnYWN5LXRydW5rCisyNjEyNyBkMjZkODU3NWFjNjIxY2YyZmM4ZWQ2Yjk4MmVhYjMyOWJlNGU4Zjg0IGxlZ2FjeS10cnVuaworMjYxMjggNTRlYThhOTNlY2Q3ZTYyMTk3YjNiNmYzMzJkZWNhZjhlYzIzYjM2YSBsZWdhY3ktdHJ1bmsKKzI2MTI5IDNhNTA2NTAwNWZjZmQxMjExMmFhMmIzMmNkMzY1YTU4OGE1NTk1MTQgbGVnYWN5LXRydW5rCisyNjEzMCA5ZjUwOWU0OTBmY2M3OWNmZmVkZGIyZDRmNWYzZDYxZWI2YmYzMDhlIGxlZ2FjeS10cnVuaworMjYxMzEgMzE0ZTE0MTZhYTVkNWY1ZGNjZTYwMWI0YTU2NmUxOWE2NDJjNThiOSBsZWdhY3ktdHJ1bmsKKzI2MTMyIDI2MGExNzIwZjYyOWM0ZmYzNzAxYWI0YTRkNjYyMzY2ZDY1YWUxNTggbGVnYWN5LXRydW5rCisyNjEzMyA1OWQzOTEzYTI5YzQ0MzkzMjNjNzQxMGE3YmI2NDhjOWVlYzI0ZmM5IGxlZ2FjeS10cnVuaworMjYxMzQgYTZmOGUxMjg2YjE1NTZlZGVlYmQ1MTIzYWUwNGQ2NmQ3NzJhM2I2OCBsZWdhY3ktdHJ1bmsKKzI2MTM1IDAyZmRkZjdjMjVjMmRlM2UzMmJmMDc4MTgzMzI3YjM1MDNhMGYzYjkgbGVnYWN5LXRydW5rCisyNjEzNiA3NGRlODY0MTgyODQxMGUyNTYyZGI1N2Y3MjY0NmNmNWQyYjE2YzE4IHJlbGVhc2UyMi1tYWludAorMjYxMzcgZDZlZjk1N2JmMjkwZmM2ZTY1ZjcxZmQ3MjM0MmM2OTQxNjFjYTJlYSBsZWdhY3ktdHJ1bmsKKzI2MTM4IGE2YThjNjllYzBlN2M1OGUxM2I5MGNiNWJhZWVjZWZhNjNjYzUzNjcgbGVnYWN5LXRydW5rCisyNjEzOSAzNjE4NmFmM2MxMjUxNjRhNzBlYTFmYWQyYTU3YTk3MjcwZTZiOGNhIHJlbGVhc2UyMS1tYWludAorMjYxNDAgMTQ5ZmJiYjAzOTE1NzViNWY4ODViN2M5MmUwNzI5ZDk2YWNlZmE4NSByZWxlYXNlMjItbWFpbnQKKzI2MTQxIDVmN2Q3MGFiNzRlZWZmZGZjZGRlNzIxY2RhNWZhZWI3MTVjNGFlZTggbGVnYWN5LXRydW5rCisyNjE0MiBlYzY3ZmNlM2ZhM2NlZDRhM2M4ZDhjYzQ4Yjk2NTcwZmYyZmNkZmJmIGxlZ2FjeS10cnVuaworMjYxNDMgZDk5YTFkZGY5NTE4MDUxNzhkOGYxODVhN2YzMjZhODJiM2ZhMWJlMSBsZWdhY3ktdHJ1bmsKKzI2MTQ0IDAxYzVhZTZmYzViYmJhM2E3ZTFhYTE1N2M2NmQxZTU1ZTkzZjMwZGUgbGVnYWN5LXRydW5rCisyNjE0NSAwYjJjMDg3NTQyYmNiZmYzNzA0NjIyMzQ5YWJiOWQ5YzViNWIwNmJjIGxlZ2FjeS10cnVuaworMjYxNDYgYWE4ZDU5ODIzYWRkMWE4ZTdmN2U4YTdmZThjN2Y3MTBhOTdlM2M4YiBsZWdhY3ktdHJ1bmsKKzI2MTQ3IGE4Yzc1Y2Y3NGRjMTQxMTJjMGVjODBjMmMyZGJmNjVhZmM3MzlkYTggbGVnYWN5LXRydW5rCisyNjE0OCAwMjhlYmM4ZmIzOTA4YThjZGI3YTk0MGJlMWExYzQ1YzQ0MTcyODY4IGxlZ2FjeS10cnVuaworMjYxNDkgMjIzOTZmNzdjMzU2YWEzMDlmYjhmMDIwYTY4OWQ4NDM5YTQzM2I5MSBsZWdhY3ktdHJ1bmsKKzI2MTUwIDk3YTM0NjQzZTU0NGE5NzA1ZGRkZDQ4NzgxZDgyMTgzMjEwNTExMmYgbGVnYWN5LXRydW5rCisyNjE1MSAwNjY2OGQ4ZDkzNDNmNDY0ZDkxMDhkM2QyY2FiYWU0ZjU4YjM5YjY1IHJlbGVhc2UyMi1tYWludAorMjYxNTIgOWFjYWI3NmIwMDE3OGQ2NDg3ZDY0Y2IwMGQyZWE4NTAwM2EzYTM0YSBsZWdhY3ktdHJ1bmsKKzI2MTUzIDE5MjI5MTVjYjczZDdhOGFjY2M1MWZmOTVkNTQ4ODA4MTllZjZmNjIgcmVsZWFzZTIyLW1haW50CisyNjE1NCAzYzg3ODE0OTJkMWZkYjhiYTM5NTBlMmU5NGE0Zjc1ZWViMmU0YTdiIHJlbGVhc2UyMS1tYWludAorMjYxNTUgZjY2M2ZmYmU5ZTVjNDBkNGEyYWM1OWU4YTg4ZDVmMDhlYTkyYjhhZCBsZWdhY3ktdHJ1bmsKKzI2MTU2IDRlZDA2ZjhhYWRkMzc4NjMyODhlMzZkYWE2ZWUzMTZlNGJlOWJhZjIgbGVnYWN5LXRydW5rCisyNjE1NyBhYzVlMWQ5MDI5Yjc5NDUyNmM3ZDMyMDgyYzdlMzA4MGQ5YWU4ZTExIGxlZ2FjeS10cnVuaworMjYxNTggNjkzZTAwMTY0MDgxYWVkY2NjOGNmNDc1MDJmODg0OGU4Y2I2ZjE1NSByZWxlYXNlMjItbWFpbnQKKzI2MTU5IDBlYjgzYWFjZTA3MTY2N2RhOTVhODMyZmRlYWFhODZmMzZhZjM4ZWMgbGVnYWN5LXRydW5rCisyNjE2MCA1OGIyZjQ2MjZiNjRkNzhhMWYxODQ1ODc2MjQ3MWY4NDU1ZGQxODlhIGxlZ2FjeS10cnVuaworMjYxNjEgMjEwMDg4N2I0N2NiYjliZTJjZmVjMWYzYzhiNmFjZGRmODFmMDg1ZiBsZWdhY3ktdHJ1bmsKKzI2MTYyIGYwMjc3MTQ2YWExNmRiNjQ5ZjdkM2Y5YTcyZjliNWFhNDQ4ODVmOTMgbGVnYWN5LXRydW5rCisyNjE2MyAxN2ExNzUxYWQxZDkwMjFmZWE4NGExOTYwNWMzODk5YjdkZmRmNzdkIHJlbGVhc2UyMS1tYWludAorMjYxNjQgMjFmMzUzMTI0MTQ1YzQzYTM5MjFjODIyNWU5ZTU1NzMwNWNmOWFmZiBsZWdhY3ktdHJ1bmsKKzI2MTY1IDc3MzQzYWEwM2UyZjM2M2M3YjQxMDQxNjEwZjc4YzgzMzRjYjYxZjUgbGVnYWN5LXRydW5rCisyNjE2NiBmMWFmOGFkMTEwMDBhMDg5YmUwZjlmZGI1YmEzNzJjMTk4MmMxN2EzIGxlZ2FjeS10cnVuaworMjYxNjcgYzgxNWUwMDNkYmNkOGJkNWMwY2U0NTg0NDExNGY2MTdmNjU2YmU0YyBsZWdhY3ktdHJ1bmsKKzI2MTY4IDg4MmVhNWNjNzY4N2FiYmU4ZjRjNzBjMDI0ZDg4YThlM2FkNDMyOTcgcmVsZWFzZTIyLW1haW50CisyNjE2OSAzMzM3YzQxYzEzMmIxMTRhOTRjNTJiNTBjMTg0ZmQ5ZjJjODAyNDJhIHJlbGVhc2UyMS1tYWludAorMjYxNzAgMmI3MDI1YTIzMmUxZjdmNDk0Y2M5OWIzM2NmYjU4OTMyYTZkM2UyNCByZWxlYXNlMjEtbWFpbnQKKzI2MTcxIGEzYmYyYzk3ZTgwOGU0MTY0OGQ2NGIxYTVmYTY5M2YxMWI4OGY3MTMgcmVsZWFzZTIyLW1haW50CisyNjE3MiBkZDg5ODhjYTRiMTQ2NmQzNjdhMThmY2MwZmVhODYwNTYxNDUwNmRhIGxlZ2FjeS10cnVuaworMjYxNzMgMTJiMDAzYmU1ZDk2YzUzODk3NzA0N2EzMmY2ZTVhMWZhZTdjMmNkMSBsZWdhY3ktdHJ1bmsKKzI2MTc0IDUzM2NkNTE5NzU3NWRhNzdjMDdmMTFhNjZhNWQzNjIzYjA1OWZlNzAgcmVsZWFzZTIyLW1haW50CisyNjE3NSA0M2VlNzM3YTFiN2YxMGFhYTBhOWJkNTkyMjhmMzdiNjg5ZGYzY2Q3IHJlbGVhc2UyMS1tYWludAorMjYxNzYgMzUxNTc2NzEyM2Q4YzhjZTUzOGZhMmUzNTFmNmQ4NmVmYWExN2IzMCByZWxlYXNlMjItbWFpbnQKKzI2MTc3IDM1Yjc5ODQzODUyN2ViNjJmZDc2MmI2YjQ1ZjViOTg2MDdhNGFkZmIgbGVnYWN5LXRydW5rCisyNjE3OCA2YWZmZmZmMWZmZjFlZWE1N2ZlZDAzMjI2YTQ1OTUxNDZlMGZhNzg1IHJlbGVhc2UyMi1tYWludAorMjYxNzkgNDNjZWUxODE4MjQyMGExY2M2ODUzYzYwMzI5Yjk1NDRmNTRmZTYwOCByZWxlYXNlMjEtbWFpbnQKKzI2MTgwIGMxYWVjNjMyNGFkNTRlMGE4ZTUyNjJmZTNjZTNiMWE2YTI3NDg2MWEgbGVnYWN5LXRydW5rCisyNjE4MSAwYWNmNjgyMGQ5ZTM1MTAzMzU3M2I2NDg4ZWE3NmU2M2EzZTA3MzIwIGxlZ2FjeS10cnVuaworMjYxODIgNDJjYzg3YzQwMTAzNmIxZjMwNjdiOTVmNTU4ZmJhYWRhYTVjY2Y5YSBsZWdhY3ktdHJ1bmsKKzI2MTgzIGM1NmVhYWQzYTBiMzlmMmFlMGY1MzgyNjUwNDJlNjJiYmU1ZjQxM2EgbGVnYWN5LXRydW5rCisyNjE4NCBmODlmMjAxMDg3ZWE2NzVhNTExYjg5YjJhYjI2Yzc3NWZhZmIyYzIyIGxlZ2FjeS10cnVuaworMjYxODUgZjY4ZGRmN2YyMWY4NGE1YjVlMGUyNDJlZDczYTc0NzVjOGYwODE2MiBsZWdhY3ktdHJ1bmsKKzI2MTg2IDhiYTQ5OWVjYzZjOTEyNGM2MDQzYWViNmZlMzI1Mzk0MmQ5OWFiMTggbGVnYWN5LXRydW5rCisyNjE4NyAyOTU1MWY3NDdjMGVkOWQ0NjcxOGQ4NDRiOGVjYzlhYWFjOTZmNzY5IHJlbGVhc2UyMi1tYWludAorMjYxODggM2I2ZjQ4YjU0NjY2ZWNmYTEyMWVhMTY5NjZhNGI3MzQwZjczMmQ5MyBsZWdhY3ktdHJ1bmsKKzI2MTg5IGFhZjU3MmUzMzRjM2M4YmEzOTQ5ZGFhMTM2YWNiM2I0ZmJmMjM1YzYgcmVsZWFzZTIyLW1haW50CisyNjE5MCBkM2NmMzgzZGYwOTZjMmM4Y2U2NTQ1YzA4NDM3MjMwZTM1NzMzOWZmIHJlbGVhc2UyMi1tYWludAorMjYxOTEgYTlkZDVlNmQ2ODA1NjNlMDc4NjNkNzRmN2Q1OGMyODAzMTE3NWYwMyBsZWdhY3ktdHJ1bmsKKzI2MTkyIDNhZjhhYjFiMDVmYzdmMTI5MDIzNjZmMTNiN2VhNTg2MTdhNzNiYzUgbGVnYWN5LXRydW5rCisyNjE5MyA1ZWRhN2RiMDA3ZDZkNzhlNjgxMTkxNmUzMDVjODM2YzA1NWM0YWUxIGxlZ2FjeS10cnVuaworMjYxOTQgYzg2NWNmOGJlZTQwZDY5NTFiMDMyMWQyNjBjZjEzMjg3ZDMzZmRkMCBsZWdhY3ktdHJ1bmsKKzI2MTk1IDA5MDg3MjllOTRlMGYxNWYxZDZkODcwMDE1OTc4ZTY5ZjM5YWI2ZmYgbGVnYWN5LXRydW5rCisyNjE5NiA3M2QxNDViZmQ4ZTQ1ZTBiMGNjMTg5OTZmNGY0MWY4OGY1YmRhMmY0IGxlZ2FjeS10cnVuaworMjYxOTcgZjFmNTdiZjA5MDkyZWJlNmMyNjk5MzNjODc1OTUwZTE4NzkzMjliMSBsZWdhY3ktdHJ1bmsKKzI2MTk4IGVmMmZiY2U3MTczNjlkZmNlMDgwNzUwY2VlMjNmNGU4ODgxYjY3ZjIgbGVnYWN5LXRydW5rCisyNjE5OSBkNzUzMTMwNzQzNTU1MWEwZGI1ZjU4NzIwYTcwYjQ5ZjAxZGFhYTBhIGxlZ2FjeS10cnVuaworMjYyMDAgMmVkZGNlNDRiM2JlZGJjNzEyMDUxMjg1YmZkY2U5ODg1OTVjMzlkMyBsZWdhY3ktdHJ1bmsKKzI2MjAxIDE4Njk2ZmMzNTA2MmY2MmFhNDBjMTM4NDkwNDFkZGMwNzI0NWYxMDkgbGVnYWN5LXRydW5rCisyNjIwMiAzOWVhMDlmZjU3MzRlY2NkZjFjNjI3MmU1ZjE1MmIzZmRkYWM4ZmZiIHJlbGVhc2UyMi1tYWludAorMjYyMDMgMDc5YWJlMDVlOGJjODFjM2Q4YjkyNmVhNWJhZWMxMTkwNzdkMzFmYyByZWxlYXNlMjItbWFpbnQKKzI2MjA0IDM4Mjc5MWRkY2UxYzE4MzJmMDUwZjVlNmRiY2ZmOTA2YmUxNzY2YTIgcmVsZWFzZTIyLW1haW50CisyNjIwNSAyMTZkYWQ3MjA5YmM3MDEzMmNhMjI5YjkyMGQ5NGFiMjQ0OGViNzIwIHJlbGVhc2UyMi1tYWludAorMjYyMDYgZDcwMjk2Nzk0MzVmN2VjMjkwNjBjZTE4MDU3ZTE0M2U5NDU1YmRlMCByZWxlYXNlMjItbWFpbnQKKzI2MjA3IDY4MDcxYTcyNjk3MDZiODFiYTU3OTUxNjY0NGMwMzFhZGI0YWNlZDIgcmVsZWFzZTIyLW1haW50CisyNjIwOCBmNjA5M2JhYzlmYjY0ZmUzNGYyNWI2ODRmNzVlNjRhZjc3NjRlODc1IGxlZ2FjeS10cnVuaworMjYyMDkgZTU4OWU0NzNmMjMyZmJmNzdmODllODQxOTc4MDFkZDc5OTVkNDBiYyBsZWdhY3ktdHJ1bmsKKzI2MjEwIGQ2ZDY0MjM5YWEwNTE1OGEyZjc4MzYyYjZjOGI2MjY4MzBkMTY5OGIgbGVnYWN5LXRydW5rCisyNjIxMSBmNjYwMGIwZGI2ODhhNzc2ODBjMDAxZmYwZjdlNTBmNzQ3NzQ4Y2M4IGxlZ2FjeS10cnVuaworMjYyMTIgZWQwMzgwNmQ4OGNkYzk3MjllZjAwNWI5MGQ0Y2ExZjI4MGI2MzRlNiBsZWdhY3ktdHJ1bmsKKzI2MjEzIDZlOWMwZDliZGQ3ZmQ0YTYyNDE3ODdmNDRjZWZlNGE3ZmU1YzJhMWMgbGVnYWN5LXRydW5rCisyNjIxNCAxODhiMGZhMjgwMDdlODZhOThlNTEzNWMxZjAyNWJiNDQ5MjYzMjZlIGxlZ2FjeS10cnVuaworMjYyMTUgMzJlZWM2ZDc5YzkzZjJhYjUxMjYyODE1MGQ0MzZlYjg5ZmRiYjMyNyBsZWdhY3ktdHJ1bmsKKzI2MjE2IDQxNmRiOGQ5NjIxNmI5MTFlYzhhOTU1NGY3NWVjMzNhYTQyNWFjMzEgcmVsZWFzZTIyLW1haW50CisyNjIxNyAyNzNmNTFmNTIwMDAxOTE3ODQ2ZDQ1ZDJlYzgyZjFiZTEwNTBhMzNkIHJlbGVhc2UyMi1tYWludAorMjYyMTggZTI0YjhkMGI2NDcwNGIxMGNlM2IxNTA0MDhiMjE0ZTNkZGJmNzE3NyBsZWdhY3ktdHJ1bmsKKzI2MjE5IDIyZjdlZjdiYTcyYmE0NWNlNTY5MTU5ZGVmNzdkM2Q0NTYxODJmNjggbGVnYWN5LXRydW5rCisyNjIyMCBiYmYwNWFmM2MxOTEzOGQzNTcxNzI1Mjk0Y2Y2ZDIzZGE1ZGE2NzQ0IGxlZ2FjeS10cnVuaworMjYyMjEgMDQzNjdjZmY4Njg5NWY2Y2NiNTgwZjcyZTIwMWNhOTcxYjkwOTg1ZiBsZWdhY3ktdHJ1bmsKKzI2MjIyIGE2NTI3ZDFlZTQ3NDI4YWI2MjI1NjlmMTc3YWJlZDI1ODZlZDQ5NzEgbGVnYWN5LXRydW5rCisyNjIyMyBmOTIzNmNhZDY5ZTYyODBmYTg3NzI0YjdjNGNmZjQ0NjU4NTg4NGY0IGxlZ2FjeS10cnVuaworMjYyMjQgNmY4YTVhZDM5ZTZmZTcyZTFmMGUxMDg1ZDBjMmU1YTdkNDE1ODRjNyBsZWdhY3ktdHJ1bmsKKzI2MjI1IDY4MDRlNDhhMDAzM2I0NjY0NWI4NzhjZDFhNDkxZWM2NjE3NDVmMDQgbGVnYWN5LXRydW5rCisyNjIyNiA3MDE0OTIxODIwYTUxY2QxYWVlYWQzZDFkYTQzODI0NWFkMjM4ZjUxIGxlZ2FjeS10cnVuaworMjYyMjcgYTU2MWZmMWI0ZmZhMWZiYTk3OWUzMzEyZDE3Y2Q3ZDU5YWJkYmE1ZSBsZWdhY3ktdHJ1bmsKKzI2MjI4IGUyZjIxODdjM2QyYzFjYTc5OGVhZjk2OGFiOTUxMzYyNTI1MDRkZDkgbGVnYWN5LXRydW5rCisyNjIyOSAwMGU2NDBlNjgwYmQyOThkYzc3MDk3YzhlZTdkNzc0MTBjOTAzNjU2IGxlZ2FjeS10cnVuaworMjYyMzAgYjFmYTkwZjhiNmMyMTIwM2QwYmYwMzZkYjYyYTc0ZjBlZTk5Y2Y2MiByZWxlYXNlMjItbWFpbnQKKzI2MjMxIGM5MTYyNmQxZjQxMWYwY2JmYTI3NGFmYTE1YjBjMWM3NDVkMzAzNzAgcmVsZWFzZTIyLW1haW50CisyNjIzMiAyNTI0MzhiYjA1ZDk3YTg0YWQxZDg4MWNhNTJiYmFkNjg1NjlkZjEwIGxlZ2FjeS10cnVuaworMjYyMzMgZDQ2MmM3OTBjYzViZDc2OTc4N2Y5YjgxYjc0M2NiMzNlN2JiNzdmMyByZWxlYXNlMjItbWFpbnQKKzI2MjM0IDhkMzM3YjNiNjU1YTNhYTYxNzhhMjY1YjkxZWFjZDk0OGE3NmU5MGQgbGVnYWN5LXRydW5rCisyNjIzNSBjM2U5YTA1MmUyNjhhMDA3MGRhN2IyYTYyOWI3Y2E5ZDU3N2UxNDExIHJlbGVhc2UyMi1tYWludAorMjYyMzYgZTNkZTlkMTlmYWFhZmM2Y2Y4YTE4NDYyMTY2MmVjNmRmYzIyMDRjNiByZWxlYXNlMjEtbWFpbnQKKzI2MjM3IDFhM2IwODY2M2ViZTAxZTdiZjc5YTE2NjA1YzI3MmE0YjE5NDhhYjEgcmVsZWFzZTIxLW1haW50CisyNjIzOCBhNDFhMWUwMDUxYzVkNmUyMDJkZjI5ZDk1NGFlOTFkNzFkNGYwMjlkIHJlbGVhc2UyMS1tYWludAorMjYyMzkgM2E2NzE4YjliNjVhODM4YjI4NzZkNjlkMTExMWZkOWI2ODNmZmFhYiBsZWdhY3ktdHJ1bmsKKzI2MjQwIGUxNDIzZWM5ZTZlYzM2MmQwOTY3YTc1NDQ3N2M0YjdlYmI2MWQ5ZmMgcmVsZWFzZTIyLW1haW50CisyNjI0MSAzODlkNDI5YWRhNzJjNmQ0N2UyM2ZmMzczMmFmOWJmNjIxYTY2N2E4IHJlbGVhc2UyMS1tYWludAorMjYyNDIgNzkyODc1MWJmZGVlNTE4N2FiMzliNmI4OGE0YmIzODUwYTIwOWI4MyByZWxlYXNlMjEtbWFpbnQKKzI2MjQzIDViZTA2NzdkODEwZDAyNmE3OTU1NmQxYWQzOTc4MmQ3Njk2ZmQ4YjIgcmVsZWFzZTIxLW1haW50CisyNjI0NCBkOGJjNjhjYjE3ZTAzNzAxMjhiOWRlNGYzNTBmNDE0YTIwMjAwODA5IGxlZ2FjeS10cnVuaworMjYyNDUgNWQzODMwMDZkMzZiOWQzNjRhNTI0MmMwNjk0MmUyNjQ5ZjUyZTNkOSByZWxlYXNlMjItbWFpbnQKKzI2MjQ2IDI4OWVhMWQ1YzVhY2NjZGMxOWRmYTZlNzc2Nzc2MjRhYThhNjBiYTQgbGVnYWN5LXRydW5rCisyNjI0NyBjMGRkOGJiZGRlNjA0MDgzNDc5NWQ2NWEyZWE2YTQwM2EyOTE2OTZjIHJlbGVhc2UyMi1tYWludAorMjYyNDggZjk3NDczYjM0MGE1ODAzY2IwZGNjZjc2NGU0MzUwNzQyZWJjZDdjMiByZWxlYXNlMjEtbWFpbnQKKzI2MjQ5IDJiM2E2YTg0NGJmZmRiYjllOGRlODUzZmVlNTM1ODY0NjQ5MTExODQgbGVnYWN5LXRydW5rCisyNjI1MCAxNzBmYjViOTQ3M2Y4YTM0MjRkMmE2MGJkNjcyNDQzMTcxYzAwY2Y2IHJlbGVhc2UyMS1tYWludAorMjYyNTEgYWY3MmQyY2YyYzU1ZWI4ODQ5MDA2ZDBlMDAwNjVhODEwYWM1MWQwOCByZWxlYXNlMjEtbWFpbnQKKzI2MjUyIGI4MWQwZTg5MDQxMmNjMWFmMmM0NTIwMmEyODkxM2Y4NDM3MWFkMGIgcmVsZWFzZTIxLW1haW50CisyNjI1MyAzM2IyYTg5YmY0YTZhNWIyNjdiNWQxODNlMjU4NTM2NTcwODZmZGEzIHJlbGVhc2UyMS1tYWludAorMjYyNTQgMWEzNzU2NjFjYzk3MzI5NTAxMDRkMjA1ZTRjNzg4MWJhMGM0Zjc5NyByZWxlYXNlMjEtbWFpbnQKKzI2MjU1IDU3MGE3ODAyNzlkMWE0NjFiZTY0MmUzYjc0YTExY2JhMThmOWVlOWEgcmVsZWFzZTIxLW1haW50CisyNjI1NiBiNWFhZGU5N2Q3MjNmYThhNjNlN2IxOWJiMTYzMGRjNjFmZTJjNzBmIHJlbGVhc2UyMS1tYWludAorMjYyNTcgN2Q0MGI2OTFkYmE3NjM3Y2NiZjc3YTEyOTNkZDIzOGUzNzJlOWJhNCBsZWdhY3ktdHJ1bmsKKzI2MjU4IDhiYWNhNGVjZTY0NTUzNTI3MDdhYjZmYWYxMTEzZDBhZDUyNjlkMGEgcmVsZWFzZTIxLW1haW50CisyNjI1OSBlYTQzNTIzYjViZTc2MjdmNGJhNjIyYjc4YTk4NzhhZWYzNWNjMmQ4IHJlbGVhc2UyMS1tYWludAorMjYyNjAgYzBkN2I1Nzg4Y2JlNjNiYWFjMDI0NDk1MjEwNzM5ZDA2NzdkODk3NCBsZWdhY3ktdHJ1bmsKKzI2MjYxIDg5MTNkZmExMTAyN2VkYWE3YWExMTVjY2ViNzAxNmNlYTliZTlmMTMgbGVnYWN5LXRydW5rCisyNjI2MiAxMWNmZTgzODNjZjg4NzUxZmFkM2Q3OWUxZTZiMmJkMzEyMmQwMDY2IHJlbGVhc2UyMi1tYWludAorMjYyNjMgZmJkZDQwYjkyYjg3MGI3ZmY3YmQ0ZWRkNjIzNmIwNjdiOGI0YWRhOSByZWxlYXNlMjItbWFpbnQKKzI2MjY0IDdlODRkYTljOThlYmE2YjgwODFmYzNjM2NjMWE2N2ViMjNhZWU1N2MgbGVnYWN5LXRydW5rCisyNjI2NSA5ZDI2ZDU2OGRiYjMwNzYzYzVlZTJhYjMwNGIzYTJjYWFhZDkxYjFkIHJlbGVhc2UyMS1tYWludAorMjYyNjYgYjYwODQ0NWIyNWYwMjliMmRhZGM4NWZmMGFmMzFjZWI3MjNmM2NhMCByZWxlYXNlMjEtbWFpbnQKKzI2MjY3IGFjOTliZWQyNGI3ZDEwNmNhNTFiNjA0NGM1MGQ3Y2ExNjk1ODYwZmQgcmVsZWFzZTIxLW1haW50CisyNjI2NyA3ZDE1MDRjODBmYTA3MmI0YmE4NmVkZGExM2ExM2IwYTA1YWU4ZWFiIHJlbGVhc2UyMS1tYWludAorMjYyNjkgNWFiM2U4ZjE0ZDQ2NjM5ZDZjNDBjOWNiNjJkMGQ3Y2Y4Yjg3Njg3MyByZWxlYXNlMjItbWFpbnQKKzI2MjY5IDM5NDc5MDMxNmFhMzgwZDIyZTRkNjcwYmM2OWE2MzllNzI1ZjAzMDAgcmVsZWFzZTIyLW1haW50CisyNjI3MSA5OTAwMWZkOTVlNDhkYjgxNWE4ZmQwMWIzZGQwMTc3OWUxZWU3OGU1IGxlZ2FjeS10cnVuaworMjYyNzIgMDc3M2QyMzIyNGQyYWE2YjU1MDUxY2ZkMDc2OWFlZjNhYzZmZGY3ZiBsZWdhY3ktdHJ1bmsKKzI2MjczIGMyNmFmMWFiYzJjNjIxMzAxMmFkNTkwZjk0MWQ5YTg5ZWFkZmExOTAgbGVnYWN5LXRydW5rCisyNjI3NCAxMjEzM2M4YjgzY2Y1ZjRlZTMyNGNlNzQzYjQwYmZkYWI0OTVlY2VlIHJlbGVhc2UyMi1tYWludAorMjYyNzUgNzI4MWEwNmUzYjU3ZjNiZWJjNTc1MjE0MWViMDNhY2Y1YmI2NTJmYSByZWxlYXNlMjItbWFpbnQKKzI2Mjc2IGZlYjZkMWJjZGQxZDYyZTE4OWRlMjMwNWRjNThlMmNiNTc3M2MxMGEgbGVnYWN5LXRydW5rCisyNjI3NyA5MDgxYzkyYTBjYzg1ZTQ0ZmM2N2VjM2ZjYTczNDQ5YmZmZTg3ODFkIHJlbGVhc2UyMi1tYWludAorMjYyNzggOGEwMmMzM2VkMmMxOGJiMzg0MGIwOWIxZTBmNWU0N2ZjNjViMDFlMCBsZWdhY3ktdHJ1bmsKKzI2Mjc5IDE1YzE4YmM5ZDcxNTY1ZmU3ODc5NDhmZGU2YTAxZjBlYTMwNjljYWUgbGVnYWN5LXRydW5rCisyNjI4MCA1NDIyOWMzNTEzMmU3NzUxZjFiZDA2NzQwYTJmOTQwYThiZGU1NmIzIGxlZ2FjeS10cnVuaworMjYyODEgMjM5MmFmMDVmMDUyNmI1NjAzMDAwYjc4Y2U1YjhmNjFiOWFmMmE2NiBsZWdhY3ktdHJ1bmsKKzI2MjgyIDNjODc2ZmYyOWE4M2VkOWVmZGU0OTI1YTE4Nzc2YWI1NWJiYTBiNjcgbGVnYWN5LXRydW5rCisyNjI4MyAzZjIxZTRlMzkyNjgxMDNmMjE1NDM1MDkyMjliOTVlZmNjYzVlMDgxIGxlZ2FjeS10cnVuaworMjYyODQgYTVlZWIyODhlMDIwZjczMGM5MGQ2ODQ5ODExOWE0MmVmNWEzZDQwOCBsZWdhY3ktdHJ1bmsKKzI2Mjg1IDA3N2NlOGI1ZDgzYjU5YjczZTczYzdhYTVkMTAzYjQ1M2YyYmVkYTkgbGVnYWN5LXRydW5rCisyNjI4NiA0YzQ5OTQ0N2NjNDlmODg3M2VlMTg1ZGE4ODlhOGU5NDVkYjIwMzgwIHJlbGVhc2UyMi1tYWludAorMjYyODcgMzMyM2YzZjQyMmRiMDlhMTIyNGNlMGI5M2ZlZDc5ZjQzM2RlNDQ0YiBsZWdhY3ktdHJ1bmsKKzI2Mjg4IGUyMzM4MWZhNDc1MDM4MDJjZDE0M2JmMmFmYTkzYzllNDQ2OGZhZmQgbGVnYWN5LXRydW5rCisyNjI4OSBlMmRlYzNjZGYzYzI2ODBmZmQ3ZTg2MmRiYzgyYmZhMWFjYTY3MTY5IGxlZ2FjeS10cnVuaworMjYyOTAgZTMwN2E5NGRkNzdiZmRjZDViN2RlN2RiMjQwNWFhYTUzZTg3Njk3NiBsZWdhY3ktdHJ1bmsKKzI2MjkxIDI2N2I5NzMyYmY0NjU1MDBiMmEwNDg2OTkwNGY2ZjZmMTE3YmY1MWQgbGVnYWN5LXRydW5rCisyNjI5MiBhOTZlN2U1ZjM0MDc3MTVhNzAyMzJmMmE1ZmM3OGNmODZhMTE1MmI0IGxlZ2FjeS10cnVuaworMjYyOTMgZjc2Y2E5ZmJjN2E0NzYyYzQ4ZDYzMDc4YmM0NzMwNDMzNjE0NDQxMyBsZWdhY3ktdHJ1bmsKKzI2Mjk0IDMyYTliMTlkYmExZGQ2NzAwYWUzYjdlOWJiYmIyYTI2ZTIyMzI1YmQgbGVnYWN5LXRydW5rCisyNjI5NSA0NGVlNjhhYzVlN2Y5NjFiNmZjMzk5MTQ3ZjBjMTdjMjQyZTg2YjJlIGxlZ2FjeS10cnVuaworMjYyOTYgZDRmOWUxOWI4YzBiNDI3NjBhMzg3YTdmNDgwZDU4OWY0NzRkNzI5ZSBsZWdhY3ktdHJ1bmsKKzI2Mjk3IGYxNGU0NTUwYjJmM2NlYThjOTNiNzdhNDRkY2Q3ZWJiNDE2MDZjYTEgcmVsZWFzZTIyLW1haW50CisyNjI5OCBhNTRiMjNiMmYxNzIwYzMzNzI3MWI4ODdmOTBkZWNhYmQwNWJlYmJlIHJlbGVhc2UyMS1tYWludAorMjYyOTkgNWM1NTM3NzJjYTU0YzNmZDRkZTlmMGJiNGU5YTg0YzA4NmE5MTZjNyBsZWdhY3ktdHJ1bmsKKzI2MzAwIDUzNGFhYjViY2NlYTQ1YjNjNmViZjA2NDQ5ODIyZTJkNjYxZDYzMGYgbGVnYWN5LXRydW5rCisyNjMwMSBhYjY3OTkzMWFlMGQxNzE3MGZiZmEwOTAyYTgzOGNjZGVjYzk2OWZkIHJlbGVhc2UyMi1tYWludAorMjYzMDIgMDU3YzVkNzljOTg4YWRkYjc3OTc2ZGQ3Yzk4ZjU4M2U3YjM3NmM5ZCByZWxlYXNlMjItbWFpbnQKKzI2MzAzIDk3OTM5ODM0YTY3MzUyMjAxYTRkMmM1YTU4NThjNzZhNDgwMGQ4MDkgbGVnYWN5LXRydW5rCisyNjMwNCBjODc1MGQ2M2RjMzU1ODQyNjRkM2NmNzFjMTNkYThkMDFlMDRkMDMxIGxlZ2FjeS10cnVuaworMjYzMDUgNTBjOWMyNDE0NjNkMjFhZWFmMTZiZTA4MjA4ZGIzNmZiNmE0MjhlMyBsZWdhY3ktdHJ1bmsKKzI2MzA2IGMwNDkwNmZhMTc4Yzg4YmIwMjRmNDdhNjQwNjdkZjRjN2EwMDdmYjYgbGVnYWN5LXRydW5rCisyNjMwNyBjYzUwYTA5MWY1NzNhZmZjMzExMmRjY2VjZjNkYjg0NDg2NDhiZjk5IGxlZ2FjeS10cnVuaworMjYzMDggMWE4YTc0OThiMGJiMzcxYWNlMjJkZGZjMmQzYTU0NDM1NDZmNDIxNCBsZWdhY3ktdHJ1bmsKKzI2MzA5IDZjYjUyODI5ZGExYTJhYWM2NzY5NmMwYjQzOGM3YzIwYTk2ZWVjYmYgbGVnYWN5LXRydW5rCisyNjMxMCA1ZjU0NTRhNDhiNWFiOTZmZTM5MzM0ZDBmZDc2NWRiYzcyZDhjZjZkIGxlZ2FjeS10cnVuaworMjYzMTEgMjFmMzE5MzlkYzJmNzQ4ZjJmZjkwZTgzOGJmMzljMjQ2ODk5YTgwOSBsZWdhY3ktdHJ1bmsKKzI2MzEyIDZhMzYxMTJhM2RjZTA2NzViYjJiYTU2N2RmNTY0ZDlmNjlhOWY5YzQgbGVnYWN5LXRydW5rCisyNjMxMyBjOGMxZGMwNzI3Y2Q1MGNkZTdkY2M2YjNhMWZmNWIzZmZhNGUxZjZmIGxlZ2FjeS10cnVuaworMjYzMTQgYmZhMzMwYjg1MjA1MDdkOTkxMjdkZmM4MmI4Y2EwNzBmMjM4NzZjMyBsZWdhY3ktdHJ1bmsKKzI2MzE1IDlhNThlOTdkYjQ0N2MzZjQ5NmE5Njg1NDE4OWM5ZjA2NzAxNjg3NGUgbGVnYWN5LXRydW5rCisyNjMxNiBjZWE4NTJmOGFhNDc2MzAzN2YwMTVlMjMwNzk3OTVjODZkNmQ3YmFkIGxlZ2FjeS10cnVuaworMjYzMTcgMDNhODMzNDBjOTE0YTkyYzZmYjc4MzcxZGU4ZjU4OTU3NmIwY2EwMCBsZWdhY3ktdHJ1bmsKKzI2MzE4IDRmOWQ1ZWE0ZjM3ZDljMTIxYjgwYTg1N2YwNjAwZWRiNDhmY2M5ZjEgbGVnYWN5LXRydW5rCisyNjMxOSA1ZjJkY2RkMDkzMjkzNmM1ZDJiZjRiYTQ3ZjQxMGZlYWE4OTU5NTlkIGxlZ2FjeS10cnVuaworMjYzMjAgZjgxNzAxYjcxMjE2NGY2NjIyZWE4YTA1NGMwNjNjYTA0MDBmYThjYSBsZWdhY3ktdHJ1bmsKKzI2MzIxIGEwYmI1ZmExYWIyZGNkZTBlZjBjMzM5N2QyNDEzNTU2Yzg1ZmYxN2UgbGVnYWN5LXRydW5rCisyNjMyMiAzZjIzZDcyZWY0MTBmNjY2ZTA0ZThiMjkwMWFmZGViYjBiM2ExMTI2IGxlZ2FjeS10cnVuaworMjYzMjMgNmQ3MzFiNjQ2NzBiNjkwZDI0YjM4ODViZTRlZjlhNzg1ZTg4ZDI5YyBsZWdhY3ktdHJ1bmsKKzI2MzI0IDk1NjNjOTY2NGEwYmI4YTJlY2U2ODlmMzViNGEyMDQwMjI1ZGMxMDcgbGVnYWN5LXRydW5rCisyNjMyNSBhMDA0NzNmMzMxN2I5M2Y3NTQ4NDViMTY5NGM3ODUzM2M1MjM0MjJkIGxlZ2FjeS10cnVuaworMjYzMjYgYjM3MzE0ZmNiY2M5Zjc1MjA3NDdlMmQwYTQ4OWY4ZTExYWFkMjg0YyBsZWdhY3ktdHJ1bmsKKzI2MzI3IDA4NGFiNzM3NzdhMzQxNzRkZTdkODk4MzA5ZTQwNzFjYmZiMWJiYzggbGVnYWN5LXRydW5rCisyNjMyOCA1NDk1YjZkZjBjNjVkMzBmN2RiM2Q1MWM0OGM4ODA3MmZlNDAyMTUyIGxlZ2FjeS10cnVuaworMjYzMjkgYmEwMjM2Zjg0MzE4YzIzOWVkODNhOGJmNTZlYThmZDUzYWQwOGIwMSBsZWdhY3ktdHJ1bmsKKzI2MzMwIDMxMDBiYTI2OTEzYzdkNWJhYTExMzFmZGE3NGY1MGMxMzZkNDI0ZWIgbGVnYWN5LXRydW5rCisyNjMzMSBmOTNhMjZkMWJmYTBlOWRkODMxODExODA2YzQyNzVjN2MxZWU3MTk4IGxlZ2FjeS10cnVuaworMjYzMzIgOTBiODM0Y2U1NzA3N2ZlZGE1ZmMxOWEwNWMzMjg0MzJhN2QyZjkzMCBsZWdhY3ktdHJ1bmsKKzI2MzMzIDk1ODE5ZjdmMGJjZDJjZGM4ZmU1Y2EyOWIwNDAxNTg1OTY0ZGY4MjAgbGVnYWN5LXRydW5rCisyNjMzNCA2OTljYzEzOWQyZDI0ODY2YTEwYmExYWRjOTYzMmNiZWNlMDMxYTc0IGxlZ2FjeS10cnVuaworMjYzMzUgNzI3NzhlYzk0ZGVjNjY3NjM4MjczMzExMDBiYjhmMThhMDNiY2E1NSBsZWdhY3ktdHJ1bmsKKzI2MzM2IDI5ZTZjYjgzMjQ5N2I1ZmU4YWQyZTczMzY4YmJkZjAzYjk0YjBiZDkgbGVnYWN5LXRydW5rCisyNjMzNyBhOWU0MDI0ZDhhMzc3MDE5NTYwNTI5YmFkZTA1ODcxMmRiNTBiZmU1IGxlZ2FjeS10cnVuaworMjYzMzggNGJhMDkxY2M3MGI4OWIxNjY0NGFhNzVlMTczN2RmZGQyNGQ0MDBkNiBsZWdhY3ktdHJ1bmsKKzI2MzM5IDM2M2M3ZmMxNzRhYzhiZGI3YjgzMTk4MWI4OWM2M2MzMjEzNDcxYTIgbGVnYWN5LXRydW5rCisyNjM0MCA5ZmU5NGMwMWVhZjFmZmY1MDA3YzAzODQyNTVlNDE4MWJkMGRjZDc1IGxlZ2FjeS10cnVuaworMjYzNDEgOWY5NDkwMjdkN2JhMTkzYmQ2MTQzZjJhYTY0NGI5MDM3MDQ2N2QyOCBsZWdhY3ktdHJ1bmsKKzI2MzQyIGRjMWZiMTlkOTkwZDY5MmYxN2NkMWUwY2U3NzEwNWNjMzJjNTQ1ODAgbGVnYWN5LXRydW5rCisyNjM0MyBkMDk3NDBiMmUwM2RlMWY4NWNhMDg0MzU2YTQ1ZDAxYWMwMmVjY2E0IGxlZ2FjeS10cnVuaworMjYzNDQgMWMyNmEzMTA2NjUzMTBmNjNmZTU3NTc4NzczZmQwMzMxYTJiZTM1MiBsZWdhY3ktdHJ1bmsKKzI2MzQ1IGM1YTY3ZjUwNTMyZTkxNDcxMWQwY2ZmNTk3YmEzZWM5NDZiNGU0MDEgbGVnYWN5LXRydW5rCisyNjM0NiBkOWQ4MmMxZWY4NjQ1MGRmMjMzNTUwMGU5YmUzYmI3M2JhYjdjNmZiIGxlZ2FjeS10cnVuaworMjYzNDcgMjk4YTdjNTFkMmMwMWRlZGQ1YTA4MGM0NjllNmMwNzE0Y2VlMjBkNSBsZWdhY3ktdHJ1bmsKKzI2MzQ4IGM4ZDYxZmYxYzBkNmI3NDk1NDkwYWE5OWQ0MDNmMmZkOGUzMzQ3OGUgbGVnYWN5LXRydW5rCisyNjM0OSBiZTU0NDY1YTM5YzQ1NGE1OGIyYjE3YzM0ZWE5Yjk1YWIwZTcyZDE3IGxlZ2FjeS10cnVuaworMjYzNTAgNjE2NjE1ODNhMTJmYWIyYWYwY2ZkMGM1MDgzYzNiMzJhZTEzMWExZSBsZWdhY3ktdHJ1bmsKKzI2MzUxIDI0NjYzYjg2Yjk3NTA1ZWNhNjA3MjE5MTdkNDczZTJiMjMzOWQ3OWMgbGVnYWN5LXRydW5rCisyNjM1MiAxZTFjNzIxNDMzZDhlNGEzYjA4NzUzY2U0ODFhZWU1YmJmNzk1ZDAyIGxlZ2FjeS10cnVuaworMjYzNTMgYmViMzIxODkwNWEyZmU5YjE0YjYzNGUyMGIyZDlmOTRhMjQzYTE1YSBsZWdhY3ktdHJ1bmsKKzI2MzU0IDBhMTlmMDE2YTk5NDY0N2VhMTI4OWNiNDEzMjBjMmJkM2ExMGE1NGEgbGVnYWN5LXRydW5rCisyNjM1NSAxOTZkZmE3ZWQzNDhkYmZlOTYxNTc2MjY4MTk0NWRiMjEwODZiOTQxIGxlZ2FjeS10cnVuaworMjYzNTYgNjkwZDcxMmUyODA3YzNlMWM4Y2M1MTIwYjdhNTliMzQ0NzJiZjIyYSBsZWdhY3ktdHJ1bmsKKzI2MzU3IGI5YWQxZTlmNTlhODVlYTA3OWU4NzBlOGUxNjU2NDdlZTY2MTAwNWEgbGVnYWN5LXRydW5rCisyNjM1OCAyZGQwZjg0YWYwNzE2OTI5MDE2MWVhMzUzMzVhNGY4YTJkY2E1NjBiIGxlZ2FjeS10cnVuaworMjYzNTkgYTljYjkxOWU0OWUzMzFiYmU4YmU5MTFkNmY3OWM3NzBmYTY3Y2E3YiBsZWdhY3ktdHJ1bmsKKzI2MzYwIDI1YTZlMzljMzFhMjA3MGUxNTFmZThmNmFmZTZkYWIwNjQ0MTI2NTUgbGVnYWN5LXRydW5rCisyNjM2MSAwYjFlMjBjMzRjOGVhNmMxOWU0YzUzMTU1NzU5OTBiOWQyZGQ4ZjEyIGxlZ2FjeS10cnVuaworMjYzNjIgYTA1NjFjZjQ5MTYzNGRiMTRjNzZlMzIzOWFkZjY2YWYwY2MwYjQ0MSBsZWdhY3ktdHJ1bmsKKzI2MzYzIDhmOThjYjNhMGYzNjhjYTQzZjFmNTAzMzBjMDQxMGNhOGE0YTE0YTIgbGVnYWN5LXRydW5rCisyNjM2NCA0ZjA2M2I4MDMwOGQ5OTIzZDA1YTY3MWU0N2E0OTJkMDk5MmFmZThlIGxlZ2FjeS10cnVuaworMjYzNjUgMWY3YWY0ZmIzYTUxNTJjYTE0OGUxZTBhYzJmNjYzZTQ4NTZlYTEyOCBsZWdhY3ktdHJ1bmsKKzI2MzY2IGU1NGI5YzM4NDhiN2EzNDkyMDgwYTQ4OWYzNDVkNzE3MzA0MTNlZGUgbGVnYWN5LXRydW5rCisyNjM2NyAxY2VhZjdmODA1NWQ2ZjMwYWZhN2RhZmE1ZDc4MmFhN2VmZTliNDI2IGxlZ2FjeS10cnVuaworMjYzNjggZGIwMDNiOGE5YmI5NTQ2MDA5MDk1YjAzMGE3N2RkMTdmYzU3OWM3OCBsZWdhY3ktdHJ1bmsKKzI2MzY5IGQ1MDQ4ZjliOGI4MjU3YjFjMWJkZGNhYjkxOWNiNTRhZGY3YzI4YmEgbGVnYWN5LXRydW5rCisyNjM3MCA4YmU2MjM4NzQ4YzRkMGFmM2NjNzBhMGJiNjYzYWQ3MTdhODQ5Yzc1IGxlZ2FjeS10cnVuaworMjYzNzEgOTMxZDQ0ODgyMGFlZWYzOGRiNjIyMDNiYjA5YmRlYzEyMzVhZjAwNyBsZWdhY3ktdHJ1bmsKKzI2MzcyIDk4OTM3N2NkZjA1MzJkNzc3NmNiNjY3YzZjNTYzN2ZkM2M3YThlNmIgbGVnYWN5LXRydW5rCisyNjM3MyAwOGFiMGE2YmYxZWJiMTRhOTBmNGNiOTMyOGNkMGY2ZGJiOWEzYTNjIGxlZ2FjeS10cnVuaworMjYzNzQgZDYzMjI5ODMwNjllMDZhYTI0YzkzZGU5OGZlYzk1OTg1YmU3MmI4NiBsZWdhY3ktdHJ1bmsKKzI2Mzc1IDNiMDgzYjI2Mjk2YThlODEyNzY0ZDI4ZTEzNmIyN2JhMjI1ODY4MTYgbGVnYWN5LXRydW5rCisyNjM3NiAyMDJhZTViNzVjY2EyNDM4MjcyNDg3M2JmZjk5OGZhMDIzNDYxNDNkIGxlZ2FjeS10cnVuaworMjYzNzcgYjVmOWY3YThmNTY2NmU0ODlmYmI1NWQyYjAzOTJhZDFmOTM2YjM2OCBsZWdhY3ktdHJ1bmsKKzI2Mzc4IDQ0NjM3YmQ3ZjU5YjY0Mjk4YzJkMmMyNDkyYjRiM2I1ODVmYzAwMTcgbGVnYWN5LXRydW5rCisyNjM3OSBiMWFiNGJjNTIyNDNkMDBkOTA3NDBjODgyMzJmMzM5YzY4NDYxZGVjIGxlZ2FjeS10cnVuaworMjYzODAgYzYwMDNkZTczOTc1NTdiOWM4NGQzNWViMzcwY2Y2ODI3OTcyYWE1MyByZWxlYXNlMjItbWFpbnQKKzI2MzgxIGUyODQ4NjE4YmQxOTU5YWQxNDZhOWIxYTFlZjllNWE4Y2VkMDkxNGIgbGVnYWN5LXRydW5rCisyNjM4MiAyNDcxODMyNzAwOTU4Zjc0YzkyMzZhYWIzODYxODg2ODE1YjNkOGQ2IGxlZ2FjeS10cnVuaworMjYzODMgZWJlM2NlNmNiZmQ3ODYxNTIyOGJlY2NmOTBlM2I3ZTFjNzg1ZjdjMCBsZWdhY3ktdHJ1bmsKKzI2Mzg0IDg5OTAwMmE4ODJhMDhhNTA5ZmY2YjJlYzI0M2ExZmU0N2Q3ZDIzZWQgbGVnYWN5LXRydW5rCisyNjM4NSA0ZTU4YTM4ZTNjMDYxYWFjMWQ3ZGU3ZDRlYWVlOGVlN2RiZWNlYzI2IGxlZ2FjeS10cnVuaworMjYzODYgM2U4OTI1ODJhODUwYmM4YjYxMThmZDdlNzA4MmJlYTQzYzg5NzlkNSBsZWdhY3ktdHJ1bmsKKzI2Mzg3IGYzZmM5N2RhNjhhOTg1OGMzZjlhOGY5MDMwNGU4ZWRmZTE1Yjg0YjMgbGVnYWN5LXRydW5rCisyNjM4OCAwM2MzOTY0MGQ4MWE4OTQyZGNmYzQ1YTEzZWE5YWU3YzNhMWY0ZDVhIGxlZ2FjeS10cnVuaworMjYzODkgYTlhNmMxMThkZmJhNzU0M2IyZjYxZWVmODc1ZmFmNzRjNjEzMDJiNyBsZWdhY3ktdHJ1bmsKKzI2MzkwIDgyOTE0NzNmZGUzZWIzMmM1MTdjMDc1MTZkZjhhOTljYjI5NjBkZTMgbGVnYWN5LXRydW5rCisyNjM5MSAxODYyMzc0YWIyNTM5OWQ1NWY4Njk4Nzc5YzUyNzdiYTMyNDY4N2FiIGxlZ2FjeS10cnVuaworMjYzOTIgNWJkYTU0NmViZTI0YWNmOWVhYjE3MGJmMjFjNmM4MDc1MTZhZTVjOSBsZWdhY3ktdHJ1bmsKKzI2MzkzIDFkYjNhMDI5NjVlNjU1ZWY0ZWY4NTFhNThmZDhhOTc1OWQyZTgzYWQgbGVnYWN5LXRydW5rCisyNjM5NCA4YjkyNjBlOTIwMTBiNTRlOGFiNWU4ZTM0ZmQ2ZThiNTQ2OWIyZjk0IGxlZ2FjeS10cnVuaworMjYzOTUgNTNiYTkxMTBhMWYxNzc5N2M3NTNlYzNkNzExN2U2YmQ0NDBlMzc0OSBsZWdhY3ktdHJ1bmsKKzI2Mzk2IGIxZWU0MzIxYTUwYTdiMmM1OWJhZDEzMDE0NjhhM2IyNzAyZDQyMzUgbGVnYWN5LXRydW5rCisyNjM5NyA4ZjY0NTE4MDUzNGQ1M2Y2YmY2MzczNTUxNTllYWEzNmFhZjY5NTg0IGxlZ2FjeS10cnVuaworMjYzOTggODlkYjllM2YzNWE3NDhiMTlkOTViMzRhOTY1MjVlOGQ1MjA2NGMzYSBsZWdhY3ktdHJ1bmsKKzI2Mzk5IDlkMzUyNjY3ZDcxNWVlYzA3ODM0OGM4ZDk1NGY2MDBhN2FhMGJhZGYgbGVnYWN5LXRydW5rCisyNjQwMCA0NTQzNTFlZjUwZjFkMTk3MGNlNGI5YzNiZDMwY2E1ODgxMjNkNjU2IGxlZ2FjeS10cnVuaworMjY0MDEgY2QyMDJlZjY3MjZlMzQ1N2Y1M2I2NWNkNTQ3MDM3MmEzYTYxZWY1ZiBsZWdhY3ktdHJ1bmsKKzI2NDAyIGYxYWExOGM4Yzk2YjgyMWM5NWIyMGI1NGYyMTAxNTdmZmQ3M2UxMTggbGVnYWN5LXRydW5rCisyNjQwMyBlMWY4ZTI5NTQ3NDk5ZjQ5NzNmZjliYWJkYjMzZjNiOGZhMGI5YjMzIGxlZ2FjeS10cnVuaworMjY0MDQgN2ZlY2Q2ZDU4ZjM4ZWYxNzRkM2FiMzQyNGJmZTllYzQzNDJjZDUwZSBsZWdhY3ktdHJ1bmsKKzI2NDA1IDBmMzdjYjVhN2U5ZThjZDViMDgyZDdmNTE2OTU1MDBkNDFmMzRlNjcgbGVnYWN5LXRydW5rCisyNjQwNiA4YjEyNjhiYzM3MWE2NGZmNWJiY2YzNzc5Y2NjMTBmNDE1OTI1MWM2IGxlZ2FjeS10cnVuaworMjY0MDcgNzY5ZTBhNTM4ZTU0M2QxNWNkODc4NmJiN2FmYzRmYmZhMzZiYWM3OCBsZWdhY3ktdHJ1bmsKKzI2NDA4IDc1MTI4OWNkMWFiNzEyZDllNzYyYTE4NDllODI1MGI5MmRlZmU1NTkgbGVnYWN5LXRydW5rCisyNjQwOSBjMTY2OGE4MTkyNDJjNTEzYTJhZWMxOTNjNDVkZDJmMDg4OGRhMmI3IGxlZ2FjeS10cnVuaworMjY0MTAgOWU2ZmY3ODcyODBhOTVkZDRjMDhmZDBhZDUxNDgwMDE2YzlmNzRiNyBsZWdhY3ktdHJ1bmsKKzI2NDExIDhhOGFmZmNjZjQ2M2JiNWM1NzgwZGU3MGY5ODk5OTczOTc3Zjk1MjEgbGVnYWN5LXRydW5rCisyNjQxMiAxOWVhMDBmZWRhMzM2Y2QxMWQ5OTQ2OTE4MDBkNTVmZGJlMDgyZGQzIGxlZ2FjeS10cnVuaworMjY0MTMgOGViNmRkM2Q4MzIyZWZiZDRmOGJjNDIyYzg4MTIzYTEwOWEwOWViMSBsZWdhY3ktdHJ1bmsKKzI2NDE0IDA0ZmJmNjVjNzNlZjZmYzZhNzg4ZmM0ODhjNzY1ZTcwNTU5YTYxM2EgbGVnYWN5LXRydW5rCisyNjQxNSA3MWJlNWJhODhhYTdhNzJjN2FjMDBlNjI4MjhlMzhhODc0OTNlYzQ1IGxlZ2FjeS10cnVuaworMjY0MTYgM2FmMmNhZGNjZDZhYzY1MjNlOWIwZTljNjIzNTZiYzdiNjQ2NjlhMSBsZWdhY3ktdHJ1bmsKKzI2NDE3IGExMzU5ODBkZDRlOWI2YjliZjEyZWJlM2QxOTI3MDdhMTg4YzYwZDggbGVnYWN5LXRydW5rCisyNjQxOCA2YmUyODNkMTQ4ZjdlMzg4MjU1OTQ5NDQxNTk0ZDMwZjkxYTZkNGRjIGxlZ2FjeS10cnVuaworMjY0MTkgODAwNWZjMWFlZjM5YzhmMDYyNGU0MTVjNjkxMmY3MGVhZjViMjlkNiBsZWdhY3ktdHJ1bmsKKzI2NDIwIDRjMGFiNWQ2YTYzYzQxZWFjMjljYTI4N2M3ZDdjNjE1MjYyNjVlNjIgbGVnYWN5LXRydW5rCisyNjQyMSBjMzI4ZDcyNTBlOTI2NjAwMzZjOWJhOGFkNWNjNGRmMDJhMzRiNmI5IHJlbGVhc2UyMi1tYWludAorMjY0MjIgZGJkMGVlN2Y2MGUwNTY5NzBhNmEwNzMxYjRkNTkwYTIzNzhmYjU4MyBsZWdhY3ktdHJ1bmsKKzI2NDIzIGMzNzFiYjNlODUyOTFiOWUzMzRmYzUzNDc1YzRmNmQyNDI5YWRlZWQgbGVnYWN5LXRydW5rCisyNjQyNCA1MzBhYmEzMTE2YTQwZDA4NWU0YTEwODk3OWY2MDNlMjliZWJmM2Y4IGxlZ2FjeS10cnVuaworMjY0MjUgZGMwYzEyMTNjNzlhYmRkYTA5MzViMzgwNjRhM2ZmMjBhZjNjMmJiOCBsZWdhY3ktdHJ1bmsKKzI2NDI2IDkzOGZmM2NiNTFjMjZiZmU0MTllYjY1Y2ViN2FlY2UzN2I5ZDYxOGYgbGVnYWN5LXRydW5rCisyNjQyNyAwM2ZmMzU2OWJhMDRjYWY2YzU2ODFkMjgwZWU2YWRkZDNmMGMxNjlkIGxlZ2FjeS10cnVuaworMjY0MjggZjM2Nzc0MTRiYzNkZWY2YTA5MDU1ZmM2ZWE3NDk0ZDJiNjMzNmViZCBsZWdhY3ktdHJ1bmsKKzI2NDI5IDQyYzk5NzI4YjZjY2EyZjllYzJiNzgzZTUzZjE0Y2M3NjcyOTQ4MTAgcmVsZWFzZTIyLW1haW50CisyNjQzMCBiYmFiM2ExN2I0Y2Y0ZTNjN2NkM2Y0ZjRjNWI3MTJmYTU1MDA5MTdhIGxlZ2FjeS10cnVuaworMjY0MzEgOTdiOTQ4MGJiZWVjNzVlNjE1OWM1NDA5NzEzNzcwNzM0NWRlMzg5YSBsZWdhY3ktdHJ1bmsKKzI2NDMyIGZkYTczYmZmMjFmZmE1NmQ1YTllY2UyZjI0OWNmMWM4Y2JjOGNiMzIgbGVnYWN5LXRydW5rCisyNjQzMyBkODllNTU3M2RkMjM3ZTEzYjA2MjQ3YWQyMDUzZGI5ZjNkZDJjMWUwIGxlZ2FjeS10cnVuaworMjY0MzQgMjFkMjUyMDI4NDA0YzgwZGQ4MjI5ZWY5MmM2OGVkOWE4MmUwMTRkMiBsZWdhY3ktdHJ1bmsKKzI2NDM1IDRmZjkwYzk5YzMwMmFhNmJkNDNjNGQyMjgxZWMzZmUxZmVmYjc3MjIgbGVnYWN5LXRydW5rCisyNjQzNiBiN2U4NzczMmY2YWI5NDEzZDU0ZmRjZGFhOWVjOTlmZjM0YjZlMTY5IGxlZ2FjeS10cnVuaworMjY0MzcgMGZjZTU1Njc1Y2JjYjM4MGMyNDJmMzlkZWY3M2I4ZTM4ODMxNDhhNCBsZWdhY3ktdHJ1bmsKKzI2NDM4IDNiZDMzNmI2Y2IwM2E2N2Y3M2U3MTBlZjE2NjQwYWQzMTdmNWEzY2UgbGVnYWN5LXRydW5rCisyNjQzOSA0YWRkZjRjZWFmYzU0N2Y0N2JmZTA0OGM1N2IyZWM2ODFlYTI0NTA0IGxlZ2FjeS10cnVuaworMjY0NDAgOTY5YzFkMTE4Yzk3ZGViZmQzZmE2YThmZjZhMTJjYWI0OTJlNTI0YSByZWxlYXNlMjItbWFpbnQKKzI2NDQxIDEwZTAxMjJiNWZlZDVmODhkNzIxZGE5ZGQ5YWQ3ZjU5NTU3OGY4MWQgcmVsZWFzZTIxLW1haW50CisyNjQ0MiAzYmY3NjJlMGUwNmVkMDlhOTFlM2UyNjY0NDE0MmZhMWI5ZWViYTNmIGxlZ2FjeS10cnVuaworMjY0NDMgMzkzZTlhMjE2YTg4YjUwMDEwOWYwMzE4MzZlYTZjZmYyY2QwZDA3ZCBsZWdhY3ktdHJ1bmsKKzI2NDQ0IGU0ODRmMzBkYWM3N2E2MTcxYTI3Yjk3ZWUzNjU2MDFhYWU4Yzg3OWYgbGVnYWN5LXRydW5rCisyNjQ0NSA4YzNkZDFjMmVmNDc5ZWU2ZWM0ZTYwZTE5YmFhOGVkMzU3ZTI3MmRlIGxlZ2FjeS10cnVuaworMjY0NDYgNDIzYTM2NzhiYzdjNzE3NmVhNjBhYjFlMjE3N2E5YjZmYTE5ZWFkZCBsZWdhY3ktdHJ1bmsKKzI2NDQ3IDRlODI1MjI4NDdkMGRlODFlMDAzNzc1MDYzYzVlYWI1OTJkOTRiMTIgbGVnYWN5LXRydW5rCisyNjQ0OCAwOWRiM2Y1ZDBiZDBlYTBiZjNiYjJhNWY1OWExNjRkM2RiM2RhZjIyIGxlZ2FjeS10cnVuaworMjY0NDkgOGM3YTM5ZDBmZWZkODAxZjZkZGM4OWNlMGZkZmFhMTI2ZjM5MGNlNyBsZWdhY3ktdHJ1bmsKKzI2NDUwIDMxNGY5MmEyNDI5M2IyYWJiY2YwN2NlYTNlN2Q1N2M0MDE2NDVjMTkgbGVnYWN5LXRydW5rCisyNjQ1MSBiMzk1NDc3ZDg0ZDBkNzY5OTczMDdkNGRhNjg4YTAzNzgzYWU3YmU3IGxlZ2FjeS10cnVuaworMjY0NTIgOTk3NTc1NjJiZmI5NTdmZDRiNTk0OTc5ZjMwOWVjZTkyOTc3MmI4ZSBsZWdhY3ktdHJ1bmsKKzI2NDUzIDllYmE2MGFjZTJkYWUwYzI1YzQ4OWVjNmY1YTA1OWRjMjZhNzU5NWIgbGVnYWN5LXRydW5rCisyNjQ1NCA5MTFmOWYxNGUyZDU3ZTliNjI0MmM2YTJhZWMyOTQ1NmQ1YWRiN2JjIGxlZ2FjeS10cnVuaworMjY0NTUgMmE1NDI3ODQwNjJmNWE5M2Q1YzNjMDkwNWM2MjhmOTkzMWUyNTZkZiBsZWdhY3ktdHJ1bmsKKzI2NDU2IGI1YWFlMmE2NWY2ZDEyMmEwZjczNWZhMmU1ZTliODQ2MjYzZDcyZjEgbGVnYWN5LXRydW5rCisyNjQ1NyBmODY3OWY2Nzk4YmY2N2I5MTRmMzcxZTE3NGMxY2I3NjcxODA4NDg3IGxlZ2FjeS10cnVuaworMjY0NTggMDNhYmZhN2RiNDQ5OGM1Y2I5Y2VkYjBmOWQ1ODljMmVhZTg5YzBlZCByZWxlYXNlMjItbWFpbnQKKzI2NDU5IDcxNzJjZWYyM2IwNTQ5ZWJmZTY5M2Y4YmI5Zjg2YzljMzZlNTE3YWMgcmVsZWFzZTIxLW1haW50CisyNjQ2MCA3Mzg5NWM5OWZjYzViYmVlYzc1ZTFjNzNiMmE4NWE5OTAxODc5YmZmIHJlbGVhc2UyMS1tYWludAorMjY0NjEgYjZmNDMyYjMyMTQzOGNhY2I1NGNiODg3NWRiYzAzYjBhMGI2ZjljZiByZWxlYXNlMjItbWFpbnQKKzI2NDYyIDU2OWUzODNiZTBkYTlhNmQ2YzdlM2ZjNmM2OWZmYTM3MDY4YWVkMTUgbGVnYWN5LXRydW5rCisyNjQ2MyBkNDQ1NDVjNGE0N2E4MmYzMjBlNTA1YjAyMjZhY2IxOGM0Njk3YzY5IGxlZ2FjeS10cnVuaworMjY0NjQgZDI3ZTk3YjhhODY2ZTZkYzRmYmNjYzI4YzUwNmM2YzU0NTYxZDc5NSByZWxlYXNlMjItbWFpbnQKKzI2NDY1IDI2ZTNmZThhODhmNTdiNzFjY2FmYmMyZGEyMzhlNzFkOGZkMzZkZmYgbGVnYWN5LXRydW5rCisyNjQ2NiAwMWY3M2ZkNjYzMTA5ZmIxMjI0M2Q4YmU1NTllY2YzMTYwMTgzYzRhIHJlbGVhc2UyMi1tYWludAorMjY0NjcgOTc4MzZmNjE5M2RjMzA3MTViODIwZmMxMTBiOGYwZGJjNmIxNDM3NSByZWxlYXNlMjEtbWFpbnQKKzI2NDY4IGY1ZWRmNzAyNTI2NzY4NWUzMTcyOTUyZWJiNmNlZmFmMWY3NjRlYzcgcmVsZWFzZTIxLW1haW50CisyNjQ2OSBkZjQ1YWRmNzdkMzZkZmRlNGQ4YjYxNGZjMmNjNzM0NjJmZWQ3ODUyIHJlbGVhc2UyMi1tYWludAorMjY0NzAgN2IwMGRhYjk4OGNmNDQwNzg2ZTM5Y2E1ODk5NTc4NTBlYzBhNzdlMyBsZWdhY3ktdHJ1bmsKKzI2NDcxIDJkM2EyYmViM2Q0ZDcwMjlmM2VlOThkNTdlZDViNzM5YzQ0NmI2NmUgcmVsZWFzZTIyLW1haW50CisyNjQ3MiA0MDc5ZTljMjNmYzE3Mjc2M2JlYjZkOGY5ZjRiZjlhMTdkYWM4MzMwIGxlZ2FjeS10cnVuaworMjY0NzMgYTNjOTgyZDQxMmI0NmUxY2Y5NGNmNDRjNzIzMzM4ZDcwZjlkZTRmYSBsZWdhY3ktdHJ1bmsKKzI2NDc0IGU3NTEzZTE0MmM3MGVkZmJjOTIzNDEwNjlmYjI0ODY3NWM2NzAxZWEgbGVnYWN5LXRydW5rCisyNjQ3NSAxZGEwMmJiYTYyNzY3M2FjZmM0M2IwM2NiNDFlMDJjZGIzN2YyNTE4IGxlZ2FjeS10cnVuaworMjY0NzYgNzEyMWQ3ZDU3MmQwMWFmMzBiNjIyNmQ4NTBmYTc3MWU1Y2JiZTExYSBsZWdhY3ktdHJ1bmsKKzI2NDc3IGZkZTg3OGJjMGUzYmU1ZTQ5ODE3OGYxNWMyZGFmZDBlZDJkN2Q1OTUgbGVnYWN5LXRydW5rCisyNjQ3OCAwZmZiNTRiMWMzZWE1Y2ExZTg4Nzk0Y2YxOWVkMzEyYmM4NTgyNzUyIGxlZ2FjeS10cnVuaworMjY0NzkgZjkxN2U3YTZlOTExYjc3MWUxZDYxNDU4ZGRmMzdiYWZhMmU1MGZhMyBsZWdhY3ktdHJ1bmsKKzI2NDgwIGZhNDFmMjQxMDY4ODczMTJiNWY2MjJjYjEyOTk0ZjE2MzVkZWNhZGIgbGVnYWN5LXRydW5rCisyNjQ4MSA3MzdmNDQ1OGU1ZGUwMTFlMDNjMzE5ZTA4ZTM5NTM2OGZlNzk2N2I4IHJlbGVhc2UyMi1tYWludAorMjY0ODIgYjBlNTlmMWU0OTVhYzZkYjk1NjZmODg3ZGM4MjJhMzcyNTdmZjQ0YiByZWxlYXNlMjItbWFpbnQKKzI2NDgzIDYyN2I3Y2E1MjIxYWMwYzkxZWExOTM5MWE3MjNmZWU4YmM1MGNlYWIgbGVnYWN5LXRydW5rCisyNjQ4NCAyMmRhMjYwODI4NWNmZTc3YTRlYWJjNjY1ZmNlN2I1MjM1NjUwM2E1IHJlbGVhc2UyMi1tYWludAorMjY0ODUgMGJhMjMzNDFlNWNmZjRlOGU1ZWQxYjc2NzZmZTU3NjlmN2FhZTc4NSByZWxlYXNlMjItbWFpbnQKKzI2NDg2IDkwODA1ZmNjNmM3MDI1NzNmMTE4ZWI5OWRiYzdkYTI2ZGQzNzUxZjQgcmVsZWFzZTIyLW1haW50CisyNjQ4NyAzNjhlODA4MWU3M2M0ZGJkMjgwNDNlYmUxYzhiYWEzZTY3OGRmMWNiIHJlbGVhc2UyMi1tYWludAorMjY0ODggNzA2NTBhZTFhMmNmMDAyM2YxNzM4MWJlMjhkZWZiNzg0MTA0MjBlOCBsZWdhY3ktdHJ1bmsKKzI2NDg5IDVhYWYzZDdiOGQ4YzA4OTNiMTUwZWYwZGI3NzllZDBmYmU0NDg2ZGYgbGVnYWN5LXRydW5rCisyNjQ5MCBhZDQ0YmYxMTc5ZWIyNTRiNWNhOTdjNzU1ZmNjYmZlMmJjNTU5YWNkIHJlbGVhc2UyMi1tYWludAorMjY0OTEgZGUwOWI4NzRmMDdhNjg4Y2NjNjYyNzBiNzgzZTdhYjA1ZDI4ODEzYyByZWxlYXNlMjItbWFpbnQKKzI2NDkyIDkwYWRiY2Y2MjAxMzYxYzdkYmI4Y2M4MzUzOWFkOTc3NTAyYzQ0NTMgcmVsZWFzZTIyLW1haW50CisyNjQ5MyA2NzU3OGE4MzBkODFjYTM5MjZlYmU2OTZjOTE5ZTAzOWI1ZjAzNTI4IHJlbGVhc2UyMi1tYWludAorMjY0OTQgNmRhMWY5OTE3ZTliM2U1MzM1ZmI1NWFiMzgxYmQ0MmE1OTdmN2Y0OCByZWxlYXNlMjItbWFpbnQKKzI2NDk1IDQ2OTRhMGRmMTc0ZTQ4Yjk1MWJhZWU3YjliYzVjY2VkMWNmMzA2M2MgcmVsZWFzZTIxLW1haW50CisyNjQ5NiBhMDQ3ZjE2ZmI4YjNlNzIyMGM5MjE1YjQ4ZDI3NTI0ZTY4MTllODA3IHJlbGVhc2UyMi1tYWludAorMjY0OTcgZDliNzFmNjI4MTRmOGQxYTVmZTZkOTUxOWY0MWI4OWNjNWNhMjljOCByZWxlYXNlMjItbWFpbnQKKzI2NDk4IDkxYTIyMjhmMzAyMWI3OTJkMGRkOGQyMjNlOTYxNDk1Yjg0MmIwNjIgcmVsZWFzZTIyLW1haW50CisyNjQ5OSBhYjUxMjMyNzRjY2ZmM2Y2ZjBlYjk0NzhlMWNkYmNmZjI2YWFiODk1IHJlbGVhc2UyMS1tYWludAorMjY1MDAgMmExMTE0NGY4ZjBjMDc3ODM2NjE5OThhNGI2N2ZjY2NjMTdjMDVkNSByZWxlYXNlMjItbWFpbnQKKzI2NTAxIDQ2ZmZiMTQ5ZWE3M2E0NDE0NDI2NWIyZWRhYWFmOTk2NzgyYzMxNzEgcmVsZWFzZTIyLW1haW50CisyNjUwMiA4YmEzMGUyZDhhZTY1NmQyZTI3NmQ1MWM4Y2E3NWRkNGMxOGUyN2NjIHJlbGVhc2UyMS1tYWludAorMjY1MDMgYjdmOTUwNmU2MGM5NGZlMDFmZjZmZDk2YmI5NzM2NWUzODgyNzZmYiByZWxlYXNlMjItbWFpbnQKKzI2NTA0IGE1NzVlNmVlODVkOTk2OTU1MTRkMWE5MDU1Njc0MGJhMGNlYmMxM2YgcmVsZWFzZTIyLW1haW50CisyNjUwNSBhMzZmOWZiMmM0MDQyYWYyNjQ1Mjg2NDY2ZTI3NmEyMzYwMjdlMzU0IHJlbGVhc2UyMi1tYWludAorMjY1MDYgMGVjZWY4YmZiZDRiMDIwMDI1OTc3NDZjYTRhNDk4MWU3ZmMwYmEzNSByZWxlYXNlMjItbWFpbnQKKzI2NTA3IDYxY2MwODc0NWQzMTU5MzYwYWIzNGE4YWUwYzlmYzZiMDgzYmRlNmMgcmVsZWFzZTIyLW1haW50CisyNjUwOCBkYmYwMTNjYzNkZWVlMGE0NWZlYzk0NmRmMTMwMWM0ZDc2MjRlMDgzIHJlbGVhc2UyMi1tYWludAorMjY1MDkgYzQ2MDljYTE3ZTNlYTBkMDc4NTNiZmIzY2RmMDIyOTVmMTE4Y2NkMSByZWxlYXNlMjItbWFpbnQKKzI2NTEwIDYyZmFiYmQ0NTdiZTZiNGI0OWNiZWRhZGUwODkxMjE0OTU0OWI5MWYgcmVsZWFzZTIyLW1haW50CisyNjUxMSA1MjI1N2FmZmUwYzllYTNhYTUzMjc3ODA2NzhjZjIyMDkwMmFlOWY1IHJlbGVhc2UyMi1tYWludAorMjY1MTIgZjc2OWI0OTU4ZTY2NjM5ZmJmNmMyMzdiNmU3YmM0MzkxZTA1YTU1MCBsZWdhY3ktdHJ1bmsKKzI2NTEzIDk1MDUyNzE1NjUxYjYwMGQ2MDRlZjU5NzRiOTZhMDU5YjUxYjU1OGMgcmVsZWFzZTIyLW1haW50CisyNjUxNCA5MzY4NTY3YTEwNDdjZTc4Yjk4YjkyZTdhZDg2OTkzYWVjOWM1ZjUwIHJlbGVhc2UyMS1tYWludAorMjY1MTUgMWViNDJmYzY4YjVmODVlOGYyOWNhYjZhZjMwMzBmZTg2M2ZkODc4ZSBsZWdhY3ktdHJ1bmsKKzI2NTE2IDYxZWI3MTgyNTM1ZWYwODUwOWNlMDZmOGY4YTg5MjI1OTgzM2RjNjggbGVnYWN5LXRydW5rCisyNjUxNyBhYWU4MTRmOTRiYWRkZmFkMDg4OTcyYmUyYWY0MTdlNjllNjM3NGI2IGxlZ2FjeS10cnVuaworMjY1MTggNTRhZjQ0OTY3NjA0NTVmNTVkMTllZGRjNDcwZjA5OTAzNGZiZWU4MCBsZWdhY3ktdHJ1bmsKKzI2NTE5IDRhYjIxZTM1NDQwM2UwNWJmYTFjYzVlZGQ1Njc4NDZiZWVhMWZiYTggbGVnYWN5LXRydW5rCisyNjUyMCBmY2EzNzljMzA5MDZlMWQ2ZmFjOWJjYjRhODVlYmQ5MzE0YmUyZTA3IGxlZ2FjeS10cnVuaworMjY1MjEgYzU0OGU3MjZiM2JjOGJlNmM3ZGEwYmVjZDZlYWE4NTIxODc1YTlkZCBsZWdhY3ktdHJ1bmsKKzI2NTIyIDM2MmMxYjgxZWU5Yzc5ZWI2ZTZhZjNlMTc3MDhiYzlkZGNkM2U3NWIgcmVsZWFzZTIxLW1haW50CisyNjUyMyBkZDQxNjM3NGFiMzg2MmUyZWFkOTBkM2NhNmZhMWZmNjU4ODIxMzY3IHJlbGVhc2UyMi1tYWludAorMjY1MjQgOGMxNDQyNDViMzE1Y2Y0NDRjYWUzNzNhMjViYzk1MmZlNWJjOTkwMSBsZWdhY3ktdHJ1bmsKKzI2NTI1IDg4M2Q2OWRlNTYwYmZmOTExZjczMmZiOTA0Mjg4N2M2YmI0NDVmNjEgcmVsZWFzZTIyLW1haW50CisyNjUyNiAxOTVmZTVmZjUwYWI5MDBiMWMyNTJkNGMzODhmZmRjODJhYjczNjllIGxlZ2FjeS10cnVuaworMjY1MjcgZjBkYzk3YmI5YzBkZmE1NzI2ZWViZTI3OTI1MTZiMzYzZmQwZTA2MyBsZWdhY3ktdHJ1bmsKKzI2NTI4IDBhYjI0NWRlN2RkYTc0Y2RjNDRkNTMyY2Y2YmI5OGMxOGZmYzI5YmQgbGVnYWN5LXRydW5rCisyNjUyOSBiNjNmNGExOWViZGQyN2Y4NzI2NGEwYzllNWRhNWUxNGRjZjExNjVjIGxlZ2FjeS10cnVuaworMjY1MzAgNzEzZmY4ODlkMDk0ODU5ZDQxM2Y0ZTFiMjE5NDdjZmMwZGYyZTA2MiBsZWdhY3ktdHJ1bmsKKzI2NTMxIDNhMGEyZjA3N2I4ZjAxMDlkNGIwYTAxYmU0NzI0NDg0YTIwNjIxN2EgbGVnYWN5LXRydW5rCisyNjUzMiBkNWNlN2ZmNTMxYmQxNmJlZDAxNjFjN2E1MzI2ZDE0ODBmOGE1M2VlIHJlbGVhc2UyMi1tYWludAorMjY1MzMgZjAzNTcyMDg0ODUxYjQ5ZWY4ZmEwZDlhMDNkMzRlMGQ3Yzg0YjUwZCBsZWdhY3ktdHJ1bmsKKzI2NTM0IDJmYzk0YmE1ZGJmZjEzMjkyN2RjZTdmNTU5NTRkYTdkZWRhMTM5MmIgbGVnYWN5LXRydW5rCisyNjUzNSBlMWQwZDdjNjk5OWE1MTY3MzhkNzZkNTkwNDQyZWNkYjMzMTMxYjM2IGxlZ2FjeS10cnVuaworMjY1MzYgMTYzMjg3NjFlYWJmNTk0Y2QyM2EzYjk0OTQ3NjE1MmNmNTE5Yzc2MiBsZWdhY3ktdHJ1bmsKKzI2NTM3IDY4ZDcwYjQxMDA5ZWQ5NjQxMGNmODQyZGQ0OTNkNmNiM2UyZmQxODIgbGVnYWN5LXRydW5rCisyNjUzOCBlZjczZmY3YTk4OWU3ZjBlNTk2NDlkZWI4MWY0NDUyZjRiNjk0Nzc5IGxlZ2FjeS10cnVuaworMjY1MzkgOGNmMWVmODE0ZWU0M2E4YjhjYzhkNTYxOGFkMTBiZmQwNTBiODYwMiByZWxlYXNlMjItbWFpbnQKKzI2NTQwIDYyMTg4MjhiMGExMTJiZGVhODY2Y2IwZTRlYWIyNDFhMmI2MjAwODMgbGVnYWN5LXRydW5rCisyNjU0MSAxYTYxODE5NmUxNWE5YzU3MzAzNWRiOTYzM2U5YmI0MTFkZDIxMGFmIHJlbGVhc2UyMi1tYWludAorMjY1NDIgMWRmOTMxOGIyYjhlMDZlM2YwMWE5YTI2M2NlZGE1YmIyNDU4M2JmOCBsZWdhY3ktdHJ1bmsKKzI2NTQzIDFhNzdhZjYxMTEwNTlmYmQ3NGQ3MmFhOTJhMzBhYTBiOTY1MDc2NWIgbGVnYWN5LXRydW5rCisyNjU0NCA5OThjYzQ4NDY0ZmVmYWI3ZjAyZmYxNDZiYTgzYjAwZWM5ZTY2N2JkIGxlZ2FjeS10cnVuaworMjY1NDUgYzI3N2ViYzNjZTBmMTkxM2JhMmVjMTU5YjhiMjg0YzRiNTAxZTJkMyBsZWdhY3ktdHJ1bmsKKzI2NTQ2IGU3Nzk5OTE2NTk2ZDM5ZTU5NjVjYTE5ZDIxZjUwZGRmYzRjMmU0MTAgbGVnYWN5LXRydW5rCisyNjU0NyBiNDM1MmY1YTM0NTIyMTI0NjhkNThhYjk2YjMxN2Y2ZjI0NzVjYjZhIGxlZ2FjeS10cnVuaworMjY1NDggN2MwZThkYmNmNTdhNTk0ZWVkZmE0MTY4ZGY0NWM0OTE4NDRiZmU1MiBsZWdhY3ktdHJ1bmsKKzI2NTQ5IDJmZDYzZDc1ZTkyZjk1Mjg1NGNmOTdlZjRmMzhhMmQyOGM0OGY1OGIgcmVsZWFzZTIyLW1haW50CisyNjU1MCAzNzQzNWY5ZjA0ZDY0NTUyZmEwMDQ4NmVjODFiMzkyZDc0N2MzYTNlIHJlbGVhc2UyMi1tYWludAorMjY1NTEgMGJjM2E0MWQ0ZTQwYTI2YjY3MTc3NWQxMWViODMxMjE4NDNiYjViMyBsZWdhY3ktdHJ1bmsKKzI2NTUyIGQ0NzhmOGFmYzM2ZGQ1MTg0YzhkZDczZmFiOGZkODRmYjdkOTQyMDQgbGVnYWN5LXRydW5rCisyNjU1MyBmMWQ2MTQyMTI4ZDNlNDkzOTkyN2E5OWI4MGZmMWFiN2QwNjliODU4IGxlZ2FjeS10cnVuaworMjY1NTQgNTA4ZmQ5NTJjOWU5ZjIzZTQzZTkwNDAyNWNlODk4MWFkNmEyNzE2ZCBsZWdhY3ktdHJ1bmsKKzI2NTU1IDBjOGU3NjJhNjc3YzQ4MWNiZTI5MTU4ZWM5OTZlN2Y3NDdhYjg3MmEgcmVsZWFzZTIxLW1haW50CisyNjU1NiBmM2JlMDVlNjJhZDFhOGQ2OGQwODhhNGY3MjNiMmZhNjcyZGUyZDg1IGxlZ2FjeS10cnVuaworMjY1NTcgNjBmMjQyNTg5YzMyN2E5Mzk1MDExZDE3MmY5ZDRkZDI5YzI2ZjBlYyBsZWdhY3ktdHJ1bmsKKzI2NTU4IDY3NTliZTA4OGQ2OGJkZTY3Y2IzNDE4ZjY4NmU2ZTgzNzkwMzM0MWYgbGVnYWN5LXRydW5rCisyNjU1OSA5NTBhMjJlYjhjYzhhZGVmNWFkNjkyMmI2OGY0N2VjZmYxODhmNDE1IGxlZ2FjeS10cnVuaworMjY1NjAgMjE3ZWVhOWQ2NjE1OTU4MTI0YjdmZjU4OWM0ZGYxMDY0NjYzMWViNSBsZWdhY3ktdHJ1bmsKKzI2NTYxIGQwNzhmODQ4YWMzYjg4MGY1YzFjODc1OTllNTQzMTRjOTU1OGI0MzIgbGVnYWN5LXRydW5rCisyNjU2MiBjNDA4ZThiMjY3NWFhMmVhZTcyMTE4YWM0MWVjMjdlODkxNGE5MjhhIGxlZ2FjeS10cnVuaworMjY1NjMgNDliZjVhOGZhMTUxN2UxYmY5MWEwNTdhOWFmNDQyZjA4YTIzMjkxNCBsZWdhY3ktdHJ1bmsKKzI2NTY0IDU4M2MyMjZhZmRlNmNiMjA0YTJiZGNiN2IyNjNmOTIxYzBhZGEwODggbGVnYWN5LXRydW5rCisyNjU2NSA2ZTU2OGVlMzFhOWNlYzA4MzBhNWQ5YjBiMDg5ZjkwMzAzY2UyNzJlIGxlZ2FjeS10cnVuaworMjY1NjYgOGY5YWQyYzA1ZGFkZWE5ZTVjM2U0MTRiMDcwMDk3YmNmOWUzYjA2ZCBsZWdhY3ktdHJ1bmsKKzI2NTY3IGZkNjA5ZDJjMTY2OTFmMDIxMDJmODc5NTVmODViOWU4MWUxNDExZTcgbGVnYWN5LXRydW5rCisyNjU2OCA1YzMwMTc3NTY2NWQ5Y2ZhZDg1ZjlkZjdjMzkzM2U1MTYxNDE2NmIwIGxlZ2FjeS10cnVuaworMjY1NjkgMzgyZTM3YWMzNzRkYTJjYTc1NGQ3NjZiZjllY2E4ODI1YjEyMTUzMiBsZWdhY3ktdHJ1bmsKKzI2NTcwIDZiMmFmNmRhZmU3YzczZjU2OGEyZjRjMGRlNTlhNWUxNDRiYzhkY2QgbGVnYWN5LXRydW5rCisyNjU3MSAwZTQ0OTdmYjJkZThkNGExMDk0ODFmZmQyMWZmZmM3NzM4NDI3MDAxIGxlZ2FjeS10cnVuaworMjY1NzIgZTE2ZGJmODc1MzAzNzM4M2JlODVjMTY5YzFlMjRlMTgyNGU3ZDMzNCBsZWdhY3ktdHJ1bmsKKzI2NTczIGVmOTE5ZDI5NWExMjBkNjU4NWE4YjA0ODk4YjBlNzc5N2M1MDU2M2UgbGVnYWN5LXRydW5rCisyNjU3NCAxOWY1M2FhNGUxZTUxNDc3MzI4OTQzYmY5ODVmMDg3OGEwMWQ2MzIxIGxlZ2FjeS10cnVuaworMjY1NzUgZDhlOWY2ZjU3ZjEzMzY1MzM5ZmI0OGM5ZDRhMTI4ZjJjOWQ4NGE1YSByZWxlYXNlMjItbWFpbnQKKzI2NTc2IGIxOWE1YWRiNjk5MDA0OTNhNmI2YmMzMDNmMzc1OWYwNTc4NzJhMTkgcmVsZWFzZTIyLW1haW50CisyNjU3NyBiYTg4OTk4OWE3ZWIwMWZhZGYwYTZkYjEzNjkyOTkxMTc0YjM1OGFjIGxlZ2FjeS10cnVuaworMjY1NzggZDYxNGFlOTQ4YmMzYWUzYjViZWIxZjdmMjZiYTRhYzFmODI1NjJkMSBsZWdhY3ktdHJ1bmsKKzI2NTc5IGIyMzZkMjA4MzBmZTUzZDU4ZjI0YmVhYzc5YmQ1MzhiMWUzYTc0OGIgbGVnYWN5LXRydW5rCisyNjU4MCBiMDhiNTFkY2UyNjRlM2Y2NDE4OGU3NGRkOWQwYjk1YjY4Njk3Y2EyIHJlbGVhc2UyMi1tYWludAorMjY1ODEgYmQwOGM2OTU1ZTliZGQxNjQ0NTA5ZjhiZWM1ZDQ1M2VmODBlNWUwYiBsZWdhY3ktdHJ1bmsKKzI2NTgyIDU1NGYyMTk3YTdhNzZjOGY3MzkxMzM1YTRlN2JjMWFjMzQ3OGJlYjcgbGVnYWN5LXRydW5rCisyNjU4MyBhYjRmYTc4YWZkZGY2MTlhMjZjN2ZjY2JmZWRlNjkyOWU3ZGYzOWQzIGxlZ2FjeS10cnVuaworMjY1ODQgZjVhZWVhYWYwMzk3NGUxZTdlNWVmN2EwYmE2MjIzYjg3NWRlYmQxZSBsZWdhY3ktdHJ1bmsKKzI2NTg1IGVkNWQ3NTkxMmQ2MGRhOTFkNWI5M2YyMzY2MTAxNzRkM2ZhYTRkYWEgbGVnYWN5LXRydW5rCisyNjU4NiBlNjM5ZTM0ZWY5MDExZThmM2FmMzhiN2M1YzFhZWQxMWJkYTA5NTU3IGxlZ2FjeS10cnVuaworMjY1ODcgZGQzNTBiNjM5MzA5OTk0NjhkMzhkMGNjYzI3ZTIxYzZkYmU4MWJjOSByZWxlYXNlMjItbWFpbnQKKzI2NTg4IGE0MzE4OTIzYzdhYTMzNDg2NGQxYjZjOGIzNTZjYTUxOTQ0MzU3MzUgbGVnYWN5LXRydW5rCisyNjU4OSA2ZGI2ZTNkYzgzNjZiZWM2NjY0MjVlNjdjZTAyYjdhMzRkMTQ4MTU0IGxlZ2FjeS10cnVuaworMjY1OTAgMmI0N2QwZGNmYTY2NmE4ZDU4MWMzNGIwYTZhYmI3MzhkNTE1OTVlZSBsZWdhY3ktdHJ1bmsKKzI2NTkxIDg2MzEyNTU0NTMwMTU5MzA2YjRmZGM4NDRlZmQ0NjBjYWRhNTE2MzUgbGVnYWN5LXRydW5rCisyNjU5MiA4YmI5MGU4YmYzNjNkM2QwZjRkZWZiMTczMjczZTUzZTc2ZWQxMThhIHJlbGVhc2UyMS1tYWludAorMjY1OTMgZDMyNTQzMzM3YTIxNzVlNWJkZTczODk5MzkwZDFiMjEwNDJhMWM4NCByZWxlYXNlMjEtbWFpbnQKKzI2NTk0IDQwYTE4ODA1NTM2OTFmY2M5OWIzZTVhY2I4NDVjMjU2OTJhYWYyN2IgbGVnYWN5LXRydW5rCisyNjU5NSBhZWYyNDhjMTY0NWEyNDJiYmM3MTVlMDYzMWNlOTA2YTRlMTBiYWUwIHJlbGVhc2UyMS1tYWludAorMjY1OTYgNzcwYzJkMmY1NDcyOTliZDUxMjMwNjAxNWVkYzUxMjI0YTQyMDRkNSBsZWdhY3ktdHJ1bmsKKzI2NTk3IGY1MWQxYTJkNGE0YTFmYWQxYWEzYmE0NmRlNGI0ZGI1YzA0MmEwNjYgcmVsZWFzZTIyLW1haW50CisyNjU5OCA1ZDEzNWU0MTRjNzY0MzJkZDNlMjE0MjE5OTFjMmYyOWUxNGRiZDc5IGxlZ2FjeS10cnVuaworMjY1OTkgZDMyOGU1YmI4YTg4MGY2NDgyNThiMjhiMTUxMWE4N2U1OTQzOGE2YiByZWxlYXNlMjItbWFpbnQKKzI2NjAwIGRhYmIwYTNmNDdhNTU0MjAyMDUxZmI4ZDVkNjc4YmRkYjJiMmQ2ZGMgbGVnYWN5LXRydW5rCisyNjYwMSA3NmM0NTAzNzExM2ZkYTM2M2MyMDk1ZjJiMmU0NWM4ZWY1MDRkYjc1IGxlZ2FjeS10cnVuaworMjY2MDIgMzA0NThhMTFiNWUwOTNhZDUzMGFmZjllODQ1NDNhZWY4NzcyMDFjZCBsZWdhY3ktdHJ1bmsKKzI2NjAzIDRlMjM0Yjg3MTcwYjA4ZWUyNmE1ZGFkOWE5YjdjOGI0NmQ4YjMyMmUgbGVnYWN5LXRydW5rCisyNjYwNCAyNGIzZWFkODljYWU4NzgzNjBlNDNiOWUzZTJjZWYzYWUxZWRlNjUyIGxlZ2FjeS10cnVuaworMjY2MDUgOGZlYzExMGU5ZDAyMDg0OTBkYzkwYWQyZjZmYTc2MDZmN2Y4MWI5OSBsZWdhY3ktdHJ1bmsKKzI2NjA2IGUwNDcwZjJkZDQxMGU4YmI3NTIxZjQzODNlZThjMDA1YmUzMWZmNjggbGVnYWN5LXRydW5rCisyNjYwNyA1ZmRhZGM5NDI2NjUwMmQ3MjY3M2RkMmYzZmYxMjU0MzQ4ODA1NzgzIGxlZ2FjeS10cnVuaworMjY2MDggYjBiNjMyMTA2ZmQ3NjVkMWNhYmQ5Y2Y4MThjNTRlNmU3M2QzODYwNyBsZWdhY3ktdHJ1bmsKKzI2NjA5IDk3NjUwZWRmNThiYjE3ZGIzOTYwMjI1ZThlZDFhZjFiZTY5MGU1ZmQgbGVnYWN5LXRydW5rCisyNjYxMCA1ZTgwYWQzNmQ4ZmZiYzQ0YjE0MmI3ZmI0OGY1ZjE1YTJlOTlkNjE5IGxlZ2FjeS10cnVuaworMjY2MTEgMjg0Y2ZjYTc0ZGY0MGQ2MTM1NmQ0MWZiYTBjYjZmMTA5ZWYwYWNjYiBsZWdhY3ktdHJ1bmsKKzI2NjEyIDQwNWIyOTFjMzIxZGEwZTkxYzExM2FmYjA0OWM3NGFiYzZmZmI0NDAgbGVnYWN5LXRydW5rCisyNjYxMyA0ZjMzNWNhM2YxMWNjMTg0NDE4MWMzMjZkMDE5YzU1YmUyNjM0ZTQ0IGxlZ2FjeS10cnVuaworMjY2MTQgNzJjYTBmZDRkY2E2YmY1NjU4YTIwZWY2NTMzYzFkZDNkZTBhNDI5ZiBsZWdhY3ktdHJ1bmsKKzI2NjE1IDliMTc1MDE4ZmRlZjc4NWNhMmM5ZjdlOTUyMGNiNTY2MjExZWM0NTMgbGVnYWN5LXRydW5rCisyNjYxNiAyOTIyMTEzMjE3Njk3YzFiMDcxY2I3OTM0ZDhkYjVlZjRkMGIyNzAyIHJlbGVhc2UyMS1tYWludAorMjY2MTcgYTgzOWE2YmU4NTc4OGQ1MDM3MDRhZjRmNDZjN2YyOTYzNTM0ZWNjYyByZWxlYXNlMjItbWFpbnQKKzI2NjE4IDY2N2IwMjZhODlkOTBlMmU0OGMxZjIwMTg5MjYwZTNjMDI2NGFkYzcgbGVnYWN5LXRydW5rCisyNjYxOSA5YTliZWMxMGFhOGM2Y2QyOGI3MjllYzAwMDBmNGU2MTY2NzFmNzM4IGxlZ2FjeS10cnVuaworMjY2MjAgMWNmODg1OTMxNjY5MzkwNzI4YmY3OWI3YzM5NmRlNzA2NzBiYTUzOSBsZWdhY3ktdHJ1bmsKKzI2NjIxIDllMzUzMmI3NTQ3MWU2OGY2Y2NmNjk4OTZkOTEzYmY4Nzg1ZTk1OGYgbGVnYWN5LXRydW5rCisyNjYyMiBlNTI0OWE2Y2MxZDg3ZmU2YzNlMzI5NDY4ODQ0OTc2MDNhMDk4YzQwIGxlZ2FjeS10cnVuaworMjY2MjMgNzM1Mzk3N2Q2YjY0YWNmMjBiZjI1NWY3YmNmMWRhYzE0NzMzZTI1YyBsZWdhY3ktdHJ1bmsKKzI2NjI0IDM3ODEyZjJiYTFhYWJlYjU4YWI0MTgzY2UxZTRlMTc0YjU2MGNhMDggbGVnYWN5LXRydW5rCisyNjYyNSBiNTcyZjdhMGJiNTYzNWM1NmY0ZGY3ZGI5NTRiOTgwN2IzN2JlMDI4IGxlZ2FjeS10cnVuaworMjY2MjYgOGQ0YjI1Y2VlZWZlOWY5MThlY2Y1ZWYxNTdjYTBlZWQxZWJiZjgyMCBsZWdhY3ktdHJ1bmsKKzI2NjI3IDdiNjZjZDE1ZGNlOTkwMzFhOTdhNDA2YzE0NGE3YzIzMzc5MzM2YmEgbGVnYWN5LXRydW5rCisyNjYyOCAyMWNlNWQ1ZTBlYzcxNGE5NmNiNjcyNzUwMDMxNzE3YmY3ODM4Nzk2IGxlZ2FjeS10cnVuaworMjY2MjkgNDkzMjA2YjcwMWRiNTE3NDE5Y2QyZjg3ZTM0MTc1MGY0YzZiMzczZiByZWxlYXNlMjItbWFpbnQKKzI2NjMwIGVjMmE1NTU5ZTc2OTViYmQ2ZTc1NmZlNWZiNjFlYjJlZmFkNjM2NjQgcmVsZWFzZTIyLW1haW50CisyNjYzMSBmOTcwNTg4ZTg5YjEwZDMyZWVjMDlkNzJmOTA3ZTEzMWNjYzUzYWIyIGxlZ2FjeS10cnVuaworMjY2MzIgODAzZTZhNjk1MzA2NGMzOTllMzM3OGIzYTVhM2ZhMmI3MmY1OTliNiBsZWdhY3ktdHJ1bmsKKzI2NjMzIDU4Mjg1NWY2ZDM1YmVkZmIwYjE2N2NhY2IyY2RiMWZkYTZhZDdkOTEgbGVnYWN5LXRydW5rCisyNjYzNCA3MGEwODk3MjIzOTM1YmYyMWNhMmYwNDQwNDgwNjg0NGMxN2ZhM2IzIGxlZ2FjeS10cnVuaworMjY2MzUgMjljYTllMTJiZjEwMTlhMmM5YjdlOWVkMDVhNjE5OGEyN2E1YTAzZSBsZWdhY3ktdHJ1bmsKKzI2NjM2IGQ0NzI5MGRkMmQ1N2U2NTE2NTYxNGRmNGIxZjllZThjOGUwYTZlZGQgbGVnYWN5LXRydW5rCisyNjYzNyA0NjQ1MGYxN2EwNzA1NjFjNmY1YWM4NzIxMjBmMjc2NDVmZDg4ZDkxIGxlZ2FjeS10cnVuaworMjY2MzggMzE0ZTA4ZTgwOTBmYjRkOTBhNmZiNGM1YjExOTUyYTI0ZjI1YWYzYSBsZWdhY3ktdHJ1bmsKKzI2NjM5IDVmNWNlYTI3MmI0NjIzMWMwOGUxMGU2MmNjMmUzMjdmYWRiOTQzZmMgbGVnYWN5LXRydW5rCisyNjY0MCAyMDA1NTlmY2M2NjRmN2I2NmI5MzgyODI1MWUyY2Q4MWIyM2E1YTdiIGxlZ2FjeS10cnVuaworMjY2NDEgOWUyMmE4NzAyZGUyZDg0ZDQ4Y2VkYTg3MGRkYjBmNzE4YTYwMzBkMiBsZWdhY3ktdHJ1bmsKKzI2NjQyIGY1ZmQ3ZTI5NTg5NzU5NWNmMTI3NmQzNWJmZTM1MjczMmI2NmE5NmUgbGVnYWN5LXRydW5rCisyNjY0MyBhNGU3NWQ1M2QzMmI0ZjU3N2I1NjFhZDVmYTA0YTQ2YWVkOTI2ZDk3IGxlZ2FjeS10cnVuaworMjY2NDQgM2VkZGQ5ZDY4YWY3ZGJjMDQ1ZjFkNjlhOGYzMDJiN2QxMjJiMjViYSByZWxlYXNlMjItbWFpbnQKKzI2NjQ1IDAwZjY2MzYwYmUxOTg2MDY1MjM0M2JhYjc5ZWExNjIxMTIwYmU2NjMgbGVnYWN5LXRydW5rCisyNjY0NiBhZmUyNjM2NzJmZDg0YmFiYmQzNTM4NWE0MjhjZmQ1MjE0MTFmZTc0IGxlZ2FjeS10cnVuaworMjY2NDcgZTExNDcxYTA2MjZjMTIyZDQ1YTkxODg3NDgyOTFkZWIzN2NjNjJlOSBsZWdhY3ktdHJ1bmsKKzI2NjQ4IGI2MGI3M2Q0MWViNGE4M2RlNGYxYWQ2MTg5OGY2OGQxNjlmNWE1NTAgbGVnYWN5LXRydW5rCisyNjY0OSA0NzI4YmVkZjRiNzg5YTcwNTE4ZTgxMmZlYjM2ODFiMTcxMzZjZDZiIHJlbGVhc2UyMi1tYWludAorMjY2NTAgN2M2MDk0YjE4ZDE2MTAwYWU5ZDQyZDQ3OGI0NzNhMzYxYTE4N2IwOCBsZWdhY3ktdHJ1bmsKKzI2NjUxIDVkZDUyYTliMDQzOGE4Njk1ZmMyODQzNzRjYTVmYTUyZTBlY2Y4MDcgcmVsZWFzZTIxLW1haW50CisyNjY1MiA2NTYxMGJjNGU2YTU3M2YwNDdjNTRkMmRkOTk1MDkxMTNkNDRhOGQ4IGxlZ2FjeS10cnVuaworMjY2NTMgYjkzZWQxYTRlNDlmMWE4NjkyZTAxOGEwOWRhNTE2NDNjZGIxNGFlMyByZWxlYXNlMjItbWFpbnQKKzI2NjU0IDhmMWIzNzFmZmJhZjYxZDdhYjI5M2RiNDcwNzI4NWQ4NTI5OTkzMGYgbGVnYWN5LXRydW5rCisyNjY1NSBiNzM1ZTg5Y2NkYTc0ZjgwZDcwMmYzM2IyZjZjMjdkYTRkYzFjNTQ2IGxlZ2FjeS10cnVuaworMjY2NTYgNmZhNzZiNGU1OWZlZmU4MWM1MTExOThjN2Y4OTY1ZDAyYTI3OTM3NCBsZWdhY3ktdHJ1bmsKKzI2NjU3IDE3Y2FmZTgwNWYwNDVmNjUyYTY1MjM0OWQ5Zjg1M2M4ODA0ZmNmOTAgbGVnYWN5LXRydW5rCisyNjY1OCAwOGU2Zjk0ZjNhYjAwNzk4NDYyMjVjYzNjNmU4ODQzMjA1Mjk2NGY2IGxlZ2FjeS10cnVuaworMjY2NTkgNWE2YmU4ZmE4ZGUyNGU2YzdhZmEzNzk3ZDUzNzE1OTBmMmZiNGRkOCBsZWdhY3ktdHJ1bmsKKzI2NjYwIDAxNDc4YTEzMjkwODliODAyOWNlMWNlYTgzN2JjMzM0ZWYzMDk1MDQgbGVnYWN5LXRydW5rCisyNjY2MSBiNWY2ZTlmNmU3ZjRiNzk4ZGUwODYwNzZiNTIwMmUzYThjMGM2OWU2IGxlZ2FjeS10cnVuaworMjY2NjIgNTczMmE5Y2M5MWM3YTk0MmIwYmZmYTM3ODhkMDZhZWJiN2I5YmU4MCBsZWdhY3ktdHJ1bmsKKzI2NjYzIDUzZWJhZTc4MjNkOTc0MmYzNTE0YmNkZDE4NTk4ZWFhMzcyMDcxYzAgbGVnYWN5LXRydW5rCisyNjY2NCBhMjE1MzI4NTY1MjQ2MDA5Njk2MmQzZmM0ZmIxZmIyZTQxNzUxNjc5IGxlZ2FjeS10cnVuaworMjY2NjUgMjBhN2IyY2YzYzFmZTM5NWU3ZTViNzNhOWNkMjkxNGYxMTc1MDYzNCBsZWdhY3ktdHJ1bmsKKzI2NjY2IGVmNmUzMWYwY2VlMTI3NjE2YjdiNzBhZWE0MWJiNDI3NzkwNGQwNGIgbGVnYWN5LXRydW5rCisyNjY2NyBjZjk2NDBiZTZmOGE5NTIwZTNmMjFjZDFjNmFhZWMwYWQwYzI3NWQwIGxlZ2FjeS10cnVuaworMjY2NjggOGFlN2I0MGFjNmQwN2ViZWQ2NTcwZDQwNWRhZDcxZTBlYWVlNzY4ZiByZWxlYXNlMjItbWFpbnQKKzI2NjY5IGQwNTMyYWUwNWVkNzJhYzJjNzFhOTNkMmIwOTQyNDkzNTQxNzc3ZWQgcmVsZWFzZTIyLW1haW50CisyNjY3MCA0Y2U2MTE2NTBkMGNlODdlMjM3MDMwMmI5NmIzZTk1NDFkMWFiODc4IHJlbGVhc2UyMi1tYWludAorMjY2NzEgMDE3NjVkMzA1MzJlMjlkNDZmYmI5NDRkYWM4NDhlYzA5MDFkMDg2OSByZWxlYXNlMjItbWFpbnQKKzI2NjcyIGJhNjcyMWFlNGI4MDkzM2NiNWI4MmUwMzVkNzBiNzgxYzQzZDJmOTkgcmVsZWFzZTIxLW1haW50CisyNjY3MyA1ZGJjNzllZTA4ODViZDU2M2MzNGZiM2FkYTAxNGUwMTI3ZWFlMGVlIHJlbGVhc2UyMS1tYWludAorMjY2NzQgMGIwODljOGFjMDc3MzAxMmVjNjBmNjkzZWNmZGYwMzU3ZTE1NDI1YiByZWxlYXNlMjItbWFpbnQKKzI2Njc1IGFhYjQyNzNhN2NmNzE2NzM5YWQ2YWU2NmZlNmI4NDY4YzE3ZWNiOTYgcmVsZWFzZTIyLW1haW50CisyNjY3NiA0YzhmNWE4OTBmOThiZWVlZjM3NmJhYWJiM2ExYjZmYjE0MDhjY2EwIGxlZ2FjeS10cnVuaworMjY2NzcgMTMzNzYzMzMyNzY3MzQwM2FmOGMwYzJmM2YzZTdjYWI3ZjIxNGRkZiBsZWdhY3ktdHJ1bmsKKzI2Njc4IGFmMWZmNDFiZTQ3Yjg0NTMwNmM2ZWJmN2QyZmQ0Njc0MTgxNDhhYjQgbGVnYWN5LXRydW5rCisyNjY3OSA0NmNmYjg1ZjBhYWU3NjA0MDdlMzRiM2I0Yjc1Mjg4NDBmNWYzMmQ2IHJlbGVhc2UyMS1tYWludAorMjY2ODAgYTQ0M2U1ZTVlY2U3ZjYxYzJjYWJjYWEyZTZjNzBiNTQzMDZkNDgyOSByZWxlYXNlMjItbWFpbnQKKzI2NjgxIDIzYmY2ODc3OGEyYTg1YzI5MWFiYWYxZmQxN2RlYzI5NmYyYTE5YmMgbGVnYWN5LXRydW5rCisyNjY4MiAzODg0NDkzNzA5NDYyNDdmMDdlNzdhODdlM2M5YjUyNGIxMjdiOTQwIGxlZ2FjeS10cnVuaworMjY2ODMgMTc0YmEwM2M4OWZiNDgxM2E0YThmYWNiNGM4ZWFmZDFlZjdjYjMxMCBsZWdhY3ktdHJ1bmsKKzI2Njg0IGFmNDk5YjUwYTA5NDY0M2M3N2Y3YjZkMTI3NzcxMzJmZTdjNzhkMzQgbGVnYWN5LXRydW5rCisyNjY4NSAzYzdiMjJkMTEyZDM1ZTNjZjIzZWU3M2MzZTI5NTk2ZWQ2YjkzZTdhIHJlbGVhc2UyMS1tYWludAorMjY2ODYgMTgwNmQwMmMwOGM0NDdhNTJmYWMxOTQ2ODU1MDljNDE1MzA3ZGI5YSByZWxlYXNlMjItbWFpbnQKKzI2Njg3IDY4OTI2ZDBhYWQ0MDNiZjhhNGRhYmRmMDMxYzNiOTRmOTA3NTU3YTMgbGVnYWN5LXRydW5rCisyNjY4OCBiYTI5MDEyODdjYjdjYTg2YmZjZDMxOTE5MTJmODZiMTgxOGNhNDkzIGxlZ2FjeS10cnVuaworMjY2ODkgOGI1OTI2MDMyYjU2YTIwNWE0Y2FlZjNlZTEzZjYzYmY2Y2UxZDUyYiByZWxlYXNlMjItbWFpbnQKKzI2NjkwIGZmZDVkODZlOTZjZWIwZjkyNDExZmFkYzM3NjVjMGZjZThlZTM4MWEgcmVsZWFzZTIxLW1haW50CisyNjY5MSBjMzMwNzdkYzBjODNiOWMxOWRhNjI3OTQxYzA1MGE5ZWVjYTNkYWViIGxlZ2FjeS10cnVuaworMjY2OTIgYWFlNmRjNmIyYTU4OThlMzJjMTAwYzdmNDU4MTA2MmM1ZmRjY2ZhNSBsZWdhY3ktdHJ1bmsKKzI2NjkzIGMxZDFhZTE1ZGU5MmM5YWY1NDY2OWYyZDk3NGIzMDBlOGZhMzg4NmUgbGVnYWN5LXRydW5rCisyNjY5NCBjZDAyYTM2NzA0ZmVmMjNhYmE1MzkxMTE4Nzk1ZjY1OWMyMjMwN2FkIGxlZ2FjeS10cnVuaworMjY2OTUgYzkxN2ZlOWJjNjU0ZmU5NjYwNjE3NzBkYzQwZDRkYjVkYzQ4NTljOSBsZWdhY3ktdHJ1bmsKKzI2Njk2IDNkZWJjOGMzNGNjOTEwYzgyMzcwOGRkYmM1YWUyYjUwZTk4YTBjYmUgbGVnYWN5LXRydW5rCisyNjY5NyA4N2M5OGFmNjFmYzRhYjk1Y2YwMzRmZmJjZmY5NmRmZWY4OTU5MDY2IHJlbGVhc2UyMi1tYWludAorMjY2OTggODM4NDI3ZjBhZjIzMmQxNGRhNDY5ZTFlMWEzMDIyZmFmODM0MDQ3OSByZWxlYXNlMjItbWFpbnQKKzI2Njk5IDk3ZTBiNTA0YzAwMDk4ODFhZWI5NGVhYmI5NTY4NTIwMTA1NzllODUgcmVsZWFzZTIxLW1haW50CisyNjcwMCAwMmQ1MjgzYjFlMjFmYzYyZTZlOWFjMTliODZmODU2YTkwNjFkZmE2IHJlbGVhc2UyMS1tYWludAorMjY3MDEgMzY5N2EzMzY0MDBmYWJjMjYxNDA2NDY2YTY3MDE3ZWJhMGYzMWEzOCBsZWdhY3ktdHJ1bmsKKzI2NzAyIDU1NDIzYzFhYmNkMTQ5ZGU4ODMwZTVmYTY4ZjdiM2RiZDdlZDBkZWQgcmVsZWFzZTIyLW1haW50CisyNjcwMyAxMzA1NmI2MjY3YTI1ZjE2ZWNhMGVhYmY5YzY2YTdjNzZmZWVjYTBmIHJlbGVhc2UyMS1tYWludAorMjY3MDQgMDNiMWU5ODliMWQ5Nzc0NThkNzdiYzZkMzk2NTE2YjBkZDA1Y2RhMCBsZWdhY3ktdHJ1bmsKKzI2NzA1IGJmZmM3MjM2YzRiYTI4OTE0N2RlOGRkOGFhYjdhMzcwOWM4MTU0ZGIgbGVnYWN5LXRydW5rCisyNjcwNiBkOTNmNTM3YTc1MmI4ODZlZGVhNjRhZGZiZTE4Y2Q5Yzg4YjU0ZDczIGxlZ2FjeS10cnVuaworMjY3MDcgODdjNzE2YjI4YTNlY2YwYjBmYjcwZGY0ZjdhMmIxNTg1MTA1MjkxYSBsZWdhY3ktdHJ1bmsKKzI2NzA4IDJkMmZhYTUxZGNmZGFlOGNlM2UwMTI5MDQ0NGUyNjg4YzQ0MDYyMjIgbGVnYWN5LXRydW5rCisyNjcwOSBhYTA4NTU0ZDFhOWI0MWFiOWEyMzI0NzZjMGQwY2I0NjY2OWJiYzk3IGxlZ2FjeS10cnVuaworMjY3MTAgMWM5Y2UzNGQ1MjlkYzM4ZjI5NjA3YzRkY2E2NzU5MzBkYTQ4OTU4MiByZWxlYXNlMjItbWFpbnQKKzI2NzExIGI0OTFhYjc4NzdkMmQyYTI1YTk3OTM0YmJiMGYyOTAyMDI0ODY5YzggbGVnYWN5LXRydW5rCisyNjcxMiAyMzhkZmVjOWM4OTllOGUzM2RjNDc4MTBiNTdjOTE1NzlmY2RhMzdhIHJlbGVhc2UyMi1tYWludAorMjY3MTMgOTgxYzZiNmZmMmYxNzIwMTlhOWQ0MDA5YmViM2JhYzI5YTIwOGYzZCByZWxlYXNlMjEtbWFpbnQKKzI2NzE0IDljOWUwNzM1OWQ2ZTY0MDQ3YTljZmFlZWU3NzZiMjVjZDAxODI2MjUgcmVsZWFzZTIxLW1haW50CisyNjcxNSBkNDY2YmMxOWY3MzEyYWU1NzcwYmVhMTQyMjVhODRhZTk4ZjQyYzBhIGxlZ2FjeS10cnVuaworMjY3MTYgNjdiY2I0ZjUyMzdmMjQ1MjYwNzljZTVlZjMyMGFjMGRiZjYyNWVlMyByZWxlYXNlMjItbWFpbnQKKzI2NzE3IDBhNGQ2YjI0MGFiMjQ4NzdiZGVlODQxZjE3YmZjZmVlY2JjOWI2MmYgbGVnYWN5LXRydW5rCisyNjcxOCAwNjZkODI3NWFkNjQzYWJlYmY4M2JkMWFmODNhY2U4NDRhZDAzMmJmIGxlZ2FjeS10cnVuaworMjY3MTkgZmQ2OWYzZWU3N2VhYzFmNjJhMjY3NDIxMzQ2ZGQ4M2I4MmJiN2Q2MSByZWxlYXNlMjItbWFpbnQKKzI2NzIwIGVjZjA3MGMzNDk5OWU2NTYzN2FjOWFkMzgxZWZjYzgwN2ZmYmYwZWMgcmVsZWFzZTIyLW1haW50CisyNjcyMSA3YmY3Y2YzYTM1YjkwNDRjZGFjMzBkM2UyOGRlMGNmZWNhNWFkYzRkIGxlZ2FjeS10cnVuaworMjY3MjIgYWVlOGYxNmYyNzc0MWQxNjgyMDg1NDEyOGFhY2M5NWM5MDA0MzExMyBsZWdhY3ktdHJ1bmsKKzI2NzIzIDE4ZjhhN2I1NmY4OTAwMjNlYjBlYWUwOTZiYTY1YTk2ZDY4Y2U3MjcgbGVnYWN5LXRydW5rCisyNjcyNCAzNjg0MGE5ODk3MjJkN2U4NDQzZTg2ZTg5YTJkZTFjOGEyZmQ4OWRiIGxlZ2FjeS10cnVuaworMjY3MjUgYmVjMTU3ZGJlZTJlMDhhNmIyNTY2M2RiOTk0NGQ0YzJhMmMyN2NlOCBsZWdhY3ktdHJ1bmsKKzI2NzI2IDNlZmQzNGZlNjY2ODA2NGFhNDNmM2ExMTlkYmU3ZGRmYWYzMThmZmQgbGVnYWN5LXRydW5rCisyNjcyNyAzYjMyM2RmOTQ1YmI2YmYxOWNmYWUzNjViZGQ5ZGY5ZTY0ZDYzNmNlIGxlZ2FjeS10cnVuaworMjY3MjggYjI3ZjM2Y2YzZDNlMDIzZGNlYWE2ZTc3MGFhNzc4OWM4MmQwY2U3ZSBsZWdhY3ktdHJ1bmsKKzI2NzI5IGQzZDg1N2E4ODJmMGY4MzliNzcxYjVjN2NjZGIwY2Y3YWZiYjljNzkgbGVnYWN5LXRydW5rCisyNjczMCA3ZWQ0OWFmMDQ4YmEwOTNlNDczODRlNzQ2NGY3NjRmOGNiYzI5ODBjIGxlZ2FjeS10cnVuaworMjY3MzEgMTA1YmU5MzZiNWMzNmQ2Mzc4ZTcxN2E1MzI4MDZjZGNkODcxZjg5ZSBsZWdhY3ktdHJ1bmsKKzI2NzMyIGFkOTdmY2U5ZGNmZTI1ZWM2OGE2NDYzZjBiMGYxMTQ1MjViMTRmZmUgbGVnYWN5LXRydW5rCisyNjczMyBjNTY4ODhkMTcwOTg0ZTEzMmYzZmVjODhiZGY4MTg0OTJiYTcyMWM0IHJlbGVhc2UyMS1tYWludAorMjY3MzQgNGFmNjY5ZjljNDJlMDgyYjFhZTdlZjU5OWFkMmNkNjU0MzQyYTgyMiBsZWdhY3ktdHJ1bmsKKzI2NzM1IDY3NTFlOGJjZmQyOTNmY2FiMDc2NDBkM2ZlMjQ2OTAwYTUzZDcyYjQgcmVsZWFzZTIyLW1haW50CisyNjczNiAzYjgyNTY3NWQxMTk0NDcyNGFmYWI4N2Q0YmFiMTNiNDJiNjNmODI3IHJlbGVhc2UyMi1tYWludAorMjY3MzcgY2JiZTI4OWU3YzJlOTI4NWYzOGNlNGZhNzBhYzNlYmQ2NzFkYjA4NCBsZWdhY3ktdHJ1bmsKKzI2NzM4IDJmN2Q4NjlkYWQ0ZGY3YmJkZjY3MTE5MWZlNmRlZWFjMDFhZDkwZmUgbGVnYWN5LXRydW5rCisyNjczOSA0ZDZiZWFiNzY2ZTI3NGQ5ZjlmZTMyMTY5ZGJkMmQxMzUzMDA0NDU3IGxlZ2FjeS10cnVuaworMjY3NDAgZTVkZjA4NmVkNDU1MTg1MGVhYjlhOTY5NTI2NjkwNzg0ZjY4ODMyNSBsZWdhY3ktdHJ1bmsKKzI2NzQxIDliZTAxYjdiNmM4MGFiZGM5ZDMxZGMwMDY5NDNlMmU4ZmQzNmY0YjggbGVnYWN5LXRydW5rCisyNjc0MiA4MmE4NTBkYjdlYzU3N2U4MjcwMDgwN2E4NTdmNWNkZTVjOWVkMGFjIGxlZ2FjeS10cnVuaworMjY3NDMgMTMwM2RjMDcyM2ZjYzEyM2M5Y2YwNTg2OTQ2MWZiN2E1NGFlNGU3OCBsZWdhY3ktdHJ1bmsKKzI2NzQ0IGNhOTA3ZjI4ZTJkNTU4MmFjZTE2MmNjNzU4NDI3NWZhZjRlYzU1MTcgbGVnYWN5LXRydW5rCisyNjc0NSAwNzE5YTM3N2E2MTZjMTM5ZmJkMGQ4N2Y0YzMwYzgxYTg1YmYyYjE2IHJlbGVhc2UyMi1tYWludAorMjY3NDYgNDIyNzg0NzA5MzgwYWE0ZWE3ZmI0ZDM2NGI2ZjBiNDVhMWM5ZWUxMyByZWxlYXNlMjEtbWFpbnQKKzI2NzQ3IGY4ZmY5ZmFiOTJjZWU0NTRmYzkzMWJhYTljMTY2NzIxMGVkMGIxZjEgbGVnYWN5LXRydW5rCisyNjc0OCBhOWM5ODE4M2ZmODdmZTY2NThkZDdkOWRjM2QwMzZlOTJjNjE3YjI1IGxlZ2FjeS10cnVuaworMjY3NDkgNmE3YjI2YmRlMGU4YjljODYxZDRkZGNhNDRjYzk2YjU4NDkyMWZiYyByZWxlYXNlMjItbWFpbnQKKzI2NzUwIGM3OGI1MmRhYzk2MzBjMDQzYzZhZWUzM2NlMWJiOGI2YTQ3YTQ2ZDQgbGVnYWN5LXRydW5rCisyNjc1MSA0MGZlMTgzYTg5MjIwMmQ1YzY0NzdkNGVjYzJhOWU4OTYxNmI5NGY2IGxlZ2FjeS10cnVuaworMjY3NTIgZmE3MzIwY2IzN2Q5NWVjNGZmODU5MDA3NTA3OGMwYTBmYzliMmVmYSBsZWdhY3ktdHJ1bmsKKzI2NzUzIDIzMDA3MzQxNDUwNDBiY2E4MWFlYmJkOGNiNmQ4MGU1ZTQ2M2Y2NmMgbGVnYWN5LXRydW5rCisyNjc1NCBkZmQ5OGU5NTIxYjM3ZWY5MDlhMDdlYjMyMWM5NmQ0ZjQ1NDZjYjFhIGxlZ2FjeS10cnVuaworMjY3NTUgNDRmZWNjMzM4ODlkOGMwMGRkMTFkZmY4OGI0YjRmMjljMTAwMDJjMCBsZWdhY3ktdHJ1bmsKKzI2NzU2IGJmZTkxZTFlMzFiMjAwNjI3NjkzYzNmMGQyNTk4ZDQ5MWNhNDgzYjkgbGVnYWN5LXRydW5rCisyNjc1NyAzODg0MWJlYTI0ZmRkZGU5NTNjY2E4NzUwZDczYTlhMzcyYmRjMWYyIGxlZ2FjeS10cnVuaworMjY3NTggMGQ4NzQwMDk0YmVjYTI2ZDcwZWU2NWRlNDIzY2ExM2E3NDcwYTE1ZSBsZWdhY3ktdHJ1bmsKKzI2NzU5IDk1NmQwMzhiMWRkMjZmNTZjMTU3YzY0MDI3M2RmMzA3N2M0MzlhZjYgbGVnYWN5LXRydW5rCisyNjc2MCBhODY4YmFlYmU5NTY0NjU2ZTM1OGJkZmIyNWQ0ZGE3YzY3YjVkZTA3IGxlZ2FjeS10cnVuaworMjY3NjEgOTM1NDJlZmFjMDY2NjliYWFhODRhNzkwNTNiMjhkMzE3ZDQyNDBhMyBsZWdhY3ktdHJ1bmsKKzI2NzYyIDRlNzgxNWM5NWQzZWFhOTRkMzAzMWU0YjU5NmQxZDMzZmExOWQ1NDEgbGVnYWN5LXRydW5rCisyNjc2MyBiOTcyNmJhNzFhYTNmNWU3YjJjNzViNzQyYWRiYmVhZjMwZWZkMDUxIGxlZ2FjeS10cnVuaworMjY3NjQgYzVjMmIyNGRiOGE3MTE5NTA4OTlhZjM0ZDBjNjEyMzFlMjQ1ODJlMSBsZWdhY3ktdHJ1bmsKKzI2NzY1IGIyYWEyNjQ4ZGYyN2IwYWU2ZDY5ZmEwNmFkYjg1ODE3MjI1MGVmZjUgbGVnYWN5LXRydW5rCisyNjc2NiA5NzdlNTM0ZmM2Yzc3NDIyMGNkMjU4YmJlZDZmYTNlMGYzY2JkYzFjIGxlZ2FjeS10cnVuaworMjY3NjcgZTBlZDY4YWRiYTMzMjc1NmY0MjNhMzJlNjJkYjhjMjYxNTBmYzFlMyBsZWdhY3ktdHJ1bmsKKzI2NzY4IGVlMjkyYTUzZTVmY2U4OTRmMDVhNWQwYTY0YmMxOTY3ODgyMTU1MzIgcmVsZWFzZTIyLW1haW50CisyNjc2OSBjNWM0YzExMjEwODc3OTdkZWExMGYzYjQyMTI5OTkxNjdhNzA3ZTU5IGxlZ2FjeS10cnVuaworMjY3NzAgMTBhZTJkNjExYWU5NDE3ZDY4YmEyZTE4MWMwNGU2ZjQ0OGViMjFiNyBsZWdhY3ktdHJ1bmsKKzI2NzcxIDQ3MzM4NWZjYTI5OTI4ODNmYmU5NDY0ODVlMjkzMWIxMzI2MDg2NWUgbGVnYWN5LXRydW5rCisyNjc3MiA5NGJmNmFjZWZmNzg4YmVmYWRmYjU4NDQ5ODkwMTYwZTgyYmYwYTgyIGxlZ2FjeS10cnVuaworMjY3NzMgMjMzOWRkZTZiYWJlY2Y4ZjEyOTJlNDg0ZTdkZjMwMjE1ZTdjMGVlZSBsZWdhY3ktdHJ1bmsKKzI2Nzc0IDYwZDg2YjJlYWIwZmFmYTIyODkyZTQwODQzYzVhZTBkOGQ3MzQ0YzYgbGVnYWN5LXRydW5rCisyNjc3NSBlNWVmMTY2ZmMyMmY2MjNlOGM2MGZmYzE2ZWU4MTU4YzI0MzYzMmI4IGxlZ2FjeS10cnVuaworMjY3NzYgMjExYjE2YWMwNjZhNzA0ODM0NzIxMTI4NzRiNzhjOTdjNmVhNTdjOSBsZWdhY3ktdHJ1bmsKKzI2Nzc3IDU4Y2FjNzA2MDJhYTY5OTM1OTA5NDY5YjdkNmI3Zjk0Zjc4NGExOWEgcmVsZWFzZTIyLW1haW50CisyNjc3OCAzOWU1YzBkNmMxODIyYTgwZTdiZjljODhiNmVlYWRlZTAxZTdiYzYzIHJlbGVhc2UyMS1tYWludAorMjY3NzkgODFkMDY3MjA1Yjg2ZjJiN2QwNTFlZWViMzAxNWE5ZWY1ZmE3ZThmYSBsZWdhY3ktdHJ1bmsKKzI2NzgwIDRmNjdlNTY2ODZlNThkOWFlZGNlNjk4YzA4ODE5NWFhMTcxN2ZjNjcgbGVnYWN5LXRydW5rCisyNjc4MSA5MGVmYTFjYWIzYmMyYzc1NjFkOGQ4NzFiOWM3NGI2NGRmYmY5MjUyIGxlZ2FjeS10cnVuaworMjY3ODIgNjQyYTQ1M2U3YTJlOTIzZTA1OTAwZTYyNTkyMWU4N2MyMGY4NzQ2NyBsZWdhY3ktdHJ1bmsKKzI2NzgzIGYzOGJkYjJmY2FlMDJkMDU1N2M3ZTJmMDFjZWI4OTkyYTQ0NDE3NzYgcmVsZWFzZTIyLW1haW50CisyNjc4NCBjMzc1YzViMjY2MzEyZTEzMDM1OTg0NDIyNTk5NzhkYzE0YmU2MTk2IGxlZ2FjeS10cnVuaworMjY3ODUgNjM4OTBiYzI5YTdjYmY0Zjg5NjZiMjA4MDE2MjliYWE3Zjg3YWUyYSBsZWdhY3ktdHJ1bmsKKzI2Nzg2IDYyNDAzYjkzZjQ3MGIyMmUwOTgyOGEyODlmN2YxY2VkMDRkNmMxZmUgbGVnYWN5LXRydW5rCisyNjc4NyAxMTU3MjgxZjAwYTAyYjEzNzdmOGY3ZDFlYjE4MWQ1YWRhMmJjYzk0IGxlZ2FjeS10cnVuaworMjY3ODggYTRkNjc1YjhiNTNjMDI0MDc5M2JlOTI1MjQ1OGIxMDMwYWNlOWU0MSBsZWdhY3ktdHJ1bmsKKzI2Nzg5IDhlYmE0YzkyZGYyYjRlNGU1NjE3ZTVkZjQ5MjlkNjVhZWJlNjczYjIgbGVnYWN5LXRydW5rCisyNjc5MCBlMTFlOTUwYWNjMjM1MTYxMDUxZmJmYjg3MTkwN2RhNTI1Y2NkMzIwIHJlbGVhc2UyMi1tYWludAorMjY3OTEgMWJlNmU3OWIxZDQ2MDUwODM5NmE1M2IzMTcxNDcyMWZmNGQwMjJmYiBsZWdhY3ktdHJ1bmsKKzI2NzkyIGFiNTIzMTJmODJjNzkxODg2NDBiYzFhOTE4NTIzNTU1YzZmMzJmMDkgcmVsZWFzZTIyLW1haW50CisyNjc5MyA1NjI0MGJjZGE4OGM5MWYwYjEzMWM5ZmM2MzZkNWM4MGI1Y2MzZGY5IGxlZ2FjeS10cnVuaworMjY3OTQgZmI2NGYyMTE3NmFmYWVhZGUzNTQ5OWQ4ZjQwYWUyNmJmMDRmZDk0MSBsZWdhY3ktdHJ1bmsKKzI2Nzk1IDk5M2M3NzU4N2RjYTIzOTIzMmNkN2IxZmZmNjc1NTg0Y2M1ZjQxNDYgbGVnYWN5LXRydW5rCisyNjc5NiAyNWZkNGE4ZjllMDkyMjc0Y2QzZTMyM2U5YjEyYWFlMTczYWY4YzI5IGxlZ2FjeS10cnVuaworMjY3OTcgZjlkNWUxZmIyYWE2OTczY2FhNDJmN2VlZGJiNDlmY2U0NGEwMGJlZCBsZWdhY3ktdHJ1bmsKKzI2Nzk4IDgyNDYwZmRhNGY3NjcxMGI2M2EyMTJjYWVhNTA4ZGQ2ZTRiZjI0MTkgcmVsZWFzZTIyLW1haW50CisyNjc5OSAwOGQ2YzhiNzgwZDk2OTlkMjk4ZDY5ZThjZGI0Y2I1YjZlYzMwZGY0IGxlZ2FjeS10cnVuaworMjY4MDAgZGUwYWMwM2U1ZTcyZDhjODU2ZmZmOGFjZmMyZTBmZWQ0YzdlOGIzMyBsZWdhY3ktdHJ1bmsKKzI2ODAxIDI4ZjcxYzRiZDE2YmI1OTNhZDUwNDE0MTUxNjFiZjhiODU5YWMyNGMgcmVsZWFzZTIyLW1haW50CisyNjgwMiA2YjJiYTNiN2VkMzI2YmU0YWE0ODc5MzBkODJlYWY0YjM0ZmE4YjQ5IGxlZ2FjeS10cnVuaworMjY4MDMgYjE1ODk2MDUzOTMzMzRhMzA0MDcwYTlmMTY0MjcxYTZkODlkMjMwZSBsZWdhY3ktdHJ1bmsKKzI2ODA0IDAzZGZlN2QzNDNkYmFjM2Y4MGI1OGE5NDE2ZGMyOWNiZjg1ZWYxYjcgcmVsZWFzZTIyLW1haW50CisyNjgwNSBmMTIxOTMwNTkyMzlkYjJhNDk0MTg4MjVkYTZiZDZmYzFkYzI0MDNmIHJlbGVhc2UyMi1tYWludAorMjY4MDYgZDNmMjc1YmQyYzYwYTFkMGY4NjEwZGEzYmQxMDA1OGIzNTY1Y2Q5YiBsZWdhY3ktdHJ1bmsKKzI2ODA3IDE5YTk0OTI1Mzc4MTJmYTIxMTgyMGM1Njg3MWRiNTQ4ZjA5OGViYmUgbGVnYWN5LXRydW5rCisyNjgwOCAwOGNjYjBmM2UyZDQ5NmM3YmU3NmFiM2IzZDMxNjI2ZWVhZjRkZGIyIGxlZ2FjeS10cnVuaworMjY4MDkgNDUzZTU5YTQ3MmIyMWEyOGY5YjE0NzBiYzMyMDNlZTM0NDM1YTQ3ZiByZWxlYXNlMjItbWFpbnQKKzI2ODEwIDcyZjBjMWEyNDVmOGRmOTRmMGYxNjdhMmYzOWQwYjIyM2EyZGY2NjggbGVnYWN5LXRydW5rCisyNjgxMSAxY2M5M2Q1MDFiNDVmMDZiODRiYmVjN2NmYjQ3MGVhYmRkYWI1MWFlIHJlbGVhc2UyMi1tYWludAorMjY4MTIgMjczZGQyNTA4YzU3ZTFiNjU3ZDY2YjhmMmM0NzgxNjVmOTUzNzk3NCBsZWdhY3ktdHJ1bmsKKzI2ODEzIDZiYWUwYzMxYmJmYjI2MTA0ZmEwZmY4ODRjYWJhZDc1N2Y4YTI0ZDcgbGVnYWN5LXRydW5rCisyNjgxNCAyNGUyMzM0ZTdiYjJmOGFmYjZmMTg1YmY3ZjMxZjg2OWE4MThmZWU4IGxlZ2FjeS10cnVuaworMjY4MTUgMjZiOTI0YWQyNjZjZmI1NmFmN2FhNzdmYjQxMjE2YzlmMzUwYjIyYSBsZWdhY3ktdHJ1bmsKKzI2ODE2IGY5OGEyN2NiOTI4MjM5NDJlNTJjNjU0OWFkNTEyMDE5NjY0YjgwMGIgRFNfUlBDX0JSQU5DSAorMjY4MTggNjhjNzc2YmE1ZWE1YWQxYzVkZmJlZDVjNDliMTgxOGFjNTIwN2NkMiBsZWdhY3ktdHJ1bmsKKzI2ODE5IDY0ZWIxMTliODE2ZDVhZDVmNTE4MmJlOTZiOTAwN2RmMDg5MmQwN2YgcmVsZWFzZTIyLW1haW50CisyNjgyMCBkZGI0MWU4N2Q2NTE0Zjc2MGUyNzg2ZTNkOWQ2NmE4ZWMyNTVkY2FkIGxlZ2FjeS10cnVuaworMjY4MjEgOGE0NWJmZDZiNDcxN2MxYjQyNWE1YzhhNDU4MzgzNTdlMjMzOWU5ZCBsZWdhY3ktdHJ1bmsKKzI2ODIyIDdlNTE0MWI2OGM1ZjFkMDRkYzBiNzc0MTA3ZGY3ZTk5ZmFkYWMyZWUgbGVnYWN5LXRydW5rCisyNjgyMyBkOWJiNGVjM2U3NWIzMjc4ODJiMDAyMDM5N2MyYmUzZmY2ZTVmMTcwIGxlZ2FjeS10cnVuaworMjY4MjQgZTQzYWFmZmZiMDNjNjc2ZjFhNjFhOWVhNDhkZWZiNzU5NmVlZjliYSByZWxlYXNlMjItbWFpbnQKKzI2ODI1IDYxMzQ4YWEyZmY5ODZkNWJmZDZjZjdkOTk4NzdjOWViOWJjMzZmZGYgbGVnYWN5LXRydW5rCisyNjgyNiA4MTgzODU5ZGNmY2QyMTUxNTVjZmU4MTJkMTBjZDk1MmRkM2YzMWExIHJlbGVhc2UyMi1tYWludAorMjY4MjcgYmU1NGJhNGIyYzQ0MGU4ZWM5NzIzMTM2YmJkY2M5N2E4YTUwM2I1ZCBsZWdhY3ktdHJ1bmsKKzI2ODI4IGMyNTU2ZTMwZmNiNDgyYWRkMGVhMjAxZGM0YjA3Y2M5MTk1MDUxMTAgcmVsZWFzZTIyLW1haW50CisyNjgyOSBhYjIzNDEwN2UyNjczMjdjNTMxNjliZGZlNjkyYWM3M2U5MmI2NjNjIGxlZ2FjeS10cnVuaworMjY4MzAgM2FiZmYxMWY4MmIzNTM3NTY5YjgwZDJjYTE3NTdmZGZhNzFhODAyOSByZWxlYXNlMjItbWFpbnQKKzI2ODMxIDEwYzgyMDA4M2MyZGMxNjQ0YzgyZDBjODgxNDMxMTVkMDI2MmQ4ZGYgcmVsZWFzZTIyLW1haW50CisyNjgzMiAxMmI0NjU3NTg3MjlkYTI5MDA0NGM3ZDk0ZGFlMmQ2ODE2ZGRlMDU5IGxlZ2FjeS10cnVuaworMjY4MzMgYmQxYzRiNjVkYjc5MTA0ZDQ1ZWZjN2ZiMWZiZjgyNDc5MjE2YmM2ZCBsZWdhY3ktdHJ1bmsKKzI2ODM0IGEyMTk4ZjcyZDVlYmVhMDA3ZjNkZjVmMWVmNWE3ZDNlMjQ4YzVmMzIgbGVnYWN5LXRydW5rCisyNjgzNSBiZTBiYzU1ZWNmNGEwZjYxOGZiMDg1YjgzZjQ3MTQ0NzQ1YzZmZmZmIGxlZ2FjeS10cnVuaworMjY4MzYgMDc3ZDQ0YjA0MDViZTZiMjBjYzg1MzNlZmNjNjVjMTIxNmM2NzAxYyBsZWdhY3ktdHJ1bmsKKzI2ODM3IDM0NGFlNTMxZTZhNzNlMjI3MTE3MTc5YmVhMDRhZTMzZDVhMmM5YjQgbGVnYWN5LXRydW5rCisyNjgzOCA3Y2UwMTg4Mzc4ZWYzYThkODY3NjFhOGJmMTY1MTUwZDc5ODhlNjkwIGxlZ2FjeS10cnVuaworMjY4MzkgNTBhOTdhOTYyOTk4N2EwMmNiNzEzNjk5OWYzMjAxYzY1M2ViYWYxMiBsZWdhY3ktdHJ1bmsKKzI2ODQwIGQzZTAyNWVmMWZiMmRmOThjMDg2MWExOTc5ZGQ0MDA0NmMyMGQ3ZGIgbGVnYWN5LXRydW5rCisyNjg0MSBkMzViOWZmZjgxZTA5YjI1ZmUzN2I1ZDU5ZTkzZTljY2Q4M2UzNjI1IGxlZ2FjeS10cnVuaworMjY4NDIgNzMyNDlhYmVkNjgzNzYwZGIyMThiNmQ2MmRmMjZmYThhNTgwOWMwNSBsZWdhY3ktdHJ1bmsKKzI2ODQzIDVkNzNhMmM3ZmFlNjNmZTYxMzI2NjZiYWNjNmM5YjViZTMzZDkxZTcgbGVnYWN5LXRydW5rCisyNjg0NCBkOTE3ODU3ZmQzMzRlYTllOGQ1Mzk5MDU0YTVhNDFiY2I3MDEyYWZjIGxlZ2FjeS10cnVuaworMjY4NDUgNWJkMzBhMzY4OTdiMWU0NzYwZGM0NzlkMGYxMTFiMTkzODg1ZTJiMiBsZWdhY3ktdHJ1bmsKKzI2ODQ2IDE3NTYyMTA2YzJhMDQ2NjgyZDcyNjg3YmFmMzIwNTIzYjMwY2RkN2EgbGVnYWN5LXRydW5rCisyNjg0NyBjZGQ1Yzc1MTgyM2NkOTI4ODVlNWExNzZmYTExNWVmOTE0MjZmZGE5IGxlZ2FjeS10cnVuaworMjY4NDggYzc2ZTVjMWM2ZTQ1NDViNTc0MGI0NDNiNmM5MWFmZjg1NzJkYmI5OCBsZWdhY3ktdHJ1bmsKKzI2ODQ5IGJiNTc5MGM2Y2RhYTE0NzM3NDVlYmFlMjY1MWFiOWMwYzAwOTkwMjcgbGVnYWN5LXRydW5rCisyNjg1MCA5YjFlM2I3YmQ3ZjEyNDI2OWJjMzY4YjkzYzI5NjQzNzcxZWFhODdkIGxlZ2FjeS10cnVuaworMjY4NTEgYmU2NTM2ZjJlYmVmYjE2MzMyMjViYmE2NmIzNjMwMTM3ZmExODYzMyByZWxlYXNlMjItbWFpbnQKKzI2ODUyIDI2N2FlNTllZGRiNGM0YjVlNTZiMTU2OGU4YzVkOGE0ZWRmMGRlYzggbGVnYWN5LXRydW5rCisyNjg1MyA2ODRlZGQxNmJiZDgxZmM0ODdiMmNmMzgwNmI0MGUyZjVhOTE2MWM2IGxlZ2FjeS10cnVuaworMjY4NTQgODY3M2MyZWRmMjFjYmU0MDRhNTcxY2RiNDMyZTAyYWYzMGEwZmNiNCBsZWdhY3ktdHJ1bmsKKzI2ODU1IGJkYTk4YmFjNjk1NjAxYzJiYmRjNDdlMjZlMzViMzk0M2E2NGI5YTUgcmVsZWFzZTIyLW1haW50CisyNjg1NiAwYzQyY2VlNDc1ZGZmMzVkNjJiMTEzYzRmNDViZmNjYWU0YWZiNGM2IHJlbGVhc2UyMS1tYWludAorMjY4NTcgNzZmMzc2YmVhNWU1YTlhOTE4ODUzNmQxMWQ1Yzc1MTZjOGMwOWVlOSBsZWdhY3ktdHJ1bmsKKzI2ODU4IDY4ZTNmM2RkNGQ0ODg0OTE5ZDk1ZGMwOGQ0MjkyYmYxM2I1OTliZjAgbGVnYWN5LXRydW5rCisyNjg1OSBmNDMxODg4NWNlOWE2MzI4OGIxMDA5ZWEwOTdjOWMxZjBjZDY5MjhjIGxlZ2FjeS10cnVuaworMjY4NjAgOTg5YTdhZGY4NGVmYjM1N2M1MTc1ZGNjYzE4NDRkZmY0Y2RiMTZiNSBsZWdhY3ktdHJ1bmsKKzI2ODYxIDg1NjE1ZWE2NWIxYmY4MGFmOTY1YzY3ODY4NzQwNjRkNmU1Yjg3ZjMgbGVnYWN5LXRydW5rCisyNjg2MiBkYmE0ZjUxNzY0OTJmNDU0MWU1NmI0Y2QzMGEzMTI1ZWM0YjcyOGRkIGxlZ2FjeS10cnVuaworMjY4NjMgYWQ5MDRkYjczNDRhOWY5NDFlYTBmZmEyYTM4NTFjZjlkNjhiYzhmNyBsZWdhY3ktdHJ1bmsKKzI2ODY0IDYyNjg4ZDZhYzM4NzljMGNkN2U1ZTRjMzNiMDRlYTM2MmQ0ZTY3MWIgbGVnYWN5LXRydW5rCisyNjg2NSBkYzNhN2Y5OGQ0ZWQxMmYzZTg2MmJiNTIyYmFhMDI0YWMxMWU3YzI5IGxlZ2FjeS10cnVuaworMjY4NjYgNjMxZjkyODY2NzMyOWJiNmM2ZDI4YWRkMWFmZjliMzA4NjE0YzNjNSBsZWdhY3ktdHJ1bmsKKzI2ODY3IDE3MmI2MjUwZDUyNjAzYmY3NzU4ZTMzNGMyN2RmYjJlNjc2ODVkNDYgbGVnYWN5LXRydW5rCisyNjg2OCA3NmVmNGI5NDJiMTMxYmQ4ODNjZTFiNTdjNmY2YjMwM2I3ODNkZmQ5IGxlZ2FjeS10cnVuaworMjY4NzAgN2FiOGMzODExNzIzOTcxNGVlNjVkOTcyOTgyYmNiZDUyNzAzZDk5NiByZWxlYXNlMjItbWFpbnQKKzI2ODcxIGM0NGIyMWZjZDM4YWQzMmU2Nzg1MzRiOWJhZjRmNWU3MjUxZDYzMzEgbGVnYWN5LXRydW5rCisyNjg3MiBiMWQ4NjgzNTIxZWM0ZjM3NGZhOTJhNzc0YWMyOWVhZTg0YzViZWUwIGxlZ2FjeS10cnVuaworMjY4NzMgZmJhMDUzNDdiYjMwYWQ3YWEyNmNhNmJlYWFiNWJiMGM5YmI4ZjUwYSBsZWdhY3ktdHJ1bmsKKzI2ODc0IDgyMzA5YzczMjVlZmUzNjg2YzgxYTA4OTY2ZmJkOGJhMTcxODQ1OTEgbGVnYWN5LXRydW5rCisyNjg3NSA3YmMzMWFkOTQ3N2NmNWY2NWUwMjY2NzQ0NmE4ZjhlNjNlMzcwZjdkIGxlZ2FjeS10cnVuaworMjY4NzYgMjY3NWIxNThiZjY3N2RmZDkzMDllOWZiNDI2YzQyZWQ1YjNlOTIyNyBsZWdhY3ktdHJ1bmsKKzI2ODc3IDM1ZjAxYmYzNGQ2MDQzNzZlOTM0MjRlZGU3ZTg2YjU1ZTc4YWY4OTkgbGVnYWN5LXRydW5rCisyNjg3OCA5ZWVhNWVkZDg1N2Y2YWU0ZTNjMTM5YjAzYzdkNTY1ZTY3YjEwMTc4IGxlZ2FjeS10cnVuaworMjY4NzkgYjM4OThkMzI2NTE5ZWUyMzkwNjQ2Yjg1Njg0ZTdmYTY3M2IzZjY4OSBsZWdhY3ktdHJ1bmsKKzI2ODgwIGJmZWExNGY4ZmYzNTNjNWZmMjgwMTVjYjAxYmJjNGU0NWFjMzZiNjcgbGVnYWN5LXRydW5rCisyNjg4MSA3M2MwMWIxY2JkYjJjMDE2MWUzMWQzZDI0YzVjMDY5MWI0ZThjMTE1IGxlZ2FjeS10cnVuaworMjY4ODIgYzAzZTg4OTlkNGIxOTA0NDJmZDc3MTc2YWY2OThjOWYxNjVhYmYxYSBsZWdhY3ktdHJ1bmsKKzI2ODgzIDAwMTQzODdmZDYwNDRkMTEyNTQwM2JmZTI1N2QwNDJkOWNhYzBjNDggbGVnYWN5LXRydW5rCisyNjg4NCBiODcyOGQ1OGU5YzMzM2ViMGU4NTY4NjIwYmRlYjQzMDMyYmRmZGM1IHJlbGVhc2UyMi1tYWludAorMjY4ODUgYTkwZmFhNWY5NDE3MWM3MDcxMTUzYTcxMzlmYzAzYTY2OWM0YWFiNSBsZWdhY3ktdHJ1bmsKKzI2ODg2IDJhZmYxMmUyYTk0ZjVjOWRlMzU2OTcxMTdhZmMxMmYxMTc4NDBkMGYgbGVnYWN5LXRydW5rCisyNjg4NyBiNjAyZjIyOTFiNWZkM2ZlNDg3ZTg1YjcwMGFhMGJhNWIwMmU0ZmJlIGxlZ2FjeS10cnVuaworMjY4ODggMGUxNzcxZmMwMTJmMjZkZDczYzQ4YTRmNWY3ODNmMWVkMmEyMmI2NyBsZWdhY3ktdHJ1bmsKKzI2ODg5IGM3OWIxZTU1NTJlODQ5NTlhZjI0ZWFjODkxMDUxY2I3OGE0ZTg2NTUgbGVnYWN5LXRydW5rCisyNjg5MCA5ODgyN2E5ZDYyYzMyZWFjNmI5NjE4ZWI4MzQ4ZmYzNTRmODczZTdmIGxlZ2FjeS10cnVuaworMjY4OTEgYjIxYjY5NjU4NjYyODliMGQzMzkxMGZjMTY0ODUyZjdhNGJhNzkwMyBsZWdhY3ktdHJ1bmsKKzI2ODkyIDhhNDlhMTNmYjI4ZGY3MGUzMzQ3YjczYjc3ZWUwYzhmNTRjOWFjNWEgbGVnYWN5LXRydW5rCisyNjg5MyBjZWNhMjgxNjc4MDA4YTNkMTM0ZGQxMzVlZmI2MDVmYzJiYmQyYjg3IHJlbGVhc2UyMi1tYWludAorMjY4OTQgZWNlZjY1ZTU3Y2M2YmQ5OWI0ZmNlMDJmOTFkYThmMGI4Mjc3MTAxYSBsZWdhY3ktdHJ1bmsKKzI2ODk1IGE5OGU5M2VhZmVmN2UwM2VlMGMzM2EzZjBmMzU2Yjk0ZTJjMjliYzMgbGVnYWN5LXRydW5rCisyNjg5NiAyNjAwY2Y3ZDMzYWY4MjNjYjZiOTQzYzJmNTZjZGQ1Y2NjYjM5ZTVlIGxlZ2FjeS10cnVuaworMjY4OTcgYTRlZmI1OWY4NzY3MTgzMjU0MGQzNjNkM2RjZDYxZjhiYjdhNTgwZSBsZWdhY3ktdHJ1bmsKKzI2ODk4IDcwYjVlMTExY2NiMDkwMmY3MjBiNjE5ZTBjMTc0ZTcyZDI5YWNlMzcgbGVnYWN5LXRydW5rCisyNjg5OSA4ZDk0NmM5MzM5ZTgyMTAxZWJhYjdlYTcxODM5MmVhMWEzZDE2YzhhIGxlZ2FjeS10cnVuaworMjY5MDAgMGE0YzkyNTU5YTBiNDE2NjRmMjFhYzA0ZTcyYzUxMWRkMzQ0MjU3YyBsZWdhY3ktdHJ1bmsKKzI2OTAxIGZhOGZlMmU5ODA2MjVhZTY4YmI1ZDNmNDNjNDdlOWNmMDVhMjY2OGYgbGVnYWN5LXRydW5rCisyNjkwMiA5ZTY3YTBkNTcwNWZiYWI5ZmI2YWFmM2FjMjY5NmJjZjg3MTcyNDAzIGxlZ2FjeS10cnVuaworMjY5MDMgYjQ5MGZmMTcwNmQ5NjQ2MmYzMjlkOTE0ZjExNzNhMjU5MWE0ZmRhZSBsZWdhY3ktdHJ1bmsKKzI2OTA0IGJkNTg5NDZhYTUyMWIyZWNmN2VlNGY1NWQzOTgxMjJmNzFhM2U0NjYgbGVnYWN5LXRydW5rCisyNjkwNSBmNmRlZDZlZmFiY2YzMDkwMjYwYjNlZDkyMTcwZTcyYzIzOTBjZDU0IGxlZ2FjeS10cnVuaworMjY5MDYgMjIwYjk4ZjA2NDE1NjRhMDU5N2I0Njg0YzNiN2IyZDExMjUwNWI4OSBsZWdhY3ktdHJ1bmsKKzI2OTA3IDQwYTAzMTE1NTg5N2Y5YmViNzJmZjdkMGE4ZjNlMjY5MWNmYmMxZTUgbGVnYWN5LXRydW5rCisyNjkwOCAxYmYzNGY0Mzk0YzUxN2U0MzQ0NjAxMzI1ODczNGEwYmY2NDk5MDAzIGxlZ2FjeS10cnVuaworMjY5MDkgY2UxZGEyZjk3ODA3NmU0YzY5YjI5YzQxODcxYThkZmExMTViM2ZlYyByZWxlYXNlMjItbWFpbnQKKzI2OTEwIDg4OTAzODUzZjE4MGVlNmJiMmUwYzFlODA4N2NiZDI4OGIwMjQyNGYgbGVnYWN5LXRydW5rCisyNjkxMSBiNzRhZmRkMDcyZWIwYTE4OTlmY2Q0ZjE2NjVmOGE4MjBmYThiOWExIGxlZ2FjeS10cnVuaworMjY5MTIgMzAzZDgxZTE1ZTcwYzNhMjQyN2E3MmFlNjgyZWYwNzY5NWJjMjhmNyBsZWdhY3ktdHJ1bmsKKzI2OTEzIDQ0NmIyZjJjMDFkOGFhY2EzMjU3YWIzYzFjMmMxMzg1M2Y0OGFmNGMgbGVnYWN5LXRydW5rCisyNjkxNCBiM2M1MGY2OWYzOGJmMjM4YmRkNTYwZjdkMWFlNTg4ZTU4YTNkMjUwIGxlZ2FjeS10cnVuaworMjY5MTUgYTY3MjQ4ZmQyMzcwMTBmODJhNTczNGY5ZTdmMTg5MTEyNWI5ZGZkMCBsZWdhY3ktdHJ1bmsKKzI2OTE2IDNiMmE3ZWUwODY2NzYxZGQ4NDAzZGU4N2U4ZDU1NDZiODIwNTc0OGMgbGVnYWN5LXRydW5rCisyNjkxNyAzYWVjZGJhNDU1Mjg1YTBlNmRiNDc0NGZjNGI0N2FhM2I4N2RiYjc3IGxlZ2FjeS10cnVuaworMjY5MTggZTUyNDJmNThhNWI2ZjkwZDg2ZGNkYTczMDI0MTAxNGQ0M2M5YmMxMSBsZWdhY3ktdHJ1bmsKKzI2OTE5IGM0ZmEzN2Y4OTc4Mzk5MzIxZTQ4NjYyYTk5NDYwZTNiNzdhNzQzNWYgbGVnYWN5LXRydW5rCisyNjkyMCBmZWNjZTAxNzMyNTRmN2VhMmRjZWEyYWE4Mzc1MDIwZjkxZjczZGM3IGxlZ2FjeS10cnVuaworMjY5MjEgYTM5OWQ4YjEzYzJmNDU4YjQ5NTEwYWQ4MDU0NmY3ZTJmYTU1YjcwYSBsZWdhY3ktdHJ1bmsKKzI2OTIyIDVkMDk1ODk4ZGFlNjU5YmZkMWFmYzdkZmFiZDU0MjhkNDI5NTk5YjUgcmVsZWFzZTIyLW1haW50CisyNjkyMyA1M2M2MTQyODhlYWI5NGY2YjBlZGY4YTQ1NzA4NGM0YWZhNTQxNzBhIHJlbGVhc2UyMS1tYWludAorMjY5MjQgM2E0NzkzNTc1ZWNkN2VmNjhjZWRhZWUyNTdlMDllYjk2Njk5OTYwYyBsZWdhY3ktdHJ1bmsKKzI2OTI1IGM1ZThmODlmZDM1ODY4ZDUxZmMyNjVjNDlhNTQwMWUwNDFhNjZmNjAgbGVnYWN5LXRydW5rCisyNjkyNiBlYWNhNjI3ZjJhNTQ2Y2U4ZThmYzU0MmU2ZjliNzIyZWRhY2RmMzQ4IGxlZ2FjeS10cnVuaworMjY5MjcgNTA4OTY1Y2U1ZTQ3MmY5NmQ5MjZhYzcxMmUwYjI3YWJhNDU4Y2YxYSBsZWdhY3ktdHJ1bmsKKzI2OTI4IDNmMjQyY2RkMDkwNGVlMTE1YzVmNDY1ZTUwYmNmY2ZhMTAxYThjMWIgbGVnYWN5LXRydW5rCisyNjkyOSAxYTY3ZmJjN2EwNjY4MjMxYjk4ZTQ5Mjk5ZDQ0ZGFiMWE4ZDc3ZDNkIGxlZ2FjeS10cnVuaworMjY5MzAgY2FmNjJlZWY3NzIzZTRjODc4NDRmZDdhNjBhNWQzZDQzYjdhMzhkYyBsZWdhY3ktdHJ1bmsKKzI2OTMxIDNkODNmYWJlZjBhNDBlZTVkMWYwZGNjNDliNzZhMzNlYzEyZWRlZmEgbGVnYWN5LXRydW5rCisyNjkzMiBhZTBhM2IxNGQyZThiZTc4MDE0ZmVkNTNjOGRlMmRkYmJjMGY0ZTMyIGxlZ2FjeS10cnVuaworMjY5MzMgZGMyNjIzZTAyNDNlMjhiZjc3ZmFlOWNlZjUwODI1YjJlMTYxNmMwZiByZWxlYXNlMjItbWFpbnQKKzI2OTM0IGI2YzMyYmViNGRiY2M5YzgwMjkwOWYzN2NiMjVmYTg0OGEwZjI5MDkgbGVnYWN5LXRydW5rCisyNjkzNSBkNWFlNmY3MTRjZDUxY2M3ZDJhZjk3MjQ2MGZjYmYwMGIxZWMwYTQwIGxlZ2FjeS10cnVuaworMjY5MzYgNGQ4ODRhZDgwZGRhNTU0ZTk5ZTg3ODg1MTAyYzM0NGUxMmNkYzVlYiBsZWdhY3ktdHJ1bmsKKzI2OTM3IDBhYzY1M2Y0NjlmMDcwZDQ0YmE1YWJiOWJiNjU2NjU0MGZhNzAyYTUgcmVsZWFzZTIyLW1haW50CisyNjkzOCA2NjhjNWNhNGUwZDQ4YzYxNzJhNWNhYzEyYTY5MjFkMTZhMTQxMzVkIHJlbGVhc2UyMi1tYWludAorMjY5MzkgOTlkZjI1NzE0MmY2NDM4ZGE3ZTFjNTEyNGExZTIzNWU5YjI5Y2Q3MCByZWxlYXNlMjItbWFpbnQKKzI2OTQwIDdkNGM1ZTRhMGNjYzI2Zjk5ODUwYWU2M2NjMjQ3N2Y3YTgyYTQzMWMgcmVsZWFzZTIyLW1haW50CisyNjk0MSA4ZjdiNzljZGEwZDMyMWQ3ZTgzZWFkNjM1MTYwY2Y3ZmIwYzM2NmIwIHJlbGVhc2UyMi1tYWludAorMjY5NDIgYzM2NzYwN2JiNWY3ZDIwNDg5ODY1YjBhNDgwZTFkNmUxMmU0OWI3YiBsZWdhY3ktdHJ1bmsKKzI2OTQzIDRlM2VhNTVmN2UxMThjYTZlMjdiOGU4NWE3ZGUyMjM3ODA4YTRiMjcgbGVnYWN5LXRydW5rCisyNjk0NCA3ZGJhODBkNThmZmQ2NjQ0MzY4OTA5YzZmMzg2NmM4YzAzOGRiNWJmIGxlZ2FjeS10cnVuaworMjY5NDUgYmViNTI3MTU4Y2JjZGU3MmMxOTg1N2Y0MzgwNzJkMzM1MTczMjA2OCBsZWdhY3ktdHJ1bmsKKzI2OTQ2IDE5MGI2YmMxOTEyYTVkNWQ2MmQ3OWJjOThlNWE2MmYxNzY2MDBhOGQgbGVnYWN5LXRydW5rCisyNjk0NyAwNjAyYzdlNmI5NGQ3MjEzYTRlZDI3NzZhZTBjYzkwNjJjMWEyYTE2IGxlZ2FjeS10cnVuaworMjY5NDggYzZhZjU3NGJkYTI5MjhmMWNkZDE4ZjM2M2Q5M2M5ODdkZjUzMDBiNCBsZWdhY3ktdHJ1bmsKKzI2OTQ5IDBlODM3MGU3MDg4ODYzY2QzZDE1NWEwMjc2N2E2ZThkZDM2NTEyYTUgbGVnYWN5LXRydW5rCisyNjk1MCBmYmE1N2U0MGY1NDdkMGJkNjM5ODFkZWFmNTE5MDQ5MmFkOTRhZjNmIGxlZ2FjeS10cnVuaworMjY5NTEgZjEyNDkxMTcxNjM4NjAzODIxYjhiODI2YmM1M2MwMWYzMzhlYmFjNSBsZWdhY3ktdHJ1bmsKKzI2OTUyIGFiOTRlYzRhZjk4YTkzNGY2ZDljN2ZlNjRiMDE4ZTMwODM1MDEzN2QgbGVnYWN5LXRydW5rCisyNjk1MyBiMDY1OGZlZWY5MzllMTZjMjRhMTY1YjIyNjYwMzZlZTYxYWRmOGY4IGxlZ2FjeS10cnVuaworMjY5NTQgYTRiYjE4MjEyYjQ4MGViOTNkMWJiNzU4YTgzZDUyZGI1MjkwMzg0MiBsZWdhY3ktdHJ1bmsKKzI2OTU1IGFjYmU4ZTdmOTlkOTNiN2ZmMzRkYzJkZmJlODIwNjY1NGZlMWFhYWUgbGVnYWN5LXRydW5rCisyNjk1NiBkNjdmMWUzYTlmMWFiZjU4ZjJiM2FlMmRkMzNiM2JhMmU4ZWMxYzM0IGxlZ2FjeS10cnVuaworMjY5NTcgYzg0NGZjYzNjOTUyM2ZmYTdjN2IzNjgzMTZkMGExYmI4M2JmZDBmYiBsZWdhY3ktdHJ1bmsKKzI2OTU4IGMzYTY3Y2U1ODI0NWY0MjU0YTA5NGM4N2Y1Zjc0NThmMjQ3M2ZjMjQgbGVnYWN5LXRydW5rCisyNjk1OSA0MzgwYTdhYTE4ZGM2Y2RlYzhkODg5NDU4YzVmM2ViOTk3ZDFhY2JkIGxlZ2FjeS10cnVuaworMjY5NjAgYzJiYzJlZDE0NWY3MjdjNWMxYjQzNmIwOTQ0MWNmM2Q3ZmQ4NTIwYyByZWxlYXNlMjItbWFpbnQKKzI2OTYxIGVkMDA3ZTQ3YjNhMTM5OTg5MGIyMmFiMWFmMGU3NGYyOTczMmFjNTMgbGVnYWN5LXRydW5rCisyNjk2MiAyYjFkNjE3ODFkNjM3NDg5NzEzMjdiNmRlMDkxZDllZTJhNjhkOWYwIGxlZ2FjeS10cnVuaworMjY5NjMgMTk3ZmIzMDVmYzVjY2NmYzgyMzQyY2Q0NzIxMDMwM2IyOWJjMGM3MCBsZWdhY3ktdHJ1bmsKKzI2OTY0IDkwZWU1NWI5ZDcyYWQxYzM3Yzc5MGMyOWIwMTVmMmE1MGE2YzgzNTcgbGVnYWN5LXRydW5rCisyNjk2NSA3ZTQwMDU4Mzc1NWZmNDgwNmNkZGNlMGQ0NWMzMmY4YmVhNzgzNGI0IGxlZ2FjeS10cnVuaworMjY5NjYgZGJhYmIxZjdlZDNhNDRjYjc4ZGI3ZDVhYTg4NzVhNjdkMjgzNjkwZCBsZWdhY3ktdHJ1bmsKKzI2OTY3IGNmZmQwOTFmNTZkMGVmMDVhYWFhZjhlNWY3ZGRkNWVhMTk1MDIyYjQgbGVnYWN5LXRydW5rCisyNjk2OCBlZjhkNDU2MDY3ZmQyOGM3NjI4NWEyNzliNTExNzI2MTEzNzQ1NWQ5IHJlbGVhc2UyMi1tYWludAorMjY5NjkgNzEyMDYyMGY0MzJiZDA5MGE2MWVmODA4YWEwMWRkMGI1MjM2NjBlOCByZWxlYXNlMjEtbWFpbnQKKzI2OTcwIDVlZGVhNzUyYTQyMTlkYzJhZDk1OGQ2YmU4ZGRiODVkMDA1MzNhNjYgbGVnYWN5LXRydW5rCisyNjk3MSBhNjhmYWEyNjg1M2NlNzM5YWVlYTFjMDA3ODA2NTM1M2M2MWY3ZmU1IGxlZ2FjeS10cnVuaworMjY5NzIgZWMyN2FjMTlmOWUzYzFjOWYwOTgzYzBiNTRmMTc4YmIyNzExOTg0MiBsZWdhY3ktdHJ1bmsKKzI2OTczIDQ1NmQ1ODQ1MWZlZWE3NDdjZTExZTg3YjE5MDg1Y2NlMjFmMzY4OGEgbGVnYWN5LXRydW5rCisyNjk3NCAwYTI4MThjYzM0MmNlNGQ0MjE2Y2Y2OTFlNjM3NDIyYTdmZDVlZjBjIGxlZ2FjeS10cnVuaworMjY5NzUgMjFiMWQ3NDJlNGE3MDA5Y2RhMDY1MWRkNmY4ZmE2YTZhMzIwNDFmYSBsZWdhY3ktdHJ1bmsKKzI2OTc2IDNjYWVlMjk1ODM4N2NkOTJmM2RlNDYwYjNiMmRmOWE2MWNhZGYxNWEgbGVnYWN5LXRydW5rCisyNjk3NyA0YTFmNWJkNDg2ZmY5ZjgwZWJiZWZiMTE3MWQxNWFmOGMxMzQ0MmU4IGxlZ2FjeS10cnVuaworMjY5NzggZjRlYWIyNjhlNjE3ZTkwNDkyNjFmYjQ4ZGUxMzFiZjZiNjM5MWIxNyBsZWdhY3ktdHJ1bmsKKzI2OTc5IGE2NzE1YWQ0MTZlNWRhMmVlZjBkMGZhYjNlMThhODI5ZjdhNjJlMDkgbGVnYWN5LXRydW5rCisyNjk4MCA5ZGE4NTgzN2ZmMjUwODRiM2UzODhhMjNkNzA4ZjZiZTA0MTRjNzMzIGxlZ2FjeS10cnVuaworMjY5ODEgM2UzYjNjMTc3MGFjMTFiNTlmY2NkNTkzMTcxZTZiOTAwNTFmNjFhMyBsZWdhY3ktdHJ1bmsKKzI2OTgyIDU0NDgzYmMyMTg3MWVmODViYzdhMzJjOGQzM2Q3NjFmYjlkOTc0NmEgbGVnYWN5LXRydW5rCisyNjk4MyA5MjYyNmU1YWIwNjczNTRkZDFiOWRiMTJhNzNkZTllMWU4NmNhZWZmIGxlZ2FjeS10cnVuaworMjY5ODQgYTFkZTBiYWI1NDc1MDkzZjkwNWEyMjVmNmEyNjMzMDA0NWNjMWJmYyBsZWdhY3ktdHJ1bmsKKzI2OTg1IDg3ZjQwMzc3Y2Y1NDM4YjUxMDYxOWRiYzc4M2Q0OTE4MTFlMzMyMmUgbGVnYWN5LXRydW5rCisyNjk4NiA1ZWRkODA3MjZkOTY2ZmRhMmU5MGRkNWJmZTRiMjdjNGIzYjJlNWE1IGxlZ2FjeS10cnVuaworMjY5ODcgYzAwZmViYmUwOTI5NWUzMDBkMTgxNjc2NjUwNTc4MjM1MGRjZGNkMSByZWxlYXNlMjItbWFpbnQKKzI2OTg4IGFlZDM5Y2FmOTg2MGRkNjA4YmIyYzg0ZjgxZTM1NzdjZmI1NTIyZjkgcmVsZWFzZTIxLW1haW50CisyNjk4OSA2NWNmNDc4OTUwZmY1YzNhODgxYTVlYmRkYTg3NTMzOTZhYmU1N2VhIGxlZ2FjeS10cnVuaworMjY5OTAgNjNkMTQxNDFkZDEwZDAyNTVjY2ZiNmMwYzRjNzc3NmEyM2NhZTgzZCBsZWdhY3ktdHJ1bmsKKzI2OTkxIGE2YTc2NWM3ZDMzYjRkNzFhNzYzYjk2YTBkNmZhZmQzMWViMDZhODYgbGVnYWN5LXRydW5rCisyNjk5MiBlYTk3OWM1MjA2YjdlNmI4NzU1ZDkwNzE0MWQzNzk0MzRhN2JlYjY0IGxlZ2FjeS10cnVuaworMjY5OTMgNGE0ZDEyMGIyYjBlMDlhOGY1NmIwNTMyYzg4MzI1N2I1OWQ1YmNmZiByZWxlYXNlMjItbWFpbnQKKzI2OTk0IGFmZTk0NjkxODI2N2ExYzUwNjNkMTIxNjczMTAwZjUyZWRmNjM2ODQgbGVnYWN5LXRydW5rCisyNjk5NSAxYTUyMTYyMzU2MDI4ZDRmM2Y0YmM3OWVmYzkwNGY0MmU4OWY4NTkyIGxlZ2FjeS10cnVuaworMjY5OTYgMTE2NjAxM2ZhYjc3OTUzNmY2NTUzM2E2YTQxODkxNTBlZjMxNTg0ZSBsZWdhY3ktdHJ1bmsKKzI2OTk3IDBlZThlZjdjYTA5YzYzMmUzNzIyYTRkYTZmZTZkMDlmMmExNWJlYmEgcmVsZWFzZTIyLW1haW50CisyNjk5OCBkYmVlMmY2MjhhOTA2NzIyZmM0MzBlMGUzNDJjODI5NWM4YTFhZDBlIGxlZ2FjeS10cnVuaworMjY5OTkgMWU2MGI1ZDQxNDE3YjEzODRhMDk3OGU0OGJlYjdlMzdmNTI1MGRhMiBsZWdhY3ktdHJ1bmsKKzI3MDAwIDg1NTFlNjQyNzI3YzIzNWUxNTczMjljM2I5ZGNlZDY3MjM3YmVkZjggbGVnYWN5LXRydW5rCisyNzAwMSAwYjdmZTBmYTlkYzZiMWMzYTllODJmZDQwMTFjZDRhMTA3NWQzMjc0IGxlZ2FjeS10cnVuaworMjcwMDIgOGMyMTVkZGZkM2QxYTE4NWNmY2I1ZmJkYjFiMTljNzYzYjIxODQ4YSBsZWdhY3ktdHJ1bmsKKzI3MDAzIDk0MGZlZjMyNGViY2I1ZjhjMzEzNDYxZTdjMzgxNTAzZjIxMmQxZWUgbGVnYWN5LXRydW5rCisyNzAwNCBhMjUwODBmNjkwMWZlNmM4ZTkzM2I2YzQzOGQ4YzBmMGJjZTMyYjVhIGxlZ2FjeS10cnVuaworMjcwMDUgMDRhNGEwZTcxYThkY2Y3MDFjODg3NGYwOTM1NThjYjI4ZTk1NjAzMCBsZWdhY3ktdHJ1bmsKKzI3MDA2IGM2NDYzYWZkOWYwODYwYjg0M2JhZWYwMWUyMGM5NTNiYjgyYWVhZmUgbGVnYWN5LXRydW5rCisyNzAwNyA3MGQ3NjgzMzU1MGIwZDkzNTk1ODk0NTgwOGZkOTY0YTZkMjQ1ZGZiIGxlZ2FjeS10cnVuaworMjcwMDkgM2ViZDM3NmFhNGNiNmI3OTc1MjUxYTkxZjA5ZGEzN2IzNWZkMzNiNCBsZWdhY3ktdHJ1bmsKKzI3MDEwIGUxZTkwYjBmMWY0NTAwYmI1NWNiZTMwMjk4ODYwM2MxY2ViYzg2MzggbGVnYWN5LXRydW5rCisyNzAxMSAyMjBlZDdmZWJiMDAxOWNhNmZhNjc2ZWZmOWZjZmE1NzQyYmVlNzdiIGxlZ2FjeS10cnVuaworMjcwMTIgZWM4OTQ5ZTRlNDZkNzgyNDYyNWQwNmZlZWIyZjMwYmUzY2FjZWI5OCBsZWdhY3ktdHJ1bmsKKzI3MDEzIGI5NGFjYzE4NzQwZTdlNjg2MmVhNzRmMjNjZjdlZTllY2EzZjQ3NzEgbGVnYWN5LXRydW5rCisyNzAxNCBiOTIxOGVmYWU4ZjU1YzhmYmJhYWUyNjIwZjk4NmM5ZTUyNjlmNmUwIGxlZ2FjeS10cnVuaworMjcwMTUgYTM0NTIzMTIxY2Y0NDE0ZTkxYzFjZGFjNWU0M2Y3ZWZhNjQ4ZDUyNyByZWxlYXNlMjItbWFpbnQKKzI3MDE2IGYwY2EzOTM1ZDAxMWRkYTcyZjM4ZGUwNGExNDhmMGM2MWUyNWQ5ZDggbGVnYWN5LXRydW5rCisyNzAxNyBiNDAxNjVhNGVmZTlhZDJiZGIzNmJiMzZkMTBlY2ZkMjg1YmNjYWY5IGxlZ2FjeS10cnVuaworMjcwMTggZWI2YTE2NTFjY2RhMDM3MmY2N2MyZWQ5Y2EzYTYwOTMzN2JhNWMzOCBsZWdhY3ktdHJ1bmsKKzI3MDE5IGI4NmVhZWIwZDdkZDQyYTc3ZTljZWI1NmZmM2EzNjZmZTVjOWYzYmQgbGVnYWN5LXRydW5rCisyNzAyMCBlZTc3MmY2ZTg4MWJiMjM0MjBhMzc3YzZiOTFiMWE2ZWFkZDExNDY5IGxlZ2FjeS10cnVuaworMjcwMjEgYmZkYmUyNWE0NWIwNjg2OGYxNzdlMDhlOGQ3ZWRjODQ2ZjM2N2Q3NCBsZWdhY3ktdHJ1bmsKKzI3MDIyIDVmOTc4MTk2ZmQzZDAyZmYxN2RiOGQ3NjFhZjJmNzA2YjljYzk1ZDIgbGVnYWN5LXRydW5rCisyNzAyMyA5NGFhNGViOWJiN2Q5NDJkMDVmNDIyYmMwY2JhYTRhNWMxMmQyNzcwIGxlZ2FjeS10cnVuaworMjcwMjQgNWM1ZmZmNWRlMjUwZDczYjcwZWYzZTJmNWViYzAxMGIyZDIyZDE4MCBsZWdhY3ktdHJ1bmsKKzI3MDI1IDE4ZDU4ZGUyMDNkNmU4ZGUzMGRmM2NiMzgxYjJhZGRiMjQ2NGEzNzcgbGVnYWN5LXRydW5rCisyNzAyNiBiNWMzZjEwY2U2Mzk3OWQ2NzY3ZjI4YWIyMTJmMjAzZGM0ZDQ0MDM5IHJlbGVhc2UyMi1tYWludAorMjcwMjcgMjdlMjEyMGNiNDc2MzEzZjkyN2I3ZmFmOTRkMjZhZGFhODE4MWM4YiBsZWdhY3ktdHJ1bmsKKzI3MDI4IGU0MTkwNjZmNDA4ZjJkNDJlN2E3MDU3MDJkMDM0YTE2YzU2MzQ2MzcgbGVnYWN5LXRydW5rCisyNzAyOSA4MTBkY2Y5ZDgxYzk4ZGNjZmM2YzExN2UwY2I2MWY4MGIwMTBmMDg5IGxlZ2FjeS10cnVuaworMjcwMzAgNmRjZDRiNmVlNWRhOWU5NGQ5NThjOTcwYzg1ODI4ZTdjNzhhYmFhMyBsZWdhY3ktdHJ1bmsKKzI3MDMxIDJiZWNiNTc5M2FjZDFjOTg2ZmQxZjQyOGI3ZDM5YWQ4YzQ4NGQ2YjggbGVnYWN5LXRydW5rCisyNzAzMiBkYzdkNWMyZDU4NDVhOWMxNmQ4N2MyNTFlMWEyNDA1MjA1ZmZmNzg4IGxlZ2FjeS10cnVuaworMjcwMzMgY2E4NzExOTI1NWViMTc3ZmU3ZDZlNGRlNWRiNWEyZDA2Y2IzMjAyOCBsZWdhY3ktdHJ1bmsKKzI3MDM0IGUzMjE1MmFmZGU0YWJjY2E4OTI2ZDdhMzdmYzc1ODRhNjc4ZWM2OWUgbGVnYWN5LXRydW5rCisyNzAzNSBjM2RiYTkxYWZhNmQxNDJlMzlmOWFkZmUzYmFhODNiMmYxYWY3ZDk5IGxlZ2FjeS10cnVuaworMjcwMzYgOGVmYTUyZTBhODQ0ODU5MzlhMjRhNTQwOTY3OGRhOTkxMGYwOTU2YiBsZWdhY3ktdHJ1bmsKKzI3MDM3IGVkYzQyMzk0MGNkNjYzOWU0NGMxZjFiNWE4ZGM2ZGE1MWZhNTMxMmEgbGVnYWN5LXRydW5rCisyNzAzOCBiOTJmODE5Mzg4NDNmOWI2Zjk3Y2Y3NTBkYTU1OWFmNmUwYTNiYzBjIGxlZ2FjeS10cnVuaworMjcwMzkgMmZjYzZkNGU0Y2QyNjFmMjY1ODY0YTZiNmQ5MTJmNmFhZWRlZDgwZSBsZWdhY3ktdHJ1bmsKKzI3MDQwIGYzNWU3NTFmNWZmMjU4NDY2MTM0YzU5YzAzNWUxYTZiMzkwZTBkMDggbGVnYWN5LXRydW5rCisyNzA0MSAzYTFhYzExZWJlNTBjM2UyMDZmMTU4Y2Q2ZDc2ZmY1NDBjMTI4NGVkIGxlZ2FjeS10cnVuaworMjcwNDIgNzMyYjY5MzE4MTY4YzJjODExOTM0MGUzN2ZmNTA3MjRkNWMxM2Y4YiBsZWdhY3ktdHJ1bmsKKzI3MDQzIDVjNTkwMmRlNWE1NDIxNGYyYmU1MDVkMDkxZWI3ZmIwNjE3MDAyOTggbGVnYWN5LXRydW5rCisyNzA0NCBiMTgzNDhiZGNhMDgzZTMzZTVmNjNjMzEwOTNlOWNhNDVmODk2ZTFmIGxlZ2FjeS10cnVuaworMjcwNDUgZjE1OWVhOTU1ZTgwZWEyYmU0YTMyZmViNDBhN2I1MWYxZmQxNmE0NiBsZWdhY3ktdHJ1bmsKKzI3MDQ2IGUzYTg0MGZhNTg0Y2I4YmU5YzY3Y2FmMmI0OTk5NDI5MjI5MDQ3MjcgbGVnYWN5LXRydW5rCisyNzA0NyBkNTA3YWQ4NjIzNDIzMjM3NjY3OWQyZTZjYmY4N2FhOWUwMGIzZjE4IGxlZ2FjeS10cnVuaworMjcwNDggNjEzNThmODAwYjYxNjkwMjc5YWQxNGY4NGU1MWVkZjRjODBiYjk2YyBsZWdhY3ktdHJ1bmsKKzI3MDQ5IDMyNWJiYjQ5MzdjNWRjOWYzZjQ3MmE1MDk3MjUwNTgzYzBjMzk0ZGYgbGVnYWN5LXRydW5rCisyNzA1MCA4YTlhM2FmZjMyZmM1OGQ0MWQ4OWE5YzU3MzdmZjI5ZjI1Y2EyNjdmIGxlZ2FjeS10cnVuaworMjcwNTEgMTQ5MzhlNzYyNzZhMWE2OTY2MGM5OTM3MjllMTRhNzE4ODU5OGNlMSBsZWdhY3ktdHJ1bmsKKzI3MDUyIGM0ZDJkMzA1ZmQ5ODJhN2RjZTkwMGZmYjk3ZGUxNDQyZGY0ZGIzOGEgcmVsZWFzZTIyLW1haW50CisyNzA1MyBkN2JkN2I3MzI5YTdlY2Q3Mzk1OGI3MjQ1Mzg3NzM0MTQ3MmE3NTVjIGxlZ2FjeS10cnVuaworMjcwNTQgZDZmYWExMzc5NDhkZWZjZDNmNDBjNjQwNzhmZGM0YTA1ZGQzODA1MyBsZWdhY3ktdHJ1bmsKKzI3MDU1IDM5OWFmY2U4NmViMGQ4MDgyNjcwZWYyMDFmN2NiNzAyZTU3ODY4OWYgbGVnYWN5LXRydW5rCisyNzA1NiAzYmRmYzQ1ZDkwOTY4YzljOTllMzZhN2I3ZDQ1Y2E3YzM4ZDUyYzgxIGxlZ2FjeS10cnVuaworMjcwNTcgM2EyYTZhZjkwOTkyODNiZDk5ZjYxZWVjYTAyMTg4MWQyMmVmYzJkZSByZWxlYXNlMjItbWFpbnQKKzI3MDU4IDg5ODMxNThlOWYxMTM0NmVjZWZkZDIwZWMxNWY3ZGMxNzVjN2FlYjMgbGVnYWN5LXRydW5rCisyNzA1OSAwODA1N2E5ODc5MTBiM2Y5NGExYTU3YjZiMTk0MWVkYjY3ZjJmMDA2IERTX1JQQ19CUkFOQ0gKKzI3MDYwIGE1NmY4YzMwYWY3MWM4OTVhZGNjODg2YTBmNTYxYWVlODI3ZTVlMDQgRFNfUlBDX0JSQU5DSAorMjcwNjEgOGI5ZDkxMzA4MjBlZjdlZDg0ZDM2NGMyOTgyMGUxNmFiMjZhODQ3YiBsZWdhY3ktdHJ1bmsKKzI3MDYyIDYyNjZmMWJkMWFiOTNlZmRmMTY4YjQ0ZDI4MzQ5YjNhNzIwYzRmOWQgbGVnYWN5LXRydW5rCisyNzA2MyAwMTk5YWEyNzRjN2JmZmRlODYzNGI3ZmNkOWU2YTFkMWNkNWYxMmNkIGxlZ2FjeS10cnVuaworMjcwNjQgY2NlYWY3OGI4NWRjNzJlMDFjMTBlZmMzYzVhNGQ3NmVlYmVjMGY5YiBEU19SUENfQlJBTkNICisyNzA2NSAwZjU3MGJlNjczNmViZTJlZjRjYjZlNTkyMDI4ODhlZmFmZDA5MmU1IERTX1JQQ19CUkFOQ0gKKzI3MDY2IGMwZThjMDdhZTFkNmNiNTVlMThjMmU5MzllNmUyZTgzZDFhNjlkZGEgbGVnYWN5LXRydW5rCisyNzA2NyA3NzE4YjI3NGFkOGIxMmNkMDJhMGU0OGQzOTljZWExN2RhZGJlZWFlIGxlZ2FjeS10cnVuaworMjcwNjggMThkZGMwMmNlMzZmMzU4MmU5MjA5NDFhNjFhYzJhMDE1MGU4MzNmMyBsZWdhY3ktdHJ1bmsKKzI3MDY5IDY3YjlmNTNhNzgwMTRjYWRjNTE3MGMxNGQxY2YxYWY2OTQxZTUxN2UgbGVnYWN5LXRydW5rCisyNzA3MCA5YTVjNDg1Nzk2MzM5ZWQ2YTBmMGU3MzljZWNmYmI5YTdjMzMwZjRhIGxlZ2FjeS10cnVuaworMjcwNzEgZDRmNmUyYWRkZTQ4NDZjMjA3ZTI5MWExNjJkODczMDRjODNmZWMyMyBsZWdhY3ktdHJ1bmsKKzI3MDcyIGFiZTFiYjc2ZWU0NDc0NDk0YjY2MDlmMGIyYzE0ZDcyZDE0ZjIzMzMgbGVnYWN5LXRydW5rCisyNzA3MyBlNGFkZDdiYjVmMTQ4ZGI1MWNkNzBiY2IzYTFkZTlhNDZjYzdjYTg5IGxlZ2FjeS10cnVuaworMjcwNzQgZjg1ZjQ1MzFjM2MxNjQ0ODkyNjYwMTcyN2RiYmRkYzhlZmYwMTAyNCBsZWdhY3ktdHJ1bmsKKzI3MDc1IGUzN2YxYzBmOWExZTkzNmZhNzYzOGVlNzAxZGZjZmY4ZTkwM2Y0M2IgbGVnYWN5LXRydW5rCisyNzA3NiAwNThiZDJkNTBlMzMzOWY2MTRkZTBjNzljY2JkZjAzMTlhMGQxZmFjIHJlbGVhc2UyMi1tYWludAorMjcwNzcgNTZhNGQzYTUwYjc2Yjg2ZGJkNTJkNjVlZDE1OTQ5MTk4ZDVmNzY5MSBsZWdhY3ktdHJ1bmsKKzI3MDc4IDNiMzc5YWUzNTY5ZDkzMTBjNGYzNWQxMzUwMWViOTg1MjNlMjVkZjQgbGVnYWN5LXRydW5rCisyNzA3OSA0NGI5OTc3ZDQ4NDg3ZGVkYTU1MjUxMDI0OWI2YTE2YzBmNmIxOTMyIGxlZ2FjeS10cnVuaworMjcwODAgNTY1MDMyYjQ4ZjUwOWM1MzMzOGViMjkyZTUxMzA1YjZhMTNkODhiOSBsZWdhY3ktdHJ1bmsKKzI3MDgxIDI4Yjk5NzFmMDY4ZjdjZDRiNGM0ZDk0ODM3NTRjODM4ZGM5ODVhYjcgcmVsZWFzZTIyLW1haW50CisyNzA4MiAyYjEyMTlhNzJlZmNhNmVjNzY2ZmFmMTc4N2JiMDRjN2Y0ZTgxODk3IHJlbGVhc2UyMi1tYWludAorMjcwODMgOTY5YmQ1OTdmOTIzOGM3OTY2NmVjYTJkZTZjMzA1ZDI1ZmVjYzQ5YSBsZWdhY3ktdHJ1bmsKKzI3MDg0IGMyNzMzZThmNjYxMmI5YjI1ZWE4Yzc0NmIwNzYyMjdjYTE4NDExNzEgbGVnYWN5LXRydW5rCisyNzA4NSBmYzUzNjFlMDI4ZjNkN2Q2ZjcwZTVlMDY2NDg1Y2VkMDg0ZjZkMGMwIGxlZ2FjeS10cnVuaworMjcwODYgNzcxNTRjZWYyOWQxOWY0MGYzNWM4YTYyZDE1MjkxZjUwMmFkNjQ5NyBsZWdhY3ktdHJ1bmsKKzI3MDg3IDQ0NDk1NGM1NDM0YzFlZjdkODE0ZjhmMjhmYWViNGE2YTI2ZmNkYTEgbGVnYWN5LXRydW5rCisyNzA4OCAyMzdjYmQyYTkxZTliYmZjYjI2ZTYzMTU0ODU5YjA5NTAwNWI5MmRkIGxlZ2FjeS10cnVuaworMjcwODkgYjA2MjA4NWMxZmYyYjgwYTY1NzJiMzUzMWJiYjY3N2YzZWU3ZjczYiBsZWdhY3ktdHJ1bmsKKzI3MDkwIDQ4ZTkzN2UxYjNmZTNkMTBjMjZhYTBkMzk1MTlmMzM2Y2UwOGU0OWIgbGVnYWN5LXRydW5rCisyNzA5MSA3NWM1MTk5OWM4ZDU0Zjk1YWQxYjU4ODAxMzFlNGJiZGQ4NjQ1MGY1IGxlZ2FjeS10cnVuaworMjcwOTIgMmY2Zjg3MDhlM2U5NDVhNzE2OTJiYzliNzY5NjRlNzYwYzk3MGY1MyBsZWdhY3ktdHJ1bmsKKzI3MDkzIGRiMjM5ZWMzMDdlMDc0NzFjMmU4YmExZjMwMDJlZmUyZTI3MDhlZWQgbGVnYWN5LXRydW5rCisyNzA5NCAxMjM1YTk1ZmVkY2Q2Y2FmMmY0Zjk0ZDY2NzYwY2IxYTFjZWNjYjA5IGxlZ2FjeS10cnVuaworMjcwOTUgMmNkNmVkMWMxYjU4M2JhMjc4NzUwOTgwMDBhNmJhY2ZlODAzNjA5NyBsZWdhY3ktdHJ1bmsKKzI3MDk2IDlkMTFmNTE4NjBkZDNlMWZkM2YzZmZjMmJmZDk1Yzg4MGZkOGVkZTkgbGVnYWN5LXRydW5rCisyNzA5NyA1NTYyYTQ5OWZiN2Y4NDUxY2ZlOWNkZDE1NWZmNWM1YWYyZDhmZjMwIGxlZ2FjeS10cnVuaworMjcwOTggNWY4NWNhZTI1ZTE4NTU0MTlmMmViMzQyM2U4OTZmYTQwZTgyMDQ4NyBsZWdhY3ktdHJ1bmsKKzI3MDk5IGFmOGQ0MGU0YzM3NzczMjA3MWFhMjg2OTM0NTc3MGZkMWUyNDk0ZjQgbGVnYWN5LXRydW5rCisyNzEwMCBlMGE5MWM2NzM4OGY0ZmQwYWE1MGQ3NjJiNTY2MjM1NDgzYWQ5MmFmIGxlZ2FjeS10cnVuaworMjcxMDEgYmQyNmMxMjA1OTFhNTc4ZTliMTQwY2I1MTZiYjI2MzI5YmE5YzQyNCBsZWdhY3ktdHJ1bmsKKzI3MTAyIDdlYWFiZTc3ZDVjYmQ5ZjdmYjNlNmEzMGM0MzhjNmQyYmJlZTk2MTEgbGVnYWN5LXRydW5rCisyNzEwMyAzMDgxMjJiNjk5NmU0NGRjMThlZTk1ODNjNTRlNDczMzVhMzYzZjUyIGxlZ2FjeS10cnVuaworMjcxMDQgNjU1ZjQ4NjI4NDM2OWNkNGM4Mzc1MzI5MWUyNTU4N2RhMGQ2Njg5ZSBsZWdhY3ktdHJ1bmsKKzI3MTA1IDE4NDJkYjZhMTM5NDg1NDZjMWQ2YWJkNGNkZjNkOWRkMzg5ZjUyM2UgbGVnYWN5LXRydW5rCisyNzEwNiBkZjFhMjc1ZmY0ZjI1YjU0YTM1NDJkYjkzNWFmZGQ5NGZiZDMwODA1IGxlZ2FjeS10cnVuaworMjcxMDcgYTY4ZDI0NjZkOTRiZjU1NDkyMDhiZmFlNGRkY2Y2ZjQwOTAzZDVmOCBsZWdhY3ktdHJ1bmsKKzI3MTA4IDI3ZjQ4MzE0YmE5ZDBlMWVjMzM2NGY2NGExMTYwNWE5NDUyOGE4MTAgbGVnYWN5LXRydW5rCisyNzEwOSBhMjEzNmFlOWQ0Zjc2ZTcyNTA5MDc0MzIzM2I3MjI2MDhkYThjNWZmIGxlZ2FjeS10cnVuaworMjcxMTAgNjg5NTIwMGQ2MmIxOWNlOWQ4YjRjMWZlMzdlZmJjNjhkMTMzZDdjYiBsZWdhY3ktdHJ1bmsKKzI3MTExIGZlNzY5YjA3MTUwMzUzZmUyMWM0NzYzOWUyN2M3NzliNTQ0MDgzNDQgbGVnYWN5LXRydW5rCisyNzExMiAyZTFkZWY0MTdlY2I4OTdjOTRlZjc2ZjExODQwMmY1MjU2NDhkZDJlIGxlZ2FjeS10cnVuaworMjcxMTMgZWEwMzU0OTBmNjI0NWMyODkxNDgyMWRiYzQzOTFiNDgyNGQzMmQ1OSBsZWdhY3ktdHJ1bmsKKzI3MTE0IDM4ODMyMDAwZjdlOTQ1YmU1YzQ0YTY3NjYwNGU1MDdmNjY0ZTI1MGMgbGVnYWN5LXRydW5rCisyNzExNSA0M2RkY2RjZDNjNzFmZTRlZjc0MTJjNjk0MGQyZTZjNjRiOGQyNTJkIGxlZ2FjeS10cnVuaworMjcxMTYgNGQ1OTMyNTRiYTkzOTI1ZGVlZGQwMGFhY2U5NzU2MTRmOTg5MTYzMCBsZWdhY3ktdHJ1bmsKKzI3MTE3IDJkNjdhMGJhOTAyMGQyOGU4OTJkOGQ2NWMzYTRiMjMxNzNlMzQwZTUgbGVnYWN5LXRydW5rCisyNzExOCAzNjY4NzdlZGQ0ODc2M2NjYThhMTc0NmQ1MzMzNzBkOTIzMWQ0Nzc1IGxlZ2FjeS10cnVuaworMjcxMTkgN2JjNDgwMjllYWE5Y2IzZDkwYmJlODI3ZGRmNzY3MmU5YjQ3ZWE0MSBsZWdhY3ktdHJ1bmsKKzI3MTIwIGExNjhiMmY2ZDdkYWFkNmY1ODI2ZWY5ZWU5NTYzNzk2NzE4OTBmYWYgbGVnYWN5LXRydW5rCisyNzEyMSA0NzFhNTdiZjJkYWUxODVkNDgwYWUzZDhjYmEwNDk2YTMxNTE5ZDRlIGxlZ2FjeS10cnVuaworMjcxMjIgNDEwOTdlOTJmNTYwZjk5OTM0YmIyYWNmY2QyODE2NDhjYjFmOTExZSBsZWdhY3ktdHJ1bmsKKzI3MTIzIDJjOGVhN2Y5YTNjZWRjMzdmZjFhNjUzOWZmYjVkMzkyOTFjMDdhOTAgcmVsZWFzZTIyLW1haW50CisyNzEyNCAwMjc5MDQwYWUwM2NiYTRkODliZTEwYWQ1NDI2MzY1MTMwZjY3NzE4IGxlZ2FjeS10cnVuaworMjcxMjUgOGU1ZjI2Nzk2NjIwMGIwMzM3MjI3M2Y3OWNhNGNkYjI3MjBmZTIwMCBsZWdhY3ktdHJ1bmsKKzI3MTI2IDA3NzFmOTM4MmQxZTMyZGU4OTU2MGJmZWU1MmZiMzExZTNmYzQ4MmYgbGVnYWN5LXRydW5rCisyNzEyNyBjN2U4MDc4MTcxNTkxY2NkN2NlYmQ3ZWY1NDVlMWUxN2Y3YTJiZTFmIHJlbGVhc2UyMi1tYWludAorMjcxMjggOTEzMTczMDFkZDA5OGNhMzNiN2YyMTAyMWI3NTY2OGY3NTExYTM5YyBsZWdhY3ktdHJ1bmsKKzI3MTI5IGU2NDBkODliNDkwNzQxNWEwODQwODYyMGZmMzIyZWZkYzJmOWE4NDYgbGVnYWN5LXRydW5rCisyNzEzMCA5NGQwZGM5ZDZlNDRlZjEwNzQyM2JlNmI5MzBlZjhiZWQ2NmE4MDc0IGxlZ2FjeS10cnVuaworMjcxMzEgYmFkYmM1MzM0NDg4NjEyMmFhODk4MjUzMWRjYmFiZWUwYTRlYmUwZSBsZWdhY3ktdHJ1bmsKKzI3MTMyIGYxNmY2ZGE0ZjVmZmRiNmQ1ZGRjNzBhMjEwZGNkODI5NjZhMGM2NGEgbGVnYWN5LXRydW5rCisyNzEzMyBkNThmYjU0NDUxMTg4OGU2ZmI1OTE4NjNlYzg1OWU2NjY2N2FhOTM4IGxlZ2FjeS10cnVuaworMjcxMzQgYTdjZWFkYjAzZWRjOTE3NDU0NGE1OTJiNTYxMTY0ZjgyNjgxZDI3NSBsZWdhY3ktdHJ1bmsKKzI3MTM1IDFjYmNkZGNhMzNiMDI4M2MzODQ2ZTgwMmMzOWEzY2JjYmNiZGVjYmQgbGVnYWN5LXRydW5rCisyNzEzNiA1ZmIwOGQ4MzJlYWM5YzkwODM3ZDRmMjNjZjhmZTlkNWRiNzIxZWVkIGxlZ2FjeS10cnVuaworMjcxMzcgNDY4MGVmNGZlOTBhZDQ1MzNkMzRiYjY0NjA3NDk1M2UyYTcwNDk5NiBsZWdhY3ktdHJ1bmsKKzI3MTM4IDM1YjYyOTA4NTVmYzFlODc0Mzg4MzVmY2E5MTUzN2FhOTAzYmEyZGMgcmVsZWFzZTIyLW1haW50CisyNzEzOSBmNmIyNzE5ZmJmMTE5ODk3ZWFkMjUwNzFjZmRjMmFkNTlkMzVhMGE2IGxlZ2FjeS10cnVuaworMjcxNDAgMDZkYmQwODk4YjM5ZTI0M2RhMzFkNDdlNzFhZmQ2ZjAzOGQxZjE4ZiBsZWdhY3ktdHJ1bmsKKzI3MTQxIGE1NTM0ZmFlNTExMDE2ODY3NzIyOTExNzAwM2MxODM3YzJkYTBiMzAgcmVsZWFzZTIyLW1haW50CisyNzE0MiAwYzY1ZjQxZmQ5MjE5ZWQ4ZmQyM2JkYzQ2YjkxYzVkMzliNWY5ZjhlIGxlZ2FjeS10cnVuaworMjcxNDMgNTAwNjMwMTZkMDQ2OTlkMTE4NmZlMjhkMTdlY2E3YzY4MWUxN2M0ZCByZWxlYXNlMjItbWFpbnQKKzI3MTQ0IDVmODZjMjFiZDlmYzg5MDU2NTZhMmE0NGY3YjdiZmY0NDlkMzJjMGEgcmVsZWFzZTIxLW1haW50CisyNzE0NSA3MWRiNDI4ZjZlMDhhNDU5YWU0YzQyYjFlODZlNDViYzk2NzNhMzM2IGxlZ2FjeS10cnVuaworMjcxNDYgYmVjMWI5NDJlMGJjM2NkNzFlNzY5YTAxNzIzMTFmNTY5MjMwYmJiOCBsZWdhY3ktdHJ1bmsKKzI3MTQ3IDI0NTIyNGQxYjhjOTIwMWEyYWU4NDNlZTEyMTdlM2JlM2U3NTE2NDQgbGVnYWN5LXRydW5rCisyNzE0OCA1NWM5MjI2Njk5MTMxMzQxZTI3ZjQ4YTRlZTgzN2I5ZmFjNTExYzcwIGxlZ2FjeS10cnVuaworMjcxNDkgYzdjZGE2M2EwMDdlNDRmNjE2ZDA1YTRiMDk2YmRkNjM3ZjhiNTlhOCBsZWdhY3ktdHJ1bmsKKzI3MTUwIDczMDQ5MGZmMjVlYTM5YmQ2NTAyMWE5ZTRlZTBhODgzNjI4YWM3YmQgbGVnYWN5LXRydW5rCisyNzE1MSA1NGY2Zjg5MTM5ZGI1M2Q5MThlNTU2MWM3NTU5NzNmMjMwNWE1MjZjIGxlZ2FjeS10cnVuaworMjcxNTIgMGRhYjhiYTFkMjk4MDc5ZjljMDQ1OWU2ZTE1ZWU1ZDZlYjJjNmMzYiBsZWdhY3ktdHJ1bmsKKzI3MTUzIDI0YjBmNmQ2OTNlMzRiMzdjNTJkZjA1OTA4ZTJiN2M1ZGQ4M2Q2ZWEgbGVnYWN5LXRydW5rCisyNzE1NCA3YTMyYzIzNTZlNTY3Y2Y4OTlhMjY4NDYyM2Y1NGYwMGE1YjIxNDk3IGxlZ2FjeS10cnVuaworMjcxNTUgZTBmYmY5YzRkNDZjMmQyYmU4ZDc4NTM3ZGQyZmI0ZWI3NzU3M2FlZCByZWxlYXNlMjItbWFpbnQKKzI3MTU2IDkzMjk3NzA2MzdhODU4NTIxOTRmNmViNjk0ZDE0NzUzOTAyZDI1NzUgbGVnYWN5LXRydW5rCisyNzE1NyA5ZGEyZDhjMTMyMDkwOTQ4MzU4Yjg2M2I1YTBiN2UzYTMxMGEwZjdhIHJlbGVhc2UyMi1tYWludAorMjcxNTggYzAxYzFiNGE4MTcxNmQxZTIzN2Q0MTBiYzNiZTE5OTY4YzRkYzY0MCBsZWdhY3ktdHJ1bmsKKzI3MTU5IDQ4NmY0MDQ1ZDEzZGY2MDg5NmFlZjliYzIxZDk2MTZmMzVjZmU5NDcgbGVnYWN5LXRydW5rCisyNzE2MCBjZGU2NjA4NzM5YzQyZDQ1YTFmNmIwODUwN2Y3NTU3YzQ4OWM0NTEwIGxlZ2FjeS10cnVuaworMjcxNjEgN2RkNDMyZTFkZTI2NjY0MDJlZjZiNTkwZmYzMjAwNTllMmFjNmYyMCBsZWdhY3ktdHJ1bmsKKzI3MTYyIDdjZGM1MzFlNmE1MDRhMDlkNzgzN2Y3ZmJiYmE1M2MyOTA2MzBlYWUgbGVnYWN5LXRydW5rCisyNzE2MyAxZjFhNmY3ZGQ2MDAxNGRiMDZjZDhiYWVlZDg4OWUxNDc5YTNmOTUyIGxlZ2FjeS10cnVuaworMjcxNjQgODBkNDUwZTU1MmY2OTljZTY3YTBmNzgxZTdiYTFjNzhjZjkyNjA4YiBsZWdhY3ktdHJ1bmsKKzI3MTY1IGZjYzM2ZWUxOTI0YjMxNmRhOTc2NDZlOGU5MjI0NzM0NTk3ZTBjYmYgbGVnYWN5LXRydW5rCisyNzE2NiBiYTI5NDg1ZDA3MjBiZWVhOGYwMTY1N2U0MmEyZDVlM2NmMmU4OTg0IGxlZ2FjeS10cnVuaworMjcxNjcgMWRhNmQ2N2Y0YTA1YzVlMzBmM2Y1NDJmNmJkYTUyYWNkNDYxNTUwMiBsZWdhY3ktdHJ1bmsKKzI3MTY4IDJhZDEzZWU2ZDg1MDVjMmMyNDEwMDg2YzE5NjA1MWY4NTE4ODMwNTcgbGVnYWN5LXRydW5rCisyNzE2OSBiZjE1NTVhOTI3MTE3ZGIxOGQzZWM2MjkzZGE4OTRhZmE4ZmM0NjE3IGxlZ2FjeS10cnVuaworMjcxNzAgYjJiMWYxZmY1YzcxY2RhN2MyZGY3NDU4ZmM5ZGY5ZmViYTZiNTU1NSBsZWdhY3ktdHJ1bmsKKzI3MTcxIDRlYzU4YzI3MGYzZWMwYzBjOWVlZjg5ODk1MTM3NjY2MzFiZDQyY2EgcmVsZWFzZTIyLW1haW50CisyNzE3MiA3ZWFkMmQ5ZGY3Zjk2OGNkNTRjY2NmNmIxYjcwNjU3YTcwNDczZjQ0IHJlbGVhc2UyMS1tYWludAorMjcxNzMgMGIxMmFmYzQwMTJhODA2Y2JhNDVlNjM1NDRiMGI3OTVhYzg3N2Q3MyBsZWdhY3ktdHJ1bmsKKzI3MTc0IDA2MDFlY2M3ZjRiZjczOWRkMzk3ODIxN2MyYzNmMzQ3MGNlMDc3Y2YgbGVnYWN5LXRydW5rCisyNzE3NSBjNzRkODZkYzQwMTc3NGRjOThlZTQwNTE0ZmM2Y2VkNjc5ODJkZWFiIGxlZ2FjeS10cnVuaworMjcxNzYgY2M2NWI1YmNmYzM4MzY5YjhkOWI2NTc2YTQ3OWFmNjFjMTY5NjU3YyBsZWdhY3ktdHJ1bmsKKzI3MTc3IDc5ZGNkNTdmMjcyZGVjNDkzMzMzNTZjOTA0NWM3NjRmOTY3NjYyMDYgcmVsZWFzZTIxLW1haW50CisyNzE3NyBiYjViMzcwNDkyZDZhMzc2OWU3ZTNhYTUwYmY0NTcwNmMyZDM0MmZhIHJlbGVhc2UyMi1tYWludAorMjcxNzggMDFlNGI2OThmZjdlZmUwYjFmMzI5N2ExYjY5Y2I3ZGRiMjRhYzZhOSBsZWdhY3ktdHJ1bmsKKzI3MTc5IGUzZTAxOWJjNGUxZWNlNDE0NWVlMTc1NzUxY2Q2YzZiODQ3MDFjNTUgbGVnYWN5LXRydW5rCisyNzE4MCA4OWE3ZmE5MThjM2I3ZjY4OWFmNDM0YmY1NzhiMzZmMzY3YmE0ZjljIGxlZ2FjeS10cnVuaworMjcxODEgZjZjMjZkMDgzYmY2YzhkZjMwODkzZWU2ZGFiZjRmYzk4NjE4NmY1YSBsZWdhY3ktdHJ1bmsKKzI3MTgyIGM3ZDdkMjMxOWIzYTFjN2JiNTNiMWRlZjFhNjg3YzE3MzBiODFkMzMgbGVnYWN5LXRydW5rCisyNzE4MyAyMDNkMTQxMmE3ZTgyNmQzYzA0Mjk2MmVmNWZiMjUxOWY1MWYzNmNjIGxlZ2FjeS10cnVuaworMjcxODQgZTRkNTU3ZDQ2Yjk2ZmQ2NTQyMmRiZTM3NjY1YTQ3M2RmNzMwM2FkNCBsZWdhY3ktdHJ1bmsKKzI3MTg1IDJkOTdiYzJiYTUwZDI3OGQwYmViNjJmNjNkZjQzZWQwNjY2Yjc1YjAgbGVnYWN5LXRydW5rCisyNzE4NiA4YTBhMTRlMzcyNWUzNzYzZjE1Njc3NzZmYWEwYjk3MWUxZGYyOTIwIGxlZ2FjeS10cnVuaworMjcxODcgNDNkNjU4ZGM4ZGQzNmU0NDczNmQzYjUxNmJjZWNjOTNmZGVmMzEyOCBsZWdhY3ktdHJ1bmsKKzI3MTg4IDEzMGZmZjQ4NmZhNjRlZjgyMDA2ZDI3MDU1ZDI0NzYxZTQ1MDNiODUgbGVnYWN5LXRydW5rCisyNzE4OSAzMTI2YzQyNjI5NjI5Yjc5NWFjM2RjMDRjNjQ3YzE3YWUzNzA5N2U2IGxlZ2FjeS10cnVuaworMjcxOTAgOTlkMjI3MjMyNTJmNTkwODk5NWRkODZhMzY1NzZiMjc1MjgwYmVlMCBsZWdhY3ktdHJ1bmsKKzI3MTkxIGM0OGJmNWRmNjE0YWMwNGE3ZDI1NTY4N2E5YjBkNzU1MDg2NTIyMWEgbGVnYWN5LXRydW5rCisyNzE5MiA4ZmY2OTFkYzdmMjkxZGRkMGM3YjUyNjg3YWRiYjU4ZmZhMTdkYzg2IGxlZ2FjeS10cnVuaworMjcxOTMgOWYwMDA5Y2E5N2I5YTVjMmQ3Yzg3ZWQ4ZGE4ZDNjMDUxMTJjZWZjMCBsZWdhY3ktdHJ1bmsKKzI3MTk0IGFiY2ZhNDk5NTJjNDMyNjI3ZTZkMTE0YzZmMDBjOGY4MThkY2RlZDMgbGVnYWN5LXRydW5rCisyNzE5NSBkNWU4OGMwYzllMDllZTU1YWIzODE1OTAwM2UzM2RhOWVhMjFmODk5IHJlbGVhc2UyMi1tYWludAorMjcxOTYgNDFjNGRkYWIzNmYyZTIxZTJjMTM3NDIxOGUyYWUwZGRmNmE1MTY2OCByZWxlYXNlMjEtbWFpbnQKKzI3MTk3IGU0MjcyYWQxYTYzNjk0YTIwZDFiMTUzMmNlYmU0NDlhZjc3M2YzODAgbGVnYWN5LXRydW5rCisyNzE5OCBhZGUxZDU2MTA5YTgyZjk1MGI1OTg5MjAzMDFkNzZhMzJiM2JkYzkwIGxlZ2FjeS10cnVuaworMjcxOTkgZjczMDZhZTg2NjJkYjU4ODIwY2ZlZGIyODQ2NWY5ZDQ5N2VhZGI1MSBsZWdhY3ktdHJ1bmsKKzI3MjAwIGVkMWJhMzdhNDZiNzNmMGM1YjI3MTI0NTU1NGMyZGM3YmU0N2EzMmYgbGVnYWN5LXRydW5rCisyNzIwMSA5ZjBhZDBlYjYxZjA4NmNjZDdhN2YyYTY2MmViZTA4ZDM0M2Y0MDc5IGxlZ2FjeS10cnVuaworMjcyMDIgOGFlMjZkOWJlMWI0ZmMxM2Y0ZGY1OTExYmMxNGE4YzU5ZDVjMWFhZSBsZWdhY3ktdHJ1bmsKKzI3MjAzIDFjZjFmOTgxMjIxOTc5ODk0MzMxNGYxM2FmMjVhMDA4M2JmYmE1YTAgbGVnYWN5LXRydW5rCisyNzIwNCAwNjVhN2YyM2JlMmZkNDRhYzdhYjA5ZTZlM2M3NTQ3Zjg1NTQ5NDg3IGxlZ2FjeS10cnVuaworMjcyMDUgMzU5YTU3ZTk2ZDVlYjYzYmRjNTc3ZTIyZThkNjcwYTM3MDNhZDFiYyBsZWdhY3ktdHJ1bmsKKzI3MjA2IDk1MjYzY2NlYzgxOWNjYzUyZmMxZGViNTgyNDhjYTM2OGZkYzVjYzIgbGVnYWN5LXRydW5rCisyNzIwNyBjODgxNWJkMDFmZjU3OGU1OWE1NjU0NjJiYTBkNTVhYTA5MjkyMTBhIGxlZ2FjeS10cnVuaworMjcyMDggOTAzMTEyYzFjODg3NjA4OGI5N2ZmMTE3NzkzNjIzYWY0YWQ0ZjE0YiByZWxlYXNlMjItbWFpbnQKKzI3MjA5IDNmMTk2YjRkYzRjMTA2ZWMzNjY4YjdmNjllYmZhOTEyN2IyY2YxMmIgcmVsZWFzZTIyLW1haW50CisyNzIxMCA2YzYxOWMxNjFiODdmOGRmZDgxMTI2NTZiMDc2MGY3MmQ2MDk2ZDFlIGxlZ2FjeS10cnVuaworMjcyMTEgODVhNGU3MjdiMTZiYTFlNzNhY2E0ZDViMTI4YjFkM2IxOWU1Y2JmYSBsZWdhY3ktdHJ1bmsKKzI3MjEyIGJkMzdlYjRkYWYzYjY3NDgyOGQ2MGM0OWNhNDg3ZTlkMjE5ZjA3MTcgbGVnYWN5LXRydW5rCisyNzIxMyBiNDgxYmE5NjdhZDgzNzEwZDM2OWFhYTU5NmYxNDNlNTA5MjljZDcwIGxlZ2FjeS10cnVuaworMjcyMTQgYmViNjk5ZTEwYjI5Y2UyMjRlMDEwZTU5ODk0MGVjODI5ODJiMDZkOCBsZWdhY3ktdHJ1bmsKKzI3MjE1IGY2YzJjMDg5ZmRmMmFlMDNlMzc5YjY5OWM0NjMyM2RjMzEzZTg3YzYgbGVnYWN5LXRydW5rCisyNzIxNiA3MjUyYjg2N2Q4MWUyOGVmY2Y2MjllMTA5YTQ5NmZjZTQ4ZThhNGQ1IGxlZ2FjeS10cnVuaworMjcyMTcgYzljOGY1MjNmZjFiNTY2N2ZmZGRkNmMyODE4ZjkzNmNjZWNmZDY4NiByZWxlYXNlMjItbWFpbnQKKzI3MjE4IDg1NDU4M2NkNjNjN2NlNTczYjdiODcyOTJkMGJlNDBjYWFkNDE5ZmQgbGVnYWN5LXRydW5rCisyNzIxOSBkNmFlNTQ0YWNkMjRhMWY3MmNlMDA1MzRmZWQ0NjRmZGU5MWVlNTA0IGxlZ2FjeS10cnVuaworMjcyMjAgNDYyNzVmOWU3NDA3MTBkOWIwZTVhMGFmMjY0YmQ0MmQ5NjcxN2I3NyBsZWdhY3ktdHJ1bmsKKzI3MjIxIDhhNDc2OTI0ZWNmZWExOTRmNDdjMGMyNjYwY2QwNmRiMWQ4MGEzNWEgbGVnYWN5LXRydW5rCisyNzIyMiA4YmM0ZTViYTFmNjUxN2E3ODg3ZTg5MmE4YmM3MmYzMTU1YTgwMjYxIHJlbGVhc2UyMi1tYWludAorMjcyMjMgMmIwNzEzMzcyMDVjMDFjMjY4NWIxYmJmMjJhZmYzYTVmMDU0ZjUyZCBsZWdhY3ktdHJ1bmsKKzI3MjI0IDg2OGNmYmRjYTkwOTY5OWIwYzU2OTMwMGExZTAyNzRkMjc1YThkYWUgbGVnYWN5LXRydW5rCisyNzIyNSA1MDI3ZTdjMTJhMTYwMDNhMDZmYjAzYTBhNDQxZmZjYmVkOGRjOTUxIHJlbGVhc2UyMi1tYWludAorMjcyMjYgNTk4NmRiZDAwOTRmYzNiM2Y0MzI0MWUwMWE5ZThiY2NjYWJlZGJhZiBsZWdhY3ktdHJ1bmsKKzI3MjI3IDZkMDA4YTRlMjYzMzM1ZWZmN2VlMzZkNzUxNGI0N2U5ZDBhZTJjYWYgcmVsZWFzZTIyLW1haW50CisyNzIyOCA2M2VlMzFiYjI1ZjMyNTYwMjkzNzdmNmI3NDAzNjdjOGE4ZTA1MmQ3IGxlZ2FjeS10cnVuaworMjcyMjkgZDdiMzA3YzM3OWM4ZGMxZGQ1ZDAzNmZmYzQ3OWRhNzM0M2I5OTM3MCBsZWdhY3ktdHJ1bmsKKzI3MjMwIGI3OWQ0MzMwNWM3MmQ5NDczZjU4NTM2Y2VhMTkzMWZmOTNhNzNlNjQgbGVnYWN5LXRydW5rCisyNzIzMSBkZmE2ODY2OGQwMGVjZGI1NmFmYmZkYmU0NWQ4NmM1MzYzMDViNjc1IGxlZ2FjeS10cnVuaworMjcyMzIgNmMxYTBkYzg1MWI2YzFjYzM5NWM4NmYxN2FmNjcyOWFlMThjMjM2ZCBsZWdhY3ktdHJ1bmsKKzI3MjMzIDFhNzZlM2M0NTA4ZjM2MzUzYjJlM2RiNjVjZTJmZTdkNmZjY2JiNDMgbGVnYWN5LXRydW5rCisyNzIzNCA0ODdhNmI5OWY3ODExYjBlODEwNmMwM2RkZjIxZTFhNGViMzdkMmY0IHJlbGVhc2UyMi1tYWludAorMjcyMzUgNDVkNjc2OTMzODgyOGY3ZjFiZGEzMDhlMTdhZTQxNzU4NmMyM2VmMiBsZWdhY3ktdHJ1bmsKKzI3MjM2IDhlNjc2MGJmMTg4NGU3Y2I0MDA4N2ExYmY2ZTQ5MzU0NGRiNWI1MTIgbGVnYWN5LXRydW5rCisyNzIzNyA4YWQ4MWIzNzk1NTIwMDU4YWUxYzc4NDNmMDEwMzBkNjJlZjUyYWE3IGxlZ2FjeS10cnVuaworMjcyMzggNjNkMWUzMjYzZjQ1NjJmMzk1NDU5MjYxMzY0MTZiZTE0MjRmOTRlYSBsZWdhY3ktdHJ1bmsKKzI3MjM5IDk1ZTdiYmJkMDk1NDk0NWVkYTk4N2NlNzAxZWEzNzM2NTE1ZTQxNzkgbGVnYWN5LXRydW5rCisyNzI0MCBjMDJkMWM5YTY2MmU2NjVhNDA3ZDUwOTk0YTQ0NGYyMjE0MzE1MzNhIGxlZ2FjeS10cnVuaworMjcyNDEgNDU4OGI2ODIwYTExZTU0YmJkNDA5ZmJlZmNjNTcxOTBiYTViYzU0MiBsZWdhY3ktdHJ1bmsKKzI3MjQyIDE1YWIyOTM5Mzc3OWYxOWFhODNhMmFiZjRjOWRmM2I3Yjc1MDExZDYgbGVnYWN5LXRydW5rCisyNzI0MyA1YWZkMTRhMmE4YmM2Yzg3NjAxNDgxYTY1MmQ4ODFmOTE2Y2U0NzlkIGxlZ2FjeS10cnVuaworMjcyNDQgODMyZjA1MDExNDhiYjc4ZWNmMmVlNDNlMjlkM2IyNjk1YzRlZDE3ZiBsZWdhY3ktdHJ1bmsKKzI3MjQ1IDA0OTlkZjU4ODRkMmY1NGZmYzQzZjA0ZjY3MzFlNDY2NzI2ODUxZDggbGVnYWN5LXRydW5rCisyNzI0NiA0ZjZkMzFkYWNkNWU2N2U0OWM1MmM1NzczOWJlMmNkMDBlZjg5MzE0IGxlZ2FjeS10cnVuaworMjcyNDcgMDg0NzVjODdkMjRmNTBkMjdiODQzZTEyZThlMTA3NjU5ZmQ3NzdjYyBsZWdhY3ktdHJ1bmsKKzI3MjQ4IGJiYWVhZjI3MTljNGJiZTY1NjJlODdjZTBhMGNlOTE4NjU3NmE3YmIgbGVnYWN5LXRydW5rCisyNzI0OSA4YjdkODdlYTQ4OTRlMWQ2MDk2MGJiMDg2ZmQyODUzYjdmNzZhYWQ2IGxlZ2FjeS10cnVuaworMjcyNTAgM2RiYTg2NmU4NjJlOWZmYTYxYmE0NTFiNGI2Zjk3MWQ1MDMwMDIzNiBsZWdhY3ktdHJ1bmsKKzI3MjUxIDAwMGFiNTg0ZTc3YTYxYjQyODhhZWIxYjYzYmNkMGU3NWNjYTU3ZjAgbGVnYWN5LXRydW5rCisyNzI1MiBlYTdlNzE3ZGVlMjcyM2I0MTY0OTk3NjBkNTU1NDdmMDk4MDg2MDIyIGxlZ2FjeS10cnVuaworMjcyNTMgNGM2N2RkNDJhMWQ5ZWEzOGM1OTljOTczNDhmZWNjY2NjN2Q0MWJkOSByZWxlYXNlMjItbWFpbnQKKzI3MjU0IGFiNTM1NWQ4NzNkZDU4N2MxYmVlNDcwMGRkMjAzZjNlOGFhZDdjYzkgcmVsZWFzZTIxLW1haW50CisyNzI1NSAxY2VmNjFkNTk0Nzg2NzFlMDViYjMyNTRhMTZkOGNiMmU2MmU1Y2ZjIHJlbGVhc2UyMi1tYWludAorMjcyNTYgN2I2NmYwMDM0MjMzYTc2Njc0MWMzMzZlNDk2MDFiZjNiNjdkYmMxMiBsZWdhY3ktdHJ1bmsKKzI3MjU3IDQxYWI1MzJkNGY2MDFjY2E0NGNjNjk5NWIwMDM3YjVhOWIzOGRjZTEgbGVnYWN5LXRydW5rCisyNzI1OCBjMTQ1ZmRkZWEzNDA4NGZmNjNhMTkwYmEzNjEyMzRmYzAwODBmMzdlIHJlbGVhc2UyMi1tYWludAorMjcyNTkgZWE5ZDMzM2Y5MDM0ZTFkNTIzNzQ2MmJiODMwMDMyODgzZmVlYWU0MCBsZWdhY3ktdHJ1bmsKKzI3MjYwIGE0NGYzODc3YTM4NmJmMjczODc1NGUxOWM1MzE3OGJkZDg4MGQ0NzcgbGVnYWN5LXRydW5rCisyNzI2MSA4M2U0NThhNjNjM2ZiYWM0Mzc2ZTQyZDk0YjIyZGQ2MzgxMzMzZmQwIHJlbGVhc2UyMi1tYWludAorMjcyNjIgMzI0YzcyNjc1YzhkMDRiNGIyMjUzYzBjYTQyOGI2OGQ0NGRiMmVmYyByZWxlYXNlMjEtbWFpbnQKKzI3MjYzIDAyYzUwNDVkNWI0ZTBhMzI3ZjhmZTg4OTI3NzBiODZlY2E4MzI0ODEgbGVnYWN5LXRydW5rCisyNzI2NCBhZDFkODYyZmI2MzI2NGRmMGEzZjgyMmNjNDg2YTg1NjRlMTE3OTQ3IGxlZ2FjeS10cnVuaworMjcyNjUgODMwNWExOTU4NGJjODhhZTE2ZTY4YThlY2Y1NWVhZDEyMDY2NjAyOCBsZWdhY3ktdHJ1bmsKKzI3MjY2IGY1MDMwYTI5OTM1ZGNhYjNhMzJjZGEwYTg2YjEwMTBhZmY4ZWE3NjEgcmVsZWFzZTIyLW1haW50CisyNzI2NyAyODU3MDJmMDgyNGE2MzdlNzNjOGU1ZjFiYTVmNGJhZmM0MjUyZDEyIHJlbGVhc2UyMS1tYWludAorMjcyNjggMDg5OTQwOWEwY2I2ZDFlMWUzYTg2MzY5ODdjYzM5YzZmZWE1NjQyOSBsZWdhY3ktdHJ1bmsKKzI3MjY5IDAxY2RkMzhkMzVmYTBkMGMyMGIxZTNmMzNmYTlmMWEzOGFkZGQ1NzMgcmVsZWFzZTIyLW1haW50CisyNzI3MCBhMDdiYzMwM2E2MGQ4YWUzYjc0ZTU5NWMxNjBjM2M4OGZhZjU1MTY4IHJlbGVhc2UyMS1tYWludAorMjcyNzEgMDY2Zjg5MzgwNzFhNTUwODhkZGY3ZGZjY2I2OTIyODFhZmJjM2E5MCBsZWdhY3ktdHJ1bmsKKzI3MjcyIDRmMDYwNmNlZWVmOGM5NDM5NGViMmJjZjI5M2UxZGU1MDVlMzU3MDIgcmVsZWFzZTIyLW1haW50CisyNzI3MyBlOGJhZTI1Mzc4NGIzZWRjYmNlMTMyNjQyNzRjYmU0NzM3MjJiNzdkIGxlZ2FjeS10cnVuaworMjcyNzQgOWNlNzFiMWNjMTdmNzE4ZTljYjkyNTBjYjIwZGYyN2MxZWQzZWE3MSByZWxlYXNlMjEtbWFpbnQKKzI3Mjc1IDczY2Y0ZDg0NzU3MGVjYWFiNTQ4NTI0M2RhODdiZWE0MTU5MTA5N2MgbGVnYWN5LXRydW5rCisyNzI3NiA5MmYyODljMmY3YzYzZDk3N2IxNTkxOWU4YjM4ZGFmZTQ5ZDM1OWJiIGxlZ2FjeS10cnVuaworMjcyNzcgYjE2ZDRiZTZhMjMyZWUxODExMTg0NzVlMzBkMGFiOTFlNGU0NTFhYiBsZWdhY3ktdHJ1bmsKKzI3Mjc4IDkyMTA2NGMyNjI5N2IyNWViMjNiYTk2ZDRjYzFiZWIxNzQzYTU4Y2YgbGVnYWN5LXRydW5rCisyNzI3OSA2ODkzY2VlYzg2MTBlOWM1NDg0MzQ2MWQ0OTM4ZDc5NWYyZmE0YmE3IGxlZ2FjeS10cnVuaworMjcyODAgMDc1Zjc1NWE2NWRhMTZiZGVmZmYzNzA5MDBhODM5MjJhMDU0MTYzNCBsZWdhY3ktdHJ1bmsKKzI3MjgxIDEyOThlOTdmYjM0M2FkYjE2YjJkZDFlZGJkM2M0NmNlNmM3NWRiYTEgbGVnYWN5LXRydW5rCisyNzI4MiA3ZTNlYWM1ZDMyOTk3OWNkOTYyMGY4ZTBiMWZlMzRhNTg0N2NhMGRlIGxlZ2FjeS10cnVuaworMjcyODMgNjIwYjY5OTY4NWZmMDQyOGQyOTU2MGM5OTc5YWMzMmQzZTNkZmExZCByZWxlYXNlMjItbWFpbnQKKzI3Mjg0IGZmMGNkNjg3OGJkZGU1ZmJmMjM2NTc1NzExYTA4NWQzNGI1NzA3NmYgcmVsZWFzZTIxLW1haW50CisyNzI4NSBjZTE2M2YzNDBjZGZmNWMzNjIyZjk2MjI4ZWI4MWJlMzE0MmE2ZTkwIGxlZ2FjeS10cnVuaworMjcyODYgMGJjZWYzY2EyMWMwNmEzNzIzODdkMTkxOGU5NzU4ZWQ3YTM5YzcxNyBsZWdhY3ktdHJ1bmsKKzI3Mjg3IDVmNjlkNmYxN2FhMzEwOTJkNzA3N2FmMmY4Y2RiODc1OGMyYTMwYzcgcmVsZWFzZTIyLW1haW50CisyNzI4OCA4MTVkMDI4MDBkOTgwYmYwMjEyMDg0NDk1NWZmZDA4MjgxNDVjOGY2IHJlbGVhc2UyMS1tYWludAorMjcyODkgYmFlOTk2YmI3ZDgyY2UyZGVlOTI0MTc3MWY0YTJhZTVjYzI1OTc2NiBsZWdhY3ktdHJ1bmsKKzI3MjkwIDM3NTYwZjQzNGY2YTJiZWFlMGRhNmQyYTc1Y2IxNDFjMTg3Y2RmNmYgcmVsZWFzZTIyLW1haW50CisyNzI5MSAxMmY0OWZhOGY0N2YyYWJhMjQ2NmJmMjA0YzFjNDE5ZTE4ZWIwN2YzIHJlbGVhc2UyMS1tYWludAorMjcyOTIgOTIxMWJjNzI0OWEwN2ViMzQ0MmQ0Y2NkMDUyMjYzYWU1OTU3MDUxNiBsZWdhY3ktdHJ1bmsKKzI3MjkzIGZiYTdkMTAzNWZlZDVlZmMxYWE0MDMzMWExMGM0N2I1YzNmY2U0ODggcmVsZWFzZTIyLW1haW50CisyNzI5NCA1NTg2ZjIwODU4MTU4NmI1ZjkxYjhkOTMwN2MzNDQzZWVlYmI3MzQyIHJlbGVhc2UyMS1tYWludAorMjcyOTUgOTcwYWE5NzEyODEzMWFlNDk3N2U3OTkyNzA2MWQwNGQ4ZTI5MmFiYSBsZWdhY3ktdHJ1bmsKKzI3Mjk2IDdkZmU0OGM3YWE2NWUwYzZjZWNkMTVlOTgxYWZjMGFhODRiMDg2YTcgbGVnYWN5LXRydW5rCisyNzI5NyAyNmJhMTdiNzU4YjllZGQ5OWJiZGNjZTk0NTg2NTU1OTZmNWRhNDdmIGxlZ2FjeS10cnVuaworMjcyOTggOGViMmYzMWVlYTllYjNlYWUyYWEyYzY0Mzg2ZjI4OWMwNDFhMDViMyBsZWdhY3ktdHJ1bmsKKzI3Mjk5IGU1NThhNDBiNmI1MjMxMTYxMGQ4YjA5MWU0ZjM4YzA4YjJhYTMxYmEgbGVnYWN5LXRydW5rCisyNzMwMCBlYWI4ZWNhOWVjNTFkMmI5MmY3MjlkYTIzYTUwM2ZkMjk4ZGNhNGU4IGxlZ2FjeS10cnVuaworMjczMDEgNWEyMzAyZjc5NzI0OWU5YTE2NmMwNjkxMDg5YjlhZDQ1Yjk1YTk1NSBsZWdhY3ktdHJ1bmsKKzI3MzAyIDMwNDJkYWQxNDlhZTczZTczY2QyYzU0OTI1N2IxODlmMGVmZjQwYWIgcmVsZWFzZTIyLW1haW50CisyNzMwMyBiNWJkZTc3ZGEyMGUwN2NmOTE3ZGE4ZmZjYjI4MmI4MjE5MDg2MjE2IGxlZ2FjeS10cnVuaworMjczMDQgZDNiNWZhZmVjYjI5ZGY4ZmFlMWY2YzY2OTJiMWI3OWZiZGYxYzBkYyBsZWdhY3ktdHJ1bmsKKzI3MzA1IDM1MDBkYTY2NmMwYzNkNjk2ZTE3NzllOGQzMWFlYmI0MWVmYWNiY2EgbGVnYWN5LXRydW5rCisyNzMwNiBkNjJlNjg0NTQyYjliYmY1MzY2Y2ViZWQzZGFjMzExZWE3ZWM5YjBhIGxlZ2FjeS10cnVuaworMjczMDcgODRmMDkyYjEwNmVmYjkwZmRhNjAyOTExMTZkNjYxODAzMjVhN2QwMSBsZWdhY3ktdHJ1bmsKKzI3MzA4IDgzMzU0YzJjYTM5MDNkMTZiNDE1OWQ4ZDNlYjIwODUzZmJjOWM1YjEgbGVnYWN5LXRydW5rCisyNzMwOSBhNjBhM2Q5YzZmZDlhNmU4NjNhODM4ZTMyMDgxYmNlMDU3M2MyMmQ2IGxlZ2FjeS10cnVuaworMjczMTAgNmUyYTNjNTcwMGFjOWM3YTExZGJhNjc1YjQwNTZkZjM4NjY0OTRlZiBsZWdhY3ktdHJ1bmsKKzI3MzExIGRlNjI1NTE3YWRlODAyZDRkMzNmODRmOGNiZDdkNTgxMThiZDU1YmUgcmVsZWFzZTIyLW1haW50CisyNzMxMiBhZWE4ZmIzZTNmM2Q3ZGI4MzVkZTdhMzEzODg4ODhlOWVjMzdhMjdjIHJlbGVhc2UyMS1tYWludAorMjczMTMgODVlMTIwNGI2NjE3MWJjZjdhOTgyYTBjMGQ3MGRlMTFiYjRkYjEzMyBsZWdhY3ktdHJ1bmsKKzI3MzE0IDY1MmYxYjMxOGU1YTA4MWU3ZDVjZDE0NjI4MzllZGUzMzY0YzczMGIgcmVsZWFzZTIyLW1haW50CisyNzMxNSAzNzExOGI2ZTVmNDYxMjRjYTQ0NjBiNzJiMDI1MTdiNjBiZTU5NzM5IGxlZ2FjeS10cnVuaworMjczMTYgODNhYTk5ZGVkYTc0ZGUxNThiNWQ5OTI0MDU3MjkwODkxMjBlNjZiNyBsZWdhY3ktdHJ1bmsKKzI3MzE3IGVkNjJjMDRiMTlmNTIwZTM1OWI2ODE1YzBlM2JmZGIyMmY5N2RlOGEgcmVsZWFzZTIyLW1haW50CisyNzMxOCBmN2NlNjk2OTc5ZTE4YjAxMWE3ZTQwNzc5NWYxZDk4YWEyMzI0YzQzIGxlZ2FjeS10cnVuaworMjczMTkgZDRiZDY2MDE3MDFkMzVkYzk3OWZkN2E5OTU2ODVlOWY3Zjc0ODFjYiBsZWdhY3ktdHJ1bmsKKzI3MzIxIDM4MzRjYjBlN2JlNjVjNWNjYzg1MDMwOWQxNmViYTU2NDlkNjE3YmMgbGVnYWN5LXRydW5rCisyNzMyMiBjYjA4Y2E1N2UyYTk2NjI4ODcxODA3ZGRlYTI0ZjQ0YmEzYjUxMzkyIGxlZ2FjeS10cnVuaworMjczMjMgMTFhNmQ5YjVmOTkwNjU5NmExMWE4ZTNhMmFlOTI4MjgxOGVhZWMxNiBsZWdhY3ktdHJ1bmsKKzI3MzI0IGFhMjM4NzcwZDgwOGY1M2VlZTY2MWVmNThmZDMzNTNmOWZhN2I2M2IgbGVnYWN5LXRydW5rCisyNzMyNSAxYTJiNTM0NGQxY2NmM2U2MTQ4ZDA2MWU5OTY0ZWQwOGI3Mzg3MGJhIHJlbGVhc2UyMi1tYWludAorMjczMjYgMDNiYmE3MjgyODUyY2JkMmFjNGExYzhkODQ2M2RiYjQwNzNmYmNmYiBsZWdhY3ktdHJ1bmsKKzI3MzI3IDMxMzgxNjcyMDFhYWNkNzhjYzNlZTJmNTY5OTA1N2RiYjQxNTYyMGUgbGVnYWN5LXRydW5rCisyNzMyOCA0ZWVkNTFhZDQ5M2Q0ZWYzYTVmM2M5MWU0MzhmMGQyM2MxMDk5Mjg0IHJlbGVhc2UyMi1tYWludAorMjczMjkgMDk2YjQ3NWUxYmVmMDI1ODM3MzkwY2M1OWY4ZjhmNDRjMjJlODc1MyBsZWdhY3ktdHJ1bmsKKzI3MzMwIDdkOGM2Yjg4OWI1NGUzMDFkZGZhOGM2MDc0MmY0NDYzNDU0ODVkMjYgbGVnYWN5LXRydW5rCisyNzMzMSAxMTFjMWU1OWFkNzJlYTAyNjUxNTNiMDIyNDIxYmVhZGNkMjcyMDBhIGxlZ2FjeS10cnVuaworMjczMzIgZjU0MDVjNmVjNGFjZDM2OWQzZTI5MzY2ZmUxYTA5MzU5ODc3ZmU1NCBsZWdhY3ktdHJ1bmsKKzI3MzMzIGY3ZTE5MWM4ZGIyM2YzMjY2ZmEwNTkxYzExMzAwZWUzN2ExNGM1ODcgbGVnYWN5LXRydW5rCisyNzMzNCAxZmUwMDVjNDI4MzY4N2JjNWE1ZDYxZTE2M2MyNDU4NmVhOGM5YjI0IHJlbGVhc2UyMi1tYWludAorMjczMzUgMjViMGFmMjdkZGM4NTcyZDEwMDFjZTZkMDA1NWZjMDI1YzFlYWJkMSByZWxlYXNlMjEtbWFpbnQKKzI3MzM2IDFhODA5NmJiNGM0ODI4MGM0OGMyNDJmOGEwMzZiZDk1NTgxNTcwM2QgbGVnYWN5LXRydW5rCisyNzMzNyBlMmZhNzQxYzU0N2Y1MTUxMGRhZjZkNTdhYTQ4N2RjMDVjYTk1MmNjIHJlbGVhc2UyMi1tYWludAorMjczMzggZWRkN2MwMTQ2YWM4MjRmNWI0ZTRjOWNjNTVmMmFkYjkzZDNhZmJlOSBsZWdhY3ktdHJ1bmsKKzI3MzM5IGE3Mjk5N2Y3ZGI0YzcwMThmNWI5NTQ0ZDcwNzYxYzVmMzg4YWEwODkgbGVnYWN5LXRydW5rCisyNzM0MCA3ZWJkMmNkM2FlZjAxYjczOTZiODEzNjM4ZmZjOTA4OTdlNmZmMDY5IGxlZ2FjeS10cnVuaworMjczNDEgODE0OWQ5NzhiMDA2Zjc3MGE5MWE3OTk4Njk2YjYwNDFlZmZkMjQyZiBsZWdhY3ktdHJ1bmsKKzI3MzQyIGZlOWM3MTMyYTg2N2U4ZTdhMmE4NTQ0NjJkZDg5OWJiZTAzYTU4OWMgbGVnYWN5LXRydW5rCisyNzM0MyBjNjlkYzQzYjcwMGE5N2Y5NWY4NWZjNTA1YTEyYjQyNmNiZTgzOTQzIGxlZ2FjeS10cnVuaworMjczNDQgNDgxZTRhNGI4ZGUwNjljMTU3ZDBkNzM5Y2M2YWRlNGMwYWZmZTRhNSByZWxlYXNlMjItbWFpbnQKKzI3MzQ1IDM2MDBkOGQwNzM1ODMyOWQ3N2VlNDZlOWNmZmYxNDJkZmNkMWVjZjIgbGVnYWN5LXRydW5rCisyNzM0NiBhN2IxNjllZjgzZWFjYzFjZjgzMjIyYTgwYjkzMGNkNjE5MmUyZmZmIGxlZ2FjeS10cnVuaworMjczNDcgMjZhMGQwZGExMzEyYzNjMGNmYzY2ODBmMjJkYWVlOGZiOTRjMWFmMiByZWxlYXNlMjItbWFpbnQKKzI3MzQ4IDA4MjViZDdiNWI1NThlMDFlOWE0NDRhMGUzYjQ4ZDhjZDQwMTQ4MmIgbGVnYWN5LXRydW5rCisyNzM0OSAzNWM5ODk0ZjA2Yjk2MGNlMTA1YzM2MjlhYzdkMmU3Zjk0YTFhOWFhIGxlZ2FjeS10cnVuaworMjczNTAgMzI0NjNlOGU1ZTFhZTZjZDk4MzRjMTE2N2M1Nzc5MzdmNTc4NWZlMSByZWxlYXNlMjItbWFpbnQKKzI3MzUxIGExODFjY2NhMTMxMjgzMmRjMmIzYTAzMmVlY2ZmMmVjOWE1YjM0MWMgcmVsZWFzZTIyLW1haW50CisyNzM1MiBkN2E2MjA0MmU3ZWZhNTk1MGQwZjViMjU3NmVmOTA0YWZhOGJkYjA5IGxlZ2FjeS10cnVuaworMjczNTMgMjEyZWU2MzY1YmZmOTgzZDkxZDg1MTk4NDJlMzRjYzYyMDg2M2Q2NiByZWxlYXNlMjItbWFpbnQKKzI3MzU0IDdkOGExNTA0OTZhOGYwNmQwNmEzNzAyNTg4ZWQyOTYyZjhlYzMyODYgcmVsZWFzZTIyLW1haW50CisyNzM1NSBkN2Y4NTEyZGE0MjM2YzlmYzFkNTk3MzBmYTZjOTE3NjExZDYwZjI1IGxlZ2FjeS10cnVuaworMjczNTYgYTU2MjkyNzMyNTY2ZGQ0NzgyNGEwZWEyYTdiMmZiZGE5YjFjNWUwOCBsZWdhY3ktdHJ1bmsKKzI3MzU3IDg4NjMwNzZlMmRmOTMwNzc3ODYyNWM0ZDk5ZDkyNTZlYzJlZDE1OGIgbGVnYWN5LXRydW5rCisyNzM1OCAzM2VhNTIyZGQzZDIyZWE5OTEzY2UyN2ZjZGZmMDQ3MDViNTU3MDE5IGxlZ2FjeS10cnVuaworMjczNTkgYjc3MTg1N2VkNzg4OGRlMzNiOTY4YWJlYWEzODczOGJkOWFlNmVhZCByZWxlYXNlMjItbWFpbnQKKzI3MzYwIDRhYjlkZjI0MTZmOTM2ZGMyYWYzN2ZiMDQ3MWUzNDMwMTNjMjM5OTggbGVnYWN5LXRydW5rCisyNzM2MSA5NWRhOTkxODdjNTc1NDIwOTM3ZDdlNWYyMTE0YTUwNjlhZDQ2ZDM0IGxlZ2FjeS10cnVuaworMjczNjIgYWQ2ZmExYzA0ZTQ3NDc3MDhkZGFiMjIzZTVmMmFjZTdlYmUwMTg3OSBsZWdhY3ktdHJ1bmsKKzI3MzYzIDQ4YWQ0NzBjMWY4ZTE2YTQyYWQxOTM5NWEyODZiZmRkMWRjZTJkZWIgbGVnYWN5LXRydW5rCisyNzM2NCA0MTQ2OGY5MzUzY2U5YTg5MzMzM2MxNzIwMzI4NjE1NWYwNDY0YjRiIGxlZ2FjeS10cnVuaworMjczNjUgNzAzZTYzYWUwZjAxZmM0ZGYwMGNlYmMyNDhkODI2NDJiYjQzOTMwMSBsZWdhY3ktdHJ1bmsKKzI3MzY2IDFmNjUxMDA1MWM4YWU4NjJkOTJhNGU0YTI3ZmUyODIzZDdiZDUzMzEgbGVnYWN5LXRydW5rCisyNzM2NyBkYWI4NzAxYmQzZmEyNGI0MTVlOGMzY2ZjZjFhNTAzYThlY2VjYWY3IGxlZ2FjeS10cnVuaworMjczNjggNGU2M2U5NzcxZjMwYzUwOTg0OTYxNmQ4ZWU3OWRmYjJmN2E1MTY1NiBsZWdhY3ktdHJ1bmsKKzI3MzY5IGI4ODc1ZjE2YTRiZTU0NWYyYjc5MDQ0ZmY0ODE3MjA3YjUwZWUxMjkgcmVsZWFzZTIyLW1haW50CisyNzM3MCA0NWI5ZTEyMmMzM2E3YTFlZGYxODIyYTM3ZGIzZWQ2ZWRmZTI4ZjQ3IGxlZ2FjeS10cnVuaworMjczNzEgYjcxZTBmOTZkZTIzMzU3YWYzMjA4MzNmMmFiYWUwN2ExMGZiODBlMCBsZWdhY3ktdHJ1bmsKKzI3MzcyIGVhMTg3NzhkZjZjMzcwMDhjMjE5YWQ2OTJiYjNlNTJjODZhN2NhY2MgbGVnYWN5LXRydW5rCisyNzM3MyAxNGUyZWI5ZTVlZjJiZWE2MGFiZDhiMTQ5YTVmYzMxYzk0ZDRjNDZmIGxlZ2FjeS10cnVuaworMjczNzQgMTlhNjA5NTE3YWI4YTZiZjUyYjNjOWU0M2Y5MzU4YzgwNzRiMmZhYSBsZWdhY3ktdHJ1bmsKKzI3Mzc1IDE0ZDhlZTFlOGRlNWNjZDE0YzUxMDgwMjQ3NGYwZmE2NGJiNmMxOGEgbGVnYWN5LXRydW5rCisyNzM3NiAwMGU1NzhmNzhjYWFhMmE4NzYzZWQwYzUyN2U1ODNmMzJkZjQ4MDg1IGxlZ2FjeS10cnVuaworMjczNzcgNDRmN2ZjMzA3NjczNjgzODQwNDhlMjA3NTU5ZDk4ZTRlYzUzZTdkMCBsZWdhY3ktdHJ1bmsKKzI3Mzc4IGM4ODI5MDQ2MDc5MTljYTMxZGE3NGRhYjFjNzM5NTkwOWRlNzNhNzQgbGVnYWN5LXRydW5rCisyNzM3OSBkYzg3MmEyZjUxM2I0NDIxYWMwZTk0Y2YxMzlkZTQ5MzE4Y2Y5MTAzIGxlZ2FjeS10cnVuaworMjczODAgOWQ4OWE5YTA1NGUwNDA5ZWYxMzdlNWVmMjU4NmE1NmI0N2U2OTViYiBsZWdhY3ktdHJ1bmsKKzI3MzgxIGU4YTI2M2RiMWJlMDMzYWI1OWNiZjRmZjMzODk5MWMxNjk4ZDNiNzYgbGVnYWN5LXRydW5rCisyNzM4MiA3MWYxM2NmNGY5ZTJkOTMyYjVkOTg5MDRmNDY3YjZiODE0MDY1M2Y0IGxlZ2FjeS10cnVuaworMjczODMgMmU1YTFlOGMwYjQ4MWQ2NGEzOGZmZGU1ZGVmNWI3YzA1OTBlYzRhOSBsZWdhY3ktdHJ1bmsKKzI3Mzg0IGVkZjk1MGJmNDIzMjU4YzZmYTYyNjQzOWNlNGY0ODcxMzRmNGRiM2MgbGVnYWN5LXRydW5rCisyNzM4NSA1ODQzM2I2NmY1ODM4OTgwNmQ3MTc3ODU5ZjkwYjVlYTk4M2RiNTQ2IGxlZ2FjeS10cnVuaworMjczODYgN2Y4M2IyMTI0YjRlZDM5MzZlY2U5OTViM2I4NmY3Zjc2ZWRlYTUxZSBsZWdhY3ktdHJ1bmsKKzI3Mzg3IGQ4ZGU5YjVmNTYxZWVlOGVmMjQ0NjU2MTQ2NWE0YTQ3MjNkYTRhMmUgcmVsZWFzZTIyLW1haW50CisyNzM4OCAzODQ4YWEzZWRhZmM2Yzc3MzQ3OTliNzcwODY4YjViYzJjNzBjMjAyIGxlZ2FjeS10cnVuaworMjczODggNzRkNWNkNjk4YmJmNzFjZDliNGI5NjQxOWQ5MGMwOTA4ODM1YzRhZCByZWxlYXNlMjItbWFpbnQKKzI3Mzg5IGZjZjJlMDFjNjE2YTYwNGVhZjBmNTM1YTVlODhmZTI3NDMwYjhjZmQgbGVnYWN5LXRydW5rCisyNzM5MCA5MTM1NzBhYjA3Mzc0MzM3NzkzNjJlODE2MjM4ZDNhNzRiYTc0ZTUzIGxlZ2FjeS10cnVuaworMjczOTEgOWE5ZDZjZTVlZDRlMjI1ZmM1Y2YzZjc2ZmEwZjM5NzFkM2I1ZWE2YyBsZWdhY3ktdHJ1bmsKKzI3MzkyIGJiZmVmOTQ4YzQzZTgwMDQxYzUxZmZmODhjM2FiNzJkZGMxOGUyYjUgcmVsZWFzZTIyLW1haW50CisyNzM5MyA3NDM2ODk4N2Y3ZjBhMDNkZTE5NDVlOGY3Y2RiZmIxYjA1YmM3ZTQ2IGxlZ2FjeS10cnVuaworMjczOTQgYmJjZWU3NDc4ZmNiODQwNDg5NzVkZDQ0YTFhNzk4ZjFhNzQ0ZTNiMiBsZWdhY3ktdHJ1bmsKKzI3Mzk1IDM0YjhjZGJiZDhmZTMzOTRlNTRlYjU4N2M4ZmFhZWJjYjhlZTY0YzAgbGVnYWN5LXRydW5rCisyNzM5NiA5YjZkMjU5YzI1ZWI3ZWE2MDFlZTRmY2I5MWE2ZGQ1Y2NiMWQwYjUyIGxlZ2FjeS10cnVuaworMjczOTcgNWI1MDhjZTA0OWY1ZDA4NWIzNjE5ZGU2NWNiYTc4M2ExYmQwMTVlMiBsZWdhY3ktdHJ1bmsKKzI3Mzk4IGM0ZDY4ZjgyYTZkZGI4MTY4Yjg5MGUzM2M3MzBiODA1ZDUwN2M2ZWIgbGVnYWN5LXRydW5rCisyNzM5OSBkMTBmMWM2ZDllZTk0MzA2ODI5NWUwMWE1ZjUwMGEyMDU5MWExODY1IGxlZ2FjeS10cnVuaworMjc0MDAgYzEwYzA5MTkyYzEyYmNhMWUxYzkwODUzMWViZjY0ODk0NDRhNjk0ZSBsZWdhY3ktdHJ1bmsKKzI3NDAxIDA3ZTc0OTkzNTczYzViNWVkNWNhNjVjYWUyYWRjZDE2ZTkzZWRmZjYgbGVnYWN5LXRydW5rCisyNzQwMiAyNzVkMDRhMzU1NDIyNjRiZDIyYjNjZDg1YWNkNjhkMjBjZmIwMDg4IGxlZ2FjeS10cnVuaworMjc0MDMgNzdhOTZhYzRkZGU0YzA4MDVhYTYxNmZhOWJkNzEzMzEwMjc2ODcwZSBsZWdhY3ktdHJ1bmsKKzI3NDA0IGVhZTQ5NmVmYTQ2MDEzMjc0NmM1MTNlMWQ4YWMyNjUxOTZmMWJkYmIgbGVnYWN5LXRydW5rCisyNzQwNSAyYzIyNDVhYWNlZjg4ZmM4NWU5NWQwYTQ5OGUxOTE4MjZmNjQxMDZjIGxlZ2FjeS10cnVuaworMjc0MDYgOTM3NzE1ODY1MmRkMGQ0Yjg2YTFlYzJiMmZjMGI1MWFkNTBmOGY0ZiBsZWdhY3ktdHJ1bmsKKzI3NDA3IGEzZDYxMjhhZmIyZTU1MzFjOTJkMDE1MDc2M2Y2ZGQ3YzMyOTg3NTkgbGVnYWN5LXRydW5rCisyNzQwOCBhNzhkNDFlZTk0NzRmNzYxNzRhMWNjMmMxNDVlMjUwMjk2ZGIzMzJlIGxlZ2FjeS10cnVuaworMjc0MDkgYWYwNTMyZjIzYWIzZmZmZjllNzAwNDE3NmFkNTM5ZWIwYjdhZTQ1YyBsZWdhY3ktdHJ1bmsKKzI3NDEwIDYzZmJiZWQxMDcxNGFhNTQ2ODBkYjhmNjU2NWJmMDVkNDM0ZjdlMzYgbGVnYWN5LXRydW5rCisyNzQxMSBmZWYzOTdiMWI4NWMzZDg5ZjdhZDRjY2UyZDYxNjBiNWFjZTlhZTliIGxlZ2FjeS10cnVuaworMjc0MTIgOTBjY2E4NTdkMjAzMjJhMWIyN2U3ZmE5ZTY4YTJiNGQ2MTJiOTE2NyBsZWdhY3ktdHJ1bmsKKzI3NDEzIDQwNDYyODJjYjMzOGNmN2U1MzZhYTEyNDZiZmNmMjUzNjhmMGQ5MzkgbGVnYWN5LXRydW5rCisyNzQxNCA4ZWE4NjU2NGZiMzI2NDM5ZmVlZjZjMGE3OWJhOTNlZjZkNDQ1NzQ3IGxlZ2FjeS10cnVuaworMjc0MTUgYmM2YWFlNzRkZGZlNWM0MGIzZTc1MzY2MWU5MzRmMTRlNjdlYmRhOCBsZWdhY3ktdHJ1bmsKKzI3NDE2IDJjNzliMWE4ZDYxNjUzOTE1MWY2ZmY5ZWE4MjMyZjk1YmJjOTcwMGMgbGVnYWN5LXRydW5rCisyNzQxNyBkOTNmMzQyMDE1MDM4YTc5OGY2Nzk1OGQzZGFiMDc3NWUyZWE4YzkyIGxlZ2FjeS10cnVuaworMjc0MTggNzE4NDBhMWJkODJmYzdjNDY0N2I0M2IxMWI0MjY4MTlhM2UyZGMzZSBsZWdhY3ktdHJ1bmsKKzI3NDE5IGE5MjIxMTJkNzgwYzU4OTdmZjQ0NTcwYzgzNGEwNGY5OGM4NzYyYTcgbGVnYWN5LXRydW5rCisyNzQyMCBjYjE2OTk1YWE3ZTgwOWVlMjRlNzNmYWRmNmRkZTQ0NzMzY2JkMjYxIGxlZ2FjeS10cnVuaworMjc0MjEgOTkxM2NmN2M0MDg2MWZmNDk0NGM5OGNmZWZjYTJjMjQ4YzhkOGY4ZiBsZWdhY3ktdHJ1bmsKKzI3NDIyIDY3ZjJiNDBiYWI3MDcwYTJkYTA1NWMwMWViM2NmZTVlNmViYWNlY2MgbGVnYWN5LXRydW5rCisyNzQyMyBlOWE2YTBjNGIzM2YzYzhkZmRkZTE3ZmYxNGU5YTJhMGRmMDgwYTZmIGxlZ2FjeS10cnVuaworMjc0MjQgZGNjMmI3NWQ3YTc4YzBmNGQwNDFiOWQzMjM2ZDYwYmNlYWE2ODM1MSBsZWdhY3ktdHJ1bmsKKzI3NDI1IDE4NzE3MzM1MjQzNTQ5NjVjZmU5YjJkZTdjZDY5ZjM2MWQ1MDU4YjYgcmVsZWFzZTIyLW1haW50CisyNzQyNiAzN2ZmY2UyZDljM2NlMDUzNmYwZjU5Yjk0YmE2OTEyYmZhNmYzYWZiIGxlZ2FjeS10cnVuaworMjc0MjcgZDI0YzhjOTQ2NzQxYmZiNzk3MzMxYzkxNjc3YWEwZmUxMjFhMzkzNyBsZWdhY3ktdHJ1bmsKKzI3NDI4IGRkOWQyZWM5NmVhZDBjZTcyNGEzNThmZjY2NmJlODg2MWZlMDc1MTMgcmVsZWFzZTIyLW1haW50CisyNzQyOSBiOWUwYzU3NTMyMzgwODRiNjVjYjgxZWVjMjYxMzVjZWZhZDhlZTAwIGxlZ2FjeS10cnVuaworMjc0MzAgM2U4NjNhNjViMWE0NDJjZGM0NmIzNjE0NmIwMTRlOTliMzNiODZlNCByZWxlYXNlMjItbWFpbnQKKzI3NDMxIGU4Nzg5NzUxYTVjY2MzNjY1MTQ4YmYxYjk5M2UwNzI5MTE3MTMzZmMgbGVnYWN5LXRydW5rCisyNzQzMiA5MjgzNGEyNDhjMTVjYmY3ZWYzZmMxNGQ4NDE4YjhhODAzMmFlNDhlIGxlZ2FjeS10cnVuaworMjc0MzMgNjBlNDFhNTRlN2IxMDliMjBiZjAxMzAzOTVlMDlhYTkzMTMyNzI3YyBsZWdhY3ktdHJ1bmsKKzI3NDM0IDJjNmY5MzFkOGRkMjUxNDFiYmE2MGU3YjQzNjc5ZmNjMzhiN2M5ZmEgbGVnYWN5LXRydW5rCisyNzQzNSBjNzk0MzJmZWI4NjIxNTRhYTg2ZmY3ODI4MGY0NzRiZWQ2MWYxOWNjIGxlZ2FjeS10cnVuaworMjc0MzYgNWFmOTA4MWE2Y2Q0MDllNGFlYjEwOGEzMTFmMmJhYmM2ZDMwMDM4NSBsZWdhY3ktdHJ1bmsKKzI3NDM3IDBkOTcxNmMzYjhlY2YzNWM5OTI0ZmZlMzA0ODRhMzY2ZjJjNmUwYWYgbGVnYWN5LXRydW5rCisyNzQzOCBiMTI4MjU1YzJiZWE3MDc3ZGIzMjg5ZWRhMjhlNDQ0OTNhODQ1MDY4IGxlZ2FjeS10cnVuaworMjc0MzkgODE0MmY4ZDY2OGEwZjRhYjdhYWZlZTkwYmVjOWJiYjMxNzI3Y2UwNyBsZWdhY3ktdHJ1bmsKKzI3NDQwIDg2YjM3NjBkMjg1ZDYwZjZkYzkyMjZkYTdjOGRiZTI3ZjVlZjAzYzYgbGVnYWN5LXRydW5rCisyNzQ0MSAxMzE0NjQyY2EwOTc2YmJmMGViYzU2M2JiY2E4NDZjZjUyYTg5YTg1IHJlbGVhc2UyMi1tYWludAorMjc0NDIgYTE4MDVhNTQ2NjZmYmJmZDkxYTBjNmYzMjhiNThlMjEzMmRmMDc3MiBsZWdhY3ktdHJ1bmsKKzI3NDQzIDMyZGIwNzVkZWYzZjU2NGI1YjZiMWQwMTI3YWQ0YzVkNTAyMWY4M2EgbGVnYWN5LXRydW5rCisyNzQ0NCA5NWNjZDViYmRjODZkNGYyNWNkOGY5ZTlkNDk2YjM4NzRmMDU0OTY3IGxlZ2FjeS10cnVuaworMjc0NDUgYTUxNjJmZDY1YzNkNWJiMGQ5ODYyYjgzMzk1OWY0YWE5YjY2MjQxMyBsZWdhY3ktdHJ1bmsKKzI3NDQ2IDcwMmE1OTAwZGY3ZDY1ZjlkNDA2OGIyNTEwMDg5ODc1YzY4YzY5NjMgbGVnYWN5LXRydW5rCisyNzQ0NyAxODNlYmEyZDIyMTQwYzFlMWViYTVjNjNjMWUyZGZkYjZlNTk3YTQ0IGxlZ2FjeS10cnVuaworMjc0NDggMTU0NDdhNTU3M2JkMTE0ODkyNzNlNTE0MWUzMDBkZTIzMDAyMTQxYyBsZWdhY3ktdHJ1bmsKKzI3NDQ5IDgwMDkxMmY3ZGYyZTM5MmEwNDhkMTZmYmJkOWRjYTMyMjU0Yzg3YmYgbGVnYWN5LXRydW5rCisyNzQ1MCBlNjZjZWQ0ODFjNzdhNGJjYjI1NTQ5ZDllMzA5YWFlODVlYzJiMDBiIGxlZ2FjeS10cnVuaworMjc0NTEgZDcxMjZjMzQxMjhhOWQ5YmQxMzM2NmYwOTE2MGZiODRmMTllZjU3ZSByZWxlYXNlMjItbWFpbnQKKzI3NDUyIDZmZWQxMzQyMmJiMWFhZmQxMjM5NjE5Y2ZjMzVlMWY3M2IxZWYxYjUgbGVnYWN5LXRydW5rCisyNzQ1MyAyMmQyZjAzN2FmOWQzYzRjZWI0M2M2ZWM1MzRmZDUwYmIyZmM1MmZkIGxlZ2FjeS10cnVuaworMjc0NTQgODZkZmI5NmExODMxZmQyN2VhYTNhMGMzMzQ1ZDJmMGNmMTUyOWNjMCBsZWdhY3ktdHJ1bmsKKzI3NDU1IDM1NWU0NmNjMTI0ZmYxMTE2ZTQ1Y2YwMzNlMmYxNGJjZWE4MDk0OTMgcmVsZWFzZTIxLW1haW50CisyNzQ1NiBiNzRkNGE1OTc5M2FhZDQ0N2I1MTVjMjFjOWQ3MDk2ZWI3MGRiMjUzIGxlZ2FjeS10cnVuaworMjc0NTcgYjE4NWM4NTk1MmZlODM4ZDcwOWEzNjA1Y2I3ZDZiZjJhZjNiOGMwYiBsZWdhY3ktdHJ1bmsKKzI3NDU4IGJjMDBlZWVmMGFjN2JhY2MwNDMwMTUzNmEwMmVjYmM3NjcxODYwZWUgbGVnYWN5LXRydW5rCisyNzQ1OSA0Mjk4ZTI2OWJkNjcyMDEwNDM4Y2EzY2Y4OTU1YzIyN2E5ZDY4MWJhIGxlZ2FjeS10cnVuaworMjc0NjAgNDAyNjU2NWZhN2ViZGZmMTkwYjJjNTI5MTgxZTU1ZTg4OTgwM2YwNCByZWxlYXNlMjItbWFpbnQKKzI3NDYxIGEyYjY3N2FmN2IyODlkNjVhMGMxMTUwOTEyODg0Yjc2NDczNmRjZWYgcmVsZWFzZTIxLW1haW50CisyNzQ2MiA2ODk5NWU4NTRhODhlM2Q1ZDdmN2JkYTc3NzY0M2UxNzA2MGRmOGIzIGxlZ2FjeS10cnVuaworMjc0NjMgZGJiMTRmODVhZTdiNjBkZDMyOGZmMWE2ZTNhNGRhODliMzc3N2M5MiBsZWdhY3ktdHJ1bmsKKzI3NDY0IDJhMjA1NzQ0MDBhZmI2MDg4MGE0NWE5OGM4NjJhOGM0NmEzZjUwN2MgbGVnYWN5LXRydW5rCisyNzQ2NSBmN2FiYmQxNWI0ZjQ4MTliMTdkMGM4NGIyMjAwNzc5YWM5MDU3YjAwIGxlZ2FjeS10cnVuaworMjc0NjYgY2ZjZmI1ZGY2ZTYxY2M0YjUwZmUzYzUyYjA3NTg0OWQ4NjY0YmI4ZSBsZWdhY3ktdHJ1bmsKKzI3NDY3IDUxNDgxYjM5Y2Q4NjVjMWU3ZWU0YjMyMWVhODAyOGZiNjk1NDNhZWEgbGVnYWN5LXRydW5rCisyNzQ2OCAwYTE4ZWY1Y2IzZTdlZDc3MTk4YzczMGYyZTlmNDBjMjYzNjJjZjA4IHJlbGVhc2UyMi1tYWludAorMjc0NjkgZjhkNDFlMjY0OWI3ZTVkZTc3YjY2OTEyNzE3ZWI2ODg4MmRlZGQ3NSBsZWdhY3ktdHJ1bmsKKzI3NDcwIDI4ZjJiYWUxMDMxYmYzZjA4NTU2YTM5ZTI4ZjcxMDkyMWU5ZjhmYmMgcmVsZWFzZTIyLW1haW50CisyNzQ3MSA0NmE4NGQyZmY0ZTJhYzdhMDI4ZGM0YzMxZGYxYTQzODIyYWZmYzEwIGxlZ2FjeS10cnVuaworMjc0NzIgNjY3NjYyM2IzYjc0MjE5MTZlNzk1NDlmZTc0YmQ0MzNhMGE4NzBjMSBsZWdhY3ktdHJ1bmsKKzI3NDczIDhjZWVlNjYzMDMyMmM1NzU0NTQzNmMzNzZiMDYxMGY0YTg1ZmMzNmUgbGVnYWN5LXRydW5rCisyNzQ3NCBmN2MwZDY4NzFiMDdmMDMxMWZkNjk2OTY0MGE5MzIwMGE4MTVkZTE3IGxlZ2FjeS10cnVuaworMjc0NzUgNzMzNmY1MWZhYTQ2Y2I3ZTFiNTIyMDM0M2E5NTVlNDI4MDk3ZGY1MiBsZWdhY3ktdHJ1bmsKKzI3NDc2IDZjZDkzMmZmMGYwOWQ4Y2ZlNzNkNmRkMGYxNWI3MzhmOTk4MTI4ODQgbGVnYWN5LXRydW5rCisyNzQ3NyA4MDE2MmRiZDQ3ZjAxMzJmYTU5YzhmZGYyMGM2Y2FiM2RlYjZlODQ5IGxlZ2FjeS10cnVuaworMjc0NzggODA1YzIyOGNmNzdiNmZmZjkyMGI5ODdhNGU2NDUzMjI4NzZiNDdjNCBsZWdhY3ktdHJ1bmsKKzI3NDc5IDM0ZDcxMzcwOThhNzUxOTQ3ODU4MWU0YzFiMDU4ZDJjZTEyOTYxZjMgbGVnYWN5LXRydW5rCisyNzQ4MCBjYmRiYjkyZWZkMzY5Zjg0OTdlYThhODIzNDEyZmQ5YjYxNWU4N2IwIGxlZ2FjeS10cnVuaworMjc0ODEgZjM1ZTI5YWEwZDkyNGM0MjQ1YmU0MWIxNWNhZDIyMzlkMzI4NzY3ZiBsZWdhY3ktdHJ1bmsKKzI3NDgyIGZmNjg3M2QyOGExNDY4M2U1YzBmYjg0NjdjOTY2OTBjZjg3YjE4MWUgbGVnYWN5LXRydW5rCisyNzQ4MyBmYTZiZTllZTZjOWM0ZWI3ZmRiMzk1ZWM0MjIxYzIyZDY4ZDZmZmExIGxlZ2FjeS10cnVuaworMjc0ODQgMTMyNDBiOGY4Y2EwMTQxYTJlYWZkODkwMjYyZjc3NTc3YjhlYmY5NyBsZWdhY3ktdHJ1bmsKKzI3NDg1IDFlMGFjYjQ1Y2E4ZjBmY2UxYzVmNjVhZDIxZWE1YmQyMGZkMGMzZWYgbGVnYWN5LXRydW5rCisyNzQ4NiBmMzZmYTEwZWJmYTBjMjYwNTdlY2UzZjdlNzEyOThhY2UwMmZiNTM2IGxlZ2FjeS10cnVuaworMjc0ODcgZjMzYmI5YzEzMWY4Y2NlNTY0NDg0OWRlMTVkMGQwMTZiYjdhY2UwZiBsZWdhY3ktdHJ1bmsKKzI3NDg4IGI1MWE1NzhmNTc2OWI1ZjE5OTk5OThhY2Y1MDFiNjFkMmM5NzVmMjEgbGVnYWN5LXRydW5rCisyNzQ4OSBiZjM0MjFhMjg3NDQ2Y2QyMTY4Mjk4MmYzYmYyN2IwYzYwNjVlZTY1IGxlZ2FjeS10cnVuaworMjc0OTAgZDMzMjQ4NGUzOTRhODBiNDZmMGZmMGY2NGI1MGI3YzY0YTA2MTE1MSBsZWdhY3ktdHJ1bmsKKzI3NDkxIGFhNjIxN2JmOTc3NjQzYWM0NzhkZDEwOGNlMWE4MzBlNDQzMTUyZjYgbGVnYWN5LXRydW5rCisyNzQ5MiA1ZGE2MDVkMmI1NDc3YTQxMTk3NGZlZTI2ZDg0MGRkYmRhYWFiZmFjIGxlZ2FjeS10cnVuaworMjc0OTMgZjM4MTEyYjg4Mzg4ZTc4ZmIzOGI2OGQ5NGRiZDk0ZWQ5ZDhmM2FiZiBsZWdhY3ktdHJ1bmsKKzI3NDk0IDdkY2VmMmY4NzA2ODIyNmRjN2RiYTliMmNiZGFhMGMyODk0MTkxYTYgYXN0LWJyYW5jaAorMjc0OTUgZTMzMzkzY2U0YzUxM2FkN2MyZWMwNzQ1YWZiYTE0MjhmYWU0YzE5MSBhc3QtYnJhbmNoCisyNzQ5NiAzMGM3Y2M1ZjI1ODczZWY4NzNiYWZmMGEwOWM1NjI3OTRhYTUxMWEyIGFzdC1icmFuY2gKKzI3NDk3IDMzZjIxZWFiYzE1NTA2ZGQ1YmQ5MWI2MDE1N2FiNzY1MDVmNDY3MDcgYXN0LWJyYW5jaAorMjc0OTggYzk2ZTU4NDM4YTlmMTY1MzM4ZjcyZDRmMmRkNmRlYjY2MDBhZjBkNyBhc3QtYnJhbmNoCisyNzQ5OSBmNzRmM2MzMTkwOTkzZGEyNDk2ZjY0Y2EyMTRjZDg5YTNjMGVjNGIwIGFzdC1icmFuY2gKKzI3NTAwIGM0MjYzNjMwNmU5NmI2ZDA4N2QwNjk4Y2Y1ZTkyMzliOTJkOTNkN2MgYXN0LWJyYW5jaAorMjc1MDEgMmE2ZWM5OTIyMjhiYTdhMzVmMDRmMjE0ZmRmMjVmZTBlZmQzNjI4ZSBhc3QtYnJhbmNoCisyNzUwMiA4NDRmMTI5ZmExMjg1Mjg1NTc3Y2U0NTU5MDM5MTFkOGQwNDZiNWMwIGFzdC1icmFuY2gKKzI3NTAzIGZkZjgwZTA0ZTRiYmQxMmExYzE2YjMzZGIwNzczOTMyNTFhZjk4OWUgbGVnYWN5LXRydW5rCisyNzUwNCAzMTEzNzU0NjRmYWMzMzJhY2MzMjI0N2M4ZjAxODQ3NDQ2ODZiMDIxIGFzdC1icmFuY2gKKzI3NTA1IDllNjNiMGY0MDlkNGIzNjA2N2I3YzM2MTc1NmUzMWZkNmZhNDEyZWYgbGVnYWN5LXRydW5rCisyNzUwNiA3NmU5YTE0ZmI3YzVhMGFmM2I5Njc5ZmU4OGY0ZWIyMzc3MGRkY2Q1IGxlZ2FjeS10cnVuaworMjc1MDcgMzk5YjA5YTI3YWYzMTRiNDcwYjMxNjM3OTVmMjliYjNlOWZlNjczYiBsZWdhY3ktdHJ1bmsKKzI3NTA4IDcwN2M2ZjAyNjE0MmE0MGQ2YjVkODZkMTZkMmZkOTRhMDk5ZTlhYzcgbGVnYWN5LXRydW5rCisyNzUwOSBlNWVjZWY1YTEyM2FkODkwZjM1MTIxNmFjNzJmYWM3ZjU0MjgxMWEzIGxlZ2FjeS10cnVuaworMjc1MTAgMTJmMmJlODVkYTI1OWE1MjYzMDE5Yjk0ZjNlYTRmMTdmNWNjNDJlZCBsZWdhY3ktdHJ1bmsKKzI3NTExIDhkZmFjYjA2YzNkMWE0ZjEwMmFiMWM2ODIyMGJmNWYxMDY5ZTk5ZmIgbGVnYWN5LXRydW5rCisyNzUxMiA4NjVhNzdjZTQwYTlmODYzZDc0NDMyYjZhMDE5OTEzZDNlYzVmMTNlIGxlZ2FjeS10cnVuaworMjc1MTMgN2MxYTc2Yjc4NzEyMjJjMmExOWJkMmFlODg0MWIwOGZmNDJlZWQ3YSBsZWdhY3ktdHJ1bmsKKzI3NTE0IGE0ODNjNWRkYjdmMWI1ZTcxMTBmYmQ5YjBlZjE5NDc2MjQxZTNmNWMgcmVsZWFzZTIyLW1haW50CisyNzUxNSAxNzZhZDcwNmFmYmM1NmJiNzM3ZDM3MzJlMWVmMjRhYWFhNDI2NmQ1IGxlZ2FjeS10cnVuaworMjc1MTYgYzM2YmU3OWZkYmVhMTcxNjAzYzQ1MTlhNzkxZjk2YTYwY2RlZTBmMyByZWxlYXNlMjItbWFpbnQKKzI3NTE3IGFiZWRjNWNlY2M2NDlkNzNjOTRmZDEwMThiMDkwMzQ2ODZjMGVjNDUgcmVsZWFzZTIyLW1haW50CisyNzUxOCAzOWMwYmYyMDFkYjljNDMxZWE5ZDg0MjNiYTc3NjY4MDllYTE4YjI0IGxlZ2FjeS10cnVuaworMjc1MTkgNDBiZGEzZTA5MGY2N2JhNjg0YjNmNmY3NmQ0MzY1MGEyMzJjMTA3NyBsZWdhY3ktdHJ1bmsKKzI3NTIwIDIxYmQ4NmUwMGJjZWMxYjMzNDYzNTgwNTNiMTQ5MmFiMWI5MGRlNTAgcmVsZWFzZTIyLW1haW50CisyNzUyMSBlOWU2MTExYmVlYzE3MTllOGZkZDU5NGQ0ZTEyMzEzMTg0OTliNGFjIGxlZ2FjeS10cnVuaworMjc1MjIgZDdkODE2ZTFmNTIyNjRhYTg0OTgyYjExZjNhMTgzMDQwZTUwOTE5YSBsZWdhY3ktdHJ1bmsKKzI3NTIzIDcxODkwOTEyMTczNzFiZjRiZDc4ODIyMmM5ZWRiYTM0NTZlNzg2YjMgcmVsZWFzZTIyLW1haW50CisyNzUyNCA2OWZkODI2NThiZmIzMjc0ODE5NTY3MzY0YWU2YzAxZWZjMTE0OGJmIGxlZ2FjeS10cnVuaworMjc1MjUgYmUwMmQ1MTRiOWE2Njk2YzIwYzdiZmIzZTE3YzllMTVhODY0OTFkMiBsZWdhY3ktdHJ1bmsKKzI3NTI2IDQ4MTA4MGY3MTQzOWFiMzJiZWNiOTA2YmEwYjhjZjBkMGU5ZWZkMTIgbGVnYWN5LXRydW5rCisyNzUyNyA3YmNkODE3NzYyOGYzNWFhNmEzOTY4YTgzZDAxODZjNjk5MjMxOTFiIGxlZ2FjeS10cnVuaworMjc1MjggZWEwMzg0Mzc1NGMwMDI0ZTc0M2VkOTI1Mjg0MDY2NzdlMjczYmY4NyBsZWdhY3ktdHJ1bmsKKzI3NTI5IDU2MmQ3ZjhhODJhMTliYjMyZTFkYTgzZjE0NDMyNTUwYzRjYmEyZDAgbGVnYWN5LXRydW5rCisyNzUzMCBiYjdjMzk2ZGUzYWJhNzgwYTEwYTIzOTY4ZGI1NzYzNmQzNGFiMDg1IGxlZ2FjeS10cnVuaworMjc1MzEgYTU5ZGYyZmE0ZWM4YWZmNDY2ODM5MDM4YTY1NzI5OGU3ZDMyMGM1YyBsZWdhY3ktdHJ1bmsKKzI3NTMyIDIwOGZiMWQ2MTE0ODRlNzExYzA0ZmYyNWM3ZGZhMDAwYWY0MTA5ODcgbGVnYWN5LXRydW5rCisyNzUzMyA5NDU2YTJjY2RhNjEwYTFkYTRkY2VmZGE0NzI5NzYyZjdhZjVmZGFkIGxlZ2FjeS10cnVuaworMjc1MzQgNDRjMTk2OTlmYTdlZjlkZDNmMzI5MmM5ZDY4ZDA5MjQwNzI0NTk5MiBsZWdhY3ktdHJ1bmsKKzI3NTM1IDlkZGVkNmYxODgxOTFkMDg3NDQ0MzJkNGQ4NDM0OGIyYzdiNGNmZGIgbGVnYWN5LXRydW5rCisyNzUzNiAyMzNhNTBlMTBlNjZiYTRjZjAzNWRmZGY3OTYyZTgzMjBiYTFjYjQ1IHJlbGVhc2UyMi1tYWludAorMjc1MzcgY2I3MjgxNDFhZTEyYTI1M2NkNmU1YjQxM2M1MTBmMWRjNTBjNGRhYiBsZWdhY3ktdHJ1bmsKKzI3NTM4IDYzN2RmY2Q5NjNiOTgzMmE0Yjg1MWRkNzgwNTBkNjYyMzU0NzdhMTEgYXN0LWJyYW5jaAorMjc1MzkgZDRkNWMzNDBlMDU0MzgyYjA3OGVkMjhiZTcwMDNmMzcyYmI4NDM3MiBhc3QtYnJhbmNoCisyNzU0MCAyMmIyMTJkZDg2YzFkYTNjNWRiZDY2OGZkYmFmMTU5MGFhMTE5MjVjIGFzdC1icmFuY2gKKzI3NTQxIGZkMTczOTRmNmRjZWUxYjhmMjc4MGUwNDQwYTU2NDVjNjBhMDY4ZjQgbGVnYWN5LXRydW5rCisyNzU0MiBlNjg1ZjMyZDgwNjg4ZDE4YTlhZDNjMzBlYTkzNjhiYTQwMjU4NTQzIGxlZ2FjeS10cnVuaworMjc1NDQgOGVlMmFiNGYyYTJkNDk4ZTJhMjA3YmU0ODYyMTkzNWRhZDQ1ZWVhMCBsZWdhY3ktdHJ1bmsKKzI3NTQ1IGEzODdkNGU1MzljMmQ4MmU3ZGJhZTNiYTc5NWJkNDAyZGRiOWZlNzQgbGVnYWN5LXRydW5rCisyNzU0NiA3OGFiMDg2YTM1NDg0NmZjYTg4NTQ3ZDg2YmU5ZDY1NzY2NGE3Mjg5IGxlZ2FjeS10cnVuaworMjc1NDcgMDk1NDI2YWY0YTQyNDA2NjQ2OTIyMzUyNzJmM2ZhMGQ4MGE5YTgyNiBsZWdhY3ktdHJ1bmsKKzI3NTQ4IDgwZGE5NTFjODlmYmUxNDFlMTc0MjAxOTM1MjEwMjc5Y2FkYTM2YjYgbGVnYWN5LXRydW5rCisyNzU0OSBkM2U0OTBhNTE0MDhiODhmYjg4OWE0NWYzZGEzY2E0MDg5N2ZiN2Q2IGxlZ2FjeS10cnVuaworMjc1NTAgZmRkODM2NTc1MjQ4Zjg2OWRmODNjMzhiY2RjYWIzNWMyMGQxZTNjZCBsZWdhY3ktdHJ1bmsKKzI3NTUxIGMzMWFmZWE4ODkzNGUwNjQ2ODIxMzkyYmQyNjdiMmQ1MTVjZGUyODMgbGVnYWN5LXRydW5rCisyNzU1MiAwY2FiNGU0ZmRjZjM4MGM2MWExZDk5MmQ0ZDA3YmE0ZjcwZTEyYjM1IGxlZ2FjeS10cnVuaworMjc1NTMgNWU0YjhkMWU5ZmQ2YjJiOTdkMGJlNDBmNTczNDMzYTNhZjZiNmYzNiBsZWdhY3ktdHJ1bmsKKzI3NTU0IDM3MTk1NDc4NTczOWY1NzQ2M2Q4NjNjN2Y5OThiODU0OWMwZmQwYjIgbGVnYWN5LXRydW5rCisyNzU1NSAyYWJmOWU5NDAyNzRmMDhmYzQ1ZWE4ZTExYWU2ZDFmMzI5YzJmZGRmIGxlZ2FjeS10cnVuaworMjc1NTYgNDNmYmM2NzM3NGE1N2I2ZWY2NjAzNzQ3ZTViYTdhNGRkZjJmMDNiMiByZWxlYXNlMjItbWFpbnQKKzI3NTU3IDI1ZmUzYTBhODBmYjg2MjM4Y2FkYWM3MDI5ODVlMjI3ZWNlOGE4MWYgbGVnYWN5LXRydW5rCisyNzU1OCA5OGFkNzcyZGVmYWFiYmMyMDZjMzhlYjlkNmI4YWZmMDZmM2I0YjRlIHJlbGVhc2UyMi1tYWludAorMjc1NTkgYTAzOGFiZDA4ZTRhYjUyYjBiYjRiMmFiMGM4NjRmNWE0OGI1YWI1NCBsZWdhY3ktdHJ1bmsKKzI3NTYwIGM4OWQzMzNmZTBmZTM0NjcxNjU3NWQ4MGE0NzIyOTJjM2I2NWRmNmEgbGVnYWN5LXRydW5rCisyNzU2MSBiOTkzZTY1MWViNzQ1Zjc4NDZhMDJiYzI3ODA1NGYwNzVlOWM1MmUwIGxlZ2FjeS10cnVuaworMjc1NjIgY2I3M2U4OTFkM2VlM2Y2MGIyOTU2YTkwYmI5ZTEwZDA4ZDNmMDA0NiBsZWdhY3ktdHJ1bmsKKzI3NTYzIDYzYTg4N2Q4YTFlM2E1MTkzYTI3Zjk3MzIxMDI3NjU4NGNlNGQ1YjkgbGVnYWN5LXRydW5rCisyNzU2NCA1YzE1MWQ5NThmYzE0NDIxMTNjNTIxZDIyNGQ2YTZkM2FiMzA2MGNhIGxlZ2FjeS10cnVuaworMjc1NjUgMTcyM2JjZGMxZTg1NGU4OTFiNzlkNTcxNTE1NzU3ZGQ1MTBhNGJmMCBsZWdhY3ktdHJ1bmsKKzI3NTY2IGM0ZGNiODBmNDhlYTE1OGVlMDU1NDRhNDkxNzQ1NzZmOWY2NzkxM2YgbGVnYWN5LXRydW5rCisyNzU2NyBhMzNmMmRkNDY0NDRiNjdkMDljYWQ1MjE2YTFiYjhhNDhiNmI3ZTY2IGxlZ2FjeS10cnVuaworMjc1NjggYmVjNWI2NjEwNjIyOWM3MGE4OTUwNjlmYTM0ZDgxNjY3MDIyNmNmNyByZWxlYXNlMjItbWFpbnQKKzI3NTY5IDk4MmE5MGE0ZDY3YjgzZTM4YmEyYmNlMzc3MzQ4Mjc1ZGNhZmY2YWIgbGVnYWN5LXRydW5rCisyNzU3MCBkYzIwYzdlYjQzNGY1MjFhZTY3YWM5ZmQ4YmJiOWY3NzI3NzI0YzVlIHJlbGVhc2UyMi1tYWludAorMjc1NzEgY2NlOTMxNmE2MmY4ODY3OGM1MDFlM2UwZjE1M2FlYmUxZjUwYTgyMyBsZWdhY3ktdHJ1bmsKKzI3NTcyIGEyYmNiMDBkY2JkNTk1YjExNDk1YzEzN2Y4NmY0M2E5MjUwN2ZiMzIgbGVnYWN5LXRydW5rCisyNzU3MyA3YjVlNjEzNzNmNmVkYzliZDUwMDU5OGIzNDU3NWM1MjAwYmJlNmRmIGxlZ2FjeS10cnVuaworMjc1NzQgYjlmMjNlMjI1M2Y4ODdjMjg4NTA0NjI5OGIxYjdkZWU1YzMzYWNiYiByZWxlYXNlMjItbWFpbnQKKzI3NTc1IDZlYjc0ZTgzYTZmMTFhNDgzOTUwOTgzNjA1NzQ2NDgxMDIyYzM5NjQgbGVnYWN5LXRydW5rCisyNzU3NiAwNzgwOWY2YTc5NjhiMjdkYWZmNTA2NzQ1ZmRiNmU2MTNmNmU0OGZmIGxlZ2FjeS10cnVuaworMjc1NzcgYmY2NDAxOGE2NGZmNGM3NTRjZTEwM2YwYWJiNTg0MjdhNDk4NzdhOCByZWxlYXNlMjItbWFpbnQKKzI3NTc4IDVjY2FhYWQ0ZjMzYjFiYWZjOGQ2MzFmZmI5NWVjYWJjM2ZkNzQ5ZTAgbGVnYWN5LXRydW5rCisyNzU3OSAzZDFmM2I3YWRlMDczNDMzOTYzNzVhZDZmNDFlZmIwNTc4NzEyNTg4IGxlZ2FjeS10cnVuaworMjc1ODAgZjAyNTk5ZWM1Y2I5MzEwNmYzYzMyMjdhMzBhMmE3ZDcwYjA0N2U5NiBsZWdhY3ktdHJ1bmsKKzI3NTgxIDk5MGZjMDRjZjBkNDAwMTQxNTUxNWU5YTU2NjRhMzY4YmRlZDZiNTcgbGVnYWN5LXRydW5rCisyNzU4MiAwYjZhMmFlNzA2ZTIxYTg3NjFhNjRkM2Y1NDc0OTI0ZjcyNDg5NGIxIGxlZ2FjeS10cnVuaworMjc1ODMgNzc0ZGMwN2YxYzE2ZTIzOTZlMDk0MzMxZGM2YzEwMWEzM2Q3OWEwMSBsZWdhY3ktdHJ1bmsKKzI3NTg0IDlkZWJhMzVlNjI0Y2JmOTUyMmI2NjdhZjNmNGExNDgzNzU3NTc2ZWMgbGVnYWN5LXRydW5rCisyNzU4NSAwODIwMjNjMjBjZWYyMjUwNThlMGE1YTdmZjgzMWZjYzA4ZDQzYzJiIGxlZ2FjeS10cnVuaworMjc1ODYgZTQ4YTRiMGJkYmI1NWRhNDk2ZGQ1ZjRhMDMyYjZlODVlNzI0Y2U3NSBsZWdhY3ktdHJ1bmsKKzI3NTg3IGYyMDEyZGIxNjE2YzNlNTY5MjQ3MjE1NGViOGFjOGUzODcwNTM1OGUgbGVnYWN5LXRydW5rCisyNzU4OCBmYTlhZjI0NWNlYjRlYWQyNTY1ZTNmZTlkNDFjZGEyYWJmN2MwNjZlIGxlZ2FjeS10cnVuaworMjc1ODkgNTYxZTMzYTZhMzEzODQxN2M2ZDk4MTdhOGEzNjBlZWVjMmMwOGI3NyBsZWdhY3ktdHJ1bmsKKzI3NTkwIGVmYWJjMTUxMWRjMjcxZWMwOTdiNDY5ZGNmZGNkNzEwNjgyOGI2YzQgbGVnYWN5LXRydW5rCisyNzU5MSBhNTQ2NTkzOTY4ZDY0ZGY0NjU5ZDc2Mjc1MzhjNDc5YmFmOGE2ZmRmIGxlZ2FjeS10cnVuaworMjc1OTIgMjUzNjdjN2M0MGE0YzZkZTU0MDgxOTA4OTJhZGMyMzQ0NWQyMTRkZCBsZWdhY3ktdHJ1bmsKKzI3NTkzIDA2ZWU4NjJkOTgxNTQzNDQ5NTI5NjM0ODY3MDg4N2M3OWZiMzVkYTIgbGVnYWN5LXRydW5rCisyNzU5NCAyOTZkZDMyNDI1ZDZhNzNmNDg5ZDQ5ZTQ3OTNlZDVlZDdmZTBjMDA4IGxlZ2FjeS10cnVuaworMjc1OTUgMDg2N2RhNWU4NTQ4OWFjODU1Zjk3MTdhZTFkOTI3NGY3MTJjMTEyNSBsZWdhY3ktdHJ1bmsKKzI3NTk2IGYwYTJlYzc4YmQwNWMzNzU3YWUwNDNjYWM1MTNhODI5ZWU0YzcwNjYgcmVsZWFzZTIyLW1haW50CisyNzU5NyAxNjMxNGZmNThlZjQ4MDUyYzVjMzJlNjkwYTFhNTRkYzU3ZTM5YjI0IGxlZ2FjeS10cnVuaworMjc1OTggYzhhMTlhNDI4MzU4NGJiOWJjZWFlYTBlMjcxODZiYjI2N2ZiMzU3YyBsZWdhY3ktdHJ1bmsKKzI3NTk5IDQ5NGE4YmViNDU4MjY1YTFkYmE1NTBhYWUyYWMyY2I4NGE5N2ZkMDIgcmVsZWFzZTIyLW1haW50CisyNzYwMCBkZmQ4NWU5MDIzZmNiYzQ5NmI5YmU0ZWU0ZDk1ZTBlNGIwZDNkZWMyIGxlZ2FjeS10cnVuaworMjc2MDEgZGFhNWIxNDQ5MmVlOTA5ZGEyZWQxYTI5MjI4N2VlNzU0NzZmZTg2MCBsZWdhY3ktdHJ1bmsKKzI3NjAyIDc2YWY4YjMwODk0YTdjZjlmMDUzNGU1MTE3NDk5MGRjNzgyMDkzZWQgcmVsZWFzZTIxLW1haW50CisyNzYwMyBhZDVmM2EwNTI2ZDFmNDNlNzgxNDBmYjBjMDhkZDBjM2Y0YzRkNmE3IGxlZ2FjeS10cnVuaworMjc2MDQgNTY1NzgxZWExMzdiZTJiZGM1MjhjMzZiNWI5NWJjYmJmNzViMzg1NSByZWxlYXNlMjItbWFpbnQKKzI3NjA1IDQyZWQwMmFmYTYzYmY3NmI2ZmI0ZGQ1NTZiNzhjMWEyZGI3OTM3NmMgbGVnYWN5LXRydW5rCisyNzYwNiBiMzQ3MjMzNzgzZWUzOTNiY2VjNWJiZTg3NjNmYWE2NDc2NTI2NzRiIHJlbGVhc2UyMi1tYWludAorMjc2MDcgOWJlYTJjMGM4MzhlNmM2Nzc4NDY0YzhhYTNjYjBmZWQyY2MwMGM1MyByZWxlYXNlMjEtbWFpbnQKKzI3NjA4IDYyZDhmOTc0ODExZjFhNDYyNmU5NzgxZTc5NGJlMWZiMjMzMjZkMDcgbGVnYWN5LXRydW5rCisyNzYwOSA4YTY3ZjI4YTQyYTVkYzE4Y2Y1MDE2YjlmMmUyZjc1MzZmM2NiZWMyIGxlZ2FjeS10cnVuaworMjc2MTAgNWI2NmU2M2Q3YWJiNzBkNDg0ZjM4Y2U5MDU0YjBiNTA2ODU0MjUwYSByZWxlYXNlMjItbWFpbnQKKzI3NjExIDQwZDk2NDkzYTQyOTUxYmY5YjI2NjVmMWE3NDJiZjJkMWMzN2FjNDQgbGVnYWN5LXRydW5rCisyNzYxMiAyODYwYmUyNDQyNjNlNDA0OTc0YzdkNzk0OTlkZjQzMDMzNWE5MDBiIGxlZ2FjeS10cnVuaworMjc2MTMgYjYyMTM4NDNkOGJlZDAwZWQwMjYzMWMyMTNhMWVkZmRiNWUyNWViNiBsZWdhY3ktdHJ1bmsKKzI3NjE0IGUwNmIxYWIwYmRiODBjMzQ4NGMxZjg0ODFmMGU0ZDAyNGI0ODJmYTIgbGVnYWN5LXRydW5rCisyNzYxNSAxMWM0MjUzNjk4ZGM3M2RjYTRmNTA4NmM4ZWYxMDVjYjdmNzZmZmQ0IGxlZ2FjeS10cnVuaworMjc2MTYgYzg5MTdiNTljMDY1OWFhMzhmNTNkODYyNzA3Nzc4MzA4MDAxZGU2MiBsZWdhY3ktdHJ1bmsKKzI3NjE3IDczYTg4NDQ4N2E3NjY4MGFiM2EyNmE4NmJkMDNiOWFhOTk0YzIwODkgbGVnYWN5LXRydW5rCisyNzYxOCAyYmU2M2UyMGE0OTgyZDVhYjc0OTFlOGYyY2VmYmU2ZmI1NDI1Y2NlIGxlZ2FjeS10cnVuaworMjc2MTkgMDU5NzdjNWY4ODBjZjhhMWNjYzkwZjQ2MDM3NGFjNDhhMzg1MTkyNyBsZWdhY3ktdHJ1bmsKKzI3NjIwIDM4OTViNzhkM2VlMGNlY2Y1ZDgyZTg2NGRjMjhhMzFjMjc1MTBjMjkgbGVnYWN5LXRydW5rCisyNzYyMSA1MWNkYTZlODc2NGE2ZTIyZDU3MzJjNmMwYjJkYWI0ODEzNjMxNTNkIGxlZ2FjeS10cnVuaworMjc2MjIgOWVhZmI0Y2VhNDdhNWM5MDAzZjZiYjA4ZGFiYzhhMTgxMTUzNzVmMiBsZWdhY3ktdHJ1bmsKKzI3NjIzIGZjMjdmZmUyMDM2YWExMGZlNzJlYmM2NmVlZDg1MmNjYzIyNWM2ZjUgbGVnYWN5LXRydW5rCisyNzYyNCBhM2ZjMWQ4ZTBhZTgxZTRhM2ZkMjBlZjhiZmRkMDFiMDM3MzcyNGI2IGxlZ2FjeS10cnVuaworMjc2MjUgYzQyM2E4OGIyMmNlZDM0NmE4YzRjMzc4ZmY3YTJkZGZlODI5ZTEyNCBsZWdhY3ktdHJ1bmsKKzI3NjI2IGRhNGM3MTIwMTQzZjA4ZDkzMzg1MTI0MzlmZWE4ZWZiMmQ0MzNlZGEgbGVnYWN5LXRydW5rCisyNzYyNyA1MDQ0MzEyN2IyMWRjNDk3MTgyMzRjMjRhZGI4NTU1MmViZmM4MWM5IGxlZ2FjeS10cnVuaworMjc2MjggOWE1OGQ2NGY4ZmMzZmQ1MjY0YzY4MGFhMDBjYjM3MWIxMjk1MWM0OSBsZWdhY3ktdHJ1bmsKKzI3NjI5IDVkM2VjMjhlOWE3YWQzZTgwY2EyNDI2ZmUwNjkyMWZlOGJjN2FmZDMgbGVnYWN5LXRydW5rCisyNzYzMCAzMDU0MjJkNjlkMzEzMzJkYTk5MzFkNTRhMmNlM2IyMTM1MjUxMWY1IGxlZ2FjeS10cnVuaworMjc2MzEgNGE3YjNiYWMzODEyODdiMjQxNmNmNjEzNzQ2NGU5YTIyNjYzMzY3MSBsZWdhY3ktdHJ1bmsKKzI3NjMyIDgwNGVhNTFjZmNlNmUyYzAzMjEyYjUzZjhlODQ3MjRhNDU2MzgzZDcgbGVnYWN5LXRydW5rCisyNzYzMyA3ZDA5ODIwNTZmNzJiNTdkODdhOTM1YWNiNTdjM2RmZjJjODM3YmU0IHJlbGVhc2UyMi1tYWludAorMjc2MzQgNTU0MmJmMGJiY2UyM2NiOGJhMmQyMzFkMzhlZTBmNGUzZGIxZjVmYyBsZWdhY3ktdHJ1bmsKKzI3NjM1IDYyZjRiNDViMDVmZGRhMTNiOTQ0MDE5NGQ3NmExNmMyMGYxYjA4YzUgbGVnYWN5LXRydW5rCisyNzYzNiA4MzEyMGY1YTQ4YzIxMzllZWRiZWM4MTQ1Y2ViOWVlNTkzY2VhYmE1IHJlbGVhc2UyMi1tYWludAorMjc2MzcgNDFjNTRiMzdlMDMwODg0NzJhYjdhZjAxNTg0MzczMTk3MjUyOTMxNyBsZWdhY3ktdHJ1bmsKKzI3NjM4IDg4Y2QyN2RiNzliOTNmMjg1NWYwZWZlYjg1ODM2ODEyNjJlZWIzYzYgcmVsZWFzZTIyLW1haW50CisyNzYzOSBhNjcxNzI3NTE5NWM5MjkwM2JjZTYwYzhmNmVjMjhlYTFlZDZmMGRhIGxlZ2FjeS10cnVuaworMjc2NDAgZWFjNTRhODMyNzJmNDIwMGU5ZGFlMWYyYTU1ZDdhMDFkM2VkZjQwNyBsZWdhY3ktdHJ1bmsKKzI3NjQxIDJmNjBmOTBjZTMwOTNkYmIxNTk3MTM3NjQ2NGFhNzA5M2JkZGRmMTIgbGVnYWN5LXRydW5rCisyNzY0MiA2YWEyZDA5ZTMyYzEzZmI1NmM5NjgxYmVmMjE2MDQ3NDJkYmE4M2QwIGxlZ2FjeS10cnVuaworMjc2NDMgMjdlOTRjYWNiNDNiZDZjMzRmYWY1NjAwY2YwNzUwZTEzYTViNzcwYyBsZWdhY3ktdHJ1bmsKKzI3NjQ0IDNiNTcxZTMyYTZlNDVmYjgyNWJiYjY5YTk2MWZiMjBkMmU1MTBhZWMgbGVnYWN5LXRydW5rCisyNzY0NSBlNjAzMzI1NGRmMjE0NTViOGZjNDE0NTg1MjkzZTUyNmU0NjNjZjBmIGxlZ2FjeS10cnVuaworMjc2NDYgMThjMWIyOTBlNDg0Mjk3NDcyM2YzMTI2Y2Q0ZmNlZmYyNWEyMjI3YSBsZWdhY3ktdHJ1bmsKKzI3NjQ3IDRhNWM2ZjY5NDQ3ZDZiOWZmNzc3OGIyMGE1Y2UwMmNjYzU5MDJkODYgbGVnYWN5LXRydW5rCisyNzY0OCBkOThiMGNkZjdlNTFiNmExOTBmYTQwMzQzYjNhOGI3OWMxMjI0YzkwIGxlZ2FjeS10cnVuaworMjc2NDkgNzZjZDI4NmU3ZGU1ZTc3OTViOTE5MzA1ZDliYjZmM2VkOTc0ZWFhZCBsZWdhY3ktdHJ1bmsKKzI3NjUwIDNhM2UwNzFkODRmOTg1ZmRjMjM5OTU2MDdkNzljYWU2YTBmZTRmYTggcmVsZWFzZTIyLW1haW50CisyNzY1MSBkNzIzNzAzN2YzNzk0ZDkyNDc0MWZmOThlMzg0OGY3MzAxZDhhZTU5IGxlZ2FjeS10cnVuaworMjc2NTIgYTRmNGNlNWU4YWE5OTE0ZTMyMzA3ZjU4OGY3ODA1ZWIwY2M1Mjk1MiBsZWdhY3ktdHJ1bmsKKzI3NjUzIGQxYjJiZmQ5M2EyNzA4OTUwY2EwY2U2ZDZiM2Y3MzViMzlkZmI3MDAgcmVsZWFzZTIyLW1haW50CisyNzY1NCBjM2NmMjIzMzhlMWNlOTQ3MjhmZmQ3YzQ4OTRhZTU0MTY2MTgzOGRhIGxlZ2FjeS10cnVuaworMjc2NTUgYzMyMGEwN2YwMTQ2NzFhM2UzMGE4ZDNjMDEzMjg5YTBjYzYzNDc3NiBsZWdhY3ktdHJ1bmsKKzI3NjU2IDFjZWJjZTUwZmU3MTIyNGQxMDk0YzY1ZGEwYTM0OTU5N2ViZjg5YjIgbGVnYWN5LXRydW5rCisyNzY1NyA5OWRhOTM2ODNlYTViMjU0ODYwZTE2MTNmMTkwYTA0OTRkMGUzNmM5IGxlZ2FjeS10cnVuaworMjc2NTggMzUyOWFkMjEzOTU1OTQzZDM0NThhMTAyOTIyNzZiNjVhZTdmNTE1MSBsZWdhY3ktdHJ1bmsKKzI3NjU5IGViMDRmMTdjYzAwOGNhNzUzM2Q3NDhkMzdhNTNkYjBmOTdlOThhNjAgbGVnYWN5LXRydW5rCisyNzY2MCA3MWYxZjM1YzAzNTczNDc2ZWEzOTgzMTM1NDY3ZjA0MDdkZjBkMDFmIGxlZ2FjeS10cnVuaworMjc2NjEgMWE3MDNmOWJiZGMwZmVkY2FjZTQ3OWY3NTRmYTMxOTI4NzZkZjMyNSBsZWdhY3ktdHJ1bmsKKzI3NjYyIDE1OThhMWU0NzNlMjQ3OThmZDU5YWNkYjE0M2JjNjE2NzY4MzE0NTkgbGVnYWN5LXRydW5rCisyNzY2MyA4MTljODAzMzcwNWI5NTRmNTU2ZTcyZmVhYzIzNWY3YTEwZDhjMjY1IGxlZ2FjeS10cnVuaworMjc2NjQgOTcwNzg2ZDAyZTgwNWRmMTdkNGQ5YjY0NzA3N2M0Y2ExZGJmNjRlOSBsZWdhY3ktdHJ1bmsKKzI3NjY1IGMwYTY3YTFjYWIwOWM5NzM3YzIxZTdhMDc0MzM0ZTVmZTBlNDA4YjcgbGVnYWN5LXRydW5rCisyNzY2NiBkODkwOTc5MjAwNWFiODJlZDFiYzJiMTMxMGZkZGFmNmNkMTg0YjJiIGxlZ2FjeS10cnVuaworMjc2NjcgNDQ1MjJhNzVkZWVjZWE5NDRjODMyZWZlNGQzOWQ2NzExMWIyMTkwMiBsZWdhY3ktdHJ1bmsKKzI3NjY4IDRlODUzMDZhOWJiZmE4MWVjNWJlNWYzODZiMTQzMjgxZDJlYzg2MjkgbGVnYWN5LXRydW5rCisyNzY2OSAxNTc2YTJkZmYwMWY4ZTk4YTI1NWExZTg3ZjU2MjUzZjRkNTUzNDdlIGxlZ2FjeS10cnVuaworMjc2NzAgZDgxNGE3MzE5MjRhMzE1ZWE1OTdlZTJkYzRkZjRkMzljYWFiMTgxNyBsZWdhY3ktdHJ1bmsKKzI3NjcxIGI1OTYyYjU4N2NjMDkyOWVhMWNmZjRkNWVlYWRjMDI3YjE2ZDAxN2UgbGVnYWN5LXRydW5rCisyNzY3MiAwOWU0ZGU1ZGNiM2JhYjFlY2Q0OGVjNTQ4YjQ3OTM4Y2Y2ZjVmYjY1IGxlZ2FjeS10cnVuaworMjc2NzMgM2NhY2VmMjQ5ZWI1NTBiMjYzMDI2YzlhZGY2NzE1NjgzMzhmMjRiNSBsZWdhY3ktdHJ1bmsKKzI3Njc0IDJkNDA3NDg0YTRlNjMzOGVmZjU0NmMxZGVjNGYwNWI5MDRkZmZjYzggbGVnYWN5LXRydW5rCisyNzY3NSA2NDAzNzBmMDhlMmFmMjk5NjdiYWI4OGFmYzQxNGE2YTRkNWNhYmNjIGxlZ2FjeS10cnVuaworMjc2NzYgMGEwOGVkMDViZDQyNWMwYTE2YWY3MjUxYzNiYzE4MGEzZDYxZGJkYyBsZWdhY3ktdHJ1bmsKKzI3Njc3IGEyNmNhOGFiMjdmMmIyMDE1MTJhOTg1MTRmMmVkZGFhM2ZmZTc3NmQgbGVnYWN5LXRydW5rCisyNzY3OCA4N2UyNTM0ZTlkNjRiMzcwNTBjMjcwN2Y4ODI5ZGM1NWY4N2Y0ZWIyIGxlZ2FjeS10cnVuaworMjc2NzkgZTY2MjIyNjIxMWU1MzljYWVkZmQxNGM5Y2UyM2JmYjg0MmM4N2YwMSBsZWdhY3ktdHJ1bmsKKzI3NjgwIDM3OWIwMWUwNzQyMjE5OTA2OTYzYjgyZjlkZDBmYjNjMDM5NjM5MjAgbGVnYWN5LXRydW5rCisyNzY4MSBhMDMyOThhM2FjYWQxNDM5MDkyZTBmNDk4MzBlMGFjOGZiZTIyOTJjIGxlZ2FjeS10cnVuaworMjc2ODIgNTJiMDk3NmU0OGExZDZlNDlkNDA1M2I5ODM3ZDlkYjRhNzc4YTIwYSBsZWdhY3ktdHJ1bmsKKzI3NjgzIDljMDE3ODRjZTdjYWI1MTQzMWQ4YjlkNDUwZWFlZmNiY2M3MzBiNjIgbGVnYWN5LXRydW5rCisyNzY4NCBjNGJmNDVjYTRkNTU2NzY5ZjAxMjdjZmU2Njk2OGQwMTE5ZTdjNTU4IGxlZ2FjeS10cnVuaworMjc2ODUgOTM0MzRiYzA4OTlkOWZkNTRhNzliOGU3NTExOTViNDQyZTRkMDdjMCBsZWdhY3ktdHJ1bmsKKzI3Njg2IGM5MWI3ZjM0NjI2YjljZDNlNTg3M2NkMmI1NGM3OTM0NzlmNTRkZTMgbGVnYWN5LXRydW5rCisyNzY4NyA0MjhjYmJmMDU2MzkwNjk4NTMwODljOTA2YzdhZjRmMTdkZGE3YTZkIGxlZ2FjeS10cnVuaworMjc2ODggMTMyNTc3ZjY5M2IxY2MxNTk3MzE4MTk0YjFlODI0NTM3NzgxZDVhMiBsZWdhY3ktdHJ1bmsKKzI3Njg5IDQxNjY1NGUyN2Q4ODkzMzU2M2YyYmI0MjU0ZDc0YzAyNDkyNGNkZjggbGVnYWN5LXRydW5rCisyNzY5MCA2OTEzNGM2MWY4N2MwNmJjMWFkMzgxMTQzM2JjMjAwZTI2MTU5ZTZjIGxlZ2FjeS10cnVuaworMjc2OTEgMDhkMzA3Y2JjY2Q5NTEyMGFlZDljNjdiODNlY2I2NTBhZmQ2MzY0ZCBsZWdhY3ktdHJ1bmsKKzI3NjkyIDVlZGU5YmNjNjUxZWIyZjAxOWE0Y2E2ZTNlNjI5ZGU3NjU1YWMzYmQgbGVnYWN5LXRydW5rCisyNzY5MyBhMzUzZDZhNDUyNzY5ZWEwMmJiMjkxYjg3ZDUxMGVjMDBhZGNhMjEwIGxlZ2FjeS10cnVuaworMjc2OTQgYzRiM2EyYjI0N2FjMzdhMzcxMjVmOTdlMjg1ZjdlMGQxNzFlYjI0YSBsZWdhY3ktdHJ1bmsKKzI3Njk1IDY1OGUxMmNjMDMzNjJkNWE2NDI3Nzc3YzhjMTZjM2RiYjM1YWJmZWUgbGVnYWN5LXRydW5rCisyNzY5NiA3NGY5YTIwNmQ0ZjA4ZGUxMzIzZTI0NTNhYWE0YmJkMjczMzZiMDYzIGxlZ2FjeS10cnVuaworMjc2OTcgYThkZjBjMGJlMjQyM2FlYjZkNjFmZWFiMzZlNDJjOGY5NjJiNmQxMCBsZWdhY3ktdHJ1bmsKKzI3Njk4IGRkMzgyOTFiODlmYjU0MDA3NWI5ZGMxYmE1YjFkNTI0NzkyZTg5YjEgbGVnYWN5LXRydW5rCisyNzY5OSAyOWFlOGU4OTE1M2JkNmU1NTdiZGQ5OWJkMGUyN2Q2M2Y4OGQ0OTAyIGxlZ2FjeS10cnVuaworMjc3MDAgMTI4MTVkMDUwODBjZjY5YzJjOWE5OTNlNGVlYzE5NjA3MDQwMjM5OCBsZWdhY3ktdHJ1bmsKKzI3NzAxIGM0MzQ2NmY3ZGFlODQxNjQ1N2U3MDgxYTZiNDI5MmI2NGI4NDA0ZDEgbGVnYWN5LXRydW5rCisyNzcwMiA0NzhhMmQ2NGFjNTgzMDhmYWJmNGU0Y2Q3NTdhNzI2NGZlOTczYzdjIGxlZ2FjeS10cnVuaworMjc3MDMgMzEyMjczNTNjYmJjYzAxMGI1ZDgyNjk2MGUzMDY3NDZkOTgxNzUxZiBsZWdhY3ktdHJ1bmsKKzI3NzA0IGFmZTQ3OWE2MjM1ZWMwODQxNWU3NDY1M2JiYjAzMzYyZDAyNDRjZTQgbGVnYWN5LXRydW5rCisyNzcwNSBhYjE4NzdhN2IyNjI1YmQ2YzQ2ZWZiMzE0OTBjNTZhNWVmZTM5MjlhIGxlZ2FjeS10cnVuaworMjc3MDYgZDlhZGQ0MGY5MmZmMzJmMTk4NDdkZTMyNWI1YmYzZWZhMGRhM2JhMyBsZWdhY3ktdHJ1bmsKKzI3NzA3IDE3ZDUyNjI5Nzc1NTdmN2U2MTgwY2U3YWIxNzllZWMxNmFlNTBhYmQgbGVnYWN5LXRydW5rCisyNzcwOCBhYTRiOWE3YjM4MTdhMTllNWZhNTg0OTFhOWEwM2FjYzIxNmU5ODYxIGxlZ2FjeS10cnVuaworMjc3MDkgZWIzOWJhNjBkYWUwY2ZjMjk1YmM4M2NlOGQwZDRkYTY1ZDBkMWU4NyBsZWdhY3ktdHJ1bmsKKzI3NzEwIGQ0OTdmNTIzYjgyZWQ3NGFjYTEyNjM5OTUxNmUzM2ExY2ZkODA4YWEgbGVnYWN5LXRydW5rCisyNzcxMSBlMzc1MWZjMDNlNmM4NzgyZTk3NmJjZjUwZWEzZmIxZjk2ZmMxZmJkIGxlZ2FjeS10cnVuaworMjc3MTIgNTNiMzIyNzFlOGUxZjE2ZGY0ZDkzOGNiY2JkNzQ3ZjM2ZmQ4YmEyMyBsZWdhY3ktdHJ1bmsKKzI3NzEzIDY5Nzc3N2NjODNjYzBmZjA2MzU4NTEyZmE0ZmZlNmZmZDcxY2M3NTcgbGVnYWN5LXRydW5rCisyNzcxNCA4YjRhMTY1YmFhZWVkZjY5ODRlNGFjMGViZjAxNWE3MTc1MzU4NmUyIGxlZ2FjeS10cnVuaworMjc3MTUgZGRmNjcxNjMzNDY1ZTUwNmY1YjdjOTY3YWUxYzFmNmY5NjIwN2FkMSBsZWdhY3ktdHJ1bmsKKzI3NzE2IDIxMzFiYjc5MGFmOTU4YzY1MTM0MTc4NTc1MDRiNjAwYTE0ODRlZDggbGVnYWN5LXRydW5rCisyNzcxNyAwNmI5YThkYWQ3MjFiMTkwNmUwZjliZGMwZjFmMjE3MTM1ODU4MDdkIGxlZ2FjeS10cnVuaworMjc3MTggMmY2MDM0NGE0OWU4OGNlNGVkOTk3NDM1MTA5MzE5NTEzZjA1NDkzYiBsZWdhY3ktdHJ1bmsKKzI3NzE5IDQ5YTNlODMzNDdkZGVkMGIwOTk3ODQ5Y2U3MDU4YjkwYWE4NzZjOTEgbGVnYWN5LXRydW5rCisyNzcyMCA2N2VhYWJiMDE3ZTBlMGQwMWI4OWFkMGUxZTZiN2QxNDhmMDkyMTFkIGxlZ2FjeS10cnVuaworMjc3MjEgYTliODA5YzhiOWRiYWEzZTQxNWUxNjVkNjE2YjM0Mzk3MTg4NmQyNyBsZWdhY3ktdHJ1bmsKKzI3NzIyIDEzOTg1OTAxNmI0NGJiOWQwNjcyNGIxMGU4OGU2NDI2M2Q2ZDVlOWIgbGVnYWN5LXRydW5rCisyNzcyMyAzZWYwMTljYWFkMWU1MTUwOGQ0OWI2OGYwOWZjYThjYzE5ZTg4ZWQ3IGxlZ2FjeS10cnVuaworMjc3MjQgMmFlMDE0NTkzMWYxZjMwOGQzZGRiMjkyOGVlZDhlODJlYTMzYzA0NiBsZWdhY3ktdHJ1bmsKKzI3NzI1IGYwOWNmOGViYTdlMjM3OTBmZDM2NTU2NThmYmZlOTZlZjI2MzI1MmEgbGVnYWN5LXRydW5rCisyNzcyNiBiYjA2OTJlMzBmYzZiMDFkM2ExNTBjZTBiMWNkMzUxYmNjZmMzZWNmIGxlZ2FjeS10cnVuaworMjc3MjcgMjMyYWIwZDY2Mzc1MmJhMmVhNmExMWUxMzQ2ZTE0Zjg3MTRmMjVlNiBsZWdhY3ktdHJ1bmsKKzI3NzI4IDJkYzIzZjBmMzQyMTVkNmY0NmEzNzk0MzU5MDQyMjJhMGUxMGJhMzYgbGVnYWN5LXRydW5rCisyNzcyOSA0ODkzMGIwMDQzYjc3MmI4YTYwMjkxMzRjNGUxZGU2ZmQyZjM3ODM0IERTX1JQQ19CUkFOQ0gKKzI3NzMwIDE4N2M0ZmFkZTNkYjNlYjVmOTExYTVkNTY1OTlkMTkxNzU2NjQwNjUgRFNfUlBDX0JSQU5DSAorMjc3MzEgMzBkMGQ4ZGJmMjQ0NThlYjE2ODRkOGIwNmU5ZjIzMjg2MTg0NWExOSBEU19SUENfQlJBTkNICisyNzczMiA3ZmVkMzUxM2FiZmE3MTNkZWMxNjZkZTk4YmNhZDZjNTEzMzQ2ODJmIERTX1JQQ19CUkFOQ0gKKzI3NzMzIDNhM2JjN2Q5ZjFmNWU2MTYxYzIwOGYwOTgzOGY2OTliY2E5NjA0OTcgRFNfUlBDX0JSQU5DSAorMjc3MzQgNGY2ZTU2YzQ0NzM5ZmU2Yjk0ZmJjN2RmM2JlODU3ZDBkYWQ4NzAxYiBEU19SUENfQlJBTkNICisyNzczNSBkMmQ4MWQ1M2Q0YTEyZGYzMGFjZDYxZWQwM2RiZGE1ZTRhNWE1OWM3IGxlZ2FjeS10cnVuaworMjc3MzYgODA4YjRmZTUxODRmY2FkNzY1ZjFlYjlhZmEzOTQ5NzAyMjg3ZTBmMCBsZWdhY3ktdHJ1bmsKKzI3NzM3IGFhNWM5OWI2MWRmNzc3NDFhZDY5YjJlNjlmZDMxZTNlMGYyYmQ3OTIgbGVnYWN5LXRydW5rCisyNzczOCAxMzdmZGRlNzAwMDYwMTAyZjI0YzQyOTNkOWExZTRmZmIzOGVkODU3IGxlZ2FjeS10cnVuaworMjc3MzkgMTU3YmJmYjE3ZjQ0Y2U5MmRiZjZiNThmNzgyMmJiYjRiYzVkYzVlMCBsZWdhY3ktdHJ1bmsKKzI3NzQwIDU1ZWFiMTBlNDcyZDM5ZjM4NDYyMmJmN2RhNWJjZjUxMWJjZDc4OGMgbGVnYWN5LXRydW5rCisyNzc0MSBmZGE1MTNiNjcxYjZjOWY2MmJlNjc5OTc0NGEwMDkzYzZlY2M3YTRmIGxlZ2FjeS10cnVuaworMjc3NDIgNGVhZGY3ZGZjZGI0YThlZWQ0ZGEzYTE5ZTc1ZjQwYWFmMDNkZDI3MyBsZWdhY3ktdHJ1bmsKKzI3NzQzIDE5NDE0MGM4MzI3NjA0OWRmNTU1NjJmYTQ2NTdkMzg5NzRiNDM0NWMgbGVnYWN5LXRydW5rCisyNzc0NCBhMzU3MTQzNjgzN2MxYTI0NWQyMzA5MmM4ZTVjYjEzYTM2ODgzZGI5IGxlZ2FjeS10cnVuaworMjc3NDUgMTdlOTRlNjIzNTNjNzM4ZDM3NWU3NjVmZTc3YzFhOWQyMWU4NGYxNSBsZWdhY3ktdHJ1bmsKKzI3NzQ2IDMzMDhhOTZiOTc2ZjZlODk1MGQ3Zjc2ZWYyNDY1OThkYTZmYWY3ZjAgcmVsZWFzZTIyLW1haW50CisyNzc0NyBmM2M4ZTNhZjdiNmJmNjI2NzhiMmE2ZjcwNTIzYjRkMTUzNzVlMjNlIGxlZ2FjeS10cnVuaworMjc3NDggMDIwZDk2NjI1MzU3ODY3Y2Y2MGY1NzE3OTUyOTA4ZTliOGJjMTlhNSBsZWdhY3ktdHJ1bmsKKzI3NzQ5IGU4ZmQ1Y2FiMGRiM2VhNzI2MDc1ZDQ5OGFlOWViMjA3ZTk0ZTU4NmMgbGVnYWN5LXRydW5rCisyNzc1MCA3MTNhZDdlMDQwNmFhNjJhZTMxMGVmY2IwOTZjMGM4MzMzNjlkZjFjIGxlZ2FjeS10cnVuaworMjc3NTEgOTc5ZmY1ZDBhZTA3YWY1NDNhNzczNzM2NDdlZGZkNWUwOWY5MzljMyBsZWdhY3ktdHJ1bmsKKzI3NzUyIGFhMGQyZDUxZmJkZWMxMTJhZjMwNDMzMjE2NzE3ZGNkZGU1ZmQxNjkgbGVnYWN5LXRydW5rCisyNzc1MyBhNzE4NmJiOTE0MmM5MjllZTFkMDA1YThhZTZkM2U4YjIxN2Y5ZDQ2IGxlZ2FjeS10cnVuaworMjc3NTQgMTAxMjkwNmU4YWRmMGZjNTEwMWE2NDY1YzBhOWU1MTAwNmIxM2E5NiBsZWdhY3ktdHJ1bmsKKzI3NzU1IDhkMjNiZmEyMGNkYmNkYjBhYWNhMDQ4ZTRjMmQ3YTdkNzI5MzQwOWUgbGVnYWN5LXRydW5rCisyNzc1NiA0YWI0ZGFjNDYyZmZkYzk5NWYzZDkyNjY5ZDhjYTc1YjAyMjVmMjhiIGxlZ2FjeS10cnVuaworMjc3NTcgZTM2MDVlYjJmODY2YjNiNTMzZjljNWQxZjdiMWI3Yjk3MDAwMjg0ZCBsZWdhY3ktdHJ1bmsKKzI3NzU5IGY2ZWFhOWQ5OTZlYzI0MmM2NWI2ZDg2N2MxZWYwNzMwOWRjZjRjMTUgbGVnYWN5LXRydW5rCisyNzc2MCA0MGUwMTQwMTgxY2Y4NTAwMGMwNWExMTQ1NmE2MDBkNWEzNDc3MzZjIGxlZ2FjeS10cnVuaworMjc3NjEgNDNlZTFjMDc1MGEyMzU1NGJkZTU1NGZmNzNhNzMzMDNkYjkzOThjMiBsZWdhY3ktdHJ1bmsKKzI3NzYyIGRmZTU0YWYyOWE0NzNmZmU4ZTM3OTgyM2QzMGIzNTc2YWY1NzZkNDQgRFNfUlBDX0JSQU5DSAorMjc3NjMgOWQ2NDFjZTY2YWYzNTgyMWNhODJjNWYwODg2YWE4ZWNlODhkYzNjNyBEU19SUENfQlJBTkNICisyNzc2NCBmNzljN2FhZTY2MjBkOGIyYjNmNzg3OTkzMDA2MTdmMmZhNGRjNDUxIGxlZ2FjeS10cnVuaworMjc3NjUgMzA3MGI3MTdmYzNkODMzMjY2YjhmZThhMzVlYTRhOTY2NzQ1MDFkYyBsZWdhY3ktdHJ1bmsKKzI3NzY2IDg5Y2U2MjEyNjY2NGYyNGI2NDBiZjljOTQ2MmI4MmFjZjE4NGM5NTIgbGVnYWN5LXRydW5rCisyNzc2NyBhYTllMDU0MjcwYTJhOWZlZmE2NmI5ZWVhYjI3OWRmM2Q1MzU3NzdiIGxlZ2FjeS10cnVuaworMjc3NjggZWMyYzg1NGJkMTk2ZDNhY2FjNDc0YzMzMDVjZDZiZTExNTdlZWMyYiBsZWdhY3ktdHJ1bmsKKzI3NzY5IGM5ZGU1NWZiYjJiMWRlYTdjZWZkMTNlZDZkY2M0MmUyNzYxYmYyZmMgbGVnYWN5LXRydW5rCisyNzc3MCBlMmQ0NjFiZWZjN2E4YzViMjE3NGFmNzcwZTM5ZDFmNWJiNDA0NjkyIGxlZ2FjeS10cnVuaworMjc3NzEgNjcyODQzZWU0YjYxZmIzOTFhMDhmM2FhNWVjNWU2OTc5ZDlhODVhMiBsZWdhY3ktdHJ1bmsKKzI3NzcyIGQ4YTY4MmQ0YzY5MjQwNDcwMDZjOWIyNDhjYjMzZWQyM2IyMzZmNzcgbGVnYWN5LXRydW5rCisyNzc3MyA0MTU2YmY5YjAwNDNjMGI3OGI5ZmEwNDQzZGYwNmNjNWJmNzhmYjRjIGxlZ2FjeS10cnVuaworMjc3NzQgM2M0NWRjZDAxMDFkZWViZWU5NGUwZjg4YzA0MTQyMWIzYmVkNTVkNyBsZWdhY3ktdHJ1bmsKKzI3Nzc1IDY2NzMxNzFmYzM3ZWJmMWJlMTg1OGI4ZDBlYzJmNWY2MWUzOTZkM2UgbGVnYWN5LXRydW5rCisyNzc3NiBkYmRhZGE5NjY4NTgyZGYxNGRjY2U3MzU1NzQ1ODMyMzdhYmFlYWNlIHJlbGVhc2UyMi1tYWludAorMjc3NzcgMGUyN2I2NzI0N2RhYTRiMGYwZWE0ODRjNDQyOWUwYWNmNWJlNGI3MiBsZWdhY3ktdHJ1bmsKKzI3Nzc4IGI0NWQxYjMwNDBhZWYwMGY3NWM5NjI1NzUzMzRkNDY4Y2FmYWI2MmYgbGVnYWN5LXRydW5rCisyNzc3OSAzYWFhZDlkZjcxMWU0M2U0ZmU5MjRlYTM5ZmUyNzg1Nzk1YTkzYzc2IGxlZ2FjeS10cnVuaworMjc3ODAgZWI3NTlkYTA2NGFhODVkYjg2M2I2OTMzNTM3YWEzMGMyMjM2ZDg3ZCBsZWdhY3ktdHJ1bmsKKzI3NzgxIGFjNDliMjgwN2I3NTBkNDc5NzhmMDg5MjQ1OTkwZDZmNGJmZGYyMTUgcmVsZWFzZTIyLW1haW50CisyNzc4MiBiOGUzNTk2Y2ViZDdkMzQ0YzA3OTIwYzJlNTExY2RiMWM0MzkxMWZlIHJlbGVhc2UyMi1tYWludAorMjc3ODMgMGEzMjdiNzY4ODY4NzRhYmRiZjE5NzAxODkyODM0MzllZGMzNDlkNiBsZWdhY3ktdHJ1bmsKKzI3Nzg0IDA3ZGQyZmM2YWM5Yjc3YWJjYTM4NWJiN2MwMjI3YWM0OWZkYjM4MDkgbGVnYWN5LXRydW5rCisyNzc4NSBiYjY0YTg2MTRmNjY4MTc0ZTQzYzAzODliNzIzMjllYWNmNzBkNDllIGxlZ2FjeS10cnVuaworMjc3ODYgNDc3Yzc0ZDAwNjZmMDYyNzY4MGVjOTJlNmU2OGNiZmU4YTM5MjM0OSBsZWdhY3ktdHJ1bmsKKzI3Nzg3IGVkOThjODhiMjM1M2JlNDA5M2IwNzA1M2E5OTYyZDdhNWM1MzBmOTcgbGVnYWN5LXRydW5rCisyNzc4OCBmNjA1MmFlYjEzNGZjYTFlODE2ZmYyMmJmZmYwODA5Y2YwZTAwYTIzIGxlZ2FjeS10cnVuaworMjc3ODkgYzdlZDkyNWM3NWIzMTBhOWFlYjhmYTMzMThmMjA5NmI4ODA2ZjhjYyBsZWdhY3ktdHJ1bmsKKzI3NzkwIDYwODczNWRkMmViYzdkNmU1MWM4MjA2ZGQxOGEyMGU2Y2I1MTcyNjIgcmVsZWFzZTIyLW1haW50CisyNzc5MSA4MWNhNmNhNWMzMDc0YjM0M2NlYmE3ZjlmMWE1MDY3OWEzMTZmMWEwIGxlZ2FjeS10cnVuaworMjc3OTIgYmQzNjY1YmQyZjc4MzMyNDA5NmU5MzgzYTYzMTFmZWY3ODAyY2JiZiBsZWdhY3ktdHJ1bmsKKzI3NzkzIDhjNmE5OTIyNDU1NzlmMzgxMmE5NTljYzlhYTNiNTExNTQwZjJkNDQgbGVnYWN5LXRydW5rCisyNzc5NCBlYjU1NGFhMzYxZTljZTgyMDZlN2NlYjNjNGQ3NzQyNTI1NWRjNzgwIGxlZ2FjeS10cnVuaworMjc3OTUgY2E1YWM5NjdjN2M0Y2NjYTEzZGNiOWQ4NWM3MDJkOGUwNWMwZTdlNSByZWxlYXNlMjItbWFpbnQKKzI3Nzk2IDgwMTI5ZDRhOGNlYzE3NTMxZTNlNjNlYTdlODlkMjYzYjA0ZjAyZTQgbGVnYWN5LXRydW5rCisyNzc5NyAzMDQ0MDg3MWM2ZTU2NDBjNmQ1NmU1MDFmMzk0N2I0MzVlZDBlZmUyIGxlZ2FjeS10cnVuaworMjc3OTggZDA0OWZkNThlNGRkYzRkZGVlYzc0ODJkZTI0YzliZWU4ODE0ZjFiYiByZWxlYXNlMjItbWFpbnQKKzI3Nzk5IDRkZTVjN2U2MjMxZTVkMzY5MDVmNzRjN2RhMWY0Yjc0Y2UwYWJiOGIgbGVnYWN5LXRydW5rCisyNzgwMCBkNmVjNGRhYjkyN2U2N2QyMjg1NzRhNWY5M2M3YWFkNjdlY2YzNTczIGxlZ2FjeS10cnVuaworMjc4MDEgMzFhNzExOWJkOGQ0ZGVmNzEzNzQyMTE5NjFlM2JlZGJhZWMwM2UyNSBsZWdhY3ktdHJ1bmsKKzI3ODAyIDhlMjY2ZDBhY2QxMGEwODIxZDUxMjZmZmQ3MThkNzg2MzAwODEyZDYgbGVnYWN5LXRydW5rCisyNzgwMyA0NzA4YzA5ZjAzNTBmOTU0NjQwNjM0YTA4MDA5OWMxNmM1YWVmZDg1IHJlbGVhc2UyMi1tYWludAorMjc4MDQgMDg5MjZjYzVmMmFmZDA0MTZmMGE3M2ZiMTkzMGNhNDAzY2QzYzEzNyBsZWdhY3ktdHJ1bmsKKzI3ODA1IGEwODhjZDA4ZGFkZTc2NjI1MGQxODY2MDY5ZDc5ZDdjNDc5MDdiNmQgbGVnYWN5LXRydW5rCisyNzgwNiBmNWNmYTBlZTAyY2YzZjY2YTJhYjczYjRlMmE2ZDgxZDY2YzBiZjQyIGxlZ2FjeS10cnVuaworMjc4MDcgZGQ2YTk3MTFiNDNjZDkwNmYwZTQyMWI2OTIzZjhmYWNmZTQzNTAwNSBsZWdhY3ktdHJ1bmsKKzI3ODA4IGEwYTU5ZTUyYmFlYzVkZDBjOGVhNjA1YzgwYjcwZjYzZGNiZWQ4YTEgbGVnYWN5LXRydW5rCisyNzgwOSA1MTVlODcyM2NhZWZmNjU5NjM0ZjA5Mzk0ZjlhY2M2MGJiMmM3OGI1IGxlZ2FjeS10cnVuaworMjc4MTAgMjc1NjkzYmNlZTc0MDJiMzBiNmM4Mzc3YjYxMjkwZDA4NzA3MTE1ZiBsZWdhY3ktdHJ1bmsKKzI3ODExIDM2ZTJmZDNmMDhmNzU4MGRlZTQ2YWQ4YjA2OWU5Mzg5N2U3M2JjODUgbGVnYWN5LXRydW5rCisyNzgxMiA1YmU5NjFhOGU5ZGIzZTE4MGY4NjNkZjQyMmViYmE5OGYwZjBmYmQxIHJlbGVhc2UyMi1tYWludAorMjc4MTMgYmQ2MjY4YjE3Yjc1NzdjOTE3YWJkMmRiOTk3NmRiY2U0MmU0NDYzNiBsZWdhY3ktdHJ1bmsKKzI3ODE0IDNkYjI2MWE5M2E1YjlmNzNhMzdlNjM1Mjk4M2VhODk3OWVmNmE3YzMgbGVnYWN5LXRydW5rCisyNzgxNSBmNGNkNzhiM2I3NzRjZmI5NGE3MmFhNmZmNWE0NTY0ODA3MWFlZDA5IGxlZ2FjeS10cnVuaworMjc4MTYgZWQ4OTI0MTFlZTBkMDBiNWVhODRlNDhiYjkyMGQwZGJjMzExZmJiNCBsZWdhY3ktdHJ1bmsKKzI3ODE3IDlhZmFjMGRkNmI2ZTRlYTBlNjMyZTA1MDhkYzI5NThlOWE5OTJmMzUgbGVnYWN5LXRydW5rCisyNzgxOCBlYTQ4MjE5NjQwNDMyNGMzYjBmOTlkNDJjNTE0Y2M5YmM2YzBiMzM3IGxlZ2FjeS10cnVuaworMjc4MTkgMTVlZTQ0NWFmMDdmN2E4NTI2OTkxY2QxYzgyMDYzZjgyZjU2MTk5YyByZWxlYXNlMjItbWFpbnQKKzI3ODIwIGY1NWQ1OGVlNGVhM2ZjYzAwZTI2MDQ0ZDdiZGZhYTMwOGU3OTI2MmYgbGVnYWN5LXRydW5rCisyNzgyMSAxNGJkNWFiMGNkYjY2YzY1ZjU3NThjZWEzNzI4NjFiYmRhMTliNTEzIGxlZ2FjeS10cnVuaworMjc4MjIgZjQ0MzZlMWIxODY4ZmVmMmYxMmRjNzI2OTllNTJjZTU4MzQ4YjllMCByZWxlYXNlMjItbWFpbnQKKzI3ODIzIDczODNlNjc0ZmNkNTFiOTMwMGU3NTk4NTk3N2UzYjVlZTdiOWNjNzAgbGVnYWN5LXRydW5rCisyNzgyNCBmZTIyNTBmNDVhYzA4NDUzMGI5MWM3MzQ4ODYxYzNkZmY5NjhiZDlkIGxlZ2FjeS10cnVuaworMjc4MjUgOWVmODIzNzc2NjlkNTNhOWJiNWMxYjgyMmY5ZDdlNmE3YzgyYzc1MSBsZWdhY3ktdHJ1bmsKKzI3ODI2IDdkYzNmNDA3N2U1OTU1M2VjN2Y5NTkzZGYyNDNmM2EwNTZkNmRhZDQgbGVnYWN5LXRydW5rCisyNzgyNyBkOThmOGUwM2ZhMzEyYTNiNDYwNTIyMzVhYjM0NDQ1YjUwMGRjYjMxIGxlZ2FjeS10cnVuaworMjc4MjggMzAxZGQ1NDY1YjhlMmIyODYwZDhmYmY1MDAyNWQ0MDU1NmNjZjFlOSBsZWdhY3ktdHJ1bmsKKzI3ODI5IDY2OTg5NjY4MzhjOGU0OTAyYWMzNTYyYzc4OWRjNmQ5Mjk0NjUzOTEgbGVnYWN5LXRydW5rCisyNzgzMCBmZTAzYWI1ODBmOTU1YjkyYjY4NDgxODY5OTM5MTFiMDVkZDM5OWM5IHJlbGVhc2UyMi1tYWludAorMjc4MzEgMmNkNTFiMDUyZGRmNzdiOTM1YjcxNDA1Y2FjMzI5MzEyZWU2NDg2OCBsZWdhY3ktdHJ1bmsKKzI3ODMyIDZkNjExMjZhY2U2OTViMzg3NTkyZWJhNDIyMjY2NzUzYzY5MDJlMzQgbGVnYWN5LXRydW5rCisyNzgzMyAyMjZiYTM0YmQ5OThiNWVlM2ZkMGFhYzllYTZlMGU4MjlhMzQxZmVhIGxlZ2FjeS10cnVuaworMjc4MzQgOWQ0NzNkNGQxMWE2OTNlN2RjYzA2OTU4YTRhNGEzZGMzOGEzZGJjMCBsZWdhY3ktdHJ1bmsKKzI3ODM1IDMyZGRlMzdjOGQ5NTk3NDBmZWIxZjUzZjhmZDBjZDZmMWVmMzJiNmEgbGVnYWN5LXRydW5rCisyNzgzNiBjM2Q5ZTAxYzYxMjQwOTdlYjNiYzI3NDhjYWFhOGY1YjViMzFjNzI5IGxlZ2FjeS10cnVuaworMjc4MzcgNmY4MjRkNmYxMjg2MjkxMjRiNzExOTQxMzQ5OTRjYzdlZjZhOGJkOCByZWxlYXNlMjItbWFpbnQKKzI3ODM4IGRkZDZmZjA2OTNjNGYwMGRkN2IxZWY3M2JhYzYzMTI3Y2UxODNjMjMgbGVnYWN5LXRydW5rCisyNzgzOSAzNTQzMjMzNzFlMzg0OGQ1YmEzYjUxOGZiNWY3YmQzODEyYzkyMzIyIGxlZ2FjeS10cnVuaworMjc4NDAgMmFkZDI3YjU1ODY0YWIwMGQ5YjZkN2M5MDQ2YmUyMjIzOTI3ZDcyZiBsZWdhY3ktdHJ1bmsKKzI3ODQxIDc0N2ZhNjVhOWI0NzVhOTJlNDBjNGM5YzEyYWU4YzI1NjliZjM2YWUgbGVnYWN5LXRydW5rCisyNzg0MiAyMjU3MGU3NmNjYTE2MjFlNmRjM2YwOTZmNTkyOGQ4ZmNkZWViNTFhIGxlZ2FjeS10cnVuaworMjc4NDMgYTVlYTRkZDE3ODgzYTdhYWE2MTI5ZWVmMDhjZjkzNWJmYmUyMGIxOSBsZWdhY3ktdHJ1bmsKKzI3ODQ0IGYwZDEzOTlhMjQ0NWQwZGM5YjU0OGI3OTExYjIwMTJjNmU2ZjM2YWIgbGVnYWN5LXRydW5rCisyNzg0NSBmODI4ZjMyMjA2YmE1MmI0ZTM0NGI3ZGMwZGUxNDdiNDBhMTM4ZjI3IGxlZ2FjeS10cnVuaworMjc4NDYgZDk3MWI4NzAzNTA4MTIxY2JmYWZlNGNiNWVlNGMwYmM1NDJiNTkzOCBsZWdhY3ktdHJ1bmsKKzI3ODQ3IGQyMTZlNjdhYzIyMWMyMjBhMDk5Zjc2OWRhZDJjMzQ0ZWQyYTVkOGQgbGVnYWN5LXRydW5rCisyNzg0OCAyNzgyNWQyNjgzMTdhMTExNjA0NGNiMThiMzdmYTQwMGJmYTFkNzY1IGxlZ2FjeS10cnVuaworMjc4NDkgNWYxNDlhZGU5YWYxOTE2MTZiNzFhYzk0NWNlOThlMmE3YTBiNjEzZCBsZWdhY3ktdHJ1bmsKKzI3ODUwIDE4OWViNmZhOWRlZDg1MzFmZmFkMmIxYjEwZTAwYTVkN2EyMzllMDMgbGVnYWN5LXRydW5rCisyNzg1MSAyZDc3YmU0MWVlNWZiMDdlNThhOWQyNDlmZWQzNTYxNDczYzdhMDAyIGxlZ2FjeS10cnVuaworMjc4NTIgN2ZjMmNlYzRkYzgyOGQ0OWVjOWIyZDQzMGIxZWYzYzVmYWJmOGMzMyBsZWdhY3ktdHJ1bmsKKzI3ODUzIGExYmRkZjZhMzJjYWJmNmRhMTMzODk3ZmM2YjQyYjAxMjJiZGZkZWYgbGVnYWN5LXRydW5rCisyNzg1NCBlYmM4NjY3ZjMyNWFkYmJjNzBiOGJkNzIwNTU2NjQxZjNmYzhlZTIwIHJlbGVhc2UyMi1tYWludAorMjc4NTUgZTMzNGRkNGU1MTBmZjE3MjdmOTNlNTQwYWMwMDdmYzJkYjBjODRlNyByZWxlYXNlMjItbWFpbnQKKzI3ODU2IDRhNjZiZWYxNWMzYmI2N2RhMDM3NDUyMGQzZTFhMzBlMDBkOTQ3YjIgbGVnYWN5LXRydW5rCisyNzg1NyAxNjFhNWVmMDIzMGUzOTA2OWVhY2MwZThjMTJjZjkzMWIyMWE1MGRjIGxlZ2FjeS10cnVuaworMjc4NTggOWIyNDk3ZTI5Nzk1M2E5OWY4ZTFkOGRjZWM2NmRlMzkxNjVkYjRmNSBsZWdhY3ktdHJ1bmsKKzI3ODU5IGU1NjI5OGRjMGY4YWU4MjE0NDJlNDE5Y2JkZmViZGQ1MzI4NDFjNWQgcmVsZWFzZTIyLW1haW50CisyNzg2MCA3OWYxMjliMDczZGViZTNiZGMwYTgyYzUxYzk1OTM1NDBkZmM4NTY5IGxlZ2FjeS10cnVuaworMjc4NjEgYjZhODJmODE4NTQwNmM0Y2VjZWYzNzk5MjQzM2QwNWVlY2FhYWIzZSBsZWdhY3ktdHJ1bmsKKzI3ODYyIGY2NmIzYTM1MDljNzBjYTA2YjM2NTg3MjAwZmNlNTI2NGQyNTIyZjMgbGVnYWN5LXRydW5rCisyNzg2MyA0NWI0ZmM2M2JmNjcxOTM2NTRiMGVmNDc3Mjg2MGU4YTI4YmY0MmQyIGxlZ2FjeS10cnVuaworMjc4NjQgOTBiNDk2NjhkMGFjM2Y5OGE5NmJmNjI1YzUyOTM2YjY2Y2RkNDk2MiBsZWdhY3ktdHJ1bmsKKzI3ODY1IDVkYmNjZTIxZGZlZWE2NzIyMDQxNmRjMmE5ZGY3ZmVmYTM0MDkyYWYgbGVnYWN5LXRydW5rCisyNzg2NiBlMTQwOWFiMGZlNjk4NzM1ZDJjZmVhZGQ5MDYzN2EzZmY3NjAxMTcxIGxlZ2FjeS10cnVuaworMjc4NjcgYWQ0ZDIzZjFiZjZlNmEyYmM3Mzg2ZDQ2ODU2N2M5ZDBkNDA2NWY3ZSBsZWdhY3ktdHJ1bmsKKzI3ODY4IGIzODc1NGYxY2I2MTEyMmVhZWNiMmRhZDNkNzViNzJmZTk5ZjcxMjMgbGVnYWN5LXRydW5rCisyNzg2OSBiNmU1MWIwODZjZjRkNmNjNWE5ZTM2NzkzN2QzZmM3YmQ3MDFiY2ZkIGxlZ2FjeS10cnVuaworMjc4NzAgNTY0NjI5ZDFmMWFjNGEyMGZlMTBmZWY4NzYyMDViYzc1YzQ5YTU3YSBsZWdhY3ktdHJ1bmsKKzI3ODcxIDAzZDg1ZDE5NzA1MmE5MTJjNmVmZjkxOTU0Y2RkN2IzMzZkZTMwMjAgbGVnYWN5LXRydW5rCisyNzg3MiA4NjkxZWRhNGMwNTczMzQ3OWEzNTY5MWQ1NjFhODQ2Njc5MDY3ZDgxIGxlZ2FjeS10cnVuaworMjc4NzMgNzg5OWZkMmFmOTEyNWY4NjUxNTM5M2Y3NjY2ZWVhYmM3OWYwM2RlZiBsZWdhY3ktdHJ1bmsKKzI3ODc0IDcxYmEyZTk2OWMxMTQxNWQ0MGQxNzZjNzRmMzM4MDUzNzdiOWFjNjQgbGVnYWN5LXRydW5rCisyNzg3NSBlMDEyOGQ2MTZmODc5NTlmODZhZGVhN2Q3OWYxMjM3ODZkZjFlYjdjIGxlZ2FjeS10cnVuaworMjc4NzYgZjA1YTMxMWQ3OTg4NjI1N2UyN2IyOTQxOTJlN2E1MzFkMzMyMGE1OCBsZWdhY3ktdHJ1bmsKKzI3ODc3IDEyYWFmOGQ1YWQyYmU3MDc1NzI4NjI2MDY2MDc5MDU2ZWU0NGIyNTIgbGVnYWN5LXRydW5rCisyNzg3OCA0ZTYyN2Q4Y2Y5ZjRkMmE4NDk2ZjRhMzc5ZmRhZmU4NWYyMDdmZDEwIGxlZ2FjeS10cnVuaworMjc4NzkgZGYwNjI4NjYyYjQ4MWUzODU0OTQ1Mzk2YTY2YWY2MDFmOTQ4ZWQ3YSBsZWdhY3ktdHJ1bmsKKzI3ODgwIGJjYzM1YTBmMWE3OGU4Y2ZiMTllMGZmODM5Y2I5OTAzODY4MDQ5MzIgbGVnYWN5LXRydW5rCisyNzg4MSAwODU0NTI0ZWNlMDA4NDBkYTU0MjMyNmQ0MmI2ZjcxZThkM2M0ODcyIGxlZ2FjeS10cnVuaworMjc4ODIgNGJmYzhjNTE5YjZkZDU0YTk1ZDliZGI2ZWM5MTdjNTMxY2Q5YjAyZSBsZWdhY3ktdHJ1bmsKKzI3ODgzIGZiMDY5MWYxMGQ5MTJiNDlmNDNiODdlNWM1MGJhZGY4M2Y1MTA4OGYgYXN0LWJyYW5jaAorMjc4ODQgM2RkYWNlMWQxMmE5ZmU1MGM2Y2VmNGM5MDhjM2NhMDRiMTNhMzdlYiBsZWdhY3ktdHJ1bmsKKzI3ODg1IDgwOTFhNGEzYjhhZWMyZWYzMmUxN2Y4YjI4ZWFkZjk1MzBiYmRmMzUgbGVnYWN5LXRydW5rCisyNzg4NiBlYzFhMmQ3YWMwMmJjMDQ5MjM5OTJkNjM1OTg5NTFiYjc2OTFiZWUyIGxlZ2FjeS10cnVuaworMjc4ODcgMzAzMzVjNjhiNzg3ZjkxZmUwNjE4ZmNjZDZmMWM4MGNjODNhNzg4NyBsZWdhY3ktdHJ1bmsKKzI3ODg4IDI2NzBhNWRiNjg0MzE1Y2ZlNDU3M2RjMTMzYmE3NWFmNDlhMzllOGIgbGVnYWN5LXRydW5rCisyNzg4OSBkYWY3NTc5YzIyNDgyMTkyY2NlOTg1NDViZGU3ZjVlZTQ2NjRkNWRiIGxlZ2FjeS10cnVuaworMjc4OTAgNmRjZjEyOGQ3ZTAzMDhhY2Y4NWY2YzA2NjBkY2ZjNGE4YzM1MmM3NiBsZWdhY3ktdHJ1bmsKKzI3ODkxIGFjNzYyODc2OWJhNTNlMWJjNTY0YThmYjVkZjM5MzMxZDI5YjRiOGMgbGVnYWN5LXRydW5rCisyNzg5MiAxN2E4Yjc0YmJlNWNmMDRjNjhjMGU5NDQ2MDI0Nzg1NTk4ZDhiYWJlIGxlZ2FjeS10cnVuaworMjc4OTMgZGZlNjg4NGI1OWUwZTdlNDBiZWY2NmI3ZDMwNTgxYTZjZmEyYTY0YiBsZWdhY3ktdHJ1bmsKKzI3ODk0IGZlMmNmY2U0ZTY1ODYzZWQzMTcyYjViMTM0NTRiOWNlNDBlN2IxOTYgcmVsZWFzZTIyLW1haW50CisyNzg5NSA0ODk3ZTI5ZTE5Y2MwNjdjNmI5MzBmMGZlMjMwM2NlMGM0MDc1YjQzIGxlZ2FjeS10cnVuaworMjc4OTYgODdmODI4NzI2ZmU2ZWFiNjE5NTk4ZmVkNjE4YTExY2I5NzhjZTMzNiBsZWdhY3ktdHJ1bmsKKzI3ODk3IDMyNGIyZTdhZjY4MzU3YTBiNzNmOTMyODAxOGUzNWYwNWUwYmQzMzMgbGVnYWN5LXRydW5rCisyNzg5OCBmYTMyZTdhNjVhN2U4ZjhiZWEzM2M5YTVjMjgzNzdjNDBkODJjYTlmIGxlZ2FjeS10cnVuaworMjc4OTkgZGZlNWE2ODk5NzliYTgyM2NmYmVkNzUwZWEyMTUxZTA1YmRmZjUyNiBsZWdhY3ktdHJ1bmsKKzI3OTAwIGFiYjUyZDU2YmE1YWFiYzVmMjA5N2MyYTk3MDFmOGNlNGU2MTJlOGMgbGVnYWN5LXRydW5rCisyNzkwMSAxMmQ4NWI3ODUyNjM2MzRlN2EyNjlkYTcxMTgzMWRkYTUxYmY1NmRlIGxlZ2FjeS10cnVuaworMjc5MDIgN2VjYjZlYjFmZTc3Mzk3NDU3MzY1NmUyYmI0ZjEwN2EyOGYzYjYwZiBsZWdhY3ktdHJ1bmsKKzI3OTAzIDdmYWMxMzNkNTM5ZmZhY2IwYTI1N2E4YjVjNDU0MjY3NGFlODAyM2YgbGVnYWN5LXRydW5rCisyNzkwNCA1NmNlNGM4ZjRmMTY5ZjIxYzljMTc4ZDUxYTAwYjljOWViZGM1ODBmIGxlZ2FjeS10cnVuaworMjc5MDUgNzAyZTExM2QzOWIwZDU1YmRiOGQ4ZWI1YzE2OWFhOTllMGE3OTU3OCBsZWdhY3ktdHJ1bmsKKzI3OTA2IGQ4YmEzNzNiZjJiM2M3MjdiNDE2MzNiMzQzZTcwMTcyNTU1YTMwNmYgbGVnYWN5LXRydW5rCisyNzkwNyA5NGZmMDc0MzgzNzdiODdkNDhiNjU4YjQ2MDdiMjBjNTA5NGJiMzcwIGxlZ2FjeS10cnVuaworMjc5MDggYWUyZmI4ZGEzODYzZTk5NjQyNTlkZTQ4MTdhZTcxYjZiMDZkZTc3MSBsZWdhY3ktdHJ1bmsKKzI3OTA5IDc1ZmQ4NjI5MDFkODNlN2YwMzM2NWFjMmY0ZmRiMzg3ZDY2NDJkZjQgbGVnYWN5LXRydW5rCisyNzkxMCA4YTEwYTcyMWI4NGJjZWVjY2JlYmVhYjM2N2EwYmRkN2QwMjQ3NTRhIGxlZ2FjeS10cnVuaworMjc5MTEgMGNmNGUwNTM5Y2MxZjU4MGMzZjZiZDZhNjQ4MTc0MjUzMjgzMzE4YSBsZWdhY3ktdHJ1bmsKKzI3OTEyIDE3NWNkMGUwODhhYWNjZjkzZDRhMDAwNTZiMzk0NTQzNjljNTM2ZjYgbGVnYWN5LXRydW5rCisyNzkxMyBhZGYwYjIxNWE1MmFlMjU5MDRmZDI4ZDBiNzZlOTczOWViMzg3YmFiIGxlZ2FjeS10cnVuaworMjc5MTQgNWJkMGYyNDFlYzVhZGJiOTI4YTVmMTU3MmUyYzljZDM5YjE0MDcxMyBsZWdhY3ktdHJ1bmsKKzI3OTE1IGE3M2E1ODk4YmY0OTJhNTYxMmJhMWVhZWFjYWU5ZTRhY2EwZjVjOTcgbGVnYWN5LXRydW5rCisyNzkxNiBhNTMyNGIwOTQ5NDJlMzI4NTY3NDRjMDA1Y2RkM2QxYTE1M2U2N2ZmIGxlZ2FjeS10cnVuaworMjc5MTcgM2NiMDU1YWFlNzM5NTdkODAyMjM1MzdiOGIyYzY2NTVlMWYwNjA2YyBsZWdhY3ktdHJ1bmsKKzI3OTE4IDFmMDE3ODcwNTUyZTY1M2JiOGRhMTQxOWJhM2JiODEzNDkxZjY5MTggbGVnYWN5LXRydW5rCisyNzkxOSAzMmY5MmQ3NjZiODEzNmFhYjQzYjYyYjcxNTY4ZDYxOTZmY2UwOWM4IGxlZ2FjeS10cnVuaworMjc5MjAgNjJmNmJhYmVjZTFmYzMyNDU3NGRjMmJlNTI2NmU5YTAzNDUxYmMzZCBsZWdhY3ktdHJ1bmsKKzI3OTIxIDM0NDQwMDViNjUyNzAzZDJmYjQxZGJjOTFhN2E5YjVkNmVlZjE3OWUgbGVnYWN5LXRydW5rCisyNzkyMiA5NWRmODdkNDQ5MjNiZmQ0Y2VmYWEwZDlhNGI1ODU0ODZmZmRhZmYwIGxlZ2FjeS10cnVuaworMjc5MjMgOTUwYzVhMDlhZDk5ODk0MTlkZmFhZmY0YWYzOTAxYzM0ZGE2MmE0NiBsZWdhY3ktdHJ1bmsKKzI3OTI0IDgyYzQ4NjUzODYxYjU2ZThiYzBjMzg2YWEwY2U0NzhmMWU3Y2U1NGMgbGVnYWN5LXRydW5rCisyNzkyNSAxYzI2ZWI3NjgyOTM2ZDAxOTA3NjJhODE0ZTVmY2IxZjg0ZjNkMjhkIGxlZ2FjeS10cnVuaworMjc5MjYgYWYxZmI0ZmVjMmI0NGQ0MjYwZjQwNjlhNzYxNTllYTk4MmIzYTM2MyByZWxlYXNlMjItbWFpbnQKKzI3OTI3IDQxODk1NjA5ZDA4NGNkYTc1MDgzYWM5NjViNmJmNjAwMTNkNmEzMDMgbGVnYWN5LXRydW5rCisyNzkyOCBlOTYxY2QyZjIyZTQyOGE0MWUyNWM3NTExOTk3NDY2MjZiOTliYjBlIGxlZ2FjeS10cnVuaworMjc5MjkgMjhhNWM4YWZhMDU2ZTUyY2ViNzBkZTBhMmRiMWNiMTJjMDFmYjJkMCBsZWdhY3ktdHJ1bmsKKzI3OTMwIDhkNWUwZTNmNjQ0NTAwZjI2ZWY4YjI5NDdkYTE2M2Q2ZDQ3YWQyNTcgbGVnYWN5LXRydW5rCisyNzkzMSAwNmYxZTJmZDA1YmNhYWUxNmYzY2Q4M2ZkMzE2Yzk0YWMyOWY3NGM4IGxlZ2FjeS10cnVuaworMjc5MzIgNjE0MzU4ZTNjNGY2YWVmZjJiMGQ5ODg2Y2RmOTFmZmRlOWIzNjMxYSBsZWdhY3ktdHJ1bmsKKzI3OTMzIGZmOWVmYTY5MjU5NGZiYjgzZmViODVmNzU1NjE3OTQwZDJkZjk0YjAgbGVnYWN5LXRydW5rCisyNzkzNCBkMGQzZjc2MGQwNjc1ZGUzNzcwNjU0MTkxZjI3MmQwYTYzYTYxZTVlIGxlZ2FjeS10cnVuaworMjc5MzUgYzAwZGYyM2U4NTZlNWUyYmQxZGJiMTQ5NDQyMzNkOWM3MzRhOTVhYyBsZWdhY3ktdHJ1bmsKKzI3OTM2IDBiZDUyMWViNzE0ZWFjYTg2ZjhjYTI0NTNhZTRmYjUzNjRiZTFiZTMgbGVnYWN5LXRydW5rCisyNzkzNyBkZDk5M2QwMWU3NDA0MTE4ODM4NDQzY2Q1YzMxZDNhYTQ4Mzk0MWQwIGFzdC1icmFuY2gKKzI3OTM4IGI1YjliMDMzNDQ2OWM0NzZmZWZmMGZiZjZkMmM3NjljMjAyNTI5NDcgYXN0LWJyYW5jaAorMjc5MzkgZDJmNDFjOGE4MWYwZDk1MzhjYTUyYTMyMGNkYTJlMzM4OGVjNjE2OCBsZWdhY3ktdHJ1bmsKKzI3OTQwIDk2ZmRlOTgwOGUxNWM3YTAzM2RhNzNmZWE0Y2FlYjM1YmUzY2M1MmIgYXN0LWJyYW5jaAorMjc5NDEgNDIyODZkMmU0ZDJmZjc1YTYxODI4ZDAxYzRiYWM1YTA5YTJhODJiNiBhc3QtYnJhbmNoCisyNzk0MiA1M2YyMWY0MzQ5NTY2NTZhYzk3OTc5ZmQ0ODlkMjUzZTdiZGZkNjExIGxlZ2FjeS10cnVuaworMjc5NDMgNGYwMDEzNGI1NjFkYjUzNGEzMmY1ZmQ0M2JmYWUyMDc1NmQ5N2ViYSBsZWdhY3ktdHJ1bmsKKzI3OTQ0IGYyMDI1YzY3NmUyNDE1NzI1ZjZkM2ZjYzNmNDMwZTk1ZmJjN2FhNWMgbGVnYWN5LXRydW5rCisyNzk0NSBkODc1MDg5N2M4OTdjYWFiMTE0MzZmOWZkNTAzNzMwMjIxMDk0MTg1IGxlZ2FjeS10cnVuaworMjc5NDYgYTZhNGE5NTFjNjE2Y2U3YTkzZmNmNTdkMjQ1NTEzNTA4ZDdhZmM4NCBsZWdhY3ktdHJ1bmsKKzI3OTQ3IGUyMTM4MWZkODc1NjQxMGFkZDNlNzlkZDZhYWE2ZDA5NDYyMWNiZmMgbGVnYWN5LXRydW5rCisyNzk0OCBjOTgwOGY1MjEyMGFmYjllMjZkNGQ4ZGY2MzgzYzNkOThkOTg1NWNhIGxlZ2FjeS10cnVuaworMjc5NDkgZDVmMTdkODVmNmEwNjU4M2I2YmY3YWM2NmFiMjNiNzkyNmFjMWFhYiBsZWdhY3ktdHJ1bmsKKzI3OTUwIGRmNGE5ZDNhYmM1NmExMmE3YWIwOGQ4NDg0ZWUyZjk4MjkyMDc5YTQgbGVnYWN5LXRydW5rCisyNzk1MSA1ZDZlNDcwY2UwNWNkNWIxODBlMjFmYjQxOTRmZjIzOGM5OWY2NmMzIGxlZ2FjeS10cnVuaworMjc5NTIgYmJhYzRlM2NjYjYyNTIzNjZiOWNiZDkzMGQ0ZjMzYzY2YjFlNDgyMSBsZWdhY3ktdHJ1bmsKKzI3OTUzIDRiZjk0MTQ5ZDIxYzdlNDYzYmE4ZGFiYTFkYjE5MTQ5ZjMwYzY3ODUgbGVnYWN5LXRydW5rCisyNzk1NCBkMjZiNjJmMGM2ZGJjMzUyZjBjMjUwZjViNzQ1MDc0YzkzYmM4MmU5IGxlZ2FjeS10cnVuaworMjc5NTUgZjA1OWQ1NDM1ZDY1MzJlZGU3MDU4Mzg0M2U5MjIzODE3MTk4NzNiMiBsZWdhY3ktdHJ1bmsKKzI3OTU2IGI0MjY5ZmE2N2MzZTljYzRhMGUxZjQ3MzlmMzQyZmFmNjU5OTc1M2IgbGVnYWN5LXRydW5rCisyNzk1NyBiMjVjMzFlMDA4YzhjN2QyMTQ5N2UzZjU2YmFhNjYxZDdlZWQ5OGQ1IGxlZ2FjeS10cnVuaworMjc5NTggOTM0OGZhMjBmMjE0OTIwZDFhZWNiZDNmYmUzMGJjMmFjN2ZjMmY2OSByZWxlYXNlMjItbWFpbnQKKzI3OTU5IDQ3OWY4ZjRlZTRhZDQ1NWFjMzUxZTJjNzIzNWJhMjU0NGVkZGY5MGYgbGVnYWN5LXRydW5rCisyNzk2MCAwYmIzOTg2Y2Y2NTNhNjA1ZWRlZDg2YjlhNTFjYTU5OTM4YzJjMzk4IGxlZ2FjeS10cnVuaworMjc5NjEgYzhkNjk0YjY0MWYxOTI0OWQ5Y2RiYzk5NGFjZTVlMWUwOWIwZTI5OCBsZWdhY3ktdHJ1bmsKKzI3OTYyIGFhYmM5NzkwMmUxMDQ2YWJjYmU1MjM0NTUwOTlkNzU5YTcyYTZlZWUgbGVnYWN5LXRydW5rCisyNzk2MyA3Y2E0NmUwODIwMGRmZWU1M2UyMTZiMTdiZTMxODQ2YTYyZjI1OWY1IHJlbGVhc2UyMi1tYWludAorMjc5NjQgNDU3YTA0NzgzMTgzZjU2ZjcwMTYxOGFlNGQ1OGJhZDVmYmFiNzBkYSBsZWdhY3ktdHJ1bmsKKzI3OTY1IDhjMzhlYTA5MmYyMDdlYmY0NzA5YzBiZWNiNTc5YjEyZjg1MjYwZWMgbGVnYWN5LXRydW5rCisyNzk2NiAxMGRiZGU2OTg3NjY5MjRkZmNkMzc3YTI4NzlkZDJlOGRhOWQ4NjY1IGxlZ2FjeS10cnVuaworMjc5NjcgODFjNTZjYmMxZDVmZjQ4NWU2NDJhN2NhZDg1NWI0ZDU3MDNhMDMyZSBsZWdhY3ktdHJ1bmsKKzI3OTY4IDAwNDg4Y2E5ZTA0Zjc1NGI4NjcxMjEzMjFkY2EzNTgyMTdkZTU1YWUgbGVnYWN5LXRydW5rCisyNzk2OSA4NTExMjFlY2MxMTExN2E0NzgyNTg5M2M1MDk1YzM3ZTNmMDA1NjcyIGxlZ2FjeS10cnVuaworMjc5NzAgODBmZDBkMzYxZTE3ZjYwNGFkYWY2ZjFhNzYwMzBmYWIzMGRmNTZjZCBsZWdhY3ktdHJ1bmsKKzI3OTcxIDkyMGFkMDk5MzBkYzUwOWM5N2RkMmQ2NGRhOGMxYTZkY2QyY2U3MjMgbGVnYWN5LXRydW5rCisyNzk3MiAzZTcxOGMzZDUxZWZhYmQxMzhhMWQxNzJiMDExYTc0ZWQ0MDIzNWE3IGxlZ2FjeS10cnVuaworMjc5NzMgYTMyY2ZmMGM3NWRjYzdlZmI1ZGJlMmRhOWY3YWEzNzNjOGIxZjhjYyBsZWdhY3ktdHJ1bmsKKzI3OTc0IGNjY2JjMmM3OGMwOThiMzc5ZmExMjhjNmU3M2EzNWExZTVhYWU3MDIgbGVnYWN5LXRydW5rCisyNzk3NSAyNDQxMTdhZWJiZDU4NWJlZTllZWFmNWNhMDA0Mzc1ZjZlOTM2ZWYyIGxlZ2FjeS10cnVuaworMjc5NzYgY2EyMGJlMjQzODFmYjMwNWYzMjkxMmY3OTRjY2JlMmRjODc5NmM1YSBsZWdhY3ktdHJ1bmsKKzI3OTc3IDQzODJiMjM3NDM5MDFkZTcyNGVjNTg4YmE5YzdkZWQ1NTQwYWZiNzkgbGVnYWN5LXRydW5rCisyNzk3OCA5YjFiMmI1OGM4NjY2MjM2NzBjYTY0MGI1MTk5ZWRhODUzZDczYzJjIGxlZ2FjeS10cnVuaworMjc5NzkgMDBmOGRkYTE3ZWUyYjUyYWZhZGU5NTE0OGMxMDc5ZTBlZmYxNGRmMiBsZWdhY3ktdHJ1bmsKKzI3OTgwIGVjMmUyODMwMGI3NjU5YzY3OTczM2IwZTcxYThkYTcwNDhiM2Y0NTUgbGVnYWN5LXRydW5rCisyNzk4MSAyNWQ2N2M5NGE2ZDFhMGM3MzM1YzlmZDY4NzU3ZDNmYjk5MTBmODVhIGxlZ2FjeS10cnVuaworMjc5ODIgYzM5YWVkNDVkYmU5OWRjOWEzNDc4YTNkNTk3NDBkMTkwODJjYTkxOSBsZWdhY3ktdHJ1bmsKKzI3OTgzIDlkYmExMjE2N2RiNmY3ZDIyNmZhOTQ1MmVmMzlmNWVhNjZkOTNjNmIgbGVnYWN5LXRydW5rCisyNzk4NCBjYjMwOGExM2ExZmQyMDQ2ODdlYmM0NmYzZGJjYmVhZWExNWI1YWRlIGxlZ2FjeS10cnVuaworMjc5ODUgZmQwNWMyZDM1ZmU3MTkxZjJkYWVkOGVkYmVhODBmYzhhNzk1MzA1NCByZWxlYXNlMjItbWFpbnQKKzI3OTg2IDgzOTMxNWRlMGNhMTBlMmNiNDk4NTEzMTYyNzZjMjBkMjhmMGE0NzMgRFNfUlBDX0JSQU5DSAorMjc5ODcgMWVhNTY5ZWE1MWZkOWRlODAwODc0MTk1MjY4Y2E5YjIxOGRmZWI5YSBEU19SUENfQlJBTkNICisyNzk4OCBlN2I2YmMyYjM1ZTJlNDJiZTg3N2E0ZDMxNmIxN2EzNDk0NDY5NGFjIERTX1JQQ19CUkFOQ0gKKzI3OTg5IDMwNzMzMmYzN2I3ZDkzN2Q0ZmUzYjUxNjU0OWYyMjY4YzJlNjkyMjEgRFNfUlBDX0JSQU5DSAorMjc5OTAgMzI1N2VmZGE0NTEzMzFlN2JjZDNiNjBkMDE3NDA2NTczNWM4MmIzNiBsZWdhY3ktdHJ1bmsKKzI3OTkxIGU0YThlM2U0MjEwZDk3N2U3ZTc5NzY2YzRjNjczNTc0MTE4NDQwMWIgbGVnYWN5LXRydW5rCisyNzk5MiBkYTg4ZTk5MGY5MmNjZDJlNzE4M2Q2Mzc3MWIzNjRjOTlhMTg4N2QzIGxlZ2FjeS10cnVuaworMjc5OTMgNmUwZGVlZWI5Nzg3ZDNiM2Q3ZmI3Mjk3MTU2M2VjNGFiNzFlMTdkNCBsZWdhY3ktdHJ1bmsKKzI3OTk0IGY5MjhmN2VlYTJkNjk4NTg2ZDMwNGZkNTRiNzhhZDlmZjAwZDk5YWMgbGVnYWN5LXRydW5rCisyNzk5NSBhNTA2YWI5YmI0YTQxNDcwNDllZDdkNzQwNWU1OTMyYjE4ZTE3YTRhIGxlZ2FjeS10cnVuaworMjc5OTYgYTAyYWJhNzJjYmIyNDk5ZTVhMzAxNzc2NmQ4NzJmM2IyZGM0MjlkZiBsZWdhY3ktdHJ1bmsKKzI3OTk3IDAwMTY3YjJlY2FjYzVlYmMzNzliNmZmYjUwN2FjNTA1NWM2NDc5MGEgbGVnYWN5LXRydW5rCisyNzk5OCAxMmUxNDYxNzFmM2RjOTA2YjkxYmFlMGM2YzlmNGQxZmJlNGFhNjliIGxlZ2FjeS10cnVuaworMjc5OTkgZDdjYTBhMmNlMDc0NmI4NmIzMTIyNzU2NTc5YmE4MmQ4ZDUxNjUyZCBsZWdhY3ktdHJ1bmsKKzI4MDAwIDU5ZDUzMzU4MGU3MmQ2MTUzYzhjZTRkNjMxN2RhMDU5YzNlYmUxNTAgbGVnYWN5LXRydW5rCisyODAwMSAyNjJhZDE2YjRkZTA5YTMyYjFjMTM0YmMyNTAwMWY3YTAxNzk1NzQxIGxlZ2FjeS10cnVuaworMjgwMDIgZjVlMjljNzMzNmRkODhlYmUxNjBlNDNlNTJhMTZkZTQyMzllMmQyMSBsZWdhY3ktdHJ1bmsKKzI4MDAzIDczYjMwOWNmMDIxMzU1MjljOTlkODRiY2MzZjM0Zjk4NjNiZDE1MTMgbGVnYWN5LXRydW5rCisyODAwNCAyYjA3NjZhZmFhMjIyZDBhYjA3MWViMDdjYThmODI0YjNjYjBhM2M3IGxlZ2FjeS10cnVuaworMjgwMDUgZmQ0NTc1YjU2YTRkZTAxOGU2NzhjZTQ3MzY2ZTI0ZTg4NGY5OGFhZiBsZWdhY3ktdHJ1bmsKKzI4MDA2IDk0MGM0ZjU0NmU3ZjE3ZTc0ODNjZTlkNDQ3OTY1N2MxNjQ4ZjYyM2UgbGVnYWN5LXRydW5rCisyODAwNyAzZTRkNDMyODcyZWE3OTE4ZjM3MzJkMjg1MWVhOGZkMzUxOGEzNDE2IGxlZ2FjeS10cnVuaworMjgwMDggYjY3MDdlMTU5OTA5YTY1Zjg4YzhjN2ZkYzI2Mzk4NWVmMDZlNjhiOCBsZWdhY3ktdHJ1bmsKKzI4MDA5IDQzNGVjNTIzZjMyYzdkNjA2ZGYyODYzMGE4MDQ2NzQwNjY1YmI4ZTMgbGVnYWN5LXRydW5rCisyODAxMCAxM2RlMmY2ZjA3ZGRkYzk4MTkwM2IzNTY4YzQ4NmI0ODRlM2YxYzk0IHJlbGVhc2UyMi1tYWludAorMjgwMTEgNjU0MmRmYTQwZTc3Yzc2MWQwMTQ4MDk2ODZhMjI3YTY5MDFiYWMzYiBsZWdhY3ktdHJ1bmsKKzI4MDEyIDhhNzRmMzM1Y2ZiYWI5ZTEyNzc1NDE3Yjk3MjZlMzk4NWEzNzQ4NTMgbGVnYWN5LXRydW5rCisyODAxMyA3OTFiYmVkYmJiZTllMzc2Y2Y4YmQ0OTRiMjRiODJlNzNhYzc2N2MzIGxlZ2FjeS10cnVuaworMjgwMTQgNDBlYjgwZGM0MjUwMGU5ODBlMThjYWNkM2Y2ODM5YjMxMGY0ODQyYyBsZWdhY3ktdHJ1bmsKKzI4MDE1IDhhMWMwODZhZDIxM2E3NjVkNDFlZTYwOTgwZjUyMmEzMGZhZTE1YWMgbGVnYWN5LXRydW5rCisyODAxNiAzNWRiYTYwMDdhYzM3ZDJmNGQ0ZDhjMjZlZGQ5NDlmN2FmNTkxOTYxIGxlZ2FjeS10cnVuaworMjgwMTcgZGJjMGYyZjExNDE0MjBjZGYyOTc4YjU0MjZlMDQ1ZjJjNmRlM2FkNSBsZWdhY3ktdHJ1bmsKKzI4MDE4IDY0MmRkY2ZlODY0YTRmZWFmYTg4ZWY2YmNmMDEyYjU1ZWE3YjQ5NDggbGVnYWN5LXRydW5rCisyODAxOSBiNjRkYjU1MDk3MmMxNDBmNDRhMWZmZGE5ZWU5Y2Y2NTc5NWNkODZhIGxlZ2FjeS10cnVuaworMjgwMjAgNzM1NDQxZmRhYjdlNDc0ZmU0NTBhMTZkOGE2NmI0NDU3OTVlMDdhNyBsZWdhY3ktdHJ1bmsKKzI4MDIxIDgwYjEyOTQ0YTQyYjBhZjcxNTA1NzUyMjg2Yjg4ODg5MDFiY2U5M2YgcmVsZWFzZTIyLW1haW50CisyODAyMiBjOWQyNDI4YTZhODVlZTg4NWVlZTRhODI4OWEyMWE2ODkwZGYyODQ3IGxlZ2FjeS10cnVuaworMjgwMjMgMTFiMjYyZmVkNTgwOWNjYzQ1NDg1MmY3ZDU0YmM2ZWY3MGE5MGI4NCBEU19SUENfQlJBTkNICisyODAyNCBmYjQ1OTFjMDQ3MGUyODAwZmM4ODc1NzRlMWRmZTUwNWFiZWYzNWYxIERTX1JQQ19CUkFOQ0gKKzI4MDI1IGQ2ZTVlOWExYmNhMDhkNWM0MjcyMmZmYzM1ODU4YmEyNzI3ZjEzNGQgRFNfUlBDX0JSQU5DSAorMjgwMjYgYjQ3YTZhMmExZTU2MGMyOTExZTYwZDc4MjZiNzU4NjljMWQ2NmZlNCBEU19SUENfQlJBTkNICisyODAyNyAxODY5Y2VjZDM5MzM0OTIxMDRkZmMzODMzMTc2NzJjMmRkM2U3OGUyIERTX1JQQ19CUkFOQ0gKKzI4MDI4IGY3MzI1OTc2ODQyNjdhOWJiYjRmOTBkMDM2YjgyMzFiOGNmYjljN2QgbGVnYWN5LXRydW5rCisyODAyOSA2NDQ1ZTQ0ZmNiNzgzNjBkNzI1ZTljODBhNWYzZDQwYmY1MmEwZWU2IGxlZ2FjeS10cnVuaworMjgwMzAgNDgyYzk0MWQ1OTNmODYxYzRmZjUxYWE1OWE0ZTI5M2UzZjc3ZjY1MCBsZWdhY3ktdHJ1bmsKKzI4MDMxIGYzZTY5YjlhY2M0MDZiM2UxZGYwZDE0MzIwNDIzMjEyMjAyM2E1MjQgbGVnYWN5LXRydW5rCisyODAzMiBkZGNiOWNlMDQ1NDY0OTYzMmRiMjhmYjY2NDY0MzM0N2E3NmFjNWJlIGxlZ2FjeS10cnVuaworMjgwMzMgMGRmOWE5YzA4YzEzOWU5NjFkM2YyMjA4ZDJlMTMxNjA4NDA5Njg5OCBsZWdhY3ktdHJ1bmsKKzI4MDM0IDdmODk2N2Y1OWNmODJmMGYyMjBkN2RlM2RjY2U3OGM3YWYxMTFhNzAgbGVnYWN5LXRydW5rCisyODAzNSA0M2NhYTIxMmI5NTljZjdiMGE5YTg1NzA0Y2NiZmIzMjQ1MTU5MjEwIGxlZ2FjeS10cnVuaworMjgwMzYgMTEwYzZlZGFmNjJmMzg1OGU0ZDYxMWE2ZTgyYTk0NDg5NDdlZTdkYSBsZWdhY3ktdHJ1bmsKKzI4MDM3IGY2YTk3Y2QzYmEyNGI0NTU3ZTA3M2VlMGJhMGUwYjY5ZWJlOWVjMmUgcmVsZWFzZTIyLW1haW50CisyODAzOCAxZWJjMTI4ZTQ4NDJjMjg0YTJjNGM0YjRmNzc3Y2I2NGIzNjVjYTU3IGxlZ2FjeS10cnVuaworMjgwMzkgNzc4MDkzNTMzYTQ2Mzk5YWJiM2IxMDdmOGI0OTE0MDZhNzlhNGY2OCBsZWdhY3ktdHJ1bmsKKzI4MDQwIDdhZTNkNzQ4NjgwMWU3ZmJlZmNjZDc3NGJiODM0NjBkNjFjMzk2MzcgbGVnYWN5LXRydW5rCisyODA0MSBkYTkwNjUzZmMyYzZlYmNlYjBjMmQ0ZWY4NzBiNmJjNGNjZmUzZDA3IHJlbGVhc2UyMi1tYWludAorMjgwNDIgZjMzYzAxY2M0MTRjODk3NTQ1NjQyMDk0ZTliZDQ2ZWVjMDdiOWU5MSBsZWdhY3ktdHJ1bmsKKzI4MDQzIGE5ZjI1NjdjMmY4Mzc2NTgyMTdlNmRjYTMyNzU3ZWIxYWY5OTYxYmMgbGVnYWN5LXRydW5rCisyODA0NCBmYjFkMGU1NWIxNTIxZDZiYWJkYzY5OGIxOGIyMzk2ZTBhZGZjNTU2IGxlZ2FjeS10cnVuaworMjgwNDUgYmVlZDFjMWU3YzZkZjY3NzE3MzNmZjJlMjQ5YTI4YzAyMmM1ZTgwNSByZWxlYXNlMjItbWFpbnQKKzI4MDQ2IDBkOTg2NjBlMzY1Mzk1ZGRkOTQ1Y2IxNzYzYTlkZWVkYmZlYzY3ZTAgbGVnYWN5LXRydW5rCisyODA0NyBhMGViOGUzODJkNzRjYjEyMmI3YjFjYTQ3MDAyYzNjYjU4MmFiNzk5IGxlZ2FjeS10cnVuaworMjgwNDggMjdkYTJiODFhNDk2YTkyNWUxMTFiNDViOGU3ZjM2NzhlOGY3YzAyYSByZWxlYXNlMjItbWFpbnQKKzI4MDQ5IDdiYTNlNWZiYWFkODBjMzMwYWRkYzdjNWY2Njg3ZjQzZGI0NWMyYWQgbGVnYWN5LXRydW5rCisyODA1MCA4Y2YwMDMzOGI3MjhkMzg3ZGNjYzEwOWUxMzRmYzgxZGU5MzczYmIxIGxlZ2FjeS10cnVuaworMjgwNTEgNGIzNDJlZDMwOWUwMmNmOWI2YmIyMmE3N2QzNmU5MDgzZmE2ZDU1MCBsZWdhY3ktdHJ1bmsKKzI4MDUyIDY5N2QyMjNhMmY3NjY2MDM2NmQzMjUyZDdmYzZmNWQ3Mjg4NjNkYzEgbGVnYWN5LXRydW5rCisyODA1MyBlZGY3NTcyMTNhOTJkYjAzY2Y4OGU3MTA5YWZlMGM5YmRlZDdhNTRmIGxlZ2FjeS10cnVuaworMjgwNTQgMjI0YzUxNmJjMTFmMWUxNDQ2ZWM3M2Q0YjkzMzhiMjAwZGYzZjA4ZSBsZWdhY3ktdHJ1bmsKKzI4MDU1IDlkODRhNWJkNzY3ZmE4ZDA2NTg2MWYyNDhlNDA5ZTQ1MjgxN2IzOTcgbGVnYWN5LXRydW5rCisyODA1NiBhYjVlZWEyZGQzYzAwYzA4ZDE0MTRkYmFmMThjYjBkMmRmZDg0ZDQ3IGxlZ2FjeS10cnVuaworMjgwNTcgZmQxYjVlZmEwY2UzZWFjYzg5MzJjODUwNzIxZDQ0ZDExMjBlMjZkYSByZWxlYXNlMjItbWFpbnQKKzI4MDU4IDFhYjI3YzE3NzBkZjViODY5YjdkZTdjYTA1MGIwMTAxMWI1OWYwZmIgbGVnYWN5LXRydW5rCisyODA1OSBmNjcyZTFkYmFkOTIyNDExYjQzMmM4MjgyMTEzNmExYzg1NWZlZDMzIGxlZ2FjeS10cnVuaworMjgwNjAgMThjYTRlNzgzZjk4N2JkMzNhNmM1MmRkMmVmNTdkY2I2MGExZmZhOCBsZWdhY3ktdHJ1bmsKKzI4MDYxIGU2MWIxMThlOWNhYjI5MjZjYjU0ZWJmZTIwYTRkZDljMjk0YjkyYTQgbGVnYWN5LXRydW5rCisyODA2MiA5NTU5MTRiMGE0ZDY0NmU3OGIxYWI4MGQ3Y2QwNmUyMjYwNWNkNDU2IGxlZ2FjeS10cnVuaworMjgwNjMgOGJjMjY1YjA4NGQ5N2MxZjdjZmYzYmZlNGIyMTE4ZjFlYTQ5YjM3MCBsZWdhY3ktdHJ1bmsKKzI4MDY0IDU5ZDkyMjg3NzhhZDYzZThiZDc2OGYwMmE2NWQ3ZmIxY2M0NTA2NjYgbGVnYWN5LXRydW5rCisyODA2NSA3MjkyODdmN2ZjMmU1ZmFiMDA0MTUyOWQ5NWJkNDBkYzA1Nzg2MDZmIHJlbGVhc2UyMi1tYWludAorMjgwNjYgMmY0MTFmMmQ3OTFhZGU3Njk2NTAwZGZhNzk2NGMxYThlMjc0NjA1OSBsZWdhY3ktdHJ1bmsKKzI4MDY3IGE2MTg5M2Q3Y2VmMjUwY2QzNGRjMjE0OGMwZmY4ODkxOGQ4ZTA1YzUgbGVnYWN5LXRydW5rCisyODA2OCBiMjY1ZTc2YmFiODgzMjkzNDFiYTg0NDdhNTJlOWM5ODNiODc2NTNlIGxlZ2FjeS10cnVuaworMjgwNjkgNmE2ZDAyYmUzMjFjY2QxMDE4MjM3M2M1MGI5MmUwNTJiNmE3YzYyOCBsZWdhY3ktdHJ1bmsKKzI4MDcwIGQyNWNmOTRkMjBiMWVhZWViMDg4OGRjNjIxYzIyNzA5NGMxMzhmNGYgbGVnYWN5LXRydW5rCisyODA3MSA0ZmJmNTM0MjExYjk3Yzg4MmMwOTg0NGJjMDA0YjE2ODBhZjExZWM5IGxlZ2FjeS10cnVuaworMjgwNzIgNTc5ZjA5YzBmZGJjZDkyYWRkODY2M2M0MmI3NjAzMWM2MDMyZjU1MiByZWxlYXNlMjItbWFpbnQKKzI4MDczIGJkYmE3MmZmZDIxYmY5ZDYyNjc0YmIxMDYzYmI3ZDdmNjFkNjZhNGIgcmVsZWFzZTIxLW1haW50CisyODA3NCA5NWM0NjIzZjgxODUwOGYyZmI5NDRmMGE3MmYzMGE1MGQyYTc0MDJlIGxlZ2FjeS10cnVuaworMjgwNzUgNzBiNjc1MzExN2NjMDFiZDdmNzc0MjQ3NmEzOGJlMGNkOWJhMDRiOCByZWxlYXNlMjEtbWFpbnQKKzI4MDc2IDY0N2Y5MzY3NzUwZTg3NDAxMzFjNDRkMWNhZWQ2YTk4ZDg1Zjc4N2UgcmVsZWFzZTIyLW1haW50CisyODA3NyA2ODhlZWZiYTA4NjliYjVkM2YyYzgxNmE1MDBlYWMyMDM1MjAwNTBkIHJlbGVhc2UyMS1tYWludAorMjgwNzggMzc5NmQzOWYwYjgwYzgxYzg1ZWRjOTdjNmQ0YjBhOWI5ZmM5NTdlNCBsZWdhY3ktdHJ1bmsKKzI4MDc5IDMyNjliZGQ2NTk4OGVmZjg5NzYzNzA4NGE4MzFhY2ViNWJlNDNhOTkgbGVnYWN5LXRydW5rCisyODA4MCBmZWMwYjBhZWYxNGJhNDg3ZTA2Njg2NGE4NmY0ZWIzOTVmODM4MTAzIGxlZ2FjeS10cnVuaworMjgwODEgOTgwNzY3YzZjZDk3NWI2MTdlM2EwN2NmMWI2ZmQ4ZmEzYTA1ZDljMiBsZWdhY3ktdHJ1bmsKKzI4MDgyIDQ3OWNiNWZmMmU2MDljNWEyMTdhODI5NDBiZmY5MzkzYWI3YzIzMTkgbGVnYWN5LXRydW5rCisyODA4MyA3MWRjYTdjNzZmYTIyNzkyYmU5M2ZiOTBjNGM0YmU3ZTkwOTI1YzFjIGxlZ2FjeS10cnVuaworMjgwODQgN2IxMGU3ZmY3OTRkYzUwMDBmYWVjYTFmMzA2MDJmZTFlZDgxYjI3MCBsZWdhY3ktdHJ1bmsKKzI4MDg1IDZkMjZkNGI5YzVhMzZjMThlNTUwNzM5M2IwZTg3ODJlZGI1MjYzYWEgbGVnYWN5LXRydW5rCisyODA4NiBhZWUxOGVhM2QyODQ3NjUzNTA3ZjJiMWFiMTY5ZTQxOGEzZGY0MTFhIGxlZ2FjeS10cnVuaworMjgwODcgMDQ5MmFkMWFjNjIzNWQxZmFmM2E4NDM5MjgwNWNjYzJhZWU1MTg1MyBsZWdhY3ktdHJ1bmsKKzI4MDg4IDU2NzcwNGJmYTU5NWE1YWI3YjRjZTcxYTk2YzQxNjJiMjQwMTc0MjMgbGVnYWN5LXRydW5rCisyODA4OSAyNzRlNDJhNjkxZTBjODQzNjUzZmY4YjJhMjRjOWM2YjJjOTQ5Y2QwIGxlZ2FjeS10cnVuaworMjgwOTAgMzY0OTNhN2M2MjUzOWJjYTk5NWE5M2IxMzY3MWY0YzRjZjkzMDUzNiBsZWdhY3ktdHJ1bmsKKzI4MDkxIGJlNDdkYjM4MzA3ZTE4MzFhNmI0ZjQ3YzZhZTYyODFlNWJhODExMTEgbGVnYWN5LXRydW5rCisyODA5MiA4YjQ3MDI4MTY0NWU2MDFkZjMyZGQwZGQ4NjVlN2QwMWMyMDBiZjRkIGxlZ2FjeS10cnVuaworMjgwOTMgNzM0Zjg5YzE5NGRkOWYxMDNlYzMwNGJhY2Q5ZWY4OGM0MzVlZjljZSByZWxlYXNlMjItbWFpbnQKKzI4MDk0IGRlYmNmNzIwNjdmMDU5NjdiNWQ3NTY0N2Q2MzQ0ZDFmMDk4MGJmMDYgbGVnYWN5LXRydW5rCisyODA5NSA5YzZmMGUxOTk5MDM1YTRmMTQ3NTUyNjI3MjE1ZDc1ZGZhNzRkNjhhIGxlZ2FjeS10cnVuaworMjgwOTYgMGNkYjZlOWJjYjUyMTRkYjM4NzBlNWI4YTZhMTQ1MmVkMDhjMzdhZSBsZWdhY3ktdHJ1bmsKKzI4MDk3IGEyOGM5YzMzNmFiNzExOTE3MWRiN2U1ZDZjYzM0NTkwMzVjOWQ1YTggbGVnYWN5LXRydW5rCisyODA5OCBlNzFiYmJhMGEwYjk3NjY4Yzc2ODQwZjRkNmEzMGRlOWJkYjNkNGE2IGxlZ2FjeS10cnVuaworMjgwOTkgODJlM2ZkYjI4MTY0NTBjMmNiNWVkZWQwZmM2ODBjOGQ1Mjk5YzAxMCBsZWdhY3ktdHJ1bmsKKzI4MTAwIGE5ODlhMmVhYTJhYzEwOTI1NTg0YjBkMjNmZjc4MzdkYzE0MDcyMTkgbGVnYWN5LXRydW5rCisyODEwMSBiYTMwMzhhMjdjMWUzOWI3NTVmNDhhZGViYTZjMTU2MzJiZGU5NTFhIGxlZ2FjeS10cnVuaworMjgxMDIgZWVmNzNlODgyM2Q1YWVmOTFkNDliN2VjMWM3MDFmOTc4NzNkOTMyNyBsZWdhY3ktdHJ1bmsKKzI4MTAzIDMxYjlkMzY5ODYxZDg0OTk3ZDk1YmQxYmE0NTQwMmI3NTFiZTNjMWYgbGVnYWN5LXRydW5rCisyODEwNCA4MGM3YTgyZDYxNDQ4OWU5NDUwNGYxNjhiYWQ2OGZmZjE4MGQ2MDNmIGxlZ2FjeS10cnVuaworMjgxMDUgMzQxMjhjY2YyZWU2MTkzYjJmZjQ3ZWFiOGZhNGVmM2U3MTIxZTllZiBsZWdhY3ktdHJ1bmsKKzI4MTA2IGEyZjliYjU0MjMxYjEzYTliYzczN2Y1YTEwNjA1ZTg5ZTI1MmEwMTUgbGVnYWN5LXRydW5rCisyODEwNyA2ZWI5NTg3MTZkOTdjODQwY2VkMmJlY2Q0OTM0MzM1MjgxMDdkYjNmIGxlZ2FjeS10cnVuaworMjgxMDggNDE4MWUzYTQyZDBhMjNkYWJkYTBmN2NmODlhMDlkMTQxMmIwNTBjNiBsZWdhY3ktdHJ1bmsKKzI4MTA5IDU2NGFiYjk4ZGViODljNGUyOWQ5YTdjNjlmYWI1NWIyODNiN2I4MzUgcmVsZWFzZTIyLW1haW50CisyODExMCBlNWJjNDcwZDFkMWUxZmUwNzY2Njg2YzI0NDk1YTBhNjZjYWY0YTllIGxlZ2FjeS10cnVuaworMjgxMTEgMGQ0NmU0Yjg5Y2FlN2E0ZWExZTNlZDRiMmFjOWVkMDZkNTE2YWQ0NSByZWxlYXNlMjItbWFpbnQKKzI4MTEyIDJkY2Q0ZDkyODE0NzAzZjk5MWRmNGVhNjhmZjJiMWQ4ZGQ3ZTE0MzggbGVnYWN5LXRydW5rCisyODExMyBhYThiZDBkYzRmOGExMDZmMDY4NDBhMzdhZTlhNTk0MjdlNGY3YzA4IGxlZ2FjeS10cnVuaworMjgxMTQgNmM5NjU4N2ExOTdmOWNkYTQzMmI4ZjUyNTRiZmVlMGJhNWI0ZDlmNSBsZWdhY3ktdHJ1bmsKKzI4MTE1IDExYzcwMTAzODgwNTY1MTkzZWE0YzVmMDc5ZTdiMjM2NmRkMmYxZTkgbGVnYWN5LXRydW5rCisyODExNiA0MDY3ODhjYWVmNmYyNmVjZjBkNTA3MWJmOTlmZWJlYzE2NDc0YTg0IGxlZ2FjeS10cnVuaworMjgxMTcgOTQyOWMzY2Y0MmE3MTJiZjQwYTBiOGYxNjhmYWQwZTg1ZjE4N2ZmYyBsZWdhY3ktdHJ1bmsKKzI4MTE4IGRiMjdhNDJjY2Y0OGFjMzBlYWExNzJiMTQyZGYyNjg4Mjk5MmFlNWYgbGVnYWN5LXRydW5rCisyODExOSA3NDE0M2RiNmFlMmY5N2ZiNmE1NDBhZjc1OGVhNjA1N2RkZTI2NGRjIGxlZ2FjeS10cnVuaworMjgxMjAgNGM3NDZiYTI0ZGUyMWM4MTBiNTBhNzlhYmYwNTdjZTMxNjg0ZWVlOSBsZWdhY3ktdHJ1bmsKKzI4MTIxIDM0M2U2NGM5MmViMjhlMDliNWUwYzc0OTQzOTYyMjM5YmYwY2ZjNDQgbGVnYWN5LXRydW5rCisyODEyMiAxZDNkOTgwYTMxODYwNDFjMDYyMzk2YjljZDU3Zjk5MjZhYTdiOWRlIGxlZ2FjeS10cnVuaworMjgxMjMgMTI5ZDhkMmUxOTA0YzcyNjk0NGMxZDU5YzcxY2MyZTZlMDdhNWM3NiBsZWdhY3ktdHJ1bmsKKzI4MTI0IDVjNzczMTZiMjFmNzBkNzU4Y2RiNjVjNWQ4OGEyMGZmMjNjODVkMTggbGVnYWN5LXRydW5rCisyODEyNSAzNzRmODc5YzVkOGJkOTdmMGFjNGJiZjljYzc1MWJhNDQ2YTE0NmQ1IGxlZ2FjeS10cnVuaworMjgxMjYgMmQzYzRhN2FlYzBhNzA2ZGY1MjUyYjY0NTQ4M2I0YjM4OWMxMjE5OSBsZWdhY3ktdHJ1bmsKKzI4MTI3IDUxMGU3M2FlM2U5ZTlkMTIzZWEzMzYwMmVlZjE0OTM3NjEzZmU2MTggbGVnYWN5LXRydW5rCisyODEyOCA5ZTJmNTM5NjM0ZTgwYTFlZDYzY2M4NjFlMDkxMmEwODBkNGVlMGJiIHJlbGVhc2UyMi1tYWludAorMjgxMjkgMTEyNWQ5NDg5ZGZhNDAwN2JlNjdhYmY3Nzk4ODg4NWFlNzUzZThiYiBsZWdhY3ktdHJ1bmsKKzI4MTMwIDY5MDc5YWM3YzUxMmU1NjBhODFjZTQwNzJhYjYzZWI2Y2IzMDRiMzUgbGVnYWN5LXRydW5rCisyODEzMSBiYmQ1ZjhhZjU4OGFjMTBjZjE0ZDMwYWY3MDk2OTQwZmE1ZDk2NzNkIGxlZ2FjeS10cnVuaworMjgxMzIgYjU2NDBlNzRhYTVjMjhiZWZjMTliY2ZmY2JiNDQ2YTg5MTUyNzU3ZSBsZWdhY3ktdHJ1bmsKKzI4MTMzIDNiOGE3MDdiNDFjNDYyZjBkOTBlNmZlMDliMGQzZGVjN2QwNjk1Y2IgbGVnYWN5LXRydW5rCisyODEzNCBiMmY3ZGY0Njc3MjIxY2NhZGFkYzU5MzY1YWVhY2RmMGU4NWRmNDcyIGxlZ2FjeS10cnVuaworMjgxMzUgOGQ4NTBkNThmMTA5YzdmNTdlZDQ3YWMyYzg3MDE1OGNjMGM1ZGU5NSBsZWdhY3ktdHJ1bmsKKzI4MTM2IGQ3MTVjYTlkYjNhYWEyZDE0YzA4NmEyOTUxZmYyYWM4MzNjOGRmNjEgbGVnYWN5LXRydW5rCisyODEzNyAwOWZmMGVkMzNlZmNiOTE5N2VhODRiN2U0Y2ZkOWIyODJlNjcwZjYxIGxlZ2FjeS10cnVuaworMjgxMzggYjAyNzNmMzk3Y2YxMjJkYmEyMzJhOWMzMjlmZWQwYTMxZTIxMDQ1ZiBsZWdhY3ktdHJ1bmsKKzI4MTM5IDQ5MjMxNjBlMDcwN2Y3YzNlNGZlMDFjNTk2ZDVlNTRmM2IwMWMwMWMgbGVnYWN5LXRydW5rCisyODE0MCBiMGQ1ZmI1NzdhYjYwMWNkYTM4YmFlZjQyNGZhYWY5ODk0ZTI1YjM2IGxlZ2FjeS10cnVuaworMjgxNDEgZmYwNWVlZjNhNmQxZWIwZDBhYzUwMzhkMWU4ZjEwNjEzMzY0YTgyMyBsZWdhY3ktdHJ1bmsKKzI4MTQyIGVhYTg3NjMyYjFlOGVkZjhlMmJlODNmMzNlOTAyZDI0MmRkZTZkYzcgbGVnYWN5LXRydW5rCisyODE0MyA1NjU2MDliYjhkODk4ZDNjMzc1YjYxZTU4Mzg5ODQzOWVjZjMwNjM4IGxlZ2FjeS10cnVuaworMjgxNDQgZWVjNjgzMjgxOGEzNzAwOWU4ZDcwYjNiYjkzYjRhMDRmNTUzYTI5ZSBsZWdhY3ktdHJ1bmsKKzI4MTQ1IDEwMzkxZDU4ZDE4NDExZTM3NjQwMjQyNjgwY2YwZGI4ZWYwMmMwM2MgbGVnYWN5LXRydW5rCisyODE0NiBlNzU2ODY3YWNlODEwYzhmYmNmNTk5NTkwYzI3N2UyNmMxZWEwMWYzIHJlbGVhc2UyMi1tYWludAorMjgxNDcgYzY1OWYwNGVlNDk5MzY4ZDU0NjM2MDE1ZDBjZWRhM2ViNTQzMWZiMCBsZWdhY3ktdHJ1bmsKKzI4MTQ4IDZkOTk3NGI0NWZlYTEzMzM5NDlkYWQ2NjZmNTY5Y2ViYzYxODllZGUgbGVnYWN5LXRydW5rCisyODE0OSAxYTMyNzBlMjZjMTYyZjQ5OWEwZjE2NDM1M2Y4NjkyMmYxZjkyMmE2IHJlbGVhc2UyMi1tYWludAorMjgxNTAgYmEwMzVmNGI0N2MxNTYwMmYxMTU0MDdjNDY1Mzc2NzhjYWFhMGMzZSBsZWdhY3ktdHJ1bmsKKzI4MTUxIDQ5MTY5ZDAwYWIxODIyNDNjOTRlYzlmN2QwYmVmMjZkYmE0OGYxNjcgbGVnYWN5LXRydW5rCisyODE1MiAxOWUwMTBmNzkyYTM4M2UyZWNiNzM1OWRlMDE4MTg5OGJmNzcyMTMzIGxlZ2FjeS10cnVuaworMjgxNTMgMThjMzViYjVmZTA3NDNmZjU3MWM4MDI2ZDRlN2I5YTcxOTlhYTg1NCBsZWdhY3ktdHJ1bmsKKzI4MTU0IGE0MzUxOTg4N2IxNzk0ZDcwMTdlMWE3MTc4YmNhZTc5YWJiOTA0ODYgbGVnYWN5LXRydW5rCisyODE1NSBjMjQ4YmVlNTJkYzZhNzhlOWQ4YWEwNjEzOTk1Y2U0ZGIzOWUzZTdkIGxlZ2FjeS10cnVuaworMjgxNTYgZGJmNmU1NjMwMjNiOWQ0ZjY3NTViN2VmZWM2ZGQyYTU2NTA0NmU1MiBsZWdhY3ktdHJ1bmsKKzI4MTU3IGMxZWI2Njg1MjVlMTFjZTQ3ZmE5NDdiMTAwOTkwZDM0YjAzYzQ4OWEgbGVnYWN5LXRydW5rCisyODE1OCAyN2FlOTc4YmVlNTg1NzM0MjlhOTc2NjIxMGQwZDUzODljMGU5ODAyIGxlZ2FjeS10cnVuaworMjgxNTkgOGFiMzAzMzc1YjMwNWU4Mzg4NTQ3ZTFkNGM3ZWNhODQ2ODdkZTc1NCBsZWdhY3ktdHJ1bmsKKzI4MTYwIGM4OGQwODQ4YzVjOTMwYzI2YzAwZGJiMTFmNTgzMTE4MjBjOWY3YzEgbGVnYWN5LXRydW5rCisyODE2MSA5YzI1YWExM2MzNmUxYzkyYjkwNGVmMDMwYjc4YmQ2NTc3Yzg3MDZlIGxlZ2FjeS10cnVuaworMjgxNjIgYjUwNDgzNTY4NWMzNGVhNzNlNzIwZTY2ODAwMzhhOGRiODkyZDgyZCBsZWdhY3ktdHJ1bmsKKzI4MTYzIDI3ZWNhNDc2NjkzN2FlZjRjYmUyZmI5ZWRkOTliNTYyMzQ4OWQwNGIgbGVnYWN5LXRydW5rCisyODE2NCAzZDIzMzUwOTRiODhjMTdmYTZiNWY2ZDA4NTQ5ZGNjNDJiMjVmYjhkIGxlZ2FjeS10cnVuaworMjgxNjUgZGNmYWJlNjVjMjJlNWIyYjY4Y2UxNTUzYWUwNzI0OWU1ZTlmOGJjMyBsZWdhY3ktdHJ1bmsKKzI4MTY2IGUwNDMxZDljNDQ3NDIwMjdmNzI4YjVjMzI2MGViYjliODQ5NGM1YjIgbGVnYWN5LXRydW5rCisyODE2NyBjY2Y2NmExYWEwYjg0NDI5ZDU1NDhkMmI1M2Y2MDE5ZDUxNzJhZDgwIGxlZ2FjeS10cnVuaworMjgxNjggNWVkN2M5NzdkMmE5NmRiNmQ0MDBjZjlmYTVkNmU0ODdkMWVlM2MyMiBsZWdhY3ktdHJ1bmsKKzI4MTY5IGYwYmQ1Y2Q0YjE3MDZiMzM5ZjBhMTM3ZTRhZWYyOWU2YzYwOTBjMWIgbGVnYWN5LXRydW5rCisyODE3MCA0Y2FmZDlkYmM4YjQ3OTE2ZTkyMzU2NDIzOGFhOTM2ZWJhMzA5MDllIGxlZ2FjeS10cnVuaworMjgxNzEgNThlYTQyMGRkYzVlZWFkZTBlMmZmYmNiYTA0YmMyNGEwZjMzZjQ1NyBsZWdhY3ktdHJ1bmsKKzI4MTcyIDI3MjIwNTdmZmU4NjAxMDk5NzQ2MTBhYzYxNmM2YjQzNjI2MmI5ZWEgbGVnYWN5LXRydW5rCisyODE3MyBhY2IyNTg1NDVhNWMxMjU0NmI0NTE5YzAzNDU0NDM2OTI5NjdhZDQzIHJlbGVhc2UyMi1tYWludAorMjgxNzQgMGFmYWNmNWRjNDJlYWJmOGIwYzI5OWQwMTdlMjA4YTkyMzAzZTY1ZSBsZWdhY3ktdHJ1bmsKKzI4MTc1IGQ3NWJkOWU1YzRkOWMzZDg0ZDUzMTg1MDE4ZDhjZTRhMTY4NTE1MTQgbGVnYWN5LXRydW5rCisyODE3NiAxODI0OTgzZmQ5NGE3NDQ4NDhhMzJkNDJjOWEwYTNmNTMzZTUxZmVlIGxlZ2FjeS10cnVuaworMjgxNzcgYzYwZTg5NWQxMTI1YjM0ZGIyODEzMzRjODVjMWU5ZGRlZDExNjk4OSBsZWdhY3ktdHJ1bmsKKzI4MTc4IDgwMWE0NGFiMmFhZTY3MjE4OWRjNzhlNDNlM2UzYzY1YzlhZmIxYmYgbGVnYWN5LXRydW5rCisyODE3OSA5ZTdlYzJmNWExYmQzNzNlYmI4MWJjYjgyYjBlMTU2MTBiZmI0YjYzIGxlZ2FjeS10cnVuaworMjgxODAgNmM2ZGY2OTIzNmIxZDI5NWE4NjZjYzllMjdlZGJhMDYzM2IzODdmZiBsZWdhY3ktdHJ1bmsKKzI4MTgxIGZlMzQ3MmYyZjhlYjcyMmQ1ZWUxMzg5MWYwZmY4ZDlkODlkNzNmZDIgbGVnYWN5LXRydW5rCisyODE4MiA2OTZhMjg0NTY5ZTY0Y2I4YTEwZjZkMzdmOWEzNjc3YzVlYWRlMTkxIGxlZ2FjeS10cnVuaworMjgxODMgZjFkMThmY2Q1NmU2OTYyODU5OTJkZDI2MWRkMjc2MmMxYjUwZDIzNCBsZWdhY3ktdHJ1bmsKKzI4MTg0IDUzY2I3MTYzODg0MWU2ZGQ4ODM5NTI2ZDc1ZTgyNTg5ZGY1MjkyNWUgbGVnYWN5LXRydW5rCisyODE4NSAxZmUwNjY1NWM1MGM5NTllM2VlYWQ0ODE0M2ViNjg1ZTFjYmUxZWVkIGxlZ2FjeS10cnVuaworMjgxODYgZmFlMzg2ZDVlMzU0NTZlNWFiMTllMTlkMzE4ZjliMWExNWQ2YWE0ZSByZWxlYXNlMjItbWFpbnQKKzI4MTg3IGMyMzg1M2Y3ZWJlYjllMDVjZWIzNThjYmVhMTFhYTAwYzFhNmUwNmQgbGVnYWN5LXRydW5rCisyODE4OCAwMWQ2YzUxNDZmZjlhZWNhMmZmMzEwNzRjZGRlZjBlYjViZTgwMzcyIGxlZ2FjeS10cnVuaworMjgxODkgY2VjNDFlMzc2MWFjM2U0MzQ4YzVjZmQ4MzcxZDY1MmFkNjNhMWEzMCBsZWdhY3ktdHJ1bmsKKzI4MTkwIDRkZTlhYzBlNDE3MzY2MWJlMWYxZGUzMjExNDY5Y2IwZmZlMWEzNDYgbGVnYWN5LXRydW5rCisyODE5MSBmMGQ2M2FhMWRmYzdlOTA5YTJkMDNhYTI2YTcwOGRmM2U0YjYzZGJmIGxlZ2FjeS10cnVuaworMjgxOTIgMGY2MWUwNzQxNDdmYjFhYWZjYTI0NzgzNWE3NzBkMjAwZGE2NjQxMiByZWxlYXNlMjItbWFpbnQKKzI4MTkzIDFmZDM4OTAwZjUzYjg2MTBlZTlmMjBmZmIzNmFhNDAxZjhjNThkMzUgbGVnYWN5LXRydW5rCisyODE5NCBmY2JkZTIyNjU0NWNjMzhjMjYzYjVjMzc1NDE1MDMzNjVjNDQ3ZjVjIGxlZ2FjeS10cnVuaworMjgxOTUgODI1OTQ4YzIxZjBkYzEzODg1Y2I4MTBlYjMyMTQzNjU2NTQzYjYzYiBsZWdhY3ktdHJ1bmsKKzI4MTk2IGRiZjRjYzU2MDg5ODgzZTA3OWM3MDhlM2U2OGQ2NzdkZjJlMzYyNzkgbGVnYWN5LXRydW5rCisyODE5NyA0YzQ2YjNlZGFhNTg3YzBlMWY3NTBiMzk0YjkwMTJkOTgzM2Q5ZDcwIGxlZ2FjeS10cnVuaworMjgxOTggMTk1MWIyYzY2MDQ0MzhiMTMyZmIxODM3OGY4ZjIwMmYwZTgzOWZmMyBsZWdhY3ktdHJ1bmsKKzI4MTk5IDFjNjNkMzA4MjY1NjllYTE3NDY1YjkwNWUxODg2OWNiN2IxMmQxYTAgbGVnYWN5LXRydW5rCisyODIwMCA0NTJkNmE5MTYxOTYyNDYzZjU2NWVjZDkxYTRjNjI3Zjg1Y2U4Y2I3IGxlZ2FjeS10cnVuaworMjgyMDEgZGU3MWU2ZmU2NGIwNTI1OTQ5ZDMyOTU5OWMyYmZkY2U2NzJlMmY0MCBsZWdhY3ktdHJ1bmsKKzI4MjAyIDZhOWVhMGMyMmNlYTFmOWFiMTA4OWFhODUwOTUzZDNlZTE0YjQ2YzMgbGVnYWN5LXRydW5rCisyODIwMyA0NjFhZmRiNWNiOWVkZjYzMDZkM2VlODdhZTMyNzgwNmRkNmQ0YzM2IGxlZ2FjeS10cnVuaworMjgyMDQgZDlmZjk3Y2U3NWJiZWQxZTc2NzM5NzhhMTM3MGZjN2FkMTQ2NjM3MSBsZWdhY3ktdHJ1bmsKKzI4MjA1IDkzMWZiMzcwMGQwYmE5MWI5MDVlY2QxMjhhNzhlMTcwYTk1Njc4YTAgbGVnYWN5LXRydW5rCisyODIwNiA4NjI2OTViOTIwZmRkODhmOGE2YjM3N2UwMjNiOGQ3MzE4ZjlkNGYxIGxlZ2FjeS10cnVuaworMjgyMDcgYTYyY2VlNGVlZDk2NmYxZmMyZDNkOTJjOWRjNGU1MTQ0Y2RmMDAxNiBsZWdhY3ktdHJ1bmsKKzI4MjA4IDE4Y2JhZGQ4MDcxMjVhZWQ0MmIxOGExZTdiYmE2MDNiY2Q1MzViZWYgbGVnYWN5LXRydW5rCisyODIwOSAzMGNmZjljMWJmNjkzYzA4Y2VhMmE5NmVkM2UxOTE3ZjQ3MjE2NjgzIGxlZ2FjeS10cnVuaworMjgyMTAgZjE0N2I1OTQ0MjQ0NjdmMTQyNzkzOTQ4NTdhNDhlZTU4NGUzODMxMyBsZWdhY3ktdHJ1bmsKKzI4MjExIDliMDZmNDRiZDRhMzRkODczZDZkNWMzNTQ4NjQxOGY3MmY3OTljNzggbGVnYWN5LXRydW5rCisyODIxMiA2ODVjZDUyYzRjNDM4YzNmZjU1NDcwNzAyNTc1MGFhMWJjYjBlNDlhIGxlZ2FjeS10cnVuaworMjgyMTMgYWI2M2FmM2VjMzQ5NWNiYzdjODkwM2EzMWM3NGI4MGMzZDYyYTJjNSBsZWdhY3ktdHJ1bmsKKzI4MjE0IGM3NWNkYzQ3MWIyMjQ0YThiM2E3YzVlMWNlOTRhMWFhM2U1ZjBiOWMgbGVnYWN5LXRydW5rCisyODIxNSA3Y2U4MmU5ZDA4Yzc4YTUwNTkwYmY4MGZhMjIxOWFhNDk0YjY3NTkzIGxlZ2FjeS10cnVuaworMjgyMTYgNTg2MjNjZTk0ZDQwNmM0OTE0ZDU5ZGU1MDVlNzg5Y2FjYTk2YTU2OSBsZWdhY3ktdHJ1bmsKKzI4MjE3IDc0ZWQ0NTcyMDhjMWEwZjUzNDg5N2NjZjg2M2E1NDM0YWNmZjBhZmUgbGVnYWN5LXRydW5rCisyODIxOCA3YjdkODgyMGFlMzgwZjA5ZTYwYmI2YWNlZTE5M2RjMWY2ZDMxOTc4IGxlZ2FjeS10cnVuaworMjgyMTkgNjQyMGI5N2ViNTlmMTdjMTFhYmNhNGI0Nzk3YThjMjgzNzQyNDkxZCBsZWdhY3ktdHJ1bmsKKzI4MjIwIDUwZmFhNjgzNWRkYzQxNzk5NDIxMDIyMTk3YjgxYWU4NzY4OGU1ZWQgcmVsZWFzZTIyLW1haW50CisyODIyMSBjNDU2NDJlMWRjYTkzYzUzNWYyZjU2NzBlMzI5YzUxZTQzY2RjN2MxIGxlZ2FjeS10cnVuaworMjgyMjIgM2FlOGUzZmY3ZTNmMzQzN2NjNmU5MWNiOGJiMmRlZjgyNGIxZTFhOSBsZWdhY3ktdHJ1bmsKKzI4MjIzIDMxZDI4NjAwODllNjAwYjZmNGIyMWQ1ODk2MTI5ZDgzYjQ1NGVjMWMgbGVnYWN5LXRydW5rCisyODIyNCA0ZTQ0ZmFiZTBmYTAxN2JiODViMjUwMWM0MjE2ODIxMGQ4YjNlZGYyIGxlZ2FjeS10cnVuaworMjgyMjUgMDExMTM4YjVmMzg5YTI4NDhlMjVlYjYyMTNjZTU3ZmQzNGJlODlkZCBsZWdhY3ktdHJ1bmsKKzI4MjI2IGFlOWM5ZjkwYjRiMDFiZmEwYjE5MTFiNTk3N2QyNWQ2Yzk4Yzg3M2EgbGVnYWN5LXRydW5rCisyODIyNyBkM2Q3ZGU3MDNhMjJkYWFjOGQ5ZDk3MjdkNjZmOWFlYWEyODZkMTliIGxlZ2FjeS10cnVuaworMjgyMjggNTg4ZDE0NWM0NGRkOWU2Yzk2MTdkOWU3MjAzNmY3OTMxZmY0NjA2NCBsZWdhY3ktdHJ1bmsKKzI4MjI5IDdjOTFkMzAzYzU2M2ViZTg2YTgxZDk1ZWE2ZTZmNGNlODVhOGFjOTQgbGVnYWN5LXRydW5rCisyODIzMCBjMDAxZTVhMTUzNjlmMzdhN2JhMTIxZTIwOTdmNmFlODYyODA4Mjk1IGxlZ2FjeS10cnVuaworMjgyMzEgYTdkYmU0ZTdmNWRlZGNjMmYwZmMzODUzYzA3MGVlZjQyNjNiZThmYyByZWxlYXNlMjItbWFpbnQKKzI4MjMyIGU1YTA3Y2M4MTU1OTA1ODRjNWFjYTNmMWFiZmQ0YmU5MmY1ZmRjZjkgbGVnYWN5LXRydW5rCisyODIzMyA0Y2Y1MDI3MTZkMTVkNTNmZWZlNWNkYWFhYjJjODBjZTMxY2Y4MDQ0IGxlZ2FjeS10cnVuaworMjgyMzQgMzFlZTMyYzIzZDI5YzU5ZjlmMzEwMzNmYjdlMzViNTExNDIzZDZkYSBsZWdhY3ktdHJ1bmsKKzI4MjM1IDhlM2UwZTExZjE0Y2FjYTMzMzU0N2FiZWQzZmJhNGQzNmU3OWJlMTQgbGVnYWN5LXRydW5rCisyODIzNiBhNjAyZTQ4NzhiNGVjZDBjYWFiMzk0NTljNDJkZjQ5ZGJjZmE5ZmZlIGxlZ2FjeS10cnVuaworMjgyMzcgNDUzYzg4Zjk2M2VjMzI2Mzg4ZTg1ZjM1ZDVmYjM4ZjBlZWExOGJmZCBsZWdhY3ktdHJ1bmsKKzI4MjM4IGNhNThmNWE0NTU4YjhmYTkyOGMzZDJlMGJhMzY5MTRiNzQzZmFkMWYgbGVnYWN5LXRydW5rCisyODIzOSA2NGY0ZGQ3NzBjNjdkYTY1MDlhOTIxODQxOGY4NGNlMjc0ZmQ1YmNkIGxlZ2FjeS10cnVuaworMjgyNDAgZTM5OWQwYTg3NWI3ZTFmZjM4OTI0Y2RkZDhlNDczYjg4ODM2YTY0MiBsZWdhY3ktdHJ1bmsKKzI4MjQxIGMwMDRiMmJjZDU0MjFjNDQ0N2UzNDVlZjllZTQ5ZGYxZWVlYzkwM2IgbGVnYWN5LXRydW5rCisyODI0MiAxOWYyNWJjZjVhMDAyZWQxYmU3YmZlYzE5NDEzMWZkNTVmYzM0YjA0IGxlZ2FjeS10cnVuaworMjgyNDMgYWVhNjhjYjM2ODU5NjEzNGNjMmE1MWEyMzFlZTY1YmE5YjE3YWEwMSBsZWdhY3ktdHJ1bmsKKzI4MjQ0IDE3ZTk1Y2MwNmY2OTNiMDZjOGRjZjgxMmMxZjY0YzFkN2ZjZjI4YmIgbGVnYWN5LXRydW5rCisyODI0NSAyZmY0MjY4ZjI1ZGM3MzhhOTg5NjAyMDU2NmVlZjFiMmFiNDQ3MTMyIGxlZ2FjeS10cnVuaworMjgyNDYgM2FmOGQ4MWQ3Zjg2ZTQ4YWY5YzgzZDE1OTMyMWNiNjgzZTE2YjQyMCBsZWdhY3ktdHJ1bmsKKzI4MjQ3IGM5YWY4NzUwNDhlNzI5NmI1MGY0YjcxYjdmYWQ3MjBiNTJiYzMwNjEgbGVnYWN5LXRydW5rCisyODI0OCAxMWMxY2M5N2I4N2EzMWY2ZjYzNWRmYTUxM2VhMjgyZTI5MDc1YjdkIGxlZ2FjeS10cnVuaworMjgyNDkgY2Y1OTI4ZmFiMTA4ZGU5ZmJlMDI2MzJkMDcxNzZjNzE3YzJiM2FhNyBsZWdhY3ktdHJ1bmsKKzI4MjUwIDY5MzlkNzIxODJlNmM0OTkxY2M3NGU1NGM3NGNlNTAzNDk3MzhiNWUgbGVnYWN5LXRydW5rCisyODI1MSAxMGE0ZWM0NTU0OWQwZDg5NDkxMGRkYTk4MThiOTc4ODE5MzU0NWUyIGxlZ2FjeS10cnVuaworMjgyNTIgODczZjEyZjY4ZTNiMTAxNDliY2Q3ZjNkOThkMjk1ZjZmZmI5OWNlNyBsZWdhY3ktdHJ1bmsKKzI4MjUzIGRhY2QxMGQ0NmU1Mjk0MDViOGNmODRlOWNkZGZlMDkwMmY0NmNmOWUgbGVnYWN5LXRydW5rCisyODI1NCAzYzljNTZkOTdlNTVlNzIzYjZlNzNiODNiMTdkZmFjZTVhYjJiOGRmIGxlZ2FjeS10cnVuaworMjgyNTUgOGFiNDZkZjMxODJlNzk0MzNjZmIyOWU3MTA4MmExZWNmN2MxYWQwZCBsZWdhY3ktdHJ1bmsKKzI4MjU2IDM0Y2M5ODg5MmU4OTJlNjczN2VlMWIzMTQzODgwMmU0MmM3MWUxZjUgbGVnYWN5LXRydW5rCisyODI1NyBhZDM2MWUxZDU0YmJhM2UyZjRiMTI1MDNhNmRmZGM0YTQwMTRkZmE3IHJlbGVhc2UyMi1tYWludAorMjgyNTggZTlkZDNlOTFlNjUzMTBiNzA3ODlmMDlhZjgwNzVjM2E3MTYyOGQ4NyByZWxlYXNlMjItbWFpbnQKKzI4MjU5IDEzNmI4NTM2MjJjYzkyMzQ3Njk2MDc3YWUzMmQ5NDcwZDg5ZmUxOGYgbGVnYWN5LXRydW5rCisyODI2MCBiZWQ1ZDVlNTM2YmMwY2VjMmJhZWM0MWMzZjdjNGRmZGU4NTFmMTRhIGxlZ2FjeS10cnVuaworMjgyNjEgODc0NDhhMjI4Y2NhMmJlY2IyNzJiMzg1NjY5M2NmN2ViOWEyMjNjNiBsZWdhY3ktdHJ1bmsKKzI4MjYyIDBlZjZjMmFkMDc2YjEzMzkwZDY5Yjg1ZjE4YWFiMDM4YjZmZmI2ZTMgbGVnYWN5LXRydW5rCisyODI2MyA1OTI0MDZlMGM5YjAxOWI2NjQyYWM0YjAyZDZkOThiYjliYTNlZjk1IGxlZ2FjeS10cnVuaworMjgyNjQgZjI0NDc2ODZlYzVlYmU3ZjE5OWQ3ZWUwOTYwY2Y4Y2Y3YmNkNWU0MyBsZWdhY3ktdHJ1bmsKKzI4MjY1IGU0NWQxNjExZTg2OWQ2NDBkZDUxMzdlOTJkMzhhZmFlMzEzMjlhYjggbGVnYWN5LXRydW5rCisyODI2NiA0ZTc5NWZlOWY1NGIyMWI4ZmU0MDNlMzFmZDlhNTBlZjJmZDgzZTBjIGxlZ2FjeS10cnVuaworMjgyNjcgNWI2NTZjM2UxMzJiODY3NDFjZTZjNWEyMzMyNmNjN2E1MTI3NzFiNyBsZWdhY3ktdHJ1bmsKKzI4MjY4IGEzZWJkMTIzM2MwMGVhYmY5MDliZTgyMjIzZmZiZDVmMThmYTkyNWUgbGVnYWN5LXRydW5rCisyODI2OSBlNTAxNGFjOTdiYTE4NzlhNmU0OTQ2NTk4MzQ0NjU0NWJlYjk0YmJmIGxlZ2FjeS10cnVuaworMjgyNzAgYjU0Y2ZhOThiNjZiOWIzNGM2MzQ3MjViOGZmMzUwMDlhMDI0MDBmNyBsZWdhY3ktdHJ1bmsKKzI4MjcxIGYwZGJkNWI0OWQ4YTAxZjUxOTdkMTA2YzQxZGVkOGM5NzM0MGQ0MjAgbGVnYWN5LXRydW5rCisyODI3MiAyNTVkMWQzZTY2YTNhZDliMmQzYmIxYTE2MDZkYmYxYWFjNDlkNGUxIGxlZ2FjeS10cnVuaworMjgyNzMgMjMwNjAwMWY2ZWFhMzUwZmEwNTk3MjMxYjY4YmRlNDBjNGQ4YzQyMSBsZWdhY3ktdHJ1bmsKKzI4Mjc0IDljYTg5NjQyMzM3NDMyY2QzOGFjM2M3YjZlYzZlYWYyYmE5ODQwMDQgbGVnYWN5LXRydW5rCisyODI3NSBkZjIzMjZhNDg5NGRlZTc0M2FhYjk0YTdlYWY5MDU1MDkxODQ0MGViIGxlZ2FjeS10cnVuaworMjgyNzYgMjU4ZTBiMTM0N2MyYWQ4NjhkM2I2Nzg0MzhmODdmOTQ1MzIyMTI4OSBsZWdhY3ktdHJ1bmsKKzI4Mjc3IDliZWNmZWY2ZTMxYTZiZDcwN2VlZWJjNzY2NzNmNmNjNTQ4Y2ZmODIgYXN0LWJyYW5jaAorMjgyNzggNGYxM2U1OWZkMGEwM2Y5NjUwYWY3ZjZkOWQyMzJhOTdkMmVjYWUwYyBhc3QtYnJhbmNoCisyODI3OSBjZjU2MWU2MTIzNzhjMWEzYWZjOWRkMjRlYzFkZGZlZGE4NjM2MmM0IGxlZ2FjeS10cnVuaworMjgyODAgOTlmNWQxOGJlNTg4MDM4NmRhNjQyNzUzMGI5ZDhiNzUxNTgyNzE3MyBsZWdhY3ktdHJ1bmsKKzI4MjgxIGI1MTdkOTI5MmNlN2MwZjFmMjYzMmEyM2Q5Y2ExNzI1ODY2NGI3NWIgbGVnYWN5LXRydW5rCisyODI4MiA4MDg5YmEzOTc0ODBlNDBjY2RiYjY1NTI1OGU2NGRmODA5OWYxNmU0IGxlZ2FjeS10cnVuaworMjgyODMgNzI1MzM3YjY4Y2EwMmIzYzFhODA3OTlmODM4ZTgxY2Y0MmFlZTM1NiBsZWdhY3ktdHJ1bmsKKzI4Mjg0IGZjNzQwM2UxMTg3ODMzMGMzYWQ0Zjg1N2RmYWE1ZWNhM2NhY2QxZGMgbGVnYWN5LXRydW5rCisyODI4NSBmNDg1MTA0ZTRlZTg1MmI0YzI5MWVjOWRkNjRkMjNmOTkzNWJiODc0IGxlZ2FjeS10cnVuaworMjgyODYgMjM5YmRhYmI2M2FmOWQ3MTdmZGQ5YzcyZjQ4NTM5YzVkZTQzYjNlNSBsZWdhY3ktdHJ1bmsKKzI4Mjg3IDcxMGJlYmUyMTgyY2IxNDRhMTk5ZDJkOWYwMTdjM2RjZGUyYjQ5ZGYgbGVnYWN5LXRydW5rCisyODI4OCBkMzU0MWQ5MGQ1ZTA2ZTViZGIwNjQxN2Y3ZjY2ODU3ZDIyZjBmYWZiIHJlbGVhc2UyMi1tYWludAorMjgyODkgYWFhZTY5MzIxNzcxNzE4MzhiZGY5Mzc3MzA5NTVhY2IyOGNmYjU2OSBsZWdhY3ktdHJ1bmsKKzI4MjkwIDVmZjNkOGFhYThmOGEwNmIxODI5YTAzNDNjN2M3NmEwY2IzMjk0ZjEgbGVnYWN5LXRydW5rCisyODI5MSBjNGU1NTA3MDJhMjlhMzQ1OWRlZDEyNmZlNDA4YzJkY2Y5NmRiODBkIGxlZ2FjeS10cnVuaworMjgyOTIgODc5MTE5M2IwOWQ2NDE3YmU0ZmQ2MGViZTI4YjJmOGMzOGEzNTJkNCByZWxlYXNlMjItbWFpbnQKKzI4MjkzIDAyYjJmMDg4NWM1MjEwMjQwZGMyZmIxMzkxNDBiMjU3NjAyMDY0MWEgcmVsZWFzZTIyLW1haW50CisyODI5NCBkNzk3Y2ZhOGNhMGQwNDVkNWQzYWEwZTBiMTkwOTgwMWUwZjIyYTM0IGxlZ2FjeS10cnVuaworMjgyOTUgMjRmMWQ4NDVjZGI1NzMzMWFhZjVhNGQ3MTVlNjU1NmYwZDg1NzZmNCBsZWdhY3ktdHJ1bmsKKzI4Mjk2IDQ5MmFkZGI4MTJlZjExNzgwODFhOWYzMmRmZDFkNDRjNmE1YWI1MWEgbGVnYWN5LXRydW5rCisyODI5NyBkN2VmMmJhMWI2ZjVlZjBhYzFmNTk2MjhkZmU1NTZkYTk5M2Q2NmY0IGxlZ2FjeS10cnVuaworMjgyOTggYWViZjhjNTJhODQyZDQxZDkyYThlNjMwMDRjZWIwMGFjMzVkNzlmYiBsZWdhY3ktdHJ1bmsKKzI4Mjk5IDRlNGEzNDRjOWI2Y2U3YjBjNzFjYjUyODAwZTYwNDA4ZjhmMTQ4YWEgbGVnYWN5LXRydW5rCisyODMwMCA0NGQxZDBiNjIzYTlhZjc5NDJmZjdiMTU4NjIxNThkZmVjMTQzOGE3IGxlZ2FjeS10cnVuaworMjgzMDEgODg2MmJjNTk2ODVhY2Q2MzdmNWFmNDY2NGNiZjZiZmIwZGQ3ZDlkZiBsZWdhY3ktdHJ1bmsKKzI4MzAyIGM4ZDk1OTJjOWU3NDk3YTIxN2EyMDIwMDQ4NzE0OGVjNGI0ZDhkYWUgbGVnYWN5LXRydW5rCisyODMwMyAyN2YwZGVlYmYyNjQ4YWZhNTU3ZDZhNTRkMTM2NDllYmE5MjRiYWMyIGxlZ2FjeS10cnVuaworMjgzMDQgNjMxMGE0YTIxZWI4OTJjZTNmYjhhYjc0MTkyODE3MTRhNjVlYTkxNSBsZWdhY3ktdHJ1bmsKKzI4MzA1IGE4NjlkMmRlNTM2ZjhkMzBjYzZlN2M2ZmQzNTAxZjRiMjZlOWQ3N2IgbGVnYWN5LXRydW5rCisyODMwNiA4ZjhmZTk5MGU4MmMzMzRmNTBjYzZhNWZlOWRlZTEyYzQyYjhiNmNlIGxlZ2FjeS10cnVuaworMjgzMDcgMmNkZjNkMGRmYWJkNTAxMGE2OWE3ZGJkNjE3OGI3OTBmZTI2YWI3ZSBsZWdhY3ktdHJ1bmsKKzI4MzA4IGJjNjYwZjczNzk1Y2Q3Y2UwNzA5Y2RjODhhNzZhY2ZhZjEzOTgwNjkgbGVnYWN5LXRydW5rCisyODMwOSBmNTdkNmRiNDIzZjJkYmRiNDczYjhjNWU3NTE5YTQ5ODM5MDljMWMyIGxlZ2FjeS10cnVuaworMjgzMTAgZWNkNGFkYTI1MmJjMDlhZDlhODVmNDg5MWQwYWNkMzkzOTZmMWUyMiByZWxlYXNlMjItbWFpbnQKKzI4MzExIDY0MTc4NmJlYTEzZTJiNWE2MWE3ZjhlYTQyOWIyMGQ5NjVkNzU0NmIgbGVnYWN5LXRydW5rCisyODMxMiBhYWI3ZGViYzczYTg4ZTIxMzVkYzcxOGVjZDcyMjdmNzFmZjdkMDYxIGxlZ2FjeS10cnVuaworMjgzMTMgMzExNDVkNjY3YjE0YTVlNjY0ZDc0MWVjZjM4NWZlMzg2Mjc2N2U0ZCBsZWdhY3ktdHJ1bmsKKzI4MzE0IGIzZWZiZGNjZjdjNjRjMGJkNTdmNDZjMmI1MDQ0ZmM2MTA5ODkzNjMgbGVnYWN5LXRydW5rCisyODMxNSBjNmFkNjAzYmQyNjQ1YWVjOGJlNjUwOWYyZGY4MjhlZDZjMGIzNzA2IGxlZ2FjeS10cnVuaworMjgzMTYgNWFjYWU3MTljYjhhYmE1YzQ0ZWE4MzUzM2E2MTk0NDdlOTU1Zjg4MCByZWxlYXNlMjItbWFpbnQKKzI4MzE3IDVjMzg0NTdmNmIzYjg1YjZjMWI3NDE0ODMwNDZkOWQ0MDYyMTZjYjggbGVnYWN5LXRydW5rCisyODMxOCAzNWZlNWUzY2Y4ODVmNjQ2YTY5ZTEwYzA5MjRmN2MxMWExNzMwNDZlIGxlZ2FjeS10cnVuaworMjgzMTkgMGVlNDhhZWZhNDc0OWU3M2Q5MTczYmI5OWU3ZTYyZjYwYWI3NDg0ZCBsZWdhY3ktdHJ1bmsKKzI4MzIwIDU5YWNkNTAyODgwNDQ3ZjQwZTJkZDBkMzhiZmM0OGM3NjdhNmRhODMgbGVnYWN5LXRydW5rCisyODMyMSA2ODRhYjA2NDBlMDRmYTBmZmE4OTNjODVkYTNjMTNiNjI5NGIzYWIxIGxlZ2FjeS10cnVuaworMjgzMjIgMDFlMWQ2YWJjNTAxMjJmMjhlYmMxNDUzZTU4ZGE4MjliNTE4NmRkNiBsZWdhY3ktdHJ1bmsKKzI4MzIzIGUzZDk2ZTAwZGM2YzFjMzMzOWYzOWVmZTM0ZjVkNmRhMzczNDVjOGMgbGVnYWN5LXRydW5rCisyODMyNCA4ODY2ODZmYzkyYTk5Y2ZkMWQzMTQwOTA0ZTdmYWIyMGQ0MjczYTA0IHJlbGVhc2UyMi1tYWludAorMjgzMjUgMGQ1ZDhlMWNkYzIyY2ExNjcwNmRjMWNlNTAyZDI5NGRiZTY1MTI4YiBsZWdhY3ktdHJ1bmsKKzI4MzI2IDRjYjI1M2M1NTZiMTBhM2Q0YjlmNDFmNzMxZmNiNTkyZWJmZjg3ODcgbGVnYWN5LXRydW5rCisyODMyNyA3MTQ3OTcxNTZjNTEyYjk0ZGVlNDJmNDFiYzAxNmMyNGFlYjZmOWQ1IGxlZ2FjeS10cnVuaworMjgzMjggOGVlZjAzODUwZjU3NzY3ZmFjNzAwNDFkNWRkODM3NjkxZThlN2U1NyBsZWdhY3ktdHJ1bmsKKzI4MzI5IDVmYzQ2MDk4MTU4OTIwNTc1Y2RhNmI3NDk2NjZkMDc2NjhlZTFlMTggbGVnYWN5LXRydW5rCisyODMzMCA1MWMyNjk5NGQ4ZWM2OWE3MzA3OTg5MjMwZjM3NTkyNjg2ZDAwMjIzIGxlZ2FjeS10cnVuaworMjgzMzEgYTExNDMyMjRlZTBkMGY3Njk0YTk0NjhhYTE1NmIxZGM2MWE1MGFiZSBsZWdhY3ktdHJ1bmsKKzI4MzMyIDk0MDYwNWQ0MTU1ZmRjNjc5M2MxMDQ0M2VlODQ5NDhkYWUxZGVkZjIgbGVnYWN5LXRydW5rCisyODMzMyBkMmViMDA3NDQ4YTNlNjU4YWQ2NzI0MGE0ZmRmNjk5M2MyNWI2MTk2IHJlbGVhc2UyMi1tYWludAorMjgzMzQgYzRhNGI3NDJhZDZjNjVkYjNlMTdlM2M2ZmNjMDBhODdiMmYzMzM0MiBsZWdhY3ktdHJ1bmsKKzI4MzM1IDBkZDViY2MxZWUwYmQzZTk5ODhmMWY3ZjYyOWI2NGU0NWIwMGUwZDIgbGVnYWN5LXRydW5rCisyODMzNiA0MTlkNDdjNzcxNDM0MjhlZmQ2ZWMwNTViNmY5ZDA4YTMwMzFmZTRhIGxlZ2FjeS10cnVuaworMjgzMzcgZThmNzczMDdkOWM2YTI4ZDAxN2Y3ZjUxNWZjMzc4MGUxNjc0NTBlOSBsZWdhY3ktdHJ1bmsKKzI4MzM4IGMwZTk4MGFiNTRkYjNiZDk1MGE2M2QyNWVmMTExOTVkN2QwMTcwMzcgbGVnYWN5LXRydW5rCisyODMzOSA2MTdiZDU1YjRhNmVkYmMyNGY0Y2U1ZTdlYjIzNzg5M2Q0MGNkM2ZkIGxlZ2FjeS10cnVuaworMjgzNDAgOWVlNGY0Y2I5NzcwNjk5ODFhNDFiNDllNTk4MTNjYjZiNzVlMzI4OCBsZWdhY3ktdHJ1bmsKKzI4MzQxIDYwNjBjZjY2ODJjMDI1Njk4MzQyYjk1NDYzN2Y1NTFmNzVhNmI5YWIgbGVnYWN5LXRydW5rCisyODM0MiA2NDUwOGEzN2E4ZDViNTBjODFjMWUxOGU4YmUzNThiZDdjMWI2NTA1IGxlZ2FjeS10cnVuaworMjgzNDMgMjk0ZjdiZTI2MTlhNjAzMWVkOWNmMzc4YTZhMGFjNWQ1NWY0ZWVmNCByZWxlYXNlMjItbWFpbnQKKzI4MzQ0IDIxOWU3MDM4OTA3MjY3OTk3Y2RhNzM5MTk3N2JkMDJmZWQwNTRjOWQgbGVnYWN5LXRydW5rCisyODM0NSBlOTUwMDcwOWQ0OWM5OGE4NmQwNWMyZjZmZDNjZjViYTNjNzA3NGFiIGxlZ2FjeS10cnVuaworMjgzNDYgMmI2NmFkZGUwMjMwNjY5MjQyNmEzYzQ3ZDRkMDZiOTA4Y2U5ZGNiNSBsZWdhY3ktdHJ1bmsKKzI4MzQ3IGJiNmE3MWQzZmRjYjc1NWY4NzQ3YmMxNDFlY2U4OTQ4NDY0OWNlZTMgcmVsZWFzZTIyLW1haW50CisyODM0OCA2NzA0ODQ1NGFhMWU3NDY3OTM5ZDcyY2MwODY1YTg5YzMwNWJhNjMyIGxlZ2FjeS10cnVuaworMjgzNDkgZDEzNTUxY2Q2NjNlNTc3MmU4ZTMyOWJjYTlmOTQ4OGI0MTliMzI2OSBsZWdhY3ktdHJ1bmsKKzI4MzUwIDUzMDY0MDg2NTdmYzY2NGFhYzAyOTllZWVhNTAxZDkzYzg0MTFiZTAgbGVnYWN5LXRydW5rCisyODM1MSA1NGI2MDFkM2IyYTZkZDkxZjI2NWU0NjNjMjJlYmYzNjdmMTIyZTg0IGxlZ2FjeS10cnVuaworMjgzNTIgNzQxN2E2ZGM3MzY2NjJkM2ExYmFkN2E5MTE1YWY1ZTQzOGMyMjQ4OSBsZWdhY3ktdHJ1bmsKKzI4MzUzIDBjMjAxNTQ4ZDNkNGZlNTM5NWMyNjJhMDVlMTg4MzMzNjI0Zjc5YzMgbGVnYWN5LXRydW5rCisyODM1NCA1NDRhMzI2YmFmN2YyOWYxMjYzYjBjZTUzMDFmZGNmZDEwMTlhZmY5IGxlZ2FjeS10cnVuaworMjgzNTUgOGFkY2E1ZjliZmZkODZmZWM2MzJmNGVlYjk4OWY5ZTIwNDIxZDA0ZCBsZWdhY3ktdHJ1bmsKKzI4MzU2IDlmMjZlMGMwYzY5MjcxMDRiY2ZiNjJkMGIwMzM4MTliZDM0MmZjNmIgbGVnYWN5LXRydW5rCisyODM1NyAxMzM4OGNhZmMxNmU5NjMzYjNmMWQ1MjMwYjAwNmUxMzMwZDUzOTk0IGxlZ2FjeS10cnVuaworMjgzNTggMWJjYWZiYzY5Yzk2NzI3NWRkN2M0NzBhZTVjNmQ5ODgyZjhiODUyYyBsZWdhY3ktdHJ1bmsKKzI4MzU5IDZhMThiNGU4MzhlYWYzZjljNzUzMjI5MjNlMGI3MTFhZDJlYTQ3NGYgbGVnYWN5LXRydW5rCisyODM2MCAzMzBmNmU0MjI3NGY4Mzg3YzA4ZDU3MjRiNzhmMmViMjIxMjhkMGFlIGxlZ2FjeS10cnVuaworMjgzNjEgMDVkYTk1YmNkNzI0ZGZmN2U3OGU0N2U0NzM4MTE0MzY4NTdjOGU0MiBsZWdhY3ktdHJ1bmsKKzI4MzYyIGM1NWU4ZDZjMDkxZjAzM2NmN2VlYjYzNmRlNDM3YjU4ZGNlMjFmMWIgbGVnYWN5LXRydW5rCisyODM2MyA2MjgxMGJlYjlhZjQ3NzczMGJjZjA3ZmRjNzg2ZWM2NjRhMjA2NmYwIGxlZ2FjeS10cnVuaworMjgzNjQgZGM2NmViNGNkMTdhYzJhMDAwZmYxOTA2MGU4YTM4NDQxYTkyYTY5YyBsZWdhY3ktdHJ1bmsKKzI4MzY1IDZlNzhhNTRiYWMzYzg0MDQxYmFmZTNjMDAzMDNmNTQ1ZDhlZjA4OWYgbGVnYWN5LXRydW5rCisyODM2NiA4YjZiZjViYzUxMjI2YjcyMjhmYTMxNmM2NzdmOGQ1MGJkMjJmY2ExIGxlZ2FjeS10cnVuaworMjgzNjcgYjkzM2QxOWFlODUxMmNiYTAxZTcyNjRjYTQ1ZDFlYTAwMDE4MTM2NyBsZWdhY3ktdHJ1bmsKKzI4MzY4IDA0M2ViYTUxOGM2ODljYmRkYjM3MWU1YjcwZmZlOTkwNGM1ZDkyMDUgbGVnYWN5LXRydW5rCisyODM2OSBjMWY2ODJiZWViZWExY2YxZTFlOGVhZTcyNzk5NzIzY2QzY2ZjYzMzIGxlZ2FjeS10cnVuaworMjgzNzAgNzNmYmNmMjFiMmMwZmJhY2M5ZjcyZDQ0Nzg5NmRkMDkzNGEzYTQ0OSBsZWdhY3ktdHJ1bmsKKzI4MzcxIGQ5MGE2YWRkN2NhMzk4Mjg3YzBmOTQ2OGZhODhkYWRhNjdlM2YxMWIgbGVnYWN5LXRydW5rCisyODM3MiAxYjRlZjljZDE4OTc0MmJjODBhZWJhZmJlNWY0ZGRkZDY0MzIwNjg5IGxlZ2FjeS10cnVuaworMjgzNzMgYzQ1YjI4NjU4ODA1ZmE2Njk0ZTM5MzY1MmViMDE5MjkzNThiMmFlMyBsZWdhY3ktdHJ1bmsKKzI4Mzc0IDgwZjY1YzYzZTg2MGMyNmRkNWIyNzMyYTg2MzU3MmExYTY0ZjhjNDAgbGVnYWN5LXRydW5rCisyODM3NSA5NTE4NjU5MWNiY2ZlZWUxNDY3MDZlZmYwOGUzYzU3Mzg3YzJiZGI3IGxlZ2FjeS10cnVuaworMjgzNzYgODE2NzllYmVjMDdkNzE5YmE2Y2NhNTllMmQ1Yjc2ODA2MjVmNGE2MyBsZWdhY3ktdHJ1bmsKKzI4Mzc3IGY2NTgxMjk5YmMwM2I1MThiYTdkY2MxNTE5OGY4NzY3YTc5NjlkYzEgbGVnYWN5LXRydW5rCisyODM3OCA0MjYzNjM4YTQ2OWY4ZGI4NjdkYjA5OGNhMzBjZmZiYWM3MmEwMjNiIGxlZ2FjeS10cnVuaworMjgzNzkgOGVhMTE3ZWJiMmYzNDlkZTVlOGUzZDQ0MTlmNzhhYThlNDE3ZmZhYSBsZWdhY3ktdHJ1bmsKKzI4MzgwIDY2OGVlYWQxM2E3YzU3ZWU2NWRiNjBmZjE4Y2U5Mzc1NDg0OGI2YmQgbGVnYWN5LXRydW5rCisyODM4MSA3MTkwMzQ4ZDQ2NmRmZjVkNjYwNTZjYWEyMjczYTI4OTA2NDBmMWJkIGxlZ2FjeS10cnVuaworMjgzODIgN2JlYjE2OTIzYjcxYmI3MGZlOTVhZjM2YTY1OGU2OTg2ZjkyOGRkYyBsZWdhY3ktdHJ1bmsKKzI4MzgzIDA2M2YyMDMxNjYwYzNlMjU4ZjM2ODgwZjVkMDhkNDMxODliMzI3N2EgbGVnYWN5LXRydW5rCisyODM4NCAyNWY2OTU0ZmVmMzQyM2QwN2I4ZjNhZjhlNzc1ODVkNzM4NjZlMjRkIGxlZ2FjeS10cnVuaworMjgzODUgYjFhYjRlOGQ3ZDljNWEwYjI4OWYzZDQzNjhjODljMmI0NGM3Y2RiZSBsZWdhY3ktdHJ1bmsKKzI4Mzg2IDgwYWM4NjE5NGExMmJiOTRhZDYyMWU3YzIxZTM2ZDVlZjY5ZTliZjEgbGVnYWN5LXRydW5rCisyODM4NyA5ZTExYmI4M2Q5NTNiYTNhYjYxZTNiOTYzZTU0N2M1N2NlZGYxNTU2IGxlZ2FjeS10cnVuaworMjgzODggZWU5OWQyMjI1NzBhOTQ2MDBkZjA3MDAzOGVmNzNkNDRmY2ZhOGVkNiByZWxlYXNlMjItbWFpbnQKKzI4Mzg5IDIyYjcwYzM5ODNiNTM4Y2FlNTc0YWM4Y2Q3YmY5NDEwOTg4MjEzNTEgbGVnYWN5LXRydW5rCisyODM5MCA0YmI3NzZhMDJlNmU4NGY4YTdhMDgyYzVjMjBlOTY0MDYxZTlhOTUxIHJlbGVhc2UyMi1tYWludAorMjgzOTEgODBkMDM1YzQ1MTQ5M2RkZWM3NGZjYjBiMjQ0ZTQ5YjRlYmIxNzM0ZiByZWxlYXNlMjItbWFpbnQKKzI4MzkyIDE0NjFiOTQ2MDZjNTQxNGViMjliMTY1N2FjYTc3ZDFkMzRkODJiZDcgcmVsZWFzZTIyLW1haW50CisyODM5MyAwMGYxMWVlZGQ2MDMzNDVjYmE5OTIzYTM2ZGJhZjA1NjUzNDUxNmNkIHJlbGVhc2UyMi1tYWludAorMjgzOTQgOTEzMGVhNjY5M2RhN2VlOTlhM2M0ZTNiN2Q1M2JkMDVlYzdhYzFjOSByZWxlYXNlMjItbWFpbnQKKzI4Mzk1IDBkNjYxN2E5Y2I2MTBkMjcyMmFhMjUyMzcwZDUxMzJhM2VmMzRjNDAgcmVsZWFzZTIyLW1haW50CisyODM5NiBmNGJiMGZmMzEwZDM0ODljMjNmNzQ4NjQyMDUzZTNkZWQ2Y2JmMzk5IHJlbGVhc2UyMi1tYWludAorMjgzOTcgYmM4MWVlMjA2MjhmM2NjOWQ1MDEwY2Q0MTg5NzhmNWFlMmRkNmE0YiByZWxlYXNlMjItbWFpbnQKKzI4Mzk4IDY0NjFhY2RlYjU4YzkwODJhZmVlOGU1NjRmMGJjZWFiY2RlZTYxMDQgcmVsZWFzZTIyLW1haW50CisyODM5OSBjNTQxN2YwZWU1ZjA4MDJiMTg3Mzg5YjcxOGIxMmQzMWI5NDU1NDcxIHJlbGVhc2UyMi1tYWludAorMjg0MDAgZmQwNjZkMTk0Y2ZmNDFjMmJiZjdhNGE1YTNhN2ZkZWQ1NmM0NWNkYyByZWxlYXNlMjItbWFpbnQKKzI4NDAxIDVlNGVhZGYxOTAzYTAyOGU2NTVhYjU4MjlmZjUxMDBlOTAyZTU4NmIgcmVsZWFzZTIyLW1haW50CisyODQwMiA4NmFhMmMyZGE0MGU0YjUyY2M2ZGVlMTAzZjUzMzdjNmU2NmJmN2IxIHJlbGVhc2UyMi1tYWludAorMjg0MDMgYzUxMmE5NDMzZWFmM2IzZjE2MGJiYTY5MDVkYzU1NTM1YWU3Mzg0MSByZWxlYXNlMjItbWFpbnQKKzI4NDA0IGEwZGM2ZjUwNDk3Mjg1YTE0NmIxMjBmOTNhMWU1OGRjNDY1NWY4M2UgcmVsZWFzZTIyLW1haW50CisyODQwNSBhYzQ2OGUyMGI0Y2VkOGJjYTA2ZWE0YjhlYjA1OWU1Y2U0NmQ0OThjIGxlZ2FjeS10cnVuaworMjg0MDYgM2E3NDk5NDMxZGNjZjNjZmZkMWZmNDhkYzI3ZjMyYmNiOTAwZjJiZSBsZWdhY3ktdHJ1bmsKKzI4NDA3IGY5NWMwYjg5NGYyNzY2ZTkyZGU4MTVmOTQ4ZTgxOWE5YWE4YmI2MGQgbGVnYWN5LXRydW5rCisyODQwOCAyY2NjZjgyNDIwMDliYWM1NTk4YjI2MmIzOTNjZDExYTZhNGE1OWQ2IGFzdC1icmFuY2gKKzI4NDA5IGZjYjUyMDFjNjllZDg2NzUyYTU4NDY2M2E0NTZhM2E1M2RhMDU5MTUgbGVnYWN5LXRydW5rCisyODQxMCA0ODEzODM3MzcwOWI0NzAwNDA0M2M0MzkwYjBhZjA0MmE0MDhhZmRkIGFzdC1icmFuY2gKKzI4NDExIGJiYWViZTZiN2MxYWRmZWJlN2RhNTljNWJhZWFmMzAyNzI2MGQ2MTEgYXN0LWJyYW5jaAorMjg0MTIgMGI3MjY0OTZjZjQ0ZjE3YWRmZTNiN2NiZmE0NjI3NmU0Y2NlNDEzNyBsZWdhY3ktdHJ1bmsKKzI4NDEzIDU5YjdmNGU5ZmQ2MTQ3MGRiZGRhZDBhNmU1MDVhZTcwOGE1MDQ0OTAgYXN0LWJyYW5jaAorMjg0MTQgYzc0NDE0NGM0MDQ5ZGY2NzM3YWRkZTdiYjBkNjA5NmNlYjhlMDUyYSBsZWdhY3ktdHJ1bmsKKzI4NDE1IDk0YWRmNjk5NjE4ZmVkNWFkNDdjNzAyMDE5OGM3ODhkMGJjYjhkYTIgYXN0LWJyYW5jaAorMjg0MTYgOGZkYjA4NzdkMzUyMzgzODcwYWIwOWI0OWE5MDcwZjkwODYxNmU2MCBhc3QtYnJhbmNoCisyODQxNyA3NjJkZDA5ZWRiODM0MmZiMDQ4NDM5ZmFiNmVhODFkNjJjMTMxZDY0IGxlZ2FjeS10cnVuaworMjg0MTggYjQzOTg2ZjczZmM5ZjhhMjhhZDlkZjY3MDMzMDc4ZGQwN2U2MTcyYyBhc3QtYnJhbmNoCisyODQxOSBmODI0NzVkNzg0MTUyNWM4NmY1OGViZDgyYWE1MDQ0MjQxNjJmZmZlIGFzdC1icmFuY2gKKzI4NDIwIDEyYmI2ZjBjNjBmOGM2MzhjMTJjYmRiOGE0ZjQ2OTJmNGI3MWVlMTQgbGVnYWN5LXRydW5rCisyODQyMSAwODU3YWFkYzYxMmEzMzU4ZWEyNGNiMTQ0Y2JiZTRmYmYwNGYwNmM1IGxlZ2FjeS10cnVuaworMjg0MjIgYjViNzBlNDEwZjEyNGY4ZWI5NTkzNmVjNzMxNjQ3NTA2OGVjMjE2MSBsZWdhY3ktdHJ1bmsKKzI4NDIzIGFjZWNkYzRmNzMzMzYzYzRlN2UxNDUyYWJkZWQ2OTM3NzEzYTViYTQgbGVnYWN5LXRydW5rCisyODQyNCBjNjgzMTFlZmQzNDZlZDlmNDA2Nzc4OTIzMzQ2NGEwMWQ1YTIyOWQ2IHJlbGVhc2UyMi1tYWludAorMjg0MjUgZDQyMWJiYzk5NjFjOGNmZTBhYTI2NTliMjBjODBjNjg3NGUxOWFmOCBhc3QtYnJhbmNoCisyODQyNiAzNTc0OWRiMTA4MDkzMDU2MTAwNTBmYmY2MWI1ZDg1NWNkMmI0ZTFkIGxlZ2FjeS10cnVuaworMjg0MjcgZjM2ZTE2Y2E4ZjUwNTgwZjUyODVlZDgzZTMyMTJmMDYwZWQxYzU2MSBsZWdhY3ktdHJ1bmsKKzI4NDI4IGYyZDc1NzQ5ZTYxYzVlMzIyNDkyYTFlMjhjZmRjZGMwNzlkMzAzMTggbGVnYWN5LXRydW5rCisyODQyOSA2ODYyN2UwYWNkMTViYWI4NWJhZWZiM2RhMmFkYTllZGI2YmFlMzhhIGxlZ2FjeS10cnVuaworMjg0MzAgZmVlYjBiMDJiOGYyNTI5ZTVlNDBjOTdhYTNmZGM1NjhlOWE4N2ViOCBsZWdhY3ktdHJ1bmsKKzI4NDMxIDI0ZTgwZDk2YmQwYjZlOTI2YWI5ODUxNGEwNDQ0ZWY2OGViNTdmNTUgbGVnYWN5LXRydW5rCisyODQzMiAwZWJlYzgzZWIzZGRmYzFjNWI1YTJhZmQxMmRlNzYyYWRlM2FhYjM0IGxlZ2FjeS10cnVuaworMjg0MzMgYWE0NTAzNTU2MzM5ZWRjZTAzNzQ5MzJhYmIyNWQ5YTQ0YTdlODliMiBsZWdhY3ktdHJ1bmsKKzI4NDM0IDgxYmU2MTA1NjcxN2Y4ODEzNjA2MmZiNzI4ODlmNzY3OGI1MTJmYTggbGVnYWN5LXRydW5rCisyODQzNSBiYjI4YmJjMjhjMzIzYWIyOWQ1MDY1NWUyNjc4ODg5MGM0NmM2Yzc2IGxlZ2FjeS10cnVuaworMjg0MzYgZTQxMDU4ODQ1Yjc5MmVkNjYyN2U5ODRmMGNjYjEyZDRjMDFkMjZmNiBsZWdhY3ktdHJ1bmsKKzI4NDM3IDkwYjEzZDk5OTgyNzEwZmY2YzM5ZTA5MmJlY2E2N2E3MzkxZDMyZGUgbGVnYWN5LXRydW5rCisyODQzOCA4MWFjYmUxNjgwYTMzMDhiYjgxOGFlMDYzMmY3N2Y5MTVjMWIwYzUwIHJlbGVhc2UyMi1tYWludAorMjg0MzkgYTZkZTUwYzBkNDU3ZWI2MWNmZWI1OTkyZDc1MTFjMGNjODFkNzNmZCBsZWdhY3ktdHJ1bmsKKzI4NDQwIDA0OTA5NmVmYTJjM2NhODc2YjE5YzM3YjI0NjhkNzM4NDVmZDk2MGEgbGVnYWN5LXRydW5rCisyODQ0MSA4ZmE3NTNhOTcwNzdiYTA5YWQ1YzQyMWMwMDcwN2NhZGMwOTAzNmY3IGxlZ2FjeS10cnVuaworMjg0NDIgMmMyYjg0YmRhMTQxYjdhNGM4YzU5MzFlYWY3YTBmNmEyYjI3MmJkNSBsZWdhY3ktdHJ1bmsKKzI4NDQzIDM0ODQzMDk1NzNmMjFjODM5Yzc3NTM5MmI1Y2JlZGVjMTEyM2YxODAgbGVnYWN5LXRydW5rCisyODQ0NCBhZDI4OWZiYjZiNDhkNzJiNzgzOGU4M2ZlMGYzMGI3Zjg3ZjM2ZmE5IGxlZ2FjeS10cnVuaworMjg0NDUgYWZmMDY3YmE4ZDA3ODhmMGE5MzdlOWJlM2RlZjYyNTBiNzM4YTU4NyBsZWdhY3ktdHJ1bmsKKzI4NDQ2IDhjNjFjOTIwMjViNmM3N2I4M2U5MmJjNzg5MzA3NGIwNDdjMWRjNjQgbGVnYWN5LXRydW5rCisyODQ0NyA0MGU5Y2ZkZTFjNTA4ODBhMWYxOGUwYTRiZWUxMzEzY2RmNDkxODdlIGxlZ2FjeS10cnVuaworMjg0NDggN2ZiMzc1OWQzODY2ZDUwODRlNGEyMjI1OTJmMGRjNzY3OTVlODQ4YiBsZWdhY3ktdHJ1bmsKKzI4NDQ5IDhjODA1MjM3ODAxN2NiNDUzYjBmMjMxNTUwZWQ3M2FlNTc2MDUyOTggbGVnYWN5LXRydW5rCisyODQ1MCA0ZTk5NmU5NTllYzE4N2M3MTM3ODE3Nzc3ZTcxYzEwNGVkMDFkMjg3IGxlZ2FjeS10cnVuaworMjg0NTEgZDVlYmQ2MTZhM2U2ZjRiY2Q1ODA5M2JjNTVjMzhhMzY1OTZjMTE4MyBsZWdhY3ktdHJ1bmsKKzI4NDUyIDBlMDFiODVhZGQ4MTI2ZTZhYzczNzg1N2NlOTllYjZmMDNiMWRiMzMgbGVnYWN5LXRydW5rCisyODQ1MyA3ZDNmODMwNmEwMWVkNWFlNTQzZWI4NDhhZmM1OWZkZjg0ZGI3MGM2IGxlZ2FjeS10cnVuaworMjg0NTQgMGI5NzkyY2JlOTAwNDJiMTc3MDFlZDMyNDM5M2MxNmU2NjdkMzhhZiBsZWdhY3ktdHJ1bmsKKzI4NDU1IDM2NDdiMzBhYTlkZTA5YWM1NmIyZGI3MmY3NGExNmU0ZWUyNjQ5ODMgbGVnYWN5LXRydW5rCisyODQ1NiBkYjQ5ZWU3NmI3ZDBlM2Y3NmRjZjA1YmEyYjMyNGM4MzkxMDcwM2VjIGxlZ2FjeS10cnVuaworMjg0NTcgZWQwYjAyNjcyZjA5MDVkZDBhOWEzZmE2MGYyZmIwNWI4ZjIwMWFiMCBsZWdhY3ktdHJ1bmsKKzI4NDU4IDExODlmNzdjZGY4NDVkMmNlNzllOWNlZDAyZjg2ZTIxMDcwMzJmYzQgbGVnYWN5LXRydW5rCisyODQ1OSA4Y2YyMDU4OTJmNjYyODk2MDZjYzI2YTM4OGI1M2VjZDMzNDUxYWJjIHJlbGVhc2UyMS1tYWludAorMjg0NjAgYmQyYWEwMjQ3YWRhYWQ4YzQ2YTk3ZDk3NDcyNDQwYzk5ZWY2NzY1ZSByZWxlYXNlMjItbWFpbnQKKzI4NDYxIDc2Y2Y4OGU4OTM3NmRjMjU0YWQ3ZmY2MTIwZTZmODMxYzA5NDZjZTMgbGVnYWN5LXRydW5rCisyODQ2MiA0MzRiYzFkZWE0ZjhiYTdlNzdkNjU4NmIzM2VkNGVmN2JkMTFmMDNjIGxlZ2FjeS10cnVuaworMjg0NjMgZWMzNzM2OTZjMTdiYzM3ODYyNjVjOTcyMWM3Zjk5ZmUxZTY0YmU3NyByZWxlYXNlMjEtbWFpbnQKKzI4NDY0IGQwNDEzZGUxNDNlYzI0NWFiMGUxMjVmY2UzZDMzMDg1ZjEzODRiOTkgcmVsZWFzZTIxLW1haW50CisyODQ2NSBkODNjMTRhZTY0N2RkMDMxMGMxYWEwZmUwNWYwZmVjNDZkM2I1ZWEyIGxlZ2FjeS10cnVuaworMjg0NjYgNDAyOWQ2N2NkYmQ1ZmRiZDQyMjVmZDc3Yjg4NDdlMGIwMzgzZGQ1MSBsZWdhY3ktdHJ1bmsKKzI4NDY3IGNiZWUyZWQ2Y2Q3NTVhNzcyN2IzYjhlYTAyNmM4NmNhZGE1MzQ0NjQgbGVnYWN5LXRydW5rCisyODQ2OCBhN2E2MGIxNDFkMWRhNjgzOGRjOWUxZTFjMzM0OTk5OTVlNmI3NTMxIHJlbGVhc2UyMi1tYWludAorMjg0NjkgNjNjYTEyYWJhMDc5MzRhNTlhNWY0NWM3MzdlZTZmN2Y4Y2I2ZGRhZSBsZWdhY3ktdHJ1bmsKKzI4NDcwIDhlOGQzZTRhZjRmNDY4OTRiNzgyYzlhN2QyMDk3M2IxMmUyMmY2Y2MgcmVsZWFzZTIyLW1haW50CisyODQ3MSAxYWEwODE1ZmFkNGIxMTY3MWM1ODEzNTI0OWE5ZjllZmNkMDQxZmI0IGxlZ2FjeS10cnVuaworMjg0NzIgZTBiODU1YWFkMjMwMjA5MmUzMzZkYWQwMTY3YjBlM2YzMWE4YTUxNiBsZWdhY3ktdHJ1bmsKKzI4NDczIGUyMDQyYzc2YWYwNjU2MGNjYTJiZTZhNDMxZGE5NWQ4ZWI2YmEzOTkgbGVnYWN5LXRydW5rCisyODQ3NCBiODA2N2RkYzExZjg3YTk3ZDQ1ZjNmZTcyNzU5YjNhZTFjYmMzNGUzIGxlZ2FjeS10cnVuaworMjg0NzUgYWQzYmU0NzFiMzk5MjE5MzMwNjg1ZDQxZmI5YjJmNWRmODIxMmJmZSBsZWdhY3ktdHJ1bmsKKzI4NDc2IDBkNDkyOTAyODk0YTU1ODg3MGU3NTNjNDZlYWM0OTA4MmQ1YzM5YTEgbGVnYWN5LXRydW5rCisyODQ3NyA3Yzc2YzBmYzJlOTJhMDk3YmY4ZTkwMDU4M2IxZDVhMjRlMGE1ZTY0IGxlZ2FjeS10cnVuaworMjg0NzggMTAwZjE1NDk4MmM4YmJlMDljYTUxOGFkMGY5M2RjZDRiNDlmOGM2YyBsZWdhY3ktdHJ1bmsKKzI4NDc5IDdkYzdhYjVkYjkwOTllODQ2NDliNGMzNTRiMWQ0ZDExODAxNjlmMjAgbGVnYWN5LXRydW5rCisyODQ4MCA4MWEzNmQyYTJkMTM3ZDEyMDliNTQxODIzZmVkZTRkMzdhYTgyMzIwIGxlZ2FjeS10cnVuaworMjg0ODEgNWE4OGYxNzRiNjg0Y2JiZjgwYzFjN2I3MTY0ZWQ4MDIzMDhjMzhlYyBsZWdhY3ktdHJ1bmsKKzI4NDgyIGFiMTc2ZTE2NGVhYjY5NDhiMjc5MjVlNGYyMWFkZTZmMmQwYWMyZjggbGVnYWN5LXRydW5rCisyODQ4MyA0NmIwNTA0NTU1MzM2ODNiZDhkZDIyNzA2ZWZjMTZjNzAwMjg1MmU0IGxlZ2FjeS10cnVuaworMjg0ODQgMDNlYWRjNTdkNDI5OWM0MTRhMWRlOTkxMmQ2M2E5MjY3Mjg3YjNiNSBsZWdhY3ktdHJ1bmsKKzI4NDg1IDgyMzFmODZjODYyOGE0NjM5YzE5MDE0MGNhNzlmZjQ5MDljZTVhMTIgbGVnYWN5LXRydW5rCisyODQ4NiAyNzRmYTBiMzRjYTdlNmIzZDQ0YTExNWRkNzI2OGFhMjE1MTRkYTEwIGxlZ2FjeS10cnVuaworMjg0ODcgMDViMTVjZTI4ZTMxZmE0Zjk0YTg1Mjk0OGM0MGQzYzgyMTQ1ZTBjYiBsZWdhY3ktdHJ1bmsKKzI4NDg4IDVmYjZmNWJiNzY5OGZiOGY5OTExZTJmOThmMGYyMDIwZTZkNDc2MjYgcmVsZWFzZTIxLW1haW50CisyODQ4OSBlZmMxMjhhMzM0YTU1ZjI3NGEzYmQxYzMxYzk2MjNmMjEyNzJlZWMwIGxlZ2FjeS10cnVuaworMjg0OTAgODI1ZmM4NTUyMzI1N2Q5ZTkwYzY3MjI4YTljYzgwM2MzYjVlNDU3OCBsZWdhY3ktdHJ1bmsKKzI4NDkxIDMxYTc3NGE2ZjYwNGI1NzBmOTE3MTZlNTU4ZTdkYWY0YTQxZDMyNDQgbGVnYWN5LXRydW5rCisyODQ5MiA2YTIyMTgzNGVkN2RmNDJlODBjMjAxYTExNDI2MDc3ZGQ0ZTYyOTAwIGxlZ2FjeS10cnVuaworMjg0OTMgYTU0YzVjZmEzZjhmYjIxNGNkMzVmNDFiOWExZjhjYzQ3M2U1MjZkNiBsZWdhY3ktdHJ1bmsKKzI4NDk0IGJlMjg2OGE2M2VkNTNkMWYyNGU0YzA3MWY0ODkwNmU1YTEzOTI4YzIgbGVnYWN5LXRydW5rCisyODQ5NSAwMDRkZTFhYzIzYzQ0MjMzZDlhYjQyMDFmZWFjM2E2MTgxZWFmMzU0IGxlZ2FjeS10cnVuaworMjg0OTYgNGFlYWNmOWY5ODU4ZTQ1ZmQwMjAwNDE0YmU4MzIwMWQxNjYwMDM5NiBhc3QtYnJhbmNoCisyODQ5NyAyNmM1MGYzMjI2MjIwMDIyODBiZGYzMmM4ZWE3OTliZDJhNzY2ZGI5IGFzdC1icmFuY2gKKzI4NDk4IDAyZTBlNmQzODEzZTllYjM0MmY1ZDM2YTg0ZjQyYzYwMTkyMDQ5YzAgYXN0LWJyYW5jaAorMjg0OTkgOGU0NzM2MWM0YjViMDM5NDliZTkyNzFmYzE0ZTZmNTQ0NWI3YzkwMSBhc3QtYnJhbmNoCisyODUwMCAxM2U5MGUzYzRjOTkzMWJmZjViMDU3YjgwYTdiOWZhN2IyY2JiMGI2IGFzdC1icmFuY2gKKzI4NTAxIGM1NTY5MDY0Nzk2MTMwMTI5MzY5NDJjOTcyYjMzMjRjYTY0ZDBjMzUgYXN0LWJyYW5jaAorMjg1MDIgODk0MjE1MDVkYjU5MDMyOTNkYmVhMGFlYTAyMjVlM2IzZDhiMTk2OCBhc3QtYnJhbmNoCisyODUwMyAwYzU0NDg4YTc0ODIxOWZmZGE4YmU2ZmY4Yzg1NDZkNWYzZjYyZmRiIGFzdC1icmFuY2gKKzI4NTA0IGVkMmE4YzU0OGM0NDRkOGI5Zjk1Y2JkMzY1ZTAxNTRjNDQ2YmFjOTkgYXN0LWJyYW5jaAorMjg1MDUgNWExMDE2YjJjNDQwY2RjMWE0MmU4NDJlOGFiM2JkNmY0NGU1YTA1NSBhc3QtYnJhbmNoCisyODUwNiA1YTQxYTcwYmM1ZDE3Y2UxNDNlZjY5YjExYmRjMWM0ODEwNmFhNjAyIGFzdC1icmFuY2gKKzI4NTA3IDJiZTk2OWQyOTUxMGJhOWM0Y2FmYmVkZmVkMmMwMzhhNDY0OTFiMDkgbGVnYWN5LXRydW5rCisyODUwOCA5YTJkZTM5ZThkYTc1ZmJiZmVlZTRiMjYwZGQ0YTdmN2E0MzMyMDI0IGxlZ2FjeS10cnVuaworMjg1MDkgNzA2MDNmNDg0MDI5NDZhMjM4N2UwZTM1YzM4ODIxMjk5ZmZiODc5MSBsZWdhY3ktdHJ1bmsKKzI4NTEwIDRjNGY5MmIwYWY5MDM2OTU0MzIwZmI1MmUyYjdiZjZjMTFmZjQ3YzUgbGVnYWN5LXRydW5rCisyODUxMSBiMzM3ZWYxNmMwZDJkOGJjMzEzMGQ3MzU0NGM3NzU3MzFhNjYxYTM3IGxlZ2FjeS10cnVuaworMjg1MTIgNWZlNGQ5M2RmNDI5MTM0ZWY4Njk1YzEyZTU5ZmY5NjJmZjhiNzNkMiBsZWdhY3ktdHJ1bmsKKzI4NTEzIDg0YmZiOGE4MDVmYzlmZjY2YjM4MWVlMWUxNjQ2YzFkMzIxMmEzNDYgbGVnYWN5LXRydW5rCisyODUxNCA5YTE3OGFkYjRlMmRiMDA4NzJkY2M1ZmM1NzkzMDFkY2VhYzRiZjU2IGxlZ2FjeS10cnVuaworMjg1MTUgMTk5ODJjNWViNDkzYWYwOWEyMmY1MDdhNWJlNTAyYWQ1N2UyMWRhNCBsZWdhY3ktdHJ1bmsKKzI4NTE2IDg3NzE5ODcwNWM5MmFkYjAyOGRhYTJlMDZhZWM5OTRlYWIyYzE0ZTQgbGVnYWN5LXRydW5rCisyODUxNyBjMTQ5ZDM5MzE0MzQ0NzQwZjQ2OTZjOTUwNjVhZGFmY2Q0YjRlYTg0IGxlZ2FjeS10cnVuaworMjg1MTggMDMzN2RhZDg0MDNlMTBhNzM1OGJlNTY3NWYzMjY2Mzk0MGVmM2QwMyBsZWdhY3ktdHJ1bmsKKzI4NTE5IDQyN2VmYzM1YjViZWI2ZGViOWJkMjlmMDIzMWJlNTc2ODNkMzIwNTggbGVnYWN5LXRydW5rCisyODUyMCBhZTE0NjllNDY4YTA0OTA4OTZiYjFhYjkxZmVjYjljZTA5NDk0MjA3IGxlZ2FjeS10cnVuaworMjg1MjEgNmE4NWExYzlkMzNkOGYzYWYzMmU3NDQ2MWYwMzdhMDM3NTJkNGU0NyBsZWdhY3ktdHJ1bmsKKzI4NTIyIDFiODBlMGZkNWE0ODE0NTk4ZjQ0YTU1NzA2OGU2YmM4YTA1ZWZjMDMgbGVnYWN5LXRydW5rCisyODUyMyA5OGRkYzQyOTdmMzYxZGU1ZGJlOWJjYjMzNDUyZjYzNTc1MDNlNmM0IGxlZ2FjeS10cnVuaworMjg1MjUgNTY3MmIxNTczODU1YTUxNWFhMzYzZmQ3ZjhlN2RhZTJiNDI3MGI5ZCBsZWdhY3ktdHJ1bmsKKzI4NTI2IDczYjJjYmFlOWQ5MDE3ODA0MzcwY2U1YmViNWZhOTljNzBiMjY2NWEgRFNfUlBDX0JSQU5DSAorMjg1MjcgYzAyYTY2ODQ4OGQwODJjNGQwZGI4YjM4NzI3NzdlNjhjMWEyYzJkNiBsZWdhY3ktdHJ1bmsKKzI4NTI4IGE2OWExMjQ4NGQ2OWFhODY2ZTY3MjY4ZjdhNzYxNDUyZDAzYTI3NTIgbGVnYWN5LXRydW5rCisyODUyOSBiYzU5MGJlYWRmMGJkMTc2MzRiYjBlMWY2NDJkYjY2NzdhZDdkMzhiIGxlZ2FjeS10cnVuaworMjg1MzAgMzIzMzFkMjZkN2NmMTkxMTRmMWY4MGIzZWViNTlhNTU3OWY0OGU5NSBsZWdhY3ktdHJ1bmsKKzI4NTMxIDhhMTZkZTBiZTExMTc4MDkyYmJlYTA1MDY1MDE0YzdhZDRiNDdlZmUgbGVnYWN5LXRydW5rCisyODUzMiBmOWU0MjQzZmY3OTJlNzk0MTFjMTg4YTUxMTZkZTI1YzY4NmYxNmY4IHJlbGVhc2UyMi1tYWludAorMjg1MzMgNGI1ODBhNDYyNTA4MGNkYmViMjJkYjhmMTQwYTVhMDVlYzViNGI3OCBsZWdhY3ktdHJ1bmsKKzI4NTM0IDM5ZTA5ZjMwZjdlZjI4NDZhN2YxYWI1OTYyMzBlMWY0NGM0ZTZkM2IgbGVnYWN5LXRydW5rCisyODUzNSBjMGQ1ZmY4NTU1YWRlYTQ3MDVkNDU1NmZmYjA5OTU0N2FjOGJiYjY1IGxlZ2FjeS10cnVuaworMjg1MzYgMGVjYjNjYWJmNDBiOWE4NmU2MzZjYjk5Nzg3NmI1ZDY3MWZmMzM1NyBsZWdhY3ktdHJ1bmsKKzI4NTM3IDNhMjZlMzUyZjBhNmQyNzVmZjFlMDc3YzgwYWFhOGNhZDIxMjlkZTEgbGVnYWN5LXRydW5rCisyODUzOCAwMGI2ZGQ0MTRiODA0NjFmYjc4MDFhNGU4YzFkNmQzZTFjMWI4NzFiIGxlZ2FjeS10cnVuaworMjg1MzkgMDQwMWEwZWFkMWViMzM0N2QxMjBkMmEwODE0ZGNhNTIyZjEyYjgxMyBsZWdhY3ktdHJ1bmsKKzI4NTQwIGI0NzBiNDE3ODM5ZDhjYjQ2ZGYzMWEzNDUyNzBiN2UzMmUzNmVmZTEgbGVnYWN5LXRydW5rCisyODU0MSBmMGZmMDYwY2QxOTRlNTE3ODcyNWU1YzkyODIxNzY2OTQwMzgyYzM0IGxlZ2FjeS10cnVuaworMjg1NDIgZmIzMzRiMWE1NmE2NWMwNzEwOGFiMzhiZTgxOTMwNzA3MTkzM2U1ZSBsZWdhY3ktdHJ1bmsKKzI4NTQzIGEyYjFmM2MxMTM4N2E2NDcwOGM4NWVkZTA4OGNiMWQxZDBiNTBkYjcgbGVnYWN5LXRydW5rCisyODU0NCA4ODM0Mzg1ZjI5YmY1NDEwZDlmNzI4YWEwZDM3YTZkNzZjNTc4ODk0IGFzdC1icmFuY2gKKzI4NTQ1IDc1OTYxY2IzNzQ3ZjlkYjliZjQwMWNmZDFhOTRmZGIxNDAzMTEyN2MgYXN0LWJyYW5jaAorMjg1NDYgNjkyOTNiODQ5ZDg1ODA3YjRkNmUxODFiYjI0NmI1NTBhYTJmY2FlOCBhc3QtYnJhbmNoCisyODU0NyA3YzczMzM4MDI3MTQ5YjIwYzg2OWE5ZjQwZGE1MjMzZWI2ODdjMzVlIGFzdC1icmFuY2gKKzI4NTQ4IDRlYTA4MTEwMDMwNTI5YjhiOGIyOGRmOTViMDljODI1MDUyNTdkYjAgbGVnYWN5LXRydW5rCisyODU0OSBlZmMwZWRjMzBmZWE0MzUwZmVjMGMwNWJkZjllMzNjNTYzMmYzZTBiIHJlbGVhc2UyMS1tYWludAorMjg1NTAgMzAxNWM2NzhmODFkZGY4NTBkZjEwMGU1YTg2ZTMxM2RjMDc1MDAwNiByZWxlYXNlMjItbWFpbnQKKzI4NTUxIDBjZTI3MjJhM2UxNTRkMDkzNGJiYjliNTUyNmVkYzVlOTM4ZjgyODQgbGVnYWN5LXRydW5rCisyODU1MiA0YzgxNjNhMjc2NDAyOTdhNmIxY2JjOTlmNWQ0NWRmNWQyZDg5OThjIHJlbGVhc2UyMi1tYWludAorMjg1NTMgOTUzZWJlMGMwYzI1ZWVhYWUzYjNlZjc4ZTU0YTE4YmUwOTgwOGY4ZSBsZWdhY3ktdHJ1bmsKKzI4NTU0IGM3MzEwZjM0OGM3OGUyYWZjYWZiNmFjYjFiZWFhYTk2M2UxZjk4YTMgbGVnYWN5LXRydW5rCisyODU1NSBlNTAwZjE4ZjMxMzEyODJhOTdlN2M2ZmMzZjVhNDZlYzMxNWJiYTJlIGxlZ2FjeS10cnVuaworMjg1NTYgNmI2N2QyNjA3OWYyNTU2OTBlY2ZjYzIyZGUyYjIwNzU3NjYyYmVmNSBsZWdhY3ktdHJ1bmsKKzI4NTU3IDI3YzcxOGM4MmVmZGUxNDZjNGY4OWMxNzQ0NjhmYjYxMTRkNmNiNmQgRFNfUlBDX0JSQU5DSAorMjg1NTggNDhkMTA4ZTViODg0MWEwZTg5Mzg5ZjAxZjhjMDNlMGU5ODRjNTk4MSBsZWdhY3ktdHJ1bmsKKzI4NTU5IDE3Mjg0NWMwOWFmZWNmNTQyNTNhNGY4NDNjYTRhZTdlZTM1ZDEwNGUgbGVnYWN5LXRydW5rCisyODU2MCA1NmY5ZjVhYjZlYzExZjhhOWZjM2I2OGE0YTFmOGMyZGZiMmIwMjFjIGxlZ2FjeS10cnVuaworMjg1NjEgNTE2NWEwZWU4NGM2MjBhNmY2ZWNkMDNkNTNhZGNkZDk0MmM2N2E0NyBsZWdhY3ktdHJ1bmsKKzI4NTYyIGYxYzY5YzMyYzQyYjJiZWFlNjQ5MzNjZjNiYTM1NmIzNjM4NTUwYTYgbGVnYWN5LXRydW5rCisyODU2MyA5NjRkNjg4OGEyMzY4ZTllMWMwYzEyZTRjNDM0NmEyMzBiZTg1NWI0IGxlZ2FjeS10cnVuaworMjg1NjQgMzY4YmMzYTQ5MTllMzA1YzVjODM3MmZiMzUwNmZmZWI5MGIwODY3YiBsZWdhY3ktdHJ1bmsKKzI4NTY1IDg1MjllNTU4ZjcxZDc0MmZlNWJmNzY4M2Y5MTIwNmRkMTc3MWE0YzAgcmVsZWFzZTIyLW1haW50CisyODU2NiBiODllYmQ1N2NlYjRhOTVmMmNiMzgwNGFkMzRmZmQxOTYzYzM1ZGE3IGxlZ2FjeS10cnVuaworMjg1NjcgMzhmYTc0YTIwNWVhNTZkODU2NmY0NjlmNWQ0MDRhNDcwNDQ1MDk2MSBsZWdhY3ktdHJ1bmsKKzI4NTY4IGNjNTNkZGI2NDI0ZjNiNDE1MjVmOTA4ZTczZDdjZTZkNGU5NTdiNDYgbGVnYWN5LXRydW5rCisyODU2OSAwZjAwMTY2MzJiZTQ5ZjlmMDlhMDUwMjkwZDRhYmNmODE3YmY1YjM2IGxlZ2FjeS10cnVuaworMjg1NzAgMGQ5MmViNjNkYjg5YWU4OTRiOGIwNDg4YWE3YjFjZThiMWI4OGE3ZCBsZWdhY3ktdHJ1bmsKKzI4NTcxIGRkYWQzNjdiODBjM2Q0NjgxMmRhMmRjNWI4ZTM4OWQxNmFhNDdiNDAgbGVnYWN5LXRydW5rCisyODU3MiA4MDYzNGNhMDJkYmY5MzY0YzIxMjIxOTJmOTFjMzBkNGMwOWFjY2QxIGxlZ2FjeS10cnVuaworMjg1NzMgZDQ0NmI1MTUxMzE2ZWE4MmU3ODA1M2EwMTVmZWNjYmQ0ZWFlZDNiZCBsZWdhY3ktdHJ1bmsKKzI4NTc0IGFmNjk0NWYzM2IwODYwZmYxMGMwNjAwMjQ3MzVlYmIxYjllMmVmNTEgbGVnYWN5LXRydW5rCisyODU3NSBiZTI1ZDIzNmYyODZkZDRlNzFhYTExZDlhNzJhMGEwMDNmYTU0OGY4IHJlbGVhc2UyMi1tYWludAorMjg1NzYgZGViNjRkZmM4NDE2NmNhNTE1Njc1MjMzYjEzNjBjODZkYzdlMjQ3MyByZWxlYXNlMjItbWFpbnQKKzI4NTc3IDY1ZTBmMmUzOTVhYzgzNzY2MDI2YmRmZWZhNmFiMmUwMjNlYmZhYjcgbGVnYWN5LXRydW5rCisyODU3OCBhZGFiZGI5OWVjYzRlZTc0NmQyOGNjNTMyZjEyYWE5ODUwNzliMmMyIGxlZ2FjeS10cnVuaworMjg1NzkgNGIxNTRmMTlkMWFmMmY0ZjBlZGMzZDNmNGM5OTAzZTVmOGJiZWIwNyBsZWdhY3ktdHJ1bmsKKzI4NTgwIDBlMjM2Njg3OTI4OWUyMjYwY2EyOTMwYmY4NTVkOWY3MTJmZDMwNzQgbGVnYWN5LXRydW5rCisyODU4MSA0YjIwNWUwZmI0NmJjMWY4NjEyMmY2N2NhYjZmMzhlYmE5NDA5OTgyIGxlZ2FjeS10cnVuaworMjg1ODIgNWMyNDMzOGYzYWU1ZjQyMmI2OWI0MzlmNzMxYjFlNjE5NDg2Y2M3ZiBsZWdhY3ktdHJ1bmsKKzI4NTgzIDEwZjk4ODg4NTNjYzYwNDEyYmNmYmVlNzZjMWE4NGY5N2JmOTg0MjIgbGVnYWN5LXRydW5rCisyODU4NCBhYzc0MTU4N2U2NmI5MjM0NzQ4ZDZkZWI0ZDFjOThkOTI2MTYxMTA2IGxlZ2FjeS10cnVuaworMjg1ODUgNWNiOGQ1NzJiNGRlZjAxYWMzYzIyZDUxYzJiZjRlZTY2MWIwN2U2NCBsZWdhY3ktdHJ1bmsKKzI4NTg2IDBjOWRmZDVhMDZkNDQ3MGMwMDA0Mjk5YWM0NWIwNmE0MTFiYjY3OGEgbGVnYWN5LXRydW5rCisyODU4NyA3NDFlZGQxY2EyM2E4YmU5YmY0ZDYxODdmNWQxMWY2MWE4ZmYyYzJlIGxlZ2FjeS10cnVuaworMjg1ODggZTU2NmFmOTQ2NDhiYTY2MzIwOTQ1MjFjOGM0MDdhYmYwNDNkZTRlNyBsZWdhY3ktdHJ1bmsKKzI4NTg5IDY0NWRjMzNjZDQ4MTI0MGYwODU5N2I1ZDM2ZmRkZWNmN2FlNjFhMjcgbGVnYWN5LXRydW5rCisyODU5MCBiZjkwZmI3MWFhNzZkOTNhMzYxMzEyNmNkNWM5MzkyY2EzNTk5MGRlIGxlZ2FjeS10cnVuaworMjg1OTEgYzFjYTAzZWU1MTZlMTNkYzZiZGIwODhjZWI2ZjdiZTExM2IzYWQ2YyBsZWdhY3ktdHJ1bmsKKzI4NTkyIDBmMGQzNDc0ZjNmNjg5ZGZlMjEzN2Q1M2Y4YWFjNDFjNjllMmYyNjQgbGVnYWN5LXRydW5rCisyODU5MyAxM2E1ZjMyNjI4MzIxMjU3YmVjN2QwM2JjMDY4ZDMxNmViZjc4MmY5IGxlZ2FjeS10cnVuaworMjg1OTQgZTE2MTcxNTZmOTNmZGM5YTczOGJmNGIyZjY5YmEwMjA2M2FlNjVkMiBsZWdhY3ktdHJ1bmsKKzI4NTk1IGMyMTNlOWI4MDAyNjI5OTc5ZTU5MTkxZmIwN2FiM2ExZGRmYWFiZGUgbGVnYWN5LXRydW5rCisyODU5NiBhMzdjZmMxYzk3MTZjN2E2NTgzNGY5M2FhMzk2MGJkYWZhNTFjZmIxIHJlbGVhc2UyMi1tYWludAorMjg1OTcgMmFjMTBkOTMyZDdmNTU5MTcyYjM2Yjk4OWY0NGNjZGY4YmI1MmQwZSBsZWdhY3ktdHJ1bmsKKzI4NTk4IDYxMDQ4YWRhMDViY2M5NTQ5MzI3ZDhhNWI2MTI2M2FhN2U0OGVkM2QgcmVsZWFzZTIyLW1haW50CisyODU5OSBiNmJmYWE2Y2E4NGQwNTRhODE4OWRjYjVmNzAwZDQ5NzQyNDFkMjNhIGxlZ2FjeS10cnVuaworMjg2MDAgYjhiOTJiM2Y1YjE3YzZlY2Y5Yjc5MGU5OWJjMTc3YTE1Y2UxNWYzMyBsZWdhY3ktdHJ1bmsKKzI4NjAxIDk4ZDhiYjJlZTRjMzM4NDgxY2ExYTdhMWFlMmIxYmQ2MmRiMjE3NWYgbGVnYWN5LXRydW5rCisyODYwMiA0MGMzNTE5MTM5ZGU4YjZjMDIwM2NlOTI2YjQyMWI2NTIxY2QwYzM5IGxlZ2FjeS10cnVuaworMjg2MDMgOWVlMmZiMjdkMzNhNzIxODRjODdiMjMyZGMxZTliMjBiYjRkM2RmMSByZWxlYXNlMjItbWFpbnQKKzI4NjA0IDEzZDA2ZTVjOGE1YzNlZjRiOTU1MGRlNjI1ZjQ3OGQ3NDg1MWUyODUgbGVnYWN5LXRydW5rCisyODYwNSAxYzAxOTdmNDljNTljMDM3NzY1ZDU4YTIyMTMxMjAxNjgzNDg0OWQ4IGxlZ2FjeS10cnVuaworMjg2MDYgNWExN2YwOTc4MzI2MDA5YzA2YTEwNmJmZjk2ODVlZjk5N2RhMGNkMiBsZWdhY3ktdHJ1bmsKKzI4NjA3IGY0ZTlmMDlkZjRmMjM5ODNjNjM4YjAxODY1MjJhN2JjYjM5MTkwZGYgbGVnYWN5LXRydW5rCisyODYwOCAyOWVmYzJkODNhZGU2MTlhMGEzNmM2YTI3NjJhMjQ1MTk2N2UwYzU3IGxlZ2FjeS10cnVuaworMjg2MDkgNGY0MDAzMDQzYjUwMTMxZWQ3ZGFiY2QwMDBkMWE4OTUzZmM3Mjc5ZSBsZWdhY3ktdHJ1bmsKKzI4NjEwIDAzODcxMWFlMTNlMGUxODM0OGE1MzEwMThiNDA4YzRhODMxNzBiNWUgbGVnYWN5LXRydW5rCisyODYxMSBiY2RiNjBkZjRlM2VmYjMzMDhiOWU4NTE1YjllNDEwNWQ2Y2U2YjllIGxlZ2FjeS10cnVuaworMjg2MTIgM2VmYmQxOTQzYjhjMWU4ODhjZGNjZjZlM2QzYTJlNjVlNzllMGYwZCBsZWdhY3ktdHJ1bmsKKzI4NjEzIDExNTA1NjBjMTAwMzEwOGYyNjYxZGNjNjkxNDYyYTRmMjljMDYyYWIgcmVsZWFzZTIyLW1haW50CisyODYxNCAyNGZlMmFjNWFkY2MxOWM5ODkyNDgwOWQ5NjA4YzljYTBjODAxNmUzIGxlZ2FjeS10cnVuaworMjg2MTUgOGE2ZjU0Yjc2MzQzNDA3NmM5MmU2ZmY0NWU0NTZjNzE3MDk4MGNkYSBsZWdhY3ktdHJ1bmsKKzI4NjE2IDRiOTg0NDE4OGQwNGU3MGQyN2UwZjU2OTUwMmE5OGNjNzRjNTM4NjMgbGVnYWN5LXRydW5rCisyODYxNyAxODE2MGNiNjM2NTA5Y2ZlNGRjZjYyNTY5Y2M5YTIxNmM5Y2FkZDdhIGxlZ2FjeS10cnVuaworMjg2MTggYTBiZTE4MjYzMWNjM2JhYmQyYjc0NDRjYWQ2ZjUyZDg2YzI4M2EyYSBsZWdhY3ktdHJ1bmsKKzI4NjE5IDQ2YWMzNjUzOTZhNDk3ODRjYjIwMWQ5ZDE1MmZjODBlMGM4ZWE3ODMgbGVnYWN5LXRydW5rCisyODYyMCAyYmYwOTg5MjRiYTQwOTUyZDM0NmJkZWZmMDE5MDI0NmY2YjQ4OGRjIGxlZ2FjeS10cnVuaworMjg2MjEgZjE4ODViOTlhMzljZGFjNjdjNmFmZTBmMDhiNWZhM2ZhMTc2ZGM2MSBsZWdhY3ktdHJ1bmsKKzI4NjIyIGIzYzQ1OGUzYzI4MGY4ZmQ2MWQyNDlhMmUyMDRkMThiNzczZTQ4YjggbGVnYWN5LXRydW5rCisyODYyMyA0NmU3MmE3MDg4NTc4NDRiODJmYTA1YTAxOGJjNDQ3MWY5MDIwYWE2IGxlZ2FjeS10cnVuaworMjg2MjQgOTA5NjBmN2Y0ZjMxNDRkZTFhN2I3MDA4YmZlODU2YmZhYjcwZmVjNiBsZWdhY3ktdHJ1bmsKKzI4NjI1IDQ1ZGYyZGUzNGNkMzliZjdjYmUyNjRlNzA5MmExYzA0NjM1MjhlMGYgbGVnYWN5LXRydW5rCisyODYyNiA1ZDIwN2U1N2QwNDAxNDBjZTNiNTJhNzZlZTI2MDFkNzIzZGY5ZDk1IGxlZ2FjeS10cnVuaworMjg2MjcgNTUwOGUwNGQ0OTdjNjg1MTZmYWRlZWI5MDgzNjRjZjYxZWI1MDU4ZSBsZWdhY3ktdHJ1bmsKKzI4NjI4IDk2ZGQ5OTI3ZTAxMWQ4YjE1YTVhNDNjZWU5OTI3ODFlNDczYTZmOTEgbGVnYWN5LXRydW5rCisyODYyOSA0YjMyYmU2NjE3Nzg1ZDM1MDA1NGI1ZDRlZjk4ZTRjZGE4OGE1M2Y0IGxlZ2FjeS10cnVuaworMjg2MzAgNDcwODFhNzUzZWNjNDgyNjRjNmQ5MjhiMTdhNzhlMWRjMzc3YjJlNCBsZWdhY3ktdHJ1bmsKKzI4NjMxIDY0ZDEwNWRkMDgyM2JhOWI4ODRhMGRiMmQwZDg5YjUzMmEzMThhN2EgcmVsZWFzZTIyLW1haW50CisyODYzMiA4ZGQ2ZjU1ZmQ0YjdlN2VkOWM1YTdmYTA4NjhlODQ4MzczMjJiMjc0IGxlZ2FjeS10cnVuaworMjg2MzMgYzE4NGU0MTY4ZDE0YzhlOTc5Y2Y1ODVhM2ZiMTkwZTA2ZjZjODM0NyBsZWdhY3ktdHJ1bmsKKzI4NjM0IGNiYjZjYzc5ZDMzNjUwNzU0NTAwOWM2YjdiZjc3YzVlNWYyZmY1MDMgbGVnYWN5LXRydW5rCisyODYzNSAyN2Y4MzU0ZjQxYjZlNzI0NjhlZjkyNzhhMmMxMjM5ZmYyNzc0ODVmIGxlZ2FjeS10cnVuaworMjg2MzYgYWZkMDAzMGU0YzM4YzYwZmQ5YTY2NThkYmRmMjYyNmM2ZGZkZjRmMiBsZWdhY3ktdHJ1bmsKKzI4NjM3IGFiZDYyNTQxN2E1MzU5YTA1MzkwYjhjMmZlNTBkYzAzYjI4NzQ2OWYgbGVnYWN5LXRydW5rCisyODYzOSAyZTdmZTU1YzBlMTFhY2U3Njc1NWM1OWQ1ZmQ3MmE5YmM1NjYwNGE3IGxlZ2FjeS10cnVuaworMjg2NDAgMmQxM2Y5ZDk4MTM1NzdkZjVlN2Y4NmRhOTA1MTFjODA4MGVjNGE0MyBsZWdhY3ktdHJ1bmsKKzI4NjQxIGJmNzVmM2E0NTkyN2ZmYjMwYTM1MzBiNDBmOThhZWQ1YTk2MDg1NWUgbGVnYWN5LXRydW5rCisyODY0MiAxZTQ2ZGExZTY1MjI2ZDA3ZWE1MTAzZjI0YmVmMTM0YTg3MjE3ZWYyIGxlZ2FjeS10cnVuaworMjg2NDMgMjQ5MGNmN2U2OGE0NGFlMWVhNTQ3ZWMyYmQxZGY5MTVmMzE0NTE2MCBsZWdhY3ktdHJ1bmsKKzI4NjQ0IDlmM2VhMzdkYzQzY2I3ODU4ZjQwN2U0ODY3OTgyODcyYjgwZDYzOGIgbGVnYWN5LXRydW5rCisyODY0NSA3Njc2OGFkYjZmMjMyOGIyZTFlMTE4MDhjNjg4MzBmNjkzNTc1YmZhIGxlZ2FjeS10cnVuaworMjg2NDYgY2JjZDczZjU4N2FkN2E0OTg4MGJhZDkwNzkzNWQ3N2Q3YTNmNGI2OSByZWxlYXNlMjItbWFpbnQKKzI4NjQ3IDEyOTQ5ZWNlZDU1ZmY3ZDljNDRmOWNhZmUzN2RlYWE1NDZiYmEyNDQgbGVnYWN5LXRydW5rCisyODY0OCA3NWNkNGMyMDNkOGYzYmRmMzQ3NWJmNDQwNDNiNmVlYzFkZWY4NzFlIGxlZ2FjeS10cnVuaworMjg2NDkgNTMzMGMwNjIwODEwZTVkYWFhOGE3YmMzOGVmN2JmNWMxN2MyMGZjMyBsZWdhY3ktdHJ1bmsKKzI4NjUwIDAyMjBiMDA3NWEzNWQ0OTg1YTgyYzE1Y2JiYTk2MmU4MGY4NzdhNDkgbGVnYWN5LXRydW5rCisyODY1MSA5NTFmNWYyOGYyZmViMzNhMzk0YmZhMTE2N2EwMzFjZjk2OWYyYjY0IGxlZ2FjeS10cnVuaworMjg2NTIgY2RhZDZiMDkyMWQ1NzgyNTMxMTU5OTBjYWJiY2I4YzQyNzE3YzgxNSBsZWdhY3ktdHJ1bmsKKzI4NjUzIDRmZDBiNzZjNzQ5ZWViNjFjN2I3NWQ5MzQ2ODZiMDk0MWJlNjVlN2UgbGVnYWN5LXRydW5rCisyODY1NCA4YTdhMmYxZjg4ZjA2NTM0YzZiZDM5MDJjODFiNzkzN2M1ZDQzYWI2IGxlZ2FjeS10cnVuaworMjg2NTUgYWMwZTFlOTMxZjM5MDBjOWVkNjBhNjIxYjY2NTRmMTk5YmE5MTdjOCBsZWdhY3ktdHJ1bmsKKzI4NjU2IDQwZTViMmRhOWYyODQzY2IyYmMzOGY1ODcyYWFjNTU0ZjZmNDVlMGEgbGVnYWN5LXRydW5rCisyODY1NyA1ZjVmMWM4MjU3ODQ0MDAwYzVmZmM0MWM3MTI4MGZmNjJlOGRiZGNlIHJlbGVhc2UyMi1tYWludAorMjg2NTggMmIxNzAxY2Q0NTY2MjE0ZjY2YTRkYzQzNmVmYmE2NWMzYzJlZDJlNCBsZWdhY3ktdHJ1bmsKKzI4NjU5IGU3MDlhM2M4YmZlY2M1ZGZkY2JmMTgwMjMxY2JiZjhjMTA2MWIyZWMgbGVnYWN5LXRydW5rCisyODY2MCAyM2EyYmFkOGQ4MmNlNjQxN2ViZmYwYmMzODYwOWJjZGNjYzgxMmFhIERTX1JQQ19CUkFOQ0gKKzI4NjYxIGZkOGFhN2FlZDRkNTFlNmNmNzg2ZWFiMzlhMjI1ZWNhMmYxNzczZDMgbGVnYWN5LXRydW5rCisyODY2MyAxOTkwNDc1MGMzNjU3Yzc1NzM2MzMwNjBmOGYzZTczZmIyNTc5MTQxIGxlZ2FjeS10cnVuaworMjg2NjQgODA5YzE0ZjExMDFhOTViOTA2M2JhNzM2MTE5OGRhNDEyNzRjNDBlMCBsZWdhY3ktdHJ1bmsKKzI4NjY1IDFhNzg5NWY5N2IzMGQxMzg3M2FkZTk3NzI5NTA1MDU1N2MzYTA2NzIgbGVnYWN5LXRydW5rCisyODY2NiA4Nzc1ZGVlNjBkODlhNTU5YWFjOWI3OTA5NTk3ZmQyMGViOWU3NTVmIGxlZ2FjeS10cnVuaworMjg2NjcgMjk3MGU1ZTc2MDFmZjI2YmU0Mjc5NjVkNmE2MGExNGRiODM2MjU3NyByZWxlYXNlMjItbWFpbnQKKzI4NjY4IDhmZDRlMjJlNzhmMDFjNWM4NzI5NDRiYzljMWY1ZWU2OTQ0MmIyNTUgbGVnYWN5LXRydW5rCisyODY2OSBhYWMxZWU5NjZmNTZhNGQ2MGEyOTI0OTlhMWU2YzY4ZWE3MzNhODEwIGxlZ2FjeS10cnVuaworMjg2NzAgOGQ3NTFiNjJlY2M0MjViNGUwN2ZmNDM0NTc0MDA5NDM1ZmZhYTVkZSBsZWdhY3ktdHJ1bmsKKzI4NjcxIDk2YjJmZmI3N2IwMTc0MzdlNTBkNDkxM2FkMWYzM2FmNmY0M2Q1MjMgbGVnYWN5LXRydW5rCisyODY3MiAyOTMwZmFmMTI1Y2E5ZjNmZDQ1YzE1M2IzNmRkYTcyN2FlZGI1OGQ2IGxlZ2FjeS10cnVuaworMjg2NzMgNzAwOGU1MzU3OWViZDc1OGZmNzhmOTdlYWQ0N2IyZjVkNWM2OGZlNCBsZWdhY3ktdHJ1bmsKKzI4Njc0IGEwZjY0MTljYjEzZmU2YWNkYzVjZWQwYTEwMjc1ZTE0M2U1YTlmODYgbGVnYWN5LXRydW5rCisyODY3NSA3NzhmNzIyMWY5NTUxMTU1MjEyNDcyM2VkNGM4YmJiNThiNTU3M2VkIGxlZ2FjeS10cnVuaworMjg2NzYgY2MzNWQ3Yjg3ODUyZjQxODhhYjljNmEwOTAxMmE4MDQ3ZGFmNmI0NSBsZWdhY3ktdHJ1bmsKKzI4Njc3IGM4MDQ0MTIzZDExMGI2ZGFhYTE5N2IxOWI1MWMzNzJjMjM0MGE5YzYgbGVnYWN5LXRydW5rCisyODY3OCAwYmY5NjhlZTE1Yzc2NTRlZjc3NzUzZmQ2ZDEzOTFhM2ExYTBlMmYzIGxlZ2FjeS10cnVuaworMjg2NzkgMWJiZWRmNTQ4MWM4YmI5ZDhjODA0Y2Y0YWIzZmY3NTA4M2VhM2UzNCBsZWdhY3ktdHJ1bmsKKzI4NjgwIGUxYmE0MWRjOTc4NDI4MTY4MmNlMjQxNjdmMzMzODFlNDc4YmJkZTEgbGVnYWN5LXRydW5rCisyODY4MSBkYmYzY2MxZjQ3MzNjNWVhOWJjNDVlNDA3ZmUwNDU3ZDU0MjdjMzRmIGxlZ2FjeS10cnVuaworMjg2ODMgMTM4NWQxNzlhMTdhZGE0MjExNDFlZDhlMGU3YWJmMDBlNjQ1Y2ExNyBsZWdhY3ktdHJ1bmsKKzI4Njg0IGIxMjhlOGExMWUyOTVhZTIzZTk5ODY2NWExYzNmYjhkYzBmNTU5OWQgbGVnYWN5LXRydW5rCisyODY4NSA0ODBjYWY3YzBhMTRlMDQ1ZWMyOGMwMWVmYzlkNzdmMzY4NGE4NTFlIGxlZ2FjeS10cnVuaworMjg2ODYgZmMyYjczODAyZjdiOWQ5NzFkODVkNDZlNmZkYmQ1YzE3NjE1ZDNmMiBsZWdhY3ktdHJ1bmsKKzI4Njg3IDFkZDdlNTFmZTBiZTdjYWI2YzliOGE0NjBiOTE2ZTcwM2IwYTgwZmIgbGVnYWN5LXRydW5rCisyODY4OCA0NjkwY2E3NTViZWM2MzlmYmJiY2I2ZjFiZTI0M2RiM2RmM2MwYzRiIGFzdC1icmFuY2gKKzI4Njg5IDZiMGU4NDZiOGQzN2U1NDE1N2FlNzZmZWViOWIxMGE0MjZlODYyMzcgbGVnYWN5LXRydW5rCisyODY5MCA5ZmNiNzdiMDRmOTdmYjMwOTcwYWNlNTI3ZTg0NDI3NTFiZTQ4ZmVkIHJlbGVhc2UyMi1tYWludAorMjg2OTEgNmViOGRiNTNmN2ZjYWM0ODBhMDQxNTMwNWUxOWQxNzQxZTY0OTM1MSBhc3QtYnJhbmNoCisyODY5MiBlMjA1YzdkZTVhNWE0NTRhM2MzNzExMmQzOTc1Yjk2ZmU5MDgxMzFjIERTX1JQQ19CUkFOQ0gKKzI4Njk0IDI5NTU5ZTIxY2Q1MzA0OTNmYjQ1Y2RhZGZhOTA1YWIyNzVlMTc3MjcgbGVnYWN5LXRydW5rCisyODY5NSAxYmQwODliMWRiN2ZkYWFjOTViNjBhZDc2ZDM2OTY2YTgyMDhjMTdhIGxlZ2FjeS10cnVuaworMjg2OTYgM2RiMDNjMGQxNTMxMGFhNGMxNzk3MWMzMjY4OTY0N2IzNjg4YTNlOSBsZWdhY3ktdHJ1bmsKKzI4Njk3IGU1N2U0YmI1MzJiYWI0ODkwMjE2ZjVmOTZmNDU5YWExOWI4OWYwODkgbGVnYWN5LXRydW5rCisyODY5OCAwNGE1NDFlNjg5NjQ0MmE2MTY2NmZmOGVjZTg0N2FmZDQ4ZWM0YzAzIGxlZ2FjeS10cnVuaworMjg2OTkgYWQ2NTI4NjkxYzMwOWFhODc5MmVhZGI2NGVmMGE2ZTIxNzU5Zjc0YyBsZWdhY3ktdHJ1bmsKKzI4NzAwIDBlYzQ3NTNjY2IwZmI2MmUxNTQzNGI4NDYwN2ViZWY4NGE4ZWFlMDUgbGVnYWN5LXRydW5rCisyODcwMSA1MjcyYjc2M2MyOWM5YmE3ZjRmYzJiMDA5YmI2ZmE1OTcwYTc3NDMyIGxlZ2FjeS10cnVuaworMjg3MDIgNjE1OGZjYTViY2JmMjJhOWY2MTgxNWEyYzAzMmY2N2RjYTY0OThlZSBsZWdhY3ktdHJ1bmsKKzI4NzAzIDRiNjE4NTEyODgxNGMxNDNjYzkxOGIwOGIxOThlZjZhYTlkZDZjOWIgbGVnYWN5LXRydW5rCisyODcwNCBmZGE0OGRkOTRiMDcwNDkzMWU1MmFlMmRkN2E4NmMzYWEyNjRjM2VkIGxlZ2FjeS10cnVuaworMjg3MDUgNzM0MjljYTc0OGNlYmJhZTJlNDlkOWZlMDhmOWUyOTRkYWRhY2RlZSBsZWdhY3ktdHJ1bmsKKzI4NzA2IGU5YTYzZTQ4MzEwOWNlOGM5YjU5NTBlY2E0Y2FlMTZkMjE2ZjY0OWUgbGVnYWN5LXRydW5rCisyODcwNyA4NWQ4MWUwOWUyZjdkNzk1NGEyYTQ2ODY1ZDY1NGMxNDU0ZWQ1MGI0IGxlZ2FjeS10cnVuaworMjg3MDggNmVjMTU0Njg0MGFlNjYyZmY4NWFmOGEzNjk5ZDEwMGQ5OWNjNjFhNiBsZWdhY3ktdHJ1bmsKKzI4NzA5IGEwM2Y3Nzg2OWIyZjU0OTYwMmYxZGFmNWYyOTk3OGVmMjMwYmIxOWQgbGVnYWN5LXRydW5rCisyODcxMSA5NzNmNWZmMjA3Y2M1OGE1Yjk1MmQ4MTk3OTNjNTdkMzIwNjFkOTM5IGxlZ2FjeS10cnVuaworMjg3MTIgNWVhODJjYjU1NjgyM2Q1YmM4YTEwMTc1YTZiNjA3NDlhZTgyNmI4YSBsZWdhY3ktdHJ1bmsKKzI4NzEzIDg1NGRkNzY5NmViMmJlYWNhMjdjZjU3NDgzYWZiZTg4YzQ3NTkyMjQgbGVnYWN5LXRydW5rCisyODcxNCA1N2QzYjk2NjUxYjZlYzg2MzUwODQ3OWQ3OThiYzc5NjhmZTgwY2M2IGxlZ2FjeS10cnVuaworMjg3MTUgOGNlNGJhODUzOTY5MTlkMWYyNGYyOThlZDUzNGEwMGIxYzVmOTFjZiBsZWdhY3ktdHJ1bmsKKzI4NzE2IGM2ZGU2OGNjOGUyYmJjZTk3MGMzZDM3ZWQ0OTQ0OThkYzI0ZGI0MzggcHktY3ZzLXZlbmRvci1icmFuY2gKKzI4NzE3IDkzZTI1NDU3N2NmYTUzMWI5ODhkOGZhMjgzYmE3OWEyMGIwNDBkZjcgcHktY3ZzLXZlbmRvci1icmFuY2gKKzI4NzE5IDk4ZTEyYWE4YzU0NzVmNTdiNDMyNzkyMWQwZDRhOTY1ZTY5NzIwZWQgbGVnYWN5LXRydW5rCisyODcyMCBmYjAwZmQ5MzE4OGE3NjU5ZjgzZGFmY2VkZjhlMWViNzJkODMxMWE4IHJlbGVhc2UyMi1tYWludAorMjg3MjEgYzc3MjY0MGQ1MzVlMDQ0MThhNzRmZWQyMzkyNGJmNDFlMjQ4MTQ0NiByZWxlYXNlMjEtbWFpbnQKKzI4NzIyIDZjMjFlOTVhNDg4MTc3NTZkNmFkMGUxNzE5YTlkOWQwOWJlZWUwNjEgbGVnYWN5LXRydW5rCisyODcyMyA5Yjg5MjRiZDViNWNjZGRkMTRhNjZjZTEzNzBkY2I0YmI0MmQ1OTEyIGxlZ2FjeS10cnVuaworMjg3MjQgZjNkODhlZTA1OTI4ZDUwNjFjMGRmNDE0N2FmNDc2ZTYyMDI4ODA0NyBsZWdhY3ktdHJ1bmsKKzI4NzI1IDQ2OTJjNDg3ZWU5MTFlYWM1OGRjYWM1ZWI1MGI2MjM3OTM1NTJlZGQgbGVnYWN5LXRydW5rCisyODcyNiAxYmJmOGU1NWE4YmI5YjBlZTQ0NWM5NDljYTZhNzA4NTZlY2EwNTBmIGxlZ2FjeS10cnVuaworMjg3MjcgYWVjMGY5NDRmNmEwMTc2MWYzMDNhNDQwMzFkYjc0Y2U1NWNlZDU3YiBsZWdhY3ktdHJ1bmsKKzI4NzI4IDYwOWYzZDMxZDFjMjRhNzMwODhmNWMzNWY0N2VjMGY3ZmJjNGJlZjkgbGVnYWN5LXRydW5rCisyODcyOSBjZDcwYzg4MDNlYjVjMGQwYTRhYmFiNGQyYmZmY2FmYTViYWVhMTFkIGxlZ2FjeS10cnVuaworMjg3MzAgYzk3YTRjZTNjNThlZGFiZTY4NzE4NzhkNzA5ZWMwNjBhNWRmOTRmOSBsZWdhY3ktdHJ1bmsKKzI4NzMxIDRkNmY4MjA0MjM0YThkNjljZWQyYTM1YzMwZWJjOWNmNDEzZmVmYWQgbGVnYWN5LXRydW5rCisyODczMiBiNjRmYzZhMTA0OWU5YjcxNTdmOWZjNzFkMzk2NDBhNGI2OTJiMTIxIGxlZ2FjeS10cnVuaworMjg3MzMgYzQ1NTY0NzY4ZjUyNmVkZjlhNmJlMTkyOGNkZGRmOWI4OGMzZjIyMCBsZWdhY3ktdHJ1bmsKKzI4NzM0IDA1NWY3ZmFlODE1MDkxMzRmZTM5ZWMxYWM2YjQxYWYwZmI3NjI4YzYgbGVnYWN5LXRydW5rCisyODczNSA3NTJmNjg5NWNjNjMwYThmZjRkYjdhZmIwODM4N2NjOTU4ZDMxYTM4IGxlZ2FjeS10cnVuaworMjg3MzYgZjVlYzA4ZDQ1ODU5Mjg3NGM0OWRlYzI4MzFiNzVjNjM5MzFjOWE4NyBsZWdhY3ktdHJ1bmsKKzI4NzM3IGRhNGU1ZTQ2YWUzZmI5ZWQ2OTgxYmIwOGFiZTVkMWMzYTY2MWUzMWYgbGVnYWN5LXRydW5rCisyODczOCA2Nzc3ODExOTYxNTI2MDc3ZmE4ZGJlNzk5NDI1N2EyYzJmYzA3MDk2IGxlZ2FjeS10cnVuaworMjg3MzkgNjFjMjUwNmVjMmU4ZWE0ZDBjZjlkNTM1NTRhMjRjMmZjNGFhODNmNSBsZWdhY3ktdHJ1bmsKKzI4NzQwIGRiZjkyYzU1ZmJiOGI3ODkyMmM2NDFiNmUzZTVlMjEwZDU0OTgwNDggbGVnYWN5LXRydW5rCisyODc0MSA0MDE0OWI1MDAyMGNiYjY4NmVjNzc4NDU1OGY3M2ZmNTJmNjhjMGU4IGxlZ2FjeS10cnVuaworMjg3NDIgMWIwZWE0NzI3OWM2OGFkOGY0MGQ0MGZhMjM1MTM1YTVlMmIxYTE4NyBsZWdhY3ktdHJ1bmsKKzI4NzQzIDdiZTI2NTQ0YmU0ZTM1ZTRmZTViYzdlN2Q1NDFkYjYwM2U2ZjQ2N2EgbGVnYWN5LXRydW5rCisyODc0NCBjNjcwOTQ1Yzg2OTUyMjg4OWMyMDU4OThjMzYwYmYwMTZlYjhiNTdkIGxlZ2FjeS10cnVuaworMjg3NDUgMjJkMTk4OTEwYjIwOGE2MDY3NDI2NmNjMjEyNjc1YWIxMDA2NDQ0NyBsZWdhY3ktdHJ1bmsKKzI4NzQ2IDFjN2VlMjNkYzQ5ZTE2OThhZTc5NTA1Yzc2MGM1ZDM5MmM5YmUyYjYgbGVnYWN5LXRydW5rCisyODc0NyBlZmU2MzkxNTFiZmVjNWJlMjFhZjUyMTA2MjkxMDM5Mzk1MTAxY2MyIGxlZ2FjeS10cnVuaworMjg3NDggZWIyOGRjZGRkMzRkYmJjMjZlN2UyMGY5NjUxYmJhYTA0NTVjY2Y1MSBsZWdhY3ktdHJ1bmsKKzI4NzQ5IGRmMDNmY2M2NjEwNDM2MTgzODczNTM1MzAxNGMzMTE2YmIzMmRjN2MgbGVnYWN5LXRydW5rCisyODc1MCA3MTc3OWI4MzllMDk4NzRkOWJhNDkzOTc3NWEwMDMxNWFmNWViMmE3IGxlZ2FjeS10cnVuaworMjg3NTEgMDM5OWM4YWVhN2IyODYxZDE3ZDgyZjFiOTljZjc5YjM3OTY5MzE5MSBsZWdhY3ktdHJ1bmsKKzI4NzUyIGJkNjUxMGM1Y2FiYzQ3ZDk1ZjVmNmZmMDk0M2NjYjcxNTMwZjJiOTQgbGVnYWN5LXRydW5rCisyODc1MyA0NjhjM2JlNmMzZTJjZDEyNDg5YWViZDEyNjc3YTUzMzAwMDU5NzUyIGxlZ2FjeS10cnVuaworMjg3NTQgYWJiNzY4YjQxN2ExMzMwZDZmNDNlZGQ2ODQ2N2I4ZjVjYmQ5NTQzMCBsZWdhY3ktdHJ1bmsKKzI4NzU1IDg2ZmY5NWIxYzYzNmQ1ZTE1OWUwYjQ1OGY5ZmE2YzMwMGI2YWUxYjEgbGVnYWN5LXRydW5rCisyODc1NiBlYjdiN2I3MTllZTU2NDlkZTkzNjQ0ZTUyMmMzNWQ4N2QzNzFmMzgzIGxlZ2FjeS10cnVuaworMjg3NTcgYmQzYjkyZGM5NDBhNjQ5ZWM3ZWYwZDJkMWExNjZiNzY1ODRjZjNjYiBsZWdhY3ktdHJ1bmsKKzI4NzU4IDhlZGExNjZiMTA0ZWNhOTA0ZGEyZDg2MTEzOWE3OWU3NjAxOGFjN2UgbGVnYWN5LXRydW5rCisyODc1OSA5MmEzZDg5N2U4MTkzZWQyMzhkMzRmMTY2NzAwMjE4YjY0ZjUzNGUwIGxlZ2FjeS10cnVuaworMjg3NjAgNTNlMmM0NDhiMTY5YTMyNzUyNDAxYWE2ZDgxYjEzM2U0YWIzYzY4ZSBsZWdhY3ktdHJ1bmsKKzI4NzYxIGI5NjhmMDM4MjM1ZWExYTU1MTM0ZTgxNzdjY2NhMWU5NDNhNmJhN2EgbGVnYWN5LXRydW5rCisyODc2MiBkZjBmZjViMTdlMWFhMTVkZGI5ZDgwNzZhMDMwNWRkMzEyZDJiZGUzIGxlZ2FjeS10cnVuaworMjg3NjMgZTllNzRjYzU1NDBhZDhiYTBmMWIzZGUyOGFjMjg1OWY4YWJmMTgwMyBsZWdhY3ktdHJ1bmsKKzI4NzY0IGJkYzNkZWYzZDA4NWRkYWQxZmI4YTllM2I5ODJjYzVlODhlZTBkZjIgbGVnYWN5LXRydW5rCisyODc2NSA4MjNmMDJhMjIyMTBkOGE2YTRhZGE3NDI3MDQwZWVmNzNkZTEyY2NlIGxlZ2FjeS10cnVuaworMjg3NjYgMTRhZDU2MGY0YTk3ZjgxYjY5ZjVmZDZhOWQ2Njc1Y2JhMTliYmUwMSBsZWdhY3ktdHJ1bmsKKzI4NzY3IGYxNzU4MjcyNzY0YzcwYzUyOTMwNTAwMjBkMGJjMDkxYzRiOGQ5MzkgbGVnYWN5LXRydW5rCisyODc2OCA3ZGU4OGNmMDc4M2UyY2MzYzIyZDU2YzdkYThlYmFiMWRiMTFkZjZkIGxlZ2FjeS10cnVuaworMjg3NzAgOWM3YTA2YWM4YjI3NzJlOTQxY2Q0MmYwZjA1MDNiZDQzOWFhODA3ZCBsZWdhY3ktdHJ1bmsKKzI4NzcxIDI0ZTc4OWI2Y2NiNjQxNmQwNDNmNjRjOWFmMmUyNDk4MmM1NTU3ODMgbGVnYWN5LXRydW5rCisyODc3MiA2YjYyYWI4NDg1ZWI4MTk2NDdjYzQ3MTZiNWI1NDE5ZTc2ZmU2NGViIGxlZ2FjeS10cnVuaworMjg3NzMgMDczOTA0NmEwYzNhNTE0ODM0ZGZiMmFiOTI3YjUzNGI1OTIyNDNlMCBsZWdhY3ktdHJ1bmsKKzI4Nzc0IDMzN2ZjYzI0OTg1YjM0NGFiNmI4ODM4YzM3ZGU1ODhkYWU0MzZkMTkgbGVnYWN5LXRydW5rCisyODc3NSBhM2IyOTU5MThjNWZkNWE1M2NmMTBhYzYyNGQ2YjIwYWE3YmQyMTc5IGxlZ2FjeS10cnVuaworMjg3NzYgMzNiMjQ5YWY0MzY0ZGM4NGI4YWUyMWNmNTQ0NGU2ZTdmZTRhZGUzMCBsZWdhY3ktdHJ1bmsKKzI4Nzc3IDljOTU0ZTY0ZDE3YTk0YTBiMTQzMGVkYWE1NjhjYjBkOWJhNTdkYjYgbGVnYWN5LXRydW5rCisyODc3OCBhMzAyMzA4ODE5ZjA1ZGE4NzkxNzczNTlmY2RmZmZkZDdlODE3MTkzIGxlZ2FjeS10cnVuaworMjg3NzkgMmY0NGE5MGZmZjA3N2VlYWZiN2MyYzk2MjlhMmY0NjhmODAzNjkxYSBsZWdhY3ktdHJ1bmsKKzI4NzgwIDJhZTJhMjAzZjQ3YWMyYTZlYTU5ZjUyMGJhOTg3ODhkNDdjMTg5OGYgbGVnYWN5LXRydW5rCisyODc4MSA5ZjYxNzEwNjI4YzRmMjk1YmI1MTZkNTMzYzFkZWQ0OTBhMjRhOWFlIGxlZ2FjeS10cnVuaworMjg3ODIgMmMzYjUzOTdjM2Y5ZWMxMTY4OTZhYjhmMGJlMmVlZjQ3ZWQ3MDUxMiBsZWdhY3ktdHJ1bmsKKzI4NzgzIGJkMjRjMjU5OGE0MjlkNzZmMTUxMGI4NzkwZWNjYzA3N2ZiNzliZDggcmVsZWFzZTIyLW1haW50CisyODc4NCBiNTI5YWMyZjlhYjY0YjkwYmQwMTUzYWRiOTMyODRlOTFiN2U1ZjljIGxlZ2FjeS10cnVuaworMjg3ODUgNDlhM2ViZTlkZjE0NzY2NTUzYTExMWU3ZjQ1ZGEzMWEzZTk3NWFiZiByZWxlYXNlMjItbWFpbnQKKzI4Nzg2IDZlYTg5ODdjNzQ2ZmI1NWU3Njk0MGU5MWUwYzczNzUyZGUxNzYzZDUgcmVsZWFzZTIyLW1haW50CisyODc4NyAyN2ZmNjk0YzhjMDUwYjQ1ZjFhOTdjOTk0MDM3YmQ4NWNjZmE4MTc4IGxlZ2FjeS10cnVuaworMjg3ODggM2FlY2E2YzUwZjM4MDBjYWU4YjUyOWViZmY4YWNlZmU2YzMxODQwNyByZWxlYXNlMjItbWFpbnQKKzI4Nzg5IDgwMjU4M2Y4OGFlMGQ4MjU5MjlmZmQxYTVhMDFjYmZiM2YzOGNhMjkgbGVnYWN5LXRydW5rCisyODc5MCBjOGNiODk3OTA2MmNlN2Q2MTZiNDYxYTA1MWJkOTI1Y2NhYzk1M2ViIGxlZ2FjeS10cnVuaworMjg3OTEgMGViODgyMDY4YTdjZWUzNmJmMWM5MjliMjAzNjk2OTRmOWEwYTAzZiBsZWdhY3ktdHJ1bmsKKzI4NzkyIDg2NjIwYWZiMjIxMjRiZGIxNWQ4OGEwYTRiNjQxY2EwM2RiODJmOTUgbGVnYWN5LXRydW5rCisyODc5MyA2ZGVjNzRmNDQyNDIwOWRmM2E4OTU5YTkwZDgwMWZmMmRlOTUxNDRlIGxlZ2FjeS10cnVuaworMjg3OTQgMzdmYzZhODNhMTM0ZWE3MmQ5NWQ2MDRhNjQwZjQ4NDgxY2Q0MGMwOCByZWxlYXNlMjItbWFpbnQKKzI4Nzk1IDU4NmZhMjQ0NTk4MjQ3MzJiNDVjZGNhZDQ5ODQxYjQzYmU1ZjYxMWQgcmVsZWFzZTIyLW1haW50CisyODc5NiBjNDNjNDI4MzkwMTE4ZTE1NDM4Y2QyMGMxMjkzN2FjYTVjNGZmNzE3IHJlbGVhc2UyMi1tYWludAorMjg3OTcgZTdkYjFjOWExMGZjYjg3MTEyMjg2ZjhlYWE4NjAwMzFlMDE2OGI4ZCByZWxlYXNlMjItbWFpbnQKKzI4Nzk4IDAzM2FkY2JiNGNiMmE3NDRhOWIzNDI1NzRhYTVmYTVjZDY1ZTk1MzkgbGVnYWN5LXRydW5rCisyODc5OSAyYmE4MGE0MzEyZmY1MDIwN2I1MjNiNzc2NTU5ZmI3NTMzYmVlMzhlIHJlbGVhc2UyMi1tYWludAorMjg4MDAgODVhYjQ2NTBkZmFhNmE0MzEyZmM3YzU5Njg5YmZmYjIxYjgzNTVkOCByZWxlYXNlMjItbWFpbnQKKzI4ODAxIDk2ZTJlZmZlYzk0ZDFiZWE1OTBhNjM3MDQ0NzY5ZjdlNWQ5N2Y2MmEgcmVsZWFzZTIyLW1haW50CisyODgwMiA5ODhmNDI1ZDE3NjY1ZTdkY2NlNTAyMGZiOTQyMTU4MTdkNDM5OTgxIHJlbGVhc2UyMi1tYWludAorMjg4MDMgNDYxNzBlNTYwZTAxZTE4YzdkMmE4MzkzNGQwMTVmODc5MWQ2YTI0OSByZWxlYXNlMjItbWFpbnQKKzI4ODA0IDFmOWU5Nzk4MzAyYmZmYzBiMTcxYjhhYWI4NDAxMjg3N2FjYjFkY2EgcmVsZWFzZTIyLW1haW50CisyODgwNSAwZmJiNzZiNTA3NGI3ZTkxZmY0Y2NkYjJiNGQzNTBlYmZlMTUyYTlhIHJlbGVhc2UyMi1tYWludAorMjg4MDYgM2Y1MDQxMjk1NDQ4Yzg2YmU1YjliMDY3OGM4ODk4MzNmNTJlYjdhYiByZWxlYXNlMjItbWFpbnQKKzI4ODA3IDUyNTViNDVmZGRjMjU5YWI3OGIxZDgyZDlkZmZmOTIzZGFmMjczZmYgbGVnYWN5LXRydW5rCisyODgwOCBmM2MzZTczMmQxMmU2OTRiZTFjY2Y0NTAyYmUzYzM3NzdkZWNmYmUxIGxlZ2FjeS10cnVuaworMjg4MDkgNTI0MjBmZTY3Yzk2OTAwNDdkYTNjODA5NzkxMTgyNWVlMzQ1YWUzZiBsZWdhY3ktdHJ1bmsKKzI4ODEwIGM2MzEyMzYwYzg2MTcxZmRjYTllZDIyN2QwZWYwNzM2MTc3Zjg5NmMgcmVsZWFzZTIyLW1haW50CisyODgxMSAzN2Q4OGI0MmVkMTFhOGEwOTIzNzlkYzhjMzJmNmUyN2YxNmEyNjFmIHJlbGVhc2UyMi1tYWludAorMjg4MTIgNjUxMzQ2NmJiNzc0N2EwNzM0ZjlmZmM3YTI3NWNiMmI4NjY3ZWFhYiByZWxlYXNlMjItbWFpbnQKKzI4ODEzIDBiNjhkODEwYThiZWNmMmI4Nzc5OGM0MjAxNDQ2M2Q5M2NhZDczMmIgcmVsZWFzZTIyLW1haW50CisyODgxNCA5ZGQyMWMxZmFkOWE0MDA3MDMwMDkxMTRkMDk3OGQ5OGEyNjdkZjlkIHJlbGVhc2UyMi1tYWludAorMjg4MTUgNzg2ZTBlOWE1ZjdmOTI4MjdlMmQ1N2RjZTFlZWIwYzFhYTg1NzkwMCByZWxlYXNlMjItbWFpbnQKKzI4ODE2IDExNmIwODU4ZDRiMGJkYjAyNDRkZjRkYTMyYTExMzM4M2EyMWZkN2QgcmVsZWFzZTIyLW1haW50CisyODgxNyA2NTFhYmNmNjNmZTEzZDNlMjZmMDg4Mzg4NzBjYzE2MDgyMDg2MGEyIHJlbGVhc2UyMi1tYWludAorMjg4MTggMmJmZTQ0YzRkYWNiZjM3OGQ0Mjg1OTY2ZTAwMmZjNzhkZjJkOWEyMiByZWxlYXNlMjItbWFpbnQKKzI4ODE5IGNhYTNhMmZjNmEyMDg2NTlkYjE1ODIwMzgxNDE4NGE3ZWI2NTZhY2UgbGVnYWN5LXRydW5rCisyODgyMCBjMDY2ZGMzZWExNTIxNjk4ZTZjMGNiYmE0MzVkYWNjZTVkYTY5MzQ1IHJlbGVhc2UyMi1tYWludAorMjg4MjEgZTg0ZDMyNGFjNjZhNDg4NjVjNDhmYzIyZjg3OGI4OTc5ZTQxYmJiMSByZWxlYXNlMjItbWFpbnQKKzI4ODIyIDRkZjBlNjkxZjRkYWU4NmIwN2NlZWQyNTMzOGZmZjFmNThjYmRkMTMgbGVnYWN5LXRydW5rCisyODgyMyAyZGNiYmJiMDA3YzJhYjc3YzBkZWU5OWFkNTlmNmMwY2JhNDkxNGIxIHJlbGVhc2UyMi1tYWludAorMjg4MjQgNGQxMGMzMTc5ZWFkMGY1NjI4MTM2MDVlYzNiMzI4YTdmMzc2M2JkZiByZWxlYXNlMjItbWFpbnQKKzI4ODI1IGZiYzgyMGQ3MDFiY2E5OGNiYzQwNGZmZmFhNTA0OTNiODMzMTc1ZDggcmVsZWFzZTIyLW1haW50CisyODgyNiA1ZTRlOGMxYWI3MDQwMDEzMTJlMDc5MjFhMGEwZjQxMzdiMjYwMTM2IHJlbGVhc2UyMi1tYWludAorMjg4MjcgNGRmODA3YWRmZjg3M2Q1MGIxM2FhM2M5YmUzN2I0ODBiYTVjNjFjOSByZWxlYXNlMjItbWFpbnQKKzI4ODI4IDEwNzY3YThjMmUyZDY1Y2Q5ZTM1YjIxYjAyNDE5ZmEzMWUxNTUwOTQgcmVsZWFzZTIyLW1haW50CisyODgyOSAwYzQ0ZmEwNGY1MzM1ZWZkZDhlMzMwMmY4ZmQxZWEzYjQyYWQyNDMwIHJlbGVhc2UyMi1tYWludAorMjg4MzAgZTUzNzg3YjFhZDg1ODE4MDZjMjVlYTZhYzRhYjg5OGExMDA4Mjg4MCByZWxlYXNlMjItbWFpbnQKKzI4ODMxIDcyNWY4NzU5N2FkOWUyN2NjNDc4YjFlZTI1MWQ2OGEzNDBkN2Y4NWMgcmVsZWFzZTIyLW1haW50CisyODgzMiBlODg5MWU2OTUyZWI2MDE1Y2MwNjAwOGZkYzdiNzA3ZTdmYzY4NmI3IHJlbGVhc2UyMi1tYWludAorMjg4MzMgNDYyYzM1YjlhYzFmYTRhNDYyNWMwMWU3YTkzYzg2NmE0M2EwNDM2MiByZWxlYXNlMjItbWFpbnQKKzI4ODM0IDgwY2UzODRkNDA4YTZmOWU5NDZlMzliMjkxNWVhMTM3ZDVjYWNhNzkgcmVsZWFzZTIyLW1haW50CisyODgzNSA5MTExMDc4Mjk5MDNiOGFlMzBiNzIzMDdkNTkzODQxN2E1ZGE5NjI3IGxlZ2FjeS10cnVuaworMjg4MzYgZTVlMDU3YTZkMjgxZjMxNWZkMmE3MDk0NjFkMmUxYTZmMGZjYzAzZCByZWxlYXNlMjItbWFpbnQKKzI4ODM3IGRlMjFlOTNiYWRmNjM2NTgzM2M2Zjc5M2VhNGU2YmE4MDI2Y2YxZjkgcmVsZWFzZTIyLW1haW50CisyODgzOCA3OTI5ZDc1NjZhOTQyODkxOTc4MDE0OWE5YmY0OGE2NTY3MjliY2ZhIHJlbGVhc2UyMi1tYWludAorMjg4MzkgYmIyMDMzYzhiOTJmZGRjNDE5ZTNmMTliMjdkMDg2ZDdjNGNlYzY0ZSByZWxlYXNlMjItbWFpbnQKKzI4ODQwIGY1NTllOTdhNDFiZTRkMGI0NmQ5N2FmMWU3NThlY2Y0NjZjZDk0ZTIgbGVnYWN5LXRydW5rCisyODg0MSAzMGJmNTU0OTFlNzllZGQ5Njk4YWQzOGM5YTQzYjI1ZjE1ODI3MTZjIHJlbGVhc2UyMi1tYWludAorMjg4NDIgOWNhNjA5ZjhiZGYyMjYxN2M0Nzg2Y2RlNzMzMDYzYzBiYTdiNmIxOSBsZWdhY3ktdHJ1bmsKKzI4ODQzIDg4ZDBmNmQ2YjAzZWMxYmE1OWYwYjIwMzE0M2NhNGQ1MmUxZWUxZGEgcmVsZWFzZTIyLW1haW50CisyODg0NCBiNDZjN2RhMDY0MTBlNzFmOTdjNDk3NzNhMmRlN2YzMzc3MDdmNDU0IHJlbGVhc2UyMi1tYWludAorMjg4NDUgZGMzMTY2OGE3YzA5ZGNiYjE1NzI3OTNkZTNjY2FmMGU5MjdiM2RmYyBsZWdhY3ktdHJ1bmsKKzI4ODQ2IDk3NDI0Yjk5ZGY5MWM1OGYyMTUxNjM1MDE3MTIzMjUyMTIwYzE3MjkgbGVnYWN5LXRydW5rCisyODg0NyBkNGZmOTg0MTQxN2FlMDZmMjUyZjM5ZWUzMjZjZmYzOGNiMzk4NzVmIGxlZ2FjeS10cnVuaworMjg4NDggMDIyNmYxNjU2ZDgxNTFmNzhhZmQ5MzQ4YjhmZjY3MjI0YThmM2QxYyByZWxlYXNlMjItbWFpbnQKKzI4ODQ5IDcxMDM1NDgzM2JkMTk4MDk4ZjU2NmFlNDUwZmU0ZDg1MTk5ZjAwYjMgcmVsZWFzZTIyLW1haW50CisyODg1MCA1MWNkZjQ3MGY5NzQ0MDlmNWIwMTdiYmYxZTZhZDNiNDJjYzIwZjJlIHJlbGVhc2UyMi1tYWludAorMjg4NTEgNzVjNGE2N2RjYjhjMzYwMzIxYWJiNTFmYzZiNDI4NTBjOTlmNjI4OCBsZWdhY3ktdHJ1bmsKKzI4ODUyIDQxMGY2ZWFiYmMwYjg4NDRhMGExZjIwZmY0YzFjY2FhYThkODc5MDYgcmVsZWFzZTIyLW1haW50CisyODg1MyA2ZmMwYjcxNmMwMzg5YTA4ZDM3MWUyNDJmMDk0NDdjNGIxOTJkNjY2IHJlbGVhc2UyMi1tYWludAorMjg4NTQgNDA4MDFkZjg1OTEyMWE0ZTYwYTA5NzhmNjQxODI0NzQ2ZGM4OGJlZSByZWxlYXNlMjItbWFpbnQKKzI4ODU1IGI0OGEyMzZiOGM3Yjc3ZDgxMGJhODA1YjQ2NGIzNGJiNDkzYzIwY2YgbGVnYWN5LXRydW5rCisyODg1NiBkOTM1YTFkNzAyMzBiOTE4ZmU2MmU5ZjA4ODg4NTIyNTE5MWJkYjQxIGxlZ2FjeS10cnVuaworMjg4NTcgNGQ3ZTllNDBkM2U0YWM5ODI3MWZkMmY0ZmU2ZDIzMGMyNmRlMmI1YiByZWxlYXNlMjItbWFpbnQKKzI4ODU4IGQyZGJlYTE3ZmM2ZmU4YzBkMDY5ODNmOWQxOTU2NDA0YjExNjI4MDcgbGVnYWN5LXRydW5rCisyODg1OSA5NDMxNWE5N2IzOWU2NmVjYzVjMTUwMmU1MzQxOGQyZGVlZWM3NjFhIHJlbGVhc2UyMi1tYWludAorMjg4NjAgN2QwYzRkN2UwYThjNzE5MWQyYjg5OGU2NmRjNzBjZWE3MmYxNGM2NiByZWxlYXNlMjItbWFpbnQKKzI4ODYxIDQ1YTIxNGYxYmYwYjQ1NGFmZjkzYzg3NzA5YWEyMTA1Yzk5NmRjMzcgcmVsZWFzZTIyLW1haW50CisyODg2MiA4MzIwODRhMzAyODA5NmMzN2UwZWVmNzhmNWYyYTlhNTkxZmM4N2Y1IGxlZ2FjeS10cnVuaworMjg4NjMgMDQ4OTY4Y2EyNjY4ZDQyMzUyMjUwNTIwYjVkN2Q1NzdhN2JjYzJmYyByZWxlYXNlMjItbWFpbnQKKzI4ODY0IDI1M2UzOTdkZjY3YjFlMzc0M2Y5MWNlNjkzZjQwN2VhMzA0OGRlYjIgbGVnYWN5LXRydW5rCisyODg2NSAwYTA5NWEyNTc0MjQ1MDAzOTJkY2RjYWY3NGUzZjc2ZmZjODAwMjExIHJlbGVhc2UyMi1tYWludAorMjg4NjYgMTg0OWUyMzU1MmRmYmMxZTE2YTljMzhmZWVmOTRjMGRmZTQ2ZGE2YiBsZWdhY3ktdHJ1bmsKKzI4ODY3IDU2Y2I5MmRiYmFhZmMwNWJkZWVjMTAzNDM1M2RiMzZlNjE4OTRiZDAgbGVnYWN5LXRydW5rCisyODg2OCBhYTMwNDhlYmQxOWEwYTVhNmQ4NDkwOGYzYTE4NDQzMzZiYWM4ZjY3IHJlbGVhc2UyMi1tYWludAorMjg4NjkgZjc0OWQ1MGRjY2RjNWViZmU1MDQ5YTkyYTQxM2I1YzM3ZWZiZjBmMCByZWxlYXNlMjItbWFpbnQKKzI4ODcwIDkxYjRmN2FiZWJhOGQ1NTJjYjIyYjliMGZlMGFlYjRkZWU1YjVkYWEgcmVsZWFzZTIyLW1haW50CisyODg3MSBmYjBmN2NjNWE2OWY2YmY0YTU2ZmE4OTdjZDgzYTJiYTAzODBmYzAyIGxlZ2FjeS10cnVuaworMjg4NzIgNjIzN2JlMjdhNTk3MzViZjZlNzAyMTZlMGU5NGZiY2FjNzQ2N2IxNCBsZWdhY3ktdHJ1bmsKKzI4ODczIDU1NGY5NzUwNzNhMDM4MGVmNzE4OTVjNmJhOGI4ZDdkMzIwMmI1OWMgcmVsZWFzZTIyLW1haW50CisyODg3NCAyOWY2MTYwZWMwYmQ5M2M4MDlhNDM0ZWMyMjRiZDNmMTNjNDIwYmZjIGxlZ2FjeS10cnVuaworMjg4NzUgZmU2MjExYmY5MGJiOGY1NDk4ZDY5NmUyNzIwMWZkOWRiYjRkODU2MCByZWxlYXNlMjItbWFpbnQKKzI4ODc2IGM2ZjMwNzJkNTk1ZDU0ZjUxMzEyNzZhY2Q2ODZhOTM2MDllZWY1OGQgbGVnYWN5LXRydW5rCisyODg3NyBlYjI1MmIzNzRlY2ZjODVlNmI3NzJlZGViMjU4OTE4MmJiZjdmZmEwIHJlbGVhc2UyMi1tYWludAorMjg4NzggMWY5YjNjYjY2ZTA5OGUwM2M0ZGFhMjJmZWJmODdlNWU5YWQzYzdjYyBsZWdhY3ktdHJ1bmsKKzI4ODc5IDExMDg4YzUzNDY3YTE3NjhkNmFiOWI0NDZkMjI4ODNlYWE5Nzk1YzEgcmVsZWFzZTIyLW1haW50CisyODg4MCA3MmQ1NmI0NDYwY2I5ZGYzY2E1MTlkNzUxMzEwMGFjY2I0YmVlNGFmIGxlZ2FjeS10cnVuaworMjg4ODEgYjYyNTE0YzIxNzYyOWUyMDNlNDNhNmNlNmZiM2UyYmUzYmVkZjNlYiBsZWdhY3ktdHJ1bmsKKzI4ODgyIDNjM2I4OTQ2ZGM2M2M1ZGI2OTI4YTVjYzc2NzEwNWI3MGI5MjI0ODMgbGVnYWN5LXRydW5rCisyODg4MyAwYzc3OTQ5MmNkODA3Nzg4OWY5MzU3MWYyZGU5ZGM2YTdjZmQ2NDAwIHJlbGVhc2UyMi1tYWludAorMjg4ODQgODU0NTM0YzYwN2ExNmNkNGRmYTk0MDViNTM2MDMzMDE2OWFmN2RmMiBsZWdhY3ktdHJ1bmsKKzI4ODg1IGRmYjc0ZDYxMTgzZDczNzg5MDIwOWZjM2RhYzA1NmQ1OTE1ODRkM2UgcmVsZWFzZTIyLW1haW50CisyODg4NiBjZDgzN2VjYjFkNzA5NTNlNWE1YWE4NjhhZWNiMjk4ZGU5YTBmZjRmIHJlbGVhc2UyMi1tYWludAorMjg4ODcgYmRlMGQyNjI2YjIwNWRjYjM4NjUxYTQ4ZmUyOTkyZjk5NjhiZjZkMyByZWxlYXNlMjItbWFpbnQKKzI4ODg4IGQzMjU4OGM4ODYzMzI5NDY4Y2M0ZjZkOTk3NThjYmQ1ZTk5MDNjNDQgbGVnYWN5LXRydW5rCisyODg4OSA4OTgzMDRmNmRhMjNiNWM5NzE1YzVjMGZiY2E2N2EwMDUxNTFmODliIHJlbGVhc2UyMi1tYWludAorMjg4OTAgYjYxMTIzMjcxMjRiNDZhMjc0MWVlMDVlZjVkNDY2OTRmZTcxYjhiNCBsZWdhY3ktdHJ1bmsKKzI4ODkxIGFhMzFjNjhkYTg0ZGY2ZjI4ZDc3ZWRlZjhiMmU3ZDY3NGQ1NjdjNmQgcmVsZWFzZTIyLW1haW50CisyODg5MiBkYjVmMWRiN2IzNGUxOGM0YmE2YjU3ZjdlMzA1ZjY3MjdlZjI0Y2Q4IGxlZ2FjeS10cnVuaworMjg4OTMgOWJhMDExMTM4ODMxOGE0YzNiZjBiZWY2ODRmNjU1YWMwNDg1MDVhOCByZWxlYXNlMjItbWFpbnQKKzI4ODk0IGU4Y2RlYTQ0ZjdhYmNlYzZhMTU4MzY1OGQ0MjE1ODgyYjFjNzRlMmYgbGVnYWN5LXRydW5rCisyODg5NSA2YTJkZjQ0YjhiZmQ0OTZmYWUwNzUxZTliMGYwM2I5YzQ3MmNhZWMwIGxlZ2FjeS10cnVuaworMjg4OTYgN2NkNmY1NDkwNzU4YzYzYjYxNjgzMDc2OWY1ZDYxYzdiMzM5ZmIyMyBsZWdhY3ktdHJ1bmsKKzI4ODk3IGY4MTgwYTc0YjBmYTVjNmVjNzViNWQ2MzQwMmY4ZDc3NTg3ZmYyYmQgcmVsZWFzZTIyLW1haW50CisyODg5OCAwNWZmZTIwMWU5MDJkODBmODg3MDNhMDNhN2IzMjI3N2NiMzY4MjkzIHJlbGVhc2UyMi1tYWludAorMjg4OTkgMmViNGVlZDUzOGM2ZDNlZmQ1ZGEyYzVmNTAxZGZjMWIzZTgyZThkYyBsZWdhY3ktdHJ1bmsKKzI4OTAwIGQwYWFkNTE5ZTcxMzBkYTNkMDEyMmJjMjNkMmIyYjdjNDE5MjUxZDYgcmVsZWFzZTIyLW1haW50CisyODkwMSA0ZDM2Nzg3MmZjYzY2NWJmYzI0ZmU2YWMxOWU5NTNmZmY5OWRjYjZhIGxlZ2FjeS10cnVuaworMjg5MDIgNzZjY2Q1YmY5ZmYyNjI5ZmU0M2IxNTQ0NTJkNjNjZTA1ZWM2NTBkNiByZWxlYXNlMjItbWFpbnQKKzI4OTAzIDQxZWIyNGI3NDdjMDJjZGNmNWE5MDJiMGVjNjAyOGZlNTQ4NmQwZDQgbGVnYWN5LXRydW5rCisyODkwNCBkY2FmZDk5Yzg1YjY4YTg4MzA3MzkxMjk0NTEwYTgyOGFiNTVlOGFkIGxlZ2FjeS10cnVuaworMjg5MDUgYTc3MjU0Y2JkNGYwNmIxZTgyNWI5NWE1YWJiOTYwNmRjNTcyNWY0ZCByZWxlYXNlMjItbWFpbnQKKzI4OTA2IGQwN2Y4ZGIzZGI0MWU0Yjk0OTc4MmE2MGNiZDM3MzMzODE1MzVkNjYgbGVnYWN5LXRydW5rCisyODkwNyBiNWE5YWFjNGIxMGZmZjc4M2M5NDRlODhlODIzZTA0ZWM3ODcxODIzIGxlZ2FjeS10cnVuaworMjg5MDggMDk1NTFjNmRhMjk5ZjgxOGNiOWZkZmY3MWQyYjg2YmMxODRiZTJhNiBsZWdhY3ktdHJ1bmsKKzI4OTA5IDE2ZTY2MTk3MDkzMDcwYzg4NzZiNmVlNzk1OTYwZjUwODUwMjY3YTAgbGVnYWN5LXRydW5rCisyODkxMCAxZDkxZWRmZDc1ZjJiNDVkNmU0ZTg5YzNhZTdkZmFlNjRmMTI3MTU1IHJlbGVhc2UyMi1tYWludAorMjg5MTEgNGRhOGE0ZGUwN2MyMzNkMDdiM2RjMDdmMDA0NTYxOTRhMmQzNjFkNSBhc3QtYnJhbmNoCisyODkxMiAyODMwZjk2MTQyOTQwNWZjY2FlNzgxNTc1ZTcwOTA4MDE2NGM4NWRiIGFzdC1icmFuY2gKKzI4OTEzIGQ4ZjQ5ODBiOTY1Y2ViYTAxYTkyNDg5YTMyZDlhMjAyNWY5OGI4YmIgYXN0LWJyYW5jaAorMjg5MTQgZGZmNDhjNDE3OTgwMjE0ZGU1YjYxMjgzZGFiNmRmOTQyYzdkYTBlOSBsZWdhY3ktdHJ1bmsKKzI4OTE1IDk2OTYwZDY3MzllMDk3MmM5ZWYwZmU5YTljMjNjOTE1MTM4N2QxYzMgbGVnYWN5LXRydW5rCisyODkxNiAxZjJiMWU2ODQ4NTAzNmI4MzQzZDg4NjRjNzkxNWJkYjA4YWU0YjRjIGxlZ2FjeS10cnVuaworMjg5MTcgNzg0M2I1MzAwOWQwNjkyMjllYzhlNjM3YWRlNzhhNTM5NDhhODg0NCBsZWdhY3ktdHJ1bmsKKzI4OTE4IGI2ODZkZGIyNWM2OWI0YjY2MWVlMzBkZDQ3YmZkOTk2MmJkMjRhNmUgbGVnYWN5LXRydW5rCisyODkxOSA1NWYwOTBiMzhiODhkMzhmMzM4M2Y2ZGE3ZjlkZjlhNTkwZjM1ZDBjIGxlZ2FjeS10cnVuaworMjg5MjAgMGZiYmU3OWI0ZWRiNWIwYTRlYmQ1OTEzY2RmNDhjMjI0NWUyZWRmNCBsZWdhY3ktdHJ1bmsKKzI4OTIxIDE4ZTY3OWJlMjExOTM2ODlhN2Q2MzJmNjJjNDI0OTc5NmVmYTg5YjIgbGVnYWN5LXRydW5rCisyODkyMiA4YTZlZWIwYzc5MzQxNDRlNmU2YmVlNzQxN2Y2ODcxODA4ZmE3OWZjIGxlZ2FjeS10cnVuaworMjg5MjMgMmE3NjNlN2I3ZGViZDA3ZGNjNWJkYWM0NzU2NTEzYzQ3ZTMzNDhjZiBsZWdhY3ktdHJ1bmsKKzI4OTI0IDI1NjU0YjgxMTYxNmIwZjA1N2FlOTBlZjFjNjNiZjY3NzI1ZWQ5MDggbGVnYWN5LXRydW5rCisyODkyNSA1N2VjMTY0MzE4OGM5MDMxZmNhNjVjZWViOGFhNTNhODM3YjlkZjlmIGxlZ2FjeS10cnVuaworMjg5MjYgZTJmNjVhNDljYTM0M2UxOTE1ZTZmNjcyODc1ZjE0ZTM2MzFjMzIxMSBsZWdhY3ktdHJ1bmsKKzI4OTI3IDdkMjY5YmMxMjU4N2RkNTczNzMxZTEyNjVhNmM5OTA3MzZlY2Q3MWIgbGVnYWN5LXRydW5rCisyODkyOCA4Yzk1NDg2MzAxYjNmNzQ5YzZjYzU4Yzg5YTUwZmY2YzZhMmNhNTEyIGxlZ2FjeS10cnVuaworMjg5MjkgYmJmOGNmNWVlOWY5NDIyODRlYjY5M2RjMzkxMDY3ZTlkYjBmMTc2NiBsZWdhY3ktdHJ1bmsKKzI4OTMwIDlkNTBiYzgzMWJjYTA0YzZiNmI5MTZjZjRjM2MzNDg0YWQyNDFkZDIgbGVnYWN5LXRydW5rCisyODkzMSAyMTQ0NGJkY2IwOWMwNDg5MWQwNjg3ZWZlNjljMTk3MzdkNjc5MjRlIGxlZ2FjeS10cnVuaworMjg5MzIgODBmNjczODVmNTk5ZGMxNzMzYTE3OWQ5MTg1YjIwOTkxMWFjYjJjYiByZWxlYXNlMjItbWFpbnQKKzI4OTMzIGZjNTM0ZDFjOWMyODM5NjdhMWE5MTg3NWMyZGM1YzA1NzFkOWFkMTEgcmVsZWFzZTIyLW1haW50CisyODkzNCBjYWMxYjAzNGI5MDM3NmJhOWRiY2YzOGVlYTA2ODFkMzIzNjBhNGYxIHJlbGVhc2UyMi1tYWludAorMjg5MzUgZTQ3NTJmMzE2MDUzZmEzNjhiZmEwYzk4ZTAzNjBlZjBjOTI4YzNhYSByZWxlYXNlMjItbWFpbnQKKzI4OTM2IGNlN2JiZjNkOTQ5MzUyMTMyODYyMDE0MDM2MWIxZTg1ZDNiNjg0OTEgbGVnYWN5LXRydW5rCisyODkzNyA4NzdhMzkxNGRmMjI0Mzg0YzY5NDA3ZDBjYWNiNzA3M2I1NmIxYWE4IHJlbGVhc2UyMi1tYWludAorMjg5MzggNzY2YmZjOTNlY2JhNjZiNmQ2NmQyNjQzODA4M2Y5Njc2NGNhM2I3YiByZWxlYXNlMjItbWFpbnQKKzI4OTM5IDc1YjA4ZTZlOTdjNjBkNmViMWVkZTc5ZmUxMzI3YTI5OTQ5YmYwZDYgcmVsZWFzZTIyLW1haW50CisyODk0MCAyMGQ3YTU0NTU5MDc4M2I0Nzc2MzdkOWI1YmE3MzIwMjRlOGQ0OGM4IGxlZ2FjeS10cnVuaworMjg5NDEgNmQ1ODcxNTQzMGE3YmI4MDQ0ZDVmYmNhZDZlMzlkYTI1MzRmNTNiYyBsZWdhY3ktdHJ1bmsKKzI4OTQyIDJhYzdiMDk2NGM3YmE5NzY3MzM5YWMxYTIwYWJlZTIxNGU3N2IzM2QgbGVnYWN5LXRydW5rCisyODk0MyA0ZTA1YWFiNjBiZGZhYTVmYzdjNGExOTEzM2YzZWI0NTZmYzkyYTQxIGxlZ2FjeS10cnVuaworMjg5NDQgYzNlZWFhZmU2MjY1ZTNiNDViNDhjODAzOTdmNzhiOTEwZmYzNTEwNiBsZWdhY3ktdHJ1bmsKKzI4OTQ1IDVmNWZkMmM0ZmNmMjI3ZThhMzcwYWMxMGIxMGFhZTg3MzFkODI5ZjkgcmVsZWFzZTIyLW1haW50CisyODk0NiBkMGU1NzQzMjZkMThiM2IzOGJhYzJmMjM0YWEyNDQ4YmYzOTdjOGJlIHJlbGVhc2UyMi1tYWludAorMjg5NDcgYjUyNmUxMmI5NDFiN2ZkYjZlYTExZTNlYTBkZjA0ZTJiMDAyMTBmNyBsZWdhY3ktdHJ1bmsKKzI4OTQ4IGM1NzM4NDhjNzVjMzMyYWJhOWI3YzIwMTM5ZjJmNmZlOWUxZDAzY2YgbGVnYWN5LXRydW5rCisyODk0OSAwYWE2NGVlYmQ0OTMyY2Y5YzY1MzE2ZDFhYTcxZGIyMzk0ZTI4ODM1IGxlZ2FjeS10cnVuaworMjg5NTAgZGVhNjE5YjU4ODJkMGM5NjQ1ZWNmN2ZmYjM1MzQ3MDRmYWY3MDg4MSBhc3QtYnJhbmNoCisyODk1MSAxOTU4MzNhM2YxMGRhZjBkMmI3MjNkMWE5NzIwZjg2ODM4NTMyODIyIGFzdC1icmFuY2gKKzI4OTUyIGM0NjI4ZDlhY2M5YTE1NzBkNTA0ZGFkOGU5MTA0NjJiNWNjZDNiY2MgbGVnYWN5LXRydW5rCisyODk1MyBkYjlmZWUzNzNiMzAzYjAwZGI4ZWM5OWFhYmY0Njg0YzBiMWQyYTBhIGxlZ2FjeS10cnVuaworMjg5NTQgNzQyOWYyMjQ3M2NjN2MwNGM0M2Q5NjM4NjNmYzg3ZmJhZWU5MzNkOSBhc3QtYnJhbmNoCisyODk1NSA1NmRkODZiNGNiODc3N2UxN2YzNTViMzkyYWM4YTI0NGRkYmUyYmNjIGxlZ2FjeS10cnVuaworMjg5NTYgMmM5OGViMWMzMTYyZDhmZGRkNTcxYTg0OWNhMTUwZDQyOWYyYTUxYSBhc3QtYnJhbmNoCisyODk1NyAyN2Y4MzU1MTlhNWU3ZGViZTg3ZTM3OTYxOWY1YWU3NWVhYTI5ZDc1IGxlZ2FjeS10cnVuaworMjg5NTggOTE2NzQ5MGIwZGU5NGJjMjMwYzVkYWRmOWQ2ZTVlODc2YjBlODk4ZCBsZWdhY3ktdHJ1bmsKKzI4OTU5IDJiYzJlMDJmZDZkZDEyZGI0NWVlMjQ0YmYyNmQwZDk1ODcyYmY1YzkgYXN0LWJyYW5jaAorMjg5NjAgNDU1NzdlMTg1NmQwZTkzODY0OWNmZDQyNGFhZmE2ZGE0YjZiMDM0NCBhc3QtYnJhbmNoCisyODk2MSA3ZmQyZGEyMDE4MjNkMWNlN2RkYzU2MDkzZDAzMGIzYmZlYjhlMWI0IGFzdC1icmFuY2gKKzI4OTYyIDI0YzVhMWM4N2YzYmYxMjI5ZTUwNmY4NzU5M2Q0YzFiMTM4NTU5NTcgbGVnYWN5LXRydW5rCisyODk2MyA2Njk0ZjBjY2Y4ZWE0YmU3NTY3NGYxNTcyMGJjMzQ2MmU2MDA0ZjZhIGxlZ2FjeS10cnVuaworMjg5NjQgYmMwOTc4NDU5ZmZiNzgwY2YzODM2ZDQ3ZDc0NGE1ZjVmNjM3M2Y4YSBsZWdhY3ktdHJ1bmsKKzI4OTY1IGIzYTk4ZWVhMzRjODQxYzIzZjhjNzM2NGVhY2JmMGIwNGFjZDUyMjMgbGVnYWN5LXRydW5rCisyODk2NiAyZDgwYmY2NWNkMDk3OWQ5MDJhNDM3Y2E0MmE4N2EzZmJiNTRkY2ZlIGxlZ2FjeS10cnVuaworMjg5NjcgZTFhNzMyODg1YmUwOTYxNThlNmY0ZjUwZmQ4OTBlMjRkNWE5YmM4NiBsZWdhY3ktdHJ1bmsKKzI4OTY4IGQxYjZiMmNhOWQ5Yjg1MWQyMzY0OTIyY2MwMGMzOGJkNDhjNmJlNGQgbGVnYWN5LXRydW5rCisyODk2OSBkMTI0ZmIwODc3Nzg1NWRmZjJhNzU3OGQyOTFjODg2NmJkNzY3NGU5IGxlZ2FjeS10cnVuaworMjg5NzAgYmQwNGUyYmQ0MzdmYzVkMzlkZDJlNjI3NDBhMzhlOTcxZWJiZDgxMCBsZWdhY3ktdHJ1bmsKKzI4OTcxIDU5ZjgyZDk2NjgyZTlhODA4NWRjNGRkN2UxMGRmODMxNTZmMWJmNWMgbGVnYWN5LXRydW5rCisyODk3MiAzNzdkNjRjYjUzNDcwYjA2NjI5YmVkZGExMzgwOTQzNTdiMzE0YjMxIGxlZ2FjeS10cnVuaworMjg5NzMgZDcyMmJiNTIwNWFkNzAyOWRkYjE2ZjUwNTJjMGM4MTVmYTFiY2NiNyBsZWdhY3ktdHJ1bmsKKzI4OTc0IDQwNTk0ZWYzNGIzMDljNGVkZTMxMTRjODcwZGJlNDJhMTA5OTg3OGUgbGVnYWN5LXRydW5rCisyODk3NSBhZTJmMjM0ODgyYjIxNjg2M2UyNDc5MTE1MjA0ODRlZGZhY2IwMWI1IGxlZ2FjeS10cnVuaworMjg5NzYgYTM2NDdkMTFjYjcxMzQ3OTA5YTk1ZWQxMGVlMjRlY2E0NjA4NGU0OCBsZWdhY3ktdHJ1bmsKKzI4OTc3IDU4YmZhN2RkYzk5OWFjOTY0MmVmOGZhNjY4MmIyNjgxNmRkNDM4YTAgbGVnYWN5LXRydW5rCisyODk3OCBiNWQwNWYxMGQwYTViYzJjMzQ4OTEzZjJmZWFiYzEyZDBlNTU1ZTBiIGxlZ2FjeS10cnVuaworMjg5NzkgMWVhNmUzNTQ3NjEwMzgwZjg4MDYwZTFjOTAzMGViOGNiM2Y2MWM5YSBsZWdhY3ktdHJ1bmsKKzI4OTgwIDMwZWU5OWE4YjBhZTM1YTliOGNiMWY3MzIyZTBiZWJiYWRmNjFjM2YgbGVnYWN5LXRydW5rCisyODk4MSBjMTJhNGY3YTAwYjc0YWYxOWY1MTBiNTZlN2FjNTRhNjcwZWQ2NGI0IGxlZ2FjeS10cnVuaworMjg5ODIgMmUxNDA3MDBmYjZjMGM1M2JhZjQwMTFjZWI2Yzk1MWFjMzY1MjU1NSBsZWdhY3ktdHJ1bmsKKzI4OTgzIGQ3YmJhN2ViMGVhZDBjNzEzZjEyNzRkNWQ4ZTVlZGFlMDE4MzVmNjIgbGVnYWN5LXRydW5rCisyODk4NSA1NDIwOTY5ZGRkNzBiYTg1YmIyYWE0NTFlOGU3MzE4ZTI4Mzg4NTVlIGxlZ2FjeS10cnVuaworMjg5ODYgNjM2YzBmOGIzOTg3OTM2ODk0NGIyN2FkNDQzOTg5MjhkMjAyOWExMSBsZWdhY3ktdHJ1bmsKKzI4OTg3IDE5NWQyZjI1NzZlNDJjYTQ4NmRhM2VjNmZjMTRmMTU3OGFkYmQ0YzIgbGVnYWN5LXRydW5rCisyODk4OCAxMTU3MzZkZGVkN2QwOGNlNDhhNmFmNWU1NjlhNWM3ZjlhMTNjYjgxIGFzdC1icmFuY2gKKzI4OTg5IGI5MjMzZWNkOWQ0MTk0NzMyM2Y3MDFiYzEwZmQxNzcyZTllYjdiNWYgYXN0LWJyYW5jaAorMjg5OTAgNzBkOTNiNjIzNzBiN2JiYTk0OTUyYWQxMWI1NmZkYTQ4ZDEzZDhhNiBsZWdhY3ktdHJ1bmsKKzI4OTkxIGI5NmI4MjY0ZDZhZDJmZmQ5ZTIxODNlOGFkNDUwNzk5MzE5NjY2MjAgYXN0LWJyYW5jaAorMjg5OTIgOWU4MTVmMmMwZTg0ZjAzNzQ5ZjkyMTQ2Mzg4MmUzYmM2YjlhMThkYiBhc3QtYnJhbmNoCisyODk5MyAxMDk0YzZlMDM2NWU1YjA1NzBjYTg1MmMyMjkyZTVjYTcyZmRlZjI4IGFzdC1icmFuY2gKKzI4OTk0IGZlOTVjZmM2ZWJhN2RjMzRkNTU5NWM4NzAzYzY0ODE1YzZmYjI1MDEgYXN0LWJyYW5jaAorMjg5OTUgOGU0Y2FiYjJlMDAzZDI5YjlhOWRjNjRhOGUzMmUyZDZhOTg3MTk0NiByZWxlYXNlMjItbWFpbnQKKzI4OTk2IGNhMDFmNGI4NTg1M2U0NGIzNmY0MjRjMTNhNDM2OTQ1ZGM2ODg5NGQgbGVnYWN5LXRydW5rCisyODk5NyA3NWU1YTJhNzE3Mjk1YWMyMDlkNDUyNmI3ZTkwNzM3OTBkZDIxYTI5IHJlbGVhc2UyMi1tYWludAorMjg5OTggMDgxNDhlOTE2ZDM4NTFmMjhiN2U3OTlmN2VmZWE1ZjI3N2IyZTVjZCBsZWdhY3ktdHJ1bmsKKzI4OTk5IDg2MTA2NTI1NjQ4NzBhODMwYjk3Y2I0ZGM4MGU0MGRlYWViODZjOTYgbGVnYWN5LXRydW5rCisyOTAwMCA5M2VmNzQ1NTU1ZDdjMGI1MjI0NWMzMmEwZjQ3MTY3MmI4YzQ0MWE3IGxlZ2FjeS10cnVuaworMjkwMDEgNjFkNjI0ZjVjMTA3YTdlODc3MzVjMDc5NjM2YjBlODAzZThlYWRlNyBsZWdhY3ktdHJ1bmsKKzI5MDAyIDJjMGUwZjBkY2E2ZjUxMmY0NWRmMjJiYjYyMjhhOWE3Y2UyNTE1YWIgbGVnYWN5LXRydW5rCisyOTAwMyA1ZmUwN2NkNGIyYmZkNzExNDUyMTQ4NjcyMjc0YzQ3NTA0MjUxZGViIGxlZ2FjeS10cnVuaworMjkwMDQgMmRjMGRhNTM3MmI0NzAyYmU1NWYyNTQwODg3ZGQyOGIwZDFlMWRjYiByZWxlYXNlMjItbWFpbnQKKzI5MDA1IDQ3YWE5ZmM3NGRhOGNmNTMwZmEwYzRkYWYzYThlODUyNmEyNTViNjEgcmVsZWFzZTIyLW1haW50CisyOTAwNiA5OGU1OGQzYzVmY2ZhNDg5ZmRjYjQwNzY4OGQzN2M4MzZlMmZmNmI4IGxlZ2FjeS10cnVuaworMjkwMDcgZGZlZWMzYjM0ZmFlYzI0NTVkNDA1OWNlZmM0ZDNlNDE3ZDZlMjI2NCBsZWdhY3ktdHJ1bmsKKzI5MDA4IDJmYTU1OWZiNmVjNTIyOTliODcxNzFlOWI4ZjFlMTRkY2Q4M2I4MjggbGVnYWN5LXRydW5rCisyOTAwOSAzNzMxYmUyOGUxYTMyNjRjODk0ZDJiNWFkY2FiY2VmZjhhMjdlYTNlIGxlZ2FjeS10cnVuaworMjkwMTAgYzdiOWRhODU5YjU1ZjgzNjUxOGNiNGE0MTA3YjMxZWUzN2JmNDgzNyBsZWdhY3ktdHJ1bmsKKzI5MDExIDYxODIyZDJiNWU4ODZhNzVlNDc1NjY1NGUwOTdlNDI4NTQxZTJiZDEgcmVsZWFzZTIyLW1haW50CisyOTAxMiAwZWQ4Mjk0NzU3MTc0OGQwMDZjN2E5ZGFmZjBiZjI3NjA0NDMwZjYxIGxlZ2FjeS10cnVuaworMjkwMTMgMGU5Mjg4MDc1MzZjMTZhMjEzMzhkMDQ4NzczM2E0MWU2MzdlMmUxYiBsZWdhY3ktdHJ1bmsKKzI5MDE0IDFkYTVlMTdiZmU2M2EyMDgxMzRkZGQzODA1NWU1N2VkNTU2NjYwNjEgbGVnYWN5LXRydW5rCisyOTAxNSA0MWUxZDhjMjI0ZGYyZTNhYWU3ODE1ODI4ZTE5MjdmOTA5OTk4ZTcxIGxlZ2FjeS10cnVuaworMjkwMTYgNTU1MjM0ZDRmMGQwMDkxNGM2OGNmYTU4NTdlODBmZGFhZjg2NDdjMCBsZWdhY3ktdHJ1bmsKKzI5MDE3IGY2MWQxZDJiOWNlM2IyMmRhNGE2MmIyZGE0ZTk1YjkzZTZmN2Q4MjkgcmVsZWFzZTIyLW1haW50CisyOTAxOCAzNjEyNDE1N2IzMTdhZGJhYjgzNWZiNjM5ODE4OGQ2YTg4ZWVlMGE0IGxlZ2FjeS10cnVuaworMjkwMTkgNDg4Mjk1ZDFiYTExZWIyMTY3NDQ0Y2VhYWU1NDkxMmMxZWI2NjdjOSByZWxlYXNlMjItbWFpbnQKKzI5MDIwIDhjYjA3NDBkYTFmZDU5OTJlYmVhMDc1N2I1ZjhjY2M0ZDVjODc0YTggbGVnYWN5LXRydW5rCisyOTAyMSBmYzcwMjkwODEwOTMwNjhmNDczZmIyYWVmNjQwNjYwMWI2MDFmNGFiIGxlZ2FjeS10cnVuaworMjkwMjIgMTRjNGM4MzNjZGE5Y2E0ZTRlZGQ3MWYxYjdiYjY3NzlmOWE5OWMxZSByZWxlYXNlMjItbWFpbnQKKzI5MDIzIDEzZmI0ZDE2ZjYwNDJiYWUwMjMwZTAxNzk2NzgyM2Y3ZDNjMTA2ZDUgcmVsZWFzZTIyLW1haW50CisyOTAyNCBmYjBjZTc3YTMxOGFiZDM4NDBlNTQwODZhMmNjZjhjMjkzNzU3ODhlIHJlbGVhc2UyMi1tYWludAorMjkwMjUgMDcwNWNhMjlhYjk2NmZkMTMyYzcwMjA2OTA4ODEzMDNlNzcxNzFhYSByZWxlYXNlMjItbWFpbnQKKzI5MDI2IDQ0NDQ3ZjMxNWFlOTExNWQ5ZDRkMWRjYTM1NjU4MzBjMzU5YzcwOGYgcmVsZWFzZTIyLW1haW50CisyOTAyNyA3NzliYjZkZGRlNGI4YjI0MjQ2MGY3NTY5ZWNmNjI0Nzg3MzVkMTJlIGxlZ2FjeS10cnVuaworMjkwMjggNmRjZDA2NjRiMDllMmNkOTI0NTZjMjRkZDUyZWIxNDFjYzkwNzZmZiByZWxlYXNlMjItbWFpbnQKKzI5MDI5IGQwNzI4YjRiMDdjMzNiMTdkNmY0MGVjMjc1ZTE1ODY1MGI1YjA5MGQgcmVsZWFzZTIyLW1haW50CisyOTAzMCBiMTk5MDJhZDE4NWZiZDhiMzhkYjI0NDVlMzIxZjg0MWE2NGRkODc1IGxlZ2FjeS10cnVuaworMjkwMzEgYjExYmMyMTRlNGYyZjc2ZDk5ZmI5MGIxNDc1MzMxZThkZmI3NDcxMiBsZWdhY3ktdHJ1bmsKKzI5MDMyIGM0MmM5ODhiMmI5OWNhOTBhMmZhYzQwODRlNjg3ZGY3ODk1OGZmOTkgcmVsZWFzZTIyLW1haW50CisyOTAzMyBhYWU4Yjk0Mzg1ZDZiNThhOWJhNTJkYmYyMGI0MjgzZWUwOTQyZTcxIGxlZ2FjeS10cnVuaworMjkwMzQgZGUzNzBlNjUwM2RmNjhhMjNlYTgzYzI3YWIxMDFkMDFjZmE3ZGFjNiBsZWdhY3ktdHJ1bmsKKzI5MDM1IGM4NWQ3Y2RkOTgzZjMyODU2YjJhOTAxZjQ3NDZhMzNmNGIwOTkxZTcgbGVnYWN5LXRydW5rCisyOTAzNiA0MzY3MWUwMTE2ZDUyZjA1MzgxMmNmMDFlNmM2NmE1ZmM0NTI4ZGQ5IGxlZ2FjeS10cnVuaworMjkwMzcgMDIzMWNjNTRmODdlYWM0ODQ0YWE2N2ZiOGRmN2U2ZDI0MDg5MjY3ZiBsZWdhY3ktdHJ1bmsKKzI5MDM4IDgyNDE2MmViNzk3NzM3MGZmMDM4NTgwZGIxYjVhOWM1NGEyNTJmODIgcmVsZWFzZTIyLW1haW50CisyOTAzOSBjNWE4MWMzYmRhZGFiYzU3ODYxZWQwZDc3YmQ0YzZlZTAxOThkZmQ0IHJlbGVhc2UyMi1tYWludAorMjkwNDAgNDA1YTViNGY0NTNiZWM0NzA1ZTIxYmM5NjUyMjFjMjFiMTE4MmVjNSByZWxlYXNlMjItbWFpbnQKKzI5MDQxIDZjY2E2MTRiNWUwMzNhNzk2ZmVjY2M4M2RmZjMyNWFiMjM4OWQ0NmMgcmVsZWFzZTIyLW1haW50CisyOTA0MiAxMDBkYWEzNjE5OGRkODU4ZTM4OGJmNTQzMjNlNDIxM2IyODU0ODRjIHJlbGVhc2UyMi1tYWludAorMjkwNDMgODNmNjRjMDRmMDAyNjkwZjI3YzJjMjRkMmIwMmJmM2JhODc1N2RjOSByZWxlYXNlMjItbWFpbnQKKzI5MDQ0IDM2NzljNGZjNjhiYzA0ODY2ZTlhNjFlY2M0ZmNhMzk3ZGM1MTFiMzEgbGVnYWN5LXRydW5rCisyOTA0NSAyNzZiNmM0NTI5OTk0Y2UzNWFiNjZkYjVjYTcyMjNjMGJiODYyZjBhIHJlbGVhc2UyMi1tYWludAorMjkwNDYgZDQ5ZjE2NGU2YTk3NGQ3NGYwZWZkMTY0MzUxNTQyZmM4MzkzOTU0ZiByZWxlYXNlMjItbWFpbnQKKzI5MDQ3IGMxYTZmNDRlMjUzNGQ4M2I4ZmM0ZDhmNjlkOTFiNTEwOWEwZjIxYzMgcmVsZWFzZTIyLW1haW50CisyOTA0OCBhNTI2OTViNzFlN2RhYjVjYmZjNzUzNzM1MzYyYWE4MTBkNWYxNTRiIHJlbGVhc2UyMi1tYWludAorMjkwNDkgZGFlMjI4MmJjNzZiNDI3MjdkMWNkOGZiMzBiOWNkNjVhYTY1ZGNiYiByZWxlYXNlMjItbWFpbnQKKzI5MDUwIGIyODdiZGFjZGUzOWZhZjM2YzAyNGNiODNmZTU3NjM2NjI3MzU1ZmUgcmVsZWFzZTIyLW1haW50CisyOTA1MSA2MDAzOTkxNzMxYTk5MDZjOGNjYzkyODRlMzU2YjU4YTg1ODAyNGM5IHJlbGVhc2UyMi1tYWludAorMjkwNTIgMjM0N2Y5MDE4NDMxNTNkOTM0ZWJmZTQzYjM4OGZiOTgzYmU0NWZmZiByZWxlYXNlMjItbWFpbnQKKzI5MDUzIDQ0OTJkNzczMjdjNWVlMDlmNzNjMDdhY2YzYTYzNWY0NDkwZmJkMDQgbGVnYWN5LXRydW5rCisyOTA1NCAyOTExZWIzNzcyNjZkOTc1YTk4ODkwMTRhMzI1NzUwMTkwNTNlYmU5IHJlbGVhc2UyMi1tYWludAorMjkwNTUgYjMyNTY0ODdhZWU4ODg2MzY0ZGZhZjJmOWU3OWNmOGY5YjBlYjM5OCByZWxlYXNlMjItbWFpbnQKKzI5MDU2IDc3NDc3MWM1MGIxODdjZjYzMTBmZjZjYTU2NTE1ODNhNjllNGJlYmMgbGVnYWN5LXRydW5rCisyOTA1NyAyYTk0MmExYzQyZTg0OWZkYzU0YjdmOWFmZmY3MWNiOGIxM2NlYzMzIHJlbGVhc2UyMi1tYWludAorMjkwNTggZmVkN2M0MWNhYWFlZjU1MzIxZWMyYTY2YTI0MmZhYTRjNDNlZjU4YiByZWxlYXNlMjItbWFpbnQKKzI5MDU5IGM2MmZiNjNkY2ZkMWI1M2QxNzkyZDcwOTE0YmQwMmQ3MzZmMTQ4MzEgcmVsZWFzZTIyLW1haW50CisyOTA2MCA2YjFkNDY0M2EwZmQ1MGU4MDg0OTZlY2M1ZDljMzczZmZiNmM1MDA3IHJlbGVhc2UyMi1tYWludAorMjkwNjEgZTg0ZTA4MzcyZWZhMWVjNTA1M2FhMWFhODBlNjMyNjAzNDRiOTYyMyByZWxlYXNlMjItbWFpbnQKKzI5MDYyIDUyM2ZkODkwMzU5ODc4YWRlYmQ1ZmE3ZTQyNDQxMWQ0OTI3YWNmNGEgcmVsZWFzZTIyLW1haW50CisyOTA2MyAxZTM1OWRjYjRmYjNiNzIyNDRmODdjZTUwNTk5MmIyY2MyN2FiZjU4IHJlbGVhc2UyMi1tYWludAorMjkwNjQgMzkzOGU5YTA5Njg5NGM2Yzg2NmFlNDRjOGQ1MjZhMTlmNmQxZWQ3NyByZWxlYXNlMjItbWFpbnQKKzI5MDY1IDg2ZjY2MDYxMDAzYzA2Y2I5NzQzN2UwNGZlMzEzZjdhZGYwY2Y5MWUgcmVsZWFzZTIyLW1haW50CisyOTA2NiBhZDM3YjkzZTdhMmU2ZjEzNDEyNGRlMDFkMDM3MGQ4OGZkNGE3NzAxIHJlbGVhc2UyMi1tYWludAorMjkwNjcgYTY3YjlhMTk1MjY1YjVlYjBlNDFkZDQ1NDZmNGQ1MWUyM2E0OTgwNCByZWxlYXNlMjItbWFpbnQKKzI5MDY4IGE2ZWRjMWIzZmQ1NjYxNmM0NmIzM2YwNTRhMzFmMDQwODMwMDRiZjggcmVsZWFzZTIyLW1haW50CisyOTA2OSBjMWY3YWY0MmE3ZjE3Njc5MzRjN2E2OWE5OTY3NTMxMzAzMmJjOWMxIHJlbGVhc2UyMi1tYWludAorMjkwNzAgMWI4Njk3ZDYwNTY4YzQ3Yjc0YjQ0MDc5NTgwMzRmY2VlYjRkMmZiNSByZWxlYXNlMjItbWFpbnQKKzI5MDcxIDFkYWVhYmIzNjI0NDMwZWUyMmM3MjQxZjg4NzA4YmNiNDU1YWIxNjIgbGVnYWN5LXRydW5rCisyOTA3MiA5NzdmYTEzNTkwNmQxYTE0Yjg0NWI4ZWZiOGY0MDQ3MDgzOTQ1YTA3IHJlbGVhc2UyMi1tYWludAorMjkwNzMgMjg4YzFmZmQ2MDZlYWJiZjViNGQ1YzkwZjNjOTUzMDI0NWY5M2NiNyByZWxlYXNlMjItbWFpbnQKKzI5MDc0IGYzN2EzNGMyNTZjNGIwNDNlMzFhMmNhZTUzMTI5ZWE2MGZiMDQ4MTEgcmVsZWFzZTIyLW1haW50CisyOTA3NSBmOTkwNmU2MjYxYzVmMGQ0NzE4ZGQxZjdjZDYxYjRkMDExOGQxMzg0IGxlZ2FjeS10cnVuaworMjkwNzYgM2VlZTcyOTMxZDE3ODNlNTBlYTk5MGUzMzhmMWIxM2Q5M2ZhNjI4MiBsZWdhY3ktdHJ1bmsKKzI5MDc3IGYzZTcwY2MyNjQyMmQwZDEzOTUxMDk4MGIzNWU1ODAwMTVmMzVjYmQgcmVsZWFzZTIyLW1haW50CisyOTA3OCBjNGMwOTNlMjNjNmRkMWM4MDU4Nzk1MGZlNzlmNjYyMTIwZmUwOGQwIHJlbGVhc2UyMi1tYWludAorMjkwNzkgMzhhMWU1NmI5YmYzNTI0OTVhYTM0ZTE2YzlhMDk4MDBlMGQ2ZWRjNCBsZWdhY3ktdHJ1bmsKKzI5MDgwIDYzNzlhNTUxNDA2NWM5NTZjMTI1ZGE1NzMwN2I2YTJmOTA3Y2FhOTEgcmVsZWFzZTIyLW1haW50CisyOTA4MSA1ZjJjNmFjMjE1Yzc5OTVlZGQ3OTRiMTZjZjI4ZGZjZjg3YzRjOTgwIGxlZ2FjeS10cnVuaworMjkwODIgYjVkZWMwYTU1NGIzODBmZmMyN2Q0NWMxNGY3MjNhNjM5ODQ0YjZiYiByZWxlYXNlMjItbWFpbnQKKzI5MDgzIGRmMjc2YjczZmU0YjU3OTQ4MGNkZDIyYmUyZjQ1NDE2ZTJjMmQ4ZTAgcmVsZWFzZTIyLW1haW50CisyOTA4NCAyZGNkZTkwMzkxYWFlMzQ3NThhZWQwMmUxOWQ1NmNiOWM3NDM3Mzk2IHJlbGVhc2UyMi1tYWludAorMjkwODUgODdkYWE1NjU0NDJkYjgwMThhOGRmYmE5MjAwZmM4YjFmY2RhMGRjMSByZWxlYXNlMjItbWFpbnQKKzI5MDg2IGEwMDA1ZDI2NzczZDAyYzEwNTNlZmE3MzE4NTZmYmY3Y2Q1M2VkOTYgcmVsZWFzZTIyLW1haW50CisyOTA4NyBiOThmODVkYzJkODgxNTU4YjExMzQ2M2U1ZWZlMThmYWQ2OTEyZTQxIHJlbGVhc2UyMi1tYWludAorMjkwODggOGE3NTk3MzM2NzZmYmE5YWFlNmI2MzNkZGVjZGFmNjJjZTljMjhhYiByZWxlYXNlMjItbWFpbnQKKzI5MDg5IDRiYjkxOGVhNjRkMWUyYmM1ZGJiMGM5YWZhMDFlNTE1ZjQ2OGI5MWMgcmVsZWFzZTIyLW1haW50CisyOTA5MCBmODY3Y2E2YzdkNjk4ZTVlYmYyMWU2OTVkM2Q1OWM0NmE0NzRjOTIzIHJlbGVhc2UyMi1tYWludAorMjkwOTEgM2I2MDk1MjA0M2NkMDUwOTNkNTUzNzhlZmNkMTZlMTM2ZWEyMjNkOSBsZWdhY3ktdHJ1bmsKKzI5MDkyIDViYjJjMDU3ZmQ0MGI4OGEyZGQ2YzdjNzM1ZmQwNjEyN2VkODUwMjIgbGVnYWN5LXRydW5rCisyOTA5MyA0NDZiODM1ZmMxOWIyY2ZlZDc5MzgwYjdlOGZlODNjZDQ4YTVjYTFmIHJlbGVhc2UyMi1tYWludAorMjkwOTQgMjVkMWY0ZjkxNDg3ZTBkYWJjNzcyMzc4NjY2OGIxN2M4MTIwN2ZlZCBsZWdhY3ktdHJ1bmsKKzI5MDk1IDg1MDYyYTEyYzI0ZjhmYjQ1NDQ3OTZhMzM4Yjc4ZmM4NWE5MGQ4OGIgcmVsZWFzZTIyLW1haW50CisyOTA5NiA0Y2EzMmU0Zjc4MzkzYTI3YWU4MDZlNjQ3YmIwOWU3ZWE3NDM2MDUxIHJlbGVhc2UyMi1tYWludAorMjkwOTcgZWZhOWE4NjQ2NGQzNDJjZjFlNjNhMGQ1ODgwOTEwMjQ4MDZlYzFhOSByZWxlYXNlMjItbWFpbnQKKzI5MDk4IDg1NTM5Mjc5MDk0ZDE1ZTcxMTU4NWZlMjg5M2MyNGM0MGQ0Yzg0MDggcmVsZWFzZTIyLW1haW50CisyOTA5OSBhOTRmMjcyZTYwMGQ5MDk5NGMyNDVlNDRjZDVmZDdkMGRkMWM1MjE4IHJlbGVhc2UyMi1tYWludAorMjkxMDAgZWI4NDk5NzNiOTQxOGRlMzY4ZTA1MzJhM2FjYWM1YTRiZmU5YzA3MSByZWxlYXNlMjItbWFpbnQKKzI5MTAxIDQyMTM5YWJmZGJlNWJlYjVkNjNlMTFmM2MzZWMwNmFjYzAwODkwODkgcmVsZWFzZTIyLW1haW50CisyOTEwMiAyOWQ0MGVhZTg3MzZiM2YzYmNmZmJhNzM5NmI3ZTEzZmI4OGNjY2ZmIHJlbGVhc2UyMi1tYWludAorMjkxMDMgMGU2ZjBhMjJjNmE5MjNjODVmMzdmMDFhN2QwMDM5MDcwZmQ3MTc3NSByZWxlYXNlMjItbWFpbnQKKzI5MTA0IDVjZjMzZGI1NTBkNzVjZWJjOGY5YTlkMjM2MjY2NjFkNWU1NzhmYjUgcmVsZWFzZTIyLW1haW50CisyOTEwNSAxMzQzODU4NmRhYTYzNzNjZGI0YzE2NGU5NmYwZjdiMTU4OWYwMmI0IGxlZ2FjeS10cnVuaworMjkxMDYgYmYyOGQwZjc4YmQ1YjI5YjQzNmEzYzY3NmQ4MDczNjRiNmU0YTk1NSByZWxlYXNlMjItbWFpbnQKKzI5MTA3IDVjNmZhYzk1YTk0YjRmY2M5NjVhMWQzMzY0ZDQ5MzBhYWYxYmJjOWEgbGVnYWN5LXRydW5rCisyOTEwOCAxOTlmMGY2YThhMzYzMjA2ZDc0OTM1NDc4NzdiN2Y0ZGQ2NWZmMmEzIHJlbGVhc2UyMi1tYWludAorMjkxMDkgODhjMWM0ZDc4OTE2NmRjZTMzZGQ2MjhmYzAyYzg0YTUzNzNkM2M1YyByZWxlYXNlMjItbWFpbnQKKzI5MTEwIDMzYmQ2NDQ1YjdlOTM5NGMzNjdkZDdhMTczZmIwNjljODI0OGRiZGMgbGVnYWN5LXRydW5rCisyOTExMSBlMjE4NDc1MzE2NzQzODRjNDQyMDNjMTRjZmM3ZWM4MGUzNjU5NGNkIHJlbGVhc2UyMi1tYWludAorMjkxMTIgMTVlZTI5OWQzOWU2NzFkOTIwYzgxOGFmNWFkZmVhOGM0YjI0MjAzNiByZWxlYXNlMjItbWFpbnQKKzI5MTEzIDVkOGJiMDBmZWUxODk5Yzc2YTllNTY5NTNjYmM1NGI2ZTA1NjIyMmQgcmVsZWFzZTIyLW1haW50CisyOTExNCA0OTkyN2I2YjVmNDBmYTQzZTVhMWEzNDFmOTJiNDc2NmQxNzM4YTA1IHJlbGVhc2UyMi1tYWludAorMjkxMTUgM2ZhNTQ0YTNjNWVkYWFlZDdlZjYwOTFkZDBlOTJiMmU4NjhkZGZiNiByZWxlYXNlMjItbWFpbnQKKzI5MTE2IDExNTdjNDAwMzE2YjFlNmM5NmM0MzUyMDE5MzkyMTFmZTliYWE4MmEgbGVnYWN5LXRydW5rCisyOTExNyAyMTAzODQ2ZWVmNzNhZjU0ODlmNzg2NTM5YmI0NWJkYzJjMjE4NjE1IGxlZ2FjeS10cnVuaworMjkxMTggYzU4MDQxZTZhNzk5NzRlNGM4Y2I0OGJmMzg5ZTU3N2YxYmQwOTQxZiBsZWdhY3ktdHJ1bmsKKzI5MTE5IDBhMWMxYzVlMWFiNGYyOWUwZjk3ZWIwMDBjYjE3ODdmMzUzNDMzYTEgbGVnYWN5LXRydW5rCisyOTEyMSA0YmU5N2VkYTQzNmJiNjMzMDllYTI0ODgzMTQxMzZhMmY2NTM0MTlhIGxlZ2FjeS10cnVuaworMjkxMjIgMDY5MGVhNmQxMTUzNTcyYjMyYzllNzdhZDEwZjg3ZTJhMDI0NDdkZCByZWxlYXNlMjItbWFpbnQKKzI5MTIzIGY1MDk5YTUzMGQ2N2FmODBhZWYwMjM1MWI3MzBjZGNiYjUzZGUyNjYgcmVsZWFzZTIyLW1haW50CisyOTEyNCBjYjljMWY5NDIyMGI5OWVhYWVlYTVjODY4YTc5NDRmNDlkNzQzMDVmIGxlZ2FjeS10cnVuaworMjkxMjUgMDAwZDE1NTgxYTc2ODZkOTVlZTAwYTE1Mjk1ZGNlOGJjYTczMGU4OCByZWxlYXNlMjItbWFpbnQKKzI5MTI2IDkwMjc0YmEwNDQyNGQ3NjEwNWUyNmExMTIxZDFhNzllYzBlNzYzOGYgbGVnYWN5LXRydW5rCisyOTEyNyAxNGI2OGY1OTI5NWUzOTU2YjdmMTM1YmVkN2Y4ZGE4YzAyMGJkYTczIGxlZ2FjeS10cnVuaworMjkxMjggMzdjMDQ0NWJkYzkwZDk3ZDU0YjhkZjRmN2JiZjc2YjBmYTQxYzkxYiByZWxlYXNlMjItbWFpbnQKKzI5MTI4IDAxMjgzMTNjMjg1NWQ3MTc1M2YwMGZjY2M2MGJiMzllZDkyYTBjNTQgcmVsZWFzZTIyLW1haW50CisyOTEzMCBkZGJmNjlhYmI5NWNjODg2YWMxYmNkMmExYjIwNGU3MjA5Zjc1ZWEyIHJlbGVhc2UyMi1tYWludAorMjkxMzEgNGE4MjViOTAyMzEwZThkY2Y0ODhjNDMwZjhkZDgzYTQ0ZGQwYzhmOCBsZWdhY3ktdHJ1bmsKKzI5MTMyIGI2NTlhYjQ5NDU3MWVhN2U3YjI4Y2E3MGZhMzU3MzEwMzhjMzA3M2EgcmVsZWFzZTIyLW1haW50CisyOTEzMyA2M2M2ZjQ1ZTk0N2RlNDkyOTRkZjE2OTQ0ZTg2NmVjMTc3NmJhODU0IHJlbGVhc2UyMi1tYWludAorMjkxMzQgY2Y5MjY2MGUxZTNjZTNmNGVlOThkOWFiY2MyMDI2M2EwM2NkOWY1NCByZWxlYXNlMjItbWFpbnQKKzI5MTM2IGM1ZDkxNzkxZTU3YjI5NjM0ZDZhOTViNDQzNTYwMTM2OTc5MDhmYzAgcmVsZWFzZTIyLW1haW50CisyOTEzNyA4ODk3YTBiMWNiMDc1NDE4YTBkMjVkMWE4OTEyOGFhNDA4MzZiNTQ3IHJlbGVhc2UyMi1tYWludAorMjkxMzggMWE3OWI5ZTM5ZTcyNTJiNjA4MWFjOTE3OGQ2ZjEzZGYxMWJlY2FiZiBsZWdhY3ktdHJ1bmsKKzI5MTM5IDljZDZlZDk1NDA2NWRiNjIwZWZjMjM3OGVlMWZkODI3ZjY0YTIwMTQgcmVsZWFzZTIyLW1haW50CisyOTE0MCA2Mjg1MzE5NWJlNjhkMWZkMjUyNmI4OTUxNDdkMWY1NjM1N2NmNzEzIGxlZ2FjeS10cnVuaworMjkxNDEgNDFlODI4MGEzNjg1YTcwMjdlMDg2NTRiMGRmODE4N2EwMTc3ZGIwNiByZWxlYXNlMjItbWFpbnQKKzI5MTQyIGJhYzVhNDkzMjkwNTk5YThjYTkzNDNmMGMyOTZhNTIyZDczYzNiYjQgbGVnYWN5LXRydW5rCisyOTE0MyA2ODk2Y2VlZDQ2YTZiMmQyZWQzNzUyZDEyOTFmZmYxNGFjMGI4NjRkIGxlZ2FjeS10cnVuaworMjkxNDQgYzUyMTY1ZjJjZGY0MzkxZmJiNjRjM2M0MDE1MjJmN2U3NjE4NzEyYiBsZWdhY3ktdHJ1bmsKKzI5MTQ1IDM4NmU2ZmUyYzhkMmM5YTA2YzA1MzhlYjQ5ZjNkNzg4NjliYjk2YWIgcmVsZWFzZTIyLW1haW50CisyOTE0NiA2NWRmZmM5YzBhMTY5ZTdiZWJhM2Q3NGIzMjgzMjc1ODY5Yjk2YzE1IGxlZ2FjeS10cnVuaworMjkxNDcgYmE1MjJjNzRhOTMxMDFjNDM1YWVmZmU3ZWVhZWYyOWIwZTYwN2JiNCBsZWdhY3ktdHJ1bmsKKzI5MTQ4IGNlNDlmMTJhMTc2OWU2YTk3YzlkYzY0ZDdlNzdmNzkxMjRjYWYwNzUgbGVnYWN5LXRydW5rCisyOTE0OSAzODg0M2QzNWI2NDY2MDJhNDZiYjU2YTVlZDEyNjdkNmViOTcxMGY4IGxlZ2FjeS10cnVuaworMjkxNTAgYzdkNTgwMWJiYWU4YmNkYzU4OTU1Y2RkYzgxZWNhYmVmNDczM2M4NiBsZWdhY3ktdHJ1bmsKKzI5MTUxIDY5NWFkOGY4NzcwOTUxMTMzOWZhYzJkODhjYmVmNmFjZmExZGI5NTEgbGVnYWN5LXRydW5rCisyOTE1MiAwODA5ZGM1OThmZTIzYTJiMzJjNzAxOGUxOTk3YjU5YzE1ZmY3ZTEwIGxlZ2FjeS10cnVuaworMjkxNTMgZjRhYTY1NjcxMGYwMzlmMzc3ZjRhMGU3MGVhMGNiN2YyYzBlYjVkYSBsZWdhY3ktdHJ1bmsKKzI5MTU0IDU2YzBiYTIwMzI5YjRkZWQ0MjVmMWQ3NzdiZmUxZTdjYzkzM2Q2M2MgcmVsZWFzZTIyLW1haW50CisyOTE1NSBiMmU4MzdmMmQxNDFjNmZiZjlkNzFmZjJmMjcxNzgwMmYwZjBlNTk1IGxlZ2FjeS10cnVuaworMjkxNTYgZDhlYzk4Yjc0ZmE3OGI1NTRiYTljMWYxNGY3ZmJlOWNmZmRjMWQzOSByZWxlYXNlMjItbWFpbnQKKzI5MTU3IGIzOWJkMDNhOGRhYjY2OTIzODhkOWMxNjg0NGRjZTVjODVjYTBhZDIgbGVnYWN5LXRydW5rCisyOTE1OCAxM2Q2MzlhNGFmZDdiODNhOThjM2FmMDMxNDZhNWE3ZjIzMGQ1ODdlIGxlZ2FjeS10cnVuaworMjkxNTkgYTk2MjFiYTdlM2RiZDEzNDBiMGQwODdhNzZjZTQ0YzM0ODQyNzU1YyBsZWdhY3ktdHJ1bmsKKzI5MTYwIGU5ZTdmMTYwYWFjOTkwZTIxNWJhZmRmYTBmZDhiM2ZkZGQxOTQyOWYgbGVnYWN5LXRydW5rCisyOTE2MSA1MDAxM2QxYzZhNDNlYTFiZWVmNTI2ZjEzYzA2N2I1M2ViYTI2ODQ5IGxlZ2FjeS10cnVuaworMjkxNjIgYjc4ZjVjN2U1NzkwMjE5MDgzNTNhNjIwODcwMmFlOTcwYWNiYmJkZiBsZWdhY3ktdHJ1bmsKKzI5MTYzIDJmYjkxMGIxMzljMmUyNWQ1NmNlYjE0NDc1NDdiYjRkYzhjMzVkZjQgbGVnYWN5LXRydW5rCisyOTE2NCBmZWI4ODYzYjZmYzQ2NzRiZDdiOWQ0NzkxZGI1OTA1NzY3N2NiNjJiIGxlZ2FjeS10cnVuaworMjkxNjUgNmFlNmYyMDYwZTI4ZDM2NDM1YTkyOTlhMTg0ZmVjYzdkYWVlNmQ3OSBsZWdhY3ktdHJ1bmsKKzI5MTY2IGM2MjFmNzFiYzcwMjU2MDlmMDliOGQxODhjZjU1MTQwZThhNDBkN2IgbGVnYWN5LXRydW5rCisyOTE2OCA4MTIwNGUyMGNmZTU5ZTM3MmE3YTYwMTFmYTZiZjU2NTA0NWE3N2YwIGxlZ2FjeS10cnVuaworMjkxNjkgMGE3YWE4NzRjNDUwYmRkYTU5OTlhMzJjMGIyZGE1ZTJjMjRmMzU2ZCBsZWdhY3ktdHJ1bmsKKzI5MTcwIGU5NTkxNzJjYWY0OTMyMTg4MGY4M2M5OGRmYzM2ZTNhOTM4Y2I4NDIgcmVsZWFzZTIyLW1haW50CisyOTE3MSA0NDc3NjJlYmIxMWQyZDcyYTE1MTg4OWI5YjJlNDYxODVhODc3MmIwIGxlZ2FjeS10cnVuaworMjkxNzIgZWU3NTZhYjZhMTNlMGRmNzM4ZmI3OWJlYzE4ZDFlNzNkMTE2YjlkNCBsZWdhY3ktdHJ1bmsKKzI5MTczIDBmNTA1MzZhMTBiYjc3NjRlN2Q3NzIyZmMwZjA2N2Q0YmYwNDIxZDYgcmVsZWFzZTIyLW1haW50CisyOTE3NCAxZmUxYTU3ZDhlYjFiMjdiOGUzODdiZGFkZDc5ZTcwZGM5OWJhZmY4IGxlZ2FjeS10cnVuaworMjkxNzUgNzMzZGYyZDFlYmE5NzFiZjUwYTQ3MTBkNTgwNmE3NzhiZDA2MzY1NiBsZWdhY3ktdHJ1bmsKKzI5MTc2IDFhOWY0Nzg4NTI2MDRhN2QwY2NjMzgwMWJhMzZhZmNkNzM2MjM2NjEgbGVnYWN5LXRydW5rCisyOTE3NyBiYWQ5Njk5NTc2ZDlkOWJkNTYwZDgyZDRiMjc4ZDA4ZThkZWJkN2NkIHJlbGVhc2UyMi1tYWludAorMjkxNzggYWU2ODYzZTg3NzI0MzdiYzFjNzI1NmNkMTNlNDA5NGNhZGI2YzkzYyByZWxlYXNlMjItbWFpbnQKKzI5MTc5IDA2ZjYxNzNiODBmYjQxNzFkMDc5N2I2OTQ5YTA2ZmEzN2U2NmVjNDggcmVsZWFzZTIyLW1haW50CisyOTE4MCBlMDY3NDNmYWI0Nzc1Y2E4NDMzOWIzYzVjMGM3OGU3ZDdiNmQwM2I3IHJlbGVhc2UyMi1tYWludAorMjkxODEgNDFjNTkyMTIyZjYyOWZkNWQ5ZDYwOWE0N2JkNmRmN2Y5MzExNmM1YyByZWxlYXNlMjItbWFpbnQKKzI5MTgyIDJhZGFkYzE5OTIzY2UxMmYzMDkzMTIzODk1MzM2ZjJlMzdmNTg3ZDggbGVnYWN5LXRydW5rCisyOTE4MyAyOTBlYTBjNmRlNmE1YTFhY2YyYTNjMDZiMjIxNjcxNjIxZDMyMGM1IGxlZ2FjeS10cnVuaworMjkxODQgNTViMTgzOTQxMjNiN2FjNjI1NzU4ZGVjNzdkNGM4NTljZTliMmY1NSByZWxlYXNlMjItbWFpbnQKKzI5MTg1IGUzNzRlYTdhYzRjZTQ4YTA0NDkyOTU0ODI4MGFkZTE5ZmNjYWZkZTAgcmVsZWFzZTIyLW1haW50CisyOTE4NiBmNTMyZTliNjk1NTFjMmU3ZTc4NGFiYjFlNWNmMDJlYzk4ODI0MDNjIGxlZ2FjeS10cnVuaworMjkxODcgM2MyNmFlNjFlOTUyM2ViZGYzNTA1YzFkYmRlOTc4NWMwMDJlNDRjYSByZWxlYXNlMjItbWFpbnQKKzI5MTg4IDhiMjBiMjZmMTE4Njk5ODAyMzljYjEwNjc4ZDcxNWQ4ZDIyYzk0YTggbGVnYWN5LXRydW5rCisyOTE4OSBmNmVkYjFlZjJlM2Y4MDBmNjVjNmUwNjVmZWJmNGZjYWQxYjQ0ZTdjIGxlZ2FjeS10cnVuaworMjkxOTAgNjFlNmI1N2ViYmUxZDgwZWVhMjgyMGJjNzIwZDczNWI3MmRjNWEyZSBsZWdhY3ktdHJ1bmsKKzI5MTkxIGQ2MzRmYmQ1ZTQyMzJkZDdjMDkxNzA3ZTQyOGVlMjllMTlkMjVkYmEgbGVnYWN5LXRydW5rCisyOTE5MiA4ZTkyYmU2NWRlZDM2NjhmZTZhYWFhOGQ0ZjE3NTQ1MjNlMDdiODZiIHJlbGVhc2UyMi1tYWludAorMjkxOTMgNjVmYTE5M2VhMTA5MGNlN2Q5Y2Y5NjRmNDFhZjdmZWY4M2VhYjVhYyBsZWdhY3ktdHJ1bmsKKzI5MTk0IGY0NjE4MjdkYzdkZTZjM2YzZjM1ZjkxY2U5MDNmNzA0MjZlYjM0NWYgbGVnYWN5LXRydW5rCisyOTE5NSBmYTE3MzcxOWFjOGMwZWE2MTFiOGE2NmFlNGRhNjM3OTBmOGNiYzI2IGxlZ2FjeS10cnVuaworMjkxOTYgYjU5ZDFhMTE5MzkzMmRiMzZkMzNmNjFjOWI0MzZlMzc5N2UwNWIwMiBsZWdhY3ktdHJ1bmsKKzI5MTk3IGFjZTgyZGEzYjQ1MGU0YTI5YWJmMWNmMzBjZGYxY2UxMjhjZWI2ZjkgbGVnYWN5LXRydW5rCisyOTE5OCA3ODdmZWNkMGFhMWJiMTA3Njg2OWY1MTMwMDZjYWI5OTlmZTVkZDY5IGxlZ2FjeS10cnVuaworMjkxOTkgYzU5Y2U1MTNkZWY2MjViZWE2YTA1ODA5Mzg3MTZlNmFmY2E3NmUzMSBsZWdhY3ktdHJ1bmsKKzI5MjAwIDNhM2Q1YWVjN2E2YWZmMWRmZWU0ZjUzOGQ3OWZiY2Y2NTdiYWI3NGYgbGVnYWN5LXRydW5rCisyOTIwMSA3MDA1ZjRiNmNjMTIyY2NkOWZmYjkxMWJhODlhNmUyZTVkYmVhMjRmIHJlbGVhc2UyMi1tYWludAorMjkyMDIgNmQyMTM4Mzg5NjY3MjU2MjA1N2YzYjc1Y2FmYTk0Y2JmMDk5NDYxNSByZWxlYXNlMjItbWFpbnQKKzI5MjAzIDkyYThhMzUyZTAyNDMwNjMzYThlY2ZkZjYxNGMwNTI3MDYwZGVmNjQgcmVsZWFzZTIyLW1haW50CisyOTIwNCBiMGZhNWY2YThiYjk3ZGU3YTU1Nzg5ZjM0ODMwOTQ4ZmRmZWVkY2E0IGxlZ2FjeS10cnVuaworMjkyMDUgZWVlZDdjOGIyMzFhZWQxNjc2N2UzNzBlNzdmMmMxMjNlMDU2OGI2MCByZWxlYXNlMjItbWFpbnQKKzI5MjA2IDk3MDAyYjI1MDQyNTY3OWQxODYyNmE2N2M3ODJlY2U3YTY4OTFjNjcgcmVsZWFzZTIyLW1haW50CisyOTIwNyA3MGY5MDI2YTJiMTZmZDM4ZDg3YzI3MjRkNTZmMDNiMzhjMWM5MWY3IGxlZ2FjeS10cnVuaworMjkyMDggMjFhYjJhNjc0YzBhMTQ2NGVhMDZiZGQyYzllYjBiNDRlNGQ3ZDRjMSBsZWdhY3ktdHJ1bmsKKzI5MjA5IDM5NmM4YTI0ODgwYzgyNWQ1NDI0ZjBlNmNmMmM0YmY5Y2UxN2YxOTcgcmVsZWFzZTIyLW1haW50CisyOTIxMCA4NmJmODQwYzJhMWNhOGJlNGZkZDQwMjU3NzAyZTMwMTU3YmNlODM1IGxlZ2FjeS10cnVuaworMjkyMTEgNTRlYmYwODVkMjZmYTk2NGNhZjYyZGY2N2M2YTc0MWM4MWZiMzE1YSByZWxlYXNlMjItbWFpbnQKKzI5MjEyIGY3Y2NmNDk5MTU2NWMzZmIzMzIwMjhhMWQzYzJhNmFjM2ZmMWE2ZDUgbGVnYWN5LXRydW5rCisyOTIxMyA3MzQwYjY0YTQ5MDgyMjNlYmJmM2UwMmFlN2U4ZGRhMWQ0NjNmZDgzIHJlbGVhc2UyMi1tYWludAorMjkyMTQgNDg5MGYxYmRlYWE2NDJlMjBjN2U0Zjg3NjkxY2MyNTQzNzk2NmYzNyBsZWdhY3ktdHJ1bmsKKzI5MjE1IGY3YTQ2YjBkM2MwN2FhMzBlNjVhZTFjMjYzMzNhZWZiMTY3NWQxNjcgbGVnYWN5LXRydW5rCisyOTIxNiBkNDNlODJiOGQ3OWQ1Njg5ZThiYzliYjc2NmRiODRjM2M0OTY4ZDJjIHJlbGVhc2UyMi1tYWludAorMjkyMTcgZWMwYTQ4YWU4ZWI0N2VhMTZmNzM3ODQ4MTY1ZWNlOGQ0OTlmYjllYyBsZWdhY3ktdHJ1bmsKKzI5MjE4IDliZDJmOTc5MmVmYmE2N2ZmNTRmZGFmYWNjOTgyZmMwOGEzYTMxOTAgcmVsZWFzZTIyLW1haW50CisyOTIxOSAzYzk1ZTA5NzY4NDQ4ZWNhMzQyM2RjMDJlMGFiZjYwNTAwNDE5NjA2IGxlZ2FjeS10cnVuaworMjkyMjAgMmQxN2UzY2I3NzRlODM2M2Q5MTU0NDRjNGUxY2QyNTU2M2FlMzQxMiBsZWdhY3ktdHJ1bmsKKzI5MjIxIDc1Y2JlYzQwZGI3ZDVmYzU0MWNmZDBmZGJlM2JiZTUwM2U2MmNjZTYgbGVnYWN5LXRydW5rCisyOTIyMiA2ZDM1ZDQyOTJkZWM0NmQyMTgzOTI2MmM1ZmFlYjIzYTFkMTJlMzc5IGxlZ2FjeS10cnVuaworMjkyMjMgNjMyMjU4MTE0OThkNTExZDMxYjFjM2IwNDJhZGZhNmRmNDlkZWIwZiBsZWdhY3ktdHJ1bmsKKzI5MjI0IDA4MzhjNDI0NzkxNzgzZmVjOGE1ZTNkZGI2ZDFkNDBkMDQ1YjE4MTggbGVnYWN5LXRydW5rCisyOTIyNSBmNDQ5ZmI1YmJhYjhhZDY5YTUzYjI1NDJjNGQxOTYzNGMyOTMyZDUwIHJlbGVhc2UyMi1tYWludAorMjkyMjYgNTYzMjg0MWEzMmE0MDU5ZWJlYTM3NTdmNWMzNmJmN2YxMDUxOWQ0MyBsZWdhY3ktdHJ1bmsKKzI5MjI3IDZlZDBiYmRhYmRjODE5ZWMwYTI1YTFhMDdkMDUwYTFmMjIwNzJmYTQgcmVsZWFzZTIyLW1haW50CisyOTIyOCA2OWFhNjBkNzcxZDFmMzE5OWNjZDM2MzE0ZDUwYTZjNDJjMzQ4YmE3IHJlbGVhc2UyMi1tYWludAorMjkyMjkgYjRlZDlmOTMxOWNkZTQxMTVkYTFmMTU5NGU4ZWMwNzA0MDJhMDZhMyByZWxlYXNlMjItbWFpbnQKKzI5MjMwIGY0NDdiNjk2MDFiOTE1NmUxZDVhYTIwZjEwNTk1NzVhM2JlNWRlMjggbGVnYWN5LXRydW5rCisyOTIzMSBjYTk4OWE3MWI2YzdkZDdkY2QxMTVmYmYxZjllMjcwNjMxZmJhM2EwIHJlbGVhc2UyMi1tYWludAorMjkyMzIgNzFlM2E4ZTlkODg0MDYxYzFkNTdmOTZiOTlhMjQxZjgxNDllMzk1NCByZWxlYXNlMjItbWFpbnQKKzI5MjMzIDQ0NzI5ZmJiM2Q1YmJjMWFmYzZjN2VhNzBlY2MzNmRjMjJhMTIwZDQgbGVnYWN5LXRydW5rCisyOTIzNCA4YWU5YzBiMGFhMGYxNTRkY2M0OGRmMTVhMWQzY2NiYmI0NjVmMzE0IGxlZ2FjeS10cnVuaworMjkyMzUgN2E1N2RkZjcyNzk0ZWY5ZjEzOWE2NGYwYzBlOGJlOTQ4YzNkZGZhNiByZWxlYXNlMjItbWFpbnQKKzI5MjM2IDAzN2RmYmEwNzBhYzc4YzM4YTYwMmQyZGE5OWY3OTQzYzc1ZDQ1ZjIgcmVsZWFzZTIyLW1haW50CisyOTIzNyA1Njk4ZjBmZTJlYTAwOTAwNjA4ZWI3NGJiMzNhZGU2MzBmMzcxNmZhIGxlZ2FjeS10cnVuaworMjkyMzggOTUxZTNmZTdlZDNhZDNhNTZlNGI2Y2I3N2M4MWQ3ZDNhOGMyMDkxOCBsZWdhY3ktdHJ1bmsKKzI5MjM5IDNhODc5ZjJmY2EwNjZhZDI2ODI0ODYwZTQxOTZlZTViYWM4ZjgxODAgbGVnYWN5LXRydW5rCisyOTI0MCBkNTg3MWQ2ZTczNWQ3NGRmYzcxNWFlYWE2ODkxM2JiMGRmNzI4ZGM4IGxlZ2FjeS10cnVuaworMjkyNDEgMzYyMzAxYThjM2U0Mjg5ODZkNDA1MjNjMjRlOWNkM2UzNTE5NTI3ZCByZWxlYXNlMjItbWFpbnQKKzI5MjQyIDkxZWJmNDg4YjVhMTg3YmIzY2IzMTIzOWUxMzYwYTRlNTQ4ZjkxYmUgbGVnYWN5LXRydW5rCisyOTI0MyBjMzU1ZmQzN2Q2NDA3YjE0MmZjMmRmMTc4Y2ZkODU0MjA4Mzc5OWYxIHJlbGVhc2UyMi1tYWludAorMjkyNDQgODRlZTVhNDk5NzQzMDEwNjg4NmY5ZDY4OWUzNGY2ZTcyNjgyYmIxYyBsZWdhY3ktdHJ1bmsKKzI5MjQ2IGVkZjVlN2U1NWQxNDBhNzcxNzVlNzAyYWY1NmRlYzcxMWFkOTZlZmQgcmVsZWFzZTIyLW1haW50CisyOTI0NyBhZGU4YWYxYWEzYzY4ZjQzM2I2NzJmOGQxNzkxZWU5ZDYzYTNiODBkIHJlbGVhc2UyMi1tYWludAorMjkyNDggMWRhY2I2YWMzOGU5Y2VlNTMwYTdmOTUwYjQ3OGI4OWJhZDFlNWNmOCByZWxlYXNlMjItbWFpbnQKKzI5MjQ5IGNjNDFiOWNhY2FlODQ3ZTUxM2Y2ZmM1MTM0ODRiZTJhNDU3ODYzODkgbGVnYWN5LXRydW5rCisyOTI1MCBmMGE3NGFlMDlhZDczZTQ4YTM1MTk1NWQ2MDlhODg1YzcwMGY5MjhhIHJlbGVhc2UyMi1tYWludAorMjkyNTEgMmVmNzFmMzUxYzc0YTJlMWY1MGYxMzZlMjZkYWZkYWEwZWI0YjI1YyBsZWdhY3ktdHJ1bmsKKzI5MjUyIDQyM2FhNWVmOTI0N2JkNGY1ZGZlYmZjNDgxYjkwMDc1MjQwMTk3MWYgcmVsZWFzZTIyLW1haW50CisyOTI1MyBjZjE4Y2EwZWVhODkyZDU1YjQ5Mzk0OGJmMTJmY2ZmMTQ4YTJkODRiIGxlZ2FjeS10cnVuaworMjkyNTQgYWYyMGFlYWFhOTgyMDRhMDQ2MjdkMjdiZmM5Y2YyNmM3NmI4ZGY5YyBsZWdhY3ktdHJ1bmsKKzI5MjU1IGJmMzg0MTExYjNiMzhmN2Y4MjE3ZTFkYjAyODZlZmI1MjExOTQ1NmYgcmVsZWFzZTIyLW1haW50CisyOTI1NiBlYTFhNGNlYmM1MzBhNWIzZGU3ZWJkZThmZTg4YTQzMGFkYWQ2MjZkIHJlbGVhc2UyMi1tYWludAorMjkyNTYgNjFkNTMxNTMzYTg2MjI0YTFjMjY5MTdjMTgwMTNkOTFmNTkyZmJmYiByZWxlYXNlMjItbWFpbnQKKzI5MjU4IDgzODI4NTgzZDkxNzM4ZjZiYTg2ZTU2ODg4OGZjNWY3NTA2NjFmMzkgbGVnYWN5LXRydW5rCisyOTI1OSAzMWIyZmI0NDg1MTQ2MzJhNTUxOWRiNzY3ZjllN2Y3MmZhZDM1M2MzIGxlZ2FjeS10cnVuaworMjkyNjAgYTNkNjEyZjA1NjNmMTY0MzZkYjdlMGNhNjU0ZDkxMjJmZGY3NjU0MyBsZWdhY3ktdHJ1bmsKKzI5MjYxIGI4NThmNGM4ODNkZGRlNGQwODRjOWI4ZTRiZDRiZWIzOGJmOWRmMzcgbGVnYWN5LXRydW5rCisyOTI2MiAwMDFiNzg5ZjFmODRjMDA3OGNjYzUxZjlkNmRlY2IwZmMxMjJjOTMzIGxlZ2FjeS10cnVuaworMjkyNjMgYWMxNDMxN2E5YWU4YjMxNmU0YmE1MjdjNzA3NDkyY2Y3NzRmNmRmNSBsZWdhY3ktdHJ1bmsKKzI5MjY0IDNlYWZiZGU1NmIyMTlmMWRhYTVlMmM4NTJlYWUwOWFjMWJmYzVkYzEgbGVnYWN5LXRydW5rCisyOTI2NSA2NmUzZTVmMDkzY2ExMTM3NDg3ZGM4MDg2OTNmYmNmM2JkNDI2ZThhIGxlZ2FjeS10cnVuaworMjkyNjYgODVjODdiM2FjOTZiYzI2ZTU3NGY5NTRlMzFiNzZiZjk0YTVjYjg3NSBsZWdhY3ktdHJ1bmsKKzI5MjY3IDZjOTMwZTI1NmExNmQyNDg5ODZhZWQ3OTAzZDc0NTNlY2YwOTBmNWQgbGVnYWN5LXRydW5rCisyOTI2OCBiYzgxZDUzMWM2MjkzMjI1MmE3MjU4ZTM2YjgyMTFmN2RmYTliYzVjIGxlZ2FjeS10cnVuaworMjkyNjkgMzQyODQ4MjVkOWNkODFjMjkzMzNmZWQ4OWEzZjE5NGRlZDVmZmExZCBsZWdhY3ktdHJ1bmsKKzI5MjcwIGM3N2Q4MzU3MGIzZmNhZmY2YTM2Yjc4MjA0ODQ2ZTVmOWUwNGM4NmEgbGVnYWN5LXRydW5rCisyOTI3MSBhYjlkNDAxNmI1ODdkNWFlOWE3ZDVlOTQyZjIxNGFkZWJhM2E4OThhIGxlZ2FjeS10cnVuaworMjkyNzIgNjAwMTI2NWVjNjg2MTU2YzdhN2E0ZDE5MmUzMDVhY2FhMzAwNWYyZiBsZWdhY3ktdHJ1bmsKKzI5MjczIGI5NzY5ZjcxMzNjNjBhYzJiNDI2YTI0MWY3ZWQzYzIxNGVjMjI2ZGEgbGVnYWN5LXRydW5rCisyOTI3NCAwYmJlYTRkY2Q5YmVkNmQ4MWM5Mjc0NWNmNjhlODg4YjE2ZmJjZjk2IGxlZ2FjeS10cnVuaworMjkyNzUgMzdiZDJhOTAxYzEwMGE5ZmNmYzBiYmM1NTQ0YmU3YTE5OGQ3ZTEyOSBsZWdhY3ktdHJ1bmsKKzI5Mjc2IGZkY2E4N2M0MjM0ZWE0NmE1NDJhZmMxNzhiNzIwMGU1ZTc0MTQxZTQgbGVnYWN5LXRydW5rCisyOTI3NyBjZGNiMTAyZjhlNTZjMmNmNGE5MGE4NzNmNDNmNWJiNWJhN2RkYmFlIGxlZ2FjeS10cnVuaworMjkyNzggOTE1MTEyNjcxMTUyZjQzZmE5ZDdkY2I2ZWZhMzA2NjVhODYxZDkxNyBsZWdhY3ktdHJ1bmsKKzI5Mjc5IDU0ODM0MzYzY2NmMGRhNjlmMzQwZDBmYjc0MTdkZWEyZTU2ZTZkMDAgbGVnYWN5LXRydW5rCisyOTI4MCA1ZDM1MmRlOTQ0MTU4MGM4M2MyZGMwMmE2ZWM0MDY5MTQ2ODE3YjczIGxlZ2FjeS10cnVuaworMjkyODEgNzc3OTk4YTIyN2I3NGQxN2Y0ZGNiMjcxOTJlYmU3YjllOWFlNjljMiBsZWdhY3ktdHJ1bmsKKzI5MjgyIGI4Y2JkYjczNWNmMmIxOTllNTY0Zjk0ZTkxODliNGFmNDIwYjU2OTkgcmVsZWFzZTIyLW1haW50CisyOTI4MyA0YTkyYzdkOWQ0MTU0YjA1ZmJkMjQ1ZmZlMDZkYWQ4YTRlMGQ3MDYwIHJlbGVhc2UyMi1tYWludAorMjkyODQgNzZhYzE2MjkzZTRiNmM3NDA3ZWE5NTE0ZjkzNzJiN2Q4MWEwZjgxYyBsZWdhY3ktdHJ1bmsKKzI5Mjg1IGZmNjdkNWZmMTIzZTU2OWNiMGI1NTVjYzRlNDk4N2U3NDM0NGMzYWQgbGVnYWN5LXRydW5rCisyOTI4NiA3OTQxOTg5N2EzNmZlNzk3NzU1NmI3NGQ2MDA4YjU2NmNmMTIyMzQwIGxlZ2FjeS10cnVuaworMjkyODcgYzQ0MDNhM2VmYTVkNWY4YjhkODRlNDZjZDJiODk4ZGM2YmZkMTUwMyBsZWdhY3ktdHJ1bmsKKzI5Mjg4IDEyMjI3ZDc5ZjZiYTRjNzZkZjA1ZmM2NzFmMTVjNmI3NTE4NmZlYzAgbGVnYWN5LXRydW5rCisyOTI4OSAwZjRlOTk4ZTNlYmI2MzM0Y2IxYmE3YTUyMTM2NWI2ZGUwMzBlZjcxIGxlZ2FjeS10cnVuaworMjkyOTAgMDMyZjE5NjA1OWFhMGI0ZjcxZTBjODBlNGZjYzBmZTk3YTZhYmUxMyBsZWdhY3ktdHJ1bmsKKzI5MjkxIDk5MGIyNzUxNDkzODJiNGU3ZDdkOTRiNGFmNDhhZjkxZGJhNmM0MjkgbGVnYWN5LXRydW5rCisyOTI5MiAxYWZiMjI4ZTQyNjViNWE4NmYwOGMwYzg0ZGI0MDYwNjk0MzE1MDE2IGxlZ2FjeS10cnVuaworMjkyOTMgY2ViZWUyYTllM2NmOTk2MGMwMDU1NTM1ZjM5YTA0YjVlYWZlNTZiOSBsZWdhY3ktdHJ1bmsKKzI5Mjk0IGMyZGQ0MTMwMTg0MTA4YmU1M2I1MWY3ZTM5YTg1ODlmMWZhYzUzMTAgbGVnYWN5LXRydW5rCisyOTI5NSAwOTNmZTViOWY2Zjk0OWFhNWJiZDExNGYwMzVjOTI4YzAxZDU1Yzk1IGxlZ2FjeS10cnVuaworMjkyOTYgN2VhNjc0YWM1OTBlZjU3NDhkM2M0YTFkYjc0MTc2MDc3NGMxNTcxMyBsZWdhY3ktdHJ1bmsKKzI5Mjk3IGRjNDIwZGUxN2E2ZWU2M2NlZTAyMGI1MTk2NDdhMTNmMmEzNDU2MzEgbGVnYWN5LXRydW5rCisyOTI5OCBkZWFiZDA1M2I2ZGUxZjRlZDY1NmFmZDM5Nzk1ZmZlOTg1N2Q3YWM5IGxlZ2FjeS10cnVuaworMjkyOTkgODA1MDE1N2E0NDMwYmI3YmQ4NzIxMzU5OGI3NDM4NGJiMDAwM2E5OCBsZWdhY3ktdHJ1bmsKKzI5MzAwIDA5MGI3MmMwZDJlYjczMDI1OWE5YTc2Mjk1ZGUyNTEyNmQxZmE4NmEgbGVnYWN5LXRydW5rCisyOTMwMSA0NGNjN2M2MmQ5OGRiMzc3NjFjNDMxN2M1NGVjNTJmMmU1MDI3Y2ZmIHJlbGVhc2UyMi1tYWludAorMjkzMDIgMDM1YjhkZWI1MmMxZWY0ZDBlYjUzMDE3Y2E3YTQwMmMxOGVlNzM5NiByZWxlYXNlMjItbWFpbnQKKzI5MzAzIDQ3MDI5MjEyOTdkMTI1NWExMGNjOWM3M2JkMTI4N2IzNWEwNzEwNzEgbGVnYWN5LXRydW5rCisyOTMwNCBhODlkMDE0NTU5ZTA1N2YwMTYyMzI5Y2M0ZDhlNDViOTcwOWVjNjRkIGxlZ2FjeS10cnVuaworMjkzMDUgMmYzNjQ3YjIxYjA3NjMzOTBmMmQxNzg3NTE0MWQ4MzU1NGY0OWZmOCBsZWdhY3ktdHJ1bmsKKzI5MzA2IDg1NDA4ODdiY2VjNmM5YjkwYTJhYWFiNDEwMjI3OTUyMmQxZjdjNTkgcmVsZWFzZTIyLW1haW50CisyOTMwNyAyNDM1MDM5MjZjODFkODBlYzUzZTFhYjA0YjAzNWQzMzViZWRkMDQyIGxlZ2FjeS10cnVuaworMjkzMDggZWVhNDBjNDE3MjA1MzlmYmY3YjM0MzBkMGQwYmEzMzE5OWIxMjc3MiByZWxlYXNlMjItbWFpbnQKKzI5MzA5IDA5ZTNmMGQ4YmUxMGJlYjVhYjBlZmU4NDg0YWRhNDdiNGE3YjIyYzkgcmVsZWFzZTIyLW1haW50CisyOTMxMCBlYWI3OTQwMjc3ZmJiM2MxMzRiZGM0NDExODc2ZDJlOTJjMzRiN2M5IGxlZ2FjeS10cnVuaworMjkzMTEgN2I3Yjk2NTU1ODQyYTk0ZDQ2NzU3M2M0NmMyNWM0NzA1YjMzY2QxYSByZWxlYXNlMjItbWFpbnQKKzI5MzEyIDMxYmRjNjZmYjMwN2YwMTVjZjBlOGMwNzA4YTU4NTk5ZDRhZDM2MWMgbGVnYWN5LXRydW5rCisyOTMxMyA0YWNiNTUwMWI0OTAwYzcxM2QwMjJmMDNkZTc4MTRjNGViOWY1Y2YzIGxlZ2FjeS10cnVuaworMjkzMTQgOGZiMTJhYzc5YzkzN2FhNDM3ODU5NjU2ZmIxYWQ2MTNhYjYxNWI0NyByZWxlYXNlMjItbWFpbnQKKzI5MzE1IGVlZDBmY2Y4NWI2MjI5MDQyOWMyMTE5YzVkZmQ3ZjBjZTA2NzMwOGQgbGVnYWN5LXRydW5rCisyOTMxNiBhNWRiMjQ2ZDk0YTBiOTFhZDk0NDM0YjJjOTc2Zjk1MzAzZmUyOTM3IHJlbGVhc2UyMi1tYWludAorMjkzMTcgMDU3ZGU0MWRhZjQ4OTJkMDFmZmRlOTllMzg2ZmIzNDQ2YjY3ZTc5NiBsZWdhY3ktdHJ1bmsKKzI5MzE4IDY3MzgxZWJkNWY0ZjcyNjA4M2FiODU1ZDdhMjVlNGY3NDgwMThjZGMgbGVnYWN5LXRydW5rCisyOTMxOSA3ODg1ODk5ZmI0M2ViNTBjZDI5OTQyYWZmNzEwNDRhYmI3YjA4MjFhIGxlZ2FjeS10cnVuaworMjkzMjAgMWY1ZjY0ODE4ODZkOWFiMzQ4MTFkZTZlNDVmOTMwNjI1ZjUyZjdkNSBsZWdhY3ktdHJ1bmsKKzI5MzIxIDY4MGJmY2M5Y2EwNjZjNmM2ZGUyN2RjMDNlNDNiYWM3ZGQwYjcyYzUgbGVnYWN5LXRydW5rCisyOTMyMiAyZjliMGEzNWUyMDU3ODhmN2UyM2ExYmY0NzdkMDg4MDQyYTI0ODFhIGxlZ2FjeS10cnVuaworMjkzMjMgYTExY2ZhZTcxZGViMDc4NmU2MjIzMDA3MDQ5ODk0MDBjYTk2NTQwZiByZWxlYXNlMjItbWFpbnQKKzI5MzI0IDg0YTNkZDk5NGNkMTg4MDRmNjMzYjZjODNmNWYyOTZkMGJkMTM1MzUgbGVnYWN5LXRydW5rCisyOTMyNSA1NGYzMmJhNzA0N2NiM2ZiMTg5MjA3MTNlN2JiNGU0YmU1OGM1ZWNmIHJlbGVhc2UyMi1tYWludAorMjkzMjYgOWRkOWM1MzFjYTc4YzRmMTBkYzExNjRjNjEyOTk4MDM1ZDY3MDVjNCBsZWdhY3ktdHJ1bmsKKzI5MzI3IDRjOGE4Yzc0ZjRiZGE5NGZmMzg1ZjY1YzE1ZTRiZjIzN2YwY2ZmMGIgcmVsZWFzZTIyLW1haW50CisyOTMyOCA4MjNlOTQ3ZTI0NTAyNTdmZmM1N2M5ODFkMjVjZGExYmZhZWVhNmNmIGxlZ2FjeS10cnVuaworMjkzMjkgMzVmNDc2ZDY0ODFlZjQyOWRlZGFjMGU2Mjk0MmYzNjI5MDkzYThmYiBsZWdhY3ktdHJ1bmsKKzI5MzMwIDQxZTAzNjFhMjE5MTIyZmFlNzMzYzBmNmQyZDUzMmYxMGEzNGE1NjIgcmVsZWFzZTIyLW1haW50CisyOTMzMSBlNTZiNTJlNzhiYzk3OTBiNTNiNjc4ODUwYTNmMzdkMmYyODFkYzk4IGxlZ2FjeS10cnVuaworMjkzMzIgMTUxYWEzNDM0YWE2NzAyMzk3MmNhNzNhZGRjY2ZjMzc4OTQxN2E5NyBsZWdhY3ktdHJ1bmsKKzI5MzMzIGQxN2ZmYTA1MjJiNzU5ZWU5OGE3M2NkNTFkNjdiOGRkNjk5ZWVhYWUgbGVnYWN5LXRydW5rCisyOTMzNCBiOWFhODcxZjg0NGJmY2ZmY2VjNjI1NmU3MjEyNjUyYmNjMmZiOGE2IGxlZ2FjeS10cnVuaworMjkzMzUgYjdiMDEyZTc4ZGEzNWUzYmM1NTE3YzUyMDExZDVhMWE5NmI5YjM5MCBsZWdhY3ktdHJ1bmsKKzI5MzM2IDJiMTU4MjY3YjAwZTRjMDljMDExMzA3YjA5YzI4YTI2MmU3MmVlYTQgbGVnYWN5LXRydW5rCisyOTMzNyAyYmNiNDE2MTFmYWU5MTkzNTJiNDA3MmIwOWE3ZmJlYTlhMjBiMTkyIGxlZ2FjeS10cnVuaworMjkzMzggNGViOTRjNTZjNDZhNDcxYTQ2ZDNkOWE3ZDBkN2EwODAxMmY3OTE4MSBsZWdhY3ktdHJ1bmsKKzI5MzM5IGNiOTEwYzM5NDkyNzE0OTUzNzUwMTQwMjEzZWEyNWU1NjkwYTM2MjQgbGVnYWN5LXRydW5rCisyOTM0MCBhOWNmZWI0MmUyNDA5OTg2NGEzZmMwNjZjY2QzMTdkOWRiZjM3ZDc3IGxlZ2FjeS10cnVuaworMjkzNDEgNTdmYjNkNWUzZGQzNzYwMWVmZjgyNzllYjA2NWI3YWRkYTE1ZmJkNSBsZWdhY3ktdHJ1bmsKKzI5MzQyIDc5MzA1YTJlZmE4Yzg3OGVjMzdiMWJjOTBmZjlhOWIxMTY4OWJlYTggbGVnYWN5LXRydW5rCisyOTM0MyA5MjUzZmU4NmI5MjJmYTFhMWQxMmIyMGUwMWUxNjFjMzNhOWIzZjBiIGxlZ2FjeS10cnVuaworMjkzNDQgNWY3YTMzNGMwOTI1MTA5OTQzYjVmZWRiZjVlZTg4MDQ3YWZhNWI3ZCBsZWdhY3ktdHJ1bmsKKzI5MzQ1IDE1NjA3ZWM0OWZhZjEwODE4NDdiZGI5MDQ4Mjk3MWNmZDdkODM4N2MgbGVnYWN5LXRydW5rCisyOTM0NiBkNGNmYTQwNDNjMDk0ZDdiYTBiZjA1YzZjNDEyMTQ5OTkzY2E2MmMyIGxlZ2FjeS10cnVuaworMjkzNDcgY2EwMjVlOWZlNWJjMmU5MDRiNDIzZWY3YWFlYWVhMDZiZjdmODdkZSBhc3QtYnJhbmNoCisyOTM0OCA4M2EzMmM1NDdiNDk5M2I2MGY1YTQ4M2E0ODJkZGE3YmU4ZmViZmYwIGFzdC1icmFuY2gKKzI5MzQ5IDA5OGNkYmFkNTVjZjJlNzYwNDJmNjcyNDQ2ZTAxODNiNDgxMjQzZGEgYXN0LWJyYW5jaAorMjkzNTAgMmQ3ZjQyNzcwNzMzMjVjYTg4ZGEzODdmMWE4Y2RmODE3ZTU0NzNjOSBhc3QtYnJhbmNoCisyOTM1MSA0NTg3ZDFhZjJjNDE0M2U1YTQ5MGFmZDYzYTlkMzEwZWJiMGI1NGFhIGFzdC1icmFuY2gKKzI5MzUyIGFhMmVhNWZmNWY0MjcwOWQ3NDhkNjhkOTdkYzgzYzE1OWUyOWU3YjQgYXN0LWJyYW5jaAorMjkzNTMgMDdjNmQzYjkyOTNjMjc1ZGM5NTE5OWU0MzZiYjZjMDNiZDRjYTk0NCBhc3QtYnJhbmNoCisyOTM1NCA0NmI1NjczY2EzODBkYWI4NDVhNWZkOTlhZDJiYjhkZWRiOTAxMjFkIGFzdC1icmFuY2gKKzI5MzU1IGUzNjVlNmJmNDFiYjAxZjY4MzJiZGYyM2JlMTE2ZDc5NGU1ODc3NDQgbGVnYWN5LXRydW5rCisyOTM1NiA0ZDUwMzE4YjNlYjE4MWRiN2Q2Mjg4ZmQ1NWEwMzUwMWViOTZjZTYyIHJlbGVhc2UyMi1tYWludAorMjkzNTcgOGQ0NGQ2MTQ5NDFkNDc3YTY2YmMzMTdmMDQ1NjMzY2RhMjIwYjYwOSBsZWdhY3ktdHJ1bmsKKzI5MzU4IDZmMTg1MDhiZWQzZDI3ODg1Y2JkZmZhZTlhM2RkMThlZDdlZmRmMTYgbGVnYWN5LXRydW5rCisyOTM1OSA3ZTgwZTdkMDVhMTZjODM5YjdkYTI3NWE2OTQ2ODMyYzRjODY2YzhjIGxlZ2FjeS10cnVuaworMjkzNjAgMzRmMTdmYjQ5YzUxMzExMDM5ODZjZTliMjE1ZDExYjRiMGU2MmJjNSBsZWdhY3ktdHJ1bmsKKzI5MzYxIGZlYzE1YmFkMzg2ZDlmMGQzMDcwNWM0ZDZjMzQ1MDQyMzE0YmIwMzcgbGVnYWN5LXRydW5rCisyOTM2MiBhNzBmY2M1ZGJiYTUwNWRkYjU1ODY5N2YxNzZhM2VkMDhhODRjZGYzIHJlbGVhc2UyMi1tYWludAorMjkzNjMgNTI5ZGE1MDVlYWJjNzMxMDM4OTMwYmY4NzExYmRkOWJmNDEyZjA5MiBsZWdhY3ktdHJ1bmsKKzI5MzY0IDE3NTA0MWUzNDU4N2E3NjFlYWJmNmU4NzBhYTkwNGE4ZGM5ODQxZjMgbGVnYWN5LXRydW5rCisyOTM2NSA3ZjAzMGI4ZjkxN2Q5MGIwMmM0ZjM5ZTBiMDJlMTFlYmVmMWM4ZWFhIHJlbGVhc2UyMi1tYWludAorMjkzNjYgZmJlYTcwYTQwMjkxNTQyMTgzMWZhNWNiMmExNDgwYTcxZjkyMmNiYSByZWxlYXNlMjItbWFpbnQKKzI5MzY3IGFjMjM5ZWUwYzllOGI4NzFkYTA4NmQwNGE0YzNkNjdmN2Y2NjZkNDEgcmVsZWFzZTIyLW1haW50CisyOTM2OCBjZjg3OTIwMzUxYWNlOTI3N2E2N2I5MTRjMzU4NTZmM2EyMDNjYmM0IGxlZ2FjeS10cnVuaworMjkzNjkgNDAyZmRhZTY3ZTQ0MGY0ZDg2YTU3MzkxMzc2NDRiZjU4Y2Q0YjFmZSByZWxlYXNlMjItbWFpbnQKKzI5MzcwIDE5NTAwYzliNThjMTYxYmZjNTNhNmU3YzYwMDZmNjU5ZWMzZTY5OWYgbGVnYWN5LXRydW5rCisyOTM3MSA1MDliYjBiNmRmYTNjYmNjOTBiNzM3MjBmYjg2OGU3NjQwNzgyYzc5IGxlZ2FjeS10cnVuaworMjkzNzIgMTI0OTI0NTIxMmU0NDYxNjFjNGY1YTdlZjdiMGNkYTRmZmJhYWM4ZiByZWxlYXNlMjItbWFpbnQKKzI5MzczIDM3ZDg3ZGM4MDNkN2E0YmQ2MmRlNzVmMTEyMmFlZTE3ZGMzNjg4YzkgbGVnYWN5LXRydW5rCisyOTM3NCBkM2I3Mzc3YzhhZmFkZTEyMDlkZjg5MDAwNDg3MjMzMjJlNzU3ODY0IGxlZ2FjeS10cnVuaworMjkzNzUgYzMzOThjMjVkZmVmN2Q5MDY1NmVkM2NkYTEzNzFhMzBjMmM2OTE5NSBsZWdhY3ktdHJ1bmsKKzI5Mzc2IGZiN2M1MmNhOTg0MDUxMGU2ZmYxYjZiMzc5MDEzOTM3NGRjZDc2YjQgcmVsZWFzZTIyLW1haW50CisyOTM3NyAwOTVkYmJlYmE5YzA0ZmQ2NDQzNTNkMzk1MWQ0MDgzY2RmNGFhOWY1IGxlZ2FjeS10cnVuaworMjkzNzggNDg3ZDNjMjQ5MGJjMDM1ODgxMjBlYWQyNWFkOTA3ZmE5ODVmMTBhNSByZWxlYXNlMjItbWFpbnQKKzI5Mzc5IDAzYzNmNjEwZTA1NDEzMDhiNGI1ODRlNmYyZTgzZDE1YjEyZTJlZGMgbGVnYWN5LXRydW5rCisyOTM4MCA1MTgyOGVhNTBiNTljMGU4MWU0Yzc3Y2U1MGE0MWM5ZjQwMjYwODUzIGxlZ2FjeS10cnVuaworMjkzODEgMTc5NDgyODc1Y2ZiYTVjNDBmN2Y4ODcyZjcxODllZTVmYWM4OTg2OSByZWxlYXNlMjItbWFpbnQKKzI5MzgyIDUwOTA1ZGIzNWRhNWIwZjA2OWZkYzRmMjVkNTliMDE2ZmM4YzE4YjcgbGVnYWN5LXRydW5rCisyOTM4MyA2ZWE5ZWVmOTkxMDg0Nzg2MzA4Zjk4NzhlYTYwMjNjZmE4OWY3MmZjIHJlbGVhc2UyMi1tYWludAorMjkzODQgZGYwNTVhOWVmZjljZjkwNzc4YzBkYmU2ZGMzMGE5MTBiMjBkN2MxMiBsZWdhY3ktdHJ1bmsKKzI5Mzg1IDBiYWM2NmUxYjM1NjkwNGVhZTQyZDc4ODBjZTdiM2ZhNDY1NWI2NzIgbGVnYWN5LXRydW5rCisyOTM4NiBhY2NkMmY1NGUxODQ3YWM0NWE5ZWQ4OTAzOTQxODRlMmFmMWViYThiIGxlZ2FjeS10cnVuaworMjkzODcgZDMyYzQ1ZDI3OGIyNDkwZGY1NWU5ZjcwODIzZjIxMWFhODQ4ZWFjNSBsZWdhY3ktdHJ1bmsKKzI5Mzg4IGY3ZGEzM2JjZTFkOTM5OTZjOGU3YmNmMjQ0NjAxNjM5ODJmODI3NjIgbGVnYWN5LXRydW5rCisyOTM4OSBmYmExNmI5YmM5NTE3ZjRiZDlmNTQzYTJmYzM4NjE1ZmYxZTVlODM3IGxlZ2FjeS10cnVuaworMjkzOTAgYjA2MzgzMjllM2I5YTFhOWI2NWJhMWI3MGJlNWMzMTBmYmJlNmViZCByZWxlYXNlMjItbWFpbnQKKzI5MzkxIGYyZGFlM2Q5YTc1YmQzYzNlNTg2ZGUyMmEyOWMxNmM5NDEyNDA3ZjkgcmVsZWFzZTIyLW1haW50CisyOTM5MiA4YmI2MDAzZjdmNTRjNTk2NmVhZWVlNDhlNmQ5MGJmZDUwYmYyMDBiIGxlZ2FjeS10cnVuaworMjkzOTMgNWI2ZDU1YjQ1Mjg3YzQzNGY2MmQxMGM3N2VhNDJmYjcwNzdiZWFkNSBsZWdhY3ktdHJ1bmsKKzI5Mzk0IDk5MDFmZGE3YzM2NjRhN2Y3NTMyMzJlOWVhOGRlOGVmZTAxY2ViNTkgbGVnYWN5LXRydW5rCisyOTM5NSA0ZWY3Njg2YzRjODg5ZjY3MTY2ODYyYjIzZWI0MTZkOTkxYjY3MGYzIGxlZ2FjeS10cnVuaworMjkzOTYgNGY0ZTAyNjBiNzcxMzIzODEzZjM3Y2Q5NWEwYmZmMTVjMTFkZmI1YiByZWxlYXNlMjItbWFpbnQKKzI5Mzk3IGU4ZmM0NTllYzAxNTU4NWJmYjEwMTI5NzE5YmYxNTE5ZmMzNjE5NWMgbGVnYWN5LXRydW5rCisyOTM5OCA2ZTQxNGZiYTQ2ZjY4YzI5YTA4NjVjY2M1Y2U0ZGE5ZGRkNTFlNWEzIGxlZ2FjeS10cnVuaworMjkzOTkgODM0YjBlMDM4OWM1YTliM2E5Mjg5NTQyNWM3NGQ2OTcwNGEzOTc1YyBsZWdhY3ktdHJ1bmsKKzI5NDAwIGRjNGEwMzM2YTJhMzNjYzFjNmE4NDlmNDMxZDUzODM2MjcyMjY2ZGUgbGVnYWN5LXRydW5rCisyOTQwMSA2ZDU1NDJjYTI3N2EzOWE4OTc2NGM2N2EzNzA3ODI1MmFmMzk1NjRkIGxlZ2FjeS10cnVuaworMjk0MDIgNTg5NDFmY2I2ZjViYzE1NmExYjFlYjhjZDQ1MjQ3ZDc0NjI1Mjg1MiBsZWdhY3ktdHJ1bmsKKzI5NDAzIDcwNDkyNjhmMjUyZDI3MjVlNzhkOTU1NmFkYzlkN2M4NDNhZWRjZGMgbGVnYWN5LXRydW5rCisyOTQwNCA3NTc1NmM4NTU4YmQ5MTE3MWNjNTg0MDczNzM2NWRjZTllZDVmNTQ1IGxlZ2FjeS10cnVuaworMjk0MDUgZGVmOTYwOWQ5MzY5Y2E4YWU2ZWUyOWQ3YTNhNWYzNGFmOWViZTQ5MiBsZWdhY3ktdHJ1bmsKKzI5NDA2IDMwNjViNTRlM2FiNzFiZjE3ZGYyNmExYmQzYjBiMDdkN2NjOTdlZmMgbGVnYWN5LXRydW5rCisyOTQwNyAxMWZjY2NjZDM2MDA0NzkxNjc0YTQ1ZmJmMjRjYmUwMmRkOTIyNjZmIGxlZ2FjeS10cnVuaworMjk0MDggNzkwNzI5NDc3NjEwZWE3N2I4MTY3NzNiZDczNjAyNmZkZDVlOTlhZiBsZWdhY3ktdHJ1bmsKKzI5NDA5IDA0Y2MxMmJkY2VkZWFhNzViZDU0YjBlNjI5ZmViMDMxNGM1ODhkYWUgbGVnYWN5LXRydW5rCisyOTQxMCBiZTg4MTYxNDg0OGIyODg2M2ZmMjNkNTdmZTAxMDdlODk2NmZlYTAzIGxlZ2FjeS10cnVuaworMjk0MTEgOTQyNDBhZDUwZGJlMmU3MWI4Y2IzZDY4ZmVhOTUxM2VjN2ZlZDc3NSBsZWdhY3ktdHJ1bmsKKzI5NDEyIGI2ZWU4MDQ3YjI1MGQ0YTk0ZGZjYzk2ZjhhOWU1ZWMyYjAyNzYzYjIgbGVnYWN5LXRydW5rCisyOTQxMyBmYjU3ZDU3NzdhMjQ5MmI3MjczZjA0ZjVjOGEyNDA5M2E2YjQwNjI3IGxlZ2FjeS10cnVuaworMjk0MTQgNDhlNDYxMmY4N2NkOTI4YjllZjdhYzk3YzNlYzZhZjM5ODA4N2ExMyBsZWdhY3ktdHJ1bmsKKzI5NDE1IDQzZjcwMTA5Y2RhNWM1NThiZTI5NjY5YzVmNDkyODkxNmZhNDgwODkgcmVsZWFzZTIyLW1haW50CisyOTQxNiBlMWRiMWY5MGUxN2Y5ZDM3MGYxMjc3ZmFlOTRkNzY2MGExNTRhYzhmIGxlZ2FjeS10cnVuaworMjk0MTcgN2I3NzNhMTI3MWMzZGYzODI0ZjcwOWUwNGM4NWVmNmI3YTk0OGIzZiBsZWdhY3ktdHJ1bmsKKzI5NDE4IDNkYjc3MmQ0NWY5ODg2YzliYzIzMDE2NDJiMGM5Mzc4ZGZlMjY0NGQgbGVnYWN5LXRydW5rCisyOTQxOSAyNmI0NDBjMzdjOTRjODkyNjFjY2Y5OTMzYzZjY2UzZjU2YTJjZTM3IHJlbGVhc2UyMi1tYWludAorMjk0MjAgMjUzZTllZGZkZmMwNjBmZjc3YjQ4OTZmNGFlMmI3NzFjZjA5ODliZSByZWxlYXNlMjItbWFpbnQKKzI5NDIxIGFhZTM3NjRjNGQ1OGQ0OTFmNGM2NWYxYWEyZTAwNGNlMTAyMWI2ZTEgcmVsZWFzZTIyLW1haW50CisyOTQyMiBiOTI0NmY4ZmI4ZmQzMDRjZWM3MzZlZWJhYTFkMjI5YTk4NzBlOGFkIHJlbGVhc2UyMi1tYWludAorMjk0MjMgODA4ZTUxM2EyZjVjMmZjNDg4OTZmODdhNzYyMTNhYTBkZTYwOWNmZCByZWxlYXNlMjItbWFpbnQKKzI5NDI1IDg1ODVmZDlhZWNlZjk1YWRlNjU4NWY4MWQ4Zjc5YTEyZDY0NDlmMjEgbGVnYWN5LXRydW5rCisyOTQyNiAzNmQ0MThiZWE1NTIxOGYwZjBmNjEwNDgzZjI1NmE0OGI2Mzk4YTU3IGxlZ2FjeS10cnVuaworMjk0MjcgNDQ1ZmViMjZhZGZiOWFhNTIwMWYyNjQ1NWViYjMwODA0ZTlkYTYxZiBsZWdhY3ktdHJ1bmsKKzI5NDI4IGY0ZjE3Njc4ZmRkODY1OGRiYTRiZmZkOWU5MjAyMDFkMTBmZjMwN2MgcmVsZWFzZTIyLW1haW50CisyOTQyOSA5NDllZDgzNjVkNThkMzUxYmM3MjA1NTZhMzFlZDBmZTJiYjU0YWEyIGxlZ2FjeS10cnVuaworMjk0MzAgMThlZGYyM2JmNDk5M2Q3MTAyOTQ3ZTM0NDc4OWUzYzEzNWEwNDNlZiBsZWdhY3ktdHJ1bmsKKzI5NDMxIGRiYTYwZDAyNGU0ODQzNjNhMmY4ZTljZDM5NzRlZWNhN2I0NGFiMTkgbGVnYWN5LXRydW5rCisyOTQzMiAwOTY2NDJkN2VjYTI1YmI3ZDJjYjIyNjMyNTg4YzUyMTgwZGM3MmUwIGxlZ2FjeS10cnVuaworMjk0MzMgZmM2YTE5ZjY5YWM3ZTJiNjBlZTc5Y2VmYTJmZmMxNjNlMmQwOWYzNyByZWxlYXNlMjItbWFpbnQKKzI5NDM0IDAxYmY5Yzg4ZDk2MDM2YjY2NjJhMTU5MjdhZGQyNmMyNGM0NTZjZTMgbGVnYWN5LXRydW5rCisyOTQzNSA3MjczNGIzOWY4YWEwYWNmNTI2YWQyM2E2NzlhZWZhNDZhYTAyOGFlIGxlZ2FjeS10cnVuaworMjk0MzYgZDkwZWY0NmQwODM4MjhiYzk1YzBiZDQ2YjkxMWVmZWJjOTJiZTczMSBsZWdhY3ktdHJ1bmsKKzI5NDM3IDRhMjRjNmE2NDI5YTY2NzM1MDdlM2E2Yjc5NTMwNmY1OThkNjc3MTkgbGVnYWN5LXRydW5rCisyOTQzOCA5MWQzZDQ0NTJjNDgyMjBiNDY3OTVjMDMzY2M0Y2JlNGYzMDU3YjE2IGxlZ2FjeS10cnVuaworMjk0MzkgZTM0OWZlMDkzYjM0YTkxODQ5ZDE4OTlhZGE1NWJhM2IyOTliN2QzNCBsZWdhY3ktdHJ1bmsKKzI5NDQwIDMyM2U0YzExNDZkMGM2MDI1ZjZiZmRlNDhjMmYxMDY0MzBlNzIyMGYgbGVnYWN5LXRydW5rCisyOTQ0MSA1NTE3YzM2YWM0OTdkYzM2NDBiMDZiY2RiOTFlZDk0Mzk3YTg5YTc0IHJlbGVhc2UyMi1tYWludAorMjk0NDIgNjg3NWJkN2NiNTcwNTczZWVjMzNjYmU2NzQzNWViMTkwY2NhYWJlYiBsZWdhY3ktdHJ1bmsKKzI5NDQzIDViODI4ZmZlMWIzNWYwMWVlNmNiZTM3MDIxNWU3YjNjN2Q5ZDliNzUgbGVnYWN5LXRydW5rCisyOTQ0NCA0MjUyYjA0ZjNlZWQ2MzRjZTIzY2NkMjA3ZjhlNTU2NDQyZjE5NDg2IGxlZ2FjeS10cnVuaworMjk0NDUgOGU3MzM4MzQ3NGVhZWI3ZWUyOTJmNmQzOWI2MzlkYzU2OTUzYjUwZiBsZWdhY3ktdHJ1bmsKKzI5NDQ2IGQ3ZGEwODBkNzc2MzA0YzhiYzM5ZWQ3NTdkZWIxN2VhZGFhMDlmZjEgbGVnYWN5LXRydW5rCisyOTQ0NyA0NzJhNDJlMjAyNDQwOWFkYzU5NjBhNjMwMTJkMjI5NWY4YjAzOTBlIGxlZ2FjeS10cnVuaworMjk0NDggY2I4Mjk4YTZlZDQ3YzQ0ZGRmMTA2NTFhNmU3MDJhZTQxOTY5MTcxOCBsZWdhY3ktdHJ1bmsKKzI5NDQ5IDY2NjJmOWQ0MjIwYjVjZGEwNjQ1ZTE2YjYzOWIzYWE5ODRmMDgxNmEgbGVnYWN5LXRydW5rCisyOTQ1MCBhNjhjNmQ2MmZlNzg4ZGY0MDA0OTFkOGY2ODhhZWYzOTcyOWM0ZmQyIGxlZ2FjeS10cnVuaworMjk0NTEgMDQwYWY5YzczNmJiMTk4YmU4NTM2MzI3ZmJmMTI3NTNkZTVlYzdjMCBsZWdhY3ktdHJ1bmsKKzI5NDUyIGI2NDc4ZDQ2MzU1NTRiZTE1MjlhZTk1ZGE4OTEyNGVjZDViZDMxNmUgbGVnYWN5LXRydW5rCisyOTQ1MyAyZDgzN2UyMDgzZmFmMzUwOTQyZDZjNDZmNmQ4YjhlNjZhN2U4ZTQ1IGxlZ2FjeS10cnVuaworMjk0NTQgMWQwMmI0MDVlMzFmYjIxOWMwNzUyZDQwMjI5OGY1OWQyMDA1OTU2ZSBsZWdhY3ktdHJ1bmsKKzI5NDU1IDRmMWI3Mzk2YTNjNTQyNjg5NDQ3N2U3MzFlYmI4MDkzMzE2M2NiYTMgbGVnYWN5LXRydW5rCisyOTQ1NiBkODEyYjhhYWVmYjMxYjQ2NjJmYjZiNTZjZDk2OTljN2M3NDRiZGE3IGxlZ2FjeS10cnVuaworMjk0NTcgMDE0N2ViZWY5NDUzYzM2MWY0Mzg0MmE5ZTMzN2E1YmM0MWJiZTFjZiBsZWdhY3ktdHJ1bmsKKzI5NDU4IDA2ZTAwNTY2NmM0MjI5MWY4ZmRkMGI1NjUyZDVkNDYyNGEyYTgyNDAgbGVnYWN5LXRydW5rCisyOTQ1OSBlMWJmNDYwNGMwYTU4NGIxYmIxODA0ODIzOTA2NTU3N2U4MjZlMmE5IGxlZ2FjeS10cnVuaworMjk0NjAgZDMwOGRmODI0ZTJkMTViYzAxMmY5YzE3ZGIyNTczY2YxOTAxZGIyOCByZWxlYXNlMjItbWFpbnQKKzI5NDYxIDE1MjIxOTgwNzE0NDcyZDEyMzRhMDZiYTRiMTk4YzczYjE1YWMyNzQgbGVnYWN5LXRydW5rCisyOTQ2MiAxNDI1YmVhMmVhNjZhMTBjOGRiMzhiYmEwM2E1ZDg3NDAxZDc4NzQ2IHJlbGVhc2UyMi1tYWludAorMjk0NjMgOWNlZDNlNTE4N2VlMWQ2NjU4ZWQ0MGUzMWZkYjEwNzQ0ZTVmZDY3NCBsZWdhY3ktdHJ1bmsKKzI5NDY0IDZlMTFhZTA0YWYxMDk0OWE2MGU1ZGJjYWY3MDhiN2VhMzAyYjcwMjUgbGVnYWN5LXRydW5rCisyOTQ2NSA5MGY0ZWVlZmM1MTZmOWYzZDNlMDdjMTA1YzMxYWRmMzdmMTAwYjgyIGxlZ2FjeS10cnVuaworMjk0NjYgNjExYWY3OWMwZTg5MmI0ZWMzNDNiYTBkOWYyOWM5NTJiZDkxZmRlZSBsZWdhY3ktdHJ1bmsKKzI5NDY3IDI3M2NhZDdmN2RmNzIxOTY3ZGFiYjRjNDRlMWVkNzNhNzQyZTQxYzQgbGVnYWN5LXRydW5rCisyOTQ2OCAxOTc2MmE0OTM2ZmM4NGI0YzA5Y2UwNWY0NmUxOTFhMjYyMGUyZGZhIGxlZ2FjeS10cnVuaworMjk0NjkgMGZkZmNjZGZlYzA2ZjJlZWMyNDViM2FjYmM5MTczZTIzN2M2MmU5NiBsZWdhY3ktdHJ1bmsKKzI5NDcwIDkwYTA5Y2QxNTMwNTkzMWRmNWQwMTc2NDMyOGI2MDk3ZTgzYWI5YTkgbGVnYWN5LXRydW5rCisyOTQ3MSBiYjgxMzM0NmIyMjdlZTFjOTY0NjFmMmMzZTVhMzk4OTRmZTVlN2ExIGxlZ2FjeS10cnVuaworMjk0NzIgMWFhYTEyYzA4YjM1OTQ5Zjk0ZDUyOTY0YTZhZDY2OTdlMDg2ZWEyYSBsZWdhY3ktdHJ1bmsKKzI5NDczIGE3NTM2Y2ViMDZmNjNjYmZlZmMyMDkyYWVhY2NiNmQyNzhhNjM0ODAgbGVnYWN5LXRydW5rCisyOTQ3NCA1NDhlNmZmYmZmNzU3YWI4OTZhY2UwODkyNTA2OTc2MjhmMmFmY2I3IGxlZ2FjeS10cnVuaworMjk0NzUgM2YzYjdhNjA4NmI3M2IzYmViMGM4NzdiODM2ZTdiYjU5ZGE5YzJkOCBsZWdhY3ktdHJ1bmsKKzI5NDc2IDhhODhlOTc3YTcxYmJlNjNlYzBiN2M2NzJmYTcyZDNmMGY0MTJmMDUgcmVsZWFzZTIyLW1haW50CisyOTQ3NyA4M2QyMWVhOTQ1N2RiMmVjZmM2ZDE5MTQ2M2Q5ZjJiZGY5YWUyOWJlIGxlZ2FjeS10cnVuaworMjk0NzggYmRlMzY2MDU0MmNkM2UxOTBhYzk4ZjZiZDVlYWJkNzRiM2I5OGZlMSByZWxlYXNlMjItbWFpbnQKKzI5NDc5IDQxZWNhZWM1YjRmODFlZjgzZGI3ZWNjMzUyMDIwYTNkY2ViZWI2YmUgbGVnYWN5LXRydW5rCisyOTQ4MCA3MjA1N2VmOTAyYWFlZTA3MGQxMWZjZDMzZjM0NDFiZGY3NTY2MTJjIHJlbGVhc2UyMi1tYWludAorMjk0ODEgMjhjZmY2MGE2MDk3MDJkZTc5OTE3MTk2NDBlOTYwNTkxZDY3NmQwMSBsZWdhY3ktdHJ1bmsKKzI5NDgyIDQ5NDZkNGYzN2Q4NGUyYWE0ODg4ZGMwZTFhYWM1NWVmODg5OGE5ZjEgcmVsZWFzZTIyLW1haW50CisyOTQ4MyAzZDYyN2UzZDk1NjEzNjUyMWFhN2I3NDQzM2QzMzcxMzUyMzlhNTE0IGxlZ2FjeS10cnVuaworMjk0ODQgMzFiNTg0OWNhYzQyZmI1ODEzNDE1MmJmMmQxMDQxOTRkOTUyYzIyNCByZWxlYXNlMjItbWFpbnQKKzI5NDg1IGIyOGU5YmYwZjA0NmFlOWEzY2M5ZDEwOGEzNDMwOTZmNDE1Zjc2YjcgbGVnYWN5LXRydW5rCisyOTQ4NiAwMjllNzVmZmU3NTBkMzRjM2FkZTA1MjIxMmUyMzBjZGZkNjk2Y2ZjIGxlZ2FjeS10cnVuaworMjk0ODcgMzZlYTMxYmM5MDc2NTBlMTA0Zjg4NjdlZjM1MThkOTllMjkxMmY1MSBsZWdhY3ktdHJ1bmsKKzI5NDg4IDAzYjAyNzBlMTE2YjM3MmE1YzgxM2Q4ZjA0MWQ5ZTJmZmIzMDFkMWIgbGVnYWN5LXRydW5rCisyOTQ4OSBjNmNhMzliMTU4Y2RmOWIzNjAzZWY4MzE5NTg4YzZlMTAxZTc1MzI3IHJlbGVhc2UyMi1tYWludAorMjk0OTAgMzI2M2FkNGZjZjgxMWExNTdlYTk5MGVjZThiOTM4YzhkYTgyZTlmOCBsZWdhY3ktdHJ1bmsKKzI5NDkxIGQ0MjQ1NThkMjRmOTAzMmE5YWEwZDc1NTRiMzE0YTYyYTNkZmRjNTQgbGVnYWN5LXRydW5rCisyOTQ5MiA1YmU1Yzg0ZGVhMjNmZjcwMjQ4ZDY0MjlhMmEzODJlYjYyNTZjOGY1IGxlZ2FjeS10cnVuaworMjk0OTMgYmQ2NzdjOGU0MDY3MDI0OTQ2YWNkNmYwYjk2MDM5NDI2ZDZiNTdmYiBsZWdhY3ktdHJ1bmsKKzI5NDk0IDM2ZGU1YTczMTI1N2ViYWIxNGVjMTFmZGZjMjhlZjQ2NjRhZTkxYjEgbGVnYWN5LXRydW5rCisyOTQ5NSA5YmZkNDdhOWM4YjM1MDE5NGJmZDU5ODVjMjMyOGVjNDMyMTlhYzM3IGxlZ2FjeS10cnVuaworMjk0OTYgNmZhNWM5NTQwOGViZDg0NDE4ZjgwM2YxYTNmMGExNzA4N2I1YTU2MSBsZWdhY3ktdHJ1bmsKKzI5NDk3IDhlMzI0Njg0Mjc3MzRjOWFhMTZiNTQyMTA2NGJlYmIxNzlhNjgzY2YgbGVnYWN5LXRydW5rCisyOTQ5OCA3NTgzMDFlZTBiYjc2NWM4YWRlNzliZjY0MmExYmQ2ZTE2M2I3MWZiIGxlZ2FjeS10cnVuaworMjk0OTkgZjU0ZTg5MjcyYWRlZDI5NTNiMTlhMjY3MTYzMDljNGZiMmExODhhMSBsZWdhY3ktdHJ1bmsKKzI5NTAwIDliNDczODZiYTViODA1NGM3N2ZlNzc5OWU3ZWZlY2ZiZDg1NGY0MTYgbGVnYWN5LXRydW5rCisyOTUwMSAxMjQ0ZjRjMzgzNGY0OTAyMmZiZTgyYmI0YTE5NWM2ZDQ1YzZjYTI1IHJlbGVhc2UyMi1tYWludAorMjk1MDIgMThlMDk3MjA3MzhmNmZmNTMxZDc3NDY1NTRiOWYwNGFhZjAxNGNiOCBsZWdhY3ktdHJ1bmsKKzI5NTAzIDBiZGEyMGFmZTYyMzNmYjM3ZDI5OTE0M2Y0ZTQ2ZDY1ZjBhNDJhYWUgbGVnYWN5LXRydW5rCisyOTUwNCBkNjhmYzQ5YTcwOTYwMWJjMDA5YjMyYjk2YTVjZDRiODJiODg5MWMzIGxlZ2FjeS10cnVuaworMjk1MDUgNjRhOTZiOTdlMWU5N2NlYjdjZDVjNjNlYjczYmQwZmVmZDZmNjYxYiBsZWdhY3ktdHJ1bmsKKzI5NTA2IDJkZjk4ZmYyY2RkYTFhNjUyNzY0MTFjZTEzYjRkYmFkNGU2OTQxNDEgcmVsZWFzZTIyLW1haW50CisyOTUwNyBhMmYzNjkzNDYzOTMwN2ViZmUwNjhjOTQ3NjA3OWE2OTU1MDNjMDllIGxlZ2FjeS10cnVuaworMjk1MDggZjU0MzlmODEzM2Y4NTdiMzg5ZjY5YTRhZWE1YTExZGQzMTU4ZThiOCBsZWdhY3ktdHJ1bmsKKzI5NTA5IDIyNWVhMWY1MmRlOTVhOTE5NjA1NWViOThmZDFhNmE1ZTBmMDYzYzkgbGVnYWN5LXRydW5rCisyOTUxMCAxZGU3YWM3MjliZmE5MjNhMmUwMGQ2MjU4ODI2M2EzOGExM2JhODU2IHJlbGVhc2UyMi1tYWludAorMjk1MTEgMTgzZmMyMWZiODY2MjMyM2RjYjMyOTgwM2YzM2VlY2E2MmNlMDBlYSBsZWdhY3ktdHJ1bmsKKzI5NTEyIDZlZDJlMjNhYWU0NTY1MjM4MDZlMmZkNzEyZjQ2Nzk3ZWRmZDQ4NGIgbGVnYWN5LXRydW5rCisyOTUxMyA3NzFiNmY1MjFiOTU2MWQ4ZTQyZTkyNGQxYTE1NDMzZTRjNjkzOTIzIGxlZ2FjeS10cnVuaworMjk1MTQgNTIxZTg5YzRmZjQ0NzgyMDkxNzNhNDU4OTg4ZjMwMDYxYjEyYTYzYiBsZWdhY3ktdHJ1bmsKKzI5NTE1IDNhNzYwNmEyMjM3YmI2OTU3MjFjZDA2MzkxNWIzNWE1MDJkZDY5YTYgbGVnYWN5LXRydW5rCisyOTUxNiA1MjVjZGRiNzY4MmFjZWU3ZWQ4YjkzODY0YTU3OGQyMWU4NzIwMWFiIHJlbGVhc2UyMi1tYWludAorMjk1MTcgZTlhYTM5NGM3MTkxNzI3ZmJhYzVmNWU4NWQ4M2VkMjljOGY2Yzk3NiBsZWdhY3ktdHJ1bmsKKzI5NTE4IGNlMzY5Y2Q1NjI2YmU3MTQxYjNiODJhNmY4ZDJkOTZiMDg4YmNjYWMgbGVnYWN5LXRydW5rCisyOTUxOSA0YjgwNDRkMWYxYWMzMjgxOWE2YzBiNjAxMTljNzA2ZjU3ZDkxYjBmIGxlZ2FjeS10cnVuaworMjk1MjAgOWRhMDI2OTM3ZmE1MjgwOTUwYzU4NzliMGQ2OGY1ODA0M2M3OWE1NCBsZWdhY3ktdHJ1bmsKKzI5NTIxIDFjOTlhNWEwYjg3YmRlNjAyZGRhMGZiZWRjZmU0MzVhMTRlNDg1NGIgbGVnYWN5LXRydW5rCisyOTUyMiA2ZWUyZjliNGJmNWM0YjcyZmMxMDc3NDU1NjNiZTk4ZjFjOTJmMzYyIGxlZ2FjeS10cnVuaworMjk1MjMgMWRiYWJjNWJlZmY3ZjU1YTliYmM0MDJiNWJhODNlNzgzYTYwMzhiZiBsZWdhY3ktdHJ1bmsKKzI5NTI0IGE1NTk5NzQwYTZlODBmOTA4MjFhNmU4MTdkOTU5YmRhOGNlNmZjZTMgbGVnYWN5LXRydW5rCisyOTUyNSBiNGE2MjgzYjkxNWJjNjFkNWI2Njk5ZWMzZjQ5NWEyZThiZTkwN2U5IGxlZ2FjeS10cnVuaworMjk1MjYgNTgxOWM0NDM5YmEyNDY0ZTlhMzQ0ZTQ3ZDQ3OWYxZjYyNDEwMjM0ZiBsZWdhY3ktdHJ1bmsKKzI5NTI3IGM1NDcxNmFlZDI2YTA2ZGVhYTZhOWQ1MWUyNDg4YWUzOWYyMzFiNmQgbGVnYWN5LXRydW5rCisyOTUyOCAxYjRjNWU2NmE0YjRhZDE3Y2ExMDViYzQ4ZmM5ZWU2ZDA3MDQ5ZThiIGxlZ2FjeS10cnVuaworMjk1MjkgODEyMTM1OGUzMjE3MDNhNTc0ZTg5ZjA3ZDQ2MzU3MDFmYjYzOGFiMiBsZWdhY3ktdHJ1bmsKKzI5NTMwIDY5Njg2NGFhMDVkMzM0MzEwMjUwNzAyNTYwZmM5YWQ2MTYwNzAxNjEgbGVnYWN5LXRydW5rCisyOTUzMSA2YTQyNTM2ZmI5ZWViYjk5MDBlNGViYmFmMzlhOTE3NjU5MWFkODMxIGxlZ2FjeS10cnVuaworMjk1MzIgYmEyMTk0YWQzYjQyM2MzZWI4M2M4ZDQzODA4MGI0MjYwOTk5OTBkNSBsZWdhY3ktdHJ1bmsKKzI5NTMzIDFhMzBlZDE5ZjY0YWZmOTBjMGUxZTYxMDVhMmYzMTAzNTBlODlkMzIgbGVnYWN5LXRydW5rCisyOTUzNCAxM2IyZWM1MzZlMDcwNWU5ODEzYzNkY2E1NmM3NDM2YmI0ZGE0Mzg0IGxlZ2FjeS10cnVuaworMjk1MzUgOWRkOTM3OWFjNmQ2NzkzYjc3NjhiMWI5YTNjNWNkNGI4Mzg5YTBjYyByZWxlYXNlMjItbWFpbnQKKzI5NTM2IDNjMjNlNGMzZGEwMjA4NmY1YTZmY2I3MmUzNDc2YWYyODg3ZDY5YmQgbGVnYWN5LXRydW5rCisyOTUzNyA5NTFkYWNjMjE4NDdkNzA1MGYyMTg3OTQ4YWY4Y2VkNTFmMDAyNzE2IGxlZ2FjeS10cnVuaworMjk1MzggOWI1YjdkYTM2MmE1YzZmYTVkZWYzMjAxYmI1NTQ3MGM3N2Q2MmM0OCBsZWdhY3ktdHJ1bmsKKzI5NTM5IDBkYmQ2YjczYWJkMjMxZjEzODlmOTZlNjNkZGQ2Y2YxNDc5ZDU0ZTIgbGVnYWN5LXRydW5rCisyOTU0MCBmZTZlOTg5NGMyZDQyYTRiYWVjYmQwNmM4ZDk1YWI5MjliN2UwZjViIGxlZ2FjeS10cnVuaworMjk1NDEgOTUxNDA3OTMyMDAxOWQ2OWQwMTc3ZGQ4MTJlMzFhOGU4NzlhNDA3OCBsZWdhY3ktdHJ1bmsKKzI5NTQyIGQyN2U1Y2FkMzhkNzgyNGU0ZTg4MDlmMWVjMWRiZjExYTMzMjliY2UgbGVnYWN5LXRydW5rCisyOTU0MyBlZjU4OTNiYjc5ZWYzOWM5OWM3NTY0ODE3NDExZWRhNTkxOTYxOTUyIGxlZ2FjeS10cnVuaworMjk1NDQgODdiN2ZhZTEwYTE5MzA3NzdiOTNhMTcyZjFhNzBiMmRhMGU3MmVlZiBsZWdhY3ktdHJ1bmsKKzI5NTQ1IDg2OGZmMGRmYWJkMmNiYjA2NDk0MGEyMDliYzMwODBhZWFmNDVlOGEgbGVnYWN5LXRydW5rCisyOTU0NiBmMmVkNzIyZmYwMDM1MGMyNjA4MWE2YmNjOGU4NGQ5MWEzMWVkOWI3IGxlZ2FjeS10cnVuaworMjk1NDcgODhiYmMzMGIwODQ3OGQxMzI2NzMyYWY5NWM0NzFlN2JjZWVhMmEwMiByZWxlYXNlMjItbWFpbnQKKzI5NTQ4IGIwNjNjNDNmNGRmMDMyY2U4ODFkMTFjNTc4MTJkMDg2ZTZhMTYwZDggbGVnYWN5LXRydW5rCisyOTU0OSBkYWIyYzEyYjY4MmU3ODc1NTg3MWMzN2JhZTk0ZTk5YWIyY2Y1NzU3IHJlbGVhc2UyMi1tYWludAorMjk1NTAgN2ZhOTNiNWRkZmJkNDkyNTdlNDMyMjRhODA5Mzg4MTU1OTY4MGYwNSBsZWdhY3ktdHJ1bmsKKzI5NTUxIGQyYmU3OTZjNGI4MWQ3YjlhNzM3MmJhNjFhNGExY2JlYjA1ZDY5MGYgbGVnYWN5LXRydW5rCisyOTU1MiAxYWZjYTM3NWYyYTllMzZmMjg5OTE1YjA2MjM1MjI4YWQ1NDA5NmFmIGxlZ2FjeS10cnVuaworMjk1NTMgZjNkNDQ5MjZhMWJlZmRlZmQ3ZTBmYTg4NGI0ZGYxN2FjZDIwNTFhNCBsZWdhY3ktdHJ1bmsKKzI5NTU0IDk4MzIyYzA3NWY0ZDk1Mzg4NjI1YzdiMGJjZTFkNTE3N2Q2NDM3ZTAgbGVnYWN5LXRydW5rCisyOTU1NSA1M2EzODIzNDQ4ZDkzYWYyM2Y3ZTljNDI5NGFhMmQ4NWUxZGY4NjM5IGxlZ2FjeS10cnVuaworMjk1NTYgY2FiMTY3NjEzZTQzYjczN2JmOTU0YzgyZDQzZGNmNWEyOTk4YzU3ZiBsZWdhY3ktdHJ1bmsKKzI5NTU3IDEzYWY4MGYwMjA4MDA4ZjEyYTAwMGZhOWE0NjkzZjU3MGJjYWNmY2QgbGVnYWN5LXRydW5rCisyOTU1OCA5OTlhY2NmYTkxYzU2ZGE3YWE4ZWIyMzI2Mzg0YzY4MzMyN2YyZWNlIGxlZ2FjeS10cnVuaworMjk1NTkgZjNhNjQwMzViYThiZjE5NjMyOTUzNGUyNzgwYmRmYzk5YjE3ZDNhYSBsZWdhY3ktdHJ1bmsKKzI5NTYwIDJjMWJiZmMxMjJjMWE2NmZlZDI2NjQwZDJlY2UxMjA3ZDIxM2E4YjIgbGVnYWN5LXRydW5rCisyOTU2MSA0YTI4OGI0OTRjYjJjOWE4MGFkM2UzZDQxOTI3MzRhMGNmMWU1OWRhIGxlZ2FjeS10cnVuaworMjk1NjIgZDY5ZThhOWZlZDExZmNmMzU5ODI0NTA5ZGMxYzJmZjlmM2UxYTg2ZSBsZWdhY3ktdHJ1bmsKKzI5NTYzIDM0ZTcwYjg5YmJiNzIzMjQzYTY5MjBkMGUyZWJmMzkxYjc2YWM0MTAgbGVnYWN5LXRydW5rCisyOTU2NCBiNTY0ZWM0YjdlNWIzMzE5ZTQyYzM3MjY5MGY2NzMwNDU5Yzk4ZDk5IHJlbGVhc2UyMi1tYWludAorMjk1NjUgZjM1MzczMTdiMWIyNWE2ZjFlMDQ0YmY1NTA4MjZjMzE0Nzg5MzFiZCByZWxlYXNlMjItbWFpbnQKKzI5NTY2IDM1MTU4ZmQ2MGIzYmEyMmI3MmQ4YWYzOWM5MTc3OTRjZGY4NzViOGMgcmVsZWFzZTIyLW1haW50CisyOTU2NyA2MmY4OGMwMmM5ODcyOGYzMDZlYjZiZDFlMjdhYzdiODA1OWJlMzVlIGxlZ2FjeS10cnVuaworMjk1NjggZDk0NzRjMDQ0NWJhYmY1NTZhZTQxNzI4YjI1NjVkMDQyZDkyOTcxYyBsZWdhY3ktdHJ1bmsKKzI5NTY5IDUyNjUyZmI4NjQ5ZDczMWFkOWQ3MDlhYTNhZjg2NzY2Mjg2N2ViMDAgbGVnYWN5LXRydW5rCisyOTU3MCBmZjFjNjA0NmYxMGI5NDdmNjFhNmY4YTg3MDY0NjcwMGQzZTNlNzAzIGxlZ2FjeS10cnVuaworMjk1NzEgZjYyZjc3M2JjOWZkZDJhMmQ5YTBmNmEzM2FjOGIwNGEyYjM0MWEyNCBsZWdhY3ktdHJ1bmsKKzI5NTcyIGY0Njc0MjdlMDNmYTlkNWNiYzFkMzIzMmJjYTc4NzVmNTM0NWExNWMgbGVnYWN5LXRydW5rCisyOTU3MyBjYmJmN2YyNDI1ZDllMTA4YTI2NDkzMWE5YWYwNGUyMzVkZmYxZDVhIGxlZ2FjeS10cnVuaworMjk1NzQgZTUyNjM2NWRkY2NkZmQwZWRkMDA5OTliMGM5NGU1NmNkMDRlMDdlYyBsZWdhY3ktdHJ1bmsKKzI5NTc1IDkzM2M2ZDYwOGQwMWIzY2Q0MzA5N2EzMjI2MWZjOTE5YjNjZWQxYjggbGVnYWN5LXRydW5rCisyOTU3NiAxMzVmMDhiNzNiZDVkOGIxZTcxMGExY2Y5NWIwYmYzOTU2NmYxY2ExIGxlZ2FjeS10cnVuaworMjk1NzcgNzU2MzE5YTEzN2I4MzI2ZGYwYTBjODJlNWRmNTUxMjU1NmI2YWY2NyBsZWdhY3ktdHJ1bmsKKzI5NTc4IDA4MjBhZDQ5ODI5ZDgwYjk4NzU4MzRiYzMyN2JiYWQzOGJhMjZmMWUgbGVnYWN5LXRydW5rCisyOTU3OSAxZjM2NWI5OGYxMWNjNTQ1YWIxYzZlOTcxYmVhZjQ3NjRkNWVjNzE5IGxlZ2FjeS10cnVuaworMjk1ODAgMDgxMTkwNDg0YWY2MTYxNmFhMWM3ZWM5NTQwNmFhYjIwNzVjZmQ4YiBsZWdhY3ktdHJ1bmsKKzI5NTgxIDAwODQ4MzQyZDQ5ODRhZTQ3NWMzZDA5OGM4MzdiYTllYjQ2ZWZhYTAgcmVsZWFzZTIyLW1haW50CisyOTU4MiA1M2U5MDQxZWZiZTNmZDZhNDkxOThmNjZjYjBmNDdmNGQ4MzIwM2Y1IGxlZ2FjeS10cnVuaworMjk1ODMgNTQwODgxZWUyZDRhY2M0YzU4ODY3MzkwYTk2N2E3N2I1YTUyOWMyOCByZWxlYXNlMjItbWFpbnQKKzI5NTg0IGVmM2Y2OTI5ZmMwZTE5NTk1NGJkNWE3ZDU2NDFjY2Y4MmI4YjQ3ZGQgbGVnYWN5LXRydW5rCisyOTU4NSAyODMyNjI4ZWU4Y2M4NDA4YTM2NmFhZDliODRkYTFkYjcwMmU0MGY0IHJlbGVhc2UyMi1tYWludAorMjk1ODYgZTYxYjk0NjQ3NGRmYzY5MjgyY2Q5MTdlYjZhMGZjM2MyODk4NjI5MiBsZWdhY3ktdHJ1bmsKKzI5NTg3IDk2NGQ2Yjc5YzIyZTJlOWMzZGZhYTUzODMxMWI3MGQ3ZmNiNGJhYjYgbGVnYWN5LXRydW5rCisyOTU4OCAyNjczNzMyYWQ1ZjE5MWI2NjlhZDk0NjM0ODc2ZGEzZGUwNjU1ODg0IGxlZ2FjeS10cnVuaworMjk1ODkgYWRhYTQ1MGU3ZDcwZGMwMjFhMjE3NGFlOWQ0MjY4YWNlZTk0NzRlNyBsZWdhY3ktdHJ1bmsKKzI5NTkwIDlmZmVhNTBlODMzMDE3NzlhOGQwYjA0ZWIyM2E5NDBiNjNjMjVhZjQgbGVnYWN5LXRydW5rCisyOTU5MSAyZjJhMmZkODQ0YmQ3NGJhOGY2NDBiNDQ5YjY3MWVhZmRjYzRiZjI1IGxlZ2FjeS10cnVuaworMjk1OTIgOTA0ODIwNzk5MmYwMGJiNTNjYTJkZTE1NTdkYmFkNDBiNzFiNTg4OSBsZWdhY3ktdHJ1bmsKKzI5NTkzIDg5NjVhMmI4MDRiNTA0OTViY2Y3MTM3OWQyY2ZhMWNkMTFjYTc3ZWEgbGVnYWN5LXRydW5rCisyOTU5NCBlOWFlYmQ0Y2Y1NmNmNGY4MjY4YjJhZjBmM2RlNTJkMWVmNGM2MDJhIGxlZ2FjeS10cnVuaworMjk1OTUgOWM0YmJiM2JiZDBkZTcyMzZlZTU1MjQzODdhZTliOTMxYWM1M2JmNSBsZWdhY3ktdHJ1bmsKKzI5NTk2IDAwNDIxNmQ3YTFkYWJjMDA5ZjJmMDlmMThkNGU5ZWZiYzg3NDBkOGQgbGVnYWN5LXRydW5rCisyOTU5NyAxZWJiNWRjN2Y2OTZlZjc1Mjc3NjYwNzc4OTU1ZTQ5ZGRkZGNjYmM3IGxlZ2FjeS10cnVuaworMjk1OTggNjQxNjc3NjA5OThjNDMxNDM5YmRlYjg2MWJlMTI5MmE4NzUxZDkwZiBsZWdhY3ktdHJ1bmsKKzI5NTk5IDNhZDRmYWU5ZWQzYWQwYzZjODQ0NTUwNmNlN2UxZGM0ODZmZGExMjUgbGVnYWN5LXRydW5rCisyOTYwMCBjZmIzMTdlNGE3NzAxZDJiZmQ0ZDJlNDc0Yjc1MTlmZWZjZWQ2NzA4IGxlZ2FjeS10cnVuaworMjk2MDEgYTZkMTZlODRmZWMwNTRlOTQyMWQxZDVkMDZjZDdlYjYxNzg1ZjIyNyBsZWdhY3ktdHJ1bmsKKzI5NjAyIDA5OWQzNmNiYmI2MTFhYjVmYjMyNGJiMmY0MjU2M2EwNDEzMDRjOGEgbGVnYWN5LXRydW5rCisyOTYwMyA5OGYzZmQxZWQ0MmYwNTc2NjU1MjJkOTQxZjBlNjg3NzE0YTgzMzZmIGxlZ2FjeS10cnVuaworMjk2MDQgZTIyMjZkNDdlYmYwMTI5N2M5OGExYTkwN2I0YWM1OTEwYmQ0NGRiNiBsZWdhY3ktdHJ1bmsKKzI5NjA1IDIzZWY3YzE2M2ExMjUwMjlmNTEwOWM5ODU1NzE1YjM5OGM3ZTU1ZWEgbGVnYWN5LXRydW5rCisyOTYwNiA0MjAzMDQ3ZTIwMjIzN2U0YzkxYThkZTQyNWIwNTAwY2E3NWY5ZmRhIGxlZ2FjeS10cnVuaworMjk2MDcgYTU2YzkwY2ZjMDBjMGRiYTc1MDcxMDkxNzhlODM5YmE3MWEyZTA0YiBsZWdhY3ktdHJ1bmsKKzI5NjA4IDQyY2YxYjVlNjM5MjZmNmRkYTM2OWVkOTg2YWUxNGQxNDMxODMwYjkgbGVnYWN5LXRydW5rCisyOTYwOSBlOThhMjEzMTAxYjM4YTliOGQ1M2I4YzFjMjEyYTUyODAxNDcxM2NhIGxlZ2FjeS10cnVuaworMjk2MTAgNGI5MDVlMTk4M2I2MTBiMjVhMzUzNWI5NTkyMDcyYTY5ODdlYjdhNCBsZWdhY3ktdHJ1bmsKKzI5NjExIDA3NjUxMmEwYzZjMjJjOTJiNzI4MzIxNGNkODliNDAwYjJmYTZiNjkgbGVnYWN5LXRydW5rCisyOTYxMiBmNDI3OGFmOGVlZmEwMmJhZmE3OTY4NmZkOWVjNGJiMjM4Y2I0OWI0IGxlZ2FjeS10cnVuaworMjk2MTMgNmU0MWNmZDI1YmRmMGZlMjg2YTFkNmQ3MzNkYzU3MGY5OWRhOWFkZiByZWxlYXNlMjItbWFpbnQKKzI5NjE0IGEyYWU2MzVlNDNiNjE4NzExMjU4NTcyMWQ5NzY5Y2QxMzU2ZmZlMGIgbGVnYWN5LXRydW5rCisyOTYxNSA0YWI2YjdjM2YzMTE3ZDI3NjMwMjYyN2U2YjllYjBkMDA0N2UzMmRkIGxlZ2FjeS10cnVuaworMjk2MTYgMTQ0ZDlkNDhiOTZjZmVhODM3YTAwYzllM2U0ZTFjMmMzNjgxZTM5MyBsZWdhY3ktdHJ1bmsKKzI5NjE3IDAwYjRjZmY5MzYxOGU4MDAyZDliMzdhYmU5YmRmOTE5YmI1YTg2Y2MgbGVnYWN5LXRydW5rCisyOTYxOCA2Y2U5MjI4YTNkYTIwMGEyY2QxMTM1YmUxOTM3YzExNzllMDdiZjRlIGxlZ2FjeS10cnVuaworMjk2MTkgYzJlYzc4OWRlZTU2NzZiZWQwMmM2YTZmZTcyNTk5MGJkYWE0OTlmZSBsZWdhY3ktdHJ1bmsKKzI5NjIwIGJkZGU5NGUwMjkxODBiNTRlMzUzMDAxYzkwN2Y0NjcwNmY5YTUxYTAgbGVnYWN5LXRydW5rCisyOTYyMSBhNDhhY2I1YjQwZWZjNDU1Njg1ZDU3YjE0ZmI5ZTVjNGFiOTg3ZjdiIGxlZ2FjeS10cnVuaworMjk2MjIgOTEzOTI3ZDMyNjFlZGIyMTNkZDYyNjc1ODVjMzU1ODlkOWMxZDNjYyBsZWdhY3ktdHJ1bmsKKzI5NjIzIDliYjRhZGZiZmNjODMxMzk3NDg1MjhkYWUxMzZkNzkwMTM3ZTUxNjkgbGVnYWN5LXRydW5rCisyOTYyNCA2NWQ2ZjBiZmE0NjE1MDQwZDRhYjhiMTFjYWMxMmMzNDBjOTlmN2IxIGxlZ2FjeS10cnVuaworMjk2MjUgMGI2MTFlNTBjNWZjM2M0ZGNkZTdlMDc0MGJkZWFjYjhlNmRmNzlhZCBsZWdhY3ktdHJ1bmsKKzI5NjI2IDU4MDgzZDhlYTlhNWFkM2U2MDFiM2EwMGMzNmNiODM1ZjM0ZWYzNDcgbGVnYWN5LXRydW5rCisyOTYyNyAzZTFlOTYxNmY4Yzg2NWEwMjQyOGM1YmMyMDNmZjYwMTIzM2ViMTRjIGxlZ2FjeS10cnVuaworMjk2MjggOTc0OTczMmEwZjZiOWZmZTgwZjlmZDIzMDNmMjczNWNjNmZhOWQ5NCBsZWdhY3ktdHJ1bmsKKzI5NjI5IGVjMzQxNGM1ODg3MjYyOTg0NjE1OTM1NDkzOGQxMWQ0ODg1Y2IzYzQgbGVnYWN5LXRydW5rCisyOTYzMCA2MDc4YWJjNjkwMzZmYzc2ZmJlMGU5YzQ4MzVjNGQ5YjU2Njk0NjdjIGxlZ2FjeS10cnVuaworMjk2MzEgYmI3MTg3ODJlNzM2OWM1YzI1YjdmZmQ1ZTI0MjgwNmM3OTM3ZmM5MyBsZWdhY3ktdHJ1bmsKKzI5NjMyIDhjZWI0NTVmNTU0MTEyY2M3ZjVlMDI1ODk5OGNkYTA4MjI1MTE4YTUgbGVnYWN5LXRydW5rCisyOTYzMyBmNDkyOTI2MjFiMTczYWFmN2Q5OGFhYzEwYWIwMDdjMGJmOGJiZDQ3IGxlZ2FjeS10cnVuaworMjk2MzQgMjRhNTUyMmQwNzg0YjM1OWQyMDlkNDg5YmU3MWE2YjAzMjA5OTk0ZiBsZWdhY3ktdHJ1bmsKKzI5NjM1IGYwZWUzN2U4OTMyZmFjOGQwNTNlNzA2MzE5YWQ1ZjE5NzE2NmU5OGUgcmVsZWFzZTIyLW1haW50CisyOTYzNiAyN2Y2NDMxNGYwZGU3ZWZhYjZiNmU5Yjc1ZGJmOTA4OGJmODE1ZTRlIGxlZ2FjeS10cnVuaworMjk2MzcgZTYyNzc0YjQ0N2MxMDdhODg4YzQ0ZGYzNjMwMzAyZDU0YTc4ZWU1NiByZWxlYXNlMjItbWFpbnQKKzI5NjM4IGRkMTBkOTdkMzI5YTYwZTcwZTEyYTQyNjdmOTE2YmU1ZjY4MDRiNTYgbGVnYWN5LXRydW5rCisyOTYzOSAzYzA4M2Y4ODE2NTVkMzRmNmNjMzAwODVjNjc4MTc0MWYzMTA4MzRlIGxlZ2FjeS10cnVuaworMjk2NDAgYWY1YjQxNzZmNGVmNjg2ZGExZWVjZDg0ZmM3YzcyMDBhYjU5NmUzMiByZWxlYXNlMjItbWFpbnQKKzI5NjQxIDYzYTA4NjM5ZGFlMmEzZWMwZTIzZjcwMzcxNDM4ZTU0OWY5OTFkYTEgbGVnYWN5LXRydW5rCisyOTY0MiAyOWY3ZDFkNWU2ZDYyNDlmZmVhNjI0Zjg2MTQwOWM4NmFjZDQzOGUwIGxlZ2FjeS10cnVuaworMjk2NDMgZTNkMjY5MWZiNmI4YzJmYTBjYzdkYzQ1NTU1MjhiYmE5MTM4MjI1NiByZWxlYXNlMjItbWFpbnQKKzI5NjQ0IDIzZGY0NjU2ZThhMmFhNDc3YzA3YWRmNGIzYzU5Nzc3ZGU1MmQ4YmEgbGVnYWN5LXRydW5rCisyOTY0NSAxYWI2NTdlMDA3NjI3NTg0YzlmOGE3ZGQ1OGJkOGJiMTljN2JiNGNiIHJlbGVhc2UyMi1tYWludAorMjk2NDYgOTVjOWM1NjZiZGQ2ZDhjZWNjZWFhNzk1MGNiYmMzNjMxYmE5MzZkNyBsZWdhY3ktdHJ1bmsKKzI5NjQ3IDRiNmQ4ZjUxNjY5ODE3ZjEzNzA4ZTZjYTMzYTJhYzVmZmQwODQ5OTkgbGVnYWN5LXRydW5rCisyOTY0OCAyNTFlNTUyYzgzNTIxMGU2N2JhMDNkYThiYzc2ZjZiMTRkZjVlMjQ2IGxlZ2FjeS10cnVuaworMjk2NDkgNWI2MmI5ZWE0NjBiMjM5ZTMyZmI2MmMzNmIzYjgwYzNhZTdkOTg1YSBsZWdhY3ktdHJ1bmsKKzI5NjUwIGU3MTc3MGE3ZjU0OWZhOGQzZmJjNjQyM2E0ZGE3ZmE0MTc5ZmMzZjMgbGVnYWN5LXRydW5rCisyOTY1MSAwNGQzZjk1Y2ZkODlmMGMwYjQ4MGZkYjA4NTM2MDMwZmQzM2Q3OGM0IGxlZ2FjeS10cnVuaworMjk2NTIgMDgyOTMwZGZiZWJkZGJlOTZmZDI3YWYxMjI0NjczNjlmNmYxMTZkOCBsZWdhY3ktdHJ1bmsKKzI5NjUzIDFjMDU1MTcxYjg3MTFmYmI5OTg2NGMzZDljN2NmNGQ4ZDdlYWQ1NGEgbGVnYWN5LXRydW5rCisyOTY1NCBmOTZmYTNhNmRkYTQxOGMyNDRjMWVkOGZkNWNhOGFiYTU3NjA3MTdiIHJlbGVhc2UyMi1tYWludAorMjk2NTUgODNhZTRhOTAyZGYwOGY3Mzk5MzIyMjZiYjZmODc4ZDllYTIyYTlkNCBsZWdhY3ktdHJ1bmsKKzI5NjU2IGRiZTI1Njg3YmU2ZTVjMzY5MTczZDc5NDA4NjRmYmRmODdjMzRmMWEgbGVnYWN5LXRydW5rCisyOTY1NyAwYjIzY2RhMDA0MTcwZDlhNjJjMjBhNDkwYjg1MzBkNGQwMTdmNjFkIHJlbGVhc2UyMi1tYWludAorMjk2NTggNDZkMGI0NmE3NTRmZTFiNTdhZmI5YmFkOWI5N2UxNDlkNjAzNmMzMiByZWxlYXNlMjItbWFpbnQKKzI5NjU5IDFhZjQxMGUzM2JlY2Y1ODFkNzRiN2Y0Mjk5YTQ1NDFiOTFkMDY5ZmMgbGVnYWN5LXRydW5rCisyOTY2MCBmNzJiMWY4Njg0YTJiOTgyNmQ0NDA4Y2QzMDI3YTY2NTIyMDhhNzhhIGxlZ2FjeS10cnVuaworMjk2NjEgM2U1OWQ2NzRiOGMzNjQzM2VjZTBjNWEwOWZjODZkNzZiY2JmOGM0NCBsZWdhY3ktdHJ1bmsKKzI5NjYyIDRjMjUzMmMxY2IyZGUyNGQzZDUwMTMzM2Q0ZTRlMGE5ZDhmZDY3YjMgbGVnYWN5LXRydW5rCisyOTY2MyBhZjM5NjQ2NzllMmZiZDliZjk2OTZhZmNhMGQ0MWI4MzZmYTZiMTIyIGxlZ2FjeS10cnVuaworMjk2NjQgYWUxNjlmNWI5NGUwNDgxMzY0ODk0ODU4ODliMzM4NzNkN2E5MzFjNCBsZWdhY3ktdHJ1bmsKKzI5NjY1IDBlMGIzZGNmNzg3ODk4OTQzMWQ5ODg3NTY2NzIwM2NmZWExOGU2ZTAgbGVnYWN5LXRydW5rCisyOTY2NiAzOGQxZjgzZDU3NzEwOGE2ZTMwOWUwNjAwYjgwMTk4YTcxODc3MTQ0IHJlbGVhc2UyMi1tYWludAorMjk2NjcgZDZkYzQ2YjlhZjNjMGUyNjhlYTQ3MGUyN2M3MjYwY2RjODUwMTU1MCBsZWdhY3ktdHJ1bmsKKzI5NjY4IDM5MGJmNWQyZDhlN2RmNjYwMDE5MTlkYTJjYmYwNTBjZTExMzhjZGYgbGVnYWN5LXRydW5rCisyOTY2OSA5YzdhYTQzYjIxYTlhOWIwZWZlY2UwYzgzY2ZmMzc2OTMxYTVlOTAyIHJlbGVhc2UyMi1tYWludAorMjk2NzAgZDU2MzNlOTNmNzA3ZjM0MmI1NDIwMDNkYzllZGYzMTBjOWM0ZmQ1ZSBsZWdhY3ktdHJ1bmsKKzI5NjcxIDkzNzM1Nzg4MjJiNTkwZTA3YTAxMGQ2NWNlNzY0Y2MyZTNlNGRjNTkgcmVsZWFzZTIyLW1haW50CisyOTY3MiBhNDJmNjNhODBjYzg3MzZhN2E2NTBmYzRhMTZlMWNhY2Y0NWY5NTY3IGxlZ2FjeS10cnVuaworMjk2NzMgNzg1YWQwNzQwMjdiZjBlMzNmY2JhNTQ1OTZhMDk2MTBjYTUzMzU5MyBsZWdhY3ktdHJ1bmsKKzI5Njc0IGNiNzFlN2M2MjBlMmY1MGE5N2FlZjI0YzAzZWQ3MmUwM2RmNzU0NDkgbGVnYWN5LXRydW5rCisyOTY3NSAxZGY5OGY2OGQ2MDc1MzBlYWFjODk4YWE1NDdhZTE2NzZlMDg5YmE4IGxlZ2FjeS10cnVuaworMjk2NzYgZDM3ZjEzNzhkOGI4YmY5YWQzNjlhYmQwNjMyYmJiMmUyNDc3Mjg5YyBsZWdhY3ktdHJ1bmsKKzI5Njc3IGUwMjMzYzQ0MjUwMjZlYThiMDljY2EzZDg4OWJlMzQ5ZDNlMTc3YzggbGVnYWN5LXRydW5rCisyOTY3OCA3ZTU4YTE1MDQ4NzI2ZjJiYjA0ZWU5YzlhN2Y1Yjk1NjMwZjFmOTYyIGxlZ2FjeS10cnVuaworMjk2NzkgMWNkODEwNmJjZDIwNzFjOWRmNTZhMTE5NGE1MjRiZDliYzhlYzU0MiBsZWdhY3ktdHJ1bmsKKzI5NjgwIGJhZjg3ZDI2YmEwM2Q1MzdiZWI5M2Y2MDg1ZDlhNWQwM2M1MjQ0MmYgbGVnYWN5LXRydW5rCisyOTY4MSAzZjU3NzNhODg4OGVmZDY2NWJhNzYzNmFhNmZjYzQxOGJmNjFkMzBlIGxlZ2FjeS10cnVuaworMjk2ODIgZDMzMDA1ZjgzODhlNzRlMTk1N2RiYWZlYjM3Y2JlZWJmMTBhNDkxOSBsZWdhY3ktdHJ1bmsKKzI5NjgzIGZmOTJjYzI3ZmQxZmYzMGQ1NDE1YjhkMGUxMTkwYmE3MTZlMTM0YWQgbGVnYWN5LXRydW5rCisyOTY4NCBmZmVjNjc0MDkxNDA1OWJkZWE5MTIyYzMzYmRjNzExMGYxOWZkYjc4IGxlZ2FjeS10cnVuaworMjk2ODUgNThmYmE1OTU3MjZlYWRhZmVmNjFkY2QwMjNhNzVlNmVhZGZmNzQxYiBsZWdhY3ktdHJ1bmsKKzI5Njg2IDM4MzU4NzAyN2M3NGQxYzFiODM3M2RmMDc4ODEyMDUyZDdjOTRkYTggcmVsZWFzZTIyLW1haW50CisyOTY4NyBmNDY1ZDY2OTJiZGUzMzUwMzMxNGMwNTM0ZmQwOTFjNDg3OTU4ZmJiIGxlZ2FjeS10cnVuaworMjk2ODggN2Y4NzA0NjdjMTgyYTc1ZTBkNDQ4NTRmNGE3OGQ1MmFhZGI3ZjI2MCBsZWdhY3ktdHJ1bmsKKzI5Njg5IGI4MzAzNDEzYTU3ZTVhMTVkYzE3YzQ5Yzc0NjhlNjQ2YWU2YTUyMDggbGVnYWN5LXRydW5rCisyOTY5MCBhNWQxZTA4MTQwNjFjNTJhYjJiYzM3ZjYxZDQxZTUxZWUwNjI4MDk2IGxlZ2FjeS10cnVuaworMjk2OTEgZTg5MDU2NzE4MjM1ZGNhODdhMTI2ZTUyMmRiNTM3ZTk2ZmQ3ZjVkMCByZWxlYXNlMjItbWFpbnQKKzI5NjkyIDdjZmI1MmY5ODEzOTZmZWVlODllNzFiM2YyMDc2YjY5OWY4N2Q1OGIgbGVnYWN5LXRydW5rCisyOTY5MyAxMjdlNGJmYWNiYjc1MDQ5YzMxNGU1YjEwN2Q5MjgyY2E3NjMwNTQ4IGxlZ2FjeS10cnVuaworMjk2OTQgNzZmMzJmYmUwM2NjNTRlNTU0ZjIwNDlmYWEwMWVlYjQzMDExMmY0NCBsZWdhY3ktdHJ1bmsKKzI5Njk1IDU3ZmNhY2JkYzg4NWE1NTdjMjIzM2UyMWJhMjRlNWRjM2UxZGYwNTMgbGVnYWN5LXRydW5rCisyOTY5NiAyMGZhNjMyOWI1OGZmODA0MDYyYWE4OWY5NTMyZjliN2I0YzU4ZTEwIGxlZ2FjeS10cnVuaworMjk2OTcgZWIwYzBjODNiOTJhMDlmZjZhZGM0ODQ2ZWQ2ZDM1ZGM5ZTkyMDEyYyBsZWdhY3ktdHJ1bmsKKzI5Njk4IGZmYmVhZDM0ODRlMTAzM2IyYzMwYzM4NjBjZGFhZDZiYjQ0MmZmZGYgbGVnYWN5LXRydW5rCisyOTY5OSBjOTUxOTA1MzJjMGNiNmQ5ZTFlMDQ0ODcwNjMyMTE4YWM0NjFmYTEzIGxlZ2FjeS10cnVuaworMjk3MDAgNTJmNjEzM2UyMGQyMGViNjAzYmJlYjM4Njg0MjNmOTFkMmIxY2MwYSBsZWdhY3ktdHJ1bmsKKzI5NzAxIGFkYjkzZjRlOTc4MDUxZTQ2ZmFhMDBhN2Q4ZGRlMmE5ODI2NDgwMzQgbGVnYWN5LXRydW5rCisyOTcwMiAxOTAzODlmZDgxNTljN2M0NmRkZjk5OGFlMjk3NDFiMmIzYTNkYWE3IHJlbGVhc2UyMi1tYWludAorMjk3MDMgZWNkZmY0NjIwMmMwZmYzNWNiZWYwNTlmYjE0NjhkZWUxNmExNjM0YyBsZWdhY3ktdHJ1bmsKKzI5NzA0IDUyOTcxOWE1MzUwZTc1ZWUzMWYxZDQzOTQzNTRkZDUyOGZhYjhmODEgbGVnYWN5LXRydW5rCisyOTcwNSBjYjI0ODcwNGI3ODRlM2M3Mjc0NTkxOTlkNjdkNjE5YzU0YzJhMmI4IGxlZ2FjeS10cnVuaworMjk3MDYgNzk0MjBmYTIyMmI4NTA1OTVhYzU3ZDQ4OGQzYzJhNjI3OGI5OWYzNiBsZWdhY3ktdHJ1bmsKKzI5NzA3IGUyNmZmNzVkY2Y2OTExYzAxYjIzMWQyYmVhMTY1ZTNkYTM3ZDBhOWYgbGVnYWN5LXRydW5rCisyOTcwOCBjNDJiNjM3Yjk1MTQ2ZDczODZkNDg1YTAxYjE5MzQ0ZjE5OTdmOWNlIGxlZ2FjeS10cnVuaworMjk3MDkgYzg1NDgwNjkyY2FlOWNkOTAwYTUwYTYxZGZjYjRlOWVkMDllYjJlNyBsZWdhY3ktdHJ1bmsKKzI5NzEwIDg3ZTY5YmFkYTE5NWVlZjVmNmNhNWVmOGJjNzZkNWIyNWEyNDcyZjIgbGVnYWN5LXRydW5rCisyOTcxMSA5M2YzMGMzODg5YWE0YjdhODJiMzQxMWYxN2YyYzNhMzUwMWIwNmZiIGxlZ2FjeS10cnVuaworMjk3MTIgM2VlOTUxOWVhYTRjNDc2NzhmNjBlNTkwZTU1MzdlMTZlZGIxYTVkNSBsZWdhY3ktdHJ1bmsKKzI5NzEzIGU5Zjg5ZGJhNTA5M2IwYTM4M2Q5YjcyMWQwMThiMTgwZWViYjQ5YWIgbGVnYWN5LXRydW5rCisyOTcxNCA0NDliMmI1Y2FmNTgyZmRkYzg5MTFlZTdkMzJkNjBjYzdkMjc4NTBmIGxlZ2FjeS10cnVuaworMjk3MTUgZWRkMmViODhmZDZjYTBlY2I0ZDY0N2JjOTc5ZGJjNDk3ZmQ5OTRmNCBsZWdhY3ktdHJ1bmsKKzI5NzE2IGEwZWZhNGM5NTY5ZTMxOTZkZGJiZTRlMGQ1MjZkZjM1M2IxYTI1OWIgcmVsZWFzZTIyLW1haW50CisyOTcxNyBlNDI5OTdhY2M3ZjFlNzU0Njg2NmY3ZTdkY2RkZGJlNmE0ZGY2ZWE3IGxlZ2FjeS10cnVuaworMjk3MTggYTRlMzAyMWVhYTdkNDBiOWVkYjYxNDMxNTc4ODBhZjBlNzkzNjk1NSBsZWdhY3ktdHJ1bmsKKzI5NzE5IGIxMzg4ZjU4YmRiNWQxMGUxNjAzMzJiMGM1OWQxZDhiYmEwNjZhYjYgbGVnYWN5LXRydW5rCisyOTcyMCA0YzA2YmRkN2QwNWMyZjMyYjdmNDEyZmUzOTE0Mzk5ZDQ2YmU4ZGZkIGxlZ2FjeS10cnVuaworMjk3MjEgOGVkNjZlZGZmMzg3YzZkNDgyNDQ3NDcxYjhmNGI1OWMxMGI0ZTFjOSBsZWdhY3ktdHJ1bmsKKzI5NzIyIGZmNzYzOWRkY2FmMjFjYjZjNmZmYzM0MTY2NWEyZDU5YWUwMDM2ZDcgbGVnYWN5LXRydW5rCisyOTcyMyA2MWEwZWY1NDJiNmY1ZTFiNTg1YjBhNDk4ODcwZWE3YjA5NjFiMDY4IGxlZ2FjeS10cnVuaworMjk3MjQgZDYyYzFiYTMzOTY0MDY4NjRkYTVkMDYyZGUzMzVlN2QwYTE2YmZjYSBsZWdhY3ktdHJ1bmsKKzI5NzI1IDNiZTFiZGM3NzllMDZmMDQ5NjBhZDkxZGIyZTFmMjhjNGZjNmRjZGYgbGVnYWN5LXRydW5rCisyOTcyNiAwZTg5OTBlODkyYjZkNmEyYzhjYzM0Y2QxNTVmYmU3YjQzNjAxYzM5IGxlZ2FjeS10cnVuaworMjk3MjcgMDJkNDhlZDQ0N2E4M2IzNGNhZTg4YjM3ZjcyMThjMzNhMjhjNWEwOCBsZWdhY3ktdHJ1bmsKKzI5NzI4IDE0OTE2NWNkZmY3Y2RjNDkzNzE5NTEzYTE0NjM0ZmNlMGNlMDk0M2IgbGVnYWN5LXRydW5rCisyOTcyOSBjZGQyODlhMDY2MTRhM2MzNDk3MjRmYjk5ZjM0MjA1ZThkNGIwMGQxIGxlZ2FjeS10cnVuaworMjk3MzAgNjc5YjJiODI1NGFlNjY2ZDc4ZjZmNTM4MzNkZGNhZjViYjg4YmM4OSBsZWdhY3ktdHJ1bmsKKzI5NzMxIDRiZTM0YmQ3M2RmZjQxZTY3YTljZWUxN2Y2NDkyM2E1NzI0N2I3N2EgbGVnYWN5LXRydW5rCisyOTczMiAyMmQ3MzI1YmE3YWM0OTY5ODIzY2U4Y2VlNmQ1NGQ5YzhlNDQ5ZDc5IGxlZ2FjeS10cnVuaworMjk3MzMgYThkMTMwYTZhNzRkNjhlOWJhMDVhNzk1M2VhOGY1OGVmMmFkODI2MCByZWxlYXNlMjItbWFpbnQKKzI5NzM0IGYyM2MzNWY4MTAzMzk5OWM4NTM5ODc1YzA1NGNhZTE0Njg5OWVjMDIgbGVnYWN5LXRydW5rCisyOTczNSBiMTk0NDNiZGY0NDdlN2Q4MWEwOWM5NzNmNzZhMTE1ZWQ0NzkxOTFlIGxlZ2FjeS10cnVuaworMjk3MzYgNjBkODA5YTI1YmFlYzgxMzkwOTBhNzc0ZWI0OGZjODM0NjM1ZDNhZSBsZWdhY3ktdHJ1bmsKKzI5NzM3IGIzMjdmZmNmZTliN2I5NjE0YWEwMjg2M2QxZmU3MWU0NjE0MTM1OTAgbGVnYWN5LXRydW5rCisyOTczOCAyMDVmYmYxYmQwNzU2MmYyNDI1NjA2YWRmOGY5MTJmZDU5NmI4MDk1IHJlbGVhc2UyMi1tYWludAorMjk3MzkgNzY2MDFmYjA3OGQ0MDE3YzgwNTc5NDJiMjc2MTQ1ODEyMzc0OTc5MCBsZWdhY3ktdHJ1bmsKKzI5NzQwIDI0NGU4ZmJlNGUyMDQ1NDBkM2Y0NGVhZGMzNWE4MTVmNzk0NzI5NDkgbGVnYWN5LXRydW5rCisyOTc0MSA1MzNlYjUzYTdmYmRkMDNlZjU0NmU3YjIwZjU2NTcyMDNlMGI3MmExIGxlZ2FjeS10cnVuaworMjk3NDIgZTM4ZDUwMzM3ZThjZDgzMDI0ZmRkM2FhNGRkYjc5NDFiMmY1MDBkMiBsZWdhY3ktdHJ1bmsKKzI5NzQzIDQyMjc5ZjdkMjQ0ZGY3NGIyNzZiMzA5NTAxNWUwZjVmM2ZkN2EwNTMgbGVnYWN5LXRydW5rCisyOTc0NCAzNGZiYmNiMTA1YTQzYjY2NTYwMmI1ZWI0ZmI3ODlmYzRjOGRjODRhIGxlZ2FjeS10cnVuaworMjk3NDUgODNjY2FhYWIzZTVlNDc3ZDYyZjk3NjUwNDg1YTI5MDlmNDViYjViYyBsZWdhY3ktdHJ1bmsKKzI5NzQ2IDZiNTU2YzU0NWZmYjM4YWRiYjcwZGM0MDkyYzBiYjgwYmQxZGE1OTQgbGVnYWN5LXRydW5rCisyOTc0NyBlMjcwYzBkNDFhMDUwNTdhMzExNjQ3YzYyNGJkMmM5YzhkYTNiZGNmIGxlZ2FjeS10cnVuaworMjk3NDggYzQxOWZjZTE1MjllNTdiZTRhZjAyZjdiZmMxYjBhZjU4OTdmNjFkMCBsZWdhY3ktdHJ1bmsKKzI5NzQ5IGZiY2NlZjhiMzE1MzMxYjE0Mjc3ODJmYzQ4MmZiNDRiOWFlYmRjODIgbGVnYWN5LXRydW5rCisyOTc1MCA1N2M2ZTg0ZjcxY2VjNjZhMGQ3YjgxNTY2YmM2OWQwOTZkNTkxMjJjIGxlZ2FjeS10cnVuaworMjk3NTEgOTU4ZDA3MDg1ZGNmNGFlODA4YzZkYjk2ZWQzZjM1Y2ZmYTIwNTcxZSBsZWdhY3ktdHJ1bmsKKzI5NzUyIDUwYzk1OGY3MDNlMzAyODllMjZhNmMwNjhmMDA5ODY3Yjc0OGI1NjcgbGVnYWN5LXRydW5rCisyOTc1MyBkNjYxMjliNTUxZGI0ZmFlMjA4ZjI3YWM1OWM0NzY2ZmI2YzU1YTMwIGxlZ2FjeS10cnVuaworMjk3NTQgM2FjNDY0YzM3Mzc0YzQzODRmZWYxODE1MDRkY2MzODE5ODc1ZWE5YyBsZWdhY3ktdHJ1bmsKKzI5NzU1IDdjMDhmNmNiOTBlNGY5NmUxMmM5MzFlZDQyODUwNDVmZWY1YWQ2ZjIgbGVnYWN5LXRydW5rCisyOTc1NiBkNDQxMWQ5NTBkNDgzMjU1MDM0NTk2MDVkYTEwNWQ5MjdlNTJlZjA5IGxlZ2FjeS10cnVuaworMjk3NTcgODc1MTQwZDMwZTE3NjU2MGFkZjQyNmRkZjUzNDljMGI4YzE1ZjdkYyBsZWdhY3ktdHJ1bmsKKzI5NzU4IGVlYzk5NzgzNzE2YzNhY2RjNGJkNTQyZmE2MDBmY2EzOTRiNmU1NzEgbGVnYWN5LXRydW5rCisyOTc1OSBjZTY0MGRhYjEwZTQzMmM4Nzk4OWI4MGU0YzU1ZTcxNDg3ZDIwOGNkIGxlZ2FjeS10cnVuaworMjk3NjAgZWZlNThjMTBjY2YxNmQwMDY2YmRhMjEyNDE4NGQ5YTNiNjhmNmY3YSBsZWdhY3ktdHJ1bmsKKzI5NzYxIDRlZDIzMGEwYzkzMWViMGYxY2E1M2RhNWQ5ZmIxNGY0ZTM0MWFlN2YgbGVnYWN5LXRydW5rCisyOTc2MiA0MmJmYzk4ZDI5NWI3ODUxZTE3MDE3N2RlZjcxMGZmMjQ5MjgzNDRhIGxlZ2FjeS10cnVuaworMjk3NjMgOTZiZGI0NDc2M2MzNmRmMTk2NTQxOTI4OTlmNGE4NWJiYjIxN2E4OCBsZWdhY3ktdHJ1bmsKKzI5NzY0IGEyNGJjNmEyZTJjZGZhNjY2M2NhMjUwNzJkZjRjNjliOGM1MTNkMzggbGVnYWN5LXRydW5rCisyOTc2NSBiMGI2MDg1OTgxNzAyMDVmZDE3NDBhNDMzNDViZTc0NDU3MmU3ODFhIGxlZ2FjeS10cnVuaworMjk3NjYgMDkzNGE4YTBiYTBkODU0ZmFkMzQyZGIyNThkMjM2OTc3ZmVhZjRhNCBsZWdhY3ktdHJ1bmsKKzI5NzY3IGU5NjU3NWY3ZTk2YTdlYzJmMDA0YWU3MWNkZTA1MmI4YTJlMzI4ZmYgcmVsZWFzZTIyLW1haW50CisyOTc2OCBkMzFkZGM2NmIxYjU1MWY5OWNmZmU0Zjg2ZmJmM2E0MzliY2EwYjk1IGxlZ2FjeS10cnVuaworMjk3NjkgMzE2ZmRkYmMxZTA3ZWVlYmRhODA2ZTEzNjAyODFkNmM4NTQ3MDZkOSBsZWdhY3ktdHJ1bmsKKzI5NzcwIGZmNWI1MTBlYmE2YjY3OTQ1YmY4MzEyNDY2ZDA3YzA5ZWQzODk1NWYgbGVnYWN5LXRydW5rCisyOTc3MSA2ZDBjZDgwZTI4MDQzMGQ4OGNiMDAyMTk4ODU4N2NlMjgwYmQ5YTJmIGxlZ2FjeS10cnVuaworMjk3NzIgMWJkOWQ5ZjAyYWQxYjQ1NjJjOGIwMzhiNWQwNjRhNjhjN2EzOTRlZCBsZWdhY3ktdHJ1bmsKKzI5NzczIGJlYTk5MWU2NWZmZDM5Yzg5ZTgxMDhjZmQ1ODBkZWRhMzQ5ODNhNTYgbGVnYWN5LXRydW5rCisyOTc3NCBiYWNkNjc4YjNjNGNlZDIzNGMyYzZkOTQzNGFlMjdjYzE2MjgzMDQzIGxlZ2FjeS10cnVuaworMjk3NzUgZjZlNDY1ODViNmIzNGMwZGM2YmU5OTRjM2UzMTQ0MDExMDhkMjc4NiByZWxlYXNlMjItbWFpbnQKKzI5Nzc2IGM3NzQzNWQ4N2MyZTkyMGRjNDA1NjA1YzhiMzgzNDM5OTk3NDMzYjcgbGVnYWN5LXRydW5rCisyOTc3NyBkY2RlMjUzNDdlOTM4OTAxZDUxYTNmZWQ3MzAyMmE4MjkxMmMwMjFmIGxlZ2FjeS10cnVuaworMjk3NzggZTNiOGY3N2E2OTgwMGIyY2IyYjA4ZGQwOTVlZDY0ZGYwY2JjYjViNSBsZWdhY3ktdHJ1bmsKKzI5Nzc5IGZmN2FkMzJjOTU1NGVkZjI4YjlkZDcyZGY2NGE2MGI5MzA5ZjYyN2UgbGVnYWN5LXRydW5rCisyOTc4MCAwYzg5OTM3Y2ViZWQzNzZlNDBkZTY5Zjg2MTQxZjgwOTUyOWUzYmY3IGxlZ2FjeS10cnVuaworMjk3ODEgMDgwODM4ZTM4ZTdjNGFlODRkMjI4MTFlMTg2YmZhNzZiMDJiMjg2ZSByZWxlYXNlMjItbWFpbnQKKzI5NzgyIDMyZGY4ZDU5NjBkMTgyZmQ3YzRhMTFkMmFmMmUyYmMzZmE4ZGUyNDAgbGVnYWN5LXRydW5rCisyOTc4MyAyNTFkZDEzNmJhYzNiYjAzMTU3Yzc5M2QwNzEzMmQ1MDBkYmVkMDYyIHJlbGVhc2UyMi1tYWludAorMjk3ODQgZWYxZTM4MzJhOWVhMjAyMzUyNzBjMmI1M2JiZTcyNDRiMzQ1OWJkZiBsZWdhY3ktdHJ1bmsKKzI5Nzg1IDQwM2RjYmM5MDQzZjY4NzRkMGZmYWRiNGNkMTE0MGYzOTc3MjkzY2UgbGVnYWN5LXRydW5rCisyOTc4NiA3ZmM3MDRjY2ExODEzYmIzYzA3ZmM1MTNlYmNhM2FmMTU0MTljYTkzIHJlbGVhc2UyMi1tYWludAorMjk3ODcgYmFhNDdkN2U4NGUyNTgzNjA5MjYyNmFiMTI4NTkzNzY5MTliNmY3YyBsZWdhY3ktdHJ1bmsKKzI5Nzg4IGYyZmMzOGY4Y2E5ZGUyZThiNTFkMDM2NzQ2MGQ3ZWFlM2IzMjZmYWEgbGVnYWN5LXRydW5rCisyOTc4OSA4YjYzOGJlNzZjYmUyNDBiNTY0ZDQxNDZiZjc0NzYwOTZjNDJkMGU0IGxlZ2FjeS10cnVuaworMjk3OTAgNDFmZjUwYjRkMDk3NDIzYjBmMmE1M2M2ZDliZWE0NDZiYmQ1NDk3OSBsZWdhY3ktdHJ1bmsKKzI5NzkxIDhlNjAxM2JiZTdhN2MzYzRmZTk5ZDBhNTQ3MmFkOTU1MGY3ZDhiNDAgbGVnYWN5LXRydW5rCisyOTc5MiAzZmQ4YzJhZmYzMDUyOTczOTlmZjFmYmYyNTc4ODdlYmVjMTRhYjliIGxlZ2FjeS10cnVuaworMjk3OTMgYTI3YWM5ZDMyZjIzMzhmYWFjNGY4OTUwOWU5ZTIwZjMwYWFmOWFhMCBsZWdhY3ktdHJ1bmsKKzI5Nzk0IGE0ZGJhMDU4ZjcwZWFmZmMzZjhiMzZjZTMxODVkOWI3ZDcwNGI3M2UgbGVnYWN5LXRydW5rCisyOTc5NSA5MTBmYTczOWY0YTRlN2MzNDg1MDljMWY5M2U1ZDFhMWI1M2YzZmZjIGxlZ2FjeS10cnVuaworMjk3OTYgOTBlOWEzZWNkYTQ0OWRjNmJiMWE2YTVkOWFiODc4ODg4ZGZjZTg5YSBsZWdhY3ktdHJ1bmsKKzI5Nzk3IGQ0MWM0Yjk1ZTcxNGRlMThmZjgzMjQ3NDlhMTFhM2UyNzI3YjM4MjcgbGVnYWN5LXRydW5rCisyOTc5OCA2ODAzNjBlNjhhMDYzYTY3OGE4OGE1MDUyNTNhNzkwMjRiYWMzYWMyIGxlZ2FjeS10cnVuaworMjk3OTkgZmFkY2FiNjVhYTg3NGI2NDkyMTY5OGMzMmZiODE0MWUyNWVjNzIyYSBsZWdhY3ktdHJ1bmsKKzI5ODAwIDA2NzU0ZDczYzYzZTQ2ODdiZTY4ZTA3YmI0MzYyNzA3Y2I0OWI2ZmYgbGVnYWN5LXRydW5rCisyOTgwMSAwNWQ2YWRlM2U5MmI0YjFjNTgxNWQ5OWUyODcwNzA1MzFhZmZiNGE2IGxlZ2FjeS10cnVuaworMjk4MDIgODIzODk2Y2UyZTVkMDU2OGNiOWMzNDM3ZmU1ZTAxMjhjM2QyMTUyYSBsZWdhY3ktdHJ1bmsKKzI5ODAzIDJiMGU4MTVjMGIzMDdmZmUzYzVkYzIxMzBmMDVlNDQxM2Q3OTI4MjcgbGVnYWN5LXRydW5rCisyOTgwNCBlYTFkMjA1MGQ3ZGFhZWNmNTYyYWRmNTBmOTA1YzY5N2Y4OGNhZGMyIGxlZ2FjeS10cnVuaworMjk4MDUgZjNhNjkwMzdmZGYwZmFkM2E1OWYwMzc1N2U3MGRmNGJiYzQzZGQ2MiBsZWdhY3ktdHJ1bmsKKzI5ODA2IDQ0ZDdlYWFlMGQ4ZDM4YjIyNjJkMzJjY2JlZWUwYTY3NjVjNGVhNTggbGVnYWN5LXRydW5rCisyOTgwNyAzMDg2ZTExMTc4M2E3OTEwNDFiOGNkOGRkNTAzZWY5ZDMwM2I2N2I5IGxlZ2FjeS10cnVuaworMjk4MDggNjBiZDdhZjAzMjRlODBjYTM3N2M5NDQ1NDQ4MzQzYjk4YWMyZmVkNiBsZWdhY3ktdHJ1bmsKKzI5ODA5IDYwMWI4ZmMxMmZiOTUzYTE4NzBjNzg5Mjc3YmJkZmMyM2EzOTY4YzQgbGVnYWN5LXRydW5rCisyOTgxMCBmMzQwMGVmMDJhNDU5YzQ3YjIwMTk5MjVlYmU4MGQ1MjRhYTI4MTkyIGxlZ2FjeS10cnVuaworMjk4MTEgYzc2NzYyZDY2ZjQyMWMxNzJlNTJjMDBhMjQ1NGJjMjA5NDczYThmZSBsZWdhY3ktdHJ1bmsKKzI5ODEyIDk1N2NhMmM1MTc5MDQ5YTM1ODNlNTQ4Mjg5ODcwYTE2YTRiNmUwOWEgbGVnYWN5LXRydW5rCisyOTgxMyAxMDg3MWY0NGU3ZGIyOWQ2Y2RmNjM4ZTc5ZWE0MWY4YzZkMGExNGFlIGxlZ2FjeS10cnVuaworMjk4MTQgNzMzZTRiOWQ1OTJlYmNlYjA5NGMyOTlkMDk4ZmRkNThhZjExZTM5NiBsZWdhY3ktdHJ1bmsKKzI5ODE1IGFjNzg3MmU1NTQwNTliZDk4OTQwMzQ3YWFlYWExNmU3MmNjYTVhMTIgbGVnYWN5LXRydW5rCisyOTgxNiA2NTg5YzM3YzBkZGQ3MmIzZjNjOGU3Zjg0ODllNzRiNTM2ZjA1MWM4IGxlZ2FjeS10cnVuaworMjk4MTcgNGVjMTkwMmVlNmI3N2NhOGQ5NWM1NzQwMWM5OTc0MjYwZmU4MTEwNyBsZWdhY3ktdHJ1bmsKKzI5ODE4IDU2MTE4NWQxM2Q1Y2M0MWY3NjEyZDY2ODRlY2I2Mzk3ZGZlMTExN2QgbGVnYWN5LXRydW5rCisyOTgxOSBmNzg1MjcwY2VlMTk3ZDE3MTRjODU5ZDM4ZDNkYTYxNTViMDJjZmJjIGxlZ2FjeS10cnVuaworMjk4MjAgM2M2NGVmODdkNWY4OWY1NDY4MDQ0YjI4NzQ0NWRiY2NmYjEyZmM2YSBsZWdhY3ktdHJ1bmsKKzI5ODIxIDA2N2EyZWY2ZDhhOWYxNmYzYjhiYjQ4NzgwZWVkMzgwMmIyNmMwMzYgbGVnYWN5LXRydW5rCisyOTgyMiA5ZjQ2OWRhNTkxYTllN2ZhZjFjNTYwODk4MmI1NTI3NTFhMjI0ZGQwIGxlZ2FjeS10cnVuaworMjk4MjMgNTQ3ZGU0MDdjMTMzNDczZWQzZjIzOWNiNjQyNTQ4OTBiNDJjYzAwYSBsZWdhY3ktdHJ1bmsKKzI5ODI0IDNlMDJlYWQ4ZGUwNTgwMDc5NzlmMGI3NDNiNjJmYjdmYTU2N2YyNTIgbGVnYWN5LXRydW5rCisyOTgyNSA0NmJiOWFkODMxOGYxOGZhNGQ1NGNlOWZjZmQ3MzQwNjZiZTBkZjFhIGxlZ2FjeS10cnVuaworMjk4MjYgN2I5MDk2NTAxZWE4MGQ4MDU5ZWVjYjk4NjBjODE2M2Y4OTBlMTAzNiBsZWdhY3ktdHJ1bmsKKzI5ODI3IGFiZjU2NWNmNWI1NDc0YzgyZTRlOTAxY2UyOTI3MTk1NTEyM2U4YTIgbGVnYWN5LXRydW5rCisyOTgyOCAxM2MxYWExNWUwZmI1ZGE5NDgzNzUxM2Q2MjRlZTIwODMyNGVhMGEwIGxlZ2FjeS10cnVuaworMjk4MjkgZGMzOTllOWNhYjg5ODZlOTI3MmEzODNjZjVkZjI5OTJlZGRiZmIwZCBsZWdhY3ktdHJ1bmsKKzI5ODMwIDMyMmI2NjRhMjAyMmQ4Nzg0YTk2MzM4NDc3NTI2YmNkOTI2NWJmYWUgbGVnYWN5LXRydW5rCisyOTgzMSAzNWYxMjVkNTJjZjVhODFiMTJjMDEwYjNlYTNhMGI1MTZiYmRjNjUxIGxlZ2FjeS10cnVuaworMjk4MzIgOGZlMjk2YWQ1OTM2YjM3MDI4YmVkNmYyNWRiZmZjYjFkZWIwZGJlNiBsZWdhY3ktdHJ1bmsKKzI5ODMzIDc3MDkzZDU3Y2NhOTk3YmU2NDg1YzgyYjBhNjk1YjAwNzNlMTE5OWUgbGVnYWN5LXRydW5rCisyOTgzNCAzZjdhZWE1YjkzYTE4Njc5MjgwMzJhMzdiMzUzYTE1ZGQ3ODQ3N2JjIGxlZ2FjeS10cnVuaworMjk4MzUgNzkxMTg2MzJlMzdlNDAxZTA3OWNiZTAwOGZiNTJiNzY5ZWQxMzBhZiBsZWdhY3ktdHJ1bmsKKzI5ODM2IDU0YTc0YjBkZmUyNmNmYTYyZDk2OWIyMmU1MzRjY2YzMzVlMWMwZGMgbGVnYWN5LXRydW5rCisyOTgzNyA4MjM2ZDUyODg0MTI1NmJjMWVkNzc4YmMwMDYwOTQ3MDc2NWEwM2ZiIGxlZ2FjeS10cnVuaworMjk4MzggODc4ZmVkYzZjN2U3YzRlNTUxNDMwYzMyYmVkZDY0MTRlMzA4ZDZjYyByZWxlYXNlMjItbWFpbnQKKzI5ODM5IDZlMjI4ZTFhZmYzODU4N2UwMWUzMzE4MzdhNGIyNjExOTExYzY3MzIgbGVnYWN5LXRydW5rCisyOTg0MCBiODI0MjhiMTc5NzhmYjBkYjZlMGJmOTA1MmVhNmQ4YTliMDI0ZjUxIGxlZ2FjeS10cnVuaworMjk4NDEgNGYyZDUxNzRiZDRhYzViOGVlYmE4MGYwYzIzYjRhMGU1Nzc4ZmE1OSBsZWdhY3ktdHJ1bmsKKzI5ODQyIGQxZDg5NTliMTM4YWNmZWQ5ZjY0NTMwMjgzYWRmNzQwMjNhZWQyMTMgbGVnYWN5LXRydW5rCisyOTg0MyAwOGI3MjBjZDM4N2UzMzU5NWNiNmE2NWQxZjJjMGQ1NjY5ODQzYzI0IGxlZ2FjeS10cnVuaworMjk4NDQgMGM3Y2IyNzQ2ZDg2NDM0NThlZGEyZGVmMTcwZDRkYTg1OTg0MGJmYyBsZWdhY3ktdHJ1bmsKKzI5ODQ1IGMxY2FhNWJmZjI5MmFmNTJlMGYwMjY4NGJhZDFiMjk1N2QxZDE2MDggbGVnYWN5LXRydW5rCisyOTg0NiBjMjYwNGQ2OWFhNWQ1MmJjMmQ2ODNjYmMzYTI3ODBkYmI1OGYzYjExIGxlZ2FjeS10cnVuaworMjk4NDcgOWU0ODlhMGRmN2I1YWY5ZDY2OGQ2NTM5MGM4YjYyMGE5YmFiZWFjNSBsZWdhY3ktdHJ1bmsKKzI5ODQ4IDNkMGUwMjk3NmJjMzM2NjQ3YTc5NTk1YmRlNTJjYTYwNDg5ZTdjODcgbGVnYWN5LXRydW5rCisyOTg0OSBlMTY4NzYzZTg2MWEyYzQ5MTI3ZmNjODQ3ZmJjNWMxYmM0YTZkN2VkIGxlZ2FjeS10cnVuaworMjk4NTAgZDRjYzk3MWQxOGE2M2UxMGZkZmRjOWZiZGY5MDE2MjJjOTMyYTE5OSBsZWdhY3ktdHJ1bmsKKzI5ODUxIDEzNWJiMTEyMTVhMDk0YmU4NjJhYjY5OTI0Yjg1NzM4ZThiZWU2MzQgbGVnYWN5LXRydW5rCisyOTg1MiBkMGYyZDFmM2ZjODU0MmE2MzA5YzAwOWEzYjA3MGMzN2U4YmQ3YjdiIGxlZ2FjeS10cnVuaworMjk4NTMgMGYyNzY2MzAyYmEwYTlmMzY4ZTc4YjU0NDVkYjdlMGRkNGNiMTBmYiBsZWdhY3ktdHJ1bmsKKzI5ODU0IGQyZmI0MmVjOGJiNDIyZTMxNmRhMzMzNjI3Zjk0ODhmMWEyMDcxYzAgbGVnYWN5LXRydW5rCisyOTg1NSBhYjM3NjNkNDc3Y2M0MDhhNjc4Y2QxM2YxYjFjNDY5YzU0NTI1YjMyIGxlZ2FjeS10cnVuaworMjk4NTYgMTg4NWIyZDYzOTNhOGFjZDcwNGMyODM5OGMxYTkzY2E2N2FlMTBjZCBsZWdhY3ktdHJ1bmsKKzI5ODU3IGY4YTFiYTQ0NjE1ODQ2OWNlYzY4N2JjMjkxN2QzMjNmMzg3ZjUxZjcgbGVnYWN5LXRydW5rCisyOTg1OCAxMTkxOTdmYTYxNDA4ZWQ1YWI4MTAzMWJmZmJhYmU0YmMxYWQzMDJjIGxlZ2FjeS10cnVuaworMjk4NTkgM2Q1MjNkYmM5OWJlZWE0YTc5NDU4YjBkMTNjYjRlNTM2ZjUyMzAwZiBsZWdhY3ktdHJ1bmsKKzI5ODYwIGU3NDg2ZjNlZjc1OWE4YjJlNTQyN2Y0MDBlMmQ5N2EyZGY4MzFjM2QgbGVnYWN5LXRydW5rCisyOTg2MSBkZjU1NmZkZWM2OWQwNWYzNTQ3OGUxZGJjNWM2ZThiNDhiY2I0YjQ5IGxlZ2FjeS10cnVuaworMjk4NjIgMWY4MDAwNTdiNjM3MjhmNTI1N2ExYTY3MzQ3NjgyNjY0NTQ2MWVjMCBsZWdhY3ktdHJ1bmsKKzI5ODYzIGRmNzE5NzM2ZTE1MWI1NzY0NjhjM2MwZjljYjk2ZmU2MGZjNGRjY2EgbGVnYWN5LXRydW5rCisyOTg2NCBmY2Y5NzM0ZTEwMjE0YmUzYzRmMzc3MDc1YTNjYWMyMzJhYjZiNWMzIGxlZ2FjeS10cnVuaworMjk4NjUgMWJhZjFjZGRjMGVjZDk2OWM2NzRjN2JjZjc0YzliNmEzZTIwNDc2MiBsZWdhY3ktdHJ1bmsKKzI5ODY2IDhhMDEwYzI3ZDZjYjlhMzZjZmU1Y2E5ZjU1NDY2ZDQ2MGFiOWU0MzUgbGVnYWN5LXRydW5rCisyOTg2NyBhOGNhZGZiMGZmODMyZjZiY2JjZjBkYWQ3ZjMyZWQ5MDY2YTU4MDk0IGxlZ2FjeS10cnVuaworMjk4NjggZDIwN2QxZDc4YzVkNWExZmJkZDQyOWI3NTViMjQxNmZiZjFjNzIwMyBsZWdhY3ktdHJ1bmsKKzI5ODY5IDQ4MmFlMDU1YmJkNGZhMGFjNWM0Y2FlNWQ1NzY4M2FkMjBjZjcyOGUgbGVnYWN5LXRydW5rCisyOTg3MCBiYjM4ZDdhYmMzZmNkY2Y3OGE5NzNmY2M3MmQxYjRkNDIyNjRlMzA4IGxlZ2FjeS10cnVuaworMjk4NzEgNDkxYmZjNGEwZjViYjYyMjk3YTdjYzdhYWJhNGRlM2M5NzU0ZTViNCBsZWdhY3ktdHJ1bmsKKzI5ODcyIGIwNTVlNzg4M2M4M2ZjNTI3NDY2YmQxMTM5MWU1NWFmNmJlNGFmMGYgbGVnYWN5LXRydW5rCisyOTg3MyBlM2ZhZTdiNmMyMDc4ZjRkOGFjNTZlMTFmNzZlMmNmMDhjZmQ3ZWI2IGxlZ2FjeS10cnVuaworMjk4NzQgYjI3YzFjYWQ3N2VhNzA3NTBlYzRmOTZmZmY4M2QxMGI0YTgwZjczOSBsZWdhY3ktdHJ1bmsKKzI5ODc1IGEwZDc1MmJlNTU3NzMwYmUzMTkwMmE5NGQ5YjM5OGUzOTI2OTUxNTcgbGVnYWN5LXRydW5rCisyOTg3NiAyODEyY2FjZTMwMWFjZDdmZTU5MjUzYzQyY2U2MWNkMDVmMWRjZWM0IGxlZ2FjeS10cnVuaworMjk4NzcgY2M2Mjg1NGY2MzZjZjIxMDdhNzgzNjEwNTg0YzkxYTJkNmZmYjdlZSBsZWdhY3ktdHJ1bmsKKzI5ODc4IDQzODA0MzVmZWY2NjUwNGY0YzFkNDg1ODBhODM3MjQ3ODNmZjFlYmEgbGVnYWN5LXRydW5rCisyOTg3OSBjYmQ4MWQwOGM0MzAxYzRiODBjY2Y5M2RiYjhiNDJiMGQ4M2U5ODFiIGxlZ2FjeS10cnVuaworMjk4ODAgNDg4MTYwMjFmNTg4MjkyMTVmYzVlOWVhMDhhNTdjYTBmZmZjZWZkZSBsZWdhY3ktdHJ1bmsKKzI5ODgxIDFiNDdiNTc2ZTBkNGE2MWQxNWY4ZjBkMDk5ZDEwYmIwZTk0M2FiYmMgbGVnYWN5LXRydW5rCisyOTg4MiBiMzg1MzNlMDFkNjVmYzlmYThiZjlkN2JmZGVhNGZlMzg3ZmJmNDgxIGxlZ2FjeS10cnVuaworMjk4ODMgNzAwZTE4MmIyOTAxOTM0Mjc3YzNhYzI3MDJhYTk2ZWI4ODI3ZDcyYyBsZWdhY3ktdHJ1bmsKKzI5ODg0IGY3MTAxNzAyMmZjZWNjNjJlZmM3NTY3Y2I5Mjc0NjNhOWQ2ZmNjNjQgbGVnYWN5LXRydW5rCisyOTg4NSAzZmE2ZGVkMGExZTk0ODBmZTNiZDgzN2I1ZWQ1YTY5Y2JhNzQ3MjhkIGxlZ2FjeS10cnVuaworMjk4ODYgNTQ0NzI3ZDQxZjU2ODdmZWM5NTc5ZWVhZGEyMzUyODVhMjNiYjI0OCBsZWdhY3ktdHJ1bmsKKzI5ODg3IDI2OTE4ZTJlZmQxNzdhYTdiOGQxOTJmZTkyMjNiOTRjYTZiNWNkMTAgbGVnYWN5LXRydW5rCisyOTg4OCAxYTA5NGVmMGZjODYyYzQ0YmYwYTFhODY2NjMyNDYwMTBjMDMzM2EyIGxlZ2FjeS10cnVuaworMjk4ODkgZGRlOWM2MmE3MmZlMDNhYjMwYzY0YTkwYjJlZjI0MzAxZjRhMzVhOCBsZWdhY3ktdHJ1bmsKKzI5ODkwIDU2OWUxOTNiZjU5ZmNhNzAzNTE5MjIyZjcxYjE5ZDMxNzJiNGNjYzkgbGVnYWN5LXRydW5rCisyOTg5MSBmMjgzNTUzMTA4NjcwNTViNTE4M2FiYzE3ZDM5N2Y4OGU2Y2Q1ZWNkIGxlZ2FjeS10cnVuaworMjk4OTIgZDU4ODI0Y2ViMzVkNTg2NzlkMzIxMDdjYjQ0NmM0ZTcxZGYxZTU4NyBsZWdhY3ktdHJ1bmsKKzI5ODkzIGJkMDllM2EyZDUzNjQwZTgzZGNhYjJmNDhjMmU1ODExOTM2NzY1OTMgbGVnYWN5LXRydW5rCisyOTg5NCAwMzAzNTUyM2IzODVlZTk2M2JiMjMwN2Q4MmMxYTkyZjcxOWVhMTI2IHJlbGVhc2UyMi1tYWludAorMjk4OTUgMzVmNDQ0Y2E1ZTA1YzM3MzcwMTY3N2EwMzMzNDk5NzM5YzlmZDhmOSBsZWdhY3ktdHJ1bmsKKzI5ODk2IDFlNTE0ZTM3NzYxM2UxNzY4MjYwMTkxYmJjOWFmM2I2ZWJkMTkzNTMgbGVnYWN5LXRydW5rCisyOTg5NyBhYjZjN2IyN2E0Y2I5MTRjZDk4YmY2ZjZjN2M2YTUxOThlZmQ1MWMzIGxlZ2FjeS10cnVuaworMjk4OTggOWQ2YWVkMmU2MGUyOGY2Nzc3ZDY1ZTZlYzA4Y2E2Zjc0YjAzMjEyZSBsZWdhY3ktdHJ1bmsKKzI5ODk5IDRkNDcxNTI2YWNlMTI0Yjk5ZDRiZDEyYzNhNzQwN2QxOWE1Y2M5ZDYgbGVnYWN5LXRydW5rCisyOTkwMCAzZDI4NjlkZTIzMzZjYjEyOTNhMTI5MDEyMWNjMzJmYjU1NTg3MWM0IGxlZ2FjeS10cnVuaworMjk5MDEgNTFkMDA1NzgxYzg2OTE0ZjZhMTdkZDZhZGUxNDk2M2YzZjY5N2YxMSBsZWdhY3ktdHJ1bmsKKzI5OTAyIDYwOWI1ZjM3ZjE0ZmUyYmQ5MWY0ZDljNjE2OGRkMzkyNWQ2ZGQ5NjggbGVnYWN5LXRydW5rCisyOTkwMyA0NTc0YjY1OWVjMzdhYmQ4ODdiMjllNDdiNmE0ODljMTViYWUxZTNlIGxlZ2FjeS10cnVuaworMjk5MDQgNjUxMWIxNmZmZTg5ZmZiZWZiOWY3YzFjNDU4NmZiZTkyNWI0OWNlYSBsZWdhY3ktdHJ1bmsKKzI5OTA1IDAxMDNmMGI3NWZlMjYzNDdlODg2MDhlZGVlOGM2NTRjMTM1OWJmMWEgbGVnYWN5LXRydW5rCisyOTkwNiA0YmVlMzM3OTA5NDBjY2RkZjIzMGEwZDQ5ZmYzN2I0M2EzYTRkNmQ3IGxlZ2FjeS10cnVuaworMjk5MDcgYjA0ODlhNjA1OTdmNzQxNDFjOGM4MTJiZWI3NGYxY2NmZTRlOGU0YSBsZWdhY3ktdHJ1bmsKKzI5OTA4IGFkNzVlZmUyZjBhNjZjN2ZkZDFmMDZhODgwYWRkMjQ5YThkZTRjNzggbGVnYWN5LXRydW5rCisyOTkwOSBjNTIyYzhjNzFjYWIwYzEwZTg1NmM1NzNjMDE4NjFiMzJhNmZlOWI5IGxlZ2FjeS10cnVuaworMjk5MTAgYzZmZmQ4ZTYxY2NlNmRiY2MwZjBhMTM4ZjZlNjU5YjFjNzNlNjk3MSByZWxlYXNlMjItbWFpbnQKKzI5OTExIDZkNTkwNjg1M2E3ZDkwN2U2ODM1NTAxYWY0OTUzZDA2ZTFiYzdhOWYgbGVnYWN5LXRydW5rCisyOTkxMiBjMmJlNGRjMjU0MDU1NDM1ODcwODk3ZTk3MjlmMzYwN2M3MzU4YTNkIHJlbGVhc2UyMi1tYWludAorMjk5MTMgNGEwMTIwOTkyNjkxNmQ5YWI1M2UwMDg2MGE0ZTliMzQ3OGVmNzU0MyBsZWdhY3ktdHJ1bmsKKzI5OTE0IDU3ZDAzMzc1YWVhZDc3YTg1OTk1MDI0OWFiNmZkODZhZTIyYmZkYTQgbGVnYWN5LXRydW5rCisyOTkxNSBkNDQ5NDViODFmZmFlMDA3NzVmMTJmYmE4NWYxN2I3M2Q0ODQ1NDYxIGxlZ2FjeS10cnVuaworMjk5MTYgYzViMTMwNTA4MWRmZDEyOTlmY2E5YzU5NWEzYmI1MTU2NTE2MDUxZiBsZWdhY3ktdHJ1bmsKKzI5OTE3IGFhMGUxOWI2ZTFlNzVhMGM1NzRhYjc3M2YxNThhNGNjYzNhOTZhZGQgbGVnYWN5LXRydW5rCisyOTkxOCBhMzUwYTQ4N2VhYzExYjM2NTU5Yzk1NDZkNTBhMWVlMzE5NzFkNmU4IGxlZ2FjeS10cnVuaworMjk5MTkgMzY3MjUyMjE0ZGFmMGYyNzUyOWMwZmI0YTRhYzdmNTZlZWIyNjhhNSBsZWdhY3ktdHJ1bmsKKzI5OTIwIGMxMjU4YjFhMzZjNmY2OGRmNmMwMTllYWQ5NTM1ZmJhNjk1M2ExZWQgbGVnYWN5LXRydW5rCisyOTkyMSA0YWMzOGYyOGNkMTBhMTVjY2M5MjRjOTRjM2NkYjMyNzAxZTJmM2YyIGxlZ2FjeS10cnVuaworMjk5MjIgNzQyMTM2NzI3NGI0NTQ4MWVmMjcxZGE2MjdkZmM2YTdmNTJmNmI0NCBsZWdhY3ktdHJ1bmsKKzI5OTIzIDc3NzdkY2ViNjZlZTE0NGNjYzU2NWZjM2I1NjY3YzA0Nzg1NTNiNjUgbGVnYWN5LXRydW5rCisyOTkyNCA3YTA5YjM2Y2EzNzljMmMwN2Q2ZDc5MThjMGZmNGUwODdmMjQ0MTEwIGxlZ2FjeS10cnVuaworMjk5MjUgYmRkYzQxMzE1MzM2NTBkOGJkZGQ4NTYxNTBmZjJiM2NjMDcyOGFhZSBsZWdhY3ktdHJ1bmsKKzI5OTI2IDhlYTJlMzU5OTdhMDRiMjA1NDMwZTgxNDRjMmU5YzAzNTUxM2FmNTkgbGVnYWN5LXRydW5rCisyOTkyNyA4Yjk4OGEwOWRlOTZkZGE2NjlhYzk3NTBhZmUzNjkyZWUxNzBkY2RkIHJlbGVhc2UyMi1tYWludAorMjk5MjggY2EwMWYzZGU2NjRlOGI2MDkzMTI5MTk1ZDY0NGY1OTdkMDI1Nzk0NSBsZWdhY3ktdHJ1bmsKKzI5OTI5IGNiODVhYWU3ODk4MDJhZDY3YTY1NWVjNzRiZDdjOGUwMTM5MDBjMjUgbGVnYWN5LXRydW5rCisyOTkzMCA2MGU1Nzc5N2I4ZTYxYTMxMWNhYTI5ZWE2NGNiNTY4YmVjNjBjZjg4IGxlZ2FjeS10cnVuaworMjk5MzEgMjcyMDRmMDcxMmEyNmVlOGM0NThjZjkyMWY1NWI5NjhiM2Y5MzA2NCBsZWdhY3ktdHJ1bmsKKzI5OTMyIDVjN2EzYTE3MzEwZDFhMmE4ZDM2ZjczZTMwMzlhY2VkNjZkMTNiM2MgbGVnYWN5LXRydW5rCisyOTkzNCA0OWY0OWFlYmY1YzIwYmUzMmQ4ZTRjYzYyYjkxMGZmNjc3ODcyOTE5IGxlZ2FjeS10cnVuaworMjk5MzUgZTUxY2JkY2EyMDg1YmE5NzJhNzdlZmZiYzgwY2JiNmZjMzIzNjkyZCBsZWdhY3ktdHJ1bmsKKzI5OTM2IDAzYWZkYTlhZDA5MDhhM2ZjMTI4ZTgzZTNiYjIzNjA5NjNlY2UwMzcgbGVnYWN5LXRydW5rCisyOTkzNyBkZDgxN2JiMzY0NmJjYjkyZGRkOTRkZGMwNDNkYTY0NGZhY2RjNjYxIGxlZ2FjeS10cnVuaworMjk5MzggMzdhMTc4YzBmZDU5ZjJmMjQzMmU5OGM1NTdiZTg5MDMwZmZmYTczYiBsZWdhY3ktdHJ1bmsKKzI5OTM5IGRkYmIwNTdlNWFiMzE1YmNlOTQ2MWQxYzA2MjY5MGQ0MzhhMWY0YTEgbGVnYWN5LXRydW5rCisyOTk0MCAxNTk1N2I3ZTQyNDc5ZTI5OTlmZDgwZTQ5ZGYzNzUzYTViZWUzYTBiIGxlZ2FjeS10cnVuaworMjk5NDEgYzg4ZjZmZmYxYzNmMWM3ODE3MzY0ZDMzOWQ5YmE4ZTEzMjFiODZhNiBsZWdhY3ktdHJ1bmsKKzI5OTQyIDE0ZmMxODczMzRjNTgxNWE5OGUzODFkMGJkMWU3YTE4YTRmNWM4NDkgbGVnYWN5LXRydW5rCisyOTk0MyBlMWEzMzEzNmI0ZTI2N2JiZjQ5ODliYzMzMzMzNjI2NjY3Yjg1YjEyIGxlZ2FjeS10cnVuaworMjk5NDQgNDE4YTdlYzkyNTk5MzBmZmY4NzM1NzM0NTUzNTVkM2RhNzQ2Y2RkNyBsZWdhY3ktdHJ1bmsKKzI5OTQ1IGE1NzNhZjVkYjgwNzQ1MmVhYzc0YzcxNmVhMmY5ZWE3ZDlmMDI3ZmQgbGVnYWN5LXRydW5rCisyOTk0NiBmYmIyNGNkNTQ3NjZjZTc3YjkwZTMwNWJhZTUwYzY5YmMzYjA5NGQ5IGxlZ2FjeS10cnVuaworMjk5NDcgZjc5ZWJiYWE0ODMzNGQ1ODJlZGRjZGQ1YWI4MmQyN2FkZGNhMTQzNSBsZWdhY3ktdHJ1bmsKKzI5OTQ4IDk1ZWRiNDhkYmZhMTZmNjNlNjgyYmU4YjBkM2IxODA1NzA3ODNiNjEgbGVnYWN5LXRydW5rCisyOTk0OSA5OWM3OGNmOTU2MTA1MWE5YTAzMGE1Y2VhZGMwNGM2NjE2ZWZlYzg5IGxlZ2FjeS10cnVuaworMjk5NTAgYjhmZmZiYmQ2ODMyNjYzNmRkZDY2MWI0ZTNlOGMxYzhkYTEzNGI2YSBsZWdhY3ktdHJ1bmsKKzI5OTUxIDA2OTBmODFjY2U3OGJlNzRhMTA4MjBjMDk5Y2VkMTVkYjYzZTczMGYgbGVnYWN5LXRydW5rCisyOTk1MiAxMzgzODUzMGY2MTk1NzQ0N2Y5ZDk5YTA0MDA4NDhkNTI2ZDBhZTVhIGxlZ2FjeS10cnVuaworMjk5NTMgNmM0NTk4NWE4ZmRiZmYzYWExNGQ3NjM0NTdiYjg2NjQ2ZTNmYjIyZiBsZWdhY3ktdHJ1bmsKKzI5OTU0IGYyNTViM2Y1ZTkxMzYxYzQ0ZWFjMzJlMWZmZWFjMjI2NjA3ODZhODggbGVnYWN5LXRydW5rCisyOTk1NSBlMDc5NDhkNWNmNjdjNDVkYzdmODgxOThiMjkxMDRiYjhjNGM4NWI5IGxlZ2FjeS10cnVuaworMjk5NTYgNzQ2OGI2OGU5ODI4NmY0ZWMxYWMxN2RlM2JmY2NiNDBmOWNjMGJkZCBsZWdhY3ktdHJ1bmsKKzI5OTU3IGQxYjRlNzAxNmQ4OGE1MmViOGI2MmNkNTQ3Yzk4YWFhZjcxMWQ2MmMgbGVnYWN5LXRydW5rCisyOTk1OCA3YmEwNzJkYjM4MjhmN2QzYWQ5NjI2MGM2YjRhMzg2M2FjZmU4MWQ3IGxlZ2FjeS10cnVuaworMjk5NTkgYjI2OGE2ZTg1OWNiN2IyODY0OWNlZjk4YWE4ZGQzYmQ5YzYyZDg5MSBsZWdhY3ktdHJ1bmsKKzI5OTYwIDI4ZWZlMTZhOGI3ZGY3YWQwZTk2NGRjMjgzNDZjNTRhNWViZDQ2YTIgbGVnYWN5LXRydW5rCisyOTk2MSBlMjZhMjA4ZWE3MWI4MzU3MTZmYTAzYjVlNWYyZDc0ODFlYjQ0NzUzIGxlZ2FjeS10cnVuaworMjk5NjIgMGY4NDhiMDYxNDZmMGM5NzU0NjdkYTAxNDhlNTU0NGRkODAwY2U4ZCBsZWdhY3ktdHJ1bmsKKzI5OTYzIGI0Y2U2YWMxN2Y2MDc5ZTY2ZjM0MjFhOGYwNjViMDdkMDgyZTQyM2QgbGVnYWN5LXRydW5rCisyOTk2NCAyZjQwZmE3OWI1OWE1ZjI3OWMwM2Q3MWFjYzBkMWZkOWRkOGE0M2QwIGxlZ2FjeS10cnVuaworMjk5NjUgYjhhN2M0Y2YzZTZkMjYwMDU5NzIwZWNjYjU4MjA3OWFhYWYzNWNmYiBsZWdhY3ktdHJ1bmsKKzI5OTY2IGMxMzVmYjJiYjgyNWFlODA4NWIyODFmYzY5Mjk2ZjJkMzNhYmU3NzUgbGVnYWN5LXRydW5rCisyOTk2NyBhNTZlMGIyNTE3YmQ4MzU2NGE4MjNkNjliNzIwZjZiMWFkMTMwZmY1IHJlbGVhc2UyMi1tYWludAorMjk5NjggYWY0Njk4ZTU5MWVjYzhlMjk4NWIzZTkxM2MyMGQyZmQ0MGVlYWQyYSByZWxlYXNlMjItbWFpbnQKKzI5OTY5IGUwYjU5NjA2MDMxM2U2MzcwOGY3YTI5NGU1YjAwZmVmYTQ0MTYxNGEgbGVnYWN5LXRydW5rCisyOTk3MCAyMzhjYWM5N2QxNjU4NGJlMzE1NWI3YTRlZDQ0NGM0ZTY2YWY1NDE5IGxlZ2FjeS10cnVuaworMjk5NzEgYjMxYmQwMDRmNDMwYzczMzg4YTA5YzczYjBhODIzZTcxYjYwOGQxOCBsZWdhY3ktdHJ1bmsKKzI5OTcyIDNmODAxOTI3MzU0OWVjZjJhODllOTZlYmRjNmZkZmNmMDM5YmIwMGUgbGVnYWN5LXRydW5rCisyOTk3MyA1NDY3YzZlMWY1NDFiMDRmZWI1MDE3Mzk4NzRlN2ZjMDA2Zjg3NjY0IGxlZ2FjeS10cnVuaworMjk5NzQgMjc3NWRlMzVkZDI5ZDQ5Y2VkNTA2ZDZiNzJkMGFjNzE1YTc2ZmQxYyBsZWdhY3ktdHJ1bmsKKzI5OTc1IGYwNzcyYmQ3Y2M0MDEyYzIwZjg3NGY4MTNkODkzMGM4NDg4NDZmYWQgbGVnYWN5LXRydW5rCisyOTk3NiBmOGQxYzY4MjBiZmFlYzUzODlkNzcxOTY2MTc1MjQzZWRlZTRhNDZkIGxlZ2FjeS10cnVuaworMjk5NzcgNzZmNzliYjM2ZmM3NzNkYzkxYWU0MTM5N2ZkNWU3ZWMzY2FkNTQxOSBsZWdhY3ktdHJ1bmsKKzI5OTc4IGNkMWZlNGI1ZjdmZmNjMjNlZTljOTJiOTYyNDY1YTkyNWUxZGI0OGEgbGVnYWN5LXRydW5rCisyOTk3OSBmODYxMzBmNDViZjc1MGQ4ZjliZDg4ZDVlMjRkYmQ2OWQ2MzkxZWU5IGxlZ2FjeS10cnVuaworMjk5ODAgNjcxMzI3MTk1ZGMzMGVhNWQyYzQ3ZWIyOTQ5NTcyNjA2MzYwNjcyMiBsZWdhY3ktdHJ1bmsKKzI5OTgxIDgyNTQ0NWY5ZDZiOGIwMmM4ZWJjYTIyMjc1YTgxY2YxZGY0YjA1MGYgbGVnYWN5LXRydW5rCisyOTk4MiAwMDE1ZDNmMTg5ZTE0OWEyOWI2NmE1MjE3NWE2ODQwNGQyZGNjNzM3IGxlZ2FjeS10cnVuaworMjk5ODMgZWRhOGU2ODk4ZGQzZWU3YzExZTMyZDBlOTQ4ZDdhNWYzYWFkZDdjZCBsZWdhY3ktdHJ1bmsKKzI5OTg0IGE5YjRiNmFhMTIyMDI3NzRjZTQ4MzNlM2QyZWIwNWRjMDA0OTBhNTAgbGVnYWN5LXRydW5rCisyOTk4NSBmYTQ1MzJlZjk5YzlhOWYwODgzYTJiMTFiZWIxYTliNDg4NjM3YmYyIGxlZ2FjeS10cnVuaworMjk5ODYgZTkyM2Y2ZDNiNGEzMzA5MTc3MTdmZGI2OTczY2UwMDI4ZTU3YTA4YSBsZWdhY3ktdHJ1bmsKKzI5OTg3IDllNGM4MDM0MGZhMWQ5NzU1ZWYyY2Q4M2ZiNThmYjIzMzM5ZDYxMWUgbGVnYWN5LXRydW5rCisyOTk4OCBmNDBhMmQzYTJhYjU1MzcyYTVjZjZmMmQxMjRkMGY4NzAwNTliY2Q1IGxlZ2FjeS10cnVuaworMjk5ODkgMmQ0NGFiZTU3YjQyNjM4NDBkY2Y4MDU4OTQzMmNjZTMzY2Q2MWRjNyBsZWdhY3ktdHJ1bmsKKzI5OTkwIDM3NmJkMzU3YzRkNWFlNmQxNjdhMmZhZDdhN2Q2MjZlNTRlZjA2OTQgbGVnYWN5LXRydW5rCisyOTk5MSA1YTllNzA2NGM5MjM0ZDEyN2QyMDg0N2IwMzk5ZWMzMWQwOWIwNDRlIGxlZ2FjeS10cnVuaworMjk5OTIgNjQzMTAwMTcwYmRlOTFmODY1ZThlYzNlODA0NTYwZTQ0NmJjZGM2YSBsZWdhY3ktdHJ1bmsKKzI5OTkzIDUwYzYzM2E4N2UzNTU0N2YxYjNkOWNhMGEyYzljN2I4YjM4MWI1MDAgbGVnYWN5LXRydW5rCisyOTk5NCBmZDZmYjczZmIyMGZkYTFmYzk4OGU5ZThjY2Y0MDllN2RmNjczYzc4IHJlbGVhc2UyMi1tYWludAorMjk5OTUgODUwNDU5MWU0YzYzMWI0NDc3YWEwMWM1YTBhNTYzZjkwMGQxM2Y5ZCBsZWdhY3ktdHJ1bmsKKzI5OTk2IDk0YzU1M2ViODhjM2E1Nzc5MmNkOWU5ZjdlYTY0MjQ4MTI1MjdkNTIgbGVnYWN5LXRydW5rCisyOTk5NyAwYjY2ZDRlOWY0ZjQ4NTk2NzliNWI0MDU4MGRlMzA0MjIyZDhkMmZmIGxlZ2FjeS10cnVuaworMjk5OTggMTdkMTIzZjMzNjExMDYwMDU4YWE1NGRmZjAzNjUyYzY3ZDNmODhkYSBsZWdhY3ktdHJ1bmsKKzI5OTk5IDc5ZjkwNjNmYjU4ZWNiMjhkYWI5ODRiMDhmMDc4YzdmZjE2MjQ0NzQgcmVsZWFzZTIyLW1haW50CiszMDAwMCA0YzE2NDI4ZmJjZDgzYzVmMTcwMzkwMjY2OGRiZTA5YWM3MjMyYjQwIGxlZ2FjeS10cnVuaworMzAwMDEgYTVhODczNTcxMWU4MTZmODUxZDQyYmRkZTg0MGIyOTBlNzVhZGM0YSBsZWdhY3ktdHJ1bmsKKzMwMDAyIDdhYmE4NTljZWU1NDUzMjdjODhlNTU0ZTVhZTMxYjMxMzViZTA0OGMgbGVnYWN5LXRydW5rCiszMDAwMyBkMmQ3ODE3ZmNjYmJiYWUxM2Q4ZTkxN2U1MjJhN2U5YzYzMDdhMzExIGxlZ2FjeS10cnVuaworMzAwMDQgOWZiOGFhZGU4ODdmODU1Y2ZkMjViMTcwOGM4MDcwMzEwNzllYzgzZSBsZWdhY3ktdHJ1bmsKKzMwMDA1IDE4ZGNmODBlNmY4ZGVkZDRlMWMwOWZjZGFmNWUyNjcyNTgxYjJjOWIgbGVnYWN5LXRydW5rCiszMDAwNiAzOGZlNWViNmFjMjU2NzIxMjYxNzllZTJlMDI3OTNmOWU0NWU1OTIzIGxlZ2FjeS10cnVuaworMzAwMDcgMzk4MWNmMmE1NzMwNTM0ZDg5NmRjNzRkYzNmYmJiY2U1OTM5ZDA1OCBsZWdhY3ktdHJ1bmsKKzMwMDA4IGI1ODM3YjhmM2IyYzRjMmI2YjAwNWVmZjI3NjdjYTEzZjUxZWJiYzQgbGVnYWN5LXRydW5rCiszMDAwOSA4ZTE1NjdkYmNiYTg5M2ZlNjZiM2MwOTMwNzlkM2Q2OWNjYzcwYzBhIGxlZ2FjeS10cnVuaworMzAwMTAgNjE3N2ExM2U0YzE0NWE0MGQxOGYyY2JhMGVmZTRjNGVmZmVkMGFhZCBsZWdhY3ktdHJ1bmsKKzMwMDExIGQ2ZDUyMjJiN2U1NTUyYTkyZTdhMjBhYjU0M2FhZGU3OTI3ZjY3ZmMgbGVnYWN5LXRydW5rCiszMDAxMiBjYTZmYTY5NzExYmI1ZTBlMmRmOTY5ZjNmMDJhN2E5ZDgyOTcyMzc5IGxlZ2FjeS10cnVuaworMzAwMTMgNjFlMmI4Y2VmZDg2NzAwYmYxZGNmMWQwNzNiZTAzY2U3YmJmM2FlMCBsZWdhY3ktdHJ1bmsKKzMwMDE0IDZlYTc4NjUyODM5NWFiNzQ0MDc5N2E5MjNkNDdiMmIwYTNkN2FjNjkgbGVnYWN5LXRydW5rCiszMDAxNSA5OTdmYTAyMjQ0YmFjMmMyYWQwNjVhNjlkODNiMWIyNzY3MzZlYmQyIGxlZ2FjeS10cnVuaworMzAwMTYgMjYyMTk2ODMxOWYwMzQ0YTJmYzE3OWUyZTcyOThhYzQ2NTUxZmI5ZiBsZWdhY3ktdHJ1bmsKKzMwMDE3IDBlNmUzOWZiOWNkNzMyYWQ2ZGQwMWM4ODQwMjFkNDAyNWU2NWQzZjkgbGVnYWN5LXRydW5rCiszMDAxOCA5MTBmYjY2YzNiODFjYmNlM2I2NThjYTJmYjJiNjE5NTFiZDk4YTVkIGxlZ2FjeS10cnVuaworMzAwMTkgZTQyNzMyZTI4OWI5YTQxNmRjYzY2NmY0ZDNlNmQ5YzhhMzRjN2Q4NCBsZWdhY3ktdHJ1bmsKKzMwMDIwIDU4NDQwZDBiOWI0ZWE2YzdjNmJjYzgyZDlkMmVjYjU1MmFlMjlmMDYgbGVnYWN5LXRydW5rCiszMDAyMSA5NzU0ODJkNWViNWNlNzk0ZDUyMTNlNDgyOGI5NTA2OGU1N2VmM2E4IGxlZ2FjeS10cnVuaworMzAwMjIgOTk3MGQ3Nzk4MGEwZTJmYjkzOWM5MDk5YWI3MzQwNTQzOWJjNDQ0MyBsZWdhY3ktdHJ1bmsKKzMwMDIzIDhhNzVjNjZiZmExNGRlNGJhNzJhY2M1YTA0NDllZjlmYTQ2MDBjMjggbGVnYWN5LXRydW5rCiszMDAyNCAwOWM3ZWQxYjdhODczOWQ4Mjc5NjcyMjhjNjAxNGRkNzhkYzc2MTQzIGxlZ2FjeS10cnVuaworMzAwMjUgNjg3YjRiMTY1MjY4Yzc1OWZkNDc3ZTI4OGViODU1MGJiNjIyMGE5NiByZWxlYXNlMjItbWFpbnQKKzMwMDI2IDY3OTEyZDgzNzk5ZjczYzBjZTk1NzE2NGI5MDFkMjRkMDZkYmQ4YWIgbGVnYWN5LXRydW5rCiszMDAyNyA4YjM2MDFhNjIzMzYzMzJkZTI0YjA2YjM0YmZmNDU3ZTk1ODY2ZTI3IGxlZ2FjeS10cnVuaworMzAwMjggYjljOTEyZTJjM2MwMDYzZGM5MGI1NDU1NDA1MWJjY2FhODgxODRkNyBsZWdhY3ktdHJ1bmsKKzMwMDI5IDBjOTk1Y2QwNzAyNjc3MTk2MDNmYTcxM2Q5NWNlYTQ5M2NmZjJjMWYgbGVnYWN5LXRydW5rCiszMDAzMCA0ZTZhYzJmZTY4ZjBiY2E4ZTNmMTkwNjA5YWE4ZjAzNzkxZjg2YjdkIHJlbGVhc2UyMi1tYWludAorMzAwMzEgYzg4NGE2YzQ3ZTA2MGU4YjFmZjAzMDM5ZWU1NGI5NTYwY2RmMzljMiByZWxlYXNlMjItbWFpbnQKKzMwMDMyIDRiZWJmMWExOTMxOWM0MTVjZTkzYzNkZDdjMDE0MzhlNDBmNmQ3N2UgbGVnYWN5LXRydW5rCiszMDAzMyBhMzZkZmZkNzUzMDA5YjhlZjNlZTkyYTNkODEyNzBhNTk3ZTJmODg2IHJlbGVhc2UyMi1tYWludAorMzAwMzQgMjQyYWQ1YzU5MmNjMmFmZGE4NWRhMGJjMjkzYTFlYWQ0MmI5ZGI4NCBsZWdhY3ktdHJ1bmsKKzMwMDM1IDRiZTYyZGM5YTNlN2Q3NDkyNjBjNDMxNDhjNzI3ZGY1NzVkMDc4YWUgbGVnYWN5LXRydW5rCiszMDAzNiA3MDFiNzk3YmJkYzhmYjQ0NjBkMGUzNTMyY2MwYzE0MzEyMmE1NjY5IGxlZ2FjeS10cnVuaworMzAwMzcgMGRiZjk4ZWUxMThlMjY5NTNiNjE3MWM0ZGRiOWE4NGJhNDVlYmM4OSBsZWdhY3ktdHJ1bmsKKzMwMDM4IDhmNzQzZWJlNmM2NjMyYjAwYTNjYjJlZjEzN2NjNjc0MmZkZWQ2YTggcmVsZWFzZTIyLW1haW50CiszMDAzOSAxMmJjNGEzZTQ1YWY4YTI0YzFiOGVjZmViODZkYjg1ZGQ3MmI3MzQ4IGxlZ2FjeS10cnVuaworMzAwNDAgODUxYzYyOTIwNWQyZjNmYWUzMmE4NDQ0OTg5MzQ4ZDZlMDk4OTg1OSBsZWdhY3ktdHJ1bmsKKzMwMDQxIGI1NjZiZThiZmMyM2M3OTAyNjRkZTBjOGJkMjUxZDM1NzFkYTQ0YzYgbGVnYWN5LXRydW5rCiszMDA0MiBmYTY1Zjk0ZGM0Y2RiYzc0NTkwZjU4MDg3NTAxYmQ0MWJkMWUxNTRjIGxlZ2FjeS10cnVuaworMzAwNDMgYTlmNmMwMDZhYTQ1ODg2OTA5NmM0MzhmNTMxZmVmY2NlNGI1ODhkNyBsZWdhY3ktdHJ1bmsKKzMwMDQ0IDcxNWUyODg4ZjM3N2ZiOTJlZDIxM2ZjNDU5Y2FkYmNhZDA2NDg3NjggcmVsZWFzZTIyLW1haW50CiszMDA0NSAwNjAxYTkwNTU4ZmRiYWYzOWVjYmQ3ODZlYWI2OWY4NmI1MTU2MzQ5IGxlZ2FjeS10cnVuaworMzAwNDYgMzQyYzM0YzQzOGEyNjA4YTE1NTQ2NWZhMmFlNDgzNjA0YzZlYTVlOCByZWxlYXNlMjItbWFpbnQKKzMwMDQ3IDgyYjlmNWM3ZDAxYTE0NjYyN2ZlZTY4ZjRhYmE0ZjVhYmFkZjgxYTUgbGVnYWN5LXRydW5rCiszMDA0OCAyYWJhMWFjNDc0NGM5Njc5Mzk1NTJmZWU4ZGJkYjU3ZjAwMjVkZTgwIGxlZ2FjeS10cnVuaworMzAwNDkgY2I4Y2ZhZGY3NWEyN2JmOGI1M2UzYTA2OGIwNzk4YTFlOTU4YTU5MiBsZWdhY3ktdHJ1bmsKKzMwMDUwIGQ3NTVkNDI5MmYzZmZiMTJmYjgxN2M3MDNlMjI2N2ZjNzlkNmUzNTAgbGVnYWN5LXRydW5rCiszMDA1MSAyOWU4ZGU1OTc1NmE0NWI2MmVkZmNiODgyNjhiNTBkOTEwZjdhYzQ5IHJlbGVhc2UyMi1tYWludAorMzAwNTIgMWQ5ZTMwYzA1Y2RlNGNiMjY5YWMxNWRkZWM2MTdhZGUwNGJkN2I3ZSBsZWdhY3ktdHJ1bmsKKzMwMDUzIDkzYjVjYTk0MjNlYjI3OTViZDdhMzE4MTMzMTEzYjk1N2ZkNzBhNTIgbGVnYWN5LXRydW5rCiszMDA1NCA3YWU5YzM2Y2JjYjY2YTcxOWJlY2E4MDM0OTBmMGI4MjcyZWEzZmUyIGxlZ2FjeS10cnVuaworMzAwNTUgNDA1MjM5YTdlMGQ4YmM5NDg4YzdiODZiYzFhYzJiZWIxNjU1MWE1YyBsZWdhY3ktdHJ1bmsKKzMwMDU2IDhjYTgwODQzYTY3MTYxNzU5OTcyOTBlOTZhZGEwMmNhZDk3NDMxY2IgbGVnYWN5LXRydW5rCiszMDA1NyBlODk0MGQ0Y2Q4Y2FlN2FlMzZmY2ZiZmZlNjY0NzNlM2RlYThiMTZlIGxlZ2FjeS10cnVuaworMzAwNTggZDRiNzY4MTdjOWU2M2M2NTEwM2Y3YzQzM2U5MzcxNTczZmFiMjYwYSBsZWdhY3ktdHJ1bmsKKzMwMDU5IDkyMDZiMDA0ZjE1MmM0M2Q1YTFlZGZjMmQyM2IyZjBmNTRhYmFkNTQgbGVnYWN5LXRydW5rCiszMDA2MCA5NTI2ODdlYTljYjEyZDk4ZDY2MDFlNGM4MDJjZDczNWM0YTE2OWE3IGxlZ2FjeS10cnVuaworMzAwNjEgODk5MWY3ODgxN2M3OTAwNGEwYzgxNzNmYzk0Y2IxNjJkNjMxOWMxOSBsZWdhY3ktdHJ1bmsKKzMwMDYyIDRlOTRhYTA3Mjc2ODYyMDU1ZjQ1NDliMmI5NjZjOWQxNmU4NjRkMGYgbGVnYWN5LXRydW5rCiszMDA2MyAzZjQzODNhMDRiNjI1NGIzNmEyZTMzMDJmNzdkOGJkNzc5MDM1M2VlIGxlZ2FjeS10cnVuaworMzAwNjQgZTY0NDI1YmI5NGQ4OWEzMjBjOTAzYmI3ZjExMjkyNzczM2IyZWQ1YiBsZWdhY3ktdHJ1bmsKKzMwMDY1IDgxMDMyZTk3YmEzY2EyMDAyMWQ1YWY5Nzk5ZjFiMTAyMGQ5MjgxMDggbGVnYWN5LXRydW5rCiszMDA2NiBmNWI0ZTE3NzQ5NjE3YTk2MDEwNTc3ODUyNDFjZWU0YTZiZDgwMDdjIGxlZ2FjeS10cnVuaworMzAwNjcgZjlkNTE2YzYxZTdiOTMyY2Y2NWY3ZWE4ZjcwNTk4MTQ5NTE5NTEzOCBsZWdhY3ktdHJ1bmsKKzMwMDY4IDYxNWEyNWE2ZWI1YmFhYzY2NmZiNTQ2NTRiYTUzZTliYTUwNTFjMjcgbGVnYWN5LXRydW5rCiszMDA2OSBjMjM0ZjQ4ZGUxMzhmNDk5YjBkNGQ5ZjM3NGNlNzUxYmUzYjRhNTI5IGxlZ2FjeS10cnVuaworMzAwNzAgMGM2NDZiYWVlYzU4MjMyNWJiMWQ5NDBkM2Q2MDkxMGIxNmVkMzI1ZCBsZWdhY3ktdHJ1bmsKKzMwMDcxIDIxMTAzODUwNWU1NmM0ZWI5NzNhYmI1NmEwMmUxMjNhOWIzNzcyYzQgbGVnYWN5LXRydW5rCiszMDA3MiAwNTYzODc3Njc4MzI1NTk4MDFhYjUwMzk4ZmNkYjNhYTViMzM1NmNhIGxlZ2FjeS10cnVuaworMzAwNzMgYzM1NzY4ZDc4ODNlNDg0N2U5ZWM2MGJkOWIwYjYyZjI4YTI1YTIzNCBsZWdhY3ktdHJ1bmsKKzMwMDc0IDMwODRiZjhiZDExYzBhYTYwYTNmMzYxOGYxMDRjOGMwN2RlZDI0MzQgbGVnYWN5LXRydW5rCiszMDA3NSA3ZGRlYTRkZmE1MTlkM2FkOGU2MDJhOTg0YjFlZjczMjI3NTcxYTY2IGxlZ2FjeS10cnVuaworMzAwNzYgNTZkYmQ5MDc5YTEzZWQ2ZWY3NDFhZjU2NDdhYmIyMzQ2MjAxYWRiMCBsZWdhY3ktdHJ1bmsKKzMwMDc3IGVjZWE4NDEwMTc4ZTA2NWIxMjc0MGZlMzE3MWY2MWY3ZDVkMmYxMDkgbGVnYWN5LXRydW5rCiszMDA3OCA3NWJmYzI0ZmQ3NDg1MGQxN2U5NTIzMjVhYjU1ZGQ1Y2M3NTZhNjAwIGxlZ2FjeS10cnVuaworMzAwNzkgY2MwNWMyYzg2NjBlMGM2OGFjY2JjNTZiZDhlNjg4NzJkZTU1ZjE2OSBsZWdhY3ktdHJ1bmsKKzMwMDgwIGMxNjNlZDE3ZjhiYTM4NWFhODdjMDM0OTJjNTRjZDdhMGU1MTZkY2YgbGVnYWN5LXRydW5rCiszMDA4MSBiZmIyNjY0Y2RiMWJlODdjMDFkNjFkZDQ4YjA4NTIyMWFjZjYxMDM3IGxlZ2FjeS10cnVuaworMzAwODIgYWY1MTE5YmUyMjFmNDM5OTkzZjNjZDQyYmM4MmMzNWVhODJlMTQxOSBsZWdhY3ktdHJ1bmsKKzMwMDgzIDM3OGNlMDIwZDllNjhjNjc1ZjQ2NmUxMmViMmE0ZTU1Y2QwZTI4YmIgbGVnYWN5LXRydW5rCiszMDA4NCA5ZGIzOTZiY2U0ZTc1ZjIwNWI3NDMwMmVmMzhkZmM0MTY0MWExNjIzIGxlZ2FjeS10cnVuaworMzAwODUgZTM5ZTc0YWVhMmZiOGE3MzQxNGQ5ZmRjNWQ2NGUwZTdlNTljZTgxYiBsZWdhY3ktdHJ1bmsKKzMwMDg2IDE0ZjUzYjZkN2Y1OGIyMDRiNmRjMzhiZTU4ZjliZTNiM2E2NTRjM2IgbGVnYWN5LXRydW5rCiszMDA4NyAyZmFiMGI2NDg4YjUxMGFjOTM2MzI5OGY1MmNlMTA1MDU0YjI1YTM1IGxlZ2FjeS10cnVuaworMzAwODggNzRkMWFkNjFmODQzY2IyZmU0ZThlMmJjMDM4Y2I4NzVmZjZiNGEzYSBsZWdhY3ktdHJ1bmsKKzMwMDg5IDg3NzE5OTNjOWFhY2FkYTQwZmI4MTIyYzQwMzU5MmM2OGE1MmRiNGMgbGVnYWN5LXRydW5rCiszMDA5MCA5N2Y4MzU0MmY4ZWVmYWFlMWRmNDFiYzRlOTU3OWRiOTFkNGFmMDEzIGxlZ2FjeS10cnVuaworMzAwOTEgMjhiYzJkM2FmOTFkYjY4OWQ0MDgwMTgyNzVjOGY2MjMyNTY2YjgxNCBsZWdhY3ktdHJ1bmsKKzMwMDkyIDJjN2JkYmI1MGU3NjI4Y2E1MDMxM2RiZDFhMDVkZWVkMDA4ZjI5MGEgbGVnYWN5LXRydW5rCiszMDA5MyAwMjc4NTI0OGUwMGE2ZjQ0YzdmMTU2YjBlZDI5ODExZDJjMTQyMTdkIGxlZ2FjeS10cnVuaworMzAwOTQgMjBlMDc1NWYzNTU0MWQ2OWVlNjQ5NzcxOTEzZTk2MDdiMDkxOGNlMSBsZWdhY3ktdHJ1bmsKKzMwMDk1IDNiZTRmNWQzNzdkOGIyYzU0YTc2NTg5OGJlODU0YjhiMDhjOTVkODQgbGVnYWN5LXRydW5rCiszMDA5NiA5ZTc1MWVlZTgxZjUwNGU0NTI1ZTY0NGI4MjAxNGE4NDk1MWViYWM3IGxlZ2FjeS10cnVuaworMzAwOTcgYjYyOTk4Zjk4OTczZTMzMWQ4MWFjYWI3MTJmNDEzZTIxZjEyZjIxNiBsZWdhY3ktdHJ1bmsKKzMwMDk4IGNiOTNkOTI4N2I0ZWFlYzRkZjMwZTg2NGY0MTI5Mzk5MGEzZDA0ZTggbGVnYWN5LXRydW5rCiszMDA5OSA3ZDE5Mjg3NWExMmY3OTkwMmFiZjM2MTllMGJkYWU4NTY1ZDI2NGRhIGxlZ2FjeS10cnVuaworMzAxMDAgMTk1MDdhMWQwMjU0OGViYTkyZDRkOWE0Y2UxZTkzYjc0MTBiYzZiYSBsZWdhY3ktdHJ1bmsKKzMwMTAxIDgwOTZkY2M3YWY2NWJiYjYxMDNjZjZkZjQ3YjE2MmRlMWMwNjRjZjUgbGVnYWN5LXRydW5rCiszMDEwMiA2MzdiMTBiNTJlMDJlNjdmMzQzNjFkY2IwYWExNDBjYWY3OTQwMjZlIGxlZ2FjeS10cnVuaworMzAxMDMgYmExNTc4YmU1NzA2ZWQ1ZTk1ZGIxNzM0YzhhYzAwYzhiN2U1ZGU1NiBsZWdhY3ktdHJ1bmsKKzMwMTA0IGU0MWVlMmI4ZTczZGVhY2VmNmNmMWU2MTc3NGFlNjViNmUzMjJhOGIgbGVnYWN5LXRydW5rCiszMDEwNSA3YmFiZGFlYTdkMTlkN2YzYTFiMmExZDhiOWUyOTUxMGUwMjUzZWI3IGxlZ2FjeS10cnVuaworMzAxMDYgOGRmYzBmYzRjMTRiNTEwMDEwMjIwYjUxZWY4MjQ1YjU5YTcxNmI0YiBsZWdhY3ktdHJ1bmsKKzMwMTA3IDk4MTY0NjY2ZDJhODk3MmE0NzVmMjkzMWUzN2I2MmE5YWEwNDU2YmMgbGVnYWN5LXRydW5rCiszMDEwOCA1OWRkOTI1N2JjMDMxNmY2YWM3NjVjNWUyMDgxYTRjZTI3NzllOGYyIGxlZ2FjeS10cnVuaworMzAxMDkgZDdkNTI1ZTMwY2MwMjBmNjE1OGRmMDVmYmRlODdhZjZjNWRmY2RkMSBsZWdhY3ktdHJ1bmsKKzMwMTEwIDg5MGFhOTNkZDljMzhlNzMyNjhjNDE4MzQ5ZDViYmU2MDIxZGZhZTAgbGVnYWN5LXRydW5rCiszMDExMSBiMGJmMzYwNDI0NGZkNTljZDNkY2M3YTc2ZGIwMzA4ZDkzZWI3MmQ4IGxlZ2FjeS10cnVuaworMzAxMTIgZmQ0NTVkZjU1YjEzNWJiNTMzZGI4YjhhMTZkMmExZTExYjVkNzMzZSBsZWdhY3ktdHJ1bmsKKzMwMTEzIDk2YjhjOGFlNzI2MmVkZDY4ZWU4ZmI4YmUzOGM4MDM3MjJlZTAyZDcgbGVnYWN5LXRydW5rCiszMDExNCBjNjliOGU2MWU2OTViZDFlODlkOGY0MDQ0M2U5NGY4YmM5NzYzMjFiIGxlZ2FjeS10cnVuaworMzAxMTUgMzQyOTk1NTcyNGIyNzkyMmQ2YTdhZWU1NGVhMmJiODQ3NWIwMTk1MyBsZWdhY3ktdHJ1bmsKKzMwMTE2IGZkNmJlODdlNWMyOTdlNThiYjcwM2Y0MDYwMzBlOThhZjgxMThkNmMgbGVnYWN5LXRydW5rCiszMDExNyAwZmY0NzM2MmJiODExNGEwNDZlNzkwYTQwZjg5ODI1MGQxZTlmMzhkIGxlZ2FjeS10cnVuaworMzAxMTggYmI2ZWEwNzkwOTQ3OWE2M2Q2NzNjNzBjY2JlNDg5YzI3OTQzODU1NyBsZWdhY3ktdHJ1bmsKKzMwMTE5IGU3ODNjZGZhMGI0MTlhMWI0MDRiMGVmYmEzOGE1YTZlZTZiMmYwOTcgbGVnYWN5LXRydW5rCiszMDEyMCBkMjMwMjMzOWE4YWQ3ODQyMzRjYzY1YTZlODlhODgxMGQ1MzdiOWE5IGxlZ2FjeS10cnVuaworMzAxMjEgMDJiYTQ2NjNjYWQyMTI3YTYwYWU2YjBhMmZmOGZhMmM2ZDI2OGY0MCBsZWdhY3ktdHJ1bmsKKzMwMTIyIDQxMTg4ZTM4OWM2MTQ0ZjJjMWU5Mzg4YTMwOTNlZGE4YzQ5YzU2MmYgbGVnYWN5LXRydW5rCiszMDEyMyBkMTc2Y2JmZDM3NjU2MDBlYWEzOTU3NzU5ZjQ1MTgxZDlmNmViYjFhIGxlZ2FjeS10cnVuaworMzAxMjQgOTI2N2RmZmZmMzJkMzFkM2UxNjcwZmIyY2Q1NmZlOWY5YmFmMWY3NyBsZWdhY3ktdHJ1bmsKKzMwMTI1IGY4ODNlZDdiOTNjODY4ZGIxMmVlNzQ0NDM4ODVmYzEzODVmNTRmNGIgbGVnYWN5LXRydW5rCiszMDEyNiA2ZWZhODIxNmRiNmE4OTI4MjdhNjFmYWQ2MjczYjc4ZTIzNDAwYzFhIGxlZ2FjeS10cnVuaworMzAxMjcgN2IxZDEwN2U2M2FlNmY3NmE1ZTUyMDA2ZTdhMzhmZDcxNTM4YTRlYyBsZWdhY3ktdHJ1bmsKKzMwMTI4IGNhYTI0NWFmNzc4NjQxOGQ1M2FmODA1YjQzMDYwMDkwNWQ3YmVlYWYgbGVnYWN5LXRydW5rCiszMDEyOSA2ZTJjMmYxMjIxZTUzNTI4YjZjYmM5ZTQ0N2NiMWEwZmRkMGRiYjZkIGxlZ2FjeS10cnVuaworMzAxMzAgNDgzNGY4MzY4MDM2Mzg2ZDdjZjJkMDNhNDhmZjkxNDZjOWM5MWVmZSBsZWdhY3ktdHJ1bmsKKzMwMTMxIGE4MDAwMTVlN2NmMmE2ZGIwOGI2NzYzM2Y2ZDBjMDIwNTE3Yzg5NzcgbGVnYWN5LXRydW5rCiszMDEzMiA2MWIzZDE3OWY4NjhlNzQxNTY5YzI5NjRhYzFjMWI2YTQwNDEwMWMwIGxlZ2FjeS10cnVuaworMzAxMzMgZjM1NmZjYjcwZWFlNTVkMzczNzFmZWZmMDU5MjMzM2RhNzhmOTc3OSBsZWdhY3ktdHJ1bmsKKzMwMTM0IGI3YmYzOGQ0NDU5OGY1NTg5YzA5NDNlODVhYmQ3YmNiZWY0Yzc1NDcgbGVnYWN5LXRydW5rCiszMDEzNSA2M2Q3YjVlMzk2ZmI4OWQxZWU4Y2ZkNzY4NzYwZGFiNjcxMmRkYmQ4IGxlZ2FjeS10cnVuaworMzAxMzYgNDBmOGI2NDhlNzY1OWI3OTE1NDA3MWQyNjQwMmEyMzNkNzk3NzJmYiBsZWdhY3ktdHJ1bmsKKzMwMTM3IGQ5OWUzOGJiNmRjZDM1YmJhYWJlMjdhMWI3ZWY0ZjNhY2JmMjZiZmQgbGVnYWN5LXRydW5rCiszMDEzOCBmODM4YmM5MDU2Y2MzNzlkNTljMmIyZmZlZTVjMDMwZTEzMTg2MDYxIGxlZ2FjeS10cnVuaworMzAxMzkgYjEyZTMyNmI0ZWEyNDdmNGM1NzUxN2M4MTY3YTEwZjFkYmIyODcyYiBsZWdhY3ktdHJ1bmsKKzMwMTQwIGU4ZGMxYTBkNmY0ZDRkMTBhNDBkZjc1NGI5NWQyOTAyYWE0MmQ3Y2QgbGVnYWN5LXRydW5rCiszMDE0MSAzMzhlMDI1ZmRlOGI1MTZlOGVjOWJiZWQ1MjIyZGVkMzlhNWU5ZTkxIGxlZ2FjeS10cnVuaworMzAxNDIgZmUyZDQyMjM4NWIxZmVlNjZmOTk4N2FiNmUwYTk5MjIxYmMwMTZlNSBsZWdhY3ktdHJ1bmsKKzMwMTQzIGNiMDZiZmM4ODc3YjI0OWIyY2Y5ZmZkOTU2ZWM2M2QwZmUxZmVlOWUgbGVnYWN5LXRydW5rCiszMDE0NCA5OGQxMTg1NWI0NmNjZWVmODM0M2JkN2Y0ZjE1NGIzMzI5ODY4YjIzIGxlZ2FjeS10cnVuaworMzAxNDUgZjc2NzE3NzA3YTZkN2EwOTJjMmY0MDJiMGZlYzZiYmIxOTIzYTZkZSBsZWdhY3ktdHJ1bmsKKzMwMTQ2IDM3M2QwYThlZDZiZTY0YTVkMWYxZmRmNGVlMDllYzg3YTNhMjk0NWIgbGVnYWN5LXRydW5rCiszMDE0NyBlZDI4Yjk3NTJmOGQyYWJmOGRlNTRmNzc0YjJkYWJmYzVhMDM3ZDBlIGxlZ2FjeS10cnVuaworMzAxNDggMTMxMjI5Nzg4N2EzZjdlMDZlYTliM2NlOGNkMWRjN2EyNWQ0N2MzOCBsZWdhY3ktdHJ1bmsKKzMwMTQ5IDMwMGY5MjZmMmIzZWI1OGZkNDlmMDQxZTNjNGQyM2IwMWE3OTZiYWYgbGVnYWN5LXRydW5rCiszMDE1MCA4ZGQyNWE2ZjU5MTM5MDRjN2RhODMyMzZmN2ExNzRkNmU0NDRmOWIxIGxlZ2FjeS10cnVuaworMzAxNTEgNWI3MTVjYWQzNGQwODI1ZGMxODMxOGVhMWRiZDRlOTFmZjc3MDhkNyBsZWdhY3ktdHJ1bmsKKzMwMTUyIGM3ZWM4YWQwMjM0ZmFmNGQyMTk3NTE1MDdiNTUzZGQxZjFlZWJjMzYgbGVnYWN5LXRydW5rCiszMDE1MyBiYzkwNTZkODQ3ZWY3ZDQ2ZmFlNTk1NGRiYTVlZjdlMjk2MGI0ZmRjIGxlZ2FjeS10cnVuaworMzAxNTQgZjdkOGQ0OWU4ZjVkZTI3Y2IzYzFlNzkwMTYyOGMwZTY2ZTUyMzgxOSBsZWdhY3ktdHJ1bmsKKzMwMTU1IDQzYjU0YzJiYzRlNjAyMDVkZTA1YWFkNzcwMjUzMGYwYjJkNDg4Y2MgbGVnYWN5LXRydW5rCiszMDE1NiA3OGQ4NzJjZDA2NGMyZWRjNDkwY2Q5YzY5MGE4N2M1NWUzNDNmMjkwIGxlZ2FjeS10cnVuaworMzAxNTcgYWI1MGEyMWI4N2FlYTEyZGYxODExYTBhZTRmNWFiZDgxMWUzNDVkYSByZWxlYXNlMjItbWFpbnQKKzMwMTU4IGJjNjY2MmJhM2E3NzU1YmJhNTY4ZmEyMmNmZmRkM2UxN2UyOWFiYWYgcmVsZWFzZTIyLW1haW50CiszMDE1OSA1NzkxMDE5YjZlNGU4ZTJiZWVhYzRkNGZhYzE2ZWIwNTRkOWM4YmRlIGxlZ2FjeS10cnVuaworMzAxNjAgYzExYTZlMWNlZGUwZGUxOGUxNWM0MWJhOTY1ZDRmOWIyNjEzZGYyZiBsZWdhY3ktdHJ1bmsKKzMwMTYxIDYwNTllNDFiZDc3YTNlNTc5M2E4NWM3NjM0Y2RmY2Y1N2Q3OTZhOGIgbGVnYWN5LXRydW5rCiszMDE2MiBhOTk3NGE0OGE0ZDZjZjlhY2MwZjUyMmEzYTc0YmY2NWIzNmRkYWIyIGxlZ2FjeS10cnVuaworMzAxNjMgYTIwY2I1YWJhYjZiNzhmNWE1Y2NmYjNhY2FkOGUwNzIxNjQ3ODc0MyBsZWdhY3ktdHJ1bmsKKzMwMTY0IGFkM2Y2NmU3ZmIxMDQyMDEzYTk0MWExZjBmZWM0NWZmMmU0MGY3NDMgbGVnYWN5LXRydW5rCiszMDE2NSA2YjM5MDU0OGM2OTgwMDQwYjgwMjFmZGNlMGUzZTg0ODFiMzAwN2RkIGxlZ2FjeS10cnVuaworMzAxNjYgYzc0YjY5YWI0NzQyYWI4NDg0NzRmY2Y1NzhlY2RjYTkyNjgwYjNlZSBsZWdhY3ktdHJ1bmsKKzMwMTY3IDIzMThmNGJiMGJjNWNkODViZWU3NGRiMGUyNWMyMGU4MjFiY2RiMjggbGVnYWN5LXRydW5rCiszMDE2OCAyZTBkYzllMDgyMjI4OTZhMzQyNTg0MzBhOWFjMDAzZTJlODE1ZWI5IGxlZ2FjeS10cnVuaworMzAxNjkgMzZjZDI2NDFlODI2NzRjZmM0MmE5ZTA4N2IwZjBhODYzN2NhMTUyYyBsZWdhY3ktdHJ1bmsKKzMwMTcwIDQxNzNlNDNlZjQwY2NlNjZmNjNkZGRhY2YxZGMwNzIzZDA4NWVmNGIgbGVnYWN5LXRydW5rCiszMDE3MSA5NzUzMzNkNDBiZjgzMmE0MDJhMDZiZmE5NjYyYTY2YWJhMDk4MDE1IGxlZ2FjeS10cnVuaworMzAxNzIgYzQyODZhNmFiMDBjOWUzNWI5YzZhYzI0Y2VhOTdhMmRhZGE4MjFhZCBsZWdhY3ktdHJ1bmsKKzMwMTczIDQ5Y2VlZTAyNmQ2NjNlMjA4OWE0NDdkMWEyNDMzMzA5YzU0OTU5NTEgbGVnYWN5LXRydW5rCiszMDE3NCA1MWU3NDMyMWFkM2Q2MDczZGIzOWY0MDA5N2NmYmMyODcyZjZlODk4IGxlZ2FjeS10cnVuaworMzAxNzUgYTIyM2UyNTU0MTkwMWNlNzc2OGM2Y2VmNWVkNDMxOWM5NjlhNzIxOCBsZWdhY3ktdHJ1bmsKKzMwMTc2IGFmNjYwY2FiMWNiZTkxMWRlOWNlZmVkYTBiNDdkZDkxYTc2OTJjNDAgbGVnYWN5LXRydW5rCiszMDE3NyBlNDA0YmJlZmYwODM3MWIzNWNjNjFmNTUxN2ZiNjQ2NGZlZjFiMzQzIGxlZ2FjeS10cnVuaworMzAxNzggM2VkNDdiMDc4NTA4MTlkMWRhZjUzM2M3ZmJlMTYwMDk2ZDQ1NDYzZiBsZWdhY3ktdHJ1bmsKKzMwMTc5IDQ1YWIzMTEyN2JmOTIyYjk5YTU0MjllOWNkODE2MzE1NjQ5MzRkMTggbGVnYWN5LXRydW5rCiszMDE4MCAxMDFmZTMyZjU2ZmZlYTU0MDhhODAyOGY3MjJkZDI2NTNkNTcxZmQ5IGxlZ2FjeS10cnVuaworMzAxODEgYmZlMzg5NjFjYTQyYzg4NmQ1MWQzNzE4YWY5OGU5NTExYzEwMTc1MyBsZWdhY3ktdHJ1bmsKKzMwMTgyIGY5MWQ3OGUxOWM4NjZmOWU2OGRhNWVkOGZhZmQxYjE4OTIxZmU0OTYgbGVnYWN5LXRydW5rCiszMDE4MyAyZWQzNGYwMWM4MWNhMTJhN2UzZjcwMGIxYzNhODkwMDc5YzQ2MjA2IGxlZ2FjeS10cnVuaworMzAxODQgZDY0MjE0Njk0MDgzYmViZDRkMjg0ZGM5YzBkN2JkNGI2MzU1ZmIyOCBsZWdhY3ktdHJ1bmsKKzMwMTg1IDFlMTcwYTk1YjY0ZmRlZmI4ZmUxNjFhOWIwMTA0MWJmYTE4NDViYTggbGVnYWN5LXRydW5rCiszMDE4NiAzNTkzZjJiOTFkN2Q2MDVlNWM0NTgwOGU4MzQ4ZTgyYzFiNmRiNTkyIGxlZ2FjeS10cnVuaworMzAxODcgODkzMTdkOTNmNjM5NzM5ZTE2NjJjNjJmY2YyNjQ0YmU0NzUxZDE2ZCBsZWdhY3ktdHJ1bmsKKzMwMTg4IGQzNDhiMTdjZWFhZDY5MzYzZjk4NmNjMGY2MjdhYWI3MThkMmNiZDUgbGVnYWN5LXRydW5rCiszMDE4OSBkOTM5YWRiY2E3NzRmMDBkYjlmNGIyMGM4M2QxMWEyNDQ3NWM3MjViIGxlZ2FjeS10cnVuaworMzAxOTAgMDRiM2E5ZjZiZTQxZjRlNDJlNzAxNDhiMjU3MDkzMGNmY2M0YTZiMyBsZWdhY3ktdHJ1bmsKKzMwMTkxIGVhYjZkN2M4MDM0MTkxNzlkMjAyMTkwYjljYTNiOWE2NGMzYTg2YmIgbGVnYWN5LXRydW5rCiszMDE5MiAyZjUyM2FlOTBlMDYwYzg3YjNlNTZhMmIzNDI0YzRmNjJjMmMzMDkwIGxlZ2FjeS10cnVuaworMzAxOTMgZTgyMzI2OTk2NDgxYjIxMDQwMzhhNjA5MzY0MmIwMzg2ZTBhZjc3ZSBsZWdhY3ktdHJ1bmsKKzMwMTk0IGEzNjAwYzRlY2M4YmYyYzIyYWJlNDljNmMxNDUwMzM5ZGU3NGE0NzQgbGVnYWN5LXRydW5rCiszMDE5NSBmNTVmNWUxZTMwYmM5MjU3NTk3YTMwNDUwOTliZjEzY2FiNTA1NjZmIGxlZ2FjeS10cnVuaworMzAxOTYgZGZjYzIwNTdhNzU1YWU3YzZmOWRjYjgwODBkZWFlM2RlMDUxZTVkMiBsZWdhY3ktdHJ1bmsKKzMwMTk3IDUzODQ0N2M5ZDU0M2RiMmI0MDUzNGYyYTRiZDUzOTU3NTc0ZjJhOTUgbGVnYWN5LXRydW5rCiszMDE5OCBhMTJlMTcyNzg1MGFmOWIwNjE1ZmNkOWZkNDRjZDM1NDAyNzkxNTM3IGxlZ2FjeS10cnVuaworMzAxOTkgY2ZkNWE2ODI5MzdlMGM0MzY0OTg0YWU2YWI1ODM1YWJmMGIzZWI0ZSBsZWdhY3ktdHJ1bmsKKzMwMjAwIDkyNGM0ZjIyYmFjNzk0OTFjYzlhOWY4MjE2YWQxYTc3YzY5Y2QyYjMgbGVnYWN5LXRydW5rCiszMDIwMSBhNTQzNjNlYTY5NDYwNTY5MWEzMzA3NGIyYTFhZTkxMTdjNDlkOGRkIGxlZ2FjeS10cnVuaworMzAyMDIgOTAxZTQ3Y2M4Y2FjYzgyMGYzNTUyM2U1YzE2MTBkZTk1ZWY3MDBkNyBsZWdhY3ktdHJ1bmsKKzMwMjAzIDk2NmI4Mjc5ZDFmYWQ4MTQ0YmUzN2IxYzk1MDM1N2ZjODhiZGUxMmIgbGVnYWN5LXRydW5rCiszMDIwNCA0OTY3NzkwNDcyZGJkM2VjNWZhOGJjMDJlMDJlYThjZDM3OWY1N2YzIGxlZ2FjeS10cnVuaworMzAyMDUgYzdjMmIyMjJiYjhhZThkNGM2ZmY1YzI4MjRjOGYyYzQzMGZhZWEzZSBsZWdhY3ktdHJ1bmsKKzMwMjA2IDVmYmE1MWYzNzI5YjJkZGY1ODVmM2E5OTJlOTEyYjg0YWI5ODhhNmEgbGVnYWN5LXRydW5rCiszMDIwNyA0MWJkMzdiZWYzYzc3M2JlYjUyM2RjMDk3N2U3MTJkN2I4YzM5NzM2IGxlZ2FjeS10cnVuaworMzAyMDggOWI0YzAxNGIzYTIxOGU3NmE5ZDk3NjBjN2Q0NTVmNDQ2YTdmYTQ0NiBsZWdhY3ktdHJ1bmsKKzMwMjA5IDU3M2U0ODJlZGVjMWE1ODM2OTE2YzJlYzFhMGJlOTQ0YzVkMWM4ZWQgbGVnYWN5LXRydW5rCiszMDIxMCBhMDNjZTVkOGYyOTc1NGY3NmM2ZmQ2OGM2NWUzMmMzODI2MTU5NWMyIGxlZ2FjeS10cnVuaworMzAyMTEgNzA5ZjkwNTQxNTg1MjE4NzQ4MDdmNmE3ZTAxMmViYjkxMjE3MmQ1MyBsZWdhY3ktdHJ1bmsKKzMwMjEyIGQ4ZmRhNDgxOGJmZDVmNTZhYTUyMDU3YmViZWY1MDE2MGFlZGIyOTAgbGVnYWN5LXRydW5rCiszMDIxMyAxNmFmZjcwNzdlNGJlZTRhYzA5NzBhYWFkMTQ0YzU4NDAxMjFhZWQ5IGxlZ2FjeS10cnVuaworMzAyMTQgMmI0NmQ3MjkyZjI3NzQzMGNmZmMzOGM0YjM2YWE5NjlkNWVjYzVjYyBsZWdhY3ktdHJ1bmsKKzMwMjE1IDZmMWY4NDIwM2VjZjBiMWE1NjU1MDdiZGQwM2M4ZGE4NWFiY2FjZWUgbGVnYWN5LXRydW5rCiszMDIxNiA3OGU4NTdlOWRkNDc2OTA1NWY0ODgxZDNlOGZiOTkxMzFjNDg2ZDI2IGxlZ2FjeS10cnVuaworMzAyMTcgYzY1ZThjYjkxZjRjMzZkOWRmOGI5ZGZkN2FhOGM3YjRmNjNiNmI4ZiBsZWdhY3ktdHJ1bmsKKzMwMjE4IDcyY2YwODlkNjM0YTE5ODQzNDkxMjczMzYyMjVjMWJiZjRlOTkwMDkgbGVnYWN5LXRydW5rCiszMDIxOSBjYWRmY2U2NmQ4NjE5YTZiYzM1NzlkNmEyMmFmOGI3YTU2YzI0NmY4IGxlZ2FjeS10cnVuaworMzAyMjAgMmYzZDZiNzlmMTFiZDNjNGRiZDEwY2FkY2IzODFmYmQ0NWYxYzk5MyBsZWdhY3ktdHJ1bmsKKzMwMjIxIGQwNTIxMTI3MzFhOGUyNWJmMTcyMWIxZjUxYzFmZTY5YTg1OTQ4ZjAgbGVnYWN5LXRydW5rCiszMDIyMiBiMGFjZjVkZTM0MjFjZTBmNmNhOTA0MWJkNzhlMmNjYWMzOTNlNTE4IGxlZ2FjeS10cnVuaworMzAyMjMgYzFjOGJkYzRlM2RiZGNmMGI5YmQwMjJhOGY4NDg4OGZlNTExYjA3ZCBsZWdhY3ktdHJ1bmsKKzMwMjI0IDA2NTg2NDA0ZWM0Y2RhMzAyMGQyNjllNWM3YjIxM2U3OWY3NjZlYjggbGVnYWN5LXRydW5rCiszMDIyNSAzMzY5Njg4MjFkY2JjZTFhYThkMDZkMDFkNGQ4Nzc3ZGE1OWUxMjRmIGxlZ2FjeS10cnVuaworMzAyMjYgZGI5ZmNhMTQ1MDU4NGI1M2EzZTkwMDA1OTNkZDk0MjcxMDlkODQyOSBsZWdhY3ktdHJ1bmsKKzMwMjI3IDYwYjM4OWE0ZGMwODU1MDFhZTQ1NTY3M2JmOTE5ZjM2NTFlY2FjZjIgbGVnYWN5LXRydW5rCiszMDIyOCBiOWU0NWI4MjhhZTExYTBlNTVjZWJlZGU2YjUwMmE5YjViOGQzNGE1IGxlZ2FjeS10cnVuaworMzAyMjkgNjVhY2VjOWNiZTY5MjI3ZTUyZmQ2YzM3MDA1NTA4YzYxNTU0YWRjNiBsZWdhY3ktdHJ1bmsKKzMwMjMwIDE2Mjg4YjA1NGZjM2YxMzMwZGI3OGE3N2IyNTU3ZThjNTMwZTMzMDggcmVsZWFzZTIyLW1haW50CiszMDIzMSA3YzE1YmY3NzI2YjI0ZTUyMjUwMGU0NmUwMDJlY2UyNTdjYWU2NjA4IGxlZ2FjeS10cnVuaworMzAyMzIgOGMzZWY1MjRmYWEwNjdmZGI4NjM3YWMxNTk1YzExZjI1NWZhYzliZSBsZWdhY3ktdHJ1bmsKKzMwMjMzIDk1YmMwYzA1MjAzNDUwODdkMzA1MjEzODM2YzI0OGE0ZjRlNDQyNTQgbGVnYWN5LXRydW5rCiszMDIzNCBjY2YwYjAyN2I1ODU2ZDU3YmYzNmI4ZDM2MTdlMzFkMzkwNjdkM2I0IGxlZ2FjeS10cnVuaworMzAyMzUgN2ZkMWJmMjBhMGMwZTljYmE1MTdmMmZjZDM2OTBkYjA1YWJjMGQwYiBsZWdhY3ktdHJ1bmsKKzMwMjM2IGMxMjcyZjNmMjhmNTE3OWIyMzNkM2M2ZTM3YzAwMzY0ZTYxNmNjMWMgbGVnYWN5LXRydW5rCiszMDIzNyBlY2MyN2ExYzMzY2E3OTg5NTJlMTJkZWMzMzgwMGMyYTFlZmRjYjM0IGxlZ2FjeS10cnVuaworMzAyMzggNjIwMDk2ZmQ1NTY0YzM2ZDAzNzY2M2VkYmY5NzRkY2I0MGM5ODVlMCBsZWdhY3ktdHJ1bmsKKzMwMjM5IGM2MDljZDQ5MDZmYjRhZWRhYzNjYWE1NDRhMjgyNzEyMmZlMjNlMDggbGVnYWN5LXRydW5rCiszMDI0MCA0OWQwMjJiNWZkNjQwNTE5MGY5NTY2ZjZhYmM1YzZkZDZlYTMzYzgxIGxlZ2FjeS10cnVuaworMzAyNDEgNGM5ZmU0OTA1ZThmYTA2YjI3ZDU5MjU3ZTc5M2Q2NGZlMjIwNDhjNSBsZWdhY3ktdHJ1bmsKKzMwMjQyIDZiMzFiMjZlNDE4ZGRjODQ1OWUyNmU0YTc3NWU4YWE5ODUwZDBiNWYgbGVnYWN5LXRydW5rCiszMDI0MyAwOTU0NDBiOTc1YTFjODcwNThmZjk3M2Y2MTZkOTU2YTQ3MTFkMzliIGxlZ2FjeS10cnVuaworMzAyNDQgYWYyMTdjY2EzYmZjN2MxMzQ4ZDg0ODY5YmQzMjkxOGQ0MjU4NGZkMyBsZWdhY3ktdHJ1bmsKKzMwMjQ1IGFkMjYzZDI2ODI1NTQ4MDI0ODA5ZTg2MmMxYzJkMWQ4MTNiY2E1MjcgbGVnYWN5LXRydW5rCiszMDI0NiAzNDZhMDcyNzBlODdkZDY0OWM4YjNjMjA4YTYyMDliYTNmYWZjMDhiIGxlZ2FjeS10cnVuaworMzAyNDcgYWVmM2EwM2E3OWYxMGUxNzdhZTBkN2NiNTZkMWVjNjRhZjVlMzA1NyBsZWdhY3ktdHJ1bmsKKzMwMjQ4IDhhYTc1NmU1YWNjYzg1ZmNjYzliMTU2ZmE3ZDhjNzRhZjI0NjdkY2YgbGVnYWN5LXRydW5rCiszMDI0OSBmYzdmZGVjM2ZiODYzZDJjOTEyOTNiYWFkNjM5ODJhZTBiY2NlNDAxIGxlZ2FjeS10cnVuaworMzAyNTAgMjQwZmRiZWY4YzYwYzM2YTBiODhhOGQxNjRkZmI2Y2I3YjlhZGRiNyBsZWdhY3ktdHJ1bmsKKzMwMjUxIDBmMTQwNWFjZTQzN2U5MjZjOWI4NDUyMmVmMmRhZDU4Y2MyYjIxOTYgbGVnYWN5LXRydW5rCiszMDI1MiA4OWRkNzRmN2FlMzI2YzBlZTMyZTQyMDRiZWJhZTBhM2ExYTc5NmI3IGxlZ2FjeS10cnVuaworMzAyNTMgZDE2MDgxNmI5MWU1ODNkMjMwZGJjOGQwNDg0YzUyNDU5ZWQ5NjgzOSBsZWdhY3ktdHJ1bmsKKzMwMjU0IGY4NWNiMDg5NTUzNWRlNzY4YTYwZDliY2VlMmYzMzc5OGY5NGIxZDAgbGVnYWN5LXRydW5rCiszMDI1NSBiYjRkZjAwMDBiNmQxYWM0ZTc3MWYzN2E1NTEyMTU1YTYxOWQyYjMxIGxlZ2FjeS10cnVuaworMzAyNTYgNDRkNzQ2OGQ2ZGI2ZTIzMzkxOGJlZGY4MDkwZjE4OTgzMzdkMjYwNSBsZWdhY3ktdHJ1bmsKKzMwMjU3IDkyYTQwNjExNWU3Y2QzNDE2NjZiYTI1MDY1ZjBlZTIyZDg4YmVjNGMgcmVsZWFzZTIyLW1haW50CiszMDI1OCA1ZWZlNmIwYWMwZTZiY2MyMGE1NjBhYjhmMzAwZGY1MGIyNTgyN2FjIHJlbGVhc2UyMi1tYWludAorMzAyNTkgYzU1ZTZlNjAxYjk5OGQ3MmI4OWE1NmI4MGRkYjNiZWJlOTYzZTYxOCBsZWdhY3ktdHJ1bmsKKzMwMjYwIGJjN2Y4OTEzZjVjYTg2NmNhZThhMjFkYmY3MWYyZjljYWVlNGY0NzEgcmVsZWFzZTIyLW1haW50CiszMDI2MSAzMDAxMzQyOWJiODQ1OWUzYjgwNjQwNzM2OWJjYmIxNDAwZWIzZmJmIGxlZ2FjeS10cnVuaworMzAyNjIgOGUyNzUxMmNjMTdkZGNiN2Q0N2I3MTdjNWJjNzRhM2Y2NjMxZGQ5ZCByZWxlYXNlMjItbWFpbnQKKzMwMjYzIDBiMzRmNTFlYWI0ZWE0ODdiYTFjMDFjZTk5NDEzNDZkNmE3MGVlYTEgbGVnYWN5LXRydW5rCiszMDI2NCA3YzUxOTZmMDE1MjRiOWU5N2MxODIyNjhjNjZkNmE3ZWU5NzQ3MTMwIGxlZ2FjeS10cnVuaworMzAyNjUgMmYyODQzNjA2MGM0NTY1NGJiODU4MWZjYzA3NTE0Y2EyYzU5ZTBhNSBsZWdhY3ktdHJ1bmsKKzMwMjY2IDE0MzkyMmE0MGZhYzZmN2RkNTAwNDU0NTg2OTUwYTg1ZTJjMzE5ZGQgbGVnYWN5LXRydW5rCiszMDI2NyBmYmM4NWFhYTI2MGJhMWFjNGQ1ODlhN2E1NGIyNjk3NTUxNWI3MDA4IGxlZ2FjeS10cnVuaworMzAyNjggODljOWM2YzQwNWVmOGM0MTVkZTg3ZjAxMzY2MDZkMDQ1NjBiNjZlOSBsZWdhY3ktdHJ1bmsKKzMwMjY5IDU4YmQ3MTAwZWUxNTdmMTdiODVkOTQ0ODAxYWMxZWMyZmU1NGZjYzEgbGVnYWN5LXRydW5rCiszMDI3MCA4MTZiOGRkY2NmZTE2NTE2MTRkMTY0MDE4OTk5Y2Q2ODNhYzkzOTFlIGxlZ2FjeS10cnVuaworMzAyNzEgZGI5Mzg4ZjM3ZDhjNDcxZjFmZDU0ZDhjMDc2Nzc2ODYxOTVhZjc4NyBsZWdhY3ktdHJ1bmsKKzMwMjcyIDA2ODY4Mzc2YWEyOGQzOWZjNmU5ZWEyODlkOTE1NTZlOTc5N2FjYjQgbGVnYWN5LXRydW5rCiszMDI3MyBhMmQ0MDJlN2NkOGFkZDMyYTc4YmZhZDI1YjIyYWU3M2RmNGU4ZmQ4IGxlZ2FjeS10cnVuaworMzAyNzQgY2Y3MzY2M2NmZjU5ZWE0MTYzZDhmMTI5NTEzM2NlODgwNjIxZGNlMCBsZWdhY3ktdHJ1bmsKKzMwMjc1IDQ3ZTdjNzBlODQxZmUzMzAyN2M0ZWI5YTk2YzY5ZGVkYWRjYzZmZjUgbGVnYWN5LXRydW5rCiszMDI3NiAwZjA2MTU2YzhlMDM3NjZmOWZmNGZkMTg5NzU4ODdlZWNmM2UxZDNiIGxlZ2FjeS10cnVuaworMzAyNzcgNTA3YWE5NmExMjhmZmRhZDk0MTdiYTU0ZTllZWViYzVlMjU0YWVjYSBsZWdhY3ktdHJ1bmsKKzMwMjc4IGIyYjQ3OTcwNTJjNmZkY2RjYmZlZmM2MWI5NDMzYTk0Y2MzMjFiNWEgbGVnYWN5LXRydW5rCiszMDI3OSAyOTk2MjFlY2E5YWQ1MzEyZWU0MmYwM2FmNzUyOTU3ZmZkMDE1NmVkIGxlZ2FjeS10cnVuaworMzAyODAgMzBhNzczODk0MzgxOGI3YWQ1MDIyNmMwYmIwZGU4YTY4NDcxMjZjOCBsZWdhY3ktdHJ1bmsKKzMwMjgxIDgyZDhiNWM2YWM0YTdmYzJlZTdkOWVlMGM4MjkwOTY2YTBhNDJlZDMgbGVnYWN5LXRydW5rCiszMDI4MiAyNTg1ZDQ1OTZkOTAzYjBhMTA4MGU4YWI1YTQzZjY2NmQ0MzgxNGM1IGxlZ2FjeS10cnVuaworMzAyODMgZmZjMWU5ZTVmZjlhNzI0N2NlYTZiNTY3YTUyYmY4OWFhZWE1ODM3NSBsZWdhY3ktdHJ1bmsKKzMwMjg0IGIyMDRiNGE3MmI0ZWU4YmFmMDQ1MGM5YTViMzJmYjM4YzE0Y2IwOWEgbGVnYWN5LXRydW5rCiszMDI4NSAyMzE5ZDEzZDU0ZjU3NTE1NTA1OGY1NzEwMzIwNzMwY2MyNzU5ODA0IGxlZ2FjeS10cnVuaworMzAyODYgN2Y4MWQxNmUyYzVkN2FhMzg0Y2VjMTlmMWUzNzI0OGQyYTEyMDBiMiBsZWdhY3ktdHJ1bmsKKzMwMjg3IDg1OGVlMTE3MTRhNjMyNDI3ZTMzYzg3YmM2ZjgxYTI5MTZhNTgwZjkgbGVnYWN5LXRydW5rCiszMDI4OCA5ZDBlNjJjOWExMjhkN2ExNDcxNjJiM2I1NjdhNmZjMWE2ZTZjMmI4IGxlZ2FjeS10cnVuaworMzAyODkgZWRmMzA0ZTYwY2M2MWVkOWI2ZTQxMWU5MjhkYjgwOTViNTExZTkxYyBsZWdhY3ktdHJ1bmsKKzMwMjkwIDE3ODg0NDk4ODgxMmYyZGYwNjI4YzIzZjIwNWJiZGM2OWQ1M2M5NWIgbGVnYWN5LXRydW5rCiszMDI5MSAyMjUxMTk1YTNkZDFmY2U3MTRmNTFiZjhkYmUxN2M1OGFlZDczMGJmIGxlZ2FjeS10cnVuaworMzAyOTIgN2M4YWYxOTc5ZTc4ODViNzc4OTk1ZTczODQ1MDI5NGQ3N2QyNmU2NyBsZWdhY3ktdHJ1bmsKKzMwMjkzIDhlY2NmYWUwNGJiNGY2ZmU2NjE5NDFjODI3ODRiNTgxYzIwNzg4NmQgbGVnYWN5LXRydW5rCiszMDI5NCA2OTMyNzk0ODE3YzJkMWRmMTE2YTk0ZWY2MzM3YzI0ZjNkNTY0MTdjIGxlZ2FjeS10cnVuaworMzAyOTUgMGM4NWE5NDdlMmMwMDBkNjY3YjkzNGIzMmIyYmNmMGVhMjQ2NGVhNiByZWxlYXNlMjItbWFpbnQKKzMwMjk2IGUwOTRhMDNhODBmZjQ1ZWY2Y2YzNGMxYzJjOGI1OGNiZjhmMDc2MDMgbGVnYWN5LXRydW5rCiszMDI5NyA1N2EwMGRiNzMxZmNmMWYyY2NkMzRkODI3MjE3YmE5MTRhMTcxNWUzIGxlZ2FjeS10cnVuaworMzAyOTggNmJiYmU2N2QxZWFmNzE3MzE5ZGY3ZWVjNmI5Nzk2YmJlZDg5N2FjYyBsZWdhY3ktdHJ1bmsKKzMwMjk5IGQ2ZjQ4M2ZjOWUwMmUzZGVkN2JmZThmZGQwM2E4MmM4MGQzMDI3YzYgbGVnYWN5LXRydW5rCiszMDMwMCBmZWE5MmU3ZWM2N2FlMzUwNTU5MDk3MjYwOWQxZGZiNjgwNTEzZTI0IGxlZ2FjeS10cnVuaworMzAzMDEgMmUyMTk1ZmU2YzI4YTc5NGZmZTljNTZkMzZlYzFjNzUxOTMzMzBlZCBsZWdhY3ktdHJ1bmsKKzMwMzAyIGZiMzZkOWI1MGRmNThjODcxZjk0YWVhMWI5YjdmY2IyYThkOTY0MjcgbGVnYWN5LXRydW5rCiszMDMwMyBlMTUzOTYxZjk2MWYyZjZiYTcxNzc3ZDIyMTAyOTQ1NmFlMTVkOTVhIGxlZ2FjeS10cnVuaworMzAzMDQgM2MzMmE5NGIwYjE3NjI2MjlhYjliMWJjMGFmMmRhNmRkODg4MTg0OCBsZWdhY3ktdHJ1bmsKKzMwMzA1IDEzZDU5ZGJmYjhkNDRhZTY0YmJhZGViYjQwMTE2NWJiNWQyYTQ0NGUgbGVnYWN5LXRydW5rCiszMDMwNiA3ZDdhMDFiZmNhYWZiODY5NzVkYmU2N2QwZDUyODkwOGQyOWY5NDk0IGxlZ2FjeS10cnVuaworMzAzMDcgZjY0Yzk2OTIyNzA4YTUxMDRiZmIwNmU4ZGU3YTRmNmRlNzM5YjNhYSBsZWdhY3ktdHJ1bmsKKzMwMzA4IGY0YjFiZWVkNjQwNTJkMGIzYzUxYjc2ZDI1YWQ4NTRhMzM2OTFkNGQgbGVnYWN5LXRydW5rCiszMDMwOSA5ZTQwOTEwN2FlZWFhMWYzYzMxYjgzMGFhN2ZiYmE0Nzg4NzY4ZDIzIGxlZ2FjeS10cnVuaworMzAzMTAgYmIxNTQ2YjQ2MDFiZDBkMmZiZTE3ZDExMDc3OGJhMWM3MTc3NDU0ZiBsZWdhY3ktdHJ1bmsKKzMwMzExIDU4ZDc1YTNjOGFmZWE3ZWE0ZGYzMTMxNzczZjdlNDYxZjNiYjA3YzEgbGVnYWN5LXRydW5rCiszMDMxMiAzZTFiZDEzN2QzYzJiODhhNTgyNGUxZjVkYTYzYjcxM2IyMWFkYjJkIGxlZ2FjeS10cnVuaworMzAzMTMgNWNjZGU4YTE1MjZhNDBkOTJkYzU0YzhkYjc5YjY3ZWMzZjEwOTljNSBsZWdhY3ktdHJ1bmsKKzMwMzE0IDc5YzlhMDdiMjg5NjU5Mjg2ZjE0MzUxZmRhMzgyNDE4OWRhOTZhODQgbGVnYWN5LXRydW5rCiszMDMxNSAxNWJiNjc2ZjJlOGMwZjJjMmY4ZDg0OGU1NzEyM2UxMzFkYmQ1YWE1IGxlZ2FjeS10cnVuaworMzAzMTYgMDAwNzVmMWVmODY2YmY0NGFjN2Q4MjQwZjRlMWI5MGNiOTUzYzMzNiBsZWdhY3ktdHJ1bmsKKzMwMzE3IGM0NGQ5OTRiMzllNTQyNjk2MjQ0YzU4NmVhYWFkMDVhYmJhMWFhN2MgbGVnYWN5LXRydW5rCiszMDMxOCA3ODY3OThlODY0NjljYjgwOGMzMDA4Y2M1ZTQ2MTlkYTEzNzJlZjhhIGxlZ2FjeS10cnVuaworMzAzMTkgMzdlZjAxNzY0NmM0NjE4YTNmYzBiY2FmYTAwMzI4Y2RlYjk2MWJjNCBsZWdhY3ktdHJ1bmsKKzMwMzIwIGQyYjAzNjI4MTQwMzEzYjg4YTFkMDIzNDZmNjY5MTMzNDI0MDUyZTkgbGVnYWN5LXRydW5rCiszMDMyMSBhOWI1MjJlNTQ1Y2Y2ZjA4M2UwOWNmYjc5YTljODVkZWQ2MTJlYmMwIGxlZ2FjeS10cnVuaworMzAzMjIgNTQxOWVmNGE0ZDcwYjBjNWZkYTI5YTg0OGFlMWFkNzIxZGE5ODczYiBsZWdhY3ktdHJ1bmsKKzMwMzIzIDY3M2RjYjliNTFjZTJiZGYxMmRkYTM1MTJlZGMyMmJmNGZjYjllMDMgbGVnYWN5LXRydW5rCiszMDMyNCBmYzUxNjlhYTQxY2VmODViOTY5N2MzOTQyZmRmOTU1MzI1YjY1NTAxIGxlZ2FjeS10cnVuaworMzAzMjUgZWE3NTkxOWM3NjlkYjY1ZGIyZjQ5YjU5OGUwNDMxN2Y1ZTI2YTg4MyBsZWdhY3ktdHJ1bmsKKzMwMzI2IDg2NWM1OWI1YmZkNzEyODI4ZjM0Y2FkNWEzNzdkOGNlMDA5M2Y1ODUgbGVnYWN5LXRydW5rCiszMDMyNyBiY2E1NDA5Yjc2ZWNmYjkzNDJkMjRiYWExMjMyMWQ5NWM4NjllYjM5IGxlZ2FjeS10cnVuaworMzAzMjggODAzMzAyNTczMTUyN2JlNGFiMzQwOTg4ZThhZmIyZDY5YTQwZDY2MCBsZWdhY3ktdHJ1bmsKKzMwMzI5IDVmNzRlMDQwMDEyZDY5ZWY4MzVlMmM2NmVmNWE3YTczYTY2Y2ZkNTAgbGVnYWN5LXRydW5rCiszMDMzMCAzZWU1NGZiZmU4NDZkODllZGYwZTVhZGQzYTllNGIwMTkyNTllZWY3IGxlZ2FjeS10cnVuaworMzAzMzEgMmNlOGNmMjg0YjE1MGMwODE4MTQ1NDIwOGY0NWY1MjNjYmJhYTQ2MCBsZWdhY3ktdHJ1bmsKKzMwMzMyIGRhYTQ1OGIyODM4NTFiZmQzYzk0ZmVlMTlhOTQ4YjFlYTc0OTRhYzMgbGVnYWN5LXRydW5rCiszMDMzMyA2NjA5OTZhMjhlZThjNGU2YjE2Njk1ZjFlMTc5YThkYzM2NTdiNGI4IGxlZ2FjeS10cnVuaworMzAzMzQgNzA0ODQyZjA1YjA5MWU1OGQzZTkzZjRiZTM1NjlmYjA5MWYxOWVjZSBsZWdhY3ktdHJ1bmsKKzMwMzM1IDZjZjYzNzc2N2NlMjRkMmMzYTgxMWNjZDZiMjBmMDYxODI4MGEzZmUgbGVnYWN5LXRydW5rCiszMDMzNiBiNGNhNWI5YmE5MzM1NTI4YWE2OGJjY2FhYzA5ODI5ZDQxMTE2Y2E0IGxlZ2FjeS10cnVuaworMzAzMzcgMjc1MmU5YWFlOTdiZWQ2MDFkYWU4ZmNmY2ViNWI1MTYxNTI1MjFkNCBsZWdhY3ktdHJ1bmsKKzMwMzM4IDNjZjVhNzg1MmEyZjNmZDRmMGIwYTZkZWUyNjZlZjk5MDY5YmI5OGIgbGVnYWN5LXRydW5rCiszMDMzOSAzYTEzMDA0NzI5MDE2M2EwNTk2NmQzYWRhYzI0MDE0MTc3OTNmYWI5IGxlZ2FjeS10cnVuaworMzAzNDAgMDM2OTE5OWEyNjVhZjg0MWZmYTE2MTRhYjMxNTkxOTdlZjVkNGJjOCBsZWdhY3ktdHJ1bmsKKzMwMzQxIDAyOWVkYTkzN2JiNDc0M2YwZTE3MTYwM2RhNjMwZmE0OGU3ZjI1ODYgbGVnYWN5LXRydW5rCiszMDM0MiA4M2Y4YmQ2YWU4MTE3MjIwZDJiMTJmZDA3ODcxNjM5Y2I1ZGRmYjFhIGxlZ2FjeS10cnVuaworMzAzNDMgYWFjYThhM2IyM2NkMDVkMjIyODMwOThmMDE5NzZmNmNmZjMxZWM1MCBsZWdhY3ktdHJ1bmsKKzMwMzQ0IGE2ZjBiYzZlOGIzOGRlNWY3NzA2MzRjNDA0OWJlNTYxYmFmZTJlNjYgbGVnYWN5LXRydW5rCiszMDM0NSBmMzA1YTU3OGIzOTQwZWM4M2NiODZmNzdlYmViZjc5Zjk3YjhlZWE0IGxlZ2FjeS10cnVuaworMzAzNDYgNDhhZmI4ZTE0MjBiYjg2ZjljOWFlZmQ4ZmFjNGFlY2JhOGJiYTk0YiBsZWdhY3ktdHJ1bmsKKzMwMzQ3IDQyMjc5YTAyMTI1ZTI4NDYxZWE0NzRkNjA2NGZjMDA0NDMwYWFjZDggbGVnYWN5LXRydW5rCiszMDM0OCAyM2E5ODBlYjhhZmJiMzVhMjkzM2UyZThiZWUzNmRiYTY5MjUxZDQ3IGxlZ2FjeS10cnVuaworMzAzNDkgMWVhYjI2ZjcxNzE5OWQ3Y2EyODM2OGQ3YWM0ZmEyNDQzOGM2NmMwZSBsZWdhY3ktdHJ1bmsKKzMwMzUwIGY0ODNlZmNhMjI0YzZjZmRiMzU3ZTBmNTdkNDhjZTc1NjMzZmEzMmMgbGVnYWN5LXRydW5rCiszMDM1MSAzZDEwNjBkYjgwNjI4YmM1ZTk0OWZkMzczZTI4NmNlOWUwYzM3NGUyIGxlZ2FjeS10cnVuaworMzAzNTIgMjZkZjYwMTNiMzAzZDRhYmRlNGRmMzFkNWZhMGVlNjRkNTA2YTc5MCBsZWdhY3ktdHJ1bmsKKzMwMzUzIGQxNzdkZDBjYThmNzBlNDFiZTAxYzdmZmEwZTMzNDVkOWU4NTAwOTQgbGVnYWN5LXRydW5rCiszMDM1NCAzNTQ2OGFkNTAyMmE3NzQ1NjkxZDUwOTUyM2VjNDE5OWU2ZTM4MDFmIGxlZ2FjeS10cnVuaworMzAzNTUgMTIwYWZiYTJkYmY2NDA3Y2Q3N2I1NmMxNWQyOTY4NWU4MTE3MzkwZSBsZWdhY3ktdHJ1bmsKKzMwMzU2IGMyNDk2MDdlZjUzNWYxMTI4NGY3ZDMwNTc3YmZlMThhNDUyMDliMjggbGVnYWN5LXRydW5rCiszMDM1NyAzMWIxYjA0NjAzMDNkODVkNzQ3MGRhODAxOWYyNDdhN2E2NWRlY2JiIGxlZ2FjeS10cnVuaworMzAzNTggOTA5MzRlNGM5MWJhNGJjZDI4NjZlMmVmZjdiM2E2NGU4ZWMyZDdmZiBsZWdhY3ktdHJ1bmsKKzMwMzU5IDZlYzM4NmI0NWUxZmFlZTE2OWNiYmVkN2EzMzI0NmQ4MmI2MWU4YjcgbGVnYWN5LXRydW5rCiszMDM2MCBkMjE5OWZjMTRkMDYyNGFkODBkODYxMjUzM2ZhMzRlMWFjN2M1ODFiIGxlZ2FjeS10cnVuaworMzAzNjEgMjEzM2NmMzU1YmZjOGEyYzkyNTA5NzdhYjAyM2FjMGUxMGU1MjVhNSBsZWdhY3ktdHJ1bmsKKzMwMzYyIGYwZjlhY2NhNDE2NGFiZDc4YjVlMWQ2MDRhNmQ4ZTI5YzNjNjYzMTcgbGVnYWN5LXRydW5rCiszMDM2MyA1NGFhY2I4N2JlZGEzMDM3ZGZhYmZlM2JmM2U2N2Y5MDI4MDA2ZmVkIGxlZ2FjeS10cnVuaworMzAzNjQgYjYyNWYxYmY3MmY5MGQwNGM0OTUwOTNiNDFkMzljNGUzNjhlMTE1ZSBsZWdhY3ktdHJ1bmsKKzMwMzY1IDQ1ZmMwZTRiNTA4NDUyMjc1YjQ2YmFkOTJiMmU1ZTcxYzI0NWE0OGUgbGVnYWN5LXRydW5rCiszMDM2NiBiOWMxNTk3ZDgxMDJlNDVjYTQ1ZDhiM2U2ZWI2ZjIyNmJmZjQ0YmE5IGxlZ2FjeS10cnVuaworMzAzNjcgMTI3NTNlN2IxNWY3ZTg2YmUxNDM1NmU1NGQxMDljZjM2NTc5NzFkNiBsZWdhY3ktdHJ1bmsKKzMwMzY4IDgwNTNiYzBiOGJiNTgxYjRiODY3MGNhNWZkY2M2YjY2NDg3ZjFiNTEgbGVnYWN5LXRydW5rCiszMDM2OSBiYzIwZThiNDZkZTBkMGFlN2FlZjI2OGU0NDg4ZDc4NmUyNjJmYzBiIGxlZ2FjeS10cnVuaworMzAzNzAgOTU1MTBmMGEwNjI0NTg0YjQxYmI3Yjc1ZmFmODg2NWM4OWZjZjUxYyBsZWdhY3ktdHJ1bmsKKzMwMzcxIDJhOTViN2Q1ZmJkZTBkNGNlNzA3NDMxMzAyYjc2NjMxYjBkMDAwYjEgbGVnYWN5LXRydW5rCiszMDM3MiAxNDA2NDRmMjJmNjQ4Y2RmMGIzZDNjYzRjYjVkMGU5OGQ5ZTYwOWZjIGxlZ2FjeS10cnVuaworMzAzNzMgMGEwYzc1OWVkMTY3OTlhYTJlMDZjZTlmM2M5OGJmODRhNDFiMmQ0YiBsZWdhY3ktdHJ1bmsKKzMwMzc0IDRjYmRiYjBiZGQ1ZDRhZWMxMDI1YTZhNjg4NjZjODQ1OWFiZWEzMDIgbGVnYWN5LXRydW5rCiszMDM3NSAzYmMyYWY0MWMwMTY1NzlhOGUxYzJhZjRjM2E3YTQxYzcyMzU5MzRiIGxlZ2FjeS10cnVuaworMzAzNzYgMDk2ZDEyZGIyNjM2NTIzY2U1Yjc1NWZkYzNjYzM4YzViNzA4ZmM3NyBsZWdhY3ktdHJ1bmsKKzMwMzc3IGE0NDc0ZTE0ZmFjOTdiNGE2MjI5YTA1Zjc3NjIzMDM5YWZlMTIxZTggbGVnYWN5LXRydW5rCiszMDM3OCAxOGQ0ZjcxZjVlZDZhOTM2YTRiMDczYjg0NmQwZGM5MDY5MmRjYjRiIGxlZ2FjeS10cnVuaworMzAzNzkgZDVhZDI5YTQ3M2UxZDk5MGEzMDExNDEwZGRiZWUzYzYyYjNlZjBlMSBsZWdhY3ktdHJ1bmsKKzMwMzgwIDJjNTJhYmVlN2QxMDYyYzUwMGVjMjhjYWRhNzE1MDQxYTJmNGQ1MmMgbGVnYWN5LXRydW5rCiszMDM4MSA5N2M1YWE4MmIzZTljMTUyNGJiYWZkZDc0OWNhNjVhNzJhMzIyNjIwIGxlZ2FjeS10cnVuaworMzAzODIgNDBkYjc4MTU5MTc3NjIwZGUxM2FlOWJlMDFkYmQ3MTYwZTczYzE4YSBsZWdhY3ktdHJ1bmsKKzMwMzgzIDdlYTc2MzczNDFkMGExNDdhNGMzNDZlYjU4YjViM2QyNjMzYTFhMmIgbGVnYWN5LXRydW5rCiszMDM4NCA0N2U2YWI4ZDU3NTFkNGEwN2Y4YzY2Njk4NTZkODg5ZjNjMzExOTM4IGxlZ2FjeS10cnVuaworMzAzODUgY2NiYTNiNjZkNjc2NjYxZjZlMTYzZTMxMDk5MThkZWQwNGEzOTczYSBsZWdhY3ktdHJ1bmsKKzMwMzg2IGJjYWNhMzZhNTgzY2M0NTkzYjVkZWQ5MWI3N2YxMGI5Mzk0ZjkwOWUgbGVnYWN5LXRydW5rCiszMDM4NyAwNzQ5MTk3MTUzNTVhYzg2ZTM3M2M4MGE1MzNkN2VlN2Y1YjcxYTk3IGxlZ2FjeS10cnVuaworMzAzODggNjg4ZmE2Y2RhYjk0M2M1ODAwNDA1MjY5NzhkZTgzNjNhNjVkYzJiMiBsZWdhY3ktdHJ1bmsKKzMwMzg5IDg5OTlkNzJjMmU2Y2RlYjFhNjAwZmQxNWQxOTdjYWFkYzQ3YmFhMjEgbGVnYWN5LXRydW5rCiszMDM5MCAwMDMyZGJlZWMzOTFjMTU3MDIyZjhkNGU0N2Y3ZGRmM2Q3ZTRiNTFmIGxlZ2FjeS10cnVuaworMzAzOTEgN2NkYTM2MDM1NjdmOTY3YWFiMmRhNzFlM2FjNmI1OTljNDRlMDIwZCBsZWdhY3ktdHJ1bmsKKzMwMzkyIGMyNWQ3ZDJjMTcxMDQyNmM3NjYxNjkzMzM0MWYxYTMwMTkzNjk1MDMgbGVnYWN5LXRydW5rCiszMDM5MyBmYmNmM2M0YjQyNzJlMjE1ZmMyZDc1ZjVkMzE1N2JkMmE4MzI3ZTE1IGxlZ2FjeS10cnVuaworMzAzOTQgZjUxNjFjYTRkZDY4MGQ0ZmJlMzNhMTlhYWM3OWI2MzQwYTY1NDI3ZSBsZWdhY3ktdHJ1bmsKKzMwMzk1IGE0M2EyYjE4YjVjNDhiZmU2Y2Q3YWUzYTIxMWEwZDJhMTIzZGM4YTAgbGVnYWN5LXRydW5rCiszMDM5NiAwNTAxNmJiOTE3NjZmZTlkMWIxOWIxNmI3MTc1MjdjMjg2OGJjM2ZmIGxlZ2FjeS10cnVuaworMzAzOTcgYjkzODQ1MjI2ZGI2OGQ4MzJjMmFhMTg0NmQ1YTMxNWI5YzVjZDkxMCBsZWdhY3ktdHJ1bmsKKzMwMzk4IDQyZjE5YTZjNjU3MDFjZGYzNjUwMGU0NzBlOWIwZWUwZGIxNGEyNGEgbGVnYWN5LXRydW5rCiszMDM5OSBmYWY5NjVkNzM4MjRiZjI0NGViNjRmMWZlYTAyOGVlMjY5YTBiZDdjIGxlZ2FjeS10cnVuaworMzA0MDAgOWQwNTgwYWNiNDVmZjQ1ZWE3NTcxZDQzMzBjOWZhNmNiZTYxNTdlMCBsZWdhY3ktdHJ1bmsKKzMwNDAxIGRiZmMzZWY3ZDAwMzUwZTA5ZTk1NTNlOTU2NDk3MzY0YjViM2RlOTAgbGVnYWN5LXRydW5rCiszMDQwMiAzMWFkZWE0OWE1NThmNzI4Y2U5MzM5OWJlZmVhOGY1YmNlYjIxNjFlIGxlZ2FjeS10cnVuaworMzA0MDMgOTY0Njg4NzBkMjA2ZDk0ZjFhOGE0ZDljZDA0MzAxODE5NGE3ZDI4MCBsZWdhY3ktdHJ1bmsKKzMwNDA0IDNkYjE2NWYwMjEwNzQzNjNiMTYwOGFhYWIxNWMzNTcwNGVmNjZhNjYgbGVnYWN5LXRydW5rCiszMDQwNSAzM2RjZjRmZDBmZjkwM2ZiZGZlMzA3NmNlODRiODJiZDhiNjk1NGQ4IGxlZ2FjeS10cnVuaworMzA0MDYgMjRjYjYyMjI1MDQwY2ViYjI4MmFiYjI0YWMxYzNhZGMyOWI4ZTAwZCBsZWdhY3ktdHJ1bmsKKzMwNDA3IGZmYTRhYjM3MDM2ZjAxNWZlOTk2NDBkMjE0YTliMDhjOGYxNGExMGUgbGVnYWN5LXRydW5rCiszMDQwOCAzMmU0Yzc3NTM0MTYyYzVmN2FmY2RhNGQ0MWQwMWI4YjAyNzcwY2UyIGxlZ2FjeS10cnVuaworMzA0MDkgNmM1MzVkY2VkYWQzMDNjMTNlNDM0NzJiOWQwZjc4ZDI3ODMxOTczZCBsZWdhY3ktdHJ1bmsKKzMwNDEwIDc5NDY2ZjA0ZjFjNTRiNTJiNzJlZDIxYzlkYTUyNzA5MTU1NWY2NWIgbGVnYWN5LXRydW5rCiszMDQxMSBiOTFkOTVlOWIyNDlhNzkzMzVhNmE2NjA5YzExZTZhYWZmYWRhZjhiIGxlZ2FjeS10cnVuaworMzA0MTIgYTA4NWNjMDQ3NjgxMDk1OWRhY2QwYzA3Nzc4OGZlMGY1NmZkMTdjMSBsZWdhY3ktdHJ1bmsKKzMwNDEzIDg0NjhlM2ZjM2EyYmM3MWNjMmI3MDg4NmQ5NjE0YzFjYzA0MzYzMTggbGVnYWN5LXRydW5rCiszMDQxNCAzZDVhYmQzZDllNGJhODA1MTk0M2Y4NTVjNDViZjBiNTJiMTI0NWI1IGxlZ2FjeS10cnVuaworMzA0MTUgYmMzMDU4NDk1MjJkZjc4NzI5ODJlNzIwYjgwZDM2NTNiOGVmNWJiOSBsZWdhY3ktdHJ1bmsKKzMwNDE2IGE4MmQ5MmY3ODQ3MmM3MDdlNmU3ZTExYzUwZmVlZDQzZDVhYWRhOTcgbGVnYWN5LXRydW5rCiszMDQxNyBiZDBjNDA3MTk1ODM2YmQwZjE5OWZiZDZiY2UyN2M5NmQzODljMGU4IGxlZ2FjeS10cnVuaworMzA0MTggNmU1NDFhNzJhZjFhZTY1NDM3NzQyZDI4NDU2ZTdiOTI0NTMzMDdiNiBsZWdhY3ktdHJ1bmsKKzMwNDE5IDVjYTcwNzIzNjFiZDk1YTAwZDRhZWUxMDk4YWQyMzZiMTkyNTQ2OWMgbGVnYWN5LXRydW5rCiszMDQyMCA3MjM3MjFlYTQwMjU5NmM0MzVlZTY2ZmM3NzU2ZjIxNTU2Mjc2MTdlIGxlZ2FjeS10cnVuaworMzA0MjEgNTUxNDExNDRkYWI1ZTUwOTEyYjEwNzQ0NDBjNWJlN2E0NTRjZTFlNSBsZWdhY3ktdHJ1bmsKKzMwNDIyIGJlZWE0MjE1Mjc4NzQzZGExMWVhZGI1MzliY2JlZWJhNDhhNzAzODEgbGVnYWN5LXRydW5rCiszMDQyMyA1MjY3NDJhNzRkMDY1YjNiM2ZmNDMyNmQ2ZDMzYzc1YjkxNDBmMDc3IGxlZ2FjeS10cnVuaworMzA0MjQgYWNkYjM5YjcxNGIxZWVlNDhkNGRiZWMyMzM4MWI4MzRlMGEwMjM1NSBsZWdhY3ktdHJ1bmsKKzMwNDI1IDAyYzZmZDVjZjc1YmNmNTZmYjRiZWM3NzZiZmUwMTg5MTEwY2UwODcgbGVnYWN5LXRydW5rCiszMDQyNiBiZTczMmUyMTllZDEwMjY3ZDkwMjc4M2JlZTczMTRkYjE0YTI1MmRkIGxlZ2FjeS10cnVuaworMzA0MjcgYTU4Y2VjZjU5YjA2M2Y1NTUxYzhiNGExM2M0NTRjMDdiMDQ3MGEyZSBsZWdhY3ktdHJ1bmsKKzMwNDI4IDdiNWE3Y2ZjMTdhOWU1MDE3Zjc1MDNkMDMyYWU1YWJjODVlMDc0ZGMgbGVnYWN5LXRydW5rCiszMDQyOSA5NGJjODEyYTNjNTI4NTE1OGU2MGZlMTI0NWU0MTc5ZDIxZWI4Zjc1IGxlZ2FjeS10cnVuaworMzA0MzAgMzVmY2FiZWZjOWQyZmQzNTY5NTcyOWVhOWFkNmI0Y2YyYjRhMjM1ZSBsZWdhY3ktdHJ1bmsKKzMwNDMxIGYxNTU5NDYwYjk1MjYyNjkzMmM0NjUxZjcxMWM4NTRhNzFiYjI3YWQgbGVnYWN5LXRydW5rCiszMDQzMiAxNjM1NjNjY2I3ZDYwYWRmODRlOGI1MDYwNGE5YjY1NjNjZWYxMDE5IGxlZ2FjeS10cnVuaworMzA0MzMgMjQwYTI0MDFjNDA0ZGU2YWY5OTgzYzI0Y2QwMDk2MzQzYzQ1ZGMwOCBsZWdhY3ktdHJ1bmsKKzMwNDM0IDM4OTI3ZmQ1NjdiNGU0ZjJmOTI4OGY4ZmRjNzM0ZDMxNzk5MzViNGIgbGVnYWN5LXRydW5rCiszMDQzNSBiODIzNjZiYzU0Mzg0MjhhOWQ5NWQ2YzI0YzhlNzZkYTVlNjliY2RjIGxlZ2FjeS10cnVuaworMzA0MzYgM2MwNDFiMTlmMWQzNjc3YTNjMzkxYWJiZjU1YjhjOTQyMzQ1ZTM3YyBsZWdhY3ktdHJ1bmsKKzMwNDM3IGI4YzcyZTg2YTEyZDQwNzAwYjFiZTA3NDY3MzI5NDVlYjlmYmUxMDMgbGVnYWN5LXRydW5rCiszMDQzOCAxYzU4ZmU1Yzc2OWYzYzA2ZTcxYmUzYjAwMDBjODc4OTA5Y2EwNTJmIGxlZ2FjeS10cnVuaworMzA0MzkgYTVjODc5NzI2YjNhMzIzMzc1MTZiZjViMTBiMWQxYmQyOTQyYWY1ZSBsZWdhY3ktdHJ1bmsKKzMwNDQwIGI5YzQ2MmQyM2YzYzY1MjE0ZDQ3ZDE2YTVjYjU0Y2Y3MmI2NDQyY2YgbGVnYWN5LXRydW5rCiszMDQ0MSBhNTczZmVkZTg4ZTJiMThlNGU3ZDFmMDc4YmZmYWY5OWJmZjA5MGQ3IGxlZ2FjeS10cnVuaworMzA0NDIgNWRmN2EyODRlYWY0ZWQ3NzFmMTc3NGMyYjNiNDY1Y2E3ZGQ1Zjk5NyBsZWdhY3ktdHJ1bmsKKzMwNDQzIGI3OTBkYTA2NzFmN2E3MWU5MDIwZTQxMjgzNDFiNTBhN2I5ZTM2NDQgbGVnYWN5LXRydW5rCiszMDQ0NCA0YjRjZTI0OTBmZTJlZDdlZWM1MTliNmEyY2NmZDg2NDk5OTI4MmE0IGxlZ2FjeS10cnVuaworMzA0NDUgMTAzODk5Y2U4OGIyZmNhM2U3ZjFlNzk2NGJhYTE5ZWQxYjY5MzczMCBsZWdhY3ktdHJ1bmsKKzMwNDQ2IGJmOWUwNDI0MjM3ZjUxNTYyMmQ4MDUwZTFhY2EwZmJiNjQxYjlkMmQgbGVnYWN5LXRydW5rCiszMDQ0NyA3NzZmMjcwYTZlYTljNzBiZmU2N2U0NGU0MTM1NGExMzhlYjM5MmE1IGxlZ2FjeS10cnVuaworMzA0NDggNDQ0OGZmOGIzMjM5MGJmZDkyNWY2OTM1M2Q1ZGRhMTcxNWJlMTAyNyBsZWdhY3ktdHJ1bmsKKzMwNDQ5IDRjMDNhNGZhZDcyZWYyNjE3MDdiODgyZWNlNDMxMGUyZTBlODQxZTcgbGVnYWN5LXRydW5rCiszMDQ1MCA4NDg3OWUxODM3NzM4NDk0OWZhMjliY2E2MjFlYWI1NTBjYzM5OWYzIGxlZ2FjeS10cnVuaworMzA0NTEgOTA5OTgwNzlhMWEyMzg5MzI1NGRiYmY1OTJkMmE0OGU2ZWJkNzhlZiBsZWdhY3ktdHJ1bmsKKzMwNDUyIDY3ZGYyODkzYTUwZWU4MTc3YzEwMjY5N2M0OTQwOWI0YmFkZjg2OWMgbGVnYWN5LXRydW5rCiszMDQ1MyA3MDFiMTAyOWFmNDA3OTA1NTBlZTdkNDk5MWIxZmIxYzJiMjc4YzhlIGxlZ2FjeS10cnVuaworMzA0NTQgNzBmMGYyNWIxMzRlNDI4YzFkMTdmYjgyYjUzNzdlMTIzN2NhMTNkZSBsZWdhY3ktdHJ1bmsKKzMwNDU1IDc3NGY3NTRmZDFmZjE1MDM4ZmJlOTEwN2FjYWRlOTE1NTJmMjI3ZjAgbGVnYWN5LXRydW5rCiszMDQ1NiAzNWU1YjAyMWI3NzQ0NDcyMDNlZTczNDE2YjliMTlkYzJmMDljODViIGxlZ2FjeS10cnVuaworMzA0NTcgNzg0ZTdmZGY4YzUyNDM0NmZlMDNmNTNkYmFiMDVmMWQxNDM2ZjU4MyBsZWdhY3ktdHJ1bmsKKzMwNDU4IDY5ODk2MGQ1NjFmOGRhNTg5OGUwZmRhYTJmYzAzYWVlZTE3MjE4MjMgbGVnYWN5LXRydW5rCiszMDQ1OSA1YjE1NzU5NjhmN2ZhZjgwZTcwMjgzNDFiMWNiOTI2YmYyNGRjNjg3IGxlZ2FjeS10cnVuaworMzA0NjAgNTY3N2U5ODBlMDQ3ZTQyNDhmZmZhMDA1MGI3NzJmNzFkMGE5M2I0NCBsZWdhY3ktdHJ1bmsKKzMwNDYyIDJjNjcxNjlmNmUxM2ZiZGQxN2I0Nzc2ZGM3OWJjNTJhZWUyNWFlNDkgbGVnYWN5LXRydW5rCiszMDQ2MyBlMDJkYWY2MzA3ZmM4YThlYjVlMDAyNmU4YzcwZGVlOWVjMDczODZjIGxlZ2FjeS10cnVuaworMzA0NjQgNTQ5ZDA3ZDBhZWQ3ZWNhMTkwMjdjOTY1Y2I3MDkxMWFkM2FjZjFkNSBsZWdhY3ktdHJ1bmsKKzMwNDY1IGY3MjJhODMwMTQwZmI0MTVlNWUyODczZDRlMTExNGY0ZDFlZTc4ZTQgcjIzYTEtYnJhbmNoCiszMDQ2NyA3ZTIzNTFiYzZlN2E2OWJmNjhkZjcxMjUzNTE4NmJjNWIwNmFjMjcxIGxlZ2FjeS10cnVuaworMzA0NjggMWM2NWZhNWU1MmMzZDgxYWIwMWJhOGVmM2EwYmRlZDRhZjNmNmJkZSByMjNhMS1icmFuY2gKKzMwNDY5IDE1MDE3YTc5YmFjZGRhZDI3YmJhYWQ0ZjM5MmJiNGIwOTExNzczMTggcjIzYTEtYnJhbmNoCiszMDQ3MCBkNmRjZmY0YjM1NzQyMzQ4MGU0N2E1NTVlYTAwYmYzMmYyY2U4ZjMyIHIyM2ExLWJyYW5jaAorMzA0NzEgMmI4MDExNjgxNWI1MzVkZDk4MDJkNmMzNTkxYTZkOWNiZDY0YWI5NyByMjNhMS1icmFuY2gKKzMwNDcyIDkyZTU3MmUzY2E5ZjhjODMzOWY3ZTk2YTk1NmJhOWI3ODJiODgyNmQgbGVnYWN5LXRydW5rCiszMDQ3MyA4YThkZmYyNTBiZTQzNjJmYTFhNjdkMzFhZDQ4ODcwYjYwM2YyNmZjIGxlZ2FjeS10cnVuaworMzA0NzQgYmNiZDk0YzYxMGU4MjNmMjk1ZDFiNzQzOTllYmI2OGI4NzhmYWM1MiBsZWdhY3ktdHJ1bmsKKzMwNDc1IDdjYjczYTczMmY3NzFlYWEyMzZmMmRmNDJiOThmODUyNDJlYjkwYWIgcjIzYTEtYnJhbmNoCiszMDQ3NSAwMTgzMDc3NjVkMzRkY2Y2MmQ2ZDJhZDY2YmQ3ZjdiZGU1MzFlZmEyIHIyM2ExLWJyYW5jaAorMzA0NzcgY2ZhMTNjZTk4M2JhMmI3ODk2NmMwZWM3ODcxMWNkZjdjODIyMzYzZiBsZWdhY3ktdHJ1bmsKKzMwNDc4IDY5OTA1MDU5YzdiZDE4ODU5YjNmOGEyNjNjZTg3ZWVlYjFlYTI3ZTMgbGVnYWN5LXRydW5rCiszMDQ3OSA3NDA3OWJlNmYzZjExNGUxOTIyODMzNTJmOTAyNzFhNzZkMTAwM2Y1IGxlZ2FjeS10cnVuaworMzA0ODAgY2Y4MWY4MjVkYWFjOTI2Y2Q1NDdhMjQyYTBlNTVjYmVjNDE1MTliYyBsZWdhY3ktdHJ1bmsKKzMwNDgyIDRlMDkzMmExMTJmNDJiNTU5YjczMWM5ZWQ4Zjg3ZGQ5YjYzMTZjZWQgbGVnYWN5LXRydW5rCiszMDQ4MyA5NmUxYWI4ZGY4ODM4NGFkYTc4MzAyMmI4NzVjYjk3NDJmZDVhYmE0IGxlZ2FjeS10cnVuaworMzA0ODQgMmE4N2Q5NDg5MTEyZmEyZTM0YWEzZTg3NWI2ZjIzNjBlY2ZkYzJiZSBsZWdhY3ktdHJ1bmsKKzMwNDg1IDAwY2QxZDcxNTljMmI0NTEzMTEyMTFlYzBlZjljOWY5NWY0NDJhYmMgbGVnYWN5LXRydW5rCiszMDQ4NiA2Y2ExYzBkM2VmMTkzMTIyNDQxNDI1MGExMjE3M2VjZDNlNjk1MTE2IGxlZ2FjeS10cnVuaworMzA0ODcgOGVkNDcyZTViY2Q0NGRkMzIxYjQzNWY5YmQxOTkwNTVhMDc5Y2VkMSBsZWdhY3ktdHJ1bmsKKzMwNDg4IDg4ZGYyNjdkYjg1OWUzZjRiODlmZDY4NjRkOTFiZTQ0MzAxNDE5NDcgbGVnYWN5LXRydW5rCiszMDQ4OSBiZGE0MTg1NjcwY2NiNzQ4ZTgzOTlhZjYxOTBjNzc5ZmFmMTliN2VlIGxlZ2FjeS10cnVuaworMzA0OTAgMjkzZWRhM2U2OWY1ZjU4MjE0YWFiMjk5Y2EwMzg5NmRiMTRlZGMwMiBsZWdhY3ktdHJ1bmsKKzMwNDkxIGY1NzA4M2EzNDE5NjY0YWI0OGUwOTRjMGI0ZTdhM2UxODdlMGQxNTQgbGVnYWN5LXRydW5rCiszMDQ5MiAxYzQwNjBkOWU2ODc0YzM1ZmMyYjdmYzNkMGFhZTBiNmI4ZjUxNGEwIGxlZ2FjeS10cnVuaworMzA0OTMgZWE2N2NlYTY3NmU5OTM0NWIwZGZlYTI0NWJjOTQxYWFkOWVlNDhhYiBsZWdhY3ktdHJ1bmsKKzMwNDk0IGQ4NWVhZjQ3ODU1NmVmYzYxM2Y2ZjRmODkwOWIwYjYyNzkzYWQwNWUgbGVnYWN5LXRydW5rCiszMDQ5NSA4MTIwOWMwZjA4YTA1OTI2ZjdiZDBlOWY5MDU1YWNjZWFkYjAyZDA1IGxlZ2FjeS10cnVuaworMzA0OTYgNDU3OWU4M2M2NjNiNzAyZWEyMGJhYjFhNjIzMmExMTFiNWI0YWE3NCBsZWdhY3ktdHJ1bmsKKzMwNDk3IDcyYzNmNzM0N2U4OGM4OTQ0MDZkZWRkYTc4N2ExNmZhY2M1YTljNjEgbGVnYWN5LXRydW5rCiszMDQ5OCAyNjg3YTkwODU0MTFlNzg1N2Y2NTYyZTAyMjcwODYxNTM2MGJkN2FjIGxlZ2FjeS10cnVuaworMzA0OTkgNWM0ZmEwNGM5ZjYyOGQ4OTkyYzI1MDY2YWJiNGZjOWJlYzQ2YmU2NiBsZWdhY3ktdHJ1bmsKKzMwNTAwIDZhNWNmZmM2MjM4N2RkYWEwOTBiYWM1MzNlYzUwYTg3YzlmN2I3ZmQgbGVnYWN5LXRydW5rCiszMDUwMSBjMGIzYmI0ODViY2Y4MDAxNmNlODYwYWRlZjVkYWFkZWRlNGY5MGJhIHJlbGVhc2UyMi1tYWludAorMzA1MDIgOTdkYzUzMGQ5MGViNzg1MjYyZDE1OWY5NTkzZGNhZjkzZTc4MDk2OSBsZWdhY3ktdHJ1bmsKKzMwNTAzIDQ3OTMxMDE0OWIyZWRlMWU3MDk3MjE5N2E0ZWE5ZjU4MjJlZWIyZmMgbGVnYWN5LXRydW5rCiszMDUwNCBmZDlmMjBjZTNiYmExZmM5YzM4YmIzM2M4MzA3MDRmNGI1MjEyM2U0IGxlZ2FjeS10cnVuaworMzA1MDUgNzQxYWE5ZDZkOGJlZDc0MDVmYzMzMWYzN2JiMjMwMGVkMjYzYmYyNyBsZWdhY3ktdHJ1bmsKKzMwNTA2IDBiM2ZjY2ZiZTJhMjg3NjFlZTRjNTc4NjFiMTI1MDIwYzZhYjQwZTQgbGVnYWN5LXRydW5rCiszMDUwNyA5ZWU0ZmQwNWQzY2JjZDVhZDdkYWIzODMzYmJjZjkwYjJkYzBmOGMzIGxlZ2FjeS10cnVuaworMzA1MDggYmZhMzI2MTNkZWM4ZWNhMGU4MTc2MjZmOTg0ZGZkZmY1YzU4YmQ1OCBsZWdhY3ktdHJ1bmsKKzMwNTA5IDcyN2JjYjgxMWM1MGY5NWZkOTQ1YjJmMGVmNDM4OTI4OTU2YTJhNTEgbGVnYWN5LXRydW5rCiszMDUxMCBlMmM4OGM0NTFjMTlhNTQ0NGM5NWJjNzA5ZjMyYmY1MGI1OTMzNDE4IGxlZ2FjeS10cnVuaworMzA1MTEgZjQ0MWM0ZTViMjM0NjU2NTQ1Yzg4ZmU1NDYzMTliN2Q5YmI0YTczNiBsZWdhY3ktdHJ1bmsKKzMwNTEyIDEwOThjY2M4NGQ2M2Y4OTJmNjJmYWNlODIzOTUxZDViN2JmYWI0NzYgbGVnYWN5LXRydW5rCiszMDUxMyA4MDZkMzZlNTZiZmEzZTA4MDExZjQ5YmIwYjNiZTc3MGYzZDRiODBmIHIyM2ExLWJyYW5jaAorMzA1MTQgYWQxMmVhOWM3ZWZkZjQ2YjYzODliZjNjZjY1ZTU1ZGU5ZmRlNWMxNyByMjNhMS1icmFuY2gKKzMwNTE1IDQ0MTQ3MDdkOTM3NjE2YzZhZDRiNjBjMjYwYTMzMWE5YWY4NDk1OTIgbGVnYWN5LXRydW5rCiszMDUxNiBlMzI3MWU4YjE0ZGVlMGZiZTA3ZDFhODUyYzAwZjgyMTNmN2Y3ZmZlIGxlZ2FjeS10cnVuaworMzA1MTcgYzQyOWZlNWRlNDE3MzU2MmQ1MzAzMWMwZjM4NTE2YTRjZGNhNjhjNiBsZWdhY3ktdHJ1bmsKKzMwNTE4IDMzOGFjODZmNDQyZDk5YWMxYWJhNzU0NGM0ZjFmZjhlNGNmOWMxNGEgbGVnYWN5LXRydW5rCiszMDUxOSBkMjc5ZDc2M2Y0NjI1NGVjNWRjMWZhNmQyNWUyMjY3ZWE3MjcyMWE5IGxlZ2FjeS10cnVuaworMzA1MjAgZDU5YjdjYmNlYWMxYzZjOTY1N2QxYjM5MWM0NjlhYWUyMmI2YmIxYyBsZWdhY3ktdHJ1bmsKKzMwNTIxIGIxZTIzYzM1NzA3YmU0YzAxMDJiNzU5OGI1NDk1N2RjOWJiYjc1MjMgbGVnYWN5LXRydW5rCiszMDUyMiBiNjFhNjYwMjJkNWE0MDFmNGY2MzI1MTA3MTMwMzUzOWYxNGYzNTU4IGxlZ2FjeS10cnVuaworMzA1MjMgOGVjZGRmNGFkOGIwMjgxZDY5NDY2ZGI4NTZjZmUyNjZjYjJhODQ5YSBsZWdhY3ktdHJ1bmsKKzMwNTI0IGRjMzNkMDI3NjQ1YTRmM2Q5MGRhNmQzM2ZmYTJiOTJiYjliNTcyOTggbGVnYWN5LXRydW5rCiszMDUyNSA5M2I2YTNmNjEzMmRjODI4NzMyMzMxNzAyZWM2MGRkMzk4ODFkODc3IGxlZ2FjeS10cnVuaworMzA1MjYgNDFmNzcyNmUzZTUxMTdhOTE0NDRkZDQzODA5MTkxOTNkMTU1ODAzMiBsZWdhY3ktdHJ1bmsKKzMwNTI3IGE5ODY3M2JlMjBjMjgwMmVmYTQ1Yzc0ZjVkMTc0MjI2MjcwOGE1MjggcjIzYTEtYnJhbmNoCiszMDUyOCA0MmYzM2JkNjljNzI0Y2Y0ZjVmYTRmMTg1MDI1YjVkMjlhMjU1MWVkIHIyM2ExLWJyYW5jaAorMzA1MjkgZjBiZGY0YzU5MGVjNDBmOTgxZmVhNGEyMzkyMDVhMzdjMDMyNDNhNiByMjNhMS1icmFuY2gKKzMwNTMwIGJlNTExMjAzMTE2ZjA2ZjMwOGM2NzU2ZmM4Mjk3YzQxZDhhOWQzYmIgcjIzYTEtYnJhbmNoCiszMDUzMSAxM2M5MDM4ZmE5Mzc2OTkzOGM2MWQ3ZWQ2MmM2MGIxMmYwNTQ1OTcwIHIyM2ExLWJyYW5jaAorMzA1MzIgZGQ2ZjFkZjUyNGRkYzc0MDI0OTFjNGFiZjg0YjEzODRkNTU2MWFjMiByMjNhMS1icmFuY2gKKzMwNTMzIDY4ZGFmZTFiYzAxNjlhODY2NzlhY2YzMDJmNTA0NzVkMThjNjcyZDQgcjIzYTEtYnJhbmNoCiszMDUzNCAwMjU5ODU2YzFlNDc2MTA4MjdjNTBkNWU5NWU1MGRiMzljYTI3YWY5IHIyM2ExLWJyYW5jaAorMzA1MzUgOTlkZjBlNTJmNjM0MzMyNjVlNTY3ZjI4MDViYmM0OTFlNGQ1NmQwYyBsZWdhY3ktdHJ1bmsKKzMwNTM2IDFhZTc4MjQ5MzEzMmI5YTQwZTkwOGFmYmE0NTJjMmIyMTY5MjczYWQgbGVnYWN5LXRydW5rCiszMDUzNyBiMzBmZTRkY2M2OTc5ODYzYmU2NzZlYzA5YzYyZmM0ZGRkZTdhYmRhIHJlbGVhc2UyMi1tYWludAorMzA1MzggNmUxYTc0MzVkZjI1ZDM1MzE3M2QzNjBkZjIyYzZkYTQxMGNiYzljNSBsZWdhY3ktdHJ1bmsKKzMwNTM5IGU2NWZmY2I0MzY5NTE4ZDcyYTE1ZGM4MWY0Y2MxMGQxMDgxOTdiMmUgcjIzYTEtYnJhbmNoCiszMDU0MCBhZTlkOGY1MGU3NmEzNjAzYzJmNTViZTI2ZjE3YTU2NTc4MzU3NWE2IHIyM2ExLWJyYW5jaAorMzA1NDEgZjlhNTU1N2M5NDQ3YWNhMTZkZDYzODI1MjNiNWJiZWYxNzMxMTlkYSByMjNhMS1icmFuY2gKKzMwNTQyIDA0MWM1MmY0OWRmMjI3OGRmM2I5MmU3ZjJmNDA3NTc0OTVkZjM0NTIgbGVnYWN5LXRydW5rCiszMDU0MyAxODg0MTZmYjdhYzUyZDJlYWE1MThiOTQ2OWUwNmM0MmJmZmY1ODE1IGxlZ2FjeS10cnVuaworMzA1NDQgZWJmNzI2NWFhZTRlYTkyZmNjZWYzMDVlMGU2OGQyZDEzYzdiZDMwOSBsZWdhY3ktdHJ1bmsKKzMwNTQ1IDIzMjgwYTY0Mjg4ZTNlYTE3YTQ0MGI3ODhkNWQwYWYwMjI1YTA0ZWMgbGVnYWN5LXRydW5rCiszMDU0NiA1ZDk5NzI2M2I4NTliOTJmMjc1ZjdlZWMxMWZmMzgzNzhiYTQzNGQzIGxlZ2FjeS10cnVuaworMzA1NDcgMjM3YTE0NjIwNzg1OWI1ZDY3NWY3NzNhOGZmODMzM2ZmY2M1MTU5MCBsZWdhY3ktdHJ1bmsKKzMwNTQ4IDczN2E1NDc2Mzk2YjY0MTY4NDFmMjAyYTMwMTFkN2JkYThjOWY4YjQgbGVnYWN5LXRydW5rCiszMDU0OSAyNjdmNDViZTljMDJjZDQwYmVlZDM3MDQ0OGZmN2MwZWNmY2U2NjNlIHIyM2ExLWJyYW5jaAorMzA1NTAgNTU0MTIxZmNiYjlkY2JmZDYwMzRiNjlkMmE4MDBkY2EwNzhhZjhkNyBsZWdhY3ktdHJ1bmsKKzMwNTUxIDFjZDljODU2NDg3NWI4NWI1MjA3YTRkMDU5NThjMzhjNGQ2MDkyYjcgbGVnYWN5LXRydW5rCiszMDU1MiA3MGQyY2IzNmZhMTdhMzFmZTdhNWQ2ZGNkYTY1MjdlZDIwYWQyOGY2IGxlZ2FjeS10cnVuaworMzA1NTMgNzgyMjc3MDljYTA0NGY3OWU0ZmUxYmQ2NTk2MDQ3ZmEzNDY5ODk4YSBsZWdhY3ktdHJ1bmsKKzMwNTU0IGFmMzU3OTUxMWY4NDY4ZmQyMTAyZDYyYzkzZGRjNDU1NWQ3YzlmZWQgbGVnYWN5LXRydW5rCiszMDU1NSA5ZDA4MjkxY2Q0MTE2NjIxOWViZDFiNTJmZDBkNTg5MGNjM2I4MDk0IGxlZ2FjeS10cnVuaworMzA1NTYgNzE0Y2RmMDgwNmMxNmY3YTQyNjM2MDRiMGNhOTUzNzhkMTYxZTYzZCBsZWdhY3ktdHJ1bmsKKzMwNTU3IGUzODJkMzkzMzMxZDVjMTIxZWM3ZmFmZWQ4OTliM2Y0ODNhZTc1ZjYgbGVnYWN5LXRydW5rCiszMDU1OCA5NGI5Y2Y0Mjc0ZGUxZTA1ZjlmMTYwYTJiZGFmOTNiMzE2MzcwMjljIGxlZ2FjeS10cnVuaworMzA1NTkgZWUzNGI2NDk1MmMwZjhhNjcyYjA3ZWJhOTc1NjgwZTIzOGFlMzZhYiBsZWdhY3ktdHJ1bmsKKzMwNTYwIGNkM2M0ZGYxOWIwMzViNmFlYWEwZDE0ZmEyMmU0MjQ2YTIwMjQ1MGMgbGVnYWN5LXRydW5rCiszMDU2MSBhZmViNzBjODc2YWEzNTE0MjE3YjkxNGQxZjhiNGFkZWI1NTljNjZjIGxlZ2FjeS10cnVuaworMzA1NjIgY2Y5MDMwOWVmZWVlNjIyZGY2NDFhOTY5MDUwMGIwODM5YWQ3NTNiZiBsZWdhY3ktdHJ1bmsKKzMwNTYzIDY5NzdlMzIwYTc1NmM0Njg1ZWJjYmIyMTlkYWUzZjhkZDM3OTAxMzUgbGVnYWN5LXRydW5rCiszMDU2NCBkM2JhN2Y0YTlmODhhZmU1ZDgyNjBkOTAwZTMwNWU2Yzk4NTk4NDQ4IGxlZ2FjeS10cnVuaworMzA1NjUgYWFlOTQ5NTA2ZDJhN2QzMjgzOTMxNmM1OGU2MzhhMjViMmRlMWI2YSBsZWdhY3ktdHJ1bmsKKzMwNTY2IDE1N2E5NWY0MTdmM2Q3YmNjZDAzZjMwZmExZjNhMDRhMmE3M2IyN2YgbGVnYWN5LXRydW5rCiszMDU2NyA3OTAxZmQ5NTAxN2YwOTQ3ODNmMjIxY2VhNzNjMGY2YjFjNjhlNGY3IGxlZ2FjeS10cnVuaworMzA1NjggY2JkZjYwY2NmNTRmNWRmYzdiZWQwMGNhZGM3MDI0NGMxNWRiZGQzOSBsZWdhY3ktdHJ1bmsKKzMwNTY5IGViMzIyZWY2N2M5ZmVjNTAxOTQyZjNhMjBhNTAxNjBkZTU5YjEwNGIgbGVnYWN5LXRydW5rCiszMDU3MCBjYzViMmQwYTRhZDFkODZmZTI2OTc4ZGM5ZjRlOGE3ZmI2ZjdlNjM2IGxlZ2FjeS10cnVuaworMzA1NzEgMDZiM2ZhMjVkOWYxZGUzZmE3NTNlMTcyZjY3OWZiOGNiZjk3MzlkOSByMjNhMS1icmFuY2gKKzMwNTcyIDE3MTJlMjA0YWE5MmYxMjA3ZjJlMTZkN2Y4YmFiMWRlYTE2MzUxZDUgcjIzYTEtYnJhbmNoCiszMDU3MyBlZjUzMTQ4MmJiMzdiMGZiMzhiZjAxNjJhODYyN2NkZTIxZmYzZDMxIGxlZ2FjeS10cnVuaworMzA1NzQgZTkyMDQ0YzBiOGVjZWU4MTc1YWE0NjZlZTUzYTMzY2JhNDUzNWUyNyBsZWdhY3ktdHJ1bmsKKzMwNTc1IGMzMGY5NzI4NzYwMjk0ZjJmODhlZmUzNWQ5ZWIzM2ViMmMyZDIwZTAgbGVnYWN5LXRydW5rCiszMDU3NiAxNTY0YzY4MzllNmIwZWI4MDU5YWU0YzgxY2QwMjE1OWRjMDlkYjI1IGxlZ2FjeS10cnVuaworMzA1NzcgMGJhNDY2MDZmMGY5MTE4ZGVjYmE0MGQzZmYwODI4MGUyNThlNzdhYSBsZWdhY3ktdHJ1bmsKKzMwNTc4IGI4NjU5MjVlZjY4YWI2M2Y3NDhlZWZkNjhjZDQwOWQyMjZiOThjY2MgbGVnYWN5LXRydW5rCiszMDU3OSBjMjlhZGE2YzFjOTA0YTI3NDVkYTVhMDUxODZhOGEyOGIwMGEzMmUxIGxlZ2FjeS10cnVuaworMzA1ODAgNzUzMzA2ZjliMGEwZTMzOGM5YjEzNjIyYjRkZWY1NDU4NjAxZTIwNyBsZWdhY3ktdHJ1bmsKKzMwNTgxIGMxZjRlNTNjNDJkZDBjZTA1YTQ4MzFkYTFkYTU0MDA0MzJiNjQ1NzYgbGVnYWN5LXRydW5rCiszMDU4MiA5NzJmZWMyMWYyMjNiNzEzOGJjOWJkMDc1NWJhYzFjNzA5N2E3YzU5IGxlZ2FjeS10cnVuaworMzA1ODMgYTc0Yzg4ODM4YTU1YjQyMWY4YmJlOTkyNDllNzJmZTA3NDNhZmQyZiBsZWdhY3ktdHJ1bmsKKzMwNTg0IDJhZTFkMTc1NzJkYTZhOGU3NGZjZjVmNzAxMTZjYmU1NWZhNmM0NTEgbGVnYWN5LXRydW5rCiszMDU4NSAzMTk5ZTk3NGY1NWFhM2Y2ZGU1MmY2OTI0ZTIwOGRhYmE5MTYxNTcwIGxlZ2FjeS10cnVuaworMzA1ODYgNjRlOGM2OTg2NjEwYzJiMzc4NjQ4MDY0YmRmZmQxNGRkYzcxZjJhMyBsZWdhY3ktdHJ1bmsKKzMwNTg3IGQ1ZTA5ZDQxMmI1Mzg4MDY3ZWI5M2RjOGZlMTg3ZDBhMmY1YWVmMmEgbGVnYWN5LXRydW5rCiszMDU4OCBmNzIyNjQyMmMxZDBhNGI3MTQxNmJhMzA1MjUyYjM4MGYxMzhhZTRiIGxlZ2FjeS10cnVuaworMzA1ODkgOTAzNTBiNWQzMzk3YzRmZDY4Y2EzZWM0NmNkY2Q5OThjOWFjMWVlNiBsZWdhY3ktdHJ1bmsKKzMwNTkwIDM4MzE5NDA5ZTg5NTY3ZTI0MjhhMTZkMDVjOWUwMWJkYzc5OTEwNTYgcmVsZWFzZTIyLW1haW50CiszMDU5MSA5M2YzMjJmNTYyZjM5OThjZmYyNjUxMjYwMDJjMmQxYjc4M2QyNjgyIGxlZ2FjeS10cnVuaworMzA1OTIgYWJiNWE2OWQ2MGNiZmY5OTQ2MzliZjM0MDg2ZjhiMjE1NTNhMjNjMCBsZWdhY3ktdHJ1bmsKKzMwNTkzIGExMjM3OTNjYTE5M2JlN2Q0OTA1ZDUzYzBiNGZiY2RmMTAzZmUyNmEgbGVnYWN5LXRydW5rCiszMDU5NCAzYTI5NWNlYmE0MDFmNTdhZDZkYTY2NjZlZDdiMDU1YzNlMzc5YzA5IGxlZ2FjeS10cnVuaworMzA1OTUgMzg4ZTU0NzQ3NzQwMGY0NTJmM2IwMWNlNGZmN2U5YmQ3NjhlNDA4NSBsZWdhY3ktdHJ1bmsKKzMwNTk2IDU0ZWY3ZDUyOTZmMTA0MGFhMzhkODFhZWIzNTYxOTBkM2Q1M2QxNTQgcjIzYTEtYnJhbmNoCiszMDU5NyAxYWM5OTk0ZGM2YzI1ODEzMDJhYzk4YTUzNTYzNGVkMDkzNDIxZjYxIHIyM2ExLWJyYW5jaAorMzA1OTggMWEwZWFiYmRhNjU0YWE1NTFlZGM2ZTY3YzQ2YmI2MTNmMGIyZmM3MyByMjNhMS1icmFuY2gKKzMwNTk5IDk3YjVhYjY3YjlmMjkwOWQ4NGQyNDI5NTA2MGMzZGNiNmQ2MTI3YTggcjIzYTEtYnJhbmNoCiszMDYwMCA1MmNlNzEzNThlMzJhMTE2OWRjZjAzY2E3NGMxZjRkZmFiMzFiODZlIHIyM2ExLWJyYW5jaAorMzA2MDEgN2RhYjI3NzMxYmU4MThkMDRiMjI4ZmU1MjdjNTE2MWZlNTVmZjcxZSBsZWdhY3ktdHJ1bmsKKzMwNjAyIGJkNzUwMzc4ZDVjMWZmYzJkMzMwN2M1MDE2MDIxOTdjYzFjNTEyYWMgbGVnYWN5LXRydW5rCiszMDYwMyBlODQxYzg3M2E5MzcwM2NmNDZhMzU0NDNjMzQ0YWE1M2M5YWM4YjEzIGxlZ2FjeS10cnVuaworMzA2MDQgMjdlOWMzY2Q1OGFmZDMzMmYzOTNhNGZjYTViYTI0MmIwZGFhOTQxMiBsZWdhY3ktdHJ1bmsKKzMwNjA1IDZjNGJkNDg3ZmQyNjBiZDkzZGEwYWE5NDI2ZTZmZmUyMmEzNWMwMDkgbGVnYWN5LXRydW5rCiszMDYwNiBhMTY2NGI3ZGE3NmY3OWMyMmE3OGQyMTBkYjI1Y2VjZmY5MTQ1YTdjIGxlZ2FjeS10cnVuaworMzA2MDcgM2UyM2RlODAyYTVkYWNmZjI2YzZhNjkzMDMxYTU0M2Q4NmQzYjJhOSByMjNhMS1icmFuY2gKKzMwNjA4IGI0MjI1NWM4MjJiMWU1NzFkNWM0ZTAzZDk2YTA2Zjg1YmQ1NWUwYTQgcjIzYTEtYnJhbmNoCiszMDYwOSA4ZDdkZGJiMzMwZDMxY2JjZmE1NTkwZDE1MGU1ZTViOGFhNDQ4NzNhIHIyM2ExLWJyYW5jaAorMzA2MTAgNWFiNGI2NDhhNGNmNDdkZmMzMmExOTBiNjg1YjRkNGZlYjhmMzNjZCByMjNhMS1icmFuY2gKKzMwNjExIDk2YThlZmQ5MTk0OGMxZWFjMzU4ZDczZjY3ZjAyODIzZTkwYzlhY2UgcjIzYTEtYnJhbmNoCiszMDYxMiAzM2I0NjEwYTg5MjI1M2MzYjZlYTRjNmYwMzU3YmJkOWMxYzkwMjBmIHIyM2ExLWJyYW5jaAorMzA2MTMgZjlhNWVkMDkyNjYwMDYxMDA4Y2RkZDNlOTFmNGFhMDFkMzU2NTJjOSBsZWdhY3ktdHJ1bmsKKzMwNjE0IGExNmJjNjRmMTE0NWI0NDhmNWUyMjlhMDc2Y2IzMmYwNTNkZmMzMTAgbGVnYWN5LXRydW5rCiszMDYxNSA4MjI2NjU4YTYzYmIyZTNjNTA2MWQ4MzMzMjFmMmEwZjFiOWQ4NzE5IGxlZ2FjeS10cnVuaworMzA2MTYgNmQ3ZGFhNTMyOWM2YWNhZWM5NTYzYmQ2ZGI5NWIxYmYxM2VkY2UxNyBsZWdhY3ktdHJ1bmsKKzMwNjE3IDY5MzMxZmFjNGVmMjViMGQxMDgwMTcwMDY4MzAxMTczY2RkZTk5YWEgbGVnYWN5LXRydW5rCiszMDYxOCA0MzA2YzY2NWY4NTdjY2U4OTYwNjIzMDg0MDc1ZGIxMWMxNzc4OTFhIGxlZ2FjeS10cnVuaworMzA2MTkgMjQ0M2M1NTdjYmMzZDNjOTAwNDA4ZThkMzBiNTNlNTVkNGFjNjJhMiBsZWdhY3ktdHJ1bmsKKzMwNjIwIDgyZWFjMzFlNmUyZGM5OTc2ZDM1ZDU2OTI0Zjk5NmIxOGQ2Yjk3MmEgbGVnYWN5LXRydW5rCiszMDYyMSBhZWU0M2E0ZjM1NzBkNzIzODQxMGE2MGExODQ0MTI3NGU5ZWZkOWFlIGxlZ2FjeS10cnVuaworMzA2MjIgYTBhNmY0ZGQ3MzI4Njg1Njg1Y2ZmNzlmYjNkMGEzOTQ3YmQ0ZGUxZiBsZWdhY3ktdHJ1bmsKKzMwNjIzIGZhYmE2ZTZjODI0ZGY5ZTQ4YmJmNGYyOGFhYzEwMWRjMGMxNWJhN2YgbGVnYWN5LXRydW5rCiszMDYyNCAwNDY0YWNiNWIzZTQ2YjFlNTdiM2I4ZmI1Zjc2ZTJmYjY2MzQ2Nzg3IGxlZ2FjeS10cnVuaworMzA2MjUgNTVkZTJiOTUxODFlOTM5ZjJiZDI3ZWY0MDNkNTdkYmQzNTAzZTE2MiBsZWdhY3ktdHJ1bmsKKzMwNjI2IDAzNjRhYWU1YTVhNDBiYWY4MDdjOTNjZWY1YzQ3NDA3ZjgzY2ViNTYgbGVnYWN5LXRydW5rCiszMDYyNyBlNzE5YWI0NmFkYWJmY2IxYTg3ZDU3N2MxOGIxNjM5ZGI3NmU1M2ZiIGxlZ2FjeS10cnVuaworMzA2MjggZDJmYTFkZGNkZjZkYTZlZGYyYTE0MzY4MWUxZTI5ODc5ZTQ3MGQzNyBsZWdhY3ktdHJ1bmsKKzMwNjI5IGIyZmM0OTQ5NjNiMmVjOTQyNTUyNmU2ZjA3NzY2YWI0YzA3YmY4NTIgbGVnYWN5LXRydW5rCiszMDYzMCA5ZGI0ODgyNjEwZTViODNiYjA2ZGRhOGY0ODIyYjQ1ZDllM2UxOWE3IHJlbGVhc2UyMi1tYWludAorMzA2MzEgYTJmMTdmNGE2YTIyY2ZiOWIzYzRhNThiNGQ1NGMwY2EyOGViMGMyNCBsZWdhY3ktdHJ1bmsKKzMwNjMyIDM3YmViNGQ2MDkyOTgzYmM4M2I4YmI2NTVkYTk1MTQ4ZjdhNjQ3Y2UgbGVnYWN5LXRydW5rCiszMDYzMyBlYjkzNTNiNDNjZDEyYzE3OTJlMzkxOWM5Yjg2MGMyZWQxNWVmMGI1IGxlZ2FjeS10cnVuaworMzA2MzQgYjNjOGQ5YzQ3MmRjOTI2YmJjZTM2MGI0OTA0NGQ5M2FhZDRkYjdjOCBsZWdhY3ktdHJ1bmsKKzMwNjM1IDg2ZTdhMWY3ZjI2NTI3NzA2NjU1ZDhiZDFmYzNkMDBiNjBhYjViYTQgbGVnYWN5LXRydW5rCiszMDYzNiA3ZWM3NzE4OTM0MTAyYTk5YmI2NjMzZTVmNmZkMDUxODkzOThlMmJkIGxlZ2FjeS10cnVuaworMzA2MzcgYzBkNWZlOWEwZjFjM2U0MjM3NjMzNzEwNzBkNmI3ODU2ZGMzZWM1MiBsZWdhY3ktdHJ1bmsKKzMwNjM4IDFiODgxZDVlNGE5MDNlNWM0NjdiZWM1MzA3MWQyODRhZWYyZTQ2MzMgbGVnYWN5LXRydW5rCiszMDYzOSBkMTg1MGEzNmFlNDFmZDlkZjkzYmZhYWI5MDQ3MzhkNzFkZDg5MTQ4IGxlZ2FjeS10cnVuaworMzA2NDAgZTU0ODU1MjU3YTRmOTMwZjMxZDQyMmRhYTlkZDYwYmU1NzU0MGZmNiBsZWdhY3ktdHJ1bmsKKzMwNjQxIGFjYzgwZWFjZTRkYzEzNGUxZTMzMTc5NDI5NWZkNzZmNmE4ZDdhNGEgbGVnYWN5LXRydW5rCiszMDY0MiA0NmE2ZWQ3Y2M0ZmU5NWViODE0MTJhZGMyNjI1NjljMjA3NDZjMTlkIGxlZ2FjeS10cnVuaworMzA2NDMgNDVmMWU2YjEyYTgxM2I0M2IzOTUzMzA0ZTVmM2VmODE0MWMzM2Q3ZSBmb2xkaW5nLXJlaW1wbC1icmFuY2gKKzMwNjQ0IDA0N2I2ZTE2YWIyZTRkOWY4ZjFkMWE5ZmJhYWM0MTcxMzFlODI4OGQgbGVnYWN5LXRydW5rCiszMDY0NSA2ZGZkYjFjMDMwOGFkMWZlODY0YWVjZjY4Njc4MzJmMTVmNDdhZjI4IGxlZ2FjeS10cnVuaworMzA2NDYgODYxN2MyNTA2YjhlNDU0OWIyZGVjM2JmMDAyMGE3NDNiMzNjNGFiYSBsZWdhY3ktdHJ1bmsKKzMwNjQ3IGU4N2Q1OTBhNWRlMTg3NDdjNzVmYjEwY2U2YzFkMDRmNGQ5M2M4YmYgbGVnYWN5LXRydW5rCiszMDY0OCAyMmQ2NjA0OTRmMjljNGQ3OTFjNDY0OThlNTU3MDdlYWI4MTRmNjZlIGxlZ2FjeS10cnVuaworMzA2NDkgNDliY2ZlY2IyOTYyNzI1NmFlMjg4M2RmMGNjMjI2NTE3MWQyZTc2ZiBsZWdhY3ktdHJ1bmsKKzMwNjUwIDY1N2FlYWZiYmM5YTBjODRmZDY5ODk4MzMxZTZkOWRlZTYzZTc0YTUgbGVnYWN5LXRydW5rCiszMDY1MSBjMjY2M2NhMzFkN2QwZTM4ZGFiMzhlZDc3OGM0YTAwMzI1MzQxNDE1IGxlZ2FjeS10cnVuaworMzA2NTIgM2QyOTYyYjAyNDllNTQ1MWFlMWJmNTgxMzJlNjdhNjAzNzc4M2Y4ZCBsZWdhY3ktdHJ1bmsKKzMwNjUzIDMzMzBhNTA5ZDJiZDgzNWNmZWRjNDAxODAwY2FlODQxNGI3Y2VmODggcmVsZWFzZTIyLW1haW50CiszMDY1NCBhZjhhMzBkZTY2NzI1YTAxYWFhMDMzMDMwOTg2MWYxNTdhMWNjOGM2IGxlZ2FjeS10cnVuaworMzA2NTUgN2JiYjBkZDhkMjMwNjg5N2E0OWE0ZjU1YWM2ZjU0OTVmYjVmZTMwZiBsZWdhY3ktdHJ1bmsKKzMwNjU2IDhlMjFiY2YyMTU4YWM5MTA0N2MxNjM2OWE1NjI3MTE4MWYzZTA2NjggcmVsZWFzZTIyLW1haW50CiszMDY1NyA1ZDRmMzE2ZDg3MWMwZTZjMTViZjgxMmNkZTAxYTBhMjYxNGRiYTM2IHJlbGVhc2UyMi1tYWludAorMzA2NTggODFjZGFiYmQ2M2Q3Y2Q5OTg0NDI4OTI2ZDZkMzQxYTg0NWQ3ZTIyOCBsZWdhY3ktdHJ1bmsKKzMwNjU5IGFjZjFiNTEyMTJjNTlhOWI3ZGRlOWNlZTlkMTJjMDBmNmIxOWI5NWIgbGVnYWN5LXRydW5rCiszMDY2MCBlMjA0ZGZmM2ZjYmY5ZTA0ZDEwY2IzMDcwOTUzZjhlNTFhMWMzMmJjIGxlZ2FjeS10cnVuaworMzA2NjEgOTJlOTIyZTczMjdhZTMyNzM5MzYxZDlkN2Q0Y2I4YWI5ZGQxMGUzNyByZWxlYXNlMjItbWFpbnQKKzMwNjYyIDU3NmUyYjVkOGNmODgyNWE4NTY3ZjI3NmIzNDI3ODkyNTE4ZGE0MWEgbGVnYWN5LXRydW5rCiszMDY2MyAxMzc1YmZjYjY3N2U2MjBlZTEzNWQ1NTdlYzI4NWIwMWQ1YzFiZWIyIHJlbGVhc2UyMi1tYWludAorMzA2NjQgNDc3OTljMjc2NDYxMTdlOTZiMTUxMmIwZjhlZDcwM2VlZjIyYmM1MiByMjNhMS1icmFuY2gKKzMwNjY1IDU2YjhmOTA4ODEzY2IwY2JjNGRiMjhiMzZjZTE5OTBjMzI2M2E2NzcgcjIzYTEtYnJhbmNoCiszMDY2NiA1Y2Y0MTBlNDcyNTE2NjMwNWFiMjU0OWRlNGI1NDFkNWYxYmMzNWMzIHIyM2ExLWJyYW5jaAorMzA2NjcgZTI2NWVmY2JjYmQxNjUyMDcxOWRhMzQzYWQ0NTdlNDQ5M2UwYTdkOCByMjNhMS1icmFuY2gKKzMwNjY4IDIyMjdhZDg2ZDMzYzUyMzgyMzMxMzIyNzE4YzM0MDUzNDhkMWYzNWUgbGVnYWN5LXRydW5rCiszMDY2OSA1ZWQ4MjA2NzBhZjM1YzlkZTc0OTFmODA0YjJhYmY4ZWZlZDExNDIwIGxlZ2FjeS10cnVuaworMzA2NzAgYjk0MzU2MGU1ZjdiNTI1NjcwODRlNWEwNDRjYTllY2M1N2Y2YmFiMiBsZWdhY3ktdHJ1bmsKKzMwNjcxIDI5Zjg5YzcyNTdiZDBjOTgwNmU3Yjc1NjI0NjIzNTVlYjU2NmRiZjYgbGVnYWN5LXRydW5rCiszMDY3MiBlMTgwMDhiNzExYjAyMmZjYjVmMzc3NGExYWYwNzY2Mjg3YzJmOWFhIGxlZ2FjeS10cnVuaworMzA2NzMgYWU4MzhmNzc0ZjZjMWUxZDFmN2ZkODliYWFmNWJkMjgwMTYzYzVmMiBsZWdhY3ktdHJ1bmsKKzMwNjc0IDgwZmNlYWIwNjgzNWU2MTkyOGJlOWJhNGQ3YjU5MDQwMzdjMTc0YjggbGVnYWN5LXRydW5rCiszMDY3NSAzZjRlODBlYmRjYTgzNTRiMGIxZjU4MzA0MjVlNDI5Y2RiNWFjY2ExIGxlZ2FjeS10cnVuaworMzA2NzYgNTg1YTY0NjBmNTc3NmZlYjhmZWJmZmNhYjQ3Yzg0YjcxZGNkNThlZiBsZWdhY3ktdHJ1bmsKKzMwNjc3IGIxZjVmZGJlNjM5NzJmNzkzYmU2NzIyYzQ0OGY5ZjVjNGM3MjZhZjIgbGVnYWN5LXRydW5rCiszMDY3OCBlYjZiMzZiMjZlOGQyYjZhMmZlMDNmMzIyYWI2ZDFhYmVjZGIxMzMxIGxlZ2FjeS10cnVuaworMzA2NzkgMjMyNjAxOTg4ODVhY2YzYjFmOGQ2NWFkZjY1NjU3MGM2ZGFlOTQxOSBsZWdhY3ktdHJ1bmsKKzMwNjgwIGM1ZDAyZDUzNzBkOTM3YmYwMDZjNDZhN2NkZThlZTk0MzA0MjRjYzEgbGVnYWN5LXRydW5rCiszMDY4MSBiNDlhNDBkYjdiNDcyYTI0NWY0MGQwZTgzNTc1YzcxY2I0NzU2ZDk5IGxlZ2FjeS10cnVuaworMzA2ODIgOTEwZTc2ZGQwNGRhZjY1ZWFjMTY2ZTk2ZGMzOGE3ZTgyN2RkZGY5NyBsZWdhY3ktdHJ1bmsKKzMwNjgzIDczNGViZDQ3YmMyYTlkNDMwMzYxM2YyYWVlZmU5MDc3ODhkNjlhZjAgbGVnYWN5LXRydW5rCiszMDY4NCAyZjkzYzIzMWVhZTBlYThjY2NjOTE4MjBiMmYyZDhlMTk3MzIzODFjIGxlZ2FjeS10cnVuaworMzA2ODUgZWY0M2RlNTYyZmQxYjI1MWJiMTU3YzJiYjY0YzZlMzJjOGY2ODg2MCBsZWdhY3ktdHJ1bmsKKzMwNjg2IDBjYWRjMjkxODBlNjE1Y2YwZDE3ZWUwNjNjNjcxNTc4MDBmOWRkYmYgbGVnYWN5LXRydW5rCiszMDY4NyA3ZjA5YjE5OTJjZTlmYzM1ZWFiZTkyYTFiMzhhZjA4NTMzNmE4YzkxIGxlZ2FjeS10cnVuaworMzA2ODggY2NmNTlmMWFiNDMxMjg2NGYzMGIyOWFlZDBiODJlYTA2NmE2YWU5ZiBsZWdhY3ktdHJ1bmsKKzMwNjg5IDBiZDA3MzkxZDkyMWJjYzE1MDY0MTZkYTM0MmI4ZjIyMzFjMDgzZmMgbGVnYWN5LXRydW5rCiszMDY5MCBhZGY0YWIzZWFhNjIxYzQ0MWZhNzdiMmIyZDU3ZmEzYzdhNTczMjFlIGxlZ2FjeS10cnVuaworMzA2OTEgNGI4OWQ3NmZiMjA1YWMwZGQzMzQyNjZiNzQxNDQyMDUyMGNjZmI4MyBsZWdhY3ktdHJ1bmsKKzMwNjkyIGQ1ZDEyZWEzYTU4MDlmZWEyM2M4ZGQ3NWNlZTFkNGI3NTkyMTcxZmEgbGVnYWN5LXRydW5rCiszMDY5MyBiOWY1YmVlOGVjMThlOGZmMDRjOTgyMGQzOWU3NGMwNDI2N2M0YjhiIHJlbGVhc2UyMi1tYWludAorMzA2OTQgMGE5Nzk2YTY0NjhlZjEzZjIzMTU2NmMzMWJiOGFjMjQ4YjY4MDVkOSBsZWdhY3ktdHJ1bmsKKzMwNjk1IDQ3YjEzNGJiNTFjMzAyZDhlYTJlZDAxNDZkNjRjNzI3MzI4NDczNDEgbGVnYWN5LXRydW5rCiszMDY5NiAzMThhYmE5NGMxZTdiMWVjZWQ5NGNmZDM4NDQ2YzNkNTBiZmEyZTY0IGxlZ2FjeS10cnVuaworMzA2OTcgOTI1YTdiMWY5M2VlMDBmOGUwNGUyMWZmOGNhZDI2MmRmYjQxMjJjMiBsZWdhY3ktdHJ1bmsKKzMwNjk4IDA3YzZjMmU5OGExY2RlMWNiNTFlZmYxNmJiNWZjMzlmYTA3NDM1YWUgbGVnYWN5LXRydW5rCiszMDY5OSA2ZmU0OWRiZjAzZmQ0NmZiZjYzNjZlOGVkNWRlYmQ1MGJlODI0MDcxIHJlbGVhc2UyMS1tYWludAorMzA3MDAgYTBlMGNhYjVjOTI3ZmMxYWY5MmVmMGMxYjUxNmJmY2E2OWJjZmU0YiByZWxlYXNlMjEtbWFpbnQKKzMwNzAxIGNkZjFiYTJhYjcxNTI5NDIyNmI4ZTE1YjZhYzgyNWJlMDg2MzdkNTEgcmVsZWFzZTIxLW1haW50CiszMDcwMiA3NzA2YTA2ZjVlNjkyNjk0ZjViYWU3YmZhZjIzNDFlYjA5NjU3MDhkIGxlZ2FjeS10cnVuaworMzA3MDMgMDFkOWZkNTk1Mzc1ZmU1NWRiZDA0ZjhkYjViNDlhYmYxMmYzNjdkNCBsZWdhY3ktdHJ1bmsKKzMwNzA0IDcyODM4M2RjNzM5ZWYwMGYyNTNlZjgyYjkxZTE4M2UwMmI1ZjcyYWQgbGVnYWN5LXRydW5rCiszMDcwNSBjNzk4NjEzYTg3NjU1YmEyNjM1NzgyNzUzZjAzNDY3NzIyZTNjNWIxIGxlZ2FjeS10cnVuaworMzA3MDYgMDRhYTg2ZDQ5ZDkzZTU1NjQ5MGJjZDg5MmQ3OTU5YWE4NzBhYjg3ZSBsZWdhY3ktdHJ1bmsKKzMwNzA3IGZjNGJiMzgyMDQ0OWUzZjBmYWRlOWJiZGU1NjU0NGRkMWMwNDliNzAgbGVnYWN5LXRydW5rCiszMDcwOCBiY2FlMmE3MGUxZWM3YzlmODQ0MDMxMzgwNTI3YTEzMGI4OGVjODY0IGxlZ2FjeS10cnVuaworMzA3MDkgN2VhNDQzMDUyMmRmNDkzYTA4NGRkN2NiYTg5ZjFlN2MzNzI1YjkwZiBsZWdhY3ktdHJ1bmsKKzMwNzEwIGQwM2MxMzAzNDU2MGEzNjJlNGQ4ZDE5MjlkOGRjZmFkYTk2ZGVjNzggbGVnYWN5LXRydW5rCiszMDcxMSBiMjljZmFkNDQwOTdiNThjMmIxNjJhYWRiMWQ4ZTc1ODRlNWJlNzQyIGxlZ2FjeS10cnVuaworMzA3MTIgYjM0NjI3MjU0NGExODJjMTZiZDNlZDAxZDRmYWFkMzViYmQwY2Y0OSBsZWdhY3ktdHJ1bmsKKzMwNzEzIDkzNDczMjc4NzQxOTRiZjhhZTQ2NGJhOWI0OTRjYzk5MGNkMWFlNmQgbGVnYWN5LXRydW5rCiszMDcxNCA1OTMwOWQ0YmY4NDFiNjkyOTYxNzc3NzBiZmVhNmRmOTE5Yjc4ZDQ0IGxlZ2FjeS10cnVuaworMzA3MTUgNjVkYzAxMTBhNzM1YzEwMTI4ZWVmMjA5YzBkMTRmNjk1OGI5ZWZhYyBsZWdhY3ktdHJ1bmsKKzMwNzE2IGQ0YzhhZjkxMTlkMTkxOGZmNjZmNzk1N2IwMjY3YmRkM2ZiYjAwYTUgbGVnYWN5LXRydW5rCiszMDcxNyBhNTFlNWFlMjk4ODJiY2IxYmY1ZTM0MmEyYzNiZGUyY2Y4YmQwNjM2IGxlZ2FjeS10cnVuaworMzA3MTggYjg3MjQzNDFiYjFhYmMzMmY5ZmY2MTVkOGYwMWQzZjg3ZWZkNWYyMyBsZWdhY3ktdHJ1bmsKKzMwNzE5IDc3YjcwYTg4ODRjYjIzYjg2ZmQwMTJlNDFhMDEyOGQyN2RhM2I1NzYgbGVnYWN5LXRydW5rCiszMDcyMCA5MjgxMmY2Y2Q2M2I1YjJjMmJiZDg1NWVjN2JmMDcwZDI1MGZkZTI5IGxlZ2FjeS10cnVuaworMzA3MjEgZGM2ZmI4YTZhZjNkZWYyNzgwZWZmNWU2OTQ4MDM4MjY1NjQzNDAwYiBsZWdhY3ktdHJ1bmsKKzMwNzIyIGFlMTIyNjc1ZGYxZTkwY2U5NjQxNDM2NTY0MmFmN2I0NDdlOTQ5MmYgbGVnYWN5LXRydW5rCiszMDcyMyA4MWRhNzNiOTNjM2M2MmYzYzIyNjc2OGQ3YTJlZTJjNjczZGMxNGIxIGxlZ2FjeS10cnVuaworMzA3MjQgMGEwMzVmOTI5OWE5NzlmNzg5YzFiZTExNmY1NzliMDU2ZTEyNjdhNiBsZWdhY3ktdHJ1bmsKKzMwNzI1IDNjOGQ5MWYzZjRjNjdkZTc4MzE3YTU3NGYzOTFhZTZkYjI2NDc4ZGMgbGVnYWN5LXRydW5rCiszMDcyNiA0ZjE5Yzg1MjRmMWFjN2U0ZTdhY2I0NDE2OWQ3ODkxZDE0NzE5ZTUwIGxlZ2FjeS10cnVuaworMzA3MjcgNmFlMzYxZGY4NzBlZWEzMThmN2JiMDBkYmE0ZDQ5ZmEyODIxZjMyYiByZWxlYXNlMjItbWFpbnQKKzMwNzI4IGIwZDUyODMyN2M0YzFhNmNmNmNjNTM5ZTljZmU0NjZlOGM2NWE3NzAgbGVnYWN5LXRydW5rCiszMDcyOSA4MGVhMDQ4ZmMwZDczNWYxZmRhYTkwYWVmYzdhMDA2YjY0MmUwZGJkIGxlZ2FjeS10cnVuaworMzA3MzAgNDI4ZWVjZGZkNTdmY2FjZTJlN2QxOTFlYTg2OTBlNjMwMThjMzQ5NCBsZWdhY3ktdHJ1bmsKKzMwNzMxIGE0OTRmNWE4NjM5ZjI5MDQ1ZmI3OTcwNzVjMDRiNmMxMjU1YzRlZWUgbGVnYWN5LXRydW5rCiszMDczMiA0YTYyYTk0MWYzYjEyYTMwMzVhY2I3MTliYzVkOGQwOWRjNTQ5OTVmIGxlZ2FjeS10cnVuaworMzA3MzMgZGUyYzk1ZDgxOTg0MTYwZjU5ZWYwMDFhYjVjYWEwMGFjM2UxMDA5NCByZWxlYXNlMjItbWFpbnQKKzMwNzM0IGY5Njc3MmUzMWUyMzNmNzc3ZWQyMWViYjczOGI4Y2Q1ZDM5OTQwNDkgcmVsZWFzZTIyLW1haW50CiszMDczNSAzYjNjZTk2NGFkYzljMTNmMmZhNTY5OGEyYTdmNjc0ZjJlMTVjM2RlIHJlbGVhc2UyMi1tYWludAorMzA3MzYgN2E0ZDc4MjcxNWY0Yzc2NjI0OTRjZTZjY2ZkOGQyMjNlMWI0MjM1ZCByZWxlYXNlMjItbWFpbnQKKzMwNzM3IDEwYjdlNjAyNDViNTY5NDAxYjk2MzYyN2ViNWY4ZDA3MmI4NDc2NjMgbGVnYWN5LXRydW5rCiszMDczOCAzOGQyMjM4Yzc5NWU0NmU5YjE2ZTdhYjM5OTJmMjRjNDAxNTQ1MjQyIGxlZ2FjeS10cnVuaworMzA3MzkgMmVkNTE4YWIyZmQyMGEyZDIyMjk0MDQ0NjQ5YTMxNmYxZDIyNTBlMSBsZWdhY3ktdHJ1bmsKKzMwNzQwIDE3ODc4ZDQ1OGNmMTJmM2RmZDEzZTJhMTA0OTBhZmY3NzhhZWQ3YTQgcmVsZWFzZTIyLW1haW50CiszMDc0MSAxMTE5ZDU4MjYwOWExNGYyNGUwZjRhN2U2ZjIyMDU1MDM4YzUyYzJmIGxlZ2FjeS10cnVuaworMzA3NDIgMjA5ZDY3MjEyODgzZDAxMGMzNmM2ZTU2ZjFkMjczMWEwNmM5MGNjZSByZWxlYXNlMjItbWFpbnQKKzMwNzQzIDIwMWNkZWIzMDVmNjRhMDk0MDNmMmZlZDQ2YzkyOWU2ZTExNmM0MDQgbGVnYWN5LXRydW5rCiszMDc0NCA0MjBlYTIwNWYwMjQxZWU0NTE5NTQwMjZjODJhNGY1ZWFhNTA3ZjU1IGxlZ2FjeS10cnVuaworMzA3NDUgNWQ0MmRiYTQ5ZmU1MDcyNzViOTgwYjRkMWRjNTlkNDAyODI3NjY3MiBsZWdhY3ktdHJ1bmsKKzMwNzQ2IGViZWIwMGI4ZDUwMmEwYzk5NTNiNDFhZDkwY2Y4ODJlYmVhNzdlMGUgcmVsZWFzZTIyLW1haW50CiszMDc0NyAxMWIzNDU2NGEwZmQwNTgyMWRhNDIyMDU2Yzk4MDE5MmIzNDhkZWJjIGxlZ2FjeS10cnVuaworMzA3NDggM2EzM2JkMGY5YzRiZmRjNzU0ZWM4ZmUxZTEzNTIzYzljODA4ZGFiNSBsZWdhY3ktdHJ1bmsKKzMwNzQ5IGYzNGMyODY1MGYxNGUxOGU1ZmYyNTM1Y2M4NDExNWUyZDk5NWQzMWEgbGVnYWN5LXRydW5rCiszMDc1MCA3ZjM3ZWQ1NDI5MjAwM2VhOGYwY2M0OGZkZGUzYWMzNDU1Y2ZjYzYxIGxlZ2FjeS10cnVuaworMzA3NTEgMThmMDcyZDE0MGE5YzdmZTc1ZWU0YjE0NTE0YzZjNzE5OTJmMmQ3YyByZWxlYXNlMjItbWFpbnQKKzMwNzUyIGZkM2IwNzExYjI1ZmIwNTVmYWYwYmJkODM4Mjc3NWNkODJjNWY0MWEgcmVsZWFzZTIyLW1haW50CiszMDc1MyBlZWJjNGZkYWM1OTRlNjkyY2YxZjA4MDBlM2ExZDQ4OGFhNTg3YjNiIHJlbGVhc2UyMi1tYWludAorMzA3NTQgZTlmNDViOGVmZDZiNGQ3Yzg3NmI0MGU1YmYyNGE2NmM2NWZhMzgyZCBsZWdhY3ktdHJ1bmsKKzMwNzU1IDhiZDZiMmFlMjg3NGIwNzlmYjBlNWFmN2JjOTUxZjUxMDFiZWY1ZmMgcmVsZWFzZTIyLW1haW50CiszMDc1NiAzZWRlOTBkNmUxY2YxMjVhMDIwM2I0OWVmM2M3NDk4NDhkOGYxNzVhIGxlZ2FjeS10cnVuaworMzA3NTcgODRhOGU3ZDFkYWE5NzY5ODE1ZDk5ZDZkM2VlNzk1ODUyOWI3NjVjNiByZWxlYXNlMjItbWFpbnQKKzMwNzU4IDNiZmRiYzNkZmJjZTkyOGM5MTcxZGM0OGE4NzE3OGY1NGYxOTJiNDEgbGVnYWN5LXRydW5rCiszMDc1OSAwYTZiODgxOTBiOGIxZDNiZWY1MmE5Y2U0NzM1MjdlY2U1YThhOWUyIHJlbGVhc2UyMi1tYWludAorMzA3NjAgZjU5ZDgwYzdlMWJiNGQxOGY5MDAwZDUwMWQwMzFmYmM5ZGZjZjRlOCBsZWdhY3ktdHJ1bmsKKzMwNzYxIGY5NWU5ZjNjOWZlYTc4ZDRkNzE3ZWRhMDNkMWY1MGQ4NjQ4NzQ2MTAgbGVnYWN5LXRydW5rCiszMDc2MiBhNzcwNmQ0YzY5MGMyMGFlNjFlZTgxNmQyZDkzZDQ1YTRmZDA4YmYxIGxlZ2FjeS10cnVuaworMzA3NjMgM2FmYmQ1NWZiMThmYTRhYjEzYTM4Y2YxYjE0ZDIxNTE2M2U3NzQ0YSBsZWdhY3ktdHJ1bmsKKzMwNzY0IGIzZjEwNTM5OWQyMjgxMWRiYTVkMTk5YTk1NjYwYzQ2NjFmNDQ3MjQgbGVnYWN5LXRydW5rCiszMDc2NSBkM2FiNTMyYjNiNmQ2ZWJiMjBhNzFmNmEyNWYyY2M5NWYxNjc1ZjFlIGxlZ2FjeS10cnVuaworMzA3NjYgYTU2YzNjNTYyODhiOWZlYjI3ZGI1YmE5MDlkZDQ1MmI1NzBkOGQ4OCBsZWdhY3ktdHJ1bmsKKzMwNzY3IDVkZGI5MGY4MTY5YTU4OTM5YWU0NDNiMDc3MjRiN2JkYWIwMmI4MmMgbGVnYWN5LXRydW5rCiszMDc2OCBjNDE1MGY3ZjZhNjk2MTUyNGFlODg4NzIwNzcwMmUyYjc3NTdiNGYxIGxlZ2FjeS10cnVuaworMzA3NjkgN2MzNGU1YmYyZTIyYjFmODU4OWY4Mjc1ZWZlZWVjZWUzMmMxM2YyYiBsZWdhY3ktdHJ1bmsKKzMwNzcwIDE2YTg3Njc0NjI4NTBjNzQ2ZDAyNWMzOGZhYmRkOGFjMGY0NzgyZmQgbGVnYWN5LXRydW5rCiszMDc3MSBjOTk0OTNhYmEwOThkMjUzYzJkYjc4ZDE5NmExNjQ1OTFlYTdmNmUwIGxlZ2FjeS10cnVuaworMzA3NzIgNDBjZDc0NzgyNjAwODExYWQwMjg3ZTc4YzRkODM3MjdmNjVkMTdiYiBsZWdhY3ktdHJ1bmsKKzMwNzczIDFjYTdiMmQ2OTI0MjVkYzY3Yjg0MDkzMzZjYWE1ZDM4YmE0ZjQ0ZmYgbGVnYWN5LXRydW5rCiszMDc3NCAyNjE1NDc3MDM0NDNkYWI0NTQwOTdiNTBkNTE1NTFjMDUyNzRkNmUzIGxlZ2FjeS10cnVuaworMzA3NzUgYmFmZjU2YWRmYmMzMzgyNDhmOTVlYmE3OWY1Nzc1YTQxZWM1ZGNmNiBsZWdhY3ktdHJ1bmsKKzMwNzc2IGFlODliNTU2MDUwYWUwNTcyZjRjNmRlYmQ1NzI5MDA0OTg3M2NhOTEgbGVnYWN5LXRydW5rCiszMDc3NyAzZmJmZmQ3MzZkOWQwNGMyMjA4ODk2ZWQ0NzY5MjNkNmQzZjliYzZhIGxlZ2FjeS10cnVuaworMzA3NzggZThjMWE5NTQyZjY2YTY2OGQ3OGY3ZDJmZmJlNzhjZWIzZjg4NzUxYiBsZWdhY3ktdHJ1bmsKKzMwNzc5IGZhZjI1NmE1OWVjZWIyOTM3NzdmMjc2NDcyNDVlNTRiZTM0NDAzZWEgbGVnYWN5LXRydW5rCiszMDc4MCA0Y2RiNTAxYWI2YTIxNzdhZjNiZGEwODgyMjc2ODU2ZDhkNTdmNDVjIGxlZ2FjeS10cnVuaworMzA3ODEgZjA1NzY0ZDcwODJjYzFhMGExYTJjN2ZiNjE3MmY5MTNiOTViMjkzMCBsZWdhY3ktdHJ1bmsKKzMwNzgyIDc3NDI4ZTgzNWQ2N2VkODA2MzQwOGE0ZjE5ZWNiNTFkOGY5N2NlMzYgbGVnYWN5LXRydW5rCiszMDc4MyA3YWNmNTc0NDBmNGUwOWZlNWJlZmNjYTA4NTU5YzlkYzNkNWU0OGU0IGxlZ2FjeS10cnVuaworMzA3ODQgOGQwZTA3YzI3MGVmOWIzMTE0Nzc0Y2FiZWYzN2UwNTU4OGJkOTk0NyBsZWdhY3ktdHJ1bmsKKzMwNzg1IGFmODExMTcyNzE3ZDBhMzEwMTRlZWRmYWU1NDRkNDdhYjY1NjRhMjEgbGVnYWN5LXRydW5rCiszMDc4NiBhOWRkYWRmNzg5ZWFiOGY2OThkYTM3M2U3YzcyOWE3M2U2MjRmMzRkIGxlZ2FjeS10cnVuaworMzA3ODcgYjc0NDUwOGQ1YjEyNjQ2YWYyMGJjZWMyNTE0YWMzYjExM2VlOWI3YSBsZWdhY3ktdHJ1bmsKKzMwNzg4IGJlM2QxYjdlNjJkYzI2OWNiYjg0N2JkYjQxY2UxMjg3YjQxNGI5YjcgbGVnYWN5LXRydW5rCiszMDc4OSBkYmU0ZjU3ZThiYjI5NTZjYzk4YWU5ZjIxOTczMTIyOTAzNWM0ZjQyIGxlZ2FjeS10cnVuaworMzA3OTAgMzkyZmVlY2QyZjFjNzFlZDhiNzNjYzkyNzFlMDgxNmVkZWUyOGQzYiBsZWdhY3ktdHJ1bmsKKzMwNzkxIDkxZDY3OGE5NGM3MzYzZjUwZGU5ZDlmNjczMDJkYzAwNGYyY2IxYzggbGVnYWN5LXRydW5rCiszMDc5MiA2NGQzZmU5MDRhMGFmOGQ2NzRiMjRlYWUwNDVkZDVkZjM5MzdhY2JhIGxlZ2FjeS10cnVuaworMzA3OTMgY2RhNWFiNjI1Nzc0ZmFkZDUyMDI5Nzk0NWQ5NGUyMmE2NjI2NWNlYyBsZWdhY3ktdHJ1bmsKKzMwNzk0IGQyYWU1YWZmZGUxNGU3OTY0MDEyYTQ2MTc5MGY2N2JjYTZmY2E5NmYgbGVnYWN5LXRydW5rCiszMDc5NSBiZWRiNzVkOTBlMDNjMzk5ZjJlMDE2ZjYxODJlYTM3YWRhYzAzMTM3IGxlZ2FjeS10cnVuaworMzA3OTYgN2ZkZDVkNjJjNjE1YWYyMGFmNjRiOTgxMDJhNWMxOTg4ZmViZTg1ZCBic2RkYi1ic2RkYjMtc2NoaXpvLWJyYW5jaAorMzA3OTcgOWRhNDNjZGU4YTE2NjFlNjhjNDU1ZmFhZThlNDc2ZmU1YjQyYWM4OCBsZWdhY3ktdHJ1bmsKKzMwNzk4IGNiZjM1NWYyOGNhOWY2ODkyODc4OTkxNDljOWEzMzQxMGM3ZTVlMGUgbGVnYWN5LXRydW5rCiszMDc5OSBjODIzNGUyNjExNWM2NmQ0YWM5YjQ4YTJiZWM2ZTYxNjRlMmI2YmFmIGxlZ2FjeS10cnVuaworMzA4MDAgOWRlMDY0YzdhMjQ3ZjExZmMzOGUwNGJjZjlhNzQyMTAwMmVlNTE4MSBsZWdhY3ktdHJ1bmsKKzMwODAxIDg3YjY2YjZmZjVlNzZmNzcwMmVhM2ViNzQ1NTA3M2UzZTU0NGRmNzQgbGVnYWN5LXRydW5rCiszMDgwMiA1YTA1MDIwMGY3MzY1ODZjNWY4ZDUwY2RkZDc3ZmZiZjdjOWU4ODY1IGxlZ2FjeS10cnVuaworMzA4MDMgYzZmNDliNzk3OTYzZWNiZmY5ODVhYTRiZThjN2RhYWVkNmM0MzdlYiBsZWdhY3ktdHJ1bmsKKzMwODA0IDg2Njc1NmY2NzBmZmQ1ODQ1M2QxNWFjZTAwYTdiNGE4NzVkOGYxNTggbGVnYWN5LXRydW5rCiszMDgwNSBkZjI3NTRhY2E3MTcwNGY0YmE0N2U4NDQzYWFjZTQ1YzVmY2U2MmRmIGxlZ2FjeS10cnVuaworMzA4MDYgNDBlNWViOWUwNGUwZTgzNWFiNWNlNWY2NWVjNWMyMTA5ZWI5MDFhMCBsZWdhY3ktdHJ1bmsKKzMwODA3IDA0ZTU2MTBjNWVmZTk3YWY0NThmY2RkNDY2MWVjN2Q3NDY1ZmE1ZWIgbGVnYWN5LXRydW5rCiszMDgwOCA4OGZhYTk4NWQ5OGMzZjM2NjNhMDczNjc2ZDUwM2NmYmMwOWJlODI1IGxlZ2FjeS10cnVuaworMzA4MDkgOTdmNDk0YmY3MzE5MGFkOWJkMDZiMmJiYWU1YmQ4NjcxYjdhNzU2NCBsZWdhY3ktdHJ1bmsKKzMwODEwIDc1ZGE0OTk3NzU3MWE0ZWFiOWExOTJiMDJhNmEyYWI4ZjEzMTNlYjYgbGVnYWN5LXRydW5rCiszMDgxMSBlODNhNDJhOTBkZjE2Mzk2YTdhZmJmODc1ZWQ0MGU4YTVmZDdlOGUzIGxlZ2FjeS10cnVuaworMzA4MTIgNzAzOTM3NTIyNmE3ZjI2MjdhZjBiNTU0NThkYWJhMDEyNTJlNzRiOSBsZWdhY3ktdHJ1bmsKKzMwODEzIGQ3ZjgwMDI4MzAxZGViNzRhMDFmNTg1NTEyNzNmZGQ0MTFkNTkzZTcgbGVnYWN5LXRydW5rCiszMDgxNCBiZmMxNDBjN2UzZDA2NTFmMDNhMzkzOWFlYjEyZGVkOWY0OWYzOGE3IGxlZ2FjeS10cnVuaworMzA4MTUgNzA1NWY0YzFlZGNjMzQxZTdkNGM0NTRkNmExOTRjNjg1MDA3YzI4YiBsZWdhY3ktdHJ1bmsKKzMwODE2IGI4Mzg3NzMwZGQ4ZmY0MTVlNzkyN2Y2ZmEyZDQ0MzgzYTg4MDc2MDkgbGVnYWN5LXRydW5rCiszMDgxNyBjMWM0NTQ3NWYxNzBlNDBlN2U5MmNkZjUyMzlmMDY4N2U4MzNkYzIzIGxlZ2FjeS10cnVuaworMzA4MTggODE1NTFhZGYxMmY2ZDFlY2YyNDVjODk5ODZkZDc3YTczNDZjZThhZSBsZWdhY3ktdHJ1bmsKKzMwODE5IDA1ZmY5MDRlZTRlMDdiNmM2NmNmNzJhNThlMjA4ZGNlNzQ0N2JjZmEgcmVsZWFzZTIyLW1haW50CiszMDgyMCA0ZmE5YWQ4NWMzYjE1ZGMyZGY4YmU4NjU0NWFiN2M5Zjc1NWI4MDNkIHJlbGVhc2UyMi1tYWludAorMzA4MjEgMTM2OWQyNGJjODYxZGNhMjY4NzE1OGRlOWQwMDE0MDVlMzY4MmI5MCBsZWdhY3ktdHJ1bmsKKzMwODIyIDVhOTc1ZTgyZDcwZmI1YmMwNDljZDQ0NjIwZDhlZDdhYWQ1OTQxZjIgbGVnYWN5LXRydW5rCiszMDgyMyBkZTgwMTczM2VjMTg4NzViYzJjYjZkOGQzNjI2N2QxNTI1ODkxMDU4IHJlbGVhc2UyMi1tYWludAorMzA4MjQgMGY4ZDE4OTMxMGI0NWE5ZmRiNjQ1NDNmNTRlOGNlZTkyODBhZjNmZSBsZWdhY3ktdHJ1bmsKKzMwODI1IGE1NTUyMzBiZTNjYjAwNzNiM2U4MmRhY2FiMGJiNzg1N2ZiNTg5YTggbGVnYWN5LXRydW5rCiszMDgyNiA3MDQ2MzlkMjBhNmNkNjI1YmMwYTMxMmI2N2Y1ZWI0ZTQxNDg4NzhiIGxlZ2FjeS10cnVuaworMzA4MjcgZWE3NjgwZWFmOTM3ZGY3MzgyNjQyNTJkNTU2MDczNmQwMGYwYmY3NSBsZWdhY3ktdHJ1bmsKKzMwODI4IGRhZGQxNzhiNjVmYTU2OGFlMGRhNmM4NWUwNzhhMGQyOTg1OGFlMzEgbGVnYWN5LXRydW5rCiszMDgyOSBmZjE3OWJhZGUzZjBkYzM5ZTRiZDBhOTljZTVjMzJkOWRhMzg3ZmU4IGxlZ2FjeS10cnVuaworMzA4MzAgMTg1ODQ3MTQwY2E1ZGJkZGExMWZmOGYyYjFlMzI2M2Q4YzFhZWNjMiByZWxlYXNlMjItbWFpbnQKKzMwODMxIGEyZjg0ZDI4MzVmYWY4MjVkOGUwM2U0YzYxZDQyYTQ3MmI0OWUwMTIgbGVnYWN5LXRydW5rCiszMDgzMiBlYWE2MTJhNDFkZDBkNjllYjBkOWYwOTU3MmJhMzBhZDViZDQ2NGUwIGxlZ2FjeS10cnVuaworMzA4MzMgOTIyMDA5OGYwMzI3ZTliMmMwMTMwYzQ4MGU4N2VmMzY4ZjUzODk3YyBsZWdhY3ktdHJ1bmsKKzMwODM0IGM2ODI5MDc5MGQ1M2Q2ZTAxZGMzMjI3MGRkNDA5NGM4MTEyZmM2Y2EgbGVnYWN5LXRydW5rCiszMDgzNSBjZGFiMmI3NGYzMDdlYWQ2Mzc5NzU2OGU1OTU0M2Y2M2IzOTFkNTgwIGxlZ2FjeS10cnVuaworMzA4MzYgZWZhMmY4YWJiMDJjOWE2MTViMDA0Yjg5MWYzNGU5NDMyOWNmOGNkYSBsZWdhY3ktdHJ1bmsKKzMwODM3IDNjNzAyM2M5ZThlMjY3MWJkY2RkNzY0YmQ5NTY4OTNjNmJjZTc3M2YgbGVnYWN5LXRydW5rCiszMDgzOCBkOTY2YmI1NGIzZGUwZDhlNWQ3NTA0MWY4MTE1ZjJmNDA5OTJmNDg1IGxlZ2FjeS10cnVuaworMzA4MzkgNzA2N2QzNmMzY2Y0NzAxOTU2MTA3NWNjYjU1NzA5MzFhNTVkZjg1YSBsZWdhY3ktdHJ1bmsKKzMwODQwIDc1ZjM4YzQxNWU3ZDRkMDdjODY0YmIwMDEyYmZlYWFkOGI5YzI4ZGMgbGVnYWN5LXRydW5rCiszMDg0MSAxNTYyYzFlMTBiNDk3ZGE5NzE0OGNlZjk2YzIwZDZjYWM5MzA2OWQ5IGxlZ2FjeS10cnVuaworMzA4NDIgMjk5ZWYyZGFiYjUyYzY2MjRjMDM3ZmIzNjMzN2Y5Y2ZkMjE1NjYxMiBsZWdhY3ktdHJ1bmsKKzMwODQzIDg4YmYxMDMxMzU4NGRlNDE2N2YzODY3NDA1OGY5NTc0NjhlNTAyODIgbGVnYWN5LXRydW5rCiszMDg0NCAxYjYyMjlhZGIzZGY5ZGYwMmM0NGE2OWYxZWM0MjlhZTM1YmM0MTBjIGxlZ2FjeS10cnVuaworMzA4NDUgZDVhMzM4NmM3NmY0OTQ1NmNiNTA1YjFmOTgyNzIwODA3ZTI1NmI4NCBsZWdhY3ktdHJ1bmsKKzMwODQ2IGM0MDQ4NzljZjk5OWIwMzMwNWUxMWIxOWFkNDUwZjVkNTc3NDI0MGEgbGVnYWN5LXRydW5rCiszMDg0NyA0NGUzNTJkN2Q1MmZmYmI0NGZhZDEwZDcyMWFmMjUwMTc2YzU1YmZkIGxlZ2FjeS10cnVuaworMzA4NDggZTJkYTBkZjM2MTNkMWNhM2FjNGFiMzg4NzJhMjAzODYxZDU1OTliZCBsZWdhY3ktdHJ1bmsKKzMwODQ5IDY4MzMzOWI4NTJhYmQ0OWI5YmRhNmI2NWJmYTVkYjA3MjRiZjI3YmMgbGVnYWN5LXRydW5rCiszMDg1MCA4NzA0NWE4ZWM1NDcxNzkxNjAzMDcxNzVlOTlhOGYwNDkxYzUzMDU1IGxlZ2FjeS10cnVuaworMzA4NTEgNmNkYTdjNjEyMTU0YTc2ODY4NTc4YzlkZGE5NTJjNTZmNTQyYzIwNCBsZWdhY3ktdHJ1bmsKKzMwODUyIGEwYTkxNDcyM2M0ODBiNzEyNmMxOTlkNmM0MmNiMjgwYTM2ZWQ3ZDMgbGVnYWN5LXRydW5rCiszMDg1MyA1OTdhYTk5NjZlYzZiYjMzMzA3N2E4NzY0Y2YwOGUxZjcyMTVjNDg0IGxlZ2FjeS10cnVuaworMzA4NTQgZjRjNjk0YTAxNDI1NjgzNWI3Y2NhMGFjNmVkNWY0NTRjZjY2MTc2NCBsZWdhY3ktdHJ1bmsKKzMwODU1IDIyZmI3NmM1MzkyNjc1MTZkZDYxYzY1YWU3MjhjZjVjYjVmYWZhM2MgbGVnYWN5LXRydW5rCiszMDg1NiAyYzY0OWM3YWU4ZjNmMmJmN2M0YWUxZDAwYWM2YTExMjg3ODYyZDBjIGxlZ2FjeS10cnVuaworMzA4NTcgY2JjYTBiY2YxYzMxZTllYWNkOTFkNzE5ZDA4Yjc3NGFiMzdhN2RhNSBsZWdhY3ktdHJ1bmsKKzMwODU4IGI0NzBjYTg0ZmQyYjVlYzk5ZWE2OWQ2YWYxZTliZTUzYzIyODgyYTMgbGVnYWN5LXRydW5rCiszMDg1OSBlODA0NTZhZDE5NWI2OGQ4MDZlYjY2MDZiYjYxZDIxMjQxMDdmYzJhIGxlZ2FjeS10cnVuaworMzA4NjAgZDM0ZWYwMGQ5ZGE4YTA4NjA4NjQ0M2Y3MjVmOGE4NjNkN2M0ZDFhOSBsZWdhY3ktdHJ1bmsKKzMwODYxIDhiNTNiMGNlMDZkNDU4ZTdmNDFhZTYwMWFhMjcyNGM0ZGJjYWYyY2IgbGVnYWN5LXRydW5rCiszMDg2MiBiYTYzZDcxN2M3NWYwMDA0YzBiY2VhYzcxMjRlNWI5YTNiM2NhMjIxIGxlZ2FjeS10cnVuaworMzA4NjMgOWZlMzZhZTJhNGEyYjJhODVmNGJiZGFkOGE0OTUzYmMxNGM2MDIwMiBsZWdhY3ktdHJ1bmsKKzMwODY1IDliZTMxNDlmYmVlNzE3YjQ2M2E4OGFkNDcyOTBhYWY5N2ViZGRmYzUgaWRsZWZvcmstbWVyZ2UtYnJhbmNoCiszMDg2NiA0MTJlNjZlMzUzMGVlN2YwYjY3MTI3NDhmZGQ4MGJiYjlmZjRiNWMyIGxlZ2FjeS10cnVuaworMzA4NjcgNGY1OTk4MWY3ODE3ZGFjMTE1OTA4OTA0MjliMzY0OTdlYWY0NTI3MCBsZWdhY3ktdHJ1bmsKKzMwODY4IDE4MDA2N2MyODgwZmVlNWM0ZDQ2Y2M4MjI0ZGMzNGU5OGQ5ZTE3MTYgbGVnYWN5LXRydW5rCiszMDg2OSAyMDU1ZDAzNzI5NWNmMDk5OGMwYzkwYzNjYWRiZmIxMGUzZjcyMWNiIGxlZ2FjeS10cnVuaworMzA4NzAgMzBkYThjOTZmZDI5ZWYzNjViODhmYzk2YWUyOTUwNGMwOGJiYTczZSBsZWdhY3ktdHJ1bmsKKzMwODcxIDVhY2Y2OTY3ZDZkZDM3MTQ4NjBkYzNkYzk2ZjE5MGMwMzlmOGFlOTkgbGVnYWN5LXRydW5rCiszMDg3MiBkZGI1MmY1NjczZGI1YTg1M2U3MjVmZWI2NWY3OGVjMWIxODlkZTg0IGxlZ2FjeS10cnVuaworMzA4NzMgMjI5OTJmYTUxODMxMGZlZjE4YTg1YzE4OTk0MDgxNjJkMzEyNjhiOSBsZWdhY3ktdHJ1bmsKKzMwODc0IGJiZjE0MTg1YmYxZTdlNmI2ZDI5MWUxMTg0YWM1ODhiZTQxMzIxMTYgbGVnYWN5LXRydW5rCiszMDg3NSA0MDY3N2ZlODUwM2QzMGUwZTFjMWI4ZWVlNTJlMWFkMGRlYjkxN2M1IGxlZ2FjeS10cnVuaworMzA4NzYgMjdhZWRjZjQ2YmNjOTJmZjNmMTc5NGRkY2I4MTE3OThlYjAzMjczZiBsZWdhY3ktdHJ1bmsKKzMwODc3IDQyOGM4YTQyMzA0M2VhZGQzNjViNmE4NjMzYTY5YjNhNGUzNTYyMDEgbGVnYWN5LXRydW5rCiszMDg3OCBkYzYxMTYyNzgyNTkzZDhjNzQwZGZlMWQ4ODBiNTMxMzhjYTJlYTI4IGxlZ2FjeS10cnVuaworMzA4NzkgOGRiMmU3NGRkYjBlNWFhNGY0ZjBlY2ZjZWVjOGM4ZjI0NzdiNzA5MyBsZWdhY3ktdHJ1bmsKKzMwODgwIGFmZDFkYzYyZTM1NGRlZTMzYWEzOWNjNDM4YWUyZDhmNTYyOGJhZmIgbGVnYWN5LXRydW5rCiszMDg4MSA1OGJhZDc2OTc3NmU1OTk5ZTRhZDMzMTNmN2UzYTIwMzYyOGQ5ODY0IGxlZ2FjeS10cnVuaworMzA4ODIgMDRlNDU2NTgzMmJkZDM5YzhiNGI2M2E0ZGYxZmZkNDFlOTJhY2YwZCBsZWdhY3ktdHJ1bmsKKzMwODgzIDI3M2IyYjQ5YmZkODY4OTk4NjA0YzRmZTJiNGY2ZjFjYzg2ZDRhMmIgbGVnYWN5LXRydW5rCiszMDg4NCA4OTFlYzRkMjY2ZDE3ODY3ZWIwYzMzYzE4NDg5NjQxYTk1MGU4YTIwIGxlZ2FjeS10cnVuaworMzA4ODUgNGE0OWI1YWE1ZDIxMjcxOGM0MTRmNWUyZjkxN2RjYTYyMTRmMzI3OSBsZWdhY3ktdHJ1bmsKKzMwODg2IGViMWU1MjlmZGZkZjBkNGI5YzJkMjI5MjU4ODZkM2JmZDkzYTA4YzEgbGVnYWN5LXRydW5rCiszMDg4NyBmZGU3OGQ4MGUwOTg5ZDJhMzQwM2FmM2M5NWQ1ZDNkYWQ5M2RiN2ZlIGxlZ2FjeS10cnVuaworMzA4ODggMDBmMjk0YmY4Mjk5ZjYxNzYyMzFlOWY2NTEwOTJjZTNkMmFkY2JkMyBsZWdhY3ktdHJ1bmsKKzMwODg5IDYxNDdiYzE0ZDI3N2I2ZGJkNTZhY2VkZDcwNzFjMGRkNWM3NDg5NDkgbGVnYWN5LXRydW5rCiszMDg5MCBmZjBlMWVkOTk4ZGVkYWIzY2Y3MTZlNWUwYTA5NThhMGZmM2U2MzI5IGxlZ2FjeS10cnVuaworMzA4OTEgYzFkYzUwZGY1NzhjZGNlYmE1ZjI1ZDI0NjFhZWQ3MjBkMTMzOTdiNiByZWxlYXNlMjItbWFpbnQKKzMwODkyIDEzYmVlYTJkMmQyNmFhMWExZjUxYTFhYzg0ZmM0OTQzNDQwMzlmNzIgbGVnYWN5LXRydW5rCiszMDg5MyA5YzRiNDIwN2U5NzlkYzNiZmMwNDYwOWE4NDFmMWUxZmQyOTRmYWEwIGxlZ2FjeS10cnVuaworMzA4OTQgNWIzZmJmZjA1ZmZkYTliM2ZjZTIwOWJlNzBkOWYyYjExMDQ1Njg1MyBsZWdhY3ktdHJ1bmsKKzMwODk1IGI3MjU2NDk2YzliMDFjNzQ2M2ZhMWQxYjk4NDkyZjNmYjk0ZWRiYzggbGVnYWN5LXRydW5rCiszMDg5NiBkMjljNzhkMjdjNWUzYjg4YWQ4ZjE5ZTE3ODY5YjMxOTM1OGFiNDI5IGxlZ2FjeS10cnVuaworMzA4OTcgYmUxNzhhZmQ0MTgxNDUxMWZlYTg4ZTQ0Njc1NDQ4MGZkMjE3YTYyZCBsZWdhY3ktdHJ1bmsKKzMwODk4IGUyZDc5ZmZhMjkyOGM0MGVhZDRlMTVkZGI3ODFlNTE2MGM1ODhjOGEgbGVnYWN5LXRydW5rCiszMDg5OSA4NDBlOWZlZDkwOGExZmI4NWRmZWQ1ZTIxNTU2ZjljZTQ1ZTQ0YzY3IGxlZ2FjeS10cnVuaworMzA5MDAgZjNiYWJhZWRlMTg5YTBiNmEzYTJjZmQ3ZjI3YTkyZGFjMTI5OWM4NCBsZWdhY3ktdHJ1bmsKKzMwOTAxIDgxNTY5Y2NkZTViZGYwMGRmNjVlZjc1ZmRkZTE0YmM4ODRlNzNhOTQgbGVnYWN5LXRydW5rCiszMDkwMiBhNDU3NTMxYzBmZDQ5NTEwNzIxNzY5NTBlMDRmMWMxNzdmMGY3NzM0IGxlZ2FjeS10cnVuaworMzA5MDMgNjI5NjAzZjY0NDEyNmNhMzUyYzExOTk3MGNkZDE3M2JjMzdkODAwOCBsZWdhY3ktdHJ1bmsKKzMwOTA0IDhkODY5ZjkyMWYyMjY0MjEyN2Y5OWYwMjgzNjA0ZjJiMTE5ZTM2MGYgbGVnYWN5LXRydW5rCiszMDkwNSA5YmNmODVkMDEzNWMyZTc0YWZlOGM4MTcyMDM0YWQwNmM5ZWE3ZDk4IGxlZ2FjeS10cnVuaworMzA5MDYgNTE3NGI0YTcxZTZlNGI3NzRmYTk1ZmY2OGYyN2U1NmNiYjhjZTg2NyBsZWdhY3ktdHJ1bmsKKzMwOTA3IGQzNjNmODNjMjg0NmE1MmY1NzIzZTE1NWNkMmE2OGUxM2IwMzBmN2MgbGVnYWN5LXRydW5rCiszMDkwOCA5MWE1NzMyNDNkNWQ3OWVhYTUwODI3OGNhYmFkYTU1OGU5NjkxMzAwIGxlZ2FjeS10cnVuaworMzA5MDkgMDE1NjQ3YzdlMTg0MzM2NGE2NmEzYTBmOWE5NjVhMDdmMzY4NjdhOSBsZWdhY3ktdHJ1bmsKKzMwOTEwIGY5YzQ4ZWQ2N2E5M2FkNmVhNzkwOTUwNDUwZDI2Yzg4NGZlZWFmNzYgbGVnYWN5LXRydW5rCiszMDkxMSBlN2NkYjUwM2QxZTA1YmFlOTE4NGIzNzRkOTNjYmNiZjdjZWIyZmY3IGxlZ2FjeS10cnVuaworMzA5MTIgYWE5NGM4MjBiM2VkMDJkY2Q5YjQ2MmU0Yjc5NWFmZTYwYjUwYzIxNSBsZWdhY3ktdHJ1bmsKKzMwOTEzIDg4MmUzZWVhYzNkZDdhMzA2MDVhMDZhMTZmNDg5YWE3NWFhOTdlMTcgbGVnYWN5LXRydW5rCiszMDkxNCBlN2NkM2NjMTEyZDMwMDEwOTI0MzUzNzc5Nzg5MmNhYzUzM2E2MjAzIGxlZ2FjeS10cnVuaworMzA5MTUgMjhiM2Q5YThlZTFhMzM2YWE5NmIwMjU1YzhiZDg2NWU1NTkxM2VlNCBsZWdhY3ktdHJ1bmsKKzMwOTE2IGU3YmU2ODY4MDMzMjZlNDgwODFmMWM0YWQxOTZjN2QxZjA5YzQzMjQgbGVnYWN5LXRydW5rCiszMDkxNyAxMjM1OWU1Mzc1MTJjMzI4Y2QyM2Y4MjFkZGYxZDk5MTZmNzgyNGE4IGxlZ2FjeS10cnVuaworMzA5MTggMDA2NDA3MTRhNTlhNWQ4OGQ4YzNkNzE2MjM4OTI1ZjYwNWEyMzk1OCBsZWdhY3ktdHJ1bmsKKzMwOTE5IGYxZGQ5MDM1N2RjYmExN2NkODI5Y2EwZDQyNGI4ZWI5NzdiYjQ4MTQgbGVnYWN5LXRydW5rCiszMDkyMCBlYWYzZjgwNzAwYjNkNWQxOWI4OWJmYWI4OTk3OWUyMTY2YTBmODM0IGxlZ2FjeS10cnVuaworMzA5MjEgNDc5NThjOTk0NTJkZTM2ZTJmOGUwM2MzY2NhZTI4ZWY3NzhhOWI3ZiBsZWdhY3ktdHJ1bmsKKzMwOTIyIGQxNmE5Nzc3NDZhMjM3YzYyNGU0OTUzOTBmMzg0ZTI1NGU2MmI3YjEgbGVnYWN5LXRydW5rCiszMDkyMyBkYTBjOTkxMjU1YzJlZjY0ODQzMWQwNGZkMDFlYWRmODg2Yzc2MjA2IGxlZ2FjeS10cnVuaworMzA5MjQgNDE3MmIyODZkNjU4YzdhMWI4YTVlMTY1YjA3NWVlZWIzYTFjYmU3ZSBsZWdhY3ktdHJ1bmsKKzMwOTI1IGU5NDVhMDNlZTU2YzY5ZWY1N2Q4NjlkYWEwZjhmYmU2NWZiNTFmMTEgbGVnYWN5LXRydW5rCiszMDkyNiBhZWQyZWY5NmVkNTRkNzk1OWJjNTMxYmIyMDViYzJiMWJmMmZjMWMyIGxlZ2FjeS10cnVuaworMzA5MjcgNmViNWUxYTA5Yjk1ZDVlNmE5MWE3M2QwNjYxZTEyYjgxMzI5MDhlZSBsZWdhY3ktdHJ1bmsKKzMwOTI4IGFjZWRlY2QyMDEyNmFkZmIzMzdkNDExYzJlOTQ3MGFiYjgwMWY3ZmEgbGVnYWN5LXRydW5rCiszMDkyOSBjYWE2ZGY5ZTA4ODA1ZGNjNzU0YTczZjQwYzA5N2ZkZThhMzY1NWQ3IGxlZ2FjeS10cnVuaworMzA5MzAgZDE5YmMzYjE4MTNjYjUxOGM3NmJkZWEyMjVmNjAyMTExMzk4ZmJmZiBsZWdhY3ktdHJ1bmsKKzMwOTMxIGVhNWVlM2U3YmZiMTBhNzhmYTg4NzE5OTc3MjZkNGRmMDFhOWJjNGYgbGVnYWN5LXRydW5rCiszMDkzMiAxZmQwNGMzNzQwOWFiM2ViNTQ3ZTAwZDVmMWQ5ZDA4NTEyNjA5ZDNmIGxlZ2FjeS10cnVuaworMzA5MzMgYTI0ZmQ0NWFjZWIxOGJmYjIxNGE0OTc5N2MwM2MwZDc3MWI2NmQ2YyBsZWdhY3ktdHJ1bmsKKzMwOTM1IDU2ZDgzZDBjNTViNjBmYzE3ZjliZDY3NDQxNGVjMGFmYWUyZDgzYmYgbGVnYWN5LXRydW5rCiszMDkzNiA1NTBjMTVjNDkxOWIxNjI4M2NjODBiZWI0YTRhZDg1MjBiMjVhMDJjIGxlZ2FjeS10cnVuaworMzA5MzcgNWMxMzNkMTNmMzI1NjJjYzQyZjc2MTgyNDFiNjYwZDg0YmU0Njc1MiBsZWdhY3ktdHJ1bmsKKzMwOTM4IDk5MjRmMjJkNjYwNGU0Mjk0YjMwYjZmOTZmYWI5MDZlMTM2MmQzMmUgbGVnYWN5LXRydW5rCiszMDkzOSAyNzQyZWE5M2FiMjMzYTQ4ODI3NjE0OWZkM2Q2MTk0NzU2ZWNjMzhjIGxlZ2FjeS10cnVuaworMzA5NDAgMjBkZjI0YTEzMzQ5MDI5ZTZhMjU5NWRmMjZjNTlmYWEwZmVkYzAxNSBsZWdhY3ktdHJ1bmsKKzMwOTQxIDllNDMwYWNjY2RiOGY1YzAxZTA2M2I4YTlkMjdlZWEyZWVhMWUyOTEgbGVnYWN5LXRydW5rCiszMDk0MiAwMDlmM2FiYmY3MjYyYTI1YWZlOGNhMWQwMDMyMmFlMDFmYTVjY2U4IGxlZ2FjeS10cnVuaworMzA5NDMgYzc0Y2VhMjQzNzJlOGY1ZjMyMWNhMTNhNjBlNjM5ZmVhZjE5Mjk0NyBsZWdhY3ktdHJ1bmsKKzMwOTQ0IDdkM2M2YWQ0ZTNlZGM5YzJjYWYyOWE4MjNkNDRiMzM4MDhjZTY0MTcgbGVnYWN5LXRydW5rCiszMDk0NSAwYWVhYTNkMWUwZmY3OTQyYzE3YTc2ZWY0MGI3NjdjODgwZTI0YjMzIGxlZ2FjeS10cnVuaworMzA5NDYgMjRjOGZiZWM3NjFmMjMxZDdmMzhmMjI4NDliN2VkMDQwYjA0YzM5NyBsZWdhY3ktdHJ1bmsKKzMwOTQ3IDNjM2U0YzhjNGE5ZGZmMDI2YjJjYzE2YzNjYjA3YzI3MzA5MTdjMzEgbGVnYWN5LXRydW5rCiszMDk0OCA5M2JhNDJjZjRlNTNhY2Y4YjExMmJlY2NhOWQ1YjVjMThlMmYzNWNhIGxlZ2FjeS10cnVuaworMzA5NDkgZmEyNDUzOGY4NjUwYTU2MmM1NTAxNGUwYTIyZGJiYTBhMWQ2ZGE5NyBsZWdhY3ktdHJ1bmsKKzMwOTUwIGUyNmEyZjdmMjI0YjU5YTQyMjM4NjM5ZDc0NGUzMWE3YWI0ODgzMTYgbGVnYWN5LXRydW5rCiszMDk1MSBiZjBiYzg0ODE1MDIxNDNiMWM3ZGIyMTBlYmNmYzk4MTgwMzNhODVkIGxlZ2FjeS10cnVuaworMzA5NTIgM2NkOWRkZDU1NjJlYTA5OWJhMmFiNmI1OGNiY2FjZDJhZDJhYmQ4NyBsZWdhY3ktdHJ1bmsKKzMwOTUzIGI0NjVjOWQyMTk2YTNjYmE4NzkzYmZlM2FiM2ExYjc4YTAzMzE4MDUgbGVnYWN5LXRydW5rCiszMDk1NCAxYWUwYjE0MjM3MGU0MDg0ZWRhNGNiMjIwNDkyZTNmNmJjY2EwMzllIGxlZ2FjeS10cnVuaworMzA5NTUgZjhhOTAwODVhY2M0MWU5YTA2MTJiYWI3OGM4YmFiZDYzMjQ0ZmZmNSBsZWdhY3ktdHJ1bmsKKzMwOTU2IDQwNDc4MjE0MTliNTdhODg1OTBjMTlkOGI3ZTEwYjRiODYzNmMzMzEgbGVnYWN5LXRydW5rCiszMDk1NyAzNTczNjU5MWRjMWU3YTUzMWVjMzJkM2M5OTlkNzRiMDM3YWQ2YjdjIGxlZ2FjeS10cnVuaworMzA5NTggNzExNmNiNWJhYzUwODNkNDliMjJmYjVjZTJmNTljY2RlY2VmNjIxYyBsZWdhY3ktdHJ1bmsKKzMwOTU5IDQzMGVkMWM4ZTA3MWRhYjAxMTU0MGYzZGE5YzI4YzlkMjdmNjBlODQgbGVnYWN5LXRydW5rCiszMDk2MCA2MGZmMWJhNDI4YzNmYTBiMDY0ZGU3ODI5MmI5MDA1MGRkMDc2ZjQyIGxlZ2FjeS10cnVuaworMzA5NjEgOTFhZTI5MmMzYTk3ZjBjZDM4YTAyYmMzYjI5ZmJiNWIxOTc4MjJhNCBsZWdhY3ktdHJ1bmsKKzMwOTYyIDE4ZThlZDgwZThkMTc0OGRmZjVmM2ZiNzQwYTNiMzBjZDQ1ZWJmMmIgbGVnYWN5LXRydW5rCiszMDk2MyBkOWQyNGNlMWNiZjY1OGQwNzMzYWFiZDgzMjkwNjZkYzA3NDM1NzVkIGxlZ2FjeS10cnVuaworMzA5NjQgZTRhNWY3NTM1MDhiYzUwYjAxNTQ0N2ExNGRiNTZiZDkyODhhNjBhNiBsZWdhY3ktdHJ1bmsKKzMwOTY1IDVkYjJjZjNlNzdkYjMzYzk4MGZkMGUxNDljODBmNjc2NmI0N2Q5MWIgbGVnYWN5LXRydW5rCiszMDk2NiA2YjBkYmRlMGZlZDcxNWEyOThjYjc0MjExYWVkMWRmZjU5YzIyZWY1IGxlZ2FjeS10cnVuaworMzA5NjcgOGYxMzcyOWE5NGE5NjZhMWExOGNhNDdkODExZGM0NjU5ODQ0YzM1MCBsZWdhY3ktdHJ1bmsKKzMwOTY4IDFmNjMyNzE0MGZjMjNjZmI4MDdkOWY5MTZlMTM1ZWZiOTE1OTRjZjcgbGVnYWN5LXRydW5rCiszMDk2OSBhMTYyNjJiYzYwOThkZDA4MDE3YzM2MTY4Zjg0ZDQzZTJiZTJkYmQwIGxlZ2FjeS10cnVuaworMzA5NzAgOTI1ZWRmOGUwMDBjYTdkZmFhMjEwZjc4ODZhMzEzNGZjMjlkYWExOCBsZWdhY3ktdHJ1bmsKKzMwOTcxIGQ4YzJjNDBiMzg2YjE5YTBkNjc4NmVlYjg3MTkxMWY0NzFiYTU1NTkgbGVnYWN5LXRydW5rCiszMDk3MiBiM2NiZTdhMDE0MmE3OGQ5Njc1NjllNmJkNzMyYzJhYjYzNGZlODkwIGxlZ2FjeS10cnVuaworMzA5NzMgMGE0N2Q4MzJhNjRiNWI0ZjEzYTIwYWM4ODQyOWNkYmE2NWJmMzYxOSBsZWdhY3ktdHJ1bmsKKzMwOTc0IDQwMTVhMjdhMWQxM2YyYzc0ZDYzYzIyY2YxZWJhMTk0Njk2YWVjMmEgbGVnYWN5LXRydW5rCiszMDk3NSBhMjMwZDEyMDBiYzM1YjNkMjY2NWFmZDNhOTljYjE2OGQwNWI3NGU2IGxlZ2FjeS10cnVuaworMzA5NzYgN2ZiNWU4YTU0MWFiOGZjZTczYWQ2NTlmNGU2ODIxMWMwZTg2OTUyNiBsZWdhY3ktdHJ1bmsKKzMwOTc3IDM1MDlhZDA3ZDE1NmFjYjZlNTY4MmIzYTFjNDRmMWIxZmEzMDkxNjkgbGVnYWN5LXRydW5rCiszMDk3OCA5ZmUzMjE1NGQyODkwMmVlNjVmN2Y5MDA5ZjQ0NTRjMGZmYzMwOGU4IGxlZ2FjeS10cnVuaworMzA5NzkgYjJjZTljNjM3YTJiYzYwMmM4MjkwNDcyNTk2NjVlMTVhZWM3NDEyZSBsZWdhY3ktdHJ1bmsKKzMwOTgwIDExNWVlNDA1MThhODRkY2FkZWJiMWI4ZWUwOGNjYWNkNGFhN2ZlMjcgbGVnYWN5LXRydW5rCiszMDk4MSA2MmM2Njg5M2MyZGJhMmE0NTAzZDQ2NGExYTkzYWY4ZWI2YTY4MDFiIGxlZ2FjeS10cnVuaworMzA5ODIgNGMwM2VmMDZjM2ZmNzA0ZmExZDBiOGMyOGIzNmFkNzUwMjA1MWY1MSBsZWdhY3ktdHJ1bmsKKzMwOTgzIGVhNDgwNDA2Y2M2NTYyMWNmMGVlNjJkNTQ3ZTY0MzhiMzVjZDZhZmEgbGVnYWN5LXRydW5rCiszMDk4NCAwNTU0YjdjNWY2ZDdkMjY5MjAzOWMwMGYyNTJmMTFiYTQyYjJmMmRmIGxlZ2FjeS10cnVuaworMzA5ODUgODgzYWYyOGI5YTBkMDY2MGVmYmIyZjk4NzExYzlhYjljOTQzOTg4MyBsZWdhY3ktdHJ1bmsKKzMwOTg2IDI2YTc5MjAwNzY2NTI1Yjk1MmU2YWZiYjQ3ZDgwZGY0NDk5MjYxMWQgbGVnYWN5LXRydW5rCiszMDk4NyAyZWU5NzQyYWFkZDg5MjE0N2U1NTQzMDIyYzAyYmUyNmYxMzNiNGNjIGxlZ2FjeS10cnVuaworMzA5ODggZWQwZDRhZTZjNmNlNDA5MTg4YzA1ZjFiNmMyYmQ4OTEyMThjMmIzOCBsZWdhY3ktdHJ1bmsKKzMwOTg5IDhkY2U3YTVlNWZjY2QyN2VjNTBkYjIwMTVkNDI0ODJjZjEzOTg3NjAgbGVnYWN5LXRydW5rCiszMDk5MCA3NjRkZjJmZGM5YzYzNjc1ZWM1MGE2ZDJlMDcyYzFlZTg3NzA1OGIwIGxlZ2FjeS10cnVuaworMzA5OTEgZjQ5MTFmN2FhZDAyNTM4NTI0MDZiY2YwMjBmMzQwYjQyY2U0MDkxYSBsZWdhY3ktdHJ1bmsKKzMwOTkyIDZmZmFmY2VmOThmYjM3ZmQ1ZjQyMTU3OTZlNmU4Y2EyMjYyMDc1ZWUgbGVnYWN5LXRydW5rCiszMDk5MyA1Yzc1NDhiZjM3N2IyMjg4YzZmMzg1OGVkMDBiODNlYTA4NGQyYjI5IGxlZ2FjeS10cnVuaworMzA5OTQgMTdkODdjNWJhNmU0YjcxNTIwMDcyZTNkNzU2MjZjYWM4MThkMmIwNCBsZWdhY3ktdHJ1bmsKKzMwOTk1IDA1ZjdlMWM2NWQ3ZTgzODNiNjMxN2Q5MjVjMTg4NTAxMTRmZmNiNjYgbGVnYWN5LXRydW5rCiszMDk5NiBmNGU4YTZkNGFhN2MzN2UxYmY2NDRkNTBiOTliYmJlZGI4YzJjYTUzIGJzZGRiLWJzZGRiMy1zY2hpem8tYnJhbmNoCiszMDk5NyBmOGQyOGU4MmM0Y2M5OWEzYmUxMDJhNTRhZTllNjg4ZDE2Njg5Y2FiIGJzZGRiLWJzZGRiMy1zY2hpem8tYnJhbmNoCiszMDk5OCBkZTQwNjE1ODRjODM5MTU3MjI1ZmQ4Yzk0MTNlNjdlZWYxNDMyZDk3IGxlZ2FjeS10cnVuaworMzA5OTkgZmNjZDllOTQzMjExYWQ2M2IzZTY2NjcxM2UxYmUwYjY0NjViOWFiNSBic2RkYi1ic2RkYjMtc2NoaXpvLWJyYW5jaAorMzEwMDAgYjc5YzFhZmZmMTEyODM1MWE4ODIzMDI4NzhjM2QzMzc0NWJjYmYxZCBic2RkYi1ic2RkYjMtc2NoaXpvLWJyYW5jaAorMzEwMDEgMTU0YmFjMGIyNmE1NGVjMTkwOTI2YzdjOGJiNTU0YjZhNmYzYjczYiBsZWdhY3ktdHJ1bmsKKzMxMDAyIDMxMDE0ZmJlMjBkYmIwODgzMDE0MWU2YTc0ZDc0NDU2NzAyZDk5ZTQgYnNkZGItYnNkZGIzLXNjaGl6by1icmFuY2gKKzMxMDAzIDM4YzdjMmQ0Y2Q1YWNmNDM1ZTNhNTY0NDAzMTliZDgyYzI1OTQ2ZDcgbGVnYWN5LXRydW5rCiszMTAwNCA5MjRhZGU4MDEwNGIxNzM5NjY2YWQ1MTcxNDNjMDljOTA0NjM1ZDE3IGxlZ2FjeS10cnVuaworMzEwMDUgYmE5MzEwZmVmNDlkZDgyOTM4ZGVmODc4YWQ1YjEwY2M3YTI3MTU0OCBsZWdhY3ktdHJ1bmsKKzMxMDA2IDZlODllODBlNmEyNjdjNTE2NDY3ZGIyYWY1YjgwMWFkMGUyY2I1NzEgbGVnYWN5LXRydW5rCiszMTAwNyA3MTJiMDFkNTJlOGNkMmIzZjk1YmE4ZWU5NDRhM2IyNGZhY2Q4OTQzIGxlZ2FjeS10cnVuaworMzEwMDggMTRiMTc1OGRmZGRlZGFjZGEwNWI4NTZmMjg1NDkxNGYwMjgwZTA2YiBsZWdhY3ktdHJ1bmsKKzMxMDA5IDI5ZmQ5ZmRhZjUyYTkwNWE3NTc0NzlmODc5ZTExNzViYjk4ZTE0ODYgbGVnYWN5LXRydW5rCiszMTAxMCBlZTBlNTE1NDA3ZmQ5NzlkZTMxOGIxZjVhOTdmMjRiYzAyMjY1NTE4IGxlZ2FjeS10cnVuaworMzEwMTEgN2M4ZGZkM2Y0YWU5MDZlM2FhMTA3N2UyNzBjMGQzMDFjNzJiNGU5YiBsZWdhY3ktdHJ1bmsKKzMxMDEyIGY5Mjg0YjU3YjQyMjlhZWQ4NmM5MWY0NmZjYmNiYjk1ZjhmOTZlYTEgbGVnYWN5LXRydW5rCiszMTAxMyA1YmE3OTM0YTdiYTAyMTg0YzUyZTNkNTA1N2EyYWU1MzE5N2I4ODRmIGxlZ2FjeS10cnVuaworMzEwMTQgMzZmNzFmZWY1YjEwOGZjODAzMjMwYmZhMzEwZmVmZGJkZDE1ODlmZSByZWxlYXNlMjItbWFpbnQKKzMxMDE1IGU5NTc4NzQ3ZjQzZGZlNjZiNzA2NTQ0OWJmZTZkMmU4YTdmMTZjZjkgbGVnYWN5LXRydW5rCiszMTAxNiAwOTA0ZDg3OGI4ZjE4Nzc3ZGFmNzY1NzkxN2Q2NGI2YzRhZjYyZjUxIGxlZ2FjeS10cnVuaworMzEwMTcgZTljZDIyODEwNGExMzBiZmQ2MTE4NGUyM2EyMWZmYjI5MzgzMDc1NiBsZWdhY3ktdHJ1bmsKKzMxMDE4IDNiYzcxZDIzNGEyOWU5ODk5Mjk4ZTliNmIzYmI1MjJjNDVjYjBlY2YgbGVnYWN5LXRydW5rCiszMTAxOSBiODNmYThmYTEyMWU4NGQ4MzNlNjBhNTlmZmZiZGJlZThiNmU1ZGVjIGxlZ2FjeS10cnVuaworMzEwMjAgNDI0N2U2NDBlMmE2ZWIyYTU4Yzc5ZDAwYmFiYjU4ODU5MWRlMWE2ZSBsZWdhY3ktdHJ1bmsKKzMxMDIxIGE4OWMwNzdlNjQ4YTE4ZmNkMmU0NmI0MmU4NDc2YWZmMDNlYjE5MDEgbGVnYWN5LXRydW5rCiszMTAyMiA3YjdkM2I5MDYzNjMwZTRhZmZkMTRmNDA3NTQ5MzEwMThlZjYwZDhlIGxlZ2FjeS10cnVuaworMzEwMjMgMWYxNmFiZmFmNjNlOWYwZWU0ODhhODllY2U2OTNiN2ZiZTBiOTA4YiBsZWdhY3ktdHJ1bmsKKzMxMDI0IGFkYmMzZmU4YzgxY2MzYTNhMGE5NTFiZThhNDlmZTNjOTgyZDE5ZDEgbGVnYWN5LXRydW5rCiszMTAyNSA1ZTQzNTVkODBkZDE1OTczNDBmYTc2YjE3MDMxZjhlZDBkNTMwOWE5IGxlZ2FjeS10cnVuaworMzEwMjYgZTkwNWIyMmUzOTJiYTU4ZmVmOTM1ZWI2N2JiM2U2MWFiMDk4OWFkNSBsZWdhY3ktdHJ1bmsKKzMxMDI3IGQ4NzUwZTBkM2ZiODg4ODM2YWI3ODM4YTgwNjVlZDdkMmEwYzYyOWEgbGVnYWN5LXRydW5rCiszMTAyOCA0YzM1YTY2ZmNlNGRmMGVkOTVlYjkzOTA0NDdhZmJkYjI1M2E5ZTEzIGxlZ2FjeS10cnVuaworMzEwMjkgYWUzMWZjYjdiNThlNGNjZDg4MTEyMWYwOWYyOWIwMzA0ZjRmZDI3MSBsZWdhY3ktdHJ1bmsKKzMxMDMwIDA5MGE1MGNiMjY5MDBlMDg5ZTQ1MjdmMzQxYWM2YmEzYWJkM2RmMzEgbGVnYWN5LXRydW5rCiszMTAzMSBlNDJlMzAyNWJhZTNiNDlhNTg3NzI1OWQ5Zjc0YTg0MTE2ZmNhNGRlIGxlZ2FjeS10cnVuaworMzEwMzIgNjIwNTM5MTY1ZTUzMDhhYzlhODQ4MGEyZWU3ZGUxMDg4MzY0YWYzMyBsZWdhY3ktdHJ1bmsKKzMxMDMzIDBkZDhkOGE3NjAxNWVmMGRiYjk2YmVmZDkyZWQ3ZmZiZGY1ODYyNjAgbGVnYWN5LXRydW5rCiszMTAzNCBmZTQwZmNmNDllZTU2NmRmYjVmYzI5MTg5MTcwZDE1NjZjMDE2ZTI5IGxlZ2FjeS10cnVuaworMzEwMzUgYjQ4MGE0ZjcwN2Y2MTc4YjIwNjI2ODAxZmVkMDU2YTM0ZTNmMTczNCBsZWdhY3ktdHJ1bmsKKzMxMDM2IGQ5ZDU3ZjVmOThjZGE3MjJiNzg0YWZmOWRlODhjMGVmY2FmMzI4NTcgbGVnYWN5LXRydW5rCiszMTAzNyAxNDI3NmU0M2VjZTYwNDc5ZGFjNjY3MjE0MDJlNDFkOWM5Zjg1NTA3IGxlZ2FjeS10cnVuaworMzEwMzggNDRmNDY1NjgzOTI3YjNjZmM2ZGMzYzNhNmYwMzRhNDBkOTk2MGU1YiBsZWdhY3ktdHJ1bmsKKzMxMDM5IDIwYzU4MWMyM2JjZTMzMzY4NjUyNDM0NzQ5MGQ0OTJkYTU0Y2Y5MWQgbGVnYWN5LXRydW5rCiszMTA0MCAwZGUxNDI1MmQyNmNlNmRkM2MxNDExZmE3YWNhMjAxZTVjODE0Njk5IGxlZ2FjeS10cnVuaworMzEwNDEgYTJkOTZlN2Q5MWExYTlmOWViMDkxNDczNzc1OGY0MzVlNDM5MWZmOSBsZWdhY3ktdHJ1bmsKKzMxMDQyIGIxZDFmZTdmYjUxNGIxNzNhODA4Y2E1ZGI5NjlmNWI0MGVkMjY1MDggbGVnYWN5LXRydW5rCiszMTA0MyBkNjJiZDI0MDcyOTE5YWIwNDUzZTQ3ZmZjYWMyMmNlNDNkMjkzMzQ2IGxlZ2FjeS10cnVuaworMzEwNDQgMGU2ZGNlMWVjMjMxY2Q0N2M0MzBkMmYxZjViMjljNGFmMmU3ZWQyNiBsZWdhY3ktdHJ1bmsKKzMxMDQ1IDVmMzI5NDJhMjI1YWRhOWVhNWI5NWFkZjgwYmZkYjc1YjAwOTlhOGMgbGVnYWN5LXRydW5rCiszMTA0NiA1MWFiYjVlODYyMjYyNTU1ZmNlNTI4ZDNhNDI5ZWE3NDQzMDdiN2M2IGxlZ2FjeS10cnVuaworMzEwNDcgYjJiNTc0MTE4ZmZkYTNmZGY3NGQ2YTJmYmUyYTlmYzg3Njk5OGFhYSBsZWdhY3ktdHJ1bmsKKzMxMDQ4IDgxYTJkMTg4ZWExZjlmNmEzM2ZhOGI0OTVlZTA3OWNjZTUwYjBmZWYgbGVnYWN5LXRydW5rCiszMTA0OSA2Nzg2ZTg2YjhmZjBhZDBiYTI1NzM4MmJkM2ZhYWE1YzhiZjJjZTRjIGxlZ2FjeS10cnVuaworMzEwNTAgMTdiZmQ1ZGJjMGYxNmRjODVjMTZiMjA4OGFjYzQyODA3ZDY5MzIzNSBsZWdhY3ktdHJ1bmsKKzMxMDUxIDBmOWViODQxM2I2MWI0ZTYyNTFlNDlmMDc3NjI1OTQ3YmNiMjJhMmEgbGVnYWN5LXRydW5rCiszMTA1MiBiMTczYTJhMjMwODI1YTQxZmFiMWRhZjhkMGM1NDhlM2I0ZjJiOTc3IGxlZ2FjeS10cnVuaworMzEwNTMgZDVmNDdlMTQ2NWQ2NmRlNTAzMjgyOWFiYmUyNGUzNTBlNzcyZDAxOCBsZWdhY3ktdHJ1bmsKKzMxMDU0IDBiYjE1NGZhODA0N2M4ZjBmYzgwM2JlY2FmNmEzOTVkMTQxYmU2ZmYgbGVnYWN5LXRydW5rCiszMTA1NSBkZGVlOGMxNTgzMDFjNjgzY2ZiOThlNTdmOTZmZDI2OWVmYzkwNTUyIGxlZ2FjeS10cnVuaworMzEwNTYgMmUxOGRiY2Q5ZTA0Y2FiZDY0N2VkYzMyYjlhMGNhNzg4YzNjMmI0ZSBsZWdhY3ktdHJ1bmsKKzMxMDU3IDY4OTI1N2NhNGQwOTJiNmQ3OWQ4NTIwMzQ5YjcwZDVkZjEyMTlkNGEgbGVnYWN5LXRydW5rCiszMTA1OCA2OTZjNDJkYTc4NzUzMzE4MjExMzBlMDg5ZWI0NTE0MmJjN2Y2MDczIGxlZ2FjeS10cnVuaworMzEwNTkgNTc2NWQ1MjRkZTcxZTJhY2RiOWVkYmIwYTNlNTAyZmVkNDU1NmRiYiBsZWdhY3ktdHJ1bmsKKzMxMDYwIGQxMTIyM2RhYWY2MWQzYzUxM2JlY2FhMGFmMTlmOTMyOWQ3M2E2YmUgbGVnYWN5LXRydW5rCiszMTA2MSAwMmYxMzhjNjM5YTA4M2ExMzc0ZTA3NDQ2NmZkN2Q3MjA4OGNmNjZlIGxlZ2FjeS10cnVuaworMzEwNjIgODQyZDZhMjQ0OTdhZTgzYTUzNjkyODFiNWViYWQzYWIwYmFjN2FkMiBsZWdhY3ktdHJ1bmsKKzMxMDYzIDk5MDk5ZGViNjAyNjQwYmI5NTZmNDMxMjY5MmUzOTM2ZGM1YmFiMzcgbGVnYWN5LXRydW5rCiszMTA2NCA3MmIzOGQ1ZmU2MWY5YWZlZWQyYTJjNmZkNGQxNjBlNWE4NTRjYWE4IGxlZ2FjeS10cnVuaworMzEwNjUgY2JjODYwMjhkOWYzYmFiNzBhZDgyNDk3NWIzMWFjYzAwODljZmFkOSBsZWdhY3ktdHJ1bmsKKzMxMDY2IGZkYzUyYjExOTcwOTBlMTMyOTBmOTg0MzhlNTU4MzU2MmE2NDgyMjEgbGVnYWN5LXRydW5rCiszMTA2NyA4Nzk0M2ZhZjRmZDIxNmE2MTAyZTA3ZDQ5OTU0MWM4YWJjNTExOGU2IGxlZ2FjeS10cnVuaworMzEwNjggOTdiMjgxNzA2MzRjY2YxOTJjOWFlZjU2YjU4MDg5Yjk4NjQ2MTI3NCBsZWdhY3ktdHJ1bmsKKzMxMDY5IDJhZGQwMDhiMWI3ZDA3NWQzMzAyNzc0YmE5OWY1NWZlMmZiMjI2OWQgbGVnYWN5LXRydW5rCiszMTA3MCA4OGNlZWVlZDcwYmQxNTFkNWVjMDkwMTExMzliYmVjOWFjMzg0YzlhIGxlZ2FjeS10cnVuaworMzEwNzEgMGM4ODEwMzczYTFhNzcyODY0OTBjOTYxYmI1NDVjZjQwMTQxZDVkZCBsZWdhY3ktdHJ1bmsKKzMxMDcyIGVkMmQyM2QyZmQ0MTJiOWY3ZTc2NWYyNjZhMTcwOWUwNWQwYzkyZWUgbGVnYWN5LXRydW5rCiszMTA3MyBjNDdkZTg4YWU4NWQ3ZTU0N2EyZmQ5MTZjNTM5ZGI1ZmYyMzkxM2MyIGxlZ2FjeS10cnVuaworMzEwNzQgZjk4MjJiMThjZjkxOWM1NmNiYzlmZWE2NWNiNTgzMzk5MWNkOWIzOSBsZWdhY3ktdHJ1bmsKKzMxMDc1IGJkNjNmMjhjZTdhOGJmZGExMDAwNWMzMDc0NzgxYmJiOWZiNDUxNmEgbGVnYWN5LXRydW5rCiszMTA3NiBjZTc0OGFmYmQ2ZWZkMmQ0YTczNDE0YjYyMTkyNzdmZDViM2RkZWQzIGxlZ2FjeS10cnVuaworMzEwNzcgYzQyNWY2NmRiNDU4MjI1MDNkOWVjOWQ0NGUyNDU3Nzc5NmIxYmU0YyByZWxlYXNlMjItbWFpbnQKKzMxMDc4IDdmY2RlZWIxNmVjMGQ2NGViYzJmYzg5Y2RhYjYwNzdkNGQ2MTAyZWUgbGVnYWN5LXRydW5rCiszMTA3OSAzMTgwNzg4MGY1OTk2NTkxNGNjMDFiMWZjZjU1MmZlYTgxY2FhMDBmIGxlZ2FjeS10cnVuaworMzEwODAgZDNhZjFlNzkzMjQzODkyYmRiYzJhMjBhNWIzYTFmNDU4NzUxYjZmYSBsZWdhY3ktdHJ1bmsKKzMxMDgxIDUwYzczNDI1MGUwNTI5YjY2YjU1ZGMyOTdlMGM0YWZlYjVmMjg1ODUgbGVnYWN5LXRydW5rCiszMTA4MiA2NTk3YzA5YjFlNmRjOWQwMGQxZjM1MjhlMjc2OThjMzE2ODAwOTVhIGxlZ2FjeS10cnVuaworMzEwODMgM2FlMGEyZjg3YWEwNmM3NGQ2OWFiNzBmNzlmMDg0MmFlZDYzMzMxZSBsZWdhY3ktdHJ1bmsKKzMxMDg0IGMyNjdmMjg3MjRkZGNjZGViYzUzMTg4ZWRhNWRhOWUwY2E3MjA1YjkgbGVnYWN5LXRydW5rCiszMTA4NSAyNGUzNGFiYzYyOTUwMDk3MzA2NTBhNTBlMTY3YzU2OTIwNjUwYTQwIGxlZ2FjeS10cnVuaworMzEwODYgNWVlZmVjOTRhNzg0ODU0MmI5YTA2ZThjNWYyMWMxZThkZGI4YjcwMSBsZWdhY3ktdHJ1bmsKKzMxMDg3IDhkODM1NzhkYmE4MTQxZDQ2ZmZmZTEwMjZhYWQzNWUxNDY4NWE4NDQgbGVnYWN5LXRydW5rCiszMTA4OCBmYWFiZDk4NjdmYjhkYzQ5OTQwZDM4YzIyOTZkYTdhNmMwYWJiYmViIGxlZ2FjeS10cnVuaworMzEwODkgNGFhNGU2YjNlY2E3MjNmNDM0OWU3NDZmN2I2NjMwZDU2MTcxYTNlMiBsZWdhY3ktdHJ1bmsKKzMxMDkwIDNjODkwNDlmZTYyOGQzNGRhMWVhYTFlNDlhYTY1MDgxMmU1ZGM1YjIgbGVnYWN5LXRydW5rCiszMTA5MSBkNDJkODNlNTY4NmMzYjk2YmVkZWU0ZDNiYzg1ZGM4ODE0OWQ1ODdlIGxlZ2FjeS10cnVuaworMzEwOTIgYWIxNDNhZWQ0OWI5MDZmYjgzMzYwMDAzZDJlNmQ3NmU5YTQ4OGY4MiBsZWdhY3ktdHJ1bmsKKzMxMDkzIDI1Njc4OWFhYWNkNjVjMDMyMzJhYzJmMWUxNDQwMzhkYWMyOWM3ZjUgbGVnYWN5LXRydW5rCiszMTA5NCA2MjBiYjM1NTFiYjY3NDdhNjYwYjRkZWZhZGRlM2YyMDQ1NTI3MTRlIGxlZ2FjeS10cnVuaworMzEwOTUgODc2M2E4ZjZjMGQ1YmVmMmU4MDAyNWMwMDQ5MTJhYjdjNTZiNDgyMCBsZWdhY3ktdHJ1bmsKKzMxMDk2IGMwNzViYTJhYmY3YWJhNmY2ZmRkMzM4MGY3Y2Y1MjNlNTI2MWQ0ZGYgbGVnYWN5LXRydW5rCiszMTA5NyBmMzNlNjQ0ODQ2MjA4MWM3NGNiZGUxYmIxODY5YmNjYmI4YmJjNDQ1IGxlZ2FjeS10cnVuaworMzEwOTggNzZmYThjNzlhODlkMGE2OTBiYzM1ZGU5ZTlkYjc5MjkyZGI3ZTQwOCBsZWdhY3ktdHJ1bmsKKzMxMDk5IGJhNTdjM2RhZjZlOWEzOWQ2ZWIwMmQyNjIwNTY5ZjMzYjMyOWVmMDMgbGVnYWN5LXRydW5rCiszMTEwMCBiZDhlNjIyMmUxNmEzMmEzYWY0MzI2YjAxMDkzMDM3YTJjY2Q2YWViIGxlZ2FjeS10cnVuaworMzExMDEgZjIzNWYxMzVmM2Y4YTI3ODYyOTNhNzY5MzkwMWJhMDQ5Y2Y3ZTA3NyBsZWdhY3ktdHJ1bmsKKzMxMTAyIDY3NGYzZWVjZmZjNTA2OWU3MWNjN2FhYWIyZjgzNmRjMmIxNTg2OGIgbGVnYWN5LXRydW5rCiszMTEwMyAwMTkwODcyZWJjZjNkNzc0ODQwMTYzZmM2NjQ5ZTA2NDBkNTNiODY3IGxlZ2FjeS10cnVuaworMzExMDQgM2I5ZmI1N2ZhYzM0YTI1ZDQ5OGE0ZDU1YjEzY2M0YzIzM2E0NGQzYSBsZWdhY3ktdHJ1bmsKKzMxMTA1IDE2MDg1MDdiY2MzZmY4NDdhZjU2MWI5NmJiNjJmMjEzZjQxOTQ5OTUgbGVnYWN5LXRydW5rCiszMTEwNiA5YmMxYzg0YjIzZTY2MjM2OTMyODMyNjY5OWNkNjBmNzhiMWU4OTdhIGxlZ2FjeS10cnVuaworMzExMDcgMmYyMjdmZjExZjVlM2FlYzE2NGE5NTliMzQ0YWQ0YzVjN2JlMjgyMyBsZWdhY3ktdHJ1bmsKKzMxMTA4IDZmZmI1YzhlNjUzOGVlODViOGEyZTQyMjQwYTNiNzliZGMyNTlmZWUgbGVnYWN5LXRydW5rCiszMTEwOSBmNDdhZjJjZGI5ODNiNDFmNWVhY2JiZWJmMzEzNzI2Njg1Mzk2NjU3IGxlZ2FjeS10cnVuaworMzExMTAgMmQ3YzBjYmM4M2NmM2Y0OWI5YTAwYWExMTUzYjQzM2NhMzc4MjA5MSBsZWdhY3ktdHJ1bmsKKzMxMTExIGQxZWRhYWE5MzhmYmU3NDg1MmZmNTU1MmFmNDUzYzljYTRkZTZlMTcgbGVnYWN5LXRydW5rCiszMTExMiBhMmRiNDM3ZDMxNGI0ODkzN2JhMGJjZTc4OWYwNTU1NWMyNzE2NDIwIGxlZ2FjeS10cnVuaworMzExMTMgNjU2MzVjNzIxMzVlMWFjYzljNjczMzViZGZlNWM3NzZiN2QzMTQwZiBsZWdhY3ktdHJ1bmsKKzMxMTE0IGEwNTgxNDE4NGU4YzZlNTA2MWNmMGJmMzJlMDIxNGQ4NTdhZDljMTIgbGVnYWN5LXRydW5rCiszMTExNSA5ODE5N2ViZTVjY2I3ZGVmNzhlN2I0NDc3OWJmZjkxNjI2NGMzMTAyIGxlZ2FjeS10cnVuaworMzExMTYgNzI4MzE0MGQ0MzE5ODZiMjQzZGFhNzAyYThmM2I5OGE4ZmNmMzMyNiBsZWdhY3ktdHJ1bmsKKzMxMTE3IDNlYjEwYTE0YmEwMGQ5NmIzNDA0NjRjMmVkY2ZiM2I4OWQxNTVmMDkgbGVnYWN5LXRydW5rCiszMTExOCBlM2ZhODM3N2YzMGM1ODBhNTBiNGI5YWVlZGM2NmZkMDVhY2I5M2NjIGxlZ2FjeS10cnVuaworMzExMTkgOTMyMTA1NjRiYjQ2MDc5ZjBkNjJlMTU0NjM1ZjRlNGJlN2MwZGE1ZSBsZWdhY3ktdHJ1bmsKKzMxMTIwIGQ2YjY1ZTM4NTVhMjUwMGQ4ZDE1OWUzYjRkNDM2ZWZiZjgyMTJkOTUgbGVnYWN5LXRydW5rCiszMTEyMSA3OGU0M2IzNmU3ODQ0ZWI4ZDQ1OWU4Yjk0MmM2YzM5YzliMDQ0ZTU0IGxlZ2FjeS10cnVuaworMzExMjIgNTdiZGY0YmFjNDM1YTdlNjZlY2Q1ZmNjMTdmOWU2NjkwN2Y0YjkyNyBsZWdhY3ktdHJ1bmsKKzMxMTIzIGU1ZDE4MTEyMDMwMzQ5MTE1ZWIyNmRkNzMxMGI0NDNjNTA2NmM0NjYgbGVnYWN5LXRydW5rCiszMTEyNCA5MTVkMzI3YTIxNGE5YWZhOWI2ZTg0MDFmOWUxNmVlY2VjZDZlNGUzIGxlZ2FjeS10cnVuaworMzExMjUgNzIyMjhhMjVkYWFhMjU5MjM0OTA5MTFlNjA4OTYzYTcyNjk2OWU5YyBsZWdhY3ktdHJ1bmsKKzMxMTI2IDhlNjBlYzg4ZWNiODRkOTI1MzBkODM0NjQyYTM4OTY5NWZlZThiNmUgbGVnYWN5LXRydW5rCiszMTEyNyBhMzVkZmNhOTMzMThkMWY5ZTgzYzE3ODZjNWM1OTNmZDk3YTJmYTJjIGxlZ2FjeS10cnVuaworMzExMjggZDE1OGQxMGVmNGFlYjAyN2I3NDRmNTZhYWU1ZDNkYWFhZWE0OWEzYiBsZWdhY3ktdHJ1bmsKKzMxMTI5IDMxM2U5NDRhMmM4ODYyMzZhNmUxOTdhZmIxYzVhNzVjNjNmOTQ3MDkgbGVnYWN5LXRydW5rCiszMTEzMCA5YTNiODQ0M2Q1YTYxNjE1ZmZkOWRlM2Y1ZjM4NzA1MzkzMTg5NDc5IGxlZ2FjeS10cnVuaworMzExMzEgYzQyMTRjMjBiMjFkYzAyMGE4MDdmNjBiMTIzZDQyNDk5NDA4ZTFmMyBsZWdhY3ktdHJ1bmsKKzMxMTMyIDgyYThjYTNjOTI4YzBhZGUzM2Q5N2IyMTFiMDBkMzBlYjg1OTZlMmMgcmVsZWFzZTIyLW1haW50CiszMTEzMyAxZmE0NDQxNDk4NTg5ZDUwMTg1NzNmMmE1MDI3ZDJlYzQ0YzYwNzQ4IHJlbGVhc2UyMi1tYWludAorMzExMzQgNDJiNjE3ZmQ5YzY5MjNkNzU3MjI4MmI5YzE3ZGIxNjhlZmRjMWVjYyByZWxlYXNlMjItbWFpbnQKKzMxMTM1IDIyNTUxZTFkMmM2ZTcwZWQ0ZDQ4YmQzYmU4NTkxZWJkZTY0MmEwMjggcmVsZWFzZTIyLW1haW50CiszMTEzNiBjY2ZhY2FlYzA5Njg5MTllYmJmZThiZDk5OTNiMDY2MGUxYmRjNzc2IHJlbGVhc2UyMi1tYWludAorMzExMzcgYmViMjAwOGEzYzMyOTVkN2U1YmYwYTJhYTQ4OTVjMmE1NTVmODdlYyByZWxlYXNlMjItbWFpbnQKKzMxMTM4IGM5Y2NjOWQwYmE5OWE4OGRiZTllYTQ1ZDkxMWFjNGZjNTk0NjU4NGIgcmVsZWFzZTIyLW1haW50CiszMTEzOSAxZDhjODYyMzRkOWMyYmRmMDY0MTAyODgwOGZiNTk0M2YwYjQ5ODZkIHJlbGVhc2UyMi1tYWludAorMzExNDAgMDYwMjA3OGJkY2UxMjNiMDJiMDI5ZmU0OGM2Y2FlNDNlODRlMjk0YSByZWxlYXNlMjItbWFpbnQKKzMxMTQxIDA3MjlmODM5M2IxNjAzZjdlN2UyNDVkNDM4ZmU4MWJiZmYxYzNkOTIgcmVsZWFzZTIyLW1haW50CiszMTE0MiA2NDdjMjkxNDdkNWQyN2VlODRiYjQzYTFmNjc0OGY4YjYzZWIxMGU4IHJlbGVhc2UyMi1tYWludAorMzExNDMgODM3MDFmYWIzMmZlMTE3NTg5NThmNWQ3N2E3YTIxYTI1OTU1ZTllMiByZWxlYXNlMjItbWFpbnQKKzMxMTQ0IDQ1YWQ3N2E0M2Q4N2Y2OWJhZjQwMmIwMDVhOTI4M2NmOGUwODBjNTYgbGVnYWN5LXRydW5rCiszMTE0NSAyYTgxYzFhODgzY2JiNWMzZWNhMjAxMWY0N2IxM2QzZjIwZGIwNmY0IGxlZ2FjeS10cnVuaworMzExNDYgOWNkYzIzM2I3MjI0YjAzN2JkY2Q3Njc0YjYwODBiOWIxOTRjZjhjYyBsZWdhY3ktdHJ1bmsKKzMxMTQ3IDc0ZDk2MDRlOTM1MzE2ZDdhMTY3ZDNmNTc5MzIyMWVlZTE0YTc1OTQgbGVnYWN5LXRydW5rCiszMTE0OCA1NThkMGYzYjYyNTQ4YmY0MzYwZjgzNWNjYjI4YjA4NTNjNDQ3ZTE0IGxlZ2FjeS10cnVuaworMzExNDkgYmJkOGFiYWEwZjMzNTEyODIzZjZjY2I1YjJkZmVlOTM5ZWMxMzczYiBsZWdhY3ktdHJ1bmsKKzMxMTUwIDE5ZDBjOTk5NTU1ZTkxY2JmNzcxMTNhNjc4ZTM4NjJiZjg5NzY2MTMgbGVnYWN5LXRydW5rCiszMTE1MSA2NWZkYmQ3ODFjYTk5YWYxOTlkOGU1ZTkxMjU5OTg1ODA4NTEyYmJmIGxlZ2FjeS10cnVuaworMzExNTIgYTI0NTI4MzE4YmU5NmNiYTNmYjIwMjE1NDQ0ZmVmMTJmMTlhMWZkYiBsZWdhY3ktdHJ1bmsKKzMxMTUzIDgyMDEwMzhiYmYzMGJkNWJkMWU0MTJlYzRiNzBmOGZhOTU4ZGI1ZTUgbGVnYWN5LXRydW5rCiszMTE1NCBlYWFlZjUxNmE2ODUzZGU3MjQ4NDcyYzZmZTZiNDFhY2ZiMDkxZmQ2IGxlZ2FjeS10cnVuaworMzExNTUgNDU5MDYyMjNlZmIyMzZhMTFkMGMyZjM2NDI3ZjAxMjc4YmZhNGZmNSBsZWdhY3ktdHJ1bmsKKzMxMTU2IDRjOWQwMmM1NjU3YjM1YWJlODcwOWRhMDUwZDFjYWJlMzgyNDAxMWMgbGVnYWN5LXRydW5rCiszMTE1NyBhZmM5YTA5NWEyZDU2ZjhmNzg5ZTg0YmYwMzM0YTRlMmNlNzAzMzRjIGxlZ2FjeS10cnVuaworMzExNTggZjdiMzgyNmQwMTNhMWRlZGIyMTNiMzAyZGQ1OTU4N2ViZTllODMwNyBsZWdhY3ktdHJ1bmsKKzMxMTU5IDY1NjdmNDgyOWU3ZWM0ZmYxYTViZmQzZjBhNmI2M2U2ZDdiZGYwMGUgbGVnYWN5LXRydW5rCiszMTE2MCA3YmY3ZGFjNGRjNDk2MTRiOTIwMzZkZTI3MzIyYTE2OGJkMTRkMGM1IGxlZ2FjeS10cnVuaworMzExNjEgNjQwZTUyZGVlMWEwM2QyYTIyNTg3MWIwNjUxNDZlYTQ4NjI5NzNjOCBsZWdhY3ktdHJ1bmsKKzMxMTYyIDQ4MDMzMDE3Yzc4ZjIwMThjYWQyMjU0YmJmZjQzMjhjNjY3YWM0YWUgbGVnYWN5LXRydW5rCiszMTE2MyBjNDBjYjliZmM4ZTdjM2RmMTY1ODliZGUyYmViZmM5ZTdiNzE5ZjBiIGxlZ2FjeS10cnVuaworMzExNjQgZTRlMjZmZTI4NmMwYjg5YzJiYTYxYjkxMmVjMmU0ZWVhYzRkMGFlZiBsZWdhY3ktdHJ1bmsKKzMxMTY1IDk3NGYxOTZhYmI4N2JlY2NlYjg2ZTRkNGIzOWFhZWIwMzc3MzliZTggbGVnYWN5LXRydW5rCiszMTE2NiA2MDE1NDljNjQwMzljODRiYmU4MWU0NjA0OTdiYjk3ZTFmMzU4YTZiIGxlZ2FjeS10cnVuaworMzExNjcgMmNkNGUwZGZmM2E0MzI3NjBhZTk0MjFhZjgyMGVlMTlmYWJlMjljNyBsZWdhY3ktdHJ1bmsKKzMxMTY4IDYyMDVkYTM4M2U0Y2I0MWI2ODUwNjk5OGIzYTIzMDE4ZGUzNGNkY2YgbGVnYWN5LXRydW5rCiszMTE2OSAwMDQyNmM3ZjE0N2QyMDFhNDMyNTZkYWVmODdkMzM0NzM0MDQ5MWY4IGxlZ2FjeS10cnVuaworMzExNzAgZGQ3M2ExMjE4ZjY5YTg5NjRhMGQyYmE1NGNmNTVhODNjYmM1Zjg4MiBsZWdhY3ktdHJ1bmsKKzMxMTcxIDRkMDRmNDVmZjhhMWU2YzU4ZTcwNWVjOWI1ZGRjMTVlYzMxZWZhYmUgbGVnYWN5LXRydW5rCiszMTE3MiA5MzRhMmI0OTdkMWRkMmFkZTUzMzA4ZTk0ODIyNjEwOTU2OThkNTMwIGxlZ2FjeS10cnVuaworMzExNzMgOGExNDdhNDFjM2Y3ZmFlMGJjZjUzMzJlMjZlN2NmNmZiOGMwZDY1MCBsZWdhY3ktdHJ1bmsKKzMxMTc0IGI2NmFjYmUyOTU3NWM0NWQ1YWVmYTY5YWIzNzA1OWQ5OWJhZmE0NzcgbGVnYWN5LXRydW5rCiszMTE3NSBlOTk2MTVkZTc2NDc2M2M5MGUyM2U0MGIxYjA2ODkwODQxNjg4Mjg3IGxlZ2FjeS10cnVuaworMzExNzYgNTJjZTU3Yjc4YzcxYTg2MDEyZjgyZTFmYWVlODI2OWMxYWJlNDM3NCBsZWdhY3ktdHJ1bmsKKzMxMTc3IGRiNzg0ZDI5ZjQ4MWUwNWJiN2UyM2JjNTVlOGI5NjZkNDJhNWYyMjYgbGVnYWN5LXRydW5rCiszMTE3OCBmNjE5ODYxNDA1MDMwYWFhODJlZTU0ZmE0ZjBiZTc4MWUzNmI5ODhmIGxlZ2FjeS10cnVuaworMzExNzkgZjI2MDM0M2VjY2YxMzIyY2I5MzA0YWQ0NGJkMjIyMGMxY2RiMTg3YiBsZWdhY3ktdHJ1bmsKKzMxMTgwIDU5YjRlYmMyOWQ1MzE3YTZiN2ZjMWI2MGQzOWMzY2EzNzFiMGRiN2EgbGVnYWN5LXRydW5rCiszMTE4MSBlZDkxYmY2MDFiMmRlOThhZjA4NGRjOTc3MmM2ZWY1ODk5NGQ3NzI0IGxlZ2FjeS10cnVuaworMzExODIgMTA2YTQ0YTRiOTc1ZGI0ZjFiMDg2YWY0NWNkNDdjZTUyYjZhYTVkNCBsZWdhY3ktdHJ1bmsKKzMxMTgzIGE5ZGQyMTdhOWJiMTAxZTA4YjEyMzI0ZDgzMjM2NjU5NjRiZDAyODQgbGVnYWN5LXRydW5rCiszMTE4NCBlMTFlOTc2ZmVlNzgxMmFiNDExOGM1YmZiYWQzMmUzNDgwN2Q1OTIwIGxlZ2FjeS10cnVuaworMzExODUgYmEzZWFmZjQ5YjdhZTA4OWE4OGZjMDEyODZmMWRhNDFlNjUxNmZmMCBsZWdhY3ktdHJ1bmsKKzMxMTg2IDY3MzE1MDI2ZDZkMzU5OWI2NmNhNTkxNDczMWViYWM4NTIzNjRhZjMgbGVnYWN5LXRydW5rCiszMTE4NyBiNTk1YzQ3MzVmY2NjNmZkMDAzYjNhODc4ZTg4YTQxNTA1OTY5ZDQxIGxlZ2FjeS10cnVuaworMzExODggMGJiYmNhY2MwNWZiOWU3ZThlZTg0NzBkZGM2MzM1ZGNjZDk4ZjY3YiBsZWdhY3ktdHJ1bmsKKzMxMTg5IDZhMTM5NDY2MDI3MDc0MTcwMjU2NmVkODc2YzUyYTI3ZWRkNjhhYmUgbGVnYWN5LXRydW5rCiszMTE5MCAzNTI3OGFhYWU3NzVjZjk3MWMyMGVhZjJjNTUwNDA3NjNiNTU3YTEyIGxlZ2FjeS10cnVuaworMzExOTEgM2E1MjhhYTIyMmI2YzlkNmRmZTIxM2JiZTZjNzFiNTg1OGQ4OGU4MSBsZWdhY3ktdHJ1bmsKKzMxMTkyIGRmMzYzZDFiMzg0Mjg4NTZmYjRiNTQ5MjM4MmZmM2RkNjljODdhNTkgbGVnYWN5LXRydW5rCiszMTE5MyA2NTJkZjQ1NDk3MDg1NTJhMzA2ZmY3MmJlNzRiYjU4NjY3ZTE3YjcwIGxlZ2FjeS10cnVuaworMzExOTQgZDVlYjEyYmNjZDFlOWY1NTQ1YTBkNDY0MDBkM2I0ZDk4NDQxMTg4NiBsZWdhY3ktdHJ1bmsKKzMxMTk1IDVkNzg4OGZiZWEwMDQ4NGI3NTAwMWM1ZTUzZDg1ZTM0MjJjNDI5YzUgbGVnYWN5LXRydW5rCiszMTE5NiBmNjJlYzI0MDVlOWZjYjU1ZWYxZGRkMjA4YzU0ZjU0OTM5Yjc1ODRhIGxlZ2FjeS10cnVuaworMzExOTcgOGU1ZGU0MzUyOWI3NTczY2ZiNDUwYmU4NDIzYmNiY2U0MTYyMzg5MiBsZWdhY3ktdHJ1bmsKKzMxMTk4IDNlOThkMmUyZDg0N2YxNmM0M2MyMTUzZTA3YzIwYzI2NGQ1MTA3NzIgbGVnYWN5LXRydW5rCiszMTE5OSAyMDMzMGUxMzIxMWVhZGZmZTdiNWI0NjcxNWRiMTcyZmRkNGEyZDU2IGxlZ2FjeS10cnVuaworMzEyMDAgM2IwYjM2Y2RkOWNkOTllNzRhZTA1M2E2M2FmNTZlZjVmYjZhNGY2MyByZWxlYXNlMjItbWFpbnQKKzMxMjAxIGM4OTQzZjg3YzY4Yjk5ZjJmMTY1ZmZiZTIwN2QxNmMxMzhiZjJlMDUgbGVnYWN5LXRydW5rCiszMTIwMiA5NjA4MDNmOWY2OTg5OTRmYTNkMGFhZjQ3MDg5MzY3MWQ3YmI5ZmE0IGxlZ2FjeS10cnVuaworMzEyMDMgY2UzZmFhYjA2ZGU3NTNhNmE5MTQzOTU1N2Y3NzgxMDE4OGIxMDBkNCBsZWdhY3ktdHJ1bmsKKzMxMjA0IDhmODQ0OGZiNThkNmY4OTYwNzUyYTM1Mzk2ZWY3YTY4OWI1N2RkYTggbGVnYWN5LXRydW5rCiszMTIwNSA5NWYzYTFjZDAwZTE2MGQ4NWY0ZTg3Mzg4ZWY3NDNkZWExYTA1ZTI1IGxlZ2FjeS10cnVuaworMzEyMDYgNTE5OWY3ZWE2NzQ2ZjM5ODMzNWE3OTNlOTk4YjkwODY4OTcxZmZlOSBsZWdhY3ktdHJ1bmsKKzMxMjA3IDI2MTkxNWE2YzY4NTJjOTg0ZmJjZjNiNzA3MDNhNjJlMDNhNmQzODQgbGVnYWN5LXRydW5rCiszMTIwOCBkNjk4YzU2MjNkYTA2ZjUxZWM1OTdkZGM3MDBkODM1ZTYyYjI2YmIyIGxlZ2FjeS10cnVuaworMzEyMDkgYjE5YWFhZWI2ZDY0MjAzMTYzYWQ5Y2Y5MGRlNjNmMGJkNGYwMTg1MSBsZWdhY3ktdHJ1bmsKKzMxMjEwIGU1NDU0ZmUxYWFmZDBkY2Y5ZjJlYTY4YmFlZjk2YTNiOGRiZGJkNGEgbGVnYWN5LXRydW5rCiszMTIxMSA3NGFhYmQ0NDE5ZDQwZDY1YmM3ZmZiZWVkNGQ0MzlhMjZhYTY3Y2E0IGxlZ2FjeS10cnVuaworMzEyMTIgZWQxZDRlNzk3MTA5NWJmY2M0YTFlYzkzMTM0MjYzY2FhZWM3NjE0ZiBsZWdhY3ktdHJ1bmsKKzMxMjEzIDk2ZmQwMDRhNThiMGQzMmZlZWFkOGY2MjU5YzA5YjY0OTM0YzNkOWEgbGVnYWN5LXRydW5rCiszMTIxNCA5ZTQ3ZjllZDQ5ZjY0NjIyY2I3ODdmZjE5ZjQ3MjZjZGQyZDQ2YTRmIGxlZ2FjeS10cnVuaworMzEyMTUgMzU5OWY2NTkzZmU5MGMwYzk5YWFkNjgzZjYwOWM0OTBlMWZiM2E1MCBsZWdhY3ktdHJ1bmsKKzMxMjE2IDIwYjgwM2NmMjE5ZDA5ODRmZThhNmE5MTNlM2I1ZjcwNmU2MDZhNGUgbGVnYWN5LXRydW5rCiszMTIxNyA0YzdiMWI3ZDdmMzExMTY3ODY2OTBlMTg3YzZiZDNiMDM0NmZlZDRmIGxlZ2FjeS10cnVuaworMzEyMTggMGVjMzg5Njg4NmU2OTZhNzg5ZjBmZmI5MzMwZDM2MmExZWU0ZGNiYiBsZWdhY3ktdHJ1bmsKKzMxMjE5IDhmMzc4MzVjZjRhNDExYjQyZjAxY2RlYmMyZmZiMzI0ZDA4OTIzNDcgbGVnYWN5LXRydW5rCiszMTIyMCA5YWI5NzFjZDE5NjU3MjRhZjBjYTg4MzM1NmU4NDhhYWVkOTA1NzQxIGxlZ2FjeS10cnVuaworMzEyMjEgNjNkNjM0ZWQ5NDVjYzAxZTg4NzA0ZWVlZDY3ZDI1ZmFmMGIxMmFiNyBsZWdhY3ktdHJ1bmsKKzMxMjIyIGFjNDUzYmIzNzBhMmU5YzcxYmE4ODMwNDlmZTdiYmQ0MTg0NWFmYTQgbGVnYWN5LXRydW5rCiszMTIyMyA3YzRkZGEwYzE0NWYwNDAxYjU1ZTBhMWE2YzQ3MTZkN2ZiOGQxMmNlIGxlZ2FjeS10cnVuaworMzEyMjQgMWEzMDBmNDc1MzMyMDVjMDg2NjVkODQxMDBiNzNhMGE0ZmM2ZDNjZSBsZWdhY3ktdHJ1bmsKKzMxMjI1IGViMjg3ODk0MDkwNTg2MDRlNDdjYmI2ZTFiZDYyZmM3OWQ4YmMxNDIgbGVnYWN5LXRydW5rCiszMTIyNiA0MzE0M2Q0ZGQ2YjFkNTEzYjEyZTg4YWIyY2JhMGExMjkxMjg1ZWMzIGxlZ2FjeS10cnVuaworMzEyMjcgMTg2MTMzNWU3OGFhMTE2YzdkMzk4MDI0ZmQ0Y2Y2MGUzZDc0NDhkNCBsZWdhY3ktdHJ1bmsKKzMxMjI4IDBmY2E2NWEwOWYwNjI4MjhjNWU1OWE4MTY4OTMzOTYxOGJjNzdjZTIgbGVnYWN5LXRydW5rCiszMTIyOSA2MTRhYmJhNWI3NjI0ZmMzNTdmODg1NzY2MDlkYzkyYjEyYjRhOGZiIGxlZ2FjeS10cnVuaworMzEyMzAgMzc5OTlmNjkyNGI0ZTU1MzI4ODJmZWI5ZTBjZGVhYzM2Y2YxZWIzZCBsZWdhY3ktdHJ1bmsKKzMxMjMxIDg0ZjJjNDM4YzNmNTJiYTE4ZWYzMmY5M2Y4YmVmNGFlYjNlNjRhMDggbGVnYWN5LXRydW5rCiszMTIzMiAwNDI4ZDU5MDY5YTk4NDEyN2RmNjdiMmU3OTFmMGE5NjA0OTMzYzU0IGxlZ2FjeS10cnVuaworMzEyMzMgYzhjNzgxNmQzYTJkYTZlMzA5NjQ0Y2JlMDFmNzQzYjU5YmQ5OWU4OCBsZWdhY3ktdHJ1bmsKKzMxMjM0IDBmNjczMWQxMjZkZWIxOGMzN2VkNzY5YWYwNWM0NjM1YTRmOTViNzcgbGVnYWN5LXRydW5rCiszMTIzNSA1MzdiZmNlMmI3MzAzZjFhZjFkNjA4N2E1MTI2YzdjZmE4NmZmNmMwIGxlZ2FjeS10cnVuaworMzEyMzYgZTBmYTUyMDY3ZGJlZmI4MjczZjdiMmI4ZjE5Y2NhZTQzZjYzNjI5MSBsZWdhY3ktdHJ1bmsKKzMxMjM3IGY4N2I2ZDE2YmFlODVhNzlmZmUxNTBhYzE2MmJmZmNkMTM3YjBmNGUgbGVnYWN5LXRydW5rCiszMTIzOCA5YzNjOTkzZTliOWNmMjMzNGFkMjNkZWE3MzNkZjEwOTk4NDBlMTY1IGxlZ2FjeS10cnVuaworMzEyMzkgZTRmZTE2OGUzNWYxNDNmYmNhNTJlZTBjOTQxZTAyZWQ5OWFhNjMyMSBsZWdhY3ktdHJ1bmsKKzMxMjQwIDAwMWNmNzRkYWM1MDFhOWU2NTNkMzM1NzIwYzdiYWIzODdkZWJhZWIgbGVnYWN5LXRydW5rCiszMTI0MSAxNjg1NmM5NTE0ZTA1YTg4NDZkNGRkNjU0NTZlYTk3Y2FhN2U1OGM3IGxlZ2FjeS10cnVuaworMzEyNDIgYWFkZTRiYzEyNWY4ZmYyOTI0ZTRmMzU1OWIxYzY4NDJjMmZlZGE5YiBsZWdhY3ktdHJ1bmsKKzMxMjQzIDc2Mzc2ZTVhZjM4OGQwMTkyZWE5NGJhMGQzNmIzYjdjODJmNDNhZDcgbGVnYWN5LXRydW5rCiszMTI0NCBlM2I1ZjMyMWVlYmIwM2Y0YmVlNTA1MmU4NTExNjZhMmViNjdjMTg2IGxlZ2FjeS10cnVuaworMzEyNDUgNTkzNWI4MjQzZDc0ZTRmZjE4ZGQyNTQ3OWYwYTlhZjQ3NmI3MTAwNSBsZWdhY3ktdHJ1bmsKKzMxMjQ2IDQxMzEzZDIwZDFkZGUyNjhhYmUzOGNmM2VkMzUyMzk3MTE4ZGFlNjEgbGVnYWN5LXRydW5rCiszMTI0NyA1MjJlZGQ1OTFkMmNmMTM3NWJhNDI3NWQwZTM5NTE5OTNmOGUyMjBmIGxlZ2FjeS10cnVuaworMzEyNDggNDc0Y2JiZGYwMGNlN2Q2NDQ3OGU4MDUwOWFlYTcwYTg3M2E1OGI3OCBsZWdhY3ktdHJ1bmsKKzMxMjQ5IDIxMjgzYjZlYTdmMWE2ZGZiNzA4NjVmMmIxZmYxMjZhMDllNDgyMTggbGVnYWN5LXRydW5rCiszMTI1MCAwNDM4NGY0MjkwYmFmNmVmYmM4ZTE5MWRjMmMxOWQyNDJjMDc0MjQ3IGxlZ2FjeS10cnVuaworMzEyNTEgY2FkMTE4NWVlZWY3YzE2OGFlYTFhMjljNTBiNzdkODE3YTkxMWNlOSBsZWdhY3ktdHJ1bmsKKzMxMjUyIDcyNjcyMTRmMDc4NTZiY2U3NDcxODYyYzVmN2YwODBlZjEyMzZiY2IgbGVnYWN5LXRydW5rCiszMTI1MyAzOTgyZjExNzY3OWVmYjgzNjhiOTgyZTYyYjc3Nzk1NjM5ZTgxYjcwIGxlZ2FjeS10cnVuaworMzEyNTQgZjJmMDZiNmVjZGQ3MWJkNzVmNDRhMjRlYzJmOGU5MmMxOTQ0YmJiYyBsZWdhY3ktdHJ1bmsKKzMxMjU1IDVlMzE1MjlmZGQ0ZmFmOTg2MWZkMmYxMzlmNGRhYzU3MDhjMDZlZjcgbGVnYWN5LXRydW5rCiszMTI1NiBkNTAyMTg3YjJiMDZlMDBhN2Y1YjdiM2VhMDZiMTg3NTllNzFjOWFiIGxlZ2FjeS10cnVuaworMzEyNTcgOGQ5MmFmMTQ0YzE2ZWM3ODc3MDM3YWEzOGNhZTQyMTI0NmE3MzdjYiBsZWdhY3ktdHJ1bmsKKzMxMjU4IDAzY2ZjNjM3YzM5MzU4ODJmMjNjODg3ZmYwMzQxZWJjMDE1OGY4OTYgbGVnYWN5LXRydW5rCiszMTI1OSBiNDY2YzVmYjRkOGVhYmNhM2FlZTAzYzNiMDBkZjdjYjA5ZDZjOGRhIGxlZ2FjeS10cnVuaworMzEyNjAgYzFlY2RkZTMyZjg2M2M0OGRjODA0M2M1ZjcxNjMwYTFjMTdjMGNlMCBsZWdhY3ktdHJ1bmsKKzMxMjYxIGZhOWY5ZTU3ZTk4Zjg2MDhjMjRhZWU5MzZlNDM5ZDdhOGM0MGFjZTUgbGVnYWN5LXRydW5rCiszMTI2MiBlNWUyNDJjZjQ2YjFjNGM3N2E1MjcwNDJiYTIwZTQwYzc3YjE5MjRhIGxlZ2FjeS10cnVuaworMzEyNjMgN2IyY2Q4MDBjMjI5NmQ0MmVjYTQyZjRkNTQxYzdjYTYxMjBkMjMxMCBsZWdhY3ktdHJ1bmsKKzMxMjY0IDMyZmI5NGE2YTRmZTliZWNjZTMyZWQ5MTZhMjE5OTUwNWViYWEwMGMgbGVnYWN5LXRydW5rCiszMTI2NSBkYjQxNmJkMThkNGY3OWYyZjhlZjAwMTFjMzUyOGQ2MmFlZWVjODUwIGxlZ2FjeS10cnVuaworMzEyNjYgNDM2N2Y4MDVkYjA5YzNmNjYwNjZjMDI3YjVlOTY4ZTA5ODQwODkzMiBsZWdhY3ktdHJ1bmsKKzMxMjY3IGQ4Yzc2NWMwOWQ4YzFhOGVhNjZiOThjNGUzYTE3NmE3ZTU4YTY1ZjEgbGVnYWN5LXRydW5rCiszMTI2OCBjZTM0MGZiNGI2MTQ5NTEyYjdmZGJiY2VmMjVjMzliYTczZDRhMGMyIGxlZ2FjeS10cnVuaworMzEyNjkgNGI5YjhkZjU0ZGU5YWQ4NTU0MjI0ZWFjZjY0NjdjYTNlODFjNTJhNiBsZWdhY3ktdHJ1bmsKKzMxMjcwIGRmNzQxMjdlMmM5ZmQxNTIxNTg5Mjk0NTJjY2EzODhhYTJiYTg5MGQgbGVnYWN5LXRydW5rCiszMTI3MSA5NTAzNjg1ZmI0ZTg4MDg5MjUyNjFlOGVlNmQ2MjcwMzhhYmZmZmI5IGxlZ2FjeS10cnVuaworMzEyNzIgYjMzMWU1ZTVjYzRhYmYzNTVkZWVlN2RlMDk3NTAwOTM1NDk3MWVmNyBsZWdhY3ktdHJ1bmsKKzMxMjczIGFiZjlhOTEyY2ZjZTljNWJiODBhNzk0ODBmYmYwZWQxYWEyYmI5MmMgbGVnYWN5LXRydW5rCiszMTI3NCBjNDk2MzgzMDVhMjhiMGQyODA2ZjJhNDc0YTkxYmQyZGY5ZjRiYzg3IGxlZ2FjeS10cnVuaworMzEyNzUgODUzNTkyMTcwOTFjYWFjMmJmYjRiYTQyYmFhNzY2MDk2MWQ4MTI3MSByZWxlYXNlMjItbWFpbnQKKzMxMjc2IDk0MWRlNzkxYjE3YWViMzI3ZGYwZDJjM2E2ODY0NGQ1NjVkOGNkMjAgbGVnYWN5LXRydW5rCiszMTI3NyA1OWFlNDFlMDRmZmJlN2ZjN2I4NTY0ZTQwNzg1ZDIyYTI3ZjNlNjQ1IGxlZ2FjeS10cnVuaworMzEyNzggOWY5NDAwOWIxYWUwY2U3OGFlMjRiMTZkMjRhMmZiNmFhN2Q4NzBkOSBsZWdhY3ktdHJ1bmsKKzMxMjc5IDQ3YTY5MTVkMWMzNmI0YjM5NjNmYzkzNDdmZDkzMzZkNjdkM2RmN2MgbGVnYWN5LXRydW5rCiszMTI4MCBjN2NmMWI1ZDQ3MWI3ZTdmM2UyZWZlNDQ0NzBhM2RlMWI1Njk4ZTgzIGxlZ2FjeS10cnVuaworMzEyODEgNzg1MGZhN2ZiNmYxYTE0OWE4OTcxYjMyZmY3NGRkNWQ5MDU4MGUzZCByZWxlYXNlMjItbWFpbnQKKzMxMjgyIDMyOWEwMDc3N2UzMjBjYWU3ZWE4OGEzNDBiZjQ2ODZjNGMxN2IxYzAgcmVsZWFzZTIyLW1haW50CiszMTI4MyA2YjE3ODlhYzJmOTU4MTNlMTI4NTkzNDJlOTkzYmMxOGI2Y2M0ZDA4IGxlZ2FjeS10cnVuaworMzEyODQgOThjMzRjYzFjZjQwMGI2NGU0OGFmMmNiNDQ0OWUyMmZjYzNiYjY5YyBsZWdhY3ktdHJ1bmsKKzMxMjg1IDAzOTU1MTJjZTFiNWFiODljMWM2Njc2NzAwY2QyNDVmMDVmZWQ0MTUgbGVnYWN5LXRydW5rCiszMTI4NiAzOGQwNTA1NjE5NWM5YzE4N2U3ODZkMDdlZDk2ZjBkZGVkN2Q2OTY5IHJlbGVhc2UyMi1tYWludAorMzEyODcgYTRiZGU5MTUxMThjNjA1OTM0ZWNhYjBhYTUwZDNhYWEyNDZlMWM4NSBsZWdhY3ktdHJ1bmsKKzMxMjg4IDU5NDgyMzE3MTY2ZTZhNzczMjQ3M2FmZTIxYzZjOTMxYmFmMWExMTYgbGVnYWN5LXRydW5rCiszMTI4OSBjODE0OGQ3ZjBjOTg2ZTBmMGRlOGY2MmQwOTYwNzEzZTM1N2RjOGI4IHJlbGVhc2UyMi1tYWludAorMzEyOTAgYThhNjQ3ZTE5MjdiNTZlOWQ2NzcyNDZjNWZiZTViZTU0MjNiYzU0YSBsZWdhY3ktdHJ1bmsKKzMxMjkxIGY0Y2RiYTgzYmU1NjAyOGU2NWNmYWM5MzcwZGFhOTNlZmFmY2FkOWYgbGVnYWN5LXRydW5rCiszMTI5MiBmYzg4MTc0YzBjMGFkZGUzNmNhNjM4NjE5NDFhY2I0Y2RmYjIxODZhIGxlZ2FjeS10cnVuaworMzEyOTMgYTAzNmE1MTk3NjEwYzdjOTI5ZDBjOTA0ZjhlMjBjMmQ5ZjM3MzM3OSBsZWdhY3ktdHJ1bmsKKzMxMjk0IDdiNTA0M2MwZmY0NzY4Njc4NjAyZWM5MmYzOWQ2ZjczN2NmOGQ0ZjMgbGVnYWN5LXRydW5rCiszMTI5NSBjNWFkMGEyNDg5YjgyNzVkMGEyZDRkMDM4MzEzYzNkYTNlNWJlNmJhIGxlZ2FjeS10cnVuaworMzEyOTYgODJjYmYxMTc4ZTRmNGYyYTY2MDBmZDQ5ZTI5ZGJlMjlmMGZhY2FjNSBsZWdhY3ktdHJ1bmsKKzMxMjk3IDJkNTViZTNhOGVjMzRlY2IxOTEzMmQ0YmFiZjEwMTYxNGZiYmY3NmQgbGVnYWN5LXRydW5rCiszMTI5OCBkYzVlMWQ5MTgwNTU4MTM0ZDI4NmZiNzQ4ODJkODRlMjE5ZmE2NTE3IGxlZ2FjeS10cnVuaworMzEyOTkgMmMzODlhMDQ0OGE0ZmIwOGM2NDUyNmM3Y2EzYjhlYWQ0Nzc1MmVhMSBsZWdhY3ktdHJ1bmsKKzMxMzAwIDlmNzEzYzdiN2ZkOTEwMGU1NjUzODVjMDYzZmU3MTJmOTYzYjViOTkgbGVnYWN5LXRydW5rCiszMTMwMSAzNTY2Yjg0ZTY2YjllNzU2YjIzMDZhZGU2MjYwMmIxYzAyMzgyMjc4IGxlZ2FjeS10cnVuaworMzEzMDIgMjRlOGM3ZTUyMWY1OThlNWQwZWQ2NzAxYTQ5YzIwNDU4YjExZGYyOCBsZWdhY3ktdHJ1bmsKKzMxMzAzIGJmYzUyNDM3OTMwNzExODQxNjQ1ZWY3MmQwMzhhZTgxYTMxNTQ3OTYgbGVnYWN5LXRydW5rCiszMTMwNCBjMTg0MjI3MTZmZjI2Yjg4MTA1MjcyZTllYTg5Mjg1ZTAxMjIzNmVjIGxlZ2FjeS10cnVuaworMzEzMDUgOGJmZjNkMDk0NGJhNzY5ZmJmMjdiNGNhZWFkZjhiODQxN2ZmZTM4ZiBsZWdhY3ktdHJ1bmsKKzMxMzA2IDVmNjkzMWI4MzUyZTQxZjBlMWJiMzU1YmZiZmE0NzZmYTI0YTk1MzkgbGVnYWN5LXRydW5rCiszMTMwNyAxZGM2MzY2NTQzZDQ4NWU3NjRhZjU5YTUwM2FmMzAxOTg0YzQyZjc0IHJlbGVhc2UyMi1tYWludAorMzEzMDggZmM1YTYwYTYxZTMyZjUzZWRjMDg4ODMyMjA1YjlkZTdhZWQ4MDY1MiBsZWdhY3ktdHJ1bmsKKzMxMzA5IGRkMTEzMDI1M2YxMDNiOTZkNmFiZGZhZGQxZTIyODdlNDM1NjAyYzUgbGVnYWN5LXRydW5rCiszMTMxMCBjYzAxZmI2NTRjZTNmNTVjYjZkZTNlMTk0YzkzOTBkYzU3YmU5ODJkIGxlZ2FjeS10cnVuaworMzEzMTEgOTA0ZjBlNzY5ODIwOTA1ZWJjNzY1YzIwNGE3ZjUyZmIyMzgyMDRlZiBsZWdhY3ktdHJ1bmsKKzMxMzEyIGViY2FlZDc5NDhlODBlMWNjOTdmNmJmNTJhYjBjNWU4N2RmNjBjZDEgbGVnYWN5LXRydW5rCiszMTMxMyAyMTAwMTgyZjc0ZTM4YWM1NWY0MGI0NDMzN2ZmZGY3NzE3MzZjOTllIGxlZ2FjeS10cnVuaworMzEzMTQgYzIwZmVjYjVjYzljNTZlMzdmZTY3Zjg4OTc4ZjkzNTJhMWY3YmNhYyBsZWdhY3ktdHJ1bmsKKzMxMzE1IGYzNDQ0NmZhMjE2ZTVmY2MxMzcyYTQ1YWNmNTkyNjA1ZGI1ZDhmN2MgbGVnYWN5LXRydW5rCiszMTMxNiAwYmRmZDY1YmIxMjI1OTMxMDljOTc2YjEwYTZhMzAyNmE5MTc5YWVmIGxlZ2FjeS10cnVuaworMzEzMTcgMzliMWJhYzg5MzY1ZjgyMGNkMzkzODJmNGI5NzczM2RhODQ0MjMzMSBsZWdhY3ktdHJ1bmsKKzMxMzE4IGYyYjQzMTM2NGY2ZmNiZjBmYTQyMjMyY2QxOTRkZTI0MjgzMDlmZDIgbGVnYWN5LXRydW5rCiszMTMxOSBiNjUwYTU0YTc2ZmRhZGFlYjdlMTUzMWU0ZjJlMmYyOGU2MTQ0YmMzIGxlZ2FjeS10cnVuaworMzEzMjAgOWE2MDU0YzZkNDZmYWI2ZGIzYmZmMmY5OWRhNzhlNjE3NzdhYjEzOCBsZWdhY3ktdHJ1bmsKKzMxMzIxIGI1NmYwMGVjODA4MzEyNzg3YmUyMmUyZjhhYzUwNDczNTU5NDllZTQgbGVnYWN5LXRydW5rCiszMTMyMiBmMDQwOWQ3NTRiOTM3N2VmYmNiOWZlNWRjMTZlODE1NDRlY2EwMzdhIGxlZ2FjeS10cnVuaworMzEzMjMgZDJiMDFjOWRmZjE2ODM1YjllYWY4MTk5YmRmYTBlZmM5YmY4MDkwMiBsZWdhY3ktdHJ1bmsKKzMxMzI0IDIwNDJlMjA1MWQ5Nzg0NzU2Mzc1Nzk5ZTdhNmNkYjNlMTUyYTI4ZDggbGVnYWN5LXRydW5rCiszMTMyNSAwNDAwYmE3OGE4OTc5YTRmODg5ODA5NmVkNDM4YTc2YWIzOTM4MWU2IGxlZ2FjeS10cnVuaworMzEzMjYgNjE5NzNkNWY2ZTI1M2M4OTdiODk3NjEwNTBkNzc1ZGI0Y2IxZTlhZCBsZWdhY3ktdHJ1bmsKKzMxMzI3IGU2MjA5OWM2NWEzYzNjMWUzNDk0MDE3YmUxZWFmMmFiODVmMGIyNjcgbGVnYWN5LXRydW5rCiszMTMyOCBiMDUzOWE0NTA5MTcyNTBjYzZmNWUxZmIyYjVmNjI3NzZlOTc3MmYzIGxlZ2FjeS10cnVuaworMzEzMjkgMzYxMTk3NmNiMTc0YTVmOTUzNDlkYjVhNzZjMTlmZmRkNjM3MjY3MCBsZWdhY3ktdHJ1bmsKKzMxMzMwIDBjN2U4YzNmNjQyZjYxNWE1NzJhNmNhNDQ1NjIxMDhiZDNiZWRiODAgbGVnYWN5LXRydW5rCiszMTMzMSAzNzJlMzQ4M2QzMjc1NDI4MWM2MTc1MGFiMGVjNmZmOTcwMjhkOWVmIGxlZ2FjeS10cnVuaworMzEzMzIgYzdkZjIyNWU0ZTRhNTc1MThkM2YwNjcxMzc5MzBjODAwM2E4MjU2MiBsZWdhY3ktdHJ1bmsKKzMxMzMzIDhkMWIyNzJjOWU3MWMyNDI5NGRiYzc2ZTc3ODM5N2M4OTk5MDY2ZTUgbGVnYWN5LXRydW5rCiszMTMzNCA5ZWM0N2U2NTExN2QzOWRhYTM0MzRmNjliNmI3ZmIwNWQ1ZDgwZTY5IHJlbGVhc2UyMi1tYWludAorMzEzMzUgZTg4NzhjOGY1NGRmNWQ1ZTExYmE3YmQ1MDdkNjNjNzA4MjA2MDQzNiBsZWdhY3ktdHJ1bmsKKzMxMzM2IGI5NWI5YWJiOWJmMzllNTcxZTczNmUzMTZlMDU1Zjg1OWRjYWU5NDQgbGVnYWN5LXRydW5rCiszMTMzNyBkMmU3ZjQ2OGYyMjRlODEyZWQ1M2ZlZjk3ZGViYTI3MTI4NjY0NjUzIGxlZ2FjeS10cnVuaworMzEzMzggOGQ2ZWUxNTg2NmIyMTZkNDFhYjlmMDBiNzYxODJiZThjNDE5MWY4MiBsZWdhY3ktdHJ1bmsKKzMxMzM5IDU2NjNlMGM4MTg2MDJmMTg0MGZiZTUwNTZmYzk0ZDBjMWZmOWQ4YWUgbGVnYWN5LXRydW5rCiszMTM0MCA0MjM5NmE3ODZmNTkzMzJkYzI0ZGQ0NzY1NmJiOTNmYjlkMTFlNmU0IGxlZ2FjeS10cnVuaworMzEzNDEgY2QwNWFmNzAxZTVkNjViYjcwMjFkYmZjYjVlMjVmOWJjYmUwZWUwOCBsZWdhY3ktdHJ1bmsKKzMxMzQyIGY2Yzk1ZjkxMzhhZDM3MmQ5MTI4NjMwNDdiOTliZTFmMjFjYzlkZjcgbGVnYWN5LXRydW5rCiszMTM0MyA0OGRjNGE1OWE1MGVmODZlMWEwMzBkNDM2NTkyZjUzYjgzOWM2MzM5IGxlZ2FjeS10cnVuaworMzEzNDQgY2IxZWVhZWI3NGEwNjYwNzg5M2FlZWU4ZDQ2MzhkNzMwYTU3ZjMwMyBsZWdhY3ktdHJ1bmsKKzMxMzQ1IGZhZmZiMTFmNTRlOGQwYTRmODc5NWM0MjlkNjExMmI1OGQwNDA0ZGUgcmVsZWFzZTIyLW1haW50CiszMTM0NiBiZjA4M2UzNTE4NWY1NDMwY2MxYmU1ZGVlMzI3Yjk2MTQzOTI3ODBiIGxlZ2FjeS10cnVuaworMzEzNDcgNTlmYmFlMzNhMGY5ZDdlNWRlN2IyMGJjMjk1ZWY5MzhmYWM4ZmRlYyBsZWdhY3ktdHJ1bmsKKzMxMzQ4IGVlMTBkN2U3ZjgxOGNjNDNiZmQ3YmM3Y2I0MzQ3YmZjZjUzYjlkZjggbGVnYWN5LXRydW5rCiszMTM0OSBmYmM0NWJlYWYwMzQ0Y2ZkZGNkMzNlNTdjMWE4NjFiNTQzYzk4MTlmIGxlZ2FjeS10cnVuaworMzEzNTAgYjgwNGVlNWJlYjQ5MjM5ZGU4MDMzMmE5MzExZjFiMjZmMTQwM2RkNSBsZWdhY3ktdHJ1bmsKKzMxMzUxIDE5YWMxMmFjODA0MTUzNTNjOGZjMmZkYjBiODNhYjIxMWEwYmNjYzggbGVnYWN5LXRydW5rCiszMTM1MiA2NTFkMTEyM2VkNmUzNzIyYTNhYWZmMDJhOWU5YzI0MDFjOTYxN2QxIGxlZ2FjeS10cnVuaworMzEzNTMgYmRlYWNmN2IxNWM5NjZiYjUxNDE3NWIxODAwNzFhMGY0ZWU5Zjc0YiBsZWdhY3ktdHJ1bmsKKzMxMzU0IDAxMWY3MzQyNThkYjliYmViNDcyMGMxNWM0YWViYjc2ZGMyZjg2MWQgbGVnYWN5LXRydW5rCiszMTM1NSA3ZGZmY2M0OThjNDU4MzFiNmNiYjQzNzA0YTZmZThiOTNlNjhmN2UxIGxlZ2FjeS10cnVuaworMzEzNTYgYzM3N2M1NmVkZmM4ZDM2YjA3N2NkMzUwYjczZWFlYzE3OTY3YjNmNSBsZWdhY3ktdHJ1bmsKKzMxMzU3IDZiYTk0MGNkOTllZjk4MzFjNjIwNWE4NjY3MTY5MjMzYjU2ZTgwNmEgcmVsZWFzZTIyLW1haW50CiszMTM1OCA0YTAyY2E2YmRiNmY0ZjdjY2M5YzdhMjQ3NzM5Y2U5N2RhZTZiMDRkIGxlZ2FjeS10cnVuaworMzEzNTkgYmY5Y2EwODZiOGFhNjI3MDQyYTI3OGRiYTc1NDNiNDliZWNhMDdkOCBsZWdhY3ktdHJ1bmsKKzMxMzYwIDZiNTY5NjU0MWJhNGVmNGE5M2U1ODI4NGY4YjAzNjE5N2M5MGY0NzIgbGVnYWN5LXRydW5rCiszMTM2MSA3ZjE3MWY5ZGI4YWZlNDg0MDVmMDhjNDJhZDAzNTc1YTk5MjMxNWJhIGxlZ2FjeS10cnVuaworMzEzNjIgNTIzZWZkNzczMjYxYTY3MmFhOWZiYmFiZWJmNWM4M2Y2ZTg1MzZhNSBsZWdhY3ktdHJ1bmsKKzMxMzYzIDk0YmQxMWIxMWRmN2Q1ZmRiMDc1MThhYTY5Mjk3N2ExMDk5NTJkZDIgbGVnYWN5LXRydW5rCiszMTM2NCA1ZDJkMjRhNzM4MjU5MmQwMTNmZDlmYTI1NzNhZjA1YmVjZGEyNjgzIGxlZ2FjeS10cnVuaworMzEzNjUgMjIxZWFmNzgxNGY0NGI2MjkwNjBiYjJiZGIxYTMyYmNhNDhlNjAzNCBsZWdhY3ktdHJ1bmsKKzMxMzY2IDEwMjU5MTIyYmY1ZjJkMTM5YWU2Nzc0OTdjOTc1MTk2MGRmMmI5M2MgbGVnYWN5LXRydW5rCiszMTM2NyBiNTE5NzBiYTIxODA2MzMwOTQ1Mjk2MmJkNmFhYzVjNWE5ZGNhMDFjIGxlZ2FjeS10cnVuaworMzEzNjggNTAxNzNlYTFmZDQ0MDcxNmE5MDAyODU2ZDk5MTRkNDc3ZjBkZDc0NiBsZWdhY3ktdHJ1bmsKKzMxMzY5IDE1YjAzMTc0ODExNmMzNjhjNWJkYjMwYzM2N2MxNzBjOWM4ZTI4MDIgbGVnYWN5LXRydW5rCiszMTM3MCAzMTYwZDMwNDE1MjE5NGNlMDg3ZDhjMjEyOTY5ZWI0MDM5MGYyNTkyIGxlZ2FjeS10cnVuaworMzEzNzEgMWMxMjk5YmMzM2Q2MDcyNzZjYjMyNDlmNjQ4MWJmMWNjNDg4OTc2OSBsZWdhY3ktdHJ1bmsKKzMxMzcyIDIzZjZiMGQwMWJjNmFkNDM0Y2I2MDk4ZDllNWRlMzJhNmRjYTZlYWEgbGVnYWN5LXRydW5rCiszMTM3MyBlNGRiZjBmMDA5NWJlODZjZjM1MWY3NGJhMWRkNjRlNzY2OWNhMzJjIGxlZ2FjeS10cnVuaworMzEzNzQgZGFhNDQ5NWNmNjFhYjE0YzQ1ODYzY2FjODJmOTQ2ODIzMGI5ZmYxOSBsZWdhY3ktdHJ1bmsKKzMxMzc1IGU5ZDcxMDJmODI3ODBmZmJlMDIyOTRhMWM0ODk2MmIxYzYxOWE4MTAgbGVnYWN5LXRydW5rCiszMTM3NiBlMGRhNDU3N2FhYTYyNDE1OTY3YjU2ZDI0ODM4NGE4YzM2ZmVlNmU1IGxlZ2FjeS10cnVuaworMzEzNzcgY2IyYzNmYmJhNzJlZTc2YmZlZTE2YzUwNWNkYzliYjhmNzllNjgxZCBsZWdhY3ktdHJ1bmsKKzMxMzc4IDNlYjAzNzZlOTNlODQyMDY1MGI0MzMwY2I0MzRkZTk1ZjFkMmIyYzkgcmVsZWFzZTIyLW1haW50CiszMTM3OSBjNWRkMDc3ZGUwZmM2NDZhN2UxN2RkMzI3MTkzMjk4Njk3YTIzMjRmIGxlZ2FjeS10cnVuaworMzEzODAgN2EyMGJiZGJmZjM2ODJmN2Y2NjUzZDViOTcwMjc1MTM4NTQxOTMyNSBsZWdhY3ktdHJ1bmsKKzMxMzgxIDRiNzVhMGI3Njg1NzE5YmY4YjNlMTMyNDRmOTdkYTU5YzkwMjZmODEgbGVnYWN5LXRydW5rCiszMTM4MiA1NjIwYjA3ODYyNzExOWI2OWI2ZDAzNGY4NzVjNTJmOTVlYzMyY2QyIGxlZ2FjeS10cnVuaworMzEzODMgODFhZmNhNzQ3Y2FhNWMxODZlZDAxODc5ZTYyMDc5YjgyMzVmOTY5MiBsZWdhY3ktdHJ1bmsKKzMxMzg0IDAxNjBmZmNiMTllMzM3YmYxM2I4MjljNTI3MTFiZWZkMmFkMzJmZWMgbGVnYWN5LXRydW5rCiszMTM4NSBjZDEwZmE3MjFhNTEyYWM4YjM4MmUwYjdlM2MzMzc3NGU2YjQwZTQ0IGxlZ2FjeS10cnVuaworMzEzODYgYTg3ODA0NzlkNGUwOTc3YzIyOGViN2Y4Yzc4MjY5NTY5ZThlZWFkZiBsZWdhY3ktdHJ1bmsKKzMxMzg3IDk0NTNkOGNkZDAxZThmN2MwOGI1MDUzNmFjYjA4OWZjYjZkM2YxODIgbGVnYWN5LXRydW5rCiszMTM4OCBlN2NkMDg2MWMyNzNiNTYyNjRjYjdjYTI1ZTdlY2MzZDYzMmNkYzRlIGxlZ2FjeS10cnVuaworMzEzODkgMzg3NDYzMzdhZTZlMDhlMTUzODZjNTQ2MzJmZjliMzgzNmVhM2QyMCBsZWdhY3ktdHJ1bmsKKzMxMzkwIGY4NDQwYmI4ZWRlNWQxOWY0OWZjMmY2ZmVhYzVlYWZmOTIzYjc4MmQgbGVnYWN5LXRydW5rCiszMTM5MSA4M2JiNmM5ZGQ3OGMwYzYzYmM1MTFkOTQwOTA2ZGFlYTEzZjlmNTA1IGxlZ2FjeS10cnVuaworMzEzOTIgZDE5NjYxZTE5OGY3NDcyYjYwMzYwZWRlYjQ1ZmU4YmU3Mzc5MmUzZCBsZWdhY3ktdHJ1bmsKKzMxMzkzIGI0ZWIzNDM3MmJkYjVlNzEyYzdiNjQ4ZjAzOGNhZDIwZmVkNmI3NGEgbGVnYWN5LXRydW5rCiszMTM5NCA2NTQ5NDQ2OWFkM2VlZmRlMjRkYmM2MmNmZDIyMmI3NWY2NTc0NTY5IGxlZ2FjeS10cnVuaworMzEzOTUgYmJiYmEwZWU2MWZiNmYyZjYwODQ2NjM4NGFhOWJhZTgzOTlmZDZjMCBsZWdhY3ktdHJ1bmsKKzMxMzk2IGU2Y2Y5NTU3ZGU0MmE4OTljOWY5YWI1NDc2ZGYzNzMyZmMwZGU4OWEgcmVsZWFzZTIyLW1haW50CiszMTM5NyBhNTIxMzdiODhlYjNjZjY0ZDliNjVmZDEwY2I1Y2NkOWMzZTdhYTU1IGxlZ2FjeS10cnVuaworMzEzOTggODcwY2YxNGFkZDJhZGJjNzA2YTQ5ZDQ3YjM1N2FlZmUwZDlhN2ZjZiBsZWdhY3ktdHJ1bmsKKzMxMzk5IGE5Yzk2YmI0Njk1M2JkZThiMTRkN2QzMjhjNTYyZWQ5MGE5MGVjOTAgbGVnYWN5LXRydW5rCiszMTQwMCAxMDBmYjY4NGNmM2U1ZjUzNDNjYTBiMDRiNjQxY2NmNTMwZWU2ZTJmIGxlZ2FjeS10cnVuaworMzE0MDEgMTFlNjEyM2RlNmZlZDZmZjkwNjVmYWVkOWI3MGE0ODlhY2ZmZmFhMiBsZWdhY3ktdHJ1bmsKKzMxNDAyIDg4YTQyYTdjMjM4YTY0ZTc5MDI1ZWNjZGY0ZTU4YTE4MThlYzQ3YWUgbGVnYWN5LXRydW5rCiszMTQwMyA2YWY3ODBlMDg2MmQwMDljNjgwYWUwODk0MDQ1ZDY5OWM1OTEzMjA3IGxlZ2FjeS10cnVuaworMzE0MDQgYWJkZWViODE4YTlhMDdjNDEzNTYwZTE1MzljNDYzOGY2YjliM2JhYyBsZWdhY3ktdHJ1bmsKKzMxNDA1IDg3ODllOTgyMmFhNGM5NzFkZjFmOGVhYzYzYTEyN2Y0MzYxMTlhY2YgbGVnYWN5LXRydW5rCiszMTQwNiA4YTZjNDU5MTBlYzkwOGQ1NzgzNjQ5NmJkMTNhN2M4OGU4ZTdjY2U2IHJlbGVhc2UyMS1tYWludAorMzE0MDcgYmU3NjgzYTZmNTIxYzVhNmQwMjgzYzVmNzRmMTM2NDU3YTJlYjRhMSBsZWdhY3ktdHJ1bmsKKzMxNDA4IDg4NGZiNTU4ZjJiOTFkMGJkMDIxNjdmYTNhYWRiNjZjYWNjODc3MGUgbGVnYWN5LXRydW5rCiszMTQwOSA1ZmVkMTE0MmZkMzRiOTA2NmE0NmYxMzc3OTkxNjc4MTQxZjRiOWJjIGxlZ2FjeS10cnVuaworMzE0MTAgMTQ4ZDhjMGI5NjQ3MjMzOWE1YjI4NzkxYWY0OGRlYzg2YjgyMzA2MSBsZWdhY3ktdHJ1bmsKKzMxNDExIDQ2NjU5Njc1ZDdmNzkyMDljZmRlNDYwZjU1YWE5MTIyZWMwMmM1YWQgbGVnYWN5LXRydW5rCiszMTQxMiA1MjBhOGMwYzlhMjVlYzhiNzFkMzdhNDVjZDA5MDJmZDY2NDFlZjYxIGxlZ2FjeS10cnVuaworMzE0MTMgMjA5NGUxOTlmZDU1NjMxZjBjNjJmMTAwN2M1MTg2NDM0ZTUyM2Q5ZSBsZWdhY3ktdHJ1bmsKKzMxNDE0IGVhY2Y5Nzc1OTAzOGMzNTkyZDgwY2U4Y2RiMDMzNDBmYTU2NjdlYzIgbGVnYWN5LXRydW5rCiszMTQxNSAyMDZjNWUzYjViZTc1YjE5Y2VlY2ZmZWRhNjliZmQyZDliYjQxY2UyIGxlZ2FjeS10cnVuaworMzE0MTYgY2VkZjllZmE2OGY4MTRmMzhhMzEyNzk1NWEzNzI5ZDMwOTU0MTQ3MyBsZWdhY3ktdHJ1bmsKKzMxNDE3IDMxZTg1ODFiY2YyNTkzNzhlOTVhZjI2ODlmNDA1MmU3NDk4Y2M4MjcgbGVnYWN5LXRydW5rCiszMTQxOCA1N2QwYmFkNzNjOGU1YTI0YmNmMTU0MWVhMGYyNjBiMjJlMWYwNDI0IHJlbGVhc2UyMi1tYWludAorMzE0MTkgZTdkNTlkYjY4MzlhNzE5YWE1Zjc0YWViNDlhZDlmZTQyMDJjODRjZCBsZWdhY3ktdHJ1bmsKKzMxNDIwIDVhZWUxYzI3MjkzOGQ1MDUwM2IwODRlYzRkMzgyZWQ1MzMwNGI4YzEgcmVsZWFzZTIyLW1haW50CiszMTQyMSBkOGIwNjAxMmIzODE1ZjJhOWNmMGI0ZTg3NzQwNGQ5ZGU4OWJmNDA1IGxlZ2FjeS10cnVuaworMzE0MjIgYTc1OTA1N2VjZjFiMzIwNTcwNTA4YzZmOTliYTdlNWU5MWJmY2JiNyBsZWdhY3ktdHJ1bmsKKzMxNDIzIDY2ZmEyNDc3N2YwYWVmZDhjNGQ3OGNlOTA0M2EzZWNiMTFiYjVkODAgbGVnYWN5LXRydW5rCiszMTQyNCA3NDI4YzEyZjUwM2Y2ZDk2OWNmZDFjMjhiMzllMzk4ZDE0M2YyYTM2IGxlZ2FjeS10cnVuaworMzE0MjUgNGUzMWU0MDg2ODQ5OGE4YmFiOWM0YThlODE1ZTg5MzhjOGU5NzhkMyBsZWdhY3ktdHJ1bmsKKzMxNDI2IGNmMWVmY2E4MmIxODM3ZmIwYzNiNTk3ODAxZTNjY2UwMDNmNTJmZDQgbGVnYWN5LXRydW5rCiszMTQyNyBjMTYzZjk1YjMwMGM2NDlmOTA1NzE4YWFiODY4OTZjYTdjYTY2NWQ0IGxlZ2FjeS10cnVuaworMzE0MjggZDBmNGYzY2Q0ZmU0MWM4NTc1MmVhOWYwMjg1OTg3NGFiM2Y0NTFlMCBsZWdhY3ktdHJ1bmsKKzMxNDI5IDE5N2Q2NGRjMDRkYzI0NmY0ODcwYTQ4NGZmNDE5NzUxYTI3NWNmYzcgbGVnYWN5LXRydW5rCiszMTQzMCA1NWFkZjA4YTIxM2EyZDg0NjFmMTdmN2EyYmZiZGMxMTYzNzc1MjI4IGxlZ2FjeS10cnVuaworMzE0MzEgODFiMmJjYmZlMzliYjYwMDgzYmRkODdmMTg0OTIxOTZjZWEyNTE1ZSBsZWdhY3ktdHJ1bmsKKzMxNDMyIGU1ODIwYTE1MGQ4N2ZlODQzNGVjODBlZGQ0MGI4MzRmYzQ3MDVmZGMgbGVnYWN5LXRydW5rCiszMTQzMyA5YmRhY2NkOGE5MDhjMjMwMjE1MDA2MDIyYzk2ODk0MzcyM2Q4M2YxIGxlZ2FjeS10cnVuaworMzE0MzQgMjMzZWQ2Y2M4ZTE0YTcyNGVjNmY5N2M3YzhlOWQ3OGUzMDE1YWRhOCBsZWdhY3ktdHJ1bmsKKzMxNDM1IGE2ODJjZWM2Yjg4MGE0OTc0NzkxY2QwMGZlMGYxMmE2ZmE3MWQ3NDMgbGVnYWN5LXRydW5rCiszMTQzNiAzZTE2OWQyOTQzOTViODFkNGE4MDhmMDczMGVmOTZmMjU5MzIzMmM2IGxlZ2FjeS10cnVuaworMzE0MzcgMTc0NzQ5ZjViMzJmYWExODYzM2I2NjQ3ODgyZGUzZDJkY2Q3NGFjNSBhc3QtYnJhbmNoCiszMTQzOCA0N2I4Y2FiYWI3YjEwM2ZlY2I1OTRkOGNjN2QzYmY5N2EzZTkyMTMzIGxlZ2FjeS10cnVuaworMzE0MzkgOWI0MjMyMGYxZTBmYjA0ODc5YWMwZmM1Njg2ODg2ZjNiOGUzMDgzZCBsZWdhY3ktdHJ1bmsKKzMxNDQwIGIwZGNhOTJjMjk5YTVlOTYzZTRhMWViMzBiYTRkNTJjYjA5NmNlM2QgbGVnYWN5LXRydW5rCiszMTQ0MSA5NWI3NTA0NDZiYjk5ZDRhZDFhMDNmYzMxMTMxMjAxZGZjMmZmMDJmIGxlZ2FjeS10cnVuaworMzE0NDIgYzVlYmFjYmJhMGJlYzA1OTMxYTg3NjdhODZlZjNiOTIyMGYzOWI1ZSBsZWdhY3ktdHJ1bmsKKzMxNDQzIGNkYjFhYmMxYjQwOTI5YjgwMWExOTA0OTJiZGZhYzY4YzJmNTZlZjMgbGVnYWN5LXRydW5rCiszMTQ0NCBjN2Q3ZjM1MGU5NmM0NWE5NjhhNWY0YTg3MDk5MWI1ODQ3NzVmN2E2IGxlZ2FjeS10cnVuaworMzE0NDUgYTZkZmFiZjNiOTJiZDdhMzU1ZTg1YTEwNzA4MGYyMDY4N2FjOThmMCBsZWdhY3ktdHJ1bmsKKzMxNDQ2IDkzZDQ0ODcwZThiNThhMWVjZDEyM2Q2YWE5YmQ5Yzk0Y2U5MThkMjAgbGVnYWN5LXRydW5rCiszMTQ0NyBjMzQ2ZDA5NTc5MWQ3ODg4NTdkNjBmNGE1ZDgxOWYwZjI5NGYzMmE5IGxlZ2FjeS10cnVuaworMzE0NDggYmUzNzFmZmM0Y2QwN2ExYWU1MTEzYTdlYzU1MDVkOGZiOWRiMGU5NiBsZWdhY3ktdHJ1bmsKKzMxNDQ5IDRiNWMyZTAyNWM1ZWY1Zjg5MmRmN2VkOGRiYjRhNDMyYWY0NDdiNTkgbGVnYWN5LXRydW5rCiszMTQ1MCA4ZTc0MzJjZGY3ZDhmYzY1NGFjYmM5YTQxNjBmODExNjA3NjE1MTcwIGxlZ2FjeS10cnVuaworMzE0NTEgMjc1OWIwNDhkYTliNmY0MDlkYzE5YzA0M2MzZmQ4NDNiYjU5MDM1NCByZWxlYXNlMjItbWFpbnQKKzMxNDUyIGVmYzQ2NTgxMGUxZWRhYzlmZjExYWE4MjljOWUyYmMyZTU4MzA5OWUgbGVnYWN5LXRydW5rCiszMTQ1MyBlYzEwNTJlZjczYmE4OWM0NzNhNDdhZDMyOTM2YjlmYzA0YWQ3YmQyIGxlZ2FjeS10cnVuaworMzE0NTQgMzAxOGYzMWY2ODMwOTIzYjkwOGNmY2NlZjE4NTM2NjY1NWMzNTVlMyBsZWdhY3ktdHJ1bmsKKzMxNDU1IDJjNGFiMWRhNmViNDdlYTE4Y2E2NGY2ZGI4ODE2MjcxMWFjOTkwZjAgbGVnYWN5LXRydW5rCiszMTQ1NiBiZWRhY2E5ODUzZjkwNGNiM2I5YjQ4MTM3OGZkNDZjYzkzNGI0MGJkIGxlZ2FjeS10cnVuaworMzE0NTcgODRkMzA5YjY3NmZhN2I3NzEyOGI0OWEyY2EwMDNkMWUxZDIwMjc0NSBsZWdhY3ktdHJ1bmsKKzMxNDU4IGUzMWIzOTkzMGEzMTI4MzRlY2RiYzg3MzVmZDUwNDJmNzFmZDZiNGEgbGVnYWN5LXRydW5rCiszMTQ1OSAzZGEzMTc3OGVjZDcyNGY4YTE0MGZlNzc0NmQ0NDNkMWY1YTNhMjIyIGxlZ2FjeS10cnVuaworMzE0NjAgODUwYzBkYTEwMWI2M2ViYmViYzQ2YTJjZTg3NGQ0ZTg3MWVlM2ZiYiBsZWdhY3ktdHJ1bmsKKzMxNDYxIDJkNTAwNDliZDIxZGY3Y2FhMTFlYzJiMWQ1MDUzOWQ3OTk2ZTljY2MgbGVnYWN5LXRydW5rCiszMTQ2MiA3MGUyOWVmOWZhNjJmMDFkNGYzYjNmNzkyZTc1YzQwZWI1Nzk5YjE3IGFzdC1icmFuY2gKKzMxNDYzIGFjNjgzYWM2NzU5YWZjZmY1NDM4NGE0NzE3OTJjZmEwMzA3M2YwYTEgbGVnYWN5LXRydW5rCiszMTQ2NCA0NGYzZTMxNTkyOWI5ZTRkOWZkZjMzZGY5YWE5ZmMzN2QyMmRmYWQyIGxlZ2FjeS10cnVuaworMzE0NjUgZjY3YWI2YjY2NDU0MGI0MmQ3MGFhZDBmNGZlYTE3MDFiZmFkMjYwZCBsZWdhY3ktdHJ1bmsKKzMxNDY2IDg2YjUwNmRiZWExODAzMmZmMWNjMTBlNThjZjgwYTUwODg1MDRiY2EgbGVnYWN5LXRydW5rCiszMTQ2NyAxYWZhZmVkOWZhNzc1NWJjMzg2NTQzZGU3MDhlZjgyOTdkZjMzYTFhIGxlZ2FjeS10cnVuaworMzE0NjggOGMyMTFjY2RlMmI0YjRkOGM1NWJlMzY0YTRmNjBhZmQ3ZmE5NzIyZCBsZWdhY3ktdHJ1bmsKKzMxNDY5IGM5NDAxYTM2YmFlNzE0ZjBjZDVmMTQxY2QxN2Y0NjczMjZlYTU4N2UgbGVnYWN5LXRydW5rCiszMTQ3MCA4YzZjNzk3NzI3YTkzNWZiMDU3OTUzMWNlYzM5MGRmZjVjOTVhYTliIGxlZ2FjeS10cnVuaworMzE0NzEgMWJkNDg1NzE3NTY0NjI2MGI5YTQ1MTdhNzcyNjEwMTZiMDQzNThlMCBsZWdhY3ktdHJ1bmsKKzMxNDcyIDE0NDUxZGQzYWNiMDRkMWFkZDgxMWFjMTZkNGMwNjZiZGFmMmNmZjYgbGVnYWN5LXRydW5rCiszMTQ3MyA5MjU1ZmJkZTQzZjM2MmQxYzA0ZjM0ZGU0NjNlYjdhNzJmMGYxMDk0IGxlZ2FjeS10cnVuaworMzE0NzQgM2IzMGY2NjM2MmJlMDA1ODc5NDRhZTk2OWM2OTJiMGZhYzFlMjY1NCBsZWdhY3ktdHJ1bmsKKzMxNDc1IGE2OTYyZjUyZjIzOTgxYTRjMTg5Yzk0M2IzOGY4NDBiOThhMDE3OGUgbGVnYWN5LXRydW5rCiszMTQ3NiBiNTU2MGFlNGQ5NzFkZTA1NTMzMmViNzRjZjBmY2UwYjZmOTE0ZDhlIGxlZ2FjeS10cnVuaworMzE0NzcgZGFlNzlkNzgzMjA1Nzk2MDZjNWZkY2MzYjIzYzI1OWE0YzVjMjI3NiBsZWdhY3ktdHJ1bmsKKzMxNDc4IDBmMDE4ZGY5NzRkYmI5YzgxMTM5ODg1ZmYxZTAxNWM1YmNkYmE3NjggbGVnYWN5LXRydW5rCiszMTQ3OSBkYjFkNDU4NGE1ZTFjMTE1Y2IwODJhMjVmYzkxN2NlNDg2N2Q3OTU3IGxlZ2FjeS10cnVuaworMzE0ODAgYjRlZWIwYmJkZDQ4YjhjYjQ1YjdkMTQzZjFkMjdjN2RlM2ZhYTczYSBsZWdhY3ktdHJ1bmsKKzMxNDgxIDQ3YTc2NGU0M2U5MDE4NTNiZmU4ZjM0NjA0NmIzYTU4YmRlMGRlZTggbGVnYWN5LXRydW5rCiszMTQ4MiBiNTQwZTYwOGJiOGE2YmNiMTg0NjBjZTYxNWQ2NjQ3NmFmN2ExMjI0IGxlZ2FjeS10cnVuaworMzE0ODMgYWE4OGFlZjNhYjBlZWE4NDAzNzMzMWNhZDhiNzI2NzM3YmVhOGQ0MCBsZWdhY3ktdHJ1bmsKKzMxNDg0IDFlNzZhZTNjMTE1NGQ2ZWYxYWZiY2EyNjg3MmExYjMwZWY2OTgxYTUgbGVnYWN5LXRydW5rCiszMTQ4NSBmMzEwODk0MTA3Y2IxOTUzYTFiZDVhNzc5YmVlNmRiNTI3YmZhOTZiIGxlZ2FjeS10cnVuaworMzE0ODYgZjMzMTBkY2VmM2Y4YjVlMDg5ZjY3YzQzZmE3NDcxZTcwMmJhZGIxNiBsZWdhY3ktdHJ1bmsKKzMxNDg3IDcwZTE5NmFmNDc2ZDQ4ZWVjMzUxZmY2MTBiMDM1ZjJiOTBmOTQ1OWQgbGVnYWN5LXRydW5rCiszMTQ4OCA5MWZjOTYzN2U1NmEwOWMyMDMwZDU1MWNmZmVlZjAzNjIxMTAxMGJlIGxlZ2FjeS10cnVuaworMzE0ODkgZTA3YjIxZWEzYzQ1ZGRmNDQ5MzBlZmU5MWEwODE2MjhkNzM2MDFkNCBsZWdhY3ktdHJ1bmsKKzMxNDkwIGNjNGFkOWFmYTIxZDMzODgwZWUyZDIyMzJjY2VmNWJiMTZlZDRiNWMgbGVnYWN5LXRydW5rCiszMTQ5MSBjYjNmMTg5MDhjZWJlZTA1YjljOTE4NDIwMGY5MGVlNTY0MWE1ZjEwIGxlZ2FjeS10cnVuaworMzE0OTIgYWMxMDcyOWYwOTMyZDA5YWI5NzhiOTNkMzM3ODAxZmVlZDUzMGNhNyBsZWdhY3ktdHJ1bmsKKzMxNDkzIGUyNzM0MmE2NDE3MzdmN2UwMDQ2ODE3ZjFlNzJkYzk0YWQwYmY5OGMgbGVnYWN5LXRydW5rCiszMTQ5NCAyMjY0NjM0NDU2OTcyMDNhMjc1MDM1YmQwNmIzMjk2ZThjYzA4ODZlIGxlZ2FjeS10cnVuaworMzE0OTUgM2JhYWJkMDI3Y2M0ZDQxMjBlOGUxMjcwYjc1MDAzMmZlNjMzYTc4ZSBsZWdhY3ktdHJ1bmsKKzMxNDk2IDhkY2M1MjBkM2EyOTY3YTJiYmM1NjE2MWY2YjJjNmQyNWM4ZGNhOTEgbGVnYWN5LXRydW5rCiszMTQ5NyBiMjhkNGZkZTllOWZiOGYzYzhiOTBjZTkzZDg4NzkzNTRiZjJlMGM4IGxlZ2FjeS10cnVuaworMzE0OTggNDMzN2E4OTlmZDEzMjQ3ZjMyNDIxZTQxMzkxMmI1NmQxYTVlM2MyZiByZWxlYXNlMjItbWFpbnQKKzMxNDk5IDQ3Yzk0MjEzNThkZDA0N2QyOWMzMzIwNzUzOGIwYzg2NjUxZjE0NWEgcmVsZWFzZTIyLW1haW50CiszMTUwMCA0Yzg1ZGUyNDdlZWRiOTdmNDRjOTQ5ZmY4ZDM4NmM2NGUyMGVjMGFjIGxlZ2FjeS10cnVuaworMzE1MDEgZTBhOGMzMTE1MDA1ZTFjMzM5ZTkzNmE2OTAwYTI3YWNkNzVkZTNlYiBsZWdhY3ktdHJ1bmsKKzMxNTAyIDJlMGFhNjhkNDM0ZmNjNDA2YWRhOWZmNWEzOThhNzg2NTJhZGIwYTggbGVnYWN5LXRydW5rCiszMTUwMyA1M2M4MDI5MjcyMDJlODQyNzUzODQ0NmE0NTc5MzFlZTUzZDUwMjQwIGxlZ2FjeS10cnVuaworMzE1MDQgOGZjOTFmNTBiODYxNTA2NWQ2ZmNjZWU4ZmU4MzE4ZGZiN2Q4OTkzOCBsZWdhY3ktdHJ1bmsKKzMxNTA1IGQwZDI5ZGYyYjYzOTAwNTNkNWIzZGI0OTU5OTcwMzUyNTI0ZWE1YWUgbGVnYWN5LXRydW5rCiszMTUwNiBjYzk1YmI3ODcwZGM1NDdjMGNjOGU4MzVmZDc0MThlNjdmNzkxYTM1IGxlZ2FjeS10cnVuaworMzE1MDcgZDVlYTJiNjdiNWY0NDNmM2M2NTc1ZmNiZGZjOGE2MDI3NDc0ZWJhMSBsZWdhY3ktdHJ1bmsKKzMxNTA4IDBmZTMyMWU3OGFkMzFhMWJhYWJkOTY1ZDU1NzkxNjE3Mjg3YTYzNDAgbGVnYWN5LXRydW5rCiszMTUwOSA0Yjk5YTcwMWRlZmUwZWI3MGI2MzE5ODgxMGE3NjA0MjUxYmNiMGM0IGxlZ2FjeS10cnVuaworMzE1MTAgOTYzMjdlYzc2ZDllMDJiODQzMTE1OGQyNDYxYzE4Y2MzZTRmZDhhZiBsZWdhY3ktdHJ1bmsKKzMxNTExIGUwMWQ1ZGJiNjZhNDU5MDExZTE0Y2ZjODJiNDcwMzBjMzkyNzYwOWUgbGVnYWN5LXRydW5rCiszMTUxMiBlYjJhOTg0ZDM3NDczZWNkZTczNWQyNWJiZTk2NjhhYjYzMjRhMWJhIGxlZ2FjeS10cnVuaworMzE1MTMgMzg3YTQxMjJjYmQxZTY2YzJkYmNjNWNlNTMxOWViNmUzYjZiYzI0YyBsZWdhY3ktdHJ1bmsKKzMxNTE0IDllMGYyMjQyMjc3YmZjMWZjNDAyZjE0NjAyYjRhNjc3YWRmMTEwYWUgcjIzYTItYnJhbmNoCiszMTUxNiBjZWY3Yzk1ZTc0OGMxY2M2OGU5NGI5YWNiMzI1NDlkZmE5MzkyZmNhIHIyM2EyLWJyYW5jaAorMzE1MTcgNzY1MDE5NzU4ZTk1MTAyYTJiYWExY2IyMmEwMmJjNGQ4OWI5OTE2NCByMjNhMi1icmFuY2gKKzMxNTE3IDcyMWI2ZjE4MWZjYjlhOTQyMGJjYTg4ZDdjMGY1Zjg1NDc0ODIzYzEgcjIzYTItYnJhbmNoCiszMTUxOSBjNGI5MTlmYTBiZTNlYjk0ZjczYzc0OGI2OGRhYTViZGRmOTZmNTlmIGxlZ2FjeS10cnVuaworMzE1MjAgNDgwOWZiMGU4NjYwMTg4NGY4ZjNlMGNjNzU4NmM4NGJkNTdlMGJkMiBsZWdhY3ktdHJ1bmsKKzMxNTIxIGY1OTg3MDk3NjE0Njg2MGJhYmM1ZDM2NDg2NWU2ZDdkY2ZiZjE0NDggbGVnYWN5LXRydW5rCiszMTUyMiA2NTg2MDIxMjRkZjUyODIzYTY1OTJhNmQ2NThkYWVmNTA2YTFhYjdlIGxlZ2FjeS10cnVuaworMzE1MjMgMmM3NTE5MzZmNjk3NjdhN2FmNDM0OWQxZGNmZjcyNTNkYWU5ZWU3ZiBsZWdhY3ktdHJ1bmsKKzMxNTI0IGIyNmY1NzU4NDE0YTBmMTM1MDhmMGJhNDlhZWIzZTcyOWI1NzMyOTAgbGVnYWN5LXRydW5rCiszMTUyNSBlN2IyNmMzZjM1NmY1N2QzNTljNTUwOTNmNjkyZjhhNDY3NzQyNjFlIGxlZ2FjeS10cnVuaworMzE1MjYgMGIzZGIwZWRiMTUxZWMwMDdmY2QzZmI1MjRiZmQ3NjRjZjQ4MjI2YSBsZWdhY3ktdHJ1bmsKKzMxNTI3IDUzNjdjZDBlZWM0NzdjNzU5MGEzMGQyMGVlMTY5YWU0MDNmOTc3YWQgbGVnYWN5LXRydW5rCiszMTUyOCA0NDg5OTE4YTRjY2RiOTAzNjAyNGNjODNiMjc2YjhhOTk5YjA1YzhlIGxlZ2FjeS10cnVuaworMzE1MjkgYmVlYTRmMjFjOWYwNTdjM2IxMzlmZjk2ODBmNTgxNjI2MWIwZTgzOCBsZWdhY3ktdHJ1bmsKKzMxNTMwIGUyNjdlZDEwMGQ4NWZjYWFjOTU2YzA5MDI5OGYxMWI4MTMxOWM3M2IgbGVnYWN5LXRydW5rCiszMTUzMSBlMTFhMTc4YmI0NTNmYTQ0NzZkMTRhNWRkYjE2NjY2NDFkYzdjZDc0IGxlZ2FjeS10cnVuaworMzE1MzIgMTA3ZDk4ODkwMWEwZjkzYzQ2OGFjOTEwNTA3NjYwMTAxMjI4NzAzYyBsZWdhY3ktdHJ1bmsKKzMxNTMzIDllMzhmODE3MDkyZmVmMDkyYWRmN2FjNDczNGRhNmMwNzExOGZkNjkgbGVnYWN5LXRydW5rCiszMTUzNCBlMjdmNThhNTA3MzcwNDgyOWM3ZDliMTI3YTc5YTUzYTdhMjI5YjZkIGxlZ2FjeS10cnVuaworMzE1MzUgOGY3MDYwMmZiZWJiM2MzY2UxNzcxYTA0ZjkwZDAyMDQ2Mzg2OWMwYyBsZWdhY3ktdHJ1bmsKKzMxNTM2IDFkOTJjMTViZDBlNzI1ODkxMzdkY2Q2NGRlMDRiNDkzODlmNjFlNjkgcmVsZWFzZTIyLW1haW50CiszMTUzNyA3MzllY2ZiNWYxNWU4ODljMGZmMTE4YzhlMmVhMDRiMTg0ZjMyOTUyIHJlbGVhc2UyMi1tYWludAorMzE1MzggNzdiZWY2YWE0OGU1NWZiMGQ4NmE4YjE4ZDQzMzYyMjIwMzFhY2EzZiByZWxlYXNlMjItbWFpbnQKKzMxNTM5IDE2YjI1MDMyMjE3ZmY1MTAxMzZhOWNmZmJjNzI5MWMzMmRiNWNkNDIgbGVnYWN5LXRydW5rCiszMTU0MCBkOTJkOWI2YThhN2QzYzI2ODdiYjUxZWYwMjdiNGI1Yzk5NWE0MDdkIHJlbGVhc2UyMi1tYWludAorMzE1NDEgZWI1ZTI5NjE3MzEwOWQwY2NmMDk4ZmZhYjlmMTViNTA2OWRhZTU1NiByZWxlYXNlMjItbWFpbnQKKzMxNTQyIDVjZjA5MjFmNGI5NjI2MjVlOWRhZTJmMWExY2FmYzk1Y2M0YjU1NWEgcmVsZWFzZTIyLW1haW50CiszMTU0MyAyZGY5MjA0OWQ5MjUwMTdiYmI4NjAxNTJhY2Y3YWI3Njg0NGM2YjE2IHJlbGVhc2UyMi1tYWludAorMzE1NDQgYTRmOWQ5MWEzMjFhNzlkZjQ4Yjc1Nzk1NWQyNmQyMTQzMGY2YWEyZCByZWxlYXNlMjItbWFpbnQKKzMxNTQ1IGZlMTBlY2U4YmE2OGM0YWVmYTQ4ZDEzMzczNTc2MDdlM2FmOWUxN2QgbGVnYWN5LXRydW5rCiszMTU0NiA3YWEyMTYzODg5YWNmODdmMDY1NDkxYWRhODE1MDM5NDNlNWUyYTQ5IGxlZ2FjeS10cnVuaworMzE1NDcgMGViOTQ4MzY0OTkwZmI5OTE1MjRkYjQ2N2Y5NTFkMDY0YjM0ZTBmNCBsZWdhY3ktdHJ1bmsKKzMxNTQ4IGZhY2ZmNTIyZTc0NDJjZTAxZmE4Y2IzODBiNjUyYzVmZDEzOGNkMzcgbGVnYWN5LXRydW5rCiszMTU0OSA3MjlhMWMyZWM0ZThlMGZkYTJkZTUzYTNmZDdiYTE0MmFkZWRmNWNlIGxlZ2FjeS10cnVuaworMzE1NTAgNjEyODgzZWFmNTBjNmU3MWNhMTg3MDA4ZTZmNTFlOTlmOGViNzE1ZSBsZWdhY3ktdHJ1bmsKKzMxNTUxIDc5YWQ2MTU2ZDZjNDI0NDY1ODE3YzViYmU2ZjQ5NjhmNGIxYTQ2MzUgbGVnYWN5LXRydW5rCiszMTU1MiAwNTZmZmE1NTQ1MTdhNzg4Nzc3ZGVlYmQxN2IyMjQzMzdlNWViOTFlIHIyM2EyLWJyYW5jaAorMzE1NTMgYThjMGFmODIyODg4NDZlOGE5NWVhZmU2OGIwMDJmNDZlMzJmMWE3OSByMjNhMi1icmFuY2gKKzMxNTU0IGEyZTk3MDU4OGU1YmI2ODgwMmVhY2Y5OTI4MDAyOTA4YjNhZTUxZGMgcjIzYTItYnJhbmNoCiszMTU1NSBiY2UzZGYwNzVmMzc4MDkzYjI4MGY0ZjBmMzJiNTg0MWUwMzI4ZTFlIHIyM2EyLWJyYW5jaAorMzE1NTYgM2JiY2MzYmJhNTYwYzhiNDY3M2YzMWY4YWZkMWY4NmJmMmNkYTU2NCByMjNhMi1icmFuY2gKKzMxNTU3IGI4NDk0ODJjNzBjNmQ5ZjBiNTUwMmNjMmFlYTAyOTk1YmE5M2NmMjQgbGVnYWN5LXRydW5rCiszMTU1OCBmYWM3NjIyODNhYmNjYWYxMDI2ZmZjYzAwY2QwYmI3NTdmMDk4NjgyIHIyM2EyLWJyYW5jaAorMzE1NTkgMWU5MDc0NjJlODNhZGJjZjU0ZGJhNzU0ZWY0NDAxMGU2MGU4ZjlmYyBsZWdhY3ktdHJ1bmsKKzMxNTYwIDc4YzljNGEwMThjZDFhMDM4YjdmYWU1OTQzNGRjMTJhZjJhMWFiMzIgbGVnYWN5LXRydW5rCiszMTU2MSAzMmEwYzJmNDIyZjE4ZGU5MTY0ZTAzMDExZTYxMzc5OGEwOGEzZjNjIGxlZ2FjeS10cnVuaworMzE1NjIgMjFhNTBjMzA4ZGI0NTkyZWQwZjhmZDVmYTA5NDRjYWU0NGJmMzczOCBsZWdhY3ktdHJ1bmsKKzMxNTYzIDVkZmFmZjk4MDkxMDAxZGQ2ZjI1YWIyMGNjNzM0MWY1MGRlYjE5NDYgbGVnYWN5LXRydW5rCiszMTU2NCA4NzJjNmYyMDI4ZmM0YjdmMzZmZmZmNWMzNWNkNWVkNmY1OGQ0YjMyIGxlZ2FjeS10cnVuaworMzE1NjUgODA4NDM3YjgzYjE1MTg2NmFkMjNiMDk4ZTViNWQ1OTMwYzUwNDM2YyBsZWdhY3ktdHJ1bmsKKzMxNTY2IDYxZmE2YjU1YzFkZTJkNjVhNGU2MzMyZDFhODk4ZWUwNWNjYTFjYTUgbGVnYWN5LXRydW5rCiszMTU2NyBlNjNmMWVjY2QyNTBkYWQzOWE1ZWI5MTg4YTkwYjgzYTVlZDNkZGExIGxlZ2FjeS10cnVuaworMzE1NjggOTA2NDU5NjE0YjVlNzEyYjUxOGM5MTYyOWU4NTNmZTFkMGZiYzlmMCBsZWdhY3ktdHJ1bmsKKzMxNTY5IDQzYTllY2JkOTYwN2NhMzNkMTg3Mjc5MTZhODNhOTM1ZDA1ZjRkNGIgbGVnYWN5LXRydW5rCiszMTU3MCBhYmQ1N2M1MzU4YmQ3YTBlYTAzMTAyZTk4MDI5MDMwMDRhNzM5ZTIxIGxlZ2FjeS10cnVuaworMzE1NzEgNmUyMGIwNDllZDZmNmM0NWM4MTk1ODNiMTE4ZWUwNzAzZmQxMmU1NyBsZWdhY3ktdHJ1bmsKKzMxNTcyIDI1ZmQyOGM4YmI2YmFlOWE4MWUzMzZmMmViNTJkNTI1N2MwYTRiZGQgbGVnYWN5LXRydW5rCiszMTU3MyA5MDRhOGI4MjJkYWZiZmJjNmVmYTI0NTg1NjlmMzZmZTE0YmY3NzEzIGxlZ2FjeS10cnVuaworMzE1NzQgNTNiZWYyMGY4NGNjZDJlOTIzOTkzYmNmNWNhMWYyYTJmZGE1ZmRkMiBsZWdhY3ktdHJ1bmsKKzMxNTc1IDFjMmM5N2QzNDU2Mzg0ZTcyYjlmMWIxNDBkOWU1MGZlM2VhOWRhY2IgbGVnYWN5LXRydW5rCiszMTU3NiA5MTYyNGE0NzUzN2M3MDFkNThlODRmY2M4NzkzMDJhMDBiMTRlZjAwIGxlZ2FjeS10cnVuaworMzE1NzcgZjM0ZmNkNjNhZTI4ZTA4MzU3NzI2Y2Y4ZmU3ZmYyOTFjYjUwOGMwMyBsZWdhY3ktdHJ1bmsKKzMxNTc4IDUzZmZhYjVkYjAxNWRkN2FjNmFiOGE4YWQ2NTdmN2RjNTdkMGJjYjAgcmVsZWFzZTIyLW1haW50CiszMTU3OSBiZTA5ZDMyNjg3ZDhjNWVmNTc5ZDU5ZDBjMTJjNDRjYmQ4MGE0YjBhIHJlbGVhc2UyMi1tYWludAorMzE1ODAgM2RkYjA5MmFjZWE4YjhhZTUzM2UyOGJhMmQ1NmUzNzQ3MWNkMjNjYSBsZWdhY3ktdHJ1bmsKKzMxNTgxIDRmNmM2MzMwODA2MzM3ZDUwYjI4NGNmMzhiY2Q4ZTYxYjdkMTQyYWMgbGVnYWN5LXRydW5rCiszMTU4MiBkOGI5ZDdjMDQxNDY1NDNlNzFhYmQ1ZmNiMGZkYWM3OGIzMTU0YzNkIGxlZ2FjeS10cnVuaworMzE1ODMgMWI2NTM4YWEwOTU5MWUxZTliNDI2MDhiN2VhNmE2ZGUwZDk0MDg0MSBsZWdhY3ktdHJ1bmsKKzMxNTg0IDRlYTM3OGE3MWY5NjZhOGJkOGYwMmQ2NmMzNTgyOGNjOGJkNWIwYWQgcmVsZWFzZTIyLW1haW50CiszMTU4NSBkYjkyYzc3YjA1ZTI2YjVjZTM5MDVjN2IyMjNiNTZhNDkyYTA2MDRkIGxlZ2FjeS10cnVuaworMzE1ODYgNDg2YTBmNTE2ZGIwM2QxN2M3MDg3ZmE0NWI5ZWE0Mzg0YzJlNjg5MyBsZWdhY3ktdHJ1bmsKKzMxNTg3IDc4NGVkNjA1YjUxMzBiYWE2ZjQzZmIwYmEyYWY0NGFhMmNkNDM3ZmIgbGVnYWN5LXRydW5rCiszMTU4OCA3ODAyZDhjMWFkYWM4NDBiMjA0MjgyODcxZTU3ZTMyOGNlOGRlMjhiIGxlZ2FjeS10cnVuaworMzE1ODkgMmU4ZjA1MzE5MTliYjJmMTQ0MWMyZWE3N2Q1YzQ4MzFlZjUxNzgyMCBsZWdhY3ktdHJ1bmsKKzMxNTkwIDE5MmJkNmUxMzVhYWRhNThmNTc1YzM3Mzc4NWQ3ZTRlMjhlNGJjODkgbGVnYWN5LXRydW5rCiszMTU5MSBiMzhjZWJjNzZkODI1MWY1YTI5ZGJjMzAxOWEyZWJlYzBkZWMzNWVkIGxlZ2FjeS10cnVuaworMzE1OTIgNWFiYzVkMDg4MTRmOTY4YTNhY2RiNGMzZTM3NTVhNTBlODhjYmM0ZiBsZWdhY3ktdHJ1bmsKKzMxNTkzIDgyM2Q1YjFmMzJlMTJlYjU5OTU1MzNhYTU2ZTA0N2YyZThiOWNjNDEgbGVnYWN5LXRydW5rCiszMTU5NCAwYTg5YjQwNmM3MzJmMWY2YTIzOGMyYTE5ODU5YmE4YmU0NWRjYTc0IGxlZ2FjeS10cnVuaworMzE1OTUgNDk4ZGIxYmNkNjY0ODk0Y2FkM2FiY2MzN2NjODM0NTU1MzViZmJkNyBsZWdhY3ktdHJ1bmsKKzMxNTk2IGNhNWIwY2Q3YTUyNTA0OTVjZGIwYWRjZDQzNmUxODZmNmFmYzkzMzQgbGVnYWN5LXRydW5rCiszMTU5NyA0MDEzNDA3MGU2YTZhMGRkYmIxZjdlYTc4ODQ5ZjhmZTdhZTNmN2FhIGxlZ2FjeS10cnVuaworMzE1OTggYThjODdhMGJlYjk4MDM2MTA5MTVjZDA2NjEzYjAzMDc2YjBmODMxZiBsZWdhY3ktdHJ1bmsKKzMxNTk5IDFhMGMyMzFjNmIwY2FlODA0Mjk0MjZmMTg5OWEwYzE4NmY2Zjc5OTMgbGVnYWN5LXRydW5rCiszMTYwMCA3MjNjNTQ1NzMwN2Q5Mzg1YWIyYWFiZWUxOTBlOTQwMTY3ZmY5MjIyIGxlZ2FjeS10cnVuaworMzE2MDEgN2Y5MGI1YjcwMDFlZDFmZDg4Zjk4M2RiNWYwMzViODE1ZjJjYzBiYSByZWxlYXNlMjItbWFpbnQKKzMxNjAyIGZiNzljYzI2MzBjMWVlNDI0MmJiNzIxOWMwNThkN2I4YmYyNGQxODYgcmVsZWFzZTIyLW1haW50CiszMTYwMyBmOGZjNWUxNGJmZTg3YTVjZjVkZDc1YzJkMTYzMWU0YzcwNDg4NTJiIGxlZ2FjeS10cnVuaworMzE2MDQgYzc1NjYxNDQ0NjU1Mzg4MzI1ZDIwMTM1Y2RiZDc2MjVlNjJmYjExMCBsZWdhY3ktdHJ1bmsKKzMxNjA1IGMzNjY1ZGY2NmQ2ZDViMmM4ZGE5Yjk2NWJiMWNjMDI5MTJlMWM5MTkgbGVnYWN5LXRydW5rCiszMTYwNiAzMjQ4OTZiN2Y0ZTFlMjU5MThhZjFhOGU5OTM1MzQ0NjFlY2NhOTc4IGxlZ2FjeS10cnVuaworMzE2MDcgYzYxZWYxODNjZTJmMTU2NDVjNGE0MDBhYzAxZmE2NWE5YTljODYyMiBsZWdhY3ktdHJ1bmsKKzMxNjA4IGQ2NzMwNTkwNTI2YzMxNGM1YWUwZjZmOGJhNmE3MWUzNjQ3YTExM2YgbGVnYWN5LXRydW5rCiszMTYwOSA5ZDI5N2QzZGUzNmY1ODYxYTVkYjc2N2U5Y2E3NDBlYmJlMTU3ZDc1IGxlZ2FjeS10cnVuaworMzE2MTAgZjcyYzM4M2JjYzQ1ZDRmODg0NGYzMDNjNDQ2MTk0NjVhYTE1ZWNmYyBsZWdhY3ktdHJ1bmsKKzMxNjExIDg2ZDgzODRkODgxMDJmZTI4ODcyMzAxNzU2NGIxMzc2YTJiNmM1ZTYgbGVnYWN5LXRydW5rCiszMTYxMiA4NjY5NjRjODViOGUyNmQ4Mzk1YzQxNzc2OWVhNGU1MjVjY2YzODMyIGxlZ2FjeS10cnVuaworMzE2MTMgNWIzZDU5Yjk3OGEyZDY5ZjE2NmUzZDk3MmFhYjMyMWQyZGRjOWJjNSBsZWdhY3ktdHJ1bmsKKzMxNjE0IGE4YTY0MzY0YTcxMWQ0MTlkNmE4YmE1ZjZiZTg1ZGVkZWExYmZmOTUgbGVnYWN5LXRydW5rCiszMTYxNSAwNDU1Y2Y4OWIxMjM5OGEwZTY4YzNlNjUzZGM0MDg5MTA5YmZmNTk1IGxlZ2FjeS10cnVuaworMzE2MTYgYjA0NjI1Y2VhMDYxM2FhZDZkYTY4MGEzZmY3YjhkZjA5MmE2MWU4YiBsZWdhY3ktdHJ1bmsKKzMxNjE3IDdmZGNjNGNmYzc1OTE3NTU0ZTlhZDc3MzExNjdkZmMyZWM3OGI5ZjMgbGVnYWN5LXRydW5rCiszMTYxOCAwMGRlZDYyZDI2NzhhNDM1ZmQ0MGQ2YmNkMDA0MWI4YmQwOTZhNjhiIGxlZ2FjeS10cnVuaworMzE2MTkgZmNiMzliMGE2ZTMwNmM4MDU4Y2ZlNzQ1ZmEwMWZkZWRkZGI5ZGY3MiBsZWdhY3ktdHJ1bmsKKzMxNjIwIGJiNmJkNTQ5ZjkyYTc5NjRlYjk2OWFmZTA0Y2FhNTA5ZmUwMjQ1N2IgbGVnYWN5LXRydW5rCiszMTYyMSBiOGNiOTBmYzM1MjNkMzY4NDlhNGEwOTg4MGJkOTY5MTU1N2Y4ZTZkIGxlZ2FjeS10cnVuaworMzE2MjIgMGM4OWRjNjI1NGJlOGQ4NzRlZjEwYjNjOWZmMThlNDhjYzY0MTY3ZSBsZWdhY3ktdHJ1bmsKKzMxNjIzIGNmOWQ5MTI4MzQ1YzNmMWI0OWFkZmNkZjZlZTljYjI3ZTgyOTc1ZmUgbGVnYWN5LXRydW5rCiszMTYyNCBhNTg3NDQ1M2JmMTdjNjYwOGU1OTJkN2ZiYTgyZjdiM2Q5NDQ4NzFjIHJlbGVhc2UyMi1tYWludAorMzE2MjUgMjk5NjVkMGQ0NjUwNTlkMzA4NzRlNmY3ODBjNTQ4NGFlMTI2Y2M0MyBsZWdhY3ktdHJ1bmsKKzMxNjI2IDQ0YmExNTcyNTE4ZjcwMjlkYTU0YjBjYTM2M2I5MTY3YzdlZWMxMTcgbGVnYWN5LXRydW5rCiszMTYyNyBmNDJmYmM3YzdkOGU5YWMyZTA1ZmQ0MmU3NDIwMDIxYmQwNmFmYzA1IGxlZ2FjeS10cnVuaworMzE2MjggMjQ3NDM4MTUyN2JiYzljNDJhMjBkNWU5NDlkNzUyMjNkNGEwNzcwNyBsZWdhY3ktdHJ1bmsKKzMxNjI5IDQ2NTQwNWExNTljMWY0Mjc3ZjZhNGU2ZDQ2NzRjODExMzc5NTgzMTkgbGVnYWN5LXRydW5rCiszMTYzMCBkOWU5Yzk2NGI2YTQ2ZTUwZGFmZjM0OTM2YTViOWUwNzNlYjIzNzZmIGxlZ2FjeS10cnVuaworMzE2MzEgMTRmNjVkNjYxMDg0OGU1YmM5NTZiNDc2OGQ0OWM4Yzg4ZGNkNTY2MyBsZWdhY3ktdHJ1bmsKKzMxNjMyIDNjNWE4ODE0NDcwYzljNGJmYWI3NWVjNzBkMzU2MDIzZjRkODRkZTMgbGVnYWN5LXRydW5rCiszMTYzMyAwNGE5M2I3YmRjZTQ5NjExNWIxMDc4Yjk3ZjI5MmNjM2Q5NGU3NDFjIGxlZ2FjeS10cnVuaworMzE2MzQgMTJiYWI4N2EzZGQyMzQ1Y2U5YTQzYTAyMzQwZmI5YjkzM2E1MDg1MiBsZWdhY3ktdHJ1bmsKKzMxNjM1IDg5OWYyZDIxMGEzNGQ4NTQwZTZhM2ZmNGRjNmU0NmQ0ZTk2NTEzOTUgbGVnYWN5LXRydW5rCiszMTYzNiBkNWFhYTY3YzA5NmFmMzU2OTJlM2JkYzk0MmFlZmViYTgwYWU4YmMzIGxlZ2FjeS10cnVuaworMzE2MzcgNzQ4ZjJlNWI4MjkzODgyZjdmY2JiMjE4OWEyODlmYzJiYzk0MmIyMyBsZWdhY3ktdHJ1bmsKKzMxNjM4IDMxMDA4NDMzYzc0ZmFkZjhiZmE5YjlkMTZlY2I2MDRlNTdiMmM1NTkgbGVnYWN5LXRydW5rCiszMTYzOSBkNTBkMWZmNDJiNWFjZThkNTU2MTZmMTIwOWFhNjUxZTczZWRiOWVhIGxlZ2FjeS10cnVuaworMzE2NDAgMmQ1OWNhMjlmMzg0ZDc5MmIzYTgxNmI5ZTVhNWUyMjJjZmI2ZWQ3NSBsZWdhY3ktdHJ1bmsKKzMxNjQxIDdlNjQ5MTM4MzEyYjNmZjRkZDgyZGIxY2Q0ZjVkZjY1Yzc0MzRkYWIgbGVnYWN5LXRydW5rCiszMTY0MiA1NGIzNWRhOTg3OWU5ODgwNWNmZTEzYjU0ZGMzNjNiYWI2Y2EyMGJmIGxlZ2FjeS10cnVuaworMzE2NDMgYWIyNzE4M2M4OTI3ZjY1MDk2NTE0OTliNTRmMzliYjQ3MjdiMzRjMSBsZWdhY3ktdHJ1bmsKKzMxNjQ0IGY0ZTcyYTFhOWYxM2U4NmMyNjJlZjQ1M2M1NTIwMjc1NTE1N2ExZTIgbGVnYWN5LXRydW5rCiszMTY0NSA1ZTVlZWZhMjVmM2FkMWJmNTk2OGQwYzQyNzIxYjg3MGY4MmFmNWY5IGxlZ2FjeS10cnVuaworMzE2NDYgYmY4NjZhYjM5ZGZmMmE1Nzg3NDZiNzEzODg0NWJmNDEyN2Y0NTkyMiBsZWdhY3ktdHJ1bmsKKzMxNjQ3IDJmM2NkM2Y1NDBhZDFhYTUwZDhjZWUzMWIwYjE4OWYyMGU2ZmU4NDIgbGVnYWN5LXRydW5rCiszMTY0OCBkOWI0ODdiOTAzNGE0OTNmNjc0OWM3Y2EyODY0MjY5NjI4ZDJjYTg4IGxlZ2FjeS10cnVuaworMzE2NDkgMTU3NzNlNzU4ZmM3M2FiYzQ5NTc0YzlkOGRkOWU0MGNmNTc0Mzg0MSBsZWdhY3ktdHJ1bmsKKzMxNjUwIDk4ZDEwNzEzNjJmMDQwZDQzOGU1N2FiNWE4ZTczZmJlMzkwMWVmZDUgbGVnYWN5LXRydW5rCiszMTY1MSBkZDZhNjI1NzhiYzg2NDA2NDRmOWJhMTQ3MWJjNDFhNmIxZmEzZDcyIGxlZ2FjeS10cnVuaworMzE2NTIgZDM2ZGQ0MWU4OTBmMmJhMTk2YzM4MGUxNzZlZTQ2ZjgxZGYyNGJmOCBsZWdhY3ktdHJ1bmsKKzMxNjUzIDdhMmY2ODMzOTVlNzI4MmM4YjMzZGZlMjc2YTg2MGRkZDk0MGQ5NjggbGVnYWN5LXRydW5rCiszMTY1NCAyYzhjMmM2YjJhYjc5YjFlNGYyNjIwODk3OWEwZjUzY2I4YWQyNzFhIGxlZ2FjeS10cnVuaworMzE2NTUgNjI4ODhhN2VkZjBiNTU0ZjNjZGQyMDUxODZkOTc2ZWJhOGQ3YTVhZCBsZWdhY3ktdHJ1bmsKKzMxNjU2IDE0NDYzZjQ3ODI0MDIyNjhhYWQzNjZiM2U5MTc0NTkwMDIzOGRhYzEgbGVnYWN5LXRydW5rCiszMTY1NyAyZmM1MmJlNzc5OTkxMzRkNzBmMjU2ZjUyN2Y4MmZmNWQ0ZDdkMmMzIGxlZ2FjeS10cnVuaworMzE2NTggOTM3OGY2ZTU1MWFlNzIxNmExZDBiZjUwZTJhODBlNTJjMjMyYjYxZiBsZWdhY3ktdHJ1bmsKKzMxNjU5IDliNGVlZDRiYjNlMmU0YTE4MzM5YzUyOTg4N2U2MTc2MWM0YTQ0MjIgbGVnYWN5LXRydW5rCiszMTY2MCA0ZjRmMmExNTQ0Nzg0OTU1YWUzMThhMmZjYmNiNTZlNzNlYmQ4ZjExIHJlbGVhc2UyMi1tYWludAorMzE2NjEgODY5Njk1Y2JhMmNkMzdlNjNhZDVkNGNiOTJjYTU1YWFlNThiNDVkZiBsZWdhY3ktdHJ1bmsKKzMxNjYyIGQyNDU2NGU3ZTk5OWNkZGNjOWFhM2QyNTc0ODRlYzA1NTg2NTdjZmIgbGVnYWN5LXRydW5rCiszMTY2MyBjMjRhMjNiMWYxOThhZjBiNTM1NzE5Y2JhN2E2ODY4MmZmNmNlNTdkIGxlZ2FjeS10cnVuaworMzE2NjQgMzljYjkxN2I1ZjdhYjRiYWU5MjQyYjYwYWUxODgxMmZjYjE2YzkwYiBsZWdhY3ktdHJ1bmsKKzMxNjY1IGYxOTgxZWU5ODIyM2NlNWFiMjUwZTcwMDYzYTgwNDhkMGQzMGYwMzUgcmVsZWFzZTIyLW1haW50CiszMTY2NiA4OGU1OGUzZDU4MDc3M2U3MDRlMTYxOTVkYjYxZmRiOTYyYTNlNDkxIGxlZ2FjeS10cnVuaworMzE2NjcgZjQ2OWE2ZDA3N2YxZTk1MDhlN2I0NGVkZGQ1YTRiZGE3NWQ4OGY1MSBsZWdhY3ktdHJ1bmsKKzMxNjY4IDRjY2NlZjliNGQ1NDU3NTdiZTJhMzE0MzU2ZjhjNTk3ZWVhOTBkMjcgbGVnYWN5LXRydW5rCiszMTY2OSA1ZjkyMzE2NTMxOWQ1Y2I2OGM5NTliODYzNjhmZWJmZGZkNzM3NjFkIGxlZ2FjeS10cnVuaworMzE2NzAgODc5MTM1MjlmMjQ4MDk4ZjllNTQ3ZDJiNmI1OTM3NzI4ZWEwYjllZCBsZWdhY3ktdHJ1bmsKKzMxNjcxIGEyNGFhYmNmNWVhMjgxODZiODVkNmEzYzE2MDg5M2UzYTZiMjY1NzQgbGVnYWN5LXRydW5rCiszMTY3MiBiMDA5YzNlZjI3YjUxYzUzNzliMDNiNzM5MzgxYWEzN2YwMDkzNzQ5IGxlZ2FjeS10cnVuaworMzE2NzMgNTBlYThkZWQyOWQwMTdmMzcyNTM5ZDhjNTM5MDc1MzQ3M2E1NTNhYSBsZWdhY3ktdHJ1bmsKKzMxNjc0IDA0N2I1ZDAwMGFhYTUxNjRkZDc4YmU1ZDExNjA2Nzc3ODY1YWZlODQgZm9sZGluZy1yZWltcGwtYnJhbmNoCiszMTY3NSAxZDY2MjM0MmUxOWE2NGIzNjk5YzRiZDc3ZTA5YThhNzcxMTJjNzlhIGZvbGRpbmctcmVpbXBsLWJyYW5jaAorMzE2NzYgOTdiOTdlNTcxOTBjZmY3Mzk5OGZkMTllMjNhOWY0ODQ2NmVhOTU4YSBsZWdhY3ktdHJ1bmsKKzMxNjc3IGY5ZjMwMTBmYzg2Zjc2YTkxYmMyZjU0MDE5OTg0YmEzYzVkMWU1ZDQgZm9sZGluZy1yZWltcGwtYnJhbmNoCiszMTY3OCA5Y2E0YTY3Yjk5NzM2ZmJlYTA3ZDhhMDk2MjQ0MGYwOTNiMzU4OGJhIGxlZ2FjeS10cnVuaworMzE2NzkgY2RlNDQ0MTg0MzM2ZmJkYzdiNjU2YTUwY2MzMjk3Zjc0N2UzZmM3NiBsZWdhY3ktdHJ1bmsKKzMxNjgwIGI1MzQ1NWE1MWI3ODA5NWY1M2QwNzY2ZTZjZjAwNjY4MGQ5ZDAzODggbGVnYWN5LXRydW5rCiszMTY4MSA2NTVhMDg1NTdhNDNlYzE2MjRhYjY1YjIyMjY2YzE3MDhiNjQ2MzhlIGxlZ2FjeS10cnVuaworMzE2ODIgNzg5YjI0ZDY1ZDQyMDQ1Nzc4Njc4YmJmODdmNDQ2M2Y0ZTI2OGVlNyBsZWdhY3ktdHJ1bmsKKzMxNjgzIGViMTVkZTZhNGE0Y2QwNmQyMGViYTA4ZmE3MzAyMGE0MTg5MTc3MTcgbGVnYWN5LXRydW5rCiszMTY4NCBiMjBhMzY4NWQyM2UxZDFhNmUzNWNmNDFlZjViYmNmYzU4YTI0MjVkIGxlZ2FjeS10cnVuaworMzE2ODUgZjlkYjlkYzQ1NmFiNTcwMzgxN2NlNzRkNGEzMjI5N2IwNjdmN2NiYiBsZWdhY3ktdHJ1bmsKKzMxNjg2IDdkMDRiZDg5NzY2MTg3NDVhMDFjOGZmNGY0MzI3M2QzYTA1ZDA0YzUgZm9sZGluZy1yZWltcGwtYnJhbmNoCiszMTY4NyA0MWE5YTA3MmM2ODE3NmFmNmNjOGQ1MjBlZGQ5Nzc5NzlhOWE1OTIxIGZvbGRpbmctcmVpbXBsLWJyYW5jaAorMzE2ODggMmNjMTlhMzI1ZDY2NzY0MGU5MzI5Y2ZkNGE3MzhjNzJiYmRiYjQ2MCBmb2xkaW5nLXJlaW1wbC1icmFuY2gKKzMxNjg5IGRiZjNlYmVjYTdiMWRhNjJlNjIyOTU2ZTU1MjkyMDZlNjIzODY2MjMgZm9sZGluZy1yZWltcGwtYnJhbmNoCiszMTY5MCAzNzc5NjFkNzY2MTA1ZmVlMzdmNDA4MjEyNzgwZTJkZGQ4N2QxZmI3IGZvbGRpbmctcmVpbXBsLWJyYW5jaAorMzE2OTEgMzk5MmNhNzAwZTY1ODAzMTM0ZjY2MWM2ODcyN2JhOTY3MjFkNTk2NiBmb2xkaW5nLXJlaW1wbC1icmFuY2gKKzMxNjkyIGEzY2YwN2JhYzM3MzY5ZjJhNjVkNTI2NTU4NjgyMDNjYzM1Zjk0MjEgbGVnYWN5LXRydW5rCiszMTY5MyA1MjRlNWY5Zjg1ZTZhZjAzMzdjYTNiODk1NmM1OGYwZDM2Y2I0ZjdmIGxlZ2FjeS10cnVuaworMzE2OTQgODg4OTY1NGMwZGQ1ZDA5OWYwNTg1OGYwNWQ4OWIxYzU4ODYwOTRhMCBsZWdhY3ktdHJ1bmsKKzMxNjk1IDg0M2Q1Yzc4OTUyYTgyMmVhMDE5MjdmMDJiNWFiMDA0M2ZjNWU1ZTYgbGVnYWN5LXRydW5rCiszMTY5NiA4OThjZTRlOTZmNTkyYjBjNWIwNjVjMTU2NGMwOWQ0NTFiNzE1MzBmIGxlZ2FjeS10cnVuaworMzE2OTcgZjliNzAyYzUyZGFlYTI5OTYyY2UwMzkyYTM3NWEwNmUwNWQxNDNiMyBsZWdhY3ktdHJ1bmsKKzMxNjk4IDI4MTVjMWE5ZjczNTgzNGJlNzYxMmIwNmJjMjY5YTFjYzQwZTc5ZDUgbGVnYWN5LXRydW5rCiszMTY5OSA5ZTczN2Q2M2YzODAxZTc0ZGJlZGYzMGMyNTJkZmFjYzM1MDZjYzMwIGxlZ2FjeS10cnVuaworMzE3MDAgNDRjMzEyMzY3NDNhMDc4MTUyMTBkMDRhZTEwNTk3YTU3YmY0YjNhZCBmb2xkaW5nLXJlaW1wbC1icmFuY2gKKzMxNzAxIDI5NDc0NTliMDc4OTIzMjkzZDc2OGJhZDA3MDliYWViMmYzOGJmNDYgZm9sZGluZy1yZWltcGwtYnJhbmNoCiszMTcwMiA5MDJmY2ZkNWQ2NWQwOThhZThhYjAxMTA5N2EzOTkwZWVhNzUwODNiIGZvbGRpbmctcmVpbXBsLWJyYW5jaAorMzE3MDMgNzZkMDYxOGYzZmUwZDg3OTJiODQyZTc1NTQzMjM2MTEyZTZlMTQzZiBmb2xkaW5nLXJlaW1wbC1icmFuY2gKKzMxNzA0IGE4MzYxYmNhMWM1Y2M3N2U0NmExMTFkYjRjZDBkOGM3ODJjOThlYzcgZm9sZGluZy1yZWltcGwtYnJhbmNoCiszMTcwNSA1YzBkYjQxZDM4ZjkzNjA5YjgzMjZmYWRlYTEyYmM0YmI5MGU2MmZjIGZvbGRpbmctcmVpbXBsLWJyYW5jaAorMzE3MDYgOTVhYmYzZmMyYjJkMzM0NGM0NzE1ZjY3ZDY4YjBjODM2NDAwOThjNyBsZWdhY3ktdHJ1bmsKKzMxNzA3IDEyZDRkZjcxYmRhYTM1ZGY0MmVlNjQ0NzFlZGI1NmY2YjFiYTgxYTEgbGVnYWN5LXRydW5rCiszMTcwOCBiZGE0OTBmYzI2OTFlYjk4Nzc0ZGJmOTRkOGRiZDU1NjEzNmYwMTRkIGxlZ2FjeS10cnVuaworMzE3MDkgMGQ4NTUyNDA4ZmNkZTE4YTc1ZGJiMDYyY2QyNzNlNjg0OGNhZTk1NSBsZWdhY3ktdHJ1bmsKKzMxNzEwIGU5ZmMyYzE0MTYwODllYjg3MDE5Zjc5MzA3YjYxZjE3N2UzYmM2MTIgbGVnYWN5LXRydW5rCiszMTcxMSA2ZDc4YzZiZjMxZjdkMmM4ZmNmYWMxNzcyNjRmNTlkMjMwY2MyNjZmIGxlZ2FjeS10cnVuaworMzE3MTIgMTc4ZDE5Y2ZmMTYzODEzMmZjNzMwM2ZkYjNhZjdiMzdkNDEyMjg0MyBsZWdhY3ktdHJ1bmsKKzMxNzEzIDNmZTcyYTk5NDEwM2IzNWNkM2QzZTE5ZTkzNmU1OTNiNjE0MWIzMzMgbGVnYWN5LXRydW5rCiszMTcxNCA4YTcxMzAxYWZjMmRhNjAyYjY3OTRjY2MxOGFkZmY4NDg5ZGIwZWFkIGxlZ2FjeS10cnVuaworMzE3MTUgNDNjN2Q4YTA4NGZiYzM5ZDllMmU1ZWM3NWFhMDM5OWEyODZlZmYxMSByZWxlYXNlMjItbWFpbnQKKzMxNzE2IGU0MDU5MjljMjIzZTU3Y2IyZDhhNGIzZmQyYzY3ZTAyYmNiOGQ2MGUgbGVnYWN5LXRydW5rCiszMTcxNyAyOWQ4MDM0MGZkNDE0Zjg0MzM2MzBjNzBlZDViODBiOTY5MjNhMWUyIGxlZ2FjeS10cnVuaworMzE3MTggMDFhZWQ3MmUzMDllNTJjMWRiZTYwYmMwZGQ3Y2M0NzI0Yzk4YTgyMCBsZWdhY3ktdHJ1bmsKKzMxNzE5IGJhMWJkNmY2ZTZlZGM1NjA4ZGM2NjEyNTVlODc0ZWFkZDYyNzg5OWIgbGVnYWN5LXRydW5rCiszMTcyMCBhYzk2NWE1MDJkMWI3N2M1ZGE2Yjk4MWRkZDBhZTJmNDE2M2QwNWI5IGxlZ2FjeS10cnVuaworMzE3MjEgYWI4NWM3NTZjNWRmM2M2MWJjNjMzNDQ4MDRlMmFmMjNiMDdkZGFlYyBsZWdhY3ktdHJ1bmsKKzMxNzIyIDg5MTM3YmUyNWU3YWQ3ZWU0ZmEwZDBjODhjMGE0ZGI5MDY3Nzc5NDAgcmVsZWFzZTIyLW1haW50CiszMTcyMyA4NzcwNGY4OWVhM2Y1Y2YzOWExNWE4Mzk0OWNkMWQ1YzNjYjhiMmUzIGxlZ2FjeS10cnVuaworMzE3MjQgMzdjZGUwNzhiOTMzMmJkMjkyOGZkZTk0Zjk2MThiMDUyMzczZGM1OCBsZWdhY3ktdHJ1bmsKKzMxNzI1IDMwMzBkNjdmYjRhNTY2OTdkNTQ0M2Y4NDE3YWRmNDRlNWUzZWE2OGUgbGVnYWN5LXRydW5rCiszMTcyNiBiYzJkMDcyMzA5MzRkNGNlZWVmZjFiYTFkZjNmZjhhZjM4NWE0MzMzIGxlZ2FjeS10cnVuaworMzE3MjcgY2UzNzYwZThlNjQwNmE3NzViMjQwNGZhMjJmMGYzNTMwODk1NWE2OSBsZWdhY3ktdHJ1bmsKKzMxNzI4IDI0ZmUwMjM5MDFiMDdiNWJiYzJhNDJlMDk5ZmM3NjVlMzk5NTFjNzMgbGVnYWN5LXRydW5rCiszMTcyOSBhNmNkOWQ2ZDVjYTNhNDkwYzNkMDE3NjM0YzVlYTYzZTljMmZlOTRlIGxlZ2FjeS10cnVuaworMzE3MzAgNTc3NmZkMTg4ZjIwNTQ1ODY4MmMzZTE2NmE3MmFiN2Q2MDZlMzEyNyBsZWdhY3ktdHJ1bmsKKzMxNzMxIDNmOTBkMjFkZWJlOTZlMTgyMjU5NDI0MGEyYzNmOWUxZjMyNTJkMzIgbGVnYWN5LXRydW5rCiszMTczMiAzOTVlYjU2MWVjZTEzNjc2YzBmMmVkMDhmZmFkNjk0OTg0NWE5MzdiIGxlZ2FjeS10cnVuaworMzE3MzMgNDhhNTExM2RmZWY5ODEyYjYyZWQ1Zjc3MGZmZjU3MjAzODM3MDQwYyBsZWdhY3ktdHJ1bmsKKzMxNzM0IDU5Y2EzMjAwYjZlNTAzNGUyM2UwYWYyNDEyMjkxMWE3NDJkNjhmYjAgbGVnYWN5LXRydW5rCiszMTczNSAwYThlODYzMmM2MzE4YjhjNWYwZjQzODU5OTMyODBmZDc4NTc0N2I0IGxlZ2FjeS10cnVuaworMzE3MzYgMDRkZjk2NWQ2NzViN2Q3ZDNjYjA3MzdiNWVlYmYyNzhmODZjNDhlMiBsZWdhY3ktdHJ1bmsKKzMxNzM3IDU4NTIzNTJkOTUyMjJiYWU2OTBhN2MwZjUwOGJlMjI4MWM2MDc4MDYgbGVnYWN5LXRydW5rCiszMTczOCBjZDIxYmU4MmY1MGJiY2JiZTc4ZmU2MzU2MzZkNDBkZGRkOTAxYTFhIGxlZ2FjeS10cnVuaworMzE3MzkgYTFiOGU2NTRkNWZlMTVmOTlmM2M5OTJmNDcyNTk4NjBiMWQwMzQxNyBsZWdhY3ktdHJ1bmsKKzMxNzQwIDkyZjFkMDJlMjhmMGE5YTRmNTljNzUyM2MwNzU0NTlmMDY3NzFhNTkgbGVnYWN5LXRydW5rCiszMTc0MSA3MzZhZDczZGY1YjQ4ZWZmYzY3ZTA2MDg2MTZiODI2ODEyNWVhZmIwIGxlZ2FjeS10cnVuaworMzE3NDIgNDZhODFiZDhjYTBjZDAzMTE0ZDZjNzg3ZmFiZjZkYTJmNDZiNjg1MiBsZWdhY3ktdHJ1bmsKKzMxNzQzIDI5ZGRkYzAxYjVlYzM3NjlkZjM0Yzk1M2ZjMTg3YmI3ZTgwNzFkMGMgbGVnYWN5LXRydW5rCiszMTc0NCA4ZTYwNzE4NTY4OWE0ZDZhYWEyZTAwZDI3NjYwZmFkYzBiNDM2M2M1IGxlZ2FjeS10cnVuaworMzE3NDUgMTdlNmU4MTRkMDk0ZTlkYjNmYjdhN2ViYTQzNGJjZTE5NmZhYmY3ZiBsZWdhY3ktdHJ1bmsKKzMxNzQ2IGU0OGZiNWZiZmRmNGRhN2JhZTJlZmJhODZhOGJiOTE4YWUwODJmYmUgbGVnYWN5LXRydW5rCiszMTc0NyAxNDlhNTc3MmRkMGM0NjJiNjQ0ZDQ4NDY2NTg2MGZjMWQ3NGYyYTQzIGxlZ2FjeS10cnVuaworMzE3NDggZmNiYzgyNGI2ZTM4MDk0YzdmZDU0YjRiNzVlM2VjMjk1MmJmMjU0NiBsZWdhY3ktdHJ1bmsKKzMxNzQ5IDAyN2RjMjEzYzU3ZTcyZGFlM2M2YTQyYjk4YzAwZTZiMTViZWViNzMgbGVnYWN5LXRydW5rCiszMTc1MCA1Y2E2NTBhOTAwNWZhNGIyYzg3MDRjNzNmYmQ1MjgxZTdjNzUyOGQ2IGxlZ2FjeS10cnVuaworMzE3NTEgOGYwMDhiN2NiOTdiM2M0MjQ5MzQ4ZWNmNmZmNDdlN2FkODU4OGE0ZSBsZWdhY3ktdHJ1bmsKKzMxNzUyIDJhYmQ4YTVhZjZkZGIxMThiYTg2ZjQ4YWUyNjc4M2NjZTAwNjE4YTcgbGVnYWN5LXRydW5rCiszMTc1MyBiN2MyOWRjOGFmYTBmMzA1YjkxNjAyMWI0ZjUyZmRhNGVlNmUyOTZkIGxlZ2FjeS10cnVuaworMzE3NTQgZWZlMjQ5ZDA2OWJhNDFiODA1NzljNmFhMDkyMDliZjg0NTlmNDVhNiBsZWdhY3ktdHJ1bmsKKzMxNzU1IDgxNDE1MDQ4YjJhZWYwMDEwNDUxZjRlM2FiMjA3NTY0Yjg2NzBjMzcgbGVnYWN5LXRydW5rCiszMTc1NiA4YjdkOWViNDk3NThjNTYxMmI4M2E0NTEyYTY3OWIxOWYzMmY3NzJjIGxlZ2FjeS10cnVuaworMzE3NTcgMDc0OTc4Nzk5NGRiZjM4M2ZmNzRjNTY2ZjYwMTU2NTViZTQwZDRhOCBsZWdhY3ktdHJ1bmsKKzMxNzU4IGY1N2QzMGQ1MDY0OGVkODAwZmI3OTMxYmM3YTgwNjQ1YTc5OGYyMzggcmVsZWFzZTIyLW1haW50CiszMTc1OSBhN2YwMTMwMmIxNmQyYjE0N2U1NTQ0OGE3ZDU0OGY5NWUzYzM4ZGRjIGxlZ2FjeS10cnVuaworMzE3NjAgMGFiNDU0NTkzYjUzYTE1ZjVhY2M3MzM3MWVhMjNmZWYxMWZiMmVhYyBsZWdhY3ktdHJ1bmsKKzMxNzYxIDA1NTc1YjdlNjcxNDA4NDNlYjBlMTUyMDUwNzhmNDEyNGY5YjljMjcgbGVnYWN5LXRydW5rCiszMTc2MiBhMzgyMjYzZGYwMWQ1YTI3ZjMwZDY3YzQ0MTQ3MjM0NDVmZDhjN2Q4IGxlZ2FjeS10cnVuaworMzE3NjMgYmFkOTE1NjQ1ZmEyMmRmZTk2NWZkMWMzNzM4NDFhNjJhNGM2MTQ1MyBsZWdhY3ktdHJ1bmsKKzMxNzY0IDc3MTk2MWU0NTMxNGYwMmMxYzEwZDQ0ZmI4NDk5Njg0YjE2OWViNmIgbGVnYWN5LXRydW5rCiszMTc2NSA0MzkxMDFkNDcwNWJiMDVlYmMxZjdjMTQ3ZWIxMGM0ZmJlZGY3ODgzIGxlZ2FjeS10cnVuaworMzE3NjYgMmMzZWY0NjM1OWVmNDYwNWNiNTc4YjkzYWE4NTJiOGQ2ZGVmN2M2MSBsZWdhY3ktdHJ1bmsKKzMxNzY3IGZiOGY3NmRmNjRmZjQwNTU1ZDNkYTU1MmI1ZjMxZTU1MzY2MWY1MTYgbGVnYWN5LXRydW5rCiszMTc2OCA5MmUzYjYxMWRjOWY5MjA3MjBiNzJiNjBhZGNkODc0MDE3NDBjYjMxIGxlZ2FjeS10cnVuaworMzE3NjkgMDA4YTI2YzM1M2FmOTcwOTRjY2M4MWY2YjdhZjgxOThkZmY2OTJhOCBsZWdhY3ktdHJ1bmsKKzMxNzcwIGMwM2JlMjJmZGQyNGMxZTU3ZDIzMTQ0NTE2NTUzNWU0YWI4N2QzMTcgbGVnYWN5LXRydW5rCiszMTc3MSBkNGIyNjJmYmQwNGEyMDdlNjVmY2U2ZGFiY2YwYjgwYWQwYTE3NDgzIGxlZ2FjeS10cnVuaworMzE3NzIgZjJiZDBmNGQ4NTc1MGI4Y2VlNDNjNjk1ODQ0YmJiZmE2NWZjMGQ3NSBsZWdhY3ktdHJ1bmsKKzMxNzczIGIzYzE1ODdiMmI4ZTMyMmNkNzI3MTRjMmRlODAxZDY1MjBmZjRkYjMgbGVnYWN5LXRydW5rCiszMTc3NCA3M2IwZGMyOGM5MWE3YWU4YzA1NGE3MzViZjRiYjM5NDEwMzA1ZDUyIGxlZ2FjeS10cnVuaworMzE3NzUgOTA3MDQwNGYyNGZhZDU4NzRmZWUwY2Y2ZDE2NmVjZmM4MjYwOTIxNiBsZWdhY3ktdHJ1bmsKKzMxNzc2IDdjOGU4ODA3YWVkMjljNmYyZGZlZDkzYzJhNGNkMmZjZmI4MWI1ZWQgbGVnYWN5LXRydW5rCiszMTc3NyA5OTdkNDgxZWE0MDkxMGExNGM0Y2QyZmEzOTVkNWQyMDllMDFmOWE5IGxlZ2FjeS10cnVuaworMzE3NzggZGM5NDc1ZWM3OTg1NWNjOTA4ODk2Y2M2Y2Y5ZDYzOTI4N2M4YjVlNyBsZWdhY3ktdHJ1bmsKKzMxNzc5IGVjYTY5N2UwNmEwN2NjMjk0YjE2ZTVhNzViN2JiMzlhYmFkNWRmN2EgbGVnYWN5LXRydW5rCiszMTc4MCA3MzNhZWJiNTdmYjAwOWMwY2EzMDQzNzNlNTJlZTJjZmE4ZDkzZTdkIGxlZ2FjeS10cnVuaworMzE3ODEgYTJkNzliOTNiNTBhMGE5M2ViYjdkZWEwNDMzYmJiNTlkZDE1Mjg5NSBsZWdhY3ktdHJ1bmsKKzMxNzgyIDI3YWRkZWEzM2UwY2FkNDhhYTcxYTQ5NDMyMjkxZmZmNjkwYTBhMjkgbGVnYWN5LXRydW5rCiszMTc4MyBjZGVhNWIxYjgyODBjZjllZjkxNjE2ZDc3MjNhYjllNzgwNzAyNjgyIGxlZ2FjeS10cnVuaworMzE3ODQgNDMwNjZmNjdjNWRiYTc0MTcwMDhmNTkzOGYyMzZiYzQ0ODk2ODQ0ZSBsZWdhY3ktdHJ1bmsKKzMxNzg1IGI4NGU2YjRlMThjODU5OWNmZDM5NzUxODRmZmU4MWIyOWFjYzA0NGQgbGVnYWN5LXRydW5rCiszMTc4NiA2ZTQ5YmEzZjYwYmU1NTYwMDllNTZlM2M4NWExMTY3ZDY3YzNmMGYxIGxlZ2FjeS10cnVuaworMzE3ODcgYTJlNjhhZGRlOGIwZjRjYTA5NDhiMDQ5Y2YzZTNlODY4MGZmNzNjMyBsZWdhY3ktdHJ1bmsKKzMxNzg4IDRjYWZhNTE0MTAxMjUyZDU5MTdkOTE2MDY0MGM4M2ZlNDViMjE2NjUgbGVnYWN5LXRydW5rCiszMTc4OSA0N2NiODVjZGQ1ZjMxZGU4YjVmZjdlMWUzYTk3YjUyODc4YTBjYzQ4IGxlZ2FjeS10cnVuaworMzE3OTAgZDQ0ZjljYzI3MjkwNTU1NTMyZTFmZWVlODIzY2JhMTJlM2Y5YzVkOCBsZWdhY3ktdHJ1bmsKKzMxNzkxIDI3MWJhYTg4NDI0YmUyOWE4ODNhNTIxOWRkYjc5MzMxYWFhY2FhNzEgbGVnYWN5LXRydW5rCiszMTc5MiA2MjczYTE1OGZiMGFjZDcxYzc1Yjc4MThlMmU4MTI2ZjYyMzExMDliIGxlZ2FjeS10cnVuaworMzE3OTMgYjVkNmMzOGViMTYzNmZlNjM5MDgwMzJjNzFhZGNjN2ZjM2NiYjYwZiBsZWdhY3ktdHJ1bmsKKzMxNzk0IDQ4YTYxYTRiNzNhMTBiZTE1ODAwMGJhOWM0ZmEwNjczMWZkOThhZDIgbGVnYWN5LXRydW5rCiszMTc5NSAzMGZhMWY2MWIyMzFhN2VkNmI4M2I0YTgwYWViNmNlMmViMzYxMzYyIGxlZ2FjeS10cnVuaworMzE3OTYgOGYyM2QzOWE5YTMzODdhNjI4N2RiYzg4NmIzNDYxMWJmNDg2OGFhMCBsZWdhY3ktdHJ1bmsKKzMxNzk3IGVhNzAwMzJhMjRiMTAyNDIxZmRjMzMyNGFiMzMxYWZjZjIwNjQ0NTggbGVnYWN5LXRydW5rCiszMTc5OCAwMDg5MmFmZmI2MGFlODRmNjBkOGNkOWY3NDUzMzZkNzFhMzY4NGY3IGxlZ2FjeS10cnVuaworMzE3OTkgZmUxZDU3MWMzZjgwM2UzNzNmMDk5ZDZlZGNlMDMwZWU2ZDQwMzVjMCBsZWdhY3ktdHJ1bmsKKzMxODAwIGYxM2FkYzAwYzE2NTIwMzQ3YTkwZDBhOGI2MmM5NjUyZjUyODhmNTcgbGVnYWN5LXRydW5rCiszMTgwMSAwNTc0MzI2Yzc4YmJhZTQ2YjdlZmQ4NzZlYzc3NTQyNjNhMzBhMGZiIGxlZ2FjeS10cnVuaworMzE4MDIgNTg1NTkxNWIwMGY1ZTUxNDcxMzBkYjE5MDdkOGY0ZjkyYmE0M2UzMSBsZWdhY3ktdHJ1bmsKKzMxODAzIDVjM2FjYmYyMmEyNmY2NzJmYjBkODE0NzY5YjFmM2E5YjYwYjlmOTcgbGVnYWN5LXRydW5rCiszMTgwNCA2MjY5ZWFhZGQ0MWVmNGJiM2I4YjMwMzkzNmZjMzNkMTQzNDk5OWExIGxlZ2FjeS10cnVuaworMzE4MDUgZjk1ZGZiMzNkNzYyOTNjODA4OTExNGU5YTY3MThmNzNiM2ZhNjJjZSBsZWdhY3ktdHJ1bmsKKzMxODA2IGE1OWQ4ZTRjYjkwMzg2N2JmMWU3MDIwMDIwMWVjZTM5ZjViOGFkNjkgbGVnYWN5LXRydW5rCiszMTgwNyA0ZjY3OWFhNjIzYzJmNmMyNTYzZDRmZGRmMDc4OTc0MTUwNTYxZWJlIGxlZ2FjeS10cnVuaworMzE4MDggNGI2ZDdjNzU2OThhYzdiZjMxZjY3NGMwNDY4MDU4NGNjMmExM2E5YyBsZWdhY3ktdHJ1bmsKKzMxODA5IDZlZThkNWEzMGNiYzIyMjRhMWQ0MTJiYzU4ZGJkNzI2MzdiYmU1YTUgbGVnYWN5LXRydW5rCiszMTgxMCAzNjU1ZTkxYjNkZWFjZmYyY2ZjMWE1ZTQ1NzYzMzE0MTQ3ZGZkOGY5IGxlZ2FjeS10cnVuaworMzE4MTEgNGIxZmVmMzdhYzdiZDdhYThjMWI3NWZmNjg5ZGZiMTcxZjllZWY4YSBsZWdhY3ktdHJ1bmsKKzMxODEyIGQ3NjMwMTg1ODk0MWM5MGI4ZTc2ZDk4ZTgyYWIyMjJkN2M3MWVkYzUgbGVnYWN5LXRydW5rCiszMTgxMyBiMjQ2Y2EwMzNlM2VlN2Q4NDI1ZGFmM2M2MTY0ZmQ1ZGFkZDk4NWNiIGxlZ2FjeS10cnVuaworMzE4MTQgMDNkM2ZhM2UxZDRlNWNhNGZjNTc1NWViYTJhMjViMDJlNDEzNzUyMyBsZWdhY3ktdHJ1bmsKKzMxODE1IGZhMThkZjc0NmVjNTI1ZDc3MjZhNWJjYjVhZTVlMDE1YzVjYmFmNzkgbGVnYWN5LXRydW5rCiszMTgxNiA1YzQ2Yzk1ODdhMmZhMzE3OGVmMWMwYmVmNzM2MGNkODkzZjNlNDk3IGxlZ2FjeS10cnVuaworMzE4MTcgOTI3YTk4MzNmODNiNzlhZTFiYTk4NzJiZmNhOGZhM2FlMTJhMTkyNiBsZWdhY3ktdHJ1bmsKKzMxODE4IDZjMDY2N2FjOTM5ZWRkM2Y1YzA2ZmM3YTJjOWMyM2ZhMDdkOWIxZjggbGVnYWN5LXRydW5rCiszMTgxOSA5MmI5MzAxMzAwYzM5NjgwNWVhMWZkNDI5NjFiYTdkZjJjMTE5Mjk0IGxlZ2FjeS10cnVuaworMzE4MjAgMjc1MWM1ZWY5OGJlNmNjOTc5MzNkMDg0YWQ4ZmVlZTdkNGViNmQxOSBsZWdhY3ktdHJ1bmsKKzMxODIxIGE0ZTdlZGM2OTA1NGQ1MDNiZjIzMGFiZTY4NTQ3MGJlMDk5MWJiODQgbGVnYWN5LXRydW5rCiszMTgyMiAxNTY5MTFkYmEzMDZjMTI3ODMyYzdkNzljNGZlNzJmOGJlOGY1OGVlIGxlZ2FjeS10cnVuaworMzE4MjMgYmVhM2QxZmRhM2RjYjAyMTEyMWY3YmY2YmRkY2VlZWQ3NWJhYTQ0OSBsZWdhY3ktdHJ1bmsKKzMxODI0IGI3OGQ4YmI1ZWJkNzE0NzRkYTc5OWQwODU3YjZlZmRlMDA3MjI4MTQgbGVnYWN5LXRydW5rCiszMTgyNSBlMjhiNDhmYzkwMGJmZGFhZDMzMTIxZjFiZThiZTg0ZjhkNzNlOWIzIGxlZ2FjeS10cnVuaworMzE4MjYgZmM5MjlkNzFhNDUwZjQzOGQ4ODIzYzNjMTRlODRhZDM5ZDhjMGQyNCBsZWdhY3ktdHJ1bmsKKzMxODI3IDY1YjcyMjY3MzgyOTA5NzM3ZGIzZjU2MzA5OGZkN2Y4ZmRkNmVlYmQgbGVnYWN5LXRydW5rCiszMTgyOCBmZDliODgyYmUwNzk3NWJmZmQ1YmIyNzQ5OGU0NDdmMDEyM2NkZGQzIGxlZ2FjeS10cnVuaworMzE4MjkgN2YwYmZiZWM5ODdmYTBkZjI3ZWVkMDZhMGEwY2ZkZDlhMWNmMTVlOSBsZWdhY3ktdHJ1bmsKKzMxODMwIDMzNjU2NjRiODI5NDJiYWM2NjVjOTczMTIwM2UxYmRjOWQ2ZTAxYTggbGVnYWN5LXRydW5rCiszMTgzMSA0YzY0NGE2MGMzMGQ5Mzg1NWRmMWE4YmQ0MDNkYzFmZWM3ZmE3OWJhIGxlZ2FjeS10cnVuaworMzE4MzIgYjEzNTZkYmFhYjlhMmI5NmVmYjZhODExODI4MTZjOGQwMWMzNmU1NSBsZWdhY3ktdHJ1bmsKKzMxODMzIGZiYWUyMGEyZTExNmRlZWY3YWYwOTQ0ZDRlNGU1ZDYxMWY4MDM2YjcgbGVnYWN5LXRydW5rCiszMTgzNCAxMDI4ZGM2ODA3YTVmOTgwNWNiYTliNjI3MGMxM2FiMDFkOWMyYmRjIGxlZ2FjeS10cnVuaworMzE4MzUgNDU5YzQyOTFmNzU5NjMwZDdhMTVlOTMzNzQ2ZWNmODUwMWI1NzVjZSBsZWdhY3ktdHJ1bmsKKzMxODM2IDZhMmQ5YWU0MzBiZWE2YzFmMzUyMDgxODY1YTYyNGIyMDZhNmY2OTQgbGVnYWN5LXRydW5rCiszMTgzNyBhMjk1N2ZmY2I1OTg2NWQyZjYwNzc0ZTBkNGY4YmU2ZTVlMWIwODYzIGxlZ2FjeS10cnVuaworMzE4MzggZWY1MjVjOTliNGVlZDY2ODUwY2QzYzZkNDg0MmEzNGZiZTc0NjhhYSBsZWdhY3ktdHJ1bmsKKzMxODM5IDUxYzc0Yjc5NWU5ZTk0OTRjMDlmZDc3MTZmZDAwNmQzY2FkYzY1OWYgbGVnYWN5LXRydW5rCiszMTg0MCAxNjJlZDJhOWNjMGM4YTI3ZTY4MzYzMTNlOWZhNWZjMTAwZTAxNWZjIGxlZ2FjeS10cnVuaworMzE4NDEgN2ZjM2U2NGQxNDI0MTUzMmNlNjNkMjgzZGZkNjMzOGExMWNhYzNkNCBsZWdhY3ktdHJ1bmsKKzMxODQyIDczODE0Y2I1ODI3ZjhjNWQyMzRiMzc5NDI4ZmU3ODkyOGUyOGFhYmQgbGVnYWN5LXRydW5rCiszMTg0MyA4ZDEwZjY4ZDdjM2IwYWYyOTFjMTViODFlNTI2NjY4ZDA2YzY4ZjJhIGxlZ2FjeS10cnVuaworMzE4NDUgYThkMjRiOTdjODEzYjIwZGRjNGE2MzY0ZmNiZDZkZmMyMjhlY2MyNiBsZWdhY3ktdHJ1bmsKKzMxODQ2IGI5NzJiZTgwNjQ3N2YxMzFhZWNhZDFhOTY2ZWVkNWI3MTE1ZDI3ZjUgbGVnYWN5LXRydW5rCiszMTg0NyBjOWZjMzVkMGEzZWJhYmYwZDRjMDE0ODVhYjRhMjc1MjNiMjIxNjlkIGxlZ2FjeS10cnVuaworMzE4NDggMjI4OTdjYTEwMjg4ZGQxYzJkNTY2YTE1OTdlYTk5NTY1YjU1NzRhMCBsZWdhY3ktdHJ1bmsKKzMxODQ5IDVhNGM3ZTZmMDA4ZTIxMmYzZjA2MGNjNTQ4YjdlMWVlMDRjOGU2NDYgcmVsZWFzZTIyLW1haW50CiszMTg1MCBlNDA1Mjc3Njk4NjRjYjI5ZDY5MWJiMWNlMzliMjc4MDNjZGQ5MWJiIHJlbGVhc2UyMi1tYWludAorMzE4NTEgMTcxZjE4NjJkZWE5NTczNTRlNDFjMWY2ODkzYzk0ODBiODJmNGVkNyByZWxlYXNlMjItbWFpbnQKKzMxODUyIDY1ZGQ5NjEyYTc0ODA4MDE2MTEwN2I2NDQ3YmZkNTVjZDkzODIzM2QgbGVnYWN5LXRydW5rCiszMTg1NCAwYmExN2U5M2YxMzlmNTc0ZmUzYTViMzAyMzJkNzUzODVjZWE4NmQ2IGxlZ2FjeS10cnVuaworMzE4NTUgNzY1NGMyNGRlY2M0ZWRiOWM0NDJiZTc5ZGMxODk5MDE1YTQ2OGRlYSBsZWdhY3ktdHJ1bmsKKzMxODU2IDJjMjJiNWMwOWE1OGRjNjE5M2UyYTc0ZTdhMDNkNzEzYzViZWM4OTIgbGVnYWN5LXRydW5rCiszMTg1NyBhYmZlNGIzODAzMDVlZDhjMmE5MTdiZTA5M2NhMjMzYjliMjI0ZWQ1IGxlZ2FjeS10cnVuaworMzE4NTggMTQzMTZkZjFjMjk4YjcxNjUzZGM3NTRiNTFkMDg0MDI2YjI3MmNlMCBsZWdhY3ktdHJ1bmsKKzMxODU5IDk2MDJjNjY0ZWQ3YTJjYmU2ODFmMjAxOWVkYWRiNjc1OTc3NjEyYTEgbGVnYWN5LXRydW5rCiszMTg2MCA3MzQzNGZhOWQyODUyYjc5Yzk5OWQyNzg3YzRjZTFhMzliYmY2ZmMwIGxlZ2FjeS10cnVuaworMzE4NjEgOGMwODI5MzZkYWFmZGFlZTMyMzk1N2FjZDlkZWM1ZjZjYWRhOGIzOCBsZWdhY3ktdHJ1bmsKKzMxODYyIDQ3MDUwNGVmNTc4YjIwNTM2Njg1OGFhNDdhMDIwOWQ5YWE2NGExZmYgbGVnYWN5LXRydW5rCiszMTg2MyBiMTRkNjc0MWY0OTY1MWI4NmY2MjAwMDFlZDNiNjYwMGZiOTM1OWMzIGxlZ2FjeS10cnVuaworMzE4NjQgNzAyZTU0N2YzMWUwZDUyNWRmNTU0Y2IzZWEwNDU4N2YwODAxOTcwYiBsZWdhY3ktdHJ1bmsKKzMxODY1IDIyNmM1YmRkMTYwYjk1YWU3YzcwZmRiODFhZmE5ODYzNDUyMDY4Y2EgbGVnYWN5LXRydW5rCiszMTg2NiAwMGJkYTU2ZjU0MzMwNjNjZmJlYzFhNTU3MTIwM2YzYmE3MmI4ZDMzIGxlZ2FjeS10cnVuaworMzE4NjcgOWMzNTcyYTU1NzVmOTk3MzIyNGQ5MDUxYmE4NzQ0ZmZjYjJkMmVlZCBsZWdhY3ktdHJ1bmsKKzMxODY4IDVjOWRjZGM3ZmU4ZDY5YjNiMmY0YzNlN2ExZGExOGFmN2JkMzg0NGMgbGVnYWN5LXRydW5rCiszMTg2OSA0ZjQ3ZGYyMDQxNWM3MWViOTkwOTYxZGNlNjE0ZmYzMzZmMzY4MzIxIGxlZ2FjeS10cnVuaworMzE4NzAgMjQ4OWQyMjIyOGRiYmM5N2RkMTAxYTE4ZGI2YzdiMWYwNmE5YjgxZiBsZWdhY3ktdHJ1bmsKKzMxODcxIGVmNTVmMjIzMmExMGQ3MzFiZGVhZTA3ZWZkYzQ4Yzg2MGZmYWJhYzAgbGVnYWN5LXRydW5rCiszMTg3MiA5MGY3ZmJjYjM3MDY5NTdlZjc2OThkODY0ODBiNGMwMjNkYWIyZjAzIHJlbGVhc2UyMi1tYWludAorMzE4NzMgOTE4OGNiOGUxOTFiNDg4Y2E1MzBiZGZjNTBlMzBlNTdmNzk1NDA5ZSBsZWdhY3ktdHJ1bmsKKzMxODc0IDkyNzhiMWM4MGE2N2YwY2ZjZWFkMjk1ZDRjYjQ5NTcyMjY1MzhlZmMgbGVnYWN5LXRydW5rCiszMTg3NSAzZTE5ZTNiNzJkOWIxYjk3NmRjYzQ3MTY1NTMwMDI5NTBjZWExOGJmIGxlZ2FjeS10cnVuaworMzE4NzYgMDIzZDNiNTBlNTk3OTc0ZWIzZDQxYzJhN2JhZDNkNGNlNjMzMmI3ZiBsZWdhY3ktdHJ1bmsKKzMxODc3IGJjMzcwYjg3NTNmMTI2MGEwZjRkNjY5YjE2YmI0ZGY1YzEzYmYxNjQgcmVsZWFzZTIyLW1haW50CiszMTg3OCAzNjBhNTc4MDU2NzZkZDIzYWI5YTY0MGVhZjg0ODg0ZGYyOGQxMGY5IGxlZ2FjeS10cnVuaworMzE4NzkgZmQ1ZWY3MDAzNDY5YTYzMTg2NDU4Y2ExN2UxYWJhMmNhYzRiZWVmNiBsZWdhY3ktdHJ1bmsKKzMxODgwIDkyZGFmOGIwNmFiYzE4NjJmNWVmZTY4YzUxMDc4ZTA0NmYyZTlhOWIgbGVnYWN5LXRydW5rCiszMTg4MSA5ZWJjNjFiOWU4YmRiYTY1YTM5MTUyZWM1MjU1NTIxNTAzMWU3N2QyIGxlZ2FjeS10cnVuaworMzE4ODIgNjdiMjJmYTRhOGZlNWY0NjRlZmJmY2JiY2Q5MzRiZWZjZGE2ZmUwNCBsZWdhY3ktdHJ1bmsKKzMxODgzIDRlMjIxMzY4YWY3MDdiNGIxNTNhYmY3YTg2ZmU3OWZkMDQwZjA1YjAgbGVnYWN5LXRydW5rCiszMTg4NCA4NTA2MjZkNDc1NzQ5ZDQ2ZGVlYjc0NjU4YmEyZmM4OTRjNGQ3ZjY5IGxlZ2FjeS10cnVuaworMzE4ODUgMzM1OGRmYjFiMThiNDIyZTBhOWJlYzg0MDE2ZDcwYmRjYzI2NjIyZSBsZWdhY3ktdHJ1bmsKKzMxODg2IDE4NThiY2I2MTcwNjgyYzNiNzdlM2I0ZThiODcxMmJiOTk3YTUyODYgbGVnYWN5LXRydW5rCiszMTg4NyBjZGQ1ZDBjZmE2ZGNlMzU4ZDkyNmI5ZWU4MzYxYzBlYjFiZTc0Y2E3IGxlZ2FjeS10cnVuaworMzE4ODggNjJkZjE3ZTUwMWRjNjgzYTM2MjQ4ODlmMGU1ZDUyODA2NzllMDA3MCByZWxlYXNlMjItbWFpbnQKKzMxODg5IDAyY2UyMjgzMGFiOTYwOTc5YTAyNjg1ZDAyMGM2ZTg5ZmViY2I2NzEgbGVnYWN5LXRydW5rCiszMTg5MCBiOTFhODFkNjgwNjgwZTAxZmQ2MTQxNzNhYjE1NWZmNmM2NzkyMTcyIGxlZ2FjeS10cnVuaworMzE4OTEgMjkxYjlkODY2ZWNmMmE5YzhkN2YzZWZkZGI3OTg1OWNiODFkMGJjMiByZWxlYXNlMjItbWFpbnQKKzMxODkyIGVlYzNmZDE2NGE3ZGI4ZGQ0YzdmZTg4YzE5ZTIyNDBkZmU3NDMxZDAgcmVsZWFzZTIyLW1haW50CiszMTg5MyA5ZjI4N2U1ZWIwMzc3NTI0OWVlMWQ0OGEyMzk5N2I0MTIzZGVkZDg5IGxlZ2FjeS10cnVuaworMzE4OTQgNzAwMDNiMGNiODM3OTUyMGQ2ODAyNDFjZmU4MDY5NTE0OWYzZTYyZSBsZWdhY3ktdHJ1bmsKKzMxODk1IGI1NmQxMGVkMzNjNWU4NWFmMmVlZGYzY2E1YTAwYmExOTUyYjQxNjkgbGVnYWN5LXRydW5rCiszMTg5NiA5MGYxN2MzNzRmNTkyNzI4ZTg5ZTQ5OWEwNjY0N2MzMjRkNDIwZTliIGxlZ2FjeS10cnVuaworMzE4OTcgMzQzNGQxYjkyMDZhNWJkOGRlOTc0YzFhNTAwYmE3Zjk1ODQ0N2Q4MyByZWxlYXNlMjItbWFpbnQKKzMxODk4IGNjMzVlZDJiMjZhOGIyYjUwNDMzNTQ0YzMwZDMyNmM1MmZlNTUyMzEgbGVnYWN5LXRydW5rCiszMTg5OSA1Y2YxZjJmMzBkYmQ2Y2M0MDY1YjM0ZDVlNTljNmZkYzViYjZmN2FmIGxlZ2FjeS10cnVuaworMzE5MDAgNzk3OTA5NDkyYzM4NjcyMDQ0MzdkMWJlNWFiMWM5ZmNjNGRmNjM4ZCBsZWdhY3ktdHJ1bmsKKzMxOTAxIDI2ODA4YWM3ZWU1MWFlOTkyYTlhMGE3ZWY3YmRlNzQwMzM2ZjM1ZDAgbGVnYWN5LXRydW5rCiszMTkwMiA5ODBkNmUwMTEyY2UxZTQ2NDNkNGRkMWFjMmM5N2ZjZmM1YjdmODRlIGxlZ2FjeS10cnVuaworMzE5MDMgNjFiMGZmOThkOTVkZDM4MWUxY2Q3M2RhOWYzMDQ5MmJjNGQ2ZTY4NyBsZWdhY3ktdHJ1bmsKKzMxOTA0IDE0MzkxNTc3NmNiYzJmZjMxNzYyZTNhNTc5MjRhMDEzMjVmNTQ3OWUgbGVnYWN5LXRydW5rCiszMTkwNSBmNWM5N2I2NWY5ZTg1Njg1NzljYjkzMjU5Yjc0NDE3YWUxNzhjNDVkIGxlZ2FjeS10cnVuaworMzE5MDYgMWZjMWEzMDVlMzk5OWE0NDEwODMwY2Q0N2UyMDVhNmNiNDkxYjM0YiBsZWdhY3ktdHJ1bmsKKzMxOTA3IGI3MzQwYjA5NTU1ZDMwYmU4YmQzNGRmNWVlZWU4MjBiNTA2Yjk0MjkgbGVnYWN5LXRydW5rCiszMTkwOCAzMDk2ODk5Zjc3NGZlYWM5MjgzYWE5YjY1OGMzZTM5N2YxYjExMWQ0IGxlZ2FjeS10cnVuaworMzE5MDkgZTM2ZmY0OTJjYmIxNjIzYzBkZDdjMTYzMDhiZDI3NTRkZjNhOGVjYiBsZWdhY3ktdHJ1bmsKKzMxOTEwIGQ1NzQyMTYyMzQ0OWI3YWIwOTJhOWVmMTBiYzI0YTliMzI3MTc1ZjEgbGVnYWN5LXRydW5rCiszMTkxMSA0NTA1NGJmNTkyZTVlMDNlZDYxNzEzZjViY2QyMzM2NGNhNTFlZTVlIGxlZ2FjeS10cnVuaworMzE5MTIgZGQ4M2E5YTUzZGJmYjkxZjg5NTM5MTUxZTg2ZTliYjI0NDI0MThmMSBsZWdhY3ktdHJ1bmsKKzMxOTEzIGQzNGJjYjNjYjIxNmVhOTY5NjkzYWZiN2M2ZTFjODhiMzVkZDlmM2UgbGVnYWN5LXRydW5rCiszMTkxNCBlZGRmNTlmNWNjNTg0MTQ3N2RlNjIyMmU4ZTcxYjQ1ZDJkYTBlNzAzIGxlZ2FjeS10cnVuaworMzE5MTUgM2ZmYmJiNGY0OGRhNjMzZjJlYTQzNzIzYWIyNWUxMzNmNTQ5MDgyMSBsZWdhY3ktdHJ1bmsKKzMxOTE2IDhkN2ZmZTRjYWFkOWFjYWM4NDFjNThlOGQyZDMxYWFkZDU0OWEyYTAgbGVnYWN5LXRydW5rCiszMTkxNyAzNGUyMmNkZmFhZDI0NjM4NTM4MDQ4MTc2ODEyM2E5MjgzODFhOWYxIGxlZ2FjeS10cnVuaworMzE5MTggYzdjZWI5NTYwZWIwZTFiYWExOTdmZWMwMGNiMjJmODk1OWEwMzgyNiBsZWdhY3ktdHJ1bmsKKzMxOTE5IDcyMjQ3ZWUyMjY1Mzc0Y2M1NWI5MGM4ODI1ZjkxOTBjYzZjYmRlNjYgbGVnYWN5LXRydW5rCiszMTkyMCA2ZmRkY2RkMTFmNDlmYWRjMGM3OGFlNDkwMmY1OGYxYTgwYmNiYjU3IGxlZ2FjeS10cnVuaworMzE5MjEgMzFhNTExZjc0YjI4MTZiMTBiY2I4MWY5M2QzYjI4MTY4YjRlNGVlMyBsZWdhY3ktdHJ1bmsKKzMxOTIyIGJhYjJiMjg2M2E2ZTA0YzAzOGY0MzNkZmI1MzA1MWZiNWNjNzE2NWYgbGVnYWN5LXRydW5rCiszMTkyMyA4ZTI0NzNhZDdjMGNiYWIzZjZjYjAwZDliZjYxM2FkN2IxNGZkNDYzIGxlZ2FjeS10cnVuaworMzE5MjQgYzk3YzEwNGMyZDI0OTZjOGIxZDE1ZDVjNzMzZjk2YmM4OTMwYzkxYiBsZWdhY3ktdHJ1bmsKKzMxOTI1IDlhYWM4NzBmMDNhMjk5MDJjMWY4M2JiMTVkODcwNjJkZmEwMGE3YWQgbGVnYWN5LXRydW5rCiszMTkyNiBkZTAxMzI3NjU4NGFlYmVlNDljNjcwYzc3YmQ0MDA1ZTVmNGFjNjUzIGxlZ2FjeS10cnVuaworMzE5MjcgZmY3OGMzYzNlYmM0NjZkMDI5MGY5MWFhOWE5NWQwNTYxMmI4YjhiNSBsZWdhY3ktdHJ1bmsKKzMxOTI4IGViNDgyNzhjMmUxMDI1Y2IwODY3MzViN2I2NmNkNDAyODE4OTcwYWQgbGVnYWN5LXRydW5rCiszMTkyOSA3Zjk4MWRkN2ZhOGQyZGNhNDVjOTk1NzM4M2ZkYmQ5YzAzMzMzODYxIGxlZ2FjeS10cnVuaworMzE5MzAgZmJhZTY0NTUxM2Q3NDczNGYxYmJiNTdiODI4MDU5ZDUzYjRhNGU4YiBsZWdhY3ktdHJ1bmsKKzMxOTMxIDc3MDg5MmQ3OGYyYmI3OTg2YTFlMjc1NzE0MzQzNzFhYTNmMDU2YzcgbGVnYWN5LXRydW5rCiszMTkzMyA0NTg1NGZjNzA3ZDY0OTk0MmI2ODEwMjBiMWFkNGZiZDQ4YjNjZDE0IHJlbGVhc2UyMi1tYWludAorMzE5MzQgMzA3NDhjMTVhNDgxYWY3NzE2MzFmZmMzYjQ1YTA3ODMxNTlmMGJmMCBsZWdhY3ktdHJ1bmsKKzMxOTM1IGUzMzNkNzY1ZjQxZWUxZjM5NWFhMzk5NzFiYWM0NDMwZDBhZDg4NDMgcmVsZWFzZTIyLW1haW50CiszMTkzNiBkODc3ZmZhNGY3ZjIyYWM1ZmU2ZWU0OWExNDU1YTM0MmM2NTAwNzI5IGxlZ2FjeS10cnVuaworMzE5MzcgY2U0YjkyOGM4MzQwYTEyMjhhYTkwNDc5NmU3ZDVkNTVjNThkN2FlZSBsZWdhY3ktdHJ1bmsKKzMxOTM4IDc5NWQ2MTQ0ZDJlZTRjZDg0MzAzOWY1NTBlN2IxMWJhN2UzMGI2OTUgbGVnYWN5LXRydW5rCiszMTkzOSA3ZGEyZWUzYTljNDNiM2I5ZjI0MzgyYWRjYzIyZDM0YjliNGE1OTVhIGxlZ2FjeS10cnVuaworMzE5NDAgY2E0M2FiYjA3NjM4Njg3OTMwZDdmMGY4MTQ1MGVlYzcyZGM2ZTg4OSBsZWdhY3ktdHJ1bmsKKzMxOTQxIGUwZWJmYTJmYjkzNjlkYmM4Yzc0NjQyMWYxZmFiMzM0MzZmMmY5ZjIgcmVsZWFzZTIyLW1haW50CiszMTk0MiBmNmJmNzgxNzMxZDQyNTY0ZGI4ZTZjZDczN2VmODNkOWVhMDUxYzU4IGxlZ2FjeS10cnVuaworMzE5NDMgZjk5Y2Y5YmZiYmFmNWJlZWZmM2M2MjlhNzFjMzg5ZDQxOTJlNjhhNSBsZWdhY3ktdHJ1bmsKKzMxOTQ0IGI4NzIyOTc0MDZhYTljOWZiODZlYzE2NGM2Y2ZkOGU3YjU3MzcxMjkgbGVnYWN5LXRydW5rCiszMTk0NSBiMjM0MzQyMTFkMDFkZDgwMGYyMWZkOTE2M2ViOWY2MTk3ZWRlOWQ3IGxlZ2FjeS10cnVuaworMzE5NDYgOTQ2MDFkOGZhNTFkYjY4ZDhiNDJmOWFiMjQ4NDVkNTdkZTBlNzdhMCBsZWdhY3ktdHJ1bmsKKzMxOTQ3IDk4M2U5MjkxYTdiNDYxZTJhZDY2YTQwNzU3NjEwZDhjY2ZjY2M0ZDcgbGVnYWN5LXRydW5rCiszMTk0OCBmODEyMzljMTJjNjBmODA2MjIzMTllNmFlNTg1OGU2YjE2ZWM1ZWU0IGxlZ2FjeS10cnVuaworMzE5NDkgNGVkZTU3YTQyYzYyMGIyZDFlMDBlNTRiZjYzMjlkMzUxOWM3MzI1NSBsZWdhY3ktdHJ1bmsKKzMxOTUwIDMzMzE5NDU4ZmU5OTViZWRiZTVmMjg2ZTc5MzkyYzkwNjY4NzJkNjkgbGVnYWN5LXRydW5rCiszMTk1MSAwNzYxN2QwOTA0YTYzZjM2MTdlYjE5YWI0ZWQ0YTViZWJmZjg3YjY5IGxlZ2FjeS10cnVuaworMzE5NTIgNWVlMjlmMTM2NGYzMzU3ODE1ZjI4YzI0YmExZDY4OWU1N2FjMDc5MiBsZWdhY3ktdHJ1bmsKKzMxOTUzIDE2YWE3MmE4YzI4MWVmMjBhNTFkYjdhOGNiM2YwNGQyOGMzMTdkNjEgbGVnYWN5LXRydW5rCiszMTk1NCBiYzkwNzZiMDE2OTQ5OGFhNTNiMzc0NDc2ZjA4NTU0Yzc0MGZjZWZmIHJlbGVhc2UyMi1tYWludAorMzE5NTUgMWUwZTY3OTQ3MTc1OGI1OWYwNjU3ZTRmNjVmNGFjYzVmYzI3Zjk4YyByZWxlYXNlMjItbWFpbnQKKzMxOTU2IGQ1NjI4MmMyOGExZWZjZGY1ZWNjZDAxMTkzNDU0MGExMDJkNDRkZGMgbGVnYWN5LXRydW5rCiszMTk1NyA0ZjAzOGQzYTg4NzhjYmY3NDk1YjcyNGE1MWRlYWJiMjU3NDA1MjI2IGxlZ2FjeS10cnVuaworMzE5NTggYTIxMTBjYjE2NWYxMTFiZmZlOTQ1YjQ0YzMxNzJmNTE3MDA3YzhmMCBsZWdhY3ktdHJ1bmsKKzMxOTU5IDY2NDIxMmE2ZTI4M2UyYTJiYjgxMzRhMTI1ZDViYzdiOWNmMzhkNTMgbGVnYWN5LXRydW5rCiszMTk2MCBlZTk0YTk4Y2YzOTZjMDQ0NWEzOGJhOTc2ZjZhYWU3MjA5YTRjNWZkIGxlZ2FjeS10cnVuaworMzE5NjEgYzZjMmYyNmRmNjViMDRlY2RkZjcxNzIyZmU3ZjU4ZTU2Y2ZlNjIxNSBsZWdhY3ktdHJ1bmsKKzMxOTYyIDVmNTM2NGFjNGFkYmM0N2MwZGM4MTQ5NGZkMmZhNmJkZmM1NTU0N2QgbGVnYWN5LXRydW5rCiszMTk2MyBmMDBjZDY5M2Q0ZTAyZDMyN2ExNmE0NzUwNmU1M2NjYmI1ZjQyYjY3IGFzdC1icmFuY2gKKzMxOTY0IGU1MzA0M2JkYjhmMjNhZDRkOTE4ZDhhZDMzOGVhYWUwYTEyNmI5OTggYXN0LWJyYW5jaAorMzE5NjUgY2I4ZDQyN2FmZDIxMTU3MmNkNmM4MTdjZmM0YWQwNWZkYzIzNjk3MiBhc3QtYnJhbmNoCiszMTk2NiBmYTM1YzhiNDViMjQ1NmQ1MzJhNGYwMGIxOTZiY2M0ZjA2NDhkODBjIGFzdC1icmFuY2gKKzMxOTY3IGQxZDYwYzJlMGFlOTkzYTZjMThhMDllNjE0ZDM3OTMyYzdhMjk3MWEgYXN0LWJyYW5jaAorMzE5NjggMzA1YzE3NTExYTg2OWM5NmU3MjNiMDk0ODE2YzhkNjM5ZTVkNTdkMCBhc3QtYnJhbmNoCiszMTk2OSA1NWQwZTk5OGJjNDZjNDc1MGViZTY4Yjg4N2U4NGJmNGQyOGIzYzJiIGFzdC1icmFuY2gKKzMxOTcwIDczNjVmMTMwZjE1ODNkYTZmYzRiNzk4MDE3MmNkODJkODY1MTM3N2EgYXN0LWJyYW5jaAorMzE5NzEgOTA3M2Y4ZmY3MjU2MmFjNzk3MWE4MzFlOTg4ZmQ0Y2UwMjRjNjNjNyBhc3QtYnJhbmNoCiszMTk3MiA2M2VkODUyOTA0MTMzNjA5ODg5ODBlZjMzNmY3YmIwNGVlMzgyMzQxIGxlZ2FjeS10cnVuaworMzE5NzMgNWVmNjEzMmYzY2FiYzlkZGUxYTgwYzIwNWY0NDcxZjRiNDBiYTUxYyBjYWNoZS1hdHRyLWJyYW5jaAorMzE5NzUgZWM4MDNjYzU3MTg1MTdlMjY1OThlNTNhZTBmMWE3YThlN2RlOTQzNyBhc3QtYnJhbmNoCiszMTk3NiA1YjE1MmFhYzgxM2Q3ZGIwYmUwZWZhNWY5MmNkNTQwYTUwZjZhZWQxIGFzdC1icmFuY2gKKzMxOTc3IDhmZmZhNmQxNTQ0YTg0MzVlNDAwYTE4Y2IzNTE5ZTkyMTEyYzg3ZGMgYXN0LWJyYW5jaAorMzE5NzggZGNkYzQ1MTc0MGZhYjRiOTU0MjI5OWQxYjI5ZmE3OTE5ZWZlMjgwMyBsZWdhY3ktdHJ1bmsKKzMxOTc5IGYzNjJjOWFlZGYxMzRhNWFhNDU2OTk2MjgyNThkOWQzNTUxNWEwNTAgYXN0LWJyYW5jaAorMzE5ODAgNzM2N2EzODRhNzQ1NTU4YTcwNzAwMjYxNjkwOTdhMGU4ZmE2MmVhZCBhc3QtYnJhbmNoCiszMTk4MSAxMWQ4MjdkOTM5MDQyOWI4YjE2NmY0Yjc5ZTQyZGNhMDY1NGRkNGU5IGFzdC1icmFuY2gKKzMxOTgyIDYzM2E0YmJkNzk3ZTE3ZWU4OWU2NDFjZmJhOGQ1MDI2Y2Y5NWI3YTMgYXN0LWJyYW5jaAorMzE5ODMgNzU2Zjk4N2MzNTkwMTNiOTY2MWMzN2IzMDk2OTEzNWQ3ZDViZGY1NCBhc3QtYnJhbmNoCiszMTk4NCAzNTBlYTI2ZTdmZDk1ZTllODEzYTJiNDllNmQ2YTc5NjQyNjczNDIxIGFzdC1icmFuY2gKKzMxOTg1IDIzMGNjYjllNTAwMGVhMzJhODhmNGMxODIzNmIyYmEyOGExYjRkZWIgYXN0LWJyYW5jaAorMzE5ODYgMDdmM2ZhNjM5ZDhlYzZkNWU2NGUzZDkxZTg0ZmM2NTI3ZDk4MWI3ZSBhc3QtYnJhbmNoCiszMTk4NyBiMDlkYjBiOTZhNzZiYzI4YmU2NWQwZWNkOGM0NWY3MmI3NGY4NzdkIGxlZ2FjeS10cnVuaworMzE5ODggMmRhMTRmYzllNzJiY2FjOGI4N2Q2Y2VkNmVhOTYwNDY4ZTQzMTY3OSBhc3QtYnJhbmNoCiszMTk4OSBjMjViYjkxM2EyMzYzYmY2OTcyZTI3ZWVhZDNjYzU5MjIxMWFkMWQyIGFzdC1icmFuY2gKKzMxOTkwIDhlNjdiZWY0MjlhNDA4ZGQwODlhYjk0M2JlMDBiZWNmMjA4MTk1YjEgYXN0LWJyYW5jaAorMzE5OTEgMjVhM2NjMzc2NTcyYTY3OTBiZmUzZTBlZDMxZjIyOTVmMDg3NzNlZCBhc3QtYnJhbmNoCiszMTk5MiA5MDlmYmUyNDNmOTAyNjY3Yzk0MzBiYWY1MTM4ZDg2NmQ0MjVmZjA2IGFzdC1icmFuY2gKKzMxOTkzIDZlYTIwYjg2YWM4ZGNmNjQ4YjdkOWM0MmNkYjNmZjhhMzk2MTI5MTAgYXN0LWJyYW5jaAorMzE5OTQgZjZhMTE5MjAxNDZlYjU4M2NhZmYxOTZiMTBjY2U1MzI5NDQ4MjU2MCBhc3QtYnJhbmNoCiszMTk5NSA0YmNkYTYzZTEwNTQxYzU3NjFjY2ZiNDkxNTFlMTdmMWFhZjlhOTRkIGNhY2hlLWF0dHItYnJhbmNoCiszMTk5NiBmODRlMWY0ZDQzOGViMDhlNzU3ZTBhM2RlZWIxN2NhMTY1ZGIxZGY1IGFzdC1icmFuY2gKKzMxOTk3IDQ0OTYyMDIxOTU5ZjI4ZDEyMzQ2NjNmZjczYTNlNmIxM2Y4YjAwNTQgYXN0LWJyYW5jaAorMzE5OTggNjNhYzNkNjNiOWZlN2FkYTk0MGNjNGY2MTgwZDg3YzQ4OWFhMWY1NiBhc3QtYnJhbmNoCiszMTk5OSAxM2U1NjdhZjk0ZDhhOWMyMzM3MjRjZDEyNzE2YmNkMGNiZDJkMjYxIGNhY2hlLWF0dHItYnJhbmNoCiszMjAwMCBiYzc2NTdhYzQ2YmJlN2VhZjhhOGE0MmZlNjI3ZjNkMWI1NjdkN2RjIGFzdC1icmFuY2gKKzMyMDAxIDQxYjFmMjJmY2IwMTc1NmUzMDFjNjA4NTcxYmNmZjAzYjczNDJiYjMgYXN0LWJyYW5jaAorMzIwMDIgMTQ1NjYyMTgwMGQ0NTk2NTU0YTBjNTI3MGFkZGI4NTAwMGQwODJmOSBhc3QtYnJhbmNoCiszMjAwMyA4ZThhOTExM2ZhMmQ4NWQyNzQwYTYwZWNkMWY5NmQ1MzhlNmY3ZGJhIGFzdC1icmFuY2gKKzMyMDA0IDM2NGJmZTc5NDc4ZjRjYjU2ZDc2ZWM1ZTI0YmRkMzZhNWE0NzRhMDQgY2FjaGUtYXR0ci1icmFuY2gKKzMyMDA1IGFmMTc2NDg4N2FhMjNjNTljZTBmOTBkZTYwZGMxMDhkYzhiNDkzYzUgYXN0LWJyYW5jaAorMzIwMDYgM2VmZDgzNGQwZmM1MmJmMWFlMTgwYzZhNzEwNTRiMjVjNzdjY2IwYyBjYWNoZS1hdHRyLWJyYW5jaAorMzIwMDcgNzMzNzI5MjYxYzQxYTIyNjYwNTQxMGFlMjNhMTVjN2Q5Yjc5MDA3MSBsZWdhY3ktdHJ1bmsKKzMyMDA4IGIwY2NjNWI1ZjdlMmYyZTg0ZjdhNDQ0NWFmZTQ5ZmJkNjBlZDdjYzggY2FjaGUtYXR0ci1icmFuY2gKKzMyMDA5IDYzMmE2Y2FlMGJlNmYxNjRjZTA4ZGI5ZmRiMWYyYzllODIzMWRhZmIgbGVnYWN5LXRydW5rCiszMjAxMCBhYzcyMWVkNjE5MTQ0ZmJjYmRjYjlmMWZkYjUxZmFmYzg2MGI2MzA2IGxlZ2FjeS10cnVuaworMzIwMTEgZTA2YzU0MGRjMmUyZjEzYWE3NWJiOWU3NzIwMmYxN2E3MmQ3MDc4OSBsZWdhY3ktdHJ1bmsKKzMyMDEyIGZlYTI5MjkyYjkzMWI2NzY5Nzc3YTczODNmY2MwZWYwYTEzMGM0MjAgbGVnYWN5LXRydW5rCiszMjAxMyBmM2Q0Y2MyOTk2ZDJjODYxODNiZjMwNTU4OTI3MzdjN2JmZGY2MzVkIGxlZ2FjeS10cnVuaworMzIwMTQgZjUyOWRlY2Q4MjFmZWZmNDhiNGJkMzcyN2IxODM2MDU0NzA3M2NlZiBsZWdhY3ktdHJ1bmsKKzMyMDE1IGVkM2M3MDA4ZjkwZThjNWU0NGYyNzFiOWJhNjIwOTk3ZjNkNmY1MmUgbGVnYWN5LXRydW5rCiszMjAxNiAwY2Y0ZTMyNDAzODA3ZTBjOWYwNjU3ODYwNWY1MTFjNDBhZDY4ZGQwIGxlZ2FjeS10cnVuaworMzIwMTcgNTQ5NmI4NjFjODlhYjkyNzY3MzE1MDVlYjY4YzFmMzA5M2EzMjgyZCBsZWdhY3ktdHJ1bmsKKzMyMDE4IDcwYmQ4ZDhjODc3YmMzZDMwNTIyNDIwZGE4OTc2MjdmNDM3NGMzN2MgbGVnYWN5LXRydW5rCiszMjAxOSAwYzgwMmVlYTU2MTU3OGE5MjhjNjU1MTUxMjFkNDI1MDA5OGFhOWQzIGFzdC1icmFuY2gKKzMyMDIwIGI2ZTYyY2JiZGYzZGVkMjhhNTNmMDQxYTM3ZGI2MjAwNzZmNTkwNzggYXN0LWJyYW5jaAorMzIwMjEgYjQ1MWE5ZTZkOTQwOTBmYWY0MDE2NTY5ZDU0ZDlkNTk2NWU3MzAzZSBhc3QtYnJhbmNoCiszMjAyMiAzMzkyOGE1MWYyZjExMmJmMzhiM2NmZDJjMjQ1NzYzNTZlMTFiYmU4IGFzdC1icmFuY2gKKzMyMDIzIDFhMmZkMTA5ZjZiNjk2MTk0NzExYzFlODQyOWM1MmExNDExZmQyNTEgbGVnYWN5LXRydW5rCiszMjAyNCBiNTc1NDZiMzNjYjEzNjdmMDU0NjMxYTE0ZDEzYTQyZjA5ODc5MDIxIGFzdC1icmFuY2gKKzMyMDI1IGVjNjIyMWU5Yjc5YWNjNDZmMmEyZmMzYjM3YzljYWRiZmNmZDI5MTEgbGVnYWN5LXRydW5rCiszMjAyNiBhOTM1MTI3MDM4NWFhMDRhMWMwMjY3YTJlYTMwOGRlY2I5M2U3MmIxIGxlZ2FjeS10cnVuaworMzIwMjcgMzBkMWM4NDhkMmIwMTY4NThmZjA4ZDI2ZTNhMTRjMmQwYzExZmYwNCBsZWdhY3ktdHJ1bmsKKzMyMDI4IGQ2NTUzZDA4MjdhYjk2OGM3OTA4ZDM1YjFkZDMxZWJmZWUyNTdhNDMgYXN0LWJyYW5jaAorMzIwMjkgODRiMTYzNTIzY2Q0ZGExY2Q4NzI5YTBhMjAyNDUzZTkwZGYwZDk4MCBhc3QtYnJhbmNoCiszMjAzMCAxNTJiYWY0ZTM1NTU1MWU3MWFiYzU0OTJhNTgwZDQ3OTI4MDA5OTJkIGxlZ2FjeS10cnVuaworMzIwMzEgNzIxZTllNGVlYzFlZjA4ZTExMjcwZGRlMDFhZTEyOTM4YTYxZjc4ZiBsZWdhY3ktdHJ1bmsKKzMyMDMyIGZhNzk1ZjRlNmRjNzc0YmQ2MzQ5Y2VlMWJkZmZjNTI3YTgyM2E2ZGEgYXN0LWJyYW5jaAorMzIwMzMgZTVjMDA4OTU1MzgxMTEyNmNkNTI0MzE0ZjA0N2NlZWZjZTMwMWFlOSBsZWdhY3ktdHJ1bmsKKzMyMDM0IGE4ZWM3M2QxM2QwMzNjNWFmZGFmMWZkYWVlNTA5MjdmNThlYmE4NGYgYXN0LWJyYW5jaAorMzIwMzUgYmI4NWJlODM3NmI4ZWJiOTA3Yzk2M2I5MzRkZDEyODk2OTlmNTMyZSBhc3QtYnJhbmNoCiszMjAzNiA4YWRlOTBhZjYxNGMzOGMyZGVlZDM4MDlkZjMyNDFlZmZlN2QwNWYzIGxlZ2FjeS10cnVuaworMzIwMzcgMmVkN2MxYzQ1N2I5M2ZmZjdiYjQ3OGFiNjEwMWJmMGZhODU0OTZjNCBsZWdhY3ktdHJ1bmsKKzMyMDM4IDZjNjQ2MTZkMTdlZGJjOWJmNjc2M2NhMjFjYTI3ZWY0OTBiY2NjZmIgbGVnYWN5LXRydW5rCiszMjAzOSA5ZDNhMjVlOTkwNzViMDMzMTRhNTJjOTk3ZmZjYzU5ZDVjYmRlNTFmIGxlZ2FjeS10cnVuaworMzIwNDAgMWIxZDk5ZGRhMmExZDY0MWFkMWZlYWQ1MmI4M2QwYzYxMTUxN2QxOCByZWxlYXNlMjItbWFpbnQKKzMyMDQxIDQ0NTljZGNiZjUzODQyN2ViYmE1OTBlMmE2YmI3MmE1OWU5OTdhZWYgbGVnYWN5LXRydW5rCiszMjA0MiBjYjMzMmQ0NDkxNzE2ZTIzODcwNmZiMGIzYzJmZTcxNWRkMWQ3MDVlIGxlZ2FjeS10cnVuaworMzIwNDMgY2Q1NTg4NzYyNGIzMjVmOTFlNGQzYWU1NjJjNGY5NDNjNjE4YmM0MyBsZWdhY3ktdHJ1bmsKKzMyMDQ0IDIxMTQzNDg2Y2U0MGIzNzc3NzY4NGI5MTAwMTBmNzQzMDEyYWE5YzggbGVnYWN5LXRydW5rCiszMjA0NSAwNDE4MmU1YTYwYjExMjJjMjA3NjNmNDNiNjUyNzFlNWQ3NDg5NzFjIGxlZ2FjeS10cnVuaworMzIwNDYgMmUyMDY5MmRkMjg2ODEzNmZlOTUzMTQ0MTE2NTFjYTYzMGFjY2EzOCBsZWdhY3ktdHJ1bmsKKzMyMDQ3IGVlMWM3MDkwNTBiMjQ5NDYwNTdiMGJlZmRkMzk1YTdkMWViYzkxMGUgbGVnYWN5LXRydW5rCiszMjA0OCA2MzA0MDlmNDFjYzNmNTlhZmJlYTgzM2JlNjE4YjYyMDU4MWUyMDY1IHJlbGVhc2UyMi1tYWludAorMzIwNDkgODcxZGE3MDNlNGMwYTVjMjdjMWEyZGNmMTFiODRmOGIzNzliMjYwNiBsZWdhY3ktdHJ1bmsKKzMyMDUwIDVkZGJjOTc5YzY1NTk1MTgzMDhhNjM1YzM2NzA1NTFhOGRhNjk0ZDkgYXN0LWJyYW5jaAorMzIwNTEgZDcwMDFmYWRmZWZjMzc3NWViNDI1ZDg0YTAwYmRmMDllMTk1NjE2YiBsZWdhY3ktdHJ1bmsKKzMyMDUyIGQ5M2E4NDVjZTVjMDkwM2ZkZDFjMWYyZTE5YmUxMDJhMzFjNGE5YjMgbGVnYWN5LXRydW5rCiszMjA1MyA5MzRkYmViNDBiMzE3MTU3NWY3ZGExZDMxYWRhYmUyY2JjOGI2ZjdhIHJlbGVhc2UyMi1tYWludAorMzIwNTQgZjI1ODBjMmU3NGRkNzk2NjhlM2E3YjM5YWQ2MWMxZGQ3NGQ1MzkwNyBsZWdhY3ktdHJ1bmsKKzMyMDU1IDAwOTJiNjlmN2Y5OWFhNGFkYTRlZjAxMGM4YmYzOGUxMzYzYTExM2QgbGVnYWN5LXRydW5rCiszMjA1NiAxNjFiOGJkOGEyMjZmY2Y5ZGE1OGU5MGE4ZjNlYzU1MjQ4Nzk3Mjg2IGxlZ2FjeS10cnVuaworMzIwNTcgMjQwNTM3MWJlMzRjOTY2OGU1MjBlZjMwZGE1ZmMwYjgyOGMxYTdiNyBsZWdhY3ktdHJ1bmsKKzMyMDU4IDNmYzU3NjQyNzNkOTZmMGFhMzhmNDQxZWEzNzc1NzVjMjZmNTczYmUgbGVnYWN5LXRydW5rCiszMjA1OSA1MDBmNTQ1YTI0ZjA3ZjdmMTcyYjY0YmIzZDNmMDA0ZDc3YWVkZTgyIGxlZ2FjeS10cnVuaworMzIwNjAgZjBhZDhmYTg4ZDdjY2VmMmQ0NGMzMDZiNGY5MWE2MzQwY2M2ZTY2OSBsZWdhY3ktdHJ1bmsKKzMyMDYxIDBhM2NlMzA2YjExYTVkNGE5ZjgxYzdmY2JkNDAyYTlkNmJhYTQxZGMgbGVnYWN5LXRydW5rCiszMjA2MiAxNTdjODcyZTY4OTJiOWIzZDZlNTY1ZjBmOWQ2MmNlMTk2MDRjYTE5IGxlZ2FjeS10cnVuaworMzIwNjMgMzdlYjg5MjlmMGNiNDAzMGYyYTIyYzg1ZTZiYTU1ODA2OTVlNWQxMyBsZWdhY3ktdHJ1bmsKKzMyMDY0IDU2ZDliYmJhZTZmODEwY2UwMTE5OTgwOTI2NjliODBjMGQxYzAwYTcgbGVnYWN5LXRydW5rCiszMjA2NSAwNTQ0MzQzMGQ3ZWQzZGQ0ZDZmYTZjMjMxMDUyMDYwY2M2YzM4NzE0IHJlbGVhc2UyMi1tYWludAorMzIwNjYgZGY5YjdjZWUxMzM5NTE2YmI4NTdmZWNiYjA2OWM5YTk0ZWIxNzVkNCBsZWdhY3ktdHJ1bmsKKzMyMDY3IGYzMDc4NjU0YTVjMDJmZGY4OWI1ZGE2MWE5OGY5ZThmNDAzZjNjYTggbGVnYWN5LXRydW5rCiszMjA2OCAyMzVkNTQzZTBiODQ5NzExMzVmNGUxMzk0ZmMwNzFlYzI2NDA0MjM1IHJlbGVhc2UyMi1tYWludAorMzIwNjkgN2EzZjcyOTgzYTdlZDU3N2VmYzJjMTA0ODc0ZTkyMzJlZmY3NmQ2OSBsZWdhY3ktdHJ1bmsKKzMyMDcwIDgwNDQ3M2NmNzEyMTU0NDA1MDRmMDFkMDhjYjAxODIzNDVhMTQ5MTEgcmVsZWFzZTIyLW1haW50CiszMjA3MSBkOGY5OGRjNmU3ZTA0YTE3ZWVkYzBiY2Q3ZTVlMTU3ZmNlYjkyZjA5IGxlZ2FjeS10cnVuaworMzIwNzIgMDc2Yzg2N2I5MTZlMjMwNmE0M2EyZjM0MTQxODg0ZTI1ZmFlZjk4NiBsZWdhY3ktdHJ1bmsKKzMyMDczIGRmNjViMDIxN2RkN2YwOGU2ODFlZDlmMjkzNjdiN2YwMDRkOTA4NzAgbGVnYWN5LXRydW5rCiszMjA3NSBhZjA1Zjg4Yjk2NDEzNTk2NWFlZjRjNDQ0ZWQ5YzBiYmQzMDMzYTdkIGxlZ2FjeS10cnVuaworMzIwNzYgYThkNjU3NmI5NWFmYWNiMWQxNTMyYTZlNDE1MTllOTAwY2JiMzBkYiByZWxlYXNlMjItbWFpbnQKKzMyMDc3IDljNjIwOTI1MzYxNWZmNDBiYWNlNDM5YTQ3OGQ0NmNkYWI4ZjcxZTkgYXN0LWJyYW5jaAorMzIwNzggNWZiZDg4MDFmYTI2MjVlYjJhODk0MjkyOTczOThhMzNkMmIzY2ZiMiBsZWdhY3ktdHJ1bmsKKzMyMDc5IDE1OTJlYTM2YTcwMjMyN2U1YjZiNjM1NmQyNTI2YmE5N2EzNjYxNzEgbGVnYWN5LXRydW5rCiszMjA4MCBhZDQyY2JlYTIyNThhNzcyMjk0YTVmYjgxY2Y5YmVlNmE4YjZiN2MwIGxlZ2FjeS10cnVuaworMzIwODEgYzdmMTBhOTAwZDYzMjg4ODNhOTJhZTVhZTg5NDc1ZjBjNjllNTYxYyBhc3QtYnJhbmNoCiszMjA4MiBiODcwOTVmYmIwNTE2OGQxY2UyZTE3MDYyOThhZDU2ZGUwYTVjZmQyIGxlZ2FjeS10cnVuaworMzIwODMgZmM4NDE1MzUxODBjOTg0YmNkODZlNTFiZDE4MGM1MmRlMjk3ZjJhMSBsZWdhY3ktdHJ1bmsKKzMyMDg0IDcxNDBhNjIzNmMzYTg4Yzk4MmE0MmIxZmY1ZTFmZTQ0MGQ2MWRlZTAgbGVnYWN5LXRydW5rCiszMjA4NSA3NTFkN2NlOWI0YjIzYTg0YzhkN2MxNGJmNGI4YWY5NjE2OTdjNGFhIGxlZ2FjeS10cnVuaworMzIwODYgYjY2YTJlNDFkYTNlZTk5MTVmZjVkZjY0NWI0YzczODE1NWNlYjE5ZSByZWxlYXNlMjItbWFpbnQKKzMyMDg3IDA0YzFiYTUxZWZkYmNiYmM5OWY1MzJiMjg4ZDQ5Y2Y4ZTdiYWNmMDkgbGVnYWN5LXRydW5rCiszMjA4OCA4NTJhYWU4NGM5ODEzNzNlMDJhYzRlZjVkODcwYmFiYjhiY2I3N2U2IGxlZ2FjeS10cnVuaworMzIwODkgMGY1NThlZWRlNmM1NzdhNThjYzEzOWI1YmNmZDNlMmZkZTE0ZmZiYyBsZWdhY3ktdHJ1bmsKKzMyMDkwIDUwNWU4YzBmYTkyZmUyY2EyYzJiNzY0ODc4YjI1ODJlMzA0ZjQ2NzcgbGVnYWN5LXRydW5rCiszMjA5MSBiYmI3NDhmNjgxNGQ2NDBhNjQ5ZGYzNTQ0MWFlM2FiZWIyMzE1ZWJkIGxlZ2FjeS10cnVuaworMzIwOTIgZjNhZGQ0MTY2MjhkYzc0MTQzNmZhNWNmNDc0MTllZDgwYTg1ZTA3YSByZWxlYXNlMjItbWFpbnQKKzMyMDkzIGIxZmJiODNlNTEzOTE0OWU5Yjc2NTk1MmFjNDU5NTVmZTVkODY3NDQgcmVsZWFzZTIyLW1haW50CiszMjA5NCA4ODAyZGUwZGE1MzM5MTE2MGZkM2UzNWQ3Yjk1MjM3NDIyNTE5MTJkIGxlZ2FjeS10cnVuaworMzIwOTUgZTEzYTdlMWZkYjllNWI3YzI4YzEyY2YyN2QyYmJlOTM5NTExOTYyYSBsZWdhY3ktdHJ1bmsKKzMyMDk2IDg2YTRjZWE3MDk3M2FiZWI0NzMyODYzNTU1YzQ0OGU0ZjQ0NjBlZDcgbGVnYWN5LXRydW5rCiszMjA5NyAxMmRhZDIwODFlMmU4MjNmZTkyMTk1NjQ0NWY4MWUwOTkzM2U3YmU3IGFzdC1icmFuY2gKKzMyMDk4IDRhZWJhY2M3ODY3YmIxZTBmYWFjZjIyMDMxYzhlODMwOGJiYWVkMDcgYXN0LWJyYW5jaAorMzIwOTkgZjExNTQ0NzNkYWM4YTcwZGY0MzVmYWZlYWY4NzA3Zjk3ZDQzZWQ0MyByZWxlYXNlMjItbWFpbnQKKzMyMTAwIGFmZDVjMmU0YjRhZjZkYzFlY2UwODIwNWM0YjYzMWIyN2RmODA2MTggcmVsZWFzZTIyLW1haW50CiszMjEwMSAyODdkYWE2YTdmNGYyMjBkZTgxMDhmOGY1NjA3NGUyZTM4MTJkNGEwIHJlbGVhc2UyMi1tYWludAorMzIxMDIgOGVmZTk0NDU0OTViMGI3NmQ0MDZhNWFhNWNlYzk0NWRjZGY3YjY2NCByZWxlYXNlMjItbWFpbnQKKzMyMTAzIDU1NTBmNWE5ZDcwY2E3NjIwMmVkMzA3NzJhZjBlM2Y1YjA1OWMxODcgbGVnYWN5LXRydW5rCiszMjEwNCBhOGU1ZWMwNzA0MzNmNWFjYTJiYmRlNzg5MWYzMzQ1ZjM1NWUxNzVhIGxlZ2FjeS10cnVuaworMzIxMDUgMzYyMjJkMzgyM2YxMjk4NjAzNDEwNjY1NjRjZmYxMWQ3ZDYzZjk1MiByZWxlYXNlMjItbWFpbnQKKzMyMTA2IDk3M2Y5ZDM1Y2YxZDBmMTUyNGQ3MzRlYjVkNzlhMjczYTVjMjAyZWQgbGVnYWN5LXRydW5rCiszMjEwNyBhYjJhNTQzZTg1NWJjOTg4ZWJiYjJjOTNiNTIzYjM2MzY5ZjkwNzQ3IGxlZ2FjeS10cnVuaworMzIxMDggZjM4Y2E5ZTFiNjgzYmY3YThiNmI4NGNiNWRjNTk5MjQ4NzYxN2MyOSBhc3QtYnJhbmNoCiszMjEwOSAwYzQzMzVmMTBjNjdhMmQzYTc4MzlmN2I0YjAyYjIyN2EyZWJlNmZmIGFzdC1icmFuY2gKKzMyMTEwIDQzMDhlOGE2YzQ4MGRlMDBiZTJmNjA4OTVkODMzMDI4ZGI4OGY2MGEgYXN0LWJyYW5jaAorMzIxMTEgZGM4OTBhNGMwNTI4MDU1ZWQzMWZiMDIzYjNjM2Q1MDUwZGNjYThlMCBsZWdhY3ktdHJ1bmsKKzMyMTEyIGI4NWEyMDU2MzFhNDVjMDM4YTVmZGEzMzJmOGViZDllN2E1Y2M5MDIgbGVnYWN5LXRydW5rCiszMjExMyBmMzExYjVkMjFlZjU2NGIxMGRiODVhM2RiNjhkODdlMGNkNTcwYWIxIGxlZ2FjeS10cnVuaworMzIxMTQgNGY4ZjE3YWYzNDg3YmFiMTRiMDBiNDZiOTc4N2JiYWMzYzRmM2Q1MiBhc3QtYnJhbmNoCiszMjExNSA3MzhlMzc4ZmEwY2MxNzE4YzEwZmFmMWM2OGRjNDhhODI2YzI3MWYzIGxlZ2FjeS10cnVuaworMzIxMTYgMzJiZWE0MWZlZjY4ZDA0OGEyNmNjYmFjYTU5NDk2YzNhYjVhYjg0YyBsZWdhY3ktdHJ1bmsKKzMyMTE3IGQ3ZDdhZjVmMzIzMWYwMTJkNThmNTNkNDcwYzRhNmJhZDZiZThiY2MgbGVnYWN5LXRydW5rCiszMjExOCA0OTIwMjhlNDcyNmYxNTc1NTAzYWU1YTNjNThlNzljMThhNDVjYmFhIGFzdC1icmFuY2gKKzMyMTE5IDgxYmNjMGY1N2Q1NzBmYmRmNWYwY2RiMjM2MDI3MTk5NTkzMzg5MmIgYXN0LWJyYW5jaAorMzIxMjAgY2ViN2JiNzkxMzUzMzY2MzAwNWZlM2Q2ZWRiNzk4YzRiZGRiN2ZkMyBhc3QtYnJhbmNoCiszMjEyMSBlZDIxZDhiMzdlMzNkNTVmNWY4ZWEzOTA1MjM0M2FlMTZmNjUzNDM1IGxlZ2FjeS10cnVuaworMzIxMjIgM2Q4YzEyMTRhMWM3OWJhNzgxNDBiM2Y3NGFkNDI4YTI1ZTY2ZGQ1MiBhc3QtYnJhbmNoCiszMjEyMyBlZDczZDY1ODcyNWFhNzhkYTZmY2VkZjNkMDBhN2Y5NjEwYmRjOTZiIGFzdC1icmFuY2gKKzMyMTI0IDQwZDk2NTliNTZjOTQ2YzU3MTUxZWQ1YjIwZmEyY2ViMGI0NDMyNWEgbGVnYWN5LXRydW5rCiszMjEyNSAzZTM5OWE4NjE4ZGIzNWI0N2JkNTFiODJhYmMyN2QxMjQ0OGNkMjBkIGxlZ2FjeS10cnVuaworMzIxMjYgNDJkZmEwODkxYjMzMjY2MTE3MDhkMjczNTk1NmNhZTkwZTM4NTY2OCByZWxlYXNlMjItbWFpbnQKKzMyMTI3IGNiYTBhZWVlMGQ2NTE1MzFiOWFhNTU1ZjRjOGIwM2EwOTM4NDUzNTYgbGVnYWN5LXRydW5rCiszMjEyOCAwMGE1NmZiZWE2OWZiMGE3MGFiNzBlNjE0ZDQ0MDQ4Mzg2MjIyMWM0IHJlbGVhc2UyMi1tYWludAorMzIxMjkgMGZjZjlhZTI1Y2ZlYmU3M2MxMGI4MTIxMGU4OTI4ZTljMzE0YzVkZSByZWxlYXNlMjItbWFpbnQKKzMyMTMwIDRiNmUyMGYwYmE0Y2RhNTM5YzYzYzkwMDE4ZWZmZjc3MmJhNmQ4OGMgcmVsZWFzZTIyLW1haW50CiszMjEzMSBjYjVkYjU1NjFjZGNhOWQzNGQyYjA2NjQ2Mjc1YjA2YTNjZDhlOGU0IGxlZ2FjeS10cnVuaworMzIxMzIgODQ5ZGZlYTE4MmNhMzc3MzM5ZGRiZWM0ZDliMTQ0NmI0NjAzNWU1MCBsZWdhY3ktdHJ1bmsKKzMyMTMzIDExN2FjZTg1MjFhMWQyOTY3YWQxZTM2YzIxYWM5ODlhYTZkNzExNTggbGVnYWN5LXRydW5rCiszMjEzNCBhMDUwM2JkYjBjMjQyY2Q4OGRmM2YyNmU2N2IwMzYwMGVlZDFmNzYzIGxlZ2FjeS10cnVuaworMzIxMzUgODIzM2EwMjk0YzQxZTNkZTAwNTc0NGMwZGRhMTYxMDhmOWMxMDY4MiBsZWdhY3ktdHJ1bmsKKzMyMTM2IDM3NWZkYjgyYTNjYWUzMjhhNTgyNzI3ZjQ4M2RlZmJkMzJhN2JlNTEgbGVnYWN5LXRydW5rCiszMjEzNyAwZGUwZGVkMTk5NjhlYzQ3MjIxODdmNmQ5NzJjY2FjMDY2NWEyNDMxIGxlZ2FjeS10cnVuaworMzIxMzggYWNmMzU5NmZjYzI4ZDUwNGZmYjgxNTdhMTdlYzA0ODM2NjA0MTE5MiBsZWdhY3ktdHJ1bmsKKzMyMTM5IDE3NGNlNGNkZWM0NzI2ZDkxMTg0YzdjN2ZkODljNDMwMGU0MzY4NDMgbGVnYWN5LXRydW5rCiszMjE0MCA5MGM3N2I4YWYxYTQ5NzQ0NjBmMjZmYjJiMzdkNzVkY2NkNTRhYmIyIGxlZ2FjeS10cnVuaworMzIxNDEgOTQwMDUwNGNiMGIyNjFlMDMzZWRkZjI4OGMyNjE5MmNmZGQ1MWMzMSBsZWdhY3ktdHJ1bmsKKzMyMTQyIDRjNTk2ZGQ2MGMyMmQzMGQ0ZGViZjg2NzRlMTQ0YTkzNGI0ZGEzODggbGVnYWN5LXRydW5rCiszMjE0MyA3OGY4NDZmYjU3MGEwNjMyYTc2ZTdiZTI4ZDUwMjliY2ZiMzk4NDNlIGxlZ2FjeS10cnVuaworMzIxNDQgMzY4YmViZTMyNzQzMzkwMWM2NjdlZmVmMWI1ODU1OTM3MWM2NzcyMCBsZWdhY3ktdHJ1bmsKKzMyMTQ1IDI1ZTc0Njc4NzFjNTg3MmI5YjcxY2Y4NDdjOWMzNTJiNTY1NWEzZDggbGVnYWN5LXRydW5rCiszMjE0NiAyYTMwOTVhNDE1YjEwYmExMDM1NzM0ODFhNzFhNGIwNDM3MjYzMmZmIGxlZ2FjeS10cnVuaworMzIxNDcgNjY1M2E1NjAwMmVmOWQ4MzE2ZGI4YTNmYTRkNjA0OTAxNDliZDBhMyBsZWdhY3ktdHJ1bmsKKzMyMTQ4IDk2NGJkOTdhYzFmNWJkM2Q5NTM3ZWIwNDM5NjA0MTg5MjQyM2Q3ZDYgbGVnYWN5LXRydW5rCiszMjE0OSA0ODdkZjI5NGQzMjgxMGM4ZWFmMTUwZjJmNWY3N2JmZWRkMjIwNjZjIGxlZ2FjeS10cnVuaworMzIxNTAgYzAxZmRjM2E5MTgwNDJkOTQxZWQ1ZWM3MGQ2ZWI0N2ZiODdkYTQ2MSBsZWdhY3ktdHJ1bmsKKzMyMTUxIDRmZjYxMWIxNjQ4NDkzM2YwMjM0ZmQwOGM2MWY5YTI3YzE0OWQ3MGQgbGVnYWN5LXRydW5rCiszMjE1MiA5MmQwMWYxMDJjYTA5OTNlYjE0NGI1YjdjMzY3NzAxNGM4ZDNjMTNjIHJlbGVhc2UyMi1tYWludAorMzIxNTMgYjViM2U2ZjNmMzE3ZWQ4ZDQzOTZhNzdhNDUxOGFkMWMxZjJjZTNlZiBsZWdhY3ktdHJ1bmsKKzMyMTU0IDViNTQ2MmFlMzE0ZGRkMzU3M2UyNzRiMmNkZWVhMDA5ODMwNmU2ZTQgbGVnYWN5LXRydW5rCiszMjE1NSA1ZmE4MzQ0ZDZlNmYwMWQ1MmFjMDk0NjJmZjlhOTZlODMyMjc0ZjM2IHJlbGVhc2UyMi1tYWludAorMzIxNTYgOGJmMDg0YzRhZDlmNzRiOGEzNTEwNDIyZWY1M2Y3YmRjNmYyY2ZhNSByZWxlYXNlMjItbWFpbnQKKzMyMTU3IGJhNzE2MjI0OTc0ZTk3NjlmODdjMjk2YjIyMzAzYjIwNDQ3MDllZmYgcmVsZWFzZTIyLW1haW50CiszMjE1OCAxNjM5ZjYzNWQ5ODNiOWZjNDcwYTc3MzQ5ZWY4OTQ5ZTBmNzYyMzA5IGxlZ2FjeS10cnVuaworMzIxNTkgODc4MzY2YjBlOTdhYzcxNWEyYWMzNTA4YjVlODI3NWQ2NzhjMmIyZSBsZWdhY3ktdHJ1bmsKKzMyMTYwIGYyMTNlZTZjZTU1ZWU4ZmEzYzE0YjY1OTBlZmU4NmU1ODIyOGY5MmUgbGVnYWN5LXRydW5rCiszMjE2MSBiOTA2NGVhMDU5M2VhMWQ3MzQ3MmJmNjZmZGFjMTA5ZGQ4NDlhMGYyIGxlZ2FjeS10cnVuaworMzIxNjIgYWUwYWViMGQ2MzFiYzVjNWNhM2YwZmUzNTIxM2M1MjliMzY3YzUwOCBsZWdhY3ktdHJ1bmsKKzMyMTYzIDQ2OWZiNmNlOTY5MzUxZmIzMDc2ZmY4M2E4NTkwYmYxYjg5NzM5MjMgcmVsZWFzZTIyLW1haW50CiszMjE2NCBjN2JiMjU0YWI4OTBlMWI5NTI0Y2U0Yjc1Yzk4YmZjOGE1NWM0ZDU3IGxlZ2FjeS10cnVuaworMzIxNjUgNzExMDNkZjlkNjRiMDdkYzNjMTA3NWMxOTliNTk2NmE0MTdmYmJiMyBsZWdhY3ktdHJ1bmsKKzMyMTY2IGJiZWQ3ZTEyYjg0MjJjMDkxZWVlMjE3NDk1N2EzNmYzM2U3ZDBhMWQgbGVnYWN5LXRydW5rCiszMjE2NyA4OTg0ZGYyZGMyN2IyNzBkOGMyOTAzMzE1NzMwODVlMjlhZGZjYTgyIGxlZ2FjeS10cnVuaworMzIxNjggYjYxYTllMjFhNjZkY2E1OWZlMThhY2RmZTg4OTJmMDZlY2MwZDBkNSBsZWdhY3ktdHJ1bmsKKzMyMTY5IDM0NDgzNzY5MDc4YjMzMzcwYWRmZGY3ODIwZGI3M2ZlMTc2NDJiZTYgbGVnYWN5LXRydW5rCiszMjE3MCBlOTMwYmViZWM4YzBmNWRkM2M0MGY5MGNmM2IzNWM5NjFiNDA3OTEzIGxlZ2FjeS10cnVuaworMzIxNzEgZWU4ODUzY2M4Y2ExZjY5YTg5NzM4NmE5Y2ZiNjFjMThlZjQ2YTc3YyBsZWdhY3ktdHJ1bmsKKzMyMTcyIDAxN2QyZTNlYTJhZTRiYTZkZDQyNzVmNTI1NTI2ZWJlOTEyNWE2MjcgbGVnYWN5LXRydW5rCiszMjE3MyBmZDQzNGJlYjVmNTYwNzliMzQ5ZDMyMmY3YzkwNzYzZjNmMDJjNmU0IGxlZ2FjeS10cnVuaworMzIxNzQgNmFhMWMwODI2YTM5YmU2ODM0NDI5OWYxZGQwN2ZjZmU2MjUyNTQwZiBsZWdhY3ktdHJ1bmsKKzMyMTc1IGQxMGRiYjk0YzllZTFiZmY5YzE0ZTZjNWYwODc4MTU3MzEyZjY1OTQgbGVnYWN5LXRydW5rCiszMjE3NiAyZDRjMWU0ZTViMzZiNTQ0OTkyMTY2NTZiNjVmNzMzMDJiYTkyNDI1IHJlbGVhc2UyMi1tYWludAorMzIxNzcgZGI0Nzk5Y2EyMDIxYmNmNTVkOTI3YWZlMzQ4MjM0MjNkNDdiOGRkNiBsZWdhY3ktdHJ1bmsKKzMyMTc4IDlhY2RjNmM0NDE2YWM1MjI4ODI1NzhlZjg0ZjIzYjEwZWRlNTY1YTAgbGVnYWN5LXRydW5rCiszMjE3OSBiMzdiMjk4MjA4NmJjMzMzMTE4OTYyMjEzYWExNjYxMzhkZDBiMDQzIGxlZ2FjeS10cnVuaworMzIxODAgNjJlODgzZTJkNTE3MTFmMDA4ZjEzOTgzZTBlMTQ5YmM5MjhmOWNmZiBsZWdhY3ktdHJ1bmsKKzMyMTgxIGU2YmYwOGRhZGQ1YzIxNzYwNWVlOWRmY2IxNDEzZmUxMWIwOWZlM2YgcmVsZWFzZTIyLW1haW50CiszMjE4MiBiNDQ4N2EzYjVmMWExZDFiZjM0NDIwZjlhZGQzNGFjZjVlZjk3NzU4IHJlbGVhc2UyMi1tYWludAorMzIxODMgNzgzOTVlNWI0NzgyY2MzNDkyODg0ZmMzZTljNTVkMDk3NzVkZjFiMyBsZWdhY3ktdHJ1bmsKKzMyMTg0IGJhMmQ4OTIxYThkYTAxOWI4ZjIwMzIyNzIyZmI2ZWY0NmY1Y2E4MzEgbGVnYWN5LXRydW5rCiszMjE4NSA4NGFjYmEyMjc5NTQyNGNmZGU1YzE0MzgzZDMyMDkzNTg0YmVlODNlIGxlZ2FjeS10cnVuaworMzIxODYgYWZmMDgwZjJlZmI0ODY4YmY4YWE2NzYzZjY0OTdiZGYzZDMyZjZmYSBsZWdhY3ktdHJ1bmsKKzMyMTg3IGU5MmMyNWQ0MjhiODdmMDIyYmRkYzFiYTBkMzE3ODhlZDY0ZDU0ZTIgbGVnYWN5LXRydW5rCiszMjE4OCAyMWY3Y2ZmMTc5MGZkYzhkNTllNTFjN2MzYjhhNzllN2UxYWIwYTYwIGxlZ2FjeS10cnVuaworMzIxODkgY2Q1MDExMjE3MTViMDY4YTM1OGMyYzA1MmYxMTdjOWFhOTA2NGY1MyBsZWdhY3ktdHJ1bmsKKzMyMTkwIDdhNjI4MTQ5M2QyYzY3MTA0N2MxZGZkNTU4NTBiNGJjNzA5NDBjMTAgbGVnYWN5LXRydW5rCiszMjE5MSBmMjFjZDA3OWQxMDgzNWY0MTQxNDNjZGU0MWY4OTVhMTA1MGFkYjhiIGxlZ2FjeS10cnVuaworMzIxOTIgNmU3ZWZkNmMyNTEwYTJiMmQxY2QxYjVmYjdiMGVhMzA2NWMxYzg4ZSBsZWdhY3ktdHJ1bmsKKzMyMTkzIDlkZGM0OThiNzAxM2I4NmU3MWI4OGFiNjAwMzkyZmI5NTE4ODAzZDUgbGVnYWN5LXRydW5rCiszMjE5NCBiYzg5MjNmZGQ4M2I1ODhmYmFjZGY1NGQyYTgzYzkyYjljZTdiNWIxIGxlZ2FjeS10cnVuaworMzIxOTUgZDA4ZDdiNGJlNTMyMDEzMjEyZmZiYjAwYTVlNzk5ZGMwYmRkZjU1YSBsZWdhY3ktdHJ1bmsKKzMyMTk2IDc1MTEzNzU5MjUyYzc4OGMxNjI3NzI5ZjczNTZjNThhM2UyNDc4ZjUgbGVnYWN5LXRydW5rCiszMjE5NyBiZmM3YTlmYTM0ZDZkYjIzNGU4OTE4MjMxMDljYjQxNzA1ZGQxMTk5IGxlZ2FjeS10cnVuaworMzIxOTggNWZiZGNhZWY5ZGRhYTIzMjVhNzQ1NGU1OTM0NmVmYjJjMjEyMjI0OSBsZWdhY3ktdHJ1bmsKKzMyMTk5IGZhZWI3MDhiYWNjNDIxNjY3ZjYwYTNhNGY2NzA1Y2I5MTEyMDcyNzIgcmVsZWFzZTIyLW1haW50CiszMjIwMCBkYTc0YmRkOTM0NDFiZDQwMjQ2YjljZDk2MTY0YmQ5NDE0YjZlYTQ2IGxlZ2FjeS10cnVuaworMzIyMDEgYmUyZWNhZmIxNWFkMGVhMDI2ZmE5NmJjMjFhY2Y1YzFkNTMzZDYxOSBsZWdhY3ktdHJ1bmsKKzMyMjAyIDIxNWYxZjQ4NTFhNDYzOWFlY2Y2NDIxOTdlNzNkZmNlYWY3N2UyNDIgbGVnYWN5LXRydW5rCiszMjIwMyAxYmQ1MGMyODIwM2ZjZjI3ZTMwZGJjNWQzZTAzYTg1MzliNTJiNDc3IGxlZ2FjeS10cnVuaworMzIyMDQgZjMwMWVhZWRkZTg1OGJkYTdkMDAyYzg4ZmU1NjljZmRlYjJkODEzMCBsZWdhY3ktdHJ1bmsKKzMyMjA1IDhiNDk0NDVjMGEwZTAzOTBiZjA1YmIxMzY5OTQxNGQ5YzFhZDYwNjkgbGVnYWN5LXRydW5rCiszMjIwNiA5ODEwMzJlNjQ3MzYyZjA4MWE4OTFkOTExY2E0NzQ4NmJjMTkzY2JhIGxlZ2FjeS10cnVuaworMzIyMDcgYTVjNWRhNTQ2YzI5MjhjN2RmMTU4NjgyMzljYTBkMWVkMTJjNjcxMSBsZWdhY3ktdHJ1bmsKKzMyMjA4IGMyYWQ2MmY0ZWE5YjMwYjVhZTAzZTdhMzFjNWEwOGM4YjBjMGJjYTIgcmVsZWFzZTIyLW1haW50CiszMjIwOSAwM2JiMGM0MDhkNTczMThjYTViZThlOWY5NTJmYzkxNWUzMWE0MjcyIGxlZ2FjeS10cnVuaworMzIyMTAgYTBjMDAyMDUwNTI2NWE4ZTM4OTdkZDYyNDRjNjJkOWRiNWYxYTFhOSBsZWdhY3ktdHJ1bmsKKzMyMjExIGMzNmJkMWM4MzZiOGM4MGNkZjZkODc5OTlhYjIwMDRiYmY2NjRjZTYgbGVnYWN5LXRydW5rCiszMjIxMiAwZDI2OGM2ZWYwMGFjZGU2YTAxODBmMGQ4ZmU2YjMyNDEzMzNiNWVjIGxlZ2FjeS10cnVuaworMzIyMTMgOTRhOTg2NWFhMWM2NDQxOWMzYmI0OWM4M2JkMGExNTNiZWM4NWUwNSBsZWdhY3ktdHJ1bmsKKzMyMjE0IDhjOTMwNzViOWNiNTUxMGJhOTNhOTE4MzIzZTA1Y2Y0MWQ4MzgzYWEgbGVnYWN5LXRydW5rCiszMjIxNSAwMmM4N2YzNDhlZGIyMmY4ZTVjMTIzZjQ4ZTJmOWNiODFiMzNlODFhIGxlZ2FjeS10cnVuaworMzIyMTYgYTU3ZWU3YjJhODc5ZGUwMmJiNTU3ZWQ4ZGQ1Y2EyYTM0MzFiYzg1YyBsZWdhY3ktdHJ1bmsKKzMyMjE3IDk1YjZkZDA0ZGE4ZmRjMWQ4ZGFkODY1NzYzNmM2YTdiZDJjMjEwYmIgbGVnYWN5LXRydW5rCiszMjIxOCA4ODNhNjk0Nzk1ZjU3MDNjYjQxZWNmYjVjYTkyZjYwMGJiZWRjMjc4IGxlZ2FjeS10cnVuaworMzIyMTkgZWYwNWY5ODFiYzRiOGRhYjFiYmQ4OWJhYTUxY2Y0NTI2ZWE4OGM1ZCBsZWdhY3ktdHJ1bmsKKzMyMjIwIDZmMTNhZGRlMWI1MWJiNDkyOTQ2YWFlMGRhMjZjYzIzNGYzMzcwYTcgbGVnYWN5LXRydW5rCiszMjIyMSBkZTUwOTM0ZTExNDViZjZkOTBiNjU5NTlmNmNlMTg2ZjJlMDUyOTBkIGxlZ2FjeS10cnVuaworMzIyMjIgMjJhZmRlMjZiM2QxNjZhYzBmMjZhNmE0NTlmZmZjNmYyZjNlMmZjMSBsZWdhY3ktdHJ1bmsKKzMyMjIzIDlmZWRlNzAwM2M2NWY2ZjZlMWIxOTU3ODU4Njk0NzJlZWI5ODc0MDkgbGVnYWN5LXRydW5rCiszMjIyNCBkMmQyMzJlMjQyN2JmNzRlZWZmZGM1NGIyYzdmMWNlYzkzYmFlOTNhIGxlZ2FjeS10cnVuaworMzIyMjUgM2NmMjZiOWY5NmY3ZTY0NjQwODcyMGIzYWRkNWMwZGQzM2FhZDZjYyBsZWdhY3ktdHJ1bmsKKzMyMjI2IDExNjYwZjQzNjFmOGEzNjg5NzU5YWNhYTU2MDFjZmY4Y2MwNDM2ZjkgbGVnYWN5LXRydW5rCiszMjIyNyAxYWVhZDBjODQ1MDc3ZTA4MDc1NDcyMmFmMjkwMjg3Y2Q3MjIzZmQzIGxlZ2FjeS10cnVuaworMzIyMjggNThkYjVmYmQ5YzI4MmE0OTc1ZDc0NWFlYTBmNzA2ZTc4YjY2OTBjNyBsZWdhY3ktdHJ1bmsKKzMyMjI5IDIwZWU2OGNiMGJjNDdjNjczZDBlOTkyZjI0N2I0NTc4ODIwNzQ2YTAgbGVnYWN5LXRydW5rCiszMjIzMCA3ZmUzM2MxNTQxZGZmYWY4MWE5M2Y5ZjI2ZDEwYjcxZWEyZmEwMjJmIGxlZ2FjeS10cnVuaworMzIyMzEgZWVlNDk2OWFkYmFlMGQxNjQyZmExYTJjNDQ2YzUwNzNlZDZiNzZmZCBsZWdhY3ktdHJ1bmsKKzMyMjMyIDk0NDE2OTRhNzBjN2VkMzk4MzY2MDc2NDJkZjQzM2NhMmRhZTQ3NGYgbGVnYWN5LXRydW5rCiszMjIzMyA0MzZkODEyZjJiOTRiN2RhYjdhYWQyYzk3MDUzMTdkMWVhYmVmY2UzIGxlZ2FjeS10cnVuaworMzIyMzQgZjNiMjRhMmY2ZjRkYTg2YTkyNzBlOWFhNGI1MTRhMzU2MTAyMmY1MyBsZWdhY3ktdHJ1bmsKKzMyMjM1IDgzMjIwNzdkMjM0Y2ZhYjgwYWU5ODZjMzY2MTAzNTE2Mzk3YzM0OGUgbGVnYWN5LXRydW5rCiszMjIzNiA2OTUyMzczZThmZTVjODcyZTYzNzkxNDgwMjYyMjk4ZWMyMzhiNWZhIGxlZ2FjeS10cnVuaworMzIyMzcgNjdkMzZmNGRmZWExMjRhZTg1YzBjMTBkMjhiODMzODMzYWI3MmIyZCBsZWdhY3ktdHJ1bmsKKzMyMjM4IGM3MWI5YmExZjA0YzE0ODI5ZmE5NjU0ZDlkZDUzZDBiYjM3OWQxZWIgbGVnYWN5LXRydW5rCiszMjIzOSAwNzkyY2FhNjM3MWM5ZDFkMjVkMDRiYjBjNzU3NTgxNjI0M2NjZmVlIGxlZ2FjeS10cnVuaworMzIyNDAgYjE2NzE1NTBjN2UxZGM3ODI4MTcyYmIwYjQ2MmE2OTFjNzY3OGViMSBsZWdhY3ktdHJ1bmsKKzMyMjQxIDRjNjU4NTI1M2U2ZjEzMjRkMjEzYWY0YjlmYTQ2ZDFmODQ5ZTE0YzAgbGVnYWN5LXRydW5rCiszMjI0MiBiNGI4ZmUyYTYzMmMzYmNiNDUyYmMwNDBkYThkMjM4Y2E4NzM4YTllIGxlZ2FjeS10cnVuaworMzIyNDMgNGYwYjdhY2ZmYzdkNGM0YzdlYjQyZDNjMGIwOGNjYTI5ZjU3YjU5YSBsZWdhY3ktdHJ1bmsKKzMyMjQ0IGQ1MzU3YWFkZTRiNzMwNjQ3MGNhZjg0ZmEwZjFlYjI5MmYwZGQyYWMgbGVnYWN5LXRydW5rCiszMjI0NSA5ZmRmYTczNjU3OGQ3MzZkNzA4YTQ3NGU1M2M2NWRjOGYwN2FlNTk0IGxlZ2FjeS10cnVuaworMzIyNDYgZWI1NTE4OGYxNjNhY2VlN2EzYzlhZTc5MTJlOTMzMGUyNjQyZGQzNyBsZWdhY3ktdHJ1bmsKKzMyMjQ3IGRkZDkwNmVmZmQ5YzNiNjVkMGUxM2M5ZDg1NWZjNTM2M2MxM2NlMmIgbGVnYWN5LXRydW5rCiszMjI0OCA4MjRkYzI4ZjkyMmQyOTljMTc2YmI3MzY5MjcyNjQzMjNmZDc1ZWU4IGxlZ2FjeS10cnVuaworMzIyNDkgNmMwMDA0NjkwOTQxOGI3MjFiY2FkNDExZjk4YjkxZTdhNGUyYzYxMCBsZWdhY3ktdHJ1bmsKKzMyMjUwIDgxZTViZjYyM2VjZjc1OGJjMjVjNjJjYmIxZWJkNGVjMTIwZGVkOTIgbGVnYWN5LXRydW5rCiszMjI1MSBlODBmMThhNDljYzlhYzhlMzExZjQxZDhkNjA3MTMxNGZiMDQ3OTllIGxlZ2FjeS10cnVuaworMzIyNTIgMDdkOGUwZWFiM2FmNDlkNThlMzIwMmI5ZTgyNjk0ZTE5OTg1YmUwYyBsZWdhY3ktdHJ1bmsKKzMyMjUzIDJjZmQ5MTZkZDMxMjQ5ZGYyZDQ1NThhZTNiOWJkM2U5M2JhZmNkMTMgbGVnYWN5LXRydW5rCiszMjI1NCAzYzM5MTk1ZGFiOWE0MGVmMzE5MDhmNjRkMGZlODRkZGUzOGFhM2IwIGxlZ2FjeS10cnVuaworMzIyNTUgM2Q5M2MzMDM5Yzg3MWNjZTkxOTc4ZmZjN2I0OGU2NzMxZGFkZDc3YiBsZWdhY3ktdHJ1bmsKKzMyMjU2IDhhYjc1MmRiNDc3NWQ1NTNmNzMxYWZkM2QwMzEyMDlkZGI3ZjgwNTEgbGVnYWN5LXRydW5rCiszMjI1NyBmYTgyZjg2ZWFhMDk5NDBhNjZjZTM5MzRiODU2NzU1NjRiM2Y1Nzk3IGxlZ2FjeS10cnVuaworMzIyNTggMzM5MmYzOGJkMTE0YjhlMTU5YTIxZTIwMmRmMDBjNGY0Y2VjMGViNCBsZWdhY3ktdHJ1bmsKKzMyMjU5IDk0N2MyOTM3YzA5ZTIyMTNlMTU1YjAzNWZkYjk0M2JhZjA5YTFkMmMgbGVnYWN5LXRydW5rCiszMjI2MCBhMjZiNmIyNzVmYjcyZDk4OTdjZTFjOTk3OWIyMTBlNmY1YmYxODVlIGxlZ2FjeS10cnVuaworMzIyNjEgMzZlOWJhNDA1NDkyNTlmM2VlMWU3NGUyZjQ1ODNkODY4YmNmZGU1MyBsZWdhY3ktdHJ1bmsKKzMyMjYyIGM2MjllZDhhOWRiYjNhODRjYzM1ZmU5YzNkYWIyN2E0ZmY1YzllZTIgcmVsZWFzZTIyLW1haW50CiszMjI2MyAxMWY3ZjExODA3MmI2NGZmMDFmZjIzNjI0MjkxNjllZGM0NWFlZWExIGxlZ2FjeS10cnVuaworMzIyNjQgYWNmYTBmZjhjNWE0MDE2YjU5ZWYwNTYxZDJiOWE0YzE2MWU3MmY0MSBsZWdhY3ktdHJ1bmsKKzMyMjY1IDliZTQxMDM4MDdmNWM3NDVmZjliMjUwNjRmYzZmMmY3NjhjNGQxYjkgbGVnYWN5LXRydW5rCiszMjI2NiBiZTBkNGVjNmJmNWE5YjgwZTkxY2E1M2ZiM2QyNzNhZmM2NmJjMDhmIGxlZ2FjeS10cnVuaworMzIyNjcgNDgyNGFhYjEyNTQ5YmIwYzM3Y2E4MDJhMzNlMWM3MDAxNzgwMWZlNiBsZWdhY3ktdHJ1bmsKKzMyMjY4IGE4ZTY0MGI0NzdmNjZkNWI2MTUyMmJkNzljOWM1ODA3MjBmNGE0MDQgbGVnYWN5LXRydW5rCiszMjI2OSBjZmVjZTE4MjJlOTQyMzcxZjdmOTliNGIyM2QyZjY2NjVlZDEyMzhhIGxlZ2FjeS10cnVuaworMzIyNzAgY2EyNDgyMDEyYjNjNjAwZjg2NWQzYWY5Zjg5NDE4ZWRlYjhmMmZmZiBsZWdhY3ktdHJ1bmsKKzMyMjcxIDhlNTQxYjA3OGVkYjUwOWI2Y2RlZjBjMjA3NjEwZGM0OTgzYzI5YmQgbGVnYWN5LXRydW5rCiszMjI3MiBiOTc0NWNkNzkxYmZkZGE3ODAwNmYwYmQ3YjIzZTNjODY0ODMzNzkwIGxlZ2FjeS10cnVuaworMzIyNzMgMTkzYjhhZWMwMGNlMWJlMmYwM2FhOTY5OWE1ZDZmNjUxNmNmNzkzMCBsZWdhY3ktdHJ1bmsKKzMyMjc0IDlkNGUxMzg0OTRmYjMxMmNlMjhhODUyNGU5MWIwNWQyNjRmOGQzODcgbGVnYWN5LXRydW5rCiszMjI3NSAwZTg0MTZiZTIwOGUwZWI2MDRjZmZmZTdjYjU3MGY2MzZiM2MwM2QxIGxlZ2FjeS10cnVuaworMzIyNzYgMDRiMTcyODQzMjkyOTgxMjE0OGNiMWM2OGQ4NWRlODc2ZTU5MDgxZiBsZWdhY3ktdHJ1bmsKKzMyMjc3IGQ4YThmNzQ0YTNlNTA4YjVlMTMwNzM3NjI2ZmM0NTY0ZDk1NjVhYjIgbGVnYWN5LXRydW5rCiszMjI3OCA3ZmRhMDlmNzUxYWQ1YjFjOWI0NzhmOTNkNzBiMzY3Njc3MWQ2ODNkIGxlZ2FjeS10cnVuaworMzIyNzkgMjhhMjk3NTUxNGNkNjFkNDM2MDBjODUzZWZjOGQ3OTJmNmRhM2JjNSBsZWdhY3ktdHJ1bmsKKzMyMjgwIDU2MDA2ZDk3YmNlZjBiZTUwYzdiYmY4YTJiYjY1ZDM2OTA4ZDBlYTQgbGVnYWN5LXRydW5rCiszMjI4MSAxZTkwMDQ1NTNlMWQ5MDViNDEwOWNkNzM2Njk5ZmRiYjhkNWJkNTE4IGxlZ2FjeS10cnVuaworMzIyODIgMTZmNDdiZDQzMWM0ODc5MmNlY2U3NTRiMGMwZDRkYTA5MzRjZjFkYSBsZWdhY3ktdHJ1bmsKKzMyMjgzIDJmYWU1Zjc2MzFlZjRhYWU3YTBjMWJkYWI2YzQ1MzcyNTJiZDZkOTEgZ2V0YXJnc19tYXNrX21vZHMKKzMyMjg0IDRkMjI1OWNiNzdhMGUxY2Q3ZDg1NGRkMGQ1MGQ1ODJlZTczZjJiNzggbGVnYWN5LXRydW5rCiszMjI4NSA3ZmExNGYyMGFlYTQyMjMyYjY0YTZhZTA2NDI0MTcwNTEyYzdhNjUwIGxlZ2FjeS10cnVuaworMzIyODYgODgzNjUyOWU5ZTY2NzBhNTVmNzQ1NzE3ZWMyOWE1NjU1YTQzZTYxMiBsZWdhY3ktdHJ1bmsKKzMyMjg3IGVlMTY1ZmUxYjQyZjYzNGM2Yzk2MGIxZjI2ZTU2MjFhOWY1MjZjNTAgbGVnYWN5LXRydW5rCiszMjI4OCA1ZjFlZjE4ODJiMjUxODhlZTA2ZTJhODRiZWNjODdhZDg4OWRjYjQyIGxlZ2FjeS10cnVuaworMzIyODkgN2U2NjVjMTYwNTgzZmI2NjM3OGQzZWM1ZjlmODQ0MDYzNzcyZWQ5ZiBsZWdhY3ktdHJ1bmsKKzMyMjkwIGVlNmRmMmM2NjhlYWNjZGQ5YzAzYTJkMjQ2NzdhZTcwMTQyZTA2N2YgbGVnYWN5LXRydW5rCiszMjI5MSAxMmQ0NDA5ZTU5ZTMwM2EzOTc4ZjVkMGI0MzNhN2U4ZDY3NTY3OTQ2IHJlbGVhc2UyMi1tYWludAorMzIyOTIgZTMzZmVkYjU4MWY0YjA3YTlmODQ1N2U4MDE4ODk4OWJjMjY4OGUxYyBsZWdhY3ktdHJ1bmsKKzMyMjkzIDIzOTQyOWRjMDI5ZmM4ZDU1N2FjNjgwY2M4MjQyM2I1YzJjY2QxZWMgbGVnYWN5LXRydW5rCiszMjI5NCBhOTM4YjEzZTAyOTExMjM4MmFmNDA1ZjhkYTJiMjFmYzIwN2U0YmQ1IGxlZ2FjeS10cnVuaworMzIyOTUgNWJmZGJjMGZkMTcyMmE4NDMzYzM5MzhkZmZkNDM3NTA0YjI5ZTdjNSBsZWdhY3ktdHJ1bmsKKzMyMjk2IDA0NmJjOWQ3ZmIwZTQzM2M0NWYxNzc3MjY3NDcxNmZmZTIyYTE0MWYgbGVnYWN5LXRydW5rCiszMjI5NyAwZDhkNGM4ZGM2OGJiODg5YmU0ZDNhNWNlZjZmMTc2ZWYyNTM5YmE1IGxlZ2FjeS10cnVuaworMzIyOTggYzU1NWNkMDJiMGY5NjNjZTA0MWU2ZGNjMmZlZTY0NTQ1NjViN2YxMyBsZWdhY3ktdHJ1bmsKKzMyMjk5IDE5MjU0MTM0MzFhNmVjMjhmYzg2YTlmNjc5OWNkNjgyYWMzMmUxZmEgZ2V0YXJnc19tYXNrX21vZHMKKzMyMzAwIGZkYTJmN2Q3ODNjMjRhZjNhYWMzNTM5MTUwODUyY2I3Y2RiMWM3MDIgZ2V0YXJnc19tYXNrX21vZHMKKzMyMzAxIGQ0MWQ4ZGU5NzY4ZjM3ZjE3MWU3M2EwN2FlNTdiNDY1YjE3ZGI5ZWQgbGVnYWN5LXRydW5rCiszMjMwMiAyYTIzZmM4MzcyMGZhMTI2NGMzYzVkYTU2YTMyNjMzMDMyNTdlODUzIGxlZ2FjeS10cnVuaworMzIzMDMgYzFiYTUwNzkwYzgzODQ4NWJiZGJkM2U4NWZiMWYzOTVkYzVhMGUxMyBsZWdhY3ktdHJ1bmsKKzMyMzA0IDllYjY5NjRiNGI2Yzk4OGQ4NmVjZTRhZDEzNzdlNjVjMjgzMDRiYmIgcmVsZWFzZTIyLW1haW50CiszMjMwNSAxNTU2YTM4ZDUyNzgxNTQxZDk5YTQwNzBiNDJmYjk0M2MzYzg5MWVmIGxlZ2FjeS10cnVuaworMzIzMDYgNWZmMWYyZjlmYzM0OTNmM2JhY2EyMzU3ZDU0NjdhOWZiNTJlOWRlZCBsZWdhY3ktdHJ1bmsKKzMyMzA3IDE4MTUxNjZlODA5Nzg3NWUyNmMyNjQzY2E3ZTkzYTQ2MmQ0MGViMTMgbGVnYWN5LXRydW5rCiszMjMwOCAzMWNiOGUwMjYwZGI1MTAyYjBhYjUwNmM0YWVlMzljOWQxMjQyOGFlIGxlZ2FjeS10cnVuaworMzIzMDkgYWIwYzA2N2ZlMjg2ZmJkMzAzYWNlYzE2ODgzNzQyNzRiNTg5NjYyNyBsZWdhY3ktdHJ1bmsKKzMyMzEwIDI3NjM1MmJmY2I0MmI0MWFhZTk2NjE0ZmFiM2RlMzIxNjFjZTNmODIgbGVnYWN5LXRydW5rCiszMjMxMSBjYTY0YzFiZTIzMGJhY2U0YTNiZTJiMTAzYzkzMDQwOGIyMTIxODdjIGxlZ2FjeS10cnVuaworMzIzMTIgY2Y0NWFkM2NhNGI3NWRkY2RiYzUxMmQ3MmI5M2IzZmMwZDU0MTRiMCBsZWdhY3ktdHJ1bmsKKzMyMzEzIDQ2MmE0YzMxMThiYmMwNjgyOWNhZjFkMGMyOGFmY2Y0YTM2NzE0ZGQgbGVnYWN5LXRydW5rCiszMjMxNCA4YmQzNGRkNThhOTJhYTMzNDczZjlmOTdlYjI3NGNiN2NiMTY2YjM3IGxlZ2FjeS10cnVuaworMzIzMTUgYzViZDhhODQ1MjIzOWYzNmJlMjMxOGE2MzQ0YzU2ZDc4NTk5NzdhMiBsZWdhY3ktdHJ1bmsKKzMyMzE2IDcwZDZmOGIwZmM2OTQ1ZTcxZjQ0MzhjZTA3YjRhOTFjYTEzMGMzMTggbGVnYWN5LXRydW5rCiszMjMxNyA0MGQyODdjM2Q5MDYyMGE3NzY1MzAxNTg4OWRlZDViYmI4NDY0ZDZhIGxlZ2FjeS10cnVuaworMzIzMTggZDBhZTYyMGFmYmQ0ZDQxYjhhNjVmMTI1MDUyYWM5MGUyNGU3ZDZmNSByZWxlYXNlMjItbWFpbnQKKzMyMzE5IGVkNWVjZDYzYzFjZjliN2Y0ZjI5OWM4MTJiODY4ZGU4NWEwZTczMGQgbGVnYWN5LXRydW5rCiszMjMyMCA5NjQyZmI0Y2RhMmZlNGFmNTZlMGI4Yzk4YzhkZjVjNTUzMjI2MjIzIHJlbGVhc2UyMi1tYWludAorMzIzMjEgYzk5MjVmYTI5ZWEzN2U1NTg4NDg2ZDk3NTI2NTlkYmRjY2ZhM2Q0NiBsZWdhY3ktdHJ1bmsKKzMyMzIyIDA2ZDEzN2E0MjdlOTYxMWQzZmIyNjBhMjEzZGY0MThmY2FlOWM3N2UgbGVnYWN5LXRydW5rCiszMjMyMyA3OTIyZDVmNDM4NTQzYTU3NjVkZTY0ZjgwMjI5Y2UzMTcxZDIwMzQ3IGxlZ2FjeS10cnVuaworMzIzMjQgYTQxNTRkZDU5MzlhYTZiYjNhMTEyODkzOWU5MDc0ZDZiMTM4M2QxNSBsZWdhY3ktdHJ1bmsKKzMyMzI1IGQ2YWZlMTk2ZWY4MjA4M2ZmMjIyNjIwYzlhYTU5NWVmY2M1MzlmYjMgbGVnYWN5LXRydW5rCiszMjMyNiA2NThiMTBjNWJhMmEzZDZiZTE2N2YyZjRkN2ExMWUzYTdiNjE2NjBkIGxlZ2FjeS10cnVuaworMzIzMjcgMDE4MTcwYTRhMmQ3YWMyNTBhZWRmMDc3ZmI5NjhlNmFjOTY4Yzg3ZSBsZWdhY3ktdHJ1bmsKKzMyMzI4IGFlZjAxYTA3NmVmOTY3YWU3OTNjNGQ2M2M3MjQ0MGI1MTMyZGMxM2QgbGVnYWN5LXRydW5rCiszMjMyOSA5Nzg5MDEzNGM5YzQ0MzkzYmIzNmEzODI3YzA3YjU1NmFiMjA1Mzk2IGxlZ2FjeS10cnVuaworMzIzMzAgNDFmNDU4YjhkYTIwYTMzNGVlYzY3ODE4ZWRkOTg2ODI3OWE1ZTQ0NiBsZWdhY3ktdHJ1bmsKKzMyMzMxIDQyZGU1MGUxOTJkZjViOWU0ODA2MzNhMjNjODY5OGZmZmNjMDA5ZjUgbGVnYWN5LXRydW5rCiszMjMzMiBkNmUxM2QxMjEwYzZiNTg1MGZhMTUxODFkNDBkYjliODA4OTVmMDY5IGxlZ2FjeS10cnVuaworMzIzMzMgMmNlMzlhN2JlNzlkOWE1YjE3ZThkY2Q3ZDA4NzEyYmY3NGFhODJiNSBsZWdhY3ktdHJ1bmsKKzMyMzM0IGZhNzg3NGVjNmE3MWVlOGM5OWMzMjJjMmI4NGRhMTEwYzJhNTA2YzAgbGVnYWN5LXRydW5rCiszMjMzNSBiZTE0OTcwYTk5NTUyMmZlZGFhODlmYmM0NzVmYjE0NzgyNWQwYjVkIGxlZ2FjeS10cnVuaworMzIzMzYgNTI5MzBiZTlkZmVhNWE1NWI0Y2Q4MjFiMDRhZThhNjNmNzg2ZGRkZCBsZWdhY3ktdHJ1bmsKKzMyMzM3IGRlNzY5MDUyNzU4NDNlNzlhNjRiYTUxNTcyZTk1YmE3MGE4Y2EzNzcgbGVnYWN5LXRydW5rCiszMjMzOCBlZGNmZGIyYTg1MmU5YWYzZWQ5ZjdhZTk1NTIyNDc1OGE0ZTkwMGI0IGxlZ2FjeS10cnVuaworMzIzMzkgMjlmM2IyMzc1MDQ5ZWYwNjgyN2U1M2IxYzMwZDU3N2ZlNjEzMTUzOSBsZWdhY3ktdHJ1bmsKKzMyMzQwIDE0OWJkMGVmOTRmYjg0ZGU5YmNhMmEwMDA1ZGI2Yzc0YTdlMmQ2YWIgbGVnYWN5LXRydW5rCiszMjM0MSA4MjBkOTU3MGVkZWJjM2MyYmQ4ZmZkMDVkOTQxNGQ4MGU0YTkxZmUxIGxlZ2FjeS10cnVuaworMzIzNDIgZDMxMjdiNjcxZDM2YzM4ZDhkN2JjZDRiZDU4Y2VkNTRmNGVlYzc3MSBsZWdhY3ktdHJ1bmsKKzMyMzQzIGQwOGQxNWE3MDI5NTBiNTdhZDJiNWRjYzdmZDJhYzkyMjVmNjMwYTEgbGVnYWN5LXRydW5rCiszMjM0NCBlYzJhMGYxNWMxNGNkMTlkNDQ5NDNjY2ZmYTliODJhNzlmZGM2NzFhIGxlZ2FjeS10cnVuaworMzIzNDUgMWQ4ZTg0ZDk2ZGRlYzZkZjE3MDZkODhhM2I1ODdjOGJkODcwZWE4ZCBsZWdhY3ktdHJ1bmsKKzMyMzQ2IGFiNGZiZjhlYmFiM2IwYjU4MDZhNmI0MWRkY2MyODkyYTk0YmZjZGYgbGVnYWN5LXRydW5rCiszMjM0NyAxM2QwYTNjNGU0NjU3NWJjNzJkZWYzOGM0NDk3NDVjODU0MTY3ZjdkIGxlZ2FjeS10cnVuaworMzIzNDggMTZlZjViOWJjNzg5Y2I5YTM4NTQwZDUxMjFlYzI4MjRkNDBkNDczNiBsZWdhY3ktdHJ1bmsKKzMyMzQ5IDVlNmZmYTY1NTQ2MjM0Y2IyOGExNWE2NGRjZDgzMTBiMzMzNmU0NDMgbGVnYWN5LXRydW5rCiszMjM1MCAwM2FmNDZkMWFjMjg0MDU2NzU1MWRjZDhhMTIyZGMzMGIzMzQ1OTAxIGxlZ2FjeS10cnVuaworMzIzNTEgNDY0OWYzMThmY2IwMmRhZmJlZTJmNjE5OTQ3M2YwODFhNjk1NGZjYSBsZWdhY3ktdHJ1bmsKKzMyMzUyIDgxNjBiYzc4YzkzYWIxYTYyMmViODc1ZjlhMjA0NzM0ZDIxMGE1ZGYgbGVnYWN5LXRydW5rCiszMjM1MyA4OTIwNWY1YmI0NDBiZmNhYjVkZjBmOWJjMmE0MTgwNWM5MDA2YzAwIGxlZ2FjeS10cnVuaworMzIzNTQgOWVhMGNjZGRiZWFkMzY5NGZmMzIwOGQ4YjcyMTUyNWZkZGExYzJlZCBsZWdhY3ktdHJ1bmsKKzMyMzU1IGRlNmQxZTdlOTgyNTcyNDJkY2U0NDIxMmRhNTdlY2FkNjQxYjQ0ZmUgbGVnYWN5LXRydW5rCiszMjM1NiBhYzhkYmJlNjI0MzJiOTRmM2Q2MDA2ZTk4Yjk4YzFhMmVjYTA5NTBiIGxlZ2FjeS10cnVuaworMzIzNTcgMDUxYTRmMTJjYzQ2MjU3MTc4NTNkODM1YzMxMGZjNTE0OWIzNmJhMyBsZWdhY3ktdHJ1bmsKKzMyMzU4IGY5NjhlOTNlM2NlMDE4NzE3Njk4YWQxNGM0MjZjZDEzNWQwNjgzYWMgbGVnYWN5LXRydW5rCiszMjM1OSAzMWNiZDQ2ZjBjN2Q2OGRiMGVjMzk3MDRjODMzZGZiOGNkYmQxZjU0IGxlZ2FjeS10cnVuaworMzIzNjAgYWM1ODYwOGNkMjNjZTg2ZTViYmM1MzI1ZDYzNTE5OTYzMmUzYWMxOSBsZWdhY3ktdHJ1bmsKKzMyMzYxIDg2ZjQ5MzNmYTQyOTVlMWVkZDNiMDBmNjA1YjMxY2JhYzMzNDUxOTYgbGVnYWN5LXRydW5rCiszMjM2MiBiYTkwOTIzNmViMTNiMTA4ZTA1MjJmNjZlODA4YWMyZTQ0YmY4OGZiIGxlZ2FjeS10cnVuaworMzIzNjMgNDNkMzJmNGY4OTEzODQ3NDg5ZjM2MDBlZmNmY2RlMjVlMWFhYmQ0YiBsZWdhY3ktdHJ1bmsKKzMyMzY0IDVjODg2ZTAzYjQzZTQxY2I3MWY2NGYyZDZjYjA2MGJjZWY0MWZmY2EgbGVnYWN5LXRydW5rCiszMjM2NSA3YmJhM2UyYmU1NGU3ZWFhNTAwMmY2OTAzYmYwNzA0NjAyNmJiYzdhIGxlZ2FjeS10cnVuaworMzIzNjYgYWE2MzRhZGI0MWE5MDBhZDhjOTc2MDFlNDIwY2Y0OTVhZGI0OTBlZiBsZWdhY3ktdHJ1bmsKKzMyMzY3IGQ3OTI1NDRhYjExMWY0NDJjOTZlZDRiMGExNzdiY2M0OTU1MmIzNzAgbGVnYWN5LXRydW5rCiszMjM2OCA1MmYzZDkwYzE3ZTgzZGU1MzQ1NGQ4ODE1MjY2OWJhYTc3YmM2YjY0IGxlZ2FjeS10cnVuaworMzIzNjkgY2VjOWQxM2M0M2ZmN2RiODJhYjgwZDYzMGFjYjM2YzU4NGQyOWZkZCBsZWdhY3ktdHJ1bmsKKzMyMzcwIGQzMjk3ZTI5ODIxMWI4YzdiYTUxNmY2OTMzM2MwMGQyOWM1OWQzYjYgbGVnYWN5LXRydW5rCiszMjM3MSA2NmNjZWI3NTYyYjU2YTkzNGZmNjBlYTFlZjMxMmYzZDRjNDFiNTc3IGxlZ2FjeS10cnVuaworMzIzNzIgYmQ2NzhlNjVmNzg0MzIwZjQzYmMzZGMyYmU4ODk4YzZmNGFkMjk3ZSBsZWdhY3ktdHJ1bmsKKzMyMzczIDZlMmU1OTg1Mzc1YzYyNDdlYzZiZTA1ZGE0MDA0NGY5MzdkM2NjYzkgbGVnYWN5LXRydW5rCiszMjM3NCAwMTRjZmFhN2E3ODRmYmEwYTI2MmZkMzQzYjQyMTNhOWFlMGUwYzhjIGxlZ2FjeS10cnVuaworMzIzNzUgMWY5NjA0OWE3OWQ0Y2Y5ZjI5Mjk5MDMwMzdkOGIxNzFlODQ0OWUxNiBsZWdhY3ktdHJ1bmsKKzMyMzc2IGMwYTI2YzVhNzkzNjQ3MGUxOWMyYjc1NDM3MzIzNTg0OTM4ZWQ1MDAgbGVnYWN5LXRydW5rCiszMjM3NyA1NjNiYWEzZTQyOGY2OTQ2NWJjNGQxODk5MTQzMzA4YTNkMjNiN2U5IHJlbGVhc2UyMi1tYWludAorMzIzNzggYjQ5ZmYwNGMxOGRlN2VkMGU0ZDdlZjU5ZGQzYjI5N2RiNDQxZTdmMyBsZWdhY3ktdHJ1bmsKKzMyMzc5IDg5ZGMzMjY3NDU1NGVlZDAwNTYzNjEzMzQ0YTI3ZWRlYzJkNjRhYmIgbGVnYWN5LXRydW5rCiszMjM4MCA3NTY1MTJmYmI1Mjc4ZDI1MWQ0NWIyOTk3MjQyZjhkZDJjMGI3YjMzIGxlZ2FjeS10cnVuaworMzIzODEgYTFkN2NjZDk1YTVlODNkNjE0ODk4MGNhYThjYjhhMzRkMDNkODZiOCByZWxlYXNlMjItbWFpbnQKKzMyMzgyIDBhZDc0NTNhOWY4Mjc3NTAzMDZlZmU3M2JkMjBhNjgxOGVhZjQyMzkgbGVnYWN5LXRydW5rCiszMjM4MyAwODVmNjgwMDljYWQ4MThjZWI0ZDMzMTM3MGUyNTk3OGQxMmVkMWFiIGxlZ2FjeS10cnVuaworMzIzODQgOWM3YWQxZTQ1NTk2MGNjZTc0NjIzN2FiYzNhZmZhYmZlNzcwMDk4MSByZWxlYXNlMjItbWFpbnQKKzMyMzg1IGRkMDIyZDQyM2I4YTA4ODZkZWY2MTM0NjcxOGE3MDM5ZWZkZDI2Y2QgbGVnYWN5LXRydW5rCiszMjM4NiAwNzE3MjQyMjk1YjExY2IzN2ZhYTA4YWIxZDJiY2E3NjdjZjYwNmI5IGxlZ2FjeS10cnVuaworMzIzODcgOTllODJkYmFmMGNjZDgyOTg3NzY0YWQ3YWRjYmM5MDU0MTMxMTZjOCBsZWdhY3ktdHJ1bmsKKzMyMzg4IDdmMjM2NjdkM2NmYzRhZGRiNDIxNzM3MjIwYzg1ZDcxODBiZGVjODIgcmVsZWFzZTIyLW1haW50CiszMjM4OSAzZGYwY2YxNmRlZmMyMjhmN2MzODJkZWNiYjI3MjNiYzgwZDJhMGYxIGxlZ2FjeS10cnVuaworMzIzOTAgMjJkMTc3NjgyYWUxNGZmMTdmYTE2ZjZmNmYxMjY1N2ZiZjJlMjM0MCBsZWdhY3ktdHJ1bmsKKzMyMzkxIDE3MWRiZGRmMGEwMjE2NzBiNTM4Y2Y1MzQ1NTkyNDY1MmQyNjUzYmEgbGVnYWN5LXRydW5rCiszMjM5MiA2NTAzYWQ4ZGNhODgxN2RjMTA0YWNlOGJjNTg5MTcwN2IxODZhOTBjIGxlZ2FjeS10cnVuaworMzIzOTMgNjM0OGI4NWJjYjlkZTgwYjU4ODZlMWI0N2UwNjNlYTQ1ZjY0ZDIxMiBsZWdhY3ktdHJ1bmsKKzMyMzk0IDljMGFkNjk0ZTNlMjBhM2YyNmZlZjBhM2M4YjQyMjEzODA3MDg5NWQgbGVnYWN5LXRydW5rCiszMjM5NSAyYzc0NDdlZmMyYThkMGUxNmUwZmQ0NmUzOGJkZDU0ZWRkNGZmOWQ5IGxlZ2FjeS10cnVuaworMzIzOTYgNzUzODJkMTAyNzQ5Y2NlOTQwZGQzMGIzNDE3MDMzNWU0MzU4OWMxYSBsZWdhY3ktdHJ1bmsKKzMyMzk3IDYwZWFjYmVhNzE5OTJjMTY3MWU2MTM5MWE4NmNlOGQwNDg0OGVhZjIgbGVnYWN5LXRydW5rCiszMjM5OCA5Yjc5NjA1MTcxZWJkNGY1NTY4ODI5MTc0YTkzYThhZjY5YmYyZjNmIHJlbGVhc2UyMi1tYWludAorMzIzOTkgOTQ2NmI2ZTI0ODMzMmU1YTI2YmE5OThhZDBkYTA1YWM4Zjg2YjU0YyBsZWdhY3ktdHJ1bmsKKzMyNDAwIDAwYjg5NDcyNjIwZDdlNGJhODg0ZWE5NWMyM2Q0MTJjNmIzMDdlNGQgbGVnYWN5LXRydW5rCiszMjQwMSAyOWI2YTQ4ZjRjNDUwY2ZmYTc3NDgwN2JiYTBlZmYwZmQwNTEyNThlIGxlZ2FjeS10cnVuaworMzI0MDIgMGVhNTk5MWY2ZWRiYzRjMjczY2U1OGQ2NTEzN2FmNDE3N2RlNjI4MCBsZWdhY3ktdHJ1bmsKKzMyNDAzIGUwNmYyYmY1NmI0MDY4Mzc0YzkyZmIzMjc4NmQyNjVjM2Y1NjhmOGYgbGVnYWN5LXRydW5rCiszMjQwNCBjOWJlZTExZWFhOGI5ZTVjOWMyYmNiM2QwZDIxNWFkMzlkYWZhODgwIGxlZ2FjeS10cnVuaworMzI0MDUgYmM0MjMxZWIyNzU4NDE2ZjY1MzE0MGVkOWRkNmYwYWYwNjU5NjhkNiBsZWdhY3ktdHJ1bmsKKzMyNDA2IDIxMWMwMmZiNjU3MGFmZTFjMmVkMDQwOWE5OWFiMTE4MjhkMTc5OTUgbGVnYWN5LXRydW5rCiszMjQwNyAzZWJiNGJjZWJkZDdlZDY0NzA2MTk2MmQyOTA2ZjU4YzA5MzA4NzgzIGxlZ2FjeS10cnVuaworMzI0MDggMGQ1MzAyOWI3OTQ5N2E2MWQ4NzFkYmFhMDYyMTEzMjIzMDFmODhiNiByZWxlYXNlMjItbWFpbnQKKzMyNDA5IDcwOGFlYTgyYWRlODcwYWIyYjNmMjJmZWE3ZjAzNGYwYWFjNGI1NjAgbGVnYWN5LXRydW5rCiszMjQxMCA1MWVkOWY1ZTM2YTE4Yzc3MjQ2M2Q1MGVhMzZiYzM3ZDBjYjViZjMzIGxlZ2FjeS10cnVuaworMzI0MTEgNzg3ZDY2NWUxY2RjNzMwM2NiYTllM2UyOTJkNzg2NWU2NDlkMTE4MiBsZWdhY3ktdHJ1bmsKKzMyNDEyIDM5NWYyYjk5Yzc1MmY5MDZhN2MzNTJmMjg0YjE2M2UwOWU3ZWE1MWYgbGVnYWN5LXRydW5rCiszMjQxMyAyYzViZjA5N2RhZjg1NWEwZGFlZTllMWNhN2RhMDhjNjEyMTI4M2FlIGxlZ2FjeS10cnVuaworMzI0MTQgNzQ5ODE5ZjhiMmFkY2E3M2Y1ZGVjZWJlZGYyYTFjNTJkZWRiMTMwZiBsZWdhY3ktdHJ1bmsKKzMyNDE1IDYzZWIwYzk4N2RlN2RiNDAyOTEyMWJjOTdiMGIxYWUzNWZiZDUxZjkgbGVnYWN5LXRydW5rCiszMjQxNiA4YTZlNGM5MmJkN2YyYmQxMjdlMjMxNDE5Mjg4NDVmZTc2MWVkYjJiIGxlZ2FjeS10cnVuaworMzI0MTcgNjgxNjcxOWY0MzljNTlmZDcyNmU1OTIxMWU5NDA1ZTExMmRmOTczMCBsZWdhY3ktdHJ1bmsKKzMyNDE4IDU1ODY4OWI2ZDdmMGViNTJlZjFmNjFhYmI1MzZhZDA4ODYwMGY1ODUgbGVnYWN5LXRydW5rCiszMjQxOSAwMTVkODkxZjM4NzNkYzAzNDg0NzJkOWIwMTAwY2ViYTA5MzVkYzk4IGxlZ2FjeS10cnVuaworMzI0MjAgMjRkMmEwNWY0MWNjYTE4MDJhN2FmOGFjYWJmODAyOTE1Y2I2ZTY1NiBsZWdhY3ktdHJ1bmsKKzMyNDIxIDY0ZDdiODc2NzIyZmQ4Nzk0NjE2ZjEwN2FmYzlkYTU3NTA0MGQyMmEgbGVnYWN5LXRydW5rCiszMjQyMiA4MDk0YzBkYjk1ZjhiNmE5NDg2ODM2MGEyY2YyNTk5ZmVkZjRiMjExIGxlZ2FjeS10cnVuaworMzI0MjMgODAzYmNhMjI0YzhmYTdkMjE3MjA4MDIyNzM4NDBjMTUxZGNiZDdmNiBsZWdhY3ktdHJ1bmsKKzMyNDI1IGE3NmEzNjgzMDEyYmMzN2M0MDAwMmQxNTBiMjgwYzEyYWUyMDgwMzcgYXN0LWJyYW5jaAorMzI0MjYgMDVlNTczODhjYjhmZGNlZThjOGE5OTc0MzM4NGRlYjMzMjFjNjU2ZCBsZWdhY3ktdHJ1bmsKKzMyNDI3IDcyNWIyODFjY2VhZDM4YmY3MTIxNjNiNjJkMWQ0ZjI1Nzk5ZTYyYjIgbGVnYWN5LXRydW5rCiszMjQyOCBmODc0YTRkMjljYTQxNzhlYjUxMjkzMGFlOGZlOGFjMTA0OWQ1MmFmIGxlZ2FjeS10cnVuaworMzI0MjkgMjE2MzNlOWRmOGNjNDZjODY0NTEyMTg0MjJkODQ4ODFmMzRiOTJiOCBsZWdhY3ktdHJ1bmsKKzMyNDMwIDExMjU0MDE2MGI2NTJlNmFjMjJiN2U5ZGMxMGExMmI3MzY4ODdiOGEgbGVnYWN5LXRydW5rCiszMjQzMSA0NmQyNmFmYThiOTU2M2ZkMTI1YWRiMzcyMjA3OWQ4MjhkZTJmMTU5IGxlZ2FjeS10cnVuaworMzI0MzIgNzJkYjc1NzVmOTcwMDBjOTdiMjY5YTFhYzZkZjcwOWZlZGVlMGI5YyBsZWdhY3ktdHJ1bmsKKzMyNDMzIGE5YjU2Yzc4ZTBkNjRlY2RlNDM0YzlhYzMzODM4NTgyY2NhYzliNjEgbGVnYWN5LXRydW5rCiszMjQzNCAyNWM4Y2VlNDQ1N2U2YWQwYWZmMjEyODdlMDAwNzEzMmVhMGUxMmU1IGxlZ2FjeS10cnVuaworMzI0MzUgYzM0Y2Y5Y2U5NTJmOWZhMjgyYmE2NjE4YTZmZmZiNjIyODZmNmFlZiBsZWdhY3ktdHJ1bmsKKzMyNDM2IDBjOTUwZTMzMjNlZTRlZTYzNzA2MmI5ZWFhZmE1MGVjM2NmYTA2YzEgbGVnYWN5LXRydW5rCiszMjQzNyBjYTRiZGFmNWM3NTc1ODU5ZWFlM2ViNDk5YzViOWVlNjgzNGQ2MDg4IGxlZ2FjeS10cnVuaworMzI0MzggMTAyZjllMzU4ZjUyMTM4ZWNmNGM0MTQwNjc0NzU4Y2RmMTcwMzdlNiBsZWdhY3ktdHJ1bmsKKzMyNDM5IGMwYTFlZmUxMDI4NDczY2NiZjFmZDI1ZDhjODIzM2YzOTUxMGIzZWIgbGVnYWN5LXRydW5rCiszMjQ0MCAyYmEyMGZjOWY0OTUzYzA4YmE5NWFiNDc3NmI4ZmZkODA5NzBlZDY4IGxlZ2FjeS10cnVuaworMzI0NDEgMjhhMDk3NjdhMjRmZmE3OTFjNjcxM2U0MjM1ZWUyNWJmZmFlYTkzYSBsZWdhY3ktdHJ1bmsKKzMyNDQyIGE1ZTFiMTY2MmVjMDExOTFlZDM5N2IwZjliYzllNTI0YzZkNzA3MzMgbGVnYWN5LXRydW5rCiszMjQ0MyAyYWY5M2ZkZmY2MDg4OGU1NDc2ZDU4ZWY0OTY1YTU2OGVhNzJiMWNkIGxlZ2FjeS10cnVuaworMzI0NDQgMTEzYzMxODg4NzU1NjE0NjZkMTFlYzM1ZTExNDczOWFhN2M3ZjBjMyBsZWdhY3ktdHJ1bmsKKzMyNDQ1IGVkNzRhYzIxYzEzMzIyMGZjMmM2NGU0Njc1MGEzYzMyMGEyZTk1ZGMgcmVsZWFzZTIyLW1haW50CiszMjQ0NiBiMzE2MjkzMzU2MzU1ZWZmNzY1NGZkNGRhMWZjYTNiZjJmMTdmMGUxIHJlbGVhc2UyMi1tYWludAorMzI0NDcgNzNkY2U4OTNlYjRiMzgwMjhkM2JlYjZiMzI4NDA0OTQwMzY2OThmMiByZWxlYXNlMjItbWFpbnQKKzMyNDQ4IDZiZDI4YWJkMzFhN2YwZDNlNmE5MmQwZjc2YTZhOWU4ZjgzYzU5MzYgcmVsZWFzZTIyLW1haW50CiszMjQ0OSA5MTEzMGE0Y2MxY2UwZWY0NmQyOWNmODQyYzNiNmY0MDlkMzA2NzQ2IHJlbGVhc2UyMi1tYWludAorMzI0NTAgNTdlNjE1ODg1NzFiMjBiMTJiMDA1MmM2ZWNlOTY4NDMwZjljOWIzMSBsZWdhY3ktdHJ1bmsKKzMyNDUxIDA0NWJkMTRmNzQ2ODI1YjIwNDhlZDZlZjQ1YTQ3N2ZmZTM1YWFkMmEgbGVnYWN5LXRydW5rCiszMjQ1MiA2MGU3MjIzODRkNjJjNmY4MDY3ZDJkZjIxYTZkMDNhZTgxNWMwOTNmIGxlZ2FjeS10cnVuaworMzI0NTMgNjRjYjY1N2IwMzM4NDQ0ZDJlMzhlZjdkYjk3MTQyNTlhZGVhOGNjZiBsZWdhY3ktdHJ1bmsKKzMyNDU0IGRlZjA5ZWMwYmMzMTcyYzU0Zjc1YjEyOWEyMTUxMzgxZjhkNjliZWMgbGVnYWN5LXRydW5rCiszMjQ1NSA3Mjk2Y2QzZjQ1YzdmNDczZGU3YjJhNWQ5NmNlMjhhNDNhYzQ2ZmQ5IGxlZ2FjeS10cnVuaworMzI0NTYgMGNkOGQ1NzBjNTkxMTM5YmM0YWM2MWUxM2MwY2I3NmQyNjAxZThhYyBsZWdhY3ktdHJ1bmsKKzMyNDU3IDJmYWQ1NDgzOTFkZWQ2ZWQ0YmQwMWE2MDg3ODc3YzliZDhiOTU2NmMgbGVnYWN5LXRydW5rCiszMjQ1OCA5Yzc4NWFiMWVmZjAzYTI3MTE4OGRmM2M5YzBjNWI0NzkyODAyNjBiIGxlZ2FjeS10cnVuaworMzI0NTkgZGM0ZTQ3ZTZmMDAyMzVkYmJiNjQwMjQyYTc5YjI0NWIwMWY1MmYxNSBsZWdhY3ktdHJ1bmsKKzMyNDYwIGIzN2FmMjFiNzdiZTMxNWM4MjBkN2UxZGU5Y2E2Y2FiOWMwNjRlMzIgbGVnYWN5LXRydW5rCiszMjQ2MSBlMDZhYWQ5MGMwYWUyNGQ5OGZkYmIxOGIyZjkyOTIxOWE3MTgxMWUxIGxlZ2FjeS10cnVuaworMzI0NjIgMWM1YWQ5MzYwMzhlZjI2YzI5ZDYwZjU2NTNjOTQ0MWJlN2M1MWVmNSBsZWdhY3ktdHJ1bmsKKzMyNDYzIDcwMTJjYTY0YmM3NDk1YzczYmQwN2EzOWM2ZDUyMWU3ZDk2YWViMjUgbGVnYWN5LXRydW5rCiszMjQ2NCBlNGE1ZjM4ZmYwMDg5YmYwYzJiNmVmYjA4ZmY4N2U3YzQxNjYxZTg2IGxlZ2FjeS10cnVuaworMzI0NjUgZmExNTlmZWYyNzMwMDRkZjVhZjZkMTE0ODFmNDI3YjlhYjRlNGU4NCBsZWdhY3ktdHJ1bmsKKzMyNDY2IDQ1YzRhMmYxNTdiMzhlYmJjZjYyMjVhNDkzZGFlNjc0YTE1OWViZWYgbGVnYWN5LXRydW5rCiszMjQ2NyA5OGUzMWNmZDI2ZGMyNjFiYjRmZjIwMGU0NWY5MGJmNjU4ZWRkZDcyIGxlZ2FjeS10cnVuaworMzI0NjggZDgyMjM4ODA4MmJhZDQ3MTQ5NjJjNjUwMDlhYjY0YzljZWQ1Yzc5YiBsZWdhY3ktdHJ1bmsKKzMyNDY5IGMyYTA1ZTA3ODVmMTQ4ZmFlOTc3Nzk4MmZjNWE5NTY4OTQ3ZTBlZjcgbGVnYWN5LXRydW5rCiszMjQ3MCAyN2FmMzdkZDVhMGJmNTIxODQ1YTgzMmI0YzdiMDU2MjIzNWU2YThkIGxlZ2FjeS10cnVuaworMzI0NzEgMzlkODJkMDM4ODc4OTQxYWMxMjgwZjIwZjZmODVlMjc1Nzg1NjcxNSByZWxlYXNlMjItbWFpbnQKKzMyNDcyIDQ5MGFmMDBmYjE4MzBjMzU0YjM2ODg5NzNmNjhhMzA0YzRiZmJlNGMgbGVnYWN5LXRydW5rCiszMjQ3MyBlZjA3OWRlZmQyY2MxMWY1YTI4ODliZjgzNzk0MjhmNDgxMzBjOTBlIGxlZ2FjeS10cnVuaworMzI0NzQgZWU4MTVhNmIxMWUyMDJiZWIyNjU1Mjg4ZGY1ODYzYWNlNjkwNmI3YSBsZWdhY3ktdHJ1bmsKKzMyNDc1IDg2NTExYjk2ZDk4MGM3Y2NjZTY4MDYxY2U5NWY1YTEyMTJlYWVkMmYgbGVnYWN5LXRydW5rCiszMjQ3NiBjZDgyMjUzZjIwYjcwYzM2NzlhN2ZjMmI2MmMwYWVkYTY5NWU4ZjE1IGxlZ2FjeS10cnVuaworMzI0NzcgZmViMzU5NTRiMDM4NjhkMTJkYzFlMWI1ZDU2YWQ5Yzg5OTNiM2JiZSBsZWdhY3ktdHJ1bmsKKzMyNDc4IDRjNTNiNjk0YWZhNjk4MjQ4MmZmNjI2NWMyN2JmOGQwNTcwMzdlZTggbGVnYWN5LXRydW5rCiszMjQ3OSBmMzUxZmFiNzM4OTdkZGRiOGIzYjgyYzU5NTY4NjhhZDYzY2JkZjlhIGxlZ2FjeS10cnVuaworMzI0ODAgMWJlZjNlY2EyMGNlMDk5MWYzMDM0ZjE3ZjJkZTYwNTI2YjJkNTFjMCBsZWdhY3ktdHJ1bmsKKzMyNDgxIGFlMTdmYzgxOTMwOGIzYWI2NmY3MWI0ZjZlOTMyMjAxNjM2NjdkYzggbGVnYWN5LXRydW5rCiszMjQ4MyA3MzZiYmRlY2FhMWRmOWQ0YmY4YjYxZGU0NWQwM2M5MGE5MjU5ODg3IGxlZ2FjeS10cnVuaworMzI0ODQgNTQ1ZmFlYzc5MGM0NzMyNjBjNjUyYmFhM2JjYmExMTFiOWNlZjEzNCByMjNiMS1icmFuY2gKKzMyNDg2IDVjY2I1NTM2ZmVmZWJiYjY0YTMyOTE3NTZhNTYzOGJjMjc5YjJiNmUgcjIzYjEtYnJhbmNoCiszMjQ4NyA1Y2RiNzI4MGMzMjY2ZDk1NDhjY2Q4YTZiM2Q0MDZhMjFmMzhjOWNhIHIyM2IxLWJyYW5jaAorMzI0ODcgNWZjNjBlMGI4ODM2ODAyMDdjZmIxMDA4NjVjNDJjYTNhMmIxNjYzNyByMjNiMS1icmFuY2gKKzMyNDg5IDU3NmZhMTdmZjA3Y2MxNzNkMmIyNzdlNDVlNGE0ZGVhYjQ2YWJkMmIgcmVsZWFzZTIyLW1haW50CiszMjQ5MCAxNzFlY2ZmZjI2NTc5Yjc1OWY4OGI5ZWFjNWExNWUzNTM3ZGFkNjliIGxlZ2FjeS10cnVuaworMzI0OTEgYmRjZjM3YmU5MDRkYmQyZTM1M2YxYzdmYWVmMzE2MmJhNjFhMDI4MSBsZWdhY3ktdHJ1bmsKKzMyNDkyIDMwMzBkOTRhOWMwNTkwYmU0MTcyMGI5YzdjYWVkMTUyMTRlN2M4M2UgbGVnYWN5LXRydW5rCiszMjQ5MyBiNjJkODc4MTY5NzY5NTQxMmQ2ODZlZDAwNDNmZmQ3MWVkMWE0MTRmIGxlZ2FjeS10cnVuaworMzI0OTQgOThmNWJmYjE5Yzg2OGIzNjNmZDQwMDRmMzMyZmViODQ2YzVjOTRlZSByZWxlYXNlMjItbWFpbnQKKzMyNDk1IDY4YzYxODZkYzFhMTFiYjQxMmVlMDNhZWI5ZDFlYmFkZDdjM2JmMTcgbGVnYWN5LXRydW5rCiszMjQ5NiBiNjdmNWMzOTVhNjg4ZTU5MDU4MzY4MDQ4OTJmZGIzNmU2Y2U2MjQ4IGxlZ2FjeS10cnVuaworMzI0OTcgMTAzZmFhMGMyZTFlNmY2ZmI0YjQ3YjdlZDI0NTQyNTBhMDBhNzEyMiBsZWdhY3ktdHJ1bmsKKzMyNDk4IGRiOTg0NTkwN2U4YmVkMDM5NjQ2NWEzYmQ3M2JjZTZlMmVmNzg2MTUgcmVsZWFzZTIyLW1haW50CiszMjQ5OSA2NDIzMGVlOGVlYTU5NWJlMmU0MDRlM2UzMWRiOWMzY2RiNGUwZjJhIGxlZ2FjeS10cnVuaworMzI1MDAgZjUwZDBkMGYyOWEyZDBiNTI3YTVhMjhmMTM3YWI0ZDNiYjdlMWY0MSBsZWdhY3ktdHJ1bmsKKzMyNTAxIDZkODUyZWJmZjM2ZmY2M2I3OTg2ZTY4ZTIzYTZiMDY5OWM1YTk2MTAgbGVnYWN5LXRydW5rCiszMjUwMiAxNjM3NDA1MmNiNWRiM2M4YzZjMjQyNGI2NTNiNzViMzMyYWIyZWE0IGxlZ2FjeS10cnVuaworMzI1MDMgNTNmZjIzYmIzMjQ4ZmI4NDcyODA3MDBiZGE2N2NjZTU0ODA3NzIxOSBsZWdhY3ktdHJ1bmsKKzMyNTA0IDc0M2FlOWNiM2E4M2RiZmYyMzEwMWM0NjhhNWUxMWQ5MWI4YmI1MmIgbGVnYWN5LXRydW5rCiszMjUwNSAxYTBiN2ZjNDYyNWI4ODAzZTMzODNiZDMwOWE2ZjM2NzA5ZjQyNGYxIGxlZ2FjeS10cnVuaworMzI1MDYgM2E4YjhhZWRlMTAwZDhjOGVkYTlkNjU4YThlYzEyODljZjZiYzQ2NyBsZWdhY3ktdHJ1bmsKKzMyNTA3IGE1MzUyOTA5NWU5NTQwOTQzODRmNzNhN2NlNmY1OTc0Mzg5NmExOGIgbGVnYWN5LXRydW5rCiszMjUwOCA1ZjNlOGJjYzhjN2ViY2E2NGJjZjAxNmU2ZDNiN2I3MzljMGVlMjA5IGFzdC1icmFuY2gKKzMyNTA5IGIxYmM5ZTE3MWM2MmU4MjlhZWNjYWY4MDA5OGFjODk3MTk5MzdmODAgcjIzYjEtYnJhbmNoCiszMjUxMCAxZDk3ZjUyYmM4NGZiMGRiYjk1MzNkM2ExNDQ3ZWUwMDU0YzM2NWRlIGFzdC1icmFuY2gKKzMyNTExIDcxZTE5MWI4M2QwNDY1YmNkMTcxNDY3N2M3OGNkZTkwMTdlOTg0ZDcgYXN0LWJyYW5jaAorMzI1MTIgYjg0NjEyMTgyOWJkYjAwN2NmNTQ3NzkyOWY3ZmUzOWRmZGM3Y2U0NyBhc3QtYnJhbmNoCiszMjUxMyBhNjEzMzBhM2Q1OWMyMWNkNjI0OTU3N2YxNjRmMWQwZTQwOTgxMzFhIGxlZ2FjeS10cnVuaworMzI1MTQgZjU1YjU1M2EwYjM0OTk5ZjYwNTA2YTg4ODAxNGI1MWJjMTZlOGIwOCBsZWdhY3ktdHJ1bmsKKzMyNTE1IDYzOTJlODQzNzU4ODgxMzEyMDczNTU4YjZhM2UyZTk2NmI5ZDBkYjIgbGVnYWN5LXRydW5rCiszMjUxNiBjNmQ2YWQ4NjJhOGMzMzExM2VlNzRiMmMzYTQwYjA1ODk5MjExMjcyIGFzdC1icmFuY2gKKzMyNTE3IDY1ZjcyMGZhNjIwMGZkYWZmNDBhZDI5ODAzMTg0MzAzZDI2NjA3YmYgbGVnYWN5LXRydW5rCiszMjUxOCAyNDAwNzFhMmI0NjZlNGYyYTMzZDgyZTkzNDQ5YjdjMzgwNzg1ODc5IGxlZ2FjeS10cnVuaworMzI1MTkgODVmMGU2MDk1NGNhN2IwMDA3NjY2OGMxZmMzNDY2ODVkYzY3ZDVlMyByZWxlYXNlMjItbWFpbnQKKzMyNTIwIDllYjViZTkzNzk5MGE4OTJlNWE3M2FhYjYxOGE2MjFmNTA3OThkMzggbGVnYWN5LXRydW5rCiszMjUyMSAwZjBmNjIzNGYyZmY0ZWZkY2M3M2YzY2E2MzE3ODBhOWIzN2M4ZjdjIGxlZ2FjeS10cnVuaworMzI1MjEgNjdjZTRlZTRhMjlkMWU3Y2UzNTdlZjhkMWMwMGM2OWQ1NTdjMTBiMiBpZGxlZm9yay1tZXJnZS1icmFuY2gKKzMyNTIyIGUyZDI5NTY5OTk2ZDgwZDYwNWRhNjZlMTdiZDQyOTQxZTAzZTFjOTcgbGVnYWN5LXRydW5rCiszMjUyMyAyMzE4YTllMTZhYjBhOWRjOTg4ZGZmZmU3MTU4M2FhM2ZjY2Q3NDczIGlkbGVmb3JrLW1lcmdlLWJyYW5jaAorMzI1MjQgNzVjMWNlZDkzYmI1MmMyYWJjYTA2YmZkMTIxMWU0NzQyODFlMzQzNSBsZWdhY3ktdHJ1bmsKKzMyNTI1IDZjNDE3NTUyZjQ3MzVjMDhjOGRiNTY2MTM0MmVlYWIzYmJjYmRhMDEgaWRsZWZvcmstbWVyZ2UtYnJhbmNoCiszMjUyNiA2ZTk4NjIwNjZlMjk2ZWM4NDg2OGNhN2EwMjAzZDA0NjkzN2Y1YzNiIHIyM2IxLWJyYW5jaAorMzI1MjcgOTk4ODFiNmVhOWY3ZDk4MGIxNDE3NThmMmIwYjg2OWRhNjYzNDg2NCByMjNiMS1icmFuY2gKKzMyNTI4IGEzNDE5NzZmZjQ3NmQ4ZDRjZDExZGEzYmI0MjEwNzUzODVkZWYwMGUgcjIzYjEtYnJhbmNoCiszMjUyOSBiMThkMmYyZGIxOGQwOTBjNjE5MGIzMzMyZTAxNTBhMWE3ZDQzZGQzIHJlbGVhc2UyMi1tYWludAorMzI1MzAgODllMzVjZGJlY2NjMGNmMTkyY2NmOWIyYzhkMGFlZGM2NDA3MTFmZSBsZWdhY3ktdHJ1bmsKKzMyNTMxIDY4NzMzNzliOGQ4YzVhMDcxNTI1YWM1ZTM1Yzg4MzIyNzIzZjBkMmYgcmVsZWFzZTIyLW1haW50CiszMjUzMiBlYTc3NzI3MzJkYTE5YzMxNDdmYmUwZTg5MWRhYWNmMWRlYzNlZDgzIGxlZ2FjeS10cnVuaworMzI1MzMgNDk0ODZjNTQ0YWNkZDU2MTcyYWRkNDZlOGNkMjdiMjA5NGU2YjBkMiBsZWdhY3ktdHJ1bmsKKzMyNTM0IDY3MWU0ZTJlZWM0YmE3M2U4NGE4NTg3Yzg4MmNkMGUxNjhiYWNhMzAgbGVnYWN5LXRydW5rCiszMjUzNSBhZjUzNzI5ZDNjZGQ2NDExOTUyMjU0NzA2Mzk3MDAzMmZjNWFlOTBjIGxlZ2FjeS10cnVuaworMzI1MzYgZTRlYWJlNWIzZGExM2Q0ZmFhM2QyNzFjM2EwMzhlNWFiOWRlN2YyNiBsZWdhY3ktdHJ1bmsKKzMyNTM3IGQzMTY0YTMwNDU5OGIxNGYxNGRhOTNiYTFkYTRhZmU4MGY3ZTU2NTUgbGVnYWN5LXRydW5rCiszMjUzOCA5NmI2Y2M1ZDQwOGI4NGQyNWYxZWYyNjAxYWQ0ZmZlMjAxYWY3NDQ3IGxlZ2FjeS10cnVuaworMzI1MzkgMzlmNGI5N2NlODI4MTlkYzJmMTEwM2EwNWE0N2RkMmQ0M2RmODgxNiBsZWdhY3ktdHJ1bmsKKzMyNTQwIGQ1ZTI5MWYwYWUzOTU1Y2FhN2Q3MDAxYjczMDE4ZWU2OTgyZjU1YzMgbGVnYWN5LXRydW5rCiszMjU0MSAzNWM5MGQ5Y2MzMTM1NzUwNmE4ZDg2NzYyNzZhN2RjNzg0YmI0MDllIGxlZ2FjeS10cnVuaworMzI1NDIgZDMwYTZhNTc0OTc5YzhiNmYxNjVhY2QyYzU4YWFkZTlhMjM1ZTRkZiByMjNiMS1icmFuY2gKKzMyNTQzIGJjMTM1ZDdiN2RmMTZmYjdhYzFkYTA2MDViMGZlOGYzYjE3NDIzOTcgcjIzYjEtYnJhbmNoCiszMjU0NCBlZGRjYjc5MGVkOGQ4YmQ1MWYxOTA3NjY2OWMwYzYzNDIzNjY1NmQ4IGxlZ2FjeS10cnVuaworMzI1NDUgMmQwNjljMTZjOGIyZDE5MTI4NTc3NzY5NDEwNGM0NWI1M2Q5N2EzNSByMjNiMS1icmFuY2gKKzMyNTQ3IGQxY2RlM2RhZjlhOWU2MTY2N2VmNzZmYzk4NGQ4OGY0MjMzOTU3NDYgbGVnYWN5LXRydW5rCiszMjU0OCBmNDIzODAzNjAwMGM0NTU2YzQzOWJkYzE4OTQ3MjYyODEwNzYyNThkIGxlZ2FjeS10cnVuaworMzI1NDkgYjlhMzA3M2Y5MzkyOGMxYjgwMTEyNGJmNDdiNmU4MzU1ODQwZTNlNSBsZWdhY3ktdHJ1bmsKKzMyNTUwIDgxZDM3M2U1ODk4MzhjMzM5ZTAzMmU2ZWMxNzExZDhlYzE2Nzc2ODUgbGVnYWN5LXRydW5rCiszMjU1MSAyMzdmOTdjNzE2OTFiZjNmODQwZjZmY2QyNGNlZTVlNGViODY4NjVhIGxlZ2FjeS10cnVuaworMzI1NTIgMDgxZWY3YjZiZTA0Mzc2ODM3ZmIyNDVhMjcyMmU3ZGI4NzQxYWI5NiBsZWdhY3ktdHJ1bmsKKzMyNTUzIDBlMzVjMTU5NzQxYjU3MWRlNTMxMDZiNWRmNWFlNzA4NzYzNmNlOGMgbGVnYWN5LXRydW5rCiszMjU1NCBhYWIwZGJlM2MwMDgxZmJkODRhOWRmZWRkNmNiMjgxYmE2ODA2MjdiIGxlZ2FjeS10cnVuaworMzI1NTUgMDM5YWIzMWUxMDM0Nzc5NmI0YjgwNjhjYWFjNGYyMjAyYzRhY2E4MSBsZWdhY3ktdHJ1bmsKKzMyNTU2IDQ1MjhjYzBlZGI2ZGE1NGY5NjMwMzMxZjg3ZjllODRmZTVlMzEyZDggbGVnYWN5LXRydW5rCiszMjU1NyAxZDFhODVmMGU1ZTk5OTg1N2MxMDNmNzI4OWYzZGM0OTlkMTIzNzIzIGxlZ2FjeS10cnVuaworMzI1NTggZmE1OTUwZmJlNzM2NzRkNmUwMGM1ZmExOTdlZTNiNzYwNjYxNTNlOCBsZWdhY3ktdHJ1bmsKKzMyNTU5IDFlYWMxYTM1YjM3MDQyOWU2YmY2YTZhMWQzN2VkMmZlYjQyN2U0MDMgbGVnYWN5LXRydW5rCiszMjU2MCBlNGU3MmZhNGM5MTQxMmYzNjI2ODI2ZTMwZTFkZDg3NWUzYTc0NzY4IGxlZ2FjeS10cnVuaworMzI1NjEgY2U5ZTJhZThkNTlkNjY0MTZhZWU5YTNlNTI2YmYzZDc0YmU5OWU5ZiByZWxlYXNlMjItbWFpbnQKKzMyNTYyIDA2YWJmYzljNjhlNzcyN2VmYzBjNzhlNjc3YmY1MWZlYTlhN2ZkMjggbGVnYWN5LXRydW5rCiszMjU2MyA2YTUxZDExZmIxZTkxNWY3NmFkNDhhNDI0YzljM2Y3ZTNhMzEyNzE1IHJlbGVhc2UyMi1tYWludAorMzI1NjQgOTZlZWU3ZDA0ZDg4NDA3ZDczOTY2NmU4NGQ5Y2EzY2IxZWQzYWQwNiBsZWdhY3ktdHJ1bmsKKzMyNTY1IDRlZjEwOGY4MTgxZjMwYzU0ZTU5Mjg2OWYzM2M3OGU4NjVkYTIxODIgbGVnYWN5LXRydW5rCiszMjU2NiBiMDRjMDc0NTg2YWE0MjY2MzRhZTRjMzFkYTRiOTM0MjRmOWEyM2U0IGxlZ2FjeS10cnVuaworMzI1NjcgMzM0NzU2NjE4MjNkMzczZDY1Y2E5MzUxN2MyN2E1N2Q2MmZkYmFjYyBsZWdhY3ktdHJ1bmsKKzMyNTY4IGZhMDA2MzkyODUxODE3YzMwOGZhMjYyZjdmNjE2NDExOTIzNTk0ZmUgbGVnYWN5LXRydW5rCiszMjU2OSAzOWFkNzYxNDMyODhiYTJhYWRjMjljMzU0Y2NlY2IyYmQ0MTY1ODY3IGxlZ2FjeS10cnVuaworMzI1NzAgMTc0MWFmNDhmZDlmM2U2OWZhMzU1OTI4M2NkZTY3ZTZjYTkyMWE3YSBsZWdhY3ktdHJ1bmsKKzMyNTcxIDkyODcyNzg5MTZlM2M1ZjFmMWU3ZDhkM2VhMmY0ZTVjNTU3MTk4ZjggbGVnYWN5LXRydW5rCiszMjU3MiBmMmM3NGNmZWEwNTEyNDc0YWRiMjM2MzhmODhlNTJlNDUzN2NlNDc5IGxlZ2FjeS10cnVuaworMzI1NzMgMDBmYzEzOGQ4NTU2NTg3NzQ5YmI3YTUyNjU4MWY5NGJiN2Y0NzkwNSBsZWdhY3ktdHJ1bmsKKzMyNTc0IDg4OGEzMTE4ZTBkNDIyODhhZWIxNzMyZDVmM2YxN2IyZmQ0ZjllOWQgbGVnYWN5LXRydW5rCiszMjU3NSAxMTQ5NTBlZTlhYTczM2VlMmMwMWZmYzNlYzg4MGI0NTk4NjNkOTE2IGxlZ2FjeS10cnVuaworMzI1NzYgODM1MzMwMTZjMjg5NzE2NWNiNGY3YTY2YWNjMGQ2NjI2YjFiNGE0OSBsZWdhY3ktdHJ1bmsKKzMyNTc3IGIzYjI4NDQzNmMyNGEyMGEzODI5Zjk3MGI2NjdkMzQ0MGY1NTM3YmMgbGVnYWN5LXRydW5rCiszMjU3OCBhNzY5ZTA3OWJiMTJmZjgzZWM5N2VmMzgwNzEzMTE3MzY3N2VkZGNiIGxlZ2FjeS10cnVuaworMzI1NzkgNzgzZGRkZTM3OTJiNjY5NDg2NGU5NDRhZTZkYjE4NGVlOTNmNTY0MiBsZWdhY3ktdHJ1bmsKKzMyNTgwIDBhMTgwZWUyNDczYmQ5OWVjNGNkNmZiZTRhYmYzYTVkOGRiNjNjNzkgbGVnYWN5LXRydW5rCiszMjU4MSBjNzk4ZDI4ZGVlNDZiMTlkMTYxMjYwZTdiNDE0MzBhNDYzZTcwZjg4IGxlZ2FjeS10cnVuaworMzI1ODIgOTJhMWU1ODVhYmY3NjNhYzM1MTY0MmFhMmRiY2JjNmY1MmM1YTc1NyBsZWdhY3ktdHJ1bmsKKzMyNTgzIDE4MDgyYjJkMmViZGYxNWIzZmQzYjlmYjU0N2Q4MDNiZDg3MzM2MzYgbGVnYWN5LXRydW5rCiszMjU4NCBhNDBiNTY3MWE1NjM5MjFkMjlkMDU3ZGZiN2EyMGQ0NWNhZjdmZTJkIGxlZ2FjeS10cnVuaworMzI1ODUgNmEzMTE3ZGY1ZTEzMTI1OWFlNDJmOWUyODAwYTExMTJiOTYwMzNjNiBsZWdhY3ktdHJ1bmsKKzMyNTg2IGQ5MTgyMWQ5ZDQ3MDk2NzJjMGJjNjk1NTFjZjQ0MzRhZTBiMDk2MGQgbGVnYWN5LXRydW5rCiszMjU4NyA5OWNmMzM2OGQ2ODdlYTg5ZTdmYTY3M2M4NDUxNzY2NDUwMDllYTU1IGxlZ2FjeS10cnVuaworMzI1ODggYTExNGVlNzQyNjdjNzMxMzBiNTg3MGQ5NjJiNTI2NjlhZWNhNmNlNSBsZWdhY3ktdHJ1bmsKKzMyNTg5IDJlZWU5NjU1ZDcxYjBmODk2ZDZiYWM5YmVlNzhiMjA3MzYwOTczODkgbGVnYWN5LXRydW5rCiszMjU5MCBjNWYxOGRiMWM5NjYxZDU4MDcyNTMzNjk5NTc4YjJmYmM0ZGZmODVkIGxlZ2FjeS10cnVuaworMzI1OTEgNWQ0ZDRlYmZkMzE3MWU3NTM1Yzk0MTg3Yzg1YzdhODg3YzdjYWQwYiBsZWdhY3ktdHJ1bmsKKzMyNTkyIDQ3NTZmYTUzODU2MDZmYjEyMmY1ZTlhN2QxNjdkOWRmM2Y1NTdmMTkgbGVnYWN5LXRydW5rCiszMjU5MyBmYTA1NzgyNGM5YjRiNDI3ZDA5NGEzOWU1NDgxNjBjYTc0NGViNDJhIGxlZ2FjeS10cnVuaworMzI1OTQgMDVkYTc3MjZjMDI3ZTQ3ZjExMDliMTdjOWI3ZWQ1NGM4MzhlZTBiOCBsZWdhY3ktdHJ1bmsKKzMyNTk1IDM5MzQyOWE2ZmExNmQxZDkwNDg1N2ViNWRhNjA5NjRlNjFhNGViMjAgbGVnYWN5LXRydW5rCiszMjU5NiBlMDU5YThiMTFiOWVjY2IxMDA3MmY3Njk5ZTRlYTQ5ZGVhMzVjMjZiIGxlZ2FjeS10cnVuaworMzI1OTcgZmFmMmNiNTA3MGI0YzhkMTNiN2FjNTlhNWY5OGNmNzQxNmJmMmY0YyBsZWdhY3ktdHJ1bmsKKzMyNTk4IDAwMWE5MDU1NTc4MDhhMTVlODQzOWI1ODNjMWZlYzY5ODlhZTcyZjkgbGVnYWN5LXRydW5rCiszMjU5OSBkYmRlYjczNGZmOTc5OWRhODE2YzU5MzZjNWM0MzZjNDMxZmRhYzExIGxlZ2FjeS10cnVuaworMzI2MDAgOGRmODk3ZjE0ZmI4NjAyNmYzNDQ3OWIyZTA5NjljODBmNGJjNGRiZCBsZWdhY3ktdHJ1bmsKKzMyNjAxIDMzNTk4ZThlNDliMjBiYTRiNWE3OTlkMmExYmMyODIwMmI5ODM4ODIgbGVnYWN5LXRydW5rCiszMjYwMiBhYzQ4N2E3ZjdmMmM3NzA5NzU3OGJlZDFjOGI4OWZjYzdjM2E1NDYwIGxlZ2FjeS10cnVuaworMzI2MDMgM2E5ZjVmMGM1MTJlYjQ5ODBlYzFhYzgwOWZhZjY2NzRhZmVkNTZiMCBsZWdhY3ktdHJ1bmsKKzMyNjA0IDE5NjQwMTJmNmZiMGQyM2JmOGQ3YmEzOTliYjVlODU3NGEyNjFjMjAgbGVnYWN5LXRydW5rCiszMjYwNSA2YzRhMDRjZTk2NWMyNThmM2E5YmIwZjk0ZDkxZWMwY2FkN2I5NWVjIGxlZ2FjeS10cnVuaworMzI2MDYgMDk0MjJjMzAxODI2NWI4NWE4MGYwMDg5M2UxNmEyN2Q1ZTM2YzlhNCBsZWdhY3ktdHJ1bmsKKzMyNjA3IDlkNWE3NTkxNjk3MTA5NTgwYzU4ZGVmNjJjOTE3ZTA3ZTY1MWUxNWMgbGVnYWN5LXRydW5rCiszMjYwOCAxNzYzZDlkM2ZkOWRmZWVjZDZkNmUyN2JkYjU2N2ZhMTRjODZiZTljIGxlZ2FjeS10cnVuaworMzI2MDkgOWI0ZmY0YmYwMzNiODE2NDc4MjZhZWU5ZmNiMTdjN2UxMjU2Y2Y1YSByZWxlYXNlMjItbWFpbnQKKzMyNjEwIGJhZWEzMThiZTQ5OWNkZmM0OWI1NTdhZGQxMWNlODM5OGI5NDMyZDEgbGVnYWN5LXRydW5rCiszMjYxMSAyNWIyMjE4ZGEwOWI1OWY5NmI4OTZlZTZiNDEwYTY4YTI4MDAxMTk3IGxlZ2FjeS10cnVuaworMzI2MTIgMzVhNGQ3NGI1YjhlZDk5YmQxNzA1MWYwOTdkYjE5MjNjNjYxNmI5ZCBsZWdhY3ktdHJ1bmsKKzMyNjEzIDZjYTk0YWViMjkyYWM0Nzc5YTMwZjc2YmJhZGMzNWU2MDc5MmE4NjkgbGVnYWN5LXRydW5rCiszMjYxNCBhYzI5MDE1ZmY2YTgxZWYwNDE4ZGExOTZkODU5ZGI0ZjkzODBjOWY5IGxlZ2FjeS10cnVuaworMzI2MTUgMTg5ZmRhZThmNDkyYmY2Y2VkM2Q1YWUwYjE0YTMyYzI5ZjRhNjUxMyBsZWdhY3ktdHJ1bmsKKzMyNjE2IDI1ZTY2MGU3MGRjZDA2MWU5OTgyYjAzNzhhYmYzNmYwMzY3YzBhYTIgbGVnYWN5LXRydW5rCiszMjYxNyAyZTk5NTZkMDFkZTMzMmY3ZDEyZjIxODRlYjBlOTFhNjU0NzAyMzZjIGxlZ2FjeS10cnVuaworMzI2MTggNGJhNzYzYmM1YTU2MGRjNTdkZDE4MGIyZDc1ZDU2ZTk2YjU3Yjc4MiBsZWdhY3ktdHJ1bmsKKzMyNjE5IDM1MGVlMzFhYWIwYzAyNDI0NzNkNTBhYzkwZmUzM2ZhZmUwNGFmZWMgbGVnYWN5LXRydW5rCiszMjYyMCA5OTU5ZDhmYTRkZGYwZjhjMDQwOTYwZWYxMGFjY2U2Y2M5YWFlMGVkIGxlZ2FjeS10cnVuaworMzI2MjEgYjE3NGQwOTI3ZjBlMjU3OTQ5YzljMTNiZmY3ZjQzNWMyYzA0NTM3YiBsZWdhY3ktdHJ1bmsKKzMyNjIyIGM5YzZiYTc5NTJhODIyN2FhOGQzYjJiOTI1OWJkYWJkZWFlYzk2MmUgbGVnYWN5LXRydW5rCiszMjYyMyA5ZjkwMjJjMjEwNTYyMzQ5ZjQ3MDE4NzUxODkzNjVlNjdiNjQ0MWUwIGxlZ2FjeS10cnVuaworMzI2MjQgNjViZjY5ZjdjMTQ4OWQ4ODQ4YWIyNDZiZTNiYzVhZDI2NGRhYWViYiBsZWdhY3ktdHJ1bmsKKzMyNjI1IGM5MjQxMmQ2MzRiMTBiMzAwMjg4N2Y0MjM1MGM4ODRhM2YyZTAyODYgcmVsZWFzZTIyLW1haW50CiszMjYyNiA2OGYwNDJmYWZiN2RkMDliZGZjMjZmYjM0NmZlNDY0Y2M1ZTBlMGQ2IGxlZ2FjeS10cnVuaworMzI2MjcgYmIxNzcwOWEzN2EzYWMwNzQ5ZWMxMmE0MTAxNzQwMWNiMjFiMWIyZiByZWxlYXNlMjItbWFpbnQKKzMyNjI4IDNlODhjZmYwNTgyMmYyYzFiNThhNWNjMDc0OGZiY2Y5OGI5MWUzZjEgbGVnYWN5LXRydW5rCiszMjYyOSA0YmY4NjUxOGQ5YWU1MDE4MjA3MGY1ZWNmMDA4ODAzZTU3Y2M1NDQyIGxlZ2FjeS10cnVuaworMzI2MzAgNGMxMzkxNjg2NDhjNmFkZTNjMzAxYWE4ODljMjk2OTczMzQzMGU0ZSBsZWdhY3ktdHJ1bmsKKzMyNjMxIDgzZmUwZjVjOTM1OTdjYzZjMTZhNTZhMDMyMWU4MjZmYzU2MWJkNTEgbGVnYWN5LXRydW5rCiszMjYzMiBjZmNjNDVmMTg1MTVhMGRhN2VlZGFhOTNiYjY2ZTdmMGQ1MjJlZDQwIGxlZ2FjeS10cnVuaworMzI2MzMgNTg5MmMxZTUxNWI0ZGE5ZTEwNzQ5NTc5NTQzNjZmNDY0NjQ4YTEwNSBsZWdhY3ktdHJ1bmsKKzMyNjM0IDgxNWZmMGFiMjRlNzI4YzFjYjZkYzAwOTNkYmMxMzM3M2MyYzkxMDggbGVnYWN5LXRydW5rCiszMjYzNSAzMTJmMTE4NmFhMzk0NTgxYjViMTQ1MDE3NDVhMmQwNDFmODM1MzU4IGxlZ2FjeS10cnVuaworMzI2MzYgYTVkZDU3NDdjZGZlMjY4ZDRhNTZjNWYxYmY2MTkzZTkxZTk4ZTQ5NyBsZWdhY3ktdHJ1bmsKKzMyNjM3IDE3YmZhNzg2MDc1YWRjYjMwMTA4ODZlNGMwNDI4MWU1YjQ3YTgzY2IgbGVnYWN5LXRydW5rCiszMjYzOCBiNTRhODRkMjljMDAwMTZkZWE4YmZmMjAzNThjOTU4MWJjZDMwOGQ0IGxlZ2FjeS10cnVuaworMzI2MzkgNDEzODhlODQyNjFiMjQyYTYyYmZkMDUwNGE4MTIxZDMzMDljZWM1YyBsZWdhY3ktdHJ1bmsKKzMyNjQwIDIyMmMzZDJmZTQzMWIxMzcyYmM5NzAwOWYyNzhkNjNkYTEwNzgwNjUgbGVnYWN5LXRydW5rCiszMjY0MSA4MmZlM2E5YWMzNzFkNDM0NmFjZjZlZmVhZjY0N2RiYzczNjQ1MmEyIGxlZ2FjeS10cnVuaworMzI2NDIgNjFkM2Y4ZTY2ZDhmYzA2MDA4ZGQ3OTU0MGViMjVhMzg0YWVlMTE4ZCBsZWdhY3ktdHJ1bmsKKzMyNjQzIDQ5M2ZkN2U1MjIwNmExYWU1YTA0NDEwN2MxNjQ1NTA1NDk4OGFjNWQgbGVnYWN5LXRydW5rCiszMjY0NCBjZTZjM2NjNDIyYWI1MTYyODQ2YWJkYjRmZmViMjY0ZjIxN2U0YTlhIGxlZ2FjeS10cnVuaworMzI2NDUgYjM3MDJiNjgzZjJhZDJiZTZiMjBhYzdjZWEyZTE3Njk3Y2M1NGUxNiBsZWdhY3ktdHJ1bmsKKzMyNjQ2IGYxZmNhYzRjYWJhZDg2ZmNhOTEwMGMwNzMxYTFjOWU3OTAyNzNmODQgbGVnYWN5LXRydW5rCiszMjY0NyBkNTQ2MTBmNGYyNjFkY2I5ZTE2OTQ2YWZjOTFiNWE4Mjg1ZDM5YzIyIGxlZ2FjeS10cnVuaworMzI2NDggNmIwN2YzNjljZjAzZGFkODQyNmNmNWQ3YjAyMzM3MjAxMGZmMTk2NSBsZWdhY3ktdHJ1bmsKKzMyNjQ5IDM4MGE5YTVhZmFhMGJkYjJmNWY2OGNhZDk5NzAyYTRkNmExNDhjMDIgbGVnYWN5LXRydW5rCiszMjY1MCBlZDRiMDk4YzdiY2ExZDk4YWY1YmY2NmE0YTk1ZGJmMDY0Y2RmZDRmIGxlZ2FjeS10cnVuaworMzI2NTEgNmZjYTZlMDdjMmZhOWE2ZjVhNmEzMzkxYjg4YTliNTYzOTRiMDdjYyBsZWdhY3ktdHJ1bmsKKzMyNjUyIGUxMDdjOTIxYjhmMzMxMTYyMWFmNjVkNzMxZGEyYTVjOGFiMzAwZjMgbGVnYWN5LXRydW5rCiszMjY1MyA1MDk1Mzc4Mzk0MjQ2YWZmYjAyNzRhN2YyN2JkYzBmNzljNjM0ZTQ2IGxlZ2FjeS10cnVuaworMzI2NTQgNmM0MGI3M2M3MDQ1N2VmYmNlMTY4ZjljZDU3MzA4MThmNzUwMThjOCBsZWdhY3ktdHJ1bmsKKzMyNjU1IDUwODQxODk4Y2MxOWMwYWMzNTdkNTAxZjIwNjE0NzQ3ZWRkYTFiOWIgbGVnYWN5LXRydW5rCiszMjY1NiAwMTNkOTVjMzQ2ZDIzNTU0MzJlOGQxN2M2ZjU2M2MwNjM2YTM1NTNhIGxlZ2FjeS10cnVuaworMzI2NTcgYTA3ZGVmMGRjNzg1MWVhNDhjNWIxNmQ0YTkyZmNlODc3N2U0OWNiOCBsZWdhY3ktdHJ1bmsKKzMyNjU4IDMwNTVjOWJkZmY1ZjUxMTlhNjAyOGRkYzZjZGI3NjMwNmNlMjJkZjggbGVnYWN5LXRydW5rCiszMjY1OSBmOWU2ZjlmYjhkZjBjNWYyMDUyNDBkZGFiYzE3ZDdhN2Q4ZDJmMTNkIGxlZ2FjeS10cnVuaworMzI2NjAgYTNiMjYxMGI1MDQxYTkyYWFlN2QyNTFjZDVmYWZlY2RhOGIwY2M0NyBsZWdhY3ktdHJ1bmsKKzMyNjYxIGMyN2E2NGIzODc2MjdmMWJiZGRhNDMyZmQ1ZTYxNGNmMTMxZjQzYzUgbGVnYWN5LXRydW5rCiszMjY2MiBkMmFmYTAwYzIwZTNjNGZlNzI1MjBmYTRmN2E5ODcxNjc0N2EwZjRkIGxlZ2FjeS10cnVuaworMzI2NjMgOWI3MTY0Y2MwYzkyNjZlZDZlMjFjNWQzN2YxMTIyZTVlMjg5YzYyMSBsZWdhY3ktdHJ1bmsKKzMyNjY0IDA0NjEzMTYxYTMyYjZiYWZmYWMwNmYxNzNlZDA2NmM3OGMxYWU5ZjEgbGVnYWN5LXRydW5rCiszMjY2NSBlNjk2ODg4NmE5N2RhMTkwZjg1ZDEyOWIxZmNiYTkwZTk0Njg5OTYyIHJlbGVhc2UyMi1tYWludAorMzI2NjYgMTU3YTI5ZTE5ZWI5ZWM3OGMyNWEzMDlkMzVlNWM2YjMwNmMwMzdjNCBsZWdhY3ktdHJ1bmsKKzMyNjY3IDA2N2E5ODIzMjlhY2MzMzg2YTgwN2IzNjA3MmRhMTIzNjc3MmYxMzAgbGVnYWN5LXRydW5rCiszMjY2OCBlZWVkYWM0OWU4NmIzODhmYjIzYzE1MTM1NzE3MTZkNzRhNTc1N2UyIHJlbGVhc2UyMi1tYWludAorMzI2NjkgMTA5ODEwYTFhZGE4NjA2ZjI4MDMwYjNjZDc0MzlkM2NkNzg3ZWFlMCBsZWdhY3ktdHJ1bmsKKzMyNjcwIGQ0ZjY1NDRmNzlhY2U0NDFkYTdlYjc0N2RjNjdhMzMxYzliMzg2NTIgbGVnYWN5LXRydW5rCiszMjY3MSAxM2Q4ZjI5NzM3ZTVkZTI2ODI3NjZiZGJlZmE1ZmYyMTdjNTQyYzg2IGxlZ2FjeS10cnVuaworMzI2NzIgZGMzZjNmMzAzOGE4Y2ZhOTRmMThhZTJhZmE1Mjc3MTM5ZGJlMWVlNCBsZWdhY3ktdHJ1bmsKKzMyNjczIDA4OWYyNDIxZWIxOGEwYmFhODI0ZTg5NzI4YjBmYWNhNGYwMTM1NWYgbGVnYWN5LXRydW5rCiszMjY3NCAyZjY1MmE1OWViYjAxZjgyZGYzMWVlNzc1MjFjMWNhOTUxNDcyMmViIGxlZ2FjeS10cnVuaworMzI2NzUgMmY3NDNkZThjNWUyYTJiZjczYzdkMTQwYTI2ODFkOGNhNzg2YzMzYSBsZWdhY3ktdHJ1bmsKKzMyNjc2IGNiODMyYzJjZDU0ZDRhYTc5NzczNmE1YWI1ODYyMzFjYjY3Zjk5MmIgbGVnYWN5LXRydW5rCiszMjY3NyAzZjcwZDc1Y2QyOGRhY2JjNGM2MzQ4NDY4OTE5ZmU3MmVhM2UzZGZlIGxlZ2FjeS10cnVuaworMzI2NzggNGRlMDJmMThhNDFiNDJlYmFlY2I3NjRmZTQyMDIwNWJhMTc2NDc4MCBsZWdhY3ktdHJ1bmsKKzMyNjc5IDU3NGI5NTUxY2ZjOWU2MTlmYmUxNTMzNDQwMmZlYWUwMDM3M2JlZWYgbGVnYWN5LXRydW5rCiszMjY4MCA2YmJhNDhkMWNlM2JiMDY5N2I4ZWQ3ZDBlOGMzNjhmMWNjYWQ2M2M2IGxlZ2FjeS10cnVuaworMzI2ODEgMWMyZTYwM2ZlZTAyMzBlZDc1ZjY4Yjc4NzZhY2JlMmQ1M2I3ZDYyOSBsZWdhY3ktdHJ1bmsKKzMyNjgyIDRhZWFjYWRlNjYwMDliMTg2ZmI3MTliM2IwZmJlNDMwYjVhNTVlNTYgbGVnYWN5LXRydW5rCiszMjY4NCBkNWU0ODczNjJkM2FkZDQ5NjUwNTZkZGYyMmMwNmZkZDY5NTVjYjI4IHJlbGVhc2UyMi1tYWludAorMzI2ODUgZmIxMTdkN2Y1OTUwYzY0YjRlY2MwMjU3OGVmNTcwMDk4ZGZmMWU3YSBsZWdhY3ktdHJ1bmsKKzMyNjg2IDNmMjE0YzI2NGY2M2Q1YmM0MDA2NDcyM2Y1NDE2YTVmZmFlMGI3MjEgbGVnYWN5LXRydW5rCiszMjY4NyAxM2RiNWI3ZGUwZGRlNzUyM2VhMTVhNDA2NzczZjU2OGNlMDFhZjY4IGxlZ2FjeS10cnVuaworMzI2ODggNjU2NDkzNTM0Y2M3NzY2YWE2MWY2OTcyMzY0MjZjNzNmYWJiYmE3MyBsZWdhY3ktdHJ1bmsKKzMyNjg5IGUxZDVjYThhYjdkYzgyYzcyNjM5ODIxMTkzOGEyN2I3MmI1ZWI2ZjQgbGVnYWN5LXRydW5rCiszMjY5MCBjY2Y3ZTEzOGExMjZkZDMwZmNmMmM2MGY2MmEzN2ZhNjAwNzUxYmJhIGxlZ2FjeS10cnVuaworMzI2OTEgZGI5MDg0M2IwMGZjZGI4MzQyOGQ5NDllMzdiMGIzYTQwZGQ0OTMxMSBsZWdhY3ktdHJ1bmsKKzMyNjkyIGQzYzFhMDNhNTEzMDg5MDRmMzUzODliMmI3YzRmNzBmMTNiYzM2NjkgbGVnYWN5LXRydW5rCiszMjY5MyA1OWIxYjNlMmEyM2I1ZTk0YzAyN2FkOThmNzIxNGVkNTMyNzcwMjFiIGxlZ2FjeS10cnVuaworMzI2OTQgZWZmODZjZjhmM2JiM2U3ZWRiZTBiNDhjYjkyMzI5MGM4MzIxNjRlYSBsZWdhY3ktdHJ1bmsKKzMyNjk1IDgxMDg4ZGYwYjFkZjM2NDBlODliNGQ1Y2Q5NjQ1ZjNiZDgyZjlmZDEgbGVnYWN5LXRydW5rCiszMjY5NiAwNTU5ODc3YWRhNWNmMzA5YTYwM2RjZDk0NjU4NWYyOGMzOWYxMDI0IGxlZ2FjeS10cnVuaworMzI2OTcgOGU3OWRjMzczMWJmZmMyNmI5Y2E4ZGEzNmEwMzM1MzUzZjlmYTlhMiBsZWdhY3ktdHJ1bmsKKzMyNjk4IDQzMDAyMjMzY2MyY2RhMDE0M2Q5NGE2MzE4N2ZiYzE5NGE2MjYzYTQgbGVnYWN5LXRydW5rCiszMjY5OSBkZTU2NGE4NzMzZDIyNzUzZmU4MzA5MmQyYmVkZDdkNDRlMmZkNDQyIGxlZ2FjeS10cnVuaworMzI3MDAgNThjOGUyODQ1MWE5NzdlMGZhNGE2NzEwYzNhMzUyYjRjMjlmNGE4MCBsZWdhY3ktdHJ1bmsKKzMyNzAxIGQwNmFkYjVhM2NjOTZkZmZlM2JiOTBhOTk2NzliYmE0ZDdmZDc1NmIgbGVnYWN5LXRydW5rCiszMjcwMiA1NGYxZmZhMzc0MjllYWM3YTUwMTk4YzE1OWZjYWU5ZDk3N2Q3YmNlIGxlZ2FjeS10cnVuaworMzI3MDMgMDY0NDE5NzczOTU2YjcwOThiZDRjMzk3MzE4YzI3ZGFhN2FlYWI2MSBsZWdhY3ktdHJ1bmsKKzMyNzA0IGYyNzhiMjdlZjEwNWQzNGVmNDQ2YTQwZGZhMGJhY2Q2MzUxODI0ZTkgbGVnYWN5LXRydW5rCiszMjcwNSA3NzUwYjg0NjJhOGZjNDA4NmY3Zjk3ZTNmOGQ1NGU1NzA3N2ExMmRmIGxlZ2FjeS10cnVuaworMzI3MDYgMTQzZmZmOGQyMTg5OWQwOTNmZmM4NjJlMjhiYWE3MjEyYmRkZjcxYSBsZWdhY3ktdHJ1bmsKKzMyNzA3IGNmZmI1MTdmNGUxNWY5ZDZjODUwYzdjZTRkZjY2ODVmYjI0ODM5OGMgbGVnYWN5LXRydW5rCiszMjcwOCAyYjBjMGJkYTVjY2E3YjZlYTczNTMxNWVkZjBlZGZlM2VlY2I2YzcwIGxlZ2FjeS10cnVuaworMzI3MDkgNmRjODJkY2Y1NTg5MjYwMmQyNGZiODNkNzdhYmRkM2U1M2I1NzJiZiBsZWdhY3ktdHJ1bmsKKzMyNzEwIDQ1YmZhNmQ1OTFmN2NhNGE1MmFkNDk3MDBiMDI2OWMxNjdjMThjOTIgbGVnYWN5LXRydW5rCiszMjcxMSBiYWU2N2U0MTRhMTNhNDJmMDlkZWZjNjc1M2NmYTBlMDNjMzMwNGIwIHJlbGVhc2UyMi1tYWludAorMzI3MTIgZTA5Mzk5ZTNiMmMwOTBkZjQ5ZWMzYmRhNjRjNDUwMTRkYWJjN2Q5NiBsZWdhY3ktdHJ1bmsKKzMyNzEzIDkyZWJkM2RhZjUwNzJlZjMxYWI1ZGI1ZmQ2Nzk2ZDk4OGUzOGMzMjggbGVnYWN5LXRydW5rCiszMjcxNCA5ODM1YjQxMTMzYWMwNmU2OTY4YWUyNWQ4YWU0ZmRiZTk0MWY2YjJjIGxlZ2FjeS10cnVuaworMzI3MTUgMWJhYmJiNDkxOWE3ZjE3ZDJmZGJlOWFmNzAzYWE2NDUwMjY5OGZjMyBsZWdhY3ktdHJ1bmsKKzMyNzE2IGMwMTlhYTgyN2Y4NjA1Njk3NmQyOTEwMGVlMDAyODFmN2YyZDkzODMgbGVnYWN5LXRydW5rCiszMjcxNyBhYjdkYzUzOGY2ZjcyZDI4YTIxYjkyZWVjMDQ2YzU1ODczYjBiMWE0IGxlZ2FjeS10cnVuaworMzI3MTggOGU5MmYyZTJiZGE5ZjViMGMwZmIwYjhlMDUwZWEzMjk1Njk4ZWQ4YyBsZWdhY3ktdHJ1bmsKKzMyNzE5IGJmMTYzNGIwMjNkNWFlY2ViODQ4ZDlhNzE3YTIzOGU4YmE5YWI4NDcgbGVnYWN5LXRydW5rCiszMjcyMCA5MDM0MmYzOTU3MjFkZjY0ZTE5MGM2ZWQ4MWY5NTZmNWNkNGY1MTk5IGxlZ2FjeS10cnVuaworMzI3MjEgMDQwNjVjNGExYzZiNWFmZTUzOThhMDlhOTEzZTAzNjdiZWU5NzA0OSBsZWdhY3ktdHJ1bmsKKzMyNzIyIDFjODQ4ZTlmNjE2NjIzMWMwN2VjZGFmODUxNDBjYzMyODAzZjk2N2EgbGVnYWN5LXRydW5rCiszMjcyMyA1NjQ4OTcwYzY2NWYxN2YzOGQ4OGVlMjhiNTMyZWIzZmQ3Yzk5Y2Q0IGxlZ2FjeS10cnVuaworMzI3MjQgYjEwYTdmYWNjMWU4ODZkZTg0MjMyOWMxYmMzYTYzZmUxNGZiY2FkNyBsZWdhY3ktdHJ1bmsKKzMyNzI1IDg1ZjFhOTRhZjM3NDIyNmY0OTQ0MDk0MGU2MGY1Y2NiYjRiN2U2YTcgbGVnYWN5LXRydW5rCiszMjcyNiBjZDQ4OTAzZTQxYmVmY2RlMTYxNjY3ZjZhYjNmMTcwODNjZDZkYjU2IGxlZ2FjeS10cnVuaworMzI3MjcgYzRlOGM2NzIxZTQ1NjY1M2FkMTdjYjhhZDZiYmVkMDBkYjBlZjEyZSBsZWdhY3ktdHJ1bmsKKzMyNzI4IDk4OGIzZTgwNzA0MzZkZTIzYjU2NzY2OWNmODQ4NzA2NTJjZGNlODYgbGVnYWN5LXRydW5rCiszMjcyOSAzNWEwOWRjODA4NGM5ZDBhZWY5MjI5MTRhNTMxMTIwYmYwMzk5MzMxIGxlZ2FjeS10cnVuaworMzI3MzAgYWQ4NGZlNThlYzJmOGFkNzdiNjQ0YTkxOGM5M2E0YTk2NTJkZDljMyBsZWdhY3ktdHJ1bmsKKzMyNzMxIDc1NGM0MWJjYzgxYTJjODEzYWNlNTgwYTJlY2FlMmNlZWQ0ODg1OGIgbGVnYWN5LXRydW5rCiszMjczMiA3OGVmYmFkNTNkZDg2Yjc3YmEzOWY3OGE5NzhhZDViNTNlOTIzMDMyIGxlZ2FjeS10cnVuaworMzI3MzMgZjU3NzUxZmZkNmU3OGFiZWNjZmRhM2U2NWEwNTU4YzIwNDY0MjE1YiBsZWdhY3ktdHJ1bmsKKzMyNzM0IDQzN2JjZDUyY2MwNDVjZjYzNjYwY2JkYThmMDk1NzA2NTNiY2YzODYgbGVnYWN5LXRydW5rCiszMjczNSBmZjEzNmZlZjcyMzFjNDdmNDRmMDIxZTVkMGI2YzVlMjEzOWQ0YmJkIGxlZ2FjeS10cnVuaworMzI3MzYgNTQwYTc3MjAyOGQyNmE1MzljNGNiYzNkMGUzN2FkZGE1ZjkyMmM0YSByZWxlYXNlMjItbWFpbnQKKzMyNzM3IDcwN2U1Zjg5YzIxMWIwZDVlZjFlZmFiNmFhNWZiYmZkNjI1MjJhNDcgbGVnYWN5LXRydW5rCiszMjczOCBjZTFkN2UxMGY0OWU5ZDBjYTY2MzJhZTJmY2IyYTMwYzQ4ZjkwYjlmIGxlZ2FjeS10cnVuaworMzI3MzkgNWEwYmI2ZWFhNzc2MTg4MGE5ZDExYTQ5ODY1MTQ2YjE2YTUwOTg4YyBsZWdhY3ktdHJ1bmsKKzMyNzQwIDQzMmFkZDg0ZTA2MmRjYTk3YmNiZTcwMWI5YWU5ZTVmYWVjODFhYmMgbGVnYWN5LXRydW5rCiszMjc0MSA1MjZmMzdmYjM4MGQ4NjQ3MDRmNDVhMjhmYjBlODE2NGFjMjhlYzUxIGxlZ2FjeS10cnVuaworMzI3NDIgNGIyZTA1YzE3NTRlNmQzMzRiNzBiMjFiMTY5Mzc4NThhMTFkNGQ2NSByZWxlYXNlMjItbWFpbnQKKzMyNzQzIGE1NzFhOWQ2MjU3YTJhZDFhZDA1N2UxMzU0YmYzMWUzNjJiNmYyY2YgbGVnYWN5LXRydW5rCiszMjc0NCA1YmY5NjE4NmRiMzFjNTM5ODJlNDI4Mjk0MmE5ZTkyMWUxZDU1NjYzIGxlZ2FjeS10cnVuaworMzI3NDUgMjIwNjAwMDRiOTRhZWVmYTA4YTU5NTk2ZTExZjIwYWNkYWQxY2ExMyBsZWdhY3ktdHJ1bmsKKzMyNzQ2IDRhZTNjMmQ5ODg5MGJkODk3NDYxZGNiODdiNThmYTAwYzg2NzY5NDQgbGVnYWN5LXRydW5rCiszMjc0NyBhMWQ1NjMxOWVmMGViMzg0MDczMTNlMzQwOGIyMjhhMTY3ZTZjNDg4IGxlZ2FjeS10cnVuaworMzI3NDggMjJiODkwZDE1N2Y3ZGIxYjY2ZmMzYjViNzlmOGY3Nzc1YjNhNjAzYiBsZWdhY3ktdHJ1bmsKKzMyNzQ5IGM1ZTk2NTVlYmVkNzJiOTBlZDUyZmI3ZDRiYjY4ODI4OWMzZGM5OWUgbGVnYWN5LXRydW5rCiszMjc1MCAzY2Q1YWVjNTllZDIzZGE1ZWM2NGQ0MDE3NjE4ZmVhNzhhYjJiZTZkIGxlZ2FjeS10cnVuaworMzI3NTEgZThiNTcwOTA1MmUyNWEyZDAxMGZiZWQ1MDViMzlkYWYyZWM1MTA3ZCBsZWdhY3ktdHJ1bmsKKzMyNzUyIDI0ODA5NmE0NTczMmMxYTA1MTUzNTczMGY0NGUxMDkxNTRhODQzYmEgbGVnYWN5LXRydW5rCiszMjc1MyA1Y2U2Mjk2NDIxNTU5ZTFkNjJiMGVhYzhkYmIyYmRhOWEwNmE4NmVmIGxlZ2FjeS10cnVuaworMzI3NTQgMzRkNjNiOGMyNzViYjljMzA0MDdkNTVmZGI5YzdiOWEwM2ZlYmE2YyBsZWdhY3ktdHJ1bmsKKzMyNzU1IDMyZTcwYWQ3OWY2NmQwY2Y4N2I0OGZiMjM1NTA1YmIyMWY2NWQ3ZDUgbGVnYWN5LXRydW5rCiszMjc1NiA3YTFhZTQ3NWUwZGFkNWZmYTliOGU2ZDRmOTk0ZmFiZDY0Y2I3YjQ4IGxlZ2FjeS10cnVuaworMzI3NTcgNjRhOWUxYmUzMjUxM2Q1ODlmYTQwMThkNTQ2M2YxMTM0MTY4ODU1YiBsZWdhY3ktdHJ1bmsKKzMyNzU4IGE1ZTk5ZTdlN2ZmMDMzZGI4NWM1ZWNjYjVjYzgxMjRhMmQxMzZmNDQgbGVnYWN5LXRydW5rCiszMjc1OSAxOWM0MTQxODZiOWU1MDViMTcyNWY4MDdhMTFlMGZhYTcxNGY5MWU4IGxlZ2FjeS10cnVuaworMzI3NjAgOTFkZTNhMDkyNGEyOThhZDk1MjhiNGYzNTRhZDI4OTY4NWUwMWNmNSBsZWdhY3ktdHJ1bmsKKzMyNzYxIDkzYzkyZjIwYjZiZmI2ZGQwMjU2MzA1ZmMzMmNlODA4Nzk1MGU2NWEgbGVnYWN5LXRydW5rCiszMjc2MiBjYjAwMjU0NTE0ODJiYzM2N2JhZTNhOWUwMGU4MDhlNDE1MWY5ZjE4IGxlZ2FjeS10cnVuaworMzI3NjMgYzA2YmY2YjJiMTlkOTAyY2Y4YWI5ZWZhZWUxYzJiYWU5MWFiNzg3NyBsZWdhY3ktdHJ1bmsKKzMyNzY0IGQ2YmE4MTlhMmY5MDEzYjU4YWViODUxZmU3YzFhOTkyNGI0NGZlMGYgbGVnYWN5LXRydW5rCiszMjc2NSBmNGQ0MDZhY2YxY2EwYmQ1NGRiOGQ3OGYzYmVjY2E3NDNhOGVkNjE5IGxlZ2FjeS10cnVuaworMzI3NjYgODU0MDYwNDVmMDE0ZGQ5ZGRlMjg1ZTU4NzIyYzIzNjg3ZmE0MDdkOSBsZWdhY3ktdHJ1bmsKKzMyNzY3IDUyMzcyZGMxOTBmY2ZiZmEwNzVlNzU0NTJjYWMzYzBlNjU4ODhjNmMgbGVnYWN5LXRydW5rCiszMjc2OCA0YjAyMjAyNjBmNjJlMWY0YjY0OTQwYTljZWU1YzI4NjQ1MTk0NGZmIGxlZ2FjeS10cnVuaworMzI3NjkgNGY4N2E4NGU5YmViYjI5ZmIwZGQ4NzZmZDc5YzU0YmMwMDNlMDdjYyBsZWdhY3ktdHJ1bmsKKzMyNzcwIDI0Nzg2YzMxMzBjYTg3NmRjNGE1OWNlZGNhODk2OTgzZjU5ODVhYjcgbGVnYWN5LXRydW5rCiszMjc3MSA2YWMwYTY3MmIwODIxM2ZlZTcwODU4OTc0MGI2MThmZmZlOTQxZDg2IGxlZ2FjeS10cnVuaworMzI3NzIgZDdhYzFhNjQwZDhmOWMwMGNhNjIyMjRkZmJlYTg2MzVjYzAxN2VlOCBsZWdhY3ktdHJ1bmsKKzMyNzczIDc4NzVmY2FhZTdhMzcxMmYxZTRiZmY4ZTM3OGViZGY3MWYxOGI5Y2UgbGVnYWN5LXRydW5rCiszMjc3NCBhZGRkNDM3YmU3NDkyMTYyN2RjYTk4OTM2NWE2NzIzNjMxNjAxOThjIGxlZ2FjeS10cnVuaworMzI3NzUgMjlmMTk0NjBmMDY3ODU1YzZkYWQ3NGE1MmU4MGQ5Mjg0OWVmMDhkNiBsZWdhY3ktdHJ1bmsKKzMyNzc2IGM3ZGZkYTk5M2IyZmFlZGEzMmMwNzllYjE2OTJlYWM0NGI3NDllNWUgbGVnYWN5LXRydW5rCiszMjc3NyBjZmY2YjhmNDIyZDE3YTY2MGNhMjE3NWQxNzFkYjhhOTJmYzkxOWI5IGxlZ2FjeS10cnVuaworMzI3NzggN2Y1OWRjZThmOGMwZDQyNDkxMzFhMDI4ZGI5N2RiZjI0MzRiY2ZlNCBsZWdhY3ktdHJ1bmsKKzMyNzc5IDkyZTUzYzhlN2E3MjQzYjIxNDNmYTg3YWNkZWUzMTcwYmEzYWFjNzkgbGVnYWN5LXRydW5rCiszMjc4MCA2ZDkzMzMwNzc2MWMwMTU1OWY5YzBhNDIwYjZiOGEwNmUxZDIxODdmIGxlZ2FjeS10cnVuaworMzI3ODEgZTY2OTFjZTkxYjlmZDllNTk4OTdmNGRlZDI1YWYxYzA0ZGQwMDYwNSByZWxlYXNlMjItbWFpbnQKKzMyNzgyIDUyYWViYzE0MDA2ODdkMzQ2NjhhZmZlOWM0NzY1ODk1ZDg4MjYxNGMgbGVnYWN5LXRydW5rCiszMjc4MyBjZjMzODYzM2IwNzQ2YzBhZWJjZmEwMTU2YjBhNzg3ZDA5OTYxYTgzIGxlZ2FjeS10cnVuaworMzI3ODQgNGNiZjc3ZWRlZWQ1Mjc5MmIxMTczMzFiMzNkMDVmNGRjMDU1ZjhkNCBsZWdhY3ktdHJ1bmsKKzMyNzg1IDk4NzZiMThlZGNhYjQwNjA4YWFhZTY3YjNjMjQzOTVkZGE5YzVmNzggbGVnYWN5LXRydW5rCiszMjc4NiA2NmFhMTA1YzhkMTc5OGIxOTdiM2M3NjIyZDZhOWFjOWU3ZDJiZTI0IGxlZ2FjeS10cnVuaworMzI3ODcgNjBlNzNjNTA1Y2YyYzFjMjliNjE3ZTU2YzJlMTg0Zjc5NjdkMDExNyBsZWdhY3ktdHJ1bmsKKzMyNzg4IDUzZGQ4YzQyNjNmZDMxZGZhOTllMmU2YTU1MWQ3NTk4MTI1NDBkYmIgbGVnYWN5LXRydW5rCiszMjc4OSAyYzM1OTJkMTJkNjk0ZTNhYjgzNTE5NmEyMTVkMjEyMWVkMzMyNmJkIGxlZ2FjeS10cnVuaworMzI3OTAgYzFlODNiOGQ1YjcwZmVkZTUyYjU3MzIxYjk5ODMyZGY5NjU1YWZkOSBsZWdhY3ktdHJ1bmsKKzMyNzkxIGU5ZjlhMTk2ZmRlZmU0ZjcyZTg3NjBiYWIwNDE5NjBmNDYyNDdkZTYgcmVsZWFzZTIyLW1haW50CiszMjc5MiBjMzEwZjlkZGZkY2JkYjFhN2I1NTNiMWYyODA5M2U1YzI5YTM5NDM4IGxlZ2FjeS10cnVuaworMzI3OTMgYWUwNGE3M2JmOGZjMWJlNzEzMDU5NzAwYzAxNGYxZDg2MDY4YmUxMSBsZWdhY3ktdHJ1bmsKKzMyNzk0IGU1N2UyMmFhNTZhNDg2NzcwMzVkNGMwNTgyMjQ1YjRhMzRhZDg2YTEgbGVnYWN5LXRydW5rCiszMjc5NSBmOTM1MTJmMWUyMGZmMTZlNTVjNDM4YmE1OTBjNmEzOGY4YjI0OTlkIGxlZ2FjeS10cnVuaworMzI3OTYgNWRhMTk4NDgwYjZhNzZmZTM4YTFhNjZhNjFhM2QwMjc5NWRlYmJlNSBsZWdhY3ktdHJ1bmsKKzMyNzk3IDQzMzJmMjA1MzNmY2RmM2VhOTRmMjYwYzdiM2M4MDA0Mzc5YWNkYTIgbGVnYWN5LXRydW5rCiszMjc5OCA2OTMxNTVjZGFlMDNmODIxMGI0OTg1ZDg5M2E0NzEyMDVkODA5YTU0IHJlbGVhc2UyMi1tYWludAorMzI3OTkgZTZlMTAwZWZiYzdkMzFlYTQxYTQxYjQwN2JiZmRhMTNmMWNmNmI2YyBsZWdhY3ktdHJ1bmsKKzMyODAwIDJiZjI4OTA0YThlY2FhNTMwYTE1NzMyYzJmMTMyZDM5NmY0MzZhYmMgbGVnYWN5LXRydW5rCiszMjgwMSBiNjE5MWNhOGVkODA3MTU5MmJiYzhlMzJlMDQxZDc3MWJmMmJlZTIzIGxlZ2FjeS10cnVuaworMzI4MDIgYmM1MjE2ODk2M2IzMjFkMGNlOGFiZTEzNTViNzllMDU1ZTY0ZThmZiBsZWdhY3ktdHJ1bmsKKzMyODAzIGVmM2VmODhlMzYxNGY2YTEyNzBiYzNjMDg0OTI3NmQ3ZGQxZGJlMGMgbGVnYWN5LXRydW5rCiszMjgwNCA2YzMwYmIzZTMzMjU3N2M0M2U4NWRhYzVkYmUxNjY2NDZmMDM4MjE3IHJlbGVhc2UyMi1tYWludAorMzI4MDUgOGJlOWEzMTZlYjlkZTE2NWM1NDI4ZjdjMWFhZDY1NjkyNzk5OGM5NiBsZWdhY3ktdHJ1bmsKKzMyODA2IDI5ODJlNjE4MjU2NjFlZjFiOWI5NmMxMGI5MmNhMWRhNmY1MGQwZWYgbGVnYWN5LXRydW5rCiszMjgwNyAxNjcyMWQ3M2FkMjkzYmQ5MjcxZmU2YmE2ODYxNTcwMjExNmE1NWE5IGxlZ2FjeS10cnVuaworMzI4MDggNWU2ZDBkY2YxNTVmODczNGU4ZTBmMjRhMjdlYTYxMjEzMmJlNGU0ZiBsZWdhY3ktdHJ1bmsKKzMyODA5IDQ2ZmMzZjhlOWVlZTMzOWM1ZmM4MjM3M2YwMmZmNTkxN2MyMDBjZDMgbGVnYWN5LXRydW5rCiszMjgxMCA5ZDhkZTU2NWU1ZGVhY2RjN2M1MzU5YWVlOTEyYzkwYjQyYjdjMWExIGxlZ2FjeS10cnVuaworMzI4MTEgN2YwMDc0ZWU4YWI5OTUzMjk3ODE3OTJmOWNmNDkzMjhjZjQyYWYwMSBsZWdhY3ktdHJ1bmsKKzMyODEyIDAwMWQzYzdlOTYzNzBjNjVjYTgzZGRhYTdjZjAxYWFmYWNiM2Q1YTQgbGVnYWN5LXRydW5rCiszMjgxMyA1MzJkZTE5MzMyYTQ3OTMxMDc3OWIzOTg4ZmI5ZjVlNDlkZjBjMDk5IGxlZ2FjeS10cnVuaworMzI4MTQgNGMxZDFiMzU5ZjA2NjljOGE1ZmM1MTgwYmQ5MjEwZDQ0MTA3ZWIzYSBsZWdhY3ktdHJ1bmsKKzMyODE1IDFkNGVjNTJiMzE2YzBiODBkMmE3MjVmYTNmOGUwZWFmNjhhMmI2NTMgbGVnYWN5LXRydW5rCiszMjgxNiAzODRiZGEzNDM3MjVhMGRlZDBkY2RmMjgwMTdkNDZkYWNmOGNmZWI0IGxlZ2FjeS10cnVuaworMzI4MTcgMmJiNWNlZWY5YWMzYzJkMjIxNDdmYmJiMDdiYjFjNjg0MmE2YzA5ZiBsZWdhY3ktdHJ1bmsKKzMyODE4IDRkOTAxN2VmN2I1ZjMxMTA4OTljOWQ0NGEzYjRmMTYzZjEwNmRlNzIgbGVnYWN5LXRydW5rCiszMjgxOSAzZjlhYTZmMWFlZjA4YzRkMjJlNjIxODJmNjU5OTg4ODljN2U2ZjRmIGxlZ2FjeS10cnVuaworMzI4MjAgODliNGU4ZTJjMjMwY2JlODVmMDY0NDFkNGJkMGE2YjA3ZDQ1MWNmMyByZWxlYXNlMjItbWFpbnQKKzMyODIxIDY0M2YzYWM0MzBiZTg3ZGM0ZTEwYjk0NDczOThmYWMzNmExNTY1ODMgcmVsZWFzZTIyLW1haW50CiszMjgyMiA2NTQ1ZTc0OTg2MzVlYzIxOWRiMGIwZjY4ZTA3YWZjNmRhMmU1ODFkIGxlZ2FjeS10cnVuaworMzI4MjMgNDM0ZWYxNzRmNDc4NjIzODI5YjY5OTNhMDU3YTg3NzUwMTA0NDI3MCBsZWdhY3ktdHJ1bmsKKzMyODI0IGYwYjY3NzMxZTU0NWI1Yjk0NDczYzRhZDM3YzNiMmQyNGJhMTgwYzcgbGVnYWN5LXRydW5rCiszMjgyNSA5Y2YwOWY5MmIxOThiZWRjZWY4NDI3YWEwOGZjN2M3MTEwMDNkZjMzIGxlZ2FjeS10cnVuaworMzI4MjYgOWFlMTdiMzc3OWJiYjAyZDBmMjRhOWI0YjkzZjJmYmUwYzQyMTM0YSBsZWdhY3ktdHJ1bmsKKzMyODI3IDQyMWZmZDdjNTdhZmVlYTczODAyM2FkYzE1MmFlMTI4ZmMyNzI3MDAgbGVnYWN5LXRydW5rCiszMjgyOCBlZmU1ZGQ2MGNlZTg4YWJmN2NmNTg2ZGNhMmI0MWVhMDhkOWEyMGU5IHJlbGVhc2UyMi1tYWludAorMzI4MjkgNDVmN2RlN2YxMDUyYzhiMDFjZjZhZGNlMzQwMjAyZDg2MWY3MzYwYyByZWxlYXNlMjItbWFpbnQKKzMyODMwIDU3MGE3YjhhYTE1NDIxNjU2NWM3MmVmMzU3OWI1MTgyNmM2NGExYWMgcmVsZWFzZTIyLW1haW50CiszMjgzMSA0ZjUzMWNkZjI0MmU4YWMyZjkxZWNiOWU3M2RhZjA4MzQzNmFkYzUyIGxlZ2FjeS10cnVuaworMzI4MzIgMWRjN2MwYTAyMGQzZDdlMzViNzJhMTFiMDQ4ZWRmYTQ3NDg3NGJmZCBsZWdhY3ktdHJ1bmsKKzMyODMzIDZlOTVhZGQ5MmM5OWJhYjhmM2MwZmQ3MjExODc0MGQwMmJlNzNjMWEgbGVnYWN5LXRydW5rCiszMjgzNCA0NjMwMGI5YWYwMmI5NGRhZGNlNTIxNGJkOWU2ZDI3YWQ0ZDJmNmY4IGxlZ2FjeS10cnVuaworMzI4MzUgZjQ3NWJlYzMxNjk1NTE0NDVjN2ViNWQ4ZTQwOTY0M2JiZWIwMzlkNSByZWxlYXNlMjItbWFpbnQKKzMyODM2IDA1NGQ5YmMwZDg2MDhhYjczNDRkMDZhZDYwMWFkNzE2YzBkYTk1ZTggcmVsZWFzZTIyLW1haW50CiszMjgzNyBmMzljMjcxYTlhOGU2YzIyOGE0MTA5NDA0MmQ0NGM0ZGJiMWFkZWI4IGxlZ2FjeS10cnVuaworMzI4MzggOWFhMDZjYmQ5Y2MxYTMwN2M0YzljOTJkYzlmMzAxNjhjNjU2NTdkYyBsZWdhY3ktdHJ1bmsKKzMyODM5IGM3ZjZmNzM3NDNiMDhiNDhiMzNmYTQ3YzRhODc5ZGFiMDI3NTlhY2QgcmVsZWFzZTIyLW1haW50CiszMjg0MCAyYWFhMzllZGM1MTFlN2QzMDBiYTIxMzQ2Mzc3ZGMxODhkM2UxN2JmIGxlZ2FjeS10cnVuaworMzI4NDEgODk2YmJkMDgwNmU4ZjNmMjBiYmQ1NzgxYjcyZmYyYWZmMzlkYTIzYyBsZWdhY3ktdHJ1bmsKKzMyODQyIGJlZTNkMWExYjlhOWEzY2IxNTViNzY2MTU4MjhjYjUxZTY4YmY4MjMgbGVnYWN5LXRydW5rCiszMjg0MyA0YjFjMTUwZDA3ZDhjNWIwNDFiYjM1ZDVhZGI3MTAzYWY4YTQ2YzExIGxlZ2FjeS10cnVuaworMzI4NDQgMjI3YzY2NDZjYzZiYjViMWEyYjRiZWIxNWIxZWI4ZDZiMWU3YmUzMyBsZWdhY3ktdHJ1bmsKKzMyODQ1IDEyOTdkNDA1MTU1YmQzNmQxNTdlNmExZGNjYTdiOTcxMTkzZGU1ZjIgbGVnYWN5LXRydW5rCiszMjg0NiA5YjI0MjUwNmQ2ZGM3ZDQ3ZjNkYjhkNjc1YmU3MzI3NjM0MzJkZDlhIGxlZ2FjeS10cnVuaworMzI4NDcgZDY2NWM2Yjk4Y2QyNDFiYTY3ZGFhYTYyYWZhNWI1MzdkNzU5MTczOSByZWxlYXNlMjItbWFpbnQKKzMyODQ4IDgxMjk2YTgwYTE1ZjJlMjA1YjdjOWQzN2I3YjRlMGUzNDM3MTUwOTcgcmVsZWFzZTIyLW1haW50CiszMjg0OSA2ZDZiZGEyNTQ5YjZiZDQ2MGQ1YjM0ZjBlNGVmYjI1Yjg5NDY5MDAyIHJlbGVhc2UyMi1tYWludAorMzI4NTAgYTkyMTBiZWMzYjVhZjkyNzQ5MTY2NzI0ZmNjMTMwODkzYWNiZjQ1OCByZWxlYXNlMjItbWFpbnQKKzMyODUxIDBhOTdhZGM2YTQ3ZWIyNDVjYzlhN2VjMjJiNGUyOTQ3NzNmYWZhMzIgcmVsZWFzZTIyLW1haW50CiszMjg1MiBiOTc2MmYwMDNmMzA4ZDE3NTI3MzFhZTNmYmJlZjMwZjFjZjFmOTdmIGxlZ2FjeS10cnVuaworMzI4NTMgY2QxYzgyNmM5OGEyYmZiY2U0YWFlZGI1YjFmMDA5Y2IzYmRiMDc1ZCBsZWdhY3ktdHJ1bmsKKzMyODU0IDM2MWZhZDYzMzMyZGQyNDkwNWQyMjgzOWYwZmI2NjJjZGRkZDlmNjkgcmVsZWFzZTIyLW1haW50CiszMjg1NSA3NTRmZDM0YWQ5Nzg0ZTJjNzdlNzE2NzliNWM0NjZmZTNmOTIwYTZjIGxlZ2FjeS10cnVuaworMzI4NTYgZjZlOTFjYTU2YTQ5OGM3ZjYwYjU5ZmQ3ODIwYzIxY2RjYjg4MTcxYiBsZWdhY3ktdHJ1bmsKKzMyODU3IDMxNWE3NDcyNzdiZmU3NmQ1ODM5NTM3OGU5ZTEwNGI1OWFhMGI0NzYgbGVnYWN5LXRydW5rCiszMjg1OCBiMWY2NDM2OTBhODg3Y2UyMWVkZTY4YjJmMmU5YzE3NGJiYWZmMTU2IGxlZ2FjeS10cnVuaworMzI4NTkgNTZmZmNhMDJjODI0M2IzNTFmZTc0MjQzMmYxOTVkNjhmZWU2NzM5NiBsZWdhY3ktdHJ1bmsKKzMyODYwIGU3MDk0MzkzMzczOWVmY2E2OTA2NGUxZWQyYjAwODI1MGQ5ZmI0NmIgcmVsZWFzZTIyLW1haW50CiszMjg2MSA1ZWNjNDhhZDY2MzQwMDBlN2VkNjNjNDA1YjFmNWI2ZmMwMzYzZTYxIHJlbGVhc2UyMi1tYWludAorMzI4NjIgZmY5YmEzZDFlMjgwY2M2MjE3M2M0OGFlMmU2YmJlZGM0MWFkZDY3NiBsZWdhY3ktdHJ1bmsKKzMyODYzIGRhMmM1ZDlkZDYwZTA3ZTMzMzQzODI4MzJlYTc3MWM2MjE4MGMwZDEgcmVsZWFzZTIyLW1haW50CiszMjg2NCAzNWIyNzY5YjAyYjYzNDA5OTg2NTIxNzIyMTQ5YmIwMjQ5M2M5ODRmIHJlbGVhc2UyMi1tYWludAorMzI4NjUgZTVhZmYwNjAzN2I3OTRlNmVlYTg2N2IxYWQzZWQxNzhkOTU5YzA2NSByZWxlYXNlMjItbWFpbnQKKzMyODY2IGQ5Y2Y1MzZjNTM0MGNlZGRlN2Y1N2U3ZmVmNDJhZGFlY2VhZjI1ODkgbGVnYWN5LXRydW5rCiszMjg2NyA1ODRkYzQ2Y2EwNjZkYTAzODNjMmRkZTY0ODgwZTIwMTgwNThhOGJmIGxlZ2FjeS10cnVuaworMzI4NjggNjQ2MjIxNmZlM2E4N2FiYzBhZDU5NTE5NmFlMmJjOTNkZTE2ODM2ZSByZWxlYXNlMjItbWFpbnQKKzMyODY5IDRiYWM0ZDBkM2UzZWQxYjI4ODc3Yjc5NTM2Y2MwZjUzYzdkYmY4Y2QgcmVsZWFzZTIyLW1haW50CiszMjg3MCA2OTk3NDY2MzMyNDZjNzI5NmU1MjJkNmVkYzA0NDMyZmI3ZTNjMjY1IGxlZ2FjeS10cnVuaworMzI4NzEgZjA1YmFlNDEyYjcxYjI0NTcwN2YwMzcxMjFlMWE3MWM5YTFjNjJhNyByZWxlYXNlMjItbWFpbnQKKzMyODcyIDk4NTY3MDY1MDY0YjdiYjU5N2IyMzEwOGQwOGMyMGM2NmZlNmUyNDkgcmVsZWFzZTIyLW1haW50CiszMjg3MyAwNTIzZjA5YmIzNDg2NzU2YjdlZTllMzIwYjQ4MjE1NjU2NjliZWVjIGxlZ2FjeS10cnVuaworMzI4NzQgODU2MGIxNDZmNDFmMWQwN2MyNjcyNDIzNDk5MWI2NTUyMGYxODc5YSByZWxlYXNlMjItbWFpbnQKKzMyODc1IGYxNTYyNmM3NjQxODY3MzllNzE0ZGI5ZDExYWY2MmVkMzFkOTY4OTkgbGVnYWN5LXRydW5rCiszMjg3NiAyN2VjMTQ3MWRjYjZhOTJmMmExMTkxMTVhNTg2MDY1ZmFjNjM2ZjJjIHJlbGVhc2UyMi1tYWludAorMzI4NzcgZWEyOTU4YmQ0MjcxZmYxNjYzNjJmZWE5ZDVmOGQ2MGM3MzVhYTgwMSBsZWdhY3ktdHJ1bmsKKzMyODc4IDg1OGQ1NjhlYmY3NjMxMTA3YTFlZDE4YjQwYjNiMTBiZmE1YmUxZGEgbGVnYWN5LXRydW5rCiszMjg3OSBmM2YzMDY0NTdiNDMwZWExOWQ3ZGU3OTQ2YjdiN2JiODUxNDUwZjA5IGxlZ2FjeS10cnVuaworMzI4ODAgM2FhZjI0Yjk0OWRmYjYyMDkxNWM2OTA1M2M4ZDY3Y2M3ZGM1MTM1OCByZWxlYXNlMjItbWFpbnQKKzMyODgxIDA1MmM2MjYzZGYyNjlhMjY0YzIxODRmZDgzOGNiNmRhNDNlMjYzOTEgbGVnYWN5LXRydW5rCiszMjg4MiAxMDhhMTAwNmE5MDUzYTRmYzM2YzExMjA1YmU2ODE1MzYxNzA1ZGFjIHJlbGVhc2UyMi1tYWludAorMzI4ODMgZjdkZmFlYWE0YWI5ODhhNTQ2YWVlMmE4ZGIxYWZlZWIzN2Y5NjdkMCByZWxlYXNlMjItbWFpbnQKKzMyODg0IGJkODIxNjFiNjFlNTU2OTQ2YjI0OGEyMDkzNmNhNzU5YzZjZTZlNzEgbGVnYWN5LXRydW5rCiszMjg4NSA2N2Q1NjBkNjA4Y2VkNzZhZmUxZTFiNDU3MmRiZTIzNmQ5NmE2YTJkIHJlbGVhc2UyMi1tYWludAorMzI4ODYgODU2YzgxZjcxMjEzZGEyM2U5NjA0ZmJjOGVmOWZhZTkxZDliNzAyMCByZWxlYXNlMjItbWFpbnQKKzMyODg3IGVhZjkwZTg1MGQxMmU5ZmYxMDdiNWZiMmQ0NTQzNGY3OWY3ZmJlMjAgcmVsZWFzZTIyLW1haW50CiszMjg4OCAzNzdhMjlmNmQ2ODc5M2Q2ODdiMTk3ZWY3ZTMyYmQxODM2NDcwMjNmIHJlbGVhc2UyMi1tYWludAorMzI4ODkgZjNkMWVkMTQxMTg4MmQ1OGUxYzk5MjkxNTcyMDA5NTg3NjgxNmFkMSByZWxlYXNlMjItbWFpbnQKKzMyODg5IGFjNzdiOTEzNDI1MzRkMDliMWU0MzJlMWRjM2I3MGRiYmVjM2E5MTkgcmVsZWFzZTIyLW1haW50CiszMjg5MSAwNjg1MjlhOTA5OTI2ZDRmNjAzY2YwYjZkNmEwZDRhMzM0NGFkZGZmIGxlZ2FjeS10cnVuaworMzI4OTIgNzUyZmM1ZWExNmI5YmQxM2ZiMTY0MDFkMjYyMGFmNTU5OTA5MzViYyBsZWdhY3ktdHJ1bmsKKzMyODkzIDM1ZDcwMGQ5MDE1ZTA1ODg4Y2IwY2Q5YjY3NmI4NGFiYjZlNWY2ZjkgbGVnYWN5LXRydW5rCiszMjg5NCBlNzIxMDI1Y2NhMDkzOWZhNjVlMmMzNmRjMjY0MDRmZjQwZGZlNjlmIGxlZ2FjeS10cnVuaworMzI4OTUgMzg3ZDdjMjIxNmExNjliNmM2NmQ4NGY4ZTQxYjIzNDhjZmE2MzBjYSByZWxlYXNlMjItbWFpbnQKKzMyODk2IGQ3MmFkMDdjNzM5ZWEyYzhlMzU2MDFmOTc2MmY5MzJjNWU5NzY1MmIgbGVnYWN5LXRydW5rCiszMjg5NyA2NDIyN2Y4ZGU3ZGFjMTA1ODQwNDQ1NmNkZmU0Y2UxMTNmNDUxNmYyIGxlZ2FjeS10cnVuaworMzI4OTggMjNhZDhiNWQ3YjRhMGVmMzY4OTc0ZDMwNmUxNmU5ZTRmMDViNDhkNiBsZWdhY3ktdHJ1bmsKKzMyODk5IGNhMGM4MTM3ZGU4NDQ1NWVhZmUxOTI0ODUzMjE2NjdkNzFiMGNkZGEgbGVnYWN5LXRydW5rCiszMjkwMCAzOWI4NzE2Nzg0Njc1M2QyMjU1MDMxMGU4ZTViOTg3ZGRlMjZjMDA2IGxlZ2FjeS10cnVuaworMzI5MDEgMWMzMmQ0MjA3NDA0YTg2NDQ1ZjE5MGUwNDRmMTcxYjc1OWY1NmI4NSByZWxlYXNlMjItbWFpbnQKKzMyOTAyIDJmNDI4NzVkOTM3ZjI0ZDU0ZDc5OWFmNzczMjlkMzE3ZTFhY2RjY2QgbGVnYWN5LXRydW5rCiszMjkwMyA4OTNhZTUyNjY3NzY1M2YzMGEzNWVkYWViNTczNDQ1OGJlMDE1MzhjIGxlZ2FjeS10cnVuaworMzI5MDQgMzQ2MDlmYTM1YjExYzE3ZmI1M2E1MzQ5ZjIyMGUwNDA5ZmJmNzg5OCBsZWdhY3ktdHJ1bmsKKzMyOTA1IDNhOGIxZDE2YjdjNmNkY2RiNTUyYWQxNGRjZmVhYzcwODY1ZWIzZjEgbGVnYWN5LXRydW5rCiszMjkwNiAwYjc2Njc5YmYzZjk4Yjc3NDFjZmE4ZTg2NTJkNjk1NzU2NjM0MmY4IGxlZ2FjeS10cnVuaworMzI5MDcgYjRjOTJlOTgwM2E2MjEyMzRkYjZlYjQ5YzZmMjRkYzczZjZiMjA2YSBsZWdhY3ktdHJ1bmsKKzMyOTA4IGJlNzBiODQ3N2Y0M2QwOGE2ODI3OTgxOGFmOGEwYjY4ZjRmZTZlZTYgbGVnYWN5LXRydW5rCiszMjkwOSAzNjg5YjAwNTVjMmRiMjI5NmE5ZTlhOTk3YWMyYTUwNTE5MmRjZmYzIGxlZ2FjeS10cnVuaworMzI5MTAgYjkwOWZkZjBlZGY4ZGRlMGM2NzgyODU3NzA5YTJjMDMyN2YxZDVlYSBsZWdhY3ktdHJ1bmsKKzMyOTExIGRlYTM4MTE2YzM3MzUyNmRjNDY2ZTFjNzI5ODYxNTA3MWRiN2NhNjYgbGVnYWN5LXRydW5rCiszMjkxMiAxOGMwMjA0NjM5NjVkMDI5ZGY3YzEwM2ZlMzBkNGM4ZGY0OWQ2OTc2IGxlZ2FjeS10cnVuaworMzI5MTMgZjFlNTY3NDg1MTk0NDhiYzljMDRjMjAyYTRmM2JjZjY2MjljZmFjZiBsZWdhY3ktdHJ1bmsKKzMyOTE0IDE2MWYwNWY0NjgwZDlkM2Q4Mjc3NWZjOWM5MWExMmYwNDY3ZThmNjcgbGVnYWN5LXRydW5rCiszMjkxNSAzNGY0MmUzNDUwYjRkNjJjMzk1MmU5NjhlZWZiODhmYWU5MmIyYjZiIGxlZ2FjeS10cnVuaworMzI5MTYgN2VhNTUwZWNmNDNkNzRlZDQzM2I1Mjk4ZGFkNTJiY2MwMmZkNWI1YiBsZWdhY3ktdHJ1bmsKKzMyOTE3IDQ1YzZiZTM1NzMzZmRkNmFmOGJjYWQ1Yzc2OTllNzBhMTM4YWE3YmMgbGVnYWN5LXRydW5rCiszMjkxOCBhOWQ3NzhiZDk2NTM2ODgzM2YyOTdjZGNmZDhhYWM2OWYxMDdjNjQ5IGxlZ2FjeS10cnVuaworMzI5MTkgNzRkYTRkMmVhYWQzNjc5YmVlNzVhNDc2NWIxNDAwMGIxMTI5ZGVmZCBsZWdhY3ktdHJ1bmsKKzMyOTIwIGQyM2U5MzIwZDM1MDAyZDY4YTk4NWFmMTEzMjE4MDBlNDUxNWI0ODYgbGVnYWN5LXRydW5rCiszMjkyMSAzYzRkOTVhNGNlMTc3ZTdiYmQ5ZDgwMDZkODU3NTdhNjNkN2VlMDRmIGxlZ2FjeS10cnVuaworMzI5MjIgNzg4N2ZlM2E5YThmZjZhOWE3YWQ4MjE5NDBmNTZmNTY1ZTNiZDY0OCBsZWdhY3ktdHJ1bmsKKzMyOTIzIGM1NjMzOGUwODdjYWNhZjhjMDQxZjZiZDBiMDFlMmEyMGUzNTQ0MTEgbGVnYWN5LXRydW5rCiszMjkyNCAwODYzMDkxOWJmNTJiMmVjOTM0YzEwOTZlZTExODRiNmIxYjQwOTdiIGxlZ2FjeS10cnVuaworMzI5MjUgOGY3M2RmMDk5OTY3MzQwMmEzYmMwMGMxZThlYjg2MzdkNmMwZmQ1ZCBsZWdhY3ktdHJ1bmsKKzMyOTI2IGI3Y2QxZmYwMDE5YjlhZGVkYzMyOTZhMjY1ODhmM2U2MzJlOWY0NjYgbGVnYWN5LXRydW5rCiszMjkyNyA4OTc4MTIzMThmZjQxZDQ5NzAyZDg1NzhjMDA4ODdkMmQ3MzdkMzAzIGxlZ2FjeS10cnVuaworMzI5MjggZGY4MGE1YjY5NTdiNWVlNWE3MjYzY2JjZjY4YjM0MTIyNzIyYTEyMyBsZWdhY3ktdHJ1bmsKKzMyOTI5IGEwNDNhZjYwOGU5NGNjNzMxMTI3OTg1OTVhM2EzOWNmY2Y4MDE5MmQgbGVnYWN5LXRydW5rCiszMjkzMCBmZWM3ZjMzYjY5N2MxODVhNjhlODQyMWNmYjJmN2I1YjVlYTgzMWZmIGxlZ2FjeS10cnVuaworMzI5MzEgNjY3MzA1M2VkYWQzZjNkOThlYjMxMjkwYTA4NDNiYTQwY2Y2OTgwYSByZWxlYXNlMjItbWFpbnQKKzMyOTMyIGNmYmE3NmY3NzY0MzU4ZmYyNDkxZDUxMzU1NzJiZDUwZDNiNGIzNWMgbGVnYWN5LXRydW5rCiszMjkzMyBiMzcyYjkwM2QxMGU3YWRkMzI5M2E5NzdjMGU5MTg3MzU0ODRkZjNhIGxlZ2FjeS10cnVuaworMzI5MzQgOGYyYzVjZjYxNzYzOTA2YzMyZmM4ZDY4ZGVlYTZiZDcwZDUxOWJkYSBsZWdhY3ktdHJ1bmsKKzMyOTM1IDQ5OTJjNjBkNDIyYjI4ZDFmZWI2YjMzYWJiOGY1YWNkMTY2NTU0YTUgbGVnYWN5LXRydW5rCiszMjkzNiBjMzI1ZThmMjBkNmU5NDA5NWYzMGUwN2E1MDgwZWE1MjMxNGJjN2M5IGxlZ2FjeS10cnVuaworMzI5MzcgN2YxMzBhNDM3MGM5ZTM0YzY1ZmU5ZTE2YWVkM2VmZmQxYThjOWQxYSBsZWdhY3ktdHJ1bmsKKzMyOTM4IDhlZWIxZGY2OWYzNTc1MTc0M2FlMDdhMTRlODcwNjgyOTY0ODBkNjcgbGVnYWN5LXRydW5rCiszMjkzOSA5NDlmNDE4MjlmMzZmNGY3ZDNmYWY3ZDk0YzUzMjZmYTQ4ODgyNDIyIGxlZ2FjeS10cnVuaworMzI5NDAgYTVjOGVjYTU0YWViMDFmMzMwNmU5YmRlZDgyMTc1ZmE1ODI3ZDhiZCBsZWdhY3ktdHJ1bmsKKzMyOTQxIGRlNDFmM2NkNjQ3NDQ1MjE0ZmNmM2ZiYjc5OTJjMzFiOTZmYTM4ZDMgbGVnYWN5LXRydW5rCiszMjk0MiAwNDM3Y2Y0YjllZWMxZTJmMDIzMzQyYzlhZTZlN2IzY2I0ZWQxYTdlIGxlZ2FjeS10cnVuaworMzI5NDMgODExYWQ1ZjJmNzAxNGMxMWZlY2E1N2IyYzk3MzkwNWMyN2RiYzc0MCBsZWdhY3ktdHJ1bmsKKzMyOTQ0IGI1YmFkZDNhOGQ0ZjM5MThmYzhhYzVlMDMwNjg5NTJmOGJhNzk4N2IgbGVnYWN5LXRydW5rCiszMjk0NSA3MDYyNmM1NzNlZDcxZGQ5YjZjMWNlMjVkZjdmNDQ1ZmUzMGQxNTE4IGxlZ2FjeS10cnVuaworMzI5NDYgMjE0NTFmNzYwNTk2MzFjY2E5NWYyZTVmN2FkOWQ5YTdiODU4NzIzZCBsZWdhY3ktdHJ1bmsKKzMyOTQ3IGU4YzRjMTVmNDU5ZTM1ZWMwYzg4YzU1YjY1MmY0Y2U3MTQzMmRhMjkgbGVnYWN5LXRydW5rCiszMjk0OCBiZDM0OTk5OWNiMDgyODg5OGQ4MGViMWRjYjVkZGVlYjhhMGQ2MjVkIHJlbGVhc2UyMi1tYWludAorMzI5NDkgZDQ2NDU5ZDgyYTc5Mjc4ZTU5Mzg0NmFmOTIyMDY3ZDJjZjFlNzI2NiBsZWdhY3ktdHJ1bmsKKzMyOTUwIDdmN2EwNzgwNDZmYjVjMTBiZjMxNzcyNzUzNDc0OTA0NzJkMTYzYjUgbGVnYWN5LXRydW5rCiszMjk1MSBjMWU4MGYyZjFjNDcxYTIzY2Q3NjZiNjE2M2U3NzkzZmM1ODYyZTNjIGxlZ2FjeS10cnVuaworMzI5NTIgYjU0NzhkMWRkNjdlZGQ5ZDY2ZThhZDBlOWQ5ZjY0Y2JkYzJiNzAyZSBsZWdhY3ktdHJ1bmsKKzMyOTUzIDBiZWIxYTY1MTQ0MzU4MDJkMDMxMzRjYTA3YjUwYWIwOTMyNzA1N2UgbGVnYWN5LXRydW5rCiszMjk1NCA3MzI4MzY2NjYwMDAzMjNmZWY1MjM3NzUyMWE2NmRlMTY5MjViYjE0IGxlZ2FjeS10cnVuaworMzI5NTUgOThhZmZkYmM0MTZjNDEwOTk0ZDU1OGQ1MDY2NzcxYjdlNWMwZDVjMyBsZWdhY3ktdHJ1bmsKKzMyOTU2IDA4YTFjYmRkMDM2N2ZkMDFiMjczOGNlM2VjNWJlNWEwNzY4ODcyZjEgbGVnYWN5LXRydW5rCiszMjk1NyBlM2FlZmViYTQxMTYwOWEyMmM3NWY5MzcwMTVhNGIxZWFjYzhlZWNjIGxlZ2FjeS10cnVuaworMzI5NTggOThkODE1OTllY2E3NGVjMzNlYmZkYWJmZWQ5N2UzMGVmYjI4NzQxNSBsZWdhY3ktdHJ1bmsKKzMyOTU5IGMzYTAyMDc0Y2JlZTliNmFlODM4Nzk4MDYyOTViMDg2MDc3ZjdiY2EgcmVsZWFzZTIyLW1haW50CiszMjk2MCBlNmY4ZTI2ODdjNmZkNTc1MjRlYTZkNWQ4YmE2OWMxMTUzMjkzYTIwIGxlZ2FjeS10cnVuaworMzI5NjEgNjQ2OGYwZTFmNGE4NWJiZWRiZjRjNTM5NTJjYmZlN2IyYWViMWZmYiByZWxlYXNlMjItbWFpbnQKKzMyOTYyIGFkMWU2N2FjNTY3Yjg3Mjk5NGNiYTllNmM4YzRhMGRhOTM1MTJjMzYgbGVnYWN5LXRydW5rCiszMjk2MyA0NjI5NGVkZGJhNTUxM2JiYjU0MTViMzJhZTg3ODE1NTNiOGI0MTQwIGxlZ2FjeS10cnVuaworMzI5NjQgNjcxZTljM2FmNGYzODVmYjg4ZWRlN2U2NjdjZTFiZDY0ZTc1NWU3MiByZWxlYXNlMjItbWFpbnQKKzMyOTY1IGVkNzA3NzlmNjQwMjFjOTBlZmJmYzAzODc1MjJhNWNlMjIyNTFjZGIgbGVnYWN5LXRydW5rCiszMjk2NiBiMTc5MmE2MThlNmRiY2JlMTFlNDA3NjNkYWVkMmViZDhlZjAxMTM5IHJlbGVhc2UyMi1tYWludAorMzI5NjcgZGJjZTU1NmNmYzk2ZTkwNzA5ZjQ0NjM0MDc0NDYyODAxMzhkYjJlNSByZWxlYXNlMjItbWFpbnQKKzMyOTY4IDUxY2U2OWJkZjQxODZlODIwMTQ3OTQxZGU0NzEyOTI1YTUwNGNjNDMgcmVsZWFzZTIyLW1haW50CiszMjk2OSBjMjkxY2EyOTQ5ZTkyNjQxZTZjZmFlMmM1ZDY4ZjA3Y2ZjYmU4MGZkIHJlbGVhc2UyMi1tYWludAorMzI5NzAgMjcyYzc1YjFkMjJlYmIwNWZjN2JlMmIwNTc3ZWEwODk0NmVkYmQ3MCByZWxlYXNlMjItbWFpbnQKKzMyOTcxIGY0NGZiZjc0ZWI2MWRjMjhjMTdmZjg0NTAzMzUyNjlhZmI4ODZkMDcgcmVsZWFzZTIyLW1haW50CiszMjk3MiBmN2Y0NmQ2NzNjNjFjNzJjYzhjZDA5M2MwMTdmZTBmZmQ3NGYyZTIwIHJlbGVhc2UyMi1tYWludAorMzI5NzMgNjVmN2VmZDM1ZjExOTAxYzcwZjVjOTdiMmE5ZmRkNzNmM2EwMDNhNSByZWxlYXNlMjItbWFpbnQKKzMyOTc0IGIzMWM4NGJhMWYzMTQ0ZjUwNDc1NjVhZjQzNzExYmQzYTBhNmM0MmMgcmVsZWFzZTIyLW1haW50CiszMjk3NSA3NzQ2MjY5Yjk1MWNkZDYyY2Y2OTA4YmNhNGIxMjc1ODA1ZjdlMTAzIGxlZ2FjeS10cnVuaworMzI5NzcgYmYyZGMwZDE3MTQ4ODI3ZDYwYTZmZDJjNjlmZjViYmRmNDgzNmJjZiBsZWdhY3ktdHJ1bmsKKzMyOTc4IDEyZjllYTMyZjIzYTUyOTcwYmI0NTllZjI2Njk5YTczYmRlMzBmZTggcmVsZWFzZTIyLW1haW50CiszMjk3OSAwMDhjZDEwMTI2OWRmNjgyOTY4MDRmMzE3NGJjOTUyYzcwYjRjMDIwIGxlZ2FjeS10cnVuaworMzI5ODAgN2JlYzYyODk5OGZlOWU3NTcyNjdlNTZhYmRlM2RiYTY4MDY1ZmU4YyBsZWdhY3ktdHJ1bmsKKzMyOTgxIGU5NTBhYmMzMjkyMjdhYjY4MDA1NzQ3MTAwZGNlYTY3NTA5MDQyNjQgbGVnYWN5LXRydW5rCiszMjk4MiAzNjgyYWEyNzE0MWI0NDIyY2U2YWVmOWVmZTljOWJmNzQ2OWU0NGM1IGxlZ2FjeS10cnVuaworMzI5ODMgODcwMGExYzcwMTZiMTBmMDk4OGQ5YmFmMzY0MWFmYmRkY2Q4NzUyZSBsZWdhY3ktdHJ1bmsKKzMyOTg0IDYzYWI1MGVjNGE0NjYxNWFmMGQ0Njk1NzE2ZmM4OGEyYWM0NjUzZGEgcmVsZWFzZTIyLW1haW50CiszMjk4NSBlNDU4M2QxNjZjYmNkNzk4NmJhMWI0ZTJhMjEwODEyOGUxOWVjMDgyIHJlbGVhc2UyMi1tYWludAorMzI5ODYgMjlhYjFjOTIzZjc1NzEwYTJiOTRkZjM4MWE3YTIzMDc0ZTBmYzJhNyBsZWdhY3ktdHJ1bmsKKzMyOTg3IDQ3YzcyNWEzMmIwZWMxMGY4YWFlN2U3MDdjMWE2N2Y5YTQzYmQ1YmEgcmVsZWFzZTIyLW1haW50CiszMjk4OCBjMDAxYmIwMDA1NTgwZDJhNTY5YWIyZTcyZWRhMjI3YTZkNWZjMDdkIHJlbGVhc2UyMi1tYWludAorMzI5ODkgODNhMmU3MTMzYjAxMDU1M2I1NDc1NjA1N2NjNzgzMTE4M2RjYTVhMiByZWxlYXNlMjItbWFpbnQKKzMyOTkwIDg5MGNkN2EyMjIzZWZiOTY4ODQ2MmJlZTRiNGNkNjhiZmJmNTlmNzUgcmVsZWFzZTIyLW1haW50CiszMjk5MCBmNGYxMzRhZDQ2YWJkMGJjOTczZDNmNjA5NGVhNTZlNjJhYzVjNDkyIHJlbGVhc2UyMi1tYWludAorMzI5OTIgZjk0OTU4MTVjMThmMzE5ZDk2MjlkZjRiNzQ1NjI1OWQ2NDZiN2UwMyBsZWdhY3ktdHJ1bmsKKzMyOTkzIGY0MDliMzNjMjljZTQ5MjAwZTMxOTgxNzNjMzc1MjUwMzUzNDE3MDQgcmVsZWFzZTIyLW1haW50CiszMjk5NCBmYzI4NmUyODU1NmY3ZDg2ZGZmOGZmYmMyMDVmYjM3ZWU4NWUzNzIxIGxlZ2FjeS10cnVuaworMzI5OTUgYzY5YWQ5MjI3YWZkNGY5MzFiNzRjYTU2NjAyZmVlZWQyMTdkZmM5YSBsZWdhY3ktdHJ1bmsKKzMyOTk2IDZhYmNiNjkwYjQ3YjU0YTdhOGI1ODViYjIxNGM5NGEwN2M4MzU1ZjEgbGVnYWN5LXRydW5rCiszMjk5NyBkODljMDgzN2Y4ZjQxODMxNTVkMjU0NWZkNTVkODAyNjRlZThiNGMxIGxlZ2FjeS10cnVuaworMzI5OTggZTRmNzBlNjAyNTk4ZDQ4YmEyYjQyOWQ1NzViZWRmMjMwMmI3YjdiYiBsZWdhY3ktdHJ1bmsKKzMyOTk5IDk3ZmQxZjQ5ZjAyNmFhNTA0YzVjYWY3YTA4Njc5Y2U2NjllMzEwOGYgbGVnYWN5LXRydW5rCiszMzAwMCBiMzQ1NWM0YzE3OTg4Nzc4ZDc4Y2E1Yjk4Y2I4ZDZjOTU5NDhlYTEzIGxlZ2FjeS10cnVuaworMzMwMDEgNzU0OTRhZWE0N2NhNzI2NTQ5MWVhMjQxN2EzYzA4MjlkYWViNTQ4MyBsZWdhY3ktdHJ1bmsKKzMzMDAyIDQ1ODVhYjBkYTAwMzc3YmFmMGU5Y2EwZmVjZWIwZmUzNmQ1NTAzYWUgbGVnYWN5LXRydW5rCiszMzAwMyBmNTg5MTQ1OWI4MTNlZTI0NGU1ZDUzZmE2YjA4OTNkYTQ5YTA0ZDhiIGxlZ2FjeS10cnVuaworMzMwMDQgMmY3MzFjNTdjZGM2OGY1OTQwZDAzZjk5MDhjOGJjOTQ4NmNlNGE3YSBsZWdhY3ktdHJ1bmsKKzMzMDA1IDI3YmQ0Y2QwMmJiODdlMzc3MTUzYjNlZTI0NzBjZjAzMjAxOTA0YzggbGVnYWN5LXRydW5rCiszMzAwNiBmYjg0ZTBlYWJhZDRlNGIzZDE2ODAzNDNiNWM2ZGEyOTgwMTdlYzcwIGxlZ2FjeS10cnVuaworMzMwMDcgMWFlOGI2NzQwOTA2NTIwNjVjZGQ4YWVlOTE0MGJjY2E0MDUzYzk2NCBsZWdhY3ktdHJ1bmsKKzMzMDA4IGIxMzk1MDE0NzE0YWQ3ZjA2Y2UyZmFkZTYxZDhlZjRhMTU5ZmViYTcgbGVnYWN5LXRydW5rCiszMzAwOSBiNTJlMGFkMzA1ODU4ODBlOTI2NjZhMjQ3NzBmMzdkYWQ0NmFiYmI5IGxlZ2FjeS10cnVuaworMzMwMTEgNTNkOWI0ZWVjNGNlMGEyODRmYmM1MGZkMjUyZTNhYjU1NjJlYzdhMCBsZWdhY3ktdHJ1bmsKKzMzMDEyIGEzNjkzMzYyMjRkZGE0OTUzOWExZGNkNjQ1OTdkODEyNGM1ZDU2YTcgbGVnYWN5LXRydW5rCiszMzAxMyAyMDg5NGRiYzdmNmE4YTU3MTI0NDI1M2FlYTE3MTU4MTgzZjQ2ZjI3IGxlZ2FjeS10cnVuaworMzMwMTQgYjFlYjJhNDc1NmJjYzMyOTNlOTFiZjI3MWNhOTU5NzUwZmFiYjQ0ZCBsZWdhY3ktdHJ1bmsKKzMzMDE1IGVkOTQ5YjgyZjk1ZDljOGE0YjE5NzRhNDQwMGNjMTgxZTEwMzY2NjYgbGVnYWN5LXRydW5rCiszMzAxNiAzZjEwYTI5ZTBlNmExYWUwMDVjNWYyMDVmMDk1YzM4MzkyZTU2OWQ3IGxlZ2FjeS10cnVuaworMzMwMTcgZmRhYzliNGQzNzE3MjUxMzI5OTc0OGFmYTNiNzk0MzJmN2U0M2YzYyBsZWdhY3ktdHJ1bmsKKzMzMDE4IGY4MmI2ZDJiNzNmMTExMzcwYThjODRkMjkzYTg4M2Q5OTJjMzYwZmMgbGVnYWN5LXRydW5rCiszMzAxOSBjNjYxMDBjMDllYTExNjI3ZDQ5MDA5ZjI1MjEwMjk1NzY1MWE0ZGE2IGxlZ2FjeS10cnVuaworMzMwMjAgZTBmMDcxYjQ3NmZkMTZmZGRkN2FiODVhYjkzZGE2Mzg2ZmQ3YTFhNiBsZWdhY3ktdHJ1bmsKKzMzMDIxIDcyY2U3Y2MwM2YyN2ZkMjYyMmVlNzI0ZmYxNzBhYzIxNTVmZjIxNjUgbGVnYWN5LXRydW5rCiszMzAyMiAyNjE2ZmU1ZWVlZTE3OGQzNjNjNDI1MDIzZWRjZDYxZDFmODJhZDM2IGxlZ2FjeS10cnVuaworMzMwMjMgY2EyMGMzY2JjOTU2ZWEzMjNiYjk4ZGM5MDc5OWNjZTkyNTY4M2ZjYSBsZWdhY3ktdHJ1bmsKKzMzMDI0IDEyMTkwMjFjNDg2NWFlODA3ZjMzMTQwYTA1YjU0YTI2OGYzNWZmODQgbGVnYWN5LXRydW5rCiszMzAyNSA1OGMxYWQ0MTdlZTdjYWVkNDI4YWEyMjI2ODY1NDk4ZjA4YjgxNWI1IGxlZ2FjeS10cnVuaworMzMwMjYgYzAxZWRjMzVmZmQ2NzZiYTRhNjZiMGQxZGMwYjVkOTUyZTgxZDA0YSBsZWdhY3ktdHJ1bmsKKzMzMDI3IDhjNmQ0ZGE1Y2NkM2Y4OWQ1ZTU3ZWIxOTI2OTBiZDhmYWZmYjk5ZjAgbGVnYWN5LXRydW5rCiszMzAyOCAyMGUxYWQzYWU4YmIwY2ExYTIzZmYwNjUzOGVmY2E0NjE5MzNlMWIzIGxlZ2FjeS10cnVuaworMzMwMjkgOWU3ZDIyOTMwZGFhMTJmMjdhNTdjMmMwYjA2NGQyZjU5NTI1MjY3OCByZWxlYXNlMjItbWFpbnQKKzMzMDMwIDIzZjYxMDFjYzg3ZWYxNTEzYTk0Mjk3NWNkYmExZTM0ZmI3OGVhNGYgbGVnYWN5LXRydW5rCiszMzAzMSAyZTJkZDYxNDM5NDM5NzdlZDdlNzM0MDUwNjA5ZjkzOGZhMmVjYWU0IHJlbGVhc2UyMi1tYWludAorMzMwMzIgNDA4MWI0OTBkNTRjYWNmMjEwMWYyNzFlYTc2MmU3OTYxNTg4ZWIyYyByZWxlYXNlMjItbWFpbnQKKzMzMDMzIGMwNTU5NzkzMDBmMTc4MDUyMjcxMDY2YWM0YmZmZTIzY2NiOGIwZDQgbGVnYWN5LXRydW5rCiszMzAzNCAyNGU3NGQ2ODc5ODAwYmJiYjMzM2UwNzlhZjQ3NWE3ODNhZGMwNjYwIGxlZ2FjeS10cnVuaworMzMwMzUgMzQ3ZTdiNmRmZDUzYWQ5ZDcxNzc4ZmYxNGYyOTljZGEyOGMwMTE2NSBsZWdhY3ktdHJ1bmsKKzMzMDM2IDI0ZmZmMzJlZDA2NWMzM2RhZTAzOWM1OWY3OTgxNGJjYjBlNjZjODIgbGVnYWN5LXRydW5rCiszMzAzNyAxNWYxZGM1YjdkZGMxY2Y2MTRiNmIyZDViMDA0ZGIyN2NmMWJhMmNkIGxlZ2FjeS10cnVuaworMzMwMzggNTg1ZTMwM2E5NDkxMzUwYzgwNjkwOGNhNDJlNzY3ZWMyNmE0MGJhMiBsZWdhY3ktdHJ1bmsKKzMzMDM5IDBkNTg4ZmFkYzFmODJmZmFmNTVlNTU1MjUxNTIzNzQzYTU1YjJhNzAgbGVnYWN5LXRydW5rCiszMzA0MCAyZDM5ZWMwZTU1YWE1ZmE0ZGJjM2MyMzg3NmE4OTdjOWU2MDgxM2FiIGxlZ2FjeS10cnVuaworMzMwNDEgYmFlNmNlNmQxZTVhMzdkMjZkYzEwYTY3M2VjYTU4OTYwMWZkZmQxNiBsZWdhY3ktdHJ1bmsKKzMzMDQyIGNkNWVjYzViMzhlYjg1OTdmNjYzNjE1NDA2Nzc3M2I2ZmE5NWQwMTMgbGVnYWN5LXRydW5rCiszMzA0MyBlZmYzMzMzNGNhNjczN2QyMDYxNzQxOWZhNTAwMWQxNGVmMGQ0OGIwIGxlZ2FjeS10cnVuaworMzMwNDQgZGI0NmNlZGFmN2NlMjBiMjE0NDA5MTNhNDc1NmM3OGFjMTQ2YzU1ZiBsZWdhY3ktdHJ1bmsKKzMzMDQ2IDg1NzQyOGNiNDE4YzdjOGUzZmE2OTE5NGEzNmM3N2YwMmUxNTg1NmQgbGVnYWN5LXRydW5rCiszMzA0NyA2NTQ5MDg4NDdlZWY4YmY2MGRhNjU2ZmRjMGYwNDNkYzcyZTdiMDkwIGxlZ2FjeS10cnVuaworMzMwNDggM2IyZTJiMTQ2ODFjMDJlMGJiMjMzOWMxMzdiM2M2MGE3ZDIwYmI5YiBsZWdhY3ktdHJ1bmsKKzMzMDQ5IDllMWY4ZmM1ZTcxZDMzNDcyMmI2MTM3N2Y3MzAwZGViNTQ1NmI3N2YgbGVnYWN5LXRydW5rCiszMzA1MCAyNmUwN2E2ODQ4OTBjYmNjOTc0YmY2NjhhMmQ4MWEyOWJlZmRkMWQ4IGxlZ2FjeS10cnVuaworMzMwNTEgY2UyNWI0ZDc0NmVhMTAwNjdlMGNhMzVmYzVjMWE3ZWEzNDZiN2JjMyBsZWdhY3ktdHJ1bmsKKzMzMDUyIDkyZmZlNTAyMTEyODE5ZjMzYzY3MTFiMWNlMzkxZmJjN2UzMjY2OGUgbGVnYWN5LXRydW5rCiszMzA1MyBmYTYwNGFmMGNkYmZiNjMxYmY0YjE0ZmZmODVlNmUzNzI1YzI1ZjVkIGxlZ2FjeS10cnVuaworMzMwNTQgNjFlOTY2YzllY2U4ZDkwOGRhZmM1YzAzMjRlYTUxZDA1NjFkZGU4ZCBsZWdhY3ktdHJ1bmsKKzMzMDU1IGU2YjBhNDA2ZGMzMWVmNDJlZmZkODYxZTc1Y2JmOGRmZTVmNzY3ODggbGVnYWN5LXRydW5rCiszMzA1NiA1MjU3NjY4MTdlYjY4YjYyZGFlMTAwYzRhZjc2YmM1MWMwOGM2NWZmIGxlZ2FjeS10cnVuaworMzMwNTcgYjBhN2VhYzZjNjUxMTAxYjdmYjcwMzU5N2Q5N2RhYWUxYTU1NzY3MiBsZWdhY3ktdHJ1bmsKKzMzMDU4IDgzMjM2ZjU4ZTY4MTIxZTM2NTJlZTliMWY1YTJkODI1MjRkZmExZWMgYW50aG9ueS1wYXJzZXItYnJhbmNoCiszMzA2MCBjZjBiYWFmMTZlMGQ3ZjUyMWRlYjAwZTFmOTVjZGRkZmI0NDA0MjA1IGxlZ2FjeS10cnVuaworMzMwNjEgYTJkNGM2NGY1YjhiMzE0YjUzZTRhZGEwNjdiOTZhNzVkZWZiN2M2ZCBsZWdhY3ktdHJ1bmsKKzMzMDYyIGQxYThjNzMyMzU5ZTdkOTQxMmIyMGFkY2M5NGY3MjMxNDlmZTcyODMgcmVsZWFzZTIyLW1haW50CiszMzA2MyA4YzVhNjg1M2EwMmFkYjgxYmQ2N2VhOGEwOGY0YzI2ZjUxNzJiOGQ3IGxlZ2FjeS10cnVuaworMzMwNjQgYmVmZmM3MzY2NmZkMjBjYTM4YjYzZDRhM2I0NjEyNGNmM2VjY2I2MSBsZWdhY3ktdHJ1bmsKKzMzMDY1IDNiNTRkZmYxMzMxMDFlZTI5Yjk0OGJhMDgxN2M5NDZlZGQ0ZWViNDAgbGVnYWN5LXRydW5rCiszMzA2NiA5YmI2ZjNjNWIwNGEzZWY4Y2VjMTRmMGUzMGY3NzRhYTJhZWY4YThiIGxlZ2FjeS10cnVuaworMzMwNjcgMzFiMmNiYTY0YjM5OWJmNTkzMTcyM2UxNjYzOTFiY2MyNzgzMTU1YyBsZWdhY3ktdHJ1bmsKKzMzMDY4IDI5NzYwMDU2ODg0YTllNzE1MjFlYWU1MGZkYzZhMzZiMWIzMjllMzUgbGVnYWN5LXRydW5rCiszMzA2OSBmMmRmOWM5ZjBmY2I2MDliNmU5Njg0Njk5ODIwMjYwYzBhYjZjM2FiIGxlZ2FjeS10cnVuaworMzMwNzAgYmFjMmMwZTdjMjBhMTIyMjUwMDBhZTY5OWRkN2ZhOGMyZjdhMWNhNyBsZWdhY3ktdHJ1bmsKKzMzMDcxIDM1NmJiNTljNTQ4NmIyZTVlYjJiMWY1YTJhMjllZGViNjZiOTU4MGMgbGVnYWN5LXRydW5rCiszMzA3MiA2NDM4NjQ2NGY3MTY5MTE3N2U5YTQyZDcxYmE0NDg5YTFlYWNlMWFhIGxlZ2FjeS10cnVuaworMzMwNzMgMGE0MGM2ODdhZjVlYzk2ODAwODAzMmU3NGRlMmIxNTQwMzI2YTgwMyBsZWdhY3ktdHJ1bmsKKzMzMDc0IDg4OTUxYTVmZDJhOWVlYzAzZjQ3MTU5YWMxNzhiNTBiNDRmNjA4NGYgbGVnYWN5LXRydW5rCiszMzA3NSBhYjFkODVmOTg0ODU2ODc1NTBiMTI2YzQzZjI1YjE4Yjc3MDE3YzI4IGxlZ2FjeS10cnVuaworMzMwNzYgOWUxZDc4MDlhOTk4MTZhZDlhMDc5NTI4NjYwMDlhNmJkMjJiOGUxNyBsZWdhY3ktdHJ1bmsKKzMzMDc3IDE5ZjRmNDhiYjAyYTdlNmUwMTRjM2QzZjI5ZmFkNTE0YjIzNjJmMzYgbGVnYWN5LXRydW5rCiszMzA3OCA1YThmZDViM2U0YzQwNTEwYjA1NzgwYWNkMzlmNWU2MWJhODc4NTA3IGxlZ2FjeS10cnVuaworMzMwNzkgZjg3ZmNkMDg3MGJmMmM5ODZkZDFkODA1MzAyMWUzNDNkMjQ0YjcwMCBsZWdhY3ktdHJ1bmsKKzMzMDgwIDJiYTVlYzZiM2NkYTJmYjBlN2VkYTU0Nzk2NDBiYTNlNzA3NjY1NDUgbGVnYWN5LXRydW5rCiszMzA4MSBjZjhhZTNiMGRjZGM5NzBhYTg5NGUyZmQwZGQwMTYwMDZjMTI2N2FmIGxlZ2FjeS10cnVuaworMzMwODIgN2M0OTgzMWQyM2M1OWIwN2I2NjM2MGQ3NDc4MzI5MDgyZDlkN2ZjYyBsZWdhY3ktdHJ1bmsKKzMzMDgzIGZjMzkyZGFiZTJlMzBmMGVhOGU5MGViM2MyZDJhODA4NjUzOGJkMDYgbGVnYWN5LXRydW5rCiszMzA4NCBiNmMyNzFiYTAzZTE4MTQ0MzY1YTM4NzIxZjZmMzZlYTAwYzM5NGNlIGFudGhvbnktcGFyc2VyLWJyYW5jaAorMzMwODUgMDg5ZmJlM2ExMTRlZjliZWM2NGFiNTlkNmQ3NzA1M2QyZGJiNjAwYyBhbnRob255LXBhcnNlci1icmFuY2gKKzMzMDg2IDBkNjFhMjdjMzg5NjllMDY4NDZhZTljZmE5MWIyYzEyZTdmNWI0ZWEgYW50aG9ueS1wYXJzZXItYnJhbmNoCiszMzA4NyBmZmQwMmJhYWIyNTkzMjBlNzMyNmMwOTc2Mzc5MWI3ZjY3N2M5NDNiIGxlZ2FjeS10cnVuaworMzMwODggNzBkNjI1ZmY1NjJiNWQ2OWMzNTliNzRjNGMyZDQ2ZDNiYjJkZWQzZSBhbnRob255LXBhcnNlci1icmFuY2gKKzMzMDg5IDkyM2U2ZmI4NTVmZjRmN2EzNzMyYjNhZTQ0MGMxYjM1NWJiY2IxNTUgbGVnYWN5LXRydW5rCiszMzA5MCBlZGNmZWY5NDRlMmY0MDZjODI3YWIxMTZmODBmYjRhNjQzYmU5NWQwIGxlZ2FjeS10cnVuaworMzMwOTEgNWM1NmJmM2NiMjA1NTA4NTI5Mjk4NGIyZTI4ODU5YTExN2VkZmI3MyByZWxlYXNlMjItbWFpbnQKKzMzMDkyIGM0ODFjNjg2Mjc1YTc4NWE1OTMwNDVmMGRhMDk5NWM1YTg2YzZhNjAgbGVnYWN5LXRydW5rCiszMzA5MyBiODBhMjIyNTBlNGYxMWE0YjQ3YjVhMDFjZDI4MGM4NTVkYjVjYzU0IGxlZ2FjeS10cnVuaworMzMwOTQgZWZlZDY4OTczYTNiZWYzNDA4MjI3MzYwNWIyY2RjN2RjZGI3Y2JhMyBsZWdhY3ktdHJ1bmsKKzMzMDk1IGUyZjI0MTBjMDk2ZTAzZjNkNDIwZjdhMDMwN2RkYWU1ZThhZWMyNmQgbGVnYWN5LXRydW5rCiszMzA5NiAxOTMzOTdjNDRhZTUxNjRmMmVjMDc4M2YzZTA0MDk1ZWRkZGEzODQ0IGxlZ2FjeS10cnVuaworMzMwOTcgZTY5ZTU0NTUyZDEwOGRiNjc0NDQ3YmRmZjg4MzlkOTdlMmM1YTZjMiBsZWdhY3ktdHJ1bmsKKzMzMDk4IDBiYTdjMTAxNjQ4YWM4MjgzNDBjOGU0ZTczNTRmYmI4NTgxZmU1ZGYgbGVnYWN5LXRydW5rCiszMzA5OSBmYTQ4YTkwZWRhMTI1YWViMmU4NDhiMWUwOTZhM2ZlNmYxMGY3Yzk0IHJlbGVhc2UyMi1tYWludAorMzMxMDAgMTc5ZDU0NTJiYjlkOWY2MTE0YTQzMDhkZmFkNzNhODFmODcyZDY4NiBsZWdhY3ktdHJ1bmsKKzMzMTAxIGI0MDkwMmI0MjI5MGRiNjk0ZWZlMzNiYzIzNjYzMDZlNjEwOWNmN2UgbGVnYWN5LXRydW5rCiszMzEwMiA3YjcwMDQzOTNiNWIyNmYyNTNlNmYxYzFlMTU3ZWVhNDVjYjE3YzA0IGxlZ2FjeS10cnVuaworMzMxMDMgNTJiYWFlYzdlNWNmMDg5ZjM1MTY1NjhkNjE1OGIyYWY4ZDY1YWQyZCBsZWdhY3ktdHJ1bmsKKzMzMTA0IDE3NDMxYmE4Y2M0YmZhZGEzMjY4NGFhZWY0NzE2MjVjYTU3MTVmMTkgbGVnYWN5LXRydW5rCiszMzEwNSA2ZmVjYzk5YWZhNjlmZmQ0ODBhMjkyZTYyMGQ1MDFlZTZlNzU0NzNmIGxlZ2FjeS10cnVuaworMzMxMDYgYmIxOTEzNGUwYTRkMGI5ZTQ0MzMyYmQ4NWVhOTdjMzBkNDNkYWVmMyBsZWdhY3ktdHJ1bmsKKzMzMTA3IDhkMTYwMDk1ZWI2NjgzZTNjMjJhNTg5NzYzOWZkZDY3NzMwN2Q4NDIgbGVnYWN5LXRydW5rCiszMzEwOCBlNWQwMzM2MDU3MWQ5N2NhZmRlZDQyM2NjODY4YTllNjJlMDYzMzRhIGxlZ2FjeS10cnVuaworMzMxMDkgZTk5NTNiMzk5ZDU1M2Q1Y2M4ZGYwYWU5YTc5MDc0MmY0MmMzMjEzNiBsZWdhY3ktdHJ1bmsKKzMzMTEwIDJjYjk2OWZmZTFiZjI4ZTU0YjA5ZmNjNjQ3N2E1YmVmNjVhYmY5MjYgbGVnYWN5LXRydW5rCiszMzExMSA1Yzc2Mjc1Mjc4MmMyOTM4MjhkMDkxMmNkNTRmY2M0NzA1MzllNGMyIGxlZ2FjeS10cnVuaworMzMxMTIgMmQ2OWE3MDdjNDkyOTg1NDkyYTMxZjNiNTc3NTNiOWIyZDI1NWE3NSBsZWdhY3ktdHJ1bmsKKzMzMTEzIDU2MzQzODE2YjU4OTdmOGFmNzAyZjI1YTBkMTU4MGU4Njk2ZDMyNTUgbGVnYWN5LXRydW5rCiszMzExNCAwNTA1OGQ4MTM0NDE4ZDQ4ODU4NDUzZTExNGJmMDliNGRmY2MyODk2IGxlZ2FjeS10cnVuaworMzMxMTUgMzAxNmExOWUzMjBlNjQ1MTcwNmY5ZTBmNTdjMmM0MWI3OTQyZDNkMiBsZWdhY3ktdHJ1bmsKKzMzMTE2IGVmYWQ1OWYzOTU2NGJjZDk0ODE3OTcxN2NiZGY4NmIwYjZmZDhkMWMgbGVnYWN5LXRydW5rCiszMzExNyA5YjcyNTU4YTFlYjlmNDBiYjJjMGE0YmUxNzE5ODFhYTc2NWEzMTg4IGxlZ2FjeS10cnVuaworMzMxMTggNmQxNjBlZTM3MTk2NTU5ZTNkYzYyMzdhNzc3NzU0NjE1MzBjZTM4YiByZWxlYXNlMjItbWFpbnQKKzMzMTE5IDFmMzM0MTk4ZTZkNzYzYzZjMGFiNzhkODA4MmFhNDc5ZGE2NzFkMzMgbGVnYWN5LXRydW5rCiszMzEyMCBiODIyYzJhOGUwOGY0MzA1ZmVhNGE2N2YyYTVhZGRkNWJkNWVjMjkyIHJlbGVhc2UyMi1tYWludAorMzMxMjEgOGJlZDU1MjAzNTU5ZjhkZDVjNWFjMzkxYjc2YWM3ZjI0MWI3OWVkOCBsZWdhY3ktdHJ1bmsKKzMzMTIyIDIxYmZjYjdjOTc2ZGI1ZTQzYzg3NzBjYjU2MWY1MmFmNWRhMzlhNWQgcmVsZWFzZTIyLW1haW50CiszMzEyMyA5ODgzY2Y4ZmYyMTdjOWVkODgyNTNkYzRlNDFhMTJkYjdiYTI5ZGFmIGxlZ2FjeS10cnVuaworMzMxMjQgOGIxNzY2YzhhZDNiYWI0ZTljYjE1MGYyNDBiODI4ZDc2YmY5MThlZiBsZWdhY3ktdHJ1bmsKKzMzMTI1IDA2MmUzNDJjY2ZmNThiNjI5NTM1NGNkYmYxMGYxZDQ1YTI0M2IwMDEgcmVsZWFzZTIyLW1haW50CiszMzEyNiA3NGEyOGYyZTk0Y2Y5ZTI5MmVlZWQ4MTA4NWY5NTY1NTVmYjVmNmVjIGxlZ2FjeS10cnVuaworMzMxMjcgMmNiODkzMGNlMjI1OTkyNmFlNGE3OWE3YjljZDNiOWNmZGE5NjIyZSBsZWdhY3ktdHJ1bmsKKzMzMTI4IDFlMmU1NDgyMTc4NWY5YTRlYmVkNmVmODdmYjQ0ZDg1ZDdjMmM5NzMgbGVnYWN5LXRydW5rCiszMzEyOSAzNTIzYmE5MjQ1MGNlNjQxNjA2Yzg5N2QyZDhjZTRkMDllODEyM2U2IGxlZ2FjeS10cnVuaworMzMxMzAgMDQxNWFmNjM0MTIyNThiZTFhYTQ1ZDY5MWRjNjU2MzZjZDhhMjM1YSByZWxlYXNlMjItbWFpbnQKKzMzMTMxIDVjNWI1ODc0NjQ4NjZkZDNkNzMzN2NiOTVhMTNmYjRlOWJjYTUyNmMgcmVsZWFzZTIxLW1haW50CiszMzEzMiAwY2YxZWM1OGUyMjBiYTY4NjJhMTQ5OWI1Njc4YTc0YjU0YmVmMDVlIGxlZ2FjeS10cnVuaworMzMxMzMgYTcyMWIwOTRmN2JjMmRiZmQ3MTEyNTU2YmU2MGZlNTQ0MWEwNTRkNSBsZWdhY3ktdHJ1bmsKKzMzMTM0IDRmMDc2ZmMwMTk1YWMyNjI0YWVhNDc4ZjhiYTU2MmRmNDQzZDMxYmQgbGVnYWN5LXRydW5rCiszMzEzNSAxYWI5OTc4MTIzYmVjZWExNDVmMDkwZmExZmEwYTExYjQxNjJjZDNhIGxlZ2FjeS10cnVuaworMzMxMzYgMTRhMTU0NzEyOWZiZjVlYmIyMjhiYzgyOWJmMDBhMGYxOTJmMzJiMyBsZWdhY3ktdHJ1bmsKKzMzMTM3IDMzMWFmNDVkZmEwZGMwMTc4ZDhhZjNjYTI1MWE3N2Y5MTg5MDEzOTAgbGVnYWN5LXRydW5rCiszMzEzOCA0ODc0NjE0Y2M3YTM1NzAzOTJkM2VjOWZhZmQ3ZTY2Y2QyZjY5OTU1IGxlZ2FjeS10cnVuaworMzMxMzkgNTEwNjBiMTY5YjMyMzdhNDE3ODA2MWY5Y2FjMWZlMzcwMzEwOGQ4NSBsZWdhY3ktdHJ1bmsKKzMzMTQwIDg5MmRmYzllNzI1NjdmZGI3NzlmOTcyMmUwYTQxMDQ0MGQ4NDhhY2UgbGVnYWN5LXRydW5rCiszMzE0MSBkZWI5NzE1YmM4YWU3YzAwZTZjNDYyZTkzOTUyNjBlMTFhM2NlNWVhIGxlZ2FjeS10cnVuaworMzMxNDIgODM0Y2QxMjE4ZjFiNGQyNDU4NWU4MDAwMzk5ZDNiYmVmNTZjOWZjZCBsZWdhY3ktdHJ1bmsKKzMzMTQzIDA4NmJkOWU3ZDI0NDJhMGJhNmMzNWVhZDQ3M2Q2ODZiZGJlMzE4ZWIgbGVnYWN5LXRydW5rCiszMzE0NCAwNmYyOGFkZWE2ZDJjMDkxYWM4ODdmM2I3ZWYxOTQ2ZDJkYjY1NjMwIGxlZ2FjeS10cnVuaworMzMxNDUgYmRmZjk2NWQyNjAzMjk5YWM2NjFlYzMzNDMyOGU4MDlhZDczMTdkYiBsZWdhY3ktdHJ1bmsKKzMzMTQ2IDIzZTdiMjU3N2E0Njg4MDViZjYyNjBjYjFmYTY1NDY0YjA4OTllMGQgbGVnYWN5LXRydW5rCiszMzE0NyAzMTMzYjUwZTk5ZjMyNjVmOTkzNTk0MWU0NGQyOGIzYTVjYjljYWVkIGxlZ2FjeS10cnVuaworMzMxNDggODdhMjUzYWFhMGQ1MjEzN2NkNzUxMzZhNjVjNDc2MzMzNzcwYzQ0ZSBsZWdhY3ktdHJ1bmsKKzMzMTQ5IDgxZTcwZjEyZDYyZmM4NDc3OWI1MmQyNTZjM2Q4N2JmYjU4OWExMTkgbGVnYWN5LXRydW5rCiszMzE1MCAxMzg2Zjg2YzUwOTVmNDc1OTQ2MzRlYWZhMTQ4MWNiNTAwMWQ3ZjU2IGxlZ2FjeS10cnVuaworMzMxNTEgNTE0M2NmZTdjYzc1Y2MwNDRmMDlmNTBkZjBjMThiMmZkODM5OTI4NCBsZWdhY3ktdHJ1bmsKKzMzMTUyIDYwZGFiYTkzNzc1YzUyMzYwMzY1OWQ1NjViMzNiY2I0MzViMWI2ZjUgbGVnYWN5LXRydW5rCiszMzE1MyA5NzE4ZGY4NDlkYTkyMTAyZGI1ZDA2ODRlNjkzZjI2ZTIyNjFjNzVhIGxlZ2FjeS10cnVuaworMzMxNTQgMDg5MDQ2NjAxMjcwNjU5MjllOWI0MmFiM2QyNWM4NmQ2MGEzMzAwNiBsZWdhY3ktdHJ1bmsKKzMzMTU1IDUyMjA0NzQ2NjBjZTgxZDI2ODg0OGNiNzhiZTZkMTJmMTg0OGZiODcgbGVnYWN5LXRydW5rCiszMzE1NiBhYmMyYTIwZGMzYTMzNGMyY2Y0YTg1YzJjYWRkYmEyZWQyNzJmNTllIGxlZ2FjeS10cnVuaworMzMxNTcgNDBjNWYxYzA4ZWM4YWFiMGQxZjhjYWUwNTIwYWY2ODMxOTdkMjQ2MSBsZWdhY3ktdHJ1bmsKKzMzMTU4IDEwMDcwOGViOGM4MmQyYzc4N2I5ZDc1ZTdkM2I4OTk0OGE5NGRmNjAgbGVnYWN5LXRydW5rCiszMzE1OSA5NGY5MTA3ZDlhNjNhOWQ5YTJlOTIyNTczMzAwNWFiNDcyODVhNzI3IGxlZ2FjeS10cnVuaworMzMxNjAgNjUzMWM3NmI2MDRkY2FmZTJjMjU0Y2I0YzU1ZjE4YjkzZGJlZGRiNyBsZWdhY3ktdHJ1bmsKKzMzMTYxIDE0MDJmMjY1ZTQ4ZjYxM2JhZjllYjM3NGM1MDQ0MGQwMTBiYjE5Y2UgbGVnYWN5LXRydW5rCiszMzE2MiBkMGQ0ZDY5NmFiMjRlOGQ2MjgzZTk1YzMyYTE0NzY3NjllMzViOWQ3IGxlZ2FjeS10cnVuaworMzMxNjMgYWE4NGVkZTFjMzY0ZWJkY2Y1MmVmMzY1NmJlZTE5NDM5MjRkMzA1MiBsZWdhY3ktdHJ1bmsKKzMzMTY0IDZjNmIzMjFkMWQxMGVmZDFmMDQwZDUxNTFhY2Y3MDAzODdlNmZlYmMgbGVnYWN5LXRydW5rCiszMzE2NSA3MWMwNmJjNWE3M2VhMWI2ZTY1MzkyNmRiMTI2OTU1NzQ0MTQzOTQwIGxlZ2FjeS10cnVuaworMzMxNjYgN2UzMzYzYTc2NjFkMjU1MWNjNjVlNjhkM2QyNDFiYzk0OTQzODgwOCBsZWdhY3ktdHJ1bmsKKzMzMTY3IGQ3MmIzZjBhNTdhOWRkMmM3NDA0ODRiY2VkZTJhOGZkODNkZGM2MDggcmVsZWFzZTIyLW1haW50CiszMzE2OCA1ZjAxZDUxNThkMWY4NmUyMzNjZGIzMDQ5Y2ZhZjMzYjNiYmY0YzljIHJlbGVhc2UyMi1tYWludAorMzMxNjkgZGI0MzEyOTQ3NDk0MGQ4MDQ3OWJmMDFlOTExYjc5NDlhZGFiYWUyMCBsZWdhY3ktdHJ1bmsKKzMzMTcwIDExNTE4YjZjZTVlYzAzZDM5ZjUxYmM4NjZiY2JmZTE2NmFhNDE0NmQgbGVnYWN5LXRydW5rCiszMzE3MSA1MzU1NDY4OGU1YTIyZThmYTI1MGVhZDUzY2JiZGYyMmZlOTY0M2I0IGxlZ2FjeS10cnVuaworMzMxNzIgMjllZWU1YzFkZDQyZmM4YTQxMDM4MDFjMjgyNTMwZmFiYTM3ZWI3OSBsZWdhY3ktdHJ1bmsKKzMzMTczIDAxZTkyNTM3MWQ3Yzk0MDg4Y2E4MTg5MjNlMWQxZmRlMDEwNjRmZGMgbGVnYWN5LXRydW5rCiszMzE3NCBkMWFjZjg5ZDFjNDlhNmQ2MDExNWZlZjM0ZmE0ODhiNjAzMGRiZmFjIGxlZ2FjeS10cnVuaworMzMxNzUgNjQ0NGVhM2RjODNjNDRlMTU4MjE4NDcyNjliMTBmNGJmNjQ2NWRiZiBsZWdhY3ktdHJ1bmsKKzMzMTc2IGU1NGUyZGU0NmJjM2Q1ODczN2Y0ZjczYmM5MjE4OWQ1MGYyNDJiZWEgbGVnYWN5LXRydW5rCiszMzE3NyBjYTllMzU5OGNjZmI1ZWM4MWIzZmRiYzlmOWYyNjRkYTYzMmU1MDEwIGxlZ2FjeS10cnVuaworMzMxNzggMjMxYTM1MTBlMjQ2ZmUwYzk0M2U1NmFiMDRjYWU4ODc2NWY4NjdmMSBsZWdhY3ktdHJ1bmsKKzMzMTc5IGQ3NjFmZjU1YjNiZWY0MWZlNTJmYTNlOTVhNjdjOGIxOWMxNmQ4MDggbGVnYWN5LXRydW5rCiszMzE4MCA5NGFjMWQ0MmE0MjA0ZjJkMGI4NmNiNDhhNDhjYzA0ODgxYjM1YTJhIGxlZ2FjeS10cnVuaworMzMxODEgMDVmYjUxZDA3YWRhZjViZjMxNGE4Nzg1ZWM4NTBhMmUwNDI5Zjk4OCBsZWdhY3ktdHJ1bmsKKzMzMTgyIGM2ZWI1NjllNGI3OTMwOWI4NTBhOGM4YjI1MjBiYzk0ZTIwOGNiNmEgbGVnYWN5LXRydW5rCiszMzE4MyA1ZDExZmRmYTdjMDA4NDc1MDA1NDIxYjNjMWQ0NTBjMDAwNGJiNzJjIGxlZ2FjeS10cnVuaworMzMxODQgYjc0ZTBjYzIxY2IwNDRmYWJjYTU1ZTJhODg1ZWQ5YjRmYmY5YmQ2OCBsZWdhY3ktdHJ1bmsKKzMzMTg1IDcwZTY0OWZhM2ZjZDEzOTE2YThhYjI1NGNlYTYwNWNhZTc3MGVlZmQgbGVnYWN5LXRydW5rCiszMzE4NiA4N2YzMGZjZmFkNDg4ODFhMjNhMzdiYzYxYmY3NzEwMzk3OTUyZTQyIGxlZ2FjeS10cnVuaworMzMxODcgYjFhYTFkNDM5Y2JhMzU1ZWVkOTAyZTFlMmYxNjdkMDQ1OTFkNTU1YiBsZWdhY3ktdHJ1bmsKKzMzMTg4IGZiMzMyYTA5NDliNzRmNTYzMTVmNzQzNjczNjkzYTYyN2JiYmYwOGUgcmVsZWFzZTIyLW1haW50CiszMzE4OSBmNmQ1MDNkZTQ1YmRlMGY5ZjFhNDM4OGNiMzg1MDJiNjQ3NWUzMDBkIGxlZ2FjeS10cnVuaworMzMxOTAgZjY3ZTRjNWFlYTkzN2RjMzgxNDQwODQ0OGI1NzZlODNkMmQzNjA1NiBsZWdhY3ktdHJ1bmsKKzMzMTkxIDdhZWU2ZWY1OTZkZGJkZTYzODNhOTY1ZDUxODYzYTUwZTQ5ZWQ0NWMgbGVnYWN5LXRydW5rCiszMzE5MiBmNDhiYjk0ZjMyODk1ODMyODcyNmU4MzhkY2MyNGI4NTRmZmRjOTFlIGxlZ2FjeS10cnVuaworMzMxOTMgZjE3NWY3NzliZTg5MGI3ZjlmMWQwYjA4YTUxMGI3OWMxNWI2MDE3NCBsZWdhY3ktdHJ1bmsKKzMzMTk0IGVhNzdkNDNlMjAzZDFmNTZmNTBjMTViOTRlZmUxMTIyMzdmYzkyOWMgbGVnYWN5LXRydW5rCiszMzE5NSAyZmJkMjU2YTFkYjI1NjI2YmJmZjQxZGE2YzkwZjg2OTgwY2UwYjEwIGxlZ2FjeS10cnVuaworMzMxOTYgMGI1MzIyYjg1M2QyZjc1MWI2MDMxMGJkNmIyMTA1MGZhNGRkMzhlYiBsZWdhY3ktdHJ1bmsKKzMzMTk3IDhiMDMwMGU3ZjFkY2IxOTkwMTljNjlmMzhiMGYwNmRiZDExZGQyZWQgcmVsZWFzZTIyLW1haW50CiszMzE5OCBjNjQ2ODdjZDViMzcxZDIzMjM4MzkyM2Y3YjA4ZjU1NDY4YTNmNmQ3IGxlZ2FjeS10cnVuaworMzMxOTkgMzRjMDQwZGRmOWU4ZWFkMjQ0NWEyMWQ3YjJiZDBhOTE1ZjU3ZTg0ZCBsZWdhY3ktdHJ1bmsKKzMzMjAwIGNkNjJiMzM1OWU5NTYwZTVmODc0NTE1ODQyNmNjMGUzZGQ0ODNiMzggbGVnYWN5LXRydW5rCiszMzIwMSBkYzZjMjFkYzg2ODRlMDYzOTdjYzAxNmQyMmM3MDU3ZTg0OWFmOGY3IGxlZ2FjeS10cnVuaworMzMyMDIgZmFmYjZlYjBmOTdlOGU0YzY5NDIzNTMzMGUzYmRlYmYwOTdlYTYzNSBsZWdhY3ktdHJ1bmsKKzMzMjAzIGMzYmM3ZWQ5ZDMxNTk5ZTBlMGY5YmQzODg0ZTZlNjRiZGRlY2ExYjYgbGVnYWN5LXRydW5rCiszMzIwNCAyZDQwMjdlZmJjMTJlMjJmZGEyNzg1ZWFjM2NiM2U4MDYwYWYxMWFhIGxlZ2FjeS10cnVuaworMzMyMDUgNjliYzdjYTVjYzFhOGY1MDFmOTM2ODJhMDBmOTA4YzIxYmU1NjljMSBsZWdhY3ktdHJ1bmsKKzMzMjA2IGUyMjgzMzZhYWYwOGQ3YzM1N2EzZDA2NmY4YWEyYzk3MGFiZjU2YTggcmVsZWFzZTIyLW1haW50CiszMzIwNyA5MTk3Mjg1YTM5MzM1ZTA0YjJlNDQ0Y2U0OWIzMjhhM2YzYjQwNGYwIGxlZ2FjeS10cnVuaworMzMyMDggMzI1OTJmMWE2ZjIyYjQ5OWEyMTJjNjg2OGZjMzk5Zjg4MDY1NDY4OSBsZWdhY3ktdHJ1bmsKKzMzMjA5IDZmZTAyMzY5MGQ3ZjEwZDNjYzUwNmJiYTVmMTZiYjM3NzAwODU5ZTAgbGVnYWN5LXRydW5rCiszMzIxMCA5NDRmNjAyYjc4ZmU0ODg5YTEyNGMyYWYzYmVjMDg5ZDllMDI3MjBjIGxlZ2FjeS10cnVuaworMzMyMTEgODc4MGE0OWQ4ZWYyYzE0M2ZiNjU4MTJjNTE0MzEzNWZjNTI2NWQyMSBsZWdhY3ktdHJ1bmsKKzMzMjEyIDdjN2Y0MDQ1YmEzNjcxYTAyMDkwNjRkZjY5ZTVmZjI1NWY0ZjI3ZWQgbGVnYWN5LXRydW5rCiszMzIxMyA0ZDFmYTljNWNiMmNmMjVkOTBjY2E3MTYyM2JmYjc3ZTk3YzZhMDY1IGxlZ2FjeS10cnVuaworMzMyMTQgZTk3M2RlZDhhOTJhODgyODVlMDI5MTAwMmJiZjE4YjJjNjhlYzU1YiByZWxlYXNlMjItbWFpbnQKKzMzMjE1IDUyMDAyODc4ODliZDJhNDEwNGVlMzhiMjdkMWQ1M2NkMTMxMjhlYjQgbGVnYWN5LXRydW5rCiszMzIxNiA2YTVlOTVjNjdkMzIxYzEwNTg5ZDkzZDllMmQwMjY0ODY2ZTQyODU4IGxlZ2FjeS10cnVuaworMzMyMTcgMWE0OTg2OTIyMzU3NzIwM2UyNDM1YmRiNGYwZDA3MDI2YWRjMTY4MCByZWxlYXNlMjItbWFpbnQKKzMzMjE4IDRiODZkY2FjMjIwMTA3NmQ2Mzk2ZWUwZjIwZjFhODAxNDViNDM5MDEgcmVsZWFzZTIyLW1haW50CiszMzIxOSBkZTNkNDllMGY2NDkxM2MwMzg5MWEwZTFiNjdhYjQxZDUxNGUyMWE4IGxlZ2FjeS10cnVuaworMzMyMjAgNDI3MjMyMmI5MmU1ZTllODI1NjZkMjIyZGM2Njg1OWE2MDJiYzg2NyBsZWdhY3ktdHJ1bmsKKzMzMjIxIGU1ZDNiMWQ4OWM0MDE4MDBkMDRkN2FkNDA1ZmNmYTI5ZmYzYWFhMjcgbGVnYWN5LXRydW5rCiszMzIyMiA5NThiNDBkODBiMzMxODMwZDAzM2JhY2MyYWEwMGEwY2RlODQzN2MwIGxlZ2FjeS10cnVuaworMzMyMjMgYTI5NjIxNGQyZWJiYTMxNzBkMTkxODA4Y2E4M2VmY2UxMTMzNWQ5NyBsZWdhY3ktdHJ1bmsKKzMzMjI0IDcxZDNkYTExNTgzOGYzMzFhZTBmNGI1OGRjOGI5NzlmOTcwZGNjYjEgbGVnYWN5LXRydW5rCiszMzIyNSA0NDhjMTQ0MTk2NGZkNjBlOWJkYzU3ZDg4OTRkYzEzZDcxNWI2NWE2IGxlZ2FjeS10cnVuaworMzMyMjYgNzU2NDY4MzA3ZTYxNzlmZTg0ZjFkOGQzNDU3MDlkMjVkYjU2MTJmZCBsZWdhY3ktdHJ1bmsKKzMzMjI3IDkxMjU5YWUzNWUyOTk0NjcyMzk5MWNhNjk4NmIzM2Q4MTk5NDc0MmUgbGVnYWN5LXRydW5rCiszMzIyOCA4ZTkyY2MwNGI2NGIwMDA0YzIyYWY3NDAyNWFiYjFkNDg5ODIyYjc3IGxlZ2FjeS10cnVuaworMzMyMjkgZDE1ZTJiN2Q5OTFjYzkwYjE1NTRiYzg2NGRiMjdiN2YxM2Q5Y2Y3OCBsZWdhY3ktdHJ1bmsKKzMzMjMwIGVkNDVhOTk1MTMxMjY4YjI0Y2UwYzcxN2NkMzk0N2RmY2JkNDhkNDggbGVnYWN5LXRydW5rCiszMzIzMSBhZDAyYTM4YTk2ZWE5ZWRlYTFlMjcyZmRkMzdhNDZjZWM3MzM3MTg2IGxlZ2FjeS10cnVuaworMzMyMzIgZjI2ZDEzMjM2Y2U4NGE4MDllYzI3YjY1MWNmNzEwM2MyY2UxNmM1OCBsZWdhY3ktdHJ1bmsKKzMzMjMzIDFhYTkwNTdjMzhiNGVkN2E4YjUyNWExY2FhMDExM2FjYzcyMTZiMWIgbGVnYWN5LXRydW5rCiszMzIzNCBlZWQ3NDMwYjdhZjE0YTdmNTllM2M1ZTU0OTg0ZDdhYjM4MDE2OGI5IGxlZ2FjeS10cnVuaworMzMyMzUgNWM4NzM3YmQ0Y2U2ZDRmYmE1MjUxM2RlNmY1ZmIzY2QxYTEyNGRhYiBsZWdhY3ktdHJ1bmsKKzMzMjM2IGUyZjc4MzQ4ODAyNDhkNGMzMjVmYmMzODlkZTg5ZGI4ZTI4MTllYjAgbGVnYWN5LXRydW5rCiszMzIzNyBjZGM3NWRlMmY1YzFhNjRmM2FkZmYwYjQ3YTNmMDgyZDgwYmNmNDZiIGxlZ2FjeS10cnVuaworMzMyMzggYjhiNTdiZGJmY2VkZjRjOGYxNDYwNDAyNDMxNWYwOTkwYzk0NjQyYyBsZWdhY3ktdHJ1bmsKKzMzMjM5IGY5M2I5MTllNTcyOTBlZDI2ZDUyNzIxYTJjMmY2ZTFkYzQ4OWM0MjEgbGVnYWN5LXRydW5rCiszMzI0MCAxNjllMDFlYzM1OTY1OWZjZTNhNjNhNDEwZTQ0MGE2NWUzN2Q0NGJlIHJlbGVhc2UyMi1tYWludAorMzMyNDEgNTYyM2Y5ZTJiNTU1ZjBlOTcwMDZjYThhMGMyMWVjZDQ0NjZlMjYwOSByZWxlYXNlMjItbWFpbnQKKzMzMjQyIDYwY2U3M2VhOWM5MmYzNDJmNTUyZjY3NTVlY2UxNGFkMGVjNmExZGIgbGVnYWN5LXRydW5rCiszMzI0MyBhOWE5M2ZjNTBiOGQ4YWU3ODc4YjYxYzVkZGYxMDVhMmZmYzQwNjM2IGxlZ2FjeS10cnVuaworMzMyNDQgMzEyZmI3NmI3M2NjN2M3NGQxOTE2ZGZhNzIzZTVlMzYyNTRmMmNmMSBsZWdhY3ktdHJ1bmsKKzMzMjQ1IGVlMTRlNWIwNmVkMTM2YjEyMzgzZGFiNjFkMTYyOWViYmFjNzc3OWMgbGVnYWN5LXRydW5rCiszMzI0NiA3ZmU0ZTlmMTY2MzQ3YjY0MWZhNGRlZDZkM2NkZDRkNmNkMjE0NWY4IGxlZ2FjeS10cnVuaworMzMyNDcgZGEwMjQ4ZmNmYzUyNTFiY2Q3MTBjYWIxNTE3ZDIwNzhjMjA0ODU1YiBsZWdhY3ktdHJ1bmsKKzMzMjQ4IDlkZjFmM2Q4OWU2MDBjNDE4N2UzM2Q5NTE0YjYzOGMxMTQxMjIzM2YgbGVnYWN5LXRydW5rCiszMzI0OSA4YjE2MzM3MDM3MmRkYWQwZTAzNDA2NDg4ZDA1YjBjNTk5MWJhNmM4IGxlZ2FjeS10cnVuaworMzMyNTAgN2Y3OWVhZDcxMmY1OGQ0NzFkZjdhNDQzMDY3MzUwOTcxMjM0MzRmOCBsZWdhY3ktdHJ1bmsKKzMzMjUxIDk5NjVlYmNkZDE3MmY5MmY0MTA4ZjM1MzBhNWE1OTBmNGQ4YWNhNjAgbGVnYWN5LXRydW5rCiszMzI1MiBiNzhkNjNkYWUwMzA3NmU5Y2RhN2Q1ZjdmNjM0YWQ5NTNlZDBjZjgyIGxlZ2FjeS10cnVuaworMzMyNTMgODgwN2U5MDFjNTI2Y2I0NGJiOWE2NjBlMzY5NzhhY2QyYzc2MzE3YSBsZWdhY3ktdHJ1bmsKKzMzMjU0IDRhM2VmMzgwNzhlNTUxNTdkMzdlZDRiOTI4MDg1NDg0OTA3ZjE2YTUgbGVnYWN5LXRydW5rCiszMzI1NSA5YTMwNDRlNTc4MWVhYWM1ODg0YzZiY2NiZTE4ZTYyMmEwM2ZhOTM2IGxlZ2FjeS10cnVuaworMzMyNTYgYTQwY2YxZDBhODg3ZmRmYjdjNmUzMjliM2Q3MTJiN2ZmZmM0YjRmZSBsZWdhY3ktdHJ1bmsKKzMzMjU3IGVhYTA2MmZkZDQ2YWIwMjY1NjE2Yzg0MDU0ZDgzOWIyYTFlZThiYjYgbGVnYWN5LXRydW5rCiszMzI1OCA4OTExY2E4ODk4MWFmODYyZTYzZTRhYWFlOWNiMjRjYTdjNWI3YThlIGxlZ2FjeS10cnVuaworMzMyNTkgYjM1ZmY5YjU5MTQ5MzFjMzg4ODBkOTI3MDlmNGU2OTUyMmZlYzQzYSBsZWdhY3ktdHJ1bmsKKzMzMjYwIDQ2NmI1NzllMDA4ODIyNjJiZmIxMmEyYWUzMTE1OGEzMTliYTRlNzggbGVnYWN5LXRydW5rCiszMzI2MSAyMDFjZWFmOTU5NzUxZjQ0MmEzYTYwOWI3NjViZmQyZmZjMjA1ZTg3IGxlZ2FjeS10cnVuaworMzMyNjIgMmIxM2I1OGFlM2E4ZTc2MzdhZjg0M2NjZjcyNDg1NTA5MjY2OWU1NyBsZWdhY3ktdHJ1bmsKKzMzMjYzIGVhMzg0YjFkMGQxM2RiYjY3N2NjMTk2ZjQ2MjE0YzAxZTI1ODIzOWUgbGVnYWN5LXRydW5rCiszMzI2NCA3YjUxOWVhNzUwMWFhYmYyOGFiM2E5MWU4MTU4MWZlNDI5YzUxOTVjIGxlZ2FjeS10cnVuaworMzMyNjUgY2FhOGMxMjBlMmNiMmIyOTZkNjA3Y2ZlM2RiZDA5Yzk5M2RjODhiYyBsZWdhY3ktdHJ1bmsKKzMzMjY2IGZlYThkZWUyNzMzMmZmY2Y1MmY1OTVlMWZlOWQ4NDEyNjIzYjNiNzYgbGVnYWN5LXRydW5rCiszMzI2NyA4YTI5MTZjNDMzZDk0ZmRiMmM5NDc3MzY5NWQ1YWE0OTg2MWE0MTE4IGxlZ2FjeS10cnVuaworMzMyNjggZTQzMTI2YzQ3MGE3NmVhOWZiZDNiOTJlN2U4Yjc4YWY2MzFmZjc5NSBsZWdhY3ktdHJ1bmsKKzMzMjY5IDJkMTZjM2VmZTE0N2U3YmQ0NGI3ZDc4ZjRmZmNkM2Y0ZjVhOTg2YTcgbGVnYWN5LXRydW5rCiszMzI3MCA2MGI1M2RiMTRhYTNjYzQxYTJjZWVjODQ3Yzg1MGZiZjVmOGMyZDQ3IGxlZ2FjeS10cnVuaworMzMyNzEgYmU2MjAwMDdlYzFmNTI2NTIwMTg2MDFiZmJlMmY1ODA1NDE1NmE2NSBsZWdhY3ktdHJ1bmsKKzMzMjcyIDAxNjlhY2RmMmI1YmMyNjk3ZTE3YWUwMmQyNjU2ZmNkYzg1NjNhZWQgbGVnYWN5LXRydW5rCiszMzI3MyBjZDNmOWIxNzBjMzdmY2JjMTkyYTdjMGU1MDk4ZWViNjIyZGVhMDNjIHJlbGVhc2UyMi1tYWludAorMzMyNzQgY2FjODU1Mzg3YjU2N2I2OTY3MGFjOGRiZTY4OTc2M2I4ZjYzMGViYiBsZWdhY3ktdHJ1bmsKKzMzMjc1IDg2MzQyZmE4OTIwZGFmZTMwYmYxZDNmOTk1YmQ2MTQwNzkxZGVlNjEgbGVnYWN5LXRydW5rCiszMzI3NiAwYmRiNGFjZWQ2ZTIwZDg2NmNjMzVmODdmN2NjYzg0NTE1MjFkNTljIGxlZ2FjeS10cnVuaworMzMyNzcgY2QwOTNhOTkyMzhkNzIzNjQ3ZDkyZTI0YzdkNTU5ZjIzNmEzYjQ4YSByZWxlYXNlMjItbWFpbnQKKzMzMjc4IDQ0ODFjNWJkYTE5NjZhZDg2MGExNjllMzAwMWNlNjk3MDA5OWM0NjkgbGVnYWN5LXRydW5rCiszMzI3OSAxYmE5MGQ1MTQ5N2JhNjg1NzAwZDhmMDA0ZGZlZjA5ZjQ0MWRiMDFlIHJlbGVhc2UyMi1tYWludAorMzMyODAgYmFkY2QxNThkODFjYTIzZjYxNzlhNDk2Y2QxMTczZTIxMmVkZDFjZSBsZWdhY3ktdHJ1bmsKKzMzMjgxIDU4MjUxZTBhOGI3ODdiY2UzYjM0ZjVmNWZiYzA5YmIzODRkZjAwZWIgbGVnYWN5LXRydW5rCiszMzI4MiBmODA2OWY3ZWRkNGEyOWJmNmM1MDRjZGZkYzRhOTU0OTAxNGZiYjU1IGxlZ2FjeS10cnVuaworMzMyODMgNzdlZGEwZmIwZTE0OWQ0NzIwMGUyYjg0ODFlOThiYjJkMWEzZjY4NiBsZWdhY3ktdHJ1bmsKKzMzMjg0IGRlZDlhYmNiOTE3NGFhNzc0ZDJhNzU1MmQ0MWVjZDFlNTk5YTMyMDIgbGVnYWN5LXRydW5rCiszMzI4NSA3ZDMwNTg1YTU5MzQwNTUxNWY1MTRjNDgzNWU0ZWU4NjhkYWQxOTAwIHJlbGVhc2UyMi1tYWludAorMzMyODYgODUzZTZhMmI5MDY4ZWU2NDMyMTQzMTcxMTMwNGQ1ZmZhZTlkM2IxYSBsZWdhY3ktdHJ1bmsKKzMzMjg3IGE0NjQwMjBmMTVkNjc1Mzg4N2Y2MmE3NGIxYzA5OWQ2Nzg5ODQwZGYgbGVnYWN5LXRydW5rCiszMzI4OCA3ZDQxNzg1ZmI2MGM2ZTQ4MjdlZDZiYTVjZmU0YjVkNzdjZTQyYjVjIGxlZ2FjeS10cnVuaworMzMyODkgYmExMmQyYjRiMzFkZGJiNmFkNDkyMzI0ZmJhMTg1ZTg2YjFmZmU4ZSBsZWdhY3ktdHJ1bmsKKzMzMjkwIGUxZmEwN2JmODU0ODg4NWIwOTI5OTQ0ZWUwY2RkZDY5NDNmZDgxM2IgbGVnYWN5LXRydW5rCiszMzI5MSBiYzEyMTVmN2RiYTM4NmI1ZGJmNGRmMWEyMDk5YjNhNzQ0MTgwYjNlIGxlZ2FjeS10cnVuaworMzMyOTIgYTRkNmJjNzFmMDkxYzI3YzllNGFlOTJiNzFiZmY5Y2VmNzBkZTM4YyBsZWdhY3ktdHJ1bmsKKzMzMjkzIDQxMGIzYzIyMjIxMTRjOTg1YjczYWFlMTI2M2JmYzA4N2RjNDQyOGEgbGVnYWN5LXRydW5rCiszMzI5NCBmODgzZGIyNWQzNDQ0YmRlYWEzM2VjMDM5ZGZiMGU5YzAyYjMwN2JiIGxlZ2FjeS10cnVuaworMzMyOTUgNjc2YWE2MjgzMGQwZTk5NTJiYWQwZWE3MTUxOTkzMGEzMWU3ODQyMiBsZWdhY3ktdHJ1bmsKKzMzMjk2IDUzMDRiZmYyNWUxODM0YTYyNzY5ZmNhZjc3YzFiYWM1M2JmYzExMGEgbGVnYWN5LXRydW5rCiszMzI5NyA2YWE5NzJhMjFhYzRjMTcyZDY1MmQ1NmY4Y2VkOTY0N2NiMmY5ZmE4IGxlZ2FjeS10cnVuaworMzMyOTggMWVjZGI5NGExODUyMmY4OWVmN2NhMTAxZTY3ODExOWUyMmMyNmQ3YSBsZWdhY3ktdHJ1bmsKKzMzMjk5IDlkZTgyZGJjM2JkMDJiN2JiZTg3YjkxZjMzOGIxMDZmNjRmNWRhNDYgbGVnYWN5LXRydW5rCiszMzMwMCA5NzNiMWUyZTI3MjYzODE1ZDI4YmRlODBlYzAwZjhhOGJhM2Q4NTY4IGxlZ2FjeS10cnVuaworMzMzMDEgNWQ3ZTZlODI4MjE4N2Y1ZDM0MTdhM2MyNGMxZGU4N2ZjNDRlMjM1OCBsZWdhY3ktdHJ1bmsKKzMzMzAyIDdkNWE5YzFhMDE5NzA4NDYwYzFhNmVmZDNlZTZmNDVhZTUwNjFiM2MgbGVnYWN5LXRydW5rCiszMzMwMyBhZDJkY2E1Y2ZlODFhNzcwN2U4NjA4MTA5ZThhMzZjMzc3NGY0MmQ5IGxlZ2FjeS10cnVuaworMzMzMDQgNDkwOWFhNjQ0MDVmYjFjMjA2ZjBkNzRlNWQyMjI3Mjg2MGZkNTcwMiBsZWdhY3ktdHJ1bmsKKzMzMzA1IDU4ZjE0MWQxY2NjYTI5OTVjMTM5MjIxOGJmZGQ0N2I1Nzc2OTg4MmYgbGVnYWN5LXRydW5rCiszMzMwNiBmYTk3MjkzNTMzYTkxZjRkYzY5Mjg2YmRhNjkzNThkZmVlMTdkMzE5IGxlZ2FjeS10cnVuaworMzMzMDcgYTYzZWE3YzQ3NWNjNWUyODAxZDAxZjhkYmU3ZWRmODlkZjFlYmU1ZSBsZWdhY3ktdHJ1bmsKKzMzMzA4IDYxZjk4ZWQ0YjZiNThkM2JmY2MyNmY4NGQ4ODdiZjA2NWYxMzUwOTggbGVnYWN5LXRydW5rCiszMzMwOSAwNTA5YTc2NTIxNjdmNDhhZjNmZWExNWRkM2Q1OGZjNjQ1YzQxZDY0IGxlZ2FjeS10cnVuaworMzMzMTAgZDY2OGE4MzM2Nzc0NzgxY2Q3ZmEwNmZlOWQ5MmQzOWNjY2QxNTRjYyBsZWdhY3ktdHJ1bmsKKzMzMzExIDQ2MmRlOTMzMzI1MWNhODAxNDA0NzE2YmQ2NDQxMDI5MmZkNWM3MGMgbGVnYWN5LXRydW5rCiszMzMxMiA4YmQyNTgwZTAxNTU1MjFkZGUzNDc2MzEzYzE2Mjk5OGEyYzViYzliIGxlZ2FjeS10cnVuaworMzMzMTMgMzg4MTg4M2I5NDBlYzBlNDMwYjQ4NjM0MjExNWFkYWY1NjYxNGJiMSBsZWdhY3ktdHJ1bmsKKzMzMzE0IDBhMzc1MWRmNDE5NTJiNTRmOTA2NDljOTAxNjg2ZmQ5OGFlMmQ5YzIgbGVnYWN5LXRydW5rCiszMzMxNSA2MDQ1NDJlNTkxZmE2ODFjNjQ4ODc5YmI2Yzc0NmY2ZmU3N2NkMGZiIGxlZ2FjeS10cnVuaworMzMzMTYgMTZlZWQyZTk4ZmQ5MzU0NjhkYWQyY2E2MThjOWQwMjI2NjBhNTMzOSBsZWdhY3ktdHJ1bmsKKzMzMzE3IDY2YjZkMWNlNDJmZTYxZTIwMzk0OTM2YmFlYzljN2JmOWRhMGQ3NjUgbGVnYWN5LXRydW5rCiszMzMxOCBmOWI4ZDRiZjA4ZmI5YWQ4YTk4NjE4MGUxMTA4ODJkYjRmMzdjN2ZkIGxlZ2FjeS10cnVuaworMzMzMTkgNTgyODg3YmE3YTY4ZGQ3Y2Q0MjZmY2M5OGQ4N2Q3YmE5ZmVlODQ5OCBsZWdhY3ktdHJ1bmsKKzMzMzIwIDViMTA1YTk1MDMzNDhmYjJlZGFlYjViNDAyMmQwYzczMmM5NmFjNTAgbGVnYWN5LXRydW5rCiszMzMyMSA5NTUxY2RhZjZlN2UxYTg4NDIyM2FiZDZmZjM1N2UxNzZlMDExOTUxIGxlZ2FjeS10cnVuaworMzMzMjIgNjk2MTk1NDJhOTE2ZTM0M2QyYjM3MDE0MWYwMjcwMmMxNDc5ODFhNCBsZWdhY3ktdHJ1bmsKKzMzMzIzIDlhNGJjZmRkYmZhMTJmMTU0NTNiYzJiNzVmOTZhNWNjNWRmZjA2YzEgbGVnYWN5LXRydW5rCiszMzMyNCA3OTMwM2RlOWEwNWE2ZWYzYzg5MzJlNmU2NTIxMThkY2Q3ZmIzY2MwIGxlZ2FjeS10cnVuaworMzMzMjUgMTMwOGQ3ZWM5OTUzNTA5OWUzZWJmZmY1ZTAxZDQwNjY4ODBhMDllNiBsZWdhY3ktdHJ1bmsKKzMzMzI2IGNiOTNiODYyNTMyZjQ5MDMxYzJkMjYyN2E1NTA4YWQzMDNlNjVjNzAgbGVnYWN5LXRydW5rCiszMzMyNyAzY2IxODIxMjUyMWQzNDg5YjA1ZmM1ZGE4NDEwZmE1MjcwNmRlMGIwIGxlZ2FjeS10cnVuaworMzMzMjggZDc2MjZiODBkZTk1MTY5NGFmNjQ0ZWVhZmYyMTM4ZWI5MGFjMjJhYSBsZWdhY3ktdHJ1bmsKKzMzMzI5IDcxMGMwOWY0YzA1YTIzZjRlMzI0YTZhNzc3OGJiMjRmNTk1ZDNkNjggbGVnYWN5LXRydW5rCiszMzMzMCBiYTc1YWY3YWIxMzZmMzFhOWQ4YmM4ZGJkZjZlMmE0ZjUzMmYwN2YxIGxlZ2FjeS10cnVuaworMzMzMzEgMzZhMTc5MDRhM2VkMDA2MGU0YTFjYzk3ZmQ3OGFlODhmOGQ5NTA3NiBsZWdhY3ktdHJ1bmsKKzMzMzMyIDk2ZWNhYWI0Y2JhNjgxMzhjNWM1Nzg5MDVlOTc1NjFhOWQxZThjYzAgbGVnYWN5LXRydW5rCiszMzMzMyBiZTk5ZjU5NzA2ODg5MGNiZmNlMjdjMDNlOTJkNzRjZTBkNDU2MDQwIHJlbGVhc2UyMi1tYWludAorMzMzMzQgNjZkYzA1MDEwNDdkNGMyNjA5N2FjNjZiYmM4OTVhNThlMDRjZWQxOSBsZWdhY3ktdHJ1bmsKKzMzMzM1IDRmZjgzYzBiNDVlOTI1MjJiMThjZDU5ZmQ1MDIyMjE1Nzc3NWZkODggbGVnYWN5LXRydW5rCiszMzMzNiA1MTM5N2VkZDJiZDRkNWQzNmE4NTczMjU5ODIzYWM1NTc4ZWNlYjEzIGxlZ2FjeS10cnVuaworMzMzMzcgZjA4MTE0N2MwYzhhZmFiNTQ4NGRkMzhjZTc3ZjU1OGE2OGIyNWNlNSBsZWdhY3ktdHJ1bmsKKzMzMzM4IDI2OTJiMWM5MmU4ZDkxYTM2MmM1MjA5YzJlNDE3ZjkzMjMyNTA3NDMgbGVnYWN5LXRydW5rCiszMzMzOSAwNTJiZmNiYWJiN2I5ZDkyZjFhYzk2Y2UzNWYyZDdhYjdmNjRkNzk1IGxlZ2FjeS10cnVuaworMzMzNDAgMzY0MDI3YTgxNWI4Y2YyNTMxZTI1YzI5MTg3NTExNGQ5YWFiMzFiYiBsZWdhY3ktdHJ1bmsKKzMzMzQxIDI4MGZiZTVmNGUxNmVjYzZjZWI2NTNiZWRhNTVjZmZiYmQyNjdkZjYgbGVnYWN5LXRydW5rCiszMzM0MiBkMGYxNTk3N2YzN2Y0NzUyYzVhODc2MWM0Njk5NjZiM2QyYTkzODBiIGxlZ2FjeS10cnVuaworMzMzNDMgNGUxYTQ3ZjUyMDRjYmU0MTk4NjU0ZTMzNTE1NTJjNjhhOTBhYjMwYSBsZWdhY3ktdHJ1bmsKKzMzMzQ0IGMxNDlkZDRjZmQ2NmRmMWFmMWE3OTMzMDExOGRiYWFkOThiOTU2MTggbGVnYWN5LXRydW5rCiszMzM0NSA5MjA3Nzc2NDBkMjg5OGQ3NzBkOTdjYzdmZmFiZjMzODEzYzhiMTM5IGxlZ2FjeS10cnVuaworMzMzNDYgZDM4ODBjMjM3NjI3ZmFjNWM1N2U0ZDU3NzRiYWQ4MDFmMGI4ZWI5ZSBsZWdhY3ktdHJ1bmsKKzMzMzQ3IDZkOWVkNTRhNDgyMTkwYzczNTJiYzBkMWNlMTk2MDMzYmJmNTNjYTggbGVnYWN5LXRydW5rCiszMzM0OCBlYjBiNjdlM2MwNGVjNTY3YTI5YTdlNzQxNTcxNDc3OGEzZDllOWFiIGxlZ2FjeS10cnVuaworMzMzNDkgMzcxMDkyY2U1YzJiYzMzY2Q1ZjgzMDk3YjhjOTRkZjNkMjdmZDQzNCBsZWdhY3ktdHJ1bmsKKzMzMzUwIGM1YmIzMWU0NWM2Njg3NmIwMDg0NTYzMzhhNWIxNzUyMTk1ZTQwMWUgbGVnYWN5LXRydW5rCiszMzM1MSA5ZmU2N2Y3ZjM0NTlhYjU2Nzk4YTViZWE3ZTRiN2EwYTFjNzlkNTgxIGxlZ2FjeS10cnVuaworMzMzNTIgN2EyNzY2YzlhN2I1OGM4NzY4ZjNiNDkyOTc3NDE4MDFhNzQxNTk4NiByMjNiMi1icmFuY2gKKzMzMzU0IGY0ZTJlNWE1ZWM2MjJiMTE3YjhiNmM4YjE2OTQ3MDg3NzY2YTc1M2EgbGVnYWN5LXRydW5rCiszMzM1NSAyNWI5ZmQ2ZDhlMzAwYjQwNDU1Mjk1YWIxZjZjZDg0OTBjMzFhNWIzIHIyM2IyLWJyYW5jaAorMzMzNTYgNzJkY2M2M2Y0ZGVhNmI2ZjBlMWY1NTVkNmZiMzJkZjFiYTU4YzQ5NyBsZWdhY3ktdHJ1bmsKKzMzMzU3IDg0MmQ5ZTMwZGI5YzM3MjZmMDhjNDM5YTBiN2M0NjZkN2UxNTY2ZjYgcjIzYjItYnJhbmNoCiszMzM1OCBlZjdhMWQyODU3NzE0OTQ3YjY1NDNiNmIyNTVkZmQ3YmJiYzhkZTUyIHIyM2IyLWJyYW5jaAorMzMzNTkgZjRmMTFlZDNhZTQ0MDllNzZiZmQ2MjA0ZWFmZjEyYjllMzk1NDg0NSByMjNiMi1icmFuY2gKKzMzMzU5IGRjMWIxYzdhNmI5ZTY0ZjdhMjExZWE5ZThhN2RhNDgzYzJiYmExNjcgcjIzYjItYnJhbmNoCiszMzM2MSA1MzdjOGIxYWVmN2ZhYzg4NjZlNmRiYmJlNDNkY2IyNzMzNmY0MmQyIGxlZ2FjeS10cnVuaworMzMzNjIgYzRmOWZmMjkxMjI5YmM4ODQ2YjE1YzY2NDI2Mzk0ZGI0NWQyZDE5YyBsZWdhY3ktdHJ1bmsKKzMzMzYzIGQ3MTY0ZmJlYzdjZTE0MDM5MWJiYTY4ZWZjMDI4OTYzMmUwNTk3YmYgbGVnYWN5LXRydW5rCiszMzM2NCAyNmJhNzFhYTViMjE1NTU2YTczZjU2YjVhZmM2YmU3YWI4YjFkODU5IGxlZ2FjeS10cnVuaworMzMzNjUgZDBkYzk1NjQ2N2JmMWI2Y2M2Zjk0YjBlMDkwYTZhOGIxNDQ3ZTkzMiBsZWdhY3ktdHJ1bmsKKzMzMzY2IDNlZDJjOWE3Njk2NTY4MzM1MmVlZWQxNjZmZTYwZjEyZjk1MzgyOWQgbGVnYWN5LXRydW5rCiszMzM2NyAxZDc2Mzg2MmQxYTFkNzAyZDkwMTM2MmQ3OWQ3ZjEwYzc3MWViZGM5IGxlZ2FjeS10cnVuaworMzMzNjggZjFjMjc5ZDcwMGE2ZDZmMGNmZTc2MTM4ZjM0NjA2OTkwYzJlZjhjNCBsZWdhY3ktdHJ1bmsKKzMzMzY5IDhkYmM0ZWM1NzIwZGJkNWYzZDk5YzVhNTY0NmJhY2ZjNGI3N2U2MGYgbGVnYWN5LXRydW5rCiszMzM3MCA2NDgzZWVhZWFkODJjMGViY2ZlMjZkYjU2MjQ4ZDc0MDM3MDU0MzUwIGxlZ2FjeS10cnVuaworMzMzNzEgN2I2ZmE3YmIyNGYwNjQ2ODRmMzgwNTMwZDU0NDZlYzdiZDQ0NTE4YSBsZWdhY3ktdHJ1bmsKKzMzMzcyIDhmZjA0MGU5ZDU2Njk1MTJhMmM3ZTI5Nzc1ZjFkOTdhYzRiNTEwMmYgcmVsZWFzZTIyLW1haW50CiszMzM3MyBkNjc3NDI0YzljYTcxMDU5MzE3MjRhMjdlNzc3M2U2MDM3MTA5YTczIGxlZ2FjeS10cnVuaworMzMzNzQgODkxZTU1MDJlYzllM2IxMThkYjgyMmVlNjgxYmQzODBlYTJiMzExNyBsZWdhY3ktdHJ1bmsKKzMzMzc1IDE1MzY5NDFiNTQ3ZjA2ZDNjOGIyN2U3ZGU4NzFiYzVmOTY4YmY1YTQgbGVnYWN5LXRydW5rCiszMzM3NiBhNGZlYWQwZTI0ZjhhZWZjYmI5NDQ3YzFkM2ZlMTljZDc5ZmYxOGRkIGxlZ2FjeS10cnVuaworMzMzNzcgNzYyZTJhMjk3YWI5N2EyMWJkN2U1YjYwZGVkNzNjMDg1MGMxOTQwNCBsZWdhY3ktdHJ1bmsKKzMzMzc4IGUzODE2NGFhNWJlNTEzYjdkYjhiMThjYjczMmVmYzFiYjczNjkzYTMgbGVnYWN5LXRydW5rCiszMzM3OSAxZjM1NDdkNDkzOWZkYzg2ZTcyYTgyOGUyNTNiNjUxYTlkZmE2Mzk2IHJlbGVhc2UyMi1tYWludAorMzMzODAgNGQyNjU0N2ViZmMzODg0YzYzNGIyYzk3YTRjNTdkYTg5ZjU4N2FjYSBsZWdhY3ktdHJ1bmsKKzMzMzgxIGQ4ZDE5NzU1MWExZWRiZWVmZWFlMmQ4ZTVhNDMzZjIxMzg0OGIwMjEgYXN0LWJyYW5jaAorMzMzODIgYjc1MjhkYWU3NjU2N2IxZjVmMTE2ZmE2OWRmNjIxMDY2YTM4NDIwMyBhc3QtYnJhbmNoCiszMzM4MyA1ODEzMmM4MTNkN2JlOTQ1ZWE3NmQ4YWY4YTdlODkyMThjYjUxOGYzIGxlZ2FjeS10cnVuaworMzMzODQgOGVkMmVkNzc4Njk0MTY1MmUyOGM0NzE1ODVmMzhkOGI1ODhlM2ZlMCBsZWdhY3ktdHJ1bmsKKzMzMzg1IDI5MmU4NDQ2NmU3ODE5NWQ0ZjU2MzdjNzNmYjJmNWUzNzQzNTdmYTcgbGVnYWN5LXRydW5rCiszMzM4NiBiZjA2MzRjYzBmMTc1MDhmZThjYzdiZWM3OWRmYTk4OTNmMGJlM2M1IGxlZ2FjeS10cnVuaworMzMzODcgZTk1MzFlZTVmMTg4OWY5OGQxNTQyMjhhYjFiZTJlZmNhOGNlMDVhYSBsZWdhY3ktdHJ1bmsKKzMzMzg4IDlkMzNkZDJjY2ZlNmE2ZTk3NmZmMTFlNDM2NWVlNTE0NTdjNTk0YWIgbGVnYWN5LXRydW5rCiszMzM4OSAyYTVlNmNlM2YzYTE1NzUyMGE1YzQwYjA1MDYyODVlMzEyYjQ1ODhlIGxlZ2FjeS10cnVuaworMzMzOTAgNzI0ZjJlZDc5ZGE5YjNkMzZkYmU0NmU4OTM1MTQzZDg4NDZhMjEzNyBsZWdhY3ktdHJ1bmsKKzMzMzkxIGZhNGNmODc4YzUzODQ0OGM4ODA2NjliZDI5NWZjMThiOTk4ZDdjOGYgbGVnYWN5LXRydW5rCiszMzM5MiAwNTJmZTk2Njg0ZWFiNmQ4NmQ5NjJmNTQ3ZDg5ZTk5YjMxZGNiMjRlIGxlZ2FjeS10cnVuaworMzMzOTMgMDllNDJmNzlmODMwYmRmMjQ5ZDI4MzgzYzRkYzVhYmQ0Y2MxMmM5NSByZWxlYXNlMjItbWFpbnQKKzMzMzk0IGE0NGQyNjdmMDE2MjlmYTRjMzMwOTQzODYxZjA2ZGI0MjAzYjYwMWMgbGVnYWN5LXRydW5rCiszMzM5NSBjZGIyMTdhOGViMDQ0NWRjOTgzN2JkZGMyOWQyYWM2OGJjZjUzYjNlIGxlZ2FjeS10cnVuaworMzMzOTYgM2I3YjRmZDVmN2NhZDU2YmU3ZjBhYTFhZDFlNTI5YzE2NGFmYTMwMSBsZWdhY3ktdHJ1bmsKKzMzMzk3IDdkMGFmNDU2MWVlZDFkZTA2ZDUzNzQyN2UwZjhkNzEwODI1ZmNjNmIgbGVnYWN5LXRydW5rCiszMzM5OCA4NWU1MmVjODU2Mjk5NzY3MGMxOWM1YThkOGU2NTEzZTExNWY5YWM2IGxlZ2FjeS10cnVuaworMzMzOTkgOTYyZjQ0M2FlMWQ5MWIzODQ0ZjdhYzVjNGYyZDVmZTI5N2FkMDk4NyBsZWdhY3ktdHJ1bmsKKzMzNDAwIDRjOTBhNjMxZDYzMmVkZmU0ZTYxMDAxZDg5ZDJiMzc1Njg0ODc4MTAgbGVnYWN5LXRydW5rCiszMzQwMSAzNzIxNmUxYzY3NDcyNGUwZDA1ZjRhZDAzMWIzMGU4NDIxNTIxY2Y2IGxlZ2FjeS10cnVuaworMzM0MDIgMGUxMzFlMjk0NjYyNWU3NWNmNzgyZDBmY2Q2MzEyOWE1NDVhZWQ2MSByZWxlYXNlMjItbWFpbnQKKzMzNDAzIDQ1MmUzM2EwOGQ1NTcwYTA2ZjhmM2Y4ZThkZjk0ZDRlNjYxNThkNmIgcmVsZWFzZTIyLW1haW50CiszMzQwNCAxMjQ3Zjg0YWE2YTZjMDNjOTE1ODViNDBlNThhMTVmMTM2NzJlMTM4IGxlZ2FjeS10cnVuaworMzM0MDUgMzliZTViMjYyNzkyYzk4MDBkZGRmYzFmNTgyZGM0NjllMjdjYmVhZSByZWxlYXNlMjItbWFpbnQKKzMzNDA2IGY0MzI5NmNiYzk4NTAxMzRlNGFiZmMxMGU0MDA1ZTc2NmFmMWU3ZDkgbGVnYWN5LXRydW5rCiszMzQwNyBlODUwY2M1MWMyOGZkODhmN2Y1Zjk0NDZhMmUwODBhMzkwNzg4MDI2IGxlZ2FjeS10cnVuaworMzM0MDggNjVlNTJjMjQ3NWNlNTEzNTk0ZWQ5YmI2Y2M0NWY3MmQ3OGY0YWQ1YSBsZWdhY3ktdHJ1bmsKKzMzNDA5IGE1ZTczMzZjMDA4ZDM4YWRiODllMjE3ZGQ3YmExNDIzMGZhOTQ0NGYgbGVnYWN5LXRydW5rCiszMzQxMCBkNWYyN2U2N2UxYWFlOGNjY2NlNjE5MTkxOGJjNmZhYWVhZTIzYjVkIGxlZ2FjeS10cnVuaworMzM0MTEgM2FkODk4YjhmODEzYWM1NWYxNTMxYjg0ZjBlODQ3MWM4ZmE1NDlmZiBsZWdhY3ktdHJ1bmsKKzMzNDEyIDRjOWVmMmE2Mjg2NGQ1YWI4OTFmYTc2NGY4YjdlNjAzMjczZWU0NWUgbGVnYWN5LXRydW5rCiszMzQxMyA4Y2E5Y2UzNmEyMDZmZmQxYTg0M2I3NGY4ZDA4MGRiNDg0ZjFlMzA1IGxlZ2FjeS10cnVuaworMzM0MTQgNjg4MzViZjEwMWVjYjEzY2M5NTc0ZWZjZDg4ZDk5NmU2ZGZjMWIwMiBsZWdhY3ktdHJ1bmsKKzMzNDE1IGI5YzQwZmRhNjA5ZGJmNzY2YmNiY2VkMDhjYzZkMzk0Y2Q2OTkxMGEgbGVnYWN5LXRydW5rCiszMzQxNiA0ZjkyOTNjYTJkZTYxMmIwMzUxYTU5ZmE3MmJhODdjN2JiN2YyZDRmIGxlZ2FjeS10cnVuaworMzM0MTcgMzJmOTZiYWMyMTEzY2YxZDY4YmZhNDBjODUxMDNiM2NkYzhiYTI2MCBsZWdhY3ktdHJ1bmsKKzMzNDE4IDYxZmI5OTZlYmE2ZTBlYjAwYjU5M2JhMmIzMGYyZWUzODViMTJmOGQgbGVnYWN5LXRydW5rCiszMzQxOSBlYjgyOGM2NGZjYzdiYWVjYTAwN2VmZmU4ZGZmOTI0NGMxNjY4MzYzIGxlZ2FjeS10cnVuaworMzM0MjAgNWFmODkwMzdjZWJhMDgxNWY3MDllZDNhMzBhNTc3MTIzNWZiMWU2NCBsZWdhY3ktdHJ1bmsKKzMzNDIxIGFjOWExZjBhMzNkYzhlZTdhODBjOTVmNzM0MTYzYWY4NWM3MjUzOTIgbGVnYWN5LXRydW5rCiszMzQyMiBiODY0NDZmMDM1MGZmMDE4ZDg3ODIwYjExMDIyNzJkODQxMjg2YzIyIGxlZ2FjeS10cnVuaworMzM0MjMgYjU4MjFlMTc2NDUzODAxMmI1MTE4OTU2YmM5Y2Q3NGNlOWZjMTZkYiBsZWdhY3ktdHJ1bmsKKzMzNDI0IDlhNDQyZjRhNjQ0M2RkMWQ2MTQ1MmI4YjkyZWMzMjJmYzY1NjY1M2EgbGVnYWN5LXRydW5rCiszMzQyNSBiNDRkZWVlYzVjNWVjOGZjMmIwNzIzY2VlOTdjM2IwNjhhMzU2Yzk0IGxlZ2FjeS10cnVuaworMzM0MjYgMDc1YjI5YWQ5N2MzMjFkNTdkNjM1N2IwMmQ3MWY2NDE1NjkyNDI1MSBsZWdhY3ktdHJ1bmsKKzMzNDI3IDU5ZGE1YjU3YzYxYmFjZDIyOWVkN2M1MWM1NDliMjQ2Y2VlNzQwNmMgbGVnYWN5LXRydW5rCiszMzQyOCAzYzFmNzgzNDBiNjVlODYyZjAwNjNlYjgyY2I3MTUxYjAzZDYxNmU1IGxlZ2FjeS10cnVuaworMzM0MjkgYjQ5M2E3ZTc1ZDk3N2ZhMmEyYTQzY2IwMWVkZTM1NmU5MGU3NTEyMiBsZWdhY3ktdHJ1bmsKKzMzNDMwIDA1OTFmZDk1NmI5ZDI4NTdiYjIyMWRmNDBlYzRhZjJjYzMwYWUxODIgbGVnYWN5LXRydW5rCiszMzQzMSA0ZWM4ODBjNTNlMmEzMDdkZTBjMTZkY2I0Y2Y1NTk4ZDM2ODljZGM5IGxlZ2FjeS10cnVuaworMzM0MzIgOWViNmRjZWQxNmU2YmUwNzc2NTg4NTdjMDQwYjFlZGNjZGQ1Y2FjYSBsZWdhY3ktdHJ1bmsKKzMzNDMzIDc4YzUxMDlmZmFkYTA2MzE5Yjc5MDkzMzcyMmZhZTYwZTRmYTU0MGUgbGVnYWN5LXRydW5rCiszMzQzNCAwMDU3NjVhNTZlYzM5YjIyNjAyYTYzZjE4ODcyNjQ4MGQ3M2E5ZjAxIGxlZ2FjeS10cnVuaworMzM0MzUgYjg0Y2MzYzc4MDhmODIzOTdmOWE3YTk5YzRlOTkzNWU0NDA5OWJhMiByZWxlYXNlMjItbWFpbnQKKzMzNDM2IGZlNWViMTc4MDBmOWMzMWI0N2Q0NTViZTNkY2U2MjJjMTA5NzQ0NmUgbGVnYWN5LXRydW5rCiszMzQzNyBlOWU1ODMyZDcwNmZmMWEwOTMwODUwMWQyY2QxMTAzM2ZhNGVkZjJkIGxlZ2FjeS10cnVuaworMzM0MzggN2E0NzhkMTNmMjdkYTMzNjljNmU5YjZmNjZlNjQ5NzFjNGIyYTdhMyBsZWdhY3ktdHJ1bmsKKzMzNDM5IDc3NzBiNzg4MTM0NmQyZTVmZjI3NzU5Y2QwMTZiMTY1Zjk5ODNmYjMgbGVnYWN5LXRydW5rCiszMzQ0MCBlZGE1ZDAxNWUxMWMxODYzNzc4ZjM4YzlkODIyMzUyYzNjNTE2NjNjIGxlZ2FjeS10cnVuaworMzM0NDEgMjhjZmE1NDZmMWVjNzY0ZGUyMzEwNjY2N2ViYzhlNTJhZTNhZGUwYiBsZWdhY3ktdHJ1bmsKKzMzNDQyIDA3MDM0NWFkOGQ3MWNjYmFhZDI3ZWFiNGU4ODhiN2M1MzQ1MmVmMTUgbGVnYWN5LXRydW5rCiszMzQ0MyAzMmVmZTU0ZDBlOGZmZDE4ZjAzNzFkNGYwYjFiYTRkMzhhMjFmOTJlIGxlZ2FjeS10cnVuaworMzM0NDQgZGRjMjQ3NDA0ZGFiM2VmMGY5NTY2ZjFhY2VhM2MxZTYyMTdiZmRjYSBsZWdhY3ktdHJ1bmsKKzMzNDQ1IDhlMjdlNWNkZTU5YWVkMTkzZDc4MTNiMzc0NmFkNzdhYzVmNTU2MDQgcmVsZWFzZTIyLW1haW50CiszMzQ0NiA5Mzk2MTM0Njg0Y2Y1OWM5MzQwZmFlZTFmYWIyYjIyY2YzNzJhYjM2IGxlZ2FjeS10cnVuaworMzM0NDcgZTZmOWY2YjVkOGQ3ZTcxMDEzYmJlNjdlOTFhMzQ1MjVjYWI4NmZhYiBsZWdhY3ktdHJ1bmsKKzMzNDQ4IGY3MzNiYWM3OGY4N2U0ZWZlODU0MzAwMTIzNGIxNGZiYzYzZmQ3OTEgcmVsZWFzZTIyLW1haW50CiszMzQ0OSA3MDU2Y2M1YzgxNjdmYzJlNGEzMzNmZDhkYzQzNmZlNDIzYzBkZTZhIGxlZ2FjeS10cnVuaworMzM0NTAgY2U5ODgzOTRjNzU0NzhmZGUxYTdiN2U5Mzk1YjYzZTE4MTY2Mzc3OCBsZWdhY3ktdHJ1bmsKKzMzNDUxIDJmY2RlMzJhOGE1Nzk5ZTU4NDM4NzZiMGU5NzhkOWRjYWY0NzQ3YWQgbGVnYWN5LXRydW5rCiszMzQ1MiBkYzZhNDY3MzE4NjA2Zjk4NTg2ZGE5Nzc1OWZjMTk5ZTZmNjhjMGQ2IHJlbGVhc2UyMi1tYWludAorMzM0NTMgZDdhZmNkYzY5ZWQ0OTFjY2I1NzVlNmI2MWE3OGFhMjliODEzNGFiNiBsZWdhY3ktdHJ1bmsKKzMzNDU0IGM3M2ZhZjVkZTFiZDNkMTQzYmZhZGFjNTI2Y2ViY2U5MGI0ODVkN2IgbGVnYWN5LXRydW5rCiszMzQ1NSA0NjZhNTQwY2MyMjlmYWIyOTg0Y2E0Nzk5ZjdjNTdjOGU5NzY1MDRkIGxlZ2FjeS10cnVuaworMzM0NTYgNGZjNTZjYWU0ZWI4YzE2NWRjMjAyNzQ3MzFkY2JiMWQ4ZTc1ODM1NyBsZWdhY3ktdHJ1bmsKKzMzNDU3IDMxZDkyMzU0ZjcyZjA5ZGViOWM2N2YwOWQxODE2NjY2MzY4NmI5YWUgbGVnYWN5LXRydW5rCiszMzQ1OCBjOGZiNGFmOTZkZTBlNWJlZTIwZDA5YzUwMTg4MDI2M2FmYWZhZGNlIGxlZ2FjeS10cnVuaworMzM0NTkgNGJhZmZlMTRjODg3NGExMmQ5M2FmMjg5ZTAyOWFjZWFkNzczODg4YSBsZWdhY3ktdHJ1bmsKKzMzNDYwIDJlODRmZGI0ZmUzMGQ3YjlmZDg0YzMyYzhiNTU0MzBlYzZiNzI5YTIgYXN0LWJyYW5jaAorMzM0NjEgOTAzNWZlNzY4Njg5ZDg5ZTJhMDVhZDA3N2Y3MzhiNDdiMWMxZGVkNyBsZWdhY3ktdHJ1bmsKKzMzNDYyIGRlZmExZDgyNWIwOGNkNjI0YmYwYjFmZDk2YWZkZGNlNjA5ZjU0MjMgbGVnYWN5LXRydW5rCiszMzQ2MyAxMDM3ZmVhY2I1NGZjOTk4YWM4NzI2Y2MxODYxMTA4NGFjYzM5ZmRmIGxlZ2FjeS10cnVuaworMzM0NjQgYzcwMDYzYzNhZWViOGRmNzQ1ZmEyZWRmNzgzYWU0YjU0YmVmZDQ5YiBsZWdhY3ktdHJ1bmsKKzMzNDY1IGNmYWVkZGU1MGJkNjQzMjY4ZWM3Y2YwYmEwZmU1OGM3MWVkYmYyYWEgbGVnYWN5LXRydW5rCiszMzQ2NyBlNmE3OGRkNDI1YzhlMGFhZjkwMzczMDkxNjU1MjkzYmQyOWUwZWQ2IGxlZ2FjeS10cnVuaworMzM0NjggOTRlNWQxYjhmNjk2OTg5Nzc3ZGE1ZWUyY2Y3ZTA4MWZiYTU3YTgwMyBsZWdhY3ktdHJ1bmsKKzMzNDY5IGQ3ZTFhMWJkNDg4MGI3NjFhNzAxYmY1NmY4NzI1YTI5NGFhNDI5MTMgbGVnYWN5LXRydW5rCiszMzQ3MCBjNDQ5NjYzZmEyN2RlMzliYTc2ZmE4OTc4NWM4MTRlYzk4M2M2MmM4IGxlZ2FjeS10cnVuaworMzM0NzEgYmJjMzZlMGUxMGExNTc5MjkwODFkMTM5NDcyMWNkN2M5MzI3ZTcwYiBsZWdhY3ktdHJ1bmsKKzMzNDcyIDU3YjkzYzk0ODMwYTM0ZTIwYWJmMTcwYWFkMWJkZjZjZjY4MGI1YzEgbGVnYWN5LXRydW5rCiszMzQ3MyBlNWI5OWU2MDU5MjYxNWQyY2QwMTIwMDA3Yzk3ZDU2ZmI0ZTI5OTg0IGxlZ2FjeS10cnVuaworMzM0NzQgMTI3MmY3OTU0N2JhOTE2MTE5ZDg2YzY5MTY1MjU2MmFhNzM0ZTBhZiBsZWdhY3ktdHJ1bmsKKzMzNDc1IGJhYjg5ZTQwNmYzMGUyNDViOWQ3YTI5MTQyZDRmNzc1NTY0NDVkYjggbGVnYWN5LXRydW5rCiszMzQ3NiBkMjgzYjE3MzNjMGQ3YTU3N2NkNmYyYjliN2I0Y2ZiMGY0N2QwM2FlIGxlZ2FjeS10cnVuaworMzM0NzcgYWMwZmMwODkzYWFjZjMzNzUzOWRjNzk3NjRmOTdmZjE2ZmU2ZWE1NSBsZWdhY3ktdHJ1bmsKKzMzNDc4IDBkZjExYjJiZmNhNTE4YWE2YTVmZjlmY2JlZGMxMzkzODk1N2I3MGQgbGVnYWN5LXRydW5rCiszMzQ3OSAzMjgwMzU1MzI5ZGQzOWJiNDkyMDA0NTY5NzU1MjgwMWVlMWIyNWU3IGxlZ2FjeS10cnVuaworMzM0ODAgNWIyMWM3MDAzOTc0NWU2NDkyMjM2Y2I2ZDAwYjk5NTkwMjVjYjViNyBsZWdhY3ktdHJ1bmsKKzMzNDgxIGM5YzZlMmM5ZWM5NzVjODViNDhlNDFmMDYxMGZjZjVkODM1M2ZkM2UgbGVnYWN5LXRydW5rCiszMzQ4MiAyYjE3YWQ2Njg2NjZlNWU4Y2E2MGE4MzIxYzAwNmM0YjhhNTJjM2M4IGxlZ2FjeS10cnVuaworMzM0ODMgOTkxNmI1OTI2MWQ3NjMzNWFkZDhhZTgzMzZmYzNlMjExNTBkODE1NyBsZWdhY3ktdHJ1bmsKKzMzNDg0IGUwMmE1ZDE4NDlmOGQ4N2NiYjc4MTk1ZmZkZjc4ZDA3Mjg3MjljNDIgbGVnYWN5LXRydW5rCiszMzQ4NSA2NDQzYTBmZWU3ZTEwMTQzMDNjMmIwMGFkYjJiMjQwZTMyNDMyZTcwIGxlZ2FjeS10cnVuaworMzM0ODYgM2I0MWM2MzNkNzY5NmI5NmY1NDZhMjg5NGQxNWZmZjNlYjlkMGI0NSBsZWdhY3ktdHJ1bmsKKzMzNDg3IDdiZTI0Y2M2YzI4ZDdiYTU1YzhiM2NmMGNjNDAxMDU1YTI2MjM2ODQgbGVnYWN5LXRydW5rCiszMzQ4OCBjYjNjZTdjZWMyNjEyZjE5M2Y2ZWJmOGI4YzA0Mzc4NGRkNmQzNGM0IGxlZ2FjeS10cnVuaworMzM0ODkgNDgzN2JmMjE2YWU1ZjUwZDcwMGUzOTI5MTdhM2M0ZDRhNjc1Zjg1ZCBsZWdhY3ktdHJ1bmsKKzMzNDkwIGVkNDMxNTViMWQzYzkwNzk2NTVlOGFkZmUzNjY1ODk0MTNhMTEzNTcgbGVnYWN5LXRydW5rCiszMzQ5MSBkNGZmYjA0OTBhYzI3ZGQ0YjE5ZTJmNDNlMDRiOTdmZjkxYjNhOTFlIGxlZ2FjeS10cnVuaworMzM0OTIgMDcxNTAxODI0YmJkOGQ5MzA3NDU1ZTc4MWNmODEzMzQ3M2UwNDBlNCByZWxlYXNlMjItbWFpbnQKKzMzNDkzIDg1OWNiZDdjOWI0ODE0MGYyNTk3ZDgyZjcwMDc2ZGEwN2I0MmI2YmEgbGVnYWN5LXRydW5rCiszMzQ5NCAxZGMxNTg2NTJlNWIzNzNhNDJmZmU1YTY2NjE4ZWM4MDcwOTllZjRiIGxlZ2FjeS10cnVuaworMzM0OTUgZTFhNmJmNDU2NWNkZTRlNDdmYzZiMjE2MWZkNzA2NzUyZmEyMzZmMCBsZWdhY3ktdHJ1bmsKKzMzNDk2IDQ1NjkxMmFkYTY5ZmY5MWRmY2QxYmY5YzZhZmI1MjViOTg1MDVjNDAgbGVnYWN5LXRydW5rCiszMzQ5NyBiYTVmMGI4MDgxOTI3YjQ2MjI4OTBmNDQ5NmI2ZDcxYzg5YzU0MTU4IGxlZ2FjeS10cnVuaworMzM0OTggMzdiYzIzYzZjZjZjOTIyMTJlNGJmYTVmNGQ1YmJiNWU2MTNhZjVjZSByZWxlYXNlMjItbWFpbnQKKzMzNDk5IGEzNzEwNmFjN2M4Y2MwMTdlOTBmMDkxYjI4ODk1MzZjNTM1MzIyZWQgbGVnYWN5LXRydW5rCiszMzUwMCBlNmVkYjA0MGE3N2Q0YWNlOTgxMTYyZjI0ODg1YmE0NmVlNDBkMjY0IHJlbGVhc2UyMi1tYWludAorMzM1MDEgMmVjMmY2MjA4N2NiOGViYmMyMjRkYmQ3ZmI5YzczMzVmODZlMjA0YiBsZWdhY3ktdHJ1bmsKKzMzNTAyIDVlODFkOTJiZjY3ZGIwMDZmNGE2NjY3ZmQzNjY4MGRjZTdlMTU4YmQgbGVnYWN5LXRydW5rCiszMzUwMyAwOWRhOWU1NjU1NWQ4MGNjMmU1OGExMzI3NjA1NmE4NzVkMmQzZDE5IGxlZ2FjeS10cnVuaworMzM1MDQgNDAyOWE3MjZmYWE2NTUwMzY4MmZlOGZiZjJjMjVkZmU5MWUxZTkxNiBsZWdhY3ktdHJ1bmsKKzMzNTA1IDkyZjFlZWFlYjQxZDc1MTkzMjczMWQxZTU5ZmZjNDJlZTg3ODA1ZGQgbGVnYWN5LXRydW5rCiszMzUwNiBiOTgyN2MwNTQ2MGYzOGY4YzE5YTIyOGQ2NDAyYmNjZjJlYjQ5OGNlIGxlZ2FjeS10cnVuaworMzM1MDcgZDQ1ZDMxN2ZkYTM1MWFkYjU0NmU0YWU3MWJiYWFlZTBiYjVkYzdhMiBsZWdhY3ktdHJ1bmsKKzMzNTA4IDc3OGIyMTUyMGRiOGI5NGVhZjE5YzI3MTkxZmYxZmFkYTlmYjVkZWQgbGVnYWN5LXRydW5rCiszMzUwOSA4ZDQ1YTRjZWE5MzQzN2U3YzU0MTQ0ZGIxYmEwOGQ0ZDJlMWQ3YmYzIGxlZ2FjeS10cnVuaworMzM1MTAgZTU3YTliYmVlYzViMjc3Y2RmMWQwMjZjMTRjY2U4NDE5OGViMzNjMiBsZWdhY3ktdHJ1bmsKKzMzNTExIDY0MTk0ZTc3NWIwYmMyOGMyNzUwZTA2N2FhN2VmNDRlNjBlNjYyNWEgbGVnYWN5LXRydW5rCiszMzUxMiBmZTc5YTVhYjM5MmI4NTkwNWE4Mzg0YjNhZDhkMDJiYjlkMTZkZDFmIGxlZ2FjeS10cnVuaworMzM1MTMgMmQ1YmVjZDkwMGVlYjU2NjZhMjg3MGYzOWQxZjk3MTQ4NDZkZTRhMyByZWxlYXNlMjItbWFpbnQKKzMzNTE0IDA2Y2NhMzI3YmFjZGZhYjc1NTJiMTBiM2JkNzBmOWUwMmNhY2M3NzcgbGVnYWN5LXRydW5rCiszMzUxNSBkZDhjYTA4M2VhNjY3ODgwMjQxNzU1OWQxN2EzOWMyZmEzYTE3MDVmIGxlZ2FjeS10cnVuaworMzM1MTYgMDE0Y2MzNjJhYTkxMjM2MGFiYTZjOTY5NjdjNjM3ZDdkYmExMTRiNSBsZWdhY3ktdHJ1bmsKKzMzNTE3IGU2ODY3NjUyMzY3NzRjNTNjNTZmODg5MGUyNGQ4NWY5MTg1MjNjZGYgbGVnYWN5LXRydW5rCiszMzUxOCA3ZmJhMzNmZjIxMzU4YTMwNWJjOGZkMjAxMGE2YWEyZTliY2NlZjE1IHJlbGVhc2UyMi1tYWludAorMzM1MTkgYjg1ZjhiYjVjMzc1NGM2OGE3MTE2ZTFkM2MxZDE2MWFhZTc4NDdkYiByZWxlYXNlMjItbWFpbnQKKzMzNTIwIDU3YWRmODI3ZDRjN2FkNjQ3NDFjYjQxZjhiYzdhNWU0Mjg4Njc5YTMgbGVnYWN5LXRydW5rCiszMzUyMSAyYmI1MjNhZDliNzY1Yjg5NmJlZTM2ZmM3ZGY5ODAyMTM3Mjk4ZTJkIGxlZ2FjeS10cnVuaworMzM1MjIgNzA1MmMzZTVhZjAyNmZiZmFlYmZjNzI1M2RhODlkZGU1MzYxNzZiYiBsZWdhY3ktdHJ1bmsKKzMzNTIzIDQyZTgyNjNkMzlhYzY2MWY3NTViZjkzODMzZTg4YjhjY2NmZGM3ZWIgbGVnYWN5LXRydW5rCiszMzUyNCA0NWRjMzM0MzMzMjM1NmRkMzk4ZTE3ZTk0NmRiYWUxZDEyNDAyODM3IGxlZ2FjeS10cnVuaworMzM1MjUgY2RhYjI1ZDJmODQyOTJlOGI5ZmRmYzUwYTE1NzhjMWM4NGI5NGM0OSBsZWdhY3ktdHJ1bmsKKzMzNTI2IDg0ODM1ODQ2ZWVhYjExNGQxOWQzMDgzM2NmNDQyMWUxMjhiMTk5ZGUgbGVnYWN5LXRydW5rCiszMzUyNyA5YzU3ZWI1MzM3YjcyMTgwNGY0ODcwMTk5ODVjMDBlYzdlNDU2MjJhIGxlZ2FjeS10cnVuaworMzM1MjggOGViMWNhZTFhNzdiZDk1N2JhNjFmZjA5YjQzMDFkNzQzMWI4Y2NhOSBsZWdhY3ktdHJ1bmsKKzMzNTI5IDQyMWQ4MDVjMTFmMzNlMzMyNDliNDk1NTg5OGE5MDExNTg0YTZjMzcgbGVnYWN5LXRydW5rCiszMzUzMCBiZjAwYjU2YzE0YTk4MmViMTFkNDM1Yjc5ODNhYjFkZGQ3NzMxNzlmIGxlZ2FjeS10cnVuaworMzM1MzEgNTc3N2M4MzRmNTVjZTkyYzRiNTdlZmNiMWY4YjgyYWU3MzIzNGFjYyByZWxlYXNlMjItbWFpbnQKKzMzNTMyIDU2YzAxYzQ1MDkyYzA5MjgyZDQyZTVlYWEzZWJjNTAyNzJlNjhlNjYgbGVnYWN5LXRydW5rCiszMzUzMyBjZDBiY2FhMGJkODFmZTQwMTViNDE1YjlmMTgzOGZmMGM5NmRjNTc2IGxlZ2FjeS10cnVuaworMzM1MzQgMWJhZTc4YzgzYmU5NGJlYzI2MWI4ODMxYWU5MTIwYmYyMTU5YjA4ZSBsZWdhY3ktdHJ1bmsKKzMzNTM1IDFjM2I4MTU4NzYwYzNkMDIzZTEwMWQyYzcxZjFmYzEwOWM5NzUxNjcgbGVnYWN5LXRydW5rCiszMzUzNiBmMzM5ZjI5YjA2Y2JiNzkyNTI1ZGVmZGY5MzUyMTM3ZmFiM2RmZDJkIGxlZ2FjeS10cnVuaworMzM1MzcgOThjNTliYmRkOGVjNDc5NDJmMjlmZmU3Y2FhZDZkN2QzZjk2ODI0NCBsZWdhY3ktdHJ1bmsKKzMzNTM4IDg0YmNjYmVhYjVmYWM1ODEyZjE4NWYzY2U5ZjdmZjdlZWZjNzRhYTMgbGVnYWN5LXRydW5rCiszMzUzOSBiNzY2MTUyYzc5MDQ1YzVjOWI4NTM5ZTM0OGNhZDQ2OTI4MTljMTBjIGxlZ2FjeS10cnVuaworMzM1NDAgYjQ0ZWI1MTkzMWQwZjEzNDQ1OTc0YjA5YzFhMmI0Mzg4YWE5OTliYiByZWxlYXNlMjItbWFpbnQKKzMzNTQxIDE5OWNkNzhkNmQ3OGQzNmE2ZWYwZmJhMjMyYzdiZWE4M2Y0MTRhZGYgbGVnYWN5LXRydW5rCiszMzU0MiA2MDRkOTM4MjNlYzFkMDEyODk3MDEyNWVkZDg5NGQ4ODEzYmZhZjVlIGxlZ2FjeS10cnVuaworMzM1NDMgMzQ0MmU3Y2RhY2U4NmUzOWM2NTlkN2RlZDllNDQ3OWUzMjg5MmQwNCBsZWdhY3ktdHJ1bmsKKzMzNTQ0IDAzMDIyN2RlODA1MThhYWM3YWVhOWQ1ODU0MmMwM2Q1YTc3ZjEyODQgbGVnYWN5LXRydW5rCiszMzU0NSA5NTQ3MTdlNmZkYjUwYjQ1ZGI4N2QxY2ViMWU0MzFmN2M1MDQyOGY4IGxlZ2FjeS10cnVuaworMzM1NDYgMWE0MmIxMjhjNTgxNGE4YWYzODliZWNkNzA1ZGY1ZTIxN2Q4NmY3MCBsZWdhY3ktdHJ1bmsKKzMzNTQ3IGZlZTE3NzZlNjFjNzA1NjExNGE5NzAzMzMyZGJkZTdkNmE2YWI1NWYgbGVnYWN5LXRydW5rCiszMzU0OCA0NzUwMTE4NGI1NDM1ZjdlMDYwMTJiMGIwMTk3NjdiOTY4MDAyZjQwIGxlZ2FjeS10cnVuaworMzM1NDkgNjJmMzA2M2ExYTBmODc2YmI3NjJmNzkxOWQ1MTQxYjc2MDAzZWYzMyBsZWdhY3ktdHJ1bmsKKzMzNTUwIGEwYTcyMzFjNmZlMGUzNGY0YzMwMzBiNGFjZjFiZTY5ZmY4NzUwMzUgbGVnYWN5LXRydW5rCiszMzU1MSA3MmNiYzQxY2NjMmYzODBlMzY1MmFjNzUwZjc3ZWRkMTYxZmIxMTI0IGxlZ2FjeS10cnVuaworMzM1NTIgMmM1MTk0YmFhOTk0NGY5YWM1ZTRiMDRjNWQ3ZTdmOWI2NzJkY2VhMCBsZWdhY3ktdHJ1bmsKKzMzNTUzIGVkODcwOWIxYTNlZmIxM2E3Y2M0ZjY2NDc1Zjg2MjhlNjc2YzZmY2UgbGVnYWN5LXRydW5rCiszMzU1NCAzZjIxNGIzOWI0ZGY5NTQ5N2Y0MTEzNjE2MDEwMWNjZWJhMTNkZDRhIGxlZ2FjeS10cnVuaworMzM1NTUgMTk1MTFhNDkwZTdjMDUxMTM1MTUwOTdkM2JjMWRkMjUyNDBiYzdhYSBsZWdhY3ktdHJ1bmsKKzMzNTU2IDkyYTVmZTU3ODM4MDM4ZmRhMGU2Zjc5ZmY5ZGM1ZGUzMGZlZjdiY2IgbGVnYWN5LXRydW5rCiszMzU1NyBkMzdkMTU5MGUxYTdkMWExZjkxZDZmMzhjZmI5ZGEyODVmZTA1Y2I4IGxlZ2FjeS10cnVuaworMzM1NTggODhiOTNlMDdhMWY4MGFmN2MyNThiOWZhODk1MDJhMDcyNzI3ODViNiBsZWdhY3ktdHJ1bmsKKzMzNTU5IGY4OWQ1NDU1MDVjNzE1NDU0YmM4NTk1YjFmZGZjNjkwZjI5Mjk3NTYgbGVnYWN5LXRydW5rCiszMzU2MCBiNjhmYjRhNDNkMGZlY2RiOTRkZmVhNGYzNGZkNGE4NDBhNzQ2ODc5IGxlZ2FjeS10cnVuaworMzM1NjEgMjJiY2EyODIzNjg1Njg2MWIwZTllMmVhZTcwNmNmZmRmODI3OTZhYiBsZWdhY3ktdHJ1bmsKKzMzNTYyIDRlMDVjNTU1MTRlMWQ2MzE2MWYzNTdlMDQ3OTIxZWRlZTkzNzU5N2MgbGVnYWN5LXRydW5rCiszMzU2MyBlMmI0MDMxMjc1N2VlMTFmZjAyYjI5ZGE5MTFiMDJiZGMwNjg4Y2Y2IGxlZ2FjeS10cnVuaworMzM1NjQgZGE3ZWFlNDRmNDg3YjRiY2EyOTViYzRkNGQwYjM3YjU2YjU5OGExYyBsZWdhY3ktdHJ1bmsKKzMzNTY1IDljYTI5MTg2NWY5YzFmMmEwMjdlMmZkNTU5NTFlYzM0NmI1NDhjNzggbGVnYWN5LXRydW5rCiszMzU2NiA3OWVjN2UzMDJkNTM1Nzc2YjY5ZDBmNTA2ZWI4NjkyZGMxN2IxMDcyIGxlZ2FjeS10cnVuaworMzM1NjcgZTlkZGRmZDJhNjJmMGNlYTI1Y2M3OTJlNWVjZGMzMjViNmE2ZGRiNSBsZWdhY3ktdHJ1bmsKKzMzNTY4IGFjODRmMTc5YmI4NDEzMzljOWEyZjg2YjVjNTJiYWY2NmNkYWUwOGQgbGVnYWN5LXRydW5rCiszMzU2OSA5OTRiNmJlNDhlMjg3OWFmNjg2N2ZkMWYyY2I3MjBkMDM2N2ZmODFmIGxlZ2FjeS10cnVuaworMzM1NzAgYjQ3YTcyNzRjZTVjMTU4MzhhNWM2YjA0OWJiNjVhNzc2NWNjNmIxNiBsZWdhY3ktdHJ1bmsKKzMzNTcxIGRiYWUwNWMyOWU5Mzg1NDRiOTg2MmRjNzMyNjczMWUyODgzMWJlZmMgbGVnYWN5LXRydW5rCiszMzU3MiBkMWFhNTc1MWZiY2ZkYmEzYzFmZWFkOTBjYmIxY2UzOWMwYmYyODEzIGxlZ2FjeS10cnVuaworMzM1NzMgNDM0YjZjZGE0ZmE1YWY3MDE3Y2I2YzUwOWE1OWVmNzZjZWFiYmI5NSBsZWdhY3ktdHJ1bmsKKzMzNTc0IDlkZWFjMWFhNDIxZGI2OWZhNTVlNDM4N2VlNjRlY2FjM2YyZWRmZjYgbGVnYWN5LXRydW5rCiszMzU3NSBhMjMxMDZkZmM5NGQzZWJmNmZkYzM3ZjZjYzYzZTI4NTQ0NWI3MDBkIGxlZ2FjeS10cnVuaworMzM1NzYgOWY2MGMzZWU5ODVhMmFlMTBmZWQ5Y2I5N2RmNWMxNDhhMDdlZGY0ZiBsZWdhY3ktdHJ1bmsKKzMzNTc3IDgwZWQ0ZDk3ZjFiYWVhMGRlOTk1OGRmN2ExYjk2ZjFkZDg4Yzk0YjggbGVnYWN5LXRydW5rCiszMzU3OCA3MTYzOTVjMTk1ODZlMmExMDY2OTJjMjU5Mjc4ZGE3ZDExZWIxNDZjIGxlZ2FjeS10cnVuaworMzM1NzkgOGIxNTVlNGExMGEyNWQyYjg3MTYxMDcwYTc0YjE1ZTgzMjVjYmNhYiBsZWdhY3ktdHJ1bmsKKzMzNTgwIDFlMmUxYzc5MzE2ZTEyZmJkNWZhYzQwYmYxYTM3Y2YxNjYzNmI1N2IgbGVnYWN5LXRydW5rCiszMzU4MSA1YTk0NGFjODUyNWMxZjYxZDVkYWEzZmVlY2M5MDUwOTFiZGI3ZThmIGxlZ2FjeS10cnVuaworMzM1ODIgNDUxYjdlODM5M2ZjNDFlYjE0M2ZlYTIzNDlmMWQzODQyMjVjNjU5MyBsZWdhY3ktdHJ1bmsKKzMzNTgzIGQ1OWU1OGJhYzM5MjM3NTBiMTQzZDkyNDU3YTk5MGM5MWIwMTliNGEgbGVnYWN5LXRydW5rCiszMzU4NCAwZTIyMTViODIyNmQyYWUzYWJhNjNmMDdhODYyZDExZGJiOThkOWQ1IGxlZ2FjeS10cnVuaworMzM1ODUgNGU2MTNkZGYyYTFiZDE2NTZjNGVmNzRkZGJiMmExMGNkMjM1MzA2MSBsZWdhY3ktdHJ1bmsKKzMzNTg2IDQxNmQ5NDU4ZWU5N2NiM2YyZTNhMWMzMDQzNjM4NTRjMzk1ODliOGEgbGVnYWN5LXRydW5rCiszMzU4NyA1Mjc2MDc1MWM2MWVlNzJjZTkwYTFmZTM4Yzg5YjExYjYwMGJmMzFiIGxlZ2FjeS10cnVuaworMzM1ODggZjc3M2I1NjhiMmU3M2Q4MjllYTE5MmMyMTAzNTU5MjdiMjYyZjZiNiBsZWdhY3ktdHJ1bmsKKzMzNTg5IGZjZjY2ODBiNmE2ZmI3NzFjOGI1OThhY2FjNjg1NjcxOTlmM2NjOTkgbGVnYWN5LXRydW5rCiszMzU5MCBkZjllYTc0OTQwOWEzZWU0NTNjNGY3MTM0NTBkMzczNDUzM2QyNTExIGxlZ2FjeS10cnVuaworMzM1OTEgNTY0YTQ5ZWVhNDE0ZTEwMDkzMTY5NDZhZWZjMjkyNDE0ZGRhMGY2OCBsZWdhY3ktdHJ1bmsKKzMzNTkyIGVjOWYxODYxNTQ4NTZhOTBhZjU5MDQ0ZmJlY2EyOTA3MDhkYzEzOTcgbGVnYWN5LXRydW5rCiszMzU5MyA3YjE2Y2Y3MGViZDg5ZTQyNGQ1YTI0MmNiZTllOGMzNTJmMjgyYWFmIGxlZ2FjeS10cnVuaworMzM1OTQgMGIzNDIyYjYyMTE5MTE5NmMzM2U3NmE3NmJkYzI5Yjk4ZjQ5YTBjMiBsZWdhY3ktdHJ1bmsKKzMzNTk1IDJhNDBjYTA2YTIyYzg4ZDkyZjc3MTViZGMwODJmOWFmNzg0MjMwODAgbGVnYWN5LXRydW5rCiszMzU5NiA5NmJhYjdjODJlMmNmYzk2YzEwMDY5MDM5MDQ0MmI4YTA5ZTY2MjhhIGxlZ2FjeS10cnVuaworMzM1OTcgYzg2YjEzNTRhYzZmNmY3NGRhMzAwYWM4ZDhjNTNjZjA0ZTY4ZGNlNCBsZWdhY3ktdHJ1bmsKKzMzNTk4IDFiYzI1NTkyMjlkYjFkZmYzNzllNjg2NjAyMGMxZTY4NTNmZmJkZTAgbGVnYWN5LXRydW5rCiszMzU5OSA3ZmQyMGFlNDQxNDJmMGM5ZGYwNWFmMDMyZDdkZjA0OWNlNzViYjBjIGxlZ2FjeS10cnVuaworMzM2MDAgOGRlYzBmYjE0Mjg1NGYzNmI1ZDIyY2VjMjYwY2YxNzM0MzNiYTgzNiBsZWdhY3ktdHJ1bmsKKzMzNjAxIGE3M2MyOGRlZWY2ZGZmZTczNDkzNjA1ZmFmMGI1NzViMmUzNzFlMmYgbGVnYWN5LXRydW5rCiszMzYwMiA4NmM0NzZhNDI1YTdkYzUyNzM2YjI4OGI2M2U5ODZmYWM4NDExNzIyIGxlZ2FjeS10cnVuaworMzM2MDMgMDhkMjYzNmI4ZTU4NDQzZDE3NTBmNjc4YThkMWViNjg4ZDQ4YTU0NiBsZWdhY3ktdHJ1bmsKKzMzNjA0IDI1ODAwYTcyNDAxMWZiMjU0NDU2M2EzNTZhNmU4MWFjYzhlNmIyNDAgbGVnYWN5LXRydW5rCiszMzYwNSBjZmFkNTQyODNlMDAwNDc2NDEyNDQ1MmQwMTg0MTIwNzZkNjk1MTgzIGxlZ2FjeS10cnVuaworMzM2MDYgNzIyZDdjN2E3N2UyYjQ3ZjNhYTg5NTlkNmNhODI3ODZiMjlmNTZmMSBsZWdhY3ktdHJ1bmsKKzMzNjA3IDYwZTNkMjk5ZmM4Njc4ZjQ0MjYxNjgwMDY1ZWYyYjllYjkxNWQ1Y2EgbGVnYWN5LXRydW5rCiszMzYwOCBiYjhjYzcyOTE1ZjU2ODkyYzNiNTMxMzNkYWYwN2FmMTkxNWM2YjI5IGxlZ2FjeS10cnVuaworMzM2MDkgZWU3ZTIyM2RiY2FjZjA2OWNiNzdlNTBhNTZkODM5MWFkYmY3NjcxOSBsZWdhY3ktdHJ1bmsKKzMzNjEwIGI4NDY0NWMzMTk1ZTQ4NGQ2NzI2Y2E1Yjk3NTkxNDVhNjQ3ZDE3NTYgbGVnYWN5LXRydW5rCiszMzYxMSA0ZDQ0MTdkZjYzZjRlODA4YmYzMjA5NTNhOGQ0ZjM1Zjc2ODYwMWFkIGxlZ2FjeS10cnVuaworMzM2MTIgMDMxNTNmZDJkM2YyMTRjMWE3YTAyYzIwNzkxNDEyMGJjZTU2NGZlYSByZWxlYXNlMjItbWFpbnQKKzMzNjEzIDYyOGRjZjkwYmY5ZTJlMjAxZDIyYzM2ZGFiZjg1NmE0OTNhYjQ5NzMgbGVnYWN5LXRydW5rCiszMzYxNCA0MDdjMGRlYzJmNGFkYzkyYzYxZWE4MjQ0MDc1YThjYjFlNjA3MTYwIGxlZ2FjeS10cnVuaworMzM2MTUgMjlhNjNjNWNmYmFmYjk0NDE1YjJlOGFmODRkMDE0OTlhZTQ5N2Q2OCBsZWdhY3ktdHJ1bmsKKzMzNjE2IGRhMGM5MGM2YWZkMDFmY2I2ZmY4YjczYWZkYTU4ZGI4OTRlZjEyZTEgbGVnYWN5LXRydW5rCiszMzYxNyA5MDEzZDNjMWQ2NTUwNjRjODAwYTc5NjM1N2ZkZWM3MGIyZDM2NTAwIGxlZ2FjeS10cnVuaworMzM2MTcgZDA1NGMyOTY0N2Y5MGJjY2I4MzQ1YmQ3NzliY2ExZWVjZjJkZDdmMiBsZWdhY3ktdHJ1bmsKKzMzNjIwIDhhMjkzNDQ5ODI5ZDdiYWQwODJiZThiMDViYzZkNjdmZDQxZGFhNDcgbGVnYWN5LXRydW5rCiszMzYyMSBkYTM1OTI5NjJhN2FmMDc5OTc5YmI0MGIyOWFiNmI1ZDc4ZDllMzc0IGxlZ2FjeS10cnVuaworMzM2MjIgMTA4YWE5NjQ4NTczMjEwNThhNDJmZjY2MjI4MTM5YjlkYjgyZjY1ZiBsZWdhY3ktdHJ1bmsKKzMzNjIzIDlhNmY1YjM3ZTgxZDJkOWE4MjUxZDNiODNiMmQyMDc0MTNlYTA0NWEgbGVnYWN5LXRydW5rCiszMzYyNCBjZThiMTM4ZjQ0NzNhZGFkZDBiNmExNjRkNTJhNDAzMDZhMmU1MTM3IHIyM2MxLWJyYW5jaAorMzM2MjUgMzM3ZDQ0MDEwOTA3Mzc4ZTRmZGI3OGE0YjY1NjE5OWZkNjYxOTRmNiByMjNjMS1icmFuY2gKKzMzNjI2IGFkMDk2ODdhYWFhMGE3NTUyNjg1ZjI3NGZjNjAzZGEwZGJmZTdhMjQgbGVnYWN5LXRydW5rCiszMzYyNyAyYjhhNTY0ZTFmZDNkMDI2YTEyNDY4NjA5ODYzMjJiYmJlMTBlMWI4IGxlZ2FjeS10cnVuaworMzM2MjggYTljODk5NzM5ZjQ4MjJiYjZkOGI5YTliMjY4ZGMzNjRhZTUzOWE2NCBsZWdhY3ktdHJ1bmsKKzMzNjI5IDFjYmM2Yjc4MzZkY2I4YTZmMTllMjJiY2M1OTExYTQ1ODc3NDE0ZDUgbGVnYWN5LXRydW5rCiszMzYzMCAzMjI1ZjFkNDI4ODM1YTI3NTVhNjU0ZTg3MDZmNTFiZmRhMDE2ZDRkIHIyM2MxLWJyYW5jaAorMzM2MzEgMmM0ODNmN2JlYTRiY2Y4NjcxNTQ3MjM0MjgxZjYzOGZiYWRkNTEwMCBsZWdhY3ktdHJ1bmsKKzMzNjMyIGJhZjIyNDEwNzBiZmQ3MTdhMjM2YzMzMWY3ZTQyY2QwODNmNWM0ODcgbGVnYWN5LXRydW5rCiszMzYzMyAwOWM0NTk4NTEyNjQxNDZlYjMyN2M4NmJhNzRkYzVkY2Q0OTk5MmQyIGxlZ2FjeS10cnVuaworMzM2MzQgNWZhZWU3Y2RjNWFhYjI0NzY2Yjk3Y2JlYjNhMTcyZGFkMGExZDkwNyBsZWdhY3ktdHJ1bmsKKzMzNjM1IGNlYTdmOGFmOGUwYmI4MmU0ZDlhOTRiZTM0MmNhM2EwNDkzNmU1NDYgbGVnYWN5LXRydW5rCiszMzYzNiA0YmZjZmVkNjRlY2I5NjhjOTgyODVkYmFjYTg2MzBiMzliMjg3NzBlIGxlZ2FjeS10cnVuaworMzM2MzcgNGMxNDNjZWVmNDE5YzY3MmQwYzAyNjhjMDNkMzdiMjYzZjcxZGQyNiBsZWdhY3ktdHJ1bmsKKzMzNjM4IGE1NTBhZjcxMWFiYTRhMjJiNDZhZjMxNzhmYmI0M2JhZmNmZTkxMDYgbGVnYWN5LXRydW5rCiszMzYzOSA5NTBiMjUwMGExNDIyMjE0YWNkM2MwNTUwMDUwNmFmOTE2Yjc5NjQ3IGxlZ2FjeS10cnVuaworMzM2NDAgNjY4ZGQzMzZlMzA2ZjE1YmI4ZTBhOGFiY2NlMmYyMDBiNThmMGFhNiBsZWdhY3ktdHJ1bmsKKzMzNjQxIGM0MmE3MzE3Yzg4N2FiYjdiOWYzODYwMTIzMjExNzBlMzNkOGU5ZDQgbGVnYWN5LXRydW5rCiszMzY0MiAzMTdmMWVlMjRmMTg0OWI3OGU3MGM3NDQ1ZGI5YjlhZDdlYjQ5YWIwIGxlZ2FjeS10cnVuaworMzM2NDMgNGNmMmJmZmZhNTY0MTBmOGU4MjEwMTIwMmNiZTljMmY2MzU0ZGVhNCBsZWdhY3ktdHJ1bmsKKzMzNjQ0IGZlNDk5YmM3MzgxZmI5MDNiZmRmZWVlMzJhZDY0ZGQ1OTcwMTk5NTcgbGVnYWN5LXRydW5rCiszMzY0NSBhNGFiZTE3YTVmZWI5MWY0NjIyNGU4YTk2OGFkNTBhMzc0N2JkZGE4IGxlZ2FjeS10cnVuaworMzM2NDYgMTNjNzVmYTc4MGM4YzIyMjIyMjVhNTBkMjIyNzRiZmZhZWIwMzQ5YiBsZWdhY3ktdHJ1bmsKKzMzNjQ3IDMwM2Y1ZmRhMWEyODQwYmEwMmY4OTk3MmRhYmUyY2UyZDI3ZGFkZTggaW5kZXhpbmctY2xlYW51cC1icmFuY2gKKzMzNjQ4IGE3N2FhYWIwMTQ2ZGU2OTZlNmQ2NmU5OTNiNWM2NGVjNTlhNWRkZjQgaW5kZXhpbmctY2xlYW51cC1icmFuY2gKKzMzNjQ5IDVhZGRjY2EzZjQzMzM0ODJmYWUzNDRmZjQ4YWRkNWZhYmRkMjdiZjkgbGVnYWN5LXRydW5rCiszMzY1MCBlMzM5YWQyNTBhZjBmNDFmYzM0YjhhNjRjZDliODM1NmUxMDE4YTAwIGxlZ2FjeS10cnVuaworMzM2NTEgODJlZTFmYWUzODE5NGI4MTA5OTA3MjM3MDdiYmVmNTFhYzk5ZjM2ZSBsZWdhY3ktdHJ1bmsKKzMzNjUyIGE0MDhhYzU1MjdjMzQ1Nzg3MjhmNWYzMTMwODBjOTdlMzMyMWQyYzggbGVnYWN5LXRydW5rCiszMzY1MyBiOWQwYTBlZTIyMDZhNzJhOWE5NTc3MDNkNmRmZDY5NzAyOWM3Zjg4IGxlZ2FjeS10cnVuaworMzM2NTQgZDM3ZjEzMTk5ZDk1Mjk3YjQxMTE0NmQzNjc3MmEyOWFiOTE0NWFhYiBsZWdhY3ktdHJ1bmsKKzMzNjU1IDYxNDlmMGEwYjhmNTg0MjIyODk3YjYxZDM1YjlkMjk4YmMwN2QxOWYgYXN0LWJyYW5jaAorMzM2NTYgMjFlZGNlMDkxMDY5ZjlhY2QyZGNhMmE4OTE5M2I2NGIwN2FmYzQ4YyBsZWdhY3ktdHJ1bmsKKzMzNjU3IDJjMWU3M2IyZmNhMTEwN2I3MTc0MTE2MGY5ZWQxNTJhOWE0ZTMxMzYgbGVnYWN5LXRydW5rCiszMzY1OCAxMTg4MDliMWVmMjA2MTI5YjYyMGRlYTJhMzZjNzdjMWIyNmU2MzQ0IGxlZ2FjeS10cnVuaworMzM2NTkgMjczOTVjODQ0ZTIzYjdhZDQwYWFjNWZkODViNGE2NTZlYmZmYmRmYiBsZWdhY3ktdHJ1bmsKKzMzNjYwIDY1NDlkMmU0MDhmMGM2M2JmYzY2ZTg0MDk2YjAyMGE1ODIxNDkzMGQgbGVnYWN5LXRydW5rCiszMzY2MSA1YWQ0Mzk2MzJkZTU0YWMxOWUzYmJmMGJiZjczN2QzMWEwNmNmM2MyIGxlZ2FjeS10cnVuaworMzM2NjIgMTdjZTEyMzY5NDc3YTdjODZkYzg2N2ZiYzBmMjBiNzk2NDQ5MmIwMSBsZWdhY3ktdHJ1bmsKKzMzNjYzIDIxMTg3MDk3ODU0YzkwZTUyMmIwMTRlODQ5NjUyMGI5ZWY4MTM0ODAgbGVnYWN5LXRydW5rCiszMzY2NCAxYmQ2ZTYyZmIwNmY3NzkzN2NkYWY3NGQ2YjIxMWMxOWQ4YmViZmMwIGxlZ2FjeS10cnVuaworMzM2NjUgN2JhNDJjOTYyOTRjYzY5M2MwODRlOTk2MzNiNGJhYTFjN2ZlYmFiNCByZWxlYXNlMjItbWFpbnQKKzMzNjY2IGYyNzA4ZWY2MDE2OWIxOTJkOWUwNjZkM2NmNmEyNjRmZTRkMDAyZWYgbGVnYWN5LXRydW5rCiszMzY2NyAyZGEwNWI1YjVjNjUwNTVhMzY3MTZjM2M3MWE2MjU4ZjhjN2Q0NWUwIGxlZ2FjeS10cnVuaworMzM2NjggMjlmMDdhZGMzMDE5ZDA3NWM5YjMyYTg1M2RiMTQ2ZDE0YzZlYjRiMSBsZWdhY3ktdHJ1bmsKKzMzNjY5IDhmMzA2ZDNkNmQ1NmVkOGRlMzc0MjZkNGQxYWIxZDQzODgzMmM1NjYgcmVsZWFzZTIyLW1haW50CiszMzY3MCAwMDA5YTAzODMyMjI1YTY3NWM5MDUzOTA3YTAxMzM4Mjk0MjRmZWU1IHJlbGVhc2UyMi1tYWludAorMzM2NzEgYjU5NDk1OTFkOWQ1NzRlMDQ1ZTIxZDA1ODFjMjJjZGFhMDA4NDcwNyByZWxlYXNlMjItbWFpbnQKKzMzNjcyIDg2ZTQ3MjVhOWRiZDRiOTU0ZGY4ZDQyOWVmNzIwYTljMjcxYzVmMDkgaW5kZXhpbmctY2xlYW51cC1icmFuY2gKKzMzNjczIGIzM2M2MGZjY2U3NGY5ZGYwZDFmNjAxNWI0Y2RkNTkzNWUxMjgzM2MgbGVnYWN5LXRydW5rCiszMzY3NCAzNWNjZmMxNDBjYWMwYzJmM2NhZDllYjY4MTNhYTQ3NjlhYmM4YzFjIGxlZ2FjeS10cnVuaworMzM2NzUgNzMwYWJmY2YyNjEwZTljNzFjYjAwNTViMjliZTYzNDFjMmY1NTFiMiBsZWdhY3ktdHJ1bmsKKzMzNjc2IDY3M2JjZWQ5OTE4MGZkNWFjNzUyNTRlOWEyNjllMGIyNmNkZjg3NTUgbGVnYWN5LXRydW5rCiszMzY3NyBhYTQ0ZTA2ODg4OTZhMDQ1Mzg1Mjk4YTNmYTU4MGM3ZjlkMWU4ZGQxIGxlZ2FjeS10cnVuaworMzM2NzggMDJlNWI0YjY3YTY2MzAzYzQ5YTk3ZDk2YWYwYThjNjk2YmQzYmZhNSBsZWdhY3ktdHJ1bmsKKzMzNjc5IDA5NTQ2OWM3YWJlNzI3MDIwMDJjYmMzZWJiZmE0NzkyZTc1YzkyN2MgbGVnYWN5LXRydW5rCiszMzY3OSBmY2U1YzllOWFiYzcyMjM5NGNiMmU5MDliN2UyYTM5MDgwZDQ0NDhlIGxlZ2FjeS10cnVuaworMzM2ODEgZTFiYjEyNjJmMGJjMTQ2MjNkNjQ2YjAwY2I1NDc1YmQwMTk4ODEwMCBpbmRleGluZy1jbGVhbnVwLWJyYW5jaAorMzM2ODIgODNlMDZmZTEyNGExOTNhNTM0ZTQ0ODg5OWI1YjU5NzU1NTA0ZTRkZCBsZWdhY3ktdHJ1bmsKKzMzNjgzIDUzYjc2MGIwMjdiNzcxMmIwNjdkMjRlYmMwM2Q1MTdlZGY4MTBjYWUgYXN0LWJyYW5jaAorMzM2ODQgOTZmYThmMGI5ZWViYTdmY2QyYWYwNTFjOTRiZjdhMjRlODg1ZGNiMCBhc3QtYnJhbmNoCiszMzY4NSBjZmJiN2I4MjY5MmQ3MGYwOTcxZTM3ZGY1NzUwN2UzMDA1MjczYTg5IGFzdC1icmFuY2gKKzMzNjg2IGY4MmViMTYwNDQwYmRhNDllYzIyODk0ZmY3YzU5Mjk2ZTgxZWM4ZTAgbGVnYWN5LXRydW5rCiszMzY4NyA1MmRkNTQ4ZDNiZTlhOTdhZDc3OWJiMTY1MWNiYTRjNDE2NjY0MmQ2IGxlZ2FjeS10cnVuaworMzM2ODggM2FkZGE4MWEwZTBiZDA1MjRhN2NiYjFhNDkzOTk0OWI3OGRmOTQzZiBsZWdhY3ktdHJ1bmsKKzMzNjg5IDM1ZGVhMTBkY2RjNDVlODVjMWFlNDk3MjJmN2IyNTU0NWEwMTdjMDAgbGVnYWN5LXRydW5rCiszMzY5MCAxZmJhYTA1YjM1YzFiZjBlYzE1YjU5ZTExNjRhMWY0Y2JmY2Q0ZjYwIHJlbGVhc2UyMi1tYWludAorMzM2OTEgOGNkOTRkMTE3Zjg3Nzg5MjdjNDRiMjlhZWZhMGZlMWRiNDQ4MmM5YSBsZWdhY3ktdHJ1bmsKKzMzNjkyIDM3Y2NmMWJjNTRlMDQ0ZmJkYzZiMjQ0NWJlNTk5MDFiYjhkNGE4NjAgbGVnYWN5LXRydW5rCiszMzY5MyAxNWZjODNjNTA1ZTMxNDk3MDI2YjBhOWY1NzZmMDc4YWY0OWNkZTg3IGxlZ2FjeS10cnVuaworMzM2OTQgY2ZhOWYwNDljMjA0YzY4YWEyZjIyMjRkYzQ4OTkwOTllNzMxOTA0YiBsZWdhY3ktdHJ1bmsKKzMzNjk1IDRiNTcwMjMwNmM1ODFiM2VmNmJjZGJkY2VlYTVlODlmZjdiZGFmNDIgbGVnYWN5LXRydW5rCiszMzY5NiBlZmExYmI2NTZiMmI2ZTUxOWE3MjNiYzU2Mjg0NWQxMDE5YTRjOTM4IGxlZ2FjeS10cnVuaworMzM2OTcgYTEzMTUyYjI1ZmU4ZGY5M2QwYTE2MWZjNTNkZTYzNDNkOWNkNmVkYyBsZWdhY3ktdHJ1bmsKKzMzNjk4IGRlN2Q5YTJiNWZhYzMwODMyNDA2ZmVjZDgwY2YyNjlhMzdlMzg1OGMgbGVnYWN5LXRydW5rCiszMzY5OSBlZThiYWNjNmYwNjhkNjE3NGIzYmMzMDY4MzI0ZGEwOWViMzI1M2U5IGxlZ2FjeS10cnVuaworMzM3MDAgMjkwOTQwMTYzOTdkNjI2MGQ0ZWY5NGQ2MTFkOGY3OGFkYWZlMGMyOCBsZWdhY3ktdHJ1bmsKKzMzNzAxIDY3NGNmNWEyNDE0N2ViYjY4MzNjYTI3NWQzMzM5ZjYzZDBlZjFiMzcgbGVnYWN5LXRydW5rCiszMzcwMiAxMmE3ZjIxNTY0ODE1NDE3Y2Q4YzY0YjBlODBhNDFhYzZkYzQwZDNmIHJlbGVhc2UyMi1tYWludAorMzM3MDMgNzRhNWNlNDlhOTJmYzgzMmFkNDQwNTgwODM0MmM0MGY5N2Q2ZGYwZiByZWxlYXNlMjItbWFpbnQKKzMzNzA0IDBkNzlkYzg1NGFjNDY5MGVkNDE1YzgwYzU4MmExN2FhNGUzNTk4MDIgbGVnYWN5LXRydW5rCiszMzcwNSBhNjIxNTNkOWM4ZDY1MTcyNTFkZGE3YWEyZmI5YTA1NzY5NzZiNDMyIHJlbGVhc2UyMy1icmFuY2gKKzMzNzA3IDIxYjgxMzk5YjYyODQyMGE2OGM4NmI5ODAyNWJjYmU2N2M1NzUxMGYgcmVsZWFzZTIzLWJyYW5jaAorMzM3MDggYTUyMDM2MTRjYWE5NmQ2YjljYzJlNGUzMWYxZTk1MDIwZGQ3NTRkMiByZWxlYXNlMjMtYnJhbmNoCiszMzcwOCAxOGVkYzdkNTdkZmZiNTZiZTgzNzRmMzVlNDdmMzkzMjlmNWU5ZDMxIHJlbGVhc2UyMy1icmFuY2gKKzMzNzEwIGVjZDg1NzMyMDRjZDI0YjFmZjFmODRiNzdkYTgyMTBiODVmNDU4MTYgcmVsZWFzZTIzLWJyYW5jaAorMzM3MTEgNDNiMGE0MDRkNGEwMWNjMTc5OGU0MTM1NTg1NTlmZWU4MGFhMmZlMSByZWxlYXNlMjMtYnJhbmNoCiszMzcxMiBjM2U2OWYzNzZmMjliMTkxMTQzNDE0ZTJlZDAyOTkwNGIzNzlkZWM2IGxlZ2FjeS10cnVuaworMzM3MTMgM2ZlODJkNTdkMGQxN2YxZDhkMzk1ZWI1MmIwMDQzODFhMzM5NTZmZiBsZWdhY3ktdHJ1bmsKKzMzNzE0IDFkNjNlMTUzOTg5ZjAzNTQ2YWU4YjJhZDBkNzBiMmQzYjdiYjMyNDcgbGVnYWN5LXRydW5rCiszMzcxNSBiN2UyZDczODBjYjIwOTdjNzFhNGFlMmMwOGZlNmM3NjFlYTYzMmNkIGxlZ2FjeS10cnVuaworMzM3MTYgNzAyYWE2ZWIxMWY5YjNkMGQzN2U0ZWY0YjhlMTJhMzM3ODM3ZTg3MiBsZWdhY3ktdHJ1bmsKKzMzNzE5IGI4MmVhMGIwN2IwYWI4YjViNDM3MmQ0N2Q5MjM4ZWUxZmY4ZTU2YzIgcmVsZWFzZTIzLWJyYW5jaAorMzM3MjAgYzM0MGIyN2Q3MzliMTEyZmE1NjA3ODllYzU1MWQ0YWQ3ODIxM2ViYyByZWxlYXNlMjMtYnJhbmNoCiszMzcyMSAwMjUyOWZiMTg4MTVhMDg4Y2I5MTU5NmI5Y2FiMTE2MmJlY2Q4YmVkIHJlbGVhc2UyMy1icmFuY2gKKzMzNzIyIGU1OWEzNmExODA1ZWQ2Y2JlYTQwOGM5YTY5ZmRjNWZkYTY2ZDQzZjYgbGVnYWN5LXRydW5rCiszMzcyMyBlNGVlOTg2YWYxYTA3ZjdkNDhlMjVmMGI1M2JlMjMyOTU3MmM0ZTY3IGxlZ2FjeS10cnVuaworMzM3MjQgZTE0ODI5NmQ4YTkzODhlZmVkOTA3OTMyOTVmMTc1MjYxYmUxMDg0MSByZWxlYXNlMjMtYnJhbmNoCiszMzcyNSAxODczMWQyNGUzZDEwMzc3MWIyYjVkY2UwZjIwODIwZTFjZDVmODhhIGxlZ2FjeS10cnVuaworMzM3MjYgMmYwM2Y4Mzk4NGIwNzFjOTAwMTNjODU0OGViZjcyMDdmOWQ4OGUyNiBsZWdhY3ktdHJ1bmsKKzMzNzI3IDY3ODRhMjQxNjMzMTUwYTk4NTkwZDkxNzg1YTdjMTJjMWQ4NzFkODUgbGVnYWN5LXRydW5rCiszMzcyOCBlNjIxYTk3YmZhMTZiMWRkZjVmMGYzMGEyM2ZjNDlmZGY1ZmU3NWY5IGxlZ2FjeS10cnVuaworMzM3MjkgZTIxM2NmZTE3YTYyNGQzYTYwODFiOGMyN2YzMjNlMmQ4YjdjYzEyZCBsZWdhY3ktdHJ1bmsKKzMzNzMwIGQ3MjU0N2M5MTVkNWE2NGVmNWNiNGQwOGNjNjYwYmFiZWUwYzNjYzAgbGVnYWN5LXRydW5rCiszMzczMSA2NzcwMzg4NzNhMjJiOTRkZWQ0OGQzNjE2N2RlZTVlYTdhZTZkOGUzIGxlZ2FjeS10cnVuaworMzM3MzIgMDhmMzhkYWZjOThhNzA2NGM0YjZlNzBjNTNiN2ZmMmJhNzA5MmNjNyByZWxlYXNlMjMtYnJhbmNoCiszMzczMyA4ZDhjZGVlMzQ0YWQ1NjY3ODZkMzE0ZDc0MDBmMjM5YzZjMmY5ZjVlIHJlbGVhc2UyMy1icmFuY2gKKzMzNzM0IDllMGQzOWEyZDM3ZTQ5ZGVjM2ExYjYyNjIxZTQyNzI3ZGQ0MDgxN2UgcmVsZWFzZTIzLWJyYW5jaAorMzM3MzUgMDQwNjg3NWNhN2ZkM2I2MTNjZTYxNjEzZjUxYWUzZjMyY2Y2NzdiYSByZWxlYXNlMjMtYnJhbmNoCiszMzczNiA2ZjZkZTc2MWVmOWI3YWRiOGNiNTFjMzY1MDNmMjM2MzM2MmQ4MmVlIHJlbGVhc2UyMy1icmFuY2gKKzMzNzM3IDI0ZTczNzk4ZWQwNGU0ZWQ3YWYxZTA1NmUzMjY5YmQ5OWQyYWYyM2IgcmVsZWFzZTIzLWJyYW5jaAorMzM3MzggNzA1OGRjZjczM2Q0NjZjMDAyYWJhZDI0YTE0ZjBkMWFhODkwMTVkYSBsZWdhY3ktdHJ1bmsKKzMzNzM5IDQzYzk3NzFlMGJlMTBhYTUwZDg2NjJlNzIxY2FhNzhkMjFkZWM4MzIgbGVnYWN5LXRydW5rCiszMzc0MCBjZTE4NTAzNGIzODA3ZGQ4MzVmZmQ5ZDBhZGEwODA5NGU2ODY0NjgxIGxlZ2FjeS10cnVuaworMzM3NDEgNjljOGUzOWY2ZWU2YzU2YTI2ZWNjMmE1M2RlYjZlNjA5OWQ4ZmI1MiBsZWdhY3ktdHJ1bmsKKzMzNzQyIDA1MDRiYThlZmJiNmNkZDExZjFhNDdjYWYwYjQyNGZjYTQzMzI5NWMgbGVnYWN5LXRydW5rCiszMzc0MyAwYzYyMTgwMTQwOWFmMjg2MmJiYWQxYjE5YWE3YmM4MzlkOWUwMjMxIGxlZ2FjeS10cnVuaworMzM3NDQgZDhjOGZlMGM3M2VkZWVkODNkMzZkYzZjOGJhMjU0YjNjMTAyYmJkOSBsZWdhY3ktdHJ1bmsKKzMzNzQ1IDY0M2ZmYjdkYjE4ZmQwNWY5ZmUyNzhiNzEyMTk4MjIxNTA1YzhhYmYgbGVnYWN5LXRydW5rCiszMzc0NiBkMDk5NDRjZWUzYTRmZTRlZDE0MWRlYzQzMWNmNjE1MzBkNGMxNDIwIGxlZ2FjeS10cnVuaworMzM3NDcgNTI2YzEyYWIzNmFmMzk4MmY3MDRiZjI1MmU3ZDhhNjQ2MmI0ZTVhYiByZWxlYXNlMjMtYnJhbmNoCiszMzc0OSBkNzM4YTA3YTI5M2EzNWY0MDMzYmM3OWRjNDliOWUzODBjYmE3NjVkIHJlbGVhc2UyMy1tYWludAorMzM3NTAgYzlhMDA1OTBiOTAxZGRkYmU2NmFjOTE3NmI4NTIyYjM0ZjdmY2Q3MyByZWxlYXNlMjMtbWFpbnQKKzMzNzUxIDgwMTRmYjgwZDE0NDUzOWI3NGRmMzI4ZGNlYTFkMTZkMTgzNWJmMjMgcmVsZWFzZTIzLW1haW50CiszMzc1MiBkYjlkNjMwMjM3YTY1NzY1ODIzYzc1ZWU5ZjYzYThlYjU4ZTllZjFmIHJlbGVhc2UyMy1tYWludAorMzM3NTMgZDhlNTJiY2UyY2Y5MDNiNDdhY2FjNDQwNDAxYjcxMGU5NWM0NDZhYiBsZWdhY3ktdHJ1bmsKKzMzNzU0IDVhMmE5MWI5NzgxMGExY2IzNDNjOWU0Y2VkMjg3YTljNDBiMWQ4MjggbGVnYWN5LXRydW5rCiszMzc1NSAyY2ZhY2E2MmE5OTA3M2RhYzA0ZDBhZjFkY2U4ZDU2NDgzMjNiOTQ3IGxlZ2FjeS10cnVuaworMzM3NTYgYWU4NDg1ODY3ZDMwNzExYWI5OGE3ZDQ3MDBkNWY1YWIzMzdmZGQ4MiBsZWdhY3ktdHJ1bmsKKzMzNzU3IDQ5NGIwN2E1ZTJlNTdjYmMyMzg4M2Q1NWFmOGQ5ZDEzYzhhZGM2OTAgbGVnYWN5LXRydW5rCiszMzc1OCA3ODAxYjEzYzUyYzk0NjEyYzc0MjYyOTBkYTZjYmJlYTE3YjRiZDk2IGxlZ2FjeS10cnVuaworMzM3NTkgMGNmYzZjYWJjZTg4NGE1MzBjY2ViNThkYjg3YTFjMzMyZDFiZWJlOCBsZWdhY3ktdHJ1bmsKKzMzNzYwIGEwMzAwZWE2MzhkZGI0MTMwMTkwOTY3ZjIxODBmYTE2ZTc1YTJhZjYgcmVsZWFzZTIzLW1haW50CiszMzc2MSBiMjRlOWQ3MWZhM2NkYmM3YzkxMGVlNzgwNjdhMTQwNmQ2YWQyZjBjIGxlZ2FjeS10cnVuaworMzM3NjIgMWQ1YmU2OTgxZDU3ZWRkODcyYzRjNTMzZTQ5NmExOWY4MGQ1ZTRiNCByZWxlYXNlMjMtbWFpbnQKKzMzNzYzIGU0NzdiNTk5OTI0ZGE4M2Y1NTczODBhNjQ1MDAxOTg1MDk5Nzk4M2EgbGVnYWN5LXRydW5rCiszMzc2NCBhYWIxMDg5ZjBmODVkZWViYmQ1NDVmOWNjMjNmNGY0YTIwMjk4YzY2IHJlbGVhc2UyMy1tYWludAorMzM3NjUgNGFkZmQ3NjQ2NmJjNmMwNmU0ODRiNTJmZTRhMjM4NmJkYjgyNzZlZCByZWxlYXNlMjMtbWFpbnQKKzMzNzY2IDIwMDE2NWQxMWE5NDYyMmFjZWJiMDIxZjk2MzU4NGE4MTY5NDM0NDYgbGVnYWN5LXRydW5rCiszMzc2NyBmMjYxOWJkNjgzZGIzZGIxYmI3OGIwZjA1NTYxNmI3ZmY3ZWUxNGVlIHJlbGVhc2UyMy1tYWludAorMzM3NjggMzU0YzdlZTQzOGJmNGVhMDE3NGY5M2E3Mjk2YzdlZGEwZTAxNzY3MiBsZWdhY3ktdHJ1bmsKKzMzNzY5IDdhZWExYjVjZGViYmEyZjc2ZmZjOGIzOGY4N2QxMTYwZDc3NWIwYWQgcmVsZWFzZTIzLW1haW50CiszMzc3MCA1ODlkNTU0NWFmNDExNjMwMjY0NDA3MWE4N2QxNDAzYzE4YmI3ZDc4IGxlZ2FjeS10cnVuaworMzM3NzEgMGU2NDI0MDgwMGRkMTNjNzFkOWQ0N2FjNWE1MDM0ZDEzMzFiOGQ1NiByZWxlYXNlMjItbWFpbnQKKzMzNzcyIDk4ZTZhYzFkODM3OTcxOTYzZjQ1MThlMmEzODliZjcxOWE4YjNmOGIgbGVnYWN5LXRydW5rCiszMzc3MyBhZTAyNDJlMzQ1OWVlYWE5NTIzZjNlNzQ2NzM5MWJkMDhkNDE4Yzc1IGxlZ2FjeS10cnVuaworMzM3NzQgOWJkNWMwNTJiMzA4Yjc4YTcyZWEyOTc2YWVkMDdjZmJlNzNhNDM3YyBsZWdhY3ktdHJ1bmsKKzMzNzc1IDE3MTgxNGY1ZGNjNjMyMTBiNjIxYTQzYjRhN2Y5NWQzZDkxMTQzNWQgbGVnYWN5LXRydW5rCiszMzc3NiBhYjEwYzBjMjVjMDMwNGFkNGEzOTgxMDMzMGRhOTc2MzZkNDNiMzE5IGxlZ2FjeS10cnVuaworMzM3NzcgMDYxZDg2ZmMxMWJiMzgzNGRiNTk3ZTcyNzc1MzQ0YmFkY2E3YTI3OSBsZWdhY3ktdHJ1bmsKKzMzNzc4IDczNWVjMDg2OTQ5MjNmZWI2MDYxY2FmYTBlMTBlNzc4M2U1YTVkYWUgbGVnYWN5LXRydW5rCiszMzc3OSA3YmQ0MDIwNTA5NGNjNDgyM2JhZjNiOTU0NGFiODQwMzA2OTg0ODMwIHJlbGVhc2UyMy1tYWludAorMzM3ODAgMzZjMjc3MzgxZDc4YjNiYjYzNzcwNWRmNTEwMzFhYjM3ZmViZGRkMyByZWxlYXNlMjMtbWFpbnQKKzMzNzgxIDhjYzgwMDAyZmI5MDM3MDhjZTQxNTQwYzhhOGY4Mjg5MTQ5YzkxYmUgbGVnYWN5LXRydW5rCiszMzc4MiAyYjE0Yzk4MjdkOWNkNzNiYTY3N2UzNTdkYTE3ZWZkMGQzMzA5NTczIHJlbGVhc2UyMy1tYWludAorMzM3ODMgNWIxZGRjNGI0OWI5YmIxZjk2MmFjMzNlZmU3M2FjMTUwMjZhZGQ1NSByZWxlYXNlMjMtbWFpbnQKKzMzNzg0IDhiN2UzN2I1ZjFlZTQ1MWQyNDkxOGE5M2E1ZWYwZjZmZGNjNDAwNGIgcmVsZWFzZTIzLW1haW50CiszMzc4NSA3NjJlMWIyMDg4ZTUxODhkZmVlNjMwNjk5NDliYjc5ODNhZWIyMWM1IHJlbGVhc2UyMy1tYWludAorMzM3ODYgNTlmZjc3YjBhYzcyNGFiMTJhNTZlNjU2Yzg4NjcwMzdiZDM0ZGU5YyByZWxlYXNlMjMtbWFpbnQKKzMzNzg3IDhmOTNiMDliMmJiNWYzNGMyNDUxMGNjZmNlZDc5Y2Y2N2Q4NTgyNjQgcmVsZWFzZTIzLW1haW50CiszMzc4OCA3ZjU0ODkxODRkOTQzMzBhYmViNGYzNjA2Mzc3Y2VmNjUzYjU4YmUzIGxlZ2FjeS10cnVuaworMzM3ODkgNjIxNmU3NGI4OGVmYmUzNjg1OWQ5OWEzYTY0MmY5NGNkNDY2Y2E4NSByZWxlYXNlMjMtbWFpbnQKKzMzNzkwIDFjNDUxOTRkMTI0ZDg5NTI0ZjRiNmNkODkwMGE5Y2M0MGRjMDgxNjMgbGVnYWN5LXRydW5rCiszMzc5MSBiMDc2ZjY5YzVkYWMzMTJjODZjOGJhNWJiZWVjMDIxMTdiODU5NzU3IHJlbGVhc2UyMy1icmFuY2gKKzMzNzkyIGQwNWQwZWQ0NjVkODAxNjVkZWFkMThmZjlmOTE4ZWMyYzU5MDhjZTggbGVnYWN5LXRydW5rCiszMzc5MyBkYmRlM2RkMzEwNjg1MmVmZDIxZjM4YjcyODliNDMzOGUzMTRmYzc0IHJlbGVhc2UyMy1tYWludAorMzM3OTQgOGViYjliMzU3NmQxM2M5ZDAzNDc0ZDI1MWE4MmUxMWVhYTg5YjQ5NiByZWxlYXNlMjMtYnJhbmNoCiszMzc5NSA1M2MyZmYxZDgxZDE2OThhZDA5YjNiNWYzNGE0YzQ3YWM4NDZlODkyIHJlbGVhc2UyMy1tYWludAorMzM3OTYgYmZjYzk4ZGU3ZmNjMjUwNDhiODk5ZDU4YzM0OGEwNTBiNTFiZjg2MCByZWxlYXNlMjMtbWFpbnQKKzMzNzk3IDQwZjVmMGI0NGNjNDQ3Zjc4ZTYwMjMwMWVhN2NhMjM0MDM3NGU0NzggcmVsZWFzZTIzLW1haW50CiszMzc5OCBiYTQ4ZTU3MWE0ZDVjZTlmNjM0MWY1Yzc5ZmJkODQxMWQ3MDZhMzQ3IGxlZ2FjeS10cnVuaworMzM3OTkgNWM4YjJhNjY2NmMzNmZjNjMyZDJmZmUwZTQ1ZDBhY2VkOGNkNmZmYiBsZWdhY3ktdHJ1bmsKKzMzODAwIGFmZGU0MDJlM2E1NWE5OWIyNTdjOWQyYmZjNjhiZjljYTA5YzdjYjUgcmVsZWFzZTIzLW1haW50CiszMzgwMSBkNGNjZTU1MzQ3OGE4MTBkMDRhOTIzNTJjZWQ4ZGFmZTNjNjAyYzA2IGxlZ2FjeS10cnVuaworMzM4MDIgMGFjNDM5NmIxODk0YTBlMjlkOGMwYjFjZDU5MGE0ZDFlNmNlZmJjNCBsZWdhY3ktdHJ1bmsKKzMzODAzIDc0ZWY4YjhlMDA2MTc0YTUzYzBiNWE2NDVjODkxMzBkOTZjMWUyYjIgcmVsZWFzZTIzLW1haW50CiszMzgwNCBlM2M5YjQ4ZGU2MGFlMjc0MDY4YjY4NDhkMDIzYjZkZmQxNDA0MzhlIGxlZ2FjeS10cnVuaworMzM4MDUgMDYwMTZkNWQ4MWQ3ZDRlMWQ0ODBhMzgwMGE1Nzg3OGQ0OTNjMDA5MiBsZWdhY3ktdHJ1bmsKKzMzODA2IDFjNGQxOWI5YmFhYzY1M2ZmMGMzYWI5ZDc1Yjg1OTgwMjExNWQ2Y2MgcmVsZWFzZTIzLW1haW50CiszMzgwNyBkNjM3OTYyMGZiMDhkMTRhNzA2ZDM3NTZlNzIzNmFjYWNjYmZmYjIxIGxlZ2FjeS10cnVuaworMzM4MDggM2RjOGYyYjQyNDhjMmI4M2VkM2E0NGNmYjlkYmY1NmFmOWIyOTc3YSByZWxlYXNlMjMtbWFpbnQKKzMzODA5IDA5YTJjZGVhYjhjMGFlODNlMjlhMDY3NmY3Y2IzMTU5NTYwMDYzZWQgbGVnYWN5LXRydW5rCiszMzgxMCA1MzBlMjNiZjllMTkzZWVhY2Y4OGZkY2NjOGVlYzY1NDAxNzQwNzYzIGxlZ2FjeS10cnVuaworMzM4MTEgOTAwMzI3MDk1YjA1MTQwM2ZhNmE4ODQwMjRhYjcxZTc5ODE1YTdiNSByZWxlYXNlMjMtbWFpbnQKKzMzODEyIDUyODQzN2EzZjVmN2E3NWMxOTEwODhhNzk3YmNhMmJlZjQwZjMwMzMgbGVnYWN5LXRydW5rCiszMzgxMyA2NjVmOGE2ZjQzN2RiNDZiY2U4MzdmNzQxZGM2OTI4MDAwZGI4OTFiIHJlbGVhc2UyMy1tYWludAorMzM4MTQgNDM1M2YwNDQyMmUzMjFmZDEyNGIxZWMwMmMyYzZjZDg3N2NhNDQ1YiBsZWdhY3ktdHJ1bmsKKzMzODE1IDI2NTA3OTg4MzY2ODczOGY2ZGY0YzY3NWY2ZWRiNWI5NWY0OTQ3YjYgbGVnYWN5LXRydW5rCiszMzgxNiA2MTZhOGMwY2M5MTcwNmFiZTA0MTU3N2NhOTU2N2IyNzRkYjVmNTJiIHJlbGVhc2UyMy1tYWludAorMzM4MTcgYTg4ZTZkZmJmZDZkMzRmMTA3YmQzNjBmYjVmY2VlN2ViZTY0NWY1NCBsZWdhY3ktdHJ1bmsKKzMzODE4IGZiMmFiY2EyZDJkNTU5YzYxZDZkODgyYmNlMTdhZWI1ZDQzMzg0MDMgcmVsZWFzZTIzLW1haW50CiszMzgxOSA5MmQ2ODA4M2EwZmQ2N2JmYWJlZmNlNzQ0YTk5NDc1NWY2Yjk2NDFiIGxlZ2FjeS10cnVuaworMzM4MTkgOGU2M2M1YTMzZjQ3MGY3YzM2M2UzOGE3YzE2MmQyNDllZGNiMmJiNiByZWxlYXNlMjMtbWFpbnQKKzMzODIwIDQ2MTAzMGU2YmQ2NzZjNWI3ZDk5N2JjNzE2YjQ0YTgyOWZkOWIzOTEgcmVsZWFzZTIzLW1haW50CiszMzgyMSA2N2E5MWY3NTBjNjMxMmNjNGY3ODkzM2FhMjM1YjAzMDRlZmJiN2M1IHJlbGVhc2UyMy1tYWludAorMzM4MjIgOWY2ZTJkZWUxODkyZjczYjkyMDZlYWEyYzZjNTY1MWE2Y2MyOWQyMyBsZWdhY3ktdHJ1bmsKKzMzODIzIDdiOTA2NTcxZGM2OGI0ZjAzYTA2NDExYTQyNDk5MzI5NDkzODdjNmQgcmVsZWFzZTIzLW1haW50CiszMzgyNCBmZTA1N2JlYTg4NTY2OWNkNWQwZWM5YTA1MWNiZjBiN2E1NDE3YWQzIHJlbGVhc2UyMy1tYWludAorMzM4MjUgNDBhYTRhMTBmNDliNmE1YmZmMjAzY2I0MWVjMTQ5ODk1ZTYxZTcyMiBsZWdhY3ktdHJ1bmsKKzMzODI2IDM3NzllYjQ4M2U2YmQ1ZGE0M2YyMTNjOWE1MmUzNDMyMWI1ZTc3NDcgbGVnYWN5LXRydW5rCiszMzgyNyA3MjBmNDRjNmQxMWMyZDE0ZjA1ZGNlYTU0ZWVjNjdkNDUyMjE5ZWExIHJlbGVhc2UyMy1tYWludAorMzM4MjggMTljMGY4MTdjYjQ3NTc1YzA2NWU0NzQ1NTM2ZTI4MWJmOGM5MjYxYyBsZWdhY3ktdHJ1bmsKKzMzODI5IDk5OGIwNjczMGM5ZmIwZTU5Y2QxODUyYTRiOTJhZjM3ZDYxN2U5ZTQgcmVsZWFzZTIzLW1haW50CiszMzgzMCAyMTA2NzZlYzlkNWYxN2VlNjRmZjNhZDczODg4ZTY1ZmZhNjZjMDU1IGxlZ2FjeS10cnVuaworMzM4MzEgMTU5OGZiZTY5M2Y5OWM4NTI2NTMyMGUxMjI4M2E4ZGIzY2VkZmUyNCByZWxlYXNlMjMtbWFpbnQKKzMzODMyIDI5MDMyZjM3ZGM4ZjgyN2YzNTk1ZTE4MmVjNjY2OGE4OWE3M2Y0NDMgbGVnYWN5LXRydW5rCiszMzgzMyA0YjQ2ZDU0NDlkNDk5NTcyMmJjNDc3NDNhNDllZTQ4NmVlZTU2ZGMzIGxlZ2FjeS10cnVuaworMzM4MzQgNjg0MmNlYjM5YTE0NDE2ZDRlYzc3MGQ1OTA0OTI1M2FjYWM4MjhkZSBsZWdhY3ktdHJ1bmsKKzMzODM1IDJjNmY5MmNkZGJhZDlhOWEyZmE0NThmYjU2ZmZiNTIxYzg5ODM3N2YgbGVnYWN5LXRydW5rCiszMzgzNiA1M2Y5MDY5ZmM2NTBlZWFjZmJkOGZmNWVlNjVmZmY5YTNhYmRiMmUyIGxlZ2FjeS10cnVuaworMzM4MzcgYjg2MjNiMmM5YmNlNmFiOTZmMzJkOTBmNmM0N2VlMTkwNTliNzgyOCBsZWdhY3ktdHJ1bmsKKzMzODM4IDgyYTFkM2YyMTBhZGYwOGEwYjY2MTBmYjc2ZGU3M2VjOWI4ODhiMTQgbGVnYWN5LXRydW5rCiszMzgzOSBjMzNkMzY4OWVkNWI2Y2EwYjAzOTIwNTkwNmZkZjdjM2RmOTI2YTAyIGxlZ2FjeS10cnVuaworMzM4NDAgZGUyOGQ5OTI4ODU1NTZkYWU4MTRlZjkzZDZmYTYxMjM1NTRjN2RiMyBsZWdhY3ktdHJ1bmsKKzMzODQxIDVkMGM4N2I5NTcwZDNhY2I3YjE5YjNlMDViYTFiNjk4NmNhNDVlMjkgcmVsZWFzZTIzLW1haW50CiszMzg0MiA1MjNjM2Q2MWRiZGRlNzM0YTBmNTZkYmRiOTRhMDgwMzJiMjMwMDE3IGxlZ2FjeS10cnVuaworMzM4NDIgMzA0YjVhMzY1NTc2MTE0MjE4YjhiYzNkYWZmODZkMTNhMjQ5MDZlMyByZWxlYXNlMjMtbWFpbnQKKzMzODQzIDE4YjY3YWU5Y2Y0NTgyNDM2NzYzYTU4ZDhkYTU5MDRlNmVjMzVmZDIgbGVnYWN5LXRydW5rCiszMzg0NCBkZjY1NDg2MWNjZjZhMTA5ZjQxMzUyYzM2MDRlNmY0Zjg5NWM3ZTAyIGxlZ2FjeS10cnVuaworMzM4NDUgZjc0NmQ1NjkwYWQ2ZDgzOWRmNWI0YTc3MzYxZWQyYTFmYmE4MDFhOCBsZWdhY3ktdHJ1bmsKKzMzODQ2IGFhNWNiOGUzYjllYTViN2Q0ZDAxZTVmMThkMTNhOWZmYzBkYjBlYTEgcmVsZWFzZTIzLW1haW50CiszMzg0NyBmMzY1NGM1YWRhOTQ0OGNhMTUxNDU5MTNiNWFjYmRhMTFmMjU5YjJjIGxlZ2FjeS10cnVuaworMzM4NDggNDZiY2FiMmI3NGU5MjQ4NDliZTZjMWU2ZDI5ZTMwODhjYzY0NjQ0MyBsZWdhY3ktdHJ1bmsKKzMzODQ5IDQ1MDVhMGI5NzI0Y2YxN2QwNTQ4N2ZiZWM3MTYxYWIxNWNjZGY3YzQgcmVsZWFzZTIzLWJyYW5jaAorMzM4NTAgMDU2NzNiMTZiZGI4YzFlOWE5MjkyMzljM2JmMDVmN2JlNTAyZDc5ZiBsZWdhY3ktdHJ1bmsKKzMzODUxIGY0YjRiZjdlODdkN2UwYmU1ZTRmZTRhZWJmZGEwZmIzODZmNmYyNjggcmVsZWFzZTIzLW1haW50CiszMzg1MiBkOWYwMjdkYzY3NmRkOWNkNTUxYzZhMGFhNDE4ZmU2MzQ4MWY3MzQyIGxlZ2FjeS10cnVuaworMzM4NTMgN2NjMGEzMzk0NmEzMDQxNmY0OGU1ODI5MmNlZTY0Njk1MDRkMmYyZiBsZWdhY3ktdHJ1bmsKKzMzODU0IGYwZGZiYzE0MTQ4MzM2YjhmYzZjMDg3ZDc0YWZkZWRlYjI4ZjAyNTYgcmVsZWFzZTIzLW1haW50CiszMzg1NSA1OTBkOGNjYWJhYzdiZDBjMDUyNWQ1ODU4YTdjYWE2NzNkMTE0M2QyIGxlZ2FjeS10cnVuaworMzM4NTYgNmQ3NGYwMDZmODRhY2U4NGM2OWE5MDE4MzZkZmM1Zjg1NmI2ZTcyMiByZWxlYXNlMjMtbWFpbnQKKzMzODU3IDU5YmFkN2VmZmYwMjE2OTQ3MDJjODRiMzI0YjgzMTk5YzhjN2RjNzUgbGVnYWN5LXRydW5rCiszMzg1OCA1Njg2Y2EyOTdmNTVmNGY5Mjc5Y2M3ZDQ2MDNiZTNmOGFkNmY0YTRiIHJlbGVhc2UyMy1tYWludAorMzM4NTkgOWY1M2U1M2YzODgwMjNhMTA0MzhkMTI5ZWQyYTI2MWQzOWMxZjUzNCBsZWdhY3ktdHJ1bmsKKzMzODYwIDA4MTNiMzM2MTBjYzM1YzM5Yzg1MTNmZjdhYzgxOTEyMmI0YWIzOWEgbGVnYWN5LXRydW5rCiszMzg2MSBlMzczNjMwYmZlYWI3NjQwZWJmMTU4MzUxOTliNTZlZTE0OTNjMTYxIHJlbGVhc2UyMy1tYWludAorMzM4NjIgYTQ5YzFiNzYxMDZjZTRhYzhhZjU0Y2Q2MmUwZWEzZWJkYWQzMjIxYiBsZWdhY3ktdHJ1bmsKKzMzODYzIGUzMjgxYjBkZjZhNDFjNTk2NWE4YjQxNzVmMDQ1N2YxOGVkNGFlYTQgbGVnYWN5LXRydW5rCiszMzg2NCBiNjk4MjA5Yjk4Mjc4ODM1NGQzMGQ0YTAwZjI3YzcyYzllMmQ5MGU2IGxlZ2FjeS10cnVuaworMzM4NjUgOWI4OTE2NjMxZWI2OWVjMzJlNWM5YzQyMDU1MmI2ZWY5YTlkNmRlYSByZWxlYXNlMjMtbWFpbnQKKzMzODY2IDQ0NjA5NzlkZWViZjVlYzY1NTMyNjJkNzJiZWFmNzg2ODE1NzQ2MmIgbGVnYWN5LXRydW5rCiszMzg2NyA5NDFkNDlhNjVmMDZmMTIxZmM2YTMyNjJmNmI2ZWI2Zjc4YjI4YzM2IGxlZ2FjeS10cnVuaworMzM4NjggMzMyOWIwNThkYjIwMTJlYzZkYzk3YjBkNWQ1YTIyMmE4OGQ3OWJlNiBsZWdhY3ktdHJ1bmsKKzMzODY5IDU0NjE3ZWQyZDgzMDg3MDIyOTY2ZmY0MTNjMTdjNGYyZDg2YWNhNmIgcmVsZWFzZTIzLW1haW50CiszMzg3MCA0NDM1MzNkMDg3ODNkYzc4ZDZmNzQ4NzY0NWUxMjAxOTkyZGI5ZjE3IGxlZ2FjeS10cnVuaworMzM4NzEgMjliMWQwNzYzNzkwYWY3MGM2YTQ1NzhkMjFmMmEwZDQ5ZDI1ZTdhZSByZWxlYXNlMjMtbWFpbnQKKzMzODcyIDdjYjRhZDU5MzJlNjI2ZGZlNWQ3OGNhNDRiOGQzNjQ1ODlmNTU5NmEgbGVnYWN5LXRydW5rCiszMzg3MyA0NzA4ZmEwODYxMjFmMjNkMjc0Nzg4YmU4ZTk5YmRlNmU4ZWUyZjBlIHJlbGVhc2UyMy1tYWludAorMzM4NzQgZWYyMTY4MWE5YzdmYjYwOTkyODc4M2VlODk5NTg2Nzc4MWI0MDAzMSByZWxlYXNlMjMtbWFpbnQKKzMzODc1IGRjNDI0OWRkOWUzNTNhODIyNWRlZjEyYWRjNzExMjQwZGRmM2U0MDIgbGVnYWN5LXRydW5rCiszMzg3NiA4ZTJlZjI3ZjY4OGI1Mzk2MDYyZjY5MDIwMDExMzc2ODk2ZWJlNGRlIHJlbGVhc2UyMS1tYWludAorMzM4NzcgMmQyNzRkYTA5Mjc0NzY5ZjBiMTJkM2QxNDIxYWI3MjYxN2RhZDBmNiBsZWdhY3ktdHJ1bmsKKzMzODc4IDk0MmNlZWJlOTY3MWFmODY1NDNjOGI1N2NhOTQ2MDFjZTJhZTNkM2IgcmVsZWFzZTIzLW1haW50CiszMzg3OSAzZGRhNTNjMzEyYTVhYWIyM2NkMDk0ZTYzNWMzMmI1OTE1NGU5ZDkzIGxlZ2FjeS10cnVuaworMzM4ODAgYTMzMmRjYzc5MDJiOTYwYWEwMjZhOWJjMzgyN2MzYzA0YTI1NmI2OCBsZWdhY3ktdHJ1bmsKKzMzODgxIDk0MTQ4ODZmNWM3YWRjNjE5OTQ5OWU3YzhiNTdkN2E4MGNlOGRhMTEgbGVnYWN5LXRydW5rCiszMzg4MiAyYTk0MWZmMGExMzY2NWUwMmZlYTE2ODc0MTQwMGFiMTViZmZjNTRjIGxlZ2FjeS10cnVuaworMzM4ODMgYjU1ZDRhM2Y0MWU4NmUzOTg3NTA0NGI0YTk0YjViMWQ2NWJlNWQ0YiByZWxlYXNlMjMtbWFpbnQKKzMzODg0IDNkYjUwZDMxMzQwZDkzYzE4YjM1NTYyNDRkMzM3MjkyMDFkNTkxNzMgbGVnYWN5LXRydW5rCiszMzg4NSA0ZmYzODU3MmQwMzZlNGZhM2ZhMmY0YzdhYTU5YjU2ODA4YWVkNmMwIGxlZ2FjeS10cnVuaworMzM4ODYgNzFkZmQxZTFmMmVjY2QyMThjYjg1NjIxODFkODk2NmE0MjA0NzlmZiByZWxlYXNlMjMtbWFpbnQKKzMzODg3IDYwYWFlOGExZTIzNzI2YTQ1M2E0ZWY4MWFmODUyMjUzOTQzMzc0NGQgcmVsZWFzZTIzLW1haW50CiszMzg4OCA5NDY2NTI5MWFiMWJkMzMxZGQyNzNkZDBmNDVhMWIzZDhlNGIwODViIGxlZ2FjeS10cnVuaworMzM4ODkgY2NiNDBkYThjNDEyYzYwMTg3MzU4ODYwMjgwN2Y3NTU5N2VkNDk4MSByZWxlYXNlMjMtbWFpbnQKKzMzODkwIDdiYzc3MjUyN2U0NGRiOGM5MDNkYWJjZjgxODM5OGU3MzdiNTI5ZTQgbGVnYWN5LXRydW5rCiszMzg5MSBhZjU1MzViMGUwMDllNjY4MzBiMDBhOWY4ZDM0OGI2MjgzNTc2NWFlIHJlbGVhc2UyMy1tYWludAorMzM4OTIgM2VhNTJiYzc0ZDE3MWYzYmU4Y2U4ZDljMGEzMjk0MWQ1ZWQxYjFlZSBsZWdhY3ktdHJ1bmsKKzMzODkzIGQyNzljNDBiZDdiMzZiY2UzMTA4ZTJhNzdhNjdiMzBmODE2YTE1N2QgbGVnYWN5LXRydW5rCiszMzg5NCBhNTVmZWVhM2Y5MjFkYjVhMTBjMDRjOGFlMTNkN2ViODVmMjAwMzRlIGxlZ2FjeS10cnVuaworMzM4OTUgZmQ4MjRkNTc0YThmZGQxMDA1NDc4YTgxMjRjYzYwZDNmMmUzODM5NSBsZWdhY3ktdHJ1bmsKKzMzODk2IDEzMWM1NGYyMDJmZDg0NDYyNDNiNTdkMmYzNWZhZDM3OGY3YTdiNTcgbGVnYWN5LXRydW5rCiszMzg5NyAwZmE5OWQzMWZiNDgxMjBlNDYxY2FhNGNlNGUxYzU1NThmMDE3NDVmIGxlZ2FjeS10cnVuaworMzM4OTggYzEwYTFjZGNlNjJiNTFiNzlhNGY0ZjkzODRiNmVmMTAxNzkzZGJkMiBsZWdhY3ktdHJ1bmsKKzMzODk5IDlhNWQ2ZWI4MWNmYWFmMzc2YmQwNDUzOWRjNWQ5ZjI0Y2I1NWFmZGMgcmVsZWFzZTIzLW1haW50CiszMzkwMCAzYjkwNzRhZDcyM2U0YmYyYTU2OTdjZjdmMjUzMmExMWMyZjA5NDlhIHJlbGVhc2UyMy1tYWludAorMzM5MDEgMzllOTI4ZDAwYjY0Mzk4Yzc3YjQ4ODc5ODk2ZDBkODUyMGE1NTU2ZCByZWxlYXNlMjItbWFpbnQKKzMzOTAyIGQ3ODc3OTE4N2M3ZGYwNDkzNzM4ZGFiZDNlMDI2MDBjMWIzNTQyNTMgcmVsZWFzZTIzLW1haW50CiszMzkwMiBlZjFmMjk3M2ZhZDgwOTA4MjQzMzEzYmQ1NmZmZTlmNWYwN2FlOGEwIHJlbGVhc2UyMi1tYWludAorMzM5MDMgNWM1NGE3OGYxZDUxNTJiMTVkYzEwYTc0M2Y3ZGU3OWZjZTRhNGIyNyByZWxlYXNlMjItbWFpbnQKKzMzOTA0IGJjNjllMGRmZDJhMDM0NDk3YjU2ZWNkMDM5MDdmY2IwZmY4ZDViNzMgbGVnYWN5LXRydW5rCiszMzkwNSA2Njk1Njg4OTkzMDlmZGI4OGM4ODQ1ZTZkMzFjYjJlYzBkOTk3ZjE1IGxlZ2FjeS10cnVuaworMzM5MDYgMjUxZmEwN2ZjNWQxZjVmMmMwMDBmNzJhMzFlZjQ2M2Y3YWU5MzE3MSByZWxlYXNlMjMtbWFpbnQKKzMzOTA3IDRjMGFmMjJhOGYzZDEyNmRiN2E4ZWQ0N2UyNjU5Zjk4ODUyZWE5N2YgbGVnYWN5LXRydW5rCiszMzkwOCA0MWI2YTUzNjdlZTU2NDZiOGVkNmFiNTY1MDU2NTZjNjQ2N2YxOTY2IGxlZ2FjeS10cnVuaworMzM5MDkgZGMwMWNlMmY4NTU4MmRjMjQ1NDllMWM1OTA4ZmUzMTYyMmZkNmU5YyByZWxlYXNlMjMtbWFpbnQKKzMzOTEwIDc1NmI2NWM3OWY0MDAyNDVjMWRiM2Q5YTJhMTk4NzlkNTg0NmM0MmUgcmVsZWFzZTIzLW1haW50CiszMzkxMSAwYWFjMDc2NjM0NDhlMzAwZDViMDgzODJhZjk2ZTMyODU2YmNhYWIzIGxlZ2FjeS10cnVuaworMzM5MTIgZjhlYmFkZTJlNzI0ZGM2MWZjMmI2ZjczYjc4Nzg3MDgxZjczYzZmOSByZWxlYXNlMjMtbWFpbnQKKzMzOTEzIGQyZTRjOTRlZmJhYWIzMTBkMGM0ODc3ZWRhOTU5NTc1NjhmNzVjYTcgbGVnYWN5LXRydW5rCiszMzkxNCBhYzg2YjA3MTdhZDE5NDYzZGUzNzk0NzhkZjIwNTMzMTc4MTNmNGZlIGxlZ2FjeS10cnVuaworMzM5MTUgMGZlNjBmYTYxN2Q4ZGM3MDQxZDc1ZmE5OTgyZWUxYTdlZmQ0OGJjOCByZWxlYXNlMjMtbWFpbnQKKzMzOTE2IDJkYjhjNjNlNjljZDY0ZjJiOWEyZDBkNzk1MzljOTVhMTZjYWQ0OTcgbGVnYWN5LXRydW5rCiszMzkxNyA2YzFlNDdkNTRhN2EzMDFkODNlM2I3Y2U4OWU1MjkxM2IzYWU1MTQzIGxlZ2FjeS10cnVuaworMzM5MTggYTM4MDYxMGVlYjVhYzc5NWRhMzk5ZTI5YTk2MDRhNjdhYjQwZjY0MiByZWxlYXNlMjMtbWFpbnQKKzMzOTE5IGQxNWQ0NGQ5ZDZmNWNkZDVkOGExYmY4N2ExODE2MzljMDFiYjBjOGIgcmVsZWFzZTIzLW1haW50CiszMzkyMCA1ZTkzYTRmNmQ5YTk5ZmEyM2EyNTkzNDY2YjQ5MGNhMDJiMzMyNWU0IGxlZ2FjeS10cnVuaworMzM5MjEgYjUxOTAzNTAwNmM3MTk4MGMwNTM2NTMxM2ZmOTczOWJmYzU1NzgxNyBhc3QtYnJhbmNoCiszMzkyMiBlNGZmMGRiM2IwODg2ZDAzZGY0N2RiODFiNjViZTZmMzEwNDNjNTNhIGFzdC1icmFuY2gKKzMzOTIzIGFjMGRiMDM0ZGQxNGJkN2YwZDQ1MDQ3MzU2MTQ2M2NiOWMxMmVkYzIgbGVnYWN5LXRydW5rCiszMzkyNCA4NDgxYzliYWY3ODVkNWQyZDcwMjI5NWVmMWYzY2UwN2M5MjJiOGMxIHJlbGVhc2UyMy1tYWludAorMzM5MjUgN2FiMWE0MWYxNmRhYjE1MzAwMzZjMTI2N2E2NGU3ZjEwZmNjMDJlMCBsZWdhY3ktdHJ1bmsKKzMzOTI2IDIxZDNiMDZkZjc5M2NiMWFjNjg1OTFjNmI2NWZiNmRiMDU2YThkYzIgcmVsZWFzZTIzLW1haW50CiszMzkyNyA4Mjg3ZjUyMmJlYTE3ODRjZGQ1MzFhNmYzZjI1YjFmNWI3YjYxODY1IGxlZ2FjeS10cnVuaworMzM5MjggZGY4Y2JkZTVjNTg4Mjk4YjVmY2U5YjA1NzNmMDgwOWVkOTMyZTQ5ZCByZWxlYXNlMjMtbWFpbnQKKzMzOTI5IDA1NmYxNmE3YWJiMDM0OTY5OTU2NzIyMjNiNmFlMzRiYTY3Y2IwYzUgcmVsZWFzZTIyLW1haW50CiszMzkzMCA0MDAwY2M2ZGE5MjUyMjA3YWI4OWZkYjlmODU4NGYyZmM1ZDM1MzA3IHJlbGVhc2UyMy1tYWludAorMzM5MzEgYTVmNjA2ZjljYTA1NzFhMjRlZTNmMDgxZGRlYzkwMzY0YjI1YzlmMSBsZWdhY3ktdHJ1bmsKKzMzOTMyIGMwNmRmZmI2YTk4MjI5MTQxZjM0MjBkZTQxZDMyMGJmNDFkNDU4YWIgbGVnYWN5LXRydW5rCiszMzkzMyBlODE3MzU0MjM5M2ZjNDczNWUxNjFlZmYyN2EwOTU5NGJiN2E0MWFmIHJlbGVhc2UyMy1tYWludAorMzM5MzQgMjQzNDFjYjIxZmQ1Y2IxOGYzZjNlN2NkZTVhM2FmMDNmMDIyZTZlNiBsZWdhY3ktdHJ1bmsKKzMzOTM1IDgwNjE3OTQwMGYzNTRlZGJjMWVjMzMzZjljZWI2OGM4YzQxNDA5ZGUgbGVnYWN5LXRydW5rCiszMzkzNiBjMzBlZDEzZDM1ODIwOWEzYjg0YjIxMDgyMmY3YTcxZmJiNGZhYTM2IGxlZ2FjeS10cnVuaworMzM5MzcgYTBmNTNhMDY5NDcwMzUzYWE1ODI0MWNjZTQ5ZDExMGZiNGQyNjlmYyBsZWdhY3ktdHJ1bmsKKzMzOTM4IDEwOWQ2M2Y3MDM3YzkzYTNmZGQxMWFiYWJiMGQ3OTkyZDQxYzlhZWIgcmVsZWFzZTIzLW1haW50CiszMzkzOSA0OTY5NjhmMzY0OWU4YzEzODQ0OGJmMTMxMTdkYWE5NzUzOTdkYzcxIGxlZ2FjeS10cnVuaworMzM5NDAgZGQ0NTFhNjNmODllNTlhMTYxODczOTBiYjczY2E0ZWQ3ZTVhMjI5YyBsZWdhY3ktdHJ1bmsKKzMzOTQxIGI5NDBhYjlhMmFiZjQ0ZjNlOTk4NDU0Y2UzNzRmYTAyNzJjNTViMjMgcmVsZWFzZTIzLWJyYW5jaAorMzM5NDIgZGZiZDI4MTEyZTA5N2NkYTY1YmIyMjAwNzBjZTI0NmIzMGMxODgyZiBsZWdhY3ktdHJ1bmsKKzMzOTQzIGQ4Yjc2ODc4MDRiMjM3ZDg2NjMwYTE0N2E4YmNjM2FkM2QxN2NlOGYgcmVsZWFzZTIzLWJyYW5jaAorMzM5NDQgYzQ3ZjVhYzhiMDZkZDNkZGVhNmRlNTczMTEwODA3NWJkOTdlZmU2MiBsZWdhY3ktdHJ1bmsKKzMzOTQ1IDNkNGE1NTAzZTQ2ZDkxMmMzODczYTAyOTkxMzY3MTJiYzA1YTM2MWQgbGVnYWN5LXRydW5rCiszMzk0NiA3ZjM0NjUyZDcxNjEyYWVjZWFkODM2NWMyODcyNjhmMmZlYzI5Zjk1IGxlZ2FjeS10cnVuaworMzM5NDcgYzQ1MzU4OTM1ZWQzZmZmOGZhMDllMTdhZWE3MzQzNGIxODJlMWNlYiBsZWdhY3ktdHJ1bmsKKzMzOTQ4IDQyMTQ3MTRhYmFjYmYyMzk0ZjZiZGY3YzFhZjI4ZjdjYzU5MDA1ZTIgcmVsZWFzZTIzLW1haW50CiszMzk0OSBhNTcwYmI5ZjEzM2Y3MDkyODRmY2Y1YWM5ZTNjZDZlNDgxMDA0Zjk4IGxlZ2FjeS10cnVuaworMzM5NTAgZTgzNTc1YmIyOWRhOTA2ODVmMDg4YzFjNjcyY2I3ZmMyYzY2MGZlMSByZWxlYXNlMjMtbWFpbnQKKzMzOTUxIGYxZWEzMTExMjdjZjE1OTc5MGI5ODliZTA1OGU3MDZhNTE3YTg5ZTAgbGVnYWN5LXRydW5rCiszMzk1MiAzZmIzNzQ3Y2UzMDRjMTkxNzNlMDAxNTAyMzY5ZjQ5OTUyZmQ2Y2I1IHJlbGVhc2UyMy1tYWludAorMzM5NTMgN2Y2NjBmYTI4OGFhYmZlOTkzMTRhODA3MjJhZDZhNjdiNzlkNmRmOCByZWxlYXNlMjMtbWFpbnQKKzMzOTU0IDUzYTMyMmM2ZGU1MjJhOTA5MDQ5YzQ0YjAwYjAxMmFjMDUyM2MwNzEgbGVnYWN5LXRydW5rCiszMzk1NSA5ZTNkNTFiZWM1M2EyN2U5NmFkOWZhYmVkZGFjODE4NDc5ZGNmYTVmIGxlZ2FjeS10cnVuaworMzM5NTYgNDk3NjU5NDUwNTM0OGVhNDk2NGJjY2NjNDUzNjU5OTA5M2FiOTEzYyByZWxlYXNlMjMtbWFpbnQKKzMzOTU3IDk3ZjNkNjY1NThmYjhlYTcxNGE3YmMxN2EyMWQ4NzdmYzNiMDMyZGYgcmVsZWFzZTIzLW1haW50CiszMzk1OCA5NTY5NWNjNDVjZGQyZWFkNWRjYzYyMjU4MmIwMmU5ZGUyMGRhMWIzIGxlZ2FjeS10cnVuaworMzM5NTkgOTk1MWI2ZTlhM2VhNTdiZTRiODNmNTMzY2I5ODJlMTZhN2NmYjFmYiBsZWdhY3ktdHJ1bmsKKzMzOTYwIGJmMmFhN2RlNDM3ZDM0NmFlOTg2MDliNzAxNjA0OTM3YWMzZDIyZjAgcmVsZWFzZTIzLW1haW50CiszMzk2MSA4MzBjMGNkOGZkYjIyMDIyMWZkZWEwZDkyZjQyMGM3ZjcwYzcxOTkxIGxlZ2FjeS10cnVuaworMzM5NjIgMGRmYWZhYTEwNDAxYzE1Yzk0YjI2NTYzYTFiNzJkNzI0YjMwYTNiMSByZWxlYXNlMjMtbWFpbnQKKzMzOTYzIDY2NjU0YWM2OTYyMmYxYjE5OGRhYWY0MmZjN2Y2ODE0YjUyM2QwNDAgbGVnYWN5LXRydW5rCiszMzk2NCAzYTUwZjgzNjlhZDU2NGUzNjhjMmU3MTgyYzgzYjEyMjVmNDEyYzc1IHJlbGVhc2UyMy1tYWludAorMzM5NjUgNzE4ZTE0ODg4NzFkNDAzMTUxYzA1NDBkMmJjNzljZTZkMzExZmNhNSBsZWdhY3ktdHJ1bmsKKzMzOTY2IGY5NjI0Zjk0MDYxYTdlNTBlNmUyY2E3YWQ1MzQ4OGYwYmJhMDU4ODMgcmVsZWFzZTIzLW1haW50CiszMzk2NyBkYTFiMTkxYjBhNmEyZDk1MDkzYTRlMjJlMjYyYTM3MDI5MDA5MGYxIGxlZ2FjeS10cnVuaworMzM5NjggYTU1ZWI1NGE1NmQwYmM1N2NkZmUzZjY3OGI3NTU3YTk3ODliNzAyNCByZWxlYXNlMjMtbWFpbnQKKzMzOTY5IDM3YTQ1MDJmMTYxMDc0ZjZkNmY1ZWJlMWY4YjliZjQ1ZDZjNGU3ZDEgbGVnYWN5LXRydW5rCiszMzk3MCA5ZGM1ZTcxNTk2ZjdmYzEzMjAyNmUwYjkxYzlhYThkZjE2ZWYyMzA3IHJlbGVhc2UyMy1tYWludAorMzM5NzEgZWJiODNmMjY2ZmE0ZjJkNDhjNzYyMmRiM2IyN2Y2OWE4MTAzNjUwMiBsZWdhY3ktdHJ1bmsKKzMzOTcyIDI3MDA1MmY2ZjBlMWVlMGYwZTcxZmQ5ZjY0ZDRjMTMxZDEyOTQ0NzIgcmVsZWFzZTIzLW1haW50CiszMzk3MyA3YjU3NzM3N2Q1NDZmZTY3NzNlMjRmOTYyNGJiNzgxMGI2MjUxNTNiIGxlZ2FjeS10cnVuaworMzM5NzQgOTQ4ZmQzNGViMDUwOTZjMDM4MjAxZjNlNDE3YjI2OGRiYTk0MGJlNCByZWxlYXNlMjMtbWFpbnQKKzMzOTc1IDExNGQ2OTNhNWI4OTNlZjM1ODlkYjNhNDA2ZmM1OTEzMjQ5MDUzMDIgcmVsZWFzZTIzLW1haW50CiszMzk3NiA1MTc0NDI3OTQ1OGZiMDA0OWE0NTJlOWY2YjA1MWU1N2MxNGY0ZTJkIGxlZ2FjeS10cnVuaworMzM5NzcgNTc5NTFiYTVlOWIxMDc5OWRkMDQ5MTM4Y2FkOWJjMmIyZTIyMjYxZCBsZWdhY3ktdHJ1bmsKKzMzOTc3IDBjMTNiYTUzNTkxODJmMmE0NjlhYjFlMDEwZmI4Zjg2NmVkYmJiOGIgcmVsZWFzZTIzLW1haW50CiszMzk3OCA0MzZkNTc3MmI4N2ZmZjllODIzZDg4MDEzMThlZjQ4NDkwZWY4OThiIGxlZ2FjeS10cnVuaworMzM5NzkgMGYyNmFmN2MzYjUyYjFlYzk2MWY4YmNjZmZiNWVmZGIzNGRkMmZlYiBsZWdhY3ktdHJ1bmsKKzMzOTc5IDVjMGE3MDRlMWJlNGQ3ZWRkMjNlM2MwNDdjNGFhZDEzYzBjNTcwMWYgcmVsZWFzZTIzLW1haW50CiszMzk4MCBhNDA1MWFkNzY2NmU1ZDVmM2VmYzc5NjNlNzQyZTlmMWE4ZGYwOWY1IGxlZ2FjeS10cnVuaworMzM5ODEgODkzNzVhMTNhMThjOGFlOTdjZDE4NGQ0YTg0YTczOGVhYjNlMzQ4OCByZWxlYXNlMjMtbWFpbnQKKzMzOTgyIDI0NGI1NWM5MGUwZjMwNjZlMmQzMzg5MzJiMjAyYWNlYjlmZWFkMDQgbGVnYWN5LXRydW5rCiszMzk4MyA3ZDIzMjk4MWQzZTM4YzQ2ZjA5M2I3Njg1YmY5MjM1ZWQxZWJjNDQ5IHJlbGVhc2UyMy1tYWludAorMzM5ODQgZmY4MDVhMTQ3YjZhOTE4OTg4ZjM1NDA0ZTYzOTMwODUwOTE2NTcwOCBsZWdhY3ktdHJ1bmsKKzMzOTg1IGIxNzdjOTZlZTM1MDNiYTg5YTJjYmE4YzNhMmZmY2E3MDI2ZGUyM2UgcmVsZWFzZTIzLW1haW50CiszMzk4NiA2NmJhMGUwZWMyMDI2OThlMDMzZmNjZGMxNzE4ZWNjMTRjY2E2MzBhIGxlZ2FjeS10cnVuaworMzM5ODcgYTc0YjQ2M2JmNzZkYTdmMzFjOGZiZmY5NTQ3YzAwZTIxMTk1Yzk0OSBsZWdhY3ktdHJ1bmsKKzMzOTg4IDg0OTg4ZTdiYzdiN2JiYTk1NGMyZWQ3ZmZmNTgwODU4NzMyOGUyOGMgcmVsZWFzZTIzLW1haW50CiszMzk4OSA3MTdjYzJjOWZkNjBlYzc5MDA5ZjllNTdmMmQyMzY3NGQ1OWU3NTExIGxlZ2FjeS10cnVuaworMzM5ODkgNWVkNDBmMmY2NWZiNWFkZWQ4MjY3NDUwNTAxYjRmY2NkZGIwOTk5MSByZWxlYXNlMjMtbWFpbnQKKzMzOTkwIDlhMGFhMWRiZjM1MTQ3MGMxOTJkNDVjYTVkMGUzMDk5OWRkZDAyNjkgbGVnYWN5LXRydW5rCiszMzk5MSA2MzEwMGNjM2YxNWFmNDBhZmE3MTJhMWQ0NjQ3NDUzYjNjZjVlNWNkIHJlbGVhc2UyMy1tYWludAorMzM5OTIgY2MyZDllYTRlYmQ1MGZjNjQ4ZmQ1YWM0ZTVjYTZjZDlhMjdhNWQ0MiByZWxlYXNlMjMtbWFpbnQKKzMzOTkzIGRmMDA5M2E1OTg1YzNjYjE4ZTFiZmI4ZjI1NDRlYjdkNWUzNGZmMDggcmVsZWFzZTIzLW1haW50CiszMzk5NCAyMjUwMmY3OTViNDljODM3NmU2MTcxODg4NTI4NDBiYWZjZTE4N2UzIGxlZ2FjeS10cnVuaworMzM5OTUgNGE1OTEyMmE2NjQ2YTFjYjA2MGMyN2QyZGIyNjBjODIwZTVjMWE1ZCByZWxlYXNlMjMtbWFpbnQKKzMzOTk2IDFkNmQ2ZmI3ZjEwYjc3YmNlYjFjMjVhMmM2ODI3OTk0NzYxODhlOTMgbGVnYWN5LXRydW5rCiszMzk5NyA4MDkxYmQ5MmVlMDE1YmM2MGRjOWZlYjA3MGU0NzRkNTA3ZDYxN2Q0IHJlbGVhc2UyMy1tYWludAorMzM5OTggNGI0YjU4MWIzYjJjODMxNDRkZjcyYzg5MGM3Mzg3ZDE5MzI5MzkwOCBsZWdhY3ktdHJ1bmsKKzMzOTk5IDI2ZDNmNWI4N2FkM2RmYWU3ODdkYzg4ODIwZTUwZTZmM2U2NWViM2UgcmVsZWFzZTIzLWJyYW5jaAorMzQwMDAgMjkwNTY0NmEyYWYzNzU3YjA5MTYzZjZjODAwMTVlMGM4YTcxNjEyYyBsZWdhY3ktdHJ1bmsKKzM0MDAxIDc5YjFhOWVjNTIyMzEwMTJlMmE0ZjY3M2FmNzczZjg2Njk1MDAyZDcgbGVnYWN5LXRydW5rCiszNDAwMiA2NDZmMGYxMWM1MTliNTZhMzEzNzhlNjM2YTVkYWVlMTJkMzUyNmYxIGxlZ2FjeS10cnVuaworMzQwMDMgMTE1ZmFjOWQ5MDQ1NmI5YjU4NTk1ZjlkZGVhNGQyY2Q3OGY5NmFmNyBsZWdhY3ktdHJ1bmsKKzM0MDA0IDUyZjRmMmE4Y2NlNzlkYTM3Y2Q4YThjMDhkZjgxNDMzZDMxMmE5NTQgcmVsZWFzZTIzLW1haW50CiszNDAwNSA1NWE0YTQxNzI3M2VkMTIwNzdjMjQ2NzBhZjI3N2I0MTM0MjMyNmI3IHJlbGVhc2UyMy1tYWludAorMzQwMDYgZGRlNTk0ZjcwZDZjZTRjMWRhOGQ3NzJhNDQ2YmQ4NjUyMzA5OGZiMCBsZWdhY3ktdHJ1bmsKKzM0MDA3IGJmYzk3NGRlZjQ3NDAxYzEzMTk2MTY2ODhjM2VkMWYyYzdkODMzYTMgbGVnYWN5LXRydW5rCiszNDAwOCA3MDBjMGNhNDI5ZWZjZDQ5NGVhMzViYzY1NGYxZmI5MzhmOGFmNDA4IGxlZ2FjeS10cnVuaworMzQwMDkgNmRkOWM3YzVhYTEzZDQzZmI0ZTAzZDcwZGYyYzA1ODVkYmQyYzdmMCByZWxlYXNlMjItbWFpbnQKKzM0MDEwIGRhNDM0YjUzNzY2NDkyODRiZmIxMzExOTdmODM4YjE1Mjk4MjgzMGIgcmVsZWFzZTIyLW1haW50CiszNDAxMSA3N2RhOWY4NzNhNGZlNDE3MTdkYzY4NDc2N2U4MTAzNWQ0ZDAwYTgwIHJlbGVhc2UyMi1tYWludAorMzQwMTIgZjQyOTU1NTllYTgzNmFiNTcxYjNmNGVkOGVjNDM3ODA4NDZmZTBkZCByZWxlYXNlMjMtbWFpbnQKKzM0MDEzIGNiMjgxNTM4MzczY2FkMTYyMTZhMDUzNDA2MjJlMDE2YjVjMzQ5NDggcmVsZWFzZTIzLW1haW50CiszNDAxNCAyNGM2MmY1M2ExYzkyOTE0YWIwNDgwZWI3MGY4ZGY3YThmYWU0YzUxIHJlbGVhc2UyMy1tYWludAorMzQwMTUgNDFmZjJjMTNlYTRhOThhNzllNzg5MTVmYjQ2MjEwNWU4MjljOGE5MiBsZWdhY3ktdHJ1bmsKKzM0MDE2IDE3OTNiNjVhNjIzMGZlNDZhYmIzM2NiMDE3YjkzNjQxNTkyYzY1YzggcmVsZWFzZTIzLW1haW50CiszNDAxNyBjMTZjNTUzODYwYzJkZWZiNDg3MzkxZWFlNWQ1ODY2ZmEzM2FiZWQyIGxlZ2FjeS10cnVuaworMzQwMTggZmVkNjUwMTE4OGRhNDI3ZGE2ZWZmZjI2YzQ5ZWNhZDk4NWZhMjNhNCByZWxlYXNlMjMtbWFpbnQKKzM0MDE5IDc0YmMzNDkzY2UwMzUyYmZiNzhkNmIwMzFhMzE4MGNjZDM4ZDg5NjMgbGVnYWN5LXRydW5rCiszNDAyMCBmMDAzZTQ4ZjU2MmRkNDVhY2NiNGQ2OTRlMThiYmFiN2FlMzJmNGE1IGxlZ2FjeS10cnVuaworMzQwMjEgN2UzYTFkM2M5MGY1MzBhZTAzNDNlMWY5ZTVhNzQ4NDNiZmM2NDlkOCBsZWdhY3ktdHJ1bmsKKzM0MDIyIDY3OTBjZjc4NWY4YzVjM2VhYjEzNGMwZjU4MTQxMTlmMWUyOTc4ZTggcmVsZWFzZTIzLW1haW50CiszNDAyMyAzM2RkMTJiMmViZTZkNjY3MDYyMDAwOWNhYWY2ZGYxOGFkZWZiOWM4IGxlZ2FjeS10cnVuaworMzQwMjQgMTNhOTE0ZTBjNWMxNDRjNjc5NTNlNmI3YTliZmJjZTY4YWExZDZlMSByZWxlYXNlMjMtbWFpbnQKKzM0MDI1IDE5NjExZDEwMWQyMzEyOWExZmIxOTY4YmZlM2NhZDU2MWEzNDhlYWMgbGVnYWN5LXRydW5rCiszNDAyNiBjMjUwN2ZlMmU2OWUxMTg4MDI2ZDc5MDQ3NjA4NGJmMTdhMWEyNGY3IHJlbGVhc2UyMy1tYWludAorMzQwMjcgNzcwZmU4M2JmODlmNjU2ZDlmNmI5OWI5N2NlMWY2YjBmZWY1Nzc2OCBsZWdhY3ktdHJ1bmsKKzM0MDI4IDE2YzU5MmQzMTZjMmE5NGQwY2YxMDIyYmM4YjU1ZTA5MTdhYTI1OTQgcmVsZWFzZTIzLW1haW50CiszNDAyOSA1MjFkMDI2YTgwNDhjOTNlZmQzZjQ0ZDc4NzliYmU1YjljMDM4ZTYwIGxlZ2FjeS10cnVuaworMzQwMzAgMjE0ZGY2MmJjZjEzYThmOWYwMzQzOTczMjBhY2UxODNiMjFjMDk0NCByZWxlYXNlMjMtbWFpbnQKKzM0MDMxIDk2M2M2ODBlZDliMjBiNjJmZGNjYzU4Y2ZjODY2MjQ0OGU1ZGU1ODQgbGVnYWN5LXRydW5rCiszNDAzMiAwYmVhOWQzODkyOWRjMzk0NDgyZjNmMDM4MTljZjhhZmZjN2ZlOGFiIGxlZ2FjeS10cnVuaworMzQwMzMgMDYwNzVmMWJkOTQ1YjY1MzYwNTIwYzVhZDY5NmQxYWVmM2Y5Mzk3YyBsZWdhY3ktdHJ1bmsKKzM0MDM0IGQ1YTZiNjM2N2JiMWMxZjY0OTRmNWRjZGVkZTI1NTVlNzgzODVjMTAgbGVnYWN5LXRydW5rCiszNDAzNSBhNjQwYmZlZWI5YjU2MzUyOTdiZjQ2ODk2M2I2MWI0ZWUwNTIyMDdmIGxlZ2FjeS10cnVuaworMzQwMzYgNzhiYWI4ZmM4ZWQ1Y2ZmMjA2Y2ViYjNlNzEzN2JiMjQ4YjYzN2MyYyBsZWdhY3ktdHJ1bmsKKzM0MDM3IDJhODI5MTRiMDhjNWUwZTI2ZDA3NGUxMmUyNDUwNDE2NmJkODY5YjQgbGVnYWN5LXRydW5rCiszNDAzOCA3ZGNjNDU0YTcwYzNiMDc3ZTUzYjMyNWIxZDdlY2I0NTBiMTQ3MGE0IGxlZ2FjeS10cnVuaworMzQwMzkgMmVjOTJmZWJjZDFhOGY2ZDg0MzgxNDhkMjRlYTEyMjRlYTFlMmFhYSBsZWdhY3ktdHJ1bmsKKzM0MDQwIDE2Y2U3ZTk0N2EzNDQyYjE1MmQyZGIwY2Q2YTBiZjIxNjI0MDMwZGEgbGVnYWN5LXRydW5rCiszNDA0MSA2Yjg0ODAyYzk1MjQyNGNlYjA0ZmEzZTc5ZTBmM2QxNzVjODJmYzFmIGxlZ2FjeS10cnVuaworMzQwNDIgYjUzMzIyNGYxMzczZjczNTc3MDhjYjk1YTc4ZmUzYWJmYTZlN2RmMiByZWxlYXNlMjMtbWFpbnQKKzM0MDQzIDNhZmJjMzM5NzU2YTZiN2JlNjdmOWRkN2Y1NjcxYmE5ZDg5YWU0M2EgbGVnYWN5LXRydW5rCiszNDA0NCAzODdhOWUxODQwNzRhYWY4YjVmMTFkZWUwYzUzNWEzZjI4MTIwMDE4IGxlZ2FjeS10cnVuaworMzQwNDUgYzQyOTQ0ZWE5NzQzZTY3YmZmNGEyMzBiYmQ4Njk2YzBhMmE1ZjM3MSBsZWdhY3ktdHJ1bmsKKzM0MDQ2IDU2MjA4OWE4Njc4ZjI4MDI2MzA5YWYzNDNkYWYzMzAxMGI2YTQ5N2UgbGVnYWN5LXRydW5rCiszNDA0NyAwNWE4NTA5Y2ZiM2NiMTk1YTgwMzJmODcwZGQxZDU1Yjc5YWFmMDc4IHJlbGVhc2UyMy1tYWludAorMzQwNDggNjNkZjc0MzA1ZDdiZjRiOTMwNmIzZjFhNjdiNDIwNWZlNTNjYzc2OSByZWxlYXNlMjMtbWFpbnQKKzM0MDQ5IGExMWUxY2IzMDY0NDU2ODNjZDUyNmEzZjBhZmU2ZmU4MzgyY2EyYTAgbGVnYWN5LXRydW5rCiszNDA1MCA4ZWQwY2U2MmI4MmYxOTVkMTM5OTE4Y2ZhY2U0NTYwNWJlMWU2MDBkIGxlZ2FjeS10cnVuaworMzQwNTEgZDVkYWJkMTUxNzUzYTU0MDAwYjE2ZWFkNDM2ZDJiN2EyNjlkZDI3ZCByZWxlYXNlMjMtbWFpbnQKKzM0MDUyIDIwNWNjOTE4ZjFhY2E4ZWZiNTdlN2JhOWMyYmFlNGI4NjBiMTU3ZjYgcmVsZWFzZTIyLW1haW50CiszNDA1MyBkNTllY2EyZWZhNmEwZDQ0ZWQ3YTdjNDY1OWZkYzQ0NDIxYmNiZDhkIGxlZ2FjeS10cnVuaworMzQwNTQgMDA0NTNhMDUwOGRmZTc2N2I1ZjU1NjliNTZhYzA0OWQwYzQ4NmMxZiBsZWdhY3ktdHJ1bmsKKzM0MDU1IGFhZjZiNmE4NTEwYmVhMGJlNzg3ODRkZGZlMjc5YmI2ZTJjMTdlYWEgbGVnYWN5LXRydW5rCiszNDA1NiBmNmZjNmQwY2YxZTVhZTczYjg2NDU5MWIzOWE0YjQyNDA2ODJiNDQyIGxlZ2FjeS10cnVuaworMzQwNTcgODA0ZDFjZDFiMDZkZWI0NGM0YTQ5YjFhOTQ1OGM1OGRlNTMyYWVkOCByZWxlYXNlMjMtbWFpbnQKKzM0MDU4IGQ2MTUzNjAzNDcyZTNjMmQ1MmMxOGNkMDJhMDk4Y2I4NThkNDg3ZWQgbGVnYWN5LXRydW5rCiszNDA1OSBmODZkODYzNjg3YzYwNjM1MTQyNjY0MDI3YThhM2NlMTdjOGI1NmI0IHJlbGVhc2UyMy1tYWludAorMzQwNjAgMDg5MWQyMmFkZjRmNGI4YzUwOTdjY2RlMDVmNDA4ZmNiY2M0OTU3ZCBsZWdhY3ktdHJ1bmsKKzM0MDYxIDFkZTFkYTNlZTNlODdkZDJiYmUwNTYyMWNmMjRjMDYyOWJlZWE0NTIgcmVsZWFzZTIzLW1haW50CiszNDA2MiA4YjlhOGM0ZGUyOGU2YjViNzQ5ODEzYmJlMjY2MWI1M2YzNTMxOGRjIGxlZ2FjeS10cnVuaworMzQwNjMgMDZlYWVmN2QwMmYyMWUzNDQxZThmMjQwMTIzZDg2OWRkYTkxZWFlNCByZWxlYXNlMjMtbWFpbnQKKzM0MDY0IGU1YmQ1MGM3ZTE5MzM2YjQ0YTMwMzM2ZDQ1Y2M2MzI0OWUxMDNkMDEgbGVnYWN5LXRydW5rCiszNDA2NSA3NTA0ODEyZmRiN2ViMWM5ZTIyOTRiZmUxZGU4YjcxNTg2ZGIwMTM2IGxlZ2FjeS10cnVuaworMzQwNjYgZjE0ZTI1MTM2OWIyZDVjODhjZTdkMWU2M2Q4MjJjMTNmYTY4MzVlOSByZWxlYXNlMjMtbWFpbnQKKzM0MDY3IDg1ZTY0MjU0M2RkYWE2YzI5OTdiNDE0NjFiM2JhMGE1ZjAzODcwZmQgbGVnYWN5LXRydW5rCiszNDA2OCA0NDU0NzM2YzZhODJlYTYzYjRjMTliYjRhMjI1MThkOTUwMWViNjhjIHJlbGVhc2UyMy1tYWludAorMzQwNjkgYmU5NTgyNzM0YjU2YWUxZjFhNjEzNDNlNmJiZTFiNzgzMzBjYjJiOCBsZWdhY3ktdHJ1bmsKKzM0MDcwIDM4ZTg3NTM1MzRiNzk3NDAwMDM2OGE5MGZjNGExMWM1ZTJkNzM2ZjggbGVnYWN5LXRydW5rCiszNDA3MSAyMWIyYTIxNTkwNDZkYmNmZmU1ZTIyY2YwNDZkMjVhMTMxNDAzMmM1IHJlbGVhc2UyMy1tYWludAorMzQwNzIgOGRjOTRiZDliODNhZTA2NDVkY2FmNGQ3MmEzYjdhNTdhNGRjYTNjZSByZWxlYXNlMjMtbWFpbnQKKzM0MDczIDgwYTRiOGY2YWUwZTUyYzQ2MTIwOTlkNWNmMThhYjNlYWVmNTViNjAgbGVnYWN5LXRydW5rCiszNDA3NCA0NmJkYjY2YWRjZGI3NjIwMjlkYmM2NzUxMjliNTE2ZWNhYWUyNzQ2IGxlZ2FjeS10cnVuaworMzQwNzUgMDVlOGI1MDNjZDQxNGUyYjM2YTdmMTQwMTlmM2Q5MWM2ODc2NGZiYyBsZWdhY3ktdHJ1bmsKKzM0MDc2IDRhZThiNjVjYWJhODg4OWVkNjlhMWExZWNkYWQyMjI1MDc2YWEzOTYgcmVsZWFzZTIzLW1haW50CiszNDA3NyBjM2IyY2Q2ZWYyN2Y4OGQ5OWQxYmZlMGExY2E3MWU4NDYwNDk4MWE3IHJlbGVhc2UyMy1tYWludAorMzQwNzggZTRjYzIzMmVkNTgzMGRiMjVlMmJjOWZkMDFlODM1OWNlY2VlMjMwYSBsZWdhY3ktdHJ1bmsKKzM0MDc5IDNiNzkzY2Y3NDhjNTY5MDU3OGJlMjk4ZGM5MDUyN2MyZWVkMTM2NTcgcmVsZWFzZTIzLW1haW50CiszNDA4MCBkYzUxYWJjM2YxNzQ2ZDUxOGI5MDFlNTQ3NGViZWZiZmI4NzEwZjc3IHJlbGVhc2UyMy1tYWludAorMzQwODEgZGIzMWQyNWIxMzdhNDMzNjg1ZDYyZGRiZDVkZjljZDY3MWFhOGFlNCByZWxlYXNlMjMtbWFpbnQKKzM0MDgyIGNmN2ZhZDlkNmZjYzM0YTg4NzVkYmIzN2FhMTllYzM5NWZkZTg1ZDUgbGVnYWN5LXRydW5rCiszNDA4MiBkMDVhZjE1NjJjNjRmMTk4MTZiMjZkOTU4ZGI5ZjRjOGYwZDQyMjA3IHJlbGVhc2UyMy1tYWludAorMzQwODMgNGFhODRhOGIxZmU0OTdkNzI0NTZjYzY0OWZkNjgxMzQ2ZTY0NmFhNiBsZWdhY3ktdHJ1bmsKKzM0MDg0IDNlZGNjZTBlZmM1NGI4YzI1NDZhN2I0YzFjMjBmNTU3MGFlYzVjZTkgcmVsZWFzZTIzLW1haW50CiszNDA4NSA1MTU1YjM4NTAyZDQ4MzFhM2VkNTE2ZjEzMWZkYzgxNWM1NDA1M2RkIGxlZ2FjeS10cnVuaworMzQwODYgMzVmOTI0OTY1MGU2YjVjOWQ3OWI4ZjM5ZDgyYmFmMWU2YzFhNjVjZiByZWxlYXNlMjMtbWFpbnQKKzM0MDg3IDBjMzY4ZWMwY2NjYjQ0ZGU2NWNkN2NjOGNjMjI3MjlkMTZhYTkyNmQgcmVsZWFzZTIzLW1haW50CiszNDA4OCBhY2NjMjUxY2RjNGE5ZWMwYWM2ZjI4MDUyNjFhMTY1M2ZkMDNkNDE5IGxlZ2FjeS10cnVuaworMzQwODkgYTUyYTA3NGU4YWU1ZGIxNTRmOWVjMDBkYTUzOTFjZGIwYmJlN2Q3NCBsZWdhY3ktdHJ1bmsKKzM0MDkwIDE5ODdiODU1Y2QzYTBjM2UyMTU4MmZlNzRkMTZmMTM4ZmJkNDVkM2IgcmVsZWFzZTIzLW1haW50CiszNDA5MSBmZTFjZDM3OTVhN2E5M2FlNmVhZDdkMDI2MmM0ZDE1ZTRhMDFlNDY2IGxlZ2FjeS10cnVuaworMzQwOTIgOTkzZTNjYTM0NjU2MGMxZTFiZTI4MzJjMjk5YjVlYTkzMDFkODhiNCByZWxlYXNlMjMtbWFpbnQKKzM0MDkzIGYxNWExMWNmODUzMTYzY2VlYTFjYjU0ZjIwYWE3NDAyYWZjODk0ZDkgbGVnYWN5LXRydW5rCiszNDA5NCAyODBiMGExZTMxZTM2NDFjNDlmNGY5NzQyYTNmNDExMjgxYWVkNzg1IHJlbGVhc2UyMy1tYWludAorMzQwOTUgMWU4NmYyZjcxMmYyMTkzZjg2MTIwZDZmMDIwOGU2M2NhMDMzZmI5MyBsZWdhY3ktdHJ1bmsKKzM0MDk2IDU4ZmZiNmI5ZjZjNTcyZTUxN2I5NzQ0NGFkOGVjNWY5MjY3Mjg4ZjYgbGVnYWN5LXRydW5rCiszNDA5NyBjOTcyZDllNDMxNjg4ZTQ0NjMxNTZjZmNjNDQ4OGM4OGIwMjg2OTIxIHJlbGVhc2UyMy1tYWludAorMzQwOTggNmE5MTAxNDcxYWQzNzFiODExZTdjNzNhM2NkYTA2NThmYWQ1YjY4NSBsZWdhY3ktdHJ1bmsKKzM0MDk5IGFhNzg3ZTM2MTJiYmM2ZmE1ZjcyOTRiZjBhMjg4NWI2ZmQ0Njc1MjUgcmVsZWFzZTIzLW1haW50CiszNDEwMCAwMDM5OTI4YTBmODQzOWJiM2ViMGQxNDAzN2I2NDliNjE4NTc4MmEyIGxlZ2FjeS10cnVuaworMzQxMDEgZTM4ZWM0Y2I4N2U5YzE2NDI3YmY1M2UzMzg4MmE4MzdlN2VlNWM4ZSByZWxlYXNlMjMtbWFpbnQKKzM0MTAyIGQwMzliMWJiMWVhOTdmNTIxMWQ5NjBmZDI2N2E0YmQ3MDNmNDJhZDUgbGVnYWN5LXRydW5rCiszNDEwMyA2MjE1M2U4MjU2NGJhMzEzZDdjNjkzNDNiZTU3NWFkNDNhNDAxYjQ0IHJlbGVhc2UyMy1tYWludAorMzQxMDQgZTQ0YTM1OWM4OThlMGMxNTAzMDc5MTZhNGI4YjdiOTk0Y2U5MDc4MSBsZWdhY3ktdHJ1bmsKKzM0MTA1IDEwYmE2NTY3ODUyZmQwNjhmZjcwMGZjNWU0MzAwYWFlNzkxMmQyMWYgbGVnYWN5LXRydW5rCiszNDEwNiA5NGYyNTI4MzNlMTMxNGYwZTk2NTI1NGMxMjFkNjVlMTAxZmY1MzYzIHJlbGVhc2UyMy1tYWludAorMzQxMDcgZmQxNjAxODQwN2U3ZTUzNDQ0NzlkODcxOWRkNjYzYmU0ZmRmYjZkOSBsZWdhY3ktdHJ1bmsKKzM0MTA4IDk2NzU2OTQ4ZDFjOTI0OTRiOTAyNjg0NjVjNDEyNDYwN2FiODFhNjYgcmVsZWFzZTIzLW1haW50CiszNDEwOSAxMWMzMjA5NWMzMDU2MWMxMDQxZDMyNTExYWE1M2Y0OWZhOTdhNTUxIGxlZ2FjeS10cnVuaworMzQxMTAgYTQzMGJlNjgzYTdhZDMzYjViNWQyMDk5N2MyYThiY2NkN2MyYTRkMSBsZWdhY3ktdHJ1bmsKKzM0MTExIGE2ODc3ZmZkOTU4MmQ4YWUwMzM0NDc3NWYxNmJlNDMwMzMwZjI3Y2UgbGVnYWN5LXRydW5rCiszNDExMiA1NGFiMTk1NWQyNDJlMzQ5ZDc4MjEzNzYzZGI3YmNjNjY2YjcyYjdmIGxlZ2FjeS10cnVuaworMzQxMTMgZGQ5OGYyOWNmYzk4NjMzMGQyOWJhMjc3Y2YwZmZlNzg2Mzc5M2ZjYSBsZWdhY3ktdHJ1bmsKKzM0MTE0IDc3NzNlYTdiMWM2NzQ5MWQ4NTNlZGE0M2JkMzljMTI3ZGY5NGVhMDQgcmVsZWFzZTIzLW1haW50CiszNDExNSBiODczN2EzMTA1MGNhM2NjNWQwYmMzNzM0YjY0NWMwYWE1NDY2MDk2IGxlZ2FjeS10cnVuaworMzQxMTYgNjJhZTIxOTE0NGM0ZjYyY2U1YWZiZWMwMTFkNmY5ZTUzZWMxNDY1YiBsZWdhY3ktdHJ1bmsKKzM0MTE3IDA0NTE3NGY2YTc5ZGIzM2JiMTA3NDM0YTYxNWYzYTcyZDc2YTU3MWUgbGVnYWN5LXRydW5rCiszNDExOCA0MWJiYmI0ODk3NjRjOGM2ZjdkYjM5ZTIyODE3Y2UxY2YyZmI2NmUwIGxlZ2FjeS10cnVuaworMzQxMTkgMzRiZDVjMTk4Y2FmODcyNDkwNjhkZjI5MjkyZDQ4NDgwZTk3MTU0MCBsZWdhY3ktdHJ1bmsKKzM0MTIwIDY4ZTFmODYwNTZiYzM0OWI3ZWNjM2I4MjU0MmVkODdjYmFkMmZkNTEgbGVnYWN5LXRydW5rCiszNDEyMSA1M2YxYzMyZWU2OWQ3NWMyNmY1NGIzMWVhMWU1OGMzNmNmODM3NzFiIGxlZ2FjeS10cnVuaworMzQxMjIgZTE3YzQ0Yzc5YjAzZTcxOTg3NTEwYzFhNTIxNDdkYWU3ZDIzYmY4OCByZWxlYXNlMjMtbWFpbnQKKzM0MTIzIDM3ZjBlMGIxNDAwMzg1NWI5MGEwYWJiZTdmZmEyMjc3YzFjZjc2ODQgbGVnYWN5LXRydW5rCiszNDEyNCAyMGQ5Nzg4NWU1Yzg5MzRkNDlkMDRjZTNkM2YzOGEyM2FkYzIwYzAyIGxlZ2FjeS10cnVuaworMzQxMjUgMjM5MjFiYzgxMjRiYmM1YzA2NzkyNGUwNmMyMDJhZGMxZTYxYzhmMyByZWxlYXNlMjMtbWFpbnQKKzM0MTI2IGM2OGViNGQ0Yjc4NzllMjA0ODJkMzMxYWNjZDJiZDQ3NDA4MjgzM2UgbGVnYWN5LXRydW5rCiszNDEyNyBmNDRkOGFkZGQzZTg2YTFlZTA3MmRjZDlkYWUxODFkYjM2OTVjODMyIGxlZ2FjeS10cnVuaworMzQxMjggMTNlYzhjNDc5ZmYxMDNiNDliMzcwMjExMzQzMTMxYTg5YjhkMzEwMyBsZWdhY3ktdHJ1bmsKKzM0MTI5IDM5YmU5OWM2NzdkNWUyNzg1MjYxNTEzOWZhMjE0MTlkNzE3Mjk1NjkgcmVsZWFzZTIzLW1haW50CiszNDEzMCA0ZDIwNGZjM2FkMzJmMGEzODRkZDZjMmJjOWZkMTBlNjMxNDQ4MjNiIGxlZ2FjeS10cnVuaworMzQxMzEgNzQzM2U3YzllMmNhNDUzMzVjMWZiNjU2NDIxYjFmOWQ0OTZmOWE0NyBsZWdhY3ktdHJ1bmsKKzM0MTMyIDQ2MjdjMTY4NDlhZWRjOWI1NWJlMDVmZWRiZjcwMWNlMzRmMDNkMmIgYXN0LWJyYW5jaAorMzQxMzMgYTI3NGI5MDM1ZDFlYWUyMzkwYThkNzJmOWI1OWQ0MDg5MTM0N2U5ZiBhc3QtYnJhbmNoCiszNDEzNCAxZWRiNTQ3MzgwOWU2YjhmNGU2MjEwNWRjZmM1ZTY2ZWM1OTFmNDk3IGFzdC1icmFuY2gKKzM0MTM1IDk1YWI1NWQxNDI1NmY2ODAyOTIwNjBhNzU4ZDkyYjA5MzA1M2JlN2UgbGVnYWN5LXRydW5rCiszNDEzNiBkODY0ZjMxNjhjYWNmY2I1ZDBiYTY2YWJmNmM1Nzc1ZmE0ODllNzE1IGxlZ2FjeS10cnVuaworMzQxMzcgMmY1ODIyZDBmOGUxNWMwYmJhNWQ1YzkwM2YwZTcwYzc2MTM3ZDRmOSByZWxlYXNlMjMtYnJhbmNoCiszNDEzOCA3OTkxOWM1NTBkZmVkZGFlNzg1MDkxN2JkYjUxOTM4OGFiMzRjYzk4IHJlbGVhc2UyMy1tYWludAorMzQxMzkgMGExNTBlYThjYmVhMjhmNGNiODBjMzVlN2Y0YjI1M2M4YTAyYWZkMyBsZWdhY3ktdHJ1bmsKKzM0MTQwIGMyYzEwZjFlYjhlMmI3NGJiYzg0Y2E0NzZkMTAwZTE5MzRiN2ZmMjcgbGVnYWN5LXRydW5rCiszNDE0MSBjOWNjMzUyNDkzMjJkNzhmMTEzMzU2YjI3ZDQ0MWY1OGU4ZThkYzk1IGxlZ2FjeS10cnVuaworMzQxNDIgYThmMDRjYmY2NTljYjAyNmNjMmI4MWMzZTRjZDBiNGEyYWM0YWYxMSBsZWdhY3ktdHJ1bmsKKzM0MTQzIGNkMGMzZjkxNmIzNGNjZjI2OWU1NmQyZThjNDZlZDI0MTM3NDhjNjEgbGVnYWN5LXRydW5rCiszNDE0NCBlODE0N2Y4NDFhNGFiMmRhM2U3ZGIxYzZlMDk4YjE2NzFmNmVlMDYyIGxlZ2FjeS10cnVuaworMzQxNDUgYzlmOWViMTNlYWM5MzA1ZWJhMTM0ZDgxMWQ4NDU2MGVkYjY4ZjJmMSByZWxlYXNlMjMtbWFpbnQKKzM0MTQ2IDE3MjU0NzBkMGQ0M2NhYjJjOGQxNzAwZmEwY2Y5ODlmYTE3YTA5YTUgbGVnYWN5LXRydW5rCiszNDE0NyBlZDhiM2MwMjgxNzRiMDUyNmJhYTNiZmRiYTNmNTJjYjcxM2U4ZGEyIHJlbGVhc2UyMy1tYWludAorMzQxNDggNmJmYjgyYmZiYjU2Y2RkZmMzMWEyMjFkMzE4ZjExNGUxMGJjOTM2NCByZWxlYXNlMjMtbWFpbnQKKzM0MTQ5IDQxYzJlMTcyM2NkZGQ3YWMxN2M3ZGRhZDA2ZjBmNDM2ODg4NjJmNTQgbGVnYWN5LXRydW5rCiszNDE1MCBlZjRhNzFmNWFmMjIzOGViYjZhYjQ4Y2MwOWQ5YTVkMmZiMWM4MzA3IHJlbGVhc2UyMy1tYWludAorMzQxNTEgMzBlNDk1ZWZlOTBhMzY1ZDIwNTMyNGFmYjY5YjQ1YTUxNWQyZmI5NSBsZWdhY3ktdHJ1bmsKKzM0MTUyIDc4NGUzOGFiZWQ4MjAzMTZlYjA4NjMxNmY2M2YwZDJmNzAyNTE4ZjYgcmVsZWFzZTIzLW1haW50CiszNDE1MyA3NmU5OThhZWU2NDQ2NTg1ZjE4YTM0ZjRiNzBkODE3ODk1ZGFhMGZjIGxlZ2FjeS10cnVuaworMzQxNTQgNTliMGE0OGE1NjQ0NTA3YjNjNjkzYThiZjc0ZDk2MDI5OTZiNjk1OCByZWxlYXNlMjMtbWFpbnQKKzM0MTU1IGY4OWFiNzk4NTNhNzBjMzllMTlmNTNmM2U5ZjU4ODM5NGUyNzkzYzQgbGVnYWN5LXRydW5rCiszNDE1NiAwYjBhZDdkMWRkZDZhOTg1MzBmNGM4YTRjOGMxZGU0N2YzYzU4NzViIGxlZ2FjeS10cnVuaworMzQxNTcgNzJiZmM3ODZhNGY4OTJkNTEzZjMwNWYwN2YwMTYxOGE0MWM0Y2JjOSByZWxlYXNlMjMtbWFpbnQKKzM0MTU4IGE4YTFiZWY0MDdlYjI2Y2M4YmU0YjMxNGM5ZjVjNWE2Yjc1YjQzOWUgcmVsZWFzZTIzLW1haW50CiszNDE1OSA2NjIyMzNlNjZkMjgyZWNhMDdmNzZiZjE2MmViYTk3MWI2NDMxMDQ4IHJlbGVhc2UyMi1tYWludAorMzQxNjAgN2NiNjc0NWJlNTI1YzBhODRlYzBiMTliMTQ0NDZhMDAzNDI0M2JjMyBsZWdhY3ktdHJ1bmsKKzM0MTYxIDJhNDk3MDljMGQ1NjNlNGJkYzI0NjU1MDgxYTE0MTdlNzYyMjg2NTIgbGVnYWN5LXRydW5rCiszNDE2MiA4MzRiYjlhMTU0MTliMGY2MWQ5MWI3ZjczZTlkZjFiMzNmZTNlNGMwIHJlbGVhc2UyMy1tYWludAorMzQxNjMgYjM5Y2I5MjEyZjVjODhjYzIzZTg0OWEyZTc1YjkxMDAzNGIxNjkzYSBsZWdhY3ktdHJ1bmsKKzM0MTY0IGJhMWUwM2NkMmY0MGZhMTJjMzE5ZWZhYzc0NWQ0OGY4MjljM2RjZWIgcmVsZWFzZTIzLW1haW50CiszNDE2NSBhODVhNzAxMmRkZGE3M2NlZjVkMGZkNmZmMjU1ZmNhMzc3MTUzNTBhIHJlbGVhc2UyMy1tYWludAorMzQxNjYgMGNhZDkwOTRlMjNlOWNiNzEyNzkwZWFlOTI2MmZlNTg3YzUzZTMyMiByZWxlYXNlMjMtbWFpbnQKKzM0MTY3IGJiYTdlMWUwZjFjNzUzYTgyMjAwZGQwM2UwZDRmYjEyZGYyMWY3ZTEgbGVnYWN5LXRydW5rCiszNDE2OCA5MWZmNzI3MDNlZDM1YWFkZjY1ZDRkYWE5ZjQxNzcwYzdjYjAwYWFhIHJlbGVhc2UyMy1tYWludAorMzQxNjkgOTIzM2FkMGVhYTk4NDZhYWI3ZTU4ODY1NWVjMmIwZmU3MDdhYmU0YyBsZWdhY3ktdHJ1bmsKKzM0MTcwIDYxZGJhMGFhOWUzNzRkZjIyOTUwZmFkNDkzMTI3YmVhMTM4OGU4YmUgbGVnYWN5LXRydW5rCiszNDE3MSAxZDYzMTA2ZTdkZmE0ODgzYzFjMGE0ZjgwMWEzNTNiNmYzMTk2Mjc3IHJlbGVhc2UyMy1tYWludAorMzQxNzIgZDVjNDViOGRhYTUyYmMxOGZkMDk1ZDcyZGI3ZWI5NTczYWRhNWI0NyBsZWdhY3ktdHJ1bmsKKzM0MTczIDhkMjFmYjJlMjZiMDY5Mzk3MzQ5YjgzMDkxNDI4MTVmYTk2MmI2MjggcmVsZWFzZTIzLW1haW50CiszNDE3NCA2NWJhYzU5YTM5MjgwNjhlN2Y5Mzg1YjdkZDI5YzljM2QzNmMzOTcwIGxlZ2FjeS10cnVuaworMzQxNzUgY2I3MjM2OTkyMGFjYWMxNmIxNDMxYWQ0MjU5YzMwOTgxMDBmY2NlNCByZWxlYXNlMjMtbWFpbnQKKzM0MTc2IGQ3ZjEzYTQ5ZTVlZjY4YTJiNTQ4YWQzNjA5ZGU4NWQwYmM5MmE3Y2MgbGVnYWN5LXRydW5rCiszNDE3NyA1ZjkyZDY2MDdiOWYwYmEyNDU2OThkNTZkNjI1ZWFiNjE2NjQ4ZmUyIHJlbGVhc2UyMy1tYWludAorMzQxNzggMWE4MTc2OTRlY2JkN2U0OWZjOTE1YTVlYmE5ZGQ1NmMxOWY5YmI0ZCBsZWdhY3ktdHJ1bmsKKzM0MTc5IDUxOGNjYzA2NGNiOWYzMmI2YTYxZjQ5YzYyZDAwZWIyM2M2MmE3MDQgbGVnYWN5LXRydW5rCiszNDE4MCBhMzdiMjM3MTRkM2RkZGI1OTZlMWVmYzE1ZTE5MzU0NGRmYWUzMmU3IHJlbGVhc2UyMy1tYWludAorMzQxODEgNTU4NTdhZWJjMjRmMjNmMmYyZTBlODg1MmQ0NGVkMjA0OWY2ZDczMCBsZWdhY3ktdHJ1bmsKKzM0MTgyIDFlMWU2ODVkNjllZjc4YmRiOTkxNzY3MDk4MWVhN2ZmYTJmZGQ0YmMgbGVnYWN5LXRydW5rCiszNDE4MyA5NGQ4MjkzNjc0NzM3MDNiMThkOWRhYTU0YjAzZDAzZWEwNTMxZmY1IGxlZ2FjeS10cnVuaworMzQxODQgMDg0NDA4ZmVlOTYxNGU1NDgzZWZlZjBlNmY1OTJlNWMwYTAzNzY4MiBsZWdhY3ktdHJ1bmsKKzM0MTg1IDQyNWJmMDdlYTcwYjhjMmQxZTZhMWJhOTFmYzliYjNiMjUxMmUwZjkgbGVnYWN5LXRydW5rCiszNDE4NiA4ZGQwN2Y3ZDA5M2I3YTAwNTJmYTczZGQ2MjUxM2I3MGMxOTM4NTBjIGxlZ2FjeS10cnVuaworMzQxODggMTg1YzVmNmI2MTU3ODQwYjA1NDFhYzAxYjI3ODVlNzZiNWMzOTVlNSBsZWdhY3ktdHJ1bmsKKzM0MTkwIGRiYTZlZjMwNGFhNDQwODgwNmYyYWRhMzA4YjdmZDliMjI0ZDk4MjUgYXN0LWJyYW5jaAorMzQxOTEgNzZkOWQxOGVmM2U0OTVhYjBiMGY2ZTM4MmMyMWQ5OTc0ZDQ0OWM0MCByZWxlYXNlMjMtbWFpbnQKKzM0MTkyIDA3ZTY0MGM0MDE2ZGZlMzhkMjI1YWE0MmJkODY4ZWMwOTFkODYxNWQgcmVsZWFzZTIzLW1haW50CiszNDE5MyBiMjkxOWE0YzU1OGM2ZjQwOGEyM2NiNmEzYTlmNmU1NGIxMDZiYmExIGxlZ2FjeS10cnVuaworMzQxOTQgMmYzZjU2ZjEyODBmY2VjZGFjMDlmYzEzMTVmOGQ5MWQxMDY3Y2I3OCByZWxlYXNlMjMtbWFpbnQKKzM0MTk1IDlkZjliZDQzMGMzNmQyYzgzOGMxNmNhNWEwODE2ZjdiZjZiY2RkNjcgcmVsZWFzZTIzLW1haW50CiszNDE5NiA3N2FjNDU1ODBjNDA4ZDU4NjJmNDZmZmIwZTJhZTZjNzY1ZTQ1YjRkIHJlbGVhc2UyMy1tYWludAorMzQxOTcgNTFlODVlOGJmYTQ3MzJhYzk4MDY2OWIzMTRkYjI2MjdkNjNhODljNyBsZWdhY3ktdHJ1bmsKKzM0MTk4IGM0OGEyY2M5Mzc4MGY0MWE3N2FhZmNlYjdhMGE4MTE2MzQ3MDMwNzkgbGVnYWN5LXRydW5rCiszNDE5OSAxYTc5MmYzNmI2OWUzNmE0YzViZWZhNjFhMjM3ZmJmNWJlODBiN2E1IHJlbGVhc2UyMy1tYWludAorMzQyMDAgMDIyNTdmNmE2ODJhNzgzMTdlZjQ2Zjk1ZmYxM2JkNmNlMTQ1Yzg4OSBsZWdhY3ktdHJ1bmsKKzM0MjAxIDFiYzZlZjFmNmJkYjQ3OTFhOTg0NTFmM2U4YmEyN2E1ZTI5M2JiNzUgcmVsZWFzZTIzLW1haW50CiszNDIwMiBkN2JmMTIzMmE4NmQxNDRkNGJhMTcwYjUwN2I2ZDJiMGY4MTk0ZmVlIHJlbGVhc2UyMy1tYWludAorMzQyMDMgYjBjM2Q5ODZmNjNmNzU4MzUzMTBkNjdkYjkzMTk0YzNhODEzODRkNyBsZWdhY3ktdHJ1bmsKKzM0MjA0IGE3YzRhYTgxZWI4NWMwMTBhN2I4NTlkMzczMzMxMTBhMTZiNTA3YzggcmVsZWFzZTIzLW1haW50CiszNDIwNSA3Njk3OWFmYzc4NWJkNjNkMDA2NjFiZmQ1ZGMxMmViMDNkYjZlOTdkIHJlbGVhc2UyMi1tYWludAorMzQyMDYgYWQyNTNjMDZiYWYxZDRhZjJhMzIxMzk3Y2Q2NDc2Y2YyNDEzYmZkMiByZWxlYXNlMjMtbWFpbnQKKzM0MjA3IDA5NjdjYjkwNTM0Y2M2YTdlZTE4NjNiODgwZTBhMzBjNDNlMDQ3YTEgbGVnYWN5LXRydW5rCiszNDIwOCBlMmI5ZDQzNmY4ZjdhZjljYWJmMTBkYTY5ZWUwNjQzZGU4YmY0ZjA1IHJlbGVhc2UyMy1tYWludAorMzQyMDkgM2YyODk2NGY4ZWNjYzk0MDEzZTg2OGQyMzBjNzFlZTVjZDI4ZTJkYiBsZWdhY3ktdHJ1bmsKKzM0MjEwIDg3MTc3NmQzODIxM2E5MDY3YzZkOWJhZjg5MThlYWRiYzE3ZDM4OWYgbGVnYWN5LXRydW5rCiszNDIxMSAxNzc2NTg3ODVmZWI4ZDI2MzE1YTkxZGNlODk3YzZiOTU4ZTI1MjA3IGxlZ2FjeS10cnVuaworMzQyMTIgODM2MGM3NGQwNTNiYWQ1YmJlMDMzOWZjM2NiOWU0MWM4OGNhNjUzNiByZWxlYXNlMjMtbWFpbnQKKzM0MjEzIDVjNWFkYjU0NDNjY2U4OTgxNGJkZTBlZDczMDM4MGNlZDM1NjUxMzggcmVsZWFzZTIzLW1haW50CiszNDIxNCBkNmY0ZGQ1YTUwMDZiOWYxMzY2NzY1NGQzOTM4NTVmN2FkMTI5ZmJhIHJlbGVhc2UyMy1tYWludAorMzQyMTUgMzM5Yzg4MDRmODA0YThlZTQ1MWViODViYjJjMzMzNzdlODM1YjNkNSBsZWdhY3ktdHJ1bmsKKzM0MjE2IDU4ZjAxY2MwZjMwMGFiMThmMTQ4MWVjNDA2NmNmMzc5YzIzZDY0ZTkgbGVnYWN5LXRydW5rCiszNDIxNyA1OGY5NmEwMGQzOGRjMDAyYWRlODE4OGU0ZjRlZTY0MGFmYmUwZjBjIHJlbGVhc2UyMy1tYWludAorMzQyMTggMjU0YmQzZTg5MWY2ZDk1OTFjOTFlMGY4YmIxOTgzMTA0ZjY1MDJjMiBsZWdhY3ktdHJ1bmsKKzM0MjE5IDBlZDFlYWNlMmE2MGJhZWE3NGRjZDVlMTZiZDM5ZGNjY2U2Yzk5MTIgcmVsZWFzZTIzLW1haW50CiszNDIyMCBmNGEwMWM0MDVhNDRiNjE3MDVhMTNjZjc1OTZlNWU5YmRmMjI5NTcxIHJlbGVhc2UyMy1tYWludAorMzQyMjEgY2U4ZDFmOTUxZTE5MmZlYzhmNDY3ZTM1MDRhYmQ0NjU1NzQ5Y2QzNSBsZWdhY3ktdHJ1bmsKKzM0MjIyIGQ3NTU5MmY2ZTJmN2NmZTBlYmQ4NzkzMDE0MzI0MjE1MTk2NTcxODIgbGVnYWN5LXRydW5rCiszNDIyMyA5NTRiNjA5Yjg0Y2QwOTk2ZmI0ZmQzZmI0ZTgwN2RhNzViZjM3MjkwIHJlbGVhc2UyMy1tYWludAorMzQyMjQgNzc0YTlmMjFlZGI5N2Q0NDhlNmE1NTlhNjM1MjY3MTFhOWRhOTA0MSByZWxlYXNlMjMtbWFpbnQKKzM0MjI1IGU5NzIzMGU1YzFjYTkwZjc3Y2EyNzUyNjhjZWZmNDhhZjkyNzQ5MWEgcmVsZWFzZTIzLW1haW50CiszNDIyNiA5MzFlODg4OTkxYmFiNzQxMTA4YjBmODZmOThhMDE2YTgxOWQ3OGJlIGxlZ2FjeS10cnVuaworMzQyMjcgZjNjZTE5ZDk2MWRkYTZlNTNmZTQ3N2I2MDg4NTA1MDY1M2I4YWEyNyByZWxlYXNlMjMtbWFpbnQKKzM0MjI4IDUzODNkNTYyYTM4ZDgxYmUyZThmYmE0MGU3ZTUzZDk5MTQxNDE5ZDQgbGVnYWN5LXRydW5rCiszNDIyOSA2ZTFmN2RiZWNkODRkNTNiNDlmZDgwNDM3YjAzNTBkY2VkOTZhZDMxIHJlbGVhc2UyMy1tYWludAorMzQyMzAgYzk3MDA4ZWU3MTY2MDc0YjA0OTk4MmQ4OTNkNjJkZDdkYTA5MGE4ZSByZWxlYXNlMjMtbWFpbnQKKzM0MjMxIGIyNzI4Yzg3ZGY5ZmJmMjMzNDc4YTNmNzU2ODk2OTBlNjljYWRjMWYgcmVsZWFzZTIzLW1haW50CiszNDIzMiAyNmNjNTg2NWE4MzY2MzNiZjNmMGZmYzNmN2MzNTk0MTg5ZDY0NWVkIHJlbGVhc2UyMy1tYWludAorMzQyMzMgYTFiOTY1ZTFiYmU5ZDhmNGQ4NmI0ZTlkOGMxN2IzNTg1MzRlY2IxMyByZWxlYXNlMjMtbWFpbnQKKzM0MjM0IDgxNmQ0ODY3ZjIxMDY1ZTFiMzkyYThhOTg2OGQxN2Y0ZmQwMDQ0ODYgcmVsZWFzZTIzLW1haW50CiszNDIzNSA3ZTYwZDgyNzMwZmQ4YWQ0MTYzNzE5YzYyNWRjOWFkZmJmOTYwOGY5IGxlZ2FjeS10cnVuaworMzQyMzYgMDE4MmNlYzUwOGFhYjRmZjllODE5YTJkNzdlMTQwNTA2ZjE0ODI1OCBsZWdhY3ktdHJ1bmsKKzM0MjM3IGRiNjNjYjBmYzdkYTE3OWE0YTMyYTI0YmMyYTRlN2ZhMTAxMGZiNmQgbGVnYWN5LXRydW5rCiszNDIzOCA5YzJlYjQxNTEzMGYzNGQzZmU1ZWQ3NDdmNzUzMmYxZDIyODUyNDcwIHJlbGVhc2UyMy1tYWludAorMzQyMzkgNzM4OWZmNTc3ODczOTBiMzQ3MzIxMWQ3ZmQ1NjkwYTE4YmU0MjAzZCByZWxlYXNlMjMtbWFpbnQKKzM0MjQwIGI5MmIzN2IwMWZmYjE2MDgzMzRlZDlhZTI2YzMyMDA1Y2M1NzA4ZDIgcmVsZWFzZTIzLW1haW50CiszNDI0MSBlNWJhY2I5NTk3ZjdiNDRhYTdkYzBkMmQ0MjBhOTU4ZGI2NzRjYzI1IGxlZ2FjeS10cnVuaworMzQyNDIgZmJhZDNlZmE0MGJiZGNmNmQ0Yjk2YTM5ZTA1MmQ2MTZjYTRhYjA3MiBsZWdhY3ktdHJ1bmsKKzM0MjQzIDYyYzZhZmUzN2QxMjNhYTNhODRhMDE3YzkwYmY3Nzc5ZDIxNTNmY2UgbGVnYWN5LXRydW5rCiszNDI0NCA5MjllNTQ4MTc0YzVmYWU5M2JjOTBmNTBiNjIxYTBmYWJhZGUxOTdiIHJlbGVhc2UyMy1tYWludAorMzQyNDUgZGJlODM5MWVkMDZmMjM5YjQzOWQ1Y2UxMmIyYmJiOTcwNDdhODA3OCByZWxlYXNlMjMtbWFpbnQKKzM0MjQ1IGZhNjVmNjUyN2ZlMTM0YWE5N2UwM2UxYjJhZjM2NWQ0NDNiNjdkYzcgcmVsZWFzZTIzLW1haW50CiszNDI0NyBkYTliNzQwN2U1NmMyYWFlOWQyNDY2YzBjNGE2NWQwMGJhOWU0YWU4IGxlZ2FjeS10cnVuaworMzQyNDggYTE1YjFjM2MyMzZhNGIyNGM5NjkyODUwZTBhNDUzZDU1MzU4ZTYxMSBsZWdhY3ktdHJ1bmsKKzM0MjQ5IDcxNzAyNGRiYmJhYzdkODdjZGM0ODIzYzYwZDk5Y2E4YTYxNzc0MTQgbGVnYWN5LXRydW5rCiszNDI1MCAyYTE2NWRkZjIyMmRjNDI5Yjc1OGUyNzcxMjU2MDc0ODI2OGRlOTY3IGxlZ2FjeS10cnVuaworMzQyNTEgNTI5MGE0OTM2MTcwZGM4OGZjMzhmOGY3MzYyYTJhNGM1ODNlMDIwMSBsZWdhY3ktdHJ1bmsKKzM0MjUyIGJiODI1MTFkMTkwNmEyNzk4YjIwNThkNTkyZjZiNmU4OGEwMTUxZWQgbGVnYWN5LXRydW5rCiszNDI1MyA2OTNkMTdkZmI4ZmQ0OGQ1MjI2NGFiZDk4MDU2NzQ4N2RiODk2NWE5IGxlZ2FjeS10cnVuaworMzQyNTQgNTYzOTA4OTFkOTg4Yzg3NTllYTEwYzkwNGQzMTQ1NzFlMTgyMGJkOCBsZWdhY3ktdHJ1bmsKKzM0MjU1IDljZDRmNGFlN2E0YzJiOGNkY2UzYWE2NGE3YzE0NzcwZjlmNjZjNmUgbGVnYWN5LXRydW5rCiszNDI1NiA1ZWM0MjMzZWRjZWRjNDcyNTVhNGQxMWM3ZjBkODY2MjJlZmJiMjA1IGxlZ2FjeS10cnVuaworMzQyNTcgNzAzNzgyZDkwMTYxM2M2MDhhYTY5NTIzYzJiZjVlNTcwOWIyYzgzYiBsZWdhY3ktdHJ1bmsKKzM0MjU4IDVkMmJhNDM3ZTFiZDNiMzRhZDU3NWNhNzNlODlmZGJlM2MxZjkwNmEgcmVsZWFzZTIzLW1haW50CiszNDI1OSBlMmY1MGE3Y2M0OTRmOTA3NDkyODFmMzNiMzhjZWJiZGQ2ZWYzNTgzIGxlZ2FjeS10cnVuaworMzQyNjAgMmNlOWY4OWM0YmJjOWI1N2I0Zjk3ZDc2NzJhYWY5MTRjOTkxOGMwMSByZWxlYXNlMjItbWFpbnQKKzM0MjYxIGRkZTI3NmE4OGM4OGEwZDRiYTI1NjkzMTQ3OTdkY2VhYjRjODZjMGIgbGVnYWN5LXRydW5rCiszNDI2MiAzNjFiNTBhMGQyN2ZhZDdiNGNmZWNmZmI4NmYyMWVlNTY5YzY2OWY5IHJlbGVhc2UyMy1tYWludAorMzQyNjMgMzMyYmZmMjc1YjIxOGM0ZThkMWQ3ODNhZDIyZjM3M2E0MTNlOGQ4YSByZWxlYXNlMjMtbWFpbnQKKzM0MjY0IGFkMThmNWI4ZDZmNGM2MWIyYWE3Nzg2YzU0NzVmMjE0ODVhNDNlZmEgcmVsZWFzZTIzLW1haW50CiszNDI2NSA4YzlmNDhiYTUwZmExNjUxMjg2ZDg2ZDcxNzA1YTM2OTM5MmEzZGI0IHJlbGVhc2UyMy1tYWludAorMzQyNjYgMDQ1NzA0OWYyNWUwYTBhMTc3YzNlNTE2MDA0M2Y4YzU3N2JiNDE0OCBsZWdhY3ktdHJ1bmsKKzM0MjY3IGI3YTIxMzVmYzE1NmFhNjFhNzEwMmU2MDYxOWNhOTQ1Y2E3Y2RlMmIgbGVnYWN5LXRydW5rCiszNDI2OCAwMzJiOTI1ODg4NWI3MTgyOTNlNGM3ZWIzOWM0MDdiMzRkZWRiMGMyIHJlbGVhc2UyMy1tYWludAorMzQyNjkgYTU2NzFhZWNmMzkwMTNjNmM2OTA1MDRjNzQ4NTZhOTZhNjJhMDdlOCBsZWdhY3ktdHJ1bmsKKzM0MjcwIGE1NjZjNDliNzBmYWY5ZjY3NGI0N2YyNGYxM2Q0ZTQ5OGYwMTg3NmEgcmVsZWFzZTIzLW1haW50CiszNDI3MSA4NTI5ZWFjNTA2NWQyMTY5N2ZlN2Y3NWEyYjE5MTBiMzRhZmE3MTc4IGxlZ2FjeS10cnVuaworMzQyNzIgZDk2ZTdmODJkMzk5OTk5NGJhOGU1NmE0NDA4NTQ1NjEwMDQ0NjE5MCByZWxlYXNlMjMtbWFpbnQKKzM0MjczIGUxYmFhMjQ5YjNmMjNkOTIyNDllNWJjYjQwZGZlZGYwNDMzOGNkZTUgcmVsZWFzZTIzLW1haW50CiszNDI3NCA2ZjMzNDNkZTY1YjIyYzczMTZhNzZjNjY2ODc2YzBmYzhmZjAzOWIxIHJlbGVhc2UyMy1tYWludAorMzQyNzUgMTJkYTM0ZWY4ODU0ZmIxMzRkZjFmODg3NjdhZjM3YmJmODk2MTUyOCBsZWdhY3ktdHJ1bmsKKzM0Mjc2IDdmNDhlODk0MzllMGJlZGMzM2NhNmE5MTc1MmQ1MzY0Mjg2Y2NiNGUgbGVnYWN5LXRydW5rCiszNDI3NyBkZDQ0ODU5NDNmMjNmNDg1YWE4MDcwZjg5Y2E3ZmQ5NzA5YTM4ZmI2IHJlbGVhc2UyMy1tYWludAorMzQyNzggOTRiNGZjZTdhOTk4YjIzODJiZDkyNmExYzNiZWE3ZWU1MmZjZjFjZCByZWxlYXNlMjMtbWFpbnQKKzM0Mjc5IDZjMDQwMmRhZmIxOGNjNThhYjdlOTliZmIxODUyNDg3NzYzMWRjYWQgcmVsZWFzZTIzLW1haW50CiszNDI4MCA2M2FlMWI5MWE4Njg1NWFkZGM0YWVmNDU5MjI4NDBjMjQ5MDdjYTkxIGxlZ2FjeS10cnVuaworMzQyODEgMDM1Yzk3ODNhNGRkYmFmYTE3NGU2MDdkMjU0Yjc2OGY3NjBhYzk0YSByZWxlYXNlMjMtbWFpbnQKKzM0MjgyIDg1NDA3MTJkNmUyZDMxNzVjODFhOTExZDA3ZTY2MmI5YWFmOWYyMjEgbGVnYWN5LXRydW5rCiszNDI4MyBlMThjMTBjYTc0MDgyODY4ZGFlZjYyZWFiMzJhYzhiNWNjMzEzMWRkIHJlbGVhc2UyMy1tYWludAorMzQyODQgNTliODUxYjZhZDMzYTU3ZjUxMDU2YzczMTZiNzBmNzMyZTBkMjk2ZSBsZWdhY3ktdHJ1bmsKKzM0Mjg1IGE1M2VhYmUwMjcyOTg0N2NhZTQ4Yjg0NWNmZjhlODAzZTJlNzhhYTUgcmVsZWFzZTIzLW1haW50CiszNDI4NiA3YmM1MWJlNzVmZWJmZDcyMjdlODJhOTA3NjM0NDZiMmYxODhhYTZhIGxlZ2FjeS10cnVuaworMzQyODcgM2QxYWUxYzg2ZmQzOTM2NzE3NTRlMzI4ZTBjYTczMDkzYzNiNDc0OSByZWxlYXNlMjMtbWFpbnQKKzM0Mjg4IGU2Y2VhNzdhYmVlMzZmZjFlZjE5NzE0NDhjNGUxNjE5ZWUyZjhhMTQgbGVnYWN5LXRydW5rCiszNDI4OSAwNjE2NGM2ZGM1MDlmMTRjM2RhOWM0MDE1ZWFlZjQwNjc2Zjg2MzE3IGxlZ2FjeS10cnVuaworMzQyOTAgYmQ0YzRiNmUwOWExNzI0NDc2YjFiMTliZWQxZWNjZTU0YTI0MmE1MCBsZWdhY3ktdHJ1bmsKKzM0MjkxIDBjOWFhN2U1NTQxNTdjNThjZDgxZjZjZGQyNGQxZTA1OWQyMmU5MDQgcmVsZWFzZTIzLW1haW50CiszNDI5MiBmYzdlZjRmZGUyN2ExZWRmZGZjMDdkNTQ1NjZkZjUxNzVkNGU1OTg3IHJlbGVhc2UyMy1tYWludAorMzQyOTMgYjk1Nzk3NmNkOGU3ZGI0NjA1ZjVkYzAyZjRmNWQzMDI4MjdiZGM1OCByZWxlYXNlMjMtbWFpbnQKKzM0Mjk0IDU4Yjk4Zjk4OGEwODE5YTBkMzE1NWJiYTdkODhkZjg0Y2I0Mjk2YTUgcmVsZWFzZTIzLW1haW50CiszNDI5NSAzZWY4N2EwYmJiYWQwNTI2MjI0MDIyYWM1ZGZhNTI4NzQwOWNkMjU2IGxlZ2FjeS10cnVuaworMzQyOTYgYWIzZTc3MGMzYTk5YmZiNzcxNzIxMDI3NzIyYzNlODRjOGVmZmExMSBsZWdhY3ktdHJ1bmsKKzM0Mjk3IDk4YTZiNjAxNTIyOTk2MzJlODQ4MWUzYjkzY2Y3YWI2ZDJlOGI1MTggbGVnYWN5LXRydW5rCiszNDI5OCBkMzRiNmY5MmRkMzI1ZDZiZGM2ZWI4ZWU3NjEwZmJkYzIzOTZkYTI4IGxlZ2FjeS10cnVuaworMzQyOTkgZGFmOGM5MzI3ODZkMjk4NGY1ZTkyOTc1MjQ0OWJkNDFlYmEwODZmZCBsZWdhY3ktdHJ1bmsKKzM0MzAwIDM0MTc1ZTk0MDgxY2E5NmFlZjhjMjJkNWNlYThmNDQ2YjZlOWM1N2QgbGVnYWN5LXRydW5rCiszNDMwMSBjOTUxZjljMzA2ZjMyNGY3N2M4NDQxMWYxYzYzNTFiM2FlNzc2MjNkIHJlbGVhc2UyMy1tYWludAorMzQzMDIgY2RkYjdjOGRiMzY3OTE1MTNlOTk3YmIyN2UzZWE4OTZiNWMwY2U5NCBsZWdhY3ktdHJ1bmsKKzM0MzAzIDY3Y2QzZTdkMGVhY2Q4OWM4NTFkMjlhNjRiYjJiYWJlMmQ3NThlY2IgbGVnYWN5LXRydW5rCiszNDMwNCBiNmMwZjkwOGJlYjgwOWYxYzdkNWRhMGUyMjA0N2JhODc1ZmZmNmFjIGxlZ2FjeS10cnVuaworMzQzMDUgNzQxZjc5ZjEwMTJhMGViNDMzNDk1ZDJiNmE0Mjk0ZGMxZDkwZjFlMSByZWxlYXNlMjMtbWFpbnQKKzM0MzA2IDIwNzEyNGY2YThkN2IyZDRjMTUzNTI2ZTVhNTU3OTI4OTY4YTdhMzcgcmVsZWFzZTIzLW1haW50CiszNDMwNyBmZDU0MDIyMGZmYzRmMDgwMWVmNjliZDQ0MjhmODZlZjFkZDIyYmY3IHJlbGVhc2UyMy1tYWludAorMzQzMDggM2UxYmY3NTEwNjQxMTBkZTMxOGFhYWU1NWJmMTUyOGFjODYxOTY4ZSByZWxlYXNlMjMtbWFpbnQKKzM0MzA5IGM4NzZhYzRkMDMzNzE5NWY4Y2FjN2QzN2U0ZjRiODdhZWQyNjA1ZDYgbGVnYWN5LXRydW5rCiszNDMxMCA2M2M2NDA4OGZmNDk4MDA1NjU3MjE0ZTFjNDYyNmE1YjM0YTIzZTc2IGxlZ2FjeS10cnVuaworMzQzMTEgMDAyOGVmNDVhNTBlYTU1YWNhN2NiZDNlYTc3Yjg5MDhkYjhjZTdjMyByZWxlYXNlMjMtbWFpbnQKKzM0MzEyIDZkNzUzODMyNzQzNDJmMDAzNWYwZTNmODgzNDQ5NDUwMmE0NWJhODggcmVsZWFzZTIzLW1haW50CiszNDMxMiA3ZDczNjJhNzEyNTNiZmY0ZmMxYjBjODI1YzE0NTY5Nzc4ZGI4YzM2IHJlbGVhc2UyMy1tYWludAorMzQzMTQgMWI5YzNhOGM0OWRiNjhiZmVjOGFhNjU2NjFjMDU0NzFiMDM2YzM3YyByZWxlYXNlMjMtbWFpbnQKKzM0MzE1IDBjNmZlNThhZjdkMTI0Nzk3MjM4NjMxMTFjZWFiMWJiZWNlNTE2ZDAgbGVnYWN5LXRydW5rCiszNDMxNiA2Zjk3ODJjYzI3NTBkMjg2ZWU5YzY2ZjBhMDQ4YmE4YzA5NWM1YmJiIHJlbGVhc2UyMy1tYWludAorMzQzMTcgNmNmZDk3ZDdmZTk4ZDc4MjYyMzM1YWM2MjE2MjhjMTQxMWJmYmIwYyByZWxlYXNlMjMtbWFpbnQKKzM0MzE4IGZiZjZlZTU3NjlkNDJhMGRmODNlOGE5NDQ2MzhkYmYyOThiMmQ2MTMgbGVnYWN5LXRydW5rCiszNDMxOSBkM2ZiNzViYzYzNTZlOWNkNTUxMGEzZmMzZmJkZmRmMDcyZGJkZmM1IGxlZ2FjeS10cnVuaworMzQzMjAgZGU4NTUyZjBhY2M1NzY0M2RkNjFjMjg5MWRjNDMyY2QxNTA3NjAyMCBsZWdhY3ktdHJ1bmsKKzM0MzIxIGJiZTYzYTg3OTY5ZmRiZjY2MTdmNTcxZjVhM2IzYTY2ODZkZGUyNjcgcmVsZWFzZTIzLW1haW50CiszNDMyMiBjOTgzMDIyMjUyOTIwZDM0OTMwYzBmOWQ5ZTRkODdmZDQ5YjQ5NGQ0IHJlbGVhc2UyMy1tYWludAorMzQzMjMgODI3MDBhN2U5ZmE0YjQwZGUyMDg1Y2EyNzU2NGQyMTFmZGZmOTU1ZSByZWxlYXNlMjMtbWFpbnQKKzM0MzI0IGE2NzNkODVmNWFkMGE1NWE1ZDkwODUzYzliZDQ1ZmVlZTY0NWRiOWEgbGVnYWN5LXRydW5rCiszNDMyNSA2NmZkODI3ZmUxZDg0YmE2ODM5YmQ0NDE3NDk1ZmEwOWYwYWRiYWU3IHJlbGVhc2UyMy1tYWludAorMzQzMjYgOWU2MTY0MTk4YzQ1NzIzYjM1NzdhNmIwMzFkYjlhNmJmODFlMWM2MiBsZWdhY3ktdHJ1bmsKKzM0MzI3IGM3M2YxNjIyNWE3MWFkZjAxMGMyMjYxNjMxN2RiOGI5ODJkMzBkNDcgbGVnYWN5LXRydW5rCiszNDMyOCA3YmQ2YzZiNTNmODcxNzBhZWFjMDNiZDdiM2RmNmRlMDQwZjg2ZWE2IGxlZ2FjeS10cnVuaworMzQzMjkgYjFjNTY5NmFkNDc1ODU4NDRhMmE4NWY5YzM0NmQwYjA5NjVkYTVkYiByZWxlYXNlMjMtbWFpbnQKKzM0MzMwIDI3OTU5YTAyZDM5ZGU5YzFhMmU4Y2U4ZmU3ZWU1YTZlZDQ4ZWZhZmUgcmVsZWFzZTIzLW1haW50CiszNDMzMSAxMDc5YmU1ODdiYWEwNzk2MmMzNDEzZTM5ZDg4OTAwNDhkNjE2NmM4IHJlbGVhc2UyMy1tYWludAorMzQzMzIgZDQ3Y2M2ZjcxZjMyYTMyYzE2N2FjOTYyNmE0ZWI3OTU2MGU4NTNiOCBsZWdhY3ktdHJ1bmsKKzM0MzMzIGI3ZDAxZWZmZTg5OTUwYTgzNDJmNmZmYTdiMzk2YzkyZjcxZTZiZGMgbGVnYWN5LXRydW5rCiszNDMzNCA4NDczMWVlYTZkYjkwZmUyOWNmOGZkYjNmYzk5YzljYWI5MTQzOTNlIHJlbGVhc2UyMy1tYWludAorMzQzMzUgZjI5ZjEwOGFiNDllZWI1ZGEyZjM1MmRhNDZkMzk2YmJkMjc0ODI4MCByZWxlYXNlMjMtbWFpbnQKKzM0MzM2IDVmZjI0ZDVkOWU5MjJiMDJlYjg4MTExNWI5MjE5N2ExMmY5NjBjY2QgbGVnYWN5LXRydW5rCiszNDMzNyBlNzNmM2EwMzI3NjM2YWQ4ZDY2YzgyMzVlOWU0M2JlNjdlZjBiYzcxIHJlbGVhc2UyMy1tYWludAorMzQzMzggNTczYTQwYmVjMDcwNDJhNjYxNTYzZmMyZmFhM2UxOWM0YTA0OGEyNCBsZWdhY3ktdHJ1bmsKKzM0MzM5IGY0ZGVlMDE1YmY4NGMyYzZjMzIwNzU4YmU0M2YzZDRhMWYxZmU0YWUgcmVsZWFzZTIzLW1haW50CiszNDMzOSBiZTI1MzNmYjEwYTU4N2M4ZGE4OWIxOGM1ZjM4MWY0NzhkNzIwNTkzIHJlbGVhc2UyMy1tYWludAorMzQzNDEgZTVlNjA4OTJjM2UzNTdlNWU3NDNjYjY0ZWM3MGMzNDU5NjI1ZDdjNCBsZWdhY3ktdHJ1bmsKKzM0MzQyIDE4ZTIzOWYyMzAyOWQ4MGU4NzMxNDlhMTkxM2ViNDk3ZWIzMzdlZjYgbGVnYWN5LXRydW5rCiszNDM0MyBjNGUzYTZjYWNmY2FiZmFlYmFjZDhlZmE3M2VlYjhmOWU5N2ZmYWZkIHJlbGVhc2UyMy1tYWludAorMzQzNDQgMmVmOGQ2MmRjYzA5MTA2MTBkY2ZmYTk0MjczODMwMTc5ZjlkMTM1OCByZWxlYXNlMjMtbWFpbnQKKzM0MzQ1IDkyMDA3MTJkMzFlNzkwZWMxOWM5NjRjOTYxYTg2MWZlMzA1ZTY3MGEgbGVnYWN5LXRydW5rCiszNDM0NiA4MTdiNmUwZjQ4ZDFiYTg3NDMzMzkzYzM4NWU2NDMzYjk5MTRjNThlIGxlZ2FjeS10cnVuaworMzQzNDcgZjlkZmRjYjg5N2JiNjY0YTQxYThmMzc0N2E1ZmJkYTRkMzk0ZTdlNCBsZWdhY3ktdHJ1bmsKKzM0MzQ4IGMxYTY3MmVlMTUzMDM1MmVhMTYwMDU5YTMzNTgxMjllYWZjMThjNjAgbGVnYWN5LXRydW5rCiszNDM0OSA3ZmQ1NTNmYjQzMTUwMzdjNmExMWFmOTA5YmM0ZTc3ZjNiMjE4NWE3IGxlZ2FjeS10cnVuaworMzQzNTAgMDQ3MWM2N2Y2MWJkNzk3NjUxMTU4YmFmZTI1MjRmYThjYzgwM2VjMCByZWxlYXNlMjMtbWFpbnQKKzM0MzUxIDBkNDAxNzg0NjIxYjRmNDk4NTIzNTA4YmI1Nzg3NGQ3ZTkzZDdmNGIgbGVnYWN5LXRydW5rCiszNDM1MiBhMzAxNWJiYTM5OTliZGMwM2YzMTdmM2YxMjNmNTUwY2VhNmU2OTBhIHJlbGVhc2UyMy1tYWludAorMzQzNTMgMzllNjM1ZGEyMzI2YTU3ZWU4MGQ0YmZhOTFmYTM4MjhjYzlhODY1NiBsZWdhY3ktdHJ1bmsKKzM0MzU0IDVlYTBmZDI2YmQzNjQ2MmRkNjViYTU0N2Y4NzkxOGVmODRkMjViZjMgbGVnYWN5LXRydW5rCiszNDM1NSAxNTQzYTg0MGZjN2YzYTBhY2M4YTliZWZiNmE4NjFmNzU3NGNiNjQwIGxlZ2FjeS10cnVuaworMzQzNTYgNzE3NTdjZWEyNTdmMzY5ZjBkMTJhMDNmMzQ0Yjc4ZWQ1OWY4MWY5MSByZWxlYXNlMjMtbWFpbnQKKzM0MzU3IDA0NDc5OGQ4YmJmYzdiNDg0NWNhMDMwY2EwNThlNzNiMDM3ZTcwMTEgcmVsZWFzZTIzLW1haW50CiszNDM1OCA4NjMwZGQ4YjVjYjQ2NzMxZWRhN2M3ZDNlYWE1ZmRlMzQ4YjVmYzgxIHJlbGVhc2UyMy1tYWludAorMzQzNTkgMjA1YTI5M2YzZGUwODAyZTcwZGNkMmZkNGZmYWMyNjRkZDRjN2Q3YiBsZWdhY3ktdHJ1bmsKKzM0MzYwIGQwYjhjODNjMmE2YjY5ZDIwNGYzM2QyNTYyOTU1OTdjZmJkYTRhOWYgcmVsZWFzZTIzLW1haW50CiszNDM2MSBhNmZiNjgyMjgxNGFhYWY2MWM2ODA2YTgyMmU1ZjY0NmVhNjZhZjFkIGxlZ2FjeS10cnVuaworMzQzNjIgMWVhZGU3N2VhOWVhNzlmYWMxY2Y0NWUwZGMxMjRiY2I2Yzc2Mzk0ZSByZWxlYXNlMjMtbWFpbnQKKzM0MzYzIGQ3OWJiMjlmZjk2Y2MwOTQ3NjM5YWExYmQ2MDA2ZDk0Y2RlOTJkYjkgbGVnYWN5LXRydW5rCiszNDM2NCA4ODQxZDM0YTJjMzdlYjk4OTI5ZDMzZDU4NmVkNGFkYWNiODU5ZWM3IGxlZ2FjeS10cnVuaworMzQzNjUgY2EwMzAzMjA5NjNmNWZkNTAxMjc3NGFiOGZmZjExN2FlYjBkYzQxYyBsZWdhY3ktdHJ1bmsKKzM0MzY2IDZmZGVlM2Y5ZWNlM2FiN2NmOTZiYWI2NjRmNWRkMzZmY2MyN2NmYjQgcmVsZWFzZTIzLW1haW50CiszNDM2NyBhZDYzMDZkMzVjZTNhMTk1ZDY5ZjYxODE4NTBhNzI3N2IzYzcxNTI2IHJlbGVhc2UyMy1tYWludAorMzQzNjggM2I0N2Q2MDU3MTUxN2VjMjA3YWM2NWIxNzY3MzNkMjc5YTQ2MjI3ZiBsZWdhY3ktdHJ1bmsKKzM0MzY5IDA1NWE4MDg4MWU5NmQ5MzZmMTQ0NTMwNGIyMzljZWVjOGNkMTBiZjggbGVnYWN5LXRydW5rCiszNDM3MCAwZTBiYTkyOTU1MGMwM2M3YTFjZjE0ODlkMDMwMWViMjUwNTMzYTA5IHJlbGVhc2UyMy1tYWludAorMzQzNzEgODE0MWVlYWQxOTA3M2Y0YWE5MTQxOTcwYWI3YmNiYmEwMzViZWY2YiBsZWdhY3ktdHJ1bmsKKzM0MzcyIDE0NGJjOGZkOTExZWU5NGNkMDA5ZWZmOGYyYjcxMDRkOWE1MTJkMTEgbGVnYWN5LXRydW5rCiszNDM3MyBmMDBhMzJlYzQxMzkzMDA0YzUzZGU5NWM0ZGI0OGY5ZWJhOWY5ZDEzIHJlbGVhc2UyMy1tYWludAorMzQzNzQgYWNlZjRlMTZjZWFlNDgzMGE2YjdhZDA0YTI4YjZhNDgxZjVlOTk5ZSBsZWdhY3ktdHJ1bmsKKzM0Mzc1IDM2OTkyY2E5MThhMzQ5MzNjNzEzOGIwZWFhYWM4YjBmZTk3YjI5MTEgbGVnYWN5LXRydW5rCiszNDM3NiBiYjNjZTZhZWU2OTNlY2M0ZWJiNDE1MmFiYzFiODgzMDY3MmI0NjdhIGxlZ2FjeS10cnVuaworMzQzNzcgNmVmMjQ1MTM2MDM4OWFmOTc3NzBmOGU3ZTBkMzY3ZTJkZWUzOGZhZSByZWxlYXNlMjMtbWFpbnQKKzM0Mzc4IDVjMDE3NGUyZTE0ZjQ1MWY1Zjg2MDc4OWYxMzVkOTk5M2RiMWM3ZGUgbGVnYWN5LXRydW5rCiszNDM3OSAyOTg4ODhlMzk1Y2UwYzA1ZjM3NGZiY2M0YzEwMmE4ZTIwNTVlYjQyIGxlZ2FjeS10cnVuaworMzQzODAgNDc3NmEwNWU2MzBiNWZjMzhmMDFlOGQ5ODNjM2I3ZjNkNDg3NDQ0ZCByZWxlYXNlMjMtbWFpbnQKKzM0MzgxIDU4ZmU2NGY3ZmIxOTNhZWI4ZjIwMGEzMTk2NDFjM2Y5MTkxNTdkMzcgbGVnYWN5LXRydW5rCiszNDM4MiA0MDA2NzQ5NTgwMjVlOWU0ODE2NDgwYmZiYzQ2MmQ3MDllYWNkMDhiIGxlZ2FjeS10cnVuaworMzQzODMgMDYyYzI1NWI1N2E4ZTIyZTk3MzYyNWY5MWRkODczMDQzZTI5NWY5YSBsZWdhY3ktdHJ1bmsKKzM0Mzg0IGQ1YzMyMzFiYTViYWE0MTYzMjAzOWM4Y2ZhNzQ5ZDkyYjE0MjI4MTcgbGVnYWN5LXRydW5rCiszNDM4NSA3ZjYxMzRmOGJkMDZmZDNmYzY4MjhjZGVkZTJlZDk3YWM5NDI3ZTM1IGxlZ2FjeS10cnVuaworMzQzODYgYWRjNjAwMTU2NzBhZThjMjNkYjNlM2UxOGU5NDBlMzk1NzUzNTE1MSBsZWdhY3ktdHJ1bmsKKzM0Mzg3IDQxYjdkMWYwNTAwZjBlNGMxNTA0ZTJkNmY5OWUxMzI5N2IwMmM2ZjQgbGVnYWN5LXRydW5rCiszNDM4OCA2MDQ4MzBmMWNhYTY1NTI2Y2E4OWQxOGFiODBjZTJiZDlkYjY0MjU3IHJlbGVhc2UyMy1tYWludAorMzQzODkgYTc0MjgyMWQ5ZTc1ZGM3YWVhYWQ4ZjA2N2RlMzgzZjY3OWNhZmFkZCBsZWdhY3ktdHJ1bmsKKzM0MzkwIGZjZTgwYWQ4MzQ3NzA5ZjFjMWE2N2RkMWI0YTZjYzY1ZTNhOTMwYjcgbGVnYWN5LXRydW5rCiszNDM5MSBmZGYwYTk3YmFiNjAwZDU5NWRiMGMwOTI2MTA2NWE2MDk5NjQ3YWQ3IGxlZ2FjeS10cnVuaworMzQzOTIgY2YwMmMxN2Q3ZjQ0OWJjNWYyYThhNGJmODU0OTBkNTk3NjM5ZWE2NSBsZWdhY3ktdHJ1bmsKKzM0MzkzIDgzN2VhMTg2MzdiYzE5MGZlNTk3ODZmNzI2OTNlYmUwZTgxN2Q2ZWYgbGVnYWN5LXRydW5rCiszNDM5NCA0YTBjODllNWUwNTY3N2JlNzhkNDNmNzNhMWZkODg5YTliOGVjY2U1IGxlZ2FjeS10cnVuaworMzQzOTUgYzIyNmY4NGQ3YTY2ZTJhYTgxNjY1ZTMwZWM2ZGMwMmY5OTFiYzMyZiBsZWdhY3ktdHJ1bmsKKzM0Mzk2IDk2OTFjYzY0NDE2MDA3YmRkZGMxNzdiZDFiZWE2ODI0ZDdkNzBhNjUgbGVnYWN5LXRydW5rCiszNDM5NyA0NzNmNGUyOTU5YTgwNDNkOWJjYmQ3NDQzZWNiYzMxNGMxOTY1YmVhIGxlZ2FjeS10cnVuaworMzQzOTggM2I1OWZhNWQyNWIxM2I1YzY1ZTA5NjA3OTQ5YWMwNmFmOTA4NmRkNiBsZWdhY3ktdHJ1bmsKKzM0Mzk5IDBkZGVjYWY4Yjc1Y2JlY2EwMDY2MDA0ZGYxYzNkYzMxZTUxYWJkZjIgbGVnYWN5LXRydW5rCiszNDQwMCA2YzM4NDA2YzNmYWQ4NDEyOGU1ZmJiNzU3NTJhOGVjODdhNDVjYjFhIHJlbGVhc2UyMy1tYWludAorMzQ0MDEgMDA2MDE1Nzg0NGQ4N2JlMmFjZTdlOTUzMjZkNzUyMDA3YTBhMjliZSBsZWdhY3ktdHJ1bmsKKzM0NDAyIDhlYTgzMjYwM2U0ZmViMTdlMTllODM4MDVkNzdhY2FhNDQ0ODk0N2MgcmVsZWFzZTIzLW1haW50CiszNDQwMyBiNDkxYmJmMTdkZGU4YTE4NDU2ZTM0Y2MyYjdmYzRmZjAyOTI0ZjE2IGxlZ2FjeS10cnVuaworMzQ0MDQgNTAxYTc5MzQ2Nzg0YWU2MjZhOGI0ZjBjZDA0OThkZWEwN2NhMTU4YSByZWxlYXNlMjMtbWFpbnQKKzM0NDA1IGZkMDUyYzRmODg0ZjQ0MzBjMjgzODAyMmVhNWJjZDg5OTVhYjFlNTIgbGVnYWN5LXRydW5rCiszNDQwNiAwNGY0MThhZjY4MGQwN2Y0YjQwZTQ5NjFhZjQxYjBkOGZhMzA2Y2NjIHJlbGVhc2UyMy1tYWludAorMzQ0MDcgYTNlODY2NjVmMjQ1YWM1ZDdlNWViZmI3MjJiZGViZmJkYzE1YzhmNiBsZWdhY3ktdHJ1bmsKKzM0NDA4IDQzODhiYmFkMGJjMzdhZTk0OGMyM2EwYmE0ZTMxZTI0N2E2NjI3ZDMgbGVnYWN5LXRydW5rCiszNDQwOSA1YTFkM2JjNmNjMTgwMmUwMDgzNTU3NmFmMDdkNTcxMjUwZDVhYmQ1IGxlZ2FjeS10cnVuaworMzQ0MTAgMmNiNGYzMjE3OThjZDZmMDQxOGM0MTE5ZTEyNTlmN2E2NDYwZGQ3OSByZWxlYXNlMjMtbWFpbnQKKzM0NDExIDM0MjliMWQzOGI0MDBjNjBlMGI4NTBmMDE4ZDZkMTkzNGQyNDRhMzYgcmVsZWFzZTIzLW1haW50CiszNDQxMiBmMWMzMGJmYjBjYzEyNjE3ZTJlZTBhMzQxYjlmYjc0NWU5ZWFmOTY2IGFzdC1icmFuY2gKKzM0NDEzIDc5ODk3ZWQ1M2YwMzZmMTc5NTE1YjU1MzQwZDRhNTczNjhhOTMzN2QgYXN0LWJyYW5jaAorMzQ0MTQgMTM0NWMyM2EwNTkxNjA1MDNiYjUzYmI4ZmE5NDY1Yzc0ZGNlYzZhMiBsZWdhY3ktdHJ1bmsKKzM0NDE1IDNlM2ZkNTZjZTU5NThjZDQ3ZWU2MGU2N2E4MmUyMDY3OWVmZDMzMTYgbGVnYWN5LXRydW5rCiszNDQxNiBlZmVkNDg5ZGY1NDU5YTgwMWIwY2I5OTM1MzRlNDg4N2JkYTgwZGE2IGxlZ2FjeS10cnVuaworMzQ0MTcgNTIwMWY2NmM5MmVmM2NkZWViMmEzNzhjM2M1MmRiY2Y0MjhlM2E3YSByZWxlYXNlMjMtbWFpbnQKKzM0NDE4IGMzZGZkYjYwYjk4OGY4Mzg5Yzk2YmEzZTJmMGJiMDkxMzM1NjU4MWYgbGVnYWN5LXRydW5rCiszNDQxOSBjOGI4ODIxZTg3MmQxYzhlOTE3Njk4ZDdlOGUzMmRjODhiOGU2ZDk4IHJlbGVhc2UyMy1tYWludAorMzQ0MjAgODI4MmFhMWY5MzQzN2M2NjZjMzBkMWM0NmZiZThkZjM0NDZmZjI2MSBsZWdhY3ktdHJ1bmsKKzM0NDIxIDA0YmNmZGNmMjkwYTE1MDljYzc1YzgzNmI4OWJiYjA2YTE4ZTY5YmIgcmVsZWFzZTIzLW1haW50CiszNDQyMiAzZmYwMzQ0NmYzNjJhZWVmYzlmYTkwNzBlNmM4ODgwMWQyNWFiZDRiIGxlZ2FjeS10cnVuaworMzQ0MjMgYmUwY2EyNmFkNTc0MGVjNjQzN2E3MDYzYjc1MGQ2YWVkYzk3ZDcyMCByZWxlYXNlMjMtbWFpbnQKKzM0NDI0IDllMjFlNTZiZjVmM2NlMThmYzFmZDZjNzE4MWJiMzU2MzBkNzNjMTMgbGVnYWN5LXRydW5rCiszNDQyNSAzYTk5Mjk0YzhlNWI1ZTM4ZDFhMTc0MDE5ZmU2MGMxZjU2NDBlMWE2IGxlZ2FjeS10cnVuaworMzQ0MjYgMWQ1ZDcyNDM2ZjJhN2M0MmJhMzg4Y2E2ODI2MDc4NzVmZTllMDkxZSBsZWdhY3ktdHJ1bmsKKzM0NDI3IGEyMzRkYWYxOTgxMGFiM2E4NzljODZmMzZiZGNlODBiOGI0NDI0MmQgcmVsZWFzZTIzLW1haW50CiszNDQyOCA2ODc3Zjc5N2NmMzYxNTFhMWI0MzJlYmMwMTBjMzQ2NjRjYjZhNDRjIHJlbGVhc2UyMy1tYWludAorMzQ0MjkgYTY2MzQzMDlkNzBlZTZlYmFjOTkzNjQwZTk2OWI0ZjM1MDViODYzMCBsZWdhY3ktdHJ1bmsKKzM0NDMwIDljN2UwMjI3YzgzNTY4ZjNkODBjNTQzMmNkNjYzMGNkNmJkNGM0MTYgbGVnYWN5LXRydW5rCiszNDQzMSBiMTFkOTczYWJlY2FjYmJkYzBjZDg1Mzc0OTYyYjdlN2M4ZDhiMzQ2IHJlbGVhc2UyMy1tYWludAorMzQ0MzIgYzEyZDRmMTg1M2JjMDAyYjNkNjMwNzkyMmIzN2JmMDlkMTUxY2E5NSBsZWdhY3ktdHJ1bmsKKzM0NDMzIDA3YTBhMDcyNjY0OTk0NjcxMGU5YWM1ZGNkMWZmYmEzMWFmMWFhZmQgbGVnYWN5LXRydW5rCiszNDQzNCAxMmU1NDkyOTVmN2Y1ZGZmYzI0MTljNTgyYjg1ZTE3ZTdkOWVmNjViIHJlbGVhc2UyMy1tYWludAorMzQ0MzUgYTI4YTgzMDAzMWE5YWIzMjJlZjk1YTFjYmM0OTQwZjExMzY0ODRiNCBsZWdhY3ktdHJ1bmsKKzM0NDM2IDdkZmRmOWU4ZDk1ZDM3MDExMDg3N2E2ZjdjZmE4YjNkNzk3NDNkNWIgbGVnYWN5LXRydW5rCiszNDQzNyAyYmM3OWIzYTk1M2RmZDg3ZWE0OGE0MDg4YWQxN2YzNTJkZGE0MTc2IGxlZ2FjeS10cnVuaworMzQ0MzggZjgwZDgzNzc4NDBmMmVkNTEzMGUyMjk5ZDY2Y2IwZjYyZjU2ZmVjMiBsZWdhY3ktdHJ1bmsKKzM0NDM5IDY1MWZjOGQ5OGQ5OWI1MGY3ZDlhYWVkN2I1Y2E3YjZjY2VhM2I1Y2EgbGVnYWN5LXRydW5rCiszNDQ0MCA2ZjE1ZTczYjU5ZjJlM2EwM2YzMTc4NzQ1MzU1Y2Y3ZWQyNjhmNTk0IHJlbGVhc2UyMy1tYWludAorMzQ0NDEgOTVkZjYwMGFiOWJkZWI1MWMxMDE4OWIzYTFmYWE3YTE4MGE1OThkMCBsZWdhY3ktdHJ1bmsKKzM0NDQyIGU4N2Q2ZDc2ZTM2NTc1YzEyOTUwZDdiZDdhNjJkY2I3MDhkNmI4NzUgcmVsZWFzZTIzLW1haW50CiszNDQ0MyAxMDI0YzViZjdmZWU5MTI5NDE1OTE5MmNjZTNjMWE3ZWYyYTkyY2IyIHJlbGVhc2UyMy1tYWludAorMzQ0NDQgYWQ1ODIyOTc3MTUyZmU3MzYyMDQ1ZGI3Njk0MzlkMDgzZDg0M2RiYSBsZWdhY3ktdHJ1bmsKKzM0NDQ1IDk3N2VmYWE4NjM0ZTYxZjRiOWU4NjI1MWI5NzNjMTg0ODZkMmJjOGMgbGVnYWN5LXRydW5rCiszNDQ0NiBiMTA4YzQ0MmEzNzQ0MTU0YjE3ZGU4Yzc2MjdjYWU3OWMyNmY2MmJkIGxlZ2FjeS10cnVuaworMzQ0NDcgMGVhNDEwNDhiMmQ0NzUyNTg4ODAyZTc5OGE0NjcwYTFkYzgwZTJmOCBsZWdhY3ktdHJ1bmsKKzM0NDQ4IGYwZGEwY2FkNWNkNTFmNDdmZmEzY2ZhNTI2NmYzNzNhODM5NDk2ZmUgbGVnYWN5LXRydW5rCiszNDQ0OSA0NGY5ODAwMjE4MWZiMjkwNjkzMmY4N2JhY2VmMTM1ZjRmMTg3MzQyIGxlZ2FjeS10cnVuaworMzQ0NTAgOTQ1NWRlZmYxYzdjMGVmOWUwMmVlMzRjNzhlNWQzYjVlMWM3Y2FkNiBsZWdhY3ktdHJ1bmsKKzM0NDUxIDkxNmY3ODJlZDZkNTBjNmJmOTAyOGVmODVlMjM5Nzc5NjlkYzUxMDkgcmVsZWFzZTIzLW1haW50CiszNDQ1MiA0MjQ0NTE3MjkyOGYxZmFmNTFhY2ExNWM4YTQ0NWZlNmMzZmVjMjE1IGxlZ2FjeS10cnVuaworMzQ0NTMgMGU4MDc3Y2IzZGQ1YTE2N2JmNzI4NWFmMzI1MmYzYTI5MWMzMWYxZSByZWxlYXNlMjMtbWFpbnQKKzM0NDU0IDM4YjBiN2Q0MTkzNmIxN2ZmZjJmMDk0YTA0NWU1N2RkM2UwOWFhOGUgbGVnYWN5LXRydW5rCiszNDQ1NSA5MDNiMzFkNzcyMWExZDU2YzAwYzczOTBjMzE0N2ExNzI1MTY0MTU0IGxlZ2FjeS10cnVuaworMzQ0NTYgMzhiOTRjMDViODViOTJlNzZjMTljZDZmMTE2MTNlZTQwZTU5MmU2MCBsZWdhY3ktdHJ1bmsKKzM0NDU3IDQ5NGQ1Y2YwYmJlM2UyMTEzNjQyMzUyZTNiZDY1YmE5ZDI0NWUxNWUgbGVnYWN5LXRydW5rCiszNDQ1OCBiYzhmMjJjNTM0MmNhMzdjZTRmMmZkYmYxODkxM2MwNjM4NTkxMzMwIGxlZ2FjeS10cnVuaworMzQ0NTkgYTgxMGJhYjg1ZmJjNGQwYTRhZWRiZTI0Y2I2Mzg2MjA1MjE0ZTU1NSBsZWdhY3ktdHJ1bmsKKzM0NDYwIGY4NzQyNDNlZTM5YmEyNmU3MWM4MzFlMmY1ZWQ4YWQyOWMxNDA4NTIgcmVsZWFzZTIzLW1haW50CiszNDQ2MSAwMDEyMDliODE4YTY3YzkxOTFkMGM4NTY1MjA1MDEyNjdmNzJjMGQ3IGxlZ2FjeS10cnVuaworMzQ0NjIgZGJlNzg4MjIzY2U5NjhlZjVlYzk2ZmUzYTY4MDIyZGU5ZGQ2YjU4OSByZWxlYXNlMjMtbWFpbnQKKzM0NDYzIDBjNjJjMWFjOTY4NGRiMzE3ODU3OGE1M2VlOTQ3YWU0NTZjNjI0ODMgcmVsZWFzZTIzLW1haW50CiszNDQ2NCA3N2Q1MzA4YmVkYWUxMTQ0YjQ5YzdiOWViZWZlMGM3Y2EzZGU4YTQ0IHJlbGVhc2UyMy1tYWludAorMzQ0NjUgNjI0OGRkNWQxOTJhODA1ZGNiOTY0YjU5MmYzODA3NDA5ZDc3ZDFmNSByZWxlYXNlMjMtbWFpbnQKKzM0NDY2IGZhZTM0MzU3NjFhZjlmNTg5ZGViOTQ4MGU2MTY4OWNiZTk4NzcyYzkgcmVsZWFzZTIzLW1haW50CiszNDQ2NyAxZDkyZWNkZjJiYjE0Y2Q5MTRjYzYwY2Y2OGNhZmIzZGQzYzliNDYyIGxlZ2FjeS10cnVuaworMzQ0NjggNmZkZGU5NmE3MjIyN2EyYzZlNTgwOGRhNzZkMTQxYTY2ZGI5NTExZSByZWxlYXNlMjMtbWFpbnQKKzM0NDY5IGQ3NzBkYzI2NDIxMmRlN2NlNTZiOWExYmIwYjIyZTBhMTFiYmUzODIgbGVnYWN5LXRydW5rCiszNDQ3MCA2OTE0YjVlMjA3NmYyMjRiNzdkYTVjMmM1OWY1Mjc1NmRlYmRkYWY3IGxlZ2FjeS10cnVuaworMzQ0NzEgOGIyZWFkZmI4ZjBjZGRjMzJiZGRhOTk2ODdiZTQ2NmZmZjAwZjJjNyBsZWdhY3ktdHJ1bmsKKzM0NDcyIDRkNzllODQ5MGM3NmU2ZTY5NDhjYjlmNzk0OGIwNmUwMDI0OWZjMmUgbGVnYWN5LXRydW5rCiszNDQ3MyBiNjkwMmMwYTc1NzgyZWRiY2U5NzVlZGEyMmYxYTBlOTg4ZWI4MDNmIGxlZ2FjeS10cnVuaworMzQ0NzQgZTBlYzY0NGY1YjM2YzQ1ZTNhNWNmZTllZDBjOTNhNDFjN2Y0NGM0OSBsZWdhY3ktdHJ1bmsKKzM0NDc1IDI2YmMwMTk0NGFlOGVjOWU0NDFkZTMzYjI5NWEwZmY4N2I3NWYxMmQgcmVsZWFzZTIzLW1haW50CiszNDQ3NiBmNzcyZDM0MDNjYTdkMjQ4NDJmMzI5ZTBkNDNiZjRiYTcwNmZhZDQ5IGxlZ2FjeS10cnVuaworMzQ0NzcgYTA1NDVlMzJkYWU3ODg0MTNhYTdkYWZhMWFmZTg3MDcxYjg3NzhhOSByZWxlYXNlMjMtbWFpbnQKKzM0NDc4IDBmZTMwNzEwZGE4MDYwYjA4ZmY2MzlhMDVlNGY0OTUxNzgzZjU5ZTcgbGVnYWN5LXRydW5rCiszNDQ3OSA4ZmJiMDYyM2I4NTc4ZDk2OWJiMzg5ZjdhNjVmOGMwYWM4NDY2ZjYyIGxlZ2FjeS10cnVuaworMzQ0ODAgNDhiOWNjNTE3NDJiOWJmM2U5N2M0MmIzOWY2OTkwOTMwY2ZkODM2ZiBsZWdhY3ktdHJ1bmsKKzM0NDgxIGI5NDhlNzc1YTc5ZWUwYmM0MjViNmZlNjc1MTg0NmIxNzI1ZjYyMTggbGVnYWN5LXRydW5rCiszNDQ4MiBmZTNmNTU5MjMwNWRjZjRmNjFmNDMwY2EyZGE5MmYwYTc5ZWJiZjExIGxlZ2FjeS10cnVuaworMzQ0ODMgOTgyZTNlNDBiZjFlNTg2NDk0Njk0N2ZlZDYyZDg0NjljMjFhNDdmMCByZWxlYXNlMjMtbWFpbnQKKzM0NDg0IDc5MGVkNWM1OTljM2Y0MmZhZGJmNGEyMDExZjM4MWNlNTAwZGNkMjIgbGVnYWN5LXRydW5rCiszNDQ4NSAyNzk3MzY5OTBhMTRiZTM0ZTdlZjcxYTczNDkwZjNmNmIzODNkMGQ4IGxlZ2FjeS10cnVuaworMzQ0ODYgMmJjOTVkNDlmYzdhNjBmOTlmZmIyYzlkYWJhY2JjMDJjYjljYWQwYyByZWxlYXNlMjMtbWFpbnQKKzM0NDg3IGUwODQxYjVjZjJmZDFjMWJlOGQwMjBiNmI1YTQ2MWM0YzJiMWRiMGQgbGVnYWN5LXRydW5rCiszNDQ4OCBhNjg3OWQxNzMzZDdiYzJkMzQ3MmI4OTBhODRjMjI1NjRkYWFiZjM0IGxlZ2FjeS10cnVuaworMzQ0ODkgODk3YWZjYWNiYTAwNzJkN2FhMTc3OWM0MzUxMWU0NWUyYmIxYzJlMSBsZWdhY3ktdHJ1bmsKKzM0NDkwIDk1ZmQ1NTU0NWNhYzI2OTg0MTZlNmYxZmMxYzRkZjMwZmViYmI3N2IgbGVnYWN5LXRydW5rCiszNDQ5MSAyZDk4NzEwZjI3MmVjZTZiZDA2YzZmYjFjMTE4ZDk0NWRmOGJjNTU5IGxlZ2FjeS10cnVuaworMzQ0OTIgMDYyODU3ZjY5MjdmNzkzYjFmMjRjODY0N2E5ZjU4MzVjNzZjZDg1NiByZWxlYXNlMjMtbWFpbnQKKzM0NDkzIGRmOWQ4ZjdlNGM5YzM1MzAwODA3MjA0N2QxYTU3MjA4ZDFmZGI5NTkgbGVnYWN5LXRydW5rCiszNDQ5NCA2NWJiZmRhMjQ2YzkzMDhjNWZhNDEyNzVjMjM2ODE2MjhkYWRjM2M3IHJlbGVhc2UyMy1tYWludAorMzQ0OTUgM2UzZDUzOTYzYzg4ODFiMDdjOTI5NzZmOWJhNWU0NmU3YWJiMjMxOCBsZWdhY3ktdHJ1bmsKKzM0NDk2IGVlZTA3ZjMwZWYwNjhjMTBjOTNiYTMwYWMzMWNmMTFiNzhlNmFiNzkgbGVnYWN5LXRydW5rCiszNDQ5NyBmMmU2MWQ5OTA5NWU3MzE2ZjRmM2IyMTE5Y2UwZjhiMTFjNGJlMjNmIHJlbGVhc2UyMy1tYWludAorMzQ0OTggNzQ3NDdmNjJmMjg2YTg2MWJhMWVjNWQ1YjdmNzQ5N2U0Zjk4OGE3YyBsZWdhY3ktdHJ1bmsKKzM0NDk5IGY1MWRjOTAyNmU0ZGY5YmVlY2ViMDU4ZWU1Yjk4ODcxYzViZDU4MjUgbGVnYWN5LXRydW5rCiszNDUwMCA0ODMzYTljZDM3N2VmMWZhZDFiYTYwNzY2ODZlZThkNDZkNzA1MGMyIHJlbGVhc2UyMy1tYWludAorMzQ1MDEgMzcyODVhMDM0NmMxNGNlYWMyOWE2NTFjYzA1NzU5ZTM2YTc5NWU1YyBsZWdhY3ktdHJ1bmsKKzM0NTAyIGQ5OTZlMmRjYmQzYTdlNTdmZWE3YWI1MmQ1NTJhOTAzYmEyNDAzZmMgbGVnYWN5LXRydW5rCiszNDUwMyAyMjVkODQ4YTVmOTY4Yzg4ZDk2Y2Y3NzVhODEwZGNjZDlmMDNlZDRjIGxlZ2FjeS10cnVuaworMzQ1MDQgZWEwNTg1MDQxMDRjZDcyNmQwOGMwZTdhOGFiZmVjMWU4MzExZjllZSBsZWdhY3ktdHJ1bmsKKzM0NTA1IGMyYWU5MWE4N2E0OGFjNjU5OTNhYTQ1ZGM5NjJlYWFiMThjMDEwNWYgbGVnYWN5LXRydW5rCiszNDUwNiA4NGZmMTNiY2M3NTAyZjBiMDcxZjg2YTVhZGFlMjBhZThlNmVmNjMzIGxlZ2FjeS10cnVuaworMzQ1MDcgYTYwMDhiNzBjOTM5MzRiNzhlNTc1NGZjYzJiNmJhZDRjNDkyYzcyZiByZWxlYXNlMjMtbWFpbnQKKzM0NTA4IDRjOWE2N2NmMjgzM2E5ZmVmMTcxZDI3NGRlN2ExNTZhNmZlNDc4MzIgbGVnYWN5LXRydW5rCiszNDUwOSA3YmJlZTk5NDIyYTAyZWM3N2Y3NTliMWM1MTY1ZTFlMTBiOTEwNTQ4IHJlbGVhc2UyMy1tYWludAorMzQ1MTAgYWM5ODVkNzc2NjUwMTcxMDkwZWZjNjY2YThkZTcyZWM3ZjIwYzI1OSBsZWdhY3ktdHJ1bmsKKzM0NTExIDQxMzliNDVhY2ZlZDAxN2NlNzU2MWU3ZDY2MzVhYjk5Y2EzN2M1N2QgbGVnYWN5LXRydW5rCiszNDUxMiA5ZGE1MzcxNjdiNzQ5N2JmZjNmNWUyZGUwNjM5NzcyNDI4MWYxNzczIHJlbGVhc2UyMy1tYWludAorMzQ1MTMgOGViODk4ODE0ZmI5MTc0NDljZWRjYjQ3ODE1MjNkMWMxODQ2MjI1MCBsZWdhY3ktdHJ1bmsKKzM0NTE0IDdlOTMxNDkyNmRiZTJjYzViNTg2ZjU1MmNmYjE5YzJkYzRmNDAyMDQgbGVnYWN5LXRydW5rCiszNDUxNSA3ZWRlNzcyZjAzZDNiYzFiNzQ2OTRjYTNlOTc0NmRkMWIwYjAyNTc2IGxlZ2FjeS10cnVuaworMzQ1MTYgMDM0YWU0OWY5YjdhZWFmOTEzMGU1NzNlNzZjNjM3NTc5MjFjMGM0ZSByZWxlYXNlMjMtbWFpbnQKKzM0NTE3IGFmNDQzZDgyMGE1MDY3NzJjN2E5MGMyY2E5NDdjOWM1ZjU1NWY1YTYgbGVnYWN5LXRydW5rCiszNDUxOCBjNDJjNDAwMzQ1MzZjYzljMjZmMTIwNWNmZWQ0OGQ2Nzk5ODY1MzNhIGxlZ2FjeS10cnVuaworMzQ1MTkgYjRiOTQ1YzVkYTRkNzQ1YTNlNTEwYmEwYmRmYjBiOGI0Nzg1OWMxOCBsZWdhY3ktdHJ1bmsKKzM0NTIwIGFlY2JiYTAyOTRiYjUwNjM3OGViNGJlODBiODgwNGExZGFiMWZmZjggbGVnYWN5LXRydW5rCiszNDUyMSBhYzhjNzcxNmE4NWRhZmJmMmI2NzhjZWYzNjM4MGJlNjBmOGRiZDQ0IGxlZ2FjeS10cnVuaworMzQ1MjIgNmE4N2VkNjM5NjdjMjU5Zjg0MDdkZWMyMGNiZjgxMWY5ZmU4ZjFlZiBsZWdhY3ktdHJ1bmsKKzM0NTIzIDYzMTExOGI5YWVjNjJhZGM0Njk2ZmM0N2VhODg4Njc5NWRmNjJmMDEgbGVnYWN5LXRydW5rCiszNDUyNCA3YmE0M2VmZDBjZWIzMmE0OTg2N2VkNjY4ZThmNTg4ZGJhOTlkMTRkIHJlbGVhc2UyMy1tYWludAorMzQ1MjUgODMyZjNhOTg5MDU4YTZmYzRmODg4NDdlYjQ0OTQ5MDE2MDgxYjJhOSBsZWdhY3ktdHJ1bmsKKzM0NTI2IDhkYjY0YWJmODU2ZjhjNDRhNzVlYjU5OTFhN2ViZWRkMGNlNmQ2ZjkgcmVsZWFzZTIzLW1haW50CiszNDUyNyAyY2JhMGRlNzBkZjYyYmViODVjNjg3MDZhMzJlMzk4ZWE5OGY2ZjUyIGxlZ2FjeS10cnVuaworMzQ1MjggMWZiZmU5ZGMwYmE4YjkyYWMxY2VjOGY5MGE5MmVmYTFlYjJjYjhjNiBsZWdhY3ktdHJ1bmsKKzM0NTI5IDc4NjNlYmNmZjEyMWYxNTc2Mzg5Y2JhYTg4NDA2MjQ1YWNlMTc3NzUgbGVnYWN5LXRydW5rCiszNDUzMCBhMGQyOTc4NTYyZDVlMTJmOTUyM2UxYTNlNzNmODM0Njc1OGYyMjM4IGxlZ2FjeS10cnVuaworMzQ1MzEgNTY1Mjg0OWZiZTI5NjAyMTFlNDUzMDY5N2EyNTAwZGQ2NmEyYTJhMSByZWxlYXNlMjItbWFpbnQKKzM0NTMyIGM4MDQxYjBlZWIzY2IzMmI2NTg3ODljN2Y4MWI4NDBkNWI0NDliZDkgcmVsZWFzZTIzLW1haW50CiszNDUzMyAwN2U3YTAyMDYxZDg3YzU3NGU0MDE2OTQ4ZWMwZjBlMTQ2MGRiN2ViIGxlZ2FjeS10cnVuaworMzQ1MzQgMTUxMDI0NGJlYjVlMGU2ODNlZGQxZDM5NGY5OWY0NmVmZjkwN2UzNiBsZWdhY3ktdHJ1bmsKKzM0NTM1IDQ0ZTlhYmQwN2ViMzFlMjczNmNmMDk4MDVmMzE3MzVkNTZkYzU1NzcgcmVsZWFzZTIzLW1haW50CiszNDUzNiA5ZDhhY2RiNThmOWMzODg5MmYwMTc2ZmQ1MmM5ZWRjMjBmOGY0YzU4IGxlZ2FjeS10cnVuaworMzQ1MzcgNTI4Y2MwZmRkYTQxY2QxZjNjYjkwNDUyNDVlZmFiMGJiMTBmYTc1NSByZWxlYXNlMjMtbWFpbnQKKzM0NTM4IGVjMWE0YTI5ZDI1ZGE0NTg4YzEzMTBiZjQyMWE1N2Y2MjM0NjFiNzggbGVnYWN5LXRydW5rCiszNDUzOSA4Y2Q2OTFiNzM4NDUyNzJjZGEyMTBiZjhhZTZkMjJjZGY2ZTVlOWE3IGxlZ2FjeS10cnVuaworMzQ1NDAgOThjODU3NmI4ZGE3ZDI0MDAyZDgwNzYwMDA1ZWZjMzE2ZWIwM2RmOSBsZWdhY3ktdHJ1bmsKKzM0NTQxIDY0MjJhMzk1MDA0MDFiZjc3ZDk5ODBlMWQ5MmEwYzcwMmEyYjA4M2QgcmVsZWFzZTIyLW1haW50CiszNDU0MiBkMTUzM2NhNzhkOGNjYTg1YzFjZWY4ZmM4YTc4NTBjZTZhOGVjNzdmIHJlbGVhc2UyMy1tYWludAorMzQ1NDMgZmFjOGM2M2M3ODM4MWFiNmYwNGRhZjczZjZiMGYzN2ZhNWJkYjZhYyBsZWdhY3ktdHJ1bmsKKzM0NTQ0IGI1ZjY0YmU1YjIxZmRjZWU3ZDZlODg4OGE2YjhhNDYzNjQwZmM0YjYgcmVsZWFzZTIzLW1haW50CiszNDU0NSBlNTlhYjcwOGJiYjBjYThiY2ZiN2RhZDk0NmNlNjcxMjdmYWE4YjMwIGxlZ2FjeS10cnVuaworMzQ1NDYgOTgzM2FhNWJkZjM4N2M4M2NiYWUxNzQyMjliMDhkYWEwNzIyMjJmZiBsZWdhY3ktdHJ1bmsKKzM0NTQ3IGNiYmUzZjhiZGVmNmYyODNhZThiMDM4NDAwZjQ4MDFiZWM2NTc2NGEgcmVsZWFzZTIzLW1haW50CiszNDU0OCA4MjdkMDFkZjYxYTcxNmE4YzMzZDEwZTMxMTE3ZDI5N2I2NTMwMTAzIHJlbGVhc2UyMy1tYWludAorMzQ1NDkgODlkYzA2OWFhZDJjNzkzNzdhN2MxMDBlZTE0NGM0YzE0N2Y3NmYyNiByZWxlYXNlMjMtbWFpbnQKKzM0NTUwIDNjZDkyMDZkZmI3OTI5MDY0NDVmOWQ4NDQ1YTczZDhmZjA3ZTU2OGQgcmVsZWFzZTIzLW1haW50CiszNDU1MSBkNmMwOWE5ZDcyNDFkNmU2MDVkZGQwMjNhMzQ4ZDRlNmVmMzQ0ZDA3IHJlbGVhc2UyMy1tYWludAorMzQ1NTIgNTYyMTQzYzFjN2FlZGFkZjU4NDBiMDFhZGQyMzM0OGEyNTQwYmMzYiBsZWdhY3ktdHJ1bmsKKzM0NTUzIDUyMmEzZDdlMGE5NjIyOWRjYWFlYjI0YTA3YzIyMDFiYWMyYmE1NWIgbGVnYWN5LXRydW5rCiszNDU1NCBlNjc2Yzk1ZTQ4NDQ4NzBlNWU1YTVlNjhmNzk4NWQ5Y2JmNWNkMDk3IGxlZ2FjeS10cnVuaworMzQ1NTUgMTliYjFiMmZiMjMzOGRmMWQwNzY5YjlkYTg2NThhODA5NjgxODUxMyBsZWdhY3ktdHJ1bmsKKzM0NTU2IGZlZWM0NGYxOWVjYzc4ZGNiODkyMGExYzZmNTBiYTgwMDgzNThiNmMgbGVnYWN5LXRydW5rCiszNDU1NyBmZWY2ZmRlYzUyOTI1MjNmMGM4OGQ5MDI3YmI5ODg3OGQ5YTBmNTBhIHJlbGVhc2UyMy1tYWludAorMzQ1NTggYTk5NzYxNGIzNWRjOTc1YzM4NTZjZWIyYjRkNDYzMzcyNjU3NmU0ZCByZWxlYXNlMjMtbWFpbnQKKzM0NTU5IGZlOWE1YTJkZDJjMTUxNGRlNjIzY2VmZTIyNzA4NzNjNWRkYzQ0ZGEgcmVsZWFzZTIzLW1haW50CiszNDU2MCAwOGMwMmEyNjVkYmQwZGQ5YTE1MTBlMDA2MThlMDQzZTM2N2IzM2Q2IHJlbGVhc2UyMy1tYWludAorMzQ1NjEgNGU1NmZiYTk4ZjFlNDUwOGI2ZmUyNmI2MDI0MzlkYmYxOGI3Y2UyMCByZWxlYXNlMjMtbWFpbnQKKzM0NTYyIDU3Zjc0M2ZhMzIwN2UwOWE1NjMwOGZlN2M2NzYyYTBiYWI4OTM4NGYgcmVsZWFzZTIzLW1haW50CiszNDU2MyAzYmU0M2FmOTkyYTZkNzJiOWM2ZGNmY2FlMTFiOGY1NmRkZWJjZGQwIHJlbGVhc2UyMy1tYWludAorMzQ1NjQgZTVkMjIxZjhkNDEwYjM3MWRkYzYxODM5ZGQ5NWViNGI0MmMwYmVlMCByZWxlYXNlMjMtbWFpbnQKKzM0NTY1IDkzMWE1OGYyN2ViYjA4NWZlMzllOTM3N2NlODQ2YjVkZDFjYjYzYmMgbGVnYWN5LXRydW5rCiszNDU2NiAyNjI4MjNhMTJjYTc1MzMyODA1ZTNkOTQyMGM1OTk0NWFkMGNjY2E0IGxlZ2FjeS10cnVuaworMzQ1NjcgZWQwNThiZGFkMmFkZjZlMmQ3MzY2MmI5OGY1ODE4ODU4YTIzYThhZSBsZWdhY3ktdHJ1bmsKKzM0NTY4IGRjYWU2MmQzNTg4NDkzNDcyZjU1MWM2ZTJhOWE0OTkxY2JhNWQ0NzEgcmVsZWFzZTIzLWJyYW5jaAorMzQ1NjkgMDgwZGYwZWRiMGE0YmNhYzQxNzg3ODg2NTg1YzlkOTQ5NmU0MWJjMyByZWxlYXNlMjMtbWFpbnQKKzM0NTcwIGFmNzMxODQ2ZmY3MjgyN2MzMDVhNjhlMTE1ZTEwNDUwMDQ5ZWU1ZTQgcmVsZWFzZTIzLW1haW50CiszNDU3MSA4YTc1ZjliYTliYWJiMTAwYTljMDI2YzZjZGVkMjcxNzhiM2M3MDFiIGxlZ2FjeS10cnVuaworMzQ1NzIgNGUxOWEyZmYzNzZhMDVmOWQ0NDViZmI2YjRhNmIwNmNiOWM1YWEwNCByZWxlYXNlMjMtbWFpbnQKKzM0NTczIGFkZTk3YjYwNTM1MjQ1Zjc3NmVmMmVhMTU5YzQ1YmU4YjYzNTA3MjYgcmVsZWFzZTIzLW1haW50CiszNDU3NCA3MTM1YzdjYTk4NDJiMGRjZjBhZTEyMDFkOGUxZGEyZjU0ZDUyNzQwIHJlbGVhc2UyMy1tYWludAorMzQ1NzUgNzc2YTc3MTUwNjIwYzI5M2VlOGJlM2NhZDBjZTNiNzU1MzM1NTBkNCByZWxlYXNlMjMtbWFpbnQKKzM0NTc2IGMzMWVhZGI2OTc3OTE0ZWU0ODlmYTQwOGYwNzdhNjQzMzNhMWVjZWYgcmVsZWFzZTIzLW1haW50CiszNDU3NyA5ZjVkZDMwMmJkOTE1MzM4ZmU4NjY4OTU3N2I5NTllMWMyZTcyZjA4IHJlbGVhc2UyMy1tYWludAorMzQ1NzggODIwZDFkMDQzZDNhY2NmNGY2MmExMzhlOTAzN2ZlZDdjNTgxZmZiYiByZWxlYXNlMjMtbWFpbnQKKzM0NTc5IGM4OWZkN2VhZjg3NTQ3Njg4MjUxMDg4ZGNiZWFjMjcxZDFiY2Q4NjcgbGVnYWN5LXRydW5rCiszNDU4MCBkNDVmODk4MWZkZWE5MWZjOGUyMjllN2EyODA3NDkyMTI2ZjQ2ZGJhIGxlZ2FjeS10cnVuaworMzQ1ODEgMDcwYzg5ZWRhODBiZGI1NDM1Y2M3ZTIwZDA1ZjVmYzVhZTFiMGEzNCByZWxlYXNlMjMtbWFpbnQKKzM0NTgyIDY3NjA2ZjljMmQxMTNkZGUxNzczYjg0ZTYwYTVjNTQzOGUzZjgwNDIgcmVsZWFzZTIzLW1haW50CiszNDU4MyA0MWM0ZTE0M2U2ZTZlMThlNDEzMWExZWQ4OTU4YWM0NDgxYTUzZTcxIGxlZ2FjeS10cnVuaworMzQ1ODQgZmU1Y2VhNTFhM2ZmZmZmMDI5YzI2NTZjODJhNmZkNGQ3ZGE5MDc0YSByZWxlYXNlMjMtbWFpbnQKKzM0NTg1IDA0Y2E0ZDFmNzUxZjJhOGEwMjUyZWIxNmM5MjVlM2Q2YTVmYjA3NTQgbGVnYWN5LXRydW5rCiszNDU4NiBkYTUwNTZhM2IxNTI4NDFjZDE2NTk2MDgwZDRkNDcwYzQzZTg3ZWI0IHJlbGVhc2UyMy1tYWludAorMzQ1ODcgMGFjYjk1YWQxOWRjODY3ZmJjNTlmNWJlYzkyMjBiZWM1YzA4ZTNmZSBsZWdhY3ktdHJ1bmsKKzM0NTg4IGU0NjhiMjQ1MWQ1NGIwNTEzMzI3ZTNiNDlmNjE0YzZlYzdmZWViMjkgbGVnYWN5LXRydW5rCiszNDU4OSA5ZDdiN2VlMDQ0NzBlMTllMGFhNjBiMmY3MDM0NTdkNzlkMGEyMDRlIGxlZ2FjeS10cnVuaworMzQ1OTAgZTcwOTFkNTc1NGFlYzAxNTRlYjhlOTQ1YTQyNTQ2YjBkYjAyNjg3NyByZWxlYXNlMjMtbWFpbnQKKzM0NTkxIDFkYjBkZTRjODQ1NDMyM2JmYjA4NzU1NmUwY2MzODIxZmU4ZjdkMmEgcmVsZWFzZTIyLW1haW50CiszNDU5MiA2ODJkMWI2N2M3YjU1MjQ3ODcyNTEzYWYxOWM2N2IxZTJkY2Q3ZWQ3IGxlZ2FjeS10cnVuaworMzQ1OTMgMmFjZDI4YmQ0ZDBmMWZlNjE0ZTMxMGYyNmY3YWM0MzkxMjhmN2Y4OSBsZWdhY3ktdHJ1bmsKKzM0NTk0IGUyYTlhN2ZlZjE4YTMzZjgwZDRhZTcxYzk3MTBlMWEyZWMwODk2YjYgbGVnYWN5LXRydW5rCiszNDU5NSAzZmE5NTM4YWM0OTY3MjdkMDIwZjBlOTMzMGI4OTA5ZTE3YzlkOTEwIGxlZ2FjeS10cnVuaworMzQ1OTYgZjAxNjEzMjdhOTAyNjc4NDEwZDlmOTEwYjBlMjRhYjE2M2Q1ZmQ5MiByZWxlYXNlMjMtbWFpbnQKKzM0NTk3IDRlZDQwYjNmODgwMjM1ZTc1Y2FmOTdhMGUwYWY5ZDY1OGY5Y2U5N2QgbGVnYWN5LXRydW5rCiszNDU5OCBkMzM4OTgzZDA3MTk0N2Q2OTE3Y2U5YmU0N2FhZjljYTNiNDc1M2NiIGxlZ2FjeS10cnVuaworMzQ1OTkgMmU0OTc4NDBjNDU4ODBkNWQwMjIzZjFmNDY3MzRjYTdhYjQyZGZmMSBsZWdhY3ktdHJ1bmsKKzM0NjAwIDcyZDcwZGNjNGFmMmM3ZjczMjA1NTdiYTA2MWIyZTFmMGE4OWE5ZDkgbGVnYWN5LXRydW5rCiszNDYwMSAyZjBlNjBkNDIzM2E2NjViZTJmMDFmYTUxMDRjYjBkMTRiZTdlZjg1IGxlZ2FjeS10cnVuaworMzQ2MDIgY2JkOTNjZjMyZWZmZWFlOWQ3NjNkNGE2OTJlZTVlZWFhNTlmODhmMCBsZWdhY3ktdHJ1bmsKKzM0NjAzIGU2MTQwODNhYjIwYzhmMWQyY2MzOTlhMTEyMjk5ZTUyYzZkMTUzODQgbGVnYWN5LXRydW5rCiszNDYwNCBlNDhjNjFmYTJmOTgzZTFlMGQyNjZkMmE4YTJlMmNhN2JiNTBiNWYzIGxlZ2FjeS10cnVuaworMzQ2MDUgM2FlODI5MjhiMTEzMWNiYjEwNWFmM2FlODk5OTAyMzdhYzkwMzJhYiBsZWdhY3ktdHJ1bmsKKzM0NjA2IDdkYjc3OGNiN2UwOGE0NDhkM2VhZjdmODM0NDZlYzY4MGI4ZDExMWUgbGVnYWN5LXRydW5rCiszNDYwNyBjZWVjNjlkMjQwZjAxOWViYjc3YjBhZWUyMGY4MTYwODdlZjhmZDBiIGxlZ2FjeS10cnVuaworMzQ2MDggMTk5N2ExNGY2YjA4OGUxYTY1MWUxZmRiOGMzY2FjN2Y1ZjFiZmMzNiBsZWdhY3ktdHJ1bmsKKzM0NjA5IDg5ZWNmYTI1NDUyODNiMTdmZjE5NzBhYmFhZmQ1NWYyZWNiMjQyOWEgbGVnYWN5LXRydW5rCiszNDYxMCBmMDhhNWU5NWMzN2NmM2RiNzI2ZDliZGRhOWIwYmI2NzFlOTYxYzI0IGxlZ2FjeS10cnVuaworMzQ2MTEgMWU2ODYzZGRkODRiOWU4M2U3YjNhMTc1NzFjZWI0ZTZlZTk5YzkzZSBsZWdhY3ktdHJ1bmsKKzM0NjEyIDU0MzcxMzkxOTQ5OWU2NjEzMWQzNGQ5NzY4ZTJmYmRkZTQxNjAxZTIgbGVnYWN5LXRydW5rCiszNDYxMyAyZWQzNjgzMzg1M2FhY2JiNGVmOWRhY2M0MjJlOGEzOTdlNGQzMWE5IHJlbGVhc2UyMy1tYWludAorMzQ2MTQgYTBhOGYxNTQwMWRiMGZiMTM3NGM5YjJiYTIyZWI3NWJkZDg2NmNkNSBsZWdhY3ktdHJ1bmsKKzM0NjE1IGM1ZTUyMDhjZGJiNzIwZTAzODI1MTNmZjZjN2I2ZjVlNzQzYWViZDggbGVnYWN5LXRydW5rCiszNDYxNiAzN2M3NzYzZmE4M2RmYTY0M2YzZTdjYzNhMzcwNDM4YjIyMTRiNjI2IGxlZ2FjeS10cnVuaworMzQ2MTcgOTYxNzBmNzVlM2U5ZmVmZDgyYTM1ZWQ1MGY1NjZiNjM2YmJiNWQ3MyBsZWdhY3ktdHJ1bmsKKzM0NjE4IDMwOTZmYWIyYTE5YzA1NGI1OTRiYzJiNTY4OTMzMGQxMmUxOWE1NTggbGVnYWN5LXRydW5rCiszNDYxOSA4NWYzODM2NTE4ZmU1ZDE2Njk3ZmQxZjNmODdiOTQ1ZmU2YmU3Nzg0IGxlZ2FjeS10cnVuaworMzQ2MjAgNjAzNzA0MGEyY2NlNDcxMjRjNTUzZDEzYWZjOWNkZjcxYzM1YmY1MCByZWxlYXNlMjMtbWFpbnQKKzM0NjIxIGIxMzYzNTNhZGRlNmE2Y2ZhNWY4MjY2YWIwYzY0YTc5NWE3NDQ3YzkgbGVnYWN5LXRydW5rCiszNDYyMiA1MTBiZDdlZWE5MjVmZTEwZmM3OTJkNmZlZDliYjViMWU1ZWJkNTIxIGxlZ2FjeS10cnVuaworMzQ2MjMgZDI2MTgzOWVjZjg3Y2Y4M2UyMGU0Zjk3NjMxNzliMGI2MTYzNGE1YSBsZWdhY3ktdHJ1bmsKKzM0NjI0IDM5ZmE3YjhmY2MwNzdhY2E3MTRmMjgwMzhiMmJjN2Y1NmFhMDY0YjQgbGVnYWN5LXRydW5rCiszNDYyNSAzZDliMzZkNmFiODk4YjJhYTA5MTVkYTUxMWUyYWYzZjEwMDNmMWJjIGxlZ2FjeS10cnVuaworMzQ2MjYgY2Q3NjI0YjAyNWEwZmU4MmUyZTM2YmYyYzdjNTU1YzdmZmU3N2FlYiByZWxlYXNlMjMtbWFpbnQKKzM0NjI3IGUzZWJkNzQwZDFlZmI0ODY4YmZmZDE4M2M3NTNhNDBjOTcyMGQyMWYgcmVsZWFzZTIzLW1haW50CiszNDYyOCBhMjlhNTg1YjAzZDk2MGYzMTE0YTliN2U0ODAyYTBmM2Q5ZTJhMzQ4IGxlZ2FjeS10cnVuaworMzQ2MjkgNDMyMGNjYTRlZDg0MzgzNzcyMDk4NGE5Y2I2YTFjOTVjNGI5Yjk3ZCBsZWdhY3ktdHJ1bmsKKzM0NjMwIGQ0MzJmODJiOTg2ZmJmMWI0N2QxOGIxYmI4ZjUzNTkxMDhmNjQwNzYgbGVnYWN5LXRydW5rCiszNDYzMSA1NjdmYTA2NDllODM1ZTgxY2M0ZWI2OWY5ODM0NjY5NWVhMThiZWEzIHJlbGVhc2UyMy1tYWludAorMzQ2MzIgZjY0OGM3ZjFlOGI4NTk4YjMwMjJhODI4MDZlNTEwNmI1MGEwMmFkNSBsZWdhY3ktdHJ1bmsKKzM0NjMzIDgwODE2NDNjMzczZmZiYWUyMTU2OGUwOGJmNjdjNzg1ZWUyYjMzNzEgbGVnYWN5LXRydW5rCiszNDYzNCA4MTczM2M3YTk1YzhkZGU2MTFmMDcwZDEzYmM2YzI2ZmQyZDliZjQ1IHJlbGVhc2UyMy1tYWludAorMzQ2MzUgMTJjMjJkNmIxZWMwNjhiMDNiY2E2N2I3M2RiZWYyYzBkNWFkMjQyMyBsZWdhY3ktdHJ1bmsKKzM0NjM2IDhhYTkyMzdmNmRkNmFhMTA4ZTQ5YmM3OGViN2Q2ZjUxOTIyOTI3Y2IgbGVnYWN5LXRydW5rCiszNDYzNyBhMTgxOThmNDk0ZjQ0NzhkZGUyMWI4MzM4ZTdhOTFiNjEwZjUwYzU0IHJlbGVhc2UyMy1tYWludAorMzQ2MzggMzIxM2FhYTgyYzdiNzk2YjNjOWZiMWMzMzZhYzJlYjIxNDE4MWFiOSByZWxlYXNlMjMtbWFpbnQKKzM0NjM5IDA0NjhmOWRkYzA2OWQ2ZmYwZjNmYTc2OTYzNWQzMTVlNmUwNDhkODggbGVnYWN5LXRydW5rCiszNDY0MCBhMGVjYWUzMzMyYThiNmIxYmQzMTA4MWVhMjU5YTAwMzhhMDJkMzY2IGxlZ2FjeS10cnVuaworMzQ2NDEgN2E2YjFjOWZiODllNTQwZWRjZTZjODQyZGEwZDkzZjM2NTM3Yzk4MCByZWxlYXNlMjMtbWFpbnQKKzM0NjQyIDg3YzA0MjJjZGU3MDhjMzY4ZWEyNjY0OTA2NjMxODdjZWE0NGQzMDUgcmVsZWFzZTIzLW1haW50CiszNDY0MyA1MjY2ODI0NTZhOGQ1YTY5MTdmMTE2NGQwMjE3YWY5ODliODQ4YzBkIGxlZ2FjeS10cnVuaworMzQ2NDQgOTY1NGU1ZjI0NzNlNGY5NDk3MDIxMjBlOWNiN2QzMDA3NjMxYjg0MCBsZWdhY3ktdHJ1bmsKKzM0NjQ1IDVjNGNmZjhmYTZlY2Y5MWM0ZDQ5OTBlN2M2MjZhZGVjNzIwMzg1NTkgbGVnYWN5LXRydW5rCiszNDY0NiBjMDBiNWYxNzk2MzNjZWJlZGUwODhhMDk0M2IyZWM0MzI5ZjhlY2IzIHJlbGVhc2UyMy1tYWludAorMzQ2NDcgNTRmZjY4ZTk3M2VlYmFlMGQ5OTBlMWJlNTMwNmIzNzRiMGY0ODQyZiBsZWdhY3ktdHJ1bmsKKzM0NjQ4IDI4NzIwMGFmOTQ2ZmI3YmQ1MTczMzg4OWE4OTU4YzZhYjBjMTViZTggbGVnYWN5LXRydW5rCiszNDY0OSBmYTZlOGQ0Zjg4YzY3ODI4MmU3MTZkZTBkNTk0MzlmNjI1MjBmMjQ1IGxlZ2FjeS10cnVuaworMzQ2NTAgN2Y2OTVjNTk4Mjg3M2I5MWVjN2U1ZDRiNWE3YjhkMmQzODQzY2MzZSBsZWdhY3ktdHJ1bmsKKzM0NjUxIDE5ZmY5NzI0MzRiM2QyNjFiZmMzYzMzYzhkM2ZiMWI3OTMyZDAwOWIgbGVnYWN5LXRydW5rCiszNDY1MiA0ZWZmY2JmODBiNDVjNmU0MGY0NTE3ODBkZTQxY2E5NDRhMmMwMDYzIGxlZ2FjeS10cnVuaworMzQ2NTMgNWQyYjBlOTA2MmQ1MzM3ZDA2OTc5YjIyMTMyM2I2MzEyZDhjNTM3NiBsZWdhY3ktdHJ1bmsKKzM0NjU0IDg5NDFmMmVlOTA5NDlmMDNlMTE0NTkyYjRjMTI5YzYzZTE5OTUyNDAgcmVsZWFzZTIzLW1haW50CiszNDY1NSA1MWViZjU0NzRmM2RjOTg0ZjFjYzhjYTliMDk1OWZkOWQxN2JiNjFkIGxlZ2FjeS10cnVuaworMzQ2NTYgODEzYTZkOWM1ODg4MjkwN2E4OTkxZjcyMDVjYTMzZGQxYjM5YzQxNSByZWxlYXNlMjMtbWFpbnQKKzM0NjU3IGIyNDk5NWE5NjY0YmQ1NDg0MGFmZjM4OTRjYzFmNWY4ODM5MzI0OWUgbGVnYWN5LXRydW5rCiszNDY1OCBiZjEzMTk1ODFkYzQ3OWY5Y2JhMGEyMDE3ZDZiZmQ4ZjYyYjcyMmRhIHJlbGVhc2UyMy1tYWludAorMzQ2NTkgY2I3ZDVlMjNkYmM3N2YxMDQxNDFmNjBmMDU4NmQ5YzUwNGI0ZDFkMyBsZWdhY3ktdHJ1bmsKKzM0NjYwIDcwMTg4MGQyNjZlY2NiNDgxMzA0Y2JiZTQ2N2Q2ZDc4NDU1ZDJiNWEgbGVnYWN5LXRydW5rCiszNDY2MSA2Y2EwZGJkNmNjYzk4YTE5NmVlYmY3YTlkMjZjYjUzMzdlNzFlYTgyIGxlZ2FjeS10cnVuaworMzQ2NjIgNjI1MTdjYzRjNGU3OTIwMzAxZjI4NWYxOTcxYjA5ZDI1YzY5OWMzZiByZWxlYXNlMjMtbWFpbnQKKzM0NjYzIDdiZTQ1ZjdhNzE4ZjM1Njk0NDEzNGIzMGVlYzdiYzcwMGEzZGY3OGUgbGVnYWN5LXRydW5rCiszNDY2NCBmNzI5YzRkNTMwNDhhYzIyNDMyNzI1ZWU5ZDQzZjE4Mzk2MTY5OTcyIHJlbGVhc2UyMy1tYWludAorMzQ2NjUgNWY0OWZjMjMxYjRjODg1ZjEwNTA1MTFlNjM2MGVhODlkODVhNjY3ZSBsZWdhY3ktdHJ1bmsKKzM0NjY2IDIzMzgyYTEzNGQ1YWI2MWE4MGQ1OGQ4YmU5NGNkYTgwZGQxMWUxMmEgcmVsZWFzZTIzLW1haW50CiszNDY2NyAxZGEzOWE3NWVkMzg0YThhMTNkYTQ5Mzk5NzM3NWRhMzUxNDNlMmJhIHJlbGVhc2UyMy1tYWludAorMzQ2NjggMzhlNzJmNGYzZGY1ZTk4MTBlZWZmZTg1ZmYzZjJhMjY2ODU5ZmUzYSBsZWdhY3ktdHJ1bmsKKzM0NjY5IDExNjM2ZTc5ODdiNjM3ZmVjMWJiNmExNGRiOTZlMDk4NDhlNDhiNTYgbGVnYWN5LXRydW5rCiszNDY3MCA0NWY3MDcyOGRiYWM0ODA4MGU0YWUwNTk4MTRlNDhiMjA4YTFhNmZlIGxlZ2FjeS10cnVuaworMzQ2NzEgMzMxMzU3MWM2NTc0M2E5ZWM0M2NiOTZiMmM4NGUxMTM1MGM2ZTRmOCBsZWdhY3ktdHJ1bmsKKzM0NjcyIDhmYTNjNTg2OWY1MWE3YjVlZGI4ZWZjMTUzZTY5ZThlZmNlODI1MGQgbGVnYWN5LXRydW5rCiszNDY3MyAwN2QzYzg2NjhmOGI0NzFjOGFhZTFhMmU2MDliNGUzNDg2NmY4MzdjIGxlZ2FjeS10cnVuaworMzQ2NzQgNTNkMjgxMzM5NWY0ZWY4MDY5ZTQ0ZDgxODc0MzhjZTIwNzFmM2Q2NyByZWxlYXNlMjMtbWFpbnQKKzM0Njc1IDdhYWE0MGJjMmIxN2M5NGRmMmMwNTdlZGYzODEzYTEyN2RhMjMwNGYgbGVnYWN5LXRydW5rCiszNDY3NiA0NmI5ZmRkMjdlYzIxZmJmYTdkYWJhZDMwYTcyNmJmYmZjNzAwNDQxIGxlZ2FjeS10cnVuaworMzQ2NzcgMTkwNGQ4YjAzOGI2NjhkOWU5OGRiNmJkYmQ3NDBkZTE0NmEwZDgyOCBsZWdhY3ktdHJ1bmsKKzM0Njc4IDhhZmVjZDM2ZmI4ZTM1MTU3NzAzZDQ0OTBjMTNiOWQ0MTM4YjBjMjQgbGVnYWN5LXRydW5rCiszNDY3OSAzMTdmY2M1YTE4NGQ0OGI4OTQ5NTVhZWQ1ZThkYWVjMDEwMjQxYmQ1IGxlZ2FjeS10cnVuaworMzQ2ODAgMjIxMDdjNWExNzZlMzEzMzhkYjg3MjYzNjZiNWQ3NTk0MzZmN2I2MiBsZWdhY3ktdHJ1bmsKKzM0NjgxIGYxOTYyNWYzYzE5OGVlZjRhMDI0MzFlZGZlZmMxNjI0NmMzY2M1YWEgbGVnYWN5LXRydW5rCiszNDY4MiA1YmNlOTU4OWVmMGIwMzZhOTcyMThiNzhjMjVjYzgxNDcwZDZmMGJiIGxlZ2FjeS10cnVuaworMzQ2ODMgNGVkYWJjMjk3NmY3M2ZjNTEzMjhiMjU0N2NlZjEzMjcwMTc1MDA2YyBsZWdhY3ktdHJ1bmsKKzM0Njg0IGRkNmE1MTBhZTBkOWMwOTk0NDM0NzBiMTdjMTRiZDY5NGQ3ZmFkNjggbGVnYWN5LXRydW5rCiszNDY4NSAzYzFjODFkNjQyZTA4NzdlYzkwMDU0OWExOWQwZDcyZDVjZTQ4MDE2IGxlZ2FjeS10cnVuaworMzQ2ODYgYjZjMTM5NTQ0YzE2ZDZhYjdhMjQxMjU4ZGMxNTRhZGIwNDY3ZjA4YSBsZWdhY3ktdHJ1bmsKKzM0Njg3IGU0ZjllNzRiYTU2ZGM4NTdjY2FmNjg5NDNkOTIzNThiNGFlY2FkMDEgbGVnYWN5LXRydW5rCiszNDY4OCAxNmM2ODJlM2U1N2Y5ZWYyODAyMzNjMjEyNmQyMDRmZDU3OGZkYTAyIGxlZ2FjeS10cnVuaworMzQ2ODkgNGIyYzllMTRiNDQ2YjY0NmRlOTBiZThhNjMzZTBlMjhiOWI0ZTM0MCBsZWdhY3ktdHJ1bmsKKzM0NjkwIGNlOTZiZGM2ZmJiOGQ0MDk2Y2MyYmRkMjBlZTk3NDFiNjRmYjQwOTkgbGVnYWN5LXRydW5rCiszNDY5MSA1M2U0YjdmZTA5NjljMTQ2OTMyZmRjOTAzZTIyNjdiN2VmY2ViN2M2IGxlZ2FjeS10cnVuaworMzQ2OTIgZDEyZjA3YzFjM2EwNzA3MzA4MTE5MDM5ODI1ZDgyNzE5MmQ1NjkxOSBsZWdhY3ktdHJ1bmsKKzM0NjkzIDRjZTMwZDlhMWUwNDE5YmRmOTNkOWE5NmVkN2M3MmMyNDA1MzdiZTcgbGVnYWN5LXRydW5rCiszNDY5NCBlYWQ0YzYxMjE5ZDBmMGMxNzYxYTI3Yzc2MjA3NjU2ODM5ODI0YTgwIGxlZ2FjeS10cnVuaworMzQ2OTUgN2ZlMjAxODAxYzE0OTlmODg1MTU4ZDg2OTc1NDRjYTI2OTczZWU3MCBsZWdhY3ktdHJ1bmsKKzM0Njk2IDRjODE2MDA4OGIzNDc1NGFlNzJhYWJhMzkyZTNlM2Y0MWM1M2QyYzYgbGVnYWN5LXRydW5rCiszNDY5NyA4NmZkZjhmZTdmMTcyMGQxMDYxNWI1ZWJjNWM1MWRiZDIwYWU3MWMwIGxlZ2FjeS10cnVuaworMzQ2OTggODkwZjNjMmMxMTgzMDA1OTdiNmI3MjU2ODRiZDYzYjI3Y2EwMTZjOSBsZWdhY3ktdHJ1bmsKKzM0Njk5IGViMDQyNjVmYjY1Yjg2YjY2NmE0ZmRhMjU0MjJjNzZiMjc1MTZkMmQgbGVnYWN5LXRydW5rCiszNDcwMCBlNTQzYjNmMGQ5MDYwMmUyNjVlMmFjYzRiZjhiMWE2NTIzMmFhZjUwIGxlZ2FjeS10cnVuaworMzQ3MDEgMzM0ZWRjZDFlNWFjNjEyNTJmMzAwZThkODFhZTVkNjBmMDJjZjI3MyBsZWdhY3ktdHJ1bmsKKzM0NzAyIDgzMGU1ZmZjNmQyNWM3MDRmOGVkYTBiOTg0ZWNhNTlkMTg2M2JiZjQgbGVnYWN5LXRydW5rCiszNDcwMyBmZGM4YTg4YTlhNWE0MzQ0ZTRhYmY1ZDA4ZWQ5MTY4MDU3ZDNkOWM4IHJlbGVhc2UyMy1tYWludAorMzQ3MDQgOTYwMDFhNzBjNTA1N2YwYjZmOTE1MTU4ODU1ZWE0Mjc1MjNmYTcwYiBsZWdhY3ktdHJ1bmsKKzM0NzA1IGQ5OWUwMjI5NjZjOTQzOGM1ODhmYzY4Mjg2MGQ4Y2NhNGI2ZmE1YzggbGVnYWN5LXRydW5rCiszNDcwNiBjYWExYTQ4ZGE0Y2NkZmNmMGI2ZDEwZjNlNjMzZmFmOWI2ZTFmNDRiIGxlZ2FjeS10cnVuaworMzQ3MDcgNGY2MzgyZDI4MDlkZjRhZThjMjM2M2Y3MjM0YzA2YTcyYmI2MThmNyBsZWdhY3ktdHJ1bmsKKzM0NzA4IDgzMjZmNjQyNDRjMjVhYmZjN2VhNWMxMGZiYzA0ODMwYzhhODIxNzUgcmVsZWFzZTIzLW1haW50CiszNDcwOSAxNGQzMjE0NjZhMDY5MmYxNDljM2M1YWYzNmYzZWMwMDFjMDNlNmJkIHJlbGVhc2UyMy1tYWludAorMzQ3MTAgZDQwMTc5MDE3NjM5NWQ1OWVhNTQwNmIzOGRkOGEwYTYyNzQwOWU4OSBsZWdhY3ktdHJ1bmsKKzM0NzExIDUyZGU1ODA4N2IyZjNhNDVlY2JjZmQ1MzE1MTE1NDkyYjdmYWQyODkgbGVnYWN5LXRydW5rCiszNDcxMiA2MzJiMjIzY2I4ZTgzODc4OGM5MzQxMzdkZDU3OTM5MjdhZmIyNDcwIGxlZ2FjeS10cnVuaworMzQ3MTMgZDQ4MjZlMDk3YTNmZWJmMjg0YjhmMjlhNWJlYmQwOTFiYWQ3MzI1NiBsZWdhY3ktdHJ1bmsKKzM0NzE0IDlmYzUzNDFmYTY5NTZhODMzYmNiYTI3NDgyYzg4NjU1NjZkMTk5NGUgcmVsZWFzZTIzLW1haW50CiszNDcxNSBlMGE3NWE3NTcwYjQwMjg5ZjhjNTRmMzgyZjAxYjBhNzM4MDRmOGQwIGxlZ2FjeS10cnVuaworMzQ3MTYgMThkZjIwM2I4ZTk4NTQ4MmE0ZWI3ZjMwZTljNmVhMTllM2FhZmY3MiBsZWdhY3ktdHJ1bmsKKzM0NzE3IDRkYTk5ZjczYTFkZjg0ZDEyMzYyYThkMjdmZmZjMDhhMDYyYTM4ZTUgcmVsZWFzZTIzLW1haW50CiszNDcxOCAyMmJlZDJmZGZmZWE2Yjk2NTg0YTMyZDk2NzQ2ZGZiYzBlNjcxYjA1IHJlbGVhc2UyMy1tYWludAorMzQ3MTkgZDkwMTU4ZGYzOWM0NTMxMmZkZmUwYWI1MDhkNzZlNmQ4NzJlNDE3YyByZWxlYXNlMjMtbWFpbnQKKzM0NzIwIDYyMmE3NmJjMDIzNzY5MzliMGFhNzg3OTFlODcyYmI5NWQwMmJjZDQgbGVnYWN5LXRydW5rCiszNDcyMSAyNzg5NzZiMTlkY2NhNmY4NDczYzg0Y2ZiM2M1MjQ2MGQ2ODNhNTgxIGxlZ2FjeS10cnVuaworMzQ3MjIgNWI3N2JjNGQyNWIxYjlkZjU5ZjdmOTBjMGM3N2I5NTM3ODhjYWJiYiBsZWdhY3ktdHJ1bmsKKzM0NzIzIDQ2OTZjNGI3Zjc5MmIyYTdhZmYzYTI4NjRkNTE0YTM3YjY5ZTg5Y2YgcmVsZWFzZTIzLW1haW50CiszNDcyNCAxZmQ4MTg5NGNiOTczZjJmZTQyNWJmYmE0ZDA2ZWVjODRiMzcyODNjIGxlZ2FjeS10cnVuaworMzQ3MjUgNzUzZDcyYmQyMTRiMmM1ZDJmODg2YjE2NTI3MzE0NDQ3ODUzZmI3YyByZWxlYXNlMjMtbWFpbnQKKzM0NzI2IDQyMjRkODA3OTExYzRhMDlmMDJlY2ExYTI0ZGRkOTg3NmYxMzQ5YjEgbGVnYWN5LXRydW5rCiszNDcyNyA3MGYzMmYwZDhlY2YwNjU5YjVmMWRjYWQ5NGE3ODVmZThjNzFmODc4IGxlZ2FjeS10cnVuaworMzQ3MjggMmRkYjFjYmExOGQ2NDM5NmQyN2E0ODk1Njk5YTg4ZjNlZGYxYWUwYyBsZWdhY3ktdHJ1bmsKKzM0NzI5IDk2MjhiYjU0YTllMDc0Y2EyMmEyODU2ODIxMmUwN2NmZTdhOTMxNTMgcmVsZWFzZTIzLW1haW50CiszNDczMCA0NmRlM2RiOWE1ZGI1MzQ0YjBkMWFiMDUwODMzODEzZDdjNjRiZDQ5IGxlZ2FjeS10cnVuaworMzQ3MzEgMzJjMmM3OTljOTI0OGUzYTNkNjBhNWExYmQ4NzkzMDQwZTY3OGVkNSBhc3QtYnJhbmNoCiszNDczMiAyNzBkNTllMzQ2ZTZhZjg5NDk3YWFhODFhMTBlZTIyMzdkMWI0MmU2IGxlZ2FjeS10cnVuaworMzQ3MzMgYzQxMWE3NjJkNWRkNmEyZWE2ZjZhZWNkZmU4ZmNmNDdjMDllNGY5NyBsZWdhY3ktdHJ1bmsKKzM0NzM0IDhkNDEzNTc4ZWIxYWMwYThlNjM5NzFkZTkwMmQ2MWYwN2FiMjJhY2MgbGVnYWN5LXRydW5rCiszNDczNSBhNGI5MTNmOTM3Y2RjOTE3YWMxM2Q2MjY5ZGYxMDljOTYwYTEyNjY5IGxlZ2FjeS10cnVuaworMzQ3MzYgMTdhYTUzMDJlMDhiMjE3ZDA3NTFlNTQ0NjdhZGNiNWM2NTE5NTc4MSByZWxlYXNlMjMtbWFpbnQKKzM0NzM3IGJjYzc4NzNjNzA3ZTUyZWFmZTE1Zjg2ZTVkNjEwMTcyOTFlMjg3ZGUgbGVnYWN5LXRydW5rCiszNDczOCBiMmZkN2FmMTcxODY5MDZmMzNlNGRiODFmNGRkYjQ2MmZlYzA1NmJhIGxlZ2FjeS10cnVuaworMzQ3MzkgZDJlYWE1M2NlYWJlZTJhM2NjY2M3ZGVkMDFjNjkzN2FkZTA1OTNlNiBsZWdhY3ktdHJ1bmsKKzM0NzQwIDIxYTEwYzM2MDBiNWM0ZDQ3OTI0Yjk4Y2E4MGU1NmJkZjM3N2U5ZWEgbGVnYWN5LXRydW5rCiszNDc0MSA4NDVmMTliMTQ1YThmYTBmMmNkNGYwZjM1OTRhZjZlMWU3Y2M4YmE3IGxlZ2FjeS10cnVuaworMzQ3NDIgODVjYWJlN2IyMTZiN2JkMDU1MzFhNzQ3MjQyMjhlMjdkYTZkODIxYyBsZWdhY3ktdHJ1bmsKKzM0NzQzIDBhYzQwOWRmZjM5MDkxNTlhOTcyNjYyMzk1MjM2ZmZmOTZmZjQ5YjMgbGVnYWN5LXRydW5rCiszNDc0NCAyYjZhMTBlMDY3MjczOGJlYTJkNjM0ZmNhZmQ5ZjBhYjJkMjVhMWE3IGxlZ2FjeS10cnVuaworMzQ3NDUgMDI0YjQ3OTlhNDFkNTI1MTc0NTVjZTg1ZmVjODkyNGRkNDY5Y2IwMCBsZWdhY3ktdHJ1bmsKKzM0NzQ2IGJmMDM4OTg2Y2I4ZmRmMTI2ZmFkZjUzNTZlMDgxYzdmYmMyZjE0YTcgbGVnYWN5LXRydW5rCiszNDc0NyBmOTY3NTg5ZGY3NTEyNWE3ODk4NmVmOWNkZDUxNGFiZDdjNzQ3MDU1IHJlbGVhc2UyMy1tYWludAorMzQ3NDggY2UwNzExOGVlNWQyNzdkY2QzNWZkZTYzYjMwOTIwYzQ3OWNhNjE5NCBsZWdhY3ktdHJ1bmsKKzM0NzQ5IDdjNTVlYmVjNDhmNTc3YTVkYmJhODBjNWQ1NmJkNjBlYjNiNTQ2N2EgcmVsZWFzZTIzLW1haW50CiszNDc1MCBkYTE1NzhjZmFlMTgyZTU0YmIyNjZiOTBmMjA1ZjUxNDZjMzcyY2JiIHJlbGVhc2UyMy1tYWludAorMzQ3NTEgNmQzZTBlNmQ3YmU2MTU5OTg0MTI1ZDg1YjU2YjE2Y2UzMzUyZWMwMSBsZWdhY3ktdHJ1bmsKKzM0NzUyIDRiNmM3ZTVjYjg4OWIzM2Q4MTFlYzQwM2VlODQzOGQwMTNlZTljZDMgbGVnYWN5LXRydW5rCiszNDc1MyAyYzNhNzVjNTQ4MzM0OWI4NGNmMzQwODM4YWI4YzNlYjY0M2E5ODkyIGxlZ2FjeS10cnVuaworMzQ3NTQgZmFkY2ExNzE2NGMwNmM2MjI0M2IzMmU4ZTAzN2FlNmE4NmVkYjc5YiByZWxlYXNlMjMtbWFpbnQKKzM0NzU1IDQ0YWIyNDJjOWI4Y2Y1YWVmNWM4M2Q4MzQ4ZDY5NjAzOTc1NDNlZjEgbGVnYWN5LXRydW5rCiszNDc1NiAyZDY5MGE5NWU0ZmQxZTAxZWE0ODFhOTZmZDhmNmE5ZmI1NzFiNTg3IHJlbGVhc2UyMy1tYWludAorMzQ3NTcgZjcxYTIxNjc5NDM2YTUxMGNjYzQ2NTI5ODg1NWJiZmVkOGM5OTcxNiByZWxlYXNlMjMtbWFpbnQKKzM0NzU4IDZjZjA5YmUwNDkxZGU4NmJlODMzNjdmMDNlZjc1ODdmZjA5Yzc4M2MgbGVnYWN5LXRydW5rCiszNDc1OSA0MDA5YjM5OTI2MTZhMGQ2MGMzNThhMDI1ZDQ4NWM4MTAzMTFjNDBlIHJlbGVhc2UyMy1tYWludAorMzQ3NjAgNmYwMTcwMGMxODA4OThkZWMzZWQxMzdkNjA0ZjFhNzBjZmRlMmI5NSBsZWdhY3ktdHJ1bmsKKzM0NzYxIDljODQ2YzNkZjZmM2UwMjRlMGVhYWI0ZGRhNWI5YTM4OGJiZWRmNGEgbGVnYWN5LXRydW5rCiszNDc2MiA3M2Q1MjEzMzA1ZDM3NmQ1MDQ5Yzg0OGQ1OGIzN2MzMTBlZmUxZmI1IGxlZ2FjeS10cnVuaworMzQ3NjMgNmRjMTllNDgzNDdhMGI3OGYyNmI0NDc2YjI2ZjkyOGM2ZDdiY2YwOCByZWxlYXNlMjMtbWFpbnQKKzM0NzY0IGRkNTcwN2Y3MTUyNmFjZTk0YmE4NTU4YmExYTBiYWYwOWJlOGI1ZTIgbGVnYWN5LXRydW5rCiszNDc2NSAwZmY2OTI1OWIwMDVmNDczZjRmNzk1NmIyMGVkNDA3YzUxNWVlMmMxIHJlbGVhc2UyMy1tYWludAorMzQ3NjYgZmQ4N2NlMTgxOWZhMzc4YjIyNWRiMWExNzZiNDBhOThmZDRiZTBjMiBsZWdhY3ktdHJ1bmsKKzM0NzY3IGQ1MGUyNmYyMGYxMDg0ZjlmZGYxZjUyNmMxOWMxYjA5NzA5MTQxNTUgcmVsZWFzZTIzLW1haW50CiszNDc2OCBmNWVhYjYyODMyODY2NGZhODMwMzRiN2E2MDU3N2E5ZGZmMmZhMGYwIHJlbGVhc2UyMy1tYWludAorMzQ3NjkgMzU0OGYyMzQ4MzFlMDk5ZjE5MDUxMWI3ODI4NjlmNjFkZDM5MDYzNiBsZWdhY3ktdHJ1bmsKKzM0NzcwIGQzYWUzMjRmNmM4OTVmYTBiZmE5MGJiYzIwNDQ4MGU3MDkyNDgzZTMgbGVnYWN5LXRydW5rCiszNDc3MSA0NTZlMjc0Zjg2MDI2MjY2YzA2MWZkNjk0MmZmZjRiYzE4NzJlMTg5IGxlZ2FjeS10cnVuaworMzQ3NzIgNWRlYTczZGM5NjhiODQyN2RmOWUwZTdiMTkyYjZjMDU4M2I0YjYxNiBsZWdhY3ktdHJ1bmsKKzM0NzczIDNkMWYwZGY3NWE4MGM2Y2I1ZmQyYjBmMzhhZTMxNDU5N2E4M2MxOTUgbGVnYWN5LXRydW5rCiszNDc3NCAzODMzOGM5NzBmN2QwNzk5ZDM3OWVlNjExMWE0OTI4MDEzZjViMWIyIHJlbGVhc2UyMy1tYWludAorMzQ3NzUgMjUxNzE3NTY2ZTkxMmY4YmZhZmUyNWIyYTYzMDk5YmY5NDNkYWEyZiBsZWdhY3ktdHJ1bmsKKzM0Nzc2IGY2OTU4OTE3OWM1NTljMDU4ZjFlZTU5NmU1MGNmMTczYjFmOTQ1NzEgbGVnYWN5LXRydW5rCiszNDc3NyBiZjdkZjQ4MDEyY2IyYTY4MTNkZWQ0MTMyMTJkYWIxMDgxZTgyZWNhIHJlbGVhc2UyMy1tYWludAorMzQ3NzggNGUxMTI1MDU2NGNiZDNmMDYzNWE0Yzk0MDk0ZmUwMTRiNDc0MzFhNiBhc3QtYnJhbmNoCiszNDc3OSBkNmM3ZTU1OTYyNDdlYjA4OWI0MzMxZjhmZWYwNjc4NWUyYTMxOGUwIHJlbGVhc2UyMy1tYWludAorMzQ3ODAgNGEzNjFiYmI1Mjc4Y2E1N2UyYjNjOGI3N2ExYzg0MzZlMGEyNzc5NCBhc3QtYnJhbmNoCiszNDc4MSBmMGExOTdkZDIxMmQ1Mzk0NDJiYzdhNjAwNmMwNmNkY2U2ODcwOGNlIGFzdC1icmFuY2gKKzM0NzgyIGYxNDMzZDNjNjQ0N2Q3N2M2Njk2M2FlOWYyZWZhYmI4MTVhMzc1NTIgYXN0LWJyYW5jaAorMzQ3ODMgYjBiY2NiOWZiNzBhOGIzYTVjNjNmOGRkZmQxMWM1MzdlMTE3YzIzMyBhc3QtYnJhbmNoCiszNDc4NCA2NGRkZGEyNTU5NTI0YWQ4MTNhYzEzNmIzYTI5YzVlYmRlMDdiNDA3IGxlZ2FjeS10cnVuaworMzQ3ODUgNGUzMWMyNjFhNjY4OTVjNGQ0MDY2YjkxMTA2ZDM2YTI4YmQ3NWZmNiBsZWdhY3ktdHJ1bmsKKzM0Nzg2IDBhYzk4ODc4Y2MzMmI1Yzg3YzdhMjI5OTVhMDcyN2IzMzE0NWRiYmUgbGVnYWN5LXRydW5rCiszNDc4NyBlMDVmZTE3NzU1MjA2NGUzMTk4NjFkMDc4NjA2YTVjNmFjOTgxMzdkIGxlZ2FjeS10cnVuaworMzQ3ODggZWI1MDlmYzQ3ZjA3NTA4NjhhZjljZDYxMTA1NDJkZDE4Y2M1MTJkMyBsZWdhY3ktdHJ1bmsKKzM0Nzg5IDQxZjRjZTZjNGU1MDRlMzI0MWQyYzJkYTYyNzFlZWY5ZTlhZmU0ODkgbGVnYWN5LXRydW5rCiszNDc5MCBhMTAyZGE5MTY0MGUzNDZhOWY5ZGZjODJmNTliNzkwMDQzMmQzY2E0IGxlZ2FjeS10cnVuaworMzQ3OTEgMGVjNGQzZWJkNDMzN2YxZDhlNzk4ZjBlOWY3MzQzYWY5MjkzM2E4NSBsZWdhY3ktdHJ1bmsKKzM0NzkyIDkzMTRiZTBiYmI2NDAxOWI4ZDk3YmM1OTRlNjgxMDZiY2ZjMDZjZDggcmVsZWFzZTIzLW1haW50CiszNDc5MyA1YTA2NThjMDA4NzlhYTM1ZjMzYzhhNDE4OGIzZDRjNWEyOTM1YjNhIHJlbGVhc2UyMy1tYWludAorMzQ3OTQgNzgzNjk0ZDRkNGNmMGNmZGRiZDI0NWJlMzBiOGQ1N2FhODdiNWFjOSByZWxlYXNlMjMtbWFpbnQKKzM0Nzk1IGQ0NTE0Y2UxNGI5NjdmN2Q5Njc5OGEzMWY1OGUyNWNiNjYzYTZlMTkgcmVsZWFzZTIzLW1haW50CiszNDc5NiBkYTE0ZDgwNmU4OWM3NTJmNmE3Mjk0YTNlNGE2OWJiMDc0ZWM0NjcwIHJlbGVhc2UyMy1tYWludAorMzQ3OTcgZGUyODU1YjNmNDEzNmJmMWNhMGI3N2IwMjg4NWI3ZDU0YzhiYTFlOSBsZWdhY3ktdHJ1bmsKKzM0Nzk4IDQ4Njk1YzgzOWQ5OGIzYTI3MmM2MDkzMTA0OTVlYTExZTYyYTg0NmEgcmVsZWFzZTIzLW1haW50CiszNDc5OSA1YjUxNWNjOTBiNWE0M2VmZTQyZjQ2MzEyYjZiYWUxMGVmMDA5M2M0IGxlZ2FjeS10cnVuaworMzQ4MDAgYTUyZDc0OTQ4ZGQ0ZjRlM2ZiOGVmMTEyYmJmNTQyZWNkMWRmMjQ5YiByZWxlYXNlMjMtbWFpbnQKKzM0ODAxIDJhNmZjNGQyNjFmOGU2OGRhYjk0OGE3ZDY2NWZkYTUyZDRmYWM4ODEgbGVnYWN5LXRydW5rCiszNDgwMiAyYmE5YTg2OTY1NjAyZDhlMDU0ZTBmMmQxYzg0NDJmYTJkYzMwYmIyIGxlZ2FjeS10cnVuaworMzQ4MDMgNjIyOTkxY2MxZTNjNThiNTFjNTUyMWEzMmE4MTljZDllMWJlYWQ4OSBsZWdhY3ktdHJ1bmsKKzM0ODA0IDM2MDYyZDY0NWZiYjk1NjM1ZWJlYjUwMTU4MjdmMmFlNmQ3Y2ZkN2IgbGVnYWN5LXRydW5rCiszNDgwNSA2ZWI0NzNkNjgwNDI0YzU0NDg2ZjljMTNmZTM3ODM0ZjZmMzQ5ZDM5IHJlbGVhc2UyMy1tYWludAorMzQ4MDYgMWYwOTgxOWY1MDhiMjVkNDU0Y2I3ZmVmYWExODMwYjNkYTNjNzM1NyBsZWdhY3ktdHJ1bmsKKzM0ODA3IGQwMGYwMTIwNzgzN2I2NzIyNWY0ZTlhYmI4Mjk4OGVhODQyNGM4ODIgcmVsZWFzZTIzLW1haW50CiszNDgwOCBlMzAyNWZlNzBkOGJkMDRmNzIyZTczNzkyZjg4YzRkZDZkZWY3OGY3IGxlZ2FjeS10cnVuaworMzQ4MDkgYTJmNmM2YTY3ZjI0MTQwOTljYzcwMTkzYmI2MDM4Zjc1YjYwNzZmMiBsZWdhY3ktdHJ1bmsKKzM0ODEwIGIyNGQ2YTcxYjAxZjEyNjU5OGYwNmVmMDQ3ODIyMTBiOWU2NjMzYjUgbGVnYWN5LXRydW5rCiszNDgxMSA4ZGQxNTkyNzk1NzZhNTc0N2UzZjJjZTdkNTdkODFiOGVkOTllYWFhIGxlZ2FjeS10cnVuaworMzQ4MTIgODcwNjE1YmZhZWRmYjllNGIyZTljM2ZkNTk0NmJjOWJmOGM4Y2U0ZiBsZWdhY3ktdHJ1bmsKKzM0ODEzIDJmNzk2Yzc1OTZlY2EyM2YxOGMxOTRkOGE2YzEwN2Q5M2Y2Y2FkYmMgbGVnYWN5LXRydW5rCiszNDgxNCAwYTdmMWE1M2M3NzNiNGFjMWY1YzhkNTJiMjM3NWExZTU0NDg4OGQzIGxlZ2FjeS10cnVuaworMzQ4MTUgMzg2MWViNDY3YzI5ZTA3YmE2YjM2Njk3NjBkZGY3MmNiMzNiNDQ4YyBsZWdhY3ktdHJ1bmsKKzM0ODE2IGRlMzkxZTlkNzBlYTE2N2YxZTgxYmE1N2EwYWIzYzY4Njc3MzFhZDAgbGVnYWN5LXRydW5rCiszNDgxNyBmMmU3NjQ2Zjc3NjMxNjFiYmRkZGYyNzZkNzQ3ZjU2ZmY2ZjRmMzEwIGxlZ2FjeS10cnVuaworMzQ4MTggOWNhOWQzMThhZjc4YjdkNWY4M2Y5NTYzN2VhMTlkOWJiMmRkNjIyNyBsZWdhY3ktdHJ1bmsKKzM0ODE5IDMwMzgyYWIwNmNkMWMyYzBiOTA0MjYzZDBmNDA0NDBjN2ExZjg2NjggcmVsZWFzZTIzLW1haW50CiszNDgyMCBkMzVmODc5OWNmMTIyMjA1ZGY1Zjg0NjZhM2ViMzIwNjJiNzg2Y2I2IGxlZ2FjeS10cnVuaworMzQ4MjEgMDNmNDNkNjE5ZmY0YjhhNTUwYTZkMWVjMzM4NmFhNWY3YjhiODI5NyBsZWdhY3ktdHJ1bmsKKzM0ODIyIGJkZjYwYmVhNDE3N2E3ODA0MmMwZjA5MjMxODM4YzQ0YzJkYzdhOTMgcmVsZWFzZTIzLW1haW50CiszNDgyMyA3NTkyMTRmMWVjNjkxMDcxNDFmOWEwMDQyNDk2ZmM2MmRlYjVjNzU4IHJlbGVhc2UyMy1tYWludAorMzQ4MjQgMTEzZWFmZTg4NDhmZjU4NzE0MWMzN2EyYjVhZGYxMDdjNDJlMWVmZiByZWxlYXNlMjMtbWFpbnQKKzM0ODI1IDYxYjcwZWI4ZDE2MGIzMTk1MTgwNGYzYjVjNjQ2NWM2OTRlOTgwNTggcmVsZWFzZTIzLW1haW50CiszNDgyNiA4NmNmMmI4MTBmM2EyYmU3N2I0MDg4ZTFhOTY3M2ExZjA2ZDFmNmM2IGxlZ2FjeS10cnVuaworMzQ4MjcgYzIzYTg2MjE1ZDlmN2UxNzUwZjliNWFlNGRlZDRlODYwMDdiZWUyMiByZWxlYXNlMjMtbWFpbnQKKzM0ODI4IDIwMTRmOWM2MzZmYmU3NTZhOTQ0YWUzN2Q4MDRiNDFhMDZhNjQ3OGEgcmVsZWFzZTIzLW1haW50CiszNDgyOSAwYTYzZDRkMDE1Y2Y5NTBmMTg4ZmJjZGY5MWJhNTU0NTdkNDY4YWNjIHJlbGVhc2UyMy1tYWludAorMzQ4MzAgOTE1YWEwZTY5NDg1OTg5ZTc3ZTk0NjA4OTRiMGM3MzdjZGFkNmZlNyByZWxlYXNlMjMtbWFpbnQKKzM0ODMxIGEwOTZkN2I4ZWM4YTI5ZTEyMDM2YTU4ZTU3MmI2NmM3Nzk0ZDRhMWQgcmVsZWFzZTIzLW1haW50CiszNDgzMiA5NzJlN2ZhMWQ1OTg2YTViMTc3MTY2ZDNhMTVhODkxZGU2ZTlkYWE5IHJlbGVhc2UyMy1tYWludAorMzQ4MzMgNDVjYjI4NGI4NGQzYWIyNjVhYTZmMjQ0N2E5ZTdmYWM2ZDU0YmEyMCByZWxlYXNlMjMtbWFpbnQKKzM0ODM0IGQ3NjMwY2U3YWE5ZmQ1YjEyMzVhNjUyZjM5OWNhN2Y5M2YwYTVhZDAgbGVnYWN5LXRydW5rCiszNDgzNSA5ZDYyNjY4OGNhN2JjZWIwNjJiYWYxYzRjYWUxYjlhMTRmNjUxNjVlIHJlbGVhc2UyMy1tYWludAorMzQ4MzYgNzQwM2UzOGEyZjEwN2M5YTlhODI0ZWU2NzdjMGFhNzkzNDUzYzVjYSByZWxlYXNlMjMtbWFpbnQKKzM0ODM2IGQyMWQ0YmEyZjk3MzQ2N2QzMDc5NGEzZDJhYzQ5MzY1ODE4MGU1MDMgcmVsZWFzZTIzLW1haW50CiszNDgzOCA1NjYzNTE5Y2YwNmZmNDNmZDI0MmU0YzVmNWIzOTc1NGI2NGZhNzkyIHJlbGVhc2UyMy1tYWludAorMzQ4MzkgZTk2ZTM5Y2QyZDE0MmIxZmMzYjU4OTgxODg1NWMwOTRkZDhmMjU5YiBsZWdhY3ktdHJ1bmsKKzM0ODQwIGJhODg2YWUzMjJlYzE2OWZkZmQzZjFkYmQ0NGMwOWJiZTlkMjNhZjMgcmVsZWFzZTIzLW1haW50CiszNDg0MSA2MGU1ZDhiN2U5NjRlNmNhOTE0YmNmZTRiOGViZTA2MDI3ZDc2NDgxIGxlZ2FjeS10cnVuaworMzQ4NDIgODM1Yjc5ZWFjODEyY2U5MDhmM2I2MGZkZmEzNDhiNjE4Mzg5YmJkZCByZWxlYXNlMjMtbWFpbnQKKzM0ODQzIDhlODBmNTUxYjBlOTY4MWM0NWJjZjg1YzhiYjhkODgzMWE4ZTBiYTkgcmVsZWFzZTIzLW1haW50CiszNDg0NCAzOGJlY2NmNGEwYmJmNzc3MGYwZWQ1YjhiOWU0NTliYzgxN2EzZWVhIHJlbGVhc2UyMy1tYWludAorMzQ4NDUgYjc3ZmQ0NjllZTM1NDFmYThmN2JmOWQ4MGEwY2FiNWIxYTE1Y2RjNSByZWxlYXNlMjMtbWFpbnQKKzM0ODQ2IDY5ZGU1YWVlMWZiYjUxMGQxZDU2ZTRlYTFmYTBhZDE5NWY5ZDNjYjMgbGVnYWN5LXRydW5rCiszNDg0NyA3YzhkYzY0MDQyM2E1MTQ4ZTE3YjM0MTM3YTc2NWM0MTM2ZDY4ZDM1IHJlbGVhc2UyMy1tYWludAorMzQ4NDggNTM1MmE2ZWJhZDlhYzQwMDljMzBiYzlmZTg0NzFjYzIyMWFhYWIyNiBsZWdhY3ktdHJ1bmsKKzM0ODQ5IDE3ZTZlOTgyOWM3ZTUwYmYxNjI3Mjk5ZTc4MDM4NzIxNGQ1YTAwNDQgcmVsZWFzZTIzLW1haW50CiszNDg1MCBmMTA4ZGI1OWViNzZhMjZiN2ExNWE5NDI3NmMxMDdlNDA4ZTI5Yjg3IHJlbGVhc2UyMy1tYWludAorMzQ4NTEgYjAyOGZkNTQxOTQxOThhOWUzMTIzNDUzZGZiNWQyMTdjZGE4ZGIwNiByZWxlYXNlMjMtbWFpbnQKKzM0ODUyIDkzOTVjZDkyZDJjZDdlNWI2OTk2ZmMzYmFiNjk0NmQ0NWY3NmI0NWQgbGVnYWN5LXRydW5rCiszNDg1MyBiZTllZjliOTJkNjEzOGMwYjcwZmM3ZDAxOTQzMmU2YzM5YzlkOWU5IGxlZ2FjeS10cnVuaworMzQ4NTQgMjFhZWI5ODMyYzFkMzI4MDQyYzRmZjZjZDJkYTExN2M5M2U5ZTY4OCBsZWdhY3ktdHJ1bmsKKzM0ODU1IDQxNWVmNTUyMWE4YWZkODUyOThmMDM1YmJmNmIxNmMyZTAxNTc4NDIgbGVnYWN5LXRydW5rCiszNDg1NiBjOTUzZmRiNTFjZGQ3ZWY4ODEzYWIyMGI5NThkNWVkMGM3MGYwNjkwIGxlZ2FjeS10cnVuaworMzQ4NTcgYzZmMTY1MDRjOGMyZjVhZGU5NjM3OTA5N2UxYTljNjU3ZTg4OTQzMCBsZWdhY3ktdHJ1bmsKKzM0ODU4IDc1YjYzZTVmMDNmMjEyMTYyNTFiNDFkZDhjNDczZTQ5YzFkNThmOGQgbGVnYWN5LXRydW5rCiszNDg1OSA4OWQyNmUwM2M2NTMwMmIwMTVlYTM1MTg0YmZiMjM5ZDk0NjFhZTUwIGxlZ2FjeS10cnVuaworMzQ4NjAgZmRlNzRmYWRmNzgwYzlhODEzOWJjYzFmZWVmM2M2ODNjMmIxYmRkOCBsZWdhY3ktdHJ1bmsKKzM0ODYxIDdhYWQyNGNhZGRiNWQwYThmOTU5NmRkMmQ5MjM3NWNhZjIyMTc3NDAgbGVnYWN5LXRydW5rCiszNDg2MiA1MDg4YTgyMzQxMTdlY2RlMmM2NDQzMTJmM2JjNzcyOGVkMTc2MDJhIGxlZ2FjeS10cnVuaworMzQ4NjMgZWIxMjdlNDAxYzY0NDlkMzcwMTMwMWRkZmUxMWEyMTY1YWY3OWI0ZCBsZWdhY3ktdHJ1bmsKKzM0ODY0IDk3ZWJkMWIyZjQ2ODU1N2QwM2IzYWRhMjY4NDFlOTQ5N2VkNjU3NzIgbGVnYWN5LXRydW5rCiszNDg2NSBlOWYzYjgyMmNlMDJlYzk4NmNkZjUyOTQyMjA0NGNmYTVhNTQyOWMxIHJlbGVhc2UyMy1tYWludAorMzQ4NjYgOWU3NTA3NTMwMTBhZDgyY2JiYjZkMzJkMDFlYmQ3ZmE5MjAwMTkzNyByZWxlYXNlMjMtbWFpbnQKKzM0ODY3IDA1MmU0YzU3MjI2MTVlMWY0OTkzZjRiNTQzZTdkZDI1MDZmZDRjYTQgcmVsZWFzZTIzLW1haW50CiszNDg2OCAwMTcwNDg1NjU5MzZiODMyYWI1YzQ5MTZiZjdmMmNjMWM0MmM2OThhIHJlbGVhc2UyMy1tYWludAorMzQ4NjkgZDM2MjI3M2Q0NjhiZDEzZTgxMzViN2Y5N2QxZjc5MDZiYTk2ZGFmMCBsZWdhY3ktdHJ1bmsKKzM0ODcwIDllZDc1MjU1OTQ3NzdlZTRmZDU0MDNkZmM0N2I5Mjk2Nzc3ZjhiMjAgbGVnYWN5LXRydW5rCiszNDg3MSAzODFhZTMyNmVlNjU1NWU3NGRmNzQ0N2ZiMGI5NzI5ODkyNWRiMjJjIHJlbGVhc2UyMy1tYWludAorMzQ4NzIgZGNmNWJlMGYwYTFmOWFhMDU4MzQ5NTVmZDE4NWEwMjk2NjliYzZmNiByZWxlYXNlMjMtbWFpbnQKKzM0ODczIDg1MThjNDY4MTc3MWY3MDQwNDJmYjg4MzlkNjUwYTYyNjY2MjYyMTYgbGVnYWN5LXRydW5rCiszNDg3NCA5NGMxYmQ3YTU1YWVmNTQ0OGZjNjk1ZjI4YzUzZjFlNTY4MGQ3Mzg0IHJlbGVhc2UyMy1tYWludAorMzQ4NzUgNjBiYzExZTMwMDY4MmJhNGFkMDkxZTRkNGE0OTA0YzJiM2U4OTEyNCBsZWdhY3ktdHJ1bmsKKzM0ODc2IDYxNGFkNTM4OGM5ZGUwMDAzOGE1NDE3MzlhMWRkYTU5NjA0ZmFmMjAgbGVnYWN5LXRydW5rCiszNDg3NyBkMWQyOGNjYTQyYzE5N2YxZWI3N2M5MDU1YWQyYTdjMjM3YzFiNzEyIHJlbGVhc2UyMy1tYWludAorMzQ4NzggMWRkYzg2YjU4MDQwMDYyYmM1Y2Q5ZjdjYWRlMGJhYWUxYjRjYThiMiBsZWdhY3ktdHJ1bmsKKzM0ODc5IDI2ZWZhOGE1MzkyNTk0M2IzZmJiZmJiNDM0MGI5Yzc5MGJiOGE3MDggbGVnYWN5LXRydW5rCiszNDg4MCA5NGRmZjRhMDJjYTMwNjc3YjZjZDAzOGRmNTMzZWI1ZDhmMjFmOGRmIGxlZ2FjeS10cnVuaworMzQ4ODEgOWY4YzA1NTg3MjEzZTFkODg1MTVjMGY1YTNmNTMwMTVhYzA1NTgyMiByZWxlYXNlMjMtbWFpbnQKKzM0ODgyIDRlYjVmMGNhYjA5ZTRhZDFlNjVjOWQxNzFkNDNiNzUwMzBhZGY4NzkgbGVnYWN5LXRydW5rCiszNDg4MyBlMWYxZmI3NDQ1MWI5YzBkMDE2NjYxMWVlNjg2NWQ5MTRmZjM0MzQzIGxlZ2FjeS10cnVuaworMzQ4ODQgMmEwNzgyY2MxNTFmODQwNDE3Y2YxNTkyYjg3NjliN2Y2ZWZlNDg1YSBsZWdhY3ktdHJ1bmsKKzM0ODg1IDRhMTJkOTFhZjhjM2Y5NWYxNDg3ODk2YWEzMDdiMTE0NGYzYjEyMTMgbGVnYWN5LXRydW5rCiszNDg4NiBjNzI3YWQwMDNmZGJhY2QyYmU4ZjRkYzQwYTM5Njk2MWRkYjc4NzE4IGxlZ2FjeS10cnVuaworMzQ4ODcgMDM2NzM3NzMzMDg0NDdkYzkzNmRlNjk5ZTVlOGJiYTIzNThkOWVlZSBsZWdhY3ktdHJ1bmsKKzM0ODg4IGFhYjM2MTJmMmMzNTJiMGExYTQ5MDgxZTBiMjZiYTBjOTAzZTYwZTggbGVnYWN5LXRydW5rCiszNDg4OSA4ODVkYmYxNTc4YmNiMDZiYzVhZTEyM2FkMjZmZTAyNmU2MzFkOWQ4IGxlZ2FjeS10cnVuaworMzQ4OTAgMDYzYjdkMjI1ZThhYjg0NzZiNmQyN2YzNzgzYTRiYjUwZDVkM2U5OCBsZWdhY3ktdHJ1bmsKKzM0ODkxIDQ1Y2FiZTljZDljOTI2MWYyNzdmYjc4OGYxODYwZmM3NzVlZWZiMTcgbGVnYWN5LXRydW5rCiszNDg5MiA0ODcwMmYxOWNjZmIzZWIwYmY1NGI3ZDZkOWFlM2RiMzMyOTEzZGE1IGxlZ2FjeS10cnVuaworMzQ4OTMgNGNjMTY2MTViMDcyNDVmYTQ3MTVlODA2NzNjNDdlNzg5OWIyMTUzOSByZWxlYXNlMjMtbWFpbnQKKzM0ODk0IGMyMmVlYzgwNzIyNDc0MmQzYjEzODM3OGNjY2MzOGFlYmM4NDUwYjQgbGVnYWN5LXRydW5rCiszNDg5NSBjYThhNjk5NjlmMDM4ZjUwNjE2MjA1YjlhZTUzODMyMzU1NTljZDU0IGxlZ2FjeS10cnVuaworMzQ4OTYgZTRmYjYxNjQxNThjNzg0ZDkzZGM3OGUzMjQ1MjYyYTc2MmViZDUyZiBsZWdhY3ktdHJ1bmsKKzM0ODk3IGM5YmJjOTY3YWM5ZjYwOWY5MWQ2ODc1NzZmN2I2YWUzMWViNDVkZWMgbGVnYWN5LXRydW5rCiszNDg5OCA4OGU4MGEwNDMyOGEzODQ3Y2UwZmE5NWQ1Yjk4YzZlNjIzMzEyMjc2IGxlZ2FjeS10cnVuaworMzQ4OTkgNWNjMWE0MDBhMDJjMzExYTRmMWM1OTg5NzhjZGY1ZjNlYWYzN2MzNCBsZWdhY3ktdHJ1bmsKKzM0OTAwIDM4MTE0MGU3ZTlkNzcxNWNmZTcxZmY3YjQ5ZjUxN2NmYmQ3ZTQyMzUgbGVnYWN5LXRydW5rCiszNDkwMSBlZWFhMzY2MDY3MWNiNmFkNjk2YzAzYmJjMzhiMjhjMzk1MWU4YTVlIGxlZ2FjeS10cnVuaworMzQ5MDIgMWJiYzIwODVmMjEzYjBiYTY0MTI4NWI5ZjFhNmE1NWQxNmZhMzBkZiBsZWdhY3ktdHJ1bmsKKzM0OTAzIDIxYTI3YzIxYTJjNTdhZTNiNjcwZjFmNzkxNTRkOTY4NmM5ZDUwNDkgbGVnYWN5LXRydW5rCiszNDkwNCA0OTQyYTBiNjNjOGNjZjFmYzVkMTFlN2NiYzk3YjZjMTdjMGNlNjIwIGxlZ2FjeS10cnVuaworMzQ5MDUgZTVkOTdhYjcxMGEyMjVkM2U0Y2YxNmI4Y2ZmOWUzY2RlNzBjOTY1ZiBsZWdhY3ktdHJ1bmsKKzM0OTA2IGM5OTYyMGNkOWM2NTUyOTU5ZGZjZDg2NDk1OWYwYzQ4NDUzOTU3NWYgbGVnYWN5LXRydW5rCiszNDkwNyAxMGM0Y2MzNTJkMTNhNWJlNDgyNjA4ZjNlMTU5ZmJlN2NkMjJkMTI3IGxlZ2FjeS10cnVuaworMzQ5MDggNDdlYWEzOGIyOWNiZjY1NTc5ZTBiYzllNzk2NTEzOWI1MGVmOGE2OCBsZWdhY3ktdHJ1bmsKKzM0OTA5IDc0YzE1NDcwOGIwY2ExOWNhZGY3NjVjMDUxMTg4M2I2NWJjOWM2MDMgbGVnYWN5LXRydW5rCiszNDkxMCBmMjg5ODIwNjBiMjBjMDg2M2EwNTQ5ZmU0ZjE1YTJlODc5OTg1M2I4IGxlZ2FjeS10cnVuaworMzQ5MTEgZjJlMGQ2MzBjZjM5ZmU3NGJiNzVlMmZlMmU0ZWNkNmExMzZmNTM1MCBsZWdhY3ktdHJ1bmsKKzM0OTEyIGIyYTBjZDJlOWQ1NTExMjhkM2RiOGFmYjNkNTVjYTFjMDZlYjJkODggbGVnYWN5LXRydW5rCiszNDkxMyBjODVhOWVjNTc5NmNkMDljOTZhYjYxZjUzY2FhNTIxODYwZGI0ZGEzIGxlZ2FjeS10cnVuaworMzQ5MTQgMjkyYWQxMzVjZWYxNDYyMGFiNGI4ZjUwOGNjMGNhMjYyNmY3OWI3NyBsZWdhY3ktdHJ1bmsKKzM0OTE1IGU0NjgyYWY3YWVhOWVjNTJkMzIyOTg2ZTJmZjlmODM0YmYwYTM2OWQgbGVnYWN5LXRydW5rCiszNDkxNiAyMmYwOWFiMGJhZTk0NmJiYWViYmU5Mzg5MmMzNGY2MTZmM2E3M2E1IGxlZ2FjeS10cnVuaworMzQ5MTcgMWFkMGRmODdlZDZjMmU1MDA4ODI1NDA1MDM1OWNhZjIwN2NkMzQ3MCByZWxlYXNlMjMtbWFpbnQKKzM0OTE4IDdhNmQwODE0YjU2MWVkMWFkZmVmZTE5ODdjOWNkMDRjNjdiZjgyODYgcmVsZWFzZTIzLW1haW50CiszNDkxOSAyMjliYjlmMmU5NmYzZmUxNWExMWE1MWUzYmU0NTVhYTU0N2NhNzFhIHJlbGVhc2UyMy1tYWludAorMzQ5MjAgZDZjZWEyMjhmYjI1OWJhOTIzNTIwYmJmMzQyOTNiNjlkYmJlZmRlMSByZWxlYXNlMjMtbWFpbnQKKzM0OTIxIDY4NDU2OTczNTNhMzE1MjVhOGEwMjUxODBlZTgxNjRmMjUzYWE2MTAgcmVsZWFzZTIzLW1haW50CiszNDkyMiBkOTgxMTc1OWU3ZGViZGUwMWEyYTE4NGZjMThiOTZmZjVkNjFlMDcxIGxlZ2FjeS10cnVuaworMzQ5MjMgNTA0OTQzYzg5MTkzZGEwZGMxM2ZjMDdmNjYwZGJkZjk4MWY0NTI5ZiBsZWdhY3ktdHJ1bmsKKzM0OTI0IDYzY2M5ZmNkMjg1ZTRiM2ZhNTQxMDljZjNiNGE5NmMwYzcyOTU1YmEgbGVnYWN5LXRydW5rCiszNDkyNSBlNTA2NThiM2RmMGU3MTJiNGY5Njc5NzEzMzhiODdkN2RjNzdlODI3IGxlZ2FjeS10cnVuaworMzQ5MjYgMDJlYmUzNDU2NTk1MzE4MTNjYmQ2OTY4ZGQyZjhlZTA2ZTU5MGUyZSBsZWdhY3ktdHJ1bmsKKzM0OTI3IGJmYTAzNjlkNjc2MGIyMjhiNDM5YWEyODE1Y2E1YTMwYmMwNTI5ZDggbGVnYWN5LXRydW5rCiszNDkyOCBkZDc4OTA3MmQ5NDkwMzBlNTZkNTMyN2M1NTZlZWQwYzhiZWJiMGY1IHJlbGVhc2UyMy1tYWludAorMzQ5MjkgY2JiZmQ0MTI3ZTI0NzU0ZTZjNTdmYzJjZjc2NjVlZGExMGY2YWQxMiBsZWdhY3ktdHJ1bmsKKzM0OTMwIDM3NzFmZjk5ZDVmMjhhZDAxMmEyMjAyZTczODdlOTJkMzRmYWQ2ZGEgbGVnYWN5LXRydW5rCiszNDkzMSBmMzg4ZTgzZjhlNDMzOGUxNzVmMjc1M2VjOGVlNWM5MTAzZmQ3ZDkyIGxlZ2FjeS10cnVuaworMzQ5MzIgOTQ5M2RkMjIyZmJiOWIwODZiMDNlOTg5YmJiNWFhNjA1NDczYjEzZiBsZWdhY3ktdHJ1bmsKKzM0OTMzIDVlOTc3NTdkODdlNzMwMzdmMDc2MmMzZDFhODM4NmIwYTlmNmViYzAgbGVnYWN5LXRydW5rCiszNDkzNCBjMDZiNTcwYWRmMTIyYmJlOGMyMTA4NWUxNjE5OTdjYzM2MjRkMTczIGxlZ2FjeS10cnVuaworMzQ5MzUgNGQwNzU2YTEzZjZiOWU0YzhlZGI3MWI2MjdkZWE0YTM5N2E0MWRlNSBsZWdhY3ktdHJ1bmsKKzM0OTM2IDViMDM1ZTZlNDRkYzY4YWVhY2RkNmUxZDA2OTg1MjI4NzFhNzBiN2UgbGVnYWN5LXRydW5rCiszNDkzNyAzNjA3ZjIzMzUyYjk4NTk4YjY1ODBiZTBkNmQyOTQ3YmVlNDE4OWI4IGxlZ2FjeS10cnVuaworMzQ5MzggZGVmMjc1Mjc3MjgwNjFhNDE5ZDBlODk4YTdjNzlhODhjNzQzNDg1NCByZWxlYXNlMjMtbWFpbnQKKzM0OTM5IDg5NzY3YzE4YzYxNjA4YjZlYjlkZjRmYmMwMjNmOTFiOWIwN2U1ZTQgcmVsZWFzZTIzLW1haW50CiszNDk0MCA4OGUwMDAyMWFjZmY2ZWI4YmNmZWJhMDgxYWIzNjA2M2JjOTM1YTIwIGxlZ2FjeS10cnVuaworMzQ5NDEgOTcwNjJkMzY1OGZlN2M3MDc5MmJjMjRhZmZiZjg3YzY2NDU2MTI4OSBsZWdhY3ktdHJ1bmsKKzM0OTQyIDBmNzA5Y2VhNDNjNzE2ZjE4OThlNjViOTMyOTc2MWJiMWI0ODkzZjMgcmVsZWFzZTIzLW1haW50CiszNDk0MyBlYTNjNmY2ZTQ2NzkxYzZmYjJlNzk2ZDcyYzBmYjBiMTZlMDZmODY3IHJlbGVhc2UyMy1tYWludAorMzQ5NDQgZWRlNTE4YjBiOWRhNzlmODU0MmU4ZWVhYWFmYzNlODJkMTRmZDRlNSByZWxlYXNlMjMtbWFpbnQKKzM0OTQ1IGMyOTY3Y2U3YzAxZTQ1MjY4NDYyYTA1ZTc5ZWYzMDQwZjJlOGU0Y2QgcmVsZWFzZTIzLW1haW50CiszNDk0NiA5NTVjYjk2OTc3NjdmZTI5OTUxN2U1ZjE3ODRmNTVmNGUzMzU0NTU4IGxlZ2FjeS10cnVuaworMzQ5NDcgMWE5ODhhMDZiZDMzNmI3NjU2NmUwNmQ5NDFmNDgzMGQ0Y2Q1ZmZjZSByZWxlYXNlMjMtbWFpbnQKKzM0OTQ4IGI4MGEzYjgyZGNmOWUyZTQyN2Q1ZmQ4NDMwMzlkZGQxZmU4Njk2NTYgcmVsZWFzZTIzLW1haW50CiszNDk0OSAzOTUwODJkYzIxOTQyOTg5MWRkNzE2NDU4ZmFkMThjYzg1MWYyY2MxIGxlZ2FjeS10cnVuaworMzQ5NTAgNjQxNjZlYWY2MjEyNGIwMTBjY2ZlOTI0ZmJmYzllNTA2YmNjYTIzMiByZWxlYXNlMjMtbWFpbnQKKzM0OTUxIGE1OTIyYjlkMDM3OWEwNzY4NTA0M2MyMTM5M2YwOGVlMDRmNGJiYjMgbGVnYWN5LXRydW5rCiszNDk1MiAzODg1NWZkYTQyOGE2OGQ2MTI5NzQyMjJiYTQ1N2E2ZDcxYTI4ZDk0IGxlZ2FjeS10cnVuaworMzQ5NTMgMmIwYzc4NWFiMzBhNmUyMjdkOWQwNTYwYWY0OWFkNmIyMzU5ZDkyMSByZWxlYXNlMjMtbWFpbnQKKzM0OTU0IDY3YjlkZTYyZWNiODY5Mjc3MDFjMWZjMzMzMDcwOTk3OWRkOWE1MWYgcmVsZWFzZTIzLW1haW50CiszNDk1NSA5YTNhMTZiODJkY2JiZTRhMGJhODI2MmE1ZTZlYTBhZDNmYjVjMTMxIHJlbGVhc2UyMy1tYWludAorMzQ5NTYgZmI3NTllMjgxYTJmMjMwMDg1MjQxZDRhZWIzNjQ3YjMzOGY4OGRkYSByZWxlYXNlMjMtbWFpbnQKKzM0OTU3IGQwOTllZDkzMjk5M2Y5M2Q5MTg1YTE2NTJhNjA0YWU4ZTlkNjkxNWIgcmVsZWFzZTIzLW1haW50CiszNDk1OCA1ZGM1NzU3YjExOGFiZjNjY2Y2N2E1NzliYmVmN2JmMGVlYTViMWIyIHJlbGVhc2UyMy1tYWludAorMzQ5NTkgYjIyMGI1OTBlMmVhOGVhNzQwY2M3YmY5ZjMxY2JhN2Q1MmFiMDVlMSBsZWdhY3ktdHJ1bmsKKzM0OTYwIGFjYmM3NTYzYThlN2VkZjczNWM2ZjQ2ODMwOGY0NzFjNGQ2MDI2NzggbGVnYWN5LXRydW5rCiszNDk2MSBhNmYzNGZiYTkzNzA2OTg3YzdhYTkwYmU3N2FjMDRhMDQ0ZDU5MWUzIGxlZ2FjeS10cnVuaworMzQ5NjIgNGVkZjIwMGE4MTE4NWE0N2ZiNzQ2MWY0M2VjOWJjNDM2N2FlNzZiYiBsZWdhY3ktdHJ1bmsKKzM0OTYzIGYwYWUzMTNhMmFjODY0NzJkNDRiMDg2NGI4ZDFhNThhN2E1M2IwZmUgcmVsZWFzZTIzLW1haW50CiszNDk2NCAzYzRjMDg3NDk0ZTBjYjg4NDE5MDQyODIwNjlhOGIyZmU2NGUxNjM0IHJlbGVhc2UyMy1tYWludAorMzQ5NjQgYThmMTI4NmYyMTcxMjljZGI1M2UzMjBlZTEyNWQyYzJjODBlMTM3NyByZWxlYXNlMjMtbWFpbnQKKzM0OTY2IDI4ZWIwMDQ2Y2U4YTc2M2E4ZDNhZGRlZmIzZGFmM2I0YWZjMTc0ZmMgbGVnYWN5LXRydW5rCiszNDk2NyBkZjhlODc5YzhkNzZkNTBjZWRkZjEyY2JjMWRlNzc2OGIyOWNmNGJkIHJlbGVhc2UyMy1tYWludAorMzQ5NjggOWM2YTUxZDg3OTMwMjk0NDY2ZmVhODY2ZWMyMzljY2IzZjBiZDY4OSByZWxlYXNlMjMtbWFpbnQKKzM0OTY5IDFjYjg3ZGFkMjYzZDc3ZGQ0MGMyY2U0ZTk4NjRjZGQ5MTk1ZDljZGMgbGVnYWN5LXRydW5rCiszNDk3MCA4ZWEzYTgyZjkxM2Y2Y2EzYzA5Mjc1YjRiNWY5NDM1OGE1MTA1M2ZhIGxlZ2FjeS10cnVuaworMzQ5NzEgY2UxNjViZThjNmI4OTg2YmQxZjEyNWUxZjRkMjhkYjdlYzFlMmU2OSBsZWdhY3ktdHJ1bmsKKzM0OTcyIDM1M2ExNjAzM2Y2YTRlZDY5NTg5MGU1MTk2ZTk1YzI3MWI5MWQyNzcgbGVnYWN5LXRydW5rCiszNDk3MyAzNTM5M2E5MmFjZDFkMzcxMTM0MjMyMTU1MWFkNzg0MmVlZmIzNmQ1IGxlZ2FjeS10cnVuaworMzQ5NzQgZGZkMDExNGNmOWVjZTdjNjIwZDQxMmY3NjYzNWRhZDI3M2JmY2I1MyBsZWdhY3ktdHJ1bmsKKzM0OTc1IGUxMThlNGU4ZTIyNDhlNGQ2NWIzZDczYmU1OGE5MWU1NzQyYTY2ZTggbGVnYWN5LXRydW5rCiszNDk3NiA4OTIxMTZhODg2ZTAwNTFhOGQzMmFmYzNhMjMzMmQ2YTAzYTRiOTJjIGxlZ2FjeS10cnVuaworMzQ5NzcgYzE0MDIxNzZlMWE2NTViMjM1ZjA1YzlkMDMzMTVmYTA5NDE5Mzk1NiBsZWdhY3ktdHJ1bmsKKzM0OTc4IGY2MDY0ZjhjMTQ2MDRlM2NiZjc4MzNlOTExNTZjOTMwYTM4NTAxYWMgbGVnYWN5LXRydW5rCiszNDk3OSBhODA3NzI2ZGY0YjdmOTU0ZGRlZGIxZjNhZjY2NmZiNWE1ZjQxY2U0IGxlZ2FjeS10cnVuaworMzQ5ODAgNTUyYTUzNTVkOGE4ZjYzNWQxN2EyODY1N2ViNzM3M2VmMWU2ZjU0NyByZWxlYXNlMjMtbWFpbnQKKzM0OTgxIDcwNmM5NmUxNTFhMDg5ZjI0OGYwZjI3Y2ZlNmRlZWFjOTAzMjQ3NTkgbGVnYWN5LXRydW5rCiszNDk4MiAyYThmNWViOGQ4M2UxMzAyZDU0YzVhYmYzNjZhM2ZlMDJiMWQwZmY1IGxlZ2FjeS10cnVuaworMzQ5ODMgYmU4ODJhOWEzZDViNTIyMGRkY2UwMjNhYjAxMTMwNDcwZmVhNTc1YyBsZWdhY3ktdHJ1bmsKKzM0OTg0IDkxYjU5ZjJmZWU3YzFmMTE2ZWEzNjRlYzZkMTJkZTcyMjYzNWQyZTYgbGVnYWN5LXRydW5rCiszNDk4NSA0NzEyOTE1MmNiNzAxMGE3Y2I2Njc1NDcwZTQ5MTEwNTFlMTI3N2QzIGxlZ2FjeS10cnVuaworMzQ5ODYgZWU1MzI4MDU0NmNlN2QzMzQ5ZjkzMTY4NGJlMzFkY2E0NTk0ZDczNyBsZWdhY3ktdHJ1bmsKKzM0OTg3IDFlMTZjYjhiMDIyMTllNjM2OWFkOGFjY2ZiNTM0YzQ3NDIxZmMzNTUgcmVsZWFzZTIyLW1haW50CiszNDk4OCBjYzdmMjlhYzJlOTgxNjQxZmE2ODc5YTA4MTc0ZWY3ZjljMDk0NTI3IGxlZ2FjeS10cnVuaworMzQ5ODkgOTA1NjBhOWNmM2U4YjlhMWY3MGY1MjNlYzUzNmFkMjg5NDU5OWQ2YSBsZWdhY3ktdHJ1bmsKKzM0OTkwIDBiZTkyNWQxNmUyOTNmZGZmMWQzYmRiMjY3OWY2NDdkMTU2YTY5YjQgbGVnYWN5LXRydW5rCiszNDk5MSA1M2FlMWMzZDRhN2MxODU2NWE5ODQ0NDQyZGQyN2ZjZWE0OTkwMDAzIGxlZ2FjeS10cnVuaworMzQ5OTIgMGZmYjYyNmQ3ODg4MWZlNDI0MTk3NjkyNTBmZWVjYTlhOTk0N2JhNCBsZWdhY3ktdHJ1bmsKKzM0OTkzIGE4ZTNiYjIzZjVhOGI3YzYyMGM1YjdlYTJiMWZjMmMzMjYxOTE3ZGYgbGVnYWN5LXRydW5rCiszNDk5NCBlMjZmZGE5ZGU2N2YyODk0NDg0MWYyMDYwZmJkNjJjYmNkYmIyNmI1IGxlZ2FjeS10cnVuaworMzQ5OTUgN2FiMDgwYmJkNjBhNjg1YzMxN2ZmN2Y3OTQxYTU0YTZhMWFkZDFkZSBhc3QtYnJhbmNoCiszNDk5NiA1NWQ0MmFhZWIwZWVmODY2MzU5Njk1MDM1NzVjOWRjY2JlOWE5YTcwIGFzdC1icmFuY2gKKzM0OTk3IDdjYzExMTI3MjczZTdlOTRjNzRiYTc5OGM2MTQ4OTVlMjZkZDQ1Y2EgYXN0LWJyYW5jaAorMzQ5OTggZWE2YjE5YTEwYTAxNjQwMjc4N2RiMDFhMDRjODM1ZjU1MTdjNmU4MCBsZWdhY3ktdHJ1bmsKKzM0OTk5IDI5YzFiN2I2ZmQ3ZTU3OTI1NzhlYmY5MjI1YWIzODU4MTczOWU0N2EgcmVsZWFzZTIzLW1haW50CiszNTAwMCAyNTUxOWQ2Yzk3Yjg2ZTczNjhmNTgwMmY4NTk1NzQ1MDEyYWU2MzFmIGxlZ2FjeS10cnVuaworMzUwMDEgODAyZDkzN2Y1OTZhYmViMDRiMzJlOTFmYzdlZmExZTE1NjZiZGJjOCBhc3QtYnJhbmNoCiszNTAwMiAxYWUyNjc5OTRmYTAzNTBhYTU4NjVjNTJhZjAxNGY3MTM3NzJmNmYzIGFzdC1icmFuY2gKKzM1MDAzIDZhMTE2OTVmZTY5OGViMmM4NDRhMjY3MWE2Yjc3ZTgyMGU1OWM1NjggYXN0LWJyYW5jaAorMzUwMDQgMDkwODE2YmQ4YmFjMDAxZDY1MmJjOWQ3YTljNDM2NGM0MzNmYjhiZCBhc3QtYnJhbmNoCiszNTAwNSAyNGQzNGFiNGVmNzU0OWMyYTdjMTUyNmEyZjJlNTMxZDU4YmVlNzQ0IGxlZ2FjeS10cnVuaworMzUwMDYgOGMxM2FiNjliYTRmMTQ3YTVjZGVmMDRkNWZkZjdjNjFhZTNiZmZmMCBsZWdhY3ktdHJ1bmsKKzM1MDA3IDFkYzI2NTllZDlmYzM5Y2NlZTQ5ZThiNDU4ZDY3MDJmMzU5OTYyZDkgbGVnYWN5LXRydW5rCiszNTAwOCA2YzNjM2I3NzFhYmNmYzllN2JkZmNkOGUyNTExYWNjZDQxYWYyNDY2IGxlZ2FjeS10cnVuaworMzUwMDkgMzFhMjgwOTAyNGY1MjFiNGE2NDA3ZDUxYzAyYTM3MWU1YmNiNjY1NCBsZWdhY3ktdHJ1bmsKKzM1MDEwIDU3NTUzMTU3YzE5NjZjMjc5YmQyM2ExMWQyOTg2MWI3OTEwYzIyYzkgbGVnYWN5LXRydW5rCiszNTAxMSAzMTU4ZGMxNTMyZmExNzNjZTFhMmMwOWU0NDc2YzM1NmRmMjk4MDZlIGxlZ2FjeS10cnVuaworMzUwMTIgYjg3ZDE5OThlZjAwMDRkM2U1NGQ2YjY5NTkyMzRlMmViMDQ0NjVkMiBsZWdhY3ktdHJ1bmsKKzM1MDEzIDhiNjJmNDE5NGE3ZTc5MzY5ODkwYmM1NjVlNGNmNGVlZmQ5Njk2MjQgbGVnYWN5LXRydW5rCiszNTAxNCBkNmQxZWZkY2M1ZmRkNDRiMjcwYTJkODU2M2IwYzY2Mzk4ZjZlNjU5IGxlZ2FjeS10cnVuaworMzUwMTUgMTM5YTZiNmMxNTBhNTlmYjg3ZjRkM2ExMmZmMmJmNzc3ZTM5ZTQ4NyBsZWdhY3ktdHJ1bmsKKzM1MDE2IDczNjY4NzVhM2NkNzA3Y2ZhZGY0ZjIxZDNkMjA1ZTQ4ZDQ0Nzk5YmIgbGVnYWN5LXRydW5rCiszNTAxNyAzODk0NjU0YjQ4NDhlMTc1NmUyMjFhODBhN2U4ZDY0OWE3MGRiYTc0IGxlZ2FjeS10cnVuaworMzUwMTggMWMwZTRhNTI2NzNhYTU4MzhkMmE3MjE3N2I0ZGU5N2EwMzFkZjA0OCBsZWdhY3ktdHJ1bmsKKzM1MDE5IGZkNGNiYmVhY2U3OWVjYzQxZWRkMzFiMzMxNmIyYTU3OTM1Nzc3ODkgbGVnYWN5LXRydW5rCiszNTAyMCAyY2Q5NjYyOWZlOGQxNDgwZDIxMzg3MDI1ZmM3ZmY2MjhhODliOTRjIGxlZ2FjeS10cnVuaworMzUwMjEgZWM0YTk5ZDE0Y2E0NjA0ZDI0MmY3NTk2NTM0MzRlN2NlNmIzODc0NSBsZWdhY3ktdHJ1bmsKKzM1MDIyIDg2OGNhY2UyMjE5ZmY3MmY4ZWU1Y2E2NmI5ZmVkMDBiYTVkNTQ1ZGMgbGVnYWN5LXRydW5rCiszNTAyMyA4ZTcwODkyYTlmMjVjYjc0MGIyYzg1MjRjZTIzNTAzNjAzZGY5YTVhIGxlZ2FjeS10cnVuaworMzUwMjQgYzg1NGExZjJkMTliODE0MjI3NGUwZGE3OGEwODBiNjhiOGNjZWU1YyBsZWdhY3ktdHJ1bmsKKzM1MDI1IDJjMWJhMjQxYjNjMDdhMjhjMDQ1NjUzMzcwN2Y5YWZiODU3NjM1ZTMgbGVnYWN5LXRydW5rCiszNTAyNiAyOGQwMGIxYTg0NDc2MDY0MGU1OGJkZGI3MjA3YmEyNTk4NGRhMWFjIGxlZ2FjeS10cnVuaworMzUwMjcgMjg0ZGIyYTVmNjIwYjA4NWZmMWE0MzE4YzhlMzIxMjIxZDk4MmYzYSBsZWdhY3ktdHJ1bmsKKzM1MDI4IDI2ZWNhNzA4YjZkZDY3NTI0MGYyMTgxNTkyMTg1YTAxOGU5ZjM3MWYgbGVnYWN5LXRydW5rCiszNTAyOSBhZDNmYWY1MmUxOWU0MDNhZGViMTAwMDJhMTBlMjNlMGIyOGE3ZDRkIGxlZ2FjeS10cnVuaworMzUwMzAgN2VhMDY3ZDc0OWEwMDY2MDRiNDMwY2UxOTU4M2I0MmI2MjhlOGMzZiBsZWdhY3ktdHJ1bmsKKzM1MDMxIGJmODQwMmE1NmZhNDI3YjI1NTFmMzEzZGUwMjMzYzM2MWJkYTM3NjEgbGVnYWN5LXRydW5rCiszNTAzMiA3NGMwNzNiYTZjM2IyYTQyMDEwYWY5ZjIxMDY5MzJhMGE4MDU0YTExIGFzdC1icmFuY2gKKzM1MDMzIGU0MDFjMGYyOWY1MGQ4OGJlNDBkNDI4Nzg5NzVmYTRiYTIxMDhhZTIgbGVnYWN5LXRydW5rCiszNTAzNCAzOGIyM2U2ZDRjNGI5NjRmZWNmNjZmNjI4OTUyZDU0OWI4Mzk2Mjc4IGFzdC1icmFuY2gKKzM1MDM1IGUzNDc0ZWQ4MGE1ZWY3YTAwNTNlZWMwMDcxZGQzMzUzMGEzNjMxNDAgbGVnYWN5LXRydW5rCiszNTAzNiA2ZDQxODgwMWYxNDJkZmYxOTMxZWU0YTQ1MmFkMjY4NjYzZDIzMWM0IHJlbGVhc2UyMy1tYWludAorMzUwMzcgNzQ0MzIzYjc2OGYwZDRhZTk5MTM1ZjA4YjhiNTQ2NWI2NWI2ZGFmNyBsZWdhY3ktdHJ1bmsKKzM1MDM4IGM1M2RhZjM1YmJjY2MwYTk1YWMzN2EzZDQ3MGJmNDk4YTQzMDVjYjAgbGVnYWN5LXRydW5rCiszNTAzOSA4NzM3YmI0NGUyMmZhOGRiZjYzZGM3YjZjYzFhNzhkYTc5Zjc1N2UxIHJlbGVhc2UyMy1tYWludAorMzUwNDAgMDYxZWZmYWJhZmNiZDdmNDUxNDI1YzM5ZjI5YTQzMjZjNWZiMTkyMyBsZWdhY3ktdHJ1bmsKKzM1MDQxIGRjZDc0M2U3OWNlMzU2ZWQ3MDk0YjQxOTUyODAyZWNhYTlmYmY5OWMgbGVnYWN5LXRydW5rCiszNTA0MiAzMzY4YTRkMjVmMTc3ZGVlNjE4ZTc0YzU4MTUzNjgwMjk4YzVmN2QyIHJlbGVhc2UyMy1tYWludAorMzUwNDMgNTgzZDVhYTgxMDFjZTNhODc1MGI2OTQwYzY2OGMxZWE0ODU5YzliZiBsZWdhY3ktdHJ1bmsKKzM1MDQ0IDVlYjllMjVlNjNmZDVlZDg2NDBhZWMxNTk0YTViYTljMGMxN2YwMDAgbGVnYWN5LXRydW5rCiszNTA0NSAwZWE4ZWJlYjZhYTJiOGE1OGU2OGVkNDAxMzA4ODJjYzAzYzUyNWFiIGxlZ2FjeS10cnVuaworMzUwNDYgODA5OTc4YzMwNGJlNGI5NmM2ODczMWJiNmJjMmJkNjY1MjgwYzZiYyBsZWdhY3ktdHJ1bmsKKzM1MDQ3IGZmZjFlODVkMTk1YzE3NTUwYjNlNTQxNDRhMGUwYzRjNjAyN2Q2NTcgbGVnYWN5LXRydW5rCiszNTA0OCBjZDdiNzBhNGM0NDAyMTBhMDUwNmVmMDVlNjc3MDExNDU0N2JiYmU0IGxlZ2FjeS10cnVuaworMzUwNDkgYTUzMTkwYjM4NzI3Yjc3MDY0MDAzODI2MWFjMTE1ZjVlZTdiYTVmNyBsZWdhY3ktdHJ1bmsKKzM1MDUwIGI2NzRhYjU4MDhiYWZmYjI2MDdhYjljYWVlODk0ZTYxY2MzOWQ3MDIgbGVnYWN5LXRydW5rCiszNTA1MSAwOTlhNGEyZjFmNzdjYWY5YmU5ZWJmYmU1NDFmOTFkM2NjYTY1YTcwIGxlZ2FjeS10cnVuaworMzUwNTIgMzMyOTQyMDZkNTM5ZjU5ZjJiMTU2NDY0YjFkN2I3ZThkMWNhMzhkNCBsZWdhY3ktdHJ1bmsKKzM1MDUzIGNhNDM3NDY2MjYzMjQ3NWJlN2NjMmMzOTRlZDAyYmQxNDE0ODI4OWMgbGVnYWN5LXRydW5rCiszNTA1NCBlZDY4OWQwYzYzYzEzYjFiNGFiNDA4MWY4MWYyYTNiYTZlNmMyMWUyIGxlZ2FjeS10cnVuaworMzUwNTUgOTY3MjIzNzdkNDEyYzIxNDU1NmFiNGY3N2QwNjk5NGRmYTdhOGViMyBsZWdhY3ktdHJ1bmsKKzM1MDU2IGM2NzAxZDg0YTNmYTFiM2Y3ZTBmZjRhNDM0ZjYwMzcwM2E3ZmMxZGEgbGVnYWN5LXRydW5rCiszNTA1NyBhZjk0NmRiNjdhZmM0NGQ0YmE2YWUyNWQ2MGNmYjE0MzcyYzYxNjdjIGxlZ2FjeS10cnVuaworMzUwNTggYjQ1MzJjMjQ2YTNhMGVjNDEzY2NmZmY4ODg4ZjYzZDM5ZjgxYzYzMiBsZWdhY3ktdHJ1bmsKKzM1MDU5IDNjYzBkOGZkNGUyYjY4MWFjYzgxODNmNjM1Y2EyNjAyN2U0NDVmYzAgbGVnYWN5LXRydW5rCiszNTA2MCA4YzcwOTA5MDhjZWNmZjY5MDI0ZjVlZTUyOGYyODgzNTA2YWI1YjkxIGxlZ2FjeS10cnVuaworMzUwNjEgNDc3ZjBhMjUyMTUwZDc1YjNlNTE3YjFhOGJlZGZkYzNkODRmNTZiMyBsZWdhY3ktdHJ1bmsKKzM1MDYyIGE2YmMxMzFhYjYxODhjODdjNTYyZTk2MjQ2Mjg1ZTkyN2U1ZjE5ZWEgbGVnYWN5LXRydW5rCiszNTA2MyBiNjdjYTNmNjg4Zjc4YmEyMDIyMDFjMmU2MzgxOTA4NmZlNzE0NDdhIGxlZ2FjeS10cnVuaworMzUwNjQgMzg1MTQ4ODJhNWM0YzQ1ZDBkMDRmZWUxOGU4ZmY3ZDRhMjY2ODljYSBsZWdhY3ktdHJ1bmsKKzM1MDY1IGY2NjkzOWYzODUyMzVkNjY0YjY4NTk5ODc2YmM0ZDZkZjM5MTNiN2MgbGVnYWN5LXRydW5rCiszNTA2NiAwYmFhMjY2MGE1NjhiZjFmNzBiYjkzYjhhMWJlYmQ2OWVlNzQ0MjlmIGxlZ2FjeS10cnVuaworMzUwNjcgNDE2YTVkMjVjYmE2OGQyYTE3NjdjNjY2NDg5MGZlMGVjMDY2NzY0MiBsZWdhY3ktdHJ1bmsKKzM1MDY4IDc2ZWQ4YTc4ODM5MTg1NzM3YTE0MzQwMGU4YjU4NTk3MDk2OTA2ZjcgbGVnYWN5LXRydW5rCiszNTA2OSA0NzI3YzgxZGI5NDk5MDg3ZWZiOTY3ZjMwZTZhNTg1NmZiYmYyNzRlIGxlZ2FjeS10cnVuaworMzUwNzAgNmVhNWNjZjA2NWJlMDQyYWM2M2VkZjA2NTY1ZThkMGRhNGY2N2E0ZCBsZWdhY3ktdHJ1bmsKKzM1MDcxIDRhYzZhMDIyMWY3ZDRiODdkYzk3ODk5NDVmNzliZjNlZjYyZDEyMjMgbGVnYWN5LXRydW5rCiszNTA3MiAwNTQyM2MzMjYxZDQxNWY1ODY3MTQwY2ExNDY1ZTkxM2NhZWJhZjYxIHJlbGVhc2UyMy1tYWludAorMzUwNzMgZThkZmYxMWU5MzU4Nzk2NWRmNDk5NDRjODhkZTVhYjNiNmEwNDBlNyBsZWdhY3ktdHJ1bmsKKzM1MDc0IDQ5MTVmYmVjNjA4ZjRmMDM1NWRjMTg2NGFlYmU4YzA2MjhkMDI3YWYgbGVnYWN5LXRydW5rCiszNTA3NSBmZDY0OTdjZjcyMjhlODI2OThkYjQ4ZDQ3ZWE3MTgzZjA1MGEyNDI0IGxlZ2FjeS10cnVuaworMzUwNzYgMGMxZDIwNjJkZWUzNTM5MTQ0YWNiODdiMmMyY2ExOWE4ZWI2OTdmMSBsZWdhY3ktdHJ1bmsKKzM1MDc3IGEwYWUyZDlkZTY5MTExZDA2MDdmZGNjYWFjZGNhNGQxMTBjN2JjNzcgbGVnYWN5LXRydW5rCiszNTA3OCBiYjNjM2M5OGNjMWJhYmExMjkwNjMzNzM1YWE2Njk2ZTUyYTNiZDFiIGxlZ2FjeS10cnVuaworMzUwNzkgZjBlMmE4NTM2NzU5ZmRjMTIwZTQzNGU3NjFlNjljYmUyMjdkODE1YyBsZWdhY3ktdHJ1bmsKKzM1MDgwIGEwYjE3NzMyODM1YTIwYjI0OGFjODVlZmNhOTQ5MWFhNTc3OWY3MDUgbGVnYWN5LXRydW5rCiszNTA4MSBhMzQwYzUwZTkyNGEzNzRjYTE4MzFiYmQ5MGFjZTYxMTY1ZDIyMDQ0IGxlZ2FjeS10cnVuaworMzUwODIgNTU0MTJhNDNkMmQzZTFjNDIxMDZhMGU5NzRjMzgyNTc2ODMyMmNiNiBsZWdhY3ktdHJ1bmsKKzM1MDgzIGVhYTFhNGI3NDMyODdiYmNmYjZjNDhhNzUyZTIzNTg2ZGVlODFiMjIgbGVnYWN5LXRydW5rCiszNTA4NCBhMzJhYTc5MDYyNTE0OTVjNDFiMjg0MmVlOWE2MmNlMGFlZDk1NDUyIGxlZ2FjeS10cnVuaworMzUwODUgZWZlMDc1Mjg5NzkzNTBlZjVhMDdlMDUzMGYyMTBhMDU1ODQ3ZWE2MiBsZWdhY3ktdHJ1bmsKKzM1MDg2IGVkMjAyNTlhMWVhNTU3ZGRhNTE4ZDZjZDI5MGUxZmQyNTAzYzFjMTAgbGVnYWN5LXRydW5rCiszNTA4NyA3OTZjOTlmMGZhMmM2MmNjNzkxZWMzNGIwY2E4ZTFhZjFjZmJmODkxIGxlZ2FjeS10cnVuaworMzUwODggZDhjMmRiNzgyYmRmNWZmMzUyMTFhMDE1NTc4YzgzNTFmMzc4ZWIyNyBsZWdhY3ktdHJ1bmsKKzM1MDg5IDkxNDBlY2UzZGIwMzYzMzkyMzg2Mjg4ZWVjOTk2MGJhYTc1NGRhOGMgbGVnYWN5LXRydW5rCiszNTA5MCBjMDg4NTg0ZjU1MzM5ZTlhYTRhNTRmYWM2YjBmYWM0ZDM2Njg1ZDg2IGxlZ2FjeS10cnVuaworMzUwOTEgNTg2YTQ5YzJjNjQxZTUzOGU1NDdmMDIyOWEzYTQ4MGI0MDQ0MGEzMiByZWxlYXNlMjMtbWFpbnQKKzM1MDkyIDE3Y2EzNDczMDNkM2YxM2UyYzFjYTNkNTVmYTgyM2M4NDQwMjQ3NjYgbGVnYWN5LXRydW5rCiszNTA5MyAwZjM5NGY0MzlhZDZhMDRmNjMxMTdjNTc1ZDU2M2EzNjlmNmRiYzk2IGxlZ2FjeS10cnVuaworMzUwOTQgZWM3NWZmOGM3NzIxMjE5ZDNjNDJhYWVhZDhmZmE4YWJmZTc5OTkwZiByZWxlYXNlMjMtbWFpbnQKKzM1MDk1IGYxNjY5MTFmNzc4Yjg1NzFjZDEzMWUwYWFlNWRhZmIyYTgxYzQyNDIgcmVsZWFzZTIzLW1haW50CiszNTA5NiBmN2EwNWFiNTBkM2I0ZTIyNjcyMGFlNmRiNTJhMDI4ZjljZDBhNmZiIGxlZ2FjeS10cnVuaworMzUwOTcgYjJhODIwZTMyOWE5MGEzM2U1NmM4N2U2YjQ2ZTdlZGZmNTdlNGRkYyBsZWdhY3ktdHJ1bmsKKzM1MDk4IDU3YmFjYjExOWE5NzY4MjVhMmRhYWQxOGEzZDA4MjIzYThkMWM1ZGMgbGVnYWN5LXRydW5rCiszNTA5OSA5OTg5MWI4ODhjZmQyOWU5ZjBlYjUwMTg2YzM4ODc3Yjc4ZTljZTAxIGxlZ2FjeS10cnVuaworMzUxMDAgMWRmNWI2YTFkYmY2YTU0MDE0MmMxZTM2MTM0ZWIwYmI4NDc4NWJmYyBsZWdhY3ktdHJ1bmsKKzM1MTAxIGIzZDY1MzI2Y2E2NmI0NTZkYTljMDlmN2IwYzM1YTMyMmQ4N2RmNGMgbGVnYWN5LXRydW5rCiszNTEwMiBiZjM2YzExNjMzMzA3ZmQxOTZjYjI5ZjhkNjZlODAzMGUzNTcyY2Q1IGxlZ2FjeS10cnVuaworMzUxMDMgNmE4YjEyMmFlYjJmZjdhNDZiMjAxOTI0Mzk1ZGZhZTU3YzczZGFhMiByZWxlYXNlMjMtYnJhbmNoCiszNTEwNCBhNjI4NGU5ZjMwYTJlNmViMjk5ZTFiMTIxN2Q1MDMwOWRiYTIxNjIwIGxlZ2FjeS10cnVuaworMzUxMDUgZjg0ZDJiYzY4MzFkNDg2NmY5YWY0NWZhY2U4ZGY3ODAwY2MwMGEwMiBsZWdhY3ktdHJ1bmsKKzM1MTA3IDRlNDBlZmYxYWQxODZlYTI4OWM4YmQ4NmQ5MzEzOTViNDc1ZmM2NTYgbGVnYWN5LXRydW5rCiszNTEwOCBkMzI1OGY0M2Q0ODRiZjFlMjY0ZDJlNTRkODU5YzhjN2E5M2Y1Nzg0IGxlZ2FjeS10cnVuaworMzUxMDkgNjMxY2UyM2Y4OGQ2YWU1OTdlZWVkYmM3ZWY3NWFkMmExYTNhMzE1YiBsZWdhY3ktdHJ1bmsKKzM1MTEwIGYzOGJkMzkzZTk1NDc1YjMyOWUyYjU5NzBlNzFjMDRkMDJhZmY0YjIgbGVnYWN5LXRydW5rCiszNTExMSA5ZGE5NGU1NjlkNDhiYmY4MDk5OTk1ZTVkNjdlMWQzNmMxNTc1MDAzIGxlZ2FjeS10cnVuaworMzUxMTIgZmM1NzIwMGY3MGYyNGRlZTRhMWU5YTk2NmNhMmQwNmIyNjdlNzEwNyBsZWdhY3ktdHJ1bmsKKzM1MTEzIDY0YWU4MzIxMzFlMTQwNzRjYzFmNzU3YjdkMTQxNTVlN2E2ZThlNzQgbGVnYWN5LXRydW5rCiszNTExNCA0MDU1Mzc1ZGMwNWVhMjE5OGQyZWFiYzQwMjdkODM3MjIzOWE2N2VlIGxlZ2FjeS10cnVuaworMzUxMTUgNjdhMWVlYWQ3MmJhYjRiYjg3Y2Q1Y2QzYmNhOWU5MGRjZDY0YmNiNCBsZWdhY3ktdHJ1bmsKKzM1MTE2IGUyMGZjMWI4MDIwNTFhMDIwMTJkY2Q0YzBhMGY4MTExZGM3MzQ2OWYgbGVnYWN5LXRydW5rCiszNTExNyA0NmFkMjFiNWJkMzM0YzQ5NjM3NGUzNWM4NzlmN2RiOWRhMGJjMTM2IGxlZ2FjeS10cnVuaworMzUxMTggMGFhNjQ0MWM3ZmU2ZDhiZmU5ZmVjNGI2ZTY4ZDk4MDhmZjU4MTg3MSBsZWdhY3ktdHJ1bmsKKzM1MTE5IDViYmVjOGYxYmY2ZDY1MGNlZmZjZGZjNmU1NDEwMGU4MzVlYzdlYTEgbGVnYWN5LXRydW5rCiszNTEyMCBjYjkyMzFlZjNiYjkzZWFlMzFkZjNlYjQwMDUwMjA1Zjg2OTEwZTUzIGxlZ2FjeS10cnVuaworMzUxMjEgODg3Y2UzOWY5NWYyYWU5ODE4ZmRjNTlmOWRhZjdiOTYzYjkwZTNiYiBsZWdhY3ktdHJ1bmsKKzM1MTIyIDQwNjdiZjQ4MTU0ZDM3NGIxOTA0NzNlMGYwMGJjOWQ5ZTgyZWY3ZGIgbGVnYWN5LXRydW5rCiszNTEyMyBlYzBjOTA2MjEwYmZhMzIwNTM5NmNhMzNlMWFhNWU4ODAyNWRjNjIxIGxlZ2FjeS10cnVuaworMzUxMjQgYWNhMWNlMWI0YjYxNDQyMDJkNmNjZjU5ZDY5MTQ4YjZlMmU0YzE4MCBsZWdhY3ktdHJ1bmsKKzM1MTI1IDkxNjlkNzllZDMwNDhlMDgxMTcyOGVkMDJkYTMxOGU5NDk1NDllNzAgbGVnYWN5LXRydW5rCiszNTEyNiBjZWY2MTNkOTA0OTU3Y2ZiZWQ4ZjQ5OGIwZDRiZmU2YTVmMGQ5NzJjIGxlZ2FjeS10cnVuaworMzUxMjcgYzliZWQyMDA1MDBlNGY3NzA0ZWEwNGQ5NjgwZWQzM2RhODcyY2QwZCBsZWdhY3ktdHJ1bmsKKzM1MTI4IGM4N2E3ZTgxM2E5OWY2M2RlZmVlN2M3Yjg3NTRmNGFlMTljMzhhODAgbGVnYWN5LXRydW5rCiszNTEyOSAzOGRjZWMyZjdiMDM0NDRhNTAzMzhkZjk1YjE2M2Q5MmFmYjY4ZTY2IGxlZ2FjeS10cnVuaworMzUxMzAgM2FhMjBhODJkZTg2N2Y2MDU1MTM0ZWIwMDUyYzc5MjM1YzMwMzM1YiBsZWdhY3ktdHJ1bmsKKzM1MTMxIDQwZDcyNTA3N2RjYjBkNDhmOWRkMTRiNDkwMDQyYzg1MWE3NTQ1ZjEgbGVnYWN5LXRydW5rCiszNTEzMiBiOTA1N2E2NzYzZDdkMDEzYzhiNDY4ZTdlYWQ5ZjRjYzgzMjk5NjU0IGxlZ2FjeS10cnVuaworMzUxMzMgYjNkN2ViYzEzZDdkNWVlZTBlNThmNzhlMjIzOTZhNGI5NWJlNGY2NiBsZWdhY3ktdHJ1bmsKKzM1MTM0IDBmY2U1YjE3M2E3NDAyZWViMGU2NjAzYmJkMzc5Yzk0MTc0OTYwOGUgbGVnYWN5LXRydW5rCiszNTEzNSAyNWE4MDE2NGNjN2FmZWY0YWFlZTRhNGQyYmNmMjI3ODlkYmFmMjEzIGxlZ2FjeS10cnVuaworMzUxMzYgODk3ZGU5MjA4MTk5Yjk2ZGQ2YjExY2QzMDE1NWRiNDgxMWE2Y2ZmYiBsZWdhY3ktdHJ1bmsKKzM1MTM3IDEyY2MzMzY4MjhlOWIyNzE5NTZmNThiYWVkOWUxZTE1NmU2ZTY4YzQgbGVnYWN5LXRydW5rCiszNTEzOCA5MDA1ZjI2NjJhNzBlYWIyMmNhNTA5M2Q2ZWQ1MDI5N2U0ZmMyZjZlIGxlZ2FjeS10cnVuaworMzUxMzkgNzQwN2EyNDZkYmUwMmY4MGM5MTg2ZWYwODA5NDRiZTFhYTg5OTk3ZSByZWxlYXNlMjMtbWFpbnQKKzM1MTQwIGZmOWE1NDk1M2MwYmZlYTc3ZTUyZDA0MzkwNTFlNDk1MDUyM2M5OWMgcmVsZWFzZTIzLW1haW50CiszNTE0MSA2OWEzNjVlNDdhYzBhMjA5NjVjODA1NzQ3ZDJlMWY3ODIyNzVjOGZiIGxlZ2FjeS10cnVuaworMzUxNDIgMWRjNTQyMjVhNGMyMjg5OWE2OTY1OTQyNjQxNjRiNWUzM2Y2NzU0OCBsZWdhY3ktdHJ1bmsKKzM1MTQzIGU3MTI0ZTI2OTI1ZjY0YjVkYjMxYWM0OTJmZjkxZTNkYmMxYTY1N2MgbGVnYWN5LXRydW5rCiszNTE0NCA2OTAxMDVmZWE1OWQzOGZlYjM0MDMxYTliYTY5NGQ0Yjk4YTFlOTIyIHJlbGVhc2UyMy1tYWludAorMzUxNDUgNmUzNzU4ZWQxZWY0MTJhOTJlMTZkMTVmYmZlNjA2MGIyOWZiYTk5ZiBsZWdhY3ktdHJ1bmsKKzM1MTQ2IGJiYzk0NGUxZmVjY2I2MTFhOTQ3YmM4OWNkOGJlMWYxZWEwNjg0MjYgcmVsZWFzZTIzLW1haW50CiszNTE0NyAyNjZmMjI2ZjQ3MWQwNDY1MjU5ODcwYjkzOGRlYzA4M2JlMDIyNjJlIGxlZ2FjeS10cnVuaworMzUxNDggZWM4YTQ2ODViMzYwNjY2ODcxZWVlZDc4Zjc1ODVlYjU2MWQ4MWQ5MiBsZWdhY3ktdHJ1bmsKKzM1MTQ5IDE0ZGVhNmY4YjBjMzQ0ZmVhNWM5MWU3NjdmODY3N2MzMjAwMGE4NzMgbGVnYWN5LXRydW5rCiszNTE1MCBjMzgwZGMyOTMwNGFlMWIzMWI4ODM5NTM5Y2JjYWY3ZGJmYjE3Yjk5IGxlZ2FjeS10cnVuaworMzUxNTEgZjdmNDJmM2MzZmI0NzU3ZWI0NjE5MGViNWU0YjdiNTI5MTc0ZjhiOSBhc3QtYnJhbmNoCiszNTE1MiBhMTUxMTUyOTBlMTNiMjhmYzhhNjM0MTgwYWM1YmZiYTdkMjRlMDM2IHJlbGVhc2UyMy1tYWludAorMzUxNTMgN2ZjYjM1NTUyZDUzYTM0YTA4N2FjMmMzYjIxNWJlODM0YjYwYmUzZCBhc3QtYnJhbmNoCiszNTE1NCAwMzgwODc4ZjNkYjU0OTMxNDlhZTRjNzI5MWE1YTE1YzczMzgxMDgxIGFzdC1icmFuY2gKKzM1MTU1IDYwM2E5ZWFhNzRlMTU1ZDhkZmE2OWIzNTdlMTBlNTBjZTlkY2M4MzIgbGVnYWN5LXRydW5rCiszNTE1NiBhYzRhN2JhNTQ3OTI5MDRhZDgyN2YyZTk4NjczZjljZjgwOWZmNDEwIGxlZ2FjeS10cnVuaworMzUxNTcgYjFkYzVlMTE0OGVhMzRlZmE1Y2Y3YjdhOGZiMmU2ZTRlZmQ1ZWNmZiBsZWdhY3ktdHJ1bmsKKzM1MTU4IGJlNTZmYzQ4NWUyNzBkNmUyNDZmZWVkODE3OWZmMjMxOGM1ZmMzZTEgbGVnYWN5LXRydW5rCiszNTE1OSA3YmU1NTM4MDU5NDkzZTYzZmE4ZDE2ZDU1OWI3ZGJmOGVhNzY2MWYyIGFzdC1icmFuY2gKKzM1MTYwIDU2MWZlN2Y2NjUxNWUwOWY5MDEyMTAyNGNhNjBlOGI4NzkwZjk3YzcgYXN0LWJyYW5jaAorMzUxNjEgYzRkM2U3YTFmZjg2OWYwZmE2NWViZDBiMGNjYTljZWFhYTMzNjZlZiBhc3QtYnJhbmNoCiszNTE2MiA2MWEyMGRmNGIwZWY1ZmQ3OTNmYTk4YTBjOTUwMjE4MzA4MzQ2M2Q0IGFzdC1icmFuY2gKKzM1MTYzIGI4MTQ4MGY3Y2ZmZTYxOWE5NDE3ZTdkZjA4ZmIzM2Q5Y2QyODRmMTMgbGVnYWN5LXRydW5rCiszNTE2NCAxODYzMTljZmY0YjIyNGU0MDM3Mzg1ZDVmNWY2ZTA4ZGZmMDgxYzBkIGFzdC1icmFuY2gKKzM1MTY1IDdjODhhMDY5YTE0MzlhMDllM2Y1ZGVmMjc3ODY0ODk0ZTZiODY1NGMgYXN0LWJyYW5jaAorMzUxNjYgOGI2MDg0ODQ4ZGExODlhMGM2NzliZmY0NDA5YzQyNGYwZTQ0OTBjMyBsZWdhY3ktdHJ1bmsKKzM1MTY3IDY2YTQyMzBmOTQ1YjE0OGViM2M3MzVlMGQ0ZDc2MWFjOTliOTU0NjYgbGVnYWN5LXRydW5rCiszNTE2OCA4ZjQ3MjgxZmVhN2JlYTRjOTU1ZjgxMTQ4NWJiZjAzYmQwNmMyOTQwIHJlbGVhc2UyMy1tYWludAorMzUxNjkgNDYyMjQ2OTBhMzY1NWE0M2RkYjlhZjM0YWQ2YTRmNjIxMzAzY2YxNyBsZWdhY3ktdHJ1bmsKKzM1MTcwIGYyZmQ0ZTVkZGYxOTVhYzIzMzVkMDI1MzgzM2QzYTZlYTdiNDU5ZGIgbGVnYWN5LXRydW5rCiszNTE3MSBlNGQ3M2VlOGQ0ZTE2YmE0YzRhODE5NjZiNjAzYTdhZjcxOTMyOGEzIGxlZ2FjeS10cnVuaworMzUxNzIgOGQwNmMxOTJmMGU2ZDNlYzlkNzBiYWEwOWQwYjQ2NWYxMjM0Yzk0ZSBsZWdhY3ktdHJ1bmsKKzM1MTczIGFkYjZkZmZkOGRkNTMxNGI0NTMxNDYxNTgwNzQ1NTliYjYyYzUyN2UgbGVnYWN5LXRydW5rCiszNTE3NCAxZWJkMDYyNmQxNzYxMDgzMjliNzAxNTcyNGZiODdmZDIyZWY4NGRiIGxlZ2FjeS10cnVuaworMzUxNzUgMjg4MGNlYjgxMTlkYzFiNTI1ZTM1MDUzZDk3MzE4ZTMwZGVmNWI3ZSBsZWdhY3ktdHJ1bmsKKzM1MTc2IGU4Yjk2YjJiZmE3YjIwZmNkODE3NzQ3YTEzMjgzN2NjZGJjOGRhMWQgYXN0LWJyYW5jaAorMzUxNzcgOGY4YmJhMGE3NWI0Y2QwODI2YTVhNTc4M2UzOTMyNjFlNGRkNGNhYSBsZWdhY3ktdHJ1bmsKKzM1MTc4IDRlN2NjNTBiMzBhMTY0MzhmNzE0YjRiMzZkYWNiNmVmYWI0YTRhYjkgYXN0LWJyYW5jaAorMzUxNzkgNTAxZGFhY2NiZmUwY2I2NGNiYTBhOTRjM2ZjZGEwZjAwYzBjNDRmNyBhc3QtYnJhbmNoCiszNTE4MCBkNjY3ZTMzZTAyNTIzZmI3YjBkOWRiMzEyMDhkMDZmMWZiODVhM2ZlIGFzdC1icmFuY2gKKzM1MTgxIDY1Nzc4MzUyMDY2YmY5NGYwODg4MGVhZmNhNzRjOGYzMTgxOWU4YmIgbGVnYWN5LXRydW5rCiszNTE4MiAzNzQ2OTc0NzhiNWFjMDJlNjBhYmI1ODNhOGVkNmYwNTI0ZmQ4ODc1IGxlZ2FjeS10cnVuaworMzUxODMgZjc2ZmViNzNhMGU0NzE2OWEzNjE1YjkyOGQ2MGQwNmQ5MDhkZGM2NCBhc3QtYnJhbmNoCiszNTE4NCA2MzA4YWRmMTcyZjQ4MDM1MDcyNGVmYTA3NTZmYjFjMzlkYzRiYjAwIGFzdC1icmFuY2gKKzM1MTg1IDk1MjUxNzc5OGNiNWQzMDM2NmY0OTUzYjExMjZmMGViNzc5MDM2ZGYgbGVnYWN5LXRydW5rCiszNTE4NiA2M2ZhNjBmMmQ2MWNhODM2YjVlMmQwOTU5ZGVkMWMwMDI4MTk0YWVkIGxlZ2FjeS10cnVuaworMzUxODcgNGE5ZTU2MzY4YzY5MDRjMzkyNTFjODJiYTcwMWViODAwMDNmNmZjZSBsZWdhY3ktdHJ1bmsKKzM1MTg4IDNjNTdhMWMzYTg3YWVmMTM4ODU2NGY5MDU5Y2I0YTg3ZjE2MjNjNzggbGVnYWN5LXRydW5rCiszNTE4OSAzYzI2NzdjNGEyYmYzNjllODFmYjZmYWY4YjEzZGM2NGQyNDQ0ZmIyIGxlZ2FjeS10cnVuaworMzUxOTAgMTZiMzE1ZGYxM2NlNDhmN2IzYWNiZDVjY2Q2ZWViZTBlZjg0YzUzMiBsZWdhY3ktdHJ1bmsKKzM1MTkxIDQ5MzcwNzY5MjY3MTk0Yjc2OTE5OTg1NGE3ZjVkODE2ZjFkYWY4ZTIgbGVnYWN5LXRydW5rCiszNTE5MiBhMmZlMWEzNTgwMGEwNmQ0NzdkMjUwYzI0MzYzZDk4MDBmYWM3MWFkIGxlZ2FjeS10cnVuaworMzUxOTMgYWZiNGM5NzI2ZDFhNDVhMjMxZDRmY2VkOWQ1NzczZGIxNWRmZTI5MyBsZWdhY3ktdHJ1bmsKKzM1MTk0IGEyODI4MDFiMDZiNjQ4ZGYwYzhjYzQ2MDEyMjg1YTdhYmZmYmM2OWUgbGVnYWN5LXRydW5rCiszNTE5NSAxMjE5ZjExNjJkMWQxYTk1ODk3MTM0ZjVlNjQ5NjUxZGJmZTJlOGYwIGxlZ2FjeS10cnVuaworMzUxOTYgOTdiY2YyZTg4Y2ViODkxNmFjOGM1MDM4OTg4NzI5ZWNiMzkwNWNkZSBsZWdhY3ktdHJ1bmsKKzM1MTk3IDE2ZDI2OTg2NmE0ZGFmN2JiMmJlYTMxZjIxNWUxZjZmODk3MWI2MDQgbGVnYWN5LXRydW5rCiszNTE5OCBkZmMxODE5YjRlYjQ3MzJmOWExNDg3NjU1YTI4MzQ1OGQxYzMwYTAyIGxlZ2FjeS10cnVuaworMzUxOTkgYjRiYzgzZjJmZDA0ZDlkMjExYmY3MmI4MWIwMDgyZjdkNzg1OGIzYSByZWxlYXNlMjMtbWFpbnQKKzM1MjAwIDkyNTY1Y2NjZTkyYjgwY2FkN2EzNWZjNDc2ZTMwZmI5Nzg5MGQ3YTEgcmVsZWFzZTIzLW1haW50CiszNTIwMSA2NmE1NTBlOWIyZmI3NWMyZTIxMjM2MWVlMDk4NGU5OGZkYzUwYjhlIHJlbGVhc2UyMy1tYWludAorMzUyMDIgYmI3MTQ2ZDExN2ZiZDM5MGJhNDhhMjFhZmM3MDc1ZmFlMTc2NGVlOCBsZWdhY3ktdHJ1bmsKKzM1MjAzIDNjYzNjYjc5MDQzZjcyMTgwMGJmYmIxMzcyMmQ3YWJjMTE5N2MwMTggcmVsZWFzZTIzLW1haW50CiszNTIwNCBkNDE2NWQxMmY3M2MxOWY5NjUxZWI5YWVhOGZjNzhmNTRiOWQyZDk1IGxlZ2FjeS10cnVuaworMzUyMDUgMzdkNTAxYjllMmQ1YmIwZjgyNGI2YTc1YzhlOWYzYjY4NGJmMTBiYSBsZWdhY3ktdHJ1bmsKKzM1MjA2IDU2NjczN2JmYWVjOTUwNTRiZGY0NWYyMjA2OTI3NjQ3ZTY5ZTgxODAgcmVsZWFzZTIzLW1haW50CiszNTIwNyA4YWU4OGRiNzg0M2MxZjBjMGE2ZTE4YTAyYjgwODNlY2I5MmY1YjA5IGxlZ2FjeS10cnVuaworMzUyMDggYzU4MjRjOGM2YmE3MjI3NTc3Y2EyZTk1OTEzNDBlYmIyM2Q0OTZmNSByZWxlYXNlMjMtbWFpbnQKKzM1MjA5IDAzMmNiMTdhYzJkNmNiZmI3ZmZlNGQzNjUyMTliNzk1YzRiNDBlYTQgbGVnYWN5LXRydW5rCiszNTIxMCBjYzEwYjAxMGY0MGJhMWU0ZTI1OTRlZmM0NWY1YzViNzdlYTM3MGRiIGxlZ2FjeS10cnVuaworMzUyMTEgNDIwMDNjODYwMGY0ZDNlMzdkMTdmZjQ4NzA1YmY4YzBmYTZjYTViZSBsZWdhY3ktdHJ1bmsKKzM1MjEyIGQ1YzA0NzgwN2M2OTdiMzQxY2NjMzUxNTcwM2Q0ODEzZjdjMDk2MDIgbGVnYWN5LXRydW5rCiszNTIxMyBhNTc3NDEwZTVhNjBmZGU3MDQyYmZlNzI5NTBhZGY2MzQ5MGIzNDk3IHJlbGVhc2UyMy1tYWludAorMzUyMTQgYWFiZDliNTRlNDY5ZWY4ODEwMWM1NWU4NzJmYTI0ZmRiZDk4OTc4OCBsZWdhY3ktdHJ1bmsKKzM1MjE1IDg1ZjQ5MzJkOGZmZDk5NzAwNTU3NDNiZDE2MWU0YTg0ZTFlZWM2ODUgbGVnYWN5LXRydW5rCiszNTIxNiBmMDRjY2MyODg1NDJiNmRiNjIzODVmNTY2MWJhNjE2NDg1ODI2ODNhIGxlZ2FjeS10cnVuaworMzUyMTcgNDRkNDQzOGVkNTdhNWE2ZThjZTAzOTRiNDU4MWZkZGRmZDZjZTk1NCBsZWdhY3ktdHJ1bmsKKzM1MjE4IGRlMmVkODAwZmE1MGZhNTU2NzMzYzllMDI1ZDMzMWZhMWI1M2VhYjUgbGVnYWN5LXRydW5rCiszNTIxOSA4NDk1YjAyN2JjZTM2NjA5OTI1NGEyN2IxYmQ4ZDI0NTU1YmI4MGJjIGxlZ2FjeS10cnVuaworMzUyMjAgNjZlNDNmMjUwNDZkYTVlNzA1M2JjMGM2OWIwMGI0ZjhkMTk4NjQ5YiBsZWdhY3ktdHJ1bmsKKzM1MjIxIDFkYzk2ZDg3OTc0ZWI2ODhiMjBlMTJkYmI0MTc5NTcwMjU4MmJiMjYgbGVnYWN5LXRydW5rCiszNTIyMiAxNzRkY2YxNzFkZjUyYzNmNTMyNDFhMDUzYmY1YjBiMmI0ODFkYTc0IGxlZ2FjeS10cnVuaworMzUyMjMgN2IzNGQ4NDljMjI5MDA2NWQwOTNjYWU5ODNkN2JjNzAyNGVlOTY4MCBsZWdhY3ktdHJ1bmsKKzM1MjI0IDNjZTRmZmFjMjdhYjQ0YzJhMTllMGE1ZTMxYmMyZDg3ZTYwNGVlOTggbGVnYWN5LXRydW5rCiszNTIyNSAzMDhjMTkzZjUxZTMxNzg1NmNiMWJhZDQyYjZlZDBhNGY0NGUxOGYyIGxlZ2FjeS10cnVuaworMzUyMjYgMjViMzA0MzlmZTIyOWYwMDI2ZTRkN2Q2MzIzZTZlZmMxMDE4ODE1NiBsZWdhY3ktdHJ1bmsKKzM1MjI3IGJhOWFhZGRlYjk1Njg0N2FkMDY0ZWMzNmMyNDY4ZGJkMGFlYTNkNzEgbGVnYWN5LXRydW5rCiszNTIyOCBmMzBhYWFjMDAxOTVlODc2NTMyZjM1M2EyZWUxZDkzZDhmNTE0NTJhIGxlZ2FjeS10cnVuaworMzUyMjkgNTczYjA4OWZhYjcxZDNlNjI1YmU5MWM4MjYzMjMzZGZlMzhhNGM4NSBsZWdhY3ktdHJ1bmsKKzM1MjMwIDkxYWY2NWI5MzJkNjIyODg3YmRiMGQ2YTFkMDQ4Mjg5Y2VhMTM1NGIgbGVnYWN5LXRydW5rCiszNTIzMSBkNWI0YzQ0Yzc2Y2UwNmE4NGNkNTJkY2RjMmUyZTJlN2E0M2E3Y2I0IGxlZ2FjeS10cnVuaworMzUyMzIgZDk4NGIzYmQxY2ViMWEwZDJhY2FjYmQwYzczNDE4ODE1NmM0MzZhMiByZWxlYXNlMjMtbWFpbnQKKzM1MjMzIDY1ZDI4ZmZmMTE3MmUxNWY3N2Y4NDU3ZmFhNzRmZWNkNzFmNTZkYTQgbGVnYWN5LXRydW5rCiszNTIzNCA1M2RmZjYwZjU1MDg5YmFjM2ZkYmRkNzI3ZGQ2ZWI0NTg4NTQ2YTkyIHJlbGVhc2UyMy1tYWludAorMzUyMzUgZTE3OGViNDNlZmRkZWU5YjliMzFkMzJhZTIwMmRlMWY4ZTdhMjExNSBsZWdhY3ktdHJ1bmsKKzM1MjM2IDcyNzEyMGZiMDM2NTJkYzI4MTFhNjViZGE1YmU2ZGViZTljYTFhMDYgcmVsZWFzZTIzLW1haW50CiszNTIzNyBmNTdmNWNlMjJjOGRjOGQyMTM1Yjk3OThkNzliN2FmYzRhOTgyMjA0IGxlZ2FjeS10cnVuaworMzUyMzggMDhlYzRkYjUwNjRlYjZhMjVkNGU4MmIyNWJkNzY5YmM3ODMzNTg4NyBsZWdhY3ktdHJ1bmsKKzM1MjM5IDg5ZjkwNzBkYzFiYzBiYzEwOTI5MWIzMzVlNjNjMzYzNzU1YTVhZTcgcmVsZWFzZTIzLW1haW50CiszNTI0MCBmZDJkNjRhZjI2NDBhYjYxM2M4MTBhYjMzMTBkNzNiZDZiZDI3MTMyIGxlZ2FjeS10cnVuaworMzUyNDEgZGI0ZGE5M2YwYmEwZWU0YmUwZTE3YTFiMmVkNTQ4NDQwZTRhZWZkNCByZWxlYXNlMjMtbWFpbnQKKzM1MjQyIDhlMjE4Y2M4ZWRhYjJiZGRmZTE5M2QwM2I5ZWI4MTUyODkzNDNhMDkgbGVnYWN5LXRydW5rCiszNTI0MyBmZWFiZTJmZjBlMWUwOWQyYTNkMmViYzczMGYzOGIyNzBhN2U3ZTU1IHJlbGVhc2UyMy1tYWludAorMzUyNDQgNmE4ZThhMTNjNzQ1NWZjZjdhOTA1MDM1Y2I1NmMwZGMzYjkzYTE5YyByZWxlYXNlMjMtbWFpbnQKKzM1MjQ1IDRjMTJkM2IwMTY2ZmNiMDIxMzljYTc3MjQxMzEyYTVjOTBlZWYwMTUgcmVsZWFzZTIzLW1haW50CiszNTI0NiBmZWY5ZjJhNDFjMzRjMDM3NjBmNmYzZGQzNzlhM2ZjMGVjYTcwY2ViIGxlZ2FjeS10cnVuaworMzUyNDcgMmI3ZTA4ZGNhY2IxNGM5Njc4MzMxZWI4MWZhMTQ3YWI2Y2QzZDI3YyBsZWdhY3ktdHJ1bmsKKzM1MjQ4IDUxYzNkNDUyYWYyZjJjZmI4YTQwNGQ4NzMxODI0MWE0NzA4ZDI5NWIgbGVnYWN5LXRydW5rCiszNTI0OSA3NWRjZjI2NjZkNTQ0NjA5MzhiNTdkMWE3NDg1YTcyM2Q2MjQ2OTM1IGxlZ2FjeS10cnVuaworMzUyNTAgNWQ5YTNkNzZjOTRlNjAzNjJmZTRhNTIwMTRiOTE0YzM2NGI4ZjAwMiBhc3QtYnJhbmNoCiszNTI1MSA4ZjA2MzIwMDk4ZGQ2MDQxM2EzMGM2MTNhOGE5MmFmN2QyZWNjNGI5IHJlbGVhc2UyMy1tYWludAorMzUyNTIgMTRmODYwYjAzYmUyNzNhYTljYWMyNWYxYTEyNjNkYmNlNjRmMTAwMCBsZWdhY3ktdHJ1bmsKKzM1MjUzIDU5NTM4ZDNiN2NkMmQ1ZDNkMmUxM2I1MjY0NmY3Y2M4ZWY5YjFmMjQgbGVnYWN5LXRydW5rCiszNTI1NCBlYjQ4YjI1MDNmMjAxZDQ0YjRhZGU2NGZjNmQzYTIwODRlYjVhOTY5IGxlZ2FjeS10cnVuaworMzUyNTUgMmFiYzUyYzNkNGMyZmNlYWMzNjVhMWQ4OTU2ZThmZGZlODliZGEyMCBsZWdhY3ktdHJ1bmsKKzM1MjU2IDFmNWY2Y2NhMmYyMTBkMTA4YzdmZDE4ODE5YWQ4ZTRiNmVhNzMwM2UgbGVnYWN5LXRydW5rCiszNTI1NyBlYjY5ZWVjYWI0YzdiNmMwYTE0NDE1MWI5MDYyMzA3YWQxMzk1YmE3IHJlbGVhc2UyMy1tYWludAorMzUyNTggMzU0MTI5MTQzODA5NGNmY2ViMGNkNjc0OGQ5NzQ1OGJlMzliYTU3YSBsZWdhY3ktdHJ1bmsKKzM1MjU5IDcxODY0ODIwNDAyZDY1NjlkZTRlYzdkYzc3ZDYyMWEyODNlOGU1ZWUgbGVnYWN5LXRydW5rCiszNTI2MCBjZTU4ZDFjYzZmNDA1ZjMzMTkxNDhmYjcwNjM5NzQxZDJkYmJjMWFmIGFzdC1icmFuY2gKKzM1MjYwIGNkYzY2MjkyZTU1ZDM2OWU3NGI0YjMyMjZiY2RkODI3MWNlNzA4YTMgcmVsZWFzZTIzLW1haW50CiszNTI2MSAyMjE5OWVmNjRmZmEwNDUyYWZmMmI2OWFmNzk5ZWFjNzk0NmVmYjM0IGFzdC1icmFuY2gKKzM1MjYyIDEwNmZhOTRiNDJkZTBjOTA1YTBmZmM0YjAwNWJjNWIyODJiMWEyODIgbGVnYWN5LXRydW5rCiszNTI2MyA1YTQ1YjVjMjM3MWU4ODUxNTRjYjc4MTkxYzQ0MTM5MThhYjQ0OGYxIHJlbGVhc2UyMy1tYWludAorMzUyNjQgZWFlZWE1ODdmOTBhMjk1NTZmZDMyNDFlMDJiNjQxYmZiMDJjZWJkNiByZWxlYXNlMjMtbWFpbnQKKzM1MjY1IDViZWRiYTU1YmEwMzdmZTJjMmYzOGI1YWJkMDRjZDZhNzJiZDYwOGMgbGVnYWN5LXRydW5rCiszNTI2NiA1NDUyMjlkZmQ5MDk4NTg3ZDQzYjM0MWE3ZWNhYTgwYTFiMDI2ZmY1IGxlZ2FjeS10cnVuaworMzUyNjcgNzFhMjk0YmQ3OTUwOWNkNDIwOTc3OTdlMzlkNjAyNmVmOTAzMDU4MSBsZWdhY3ktdHJ1bmsKKzM1MjY4IDliM2RhZWNhYWYyNTQ0ZDljMWUwZjBjNTg1YzM1ODkwYzYzMWE2OTkgamltLW1vZHVsYXRvcgorMzUyNjkgMTU2MDBhMjM3NDkyYTNmZGQ1MTZhMDk5NzIxNWYzZDYwYzY1ODBjZSBsZWdhY3ktdHJ1bmsKKzM1MjcwIGVlNDRiZThlMTlmY2M5NGEyNjJmMTQzMTdhNzZkMjA2Yzk2MWIyNTAgbGVnYWN5LXRydW5rCiszNTI3MSAyZTYyZmM5NzhkOGFlOTdjM2VjNTYyNTBkZmUxZmZkZWFhMDAyMzVhIGxlZ2FjeS10cnVuaworMzUyNzIgYmQwYWNjNDI4MjllZmU0Mzk3YWM4MmRhNDdmYzI4NTJkOGNlYThlOSBsZWdhY3ktdHJ1bmsKKzM1MjczIDU4ZDVlZGU1ZjRjZTJkOTc4N2M0NTA1M2MyODRiNTcxYzdmMWYwYTYgbGVnYWN5LXRydW5rCiszNTI3NCA2YjdiMmM2MmFiMTI2MDg4NDFmMjU5MGVlOWViMzEzMjMyMDcyZWQ2IGxlZ2FjeS10cnVuaworMzUyNzUgMjM5NDQzOTMzMzI0YjAyM2Y3Y2UxOWQ2ZmM5ZGJlNGU5NjhlMGM1YiBsZWdhY3ktdHJ1bmsKKzM1Mjc2IDc2YzgxMzg5NGVlNmYzMDU1NWVlZTlmNWM1NjliOTA3OTFkYzA1NDEgbGVnYWN5LXRydW5rCiszNTI3NyAzZDkyN2UxYzc4Yzg4NGQxNjdjNmYyYzI0YTU1MjRiZjVlYmJkN2Y4IGxlZ2FjeS10cnVuaworMzUyNzggNGVmNTY4YzY1M2Q5YzZiY2Q4ZGFmNjA3NGVjOWI5ODZiZTE0MDY0MyBsZWdhY3ktdHJ1bmsKKzM1Mjc5IGNlMDEwNmRmNmE2YTYzMjVlMzRhOWZkMWU4YjNlZjJhMjk1Njk3ODYgbGVnYWN5LXRydW5rCiszNTI4MCAyN2JmMDViMmE0ZjllM2I2NGRhMmEyM2NjYTcxYzQwYWY2NDNiMTY3IGxlZ2FjeS10cnVuaworMzUyODEgMTIzM2JkOTVkYTFhOTNmOWUyZmNlZWRjMWZhZjRhNDViYWRhZDlmNCBsZWdhY3ktdHJ1bmsKKzM1MjgyIGJmYjQwYTAzY2MwYzAxZmRjODBhZTFhOWQ4Nzk4ZjQ1NWUxZTZiMWUgbGVnYWN5LXRydW5rCiszNTI4MyA5NWEzMmM3ODY3MmRiM2UyY2JmODA5NzIxNjE4ZmFhMGU4NGRmN2NlIGFzdC1icmFuY2gKKzM1Mjg0IDM1NDk1ZDM2ZWM5NTdhYzY0MDNmYTMwMzBiNzA4YTg1NThmYTcxOTUgYXN0LWJyYW5jaAorMzUyODUgOGQ0OWMyOWU5YWMxZTgxYTExN2U0NWI5YmQ5YzYwODFkZmY3MWI2YyBhc3QtYnJhbmNoCiszNTI4NiAzYmE0ZWE4ZmNlM2U1MDFmMzExZmFlZmMwMDYxZjM1MTRmZGFmNjI2IGFzdC1icmFuY2gKKzM1Mjg3IGZhOTgxMzUwOTc2Y2JlZWU1ZTZjODg5YWEwNjU3YjM4ODg3YTJmMjMgYXN0LWJyYW5jaAorMzUyODggMjVhMzVkOGY0MDgzN2MwM2JmZjUxMTg2ZGUxMzEzODQ1MDVlYWUyMCBsZWdhY3ktdHJ1bmsKKzM1Mjg5IDc4MzYyYWFhNDkxZGZmZTdhMmVjYTdhMWU5Nzg3ZTgyZDhjMDdhZGIgbGVnYWN5LXRydW5rCiszNTI5MCA0MjdlOGJhYTcwNTc0YmUyZTE5YTAyYWZhYTQ1YjM0ZWFiYWMxOWM5IHJlbGVhc2UyMy1tYWludAorMzUyOTEgMzVjMGFjOGUwODcxMzVmNWM1NTk2ZDY2MDkyM2QyNmJjMGMzYmY4ZCByZWxlYXNlMjMtbWFpbnQKKzM1MjkyIDVlZWVkNTFlODJjNGRiMWMyZmEyNWVmMWEwM2Q2OTkzMTM1ZTczMWYgbGVnYWN5LXRydW5rCiszNTI5MyBmNmQ4Y2ZlN2MwMDA5OTZkMjI5NWQ0NGVkZTZlYjhkMzMzNjk3MDJkIHJlbGVhc2UyMy1tYWludAorMzUyOTQgN2MwNTJiZTQwMTY5M2I2ZTM3MmNjMTVhODliMmMxOGFkNTAzMmNmMSBsZWdhY3ktdHJ1bmsKKzM1Mjk1IDY0YzA4ZGI4ZGNlNDQ2MGVhMGJkNzQ4YWUxMzRjOWEyNDM3ODY3NjUgcmVsZWFzZTIzLW1haW50CiszNTI5NiA3OWJjNTZiZjkyMjA3NDdmN2U5OWI2MGNjYzY0Y2QwNDhkMWFmMDJmIGxlZ2FjeS10cnVuaworMzUyOTcgYjBjNmY3YzVhZGU2NWE0ZjQ1ZTUwN2E4MzI1MDhjYzgwZGEyZTk5OSBsZWdhY3ktdHJ1bmsKKzM1Mjk4IDlmNDVhMmQzNjY2ZGU3ZGRhZDQxYjBkNzhjZDNhOTY5ODk2YzZhMDUgcmVsZWFzZTIzLW1haW50CiszNTI5OSAwYTMzNGIyMjZmM2EzMTFkN2IzMTg3MjRjMmI1Zjk5Zjk4YjczYTRlIGFzdC1icmFuY2gKKzM1MzAwIGVjNjIzMmVkOTExNTI1YmU0NDRhNzRlZGRkNWQ5YzAyM2E2OGIxYWYgbGVnYWN5LXRydW5rCiszNTMwMSBkOThkMDI1NWJiMGZmZDhlNGUwMzdjNzUxYmNjNzJmOTkwMmI5MzlmIGFzdC1icmFuY2gKKzM1MzAyIGFiMzM5ZDgwYzljOWFmN2RiOTE2YzZjOGY4OGM2ZWUwYjU2Y2M5ODMgbGVnYWN5LXRydW5rCiszNTMwMyBhNTQ1N2I2MjAyMjY1OGE5ZWY4ZDg5MTZiYWEyYTNhZjFjZTNjZmQ3IGxlZ2FjeS10cnVuaworMzUzMDQgNzJlOTcwYzBhY2NjMTIyNWQ4NDU2ZjMwYzgxYWUxZGJjMGYxOGQzOSBsZWdhY3ktdHJ1bmsKKzM1MzA1IDM5MTAxMTg0MGEwM2Y3NjczODZkMDc0MzVhNTZkOTUyYzViYTViYTUgbGVnYWN5LXRydW5rCiszNTMwNiAyYzhhNDMwNjNkODJjOGRjZGJmNTMxM2VjMTRjNjAzYTIzOGM3NDlhIGxlZ2FjeS10cnVuaworMzUzMDcgNDcwZjk1YWQ2NzUwN2RiNGY1Y2I0YzM5NDA3MjUyYTNlOTgyYzc0OCBsZWdhY3ktdHJ1bmsKKzM1MzA4IDk3ZWJlNDAxNGVkYzljZTA5YTdmOWFlMWE3MDljNDQ0NjU0Zjk5OTggbGVnYWN5LXRydW5rCiszNTMwOSAzZGE2YzJhZGFkMzQzY2M2MDkwZDUyN2ViMTk2MDI3ZTU4MTg1MWJmIGxlZ2FjeS10cnVuaworMzUzMTAgYmRmMDA2ZGVlNjk4NmI4MDVlZmNiOWM4MDFiNTdkZmY4ODQ4NmIyNiBsZWdhY3ktdHJ1bmsKKzM1MzExIGExNTdjYzIwZjFiN2RiNWU3ZmFhZTZmZGVkN2IyZjEwMGFiNDg0OTYgbGVnYWN5LXRydW5rCiszNTMxMiAyMjYzMjUwZDdiMmZkMzAyNTY3YTRkNTFjZjhiYjQ0MmVkMjQyNzJjIHJlbGVhc2UyMy1tYWludAorMzUzMTMgYTZkOGQ1YWNlNmE3OGQ1NWM3NzkwY2Y4NGJiY2IwZDg1OGMzOWVkZSBsZWdhY3ktdHJ1bmsKKzM1MzE0IDM4MjgzMzlhZGY4NjdjYWU2ZjFiZTI2ODNjNWZjYjRhZjQxYmRjYjQgbGVnYWN5LXRydW5rCiszNTMxNSAxMTlkMDE4MmJkNWU0MzM2NGMwOTQ0MmZjZDhiZDQ4YzMwNmI0OTBmIGxlZ2FjeS10cnVuaworMzUzMTYgYzMwM2VjMDE5Y2IyYzhkMTA0MzAxYTYwNzczODI1NzE3NGEwNmEyMiBsZWdhY3ktdHJ1bmsKKzM1MzE3IDljYWM5ZDBiMTllMzEzMWU4NTgwMDU4ZWUzZWFlNWVjNjA5MWMyYTEgbGVnYWN5LXRydW5rCiszNTMxOCBjYzc5NDMxODlhNWJjYWMxM2MwMjdkNmQwY2QwYTkyZDFlOWU2NzQ1IHJlbGVhc2UyMy1tYWludAorMzUzMTkgYzc1YTRlZGQxZTUyN2YwNmQ0Y2IwYjk2MmJmZjYwNWE2MGYwNzI2ZiByZWxlYXNlMjMtbWFpbnQKKzM1MzIwIGYxZTBhN2M0OGYzNjAzMzlkYjgzNzQzYWVlOWY5ZjFjZTM3MmFkMTAgcmVsZWFzZTIzLW1haW50CiszNTMyMSA2ZGQzOGU0NTg2ZmZmZDhhNjc1YzA0NGMxODEzNTg3M2IzZTYxN2Q4IGxlZ2FjeS10cnVuaworMzUzMjIgZjQ1N2YxOGY1OTIyMTM5ZmE3MjU3MWIwMDdmZWE0MzMxOGE0OWZjMyBsZWdhY3ktdHJ1bmsKKzM1MzIzIDQ3NWJmNGU3OTIwZWRmY2M2OTg0M2ViOTAwYTRiMzM0M2FhMzVmZmEgbGVnYWN5LXRydW5rCiszNTMyNCA3YTc2MWNhZDc1MTNkMzdkOWFhMzA2MmI5ZmRiYmZmYzhkZWVjNDAzIGxlZ2FjeS10cnVuaworMzUzMjUgOTExYjMyMTVkMGRjNDZkMGIwNDM4MDU4ZWQwZGIzZjFkOTdiN2ZmYiBsZWdhY3ktdHJ1bmsKKzM1MzI2IDFjMDY2MzcxNmRiMzU3ZGI0Mjc5YThmMDI2MjNiZWY5MGIzZTA3YjEgbGVnYWN5LXRydW5rCiszNTMyNyA4YTM5YTk4Yzg3ODAyNGMzZGYxYWViMzBjZDA3MDdlNjQxNGJiOTE5IGxlZ2FjeS10cnVuaworMzUzMjggNDYzMmZjYzU1NDRhMTQ2Y2NkNDNjODFjZmYwY2JmNmViZWQ2ZjhlYiBsZWdhY3ktdHJ1bmsKKzM1MzI5IDgzNTAyZTMxZTA2ZTE5ZDA1ZThhYWI2OWIwMTk3MWVhNGQ3N2IyOTcgbGVnYWN5LXRydW5rCiszNTMzMCA3ZTRlMzEzN2IyNTI3YTI5ZmYxZGM3MjlhMDZhNjk0ZWZlM2I1OTZkIGxlZ2FjeS10cnVuaworMzUzMzEgNzhmNzU4YWJjNzlmMjllMzNhNjVkYjEzYTNjNDAwYWZhMTcwYjIwNiBsZWdhY3ktdHJ1bmsKKzM1MzMyIDhlYzNhYTg3OWVlZWEwZmY5MDM0N2EwYTMxMzA0NDZmODdiMDg1OWIgcmVsZWFzZTIyLW1haW50CiszNTMzMyAzYzliNGZjM2VmMTQ3YzA5OWNjMjBkNzA2NGNjODAxM2NjMmJkOTM1IHJlbGVhc2UyMy1tYWludAorMzUzMzQgYzM3YzQwN2ZhZjUyZWQ5MmMxMmZkNzRkOWI3NjNjOGUxYmIyYjYxOCBsZWdhY3ktdHJ1bmsKKzM1MzM1IDE5YjZmZWMyZTUyZDI4YjI0MGNiNWU0MTBkZDYxODJmNWUyOGVkYTQgbGVnYWN5LXRydW5rCiszNTMzNiA2NTBlZjAwOWUwOGMxOTZmYTQ2YmQ3Mjc0ZDEzZWVjODUyNGU1ZjQ2IGxlZ2FjeS10cnVuaworMzUzMzcgNjg4MjI4YWIwNWFlYjU3NDI1MTBjMWJkZjc5ZjMyZWM2YzdhODUyNSBsZWdhY3ktdHJ1bmsKKzM1MzM4IDgxODNkZDFhNGZlNmJiY2YyZmU5NjRlOTA4ZDRlMmYyNGYzMTg4MzEgbGVnYWN5LXRydW5rCiszNTMzOSBhOWZkNDc2NDRjMGY3OThjZTVjMjNjODY0MjA3MzExMTQ5NTRkNjkxIHJlbGVhc2UyMy1tYWludAorMzUzNDAgZjJkOTRmZjE1YWM4ZjQyNzlmMTljZjNhOGNjNGYxYjliZDRiMmJhNyBsZWdhY3ktdHJ1bmsKKzM1MzQxIDVlNzQ1NWZiOGRiNmI1ZmU0YWI1ZjVmZGEyZmRiZjRhNTUwMGViM2YgbGVnYWN5LXRydW5rCiszNTM0MiAyMjIxZjk2MDE4MGRmNzJlYTQ4ZmZmYjQxMGIyMjhjNDBhOWVhMjc1IHJlbGVhc2UyMy1tYWludAorMzUzNDMgMGIxMzc2MTgyMGIwYzFkODg5OGVlNWNjYmRiMmU2MThkZmI5OTZjZCBsZWdhY3ktdHJ1bmsKKzM1MzQ0IDdhYmY0MjQ3OTg4MGU1ZjU5NWFmNmVhM2Q3YjcyNWJiODkyMTZiYWEgbGVnYWN5LXRydW5rCiszNTM0NSAyYzYxMjNkOTI1ZmVlOTZmZWQ1MDM3YzJmY2M1ZTE0MTM1MmZjNDk2IGxlZ2FjeS10cnVuaworMzUzNDYgNTQ2ODVkOWZmYjg3NmJhNGJmOTdhMmY4OGZhOTEzYjBjZDdhYTQ4ZCBsZWdhY3ktdHJ1bmsKKzM1MzQ3IDRiMmQ2ZDEzMDA2MTk5OWE5OWRhZDhmZmNkZjIwMzIyZGIwNDkzOTMgbGVnYWN5LXRydW5rCiszNTM0OCA2OWFjNjcyYjQ5YjNlYzdhZWQzM2RiNmRmNThlOTYxMjU4OGY1ZTU5IHJlbGVhc2UyMy1tYWludAorMzUzNDkgY2EzYzk5OGFmYTU1NWZkMzNkZGM1NTFiMGRkNjRhZmRhMGQ4M2Q1YyBsZWdhY3ktdHJ1bmsKKzM1MzUwIGM3MjNiMGMxYTdlMWRiNGFlY2EyOGU1M2MyMDBmNDRiZDUxNTc2ZTAgbGVnYWN5LXRydW5rCiszNTM1MSAyNmE4MGYwYWY5ZjNhZTc1YTIyZDA2MDcxMDY2NTZkZTFmMzM3YzliIGxlZ2FjeS10cnVuaworMzUzNTIgYzY3NTNkYjljNmFmOGUyZWQwNGZiMDY5MDk1NzQyNDNhN2JmMzRmNCBsZWdhY3ktdHJ1bmsKKzM1MzUzIDcwNmQ2ZDExZWUzNjM4MTkzZWE2Y2IzZTI5MzlhZjk1NjQ1N2IwMmQgbGVnYWN5LXRydW5rCiszNTM1NCAxMjM3MThkMGRjMDllNDg4NTM3ZGM3YjIyYjU1MmVlMTA0ZWZlZGM5IGxlZ2FjeS10cnVuaworMzUzNTUgNjVjNTAyYjYwYjRkMTljMTIyNzE4ZDAxYTRjNGNhZGQwM2I3NGIyZSBsZWdhY3ktdHJ1bmsKKzM1MzU2IGFmMjVjY2M3NWZlYWNiOWU2NGI3NjgyNmExOWM3OGRiODU5NjJmYWIgbGVnYWN5LXRydW5rCiszNTM1NyAwNWUxYzI3YzBhNzRkODFiNTBjNDI2ZTUwOTI2Y2QzMjlhNzkzMDZmIGxlZ2FjeS10cnVuaworMzUzNTggY2Q4N2ZmNmVhODE0MGVmM2UyMWQ3Zjk4NDc3YmNhNjdhYTRhMjMyMiBsZWdhY3ktdHJ1bmsKKzM1MzU5IGYxZDBmYTY5OGI3MzdiOGMzNjIyYWY1MDliOWRhNDYyNWI1MWFhMDYgbGVnYWN5LXRydW5rCiszNTM2MCBkN2ZmMDUxMzdjZWEzZGY1NjUyMzNiMjNhMTEyYWE5NWI0Y2M1NGI0IGxlZ2FjeS10cnVuaworMzUzNjEgZjNjYjRjYWQ1ODVlNjY5NDk4ZjcwY2QyMDFmYWQ2NzAxM2FhMDUzZCByZWxlYXNlMjMtbWFpbnQKKzM1MzYyIDA2ZDgyNGY1ZjJjOThmZjU1ZmJmOGQyMjAzZGFkZTU2YTNjMzY5MjkgcmVsZWFzZTIzLW1haW50CiszNTM2MyAxNTU1M2ExYjdhMTdhMTAyNzQxMDE0Y2Y3NzIzMGI0OTIyMWU2N2Q0IGxlZ2FjeS10cnVuaworMzUzNjQgMDcxZWUwZmY3NDY3ODk2OGMyY2M4ODY1MzAzZTk5NGYzMGQ4YmNkOCBsZWdhY3ktdHJ1bmsKKzM1MzY1IDJmZWQzMzFkZTAxNGE0YzJjZjllNjcwM2Q5MDFkMGI4NzU2NDUzNDUgbGVnYWN5LXRydW5rCiszNTM2NiBmZDIxMDNhZTZmMjlhMWUwNmIzZmY4Y2Y1NDhhZGI2NGZjYTJkNGEyIGxlZ2FjeS10cnVuaworMzUzNjcgOGVjZWU4ZjQ3MTA4YzhiNWE3NWNkZWRjZGMyZDc2NWYwNjFjZGViZCBsZWdhY3ktdHJ1bmsKKzM1MzY4IGFlOGRiZjUwMDE3MmExYWMxYjkzNTRiMThlMTk1MGNjZTE3MGM0MmMgbGVnYWN5LXRydW5rCiszNTM2OSA4MGJkMmI4NWVkOGExZTk5NzlhOGU2OWE0M2U3ZWU2OGJiZjVjZDc5IHJlbGVhc2UyMy1tYWludAorMzUzNzAgZGZkYmMwMDU4ZDg1OTBlMjE4NTljYTAzNjc2NWFhNGViZmQ3ZWY5NiBsZWdhY3ktdHJ1bmsKKzM1MzcxIDA5NzlmYTA2MmRlYmZlN2Q2YzVmMDU0YzI4N2NiYjJmYmFiNDNlZjggbGVnYWN5LXRydW5rCiszNTM3MiAyNDhiZWI5OWEzMDRjOTNlYmE0NjQwZGRhODI4ZTAzYjMwZTQ2MzBjIGxlZ2FjeS10cnVuaworMzUzNzMgNDZkZjA4ZWIwODM5ZTljZjU2YTgwZjA4NzBjOWE2MTkxMjdiNTIwYyBsZWdhY3ktdHJ1bmsKKzM1Mzc0IGMyZGY4YTVjMzU3ZTAwZTYwMWQzYmUwYWMxNDUwNjUzNmZkZjMxMGMgbGVnYWN5LXRydW5rCiszNTM3NSA3MzlhYjlkZTJhMWJhYWQ1ZmUxMWI4NzgwYjNhNmVhY2EyMTEyYzIwIGxlZ2FjeS10cnVuaworMzUzNzYgNWIzODk4ZDliYTU5NzdhYzY4MDRiY2JiOGNmMWNhYWFjMDFiYTU5ZSBsZWdhY3ktdHJ1bmsKKzM1Mzc3IGViYmE1NTgyZGMwZGI1MzYxZjRiNDJjMDMwZWY0ZTI1MjYzOGExZGIgbGVnYWN5LXRydW5rCiszNTM3OCBiYzAwNjY4MmFjYjIxYTFlMWVkY2UxYzAxMjhmNWM1MDVhOGQxM2Q3IGxlZ2FjeS10cnVuaworMzUzNzkgOGY2MDIxN2E3NTQ3NTk5ZGEyMGE1ZjI0MGVhN2MzZjViNTE1Y2Q4ZSBsZWdhY3ktdHJ1bmsKKzM1MzgwIDQ3ODkwYzM5NWViYWEyMGU0YmUxY2I3Zjc1NGM0ZmI0Y2JjYmY0NWMgbGVnYWN5LXRydW5rCiszNTM4MSA2MzVlZWJjNDczYjA2NWM3NTRjOGZjZTQzZDdhMzIzNmE0MzAxMWU1IGxlZ2FjeS10cnVuaworMzUzODIgNzA4MGEwMjEwY2YxODdmMjA5YzIzMzNiMzZjNTg5M2IzYTA1NDE2MSBsZWdhY3ktdHJ1bmsKKzM1MzgzIGQzNGU3ZWFmNGNkNmE3NDdlODM2ZmVkNjFjYTkwYWFlNjhjMDNjNWYgbGVnYWN5LXRydW5rCiszNTM4NCBiNzk1NDMzZTBiZDkxOTQxZDhkN2MwYTkxNmFkMTFiOTNhM2VkOWM5IGxlZ2FjeS10cnVuaworMzUzODUgMWIwMmM3N2NkY2ZlMTM1YzBjMzI3ODI0ZmY4OWZjZTIyOWM2MTI4YiBsZWdhY3ktdHJ1bmsKKzM1Mzg2IDE1NDNhZmFiMWI2NzJiMTI0N2IxYmU4NjA1YjE4NzQ3YTE5ZDkyYzcgbGVnYWN5LXRydW5rCiszNTM4NyA3ZTRkZDkzZjRiMjcxMzEyNjYwNjE5NDBhNGE4ODhkNGQxZWE0ZDM2IGxlZ2FjeS10cnVuaworMzUzODggNzJlMzhiZDk0ZTU2OThmNmUzMDlhZjMyMDIwOWYyMzlkMzc5MTMwYyBsZWdhY3ktdHJ1bmsKKzM1Mzg5IDMxNTc3YzI4MTVkZTUxZDk3YTI4NDZlZjc0OTMxZGY1NzhhZTViMzUgbGVnYWN5LXRydW5rCiszNTM5MCBiNGU0ZGJkMjRmZTc3ZmM0ZTJlYjZhOGE2Y2YyYzA5OGM5MGY1NzM0IGxlZ2FjeS10cnVuaworMzUzOTEgMjI4ZDI2NGM1ZmJiZDlkOGFiMTUzNjQ1N2ZhMjg5ZGJkMmNkNzc5YSBsZWdhY3ktdHJ1bmsKKzM1MzkyIGRkNjllM2Y1MjI1YmFmZTUwODk4MWFjMmRkNmRmMWI5ZWY1ZjJhYTEgbGVnYWN5LXRydW5rCiszNTM5MyA1YmQ0NTU2MzhjN2E4YTQ5ZDRkZjMyOWE4YTJjNGExNzM5MGYzMGJkIGxlZ2FjeS10cnVuaworMzUzOTQgZWM2YmEwM2JhOTYyN2RlYjhmMzQ2YTA2NGMwMWNjNGZjN2VmOGY4MiBsZWdhY3ktdHJ1bmsKKzM1Mzk1IDA0ZWIyZWJiNDZlMjdhMWYyNmZiODc3MDVlZjlhODQ3ZDlmOTAyNjIgbGVnYWN5LXRydW5rCiszNTM5NiA5NWJmYjY1M2ZmZmJhMDEyMDg5YTIzZWQ0YThmMzU5ZTk2ODkyYzY3IGxlZ2FjeS10cnVuaworMzUzOTcgMTI1M2Y2ZTIwY2RlZTA1YjRkNmQ3N2Y1MmM3Nzg5NDhiODFjZGM2YSBsZWdhY3ktdHJ1bmsKKzM1Mzk4IDBkNTNlY2YyMmQ5MTUyM2RhNTAzNjRmYzNiZTMxZTNhNmU4NjRmYTYgbGVnYWN5LXRydW5rCiszNTM5OSAwNDcxNDgwODljMzVkNTllN2FjYmFmYmM1MWFmNzMyOGM3NzE5Y2I4IGxlZ2FjeS10cnVuaworMzU0MDAgNDJmODgyMDY4NmM5ZWJhN2Q5OWE5MGRiODQzYjBkMWJhMGE4NDAwMCBsZWdhY3ktdHJ1bmsKKzM1NDAxIGVlYTY3NGJmN2I1OWE4NmFlMjE1OTZmODk5MzM1OTIzZDRmNGQ0ZjggbGVnYWN5LXRydW5rCiszNTQwMiAzMGUzMDViZmRkZGJkYzQ4OGQ3NzUxYmNlNTYxZjhhZDA2NTJmYTQ0IGxlZ2FjeS10cnVuaworMzU0MDMgYTBmYjI3YjQ0ZDc4MzgzYTM4YmZmN2IyMmYyMDM4YzViY2I1NzM5ZiBsZWdhY3ktdHJ1bmsKKzM1NDA0IGRmMDY0NzljNmU3Y2QxMWQyZDQ3MTdkNmZjNjBiM2JkYTFkMDMxZTUgbGVnYWN5LXRydW5rCiszNTQwNSA1NzYwYjRkZDNhMjI0ZTQ3N2UxZjFhZTU2YTVmZmM1NDY5M2JmMDNhIGxlZ2FjeS10cnVuaworMzU0MDYgODNiMDM4MmUwZDM2MjVhYTlkNzRiMDc0NjM5NzRiZWVhMTVjODExMiBsZWdhY3ktdHJ1bmsKKzM1NDA3IGQxMGM3NzhhZjE2N2EwZjNjZWY1ZmUwNTRkMzc4YTAyMDczMDY0YWMgbGVnYWN5LXRydW5rCiszNTQwOCA3Njk0NDA4NGU3NTZhMTZiOGQ1ODFjOTA0ZTE2NGZmOGY4NmU0NWY5IGxlZ2FjeS10cnVuaworMzU0MDkgMjQzNjQyYmJkMDNmMzVlNDVlMWM2YThlMzk3NGVkMzEzNDA3MTFjYiBsZWdhY3ktdHJ1bmsKKzM1NDEwIGJlNzgyZDA3YzUxOGQyOGIyNTgxNmZhODQwNmFiZGRlYjUxOTRlMmEgbGVnYWN5LXRydW5rCiszNTQxMSAzNWNiODExNGI0NWMyNWIwZTkzYTIyNDBjNzk0MmY2NDNhYmYwZjQyIGxlZ2FjeS10cnVuaworMzU0MTIgZWYwNmMyMTI0Y2IwNmUxZjUwOTNkNTNjZGNkMzc2MGZhNzI1ZTljNSBsZWdhY3ktdHJ1bmsKKzM1NDEzIGYyNjAwNDQ4ZTg1Yzk1MDY1NzdjNjA3NWIwMDkyMWE4ZjkyZGFmZDEgcmVsZWFzZTIzLW1haW50CiszNTQxNCA3ZmZmZGI5NGExNzJkYTQ1ZDIxYzFlNmQ2ZjhmNTgyNTkwNWIwNmRjIGxlZ2FjeS10cnVuaworMzU0MTUgZjI2ZDgyODZhNDNlOWU0NWM0ZmYwYTkyMGZmOTcwMzRhZWJhMmYxNSBsZWdhY3ktdHJ1bmsKKzM1NDE2IDAzNjkzYWY0NmFmYmNlYmU2NmU4OTkwOWY2OTBhNjA0N2UzZjU3ZDIgbGVnYWN5LXRydW5rCiszNTQxNyAyNmNmMjU4NmYyZmQyOTllMjA3NjlkMDg0ZTM0OGFjNTQ3YTBhMTY2IGxlZ2FjeS10cnVuaworMzU0MTggYjg5OTJlNzgxODQwYTA4NWEzNDJjNTA1MTMyOGZhNjg1ZGY1MDQ3YSBsZWdhY3ktdHJ1bmsKKzM1NDE5IDIwNmQ4NTc1ZjY0NDE5ZmE2NmQzOTZhMThiMzk2MTc1OWJmMWMyNDcgbGVnYWN5LXRydW5rCiszNTQyMCAzNWY1NmUwODcyN2Y5NTk1MzNjOTZiNTNjY2MwNTRmOTAwMzJkMjljIGxlZ2FjeS10cnVuaworMzU0MjEgMTUyYWRhZjc2NWViMmYwNWYwNTIxODkwM2FlNjgyMWQ0ZjMyYjhmNSBsZWdhY3ktdHJ1bmsKKzM1NDIyIDg4ZTljMDQ0NGQ0ZGRhN2VjNzg2M2IyNzJjNTg3MDhkYjc2YWI3YWMgbGVnYWN5LXRydW5rCiszNTQyMyAzZjY5M2E3NzI2OTRlMjMxMTk3MDhmODRkZTg0MjY4ODc4Y2FiZjlhIGxlZ2FjeS10cnVuaworMzU0MjQgYmE5ODk5NmI0ZDUwYTgxY2JiNjBlNTllY2ViMTU4NDhkOWU1YmM3YiBsZWdhY3ktdHJ1bmsKKzM1NDI1IDlhNGM0OWM1YWMwM2NhOGIwZWQxNzExZTQxNWIyZTNkYjUxODk5MmQgbGVnYWN5LXRydW5rCiszNTQyNiBhZTYwMzdhM2FkY2U5OTU1NmM1MjAzNWVkZGVjOGVmZDhjN2VjZGFiIGxlZ2FjeS10cnVuaworMzU0MjcgYTM4MzBhZTI5NGFlNjgzZGIyMWM0MWE0N2ZlNzQ4NGRjNTRkMjZjMCByZWxlYXNlMjMtbWFpbnQKKzM1NDI4IGFlNmZkYTk2MGQzOWJjMzA0OWRhMDU0MDI5YjI5ZDFlY2Q0NzAwMmUgbGVnYWN5LXRydW5rCiszNTQyOSA2MDZmMDQ3M2E5NjY4N2Y0ODlmNWZjM2MzODAyMTQ5NTM0NGU0MTYzIGxlZ2FjeS10cnVuaworMzU0MzAgNmJjY2E0NzkxODQ5OWI1ZGVmMTA4ODRiYzhjMWFhY2U0MTViYTQyYSBsZWdhY3ktdHJ1bmsKKzM1NDMxIDA4YzNiNDkwNTk2MWRmNjAzMmRiNjQ0ZDdhOTEzNTgyMzA3NzdiNDkgbGVnYWN5LXRydW5rCiszNTQzMiBhNmJjZjRkZjFhODU3NmRiYTlkZGVkNTdlNWU5MDFhMTU0N2U2OTg1IHJlbGVhc2UyMy1tYWludAorMzU0MzMgNTMwYTBkZTM1MTdhYWYwZTk4Mzc4M2U5YTc1YWI1OTE5MTVmNDUyOCBsZWdhY3ktdHJ1bmsKKzM1NDM0IDI4MzBkOGUxYWYxODVhNTlkYzkyMzU4ODFiZjY5YWZhMjQ1MDBiZGQgbGVnYWN5LXRydW5rCiszNTQzNSBmNzM3NGUzYjI3OWE4OGM3MzIyMWYwMGRjOTk0NWRiMTBiZGM3NzdlIGxlZ2FjeS10cnVuaworMzU0MzYgMmJmYzg4NjZlYTk5Mzg2OGVjMjI5ZjcxNGI1MTQzYjQ0MGVmZDE5MyBsZWdhY3ktdHJ1bmsKKzM1NDM3IDdiYjAzMDA2NmVhNGI2NTA5NzMxMTRlZWRlOGE0OGRjNjY2NTMwZDAgbGVnYWN5LXRydW5rCiszNTQzOCBjMGE1NDJhMWZjMWM4YjliN2JjYTBhZTY1ZDUwNzcxNzRhMmE5Y2U4IGxlZ2FjeS10cnVuaworMzU0MzkgZGE3OGI5NmI2YWFiZWIwM2U1OGY5YWMyMzVmOWFiNjBhMzg4N2U4NyBsZWdhY3ktdHJ1bmsKKzM1NDQwIGJiM2JjY2IzYjc3ZDVhYTAwMGY1MTE2MjhjMzZhNTI3YWE3MDgyM2IgbGVnYWN5LXRydW5rCiszNTQ0MSBjZTgzYWIwN2VhMDczMDg4NjRmNjFkOWRjMGY4ZjNkM2UzZjNkOTJiIGxlZ2FjeS10cnVuaworMzU0NDIgNmI3NTA2MDQ2NGY0NDYyN2Y3N2Q5ODU5ZWU5NTc5M2FjYTY2NmI4ZCBsZWdhY3ktdHJ1bmsKKzM1NDQzIGMzMjM4MWY0ZGM2ZjJlNTQ0N2Q1NmRiMmQwYjM1MzQ3YzNjOWQ5NGUgbGVnYWN5LXRydW5rCiszNTQ0NCAwMTZmMDA2ZDcxY2MzZmJjMGZlNGVmZTM5M2Q2NTk4OWE2MTllMGMxIGxlZ2FjeS10cnVuaworMzU0NDUgYWFmZTVmZWY1OGJhYjdjMTIzYjNkZDk3Njk0NzFiZjc5Nzc5ZDUzMiBsZWdhY3ktdHJ1bmsKKzM1NDQ2IDgyMzI3OWFlNDNlYjEwYWY5NmYwNDQ1ZDlmZGZkZWU1NjA3NzEwYzYgbGVnYWN5LXRydW5rCiszNTQ0NyBhODg1ZTRkNjRhZDBiODk5NDcyMDkyMTlmN2EwNDk5YTkyNjc5NzIzIGxlZ2FjeS10cnVuaworMzU0NDggY2U3MGYxNDQ2ZjM5OWUxMmU3MjJiOThhMDIyN2U5NzNlNzVhMDdhZCBsZWdhY3ktdHJ1bmsKKzM1NDQ5IDBmYjUwNjZmYzJhN2ZkNDY4ZjBlNWI1YTk3MDhlZjE3MTI4MGY0N2QgbGVnYWN5LXRydW5rCiszNTQ1MCAxMmJmMzdhNTgwMTVhZjkzNjliODlhNzdiZGNiMzRlMjI3NTY5MmE2IGxlZ2FjeS10cnVuaworMzU0NTEgNWU4YzZmMzhlMTViNWFjZTE1Y2E1Nzk3MDBkMWY4YWE0YTdmY2QxYSBsZWdhY3ktdHJ1bmsKKzM1NDUyIGY3YmZkOGY5MWMyYjkwYzc0MjMxY2ZjMmQzNTNmMGIxMmU0ZWU3MDAgcmVsZWFzZTIzLW1haW50CiszNTQ1MyA2ZDhhMTQxNDgxNTliMWJkNjJhMjIxNjNiNzYyMWIzMDE2NTQzNDkyIGxlZ2FjeS10cnVuaworMzU0NTQgYWQ1YzYwODUwMjNlMjQ5MzEzOWUxNmMxMDFkOWEzN2E0NzNkODJiYSBsZWdhY3ktdHJ1bmsKKzM1NDU1IDMzMmQzZmZhZGYyODdlYjI0YTRlY2ZjY2QxMDkyMThjNDdmMDVkNjAgbGVnYWN5LXRydW5rCiszNTQ1NiA1MDc0MjJlYWE3NjM1OTNlN2I5NTk5MGNjOGUzODBlMWQ3YzljM2IyIGxlZ2FjeS10cnVuaworMzU0NTcgOTJkNDAyMjA5ZTkwZjk3N2VmMzViOGYyN2NlMjk0N2YwMzUyZGUwMiByZWxlYXNlMjMtbWFpbnQKKzM1NDU4IGQwODc3MjY0MTdlYThhMTNlZDUzOWU1YzQxYTdmMWUyMjJmMWE2MzQgYXN0LWJyYW5jaAorMzU0NTkgMDNiMGZkMWNkNzIyNTg0YWFiN2I2ZDk2OWRmNzI2ZTRkMzYwYmNlOCBsZWdhY3ktdHJ1bmsKKzM1NDYwIDZiZjg3OTg1YWExZTk4ZTBhODRlMWI3NjVlZWRjZTRjYTY4YjI3NDkgbGVnYWN5LXRydW5rCiszNTQ2MSA1ZTYzYzJlOWI3OTI1MzEzNzAyMmFkYWRhMjY4M2U1NGE5NzBmNjE5IGFzdC1icmFuY2gKKzM1NDYyIGNlYjZhYWRkYWJjYzVkOWE2ZjQxZGJjNWIyZjFhYzc2OWIyYjhlZGMgbGVnYWN5LXRydW5rCiszNTQ2MyA1YjIyNDdiOTUzMjNjMzI3ZDUwYjNhYTg0ZmI3NjJmZDhhZTVjZjE4IHJlbGVhc2UyMy1tYWludAorMzU0NjQgMzZhMmQwZThhOTkzMzUwNDlkMjYyOTczYWMzMWNiMmEzMjA0N2Q1MSBsZWdhY3ktdHJ1bmsKKzM1NDY1IDkzZmI0MDgxZDEwN2ZiNGU5OWI1MjU4MjE4M2NmYjI2MTlkN2Q1MmUgYXN0LWJyYW5jaAorMzU0NjYgZmZhZTJmMWZkZDQ2YzhjNmQxODk5ZTEzYzVlOTNiNTc2MzUyMjZlYSBsZWdhY3ktdHJ1bmsKKzM1NDY3IDQ5MGViNjRiYzVjOTdiYjViMDhhNjJhZmQzYjU1N2IzMmRhOGZkNTcgbGVnYWN5LXRydW5rCiszNTQ2OCAxNzllMDQzMDdlY2QzZGE4YWYyMWU0MTIyM2Y4YjBkYjMxYjJlNzE1IGxlZ2FjeS10cnVuaworMzU0NjkgY2VhYWRiZDdmMTlhN2UyNmY0NWVhODUxYjE3YjJlNTY5MWNlZTM2YiBsZWdhY3ktdHJ1bmsKKzM1NDcwIGQ5NDhkZWU2ZjRhMWJlZDliZTE5NTg1ODk4ZTMxOWIxZDNkNjdlMDggbGVnYWN5LXRydW5rCiszNTQ3MSAwYjAwODZkNTNiOGU4Nzk1NzYxNmM0OWFiMDQ2ODE1ZWYzZmNjYjI3IGxlZ2FjeS10cnVuaworMzU0NzIgYzRlYmY3Y2ExYmRkMDFmZGQ2ZjUwYTUwZjM0MzVjYTJhYjllM2U0NyByZWxlYXNlMjMtbWFpbnQKKzM1NDczIDY1YjBjN2I1NjFkYWY0MmY2N2NmMTU0NTk3NjY4NDk1YjkyMGQ3ZjQgcmVsZWFzZTIzLW1haW50CiszNTQ3NCA1MmJhMWEyMmNjMmUxYjBmODIyMjllZTU0ZGY4YzhiZGNmNDU0ODM5IGFzdC1icmFuY2gKKzM1NDc1IGNkNDc2NmIwNjM3ZWExZDIyYjJmNmIwNTFmODYyMTZiOWFiYWM1NDAgbGVnYWN5LXRydW5rCiszNTQ3NiBkNjNjNTYyZWJiZTU3NDJkMzkxNmNjN2ZhMTBkYzE0ZGZlMjE3N2Q4IGxlZ2FjeS10cnVuaworMzU0NzcgOTEyNjBmYjNjODE0NzYzNzcxZWFmZjQ0YmM3ZjgwOTcyMzc3YTE2ZCBsZWdhY3ktdHJ1bmsKKzM1NDc4IGNjN2E5ZmU4MGIxYjc1NjBmNzc2OGY1YzM2ZTFkZTY2ODQyNWQ0ZDMgbGVnYWN5LXRydW5rCiszNTQ3OSA4MjBiYjgxOGQ2OTg0YzU5YjZiMjdjMmIzODUwNzZhY2JkYjc4NjJiIGxlZ2FjeS10cnVuaworMzU0ODAgNjYwZmMyNDJhNzY2OWIwNmJjZWVjODM4NzFhNmM5Y2IyMDQ0ZmUxNiByZWxlYXNlMjMtbWFpbnQKKzM1NDgxIGZkMjZmMjllN2VhYjhmMmZlMWE0MWQ1N2I5NmVlYTBlOWY2N2YwZjEgbGVnYWN5LXRydW5rCiszNTQ4MiAwNDIwZDNjZmU0YTRhYWZkYzEzZDhmYmFkM2Y1Mzg5YWUxNGE0NzJhIGxlZ2FjeS10cnVuaworMzU0ODMgOGVhNDVjZmUxN2ZjNjAzOGZiZDBhZmIyNDNlZmVlMTE3MjhlNWRiYiByZWxlYXNlMjMtbWFpbnQKKzM1NDg0IGM4Mzc5NTMyNDA0Mjc0MmM2M2NmY2QzODhjNDYyYmUyMDMyNmY2MTIgbGVnYWN5LXRydW5rCiszNTQ4NSBmYWZmZDk1NzJkOGQzMjM5YTAyNTE4ZjY1MzM1NTI2MGZlZTVjM2I0IHJlbGVhc2UyMy1tYWludAorMzU0ODYgYzc1ODc2NDMyZmM2YjVhYjZkZjExMzYwN2FlYjYzNWUyNTlhNmZlZSBhc3QtYnJhbmNoCiszNTQ4NyAyODQ2Njk0MDliZWI0NmFiZDFjNWFkYmQzNjk1NzMyOGM4MzM5NTk1IHJlbGVhc2UyMy1tYWludAorMzU0ODggZDY5ZmIzNWYxZWFlYTQzOGE3NWNkODJjYTk3OGViNmQ5NDBkMjBkNCBsZWdhY3ktdHJ1bmsKKzM1NDg5IDdhNDM0ZjQ5M2MzZWE4Yjg5ZWRjOTRlM2NlNjFiYWZiZWY4MDhmMTQgbGVnYWN5LXRydW5rCiszNTQ5MCA2Mzg2NTYxMWVkMmZlMzUyNDUwMmNmMDU3YjhkYWQzNmYyODM2YjU3IHJlbGVhc2UyMy1tYWludAorMzU0OTEgMjZkMGZkMDNkNWIzMGVkYWY2OTEzYWNhMTkyYjk2MWQ2ZDQ0MjA2MSBsZWdhY3ktdHJ1bmsKKzM1NDkyIGM0ZDlhOTZiZTJkZGNhNDUzNWI0MzdlOTcxM2ZlZWRkNDMxYWU1MDIgbGVnYWN5LXRydW5rCiszNTQ5MyA2NTA5MzU0ZTc4NzY5ZGI5YTJhNzZlMzM3ZTk2NjRjODdlNzgxZWEwIGxlZ2FjeS10cnVuaworMzU0OTQgMWVjM2Q2OTg0YjBmMTA4Nzc2MjhlMmRhNzYyYTYzOGE4MTg5M2EyZSBsZWdhY3ktdHJ1bmsKKzM1NDk1IGI5Njc2MjdhMmY0ZmU5YzlhZDU0ZmJkMDQwNmIwMzMyNzhlYTMwMzcgbGVnYWN5LXRydW5rCiszNTQ5NiBjZTY4ZDdjMDYyOWNjMzgxNjcwZWFiYTE3NmFmZGVlOWU1Yzg4ZmJlIGxlZ2FjeS10cnVuaworMzU0OTcgZTgzMTI0MDJjODEzZDhlOGQzMDgyMTZiZWZhOTk5ZDg2ZTQ3M2EzYyBsZWdhY3ktdHJ1bmsKKzM1NDk4IGMwMjM1MDFjMzhkNzgzZTlhMzQwZWZiM2E3YzkyMDYxNzEwYTRjZmUgbGVnYWN5LXRydW5rCiszNTQ5OSA5MjBhZDQ0NjVhYWVhNWEzNTQxNWZiYWY5ZmI3OWY5MzJjN2RmMjBmIGFzdC1icmFuY2gKKzM1NTAwIGQ4OTgyMzJkY2RkYmJhODA1ODIyZmJkM2NkMDE0MDgzNzdjODE2ZjQgbGVnYWN5LXRydW5rCiszNTUwMSBlZTBiYTAwYjI3N2NkZDIzODU5MzVjNjZhYWYyMGY0ZDhjNDNlZDc0IGxlZ2FjeS10cnVuaworMzU1MDIgNmZjYmY2YWM2OTlhODkwMjk2ODlhMTc4ZTBhY2UzM2M1MjI1YjBiOSBsZWdhY3ktdHJ1bmsKKzM1NTAzIDU3OTY1YjJkYjIwYzZkYWQ5Yzk3OTA2MjhmM2U2OWU3NzQ5ODAzOWUgbGVnYWN5LXRydW5rCiszNTUwNCAwN2EyYjRjNWQ1MDM0MTc3MmZiYzJhZWU1ZTNjMjg4NmY4Mjk0MTMyIGFzdC1icmFuY2gKKzM1NTA1IGRiYThkYjQxMmUzNTQ5OTZiMTgzODUwZGMzNWU2ODQyYWIyMTVlODAgbGVnYWN5LXRydW5rCiszNTUwNiA0OWVjMGQ4ZjA4ZWNkM2Y3MDU3NDFlMjEwYmZmZmIxMGVlZTdhMzhjIGxlZ2FjeS10cnVuaworMzU1MDcgYWUwMGQyZDEyN2QxZDBhN2Q3OTVlNmI0OWNlMmQ5Mjk2ZTdmMWM1ZCBsZWdhY3ktdHJ1bmsKKzM1NTA4IDFmODA2Y2JlMmNlMDQ4MWM3N2VhYTM1ODNiODhiMjdkM2Q0MzFmZDggcmVsZWFzZTIzLWJyYW5jaAorMzU1MDkgNGViNDU4YzM5NDFkNWU4NWU3MzM1MDZmZTEyZDE3ZTNiNzE0MTE5YiBsZWdhY3ktdHJ1bmsKKzM1NTEwIDMxMDFjMDBmNzU0N2YwMWVjZTQ5YWQ0ZTI4ODFhYWNiMDllN2E0MDkgYXN0LWJyYW5jaAorMzU1MTEgYzA2MWYyNWY3NGUwY2RlYmE3ZjI2ZWJmNzA1MzU5OWViOWFiN2FiMCBsZWdhY3ktdHJ1bmsKKzM1NTEyIDkwNzQ1MGU0YmM2NzU3ZGExYTRhN2JkODg0NDZjZmE2MmFmZWE2YzAgbGVnYWN5LXRydW5rCiszNTUxMyAzNDc1ZTQ1Njg0NzEwOTU4ODg3YWI4MzRhNmU3Y2YwMTRkYWE3YjIzIGxlZ2FjeS10cnVuaworMzU1MTQgOGJmMTYzZDA2ZDI5YWY4YWVlOWNmYWU3NTdmY2ViZmQyYmI0NGVkZCBsZWdhY3ktdHJ1bmsKKzM1NTE1IDdiNmM4MjI5Nzk5YmFlOWJmMWJiYmE2YmM1NTg1YmNjYjY5YWQ0YTEgYXN0LWJyYW5jaAorMzU1MTYgNjcxYWRlZTZhM2UzYjExZGQ3ZWNhMmI0Zjg2ZDNjOTc5MGNiZTEzZCBsZWdhY3ktdHJ1bmsKKzM1NTE3IGY1NGNkYjAxYTFhZDVkZjQ0ZjA5YWQxODkzMzEzZWZkNmZiOWQxZjMgYXN0LWJyYW5jaAorMzU1MTggMTRmOGM5MzNmODhjMDk5YzAwNjk2NjExOGY3YjkyMjRhMWUyYTRmNyBsZWdhY3ktdHJ1bmsKKzM1NTE5IGZlNTU0MWFhZTJkOGY4NzRmNzEzY2I3NjIzMzc4MWE5ZjRlNjQzNWMgbGVnYWN5LXRydW5rCiszNTUyMCAxZDNlNDhjY2FkNTczYTU0MWMzMWUzZDc5YmI0MjM2NWE3MDU3NzJkIGxlZ2FjeS10cnVuaworMzU1MjEgNDUxNDRjZGI3Nzk0YTRhNjVjOTdhMzYzODMxYjdkODQ0MDNmZTdkYyByZWxlYXNlMjMtbWFpbnQKKzM1NTIyIGVmMTgwODU2ZGY3NjE5MThmZDhiZGRmMGNjN2NmNjA1N2U4MTRhNGIgbGVnYWN5LXRydW5rCiszNTUyMyBjMmIwMWFhNDkwZTE0N2I1YjczY2JjYjhjZDM4MjE2NjNiOGU0MjhlIGxlZ2FjeS10cnVuaworMzU1MjQgMmViMzE3NWZjNTliNzJmMmNlOWFjY2NlNmZjODhlOGU4ZGI3YzI5NyBsZWdhY3ktdHJ1bmsKKzM1NTI1IDhhNzE0ZmVjZDA1OWJkZDgzN2Q4N2E2Mzg1ZjkwZDIzMGY0MWU3NTYgbGVnYWN5LXRydW5rCiszNTUyNiBhNWJkOGI0ZjNlNTVmMTMyOTUzNjYxOGE1MGY2NzEwZTc2OWFiZjA4IGFzdC1icmFuY2gKKzM1NTI3IDU1NWRjODQ2MjI2ZGQyODYxMzIyNTY5ZGI2OTRiOWJiNGVlMGNjOWYgYXN0LWJyYW5jaAorMzU1MjggYjM5ZmRjOWM4MDdlNjViMzI4OTM3NDM3MDdhNmQ5MzQ3NWZhZjcxZiBsZWdhY3ktdHJ1bmsKKzM1NTI5IDE0MDc0ODQ4MzYxMjBiNTMzNGZmODFkMDAxMmRjZWM3M2Q5YmFhZTcgYXN0LWJyYW5jaAorMzU1MzAgYTczN2Y3YTBmMmI4YmFkYTRkMzhmMGI3ODIxZDE2OGY3MGIyNzBkZSBsZWdhY3ktdHJ1bmsKKzM1NTMxIDE2YmY0ODRiMzg2NDk0NzQ4MzFlNjBkYjZjY2Q1YTMzMzE3ODVmMjQgbGVnYWN5LXRydW5rCiszNTUzMiAzZTQ5ZWIzMjQ3MGJiNzg3YWFjZDRjYjZhZDVlMTQ0MTRjNWMwNzcyIGxlZ2FjeS10cnVuaworMzU1MzMgYmU1ZDJhMDdiYzI2OWJhZGIxNGE3YzdmNDZjYjc1MDU2ZWUxYjVhNyBsZWdhY3ktdHJ1bmsKKzM1NTM0IDk1MzZiMjk3ZDgzYzJkNzhlOGQ2MzE0NjM4NzliMDRhZDQyNzEwMDQgbGVnYWN5LXRydW5rCiszNTUzNSBmNGE0YWM3MzMxZWM5MWU4NGQ4ZmQ0ZTliNjYzZjg1NDcxZTAyNWZkIGxlZ2FjeS10cnVuaworMzU1MzYgNjQyNmIzN2JiMmEwZmRhODIzMmU3YzZjMWE0ZTA2Y2FlZTAxYjFiZSBsZWdhY3ktdHJ1bmsKKzM1NTM3IDM0NzNkZWEzYWE0YzA1MDg3NzdhNjc5YjM4YWNjNDM0M2VmOWMyOGUgbGVnYWN5LXRydW5rCiszNTUzOCA1ZTkxNmQ0NmEzZmI2OTI2MjAzZDJkMWUxOTUwNzdmZGZhOGVkOGI0IGxlZ2FjeS10cnVuaworMzU1MzkgMjRlMDcwZTk1YmY4YTFkMTUzNzNlNDJkNDVlMzZlOGVmZTg1N2Q0NCBsZWdhY3ktdHJ1bmsKKzM1NTQwIDc1YTkxZmQ4YjUwY2ZiMDY4MWNkNGUzZjAyNDhmZmJlNTExZDMxOTIgbGVnYWN5LXRydW5rCiszNTU0MSAxMjAxOTI1MTYwMzM5MmMzMDNhODRhZDNkNDQzOTNmMmQ0OTFiOWE1IGxlZ2FjeS10cnVuaworMzU1NDIgOTgxN2RlZTVkOWRmMDg1YzQyYzFjNmFjNjgwMGM0MDk5YmZjZjhjNyBsZWdhY3ktdHJ1bmsKKzM1NTQzIDdmNDY0ZGQ2ODBhYWMwOGU0YWRiYjdlYTJjYmY3NWE3MzhkOGYyOWYgbGVnYWN5LXRydW5rCiszNTU0NCBlZjU5MWU3YzM0ZmQ4ZTA5ZjU1ZmRkZGFlZmVmNjFlOGI4YjFlYWNjIGxlZ2FjeS10cnVuaworMzU1NDUgNzYwNTNhMWRkNDUyNDRkYzFhYThkMzZkZTJjNzhiOTNmYWY3MWEwOSBsZWdhY3ktdHJ1bmsKKzM1NTQ2IGZiNTU3YWM1YmI5YTI1YjE0NTVhOTlhMDNmNTAwNjA5MDA2ZDI5OWUgcmVsZWFzZTIzLW1haW50CiszNTU0NyA5ZDg0Y2VkNjRkMTBjOWFlNjhlZTU2ZWQ0NDM5ZjNiODBiMGYyNGFiIHJlbGVhc2UyMy1tYWludAorMzU1NDggMTY0Y2UxYmNhYjZlMWUzMjBmYmFmMDFjYWQ4YTUwZDcyOWZlOWYzMCByZWxlYXNlMjMtbWFpbnQKKzM1NTQ5IDMzZDQ4ZGY5YTkzNzgzNDU0Nzc4YWNkOWRlNGUwNmU1YTI1ZmMzNWIgbGVnYWN5LXRydW5rCiszNTU1MCAyOWJlNzI5YjMyYzNmZTk0MTY3OWFkZGQ3MjUzZjIyZDEzZGU2Y2QwIGxlZ2FjeS10cnVuaworMzU1NTEgY2M0N2MxZWFmODBhYjcyMzkwOWVmNDZhZTMxNzdhMzUyMWVhNzk4YSBsZWdhY3ktdHJ1bmsKKzM1NTUyIGM0YmFlMDg5YmZjOGYxMTViYTkzYjU0ZTU4YTQ0YmNiMmYzNjYzZjMgbGVnYWN5LXRydW5rCiszNTU1MyBlYzM3Y2IxYzBlZDg4ODdjZTRjN2JlYTFmOTg3MTkyNmM3YzI4ZWY5IHJlbGVhc2UyMy1tYWludAorMzU1NTQgZDQ0OGNjMjYxZjY5ZjRiMDgyNzVlYzBkZTcwOWVkMGQyZWRmMDdiZSBsZWdhY3ktdHJ1bmsKKzM1NTU1IGNlMWUwYjQ5NGNhNzAyNGMyNzM4ODlhZjMyNjc1MGQwNWE5OTI2YTcgbGVnYWN5LXRydW5rCiszNTU1NiA2YTE1MDU2MTMzNTg0YmVlMzU4ZDZhMzUxNDcwMWE0YjcyY2Y3ZTVhIGxlZ2FjeS10cnVuaworMzU1NTcgMjNlNWNjMzRhOTgxMmU0MzRjZDAzMDNjYzdiOGQ4ODk0MWVlOWJmMSBsZWdhY3ktdHJ1bmsKKzM1NTU4IDgzNWI2OTBkN2VkM2E1MDcyZDllNGY1YjU0ZjAxNDRlMTE1ZGE5ODUgbGVnYWN5LXRydW5rCiszNTU1OSBkYzViZDg0MjJkNTI2YWNiYmQyN2VhMzgxNDI2MjIxNWQwZjUzZDI3IGxlZ2FjeS10cnVuaworMzU1NjAgYTRlYWVlZDQwOThiNGQ4MzA2NjIwYWI4NmZkYTQ2ZDk3NGY4YTFmNiBsZWdhY3ktdHJ1bmsKKzM1NTYxIGZlOTQzMzVmMzhlMjQ5NzRkMTc3OWI1MjAzNjBkZDJiMGVmMDM3YmYgbGVnYWN5LXRydW5rCiszNTU2MiAyMDI0YjRlNmUzOGRhODM1MjU5MWI5YmUxNmZhODNkZjcwNmMzMWI1IGxlZ2FjeS10cnVuaworMzU1NjMgYmVmYjFlYTZjODhlYjJiZDgxMDJiYjE5OTU2NTAzZGMxNjg4N2JjNSBsZWdhY3ktdHJ1bmsKKzM1NTY0IDI5ZGE4YmRmZWI0ZTMxOTJiM2I5YTU5NWE0NzQ2MWUxNDM5ZjRhMTEgbGVnYWN5LXRydW5rCiszNTU2NSA4NTg2OTdkYjFlNGJlZGM3ZmYwOGQ2MjQyYTUxNDJiMGUxMzJlYWZlIGxlZ2FjeS10cnVuaworMzU1NjYgNTJjMTcyMjg5YWRkMWEzYTM4NzEwZDI0MDEwYmY4MjEyNDI2MjZmNiBsZWdhY3ktdHJ1bmsKKzM1NTY3IDRjZTA5OGYwMDVmMDAyZjdjNDNiYWIwZmZjYTYyZDlmNmE3MzQ5MDMgcmVsZWFzZTIzLW1haW50CiszNTU2OCBmMWQ0NDI5NWViZjdkOWU5MTU1OGU3YmM5ZDU1MDhkMWE2NWU1MzRkIGxlZ2FjeS10cnVuaworMzU1NjkgYmYzNzQyOWY2ZDlmMDUxM2NiMjVmM2YxMGFjOTMwMTkxMDk5ZThjZSBsZWdhY3ktdHJ1bmsKKzM1NTcwIDFjMTE3ZGJiMmRlZjRmOTNhNjBiOTMyYjcxNTc5ODUzZTRlNzE4OWMgbGVnYWN5LXRydW5rCiszNTU3MSA4NDZiM2VlN2UxMDZmMTIyZjhkN2UzYzE3ODY3YWI5M2M4NTQwMGQ0IGxlZ2FjeS10cnVuaworMzU1NzIgYzc2NjA2ZjM3MmQxMzRiOTdjYmY3NWNkMjhjODQwNjU4MzJiZmQ3ZiBsZWdhY3ktdHJ1bmsKKzM1NTczIGU2Mzc5YmRhOTFkNzk2OGFlMmE5NjBmYjAxYWJhMjk5YTEzM2NlNWUgbGVnYWN5LXRydW5rCiszNTU3NCAzN2RjOGM4MGNhN2VkOTIxZmU5MjgzMTQ0MmJhYjg0YjI4NGU2MDE4IGxlZ2FjeS10cnVuaworMzU1NzUgMjc3YjVhMmYwOGY1YzlmNDA5MWRhMjBlMjA2N2E4ZmMxNTFhMjdjZSByZWxlYXNlMjMtbWFpbnQKKzM1NTc2IDU5ZmUwOTgyNDM2M2IwZTRmYWJmY2E2MGNhNGQwNWU1YWNlZmRiOWQgbGVnYWN5LXRydW5rCiszNTU3NyBjMDUxZGM2YWIzNzQzODdiYTI2MWJlNmRmMTViYWZiYzliMzQ4MmFhIHJlbGVhc2UyMy1tYWludAorMzU1NzggMDI2MWUzODAxMWY2ZGU0MmE0NzY5NWRjN2Q5NWQwMzQzZGM1Y2Y4MyBsZWdhY3ktdHJ1bmsKKzM1NTc5IGNlYmRhMjNhYWFkYmM2OTEzMzcwMmIwYTUxMzFjMDEwYzNhNTNjMmQgbGVnYWN5LXRydW5rCiszNTU4MCAwNzgwMzI0NDRlY2M4OWMzMGNhZWI0NmVhYWYyNmIyMDM2NGI0NTNmIGxlZ2FjeS10cnVuaworMzU1ODEgYmM2ZWM5NWY1NzkyM2Q3Zjk0ZjQ1ZDA1YTE2ZmE5NWYyZGU5MGQ2MSBsZWdhY3ktdHJ1bmsKKzM1NTgyIDZjNjkxMGZkMDEzYTYyNjU1MWU4NDU3OGZlODhiY2ZhZjYxMWVmOGQgbGVnYWN5LXRydW5rCiszNTU4MyBmOTgyMTVkYWEzNWZjMjU3MDU0ZDA1ZTE3OTQ4OTgxODc4Nzk2MDdiIGxlZ2FjeS10cnVuaworMzU1ODQgN2ExMjA0MDA4ODhhZWY2YTgyN2UyYmFjNWJlMjY4NWVlNzQzNDliMCBsZWdhY3ktdHJ1bmsKKzM1NTg1IDFiZTU0OTlmMzc4ZTk5NzAwYmIxOThiZjY5NWQzMWI5NmUyODYyOWQgbGVnYWN5LXRydW5rCiszNTU4NiA0ZGI5NTg3MjkxOGViOTI4OWYxM2M3OGIyMThjMDM5MTkyMDdkNzk5IGxlZ2FjeS10cnVuaworMzU1ODcgODE4NGM2Nzc3MTNmZDYxZTAxMDU1MDkyOTE3MjlmYzEwZWUwNTNkYyBsZWdhY3ktdHJ1bmsKKzM1NTg4IDlhMTFhMjM2MTU0NzQ1ZGYzMWE5YTU4MjExMDg0NGU1ODYzNmViOWEgbGVnYWN5LXRydW5rCiszNTU4OSA0YjA5MzBiNTY1NjVmZDIwZmUyOWQ3NzY1MTRlNTI3NjhlYzU1NGY5IGxlZ2FjeS10cnVuaworMzU1OTAgNzVlMmY3NThlYzVhMDZiNmRhM2EwZGY1MTMzNzFhZDI2ZjFmOTNjMCBsZWdhY3ktdHJ1bmsKKzM1NTkxIDk0ODk5NmY2OTlkMmUyOTJhZDNkMjBhYzMxNTkwNGFiNGNmYmMxNzYgcmVsZWFzZTIzLW1haW50CiszNTU5MiA2YjE4NThkMTJmOGNhOWViYjJlNWY3MTgxNGE3NWQ4MGMyODA4ZTU0IGxlZ2FjeS10cnVuaworMzU1OTMgMTY4ZGFjZmJlZTY1YWE3YzlmY2JhMTUxYzdjZmRmYzAxYjI2YTU2NCBsZWdhY3ktdHJ1bmsKKzM1NTk0IDgxNzBhYWRjOWVjYTc0ZWRmODNlNTI1ZGI1M2EwN2FlZTlkMmM4NGQgcmVsZWFzZTIzLW1haW50CiszNTU5NSBiMDgyYjRkNDgxYzI1NjJkZGQzMWMzYzgyNDA0Yjc4OTM4OTM1MmMzIGxlZ2FjeS10cnVuaworMzU1OTYgYTRhYTdkNjFlNGFmMTk2ZWY2MGI0MDlmODZhZWNhMWRkMTlhNGNlMCBsZWdhY3ktdHJ1bmsKKzM1NTk3IGEyZTgwZmE3MzU5YjU1MDAwODBkNzcxYzJiYjk3MmY4MmI5OWY3Y2EgbGVnYWN5LXRydW5rCiszNTU5OCAzMzFkZThiOWQxZWQ1NWM0NWZiYTM5ZWY1Nzk1OGEwNzQ4MjAyYzg5IGxlZ2FjeS10cnVuaworMzU1OTkgMzRkNWViMWU1MDdkYzI3YWYxYjZjNjk3ZTYzZDlkNDFlNjBmNTcwYyBsZWdhY3ktdHJ1bmsKKzM1NjAwIGQwNzg4MzkxYzEzYmNmMjMwNTcyYjc4OGY1ZmZmYjBlYTE0Yjk5YzYgYXN0LWJyYW5jaAorMzU2MDEgYWFkYTkxYzVkNmQ5YzcyNTZjYWNiNjM2YWI3ZGNmMzQyYTQzZmFjNyBhc3QtYnJhbmNoCiszNTYwMiAyMjkwODUzYWI0MGE2MmQ3OTUwNDU4MmZlMzMyNGZjNGEyMGJkYTIzIHJlbGVhc2UyMy1tYWludAorMzU2MDMgNTkzMjQ2OWRjYjM1OTMzMjc3Y2VhYzc1OWIxMDU5ZDMzNGZlODc4ZSBsZWdhY3ktdHJ1bmsKKzM1NjA0IDNlZjU4ODg0YmRkNTIxYTE2ZWRiNTRjOTJhY2JlMjJlYWUyMTU4MTcgYXN0LWJyYW5jaAorMzU2MDUgZjRlNWY5YzJlMmIzYjkwYzdjOTMwMDM1Y2U0YTNjZDM4OTFiMjVlZSBsZWdhY3ktdHJ1bmsKKzM1NjA2IGE3NmFkODNhNDEzZjBlMTIxNTBiZDQxMzc0ZjgyZWY3MWY4YjgwMWYgbGVnYWN5LXRydW5rCiszNTYwNyA5YjE3ZjNjYzIzZWRjZWY2YzI0YmE5NDQ0ODk0YTk4OGQ4YTc2MWZmIGxlZ2FjeS10cnVuaworMzU2MDggZTI2MWUwYzJjNzJkNzVmZDM3MTNmYTg0YTFiMzhkZTNkYzllNDZhNSBsZWdhY3ktdHJ1bmsKKzM1NjA5IDY0ZTJmN2VjNTU3NmIzYTU4NDJmYWY0NTc5YWU0NmFlZTE2OWNhNGIgbGVnYWN5LXRydW5rCiszNTYxMCBhOTEwYjgyMmIxMmNiM2ZjNGZjZTE5NjM3OTI5NTc4ZmU4NDRjYjg3IGxlZ2FjeS10cnVuaworMzU2MTEgNzM5MTI4YzY3YzMwZWY4ZDk4N2U3OWY2MWNlNDFlZmJjZGQ4MzdlYSBsZWdhY3ktdHJ1bmsKKzM1NjEyIDQzMzY0MmY5M2Q1OWRiYWQ0YzhhMmZiYTRjMTcwNGRmZTc2NDNiNGIgbGVnYWN5LXRydW5rCiszNTYxMyBlNDJjYmFmZjgwMjdkOTFmYWFiOWNkZmI1MWI0NGY4NjY3YjZhYzkzIGxlZ2FjeS10cnVuaworMzU2MTQgODExMTc5MjNhZThmMGM0NWMxZWE3ZTIzNmI5ODM4MDllNmYzYzU1OSBsZWdhY3ktdHJ1bmsKKzM1NjE1IDY3N2MwYmYwNTczNWU4YzE4NjNmZWQyNGQ5ZTEwNWYzYmYwZDI2YzggcmVsZWFzZTIzLW1haW50CiszNTYxNiA0YzA2ZjRmYWVkODc3YmFiMTliM2NkYjU3OTRjNmJkZGM5MjRjZDMwIHJlbGVhc2UyMy1tYWludAorMzU2MTcgZDIwY2I2MzU3ZjVlYTE2MWIzNWExMDQyNGM0MjUxMTdhMmUwYmYzZCBsZWdhY3ktdHJ1bmsKKzM1NjE4IGIxZWEyZjNmNDY3ZWY3ODU2MmRmZDc2ZDE4MWY4ZTZiMGI5ODFmNGYgbGVnYWN5LXRydW5rCiszNTYxOSBmYWE3MTRkZDg2ZDNmMTA1ZDNhOGMwYmFlMmFhMTZiZjAyNjFmNWI1IHJlbGVhc2UyMy1tYWludAorMzU2MjAgZjRjMWMzZTYyN2RmOGZlODY2MzFlMjQyOWNlYzExMzQ5ODAxNDMxZiByZWxlYXNlMjMtbWFpbnQKKzM1NjIxIDgxNGNjOWY4M2ZhYWI4ZGUyNTllNjU0Y2Y4YTNmOWRkMjQ0NDYxY2IgbGVnYWN5LXRydW5rCiszNTYyMiA2NGNjMTYzZWVhZjEyMTM1MTM2ZDcyMmEwY2E1YTc3MzdlODZlNzI3IGxlZ2FjeS10cnVuaworMzU2MjMgOTI1NTI0NjcxNDVlYTdkOGYyNmI0ODk3YTAyZGIyZmU2YzIwNTY1YSBsZWdhY3ktdHJ1bmsKKzM1NjI0IGM1N2NmYTgzMjhkNDNhYTk5Y2U2ODAzNDM0YzUzMTQ1Njg3Yjg1MzkgcmVsZWFzZTIzLW1haW50CiszNTYyNSBjNGM3ZjBmMzlmZTliODM3MWU4NjUyY2YxMjg2NjU0MjcwMWYwNzk1IHJlbGVhc2UyMy1tYWludAorMzU2MjYgOGQzODJhYjk5YmRiYTllOWQyZWI1YzY3NmQ0MTY4OWM0Y2QzNWFkNCBsZWdhY3ktdHJ1bmsKKzM1NjI3IDY5NmY0YmE5ZGRmN2IxNmQ0ZDllYThhNzllNGE3MDk1ZGM4YzM4Y2YgbGVnYWN5LXRydW5rCiszNTYyOCBhZGI0MmE3MTE2OTYwNGQzNjA5YWMyZmJkYjY0Y2Y4Y2QxYzcyNTBiIGxlZ2FjeS10cnVuaworMzU2MjkgMmNmZTE0Mjc1YTA0NDA4YjYzZjBkNjI5OGUwZGM3YzgzZDg5ODdlZiByZWxlYXNlMjMtbWFpbnQKKzM1NjMwIDNhZDQyYjdkNDY2MGFjM2MxOTUyMTUzMjc2ZDU3M2Y0ZGNhOTgzZjAgcmVsZWFzZTIzLW1haW50CiszNTYzMSBmOGIyOGU0YWM0MzVhOTc3ODk0ZTAyMzdhNGZmZGVkNjRhOGE1MjZkIHJlbGVhc2UyMy1tYWludAorMzU2MzIgNWY2MGIyMjYwMTllOWYzYjQxM2FmMGVmODBmZGJjMmFhOThhYTE0YyBsZWdhY3ktdHJ1bmsKKzM1NjMzIDhiY2IxMjFjNTQxMTFiZmJhMTczNjMyNWQ1MjU1NTExYjNlYWY5MDAgcmVsZWFzZTIzLW1haW50CiszNTYzNCAwNTk4OWI0ZDZjZTgxNTdkNmYyNTJlYmMyNGFiYjY1OWU3ODkzOTg0IHJlbGVhc2UyMy1tYWludAorMzU2MzUgMGQ4ZWUyOGJmNmYwM2ZmY2NhYTQwZmVjMjhmNTkzM2NjYmI5YzZhYiBsZWdhY3ktdHJ1bmsKKzM1NjM2IDU3NjVkNjU2ZTBlZmQ4N2QxY2MyNzg3NjQ2Nzg5MzNlZDlmMzI2OTMgcmVsZWFzZTIzLW1haW50CiszNTYzNyA1MDEyOGZmMTk5NjU4YjE0NzY5ZWNhYzBjNDhlZmJiZjhmOGMxZmJlIGxlZ2FjeS10cnVuaworMzU2MzggZDA0ZDc4NmFiNDU4MTM3OTUxMGRmYTVmNmNjOTYyYWM1OWUzNGZlMSBsZWdhY3ktdHJ1bmsKKzM1NjM5IGRiZDNmYzIxNGI2NjZhMzY4M2EwY2Q5ZmU0ODRjNTNjNzdlYThmNjYgbGVnYWN5LXRydW5rCiszNTY0MCAwMDcxZDZlYjgwYTFmYTIwOTM5ZTg2ODk1OTcxNWIwNDg3YWViNTljIHJlbGVhc2UyMy1tYWludAorMzU2NDEgYTQwZDc5ZmUyYTY5ZTJhZmVjNTM3MzM2OTYxYjhmYzc3NmU4ZDNiNyBsZWdhY3ktdHJ1bmsKKzM1NjQyIGI0ZWM5Mjk5NTYwZDgwODliMjQwNTU3ZDY3ZjQwNjE3YjU2ZTJmYjAgcmVsZWFzZTIzLW1haW50CiszNTY0MyA1NTIwNDRiNTA1OGQwMThkMjJkMjA3NDNlNmNiZjFiMWQ3MzlkZWIxIGxlZ2FjeS10cnVuaworMzU2NDQgNTFhYWNlZWFhYmUxMWVhZmU3NGQ2MmNiMzQyN2M3Yjg0NmY3MGI4MCBsZWdhY3ktdHJ1bmsKKzM1NjQ1IDE1NjAzN2JlMzU1ZDk4NDYwNzY2ZDBmMDNkYWQ4YmFhZmNiYmMzYTUgcmVsZWFzZTIzLW1haW50CiszNTY0NiA1YTM2ZTRkNWFhOGYwZDQwNTg1ZjQ1ZGViNDAzY2U5MDhhYmU0ZmQ2IHJlbGVhc2UyMy1tYWludAorMzU2NDcgYzdmOWZjYTk0NmQxNmI3MDRjMjNiNjAyODUzNmViOTM2ZmJkZmQwMyBsZWdhY3ktdHJ1bmsKKzM1NjQ4IDAyMGRjNWRmZDVjNWQ4OGRkMGY0NTcyNjk1ZGM0Y2ZjOGM0MDUyY2UgbGVnYWN5LXRydW5rCiszNTY0OSA5ZjVmZTZiMjNlNTkyMGU1NzlkM2E2YmFjYzNkZGQwMWViYTdkNDhmIGxlZ2FjeS10cnVuaworMzU2NTAgMjI3Y2I3NDAyYzZlOWJmNjdhMDBhMDIzNTc1NDY4NzIwMWZlNWFjNCBsZWdhY3ktdHJ1bmsKKzM1NjUxIGM4OGQ0NjEwZjI4M2NiNmQxNjJiOTU4M2NmNDdmZmQwZDJlMTRjZmMgbGVnYWN5LXRydW5rCiszNTY1MiAxZmIyMzEzYWMzY2VlNThmZTdkMzk1MmUyMWE3YjY3OWU3MzUyNDJkIGxlZ2FjeS10cnVuaworMzU2NTMgYzkwNmJiMmExODI0NTUxZmM4OWZjMTRmYzg2N2UxMWY0NmRmMmI1MyBsZWdhY3ktdHJ1bmsKKzM1NjU0IGEyZmIxNjc4NDFlODM4YzI2YmQ0Nzc5Y2ZlZDkxNjFjOWU0ZWNjNDggbGVnYWN5LXRydW5rCiszNTY1NSAyNmVlMWIzZWIzNDUxYTcwYjQ3NjQyY2RmMTJlZGY0ZmZlODQ5NTM0IGxlZ2FjeS10cnVuaworMzU2NTYgMWEzYTQ4Y2JiMTYyOGQ0MzQwYWJkNWIyZTgzYWY2MWUxZDdiZmNkMCBsZWdhY3ktdHJ1bmsKKzM1NjU3IDRjNmZkZWI4ZTJlMDIxN2YzNTZiZjFhZTBhZDk0YzVjZjc0MzYxMDcgbGVnYWN5LXRydW5rCiszNTY1OCBmMzViNGFjYzU5NGY5MGE5ZjYyOThiYTQ1ZDE4MTVlMmY1NzVmMzc5IGxlZ2FjeS10cnVuaworMzU2NTkgNjk5NzA2NTNlY2JmYWM5NGNlNzU4MTVlY2FiMjM1N2I4YzU1ZTU0ZSBsZWdhY3ktdHJ1bmsKKzM1NjYwIGY5Y2Q3OTkyNmZmNzc4ODFhMjEzYzkwOTVjMDkwYjRkMWI1OWMyM2YgbGVnYWN5LXRydW5rCiszNTY2MSA5ODY1OTRjM2U0ZDlkYzEwMzQ2MmNlYzUyM2NmZDYxMzRiMjY3ODIwIHJlbGVhc2UyMy1tYWludAorMzU2NjIgOGMyNjQyMGQxZjIzNTNhMDNjY2NiZTMzNmU3MmM4YmFhYjU5MDVkZSByZWxlYXNlMjMtbWFpbnQKKzM1NjYzIDdiODE3MTE5YmI2NjBiNTMxYTMzMzNiN2JkYzU2MjZlOWY4ZjAzMjkgYXN0LWJyYW5jaAorMzU2NjQgYzY4MWQ5NWNmNzllYzUwYzViODU5MzQ1ZmUwYzExZmY3YmM1YTZiYSBhc3QtYnJhbmNoCiszNTY2NSBjMzcwYWFlOTgyMzIxNjM2ZGI5Y2NlYWRhYjUyMjQ2ZDAxYjRjY2NlIGFzdC1icmFuY2gKKzM1NjY2IGI0Njg0MjM0YmYwNzAxZjA4YTc0OWIxYWQyYzM3YzAxNjM1Y2E3YzEgbGVnYWN5LXRydW5rCiszNTY2NyAyZTUyYzIwZGVhNGY2MWRhOGRhZjBhMjdlYmRhMjg3NjgwZWE1YWQ0IGxlZ2FjeS10cnVuaworMzU2NjggZGQ5M2EzMmFjMzNlZmYzY2I4NmQyNzY3OTk2ODUwNGRiMDRjMjYxMiBsZWdhY3ktdHJ1bmsKKzM1NjY5IGRmYzhjNWY2Njk1OTU4MjE0NGRhYjZlZDljYzE2YTUyZTljM2NhOTIgcmVsZWFzZTIzLW1haW50CiszNTY3MCA4NDhiY2UyMjE1ZDM1YjZkZmZhOWQ4NWZhMTJjYTY2NDc2MjgwN2E5IGxlZ2FjeS10cnVuaworMzU2NzEgYzcwYmIzMjIyN2NiM2JmZTZhMGU4MzNmZGJlOTdmZjQxM2U2M2YzNiBsZWdhY3ktdHJ1bmsKKzM1NjcyIDA4MTk3MmFlMmY4NDQyMWZkNjRhMzIwNmE0NDI2NjQ0ZTY5MGQ0NzkgbGVnYWN5LXRydW5rCiszNTY3MyAyNDEwODllNDM3ZTAyOWU5Y2EwZjIwZTM5OTA3Y2RhMDgwMjllZWNlIGxlZ2FjeS10cnVuaworMzU2NzQgMzEwZGQ5OGVhMDY0NjE5Y2I5ODgzZDgwZTljMWNmMGI2ZGNjNDExZCBsZWdhY3ktdHJ1bmsKKzM1Njc1IGM1NmVhNjBjYjNiZjc3NjNkOTViM2RmMGMwYTAyOWM3OTExYjMwNDIgbGVnYWN5LXRydW5rCiszNTY3NiBjYTJmYjVjZjJmZDU3NWM3MjliZTEyNTJhNjQ2ODM1YmJiM2E2MzBlIGxlZ2FjeS10cnVuaworMzU2NzcgMjc5NGY2MjdlYmFhMDAxNWY4ODc0Mzg5ODVkMjRhZWEwZGY5NzQxMyBsZWdhY3ktdHJ1bmsKKzM1Njc4IDY0ZmNmZjEyMWY3YjVkZWRjNjc3ZTA3OGYyYzQ1Y2RhNDVhNzY2MjEgcmVsZWFzZTIzLW1haW50CiszNTY3OSA2ZTU0YzU5Mjg1M2M2NGM3N2VhODVlNDYwNmNkNWQwNmNmMGQzNWNlIHJlbGVhc2UyMy1tYWludAorMzU2ODAgMDI2NWJmOTkxMmVhMjkxMGQ1ODMxZTcxZmJiMWRlMGI2NTMxMzMyNCBsZWdhY3ktdHJ1bmsKKzM1NjgxIDM1NTQ3MzUzNGM3MDY4MTBmNjc0NjY4MDlkMjNiMDhkYzQ2OTNjZmEgbGVnYWN5LXRydW5rCiszNTY4MiBjNDg4OGE4ZmNmNzA2MWI2NDZhMWY2NGU2MjEwMmRmMTRlZjg2MzA2IGxlZ2FjeS10cnVuaworMzU2ODMgZTk3NTE4YzY2YWNjMDgxNTZkNzJmMzdlNzU5ZDNjNjg4MWZiZjVkZCBsZWdhY3ktdHJ1bmsKKzM1Njg0IDg5NzVkZWZiZjNhOGIwYWI0YWVmMTEzZDhmMTJiNWQ4ODA1ZjVkNzEgbGVnYWN5LXRydW5rCiszNTY4NSBlNzYwOTJkNDkwMmNkNDRkY2Q2ZmM3NTEzNWJhMjIwZjIxNmI2MTE5IGxlZ2FjeS10cnVuaworMzU2ODYgZjM5YzU2ZjhjY2MyYmU0ODY0NWFmOWRlNDAzNjBiNmZhNTZjZDNiMCBsZWdhY3ktdHJ1bmsKKzM1Njg3IDg4ZDYyNWQ5MjhhY2RiYTA3ZTA1ZWJjZmYzNzM1OTc1ZjIxNjJkOGQgbGVnYWN5LXRydW5rCiszNTY4OCAwNTg4MjFkOGFlZmRjNTBjZDQ3ZjliZGM3ZDMzNzE1MmY0NWUzOTBjIGxlZ2FjeS10cnVuaworMzU2ODkgNmIyMzY5OTQ2ODRhZjkyOWM0NjAwMTNlNjIxZThmNDIzZjJjNzU1MiBsZWdhY3ktdHJ1bmsKKzM1NjkwIGNlYzc0MGY5MmZhNDIyNTAwMzU1MDc5NjdmNmUxNjYxZTVkZTA1ZWQgYXN0LWJyYW5jaAorMzU2OTEgYjMzZGRiNDhiN2UwNGUxNTZkODIxZTRjYTUxMWJiNjE5Nzk2OWYzNCBhc3QtYnJhbmNoCiszNTY5MiBlYjZmNThjM2Q5NzI1ZjA1MGQzZGFmYzA0YWJlYjFjNmM2MjBhNGE1IGFzdC1icmFuY2gKKzM1NjkzIDE2ZTc1M2ZmMzFiMjI2OGM4NTU2NjNiYmI2MGY4MDNhOGZhNzZiMGYgYXN0LWJyYW5jaAorMzU2OTQgNGE1NDMzMDZkZmZhMTY4ZjBjNWE4NDFmZWU2NDZkNWZkMDdkYjUwYiBhc3QtYnJhbmNoCiszNTY5NSBmN2Y0MTNjNjU0ZjRmYzNiNGU3NDc2NzdjNDg1MjgwYjkwMmY4N2MzIGFzdC1icmFuY2gKKzM1Njk2IDU1Y2E5N2U3YmQwZmEzNmQwN2IxMmE3YzgyNWRlMzg2ZjQxODVlN2EgYXN0LWJyYW5jaAorMzU2OTcgYjI0MmI0ZDdlMTc3NDI4YjAzNTBmNDJjMjJjNmYwYzAzMzgzMjcxZCBhc3QtYnJhbmNoCiszNTY5OCBlMTE0MGU2MDFlNzIyODRlN2Q3MWFmZmFjMDhjYzM3OGFiOGI4MzcyIGFzdC1icmFuY2gKKzM1Njk5IDczNDg2ZmY2YjU1MmYzODg3ZDg4ODg2NjdlYTc3OTRhYzEyMGYzNzIgbGVnYWN5LXRydW5rCiszNTcwMCA5ZGY1MTg1ZmM1Y2FiZTFhNzc0YzlmMDJlOTA4YmU1NGQxN2NlODZmIHJlbGVhc2UyMy1tYWludAorMzU3MDEgYTU4NmY3NTJiMmJkY2NlZjVmMmQxMDU0ZTA3OTFmMzEyY2YxZjAyNCByZWxlYXNlMjMtbWFpbnQKKzM1NzAyIDcwMzg5NzdjZWE4ZGU2MTMyMWFiNjliZmJjNDViYzRhZGVkYzZjYmIgbGVnYWN5LXRydW5rCiszNTcwMyAwOGEzOTFmZGU2OGRhZjM3NWM4NmU4ZjNkODc3MTU1NmViMjIyMGQwIHJlbGVhc2UyMy1tYWludAorMzU3MDQgNTZmZWQwOWQwMWYzN2VkNDM3MmVlZDgyYTgxZWM4MmQyZmM0ZjA3ZiByZWxlYXNlMjMtbWFpbnQKKzM1NzA1IDRiYzYyMGY0N2ZiNDJlZWUwZjU5ZGIwNWVjODljODJmMDU5YmU2NTYgbGVnYWN5LXRydW5rCiszNTcwNiA4MTYxOWRjYmZhZTdiNTU2NDY2YmM1MmVhYjhkNjY3NDgyNGQxNDFjIGxlZ2FjeS10cnVuaworMzU3MDcgM2M3OTY0MTNmMDVlNzI5ZGUzNDAzNjRhMDJlZmNjOWYzMzEwODhhYiBsZWdhY3ktdHJ1bmsKKzM1NzA4IDM5YzM2NTI2ZDFiMDgyMjNlNThjZWFjYmU0YjY5YWEyMWRlNzA5MjkgbGVnYWN5LXRydW5rCiszNTcwOSBkMDNiNTRlNjBhNjc2YjFmN2QyZWNkZGNlNDFkMmYyNmE2YWVlNmU4IHJlbGVhc2UyMy1tYWludAorMzU3MTAgNGRiMGM4NGY1YzZhMzU5YWNmOTAyNGI2NzUwODJiZTk3Mzg5M2RkMiBsZWdhY3ktdHJ1bmsKKzM1NzExIDNjNjE4YzY5MzllMzM0Mjc3MmUwYTUzZWE3MWQ0OGQ0MmY4NjMzZDggbGVnYWN5LXRydW5rCiszNTcxMiBmYmNiY2RhMTRiOTJlYzMyMzUxOWVkMzY5M2I1MGZkYjIzNzkzNDM1IGxlZ2FjeS10cnVuaworMzU3MTMgMjJhNTUwMjhhNzhkM2VhODA2NTM5NDM5ZGIyN2UyMzZiMDUxNzBkNSByZWxlYXNlMjMtbWFpbnQKKzM1NzE0IDUxODRkNjljMjRkY2I5YzYyMTA3ZDQ0YWQyY2U0ZGQzNGEyMThiOTYgcmVsZWFzZTIzLW1haW50CiszNTcxNSAwOTgwMGJhMmE2NTM0OGEzM2JjZjEwNzYxMDA3MmE2NDZlYWMzNWY3IHJlbGVhc2UyMy1tYWludAorMzU3MTYgOTM5MTdkZDhhODdjMjEwY2ZjNDlkOWVkODE4MTE5MDliN2Y2NGI1NSBsZWdhY3ktdHJ1bmsKKzM1NzE3IDYwODAyOGYzODhjNWM0OWM3Nzc3OGVjMmFiM2VmZDc3NGE1NDEwODggcmVsZWFzZTIzLW1haW50CiszNTcxOCA4ODZkNjZmNTExMDVjNDczNjlkN2NiODA3MzNjMzkwODA0YjZiZDU4IHJlbGVhc2UyMy1tYWludAorMzU3MTkgZjhjMGFjNWJlZjAyOGNjMTVjZWNhYTUzNWVjM2NkOWY5MTM1NWRlOCBsZWdhY3ktdHJ1bmsKKzM1NzIwIDYzYjY4Y2IyYjQ0MmY0ZTY2NGZmYTU4ZDU5ODY5Nzk0MWFlMjQ4OTMgbGVnYWN5LXRydW5rCiszNTcyMSAxZjI5MzRhMzE4Yjc4MWJhNTlmNDQxOTJjZGRkMjcwMjM1Yzk5MzI1IGxlZ2FjeS10cnVuaworMzU3MjIgMTBiYTI0MTYyMzkxMTBlOGFmN2IwNDU0ZDgwOTBkMzlhZjI5ODliMSBsZWdhY3ktdHJ1bmsKKzM1NzIzIGZkYWJiNjgwOGQ1MmZiZmEyNTRiMGUxODIxZGE2MmFmNzM3OTk5MmIgcmVsZWFzZTIzLW1haW50CiszNTcyNCAwMWVhMDNlN2IyNjVmOGI3OGY1OTc4ZWJjOTBhOGI0Mzk0MDNhMzIyIGxlZ2FjeS10cnVuaworMzU3MjUgMDFlMzE2NDg5ZDY3OTkyMjQzNjYwZDFkODBlN2JjYTNiZjY4YjFlYiByZWxlYXNlMjMtbWFpbnQKKzM1NzI2IDY2MzY4MTE4YTE5YmMwMzU4YjNhOTFmZGQ4ZDI5ODM3YzgzNzdjMDcgYXN0LWJyYW5jaAorMzU3MjcgZjFmZDFhZTQyMTM2YTAyM2U0ZjM0N2VhYmQ1OTM3MGVkYmU4OTI1MCBhc3QtYnJhbmNoCiszNTcyOCBjOTIxNDM4MjY2NWY0Y2Y5YjNiYjdlNmFjZWY1MzNkOGRlMDdiYzY5IGFzdC1icmFuY2gKKzM1NzI5IDA2MDE0ZjcxZjE2MzZhOWNmMDQ1NGU3M2VmYTY0OTA2OTc4MGM3NTYgYXN0LWJyYW5jaAorMzU3MzAgNzY3M2JmZjc0MTIyOGI4MzQ5NWRkNzUxMjUzZmYxNjEwOTdkYWNhYyBhc3QtYnJhbmNoCiszNTczMSA0YzM0YWM5ZGE5M2Q0MjQ2NTk3YmRkMWNlMWJhZjg2OThmNGY5N2RhIGFzdC1icmFuY2gKKzM1NzMyIDdjN2EyOTgxNDU1Y2E4YjNiY2I3NTg4NzIzMGIxNGM3YmIwOTExYTEgYXN0LWJyYW5jaAorMzU3MzMgZmY1YTMxYTcxZDlhNmIwZWNjNTU4MzIwZjczNzRmYmJjNzRkYTM0MyBsZWdhY3ktdHJ1bmsKKzM1NzM0IGZmMjU4YzY3MWQzY2NkNTEyZDFhOTIyOWQyOTkwMjkwNDY3NTFhM2QgYXN0LWJyYW5jaAorMzU3MzUgZGI4YzQ1YjllODE4NmVjMmU1MmUzN2RmZWZmNjdiNmZhNDc0MTk4MiBsZWdhY3ktdHJ1bmsKKzM1NzM2IDlkMTYzM2U2YzQyZWI5ZDM4YWFmNWI5MDExZGZlZWMxZWNiY2M4OWIgbGVnYWN5LXRydW5rCiszNTczNyAwNTk3NDBkNTJhZTVjNGU4ZjNkOWM0ZDJlZTY0NWZhZTA2ZDcyMGM5IGxlZ2FjeS10cnVuaworMzU3MzggMzIwMzU0Yjc2NmU3MmQzMDRkYzMwNjI5ZGEzYmIzMzRiNzA4ODNjZSBsZWdhY3ktdHJ1bmsKKzM1NzM5IDEyNmQ4MTU1NDZkMzM3OWZiMzYyYWNiZTczODI1OWM3NDk5ODdjMTggcmVsZWFzZTIzLW1haW50CiszNTc0MCAyMjhlYTc1NzcwZTNkZTgzMmE0MTdkOGY2MTQ3YzRjZDRkNzBmYjZiIGxlZ2FjeS10cnVuaworMzU3NDEgMzBlYTBiMzUyZmMwMmZkYjJkMzEwODhhYWUwN2VhM2FlMjNiNjc2NSBhc3QtYnJhbmNoCiszNTc0MiAzYjQ0MDMzNjA3NzVmMDQyMjMzMzJlMWNlZjMzMzlmMmU0ZjZmZDU0IGFzdC1icmFuY2gKKzM1NzQzIGFiNDllNmZkNzc0NjUwMGUwYTJhZDk3ZGE0OGI4OGZhMjAzNzQzYWUgYXN0LWJyYW5jaAorMzU3NDQgMjBiNWU5YTZlZjZiMGE1YTdhYmUyZTE3NDJlMTQ0Y2M2NDE4YzE0YSBhc3QtYnJhbmNoCiszNTc0NSAyODIyZWQ5NTYzMDlmZThkOTVkZjA4ZTMzM2I3MTc1N2FiNzM1ZGY4IGFzdC1icmFuY2gKKzM1NzQ2IGFhYjc3NmQ0MWI0ZjUxODRhYzQ1ZGM1YmRjZGViNmE3Njc4Y2VkZjMgYXN0LWJyYW5jaAorMzU3NDcgYjYxZTVmOTNlYmUwYTEzMzQwMDg4ZjFlZDY4MTY0YjliZjdiODYwOCBhc3QtYnJhbmNoCiszNTc0OCBjZTc2YTlkNmU2NTMwOGYwMDRhMmU3ZGMxYzE4ZjUzZGQwNTM0ZDg3IGFzdC1icmFuY2gKKzM1NzQ5IDA2MTEwOGE4OTUxNmYxMWY0NWE1ZDJmYmQ5MjVhMWQ4YmYxZGIzMTQgYXN0LWJyYW5jaAorMzU3NTAgMjQ0OGY2ODRjZTllOWM0ZTliZjZiYTdlMmQzMDQxZmMwNzdlOGIxYSBhc3QtYnJhbmNoCiszNTc1MSA0ZjBhMWU3YWQ2OWNhMTU5YzdjZmUyZmQ4YzM0YTQ1NjNlMGY5NWFhIGxlZ2FjeS10cnVuaworMzU3NTIgOGYxY2U3YjBlNDIzZTMyOTYwOWMwYTNjY2I4NGM4MGU0OGY2NmI2MSByZWxlYXNlMjMtbWFpbnQKKzM1NzUzIDY5YzFhYjZiMjYwMjE0MWIwYTdjYTQ1YTQxMzZlYjFmNDQ4YWY3NzQgYXN0LWJyYW5jaAorMzU3NTQgNTRhZTlkZTM4ZjBjMmRkYzAwMjdkNGE0YTYwNmQ2MzE2MGIzNGY1YiBhc3QtYnJhbmNoCiszNTc1NSAwMjA0NDNhMTBjMjAyNThkMzgwNjFiN2YyNTI3OThkNTczZDQ4NWM3IGFzdC1icmFuY2gKKzM1NzU2IGJiMjU1Zjg1NTk5OWU5ZjYwZTUzZmRhN2VjNDA0NTY4ZWIyYzk1ZWIgYXN0LWJyYW5jaAorMzU3NTcgMTgyMjk1MzgxZjE0N2VmZDgzNTk1MmU2MTU1YjZjNTg0MGY3NmQ1YyBhc3QtYnJhbmNoCiszNTc1OCA1NDY1YTJjYjBhZWE3ZTc3M2E2ZGQ1ODZhNjA4YTc2NzdlNzI2ZTMwIGxlZ2FjeS10cnVuaworMzU3NTkgMGM2Njc2MTI0MzA4OWE0M2I5ODQ1MTI0NjgzNjVkYzhmMTU1Yzk2ZiBhc3QtYnJhbmNoCiszNTc2MCA3NjVmZTE2ZjY2NWI4OGQzMWRkMzQ5ZDM5NGEyZjBhOWUyNzhhODAwIGxlZ2FjeS10cnVuaworMzU3NjEgNGJlOGUwMTBiZGI5ZTljMDJjZTJiNzY1NzcwMjMyYWY3YjU4OTlkOCBhc3QtYnJhbmNoCiszNTc2MiAyMDBiZjc5YzAxNTk2MDlkM2M3NWJhZDU2YTQ5MTVkNzk3ZGJiZmNiIGFzdC1icmFuY2gKKzM1NzYzIDU2ZjliMzFhYzY5ZmE0MGY5MmU1NjNkYzY0NDE5YWQxNmJmMzFhNjggYXN0LWJyYW5jaAorMzU3NjQgMzQwZTQ5ZTAxNTc2NjQ3Yjc5MzlmYjUwOGYzMDU1ODcxZmNhNjYwMiBhc3QtYnJhbmNoCiszNTc2NSAwYWVjYzA3ZTM1ZDlmYzYyNWVhNTg4MDA3MjgwZWY0N2JmYzc1YjdhIGFzdC1icmFuY2gKKzM1NzY3IGY5NTBlZjMwOWQ3NTEyZjVlY2FiNGU4MDk3MWYzOWI4NDM4YzVmOTUgbGVnYWN5LXRydW5rCiszNTc2OCAzODM4Y2RlZTFhMjAxYjNjMmU1OWJmMmFiNmMwODdhMTQxNDc4N2IzIGxlZ2FjeS10cnVuaworMzU3NjkgNjE2N2U3OGExN2E4MjZhODM4ZjU0NGI5ZmNkODk2MWUzMDJhY2I3ZSBsZWdhY3ktdHJ1bmsKKzM1NzcwIDBlOWUwYzUzNDlhMGRlZWIwZTE0YjljZTllYThiYTJhMzk0ZTcyZjMgbGVnYWN5LXRydW5rCiszNTc3MSA5MGUwODk0YWVjNWJlZDM4ZDMzMmMxOGU3NDkzMDIzZjI5ZDQwODVkIHJlbGVhc2UyMy1tYWludAorMzU3NzIgNTgzMTc4NTE4YmQwY2QzMDdlODFhNmRiNjFhZDQzODg2ZDczMTUyNSBsZWdhY3ktdHJ1bmsKKzM1NzczIGNmYWZhZWE5M2Q5MDk1ZGM0YTlmN2E3NWU5NmM0NDVhNzU0YmUxODQgcmVsZWFzZTIzLW1haW50CiszNTc3NCBlYTllZTliNzQ2NzI5Y2I1NDRlYzQ2NDExMzZkYzE0YWM0MzJmMGM0IGxlZ2FjeS10cnVuaworMzU3NzUgZjJjZWExNmExZjM4MmQ0Yjk3MzNkOTBmOTgyMDNkMDFmNDVmOGQxOCBsZWdhY3ktdHJ1bmsKKzM1Nzc2IDQ3ZWQ3YmNkZjA4NjQ2YjRjZmJkOTNkMzIwODdhMmViZjhlYjJjZjYgcmVsZWFzZTIzLW1haW50CiszNTc3NyAzMzg1NzdhZmRhYjZkOGJkMTIyMzg2MDhmNTU3ZDViOTg5OTIwNzNlIGxlZ2FjeS10cnVuaworMzU3NzggMWNhM2E2MmEwMDlhZDRjNWRkM2Q0Y2JlMjY4YmNhMTI1YjkzYjhhZiBsZWdhY3ktdHJ1bmsKKzM1Nzc5IGY5ZmFmNTU3MTcyMDJkMzNjNGVhODI0NTNlOWZhODBiNTZiYTAwM2YgbGVnYWN5LXRydW5rCiszNTc4MCBmYWE3ZWViMTE4Y2Y0N2FkYTVlOGJkOTQyNjA1NmEzMDBhNjgwNjE4IGxlZ2FjeS10cnVuaworMzU3ODEgYTQ4ZTYwOGJhNjA1ZmExYmU3NDQ5Mzg5ZDhiY2VmOWVkZDZjMGIwZSByZWxlYXNlMjMtbWFpbnQKKzM1NzgyIDVjYTEwM2MzN2Q1ZTBiZGQ4MGI2ZDY0YzVjNzQ1MjdhODhkM2MyN2UgcmVsZWFzZTIzLW1haW50CiszNTc4MyA1YWI4MTJjZDBkYjc1NjIyNjU0ODA1ZDcyNjMyNjU3M2ZmOGFkYjk1IGxlZ2FjeS10cnVuaworMzU3ODQgZWYzNGRlYzAwNGNkZGY3OWM3ODI1YWI1MTY3YjQxMDNhMzcwNDFkNiBsZWdhY3ktdHJ1bmsKKzM1Nzg1IDIwNGI3YmNlYWQ0Yzk4ZWZiY2VlOGUxNzY2NjI2ZTNkMTc4MTljODUgbGVnYWN5LXRydW5rCiszNTc4NiAzZDA0NmQwNjNhODRhOWJhMDEzNDE2Njg4OTIzNzMzODljODc3OGM1IGxlZ2FjeS10cnVuaworMzU3ODcgMjI3NmRlODkxZmUyZWY0ZGNmZGFkY2IxNmI2NDM0ZmRjNzk1NzdjYSByZWxlYXNlMjMtbWFpbnQKKzM1Nzg4IDBjNzZhOWU1YzgzODJjM2JkNjNhMmEwM2ZiOWMxNjMzMGQyOWM1MGQgbGVnYWN5LXRydW5rCiszNTc4OSA1YzM1YjNjYTViYTkzZDk2YTdiNmE0ZTM4NTJkZWJiMjI0YjljOTVmIGxlZ2FjeS10cnVuaworMzU3OTAgMGU5ZmRiNzZhYzg1NWY5YjNjYmRhOTA3ZmM1ZDVjZjRhZDEyOTM3ZSBsZWdhY3ktdHJ1bmsKKzM1NzkxIDUxZTFiNmRjZmY2MWU5MjJjNzNhN2I1OWYwOTY1ZDZjODhjYTljZTkgcmVsZWFzZTIzLW1haW50CiszNTc5MiA3YTc0OTlmYmM0NTI5OTY2MTQ0YTUyZWJjNGVhNmMxYjgyMWMzNmRiIHJlbGVhc2UyMy1tYWludAorMzU3OTMgNmMxMmEzYmFkN2Q1MzlhZjk1ZGVjZGFiMjcxN2M5NDhiM2UyMzZkMSBsZWdhY3ktdHJ1bmsKKzM1Nzk0IDYzMGU0ZmJjZGVhMjY1ZTdlODAyZDNkNGMzMzYwNTcwNmM1Njc5YjEgcmVsZWFzZTIzLW1haW50CiszNTc5NSBjNWE1NTI1NzgzNDRmNWNhN2Y0NDlkZWRhNzNjNjUyMzllZWFlMjU5IGxlZ2FjeS10cnVuaworMzU3OTYgOWIyYjdkM2I0MmYzYTYxZGM5MGI2NmRiMWEyZjdiNmQ5YmRlZTU4YyBsZWdhY3ktdHJ1bmsKKzM1Nzk3IDY4N2IwYzgyNTRmYWE0NWQyOWQ2OGYyMWFjMzM4OTVmMTA0MDI4YjcgcmVsZWFzZTIzLW1haW50CiszNTc5OCA2NjY3YTFkOGFmYjEwNDhkMGFlYTQ0Y2QzZDkwZGEwYzY5Yjc4Mjc1IGxlZ2FjeS10cnVuaworMzU3OTkgYTQ2MjY0YjkxYTUxOGY5NTRlZWRjYzFkY2RhMjUxYTE0Y2FhYWQzNyBsZWdhY3ktdHJ1bmsKKzM1ODAwIGI2MWZlODI4YjczODg2ZjI2ZmJmYzdlYzVmYTdlZWQ2OGQzZGJhZTQgcmVsZWFzZTIzLW1haW50CiszNTgwMSA1MWE1ZmI2MDkzNGQ3NTIzNzVjMjdmYmFlMmY5NzA0NzE5NzE1ODY4IGxlZ2FjeS10cnVuaworMzU4MDIgMjIyOTA4ZGZiZjU4YmU5ODAzNzQ1MzBhYWNmZDA1MWZhNjU1ZmFmYiBsZWdhY3ktdHJ1bmsKKzM1ODAzIDg2MTVmMjc4ZGE1ZjM1NjgxYmY2YjJlNmI1YTU5ZjM3MWVkMDkxOTMgbGVnYWN5LXRydW5rCiszNTgwNCA5ZjhiZmQ1NDI1MWY3NDQyODk5YTExMjlhOTA4YWIwNjEwMzg5NzhmIGxlZ2FjeS10cnVuaworMzU4MDUgOGIyYTQyOWFmNDJmZjE2NDE1Y2Y2YTU4YWYzMTc0YzFlNTBlNzcwNyByZWxlYXNlMjMtbWFpbnQKKzM1ODA2IGFiNjgwYzRhY2QzNWFmODEzZDAyY2VjNjU3NDkyNjNiYTZkMjFhYjggcmVsZWFzZTIzLW1haW50CiszNTgwNyA1ZWI3YThlMmYzNDUzOTgxNmFiYTQ2NjA3MTI4ZTM2ZDY2MmU0MGMzIGxlZ2FjeS10cnVuaworMzU4MDggYjlmMDkxOTY1MjZlYWI0MDA0ODA5MGZjODhlM2Y2MDc5ODYwM2I2MSByZWxlYXNlMjMtbWFpbnQKKzM1ODA5IGNiYmFjZGE4NDQ4MGFlMmJkODVkMWM2MTI2YmU3NjNjOWY3MTE4OTkgbGVnYWN5LXRydW5rCiszNTgxMCBhMTQyZTRlOTdmMTMxYTBkOThmNjZmN2I4MTIwMGI0OTY1ZWMwODUyIGxlZ2FjeS10cnVuaworMzU4MTEgZThhMzFhYjdhODc0OGU2MTQ2MGZiYWU3NDYyZWRmYTdkNTJmNzNhMiByZWxlYXNlMjMtbWFpbnQKKzM1ODEyIDRkZWU1ODMxNWNjNDFmYjA0ZDdiNTcxMWU5ZWRmN2JlODk4ZjhjYjkgbGVnYWN5LXRydW5rCiszNTgxMyA2NDZjYjAxNDY5NDJlMWY1N2QwM2FiYTczNmQ1NWMzYmZhNTdhMWY3IHJlbGVhc2UyMy1tYWludAorMzU4MTQgODJiYzY5OTYxMDIyZGM5Y2M5YzJjYmNlZDMzZjhkZjJjYWZmOTVjYiBsZWdhY3ktdHJ1bmsKKzM1ODE1IGY3OTNhMDQ2ZWQ5ODE0MjZlYTI2MzJkNjEwMDc3ODYxMDZiNmZmZWUgbGVnYWN5LXRydW5rCiszNTgxNiBlYmZhNWNkOGNiYTRkMjNlNWNjODQxYjE4Zjk3NzljODRhNjVmNTUzIGxlZ2FjeS10cnVuaworMzU4MTcgMjY4MzlmMzJlNzBkMDcxYmJmZDBiZjViOWMyYjA2YjFlYTMwYzY5ZiByZWxlYXNlMjMtbWFpbnQKKzM1ODE4IDY0MDg0ZjliYWJhMWVjMDQ2Y2Y4Yjk4NjliNDdiOTRkZmFlNzFmZmEgbGVnYWN5LXRydW5rCiszNTgxOSA0ZWI1NzRiMTIyNWZhYWI3ZjQ0ODlhMzdlMTQ0MWIyYjYyODYwYzU5IHJlbGVhc2UyMy1tYWludAorMzU4MjAgMmNjNzE0OTc3NDc5MzQxNmUwN2ZiOWQ4NWJlZWQ0YzYxODBhMjA3OCBsZWdhY3ktdHJ1bmsKKzM1ODIxIDk4NGIyODk5OTJjMDY5M2MzNWQ3YzFiNGYyOTBmNTQ4MWUyM2MwZGYgcmVsZWFzZTIzLW1haW50CiszNTgyMiBjMjQ5MzA1YmZjYWM4YTU0ZWMzNjdlNzM0YzA4Yzk1YjY5Y2NmMDUxIGxlZ2FjeS10cnVuaworMzU4MjMgZTRmNTJlMmUzODAwMGI0NjQ1YzUxNzAyN2U2NDBkN2I5MjAwODU4YiBsZWdhY3ktdHJ1bmsKKzM1ODI0IGVjMDlhNzE4NDljYzYzYWRiMjZhNmZiNjE1NmUwN2RkMzc0MGFkMzUgcmVsZWFzZTIzLW1haW50CiszNTgyNSBlMmEwZWY4N2Q0ZDQwZGM0NGRkZDQ4ZmM0NmM1NmVkMGIyMTJlMTRiIGxlZ2FjeS10cnVuaworMzU4MjYgMTRmN2Y5Yjg5ZGE5YzVkZDNmZWZjMDQwNjQ1NzhmN2I0YjYyMTZiNyByZWxlYXNlMjMtbWFpbnQKKzM1ODI3IDZlMDc4Zjc2MTNhZDdhYzExYzI0ZjY4NjU4ODk4ZWQ3ZTBjMDkxZjYgbGVnYWN5LXRydW5rCiszNTgyOCA0MmUyYjVhZmE3MTU3MzUzY2Q3MjZlZThiNGNmNWZmMzA2NTQ2ODFlIGxlZ2FjeS10cnVuaworMzU4MjkgNTQ0ZjIxNzIzNjNkMjFmN2U0ODYyOWI2ZjQ4ZGJlOTkxYTY3NDQ2NyBsZWdhY3ktdHJ1bmsKKzM1ODMwIDUwNzA4YjhmMGQyODc4MmY3MTY5ZDEwMTI5MjRiODQxNTg2MThlMTYgcmVsZWFzZTIzLW1haW50CiszNTgzMSBhMjliYWMwYWU5MDViOTRhYmZhYmEwMWQwMTQwNDdhODFjNTQ0Mjk2IHJlbGVhc2UyMy1tYWludAorMzU4MzIgMjZlMDkwY2NiYjY0YzM3ZDBiNzE5YmMyMjQ1NDlmOGMzZTc0YzhhMyByZWxlYXNlMjMtbWFpbnQKKzM1ODMzIDU4MmRjYTAyZTYwZjY1N2E5MDUxODYzOGI5ZWRlZjcwZjEyZWI1NmYgbGVnYWN5LXRydW5rCiszNTgzNCAyZDdiMGNhMGMyNmM5NjAzNjYzNzkxZjEyOGUzOTE2YjQxMjFmN2NlIGxlZ2FjeS10cnVuaworMzU4MzUgZTkwMjY5ZmMxOTM2NWIxMmFjNzVkZmNhN2NkMDRhZDAzNjM4NGYzZSBsZWdhY3ktdHJ1bmsKKzM1ODM2IDM3MTIxYzhiNjkxZGEwOGEwYmZlYTVlMzU2M2I5NGQ2MTU0YTFlNmEgbGVnYWN5LXRydW5rCiszNTgzNyA5OGE4MDc4ODgzNWMwNjYwZTZiYzRlODU1MDc3ZTZiOWIxNDgxYjRjIGxlZ2FjeS10cnVuaworMzU4MzggNGM4MjU1OGIxNWZiM2I2NDA5ZjMxNjI2N2Y4ZjIzNzI0MjIyMTQ1ZSBsZWdhY3ktdHJ1bmsKKzM1ODM5IGExYjM3NGZmMDE4NDE2NGE0OTg1NTUxMDk0YzUwNzk4NmI1YjVhMjUgbGVnYWN5LXRydW5rCiszNTg0MCBjMTNiYjdmNGJjZDE4OGE3MGUzYmZmZjZhZDk5ZmM4YWQ5MWU1YzY2IGxlZ2FjeS10cnVuaworMzU4NDEgNjM1ZWYxMTA2NThlZjhkM2M4OTc1MGQ1ODc2NGI2ZjA1NGFmNDBiMyBsZWdhY3ktdHJ1bmsKKzM1ODQyIGRiNmE2ZDM5MWE5OThmNTJlMzI1YWE4ZTVhNzY0ZDk2NjUwZjQxZWEgbGVnYWN5LXRydW5rCiszNTg0MyBiNTU5NGQ3Mjc5ZGY2OWUzNWJkMWE3ZTQ0NTZmYjViY2U5Y2MzN2U2IGxlZ2FjeS10cnVuaworMzU4NDQgZjQzNzZmNzY3NGEyMjJlODZmZTU5NzUyM2M5NWFiY2NiYmM0ZWVkMyBsZWdhY3ktdHJ1bmsKKzM1ODQ1IGI5YzY1OGFjMGUyMGNkNmI2YmY1NGQwN2ZiY2ZkMGQxOTcxZDgzY2YgbGVnYWN5LXRydW5rCiszNTg0NiA2OTZkOTJlZmYwMjJmZTRmODU5OGRmZjVhMGExYjJmOTdhODY2N2FiIGxlZ2FjeS10cnVuaworMzU4NDcgMzNmNmExNWRiZjZjZjAxZDhhMzc4ODY1MzNlZWEyMmRlMzMxYzU3ZiByZWxlYXNlMjMtbWFpbnQKKzM1ODQ4IDAwZWVhMjgxMzVmOGZiNzFiMWE4MDBmNjlhM2UwYmM4NTM2ZDExMWMgcmVsZWFzZTIzLW1haW50CiszNTg0OSAzODMxMDk0MzNhOTcyODRmNzA0MTA2NGMzN2MzMzZiYWI4ZjJhMmIwIHJlbGVhc2UyMy1tYWludAorMzU4NTAgYmEzMTIxNmUzN2M4ZjIxYTU3MmM2YmJjMGUyOWViYzhiYTNkNGFlNiBsZWdhY3ktdHJ1bmsKKzM1ODUxIDBiMzNlMzczN2I0Y2JkN2MzNzY3ZTlkN2M0ZDNlN2I1ODBkODQwN2YgbGVnYWN5LXRydW5rCiszNTg1MiBkY2JlMDQyYjg5MmRmNWJiYTlmNTUzYjJhNzc2NmM1NDg1YTY2NjMwIHJlbGVhc2UyMy1tYWludAorMzU4NTMgMjJiMDgwMmFiYTc0MzdmMjZlYWQ2MTA3ZGMwNTVkZGZlODA4NjNmMiBsZWdhY3ktdHJ1bmsKKzM1ODU0IDkxZjc2Y2Y0MDczYTJhZTk0ZTk1OGE1YmNjOGU5OWMyYWFhMDBiMzcgbGVnYWN5LXRydW5rCiszNTg1NSAzNTg2YTc4MDFiZGFmMzZjNDg1YjY0NWNkYjY2OGVmMDcyOGRmYjY4IGxlZ2FjeS10cnVuaworMzU4NTYgYzM2ZWEwNzk0OTIwMWU3NTE3MDhiYWM0MGE4N2YwOWUzMjE5MDc0MCBsZWdhY3ktdHJ1bmsKKzM1ODU3IGQ4MDNhZmNlOGFjNGU3ZjhmM2EyYWNlMWViOTNmNjljMjUzMjhjNDUgcmVsZWFzZTIzLW1haW50CiszNTg1OCAxMzZlZmJiMTExN2RlYmIzYTA0MzgzYjk5ODFlODc4NjY1OWIyOTNjIGxlZ2FjeS10cnVuaworMzU4NTkgOTU1ZTIwNmU1M2RjMzVlMDQ5YzVhZDUwNDUxM2E3NTQ3ZDk2N2I2OSBsZWdhY3ktdHJ1bmsKKzM1ODYwIDZkYjQ4YzViZGIyN2FiZWViNmMxZjI0ZDkzMWU2NjgzMjMyN2NhNzAgcmVsZWFzZTIzLW1haW50CiszNTg2MSA1MGQ4YTI3MjE0ZTZmODUzOGExZGIyZjMxNDlmMTVkNmUxNmE2Njg4IGxlZ2FjeS10cnVuaworMzU4NjIgNjZlZGUwMzg3ZjM2NzQyODRhMzZjNGEwYzRiZmFiYmQ2MDc5MTQzZiByZWxlYXNlMjMtbWFpbnQKKzM1ODYzIDlmNmQ0NWYzYzAyM2Q1NzE5ZmM2NDQzZjExMDcwYWQ5ZGRhYWM1ZjIgbGVnYWN5LXRydW5rCiszNTg2NCBjMzhhMzlkMzg0ODliMTI2NGIyMmE4NWFiN2YwNjdiYWE4MmZkNTkxIGxlZ2FjeS10cnVuaworMzU4NjUgNWEyMjQ2NWZkYTI0ZjlkNmY5YWJkYjAxODQyMDFjYzVlYjY5NDUxMSByZWxlYXNlMjMtbWFpbnQKKzM1ODY2IGU4NTM1NWNmMTc1YWFlMDg1MWQxYjBhZjM4M2ZiN2NlNjAwNTZmM2EgbGVnYWN5LXRydW5rCiszNTg2NyBkMDliYWZiOTc2OWY3ZTVjNzgzMGYxM2I4YzE0ZDAxYThiMjA2NjUxIHJlbGVhc2UyMy1tYWludAorMzU4NjggOGZlMWEyNjYyYWFhNTM4ODAwZmNjODk3MDQ1NjRhZjFiMzU4MWZlYiByZWxlYXNlMjMtbWFpbnQKKzM1ODY5IGM3OWNjMDQwM2FjZmVmMzlkNGIwNmRmODE5NjhjYWZkZjRiZDQ3YjcgbGVnYWN5LXRydW5rCiszNTg3MCBjNjgwMDgwZjkwMGMxNmM2MDIwODM2YjNhZWU5ZDBmNWJjMjllMjM2IGxlZ2FjeS10cnVuaworMzU4NzEgZTliY2U4MzdjMWMzOGM5ZGRiNWU2OTBiYjBkNTVkZGU2ZWYxMTA3OCByZWxlYXNlMjMtbWFpbnQKKzM1ODcyIDg2MDFjNzg1YzY4M2RlYTIyYzU4Y2M3ODQ4ZDM4N2M0MmM1M2I4MDIgcmVsZWFzZTIzLW1haW50CiszNTg3MyBjZjM5MmI5MzZhMmU0OTQyMjIwYWU3ZGJjZWQyMWNjZDAwMTgyOWRkIGxlZ2FjeS10cnVuaworMzU4NzQgMTdiZjk1ZWQ3NTYyYzk4MTA2YTYwMWNlMDkzYjNhYTIyODVlZDhiOSByZWxlYXNlMjMtbWFpbnQKKzM1ODc1IDE1MzhhOGNmYjBkZGE1NGE0MjRmMjMxZTRjMWQ1MTQ0Yzk0MTM2NWIgbGVnYWN5LXRydW5rCiszNTg3NiA1M2FiZDlhZDE5MDk4ZjkzZTU3NzUzMGM1OGQxODE2NzhjYzQxZTZiIHJlbGVhc2UyMy1tYWludAorMzU4NzcgZjYzZGQyOTlhNjBiMjczNTlhYTljNzMzNjFlMjBmYWZjOGFlOWQxOSByZWxlYXNlMjMtbWFpbnQKKzM1ODc4IDdhZmViODM2ZjY2YzU2ZmU3NmYwOTFhZTkyM2NiYzFmOTQ4ZGY5ZmYgbGVnYWN5LXRydW5rCiszNTg3OSBhMzhjZDYzZDE3YTc0ZTRlYjM1YTMzNzdkN2MxODA5ZDNmMjgxMzVlIHJlbGVhc2UyMy1tYWludAorMzU4ODAgNjc1OGI2MzBhY2I3ZWY4NjE0NDhlMGIxNTFjZTQ2ZmIzMDEzMzViNiBsZWdhY3ktdHJ1bmsKKzM1ODgxIDY5NDMzZmMxYzgxNmNiMjJhMTZmZTk2MzFjN2I1MWM5MWNmNDhkZWEgbGVnYWN5LXRydW5rCiszNTg4MiA0NjlkY2IwYWQ3MzhiZDRkMDIwODliYjc4YzU0NjA2ZjRkZTdmMThmIGxlZ2FjeS10cnVuaworMzU4ODMgNjFiMjZiOTVlYjMzZWNjNDc0OTI5MDYzY2NmMWUyODdkNjFjZjY2ZiBsZWdhY3ktdHJ1bmsKKzM1ODg0IDEyMWFhYTRiYTkyMzU4ZmVjMTkwNWUxZTRkZmIxZmRkMmRkMzdlZWUgbGVnYWN5LXRydW5rCiszNTg4NSAxYzIzODFkNzk3YzBmNzU4ZGFjODVmMWJjOThlN2EyNGY4NTRmZDYxIGxlZ2FjeS10cnVuaworMzU4ODYgMjdkYTg3YzkzMThmNTMzNGQyZjU4MzkzM2Q3Y2I0OTZlYmFmNGZkMSBsZWdhY3ktdHJ1bmsKKzM1ODg3IDAyZjc2OWQ3ZTRhOGUxNzRkNTc4NGVmN2UwOWFiNmYxOGUxYjJkZjMgbGVnYWN5LXRydW5rCiszNTg4OCAyNGM0NjAwMTQxNmUxYTA1MjQ3OGE5ZWQyYjA0OWExMDVkZTQwOGQ5IHJlbGVhc2UyMy1tYWludAorMzU4ODkgYjMxOWRiMzg2OWQ4MjJhNjIyYzJkOWQ0YjgxYWY3ZjY5NWU5ZjM5ZiBsZWdhY3ktdHJ1bmsKKzM1ODkwIDYzMGEwOTE1YTMxMDFiZWM3YTA4NTQ0MWMxYTJkNmJlM2UyY2ExY2EgcmVsZWFzZTIzLW1haW50CiszNTg5MSBjNzAxMDc2MGU4YWQxOWFiZmVkMGNlYzA2ZDU3MjA5NWIxYzQ1Y2ZiIGxlZ2FjeS10cnVuaworMzU4OTIgYWIwYzhkZGIyYzkyNTI4ZjQ0MWEwOWUyM2JhNjA3ZjBjN2ZkZThiYiBsZWdhY3ktdHJ1bmsKKzM1ODkzIGQ2NTg5Yzg4ZDIzYjdhNWNjNjg0M2VlNDc1MGUyNTMxM2ZmNzYyYjcgbGVnYWN5LXRydW5rCiszNTg5NCAzMThiZjY5OGU0MjViNWRkZDc5MDM1ZTQ5ODE3ZjIwYTc0ZWM2ZjY3IHJlbGVhc2UyMy1tYWludAorMzU4OTUgNjA2YWFlOTVmMTI4OTIyZjhlZjE4NWY1YTJhZTQwYzJhOWQ5MGJkZSByZWxlYXNlMjMtbWFpbnQKKzM1ODk2IDY1N2ZiMmE1MGU4ZWQzMzcwNGVmMmQ2ZTI3NGZhYjYyOTFkMGEyM2QgbGVnYWN5LXRydW5rCiszNTg5NyA1MmUxNDBjYTE0NmM1ZWNlNTI3YjUyMTk3MzliZjliMzg0YmNjODA0IHJlbGVhc2UyMy1tYWludAorMzU4OTggNDViYTJjNjljMzFmZGRiNzJjYWNiMDE5YjA2NmNmYmU5MjkwN2VhNyByZWxlYXNlMjMtbWFpbnQKKzM1ODk5IDVlMTdkMDUzM2FkMzY0MTk3ZTczNGIyNGJkMzhiOGE1ZDhiZGRhNjYgcmVsZWFzZTIzLW1haW50CiszNTkwMCAwMmY4OWQxMmYwMzZmNmE4MzIxZGQyYWZmN2JlMWY3OGE5M2RjZTYxIHJlbGVhc2UyMy1tYWludAorMzU5MDEgMjA2NTNjOTAzZDFjYWZkYTJkMDEyYTc1MmUyZjMyODVlMjY3NjA0YiByZWxlYXNlMjMtbWFpbnQKKzM1OTAyIGY3OGQ5MzhkN2JiMDgwNGE3NmI4YTA0YjZhOTZmNmQ5ZjkxNjdjNmQgbGVnYWN5LXRydW5rCiszNTkwMyAyNDU4MzVlZDhkZThkZjM3NzM4M2QxYjg2NWQ5YjNhOTNhNWI1N2Y2IGxlZ2FjeS10cnVuaworMzU5MDQgN2FmYjEzYzJkNTI2ZjQ4MzczZWRiYjkzNjcxOGIxYjM0MTMzOGNlNSBsZWdhY3ktdHJ1bmsKKzM1OTA1IDA1OTMxNThkMTRmMmQ1ZDEyNTNiYzhiZGYwNjFmMmVmNjU4Y2VkYTEgcmVsZWFzZTIzLW1haW50CiszNTkwNiBhY2UzZjEzYzE4MzZmNzkwYmE2ZjUyYTY3NzIxY2Y5MzJlMDk5NWI5IHJlbGVhc2UyMy1tYWludAorMzU5MDggNTJmZTkzYjY1NmNmNTkzZDQ5OTY2MzA2ZTJmNjY1NzUwYzg0N2I2MiBsZWdhY3ktdHJ1bmsKKzM1OTA5IGE0YjUyNmI1MGMxMjIwZTkxZjg4NDQxOGY0NTIwMWM5ZDU0OWVkYjQgcmVsZWFzZTIzLW1haW50CiszNTkwOSAzNjM5ODYxZDAyNjQ2YWYxZGEzMTIzYzI1NTYwYzRkYjNkN2VkYmNlIHJlbGVhc2UyMy1tYWludAorMzU5MTEgZWU3ZmNkZTU2MzZlYTE3MGY4MDgzNDI0NDlhYWI3YjUwNjNjZWFhMSByZWxlYXNlMjMtbWFpbnQKKzM1OTEyIDlmZTQ1Nzk3YzA5N2Y0Mzg4MDYwZmFjMWMzYjc5ZjA0ZmM5ZjlkMDYgbGVnYWN5LXRydW5rCiszNTkxMyAyODJkYmQ5YjFlZDZiN2E2OTI1MTYzOTVlYWY3ZGJlMmYwZjcwZjE4IHJlbGVhc2UyMy1tYWludAorMzU5MTQgNjc3MjM5MTA4M2M5Yjc1MWU0M2NkNDU0NGJkN2Q4Y2ViZDZlNDhiZiBsZWdhY3ktdHJ1bmsKKzM1OTE1IGQ2ZGVhZThiZjc5YmIwNTJhYmRiM2FhMTMwODMzMjIxM2JmMjM5NTYgbGVnYWN5LXRydW5rCiszNTkxNiAwMDk0OWJjNjdlNDliZGU4ZmJjMWVhOWY2NjdlNDM1MjgwZmQyNmQ1IGxlZ2FjeS10cnVuaworMzU5MTcgOGJkMzJjNTE1NDVlM2RmODE0YjE0MzVjZWJmZjlmZGE1M2RkYjU3MCBsZWdhY3ktdHJ1bmsKKzM1OTE4IDNlZGY4ZGI2ZjhiZmQ5NTk3ZmVkMTAyOTAwOTUwOWU4M2IxZGFiNjUgbGVnYWN5LXRydW5rCiszNTkxOSA5ZDU4NDdiOGYzMDExYjZmYjEyZTI1MTJjZDY3MjYzMzliMThlMDZjIGxlZ2FjeS10cnVuaworMzU5MjAgZDNjYTZiZGNiZjNjNDYzNzY3M2U5ODc0OGZhYzQ0MGI5ZGFmZmJlOCByZWxlYXNlMjMtbWFpbnQKKzM1OTIxIDE2Mzg2Y2JjYWI5OWMxYWMxN2JmYjU2OGJiOTdhODBhNmQ3OGFiNTMgcmVsZWFzZTIzLW1haW50CiszNTkyMiAyZDM0NTg1YzNiOTk0N2U2NDhkZWEzODExOGEzMTc4ODEyOTIwNjc5IHJlbGVhc2UyMy1tYWludAorMzU5MjMgMzc1MzhhMzZiNmUyYjJhYzgwY2UwZTQwMzNkOWU3NzZiNmMzZmNmMyByZWxlYXNlMjMtbWFpbnQKKzM1OTI1IGI1MjU1NTUyYWE2ZGE0OWZiNjNmODNjYWZlNDQ3NmFkM2UxNGEzNzMgbGVnYWN5LXRydW5rCiszNTkyNiA5NmI2MjY5OWIyMThmOWRmOWRkZTAwNjNlODgxMjgwOGExODg3ODYxIGxlZ2FjeS10cnVuaworMzU5MjcgNjY3MmY3MzA5M2RhMzMzYzg2YzFmNGEwZmE5ZWUyNmI5YmFlODU1MCByZWxlYXNlMjMtbWFpbnQKKzM1OTI4IDdlM2EyYzI3NGIzNjgzZmYyNjk5NjBkNmIzODczYTUwYzg0MDEzMjUgbGVnYWN5LXRydW5rCiszNTkyOSA0YTdmN2U4MDE2ZmMyNmI1ZDU4NDM1ZDM2YmY3YjIwMzkwYjU4NTNmIHJlbGVhc2UyMy1tYWludAorMzU5MzAgOTRiNDg0NWU0ZGE4YzQ5NjRlNmEyNDZjYTVkODc5NDUwY2U4MTJiZSBsZWdhY3ktdHJ1bmsKKzM1OTMxIDMwMGQ1ZDQ2MjM4NzIxNWUyMDI5ZTdmYTI3ZDY5Yzg0YjVkMTI4MzUgbGVnYWN5LXRydW5rCiszNTkzMiAzYWUwMWExMTA4MDEyMmZhNDdjNTVjZTE2MzJiOTBmNGEwMjM5YTAzIHJlbGVhc2UyMy1tYWludAorMzU5MzMgZmE3NTNjMTZjNjMzM2JmM2Y5OTJlNDNmYzJlZTVhNzUzMDM1YTFhNiBsZWdhY3ktdHJ1bmsKKzM1OTM0IDFkMTM1NzQ5MDZlZmNjNzE5YzAwMWFhYmEzNGI1OWRhY2ExODYzNzAgbGVnYWN5LXRydW5rCiszNTkzNSA3MDAyM2FmMjA4NWFiNTBlYzMyMzljODRmZjk2NTI5Y2Y1OGZkZGFmIGxlZ2FjeS10cnVuaworMzU5MzYgODRkZmE5YTY3ZGExNDYxODMyMzFhMDk3MDcwNzIwZGI0ZWFjOGJiYiBsZWdhY3ktdHJ1bmsKKzM1OTM3IGI2ZTRiZjMzNmRiOGEyNDc3MTU0YTcwZDk0Nzg5MWVlOGQyODcwYzkgbGVnYWN5LXRydW5rCiszNTkzOCAyOWE1OWY2NjJkZDEwNDkxMmVlZTNlMmE0M2VjMDVjMzJmMDM1OTU3IGxlZ2FjeS10cnVuaworMzU5MzkgMGRhNDRlYTA5OWY1NjhlMWVlNDE4Y2Q1MmJmOTIyMjdlY2IzNDBhYyBsZWdhY3ktdHJ1bmsKKzM1OTQwIGRkMWU1NWRlYWY1MmY4ZGIzYjliMzM0M2Y5MmRkMDBkM2YzZDQxMTEgbGVnYWN5LXRydW5rCiszNTk0MSBjMjVhOGMwNGRlM2U2MTUwOTQ2MGYwYzE4ZWQ1ZjkzZDQzMTZmNTRiIHJlbGVhc2UyMy1tYWludAorMzU5NDIgMzAyZDM5OWNmZDM3ZWViMWI5N2RiYmM4MTllNjYxZDMzMTc4MzJjMSBsZWdhY3ktdHJ1bmsKKzM1OTQzIDk1NTc3YjYzNWJiNDE5MjgyMmUzNDg5NTY5N2I5OTc1MmIxYTQ5YTYgcmVsZWFzZTIzLW1haW50CiszNTk0NCA1ZjRmMmY1MzZmOTYxYWIyMDBkZmU3MzJlNGQyOGU4YzQyMGQxYzgwIGxlZ2FjeS10cnVuaworMzU5NDUgZDFhOTg3NGMwOWI2OTRkYWMwYmM4N2ZiMGFiMDY1ZTFmNjkyNjZhZiByZWxlYXNlMjMtbWFpbnQKKzM1OTQ2IGI5ZWRkMzQxOGEzMWQ5MTY0OGQzZWFmYTRlN2NhZjQ2ZjJjMmUxNGYgbGVnYWN5LXRydW5rCiszNTk0NyBiMTY2NGE4MDM0OGFkYWY4YWQxYjBlZjAwYWNlN2VhMThhMDk2ZWI2IGxlZ2FjeS10cnVuaworMzU5NDggYmRhMDY2Yzk2ZTRmMWEyMzhkM2IxZmJkZmViY2EwNjE3M2QzNTI4YSBsZWdhY3ktdHJ1bmsKKzM1OTQ5IGI1ZTQwZjVkMDAwYjZhNzMwYjBkMTA1ZjBlZDQ3NDA1MjE0OTk1ZmEgbGVnYWN5LXRydW5rCiszNTk1MCBhZmY2OWY4MGY5OTgyNTQ5MzRmZTk1MGJkZDliNjVjZDcxYTgzMjJjIGxlZ2FjeS10cnVuaworMzU5NTEgYjVhMWUzNjczZTViZTE1OTE0NmM1MTUwZTkzZDRmY2EzNGRhNzVkMCBsZWdhY3ktdHJ1bmsKKzM1OTUyIDllNGQxNDViYjVjYzQ2NDE0NGY2OTQ1ZDUxMzVlMDExMTFlZDUyYmEgbGVnYWN5LXRydW5rCiszNTk1MyAyNzdkNDgzZjU5Njg5NjJkYjFkY2JhNmFkYTg0ZGVhYTkyYjk3YjQ5IGxlZ2FjeS10cnVuaworMzU5NTQgYjU4ZDMwZjExNmUyYTgyNGNlMzc2NzA0YWE3MzM2NDMzMjM3MTcyMiBsZWdhY3ktdHJ1bmsKKzM1OTU1IDMxYmRiZWM4ZjI4MmMwNmIxZjJiM2Q5YmJlOGQxNDg1N2ZkNmIzZTEgbGVnYWN5LXRydW5rCiszNTk1NiA0ZTViOTc4ZTZiNzgwMzZkMTFkNjE3MWZkNjVjYTYyM2FhM2U1ZDlhIGxlZ2FjeS10cnVuaworMzU5NTcgYzFjZmM1ZTQ4MzRkMTkzZTc1YTI1MGNiMmRhZTlmZmU2NDQ5Y2ZjZiBsZWdhY3ktdHJ1bmsKKzM1OTU4IGUwODAzNDA3ZTM3NzRlNzNjMTU2YmU5OTU5NGNiNzM2NTczNWQ0MWIgbGVnYWN5LXRydW5rCiszNTk1OSBjMzk1MjdlMjgwMTBmYzFlZjcxYjg3MTJmZmZmMTVlNzM1N2MwNGYyIGxlZ2FjeS10cnVuaworMzU5NjAgYjA1NmJiYjRlZGY5OTRkYjA3YjM2NjQ2YThmNmJlMzQ5ZWNlMjVkOCBsZWdhY3ktdHJ1bmsKKzM1OTYxIDg5OWExZjg4Y2M1ZjI0MmU4Y2M0YzgwOWU0NGYxYTM5NzM5MWY1MWMgbGVnYWN5LXRydW5rCiszNTk2MiAzMDRhMzdjMmNiNDI1N2I2ZWQzZTE3YmJkOTA5ZmQzMjcxMGU4MWJhIGxlZ2FjeS10cnVuaworMzU5NjMgYWEyMzMwNmEzZjI2OTk2YTFlYTdjMTkzOWU5YWU1ZjAzYTBlMjQ5OSByZWxlYXNlMjMtbWFpbnQKKzM1OTY0IGNlM2MyNzc3YjIyMmZmNTlhYjdjMTAwZDgwNjYxMTE2YTI1OTk4ZDAgcmVsZWFzZTIzLW1haW50CiszNTk2NSAzN2NhYzA2OGYwM2ZkNDZlMDFkZTlmODZhNzhmMDVmZDQzMDE5ZTg2IHJlbGVhc2UyMy1tYWludAorMzU5NjYgNTlhYTUzNDU4YTkzYjYyNGIwZGQ2YzU0YzYxZjk4MmIwY2Y5YjBjYiByZWxlYXNlMjMtbWFpbnQKKzM1OTY3IGExMDRhYTU0OWEwMjJhMDZlMjM5YjIxODdmZWRkNzBkODc4YTcxYzMgcmVsZWFzZTIzLW1haW50CiszNTk2OCA1Y2IyNGRiOGZjOTViMzU5YzYyMjVhY2U5MWIwYzI2MmNkMzc0MzRmIGxlZ2FjeS10cnVuaworMzU5NjkgYmFlZGY1ZmZiMjZiNGQyYjUwNjM1MWYyNzBlZjIyMDgxNWE5N2IyOSBsZWdhY3ktdHJ1bmsKKzM1OTcwIDA5MmFjMTNhNGM0MGEyZmEyZDExMjUwNzE1ODg1YzI2MDkxM2FiYjggbGVnYWN5LXRydW5rCiszNTk3MSA2NWY5YWQ5YmM4MjlkYzhiNThlZmViODU1ZWE1NDc5Njk1ZTlmMjhiIGxlZ2FjeS10cnVuaworMzU5NzIgMGFmYTgxZGI0Y2I3ZDI0ZmYyZDk5YWY5M2VkNTc5Mjc1YThmOTBiMSByZWxlYXNlMjMtbWFpbnQKKzM1OTczIDI2Njg4NGIwNDhiZDEyN2NkMzk0MGEwYTlmZjhkZWY4M2M1MTMxMmEgcmVsZWFzZTIzLW1haW50CiszNTk3MyBhNzRmOTA4MWM2OTcwODc4Y2FiZTE1MWY5Njk2MTc1ODc5MTU0MDBjIHJlbGVhc2UyMy1tYWludAorMzU5NzUgODUzNjU5OGNmMDRkNjM2OWQzNWQxZTZjZDRkMmMxZTAyODAxZWNlYiBsZWdhY3ktdHJ1bmsKKzM1OTc2IGVmYjg0ZWQ3Mzc3ZGRkNmMzOTVkNGYwYzAxNzVmNzM1MzVjNzRhYjMgbGVnYWN5LXRydW5rCiszNTk3NyA1NmE0ZWMwNjY2MjFkYTM5MDQwYzI3NzcwZWMwMTc5NWYxOGNmYTE3IGxlZ2FjeS10cnVuaworMzU5NzggMjg2MmJmOWVmOTEzZWYwNWIzOTIzOThiMjc3ZGI1NjFlYTQ2NDU1OCBsZWdhY3ktdHJ1bmsKKzM1OTc5IDY3OWU1YzhlZmZhZTIxMTJjYThhNDgzNzYwODdiZTNlYjFjNmVhOWMgbGVnYWN5LXRydW5rCiszNTk4MCAyYzE2OWNhNWZhNjliODQ5YWQzZGZlNDUxMWIxNmZkMTU3NGE4NWZhIGxlZ2FjeS10cnVuaworMzU5ODEgYWVjOWM5OGE0N2QyZTk1MzY2MjRmODdlMmQ4YmUxNzU0YmY0MDYwZSBsZWdhY3ktdHJ1bmsKKzM1OTgyIGM2NTg1NWM1ZDU2YjFkMTQ3MWI2ZmRjZGYyOWY5NTQ1OGYxZmQyMjIgbGVnYWN5LXRydW5rCiszNTk4MyBlNTMxNjIyNTJmYmU1Mzc4YTUwZTZlZWE1YTcyODc2NDQ3NDhjYTJlIGxlZ2FjeS10cnVuaworMzU5ODQgZmFkNTJmZmQ4ODkyNDNiYTFkMGM1YTFkYTM3NDY5Y2UxY2ZlMGQzMiBsZWdhY3ktdHJ1bmsKKzM1OTg1IDE4ZDZhOGY5OTgyMzg2MTRhZThmNTg2ZmYwYTI2MTJjYzUwZmM0N2UgbGVnYWN5LXRydW5rCiszNTk4NiA0NDgyOGNjMTM2ZTBjMGJkNWRmMmU1NGNmZTI1MTA3ZjAyMWU5MTkxIGxlZ2FjeS10cnVuaworMzU5ODcgZjlkNTRlOWIzMGJjODE5ZjY1MzFlZTFkMTE3YjgzODFkNWM1MzI4ZCBsZWdhY3ktdHJ1bmsKKzM1OTg4IGQwODdhOTVlODAzMjMxOTAyYjI4YzEwZTBlMjBiNGEyZTczZGRiZjUgcmVsZWFzZTIzLW1haW50CiszNTk4OSA2MGVmMWRiMTBjZWZiYjA4MjExNjY0YjgwYzI5NGQyNzUwNjk1NjY2IGxlZ2FjeS10cnVuaworMzU5OTAgZjhmZmEzZTZjNGYyZGQ4ZDAwNzQzNzRlYTMxYTU1OGY1ZDFjOWQ1ZSBsZWdhY3ktdHJ1bmsKKzM1OTkxIGFjYTQ0NWE2YmViNzkxYTdhNTMyZmE2YTZmMzMwNzRjOTFkNDZmOTMgbGVnYWN5LXRydW5rCiszNTk5MiA5N2I5MDhhOTk3MWE2NGYwZDFjYjEzZDFlZWVmNzBkMTg4OTVjMjM5IGxlZ2FjeS10cnVuaworMzU5OTMgNzQ3YjJkYzgyNDRmZWEzMWRiMzkxNzk3ZDY5YTY2YTE4ODZkYzk2OSBsZWdhY3ktdHJ1bmsKKzM1OTk0IGM3OWJlZmIzYzMxNGQ1ZjVhZTFjMjdkYTYzMjgxMzhhNjI1MmQ2ZTIgcmVsZWFzZTIzLW1haW50CiszNTk5NSBlMmI4MWYyYzhhNzBkYTI1ZTc5YTIzMDEzNDkzOGYwNDgwN2I0ODU2IHJlbGVhc2UyMy1tYWludAorMzU5OTYgOGVlNWE1NmI4MDMxMmJjY2EyZDViZjFiMzQ0YTcyNTQyZmQ2YmU1OSBsZWdhY3ktdHJ1bmsKKzM1OTk3IGViYTZiYWVlYTRlYWFmODliOThhODJlMTcwNGI3OTE5NDUyMWZkMzQgbGVnYWN5LXRydW5rCiszNTk5OCBkMzYxYzEzNWZhNzRlOGQ4ZmY1MzBkNWJhZjQ4MGI2NDk5ODBiZDI1IGxlZ2FjeS10cnVuaworMzU5OTkgMDQxZjg5Yzk4YzM1YmVlOTAxZTM4ZmM0ZTA2Y2IwNmI2Zjc3NTFkMiBsZWdhY3ktdHJ1bmsKKzM2MDAwIDI3NWE3N2Y5YTUwMDY2NDM0MTQ1Y2RkOGViN2Y5Y2RhZjU2MjZiYmYgbGVnYWN5LXRydW5rCiszNjAwMSA1OWJiM2IxZDYwNTlkMzI2MDM4NGQ1NGNhNTY2NGJkY2VlYTNlYjE3IGxlZ2FjeS10cnVuaworMzYwMDIgZjNkMDU2OGM5NDMyZjBiYWFlOGY0YzFlNTZhOGM5MjBhZDdiNWY2MCByZWxlYXNlMjMtbWFpbnQKKzM2MDAzIDIyNjYyNTg5YzRlMjA5ODljMmYwMGQ1ODNmYmJhZmQyZDNhYjQyMTcgbGVnYWN5LXRydW5rCiszNjAwNCBhNzk5YjBkMWM1Njg3ZTg2OTlkNjdmZmRlMzg0ZjQzYjNkYmE1ZWJmIGxlZ2FjeS10cnVuaworMzYwMDUgZjE1OWIxNWYxZjVjYmFmZWY4OTlmYzViNDNkMWM4ZGYxMzk5ZWM1ZiByZWxlYXNlMjMtbWFpbnQKKzM2MDA2IDdjNDYxYWVlNzQxYmVhMWI2NTZjOWYxNTkyMzVjNTg0MWQ4YjQwOTMgbGVnYWN5LXRydW5rCiszNjAwNyBhYTM5ZmFjMmE5ZmRmOWZhN2EwZTRmOGMxM2YwYWIzNmIwNDI4ZjM2IHJlbGVhc2UyMy1tYWludAorMzYwMDggZGY5YmQxMjc3MzBhZGM5ZTgyYjY3OGNiYTkyNjgwM2UwMmNlZTViMyBsZWdhY3ktdHJ1bmsKKzM2MDA5IDczMGEwM2Y1ZDhiNGRlMmQyMDRkZjcxNDFiY2E2NTRkY2YzMWU4OGYgcmVsZWFzZTIzLW1haW50CiszNjAxMCBjN2Q5YmU3M2M3ZGRiMzM1YTg1ZjQ5Mzk5OGFiMGJiZGEzZWNmMzEyIGxlZ2FjeS10cnVuaworMzYwMTEgMTg1ZjVkNmEzYTg4YTlhMTNhNTdmYjIyM2MyYWM1NWE4ZTQ0OGIwNyBsZWdhY3ktdHJ1bmsKKzM2MDEyIDAzYzg5NTgzOTk3OWMzZGNmYTMxMmZkMjk1ZmYwMjRkOTc3NWNlMTQgcmVsZWFzZTIzLW1haW50CiszNjAxMyBhYjVjMDgyNTdhZDdiNGU3NzljNWQyMmE1NDhjNmM5NDAxY2ZiYmQ1IGxlZ2FjeS10cnVuaworMzYwMTQgYjNjOTgxZWU5YWU5NTU4MWZhNjYwMmU0ZjYzZmQwM2RmMzYzZDc1MSByZWxlYXNlMjMtbWFpbnQKKzM2MDE1IGQzYWFkMzc3YTVhOTBkOWZmMGJhOGMxMzVhOTA0MzFhNGUyYTRiYmIgbGVnYWN5LXRydW5rCiszNjAxNiA4ODA3MWQyMDhiMzRhYTRlYzQzMmJkYTQzZTIwZGYwYzUzZjQzNzZkIGxlZ2FjeS10cnVuaworMzYwMTcgYWI1MTlkZTE3NmJiOTQ4ZjQ1NWM5MTAyZWQwMGYxN2RkN2Q3MDY3ZiBsZWdhY3ktdHJ1bmsKKzM2MDE4IDNhODRlMjNiMDQyZjQ1ZTA1Yzc4YzgzMmI2YWUyYmRkNTRkMGRkNWEgbGVnYWN5LXRydW5rCiszNjAxOSA2ZjI2NWYyY2NiMzNjYWI3ZTNmMzNlMjcxNjQ0YmFkZTYxMzY0YzkyIGxlZ2FjeS10cnVuaworMzYwMjAgNjgyMjAyNmQzYzNiNDE5YThiZGQxMzc2NzYxOTcwYTZkMDhhMTA5MSBsZWdhY3ktdHJ1bmsKKzM2MDIxIDIyZmRhZTdiYmExYWY3MDUxMTIyZjkzY2JhY2M0NzJlZWNhYTk5MzYgbGVnYWN5LXRydW5rCiszNjAyMiBlNjIxZTJhMWFiMzEwMmQzZDczMjAyMTBjYzQ0OTBiNTdiYzFjMWFkIGxlZ2FjeS10cnVuaworMzYwMjMgZTViMDQ3NzY1Mjg1YjM3Mjg1YjczNTY4ODExNDM4MGVjODM0NjdlNiBsZWdhY3ktdHJ1bmsKKzM2MDI0IGFiZDRiNzk1NTFkMmVhOTFmYTliYTkxOGYxNGI2YjdhYWYyZDFkMjAgbGVnYWN5LXRydW5rCiszNjAyNSA5YTM5MDFiZjYyMjJmOTkxOWMyMDZhNmM5OTdlNzgyZTVjMjAxNmM0IGxlZ2FjeS10cnVuaworMzYwMjYgNmZmZGRhNGNjMjIyMTViYzM2YmExZjhiOGFmYTE0YjA2MDE1ZGU3YSBsZWdhY3ktdHJ1bmsKKzM2MDI3IDVkOTQyYmVkZDI4ZjkzYjZiM2IyMjlmMGNmMWQxZDY3NWI1NDY1ZmYgbGVnYWN5LXRydW5rCiszNjAyOCBiOWQzYWEzY2RlOGE1YzFhNDAzN2JjMjYzYjJlZTY3Y2VlODczNjBjIHJlbGVhc2UyMy1tYWludAorMzYwMjkgMzc3MWVhOWE5M2FhZGE3MmVkMDA5ZTRmNmRhOTJmNjFiZTMzYjA5OSByZWxlYXNlMjMtbWFpbnQKKzM2MDMwIDg0ZThmZTkxMjQ0MGQ0YjFiOTc0YmY0NGJiZjc1NjY1Mzk3NDRmMGEgcmVsZWFzZTIzLW1haW50CiszNjAzMSBlYjQxYTQ4OWNjMmY3OGQxZDQxMjI3Y2ZkZmExOWUyY2VlMWE5Y2Q2IGxlZ2FjeS10cnVuaworMzYwMzIgMDEwNTdlNGYwYTYyZDBkMWZlZGU2YzJlYzI5Y2YwMTQ5ZjhlN2M5MSBsZWdhY3ktdHJ1bmsKKzM2MDMzIGViMGY4NzI2OGQ3MGFlMWIyODc2NjAzNjcyYWYyOTExOWM1NmNhNDggbGVnYWN5LXRydW5rCiszNjAzNCA3MGRlZTJiMTkzZjdkNTMxMTY1NjQ1YWQ2ZGNmNDljZTI2MGFhYjNlIGxlZ2FjeS10cnVuaworMzYwMzUgNjQ3OGViNmFlM2MwMWU4NDY5MWQ5NTRhOTQxMTljZDIxYjZmZTQ3NCBsZWdhY3ktdHJ1bmsKKzM2MDM2IGIwMGIyNmNiYzMwM2FmZTFhMWY3MmFiNjkzZjJjNDliMTBlYWNhZWYgcmVsZWFzZTIzLW1haW50CiszNjAzNyBjMDg2MzY2NDc5YjFlMDBiNmQxMGVlYzFmZTU4ODkxYzE4NTYyMmY4IGxlZ2FjeS10cnVuaworMzYwMzggOTFlYWUxZTkyNTc4MWI1NGMyMzVkMmQzNDFkNDUzOTc4YzIwOTBmMiBsZWdhY3ktdHJ1bmsKKzM2MDM5IGZkZjc1ZWVmNmE1YzMzYThmZjJhYzdiYWFmNGViMDRlMzY1MmIwOTAgbGVnYWN5LXRydW5rCiszNjA0MCAyY2M3ZmY0MmI5YTNkMTE2MjgzOTY5ZmQ2YzUwZTJmYTU4ZjEyNWI2IGxlZ2FjeS10cnVuaworMzYwNDEgM2MyMTU4ODc2MTk0YTFhY2NhMmMyZDYyNmQ5NWRkYTdkMTU5YTRkNCByZWxlYXNlMjMtbWFpbnQKKzM2MDQyIGVkMjI4ZThhMTM5ZmI5MDg5N2NiMWY5ZDc4ZDM3Yjc5OTZkYjM5ZjUgbGVnYWN5LXRydW5rCiszNjA0MyBlZmNhNTFlZjc4OWRhZjVhNGNhMGRmZWY0MTVjMzQ5NWIyOTcwZTM1IGxlZ2FjeS10cnVuaworMzYwNDQgYjEwODdlMWQ0NDc5NjNhY2ViOTk3MzE0NmU4N2FjYWMyMGRlN2Q5NyByZWxlYXNlMjMtbWFpbnQKKzM2MDQ1IGZmNjhkNmE1YTQ0MWY2YmQyZjU5NTMzNTdjNDMzNzk1ZjAyMzUzNTIgbGVnYWN5LXRydW5rCiszNjA0NiAxOTU0YjdlZGJmZTcwMDAzNmViNmY1NDNmMWQxMzdhMWJjYzgxOGI5IGxlZ2FjeS10cnVuaworMzYwNDcgOTk0MjQ2MDRkMzZhMzc3ZDI5MWRkMTE3OTg3Yjg2NmU0YTk1MjMwYSBsZWdhY3ktdHJ1bmsKKzM2MDQ4IGI3OTFmNjU1NGQyOGYyZWVhY2QyZDFmMDNkNTA2ZWM5ZWU5YzNjOGIgbGVnYWN5LXRydW5rCiszNjA0OSAzYmZlMmY0MmI4ZjkzODNkNjA1YWZhNTRlYTg1YmVlOThmN2YzNzI0IHJlbGVhc2UyMy1tYWludAorMzYwNTAgMjc5NjdmYmJhNDhmMzFkNGE4MjU0Yjg2MDAwMjFkZmFmNjc0ZTdkYSBsZWdhY3ktdHJ1bmsKKzM2MDUxIDZmYzg4MjdjNDAzYzE2MzQxOGIwZWI0ODgzYzMyMjFlOThjOWMxN2YgcmVsZWFzZTIzLW1haW50CiszNjA1MiA1MjVhYmM2NmJjYzI4YzBmYjk0MzJjOWJlOGIzNDc5N2Y0YTY0OGIyIGxlZ2FjeS10cnVuaworMzYwNTMgMDkwMTJjNmIyMDY4MDVjM2YzNWM0Nzk4ZDlhY2ZmNDA2YzVhYmYxZiBsZWdhY3ktdHJ1bmsKKzM2MDU0IGVkMzc0NmRhZDcwNWEyYjk2NmU1M2JhZWIxYTc1NmNmZjFkODdiNDEgbGVnYWN5LXRydW5rCiszNjA1NSA2YzI4YWQ4MDQ3ZjJkZmJhOTE4ZWUzZTRjNWVlNDcyZWFkYmJiYjNiIHJlbGVhc2UyMy1tYWludAorMzYwNTYgOGM0MDc5MDYxNzA4NThjNWU3NWFkYjk1NWQxYmNiNjE0MDVlOTRmNiBsZWdhY3ktdHJ1bmsKKzM2MDU3IGQyNDRiNTNlY2ZiZWJlMGM1ZTZlNzBlY2I5ZDNiOTc3ODBhYzA1MzcgcmVsZWFzZTIzLW1haW50CiszNjA1OCA5Njg5ZGEwMDExOTdmYTllZWU4YjRiYzVkOTdkMTFhMTk2YzFiZTQyIGxlZ2FjeS10cnVuaworMzYwNTkgZThiNGY1NGY3ZDE5ZWM2NzY4OGI4MDIwNDdmZjcwNDc3NGQ2NzIwNCBsZWdhY3ktdHJ1bmsKKzM2MDYwIDMwMGRiODFlMmU0YWNiZWMyMjFjYTNjMzgwMTA4ZDk3ZTFhYzMxZjggbGVnYWN5LXRydW5rCiszNjA2MSBhNmUwNDg0NzI4MGEyNmRlYTVlNjk4OTQzZTg0Zjk4YmI4OWY4NjkzIGxlZ2FjeS10cnVuaworMzYwNjIgYjkzNDVjMzU1ZjA0YjcxOTc3MzRlMzBlOTI2ZjExNmU0OWU3MjA2MyBsZWdhY3ktdHJ1bmsKKzM2MDYzIDBiZGI0OWE1YThmYTYzMzY1MmM0MDk0ZGI4YjQzNzMwMTIwY2RhNWUgbGVnYWN5LXRydW5rCiszNjA2NCA2OTQ1MjhlODVhMDRkMWZiYTYzZTVlZmY2YWExZTNmNWIzNTc2MzQzIGxlZ2FjeS10cnVuaworMzYwNjUgYzhhMjJiNWNmNThhNThiYWEyYTY4NTQ5NzI1NDJlNGRmYzY0NzIwOCBsZWdhY3ktdHJ1bmsKKzM2MDY2IDNkNjQyNGMwMzg4ODJlZDU5NjJlMjE2YTgxMmJjZGYwNDFhNWIyN2MgcmVsZWFzZTIzLW1haW50CiszNjA2NyA3MGNmZTA2NWVhYzU5MjY0NmEyYWViYmEzMjViM2RjMjI4NjA5M2M0IGxlZ2FjeS10cnVuaworMzYwNjggYTk4ZjUwZTUwYmVmYTFlNTJiMDUzMDFlZmQzNGE4M2M3ZDJmZjc5NyBsZWdhY3ktdHJ1bmsKKzM2MDY5IGRmNDk0M2QyNGNiNmRkZGU0NzcyMDY2Y2NmMzhiYmZjOTA4YWExZDUgbGVnYWN5LXRydW5rCiszNjA3MCA3NDA5YzBjMzcwZTIxMzI1OGRmODNjNjVkMGFkODllZmMyNjk4NjMyIGxlZ2FjeS10cnVuaworMzYwNzEgZWZjYTM1M2U3ZmQ2NzVmNzExNzhhZDhjMTE2YWQyZjk4MThjNzlhNiByZWxlYXNlMjMtbWFpbnQKKzM2MDcyIDI5Zjg3OTMyYzdjNzhiY2EzNjdiYjc1N2E5NTQ1YTU5NDNiYjc2Y2UgcmVsZWFzZTIzLW1haW50CiszNjA3MyBhNzJiYzQyNTczMzY1MWViNjE0OTVlZTM1ZWNmMjRiMmZmN2JjOGUwIGxlZ2FjeS10cnVuaworMzYwNzQgZWM2ZjlhMTkwODMxOTMxY2ZhZGQ1NTczOTY0ZDgzODEwMDlkNDVkYSBsZWdhY3ktdHJ1bmsKKzM2MDc1IDEwYTAxY2UzZWEwYWUwMWRjMzU1ZjI3ZWZlMTFjZmIyOTI3NjcxYTcgcmVsZWFzZTIzLW1haW50CiszNjA3NiAzNjM0NDE4YTg1OGU4MjczYjRhMDBhZjc1OWZkMzhhMzkyNDU3YzdkIGxlZ2FjeS10cnVuaworMzYwNzcgMmY1ZjM4ZjRiYzJiOTAwODliOTU2NzM5YWYxODZkMTA5YzUxNjhkMSBsZWdhY3ktdHJ1bmsKKzM2MDc4IDhjMDM5NGFlYzZkY2Q0MGZkYzNlODEzYWE4YWVmMDU1ZDY2NWM0YjcgbGVnYWN5LXRydW5rCiszNjA3OSAzZGZlODFhYzBlN2NkMGRmNGUyMzNmYmQxNGIxYTZiYjdjMzljYmI2IGxlZ2FjeS10cnVuaworMzYwODAgYTgwZWUyMDA0ZTZjYTQ5MmIwYjlhMmVlOGU0YzkzOTQ5N2QwOTY1MiBsZWdhY3ktdHJ1bmsKKzM2MDgxIGNkYWQwMDViYzAzMDc3NWZlZjdiYWM2NzNjMzkyZDY1Njk0MzZjZTggbGVnYWN5LXRydW5rCiszNjA4MiBjYjk1N2U2NWY0NDQ5Yjg2OThiNDk0MGRlZGI2YTYyMDdiMGU0YzIyIHJlbGVhc2UyMy1tYWludAorMzYwODMgMzY3OThmMWM4ZTlhMWE2NmZkZDc3ODA1ZWY5NzZjMWExNDg4MzBmOCBsZWdhY3ktdHJ1bmsKKzM2MDg0IGI5YzllN2U4YmU3ZDU0ZmI4MWEyMTk1YmE4ODA3NWY1MmNlMjU3MzIgbGVnYWN5LXRydW5rCiszNjA4NSBhYzRkNDIwY2M3OTllNWQyNjZhN2Y0NmE3ZGY1YTc1ZDczNzJmYTgyIHJlbGVhc2UyMy1tYWludAorMzYwODYgYmRmMjM4Nzk4OTQ5OWVkZjA2NzQ5NmQ5MGNlMGZkY2M4MDAwNmEwMSBsZWdhY3ktdHJ1bmsKKzM2MDg3IGE4OWNjNTM1YjRjNTc1NWFhYzg2YmIxZWE0NzUwYTRkNDRjZjBkZGUgbGVnYWN5LXRydW5rCiszNjA4OCBlZWFhN2ZiMmYxNmY3YTBlZDNmYTMyYmVkZjQxYTMzZGJhMGIyZDdmIHJlbGVhc2UyMy1tYWludAorMzYwODkgOGU1OTU4YzkzYzg4MjE1ZDQ1ODc5MmE2YWY1OGUyYTgzZWZkNDMwMSBsZWdhY3ktdHJ1bmsKKzM2MDkwIDhlYWI3NjU1NjAxZmVkMTIxMDAwZGMwZWM0NGFmYzYwYmFiYjEyMjQgbGVnYWN5LXRydW5rCiszNjA5MSA0MmJiMWRjZGYxNmU0MWJkMzMyZTAxZDA3MjZkZjM2MzU3ZDU5YzE1IHJlbGVhc2UyMy1tYWludAorMzYwOTIgNDdkNjRjYjAxODIwNWViZWQ0MWJjOWEyYzVmMjNlYTk2MDgyYWU3YyBsZWdhY3ktdHJ1bmsKKzM2MDkzIDAxNGIwZDg0NDIyZjdiNjMxZTAwM2YyNzlkMDQwMzg5ZTNjZjZiZWUgbGVnYWN5LXRydW5rCiszNjA5NCA5NTI4N2NkZGJjMWVjYTU2Yzk2Y2U3ODAwMWIyZDk5OGU3NzMyYTE0IGxlZ2FjeS10cnVuaworMzYwOTUgNjFhZjQ3MjEzZmU2Njc0YzgzNjI2NzE5OGRhNmZlNDM0YzJjMDM1MyBsZWdhY3ktdHJ1bmsKKzM2MDk2IDFlZWFhNTA5M2ZjMDQxMTE2MDQwMmE3ZDAwYjQxNTQwYjUxZTRkODggbGVnYWN5LXRydW5rCiszNjA5NyBhZGI1OWQ4OWIwOTkxNjA1NjNhNDg3M2RkOTVjYTk1OWIwNWYxNjI2IHJlbGVhc2UyMy1tYWludAorMzYwOTggN2U3MjczYzhkMjFlYjdiNjc3MzczNmRhMDNiZGJkNDk3MDViYWZlMyByZWxlYXNlMjMtbWFpbnQKKzM2MDk5IGMyYmMyNDhkM2U5YzcwYjU2NWJmNjMwZDI4Njg5NDg5NTFjZWIzNjMgbGVnYWN5LXRydW5rCiszNjEwMCBjMGQxMjYxZGE4NDhkNjFlZGM3MWRkODg2YWQ2Zjg2YjJjNTI2NTE0IGxlZ2FjeS10cnVuaworMzYxMDEgY2JmYTA0Mjg1NTI5MGEyMzgxYzEwMWNmYjJmYmIyZDEyMzYwZGYxZCBsZWdhY3ktdHJ1bmsKKzM2MTAyIGI2MGZjNWVmZjE1NTk0ZDc3NTA0ZDBmZTMwZDczOWVjYzVhYjZmMTkgbGVnYWN5LXRydW5rCiszNjEwMyBmZDUyYjY4MDc5MjQ4Y2IxOTkwNzgzOWU2MTI4NzdkYjNiMDUwOWVjIGxlZ2FjeS10cnVuaworMzYxMDQgNmRiZmVlMmRlZDg5NTZlNmY3OTU2M2ZlZDliYTY1NTM5NGYwZWY4NiBsZWdhY3ktdHJ1bmsKKzM2MTA1IDk0Yjg0MWFkZjQ4NWJjOThhYWU4ZGE0ZjQ0ZDZlZTNmOTg2YzdlYmEgbGVnYWN5LXRydW5rCiszNjEwNiA5MTM4OGM4NDViMTY5NWZlNDYzMGI2NTM4MjU2NGE1MzA3YTgxN2JjIGxlZ2FjeS10cnVuaworMzYxMDcgODgyY2YxMTM3MmEzZTRiZGU0NjY0NTNlNjU5NWQxNGExNmYzODU2MSByZWxlYXNlMjMtbWFpbnQKKzM2MTA4IDg1NGEyNDE3ZDM1ZWI1MThhZGFlYzY2ZTUxMDRlNDRmZGQ0Y2I3ZDggbGVnYWN5LXRydW5rCiszNjEwOSBhMDE4YWUzODZmOTllMWE0OWQxNzRjMTVmNjNiZDFjYzM4NjhjOGRhIGxlZ2FjeS10cnVuaworMzYxMTAgNWM3OWI0ZjEzYjI2ZjgyOTAwZGE5ZWYxODM2NzRmNjlmZmVjZTU3NyBsZWdhY3ktdHJ1bmsKKzM2MTExIDcxYjNkMmJiZTYzYmZhNzg1NDc2OTJiZmU3OGQ4OWRlYTgzOWUyNWIgbGVnYWN5LXRydW5rCiszNjExMiA0MGM1MjRjMWMwZmVmZWE2N2VkZGZlOGU0ZDU3ZDQzZGEwYWE2NjA4IGxlZ2FjeS10cnVuaworMzYxMTMgZTEzNDVjZTI3NWY3OWQ4MzQ3Mjg4NWViZmEyMzlhZDM1NWI0MjY0YiBsZWdhY3ktdHJ1bmsKKzM2MTE0IDZkN2QwMGJmMWFhZTU5NmVmNjY5NWFiMjA1MWZkMmM3NDhkN2NjYmUgcmVsZWFzZTIzLW1haW50CiszNjExNSA4MmZlNjgzMmU1MDVkZWIyNGE3N2I0ZWE0NWJhYjdkZWQyNGRlZDJiIGxlZ2FjeS10cnVuaworMzYxMTYgOGFjZjQyNDFlZTk0ZjVjYzExZjJiZjY2MGRlZjdkNmM2ZDU3MmM1MSBsZWdhY3ktdHJ1bmsKKzM2MTE3IGFhMGM4NGQxZjA2Nzc4NjhmYzdiZDVkZDE5NWYyNmMyOTU5MzYwNDcgcmVsZWFzZTIzLW1haW50CiszNjExOCBjZjg0ZGJjNmE4ODFjN2IzMWMyN2I2MjE3OTkwYjMwNzQwMDdhZjA0IGxlZ2FjeS10cnVuaworMzYxMTkgMjlkNzYxYzUxMDNlNzdiNTExMmJiODBmOGRlMWIzNzk4MWQyOWFlMSBsZWdhY3ktdHJ1bmsKKzM2MTIwIDkyZjU5N2EwNTU4MTVlZTNlYWVjM2EzOWUyNDQyOWYyNjY5ZDgwNzYgcmVsZWFzZTIzLW1haW50CiszNjEyMSBjODRmZDZiZTVhMTRmNDQzNjFhZGZhNGQwYzAzYjMyMjU4ZDFiMDRmIGxlZ2FjeS10cnVuaworMzYxMjIgNDFjNTlkODBiYmM1ZjZmYmNiYjJjMmIzOGJjNmNhNWJhN2MyNzI3YSBsZWdhY3ktdHJ1bmsKKzM2MTIzIGUxOTZiODIzZTZjNWJhZDFmYWFhZWEwODdjOTliZjhlZjNmYzEzOGEgbGVnYWN5LXRydW5rCiszNjEyNCBhMGQ4YjE0NTY4MTkzMTY2Yzg2YTRiMzZkNzg2Mzk2M2I2MDQ5NjhhIGxlZ2FjeS10cnVuaworMzYxMjUgMTZhY2M2MWQzM2MwMmQ2Y2M4NjFlNjM3MjEwYjMwOTJlNmJiNWZjNCBsZWdhY3ktdHJ1bmsKKzM2MTI2IDEzNjU2ZDU4ZDQ1MDE0MDU5NGNmN2RhNzg5NThkYjA4NjliMTJmZTAgbGVnYWN5LXRydW5rCiszNjEyNyBjZWRjOTU0NTk2MzZkNTMyZDc1ZTA1MWFlZTA0MWU1OTEwZWE0ZjFkIGxlZ2FjeS10cnVuaworMzYxMjggZWM4OGYyNzhhMWFkNDk5MDllODg2YjE2MWZmMGJjOGQ3NjU4OGEzNiBsZWdhY3ktdHJ1bmsKKzM2MTI5IDMyMTk3Mzc1MTI4ZTIyNjU4OGMyMzJkMjdmZjVmNDJjZTlkNjU2MTggbGVnYWN5LXRydW5rCiszNjEzMCBmYzZhNzM5MDVlNmYzOGM5ZDQ3YTI5ZWExNTg1ODMxOGM3ZTZmZWNlIGxlZ2FjeS10cnVuaworMzYxMzEgMTkxODg4N2QzODdiMDEwNGUzZjNjM2IzYTc5MzU2ZTk0OTc1YTk1YyByZWxlYXNlMjMtbWFpbnQKKzM2MTMyIGJjZDIxYWJhYTViNGYxNWI4NzhiMTI5N2MyMTcyMDJhN2U5NGFkMjQgcmVsZWFzZTIzLW1haW50CiszNjEzMyA0MzAxZWNiZWIzYWRmYTQxMzZjMDk4MzRjOGY0MTczNGJjZmQ3MTYzIHJlbGVhc2UyMy1tYWludAorMzYxMzQgZmM0NzYyZWJiZTJjZjY3MzQ3MmQ2YmE5YWZkNDA1YjQyYjUzNzdmMyByZWxlYXNlMjMtbWFpbnQKKzM2MTM1IDQzOWU3MWE0ZTU1NDY4NTRjNTRjZjg5Y2I1ZDNhYTJjNzVlYWI4NTAgbGVnYWN5LXRydW5rCiszNjEzNiA0OWU3NDEzY2Q5MWMwZTU4ODYzOWYyNmNlNDg1NTg3MDI1ZWMzZTBhIGxlZ2FjeS10cnVuaworMzYxMzcgOWU1YWY0NWNlZmNiNWY0MTJhYzE2OTdmYzAxNDhjNDIwN2Q4ODBjMyBsZWdhY3ktdHJ1bmsKKzM2MTM4IGQ2OWM4MDY4ZWFlNjFjZWQ4ZTcxNGM1MDNhNzc0MTRkMDA5NDRiMTEgbGVnYWN5LXRydW5rCiszNjEzOSA0MThhMGM2YmRjN2Q0YTBlZGZhNDJkM2IzY2ZkYTk1Yjk4OWQyNTY3IGxlZ2FjeS10cnVuaworMzYxNDAgYjlkZTZiNjY1MjczNmQ2MDE1Y2I3OGFjNzQwMDE4YWRkZTc3NThmZiBsZWdhY3ktdHJ1bmsKKzM2MTQxIDg3MzAyYWMwNzI1NTI0MzUxOTJhNDhiMGJmNWVlMzc0NWZiOTQ1NjIgbGVnYWN5LXRydW5rCiszNjE0MiBiMGY0NTRmNTU4ZTVlYjJmYTZkYzZmMDg0MWY0NTA5YjVjNTEyNmRiIGxlZ2FjeS10cnVuaworMzYxNDMgNTBmM2E1NTBiNGZlNmFlZjMzZmQyYTc3Y2MwMGU1NzNlZjk5OTRhYiBsZWdhY3ktdHJ1bmsKKzM2MTQ0IGMxZmJiYzNlZWQzOWU1ZmVjNjY5NzM1ZmI5ZjNlMjBmMmYzYzQ4ZGQgbGVnYWN5LXRydW5rCiszNjE0NSBiMDU0Y2ZmN2JiODZkNmYxMjdjMDZlMzQwOGQ1MjBjY2MyODg2YzhlIHJlbGVhc2UyMy1tYWludAorMzYxNDYgY2YyOGY0YTZlNjc2MThhNWE3N2ZjZjNmOGM1YzUyM2RmYTY1MTY5YiBsZWdhY3ktdHJ1bmsKKzM2MTQ3IDdhMTk4ZDljOTI2MTJkMjQ0MzU2M2Q1ZDMxYmY1NTIzYWJkZWI5NWYgbGVnYWN5LXRydW5rCiszNjE0OCAzMTUyYjc0N2EyZTQ2MTFiMzNmZmYyNWJkNTE2NWJiYWVkMTdlNzQxIGxlZ2FjeS10cnVuaworMzYxNDkgZjQ5NDcxOTUzNjg5YTNiZjhiNGY2NDZlODUxNDM0NGQ1ZmE2MzQwOSBsZWdhY3ktdHJ1bmsKKzM2MTUwIDZmZWFkNWVhNGJiYTIzNzI2MmYwYjA4NGUxZjZmYWExZTBjODY3MmMgbGVnYWN5LXRydW5rCiszNjE1MSA1NDEzMjdjYjhmOGJmNmI1NTcxNTRjMjhhMjM3NDI1ZDJjZDJjYThiIGxlZ2FjeS10cnVuaworMzYxNTIgMjI1M2E4YzJlYTYyZGM1ZDNmZmU1NzZlODE3NmVkZTYwZWJjYjg1YSBsZWdhY3ktdHJ1bmsKKzM2MTUzIGYwZWI3Nzc4YTE4MzA4M2YwZmVkYThmZjMyNmNjNjE1OTc4YzY1MDMgbGVnYWN5LXRydW5rCiszNjE1NCA2M2U5ZTVhMjE2MGI1ZGM5YmJhZmI5ODM3NGEwMTZkNDg0NDcwYzU0IGxlZ2FjeS10cnVuaworMzYxNTUgNDQ0ZmE1ZDUwYzE0ZDIwZTBhOGUyYmQ3YTZlNTQxMjBjNjExYzcwMyByZWxlYXNlMjMtbWFpbnQKKzM2MTU2IGM3ZGNiMDk3NDVkMzViNDliYmVhYjkxNTdhYmI2ZGQ1NDBjYmM2NDQgbGVnYWN5LXRydW5rCiszNjE1NyA2ZTRmZTU1NjBkODFkNDhhYzQxYzNiMGM4YmQyOTFhOGNhMDFlNDQwIGxlZ2FjeS10cnVuaworMzYxNTggYmM5YWU0NGIyY2U0MWZjM2RiNWY5MjJlZjI5M2JhMzYzZjNjMTdlNiBsZWdhY3ktdHJ1bmsKKzM2MTU5IGE2MjdkOTQ5MzE0OTUzMzk5OWQxZjQ1ZTNhYmFiY2ExNGI5NDFlMDUgbGVnYWN5LXRydW5rCiszNjE2MCA0MDhhNDBlNjUyNDdjZDBhNzcyZTRmOTkzYjU1NjdlMmZkOTg0MWVmIGxlZ2FjeS10cnVuaworMzYxNjEgYzdkYTY5OTBjNGVkOWI4ODdlMzQ3OWMzM2NiNmRmMjYzN2MyYTc4YSBsZWdhY3ktdHJ1bmsKKzM2MTYyIDVkMjcyNjljOWUzM2M2YTI4ZDgzM2ZkNmJiMWYwNjQ3ZjM3NWI2YjYgbGVnYWN5LXRydW5rCiszNjE2MyBjOWRiNzkzY2FhODBhMjU0OTQ4ZGE3OWFkNjE1YjA1YzhlODEzMWVjIGxlZ2FjeS10cnVuaworMzYxNjQgNTRiMjU3ZTU1Zjk5MTUwMTU1OTQ4ZGQzZGZmYmQ0MWY1ODEwY2M0NiBsZWdhY3ktdHJ1bmsKKzM2MTY1IDc0ODEyOWU2ZTEwODJmMzNkZjFlNzhhNWNiNjFmMThjMTM4M2NmN2YgbGVnYWN5LXRydW5rCiszNjE2NiA4YjJkZjlhMDdjZDcwNGRkNmZmNmM3OTU5ZGU3OWQxOTZlOTg4NjljIGxlZ2FjeS10cnVuaworMzYxNjcgMDQxMzAwNWZjMGIyY2NiYjFiY2U4OTg2NzE5ODgxNGY4NjJjMmQ1YyBsZWdhY3ktdHJ1bmsKKzM2MTY4IGU5NTBiZmUxODU2ZTIwZjQyNzEwMzAyOTFkYjU5MGFhOTY3NGQyN2IgbGVnYWN5LXRydW5rCiszNjE2OSA5ZDg2NTViNDc1ZGI0OGQwNDhjM2YxYTllNmFiMmIyMDhkOGFiZDBmIGxlZ2FjeS10cnVuaworMzYxNzAgNDRlOGU4NGYxMjgwODI1MmQ0ZTlhNTE0NjZmMjljM2E3NDBjNmVhYiBsZWdhY3ktdHJ1bmsKKzM2MTcxIDExYzMxYTk4ZGZkNjkwYTg1OTQ1Yjk3ZmRlNjgwMjNiMGM5NGY1MjkgbGVnYWN5LXRydW5rCiszNjE3MiAxM2NlNDQ3ODQ1YmNiZDQ3YmZlYmVkOGJkNmUwMGFiZTI3OTU3N2E0IGxlZ2FjeS10cnVuaworMzYxNzMgMzQ4ZGI3N2EwN2U5MThjOGM1NmI4ZjViMTcwN2VhOWE4NTkwODRkNSBsZWdhY3ktdHJ1bmsKKzM2MTc0IDQwYWNiNjhhZDIyNDc3M2I5Zjg1N2JhMjBhNmM3YWQyM2VmZGQ4N2QgbGVnYWN5LXRydW5rCiszNjE3NSA1ODFhOGExMjhlMTFjYTE1MzY5YTFkMTc2MjFiNTAwNWU5MjliMjM4IGxlZ2FjeS10cnVuaworMzYxNzYgMTJmMjRjYjI3MzgzYzk3MWI3YzAyNjdmMTViNDExMmU3MDA1ZDVjMiBsZWdhY3ktdHJ1bmsKKzM2MTc3IDYxMTgwYzMxZDRiZGIzZWFhNTA1NWRkNDE1ZTM4ZTZhYzMxMWIyM2UgbGVnYWN5LXRydW5rCiszNjE3OCBhNDZiZGU5ZTBjNzRiYjc2MWRjZTY4NDU0Nzk4ZTIyNjgzOWI1YTNlIGxlZ2FjeS10cnVuaworMzYxNzkgNmFiNWUwNTI2YTMyYWJkNDAxNzNlNDUzNzk0YTM4ZTM0YWFkMGE0NCBsZWdhY3ktdHJ1bmsKKzM2MTgwIGU1YmM5NDdjNDRjYWViYzAyOTE3NGJjOGUyYzhjZjA3MWIxZTM5ODkgbGVnYWN5LXRydW5rCiszNjE4MSA4NmY1OTYyZmQ5YjdlYzZjYjc4NDAyZmE3NjA3NDM5MGI2OWMwZDMwIGxlZ2FjeS10cnVuaworMzYxODIgNTViYTUxYmVmMGE4MWEwNDI5NGVlMmUyNjBhMDBmMTcwM2Q3NDNiNiBsZWdhY3ktdHJ1bmsKKzM2MTgzIGE3ZDZmYzE3ZjI1NzU1Mjc2Mjk0NWJjMjUwZWRmYjg3MjhiYzA5M2MgbGVnYWN5LXRydW5rCiszNjE4NCBiOGZjZTIyNThjMjAwNmEzMzliZDJhOTM3MmMyZjFiYWQzYjY2YzhiIGxlZ2FjeS10cnVuaworMzYxODUgZjRhNDgxMGY5ODJlZDVlODU0YWM2M2VkNTYyNTIwM2U1NGY1NGU0ZCBsZWdhY3ktdHJ1bmsKKzM2MTg2IDMzMWU1ZDhiMjk2Zjc2YTNkZGE4OTFmMmU1YWExZGI3NDI2NmMwZmUgbGVnYWN5LXRydW5rCiszNjE4NyA1MDkwNzJjM2ZhMjZiOTJhMjUxZTVmNTQ3YjNiMDI5MzBkMmJmMGZhIGxlZ2FjeS10cnVuaworMzYxODggMWZkM2FhNGJjMTIzYWQxMzE5ZTk3ODM0Yjc0NjQ4ZjNhMDYxY2E4MSBsZWdhY3ktdHJ1bmsKKzM2MTg5IGI5OWE1NTI3MzhiZmFlMzc5MzIzYTI4OGQ3OWM5NTYxNTI3YjVmYWMgcmVsZWFzZTIzLW1haW50CiszNjE5MCAzOTExNzNjNjhiYjNjOTA3N2RmY2FiMmFhNjQ2YmY2ZDljOGU4NTZiIGxlZ2FjeS10cnVuaworMzYxOTEgOTYzZDIzNTU3MDIwZjIyMjk5NTE0MzFjYTU4YjYwZTgyMDcxNDIzOCBsZWdhY3ktdHJ1bmsKKzM2MTkyIDExOTgyZGE5ODc5MmM0NzY3ZjE0ZWNjZjY2MTAzZjUxNzYwMWZiNTAgbGVnYWN5LXRydW5rCiszNjE5MyBlNDNkYTRmOTk5NDE1NjdjM2FiOTA1MGNkODc5ZGNmMzBmMDM5ZTI0IGxlZ2FjeS10cnVuaworMzYxOTQgMGFmNDE1NDNjOWI2NWY3MWYwZGFjODc4NTZlYTk1M2JlOGFjZmFhNCBsZWdhY3ktdHJ1bmsKKzM2MTk1IGY1MzlhOWI5NGY3OTQ1NzQ0NGNiOWJkMWRjYmRkMmRiYjJiNTk5NzAgbGVnYWN5LXRydW5rCiszNjE5NiA2Mzg0MDc4ZTdlZGY5NzZiZWYzYjE0YTlmYTczNTVhYmJjMWZjNDk2IGxlZ2FjeS10cnVuaworMzYxOTcgNDM0ZDNmMmNiODMyODI4ZTFlYWJmYzE4ZjEyYTY4MzAwMTE4OTZlNiBsZWdhY3ktdHJ1bmsKKzM2MTk4IGY3M2E2M2RkMzI4ODU2NzY2ZWExMjZjMTUzM2Q2NTgyZWZlMDkyNWQgbGVnYWN5LXRydW5rCiszNjE5OSBhOWE0YjBkZjUxMmFkNGY5NGRhN2ZkYjY2ZGI2MDRhZTY5ODc5ZGZjIGxlZ2FjeS10cnVuaworMzYyMDAgNWJmYzc1NDNkN2VmYTBmZDAwZTM1NmUwOWI4NzRjOGE1N2VjOWRmYyBsZWdhY3ktdHJ1bmsKKzM2MjAxIGM2YWIwZjg4ODk1YTVjNThlYTUwNjM2YjBlMTJlYjgzOGUyZDk2YTggbGVnYWN5LXRydW5rCiszNjIwMiA3NjMyNzczNzgxMTRjM2QwNWFmZWE0NTJmOWJhNzlmODBlNGZmM2Y2IHJlbGVhc2UyMy1tYWludAorMzYyMDMgY2RlMmZlYWI3ZmUwYWI3MGQyMWM4YjUxNTUzMGFlNmM1ZDc1OGYwNSBsZWdhY3ktdHJ1bmsKKzM2MjA0IDI3ZTcxMmM4ZTFhMzY0OWU1NWE3Yzc2NjlkZTRiODAwNzc3ZjdmOTAgbGVnYWN5LXRydW5rCiszNjIwNSBlYzY0YTZiZTMyZjcxN2RiZGU3ZjMyMmU4NzNlMTg5Y2NkM2UzMjk3IGxlZ2FjeS10cnVuaworMzYyMDYgZDBhNmNlYjg0NjQ2NDcwNmQ2M2FlMDFlNTI2Mjk1NGYwMzIwYTUwYyBsZWdhY3ktdHJ1bmsKKzM2MjA3IDY4NmU1ZDM4YmU0MjFhYmNkODI4NTc4YTU0MjczNWViZjI0NTc0ZmYgbGVnYWN5LXRydW5rCiszNjIwOCAwODE5NTA4YWFlM2FjM2UxNWM3NjU5NjdhMmQ4ODNmMmM4NDI5N2M3IHJlbGVhc2UyMy1tYWludAorMzYyMDkgNWNmNTA3YjY0ZjMxYTBkMDIzZGNjMTNjZGEyM2Y4YzIyZWM2NzM4NCBsZWdhY3ktdHJ1bmsKKzM2MjEwIGY5NTY5NTI2ZThkNDBkMWIxNjgwYzYwNjY4NzRjZGZlMWIxN2ZhMmUgbGVnYWN5LXRydW5rCiszNjIxMSA0YzcxYmNmYWNkZTJmMmEzZTM4MTJjMTZkZjA0ZWNiYzg1Mzg2MGI0IGxlZ2FjeS10cnVuaworMzYyMTIgNmZjMDI5MTVmNjM3YjAyNDRkMjBhNjQ1YzFjZjZiZDlmODYxZjc1NSBsZWdhY3ktdHJ1bmsKKzM2MjEzIDk4ZTQ2MzI3MjEyMDBiMDgwNzc3ZGRiNjg4NjYzODJjZWQ2MGYyZGMgcmVsZWFzZTIzLW1haW50CiszNjIxNCBlNWRmOGM4ZmFhMDk5YmQzMjRhYjlmMTM0M2UwYjE3NThjZmU0NjQ4IGxlZ2FjeS10cnVuaworMzYyMTUgMWQ1ODRjYTU2YjMwNDk1ZjEzOTE2NjY4Zjk2ZWEwMWMzNjc1ZjM3ZCBsZWdhY3ktdHJ1bmsKKzM2MjE2IDZiYzZhYmJhODY1OWVhYTQ5YTI4YzgyYmQyNWJhODUzOGI3MDE3YjkgbGVnYWN5LXRydW5rCiszNjIxNyAyZjc2ZTcyYWQxOTBjYjU5Mzk0YWIxYWU1Yjc2MGEyMDEzMjg1MGFjIGxlZ2FjeS10cnVuaworMzYyMTggNzU4NjFkOGM1ODcxNWEyZGJmMDRlNGIxOGFmYjE1YzI0MDFhNjFlMyBsZWdhY3ktdHJ1bmsKKzM2MjE5IDAxNGQ4N2M3MzIxMDJhN2YxMTY2ODE4OGQxZGMzN2Q2NmNmMGRkOGYgbGVnYWN5LXRydW5rCiszNjIyMCA0NzIwMjNkMGExMGQ2NDI4N2UyNmI5Y2Q2MTI1YTI2MjRkNzNlNTQwIGxlZ2FjeS10cnVuaworMzYyMjEgNmNlNjdmN2IwNDMwYThmZWRjOTA5MDZmYjE0NjE4YzZiMWQ1ZGIxYyBsZWdhY3ktdHJ1bmsKKzM2MjIyIGNkNDdmNjIyMWQ4ZDFmNTYxODI2MGU4YzhiNjU5MTAxYWVhMDFiZWEgbGVnYWN5LXRydW5rCiszNjIyMyAxYzJiYWFlMTQ4MjgyMzk3NzljNjkyNzNjYjBiNjBlNjE3NjgzMmFkIGxlZ2FjeS10cnVuaworMzYyMjQgOGNjZDhlYzYzY2MyMGMyYjRhMjBmOTg5MGNiMjNmOTY4NmE2OTMwNCBsZWdhY3ktdHJ1bmsKKzM2MjI1IDc1ZTVkMWU4YjYxNzFhMmE5ZjdkMmE2ZGU4Y2M3ZDdhMDhjZGNmYjcgbGVnYWN5LXRydW5rCiszNjIyNiA3YjZlZDM1YzU4NTBlNmY1NzAwNWU5OTczNDQ3YWMxZmZhY2ZjZWQ4IGxlZ2FjeS10cnVuaworMzYyMjYgZDk5YjViZWQwMDc4ODRiMjVmMTI3NmUyYmFmYjlhZDA2MWYyYTk1OSByZWxlYXNlMjMtbWFpbnQKKzM2MjI3IGFhZjkyOTVlZDQ1YjAwNmVjNzBjYTFkYzIzZjk1Njk0ZWFmN2Y2OTYgbGVnYWN5LXRydW5rCiszNjIyOCBlMGE3YzQ2MTMxMWIzZGNhZjZmYTM1NmNhOGRlYTEzNDExNDg1NGYxIGxlZ2FjeS10cnVuaworMzYyMjkgNzc5MTNiZTI5NGI5MjExNDY3YjQ1ODM3ZWRhZmMyYmVlYTI2MWE2ZSBsZWdhY3ktdHJ1bmsKKzM2MjMwIDg0NDQ4NDljOTQ0OGVkZWFiNjQ0ZGY1NDRkNmFjM2FiMzM1Mjc5MTAgbGVnYWN5LXRydW5rCiszNjIzMSA4MTAxZThkMjRmMDUyOGM0MTEzMDBhNjQ1NzM2ZDU3YjcwZTNiZWY0IHJlbGVhc2UyMy1tYWludAorMzYyMzIgMzkzYzE1YzBjNWE0OGY2NWViNGExY2U0NTYzNzQ5ZWZlMDkxN2QxOCBsZWdhY3ktdHJ1bmsKKzM2MjMzIGQ3MTEwYmI2YzEzZGM0MzlmNGFmM2VlMmU2YWJmOWIxOWUyNDkyZDIgbGVnYWN5LXRydW5rCiszNjIzNCBmY2ZiMmQ0MjIwYjBlNTczZTMyN2VkODU3MzBkMGI2ODkzNzFiZjA5IGxlZ2FjeS10cnVuaworMzYyMzUgYjFlNzFiMzkyNzk5YWE1NzE0ZDQ3ZTA2ODA2ZjU2NmJiOGMyNmUyNSBsZWdhY3ktdHJ1bmsKKzM2MjM2IDk1MGNmNjljNjliNjFkYzNlN2ZiM2Q2Y2I1ZWVhZjAwNjE3ZDZjYzcgbGVnYWN5LXRydW5rCiszNjIzNyAyN2UyMmY2YmQzYWU3NzJmZWE0ZmU3OTI0MWI3Y2RhYTI5MWMyYWE0IGxlZ2FjeS10cnVuaworMzYyMzggMjU1YTcxZjJkMjE1YThmNzBjMWQ1ZGI3YTc5ZmEyYjdjMGZkZDk5MCBsZWdhY3ktdHJ1bmsKKzM2MjM5IDg0ZTViNTg1ZDIwMWI4ODRhOTVmYzBhNGIyYTlkMjBlYmU1ZGIwM2MgbGVnYWN5LXRydW5rCiszNjI0MCBhNGJjMmZmZDhlNzE2YTkxNDc4NGU3ZDFkOGM1M2FhN2E2Y2EyNGIyIGxlZ2FjeS10cnVuaworMzYyNDEgNDg1ZDJlZjQzNDE5ZDE5MDAxNzBhZWJiZWE5ZDZiNjgyYzVjYjkxNyBsZWdhY3ktdHJ1bmsKKzM2MjQyIDNkZjM2ZTJlNWRkYzExNDlhZjhlYjUyZTIwYmMyMjVkODA2MjM2ZDQgbGVnYWN5LXRydW5rCiszNjI0MyA2NDUzNGZiM2FmY2Q5NDAwYmMzMGNmNzQyMWZlZjgzZTM5MjhkYzMxIGxlZ2FjeS10cnVuaworMzYyNDQgM2RkYzdhMjMxNzZiNjI4MzFkNDBhODM2NGY1ZmI3NzJmYjRmYWNlOCBsZWdhY3ktdHJ1bmsKKzM2MjQ1IGUzNzExODNkMGUxOTBjZTdlMGU3MjRiZjFhZDU4ODc0ZWYwNTkxNzggbGVnYWN5LXRydW5rCiszNjI0NiBmOGQ2MWVkMmYwZDNhMGUxODM2ZTc2NGE2MTU5YzVjMjUzODU4YWRjIGxlZ2FjeS10cnVuaworMzYyNDcgOTE1YjBlODMzYjViZmQyYmEyNWY1MzkyZWE1YTQyYTY2NmQ0ZGIzZCBsZWdhY3ktdHJ1bmsKKzM2MjQ4IDFjNjlmOTA5YzVhNjEzNzhkYTI3ZjAyNjFlNDJiYjAxMzc0NjliZjkgbGVnYWN5LXRydW5rCiszNjI0OSBkOGFiZjU4MmY4OTMwNmVhZTczZTQzZjFhYzQzMzliZjlkZGY1NzcyIGxlZ2FjeS10cnVuaworMzYyNTAgNDhjYTI3YWRhODFlNjVmZDc1NWQwOWFlMjc2YzRhNTAyZjNkNTlmMSBsZWdhY3ktdHJ1bmsKKzM2MjUxIGM3ZDJiMjRlZWZmOTlkNjA2NTE4ZGFiMjlhNjc2MzkwMTk0MTVhYTAgbGVnYWN5LXRydW5rCiszNjI1MiAyMGFkYjdjZTFiMDg1ZjQyMWIyZTNlY2I2OTM5NGEzYjI0OGFjMjY4IGxlZ2FjeS10cnVuaworMzYyNTMgZGE3YzNjNjFkNDBlMDA1MGZiMGFkYWIwZWVlNDIzZWNhZDhiMjMzOCBsZWdhY3ktdHJ1bmsKKzM2MjU0IDVlYzc4ZTJkYzRiZWM5NmVkZTc4MjM4YjU2OTU3ZGUxZWMwM2Q0NDggbGVnYWN5LXRydW5rCiszNjI1NSBmZjZiOTdjZGQ4NjRmNGY1MGJmY2QzMWRlY2IwZmUwM2NkNTIzYjEyIGxlZ2FjeS10cnVuaworMzYyNTYgM2E3ZTM0ZGM2YWUyNmRlOGIxZmQ4YTFmY2FhNmZmMzQ1M2VmYTk5YyByZWxlYXNlMjMtbWFpbnQKKzM2MjU3IGY0N2NlMjMwNGNiYjIzNTkwMzE1MjRhOGI3NWY3YThhNzcxYTQyYzcgbGVnYWN5LXRydW5rCiszNjI1OCAzOGY4ODM0MDNlOWY4Y2I3N2FmMjRlOTBkNDRhNTFlYjNmNjM0YzdkIGxlZ2FjeS10cnVuaworMzYyNTkgNzMzM2JlMDkyZWVjMGNlOTM1ZDg0MDcyMDViMTc2NTU5NTVjMjI3NiBsZWdhY3ktdHJ1bmsKKzM2MjYwIGVlMzg4OTZlMGQyNDE3M2UwNWRiYWJiMGM1NzVjYzhiNjcxYmM0YzQgbGVnYWN5LXRydW5rCiszNjI2MSA1M2YyNzRmMDJmNjk4MDU5ZGNmM2FhODBmZTI2MGQxZDk4MzczYTA2IGxlZ2FjeS10cnVuaworMzYyNjIgMWVkYzA2ODcyMTNmZTNmZGM0MTgzNWI2OWRmNGZmNWIwYWM4MTZmYSBsZWdhY3ktdHJ1bmsKKzM2MjYzIGIxOGY0ODBjMzdhMDc2ODEzY2RlMjZmMTk2ZmNmYzlkNDFlYTIwZTMgbGVnYWN5LXRydW5rCiszNjI2NCBjNTYxNjhmYWJmOGUzM2VkOWIyOWViYzc0MWUwNjM2MmNiYzJkMzNmIGxlZ2FjeS10cnVuaworMzYyNjUgNWFkY2E1ODE0OWZmNDlkZjA1ZTczY2QxYWRiZjQ1ZjNmYTM1ZjRkYSBsZWdhY3ktdHJ1bmsKKzM2MjY2IDQ2NGM4MDhkMGRjZGEzOGJiODJhMDZlMmY2YjkzZGIyYjU2NjZhZDggbGVnYWN5LXRydW5rCiszNjI2NyA3ZGI0YzU4NmUxZDZjZTI3ZjY3Nzg0ZTdiMTU2OTFjODlmNGUwY2E2IGxlZ2FjeS10cnVuaworMzYyNjggMjU2YjQ5NmFmNGM0YTA3NWQ2NmY4YzE0YzJmNDJkYjQxMDY3OGQ3MCBsZWdhY3ktdHJ1bmsKKzM2MjY5IGJiMDBlMTJlNzc0MTYwNTc3YTlmMmVlOGQwNTI5Y2JhMmJlZmIxNjMgbGVnYWN5LXRydW5rCiszNjI3MCAwZTI4ZmQ2ZmVhMDBjMmJmYzMyYzE5YjAzNGIwNTExMzgzNzc2MjkxIGxlZ2FjeS10cnVuaworMzYyNzEgZDJjMWM3YWU3Y2Y0MzIzNjViY2VjYTcxMjhiNDE4NTliY2E3MWUxOCBsZWdhY3ktdHJ1bmsKKzM2MjcyIDY3ZmJjMjNkY2ZkZDRiOTI2ZmYyMjQ5ZmZmYjQxODI2MGZlM2M2NzEgbGVnYWN5LXRydW5rCiszNjI3MyAwZjU2ZWFkOTY4MTc2NTUyYjk4MDc5YmMxZDVhNWQ0ZGE1MmMxODI2IGxlZ2FjeS10cnVuaworMzYyNzQgNzMxNTRhYjg1NjNhNWMxMTYwNTZmODFiYjFlN2ZmYTFhMTI1NDExYiBsZWdhY3ktdHJ1bmsKKzM2Mjc1IGQ1MDBmNzJmYjFhY2YxYjkzOGM3MmU0OTI2Y2FmY2ZiZWRkYmY1ZDMgbGVnYWN5LXRydW5rCiszNjI3NiA1MDA2OGIxN2Y0MWVhYTFhYjRmYzk5ODhkOWFiZDRmYzlkNDE2MzVmIGxlZ2FjeS10cnVuaworMzYyNzcgNmMxNjYxMmZiMTE4MzgxNTgwZGFmYTEwZjFlMGYwNjM1ODBlZjFkMSBsZWdhY3ktdHJ1bmsKKzM2Mjc4IGI3M2FiMzA5YWRhN2ZiMmI3YTRmMWUzN2I5YzY4ZmZmOWVmOWE4NmIgbGVnYWN5LXRydW5rCiszNjI3OSA2YjFlYTVjMDdmZjczZWVjNWRiZDM2MGM0NGJmODIwYWY0MGM0MGFlIGxlZ2FjeS10cnVuaworMzYyODAgYzQyM2UwMThhMjllMDNlZjI3NjZhNzkzNGU5ODA1ZTZiMzM3MmNiNCBsZWdhY3ktdHJ1bmsKKzM2MjgxIGUzZjgyZGY1NGM4OGUwODM1YmNiN2NjZGQ0OGU0NmU3ZjkxZDExNzYgbGVnYWN5LXRydW5rCiszNjI4MiAxYjlkYTVmZTkwNTM5NGJlYTJmNTE3YzVkZDVjNmQ1MTA2MmE4MGRhIGxlZ2FjeS10cnVuaworMzYyODMgZDRhNTkyMzBlOTNhOTZhNzFhYjU3ZDI5ZTczMTQyMmJmMDg4NDI5MyBsZWdhY3ktdHJ1bmsKKzM2Mjg0IDc1N2FiMjAwZDQ3YTZiYTdkZjBkZjA2NDRjMDlhOTgyYzRhMzM2OGQgcmVsZWFzZTIzLW1haW50CiszNjI4NSBiNTc0M2U0NDczMDkxMjBjY2MxZjBhZWYyNDQ0MDhiZjk5ZTY1ZGZiIGxlZ2FjeS10cnVuaworMzYyODYgM2M1MDM2YjNlOGU2NzViMzg4NzliMjIwYjJiYzEzNzU3Zjk2ZGQ5NyByZWxlYXNlMjMtbWFpbnQKKzM2Mjg3IGRmMTNmZmI4ZjQ5ODYzN2VkMDZhYTM0YWQyNGE0NzdjNDdmMmRiZmUgcmVsZWFzZTIzLW1haW50CiszNjI4OCAxODkxNmNlNDFjMjYwZjJiZTFhOGMyM2ZmYjA0OTA5MzRhYTQ4YTEzIHJlbGVhc2UyMy1tYWludAorMzYyODkgYjg3MTBlNmQ4ZDc4MGRmOTdjYjNkYjFmMzBhM2Q1NGIzZjIzYmZlOSBsZWdhY3ktdHJ1bmsKKzM2MjkwIDA1ZjEyYmMxZTViMzAyMjM1ZGViOGJlMDA2NmYzY2NkYjA3YTMxOTUgbGVnYWN5LXRydW5rCiszNjI5MSAyZmZjZDgzNjgxN2VhYmM1MDc5NDE2YjcyZGNmZDczNzJmNDQ3MWQ1IGxlZ2FjeS10cnVuaworMzYyOTIgNDM4M2RiNzdiMTlhOWI4MDI1ODg3NDdhYzYxYWNhNzdmMDYzYmEwZCBsZWdhY3ktdHJ1bmsKKzM2MjkzIDE0YjQxNTVkOGIwYTQ1MjEyNGZmN2NmZTc1ZWExNzJiMDM3YjNiZGMgbGVnYWN5LXRydW5rCiszNjI5NCA5ZThmN2RmNGE2ZmU3NjAxMTZkYjE4YTI0M2Y0YjY0OTkwN2JlYjA2IGxlZ2FjeS10cnVuaworMzYyOTUgNzk2Y2NiOTA4MmVmMzU2YzM0OTc4MzQ0YWY2NTY2NWM5YWJiOTdjZCBsZWdhY3ktdHJ1bmsKKzM2Mjk2IGZhNzhhYzU2ODMwOTk4NDQ4YmFlY2QyZTNkNzczYzNjYjYzNjI5MmIgbGVnYWN5LXRydW5rCiszNjI5NyBiYzU4NmRiOTk0NWEwZWMwNGY0OWE3Y2ZlZTJjM2U1YTc0NzQ1MGI5IGxlZ2FjeS10cnVuaworMzYyOTggNTBlODQ0YTRlZWQ5MGY2OGZmZTBlMWZhNDRjNjIyMzYwNmI0MjU1NSBsZWdhY3ktdHJ1bmsKKzM2Mjk5IGZlODBmNzcyYmZhMTI5MjBiYTFmNDZjZjkxMmEyMjE5MjdlZjg4MjQgbGVnYWN5LXRydW5rCiszNjMwMCA3N2RmMWNiNDE1MzMyZTI3NmE5NDczZDE3NzM3MjJjMmE2Nzg4NTAzIGxlZ2FjeS10cnVuaworMzYzMDEgYjgzNWQ1YzYxZDg2NDlmNDRiZmVhYjE0ZGFiNDgyNGE5YjVkNjE0NyBsZWdhY3ktdHJ1bmsKKzM2MzAyIGVjY2QwZmJlMGNkNWMyOGMxMzkyNDJjZTVlMmNkODhmMzQzMmMzNmIgbGVnYWN5LXRydW5rCiszNjMwMyBjNmFjZjI2MWQ2MTQ3OWQxODY4M2MwMWRhNDMwZmI2YzQzOTIxYzRmIHJlbGVhc2UyMy1tYWludAorMzYzMDQgZjNjYjk1Y2Q0MTNmNDlmNDQ0ODU3OTAwMjljNGI5YWRhOTQ3N2FiOSBsZWdhY3ktdHJ1bmsKKzM2MzA1IDAwMmFjNjI1OWMyY2I5ZDIyZmVhM2ZhMDk4MTI5MjY3ODFjMzQ0NGYgbGVnYWN5LXRydW5rCiszNjMwNiA5MWNjZTdiYmEzNzI2OTY0ODU5NWNkMDIwZTg1ZDA5MWYwZjgzNzVhIGxlZ2FjeS10cnVuaworMzYzMDcgZmEyM2E5YjE4OTY3NjE3NmI3MDgzYWYzNTFiY2E2MGZkZjU0YjkxZCBsZWdhY3ktdHJ1bmsKKzM2MzA4IDM5MjNkYzkwZWI4ZWJmNzBhMDUzODNhMWU0OGQ5OThkODY0ZDkwNjMgbGVnYWN5LXRydW5rCiszNjMwOSBhYjBhMmI3NGRkZmQ5NjllYTFmODY0NzgwMGEyZDRhMzEzZDQ3YmZjIGxlZ2FjeS10cnVuaworMzYzMTAgNzlkZjRmODdkNjdlN2FhZmEwZTM3Zjg4M2FhNTRiZDFhMjFmMWRkYSBsZWdhY3ktdHJ1bmsKKzM2MzExIGRiNTAzYTI2M2I0MzNjYmFiOGZjNGM3ZmUyMTBjMDI0YTNlMzA0ZTYgbGVnYWN5LXRydW5rCiszNjMxMiA5OWZkZjgwNzA2YWRhZTZlM2ExYmNhMDc1MDc4NmIyN2ZlN2ExOWNlIGxlZ2FjeS10cnVuaworMzYzMTMgMjAyYWUwNTc4ZWJlYjE1Y2U5OGZkMjQ4YjQ5ODRlZjE1NThlMDNhYyByZWxlYXNlMjMtbWFpbnQKKzM2MzE0IGY1NjUwM2E4ZGJhM2M0MWQwNDZmOWExY2YyMThkYmZkZjVjMjA3NzcgbGVnYWN5LXRydW5rCiszNjMxNSA2Y2ExMjJmMjczNmFiODllMTUxZmIzN2JiZmJkYWVjMDY5ZTRmMTllIGxlZ2FjeS10cnVuaworMzYzMTYgOWM4NzUxOGZhZjZiNmM0ZTc0YWM1ODA0NTU1YjRjNmQxOWU1ZDQyYiBsZWdhY3ktdHJ1bmsKKzM2MzE3IDA1NGVkZTAxZTNkMzA1N2UwNzk0YWEwMTlhNjlhZDFjN2FjZjg0N2MgbGVnYWN5LXRydW5rCiszNjMxOCA1MWViNjdhODU2OGVhMWI1ZTdmMjBjZGY0MWI2ZGFmNDUxMjVlNjIwIGxlZ2FjeS10cnVuaworMzYzMTkgNmZlMmQyNDEwMDhhODI5Yzg2OWFjMzU2YTZhYzNmMTQzMDdhNWU2ZSBsZWdhY3ktdHJ1bmsKKzM2MzIwIGZiYmQ2NzI3NDAxYjYxNjJjMzhiMWFjNWI1ZTdmMTU2ZjkxZGYyZGQgbGVnYWN5LXRydW5rCiszNjMyMSAwZGI2M2E3NjVhNzcwMWU5ZWM3OGY1ZmU4ZjEyMWJjMDUwMTFjMDhiIGxlZ2FjeS10cnVuaworMzYzMjIgZjA0ZjA4MWZmMjMxMTA5ZTExNTRlZjc4MjZlNWUyYjhhODViMTAwNiBsZWdhY3ktdHJ1bmsKKzM2MzIzIDg3NDAxNjU4ZWI0NTcyOTY5OGNkMDhjNDE5OWQ5NzM5Zjc0Yjk3MTQgbGVnYWN5LXRydW5rCiszNjMyNCBjNGVlZmZlYTE5NjAzOGIxN2VlNmU3NzRkMTkzMzM2ZTgwNDhiZjllIGxlZ2FjeS10cnVuaworMzYzMjUgMTkxNzk2YjdhMDU0NTZkNTQ0ZmIyZjA1YTI5NDI0ZjdkNGNiMmFiNyBsZWdhY3ktdHJ1bmsKKzM2MzI2IGY1ZjA0Y2UyNTE2MzU3NjE2ODQ2YWQyMDcyZDIzMGYxN2E5MGIyZWEgbGVnYWN5LXRydW5rCiszNjMyNyA2ODJmNzQwODg2MDI4ZmRlZDFmOTNmY2MzOWYwNDU1OTMyMDg1M2IyIGxlZ2FjeS10cnVuaworMzYzMjggOGU3NjhjM2FmMDE1ZDcxMjk1NzQ1N2IzNDkwMTRhYzI0ZGIzNGYwNiBsZWdhY3ktdHJ1bmsKKzM2MzI5IDNkNjg5ZTcxNWRiMjQ0YTkyNTQ2M2Y1MzZiNGU2Njc4ZDVhODljMmYgbGVnYWN5LXRydW5rCiszNjMzMCA2MWY5MDM0YTEwZjcxZjFkZTlhNjBhYjI4NDM5MjFhOTM3MjM5N2U1IHJlbGVhc2UyMy1tYWludAorMzYzMzEgOGU3YzkxZGU5NDkxOTYxNzIxMDM3OTg3NTlmMmU2Y2VmNzY3NGEyMSBsZWdhY3ktdHJ1bmsKKzM2MzMyIGM0ZWQxNGZhYjEyYTM2Yjc1ZDZkMjEyODM1ZTYyNmNhMTJlMTY1ZDIgbGVnYWN5LXRydW5rCiszNjMzMyBlYzkyOGVkMDFhY2M1NWUyNjkxMGIxNDZjMjdhZjVjYzg3ZWIxOGE0IGxlZ2FjeS10cnVuaworMzYzMzQgYjYxYzQxZDE5Nzc4NzA4OGQ1NDY1ZDhkYjAxNzc0NzA1YzQyNzUxYSBsZWdhY3ktdHJ1bmsKKzM2MzM1IDMyOWVlNDgzMGIwNDEyMTRjYWI5NWZiMGM0ZjhhMGVjZGZhYzM0YzggbGVnYWN5LXRydW5rCiszNjMzNiA0NTQ5ZTc1YTYyNDM0ZTQ4MmIyNTAzMWU2OGFmMjQyZTNiYTQzZGIxIGxlZ2FjeS10cnVuaworMzYzMzcgNWU0MWNiZWMwNDY1M2ZmNTFjMTUzNmQzZjFjNzZhNzc3OWU2M2VlOSBsZWdhY3ktdHJ1bmsKKzM2MzM4IGY1OGNjMzM0ZDE1YzQ2MmM1NjVkNmE4MzM1NzU5MDhmZWNmYzRmM2MgbGVnYWN5LXRydW5rCiszNjMzOSAxMGU3NWVhNTk2MDU0ODMzYWE3ZDk2NjM4NmRiMjg5MTQwNWRkNzM2IHJlbGVhc2UyMy1tYWludAorMzYzNDAgNGJmOGZiMTE4OTRmNGI4MWZhZjc0ZGIwMzYzNTVkYzMxYzgzNGY2ZCBsZWdhY3ktdHJ1bmsKKzM2MzQxIDczN2U4OTJhMmMyY2Y2ODYwNThiYTExYTg4ZWJkMzFhMWY0YWQ5MjIgbGVnYWN5LXRydW5rCiszNjM0MiBjYWZkMTM0ZmMxY2Q0NGI2OTljZTQyYzg4MDZjNDBkODNhYWM3YzU3IGxlZ2FjeS10cnVuaworMzYzNDMgZGE2M2UyZDZlYjhhM2QxZjBlYjM1MmViNGE1OWFlOTZmM2ZhY2IwNCBsZWdhY3ktdHJ1bmsKKzM2MzQ0IDk4N2UzNmFmYjg3OWQyNjY3NzUxZWJhYzI0NDhkZjdiYzRkZDIzZWIgcmVsZWFzZTIzLW1haW50CiszNjM0NSBlYzVkMGU4NzM5NjQxODUyYzgxYzAwN2NiMmRmYzhlOTcxMGU1ZTc4IGxlZ2FjeS10cnVuaworMzYzNDYgNzhiZDI1YjQyZDQ2MzE0MmM4NDBkMDFmMGNjYWMzZWEzYTE2YTllNSBsZWdhY3ktdHJ1bmsKKzM2MzQ3IDBkYTY2MGUwNWU2OTBkY2ExMDhiZjY4MWRiMmNjOTI2N2U4YjU4YWMgbGVnYWN5LXRydW5rCiszNjM0OCA2NzUzOWNmY2YwOWZlOGI1MzRhZTQwZWJkOWZhNmZkMzAxZTZhNGYwIGxlZ2FjeS10cnVuaworMzYzNDkgMjQ3NmE4MzM0Mjg2YjdhMGJmZTEwYWNjY2MzOWU3ZTMyMWYzMTExNSBsZWdhY3ktdHJ1bmsKKzM2MzUwIDI0NTFjOTU3MmVkZjVjMDA5NTIyY2U3MDc0NjJmZmZiOTNhODlkY2IgbGVnYWN5LXRydW5rCiszNjM1MSA4N2QxOTZlMWMyZDAxZDU4ZjA4N2JlYmRiNDQ1NGFkMDdjZjY1MTVkIGxlZ2FjeS10cnVuaworMzYzNTIgOTI4MjBlYTVhZThjYmUxM2RhMGIwMjNlN2FiNmJkMGFiNDdlNzJmZCBsZWdhY3ktdHJ1bmsKKzM2MzUzIDIwMTk4NmQ2ZDlkNjM1MGNmYjJhNjU4Y2RjNmMzOTcyYmRlYzdjNmIgbGVnYWN5LXRydW5rCiszNjM1NCAxNjM0ZjYwMTE4ODg1OTk1OWExNzhhZDc3N2U1OWUzNmNiNGNlOTU4IGxlZ2FjeS10cnVuaworMzYzNTUgMzI0NTVkYjk3MTM1NzZjMjk3ZWI4Y2VjZTViZDMwZTc1NTc4ZjU3MyBsZWdhY3ktdHJ1bmsKKzM2MzU2IDQzYjgwOTgxNWM3ZDc1OWMxY2VkOWM3NjdjYjRjZTczNzEzZTJkYjcgbGVnYWN5LXRydW5rCiszNjM1NyA3ZmQ2Zjg3ZTVkMWZjZWJhMTU4ZmUxZGNmNTQ3YjA5NjViMDMxNDk1IGxlZ2FjeS10cnVuaworMzYzNTggNGZhYjRhNWNjZTJmNWQ0NDBlNGVlNTA1YTk2M2ViYjkyNmMzMTZiZiBsZWdhY3ktdHJ1bmsKKzM2MzYwIDdlNDRmM2E4YjU2ODdjZmE2MTJlMmM0NWM4MTg1MGJjZDc0MTU1MDkgbGVnYWN5LXRydW5rCiszNjM2MSA3YWQ2ODU4N2M5YWNiNjI1MzQ1YWZlNzc4MjBiMzliMTczMzAwMDA4IGxlZ2FjeS10cnVuaworMzYzNjIgNzc1OTcwNGU3ODcyOTI1MWE5NTRkZjcwZDlhNTE1MGM1MTEwNGE0NSBsZWdhY3ktdHJ1bmsKKzM2MzYzIGVjOGU0ZWQyYjE1N2NjOWNiNzMyNTcwMDFkODE3MjJkMjFjNTRlZmYgbGVnYWN5LXRydW5rCiszNjM2NCBjNGQ1NGM0YmE1NTQzZWE4MmNmNTc0NGIxNDU5OWVhNWU1ODk2OWY1IGxlZ2FjeS10cnVuaworMzYzNjUgNDY5M2ZhMTllMjJiZGNhMmJhOTYzNTY0MDhjZjVkODQ3MmRlNWY0OSBsZWdhY3ktdHJ1bmsKKzM2MzY2IGQxZmI0YmQ0ODkzNjA3M2MyODQyYjA3ZTdlODZjNDQyMjk5MGY1ZTAgbGVnYWN5LXRydW5rCiszNjM2NyBkNDI3NDlkYjkzMzkyNTJjYTM3MDc4NjA4ZGY2ODhlYWE5MjczODA3IGxlZ2FjeS10cnVuaworMzYzNjggOTI4OGQ1MjRkNzU3OTk3MjI1YWJhOTY5M2VhNDkzZTVjODBhYjgwYyBsZWdhY3ktdHJ1bmsKKzM2MzY4IDkyY2E2NThmZDQyMDA5NWI2Mjg0YzljZTZlOTA4MmE4MDI4NWVjOWMgbGVnYWN5LXRydW5rCiszNjM3MCBiZTFhMTJkMGI4OTVkMjUxNjkyMDI1YWIzOTQ4ZDdhYTc5YjY0NTVlIGxlZ2FjeS10cnVuaworMzYzNzEgZjNmMTFkODYzYTAyZjYxM2FmN2Q1NzNmNTZkNGIxMjdlMmM4Yzc2NyBsZWdhY3ktdHJ1bmsKKzM2MzcyIGY0NmQ0OWUyZTBmMGIxOGZkOTMyNTlmNjc2YjU1Yzg1NTRkOTcyMTEgbGVnYWN5LXRydW5rCiszNjM3MyAzNzA2YTM3MDRhZWFjMDJhNTJkODY0YTEzNWU0MTNhZDRjMWJjOWY4IGxlZ2FjeS10cnVuaworMzYzNzQgYzA5OWFhNzY3OTUyZDk4YTZkN2EyNjgxZDUzMDE4N2IzNDMwZjExMyBsZWdhY3ktdHJ1bmsKKzM2Mzc1IDc0YzNiNzEzZTM1YTZhZmQ1NTg0N2E3YmVjYzU1NDc1MmU2ZTFkNDcgbGVnYWN5LXRydW5rCiszNjM3NiBkOTA5YTBkZGQxOTMyZGUwZmJiZTIxOTQ0Yjc5ZmYyN2EzYzc5MjIxIGxlZ2FjeS10cnVuaworMzYzNzcgZWMyODU2M2IwNTJlOGZkNmI5ZjRhNzQxNjczMjI0NjNkODQzMWY0ZSBsZWdhY3ktdHJ1bmsKKzM2Mzc4IDAyOWRmZmI2M2Y0YmYxY2FjYjc5NzExM2ViMzAzNDhlZTg4YTMyMDcgbGVnYWN5LXRydW5rCiszNjM3OSA3ZjRiNjZkYzQzNzYyZGE4Y2VmZjc4ZmI2OTE5YTQ1OTc3MzFiNWRmIGxlZ2FjeS10cnVuaworMzYzODAgZWMxYjU2YjQzYWYwNDY1ZDRiZTM3YTU4ZjI2ZWNlNzE0ZjRhMWI0ZSBsZWdhY3ktdHJ1bmsKKzM2MzgxIGU0Yjk2YzNhM2UxMjI5ZGFhNzgzY2ZjZjlkOTMwZWEyNjI2MDUxYjAgbGVnYWN5LXRydW5rCiszNjM4MiA2ZjM1MWIxYmNmNTM0YzhjYWFiMDI0YTFhODQxOWZlMmZkNTI4ZTE0IGxlZ2FjeS10cnVuaworMzYzODMgYTE2MGI5NjY5ZGIxZTMyMGNlMmNhM2ZmZGRhN2VhN2NjZTRjZWI5OSBsZWdhY3ktdHJ1bmsKKzM2Mzg0IDY5YmIyNDFiMDU2Yzk2ZjE1MjQyM2FhY2ViZTQ0ZTUxOTYzYzk1NDUgbGVnYWN5LXRydW5rCiszNjM4NSBjZjEzOGM1NWQ0MWJlNmJjNmVkY2YyYzk3NDNmMzU3ZmE3MzAxZjM1IGxlZ2FjeS10cnVuaworMzYzODYgMTExODY4M2NkNGQxY2Y1YzA1ZjZjN2UwZDBhMTE0NjNmOTZlZjlhNyBsZWdhY3ktdHJ1bmsKKzM2Mzg3IDNhYWRmYzNmYzRlNmZkYjgwN2ZjNmFhNWI3MGNkNTNjMzQ5ZmFkZDQgbGVnYWN5LXRydW5rCiszNjM4OCAwMDY0ZjU1YmFmYTdjOTY4NzMzODk4YjI0ZDkzZGNkNDAwZmRjMDA4IGxlZ2FjeS10cnVuaworMzYzODkgODQ0ZDk5Yzg4OGJiYTE0ZjY1MzA4YjMxNmNkZTY1YmFjNDExM2VhNyBsZWdhY3ktdHJ1bmsKKzM2MzkwIDVjMjVjYTZmZmFmOWU1OTU1NmVhNjc0YWU2YzMwODU1ZTMzNTUzNDMgbGVnYWN5LXRydW5rCiszNjM5MSA3MGIxNTA0ZTE3ZmZjZjZhMGQ5OTcwOWNmZGIzYzMzZDkwNjFmMGQzIGxlZ2FjeS10cnVuaworMzYzOTIgYmVjMGM3NjE4NjI1NDFlNTg5NjVjMDY4NmY1M2M1M2EzMzQ1N2M2YiBsZWdhY3ktdHJ1bmsKKzM2MzkzIDhlYTJjYjFlYzU5ODhkOWEzMTJjMTY0YmE2YjIyMzgyYjRhYjVhNDYgbGVnYWN5LXRydW5rCiszNjM5NCAxNTNjNTE3YmM2ZTk2ZTc0ZmMyMTMxMzBkZDg5OTc5ODc0NzQ5Y2Y0IGxlZ2FjeS10cnVuaworMzYzOTUgMjI4MzIzODk1MjcxZTA0NmU2NzVjMDQ0YzJjMzllZTJmZThjMDYwOCBsZWdhY3ktdHJ1bmsKKzM2Mzk2IDUxMWZmYzYyYjI5OGE3ZjExYjM2MWYxNTM0YWIwOTU2MTUyNmM0N2YgbGVnYWN5LXRydW5rCiszNjM5NyA4M2NiYzAyNWJmYzc0ZTRlMThhODg3MTExODFiODc2YzQ5MzQ2NjAxIGxlZ2FjeS10cnVuaworMzYzOTggZmVmNzkxMWE1NzA1Y2FlZjcwNTkzOGEzNzlmZTE4ZTFmMzFkZjIyZCBsZWdhY3ktdHJ1bmsKKzM2Mzk5IDIxZmQ2ZTYyY2QyNzZiMjcyNzkyNjA3NDc4OTFhOTljNDhmZWIxZTYgbGVnYWN5LXRydW5rCiszNjQwMCA0OTJkYzhiOGU1OGVjMTVlNzE2N2FhMjY3ZGY2Yzk0MzQ5MGY0ZTIwIGxlZ2FjeS10cnVuaworMzY0MDEgMjMwMzk3YmM3ZTMyMDQ2Y2FiNWIwN2Q4NWY0NTQxZDA0ZmMwYzU2ZCBsZWdhY3ktdHJ1bmsKKzM2NDAyIDBkZDQ3M2E4ZTUzYzA5MjI3YTFlOWQ5MTE2YmMxOTllZTNjODVkZGIgbGVnYWN5LXRydW5rCiszNjQwMyA0ZDJmNGEzOWVjNWVkMjc0OTA0YzE3Mjc5ZDMwZmE5ZDNjMjU2MTFiIHJlbGVhc2UyMy1icmFuY2gKKzM2NDA0IDczNjJlMzcyYzg5NzBkMTYzMGY4MmNkYTM1NDZmZDM1YmE2Mzg1Y2MgbGVnYWN5LXRydW5rCiszNjQwNSBmMmYwYzVmZDliNmM5ZDNmMzFmYzE3ZDNlN2JiZTRiMTczYjgxMWZlIGxlZ2FjeS10cnVuaworMzY0MDYgYTY0YmFlNWMzM2I3ZTc2YTA4NDYxYWZlOGQyMjgzYjVjODM4MWU0MiByZWxlYXNlMjMtYnJhbmNoCiszNjQwNyBkZTMyNmQ3ZTc0ZThiODM3OTk4NTExMzhkNzRhMWU2NWFiNzA1ODE2IGxlZ2FjeS10cnVuaworMzY0MDggYTAzYmNhMTY1NGQwYTJmZjgwMzdjZTI5OTM0MmVkZmMxZTIwZmU1ZiBsZWdhY3ktdHJ1bmsKKzM2NDA5IDY3YTg0YTMzZDBmOGMzNDNjMGYyZTAwNTkyZDQ2OWFmYWRiZDYyNjQgbGVnYWN5LXRydW5rCiszNjQxMCA0YmU0YzYzNjczZWIxNWM5MzFiZGFjM2FiNTA0YTcxOTFlZDQwYmY5IGxlZ2FjeS10cnVuaworMzY0MTEgM2U5MjU5NTlmYTAxYWNlZGM2ODc3MzgxNjdkZmVmMzdmMDEwYzQyNSBsZWdhY3ktdHJ1bmsKKzM2NDEyIGM3OGZjZGQwMjQ2NDQ2ZGYxMzM0NWM0ODFkMmYyZWY2Yzg0ODM2ODYgbGVnYWN5LXRydW5rCiszNjQxMyBmM2Y0NzY1ZWZlNjY4MzM4ZTIzZDNjMzUyYTUxY2VjZTk1ZTljMmMwIGxlZ2FjeS10cnVuaworMzY0MTQgNWIyNWM2NDQ2YWViMzNmNzM2NDRkYzlkNGMxZTJiNDg0NTgyMmQwZSBsZWdhY3ktdHJ1bmsKKzM2NDE1IDZkN2FiMGNhZDcyZGUxNmNmYzFkNzkyZjMyNDQ1MGYwNTg4NzJlODkgcmVsZWFzZTIzLW1haW50CiszNjQxNiBmZGI5Mzc3NTEzZTQyYjI5OTU1NGNmZDQyODg1NGE4NTNkYjYxY2Y1IGxlZ2FjeS10cnVuaworMzY0MTcgZjZiNDVkMWNiMGEyYmY2N2IxMWFiNmY2NjE1NmE2MDdmZjNkY2QxOCBsZWdhY3ktdHJ1bmsKKzM2NDE4IGI1MjdjYjFiMmI5ZWI0YWQ5NDY2Yzk4NjY1OTI3ZTUwZjk2YmYwYTIgbGVnYWN5LXRydW5rCiszNjQxOSAxYzVlZDgxZmZhMjM1ZGI4OTBmMjcxODhjMTk5ODI5NjNlNGM4Y2IzIHJlbGVhc2UyMy1tYWludAorMzY0MjAgYzE2YjAzYmExYzIyYmU0MDQzZjQwNTlhYmQ3MTNkZmQxNzYwY2RiYiByZWxlYXNlMjMtbWFpbnQKKzM2NDIxIDkwZDVjZWU3ZTY2ZTQ3YTk0OTgwNmQyZWFhNDk3OGI5NGFmYmY1MDggbGVnYWN5LXRydW5rCiszNjQyMiA1OThhNWNlNjMzMjJmYWUzYWNlNmI0OGUwMTk3ODI2MWE1YWI1MmU1IGxlZ2FjeS10cnVuaworMzY0MjMgNTA3NDVkOTlmYmYxNjA4OGQzZDEyZGZhNmYyNzg3NTI2OWI0MTEyMCBsZWdhY3ktdHJ1bmsKKzM2NDI0IDVlMWY1NWVjMTdkNmM3MTBhMjAzNzZmMzY4NTlhMmYzZjRiOTIwMWMgbGVnYWN5LXRydW5rCiszNjQyNSBhYjk3OWZmOGIwMmFlY2E1NDc5OGFjYzE2NmE1OWM0MTQ1OGE1MTFiIGxlZ2FjeS10cnVuaworMzY0MjYgNzk5YmNkZmYyY2RjMDU2MWI2Mjg2NTUxMmYzODIyOTNjNTg3MWQ5ZCBsZWdhY3ktdHJ1bmsKKzM2NDI3IDA4ZDkwNDYwYWI0ZDYyNDg3MGJhN2FmYWIwY2YyOTQzODdmYmU4YzAgbGVnYWN5LXRydW5rCiszNjQyOCA1N2QyMWM1ZTBlYjhhZjBiMmJhMzU2MjMyNDRjM2Y1NjRlMzc5YzAxIGxlZ2FjeS10cnVuaworMzY0MjkgY2MxZjc0ZDE5ZmNiYjdjYjE5MTZhOGU0NGU2MTVkNGE3ZWMwYjdiOCBsZWdhY3ktdHJ1bmsKKzM2NDMwIGM0MzE2ZGYyZmVkNDY4ODVjMjMzYzVkZDJjOGVhNDE4OTNjZmJkYjIgbGVnYWN5LXRydW5rCiszNjQzMSA2ZTljMTgyOTU4ZjkxNzBmYjI5ZWIzZTk3Mjc2YmUyMjg5YTQ5NjMyIHJlbGVhc2UyMy1tYWludAorMzY0MzIgMmIxMGUyYjVlODFlZjIzZTZhNTdmNzJmOWRlZmY1MWVmZGU1MDc1YiBsZWdhY3ktdHJ1bmsKKzM2NDMzIDRmMjQ4M2FiYjYyM2FmNjQwOGQ4NWRkZWJhNTYxYjk5NjNjNzZhNzIgbGVnYWN5LXRydW5rCiszNjQzNCA4YjMyODhmNjA3ZTFmODI0MDcwY2Q1NzA4OGIxYTNlZGU2M2VhYmM5IGxlZ2FjeS10cnVuaworMzY0MzUgNTU0NmM3YWUyNGY3MGQ3ZjVjZGQ4Nzc0Y2FiMDk1OWM5NDBmMzE5OSBsZWdhY3ktdHJ1bmsKKzM2NDM2IDMxYjY1ZDgzNzFhZjhkMjZhZWYwZTE4NDI5Nzg3MzcxZjhjYTczMTkgbGVnYWN5LXRydW5rCiszNjQzNyBmMDgxZjNhNTY4ZmE4ODdlMTViZmFkZmFmM2FkNTkyZTQzMTVhNGFlIGxlZ2FjeS10cnVuaworMzY0MzggMDllYWVlNzI5NzNjNTBlYmVlYzhmZmEwODNiZmJkZmIzNjk0YmIwZCBsZWdhY3ktdHJ1bmsKKzM2NDM5IGM1MzhhNzY0NGZmYTZjYjc4Y2VkM2NiNmUzODQ1MDliMDI1YThiZTAgbGVnYWN5LXRydW5rCiszNjQ0MCBlNmY3ZWY3MDczYzY3OTYyMGQ5OThkYmUwNGE2NjFmYWQzM2VjMzY4IGxlZ2FjeS10cnVuaworMzY0NDEgYWZiNDAzMzgzZjVkMDdhMmZkN2VhNmY4ZTc1NTM4MzA5NGNlNDU1MSBsZWdhY3ktdHJ1bmsKKzM2NDQyIGY2MDNlNWU5NmE0ZjdjODA5NGNkZWZhZTY3OTNhM2ZjMmRiMTZlOTYgbGVnYWN5LXRydW5rCiszNjQ0MyAyZmQ2OTI0MDcyOWFhZTUzZjlkMzRjNDhhNzdmZDA3MWE4NmNiY2UyIGxlZ2FjeS10cnVuaworMzY0NDQgNmFiYTZkMDc1ODk5YTYxODdkODNmNjc3NDEzMjNmNTQ1MzhkMjFiZCBsZWdhY3ktdHJ1bmsKKzM2NDQ1IDE0NDYwOTVhOTcxYWI4YTM1NmY1ZTZjYzhlYmE2MmZiMGI0MTliY2QgcmVsZWFzZTIzLW1haW50CiszNjQ0NiBmODZiZmMwM2U3NjM2NTQ2NjQyYWVjOWUyOWQwNjczNjNiZjA0Mjc4IGxlZ2FjeS10cnVuaworMzY0NDcgNzMwMTZiZDAxYTcxNGFmYWM0Y2E5MDQzZmUzZGFiNjhjMGIxM2VkMSBsZWdhY3ktdHJ1bmsKKzM2NDQ4IGQ0MmVmYzJiNDVlOTVjNjhmYjQ2MTMxYzMzMWUxZjFkOTc1ZTNhMjggbGVnYWN5LXRydW5rCiszNjQ0OSBmOWFkNWQyMDJlOGVmNDQyMzExNzVhZWEwNTc4ZmY3MTBiNjVlZmQ2IGxlZ2FjeS10cnVuaworMzY0NTAgNDU3ZmQ0MWM5NjFkMmZmOGEzMTY3ZTc3YWU0NDk5N2I5ZDhmMjFiYSBsZWdhY3ktdHJ1bmsKKzM2NDUxIDUxMzk4OTJhZGU2MjFjZDhjNjc3NjBhYzRmY2VlMDUwYzU5Y2NiZGEgbGVnYWN5LXRydW5rCiszNjQ1MiA2MTczZDk3YjgyOWU2ZTRjMTJkMjk1ZTA0MTdhNTRiNjhkZDNmZDdhIGxlZ2FjeS10cnVuaworMzY0NTMgMDU5ZGFlMDY1ODViZWZiZWFlZTI5OTNhM2M5OWQzMjYwMzUxNDYyNCBsZWdhY3ktdHJ1bmsKKzM2NDU0IGNlMzM5NjdhNGFiMGYzMzYzOGU1MTFhYTZiZWFjNmRjZjEyMDY5NDkgbGVnYWN5LXRydW5rCiszNjQ1NSBjZjBjOWUxNWY2ZjRkNjQ4NGZlZDRhOTEwOWQ3MzUxOTJkZGY3ODZlIHJlbGVhc2UyMy1tYWludAorMzY0NTYgYzk4NjlhMThlNjIxMzJkM2Y4YTUzZjM3ZmJiMThmNTk0MzNmMWUzNSBsZWdhY3ktdHJ1bmsKKzM2NDU3IGFiMThlZjgzZjVhNjJhYzRhNjFmZDE4NWM3OTE5YmJkYWNkNzZlOGIgbGVnYWN5LXRydW5rCiszNjQ1OCA5YjVjNjM4MDJiZjllMmFiNjg2NDVjMjVmYTM1YjM0NDIzZWUyN2I4IGxlZ2FjeS10cnVuaworMzY0NTkgNmYzNmUwMmIxZjY5N2QwY2MzNDY2Y2QzNGViZmUxOTZkNzI5MWViNyBsZWdhY3ktdHJ1bmsKKzM2NDYwIDk5YWM1MzBlOGIzZjU3YjQyZjgxNWM0OGM3ZmY4ZWUxMWEwMDY3ZjkgbGVnYWN5LXRydW5rCiszNjQ2MSBlZjIzOTQwMTRkMjQ1ZTUxYTQzMjM4M2VmZjAyNDdiOTFjNmVjNWE3IGxlZ2FjeS10cnVuaworMzY0NjIgMmRiZjU5NmUwNTI0ZTk1OTEwMGYzM2E4MmFhZjlhYzhmMzMyZWYxMSBsZWdhY3ktdHJ1bmsKKzM2NDYzIGZkZTQzMjdjZDQ3MjRkNGEwODY5OWRkNjA2ZWQ4ODdlN2Q1MTllOTcgamltLW1vZHVsYXRvcgorMzY0NjQgZGExODIxMGUzMTFjMmMyMGUyYzI0NTgwZWVmOGNlMzFkOTZjMDI4OCBsZWdhY3ktdHJ1bmsKKzM2NDY1IGQ4ZjMxN2NhODBiZDMwY2JmNmM3ZmQyYzY2MDNjNmZjMGQ3NmNkNzEgcmVsZWFzZTIzLW1haW50CiszNjQ2NiBkYjk5NDg0OWNkZjNmYzQxMzZmMTU2ZmE0NjE2MDk0OTUyNmM3ODFmIGxlZ2FjeS10cnVuaworMzY0NjcgY2YwYmFlZmU4ZDQwMTMwYTMyODc4ZTZjZWI5YWNmNjJkNTkzMTM0NyBsZWdhY3ktdHJ1bmsKKzM2NDY4IGZiYjkwMWQ2Mjk3YjU1ZGMzZTNlNzkzNzYzMmQ0M2VmZDI5ZGVlNzAgbGVnYWN5LXRydW5rCiszNjQ2OSBmZjU5YWQ1ODU2OGUxZjVjYTM1NWM3YTlkM2RjZjQxZGRmY2RjZDM1IGxlZ2FjeS10cnVuaworMzY0NzAgZTg5OTA2MGIxZjA1MWVmMTRiYWQ2MDk5OTYyMWNlMWIxYWViN2ZjOCBsZWdhY3ktdHJ1bmsKKzM2NDcxIGRjMzJlMGE4YTBlZGIxNWYyY2ZjMjgzNWI2NTAyOTg4MDI1YjczYmQgcmVsZWFzZTIzLW1haW50CiszNjQ3MiA5YmMyZWVjMTQ3OGI2YmE1NWYwYjA3ZTY4OTEyZTg1ZmVlNTMyODEwIGxlZ2FjeS10cnVuaworMzY0NzMgOWMzNDg1MjZhNjk5NDA3YmNmMzExMzQ1NThhODI5MWFhZThhM2EzNCBsZWdhY3ktdHJ1bmsKKzM2NDc0IDZjMWM1OTU3ZmVkNWY5ZTBmZGM5ODJiNjczNWZkMDJjOTFmMWU1ZmYgcmVsZWFzZTIzLW1haW50CiszNjQ3NSAzYzJkOWU3YWM1YTFmOTlmODhjY2EwYzViODI4NTVhMWE4ZmE2YWNkIGxlZ2FjeS10cnVuaworMzY0NzYgN2JkMDRhNGQyOGI5MzFmMTg5YTYzOTRlZGQ5MGM1ODViNGJiNDM0NSBsZWdhY3ktdHJ1bmsKKzM2NDc3IDkyOTQ0NGNhMjJkOGY2ZGZlYzllZGVhMzk5YzhlN2NlZmVlMmNiY2EgcmVsZWFzZTIzLW1haW50CiszNjQ3OCBmNzI1YTE5MTBkMGQwNzczM2I3ZDUxNmIzNTVjNzlmZGRhNzU4OWYzIGxlZ2FjeS10cnVuaworMzY0NzkgNDYzYmY1ZWJmOGEzM2FiNDMzM2Y0NGQ5NzY2NzdmNjkzYzRhNzEyZiByZWxlYXNlMjMtbWFpbnQKKzM2NDgwIDM5MTkzNzU3MTA2NWFlMTI2NGFhNWE0OGNiZjg3OTYzODVjNzJkOTggbGVnYWN5LXRydW5rCiszNjQ4MSBiZTE0MjdjYjA0MDZmNjI5ZjczYTE0NGUxMjQzMWI4ZTFjYTE4NzUzIGxlZ2FjeS10cnVuaworMzY0ODIgM2NjYTI4YWIzODU0NDIxNThiMGM5MmRmZjVhMmZhYWYzZTJjNTViOCByZWxlYXNlMjMtbWFpbnQKKzM2NDgzIGNhMmFhNDNiYTM4YjdhZWYyMzczMTRlYTZlZTJjZjExNWE1OTkxMTggcmVsZWFzZTIzLW1haW50CiszNjQ4NCA1ODg0M2YxODZlODBmZGVmZTQ5MWEzNDlhYzk1ZjQ3YzRiN2VkYjdjIHJlbGVhc2UyMy1tYWludAorMzY0ODUgYzEzMWM3ODhhMDZmYWM4MTg1MzNkZDdiYWMzNjgxZWJlZmNkMjc4YyByZWxlYXNlMjMtbWFpbnQKKzM2NDg2IGU0ZDlkODQwY2U2ZTU1OWNjM2VlNWMzZjVjZTFjZjVkZThmZWQ2MDggbGVnYWN5LXRydW5rCiszNjQ4NyA2YzVmMDFlYzJmNzViNmUxNDc5ZjQ1MTUxYTRiMTE0ZDhiYjNkZGI4IGxlZ2FjeS10cnVuaworMzY0ODggOGJkNjdiYWQxNDNjZGM1NjJkZTYwZDk2ODVlOTdjMTMxZjU3NzljYyByZWxlYXNlMjMtbWFpbnQKKzM2NDg5IDNlYjZkMjUzNjBhMzdhMDIyOWI5ZmQ1MDEwMWMxNDRlZjY0MDA3MTUgbGVnYWN5LXRydW5rCiszNjQ5MCBjMTNkOTExYWUwNWJjMGYzNjVhOTcwMDMxODk2MjgwZmU4Y2M0NmMwIGxlZ2FjeS10cnVuaworMzY0OTEgOTQxYzIzOWNiNmQyOTY4YzAzMjA4YjdmMDQ4MDc1OWQxYzg1MjRhNCBsZWdhY3ktdHJ1bmsKKzM2NDkyIDU5NDk5NmNhZmYxMGQxM2I2NmQxMjcyZGJlODQxNmJhOGQ1M2NjN2EgbGVnYWN5LXRydW5rCiszNjQ5MyAyNzJhYjVhNTRiOWViYzljNjFlZDFhNzJmYzg1MTU5NjA1NDFjODJkIGxlZ2FjeS10cnVuaworMzY0OTQgYTFhOTc3NmZhYjUzZWEyZjY0MDI0ZWM5NjEwYzA1YjRmOTBiZGZhZCBsZWdhY3ktdHJ1bmsKKzM2NDk1IDUyYmVhZmQ5MzZjODBlNThlNTMzZmU3NmIzNDQ2M2Y1OGFiYTA1M2IgbGVnYWN5LXRydW5rCiszNjQ5NiBkMmU2NmVhYTVmNzRlODFlNzg4OWM5MTFiYmRjZThiOWY0NDEyZWM0IGxlZ2FjeS10cnVuaworMzY0OTcgOTc3NjhkODczOTRhNDQxMDcyNTczZGMyYzM1NzZjZmI4ZDY3MDcwNCBsZWdhY3ktdHJ1bmsKKzM2NDk4IDM0Nzk2MTBmYjI4OGQ5OTkyYmM4NGI4NDhiY2RkOGI3ZjAyNTY0OGYgbGVnYWN5LXRydW5rCiszNjQ5OSA5NDk0NzNmYTQ4Mjg1ZTVjODZiZjJiYzQyYTc5YjczZDc4YjIxYTY1IGxlZ2FjeS10cnVuaworMzY1MDAgODhmNTQwNTc2MWFmNzYzNGM3MTQxMTRjMTVjYWJlZGRjNTM1ZmVkNiBsZWdhY3ktdHJ1bmsKKzM2NTAxIDY4N2QyZWNmYTY0ODVlOGI3NThiMmZhMTllZDUxNDkzMDNiYWI2OTkgbGVnYWN5LXRydW5rCiszNjUwMiBjYWRhMmU5YjY4NWM4OWU5Yjg3MGY2ODdlYjE5YTY1ZjcwMTNmMTg4IGxlZ2FjeS10cnVuaworMzY1MDMgNTU4MWQ2OGIzYWU5ZTcyMzg0ZGY1MWFmZjY5MjUwMjJmMWQ0MDI3ZCBsZWdhY3ktdHJ1bmsKKzM2NTA0IGQzZDQyNjQ4M2Q3MTA0M2IzYjU5N2ZjYTVmMDc4NTBmZmU2MWE5ZjUgbGVnYWN5LXRydW5rCiszNjUwNSAxMDRhN2ZjMDZiZGZhMmE0ZGVkNGQ1ZTc5OTBlMjhkODAwZjg4ZDEyIGxlZ2FjeS10cnVuaworMzY1MDYgYmM0ZGQzMWM3M2ZkZjRmODU2ODVlMTQ5ZGRjNjg2ZWZlODBlZTk1NCBsZWdhY3ktdHJ1bmsKKzM2NTA3IDhmY2YyMDUyZDE2ZTIwNjIyOTJhODdkMGM4YTk2YzU2NzYzYTc5ZWMgbGVnYWN5LXRydW5rCiszNjUwOCBkNjRkY2ZiNDk1YjJiNzE1ZmRkMTZjYzNmZGVhMjA2NThjNzZkMGI3IGxlZ2FjeS10cnVuaworMzY1MDkgMzVkNDBmZjY5ZWI2MjY0ZTliOTFlODYyMDYzNDdjM2ZiYjYyOTRjZiBsZWdhY3ktdHJ1bmsKKzM2NTEwIDlhM2I0MjE5YmNiZWRlYmE0OWM1MWJmZjc5OWNmOWJiYTA1MzY2YjAgbGVnYWN5LXRydW5rCiszNjUxMSBmYWU0NjA3OTRkM2QzOWY2MGE5NDBjZDk3OGU3NWNlZTVkZDdiMjhhIGxlZ2FjeS10cnVuaworMzY1MTIgMTM5OWRjNjE2NzIwZjRiMDNiM2NkYzIyYWNkNjE5M2ZiY2VhM2EwNSByZWxlYXNlMjMtbWFpbnQKKzM2NTEzIDU3N2E5ZTRjODJmYjcxZTI2YmVjOWU5MjJhNDg4ZjNjYmY3OTU5Y2EgbGVnYWN5LXRydW5rCiszNjUxNCAyYmY4NjlkMzFmMGNlNjE1ZTdjMzM4NWNjMDgzZDYxNWY0YWUwMjM2IGxlZ2FjeS10cnVuaworMzY1MTUgNWZiNzhhMmQ5NGYwYWRlMGQ5YTUyYWE1NzNhMmRjZjNjYWZmNjRiMiBsZWdhY3ktdHJ1bmsKKzM2NTE2IDIxMWRiNjdjY2QwOWVkOTQzNGU3ZjA5MmVmZjJhNmQ3NzdlOTRjNWQgcmVsZWFzZTIzLW1haW50CiszNjUxNyA3ODBhMzM3ODc0NThlY2UyMTNiMzY2N2NiODdkODEwOWVlYTE5NmE5IGxlZ2FjeS10cnVuaworMzY1MTggM2MzODJkOTBmMzAyZDNlNTYyOGZmNzYzMWRmN2ZiOWM0ZWI1MDNiYiBsZWdhY3ktdHJ1bmsKKzM2NTE5IGZmMjY3MTRiZjg2ZGM0YzIyYjRlMTU4YzE2NzM1YjY2MTRjOTg4MGYgbGVnYWN5LXRydW5rCiszNjUyMCBiZTZmMmUxYTc4Yjc2M2MyNmJiMTJkMzViOTczYzY5NjJhNTQ5MzY3IGxlZ2FjeS10cnVuaworMzY1MjEgNDliYWFkN2IwMzJlMGIwYzRkYWJmZGZhZTQ0MDY0YWI0NGE2MzFlOCBsZWdhY3ktdHJ1bmsKKzM2NTIyIDc3NDJmODVhMzcyMzhlMmM1ZWIwYmMwOGQyY2M0MzBlYzFiNjUxNjkgbGVnYWN5LXRydW5rCiszNjUyMyBkYzJmZTc3ZGQxNjdlZGM4NjUxZjUzMDI0YTA1MjY3YWY3OGM0MThmIGxlZ2FjeS10cnVuaworMzY1MjQgMDcyOWQxZGI1MTE4MzgwZGQwNzAzMjA4YzI2ZTY5OGRmNGZmYzRkYSBsZWdhY3ktdHJ1bmsKKzM2NTI1IGVkMzY2MjFiMTI2YTFlNzk4NTQ0ZDNkMmFhMTUxMTBiNGRmZDBlZTQgbGVnYWN5LXRydW5rCiszNjUyNiBkZjRlNmNjNjY2MWQwNDU4ODk5NDljNzBlZTU3YzcwYzQzZDNlYTU3IHJlbGVhc2UyMy1tYWludAorMzY1MjcgNGJlMjgwOTNlNDgwZWFjMTVhYzM0OTc0MjdiOTc3MmUzYTlhNTkwYiByZWxlYXNlMjMtbWFpbnQKKzM2NTI4IGFiMGIyYTU4ODhmOWU3MGQxMWY2YjdjOWYwYzc1N2I1OTU4N2M3MTcgbGVnYWN5LXRydW5rCiszNjUyOSA1MDY5ZjViZDY2ZjNmNmQ2YjcwZmQxMTM0NjE5ZDZmMGI2MTRkMWRhIHJlbGVhc2UyMy1tYWludAorMzY1MzAgZDFlZjg2Zjg3ODVmOTNkZjQ4Y2RhMDZmZDQ2MTFiYmE4ZjNmYWVjMCByZWxlYXNlMjMtbWFpbnQKKzM2NTMxIGYwODUyOTg3OWRiMWFkM2Q1Y2E0NTdlZmRjNmJjOTQxODA3YWQ5NGMgbGVnYWN5LXRydW5rCiszNjUzMiBhYmUwNGU3N2E0YjBmZDdhN2U4Nzg2ZmQyNDJmN2QzZjMzZGM2OGVlIGxlZ2FjeS10cnVuaworMzY1MzMgODQ2YWNlNTczODljOTJhOWRkN2U0Zjg4MDZkMTMxZWJhMDMxYTIzMSBsZWdhY3ktdHJ1bmsKKzM2NTM0IGRmODhmYWRiYTJmNTZjYmZlNDQxOTIyZTc4OTQ5MzNjMTljZTBkZmUgbGVnYWN5LXRydW5rCiszNjUzNSBjN2M5YjY4ZGRkYTI5YzU2MWRjODI4MzcwN2ZiOWFjYzIyNzIwNmJhIGxlZ2FjeS10cnVuaworMzY1MzYgMjU1YWUyM2M3OGZiNjE5M2JmYzVmNTM4YzZmNmMyMzc5NzliZTNlOCBsZWdhY3ktdHJ1bmsKKzM2NTM3IDM4YWQ5YzZlNzE3YzhiMGI4YmM5NzJmNjFmMzM4MmYyYTA4NzUzN2EgbGVnYWN5LXRydW5rCiszNjUzOCAxNzQwNjU0M2YxNWIyN2U4YWJjYjk4ZTNmMzcwOWFmYmUwZTZjODNhIGxlZ2FjeS10cnVuaworMzY1MzkgNWIwYzg3ZGU2ZDA1MDk2ZWQ0MTgxMDRjNmI3YzZkYzc3NTQ2MGUxMyBsZWdhY3ktdHJ1bmsKKzM2NTQwIGY3OWNmMTNhOWE3ZDEwYTgzMmFiZTAyMjY1ZDdlMTE1NTVkY2M0YzIgbGVnYWN5LXRydW5rCiszNjU0MSAwZTg5MGFjMWMwZjI2NWY0NDdmMjdmZjM3ZmNmMDMyZjgzOGJiZTk2IGxlZ2FjeS10cnVuaworMzY1NDIgMWJkMzM4M2JhZDk4NTAzNjQ4MDM2NWJlZDMzOTFmZjk2NjcyNDc0MCBsZWdhY3ktdHJ1bmsKKzM2NTQzIDEwOTU1MGY1YTgyOTYzMGE4ZWZmMjEwODJjMGUwZWJmMGYwODJlM2EgbGVnYWN5LXRydW5rCiszNjU0NCBjYmIyNWZkYTk1YTU4MGYyYzY3ZjRhYTliZDQ0MDc4ODgyZTZiNDZjIGxlZ2FjeS10cnVuaworMzY1NDUgZDA5ZGE3MTQxM2NhMDRmY2I2Y2YzM2ZhY2ZhMjNjNWE0MGFmZWJkZSBsZWdhY3ktdHJ1bmsKKzM2NTQ2IDRkNDNiMGFiYzIyYThiNjFmZTJhYzUwY2VhZTk5NmZjZTdhNjM0OTIgbGVnYWN5LXRydW5rCiszNjU0NyBlZmNhNTViYmJhMGFiMTJhMDRmOTc2ZDQ2OTYzOWI1MDUwMmMzNzJmIGxlZ2FjeS10cnVuaworMzY1NDggNmFjZDcwNzBlZDY2ZjdhZDY1MzEwZGIwMWEyZjhjYmFhOGY3YzNhNiBsZWdhY3ktdHJ1bmsKKzM2NTQ5IDc1NTljN2ViNDc4MDI3NDM0OTg2MjY5NjhjNjNiODQ0MWE1NjBjMTUgbGVnYWN5LXRydW5rCiszNjU1MCBlNGNjNzg4ODRmYzQyNmMyNmQyMTkyYjIxNjU1OWY0NWEyNjllMDU5IGxlZ2FjeS10cnVuaworMzY1NTEgNjlkYWRjMmNhMTRkZmNiZjYyYWUxYTE2YmUyOTAzZmIwMzgwNWMyYyBsZWdhY3ktdHJ1bmsKKzM2NTUyIDgxNzg0ZjY2Njc4OWI5MDI0Zjg3NmU1MWNiOTlmZGQ4NmM1YzU1N2QgbGVnYWN5LXRydW5rCiszNjU1MyBlMTM1ZTgyY2Y2ZTQ4OTE2ZjZiOWQ0NjVjYTljYTU3YmZmZmFmZTA4IGxlZ2FjeS10cnVuaworMzY1NTQgMDdiNDhlYWYyYjAxZWJjNDhjNGZhNDA3YjZiNjM3MWU4NTMzYzZjOCBsZWdhY3ktdHJ1bmsKKzM2NTU1IGJlYmNiNzlmMzdjYmM5NDk4Mzk3NjQxM2QwNDQ5MmZhY2E4NzM3MzEgbGVnYWN5LXRydW5rCiszNjU1NiBkYzNmMDRhZmVmNzU3MGI2ODMxZTBhYzQ1MjQ0NDQzZTUyYzk2MjQ4IGxlZ2FjeS10cnVuaworMzY1NTcgOTc3ZjI2N2IwMGY5M2VjNjI5MTlkNzZhNTEzYjNmMTMzYzQxOTA1NSBsZWdhY3ktdHJ1bmsKKzM2NTU4IGIxZDE0MmQ3MTQ4Mjg5OTg3MDQ2MDZkYWZmZGYxNjVjN2Q0N2U5MGQgbGVnYWN5LXRydW5rCiszNjU1OSAyYmM2NmYxZGY3Y2M3YzgyM2ZkYTNlZTY0YjJjY2UyMGVhNzdlODlhIGxlZ2FjeS10cnVuaworMzY1NjAgYzNhMDk2YmZiZDZiZTkzOTU5OTBlNzkwOGM1Zjg4N2MzNTM3YTg2NyBsZWdhY3ktdHJ1bmsKKzM2NTYxIDI4MjkyN2Y3YmRlMjQyZGE3Y2MzOTU5YTMzZmU4ZmI1NjRhODAzM2UgbGVnYWN5LXRydW5rCiszNjU2MiA4YmRkNzk0YTQxOTdlODk3MTEzNjExMWJhMWVjMWI5M2ZjYTUxNGY5IGxlZ2FjeS10cnVuaworMzY1NjMgYzFiZDFjOGU2NGI0NTc0ODU5YzkxZTNiMzdmOTczOGJkNzY3ZjdkOCBsZWdhY3ktdHJ1bmsKKzM2NTY0IGI2ZjEyNTJiNjgxYzUxY2MwODNjNGZmNzM2OWQwNDc1YTc1NjA4MjAgbGVnYWN5LXRydW5rCiszNjU2NSBmOTcwOTlmOWZmMWMzMWY4NDlmYTdhNWRmNTkxMjczNjA4Mjk0MjJjIGxlZ2FjeS10cnVuaworMzY1NjYgMzM3N2E3MjM3M2ZiZjg1ZDU2NThjOTY2ZmMwNjIwNzUxNjBmMTQwNiBsZWdhY3ktdHJ1bmsKKzM2NTY3IDRlMDdlYWNiMWJkZmQ4ZDc1NGEzODUxMDg5OGJjZDdmYzgwMzNkYTEgbGVnYWN5LXRydW5rCiszNjU2OCBkMTQzNmMyOGRjYTMyZWUyZTY3NzczNTIxOWVlYTQxNDY2ZmFhYmFiIGxlZ2FjeS10cnVuaworMzY1NjkgZGIxYTI3YjZkNzc1MGVjMjc2Yjk3M2JkMWQ5Y2Q5YjY4MDY0MzVjNyBsZWdhY3ktdHJ1bmsKKzM2NTcwIGMxODI0ZDY4ZDEwZWFjNDNjOTgzYzE5ZjgxN2ZiYzExOTE2ZjU0MzAgbGVnYWN5LXRydW5rCiszNjU3MSBlNDU3NTUxOWVjMjYyM2EwZmQ1NTkzOTc3YjlmZTFjMTJkYzM2MTZiIGxlZ2FjeS10cnVuaworMzY1NzIgMDVjYTIyMzJlZmNiZGJkMzk2ODk5YzZmODk3MzU5MThkZWI2YWQ1YSByZWxlYXNlMjMtbWFpbnQKKzM2NTczIGI3OTUxZTFmNWRkZjI5YjBiNDQwMzA0M2E0MzU5OGZmNjE2MTAxMzIgbGVnYWN5LXRydW5rCiszNjU3NCA1ZDlmNzJkMDg0M2VlYTlkOGVjZTNjYmRiY2U3YjZlMTAwZTQzZmMzIGxlZ2FjeS10cnVuaworMzY1NzUgOTVlYjZlMThhNTQyNzNkMzVjZjg5NjljYjNhZmFkNTQ2NDNlYjIzNyBsZWdhY3ktdHJ1bmsKKzM2NTc2IGRiZDNhMDRlYjBjNjQ4OTU4NzM2ZjQwODk2YTM3MjYxMDI1YTMzODAgbGVnYWN5LXRydW5rCiszNjU3NyBiNTQ1OWJmNDgyNjI0YmExZWYyZDU0YjhiY2ZjMmYyM2YyMzZjYjVjIGxlZ2FjeS10cnVuaworMzY1NzggOTM4ZGMzMmRkYmM0MWYxNDU4ZDJkNmI3NDVjMzY2MGY2MWNmMTY0NSBsZWdhY3ktdHJ1bmsKKzM2NTc5IDI1NzU2M2RjYjQ0MjM0NGZhYWY5ODdjYzgyM2M0YWI5ZTRlODA3MjIgbGVnYWN5LXRydW5rCiszNjU4MCBkYjI2YjNkYmU4MDI3Y2M5YjA1MGVjMzRjNmNjOGE1ZTE3OGI1M2UxIGxlZ2FjeS10cnVuaworMzY1ODEgMjZjYjA1ODkwN2YyMWI3ODE2NGE5YjIyOTQwYmVkMmI3NmE1OGQ5OCBsZWdhY3ktdHJ1bmsKKzM2NTgyIDg1OWVhODYxMmViMGRjNTI4YjRhMTRkMTdmMGIyM2YwYjNkYzI5MzcgbGVnYWN5LXRydW5rCiszNjU4MyBkMTc3N2Y1MTkyM2JiNjE4MTU0MGFjMWYxZTZiNzIyOWM1ZDc5ZjM1IGxlZ2FjeS10cnVuaworMzY1ODQgZGNjNWMyZDU4ZjMyNWZmYmM4MTFiZjIwN2EyMTdhMzVjNWY3YWE4ZiByZWxlYXNlMjMtbWFpbnQKKzM2NTg1IDYxYmU5MDRhMWQ0ZTM1NTNkN2EyZDcxZDI5MDViMjkzYmM1ZjczYjIgbGVnYWN5LXRydW5rCiszNjU4NiA3NmFkODE0YmM2N2M5NGVlZmZiOTc4MDZlOTUzZjhhYTE2MGQwMWE4IGxlZ2FjeS10cnVuaworMzY1ODcgOGFkNWExNjIwMDkyZTRkMGVlNjE1NDNlZjMwNThmN2U0N2MxMTVhMiBsZWdhY3ktdHJ1bmsKKzM2NTg4IGVjYjBjOTdmMWU0MjYwZGFhNzI3YTcxMWYzZmY0Y2QyOGU5MTYyZTAgbGVnYWN5LXRydW5rCiszNjU4OSA1MGVjZTNkNGZmMzcyMjg3OGIyMDZlNTIzYTEyZGE1Mzc4OWEyMTc1IGxlZ2FjeS10cnVuaworMzY1OTAgZDE1NTE3ZjJhYmU4YmNmMjhhNTkwNzRiYTUzOWNjYmYwNTVjMjdjYiBsZWdhY3ktdHJ1bmsKKzM2NTkxIGE5MWU3YTQ1ZjE0MjQxZjY5NmVmOTE1MDRhMGZmYWU1ZThlOWViYmUgbGVnYWN5LXRydW5rCiszNjU5MiBmZmE4YWIwMDgxZjIxM2M0OTU3NDc4ZjFiMDA0MGI4MjExMzk2MDI0IGxlZ2FjeS10cnVuaworMzY1OTMgOTgzYTkxYjUwZjZlNzg3NTAyNTIwNWI2MGFkNTQyOTQzOTIzMDEzMiBsZWdhY3ktdHJ1bmsKKzM2NTk0IGEzYjFkNmM5OWU0NjIxYmU0ZjdkNDk0NzQxM2IyZGZjY2I1NWU2ODIgbGVnYWN5LXRydW5rCiszNjU5NSA2MmY4NDNmY2I4MjM3OTdiY2M5YTU5YWExY2Y2M2Y0ZjhlZDc5NzNlIGxlZ2FjeS10cnVuaworMzY1OTYgMmVjNDUxMjMwYjhlYmNiMzI2NTY1YWE5MjRlOGZlMmU3ZWM3MGVhOSBsZWdhY3ktdHJ1bmsKKzM2NTk3IGIzMDFlNWRlZTkzOGMyMzhhMDEwZDgyNDJiMWJlZjZjZGRiNTI3OTMgbGVnYWN5LXRydW5rCiszNjU5OCA4YTkxY2Q3ZDdlODI1NGRkNWMxZDI3NTUyYTcwNDQ1MDI5NDAyNzFjIGxlZ2FjeS10cnVuaworMzY1OTkgODI2MDY5YjcyNWRiMjY5ZWExY2RjNDRmNGE2OWFhNzMzYjI1NGFmNSBsZWdhY3ktdHJ1bmsKKzM2NjAwIDY4NzVjZjA4ODJlMDEyM2NiNjQ2MmFiN2JlMGRjZDMxNDcwNGRkZjIgcmVsZWFzZTIzLW1haW50CiszNjYwMSAxM2QyMDMyMjc4N2Q1YTMyYWIwMTc3MThjM2VmM2YxYmIzOGE0YjU5IGxlZ2FjeS10cnVuaworMzY2MDIgN2FmNjk1YmM1NDgwOTI2NWFhMjhjODE0YzUzMzU1MGNiMmI4YzUyOSBsZWdhY3ktdHJ1bmsKKzM2NjAzIDMxOTM4YTQ2M2YyODdlOGY2NzQ2NDQ2ZGViYjNmMmQ3Y2FiODZhODUgcmVsZWFzZTIzLW1haW50CiszNjYwNCA1MTdlMDBhZjEzYTFhNzgzMTE1MmQxOTE1MjA2ZDVmNjgwNDIwY2MyIHJlbGVhc2UyMy1tYWludAorMzY2MDUgY2FhZWYzMDJmMWUzM2M1OTQzM2Y5OGY4NDJkNjI4MGZhYjkwZDFkNiBsZWdhY3ktdHJ1bmsKKzM2NjA2IDc5MTdmZDJjNDI5ODM4MWYyZTI0MTEzNTE1OTU0N2Y1OTJkMDJmYzggbGVnYWN5LXRydW5rCiszNjYwNyBkNmU3M2U1Mjg4MGU0Nzc5N2VjY2E3ZmVkMzNjOGJkMjI1YjQzMmEzIGxlZ2FjeS10cnVuaworMzY2MDggZTZiODQ3YjA3NTUzZjNjZWU2NjhhY2EzMzZjZjZhNDNlYTM2OTYwMSBsZWdhY3ktdHJ1bmsKKzM2NjA5IDAzNGIzYjkyYzVlMDMxMzkwNGMwNmExZTNmYjc3MjUyYmRiZjVkZGEgcmVsZWFzZTIzLW1haW50CiszNjYxMCA0ZjRiNzk1NjI4N2NhYjY4OTNhNjdjNDljNDE1MDUyMjA3NjlhYjZjIGxlZ2FjeS10cnVuaworMzY2MTEgODA3ZmJlOGQzNTg0MDEzZTY1MDczMDJiZWQ5ZDg3ODdjMzQ4OGM3MSByZWxlYXNlMjMtbWFpbnQKKzM2NjEyIDAwODkyNDIwZTBkZjVlMDg2NWNlZGE3NjBmM2E5YjM3Y2UzYjM3ZmYgbGVnYWN5LXRydW5rCiszNjYxMyA2ZGY5MzIyZDZhYjgyMzc4OWY4YjMxZWM3ZTYyNTRkY2QzNDdjZTM1IGxlZ2FjeS10cnVuaworMzY2MTQgYTk0MGI2YzA3ZTU3NzVlYmEzYmVkNzQxOWY5YTA2YTEwNmQxNWNiNyBsZWdhY3ktdHJ1bmsKKzM2NjE1IDU1ZjczYzgyZTMwNGJiODlkYzhlNjQ5MWZlMGY1ODQ3ZDBkNzY3NDYgcmVsZWFzZTIzLW1haW50CiszNjYxNiA3MzA0NTE0M2JlNjNlOGNmZmJjNmZlMGRkN2M5ZDE1MTU1OWQ5ZjE3IGxlZ2FjeS10cnVuaworMzY2MTcgMWUyMTg3ZjUwNjMxNzE1N2MzNjA5M2YzNzFkZWRmZjUyODJjOGU5NyBsZWdhY3ktdHJ1bmsKKzM2NjE4IDBmOWMzOWIzZTVmMDJmNDg1NTRmOTI3YWQ0YzVhZjEwOWRkZTcwNDcgbGVnYWN5LXRydW5rCiszNjYxOSA0NmUwNDMxYzk3MDFjYWMwYmEzMGZmOGRhMTlkYWQ0MTY4NTgyMTg1IGxlZ2FjeS10cnVuaworMzY2MjAgZmE0OWMxZTJkMmMxMDcwY2U5NjRjMzRiOThmNWY0Mjk1MjgyMGQ4MCBsZWdhY3ktdHJ1bmsKKzM2NjIxIGVhNTRmZGI4NjUzMGVjZTU0ZDRhZDk0MzExM2E2YjNiNGE5NTA1NDQgbGVnYWN5LXRydW5rCiszNjYyMiA5MjY3YWViNzI5ODVkMDUyNGJlYmFlZDlkY2QxMjUyNjJmYzI1M2RhIGxlZ2FjeS10cnVuaworMzY2MjMgZWFhOGEzN2UxZTg1MGNlNjY2ZmI0YjQ3NTViYzMyZjZiZTJhYjU5MSBsZWdhY3ktdHJ1bmsKKzM2NjI0IGZlNDE0NWJhMzliZmZiYTYxNzgyMzdhZjViNTg0NmYyNjg5MDY0ODkgcmVsZWFzZTIzLW1haW50CiszNjYyNSAxNmRlNGY5MGVmNDQ2OGNiNmY5ZTczOWYzYjc3NjFkNTJhNGM5NjMxIGxlZ2FjeS10cnVuaworMzY2MjYgZDMwZDUxYjJlZmUwMTJhOGZkNWMxMTg2ZDg3MTkyY2E5Y2ZmNDUxMiBsZWdhY3ktdHJ1bmsKKzM2NjI3IGRhYzI4MTM2ZDU5YjBhYzU3Yjk2MWE0NzVmMTM4YjM4MjAyNzM3YWEgbGVnYWN5LXRydW5rCiszNjYyOCBjZGFkNjI1MzMwOTRmMGNhMWI3NDU3YjQ3Nzg0ZGU0N2M1NWE4MjU2IGxlZ2FjeS10cnVuaworMzY2MjkgYjhiYzU5NTc4YTQ3NTYzMDg3OWM1ZDkwODEwMjE1ZDE1YzBlZDdlYyBsZWdhY3ktdHJ1bmsKKzM2NjMwIDNlMDQyMzM4NTJkNGZhZGZkYzAwODI0MDFiMjg5NWY5YjE2ZGZiMWYgbGVnYWN5LXRydW5rCiszNjYzMSA0YTUxY2RjZjg2MTUzMzY2OGIwZWZjYmI4OWY2MjM3Zjg5MzgwMDkzIGxlZ2FjeS10cnVuaworMzY2MzIgZWRiYWY2MTAyMjdiOWYzMTYyNDVlOWZkMmRjNGY1YzU5YjVjNDY3YiBsZWdhY3ktdHJ1bmsKKzM2NjMzIGIyODc5YTcyYjM0NjYxZTkwYjIyNzNmOTAzMTY5Njk2YmVhYWY5NTYgbGVnYWN5LXRydW5rCiszNjYzNCA2MjNhZTEyOTMwZWExNmFkNjk0OGMxZDM4NTdjZGRiMDQyZWMwMmI3IGxlZ2FjeS10cnVuaworMzY2MzUgNmU3OWRlYTg1MTg5YWZhOTQ0ZjcyMjU1OWVmNzEwYmRhNWEyODM4MSBsZWdhY3ktdHJ1bmsKKzM2NjM2IGQ1Yzk3ZDY5ZGZjN2MxNzFjNWYwMjk4YzcwODFjOTgzMjI4MmY4ODggbGVnYWN5LXRydW5rCiszNjYzNyA5NTgyZmEyZTVlMGRhMmEwNmZlMTgwZTgwMzVhNGY4OWFjMzY2YTMxIGxlZ2FjeS10cnVuaworMzY2MzggZjYxNmQ2NTM1OTkzMzA2M2M5NGNkODQ5N2QzNWVhMWRmNTMwODQ3YiByZWxlYXNlMjMtbWFpbnQKKzM2NjM5IGVlN2I4NDEwMTE2MDRmNDk5ZjE0ODA2MzJhMTQ4MDQ5ZTVmMzQyOTMgbGVnYWN5LXRydW5rCiszNjY0MCBkMmFkYmE0NzgxZDViMDc5OGFlNjg0MWViZDIyNGZkMjJkZjdjOGVkIHJlbGVhc2UyMy1tYWludAorMzY2NDEgYmY2ODZlZjkyY2IwYmQyNDJlNjI3YjhjMzRjZDQ3Y2E3ZjkzNmU3YyBsZWdhY3ktdHJ1bmsKKzM2NjQyIGJmNmEyMDY5MDgwYzZiMWY2Y2I3ZTI2M2NiNzk2MzExMTg4M2ZkYjIgbGVnYWN5LXRydW5rCiszNjY0MyBkMWNjZDJmNDVkYTM0MTc1Yzg5ZmVmZDFiNmI4NDZjODYwNzgxYWNhIHJlbGVhc2UyMy1tYWludAorMzY2NDQgODBhY2FiOWMzYzE3NjE3N2U4Y2Q1NWU4MTM3MTk3OTQ4MGMxMDBlMiByZWxlYXNlMjMtbWFpbnQKKzM2NjQ1IGIzNThkMmY0NGE3NDAyZGM0NzA5YjQ0OWUzMjllMmUwYjBlNjBlZDggcmVsZWFzZTIzLW1haW50CiszNjY0NiAzODM1ZGZmMmVmZGI1YWQwMmI4OWVhNGRiOGMzYmRjNDA4MzgyY2Q5IGxlZ2FjeS10cnVuaworMzY2NDcgZmJiMmQzNGY3NWEzYmY3MDEyNWYyMWQ3NTNlMTc5YjAyNmYwMWIwNCByZWxlYXNlMjMtbWFpbnQKKzM2NjQ4IDcxNjMzZDM3ZTk4ZTkyY2Y5NjU5YmFhOTAxOGJmZWJhNDY4NWI4ZDAgcmVsZWFzZTIzLW1haW50CiszNjY0OSBjNmM1OGI2MWY2YjVhOGYwMzRhNjAxMWRjNmU5MGE5NjUyMmQ5MjdmIGxlZ2FjeS10cnVuaworMzY2NTAgZDk1NjgyMDg5NTA1MGI0OTU5Y2EyOGRlMjIwMGY5MDI4ZjVlNTIwNCBsZWdhY3ktdHJ1bmsKKzM2NjUxIDM3YTc1YjJiNGMyOTQwNzE3NTk2Njg5YjEwOWRlNDMzNGIyMjU1NzUgbGVnYWN5LXRydW5rCiszNjY1MiAwN2E1N2Q4OWIxZTBkZmU4YzllNzNiZmMxMWM3NWFmMTlmNjY5ZDE2IGxlZ2FjeS10cnVuaworMzY2NTMgY2JkNGFlNzQ4OTBkM2MxMDRlZDZiMjM1Y2ZjMTcxYTA2Njg2MGVlZCBsZWdhY3ktdHJ1bmsKKzM2NjU0IDA2MGRlNTA0ZWJiZWFmYzA3NjgzYmJhODA0YTE2OTFjOWY4YzBkNzEgbGVnYWN5LXRydW5rCiszNjY1NSA0MzUzZmZjNDM3ZjE5ZmQ4ODE0NWRkZWQ4MzU4MDhjZjc5MjBjMzQxIGxlZ2FjeS10cnVuaworMzY2NTYgZmE0YzcwNjNhNzM2YTVjOWUzNDI4ZTk4ODc1MGY2ODFhNDlmZjU2OCBsZWdhY3ktdHJ1bmsKKzM2NjU3IGRhYzlkMDY2NGZjMzkzMzQ1MDg1NzUwMjk4Yzk0ODlhYWVkOWM2NGQgbGVnYWN5LXRydW5rCiszNjY1OCA3MTgzMDUxMTJmOWZkNjExYzA5MDQwOTE2NWRiZGExNjFjM2I2OGQ4IGxlZ2FjeS10cnVuaworMzY2NTkgYjU4Y2Y2YjVmYzkxNDM4MGQ1MGQyZWJjNjFlMzRhNjNjYjAyZmRjOSBsZWdhY3ktdHJ1bmsKKzM2NjYwIDFkZDNjYzkyN2QzNzdmNWU5MzlmM2Q1NWU4Zjc0MjE0YTNjM2ZjMzEgbGVnYWN5LXRydW5rCiszNjY2MSA3MGU4ZjYzNGE1ODkwMjliZjhkZTY1MWI4OWEwYWZmMjdkZGQ3MmZhIGxlZ2FjeS10cnVuaworMzY2NjIgMjRkZDFkMDdhZmRiYzA2ODlmMjQ0YjI5YzE1OGJhOTlmY2ZmYjUyZiBsZWdhY3ktdHJ1bmsKKzM2NjYzIDdiNDRjMjc4Mjc5M2U5YzYzNDk2M2U0NGJmMjEwN2VhN2MzNWQxNjggbGVnYWN5LXRydW5rCiszNjY2NCAyMTMxOGQ3Njk1ZjljZDNmNTYyYzc3Zjk4MzRlYzYwNmUxODNkYzhmIGxlZ2FjeS10cnVuaworMzY2NjUgMDg1NmQ5OGUyYTY4M2RhNmIzZjc1ZjMzNjg4NzFiZjIxODQyOGNhYiBsZWdhY3ktdHJ1bmsKKzM2NjY2IGQ1Yjc2YTE2NzMyM2FhMTUzMGI5Zjk2NGM3ZDI4OTI5OTk1ZjYzZGYgbGVnYWN5LXRydW5rCiszNjY2NyBkYWIzZjA4NjY4ZGYyM2FlMzU2ZWVjMDkzMDE4OTQyMWQyMWRkMjI1IGxlZ2FjeS10cnVuaworMzY2NjggYTRmMThjODk4NjVmYjhkMGQyYWIyYjgyZWU5ZjE4N2E2NmZhMTgxMiBsZWdhY3ktdHJ1bmsKKzM2NjY5IGRiMjEwODFmNWJjMWIxNjE4ODEyMWJkYTlhMGUwZjM4NDg3NGQ5YzYgbGVnYWN5LXRydW5rCiszNjY3MCA4NjU1MTMxMTJmN2EwZTc5MThmYzMzMDE1ZDEzZjE3NTkyNTllMjJlIHJlbGVhc2UyMy1tYWludAorMzY2NzEgNWU0ODBhNWM2NDdkYTczNDQ5YmYzZTk4MmZhMmY1ZTIwZjJhYmE3NiBsZWdhY3ktdHJ1bmsKKzM2NjcyIGUzYTM1ZmJjZThlYzIyMTc2ZDM4OTMyODU2M2UzMDQyZDExZWZkZGEgbGVnYWN5LXRydW5rCiszNjY3MyBlN2NjNzQxNTJjNTUyOTdjM2NhOWY4ZDZkY2ZmMTk4ZTIwNGU4NDlmIHJlbGVhc2UyMy1tYWludAorMzY2NzQgMDllNjMzYzUyNzMwNzlhZDljNDVhYzU1YzFkMjhjZThkNTZhMTRlMiBsZWdhY3ktdHJ1bmsKKzM2Njc1IDA1MmE0M2FhMzVlY2Y3MmVkMjI4ODUxY2FkMjBiYzVkN2FmMTMxNDMgbGVnYWN5LXRydW5rCiszNjY3NiAwZjk0ZjQ4ODZiZjU1YThhNTUwZjFiMDY5NThmMDFhMDViNThiNjYyIGxlZ2FjeS10cnVuaworMzY2NzcgMTY4MjIwMWYwNWIyYTg0NTBlNjViYjY5M2IzM2U2MzVkZGMwZmY1ZCBsZWdhY3ktdHJ1bmsKKzM2Njc4IGRjYjI0MWM4OWY0Mjk3MmM3MTIwYWRiMDU1NzcyYTE1ODY2YjMxZjQgbGVnYWN5LXRydW5rCiszNjY3OSA5NmQ5OTE0NzdhODI5Y2E3N2QxMmQ5YzgzNWNlMDI5MDJmYWQ3ZDVmIGxlZ2FjeS10cnVuaworMzY2ODAgMDZhNjNjMzVkZjllM2M2NWNkYjJhZTg4NjYwNWFiMzU4ZjBkZjQ1ZCBsZWdhY3ktdHJ1bmsKKzM2NjgxIDcyNGZiMjZlYTA1ZjI0YzlhMjNjODdhY2QzYWM0ZWE4NjI2MjdiNTggbGVnYWN5LXRydW5rCiszNjY4MiBmYTA1MjZjMzBkYTgwNWY4MTBmN2U4NzA4MzU1ZTdlZGJhOGIyZDQ3IGxlZ2FjeS10cnVuaworMzY2ODMgNDVmMzIyMmI4NGVlMGVlMzFmMjdiMmJjZDI2MTY4NWEzMWJjOTU4OCBsZWdhY3ktdHJ1bmsKKzM2Njg0IDQ4ZWFlMjBkNzBjNThiODZjNGUzZjA3M2MwZWVmOWQwMWRjYjE4MTEgbGVnYWN5LXRydW5rCiszNjY4NSBmYzM2ODdhNjI3YjQzNDNjMDllOTUwZDYxOTUzOTJhYmE1MzU3ZGRmIGxlZ2FjeS10cnVuaworMzY2ODYgOWEwMGI2NWFlY2RjYzg0MzdlMjMwNzA1YmJlZTQ1MDE5MDgwMGJiZiBsZWdhY3ktdHJ1bmsKKzM2Njg3IDZlYTMyYjBlOTUwN2ZhMjZmMWZkNWMyYjhiMjE1ODA0M2E5M2E5YmUgbGVnYWN5LXRydW5rCiszNjY4OCA2MGE3MDhiZjM1MWFlMTFlOTc5MmNiMTEyOTU2MDNkNDQ1OTM3NjdlIHJlbGVhc2UyMy1tYWludAorMzY2ODkgYzU3MDEwZGIxMjNlZWFjMTg3Y2I0YmU3YzBlMzBhYTQ5OWUzNzM1YSBsZWdhY3ktdHJ1bmsKKzM2NjkwIGE1M2I1Y2VmYTYwZDdkMDUyNGY4NDAzYTJmMWU2MjlhM2IwYjMzZGQgbGVnYWN5LXRydW5rCiszNjY5MSA4ZDI1ODM1Zjg4YWU0NDUwZTlkMzI5YmQ4ZDE4YjFmMDlmMzY1YWIyIGxlZ2FjeS10cnVuaworMzY2OTIgYmQ0NmU2ZjgwNjIzYmY5ZDIyOTY4NDU1ZGMyZDA5NTQ0MzkzNWUwYiBsZWdhY3ktdHJ1bmsKKzM2NjkzIGNhNmVmYzU0YjE5ZmY3MTljZjM2ODIwMTRjOGY3YmRlYTE5MmUzOTYgbGVnYWN5LXRydW5rCiszNjY5NCAxOTU2NTUyOTllZDM2NDg3NGFkNjE1NjNkMmY0MWNhZDg4MzBjMTZhIGxlZ2FjeS10cnVuaworMzY2OTUgNmJlODk0MDE0YThjM2JmZDZmNjE3ZDkxNmUzNTRjNjhkYjRlNzczZiBsZWdhY3ktdHJ1bmsKKzM2Njk2IGQwMTMzOTNjN2Q5ODJmNGE2YzI0YjYzMTMxNGJjMDQ3Nzk5MDljZjUgbGVnYWN5LXRydW5rCiszNjY5NyBlZjA4ZjQ4YjYzYTFjZTU0ZTFiM2Y0NzNkMWUyZTY2NjIwOGVkYjM2IGxlZ2FjeS10cnVuaworMzY2OTggNjJjNTNiOGU0YWViMzFiNmYwNDE3MTk2NWYzMTJlMWVmNmRlZmRkZiBsZWdhY3ktdHJ1bmsKKzM2Njk5IGIzOTBjZDkxYzc2YjExZjU4NjJmNTRlM2VjMGExMWRiYzQ0Zjg1OGIgbGVnYWN5LXRydW5rCiszNjcwMCAwMThjNDMwNDViNTNlNjM4ZWM4OWM3OTk5NTU1YzAyMjAyYmY3NDg5IGxlZ2FjeS10cnVuaworMzY3MDEgMjkyOWZjNTRiNDlhNWQ0N2I4NWJiNGZhYjVkODQ4Y2Q3MjcyYTJhZCBsZWdhY3ktdHJ1bmsKKzM2NzAyIGNhMWFlYjhhYjM4MDJjYjI3Y2E4Y2EyZDk4ZDJkNDdmMzMyYTQyOTQgbGVnYWN5LXRydW5rCiszNjcwMyBkM2Q2MDlkNjU3ZmQyNjlmZGM3Nzk1MmYxNjdhODJkY2Q0MGZhYTVmIGxlZ2FjeS10cnVuaworMzY3MDQgNTEwZTllMmIwODE3NDYxMTBlOTYyZDBhOTRjNjQ3YzQ3ODczNmM0MCBsZWdhY3ktdHJ1bmsKKzM2NzA1IDI2YjMwNjg5NGI5ZWI0NjEwYzlmNDg5NDFhODM5OWI3ODBmYTQ2NTUgbGVnYWN5LXRydW5rCiszNjcwNiAzMzFlNjBkOGNlNmRhMTliMTY4ODQ5NDE4Nzc2ZmVhMDk0MDc4N2VjIGxlZ2FjeS10cnVuaworMzY3MDcgZTI4Yjg3MzNhNjZkN2RlYWVhNThjNTBhNzY3MDMxODQ1Y2JhZWE4NiBsZWdhY3ktdHJ1bmsKKzM2NzA4IDg4YTFkODZkNDQyZTgxMTRiOTc3NDcxM2ViZjRkYjhkYmNhOTAzYTggbGVnYWN5LXRydW5rCiszNjcwOSAyYWE3YWVmNGU0MDMzYzM0MGM5Zjk4N2UwMTIyZWIzYzUzNjk4MzgxIGxlZ2FjeS10cnVuaworMzY3MTAgYjMyM2JkYmFjN2U0NzcyYjhhYzc2ZjYyNzM1ZmE1N2I1YmQ4NGUzMiBsZWdhY3ktdHJ1bmsKKzM2NzExIDFiZTQwMzNmODQ5ODA4OTFkNGViMWU3ZmMxYzY0MjMxNzJhODI2ODEgbGVnYWN5LXRydW5rCiszNjcxMiBjN2UwM2NmODMzM2U1YTNhOGNjZmU5YTBlZTg1OTQ2NzYzMzA3ZTAxIGxlZ2FjeS10cnVuaworMzY3MTMgMjA5NWNiNTk4MTg4MzRlYjllYjQ2MDMzNzNiYmNjMGM3MTBhZmNhYiBsZWdhY3ktdHJ1bmsKKzM2NzE0IGI4YzJhYTJiZTE5YTMxNDQxYjI1NTUyZjhlZDJlNTE5ZjA5MTY5YTQgbGVnYWN5LXRydW5rCiszNjcxNSBhOWIyNWMyMzA3MzI3MjlmMmNmYmI5MzJiZDk5MTVjM2ZhNTRkODg0IGxlZ2FjeS10cnVuaworMzY3MTYgNjg1YTk0OGIzYmM5Y2I1ZDU5NGQ2Y2ViMjg4Mjg4YzNlZDU0ZDhhNCBsZWdhY3ktdHJ1bmsKKzM2NzE3IDUxZDdhMTIyNDRhZjMxMzgxZmVkNzVkOTQxNDI4MWYwOTA1OWNjZTMgbGVnYWN5LXRydW5rCiszNjcxOCBkMDQ5YTFmZTI2NzYzZmFkNzA2YTQ0MzEyM2VmNzE0MTYxZmZiZTAwIGxlZ2FjeS10cnVuaworMzY3MTkgNjNhZDZmNjkyNWM1NjhkNGZhYWY5M2E5ZTlkOWI2YmNmMjk0MjVkMyBsZWdhY3ktdHJ1bmsKKzM2NzIwIGE3NTgxNWUzMTU0NTEyNjRhYmNkZDliMmMzNWMxZTVmYWI4NDFjZGYgbGVnYWN5LXRydW5rCiszNjcyMSAwZGM4ZmZhYWMwMzY0NTNlNjlmZTNiMDVjZWQ4YTg3NWExYTczZGY3IGxlZ2FjeS10cnVuaworMzY3MjIgZGFlYzJkMzExZGVmM2EwMzMzMDA3OGRhMmJlOWUxOGFhYjAwZTgxOCBsZWdhY3ktdHJ1bmsKKzM2NzIzIDg0ZWZhMDA1NDE5YWFlMjdjZTgxMjZjYjA1OTQwZGVkMzc0YjIyMDAgbGVnYWN5LXRydW5rCiszNjcyNCBiOGUxMGFjYjRlZmI2MjIyNjBlZGU3ODlkODhkNTFlYzA5MjMyMjU2IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY3MjUgYWM3M2Y2NjYyZTExN2MyYTQ0ZmRmZjdmNzY4OWYyZTZlZjc5N2JmNCBsZWdhY3ktdHJ1bmsKKzM2NzI2IDMwZDg2ZTM1NmJmMjRmNzE0YjEwZmRjZTNlNjk1MzkxN2IzMTg0MjkgbGVnYWN5LXRydW5rCiszNjcyNyA3OWM0ZTgyZWU5OTdjOGY0MTAwZDkzZmI4NWU0MDk3YjA0NWEwODJhIHJlbGVhc2UyMy1tYWludAorMzY3MjggMzNiOGNlNjYyMDJlYzkxOTdiY2JmZjBhY2YyZGFlMTc3NjQ0NzEwZCBsZWdhY3ktdHJ1bmsKKzM2NzI5IDkxNDZlMmVhM2JkNTBjZDU2MWQyMmNlMzUxZjhiYzQ4ZjBjNjZmYTMgbGVnYWN5LXRydW5rCiszNjczMCBmNDEyZmEyYjNmZGVmN2M5M2RkZDNhZjU3ODMyZWE0NTNmZGQ5ZjY1IGxlZ2FjeS10cnVuaworMzY3MzEgZDRkZDdiODJjYzc1YmI2YjViOWE1NThkM2NhODM0NjRjNjk4OGUwZSBsZWdhY3ktdHJ1bmsKKzM2NzMyIDY1ZjExYThkN2M4YjM5ZTc0MTJlMjJlODAyMDhkYzBiMTAwOGFjY2YgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjczMyBlMjI1NzRiZTg3NjQ5YTQ3ZjVhZWE2NGFkYmRhNmU2MTdjZmU1MDg3IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY3MzQgNGNjZTAwMDQ3Zjk3NDk4MDZmMzM1ZWRkMjA1M2VmZTRkY2NmMjRmYiBsZWdhY3ktdHJ1bmsKKzM2NzM1IGQ2NzRkNzhkOGRhNjY0MmZlMTgzZGNiNzc4NzIyMmY2Y2VkNTRhMjIgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjczNiA2ZDE2YjA3YWRkYzNhNmQzZjQyMDFmOGUyMTQ1ZTljNjlmNWUwNjU1IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY3MzcgNTQ2NzE3MzZhMjllNGU3NGQwY2Q0MDhhZDQ2OTFkYWFmOTcwYzhiYyB0aW0tZG9jdGVzdC1icmFuY2gKKzM2NzM4IGY1M2I5MDFjOGFmZThiZjIxNWRlNDc3NzYxZjJiZTk2NGVjYzJjYTYgbGVnYWN5LXRydW5rCiszNjczOSA2NTMxOTYwN2JlZDhhMTg2YWFkMjY5N2ExNmYyYWFiMWE0NGRkZjQ1IGxlZ2FjeS10cnVuaworMzY3NDAgNjZjNTU2ZjA5MTYzN2QxOWVhY2MxZjcyMmU1OTM1YTNiZmE5Njc0ZSBsZWdhY3ktdHJ1bmsKKzM2NzQxIDE1MzM3MTljNjEzODM5ZTQyYTdlOTVkNDg5NTM3Njk0OWRkMjRhOTAgbGVnYWN5LXRydW5rCiszNjc0MiAzMjlkNDkwNmMzM2ZjN2QzODgyMzkyZjcxOTBjNTY2Njc1MjZhZThjIGxlZ2FjeS10cnVuaworMzY3NDMgODkxNTlhMTI2OGNjZGU1YzFlYjZhNGUyOTllZmY2YjZiY2RmYzQyZiBsZWdhY3ktdHJ1bmsKKzM2NzQ0IGNhYzVjOGYzZTk5MGYyZTc5NmZmYzY3ZWJlZGE4OWQ1MjBmZmUxYjggcmVsZWFzZTIzLW1haW50CiszNjc0NSBhOTg1NmU3M2UzMmQ0MmQxN2Q0NWY2OTk5ZmVjZjYwYzg5YTlhODc0IGxlZ2FjeS10cnVuaworMzY3NDYgZmY3NzcyNzU1NWFlNTEwNDI5ZTA1YjZjYTRiOWFkMDg5YzI0YjY3YyBsZWdhY3ktdHJ1bmsKKzM2NzQ3IDQxZmFjYzNjY2RkMzM5Yzk0Y2UyYmU2YjhmMTg3NTRiYmEzYjc3ZWEgbGVnYWN5LXRydW5rCiszNjc0OCA3ZTc0NTdhNjliNGQ4MWRkZWViOGQwNDAzMjg5ODM0ZWFmYjVjYjQ1IGxlZ2FjeS10cnVuaworMzY3NDkgMjViNjY5ZjRiNTZjZjYyYzNiMGMzZjY0MGJjNjczZmRmZTBiNDZkNiBsZWdhY3ktdHJ1bmsKKzM2NzUwIGJkYTk4MzA0ZGViNWQ5NGY4NTI1MDliOWRkNjk0NWM2YzhlYmJkYmUgbGVnYWN5LXRydW5rCiszNjc1MSAzODI0ZmEyOWJlNDljYzFjMWI3OGRjMzM2NTM3MzI5MjFjNTY0OTA3IGxlZ2FjeS10cnVuaworMzY3NTIgNjkzNzAyNTMxMTViYTc3YmQ3ZTY0OTA0NjdiOGEyZWM0OWRmODJhNiBsZWdhY3ktdHJ1bmsKKzM2NzUzIGYxYmJmMTQ3ODEwYjI5NDYzNWE2ZjBhM2NlOWNiMDNmYTQyNDUzMmQgbGVnYWN5LXRydW5rCiszNjc1NCA5MzY3MTJiMzFiZWRjOGEzMjU1MjUzNzliNGQ4ZWIzYTkzOGU0NzFjIGxlZ2FjeS10cnVuaworMzY3NTUgNjYzYWQzNDk1MzRiMDA4NGQ3YmRkYzA4ZTlhYmJlZjMzOTkzODYxMiBsZWdhY3ktdHJ1bmsKKzM2NzU2IDVmNThmY2Q3YWNjZjYyMjE0ZjMxNGRiY2Q4NWU5MjE5MTQxMmJiOTYgbGVnYWN5LXRydW5rCiszNjc1NyBjMzFkOGYzOGZkN2Y2ZjFmZDRhZDRiZjAwZDQ0YzY3Yjg0MTIyOGU2IHJlbGVhc2UyMy1tYWludAorMzY3NTggY2U0ODhhYTA0ZjI0ZWEzNjhkZGY5YzExYTQwMDZmOWUzMzhmNDA4ZiBsZWdhY3ktdHJ1bmsKKzM2NzU5IDhhYzRmYWEyODJlMGI5Y2YyOTE0NGY2NzdiMjVhYzdhZDE3NTQyMTggbGVnYWN5LXRydW5rCiszNjc2MCA1YzIxNDlmMzZjM2VhYjZjYTA1NTFjM2U1MTA5MTBjMDBiNmQxMmFmIGxlZ2FjeS10cnVuaworMzY3NjEgZWM3MWFlM2JjMmRkYWY1ZWU4ODNjYzE5N2UwMjgwMzEyZDAxMGNlNSByZWxlYXNlMjMtbWFpbnQKKzM2NzYyIGJkM2RkNmIzZmY5NzI2ODgyODZmZjUxNWRkMDM3YjBiODZkNThjMTUgbGVnYWN5LXRydW5rCiszNjc2MyA0NWExNzBjNGNhNTZjZWQyNmZmY2ZhNDc5N2Q1YzRhNTFkMmQ0NGM1IGxlZ2FjeS10cnVuaworMzY3NjQgOTFmYTgwYTY3ODExYmNkZTUwZWI5MDA2YzFkMDU5OThiMDRiOTAzZSBsZWdhY3ktdHJ1bmsKKzM2NzY1IDJjMmY1Y2ZlZmE2MDU2ODNlZjdkMTQ2YWFiYTgyMmQ0ODJhYmE2ZTIgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjc2NiBkZmRlMDg1MjI4ZWVhNTBiNDZmYWQ2NTdkNWViNjhjZGU3ZmU0ODE5IGxlZ2FjeS10cnVuaworMzY3NjcgZjA3MWE1NTNhYWU1OGE0NTNmNjYzOTQ2OTZkNjM3ZjUwZjhjOTNiYyB0aW0tZG9jdGVzdC1icmFuY2gKKzM2NzY4IDQ3M2NiMGVmODJkMjQzNDZmYzUxMWM4NDkwMWUyMjZhYWRjZDFmZDAgbGVnYWN5LXRydW5rCiszNjc2OSAyNjYzYjRmNTM1YjdjYzU4YTVhM2NkYjQxOGFhNzFjNTViZTUwNjFiIHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY3NzAgNjUxMTg4YTY2MzhkYzNmYzQ3ZTFiMTI2ZjcwZGI0OWUxMDZiZTVkZSBsZWdhY3ktdHJ1bmsKKzM2NzcxIDhjZTM0NGY2Yzk1NGVlYzhjZjExMDhlOWQ1Y2RjYTIxNTk2OTExYjMgbGVnYWN5LXRydW5rCiszNjc3MiA1YWE4NTA5N2NiMmNkY2M5NmE4NGY0ZDRhZTQxZDQ4N2UxMDYxZDQ1IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY3NzMgNTgyZWI1MWI4NDkyMTQ1MDZiMDFmY2QzMGM4MTk1NGFkY2Q2MmMxNyBsZWdhY3ktdHJ1bmsKKzM2Nzc0IDIyZGVkMzA5NjQ4YmNiYTMzOTMyNTQ3Yzk5MjBiMjc3ZTlmY2QzYmQgbGVnYWN5LXRydW5rCiszNjc3NSA2NmRjMjExYmY1MDcyMWFkMDFmNzEzZWZlZGMwNTg5YjhhZThhNzYyIGxlZ2FjeS10cnVuaworMzY3NzYgODRiNDc1Nzk5OTE4MmUwZmNjOWE1MTFlMjQ2YmZmYzMzN2EyYmNkNyB0aW0tZG9jdGVzdC1icmFuY2gKKzM2Nzc3IDYzZGY0Y2I0OTJhMTZjNmFmYTlmZDU3M2Q5MzNmYmIwZDIwODE5NmIgbGVnYWN5LXRydW5rCiszNjc3OCA5ZmI1MTM4ZjU4ZGQ4MWI5MThkMjZlMzM0Y2YzZjJhYTQ1MzNhZjcyIGxlZ2FjeS10cnVuaworMzY3NzkgZjYzZDQ1ZmQzZmNlNzQ0ODk0OTJmZjIxODBmNjg1MjBjMDZmZjU1ZiB0aW0tZG9jdGVzdC1icmFuY2gKKzM2NzgwIGUwMjc5MjExMjI4ODlhZThkYmZiOGY4Yzg2NmEzMGRkNmVlZmE5OGIgcmVsZWFzZTIzLW1haW50CiszNjc4MSA5ZjhhN2JhMjEwNTVlYmUwZGEwZDYwMzM2OThiMzUwNzUwZjUwM2U0IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY3ODIgOGIzOTBkZjdhZjg3MzczMmQ5Y2Q2NWY4ZmJhMDZmNWJkMDk5M2RjZSB0aW0tZG9jdGVzdC1icmFuY2gKKzM2NzgzIGU0ZmVlZGIyMDVmMmQ2YjhmZDAwNjRmNjMwODEwN2UyOWJmZmYyNTYgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjc4NCAzMTQ0MjJhMjhlM2ZiODU4YjVmNWU5NjM4Y2NlMzAxZDUxNzJiZTc5IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY3ODUgZDc0MWNiMzc3ZjgyOTVmZjEwNjMwZWRmODEyNGQwOWYwNDVkOGE4MCB0aW0tZG9jdGVzdC1icmFuY2gKKzM2Nzg2IGZjZDY5MGM4YjJjYTZkODQ1NWUzMjkxMzc4YzZjNzdjNTRjZTZiZmYgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjc4NyBjYWZkN2U0ZTc3YWQwNzgyYjNlMDBhODY0NjgwOGVmNWIwMzE5ZDk3IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY3ODggZmJiNTQyOGViZjQxMDllNmFhNzhjMjUwNTdlYjJkYzFmMGE0YWFmNCBsZWdhY3ktdHJ1bmsKKzM2Nzg5IGRiMzhjMWU4Mzk2NTJkMWVmNTlhNTYxZGYwOTQ1ZWUxMDM3N2U4NDQgbGVnYWN5LXRydW5rCiszNjc5MCBiNjM5Y2I0NWIxNzMxM2RlZjIwYzcxNzE4NWM4OTI4OTk5YWE2MTUzIGxlZ2FjeS10cnVuaworMzY3OTEgOTUzY2U1YWYxMGEzMWIyOTM1ZDMzOWE5OTQ0NDdmODIwMDMxZTkwNCBsZWdhY3ktdHJ1bmsKKzM2NzkyIDllYmQ0MDU2ODNjZDg1NzI0MTVmOTJiOTlhYjc1ZWVjZjExY2MyMzkgbGVnYWN5LXRydW5rCiszNjc5MyBhZGZlN2QzOWEwNDlkNmEzYzkzYjQyZmY5ZmI5MjY5NTc4MmRhZWU3IGxlZ2FjeS10cnVuaworMzY3OTQgMDI0ZmYwYWI0NTg4MDMzNTVhM2QzNjc2YzA3NTQxOWFmM2VhMTA0MyBsZWdhY3ktdHJ1bmsKKzM2Nzk1IGI1NjQ4MWE5MDUxOWU1YTIwYTE4ZDUzM2FhM2ZhMjUzMTRlZDYyNGIgbGVnYWN5LXRydW5rCiszNjc5NiA5NzFlNTE0MTM0NDdjMmU4YmQzYzZhYzViMTY3MGUyZjY0YWRkZGUxIGxlZ2FjeS10cnVuaworMzY3OTcgMmJjYmYzZmI3MDIxZWZiNjQzMDVkYTc0Y2FhYmNmZjcwYjY5NDYzNiBsZWdhY3ktdHJ1bmsKKzM2Nzk4IGUyZmVhMjJlMGM1MTNkNjFiYzk4YTU2OTEzMTljNDAyM2RhM2QzYTMgbGVnYWN5LXRydW5rCiszNjc5OSAwNzFkMzM4MTc1M2I2MGQyMjc2NmQxN2ZiODcyOGE1NDk5NjAyZmQ2IGxlZ2FjeS10cnVuaworMzY4MDAgYTlkNTkxOTdiMTYzMWRkNGEzYmVhMGVlMDY4YWFlMGFiOTc4Y2JjOCBsZWdhY3ktdHJ1bmsKKzM2ODAxIDE1NmFjNmRlOTYyNWM0N2RmMTViYjExMjRkMjBkNDRlNWVlMzY2NjcgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjgwMiAwYmYwZjRiZWExNDQxNjg5YjgxYTM0MTNjNGM2OGEwOTAxMjNlMGUyIHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY4MDQgZTljNjQxNGRiZGI2MTUzNzM1Mzk5OGU4Njc2NzA1N2ZlMTU0ZDdmZCBsZWdhY3ktdHJ1bmsKKzM2ODA1IDJiYzMzMjYxNmNkNmY5ZmUxYWM3NDJmMjUyMWE5ODEwNWE2ODdkYzcgbGVnYWN5LXRydW5rCiszNjgwNiA3YWFhODUyZmE4NTZmYTMzODQ1MjZjNTM0M2Q1ZTBmZmQ2NmI5MDkwIGxlZ2FjeS10cnVuaworMzY4MDcgNWU4ZTMwOWMwYmIwNjk3M2Q5N2JiYTYxOGU2MDcwODFjYzY1NGIwZSBsZWdhY3ktdHJ1bmsKKzM2ODA4IDM0MWI3YWRiYTk0NDdhMThiY2UzODUxZGY0M2UyZmQwNmYwY2E1ZGEgbGVnYWN5LXRydW5rCiszNjgwOSA5ZjY2MjU5YWVjZTMxNjVjYzJjNzBlMGEzMzU0NDIzYmM0MGRiZTBlIGxlZ2FjeS10cnVuaworMzY4MTAgOWFjNjQzNTQ0NjI5YjA0OTc3YjdhOWMwOGE4N2JhZTkzN2ViZTdkZiBsZWdhY3ktdHJ1bmsKKzM2ODExIGVhMzM4YmFhYjg1OTlkNzE1N2YwMmY0MGRiZmIwY2Q4YWZmYmM1NDEgbGVnYWN5LXRydW5rCiszNjgxMiA5ODIxZTM4OGI1OWQ5M2YzOTZiNzM3N2ZkN2VlZjU4ZTlmOTQ0OGVlIGxlZ2FjeS10cnVuaworMzY4MTMgZmZhYTE3NWQwYWEzMzdmODg0Mjg0NzQ3MWFjYmRhNTllY2ViMjRhOCBsZWdhY3ktdHJ1bmsKKzM2ODEzIDA1NWZjNjk1NWYzYzY1MjJiZmViN2VkNGM2NzFjOTdkNWJhYWFhYzIgbGVnYWN5LXRydW5rCiszNjgxNSBlNmQwMDkyNzZjNTQ3OTYxYTQzMGI5OGJiYTEzNGJiZDQ4OGExOTY4IGxlZ2FjeS10cnVuaworMzY4MTYgM2U5MDljNTRlMzBjOTFkZDI3N2JlNzVkZTE5ZTk3YzRmM2U3OTY3NiBsZWdhY3ktdHJ1bmsKKzM2ODE3IGNlYjFjM2YxYWM4YWJiNDYxYzUwZWRkOTk4MTcxNTRjZmVlNWYwMDggbGVnYWN5LXRydW5rCiszNjgxOCA1ZjRiZmJlMjZhNGRjNDY0ZWZkNmYxMzAxZmJhZmEwZmQ2NTQ2ZDMxIHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY4MTkgODQ0MTBhMGQ2ZWE5NDEzNDAxZWE1OTZiNGMzZWZmZmVlZWU1YzEzYiB0aW0tZG9jdGVzdC1icmFuY2gKKzM2ODIwIGVhODc1NTNlMjU2MDlmOGFmYjA2ODMxYWY2MDM0NjAwNjRhZmYxMjMgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjgyMSBiZDQxMzY2N2FjMTZiNjdkZDJkMzM5NTU0NzdlOThmZmNjMzI2MDk0IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY4MjIgMmU2N2MyNzA4NjcwOGIxMWJhODhmNjIxMzc1ZGNjODQwNDc0OGM4MiB0aW0tZG9jdGVzdC1icmFuY2gKKzM2ODIzIGI2ODkwZWE1ZmRlMGY2ZTA1MjljZmE3MmQ3NjI4YjBhOWI1OGNjNTEgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjgyNCA3OTYwMDY1OGJlNjg5MmE5MDU3M2NlYjcxN2I5NmQ3ZjFmYTk2Y2E2IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY4MjUgYmU1ODRjZGE1NDdkNjQyYzg5YmQ5Y2Y1YTU3NTFjNGU4YzIzNmMyZiBsZWdhY3ktdHJ1bmsKKzM2ODI2IGY3ZDUwZTkxYmVmMzllZGQ0YTJlNmUyYzVlNDc5NjU4YTkzM2U5ZjEgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjgyNyAxOTc1MTdkODA5OWU0N2UwMDA1NDNiNTQ5YWVkZGRlYjU3MDU1Y2ZjIGxlZ2FjeS10cnVuaworMzY4MjggNGM5ZWZiM2E2YmIzZjYwYzQyMGE4NTUzN2M5M2E5NjUzYzkyZDhkNCB0aW0tZG9jdGVzdC1icmFuY2gKKzM2ODI5IGMyNmE0ZmQ2OTc0NGFkYzRjY2VmZWM3MWRkMTk3YWVlMzBiNWQ4MTAgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjgzMCBmYjZmZmQyOTBjZmIzOWQyMWFmZjFkNzIwODJkZjZjYzNmZmNlMWU5IGxlZ2FjeS10cnVuaworMzY4MzEgYWFjZGQwZWNhMWViNTYyZTM2NWRhNTI1ZmFiZjA0Y2UyYWY4YjEwMiB0aW0tZG9jdGVzdC1icmFuY2gKKzM2ODMyIDliMTg4MTU4MTgxZjdmMTM2NzU0NWRkMjg1NmFmOTVjNTJhMTMzYjcgbGVnYWN5LXRydW5rCiszNjgzMyA0ZjAxODk0YWI0NThkYzc3YWJlMTY5MzU0OTc4ZjQxYmIyNDIwZTYyIGxlZ2FjeS10cnVuaworMzY4MzQgNDBjM2E1MWNiNzFjZDM1NDc2MTIxOGZhNTFkMWMyMGViY2QxYWNkMiBsZWdhY3ktdHJ1bmsKKzM2ODM1IDM2MDA0MGQzZDRmYWQ4MjE3YzExNjc4ZjdmZjg1NmVhMWQ5Y2VhNmQgdGltLWRvY3Rlc3QtYnJhbmNoCiszNjgzNiA1Y2FiMzM2MTgyOTMwMDRiNWM1NTJkOWVkMDY4NzljZThiMTc5MmY0IHRpbS1kb2N0ZXN0LWJyYW5jaAorMzY4MzggNjc4ZDQwZmNlMGIxNGE5OWU3NjMwZjUxMWI4Y2UwN2NhMzA5MTdhZSByZWxlYXNlMjMtbWFpbnQKKzM2ODM5IDVjYzU1ZDM2YmIxZGNmOWIwODVkM2M1YTllYjFiMDViNzA2YjJiN2YgbGVnYWN5LXRydW5rCiszNjg0MCBlODllZjBiZmExZmY4Y2Q0YjEwYTQyZTgxNDJhMWEyNzcwZWJjOWU3IGxlZ2FjeS10cnVuaworMzY4NDEgNTBjMTIyYmM3YWFjYTM4ODJjNzQ3ZjhlNTVkNzI5OGVhNjA2ODY2NCBsZWdhY3ktdHJ1bmsKKzM2ODQyIGFlODc3MmQxNWE1ZmE3MTYwYTM2NjAyOWU3YzBhMTk0ZTVmNWQyN2YgbGVnYWN5LXRydW5rCiszNjg0MyA3MjZkYjU4NTQ3NDYxNGYxMTQwMDE0ZTQ4YjYyZjZjZDM4Zjg3Y2RmIGxlZ2FjeS10cnVuaworMzY4NDQgNGIzZjhkZDkyNjlhZTA3MTkyYTliNzQ2YjU0YTJmYjQyMjI0MTY1NyBsZWdhY3ktdHJ1bmsKKzM2ODQ1IGY1MTk4OTZjZjVkY2JkZTM5ZDU0Mzc2MTc4ODkzOGE3YTEzZDJmYmIgbGVnYWN5LXRydW5rCiszNjg0NiA2MWMwMTcxNTc3NTY4MzQ0NWZhZGRiZmExZTNkYmVhZmFkMjM2OGU2IGxlZ2FjeS10cnVuaworMzY4NDcgOGY4NzQ0MGM2ZTgwY2QxMmVmOWE3OGIzNjE2NWIyZmMxM2M3M2YxYSBsZWdhY3ktdHJ1bmsKKzM2ODQ4IGE4YTQ4NjMzOWQ4MDY0NmY1YzRkM2QyZjdmNWQwNTljMTM3MjA1YjkgbGVnYWN5LXRydW5rCiszNjg0OSAyZWEwOTY2MmEyZDQwYjVjYzEzMTI3Yjk3ZGE4Mjk2Njg5YTYxYWI0IGxlZ2FjeS10cnVuaworMzY4NTAgNDQ0NTAxMjljZTM1NmU1ZjBlOWRlOTk2MzVhMDZiZmQ0OWQ3MmFlNyBsZWdhY3ktdHJ1bmsKKzM2ODUxIGM5YWU5NWQ3N2E0MjdmOThmNDgxZmNhNWE5ZThjZmU4NWY0YzE0OTQgbGVnYWN5LXRydW5rCiszNjg1MiBiMzRhOGRjM2NjYWVjZjJjNTg3MWY0NGE4OWY2NzM0OWExZTM2OTJlIGxlZ2FjeS10cnVuaworMzY4NTMgNGUyYzY2MDIxYmYzODBkMjQzMjYyNjM3YWJkMDI1MDM0YjI3MTRkMCBsZWdhY3ktdHJ1bmsKKzM2ODU0IDQzZmJmMjlkZDgzYTk3OGM4MTRiYzRkZTBhYTZmZmIxMjYyZTgwYmMgcmVsZWFzZTIzLWJyYW5jaAorMzY4NTUgMjUyYzY1NDY5MTE0Njk1YzZhZmY3ZjQ5YWZjYTA1Y2Q1YmRkNWU1MCBsZWdhY3ktdHJ1bmsKKzM2ODU2IDFhYTQwYTA4OTgyZmE1NWVmZjIwOGFkNjJhNzkwMDU5MmMzYTgyMjMgbGVnYWN5LXRydW5rCiszNjg1NyAzMDAyNTk2NTMyNGE1ODFlMDcxYzE3ZTRlYzVkMGNhZDcxODkzZDBiIGxlZ2FjeS10cnVuaworMzY4NTggMzA5YmViZWRmYzk3YTFjYzIzMWNiMjdjODZmZDZlM2Q5YzRmYzU2OSBsZWdhY3ktdHJ1bmsKKzM2ODU5IDJjMTE2ZTdmZjE2MzZiZTBjYWYzYzBkN2Y4N2ViYWE0MmM5YzFiYzYgbGVnYWN5LXRydW5rCiszNjg2MCA0NDFhYjNhZDZkMDFhMGNiNjJjNjM4ODgwNTg3ZGNjOTMyOWQwODNlIGxlZ2FjeS10cnVuaworMzY4NjEgNGJmNjg1NGRiNjU2ZWQ5ODBjMzM1ZmRmZThkMzc4ZmFhNTY3ZDM4MSBsZWdhY3ktdHJ1bmsKKzM2ODYyIDRmZDU5NjUxZmUzZjlhNjI2YzllYWJlMjE4NTZlMmVjODc5NWU2NjcgbGVnYWN5LXRydW5rCiszNjg2MyAzOTZkMDExZjgzNDhiYTY3YTEyYjU5ZTU0MmZlMTBhYTBjZGI3OThkIGxlZ2FjeS10cnVuaworMzY4NjQgYjVkY2ZlN2E0MTU5NjBhYjBmYjNjMzJlMDVlZjc5ODkyN2JkZWY5OCBsZWdhY3ktdHJ1bmsKKzM2ODY1IDg2N2ZlZjJiNTA2MGFjODIwMWM5MTZkOGJiOWYwZTYzM2RhYmE3NjQgbGVnYWN5LXRydW5rCiszNjg2NiBmYTNkMDFmMGZjNDQyMTUyZDUyYjQwNmY3OWVjN2YxNDBiNDQ1MmNlIGxlZ2FjeS10cnVuaworMzY4NjcgOGQ3MDdkNDljYjliYzdmOGJkNmQ5NzYwYTQzZGNhN2VjZTk1NDBiMCBsZWdhY3ktdHJ1bmsKKzM2ODY4IDlmYjJlMzBmMjZiZWU1ZWUxZTg1NjE2NmZhZGIyODYzNGNiOGU0ODMgbGVnYWN5LXRydW5rCiszNjg2OSAzNjdjZTUxNmFkMDU0YmQ4ZWU3MjgwNGFiMGY0YTgwYTQwNjY0ZDkxIGxlZ2FjeS10cnVuaworMzY4NzAgNDhjYjRlZDQ5NGE2NTgxMDIxMmEzOTU1NzE5ZGMyNmQzOTM3YjAyMiBsZWdhY3ktdHJ1bmsKKzM2ODcxIDhmNmQyMDVkNTMxYmM5N2VjY2MwZGYyZTFjODMxOWUxZmEwOWQ1Y2EgbGVnYWN5LXRydW5rCiszNjg3MiBmZjE3NjI0YjI2NDI5MjYxOWYyNDBkMmY4MjEzYjg5YTVjZDc3MTFlIGxlZ2FjeS10cnVuaworMzY4NzMgYjBlMGE1Mzg3MGI2ZjlmODA5NzAyN2Y0MTRmNzIyNjU1YWZkZDJlYiBsZWdhY3ktdHJ1bmsKKzM2ODc0IDhjYThmZWJjMGEwZDc1MDA5MGM0M2I5ZTMzNmVkM2MxMTdjNGVlNTYgbGVnYWN5LXRydW5rCiszNjg3NSAwYmViNzU2OTY1ZGY5Y2Q0NjU3Y2QyZTkzZTBjZTMwYTA5MWQzMTUxIGxlZ2FjeS10cnVuaworMzY4NzYgZTViOWU4NzJhN2QzYmEyODU0MjY5ODFlZDExYWQzMGM1NjZhNWQ2NCByZWxlYXNlMjMtYnJhbmNoCiszNjg3NyA2YWEzMWQ3NWM0Zjk5MGQ5NWI4ZTZkNWNjZTZjYTJmN2Q0OGM1N2E3IGxlZ2FjeS10cnVuaworMzY4NzggNWM5NDBmOThlNDY1NTljOTIyZWI4YTE1ZWJiY2RmMjBkMTFkZGNjZCBsZWdhY3ktdHJ1bmsKKzM2ODc5IGFiOTNhZmY0YzkwYTg0YmYwYzAxNTMwOTk0NDVlMmZiNDMwMDQ1ZjggbGVnYWN5LXRydW5rCiszNjg4MCAxZjM1OGE2YjRiYzMzNmU1NzA0NTE0YjI4MjdlYTE4NTliYjVkMmYzIHJlbGVhc2UyMy1icmFuY2gKKzM2ODgxIDIwNGQyOWFjYmEyODAxMDEwYWZmYTdmMzhiZDYxYTNhZGE4ZjIxNjMgbGVnYWN5LXRydW5rCiszNjg4MiA1MjE4YmZmNTY0NDk0ZjZmMTBhNWIyYWQyMzE2Mjk0YzVhZDI0NTA5IGxlZ2FjeS10cnVuaworMzY4ODMgYWQ4MTgzMzhmOGMzMzA2NTY5Y2JjNjM2NjkyNGZkNjcxNzNmMWMxNyBsZWdhY3ktdHJ1bmsKKzM2ODg0IDUzMGMwMmI4M2VlYTVhZDE2NWI2YzhjODQwNjYwMmYxYWM2MTNjYjMgbGVnYWN5LXRydW5rCiszNjg4NSAyYzkzZmNlZWU0MmQxM2RhZjA1NGU2NmY3NDBmYjA2NjA4NWM4ZmEzIGxlZ2FjeS10cnVuaworMzY4ODYgNGY1ODhmNTdhOTNiMDM1YWQwM2I4ZDA0NjA4MzlmZWRjYjdmYTU4NyBsZWdhY3ktdHJ1bmsKKzM2ODg3IDg4OTdlNzdjZDc5YTg0MWJmZTc3NWM1NzFjMTZkMjBjNTUwOGFmZmYgbGVnYWN5LXRydW5rCiszNjg4OCA5NDY0NDE1YTFmODk0OTkxOTkyNTdkOTA3OTQwNTMzMjY5YmIzNzhlIGxlZ2FjeS10cnVuaworMzY4ODkgNDliODA4MzIwM2U2YmJjMWY5Nzk2MTFjODE3MzRjM2RmZTE1YjhiYSBsZWdhY3ktdHJ1bmsKKzM2ODkwIDlkZGZhNzRjYjI1MGY0OTZmODE0MzJhYTc1ZDlmNDk1NDAzNzBlNDkgbGVnYWN5LXRydW5rCiszNjg5MSA4NTAwMmNmNGUyM2JmNTBkOGE4MWVkNTdhOTU2YTNmZTE1NjM2Y2FjIGxlZ2FjeS10cnVuaworMzY4OTIgMmU3Yjc4MDMyNzAyYzdiNmJhNmQ1NjdlZDE4N2VlZjc4MTE5MjhjOCBsZWdhY3ktdHJ1bmsKKzM2ODkzIDg2MDdhYzJmODFjODM5MjBkZDQyYTQ5ZDA3Y2MyMjRlNGYzYjM3OTcgbGVnYWN5LXRydW5rCiszNjg5NCAyNjc1MmRmOTM5MTM5MDMzZmFiNmMzODczYjBjNDllNWY2ZGI3NTJjIGxlZ2FjeS10cnVuaworMzY4OTUgMTY2MGE2OGZhNmE0MDdhNzNkYzdjYWM3OTE2YzliYzFlZWIzZDJkMCBsZWdhY3ktdHJ1bmsKKzM2ODk2IDdjM2Q1Njk1MjJjNDkyYWVmN2UzOTkzYjU1NDk4NTkxOGUxMmI2N2IgbGVnYWN5LXRydW5rCiszNjg5NyBiNjY5YTYwOTdiYTg5YzgyNmQ0MGIwM2FjNjFlODExYmNhNDM0ODQ3IGxlZ2FjeS10cnVuaworMzY4OTggZWUzYWFhNzkxODQyOTJkODAyZjViZGU5NzUxMTc2ZmM1NjA4NjEzZiBsZWdhY3ktdHJ1bmsKKzM2ODk5IGY2YjJmMTkyZTAzYjUzZmIzMzhiMTU0NjI5NGNhMjkzYTE1Y2FmMjAgcmVsZWFzZTIzLWJyYW5jaAorMzY5MDAgY2UyYTE5NjIwM2M1ZWNlOTI3YmVjZjA0ZTI5MThlOGU1NzU0NzlmMiBsZWdhY3ktdHJ1bmsKKzM2OTAxIDIzM2MyMjM4NThmNzdiYmFjNTJkZGI1ODU5MWNiNTc0NGQ1ZjI1NWEgbGVnYWN5LXRydW5rCiszNjkwMiBmZWUyMDM4YjhmYTlkYzgyYjA2NmQyM2UzYjAzMzQ0N2YzMzNiMjZmIGxlZ2FjeS10cnVuaworMzY5MDMgNDIwNDg4NDA4ZTBlM2Q2NDMzYzdkMDk1MzQzNDI4MWU0NTIyODQzNSBsZWdhY3ktdHJ1bmsKKzM2OTA0IDVhNGQ3N2I2ZWZhNjVlYThhZTE4Njc3YWIyNjM1Mjc3Mjk3ZWYwM2IgbGVnYWN5LXRydW5rCiszNjkwNSAzMDQ1ZjRmMzRlZjI0N2JkNTQzOGYyMGEwYTFhNWIxNDA3YTkxNTVlIGxlZ2FjeS10cnVuaworMzY5MDYgMTdmYzg4YTFiODczNTc4NGM0MmNjM2RkZDMwYjQ0NWJmOWU0OWY5MSBsZWdhY3ktdHJ1bmsKKzM2OTA3IDFkYmQwZjM0NWE3ODg2MGM0OWE2Mjc4MzY2N2YzNDg2NjJlMWM2NjQgbGVnYWN5LXRydW5rCiszNjkwOCAyNzQ5MzM0ZDcxYTQ3MTQzZTAxNTU3NzU3OTIwZTdmOWFlZDhiNjgzIGxlZ2FjeS10cnVuaworMzY5MDkgMTYzNjIxNTE3Yjk4MjU0Y2E4NTU4ZWM5OWVjNjM0NmVkNzNlMGRhOCBsZWdhY3ktdHJ1bmsKKzM2OTEwIDY3ZDI1MjE3YmM3ZjBjNDc0MjFjM2NhZmE1ODI5YjMwMjkxYmJhYjkgbGVnYWN5LXRydW5rCiszNjkxMSBjODFlZDA3OTU3NmYyYTVlN2U3MWM0NTdiMWFlODI5ZWNlZWQ5N2IzIGxlZ2FjeS10cnVuaworMzY5MTIgYzM0ODdlZjNhNjljNGQyOGEwMWRhNWUxZDcwNmYzYzFjZTJhZTc2MCBsZWdhY3ktdHJ1bmsKKzM2OTEzIGQwZWIwOThiZTI2NDhmMjU3NzZiYWM5Y2U3MWM4YzUwMTIyNzA4NTggbGVnYWN5LXRydW5rCiszNjkxNCBjNDc4YTcxYzIzODQwNDJiODJjN2I3N2JmY2M0NDRhYjc5NTgyZmMwIGxlZ2FjeS10cnVuaworMzY5MTUgNDU1NjY3MTQ2ZDRiOTllY2I1YzQ1YzQ4ZTNlYTFhMjJiMWIzYjNjYyBsZWdhY3ktdHJ1bmsKKzM2OTE2IDk4NTM3NWFjYTk3MDczMTBmMDc1NDYyNWZlZTFjZDRlOGI5M2E3M2YgbGVnYWN5LXRydW5rCiszNjkxNyAxYWYzYWQ0OWQwNmZlMGUyMjExYjM2ZjNjMTAwZmU3NWE0N2JiNzFjIGxlZ2FjeS10cnVuaworMzY5MTggMjdhZGEyNTUwOWZmMjYyNjhjZjE4NWI5MTViYzc3MjZkM2Q5ODBmZiBsZWdhY3ktdHJ1bmsKKzM2OTE5IGZiZWEyYmUzNTU2MjhiZTIzZjQ0YTZjNzJkN2MwNWQwMWQ2MzIzYmQgbGVnYWN5LXRydW5rCiszNjkyMCAyOWZhOWQ2YWZlYTAxZmQ4ZmFhNzBiNWFlNTBlNDJlOWNmYjNjNGM1IGxlZ2FjeS10cnVuaworMzY5MjEgZjBhNmVmM2E4NzRlZjhkYzVhOGRjOTNmMzMwNThmYjUzZjk2NTk1NSBsZWdhY3ktdHJ1bmsKKzM2OTIyIDVlNjlmN2M4MGVmNDI3MzM0Mzg1ZjY1MTJlZDRjNzY5YzlhYTllMWEgbGVnYWN5LXRydW5rCiszNjkyMyA2ZjM4ZTNiNjRlZjQ3MjZlZmU5ZDRlYzVjNjBmYzE1OTA5YzBmZGViIGxlZ2FjeS10cnVuaworMzY5MjQgMzFjY2VhOWU5OGE3NDZmYTBiYTkxYTk3OTFmMjQ3ZGYxODQyZjk4MCBsZWdhY3ktdHJ1bmsKKzM2OTI1IGVlNDNjYTRhMmMyMzhlNDFlNzMyMzMwY2RkOTQ2Yjk0YzFkMWZjNDEgbGVnYWN5LXRydW5rCiszNjkyNiA3NjRkMjhmYzNkMzY5OGVhOGZiZmMwMTM5YTU3ZmFhNmY0YjJmN2YyIGxlZ2FjeS10cnVuaworMzY5MjcgOTBkYTcwOTg2NDA3MjM5NzRjOGFiODhjMGVjOWViOTExMWExZTc2NCBsZWdhY3ktdHJ1bmsKKzM2OTI4IDAzMDQzYjI4OGIyODc1ODYwMDJlMDdkODFiNTlkMDY3ZmMzYmNjODUgbGVnYWN5LXRydW5rCiszNjkyOSA0NTMyOWQ5ZmRiOGQ1NDU0NzFlNDBhNzExODM3Zjg2Yzk5MjdhNDc0IGxlZ2FjeS10cnVuaworMzY5MzAgY2RhMDQ1NWJkMGEwMzE4OTAwNjk5NDJmZGI4NzQwYmQxMjkzNDgxOSBsZWdhY3ktdHJ1bmsKKzM2OTMxIDJhOGMzNzU4YzRhMTkwNmJlMzFkYTNhZWQ5MjUzZjdmYzE5MTkyYmQgbGVnYWN5LXRydW5rCiszNjkzMiA0NTFkZDQ5ZGY1MzEwOWNkNjJhYmJkOTFhYmIwY2QxNjZiMzRmMGI0IGxlZ2FjeS10cnVuaworMzY5MzMgODIxYzU1N2NhNjEyNGI1ZmIyMDU3ZGMzNmYzYjg5ZjhmOWZmYWNlZiBsZWdhY3ktdHJ1bmsKKzM2OTM0IDRlNmY0ZTllYzliM2QzYTU2NmRhZTg5NGNmNDA3MDNlNDEzYjBiZjMgbGVnYWN5LXRydW5rCiszNjkzNSAwNGQ5ZmRlMTEzMzA5NDhlMmEzZDBjYjdiZTBlNTY3MTYyZTE0ZTdjIGxlZ2FjeS10cnVuaworMzY5MzYgNGRkMTgxNWI0NGVmYWFmOTg1NjdlNTNkYzU3Zjc2ZDRiZTIxNDVjMCBsZWdhY3ktdHJ1bmsKKzM2OTM3IGJmY2M0ZTM5ZmM0NTJiMzUzMjY2NzYzNDZhYzgxMWQxZTdkMzc0NWQgbGVnYWN5LXRydW5rCiszNjkzOCA5ODFmZmY3MzYzYjkyZThlNzRkZjE3OTU0YWYyMjE2OWRjYjAxZDgwIGxlZ2FjeS10cnVuaworMzY5MzkgMDFjYzVlM2Y2Mzc1MjIxYTFiN2M5NzQyMjBhYjNkYmU4ZDM2MWY4YSBsZWdhY3ktdHJ1bmsKKzM2OTQwIDgzNmU3NzI2NmY5Nzc5MTMxNDExMGYzYjQ3MGE3N2ZlZTRhM2UwMjIgbGVnYWN5LXRydW5rCiszNjk0MSA3NDNhYmFjOWY5ZmUzM2VjYmNlZDk3MzljMTVjMGZmOWQ3ZDdmZjMxIGxlZ2FjeS10cnVuaworMzY5NDIgZDA3NWNiYTg1MWZkODZmZDk2MDk2Mzc5YTI3ODY4YzYzMzdkMTZlMSBsZWdhY3ktdHJ1bmsKKzM2OTQzIDA1OGU4NTFlNzkzZWFmYmIxMTQ4MmI5NThhYzMxOGQ2MWRkNzAyMGYgbGVnYWN5LXRydW5rCiszNjk0NCBhNzkyODcyNmRkOGY1YmQ0NGU4NGU5YjQ1ZWMzZDA2Zjc2ZjJkOTJjIGxlZ2FjeS10cnVuaworMzY5NDUgNWVhZTRjZTEwNWZjZjRjNTY0OWY5N2RiOWRmMGFiOGVmMzQ0MmY4ZSBsZWdhY3ktdHJ1bmsKKzM2OTQ2IDI0MGVhZmFlM2VhNzRkYTczNTRhOWY1ZTJkZmRjMThkOGNjYjM5MWUgbGVnYWN5LXRydW5rCiszNjk0NyA1ZjMzNTA3Y2I1NTk4MjM3MWVmYTM5MjJlMjhhZjg2MzNhNjdkZThjIHJlbGVhc2UyMy1tYWludAorMzY5NDggYWJlY2JkNjZhNjI4MGM3ZDk5Y2RlM2NhNTE5MzdiOGM1MTY4ZGYyMSBsZWdhY3ktdHJ1bmsKKzM2OTQ5IDQ0NDU3Y2I4Zjk3MDE0OTcyZDkzM2M0OTQwODI4NTRlNzU1ODkwOGEgbGVnYWN5LXRydW5rCiszNjk1MCBhZmQ1NDEyNmU5YTE5MGZhMDQwYWY0ZjRjZWQ2NmFiNTQxNDM1NjY2IGxlZ2FjeS10cnVuaworMzY5NTEgNTM0N2RhMzFmMDc2YzZjZjI3ZDQ0MDFjMGFhY2U5ZWU5MjAwNjYyMSBsZWdhY3ktdHJ1bmsKKzM2OTUyIDk5MzdkMGU2M2NhMzI1ZjQ3ZDBiM2NlMGE2M2UxYjljZTMxY2Q3YzYgbGVnYWN5LXRydW5rCiszNjk1MyA0ZmQxODUwNWZjMzVmZGQ3YjMyZmM2M2U3ZDE3ZjlkZDcyYzFiNzAyIGxlZ2FjeS10cnVuaworMzY5NTQgNGIwYTBmYzFiYWVhMzFkZjkzZWUyNTZkNTBkMTc1YjNlMGY5ZmUwOSBsZWdhY3ktdHJ1bmsKKzM2OTU1IDQ4MTAwYTAxYWM3YzA1M2E0MTc1YTg2MWVkNjdiYTY5M2UyNDI0YTEgcmVsZWFzZTIzLW1haW50CiszNjk1NiBkZmMyNWUxYjk2MDU4MzQ4YzlkMjQ0MzViZTQ3MTZiMTVjNmQ3ZThlIGxlZ2FjeS10cnVuaworMzY5NTcgMjBlOTBlNTA3OTdkZThmNWQwNjRhYzdhMmU5MjNkN2Q4YTAxODNlZSByZWxlYXNlMjMtbWFpbnQKKzM2OTU4IGIxNjZhZTJmNzczMjE0MzdlOGZkNTM2Zjk1YjczMjNiMmRmNjc5MmEgcmVsZWFzZTIzLW1haW50CiszNjk1OSBkZGQyNGQ3MmFkNmFhYzU2OWY4MTA2Nzc4ZTc0NWFiMWRiOTgyMDhlIGxlZ2FjeS10cnVuaworMzY5NjAgMDFhMzg1NWE0YjAzZTgyOTdjZGU5MzQwOWIxMGU5MTQ4MmFjODQ2NyByZWxlYXNlMjMtbWFpbnQKKzM2OTYxIGM3MGMzM2Y2OWE0NGM5NDYzMDc1YWQ2YzQ1OGViY2Q1ZDQyMjNhMzIgbGVnYWN5LXRydW5rCiszNjk2MiAzYjVkMzdmN2NiNWFkMWU3N2ZmMjAwOGM2ZGJkMjhlMzE0ODBkNDAxIGxlZ2FjeS10cnVuaworMzY5NjMgY2UwMTZkMGVjNzAxNTUzNGEyNTBkYzQ4NTIxMGRmMTdlMjc5YzMyYyBsZWdhY3ktdHJ1bmsKKzM2OTY0IDM1Njg4NzQxMGJkZTc0Yjk5ODc1MWYxMzMzNzYyMDE5MTQzMDdiOTEgbGVnYWN5LXRydW5rCiszNjk2NSA4MWVmZWMwZTlkMjkzNmJlODZjYzJjZjBjMzI5NTVhY2JjZjhmMDk3IGxlZ2FjeS10cnVuaworMzY5NjYgZjI3OTM1YjQ2OTg1YWM2MWUwYmQ1NjkzMDAzMzcxNGU3MjYyZmViYyBsZWdhY3ktdHJ1bmsKKzM2OTY3IDZiOGU0OTk2ODdkNjI1ODZlYTc1YjdhYzI2OGRlNDg5NGM0NDVjNjggbGVnYWN5LXRydW5rCiszNjk2OCBmNDU1YmJlN2VhN2UyYjE2ZDQ3OTYxNTExZTZiNjQwNTUwNzBjNjA2IGxlZ2FjeS10cnVuaworMzY5NjkgZTVmNmMzZjUwODQ2NjUzY2EyOTNiNGJjYTcyMWZkOTEyNmYzMWUzZCBsZWdhY3ktdHJ1bmsKKzM2OTcwIGJhYmQxMWVlY2Q4ODNhY2ViY2FlMjc0MTc0YzUzNGFjYzllNTU4NTQgbGVnYWN5LXRydW5rCiszNjk3MSBjOWFjOWJlOTVhZjllMmU4YTliOGIwZjU2Nzk1NWYyNmI1ODA5MTJlIGxlZ2FjeS10cnVuaworMzY5NzIgZGRjMDMwNGMxNTFmZTRmNmVlMTFkZTIxZjNhZmQ2NTBiNTJhMTE1YiBsZWdhY3ktdHJ1bmsKKzM2OTczIDQ1MGY1ZTIxZWFjOGRjMjRhMGRjYTI2OWI5ZjU2Nzc3MDRmYzU5ZDEgbGVnYWN5LXRydW5rCiszNjk3NCAwYTBjMjQ3ZjA1ODQ0NTZlMTUxNzQzOTJjZmUzYzg4MmRlZTFiNjhlIGxlZ2FjeS10cnVuaworMzY5NzUgN2RlN2MxOTEwYWM5Y2E0MGU5ZWQ0YTMwMGIxNGU0MWIxNWNhNDhhYSBsZWdhY3ktdHJ1bmsKKzM2OTc2IGE3N2MwMzcyYTFkN2I1MmNkMWMzYjU1NDgyMzIzZWIwZTdjODcxMWMgbGVnYWN5LXRydW5rCiszNjk3NyAyOGU4NzdmZjc0Y2Y3MDY3MzM2Mzg5ZTlhNzhiZjIzZmM2N2UyNmMxIGxlZ2FjeS10cnVuaworMzY5NzggZTRhNzNlZmE0ZDIzNGJlZmUzYzIyMmJhNTU1MjhhYjZmYzg4MWFjYyBsZWdhY3ktdHJ1bmsKKzM2OTc5IGRmZDM4MDNlZTBjMTgxM2Q4YTcwZmJiYjY0MDk0YWJhNTE1N2Y1ZmMgbGVnYWN5LXRydW5rCiszNjk4MCAzYTRlNzNhNWU0MzQ3ZjFkMTVhYTE3NTRmYzhkYzk4Y2MyNmUzMGU1IGxlZ2FjeS10cnVuaworMzY5ODEgYmY2OWZjM2JkMDY3ZTRlNWVjYzFjMjhmMDdhZTdhYzdhNjE0NGUyMSBsZWdhY3ktdHJ1bmsKKzM2OTgyIGY2YWM0MTdiNWViMDhiNzNmMWMwMzgyMDU0MmM5ZTAxYTNlM2RlMzcgbGVnYWN5LXRydW5rCiszNjk4MyAxY2Y5ZGUzYTg1MDNhNDM5Nzg1NzhiMGFkOGU5NjEwMjdmZjViMzE0IGxlZ2FjeS10cnVuaworMzY5ODQgZDdmY2RmOTc3NmM0ZGZhNGI3ZDIzYmZiNjI2ZWI5ZWU3MmZmZGM1ZSBsZWdhY3ktdHJ1bmsKKzM2OTg1IDkyMGY1ZjY0ZjJmMGZjODAzOGEyN2Q0ZTJkYThjMTk2YmJhMzk0NDEgbGVnYWN5LXRydW5rCiszNjk4NiAwMTQwNzg1YmVmZGIzNmQwYzFiMDQyZTYzNGVlZTRhNTU4MjkxNTRlIGxlZ2FjeS10cnVuaworMzY5ODcgNmMxNmFiNDIxNGFmOGU4ZTUwYTgwMzM3MGQ5YmQ0ZmM4ZjJiMTdkNyBsZWdhY3ktdHJ1bmsKKzM2OTg4IGRjNjQ3ZGY1MzkyMTdhNTk1Y2VjYjE5MDUzOWNmZDYyY2I4OTcyYTMgbGVnYWN5LXRydW5rCiszNjk4OSAzYTdmODJlNjBjYjIyOTI0Mjg1MDI3MTRhYjA3N2Y4MjFmOWNkYzcyIGxlZ2FjeS10cnVuaworMzY5OTAgY2NkMDJiZDM0NGIzOGIwZTllMjYyNDIzNzc2OGVhMTJiMjhiMTdlZSBsZWdhY3ktdHJ1bmsKKzM2OTkxIGVkZGIzN2Q3MDJiNWUwNTIyMzYwNmVlMWZjNDI4NTU4M2VjZmY3ZDkgbGVnYWN5LXRydW5rCiszNjk5MiBjMjM4NDYwMWEyNDExMTdkMWU3N2ZkNTQ4MmYzZjQwNDBiYTg0MTQ5IGxlZ2FjeS10cnVuaworMzY5OTMgYWU5YjQ3YThkNjQ4NDg1NmYwYzhkZTEzMGM0NDdiMWY0MjM1ZWE2ZiBsZWdhY3ktdHJ1bmsKKzM2OTk0IDhhMjgyNzk3ODk1ZjNmMTI1ZDM1OTVlZDU0ODM0ZjE5YmE2MDBjODcgbGVnYWN5LXRydW5rCiszNjk5NSA4NDZiYTI5NzJkN2MxYmRkNGM0ZGE2Mzg1MjEyNDUwMzRmYTZjODA4IGxlZ2FjeS10cnVuaworMzY5OTYgZTQ5OTJlOTMwY2IyZTU5NjE4MDFhNDQxOTA0NjFiZGVjZGQ4MjI3YiBsZWdhY3ktdHJ1bmsKKzM2OTk3IDNkYjlhOTMyNzc1ZTYwYTZhZjdkYzI3M2Q0NmM1Y2VmZjIyMGI4OGUgbGVnYWN5LXRydW5rCiszNjk5OCBmYzE2MzdmYzQ1ODg5ZmJjOTJkNzUyMzYzMDYzYjFiMzU2NmJmYjY5IGxlZ2FjeS10cnVuaworMzY5OTkgNzM3NWFlNWY5ZGM0ZDVmNTllZGYwOTc0N2U1YzUxYjRhMjZlYWVmMyBsZWdhY3ktdHJ1bmsKKzM3MDAwIDFkOTgzNTA4MmJlNWFlY2E2YTVmN2VjMjY2MDA3NTljMjRhNGM1ZjIgbGVnYWN5LXRydW5rCiszNzAwMSBhZDI2OGE4NDA4ZjRmNmJlYjU3MmJlZDMwZjU5MmFiZjVkZWJmNWMwIGxlZ2FjeS10cnVuaworMzcwMDIgYTM1ZTRkMzVkMTQyNTEyY2QyOGQ2Mjg1MTQ0ZjQ2MTRmMGE5YmE5YSByZWxlYXNlMjMtbWFpbnQKKzM3MDAzIDNiZWI1NGY5ZDJiYmU4ODI3ZmVhNzZjZDRkYWI2NjY5ZTRkYTRiYzcgbGVnYWN5LXRydW5rCiszNzAwNCAyODkzZGM5YjRlZjRkYWQwNDUyOTVmMTU2ODg1YTZlYjM3MzJkMjBjIGxlZ2FjeS10cnVuaworMzcwMDUgMjJmYTk2YzQxM2FlYzNhMTU4NzhhNjZlMGM0ZDQwMDUxOTM0YzlkNiBsZWdhY3ktdHJ1bmsKKzM3MDA2IDk1MWNjZDhmMzQyODg2ZWJiNjBhYzgyYjE4MDg5YTI0MmJkNTRiNDMgbGVnYWN5LXRydW5rCiszNzAwNyA4Nzc5YzhjNGQxODFhZjQ3NTJjYjkxZDgxNWI3MjAwNDk0MTkwNGYwIGxlZ2FjeS10cnVuaworMzcwMDggOWM4NDFjYWEwZTgxNGFlNmY0OTY1ZGI1Yzk0ZDk4MmQ1ZmJjZDRjNCBsZWdhY3ktdHJ1bmsKKzM3MDA5IDI4YTIwNWVjYjRkZDgwNTY0NzYyMzM0NjE3ZjFmZmJmYmQwZGJkMWIgbGVnYWN5LXRydW5rCiszNzAxMCA4ZTg3YTY4MzQ5NDJlNGVmYTc2MTJiMTljNTlhMmQ5MWVhOWQzMTk0IGxlZ2FjeS10cnVuaworMzcwMTEgOGMwYjA4YjI0NzdiZmQzYTg1MWM2NWJiMzc5NDhlZGQ5OTk4ODUyYyByZWxlYXNlMjMtbWFpbnQKKzM3MDEyIDYxMmRlMjY4ZWQ0YmUwYmUzM2I1NDkzZTM5NjllYTlhMDJmNTU2MmUgcmVsZWFzZTIzLW1haW50CiszNzAxMyBmZDkyZWE4YjViNTFiZDFhNjQ2ZWU0OTczODkxZTRiOGM2MWY3Y2FmIHJlbGVhc2UyMy1tYWludAorMzcwMTQgN2FhZTA2YjFmMWRkY2IzNjc5YjQxNzViMWQ4M2EzMjIxM2JhNThlYSBsZWdhY3ktdHJ1bmsKKzM3MDE1IGZmOWQ1YTcyZDU0YjcyMDgwMGY4OGM1NDg4ZTcwMGQyYWRlZTQ0NTEgbGVnYWN5LXRydW5rCiszNzAxNiBiNTVkYmNjZWNjNzE1MDY2NjAxZGVjM2FlZDEzMTExMzkzNGE1ZTFjIGxlZ2FjeS10cnVuaworMzcwMTcgNGI1YjZlODYxZmNmNmViM2I5ODEyNmFmYjdjOGY5NmNiM2JhY2IxZSBsZWdhY3ktdHJ1bmsKKzM3MDE4IDkzMzU0OGZlN2I5N2IwYTJiNjM3MWFlZTdjZjI3M2Q5MjNhMjA1ZTcgbGVnYWN5LXRydW5rCiszNzAxOSBhMzYyMDE2ZTk1MGQ1MGM1MmM4ZjllNDQ3ODJmMWRmOTI5ZTExZjYwIGxlZ2FjeS10cnVuaworMzcwMjAgMmI4YmRiMDY5ZTBhZWJkZDZmYzA5MzUyZTg3MWZlMGE3OGE1MTU0OSBsZWdhY3ktdHJ1bmsKKzM3MDIxIGIyZjQyN2RiMjI4YjE0NmY1MjFlOGVkYWY1ODQ5YTI5M2UyODg3NTIgbGVnYWN5LXRydW5rCiszNzAyMiAzZjlkMjFlYzUwNGI0ZmJmZGE3MGZkMTQ5MDA2YzY3M2I1YWQ4NmZjIGxlZ2FjeS10cnVuaworMzcwMjMgYTA1OTMwMWE0Y2RlM2Q0MTFlYmYyZDY3ODNhMjIyNGYwOWFiZGI3NiBsZWdhY3ktdHJ1bmsKKzM3MDI0IGFlNGNiMjk0NzQwMGViMmFmMzljM2JlOTRjZDRkYjJmYzVhZTc5MjAgbGVnYWN5LXRydW5rCiszNzAyNSBiZmIyOTFmODU4NzE1YTc3ZWUwYTI3ZTVhMmQ4MWI0OTgwYzQ3MzEwIGxlZ2FjeS10cnVuaworMzcwMjYgMjA4ZmU3MTljNzQ5YjUxZWIyN2Y4OGIzYjljMGZmNWZiYTAwMzA4NyBsZWdhY3ktdHJ1bmsKKzM3MDI3IDZmMDliNTIwYzAxYzU5MGZjOGExMDMwZDc3ODcyNzRmYjJiN2IxYjUgbGVnYWN5LXRydW5rCiszNzAyOCAxZDZlZWZiY2JiMzc0N2UwZDJiOTA5YmQ3MGVjMDc5M2NhNmUyMTllIGxlZ2FjeS10cnVuaworMzcwMjkgMzU3YjI0YzM0NmJiMGQ2NjhlYWY2ZTU2ZGUxMDRmOTRlZjc0OWUyMCBsZWdhY3ktdHJ1bmsKKzM3MDMwIDJlOGQyYmRkMzNkZWNkYjY4ZTg0Yjk1OGUzZjU3MDdiMDk5NjhmM2IgbGVnYWN5LXRydW5rCiszNzAzMSA5NmJmNDAyNDg4YzcwYTYxNTMwZDRmM2E4M2M1YmY4NTFjMjNiYjJhIGxlZ2FjeS10cnVuaworMzcwMzIgYmVkNDVhNmI5OTNiYTk0YWIzZjE3OTlkY2Q4ODYwNzYzZWZmOWVlYyBsZWdhY3ktdHJ1bmsKKzM3MDMzIDU3NzhmNjMzMTMzNGNlMzZjM2Q4ZmVlMmRjMzJlZWIzNWQ3YjkzNjIgbGVnYWN5LXRydW5rCiszNzAzNCBhNTc2OWU4ZjFjNmZkZTc1MmJlMDg0NWIwZTgwNmI3NDdkYzkzMDY1IGxlZ2FjeS10cnVuaworMzcwMzUgNGNkNzdkZTU1MWU3NDViMWFlMTBjZTAwNjZmYmMyODVhNjNlZDY1NyBsZWdhY3ktdHJ1bmsKKzM3MDM2IDFmOTUyMjIzOGM4NjMyMTdiMTVhNDljZjZmMDkyYWNkYzVhZWI1OGQgbGVnYWN5LXRydW5rCiszNzAzNyBlMDVlOWQwNTgzMGQwOTFjM2Y4Zjk0MzFmM2NhNDdmNmM5M2UyZjkyIGxlZ2FjeS10cnVuaworMzcwMzggZjZmYTY0OWZjNGFmNzRkM2ZkM2EzNjc1ZDJmMjBmMWNhODJlY2Q0OSBsZWdhY3ktdHJ1bmsKKzM3MDM5IGE2YzgwMTcwZmM1MzgyZjkzOTI4MTIyOGI2OGM0MDk5YjY5ZDVmY2YgcmVsZWFzZTIzLW1haW50CiszNzA0MCA0NTM2YjAzMTUxNTc3Yjk1NGVmY2ExMTBjMjdhY2E4MWMzMjAxMTM0IGxlZ2FjeS10cnVuaworMzcwNDEgMTc5NzNmMmUzZTBlODk3Yzc0OWRiYjI5MWM5ZTU2NDNmMTljODdkNyBsZWdhY3ktdHJ1bmsKKzM3MDQyIDY2NjU1N2MyOTI0ZGZjZmIxNmQyYjVhYzRhM2Y0YTEzMTJhYzNhYTEgcmVsZWFzZTIzLW1haW50CiszNzA0MyBhMjUxNGUyZDFjNzRlMDZkOTdiNmY3NTcxNWEwMjcyMzIzMDFmZDk0IGxlZ2FjeS10cnVuaworMzcwNDQgYWFkMTE4NjQzNTk4OGIyYWI5Y2I2ZGU4ZTk5MGY4YzYwMzFiNzRmMiBsZWdhY3ktdHJ1bmsKKzM3MDQ1IDBkMTYyN2M0NDc2OTBjYWZkM2JiZTA2ZTMxZDg3MWEzZWUyNTFlODcgbGVnYWN5LXRydW5rCiszNzA0NiAyOTY1YWU5NGEyM2ZlMzQxY2I3YzBkOTVlODJlN2NmNWE3NTVlNDE2IGxlZ2FjeS10cnVuaworMzcwNDcgNDQwMWRlYTcyNGYwYWZjMTY1MjZhZmUwMTFjNjQ1NzZhZWI1MDc3ZCBsZWdhY3ktdHJ1bmsKKzM3MDQ4IDhlOTE3YjllNzBlN2Q3YzgxZTNkOTI1Y2Y4ZDUzMTAxYTlkYTNlNDAgbGVnYWN5LXRydW5rCiszNzA0OSBmZWI1MjQ3YmEwYzgwYjIyNjgyZTU4YTcyYTg3ZTI3YTM3YTYyZjI5IGxlZ2FjeS10cnVuaworMzcwNTAgNGM3OGZjYjYwZGYzMDkxYzE4ODA0NjVjZDc0NjE2MGM2MjE5Nzc3ZiBsZWdhY3ktdHJ1bmsKKzM3MDUxIDM1YmI2MmFjNTVmZWRhNGMyYzU3ZTNmZWUyNjI0MzM1MDVjNTYyYWQgbGVnYWN5LXRydW5rCiszNzA1MiAwZmVjY2YxOWIxNmQ1YzRjMGRhNDE4MzZjNzNmMzQyYWQ5ZTRkZmQ5IGxlZ2FjeS10cnVuaworMzcwNTMgZGU4MDRlZGY4YmNkNTdlZTlkMDNlMjRjMTUyMmE5MzI4NDEwM2EwMSBsZWdhY3ktdHJ1bmsKKzM3MDU0IGIwZjI2ODFiY2Y3ZmE3NDBkZDE1Y2RjYjc1YWViOTIxYjRmZGQwYjkgbGVnYWN5LXRydW5rCiszNzA1NSBlZGI4NTNlZDZjNzhiMzUwNTI2NjkzOGMxYmRkYTJmNDcyMWIxMTJlIGxlZ2FjeS10cnVuaworMzcwNTYgYmJlNjg0NzRlNTIyMGQ3NmY5ZDNjZDUzNzk3MjA1NmZlNWNhODUzMiBsZWdhY3ktdHJ1bmsKKzM3MDU3IGQyODgzYzQyYzIwNGMwNGYyNDY3ZmVmODdkODkwMTJlY2U3ZDBkMTggbGVnYWN5LXRydW5rCiszNzA1OCAwOTZkZTQ1ODI3YzdiNjc0YmZlZmU2ZTM1MjdjYjAyN2QwMzk3NTZlIGxlZ2FjeS10cnVuaworMzcwNTkgN2Y1N2IzYzdlYmJmZmNiNWU4ZThkZTQxM2JhM2VlZmFlYTAwOGU4ZiBsZWdhY3ktdHJ1bmsKKzM3MDYwIDkzNGE1ZGI5Yjk1YjYxMjI5ZmQ4ZmE3YWI4YjJiNGRhMGI2YjliYTEgbGVnYWN5LXRydW5rCiszNzA2MSA3ZGE5MjAxYmM4YjUzMmM2ZGMzNjk5N2EyNjY3MjE1ZGE1ZTM4OGNjIGxlZ2FjeS10cnVuaworMzcwNjIgMDE3MjI3ZTQ3YzNkZWYzMWI4YzAxODE2NmQ4ZjJhY2Y3ZjMyY2FlOSBsZWdhY3ktdHJ1bmsKKzM3MDYzIGVhNDg3NGUwMjFlODBlYWNlNjRmODEyZmRlYTg3NTM5ZmIxYzQ0NTIgbGVnYWN5LXRydW5rCiszNzA2NCAyNjU2MzIwNDY2MGNiY2I4ZTI0NDQ5M2Q3OWJmMDJjZGVmMGQzMGM3IGxlZ2FjeS10cnVuaworMzcwNjUgMzQ3ZDcxYzBlMDE4ZGQxNzkxNTA1MzRhMzdiMDgzZjdjMDM5MzNjMyBsZWdhY3ktdHJ1bmsKKzM3MDY2IDFkMGY0YzAzNTdkMDA0ZjI5ZWZiMTViNjVhODZmZWU4YjQxMThhNmUgbGVnYWN5LXRydW5rCiszNzA2NyBlYWIyMWZiZjlhNzBmOTcwZGQ5ZDBiMWQwNjQ4MzhmZDgwMTQ5YTEwIGxlZ2FjeS10cnVuaworMzcwNjggYzE4YWNhN2U4MWNiNWY3Nzc2OGVhOWM0YjRlOGYxZjY1NTIxMWMwNSBsZWdhY3ktdHJ1bmsKKzM3MDY5IDkwNTY5YWUzZTNmM2YxY2RlMTBkN2FmZDU3ZDg3YWZjMzlmNDI1YTEgbGVnYWN5LXRydW5rCiszNzA3MCA2OTcwMDY4N2UzMGY1MTVhNjQ0YTQyYzA5YTE3MGI2YjE0MTFkZDY3IGxlZ2FjeS10cnVuaworMzcwNzEgYmVkNjJmMzk5ZGFjMGJmNTQ3MWUyNjg5ZWNjMzI4ZWEzZmU5OTg3NyByZWxlYXNlMjMtbWFpbnQKKzM3MDcyIDA0ODY0YzM5YjAwNjMzM2YzMmFjMjQ5ZWExOGUyNzYzODViOTkzNTQgbGVnYWN5LXRydW5rCiszNzA3MyAzNGE4ZDc1ZWRkMmIwM2E1MWE3YjE0MTgxMTg3NDE0ZjZjYjFiNDRhIGxlZ2FjeS10cnVuaworMzcwNzQgMTZkZmYzMGU2NmVjMGU1ZDhjOGI3NzhkYWNkZDBlZTdhZTMwYjA3NyBsZWdhY3ktdHJ1bmsKKzM3MDc1IGM5Yjk5MzA4YjBlOGNiZjkwZjU4NmYwMmM4Y2ExOTE0NTQ2MjI0NDEgbGVnYWN5LXRydW5rCiszNzA3NiA5NDIzMGY2YjVlYmU1MmY2MzJkMTI3MzJkZjU0ZWFkNzA4YjA4YThlIGxlZ2FjeS10cnVuaworMzcwNzcgZGIxYmFmYTliNjU2MTM2Yjg3Y2U3YmMxMzA0MDUxOTM3NDI2ODkzMiBsZWdhY3ktdHJ1bmsKKzM3MDc4IGQ5NzY1ZWI1OWVkZDc4NTVjYjY2NGNkM2MyNDM3MjVhMGYyYTA3YTQgbGVnYWN5LXRydW5rCiszNzA3OSA4ZDc3MTM0YWFiODJmNDA4ZTI2YjhlYTc4MDk2NGVlMzI2Zjk3NDg3IGxlZ2FjeS10cnVuaworMzcwODAgNmI3NDNjYmM0MTcxMGU2MjY0ZThjZmNiNDI0Y2JmOTE1YmYzMzBmZSBsZWdhY3ktdHJ1bmsKKzM3MDgxIDgyNTJlOTg5Y2JiMTViZjQ3NmI3YWE1MmYyZjA1NDRjZmFjYjE4ZTcgbGVnYWN5LXRydW5rCiszNzA4MiAwNjZjNzg5MGNkNjE1NTMwYWFhZDNhYTE5ODU5NWMyM2IxMDYxZGY4IGxlZ2FjeS10cnVuaworMzcwODMgZDg2MWFhODc0NTI1NTg4N2UxYTYzYTgxYzk1ZmNjY2JiNzBmZmU4MiBsZWdhY3ktdHJ1bmsKKzM3MDg0IDMyMzVlNzM5YmRhMTJlZjE4OTc3YzA4Y2JiMTg1MTAzODJmODQyZjMgbGVnYWN5LXRydW5rCiszNzA4NSBhY2Q5YmYyZTNiY2Y1MTU5YmZmZWQ3OTkyNzk0NWZiYmUxZjk1OGYxIGxlZ2FjeS10cnVuaworMzcwODYgZTYzMDRkNjZkOTQ1YjU2OTc5ZDM4N2I4OWE2MTQzNmNiOTk4ZGFiMyByZWxlYXNlMjMtbWFpbnQKKzM3MDg3IDhhYmQzMjJhMDEzYWI2OGNkY2FhNmRlMzEwNGI5M2VhZGIzZjc1MDMgbGVnYWN5LXRydW5rCiszNzA4OCA4NDkzMTA4MGUwNWNjM2Y5OTk4Yjc1NGJjODkyMWVlOTkxNzc4NjEzIGxlZ2FjeS10cnVuaworMzcwODkgNTdhNjZkNzAwYzdjZmJhYTY2YTNiNDdjZGM2ZWRhMmEzYjYwOTg4OSBsZWdhY3ktdHJ1bmsKKzM3MDkwIDBhOGQzOWFjYTk4YzVmZWNjZGY3YzkxNzYxZTc0MDQ3ZjA4MGU0YTEgcmVsZWFzZTIzLW1haW50CiszNzA5MSBhMWNmNGEyOWFjMzAwNzA4N2VhODk4ZmU5OTYyNTZmMTEzODIzMDNkIGxlZ2FjeS10cnVuaworMzcwOTIgNDBiNWFlZTIwYjgzMTcyZWQzNGI0MWE4MTZmYmE3Y2E2MjliMjI5MSBsZWdhY3ktdHJ1bmsKKzM3MDkzIDdmZWMwNjYyY2Y0YWEyZGRmZTRkYjdmYTBhNTQ5OGRhZTdjMDE3NDcgbGVnYWN5LXRydW5rCiszNzA5NCA5YzU3MGFmNTM1NmU3ZTFiNzZkOTFhYWU0MDNiYzAzY2U2MzhhN2NmIGxlZ2FjeS10cnVuaworMzcwOTUgZGVhOThlZWQ4Y2YwYzhhZmYzNjI4NDExN2M1ODMyNDdmODkzZGJhOCBsZWdhY3ktdHJ1bmsKKzM3MDk2IDY5OTc2Y2Y1OTE0OTVmZTg0YWVjYTllNWJmNTY1MjE0ZWZkODQwNDUgbGVnYWN5LXRydW5rCiszNzA5NyA3N2QzNjQyZWI4N2JlN2E4NzM5NmYxNDEzMWJiMjc1OGI3MzA2MzdiIGxlZ2FjeS10cnVuaworMzcwOTggYWIzNDk4MGZmYTE2OTBhOTUzYmYzMjEwZTNiYTczYWY1NWFkZGFjOCBsZWdhY3ktdHJ1bmsKKzM3MDk5IGY5ZjRiMTlkZDc1NWQ5MDFhYjE5NTc2Nzk1NTk3MWNmM2IxNWM0MWIgcmVsZWFzZTIzLW1haW50CiszNzEwMCAyMmI2M2VkMmQ1YjIyNzNmYmU5ZWEwY2IwOTgwNGU3NTg3MWZkMWU4IGxlZ2FjeS10cnVuaworMzcxMDEgMmUwOTY2ZGJkNjc4YjI4ZWE4NWQ5ZjM4ODE4OWQ5MTE5YTM4YTBlYiBsZWdhY3ktdHJ1bmsKKzM3MTAyIGY5OGU1OWYyZjg5ZDA5MWU0MGFlZjU2ZGM0YjYzNTA5ODM2MDczZmQgbGVnYWN5LXRydW5rCiszNzEwMyBmYjk4NjkwNDRiYmE5ZjcyMTc4OWFjZWNmZWRmZThjN2NmMDY0NjQwIGxlZ2FjeS10cnVuaworMzcxMDQgNzE0Mjc5MTU3OTZlZGMxYzMzNTI4ODllMGNiZTVlOGFhNTg5MDlkYiBsZWdhY3ktdHJ1bmsKKzM3MTA1IDJjYWE2ZjE5YTJlNjZjZWNlOGRiMWJiMGE4YWEyOTFiNDQ3NDUzZjggbGVnYWN5LXRydW5rCiszNzEwNiA1NjE3MDIzNTBlMDk4MDdiM2M1MjhjZjliYTAyOTkwYWJiZjU1ODA5IGxlZ2FjeS10cnVuaworMzcxMDcgY2QyYTk1Y2ZjN2ViNDhhYWY1ZmZhNDNmYjM0MDdlZDE3MDU2MDg3ZSBsZWdhY3ktdHJ1bmsKKzM3MTA4IDM5NWJiMzc0NmQxZDRlMDY2NDc4MjU4Zjc1MGI0MGMyNTAyODJiN2EgbGVnYWN5LXRydW5rCiszNzEwOSA4NGFjYzc3YzA2Yjg4OGE4NmZhNDkxYTAwMmVlMTVjYTU0MTA5MDdhIGxlZ2FjeS10cnVuaworMzcxMTAgMDM0NDAyNzIwMjhjNzk3MzRiOTgxZjJlNTFiMmFmNTcwMWY4MTY0MyBsZWdhY3ktdHJ1bmsKKzM3MTExIDk4ZGIwOWZkNDQzY2Y2N2I1YWViM2U2YTA4YzJjM2EyYTdkZmI1MmUgbGVnYWN5LXRydW5rCiszNzExMiAxZjliOWMyMjZiNDNlZDIwY2I2MWU2ZDIxYWVhNmNiOTY2ZThiY2QzIGxlZ2FjeS10cnVuaworMzcxMTMgYzY1NDMzNGRjOTYxOGVlMDVjZmYyNTgzNzMxYjFkMDVlNjVmNmEwOSBsZWdhY3ktdHJ1bmsKKzM3MTE0IDEyZWY1NmY4OGE5MGJlNTM2OGMyNWM1MzczMzczOGFlNzRmMDdiY2YgbGVnYWN5LXRydW5rCiszNzExNSA5NTc0NGE0MjA4YTI3MGMwNWI5Yzk1NDhjMTExNjU5YmIwZDgzMjNhIGxlZ2FjeS10cnVuaworMzcxMTYgMzc3YzUxOGQ4NDgzNDM5NzZiOTI5NDc5MDEzMmY2M2EzOGYxYzZmMiByZWxlYXNlMjMtbWFpbnQKKzM3MTE3IDhkZDM1ZjVjNzkyODJhNzIyYjY5NTg0ZTE4ZjA2ZjM5NzIwMjQxNzAgcmVsZWFzZTIzLW1haW50CiszNzExOCBiNGNiNDk4MjlkM2VlZWRiMGY0YjFjMjc3MDY4NGVkNWQ4ZjVkODBjIGxlZ2FjeS10cnVuaworMzcxMTkgM2ZiZDJkMWNhNWJiNjBkM2E2NzA5YjE3ZWI5YzFhZjA2NmE4MWQzMyBsZWdhY3ktdHJ1bmsKKzM3MTIwIDY2NDFkMDU0MjU5MjdmMmFmYTZjMTAwZTBmNDI4ZTM1NTIxYzliMWQgbGVnYWN5LXRydW5rCiszNzEyMSAxMWE0ZmJjODhhODAwYzVlMWEzNDhiN2Y1ZmQ0OTYxYjYyM2IzNTRhIGxlZ2FjeS10cnVuaworMzcxMjIgOTkzZmQ4YWNjOTBmMjg0NzMzYTA4OGE1ZGEwZDhkYTM0YWM1ZTZlYiBsZWdhY3ktdHJ1bmsKKzM3MTIzIGI2M2IzMDgyMWVmNDc4ZDkwZWI4YWFlNzA3NDIzZTNiMzI4N2MwN2UgbGVnYWN5LXRydW5rCiszNzEyNCA5NjVlOTZlMTUyOTkwNTYzN2U3YmQ1ZjJmMTdiOWI4MzRjMjczOWMyIGxlZ2FjeS10cnVuaworMzcxMjUgMWNmN2Q3MjI1YTk5NjM4N2M3MDY1NjgxODE0NWZjMTUyMmNjOWU5NyBsZWdhY3ktdHJ1bmsKKzM3MTI2IDdhMWZiMzE2ZTY1NTIyZDE2Yzc2NzRhN2ZiZjJmODA1Y2UyYmJhM2EgcmVsZWFzZTIzLW1haW50CiszNzEyNyA4Y2Q1Nzc5NmE5Y2Y4MTBiYmVkOGUxNzU0MWZlMTQzYjA2OGQwNTA2IGxlZ2FjeS10cnVuaworMzcxMjggZjEwNzJhMzBiYjU4MTA4ZThkNzc2ZTdmYTEwY2QzZDNkYjc3ZmZhNiByZWxlYXNlMjMtbWFpbnQKKzM3MTI5IGIwNDUwNzAxNzJjYjJmNzU5ZTM1Y2E0M2QzY2EzZjVmMWY1OTFhOTkgbGVnYWN5LXRydW5rCiszNzEzMCA0ZTllY2JmNDdiNmJhOTdjOGI3NWMyYWUxZTM1NGQwN2NkODE4M2M5IGxlZ2FjeS10cnVuaworMzcxMzEgZDY3NWUzZTBmZTc5NjhlYzE3MDY0NDg4MzMyZmNiZWFkNzMxMzEzZSBsZWdhY3ktdHJ1bmsKKzM3MTMyIGE0N2YzZDJmZmQyMjE1NGZmNzhkZjk1ZmI2MjhmOGJkMDYzZDJjODAgbGVnYWN5LXRydW5rCiszNzEzMyAwZWQ0ZmQ3YTBlMmUwZjUwM2YyZGVjYjczZGNjYzQyNGI3NzVkZTZmIGxlZ2FjeS10cnVuaworMzcxMzQgMzAxNjQ3MWFlNTQ4OWJiZjk4NzljMWQ3M2NlYzJmYjBjMDNjMjZlNCBsZWdhY3ktdHJ1bmsKKzM3MTM1IDNkYmRiZDU3MmQ5NDEyOTI3ZTg4MzY1MjAzMTBlMDY2MTM1ZWQ5MTMgbGVnYWN5LXRydW5rCiszNzEzNiBiYWM5OTdiNzliMTkyNWQ2Yjg5MmQzZjhiNGNmOTgwYjgzMjdlNWYxIGxlZ2FjeS10cnVuaworMzcxMzcgNGNhOWZhMjM1M2JmYTQzYjM4NmVkYmVkMmJkOTQ4MDRmNWJlMzAyNSBsZWdhY3ktdHJ1bmsKKzM3MTM4IDI3Mjc3MThlOWU4ZjQyNjRmYjZkMTdhMTdkZjE5OGUyYmExY2YzZDAgbGVnYWN5LXRydW5rCiszNzEzOSBhMTJkOTg0YmQ5NjJkOTUyZGNhMDdmYTY0YjQ5YjNkYjlkNDk0YjBlIGxlZ2FjeS10cnVuaworMzcxNDAgOGQxYjRjZDhhMTI0NTRlZjZjYWEwYTljNTAxY2Q1ZTVlMmVjZGI1ZCBsZWdhY3ktdHJ1bmsKKzM3MTQxIDBjNzM0OTMyYzZmNDFlZDJkNTBmZTNjMDY3YzIwYjdkYjdkMjdhNDUgbGVnYWN5LXRydW5rCiszNzE0MiAyYjEzNjQ0MTAzNWM4MzNlZTRiYjI1Y2FhNzhjMmMwMWVjNzhkYjljIGxlZ2FjeS10cnVuaworMzcxNDMgYjI1Y2IyMDQ1ZGFjYjA5N2RkMTEzZWU4YWRkN2MxMTBhZTY3OTZhNyBsZWdhY3ktdHJ1bmsKKzM3MTQ0IDgyNmFkODk2YTdhNWMzNWJhMDRiNTM3MjdjNTJiYTdkMTFmMjZkNTMgbGVnYWN5LXRydW5rCiszNzE0NSA0YWZmMWZiY2U3NTI0ZjFjNDhmOGQxMmIxNzFiMGY5NzRmZjcxMzJmIGxlZ2FjeS10cnVuaworMzcxNDYgZWZmNzY2ZTI5YzU1MjVhMDcwNWYyYmRlNmM1ZGJlN2U5OTJlNjI0MCBsZWdhY3ktdHJ1bmsKKzM3MTQ3IDI3NDdkYmQ1OTM4YjU2ZjhkOTc1MDBlZWRmNDZhMDFiYTc2OTVmZjUgbGVnYWN5LXRydW5rCiszNzE0OCAzNDVmYWM2NmRhYTliMTczZGZlZDJkOGEzOTFhYmMxNWM1NTc0ODk0IGxlZ2FjeS10cnVuaworMzcxNDkgZWU3MDNhMDk0ZGZiZGYxMDBhOWRiZDljMzUwMzdkY2U2OTMyZjNlNCBsZWdhY3ktdHJ1bmsKKzM3MTUwIGU1ODZjYmVjZGViYTYyOTAzM2Q3ODVkMDE1MzM1MTU0Njc5NDZiMWQgbGVnYWN5LXRydW5rCiszNzE1MSA0NDkxNDFhYTAxMWM5YTQzNjEzN2RjOTk5ODMxN2JiOTUxMjk1OTA3IGxlZ2FjeS10cnVuaworMzcxNTIgOGFhZDUyOTZmZWM5NjAzNDcwOTVlMWM0NzVmODA0Y2YyMGY0Njc4OSBsZWdhY3ktdHJ1bmsKKzM3MTUzIGZmODhkYTQwMDc3ODU4OWMzMjkzODJiOWVmZmRlZjJlMTc2YzlmMmUgbGVnYWN5LXRydW5rCiszNzE1NCA4ZDI3NjU1MWNlYTk3MmEwYjdlMWMxNzQyNmE2NDIzMzhlNjUxZjg0IGxlZ2FjeS10cnVuaworMzcxNTUgNGIwMGFlMWVmZGQ4NmRjMzkzNDUzNDkwNGY1Y2YyNjQ5OGU4MDA4OSBsZWdhY3ktdHJ1bmsKKzM3MTU2IDhhNGMzMDU0YTM2Yzk0NmY0ODEzOGRjNmFlOGI1ZjNkZWI3YmFjMzUgbGVnYWN5LXRydW5rCiszNzE1NyA1ZmFiNGY0M2I5NGY3MzcxYjVjMDBkYTk2YmM3ZTg4NjQ0YWJhMjA4IGxlZ2FjeS10cnVuaworMzcxNTggNjdmYmJlYjFlMjE4MWUwMDJlNDEwYTg0YmI5OGY4OTFmMjU1ZTk5MSBsZWdhY3ktdHJ1bmsKKzM3MTU5IGUwN2E2MjM0YjczYjFmNDc3NTgwZmJjYjI3ZGEyNTE1OGM2MDJmMDMgbGVnYWN5LXRydW5rCiszNzE2MCAzZTI1ZDZlM2RhMTk0ODViOWZmOGIwNDkxZTgyNzE5ZTNhNjc3N2FkIGxlZ2FjeS10cnVuaworMzcxNjEgOTZkNTM4NDg4YWVlYWMzYmZlNjYzOWE3OTQxNGI2NzA3NDFmOWRlOCBsZWdhY3ktdHJ1bmsKKzM3MTYyIGEzN2FlN2RiYTgxNGI3M2ZhNTMwMTg2N2E1YzQ2ZWJiZjcyNDMyOTcgbGVnYWN5LXRydW5rCiszNzE2MyBiMjkxMGU0NzlmMDdiMTEwMzE0MzRiMTE1NDQ2NzJjYmJmZTAzZDJmIGxlZ2FjeS10cnVuaworMzcxNjQgNzdkZTM4NTM0ZDI2MzI4NzY0NjNkNWJlYWE5Nzk2Mzg5MDMzMDk3YSBsZWdhY3ktdHJ1bmsKKzM3MTY1IGIxYzI2ZTg5YzQ2NGQ2YTg5YzY3YmFjZWVlMTU5OGU1OTRjYTAwZTMgbGVnYWN5LXRydW5rCiszNzE2NiBlMTliMDA5NzVkNWU4NjJmMGFlYzk4MTVmMjUzNmMzNTk5N2VjMzk3IGxlZ2FjeS10cnVuaworMzcxNjcgNTIxYjg3OTVkZjliZTQ4ODEwMDJhMTc3OWJhM2U1NTA2MWJjYjg3MyBsZWdhY3ktdHJ1bmsKKzM3MTY4IDRiMzI0ODljMzRhN2ExMWQ1YmNhODk1YTY2ZjE3NDQ3NTA4MmZlZDMgbGVnYWN5LXRydW5rCiszNzE2OSA3OGI1NzhjNDY3NzBlNTBlNjAyOGZjYmJlN2Y1NDI2NzJjOTgwNjVkIGxlZ2FjeS10cnVuaworMzcxNzAgN2Y2MTcwMjU1NjVlODBmMDc1NTVlZTkzNzc3MmNjNmFkNzRiMzZhMiBsZWdhY3ktdHJ1bmsKKzM3MTcxIGNkMTU2NDIzMDk0NzhlZDVlMGRhNmQzNTI0Njk1ZDM4MTNmNTI4YTUgbGVnYWN5LXRydW5rCiszNzE3MiBmMjgwNzJlNjRmODE3Njc0M2RjMDM4YmMzYWQ0YmU1MTJiOTFkMGZlIGxlZ2FjeS10cnVuaworMzcxNzMgNTk4MDUwMDE3YjVlNDAxZDAyMDIxMGExYWE0MGUzYjUzODc5OGQ1MSBsZWdhY3ktdHJ1bmsKKzM3MTc0IDg1Nzk4NTlmMTk4Yzc4YWMxNDNlZTY3Y2NjZjkyYTc2OWQ5ZWI1MjUgbGVnYWN5LXRydW5rCiszNzE3NSA1OWJkMTIxZWVlYjcxYzc1Y2VmOGEzYzg4NTNmNzg4ZjI1MDg3MmE5IGxlZ2FjeS10cnVuaworMzcxNzYgYmYwZWY1ZmM0OWYxZTg3NzJhN2ZjZDNkNWY5OTE5NWEwZmQyMzM4ZiBsZWdhY3ktdHJ1bmsKKzM3MTc3IDU0MmE1ZWZhNDg4M2JhMjY2OGQ1YTA0NDQ3ZjQwN2IzNDYyMzQyMTYgbGVnYWN5LXRydW5rCiszNzE3OCAyZjUyZGYxNzM5NTI5NWI2NDI2MzAzOGEwYmM3OGU5MWYwZjdhZmUxIGxlZ2FjeS10cnVuaworMzcxNzkgOTZiYjQ2NjkxZTg2MDYzMmQyMzM5NGIzYmJjYjM4MDA1YTA2NDNkNSBsZWdhY3ktdHJ1bmsKKzM3MTgwIDBiMTgxYmYyMzBjOTNmNjYxN2JiNTAzZmI0YjA1YjE3ODc1NWVkNzQgbGVnYWN5LXRydW5rCiszNzE4MSBjZjBlYTE5ODY5YWY1ZWE2NDk3ZDM1ODhhOGQzYWFiNGJjMTQ2YjU3IGxlZ2FjeS10cnVuaworMzcxODIgYjU3NjEyZjYxYmEzZjNlZGUxYTkyZTI3NWJmMDcyNWQxNWVmMzA0YSBsZWdhY3ktdHJ1bmsKKzM3MTgzIDZkM2JkZDE5YmVlYjM5OTQ2YmM2OTA4MjgyNzhhYzM3NTZjMmI5Y2IgbGVnYWN5LXRydW5rCiszNzE4NCBkNWIwOTc2MDhjOWRlY2FjNWQyMDgzYzhkNjdmODEyYmQwMDM5ZjZiIGxlZ2FjeS10cnVuaworMzcxODUgM2VlNWRlYzBjYTA3Y2NjMzVmZTEyZDE5NTQwYWM2YTNhOGJiODU4NCByZWxlYXNlMjMtbWFpbnQKKzM3MTg2IDFiYTc0NjlhM2I0OWI0ZDBkNGYyZmYxZDcyMWU3YTJhOWI3OGIxM2UgbGVnYWN5LXRydW5rCiszNzE4NyAwMGI4OWFiNDRjZmQ3Y2Y0MGVmMGU0MWE0ZDEwNGQ5ZWQzMTQxNmQ2IGxlZ2FjeS10cnVuaworMzcxODggYTI1YWY2OGQ3MWZjNmQ0ZDc0N2IxMDJhZjExNGM0ZjI5NGViNzVmOCBsZWdhY3ktdHJ1bmsKKzM3MTg5IDE3NjhhZmY5Mjg2NGQ2OGM4YmRlOTc4NWRlYzZjMzIyMTMwOWU5YzMgbGVnYWN5LXRydW5rCiszNzE5MCA3ODdmZmY1MWJmMmFhZDI4MzNhNjNlZTlmNzc4MzYwNjJhMjcwNDM2IGxlZ2FjeS10cnVuaworMzcxOTEgNTQ1MmQ0ZWNkZGQwYzQ3ZmZkYjMyNTA0ZWRjMzg3NDEwMWFhMWZjMCBsZWdhY3ktdHJ1bmsKKzM3MTkyIGZlZTU5MmZiNTY0MzZkOTI5MTk5ODgxY2Q4MDkzNzVhODY2MTgwODQgbGVnYWN5LXRydW5rCiszNzE5MyA5N2ZjYTczNWM4ZGE2ZjlkYjFhOGU3OGZmMmE5NTZlOTMxY2ZhM2QyIGxlZ2FjeS10cnVuaworMzcxOTQgMjA4ODE1MDVjMTQyNzM5MGQ3ZGZhYTc1OTc3NzdhMDI1YjJhODNkZiBsZWdhY3ktdHJ1bmsKKzM3MTk1IGQ1MzhlY2YwYmM2OTg0YWRjZWZiODE3MTQ2NjQ2MDcwMWIyZTcyMjEgbGVnYWN5LXRydW5rCiszNzE5NiAwNjIxNzdkZTg2ODU4YTdlMGZhZTk1YzIxMDlkZjVhZmE1ODBhNTlkIGxlZ2FjeS10cnVuaworMzcxOTcgZmMwYjQ1NzU1NzQzMjc2NTExODU3YWVkM2U1MDlhN2UzMjQ1ZTUwZCBsZWdhY3ktdHJ1bmsKKzM3MTk4IDA0MjQ1ZWY1Mzk0OWMxYmQzMTExNjZkNDlkOWUyZWMxYmMzOWQ3MjEgbGVnYWN5LXRydW5rCiszNzE5OSA1MDVjOTA2Mzg1MGU0YzQzYjBhZjQxNjc3NzE5ZTNiNjQ3M2ZkYmVkIGxlZ2FjeS10cnVuaworMzcyMDAgODRmYmFhYTIwMzU4YTcwZWYxMmUzMjY3MDI0YzRhNGRjYTY3NWJlMSBsZWdhY3ktdHJ1bmsKKzM3MjAxIDA1YzEyNWM5ODc2NzIwNzViNTY5YTNmZDI2NDJkZTE1NjhiNTljNTQgbGVnYWN5LXRydW5rCiszNzIwMiAwMGU2MTk4NTFhNTY5NzQ4YWQ0N2JhMjYwMzZjNDUyNzcyNDNkM2Q2IGxlZ2FjeS10cnVuaworMzcyMDMgYjdhY2I5NzBmNTM2NTEzZDNlNGYxMjMxOGRiZDBhNmVjZTBlMjJjMSBsZWdhY3ktdHJ1bmsKKzM3MjA0IGYzMDk5M2QwNTg5MDhlYjBiN2FlM2UxOWE3OWY1Yjk1OGJkMGRjY2UgbGVnYWN5LXRydW5rCiszNzIwNSA2OGU2OGVkNDZmMGU5YWY3NDJiYTAzMWRmNGVkYWNlNDIyOGUwNTAyIGxlZ2FjeS10cnVuaworMzcyMDYgZDllMDM5MzhhMzMzYmRiOTU0MmRmNTMyNWQ3ODE5YzkzN2Q2M2UwMSBsZWdhY3ktdHJ1bmsKKzM3MjA3IGQ1YzM0ZGJjMzYxODJmOWZlNTRmYTlkMGJiMjNjYmRlODZkZGJjMGIgbGVnYWN5LXRydW5rCiszNzIwOCAwYTc5ZDdhOTA0MGM3NjlhZmM1ZWI5MzQ0ZDBjMGVlYjk5MTg2OWFmIGxlZ2FjeS10cnVuaworMzcyMDkgZTViNGZlOTdmNzRkMTU4NmIxOTA1ZjY1ZWFjOGU3NTcwNjBiZWEwZSBsZWdhY3ktdHJ1bmsKKzM3MjEwIDFhNTRmY2Y0OGZlNGU2NDRmZTE4YWIxYTU2N2I0MmQ0ODc4MDQ1MmUgbGVnYWN5LXRydW5rCiszNzIxMSBkYWQ4Mjc3OTQ3NDVjYmNjZDQxMWNlODQ4MGY1NTIzNDg5NGZjZjcxIGxlZ2FjeS10cnVuaworMzcyMTIgYWRjNjZkMzE0Yzc4ZWQxNmRlYTExZTQ0NWU4YWJhMzM2NmI1MjUwNiBsZWdhY3ktdHJ1bmsKKzM3MjEzIGRkYmExNTRjMGUwMDBhYzQ1NmIwZTczZTU1OTg4YzQ3NWZiYTk4OWIgbGVnYWN5LXRydW5rCiszNzIxNCBjNDRmMDgzNDY1ZjljNWFlZTFhYTNjNjIwNjhlZmZhYzc1MGQ2ZTVhIGxlZ2FjeS10cnVuaworMzcyMTUgY2ZhNzJhOGRlMTQzOTkwY2FhZWJhZWFjZDQyNmQ5YWUzZThlMzUzMCBsZWdhY3ktdHJ1bmsKKzM3MjE2IDEyOGQ1Mjg0NTdkYTU2NWY5NmQ5ZGNmMWY2NDRhNGIzMzY1ZWIxY2MgbGVnYWN5LXRydW5rCiszNzIxNyBmNzQ3NGQzMWJhM2ZhOWJmMGM1MDc5OTQ0NmY5YmYyNzE5YmY0ZDZjIGxlZ2FjeS10cnVuaworMzcyMTggMjNkZjZjZjI5NjUwZDQ1YWFlMWM2YjYyYTdmOWVlNTViYjJiODJkNCBsZWdhY3ktdHJ1bmsKKzM3MjE5IDk5OWQzMWNhOGExOWY3ZGUwNzE2YjNmN2I4M2JiMzBlMDUxNzc2MGIgbGVnYWN5LXRydW5rCiszNzIyMCBlNTYxOTJlOWZkN2U3ZTQ5M2ZiMDAyNWE2YmUxZTJlN2UxNmY5ZjhjIGxlZ2FjeS10cnVuaworMzcyMjEgMWRmYzk3ZTJhY2RmZTRlZDA3MGY5YTI4Y2RmZDM3NzUxYzFhMjRlMiBsZWdhY3ktdHJ1bmsKKzM3MjIyIDk2MDQwMjUwNjk0MDcyYmI5N2Q4MGVjNDg5YjJhYTkyOTViMGQwMjcgbGVnYWN5LXRydW5rCiszNzIyMyBjOWE4MmU5YjdiNGQxODUxNmVhMmNjMGQyNGU4YzVjOWNjYjRiZjM0IGxlZ2FjeS10cnVuaworMzcyMjQgYTZlYWMzZmU1NDJmOTMwYzhlNjEzMTU5M2I0ZjNlY2FiMGNlN2JmYyBsZWdhY3ktdHJ1bmsKKzM3MjI1IDAzYmUwNmJjYTE2MGZiYzljOWI1OGE4MzEzYmUxNTM0NjI5NGNkOTMgbGVnYWN5LXRydW5rCiszNzIyNiAyNjhjNWY4M2ZiODc3YWE0MTcwM2ViM2JlZDU4ODhiOGU0ODRhMjM5IGxlZ2FjeS10cnVuaworMzcyMjcgMjZlNDIxMTg2NWVkN2IzOTBmNGU5NDExMjg5YTZmZmQ1NjZlNzNjYiByZWxlYXNlMjMtbWFpbnQKKzM3MjI4IDBmNTNiYTE1OWU1NGUyMWVmNTU3YzA0Njg0YzhlNjZmZWY3NDZmMDQgbGVnYWN5LXRydW5rCiszNzIyOSBiMTBiN2I3YWZjMDBkOWIwOGNlODMzOTNiZDQyMDRhMDU2OTQ1MzRhIGxlZ2FjeS10cnVuaworMzcyMzAgMzU0MGUxMDUyNWExYWVjNjdiYjE2MDNiZjg4YTFjNTg4N2JiMTcyMiBsZWdhY3ktdHJ1bmsKKzM3MjMxIGQwYzAxZTBmZTI0OTY3NTdkY2I2ZmYwYjg1YWVlMWMzYzk4N2JkM2UgbGVnYWN5LXRydW5rCiszNzIzMiBkNDEyNTZhNmYyY2VjY2VjZDIwMzE0YmIzNDRkZDUzMTJmNjc3NDkzIGxlZ2FjeS10cnVuaworMzcyMzMgNWYwYzdmNWNhNmY5ZjExOTQxMTFiODc5NzU4MzczMzJiMmFjYjI4MCBsZWdhY3ktdHJ1bmsKKzM3MjM0IGFmNjUwMDRmNjIyZmEwZDg4ZWNhMDMzN2ZhZDcwNjI1YTA2MTNjMTkgbGVnYWN5LXRydW5rCiszNzIzNSBhZDQzZGYxOTc4NGM1ZTQ0ZDE3NGUxMzc5YWY2Yzc2ZGEwM2U5ZTE3IGxlZ2FjeS10cnVuaworMzcyMzYgYjIwZDQ1NTU4NjUzNmQzNDJjZjdhMmU3MTU2ODQwZjc5ZjViNGY3NSBsZWdhY3ktdHJ1bmsKKzM3MjM3IDc2YTliZGEzMDI4ZTg2ZGE0OGFhZmM1NTgwMzg1OWMyYTkwZjI1ZDYgbGVnYWN5LXRydW5rCiszNzIzOCBhZGEyYTY2Yjg2YTRhMTdiODUxYzFlZDA0YTU5NjEzYjM0YTllMTAzIGxlZ2FjeS10cnVuaworMzcyMzkgMTI0NjQyMjIwM2U4Nzg2NTJjNTAwZGE5MGI0MWU2NDlkYTQzNzZlYyBsZWdhY3ktdHJ1bmsKKzM3MjQwIDk0NjVmZTY3ODIyMjY2NDNkNmM1N2VkNTE1YjJjNWQ5N2VmZTc2NzEgbGVnYWN5LXRydW5rCiszNzI0MSBhZWUyZWU3NDVmMmM1ZDk4ZDg2YzA2MjczZTY5YmJmOTczMTMxYWRlIGxlZ2FjeS10cnVuaworMzcyNDIgNzU1MWM3MjVmZTk2YTAxYTI0MDY5Mjg2ZDJjOWNlODZmOWRmZmE0MyBsZWdhY3ktdHJ1bmsKKzM3MjQzIGZiNjE0MDMxODBhODVjNDc2OTBhNWRiNTQ5NzQ3OWYwNjAzMzA0ZTIgbGVnYWN5LXRydW5rCiszNzI0NCBiZmZkNDk0MzU0ZWU3MDJhMWI2OTk0MzMzNmY5NDIyZTQ0NjQ2MWNhIGxlZ2FjeS10cnVuaworMzcyNDUgZjAwNTNhNmEyYmVkZGRiOTk2M2Q5N2Q5YzY0NGEwZWJiZDk1ZjQ0MSBsZWdhY3ktdHJ1bmsKKzM3MjQ2IDNlMDYyODk3ZDJlN2E5MTA3MzQ2MmQzY2MwOTc2YWVjYjY4ZjE2ZTIgbGVnYWN5LXRydW5rCiszNzI0NyBkZjQ3NzBiN2NhZWZiNDdiOTk5ODE0YzFiYmY3YzlhYWZiYWZhZGM1IGxlZ2FjeS10cnVuaworMzcyNDggNDM4NTJjOTYzMTYwNDE0OTI3MWQ0NDc0NDk2NDE5ZmJiMzljYjNjMCBsZWdhY3ktdHJ1bmsKKzM3MjQ5IDlmMmRkZGU5M2E2Mzk1ZDYyZGM3MjNkNWNmYzYyMDg1YWM2M2E2YzYgbGVnYWN5LXRydW5rCiszNzI1MCBjMmM0OWVlNzI3ZDBkZDM0NzdiODhkOWFkMDViNGQ5OTg3MTQwZTRlIGxlZ2FjeS10cnVuaworMzcyNTEgOTQzYzIyYTdjNzAxYjI3MzBiYjVlYTllMjZjYThhYzY1ZGUzYzE4YSBsZWdhY3ktdHJ1bmsKKzM3MjUyIDExMDA2MDU4NzBmZWI4YzdhOGMxMjRjMDE4NzgxNGEwMzg1OWVmMDggbGVnYWN5LXRydW5rCiszNzI1MyBjOTE2OGU3OWVmNGNjMmRiMmVkMWY4MGZkN2FmMDE5OGFiMzYyNzcwIGxlZ2FjeS10cnVuaworMzcyNTQgZDExM2M2MTM1NjdhOWU1MmMwN2M0ODlkYjY4ZjNjNjA1MDUwMzYyMyBsZWdhY3ktdHJ1bmsKKzM3MjU1IDIyODExNDBkMjBjNzVjM2UyZDA4NzdmYWMzZTdlYTQ2ODY5MTRlOWQgcmVsZWFzZTIzLW1haW50CiszNzI1NiBmODNjNWE4NTc5Zjg0OGI3YTA1OWMzNWIxNjZiMTZlNDQxYzFiYzUyIGxlZ2FjeS10cnVuaworMzcyNTcgZWI5YjM4MDI1M2M5OWQyMDM1YmZhZjAyNTlmMTU5MTA3ZDdmZWM1ZSBsZWdhY3ktdHJ1bmsKKzM3MjU3IDE4NmI3MjU1MGU1MzUzM2VmNjE3NWY2NDExZjkzMmMxMjk4MTkzZDcgbGVnYWN5LXRydW5rCiszNzI1OSBiMTRmN2VlMjVkNTBhOTM0ZmQ1MmNmMTViOThhZGU2Nzg2ZDliODBkIGxlZ2FjeS10cnVuaworMzcyNjAgNTM0NjkzYmIwMTBiYzJmOWJlNjdjMGQxMDJiMzFlNzVjZmY2MTgyYSBsZWdhY3ktdHJ1bmsKKzM3MjYxIDk4YzgwMTdlODUzNWI5MjdlZTFjNmFiMzk2YWQ4MmFkZDAyMGZkNDIgbGVnYWN5LXRydW5rCiszNzI2MiBkMWY4YzYzMmI2MDVhNWZiNjBhMGM0YzdlNzgzMTk1NDkwMzA5ODY1IGxlZ2FjeS10cnVuaworMzcyNjMgM2ZhNzljYzlkYTVkYTI5MGUxMDQyNzQ0YWE5N2U1NDY0OTY1YWU0ZiBsZWdhY3ktdHJ1bmsKKzM3MjY0IGI5OTQ1MzM1ZGEyNzJjMjg2MzFkZTViOWYwYjNiNTU5MjNjMGRjOWQgbGVnYWN5LXRydW5rCiszNzI2NSA0NzQ1Zjg0N2NmYTE0NTE0NTUxZDgyOGUzNGI2MzNhN2E2Y2ZjMTNiIGxlZ2FjeS10cnVuaworMzcyNjYgZGYxY2Q0MDcyMTc3ZGQyZTU2ZmVhMTE0ZjEzOTA3ODI4NmRhMjk0YyByZWxlYXNlMjMtbWFpbnQKKzM3MjY3IDVlZDU2NDkzZjBiMDE2MDM1M2IyYzU3YTQ3ZWZlOTc2YmQ0NzA1ZjMgbGVnYWN5LXRydW5rCiszNzI2OCA5N2MyMDdkYjkwYTFkMDdkYjY5ZWJiODRmNTkyYjQwNGUwMDFmYTBiIGxlZ2FjeS10cnVuaworMzcyNjkgMjFjNzkzNDBkZWQ1ZGUwMDM4ZWJiNzhkYjMwY2IwZjE5ZDk4NzdiZiBsZWdhY3ktdHJ1bmsKKzM3MjcwIDQ4M2MwYjRiNjMzMjhmMjllNzllNzk1YmM4ZTk4MTgzMWJkYjcxNDUgbGVnYWN5LXRydW5rCiszNzI3MSA2ZmYxYTViY2RmMjJkNDMwNGU1OWVlMTNmNTBjMTkxYmJjYTY1MzhiIGxlZ2FjeS10cnVuaworMzcyNzIgMDc4NDU1NjgyODc1NzJlMDhmZmE2NzA4YTdhNWE0Y2MwNDJkN2Y2NiBsZWdhY3ktdHJ1bmsKKzM3MjczIDhlMjNiZDNkNWIxYTcwZmFhZWMwODNhN2VkZmVkZmYwOTIxZjk0ODggbGVnYWN5LXRydW5rCiszNzI3NCBmYzJjZTU4MDIxNmM4ZGNlZWRhZTgwYWQ3YTJjZTI3ZDJmNDVmMDM1IGxlZ2FjeS10cnVuaworMzcyNzUgMTM2YjM4ODU2OWEwYzQ2MGM2Mzg4OTJhYWVjOTIwNzkyZDZmOWFiZCBsZWdhY3ktdHJ1bmsKKzM3Mjc2IGMwOTMxOGIwMDkwZDZiOTdiNTViMjA0YzI2OThkNGExNDQwZjNjOTggbGVnYWN5LXRydW5rCiszNzI3NyBlMWFiMmMxMmNkNWVmMjVmMGQxODlkMGMwYjYwMThiNzY1MGQ0NWYzIGxlZ2FjeS10cnVuaworMzcyNzggODM4MWQwNzNhZDM4NmIzMTNjNDgxNDRlMmFlOGFlODMyMGYwZmFjNiBsZWdhY3ktdHJ1bmsKKzM3Mjc5IGRjOTdmNTgxZjIzMzQxMTY0MzQ4ZTRhYjNkZjA2NTI5YjczMDA4MTMgbGVnYWN5LXRydW5rCiszNzI4MCA1YjZmYmE2NDU0YTA5YWE4NzBjZWI4OGUzNmVhZjMwNTM4MTBkZTZlIHJlbGVhc2UyMy1tYWludAorMzcyODEgYWQwMGY3YzBhZDA3NDI2ZWQzMjJiMDdiYWUyMzFkNTY4MDQzOWFmYSByZWxlYXNlMjMtbWFpbnQKKzM3MjgyIDc2N2EzOGRjYjMwMDk0NDZmZWVmM2JmY2M1NGU4ZDY4OWEyZjYyMzAgbGVnYWN5LXRydW5rCiszNzI4MyBkOWEzM2VjYmM3ZjI4YWFhYjA3MTY3YTliMjFhNTkxYThkZTUyYTBhIGxlZ2FjeS10cnVuaworMzcyODQgMzBlMjczODQxYmFlMGIzOGQwNjhlMmJiMGZlNWNkZThjNTU2NjQyNiBsZWdhY3ktdHJ1bmsKKzM3Mjg1IGI2ZTg3NWFhNTA4YmY4MjAxZDc1M2YzNTg1YjkzMzE3NGVlNzJjYjQgbGVnYWN5LXRydW5rCiszNzI4NiA3MTA4M2ExNzI1Y2JlNzg3Y2JlNWIyMGM4NDQ1NTg4Mzc5MGMzZjY5IGxlZ2FjeS10cnVuaworMzcyODcgYjVmNjExODMxN2QwZDAxNWRhNTkxZGE3NDQ3OGU5NzEzMjc1OWM5ZCBsZWdhY3ktdHJ1bmsKKzM3Mjg4IDY5MzI5NDNkZTZiMWY1OWJmNzY1Zjk2NWQ3Zjc4YWNjZDk1NTAwMjEgbGVnYWN5LXRydW5rCiszNzI4OSAzYWZiNjdkOTc0MmI3ZGNmNjI0NWYxNzFhMTk0YmY3ZTRlM2M5NzhiIGxlZ2FjeS10cnVuaworMzcyOTAgYWI2MmY3NmNhOGUyY2MzODY1ZmNlZmJlZmViZjk2OTViNmQ1ZTk5NiBsZWdhY3ktdHJ1bmsKKzM3MjkxIDg0ODBiNzJhYTYyNGRhMzM4ODIzNTc0YTMzMTNiOGViYTYzODBlOTkgbGVnYWN5LXRydW5rCiszNzI5MiA1NzQ3OGExM2ZiZjY0NGQ1MDNkYTY2YjI5MTExZGIyZjk2MGMyOWIzIGxlZ2FjeS10cnVuaworMzcyOTMgMjEzODNmYjFhOGYyOTFjY2I5N2QxMzI5NzFmNzQ3YWM3YmFlMmQwNyBsZWdhY3ktdHJ1bmsKKzM3Mjk0IDk2ZDNlZmI5NDBjZjM0M2MyMWIzOTU4MjA0Y2YyODZiODc3MDgxZDcgbGVnYWN5LXRydW5rCiszNzI5NSBjZDA3MGZmYzg5MmQxNDAwMjlkZDYyYjUxYzAzNThkMjUxYTg4MDBmIGxlZ2FjeS10cnVuaworMzcyOTYgNGI3MDhmYTBhNjBhYjVkMTcyYjg3YjUxM2Y2M2EyNTBlZTUxMTkyMiBsZWdhY3ktdHJ1bmsKKzM3Mjk3IDA2YWJkY2Q1N2ZhOGQzOWMwOGNkMzc5OWNjYjdmM2M0MWQyMzY0NDcgbGVnYWN5LXRydW5rCiszNzI5OCA2ODUzOGUxMjRlZTBhOWIzZmU2MzE4ZjZiMGQ2YzUxNDE4NzI0Zjk0IGxlZ2FjeS10cnVuaworMzcyOTkgMzA2OTdmNDQ2Mjg2ZDA5MWU5OWVmZjg4Y2ViMjQwNWU5YTg2YzNjNCBsZWdhY3ktdHJ1bmsKKzM3MzAwIDg5N2EzNjNmMGU4NmZhYTdjMDVmYmVjOTAwMTUwODBlOTlkZWVjZWEgbGVnYWN5LXRydW5rCiszNzMwMSBmYWMyYTUzOTA2ZjE3MDUwNjVhOWZkMDg2MzE3YWRjMWI4YzlhNTg3IGxlZ2FjeS10cnVuaworMzczMDIgYTI0MzI5Njc4NmNlNzg0MDEyMGU1Mzc3M2QxNDRlYjVhNjQxOGM2YyBsZWdhY3ktdHJ1bmsKKzM3MzAzIDYyOTIwMGQ4ODBlYTI4YmFjZGMxNzVkZjIxNmFhZmI1OTFlYjQ3ZWQgbGVnYWN5LXRydW5rCiszNzMwNCA1YjMxYjRjM2I3YmFjNWQ0MWMwYTEzMGE5NTUzNzAxNjVjMzllNTlmIGxlZ2FjeS10cnVuaworMzczMDUgZTQ0ODlkNTZmMTA5MDIwNzQ3MjhjNWJmNGYwOGYxOWEyOTQ1OThjNSBsZWdhY3ktdHJ1bmsKKzM3MzA2IDRkYWE3YzcyNWE3OThlZWNhODc4ODMyYzZmYTI2YzQ1NTJmZTlkMDAgbGVnYWN5LXRydW5rCiszNzMwNyBmMjRhN2ZhMzhmNGY5MWJlZmI3OGVlNGY0ODk0ZGVmYjBjMjMwZWJiIGxlZ2FjeS10cnVuaworMzczMDggN2JmNDNiZTgyOWY3ZTdhNGRlNDQ5YmVhZWQ4MTdmZDllNmJmYTcyYyBsZWdhY3ktdHJ1bmsKKzM3MzA5IGNhZGNiZjk2MmExZmQ2N2E0MmMxNmFkNzNjNDc1OWM3ZjJjNzRmYTYgbGVnYWN5LXRydW5rCiszNzMxMCA2ODhkOTgxYzYyMzRiMTM0NTVhNjY5YThmZmU1NDVkMzQ2Njc4ZjBmIGxlZ2FjeS10cnVuaworMzczMTEgNjRkNGU3OTZiM2RmMTI2ZTY0MzNmMjhhMDU2NWZmNWU2OGIxMTdiZCBsZWdhY3ktdHJ1bmsKKzM3MzEyIDU1NzBmYWUxZjAxY2QwNTNhMmQ3MWNiZWRjZDc3YzdlMTllNmU5NzEgbGVnYWN5LXRydW5rCiszNzMxMyAzMjQ2OTNlZjMyMGE1ODc2NDViMTI1ODhhYjNjYTJhMWExMTU4YjdlIGxlZ2FjeS10cnVuaworMzczMTQgODE2MThhN2Q0OTBlNzFkODE5ZDRmYjhlMGZlOTY3N2U5YjQ1OTQ2ZSBsZWdhY3ktdHJ1bmsKKzM3MzE1IDI1ZmI5ZTVmNWY0NTMzMzMwN2FiOWVhNDU0NWMzODczYWY0YzEwZWMgbGVnYWN5LXRydW5rCiszNzMxNiBlODMwOTNhYmM5NThkMDRmYzVlMzkzOTU1MzQxZjJkNWU0ZjJkZWJlIHJlbGVhc2UyMy1tYWludAorMzczMTcgN2E3NTE2ZTZmZWIyZjVmMTNhYjZlZjg5NzA1MTVmOGIyMjI0NzI4NyByZWxlYXNlMjItbWFpbnQKKzM3MzE4IDNkYWE2NjMzZjAxN2VmNDdmNjhmYjAwOGNkMDVkMTVmM2QwNmU3MzMgbGVnYWN5LXRydW5rCiszNzMxOSA5ZTNjNTJjYTNhMDRkM2YxMjFmMmIzZmRjYjc0M2VhNTM1NGI2NGYzIGxlZ2FjeS10cnVuaworMzczMjAgNDg3MjgwY2Y3MWI5NWQwMjE5YTgzNTU1OWE0MDNkYzhjODNjYjE4YiBsZWdhY3ktdHJ1bmsKKzM3MzIxIDAxNmQ3MDE2YzZjNjNkNTA1ZjkxOTA4NDU1MTJlODgzMjM0YWEzZDkgbGVnYWN5LXRydW5rCiszNzMyMiA5MWM4N2NlYTc3NjcxMTYwZGE5MDMzZDc2M2M5YTFkYTZmNmUxNzA2IGxlZ2FjeS10cnVuaworMzczMjMgOTQ5N2M1ODEyNmJlNDAwYWZhYTdkMjdmZGE5YTZkZDYxYmE3NWJmMSBsZWdhY3ktdHJ1bmsKKzM3MzI0IGRjZTYyNDkzM2MzODdlYzMzYjljZmYzN2VmNDY1OWZlMjY4NmE0YzYgbGVnYWN5LXRydW5rCiszNzMyNSBjODgyNWE3NGU0MjFmMWZiM2VjOWFjYWQwZDM4M2Q1NWU2OWJjMDgwIGxlZ2FjeS10cnVuaworMzczMjYgNTg3NjYzNmNhOGM2Y2NmYjE0MDI0NTM1YTgyMjVmYjgwYjdlZDZhOSBsZWdhY3ktdHJ1bmsKKzM3MzI3IDI4ZWY1ZmUwYjhiNWRlMzE4OTg0NDRhODcyZGRlMTFiNTYwZWJkOTYgbGVnYWN5LXRydW5rCiszNzMyOCBkOGEyNjFhNzcwMjgzYjAzMTRhZDc4ZWNkODBkNGI5M2IzODYxMjdiIGxlZ2FjeS10cnVuaworMzczMjkgZWI1MTcyOGVkMTFmMGUzMDhmZjA1NWNjN2I5MjFlNWI5NWVjZmM5NSBsZWdhY3ktdHJ1bmsKKzM3MzMwIDQ3N2NkMGY2MjJiOWVkYWViMWQxNGU3Mjg5ZTIxOGMzODJmNGU0ODEgbGVnYWN5LXRydW5rCiszNzMzMSBlMjNjYTk0ZWQ4ZWRiMWYxZDczMTM4YmIwMGRjYjExODRhMGJhM2Q5IGxlZ2FjeS10cnVuaworMzczMzIgYTA0NTE1YTk4ODMxNTkyZTIwOGU1NjdlZDZiZjExMmMxMTRiYmIyMCBsZWdhY3ktdHJ1bmsKKzM3MzMzIDkyNWNmOWIzMjg1YmZiOGEzOTE3Yzk3NmZmZWI3MGUyOGVjNzYyMTAgbGVnYWN5LXRydW5rCiszNzMzNCA3NDczYTE5NWQyMjMxMjIzODIwZDQ5MzBiMmI3ZDQ0NGMyYzk4MDYzIGxlZ2FjeS10cnVuaworMzczMzUgNDFkYmVlNWVkMjk1ODZjYjk4NDNmMGMxMGQ4ZWM0NzA5NmQ5MzQ1ZCBsZWdhY3ktdHJ1bmsKKzM3MzM2IDM2NzY3ZmUyNDI1MmIxNGRhMTRjMDUzMTlhNTMzMDQxNzJjNWJmNzkgbGVnYWN5LXRydW5rCiszNzMzNyAzZjg2ZjJiYjliNTZlODQ3M2M0ODIwNDIzZDIyNWZlNWJlNjY5OTVjIGxlZ2FjeS10cnVuaworMzczMzggN2ZkMjJlY2RjOWRiMDkwMzUwZDI0ZDg3NjlhMGYyNjA2NTg3ZTYwOSBsZWdhY3ktdHJ1bmsKKzM3MzM5IDRkMTY3ODViYTVkYzFjNGJmZDdiMWE1MjEzNTVjZDIzNmU3MGNhNzggbGVnYWN5LXRydW5rCiszNzM0MCBlODA4Y2QzMWZiZGM2YTA5ZWExZjMxZmYxMWI3ZTY1MzRiMWM0Zjk2IGxlZ2FjeS10cnVuaworMzczNDEgYTIyMDA3MzUzNmQ2OWE3NTJlN2FkYTgyNWMzM2VkNDk2MDFhMWViYiBsZWdhY3ktdHJ1bmsKKzM3MzQyIDFiM2FjNjc0YTU3Y2JmZmIzM2RjNjY4OTc4MjFhOWYxMjA5YTdhYWMgbGVnYWN5LXRydW5rCiszNzM0MyBiODdlYWE0NmM5Y2JmMWRlNTU3NmEwMWQ3N2VlNjRkMTcwZTJmZmJmIGxlZ2FjeS10cnVuaworMzczNDQgNTM3M2E1YWViODAwMjJiM2VkMzBlYjMwODI4MzY0ODE1YmNhN2JiNSBsZWdhY3ktdHJ1bmsKKzM3MzQ1IGVhY2RjMjk2MDZkODE0NDkyZTc4M2JiZDY5ZTE3YjhmOGU1NGRlY2QgbGVnYWN5LXRydW5rCiszNzM0NiAyNjIzNjY4YzVmZjViNGQ2MDg2ZmFmOGJmNzIzOThjOTBmMmU4NjkyIGxlZ2FjeS10cnVuaworMzczNDcgYzkzZDJiZWM2OGJlYzQ4YzVkYTYyMjdkZWIwOWFiZjQ3NzA2MDZmYyBsZWdhY3ktdHJ1bmsKKzM3MzQ4IDE4YzdjMTdjY2Y4NjMxNTc1NGZmZjY5ZGQ4NzZkMDY4ZWUxMGI3MjAgbGVnYWN5LXRydW5rCiszNzM0OSA4MjNkNjQ1YjMyYmZlM2YzNmY0Yzk2NzBlNzgxZTRjYTFiYzIyMGFhIGxlZ2FjeS10cnVuaworMzczNTAgNTNjMTM1N2M5YzYzZDU0ZTgyYmJiNTBmYzQ5ZjkwMzRmMjJmYjExOSBsZWdhY3ktdHJ1bmsKKzM3MzUxIGNmYjJmNWUwOTc0MDkzNjY3NzI0ZmY2NTM4MWRiMDhjNDYwMTg0ZWIgbGVnYWN5LXRydW5rCiszNzM1MiA3MWVkNGIzNWZkYzQ4ODc2ZDFhYmU5MTM5YzhlODZlNzFlOTlmNDAwIGxlZ2FjeS10cnVuaworMzczNTMgNGNiMTAxNjUyNWI3ZGVmNWJkNjY5ZjcyMGJhY2FiNWVkYjgwZmU3MCBsZWdhY3ktdHJ1bmsKKzM3MzU0IDczODViYTI2ODBlYjcxYmY3OWZjNTg1YzI5MTFjNTU2ZWM5M2UyMzIgbGVnYWN5LXRydW5rCiszNzM1NSAwYzI5OWNhYmY0ZjA2Yzg0N2RhNTI0M2I2NGViMmI1MDI3MGMxN2RiIGxlZ2FjeS10cnVuaworMzczNTYgMjk0ZDM3MGU0M2QxNGRkOTE1NGJjN2VlMjkxYjlkYjQ0ZDU4Nzg0YSBsZWdhY3ktdHJ1bmsKKzM3MzU3IDQzMzYwNmU5NTQ2YzM1YjhlNmI4M2U4NmM2ODk4ZjFjMjRkODVlNzggbGVnYWN5LXRydW5rCiszNzM1OCBkOTg0Y2I3ZTIzNTIzNmZhN2ZmNmU2MDYyODUzMGEwMWQ1NGE0ZjI0IGxlZ2FjeS10cnVuaworMzczNTkgMmQ2ZTE4NTQwODJlOTQ4NTQwMDk0MDNjZDU2MTliZTA3Zjk4Y2JmMiBsZWdhY3ktdHJ1bmsKKzM3MzYwIDllMmI5NGEzYjVkY2MwZjE4ZmI5M2Q1ZGQwZmI0NDVkOTgxNmJkMzUgbGVnYWN5LXRydW5rCiszNzM2MSBjM2FiNmY0MGI2ZThiYjJhYTMzMTg2NDQ4MTk1ZWExOWRmYjIyN2U3IGxlZ2FjeS10cnVuaworMzczNjIgYWJiZGJiYTU2YThiNzNkMDM1Zjg0MGI1Yzc3MzY5M2Y1NjEwM2Q3YiBsZWdhY3ktdHJ1bmsKKzM3MzYzIGE0ZDM2NzNiY2Q2NjQ3MzA2OGIyZWVhNDYzNDcxOTJmYjBmMGRmMTYgbGVnYWN5LXRydW5rCiszNzM2NCBkYTFkYTMzMWY2NGVmOGVkYmY5NWJlNzFhMzU5NGQ2NmY2YzM5ZDZhIHJlbGVhc2UyMy1tYWludAorMzczNjUgYWY5YmVkZDVhOGU3MjEwNjdlMjY0ZmNiYTI3NGUwZDlhODhmYmM0ZCBsZWdhY3ktdHJ1bmsKKzM3MzY2IGE3MGIzZWUyZTMwYjg5ZjU5YjA4ODMwOGI1YjRhYWE0YzAxMmE1MDAgbGVnYWN5LXRydW5rCiszNzM2NyA0NWM1NzQyYzFlMTNjYTRiM2ViNGZjYTk4MWMzZDYwZDlmNDBjMWZlIGxlZ2FjeS10cnVuaworMzczNjggNzhjMWMwMzc3OTYzN2ZjNjQwNjJkYmZkMjAzZmI5NjdkN2ZlMGI0NiBsZWdhY3ktdHJ1bmsKKzM3MzY5IGNjMGFlMDM3NDNiOGUyZGEzOTI0NTA4ZjA1MmY5OWEzOGRiMWM4MTggbGVnYWN5LXRydW5rCiszNzM3MCA0YjgxOThhNzQ4NzMxMmI4OTUzNGJmZWJmOWQ4NTQwYTVhMWUxNTgxIGxlZ2FjeS10cnVuaworMzczNzEgNzI1YzQ0NDIxYTQyZjU5Yjc5ZTM4MjZiMmEwM2Y0ZGZjODhkZDUxZiBsZWdhY3ktdHJ1bmsKKzM3MzcyIDk0ZjUwMGViZjYwYTQ1ZjZlNThjZDExNWU0ZDlkODAxN2ZjYjZkZmUgbGVnYWN5LXRydW5rCiszNzM3MyAxZjU0MGJmOWE5YjQwMjdiZDgyY2NkNjIwMDVlNWQ0ZGUwZDRhMzUwIHJlbGVhc2UyMy1tYWludAorMzczNzQgMzIyMTg0ZWY3NjIyZDY3ZjNhMjEwOGQyN2QwMmM0OWY3NGI3MzEyYSByZWxlYXNlMjMtbWFpbnQKKzM3Mzc1IDAzZWRiNjNhZTA3MThmNGY1YWFiMDlkM2Y1OGY5YzE1MzRlNzliMmQgbGVnYWN5LXRydW5rCiszNzM3NiAxMWQ0NTAwYmU2ZmE0MThlNTlmMDJiNWE1Y2NjNGMwYTMyMGMwMjZmIGxlZ2FjeS10cnVuaworMzczNzcgZjQ2NDA4MTVlNWJiNTAwYWQzMzc4MTU3YzUxNzQ0ODc5N2ZmMDhlMiByZWxlYXNlMjMtbWFpbnQKKzM3Mzc4IDZiM2RhNDdiZGRkNjhhNDQ1YTE3MjdkZDQ3NTNiMjk4MmQwYzY3MDQgbGVnYWN5LXRydW5rCiszNzM3OSBhNzcyNTdlNTQ5OTZhYWY1ZWMyZTAxMmE4YWRlYmU5YzY4NzBjMzk5IGxlZ2FjeS10cnVuaworMzczODAgZTllNjVlZjk0NmVjYWQyNmQ3ODc3MGJlY2EyNmVkZTgwNmNlNWI4NSBsZWdhY3ktdHJ1bmsKKzM3MzgxIDMwMTI2NWI4MGM0MTQ0MmNiZTI4YjBmMDZjMTNlNTQ2NDFhMDQwMWEgbGVnYWN5LXRydW5rCiszNzM4MiBkNTI5NjE1OWYxMWNmNGRhNTBmNDVmM2U2MWEzNmIxNzkzYzg4OGM2IGxlZ2FjeS10cnVuaworMzczODMgMTM5YTQwMTJiZWFkYWZjOTM4M2UwNTkyMjY1MTlhNmI3NDY4YjRiZCBsZWdhY3ktdHJ1bmsKKzM3Mzg0IDNlMTdhZWQyMzI0YzMxN2MwMWRmZTgwMmFmNGUxNWJjNDdmYWZhZTkgbGVnYWN5LXRydW5rCiszNzM4NSA1NWVjYTdjZDM1MzFkYzZhMjhkNjQ3OGY0OTczYmJlODczZWMwMTcyIGxlZ2FjeS10cnVuaworMzczODYgMDZmMjgyMzhkZjMxMTU5YzI2YThjYTRlNTU4MGFhMDAxN2U4M2IxMiBsZWdhY3ktdHJ1bmsKKzM3Mzg3IGQ4MzY3MGYyNGQ1Y2MyYzNiNGE0MjgxOWZiOTQ2NTJmODllNzNlYTAgbGVnYWN5LXRydW5rCiszNzM4OCAzMGQ0MjhmOTkyZjlhOTcwYTFhNWJhMWMyNjBjNmNlODk0NjE5YzQ5IGxlZ2FjeS10cnVuaworMzczODkgZDNkNmQ0MjAwOWE4YzQ3YTU4OTkyYjU4YzFjNjE3OGNhMGZiNWZkNSBsZWdhY3ktdHJ1bmsKKzM3MzkwIDE3NWVlZTA5Y2I5ODE4MGFiODk5YWE4MGNkYTRmNjExNDhlMTNjMGIgbGVnYWN5LXRydW5rCiszNzM5MSAxODA5YWJkMzkzNDI2Mzc4MDA0ZDkxMzQ3MjA1YzJmYzk1ZDFjNmI4IGxlZ2FjeS10cnVuaworMzczOTIgYTNmYjVlYmNhMzBkNzFkNjNmYTZjNzk0NWEwZTU1NGYzNTI3Y2NmZiBsZWdhY3ktdHJ1bmsKKzM3MzkzIDI1ZTA3YzQ0ZTVkMDViMThlZDgwZGRlMDhjYTQ1ODMzMWI5NDQ5ZjQgbGVnYWN5LXRydW5rCiszNzM5NCA4ZjY0YTg0ZmE4ZTZiZWY3MmNhOGZlYmZlYmVkNGY1NWFjZTNmZTIwIGxlZ2FjeS10cnVuaworMzczOTUgNWFjOGFmZDhkOTA0MDY1Njk4ZjFkODVmMDhiMWI0MWRlZWViZDliZSBsZWdhY3ktdHJ1bmsKKzM3Mzk2IDY5NWU1YmIwODM4MjM5M2Q5MzU1MDcxNzIyM2JhMGZjM2FlN2QyMWIgbGVnYWN5LXRydW5rCiszNzM5NyBlN2ZhN2I1Yzk0NDFjMzlkMjhjY2U1ZGNmZTU0YTNmOGVmMTIxYjhhIGxlZ2FjeS10cnVuaworMzczOTggZmUyNDJmNjlhOWQzMjgyMmFmM2UwMzVlMmVmNDIyZTliY2YwNWQzNiByZWxlYXNlMjMtbWFpbnQKKzM3Mzk5IGVjZDY1NGRhYWVjOWYwMGIyYTQ5MGMyN2I4ODEyZDRmMjU1ZDFkNTAgbGVnYWN5LXRydW5rCiszNzQwMCA5MmRjYTk4Y2Q0MzQzMTRmNWY0OTJjMmE5ZWMyMGUzMjU1NDVhMDJlIGxlZ2FjeS10cnVuaworMzc0MDEgNTI2NDI3ZTg4M2U4MjQxY2NlMTlmN2M0N2EyNzhiZmE4ZTJjMGNhYSBsZWdhY3ktdHJ1bmsKKzM3NDAyIGJkMTNhNDc4ZThkNjFkZmRkMzk3YmYwYjlhMTcxYzUyN2ZjOWJmMzggbGVnYWN5LXRydW5rCiszNzQwMyAyYjQ5YjRhODVkOWViNGE0Y2ZhOWYyOWMyMWQ2NDljMzgzOTQ1NjcxIGxlZ2FjeS10cnVuaworMzc0MDQgZjY3ODliN2VhYjRlMzBiY2NiODUxYzQyZWIzYzg5YjU1ODA0OTllNyBsZWdhY3ktdHJ1bmsKKzM3NDA1IDc4MWFlZjk3NDQ2Mzg4YjM4ZmY0M2Q0NzQxMDI3OGU5NmJkOGRjZjggbGVnYWN5LXRydW5rCiszNzQwNiBkNzRkZGNmZjA3MjQ0Nzc2NjU0ZTIzYTBjOTFmY2M0ZGJmOWNjOGI2IGxlZ2FjeS10cnVuaworMzc0MDcgYTNkNzhkNmJjYTUxOTI0MjM3YzJkNDljYzc3NDE2YzU5ZjNlYTc4ZCByZWxlYXNlMjMtbWFpbnQKKzM3NDA4IGQ2MDcxYTA1YmE4NGFmOWJmNzgwM2NiNjNhYWRiYjQwMjJlMmZjZTIgbGVnYWN5LXRydW5rCiszNzQwOSA2ZDA1NWEyNzViNGJkMzk1YTMwNmY2NDIzNzAyZWY3ZDk2MThhN2FlIGxlZ2FjeS10cnVuaworMzc0MTAgYmY2ODczMTY1MDc5ODZiZDIzYjM0NzY2MzdhMGE2MTdkMDRjN2FhNiBsZWdhY3ktdHJ1bmsKKzM3NDExIDcwMjM2N2RhMmM3MmJmNDJlNWZhMzkzODA4MzU2Nzk4ZjVjN2NmMDQgbGVnYWN5LXRydW5rCiszNzQxMiBkMzc2ZmU4NjJiMTg4NTRkNzJkYjg0MDVlMTQyNTBhZDBiMWIzZDFjIGxlZ2FjeS10cnVuaworMzc0MTMgZWNhZjBlOGZhNzM3OWU5MWRjMzg3MGYzNzUzYjc4YjljZjkyY2RmOCBsZWdhY3ktdHJ1bmsKKzM3NDE0IDY2YjU2ZDU2ZTY4MGQ0YjA1NWQ4NWY2YjYzZTNmOThjMDc3Mzc0NGMgbGVnYWN5LXRydW5rCiszNzQxNSA3ZDdhYzQwNGM4MDQ5ZjkzMjAyYzk4ZmQ3OWMwYTdkYzFiMDAwMjNiIGxlZ2FjeS10cnVuaworMzc0MTYgYmY5ZjkxN2VlNGY5ZjE0MDBkMWY1NWQyZDA0YjAzOTFiNzVkZTVmYyBsZWdhY3ktdHJ1bmsKKzM3NDE3IGE2ZGMxNzZjNWQxMjkyMDIyYjE3MThjODkwMTMwMzgzYWQ2MzY1ZWQgbGVnYWN5LXRydW5rCiszNzQxOCBhNTc3MTNmZGVkMjNiMzViYmQ0ZGY0ZjY2MTMzMmQ1MzAxNjQ0ZDI5IGxlZ2FjeS10cnVuaworMzc0MTkgMTVhN2NjMDBjNWExNDFkN2I5ODA3N2Q2MjIwZDEwZGY2ODc1NTU3MyBsZWdhY3ktdHJ1bmsKKzM3NDIwIGZkOTM0Nzc4ZjRiNDUxZWQwZWYyOWIyMDYwNTQwNjM5ZDNmZjdlYWYgbGVnYWN5LXRydW5rCiszNzQyMSBlMTJjYTVjZGY3NDEwNWRkNTE0ZjBhMzk5YmFhYmU0YjEyY2IwYzg3IGxlZ2FjeS10cnVuaworMzc0MjIgZjJhMmNlZDFmZDVkY2IwM2QxNmIyNDZiZGQ2MjNiNDc5NTA0NzBjOSBsZWdhY3ktdHJ1bmsKKzM3NDIzIGJlOGNmZjRhMWVjYWRjNzI1NDQzM2M4NDYzZThiNGM0Mzc4ZjI2ZTMgbGVnYWN5LXRydW5rCiszNzQyNCA5N2NiOWVlYTIxMmUyMzdiYWRkNjllNTYzNjI2NmE0MDFlODNhZjFjIGxlZ2FjeS10cnVuaworMzc0MjUgYTc2MTI2MDAzOTkyNTE5ZTM2MDdiM2FiNDNmNjBjZTRkNzJhN2MxMSBsZWdhY3ktdHJ1bmsKKzM3NDI2IGMzOWY4M2ZkZDRkMDMyM2QwNzRlYzhjOGU5NTJjODg3ZGNlZjhhOTUgbGVnYWN5LXRydW5rCiszNzQyNyA4YzZmYzg3NzEyNjA0MjExMWY0MmQ0ODBiYmEwYjg4ZDhkN2JjYWY1IGxlZ2FjeS10cnVuaworMzc0MjggNTk4NDFjODE5ZjRjOTc1ZDAzMWZjZTRlYzA5MTAwMzkxNmY2MWU5YiBsZWdhY3ktdHJ1bmsKKzM3NDI5IGYyNDZkNzQ2NGI1YzhhNDMxNmE5NTE0Y2U5ODQ2MTVlN2VhM2E1ZjAgbGVnYWN5LXRydW5rCiszNzQzMCA5NjkyYWYwMWMxYTgzNWFjMDQ1YTRkMjQ0MWIzZDU1MTQ1ZTA5YTI1IGxlZ2FjeS10cnVuaworMzc0MzEgYzRlYWM2ZTkwMTYxNGI2NzI3YWVhYzZmNDA4ODA1NWU0ZGYzYzc1NSBsZWdhY3ktdHJ1bmsKKzM3NDMyIDg1ZGEwODhlN2E4YmZkOGY3ZTFjZjYwZmZkOWUyMmE3NzQ0YzJlNDIgbGVnYWN5LXRydW5rCiszNzQzMyAzYmQ5M2I4MTQwMzE5NzdiYTMzODU2NzhiZjQ3YzQ1NzU4ZjBlMDU2IGxlZ2FjeS10cnVuaworMzc0MzQgYzM3ZTIwNzRhOGM1NDg1OWU2NzUyNzdmMDdjYWFhZDQxZTc3ZjVhZCBsZWdhY3ktdHJ1bmsKKzM3NDM1IGE1NjgyYmM3M2UwNGY2MDc2YzU3Njk4NGRiMjY0OTdjNjU4MjBhNjIgbGVnYWN5LXRydW5rCiszNzQzNiA5ODZhNWI1NjlhZGVkZmRmODdhNDExZTQ2NzQzNmViNzMzNDk2M2Q4IGxlZ2FjeS10cnVuaworMzc0MzcgNTBiNmY5NGEzOGE3NzY3MzZmZmIzMWRkZmQ2Mjk5ODBhNGNmMTcxMyBsZWdhY3ktdHJ1bmsKKzM3NDM4IGU0NzhlYmUxY2IzMTZjODRkODM0YTQwYjE0MWYwN2FkMWU1MjM5OGYgbGVnYWN5LXRydW5rCiszNzQzOSBmMjc1ODRkMTEzYWYzZTM4MDQyM2VlYmFkNDFmNGYyZTZlYTQ3MzRmIGxlZ2FjeS10cnVuaworMzc0NDAgYzI4ZmZiZmIwYWU5MDkyOTI1YzUwZmI0YTU2NDBmYzVlY2M5YjAxYSBsZWdhY3ktdHJ1bmsKKzM3NDQxIDMxYmM1ZjBmNGNmY2M5ZmJjZTRmMDQ5YmFhMWM0NWVkOGVkODk2YmIgbGVnYWN5LXRydW5rCiszNzQ0MiAzMjVhODhjNmVlN2Q1Y2Q3NjdmYzkwZmUxMGRiOWRlNDk0Mzg1MmYzIGxlZ2FjeS10cnVuaworMzc0NDMgOGE1Yzg3ZjY4NWNkZTljYTE0NzNjOTBkZGIxMmYyNjMyMjJlNTNiNSBsZWdhY3ktdHJ1bmsKKzM3NDQ0IDc3NjYwZWFlZjI0ZGM0YTFjYWY1Mzk3NmU1YzU2NjE1MTE3OWUzZTggbGVnYWN5LXRydW5rCiszNzQ0NSA2MTNhNTUzMzg1NGEwZDQxYjM2YjRhYmQ1OGU0M2I3NTUzMjkxMGJhIGxlZ2FjeS10cnVuaworMzc0NDYgODA4NDI4YzU2MDk2ODc2NDMyMTA3NTg0YmUwNGMzYzZmZGFhNDRmZiBsZWdhY3ktdHJ1bmsKKzM3NDQ3IDFiNmIxMDQyY2Y0NTY5NTY1NThkMGU2YzgyODY4ZTFkNzY0ZDU3NTcgbGVnYWN5LXRydW5rCiszNzQ0OCAyYmMyMzUzMjYzMTYwYTQ4YTA1MmE4YTc2YTVkNGJjYjc3OWQxYTZmIGxlZ2FjeS10cnVuaworMzc0NDkgZGJkYzQ1NTY0ZDI0MDM4YTkwNTc3MGZhMjU1OWM0NTgzOTk0ZGJjMyByZWxlYXNlMjMtbWFpbnQKKzM3NDUwIDc5MTljYWRlYjkxZGQ3ZjRhZmE5M2ExMjRmYTU3Yjk3OWJiZjMwZDggcmVsZWFzZTIzLW1haW50CiszNzQ1MSAxNDA4MWVhNjU2YjJjMGExN2MwMDFhNjdlZWEzNjM0NTExMGJhMThiIGxlZ2FjeS10cnVuaworMzc0NTIgNjhkMTFlNDM5YTBiNWE0MzFiZWY4YTg1YTc1YjM5MDJjMGIwYWUwNCBsZWdhY3ktdHJ1bmsKKzM3NDUzIDIzMDM2YzdhZjY4NzZlZTIxOTgzYTg5ZmEyNTdhMDg2NjRlZDNhNWEgbGVnYWN5LXRydW5rCiszNzQ1NCA4ZjRiZWQ5NzBmZjk1MTQ1NmJiNGZjYWQzMjM4MTFjNWRiNzI0OTUxIGxlZ2FjeS10cnVuaworMzc0NTUgMDc3OTU0ZDQxYzUzMjViM2RkM2M5OTY1NzJiMDU4NzFjNGJjODgzZSBsZWdhY3ktdHJ1bmsKKzM3NDU2IDJmNjQxOWQwMDdhOWNiODY0MDM3ODIyNTk2ZTdlZTE4YTQwMGI1M2YgbGVnYWN5LXRydW5rCiszNzQ1NyBiNDg0NzRiYWQ3NmZjZTljOTEzYTZiZTEyYTBhYjdiNTg4NDM0ZTMwIGxlZ2FjeS10cnVuaworMzc0NTggZTkzNzBiY2YwMmFkYmYzYjI2MzU2YTYzNTIxYWI0MzI0YjEyNzQ1NyBsZWdhY3ktdHJ1bmsKKzM3NDU5IGE3ODk1YWVmMWVlODAxZDg4N2FjYTI0NzM3ZGNiNWZjZjdlM2E0NzUgbGVnYWN5LXRydW5rCiszNzQ2MCAwYzMyZjAxY2NkOTk3ZThmNDU1ZmJmZmU0YTFlNGUyMzU2MGFlYTU0IGxlZ2FjeS10cnVuaworMzc0NjEgMzU1YjE1ZTRhNGRhMjMyOWJiOGZmNjhkOTQ1Y2Q5ZjY4YjZiZmJhZCBsZWdhY3ktdHJ1bmsKKzM3NDYyIGNmMWFhYTdlNDAwNTVkOWM4NWQxZDdhZGY1YmFlMGYyNWJkMjU0NmMgbGVnYWN5LXRydW5rCiszNzQ2MyAzMmRmMWQwNWNiMmQ5NjM4NTU4NjBhM2RkY2VlMzk2YTFlMTNmNzNkIGxlZ2FjeS10cnVuaworMzc0NjQgNGI1NDE2YjE4NDY2NGZlYThkZTkyZjY3OWUzMzIwNDYyMWEzZTM1YiBsZWdhY3ktdHJ1bmsKKzM3NDY1IDc1MTE1ODVmMmU2YTQ2YTZjODliZTVhMmUzZDdmYjkxMTQzMDhhMjAgbGVnYWN5LXRydW5rCiszNzQ2NiA3ZDY2NzllZTM5ZjkwYmI2NmI4MTY2NmE3OTFkMDQ0OTU0M2Y3YmIzIGxlZ2FjeS10cnVuaworMzc0NjcgZmMzZTg5NjQzODg4OTAyZWNjYWQyYjJhMjIzNTM2YjdhNjFmZWFkNCBsZWdhY3ktdHJ1bmsKKzM3NDY4IDY0MTE1MmZiN2Q4ODI5NmQyYmEzZGUzYTgxY2UxNmUyNTAyODM4NWIgbGVnYWN5LXRydW5rCiszNzQ2OSBiMzQwOGE4NWM4OWM5ZDM5MjljMDBiMWE5M2ZiMGQxMDUxYzMzOWJhIGxlZ2FjeS10cnVuaworMzc0NzAgNGQ3YjBkMjA2YmM3M2FkZWI2NWVhMDMzOTUxOTAzNzY1ZWQyNzhmYiBsZWdhY3ktdHJ1bmsKKzM3NDcxIDU0YzMzZDA5NWU3ZTQ5YmNkZmUyNDgwNGU0Nzc1YjM0ZGQxMGM0NDMgbGVnYWN5LXRydW5rCiszNzQ3MiBkYjZmMjFlZTYxMzU5NzI1NDE2Zjk2M2ViMWRhMzI4N2MxNTliODI5IGxlZ2FjeS10cnVuaworMzc0NzMgMDg0OTg4YzIwYjc1Y2U1ZDE5MmE0NGNjZjgyMzc1ZjY4NTU5ZjJhOCBsZWdhY3ktdHJ1bmsKKzM3NDc0IGI4OTIyYTM2ZjA4MzgzZjk4YzAzN2QwMjQzZGFiNWQyMTZmZjYxOGUgbGVnYWN5LXRydW5rCiszNzQ3NSBjN2MzOWI3OWU1YjdlOGE1YWYzN2I2ZjVhZDQ1MDlkODM4ZGViNGY3IGxlZ2FjeS10cnVuaworMzc0NzYgNGVlNDhlMmVmYjY4Nzk3NDVhMTM4OWYxMzVmYzI2NThjZmE0NTg5NiBsZWdhY3ktdHJ1bmsKKzM3NDc3IDc2NjRlOGJhZTE5ZTIxYjU0OTdhMjYzZjAyNGRiOTMyYjFhNDA4NDAgbGVnYWN5LXRydW5rCiszNzQ3OCA4MzEzMTlmMTAwZDBhOWYwZGMyMzIxYWNmMzYyMjc0MmRlMWM5YTM3IGxlZ2FjeS10cnVuaworMzc0NzkgYjExZjkxNjJlZDBkZDU0NzkzNGVmZmEzMzM5M2QzOTg5NDU2OGZiYiBsZWdhY3ktdHJ1bmsKKzM3NDgwIDMxYjA4NjcwZWJkZGI1MDFhZjA0ODc4NWNjZTdmY2FkZjk0ZGI0OGYgbGVnYWN5LXRydW5rCiszNzQ4MSAyYjljMTk4NzJiMDE3NjBmYTVkZWEzOTRhNDU5NmExOTljNmMyNjEwIHJlbGVhc2UyMy1tYWludAorMzc0ODIgOGUyMGVlMmVjYzBjOWU2ZTAwNmFjZTNhMmI1MGY5MDE5NmVlNWRhOSBsZWdhY3ktdHJ1bmsKKzM3NDgzIGU2MzE4MDVjNzFiMDcyZjYwZDU5NDk5MWJlMTJmMDRiNjJlNWQyMGIgbGVnYWN5LXRydW5rCiszNzQ4NCAyN2FhMGUxMTkzMzBhMzdlYjVhZDc2NDdmZjdkMjBkNDcwZWExMjk3IGxlZ2FjeS10cnVuaworMzc0ODUgMzRiMDcwMDhhYTc4YmU3OTk0MjFjMmY5MTIxYTdiN2E0MTQ2MjhjNCBsZWdhY3ktdHJ1bmsKKzM3NDg2IDYzZmMwNTIyYTk1YjUzNTVmOTFlYzk5OTQ0MTIwZmE4MzhkMWZkODQgbGVnYWN5LXRydW5rCiszNzQ4NyA4ZTlkY2ZlMTRkODE2MmU0ZGE1MDljYzg3ODY5ODYwNGE3NTkxYjBkIGxlZ2FjeS10cnVuaworMzc0ODggNTczMGY3N2UzN2U0MWI2MzQxYjlmNmU5YTM3ZTU3YTJjMTc3ZjE5MCBsZWdhY3ktdHJ1bmsKKzM3NDg5IGYwNzRkYjBjMTRhODUzZjkwMzJlNmFjMDkxN2Y0NzJkMjg0MWE3ZmMgbGVnYWN5LXRydW5rCiszNzQ5MCBjZDU4YTliNGJhNjYzODY0Mzc2NGQ3NDQyYTAwMjk4MWFkNTUyNDRlIGxlZ2FjeS10cnVuaworMzc0OTEgMGFlMGJlZjEwMDE0ZTVmYjg1MjcxYjdiMjYyNGI5MWU5OGRkMWQ5MyBsZWdhY3ktdHJ1bmsKKzM3NDkyIDgzYTNlMmQxOTE0YTkwYTRkMzAzN2VjMWI0NzI2MDYzZWU3OWY5MmMgbGVnYWN5LXRydW5rCiszNzQ5MyBjODRkYmU3MTdkNDljZDg2NGViZmY0N2E4YWRkYzFhNTVmYmY2MTQ0IGxlZ2FjeS10cnVuaworMzc0OTQgMGYwZGRiNGNiMDQzNzM0NDgwMWUzZTJhNTk1YjI2NmQ2YjdlY2YwOSBsZWdhY3ktdHJ1bmsKKzM3NDk1IDY1NWY3NGVhMGYzMWY1NjFhMGU4NWMyZWY0Y2EyNmNmY2M3ZWM5MWIgbGVnYWN5LXRydW5rCiszNzQ5NiAyMzQ0NGNiZGVhNTU1MGE0YTUwZTE0ZjkzZjM2NGYyODllZGYzMjEyIGxlZ2FjeS10cnVuaworMzc0OTcgMjc5ZjAxZTcxMDcxYmY1NjM1MzU3MzgwODM2NjMxZmFmYjI4YWE3YiBsZWdhY3ktdHJ1bmsKKzM3NDk4IDZiZDRhMTA1NjcxNmI3NzJhNDczOTQ4MWMyNDVkOWFjYjZiYjhhNGUgbGVnYWN5LXRydW5rCiszNzQ5OSA4MzZlOTJjYzVjNGZiZGI2YTlhYjBiYjc2MDdlOGYyNDNmMzdkODExIGxlZ2FjeS10cnVuaworMzc1MDAgZTVkZTY5OGVjZDRiNGUwNTlkNWViZWJlOTdhMTFkNGViMmYwMGYyMCBsZWdhY3ktdHJ1bmsKKzM3NTAxIDZmNGJjYjNiZDIwMmU0MzBmYzc0ODgxMzkyMjgyZjJmMjBmMGE3OGQgbGVnYWN5LXRydW5rCiszNzUwMiA1ZTE5ZmQzNjQyZjA3M2UyZDM0OThmYjJlMTM2ZjlhZDJkYjAxZDRmIGxlZ2FjeS10cnVuaworMzc1MDMgNDAzNTBmYmU2NjVkZmYxYjJkYThjNmFmMGRkNTM4ZGQ5MzFjY2RhMSBsZWdhY3ktdHJ1bmsKKzM3NTA0IDMwY2IyMDBkNDE4Y2RmZWVhODU2OWM1MTE3NjY5MzQ0N2E0NGVhYWUgbGVnYWN5LXRydW5rCiszNzUwNSBjZDcwZjFhYzNjMjVkNjg2MGE5NmUzYjdmYjQ5OTExMTExMTYwZDQzIGxlZ2FjeS10cnVuaworMzc1MDYgNGZiOGM4OWY2NmEwYjk3NjI1YTZiMDBlNDg0ZGZhYmYxZjgzYzlmMCBsZWdhY3ktdHJ1bmsKKzM3NTA3IDkxNjM0ZjNiYTIxM2E1MmI5MDMwYTRlZDUyZmQwZThhZDI5OGUzNzMgbGVnYWN5LXRydW5rCiszNzUwOCAwMGMzNmUxYmM1MGJjNmIyYzg3NmZhODAyZWRjOGU2MGRlMGRkMTg1IGxlZ2FjeS10cnVuaworMzc1MDkgMGM0ZjA5NTg2M2I5ZWQyYWI3YzIzOTlmYmViMmFiMDdjMjc4YjlhNSBsZWdhY3ktdHJ1bmsKKzM3NTEwIDNkOGQ3ODIxNzU5OTlkOWQ1ODIyYjI1YWQxNmQ3NTNlNjNhMTExOTggbGVnYWN5LXRydW5rCiszNzUxMSA1YTI5MmEwM2VhNDE2NzczNzAzMTA4NDc0NzhmZGNhZWJjNGMwYjQ5IGxlZ2FjeS10cnVuaworMzc1MTIgN2M1MGNkZTFlNGZkMDVlNDg4NGQzNzMxYWQ3YmEzOTVkYzI5YzM0ZSBsZWdhY3ktdHJ1bmsKKzM3NTEzIDc0NTBiYjkzYzM5NWNiMDY0YTE5YzM3OWI0NmQ4MzczNmRjM2ZkMDggbGVnYWN5LXRydW5rCiszNzUxNCA0ODZlOWM0MGNmYjkzZmU0ZjA2MDIyZTA5ODAwOTdiMTAyZDdkN2U4IGxlZ2FjeS10cnVuaworMzc1MTUgOTQ2NjEyZjY0YTgzMmU0NjdhNTFlMTk0ZDM4NWMwYTdkZjZlOWQ5MyBsZWdhY3ktdHJ1bmsKKzM3NTE2IGM1OTFmYTFkNDM1ZGYwNzU4NzRiMWJmZjdiNDZlN2RlMjkxODlmYTAgbGVnYWN5LXRydW5rCiszNzUxNyA3ZTQyYThlYmIzZWZmMTE3Y2JiYTc3OTZjOGIxZTJkZGQ3YzQ4Njg0IGxlZ2FjeS10cnVuaworMzc1MTggYzgxOTI1YjYxM2RhYjA2MzYxNjI1NjQ5MWI4MWQzYzU1OTVkMjFiZiBsZWdhY3ktdHJ1bmsKKzM3NTE5IGMwOTdhYmRiNTU2NjNlM2U0Y2JmYTdlODkwMWIwZDVmYzgyMjAwMzMgbGVnYWN5LXRydW5rCiszNzUyMCAwYjdlMzE4ZWYwOTI2NTU4YWNiYzhhYjU4ZTE1MjU4M2FkZTZmNTA4IGxlZ2FjeS10cnVuaworMzc1MjEgNDViMTk4OGUyNjkyNGZiYWNiMzE4YzVhNWZhNWJmMjkwZjcwNmJhOSBsZWdhY3ktdHJ1bmsKKzM3NTIyIGNlODEzYTU3ZDQ0ZDNhYWU4OGM0OTBkYTZjY2I5NWViMGVkMmJmZWIgbGVnYWN5LXRydW5rCiszNzUyMyA5MTg5OTQ2ODM4ZWVjY2Q5ZDViYzZhNDRmNTA0NGFjOWY1MjU1ZTdiIGxlZ2FjeS10cnVuaworMzc1MjQgMGJmZDM1YTc2YTQ0ZjgxMmNjYTZkZTZkZmNlYTk2ZWUyNjc0Y2FkMSBsZWdhY3ktdHJ1bmsKKzM3NTI1IDYzYTAzODliZDVmY2E5OTYwNTY4ZDNmNWMxMTc0NzNjM2YzNTQ3NDAgbGVnYWN5LXRydW5rCiszNzUyNiBjYzQ2ODQwNTFjNDYzMzUzMDUwM2FmMjU2MjBmMGJlYzIxOWQwMTNkIGxlZ2FjeS10cnVuaworMzc1MjcgNTQxMjA5NmQwZjk1ZGUwOGM5MjZjYzNjNmIyNWI0ZGJmNGE5OWQ5ZCBsZWdhY3ktdHJ1bmsKKzM3NTI4IGUxMjk3NmU5OGY2MTNmNDMwZjBiYjgwYjEwYzQwMTJiYzlmZDEzYjAgbGVnYWN5LXRydW5rCiszNzUyOSA1ZGVmNjZmMmM5YWJlZTVmMDhlYWEyODQ0Njc0ZWZmMDQ5NGY3YjRkIGxlZ2FjeS10cnVuaworMzc1MzAgYWI1ODhjZTllNzFmYmZlMGMyMzc4NTY1MGRhYmFjZWQ2NWUwNmE1NiBsZWdhY3ktdHJ1bmsKKzM3NTMxIDExOGI2ZjY5ZTNmMTUzYjc4NzllMzRhYzZkY2RiMGI1MGEyNzAzZDYgbGVnYWN5LXRydW5rCiszNzUzMiBlY2YxZTg1MzQwNmI3Y2QyZWRhNjkzMzI2MmQxMmM4ODllZGI1ZmI5IGxlZ2FjeS10cnVuaworMzc1MzMgNjBiZjJhZmQ3MzEyMjU0NmVmYWYxYTdhNjllZDAwNGZlMGI5NWIxOCBsZWdhY3ktdHJ1bmsKKzM3NTM0IDg5ZmFhY2Q5ZWM3Njk1NTIzMWE2ODM1ZWM1MTQwY2Q1NTA5ZjVkMjEgbGVnYWN5LXRydW5rCiszNzUzNSAyMmVlOTE2NDNiM2YzNGI5NDdkMDE0OTBmMmFkZmU2ZDQ1OWE5MTJlIHJlbGVhc2UyMy1tYWludAorMzc1MzYgYjBmM2E2OTNiODU0YjdmZjgyNjYxZTY2MWM2MTk4YzgyODc5NWUwMyBsZWdhY3ktdHJ1bmsKKzM3NTM3IGQ4ZTc0YTBiNDY3NzVkYjY4NGE4OTNlYTg3YTY1ZmJlM2VkM2NjMGMgbGVnYWN5LXRydW5rCiszNzUzOCBkOTlkZTY1ZjU0MjU4MjdiYjVjYjc2OTE5MmY2M2Q4NTI3YjYwNmQxIGxlZ2FjeS10cnVuaworMzc1MzkgYmE4ZTE4NTRhODRiYWFjZjk0ZWExNjg2MmZiYTEzZWQ0ZTA5ZGJjZSByZWxlYXNlMjMtbWFpbnQKKzM3NTQwIDVhZTNhMWM4MGUzZmU3NTg5Y2NhMTBmYTkyOGIzOWVlMTY3ODIzODQgbGVnYWN5LXRydW5rCiszNzU0MSAyNjJlMWNmNDFkMzRiYzc1ZjljZTg3YmY0YzRjODZjNjA0ODI0NjBlIGxlZ2FjeS10cnVuaworMzc1NDIgYjMxYTUxMjA2Nzc0ODU4MjNjNmU0MTRkN2EwOTFkNjRjYWI4MjIyZiBsZWdhY3ktdHJ1bmsKKzM3NTQzIDU1ZmJhODg5MzBiYzdiODE2NjlkMDE1Mjk0MmExMzEwZTQwNGNkYjggbGVnYWN5LXRydW5rCiszNzU0NCBiY2FmYjY4YWQ5ODU4ODAwYTUyNjI3ZmM5MTBlNjM2NTJjNzZlMTQ4IGxlZ2FjeS10cnVuaworMzc1NDUgNDc4NGJmYzk5YTQxYmUwMzUwN2RmZmY5OGJmYjJiNGI1YWNkODkxZCBsZWdhY3ktdHJ1bmsKKzM3NTQ2IDM3YzY1YTZiMmVmN2Y0ODEyZGUxMTFmN2I0Y2U3ODkxYjhhOWM5NjAgbGVnYWN5LXRydW5rCiszNzU0NyBmZGEzNmFmMjI2ZmIyYmQ5NDdmODE2MDE3Y2U1ODFhNjUyNzNjYTYxIGxlZ2FjeS10cnVuaworMzc1NDggM2U2ZjU2ZTgxMDRhMmJkYzNkYTJjNjEzZjdkMmRmZTUzZDEwM2Q5OSBsZWdhY3ktdHJ1bmsKKzM3NTQ5IDlhMzg2MjVmYTJiMDhkNDZlNTRhYzdmNjM5NjQ5Y2YxMmEwMzU4NzggbGVnYWN5LXRydW5rCiszNzU1MCAxNzAxZGFlNjQ3NGUxNDgyZjA2NTIxMzkxZTRiMWNiYmNhNWI1NDE3IGxlZ2FjeS10cnVuaworMzc1NTEgNjgzYTJmOGY3NzFkYzcxOGRjNzU3YmIyNDVhOTI5YTRkMzMyNjBmZCBsZWdhY3ktdHJ1bmsKKzM3NTUyIGFmMzAwNDAzZWRiODIwZjRkMTFhYmUyZjYzZDQwMjY4ODA0ZWM1YjUgbGVnYWN5LXRydW5rCiszNzU1MyBhNWM4OGYyZTg2YTNmNDY3ZjczZGNmOWMzZTZlMjM4YmNkNDk5NTU0IGxlZ2FjeS10cnVuaworMzc1NTQgMzYxN2QxZWUyNzk3ZmJlNjJlNGZiODZjMjMzYzNmZTU3OGYxZWMzYiBsZWdhY3ktdHJ1bmsKKzM3NTU1IGQ4ZmZmNzA2YTljMjVjZWY4MTQ0M2YyMmNlZmQ3M2NmZTVkMjViMDUgbGVnYWN5LXRydW5rCiszNzU1NiBiYTliY2YyMTQxYTIzMjliNTc3ODMzMDI3ZDM0OTk3YzRkMWU0MDhkIHJlbGVhc2UyMy1tYWludAorMzc1NTcgOTYyZmEzZTIzMjE1YmU4ZjFiMjg0OTgxMWExMGRjMjg5NzRlMmM0MCBsZWdhY3ktdHJ1bmsKKzM3NTU4IGJhOWZkYzQ0Yzc3ODI1NjZjMzU3NjI0Yzc2ODY5NzI5NzdhZDM4MTcgcmVsZWFzZTIzLW1haW50CiszNzU1OSA5MjRiYjJhYWQ0ZjQ4MWI4YjE0YTAyODllODU1ODY3ZWY1ODUyNDdiIGxlZ2FjeS10cnVuaworMzc1NjAgZGMzYTY3NjdlOTYwODQyN2ZhNzcxMzEyMDZkOTlkZTJlY2I3NjY4ZSBsZWdhY3ktdHJ1bmsKKzM3NTYxIGFhYzRjYzY2MThiNTRiYjhlYmNiNjcwNmU2NTI0Y2RmNmJjMTE5ZTEgbGVnYWN5LXRydW5rCiszNzU2MiAwOTBmZmNiODNmMGFhZTQ2ZGRiMWJkY2JlM2QwYWQ3N2ZhMWQ2YWU4IGxlZ2FjeS10cnVuaworMzc1NjMgMGMyNmRiMzgxNjczZTI0MDU3MzJmYWViMzBhMDU0MGFiMDg1YzJkYiBsZWdhY3ktdHJ1bmsKKzM3NTY0IDY2MzI3NDE5ZWIwMDQ0YmZkYzUzNDg2ZDNiNDI1OGQyNmZhYTM3ODIgcmVsZWFzZTIzLW1haW50CiszNzU2NSAwOGI3Njc0NzA2NjNlMzU2OTA4MjMzNDU4MTFhNjdmYjUzMDg2NmQ1IGxlZ2FjeS10cnVuaworMzc1NjYgMzI3MWVhNjBiODJkYzMyMWNkYjA3YWQ2ZTVkMTBhYTVkYjYxNzQyMCByZWxlYXNlMjMtbWFpbnQKKzM3NTY3IDU0ZTY1MjdmMzE1MDg5ODEwYzY2OWE0MTFhMWVhM2I0NDczYjQ5ZWEgcmVsZWFzZTIzLW1haW50CiszNzU2OCAyOTViZDhjNTVhNzg4YzMwM2YxN2ZiYmVlYmI5ZGY1OWEwOTI5NzQxIGxlZ2FjeS10cnVuaworMzc1NjkgODkxMDQyYzk0YWVkMDFmNDRmZWIxMjI3MjUwYzEzNzk2YjY3MjFjNSBsZWdhY3ktdHJ1bmsKKzM3NTcwIDQ5ODFiYTU0ZjQzZDgxODEyMTYyODMzOTQwZTg5ZmM1NzdhYjE3NmYgbGVnYWN5LXRydW5rCiszNzU3MSA3NDJmZGFjM2Q1YWUyZmY0MzVlYjBkMWUyNWRiZWMzNzAxMTdlN2Y4IGxlZ2FjeS10cnVuaworMzc1NzIgNDAxM2YwYTUzODM1MTBmODEyNDdjMmI0ZWJmZDE5YWI3OWY2MjBmYyBsZWdhY3ktdHJ1bmsKKzM3NTczIGU3YzdiM2FmNjE2NDY4YTMwMmM3ZjZjYmMxYjU1OWQ3NThjN2QzY2UgbGVnYWN5LXRydW5rCiszNzU3NCA0NjE0NDRkZTdiMWZkMGExMzJjMDU0N2MwNTcwZmZiZTQ5NmVlNTg4IGxlZ2FjeS10cnVuaworMzc1NzUgNjY0YjE4YWE2ZmMxMjRiMjU1ZjBiMDk1NjA5YzlhODY5MWRlMWMxZCBsZWdhY3ktdHJ1bmsKKzM3NTc2IGJhYTI2NTNmN2E3NmQ5NGI4Mzg5MDE0MmM4NGFhMjUxOTFmNTUzMzkgbGVnYWN5LXRydW5rCiszNzU3NyA1MTdlNGVjMGRmODljYzUyOTljYzU2NGViODdkZTZhMDgyNDQ0MjVmIGxlZ2FjeS10cnVuaworMzc1NzggNjM1ZGQ4YTllYmQ5M2MxMjExOGJhMTBhM2ZhNzhjMzcyNmM0YWFkZSBsZWdhY3ktdHJ1bmsKKzM3NTc5IGE0NmI3NmViOTA1M2M4M2QzZjg3YTI4MmZjZDhjMmU3MzUxOGYwYjIgbGVnYWN5LXRydW5rCiszNzU4MCBjNTUyNDQ2YjdiYjJmNGI5ZWYzN2I5ODJiZDE3NjhjMGVjM2RiMjAxIGxlZ2FjeS10cnVuaworMzc1ODEgZjhjYjhmMGFjOGYxM2EzNTM3OTM2NGNlNzIxMmNiYmQwYjY3ZDZhYyBsZWdhY3ktdHJ1bmsKKzM3NTgyIGU2ZjFhZTEzYmU4NGRmMmY2ZDczYmUyNmUyZGIwMDUwNjIwM2EwY2EgbGVnYWN5LXRydW5rCiszNzU4MyBmMjM0YmUxNzI4MDAwZTljZTIzNjRiYjE3MTBkMzFjMDRiMmY3M2E3IGxlZ2FjeS10cnVuaworMzc1ODQgYzJhZTQ4MmZmNDJkNjNkZWJiNGYyOTMwNWU0NGU3ZWM3ZmY4ZGRkYyBsZWdhY3ktdHJ1bmsKKzM3NTg1IDJjNzliNTBhZmJhYjVlM2Q4MzUwZjFiMTJkZTc2ZGY1YmMxNjIxYmYgbGVnYWN5LXRydW5rCiszNzU4NiA3NGE1N2U2Njg0ZjM5MWNkMzM2OGY5MGU0NWRjM2UzMzNkZDNjZjI4IGxlZ2FjeS10cnVuaworMzc1ODcgNzY2NDE4MjRjZjA1MzU3YmZiNzRjYzIxMDY3ZDE0ZGQ3OGUxY2EyNSBsZWdhY3ktdHJ1bmsKKzM3NTg4IGM3ZmUyMjc3ZDE3MWQ0ZmE4YTViNzBkYWMyM2U2ZGIzZWQyY2JiNjkgbGVnYWN5LXRydW5rCiszNzU4OSBjOWIxZjI2OTRlOThhYWZkZjkzYTRjMjlhMDc0OTFkMzQxNmFlZDQ2IGxlZ2FjeS10cnVuaworMzc1OTAgYWNjMTkxYjcxNGI5OTczNTdlOWMzODRkMTlkNTJmY2VlMzk0MjRhZiBsZWdhY3ktdHJ1bmsKKzM3NTkxIDAyMzZiNjUzMGM0NjMxYzNlMGQzMzUzMWE0MDkwOGE2YjVhYjE1ZDcgbGVnYWN5LXRydW5rCiszNzU5MiBhMDFiZTM1MGVkNjE1ODFiNDI3M2I2MzIwYTYyZjJkZDRlMGZhZjE3IGxlZ2FjeS10cnVuaworMzc1OTMgMGQ2ZDU2YjIxNjRiN2NlOGM5MDBiMjgyNzU0NzY0ZWZhMGU3OThlMCBsZWdhY3ktdHJ1bmsKKzM3NTk0IDQ0Y2RhYzliZjc4NTllYjc3Y2U2YWQ2ODM0ZDIwM2QzZDVmNGY1MWIgbGVnYWN5LXRydW5rCiszNzU5NSA1M2M0NjhkMDk1NWJhYTA4ZDFlOWRiZWViZjZjM2EzZTRlMzM3MzFlIGxlZ2FjeS10cnVuaworMzc1OTYgZDk0MDRkYjI5YmM2NTc3YmQ0MDlhOTk1YjNlNzcwZDllNjdkZDExMCBsZWdhY3ktdHJ1bmsKKzM3NTk3IDM5YTEzZTM5ZDI0ZWI5ZGUwZjBiZjIwNzljMTQxZTkzOTgzM2IyYTQgbGVnYWN5LXRydW5rCiszNzU5OCBlYjNkNjAzMGQ5NTAxMDcwZGM5MjcyMGI4MmU1Y2IzZTRkODFmNGIyIGxlZ2FjeS10cnVuaworMzc1OTkgMTM4M2M0NjkyYWY3NGRjYTc4Nzg1NmVkMWY1OWE1OTdmYzIzZTI0MSBsZWdhY3ktdHJ1bmsKKzM3NjAwIGE4MDQyODBlMzRmOTBmZTIxNGUwN2FkNmM0MDMyNzVmNDUwZDc5NDggbGVnYWN5LXRydW5rCiszNzYwMSBlNGY3ZDNiMGM1ZDRmZTQ3ZmRiMjdiY2YzN2E4N2UwYWNmNTM0NjIyIGxlZ2FjeS10cnVuaworMzc2MDIgYTRmNzQ3ZTcyMTM4MWNmN2RmZTc2MzRmMWE5MTRkMTU3ZTE2MDBhOCBsZWdhY3ktdHJ1bmsKKzM3NjAzIDc2MzU1MzYzMTAxYjBhMTE1NTAxODc1YTA0Nzk4NDQwNDU1MDVjOTMgbGVnYWN5LXRydW5rCiszNzYwNCA0NGUxNzZjY2EzMzcyMWFkOGQ4M2Y1MDczYmYxNzQ0YmZhODVhNjYwIGxlZ2FjeS10cnVuaworMzc2MDUgZDFmMGM3MDc5YjgyODc5YTU1OTM5NzY2ZThiYTVhOWMwNzY1YmM4NyBsZWdhY3ktdHJ1bmsKKzM3NjA2IDE3OWU0MmVhMmU5Yzk3MTk4ODE3MTI4NjE2ODA5MzMzY2M0MDAyNGYgbGVnYWN5LXRydW5rCiszNzYwNyA0NjgzOTgzZTg0YjM1NWQxYWUwNDM5MjM5NWRkMmQxMDZjZDUzNzY2IGxlZ2FjeS10cnVuaworMzc2MDggOTljYWJhODE0NTY1NGNhMzk1YzM0ZjU3ZDUzZmIyMmEwY2EyMTg4MiBsZWdhY3ktdHJ1bmsKKzM3NjA5IDc0Y2ViNmZjYjQzMjdkZDhjODVlMTAwZDg4OGIzNmQ1ZjlkZWZiMzUgbGVnYWN5LXRydW5rCiszNzYxMCBhMjdiMDI3MTcxMWJkMDViYjAzNWVlZjJiYjk0MThlNTcwN2ViZGY4IGxlZ2FjeS10cnVuaworMzc2MTEgYjBlYzRjOWQ1OTViMDBiMjY2YmQxYTkzOWU3Y2JmNzIwMGQ5Yjg5MyBsZWdhY3ktdHJ1bmsKKzM3NjEyIGI4NmM3YzQ3NzRlZGZkODMyZWI2OGZjOTQ5ODdlMThjZGIxODFkOGEgbGVnYWN5LXRydW5rCiszNzYxMyAyY2MxMDdjOTY0NmUyYmRiMDNmMmQwYTI1YmQ5NzlmNmU0ZWUzNDVhIGxlZ2FjeS10cnVuaworMzc2MTQgZWM5OTNiNzI2NjA1NzI4OGRlOTUzYjc5NDkyNjM4MDE0NzE2NjFjNiBsZWdhY3ktdHJ1bmsKKzM3NjE1IGFhMmQ2MDYwNDk1YTA3YmI0ZjM3YWRhOGVhYzk3NDhjMTM0MTBmNTkgbGVnYWN5LXRydW5rCiszNzYxNiBkZGMyZDZlNTQ3YzE1Mzk0ZjgzZGVlNjA0YmJmYTE1ZGE0NmM5NjgwIGxlZ2FjeS10cnVuaworMzc2MTcgOTJlMDViNjM0OTk3ODY5MDZiNDFkNWE1M2EyN2Y1ZjdiZTNhNTkyZSBsZWdhY3ktdHJ1bmsKKzM3NjE4IDEwYjI1NDE0NjI4Y2RiODJjODBkMjYwZjE5M2U2M2ExNzMxNDM4OTAgbGVnYWN5LXRydW5rCiszNzYxOSA0ZjhkYjU1Y2UxMjRhMmVhN2Y4YmMxMDM0MjU3ODc4MzFjMWY5NDExIGxlZ2FjeS10cnVuaworMzc2MjAgMTk3Nzc1MmNmODA3YmM3ODlkOTAwYjkzZmMxNjgyZTViYjEzZWExYiBsZWdhY3ktdHJ1bmsKKzM3NjIxIDhhNTA2MWJjZDQxNzlmODI0ODAwODVjMDE2ZDQ2ZjRlYTRiNWY4ZGIgbGVnYWN5LXRydW5rCiszNzYyMiBmYjI3M2E4M2M3NWZkOTI1NzE5Nzg5MDVhZjU4YzgwMjRlZDQ5YTE1IGxlZ2FjeS10cnVuaworMzc2MjMgMTFkMDFmYzY1MGRjMDUyYWZkNDljNzQ0Yzk1MGU5MzU1ZTk3ZWE5NiBsZWdhY3ktdHJ1bmsKKzM3NjI0IDQ2MjE3ZDA1YTQ3NjZhNDYxYmY0MmM4ODBhYThhZDEwNzBhYzIzMjEgbGVnYWN5LXRydW5rCiszNzYyNSBkMTIyODEyN2QyOTQyNWY2NDRlYzc5MTQzYjIyNjA2YmJlZmFjMmE4IGxlZ2FjeS10cnVuaworMzc2MjYgMjZmZDAwYjM2OGYxZDQ1MmU3NGI2NDFlNjZjYTE2MmQ1ODQ0OTA4ZSBsZWdhY3ktdHJ1bmsKKzM3NjI3IDE2NmJkMzM5ZDNiZmQ2MTljNGQ3MDU1YWQ4NjEyNDAxZWY4MzgwYTYgbGVnYWN5LXRydW5rCiszNzYyOCAyNmJlZGY2M2U0YTg5YzUzZjhmOGZiMzVlZTE5NmQ0YmM5NDA5ZmRjIGxlZ2FjeS10cnVuaworMzc2MjkgYjMwOGUxNWJkN2ZiYTkyNWYxNzc3MzExNmY5ODVkYjJjMGNiMTI5NyBsZWdhY3ktdHJ1bmsKKzM3NjMwIDE5MDdhZDU0ZDM1MWNlNzdmYTgyMmE1ZTNhYTMyMDcxYmY3Y2IxZGYgbGVnYWN5LXRydW5rCiszNzYzMSA1NTQ4MmU5ZGViNjYzODM2NGMyMDMyYjBiMWVlYzg4MTY0ZDFhYWFjIGxlZ2FjeS10cnVuaworMzc2MzEgNTNjZmYwNDI4Mzg1NWFkZjg4ZWQwYzBmZDM2OTg4MjdjYTg0MzYzNyBsZWdhY3ktdHJ1bmsKKzM3NjMzIDcyYzUxMzFkNGM0YWYwZGIzN2FiNDE1Mjg3OGI1OGRlMDAwZWI2MWQgbGVnYWN5LXRydW5rCiszNzYzNCBjNmFhYzAzNDc0YzVlMjM4Mjg2YWNkYjQyZjE0ZGVkYzdkZWQxZjk0IGxlZ2FjeS10cnVuaworMzc2MzUgODhiZjQ4YzA2OWY5YzM2MjQ5NWJkNGY2YTY1ZDI2M2ZlYzZiMjA4NSBsZWdhY3ktdHJ1bmsKKzM3NjM2IGJhNzVmZGE5MjIwYzJhMTU0ZDY2NTJlMzAwYmY1ZmRlY2E3MmQ3ZWMgbGVnYWN5LXRydW5rCiszNzYzNyBhYjA5ZGFhYzU2OTFiNzhjNDliYjQ0NzI1MmUyMjBkZTY2NTczMmRiIGxlZ2FjeS10cnVuaworMzc2MzggZmJhY2JiMjYyNzg5NDk4MTllMGI2OGM1MDUwYzBiM2UwYTlhMzNkOCBsZWdhY3ktdHJ1bmsKKzM3NjM5IGUxNWMxNWE0ZmJlODgxNTExMTlhZTMzYmQxNWM0MzM0YjNkNDY5Y2MgbGVnYWN5LXRydW5rCiszNzY0MCBjNWQ5NTFhMGUwYzNlOTBhNjI1ZTU3MmU2OGI0ZDEzYTk2OTliMDg0IGxlZ2FjeS10cnVuaworMzc2NDEgZTRiN2M5MjNlZDVmMjczN2Y2NjE1NmE4OGY2NjAxZTE0YzY1NTdiNSBsZWdhY3ktdHJ1bmsKKzM3NjQyIGYxYzA0OGU3NDNlMmQ4MDYwYWE4OTQwZjMyYTY4YTExYWRiOGMxODQgcmVsZWFzZTIzLW1haW50CiszNzY0MyBjNjZlNmM5ZmZjMmRiZDNkMDE5YTc0ZDNiMWJmNjhhMDgxMTU0ZmFiIGxlZ2FjeS10cnVuaworMzc2NDQgNDY4OGQyYTI3M2Q5MGI4NmZiY2MzMDIzZTc3OGVhOWYzNjFhMGVhNSBsZWdhY3ktdHJ1bmsKKzM3NjQ1IGQ5ZDNiNDc1Y2ViMjU4NjYzYjEzMTIxZDc0NzllN2VlYWQ1NjI2MzAgcmVsZWFzZTIzLW1haW50CiszNzY0NiBhNTJkZTkxMWIyODQ4MTQ3MTgyMTY5Y2JmYzMyMmM2ZjUyZjkwMTAwIGxlZ2FjeS10cnVuaworMzc2NDcgM2ZkZDk2ZjBjZTg2NmM1YWY2OTIxZjM2ODQ4MTU4ZmFmYzBiZjNhNiBsZWdhY3ktdHJ1bmsKKzM3NjQ4IGYxNzVjOTgzODM3MzZkNTg3ZjQzNjE3NzYwYjYxMjU0YTljM2E1NGMgbGVnYWN5LXRydW5rCiszNzY0OSA4MTdjMjQxYmZmZmY4ZGY0ZjExODhmYmE2MzJkNGNmOGIyOWQxNTY2IGxlZ2FjeS10cnVuaworMzc2NTAgYmQxODg4ZTkyOTlmNzM1Y2U3MTE5NjQ5Yzk4YzdhZDRmOWZjZjFiNyBsZWdhY3ktdHJ1bmsKKzM3NjUxIGI4Nzc4Y2Y3ZDBlMzczODcxZmVmMDM5OTcyNjQ5MjczYTc3ODc4NDAgcmVsZWFzZTIzLW1haW50CiszNzY1MiAzMzQyYmMyMzAwYzNhYzJlNmNjYTVlN2Y3MmI3YTY1MDc5MmMwYjU2IGxlZ2FjeS10cnVuaworMzc2NTMgOGQ4YjM5MjM0ZGU5ZTZmMGJlOTc4MjcyY2ZmNTIzYWE0MTdmNmM3YiBsZWdhY3ktdHJ1bmsKKzM3NjU0IDgzYTAxOTEyODk5ZjYwNDYwMGFkYWU3YWZmMTEzNjI4Y2I4OGI2MjggbGVnYWN5LXRydW5rCiszNzY1NSA2ZGZmZGMzM2ZjNmM1YzAxZjAxY2M5NmVmN2E1YWJhODM0NjBiNzI0IGxlZ2FjeS10cnVuaworMzc2NTYgZDA2M2U0ZGU1Njc2MDBlYTZjN2I3ZWFkODhiMzdiZjEzZDQ4ODg2MSByZWxlYXNlMjMtbWFpbnQKKzM3NjU3IDIyM2Q4MjI2MDQ1MmFhYzI1Yzg1ODgwNzEyMWE0MWVlMGQ0NTA0MzAgbGVnYWN5LXRydW5rCiszNzY1OCBhMjI0M2Q2NmQ0MGJkYTFlMzE5ODVjNjkzY2Q4YzlmNDAwMDY1ZjIyIGxlZ2FjeS10cnVuaworMzc2NTkgNjljOTY4ODFhYWFkYjQ4NDgyZDAyOTQ5NTljM2ZhNDU4MmM1MGQ5ZCByZWxlYXNlMjMtbWFpbnQKKzM3NjYwIDY4MTliYTAyMzY2NzZmZTAzYzYyYjAxMDVlOGUxZWFmZWNiNmY0ZWIgbGVnYWN5LXRydW5rCiszNzY2MSBhZWI2ZmYzMDg4NDhjODc1ZDVlNGEzYjUyMzMwZDcwMjZiMzNlMmU1IGxlZ2FjeS10cnVuaworMzc2NjIgNGZlZGM1MjlhZDMyZGI5NTcwNDRjMWZlODFjNjVhMjMzNTQ3NDQ1NiByZWxlYXNlMjMtbWFpbnQKKzM3NjYzIGIxYTllYTZlOGFlMjBhMzNhYzBlNmNjZWMzYzA0N2YyOGY3Njc4YjkgbGVnYWN5LXRydW5rCiszNzY2NCAxOTlkYWNlMDI0YmEwNDRkNDUwZGRmMzhiZWY2ZDc5YWZmNTE3MmIzIGxlZ2FjeS10cnVuaworMzc2NjUgZDQ4NWU3OGE0M2Q2NTg0YmJiOTI4ZTM2MTY0ZDQyZDRlZWZlOWJjZSByZWxlYXNlMjMtbWFpbnQKKzM3NjY2IDVjODYyNDk2YTlmNmFhODMxZGE5Zjg3ZTgyYTk2MTBhZmRiNTkxNDggbGVnYWN5LXRydW5rCiszNzY2NyBkMmU5NTk0MDQ4MjY5MmI4ZThiYTYxNzIzYzI3YWY3ODU4ZTI0MzRlIGxlZ2FjeS10cnVuaworMzc2NjggZTljYmUwYWRiMjhhZTdmYTdhYzIzMTg5YWZlYjhjMmVmMzIzNDEyNyBsZWdhY3ktdHJ1bmsKKzM3NjY5IGE5ZTYwNTE0MDA3NDc3ZjIwY2Y0ODgyNzZkZDE1ODZkMTQyOTNmOGIgbGVnYWN5LXRydW5rCiszNzY3MCBhM2RmZDgwMTUzM2I2MTg0MWVkNzFjOGJhOWE5MTRmYWJjNDdhOTNhIGxlZ2FjeS10cnVuaworMzc2NzEgNDdiMzg0NTE5Nzc1NzU2MDZkZTJkYmRkYTU3NTY1YzEzNWM2OGI3YiBsZWdhY3ktdHJ1bmsKKzM3NjcyIDU5ZTBmZjBjZDNkNGM5MWUyYmZjZDM5ZWE2MGY2ODY1ZWM5MGNhYjQgbGVnYWN5LXRydW5rCiszNzY3MyBkNDQzNTA1ZTdlZWMxOGI5NDY3YjQ5MmRmNmQ1MmJhMjUwZWU1ODRjIGxlZ2FjeS10cnVuaworMzc2NzQgM2ZmMjUyNzE1ZDkzYjA0ZWZlZDZmNTJlYTFhMjg4MzEwYTEyN2NmMiBsZWdhY3ktdHJ1bmsKKzM3Njc1IDFjNjc2ZTg5MWIzZjlhODM3MmExM2Y2ZjMyNjljYTFkMzA2MTVlMmEgcmVsZWFzZTIzLW1haW50CiszNzY3NiBhZDkwODg4YjE3YmMwMjM0NTg5MWUxZWY2ZDJhNmE5ZmE2N2Q4ZGU1IHJlbGVhc2UyMy1tYWludAorMzc2NzcgZjU0ODY4ODU1YjFjY2RhYTJhNzgxNTBiZmZjNmI5N2Q4MGRjYzIwNCBsZWdhY3ktdHJ1bmsKKzM3Njc4IDgyMTQyYTI0ZTg0NWMzM2JkOWNmMDEwNDE5YWVlZmRlMzg2NmFiMGEgbGVnYWN5LXRydW5rCiszNzY3OSAwYWZiMjUzMGU5ODZhYTA2ZGQ2MGZiMzcwMmY0NTc0MjMxNTQyOTI5IGxlZ2FjeS10cnVuaworMzc2ODAgYjBmMGM1N2IxZTA1NTcwMjBiMjJhMTkwMGM1ZDJkMmMwMmUzYmVhMCBsZWdhY3ktdHJ1bmsKKzM3NjgxIGVkMDQxZTBlNDUxZWYxMWNiZTkxODgyZTkwNDc4ZmI3NmYyNWZhMzEgbGVnYWN5LXRydW5rCiszNzY4MiBiM2EzMGUyODQyYjk2NzViZDNlY2EzOWYxYTQ3MDZkNDgyM2RlYThjIHJlbGVhc2UyMy1tYWludAorMzc2ODMgOGQzOGYyZjIxNTFjY2E1YWEyMTk4MDBlYTVjMGUyNmE5NjllODBhOSBsZWdhY3ktdHJ1bmsKKzM3Njg0IDJhMTUzMThjNDAzOGMzMDQ3ZGM5YzFjOGEyYWE0OTNjZTIxZDM2YTIgbGVnYWN5LXRydW5rCiszNzY4NSBmMTQzMjlhNzg5ODE5MTIxNTA1NmUzZjU5ZGU4YzIzYjg4ZGU5YzQyIGxlZ2FjeS10cnVuaworMzc2ODYgYmYxOGNhY2EwNzMwNDM3MTcwNGRkYTI2YTU1M2RmNmYzMWNhYjM4MyBsZWdhY3ktdHJ1bmsKKzM3Njg3IGRiODcxMGYxMzY1MDg4ZWJkMDBmOWJjMmNlMWM2ZWQyNTNhZGQ1YTggbGVnYWN5LXRydW5rCiszNzY4OCAyOWI5NDViYzBhMTdmMWM5YTliMWE2ZGQ4Y2I2MjFhZjZlYmJkMTlhIGxlZ2FjeS10cnVuaworMzc2ODkgYWVkMjUyNmRhMWZjN2VkOTM0M2Q2NGM5YzgzYTZlMzRiOTg2ODcyMyBsZWdhY3ktdHJ1bmsKKzM3NjkwIDI4ZWYwYTNmNTdmNmNkNzg0OGE3NmZiMmZhOTYzMWI2ZDM0MDYyY2MgbGVnYWN5LXRydW5rCiszNzY5MSBkOTM4YjllZDMyZmZlY2FlOGM0MDQ5NDVjM2NlNjJiODliYjRhZDliIGxlZ2FjeS10cnVuaworMzc2OTIgMTdkODY2MWU3ZDEzYWFlNDZjYzQwYzVjOTE4NDI2NDE1MzgyOGI2NSBsZWdhY3ktdHJ1bmsKKzM3NjkzIDZjNDE2OTUyODRmNmZmN2M5NDk3NzRmNTYxNTRkMTRkYmYwYzI0N2UgbGVnYWN5LXRydW5rCiszNzY5NCAzMTcxMDFjZmZiNzI5MzQ1NTI3YmRmYjM4MTNiMGRkM2UyNmJkMGU5IGxlZ2FjeS10cnVuaworMzc2OTUgOWZmYzM0NDg5MWE2MjZlZGFhMjYwMWZjYWU0MDU5YjY0MWIzMWYxOSBsZWdhY3ktdHJ1bmsKKzM3Njk2IDYyN2Y3N2UzY2ViNjUxYmExZDBhYWQ2MGM0ZjU2Yjk4Y2I2OTA1NTggcmVsZWFzZTIzLW1haW50CiszNzY5NyAxMDUxMmNlYmEzMGM1NWNlNjRkNWEyNmE3ZDkwZjllMGRiNjQ4MTAyIGxlZ2FjeS10cnVuaworMzc2OTggZWYxNDllYTU5NGE0YzBmNGE4MTM4ZmQ0Yjk5ZjhhN2ZmMTE4MzZjYSBsZWdhY3ktdHJ1bmsKKzM3Njk5IDk5MWQzNDkwZjY5OGViMmFmOGQzODA1NjI1MzJkNzI3YTUxZTI5NmUgbGVnYWN5LXRydW5rCiszNzcwMCBkYzhlY2Y3MjQ0ODhjMjZmNzVkOTAyM2JmNGFlMjY1NTEzNmY0NWNhIGxlZ2FjeS10cnVuaworMzc3MDEgYmQ1NTgyMTFiYTU1MmM3MTQ5YTgzNmM4ZDZmMmJiOTg4Y2NhZWIwMCBsZWdhY3ktdHJ1bmsKKzM3NzAyIGZkY2UzZDM5YmVjMTRkNGQ0NzA0MDE1NTJlN2FjNjY3NjYwY2JmMmMgbGVnYWN5LXRydW5rCiszNzcwMyA0ZGQ5N2MzN2MyY2MyYzMzNzhmMmM5MTZhMzdjZDFmZWE3YWQ4OTljIGxlZ2FjeS10cnVuaworMzc3MDQgNmZjMTAzMDZiZjMxMmJhYzk5M2M3NTIxZjY1MzcxYzkyYzVjMTA3MiBsZWdhY3ktdHJ1bmsKKzM3NzA1IDEwNWJmZTE3NjliNzk2YzQyN2Y1ZTJmZGM2YTMwMDM3Y2RmNzBlNGYgbGVnYWN5LXRydW5rCiszNzcwNiA5OTNiMTI4ZDRlMjk0YTUxNzA5MzU0ZmJiMDBmYjRkMmQxMzhmMTJiIGxlZ2FjeS10cnVuaworMzc3MDcgYWM0ZmE5NDJmOTJlNzhhNmNiZGRkNmE4ZDdkYmZkODRkNzNlMDEyOCBsZWdhY3ktdHJ1bmsKKzM3NzA4IGVkMTM5MzcwNzlkZjE3Y2FjMjZjOTcwNjcyYmE0MmVjYTIzYWYzZDAgbGVnYWN5LXRydW5rCiszNzcwOSAwMzJmMzQyZWZjZDI0ZjI0YzY2Y2U2YmZiMGVjMTM4MDc3YTQ1ZWRhIGxlZ2FjeS10cnVuaworMzc3MTAgNzliY2FkMTRlOTZhYWE3NzU4OTZkNGZlNDQ4NDc1MzNiZDhlOTI3NiBsZWdhY3ktdHJ1bmsKKzM3NzExIDU1MTA5OTVlYTI2ZmI1ZDk0OGEwNGRmOTYxOWY3MDVjN2RkZWNiNGQgbGVnYWN5LXRydW5rCiszNzcxMiAzMzk4YzVjZThiN2EwOTYwNzRlNGYxYjkxODAwNGY4YTA4ZTY1MzI4IGxlZ2FjeS10cnVuaworMzc3MTMgZDgzOTk4YTcyMWEwYTJlZjFlNDM3ZjNkNmQ4YTA0OTFiMWFhNzIzMyBsZWdhY3ktdHJ1bmsKKzM3NzE0IDI2MjU1MzdhNmRmYWRkNTM2MDhjYzc4MzI5OGZmOWM1MzhjNDljZTkgbGVnYWN5LXRydW5rCiszNzcxNSAyZWUwMzAxYjQ4M2NlMmE4NGY3ZTM5Yjk4ZGJhZGM3ZmIyYmEzZWY5IGxlZ2FjeS10cnVuaworMzc3MTYgOTQzODYyYjJiNGRmZTU2ZTU4ZGM1MmU2ZWIwZDA4NTQxZDlkN2EwYyBsZWdhY3ktdHJ1bmsKKzM3NzE3IGQ0MWFjMTFlOWM2MDRhNjU5NmMzY2YxNGUzZGI4MzM0M2U4ZDExOTIgbGVnYWN5LXRydW5rCiszNzcxOCBlZWMzMTdlZTVjMzViOGY4NzIxMjVhMzFmNTBiNTRjMTU4ZjJiOWQ5IHJlbGVhc2UyMy1tYWludAorMzc3MTkgMWNkMTlkYWFhOWQ0MmZhYjcyMjMyMGE4ZDlhZmNjMzJlOTI5YjBiNCBsZWdhY3ktdHJ1bmsKKzM3NzIwIDYwYzYwZGM3NWM3NzI2NGI5ZTJjMmY1ZjRiZDZjNjFmZTNjZmIxYTggbGVnYWN5LXRydW5rCiszNzcyMSA2ZGEwNzg3M2EwZWUzNzU0OTVkYjliODVmZDI5N2JhZGIzYTE4MGNhIGxlZ2FjeS10cnVuaworMzc3MjIgMGRkYWU4YjBmYjE5YTM4MzIzYjQyYmM1Yjg0NjNjZGYxOWFkOGRiMyBsZWdhY3ktdHJ1bmsKKzM3NzIzIDMwNzMyNDM0MTA3YjZjZmU2ZDkyOGI0NDAwZDMyMmU3MjA3Y2FiODAgbGVnYWN5LXRydW5rCiszNzcyNCAzNDY3Mjg4MDg5YTFlMjU4NjNlNWQzZDc0NDFhNTZmNDNjNGU1M2IyIGxlZ2FjeS10cnVuaworMzc3MjUgNGEzZWFhMWFhM2FmZDJmNWI5NGNlMmVkMGIyZTlkYjdkYWMyMGVjNyBsZWdhY3ktdHJ1bmsKKzM3NzI2IGZhY2I1YTJmNGI1M2U5N2QzMTJkYjMxOTA5OWViNzlkNDkxNTEzYWMgbGVnYWN5LXRydW5rCiszNzcyNyBiNTg1YmNjZmIyNTA1NDNhNjZiYjhlZjRlNDVkMTBhMzM0MTA3ZWRkIHJlbGVhc2UyMy1tYWludAorMzc3MjggNmI2MWFmMDgzNDkzMzEzYjUzOGU1MTU0ZDI3NmYxZjU4NzY3NTU3YiBsZWdhY3ktdHJ1bmsKKzM3NzI5IGYxOTY3MTZlYTBkYjQ1ZDYzNzY3ZjJkM2I3N2VjYTQxZmMxMzgyNGUgbGVnYWN5LXRydW5rCiszNzczMCAyNjMyZjQzNDA5ZjQ5NjVhY2ViNzEyNTMwOTk1ZTRkNDQyMGNlZWNiIGxlZ2FjeS10cnVuaworMzc3MzEgMDdkOTRhMTYyY2Y4OTUxZWZhZGY2ODM1MTQ4YjM2NzM4ZTc3MjBmZiBsZWdhY3ktdHJ1bmsKKzM3NzMyIDMwOGU4ZWYyZDNlZGY1ZjU1MWJmYjEyMTk4YTI1YjUwNWI5ZTNmN2UgcmVsZWFzZTIzLW1haW50CiszNzczMyAyMjNkMjBhZmM4YjVlMWViOGM5M2ZhNmExZGExOTk4YzM0MThmY2U5IGxlZ2FjeS10cnVuaworMzc3MzQgODBjYTFhOGIyMzIxNjJlMDlkN2Q1MjY2M2E1MjE2YWVkYjUyMTdhYiBsZWdhY3ktdHJ1bmsKKzM3NzM1IDVhZmE1Mjc3ZmNkOTc5M2FlMGJmMWM4YzE2OWY3YWQzMDYwZmNmNWIgbGVnYWN5LXRydW5rCiszNzczNiAxODBkYzgyOWVmZmY4MTc1MWVmYjgxMmNmMGRhMDRiYWZiZjVmMDhiIGxlZ2FjeS10cnVuaworMzc3MzcgYmYyZDAzZGZjMzhlMjhmMWM0YzQ5MWY5NzkzMGIyMmI5MjlkNTMzNyByZWxlYXNlMjMtbWFpbnQKKzM3NzM4IDBkYzNmOTcwNTU3NzA3M2FjMDUwZDllMGUxMDEzOWZjMzQ3NDQ3NTYgbGVnYWN5LXRydW5rCiszNzczOSAyNGZjM2VhYTE5ZTBiNWRkOWFjZjc5ZGQ5ZDQ4N2NkMmJmMGYxN2E4IGxlZ2FjeS10cnVuaworMzc3NDAgNjMzY2FkZWJmNjhkNGRkOGNmMGM5MTlmZjUyMTQzNzZiZWJjOGM0OSBsZWdhY3ktdHJ1bmsKKzM3NzQxIGE4Yzk3OWNjNGZhNjU4ZDgyNmQyMTA0OGZkNzgxYTUyMGIwM2IyNmIgbGVnYWN5LXRydW5rCiszNzc0MiBlZjUwMzBiYzVmNjcxYzRiMDQ4MWM4OGNiYTkxMzE1ODQ5Y2FkYjZlIGxlZ2FjeS10cnVuaworMzc3NDMgNjg3MzYyZmE0NzFjM2MwOTMxNzA1NjZmNTllNDliM2Y2YjNmZGMxMiBsZWdhY3ktdHJ1bmsKKzM3NzQ0IDhhMDljODJlNDI2MTBiMGQ0OTZmZDMxODU3OTRmZDdmYjM0ODU4ZTggbGVnYWN5LXRydW5rCiszNzc0NSBiYzA0MjFiOTY1N2EwMDU4YWE5NTBjYWNlOGMzYjA1ZTc1ODViYWQ1IGxlZ2FjeS10cnVuaworMzc3NDYgYTZmOTdlMGU2MzE4OTY0YzI2YzhmYmFlMGQ0MDU2YzEzYTUzNWVjMCBsZWdhY3ktdHJ1bmsKKzM3NzQ3IDVlY2EyNDhmNjM5ZTQyZjQwNzJjOWM3ZGY5YWJmOWNkM2Y0ZDNmNzEgcmVsZWFzZTIzLW1haW50CiszNzc0OCBjMTllODExMTIwNTkzMTZhNjgyNDNkNzBkMzhmMDJiMDI3NzVlMzk0IGxlZ2FjeS10cnVuaworMzc3NDkgYTU3NmNmMWFjNmEwNGU3ODJmN2E3MTI3MzMyYjVhYzg4NmYxOGQ2NyByZWxlYXNlMjMtbWFpbnQKKzM3NzUwIDk3Njg2MjRmMDM1ZmEyMzhmZTk1NTNmN2M2MzVjNDAzZTQ1MjUzNTggbGVnYWN5LXRydW5rCiszNzc1MCAwY2IxYmE5MjI0MWJhMjk1NzU1MDU4MjhlZWUyNDFjZDEyNmQ0NjkzIHJlbGVhc2UyMy1tYWludAorMzc3NTEgMGQ2ZGJlYmQ4YjRhMmQwNDMzOThhMjRjMTllMDE2ODVmNzJlOTY0NyBsZWdhY3ktdHJ1bmsKKzM3NzUyIDUzYWEwMTkzNzBkYjUwYTNlMDI5YzU3NDUyMTJiYjUxMDY5ZTE0ZTggbGVnYWN5LXRydW5rCiszNzc1MyBjMzA4YzZiYTAwMmY1YjViMjQ4OTcxNDgwOGI0MzQzZmZhNTg4ZmEwIGxlZ2FjeS10cnVuaworMzc3NTQgZmViNDAxN2NiYWQ0MmE3NDVjMjViMWM3NzNkYzRhNjYxMWU4Nzc2ZSBsZWdhY3ktdHJ1bmsKKzM3NzU1IDc4NmQzYjhiOWJlZWRiYWM0NGNmYjhiNDRmMzVlYTE0ZTFlYTIyMGQgbGVnYWN5LXRydW5rCiszNzc1NSA3ZTM4N2E5ZGNjNzk5NTRhNzc2OTVhZGVmOGI1OTNkYTM1YmUxMjE0IGxlZ2FjeS10cnVuaworMzc3NTcgODVkYjAxNmU4ZGFjNjNlZTk1OWFlZDQ1NWU5MTg2YjNmMDgyZTE1NSBsZWdhY3ktdHJ1bmsKKzM3NzU4IGQ3ODNkNTE3MTgxMTllNDEwNjhjMzg5NmM1YmM5NWU4NmU5YWNjOTAgcmVsZWFzZTIzLW1haW50CiszNzc1OSA3MTBiN2U4ZDJmZjJhNjBiODY1NzNlOTNlYjMwZWIwNjk3YTZlOGUwIGxlZ2FjeS10cnVuaworMzc3NjAgZGZiN2IwN2RjZGVkZDAwOTJhNWJjYWNmNjIwZWQ2YjMxZDJkMmZjZCBsZWdhY3ktdHJ1bmsKKzM3NzYxIGE1MTI5ZDZhYjFjYzZhNTM4NWU5NjIxZjhkN2I3ZjRjMjRiOTBjYzYgbGVnYWN5LXRydW5rCiszNzc2MiBlYjk3OWMzZjE0YmE5NjNkOTU0MmUzMzkwZmFmZTI3OGY5YjA5NjQ5IGxlZ2FjeS10cnVuaworMzc3NjMgNWNjMzgzNDAxMjk0ZmI0YzU0YTNkNzI3NGNmNTUwY2ZlOGUyYzIzOSBsZWdhY3ktdHJ1bmsKKzM3NzY0IGFiNmIxMDhhOGNlYzg5YTIwZGIwNTc3YzQ0NjM5YjBiOGE3MTgwNmQgbGVnYWN5LXRydW5rCiszNzc2NSAyMDg3MzI5NWU5MTYwNzU3NGViNGYxMDY3YzU5OWNiMDhhNWZlNjI5IGxlZ2FjeS10cnVuaworMzc3NjYgMTljMmRjY2ZhZjY1M2Q5Njc3YWRlNzhlMWNiNmFiNWQ5NmQ4NjkyNCByZWxlYXNlMjMtbWFpbnQKKzM3NzY3IDEzMjg5YTc0NDJjMzdmNWI0OWNkNTYyOGM5ODY1MWU5NjY1MTllMmQgcmVsZWFzZTIzLW1haW50CiszNzc2OCAzNjAyNGZhM2JmNGY0ZWE0MTkzZWM2ZDI5YWZmYjc2Y2NkYTlmNmNiIGxlZ2FjeS10cnVuaworMzc3NjkgOGY4Yzg5YmJlNDM5ZDBlMTg0ZTRlZTFkZDhkYWUwN2E1OTFlNDhiMSBsZWdhY3ktdHJ1bmsKKzM3NzcwIDVlZDFkOTdiNDlhMTI0NTlhMGI2YmNhNzBkYmU5MGZjOGY5YmQxMTQgbGVnYWN5LXRydW5rCiszNzc3MSA3ZWQ4OTliNjExODI4MDZjOWIxNmQxNmQwNjcwOWE2MmUyOWY4ZmI5IGxlZ2FjeS10cnVuaworMzc3NzIgMmZhODcyNzg0ZWI2MjAxYjIxZWE3M2JmNmM5MWRhZjBhYjVhNmIyNSBsZWdhY3ktdHJ1bmsKKzM3NzczIGIzZmZhNjRmZjRjNjQ3MDIzYTI1Mzc5MmExNWY1MDJkZDRjMTc3ZGIgbGVnYWN5LXRydW5rCiszNzc3NCA5OWI5MjAxODYzNjcxYjhkNjkwZWUyNjUwZmQxNzUwMDY3OTQwMTA0IGxlZ2FjeS10cnVuaworMzc3NzUgOWE4NjI0MjVhOThhMTQ2Y2FkNjlhMTI5MzU1M2UyOTJmMjg0YjlhOCByZWxlYXNlMjMtbWFpbnQKKzM3Nzc2IDljZTU3NjQwMTlhZWYwNDQ2MTcwZDEzNGExMjEwNTllY2QzYTVjYzEgcmVsZWFzZTIzLW1haW50CiszNzc3NyBlYTZlZjQwZGM5MjIwZjQ3NTdjNGJmMGNlMTUwZDFlZDllNzgwMDJiIGxlZ2FjeS10cnVuaworMzc3NzggN2U4OGMwNDM3ZWNjNjIwZWE3YWUzYjg4MTFmN2I2N2Q0NjdlNzU1MyBsZWdhY3ktdHJ1bmsKKzM3Nzc5IDAyMDE2ZDVhNGRjNmE4MzU2OWRiYmIxODI2YzJlNmJlZjhiZWM1NGMgbGVnYWN5LXRydW5rCiszNzc4MCAyNTcxNGUwZmM4OWRiMTNjZGQ3YmM4ODBiN2MzMWQzNzY4NjMxYTQ2IGxlZ2FjeS10cnVuaworMzc3ODEgOGU5MWE3ZWFhN2I3OTk1YjY1NmUxYTM2YzA3Y2Y1ODBkYzBhNjBlNSBsZWdhY3ktdHJ1bmsKKzM3NzgyIDg2OTg2NTNlMDVmYzEwOTFiNTkxMDIyOGI3MjZkMjM2NGM1ZTcyMGQgbGVnYWN5LXRydW5rCiszNzc4MyBkODJmYTkzMmI0MWJjMDM5MTY1ODExNmJjM2U5N2I4YzUzYTkzY2YzIGxlZ2FjeS10cnVuaworMzc3ODQgN2ZkNGQzNTBmZjgyNjJiOGQ1ODUwOTdkZDc5NTZhMWIwYmFiYmQxNSBsZWdhY3ktdHJ1bmsKKzM3Nzg1IDkxNzNiOWUwYWI3NzM0OTcwNDBlYmJiNzQyMzA3MjkxYzFhMzVjNWEgbGVnYWN5LXRydW5rCiszNzc4NiAwMThkY2M3ZWY4ODdkZWJjN2E3OGZkOWRjYzZmZTkyOWZmOGFmZWVmIGxlZ2FjeS10cnVuaworMzc3ODcgNjYyYzE1NTEwNmU0MjVjMTA1ZjllZjJmOWY4YjBmNjg0OTJjNGZhMSBsZWdhY3ktdHJ1bmsKKzM3Nzg4IGU0NDA0MDQ2ZTU1MmY4NmQ3NWExZGJmMWRlNmY2YWNlZjlhMzlmYWYgbGVnYWN5LXRydW5rCiszNzc4OSA4MzkwZjkzOWRjYzFmM2NiODMwODI4YWY5ZmU0MTM3NTM1ZWRhZTFjIGxlZ2FjeS10cnVuaworMzc3OTAgODI5ZWUzMjVhMThlNTM4N2ZmNzg5MzdiMmMzNGMzODlmOGM3NGZmNCBsZWdhY3ktdHJ1bmsKKzM3NzkxIDBkNGVjYzMxY2ZkODNkYjVkNGFkNmM0NzhmYzE5YWY0NmMyOWU0NzkgbGVnYWN5LXRydW5rCiszNzc5MiA2NjIyM2E5ZWJlNDg2MzU5YzFmNTc3YjhlODZlZGFiZjJlNDM4MTNjIGxlZ2FjeS10cnVuaworMzc3OTMgNGZhMWRmM2IwNjJmNDk3YTIzYzQ4YjQxMTZiNThmNDY5ZDU3YTgyOCBsZWdhY3ktdHJ1bmsKKzM3Nzk0IDU0OGYzOGE1NjY2OWUyMmY3Y2RiMzgzYjExZWFkOGIxY2IxZTIzM2UgbGVnYWN5LXRydW5rCiszNzc5NSA1OWM0M2ZkOGJhNzNmMDc4OGQxYWRmNjcxMzc1MjdlZTlmZTBmZGYyIGxlZ2FjeS10cnVuaworMzc3OTYgZWIyMzE1NDRjMWFkNWU2MDUwYjk3YTAyZGY5NmQ4YjQ2Zjg3MTE3OCBsZWdhY3ktdHJ1bmsKKzM3Nzk3IDBhZTI4YzNhOGQyNDA2ODM4ZjI4NjMzZmMyNDZiOTFiZGIxYzQyNjYgbGVnYWN5LXRydW5rCiszNzc5OCBhYjczMjE3NzMwZGIyMzJlM2UwOWQyNmE3OWY4ODVkOWU0MjliOWY3IGxlZ2FjeS10cnVuaworMzc3OTkgZTRlMjNlM2E3ODQ0YmNlZWYwZWNhM2UxM2Y1Njk4NzlkNDU1YTNhMyBsZWdhY3ktdHJ1bmsKKzM3ODAwIDRkZTM1NGM3OGE3ZWZiYzA0ODViZGQ4YTI1ZGMxODIyZjM4NmRiOGQgbGVnYWN5LXRydW5rCiszNzgwMSA4MWNiZjAzMTU0OWExZjllMGIxMDlkMjMyMjM1ZDY5YzZlMTkzZjlmIGxlZ2FjeS10cnVuaworMzc4MDIgNWZiYmU4MjMzYjc2MzMzNmJhMWVhMWM4ODBlOGNhNjY3MjFiZjRiYyBsZWdhY3ktdHJ1bmsKKzM3ODAzIGRmZDA3YjdiZTQwNzJmNzkzM2YxMWFmMTUxMzlmMjg2ZDUyZWU4NWEgbGVnYWN5LXRydW5rCiszNzgwNCA0NjNhMDNhNWNhMjI4M2U2YWI5MDNlMDMzMDIwYjMzMTkyZTQ0ZTVmIGxlZ2FjeS10cnVuaworMzc4MDUgODJkMDI1NjQxMjNkZmMyYzUxNjgyNjNmMjEzMDM2OTBhN2I1Mjg0MSBsZWdhY3ktdHJ1bmsKKzM3ODA2IDM1OWViYzU2MDkzZTdlYjJmNDQ5NWNmNDJmNzQ0NWIxZDhhYzQ4NTMgbGVnYWN5LXRydW5rCiszNzgwNyA5NjE3OWMwOTZkNjVhZGNhM2E5NjQwMDdjMTkxNTU3MzI3ZmRjMmZlIGxlZ2FjeS10cnVuaworMzc4MDggOTA0NzcxYmVmM2Y0N2ZkYmQxZjkyNzEzYjBkODVlZDhjNWNlMTc4ZSBsZWdhY3ktdHJ1bmsKKzM3ODA5IGFmZWUzYzMzYWU2ZDhjNzU1OTBhODE0ZTIwNzFlODRmNzRiY2Q3ZWIgbGVnYWN5LXRydW5rCiszNzgxMCA4YjJhMmY3YzEzYjgwZGM3NDRhYjg2MTViZTM5NzEyZGM5ZmVkMmZhIGxlZ2FjeS10cnVuaworMzc4MTEgZjJjZTE1YjAyYmEzZmViYmRmZWMyMTgwOTNiYTA2ODYwZDRiNjBjOSBsZWdhY3ktdHJ1bmsKKzM3ODEyIGI5ODE5YjlhMGRhZDU0MjExN2VlZTRlZDY3MDYwMzU0MmRhMzA4ZmYgbGVnYWN5LXRydW5rCiszNzgxMyA2MzNiZTQzYmVkMTdkMDM3YmZjOWEzNmI1ZGUzMDU2M2I1YWNhYTM1IHJlbGVhc2UyMy1tYWludAorMzc4MTQgZWIzNDRlMDNjYzcxMjU2MmVlMTI4MmVmNjBjNDMwNDM5MzRmYTExNyBsZWdhY3ktdHJ1bmsKKzM3ODE1IGI0ZjBhZDgxNTljNzM0ZGY5MWI5MDU5Mjg2MjQ1N2IzNjhmMDYxODkgbGVnYWN5LXRydW5rCiszNzgxNiBlMWYxNDAyNjA5NDc4YWY3ODY0NGI1MzA3MGUyZTUyNDhlZjY3MWVmIGxlZ2FjeS10cnVuaworMzc4MTcgMGZlOGExNmEzMzZhZWE4YTQ2ODFiMGRjMmJhZGQ5N2I2OTA5OTFhOSBsZWdhY3ktdHJ1bmsKKzM3ODE4IDc3YjFjMTUxNzRiNDRkYmYxMjExNzY1ZDc1ZTI2ZmRhNDczMDNlM2IgbGVnYWN5LXRydW5rCiszNzgxOSA5NDJmODc0M2FkZjAyNzhiNzg4MmUwZTdlNzBhNzNkZmM1ZDdiYjBjIGxlZ2FjeS10cnVuaworMzc4MjAgNGY3NDU2ZDAzY2I5ZGU2MjM5ODUwYTY5ZTY5ZDY0ZDVmN2Y4ZTZiZSBsZWdhY3ktdHJ1bmsKKzM3ODIxIGM4NzFlZjk2NjU1YzhkMzhiZGM5NDQzMjlkMDQ5MjUzYmFkMjRmODggbGVnYWN5LXRydW5rCiszNzgyMiBkYzgwNDc2Yjc4MmI3OTBlY2RhNDI3NjA4M2JhZmFiZTBmZWQzOTE1IGxlZ2FjeS10cnVuaworMzc4MjMgY2FkZDNlOGQzNDlmMDlkM2ViYjkyMWU0YjJhMGE3NTRiNjA5MjJjNCBsZWdhY3ktdHJ1bmsKKzM3ODI0IDk1OGRjOGI3YTgyNmExODA1Zjk1YWY1ZmYwZWYzY2MyODAyYjU3NDEgbGVnYWN5LXRydW5rCiszNzgyNSA0Mzc1MDA2ZTVmMDc5ZjcyYjZjOWM5NWIzOGY0NGMzMjIwZDQ3MzRjIGxlZ2FjeS10cnVuaworMzc4MjYgZmJmMzA2NDZjZDEzNjQxZmI3OTliNThmMzNlNDdkYmI1NDY2ZGJjZSBsZWdhY3ktdHJ1bmsKKzM3ODI3IGE5MWU5MmI5ODJhY2FmZjAzOGI3ZDU4MDEwOWNjZTY3MmRmN2ExNDYgbGVnYWN5LXRydW5rCiszNzgyOCA4OTNkNDY1NzY3MzdhYmJhOGNjYzNjZDU2NGIwYzM0ZDA2YWU2ZTdmIGxlZ2FjeS10cnVuaworMzc4MjkgMDZlZTUzYTc2ZjAxNzNhYzA0MGNiOTQyNWEyM2ExMGM1NTBlN2IzOSBsZWdhY3ktdHJ1bmsKKzM3ODMwIDliZDk4M2NmYmU4MWJjODY1YjRmOWRhOTk0Mzc0MmM2YjI1MDMxM2UgbGVnYWN5LXRydW5rCiszNzgzMSAwNzM5ZjM2YWQ1NDQxOWE0MTMxNGVkMGRiZjU0ZTdjODk3NTg5ZTJjIGxlZ2FjeS10cnVuaworMzc4MzIgZmVmZjRlNGYzNDVjYTVlMzM2ZjdiMDBlYzgwOTE3ZDQ1OTQ3ZTI3ZCBsZWdhY3ktdHJ1bmsKKzM3ODMzIDAyMzgwMTMzMjM5NTVlYjRiYTJhNDEyNTA3OWY3ZjQzOWU2ZGEzYjcgbGVnYWN5LXRydW5rCiszNzgzNCAyM2IxMDNhYmI4ZjdmYTdhNzk2ZmUzODk1MDE4NjE3YzFmMDg4ZmI5IHJlbGVhc2UyMy1tYWludAorMzc4MzUgNTNiM2Y1M2Q3YTBkMzJhOWY1NTBiOTkzYjJiNzJmYTA0MDZlNWRkYyBsZWdhY3ktdHJ1bmsKKzM3ODM2IDRjYjdiOTIzNjgxZTQ3YWViNmUzZTUxYmY0NDlkZmU5ZWRiNTcwNDQgbGVnYWN5LXRydW5rCiszNzgzNyBkMjU2MTVlZjVkOGY2MDU5NTE2MDNhNmQ1Y2ZmYjIwOTg5M2IxYjYwIGxlZ2FjeS10cnVuaworMzc4MzggMjIxM2NkYjNjYWU3OTNjYjBkZDZlYWQyOGYyNGQ5OGJhYzgwZjE3YyBsZWdhY3ktdHJ1bmsKKzM3ODM5IDQzOTQ0NjM1MTBmYjJkYjllMDlkOGQ0YjdkNjg0ZDQ1MGUwZWY1NjQgbGVnYWN5LXRydW5rCiszNzg0MCBkY2RhMDZjYjA3OGEzZWY5Njk4N2JlMjRhNTg4NGI4MDQ1MGNkY2VmIGxlZ2FjeS10cnVuaworMzc4NDEgMzNhODQ2Yjc3N2E4OTFhOTNiYzNlYjNjZWFmN2YyZDA5NjM3NWE2MiBsZWdhY3ktdHJ1bmsKKzM3ODQyIGY5MjYxNmY4YzMzYzc0NTExMTk4Mjg4YzA1ZTFhMjkyMmQ2ZDhiZTYgbGVnYWN5LXRydW5rCiszNzg0MyA0MDA1Zjc5ZDI4MWFkMGRmMjlmZDgzMjk4YmQ0MTQ5NzJlZWQxZDIzIGxlZ2FjeS10cnVuaworMzc4NDQgZWMyOTk1NWI4NTQzNWJmODE2MDI4MzFkOTdkOGFiMGFiNDhhZWRmOCBsZWdhY3ktdHJ1bmsKKzM3ODQ1IDQ2OGExMGViYmNkNTAxYTA4NGZmZmY0YzNkMjhiMGJmMmNhMjc5NzEgbGVnYWN5LXRydW5rCiszNzg0NiA2NTI1ZTAyOGFmYjNjOWM3MjZlODQ5ODQ5ZTBmYTYxMmY0OTAwOWMzIGxlZ2FjeS10cnVuaworMzc4NDcgNzAxMGE5OWI1ZTYxMjQxNzZlY2U0MjE2ODhhZWQ5MDg1OTViYmY3MyBsZWdhY3ktdHJ1bmsKKzM3ODQ4IDMyZWQyODYxYzk3ZjE4ZGRjNzdjNThmYTVjYTZiYjE3YTg2NjY2YjEgbGVnYWN5LXRydW5rCiszNzg0OSA0OWI2ZTk2NmU1N2YwODg0NmUyN2Y2MmYyMjIzYTZkN2UyMjVkMDk2IGxlZ2FjeS10cnVuaworMzc4NTAgNDg5NjU2ZGJkZjVhN2YzMTEzZjhjZmYwMmQ1MmRiODJlMjZlN2U2NiBsZWdhY3ktdHJ1bmsKKzM3ODUxIGEwNTA4NWE2M2RlYzgzNjRiMTc0ZTliMjgzYzFlMmY5ZDhhOTQ5MzQgbGVnYWN5LXRydW5rCiszNzg1MiA0ZjJiYmQ0NzFhMjFjNTgxMzhkMGNhNjFhMTI0YmUyNGM3YzBiNTU4IGxlZ2FjeS10cnVuaworMzc4NTMgNzEzNzI0NDk1ODJkMzI2ODU2NDczYWQ2MDc2ZWM1NmYxYjJjNjRhOCBsZWdhY3ktdHJ1bmsKKzM3ODU0IGYxM2NlMGJiNjA2YzAyZDk0NDg1MjQzMzI5MzJhM2FlMGFmMmIxNzQgbGVnYWN5LXRydW5rCiszNzg1NSBhOGRlMjE5NWVmZDY2YmRkODQwZmQ2YzAyNGM1Njg4MGU4ZTAzYjFlIGxlZ2FjeS10cnVuaworMzc4NTYgNjc3MWUxODQwYmJjYmYwM2MxODdiMDI5MzgwMzI4YzExNTlmOWZiYSBsZWdhY3ktdHJ1bmsKKzM3ODU3IGI0YWRiMTAyMTEwMzBhYjI1MDhjNWNhMjkwYmUxNjM2ZDFmZTU4MjIgbGVnYWN5LXRydW5rCiszNzg1OCBiODcxYjk0ZjA3YjZkNmYzZmFhYzk2YzE0ZWY0YmY0NWY4MjU1ZDZkIGxlZ2FjeS10cnVuaworMzc4NTkgMzY1NjM4ZGNlNWYzNDM2MDI5ZjI5MTEwZDA0MGM3YmVkZTFjZWY1ZCBsZWdhY3ktdHJ1bmsKKzM3ODYwIGUwMWExN2JjZGYyOGVlODdjY2JmOTZhZDZjM2IyYzFjY2IyY2EzYTEgbGVnYWN5LXRydW5rCiszNzg2MSBmNTMxMTMwM2EzNTcwMDJkNjFmNjFmZDBjMmYwYzlhNjliMGE0ZDRkIGxlZ2FjeS10cnVuaworMzc4NjIgYjQ4Y2E5NmViNDQwOGRjY2RmYzUwNjlhZDhiNjhmOWJiYTc5Y2VhZiBsZWdhY3ktdHJ1bmsKKzM3ODYzIDlhMTMwOWE5MGI1ZGY2ZDBlNGZmMDUyNGI1M2NkYTk2ODM1YTc5ZWMgbGVnYWN5LXRydW5rCiszNzg2NCBiYWUxOTE5Zjg1NDgxZGJmNjBmMDliYWRmNDU0NGNkZjU4MTg5MGNkIGxlZ2FjeS10cnVuaworMzc4NjUgYTAwY2Q2NzAzNDFiYTdmZWNmODk4MzVkNjkxNDc1YWEyODIwNzdkYyBsZWdhY3ktdHJ1bmsKKzM3ODY2IGVhOTU3ZDliMzY5Y2Q4ZGRjMzcwZmNlMzI2OGUxYjg5Y2M1Y2VkNjUgbGVnYWN5LXRydW5rCiszNzg2NyAzMWU0ZGExNjY0YjdlZjYwNTY3YTE1ODA0NTgxYjA0MGU1NjI2Y2M4IGxlZ2FjeS10cnVuaworMzc4NjggZDViYTRmMzA1MGI1ODcwZTI5ZWE1N2MxYjZhMmUwOWE0M2VmM2Y0OCBsZWdhY3ktdHJ1bmsKKzM3ODY5IDc4NzM4YTg5YjIyMzExZGI3MTI1ZjIyN2IwZmFjZGUxMGQyZjE5NjMgbGVnYWN5LXRydW5rCiszNzg2OSBmZjgwZDhiYmVmNmUxMzQyNmM4YTg1ZDdmOWQ4MzdiOGY4Zjg5ODM0IGxlZ2FjeS10cnVuaworMzc4NzEgMjA5NTUwMjU2YTc0NDE2MDFmYWJiMTdiY2E5MzI2ZGE0MmQ4MTUzYyBsZWdhY3ktdHJ1bmsKKzM3ODcyIGVmN2EwMmIxOGVjY2EzOTk4NzA2YWE0NmE3MTIwMjdhODlhYzk1NWMgbGVnYWN5LXRydW5rCiszNzg3MyA4MjA0YTRkMjAxMmNiNzJkZjQyY2FmYjRlMDRjODA5ZTZmODhhNGQ0IGxlZ2FjeS10cnVuaworMzc4NzQgNzE5MzBkN2IzYjhhMjRmMjQ3Nzg4Y2YxYjM3NmY3MjgxYjBhZGEwYiBsZWdhY3ktdHJ1bmsKKzM3ODc1IDk2ZjYyYzY3OThlODFiMTExM2YzZTMzYmYwYzliOTI1ODMwN2MzYmQgbGVnYWN5LXRydW5rCiszNzg3NiA5YjBjNWJmNDcwMGMwODQzMGU1NDc1YzFlYzlkZmZjZDhiM2Y2ZmU1IGxlZ2FjeS10cnVuaworMzc4NzcgOGRhYTVhNDQ4NDAzYTlmZDU4ZTYwYzg4NjU4YzU4MDYxOGUwNWNkZCBsZWdhY3ktdHJ1bmsKKzM3ODc4IDJiOWMyZWQ1YTc2YmZmN2UzYWIwMzBiNDM1OWZlZmI5MWFlZDVjYzEgbGVnYWN5LXRydW5rCiszNzg3OSAyNjRlNDViYWFjZDUzMzFjMTg0NWE1YTIyNjMzOTlhMjA4ZjA5MTQzIGxlZ2FjeS10cnVuaworMzc4ODAgZTk1OTlkOWQ5MWM2ZTcwN2MyMmIxYmNiODA0NWYyY2JiNTRjMzYxZSBsZWdhY3ktdHJ1bmsKKzM3ODgxIDZiZDgwMjFmNzQxY2I4OTgxZTZjYzAwNDk4NDU1ZGIxY2YyMzc0MTcgbGVnYWN5LXRydW5rCiszNzg4MiBiZGQxNGFiNmM1Y2YxNWJmZTdjMTkwZGIxYjU3NGUzMmI3OGQwYzZkIGxlZ2FjeS10cnVuaworMzc4ODMgYmUzNzBhYmIwMjBmOWM5NzViZGE1NmZhYjk0Mjk4MTU3ZjNiYzQ4OCBsZWdhY3ktdHJ1bmsKKzM3ODg0IGMxMGFkYmFkNDRmYWI5OGMyN2YyMjNiYjFhY2EzY2IzM2YwOGMxNmQgbGVnYWN5LXRydW5rCiszNzg4NSAxNTc2ZTg0NWM1N2JkYWRlYzc3ZDQ1MzhmM2EzNjQ1OWQwNzg1MjAwIGxlZ2FjeS10cnVuaworMzc4ODYgYThmZjZlZDg1NmU4OTNiNDdmMzQ3NGQ0NzI1ODkyZTk2MzhiMTU3NyBsZWdhY3ktdHJ1bmsKKzM3ODg3IGMxNDgzZjBlODAwZDAyZThlYzAxMDkwNjAwNDlhYmI2OTA5OTZmNjEgbGVnYWN5LXRydW5rCiszNzg4OCA3Zjk1ZmU5OGQ4MjE2ZDIxNjhlODRjM2RiOGM3YjZjOThmZDE5MTgzIGxlZ2FjeS10cnVuaworMzc4ODkgNzEzNThmNjU3NWI2YWZlMGVmZDE1MzRjNzU3ZTUzMGVhMjg4ZTBmZSBsZWdhY3ktdHJ1bmsKKzM3ODkwIDdlOTliMDY4MGFkZjExMzIxMmRiOGNjODdlMjhlY2JlODFlMDU4NGQgbGVnYWN5LXRydW5rCiszNzg5MSA4ZGE1N2MyOGI5MTBmNTEzODI5MWI4ODc0Mzk3ZWNiMDZhZWQ3NjRjIGxlZ2FjeS10cnVuaworMzc4OTIgODFhMWY3NTRkMzJjZDIwOGY3MzUwMWViYWU0MzBlOGRkZmEwNDYzNCBsZWdhY3ktdHJ1bmsKKzM3ODkzIGM4OGQxODQxODA1M2I1NGIzNDUwMzBkY2FkMmFkNmJkMGUzZjQyODkgbGVnYWN5LXRydW5rCiszNzg5NCA1YmUzMWEyMDdkODZkN2Y0ZWMxNWIxZDQ3Yzc0ODgwNGU5YzgxYjg1IGxlZ2FjeS10cnVuaworMzc4OTUgN2E1YTU2YTE3Mzc3NTkyNmU5ZDNiZTM1ZTg3NWI1NjY0YmI1MjFjZCBsZWdhY3ktdHJ1bmsKKzM3ODk2IDE2MzQwOWE2MDFiZWY0MWNiZDc4OTIzYjA2M2RiM2UxNGM5N2I2OWMgbGVnYWN5LXRydW5rCiszNzg5NyAyYzgzYjYyMmEzZWU2OGM1YTk5ZDI2Zjk0Zjk3ZDI2YmY5MGJjMzViIGxlZ2FjeS10cnVuaworMzc4OTggYzljNzc5NDA2MGIwZTZlZGI5MzE3ZDAyOGRiYTQwMDc0ZDBhMWE5OCBsZWdhY3ktdHJ1bmsKKzM3ODk5IDdlOTU1ZTk4N2Q2OWNhN2Q3MjMwYjUyOTUwZjJiYjJiOWZjZWFkMDUgbGVnYWN5LXRydW5rCiszNzkwMCBkMzNiM2EyYjA5NGNiODNjOGM5ZDA4ZGE2NmM0ZDcyYTExYmE1YzVhIGxlZ2FjeS10cnVuaworMzc5MDEgZDA3MTZhYjAzZDlkZGM0NTA3Yjg3MTE0NzMzNDIyOWY2YzZiMDNmMyBsZWdhY3ktdHJ1bmsKKzM3OTAyIDZhODA2ZmRhNjY4ZDZjNWY0YWUyMzkwODg4OTNjOGY0ODMyZGFiYTQgbGVnYWN5LXRydW5rCiszNzkwMyAyODMwZTZjYjQxNTc2NWIxNTNlNjNiZWE3ZjEzZDZhYTMzZWM4ZTViIGxlZ2FjeS10cnVuaworMzc5MDQgZmJlYTcxNDgwMmIzZGE5NjIwYTUxMTA2ZDBlZmIzNTY5NDBhZjNmNyBsZWdhY3ktdHJ1bmsKKzM3OTA1IDdhMTI5MDQ0MzhkNmNhNzk3MTA3MWU1MmVhNWQzNGJmZDZkODVlOGEgbGVnYWN5LXRydW5rCiszNzkwNSBmMzFlMThkMzEzYzdhNGZjNjY5MTRiMmQyN2UxMzBhMGY3MmMwYjY5IGxlZ2FjeS10cnVuaworMzc5MDcgNzE2MzA3ZjdlNjE3YzQxODUxM2FmMGI5Y2ExMWJkYWRhNzgwOTViMSBsZWdhY3ktdHJ1bmsKKzM3OTA5IDYzYWZjMmQxYjBkYTM3MjJlMzA1OGZmZjYyMjk2ZTBhODA0NjAxODIgbGVnYWN5LXRydW5rCiszNzkxMCBjZjNmOGJlZTdmN2FiMTJhOTNiZTQ3MjQzYTY1MmEzZTgwNWMxMWQ2IHJlbGVhc2UyNC1tYWludAorMzc5MTEgMmVjZGM4M2ZhODZjZDJiOTNiMTFlNTBlMDNkMTg3MmJkZjg5NTc4ZSByZWxlYXNlMjQtbWFpbnQKKzM3OTEyIDM4NDMyYWQxMWMyYTQyMjZhZTZmMzI4ZjUzOTVmMGFiM2M2ZTZmZmMgbGVnYWN5LXRydW5rCiszNzkxMyBhZWQxZmVkMzdhZDU4NjU2NzNmY2EwNjljNWMzYzhmYWUyZjc3OWU1IGxlZ2FjeS10cnVuaworMzc5MTQgZmQxYmU0OTRjMzFiNjNlNjExMDE1ZDVhZTRiNTFkN2M0MzQxYTk5MiBsZWdhY3ktdHJ1bmsKKzM3OTE1IDhjZWNiOGRjNDNhMzgwN2JjZjNhZTk1NjU1OWI0ODM0ODRmZjZkODcgcmVsZWFzZTI0LW1haW50CiszNzkxNiA3OWQyYWUwYTYyZWZlYjc0MGQ2NGZkZjIwNGViNmUyNTA0ZWM3ZDVlIGxlZ2FjeS10cnVuaworMzc5MTcgYTZlMjUxZGU1ZTQxYmRkODJkODU2N2Y3NTE1NjNlYjY5ZDZkNGQ1YiByZWxlYXNlMjQtbWFpbnQKKzM3OTE4IDcwMjZkMDM4NTA4MTE3MjBiYWNkNWI2YWYwMjVjZDkzZjYzMmNiMDggbGVnYWN5LXRydW5rCiszNzkxOSAxYzRkYmU0YTA2YmQwNTQ5YzBiNDM1OWM0OTE1MjI1N2RjYmFkMDFjIHJlbGVhc2UyNC1tYWludAorMzc5MjAgMjE3ZDc0MTA0OWMwZDYyNmY0N2FhNTMyNzFhZDdmYjdkNTY2Njc5ZiBsZWdhY3ktdHJ1bmsKKzM3OTIxIGM4NzI2MWNlN2FjOTMyNzU0YzZlOWU3ZTdmM2E0YmQ1MTU2NmI0ZTQgbGVnYWN5LXRydW5rCiszNzkyMiA4ZWFmODA4ZmQ5ODBjMTA3ZWQ0NDc4ZGZiYjljZjk1OTBhN2VlZGM2IGxlZ2FjeS10cnVuaworMzc5MjMgZTQzNTMyYjg0OGQ3NWQ4MDNhZWVkNmViNDdkMzQ2ZmE3ODc4MWM3NyBsZWdhY3ktdHJ1bmsKKzM3OTI0IDdlNjQ4MmFiOTQ1NWRhMTc3NzUzNGUyMGM0MTk3YjViZjYwMTVlOGEgbGVnYWN5LXRydW5rCiszNzkyNSA2YmZiMGFiODgzZjIwZjc2YmNmNDNlMjAzZDdmNjYwZDU0OWI5OTFlIGxlZ2FjeS10cnVuaworMzc5MjYgZGE5NjdmYjdhN2ZiNGY0M2ExNThhOWQ5NDgzYTliYTc2OTc5YTYyYiBsZWdhY3ktdHJ1bmsKKzM3OTI3IDE3MmI0N2ZmMmU0YmIzODBiZWY3YWFlZWJlMjRmMjZkYjE0YjhhOTAgcmVsZWFzZTI0LW1haW50CiszNzkyOCBjZWMzMWVkZWE0MTRmZWY0ZTkyMDdlYmFmY2U1NmE2NTcxZjQ4YWRiIGxlZ2FjeS10cnVuaworMzc5MjkgNGUyNTRmMDI4Yjc2ZmMxYmFjNGNkOGM4MGFjYmFkZDc0NmQ4OTc0NyByZWxlYXNlMjMtbWFpbnQKKzM3OTMwIDMzZjc0OGU1ZDE0MjFjODAzNTcyMTgxODhjYWU1ZWYyYThkYWEzMmQgbGVnYWN5LXRydW5rCiszNzkzMSA4YzgwMjJiODFmMDIwYTZlY2JjZjFlMzkwMGQwOTMwNTQ1OTBmNTdlIGxlZ2FjeS10cnVuaworMzc5MzIgYWJlM2VlNWZjNmMzN2RhMGM4NmUzYzM4MjZiZDJiMjljMzE4ZmY5OSBsZWdhY3ktdHJ1bmsKKzM3OTMzIGYxOGE0ZDkzNzE0MmEwNTJlODBjZDc2NWU1NTI0ZWEwMTE0NzI1YmQgbGVnYWN5LXRydW5rCiszNzkzNCA4YmY3NjViNDgwYjgwZjlhMGJkMGFlMDkxYjc5YjQ0NDk1MzlmYzI2IGxlZ2FjeS10cnVuaworMzc5MzUgNTBlMGMzNDVkNDliM2JiN2JmMDk3MjQzMDhmY2M0ODYxYjRhZThlOSBsZWdhY3ktdHJ1bmsKKzM3OTM2IDRjODEwNmMzNThjZTBiOGQ4YTYzZTAyMzI0OGU0YWE1MDZiNjNmMDUgbGVnYWN5LXRydW5rCiszNzkzNyAxNTdmYWU3Njk1MzZlNjMzYTY0YmY2OTFjNDFlYjE5MjhhYTViODA3IHJlbGVhc2UyNC1tYWludAorMzc5MzggNjExNTYxY2NlNzQwZmZjOGY4N2ZjYzlkMmViMGI5MTkzZTk1YmRmMSBsZWdhY3ktdHJ1bmsKKzM3OTM5IGZiZjZlMDRkZWY2OTAyNGMyNDQ0OTE5NWFlNTMxMDliMjc5ZDViOTMgbGVnYWN5LXRydW5rCiszNzk0MCA0M2MwMGYwZTYzMDU1NTc3ZTcwODUzNDA0ZDA0NDJmNGNiOTBlMWE3IGxlZ2FjeS10cnVuaworMzc5NDEgZjczMjgwOTY4MzIyNzkwODFiODhhNzBlZTM2NjAyMjRjMzY0NWU2ZSBsZWdhY3ktdHJ1bmsKKzM3OTQyIDRiNjAxYmQzNDZhNGY0M2IxMzhjM2U4YmQ5ZmRiODQwYjc1OTZlMTMgcmVsZWFzZTI0LW1haW50CiszNzk0MyBjNGIxM2ZhMThhMTAzZGExN2Y4NThiMzY1NDZmYzgyNWM4YTAwOGJjIGxlZ2FjeS10cnVuaworMzc5NDQgNjA5YmNkYWUxMDhhNjU3ODMxYjI1Mjk3ZWVmOTA5MmY0YTQyN2VlYSBsZWdhY3ktdHJ1bmsKKzM3OTQ1IDIzOTk2MzJmZDllMGUyN2Y3MGE4OGY5NGM5OTllZTI3M2I2MDUyNGEgcmVsZWFzZTI0LW1haW50CiszNzk0NiBkMmYyNmVhYWNlMmMxZjMyMDExNWEyM2ExNjI2ZjI1ZGVjZjIwMWViIGxlZ2FjeS10cnVuaworMzc5NDcgZDYyMDNmYmRhMjUxN2QzODk0MjY4ZmI3ZGI5YmMxZjcyNjJkM2U3OCBsZWdhY3ktdHJ1bmsKKzM3OTQ4IDZlMGRiMDdmYmY5MTg1ZDkxYzBlODQ3MjEzMWNjMjMwOTI1MzUyZTQgcmVsZWFzZTI0LW1haW50CiszNzk0OSBjYzljZTY4MzdlYTliNzNlYzQ4MDM2YmMxZWVkNzFjYzUzNDk1MzViIGxlZ2FjeS10cnVuaworMzc5NTAgOTVkMjc2ZDRmOWU0NjU3OTZhZWRhYjRkYzFkMTUwNTIxYWQ4N2Y0MyBsZWdhY3ktdHJ1bmsKKzM3OTUxIDYyNGU5NjM1YzNhZDExZDcyOWM1Mjg2MGFkZDMxZTIzMGM2NzliMmMgbGVnYWN5LXRydW5rCiszNzk1MiBmMDJjZDBkNGEyYTA1YTdjOTQ2OWM4NmMyNjQ4NzgyOTBiZDFkOWY0IGxlZ2FjeS10cnVuaworMzc5NTMgZWRjMjBkNTM5YTE4MTVkNTgzOTRkODNmZTg1YWNhMThjNzY1MGRhNyBsZWdhY3ktdHJ1bmsKKzM3OTU0IDE3NWY2MTI1NTQ5Y2FkNzFiOGFiNTJhMTRkMDY1ZGMxM2ZjNGFlZmIgbGVnYWN5LXRydW5rCiszNzk1NSAwZWMzNDQ2NjNmNmE5ZWNmODhiMzJiOTdjZGQxMDY2ZjU0ZTY4NDY4IGxlZ2FjeS10cnVuaworMzc5NTYgOGNkMzE3NmZkNmYwMzBiNjA0MjFhZDA0OGVmYWQ1YzEzMjIyNDFlNyBsZWdhY3ktdHJ1bmsKKzM3OTU3IDhmOTI5NTEzOTkzYzkxZGZjNjQ2YWVlMDc3MmUwZTczYzhlZmNhOGQgbGVnYWN5LXRydW5rCiszNzk1OCAyNGYwZGE5MjAwMTA0NGU4MjQ5YjM0OTdiMGMwN2Q4NjRkYzFkYzEyIGxlZ2FjeS10cnVuaworMzc5NTkgNTE3MmMyOGMwYjNjOGM5ODI1MDdkNjEyMTJlMmE1MjE5OTAyOTk3MiByZWxlYXNlMjQtbWFpbnQKKzM3OTYwIGNmNTU1ZWM2OThlYmNlNGZkNmRjY2M2M2JiYWE1MTU4MjM3MGU3YzQgbGVnYWN5LXRydW5rCiszNzk2MSA1M2M2YTk1OWY5Y2ZkNWVkOGYwM2FkYmM1NjIyZDI4MjM1ZjVhMWYyIGxlZ2FjeS10cnVuaworMzc5NjIgMGRmZTYwOGVlY2ZhYzIwY2Y2OTliYjg0YWQ2OTdiNzlkNDNiMjZlOSByZWxlYXNlMjQtbWFpbnQKKzM3OTYzIGI5NjZhYWRlNTQ4Y2Y4YjEzYTcwZTQ2MDVlMTkwMzc4ZTg1YTdiN2UgbGVnYWN5LXRydW5rCiszNzk2NCA4ZmQ3NjZiYjc2YzllNDhlMTAyZDU0NGQxZDI4OWVhMGUyOWE5ZGEwIGxlZ2FjeS10cnVuaworMzc5NjUgZjQwOWQ0YzZkYzYwNDFlYjU0ZjRhY2IzM2M5ZjE2MDVmM2Q2NmM4YyBsZWdhY3ktdHJ1bmsKKzM3OTY2IGNkZGQwMTZhZTA2YWNmZTljYzM5NGMzMDM4ODg0NTQ3NjgyNGFjZDcgbGVnYWN5LXRydW5rCiszNzk2NyAwZjU2YTY2NTVlYmZhMjgzMDFhNmYyMDEzZjVjMDRmZjYyNjZlMzAyIGxlZ2FjeS10cnVuaworMzc5NjggZWY2ZDFlNWViNGQzMjllM2Y5MmNkNmYxZmRiNTI4ZjFlMDYwNTJiMyBsZWdhY3ktdHJ1bmsKKzM3OTY5IDI1NTcxZWE1ZWNhNjJmMDg1YjhhMDE3NzI1ZjA0ZDAxYWMwODQ4OWYgcmVsZWFzZTI0LW1haW50CiszNzk3MCA2OTg5MDkyY2Q5NmQ1Y2Q5MzMxNDkwNjViM2Q1YTRlMTE3ZmRkNTVlIHJlbGVhc2UyNC1tYWludAorMzc5NzEgNDIxYTVkZjUwOGI4NzcwM2YyN2VhOGVjNmI4OGYzZjQ5ZWM4NGUxNyByZWxlYXNlMjMtbWFpbnQKKzM3OTcyIDFkMWQ2Mzc3YWNiMTIzZDE4YzgyYzE2OWE3MzM3NzA4NWFjZTMzMzggbGVnYWN5LXRydW5rCiszNzk3MyA5NTc0MjljNDZiYmY4ZDc1MGU3NmE4YzkwZjc4YWUwNTZiMWEyYjgzIGxlZ2FjeS10cnVuaworMzc5NzQgMDVmOGE0ZmVjMzU2Mjk0NmZhZmZlNTUzZGE1OTYzNWE2NWU4NzU0OCByZWxlYXNlMjQtbWFpbnQKKzM3OTc1IDczYjA5YzJiNzg4YjhhMjIxMmQ0ZTI2NWZlZThhYjk5ZmY5NTVmYmIgbGVnYWN5LXRydW5rCiszNzk3NiAxZDA0OTM2YTY0NTZhMDRhOWZmMTBjMjU5NTVhOWM4MGFlZTRhM2EyIGxlZ2FjeS10cnVuaworMzc5NzcgOWMxZWIzM2ZlMTEwYmNjZDNkOWU0OTQxMTE2ODZmMmIyNjk5ZWFlOSBsZWdhY3ktdHJ1bmsKKzM3OTc4IDk2NzIxYTAzYWUzMDAyNGQ2ZWYxYmI4MTVlMTJkZTI3NzFmYWNhZmMgcmVsZWFzZTI0LW1haW50CiszNzk3OSBhYjhiMGI3MzE3MTdhNTgwMzBjYjgxYTkzOWE1ODNlY2RmNzhiZjZmIHJlbGVhc2UyMy1tYWludAorMzc5ODAgZjBmYzZiZWZiMDYwN2EzMWE3OGEyNmE5NTQzNmRlMzU4M2UzMjM1MiBsZWdhY3ktdHJ1bmsKKzM3OTgxIGNjYzUwZTBiNDY2ZDRlY2Q4ZDIwMGM0YWUwYzEwNjQxMmQ5OGQ4MWEgcmVsZWFzZTI0LW1haW50CiszNzk4MiA0OTc5YTQ0MzQ1NDM0MDk2ZjA5MGVmNGUyYWVhYzgwMzk5ODY4ODM1IGxlZ2FjeS10cnVuaworMzc5ODMgNjBkNDgyZThmODQ1MDE3YzBhZDU1YTk3Y2Q4MTc1MzYxZDQwMGEzZSBsZWdhY3ktdHJ1bmsKKzM3OTg0IDE1MzFiMjVlYmRjZDNiZjM2MDc2ZDRmNjY1MTU3YjdhMmY3ODc4YmYgcmVsZWFzZTI0LW1haW50CiszNzk4NSBlNDZmOThlNzNlNTI3MmFjMDgxNmZmYjc0NzViOTNjYTgwMGU1ZTFhIGxlZ2FjeS10cnVuaworMzc5ODYgZmVkNWE3MzQ0NjVkMzY0Zjc3NTA1ZTdhOGUwNmY5NTc5OGVmN2Y5YyByZWxlYXNlMjMtbWFpbnQKKzM3OTg3IDRlOGZiMTJmODM3ODcyMmFiYTA2ODlhYWQ2Y2Y4ZmQ2NmMxZjE5MzEgbGVnYWN5LXRydW5rCiszNzk4OCA0ZTM4ZWNkMTkxMmU0YTY1NjBhMzJhNDNiZWExOTNmYjk5ODQ3ODNmIGxlZ2FjeS10cnVuaworMzc5ODkgMWE5MzhmNDU2MDUzODUxMTAyYzc4M2E5Y2Q5NWRiNWZiMmJkYzhmYSBsZWdhY3ktdHJ1bmsKKzM3OTkwIDc5MDY2ZWEzOGM1MDMxM2QyMWRiNDYwNjU4ZjM1MDZlZDlhNjI4OTQgbGVnYWN5LXRydW5rCiszNzk5MSA0ZGNkNzhmM2I1ZDFiYTE2YjllMzFkZDA5MDkxNzQyOGE2OWY5NjUxIGxlZ2FjeS10cnVuaworMzc5OTIgNzEwYjBiMGUwN2VlZDcyYTI0MDc3NDMxNDYyNTM1ODA0ZGMxZGVhMSBsZWdhY3ktdHJ1bmsKKzM3OTkzIDAxNWI4OTJjOThlZTI0NjZhOGI0M2RjMmFkNzgyMjAyODAyMmEzNTQgbGVnYWN5LXRydW5rCiszNzk5NCBjZTRiZmJkOWExNmNkNTg4YTBiN2ZlOGRlYjM0MTcwNGFhYTUzMDc1IGxlZ2FjeS10cnVuaworMzc5OTUgNTkxMmI0MTgxNTg0NjE5ZTdjNWM3YTlkYWY1YTA4NmU3ODA0ZDA2MiBsZWdhY3ktdHJ1bmsKKzM3OTk2IGE4NTdjMjVhMzdiOTY4ZjVmYTFiNTY2NjVmNWU4N2NkNmJjYzk1YjkgbGVnYWN5LXRydW5rCiszNzk5NyAwYTZkZDNmMmFiYzdkMzhjOWZhNzMwMzU3NGUzODZiYTAwMGM2YjI5IHJlbGVhc2UyNC1tYWludAorMzc5OTggYWZlOTBlOWU0YjQ4NGQ4NzlhYmYyMzc0MzdiMWE4NDhhNGZhZWQ3OCByZWxlYXNlMjQtbWFpbnQKKzM3OTk5IDQ5MjY1Mzg1Nzc4MmZlNjNhY2FiZmY3YjFmMzZjNzc3YWE3N2VjMjIgbGVnYWN5LXRydW5rCiszODAwMCAyMWFiZWNlYWFiYWQ2ZDYxYjljYTVhMDg5Mzg0YjBiOTc4OTBkYjBkIGxlZ2FjeS10cnVuaworMzgwMDEgZjA1ZGQxODE2YzFmN2NkZjVhNDY4ZWQxODEzMDhkMzkxMDUwNGJiZSBsZWdhY3ktdHJ1bmsKKzM4MDAyIGQwYTA5Yzc5NzQwOTY0ZTIwZjE5NzIyZWY2ODM2NjdjYzY3YTc3YzMgcmVsZWFzZTI0LW1haW50CiszODAwMyBkYjhmNjk5ZmY3ODI1ZjdmMTdmNWRkNmZkYTcxY2IwMDYyMmFkMzdlIGxlZ2FjeS10cnVuaworMzgwMDQgYjEzMmJhOTI1OWFiMTRmNWE0ZWU3ZTkzNTU0Njk3NWMwMDdkNzE1NSByZWxlYXNlMjQtbWFpbnQKKzM4MDA1IDcxZDcxMGUzMzZkZmNhYjk5NTY1MjYyYjUyMmZjNzA0M2IzMTE2YTggcmVsZWFzZTIzLW1haW50CiszODAwNiBiZWRiMzQwZjEyZjk3MGEwMjgwMzRkMjFmODY5NjRkMmQ4MWY1MzMwIGxlZ2FjeS10cnVuaworMzgwMDcgNzUyZmE4NmYwNmQyNWMzMDM1OGZkNDQyZjkwZjI5MmUyZmFiNWMxMSBsZWdhY3ktdHJ1bmsKKzM4MDA4IGMyZWJhMDRlMzA0MTUxMDgzYmZhZTlkMzg0ODQ5ZGQ0ZjRlNmM1N2MgcmVsZWFzZTI0LW1haW50CiszODAwOSA3NWYzYTUxYTRlMzNkYjY1ZmQ5M2NmNTQyZWVmNmQ3YTg3MmEzZGNmIHJlbGVhc2UyNC1tYWludAorMzgwMTAgMTY4MDNiMDM5NjRlNGQ1MmE1NjYwZGNiNmVhOTUwZjc5OTg2Mjc3NyByZWxlYXNlMjMtbWFpbnQKKzM4MDExIDY1NzRjNTE1ZTAzNTY2YmE4YjYzNzkzYTM5NTYxZWVjYmQxMjZjZDQgcmVsZWFzZTIzLW1haW50CiszODAxMiBiZTQ1MGEzMzVlOTY5NmUzZGIxZGZmYTY5MGQzNzM2OTJjZTMzZWYxIGxlZ2FjeS10cnVuaworMzgwMTMgYTY1OWIwY2VjYjkyZjdkZTM2ODE4NGE3NjBhMDc4YTlkYjgyYTk4MiBsZWdhY3ktdHJ1bmsKKzM4MDE0IGU2OTJlNzdjYWQ1ZDVhNDNkNWNlNzliOTFiZmQ1ODUxZjhlMjhiYTEgcmVsZWFzZTI0LW1haW50CiszODAxNSBkZTQ3MDFmYzE3NmY5ZTQwMDhmNTAzNmY0MmYxNGRiMTJkZTYyYzY1IGxlZ2FjeS10cnVuaworMzgwMTYgYmJkYWFjYzQ0ZjZmNGEwYjNmOWNlODNhMzVmZGZlMTZiYWJhODg1OSBsZWdhY3ktdHJ1bmsKKzM4MDE3IGE4Njg2NmJhYzM2NmI4ZDhhY2Q0NTljYTg1ZTBjNDA5ZmRmM2MzYWEgcmVsZWFzZTI0LW1haW50CiszODAxOCA1MWIwZDE4ZGE0NDdiNzM1MzEzMTc3YWRmY2MzMjBkZDIxYzU1M2RmIGxlZ2FjeS10cnVuaworMzgwMTkgYzI5NGIxMTMyM2QxN2E0N2QyMzFmNjhmNTFjOGNhOGUyMzk1NGQ4MCBsZWdhY3ktdHJ1bmsKKzM4MDIwIDI1ODU2MGFkYzQzYjMxYjVlZjgwZTUyOWUxZTFhYTQzN2ZmMTBlNDggbGVnYWN5LXRydW5rCiszODAyMSBmMWVkYjQ3Y2U0ZmFiNDZiOWQ4ZWMwNDE4NmM3MzFhZGRiZmYzNDYwIGxlZ2FjeS10cnVuaworMzgwMjIgMzYyNmRiNDMzMTA0ZTA3MWQzMzkxZWY0ZmE0NDIxZDAwM2ZkZGU1MCBsZWdhY3ktdHJ1bmsKKzM4MDIzIDBmMDA3MjdhMjdiMzBiZTk5MjA3MWU1YmRiYWEyMWRmMDYwMzAwZjMgbGVnYWN5LXRydW5rCiszODAyNCA2OTYxMWM3Y2QyM2JkZjQ3YzQwNjY1MDBlYWYxYzRmYjhhZDcxNWZjIHJlbGVhc2UyNC1tYWludAorMzgwMjUgY2EyY2ExYWViMDgwNTNiNjk3ZjJjZGRmN2Y4NDg5NjkyYWE0OTVhZiByZWxlYXNlMjQtbWFpbnQKKzM4MDI2IDhiMTE0NGJhNzM0ZWZhZTFmZmJjNTQwZmNhY2RlYjdlNjUwZjgyZWYgcmVsZWFzZTI0LW1haW50CiszODAyNyBjYjU0ZjExNTNiOTM1NGU5ODJlZTliZjQyYTBiMDY5M2U5NjQyYWExIGxlZ2FjeS10cnVuaworMzgwMjggNWVhMDI1YzQyMWQ3YmI4Nzc3ZDUzMjYxMDFkOTY3ZDIxMzAwM2I2ZCBsZWdhY3ktdHJ1bmsKKzM4MDI5IGMyMGY1YjM4ZmEyMDk2NGFkNzJkZjVjYmUxOGNlYWM2MDgzNGY2YjcgcmVsZWFzZTI0LW1haW50CiszODAzMCBlNTM2OTNhMDJjZjA1NWQwZGY5MjYyNmZhNmVjODkyNzY0YTI0NzZjIGxlZ2FjeS10cnVuaworMzgwMzEgZmRlY2JhMjZmYzg3ZGJmZWQ5ZWY0NTIyNDMyNzFmNDZiZDUzMzEyNSByZWxlYXNlMjQtbWFpbnQKKzM4MDMyIGIzYWZjMDFjMDVhMDVhNTZhM2I0NjBkYWJlY2EwOTRiODJkYTZmYzUgbGVnYWN5LXRydW5rCiszODAzMyBkYjliNjQ5MzlkNDVjNzI4ZWRjNDRkOWFjYmM3MGJmMzAzNDA3NWRlIHJlbGVhc2UyNC1tYWludAorMzgwMzQgODBmMDFmZGJlZGViYzQ5OGIyOTdiMjE5ZGYzMGU3OGM0MmJlMThjNSBsZWdhY3ktdHJ1bmsKKzM4MDM2IDZjMDJmZjkwMmY4MjBkNjJkODUzNGI1MzBiMGMxYWYwNzI3Y2E4YTMgcmVsZWFzZTI0LW1haW50CiszODAzNyAxMzAyMWQzNTEzNTg2M2Q1Y2YxNjdkY2M3OGRjZDVlOTIzNmI3MTBjIGxlZ2FjeS10cnVuaworMzgwMzggMjE0NGEzNTJhYTM3ZmMwYjFjYTc3MTMwMWI1NmZmMWEyYzI5OWI1OSBsZWdhY3ktdHJ1bmsKKzM4MDM5IDMwYjk3YzFiYjEyZGRmMzJmOWVhYjQzZDZmN2E5YjlmMDYwNGYzOWMgbGVnYWN5LXRydW5rCiszODA0MCA5YzNhNjRjMjgxZTFiMzVhMDFmYTNmMGFjODI1YzMzNzk0MThkOTUyIGxlZ2FjeS10cnVuaworMzgwNDEgMDViYzhhY2FmMGJiNGM2YmMyMWU5ODJjMzFkMmIwNjJhYjZlZDk3NSBsZWdhY3ktdHJ1bmsKKzM4MDQyIGU4OWIxYTI0MGZmN2VkMTUyYjU3YTU4MjkwZjRmNzc1ZGQzMmI2ODUgcmVsZWFzZTI0LW1haW50CiszODA0MyBjMTM5YTQ5OTdkOWYxNGM0Mzg4ZjFiMzBjMzZmMWE5MDdhZDU3NDhjIHJlbGVhc2UyNC1tYWludAorMzgwNDQgOGZkYWE5N2E4YWMzNDM1ZWVlYTZjNGRlYWEwN2IyNDA4NjQwYmZhNSByZWxlYXNlMjMtbWFpbnQKKzM4MDQ1IDExZGIyOGU5MjA5ZmVkM2UzMTUwMWUxOTRhNGZhM2E2MGFjMGJmNWQgcmVsZWFzZTI0LW1haW50CiszODA0NiAwZWZjYzE2ZjVhMGQxNjU4YWU4YzU4NmZmYWYyMzNmZTJlOGE2NGZlIGxlZ2FjeS10cnVuaworMzgwNDcgNDcxNGFmZjRiZjc1Mjg3ZmYzMWFhZjQzOTg5MDY1NDBiNjE0NDg0ZCBsZWdhY3ktdHJ1bmsKKzM4MDQ4IDllODE5NWUyMWRhNjllYjJjMjNlODBjMGNmNjQ5NmE1OGJhM2FkMjMgbGVnYWN5LXRydW5rCiszODA0OSAzNmNmOTRmNTc0MTUxZjRiZGIzNWJiMTM2Zjk2NTBkYTRmYjJiOTIzIHJlbGVhc2UyNC1tYWludAorMzgwNTAgNmY0YTZlOWFkNmYzM2FiYmZhMmEzNTk4YTE2ZmJhNWMxMzA3NjhjZSByZWxlYXNlMjQtbWFpbnQKKzM4MDUxIDUyMWJlYzYwZWIzMDJmY2JjMzUyMDA1MDkwNjRmMDVlZjAyZjU3YTggbGVnYWN5LXRydW5rCiszODA1MiAwNDcwZDc1NDE3ZmYxNTVhNzQzMDQ4ZTdmMjE5M2M0N2NhMDdiMzU0IGxlZ2FjeS10cnVuaworMzgwNTMgZDA0NzAxZTU5ODcyODQ3OTc3ZWQxYzZhNzhlMzlhNzQ1NGI4OTlhMCByZWxlYXNlMjQtbWFpbnQKKzM4MDU0IDQ0ZWJmOThhNTg2ODIwM2QzNmI0ZWY1NzQyNzgzNDA1ZDgyZjhhZTYgcmVsZWFzZTIzLW1haW50CiszODA1NSBhNGJkNWQyMWM4YjI2Y2IyYWYxYjEzMjVmMDU5YzRlMmMzZTgzM2E0IGxlZ2FjeS10cnVuaworMzgwNTYgY2Q0ZGQ2ZGQ5NzIxYmRhNzBlMmIwMTc4MDE5NDI4N2ViZGYxMzk2ZSByZWxlYXNlMjQtbWFpbnQKKzM4MDU3IDk4ZDc5YjQ2OWU3NGQzMWZkNzJmODA2ZTkyZTU3ODE5ODMyOTM4YTggbGVnYWN5LXRydW5rCiszODA1OCAxMjg1Y2ExMzQ1ZDVjMzEzMWRiNzQ3MzExMmQ3Njg1NTA2NDE0MzcwIHJlbGVhc2UyNC1tYWludAorMzgwNTkgYTIzNDI4NGY5ZTA2MDJmMWM1ZDRkYjBlY2U1ZmY5M2U5ZWQ4N2RlNiBsZWdhY3ktdHJ1bmsKKzM4MDYwIDQ2ZmEwZTIwY2JjZmU0MDg2Zjg3NmVmNzNiMjVhZGZkNGE5MjAwMTQgcmVsZWFzZTI0LW1haW50CiszODA2MSAxOTkwZjdlYzBkOWFkMGIwYTc5MjEzMDIxNWQyZTU5NmMzYmM0NTk0IHJlbGVhc2UyNC1tYWludAorMzgwNjIgZGFiZDQzYmYwZGRkZmVlZDVmZTg5ZGZjM2VmNzA1MmVlZDhhMjc3YSByZWxlYXNlMjMtbWFpbnQKKzM4MDYzIGJlOTc2ZGRmMGZmNzA3MjFjZTQwYTM0MTc0ZWI2MDAxYWRiZDllNWUgcmVsZWFzZTIzLW1haW50CiszODA2NCBkNDcwMmU2N2UxMTk3ZmIyOTNjOTAxODkwN2Q0NGI1NzNlOTg5MzIzIHJlbGVhc2UyMy1tYWludAorMzgwNjUgN2ZiNjdhZTkzMTI4ZTE5NTE2NTc5NWY0MjBmZDkxYjIwYmM1MmYyZSBsZWdhY3ktdHJ1bmsKKzM4MDY2IGEwYzdkZjUyYmE0MTU3MzFhOTJkNjY0NTZkODgzM2E5MjZiM2QwMGUgcmVsZWFzZTI0LW1haW50CiszODA2NyA5Y2I4YzY4N2YzZDY3ZmZhN2JiNmM1OGU4ZDIyMzhiMWQzZDEyOGYyIGxlZ2FjeS10cnVuaworMzgwNjggMzA4ZWZkNzI2OGMyNmNlYWExZWU3ZmE5NmVhOTk1OGJkNzdhZGViNyByZWxlYXNlMjQtbWFpbnQKKzM4MDY5IDdkNWQ2YmRjNGY5NzlkNWE4NWE4MDY4MzEzZDgxMGFmNjAyMTdhY2YgbGVnYWN5LXRydW5rCiszODA3MCBlYTM0MDAwNmMxZjMwYjg2ZTExODI3ZjYwYTk4M2RjMjU5Y2IzYjVmIHJlbGVhc2UyNC1tYWludAorMzgwNzEgODZhNjBkNGZhODdhMzU2YWNiNjc0MGRlMGZlN2I1MGMzYTZjYWYxMiBsZWdhY3ktdHJ1bmsKKzM4MDcyIDE5Mjg2OTk0Zjc0ZjMyYTMxNjA4MWFmZWRlNTY2NWE3M2Q5ZTEwN2IgcmVsZWFzZTI0LW1haW50CiszODA3MyA3YzQxM2QzYTQwYTUyYmEwY2UyYWNhM2FiNTdkOTc3MDhlZjYwNWVmIGxlZ2FjeS10cnVuaworMzgwNzQgMDJmY2I1ZWI4NGNiNmExZmJjNmZmNjg2MThlMWU1MGQzNWY2N2M1NCByZWxlYXNlMjQtbWFpbnQKKzM4MDc1IDAzNGM2MTFiMmU4NDRlMGNlNWFlY2M2ZTBlNDY1YWU3MTczYmU3NGIgbGVnYWN5LXRydW5rCiszODA3NiA5ODY1NGJmYTgwZWE1ZGRiMjQzMzg5MzUwNzUxM2E0OTg0MjkwN2E5IHJlbGVhc2UyNC1tYWludAorMzgwNzcgMWU4YjAzM2Y5MWRjM2JhYTk5Zjk4YmY2NGIyY2JjNWZlZWI3MzcyOSBsZWdhY3ktdHJ1bmsKKzM4MDc4IGE2YmEyOGQxZDgwNmFhODMxNDg1MzJiMGQxYWI1YWM5ZTJhNmMzZmMgbGVnYWN5LXRydW5rCiszODA3OSBhYmUzMTQ1ZGRlNGU3Y2Y2ODdmOWMyMTdmMDI3YmZkY2FkNDRhN2ExIHJlbGVhc2UyNC1tYWludAorMzgwODAgYjY2MTk0MjNjMTk2MTAxOTUyMDE4ZjgzMmI1ZjNkNjY3N2FmODlmYiBsZWdhY3ktdHJ1bmsKKzM4MDgxIGMxYjQ0MGVhY2JiMTgwYmZkOWRkOTQ0YTFhODM2ZTY1Y2Q3MmQzYjEgbGVnYWN5LXRydW5rCiszODA4MiA5OWUzZGRiM2E3NGFhZDc5ZmMxZmMzODI3YzBiZWVhNjkyOTU2MWNjIHJlbGVhc2UyNC1tYWludAorMzgwODMgOGQ2MDA3N2U5OTUxNDkwYThlMjg0ZTU4MDliZjA2ZmZkNDkwZjM0ZiByZWxlYXNlMjQtbWFpbnQKKzM4MDg0IDY3MTkzNjkwODNjMWViOTIxOWU0NjgyZmRlZjNkZGI5MDE4OTEwNWEgbGVnYWN5LXRydW5rCiszODA4NSA5ZGM5NmFjOTQzNDIzODJkZGNmYjI0NTRiMTA2MDFmZDBkMjEyODliIHJlbGVhc2UyNC1tYWludAorMzgwODYgMmFhOTZlZTNmY2I1YzkwYjcyZDI1MDAyNDEyOTQzMzhlZjJmNmViYiBsZWdhY3ktdHJ1bmsKKzM4MDg3IDRhMGMxZTUxN2U2YmIwZjU4ZmQ3MzM5YjhkYzU2NjBmZTBlMDM5ZDQgcmVsZWFzZTI0LW1haW50CiszODA4OCAzOTExNzI2YWVjYjkwMDFlNzE5NWQ3YzY1Zjg1NTExOWRiMGYwY2VkIHJlbGVhc2UyNC1tYWludAorMzgwODkgNjQyZGIxZmIzNDgxYjMzZGFkMDY5NzY1NzU1MGU4NDc5ZDU0NTljNSByZWxlYXNlMjQtbWFpbnQKKzM4MDkwIGJiZGMxZDczMTBmNDk3YTc4YjUzMTZiMmU0ODhiYTQ2YjViNWNhMzQgbGVnYWN5LXRydW5rCiszODA5MSBlYzE5MjVmMDdlYzk3ZTAyYzNkMTc2YjgzYjMxZjdiNzQ1MTY1ZmViIGxlZ2FjeS10cnVuaworMzgwOTIgZTIwODhhZTBkNjdmZDY2N2ZmYjNiNDJhNjMzYTBiYWZhMGU1NTY4OSBsZWdhY3ktdHJ1bmsKKzM4MDkzIDU3YjIzZTU3NWZmYzYzMGMyOWM0NGZmMDJhMmM0MjhkY2VkNWQ4NmMgcmVsZWFzZTIzLW1haW50CiszODA5NCA5NWJiZTk5MWZjYzMzMTlmOGY5OTY2NGQxNjA1OTA1NGIxY2YyZGE1IHJlbGVhc2UyMy1tYWludAorMzgwOTUgY2ZkYmZhNTRkYzZhNzAxY2I1OTAwZTMzZjdjOGM5NjhlMTZiOGJlYyByZWxlYXNlMjMtbWFpbnQKKzM4MDk2IGE3ZmZkYzA5ZjAwMjY3ZDc2NDhmNGJjY2RhNjBhNzdkZTlkMzg1NDQgcmVsZWFzZTIzLW1haW50CiszODA5NyA2OTQ2NzBmNjUyNTFkNWNmODBmZDEzM2RkNzUzMTVhYTRhOTcyZWUwIHJlbGVhc2UyMy1tYWludAorMzgwOTggOTNiMWIwYmViYTU5ZjkwMzYyNDdhNjU3NjBjMWMyMTVlODZkMGI2YSByZWxlYXNlMjQtbWFpbnQKKzM4MDk5IGFiMWExN2M2MzNhZWJlOTcwNGE0OTllY2Q4ZjU4N2ZhMmEwNWE1ZTEgcmVsZWFzZTI0LW1haW50CiszODEwMCBhNGQ4NjllY2VmMzM4YmViMzJlZjIyMWNkYzQ3ZTFhYWU3YmExN2I5IHJlbGVhc2UyNC1tYWludAorMzgxMDEgYzBjYzY2MDFkZGFkYTJlYTUyMGU1MWFlNWQyMjFmNmMyMjQ2NDBjYiByZWxlYXNlMjQtbWFpbnQKKzM4MTAyIDkwY2QyNGExZWUxMjQ5NjEwMjRjYmVmM2U2MWUxMGNhNGVlZjg1NTYgcmVsZWFzZTI0LW1haW50CiszODEwMyBhZWEyMjM3YjM4OGZmNzJmZTk2OGZjMTEzZWQ3Mzg4NGI1MzFiYWYzIGxlZ2FjeS10cnVuaworMzgxMDQgMjkyMDY5MWY2M2YwNjg3Y2JjNTAwYWMzMjAyNTM4NTJmZjJiYTBmOCBsZWdhY3ktdHJ1bmsKKzM4MTA1IDkxNDUzNGY2ZWY2MTI2YTQ2MmYzZjZjZTVhODFhODcxYjc1ZmE1MDMgbGVnYWN5LXRydW5rCiszODEwNiBhMTVmYTA1OWY5ZjAzMDA3ZDE3MzU2ZTU1ZjQwMGU4MzJhNWI2YzA5IHJlbGVhc2UyMy1tYWludAorMzgxMDcgYzllNWQxZDFlODg3Y2MwM2FjNWZlODgwOWMxNDg5ODMwMzE1ZjJmNSByZWxlYXNlMjQtbWFpbnQKKzM4MTA4IGRmMGMyZjNhY2M3Yzk2MWIwOTcwNDllYjRhODA4OTMxZTBiMjM3ZGQgcmVsZWFzZTIzLW1haW50CiszODEwOSBiMDQ0NzM1YzkyN2IxMDQyNjEyNzg2N2ExNTE4MDI4NDA3ZWI0ZWEwIGxlZ2FjeS10cnVuaworMzgxMTAgNDYzNTM1NjhlNDBkOTlkM2NlYjUzMWY3MTJiNmYyODhlNWM3NWQyZSBsZWdhY3ktdHJ1bmsKKzM4MTExIDk5ZWJlYzJiZTAzMTI5MjFmODM2YmJjNWE4NzMyNTkxNzI5Mjg2OTQgbGVnYWN5LXRydW5rCiszODExMiBhYWJhMWNlNGIzY2EwNWZkOTIwZDZjZDcyZjYyNGQ5NWRjZGFmOTk0IHJlbGVhc2UyNC1tYWludAorMzgxMTMgODZjM2E3YzZiMDBhMWFiMjgwMmIyNTU1OWFkMTJkOTJkYjE1MmY4YSBsZWdhY3ktdHJ1bmsKKzM4MTE0IGY1NGUxNDAwMGQ2YmQwZTJhZjFhM2NjOWI1ZjJjMTkzODU5ZTQzM2QgbGVnYWN5LXRydW5rCiszODExNSBlODJkMTgzMjU4ZjljMTA2NGE4ZmU1ZDM2NzMxMWVmNzM0N2Q1ZmZhIHJlbGVhc2UyNC1tYWludAorMzgxMTYgNTc5OGFhNjU0ZWM2NDBkOGRhOTk1MzEzMTYzYmMwODRmYjRhNzYxNyByZWxlYXNlMjMtbWFpbnQKKzM4MTE3IDI4ODkxZGMyNTU4MGNhYWM4N2IwYzBjMmFiMGZmMjkzOTI2OWI4MWIgbGVnYWN5LXRydW5rCiszODExOCA1ODQwMjNkYWM0MDY5MTViNTY4NzJkMWM4OGEzNWE3YWUyOGIxMjQ5IHJlbGVhc2UyNC1tYWludAorMzgxMTkgNGVjMDA2Y2EyYjkxYmVhN2U1MmQxODI0NWEzZDAxNWIxNTNhZDdlNCByZWxlYXNlMjQtbWFpbnQKKzM4MTIwIGU4MTE1MjE1MjQzM2ZiMThhZGQ0ZTlhZDAyOTdkNzBhZDg4MDc3MzcgbGVnYWN5LXRydW5rCiszODEyMSBjNzAyMzkwYThlMTIyMmU5NzkwMDdlMWNhNTNhOWQ2NDg0YzRlODk5IGxlZ2FjeS10cnVuaworMzgxMjIgMGQ5MTYzZGE2MWEzYmIwMDM1NDk3YmQwMDBhYzNjNmQ5MDU1ZDhiNCBsZWdhY3ktdHJ1bmsKKzM4MTIzIDY0NjE5NWI1OTIwNTc3ZDRmNWI2MmVjNThmZWFiMmRlZGU4YTI1NDQgbGVnYWN5LXRydW5rCiszODEyNCA3NGE5MWU0NTU5Y2E1YjI1MzIwMzUzNTViOGQ4MGNjNjg0Mzk2ZjlkIGxlZ2FjeS10cnVuaworMzgxMjUgMzIxYmMyZDQ5YTVhMmUxMGZlYzRlNDNkYzBkYmU4NTBjMTg4MjkyNSBsZWdhY3ktdHJ1bmsKKzM4MTI2IDU4NmE3NmY5NmIwOWRkNGYyNGJjMzllNzg3NDAzOGRmZjY0ZWRjYWYgbGVnYWN5LXRydW5rCiszODEyNyA1ODk4MWZlOTBiZWZhNGU3MDA4NDc4YzlmMmQ4ZDYyMjRiMDIwOWM4IHJlbGVhc2UyMy1tYWludAorMzgxMjggMTkxNGM0ZGI0YjI4NjBjOTY1NjNlNTBiOGE4YjhkZDczNDBlMzIxNyBsZWdhY3ktdHJ1bmsKKzM4MTI5IGIyZWNkYTRkZDcwZmRmNjhjMDUwYmVkOGFjZmQ4YjIyZDllODZlYjMgcmVsZWFzZTI0LW1haW50CiszODEzMCBhZjAxMzM2ZmYxOWRiMzA2ODI5NmE4YTY4MzJiNjI5YmFmNmZjMDQ2IHJlbGVhc2UyMy1tYWludAorMzgxMzEgMDQ0MjcxNzRjZjZhYjEzZjdlZjliZjhhMTc1MTIyMTRiNzkzYWYzYyByZWxlYXNlMjMtbWFpbnQKKzM4MTMyIDA1NWRkN2Y5MGIxZWE4YjZlZTZjZjg1NWJlYjhjNWZmZDVkMGNjZWQgbGVnYWN5LXRydW5rCiszODEzMyBhOWEwMzM2ODI5YmEwNDAzZWM3YzEzZmJhOGMwNWQzMmM1ZjU1ZDZmIGxlZ2FjeS10cnVuaworMzgxMzQgMDAwNmIyZGQzN2MyMzY5MWQ2MjFlYjRiMzA1MzM0ZDlmMzY3ODhiYSByZWxlYXNlMjMtbWFpbnQKKzM4MTM1IDAwNTYyZGFiZmQ0ZjM3YjgzMDg3YzY1YjQ1Mzc5MzNjNGU2YmUyOGEgcmVsZWFzZTI0LW1haW50CiszODEzNiA0YWNmN2FiZTU4MjU3N2VlNmVlYWQ3MThkYzc5Njg2MmZmZDRiMjg0IGxlZ2FjeS10cnVuaworMzgxMzcgYTEzZDk0NGNhNzZjOTc2NGVjMWViMWRiNGVlYjEwN2NkNTIzMzQ5YSBsZWdhY3ktdHJ1bmsKKzM4MTM4IDIxZGQ1MjRiZTAzNmFjYTRmZmJhZGJiNmM4NWU5NTU1ZThkYjkyNGUgcmVsZWFzZTI0LW1haW50CiszODEzOSA3MmNkOTNmNDYzYjVhZDE5YTBiNDcwOTYwODFhOWRhNTc4NTU2ZmQzIGxlZ2FjeS10cnVuaworMzgxNDAgOTM3NzJiNzE2ZTNmOTE3OGNjNmRjN2MwNDM2YTYxM2JlNzEwOThlZiByZWxlYXNlMjQtbWFpbnQKKzM4MTQxIGQ4ZWM0YWZhMWZmYjBhZjJmYzA5MTQ4YjU5Nzk0ZDdiOTdkZTAyMGEgcmVsZWFzZTI0LW1haW50CiszODE0MiBlOWNlZGU5MWQzYzMyZjZjZDFiZWU0NzI5OWJmZWU4OTRkNmE5MjA5IGxlZ2FjeS10cnVuaworMzgxNDMgYWZkOWI4MmU2OGYxZjhkYTU0NjE1YzNiYmZiZWMxNzE2OGYwYjgyNyByZWxlYXNlMjQtbWFpbnQKKzM4MTQ0IGIzYWY3YzZkYjFjNjBkZGQ3MTczNWJiMDM4NjQ1MjAyMWRhNWRjZWEgbGVnYWN5LXRydW5rCiszODE0NSBiYThjM2VhYTQzYTU5NzI2YmI0MTcyZDlhYjU0YzVjOTVmMjQxMGM1IGxlZ2FjeS10cnVuaworMzgxNDYgYjJjOTk4MTk4MzA0OWM3ODIxZWFkYWNmNDUzMTEyYmI2ZmZlN2NkYiByZWxlYXNlMjQtbWFpbnQKKzM4MTQ3IGVhYjE3NGQwZWQwMzFhZDVjZjU0NGRmNzVlZWQ2M2I1ZWU5NTJhOWMgcmVsZWFzZTIzLW1haW50CiszODE0OCBhOGE0YWZlMThiNjEzNGEzMDM0MzU3ZWY3MzMyMmY5OGUzM2M0NTQwIGxlZ2FjeS10cnVuaworMzgxNDkgZTIyMWQ5OTU0NjI2ODk1YWU1MDA4YjNiOWRmMGNlZmEwNTc5NDk4ZCByZWxlYXNlMjQtbWFpbnQKKzM4MTUwIGY3NWFjODZiY2VmNDRlZjRmODBmNDU3Njk5ZWFlYzRjOWU3YTQ4NWYgcmVsZWFzZTIzLW1haW50CiszODE1MSA1N2JmZWI1M2YyZmEzNGIyMjNmZDdlNTUwMDM4MTcxNDA2Y2Y1NmY5IGxlZ2FjeS10cnVuaworMzgxNTIgM2VjNTRjNWY3MDgxNDhjYjI2MmRkMjFjOGEzNTFkYTUzZDc0MjViMiByZWxlYXNlMjQtbWFpbnQKKzM4MTUzIDVkYzI3NGUxNTgyMjc2NmJiY2IxMzZlZTliZDY5MjI0MzU0Y2IwZjQgbGVnYWN5LXRydW5rCiszODE1NCAxODEwZGZkNjE1YWU3ZGZkOGFmMTdmOThkOTU3OWQ4YWUxNjk3ZmU0IHJlbGVhc2UyNC1tYWludAorMzgxNTUgNzYyMjkwOTY1MWM1M2Q3OGJjOWY3YWVjMmFmYzY4NzYxMWU3N2Q2ZiByZWxlYXNlMjMtbWFpbnQKKzM4MTU2IDUzNjhkMmI3ZDY2YTBhNTdlOWZhYWFiMTlhN2I1NjgzZjQzYjRlMGYgcmVsZWFzZTI0LW1haW50CiszODE1NyA0ZDM4M2I5OThiYjQ4ZjQ3Njk0MjBhMWU3NzU2MWMxZGIzYTc3NDc5IGxlZ2FjeS10cnVuaworMzgxNTggY2Q1MTc3MDFmZDkzYzk0NDhjNTgyMzcxNDI3YWE4NGYwNTcxNThhNiBsZWdhY3ktdHJ1bmsKKzM4MTU5IDNlOWE0ZDUzMWU1NjNkZDk0ZDgzNmFiOTQ4MTM4M2QwNDA1NjljNGIgbGVnYWN5LXRydW5rCiszODE2MCA0MDcyNWYzMDRlMThkNzNkOTQ4YWUxYTBlZTkwNTA0ZDZhM2EzNDRjIGxlZ2FjeS10cnVuaworMzgxNjEgNjdmMjE5MGUxZjZkOWI2NTA1NTE5MDEyYWE5OTA0MzIwNWFhM2RiNiByZWxlYXNlMjQtbWFpbnQKKzM4MTYzIDU2ZTYxMDMyN2I4MTZjNWJlN2I5ZGY5NGRkNzE2YTBhYzU5YmVmNTAgbGVnYWN5LXRydW5rCiszODE2NCBkYzlkMGE5ZWRlODg2NGQzYmI2NzkzNmRiNGU3MTRhZDk3YWIwYzEwIHJlbGVhc2UyNC1tYWludAorMzgxNjUgZGYzODBlMTk2YzRiNWFhMzQ0NWEwNjcxZDIzMjgzZWY5NTE5NmY0NiBsZWdhY3ktdHJ1bmsKKzM4MTY2IDFkNjI1ZGFlZDU5NDQyODIzNjliODVlYjgwZTUxMjlhNjMyZGFmOWEgcmVsZWFzZTI0LW1haW50CiszODE2NyAxZjdjZjg1MjFiYjU4ODZiNWEwZjgyNDIzYjRkYzQwZjJjM2E0OTdhIHJlbGVhc2UyNC1tYWludAorMzgxNjggOTk4ZmIxZTFjOGU5YTZkMjNjYTJlNjYzMmIzM2VlNWNkN2NiNjk0MyBsZWdhY3ktdHJ1bmsKKzM4MTY5IGNiMzBjZmNiMzllNzQ0NTcyYTQyODdjZmJiM2UzZjBhODQyYzZlOTUgbGVnYWN5LXRydW5rCiszODE3MCA5OTEwNDFmNzY0NDc4YzkwNWFlZmIzOTMwZTczOTZiODQzMzIwNmIwIGxlZ2FjeS10cnVuaworMzgxNzEgMGMzMjYzMjdlNzIyMzkxYjZjNjRjYzM1YzViZjcxZTQ3Y2ZiMGRkZiBsZWdhY3ktdHJ1bmsKKzM4MTcyIGYxYzM1ZGE2NGQ1NTRkM2Q2YTVjMDU0YTgxNDQ0MzEyYWY4MTk4ODggbGVnYWN5LXRydW5rCiszODE3MyBmMDBiYzI3M2FlNzBkMWU5ZGJhZTFjYzRkNDlkMWE0MGQzNjA2ODVmIHJlbGVhc2UyMy1tYWludAorMzgxNzQgZThiZjYyMDgzYWM0NDQ2ZjMyNmYxOTM0OWNmMWMwZmM1Y2I2NGEwMiByZWxlYXNlMjMtbWFpbnQKKzM4MTc1IDYwYTRiMDY0YTI0ODBhNzA5N2M2ZDJkMjZhYWY1NzUxNTQzNmQxNGQgcmVsZWFzZTIzLW1haW50CiszODE3NiBiYmNkODEyN2IzMjY4Mjk0NjViYjQ0YWIwZTNkYmNlOTgyMDc1MWU5IHJlbGVhc2UyMy1tYWludAorMzgxNzcgNjEyN2MwODlhMDZjOWUyMmI1ZTRjZGU3OTAxYTNjZDdhMzQwNmRkNyBsZWdhY3ktdHJ1bmsKKzM4MTc4IDc5YWRlMmRkZDMwNjg4MWQxNDRhMjUxNWQ3NWM2NDk0NjdjNTY1NGUgbGVnYWN5LXRydW5rCiszODE3OSA3MjQxN2ZhMjFjN2ZjZDc1ZTk1YjdhOWI1ZjUwNTQ2ZTM1ZTllZjA4IGxlZ2FjeS10cnVuaworMzgxODAgMzIxNjNhOGMzYjY5ZDM4NzBiNWZkZjQ0M2NmYzJiNjdjOTg0NjFmYiByZWxlYXNlMjMtbWFpbnQKKzM4MTgxIGU1OGNlMDQwNjZjZDgyMmEwY2RlYTRiMzJlZTYxNWY3NDJjN2M4MGQgcmVsZWFzZTI0LW1haW50CiszODE4MiBhNmM4MWFkMWY0NGNiNzQzMGJjZmEwNjQ5ZDkzMDJhZTg2Mjk0ZmMwIHJlbGVhc2UyMy1tYWludAorMzgxODMgYWQ4ZjllNzVmNjFkMjQyMDhmNTRlZWYzZTgyNzk4NWE0NjhjNDI3NiBsZWdhY3ktdHJ1bmsKKzM4MTg0IDJiYmM4YjRiNWI5Mzc1YzIzNGI4NWJhMzUxMGI4MGU1ZTU4YjExMGEgcmVsZWFzZTI0LW1haW50CiszODE4NSAwOTc0Mzc2MzQ5Njg5YmIyNjE2NThmMjJjYmVjNTdjZGQ2MzhhNDJhIHJlbGVhc2UyMy1tYWludAorMzgxODYgZjFhZTQxZThhYmYzODkxZTk2YTY3NmJlYzk1ODg4NGRjMjdiZGIyOCByZWxlYXNlMjMtbWFpbnQKKzM4MTg3IGI2NDdlZGQzYjk2YjgxZjVjNWNkNzc0YWExZmQ3YjgyNjcyYmY4YWIgcmVsZWFzZTIzLW1haW50CiszODE4OCA0MWNhN2I3NjhiNGZmNGVmZTU4NGY3ZTQ0ODc2OWI3NWExZDg5OGNiIGxlZ2FjeS10cnVuaworMzgxODkgM2E5NTBmMWFmYzU1ZmYzNzZiNzhiY2M1ZGU2ZjcxZjFlZTMxMGE0MSByZWxlYXNlMjQtbWFpbnQKKzM4MTkwIDlkZDg3YmE2MTc5NTUwMWEwNzk0Njc1NTViMzk0YzEzMjRjNjIxNGYgcmVsZWFzZTIzLW1haW50CiszODE5MSBlZTgwOGUwOGRkNmZiODk5NTVjMDU0ZGE2NjU2MTVlNmFlZmMyODQ0IGxlZ2FjeS10cnVuaworMzgxOTIgMDY2NDNmMDcxMzM1MDkzMDQ5YmZhYTI5ZWYyNDI3NDgxNGQyZmE5NiBsZWdhY3ktdHJ1bmsKKzM4MTkzIDRlNWYwNmM0Zjk1NzljYmM3YmJkNTZmNGM0MTVmYzg5MjcyYzg4YjcgbGVnYWN5LXRydW5rCiszODE5NCBmZmU3NTQyZjhmMWY3YTc4NDU0N2JjMTYzNzI0MGY2YjllZGY1ZWE2IGxlZ2FjeS10cnVuaworMzgxOTUgOWNhZjljZDU0NTNkOWU5NjI1NjFlNWQyN2JkMjU1MWEzZTFhYWQ2NSBsZWdhY3ktdHJ1bmsKKzM4MTk3IDQ0NjExZTU0OTllN2MyN2U3NmVkNjIyMThjMzQxMDY1NGNkN2JkMTggcmVsZWFzZTI0LW1haW50CiszODE5OCAzZmM4ZWNlOWQyYjgwYTQwMGFhZjA4OGIwMTMyZjJlOWJiZGEyMzZhIGxlZ2FjeS10cnVuaworMzgxOTkgYTYyYjNiNGZmNTJjYjkxODk3OTA1NDI0YWMxMGQ5N2M2YjU3YmVlMiByZWxlYXNlMjQtbWFpbnQKKzM4MjAwIGFlYzU5NjY1MDI5MjM0NDI2Y2YwMjM0ZjY4ZmI3MTA0ZmY2MDkxYjcgcmVsZWFzZTI0LW1haW50CiszODIwMSBkOTI2YjhhNWVmNmUzNGEyNDNmYzBlZjQyNTZiYTQwYzNlYzcwZDYwIHJlbGVhc2UyNC1tYWludAorMzgyMDIgODRmNDNkM2ExNTM1NGEyNDQ4NTRjYzRmYmRiYTlkNWUzMDVjYzE5YSBsZWdhY3ktdHJ1bmsKKzM4MjAzIGU2YmYyZTcyOTQxZWUwZWVmMzUxYjA3NTBmMWRhY2NjM2I4OTRlYjkgcmVsZWFzZTI0LW1haW50CiszODIwNCBlMTVjYjYyYjNmZmJkZTBiMjdhMGQxMjRmMzlhM2ZmMTc0ZjM4ODdlIGxlZ2FjeS10cnVuaworMzgyMDUgYmEyNGEwMzI0YTAzM2FlY2QzN2Q2MDY3NzVlZWI2MjZkYmExZDkxMiBsZWdhY3ktdHJ1bmsKKzM4MjA2IGRmOTVhNDE1MTVjNDE0NGNhYWM1YWM5ODAyOTUxMGEwODU1N2IzZGUgcmVsZWFzZTI0LW1haW50CiszODIwNyBiZTQ5MjllNTE3OWJjMGIzMjliMTE0OWQ0MDJjZTFiYzJlMTk0OWNhIGxlZ2FjeS10cnVuaworMzgyMDggZjgwYmI4YWZmNDE5MmZjZDIyNDQzZDZjNWE0MTU4OTE0Y2Q0Yzk4MSBsZWdhY3ktdHJ1bmsKKzM4MjA5IDhmOGY1NjBjZWM5N2VjNWJiYjhkMTg0MTA5ZjI1MDVjMmM3MDFkZTUgYXN0LWJyYW5jaAorMzgyMTAgMjA4MGM4YzQ3NzI5NzdkODk4NWJmMzZiNTk2MGEwMDkxNWQ2NDU1MiBhc3QtYnJhbmNoCiszODIxMiBmNDJhN2MzMzVhNWI5YWIwMGMwMzQyMTNhZWMyMTYwODQzYTM5YTkwIGxlZ2FjeS10cnVuaworMzgyMTMgODI0M2U1MWEyMmRlZWZlNjUyNGMzYjAzZjVkOWFlOGFhNDAwYjk3NyBsZWdhY3ktdHJ1bmsKKzM4MjE0IGEwYzBjZDNlODFmZDQ3N2I4Y2Y1ZTBlMDc2YTUxNjU4MjdhNjMwNGIgbGVnYWN5LXRydW5rCiszODIxNSBiYWViMDlmNjBjODI4MjY1YWVkMGQ1YzNhODM4ZmVlMWE2ZWU5ZDE3IGxlZ2FjeS10cnVuaworMzgyMTYgM2ZlZTdjOTExNmM5MWZkOTUwYmM2ZjY2MzA1YTUwNzdmNjVlYzk3YiByZWxlYXNlMjMtbWFpbnQKKzM4MjE3IDI2Y2NjZjNlODQ4Mjk2MjZmNWIwMjFiNzVkYWVjZDM1YTk5MTU1OWQgcmVsZWFzZTI0LW1haW50CiszODIxOCBhOGVjZDRhOTY4MjU2OTUxZjk5MGM0N2NjMDRiZWM2MDBlOTEzN2I5IGxlZ2FjeS10cnVuaworMzgyMTkgNjNmMzQ0NWYyZjU5NzM1MDc3OGM4ZDc0NGQwNzdhZWYwMWI5YmJjOSByZWxlYXNlMjQtbWFpbnQKKzM4MjIwIDU2ZTBjYzQzN2I4YjUwNWYyMmE0Y2Y0NjIwOGFhYTEzOWRjMGRmZTEgcmVsZWFzZTI0LW1haW50CiszODIyMSA2ODAwNjAwMjc5ZWQ2M2UxYzVmZWFhNWRkYTZjZWNkY2NlNzVmNmE3IGxlZ2FjeS10cnVuaworMzgyMjIgZjI2M2Y5NDNlZjdiMjBhYTBmNzVlNGNhNGYxYjVjMTk2YWMwMTg1MCByZWxlYXNlMjQtbWFpbnQKKzM4MjIzIGExMjNmYjRkNDViZjRhNjdkNDUwMjUzMmU3NjRkODUxMDM5M2ZhY2UgcmVsZWFzZTIzLW1haW50CiszODIyNCBjYTdmNDMxNWIyMTI2ZjdjNjRmMjM1MzIzMTRkZmU0MmEyZTIzMjY4IHJlbGVhc2UyNC1tYWludAorMzgyMjUgZTUxYTgyMTYyODQ2NGYyNWNiYWI2N2I0YTA5NjU4YjczMDUwMTVlMCBsZWdhY3ktdHJ1bmsKKzM4MjI2IGIyZDM4NzkwMDRjZDA2ZGMzMTViNWRlZjIwN2E2NTgxNmFmYmE2NmMgcmVsZWFzZTIzLW1haW50CiszODIyNyBiN2JjYmUzOThiYWE2ODlhZGYyODQ1YjdkMjQwOGMwODAxNWQyODQwIHJlbGVhc2UyNC1tYWludAorMzgyMjggYjFhODQyMzNkODU1N2QzZTIxOWZkZDA2YTUyZTdlYzNiY2UzNTExMSBsZWdhY3ktdHJ1bmsKKzM4MjI5IGYwZGI5YjE4NmYzZGRjMGUxYzcxZGIwY2E5NzE3YmIwZGYwMmQ0NDcgYXN0LWJyYW5jaAorMzgyMzAgZDgxYjYxNzNmMDUwYmY5OGNkMjgxNjQyYTE1ZWQyNmY1Y2NmMTA0ZCBsZWdhY3ktdHJ1bmsKKzM4MjMxIDIzMzY2ODg5YzZiOTRjMmFiYjdiNWQ3OGEwNTA3ZjM0ZjllM2ZlMGIgbGVnYWN5LXRydW5rCiszODIzMiA4NjE4MTY4ZGNhMjcwNTQ1YmI1ZWFmYjAwZGFkZTNjN2UxOGQ0MTNiIGxlZ2FjeS10cnVuaworMzgyMzMgY2MyN2IyNDk3NTVkZTZlZWRhNTA1NmRhZTMwOWM1NTA3OTgyYzU0YyBsZWdhY3ktdHJ1bmsKKzM4MjM0IDM1ZjMxNzkwYzZmOTZiYWZhOTE2ODU1MDE3MDUxNmVkNjFiYjY0OWUgbGVnYWN5LXRydW5rCiszODIzNSAxOWU2MWEyYTU2MzIwYzY1MDYxZjQ0NjU4OWIxYzg3MjI5NTgxMDQ4IGxlZ2FjeS10cnVuaworMzgyMzYgYWEyNDZiOWY2MTg0ZmI5YThmZWZkZDFiOWIwMjMxOTBjYjZjMjZiMyBsZWdhY3ktdHJ1bmsKKzM4MjM3IGIyMmViZmM0ODhmMzAyNGYwZDM4MWRjYmMzNTJkYThjMzFiMjQ1NTcgbGVnYWN5LXRydW5rCiszODIzOCA1Y2Q0ZmZmYWY5MTA1YWY4MzQ2NmE4ZDkxMzI5Mzk0N2I5MjUzNjcwIGxlZ2FjeS10cnVuaworMzgyMzkgZGJiZTgzYzMyOTRhM2UzMWIwYTA5N2Q3NjdkZjFiNWM2YWRjMWM0OCBsZWdhY3ktdHJ1bmsKKzM4MjQwIGZmNzNlMTVhM2ZiOTIzYTE5OTJhNjc0NjA5YzVhODQ0MGE0ZTJmYWMgbGVnYWN5LXRydW5rCiszODI0MSBjZTIzMjA3MmVhZTY0OTNiZDE3NGZjNDU2YWNkMjQwNDA3NzY1NDdkIGxlZ2FjeS10cnVuaworMzgyNDIgOGE4ZDg0NDc2N2I2NjYyZjA1NTcyMmFlOTk5M2VkYjE2NGVkMmYzYSBsZWdhY3ktdHJ1bmsKKzM4MjQzIGNkYWExNjg2OTYwODU1ZGRkODg3NWE2M2U1OTIyYzIwODQwZjBlZGUgbGVnYWN5LXRydW5rCiszODI0NCBiODk4ODEzNDgzNzUzNWQ5MTJlYzFhNzVhYzMzMjMwNWViNDNjNWM4IGxlZ2FjeS10cnVuaworMzgyNDUgOWUzMGQ5ZTJiNDMzNjM5MjU1NzY2YTdiNTkxYzY2NmY3ODA5OWM5OSByZWxlYXNlMjQtbWFpbnQKKzM4MjQ2IGM1OTc1NDMzYWE2ODc3ZjlkODI0YmZjYTUzN2VlZDlhMWJhMmQwYjUgbGVnYWN5LXRydW5rCiszODI0NyAyYjQ4NTk3NGI0NzE1YmM2MjZhYmU4M2EzZjM3OWVmZjJkZmY3MjJmIGxlZ2FjeS10cnVuaworMzgyNDggYTk0ZGEyYzZhNjI2ZTRkMzRkOWI2OTE1ZjhlY2FlZGY0MmJhYTZjYiByZWxlYXNlMjQtbWFpbnQKKzM4MjQ5IGEwYmM0NDE5NjYzYzMxMDVlYTE0MzhmMjFhNjUzMzE3MTc0NDc3M2UgbGVnYWN5LXRydW5rCiszODI1MCAyODdlNzFmNDRkNzk2OThkMjY1MzU5MDFkMGRkNmYwMTMwZjgxNTZiIHJlbGVhc2UyNC1tYWludAorMzgyNTEgMWFlYTgxNTUxYTIyMmY2YmZiMjI5ZmQ1ZGRmZDdiNjRjNTBlOTA0NiBhc3QtYnJhbmNoCiszODI1MiBiYTZlMTcyNzFjNjI4OTE2OTExMjE1ZGUwNzU3NjNlMWJjYzBmNzZjIGxlZ2FjeS10cnVuaworMzgyNTMgNGJkMTgwZDE3MWNjMDM0NDg1NzEwZWYzZTQ5Y2RkZDQxNTkzZTNmYiBsZWdhY3ktdHJ1bmsKKzM4MjU0IGEzMTY4MWE2Y2Y4ODcyODc4M2ZmMDA0OWI2MTk5MjAyZjNlZGViYzcgbGVnYWN5LXRydW5rCiszODI1NSAxOGNmZjNlZDc0ZDNkOTZkZjljZjA5NmFhYmE2YzlhMGUzYzdlOWYzIHJlbGVhc2UyNC1tYWludAorMzgyNTYgYTIxNjAwM2NlZjA0NDAyZDgwZTE1NWRhZjVhMzAwNzBkYjdmNGEyNiBsZWdhY3ktdHJ1bmsKKzM4MjU3IDM1MzNlM2NiN2I5N2E1N2U5MzIzOTVmZDRhNGM1NzE2MTAwMTg1ODQgbGVnYWN5LXRydW5rCiszODI1OCA5MWQ1NWEzMDM4MmNiYjA4MTQ3OWYyMzg2NDVlYmU0MDQ4Nzc4YmZhIGxlZ2FjeS10cnVuaworMzgyNTkgZjI1ZGNkN2YzZTQ4ODBjMDQ4N2IxODAwMjE1MmRkMjdmY2E1ZjhmOSByZWxlYXNlMjQtbWFpbnQKKzM4MjYwIDU5OGQxNmZhMDJjMTk5MTIxNDhjNGQzMmU3Zjk5NTcxMGRhNmE1OGEgbGVnYWN5LXRydW5rCiszODI2MSA3MzkxZTE4YjBhN2NkZGVmNjQ0NzQ5NmFiYzdlMzM1MWU1MGIwMTRjIGxlZ2FjeS10cnVuaworMzgyNjIgMjhmODQ5Mzg0NjhkZWExZTUzYzFhM2Y0MGIzM2JjODc5MjNmZjMzYyBsZWdhY3ktdHJ1bmsKKzM4MjYzIDBhMTYwOGE1ZWIwNWFlZTQ5YTQ4Mzk1NzA0M2E2MmY4YTIxNDA1MWMgbGVnYWN5LXRydW5rCiszODI2NCBlMmMxMDk3ZDdlOGZiMGJlNTE3ODMzZDM5ZWJjN2JjYWEwYjlmZGFhIGxlZ2FjeS10cnVuaworMzgyNjUgYjZlYzFiM2I5ZmNlNzljNzdkZjE3MjY3NTg1NmZlZTY2N2YwNGEyOCBsZWdhY3ktdHJ1bmsKKzM4MjY2IGI0ODBhYmFmMWY2ZjZlNmFiN2QyYTUzYTIxNzZjZmRhOTU2ZDVjODUgbGVnYWN5LXRydW5rCiszODI2NyA2YzAyYmIzZmNjYTY3OTA5ODA5ODJlMGYxZDA5ZDEzZTY1NWE5MGQ1IGxlZ2FjeS10cnVuaworMzgyNjggNzA1OWZiOGI5ZWIzOTM0ZTVlZjUxNzA2ZDdjY2FjMzVkMDA1YzM4OCBsZWdhY3ktdHJ1bmsKKzM4MjY5IGM0ZGI5OTJmODQwZjMwNGVkY2E2MGEyNzMyYzkyNDI5NGYzYTZmNGYgcmVsZWFzZTIzLW1haW50CiszODI3MCA0NWEzMjBmMzhjNDg5MDFmMzViYzRjZmUyMTM1NWZlNWU3ZGJjNDgyIGxlZ2FjeS10cnVuaworMzgyNzEgZDc5Njg2MjFkMjhkMmU3Y2QxOTVhZThjMTMyMmNlMTAzYTAzMzIyNCByZWxlYXNlMjQtbWFpbnQKKzM4MjcyIDhiYjQ2ZmRjZThmZDM4NDQxZWE3YzI0NTUyOGQ2NjJhOTU2NjM0ODkgbGVnYWN5LXRydW5rCiszODI3MyBhOTlmNWFkMjllYWM2NGEyYmYwNDdiYWJmOWRhNDVkMjg5ZmI2NDMwIHJlbGVhc2UyNC1tYWludAorMzgyNzQgOGVjYThkOTgwMjYwZGVkMjVhMmNjZTE4ODdiMWNlMzVjYmNlMThlNyBsZWdhY3ktdHJ1bmsKKzM4Mjc1IDEzYTg1ODA2YmE0OGM5NzkzMzEwYTcyODQ3ZmQzNGI4MTZjMzk0NzMgbGVnYWN5LXRydW5rCiszODI3NiBhODU5OWM3ODgyMThkODg4NTIyN2FlMzlmZjVjODljOWM5YzkzYjlkIGxlZ2FjeS10cnVuaworMzgyNzcgNDI4MmY4ODJiMjg1OTU2ZTNiZWFkN2IxMGIzYzRiZGJkNjg4NTE2YiBsZWdhY3ktdHJ1bmsKKzM4Mjc4IGI5Mzg0NWNlNDQ1NDk1ZTNiNDg1Y2I2YjM5YWVkNWYxODNiNzAxMTAgbGVnYWN5LXRydW5rCiszODI3OSBjODhhYjI5MmJmMDUyOGFhOTVhNjcxMmQwZjEyNTlhMDIxMjg1ZDQxIGxlZ2FjeS10cnVuaworMzgyODAgNzJmZDM3M2NkMGY5NWExYzJmNmVkNDVjNmExOTcwYTY5ZjIyMGZjZSBsZWdhY3ktdHJ1bmsKKzM4MjgxIDFkODY2YzAyYThjYWIyMDViYjFhNDAyYmE5NzcwYWU0NWVhNGE5NDMgbGVnYWN5LXRydW5rCiszODI4MiBhNzBkZDg3NjdiMDcxYjM0MjY2ZGRiYjA2MmU1YzYzMjJmNGY4ODhlIGxlZ2FjeS10cnVuaworMzgyODMgMDJmMzk4ZmJiMGYwNmQxN2M0NWIzYWIwNmU0MjhiYzhjMTU4ZTA3MyBsZWdhY3ktdHJ1bmsKKzM4Mjg0IGIzMmFlMGVlY2RlZTcxYWQwZmM0Yjc4NDllY2JlNzJmNDlkZmU3NDYgbGVnYWN5LXRydW5rCiszODI4NSA4ZjU3MzBhM2JjNGFiZjcyN2U5NDM3MzQ2Njk0NWQ2OTgyMDY2M2Q4IGxlZ2FjeS10cnVuaworMzgyODYgMzQ3MzkyYzhlYjhiMzZjNTNjYjVlZWEyMGIyMTEzNjZkYzMzNjMzMyBsZWdhY3ktdHJ1bmsKKzM4Mjg3IDhmYzAzMGM1YzcwYWJlMjkxOTEyNDU0NjRmYzg4ZTNhOWI5M2VlZDAgcmVsZWFzZTI0LW1haW50CiszODI4OCA1NjNjYmY0ZDZiZTQ2NTY1ZjQ1ZjA0MDViZWQ4M2UyMWQ3NWUwOTQ5IGxlZ2FjeS10cnVuaworMzgyODkgZmU3YTE1NDdmMmZhZWE0NDhmZWFiZTZlNTE2YzNiZTQ2NzNhZDExZSBsZWdhY3ktdHJ1bmsKKzM4MjkwIGZhNjVlMzQyNWE0YzVhZDZkMWEwZWQ2MDcxZDRlMWMwNTg5MDVhMjUgbGVnYWN5LXRydW5rCiszODI5MSA2NTJiODVkMzVhNzVkZGExMGUyZDMzMWE1NzZlOTNhMGY3MzcwN2VkIGxlZ2FjeS10cnVuaworMzgyOTIgMjY5YTJjMTRiYzU3MDg0ZDM2ZDgzY2JkMWNlYzk4MzJhYmZmZWQxMiBsZWdhY3ktdHJ1bmsKKzM4MjkzIDMzMTZhYTU0MGU2OGM4MDcyODQxOTFlZTk2MmZmMWI2MmQ0NDk3N2MgbGVnYWN5LXRydW5rCiszODI5NCAxMzkzNDM0M2E1M2I4MzI2MzI0MjcxNThiZTVhYzhhNDYwZGVjNWU4IGxlZ2FjeS10cnVuaworMzgyOTUgNTQ0OWI3ZjgwNmZiN2RmMmMyMmVmMzgwMWVlYzE1N2RhNDFmZTNhMSBsZWdhY3ktdHJ1bmsKKzM4Mjk2IDViZDJiM2U0ZmRjYzRmNTcxMzA5MjBjYmU1MDU1MzBjYmY2MjBlZTIgbGVnYWN5LXRydW5rCiszODI5NyA4NDM2YTI5NTU5MWI2OGNhODBhOTA0MWY2ZjY0ZDQ5ZmVhNWQ5YTZhIGxlZ2FjeS10cnVuaworMzgyOTggNGI4ZmE4YjBhZjkxNmVlNWQwNDJmMmFlMmFiN2ZiY2YzZmYwMWQ3MiBsZWdhY3ktdHJ1bmsKKzM4Mjk5IGRjMDljYzliMmVlNmM3OGQyODRkNTNlYTUzM2UwZTAxZjc5MjNhMGEgYXN0LWJyYW5jaAorMzgzMDAgNjg5YzIzMzg1ZTRmOWRkMTIzZDc5MmM3MTEzNzdiYTliNzBhZGEwOSBhc3QtYnJhbmNoCiszODMwMSA0YWYzYmZmZTU2MjAzYWVkMjJjY2UxNDU4Y2I0OGQxMjU4NzhiOThmIGxlZ2FjeS10cnVuaworMzgzMDIgNzI4ZWRlZmIxZTE3MzU2ZThmN2Q2MmJjMDdhNjViYzI2Y2RlNmI4YiBsZWdhY3ktdHJ1bmsKKzM4MzAzIGUxMzA1ODk0YmYwOTZhOGM5Yzk2ZWNhYjc5ODNlMDg0MjQzOTI1NTcgYXN0LWJyYW5jaAorMzgzMDQgNDkwMTdkOWVmNmM5ODZiNjg3MzhmNGYxZTgxYzZhYTg4YWYyMDIzZiBhc3QtYnJhbmNoCiszODMwNSA0Yjc0ZmYwNzk2NTJiZjVkYjAyOTFhOTdmN2YzMzE2MjIzOTg1ZjcwIGxlZ2FjeS10cnVuaworMzgzMDYgNjliNjhmOTFjYzc3NjY5MGNiNjMyM2I0OWU0MzAwYjgxMGNhMTQ1NiBsZWdhY3ktdHJ1bmsKKzM4MzA3IGY1NjQ2MzQ5NGJmZDk0ZWU1YTdkMDk3MDNlZDljMThlNjY5ZTUxNTMgcmVsZWFzZTI0LW1haW50CiszODMwOCAwMzk4MDdlMWU0ZDEyODJiOTcxZjkxOGZhNzExNGUyYWMxYTBiY2E1IHJlbGVhc2UyNC1tYWludAorMzgzMDkgZTFhN2ViODMyY2I1MWFiZjhiN2RmNTJiNWZmZjAyNzBmMGQ1MjIxYiByZWxlYXNlMjMtbWFpbnQKKzM4MzEwIDRhYTU1NGIwMGNiMGI1NTZkMDI4M2MxMzk4MDRiNTg3ODE4OGVjZDMgcmVsZWFzZTIzLW1haW50CiszODMxMSAyMjQ2YWI5MjJlYjQ4ZTQwMDAzN2FmMTg0N2IyOWIwM2ZkOWQyMzUxIHJlbGVhc2UyMy1tYWludAorMzgzMTIgOTU1ZGEwODBiMGNmMzY4MGNiOWQ5N2I2NzI2MTdkOTE1MjViM2VhMyByZWxlYXNlMjMtbWFpbnQKKzM4MzEzIDdkOTk5ODFiMmVjZTMyZWQ3YTg3MjBjY2M2OWQ5MGNkYTg3MWY0NzMgcmVsZWFzZTIzLW1haW50CiszODMxNCA2ZmRiYzRlODMzZTIwZmY5NDY3MjY5NmZjZjgzZjBlYTM0YmY2YTVjIHJlbGVhc2UyMy1tYWludAorMzgzMTUgNzc1YTcyYjlkNTJjZGM3NjhhMjllODUxMWFmZTliYjk5YTJmNmM3MCBsZWdhY3ktdHJ1bmsKKzM4MzE2IGVkNGRjMDVlYTRiOGMxMjZhYTcwN2FiMGUzNjkxOTg4OGI3Y2I2NTkgbGVnYWN5LXRydW5rCiszODMxNyAxOGY2Y2ViZTQ3YWFhZTczNTk5ZDJlM2VjYTljNDYxZWIzYWFiMDFhIGxlZ2FjeS10cnVuaworMzgzMTggNjgzNzE5ZTA0MjE4MTgyYjAyZWQ2YTNjZDg0MGE3N2M3MGI1YzUzZiBsZWdhY3ktdHJ1bmsKKzM4MzE5IGNkNmI1NGJhMjcyZmI0Nzc0YmY3ZDlkYzRiOTRmNzBmYmIxOTM3ZDYgbGVnYWN5LXRydW5rCiszODMyMCBkOTNiNjhhOTlmOTZlMzgxNTY0MmZlMzY0MTNiZWZlZTQyZDhmOTY3IHJlbGVhc2UyMy1tYWludAorMzgzMjEgNmNmMzk5YWFmYzY2OGU0NDI2M2MwYzExYzI3Yjg0MTZmMzk4N2RiMSBsZWdhY3ktdHJ1bmsKKzM4MzIyIDIxZGQ3MzNlYjExOGMzYmFmZTc5Zjg3OGNmNjBjYzdjNzdkZjRjMzEgcmVsZWFzZTI0LW1haW50CiszODMyMyA4YzBlM2MwYTIzM2NhYzNhYzQ3ZjBhNTczYWI0ZjFjZThkMTY4OWIwIHJlbGVhc2UyMy1tYWludAorMzgzMjQgYTA2M2YwZDZkYjI4MGU0ZTQ1ZmRiOWE0OGM2NjYzNDIxNDUyMDk5NiBsZWdhY3ktdHJ1bmsKKzM4MzI1IGFmNjMwZWIyNmQ1OWI3ZjFjZDk0OGNmYjYxZGU4MThkMmQ1YzJkMWUgcmVsZWFzZTI0LW1haW50CiszODMyNiAyOTMxZjY1MDRhZjVjM2Q2MGFlMmJlYTZiY2MwYzVjNmUyMTJkZWRiIHJlbGVhc2UyMy1tYWludAorMzgzMjcgMmVlZTkwZWYzMmFiYzcyNzVhN2Q2Njg1OGE2N2ZmMjQ3ZTJjOGM1OSByZWxlYXNlMjMtbWFpbnQKKzM4MzI4IGFkMTI2MDU0YWRlNTc1MDBjOWU0Nzk5ODNmNjZmMDFkZTAzN2QzYmUgcmVsZWFzZTI0LW1haW50CiszODMyOSA2NzBkZTMwMWI4ODdmMTAxYmFmOTQ1ZTIzODQyZDIyOWZhNjBkZDFmIGxlZ2FjeS10cnVuaworMzgzMzAgNTk1MjNlYjM1YzFkNzEyNmMwMTdmMWQyNDQ4ZmM0ZDkyM2NjY2UzNyBsZWdhY3ktdHJ1bmsKKzM4MzMxIGEwOTNhZWJmMWI0MGU3ZDExNmM3ZGYzNDg2ZWI3YzczMWUzZjZiYzQgcmVsZWFzZTI0LW1haW50CiszODMzMiA2NjA1ZTEyYmMxNmQ3MTNlMzc5MjYwMjMxMGRkOTQxNDFlMTQyOTI0IHJlbGVhc2UyMy1tYWludAorMzgzMzMgNTFhMGYwYWQ0NmFjMGQ5YzMxN2M1ZjgyOWFlYTVlZWU3ODQ3ZWRhNCBsZWdhY3ktdHJ1bmsKKzM4MzM0IDcwYTA0NDk3NTVlMjYxZGI4M2JmY2JiODk1YmQ3ZDhhZjRjNDY5YWYgcmVsZWFzZTIzLW1haW50CiszODMzNSAxZjVjMjM1MTYwNWExNTdkY2UxYzliODcyMDJiNjRmOTYyMjQyZTZkIGFzdC1icmFuY2gKKzM4MzM2IDMyOThhZTZmMzY2NTg3YzA1NzhlMzE4NTE5YzQxNGY5NTEyMTRlNzggYXN0LWJyYW5jaAorMzgzMzcgOGI2NTQ4ZjVmMjc5ZGQ5NGEwZDhlYWE2MzU1YTEyNTk0ZTk3ODZhMiByZWxlYXNlMjMtbWFpbnQKKzM4MzM4IGNjM2JkNGU0ZDlmMGE1NjMxNTNlMWI0Y2JhNDc3OWU3MDE0NTMwZTcgcmVsZWFzZTI0LW1haW50CiszODMzOSAwMTMzYjAyMjYyNmViMmNiNDVmZTY3YjZiYWVlNTdiMDIxMTJjMDljIHJlbGVhc2UyNC1tYWludAorMzgzNDAgZDVkZGQwNmQ1NWZjOWRhM2YxZjRhMDQ4N2ZjMDJmM2FkZTVmOWY0MiByZWxlYXNlMjMtbWFpbnQKKzM4MzQxIDlkNzYzOTM3YTI1YjRiNDhhZjQ4MDBjMjZjYWRiNGEyOWIwZDhhYWMgcmVsZWFzZTI0LW1haW50CiszODM0MiBmZjUzZDE0NzE3YzUyODEzNWE0NTQ0NDY3ZWQ1NDNmZGY5YTlkZjM5IHJlbGVhc2UyMy1tYWludAorMzgzNDMgN2RmMDc3ZjQ3MDU2OTBkMjVjZDdhNTdkZDE4ZjkwODY4Yzg4ZGQwNSBsZWdhY3ktdHJ1bmsKKzM4MzQ0IGQ1Y2U4OGViZGJiZDBkNzUwMTk4YzQ0N2RkMDBjYzVjYmFmZWJlZTkgcmVsZWFzZTIzLW1haW50CiszODM0NSA4M2M5NzViNGEyYzM3MjJhMDZkMmI1OTMzOTgyMmU2YzgzNTMwZTUwIHJlbGVhc2UyNC1tYWludAorMzgzNDYgYzQ0MTMzMDdhMmYzMTBiY2I3Njc1ZTI2YTU3MjE5MmIxYWIzYTFlYyBsZWdhY3ktdHJ1bmsKKzM4MzQ3IGY3MzhkNjRjODI3ZDMwODcxODA2ZmI3MDQ2MjMzNDBmYWQ5YjM2NTYgcmVsZWFzZTI0LW1haW50CiszODM0OCA2M2ZjZDY3ZTMzMjlhYjNjMTIwNmUzZDFjMDJkMzg1MmVhMjY0NTIyIHJlbGVhc2UyNC1tYWludAorMzgzNDkgMmIyNThmMGNiYzMxY2I5NWQxZjEyY2FiMDkxODc0NDFiZGU4YzRjZCBsZWdhY3ktdHJ1bmsKKzM4MzUwIDBmNDFmZTNmYWRmNDVlMWY4OWNiNGIwMmEwZDc3NjE0OGMwOGYxODkgcmVsZWFzZTI0LW1haW50CiszODM1MSBmMjQ2ZTQ0ODU2MzdhOTRlNDQxMDgwZTY1YjU5NWRkNzk3MGMyODZiIHJlbGVhc2UyMy1tYWludAorMzgzNTIgN2Y1MjQxN2U1MzBiMzRkYjI5MDY5YmMyOGEyNTRlOWNiMWQzMzIyOCBsZWdhY3ktdHJ1bmsKKzM4MzUzIDIzNjlkZmUyZGFkNDY5ZWE1YzlkMGYyODk3MjkxOWEzZGEzYzBkMzEgcmVsZWFzZTI0LW1haW50CiszODM1NCA5NzI0MTc0MjYyMjQ3YTNhYWU3MDcwZGQ1ZGQ0MTY5ZjIxYjZhY2JjIHJlbGVhc2UyMy1tYWludAorMzgzNTUgYjc0NTU5NWQ0MWQxZjE2MzQxODAwZGJkMGVjNDNmYmQ2NDQ5OGIxNSByZWxlYXNlMjQtbWFpbnQKKzM4MzU2IGUzZDc0ODMwZWQyZmE3ZDVmM2JjNjJjOTc5MDgyODEzNzhkMDI1NGEgcmVsZWFzZTIzLW1haW50CiszODM1NyBiOWJjNDliNTNmNGQ2MjVkNWM5NDNlNjZjMWY5NTcyYWRlZDM2ZDQ0IGxlZ2FjeS10cnVuaworMzgzNTggMzZhYmRkNDc4ZTA3NDFmMjQwYjQ5OWQ2NzkyMjk4YjMyYzc2OTk2NyBsZWdhY3ktdHJ1bmsKKzM4MzU5IDljNjJlN2Q2OTBhNTJhYTk4NWQwYmJiNmY3ODg3NjFkNGY5NWVhODIgbGVnYWN5LXRydW5rCiszODM2MCBlODUyY2Y2YWI1YjU1MjE3YTk4NTI5NWYwNmM4YWIzOTAzMGU2NjIyIGxlZ2FjeS10cnVuaworMzgzNjEgNGExZmVmZGZjNzkzMDQ2MzMzMWY4M2VmNzg2NTg0ZDMyZmFjMTdiOCByZWxlYXNlMjQtbWFpbnQKKzM4MzYyIDhjOWUzZWQ1OTRmZWQyYzg2NjE5YzI5YWVmNTQ5ZTBhYzM5ODE1YTcgcmVsZWFzZTIzLW1haW50CiszODM2MyBiYjA2NTRjZjVlNTIwNWUzNzM4ZGYzZGNlY2Q2NjFjOTEzYmRjZDQ3IGxlZ2FjeS10cnVuaworMzgzNjQgNGQyOWViM2EzZGRiZjJjMzNhMGUzY2M0MTY2YWQ4NzVmMmVlNmVjNiBsZWdhY3ktdHJ1bmsKKzM4MzY1IDQxZjI5ZTI2ZjY4ZjQ0ODA4ZDM3ZTYyYjJjMTU1NDNhY2JjYTQ4NGEgbGVnYWN5LXRydW5rCiszODM2NiA0MjA5ZWMxNzA2YWJhMTc1N2M0MWFmYzIzYjcxYTg2OTZjZDE2N2RiIGxlZ2FjeS10cnVuaworMzgzNjcgYTcyZWU2M2M2Yzg0OTAyMTZjOTcyY2NlYWNlYTI4OTUzNGM5OTViNSBhc3QtYnJhbmNoCiszODM2OCBmYzU4MGZmMDBmNmY1NzBjOWRjMWU3MGZiN2I3YmFjYmZiNTlmNzM5IGFzdC1icmFuY2gKKzM4MzY5IDZiMWM3YjE4ZjU5ZDg3YjU4MWNiMjM3NDdlZmNiNDVjYThjZjFkMzAgcmVsZWFzZTIzLW1haW50CiszODM3MCA2ZTcwMzNjNzRjNzBiN2MwOGU5ZGM0NmUzMWU1ZjhmZDk1YzA2NDg0IGxlZ2FjeS10cnVuaworMzgzNzEgNjgwMjBiZDFiOWUyZTJlYzkzMTRmM2I3ZDc5NTJkNzQ5ZTM4ZTRjMSByZWxlYXNlMjQtbWFpbnQKKzM4MzcyIDZiNmU2Yjk4MmFjODU3YmY3NWJhN2FjYzA0Njg0MzVjMGZlYWY5NWIgcmVsZWFzZTIzLW1haW50CiszODM3MyAwOGUzY2E4ZmIwNzFmNTlhN2MwMmM3MTBlOTdmMTk2OGVlNThlOTFlIGxlZ2FjeS10cnVuaworMzgzNzQgNGRhNDYyNThiZmY4Y2VjOTYxZjE2NmMyNjdlNjJkYjc2YzI2ZDBjNyByZWxlYXNlMjQtbWFpbnQKKzM4Mzc1IGM5MzM3YzlkMmYyYTk0NjYxZDFlMGFjMDgyZDdhN2VlMmMzYjBkNTkgcmVsZWFzZTIzLW1haW50CiszODM3NiA4ZjYwOWVhYWMzZjAwMmEzMGMwNWZkZDE0MGE0NDRlNDJkN2E5OGIxIHJlbGVhc2UyMy1tYWludAorMzgzNzcgNTE2Y2EwYjkyOTcxYjcwMzllZGI1ZjYwNDIzMzNlMmI4MDVmZGJjYiByZWxlYXNlMjMtbWFpbnQKKzM4Mzc4IGFiYjNjMWFkMDBhN2JiNTFjM2NlZjU1NTc0M2UwN2Y3ZmI4YjA2MTggcmVsZWFzZTIzLW1haW50CiszODM3OSBhZTczMjg2ODk3YTM0YTM5ZTAxYTlmMTYzMzI4ZTIyNzJmYThmOTI5IHJlbGVhc2UyMy1tYWludAorMzgzODAgYzE2NDFlZWRhN2M5Mjg1NTA3MjY5YWNiZmViMWNhNDY4ZWQ3ZjFmNyByZWxlYXNlMjMtbWFpbnQKKzM4MzgxIDQ0MGMyNWJkOTlkZjg1YzQ5NGE5NjFjZTRiYWRmMmE2MDgzZjQ2MWIgcmVsZWFzZTIzLW1haW50CiszODM4MiA4NzIyNGYyYzVlMTAwMDJkYTRkMGRiZDQzYmQ2NDkyMWZlN2NhODI4IHJlbGVhc2UyMy1tYWludAorMzgzODMgYzRmNzZlZDJlYWZhM2Y3YTViN2RmZDhiMjkyYTNiZjk3MTc4ZTk2MCByZWxlYXNlMjMtbWFpbnQKKzM4Mzg0IGU5NDlkNDYzNTcyY2U2NjExYzMxNzM0NDYzNjNlOGY2NmRjYjRlOGEgcmVsZWFzZTIzLW1haW50CiszODM4NCAyNjM5YjEwZGFhOTg1YjIwYjNjYWJlYzQ1MTY5ZDUyM2NhYzI5ZDY4IHJlbGVhc2UyMy1tYWludAorMzgzODYgYmRhOTMzODczNzU4ZTU0ZTNjZDY4OTM3NDI1MWFkM2YzMWQ4NWJhMSBsZWdhY3ktdHJ1bmsKKzM4Mzg3IDE4YmEwODVjYzhiYmJmNWZlYWQzYjhjNTZkNWE2YmExMzI4YTQxMDQgbGVnYWN5LXRydW5rCiszODM4OCAxMzE3NmVkNTJlNjVjNDg0ZGJjZjRmODFmYjhlNzg0NWYzYTMxZmZlIHJlbGVhc2UyNC1tYWludAorMzgzODkgNmYyZGQwODFmZTA1MTI2NjgyMDYxMDJiZmRiZDgyMDFiM2I0ZjIxZCByZWxlYXNlMjMtbWFpbnQKKzM4MzkwIDFjMzQ5MDYwYWMwOGYzNzBiYTZjMjE0YzIzNTA3MTk0ZWRiZjA0ZmIgbGVnYWN5LXRydW5rCiszODM5MSA5MTAzODgwMWViNDVmYzMyYmFiYzg0MzRiMGE0ZjM3NTNhN2JjYWIzIHJlbGVhc2UyNC1tYWludAorMzgzOTIgY2I3ODk2ZDc3ZGU1MjJmMjRiOTFjNzA1YmVkZmU4MjBiY2UzMGM0YSBsZWdhY3ktdHJ1bmsKKzM4MzkzIDkyNWQ1NGRmOTJiZTk1MGJkNWVkYjdlNjdiNWI1Njk0NDUxZjAyY2MgcmVsZWFzZTI0LW1haW50CiszODM5NCA1NDgxMzRiYTI3OWZlYzI5NDAzZWM3ODRmZjZhMjcyN2VlMmY5NTViIHJlbGVhc2UyMy1tYWludAorMzgzOTUgZTMwNzRlOTRmYjc1NWUwZDEwYWZmZWMzMjUyYTMzYTVmYWIzNjYwZSBsZWdhY3ktdHJ1bmsKKzM4Mzk2IDY1ODUxMjc3NDQ2ODE1MTUxMjFiYjIxZmIzYTNhYmJlNWMxMzE5ZDggbGVnYWN5LXRydW5rCiszODM5NyA5YjRlMzE4ZDZjNzI2NzRlZGJhOWUxNzZkOTU5ZjIzZjFjMWY1Y2QyIHJlbGVhc2UyNC1tYWludAorMzgzOTggNmM5MGNiNzY2ZTZiYTQwZTIzZWQyNGEzY2E5M2E5ZmJkODVjNjE5MCBsZWdhY3ktdHJ1bmsKKzM4Mzk5IDg4YzI5ZTUxYjAyOWExOGMyOTJkMjg0ODhlY2I2YmI3ZmFhNmQ2YmIgcmVsZWFzZTI0LW1haW50CiszODQwMCA1ZmQ1MDY1MTYzNjE0ZGRmYjJiMjBkNWIzNmM4MTNhYWU1ZjVhZTA2IGxlZ2FjeS10cnVuaworMzg0MDEgODA0YzU2NzM2NDNlNmVmNTAzOGVlZjJjMjk3N2Y2OGYwNTQyNGQ5ZiBsZWdhY3ktdHJ1bmsKKzM4NDAyIGE0MjI1Y2RjMjA0N2ZkMGQ2MmE3OGJjNzIyZmViZDgyYTE5ZWU0ZmMgbGVnYWN5LXRydW5rCiszODQwMyBmNDMwNzE4ZjhiNDMwZTU1NTE5NTA1MmUzNjFjZWNjZmI1NTZhMDA1IGxlZ2FjeS10cnVuaworMzg0MDQgZjAxMzQyMzJiZDg0ZGIzMzI4N2IxY2RhZGI3ZGUyYzJiZTBiNmVkNCBsZWdhY3ktdHJ1bmsKKzM4NDA1IDBiZTE3MjU5YWFjODg2YzVjNWQ0YjgzNzI4ZDNmMGUxZDE0ZDQ4MmUgcmVsZWFzZTIyLW1haW50CiszODQwNiA3Mzc2NDlhNmM5MzVjOWYwYjA4ZjU2Y2M5MWIxYjA1M2RhMjAzOTlkIHJlbGVhc2UyMy1tYWludAorMzg0MDcgYjg0NmRkMWI5NzUxMGFlOTIzYmFmZjhjMDg2NzFjNDAzYzVkNmFjYyByZWxlYXNlMjQtbWFpbnQKKzM4NDA4IDFjMDcyNjE1ZTViODZlMzZkZmM5NDRiYTc0MzEwY2MwOThlZTA4NjMgbGVnYWN5LXRydW5rCiszODQwOSBjZDc0MzIxZWNkYzQ3YTcxMzE1OGI2NWVmYmQwYzI4MGQzOWJjYjQ4IHJlbGVhc2UyMy1tYWludAorMzg0MTAgNjllZDdlOTEyYjNkMjk3MDE2MWU4NzM4NTdiMGU5YjQ1ZGU2YjRlYyByZWxlYXNlMjQtbWFpbnQKKzM4NDExIGNjZjYyNzJlZWRmNDg0YzU3NDk2OGExNjIyMDY4ZDFkYjVkZGQ5MjggbGVnYWN5LXRydW5rCiszODQxMiAxYjc4ZmMyOTZmYzg5NTg4OWE5ZGYyYjE3ZTE4ZDdmZDZmNzk5OTU1IHJlbGVhc2UyNC1tYWludAorMzg0MTMgYzY4YmU4NjU5MDc1YmJjOTliYTg4NWU3NTdmNjFmNzFlOTY3Zjc5NSBsZWdhY3ktdHJ1bmsKKzM4NDE0IDNkMDBiNjQyNTUwNTdlY2M5OTU3MDhhMDAzNDRmNzE4Y2JkMzZlZjQgbGVnYWN5LXRydW5rCiszODQxNSAzZDk5YWRlZmJmM2MwNTBkNTY1MThjYTkxNGJiZTZmNzBlMmU0N2M0IHJlbGVhc2UyNC1tYWludAorMzg0MTYgMzIwYzc2NDNmOGU5ZWY5OTM0YzQwNjhiZTNiMTNlNDVlMTg1MzFmZSByZWxlYXNlMjQtbWFpbnQKKzM4NDE3IDQxNzRmOTc4ZTU2NDczMmQ0ZWE3ZTlhNmI4MDk1MGRjOWJlYzBmNDQgbGVnYWN5LXRydW5rCiszODQxOCAzN2IyZjExYzFhMDA1ZjcxZGNlOTI1N2M3NTZlYTYzZjJmMTY2Mzg5IGxlZ2FjeS10cnVuaworMzg0MTkgODI1OWZmM2VlNDkzNjEyN2ExMDdjN2E0NTQ2MWEyMmQzNDQxMzEzZSBsZWdhY3ktdHJ1bmsKKzM4NDIwIGNhOTE3OTljZWNiYTAxMzRiYzM5ZjhkMjUzNDI4OTNhMmNiZTk1NmUgbGVnYWN5LXRydW5rCiszODQyMSA5ZWU5OWEzNTU2OGQwMWZhOGJhZjYyYTNmMGUyZDY4ZjA1MDI0NjZlIGxlZ2FjeS10cnVuaworMzg0MjIgNDY1NzI0NDI1MzcwMDllMzc4MzRmMTUxYTg0NzUzZTBlNjFlM2E4OSByZWxlYXNlMjQtbWFpbnQKKzM4NDIzIDdlNTEwM2I0YjI4OWQ3YWJhODliMmVmZTk1NTUxYmYwMjMyMzQ1YmYgbGVnYWN5LXRydW5rCiszODQyNCBmMjQxMTdhMzYyOGFhZGU2MDNiMDE4YzZiNjE1MzBlNDc2NmEwZmIyIGxlZ2FjeS10cnVuaworMzg0MjUgOWQ2NmZiYTc4NDQ0ZjFiMjE3ZjY2NDEyNWRkMTA3NDAzM2IxMTQwNyBsZWdhY3ktdHJ1bmsKKzM4NDI2IDdjOGYzMzc4ZjZmNjFhZWU5YTc0YTc0NTFlMTZhNWUzYTczNWFlMWQgcmVsZWFzZTIzLW1haW50CiszODQyNyA4MzViNjQ1YTE2OGY3NGMwMWE2NTg3ODc2MTJjYjI0MDhmNmZkMmY1IGxlZ2FjeS10cnVuaworMzg0MjggMWMyOTQzZjk1NDY4NjM5NjAzYmEwYWZmMzJjM2UyYjY3MWQ0YjM4MCByZWxlYXNlMjMtbWFpbnQKKzM4NDI5IDYzMTRlOTRkMGQzNWQ5N2JhMmRiODNhNTczMzMyYTM2Njc2YjUyZDEgcmVsZWFzZTIzLW1haW50CiszODQzMCA2ODU4YzI0ODQwMTA4MjEzMTAyYjBhZWI2MGI5MDk5OTQ4NzQzMWM0IHJlbGVhc2UyNC1tYWludAorMzg0MzEgMDI4ZjkyZTQ0YjQ4MTQ3ZmJmMzQ1NzY0OTcxNjBmYzdmY2E5ZmZjMSBsZWdhY3ktdHJ1bmsKKzM4NDMyIGEyNGU3MGY0Njg0YjFkMGJmNjliOTAxMjVlODljMjU1ZmY3YTVjMmIgbGVnYWN5LXRydW5rCiszODQzMyBjZDA0ZjJkMThhNmZjY2Y5MTgyNDBmODgwYmEzMDU4Yzg4Y2Y2OTBhIGxlZ2FjeS10cnVuaworMzg0MzQgYzg3OGJkMDFiODFhMTYzNDdmNjZhNjBjNjQ5ZDcwOWQ0M2IxNTBlZCBsZWdhY3ktdHJ1bmsKKzM4NDM1IDkzZjI2NjVlYWQ1ZTJkY2RlYzFhMDY5ZGI3YjE1ODVjZWUzZTViNmIgcmVsZWFzZTIzLW1haW50CiszODQzNiA2YTI0NDBkMDVmNTBjMzI3MmU2NzNmODIwNzY0ZjVjZDJiMWU2N2FjIHJlbGVhc2UyMy1tYWludAorMzg0MzcgM2MxNDRhM2M5MTFhN2JlMWJiNDlhMzQyOGRmYWMxZjAzYzA2NmI3MyByZWxlYXNlMjMtbWFpbnQKKzM4NDM4IGU2MWFhODYyMTViY2E3OTc4M2ZjMTIxZTk4MjExYjllY2QxMzhiNGMgcmVsZWFzZTIzLW1haW50CiszODQzOSBiYjdmMzZhYzlmM2E4Nzg4OTcxZTZlMmU2MGY4M2VkYmU5NzNiMjRhIHJlbGVhc2UyNC1tYWludAorMzg0NDAgMjllNmJkNzA4ZmU3NWQzNjQwZjJhMzY0ZTNkMTdkNDI4OTliNGJkZSBsZWdhY3ktdHJ1bmsKKzM4NDQxIDQwNDBhYTIxNmI4YWIxNmZjMDljYzQ4ZDBmNmMzM2FkYzdhN2Q3OTQgbGVnYWN5LXRydW5rCiszODQ0MiA3YTEyNzdmYWQwNGU5MjY1N2ZjOTc4Mzg0OWUyMGIzYjU2MDAwODhhIGxlZ2FjeS10cnVuaworMzg0NDMgZjc3OTY2ZGE2ZGU1ZGJjMmM4MDE3ZmM3ODdiYjg1MzYwN2U5ZjVlMyByZWxlYXNlMjMtbWFpbnQKKzM4NDQ0IDg5MWMzMWRhZGE0ZWI5MjUxMWJiZmYxZmVjNzc4MGUzZjMxZTI3YjcgcmVsZWFzZTIzLW1haW50CiszODQ0NSA3MDViN2ZiOTAwNTZjYWVmYzZiNGRlNmEwMjI2MTE4ZGJjZjMwNTlmIHJlbGVhc2UyMy1tYWludAorMzg0NDYgMzdiNmRkMzg4NTZkZGUzODg0MjE4OWVhM2M1ZjkwMmU5N2Y0NjNhNSByZWxlYXNlMjMtbWFpbnQKKzM4NDQ2IGQyMjg1MDk0MjQxNzJmOTc3ZWRhZDRmNzg2MGE5Yzc0N2NkNjU1YzggcmVsZWFzZTIzLW1haW50CiszODQ0OCBmZjNjYTY1NmMyODFkZWJmZDM2MGYzN2QwMjAyZjUzZDEzMWM0Yzg4IHJlbGVhc2UyNC1tYWludAorMzg0NDkgODliOGNjZjE0YzBjMDE1ZWU5YzY3OTczNDQ2ZDU4NjFiOWFkODBjMyBsZWdhY3ktdHJ1bmsKKzM4NDUwIDljNjZhYjU0YzFlY2ZmOWViZGVlNjAxNTczYjUzMWU3M2YzZjlmOWYgbGVnYWN5LXRydW5rCiszODQ1MSBlNjdiNTg3ZmVkNzc5YzIxMTMzOGYxODU5ZjJlMDM5ODIxZjJjOWFmIGxlZ2FjeS10cnVuaworMzg0NTIgM2MxNzJjODI2ZWVkMzY0ZDNjOWYyYzk4MjQ4N2FhNGQwYzkxNmY3ZSBsZWdhY3ktdHJ1bmsKKzM4NDUzIDE5MzI3ZGI3NWQxYzkyZTM2YzM2MWJkMTE5MmIxZWY1NDU3NTk5YWYgcmVsZWFzZTI0LW1haW50CiszODQ1NCAzNjllOGU3MWVhMzM5MTY3OGFhZGMwODRlMjY4OGExNDRmZGJjZGY2IGxlZ2FjeS10cnVuaworMzg0NTUgNDU0NWExNTRmYWMxNTgzYmU0MWJjNzk4ODgyYmMwZTJiYjYxMTJmNCBsZWdhY3ktdHJ1bmsKKzM4NDU2IDNmZGZiY2I0MDEzMGNlM2E1NDNkNWU5N2NjMDllNDYwNzAxYTQ5YTAgbGVnYWN5LXRydW5rCiszODQ1NyA3N2ZhMzBlN2YxMmIwNmQzNmM2OGUwZWMzNTA4ODU3YzY2MzM5OTdjIHJlbGVhc2UyNC1tYWludAorMzg0NTggNjA3YzQ4YjVlZmQ3MjYxNTUwYWJkMjE5ZjkxZWE5YjZiNzIwZjRmNCBsZWdhY3ktdHJ1bmsKKzM4NDU5IDVjMjYwODUwNDk2N2EyYTE3ODRjM2M2ZDE0MzNlYmNjOGRkMzU0MDMgbGVnYWN5LXRydW5rCiszODQ2MCBjYTdjMThlZjhiZGMxMDJjYjY0ODQ1MjU4YzE2MzBmMGZiZjcyNmI1IGxlZ2FjeS10cnVuaworMzg0NjEgY2I0N2Q2MjJhYTFlMmZjMTE5ZmNhZGNiNDlkYjMxOTJlYTIzYWM4ZCByZWxlYXNlMjQtbWFpbnQKKzM4NDYyIDBhNmU3NzlkMzQ3ZDZmMTc1ZTI5ZGNjYzA3Y2M2MTA3MWZkMGM5ODUgbGVnYWN5LXRydW5rCiszODQ2MyA4NmFiM2E3NWZmMDg2Yjk2ZTRkN2ZhYjFjY2EyNmM2MTUwYTRiYzc0IHJlbGVhc2UyNC1tYWludAorMzg0NjQgYjk0ZjIyNDczODhlOTJiZDBlOWExNzM3ZWUwMDBjYWZjNDdlMTMzNSBsZWdhY3ktdHJ1bmsKKzM4NDY1IDlmMTgzYTI1OGJlZDBlZTlmNjJiM2E0MDUzZjI2MDgyYjc3NDQ2ZDggbGVnYWN5LXRydW5rCiszODQ2NiA3ZTdlODZmNDUyNTVhOTU5NDgyMGZhZGU2YmY3OWRkNGZlZDRmNzk3IHJlbGVhc2UyNC1tYWludAorMzg0NjcgZTllYzJjZTM0MGZkYzQ0MjBkMzYxZjUzODJlYmJmYzE1MTA5M2JkNyBsZWdhY3ktdHJ1bmsKKzM4NDY4IDcwY2IwYzNmZTRhNzQ3NWUyZjllOTcyNGU0Y2IzNDlhZmVjZGRhMGQgbGVnYWN5LXRydW5rCiszODQ2OSBhODk5ZDY5MGYyNjQwNzRmZWI1YTBiZTNlNGVmMjBlN2QyYmRhNTAwIGxlZ2FjeS10cnVuaworMzg0NzAgZmYzZGVmNzdiMTI5NWYzMzI2OThjNmEyMzgxYTBiYjE5YWZjYzYxMSBsZWdhY3ktdHJ1bmsKKzM4NDcxIDFhZTJjM2I2NmU1N2EzNDYzN2Y5ZTQ4M2FlYjc0MTI2YjZmNzJhMDMgbGVnYWN5LXRydW5rCiszODQ3MiBmYTUyZjFmZmMxNjExNTU3NTA2OTMxMDg5NWMwZDI1ZGY5Yzg2YzZmIGxlZ2FjeS10cnVuaworMzg0NzMgMzc2YTcxZjg5NzliYTFkNTYzYzhkOWFjODU2MWJmYTAzMjE2YjdlNCBsZWdhY3ktdHJ1bmsKKzM4NDc0IDMyYjg5NjA2ZjBjZGExN2FlNjRlY2NhNjQ1ZTFlM2IxNDdmNzY0ZmUgcmVsZWFzZTI0LW1haW50CiszODQ3NSA3ZjdjM2RmYmE5ODU2MjBjNmM0OTAwMTc3ZTEyOWQ0NzJhZTM5MDA4IHJlbGVhc2UyNC1tYWludAorMzg0NzYgMWE5ODk4M2U1OTYzMGRjYzBhZWU4MDM5MGNjYzMxNjk0ZTFhYzlmMiBsZWdhY3ktdHJ1bmsKKzM4NDc3IDdmYmE1Y2NjOTYxZTE0YWQ4ZjEzYjMwZWFlNzU2OTI1MmJjZjQ2YjAgbGVnYWN5LXRydW5rCiszODQ3OCA2NzkzN2EzODUyZmU0NDgyZWQzNmM5Y2VjMDg5YzJmODczZDljZGMwIHJlbGVhc2UyNC1tYWludAorMzg0NzkgNWU3YWRlZDMyNTFlZDJiZWQ5YWY1ZGYzZWZlMzU2NDNiMzEyNjYzOSBsZWdhY3ktdHJ1bmsKKzM4NDgwIGQ4MDRhNTBhMjBhYjUyNzllNzA4ZWNjMjhmMjJlNjIwYjA4NjA5NTcgbGVnYWN5LXRydW5rCiszODQ4MSA4MDk4YzdjMjcwOTcxZTJkMmEzMjBiNWJiNjk5MGU5ZjA1ZmY5ODBjIHJlbGVhc2UyNC1tYWludAorMzg0ODIgMjRhMzMzNzQxY2VjOTlhMDljOWU4ZTY3NDU3MmM2ODBlNTFiOGM1NiByZWxlYXNlMjQtbWFpbnQKKzM4NDgzIDdkYWUxYTgxY2VkODM4MDVmMjg2OGRmYjY0N2ZmZmQxZGUzMThmMGYgbGVnYWN5LXRydW5rCiszODQ4NCA3NzcwM2VkNTQzYTEwZjJkMWFhYTJjYjg4Mzg5NWJjYjAzMWVjYWRlIGxlZ2FjeS10cnVuaworMzg0ODUgZDQzOWM3NDhiNDU0NTFjZGI0NzYyNzM4YWQ5MGFkZjc5YTI3YmQzYyByZWxlYXNlMjQtbWFpbnQKKzM4NDg2IDhiNGRkMmMxYzJhMDYzZjAzYjcwMGE3NDg4ZTRmOTdmZDA3OWZlOTAgbGVnYWN5LXRydW5rCiszODQ4NyA0YjEyMDdjYjAxZWE2NmZjYzcyNGZiNjU3Y2U2Y2Y1YjAzMzZiNmQ0IGxlZ2FjeS10cnVuaworMzg0ODggODEzMDMwZTRkN2IwYTFkYWNkZTQyMWE0NjM5ZTZiMmRkOGNkZjZiNSByZWxlYXNlMjQtbWFpbnQKKzM4NDg5IGM2MGZkZThiMDEwNmIwOTg5MmM1NDQyNGRiNmVhZmZjMzdhMWI3ZDkgbGVnYWN5LXRydW5rCiszODQ5MCA3YzU3MzI2NTJhMjNjYmQ3MWU5YmY2ZGNhOGI1Y2U1NzMwMDlkM2VhIGxlZ2FjeS10cnVuaworMzg0OTEgNjE4Y2YyNGMzMjlmOTlmZDViMDE3YmIzYjA3Y2EzMWFiYjNjOWE4NyBsZWdhY3ktdHJ1bmsKKzM4NDkyIDA3Y2YxYTE2NDBkYTQxMjM0OWRmNDcwNzdjOGIxMjUzYmMyMzEzZTkgbGVnYWN5LXRydW5rCiszODQ5MyBhNGQxMzk3NGY2ZWI3YzRkZjkwMTA0MTAyMDI1YjRlM2I0MGRiZWE3IGxlZ2FjeS10cnVuaworMzg0OTQgYWM2ZGZjNjdjNzdmZjZkMWQ4YWNhNjFjMTM5ZjZhYmM2ZjE4ZDk0MCBsZWdhY3ktdHJ1bmsKKzM4NDk1IGEzNmM1ZmQzMGUyMTI3YWUxMmRkNTM5ZjY2OTQ3ODdlOTNhMWYwZTEgcmVsZWFzZTI0LW1haW50CiszODQ5NiA5ZjAyMjc2ZDU0Y2I0ZWMzMmVjMzlhNTI4MjE0Yjk5OTVmMjM2MGM2IGxlZ2FjeS10cnVuaworMzg0OTcgMDM4NmNjMWVlOTY0ZTRkNDg3ODQyN2VlM2FhZmM3ODdjZjJlMWUwNSBhc3QtYnJhbmNoCiszODQ5OCBlMGY0ZWI2NGQwMDM5MWUzYzQ2YjVmMjg5MDU4YjI5ZmYyZmNhY2VjIGFzdC1icmFuY2gKKzM4NDk5IDI2NzZlMDVjMDFmMjFhYTg1Y2UxY2JlNWM3ZDVlYjdlZGQwODg1ZDYgcmVsZWFzZTI0LW1haW50CiszODUwMCBjOTlhZTg2MzVmM2I1NGRiODgzOTA0ZDNhYmNkNzMwZjEyOGI4YmY2IGxlZ2FjeS10cnVuaworMzg1MDEgMGRkMTQ2ZmVkOWRkYTNjZTNmYjlhY2Y5NTFlZDgzMTIxNjUxMzU5OCBsZWdhY3ktdHJ1bmsKKzM4NTAyIDU1NmY2ZjEwNTZhOGY2ZDVkMDNhMjhlYmZmNGJjMzNmOTc0NTNlN2IgbGVnYWN5LXRydW5rCiszODUwMyAxZWRlYTRjMmIwMTFiNTNhZmJiYjUzYzkzYzQwMjAyOWIzMjljYzQ3IGxlZ2FjeS10cnVuaworMzg1MDQgNTE2YmI4ZmQ3NWI0YmQ1Nzk4MWFjZjFhNzdmY2NlMzMxNzhiYjBmZCBsZWdhY3ktdHJ1bmsKKzM4NTA1IDc2YzlhYjg1ZjVhODg3NDUyNDY3ZmIyMTUzMmU0Y2QxMWZmMmZhMzMgbGVnYWN5LXRydW5rCiszODUwNiA1ZmRlMTdiMzU0NzI1NGJhYmE2NDk5OWQyMTAxOWU2NDI5OWNlNWUxIGxlZ2FjeS10cnVuaworMzg1MDcgYzVhNDk4YzEwNzIzNTk4YjliNGYxOTc0YzZhZWZjZTlhMTZlNTlkOSBsZWdhY3ktdHJ1bmsKKzM4NTA4IGZjYWNmOWQ0YjhmMGZhZWI3NTYyZjk2Y2U4NjhiMTgxNTg0ZjU3M2MgbGVnYWN5LXRydW5rCiszODUwOSBkMjU5OTg0OTYyMDY1ZmU1OGI4NzZmNDU1ODIwZWRkZDBjMDQ2MzVjIGxlZ2FjeS10cnVuaworMzg1MTAgM2U3YTIwYzI5N2E2MGU2ZTdkZGU1MDFiYWZjOWY5ZTQyZTNkYjcyYSByZWxlYXNlMjQtbWFpbnQKKzM4NTExIDA4MGQ4Y2ZlZDlkNGE3YTU0ZDVjY2JlZWM3ZTBhYzU2MDJiMmJlMWMgbGVnYWN5LXRydW5rCiszODUxMiA2NjA0MTliZGI0YWVmOWJiNWRlMjg1Yzc2NWFlNmRlZTE0MmYwYzk3IGxlZ2FjeS10cnVuaworMzg1MTMgNDE2YjUzNGU5Y2M5NjhlZmZlYmNhZjE3NTViZTllM2NmZTM4MmY1ZCBsZWdhY3ktdHJ1bmsKKzM4NTE0IDc3YjU3MDg3ZmU0NWRiMjQ3MTc4ZjBlMjM1ZTQyNmY3ZTRkMjhmOTEgbGVnYWN5LXRydW5rCiszODUxNSA0MzI5YTFhMDA0NjlkMTYzY2E1ODRiN2UwODAzMTE3YjNlMjBkZjU5IGFzdC1icmFuY2gKKzM4NTE2IDg5Y2YyNWUzNjc5YWU5OWE0OTAyYmFjMDUwMTViZWI4NjI3NzdiNzAgYXN0LWJyYW5jaAorMzg1MTcgZDFiMzVhZjI5MjYzMGI2MDk3Y2Y2YjNiYTIwMzA1ZGMxZWRkZWJjMCBsZWdhY3ktdHJ1bmsKKzM4NTE4IGEyYjdjYjczZDliMWQ3MGViYjQ4MzUzZDY0Y2NlY2M4MjM1N2Q5NTQgcmVsZWFzZTI0LW1haW50CiszODUxOSA1ZjI2Mjk4ODExYjcxNDJhNmY3MzA4Njc4ZDZkNzJiZmY4NmMxNDU1IGxlZ2FjeS10cnVuaworMzg1MjAgM2QwYmIzYjA1ZDM5ZjBiZDE0ZDlmOGM2OWUxNzc1MTg0MWQ0NzRiZiBsZWdhY3ktdHJ1bmsKKzM4NTIxIDExNzZmMWJiNGUxYWVhMmZmNTE4MjcyMGM0NmFiYmY2MGMxZjFhYzEgbGVnYWN5LXRydW5rCiszODUyMiA0YTBjMjAyZWU3ODlhMzczZjY0N2RkMDA5MzQ4NjRlZTI5NzliMjc3IGxlZ2FjeS10cnVuaworMzg1MjMgZDNjZTdhOTQ2MTZlOTE3Y2ZlZGJlMDAzNmI0ZjEwZmIxY2I4MDZmOSBsZWdhY3ktdHJ1bmsKKzM4NTI0IDYzNmQ2ZDQzM2I2MjYzN2FlZDRlZmIxOGIzMDcxYmQ0MzEyZDc2MjQgbGVnYWN5LXRydW5rCiszODUyNSBmZDZkMzU5Y2EyNjYyMjFiN2FlZjlhNjMyNjZkZjVhZWVmMjIzNzJlIGxlZ2FjeS10cnVuaworMzg1MjYgYjVhMjVjNTZhODUyM2Q3Zjk0OGFiMDY2OTNmOTZjOTEwYzg1YTE2OSByZWxlYXNlMjQtbWFpbnQKKzM4NTI3IDYwNTBhZTg0MmM4ZjFjODhiOWFhYTIzNTYyNWVjNGQ4M2Q5ZDViYzUgbGVnYWN5LXRydW5rCiszODUyOCBjNTA1Y2JiMjZjZWRjZDA1MGY0NmQwYjdlNTFiNWI0MGZiYzQ1OTUxIHJlbGVhc2UyNC1tYWludAorMzg1MjkgZmEzY2RkNGY5Y2QwMTdhN2VlZDk3ZTE1N2YyNGM4ZDdlNjc5YTk4ZSBsZWdhY3ktdHJ1bmsKKzM4NTMwIGI0MzE1ZTY3ZWRmNTEwYjkyZjZiYjIzZTk5NTRhMjM2YTRjM2M2NDggbGVnYWN5LXRydW5rCiszODUzMSBhOWYxNjFlMzZiZjkwNDFlZTBkYTg2OWUxOWY1YThlNTQ1YjFlNTQ5IGxlZ2FjeS10cnVuaworMzg1MzIgZDQ4ZmEwYWZkY2JhZmQ1MGUxNDMzOTIxYjU3ZGM4MjllYzZlZDQ0MyBsZWdhY3ktdHJ1bmsKKzM4NTMzIDEzYTk1MGEzNjI0YmNhYTJiNGQyMGIwZDRkNGQ5ZjU5NjZmMmQzZmYgbGVnYWN5LXRydW5rCiszODUzNCAxMWZjZGJiMjc5ZGU5MmFlZmFkODkzZjZkNjIxNzEyZjk4N2JiN2JjIGxlZ2FjeS10cnVuaworMzg1MzUgZDk5MjdhNjVmNWY5MmUyNzZkOTIyODZlNmM0M2Q5MzFjMTExNmRkOCByZWxlYXNlMjQtbWFpbnQKKzM4NTM2IGNhYzMxYjRiNWU3OGQ0ZDI1Nzg5ZGEzNTA1MzgxZTBkYWRmODNmNDggbGVnYWN5LXRydW5rCiszODUzNyA4NjFiZTljZDA0ZDdlY2Q0OGZjM2VjNDBjZjdlNGNlYWU4NDY1MDkwIHJlbGVhc2UyNC1tYWludAorMzg1MzggNGFhZmIxYzlhNzBkOTAwZTg3MWVlZTMxMzQwNzc1NzFiMTVjZjg3YSBsZWdhY3ktdHJ1bmsKKzM4NTM5IGU0OGI1YTYxZDgwYmQ2ZWJkNTVmYThkMWZmYmZiOTdiNjJiYzJlMWYgcmVsZWFzZTI0LW1haW50CiszODU0MCBhNmQyMzE1MTA5YTRmMmFjOWFiZjZkYjg0NTE3YmNhOTMyMjU3OTBlIGxlZ2FjeS10cnVuaworMzg1NDEgMmZkOWI4NWJhNjVmZGVmY2Q1ZjJmZjBkOGQwY2ZkNTFjZjRlYWMxOCByZWxlYXNlMjQtbWFpbnQKKzM4NTQyIGU2NDIyNTI1YzI0MDMxODk1Y2Q0OTExYTc5OTBlYTk4ZWQwYjQwYmIgbGVnYWN5LXRydW5rCiszODU0MyA3NTU2NDUzMGY1MGMxZWZiNDA1ZGZiOTI3NjY4Y2ZhZTY3OTJmZTAyIHJlbGVhc2UyNC1tYWludAorMzg1NDQgOTE4YmM2ZDU2ZDI2ZjY2MTI1ZmY1NGY2OTI0YTUxY2M3MTc5YzNmNiBsZWdhY3ktdHJ1bmsKKzM4NTQ1IDlmYTc2OGE5OGM1Y2EzNjFiODA4YzI2MmNiYTZmMGU4NzIxZmM5MTggbGVnYWN5LXRydW5rCiszODU0NiBiNDA1ODYxMjliYjA4NzJiNWUwYzA0YmMxMTc0NWUyNzkwMDZlZTY5IGxlZ2FjeS10cnVuaworMzg1NDcgOWQ2MDg0MTljZGY4ZDUzNmNlZTk0NTVkMjFhZjNhM2VlOTQ5ZTU0YSBsZWdhY3ktdHJ1bmsKKzM4NTQ4IDM3ODU2MTBmZjc2MzAxZjRkZjk5YjYxZGNlZWY4NjE2YThmMGJlZWIgbGVnYWN5LXRydW5rCiszODU0OSA0NjMwMGIxYWEyZjY4MjVmZGZjNDEyZDM3MDk4N2E2NjNlYzhhMWY4IHJlbGVhc2UyNC1tYWludAorMzg1NTAgNDgxMmY2YTdmNzM1NTY4M2IyMmI2MmFjNzNhYjBjYTVjODE3MThlYyBsZWdhY3ktdHJ1bmsKKzM4NTUxIDhjMzU2M2QwOGM2MjNkZWE4Y2JmYzc5YzI5NThhNzgyZmI5ODY3OWMgbGVnYWN5LXRydW5rCiszODU1MiA5YjNhMmM0MzAyYWFjMDZlMDllOWFlODU2ZmE0MmUzMjFmZTcxYWUwIHJlbGVhc2UyNC1tYWludAorMzg1NTMgMGQ0MTA4ZDNhM2E4Yjc3ZGZmNThlMTM1MWIwYjE2YzM0ZmQ1NzBlMCByZWxlYXNlMjQtbWFpbnQKKzM4NTU0IDRjNjZjMTdjNGIyODA5YjM0NGU1YzdmNGVkMjk0NzA0MTZkNTg0NTggbGVnYWN5LXRydW5rCiszODU1NSBkYjdhODMxMGIxOWE5NGQ2MTdhOTVhZjBmZTQ3NTE5MTQ2ZmZhZGIzIGxlZ2FjeS10cnVuaworMzg1NTYgMDg1YmMyN2Y5MmI3NTE5YWYzMzZhODNkNjM0MzMxZjY4MDg2ZmQzMyBsZWdhY3ktdHJ1bmsKKzM4NTU3IDAwZTQ3ZWIxMzZiMmMwOTUxNTFiY2IyNTc0ZDM3MTExZjMwZWZmZmUgbGVnYWN5LXRydW5rCiszODU1OCA3YTFhOGVjNmRjNTM0NGMwZDAyM2IwMzg3YTY3YTJkOWU2ZmI4ZjM0IHJlbGVhc2UyNC1tYWludAorMzg1NTkgOGYwNDU2NDI1NzE1ODE1MTAxZDkwMTQ2NTAyMDhjNmI0MjIyMTU1YSBsZWdhY3ktdHJ1bmsKKzM4NTYwIDRhYmYyMWJlMTdkMzU0MTk1YzA5YTM3MzMwOTEzZWE3YTM3MDcxZGYgcmVsZWFzZTI0LW1haW50CiszODU2MSBlOWZmYWQ2ZDg4MjI4ZWM4M2RkNzllZTRkMGQ5ZTEzOTMyMWRiMmMyIGxlZ2FjeS10cnVuaworMzg1NjIgNTFhZmI2ZTc3NDc0MDhlNmZlOTcwZTA3N2YxYWIxZWQ3N2I4YjIyMSBsZWdhY3ktdHJ1bmsKKzM4NTYzIDgxOTgyNTg0YzYxYmM1NjI0NmY1OWU2YjYyNWY3NmFhOTE1NWE4YzkgcmVsZWFzZTI0LW1haW50CiszODU2NCA0ODEzOTc2ODNlYWNlZjBlOWIzYTgxYTg1MGRmZjQ5NjMwOGYyZGRiIGxlZ2FjeS10cnVuaworMzg1NjUgZWQ2ZWMwMDBhMTM4ODk3ZTVjMTdlNjViN2M1ODU0M2NkNDc4ODVlMiByZWxlYXNlMjQtbWFpbnQKKzM4NTY2IDkwMzA0NWE3MGMzZWI2MDQ1YmQ4ZjBhZWJjYzZmYzBjNWUyODZhM2YgcmVsZWFzZTI0LW1haW50CiszODU2NyAwYzQwODAzZTVlNGQ0MDhlMmM3ZjE3MmZiYTFjNjJmY2U5ZThmYzA4IGxlZ2FjeS10cnVuaworMzg1NjggZjg3YThkMGRmMTI1MmJiOTE1NDhlMWQ0YmIxZWMwYmQ2OWJjMzY5NiByZWxlYXNlMjQtbWFpbnQKKzM4NTY5IDQ5ZDdiYjJlOTZkMmY1Y2JjY2VhMWU3NDMyNzMwZTk0M2UzMGVlN2YgbGVnYWN5LXRydW5rCiszODU3MCBhZTA2MWZjNjMxOGRjZTA3MjlmM2Q5NWY0MjczNTM3OWVjMTg0MmUxIGxlZ2FjeS10cnVuaworMzg1NzEgZWFjMDFjYmNhYWRhOWJiZDdiZmQ1NTAzYzJjMDU0MTY5ZDM0MGVhZSByZWxlYXNlMjQtbWFpbnQKKzM4NTcyIDFhYzI0ZTkxODNlNTE3N2Q2MDgyYTc2Y2U1ZjNmYTgyN2YwYjliYWEgbGVnYWN5LXRydW5rCiszODU3MyA0ZWE5ZGUwMWQzMTE1NmRhNzI3N2YyYWE3OGY2ZjkxMDkxY2M1NmUxIHJlbGVhc2UyNC1tYWludAorMzg1NzQgYzJiNTkxZDdmMjllZmRmOWYzYmNlNTYwZjFjZjE0ZTZmOGI0MmQyZiByZWxlYXNlMjQtbWFpbnQKKzM4NTc1IDA3MjVmMGQ1YTVjNzU4OGFmMDk1NTBkNGQ3MDVlMzQ4ODI5ODgxNmQgbGVnYWN5LXRydW5rCiszODU3NiA4MTdlMjI1MDZmYThmOWM5NmNlNWNlOWI4YzkzZWU1MDNiZWQwN2VlIGxlZ2FjeS10cnVuaworMzg1NzcgNjA0ZmY5ODkxNWVjODE4NTQ2YjJkYWNlYmYwMWYyNjMwNmQyMzQyMSBsZWdhY3ktdHJ1bmsKKzM4NTc4IDlmMDc4ZDc2NjgwNDQ0Nzc0MjQ3MjU2NDRhOWMxY2NhYmYyZmMyYTUgbGVnYWN5LXRydW5rCiszODU3OSBjMDUxNzhmNDFkYjM5MDc4NWIzMjcxM2Q5MzY2NmFjNzVjMGI5NDc5IGxlZ2FjeS10cnVuaworMzg1ODAgYTBkM2Y3NzM1NDNkYjI4MWE3NjQ2NDg3ZTkxY2QzMjdmODVlNDcxOSBsZWdhY3ktdHJ1bmsKKzM4NTgxIDc5MzAyZTUwOTEwZWVjZTIwZjIxNDA2NTBiNDIyZjNlNjljOGFhMGIgbGVnYWN5LXRydW5rCiszODU4MiBhOTFhNDhjOWRlMDBjOWFiYTlmMmE2NmFlYmJkODMyNTg2MGMyYTExIHJlbGVhc2UyNC1tYWludAorMzg1ODMgNDFhOWNhODY2MDM4MjAzNjQ0YmFmYWE2NDIwOGExMTkxNTE2MzZmOSByZWxlYXNlMjQtbWFpbnQKKzM4NTg0IDg0ODU5YjRhNjJjNmVjZGU1NjY1MTgwMWNmNTQyNjU5ODlkZDM2MTQgbGVnYWN5LXRydW5rCiszODU4NSA1ZDBkNzZkN2IzMWZkODgyZTFiMWUyN2UwMmJkYTg0ZGFhMGU4MDYwIHJlbGVhc2UyNC1tYWludAorMzg1ODYgMTMwOWY2OWI0ZGJiZGU4YjdjNTcwNjUxMzE5ZDQ3YTU0Njg5ZWI5ZSBsZWdhY3ktdHJ1bmsKKzM4NTg3IDdkZTc2ZjM0YjNkYTJmMDk2ODVhMWY0ZjkxZGQ4ZTU3ZTJiNzNhYjUgbGVnYWN5LXRydW5rCiszODU4OCBmNGRhNDZiOTQ1NzA4OTIyMzViMTA2M2VmODllM2I4NGM5MjEzMmY0IGFzdC1icmFuY2gKKzM4NTg5IDk1YjY2ZDlkYjJlZTY1OWEwYzJhMjk5ZDNjNDE0YTU2MmU5NjAwY2EgYXN0LWJyYW5jaAorMzg1OTAgMzA5OGVmZTQyYTBmMjA4NmM0NDA1ODQ3OTQzOWU1NDA2ODZiNWYwOCBsZWdhY3ktdHJ1bmsKKzM4NTkxIDdkMmM4ZGFhNDAzYjYxOWNmZjcwYzhmNTcwYzY4YzM5MDUwMWUwZjUgbGVnYWN5LXRydW5rCiszODU5MiBkNjg3YThhMDlhNzJkNzRkNjQ4ZDRiODkwY2U2N2JhYTdhMTYxNTg3IGxlZ2FjeS10cnVuaworMzg1OTMgMGQ0NGQ5MDcxZTk3ZmJjMTA2MzljYTY0NWY0ZjMzN2IxZTFlY2E5OSByZWxlYXNlMjQtbWFpbnQKKzM4NTk0IGYxZmE3YmIyYmY5OTkwZjQwY2EwOWJhYmRlNzM0OGEzYjA5NDE2ODEgcmVsZWFzZTI0LW1haW50CiszODU5NSA2OTdiOWVlYzU1ZGE4MmM0ZDdhMGIzZDZkOTY1NTY2YWJlMmQ5YTQzIGxlZ2FjeS10cnVuaworMzg1OTYgZDU0NDlmMWY4NDBlY2Q0ZTI2NTJkZDI2MjRlODliMzRmOGQ1MGJlMSByZWxlYXNlMjQtbWFpbnQKKzM4NTk3IGYyOTAxMjE4MWNmMDE3YjhmYmE1ZmI4ZTc5YWEyYTI1ZjI0NzMwMmYgbGVnYWN5LXRydW5rCiszODU5OCBlNWQxOTAzMWEyOTVkNzdiZDg2MDBhNDUyOWVmYTg1NmM0M2Y5NTM2IHJlbGVhc2UyNC1tYWludAorMzg1OTkgNmI2ODc1ZWRmNjA3ZTMyYjU4OGNmZWRlZGUwODFjZmJlMmNlMDQ4OCByZWxlYXNlMjQtbWFpbnQKKzM4NjAwIDg0NzEzZDRiMTlhZjEzNmU0YTRhM2Y1NmMwNWY4MDc1MmU2OGI1ZTAgbGVnYWN5LXRydW5rCiszODYwMSA0NGYxNDhiZmM2Yjg4MTc1YWI2NzA0M2U2NmVmY2U5ZmNmNWYyYjkwIHJlbGVhc2UyNC1tYWludAorMzg2MDIgZGRjMjI3NmMyNDdlNjg2ZjhmMWEwODQ4MWJlY2ZhNmZhYmYzY2MwYSBsZWdhY3ktdHJ1bmsKKzM4NjAzIDUxNmYxNTUyMTU5ODRkYjNiNmE0OTRjNDg3ZWMxM2I1MWQxNWQ2MjUgbGVnYWN5LXRydW5rCiszODYwNCBiNTQzM2QzYzZkYzg4NDc2ZjIyODA5ZmJhYzQ4ZDQzMTU1YzkzNWUxIHJlbGVhc2UyNC1tYWludAorMzg2MDUgMjFlNjU3N2ZmMDc0ZTExNmRmNmE3MzIzMmU4ZGE5YjYzYmRlNjE4MSBsZWdhY3ktdHJ1bmsKKzM4NjA2IGIxMjJmZDkzYTViNTE2ZTAxOTBkZmIzNjJlN2QwMDU5MzMwZDBlOTcgcmVsZWFzZTI0LW1haW50CiszODYwNyAxNmNlZjA5YTgzNDJkYWNjYWZjYjg1ODE5YTJkYmZlMTcxNDE0OTNiIHJlbGVhc2UyNC1tYWludAorMzg2MDggOTkwNmU0ZGEwODZmZGNjZjQ0YzdlZmU1Mzk1NjQ1M2EzZDJjM2M2NyBsZWdhY3ktdHJ1bmsKKzM4NjA5IDUyYjY1MWE5NzUwZDVkYjM0Y2EwMjFlYTRjM2FlN2M2NDYxNTY5MDkgcmVsZWFzZTI0LW1haW50CiszODYxMCA0MzAzNTY4MzlkMjg1OTFlNjIyZmE4MjZmZTM2ZDg2MGFiODM3OGVjIGxlZ2FjeS10cnVuaworMzg2MTEgMmM3MzM2N2Y1NGVlZWM4OTYyNjM1YTBkMTY2NDAwNGYzMTgwMWJlMSBsZWdhY3ktdHJ1bmsKKzM4NjEyIDAzNDkyNTdlMWVkNTJlMWY3OTJmODYwNTcyYTkxOGJmNzYzNjg3MDUgcmVsZWFzZTI0LW1haW50CiszODYxMyBiMTQyN2NmZjJmODMyMTFiNzBhY2EzMmMxNDk4YTUzYzg5NDVmM2M4IHJlbGVhc2UyNC1tYWludAorMzg2MTQgY2ZhZTRiMTIwNmY4YWM5ZDUwYjBiNGY3NjJlNjc1NDEyMzBkYTU0MyByZWxlYXNlMjQtbWFpbnQKKzM4NjE0IDExOTVmOWJhMzQzOTA5N2NjNWI1YTM2N2UzYWUxYjQzZjE1N2IyNjQgcmVsZWFzZTI0LW1haW50CiszODYxNiAwYmUwNWViYTExNmQ4MTg0ZDg2ZWExYzMyOTg4MzMxZTY0YmViYTI0IGxlZ2FjeS10cnVuaworMzg2MTcgZWEwMjRhNGIyOWI2ZDExMTJmNmI5MTdmZGZkZjI1ZGZjNTgwMzY5ZCByZWxlYXNlMjQtbWFpbnQKKzM4NjE4IDFhZmVmY2YxNGYwNjM4YzNhNTU5MzY5MTNkZDFlNjk2ZGY0NjRkYjUgbGVnYWN5LXRydW5rCiszODYxOSBlODMzMDlkNDNhODJlOTlhNzUwMWI0OTg3YjI2MDMyMDdjNDkwMzMxIGxlZ2FjeS10cnVuaworMzg2MjAgZDM1NWRhMWQ3YzhmZDE5YmIyMDdkYjJjYWEzYzc4MDYyZjc0ODI5MCBsZWdhY3ktdHJ1bmsKKzM4NjIxIDY1ZThhYWNiMGU5NGIxNjIzOWNlZDgyYjQyMTEzMDM2YzM5OGJmZWYgbGVnYWN5LXRydW5rCiszODYyMiA4MWI1YTEzZmEzOGEyNDkwMjczZGE2NjExYzBjMGRlZGJlZThiNWIxIGxlZ2FjeS10cnVuaworMzg2MjMgOGQ4YmE2Njc4MGVkNzc4NTAyY2UzOGI2Njc0YWVlM2ZiMTA0N2FhMSByZWxlYXNlMjQtbWFpbnQKKzM4NjI0IDQ1M2Q4OWVhYjczOTM2ZmI5MTVmOTg5NTc5YzRhYjJiMmMzZjJhZjcgbGVnYWN5LXRydW5rCiszODYyNSAwYzgyYTdlZjk1NTRkYWQ5ZmFjODc5Mjg4ZTBhNzdlNzI1OWU2M2YyIHJlbGVhc2UyNC1tYWludAorMzg2MjYgM2JiNzU5NDk4NzY3ZDY5MGZlNmYyYzI5Y2JiZGNjMjM4MjVlMTUzOCBsZWdhY3ktdHJ1bmsKKzM4NjI3IGZkZjJmOGZhZDhkNDU3MzYzODZjYTM4NTY5YzAwN2M4MmJhOTYzMDYgcmVsZWFzZTI0LW1haW50CiszODYyOCA2ZjliMzZmYzExMWM5YWZkYWQ0MmY5ODVjMzEzOGZjMmY4MmZhOTgyIHJlbGVhc2UyNC1tYWludAorMzg2MjkgYjhkOTA1Y2E5ZTk5OTk2NmQ2NzdhZTY0NTQ3NjRhZmJhM2E2MDYyNSBsZWdhY3ktdHJ1bmsKKzM4NjMwIDNkOTdlYjNiN2NlY2FmZjQ2ZmRlZTI2OTAwNWY2N2VkYTQ4YzhlNjMgbGVnYWN5LXRydW5rCiszODYzMSA3MmI5ZWI3NDIyNjMwN2JmMmFiYjZjMDM5ZDJiNjlhMmRhNmQwMDI0IGxlZ2FjeS10cnVuaworMzg2MzIgM2ZhMzQ3NTk1NDg3MjBiNmY5NjI2ZmMzYTk3OWUwYTU0Nzk3ZWExYiBsZWdhY3ktdHJ1bmsKKzM4NjMzIDUxODBjZmNjODdiZmU3MjY0MGU1Mjg2ZDAzYjEzZGNkNjcwMTIzMDEgcmVsZWFzZTI0LW1haW50CiszODYzNCBkZmEwOTdjY2JjNDlkYTQ1MzcwNjExNWViN2E5M2Q0MzI2MjJkYjgxIHJlbGVhc2UyNC1tYWludAorMzg2MzUgMjE4YTc2Mjc1OTMyZWQ2OGQyYTY3OTc4ZjI4ODQyZjliZjk2NzYxNCBsZWdhY3ktdHJ1bmsKKzM4NjM2IDY3OWMxNjExNTYxMzFjOWQ0NTcyYTA3NjcxMDE4NGQ3NDU3NGU4MmQgbGVnYWN5LXRydW5rCiszODYzNyA5NjI4MDBlZTMwZWY1ZjQyYTMyNWVhNjJiZTYwM2NjNGY1MGQ1MzFmIHJlbGVhc2UyNC1tYWludAorMzg2MzggMDRiYWE2NDRmZjAwMzM5MWRlYmZkYzJhNjdhMDI3ZGJhNDI5NWFlMSBsZWdhY3ktdHJ1bmsKKzM4NjM5IDExYjQzNTBiNTg3OTJkYTlmNzgxNzY1NjBjNTNjMzZjOTAwNjk2YjAgcmVsZWFzZTI0LW1haW50CiszODY0MCBlNTI3ODMzMWQ5YTkwNThmYWRhN2E0YjRhMTA2YzJjM2VjYzVkODcyIGxlZ2FjeS10cnVuaworMzg2NDEgNmYzN2QxMTYwMjYxMDk5MjgzNDdhNzBiNmRmNzkyMDA3MTUzMGJjOCByZWxlYXNlMjQtbWFpbnQKKzM4NjQyIDdmN2NiZGIyYzYxMTM3ZGFjYzRiYjZlZmY2YzQ4MTgxMWU0MjljNzkgcmVsZWFzZTI0LW1haW50CiszODY0MyA1Zjg5M2E0Y2RlNmZkOGQ2ZGRlOGIzMzgyODc3MTM3NzMyYWIxMzU3IGxlZ2FjeS10cnVuaworMzg2NDQgNTA1MDllZTk2MzY0YzdlODYyYjZjMDM3ZWJmZTQyOGUyMzVlYWNmOCBsZWdhY3ktdHJ1bmsKKzM4NjQ1IDMxM2VkMjgxN2Q2ODA5ZTMzZDQ0N2I5YzA4ODdhMTU4ZTczZjZmMmMgbGVnYWN5LXRydW5rCiszODY0NiA0ZGI1ZWE5NTc3YmFiZGM3Y2I4NGJkOTRjYzg3NWY1ZTA4ZDlmNTZmIHJlbGVhc2UyNC1tYWludAorMzg2NDcgMDc3NDUxNjZmNTcxM2JhNTZjMWI4YWU4MTJiOWFmNGZiYzYzODg4ZSBsZWdhY3ktdHJ1bmsKKzM4NjQ4IGZjYjUwNzQxNGM0MTQ4ZjQxYmVhMWU5YmQ5MDY4YTZlMDJkNzdmMDMgcmVsZWFzZTI0LW1haW50CiszODY0OSAyM2NhMjYzMDY1N2M0ODUwOWMzNWI2YjM4NDVhNmIwNGI0MGI2NzI3IGxlZ2FjeS10cnVuaworMzg2NTAgNmE2NDk4MTYxMjRhN2NlNDVhNWExM2M2OTg5N2FjNDE5NWMxNGE3NSByZWxlYXNlMjQtbWFpbnQKKzM4NjUxIGJjMTU5Mjk2ZDI1MzU2OTZkMDQwODUxYWQzOGI4ZTRjMDI5ZjZlZGYgYXN0LWJyYW5jaAorMzg2NTIgNTExZTdhOTNhMWU5ZjEwNWU2NDIyY2FhOTM1NTI4NWI2ODVmM2E4OSByZWxlYXNlMjQtbWFpbnQKKzM4NjUzIDg0ZWI1ZTE4NTU0NzYxNjZiZjI5ZWM3ZDBmYjlmYzk4MDFmYWY3YjAgcmVsZWFzZTI0LW1haW50CiszODY1MyAzMzNjZjMwMzU0M2I2ODBlYzVlM2ZkZjdlOGM5NjYxZjk0ODhhNTBlIHJlbGVhc2UyNC1tYWludAorMzg2NTUgYmViMWNiNzg1ZTFkNTQwNmNiMDM1ZjUyZDUyYjRhMzRlY2M2N2Q4MSBsZWdhY3ktdHJ1bmsKKzM4NjU2IDdkNzQwNGE2YTVlYTNkMjQzNzcxNmNlZjE5Y2I5YTE2YmM2MjQzZjIgcmVsZWFzZTI0LW1haW50CiszODY1NyA3MTllYjEwMmVhNDQ4ODRmZmI5OTYyY2VlNDVhMGI1YjUwMTk5N2YxIGxlZ2FjeS10cnVuaworMzg2NTggZmIzOWY0ZWVhZWE0NzYyNzVjMDE4NGE3MDcwNWQ4YzBhZGMzZDc3OCBsZWdhY3ktdHJ1bmsKKzM4NjU5IDJlZTU3NWI5YjYwZTVkMmE5NTBhYWQzZDQ0Yjc4YWI2ZmQ1Yjk5MTIgbGVnYWN5LXRydW5rCiszODY2MCBmZGU1YTFjNmE0OTdlNTQ1NmQ2Y2Y3NTVmMTM5MzRhODAxYzlhYjYzIGxlZ2FjeS10cnVuaworMzg2NjEgOWQ4MGU2MzAwNGNkYzZjNTE5NzhiMjJhYmNmMDI5ZWMzNWQ5MTZiMiByZWxlYXNlMjQtbWFpbnQKKzM4NjYyIGEzMDVmZWRjYTFiZmZmNTM0YjZiNjc2NThkZDgyMjQ3MjkyNmNlMTEgcmVsZWFzZTI0LW1haW50CiszODY2MyAwNGZhMTMyYzkwMjNkZWMwNGFlODFjYzM2OTA2MDdkNjRkY2VkYTUxIHJlbGVhc2UyNC1tYWludAorMzg2NjQgMzM2ZmVhNDA2ZmNmMDZiODhmM2ZmZWFiNzE1M2ZjNzUxYzJlMTRiZCByZWxlYXNlMjQtbWFpbnQKKzM4NjY1IDRiY2UyZTUwOTYxZTFjYjgwZGRmYjkyZjhhNzJkMWJlNDE0ZWY2MmIgbGVnYWN5LXRydW5rCiszODY2NiA5OTdiMjU1ZTFjY2M4OGJlZjkxODBjYWI5MDQ4NzMyNzc2OTcxNTQ3IHJlbGVhc2UyNC1tYWludAorMzg2NjcgNzYzMDBjNWZiY2VjOGY1ODc4ZjVmMmIzYjcxMjZlYmJhZmNhMzYwOSBsZWdhY3ktdHJ1bmsKKzM4NjY4IGZkZWU4N2I3MDM3YTNiNjAwM2VjODJlMjBkMGJiYTJlMWNlZThlZGUgbGVnYWN5LXRydW5rCiszODY2OSAwYTZhNGNjZjVjY2Y5ZmRkMGE5YjYzN2U5ODk0ZDQzZjAzYWVkNmI2IGxlZ2FjeS10cnVuaworMzg2NzAgMjNlM2RmYzBjNjQ3YThmNTBlYjZhYzE5NDVlMmU1NWU5MmY3YzMwZCBsZWdhY3ktdHJ1bmsKKzM4NjcxIDJiMzhlZDY2YzY3ZmY3NjllMGY0NGQ2ZDJkOTQ0YjNkZTk2NWY1NGIgbGVnYWN5LXRydW5rCiszODY3MiBkYzZmMzE1ZjFmN2YxNWY5NmI5NWQzNGU5OTlmNTBhYzNhYjU1MDA1IGxlZ2FjeS10cnVuaworMzg2NzMgMTNjMWMzMzE2YzZmZGVlNDJhNGRlYWRlNmU0NGQ5MTU1NTk3YmEzNiBhc3QtYnJhbmNoCiszODY3NCBjZjQzMDJjMjFlMDAzZGI4YTczY2Y3MWUzMjI2ZTNlZjdjMjM2M2U3IGFzdC1icmFuY2gKKzM4Njc1IDZkMWVlOWRiMTU0M2VmMjQwMDZjN2QyZjcyZGM2ZDQ4NWU0YjA3ZTggYXN0LWJyYW5jaAorMzg2NzYgOWY0NTRhZjE3ZjdhMzhmYjcyNjUwMDY5MTMwZDlkMTM0YTliOTAzOCBsZWdhY3ktdHJ1bmsKKzM4Njc3IDNlMmVlMjE5NzI3ZDEwMGQ2MmNmYjEzNzQxMGI1MDQ3ZjlhZjFkNzEgbGVnYWN5LXRydW5rCiszODY3OCBiMTRjOGU2MzEwZTcxMmU3NTZkYzIzNjQ5NzUyYTI1MmZjN2M0YmUwIGxlZ2FjeS10cnVuaworMzg2NzkgOWFlYTlmOGJkYjJjNDc4MWQ5YjQ1ZDU2YzY0NDdmYzJmNzMzYjQ5MiBhc3QtYnJhbmNoCiszODY4MCAxMDdlMWU4YzhmYzdlNWEwZDE0M2JiNDIzNGZmMzE1ZmUwYmI4N2Y3IGxlZ2FjeS10cnVuaworMzg2ODEgMjNiM2U3OTA2ZTBmNjM4ZmE4ZjkyY2JjMjQxMmM1NjZkZTFkYTI4ZiByZWxlYXNlMjQtbWFpbnQKKzM4NjgyIGMwNmM5MGJlYTdkYjA3MDM5ZmUyZDZjOWNhYjJlNDAxOTA5YmRkZjUgcmVsZWFzZTIzLW1haW50CiszODY4MyBiYmI2MGUyNjljZThkYzUwODdjYmI4ZTQzZGZjZTY3MTBjNDc5MGU5IGxlZ2FjeS10cnVuaworMzg2ODQgM2RhMjFmZGMyZWU3MjIzNTVmMDYyN2RmZWU4YWUyMGVmZGIyMzA4NyBsZWdhY3ktdHJ1bmsKKzM4Njg1IGYzZjk5YWNhZTU5ZmY4NzBmYTFkMDQzYTRjYzJiMDM3MTNkYjRmMTYgbGVnYWN5LXRydW5rCiszODY4NiA0YzEzYjAxNDZiM2Y2YmI0MjQ2OTM1YTc1M2I2Mjg1MDkzODM1NzI3IGxlZ2FjeS10cnVuaworMzg2ODcgNmQyMDAwYmFmM2RlOWFhZWI0NjhkMWFmZTFiNjc0ZTA5MGM5YWZkNiBsZWdhY3ktdHJ1bmsKKzM4Njg4IGYxM2YyY2JkZjRkZTI5YTVhNjk5OWNhMDBiMzdjNmM2ZjJiY2U0ZDAgbGVnYWN5LXRydW5rCiszODY4OSAwODUyZDE5NmI1OTA0M2VmZDkxYTNjNGU0MjhmMjE0MTRhYmJiMzQ5IGxlZ2FjeS10cnVuaworMzg2OTAgNzkzMzUzMWQwMmI0NjIxNDIzMjBiNTNhZGRlYjMyOTJhYWFlZWQ3NCBsZWdhY3ktdHJ1bmsKKzM4NjkxIDY5ZTEwZTYzNTdiZDc2ZjZjZjU5YWE2ZTc1MjhkOTNkMTVlMjZlMGQgbGVnYWN5LXRydW5rCiszODY5MiBjZWJmYmFiMDE3YTZlNjMzNTAyOTM2M2RlZTRjMjQ1MWI5MmFlNjY5IGxlZ2FjeS10cnVuaworMzg2OTMgNzE4YjBiNWE2NDE5ZjhlNWE4MDFkMzliNjVhYjFjZTQyMDMxNWNkNSBsZWdhY3ktdHJ1bmsKKzM4Njk0IDk5YzE2ZTQ0ZTVkNDZmNzQ2YzU4NjY3OGRkMDU4OGQwNzY0YzFjYTUgbGVnYWN5LXRydW5rCiszODY5NSBkNTVkZWFlNDMxMGRjMjNkMWE3OTgxMmZkMDVjMjJiMDFhMmRiNmFiIGxlZ2FjeS10cnVuaworMzg2OTYgOGYyMWVjMzI3NGYxYzQ2OWJiMTZmODNlMDFiNmY5NWUxNzdiMzQ4NyBhc3QtYnJhbmNoCiszODY5NyBiOGZmOWJjMDIzZTY3NTljN2ZhZjc0ZGQ1YmU1M2FkMTI0MTQ5NmYyIGxlZ2FjeS10cnVuaworMzg2OTggNGI5ZGY0ODU2ZjM3YTYzMDY1NzdiZTU2NjBlOTA0NTY0NTAzNDViOSBsZWdhY3ktdHJ1bmsKKzM4Njk5IDIzODBmOWQxZWJhYjk1ZWQ0YjBhNDljZTgyOWRhZmIwODY5ZDRlZjQgbGVnYWN5LXRydW5rCiszODcwMCA1NTQ3ZjkwMzAxMDk4MzQ1ZDJmOTk1NWUxYmFkMTI3MTEyOWZmYzhjIGFzdC1icmFuY2gKKzM4NzAxIDkxNTIzY2FlZTE4MzkwNWU2NDZkMDZmOWZiNDlkMGQ0MWUyZjgzYTEgYXN0LWJyYW5jaAorMzg3MDIgZTBmNTE5ODUzYTlmMjgwODYxMGY5M2MwZTA4YWE3NjdkYmRlMmY0NiBhc3QtYnJhbmNoCiszODcwMyA1N2M2YTZhODAyYTA4MzE2N2NlYmIyMWQyZjYyZWU1YmM5ZTkyYmJjIGxlZ2FjeS10cnVuaworMzg3MDQgM2M3YjE5Njg5NDc5ZDhhYzVkNDIxYWZmMjExODFmOTRkYTFmZjIwNiBsZWdhY3ktdHJ1bmsKKzM4NzA1IDhmYzhlN2E2MDcxYzUwNDE2OTAzYzg1MjYzYTU1YWFmZWExMzA3MTcgbGVnYWN5LXRydW5rCiszODcwNiA0OWUzMGM2YzkxYzhjZTVhZmJmYWViMmZjNDM3YTM0ZWJiNzAwMzYzIGxlZ2FjeS10cnVuaworMzg3MDcgYjAxNjIzNmRmYmQ5ZGQwMmNiZTRjYzNlNDU0NDU0MTI4NDZmMThjMCBsZWdhY3ktdHJ1bmsKKzM4NzA4IDI2ZjMyNzJkOWUxMTJlYTFlYWFjMzBkNjNiNDI4Yzc2NDUwNDhjMTQgcmVsZWFzZTI0LW1haW50CiszODcwOSBhNDEyNjM4OTUwYTEzYWQzNDBkYTk3YTY0YmJhNzAxMDM5OTk4NmI3IGxlZ2FjeS10cnVuaworMzg3MTAgNzIxZTYwZjQ1NGYzYzg5MDY1NGM5OWM3ZDMwMzUyN2Y3OGM5NzcyYSByZWxlYXNlMjQtbWFpbnQKKzM4NzExIDI5NTZkZjhlMGE0MDQ1YzBmZjEzYzZkZWE0MmQyYWZiZGNhYzE3NzAgbGVnYWN5LXRydW5rCiszODcxMiAwN2E0ZThkOGViNjkyMjEyZDkwZGQ0MDMyNGU5MTFiMDk4MDE3OTllIGxlZ2FjeS10cnVuaworMzg3MTMgNGVhYWIzODU2NmM5NGZmODQ5ZjQwMGI5Y2Q2OGExNzQ5YWJkN2ViZCBsZWdhY3ktdHJ1bmsKKzM4NzE0IDAxYmEzYjQwNDMxZjI5ZmVkNjI5ZTdhMjEwMTg1MDYyZmE0MDE4YzQgYXN0LWJyYW5jaAorMzg3MTUgZjFjNjMwMzMyMWQ3MGJjMzVlZjVkZjdkYWRjNjVjMjdlYzA1Yjg1OCBhc3QtYnJhbmNoCiszODcxNiBkNjlmZGU0MGM3MTljOTVjNmQ1MDU4NGIwNjA3YTk3MmM4MWJjZWY5IGFzdC1icmFuY2gKKzM4NzE3IDc2MTFkZjIxYTU5MDA5ZDUzNDBjMTcxNmJhNDEyNTc5OWFiYTlmYzkgYXN0LWJyYW5jaAorMzg3MTggOTNjYWE3ZGVjZWUzNjA2NTA5MzQxY2JjMzFhYzVhZTQwYzZlZDIwZiBhc3QtYnJhbmNoCiszODcxOSBhYjgxYzgzYTlhYzZjY2FhYWM0ZTI3ZWQxNmQ4MzZhOGYzZmEyNjZiIHJlbGVhc2UyNC1tYWludAorMzg3MjAgNjUzY2MwOWZkOTMxMDE2MjMxOGRhYWQ5NjUwMWJlMGI3OGFlYjk5NiBsZWdhY3ktdHJ1bmsKKzM4NzIxIDQ3YzU4MDNhYWI0NTgxYjk4NzdhMTBmYmRiODllYWIzOGUzNGQ0ZTMgbGVnYWN5LXRydW5rCiszODcyMiBlYzg3YTExNjQwZDAwMmJjMjZmMGUwYTRjNDRjMTc0OGYyNzdkODYxIHJlbGVhc2UyNC1tYWludAorMzg3MjMgZjkyZDg0NWY4NzAzMzM0ZDg4ZmExNThiZTBkN2JkYmYyOWIwMWIzYiBsZWdhY3ktdHJ1bmsKKzM4NzI0IGE1MGZmZTY1OTExYjBkNDk4ODBhNmExMDU4ZWYwNTgzNWU5ZGQyOGMgcmVsZWFzZTI0LW1haW50CiszODcyNSAwMGZmZGJmY2Q1YTkyNzg2OTJlZTZlNzExNTJkNTU2YmZhMGUyYTk2IGxlZ2FjeS10cnVuaworMzg3MjYgNWNhZjgwZjU1Yzg2MzhkOGY5NTUwNzQ3ZGFhNjY0NWFhYTgxOTdhMSByZWxlYXNlMjQtbWFpbnQKKzM4NzI3IDk4NWRkN2YwNjQyMDgxZWE5NGEzNGY5OTRlOWFkZDlmMmYxZDMwMDIgcmVsZWFzZTI0LW1haW50CiszODcyOCA0ZjA4MzhiNjhiYmJmMWRlMjlkNzY2YjNkZTM2MjVjMjk2OTFhYzVlIGxlZ2FjeS10cnVuaworMzg3MjkgYjcyZGY4YWVlNTZkYThmOWNkMjc2ZTg2Y2RiMDNlZTlhZGQwZjA5YSBsZWdhY3ktdHJ1bmsKKzM4NzMwIDI4ODkyZTY1MTJiYTZiOWI3MzE5NzYwNmYzZjJkOGY0ZDk4MjM4ZjcgcmVsZWFzZTI0LW1haW50CiszODczMSAzM2E5ZTQwYTU4ZDUyYTAyMGMyYjUyODY4MDc5NDg5NTMyNTgzYTg1IHJlbGVhc2UyNC1tYWludAorMzg3MzIgYWQyZGQ4ODQxMzdmZjU3MDM4ZDRlMDUzNjljMTI4MDE2YWI2YzE3NiByZWxlYXNlMjQtbWFpbnQKKzM4NzMzIGJiYTAzOWYyZTA1MjliMTZhM2VkNTYyOGIxMmJjYjE1Y2NjZjgyYWQgcmVsZWFzZTI0LW1haW50CiszODczNCA3Y2ZkYTk4OTg4NjM5NjgzMWY1MmUzYTU4MjUwYjRlYWZkOGNhYjg2IGxlZ2FjeS10cnVuaworMzg3MzUgM2JjZGQ0NDZhMTNiOWNiNzlkMjhjNmU3ZThkNGQzYjJjOGJhOTg2OCBsZWdhY3ktdHJ1bmsKKzM4NzM2IDMwNmY3ZDRkYjVlZmNjYWYxNzg0ZTdmYzMyZDQzZDhjZGJjNzVmYjcgcmVsZWFzZTI0LW1haW50CiszODczNyBhNmM1ODYyNjZkZWE1OGZiYzE1YTIxMjVkOGRlYjdkZWJiZDQxYjk0IGxlZ2FjeS10cnVuaworMzg3MzggN2UyZDhlMTdjZjE0YTQxMWIxZTU2MDU0OGQ3ODBkY2VmMmRmMzhjNiBsZWdhY3ktdHJ1bmsKKzM4NzM5IDMwYjAyYzdlZjhiYTY3MDJlYmZhNmU2YjIxNjliNWQzY2Q1Mzg1ZTkgcmVsZWFzZTI0LW1haW50CiszODczOSBmOTA1NGQyMzU4NzAwMjlhZmEzM2VmOTQ1YmNhN2VjZTk5NjE2YzEwIHJlbGVhc2UyNC1tYWludAorMzg3NDEgZjMxNDIzYzQ5NWQ2N2YwMjQzZTEzNGE1Yzc1OTkyZTU4YWYzZjNkOSBsZWdhY3ktdHJ1bmsKKzM4NzQyIGRlMTIxODk5ZDAyMTYxNjM0MGJmODY3NDA5N2I1N2NkMWEzZGU3MzAgbGVnYWN5LXRydW5rCiszODc0MyA1ZGRhMWY5ZTYyYTczNmNmYjVkMGJiMDEwYTQwNWMxMGJkZDNiZmMzIGxlZ2FjeS10cnVuaworMzg3NDQgMDY1OGU2ZWZmYWM3MDQ4ZjFlOTUxZTc2ZGJiOTFjMjA3ODJmYWZkMSBsZWdhY3ktdHJ1bmsKKzM4NzQ1IGNkMmMwNDRmNjk5ZDdjOGNjZWY1MTE2YzgxNGFhYjFiYmIxN2U2YTQgbGVnYWN5LXRydW5rCiszODc0NiAxM2Q1Y2FhMWU5ZDAyYWE5OTk3MDNlMjhkMzM3NWJlOGM2MDA5NjU4IGxlZ2FjeS10cnVuaworMzg3NDcgNTFiYThjZThkOTJhZmRmMDNiNjhhODExMDJkY2ZmYzJhYjI3NWI0MiByZWxlYXNlMjQtbWFpbnQKKzM4NzQ4IDU4ZjNmMGQwNDVmNTQ1YWRiOWFjM2Y2MDhlZmI3NjQxYWE0MzRlNDUgbGVnYWN5LXRydW5rCiszODc0OSA4NDQ1MzA1MDg0NzU2N2Y4MDE3Mjk4MzVmMWJmNWIzMDAxODdjZjM0IHJlbGVhc2UyNC1tYWludAorMzg3NTAgYWVmNzEzZGU3YTIzYzY0NTExODhjZWRhOTA0NmJjOWU3NDlhYmJmMyByZWxlYXNlMjQtbWFpbnQKKzM4NzUxIGVhZDVlNzNhYmI1M2M5OGYzYzY4YTlkM2I2M2Q1N2M5NmIzN2ZkNGEgcmVsZWFzZTI0LW1haW50CiszODc1MiA2M2M1ZDZjZTA3NjM0ZDY2MmUxNGU4NzdkMmJiZDVkZmI2Mjc0ZDk4IGxlZ2FjeS10cnVuaworMzg3NTMgN2UxYTMxMzNmZmYyZWE1OTJmMzI4MTk5N2E2ODI1MThmMzkwZTg4YiByZWxlYXNlMjQtbWFpbnQKKzM4NzU0IDZhZmYyMjYwMGUxNWFhMzY2YWY4ZTZhOTEwMDExYzBlYjYzZmIxZDUgcmVsZWFzZTI0LW1haW50CiszODc1NSAxMWZkMjYzN2U1YmI3NDRlM2ZkZGZkNDBhNGRhZGJhMmRhMjM3ZGNjIHJlbGVhc2UyNC1tYWludAorMzg3NTYgZWI2YzI5MTViYWRkMzVjMzQ4ZWI3MWE3ZGRjM2NlZDU5MGNmNTczOSByZWxlYXNlMjQtbWFpbnQKKzM4NzU3IGE5NTExYzE1MTI0YmU1YTU4MDMyZWJlZmMxN2RiNTBhYWFhYjBhMDkgcmVsZWFzZTI0LW1haW50CiszODc1OCAyZWEzZDY5MTUyMDQxMDNkOTljYTBkZDA1NzVhMDNlODEzNGYyZTk0IGxlZ2FjeS10cnVuaworMzg3NTkgMzkzNmNkN2YxNmYyNTVmMTFjOWMyNDM4OWFmZDc0MzlkYzNhYzEzYiBsZWdhY3ktdHJ1bmsKKzM4NzYwIGI4NWU4MTA0NjBlZmM1YjQyNzcxYTc1ODVlNzVjYjg3NDQzMTJiYTIgcmVsZWFzZTI0LW1haW50CiszODc2MSBmZTUzMWI1ZGNmZDYwOTJiMTQ0NDAwNDM4ZjNhNGVkYTdiNTlmYzIxIGFzdC1icmFuY2gKKzM4NzYyIDgwY2M0NGVhYmRlZTI1OWEwMDc1MDE4YzI2YTYzZGQ1ZmJhZWI3Y2EgYXN0LWJyYW5jaAorMzg3NjMgNmIyMWRjOTQzOGFkNWMxZWY5OTk2MjdmOGY4ZTU0MmU5YzZhZmZkNyBhc3QtYnJhbmNoCiszODc2NCBjYTRkOGI0ZmJiMDVkYjMxMDY5YTZlODA3NWExMjcxMTk5YzhjMTU5IGFzdC1icmFuY2gKKzM4NzY1IDVjMWViYjVhZTUyMTQzOTY4MTQzODM5YWY3ZGY5MTNjOTQ2YjAzYTQgYXN0LWJyYW5jaAorMzg3NjYgNWU4YzhjYjExZTViZGMyZjNmYjcxY2M3NmFiYTBmMTQ2NzJhNjhkYyBsZWdhY3ktdHJ1bmsKKzM4NzY3IGFiNTgyMmY3NTE1YTVmZWM1NzJmMDMyY2U5OTFiMzIzNmNiMjJhZGIgcmVsZWFzZTI0LW1haW50CiszODc2OCA3MWZkN2VlNGI3ZjUwYmM5MzNmNzExNDA4MWFmOTMyZGU4OGFiZDJlIGxlZ2FjeS10cnVuaworMzg3NjkgMzRjZGZjNWRkN2VhMzRlNTc2NmQ4ODk4ZTI0ZTAxYjFhODE3M2MyNSBsZWdhY3ktdHJ1bmsKKzM4NzcwIGI0OWQzOTExMWM0ODZjZWQ4MzkxYzc5Y2EzNWYyODVhZWM4ZTE2ZTcgbGVnYWN5LXRydW5rCiszODc3MSA1NTM1Y2UwZmY3ZjlmNmY1ZGU5ODAxNDI2OGUwMGI1NzVmODgwZjAyIGxlZ2FjeS10cnVuaworMzg3NzIgZGE0NjA4NDFiNjNjYjgzZDYxN2JhZGY4OGZiZGIxMmQ4ZGFkYWM5ZiByZWxlYXNlMjQtbWFpbnQKKzM4NzczIGJjOWZiYzIzY2Q0YTU5OTE4ZGIxMjcxYjA4NjRkNDBiNGRkOTU2YTMgbGVnYWN5LXRydW5rCiszODc3NCBiNjQ5OTczZDA5NjJlYjA3YjU4OWJlZjM0MjVmYWU2M2ZkZDk5NDM1IGxlZ2FjeS10cnVuaworMzg3NzUgNmRkMmQxMzZlODQ2NjFjMDc4MzhkNDIzMzkzNDE0MDVlOWIyYzQ1NSBsZWdhY3ktdHJ1bmsKKzM4Nzc2IGU3NjJmZWE3OGNiMjM2M2JlMTYzNWVlNzQ2ZmVhMmY4YzkxNGU1NGIgbGVnYWN5LXRydW5rCiszODc3NyAwMTQzZDk5MGQ2MGNjNjAxMjBlNDZiNGExMTMwN2E5NzNjYmM2YzBjIGxlZ2FjeS10cnVuaworMzg3NzggMThkYzkxNTgxNjBkNWI3ODc5NDdhMzBjNzYwNThmNjYwMzNlMTdhMyBsZWdhY3ktdHJ1bmsKKzM4Nzc5IDVhNTIyMjI1YzRkYjM1OWZiN2Q1ODM4NWUzNGRjMmMzMzYwOWRjMTcgcmVsZWFzZTI0LW1haW50CiszODc4MCAyMGIzYzcyMzUwMmFkNGIzOWYzODM4MWI4ZTQ0YzBiZWNiMWQ4Y2RkIGxlZ2FjeS10cnVuaworMzg3ODEgYzJhOWMzYTE4NDc3NmZjNjE0MjY1NmU1MDBiMjNjZTcyM2NmYTJkNyByZWxlYXNlMjQtbWFpbnQKKzM4NzgyIDlhN2Y0NmM0Mjc3MzE0Zjc0ZDU5ZjZiYzEyNGRmYTQ3YjY5NWQ5MWMgbGVnYWN5LXRydW5rCiszODc4MyBiOTk2NzQ3YzA4YjY4OTE1MDIwNjU0MWRiNTJjODM5YTFlMWJiNDliIHJlbGVhc2UyNC1tYWludAorMzg3ODQgYWY1ZDQ4MDE0YjNlNjM2NTg2YTg2NmM1ZDUxODA3YjE3YTEyZjcyZSBsZWdhY3ktdHJ1bmsKKzM4Nzg1IDViYzkxYmIyNDRiMTkwMmZmNDMxZjcxNWNiZmI2YjdmNDBiNjQzNjQgbGVnYWN5LXRydW5rCiszODc4NiA2NGJjNWE5MjJmNTc5MWI0Yjg3NWNlYzBkYWU3YjE4NTdhNzU3NzQ2IGxlZ2FjeS10cnVuaworMzg3ODcgMTQzY2RhNWE5MzQ4MWZkZjA3MzJlZjRjYzYwMTg0ZjY5NGYwMjU1ZSBsZWdhY3ktdHJ1bmsKKzM4Nzg4IDAzNjEzMDk3YjljYjM0NTQxMGY1NDdmNDYwYjA1NTZiNjM3MDAwYmUgbGVnYWN5LXRydW5rCiszODc4OSA3OTIwMWY4MjBlZDA0YTkwZGFhY2RjYWQ0NjE2ZjVhZjA5ZDhlMmIyIGxlZ2FjeS10cnVuaworMzg3OTAgYWQ2YWEyZWVjYjU2OWIxNDUyNjNlZTlkMTBiYjNhOTRjZjI4M2ZiYyBsZWdhY3ktdHJ1bmsKKzM4NzkxIDA3NmE3YzdmZTI4YjgxMGI1MDAwMDU5ZWQ4MGMzZDNiOTMzZjk1ZTggbGVnYWN5LXRydW5rCiszODc5MiA3YzI3ODBjOWU1MWJkZjMzYTVlYjFhOWJmODM1NDZlNTA3YjIzMTNkIGxlZ2FjeS10cnVuaworMzg3OTMgODYyZWJiNjIxMzU1MTA5MjU4YWI5NDk0ZWU3MTc5MTQyNzJkZDZhNiBsZWdhY3ktdHJ1bmsKKzM4Nzk0IDllNjU5Y2I3MjdlYTY4YzlhNTQzOWU4Yzc5NjY3NTE1ZDkyYjIwMDggbGVnYWN5LXRydW5rCiszODc5NSA0NDQ2OGVmYjUyNWVkNTc4NmRiOTg4MjdkMjFkOWFlNjc0YzkxYTkxIGxlZ2FjeS10cnVuaworMzg3OTYgNDhjNzFmZjM4NTc4MmNjMjI3MjUzZTJkMGNlODVjMGI0M2U2ZGEzYiBsZWdhY3ktdHJ1bmsKKzM4Nzk3IDE5MjRhMDdmN2YyM2FmN2U5YmM5Y2IxNTEwNDU3Zjc5MDZhMzhjMWYgbGVnYWN5LXRydW5rCiszODc5OCA0MzNkNzM3OGRmYzJmYzIzMTAwZjBhNmU5MWIxYTNiN2E5MGMxNDk5IGxlZ2FjeS10cnVuaworMzg3OTkgNjFlYzhiNzk1NjQxYzRkMmVhNTQzMmYzY2JjYTI3ZWRjMTgxN2Q3NiBsZWdhY3ktdHJ1bmsKKzM4ODAwIDNiYzI4ZjYzNTE3YTRkMDNjMzQ2MDVjMDMwMzVkZmViMWU2MWY1ZWQgcmVsZWFzZTI0LW1haW50CiszODgwMSBkNTIwNzRkODk0ZGYyOTI5NDg3NjkwZGFjMjYyNjFlMzQ0NmE2MDgyIGxlZ2FjeS10cnVuaworMzg4MDIgZmFkMWU4ZTA5NDU2ZDBkNTFlZWNjNDk1NmU0MDQxNTVlN2Q1YTNmNSBsZWdhY3ktdHJ1bmsKKzM4ODAzIGZiY2IxZGE0ODBkZDRiMWFmMmIxN2Q3NzFlZDdhNTE5NzVjNWUxNzUgcmVsZWFzZTI0LW1haW50CiszODgwNCAxYWM5MTRkM2JkYzM5NDhkMzQ1ZTU2YmI3OGM5OTRjZDI1ZGNlYWJkIGxlZ2FjeS10cnVuaworMzg4MDUgZGFkMmI2MjA0OTc0NTU1OWVmOGQ2ODAxYmM1ZjhhMzMxNGFlODI3NCByZWxlYXNlMjQtbWFpbnQKKzM4ODA2IDM0ZjliMmFkYWUyYzZiZmI5NTlhZGFlMzg0YTY4N2EwMmMyODdjZTMgbGVnYWN5LXRydW5rCiszODgwNyAzOGI2NTQ4MzY5ZmFlODVjMmU5OGYwNzVjZjIwOWI3ZDdiNGNjZjdiIGxlZ2FjeS10cnVuaworMzg4MDggY2QzYjk1MjcwOGFmMGY5YWJlODgwOWI2OTQ5NDA4Y2QwY2FhMGYwYyBhc3QtYnJhbmNoCiszODgwOSA0ZTYyOWViZDBlM2U1N2IwZjc5NzQ3ZDA5NmZkMjNiZmU0NDk4MDcwIGxlZ2FjeS10cnVuaworMzg4MTAgMDIwZWQ2NzFhYTYyMTVlYTkxMTYyZmU1NjcxZjRkYTdmMmQ5MWUyNiByZWxlYXNlMjQtbWFpbnQKKzM4ODExIGQ3YTIxMTdmY2E0MjUzNTBlMjg4ZTE1MTY3MTM2NTQwMmJmYjRkYWIgYXN0LWJyYW5jaAorMzg4MTIgYzYwNzI5YTU3OTMyNWY0MzFmZDQzNWRiMmZhMDQyZmI2MjI3NTJiYyBhc3QtYnJhbmNoCiszODgxMyA4ZTZjZDUwMGM4ZmI1YTU0MDgwN2JmNzMzNDMyZTA0NzM4NThiY2YyIGxlZ2FjeS10cnVuaworMzg4MTQgZmM0NDJjMmViMGNmNmRiZDhhZGExZGIxNWUxN2JmZGQ4NjdlMzVhOCBsZWdhY3ktdHJ1bmsKKzM4ODE1IDk4NmQ0NmM0ZmFlYjIyOTA5OGM3NjI4ZTkwYzBlNzhhNjMzZjcwOWEgYXN0LWJyYW5jaAorMzg4MTYgYzhhZmRkOTI3MTVjMzI3NzUxNDM3N2UzMmYxMGQ3ZDQ1MTk0MjAxNSBhc3QtYnJhbmNoCiszODgxNyA2MDgzMGFkNjI3NWUyYzgwMGU2Njc3YTQ0N2ViYjk2OWE4MWJmMjJmIHJlbGVhc2UyNC1tYWludAorMzg4MTggYTk5ZWUyNTBlMTBjMWM1NjMzYjhjOWQwNzM3YjczMjQxMzI0MjI4ZSBhc3QtYnJhbmNoCiszODgxOSAzMGYzN2MwZTE1OTI1NmM5YzgzNjYxY2ZjNTM5ZDExNzAyYmI2NGZkIGFzdC1icmFuY2gKKzM4ODIwIGE5NmI1MDE0OThhODA4ZjAyMmNlYjgzZjBhNmE2MDJlOTNkNTIwYzcgYXN0LWJyYW5jaAorMzg4MjEgNWM2MGNiYjY1MzMwY2ZhYTU3OGIwNTQ0ZTljMWQzMThkZDFkNGI0ZiBsZWdhY3ktdHJ1bmsKKzM4ODIyIDcyNjdmYzQwYWRhYzE1M2I3ODNlMzczNzIwYjFiODM4ODg3YzRmOGMgbGVnYWN5LXRydW5rCiszODgyMyBkNDM1ZDIxNGE1OTI0MTQ1MjA3Y2Q1YjQxMjI1MjFjZWEyZWQ0NmE4IHJlbGVhc2UyNC1tYWludAorMzg4MjQgODc3MTlhZTkyODhjZWRiYjk5ODNlZGU1MWJjYzY1MWJkMTRkM2Q4NCBsZWdhY3ktdHJ1bmsKKzM4ODI1IDBmMzA2MWY0OWE5ZTg5YWI2OGY4MGNhOGE5ODE5NDljZjk0NTkwMDUgbGVnYWN5LXRydW5rCiszODgyNiBhZjU5MGY2MjJjMGJjM2JlNmZlMjkyMTMyZWIyNjQ5NDk0MWM3ODZmIGFzdC1icmFuY2gKKzM4ODI3IGQ0ZmZjNzcxZTlmZjk2ODhkYzQxNjI0ZDUwNjU5NmU0NDRkYmRlOTIgYXN0LWJyYW5jaAorMzg4MjggYjQ3N2M0ZDdhMjBjMWE2ODIwYzE3Y2I5MjgzNGIwZTYwMWJiOTg1ZiByZWxlYXNlMjQtbWFpbnQKKzM4ODI5IGM0ZWExN2NmNTIxMTE1NjQzZjFlM2Q5MjY0Y2ZhZGFiMTY5OWE1ZTYgcmVsZWFzZTI0LW1haW50CiszODgzMCA4YjAzYjA5MTQxZDI4NzE3MWYxZTk2M2YwNmQ2N2NkODcxNjJjMjg4IGxlZ2FjeS10cnVuaworMzg4MzEgYTEzMDk2Yjg1OThiOWE2N2RiNTM2MDIyNjcwNThiN2VlOGE2ODdkYyBsZWdhY3ktdHJ1bmsKKzM4ODMyIDZiZGMzNDI2ZDQxMTNmMTI1ZTBiY2E0OWUwMTExODc0ZTU1YTJmODEgcmVsZWFzZTI0LW1haW50CiszODgzMyBmOWUzMWRiNmM3MDM2MDM2ZWE1YmMzNmY0NDE3OTQwYjk0M2Y1MmM4IGFzdC1icmFuY2gKKzM4ODM0IGZiYjJmM2JiOGNjY2QxNWY0MWU4OTYwYzY5ZDFiY2FlOWQ1NjljMTkgYXN0LWJyYW5jaAorMzg4MzUgMjgwNGFhMDQzOGNjOGQzNmZjM2RlMWM4OWQyMGY5ZTFhNTNmMzA5MCBsZWdhY3ktdHJ1bmsKKzM4ODM2IGFlMjVkNDVmODk4NzYzNTRiZjg0MzI1NmZlMzdmYjZlZDczMWU5NWMgbGVnYWN5LXRydW5rCiszODgzNyA2N2E4OWI0M2RjYzcyM2E1NWI4ZjMzNmI2M2NjNGMxMWJlMDcyYzM5IGxlZ2FjeS10cnVuaworMzg4MzggNGM4ZTUyNDNjYTQyNTMxZTQzOGY5YjFlMDkwMjQ1ZWU5NzBhODMzMyBsZWdhY3ktdHJ1bmsKKzM4ODM5IGQzNGJkZWQzMTlhYWU1Y2ZmZjQwYjlhY2IzY2Y5ZWFkNWI3ZDMxOGUgbGVnYWN5LXRydW5rCiszODg0MCBiYzEyM2I5Y2VmN2ZhOTY5YzdiMDIyOWExZjFlMjNhYjY0YmEzZTYyIGxlZ2FjeS10cnVuaworMzg4NDEgYzY2YTdmYmUxNmNmOWU1MWM5YjExMDQ5MDMyYzU2NDkwMGRhYTVjMiBsZWdhY3ktdHJ1bmsKKzM4ODQyIDEzMzFjNzc5OTY0MDkzNjJkZGM3YTY5NDYxNDgwMGU5YjAxZWI0N2EgbGVnYWN5LXRydW5rCiszODg0MyA3ZjcyMTA5ZGZiNGZhZmM3OGUyMTEzYTJkMjY0YWQ5MjVlODgzMThmIHJlbGVhc2UyNC1tYWludAorMzg4NDQgZDA1NWY5NGQwOTM2YTY5MGYyMWYxZDZlYTc1MTM2ZDc2MjEyYTU5OCByZWxlYXNlMjMtbWFpbnQKKzM4ODQ1IDk4NTdkYWEyMjgwN2I3MzliYjA1YTllZGM1NmNjMmU2MmQ5M2Y3MjUgcmVsZWFzZTI0LW1haW50CiszODg0NiAzNTgxODQwYzgyZTcwMWI0YjQxZGEzOTBjNTllZmY0NDI3MGVjYzgzIGFzdC1icmFuY2gKKzM4ODQ3IDA4ZTIwZTljNzZmYmYzZWUzN2Q4YWExODMxYzFiNWJiNmVkYjY5MTkgbGVnYWN5LXRydW5rCiszODg0OCAyOTRkYWJjYjM3OWI1MWJlN2NjNDFhYzIzMWUwYjEyNzI1ZWJlMjJmIGxlZ2FjeS10cnVuaworMzg4NDkgOWExYjFlMWFlNjUzZmM5NTYzMTM0NzMyMmFiNGY3YjU5YzM0NTU3ZCBsZWdhY3ktdHJ1bmsKKzM4ODUwIDQ5YzZkY2VkMDhjMjFmNDQzYjZhNTQxNDFlZGYxYWYxNjZiMzcwOTYgYXN0LWJyYW5jaAorMzg4NTEgYzFhOGMyZDdlNTI4YmRiNzk3MGY1MmQ1ODA0OGFjOTI1ZTVjN2VjNCBsZWdhY3ktdHJ1bmsKKzM4ODUyIGFhZWFiMjQ5Yzg2YWQzMjdlZjEyNzJjMzBmZjdiMDU0ODY5OGQxNTcgcmVsZWFzZTI0LW1haW50CiszODg1MyBlYzk3ZTRjMzcwNTYzYWY5N2QyNjQ4ODQ0NjY5NWYzOTZlNjA4NDY4IGxlZ2FjeS10cnVuaworMzg4NTQgNWNjYzg3NzdjZWEyNzE1Nzk2ZTMzZDI2YzYxMWFiOGY2NDE0MTFiZSByZWxlYXNlMjQtbWFpbnQKKzM4ODU1IGE1MTg1YWMxZTRlYzZjYWZjN2QyZTU0ODI4ZTc1MjYzMDNjM2FmMTkgYXN0LWJyYW5jaAorMzg4NTYgMTBhZjE2NTgzYjc1NTU4OWNjMGY0NjI0Zjc0YjI5YjQwMzBiMGQ2ZiBsZWdhY3ktdHJ1bmsKKzM4ODU3IGRhYmE4NWVmNjU0YTQ5YWJjYWIwYTE0NzZkYjIyMzRmMzQ3NGU2YzkgcmVsZWFzZTI0LW1haW50CiszODg1OCBjMGI0ZGU3NDFiMzgzZGZjMzg1ZGE4NTYzZGMxYjZiNzlhNjEwMWIzIHJlbGVhc2UyMy1tYWludAorMzg4NjAgYTEyOTNlZTZlMWRiOWE5NGM4ZmFlOTJlMjFlNmFiNWJjNjM4NGFhZSBsZWdhY3ktdHJ1bmsKKzM4ODYxIDNjNjc5ZDAwODc5ZWJiMWI1MTNiMThlZjZhZWIxNDEyY2Q0MjBmNzcgbGVnYWN5LXRydW5rCiszODg2MiA0NzVmOGFkY2IwMzI5NDBlNmY2NmU0MDdkMTVjZWVjNDI3ODE0NzdiIHJlbGVhc2UyNC1tYWludAorMzg4NjMgNzI4N2I0MTE0NWFlMzc2YTBmY2VhNzAxMjIxNzYwNWFlYjcwNjc2NyBsZWdhY3ktdHJ1bmsKKzM4ODY0IDJjNzQ5OGMyYWU3MDdmZGEzNzJjZDc0NGRkNWYyZmRhOWU4ZDg2MmUgbGVnYWN5LXRydW5rCiszODg2NSA3NGMxMmMxZjM2OTI5NDYxOTM1ODQzODRlYjczYjIzOGY3YmJmOWY1IGxlZ2FjeS10cnVuaworMzg4NjYgOWZlNzgwMWZjOWE0YTIxODkzYTljYTQ2ZTMyMjdlNDRlZTE1YTNlOSBsZWdhY3ktdHJ1bmsKKzM4ODY3IGExNzAwMWY4ZTFiNGViNDExZDQxY2EyZWE1YzQxOTJiZGMxMjlmYzkgbGVnYWN5LXRydW5rCiszODg2OCA5YzkxNzJiZTFmNjk3NWViYjViNDI0MjQ2YTE3YjRlOTQxZjA0MTYwIHJlbGVhc2UyNC1tYWludAorMzg4NjkgZTRlMGNmZjE2YmM3ZTk3Yjk3NDJlN2NjM2ZmNTg4OGNkYzFmOTk0NiBsZWdhY3ktdHJ1bmsKKzM4ODcwIDc1ZjUxOTYxMDk3YjlkOTc1OGQwNDE4Mzk1Njc4NTI2MDhiNDRmYjggbGVnYWN5LXRydW5rCiszODg3MSAxZTdhNmE1YzM2MTQzZTRjZjY5ZTk2N2I2M2JkZTNjM2NjM2RjNDhiIHJlbGVhc2UyNC1tYWludAorMzg4NzIgYjExNjMzOWRkZjI3ODVmMzQxMTcwZjhiZDk1ZTM3OWZiMGJhOGFiNyBsZWdhY3ktdHJ1bmsKKzM4ODczIDM2NThhN2UxMWMxNDhkODNjMDhhYjgzZjA5YTNiNWVjMGVkNzA3OTUgcmVsZWFzZTI0LW1haW50CiszODg3NCBhZTVmMjc0NDZmODE5MjQ3NTNkZGRlMWJiMmE0MTAzYmZmNmY4NjA0IGxlZ2FjeS10cnVuaworMzg4NzUgZjMzMDA3ODY0MjQzZjA5NjA2Njg5MTYwNzhlODAwYzRjYTUwNTZjNiByZWxlYXNlMjQtbWFpbnQKKzM4ODc2IDkzMzljOTlhMjk4MjgxMDdhN2FjOTNlZmE4MmY0Y2RjYWMwYjU0ZTAgbGVnYWN5LXRydW5rCiszODg3NyA0MDQwODg1MDNhNzgwMjk2YTExZDJkMTIxMDczMzQ5MDI5MWNmZmE3IGxlZ2FjeS10cnVuaworMzg4NzggMzc2N2NkYWE2NzI4MjQ4Y2FlZWExNmU5NGQyMzY4NTRkYTcxZmU0YyBsZWdhY3ktdHJ1bmsKKzM4ODc5IGM5MWU1ZTMxYzVmZjFjMmFmYmIwYzdmNzU4MzZkMDcwOTY1YWVhMjYgbGVnYWN5LXRydW5rCiszODg4MCA2YmEyOTNiNzExNWI3OWVkMjFlOWM3NjAzODE1OWJkNmUwNzIxNzJhIGxlZ2FjeS10cnVuaworMzg4ODEgODBmYjI4OTFiMzNiZmNiMTEzYjBjNDMzODI1OTcyOTVkNzU1NjdkNiBsZWdhY3ktdHJ1bmsKKzM4ODgyIDRhMzNjNThjMzE5YzA4Yjg2MTgzYTVlYTkyMThjODA0Zjc5M2IzOTggbGVnYWN5LXRydW5rCiszODg4MyAwNDc0MzRhY2I1YTkxOWQzNjQwNjFhNjY4OTM3N2UyNjY3MzlkZTNiIGxlZ2FjeS10cnVuaworMzg4ODQgNTBiZWQ2NzhlZGRhMmQ3ZjIwODJiNmM4MzY1NTdhYTIwYTVhMTJhMSBsZWdhY3ktdHJ1bmsKKzM4ODg1IDFlYTgwNzc2OTMyOTJkMDE3MGUzNjVhYzllYmI3MDNkNzgwZjFmZTcgcmVsZWFzZTI0LW1haW50CiszODg4NiBmNmFmOTQzMDFlYmMyNzUxOTNkYmUwNDljY2JhYjJhMzRhOTBkZGU2IGxlZ2FjeS10cnVuaworMzg4ODcgMTQ1YzAzYTg1ZWE4Mzg3MjUxZTBjMDk1MzM4N2EzOGRiNmVmNDJkOSByZWxlYXNlMjQtbWFpbnQKKzM4ODg4IDkzNjI5NzcwYTkzZjQ2NzlkNGQ2YTdiOTQ4MjMyYjZkMjY3NjNjOTYgbGVnYWN5LXRydW5rCiszODg4OSA4NmY0YjE4MTdjYWE2OWM2YWEwYzU0MTQzOWNiNmU0NmIwNjYxYTM2IGxlZ2FjeS10cnVuaworMzg4OTAgNjcyZTVmNjUxNzJjMmYxNjlhMWJkNDg2NDFlM2M0NzliYzZlYjgzOSByZWxlYXNlMjQtbWFpbnQKKzM4ODkxIGQ0NTE1NTQ3OTk3NjY2YzBhZjhlY2YyYmUwODNjNGUwYzZjZjRmYjcgcmVsZWFzZTI0LW1haW50CiszODg5MiAwOTA1ODEyZGY0YTVmMTQ5MjVkNTExN2Q0MmIyOTdjMmViMTZlMjQ2IGxlZ2FjeS10cnVuaworMzg4OTMgMWRkOGEwZDY0NDMyMWNiZDAzZTU4YWY0OTY3N2Y1MjA4MWJkY2FlYyBsZWdhY3ktdHJ1bmsKKzM4ODk0IDkxNjUxNjk4MTI2MTA2MWZlMDY1MmVjNDZkNjYxZTVmZTNiYzIxNjQgbGVnYWN5LXRydW5rCiszODg5NSAzOGQwNGVkMDI4ZDFlZjVhZmY1MzExM2EzMjNhYzhlMDc4ZWRmYzkxIGxlZ2FjeS10cnVuaworMzg4OTYgNWU1MTFkZGVmNDhiMmRiNWQ2YjkwZDNiYzA5OTg1ODdlMWNkNWM4NSByZWxlYXNlMjQtbWFpbnQKKzM4ODk3IDE4NzNlOGFmNWE4YWMyMTU0ZDUyYWYwNTgzNzVmNmZjNzY0YTE1YjggbGVnYWN5LXRydW5rCiszODg5OCAzY2FiYTgwNzIwNGJiYzg4MGJmYjVmMTY1ZTRkNjllYjNkOWYxOGM4IGxlZ2FjeS10cnVuaworMzg4OTkgMGIwMWVlODZjY2ZkODhmYmY5ZmY1NTIxMGVhYTIwZmJmZmQ2MjIzZCBsZWdhY3ktdHJ1bmsKKzM4OTAwIGEyOTFhZDlhYTZhMTBjMDE4MWE4YTgxNWIzOTY3NzAyMGQ3MWNmN2MgcmVsZWFzZTI0LW1haW50CiszODkwMSA5YTA3ZjZkNDgxNmFiMWNkYjE4ZjNjMTUyYzQyODk2MzdhOTVkNDNiIHJlbGVhc2UyMy1tYWludAorMzg5MDIgMTg0ZjEwZTExNmZmZjk0MzU1MWU1ZWY1YWZiMjc5MjQ5YjNjMDQ1NiBsZWdhY3ktdHJ1bmsKKzM4OTAzIGVmOTMwY2FlNjNhOGUyMWJlNTJkOTliMjc0YWFhMjAwNTZmZGRkZDIgbGVnYWN5LXRydW5rCiszODkwNCA2NmUwNDE0Y2RmYTZhYjA4OGMyOWU1NzA2NmZlY2FhZmIxNDRhOGNiIHJlbGVhc2UyNC1tYWludAorMzg5MDUgMTY5OWRjNTFhNWI1NzY5YzY1OTg1ZWRkN2E4ZTAwNDFlYjJiYTc5MyBsZWdhY3ktdHJ1bmsKKzM4OTA2IGIxNDFkNTdjNGZjYTk2YzAxODU0YTRkOTdiNmE3ZWU3NjdjYzM0NzIgcmVsZWFzZTI0LW1haW50CiszODkwNyA5ODU0NDcyYjkyMWJhNDdiMTdhOTY2Mzk1ODg0YzFhMTQwMzdjODU4IGxlZ2FjeS10cnVuaworMzg5MDggZWYxODQ1NjJlOGUwM2RlOTYxYjE4NzZhYmE4ZTliZjYyMDJhMmU0NiBsZWdhY3ktdHJ1bmsKKzM4OTA5IGMwOTU4ODhmYzU0M2M4MGM5NTBjMDMwZGNmOTEwZmIzZDI0OWY5ZDcgcmVsZWFzZTI0LW1haW50CiszODkxMCBiMzE3MzZmNjI1YmE3ZjljNzUyODBkNTE1MzFiODY3MTMwZDU0NWU2IGFzdC1icmFuY2gKKzM4OTExIDAyZjEzZTAwZTJlZDEzMDM1ODhlYThkNzllN2ZiZjlkM2MxMzNmYmEgYXN0LWJyYW5jaAorMzg5MTIgOGIwNWE0NzMyY2YzNjFhMzg3NTNlMDlhMDRkZGY5YmE3MjA0MTk2ZiBsZWdhY3ktdHJ1bmsKKzM4OTEzIDAwY2QzNTBjZjdiZjBjNjJkM2ZlMmVkMWMwZWNjNmJiZDZjYmUyZjkgbGVnYWN5LXRydW5rCiszODkxNCBjMGVhZDI5MThjZjc0NTQwMjQxY2ZjYzFjOWRlMzQ2NWE5NGNlOGMxIGxlZ2FjeS10cnVuaworMzg5MTUgZjcxM2U4YWJmMTRlM2NhNjIzZjkyYzk4ODZkNGZlOGRjNTdjZmY0MCBsZWdhY3ktdHJ1bmsKKzM4OTE2IGEyYjIyMjc3NzNlN2ZlOTRiNzM4NDMyNmMyM2Q5OWEzYzJkMWI1MjEgcmVsZWFzZTI0LW1haW50CiszODkxNyBiNDIzYjQyN2UxN2U4ZDYxYjFlYWY2MGQxMzhmNDE1NDRiNWEyMGU5IGxlZ2FjeS10cnVuaworMzg5MTggN2JjYWJiYjZiNGI3ZWY0M2RhZGI4YTMzMTYzZDc2ZDdmZDA5MmZmNCByZWxlYXNlMjQtbWFpbnQKKzM4OTE5IGUzYWM1ZjBhZDNlM2FjYjllZDJjYzhlZDE2MTM5MDkzZjgyZjZhNWYgbGVnYWN5LXRydW5rCiszODkyMCAyMTI1MWUyMjFlNTYyZjBkY2VjMmMxOTg1OWUzYjljMGQ0MWRhYjkxIHJlbGVhc2UyNC1tYWludAorMzg5MjEgMjVhMGUxZmFhOGE1ZWQ4ZjA5MWZjZjFhMGU2YTExYmU0YzI2Mzk3NCBsZWdhY3ktdHJ1bmsKKzM4OTIyIGZjZDJjMzg0Nzg2OTlmMjMxY2M4ZWZiNjQxMzIwZjViYjdkYTYwOGYgbGVnYWN5LXRydW5rCiszODkyMyAxY2RjMDMzNGQ4NzdjNzFhYmZmMTJmZDRkNjdmZTk5OWYxNDBmMmFiIGxlZ2FjeS10cnVuaworMzg5MjQgMTdhYTI4OTYyYjg1ZGFhMzkzYjFmY2JhYjcwN2UzNjE5MDZjNDk5MSBsZWdhY3ktdHJ1bmsKKzM4OTI1IDFjYTdhZTQ4YTkzMTUxYjQ1ZWZjNWVmNjNlY2RiNGE3YTc2MzY2ODUgcmVsZWFzZTI0LW1haW50CiszODkyNiA1MmZlZDJkMDY0MWE1YmQ4ZWZhNGQ3OGE1MDZkNzYyOGYxMDJiNzhmIHJlbGVhc2UyNC1tYWludAorMzg5MjcgODg4MGQ5MWNkYjA5MzgzYTRmZmYzMjAxNzk3NzQzYWNjYTIxYjA0ZSBsZWdhY3ktdHJ1bmsKKzM4OTI4IDc4ZDBhNTU4YjA5MzgzNGU4NjdkMzA2MmYxNWMyZTRkMDk1ZWVmN2MgcmVsZWFzZTI0LW1haW50CiszODkyOSA2NWM5NWFkNjcyYWU4ZmQ1N2RlMzQ0MDI3YTY2YmY1ZjVmNzYzYTBkIGxlZ2FjeS10cnVuaworMzg5MzAgZGU3NmIzNDNkOWM4MmIyYjZhNzJlOGUwYmJkOGNlNjJiNWM3ZWIxZSByZWxlYXNlMjQtbWFpbnQKKzM4OTMxIDQ0ZTNmMjFmMDUyNTkwZGRmYWJjMTI5MDlhZjUxODhhNGNkODlkOGMgbGVnYWN5LXRydW5rCiszODkzMiAxZmI3NjhlYmQ5MGUyYjJjNmY1ZDY1YjE1YTkwZDRjYWJlNDBhZmRiIGxlZ2FjeS10cnVuaworMzg5MzMgOGU5NjgyZmQ1N2Y4ZWE2OTBjYTQ3MDBlOGEzNWRmYzE0ZWFiMjI5NiBsZWdhY3ktdHJ1bmsKKzM4OTM0IGI3NGExYTUxMjkxNzhhNjFmMzI0NDg1N2JmMWMzNzQwNGJlMDFhMzIgcmVsZWFzZTI0LW1haW50CiszODkzNSBlMzk0ZjdlOGEwYzE1Zjg3MDRiMjdjZDcxMDg0NzY3ODQ1NTY0NzUwIHJlbGVhc2UyNC1tYWludAorMzg5MzYgNGEwMmE0MzE3NjU1NWJhY2EzMDQ1ZDU1NTJhNmZjNzBhZWMyMjhkNCBsZWdhY3ktdHJ1bmsKKzM4OTM3IDI3NTg0MzYzMDUyMjg2ZTE4Yzg3NjAzMmJmZDBmMmVlYjEzOTMyMjkgbGVnYWN5LXRydW5rCiszODkzOCA5MGZjYTA4MTQ1ZDExNDk3ZTY1YTBmNjYxODRiZDQyNjJmNjJiZGYzIGFzdC1icmFuY2gKKzM4OTM5IDYyZWFjOGQ5NTNjZjFhMGYwNjE5NTU5Mzg3MDdmMThkNTQ4YzU1YzcgYXN0LWJyYW5jaAorMzg5NDAgYmFjODk4ZDM5YjUzOGYxMjgyZjU1YmNhMTc0OWQ4OGIwYmY5NDM4MSBsZWdhY3ktdHJ1bmsKKzM4OTQxIGIzOGMyYWE2NmVlN2IzZTRhNzQ5ZmRlMjA0NTFjZjk0OGUwYjQ0MDkgbGVnYWN5LXRydW5rCiszODk0MiA3NWZkOWE1MTU0YzQ2MWUxZDg3ZGViZWI2ZDc2MTY5NGU1MDNkOWU5IGxlZ2FjeS10cnVuaworMzg5NDMgNDBmN2UxZGExYmRmZTU1MmU1NmY4NzQzNTAyNTYzNmQ5ZDJkMTEzMSByZWxlYXNlMjQtbWFpbnQKKzM4OTQ0IGJhNDcyN2RhMDdlNTRlYmE0ZmE4ZTJmMjQ4Y2RhNjAwNDUwN2VlNzIgcmVsZWFzZTI0LW1haW50CiszODk0NSBjYjJiZTQ0MjlhNGNmZDNhYzhjMTk1MjRlNjE5ZGQ2ZDRhMzdiYzZiIGxlZ2FjeS10cnVuaworMzg5NDYgZWE1YzIyODBmOTE1NzQyMzdmM2Q0MWFhMTg4ZmUwMmI1Yjk3MDI2MyBsZWdhY3ktdHJ1bmsKKzM4OTQ3IDBkZjA1ZWFhMWUwOTZlZWNiZDAyMTI3ZjFlNjViNTkzNDczODQxM2QgbGVnYWN5LXRydW5rCiszODk0OCBhYzU2ZDE3YmMzZDE3MGNiMWJmNmVlOWE1YjBmMWU4NzE5OTg0YzRlIHJlbGVhc2UyNC1tYWludAorMzg5NDkgZmNmMDEwYzM3MGNiY2ViNzdjMzVmYWE0OGI3NjFmNDI1MTI4YjIwOCBsZWdhY3ktdHJ1bmsKKzM4OTUwIDVhMWEzMWQ5ZTM3ZTNjMTM5ZGU5N2I5YmFlNGFlODE4ZTQ3MTU2ZDMgbGVnYWN5LXRydW5rCiszODk1MSAyMTViNzg4NWUxMDg1NGM1MTk5Nzc2NmMxZTNhY2FmYjdhNzkyNGRkIGxlZ2FjeS10cnVuaworMzg5NTIgMzI5YjI4YTg1OTQ3NGEzNTA3ZmEzZjI1MWJjYTI1NmQ5OTgwZDg4OSBsZWdhY3ktdHJ1bmsKKzM4OTUzIGUwMzcxNDgwNDg0NWI5MjllOGNjZTVmMDAwYTYxZDRlNTI4MjEwYmUgbGVnYWN5LXRydW5rCiszODk1NCA4YmZlYmNmMDYzNjM3MDE0NTExZTFlNGMwZjc5Yzc4MGY3MDcxMGEwIGxlZ2FjeS10cnVuaworMzg5NTUgYTQ5Yjg4ZTUwMzA1OThmOTQzMjM0OTVmNGNlZGYxYTZhOWZkNzMwOSBsZWdhY3ktdHJ1bmsKKzM4OTU2IGI3M2YxMzBjN2I4NDA1OGU2N2EzNTI0NGU2YjQ0ZjgwZGJhZjVkMWIgbGVnYWN5LXRydW5rCiszODk1NyBkNGRhYWJhYmFhNDVhNWZkZjc0NWRmMGZkZmZjODJiODcxNzM1OTk5IGxlZ2FjeS10cnVuaworMzg5NTggMjlkM2RlZjNhNTZhYjVhMmRjNDBhODgzNWZlNzAzYjU1MzJlYTc4ZiBsZWdhY3ktdHJ1bmsKKzM4OTU5IGYzYjAyMjIyYTgwYTIwNDMyMmVkNzc4MWRhOGYyMWYxMmY5MjAxNTUgbGVnYWN5LXRydW5rCiszODk2MCBjNTU4OTk4NjNiOWM3OWU5YzA2MjI3OTkwNDFiOTc0MWYzMjE4MjMxIGxlZ2FjeS10cnVuaworMzg5NjEgMTlhNTA5MWYyNjU4MDY0MDY1MDc4ZTA1OGNmYjJkZTU0ZWYxY2UzOSByZWxlYXNlMjQtbWFpbnQKKzM4OTYyIDU1NTQ1MTFiMzcyNTQ5MTFhNjg2NDE2MjFhMTUzZjE0Mzg1OGQxZmYgbGVnYWN5LXRydW5rCiszODk2MyAwODc3MzVmODY3MDFjMTlkNDMwMWFjMDkwN2M5MjAzMDYzNzY4NTMzIHJlbGVhc2UyNC1tYWludAorMzg5NjQgZDYwNDdlNTVmN2FkM2Q2Y2UxZmNkY2NjOTJhYTkyMTEyZjc2NWQ4NCBsZWdhY3ktdHJ1bmsKKzM4OTY1IDNiNDFiZDg3ODkxOGQwMzA5OGYzNDFhYWUyZDcxZjk1ODk1ZWZjYWYgcmVsZWFzZTI0LW1haW50CiszODk2NiAxNDkwZjgxMWY5M2E5NGE1NjExMDllNjZiMGUwODI2YWUzZDZmY2I1IGxlZ2FjeS10cnVuaworMzg5NjcgNzNmMjRmNWM0ZTNmOTMyNThmMGEzZGZmMmYwMDBhYThkMWQwOTVjZCBsZWdhY3ktdHJ1bmsKKzM4OTY4IGMwNWU0NWU4NzI0ZTJmZTRhMmFkNDA1Njc2ZTU1MzgzM2NjNTU1NjIgcmVsZWFzZTI0LW1haW50CiszODk2OSA1NTU0NWUwMjMxOTlmYzA2YTUwMTZjZjNlMjk0YjkwNzY0NDQ1MGZiIGxlZ2FjeS10cnVuaworMzg5NzAgNTYwODg3NDk3MjFhOGFkN2I3YTg3ZTdjOWNlMjk3MzVhYWZkNjNjOSByZWxlYXNlMjQtbWFpbnQKKzM4OTcxIGQ0MzBiMjk2NDFiYTQwYmU0ZjNmN2QxNzZjNzEzMTVjMmY4OGVhMjMgbGVnYWN5LXRydW5rCiszODk3MiA2NjI0ODhkNDE4N2RiNjg4YTI1MjUwZmVhOGI3M2U2ODA3ZjFlMjczIHJlbGVhc2UyNC1tYWludAorMzg5NzMgODIzNzNkMjUyNWVlMGJkYmE0OTk0ZDNjNTUwZmI4MDdlODllMzQyMyBsZWdhY3ktdHJ1bmsKKzM4OTc0IDVmNzYzZjllNTBmOTM3MGRlODNiOGI3YjJkNmQ5MjEyMGI5MmM2OGUgYXN0LWJyYW5jaAorMzg5NzUgZjIzMDA3ZjkyMTdiMTM1ZTEwZWJjOGU0MDc0ZGI5MWQxZDExYmYyNiBhc3QtYnJhbmNoCiszODk3NiA4YWU4ZTY0Y2E5YmQ0ZDg3NTRjOWVmYjk5MTc0M2Y3NThiNTE4MDkzIGxlZ2FjeS10cnVuaworMzg5NzcgZTc5NzkzYThlZWVhYjVjOTg1MmY1Y2M2Y2M1OGFlMGI0ZDJlNDE2YiBsZWdhY3ktdHJ1bmsKKzM4OTc4IDRmZGE0MDYzY2M4Y2MyYzdjZTVmZTlkMjczY2EwMzFlNzIxZjcyNmYgcmVsZWFzZTI0LW1haW50CiszODk3OSBlYzRjMTZmZTczODRjZWQ1NjVhOWJjYmNlZjhiY2ZhYjY2MmY3MjdiIGxlZ2FjeS10cnVuaworMzg5ODAgNWU0NWRjYmY3Y2ZmZDA0YzNlMmZmNDMxYWE0Mjc1MWNiOGI3NDcyYiBsZWdhY3ktdHJ1bmsKKzM4OTgxIDc0OGM4ZTJkNDBlZWMwNWNkNWZlMTlhYzI4OTg3NzFmNjcyNmViYzggbGVnYWN5LXRydW5rCiszODk4MiBjYTVlZjdlZTNmNDE3YWMzMTFjY2YxMDk0OWJmNDcxZmE4NGZhYTMzIGxlZ2FjeS10cnVuaworMzg5ODMgZWU5OWRiMDZjMGViY2ZkODZhYzVkYjkzYzY2MmI0ZTNiMTAxNjNkMSByZWxlYXNlMjQtbWFpbnQKKzM4OTg0IGM1NTUxMGRhZWJkMjUyZDQxN2I0YWE2YjYwMGE3ZjAyZmQwMmMwOTQgbGVnYWN5LXRydW5rCiszODk4NSA4MDc2NDI0ZDQ1NWQwZWIzN2I3MWUyNDNiNGE3YWZkYzlkYzFmODBjIGxlZ2FjeS10cnVuaworMzg5ODYgMDc4ZGE0NzRiMzAyMTMzYTMxYzlmODJkN2NlOWYzYTkwNmZhZDJkOCBsZWdhY3ktdHJ1bmsKKzM4OTg3IDJlYjU2OWI2Y2UyMzRhODZkNjliZmRkYTQwZTFkOTEyNDZiYjhmMzEgbGVnYWN5LXRydW5rCiszODk4OCA5MjRlMDI4MmI1N2U5ODM1ZWM2YTExZjg3ZmU0ODBmMWNiYjFlYjE3IGxlZ2FjeS10cnVuaworMzg5ODkgOTJjZDk1MWNjNGIxOGQ4YjJhM2M4OTM5NGRhNGI4ZjNlYjJlMDdlMyByZWxlYXNlMjQtbWFpbnQKKzM4OTkwIDg1MTQ1OGZmZmQzNDIxMGY2MjBlYjM4MGUxMWM2YWEzMzM0OTZhM2MgbGVnYWN5LXRydW5rCiszODk5MSAxNzNlOTBlMGQyZTMxZDdkOGI0MDY2NjAwNDZjNDY2MzU3N2VhZmQ1IGxlZ2FjeS10cnVuaworMzg5OTIgYWExYzUzNjY2MDdkNmY1YTk0ZTlkMzI3YWZkYWJkNGExY2JmMjVjMCBsZWdhY3ktdHJ1bmsKKzM4OTkzIGEyYjUwNDVkZjRmODU2ODBiZjBmZDZkMDAzODM4MGJjZThmOGU1OTUgcmVsZWFzZTI0LW1haW50CiszODk5NCA3NGE4NDU4YjIyNzYwMmY5YjRkNTVmOGQ1MGFhY2E5YWZlZDllOTUxIHJlbGVhc2UyNC1tYWludAorMzg5OTUgYWJlNWE1ZTM5Y2NjN2RhZDIzZmRlYTg5Yzc2N2JmOWJlNDc5OTVlOSBsZWdhY3ktdHJ1bmsKKzM4OTk2IDkxYjhjZGJmZDdiNDY1OTQwMWY5YWYxNzQ4YWY0MTc2YmY2ZjViYTggcmVsZWFzZTI0LW1haW50CiszODk5NyAxMzMyZjJlNzA1YjIxNmVkMWY0NWViOWIyMzdjNmEyYjA5YTc4Y2UzIGxlZ2FjeS10cnVuaworMzg5OTggODM1YWIwNjk4NGE5YzhkOGY2NWExYzEyNzQ1M2FkZTFmM2M4NDE0NyBsZWdhY3ktdHJ1bmsKKzM4OTk5IDVmYjIxNjMyMzFkMzM1ZDU5YzE1YWY2NDViNzFjMGFkNGUzYjZkMDEgbGVnYWN5LXRydW5rCiszOTAwMCBkYjE2NzZmZGI1YjkxYzA2NDAwYzM3MjRhODJhNmMyNDM3MGJkNDUzIGxlZ2FjeS10cnVuaworMzkwMDEgZjg5Y2JlNjlkYjYzZmEyNWJhYzhhZWE2ODZkYjJhZjY3MzMwN2M2OSByZWxlYXNlMjQtbWFpbnQKKzM5MDAyIDUxZmUyNDEzODQ4NmU5NTRjYzI2YmI5NDU2M2UwYjM1ZTljOGM4MzcgbGVnYWN5LXRydW5rCiszOTAwMyBjNDI1Y2RjOGFlOGE3Y2E4ODZjMWE4NGQyNGE1NTU4OGVhOGEyNGNkIHJlbGVhc2UyNC1tYWludAorMzkwMDQgNGY1ZDI2ZjVlM2U2NDUyZmQyMTUzMzNmNDQ5YWU5NTczYTkwM2RhZCBsZWdhY3ktdHJ1bmsKKzM5MDA1IDQ2NjZiNDU3NGM5Y2I1ODNmZmE2NTAzYzIzOTNhNDhhODM1ZmRkYjUgbGVnYWN5LXRydW5rCiszOTAwNiA2OTY0NTgyNDBhNjVlYzRjMzdkODA1NmVjODI4MTkzYjg5YTNiOTY0IHJlbGVhc2UyNC1tYWludAorMzkwMDcgMGE5YTQxMGJmNzRjYmIwMzhiNTQ2ZDc5ZWRmODJiOGM4YzMwOWE1NyBsZWdhY3ktdHJ1bmsKKzM5MDA4IDJiNTE4NmI1OTViMWFkZGRkYTdmMDUyMmU5MmIwNDVhZTg0MTU3MDIgbGVnYWN5LXRydW5rCiszOTAwOSAyN2FhNWVlYzU0MDA0ZDdjMzIzZTY1NzYyZDkzMzg1NGI5ZjhmNzA1IGxlZ2FjeS10cnVuaworMzkwMTAgZDFiYWMyMGMwYjlmNGUxMmJmYzE4ODBmNDI4ZWI1NTAxZWY3MzBhYiBsZWdhY3ktdHJ1bmsKKzM5MDExIGFiZTk2ODYzMjVjMzhiYTA4MzZiMzM3NWUyMmNlMGM1YWU3MWNjYjUgcmVsZWFzZTI0LW1haW50CiszOTAxMiAyMDE1ZDE2ZDI2NDcwNDZiNTJmYmZmMDVlNzZjNGY2MjhiYTkxZjk4IGxlZ2FjeS10cnVuaworMzkwMTMgYzZiN2ZhZGYwYWRhZTI3ZmVjNTU2YTBhNDMxZjIxMWE2YmE0NTJiYSBsZWdhY3ktdHJ1bmsKKzM5MDE0IDE3Y2NhYzY5NTQxMzQwMDBhYzk5MzlmNDhmZGI5NGQ3ZjFlZTUzYzAgbGVnYWN5LXRydW5rCiszOTAxNSA0YTVmMTgxYWMzMjQwOGFkMWZlYWY2YmI5NmIzNTg2NTRjNmU1ODk1IHJlbGVhc2UyNC1tYWludAorMzkwMTYgYTUzNTg3Mjk1ZjIwNTk2NTk2MjAzZWQxZjliZWY4MTBlYmVlMDEwNiBsZWdhY3ktdHJ1bmsKKzM5MDE3IDMyMzhhZTZkMmIzMDQyMzMzOWYzNzEzOTQ4MGM2ZDMxYTNmYjZlZGMgcmVsZWFzZTI0LW1haW50CiszOTAxOCA0Mzg0ZTU4NzkxMjYxNDE5OWMxMzkzZDJhNzQ0ZDc1OTc1NWNjNTkyIGxlZ2FjeS10cnVuaworMzkwMTkgNjhiY2U2OGM4ZjkzMjc4ZmY1YmRlZGMyYzVhMGZiOTA1MThjNjQ1NiByZWxlYXNlMjQtbWFpbnQKKzM5MDIwIGIyYmQwNWMwMWEzNTFjZjgzYjJiMTFiMTc3ZjQ0MDE1NTUxYWM2MzggbGVnYWN5LXRydW5rCiszOTAyMSA5ODE3OWM4MjgxY2RiNjEzMjYwYWM0ZDJiMzdkMWI4MmM0OTg2OWQzIHJlbGVhc2UyNC1tYWludAorMzkwMjIgODM0MWNlZmRlY2FjZThjMzJhYWZlOTkyYjIxOGQwZjNhNDE2ZWQyZiBsZWdhY3ktdHJ1bmsKKzM5MDIzIGYwYWUxMTk0ZGI2OWVhNWU1ZTE3YTNkODFjZDYwYTVmYzhlMjc1ZjEgcmVsZWFzZTI0LW1haW50CiszOTAyNCA4NjBkN2Y5M2U2YjRjOWFlYTQ1YjNkMjBkMDFlOTAyMTRlNjAyMGVhIGxlZ2FjeS10cnVuaworMzkwMjUgNTZhYzQzZDlkNjI1OGIxYTYwNmE1OTEwZjlmN2M2N2UzMzdkZTg0MSBsZWdhY3ktdHJ1bmsKKzM5MDI2IDE3MTRjMjQ5OTI4ZWY4YTBkNWE2Njk4NTBlMzc5YjlmZDIwNGIwYTQgbGVnYWN5LXRydW5rCiszOTAyNyAyZDA2OTNiOWYwYmQ4Yzc5NGQ0OWZhMzA1ZDBiNDk3MmVkYzg3OTkyIGxlZ2FjeS10cnVuaworMzkwMjggZjU1ODlmYzNkOTc3MTQ4M2IzZGFmODI2OWY3ZjAyOGQwNTNkMDQ2ZSBsZWdhY3ktdHJ1bmsKKzM5MDI5IGFjZjY4ZjY3Yjk3NWM3NTFhY2JiYzYwYWJkNWQ5Y2FiYjUyNDMzYWQgcmVsZWFzZTI0LW1haW50CiszOTAzMCAyMzRiMjJhMmFjZjNiNzk2MmVhYTA0NzRiN2MyZTdlNTcwMDU3Y2IxIGxlZ2FjeS10cnVuaworMzkwMzEgMmU5ZTY0MmE1OGNlZDFmODliNGU0ZDg3ODRhOGE5MjgwMTdiODk4YiBsZWdhY3ktdHJ1bmsKKzM5MDMyIDRjMjM3NjIwMTExNWQ1YWFiOTI0MjMwYzk4ZDhmZDNiNzQzMzg5OGEgbGVnYWN5LXRydW5rCiszOTAzMyA1MjJjOWE0OTA0NDEzYzk4OTM1ZTFkMjc3MzIzZTE1YmIzZmI1ZjAwIHJlbGVhc2UyNC1tYWludAorMzkwMzQgMDlhOTEwY2I2YzhmZjAzYjgxNTdiMjg5NzlkZDA3YzZkZDkyMjJkMCByZWxlYXNlMjQtbWFpbnQKKzM5MDM1IDk3M2FhNGVlMTYxNTJhZGEzNzY2MmFjNmQwZjZiZTUyNWVjMzk5MDcgbGVnYWN5LXRydW5rCiszOTAzNiBiNmQyYTlkMWE5MzNhN2MwZjhiMzUzZjM0MjEyNzQwYzMyYzMzOTQ1IGxlZ2FjeS10cnVuaworMzkwMzcgZjNkMzE1MWY4NDE3OWYxZmZiNmVkZjFmNTIxZTA1MWY1MGY5MDQ4NSByZWxlYXNlMjQtbWFpbnQKKzM5MDM4IGFiODNhYjI3YzgzN2I2NDFjMGEzOWM0YjBlMjFiOGU1YzMzZWRmOGEgbGVnYWN5LXRydW5rCiszOTAzOSA1ODYzMjA5MmUwMjMyNzBjOWFmMzQxYmU0M2JiNzRjMTFiZGM2NmUzIGxlZ2FjeS10cnVuaworMzkwNDAgYWRmMTg5ZWI0ZjU4YThlNTk3MzdmZmYwNmU4MmM5NDExZmMwNjU1MCBsZWdhY3ktdHJ1bmsKKzM5MDQxIDU4NTA1OWRlMmI0MDRhZGZjOWE5YjlkMjY0N2Y2NmJiYThiMjc4NGQgbGVnYWN5LXRydW5rCiszOTA0MiBiZmM5MWQ0YWY2NDUzMmEwZTFkYTg1NzI2NmYwZjUwZTY1MTNhNTBhIGxlZ2FjeS10cnVuaworMzkwNDMgMmZiMGM3NmQwMjUxYTFhNzAyNjU4ODJmZDgxMTE1NzZmNTgzZDk5NiBsZWdhY3ktdHJ1bmsKKzM5MDQ0IDdlYTJiZTJjMGUxZGUwZjdhYzhiY2U4NjAwY2JkMmIxNDQ3MWVjYjYgbGVnYWN5LXRydW5rCiszOTA0NSAyZDgzMzEyM2IxMTkwNjM4Yjg4Y2NkZjkyMDJiZDg5Nzc4NWVkMjhmIGxlZ2FjeS10cnVuaworMzkwNDYgMDQ4Njg5NTlmMWZlNjgzMmNjOTk0OWEzY2JiNWUzYTMzNTdhN2JmYyBsZWdhY3ktdHJ1bmsKKzM5MDQ3IGRhNzcyMDA3ZDM0ZDgwNTlkOTYyM2IyNjI0ZThiYTYwM2E3ZDhmNjIgcmVsZWFzZTI0LW1haW50CiszOTA0OCAwZWM3MTE1MmM3ZTJiZTEwMWUxNTkyZGE3YzZmOTMxZjhhNDFiMDBlIGxlZ2FjeS10cnVuaworMzkwNDkgMmVlNjNmZjQ1OTcwZmRlMzM3MDIyODA5Y2I5MDQ4ZmU1MDE5ZmE1NyBsZWdhY3ktdHJ1bmsKKzM5MDUwIDUzNGY4ZWE1NzM3N2VhODkzMWQ1YjI5N2I2YzdjYjVlNzQ5ZDMwNTggbGVnYWN5LXRydW5rCiszOTA1MSBkYjJjZjc1OTk0OGFmMjUxMmI1YzIwM2IwYzZmZTY0YTVkOTRkYjlmIGxlZ2FjeS10cnVuaworMzkwNTIgY2RlYzk3OGI5MTZjZTI1YjcxNTMwYWZmMjA1YzhkODNmOGM2NThiMyBsZWdhY3ktdHJ1bmsKKzM5MDUzIDcwNjgxMjY3YTc0YTlhNjM3NjE1MzE1NWQ3ODdiNTljY2U1YzA4NzggbGVnYWN5LXRydW5rCiszOTA1NCAzZTBkZDYyZWUzMWJmN2NkODY0NDVmY2YzOTk4ZjM2YzY2OGZlMGM2IGxlZ2FjeS10cnVuaworMzkwNTUgMDA4N2FmMDk1M2Y0ZGM1ZGE5ZTI3NWRlYjIxNWUzOWJkZDEyYzQyNiByZWxlYXNlMjQtbWFpbnQKKzM5MDU2IDVkMzNkODNlOGRlYzhhOTRhMGQ5Y2EzOWU2ZjNkNzJlNjhhMWIyNDUgbGVnYWN5LXRydW5rCiszOTA1NyA2ZTkzNDQyZTI2ZGQwM2Y0OWI2NTViY2NkYzY5NjUyNzFmNDhiYWI2IGxlZ2FjeS10cnVuaworMzkwNTggMDEyYTBhZGEwZDA1ZmU4MmY0YTMxYTgyNzE1Njg1ZWE2OThjYTlkZiByZWxlYXNlMjQtbWFpbnQKKzM5MDU5IDJjYjYyODYwMDA1ZjYwMGE0MDlhZGJhZjAwMGM3MTU3NGMzZjYxY2MgbGVnYWN5LXRydW5rCiszOTA2MCA4NmU5ZjYxNjk3ZDhhZmRmNDE1NzUyMTRkZTRlNzJhYzVhYTkyMmE0IHJlbGVhc2UyNC1tYWludAorMzkwNjEgNzdkZTIxY2NkMjEwZTRhMmQyNjliM2YyZjRhNjllMjZkZGI4NGQ2NiBsZWdhY3ktdHJ1bmsKKzM5MDYyIGRjNjhkZTcwMzc2YjQwN2U5YWU3MTA0NzE3YjZhZWRhYmI3Y2FlZjIgcmVsZWFzZTI0LW1haW50CiszOTA2MyAzOWJiOGE0MGEyYzg1ZTVkOGFlMGIyNGRhMGMwODcyMjU2OTg0MGIzIGxlZ2FjeS10cnVuaworMzkwNjQgODI5ZjY2ZDU2MTQwYzI5ZjNmMDRkZDJlYzlhODg2NDM0ZDM3NGYwNCByZWxlYXNlMjQtbWFpbnQKKzM5MDY1IDNkZDhkNDFlYzM1MDMwMjA4MDQwMmE2ZGNhNjk4N2Y0ZWFiMzkzZGQgbGVnYWN5LXRydW5rCiszOTA2NiAzM2E0ZDdlNWM4MmYyYmNiZTRkNWQ0NWJlY2M2MjBmNTNmMzY5MjczIHJlbGVhc2UyNC1tYWludAorMzkwNjcgYmJiODRiNTg1NmZjZTRkZWNiNWYyZmVjYWU2OTA1NTEzOWVmY2I1OCBsZWdhY3ktdHJ1bmsKKzM5MDY4IGZiMmY1YWE0ZDVhYjAxZjVmNTZkY2RiNDhmNzgzOTU0MjY4NjM0ZjcgcmVsZWFzZTI0LW1haW50CiszOTA2OSA4ZGJiNzMxYmFhNjBmMDY1NGFiYzRkODhhNjMxYjZlMGM0YjgwYWFhIGxlZ2FjeS10cnVuaworMzkwNzAgZDYwYTUwYTkwZmQxNTBlZTgyMzUzYzZmYmFiZDdmMWRhYTdlMDEwYyByZWxlYXNlMjQtbWFpbnQKKzM5MDcxIDMyNTNkYmQ3MmI2MGFjZGFmODYyYzU3YTc2MDIzYjZhY2Q4MTk3OGUgbGVnYWN5LXRydW5rCiszOTA3MiBlNWY2MmUwNDljNmZkOTIxMGI0ODBjNDQ4OGI4YTU5NDA2NzA0YmE0IGxlZ2FjeS10cnVuaworMzkwNzMgOTEwYjVkYjQ2MjNlMzFlYTA1MDFlYmZlMWMzODIxMjZkMjI3NDFmNSBsZWdhY3ktdHJ1bmsKKzM5MDc0IDk5MzA5ODAyZDQ5MDQ4ZWZjZmU2ODhkZjRkODdiZmRkYjhmZTJlNDEgcmVsZWFzZTI0LW1haW50CiszOTA3NSAyOTg1ZmM2MzA5YTg0YTllNmNiMmQ5YTEzYjQ5MDNmMmJmMDk5MTc3IGxlZ2FjeS10cnVuaworMzkwNzYgZjg0MGY0NDcwMzI1MTlkMTE1NDVjY2FmZDc4YmQ0ZGJmOTRjNTJjMSBsZWdhY3ktdHJ1bmsKKzM5MDc3IGI4NDEzOGQ5OGNmYTAzZmQ5MDE1MDM2MWU4ZTNhZjJjNGNmYjc4NjggbGVnYWN5LXRydW5rCiszOTA3OCA3MjhhMGRlODgzOTVjMjMwZjY2YTQyYTk5ZjUwNDRiM2I2OTI5NjBlIHJlbGVhc2UyNC1tYWludAorMzkwNzkgMDZjNzYyNzIyODkyYjhjY2QyYmY1MDU1MmQ4YmUwZDA2YmVjMmJhMSBsZWdhY3ktdHJ1bmsKKzM5MDgwIDRkMWRhNjM2MTJlYjVjOWRlODc0NGY1YjdmOGM0MjZkYjgwNGM5NDkgcmVsZWFzZTI0LW1haW50CiszOTA4MSBhMzFhNzcwYmI3Nzg1ODc0ZTQ0NzExODM3YTBlM2EwYjVjMGMyYTUzIGxlZ2FjeS10cnVuaworMzkwODIgZjU0NzNhNzYyYjUwMTZiNjJhYTUzYzg2ZmIyNGNiODExNjk3MzAyNCByZWxlYXNlMjQtbWFpbnQKKzM5MDgzIDNjNmFlZDNmM2EzMTAyYmJiMWMzMmJkZmUyNzMyY2FiY2QzOTM1MjEgbGVnYWN5LXRydW5rCiszOTA4NCA4MWNhMzVhZDkxOTllODgxNDgyZDFhZjk5OWVmYmYxZjgzNTg0MWUzIGxlZ2FjeS10cnVuaworMzkwODUgZGFlYmZkZTBlMWNmMWM0M2U4YWNiNjFkMWIyNmZkYjQ3ZDJjM2FjNyByZWxlYXNlMjQtbWFpbnQKKzM5MDg2IGM4MmI3NDZjNDI4ZjhiM2JiNDdhODVmYzRmMDI1MjNjN2IzNTU4NzggbGVnYWN5LXRydW5rCiszOTA4NyBmN2MwODhhOGI1ZDNjODE5ZDM5Mjk3OTI3Mzc5ZmQ5ODQyYmY0ODAxIHJlbGVhc2UyNC1tYWludAorMzkwODggYjMzYTcyNjQ0NTRmMDYwMTllYjcxOTdkOWFiZmYzMDNmN2Y1MTJjMiBsZWdhY3ktdHJ1bmsKKzM5MDg5IGM1NzQyODJkNTBiZmVlNDBjM2I0ZWUxNzE3NTQ0NDljOTA4ZGJmZmMgcmVsZWFzZTI0LW1haW50CiszOTA5MCA5OGY5NmYwN2Q1NDk4ODUzODEzYTAzOWE2NGFjMGQxYTZhMThhYWU4IGxlZ2FjeS10cnVuaworMzkwOTEgOWE4MTJlYjhhMGFiMjg2ZTZjNmIzMzBmZGEyNGMwYmI5ZjkyZDliMCByZWxlYXNlMjQtbWFpbnQKKzM5MDkyIDczOTAzMmJlOTZkNWQ5MDVmZDM4YjAxNWY1NDc1ZmJlYmIyZjg1NDggbGVnYWN5LXRydW5rCiszOTA5MyA2YWQzZjg2MDM0NmU5OTNhMmUyNzNhM2RjMjg5NzcxMmNhNjhlMGI5IHJlbGVhc2UyNC1tYWludAorMzkwOTQgMDIxYTRhYmY3ZjI3NGIzMjQ1MzY0YzliNzQxODQ0ODMwM2QzNTM4NyBsZWdhY3ktdHJ1bmsKKzM5MDk1IDFhNzBjYmY3NTljYWU1MjA3YTJkMmE3OWM0MTk1ZTRkYmFiZjdjNTQgbGVnYWN5LXRydW5rCiszOTA5NiBkNTc0MjhlODU4ZmMwZDA0ZmNmMDNhMTVjNzkxOGJiMTE5ZDIyMjdhIHJlbGVhc2UyNC1tYWludAorMzkwOTcgZWFmYTEzYmVlZjI2NDZkYzNhNWE0NjFhMmQ5MWRjYThhNjEwM2MwYyBsZWdhY3ktdHJ1bmsKKzM5MDk4IGQ2YTE4YTMzYmQ2MjU2ZjcyMjNmYTM5ZDM0NzI4ZDI3YjU0NzI4NjIgbGVnYWN5LXRydW5rCiszOTA5OSA3OTkwNDU1ZTZhZTBhMGQ2ZDNhYTE2MDkzYjM5Yjk1YWFiM2I3MGYzIHJlbGVhc2UyNC1tYWludAorMzkxMDAgOWU0OTI3M2ExMzM0Mzk2YTA3ZjIzYjlmNzg3MWY1MmViMGUwOGY4MCBsZWdhY3ktdHJ1bmsKKzM5MTAxIDEyMjg3ZWZhODc3N2Y3MjJhN2E1MjIxYWVhZDQ3OGMyYWI4ZDBlZDIgcmVsZWFzZTI0LW1haW50CiszOTEwMiAwZmMyOTAwMjY5MzlhNmMwZDgzMDdkOTE1ZDRmYzNlNTkzMWI1MzQzIGxlZ2FjeS10cnVuaworMzkxMDMgOGZjNWQ2YmMzNWZmZGUyMjNkZDk4NWExNTM4OTg3MDY2OTQwODllOCBsZWdhY3ktdHJ1bmsKKzM5MTA0IDI3YTcxODIyMWU3MmU3ODRmNDFhMTYxODc2ZmVjZjI5NjIxOWVlYjIgbGVnYWN5LXRydW5rCiszOTEwNSBjZjdhODQ5Y2U2MWZhNjA1Zjk0MWRhZGM0MTEwMTcxYzRhOWJkNDZlIGxlZ2FjeS10cnVuaworMzkxMDYgNjk1MjgzY2JlNDNmYzkwYzM3ODU1NDdlMmNlOTljOWVjNDM5MzY2YyBsZWdhY3ktdHJ1bmsKKzM5MTA3IDE2ZGZlMTUyYjllNmRhNWY0MjNkYzIwZmM1NDM3MDdlNWRmNzAxZGYgbGVnYWN5LXRydW5rCiszOTEwOCAzMGIxMzQwMWM5MTI1NjQwODgzNDU4OTcxZThkNDM0MjQ1NTY3ZjMxIHJlbGVhc2UyNC1tYWludAorMzkxMDkgOWU0YmYyOWU2YzJmY2QzYThhZTQ3ZjYyYjQ5YWQ0MGI3NGU3ZDU3NyBsZWdhY3ktdHJ1bmsKKzM5MTEwIGQ3YzViZDU5Njk4ZDA2ODhmMDkwMTg3YTNjYzNkM2NjMzQ4Njg4MTMgbGVnYWN5LXRydW5rCiszOTExMSBlNmIwNzViZDc4NTVhZjU0YTU2NWRjMzFhNTljNDA3YjgwMzEwZmJhIGxlZ2FjeS10cnVuaworMzkxMTIgYjA1Y2MxMmEyMTc5ZjI5NDE3MzY1NDQxYjBkNGRjMWExZjZkOTNmMiByZWxlYXNlMjQtbWFpbnQKKzM5MTEzIGEyMDQzYWZmZDU0MzMwMjExNDViOTc5YmNjZjQ4NTM5OTU2M2I4NDkgbGVnYWN5LXRydW5rCiszOTExNCA1ZDk3N2Q3Y2MzMzU2OTcxNGRmMDczNTJhYzA1ZDViYjAwMjcwM2VmIHJlbGVhc2UyNC1tYWludAorMzkxMTUgMTgxODRkODJkYWVhYTE5YWI0ODg3NTg4MTA0YzhmZjk0OTMwZWVlNyBsZWdhY3ktdHJ1bmsKKzM5MTE2IDlkMWU0NjExMWQ5YTcwODI1ZGI0YzBiOTZjZGJiNTdlODdmYWYxOTYgcmVsZWFzZTI0LW1haW50CiszOTExNyBmOGYxNWU2YWVmM2E0YWE5MzgzMDFkZGY1MzNlNWQ4MTdmM2JmNDE5IGxlZ2FjeS10cnVuaworMzkxMTggOGY3ZTQ3YTBhYWNhYjZjODA1MjlhMGQ4NDdjOWE0ZDA4ODBlYTBjNCByZWxlYXNlMjQtbWFpbnQKKzM5MTE5IDY4MjY2ODAzYzAxMzRkNDM5OGIzOTU0MDRjZjAzMjhhYWEyNjQwMzkgbGVnYWN5LXRydW5rCiszOTEyMCBkMDdlOWMzN2JlYTA5ZTFiODBiMGM0NzYzZjRhYjQ0MDAzMjExODU3IHJlbGVhc2UyNC1tYWludAorMzkxMjEgMjEwY2EzODNhYmU3NjIwZDc4ZjQyMjM1ZDdmYTU5MDdjYWI1ZmUxZSBsZWdhY3ktdHJ1bmsKKzM5MTIyIDc4MDRiYmIyNjQ5MjhlZGMwNGYwZDI1Y2NiYWI3MTNjNjg3YjYyYTEgcmVsZWFzZTI0LW1haW50CiszOTEyMyA0NzQxODUwMjk0MmE4NWFiNmEzMTk1ZWJhODBlNjExNDY5YWVlYjIyIGxlZ2FjeS10cnVuaworMzkxMjQgMmY5Y2ZlY2EyNzk5NmNkZmZhMmM3MWUyNDUxMjM5ZDYzZmIxODI4MiByZWxlYXNlMjQtbWFpbnQKKzM5MTI1IGNkODc5Y2E4NDYyNDQ4NmRjMWRhNDg1NzAzZWY0NmYzNWJjNmZlN2IgbGVnYWN5LXRydW5rCiszOTEyNiA3MjZjOWJjNDljMDQ4YWFmMjFmZjkwMDliNmFiOTliZDNlZTBkM2JiIGxlZ2FjeS10cnVuaworMzkxMjcgNWRmMWM2OTJiYjQxNjY2NDRlYmMwZWQ5MTc3NmZiN2JmZWJjOTIyMSBsZWdhY3ktdHJ1bmsKKzM5MTI4IGUwMjA4N2FjNDc5MjY4MDE5NmYxOTI1MWY2YWQ2OGY3MmQ3OWEwZjIgbGVnYWN5LXRydW5rCiszOTEyOSAzMzQwNTM2NDM2ZjVhMGUyODI1NTA0MWE4ZDYzZmQ3Y2Y5ZjI0MzEzIHJlbGVhc2UyNC1tYWludAorMzkxMzAgYzU4ODg0MTM0MTJiOTRlYmNmYzA2ZTFjZTIzOGRiODk3NjZkZDU1NiBsZWdhY3ktdHJ1bmsKKzM5MTMxIGY5NGQ1YmZhZDA3OGY4MWJjMjU0ODY1MTQzOTQzNTVhM2E1ZWEyNDAgcmVsZWFzZTI0LW1haW50CiszOTEzMiBlMjYzNmQxMDhkN2QwOWE2NWQ4ZTk5NmZhYWQwMzEzMWVjYmY5YmE3IGxlZ2FjeS10cnVuaworMzkxMzMgODk3MTA4MDViYzNkZWZlODYyNGZlZjEyYWM1ZWQyNGUyYzQ3YWI4MiBsZWdhY3ktdHJ1bmsKKzM5MTM0IGQ2Yzg3NjFkN2YzMTQ3NWUwMWQ1ZDcxNWQ2MjllZmRjN2JkZGE5ZTYgbGVnYWN5LXRydW5rCiszOTEzNSA2NjZjMGVkNGZiOWQ0ODBlZWNjYjJjYmYxZTgzNTMzYTRlM2RmYTEwIGxlZ2FjeS10cnVuaworMzkxMzYgODU3ODcxYzcxYzNiYjkwNzZiMGIzOWUzN2RlZTYxMGVjM2RhZDNjMCBsZWdhY3ktdHJ1bmsKKzM5MTM3IGM4NTcwNzBlOTdlOGQxZTNhNzU0NDk0OGI4ZGZiNjdkODFjOTQzZTQgbGVnYWN5LXRydW5rCiszOTEzOCBiM2NiNjQyODlkMmJlMjQ3NjgwZmMyYjFhZDNmZTYwYTE4ZGQ4NGU4IGFzdC1icmFuY2gKKzM5MTM5IDI3NjBhMmQ5OTIzOGYxMjFjMTk0MmYwNzcxYjE4ZmIyNzkyMzU5YTkgYXN0LWJyYW5jaAorMzkxNDAgNWIyM2E1ZGNjNmEzZmYyYjZmODhlNmVhMDliMjRlZDY0MmJlMzcwMiBsZWdhY3ktdHJ1bmsKKzM5MTQxIGZkY2RlNTlkZmExYmQ4OWYyNmZmMTNjYjVhM2QwZDE2YTZiYjM1NmMgbGVnYWN5LXRydW5rCiszOTE0MiA3M2U2Y2I1ZjQwMzllNmMwZGE1OTVlODNlZDI5OWE3ZjU2NzVhNjQwIGxlZ2FjeS10cnVuaworMzkxNDMgM2I1ZjU0NjZmMTA1ZWFhYzJjN2MzOTViZDUxMjQ2YjJiOWFlZjFiNyBsZWdhY3ktdHJ1bmsKKzM5MTQ0IDczNDkyNWI0NmJhN2U0N2RmN2I4ZWE4N2E1ZTc2ZWEyYzU5MTg0N2EgcmVsZWFzZTI0LW1haW50CiszOTE0NSA5MjQxMjE4OTkyYzFlMDY3MTZiM2ZmODExYWI0MGUzZTIxNWMxYzdkIHJlbGVhc2UyNC1tYWludAorMzkxNDYgYjg2MzkyZjU1YjU5N2VmNDMzNzYwMTdjOTgwYTIxZDY0NDBkYWE1ZSBsZWdhY3ktdHJ1bmsKKzM5MTQ3IGI4YzkwNzZkMTc0ZTkyYzUzZGEwMWU4MjYxNDg5MTEyYjg0ZTI2MzEgbGVnYWN5LXRydW5rCiszOTE0OCA1OGQ1YTZjN2I2MjkwZmMwMDg4Y2UxOTY4NGNjNzkzYzNlMTA5YjM3IHJlbGVhc2UyNC1tYWludAorMzkxNDkgNGJmOTllZjA2ZDM4ZGIzNjYxNzBhYTRkMDdmOWMxNzk1ZDM5NzY2ZiBsZWdhY3ktdHJ1bmsKKzM5MTUwIDMxZDk1NWFiMjIzMmVjOWVmNjFjYTYyN2IwZjc0NDkxZWRlZmJmZTkgbGVnYWN5LXRydW5rCiszOTE1MSA5YzE4OGZmNjMxMzE5NzZjMjhkNGZkODc3NWNiNDAzODkyMzQ0NWMzIGFzdC1icmFuY2gKKzM5MTUyIDgxMjdhNTVhNTdjYjdiZDc4MGE1NGQxNDExNGQxODc3YmMzYjY0N2UgYXN0LWJyYW5jaAorMzkxNTMgOWVjZjAzZGZkNWQ2MTc3YjIzZDYwZmUyYzdkMDVhN2RhZDY1ZmMwYyBhc3QtYnJhbmNoCiszOTE1NCBkMjU2NTZhYjNlMWQwM2FlODBiYzM1OWE2MzEzYjBkNTcwMzRhZGY4IGFzdC1icmFuY2gKKzM5MTU1IGFhMmYyZmFlZjdkMjkxZGE3ZGMwNDc2ZjZiY2U3ZThkYWIyY2MzM2UgYXN0LWJyYW5jaAorMzkxNTYgOGQwZDM5NWMyMTFlZDc5NmE5MmFhMWUwM2Q5NDU4N2MzYzNiZDBkNyByZWxlYXNlMjQtbWFpbnQKKzM5MTU3IGUwNTk4OTgzZjBhNWY2MjM5Nzg3MDlhODZiYTIxNjI1MjVlMDc4NDggbGVnYWN5LXRydW5rCiszOTE1OCBlMWY3ZmNhNzg0ZjNhNmZhMzQ1MjI3Y2MyMTk2NTZjMWI2NDgyNjQzIHJlbGVhc2UyNC1tYWludAorMzkxNTkgZGRkNzhlYTM1MTljNTFhY2JhYWI4NDczYWI1OGU0MTczOTdkMjQzYSBsZWdhY3ktdHJ1bmsKKzM5MTYwIDk1NWQ0YmFkZGJmYzg2NTlhMjg3ZDZlMTg3MThjODY3ZmJjYjQ5MmQgbGVnYWN5LXRydW5rCiszOTE2MSAyMTRjOTZlNTQ5MDUwYmFjM2FhOWEwYmY2OGE2ZWRmMzI0ODdhYzQ3IHJlbGVhc2UyNC1tYWludAorMzkxNjIgYjY3MDBiM2RlNjk1NWQ1MWQyYjYwOWQ0ZWYzNDFmZmE2MTNlMDIwMSBsZWdhY3ktdHJ1bmsKKzM5MTYzIGRiNzY4MzEyOTlkMDAwODVmOWRhZDcyNGQzMjJjMTFiYTc0MGIzMTUgcmVsZWFzZTI0LW1haW50CiszOTE2NCAzNTU5MmJhZDM0NWJkZWQ3YTQ5Yzk5YWE5NTMwMDhjMDU3YmFjYmI5IGxlZ2FjeS10cnVuaworMzkxNjUgNzYzZTg1YjEwN2I0MGRiYmE5NTY1MWNjNWRhNDIwZTY0ZTgzODUxOCBsZWdhY3ktdHJ1bmsKKzM5MTY2IDU3YTRkMjc0NjYzMjM4NDZkOTczYTVmYTBhODA3NmNjZWZkMDgxZjIgcmVsZWFzZTI0LW1haW50CiszOTE2NyA4NDdlNThkZGI3ZDllZTZmOGQ4YzcyYmViMmVkNTExYzBhN2ZiZTFiIGxlZ2FjeS10cnVuaworMzkxNjggYWNlN2Q4MzYwODNmZTc0MTAxNzNlNjNjZTA4YmY0NjAxYWI1ZjAwNiBsZWdhY3ktdHJ1bmsKKzM5MTY5IGY5YzVhZTY5YzE2ZWUyYjVhMWQyOGRkMDNiNjcyMDFiZGZlYTFlYjIgbGVnYWN5LXRydW5rCiszOTE3MCBkMGM2OTY1YjUyNWVjYmFlZTg3YjBlYjNlMTZiN2Y3NTdkNDk3ZjkyIGxlZ2FjeS10cnVuaworMzkxNzEgYzA4OGVjYTkwYTYzNTA5MjE0YWNjNDk4MmM4NmE5ZTJmYjEyMTMyOSBsZWdhY3ktdHJ1bmsKKzM5MTcyIDUyNmZhYWFiMDBlYjk1MTlkZmU3ZjBkOWY5OGVjZWNiYzRlYmJjYzIgbGVnYWN5LXRydW5rCiszOTE3MyAxZmRiY2EzNTE0OTg5ZDgxN2QyZmQ0OTJkMGQ0YTIzY2YyYmM1ZDQ4IGFzdC1icmFuY2gKKzM5MTc0IGEwYzMxYjcwYmQxODBmNzhmNjgzODVhMmVlNzE2MTVjYWQyZmY2M2QgYXN0LWJyYW5jaAorMzkxNzUgMDllODhmZDdkNTVhNjhhMWYxMGRhNGFlNzU1YzQwN2I5Y2U5Mzc4YSBsZWdhY3ktdHJ1bmsKKzM5MTc2IGI3MzVlYjQyNjdlOGY5NGNhZDkwMTBkMTMzZjcyNmM0NDEyOGJjNGEgcmVsZWFzZTI0LW1haW50CiszOTE3NyA3YjY0MzZkMjM0NGQxZjQ1ZmI2Y2YzZmNlNzA4OGJmMTliMTczNWNhIGxlZ2FjeS10cnVuaworMzkxNzggNzRjMzcxNzY2MTIxYzgxNjNlMDU5NjRhY2YxOTZiYzBhYWVlNjQxYiByZWxlYXNlMjQtbWFpbnQKKzM5MTc5IGNkNTk1YTY5ZGNhNWNhMmQ5NDg2NmEyMTgwNWI5NmMxMGJiNTdhZmYgbGVnYWN5LXRydW5rCiszOTE4MCA5MTlmMmQxMzE5ODJiOGIxNWRlOWYwNDUyMjg1YTQxZWMxNDc2M2EwIHJlbGVhc2UyNC1tYWludAorMzkxODEgNTU4MTYzY2I3MGE5NjgyZjM3Mzk3ZWZiZDBlYzIwOGE2MWFhMjRmYyByZWxlYXNlMjQtbWFpbnQKKzM5MTgyIDYyZjgxOTQ4MzI5MzliZTE0ZjJiZWRhN2FiNGQ3ZjIyYmUzNGJhNmYgbGVnYWN5LXRydW5rCiszOTE4MyAxOTQ5NzIyZjM3ODc0ZDIzNjc5MWU1NDQyMGU5YWUwNjc2ZjJjNWJiIGxlZ2FjeS10cnVuaworMzkxODQgODc1Njk3M2E2Yjk5MTI0YzljZDA5NWViYjE3MmMyNmQxMmZmNjAzMSByZWxlYXNlMjQtbWFpbnQKKzM5MTg1IGM2YjY5YzZkMDFhMzc3ZDRjOTM1NWM2MTJjZTYyMjRjZmJlODM0ZTggcmVsZWFzZTI0LW1haW50CiszOTE4NiA5NWE5ZmY0N2IxMWQwMzk5Mjk3OTkzOTE1ODZmMmZlNjNlZjJlMWJiIGxlZ2FjeS10cnVuaworMzkxODcgYTQ5OGRjYWFlOWQ3ODI2OWI0NDUwYWU4OGE1ZTlkZTJhOTY5YmNlZCBsZWdhY3ktdHJ1bmsKKzM5MTg4IDAyN2UwMDBkMWY2ZGYwZTA0MTEzZmFhMmNjYzQ0YzFjOTE1Mjc5OGEgcmVsZWFzZTI0LW1haW50CiszOTE4OSAzMmRlN2E4ZDg4NmNjZGY0YzU5ZWFmYzVlMmQxN2U2NTczZTMzNTRmIGxlZ2FjeS10cnVuaworMzkxOTAgMDdiMDFiMzM0MGY5YzI1NDI2YjljMjBiNDI3MGI4M2Y5YmY2ZTc1NyBhc3QtYnJhbmNoCiszOTE5MSAzYTZlZWYzMWU5NWFlMjU1MDdmYzMwMzEyMzEyZjQzYTEzNWE4NTQ2IGFzdC1icmFuY2gKKzM5MTkyIGQ2MWVmY2Q4N2M4ZTM4MzZjYzY1MWYyOGEzM2QxNzY1ZTY0ZDY3ZGYgbGVnYWN5LXRydW5rCiszOTE5MyBkNDc2ZTU4Y2M3ZTc0NWM5YzBiYTQ2MzkwMzY0ZjM5MzUzNTk2N2RlIHJlbGVhc2UyNC1tYWludAorMzkxOTQgOTJiMzdjNzFmOTM1ZWFiYzQ2MWMwNzBmMmI4MDJmOTQ4YzQzOTlkMSBsZWdhY3ktdHJ1bmsKKzM5MTk1IDc0ZjgyMDJkODMxNTAxMzdjOGMzOWVlMTEwYWQ5MWFlOTU0NGQzZjIgcmVsZWFzZTI0LW1haW50CiszOTE5NiBjNTJjZDFmZDk0ZmM1NGJiODRlZDI1NmRkMmRiZTMyZmMyYjhhZjViIGxlZ2FjeS10cnVuaworMzkxOTcgM2Y4NmY4Y2JhMDVlZDU2ODkwMjg3MWExNzc2ZDNkZTE2YWU3NGE5NCByZWxlYXNlMjQtbWFpbnQKKzM5MTk4IDdlMWMxZDZkZWExYzMxNjlhM2IwZTFhODRhZDM1OTY0ODBkY2ExYzEgbGVnYWN5LXRydW5rCiszOTE5OSA5NjhkOTQyMmFmNzg3ZmU2ZmYxYTdmMzMwMTQ2ODk1ZjgzYjY2YzE0IHJlbGVhc2UyNC1tYWludAorMzkyMDAgNzI4ZjgyYmViYzNlYmQ2NjNmMjM3MjE4ZDVmZDcyZDM5YTU1NDdmMyBsZWdhY3ktdHJ1bmsKKzM5MjAxIDg3OWM4NzZiYzU3YTM4OTgzNjNmNWE3MWJmOGQwNzE2MzE2YzVmZWIgcmVsZWFzZTI0LW1haW50CiszOTIwMiBiNDMxZWQ3YmNkYzIyNTBhZjE2ZDkwMzQ1MDY4ZmQ4NjRiMWIxM2M0IGxlZ2FjeS10cnVuaworMzkyMDMgODYwZTBmZDJmZWU4ZWY2OWI5NGFjYTFmMDcyNmRmNzA1MmFmOThlYyByZWxlYXNlMjQtbWFpbnQKKzM5MjA0IGFlZWMzOWZlZDhjNWMxNmY3NjVhYzM5NDI1ZDFmMjFmNjg3MjExZmEgbGVnYWN5LXRydW5rCiszOTIwNSBmYWFkMDk2ZGVjZjZhYjRkMWU0ZmFlYjEwZTM4Nzg0NjliMTc4M2ExIGxlZ2FjeS10cnVuaworMzkyMDYgOWY0MzY1NTEyMzI2MDI0MWUwMjY1YTM1NjZlN2Q2ZWJmNGFiNDAzNyByZWxlYXNlMjQtbWFpbnQKKzM5MjA3IDJiMTE3ZWIxODk0NGQyMjQ0OWNjYmMwOWI2MjdmOTM0ZDc0ZDYyOTggbGVnYWN5LXRydW5rCiszOTIwOCBlNzg5NzAzZmU0YmVlNGFhMjI1Njg3MmY4YWQ3YmI3ZWZmODU5MmNiIHJlbGVhc2UyNC1tYWludAorMzkyMDkgYTkxN2UyYzQ3NmY2NjE4ODEyZGM1OTMzZDE3YWQ0Mjk2NzI0NTQ1NSByZWxlYXNlMjQtbWFpbnQKKzM5MjEwIDFhYzJjM2ExYzNhYzNkMzlkNGQ3ZGRjZjBlYzAxNTY2MGI4OGE3NzUgbGVnYWN5LXRydW5rCiszOTIxMSA5ZDgzOGRkOTY3YjJiMjJhZmYxZjMzMTc5ZjRkNTVkZGJlN2U4NGQ0IHJlbGVhc2UyNC1tYWludAorMzkyMTIgYmU2YWIzZDg2YzI5MjVhZDhlZDA3ZTZiZDEwODYyYWQxNmI4MzljMCByZWxlYXNlMjQtbWFpbnQKKzM5MjEzIDUzYWI1MTYzYzFhYWExOTUzZWJiMWFkMWQxZTdkMTFiZjdhZDA2NjggcmVsZWFzZTI0LW1haW50CiszOTIxNCA0YWRiZDMzMWQzMzUyZWI1ZmFmZDcyZmNiNTg5ZTUxMmY0YjM1ZGIyIGxlZ2FjeS10cnVuaworMzkyMTUgNmViYzQyM2YyZDgxY2U5MGE0NDg5MGU2ZmJmNWEyOGRkY2E1MTVmNiBsZWdhY3ktdHJ1bmsKKzM5MjE2IDk3MDdiYTI3ODg5NDFhMDNlM2Q2OTJiZjRiM2I1ODYwMjZhODQ2MmEgcmVsZWFzZTI0LW1haW50CiszOTIxNyA1MmFjYmI4NTg0ZWFlYjQ2MWE3OTY5YTBlODBjN2Y4YTgyMzg5OTRjIGxlZ2FjeS10cnVuaworMzkyMTggY2E2NmExNmMzNzlkYzIxMDczOWMxMDJkNWMwNTc3MWIxMGVkZDZmMSByZWxlYXNlMjQtbWFpbnQKKzM5MjE5IDQyY2ZlNDYwM2MzMGMwMDE3MjkzNWM2Zjk5YzhjOWM1OWExMzdjYTAgbGVnYWN5LXRydW5rCiszOTIyMCBlZGYyNWMxYTRmNjA4YzRkYjM4OTU1ZTk3ZTYyZWUyNDJkZjg5OTc2IHJlbGVhc2UyNC1tYWludAorMzkyMjEgZjhlNjBhM2YzNDQwOWU5ZjgxZmJhY2M1Mjc2ZjU2NzkwZjU1ZmNhNyBsZWdhY3ktdHJ1bmsKKzM5MjIyIGM4YmQzYjUyMzBjNDI1Y2E0ODViZDg0NjVmYzk3YjllNGVhMzBhNGUgbGVnYWN5LXRydW5rCiszOTIyMyBiNGU1NzAzMzdiZjQ3N2UyMzZkN2QzZjZjYTI1YzkwMzk1MjU5YzUyIGFzdC1icmFuY2gKKzM5MjI0IDMxNDQ3YWRiMWIzNWVjMGJhMDkzNDgyOWFjZGE5YmNjMDQzNTMzZjYgYXN0LWJyYW5jaAorMzkyMjUgMTc3NGZlN2VjMGM3YzcwZDg1MDlhYzM2NWI4YjU0OTA3ODlhZjEyYSBsZWdhY3ktdHJ1bmsKKzM5MjI2IDg1YTM1Zjg3MDFiM2JiNjlhMTU3Y2QwZTI1MWY0NmYzMWRkMWVmYTAgYXN0LWJyYW5jaAorMzkyMjcgMjk4ZDNmYTRlYzM5ZGQxODAyZWY3OWMzYTM3Yjk0MmMzMDkxZGUzNCBsZWdhY3ktdHJ1bmsKKzM5MjI4IDJmZWVkZjg1MDc4OWQwNzUzZTJmMWRkNDBhYjkyYjViNjQxZWJiYWEgbGVnYWN5LXRydW5rCiszOTIyOSA2MzZlNWYxZGE3MzNkN2I3NDdiZGE5Yzc3M2Q0Njc1NGUxNzM3NWUyIGxlZ2FjeS10cnVuaworMzkyMzAgN2E1MGJkODJkZjI1ZjJiZTllM2ZhYWE4MjIyZTdkNzc1YjVmZmNmNSBsZWdhY3ktdHJ1bmsKKzM5MjMxIDM0OWEwZmQ1OThlMDc5ZDIxN2NlZGU5ZDJiODI2MzhiZGE2NjVkMGIgcmVsZWFzZTI0LW1haW50CiszOTIzMiBjNmMyNGZmMWUzZGE1OTI4YWMxZjgwYzIyODg1MTI3MmE0ODQwMTQ4IGxlZ2FjeS10cnVuaworMzkyMzMgMzVhNjk4MzAyYzYzYzViMWYwNjg1OWE3OGFkODcxYzk4MzhjNGIxNiBsZWdhY3ktdHJ1bmsKKzM5MjM0IDhmZmZiNGM5NTQ4N2VlMjM3MzA4N2I3MjM2OGY5OTBkMWI5YzM0M2UgbGVnYWN5LXRydW5rCiszOTIzNSAzZjFiNDhmOWZmMGRhOWYzNDdjZDAxMTU0NjE4YWM0ZThjOTUyMjQyIGxlZ2FjeS10cnVuaworMzkyMzYgZjMwZWJkYzNiZGRmNzliMWZjYmI2MzdmN2YyMWM4OGNlY2EwMWIxZCBsZWdhY3ktdHJ1bmsKKzM5MjM3IGQ5MTk2NGY1ZmUwZDZiY2IwZDJhZTQwMDI0ZTI3NGQwZTNhMmE3MWMgbGVnYWN5LXRydW5rCiszOTIzOCAyNmJmNmMyN2U5Y2VhNWVmNTM3ZTg2ZWVkYWZiMWM1OTYxZGUwNTAxIGxlZ2FjeS10cnVuaworMzkyMzkgYjJmZTVmOGZjZmRkYzg0YjFhMDM0YzQyNDViNzg0MmMzMjNhN2Y3MyBsZWdhY3ktdHJ1bmsKKzM5MjQwIDVhOTEzNGZlNTcwOTA2MGEyM2FhMjdiZTZhMjk1OGU1ZWU3OWJhOTMgbGVnYWN5LXRydW5rCiszOTI0MSAwOTkxMjhmZmFiZTYzMTlhMDA3ZmZkNDIyMjM3YjIxNDA2YzZkYjgzIGxlZ2FjeS10cnVuaworMzkyNDIgMzA4NjYyMGRiNDZiOTdmYzJkMDgyMDE3ZTdiZmNjZjc4NzI0NDljNiBsZWdhY3ktdHJ1bmsKKzM5MjQzIGI0OGYwYjJlMGRmNjA5NWRmNTljZjhkODkwM2JhNWJmYjZlOWRlYTkgbGVnYWN5LXRydW5rCiszOTI0NCBiMzYzYTI4ZWQyNGY5YjEwM2M1NGY5NGEwOTA3NDA4ZWVhNmQ1NTdlIHJlbGVhc2UyNC1tYWludAorMzkyNDUgYWJkZTIxN2M1ZDkwZDFhNjUxZTY1NGJhY2M4OWRlY2U5NmJiNmI0YiBsZWdhY3ktdHJ1bmsKKzM5MjQ2IDM3NjAwMjMzZGI3Njg4MWM4Zjg5OTc0ZWRmYmE4Y2Y4NGNmNTAzODUgbGVnYWN5LXRydW5rCiszOTI0NyA0NTVjM2I3NjVkYzNhOGYxYjkxYzhiMTk4ZTFjYjU3ZWYzMTdjMjcwIGxlZ2FjeS10cnVuaworMzkyNDggMjU5MGZhMGVjN2U4ODFiMjMwOGNhMGUxOTM0YzVhYzQ0YzJkZTk0YyByZWxlYXNlMjQtbWFpbnQKKzM5MjQ5IGQ1MzNmMDhhOWRmYWFjNzNmN2YzZGFmZTYxMzAwM2RmYzJlYTM1ZjYgbGVnYWN5LXRydW5rCiszOTI1MCA1ZmU5Y2VlY2ExMTE4ODE0YzQ0ZjRhNjZkZTFlYmIxMTg2Zjk1ZDYwIGxlZ2FjeS10cnVuaworMzkyNTEgZjM5OTZhYTc4Y2RlYTViNTk2ZjI5ZGExNjE2OTM2MGI2NTUwNzFkNyBsZWdhY3ktdHJ1bmsKKzM5MjUyIDU0MWJmYmIxMDAzMGJmZmFhY2NjZjI2MDRjOTUxNzY2MjlhOWUxZjMgbGVnYWN5LXRydW5rCiszOTI1MyA4YWE5YmQ4MDI4NmIyMjAxZTc1ZjFhMzczMjQxM2RjMTdmNGIzNDczIGxlZ2FjeS10cnVuaworMzkyNTQgYTY4OWEyMGY1OGY3NjNhZGEwMzJkYzdjOWRhY2ZkMzI1ZWY5ZjZjZSBsZWdhY3ktdHJ1bmsKKzM5MjU1IDFkODYxMWQ4NTU1YzVjYWZlMDBjOGRlZmEwNmZjMzE4YTkxYzYxZWYgcmVsZWFzZTI0LW1haW50CiszOTI1NiBhNmNiZmNkMGU2OTFiYTBiMWM1YTU3YzllNGUwY2I5OWY5OGQ2ZTY5IGxlZ2FjeS10cnVuaworMzkyNTcgY2UwOTk1ZTAxZDNjNzQ1NzQzY2VhNzZlYmE0OWJhYTQ2ZTljNDUwZSBsZWdhY3ktdHJ1bmsKKzM5MjU4IGZkMDA0NjE4NjFjOTA3MDY0NWUyNmI2OWZmOWY5MDJhMTg3NmNmMDIgbGVnYWN5LXRydW5rCiszOTI1OSAyNjEyZTk2YjE3YmJjNWJjYWFjNzJhZWExMGYxZGYyMWU2MDUzMmI0IGxlZ2FjeS10cnVuaworMzkyNjAgYmQ5YWYyNjBlOTI3OTQyYWY1ZTBkOTgwMjMyNzNhMzFlOGIzNjcxZiBsZWdhY3ktdHJ1bmsKKzM5MjYxIGZhOTVmZTkxY2RmNzYwYmUzZGIxMjA0MmM3YTc5ZGM1ZjEyNzE4MjUgbGVnYWN5LXRydW5rCiszOTI2MiBiZGNiMDFhOWI2MGM1NzlmNzE2YWIwNGI4ODQ0NjNiNzQ4YWQwN2YzIGxlZ2FjeS10cnVuaworMzkyNjMgYjkyYTg1YzNiZGM4MTZhYWY5Mjc3Y2U0ZGQ5ZjJkZTNiMjg1YjU4YSByZWxlYXNlMjQtbWFpbnQKKzM5MjY0IDNmYTU4ZTViZGRmYjI5YTVjMDQwZjIyZDA1ODY0MjNkMWUxMjA1NWUgbGVnYWN5LXRydW5rCiszOTI2NSAxN2UwNDQ0ZGQxMmRhZWZlMWNkZWNkODE4ZWRhNjlmNDIwYjNhOTkyIHJlbGVhc2UyNC1tYWludAorMzkyNjYgYWM5YzBlZTE5OWZjOTZlZWExZTRiYzNiMzIyMDhlMDgzNGYxZTAwYiBsZWdhY3ktdHJ1bmsKKzM5MjY3IDMwOTQ4NDNlN2I5MmNiMTAzYWUwZmJlMWIzYjQ2NDhkYmVmMmZjNDYgbGVnYWN5LXRydW5rCiszOTI2OCA2YWE3M2ExZjBjYmE4NDU0MDNjN2Y4MTY2OWY0NDRkMzI5NmQ1YzQzIGxlZ2FjeS10cnVuaworMzkyNjkgMGVmNjRhOTNmM2YyNWUwZDYzODFlODMzODMwMDhiN2NiNjlmY2M0YSBsZWdhY3ktdHJ1bmsKKzM5MjcwIDMwMGYzYWFmODUzZmI4ODhhNGRmYzQzZWZkYzYyOWQxYjY4MTJmMDcgbGVnYWN5LXRydW5rCiszOTI3MSAwNDRhNWNhMmNkYjgyY2RmNjdmZTdhNTZjMzQ2ZmRkOGIxODM1YjgwIHJlbGVhc2UyNC1tYWludAorMzkyNzIgZWYxMWNiYzA4ZGFiYTBmZGE0OTBjMTk2NzM4OWU4ZGQ1NWNkM2I5MyBsZWdhY3ktdHJ1bmsKKzM5MjczIGZkMDJiODRmYjJkYjIyOWJlOGQ3OGJjZTJkOWNkZDg2YzY0MWEwZjIgbGVnYWN5LXRydW5rCiszOTI3NCBkYzhhZTQ5OWVmY2YzOTM4Njk3MTQ4YTZmNDgzMzI1ZjExMTdkZTFkIHJlbGVhc2UyNC1tYWludAorMzkyNzUgNzI1NjcxZGI3NzlhNjgxODJiZDI2YzA3YzBmODg2ZWQ3NWI3NjhiMiBsZWdhY3ktdHJ1bmsKKzM5Mjc2IDliMjIyN2E2MGRhZWNkZjU5MmQ4ZDFlZmI0ZDA3MjFjNjgzNTE2YjMgbGVnYWN5LXRydW5rCiszOTI3NyA1MDNjMzY5NzU3OGY4YzllNDBkMmRlMjg0YTg5YzAzYmJmZWM2MjA5IHJlbGVhc2UyNC1tYWludAorMzkyNzggZGVmNDM0ZTJhODFhZmJkYzRiMDA0MmQ0Y2Q3OTlkODQzOTUwNzliZSBsZWdhY3ktdHJ1bmsKKzM5Mjc5IGQ2NTc1Y2QxYWI2N2ZjNjYzMmIwZTI1NWQ2NDQ5ZjkyNTBlMDk0ZTQgbGVnYWN5LXRydW5rCiszOTI4MCAwMjhlOTRhNmVmYzU2YTk4NzdiYjdmODAwMTc5NTM4NjcwYzMzNGNkIGxlZ2FjeS10cnVuaworMzkyODEgYjhjNWQyMjIyZWQ3NTgzYmRlMTA3NTMyOGExMjNiMWVkNDdmMWZhNSByZWxlYXNlMjQtbWFpbnQKKzM5MjgyIGY2YjQ2MmQyYTNhMzZjNTM2MzY3NDNlYmNiMWNiZDA1ODgwNGU3ZjIgbGVnYWN5LXRydW5rCiszOTI4MyAzYzNhNDVhOTY1NzcyMWYwY2ExMDY2MzU0Y2YxOTY1OTg2ZWM1MjM1IGxlZ2FjeS10cnVuaworMzkyODQgZGQ0MzU3YTVkYTdjYjdkNzA0Nzk3YmI5ZmIzM2E1ZjY3YTIzZjVjZCByZWxlYXNlMjQtbWFpbnQKKzM5Mjg1IGM1NDk5ZjI1Njc4NmIyODIxZjgyZjE3MzFlM2FiZDQ1Y2I0OTdmOWEgcmVsZWFzZTI0LW1haW50CiszOTI4NiA3MDBmMDgzNjkwOTI3ODU4MjBjOGUzNmQ4ZDIzZTVhNGMzNzI1YjEwIGxlZ2FjeS10cnVuaworMzkyODcgZGQyMzU3OTUzZmUzODcxNDg0ZDg4YjBjZjQ3NGM4NmU4NDAwZTk4ZCBsZWdhY3ktdHJ1bmsKKzM5Mjg4IDM5ODI1Y2EzNDY0NzNlZDU2ODA1NDY5NDVkMThiNzFjYmYxOWJkYTkgbGVnYWN5LXRydW5rCiszOTI4OSAyZjFiZjY0YjgzN2VmNWY0OWUxY2Y0NmUzNWU3ZDJmMjQzMWRjNWIxIGxlZ2FjeS10cnVuaworMzkyOTAgNmYxY2QyOGQ2Yjg3NTAxMmQwMzQwZTUwNjMyYWRmYTMzYmFkYWQwMCBsZWdhY3ktdHJ1bmsKKzM5MjkxIDcyOWJlOGNjMDA5OGJmNWUxN2VhNjNmMWMzYjVmMzJjMDJjOWU3MzQgbGVnYWN5LXRydW5rCiszOTI5MiBjMWQyMmQ0YzA4NjU1MjgwY2UzN2UzYjUxYTcwNDI2N2RjYWQzZGFlIGxlZ2FjeS10cnVuaworMzkyOTMgY2Q4ZDhlNjM0YWI4MDZlMDEwZTZiNzY5NmFkMGE4MTQ0NmIwMTJhZiBsZWdhY3ktdHJ1bmsKKzM5Mjk0IGU4ODA2MDk0ZDY0NDhkZmYwZGUxZjhiZDZkZjE5ZTAwNmU2ZmNhMDAgbGVnYWN5LXRydW5rCiszOTI5NSBkZTJkODRlMDQ0N2VlZWQ4NjFiNTRhOWY1ZTM1NjkxNGVkYTQ4NzIxIGxlZ2FjeS10cnVuaworMzkyOTYgNGZkMDM4NzM3ZTIxZDJhY2I4ZWYxMDA4ZjcxNzVmN2M1ZTg1YWZlZCByZWxlYXNlMjQtbWFpbnQKKzM5Mjk3IDNhMmZmZjY5MDU1OGRjMDQzYmUyYmUzNDMxMjNlMmVhN2RiY2I3ODEgbGVnYWN5LXRydW5rCiszOTI5OCA4Nzc5MTZkNjMyZTA3MDY5Yjg1Nzc1N2JlOGU1MDVlMWRiY2VmMTI2IGxlZ2FjeS10cnVuaworMzkyOTkgMjBiMThiN2Y4MzA5NTc4ZTBjNTAyOWMwNmE4MjlhOTQyMTI0MmQ5YSByZWxlYXNlMjQtbWFpbnQKKzM5MzAwIGM1YmY1Njg1MjY3YjhlOGRhNjkyOTYxMGI5YjQxOWNmMTc4Mzc4ODYgbGVnYWN5LXRydW5rCiszOTMwMSBkN2YzOWU2MjA4YmE5YWM4ODVhNDhhNmNjMGZiYzVlNTIwZDBlMjdjIGxlZ2FjeS10cnVuaworMzkzMDIgNjYwNTdkNTUwNjI4YWU3NjViYzcyMjlhZWE4OWY1NjNkYTNlMGQ5MiBsZWdhY3ktdHJ1bmsKKzM5MzAzIDUwMjgzYTQ0MTdkOTg4NzBmOGM5YmNmOWI5Njg1MWE5YTY5MTJlYmIgbGVnYWN5LXRydW5rCiszOTMwNCBmMjA2OTE5NTc1NzgxMTMzOGQxZTIwMzU3OGRkNDE1ZjUxNWZhMjU4IHJlbGVhc2UyNC1tYWludAorMzkzMDUgYWViODU4MGExYWY3NDg5ODg3MmNmMWVhZmUyY2FhYTFkMGVkNDk3ZSBsZWdhY3ktdHJ1bmsKKzM5MzA2IDhiMDdkNzMxYmU2MDNkZWQ0ODIzNDgxYjY1ZTE4OGIyMmQxZWMyZjMgcmVsZWFzZTI0LW1haW50CiszOTMwNyAzZWE4ZjU4YThjOGVjNjQzNGYwNGZhZWU4NjY3NWE4ZmVkOTE5YWZkIGxlZ2FjeS10cnVuaworMzkzMDggNGU1ODg3MjVjM2Q3NThlN2QxMWYzMjExZTkzZGUxMmI3MzM4MWFiYiByZWxlYXNlMjQtbWFpbnQKKzM5MzA5IGNkZTI3NzgyYTE2OTJhZDQxY2JkMTcxZjJhYTkyZjQ2YWIwMzhkNzcgbGVnYWN5LXRydW5rCiszOTMxMCBmNTcxM2UzMDM4MGM0MzZiYThkZTEyYThhNmY0ODUxZDY5NjM1MDg1IHJlbGVhc2UyNC1tYWludAorMzkzMTEgN2Y5YTQzMGI4Y2U3MWVjOTdhNzhkY2M3Mzc2NjQwZmNiMzU2OWM3OSBsZWdhY3ktdHJ1bmsKKzM5MzEyIGNlMTI0NTEyMjBiNDBhOTI3YjYyZmUzN2I0ZTI0YjMzYmNlYTEwZTQgcmVsZWFzZTI0LW1haW50CiszOTMxMyA3NmIyNzIyODA2YWJjNWQ3OTUzY2FkODllNTI3Y2I4Yjg0YWE5Njc2IGxlZ2FjeS10cnVuaworMzkzMTQgMDg0ZDQyZGY3YmFkNGU5NDAzOTdjNmNiYjNhNjk4MDliYmRkOWM5ZCByZWxlYXNlMjQtbWFpbnQKKzM5MzE1IDc5N2Q4MmVlYzYyNTIxYjZhNjhkZjlkMzZkOGIyOTI0YzZjMmE0YmUgbGVnYWN5LXRydW5rCiszOTMxNiA2MjQ5MThlMWMxYjJlZmVlOWU0YjdiZWUzMWRkYjgyMjEyZDExYjMzIGxlZ2FjeS10cnVuaworMzkzMTcgYTQ2NzMyNTcxZjJlOGYwNWVkY2Q1YmJhNzk2ZGY5MjVjOGVhNjQ1MSBhc3QtYnJhbmNoCiszOTMxOCBmODRjZjg1MzQ2NGFhYWE2N2IzMWIzZDE0YjNmNTlmYzRmMGZlN2QwIGFzdC1icmFuY2gKKzM5MzE5IDdjMTRjN2Q4YjM5NmZmNjExZGU5Nzk0MjNlZWYwNzU2MDJhNjc1NWQgYXN0LWJyYW5jaAorMzkzMjAgNDY4MDBmMmFkMzA4YTQ4ODg3YWVhNGUyYmVmYTY3ZDhkY2ZjZmZlZiBhc3QtYnJhbmNoCiszOTMyMSAwMDE0NTk2Yjg0MGM2Y2ZkYmU4ZDU2NmIzODA0NWYyODhiNWRjYWYzIGFzdC1icmFuY2gKKzM5MzIyIGI0NjNiYjQ4MjU5NDliZDQyNjEwYTVmZjM4ZjczYjZkOTBkZGNmOWYgYXN0LWJyYW5jaAorMzkzMjMgZTdlZDBlNmFlZDJmMjczOTQ0YzMxN2VlYjM2ZDE3Yjc2MGIyYjhlNiBsZWdhY3ktdHJ1bmsKKzM5MzI0IDQ0OGM2ZmJmZjY0MTMxMjJhNTdlNWNlMjA2YzBmM2IwMDNhMzYzODYgcmVsZWFzZTI0LW1haW50CiszOTMyNSA5MzMwMDgwYTNkNDE3NThlMjZhMzZmYzdjM2JiODVmNjUyM2FiYzUwIGxlZ2FjeS10cnVuaworMzkzMjYgOTI2MTY5ZmRlNWU2MzNmMWUyYmE4ODI3ZTY1Y2MzY2YwYjAzZTRjYyBhc3QtYnJhbmNoCiszOTMyNyBmZGViNGE4YmNiNGUyNTA5OWEwMzhhNzcwY2ZhODVhMDJlZTlmZDU5IGFzdC1icmFuY2gKKzM5MzI4IDQzMjExYmUwZGU0MTVmZGExYmQ3YzZhM2Y5YWQ5MDBlOWJlYTYxZjAgbGVnYWN5LXRydW5rCiszOTMyOSBkNjgyNzkwZDVkYjBlMjRhYjMzN2RiYzJmNzUzYmIxZjdmMmJiMjBkIHJlbGVhc2UyNC1tYWludAorMzkzMzAgMGYxYTIzMWMyYzdjYWI1ZDIxZGZmOTNiZjA3Y2U5OTJlNDk0YTY2ZiBsZWdhY3ktdHJ1bmsKKzM5MzMxIDc4NzQ3ODkyM2U4MmYyN2UzYmIwNTZiYzUzNDc5OGFjYTMyZGZhYzcgbGVnYWN5LXRydW5rCiszOTMzMiAwNGRkNWIwNmQzYzhlZDUzZGJlOThlOTYyNDRiZTc4NTMwNjMwZmJjIGxlZ2FjeS10cnVuaworMzkzMzMgMzRmZjdjYTRjZWY4NTI3ZTNiMWZiY2JjOTUwZjc0MjE2NTBkOWNiNCBsZWdhY3ktdHJ1bmsKKzM5MzM0IGE2ZTcwMDA0ZTk4NzBjZDg3ZWYzMWIyZGMwZTM0YzIwZGJhYjUyN2YgbGVnYWN5LXRydW5rCiszOTMzNSAzODgyNGI2ZTM2MDA3YzM2OTUxZmNkNTFmMzllZjRmNDM0ZWJmOTljIHJlbGVhc2UyNC1tYWludAorMzkzMzYgMGViMzg2ZWU5NDBlMzAzMjZjNDdiY2FhYmExNWI5MjFmMDhlNTAzYyBsZWdhY3ktdHJ1bmsKKzM5MzM3IDA3MTM3Mjg2NzczY2FmZjZlZjA3NTkwMzYzODkyYTg1N2FhNjI4OWQgcmVsZWFzZTI0LW1haW50CiszOTMzOCA0YWNkMzA3NjFiYzIxNzYzMDNiZjQyYzc0YmJiMjhlMDk2ZmNjNGY0IGxlZ2FjeS10cnVuaworMzkzMzkgNmIzN2VhYmUyYWM0MzdiZmQ0NDg0OWRmMGFkNWU5MDNlMDY0ZmFmNyBsZWdhY3ktdHJ1bmsKKzM5MzQwIDVmNDAwZmIyZGQ4YTY5YjdjZDY5YTMxODkxY2JiZTY0NDQ2MDg2MGMgcmVsZWFzZTI0LW1haW50CiszOTM0MSAzOTczZDYzZDI2Njc3YzA2NzQ2MTM2ZjFiMTUyNjU3MTM3ODExYTViIHJlbGVhc2UyNC1tYWludAorMzkzNDIgOTFkOTY4Yjc3NTc5YTVhMzY2MWJjNDZlMDFmZWE5YTZkNGI0OTVkOSBsZWdhY3ktdHJ1bmsKKzM5MzQzIDQzY2Y1OWU3YTYxNDVhYzcxOGZlOTUzODQzZjQyMGFjYzgzYTFkN2IgcmVsZWFzZTI0LW1haW50CiszOTM0NCA0ZGE2ZDRlMGMzZDU2MjhjMGNmMWRlZjVhZTM1MGNlZjZlYWRlMWU2IGxlZ2FjeS10cnVuaworMzkzNDUgMTJhOWJiMjRiNmQ5NjQ2NjA3NDk0ZDYyOGVjYTg5ZWMwZmFlZDhhYSBsZWdhY3ktdHJ1bmsKKzM5MzQ2IGJlZDkzZDA0MTZkZGU4MmEzNDk4ZTJkZTc3YzM5OTNlN2ZiODQzYTQgbGVnYWN5LXRydW5rCiszOTM0NyA3ZjE2Mjc3NjY2MjE2YzFlNzg3YjIwMTc3YmJjZGQwOTQ0YTc3NGIwIGFzdC1icmFuY2gKKzM5MzQ4IDAxZWZmNjA3OWY5MGI2ZmFhZmJhNzQ2NWRmNzg5MDZhYjFiMTE3YTAgYXN0LWJyYW5jaAorMzkzNDkgMTcwODQ3OWFkZTRkNWJhY2Q0MDJkZDYzMTJlMzRlODQ3NTE2YjcwOCBsZWdhY3ktdHJ1bmsKKzM5MzUwIGM5ZWIyNWZlMzljYmJlMDVkNWFkMmZkM2M4ZjUyYmQ0OWMyMDVjZDggbGVnYWN5LXRydW5rCiszOTM1MSA5ZTA1ZWEzYjFiZjNiODVmM2EyOTllNGQzNDJkNGZiMTk0NzE5NWQ5IHJlbGVhc2UyNC1tYWludAorMzkzNTIgNWM3Y2NhMjU0NzJkZWZmZWU0NmQ3NWNhOThjNzE1MmZmYTE1ZjgzYSBsZWdhY3ktdHJ1bmsKKzM5MzUzIDZjMDg2NWJlYWFiNzMxMjkyMDgwZmEyMmRlNGFhYmJhMDE3ZjU0MzMgcmVsZWFzZTI0LW1haW50CiszOTM1NCA4ODM3ZGRmYWFkNDVlYWY4MzgxN2FkODFhZDMxNzVhOWQ3YTYyZDI1IGxlZ2FjeS10cnVuaworMzkzNTUgZjk2Mjg3ZDFiNWY2Zjk4YmU3ODVjNGI4NzJjOTg1YjY0YmU3MjcwZCByZWxlYXNlMjQtbWFpbnQKKzM5MzU2IDYzNGNhNGQ4YTMwNmEyMjIyMTlkNmFlZWIyYTYyMjBmYjBjNjEyMWMgbGVnYWN5LXRydW5rCiszOTM1NyBiNzA5N2Q5MWYwNGQxZWJkNTZlNDdiMGU3ZDIwMWRhNTdlZmQ3YjQyIHJlbGVhc2UyNC1tYWludAorMzkzNTggNWIxYTJmYjg2NGE3NjI2YzE2NDdhMGI1MzE5NzYxZDlhY2NhODU2NiByZWxlYXNlMjQtbWFpbnQKKzM5MzU5IDNiYjkzMjgwMWI2NDUyZjg4Yjc5YmQyZWVjMjBmYzU5OTczZWVjNmQgbGVnYWN5LXRydW5rCiszOTM2MCAzNzQ1ZTNjNmEzZTEzNjAxNjg5Njg0MjVlNDlmMDU3ZTVlZWY1ZmUzIGxlZ2FjeS10cnVuaworMzkzNjEgZGRlMDU2YTY2NmRkZWY1MmFkMzIwMzJkYTM4ZTU5MWQzMjlhZjk5NSByZWxlYXNlMjQtbWFpbnQKKzM5MzYyIDNlZWM5MTAzOGZiY2E5ZjQzOWFhMmRhOTc0NjViOWY1NWY0MzEyN2EgcmVsZWFzZTI0LW1haW50CiszOTM2MyAwYTZkYmNiNGUwNTY2MjMwNWNhZDM4OGEzYWIzNTMyNGEwNmY2ZWI1IGxlZ2FjeS10cnVuaworMzkzNjQgNGQwNWY5ZTdlNmUyOTRhOWU0MTdkYTU3NjA2ZmJmMzMxMGY1MmJkZiBsZWdhY3ktdHJ1bmsKKzM5MzY1IDE1NmFiZGE0ZTQ1NzNhOGUyZjRmMWZhMDdhOTA2ZWQxMjUwODY3MWUgcmVsZWFzZTI0LW1haW50CiszOTM2NiBmZjJlNjZmYzBhMjkyOTA0ZGMwNGQzNzIwMmM4OGJkY2UwNWMxZDNhIGxlZ2FjeS10cnVuaworMzkzNjcgNDg5NmY4MzM0YmZmMjQ0NTMyNjhhNWNiNTg4MGJkYmE5ZjUxOWI0NSByZWxlYXNlMjQtbWFpbnQKKzM5MzY4IGU0OGZjZDRjMzU4ZDQ5N2MwN2Y2MDczYjZiNTU0YjljNDY3ZDAxNzggbGVnYWN5LXRydW5rCiszOTM2OSAzN2ZhN2I2ZGNhOWJiODliYWIyZDkxZWQxZDY1Y2YwMGY0MmFhNGQzIHJlbGVhc2UyNC1tYWludAorMzkzNzAgMmE2YjY5NDJhN2Y3Y2I2MDQwNjA1NmJmOTBjOWI0MjE0N2UzZWNlOCBsZWdhY3ktdHJ1bmsKKzM5MzcxIGM0ZTVlZDdhMmJhMzdkNjUxMDA0NDFiZjIwZWIzYTVhMWE1NGIwMTQgbGVnYWN5LXRydW5rCiszOTM3MiA4NWYwYTZlODM4MGI1ZGQ3OTJjZDU4NzEyNGI2NzBkMTk4MjNlMjI4IGxlZ2FjeS10cnVuaworMzkzNzMgNDgxNDYzYTViMjBjODk2ZmQ4ZjE3NzY2ZTQ4MjZiMDY5MWIyYmNkNCBsZWdhY3ktdHJ1bmsKKzM5Mzc0IGZlMzIzNWZjZGQ3NzI1MmVkYWU3YmExNDFjNTBjNzRlM2VlNThlMTAgcmVsZWFzZTI0LW1haW50CiszOTM3NSA3Y2FhYmM3NDk5NzU2N2VlYTI4MTRmNjk0MjJmMDQxNDZmYzc2Njk5IGxlZ2FjeS10cnVuaworMzkzNzYgZDVkZjUyMjJmZDZkNTQyYzlhZmI1Y2M2OGI1YTkxZDQyODdjYzAyMCBsZWdhY3ktdHJ1bmsKKzM5Mzc3IDE2NTIwZmNjMDYwOTUwY2IwZjZhM2VhNTgwNDE3OWUwMmJhZjA5ZTggbGVnYWN5LXRydW5rCiszOTM3OCA1NWUyNzU5ZDAyMTEzNzI0OWYxYWY0Y2M1NzQ2ODdjZjVhOWRjOTcxIHJlbGVhc2UyNC1tYWludAorMzkzNzkgMjQ1ZThmNGNiYTFkYjI0ODZhNGE0YmRlMzE0NGJjZTQ5Nzc3N2M4NiBsZWdhY3ktdHJ1bmsKKzM5MzgwIGUwYmQ2ZjMyNGZkNmExZDI5NWM3NTYwNjNkNjA4Yzg1ZDk3OGEwM2QgbGVnYWN5LXRydW5rCiszOTM4MSAxYjdjNGZiZWUwYjhiZTEwZjMwODgyMDdmOWFhZTJkZDU3NGI4MzA0IHJlbGVhc2UyNC1tYWludAorMzkzODIgYzFmMGYxNzA5MzZkNTU3MmI0YTZlNzVkZjQ2Nzc1OGJlMTBiZWQzZCBsZWdhY3ktdHJ1bmsKKzM5MzgzIDEzMGI2Y2U5YmJmM2RjMTI3NjA4NWRmMmZkMTQ2OGVmNTBhYTcxMjUgbGVnYWN5LXRydW5rCiszOTM4NCBlZGRjZTQwZWQxYjE2ZTE3ZDYyNzBhZmJmYjQ3ZDE5ZDE3ZmNlYmU1IHJlbGVhc2UyNC1tYWludAorMzkzODUgN2QzZThjMmFlMzM5MTMyZTg2Y2JhZGM5YTc0NGZmZGE5Yzc0M2JmZCBsZWdhY3ktdHJ1bmsKKzM5Mzg2IDlkMzQzYmM4MTg2MzgxNmI1YjYxZGE1N2IyZjE2NTNmNWM5Y2IxZjQgbGVnYWN5LXRydW5rCiszOTM4NyA0YTUwNzc4NzNjYmEwYmJhOTlmZjhiZWZjZjZiYWQ3NjM1OGFjYmI5IHJlbGVhc2UyNC1tYWludAorMzkzODggM2QwM2QyY2JlMWFkMTZkZTU5NGYxOTZkYTljZGI1ZjY3ZjIwZDhlYyBsZWdhY3ktdHJ1bmsKKzM5Mzg5IDY1MjM4YzlhN2E2NjAxMDgwZDA1YTY4NjA3NzA2MDJlZjYyMzc4NTkgbGVnYWN5LXRydW5rCiszOTM5MCAxNzA3Yzk0NWQ2YzI0ZGQwODc3OWQ2ZjNjZTgxOWFjNzJkNmE5MWQyIHJlbGVhc2UyNC1tYWludAorMzkzOTEgNTk1NDUxYzJjOGVjZGM5OWM0MDY4MTEzNzdmMTE1NWVlZGVkZGM3YiBsZWdhY3ktdHJ1bmsKKzM5MzkyIGExNzAxMjM0NWFmNmFhMjlmMGMwNWNjMDIwNWFlNDhjMDgwZWJlNmYgbGVnYWN5LXRydW5rCiszOTM5MyBkMGU4NjU3NmYwYjVkZjU3OTg5YzhhNjI5Y2NiYThmMmFlZTYzZjY1IHJlbGVhc2UyNC1tYWludAorMzkzOTQgNDQ2MTI1OTM0NzFjOTYwYjczNGYzOWUyZTY4NjZkYjlkY2UwNGM3ZSBsZWdhY3ktdHJ1bmsKKzM5Mzk1IGNiNDk5YWVlMzZlNzhhY2JmYTdlMmE4NWUyNjIzYjhlZGQxZTk5YzkgcmVsZWFzZTI0LW1haW50CiszOTM5NiA3YTBkMGI0Yzg3ZDA2NDUxMTU2MDk5MmFmODg0NWQ0YThjZWEyZWJmIGxlZ2FjeS10cnVuaworMzkzOTcgNTgyYzkwZGVkYTlkZmUzMDQyNWNhNmRhMDVhNjVkNWIyYzUzM2QxZCByZWxlYXNlMjQtbWFpbnQKKzM5Mzk4IDA5OTkyOTBjNjc1ODhhMTAyNWFjZmNhNzViNDExNjlhMTZlZDMyN2EgbGVnYWN5LXRydW5rCiszOTM5OSA1MzE2ODY4NTRmMDg2ZWEzNjBlZGViZDJlNWJiMjRiZDgyMjRjNDI1IHJlbGVhc2UyNC1tYWludAorMzk0MDAgMWZkZmQwMTMwZTI4MTkyMTM4ZWZlMGQzMjdjOTY3YjE2NmJkOTEzYiBsZWdhY3ktdHJ1bmsKKzM5NDAxIDk3Yzk3MTk0ZTY0YmI4NzIzZTYyODMwOWJkZjAxZTdjMTcxZjY2MTkgcmVsZWFzZTI0LW1haW50CiszOTQwMiAzNjUxNGI5NTAwMmFiMWQ1OTJmMDU2YmY5Njg4ZGFkZjgxYWNjMjA5IGxlZ2FjeS10cnVuaworMzk0MDMgNTlhNjNiMDlhNGMyNjllNTI2NzVhZTMzNTdhYjhlMzliMGI2YWU3OSByZWxlYXNlMjQtbWFpbnQKKzM5NDA0IDM4NTVhOTYwYTZhYTk2Y2E5ZWM4NTlmZTlhMTIxMDc5MWI2Mjg1OGEgbGVnYWN5LXRydW5rCiszOTQwNSA5YTgzNzM4MGMzYzVmMTI3YTE3OGRiNmQwNjIyZThiYzczMDAwYzA2IGxlZ2FjeS10cnVuaworMzk0MDYgOGEzZDdmOWYwMmNjMmZlMWQxNWYzNmUzZWQwNDNmZjQzYjMwMzM0NyByZWxlYXNlMjQtbWFpbnQKKzM5NDA3IGNmY2MyNjQxYTkxMDk4MGQzMmI4NzJlZDhiMzg5M2IyZmFlYmY4YzYgbGVnYWN5LXRydW5rCiszOTQwOCA5ZDQxYWZhNjNiNzk1MzEzM2U0NjRlZjAwNjJiNGYxMDk4NzViZmEwIHJlbGVhc2UyNC1tYWludAorMzk0MDkgMzhlNTg4ZDFkODg1M2I4YTQ5YmQzOWViNTYwZjZjNmU5Mzg2MmFhMSByZWxlYXNlMjQtbWFpbnQKKzM5NDEwIDA4NTI4ZmJkNDgwNDlmYmNlZGQ0Y2ViNmYzMWE2NTQ4ODc2ZTY4ZmQgcmVsZWFzZTI0LW1haW50CiszOTQxMSA5YmU5MmZlOGE3YTgxMDEyMGU1NTA0Y2QxOTBkNTY0ZWZiZTU4OTc2IGxlZ2FjeS10cnVuaworMzk0MTIgMDM1NDA5ZWYwOTAxMWY1NWI1NmRlZWIyZTk2NzBjNDM5N2FjZTVjZSBsZWdhY3ktdHJ1bmsKKzM5NDEzIDI1NmU3Mzg0ZjI0ZGJkMzMzY2IzNWQyYmI5YmJiOTAxNzE2ODEyNTYgbGVnYWN5LXRydW5rCiszOTQxNCAxMzEyOTQ2ZjMyYWI1Y2UxMTczYTVlMmFmMWI0Mjg2NGVjNmQxYmQwIHJlbGVhc2UyNC1tYWludAorMzk0MTUgYWRlZGE5ZmIzNDg1ZDY3NGM3MGNkMjAyNjdlZTA4YTA2NmRlYzZjMyBsZWdhY3ktdHJ1bmsKKzM5NDE2IDNlNWMwN2ZhYWIxMTEzOTliMjQwMmNlOWNlNWJjYjc3MWVhNmM1NjggbGVnYWN5LXRydW5rCiszOTQxNyA1MjMzZDE5ZmY4N2YyNzdmMWQyNjQ4NTQyZjVjNTE5OGVhM2VlNmRjIGFzdC1icmFuY2gKKzM5NDE4IDcyZDNhZDA4YjJjNjIwYmFhNjYwY2RiMWY0YTljNGNjYWNmYjM4M2QgYXN0LWJyYW5jaAorMzk0MTkgNjllYWI4NTE3NGZiYTNkODYyY2Y2MDZiOTI4YTU3NmI3ODk5NGRmYSBhc3QtYnJhbmNoCiszOTQyMCAzM2Y2NjJmNjc5NWYzM2ExZTE5Yzc5NDcwNmZiMDJkNmMzOGUyNjdkIGFzdC1icmFuY2gKKzM5NDIxIDcxM2NjZmY3MWZkZmU0YjcwMzIzM2VmMmZjZjYwNThlMzk2ODQyMjkgYXN0LWJyYW5jaAorMzk0MjIgODU5NjBjYTRmYzA4OWU5YTE2ZjRiYTkzYjY2MDUwOWNmOTEzYzM1ZCBsZWdhY3ktdHJ1bmsKKzM5NDIzIGRiYTFlMmRmZDhkZWE3ODQ1ZWJiOWNkNzJjZDM2NTgzNmFmZGQyNjcgcmVsZWFzZTI0LW1haW50CiszOTQyNCAyMDBlMmVmNGRiZGM2NDNjNDdmNDU0ZjY5MTEzNzVjZDNiNDI3MTI4IHJlbGVhc2UyNC1tYWludAorMzk0MjQgMGY0MDVhMWM1MzQwNTQ5NDI2NGY5N2I0ZGRlODJlZTFhNjg5MDRjMSBsZWdhY3ktdHJ1bmsKKzM5NDI1IGFhYTM2NDZmNDU2NzEyNmIwMGI0NDIxMmZkYjhjZDkyZDYyMTcyNWUgbGVnYWN5LXRydW5rCiszOTQyNiAwMjM0Yzg0YTdkOGRhODI2YTI1MTc0ZDgyMTY1OTZkMTliYzZmZmY5IGFzdC1icmFuY2gKKzM5NDI3IGU1MmVkODc4YzVlZTBhZGUyMDdjZDI5ZTk0ZjQ0NjMwYjQ2OGIxZjMgYXN0LWJyYW5jaAorMzk0MjggNDk2ZDI5YjBiYTViYmFmNjM5NmNiMjI5YzlhMTBkYTBiOTg2OTAwZiBsZWdhY3ktdHJ1bmsKKzM5NDI5IDExZTE1ZjdhYjk0MDZlZWM1YzYyYWQxYzQ2ZjJhNWEzMTU5MWQzZjUgcmVsZWFzZTI0LW1haW50CiszOTQzMCBkOTJmMGVkNmE3ZjJmOWQ3ZWViNWI3YzM1YjAzNTZlOGRjMmQyMDRjIGxlZ2FjeS10cnVuaworMzk0MzEgYTg0Y2RhYmI4YWYwNmRhYmQ5N2U5Mzk0OGExNGFmYjYzYzcyOWY1YyBsZWdhY3ktdHJ1bmsKKzM5NDMyIDg5ZThhNWVjM2RhMDU3N2I3MmIxNGRhNGMzZDI3Zjk4MGUxYTc4YzEgcmVsZWFzZTI0LW1haW50CiszOTQzMyA2NzYzYzkxZmNmZWY0MDk5ZTljNDZiZjVmZmMyZTQyZTk1NGZkNGIwIGxlZ2FjeS10cnVuaworMzk0MzQgYmFlZDhiN2RlYjU2ZDFjOTVhZDk0MGM1NWI5MDFjYzNlOTA3YWM5YyBsZWdhY3ktdHJ1bmsKKzM5NDM1IDliMjEwNDAxMWY3MDI2YTVjYzk2MWUwZjVlZTEyOGIxMmQ2MTEyYjQgcmVsZWFzZTI0LW1haW50CiszOTQzNiBiYjY3NzA3OWY4MjdjZTIwMTY1YWEwY2NmMzEwZGRjNmIzMGZhMGRlIGxlZ2FjeS10cnVuaworMzk0MzcgMGU4OTY0ZjUzNzMyYmRjOTIwYzZjZjEwZWUyOWE5YzFiYjljNWYzMyBhc3QtYnJhbmNoCiszOTQzOCA1MTZlZDYwYThmOWNhZjY3MGYzZDA5NzE4M2ZlZTQxNTA0NThlYmEzIGFzdC1icmFuY2gKKzM5NDM5IDYwNjFhYWE0NGViYzUzNWU0OWI2YjgzNzJiMzkxNDgxNDU0Y2NjNzYgYXN0LWJyYW5jaAorMzk0NDAgZDMzMmIyMTY4Y2IyNDcyNjlhNDZmYzZhNWZhYmFjZmQ3MzZhNDM1OCBhc3QtYnJhbmNoCiszOTQ0MSBjZDdkNmM2ZjJkYjIxNzU0ZTJiMjAzOTc3YjI0NTdlMjQ5ZWEzZWYzIGFzdC1icmFuY2gKKzM5NDQyIGUxNThmMWUxN2FiNGI3MTU5YWMxZmVmNjFhNTY4MjZmZjk1YjdjZmQgYXN0LWJyYW5jaAorMzk0NDMgMDZlZmVlYzc0ZDU5YTUyMTI0OTg4N2E4ZWI3ZDczZjUwMDJlZjExYSBhc3QtYnJhbmNoCiszOTQ0NCAzNDM4ZWViYTU4YzM4YThmZDM2NjM0Y2VkNjAzYjM1ZTRiZTY5ZTNlIGxlZ2FjeS10cnVuaworMzk0NDUgODFhMDZhOWExYWM0N2M0OTdiOWM4Yzg2MzE1MDQ3YTgzMDM2NGY1ZiBsZWdhY3ktdHJ1bmsKKzM5NDQ2IGFiM2RkYmJkMDg2MmM4ZjQzZWY3MTNjODRmMDcyNjhjYTlkNmZmNjUgbGVnYWN5LXRydW5rCiszOTQ0NyBiYmY4MTU3ZDAzOTg0ZTk2YTlhODY3ODg5ODgwNWZlYTI3MTk5MzU5IHJlbGVhc2UyNC1tYWludAorMzk0NDggNGZjN2E3ZWRjYjRiNmFmYmM5NDI0MTk2YTEzMDJkMGY1MTVkMDFhOCBsZWdhY3ktdHJ1bmsKKzM5NDQ5IDZiOGM1NTg3Nzc1NWM3ZmRlZTA1NDM0YTZlOTg5MWMxODZiYjVmMDQgcmVsZWFzZTI0LW1haW50CiszOTQ1MCAxYTNjZjk2YzhkNDY0YmQ1NDU0ODkyZDY0NzUwZTFmMWU2MjNhNmQxIHJlbGVhc2UyNC1tYWludAorMzk0NTEgYmNkOTgxMTIzNWQ0OTYyYmUwNGZiNmQ4NzU5OTU5OWM4ODc5N2JhMSBhc3QtYnJhbmNoCiszOTQ1MiBhMTU5NTg0ZGI2NWMxMzQxNTdkNTYxMjhiMGYwMzM3ODFiNTVhZThhIGFzdC1icmFuY2gKKzM5NDUzIGJhODQ0YmQ3YTMyYjZiYjY1MTA1MzFhNjNhYjBkYzAwMjkwOGQ2NjggYXN0LWJyYW5jaAorMzk0NTQgNDY4MWE4ZmE0NmQwNmVjZmM3YTRjNjc3NDRmZDM1ODBjY2RjNDU4ZiBsZWdhY3ktdHJ1bmsKKzM5NDU1IGNlNWI3NTMyNTIwYTg3ZDk0Njc0MDM5NjFmNmI5ODhiM2E0NDk3NDkgbGVnYWN5LXRydW5rCiszOTQ1NiAwZWFlNTIxOWYzYjgyNGQwZmU2MjdhMWQ3ZGE0NzM3YWJlNDg4ODQ1IGxlZ2FjeS10cnVuaworMzk0NTcgM2U2MjEyMTEzZTgyYTBkY2JiMDllOWUwOTU5NTcyMmY2NTUxNTA0MiByZWxlYXNlMjQtbWFpbnQKKzM5NDU4IGExODVkNjk2MzBiMzhhMjc4Y2M3NDY1MDMxMmNkMWJkYThiOGRlZWUgcmVsZWFzZTIzLW1haW50CiszOTQ1OSBjMzUzYzI3ODJhZTE1OTVkNWU0NzU0Nzk4MmQwNDQ5MjI3MzVhZmRkIHJlbGVhc2UyMy1tYWludAorMzk0NjAgOTdkYzhmMDZjNGZhYjdkOTU0YWI1M2Q2MjAwMDA0ZDkzNzBhNjMwNSByZWxlYXNlMjMtbWFpbnQKKzM5NDYxIDBiY2IzMDNiMzQxYjY2NGI5ZTE2NTRjNGQ1YThhYzVlMGMzZTE0ZmUgbGVnYWN5LXRydW5rCiszOTQ2MiAwZmU4MTE3Yjc2MWQ3NGFkMWEyZWY3MjA0OGZmNTFhYjM0Y2FjZDNlIGxlZ2FjeS10cnVuaworMzk0NjMgZmUwY2E2MDQ4MjY3MDI3NzIyY2IxNmQ4MTdhMzhmZDhhYjNjZjhjYiBhc3QtYnJhbmNoCiszOTQ2NCAwNzk1NmQ0YThlNGFiYmRkNzVjMWY2YWMzZjM4Y2VkN2Q1MWY1Zjg0IGFzdC1icmFuY2gKKzM5NDY1IDEyOWFiMjJjNGIxOWE5Y2E0ZDE5ZTdjZTI5NWU3OWJkNTNmMWM3OTcgYXN0LWJyYW5jaAorMzk0NjYgZjU0ZTUwYzUzYTcyZDM5YzZhZGQ3ZjYzYjliMzE1NzQ4ODY1MjUyMyBsZWdhY3ktdHJ1bmsKKzM5NDY3IGM4OTNjYWViMTEzNzA1NzljYTYzNjQ4MzhlMzFlMjE1ODg0M2EyNjEgbGVnYWN5LXRydW5rCiszOTQ2OCAyMmE0MDkzYjUxNTFjNjliODczOTVjZWMyNjlhYzA2ZjZmYWNjY2NjIGFzdC1icmFuY2gKKzM5NDY5IGRhZjMzOGVjZGNjYzZiZjYxMGEzZjY0NjgyYzczMGQ0NDYyNmUxMTQgYXN0LWJyYW5jaAorMzk0NzAgYjcyMDEwNGI3ZGI5MTY1YTAzOGE1NTM3OGIxZTdmNDUzZmZhZDI1YSBsZWdhY3ktdHJ1bmsKKzM5NDcxIGJhNDRlOWUyYjU1NDcyOWY3MjBjZGQ3Y2NjZWY5ZWEwMGNiMjM5YTMgcmVsZWFzZTI0LW1haW50CiszOTQ3MiA4ZmE4M2E5ZWJjNmVjY2VjZWJiOWQwOTVhMTU5MWFmNzBiZGU2NGM1IGxlZ2FjeS10cnVuaworMzk0NzMgZWQ2NWUwYWQyMjE1OTViNzgyOTY0NGY0Mjk1OWQ5M2ExZDRkYjU4ZiBsZWdhY3ktdHJ1bmsKKzM5NDc0IDc3MTg0N2NiZTNiNmNiNjg2MDI0NDdhZDA3YWZjMGJiOGExYzVlYTUgcmVsZWFzZTI0LW1haW50CiszOTQ3NSBmNjNlNjk2MGM1Y2ZiZTI2YjFiNTlhZjFhYTIyMTliZmE4ZWFlZGMyIGxlZ2FjeS10cnVuaworMzk0NzYgMGI3ZmE2ZjA1NTJhYmU5MDUxZWU0ZjRjMzNjZGNmNjQ3OWU2MTE3MiBsZWdhY3ktdHJ1bmsKKzM5NDc3IDI2YmEzZDRmNGZjNDE1NTdmZDI2ZTNkZmVjMmQzZjZhZmE4YzE5N2UgbGVnYWN5LXRydW5rCiszOTQ3OCBhNTc4MDAyYzhmNjU5OTIyMGQwYmFhMGI2MDM4OGJmYzdlYjhhY2U5IGxlZ2FjeS10cnVuaworMzk0NzkgMTVhODk3NWY3ZmE5M2Q1YTA2OGY3ZTJiZmI0YjI2NGE0N2IwOTU0NiByZWxlYXNlMjQtbWFpbnQKKzM5NDgwIDFmMmFmMjU5OTY4YjQ1NWQ0MGIzNWFkN2M0NTE0ZWNlNDM4Y2U3OTYgbGVnYWN5LXRydW5rCiszOTQ4MSAwYTI4ZDQ4NjM2Yzg2NDNmZGZjZmM4YjcyMDUxNzUxOTBjY2EzMzYwIHJlbGVhc2UyNC1tYWludAorMzk0ODIgNWQ1ODQ0M2Y0ODliNGZkMjkxMGE0MGYwMWRhMzU2YTViMTBiZjE3MCBsZWdhY3ktdHJ1bmsKKzM5NDgzIGU3ZmQ4NTU1MGJjMGI1OWI4Zjk2NmVhMmVmNWU5YWU0MzNlMjA5NDEgbGVnYWN5LXRydW5rCiszOTQ4NCA5NTE2YmE1NGI5ZGY0NDc1N2RlNDgyOGJiZmEyN2I0MDZiMDAwODYwIGxlZ2FjeS10cnVuaworMzk0ODUgNWRiMjczMTVlZGNmZmE1YTY4ZWI3YTE5Y2UxNWQ4M2Y0ZTgxNDc5NCBsZWdhY3ktdHJ1bmsKKzM5NDg2IDRhYmFmNjkyMzQzNzE5NGRiYzYzMjBhZjZhNTEyZWVmNDM0ZmVlYzIgcmVsZWFzZTI0LW1haW50CiszOTQ4NyBjZWFjMDI3Nzg1MjM0OWJlNjU4OWMxM2RhY2JiMGVlY2EwOTk1YzVhIHJlbGVhc2UyNC1tYWludAorMzk0ODggZGUxYzVkMTdmZGU2YzYzMGU5ZjUwYWFhNWY0NjFlZGVmMzA2MzllYyBsZWdhY3ktdHJ1bmsKKzM5NDg5IDQzNmJlMmM4OTE0MDJmNGRjZWQzZmQ5NjYyNzA1MWU5ZjQ5NTlkYjEgcmVsZWFzZTI0LW1haW50CiszOTQ5MCA3ZGQ0MzE3NTBiZDM2NWZkNWQzNzExZDQzNzA2M2U3NzUzYTFiMDgzIGxlZ2FjeS10cnVuaworMzk0OTEgZWNkNjFjOTJhZGYzMTYyZTYzMTAyNzNmZjhlZTM2NzcxOTM4MzA5NyByZWxlYXNlMjQtbWFpbnQKKzM5NDkyIDk1MjFlMzgwMzgwZjBlYTNlYzQzM2UyZmJiNWVmZDlhY2E1NjUyNmMgbGVnYWN5LXRydW5rCiszOTQ5MyA2YmRlNmNkMjM5NTRjNzEyNTczNTRhYjMyMzJhNzk4MWUwOGE5ZDBiIGxlZ2FjeS10cnVuaworMzk0OTQgMTdiMWRmZDNjYmJiZDMzZmVjMTY2YjllOTg0NzIxY2U2NDBlZjZmZiByZWxlYXNlMjQtbWFpbnQKKzM5NDk1IGNjOTQxNmVlNThlMTlmMjgyYWJkNGMxMWMyNTgxYTcyYzhjMTM0ODQgbGVnYWN5LXRydW5rCiszOTQ5NiBmNzM3OGU5N2I2NmEyNDc4N2NkNjdiN2RhNWZiZDVhMmQ5YjgwNGIwIHJlbGVhc2UyNC1tYWludAorMzk0OTcgZTczYWNjZjNlZGRiNGEzMmY5Y2M2NTE1MGE4YWZkMjQ2MDRkMzdiNyBsZWdhY3ktdHJ1bmsKKzM5NDk4IDMzNmI2NjRhMjIxMGU5MmQ5NGJlMWQ5NmIzMzM4YTFiNzBmNWE3YjkgbGVnYWN5LXRydW5rCiszOTQ5OSA1ODI0MTMwYjdhYzM1MGZmMjdkZGFkYTU5MGFhMTc0M2YzODE3NDExIGxlZ2FjeS10cnVuaworMzk1MDAgYTdjY2NjMzkxMjI4MDIyYTgyYjcyMTAzZjllYzQ2OGQ2MGVhNGU2OCBsZWdhY3ktdHJ1bmsKKzM5NTAxIGRjODUzODg0NWIwYzg5MGVhNzkyNzU0YjRmNTJkYjRjOTk0OTA3MmEgbGVnYWN5LXRydW5rCiszOTUwMiAzNjNlNmRkMDc5ZmNhYzM5N2YzZTlkMTM2YmIzNTNjYjI3ZTM0MDZjIGxlZ2FjeS10cnVuaworMzk1MDMgMzlkYmUzYmUzMjdhYWFmYzdiYTRjOTg0OGE4ZmE1MjUyODNkOGQzZCBsZWdhY3ktdHJ1bmsKKzM5NTA0IGQ1MDRhMzAyYmY1M2UzYTNkYWNiNGNlZDk0YzcxMDhlMGVjZjkxZTcgbGVnYWN5LXRydW5rCiszOTUwNSBmMTdlZDNiNjJhZGFiMTU2Njk0NzgzNzhiMGQwODFjY2FkNGQyOWYzIGxlZ2FjeS10cnVuaworMzk1MDYgZWE1M2U3ZDk4YjAwNmFhMjM5ZjkzMzQzMTczNTgyNWFmZGUzNTY5NyByZWxlYXNlMjQtbWFpbnQKKzM5NTA3IGZhNzM3NjVlOGVmNTFkODU3MzY5YWYxYzM3NTlmYzEwZDI4NGZhN2YgbGVnYWN5LXRydW5rCiszOTUwOCA0NmYwYTQ0ZjQ5ZTY0M2ZlN2NhMmMyYWQzNWU3NTBkZmU2OTA4Y2M2IGxlZ2FjeS10cnVuaworMzk1MDkgOTY2ZGVhYzE1YTg5MGRmNzNhMGU2ZTUwYmI1ODYyNzhiZjhjYjg0ZSBsZWdhY3ktdHJ1bmsKKzM5NTEwIDg3NTczOWQ3MmZjMWM3Yjk4NmVlNjA1ZGU1Yzc5NWI0MGUyYTFhYTggbGVnYWN5LXRydW5rCiszOTUxMSBjMGQ2YmFlMzViNGU3OGZhMjBmNzdmMzE2MzdkZjJhYjc1NGNkMGFkIHJlbGVhc2UyNC1tYWludAorMzk1MTIgZTQxZmRhOWYwZmQxMDMzY2YxOTFhOGFkZWZiNGIxMjdhMjAxNzE0OCBsZWdhY3ktdHJ1bmsKKzM5NTEzIDdkMGE1YWMyNDY2OWFiNmJlNDcwYWQ5OWFjNzFkYjhhMGExNGZmYTAgbGVnYWN5LXRydW5rCiszOTUxNCA4MTI1OTAwOWJhMmM4ZjAyNDExMWM3MzA4YmM3NzQ3NmU1NDcwODQ1IGxlZ2FjeS10cnVuaworMzk1MTUgMjUzNzhiZGIxYjNhMGRhOGNkZGNlZjQyMDgwN2NmOTRlMDZmOWUzOCByZWxlYXNlMjQtbWFpbnQKKzM5NTE2IGFjZmMwZTIyY2Q4ZmM1OGU2YjIyMjZhNjZkZTBkZWExMjc5YTJlYzIgbGVnYWN5LXRydW5rCiszOTUxNyA3NmUyOTVlYTUxNTJjOTg0NmYxZTA5NjczYWU0NzI3NzliNjY4YTY0IHJlbGVhc2UyNC1tYWludAorMzk1MTggMTFhMjY1MGU4NTY4ZGMwYTc1MWJkYTZiODRkN2QwNTZmMDEzMDI4YyByZWxlYXNlMjQtbWFpbnQKKzM5NTE5IGJiYmI3ZGRhMzJmM2VlMDg1OWI4NjIzM2JmNmYzN2Y1N2NiMjVhZDEgbGVnYWN5LXRydW5rCiszOTUyMCBkNzlhZjA2NTExNTUwNmZiZDMwODNlYjA4MzIzNDFmM2ViNTk1ZTA1IGxlZ2FjeS10cnVuaworMzk1MjEgYjE5Y2Y3M2M1NGE3ODAwMWQ2ZDZkNWExM2RmYjA1ZDk3YTcxYjJhMSByZWxlYXNlMjQtbWFpbnQKKzM5NTIyIDcyNGJiZDQ4OWFkNDcyN2U5MDUyYzY5YjU2MzQxYjJiNWIyY2QyYTkgbGVnYWN5LXRydW5rCiszOTUyMyA1N2Y2MzBhOWRlMjYxOTYxNmYyYjIwYWUxYzM1N2ZiNDNlMDEyODUyIHJlbGVhc2UyNC1tYWludAorMzk1MjQgOWI3ZDExN2ViNGJjOTZkY2NhNzRjNmM4Y2VlOGFiYzkxODQ5MTkyZSBsZWdhY3ktdHJ1bmsKKzM5NTI1IDExNzQ0ZjdiYjQ3YTgyZDc4YjM2OWY5YmUzN2U2ZjczMDBjMjllYWUgcmVsZWFzZTI0LW1haW50CiszOTUyNiA2OGFkNTJiMDQ0NWJkYjdmMjI4YWVjNzcxY2Y3ODM4YjUxMzMzOTQ3IGxlZ2FjeS10cnVuaworMzk1MjcgNDE0MTNmMjMzNDViNGY3NWUwNDU2NzE0ODBiODA5Y2QyYTNkOTZjYSByZWxlYXNlMjQtbWFpbnQKKzM5NTI4IDhhNmM5OWY4NjVlYmQzOWNmZTc5YzUwZWFkZjg0MTU5OTRmMWRiNWQgbGVnYWN5LXRydW5rCiszOTUyOSA4YWQ5YTJmYThlYjJhNjA3OGY5NmFmMzBjODNlMmM1NTlkYWIxZWVkIHJlbGVhc2UyNC1tYWludAorMzk1MzAgYmZiZTJjOWIxMjE1OThiNmU1YTNmYzE1ODI3ZjIwNDE0NDBlNzQxYyBsZWdhY3ktdHJ1bmsKKzM5NTMxIGYyMzVlOGVmMGQ1NjkwNGZlMjA0YWRhYmE3Mzc1ZGQ3MjcyYTYyZmMgcmVsZWFzZTI0LW1haW50CiszOTUzMiAwN2VhZjYwZjc1NjUwYjE3MGYzNWQzOWI5M2FlNWYxZGEyOWFkYmUwIGxlZ2FjeS10cnVuaworMzk1MzMgYjhkMWI0NTI5MjA3MTE2MzM2OGI1N2NjZTcxYjQwYzNlMzc5MzBlMSByZWxlYXNlMjQtbWFpbnQKKzM5NTM0IGFjODgwNDRjZGU0ODZiMDBhM2U0NzhkNzc4NWI3ZmQ3YWQzMmJkZjggbGVnYWN5LXRydW5rCiszOTUzNSBkZmFiZjBjN2YxYWRmZDE3YzQ1MjZjZjJiZDljYTNkY2I4MDJmYjg3IHJlbGVhc2UyNC1tYWludAorMzk1MzYgYzg2NTU4ODVlNDA2NWQzNTUzMzgzNDkwOTA5MTNmODVjYWZmZGYzNSByZWxlYXNlMjQtbWFpbnQKKzM5NTM3IDZkYmZiZWU1ODVjYzgzZmUzMzIzMjY0NmM2ZDc4YThjYTg0YmI1YmUgcmVsZWFzZTI0LW1haW50CiszOTUzOCAxNTJhZTcxOTNjOWE3N2VhMmJhMGM4N2M0Yzc0NzYwZDgwYmU2MDU5IHJlbGVhc2UyNC1tYWludAorMzk1MzkgZmEwODgxZmQ0OWI3YTk1MDVlMTc2OTY1Y2ZhN2E3Yzg2NDcwNDkyNiBsZWdhY3ktdHJ1bmsKKzM5NTQwIDhiYWQxYmZjMzMxOTkyYzhlMWYzNDllZDUyYmE5ZTE2NDVmOTliMTEgcmVsZWFzZTI0LW1haW50CiszOTU0MSAyNjkxY2JkYWU1OWJmMzU2MTdmMWEzMzY4MDUwNjNlZGZhZjRjMjdmIHJlbGVhc2UyNC1tYWludAorMzk1NDIgOTA5MzBkMmQwYzE5MTA3NmEyYTAyN2Q1OWRkN2YyN2VmMzM0OTViZiBsZWdhY3ktdHJ1bmsKKzM5NTQzIDM1YzQzNjc0MDgzYTlhMzQxMzNlN2EwZmEyNGYzMTIyNzQ0MWIxZDMgcmVsZWFzZTI0LW1haW50CiszOTU0NCAxYjI1ZmU4ODM0YWVmZDdlY2JlY2RiOTAwM2M0MjY4NDk3YjU5YWJjIGxlZ2FjeS10cnVuaworMzk1NDUgZmQ1MWNlOGQzNWFiNGZkNDJhZjVlZmY2MWQwMmRjYzI3MGI0NDNjMSByZWxlYXNlMjQtbWFpbnQKKzM5NTQ2IGNkMzEwMjdhNzE2N2EzNzU0OGYyODU2NzljNWM5NjdhMGJiZWFjNmUgbGVnYWN5LXRydW5rCiszOTU0NyBkM2FlNzkzMGNiOTM5NTMzZmNmZmQ0NGQxNjk1ZDkzNjJlZDBhNGM3IHJlbGVhc2UyNC1tYWludAorMzk1NDggNzNmZTIxNjNmMGIzMGQzM2EwMjZjOGJhNmQyNTI5MGVhNTI1OTA2MiByZWxlYXNlMjQtbWFpbnQKKzM5NTQ5IDVhNmM0ODNlZDY4OWY0MTA1ODc4NDI4ODIwN2ViOTkwZGEzMTA0NmMgcmVsZWFzZTI0LW1haW50CiszOTU1MCBjMjhkMGVkODZmZjA1OGI5ODEwMGU2Yjc3MTMwNGQ0MmQxMTUxNjk4IGxlZ2FjeS10cnVuaworMzk1NTEgOGVmNTAwYzQ1MDZjNzJiNzRiZjlmYTA1MDBhOTU5ZmRkM2Q1MGZmNSBsZWdhY3ktdHJ1bmsKKzM5NTUyIGY0YzJjNjFjYjU2MDk1OTUyOTk0MTI3MmUxODBkZTQ2MzI2MWUyNWMgcmVsZWFzZTI0LW1haW50CiszOTU1MyAzNzg1OWM2YWQ1YmI1ZjdlYmFkMTlhMTY5ZDk4ZGVhNDI2YzEyMTUyIGxlZ2FjeS10cnVuaworMzk1NTQgNTJjNjVkNzNmYjc0MDE5ZjZmOWFiNTQ3YzBmYjE4NTEwOWIyYjBiZiBsZWdhY3ktdHJ1bmsKKzM5NTU1IDA5OGVhMWUxOGU4ZDk3NjA0ZDhmNmYxOGQwYWY5ZGExYThhMzViOTAgcmVsZWFzZTI0LW1haW50CiszOTU1NiAwYWUzMDcyMTI3NTUwYWUyNGI3NDJmMWIzMmJjZDFjNDE1MmIxMmZiIHJlbGVhc2UyNC1tYWludAorMzk1NTcgMGRhMzk3NWZiMGJiZmNmNzgyZDhjMGY2N2U2NWU1MDJiMTA2YTc0NyByZWxlYXNlMjQtbWFpbnQKKzM5NTU4IGU2MTE5ZDU3N2NkMzVmZDhkNTM4NWU1MGNjMWZkYWJlNGNiZTQ3OTUgbGVnYWN5LXRydW5rCiszOTU1OSAwMmE4YzA2NDNmNWJjZTI2NmJlYWI3NTBhYjkxYzcwMzZlZjc4MTdjIGxlZ2FjeS10cnVuaworMzk1NjAgMWNmMTcwMzdhMmNhOGM3NTgxNzdjYjdkYWExNDFhMDM4YTQ2MTgyMyByZWxlYXNlMjQtbWFpbnQKKzM5NTYxIDVmMjc4NTcyMmNiYWQwMzk0MWEyMTY3NzE2N2M3OTZmNzNmM2ZlYTIgbGVnYWN5LXRydW5rCiszOTU2MiA0ODA2Y2IwMDlhOWNlNjIzY2VmOGMxYTExYWE5ODAxM2QzNDFhNjAyIHJlbGVhc2UyNC1tYWludAorMzk1NjMgOWEyZTIwMzE4YzlmNWZiZGI3OGE5MTk0NGFmMDg4ZDllZmNjZDNhZCByZWxlYXNlMjQtbWFpbnQKKzM5NTY0IDYyMDk5MmFhMGE5ZWY1ODNkMzZiZjkzYzRjMTE5Y2RjMjgyZWEwOTcgbGVnYWN5LXRydW5rCiszOTU2NSBiNjhiMTM1YjQ1NTI2MWQyODI5OTcwN2M2NmU1MzBjZjkwODc0OWQ2IHJlbGVhc2UyNC1tYWludAorMzk1NjYgYmNkMDVjZjJkNjFiYTgwY2U5YjU3NGI5Mzg3YTJkYjMyNTUzZjZlNyBsZWdhY3ktdHJ1bmsKKzM5NTY3IDhjY2FkNzMyMzE1Zjg5MmRiNTNiM2RiNTE5ZDc3ZThkMDA0ZTRhY2YgbGVnYWN5LXRydW5rCiszOTU2OCBhZmRhZGQ1NjkxOTcwNWMxZTE5MTk1MWYyYmQ0Y2I1NGEzYjcwNzE3IHJlbGVhc2UyNC1tYWludAorMzk1NjkgNWMwYzA2ZTIyNmVjMDZlYTY0ZjRhOTA2ZDM2OTFlNjA3MDgwOGE3YiBsZWdhY3ktdHJ1bmsKKzM5NTcwIDQwZGRmMzY2ZjVhMTUyZjZiZDIwZTk4MjA5MjE5MjliZDkyY2YzNDEgbGVnYWN5LXRydW5rCiszOTU3MSA5Yjk5NGM2N2U5MDljMDg2ZjAyNjE3MTFiOTliNjRhNzc0YjkxMDFmIGxlZ2FjeS10cnVuaworMzk1NzIgODczYTFiMmVmZGM3MzY1NzZkYTA0ODQ4MTRjZjY1NjA4OWMwMWNlZCBsZWdhY3ktdHJ1bmsKKzM5NTczIDJjMjgwZTQ2NjFkMGEwNjk0NDRjYTIxMDE0YjVhNGFkNTY2ZmY3YmEgcmVsZWFzZTI0LW1haW50CiszOTU3NCAzOWViNmEyMjFjZjMxMjQyMjFhMTRiMzhlNjNkNDk5MWNmMGNkOGZiIHJlbGVhc2UyNC1tYWludAorMzk1NzUgMjFiYzYyNjJlYjk5MjBhYzhjMmU1N2VhMWUzZjBiZmM3ZGU2YTBhOCByZWxlYXNlMjQtbWFpbnQKKzM5NTc2IDg5Y2YyZTNmZTcyOGE2OGY0YmM2NmZjYTljMGFmNzllMGUwODVhOWEgbGVnYWN5LXRydW5rCiszOTU3NyBmODZjZDI3Nzg2YWIzMTliNzM2NTUxMGI1NjA1MDNmNjY1YTBmYWE2IHJlbGVhc2UyNC1tYWludAorMzk1NzggNzc1NzFmNzFiM2U2N2IwYmYzZjVkODlhNDYzY2JlMzA1MDJiOTMwYSByZWxlYXNlMjQtbWFpbnQKKzM5NTc5IDVhOGJmOGU3ZDAxMDJjMGUwYjFlZmRkODFhZDAwYjcyMDcxZjIxYmUgbGVnYWN5LXRydW5rCiszOTU4MCBhNjcwYTVkZDFmYzZhYTkxN2JiNjJhZDQ1NjA0YzNmY2I2ODNmNDlhIGxlZ2FjeS10cnVuaworMzk1ODEgMjNkZGE5MmRlOTkzOGEyOGZmNTU1ZWM4MTM4Zjk0NDYwYjMxMjA1MSBsZWdhY3ktdHJ1bmsKKzM5NTgyIDFmMjM2ZTU5OGFlOTc2MzFkNGRiNDQ3MjMwMjUwMGZmMzM4NDFjM2IgbGVnYWN5LXRydW5rCiszOTU4MyBhZjNhMDY2MjVhNmU1OWMyZGJmOTJiNDBlYWJiNzRiYzJkNDU2ODFiIGxlZ2FjeS10cnVuaworMzk1ODQgMzVhOTllY2NhY2E2NzkzMjZmNWU1Yzk5MGIzYjlmNmE2OTRjZjliZCBsZWdhY3ktdHJ1bmsKKzM5NTg1IGVjYjc4ODYzYTRlZTdmMzE0MzJiNzlmY2MxNDM2MTQ5YzA1NTBkYzEgcmVsZWFzZTI0LW1haW50CiszOTU4NiA3YjJiOGRiOTgxMzYzMzUwN2NlNTk2NWRmMzg3ZDI0NTViN2UwNGIyIHJlbGVhc2UyNC1tYWludAorMzk1ODcgYzZkN2YxZmU5ZDFlYmU5MWE2YWJiOGYzMjVlMGI4Y2U1OTIwZDhmZiBsZWdhY3ktdHJ1bmsKKzM5NTg4IDkwYmI3MTEyMjI1N2MxMTIzY2VjODliNTUwOWI3YjkyODFlZmNmNDYgcmVsZWFzZTI0LW1haW50CiszOTU4OSA0ZDFiZDlkMGMwMDZkYjY2M2VjZTU3OWM4YTI0MGVlNmJhMzdiMDczIHJlbGVhc2UyNC1tYWludAorMzk1ODkgZDAyZDM4NzU1NGUyMDBiZWZjZWVjOTk5Yjc4OGY0NTkzYjQzNGI0OSByZWxlYXNlMjQtbWFpbnQKKzM5NTkxIDcwOTI3Yzc5OWEyMWUyNmIzYjVjZDBmNmZjMTA1Y2JhZjk3MWNkZjQgbGVnYWN5LXRydW5rCiszOTU5MiA4ZmZlZWRiNjA2ZDMzMGNkZDNhNGQxNmJhNjc2YTFhNmVhMzBiNGNjIHJlbGVhc2UyNC1tYWludAorMzk1OTMgNmYzZDIwOTU1NWViNTVmZjQ4ZjU1YTFkOTQ1ZDRlZmYwYWEyMWU0OCBsZWdhY3ktdHJ1bmsKKzM5NTk0IDcyNjYwYzA4NjZhMTlmMDAzNmU3MjA4MTc5OGJlYmI4ZjZlMWVmMWEgbGVnYWN5LXRydW5rCiszOTU5NSA3NzRiZjlhMzhiMmFiOTQ2NjZjNWZiNjU0ZGE0ZTI0ZTI0YTVjYTM2IGxlZ2FjeS10cnVuaworMzk1OTYgMTdhODJiYTQ1NDUyYWMxYjVhMTJkZTlkZGQ0MzNjZmE2MzlhMzc1ZCByZWxlYXNlMjQtbWFpbnQKKzM5NTk3IDM5OWM0MTE3NmJiNzlhMmYyNDg1YzlkNGEzODA3YThjMjA5NWQ0YTUgcmVsZWFzZTI0LW1haW50CiszOTU5OCBhOTU3NjVmNjkyODI1MWQ4NmYwZDEzNTdlYjQ2NjQxYWM0ODMzOTEyIGxlZ2FjeS10cnVuaworMzk1OTkgNGUwZDJhN2Y1ZjE1NDQxYmRjMTUyZmIxZTBjYTRlMDBhZmZjMDVmNyByZWxlYXNlMjQtbWFpbnQKKzM5NjAwIDc3N2IyOWQ5MTNhNjIyYTJlOTlmODNhN2VlYTIzZWFmYjBmNjcwOWEgcmVsZWFzZTI0LW1haW50CiszOTYwMSA0OTVlN2ZmYWQ3ZThjYzA2NDdiZmUyZGMzMDRlOTBjY2RlZmEzZmMwIGxlZ2FjeS10cnVuaworMzk2MDIgNjg3ZmFhOWNmNmViMDhjMTYyZWUzOTJmNTUwNGY0ODhiYzMyNjYzMCByZWxlYXNlMjQtbWFpbnQKKzM5NjAzIGMyNjBkM2I3ZDU4Mjk4MzA0MDNkMTVmYmQ1NGE3NDQ4OTYwNDhjODkgcmVsZWFzZTI0LW1haW50CiszOTYwNCAwM2NmZGNiYzRkMWYzYTM1M2RjMzg1MDdmYTQwYzJmZjczZDJhMGExIGxlZ2FjeS10cnVuaworMzk2MDUgNDVhYWE0MzZiOTQ1MTI2MDYzMTI0MjIwYmJkNTE4ZWM4ODgzN2NiZCBsZWdhY3ktdHJ1bmsKKzM5NjA2IDMwMjhlMzBhYTgzNTU5MDM1Y2VmMjcyYjQ3ZGJiMGI3ZGJiMDcxMDAgcmVsZWFzZTI0LW1haW50CiszOTYwNyAyN2UxNDI2YjdmMzFkNjQyZTQxMTRhMmZiZjYxM2Q4ZGY2NDg0ZjI0IGxlZ2FjeS10cnVuaworMzk2MDggZTIyMzM0YjFkYTY3ZmIyOTE2ZTY4NmQzYzRkZjljZTYzYjVjOTdmNyBsZWdhY3ktdHJ1bmsKKzM5NjA5IDdkZDRlNmNiOWQyNzUyODNlYzU4MGFiNzFjZmEzYzYxOWUxMGFmZWQgbGVnYWN5LXRydW5rCiszOTYxMCA2OGRiY2JmMDUxNmM1NzY1ODYyMDc5M2UyODQ2M2E3ODIyMDg5OTY1IHJlbGVhc2UyNC1tYWludAorMzk2MTEgZTMxNTY0YzdiZGJmN2EyNmIzZDgzMWFlODA4YWNmYWM1NjE3MTg2MCBsZWdhY3ktdHJ1bmsKKzM5NjEyIDFlN2I3NTUxOTRhNGRkYjc0OTVlNDA4MWNlYTY3N2E5ZjUxMzE0MzYgbGVnYWN5LXRydW5rCiszOTYxMyA0MDdhYzQ5OWE1YTM5MWY2NjBlNGNkNjVhM2RlM2U5ZjE5MmEyNTkyIGxlZ2FjeS10cnVuaworMzk2MTQgZTBhOWY2NmI3MDE0NjcxNmI2YzE3NGVmZmUxNjQzOGRmZGE5ZTQ3MiByZWxlYXNlMjQtbWFpbnQKKzM5NjE1IGFlNTM2ZTY2ZTg2ZjVmMDFjMThjZDQyNWUwMmRmZjY3ZGY3NzFjMzEgcmVsZWFzZTI0LW1haW50CiszOTYxNiBiNjQ2MzljZWEzZWQ4N2ZmZjRlYzBlNGE5MmI2ZTQzMTViYmI3Y2NkIGxlZ2FjeS10cnVuaworMzk2MTcgZjViZDdlYWQxNmM0NzIzNzFkNTVhYTE5YWUyNDAzNjhkOWVkMWY2ZCByZWxlYXNlMjQtbWFpbnQKKzM5NjE4IDRhZTdkYWFmMGE2NjExODg0NDlhYjgzZGZhOWEzNzZjZGFkOThhODEgcmVsZWFzZTI0LW1haW50CiszOTYxOCA4ZDM3Mjc2ZmRmMDc3ZDZkMjNkOTYzZDNmN2Y5NTM4MWQwMGYxOTI2IHJlbGVhc2UyNC1tYWludAorMzk2MjAgNmI0MmVlYjUyMTRkYThhMDMyMmQzMTYyZTUzZmVlMzE5MmI5N2NjNCBsZWdhY3ktdHJ1bmsKKzM5NjIxIDhmMmJmMTg2NzRjYmU5MzI4MjBmM2U5ZDQwZDJhMjgzYTFkYzliYmIgcmVsZWFzZTI0LW1haW50CiszOTYyMiBkMzNmNGZjODRkNGFmMmIxOWU2M2Y2MDMyMzVhOTE0OTc4YmVjYzkyIGxlZ2FjeS10cnVuaworMzk2MjMgYzM3ODNhMTJhMWJjMTlkM2QwZWIyODEyNDg3N2UyMWJlYzI4YTMyYSByZWxlYXNlMjQtbWFpbnQKKzM5NjI0IGNhODQ0NTE3Yzg0OTUyYzQ1NjQzMGJkNTViNjA0YjAzNzBmZWY1NzQgYXN0LWJyYW5jaAorMzk2MjUgNmEyMDgzMWQzNTdkNTdjZDYyNGJhYjkwZGUzNzMzZTUxZWI1MTMxMyBsZWdhY3ktdHJ1bmsKKzM5NjI2IDllZjI1Yzg5ZDBkNmMzMDY5Y2Q4MGFiOTU5N2MwYTI3MDBlMTYxNTcgcmVsZWFzZTI0LW1haW50CiszOTYyNyBiNWEwMTI4MmRhZGFmYzk5Y2NhNGVhNjExMjM0NDA1M2RiODY3ODFhIGxlZ2FjeS10cnVuaworMzk2MjggOGViNzVjMjhlZDk0MWM0MzJmNWQxM2RjMTUwZmMzN2NkYjU2MTA4MiByZWxlYXNlMjQtbWFpbnQKKzM5NjI5IGEyY2YyNTY0MmM4ZWNkZjk2YTg4NmY0MjNmZDg2MmFiNzM1MWI4ZWUgbGVnYWN5LXRydW5rCiszOTYzMCBjYmExMGM2ZDM0ZTM4NTkzZTY2ZDZhOTY4ZDUxZTBiODdiZTAxMGI4IHJlbGVhc2UyNC1tYWludAorMzk2MzEgYTgzZThkZjEzNDk4NjJhZjMxODRhNjIxOWRlNTQ3ZWZhN2ZlZjdmMCBsZWdhY3ktdHJ1bmsKKzM5NjMyIDFkNGQ4NWM3MzVlN2M0ZjhhMTllNjBlZGE2MmJjYjUxMTRmZDJjNjcgcmVsZWFzZTI0LW1haW50CiszOTYzMyA2ZDA0Y2IyY2RkNGFmY2NhZjU4OGM0ZWFlNGFhZDEyNGU1YmZlOTlmIHJlbGVhc2UyNC1tYWludAorMzk2MzQgODU2NTFlYjNkOWE5MGQxMjFhMGY0MmE1YjA0Yjc0MTJmMTUzNmUwZCBsZWdhY3ktdHJ1bmsKKzM5NjM1IDY3ODQ4Yzg3MTc2OGI1NTljM2YyMzRhOTRmOTZiYjRmZmMyZDg3ZDYgcmVsZWFzZTI0LW1haW50CiszOTYzNiA1NjExZGI0NTFhMzliYTJlZjdiOGE1MGJjMmFhMjQ1ODYwY2JiNWVmIGxlZ2FjeS10cnVuaworMzk2MzcgMGJlMDA3NzVhODBjNDUxYzA1MTYwMWE5YzQwNWQ3NjRhZmYzYzQzMSByZWxlYXNlMjQtbWFpbnQKKzM5NjM4IGRjNWQ3MDYyODNkNjJmZWJjNDU4N2FiZDliOWMyOTJiZTIyMDJmM2MgbGVnYWN5LXRydW5rCiszOTYzOSBiOGU1NzFlNmRlMmUzZTU3NjdlYjBlYWJkNjUwYTJiOTY1NGU3ZTYyIGxlZ2FjeS10cnVuaworMzk2NDAgZTQ1NGQ2YzFiM2MxZjNmYzNjMzE3MDBiODcwYmFjMzQzYzRlN2IxZCBhc3QtYnJhbmNoCiszOTY0MSA2MzBmZjU0NDBkZmM2ZTk0M2NkNDMxMzVjNmU4NWI3ZDk2OTI0Nzc3IGFzdC1icmFuY2gKKzM5NjQyIDc1MzQ1Nzg3OTQyNTU5MGE0MTM1OTYwODgwMzJhMWQ4YmY1ZjBjMTEgYXN0LWJyYW5jaAorMzk2NDMgNmMzZDBhMGMxOTU2MDA4N2I1NDM1M2QyNTQ2ZGFlNDFlYzhjYmQ4YyByZWxlYXNlMjQtbWFpbnQKKzM5NjQ0IDg0NTQxNzMxYjE2NmE2YzQ1NTNhYThjZmJjOWRmNzk3ZjAxZjk3MjggbGVnYWN5LXRydW5rCiszOTY0NSBmNmEyMDliNjk1MGNhYjczYWEwMjJiOTliNTdiMjUyY2NiZmE5NWY4IGxlZ2FjeS10cnVuaworMzk2NDYgY2VlZDMzZWFjNDM2MTY4MTJhMjY3MWVlYTY1ZDgzZWFmOGY5N2Y0NiBsZWdhY3ktdHJ1bmsKKzM5NjQ3IDVkNTIzNmVhZThiZDNkNjBkZjgwMzhjZjU5N2UwNjA2MzQ0MTVkNGIgbGVnYWN5LXRydW5rCiszOTY0OCA0MTJkMjFlMzBjMTMwZTIyNzZiOTg0NzA4OWE2MTc1NDhmZTg3Y2UzIHJlbGVhc2UyNC1tYWludAorMzk2NDkgNjEyYTEyMTc4ZTQ3YjcwODRjNmUxMDNkNTA5NWUwZjFlZjQ2OTEyZCBsZWdhY3ktdHJ1bmsKKzM5NjUwIGQxNDgxM2U3OGE1MDBmYjJiOTFhYzU0Y2U1Y2ExZDRkMzE5MDNkNjcgcmVsZWFzZTI0LW1haW50CiszOTY1MSA5ZDQzMzgxYzE4NGNiYmJjN2RhY2MyYTI2ZWQ1ZTAwODVhNDA5YTlhIHJlbGVhc2UyNC1tYWludAorMzk2NTIgZTFkZjQ4ZjI4NDdhZDhlOGRkZjYwMmI3ZjI5NDA5YTY4ZWM5YWY5YiByZWxlYXNlMjQtbWFpbnQKKzM5NjUzIGU5YmFlMmZlYmFjODAwZTAzYmNiY2ViN2I0ZTQ4YWFhM2QwOTcyNTAgbGVnYWN5LXRydW5rCiszOTY1NCBmMDk1MWZkYWVkMzdjMGFmMzM4NThkYTBhN2ZkNDA2ZWIxNDZhZDQ0IGxlZ2FjeS10cnVuaworMzk2NTUgMTcyZmNkOWMxOTUyNjE1YzgxZmQwY2E4MWQ4ZTEwZTU1NTA2ZmNkNSByZWxlYXNlMjQtbWFpbnQKKzM5NjU2IDhiZGQ4YzJjNmM0OTVmOGE2ZjU4YTQxZmQ1NGE2ZDYzMjE2ZDQ5YTcgbGVnYWN5LXRydW5rCiszOTY1NyAzZTBiYjdmNzVhYjc2NWE5YzhhNTdiOTAxMWI4MjE5YTdmNjE1YzA5IHJlbGVhc2UyNC1tYWludAorMzk2NTggZTQ2NmMwYTU1MGI4OGNiODdiYTQyYTUxYmIzN2JlY2RlMjg3YjE5NiBsZWdhY3ktdHJ1bmsKKzM5NjU5IDAyZmU1ZDQ5NmZjZTk5MjQ2YzYzYjUyMzBhMjcyZjJkZGRiZmI0ZWUgcmVsZWFzZTI0LW1haW50CiszOTY2MCA2OTA3ZTQ3MWJkYWNlNDAwZDIzMGEwOTRjNmY2MzA2NzZlNGEyNGU3IGxlZ2FjeS10cnVuaworMzk2NjEgM2JlODM1MzUwMDgyODYyYjVhZTY4ODNkZWI0MDBmMmRjYzNlMGViYSBsZWdhY3ktdHJ1bmsKKzM5NjYyIGY5ODc5MjM3ODk1NDE3YjdkZDg1MjgxMTliY2Y0ODY3ZDhhODVlNTggbGVnYWN5LXRydW5rCiszOTY2MyAyOTg1ZTQyZWIyZDJiMDkxY2FkMThhNjJmM2RmZWJiNGI5OTVmNDc0IHJlbGVhc2UyNC1tYWludAorMzk2NjQgMzMwYzIzMDc1MDU0MTkxMDZmNzE2NzM2ZTAxMjMxNTAwZmYxYmMyYyBsZWdhY3ktdHJ1bmsKKzM5NjY1IDJmZGE3YjE3NDc5NGQ5YzAwNzhlOWI2NTc1ZmUwOGZkNDFmYzk5ZDQgcmVsZWFzZTI0LW1haW50CiszOTY2NiA1NDhiYWQyMTU0MjlmMzlhZjkzNzM3ZWExOTViOTVkZGEwMmE4MmIzIGxlZ2FjeS10cnVuaworMzk2NjcgZTI5OTU1NjM2MTBmNzE3OTRlZWRjNWY5YWJjYWQwMjFjZTA4YjhiNSBsZWdhY3ktdHJ1bmsKKzM5NjY4IDdhN2U4NzliMmFhMWIyZTA1OTFlYjU0NGY5OGE0YzZiOGVmZmZiZmIgSURMRS1zeW50YXgtYnJhbmNoCiszOTY3MCBiNjFjZGQ0Zjg4OGJmOWY2MTI4ZjM2NjIyNTEzNThmMTExMzBkYjE0IGxlZ2FjeS10cnVuaworMzk2NzEgMDhhNTUxZTc1NjFjYzJiNDYzZGM3NzI1YWZhMjhiZDJmZWIzODRkMyBsZWdhY3ktdHJ1bmsKKzM5NjcyIDk1YzBkZDExYWZhNzhkMmE1ZmUxOGM2NDI1NjRiY2FiNzQ0ZjE1NDYgbGVnYWN5LXRydW5rCiszOTY3MyA1ODZiNDhlM2NiOThhMDMzYTNkNzMxMTIwYWJiMDE2ZWY4MGE0NjFjIHJlbGVhc2UyNC1tYWludAorMzk2NzQgOTIxYWZkMDhhNWRjYmQ0MjAxMjk4N2U4YjJiN2NkZTM5ZjBkODE5MiByZWxlYXNlMjQtbWFpbnQKKzM5Njc1IGQwYWY3YjA5OGE5OWQ2MmVlYjJlNjdmNjE3M2JjMjg3MDZiMDljNGIgbGVnYWN5LXRydW5rCiszOTY3NiA5MjM3MjNhOWM0M2NiOTZlODE4NTMyZTAzMmExOTU3MGY1MTVjYmNlIGxlZ2FjeS10cnVuaworMzk2NzcgMzU3MjI0OWMxZTc3MTAyOTQyODhkMWNkNTk5NjMyMzMzNmU0YTE3MyBsZWdhY3ktdHJ1bmsKKzM5Njc4IGQ0M2RmZTY5NWQwOGE0YTc0M2I2ZGUyNTE3NzlhMjM0OGE5NDc5N2QgcmVsZWFzZTI0LW1haW50CiszOTY3OSBlMTZiNmJkZjNmODk5YTdmNzZiODE3M2RiNWRiNzkzZDllNGE0ZTNkIGxlZ2FjeS10cnVuaworMzk2ODAgMjJhNzIwYjM1MzE0ZDAxMjk5YWRhZWE2YjJmYTA1MTFhM2IzMzJjMiBsZWdhY3ktdHJ1bmsKKzM5NjgxIGU3OGU4NGYxYTgyNDg3ZmNjNDUzZWMzZTQ0ZDFlYmNmYzViODI5YTkgYXN0LWJyYW5jaAorMzk2ODIgNzY2MzVhYjdiNzA3NGQ4NTYzNTFiYmI4N2QzNGRmOTdmYzE5ZWIwOCBsZWdhY3ktdHJ1bmsKKzM5NjgzIGE2NGJlMTM4ZjBmNmM0ODA2MGQ2NDNkZTg5NGY5MjgxNGJkZTUzMDUgcmVsZWFzZTI0LW1haW50CiszOTY4NCA2ZTA0YTU1N2FlMjBjZDZlZmMyZGNiNjgxOGM3YjE0NzA4OGUwY2RiIGFzdC1icmFuY2gKKzM5Njg1IDRlMzk4ODM3MzczYzlhZDZlMzc1MWY1OWQ4YTM0NzQwOTA1NzE3MGMgbGVnYWN5LXRydW5rCiszOTY4NiBhYWUzNzQzMGY1MjU5NjM0NzdhMGM1YWFjM2ExM2JmYTYwZDYzNGI0IGFzdC1icmFuY2gKKzM5Njg3IDg1NjdlYjIzZTY1ZGViNGYzYjEzNmJjMTk1N2VkMGRiM2M5M2M2MzIgYXN0LWJyYW5jaAorMzk2ODggMGU2OTA3OGNhZDkwMGZkMzdhMjU1M2I3ZTg3YjA5YjMzYWRhNDA4MSByZWxlYXNlMjQtbWFpbnQKKzM5Njg5IDU2ODVlYzU5ZjM1Yjg0MTMwMjFmMTQzZDhlODQ2Mzk2ZDFjZmU1NjAgbGVnYWN5LXRydW5rCiszOTY5MCBhYWIxZDVmZGY2NGRmNjU2ZWRmM2EyNWYzNjNlMmQxMjc4NzUyMDFmIGxlZ2FjeS10cnVuaworMzk2OTEgOGU4NmRiYWQ4YzcxNGU5ODhjOGEwOTIxYjhiMWY3ZmUxM2FhYTFiOCBsZWdhY3ktdHJ1bmsKKzM5NjkyIDU5YzRhNjU2NDJjNTY3YWQ4MGEzOGM1NTQ3ZDVhYzAyODQ3ODY5YTkgbGVnYWN5LXRydW5rCiszOTY5MyA2ZTcwZWQ2ZGZhZDY3NTc5NzA5YjIyMTk3YjdlMDk5MTBlNmY2YTRkIElETEUtc3ludGF4LWJyYW5jaAorMzk2OTQgZTllMzBkOTI4NzFlOWEyN2FhM2E2NzQ0NTAyYWFmNzJmNmFjMDg4OSBhc3QtYnJhbmNoCiszOTY5NSA3YjM1YzI5MDQwYzk5MmZhYmU5NDI0ZTM0N2VkZmRmY2VjMzFlMTY3IGxlZ2FjeS10cnVuaworMzk2OTYgN2I3ZWIzZTc2MjBkZjkxMDAxODhiM2I5Y2EzMThhNjYyMzA1MTM0NiByZWxlYXNlMjQtbWFpbnQKKzM5Njk3IDcyZmViZWU1OGU3YjllMzY4MDgwNWFiNmIxOWE0M2RlMmNlMjMyYTMgbGVnYWN5LXRydW5rCiszOTY5OCBjMzhlNGVjN2I3ZjExZDU2ZTNjY2EzNDM2YzYyYzA1NGE5MGFmMGFmIHJlbGVhc2UyNC1tYWludAorMzk2OTkgN2U3OTg5YjZhYzM2YzRiOTE1NTk3YThiY2VhZjQzZjBkM2MwYTAzYSBsZWdhY3ktdHJ1bmsKKzM5NzAwIDVhNjI2ODZmN2RmZGY2NGViNmMxM2VmMzNlYTJkYmUzNWVmZmY3YTQgcmVsZWFzZTI0LW1haW50CiszOTcwMSAzMDdiN2VlZTNlM2Q5MjIwNzNhNjZjN2JlNDhjOWU4ZWMzZWExNWFmIGFzdC1icmFuY2gKKzM5NzAyIGQ5NDdmYmVjMzVkM2YwNGYxNDhkZTRmMGFmNGZmODI2ZjkwNWJiM2EgcmVsZWFzZTI0LW1haW50CiszOTcwMyA3MjU5NWE2MTU1NzFiNDA2NzFlOTMzZDIzMzFlNzJjNmMxNzJmYjQxIGxlZ2FjeS10cnVuaworMzk3MDQgYzNkNjRiYzdmNjk2MjI4NmQ0YTQwYjA4Yzc1MzQzYmYzNTc3NDRmMiBhc3QtYnJhbmNoCiszOTcwNSA1N2Y2MmU1YTM5MjE2NjYwMGU0YzA3NmI2MDVmNzg5OWU2YWMxYjJmIGFzdC1icmFuY2gKKzM5NzA2IGM3YTdlM2QxYmZhNzBhNDIwOGRkMDk3ODFiYzU5MWE3MDkwNzMyNjUgYXN0LWJyYW5jaAorMzk3MDcgYWM3ZjU0MDcyNDZmNDBmZDNmYWQ0OGQ1MDY5ZWY1OTE2YWJhNWU2MyBhc3QtYnJhbmNoCiszOTcwOCBlZjdjZGRlYjMyN2NjOGM0Y2Q3MDU1NWQ0NTAxNGVjZDNiN2UzMzc5IGFzdC1icmFuY2gKKzM5NzA5IGIxMDgxYzQ5NWQ0NjczM2JiZmE3ZDJiY2EzYjEzMjA4MGRkYTQ3ZGQgYXN0LWJyYW5jaAorMzk3MTAgMTc0NWMyZWRjNTE0ZDkyMzJjZTU0Zjk1MWU5NzQyOGQwZWVhZmFmYSBsZWdhY3ktdHJ1bmsKKzM5NzExIGE0NDI5Yjc3ODdkNDRlNWI5YjJmODYxMjUxZTIwZDFjNmVlY2ZlZGQgcmVsZWFzZTI0LW1haW50CiszOTcxMiAyMzQyY2RiOTI2OTU2YjJkOGQ4ZGYzMDUzYzU3NWYwZTZjNDFmZWI4IGFzdC1icmFuY2gKKzM5NzEzIGVjZTVlYjZmMmI1YTMzZGQyOGE5MTY1ZGYyYjExNTY0ZGJjNjRmZTIgYXN0LWJyYW5jaAorMzk3MTQgM2JkNzQ4MjRhM2FjZDBhMWU0MDZiNTM5ZGNiZmJkYTM3YjA2ZWQ0OSBhc3QtYnJhbmNoCiszOTcxNSBkMjA0NGU1YTA2YzdlNjM4YTJjYTNhYjcwZjdkMDI1MWU5YjM0YmMyIGFzdC1icmFuY2gKKzM5NzE2IGE0YmVjN2I2YjY0MDViM2VhYWMyOGU0NWYyMTVlODRkYzkyYTUxYzMgYXN0LWJyYW5jaAorMzk3MTcgMzBlODhhMTc1ZmRjOTBjNzk3NTE4ZDY5ZGM5YzNlYmY2N2Q0Njk5NCBhc3QtYnJhbmNoCiszOTcxOCA1MjVkYWMwZDI4NWJmMmUyNDg4MDBjNTIzZGVjYmQyZDBkNjA2YTdlIElETEUtc3ludGF4LWJyYW5jaAorMzk3MTkgNzZiOTFhY2FkNWU4OGNjZjcyNGM0YWYxNDRlMzZlNDhiMWFjZTAzNyBhc3QtYnJhbmNoCiszOTcyMCBiYzdmNmRlYWIzNDBhZTc1NzM4NDYyZWU3Y2JhZGRhZjk0ZTliZWZkIGFzdC1icmFuY2gKKzM5NzIxIGRkMjkyNjFjYjQzODIwZWJkOWJlODYwYzVhNGU3NTMyOGJjY2NlNzggYXN0LWJyYW5jaAorMzk3MjIgOWViNDQxYTcwNzI0NmJkYTFlN2FmMWRiMzgxMDFlYTYxOTMwZjE1ZiBhc3QtYnJhbmNoCiszOTcyMyBjZGE4NzM1NzE4NWZiOTNjZjBhNzkzMGNjYzhjMTcxZjNiMmQ3ZDk1IGxlZ2FjeS10cnVuaworMzk3MjUgNTY2OTMwN2MxMzFjNTM4NDY2NTZhY2U5YTZmMjljMWExNjk5Njk0YiByZWxlYXNlMjQtbWFpbnQKKzM5NzI2IDQyZDNhNDQwMGQzODY2Y2E4NjQ1YzBmZGQ2NDYzZTIzZDhlZjdkMWEgYXN0LWJyYW5jaAorMzk3MjcgMjE2MTFmZjU1OGE1MDIzODNiNTY5ZWJhYjkyNGRiNWM5YTUwZjQ3MyBhc3QtYnJhbmNoCiszOTcyOCBhZTUzOWFmNGFmYzUwMWQ0Mzk2ZDEyZWY2MGNiNDQzOWI0NGRkMDA0IGxlZ2FjeS10cnVuaworMzk3MjkgNjBkZmUyZjU1YzBmNTNmYzY0OTE2OGE3NTFlZGYzZmY0OTliMTgxYSByZWxlYXNlMjQtbWFpbnQKKzM5NzMwIDY2NzkyYTJlZjNkYmQwNDNjYTRlOTZkMzc0MWI0N2FjNjRmNDM5NDUgYXN0LWJyYW5jaAorMzk3MzEgMDZhZDYzNDU2NDlmZGRiNmE0OGFhYjYyN2M4ZGRiMDVjYTk5ZTcyYyBhc3QtYnJhbmNoCiszOTczMiBkN2Y0MDcwOWUxNTg1NDBkYWZhNzU2MTgwOTEzYjRlZTVmNDkyZWYxIGFzdC1icmFuY2gKKzM5NzMzIGJiNWJhNTQzNTllNWJjZDM4MmY5OTg5NzIwMDc0YTUwYmE0ZDE0MjMgYXN0LWJyYW5jaAorMzk3MzQgNDk2ZWI1ZGVkNWU0NWIzZWM4MjRkMzMyZjI0ZGY5NGVjYzA5ZDlmOSBhc3QtYnJhbmNoCiszOTczNSBjOWZhODViNDA1M2I3NWI3OTI0OTQ2ODhjYjUzNjM5YzYyNjU4M2ZhIGxlZ2FjeS10cnVuaworMzk3MzYgZWIyYzA5ZDg3ODcwMTgzZjc5Zjc0NDllYjY0YzMzZWQ2YzhiMGQ4NiBsZWdhY3ktdHJ1bmsKKzM5NzM3IGZlMTAzNzNjZjhhMjcxZGRhYmQ3ZDU5ZmIxYjhlNGZmYTMzOTA5ZmQgYXN0LWJyYW5jaAorMzk3MzggODNmMjQ1ZjcyODMyZTM5MWY4ZmVhNGEyZDRkNzAyM2RhYTYzOThiMiBhc3QtYnJhbmNoCiszOTczOSA1MzY1OTBjMzIzMTE4NTJhMzNhMTg4ZmNkNzFlZDZkY2M4ZDZjOWMyIGxlZ2FjeS10cnVuaworMzk3NDAgNTc0N2NlZDM1NDI0YTZmMTA2NWEyMDk3MmQyMjFlYjdiYjEwYzgwNiBhc3QtYnJhbmNoCiszOTc0MSBjYjVjYzQ4YjVjMjk1YWYwODJhOTc3NTA0N2ZlNWZlNGVjOTdlMmM3IGFzdC1icmFuY2gKKzM5NzQyIGJjN2NhMTYzMzRiYWI1NGFkODgxMWJiMDA1OTg3MWRlNTlkY2NkZDggYXN0LWJyYW5jaAorMzk3NDMgOWVkNDNlNjM3YWU3YjVhZWQ1YjFhZGM4ZGNmOWI4ZmNmN2IxMTNiNyBsZWdhY3ktdHJ1bmsKKzM5NzQ0IDY5MTNhYmI3MDQ3YWVmZjE4YTgyMGIzMzMzOGUxMDVkYjlhYmM2YjIgbGVnYWN5LXRydW5rCiszOTc0NSA4YmVjMTIwZGJiMTZhNjc5NDRlYjNkZWZiNGE2NjIzOTQzZmQ5MTE0IGxlZ2FjeS10cnVuaworMzk3NDYgMGI4MjY4ZTBkNzBlNzc4Mjk5YWEyZjJmOWM4ODRjNDc4YWJhMWY2ZSByZWxlYXNlMjQtbWFpbnQKKzM5NzQ3IDRmMjg0M2RmYTIzYzc5YWMyN2E4ZWE2MDIzNWE4MTRlMGQyZTg4ZDggbGVnYWN5LXRydW5rCiszOTc0OCBkMTIwMWZhZTA2YTg1MDA3M2UxNTNhM2U3Y2ViNTY5MThhMDM1NTJiIGxlZ2FjeS10cnVuaworMzk3NDkgZGZiOGZjMzc3YjU4ZTY4ZGU2MGQ3OGRhMjk3YjBlNzc0NGQxMmU5OSByZWxlYXNlMjQtbWFpbnQKKzM5NzUwIGVhNjgwOGJhMTYzN2JjMjc4N2FmYmUzZDAyZjVlNmQ1OTIzM2FmZmQgbGVnYWN5LXRydW5rCiszOTc1MSA3ZWQ4NzA1MGUxNjk3NDY2YzIyMTRkNThlZGNmMzBlMzVlMmFhMjI5IHJlbGVhc2UyNC1tYWludAorMzk3NTIgNTM5MGRkYzc3ZWI4NjZkZmYzNzJkMWFlYTJkMmI1MWJlNzRiMzI5YSBsZWdhY3ktdHJ1bmsKKzM5NzUzIGUwMThmY2UxNGYxMDA2NTQxZTEwYjg0MTMxNDljYjA5MjBkMzhkYmQgbGVnYWN5LXRydW5rCiszOTc1NSBkMDM5OTM3OWQwY2IyNjRjMzgyMzEzMDMwYzM0MzI3NWU0M2FkNmNhIGxlZ2FjeS10cnVuaworMzk3NTYgYjMyYTM5MDkxYWVkY2I2YjA2OWNmMGNkZGU2ZTkzMDRjZGMwMWNmNyByZWxlYXNlMjQtbWFpbnQKKzM5NzU3IDM3MTYwNTE4MzBjMmNjNWFiMGQ1YzFjODIyOWUwNTA1MWQ0ZGM5ZjcgbGVnYWN5LXRydW5rCiszOTc1OCAxYzRkMTkyZjE1NjhkZjhjYWUyZDM1MTQxYTcyOTI0NzU2NGEzY2ZlIGxlZ2FjeS10cnVuaworMzk3NTkgMDViNzE1ODIyYmE1OTZlMjc1NTU1NWM1MTVjOGQzNzJjMDgwNDNmMCBsZWdhY3ktdHJ1bmsKKzM5NzYwIGU3ODE1NDk1YmIyNzliMTkyZWMxNGRlNTNhY2Q5YWE5OWQzZTU4NWMgbGVnYWN5LXRydW5rCiszOTc2MSA0MDdjM2RhY2JkN2MzMDVmYzY3NDIzMDI4NmEyN2JhYjIzOWUxZGNhIGxlZ2FjeS10cnVuaworMzk3NjIgNzE4ZTlkZTIyZWE3MjVlMjViNDBmYjU3ODViYWVkZTMwZGJlYzFiNSBsZWdhY3ktdHJ1bmsKKzM5NzYzIGZkY2I1OGNiZmY0ZGYwZDZkMDIxNzZmZWU5ZDVmZDIwODQxNjA2MTIgbGVnYWN5LXRydW5rCiszOTc2NCAyNWJhMmYzMzEzYzkxY2M0ZTc5ZjY3NzNiZWIyYjU3ODk0YzI2YTc0IGxlZ2FjeS10cnVuaworMzk3NjUgMTc4MjhhMDBhNDU0NGZhM2ZiNDIwNjViYjUxZDYwYmU4ZjU2NTEzZiBsZWdhY3ktdHJ1bmsKKzM5NzY2IGE3YTQ5M2RiNjIzMTNkMDMzYmRiYzRjNjVhODg3N2YzNGI5NTZlZGQgcmVsZWFzZTI0LW1haW50CiszOTc2NyBlNTYxNDQ3MDQ4MDhkN2NlNmMzMDVjMGI0ZjA1MTRlMWViYmRiYTUxIGxlZ2FjeS10cnVuaworMzk3NjggNDc0OTZlN2RiZjJmY2QzMDYwYzc5MDFhMTIzZmM2MWIxYzI3NjJmZSBsZWdhY3ktdHJ1bmsKKzM5NzY5IDgxZWJkNmUxNzdhM2Y4YTkwNDM1N2Q4YzA3MGE3MDdhM2I4MzAwNGUgbGVnYWN5LXRydW5rCiszOTc3MCAxNDQwOWI4MjA5MzNmYzc3YmQ1Y2FiOWIxMWEzYWVmMjVhMTY1NjdlIGxlZ2FjeS10cnVuaworMzk3NzEgYzI4YzFhMzdiODZhZTE4MDA4MTk2MzA5OTI2NDY4NWFkZDU0Yzg2NSBsZWdhY3ktdHJ1bmsKKzM5NzcyIGI3MmIzZTUxN2E0ZGU3YTI0ZGU5YjIzM2U3ZjVjNjU5YjU0NzQwZTYgbGVnYWN5LXRydW5rCiszOTc3MyBlYjE1Y2RkNGEyZjEwMDE3OTIwNzRjYTA3ODkwMjY5ODk0NTJmZjgyIGxlZ2FjeS10cnVuaworMzk3NzQgZTBlMzIwZjM2YzkzNjNmNmQ1ZjhiZmM0MDczZGQ2YzUyNzk0NGY5OSBsZWdhY3ktdHJ1bmsKKzM5Nzc1IGQ5MWVkNzEwN2ZkMmRhMDNkMzU2YWNiYzUyNDNhNjhkMGI1MDU4NTEgbGVnYWN5LXRydW5rCiszOTc3NiA3OWM1YjgxN2ZlZGMxMTU3OTMwYjkwZTAxZjIzZmI5NjA2Y2EzNWNlIGxlZ2FjeS10cnVuaworMzk3NzcgN2E1YWMyMDMxNTRhYWEyZDc1NzVhMWJkOTI1ZDg4NDNkN2U2ZTIwMiBsZWdhY3ktdHJ1bmsKKzM5Nzc4IDNmNjMzNDFkOTMxMmY2OTIyMWQ2NjcwZDVjZmU1OTNkOTcxNDdhYTkgbGVnYWN5LXRydW5rCiszOTc3OSA1MjhlMDM4ODM5YTJhYWU3ZDNkZWEyZTU3YjhmNDU0ZTc2YTk4ZTAyIGxlZ2FjeS10cnVuaworMzk3ODAgNGFhZjUwNmE3ZDA5OTJiOGMxNTRhNTBhYjU2NDM4ZDNmZGYyZjFlNyBsZWdhY3ktdHJ1bmsKKzM5NzgxIGYzNzYyMjFiYmI3NmMxZDI3MmU0MjM4NDBjMzQ4YTFjNWMyM2RiYjkgbGVnYWN5LXRydW5rCiszOTc4MiAzNGVmOWYxMzhjMzAzYjc2MmFkODY4MmEwYmE0ODUwYjA1YjkzMzZlIGxlZ2FjeS10cnVuaworMzk3ODMgN2VlNjg4MGNiMTZmMjg1MmUwN2YwZGY1MTNkNzJkNGUyZTE3NWVkYSBsZWdhY3ktdHJ1bmsKKzM5Nzg0IDU3NmI5YTljZTU3OTdjZjdjNjcyYTk3NDU2ZDY5MjFkYTEwMmRhOTQgbGVnYWN5LXRydW5rCiszOTc4NSA3ZDA2NTQzNWU4NmMxYjg4MmNmZmFiMGNmNGRjOTBjZjg3Mjc3ZjM4IGxlZ2FjeS10cnVuaworMzk3ODYgOWE3YzJkMWU1NmRlMzFkYWVhMjBmYTM0OWIyMWVkMDA0OWRlY2QyOSByZWxlYXNlMjQtbWFpbnQKKzM5Nzg3IDA0NGQ4ZTBmNjVmMmZiOWUzNjExNTdhZDFiMzgyNTMxNzFjMjVmZDMgbGVnYWN5LXRydW5rCiszOTc4OCBmNjRmYjI4NGVkMTU0ZDQ4NzI5NWE4OTBjYTVmMjgyNDgyMjI0M2ZjIGxlZ2FjeS10cnVuaworMzk3ODkgMGFlZjM1MTIyM2RhZWQ5ODRjMzg1ZDI1OGQ2YTZlZjk1Y2Q3NjRiZiBsZWdhY3ktdHJ1bmsKKzM5NzkwIDY2YjkwNzVkMTQyYjhlYzUzYjQ2YTM0ZmVkOThkNzZhNDdjMTZhM2EgbGVnYWN5LXRydW5rCiszOTc5MSAxNDRiNTI1MzU0MzRmZDM1ZTE4ZDc5ODFjNzFkOGU2M2IyZTM5MTQ5IGxlZ2FjeS10cnVuaworMzk3OTIgODkzYmU5NGM4ODkxODJhOTA5MWI3OTIwYWRiNGUzZDFkMzc3MjQ3ZSBsZWdhY3ktdHJ1bmsKKzM5NzkzIGVmZTYwNzMwYTFlZWFiNmQyNjIyYTBmMmE4NWQ2NmZiZGNmN2Y5YjYgbGVnYWN5LXRydW5rCiszOTc5NCA5NWQwYTg1N2FlNTFmYTE1YTU5ZWMwMTljZWY5ODAzM2YzMmJhNzU0IGxlZ2FjeS10cnVuaworMzk3OTUgMTlkNzk2YmQ3NDBmNGEwOTc0OTY2MjFjMmE4MzkxMGE1NzJhMDA4MCBsZWdhY3ktdHJ1bmsKKzM5Nzk2IDcyY2IwNDFjY2RlM2FjN2JlYjI5NmQ0OWJmYzIwM2E1ZTQzYWY3ZDEgbGVnYWN5LXRydW5rCiszOTc5NyAzMWQzNmRkNTk1OWNlOWQ5ZTYyNGJmYTIyYWUyZDUwZDZkMmViYTUzIGxlZ2FjeS10cnVuaworMzk3OTggYWFlNDExMzUyZmJkNmE0YzMwYjk3NDVhNzIzYmY3ODY4YmMwZmFkNSBsZWdhY3ktdHJ1bmsKKzM5Nzk5IGIxYTBlMWEyYjI4ZmFjYmJlZWE3YmI3OTg2ZDA4ZDA5NTQ5NTMxNzEgbGVnYWN5LXRydW5rCiszOTgwMCBjNmRiZjg4ZTRiMTRiODZkMDIxNmY0Yzc3NWM1MjQ4ZTNmNDNkNTE0IGxlZ2FjeS10cnVuaworMzk4MDEgZGNhNzBmNGVjNzdiNjc0Mjk0ODAzMDY5ZmFiNTBiNzFmNzgwMDc5NCBsZWdhY3ktdHJ1bmsKKzM5ODAyIGEwYmIwZmQ1ZTE0M2E5Yzg0ODY5MDA4YTIxNzQwNTg0MTM4NDNiMTIgbGVnYWN5LXRydW5rCiszOTgwMyAxNjYxZTczYzA3YWJhMzk5OTk4ZDgzMGI1Nzg3OTc1NGJjYmYxMDIwIGxlZ2FjeS10cnVuaworMzk4MDQgZGI5ZTJkZWE0YzExM2Q2YmU5ZmJjNzE4MGEwZjk4MmI4OTI5NTA4MiByZWxlYXNlMjQtbWFpbnQKKzM5ODA1IDE5YTM3YTlmNGVmOTRiMjZjMTY3MDI5NGVkYjc3NTFlYmJhOWJlYWIgbGVnYWN5LXRydW5rCiszOTgwNiBmN2IwY2JlYTkwNWI1YjM0OGQxMGI3Mjc5NTJkMmFmM2NjOTBlZTNjIGxlZ2FjeS10cnVuaworMzk4MDcgMWFjOWVkMWI1YTAzYzE5MzUzZDc2YmI3ZDg3ZDRiYjRiMWZmOWI2NyBsZWdhY3ktdHJ1bmsKKzM5ODA4IGI4YjEzYjFmZmU3NTcxYjRhZjVmNWJjOGI3OWFmMTNkMDI4MjNlMmUgbGVnYWN5LXRydW5rCiszOTgwOSA5MTRlYzBhZmE1MWMyMTViMTA4Nzk4OGIyM2M5Mjc3YjQ1OWIzNDRkIGxlZ2FjeS10cnVuaworMzk4MTAgMzlmMzYzMGE3MTI0ZDkwZjdiNTc5ZjQ5NjI0NjYyYjM4ZjU0Yzc5YSBsZWdhY3ktdHJ1bmsKKzM5ODExIGRiYzk4OGJlYTU1ZDZmNmM1MTQ1NjUxZGI2YzU5N2JhZGRkNmE4MjEgbGVnYWN5LXRydW5rCiszOTgxMiBmZDYzMDA0MmFhZDQzZGVjZjUwYWY2NDIyNGI2YTA3ZDEzNGMwYmUxIGxlZ2FjeS10cnVuaworMzk4MTMgMzc3ODA4M2ZlMmM4NjJjNDBkOTNlZDIzYzY3MTFiMzQyMzE2YzBlZSBsZWdhY3ktdHJ1bmsKKzM5ODE0IDg1N2Y2OGZiYTI3NTQ0ZGFjYTMyOGIwOWQzY2NkYjY3YzNhNzFlMmYgbGVnYWN5LXRydW5rCiszOTgxNSA4NDJjYWEyNDU5MTdkODg1Y2Q5YzM2MGYxMGM4ZGQxMzgwMjc4OWFkIGxlZ2FjeS10cnVuaworMzk4MTYgNGJmNjQ1OWM4ZTNiYjk2NDMzMjZkNWFiOWQ2MTcyNDM4N2ZiOTM0YiBsZWdhY3ktdHJ1bmsKKzM5ODE3IGUxN2EzMDdiMTIxNjk0MDkwNWRiM2YxY2MzMzI5MGE3ZDA5NmJiMDIgbGVnYWN5LXRydW5rCiszOTgxOCA4ZGFlZmU4NDk5NDkzNGRlM2U2NTg0ZmNmZjMwNTM4ZDA1ZjMxYzhmIGxlZ2FjeS10cnVuaworNDEzMzggMTkzMzA1YzlkYmRiMzU0OWFkNTk2M2Y1ZjgyZGE3NDdhNjJjNTU0YSBsZWdhY3ktdHJ1bmsKKzQxMzQwIDc2YTZlOTA4NjI0ZDdjNWNkYjdlNzdmNzdhYmM3ZmU2NGNkNjdkOTUgbGVnYWN5LXRydW5rCis0MTM0MSA1MmY2NTg5ODg3NGE2ODg4NWIzMjdiN2Y3ZDg2NGM2OWMzZGY1MmM2IHJlbGVhc2UyNC1tYWludAorNDEzNDIgNDRmZTE1NzI1NWJjNGNkOGEwNWY3ZjA2MDBjOGZlMjc4ZjJlMDNhYyBsZWdhY3ktdHJ1bmsKKzQxMzQ2IGRmYjExMzllZGM1NWExYjBmN2YyNzJlZDc3MzVjZjU0YTQwMDQ2ZGYgbGVnYWN5LXRydW5rCis0MTM0NyBjMmE5OGJhMzcxYzhhOTBjMGJkYzFhNDJjNzI3Mzk5MjI4ODI3OWFlIGxlZ2FjeS10cnVuaworNDEzNTIgODg1MjMwMTc0MTRjMTg3M2RjZjNjMmMxNTgxNTlmOWRjNjZmYmYxOSBsZWdhY3ktdHJ1bmsKKzQxMzUzIDM5YjFlNzRiYTE3YzU1NDcxODk2ZTFhNDQwNDUxMjY5ODYyMGNlODIgbGVnYWN5LXRydW5rCis0MTM1NCA5YjBkZDFmNTNhZTIxODZkOWYyOGVmMjA4NWRhMmQ2YmMwMmNhNzMyIHJlbGVhc2UyNC1tYWludAorNDEzNTQgYWJiZmU5MTc4NzMxOWI3Zjk0NTQzZjQwZWE3YmExNWQ5OWFkNmUwYiBsZWdhY3ktdHJ1bmsKKzQxMzU1IDJlMjVlOTgzMjNhN2Y2NTFmYTkyNWM1NDA3NGNkYTkyMDg4YmU1ZDYgbGVnYWN5LXRydW5rCis0MTM1NiAxM2RlZWM1MjgxZWZjYjIwYTVkNDI0MzAwYWE0OGEwZTQxNjRjNjNiIHJlbGVhc2UyNC1tYWludAorNDEzNTcgZWI5YTM5YzFhNzhiYjczZWRmM2YxZTNkOTRmNGEwNTFjY2VlODFlNSBsZWdhY3ktdHJ1bmsKKzQxMzU4IGEwMDBmMzIyZGQwNWRiZmFiYzVkNjYxZjM1NWVlNzY5MzI1YjE1ZmIgbGVnYWN5LXRydW5rCis0MTM1OSBlZDI0N2Y2ZTZmMDc1NGRmODBjY2U1OTNjOWUxODdkNTY4ZjI2ZTEwIHJlbGVhc2UyNC1tYWludAorNDEzNjAgMjBiYjdmZjE2OTUyNzdiY2NkYTZlNTAzYWYxNjQyMzA3NTI3ODU3YyBsZWdhY3ktdHJ1bmsKKzQxMzYxIGE0OTdlMTBiMjNlNDcwY2M3NmIzNmYyN2VlNzA0YWU1MDg4MmNjMmMgcmVsZWFzZTI0LW1haW50Cis0MTM2NiA2OTAzNGEwOGU1YTNhMzRmOWY5ZTcyYTg0YTc3NDA3NzY0ZGM2MGE5IGxlZ2FjeS10cnVuaworNDEzNjcgYjY1MmY1MzUyMDFkNmZjZGY3NGIwODg5MzRlMzA0NDI0ODIwMjczNyBsZWdhY3ktdHJ1bmsKKzQxMzY4IDZjZDExMDc0M2JkMjA4OWYwZDY1M2FhOTZmMjlkNGQ1N2FkM2FjYWIgcmVsZWFzZTI0LW1haW50Cis0MTM2OSA4YjAyZDhhNWU3MDdmMjZmMDI0MmY5NjdjM2ZmMTUwNWQxYWVjZjVmIGxlZ2FjeS10cnVuaworNDEzNzAgZjllNTBmZjk2ZmY4NWViZjc2YjRjZDZhYzhiMzY3MTIxZDVlMDZlMyByZWxlYXNlMjQtbWFpbnQKKzQxMzcxIGNjMTdhNTgyNTE4YWVmZDQyYTMzNzYwZTk1OGZkMDM0MTc2MGRiMjcgbGVnYWN5LXRydW5rCis0MTM3MiAwZWNiZmZiYWRjMDA1NjgyM2U1OTNmMjE3YWZmMzUyNGZkODQyNWNjIGxlZ2FjeS10cnVuaworNDEzNzMgYWIzZDFlNmEwMjM3MjcwZTJiMDE1Mjc2YjIzN2Q5ZjMyMjRlOGJhZiBsZWdhY3ktdHJ1bmsKKzQxMzc0IGJmZmFlMmY4MTJmNzRhZWQ3NWIwMjBhMjNjZmIyYTQ4ZDViZGEzOTIgbGVnYWN5LXRydW5rCis0MTM3NSBmM2NhZjgwYmQ2NmQyMWJhODI5NGEwNjQ5MzI0MzRjOWIxMjUwYzhkIHJlbGVhc2UyNC1tYWludAorNDEzNzYgMDI5YjZjNWYyNThlNWFiNDZiZTJkMjA3OTk5NjczNjhjMzAyNjllYSBsZWdhY3ktdHJ1bmsKKzQxMzg1IDY0NmJhNzYxMTVhY2I0MzUwY2MzMGY1ZWM1YTBkNzhhZDY3YWRhNTQgcmVsZWFzZTI0LW1haW50Cis0MTM4NiA3YmY0ODQwMGYyNGE4ZTdkOTE0NGNmMmU2ZGRmY2MxMTcwODEyMDUxIGxlZ2FjeS10cnVuaworNDEzODcgOWIxZWZiMGVkNjM1OTJkZTEyZDViZWZjNjc0NWI2MjlhYzE1ZGI3ZSByZWxlYXNlMjQtbWFpbnQKKzQxMzg4IDQxOGE2MWVhZDExYjg1ZGViY2UzZmE1MWEyZGNmMjRmMmFhMDllMjEgbGVnYWN5LXRydW5rCis0MTM4OSAyMGFhMWQ1YjNiMDgzMjdlYTY0M2EyZTc5MzE4M2IxM2I2MjBlZTE4IGxlZ2FjeS10cnVuaworNDEzOTAgZmQwODkxODM5NGY5YzNiMTExOTJmNjU4ZmE0NmJlZjE2NjA2NGM5NiByZWxlYXNlMjQtbWFpbnQKKzQxMzk5IGE4NjQ5ODY5Y2I2MGJiZWEwOTVkZmY1NjQxYWNkZGRkNTk1ZTc1MjIgbGVnYWN5LXRydW5rCis0MTQwMCA0OWJhZjhiMDQ2ODEyNTVhZjQ1YzAxOTZlMTQwOTllNTdjNjQ1ZThkIGxlZ2FjeS10cnVuaworNDE0MDMgZGUwOTBiZjY3YTU5ODlkYmZmMjVkYWE1NWRlY2ExZWI4NWM1OGVhNCBsZWdhY3ktdHJ1bmsKKzQxNDA0IGVjZjlmNGVkMTA5ZTVjZDAwZGVhNjIyYjM0NDc3ODdlYzc2NzQ4NjMgbGVnYWN5LXRydW5rCis0MTQwNSA2ZTJiMjgyNDM0ZDQ5NTEwOTQ0ZmNkMTQyOTJjOTg0YmIxNzc5YmUyIGxlZ2FjeS10cnVuaworNDE0MDYgZjg1ZGMzMWYxZjNlNGZlMGY4NjQ4NWQzZGJjYmJhYWZmNWYzNGEyMiBsZWdhY3ktdHJ1bmsKKzQxNDA3IGQ4MTJlMzlhZTkwN2E3ZDU5OTFmODY1ZmVhNzAyYzkzNjYwYWRlNzMgbGVnYWN5LXRydW5rCis0MTQxMiBjYWVhMGNjMDlhNDJmOTFjOTE2NmM0Nzk3NmQ3YzFjMjE5ZmNhMjk5IGxlZ2FjeS10cnVuaworNDE0MTMgMWQxOTU3ZjU1NjI2NzkwZGVjOGVkMGMxY2I4MzFiN2IyMWQ0Zjc3YSByZWxlYXNlMjQtbWFpbnQKKzQxNDE0IGZhMWQ1Njk0NzMwMTMwN2ZhYTY3MDg2ZTQyOTNjYzMzZTBmYTNhNGIgbGVnYWN5LXRydW5rCis0MTQxNSBmMGUzMzU1MjM1YTVlNTI1YzgyZmVlNjcyZDYxYTUxOWUxZThlOTNiIHJlbGVhc2UyNC1tYWludAorNDE0MTYgNWY3MWE1MDI4OWEyNTU2YmFkN2NkYWQwNzk4YmJkZWY0OWZlOWY2OSBsZWdhY3ktdHJ1bmsKKzQxNDE3IGFlZjg1MjZmYzliYmE2ZjlkM2VjMGU5MjViY2IwNDhkNzM4NGI2MDkgcmVsZWFzZTI0LW1haW50Cis0MTQxOCBmNmQ4YjBkZTEzNGEyMDEzOGU0OTVmYjJkZTBmYjJkZDc3NTdkNDI2IGxlZ2FjeS10cnVuaworNDE0MTkgNDEzYzY4YjMxNDg3MWVhNDFhOTU1MzU4YmQ1ZDAxZTMwZmJjY2I2MiBsZWdhY3ktdHJ1bmsKKzQxNDIyIGVlM2UwZWUxZWRjYTdkMzQ4MmM5MTliMDcyOWI1MDBhZjc5NzgxZmEgbGVnYWN5LXRydW5rCis0MTQyMyAyYTkyZDVjZTBjMGQ4YzQ4ZjdjYTFkYzA1MTUyNjFkZjFlYmU3NTkxIGxlZ2FjeS10cnVuaworNDE0MjQgN2YzN2NjZjY5OGNmNWIwMTQ2MzJkNjhjMTZkYTlmMjYyYTMyMDA1YyByZWxlYXNlMjQtbWFpbnQKKzQxNDI1IDY4ODhkZGYxZWE5ZDUzZDQ0ZmFhNTkxNzRlZWUwMjE1OGQyM2JmM2UgSURMRS1zeW50YXgtYnJhbmNoCis0MTQyNiA0MjlmNTM3Y2Y2ZDZiN2U1OTI3OTZmMTQyNTE0MTJiYTNiZjFlN2UwIGxlZ2FjeS10cnVuaworNDE0MjcgNDQ2Mjg3MWE2ZGNlYzAxM2RiMjg3YmZlMDg1MDEwOGRjNjNkZmI5NyBsZWdhY3ktdHJ1bmsKKzQxNDI4IDg3ZTIyMTBlMDdmNDlhZDVkNTBlNWJlOWNmZDY0ZDIwZmRkMGUwODUgbGVnYWN5LXRydW5rCis0MTQyOSA2YTAxOGQ4YzU5YzkxZTA0NmNiNjcxZDQ2NTk4Mjk2Njg1OWU2MDNjIGxlZ2FjeS10cnVuaworNDE0MzAgNjAxNWRmMTM2YjAwZDFiY2NjNDEyY2RiZTIwODhiMWMwNDU1NmU0MyBsZWdhY3ktdHJ1bmsKKzQxNDMyIDliODg1YzkzNDE0NGI3MDU1ZTM2YmQ2MTdhMGUwYWM4ZTEyMDdkMTQgbGVnYWN5LXRydW5rCis0MTQzMyAzZTYzNGU0MWI2ZWMzYzc5NzAxYTJhY2YyYmIxNmJmYzM2ZDBiNjYwIGxlZ2FjeS10cnVuaworNDE0MzQgNjg2Nzk5NWExOGE3ZGE5MDBlNzlkMjIwNzY1ZmQxOGFhNWNmMjViYSBsZWdhY3ktdHJ1bmsKKzQxNDM1IDc5ZjJjZTMyMDE5MjVjOWQ2M2VjYjE2NDQ4ODc2ZjVkZmFiZWZhOWQgbGVnYWN5LXRydW5rCis0MTQzNiBkYmM5M2VlNTNlMmZlZmZjYmZiOWVlZTQxNTc3ODRiM2U5MzUwNmRiIGxlZ2FjeS10cnVuaworNDE0MzcgNjAwYmJiYTU2ZjliYWIzODJiZDgwNWM1NDA1Nzg1N2FhZWYwOTMzZiBsZWdhY3ktdHJ1bmsKKzQxNDM4IDlmNzNkYzA5NTNkMjAyMDRhNTQ5YzhjNzgxYTRjNDg4NGIyMjJjZWEgbGVnYWN5LXRydW5rCis0MTQ0MCBmNDg0MmY0MjcwMGJkYjdmNzNkYjg4YzdhZjYzM2IxMTdmNGE4OTNiIGxlZ2FjeS10cnVuaworNDE0NDEgMzdkYTk2OWFkMTE2YzViYTliNzM1NWMyM2YzYmRmZmEwNzBmZWYwOCBsZWdhY3ktdHJ1bmsKKzQxNDQyIDkwMDM4MzZhMDM2ZjEzMzUyYjViYWIxYjJlYzczNzJhMjBkOGUyNGQgbGVnYWN5LXRydW5rCis0MTQ0MyBmNTMxYzA1Y2QyNDA4NjZlNDYwZWVlY2RkMTAwMWI4NmVlZmRiZTU2IGxlZ2FjeS10cnVuaworNDE0NDQgOTQ3NjU2NjMwYjEyOGRmZThlZTIwN2M3NmQ2ZmY0NGEyMTU2YTFlMiBqaW0tZG9jdGVzdAorNDE0NDUgM2FjYjZiMzQxMDc1YzlhNmU4MzQ2MjZkZDc4OTFiMGJiOTRlN2FiMiBqaW0tZG9jdGVzdAorNDE0NDYgNGFjM2ZhMTU4OTI3OTAyMzA3ZWVjMmY5MDkzNDc2NjQxM2U0YmY3ZCBsZWdhY3ktdHJ1bmsKKzQxNDQ3IDU4M2NlOWMwYzY2NGViYmE5OGQyYjcxYTMwNTMzMjhiNTQ4ZDY2OTMgbGVnYWN5LXRydW5rCis0MTQ0OCA3NmVkN2ZkYzlkODViZGY1ODI5MTIyNGMwNTkyZGYyYzEwMjhiNmZhIGxlZ2FjeS10cnVuaworNDE0NDkgNDRkNjNlZWRmYWNhZjA0NzBmMzI1NDI2OWUxYTliMzVkYjhjMDRhYyBsZWdhY3ktdHJ1bmsKKzQxNDUwIDA4NmNhY2NmZmYwZTc2NmFjM2M3NTk4YzBlZTllMzQ1MWVjMjhhZGUgbGVnYWN5LXRydW5rCis0MTQ1MSBmMzM0ZWZlNzZmNmE1NDYyMDI1YmY5MjI5ZjJlMjE3MTJmZDg0NWI0IGxlZ2FjeS10cnVuaworNDE0NTIgNmQ4Y2U1NTcwY2I3MDIwY2RjYmMwMzA5NzFiNmQxODQ1MjU4YjRlZSBqaW0tZG9jdGVzdAorNDE0NTMgNDBmM2Q3OWIyMTI1MGE0MTVmNzk5ZDI0MTEyZmVmZGQyMWJjNDYzMSBsZWdhY3ktdHJ1bmsKKzQxNDU0IDk0YTQwOWRhNGJkNDBiNzMyNmY3MWFhNmQ4NjU0NTNmNTU2YTk1NWIgbGVnYWN5LXRydW5rCis0MTQ1NSAxZjlkNGFjMzUwMTAyODIzMTJiOWFmMzg4OTM5ZmU1MGVmYzM4ZWIxIGxlZ2FjeS10cnVuaworNDE0NTYgMGQxZTJlNzNjM2VjMDMzNzdhOTFlNmYxYzljNGZjNTYwNjc0NmYxOCBsZWdhY3ktdHJ1bmsKKzQxNDU3IDI5NDIwYmQzYjVjYmIxOGE0ZTg5MjA2NGM4MTAzZjBlZmJiMWEwMGIgbGVnYWN5LXRydW5rCis0MTQ2MSAzMjM2YjVmYjFmYjcwZjMwOTcyMzI5ZjlhYjZmNzE1Mzg4NTE0Njk0IGxlZ2FjeS10cnVuaworNDE0NjIgZTcxNjQ4M2NiM2Y5MTRjYjE5NmZhZDYyNmI0YzE2OGE1ZDRlN2NkNSBsZWdhY3ktdHJ1bmsKKzQxNDYzIDAzODY3ZmM2ZmQ4MDc4Y2MzYjRiNTY5YWMzNzJjMzBmOTVlNmZjYzMgcmVsZWFzZTI0LW1haW50Cis0MTQ2NCA1YjgyMTIwY2I0OWQ2MTIyZGQwYWE2ZTNiZmY0OGEyZjE2MTc5NmE3IGxlZ2FjeS10cnVuaworNDE0NjUgZjk5ZDZjYjg4ZjZmMjA4YmU5NjFmNjU4YWVjOTExMDI5NDc1ODJkOCByZWxlYXNlMjQtbWFpbnQKKzQxNDY2IDM5NTZkNjIwYWYwOWJhMDBkMDY3ZWQxMDFjMzM4OTBlOWI4ODFkYWMgbGVnYWN5LXRydW5rCis0MTQ2NyA0Nzg5ZTc1YTZmZTdkMDYyMDYyZDIyYTU5M2JkMjg4MjE1N2MwNjFiIHJlbGVhc2UyNC1tYWludAorNDE0NjggZTI0NzNjNGYyZWUwZDdmZDdlZGMyYmNlMTJkMTY3NjcxOWU2NTg2YyBsZWdhY3ktdHJ1bmsKKzQxNDc4IGY0MTRmZjI4NzgyM2I2MGZmMzI3MjIxZmU1NDUxZWExY2M5YTYyYTAgbGVnYWN5LXRydW5rCis0MTQ4MCA4ZmQ0NmI2NjBlNjY5NTBiNjliNmE0OWQ2ZTM1N2IxZjYxMDUxOGFlIGxlZ2FjeS10cnVuaworNDE0ODEgNzFlYTZiN2Y1OGNlMzhkMjI1MDUwOWE3YzU0YWRjN2ZjN2FlMWQwNyBsZWdhY3ktdHJ1bmsKKzQxNDg0IDgyNTY1NWJmZGYyMDY0NTAwZWFmMDYyZjdlZjI1YWRmZDE5NjRiOTAgbGVnYWN5LXRydW5rCis0MTQ4NSAwNDQ1NDJkNzA1YzJjYWVlZGE5ZmI1Nzc0ZmI0MTVlNGQzMWI3MzIwIGxlZ2FjeS10cnVuaworNDE0ODYgZmU0YzYyN2IyMDk2NWU5MDU5NjQzZWNmOWI5NzE3OGYyNjkwMzVhZSBsZWdhY3ktdHJ1bmsKKzQxNDg3IGU0YTVhODRlNWViYjEzOTczZGQzNTBmYjAxZWYyODM4MDFiZjQ1YTggcmVsZWFzZTI0LW1haW50Cis0MTQ4OCBjZTliYTAxZWI3ZWQ1ZmZkMTNiZTIxYTM1NzY3NGVjOGRhZjZkNzAyIGxlZ2FjeS10cnVuaworNDE0ODkgZDcyZGI4MmE3MGNkN2FkZWNjNmI1MDM0NTFjZDYwNDliZTM2Njg0OSBsZWdhY3ktdHJ1bmsKKzQxNDkwIGRmNTkyODU1OGE1N2I0MGZlY2Q2OTFiODZmYWY4ZmEyODMzNmFkMjEgcmVsZWFzZTI0LW1haW50Cis0MTQ5MSBlOWJlOWU2MTg4ZjRkNGUzMjZkN2MxNGVhYjRlNzJlMGU3Mzc1NzVkIGxlZ2FjeS10cnVuaworNDE0OTIgMmIwY2Y1MGU3N2VjOThhMTU0ZTc1ZjhmOTdjYzA4NDc1M2JiN2QxMSBsZWdhY3ktdHJ1bmsKKzQxNDkzIDlmZDBjZDM2MmFmZmM3MDkyZmQ2ZDE0ZTJjMWQ4ZTc3ZGQxM2ExMmYgbGVnYWN5LXRydW5rCis0MTQ5NCA4MDBmNDhhMTRhOGEzODExMmZhMTEwMzg2NzNjZDkxYzE1NGZjZWQ5IGxlZ2FjeS10cnVuaworNDE0OTUgYTZiZjdjYWVkMTM1NzA1NjRlMmM2ZTVlZWZjN2NjNmYwOGEwNDI4MyBsZWdhY3ktdHJ1bmsKKzQxNDk2IDFkZmQ1ZDYyZDc2NGVkZWM1YzcyYjI2ZjdmMWU1M2JiMGI4NWVlOWMgbGVnYWN5LXRydW5rCis0MTQ5NyBmOTM3Mzg3ZjRkZjEyMWY4ZjNkMWY5MGU4YmMwNzA4ZTY2ODk1YjhhIGxlZ2FjeS10cnVuaworNDE0OTggNGQxZDI3NzE3OGE1N2FkM2M1MzcyYjVkZmZjYzBjNmIyODA5MmE4MCBsZWdhY3ktdHJ1bmsKKzQxNDk5IDRlNWUxNmEzYmUwZDNjMzg4NWQ5Mjc5NWRlZDljMmM2NWUzNWNhNzIgbGVnYWN5LXRydW5rCis0MTUwMCAxMWExYmMzNTI5MTdhM2VkZjFhYWUyY2E1MmQwMTY3M2M1MjFjODIzIGxlZ2FjeS10cnVuaworNDE1MDEgOGZlYWVkMDdmY2NkNzE0NTI2YmJhODkzMDM1Y2ViYzY3NzdjMmQ1ZSByZWxlYXNlMjQtbWFpbnQKKzQxNTAyIGNmMTU3MTRjOWM4YWEzNTNmNmQ5MjM3NDM3YmRmZGNkOWY3NGM4NWYgbGVnYWN5LXRydW5rCis0MTUwMyA2OGIzOThhODVhMzg3NGJkNDJlNmU4YzgwZGMzMTY1YzZlNDBiYzBkIGxlZ2FjeS10cnVuaworNDE1MDQgMTJmMjIyYjYxN2I4OWY2Y2UxMDMzMmVjZjBhNTlhNTNlMzYxMTY3MCBsZWdhY3ktdHJ1bmsKKzQxNTA1IDNmZDk3ZGUwYTc5MDgzZTQ4ODExZWI1N2QyYTE2M2JmODcwMWE1MWYgbGVnYWN5LXRydW5rCis0MTUwNiBmMTNmYzBjOWE2YjNhNTY4NDZiYjVhMmUwZDE5MmUyMzRiYTU2YWY3IHJlbGVhc2UyNC1tYWludAorNDE1MDcgNTFmNGVlNGY5N2VhMWFiZjk3MmY4M2U5ZjQwMzg2ZGIyYmIyOGYyNCBsZWdhY3ktdHJ1bmsKKzQxNTA4IDFmYWEzMDY5OTNjMDVhZjUxODhkNTgyMWYxOGVmZjY2ZmY0Y2UzMmQgcmVsZWFzZTI0LW1haW50Cis0MTUwOSA5ZmM2YmY2NTVmOWNiMDI5NGI3ZDZjYWMwNWY4OGI1ZmU3NGM1YjgxIGxlZ2FjeS10cnVuaworNDE1MTAgZDRhNmQyNTkxY2Y1OGExMThmMDVhMDBmMTFjMmM0ZTdlMTcyOGFjYSByZWxlYXNlMjQtbWFpbnQKKzQxNTExIGUxMTMyMzE4OWM4NDkxMmUwZWUyNmU5MTMzMWM5Y2Q1MzI5MzZiYmYgbGVnYWN5LXRydW5rCis0MTUxMiA3NGU1NjFhN2U4MmNhZDdhZTM4ZDg1YzMyN2U3NmRjZmQ2OWQ2N2UwIGxlZ2FjeS10cnVuaworNDE1MTMgYzk0MjY4Mjc3ZGU5MzgzNjg1YmU4NjNjY2UwMThhMmE3NmRkNzExNyByZWxlYXNlMjQtbWFpbnQKKzQxNTE0IDFmNzc0NTI5MmU1MGVkODRkMzhlMjdiNmQ1MDc5OGMyMmUwY2I1NmQgbGVnYWN5LXRydW5rCis0MTUxNSBmMjYwNWY1YTZkNDZmODNhNzlkZWUwOWZiYjJhOGRkMDZjOWIwMGEwIHJlbGVhc2UyNC1tYWludAorNDE1MTcgYzJiYmE1ZjQ2YWI2ZWFlMTc3YTZlNDk4NTZjZjIxMjVlOGE2MmY4NiBsZWdhY3ktdHJ1bmsKKzQxNTE4IGZhYjM3MTM2ZGQ2ZGE1M2E4YTA5YTI5OTBhOTE1MWUzMDUxNjEyZDUgcmVsZWFzZTI0LW1haW50Cis0MTUxOSA5ZjY4NTJmZjNkMTkxZTQ4YTRjMTAxMWRjNGUyYjc0MWVmMjczMzZjIGxlZ2FjeS10cnVuaworNDE1MjAgMWUxYzNmNTUzMjhhMDg2MTQwNDdlMmI3MDEyMThiYzE1YWIwZGIyOSByZWxlYXNlMjQtbWFpbnQKKzQxNTIxIDcyZDVjNjBmYTQ1ZDllZGMzOTViZDliN2Q4MWE4MDI4MmM0MDkyYzYgbGVnYWN5LXRydW5rCis0MTUyMiA5ZTYzMGNjMWQzMDkwYjllYzIwZTVmZDc3YjBlYmEwYTI5NDAzZDdhIHJlbGVhc2UyNC1tYWludAorNDE1MjMgY2YyYjRjOGFkMWFkNGU0NmY2ZjJlNmZhNWM2NzhhZjZhOGFlMjE3ZCBsZWdhY3ktdHJ1bmsKKzQxNTI0IGI3YzZjNDYxYTgwODE4MGIwYmJmYjcxNDEyMzUwOTIwNjBjMTc5NzUgbGVnYWN5LXRydW5rCis0MTUyNSBlMGRkZWE4ODFmNGFiZjcxYzRlY2E0ZTgxMzM3MGIyMDliZjliMGJiIHJlbGVhc2UyNC1tYWludAorNDE1MjYgMWZkZWJiZDYwZDdkZGRhMGVlMGNhM2M3Y2YzYWIzZDQ5ZWU4NWMwYiBsZWdhY3ktdHJ1bmsKKzQxNTI3IDdjODgwMGI4MWM1MGM5ZjY1OWFjZDc0MWE4OGZlYWFkNDhiNDc5MWMgbGVnYWN5LXRydW5rCis0MTUyOCAyMTUwYWY4NGExODVlOTA4ZDVlYzU4ZmE0YTViYjU3Y2RjNGNlZDU2IHJlbGVhc2UyNC1tYWludAorNDE1MjkgZTZkMzFjYmYyZWQzOGM1YzFjMjljNmY1NTAyYjQyOWIzZTAwYTkxMCBsZWdhY3ktdHJ1bmsKKzQxNTMwIGJiODBiOGYzOTNlZmYxZDJlMTlkZGMxOWU0MGY1ZjUyMDAxMDdkYmMgbGVnYWN5LXRydW5rCis0MTUzMSA3OTM3NGViNmRiNTE2Y2NhOWE4NGJkZjk2YjQ3YTE3ODU4ODhmZDE3IGxlZ2FjeS10cnVuaworNDE1MzIgY2IxZmYyYTg1ZTNkZGQyMjgxNTg2NDk5MmIxZTcxNzlmMTdmNGM5OSBsZWdhY3ktdHJ1bmsKKzQxNTMzIDAzM2JiNGRiNWFlOGMxYTYyNGI4YjFlMzgxZDFiNmJhZWRiMzZkMTEgbGVnYWN5LXRydW5rCis0MTUzNCA2ZDZjN2NkNDUyOTg5ZTU4MThhMGJhMGViYzdhN2EzMDYxZGZmNzU0IGxlZ2FjeS10cnVuaworNDE1MzUgNWM4ZGM1ZDIxOGQ4ZDcwZjJmMDNjODk4MDM3NjA5ZDExM2ZjNzk0YyBsZWdhY3ktdHJ1bmsKKzQxNTM2IGI0NmRjNmQxMDk4Njc1NDMxZGEwYWZkMTJjY2U5ODA3NWUyMmY4ZDYgbGVnYWN5LXRydW5rCis0MTUzNyBlODBhMWFmNjc2MjNmMGY1NzI5YzFjZGFjM2E3MWZhN2EwNmVlZmM5IGxlZ2FjeS10cnVuaworNDE1MzggYjJlYjE1ODljMjJiNTEzN2VlMTMxZGZhMjgwN2Y3ZmQ1MjJhOTZjYSBsZWdhY3ktdHJ1bmsKKzQxNTM5IDQ1NzJmYjRkZmJiM2YwZmI2YWQ0NTczMjk2ZDc4Y2I2NTg3OTllZTcgbGVnYWN5LXRydW5rCis0MTU0MCBlZjYwOGI1OGJmZDhhZDVjMTNkOTVlY2FlYWE1MmQ1OTcwZmUzNzk3IGxlZ2FjeS10cnVuaworNDE1NDEgZjgwNTYzMjhmMDFhMTYzZGNkMGU1Mzc2NmQyYWNhZDYwYmY5ODEzZSBsZWdhY3ktdHJ1bmsKKzQxNTQyIGI5YzY4MmVkOTEwY2RjNjJiMzc2OTRjZTA3NDBlNzcyNDc0MjFlOWMgcmVsZWFzZTI0LW1haW50Cis0MTU0MyA5MDc5NzIzMzIwOGVmZTBmYTE2NThmNTcwODU3YzY1NzA2OTM5Y2E1IGxlZ2FjeS10cnVuaworNDE1NDQgNDgzNTNjZjUxMzQwM2ExZGM2MTI2YjM0NWYzY2FlN2YwZjU3ODJiZCByZWxlYXNlMjQtbWFpbnQKKzQxNTQ1IGQ3ZjYzZWRlNDk1ZTg1ZTI1NTFlYjcxYWQ1OTQzYzIyNGJlMDU2YjEgbGVnYWN5LXRydW5rCis0MTU0NiBkN2Y1MmZjNDIyNDU4YTE2NTk3YWJkZDJhZGUxOWM3ODhjMGIzZjcyIHJlbGVhc2UyNC1tYWludAorNDE1NDcgZDlkOGIyZTJlNjBhZGYwNmVlMDhjMzhlMjBjNzE1ZTY2Yjg4NDM5MCByZWxlYXNlMjQtbWFpbnQKKzQxNTQ4IDc1YTc5Y2M0Y2Y3YjY5MDZjNTIwM2JiYmVlOGU4MTQ0OWVhMjFjOGYgbGVnYWN5LXRydW5rCis0MTU0OSA5ZmM3ZGZlODZmOTY2MzYwNWJlOGY2NTBmZmZmMzE0M2Q5MGM5OTNmIHJlbGVhc2UyNC1tYWludAorNDE1NTEgMWQ4ZWZmZGU4MmYxYjQzZWY1YzhlNTk2MTU3ZGY2MjQ5NjliNmIyNSBsZWdhY3ktdHJ1bmsKKzQxNTUyIGZjYTczMzc3MTBmZDdiMzQxN2U0NzQzNjdlY2Y4NTBiZWQ1NWRiYTkgbGVnYWN5LXRydW5rCis0MTU1MyA2NTg0NDRiYWViYTM3ZWZjOGU0OTVhZjdiMWEyMzE0ZGQ1YzE1YmIzIGxlZ2FjeS10cnVuaworNDE1NTQgNzI1NTVhOTY3ZDZhODVjYjM3Y2MxZjEzZjFiMmIxNjljMzU1NWJhOCBsZWdhY3ktdHJ1bmsKKzQxNTU1IDczZWJkYzYyYmY4ZjBkMWM5MTNiMTY0ZjMxMGExMzBlNmZiZTA3ZjAgbGVnYWN5LXRydW5rCis0MTU1NiA0ZDA2MTYyYWQyMDljODJhNWRiY2U0NmJiNGUxNWFmOTFmZDRlN2ZlIHJlbGVhc2UyNC1tYWludAorNDE1NTkgZDE3MmNiYTk2NGI3ODFiYTNlN2ViNDYwZThmNzllZTg1NTUzOTkxMCBsZWdhY3ktdHJ1bmsKKzQxNTYwIDlkOWU0ZWU0ZGE4OWZlZmM0YTY3MGI5MzQwMGFkMDc0MzZiZmE3ZDEgbGVnYWN5LXRydW5rCis0MTU2MSA5YzQ3NjVlOWRjOTI3MjM2NTI1NTM1ZDVkYTZkYjBlMjRlYTZmYjk3IGxlZ2FjeS10cnVuaworNDE1NjIgZjk5NzIxMzgzNmJiMjkwZDYxZDRkMWY5YTM4ZjdiZmRkYzM3Yzc3YiBsZWdhY3ktdHJ1bmsKKzQxNTYzIGExYjZlNjc4NGNhNTgwZTVhMzA0YTU2MzE2ZDVjZTI4Y2RhNTJlNDQgbGVnYWN5LXRydW5rCis0MTU2NCAxNWNjNjAxNjc5NWUwMzQ2NmNlODE1YjQwMWQzNjg1YmEzNzZmNDAwIGxlZ2FjeS10cnVuaworNDE1NjUgNzRlOWZlMDY4YzRkZDIxODQzZjRjZjE1ZTFjM2RjNmE0OTUwNzkwYyByZWxlYXNlMjQtbWFpbnQKKzQxNTY2IDRlYWE3MmJhMTlhMmU3MjdiZDMwYjUyZDQ5ZDcwYzM4MjllMTBhZjUgcmVsZWFzZTI0LW1haW50Cis0MTU2NyBhMTdjY2ZjMzcyZTk5YTk4NDA0ZmViMzQzMzUwMWUwYTg3MWU1NDJjIGFzdC1vYmplY3RzCis0MTU2OCBlNjc1ZmQyOTViNGI5ZTI2NTEzMWM0NGFiMzkzZmM3MjgwOGY1MTNmIGFzdC1vYmplY3RzCis0MTU2OSBjY2Q4YTBkMjg5NTA5NjZkODUzZjU4NjJhNjRlNjc1YmZlZDY5NDIzIGFzdC1vYmplY3RzCis0MTU3MCA1YjBmNWQ5NzYzMjU4ZjlhZjg3ZmQxNjc5NTJmMWRiOWJiNmMyOTg5IGxlZ2FjeS10cnVuaworNDE1NzEgYTVkOGYwNWJhZjk4Y2YyYzUwZDhmZjU3MzZmM2E3NGU5NzRlNTBjYiBhc3Qtb2JqZWN0cworNDE1NzQgOTZhNGU4MDY0MjVlNDE4NTVlNzVjZjUzMzJjY2M0YWJlMWE1MDc1MyBsZWdhY3ktdHJ1bmsKKzQxNTc1IDQ2NTAxNDkwMjUyZGI3YWFhMzFkYzhjYTc5OGM5ODE5MTg3NDAwMzIgYXN0LW9iamVjdHMKKzQxNTc2IGViNjZlYWU5YzJjOGMzNDIwNDIwMWYzY2IzYTUzYmRiZmIyYzNjMWQgYXN0LW9iamVjdHMKKzQxNTc3IDg1MDdkNTgyNTM1NGFmNzk1YmI1YjVmZTZhMDQ2OTFiNjgzOGQzNTQgYXN0LW9iamVjdHMKKzQxNTc4IDljMDQ5MDk5N2U2NjIwMGNlMzhjZmU5MDA3NDA5ZDg2NGFkMjhjODggYXN0LW9iamVjdHMKKzQxNTc5IGFiZmVhYjczYzhmMTljY2VmNzJlODQ0MGE1MWRlNzcyNzcwNGJlMDIgbGVnYWN5LXRydW5rCis0MTU4MCA4MDU2M2RjMTM0ODc1ZjBmYWFmYzg5NjU1NGU5ZGUxY2U1YTQ5NDI4IHJlbGVhc2UyNC1tYWludAorNDE1ODEgNmY0NjEwZjY5MmUwZWFiODU1YmJlODNlMmRhNDNhNzNmYzQwMDNhMSBhc3Qtb2JqZWN0cworNDE1ODMgN2FhYTA5ZjFhMDQ3MjQzMzFjM2Y1ZjU1YTQ0MjRiM2IxZTM3ODIxMSBhc3Qtb2JqZWN0cworNDE1ODQgYzU5M2YzMzY0M2RkZjUwYmVkNTBjYjFlZTZlMDc4NTNiYjQ1OWZjMiBhc3Qtb2JqZWN0cworNDE1ODUgODFjOTQ0YzNkMTNhMDU4ZjVmZjVjN2VjZWM3MWU2NDAyMDJmOThlOSBsZWdhY3ktdHJ1bmsKKzQxNTg2IDE5MWI1OTkwOWRlZDhkNDAzOGMzN2E2MzFhZThlZThkMDY4YWY0MzggbGVnYWN5LXRydW5rCis0MTU4NyBlNzJiYzVkYWZlMTZlYmVlZTlhZmI1NWUxM2Q1ZTdlYmMwMDg5MDBkIGxlZ2FjeS10cnVuaworNDE1ODggNWQ5NmE1MzZiYmYzZTY1ZDIzZGE4MDJmMzk5Njc1NGFiNjU1NWQ4NyBsZWdhY3ktdHJ1bmsKKzQxNTg5IGFkMGYwMzg1YzZmMzk4ZmM0ZGFlYjlhMjBhZjA0ZmUzNDExODUzNmEgbGVnYWN5LXRydW5rCis0MTU5MCBjZjMxYjJjOGU4NTQ2MGYwZDQ4NDlkZWQwZDA3NDQ4ZWM4ZjhhZDQ5IGxlZ2FjeS10cnVuaworNDE1OTEgMDNhZTBiOGViNmNiZmI0YjFjYmFlZjU0ODQyMDg0ZjdhMmFkODg3OCBsZWdhY3ktdHJ1bmsKKzQxNTkyIGUyNmRjMzM0ODkwOWJmNzAwNTI3NTQ4NmU2OWQ3Y2I3ODY3YzM3YTUgbGVnYWN5LXRydW5rCis0MTU5MyAxNmUwM2NmYjlhMDIyYWUxZDM5M2I2ZWI3Y2EzOTNmZWEwZWNmOGE5IGFzdC1vYmplY3RzCis0MTU5NCA3NWQ1MzZiMjQ3ZWFhOWMxOGJiYTUwMmYyMzVlMzUyMGFkOTEzMzY0IGxlZ2FjeS10cnVuaworNDE1OTUgYTA4N2U3YmY1MGYxZGUzNzg0NDAxYWVkMDQ2MDFhNDI1ZGE5YmRhZCBhc3Qtb2JqZWN0cworNDE1OTYgNTA5OTU2YTU0ZjM3NjE3NjE4NmQ2Mzc2M2I3ODY3ZmEwZmIxMGYwNiBhc3Qtb2JqZWN0cworNDE1OTcgM2E0MjE0YmZiNmU0NGIwMDVlZTEyYmQ4MTVmZjU3NTE2ZmYxY2E0ZSBsZWdhY3ktdHJ1bmsKKzQxNTk4IDUyMjUxMjI0Y2I5OTVlMWJkNzg5NmVkOTgwODU4NjQwMDlmMTMyZTYgYXN0LWFyZW5hCis0MTU5OSA1YmE5MjBlZWYwMTYwNDM4MTM5MDU3YWM3OTY2ZDA0NDNiNDAyNGNkIGxlZ2FjeS10cnVuaworNDE2MDEgOGVkYTFhNThhNDkwMzcwYTI2ZjIyNDlmZWRlNGE1NzIyNTE5ZmQyZCBsZWdhY3ktdHJ1bmsKKzQxNjAyIGYwMjBhN2FkZTZiNWQ1ZWVjN2RiNDgzY2ZlNDUwY2RkNDJiNjFlMGEgbGVnYWN5LXRydW5rCis0MTYwMyAxZTEyODdiNmY2NTI2ZjU5Y2IzZjFkMDk0MGE3OTIxNjMzMTY3MzQ2IGxlZ2FjeS10cnVuaworNDE2MDQgY2IzYWU3Y2VhMTA2NjYyNDljM2YyYTAzMWVmNGZiYjJhM2VkYzBkNyBhc3QtYXJlbmEKKzQxNjA1IDVkMDMxYmQyMjMwN2JjYjQ1ODZjYWNhOTVlMDdmMmZhMTc1YzM1ZjAgYXN0LWFyZW5hCis0MTYwNiAzYzIxZDViZDE1YmU2M2ZmNWZkZDNkNDhkZjYzZTg2NTkwMjQxYzZhIGFzdC1hcmVuYQorNDE2MDcgYzg5NzA3ZGFhMDExNDQ5YzQxNTlhM2I1ZmNlYTJjNTBmMjI2YzA4MSBsZWdhY3ktdHJ1bmsKKzQxNjA4IDAxYmQxNDZkYzUyMDdmN2Q3YzE3YmUyMmMzNGM3YWNiZWJiYzYzNDQgYXN0LW9iamVjdHMKKzQxNjA5IGM4MDA5YmQ2MTE0ZmE2NWIwODZiZWM4ZDE4Yzg2MGY5NzFjNjFjNGEgYXN0LWFyZW5hCis0MTYxMCBlZTU1NDMwZTVjZmU3NzhkY2NhNjY3MzZjMDdjNTI3ZjE0MWM1MDA4IGFzdC1hcmVuYQorNDE2MTEgNTUxZDU4YjNkMGNkM2M3NmM1MzBmYWZkZDU4NjM4NjMwMzU2NmU5YSBhc3QtYXJlbmEKKzQxNjEyIGFhNWQ4ZTRhMDBhOGE0ODYzODY0NWQ4NTQ0MGE4YzhlNjU3MjdhMWQgYXN0LWFyZW5hCis0MTYxMyBjMWU2NzhlN2JiMTI4MzliYmEzOGYxZTg3NGVlMjFjZTQzZjViNGI4IGFzdC1hcmVuYQorNDE2MTQgYTI5ZGM1OGE5OWYzODk0ZWE0OWUzZGUzOTViYzQyYjRlZWI1ZmU2YiBhc3QtYXJlbmEKKzQxNjE4IDExZWU5ODJmOGM4ZDBlNDYwZjRmMWE0ZDBkYWZmYWNjYWY5ZmRhMzMgbGVnYWN5LXRydW5rCis0MTYxOSBkNDdhYmY5NzU4YzlmZWFlNzU5N2M2ZmM0YjgyZWU5YTllYjYyZWYwIGFzdC1hcmVuYQorNDE2MjAgYzYyOTgxMjUwMzllNGRmYjEzODdiYjA5MTFlYWIwOTdmMmVhOWQxYiBhc3Qtb2JqZWN0cworNDE2MjEgYzBjMTJhYTc1N2U3MDlmMDljNzZiZDMxNzYyMzA3NzdmMmE1ZTJmZCBsZWdhY3ktdHJ1bmsKKzQxNjIyIGFiZTFiMzMyZWFhMDBmNzA3NDA5MzJjMWY2OTg2MGM2YTYzN2E5YzQgYXN0LW9iamVjdHMKKzQxNjIzIGMyMzZlYjZkOTkzNDUyNzVmOWQ0ZmRhZWFmMzc2ZTBhYTlkZGNiNjMgYXN0LWFyZW5hCis0MTYyNCAxZTY5ZTYzYWUzYTA4YjQ5Zjk4ZWI3NWYwMTNhOTM4YWQ5YWJkNWZjIGFzdC1hcmVuYQorNDE2MjUgYWI4YWI5YmU2ZjRiNDdjYTBiYjFhZTY5YTk4MTBjNDNiNGFlOThlMiBhc3Qtb2JqZWN0cworNDE2MjYgYTI5Yzg5YjRlOGM2MzA5NWM3MmMxNGUyNWVlODE5Mzk5OTBhZWQzNyBsZWdhY3ktdHJ1bmsKKzQxNjI3IDhhZDMxOWYzYTkzNWVjNWQ0YWZhMGYxYzVlMjhmOWNlODY4MDJkNjAgYXN0LWFyZW5hCis0MTYyOCA1MWUzYTgzOGFlYmU3NDAxZGM4NjI4YzgyMTY2YzAwMmQ5Y2YyMDJlIGFzdC1hcmVuYQorNDE2MjkgYWI0MzFiMzI0YTRiZDQzOTk3MzIyZmFmOWFkM2I1NjM4MTc1MjJmOCBsZWdhY3ktdHJ1bmsKKzQxNjMxIGI3N2VkY2VlODg4Y2EzNDUxYTcwNWJiZjM0MWQwOThkMmQzZjA1ZmIgbGVnYWN5LXRydW5rCis0MTYzMiBkYmNjODkxMmEyNGRlYzQ0ZDZlY2EzZDA5MDI5ZDdjMzhjYWE2ZDcxIGxlZ2FjeS10cnVuaworNDE2MzYgNjQ5YzM0MTgwYTBmNTBlMDA1NTA0YmRmOTRlMDQyZmM4YWM3MDE2YSBsZWdhY3ktdHJ1bmsKKzQxNjM3IDk2ZDFmYTM2OTY0ZDRlMTFhMDI3M2I0OWU0ZjA2ZGMxMmZiOTU3YzQgbGVnYWN5LXRydW5rCis0MTYzOCA5NTQxMzY5YjBkY2FmMDQ4ZjFiZDk4NmEyOGM5NmZmZWVlMzdmODA4IGxlZ2FjeS10cnVuaworNDE2NDEgY2MzMjYxNTk3MTM2YzYyNTZmOTFjYTc2MzBkZGM2YzkzMjkwN2YzZCBsZWdhY3ktdHJ1bmsKKzQxNjQyIDYzMjE2NjlmMmY0ZDEwYzZiY2U1YmUzNWU5MWMxN2Q5OTIzNTUxNjAgbGVnYWN5LXRydW5rCis0MTY0MyAwZWI2ZWY5MmM1NmUyNTc5NmIzYjI5Y2RjYzE5MDQ4ZDEzY2ViM2I5IGxlZ2FjeS10cnVuaworNDE2NDQgNTJmMWQ1N2YyMzdkYmJkYzVkODM3NDRkZjZkMTNmNDY0YmRhNjEzMSBsZWdhY3ktdHJ1bmsKKzQxNjQ2IGU0YjYyMWUxZWRhNjYyMjA1NjUwZGRjMTE0NmY1YWE1MTU0NTUyY2QgbGVnYWN5LXRydW5rCis0MTY0NyAzMmU3ZmU5YzIzYjkxY2IyZjUxMTg4ZmI4Mjg1MWI4N2FhNmI3MjY2IHJlbGVhc2UyNC1tYWludAorNDE2NDcgZjZlNzM0YjFmMjYxYzU0NmQ4MGU5ODQ5MDM4MDU0YmYwOTdmZjg0ZSBsZWdhY3ktdHJ1bmsKKzQxNjUxIDZmNTAyZDM1ZmM3NzViZTY3YjgzMWQ0ZGIzZTVhNTk5NDFhMTA4NjEgbGVnYWN5LXRydW5rCis0MTY1MiAxMDIxNDBjM2EzNjE0ZGIzZTkzMjVhYjAyMTI0NTcxNGUxZGRkMTZmIGxlZ2FjeS10cnVuaworNDE2NTUgYTVhZDc2YTc4ZjRiMjlhOGFhN2Y3NDdkZGI2ZjE2YTgyZGNlMzhmZCBsZWdhY3ktdHJ1bmsKKzQxNjU3IDUyMmUwMDczZDljOWU4YmI3NTE3YmZjNjljMmViM2JjM2JkOWYyNDUgbGVnYWN5LXRydW5rCis0MTY1OCBmOTQ0MTg3MTVlNTUzMTI5OWYzYWI3Y2NkYzIxNWMwYTJjMzBjYjM3IGxlZ2FjeS10cnVuaworNDE2NTkgMDdmZGI0ZDJiOGY2MjMzN2QzOTM2NGE1NjkzNTk2ZjRmMWFkMTA0ZiBsZWdhY3ktdHJ1bmsKKzQxNjYwIDA3Y2U5Mzg4NTdlMWJhMmYxODVjNThkM2EyZGVhOTc2MWUxMjc3YzAgbGVnYWN5LXRydW5rCis0MTY2MSAxNjQ3MGI3MjJmMjA5YzAxMjU0M2U4YTkwMGVkOWJkNzE0NjY0ZDkwIGxlZ2FjeS10cnVuaworNDE2NjIgNDAzNjc4NzRmODYxNmFjNzA0NTdhODMzZjFkZWJkYmQyYzNiOTRmMiBsZWdhY3ktdHJ1bmsKKzQxNjYzIDM3N2RmMzliY2RhMWYyNmZkMzNmN2JmNzc3YjNiYzI0MzMxNjA0MGIgbGVnYWN5LXRydW5rCis0MTY2NCBlZDM0N2M0MzZkNTg5NjZjYmZkODRmZWJjMTQwYzUzMDkzYWNlZmJjIGxlZ2FjeS10cnVuaworNDE2NjUgYzI1M2U5OTNkZjhhY2U4MjE2MWViMmRkNzMyOWVjZGEwN2M3NmQ2YSBsZWdhY3ktdHJ1bmsKKzQxNjY2IDY4ODE3MzE1Yjc0Y2E5NjlhNGM3NmU1MzBkNjc3YjE4MmM1ZTYwMzAgbGVnYWN5LXRydW5rCis0MTY2NyBiZmQ2YTZmYzcwZWFmNTNkNmMxMGJlMGNiNDEyZWQ0YmE0YWJmYmY2IGxlZ2FjeS10cnVuaworNDE2NjggY2Y4ODYzNmNkZjRiZTk5ZDZiZWU5Y2ViMjU0ZTlmMjhkMzNjMzRkYSBsZWdhY3ktdHJ1bmsKKzQxNjY5IGExNGE3ZjYxNGE5NmRhNGJiOWJmNDYwNDU5MjhlOWEwNzhhZmI4YTggbGVnYWN5LXRydW5rCis0MTY3MSBiZWM5ZmFjOWY3N2M3MzAzNDFkYWI2Nzg4ZGRiZGQ3ZWY4NmE4Zjk2IGxlZ2FjeS10cnVuaworNDE2NzIgMjdkZjJmYmUyNzA2NjRjYTIyODVmZGQ3MmFlMzAwMWQ2ZDI5OTU1ZSBsZWdhY3ktdHJ1bmsKKzQxNjc0IGRiMWMwYWFiYzQwNWEwMmVhNTVhZGNiZWFjNjZhYzE3YWM5NDlhZjQgbGVnYWN5LXRydW5rCis0MTY3NyBlMDFkODUyNGI2ZjY0MmNiYjM5MDk0MWFkNDczZmQ1ODBiYzNiYWViIGxlZ2FjeS10cnVuaworNDE2ODIgY2Q4YjViMzFlMDJhYTRiYjhhYzk3ZmNmOTY3N2FjNmQxNDc1NzJhMCBsZWdhY3ktdHJ1bmsKKzQxNjgzIDkzMDFhN2MwMzEyYWMwM2I3Njk1MzliMDI5MzNlNzkzMzJjMzM5OTEgbGVnYWN5LXRydW5rCis0MTY4NCAzNWZlOTAzMjVmNWI3YTIyY2ZhNGIxMjQyMzZhYzAwNTljNjkwZjU2IGxlZ2FjeS10cnVuaworNDE2ODcgZjBhNTMzMGYyYjNlMTFiMWY1NzBjZmU0YWJjNGQ0MzUzZjg1MDk2NCBsZWdhY3ktdHJ1bmsKKzQxNjg4IDYzNWUwZDkwOTY0NWVmNjVhMzEzMmEzODBjYWYzMzlmN2E5NTlmNDggbGVnYWN5LXRydW5rCis0MTY5MSA2ZDdkMWE5OTZhMDIzYThkYTM1ZWZkOTlhYTYxNmM0YWJhZTE0NjNjIGxlZ2FjeS10cnVuaworNDE2OTUgMjQ5ZmZlMTNjYWY4YTU0YzZmZDZiYzAwZGJjOTNjODQ5NDQyNmYzZCBsZWdhY3ktdHJ1bmsKKzQxNjk2IGZkZjBhYzM2ZWI3NDYxMmZhNDY4YjMxZTU4NDk3ZmM2ZDQzOGZiNTggbGVnYWN5LXRydW5rCis0MTcwMCA0YmZjZDVkY2QwYmZhMjUwYTU5OTAzNTIyYjM2ZDJiNTFmYzA4Yzc0IGxlZ2FjeS10cnVuaworNDE3MDIgNzU0OGQ3NjU2ZDg5ODY0YjNhZTBiM2YxZGZjZTlhZGZiZjBhMzZmMiBsZWdhY3ktdHJ1bmsKKzQxNzAzIGRlNjlhNTI0ZjRlZGJjNmMzYjEyNWU5ODg3ODQ0NTFjNTFhODQ2N2QgbGVnYWN5LXRydW5rCis0MTcwNCA2NGM2YWI1NjcxZTdkNzcyOTY5OGIwOTE4YjE3ZTY0YzQ4MTUyM2MyIHJlbGVhc2UyNC1tYWludAorNDE3MDUgZGUwYzJmZWE2NWMyMWJjOWFjYmVkMzhkOGEwMDFhN2U0MDUwYTI2OCBsZWdhY3ktdHJ1bmsKKzQxNzA2IGM2OTFmZDYzZWIzYzA5NWM2ZWQwYmI4OTY4OTQ2YWYzNThkOWQzZjkgcmVsZWFzZTI0LW1haW50Cis0MTcwNyAxOGQyN2M0NDQ3ZDExMzZjZGMzYjEzZTAwNmVhMzAzZGY2NmI2NWZiIGxlZ2FjeS10cnVuaworNDE3MDggYzExNTEzNjkzY2I5NzAzY2U2OWE2MTQyMTFmMTMyOWU5OWZkMWFmMiBsZWdhY3ktdHJ1bmsKKzQxNzEwIDk4NjUzZDlmOWNjMzljM2U1OTNiNDE0YmJlY2JiOGRhMTQzYzRjODMgbGVnYWN5LXRydW5rCis0MTcxMSA2NTJiZDVlNWI3NzgyZjg2YzA3YzNhMTUyMTM2NmVhMTA5ZmUwNzQ0IHJlbGVhc2UyNC1tYWludAorNDE3MTIgMThmMDlhYzYxOWU4OTJmMmU5ZDViMGM4MzUwNThlMjI5N2VkYjQxZSBsZWdhY3ktdHJ1bmsKKzQxNzEzIGE1NTgzMWQzMjkxNWEwNWY2MWExY2Y5ZWRhYzNhOGE5MTY4OTA3NTcgcmVsZWFzZTI0LW1haW50Cis0MTcxNCA0ZGIxN2EwMGJkY2QzNTMwN2YzNjg3MjAxMWQ1YmQzNWM2M2M0ZWQzIGxlZ2FjeS10cnVuaworNDE3MTUgZGVlMjUzYTMxMTZjNDU2ZjliODZjZDc3ODFlMjVkZDM1MTRiNTU1NiByZWxlYXNlMjQtbWFpbnQKKzQxNzIyIDRlYzYwMTExMDkwNjEzNzYxZTk5MGZlYjZlM2RjZDNjOGI3MTY1ZjggbGVnYWN5LXRydW5rCis0MTcyMyA2NTg2Y2Q5OTIwZTdlM2ZmNmIxY2UwNDlhNDU5NDNkMDFkNGY4ODdjIGxlZ2FjeS10cnVuaworNDE3MjQgOWI4OTdmYjdhYzZhMjIxNmQ2ODk4Y2VjMDhkZDNiNTEwNjc5MDM0MiBsZWdhY3ktdHJ1bmsKKzQxNzI1IGY4OTNkNDAzYTk4YzFmODE5YzAyMTZhNjNmNTI5MzkzYTFjNWZmYjAgbGVnYWN5LXRydW5rCis0MTcyNiBmYTA4YzY5N2EyNzU4ZGIzZmVjZmQwZDhmODkyMjBiYjVkMWE3NTEzIGxlZ2FjeS10cnVuaworNDE3MjcgYWRlNjc4Njg3ZDNiMzI4MDVjNDI2OTlmYThjZmEzYjIyMDY5ODcxNyBsZWdhY3ktdHJ1bmsKKzQxNzI4IDMyMWVmZDAzNzg1OWNjY2U4M2RlNjYzZDljMzY3YzJmZmJkZDJmMmUgcmVsZWFzZTI0LW1haW50Cis0MTcyOCBmMWFlMTE0NTdkMzRiYzNiMGM2N2Y3Y2MwMzQzZTg5ZWNkNTI5NmMxIGxlZ2FjeS10cnVuaworNDE3MjkgODc3YjVkNGNhMzY4MTcyMTM0ZmE3MGIyMTQ0ZjRiMGE3ZTlhYjM3OSBsZWdhY3ktdHJ1bmsKKzQxNzMwIDczMTAzMmQxMDE1OWZiYzBkNTI0MjQ1M2Q2ODI3NzllMTQ2N2Y1Nzkgc3NpemVfdAorNDE3MzEgMjc5MTljZjg0ZGMzZGRmMGNkYjMwZWMxMTM0Y2Q2YzdjOGE5MjJjMiBzc2l6ZV90Cis0MTczMiBjZWM5YzJjMTRlMjhkNDRmNDA2MDY1MjdjZTgxMTJhNGM2NzhjYWEwIGxlZ2FjeS10cnVuaworNDE3MzMgOWVjNWIxNjVmZWEwODE0YTI3YmFhOGI5NjVmMTUyOTEwOWQxMWEzZiByZWxlYXNlMjQtbWFpbnQKKzQxNzM0IDc5NjMxMGNiZmZlYjIzMjRlOTQ2ZmY1OWUyZWUyZTUxMjYyNjA2MjMgbGVnYWN5LXRydW5rCis0MTczNSA0YzE1YThlOTFhZTc0ZmVjNWJkMGFjNTMwZGM2NmZmMzFmMWZhOTM1IHJlbGVhc2UyNC1tYWludAorNDE3MzYgODFkNTk5NTk1MWZkNDEwY2E4NmRjM2Y3NGQ1MGRmMTYzNjVkMGRmNSBsZWdhY3ktdHJ1bmsKKzQxNzM3IDk4MDU2MTk1OGYxZDM5MzNmZDYyMTM1MWY5YWRkM2VkMjk5YzBjNDYgcmVsZWFzZTI0LW1haW50Cis0MTczOCBmYjZlNjRlYjg2YzAzOGYzMDJjZTI4ZjNkOWY2ZjcyYzk3ODkxMTZhIGxlZ2FjeS10cnVuaworNDE3MzkgZWEwODNlZmRjOTZjNzNhOTkyMDQzZWZlYzdkY2UyNzc3MWUzZDFkYyBsZWdhY3ktdHJ1bmsKKzQxNzQwIDcxOWJhMDJkMmUyY2E2M2QxNTEyMmI0NDZkYzNmMjkzZmZlZDRjNjMgbGVnYWN5LXRydW5rCis0MTc0MSA3YmZiMDk3Zjk1OTc2ZjRlYmM3NmEzNzk1Y2UzMDA3NTI1ZGYxODk4IGxlZ2FjeS10cnVuaworNDE3NDIgM2QxYmFmNzE3YzVhZjVkOWVmODkxODZmNTAzNzU5NGU3MjZiOWEwZiBsZWdhY3ktdHJ1bmsKKzQxNzQzIGQwMjE0YmIxZmQ1MTJiNjdmMWNlNGViYjBjZTIzZmMxZTExOTZmMjkgbGVnYWN5LXRydW5rCis0MTc0NCA5Njk3ZWVlYWYyNDY2MzJlYzQwOTNhNzc2YTg2YTcwMDYxMjc5YThlIGxlZ2FjeS10cnVuaworNDE3NDUgNDVmN2I3MzgzYTRlMjBhOTcxMGY1MmQ5Y2Q5NmU1ODM3MjZmNjU3NiBsZWdhY3ktdHJ1bmsKKzQxNzQ2IGRlMTZhODVjM2I0Y2YzOGUyZTU2YTc4ODM2ZmM3NTcxYmRkMjFmMjkgbGVnYWN5LXRydW5rCis0MTc0OCAxNWI1OGU0NWYxYTEzMTZhY2MxNWI3NGQxN2UzODAwZTlkZjdmMGU1IGxlZ2FjeS10cnVuaworNDE3NDkgZGEwYmFiNWRkNzQwODlmNzI3Yjg2ZmZjNzI5MjNkMWVlNzJmNzNkYyBsZWdhY3ktdHJ1bmsKKzQxNzUwIGY2N2M0YWIzMDRlY2VhODFhYThhNDM5NDNhZjVhMzI2NzMwODA5NTcgbGVnYWN5LXRydW5rCis0MTc1MSBhYTdkN2RmODUzZDU3MDU5MDY2ZDNkNWU1YTlmYTcxM2QzYTIyMzNjIGxlZ2FjeS10cnVuaworNDE3NTIgM2I5MDI1OGZlYzlmNmIyZTZiM2M5ODM5NDBiY2EwMTQ4NGQ2ZDc1NyBsZWdhY3ktdHJ1bmsKKzQxNzUzIDFmZjQ3OTBiNzYwNTAxOGM2NDFmY2NjNDU5NjkyMTQ3YTUzZDAxNTIgbGVnYWN5LXRydW5rCis0MTc1NCA4ZWJlMzRlYjNlYjc0ODAyYTQ5ZjJkNzcxMGY3ZTRkNjQ0YTY0ZDQxIGxlZ2FjeS10cnVuaworNDE3NTUgMTA0NDBiY2ZhMDYxNzE5YzdiN2U5ZWZmNzVkMjFlNzQ3MDE5ZWUyZSBsZWdhY3ktdHJ1bmsKKzQxNzU2IDE5ZDk2YzJkN2RmNTRlMjlmMGVmNTg0MzEzYWViMWJkZTlhMTFmNTAgbGVnYWN5LXRydW5rCis0MTc1NyAzZjM1OGFmYmIzZDNmMzdhZjIwMzIzYzZhNzA3ODRjMTNiN2UwMmM4IGxlZ2FjeS10cnVuaworNDE3NTggNGNiZjJhMDEwZDk0NWI2YmNkOTU1ZmEwNTE4N2MyNTc5OTcwZWIwMCBhc3Qtb2JqZWN0cworNDE3NTkgZTNlY2E2NWFlMTQ0ZjVkYzg0MGI4NDY1NDZkZDRkZTY1OTkxMDY5YSBsZWdhY3ktdHJ1bmsKKzQxNzYwIDMwMWZiMGE5OTM3MTQ0ZWM5N2IzMjNhNWI4ZjQ1M2ViOGI1YmU3NTUgbGVnYWN5LXRydW5rCis0MTc2MiBmYTY5ZjBmYTM2ZmVmOWIyZTljNmE2MjE3Y2U0ZDEzMzRjNGIzZDExIGxlZ2FjeS10cnVuaworNDE3NjMgZTE0ZjQ3OTY0NzQ4MWU0ZmQ5YzUxODM2MTYyZjI5OGM3MzI3NmE5ZCBsZWdhY3ktdHJ1bmsKKzQxNzY0IDQ5YTA0OTNmMjQ1ZTNmYjg0ZTU1ZGYxOWUxOWEyZTkwNzMzZmJkYTAgbGVnYWN5LXRydW5rCis0MTc2NSBhOWQ0ZmI4NjA3ZDI5ZmU5ZjAwMDhkNDdlZWRjZGNjNzRlOTc0YTM4IGxlZ2FjeS10cnVuaworNDE3NjYgZWMzNDUyODQwYjk2NmU2ZDhkZTJkM2NmYmZhNGJjNzBmNzBhYzIwYSBzc2l6ZV90Cis0MTc2NyA0YWEwMTg3OWE4ZjVhOWJjZTgzMzkxNTEzOTJmNTcyMWQ1YjdjNDdmIGxlZ2FjeS10cnVuaworNDE3NjggOGNiNjg2ZGQ2ZTY0NThmZjQ5ZTZmODNlZTU0ODdiOWM1OTlmMTNkYiBsZWdhY3ktdHJ1bmsKKzQxNzY5IDdjNGQ1YjM4YzU1ZTY2MmE2NDEwODg2NGEzNGI5ZTRlNmIwOTk3NzUgbGVnYWN5LXRydW5rCis0MTc3MCBiNzBiM2U1YjNjZDFjOTZiNzI5OWJiYjRhZjA2YTJjMmQzNGNiZTk5IGxlZ2FjeS10cnVuaworNDE3NzEgYjhiMzc4MmIyZGMwNzViZTI3OTQ2YmE1YmQwNjc0ZGZjNzM4Nzk2YSBsZWdhY3ktdHJ1bmsKKzQxNzcyIGU5MGU3ZDllOTg5MTA5YTEwMTk3OTAyY2IyMzg1ZDdmMDcxNGVhMjIgbGVnYWN5LXRydW5rCis0MTc3MyAzNTU5NjMwN2U3ODYwMjFiMTBiNGMyZmZhMTdiNDk1YTQwYWNkZTAyIHNzaXplX3QKKzQxNzc0IDk2M2Q3NDljOTc3NjQwYzE5ZWM0ZTcyZmE4OWExMjc2ZDQ1YmIwMjEgc3NpemVfdAorNDE3NzUgNWE4NzY0NGEzOTAwMGY1NWMxNjk4NjZiMmU3ZTY0MzRlMjUwYjFmNCBzc2l6ZV90Cis0MTc3OCA4ZGQzNWRkNmIwZTg5Y2NlNTkyYzcxMWU3YjI5MTIxMmNiZWFkODgzIHNzaXplX3QKKzQxNzc5IDNiYTIzMGM3N2Q0MDAwMzEwM2M5ZTEzZGMwNTg2YzM1NGEyNTFhNTIgc3NpemVfdAorNDE3ODEgMTZlM2VlYjg1MjA2ZmRhMmYwYmQxYmFiYjc3N2E3ZmE2YjM4MmVmMCBzc2l6ZV90Cis0MTc4MiA0ZDFmM2VjNGVhZDU5NjhhNzJlNWNkOTRlNmM1MTU5ZWQ3N2VhOWY0IHNzaXplX3QKKzQxNzgzIGQ2ZWExNTMwZGEzMDA0MzU1YjYzN2UzYTg4MzhmMzE3NmFkZDI5ZmIgc3NpemVfdAorNDE3ODQgNDJhY2YzM2FhM2M4YTI4ZjBlNDgwM2MwZDMxNmVhNThkN2UyMjIxOSBzc2l6ZV90Cis0MTc4NSAwOGU4MGEyYmY0MGNmODU1ZDNmM2Y3ZTlmYTUwZGJiMDExMTFjOWFlIGxlZ2FjeS10cnVuaworNDE3ODYgOTg4ZmRmMDI1MmI3OTRkNzA2Y2Q1YTAyMjA3M2ViYzI5MDk3MWRjZSBzc2l6ZV90Cis0MTc4NyA2MTcwNmU1ODFlZjljYTQ0OTkxNGM3M2I5ZjI5NDY1OTY5ZjljMzY5IGxlZ2FjeS10cnVuaworNDE3ODggZjJmYTQwZTg4MzYzMGI2M2VjZTNlNDk1YTU0YWI2NjFlNjUyY2RlNCByZWxlYXNlMjQtbWFpbnQKKzQxNzg5IDkxM2E4MGY0NThlNjg3NDc5YTZiODhkNTI5Yzc3NjhkYzJkM2YzOWIgbGVnYWN5LXRydW5rCis0MTc5MCBjODA4OTdiYjUwNTNjZWVkODc4ZjMxYWI2M2UzNDBlN2MwMjNjN2I5IHJlbGVhc2UyNC1tYWludAorNDE3OTEgMmE1ZTYwMDlhNDQ1MjcwMzIxNWM4NDVkZjEwNGM3MjkxNTAyNTZhZSBsZWdhY3ktdHJ1bmsKKzQxNzkyIDUwZmE1OGEyNGU2MGY0MTcwZTc3OTU5NmJiNTVlOTZkODBjMWZlZDQgcmVsZWFzZTI0LW1haW50Cis0MTc5MyAwY2YzMjQ4ZTI3ZTY1OGE2ZWE0ODEyOWMwYTI0NjU0YjQ2ZGUyNTgxIGxlZ2FjeS10cnVuaworNDE3OTQgM2VkNWE0YWNiZTdjYjNiOWNiZmZhN2YyYWRlYmZiYzkxNGVjMTIxZCBsZWdhY3ktdHJ1bmsKKzQxNzk1IGE5M2JlNTE5ZjllYzQwNzI0YzdhMGJiMTgxNGMwOTc4MTZkMjNhZTAgbGVnYWN5LXRydW5rCis0MTc5NiA3ZWNjNDBkMjA1ODY0MWZjN2NiMzMxZmJlNmM4ZTM1ODYxOTM3MTkxIGxlZ2FjeS10cnVuaworNDE3OTcgNzRiZWRmZDBiZDZiMmZmY2ExZWFhMzI5M2ExNGFkYWZjZGY5YzZiZiBsZWdhY3ktdHJ1bmsKKzQxNzk4IDVjZTQ3MTAzZjg0Nzk0OWUzNTlkMjFhNTAxNjY2NmZjNDk3MDFkZTEgbGVnYWN5LXRydW5rCis0MTc5OSAzYTM5NDMxYTU0YTUzYWI3NjMzY2I4YTkyMjkxYWQ3MjA5OWIyMDU4IGxlZ2FjeS10cnVuaworNDE4MDAgMzRhNTE1NGU2MTFjYzEwNjk3MDdiOGE3ODgwOTU1OTUzNzhkNmY1MSByZWxlYXNlMjQtbWFpbnQKKzQxODAxIGYwMTEyNTNkM2M0NzBkMzM5MWUwZWM3MDMwNzgyNDllZmIwOTk3ZDQgbGVnYWN5LXRydW5rCis0MTgwMiA2MzBkMDFmZWNmZWM2NDFlNGZjYWMwNGEyYzc4ODNhOGQyYjZiZmRkIGxlZ2FjeS10cnVuaworNDE4MDMgNTZkZGYzYWExMmIxMWNjYmFhM2NlZTlkOTE1ZGMzMTJiYWNjMzBlNCBsZWdhY3ktdHJ1bmsKKzQxODA0IDk4ZTI1OTVkNzM3ZjAxYzMzOTliMmEyNmRlNzAyODc4YzJjMjAzZTUgbGVnYWN5LXRydW5rCis0MTgwNSBlOWExMGY3NGNmODhhYzdlMzdjMjhlMDk3OGE0ZjFkMTRkNGFjZGU3IGxlZ2FjeS10cnVuaworNDE4MDYgMDNkYmVjMGQ5NTA0NmUxYTFmOTEzNmNhMmM1ODdkZmEzZjQ5ZDg2YiBsZWdhY3ktdHJ1bmsKKzQxODA3IDc2NzQxZTczYmI2NDk3OGM5NjdhODBmYzI4YWMwMDJhM2MyNDNkYWIgbGVnYWN5LXRydW5rCis0MTgwOCA3ZDZhYjlmMzk5OTZjY2ZhMjk3MGFiMGZhZjg0MWE1ZTM5MzAzZjUzIGxlZ2FjeS10cnVuaworNDE4MDkgMDQ0ZDM1Y2EzNDI0N2I2ZTc5MjFkOGUyYWRiN2Q4YTM3NWUzZGZmZiBsZWdhY3ktdHJ1bmsKKzQxODEwIDZjYjU3MzliNzFjZTBiODRjY2UxNzE5MTNmZmM3MzdiYzc1NzQxMTUgbGVnYWN5LXRydW5rCis0MTgxMSA0M2JjN2NhMmQ5ZGZiODc5YmJlMDM0YWM4NjY3Zjk2N2FkNzQ4NTNmIGxlZ2FjeS10cnVuaworNDE4MTIgNjg2MzA2YTY3ZTliMjQ2MjVmYWY1MGZjYzk4MjE2ZTBjYzFjY2IzMyBsZWdhY3ktdHJ1bmsKKzQxODEzIGNhZGM3NzhhZWM3OTZmMjM1NDQ3YzQ1NTU3ZDFmY2YyZjVkODkxNjggbGVnYWN5LXRydW5rCis0MTgxNCA2ZjA2MzhlN2JkMjM2ODhhNDg2YzA1ZTkzMDBlMGY4MDlkMTU5OWZjIGxlZ2FjeS10cnVuaworNDE4MTYgNTM2ZjI0ZTE2YWYyNDY4MDIxOTdiYWVlZjNiMTM0Njg1ODcxYzlhZSBsZWdhY3ktdHJ1bmsKKzQxODE3IDE2Mjc3NzE4Y2ViOWFlNjYzMWYyOTc1NTdmNWM4MTk5YmJkYzVhYWQgcmVsZWFzZTI0LW1haW50Cis0MTgxOCAyM2ViODY3N2JkYWQxMzhmZjZkZWQ3YjM4OTYxOGMzNzMzZTg5OThmIGxlZ2FjeS10cnVuaworNDE4MTkgNzZkNTExOTcyNjE2Mjc3ODhhZDQ0YzYzZmViMWI2NDI0OTJjMTg1MiByZWxlYXNlMjQtbWFpbnQKKzQxODIwIGU0MzE2ZGExOWNmYzFkOTRhZThiNmZkNTUyYzY1NWI3OTE4OWFhZWUgbGVnYWN5LXRydW5rCis0MTgyMSAyMTQzMzcxYmI5MWZjMjM3ZTNmOWQ1Yzk3YzRhNTM5MDJkNjIwYjUwIHJlbGVhc2UyNC1tYWludAorNDE4MjIgMTU2ZGY3N2Y5OTJlYmVmZGY2ZTg4ZTFlZGU0YWQxMmVjMDM2ZTNkYSBsZWdhY3ktdHJ1bmsKKzQxODIzIDU5YTg5YjU4OGMzMDk2YTM2YmU2OTBmNGYxOGJkYmM3M2Q1YjQ2YTkgcmVsZWFzZTI0LW1haW50Cis0MTgyNCBlMDZkZjVlMTNkYjlkYjcxNzM3ZWNkNzkzMzQwYTYxZDZiOWNkZjNjIGxlZ2FjeS10cnVuaworNDE4MjUgNzMwZjg0YzJmZGRiNWIxMTY0OWQ4NzlhYWE0MGI2YTZlYzJhZGRmNCByZWxlYXNlMjQtbWFpbnQKKzQxODI2IDQ5ZDYzZjM3N2ZlNzJkNzE5NWYxOTIyYmJjZWQzYWVhOWQ5YzhiOTMgbGVnYWN5LXRydW5rCis0MTgyNyAxNGYwMDJjZDAzNzFiNGE4N2UyZmFmOTg3MzAzNDg5ZjE0ODYyZDcyIGxlZ2FjeS10cnVuaworNDE4MjggYzg4NmNiMTZhMTU2NDY1NjhkMjJiNmJhZDY5NGRmMTJiZjhkOTQ4OCByZWxlYXNlMjQtbWFpbnQKKzQxODI5IGYzOWJkYmY0YjBjMWI3ZmI0YTk5OGZhN2RiOWVlYmJjNWFiZjM1YWQgbGVnYWN5LXRydW5rCis0MTgzMCBhNmFlMTAyYTZlMTE5ZWYzMTdjNjRkNzdjZjAyZjYyYWFlNmE3NDc4IHJlbGVhc2UyNC1tYWludAorNDE4MzEgYjU0MGI2MDc2ZmQ5OTE1ZWQ4ZDhhZTNlNjI1MDg0YjUzNTViNGVkYiByZWxlYXNlMjQtbWFpbnQKKzQxODMyIDdjYzIxNWYwYzA5YjNiZjFlYzI3ZDQxNmJhMDJkM2FiNjRlMGJkYzEgbGVnYWN5LXRydW5rCis0MTgzMyAyMzM5NzVkYTI0N2UyMmFlNjhjMGY3ZDkzZjY0NDNlMTgzZTljYTE4IHJlbGVhc2UyNC1tYWludAorNDE4MzQgOGU0MzhiZjc2Y2JiZjI1MDYyYTU1NGFjODU3OWRjNjk2Njg2ZDYxNCBsZWdhY3ktdHJ1bmsKKzQxODM1IDEwMWI2MWE5ZWVkMmU1MThjOGMzYTVmMDliM2FjODYwZDMzYWVmNjggcmVsZWFzZTI0LW1haW50Cis0MTgzNiA4MmE1MmE0NjRhYTI1NmNiYWI3N2U2NWRmN2I0OTM5NTE4ZDRiMjQ3IGxlZ2FjeS10cnVuaworNDE4MzcgNzRkMTZlYjJjYWJkZDJlYTQzZDNiMTcxMTExMWU2NDBlNGI2NWRlOSByZWxlYXNlMjQtbWFpbnQKKzQxODM4IDIyZGJmNTgxOGIwYjI5NGU0MWY0NzQ1OWU5MDA3Y2QxMGMxNmZlYmMgbGVnYWN5LXRydW5rCis0MTgzOSA4NTBmN2QxZTRjYTI3NjQ1ZjMwOTViNjhhM2U2NWJjMTU4NDc1MzM5IHJlbGVhc2UyNC1tYWludAorNDE4NDAgYWE3MDcwNDE1MDVkODk5YzMzNDI4NzcxMWFjYzliYmY1ZDQxMGM3ZiBsZWdhY3ktdHJ1bmsKKzQxODQxIGU0NGE4MzNlY2E0MzM1ZDg1MTIyYTI2NjdmM2NhZDdjMmM2NmIwOTcgbGVnYWN5LXRydW5rCis0MTg0MiAyZWI3OGY1ZDE0NTAwZTQ2NTJmM2JjZDU3MzhjNmNmM2U0NGQ0Y2JhIGxlZ2FjeS10cnVuaworNDE4NDMgNzNkYTU5MWY5YmRiZGQ1Y2U5NzgwNzI2MTVhYWE3YTFkZjdiMDE0MiBsZWdhY3ktdHJ1bmsKKzQxODQ0IGY5MjgxMjgzYjEwOWE0OWJkNDI3YmY2NzcyMWJkYmQwOWFhNWM4NzMgbGVnYWN5LXRydW5rCis0MTg0NSAwNDJlYjNkMWNlM2YzMzhhZTYxZTM1ZjNjNWViZjc0ZGE1MGE1MmVmIGxlZ2FjeS10cnVuaworNDE4NDYgOTYzYTk4ZDhmZTJlNGQyY2ZmMjdkNjg3MjU0MzRlNzI0MTNkN2VkMSBsZWdhY3ktdHJ1bmsKKzQxODQ3IGZlOWJkMjFmMjdmMjI4OWQ1MGVlMjYxNDM3MTc0NTVkNDhjYTUzODcgbGVnYWN5LXRydW5rCis0MTg0OCBjNzFjYTFjZDM2M2I3NWYzNDhlYTc2NGJmZjRiNzNhNDFiOWQ1YTZlIGxlZ2FjeS10cnVuaworNDE4NDkgOTZlYjJhNWNmYmVmNjIzZWVmZDBiNjExYWRmMzg3MTVjODM5Nzk2YiBsZWdhY3ktdHJ1bmsKKzQxODUwIDM0NTFiMTA5YTI0YzU2M2U5MWFjOTgwODRhZWM4MmY1MjM3MDg2NTAgc3NpemVfdAorNDE4NTEgMjk4ZmMzMjY5MzEwYmU5ZDdhMTc5N2U5NWQ2ZmE1NWIyNWYyYzc1YiBzc2l6ZV90Cis0MTg1MiAyNjEwN2M1ZDA1N2MxZmY4Yzg5MWU3NDU0ODZhMDM3OGY3MDhiNThiIGxlZ2FjeS10cnVuaworNDE4NTMgZjQ1MDc3NzRkNGU0MWZmZTRlZTk1NDBhMTAyNGU0MDIwYjgxMzMxNSByZWxlYXNlMjQtbWFpbnQKKzQxODU0IGQ5OTNhM2VlODkxZWQ4MmE0MWM1MzdkNmZmNDgwOGJiZmFkNjY5OGYgbGVnYWN5LXRydW5rCis0MTg1NSBjZmQxZTFmNGZkZGRiMTI3Njk3NWZiOGZkMjlmZDYyMmViMjc1ZTlhIHJlbGVhc2UyNC1tYWludAorNDE4NTggMWU1OTViNmM5MjRlMTcwOGY1YmIyY2YwYmZjOWYyNmIxOTFiZmU3ZiBsZWdhY3ktdHJ1bmsKKzQxODU5IGJiNTFkNmM2YTNlMDNhMzkzZWM4MzY2ZTA0NmRjMDMzYTBkNTViMDkgbGVnYWN5LXRydW5rCis0MTg2MCA1MDg4NmQ0MmI0NDRlNDBkN2U5MzYzYzFhYjYyYTI0MDI5MTI5MDcyIGxlZ2FjeS10cnVuaworNDE4NjEgMTQ3YzM1ZjQzNWEwYjVhZDA4MTcyMDhjNmZhZWQ2NjU1N2Q5M2YxYSByZWxlYXNlMjQtbWFpbnQKKzQxODYyIDZmMjUwMjlkZTlkYjQzNjg0NzE5NTI5OTZmOThiNzFkYjRmNmMyMmIgbGVnYWN5LXRydW5rCis0MTg2MyA4MzRkZDY2NGFlZmNhOWZlMzUzMmYwOTE1MDJkY2I1NDNmNDY1ZmI1IHJlbGVhc2UyNC1tYWludAorNDE4NjQgOGEyYWI1ZjUxOTMyZmVhM2ExMjJhNmUzODkyZGFhOTY2N2E1MzQwMiBsZWdhY3ktdHJ1bmsKKzQxODY1IDY1MjQyOWM0ZjJhNDkyZjczY2U1YTg5YTQwNDgxZmE4ZmM3ODJlNjAgbGVnYWN5LXRydW5rCis0MTg2NiAyNjZiYmRmOTFiYjUzZTcyYjIyZmM1ZGU5N2VmZDM2ZjkwOGM2ZGEwIGxlZ2FjeS10cnVuaworNDE4NjcgMDBkZjA1ZmE4MTYxNGFlNjA5MjFkZjQzMTM5MGIyYmIyYTdhOGNkYSByZWxlYXNlMjQtbWFpbnQKKzQxODY4IDA5ZWQ2YzliZGJkOWEyOTVjNWMyYzhlMDA5M2FjMDc2YWI4ZTFkYjggc3NpemVfdAorNDE4NjkgYzE4NTA0Y2VmMmJhNjVhYzMyNTEzNTIxMzlmNDM5MWY0YjczMWYwZSBzc2l6ZV90Cis0MTg3MCBjM2FkYzc3ZWIyODkxZTIwNGYyYmNlZDdlZjMxNDBmZGUyZmYyNDdmIHNzaXplX3QKKzQxODcxIGY1NDQzYmRmOWIwZGY4YzE5M2ZhYTc2YWNmZjhiNjU0NmExMGZhZjIgc3NpemVfdAorNDE4NzIgMTI0ODRiNjU5ZmE4NjdhODQ0ODMzYTI2Y2VjMjY4ZjQyOTI5M2I5MSBzc2l6ZV90Cis0MTg3MyA0NmZmNWM1ODZkODYzOTcxMGViMzNkMWEzMmI2MjlhNjk4MzYwN2Y1IHNzaXplX3QKKzQxODc0IGEyMjdlZjI2YTE4ZGJkNDJkODkyYjcwNDY1ZDQ4Y2VhOGQwMmM5ZWYgc3NpemVfdAorNDE4NzUgNTBhNDc1MjFiNDBmNDMwZTVlYmVhNDdiOGM5ODNjMjIwYTUxNzZmMiBzc2l6ZV90Cis0MTg3NiBjODhhODMwZDgzMWMxYmYzNzI2MGY0NTEwNTBhOTdlYzZkOGFlM2FiIHNzaXplX3QKKzQxODc3IDI5MjQzNWE3MzJlOGMyNDlmOTFlOWNiZmIzYTMwYjRhZDIzMGM4NTkgbGVnYWN5LXRydW5rCis0MTg3OCBhZGU0NjM3MWYwNGIwNWM5YTBmNjYyMDM5NjMxYTc5YTA0NThkZGQ2IGxlZ2FjeS10cnVuaworNDE4NzkgNmRkNjI1NDJiNmU1ZGJmOGUxZjBkZTM0YzFhM2Y4MzlmNTBlYzViZSBzc2l6ZV90Cis0MTg4MCA4NWIyZDgwNGFjMGFiYzc4OTk0Nzk5NmNmYzU0M2Y5OTM1ZGRjMWQ5IGxlZ2FjeS10cnVuaworNDE4ODEgYjkwODY1NDQzODJlMjIwODIzNWY3NDljZTE3MWU4ZTI4NDQyZjcyOSBsZWdhY3ktdHJ1bmsKKzQxODgyIGYzMjFiZTM0Yjg1ZDVmNTU4NDdlZjNiNTA5OTc3MjhhOWNkODNiYmUgcmVsZWFzZTI0LW1haW50Cis0MTg4MyAwM2EwYjE4YTc1YmY1ZGRjODA0ZGYyOWVmODA0MzViOTQzNTFhNTU0IGxlZ2FjeS10cnVuaworNDE4ODQgYTgxMWViYTMwZmE0ZGYzYWZiNzcwMjgxZWQ4OTFkZTg4ZjE3NmFmZCBsZWdhY3ktdHJ1bmsKKzQxODg1IDliOWNlZDRkNzkyMWY2Y2ExMzVlNDI0MGRkMzhkMTk4M2ZkMTgyYjggbGVnYWN5LXRydW5rCis0MTg4NiAzZjYyZDMxZDU5ODVhYjI4ZDE2ZjAxNjBmYTBiYTg4MTM3NjdjM2M1IGxlZ2FjeS10cnVuaworNDE4ODcgNDMxZDZlODdiOWZlMGJmNGJhNGNlZDlhYjM2NmNlMWVjMDY2OTc0NiBsZWdhY3ktdHJ1bmsKKzQxODg4IGIyNjQ4Y2EyMzFlODAyNTMyZDQwMjYwYWU1MzViOTNkNGJiYzQyY2UgbGVnYWN5LXRydW5rCis0MTg4OSA3OTcwZTAyZmM4NDdiODUxNjBiN2U2ZmVmOWY5NmZkMzkzNmJlMTVkIGxlZ2FjeS10cnVuaworNDE4OTAgYzgyOTc1ZTkxZTk5ODVjOWZkZjUxM2FmNjgyYjQ0MzJlYTk1YzQ2NiBsZWdhY3ktdHJ1bmsKKzQxODkxIGJmN2VlZjUwNzJiNjkxNjkzYjM2MWMyZGZiNzY5MzIyNDBmMjViMzkgcmVsZWFzZTI0LW1haW50Cis0MTg5NCA4MWZhNDdkMmQ0NzdiZDliZjhlNjk0ODE1OWE1OTg1MTg3N2E0ZmU2IGxlZ2FjeS10cnVuaworNDE4OTUgZWU5ODRmZTk4MWI0ZWZiYTllM2IyOTFiMDVkMmE2ZTYyMTNkNzk3OCBsZWdhY3ktdHJ1bmsKKzQxODk2IGY4MGVlMTQyNzI3YTg2MmQyZGVhOWI1NzVjZGRjYzVjZmQzOWU1ZGMgbGVnYWN5LXRydW5rCis0MTg5NyBkZWU5MmVjYjhhMTEzY2YyOGI1MjU5NjQwYmNmMzQxNTJkOGQ0NzYzIGxlZ2FjeS10cnVuaworNDE4OTggYWE0NTY0NDkyNjYwM2IwNGM1MTUyZTc3ZTZmMjQ2Njc4ZDcxNzc5YyBsZWdhY3ktdHJ1bmsKKzQxODk5IDc5ZTcwZmE4YzIxMmZlYzcwMjBlYTJlY2EzMTI1ZTEwNzZiMTczZjggc3NpemVfdAorNDE5MDAgY2VlZmNhY2U2ZjI0OTlkYjUwMTQzNjYyZmRlODZmYjBiYzUyM2FjYSBzc2l6ZV90Cis0MTkwMiA2YzgxNDVmZTQ5NWVkYzkwNThjOGMxNDdlZWExMTk2YzAzYWFkNWVhIHNzaXplX3QKKzQxOTAzIGVmMmQ3YjlmZGU3Y2Y5ZTRkOTVhYzFhMjBmZWMwYWEyOGZhOWNlNGIgc3NpemVfdAorNDE5MDQgNjkxZWU1MjRmMDI3NTRhOWJkZDI3OGIxNTllZWYxNTMyYzg4YTQ5YyBzc2l6ZV90Cis0MTkwNSA3NjU0ZGEzNmZlOWNjYTg2OWUwM2QxYTE2MDUzMDYzZmUzMzY3YThmIHNzaXplX3QKKzQxOTA2IGYwNjEzM2JjYzA1ZTY2N2IwNTM1YzkwOTE3N2QxNmE4NzUyNDQ3MmIgc3NpemVfdAorNDE5MDcgNTJhNzRhMzIzNjgyMDY3N2NlMTEyNzU5ZjMxODQ2NWE3MThmMDk5YyBsZWdhY3ktdHJ1bmsKKzQxOTEwIDYxNDk0ODNmN2EzZDU1NDNjOGM1ZDc3MzAxZGU3ZTU2NjQ4ZjkyMzcgbGVnYWN5LXRydW5rCis0MTkxMiBlY2ZlZDFmNzQ3OGNjZGI4NzkyMTI0MmU5NzkyOGFhZDkxNTUyNDcyIHJlbGVhc2UyNC1tYWludAorNDE5MTMgOTIwOGE3OWY1NjgzY2RiYjQ5NThjOTI3NTk5YzZhNTczMWQ0MmFmOSBsZWdhY3ktdHJ1bmsKKzQxOTE1IDAzNjA4ZDY2ZTU5ZjBjNTQ0MDAxYmZkOGU3ZWI4ZjVjZWJjM2RhZTIgbGVnYWN5LXRydW5rCis0MTkxNiAwYjEwZTg1NWRhZGY2NDgyMGUzNmExZWI2ZWRlMWFhMjBjNmUzZmQ3IHJlbGVhc2UyNC1tYWludAorNDE5MTcgZWE2Y2QxYmU5ODM3YjUyODk1MzRiYzUxN2M2MWQwMTBkNWM4ODg2YSBsZWdhY3ktdHJ1bmsKKzQxOTE4IDI2YmU4YjFkMTg1MzAxN2RjNDg1ZDliZjM1MzkzZjYyYWNmZTQ0ZTcgcmVsZWFzZTI0LW1haW50Cis0MTkxOSA5MmVmNTZjOTdjZGY0MjEwZWQ2M2U2YzRhZTAxMDJhYjdmZWQzZDZhIGxlZ2FjeS10cnVuaworNDE5MjAgYjM0ODIxNjRhMTAwMzgxNDViMThlN2ZmMGYxYmM1ODkzZWU4ZTFhZSBsZWdhY3ktdHJ1bmsKKzQxOTIxIDQ0ZjA3NjBlMjRhMTY5ZWRhYjgzZjQ0NWUyYjc5ZmJjZjcwYWRmNDcgcmVsZWFzZTI0LW1haW50Cis0MTkyMiAzOGIwZmU1MWIwYjRmOTk1ZTVjOWQ1ZmQ0ZTgwYmJjYzcwZGUyOTQ4IHJlbGVhc2UyNC1tYWludAorNDE5MjMgNDRjZmNhNjEzNmM2MzgyYTZlOWFiYmE5MzBiMWNjMTIwOTliMTA3MyBsZWdhY3ktdHJ1bmsKKzQxOTI0IDAzMjkyNGU3NWMyNGJhMDBkYmYxNjFiZjhiYzZiNjY5OWQxYWIzZWIgbGVnYWN5LXRydW5rCis0MTkyNSAwMWNiZWQ1ZTg3MzEwNzBiMTdmMzQ4OGY1ZDUwYzVhYTdjMDI5YThkIGxlZ2FjeS10cnVuaworNDE5MjYgODc5MWU4YzQ0OGIzMWUzMDA3NGMzMTc3ODI3ODkzMDBjMWI1MGI0NyByZWxlYXNlMjQtbWFpbnQKKzQxOTI5IDgyNWEwNDE4MTNmYmVlMDc4YTNiZmYzZjExM2RlZjNhNGVhZTkyNzQgbGVnYWN5LXRydW5rCis0MTkzMCAyMTUzMWUzOTIxMTZhMDYxZmVhMzE4NTU4OWQ0NTZmY2UzYmUxMTcwIGxlZ2FjeS10cnVuaworNDE5MzEgMDNhNTc0MWNmZWE5ZjYwYWJlZjNjY2U3ZmJhYjNmYmFlNzJiOTgyNiBsZWdhY3ktdHJ1bmsKKzQxOTMyIDgzMzY0NzYzYzdiMmM2YTgzOTIxMTI1NTM5YzU5OWI3NTM4MGMzNDEgbGVnYWN5LXRydW5rCis0MTkzMyA2ZDc0M2U1YmFmMTQ3YWU0YjUxYzQyYjkyYmYyNDYwOWJmZjI0MWNmIGxlZ2FjeS10cnVuaworNDE5MzQgY2VlMDU5ODBmMWZkMWM1MjNmMzQyMzcxNjVmZjk4ODQyYTIzYzE5NyBsZWdhY3ktdHJ1bmsKKzQxOTM1IDliODg4NWM5ZTU1MWMzOWNhNDM4OTgwYTcyNDNmMGY2ZDE4NDM2MDMgbGVnYWN5LXRydW5rCis0MTkzNiBjOWRhMDhkNDgyYzM2YWZmYTk5MTY1YjJjZTU0NTdmNDdiZTg2NjBiIGxlZ2FjeS10cnVuaworNDE5MzcgMjQxMDc4ZWU2ZTg3YWU4NjNlM2ViMTE0ZmRlMTVmMzM3ODQ4YzQ1OSByZWxlYXNlMjQtbWFpbnQKKzQxOTM4IDY1ZGYyNTY3NGQxYWVmNzJkMjE3MTY3MjMyNmQ4NDQwMmI5MjA2YTQgcmVsZWFzZTI0LW1haW50Cis0MTkzOSA3N2I0YWFhZDY5MDNlYmI4ZmRlMWNlOTRiNDMxZmYzNDJmNTMzMWIyIGxlZ2FjeS10cnVuaworNDE5NDAgZjcyM2UxOWZhM2I3MWEyMGIyMWZkZTc0MDJmOWViNTg4YmJkYWZmMCBsZWdhY3ktdHJ1bmsKKzQxOTQzIGIxMzljOTk5NjY1ZDk5NzkyNjg5ZmMzYjJjY2VjZTA0YTQyNDUyZDUgc3NpemVfdAorNDE5NDQgMTIyMDU4ZGZiYTc2OGE5M2Q5MmZkYmExOWE4NTljNTk4NzU0MWQzZiByZWxlYXNlMjQtbWFpbnQKKzQxOTQ1IDZlMTc5NjhkNGRlOTJiMTYzMmE4M2ZmODYyNWYzODJmMjQ0MmQyZDcgbGVnYWN5LXRydW5rCis0MTk0NiBhMWIxZTQ1MWQ4MmU4NWU3OTRmYWNmOTJlNzJhZDFiZjMzZjc2OWY3IGxlZ2FjeS10cnVuaworNDE5NDcgNGM4YTc0YTIwMjI3ODM0ODNjOGMyYjczOGE0YzliY2IyMGUzMDRjYiBsZWdhY3ktdHJ1bmsKKzQxOTQ4IGNmNjllMzE5MTIxODI4YjRhNzUyYWJkODFmZmI5YmMzMjVjNmFiMDEgbGVnYWN5LXRydW5rCis0MTk0OSAxNjg1ZGNkMmY5Mjk5M2NmNTFlNWUzM2M5ZWZjMDI0M2ZmNzNhZTZkIGxlZ2FjeS10cnVuaworNDE5NTAgNTZhZDlmMjc1YmVjMTkzZDI5NjNjMGJhMjI1NmEwYTU4MzI2NzY4MCBsZWdhY3ktdHJ1bmsKKzQxOTUxIGJiNmZhNGEzMWYxNTI5NzYwMzllM2I2N2UxYTM4N2FjMDg2ZGI2MWUgbGVnYWN5LXRydW5rCis0MTk1MiAwMjZhZTFiOGE3ZTNiYTA1ZTE0Y2FiMTBlMGYxZmY2YmNhMTNiZGI5IGxlZ2FjeS10cnVuaworNDE5NTMgZTdjOTZjMWQxNDRiYTc0Mjg1NDM4ZTEzNzYxY2U1ZWU4MGQyYTZmNCBsZWdhY3ktdHJ1bmsKKzQxOTU0IGU4ZGVjNzhjZmEyZTNlNmY0ZjMyOGNmMTJjNGY3NzRkZGM0ZWYxN2EgbGVnYWN5LXRydW5rCis0MTk1NSBkZWQ0YTQ5N2ViNzZmYjg3YmRlYzgyZWM5MmI5OWE1MWQ4ZmM1NGIwIGxlZ2FjeS10cnVuaworNDE5NTYgZDNmNGM0NjdlNDM5YTI1Nzg1M2VlNWUyODk4MjlkYTA5MjNlMzE4MiBsZWdhY3ktdHJ1bmsKKzQxOTU3IGE3N2U1YjA0NmE1MDg3NjMzOGU4YzE3N2VlN2ZkMGFhMzJmZDU5ZTMgbGVnYWN5LXRydW5rCis0MTk1OCBiOWRkNDgxYjM5NzJkZDY0MDEzYjVjYjZjYzllZWFjMWNlODQ5Njk1IGxlZ2FjeS10cnVuaworNDE5NTkgZTk0ZWU1OWEyZDQ2MWQ5NTA0YWM3ZmU5MTFjM2VlYjkyNzM3Y2U5YSBsZWdhY3ktdHJ1bmsKKzQxOTYwIDlmNjZiZGQ1YTA2MTIzOTI0MWM4N2YwNWY2MzljYTgyZWUxYzY1NWIgbGVnYWN5LXRydW5rCis0MTk2MSBlY2Q0MjM3MThhMzI3ZGY1NmQ5OTYzYjhmM2U4YzE2NWM3NWYyOGVlIGxlZ2FjeS10cnVuaworNDE5NjIgOGFiNzhmYjRkMTdlZDRhYzE5ZTZkN2U5NTg1OWMxZjMwMDg0YmU1OSBsZWdhY3ktdHJ1bmsKKzQxOTYzIDBmOGM1NTQ2ZDNiZjQ0Yjc1NGYzZTBmZDhhZDAyNzRkZDllMGZkYzIgbGVnYWN5LXRydW5rCis0MTk2NCA5MmUyNDY4YmRiNGE2YTQwMzE3Y2RlYmUzOGU1NzM3ODY4OWQ0ZGZhIGxlZ2FjeS10cnVuaworNDE5NjUgMDBiZGMwOGE1MDdkZWM5ZGEwYzZkZTYzYTExNGNjNGYzNWZlNjNjNyBzc2l6ZV90Cis0MTk2NiBhZjdkNDg0MjA4ZTkyNzFhNGNiYWJlNDU4MjVlNjYzYjc5NjYxZTU3IGxlZ2FjeS10cnVuaworNDE5NjcgZDIyMjRjOGQ0NTQ5MjYyNTQ5M2M5NjI3YTkyY2Y4YzA1MTc2ZDllMiBzc2l6ZV90Cis0MTk2OCA1NTdlOWI2ZWU3ZTExZTZmN2VhNWVhMDQyN2JmYjA0N2IwZTU0NzRlIGxlZ2FjeS10cnVuaworNDE5NjkgMGY1MTg5NjA3MjY0MGFlMTE2NzkyYjE0NjBmZmNiYjNkOTFjN2VmZiBsZWdhY3ktdHJ1bmsKKzQxOTcwIDYwYTVhMWFhMTY4MmI2NzBlMjNlN2ZkZDA5YmJkOTNjMzFlZDY2NTkgc3NpemVfdAorNDE5NzEgYTlhYmRiMTRjZjNiNzhhNDdhOWViYzM0Y2ViNmJhMWMxZmJjN2U1MiBzc2l6ZV90Cis0MTk3MiBhMjY0MzI1M2FjNzk2Mjk0YjNjNjhkOTE5ZDk0ZThmZjZmMTQxZmMzIHNzaXplX3QKKzQxOTczIDA5NjhmMDYyZjM1MDY5ODhiODg2YTRmOWMxYjUyZTRjMjY3ZjFlMzAgbGVnYWN5LXRydW5rCis0MTk3NCBlNzg4MGY0ZjUzYTQwZDMxM2M3YTA0N2Q1MDQyNTIzMzYyMjRhOGI5IGxlZ2FjeS10cnVuaworNDE5NzUgZDNlNjhjYjczOWZiMjU3NWZhNTlhNGNkNDhiMzhlMTVhMWFmNTIxNyBsZWdhY3ktdHJ1bmsKKzQxOTc2IDU5MWRmNTRkMmQzMGYxNGUwNjEyNDVjNjc5ODU0YTQ1Mjg4MGVkYTkgcmVsZWFzZTI0LW1haW50Cis0MTk3NyAzYmE5ZmY3OWJiMjliOTQ3ZWI5N2U4Zjk5MzUwOTFkODUzZDE2ZmU1IGxlZ2FjeS10cnVuaworNDE5NzggODExZDY0NGQxOTE3Njc3MTA1NDc2MWEyN2RmYWU4MTUwZDcxNmJkMCBsZWdhY3ktdHJ1bmsKKzQxOTc5IDRhYzliOGZjZDYzZWE4ZDg1MzEyNjk5NDQ5MzU0ZTJkZWQ3YWQ1OWEgbGVnYWN5LXRydW5rCis0MTk4MSBmMDllNjA5MWE3NjI5ZWVmZmI3NjE2NWIwNzk4YjMwZTNkMjMyMzE0IGxlZ2FjeS10cnVuaworNDE5ODIgOGRmMTk0Mjk0YzkwZGM0YTExZGY5MGJiNWQyZWUzMjI1OTU4NWI0ZiBsZWdhY3ktdHJ1bmsKKzQxOTgzIGQ0MzRiM2M3MzkwMTYwZjM1MjIwOTQzZDVjNDNlZDg2ZGVhY2U4YmEgcmVsZWFzZTI0LW1haW50Cis0MTk4NCAyN2JkYzFlMjdlZWRiN2VjNDU5YmNiOWUzYjA0MzRjOGVmZDZlYjlmIGxlZ2FjeS10cnVuaworNDE5ODUgYzNiNDJiN2JkNmQ5ZGFhZGM0YTk3Njg2ZmViZDg0N2VjYmQ4MDY0ZiByZWxlYXNlMjQtbWFpbnQKKzQxOTg2IDNjMTU5NzZmZjYxODcyYjViOTAyYmMyYmQzZWJlZGFhMDZhMjM4NjQgbGVnYWN5LXRydW5rCis0MTk4NyA2Y2Y3ZDA0ZGNjMWY1N2U2NzMzN2QxNjA5ZWY3ZTZlNTQxMGNlZmJmIGxlZ2FjeS10cnVuaworNDE5ODggMDljMjFhNmJlNjA0MTg0NzhjN2JjOTlkZmMxNWM2MzAzNDE1YjI5OCBsZWdhY3ktdHJ1bmsKKzQxOTg5IDlmNmVkYzg3NDU0MWNkMjljMjQ0MmU0OTExNDBiOWI2MGVhOTZiYzMgbGVnYWN5LXRydW5rCis0MTk5MCAyNmU3OGIxOTZjMTcyNzhhODYwOWYzZWVhMDZmMDgyMzI4NjRkYmVjIGxlZ2FjeS10cnVuaworNDE5OTEgY2FkNTkxZDkyMWVjYjAyZDQwMWRkOTMzOTM0NzYyYjQ3OWYwMzgxYyBsZWdhY3ktdHJ1bmsKKzQxOTk2IDMwM2RlYTg0NzYzOTA0ZmI4NTRjY2M4YjhlNmY3NzE0ZTFmNWFiZDUgbGVnYWN5LXRydW5rCis0MTk5NyA3NmExYzIwZTgzMGU1NWMwMjFhMjVkMzdiOGZhOGFhMDMyMDRiY2Y0IHJlbGVhc2UyNC1tYWludAorNDE5OTggM2MwMzBlZGZmOTg1YTZiYzk5OWJmM2Y3MmM3NzZhYTMyNmI3M2FkYSBsZWdhY3ktdHJ1bmsKKzQxOTk5IDlkZjM5Yzk2MGJmMWM2ODBiYjM0ZjE3ZmNmYmVlNjAzYmU5OGY2YmUgcmVsZWFzZTI0LW1haW50Cis0MjAwMCA3OTBmOGQ5ZTQ5ODg5ODExNjgwMmE3MmZlNzUwNGZiZjJiMDFmOTJkIGxlZ2FjeS10cnVuaworNDIwMDMgNDFlZjI5MTBkZDQ5OGIwZjg0ZThmNGNiYTNhODFlM2RkM2E1NTg5OCBsZWdhY3ktdHJ1bmsKKzQyMDA0IDM1ZGY2ZGQ4MDkxMTBjN2I0ZWRhMzIxZmI3N2M4N2JhYmFlMWIzMmEgbGVnYWN5LXRydW5rCis0MjAwNyAwZDUzMzUzODdiYTczMmM4NGRmOGU1OWExNjMyYzUxZmNmOWY4ODc0IGxlZ2FjeS10cnVuaworNDIwMDggNDc1YjY0NWUxMmY1ZWMwNThjMzI4MGJmNDAyNTg2YWQ1NGM2ZTEzYSByZWxlYXNlMjQtbWFpbnQKKzQyMDA5IDg3NDdiZjRiOTU0MjJjYjIzY2YwNTUxMjE1MWM4MjI0ZGYzMzhiODQgbGVnYWN5LXRydW5rCis0MjAxMCAyMWUxNzhiOTMwMzBkMWJmYTJiYWM2M2M5ZGMwYjA3NGFjMjM1YTQ1IGxlZ2FjeS10cnVuaworNDIwMTEgODRiYTI5OWUyYjVmZWY0MTFiMGE3MWZiODE2ZWQ1NDcyNjA2Y2MzZiBsZWdhY3ktdHJ1bmsKKzQyMDEyIGQwMTA0MzY0ZjZkMWM4NDA4Mjc3MTg0ZWJiZGIwYTMyYjIzZTk1MGQgbGVnYWN5LXRydW5rCis0MjAxOSA1ZDgxNjkyOGEyMjQ1ZTE3NDUzMWVkNzNkYWM3MDY1NjA1ZWNlODRiIGxlZ2FjeS10cnVuaworNDIwMjAgZTFmZDdiZDI4OTViMDdkNDhmZmUzYWY5MDRhMGQ2NTkxMTZlMzBlNiByZWxlYXNlMjQtbWFpbnQKKzQyMDIxIDE5MmU4Mzg5NGU4OThjYWM0MDM2NDg1ZGMwNmQ3ODEzZGFlNzQxMmMgc3NpemVfdAorNDIwMjIgOGI4ZjFhNTE0NjhhZDI0ODExMmE2NWQ0Y2ZmN2Q5NjUwNGMwZDNiNyBzc2l6ZV90Cis0MjAyMyAwZmU3NWEwNDZjMDA1NDgwZjI0YjA5YjViNGFkNGU2MTdlYjkwZGI1IHNzaXplX3QKKzQyMDI0IDRmOTUwN2JlNTg1NzliNDJjZDI5NjcwYTU2YjFjNTA3OTNiNDgwNjQgc3NpemVfdAorNDIwMjUgNjYyYzYzOTU0ZGYyOTRiNzQ4NDQwMDE2NjhlZDZkNDdmNGQ1OTRkYSBzc2l6ZV90Cis0MjAyNiBmZDFiMTJkM2FiYjY5YzM5YWZjODkxYzdiMzE4MTE0ODhlZTZkOTg1IGxlZ2FjeS10cnVuaworNDIwMjggNTI3Nzc3MGJjOWQxYmE2YWJiN2I0ODBhMDViNDQ0OWIwYTE1N2I5MCBsZWdhY3ktdHJ1bmsKKzQyMDI5IGFiMTMwZDU2NjkzMTllOGVhODNlNmQwYzc1ZTAwZjBkMGZmOTVlNzYgcmVsZWFzZTI0LW1haW50Cis0MjAzMCA1ZTJhNThjODY3ZjcyYzM3MWJmYmJjYjVmNjZiNDkwNjAyOWJkNWRhIGxlZ2FjeS10cnVuaworNDIwMzEgZGEwOTk1Y2ExZjMwN2U3ODdjMjRmODFjYzA5ZDY2NTExZmI2MmVhZSByZWxlYXNlMjQtbWFpbnQKKzQyMDQxIDc4YTY5NzU5NTQ3ZWJlODAxM2ZlZDAwZTkzZmY2ZTkxNzc0NmQ1NjYgcmVsZWFzZTI0LW1haW50Cis0MjA0MiAyMWQzMGY4ZTQxZmZkZTY3OGNjNDQwZTIyYTlhMWI5ZGJhOTA0ZTM1IHJlbGVhc2UyNC1tYWludAorNDIwNDMgZTYwOWZlYTkyZDFlMThhNWZlZTFmYWVlYjA0Y2FhOTQxNDM3YjNmZSBsZWdhY3ktdHJ1bmsKKzQyMDQ0IDBiMjMxYzA1YTdlZGFjMTY2ZDQ3YjQyN2M5YjBkYTEwM2M2ZTMyYTkgbGVnYWN5LXRydW5rCis0MjA0NSA4Njk3Nzc2YmI0MjAzN2MyMzI1MzE1ODQ3ZGI1ZDdlY2QyNWUxYjI3IGxlZ2FjeS10cnVuaworNDIwNDYgYWU0NDgwOTM1MDE2MGU1ODMzMjkxNjY1MzJhOGVlMWVhN2NkYTljMiBsZWdhY3ktdHJ1bmsKKzQyMDQ4IGMxMjgwMDAyMTM5Njk5MzFkNWRhMTRkZjVlNzI0ODA1M2ZkMjkzYWMgbGVnYWN5LXRydW5rCis0MjA0OSBjOWVhNTU3MGRhYzdlNmMxZjRjMGY5NDE5ZmExZWI4ZWViMmQwZWZmIGxlZ2FjeS10cnVuaworNDIwNTIgN2NhNTFjYjcwYzJlMjRkYTYyOWY5OWYyMzhiZTAyYjNhZDYyYzM4MCBsZWdhY3ktdHJ1bmsKKzQyMDUzIGI5NGVlOTJhNmQ2YjVlYjU5ZTg0YzhlNDk5NDhlYjNmYzZlZTA0OTMgbGVnYWN5LXRydW5rCis0MjA1NCAwN2ZiZDM0ZjFmNmVkMTMxYWZjYjQ2ZTQ2ZjJjZjMxNzM4ZmY5M2E3IHJlbGVhc2UyNC1tYWludAorNDIwNTUgZWYxZDhkNmFjNmJlZmI2ZTQ4N2FlNDE5MGYxN2UzMjYzNTM3MTIyOCBsZWdhY3ktdHJ1bmsKKzQyMDU2IGVmM2I0MzU3OGE1ZmZhNzcxNDM3M2I1ZjBlOWEyZTljZjcxOGVkNGIgbGVnYWN5LXRydW5rCis0MjA1NyBhMjEyNTNmYjA4Yzk3MmQwMDYxYTI0NWI3MWFiMWJjNWE3NzFhZTY0IGxlZ2FjeS10cnVuaworNDIwNTggZTcwMzNkZmZkNjBjYWU4MzQ5NTYxNzY3YzMwZGZlMzIzZTA3ZTBlMSBsZWdhY3ktdHJ1bmsKKzQyMDU5IGM3Y2ZlYTFlYmIzMjM0MTllMjlhZmRjYjFkZWQ3NWRiNWIyYzRlY2MgbGVnYWN5LXRydW5rCis0MjA2MCA2ZDJiZTNiNzZmMmUyODM2NTczNDU3NGRjYzYzYWZjY2JjMWVkNGUwIGxlZ2FjeS10cnVuaworNDIwNjIgOWVlYWEzM2Y5NjQwNjMzYzYxNjI4YmQ3YWRmNTk5NmU1MGM2Y2NjNCBsZWdhY3ktdHJ1bmsKKzQyMDYzIGIwZDdkMjhjZDc0NjFmMmYxYzM0ZDM1NjkwYzEyOGRmYWUwM2Q4YzkgbGVnYWN5LXRydW5rCis0MjA2NCAzODhlYmM2ZTNkZTExNzk3MzMxNTA3ZDIyOTJiOGFiMTExNjRlMTNiIGxlZ2FjeS10cnVuaworNDIwNjUgZThmYzYwYzRmYWFkN2UzYTc3ZTJmODY5ZmFmMzgwMmYzZTZlNDFlYiByZWxlYXNlMjQtbWFpbnQKKzQyMDY2IDQwNWFiMGRjOWNiYzM5MTNmODg0OWU5MDMxNTI1MWViYzBmYmRlYTIgbGVnYWN5LXRydW5rCis0MjA2NyA0M2IxNmVlZmYyMjZiMmVlZGNjZDQzNTAyOTJjNmRmZTFhYzgyMWE2IHJlbGVhc2UyNC1tYWludAorNDIwNjggMmFmYmFhZTZiODhlMGJhY2QyZjAyN2RmOTA3NGFmM2MzZTBjZjRkNCBsZWdhY3ktdHJ1bmsKKzQyMDY5IDJjODYzMGI2YmMzNTk5NThiMmEwN2U2NTdmM2M4YzU0NjQ1MDBkMWUgbGVnYWN5LXRydW5rCis0MjA3MCAwMjk0ZTY2NjI3NDlhZDRjNTNlZWFhOWZmN2ZhMDRkNGRkYTI2OTJjIHJlbGVhc2UyNC1tYWludAorNDIwNzIgYmVjZWI4ZTY2YjBiYTA0YWQwZDMwOWMxNGJkNjg5NzYzZTM0ZWVlNiBsZWdhY3ktdHJ1bmsKKzQyMDczIDJmN2I1NDAyMmIzYjFlZTNjNmNkNDNkN2E4YTUzYTA1NDkyNjAwYWUgbGVnYWN5LXRydW5rCis0MjA3NCA0ZGJhNjFlNDkwMzdmZWJjOTA4Njc1NWViNjRmMmQ1NzlkNjAyZTNkIGxlZ2FjeS10cnVuaworNDIwNzUgMjBmMjFkYzczOTZmMjNkZTljN2YwYjEwOTI3Y2I3NzYzYTc2NzYzOSByZWxlYXNlMjMtbWFpbnQKKzQyMDc2IDM3MDljZTM3ZmUxYzRmMWVkNmExZGFjNTNmNjUxNzI4ZjNmNGM5OGUgbGVnYWN5LXRydW5rCis0MjA3NyA2NWZlOWFjZWQwMDJiYzhhNTBjNjkxZGQ4Zjk5YmE2NDU4NmFkMGM3IHJlbGVhc2UyNC1tYWludAorNDIwNzggYmMxODNiNWY4YmMxOWRlZmU3MWZlM2E4NGFhOTVkNDhjNWI1Y2NiNyByZWxlYXNlMjMtbWFpbnQKKzQyMDc5IGUzNjQ4YmE5MThlZTQwMDgwNWVjZDNmNDZkNjM5MjllMzQxOTRmNjUgbGVnYWN5LXRydW5rCis0MjA4MCAyYWU0MTZhYWNiODg3NzU3ZGQ5NGU5NTc3MzZhZjYyMDhlNjRmNzg0IGxlZ2FjeS10cnVuaworNDIwODEgN2JiNjRhY2VhZGQ3YzhjNjkzY2YzYjE5NDkyOWFiMjVjNWZlYjQyYSByZWxlYXNlMjQtbWFpbnQKKzQyMDgyIGM0YzkzYmRlMTg1YzdmZjQ0NTFiMDI4MTA4MmU4ZDBiMTBiYzQ1MmUgcmVsZWFzZTI0LW1haW50Cis0MjA4MyAxZWY1MDYzYTBjNmQ5NTRlZjNmZWMyOGVmMWQ1N2FmZWNiZGQ3NmUyIGxlZ2FjeS10cnVuaworNDIwODQgZjYyZDdkMmM1MGRlZWQzNGY4YjZlNDMwNTVkNGYxNTExYWUwNDUwOCByZWxlYXNlMjQtbWFpbnQKKzQyMDg1IDQ5NjZhMzYxZjkzNjQyNDY1ZmJkN2RhMmNlNThiMWZiZWJiMmJmMWYgc3NpemVfdAorNDIwODkgODViNWEyY2RiYWMxMDdiZmYxNzQwNWY0NzI4ZjgyMmEzNmM4OGY0NSBsZWdhY3ktdHJ1bmsKKzQyMDkwIGFlMDdiMGU3ZDcwYTg5YTA3N2MwNDUwMDM5NTZhYWQ3NDI4YTZhY2MgbGVnYWN5LXRydW5rCis0MjA5MSBjNTgzMjE0ZDRjNTEwOTRjOGE0NmQ5N2Q5YzFjODQxNWMyNWVkMzRjIGxlZ2FjeS10cnVuaworNDIwOTIgZDc5ZjA0MzI4NGJkNTA2ZmNhOGYwYzNjN2ZlNjQ5YWZiYjM3ZTEwMSBsZWdhY3ktdHJ1bmsKKzQyMDkzIDFhZjdmNzE5ZWQyOGYyNzc3NWIxYWFjOTlhODU4ZDAxOGFhYjIyNzkgbGVnYWN5LXRydW5rCis0MjA5NCAzZWYxMzgwZmQ4M2MyZWI1Nzc5MmZhMGRkYzFmMTFjY2EyYjlmYTIyIGxlZ2FjeS10cnVuaworNDIwOTUgMmUxNTFiYzgyMGY3MTg0MDk4ZTFhN2ZmOTczOTRhY2NkZDcyZmY0YiBsZWdhY3ktdHJ1bmsKKzQyMDk2IDIxMmJjMjM2MzJhYjVkNDc0OTNjZDE1ZmRhMzEyYTliOWYzMWViYTYgbGVnYWN5LXRydW5rCis0MjA5NyAyZDNhMWMzYzkzMDU2OTEzYjJiYzYwZmYzNWIyMjJjZTg4ZGFiMGY4IGxlZ2FjeS10cnVuaworNDIwOTggNjg3NGYyNjkzZWI4YTBlZWY5ZDY4Y2VjZWJlMTM4YTk5MTZjZDk1NiBsZWdhY3ktdHJ1bmsKKzQyMDk5IGE1MzAxNzYxODU4NjVlZjllYmIwNDIyOWYxZjEyYzYxMDBmNjdkZDIgcmVsZWFzZTI0LW1haW50Cis0MjEwMCBiNTg3NjEwZTIwNjlhNGQ5YzRiNjc5YWU5NGViNGNlNzU0MWMxNzMxIGxlZ2FjeS10cnVuaworNDIxMDEgMWQ3NjQ2MzhhYmRkODAzMTc2YTA1YzEzMjM3YjU0YWNhZTVhYTMyOSByZWxlYXNlMjQtbWFpbnQKKzQyMTAyIGVhNmE0NmQ4YzUxZWMwYWJjOTRmMmJmZTRmYTJjNTQyY2JkN2ZhMDIgbGVnYWN5LXRydW5rCis0MjEwMyA5OGZhYWMxZGY1YmJlZGY1ZWIwZmY1ZjI3MDQxNTQxOTQ2OTg1NGQ0IHJlbGVhc2UyNC1tYWludAorNDIxMDQgMDcwYmI0MjFhMzAzYmNlMjAwMjczNDE5YjBmMTJhODI0ZGFiOWI1YSBsZWdhY3ktdHJ1bmsKKzQyMTA1IDkyOGRlNGEzYmU2ZjU0OWExMGI4MDRjNjgzOWM2ODk1YjAyMWM1OGEgcmVsZWFzZTI0LW1haW50Cis0MjEwNiA1ZThhZjI0MjM1NzUwNjM0MWI3MjIzZDg5NmVkM2Y5NGU0NmE2YTc0IGxlZ2FjeS10cnVuaworNDIxMDcgZmRhOTEyZmU4YjlhZGM0MDc4YjE2ZDJhN2ZiNmJhZTczODU2ODQyOSByZWxlYXNlMjQtbWFpbnQKKzQyMTA4IDc2YWJhM2ZhNGUyZjgxN2I1ZTUzMWYzMzk3ZGQ4ZGQxNTAxMTM5YWUgbGVnYWN5LXRydW5rCis0MjEwOSAxN2YwOTk0NzllNmI3M2RjZWU1ZDY3MjU2MGM3ZTcyYjk4NzgyODUxIHJlbGVhc2UyNC1tYWludAorNDIxMTAgNGJjZjVmZTU0ZDgzNDBhYWQ3NGNlM2IyNWNjNjAzZGIyYzQyYjlkOSBsZWdhY3ktdHJ1bmsKKzQyMTExIDllYWUzMmJkZjgwMWI2NzAxYmM3YjlmOGU5ZDhkMjMwMzUwOTlmY2MgcmVsZWFzZTI0LW1haW50Cis0MjExMiBhYTdhYzkwODdhMWMzMDYzMmFiZmQ3OTUwMjA4NjQ3NTAxYWI2NzFlIGxlZ2FjeS10cnVuaworNDIxMTMgYzJiMTQ5NzMxMGQxMDE1OWJjM2M1MzQ4NWVhNzBhOTRjYTFlMTM1MyByZWxlYXNlMjQtbWFpbnQKKzQyMTE0IGFlZDMyY2UzNWI4MmRmZmFkN2U1YjI5Y2E2YmIyZTEzM2E4MDZkY2MgbGVnYWN5LXRydW5rCis0MjExNSBkNDhmNGE0YTMwNmY1OTNlZjBhMTE0ZGMxNWMzNjBlMTcwMDVlNTEzIGxlZ2FjeS10cnVuaworNDIxMTYgNTgyNTFjOTkwNGUxODkyNzA0NDZlNjMzNWVhMzBiMjU1ZGE3YTc5NCByZWxlYXNlMjQtbWFpbnQKKzQyMTE3IGViNGE0N2I4MTk0MjRjY2YzNjk4MTFjZDZiMzIyYWE4MGE2YjdkNTAgbGVnYWN5LXRydW5rCis0MjExOCBiMGE5YThkMTRhYjIyMjQ0YzBhYjA0YTNjNTMwOGVhMmJiMGZmODEzIGxlZ2FjeS10cnVuaworNDIxMTkgMzE1ZjQ0MDdhYjEyZDU3N2UwMDdlOGE3YzczYzZhNzBiYjgyNGE1NiBsZWdhY3ktdHJ1bmsKKzQyMTIwIGY4ZmNjYWU2YTBmNWRjODI4N2YwNmVhNzc2NTJhYzRlMGIyZGJiYjUgbGVnYWN5LXRydW5rCis0MjEyMSA2ZTEyNzA3MzcxYTEzMGVlZDQyZGIxMjAyMDBlOGU2ZjZlNjEyODVkIGxlZ2FjeS10cnVuaworNDIxMjIgMThhMmQ3NWEzYzY5NjQ0ZjcxM2MyNTU5YmMzZTk5NTg3ZjViMTFiZSByZWxlYXNlMjQtbWFpbnQKKzQyMTIzIDNhOTJlNTY1NDc0ODVhZDg4ZGZkNmI4ZGNiMWU0YWM3NWE5MDRhYTMgcmVsZWFzZTI0LW1haW50Cis0MjEyNCBiYTE2MDQ2NGE4YzZjMTljYTEzMzk4ZGNmZTZjZTljNzhiMDVjMGZjIHJlbGVhc2UyNC1tYWludAorNDIxMjUgMDRhOTZjYzg4NTgzZWMzYzIxZjkwZjNhZjRjN2QxZDMwZmIzMWUxNyBsZWdhY3ktdHJ1bmsKKzQyMTI2IDI0NDU2MzM4MDI2YzA0ZjJkNWRmODIwM2FjZWQ1MjQ1ODllOWYyZDcgcmVsZWFzZTI0LW1haW50Cis0MjEyNyAxZThmNDY3M2U0NDc0NzNiYWM0YzRlMTQxZDlmNjY4MjZjZDY3YWI0IGxlZ2FjeS10cnVuaworNDIxMjggYjA1YzRjYTg1OTQzNGRiNzYxZmYzY2Y1MDEwYzlkN2VlODk3MmQwZSByZWxlYXNlMjQtbWFpbnQKKzQyMTI5IDQ3NDZmYWIzNDAxMjQ0ZmZiZjRiZjhjYzZjYmIzNzRmZDQ2MDk1YWIgbGVnYWN5LXRydW5rCis0MjEzMCBhYzAyZjY1NWIzMWUzODA4ZTJmYWE3N2I5ZmVkYzUyYmRhYTc3MjE4IHJlbGVhc2UyNC1tYWludAorNDIxMzEgY2E2YzgwMGFkNWEwMmMxMTliYjBjM2EzOWRkNzBhZWY2Y2ExM2I2NSBsZWdhY3ktdHJ1bmsKKzQyMTMyIDZmY2I1NDA1MDc0ZTdhNWU1ODQ5ZGJmNGEwZjM3ZjdlNzYzNzIzMmIgbGVnYWN5LXRydW5rCis0MjEzMyA5Nzg4NWFkZjczYjU0NzFhYzdkYTNhNDMyZjNkZjgxZDAyY2NmN2FhIGxlZ2FjeS10cnVuaworNDIxMzQgNzg3MDJhNTAyOGE0MWY4NWFiODBmNGVjNzBjMWQ1ZjgxYTUwMmQ0MCBsZWdhY3ktdHJ1bmsKKzQyMTM2IDlmN2NlMjg0NmMzMDk1OWM1NDVkOTExNDZmODE3NDk1NTNhOTMzZDggbGVnYWN5LXRydW5rCis0MjEzNyA2MWI4ZTNlM2Q2NDE4M2FjYzI4MDY0NGViNjQ5OTFjNjRiZDRiOWM0IGxlZ2FjeS10cnVuaworNDIxMzggMjgwNjUwNzkyZWY3MmI3Y2VlOGI5Mzg5ODNiMWFmMDc0YWUwM2I4NCByZWxlYXNlMjQtbWFpbnQKKzQyMTM5IGY5NDk5MWQ1ZGQyMDY5Y2JkYWJmZjlkNDg1OWFmMDVkYjQzNDQ2ZmMgcmVsZWFzZTI0LW1haW50Cis0MjE0MCBmZGYxYmU5Y2ZlZGYyYjMwMTk2MDMyZDkzMzNmOWE1NzRmMzM2OTczIGxlZ2FjeS10cnVuaworNDIxNDEgMDBlZTIxNzE1MzdmNzVkZTdhNzA5NThmYjc5ODU0N2U0ZDk0NTM2NiByZWxlYXNlMjQtbWFpbnQKKzQyMTQyIGYwMTU0M2UxNWY4NWE0OTkxZTMyMDExZDFhMmI1YTEzZTQxYzE2NWUgbGVnYWN5LXRydW5rCis0MjE0MyA0MzE1YzUzZjUxYmNhNjA0MjlkYTU2ZGIzZTViMzE2MzdkMDY0YTQ5IHJlbGVhc2UyNC1tYWludAorNDIxNDQgNGQyYTA5YTY0ODVkM2U5Yzk4Y2I5YTFhNmY2NTk3NWYxMzEyODJkMyBsZWdhY3ktdHJ1bmsKKzQyMTQ1IDNiNjNiYzkwNGQ5MmU3YjViNTI1MDQzZTA2NjE5MmQ3MGRkOTAwNTAgcmVsZWFzZTI0LW1haW50Cis0MjE0NiA0ZjExYjIzZTM2MWY0NTRkOWU5YTllYjc3YTk0ZTRhNjY0OTg0OGZiIGxlZ2FjeS10cnVuaworNDIxNDcgNDQ2Y2I1ZmMzZDI4MGJmN2ZjNDZmMmQ2ZGFkMmM4MTI2MDI5ODVjOCByZWxlYXNlMjQtbWFpbnQKKzQyMTQ5IGExN2I3MzgyNmY5NzgzYTgwMTY4ZTU0NzhlN2IzNGM0NDUwZDg3ZjIgbGVnYWN5LXRydW5rCis0MjE1MCBjODNjMDIyYTM0OTFlYjE2ZmUxYWZmNWE3OGU0MWVjZTY5NzMzZGMwIHJlbGVhc2UyNC1tYWludAorNDIxNTEgODE0MGYwMDBlOWQ0NTllZjM0ZjMyOWQzNWI1OWYwY2MyYzBjZWMxYSBsZWdhY3ktdHJ1bmsKKzQyMTUyIDYwNGZlODdhZDQ3YzdjMGMxOTI0ZWIzOWY5ZGFhN2NhODU4MmUwZTcgbGVnYWN5LXRydW5rCis0MjE1MyA5OWQ0OTFmYWE2NWMyYjlkZjdlMTQ4ODA5NzFhNmQxMTA2NTJiY2YxIGxlZ2FjeS10cnVuaworNDIxNTQgN2IzZDkxNWI2ZTlkMDAxMjNlOGZjN2U1Y2Y4YWQ0NzJhMjY0ZmI2YSBsZWdhY3ktdHJ1bmsKKzQyMTU1IDRmOTBjN2MwNTM2NGY0MjRiNjNkNjJkNGQxMmIxM2ZjZDI3MTY4MmMgbGVnYWN5LXRydW5rCis0MjE1OCA4MzhiNWY1OTI0ZWUxNzE0MTQ2N2U5MTg4MTVhM2Q1M2UwZGUzODEzIGxlZ2FjeS10cnVuaworNDIxNTkgM2I0YjQ0NTRmZTg2NjRiYzRiZWFmMTVjYzhlMWMxOTczZTgzMDYzYiBsZWdhY3ktdHJ1bmsKKzQyMTYwIDVlZTQ2YmJlZDFmOWZlMDQ2OWUxNmUyZGQ0NDNmNGNkNjVlNjE5MDggbGVnYWN5LXRydW5rCis0MjE2MSA1YzQ4N2NiNjMyOTUwNzhkYjNmMzM5ZWFlM2M2NzBlNmI2ZDgyN2E2IGxlZ2FjeS10cnVuaworNDIxNjIgN2YwNTk3NGM4YjgwMzE3ZjI4NzA2OTIxOGUyMDAwZTEwYTdjNTBjOSBsZWdhY3ktdHJ1bmsKKzQyMTYzIDAwMDZhZTEwYjdmMGM5MmM5MWEzZTA5MDI3NGMyYThmYTQwMjUwMzkgcmVsZWFzZTI0LW1haW50Cis0MjE2NCA3OGJkNzhhMWNlNzRiNDYxZjI1OGI1NmI1NTRiNWZiZmUwN2NiNzE2IGxlZ2FjeS10cnVuaworNDIxNjUgMjAxMmM1NDhjZTY5OGNiZjQwYmI5ZTQ1YzZhODM4MTBhZDBhNzE5YyByZWxlYXNlMjQtbWFpbnQKKzQyMTY2IDMxMTRlYjA2MGQwYWVkMmVhNzg2NWUyZjNiNDJkMThlYTk5OGZlNjMgbGVnYWN5LXRydW5rCis0MjE2NyA3NGE1OTg5NjRjOTYyOGQwYTQ3ZjljZGRlNGE4ZTQ0MmI2NTJhODE2IGxlZ2FjeS10cnVuaworNDIxNjggYTI5Y2MyM2JiODljNGM1Zjc3YmVlMjBjMzA5NGI5ODc1NmVjZTM4ZiByZWxlYXNlMjQtbWFpbnQKKzQyMTY5IDAzNzJlMjVlNDMwZWNjNTcyZjJmOGE5MmY2OWU4MWI4NWE0MjI4NWMgbGVnYWN5LXRydW5rCis0MjE3MCBhNTBmNTYzNWE0OTQ5Yzk1NmZlN2NmYjBhYjEyZjc4NmI0MmMwMjNhIHJlbGVhc2UyNC1tYWludAorNDIxNzEgZDY4ZjczZjk2ZjMxZjcyZTM0NDM5YzVmYmY0ZjhiOTU5NzZmZmQ0NiBsZWdhY3ktdHJ1bmsKKzQyMTcyIDZhYjgyYzQ3MDYzMzhmMWU0NjViMmI1YTFiYjk4MGYyZmI1NDU0NjQgbGVnYWN5LXRydW5rCis0MjE3MyAwNTVmY2RjNjUyZGQ0MzU2Y2ZhOGM0ODUwZmM3NmIwYzRkMDI5MmUzIGxlZ2FjeS10cnVuaworNDIxNzQgMWI5ZWI5NjMyYzg5YjhhMDk0YjMxYmEwNzE5ZGFiNGNjNDIwN2YxMiBsZWdhY3ktdHJ1bmsKKzQyMTc1IGJmYjI0N2Q3YmMzZjcyNTJmMzM5OTE4OTFmNDNkNGM4NjVjOTk3OWEgbGVnYWN5LXRydW5rCis0MjE3NiBkNTczNGRjMDdkNGFiZDk5NWUxZTk1ZGZiYzQ1MWE3MGFkNmY0MDU3IGxlZ2FjeS10cnVuaworNDIxNzcgNTEyMzQ1MzY5MGU1MWExODg4NmZlYTFlZDUxNDQ4MzNlZDNhZDdiNCBsZWdhY3ktdHJ1bmsKKzQyMTc4IGQ2MmRhMzZhYWUxNTUxMjVhY2ZhYzNhYzk1YTlkNzc3ZmY2MmVhZjkgcmVsZWFzZTI0LW1haW50Cis0MjE3OSBlN2YxOWVkMWVhMmRjMGNhMWJjMjAwMDlkNDNmYzdkN2NiMmJjMTM4IGxlZ2FjeS10cnVuaworNDIxODAgYzAxZDIyNzJlNmMzYTZmYjQ5NzRmOGU1ZTJlNDhiNGJmODNiMGI3MCByZWxlYXNlMjQtbWFpbnQKKzQyMTgxIDNkZjYzNDYxYjExNmQzNzlkN2VlODYzN2MwYzM3MjczZTEyMjEzOTYgbGVnYWN5LXRydW5rCis0MjE4MiBlMDI4OWZiYTZmZjFlYTkzOTFiNmNhMzc0ZmI2MDBjZmQ0NjM5YjRkIHJlbGVhc2UyNC1tYWludAorNDIxODMgMDQwZDdmYjRlYjU2ODQ3YWRkZTEwZDhiZjNiNmEzYmE2NmQ5ZDM2YiByZWxlYXNlMjQtbWFpbnQKKzQyMTg0IGU5NzgxOGJjMjkxOTQ0YWY2ZDA5ZTFkNjdiMmIwNGQ3YjdiOGIzYzUgcmVsZWFzZTI0LW1haW50Cis0MjE4NSAxMzU5NjA1ZjM3MTNmYjU5MjM5ZWZmYzBmYTI1MzdiMWQxOTI3NTczIGxlZ2FjeS10cnVuaworNDIxODcgYWY2ODRkNzNmM2E2NzNkZjk3MzFhNzMxMGViMDZmZWNhOGM4OWFjYSByZWxlYXNlMjQtbWFpbnQKKzQyMTg4IGMzYjY3MjhkODg2Yjg3N2NiZDQxZmE0MGRjMmZlNjhmMmY2YTM0MjggcmVsZWFzZTI0LW1haW50Cis0MjE4OSBjZGU2ZWEwOTFhYWFmY2U0NWUzMTUyYjk0YzliYTUzYWVhNTI4ZDk2IGxlZ2FjeS10cnVuaworNDIxOTIgMDYwMjg4N2RhZGY1ZjU3NDFmMzU1NDc2ZDZiMDE4MTkwMWQ1NjZkZSBsZWdhY3ktdHJ1bmsKKzQyMTkzIGYwYWRhNmYwZjY3ODk5MjkzYTljNDIxOTc0MTEyNGU0MDkyYTExYzcgbGVnYWN5LXRydW5rCis0MjE5NCBhNjI1ZTg4NzY0MDcwMzgxOGUyM2YzMDM2MGZlNTQ2N2UzYjgzMDczIGxlZ2FjeS10cnVuaworNDIxOTcgOTUwZTNlMzg0M2JiZjAwNDc3YzMxZTJlNDQ5NmIwZjYwMmJkZjUzYiBsZWdhY3ktdHJ1bmsKKzQyMTk4IDAwMDRhOWQwNGQwMzY2NTcxNDZhMmUyMWY0ZjVhYjM4ZDY5NDQxZTEgcmVsZWFzZTI0LW1haW50Cis0MjE5OSAyMjg5OTUwMjExN2ZlNjg5MWY2OTIxYzdhYzEwOTA5ODg2MWFhNDIyIGxlZ2FjeS10cnVuaworNDIyMDAgZmMxMmNjYTczYzM1ZDBiY2QxNmZiZDgwYzk0YzcxYjQxZDdiNjhhZCBsZWdhY3ktdHJ1bmsKKzQyMjAxIDI5YmZiYjU4OGQ5M2Y4ODc3MTdhYjYxZTExM2UxMGZlZTcyM2QwNGIgbGVnYWN5LXRydW5rCis0MjIwMiAyM2ZlNDdlOTMzN2Q4ZjljNjg0MTJhMWE2NWY0ZjUyZDNiMjcwOWYyIGxlZ2FjeS10cnVuaworNDIyMDMgYmZhMjI3MjY3ZjQ4MTRlODJlOWZiYWNlYTlhMzIxZTZhMTFhZmM5NCBsZWdhY3ktdHJ1bmsKKzQyMjA0IDBmMmQ4MjAwM2EwZmI3NGQ0ZDJhZTQ5YjcxYjM1N2JlZjI5OTU3ZTggbGVnYWN5LXRydW5rCis0MjIwNSAyODBkNjAxOWNmNDI2YzBhMDM2NjEyOGNkYTc2YjM0YTg3MTI5YmY1IGxlZ2FjeS10cnVuaworNDIyMDYgMzhhOTRlNThhNjk1NmM2YWE5NzA4YzhlZjdlMjgzYzA1MzExNTA3NiBsZWdhY3ktdHJ1bmsKKzQyMjEyIDE2YmZlOTM4NjA2OGNmYmUxOGEzNWVlOWMyOTkyZTYxY2ViOWI2ZjggbGVnYWN5LXRydW5rCis0MjIyMSA4MTk0MmZjOWEyMGQxNjY5ZTg3MjY5ZmE2YTZiZjI2ODE5NGRmOTU0IGxlZ2FjeS10cnVuaworNDIyMjYgZDY4MGZhNTI1NTEyMjZjNDBmMjU0YzliNGY2YjEyODhmNzUxYzYwMCBsZWdhY3ktdHJ1bmsKKzQyMjI3IDZhOGQ1ZTA1NGU5NzFkM2RiNGRmMGE5Y2NjMmY5ZGJhOWM5ZDc0NzMgcmVsZWFzZTIzLW1haW50Cis0MjIyOCBmMjM2NjEwOGJjYjI4MWM2ZDZjZjZiOWViMzQzZjkzZjczM2MzZmMwIGxlZ2FjeS10cnVuaworNDIyMjkgYmQ0NGM3YzA5NzdmNTc2NzI5MTY1ZjdhNTQwZjEwNGUyMWRiZDcxMiByZWxlYXNlMjQtbWFpbnQKKzQyMjMwIDI2ZTBmNjhkZTg2ZTZiYWIxMDAwOGEzMzM0ZTVmZjZkYjE3Yzg4ZTggbGVnYWN5LXRydW5rCis0MjIzMiA2NTVmYTIyNjA2Nzk4NDYzZjNmZjE1M2EwYWQ5YzdjNzk3MTNkODgwIGxlZ2FjeS10cnVuaworNDIyMzMgZTY2MjI4NTgwZWEyNjQ4NDhhOGNmYTM0NDdkMzY4ZTAyYjQyMjc5YiByZWxlYXNlMjQtbWFpbnQKKzQyMjM1IDk0ZDI3ZTAxODMzZGE0NzliZGY4ZWY1OGI2ZTIxN2QxN2UzYmM5ZDQgbGVnYWN5LXRydW5rCis0MjIzNiBjYjBkYmFlNzJhOGU3NjFiMTk4OTRjOTI5YjE3MTgwYzhmNjhiMWQyIHJlbGVhc2UyNC1tYWludAorNDIyMzcgNWUyYWNmNzQ0MWJkNjliY2ZjZGU1YmIxZTRiMzcyMDU3YjAxYjY2YSBsZWdhY3ktdHJ1bmsKKzQyMjM4IGRjMzI0NjMwMTVmMWJjZDg0MjZlYTBhMzJiNDU4YWRlNWJkMDdjMDYgbGVnYWN5LXRydW5rCis0MjIzOSA4ZTIzYTdjY2Y2MTVkMTk0YmM0Y2IzM2I2MGEzZDMyNmRkOTdiMGJkIHJlbGVhc2UyNC1tYWludAorNDIyNDAgOWE0ZmY2ZDZlNzI0NjQxM2M4N2ExZTVlYmIxNzliZWFjYTYyNjYzMCByZWxlYXNlMjMtbWFpbnQKKzQyMjQxIGEwN2ZiMmVmNTJhZTc1OTljNmFmNDNjODYyNTliZjYxNzEyNmViYWQgYXN0LW9iamVjdHMKKzQyMjQyIGQxZWYyM2ExNjc2MGMyMzEzNGI4OWQ1NmExM2Q0YTQyNmQ4NTRjYWQgbGVnYWN5LXRydW5rCis0MjI0MyBhMzA0NmQ0M2ViNTJmMmYxY2FmYzhiOTllNTZiNDhjNmU0NTVjZTNiIGxlZ2FjeS10cnVuaworNDIyNDQgMDJmMDc0NGE5Y2QwMmRkODAxMzY4MDQ1Mjg2YzVhZjMyYmI3ZjkwMyBsZWdhY3ktdHJ1bmsKKzQyMjQ1IDNlZGIxYmNkNDM0ZDRkYTFiOWNiMzljYjJmMWZhN2YyMjViZjIwNTkgcmVsZWFzZTI0LW1haW50Cis0MjI0NiAzODhhNTgzZTdhNjM0NGQ1ZTBkZTVhMDllMjNjM2M2Y2VhNDJiOTE5IGxlZ2FjeS10cnVuaworNDIyNTAgNGVkMzBlYWEwMjU2MTI1YTQyMTBjMGIyNTNhMGI1MmMxYTNjMmQ4OSBsZWdhY3ktdHJ1bmsKKzQyMjUxIGMxOTMyODNlNjNiY2I3NjEyNTNhZDlhODgzNWFlMjFmZTc0NzU2ZWQgbGVnYWN5LXRydW5rCis0MjI1MiA4NDA0YzllZmRjMzVlYmZmNzAxNWQ1NTJlNjhjN2VlZWY3N2M1ZDQxIGxlZ2FjeS10cnVuaworNDIyNTMgNzc4OWNjNTU3ZTFlZmE1NGMwOGVhOWQzNmEzMGJkMTY4YjQ4NTE2MyBsZWdhY3ktdHJ1bmsKKzQyMjU0IGFmNjdiNjI2NWFmNmFlMGJkZmQ1YWVmYzM2OWQ2ZWFlODI1MTk0NTkgcmVsZWFzZTI0LW1haW50Cis0MjI1NSAwMDJmOWI4ZmVjMjFlNzBiNmVmZDUwMTBhNWM5ZDJmNDg4OTY5MjViIGxlZ2FjeS10cnVuaworNDIyNTcgMGEyYTRmMTQxMTBiOTRhODQxZGNlZGMxYTBhYTlkZjRmZjBhZTNiNyBsZWdhY3ktdHJ1bmsKKzQyMjU4IDUxZjc2MDI4ODEwNDUyOWFhN2QwNDVmODVmNjk1ZGVjZDM1YjFmZDEgbGVnYWN5LXRydW5rCis0MjI2MSBmMzhiNjM1MjYzZDNhMWZmZjZhZWQ0ZDcwNDFkNzk3YjFhODE2NGI1IGxlZ2FjeS10cnVuaworNDIyNjggY2Q0NDU5ZDA4ZWUyMzY4ZTZjZThkMGUyYjc2YmIyMDI2MDI5NGQzZiBsZWdhY3ktdHJ1bmsKKzQyMjY5IDNhYmYzMzI2NDE0NjMzNjFkOGY5YjhlZjBhMmNjNWE5YWM3MWYyZDcgbGVnYWN5LXRydW5rCis0MjI3MCBlYTU0ZWFmOTIwMTYwMzE4ODVkYmNmYjU3YTFlYTFjMTJlMzNlYzllIHJlbGVhc2UyMy1tYWludAorNDIyNzEgZDU5NjE5YTM3MWMyMTc5YzMyMGZlN2Q2ZDYwNTU3YmFiZGFjMmI0NiBsZWdhY3ktdHJ1bmsKKzQyMjcyIGZkYWNmNzJkNDk3NjMwMmM5MmI0NTUxOWRhNDU5NDU2YmEwMjNjOTcgcmVsZWFzZTI0LW1haW50Cis0MjI3MyA1NTI0NjRkODFlMWIyMTY5NjFlYTJhNzZhZWU1ODE1YjkyYTViZDRjIGxlZ2FjeS10cnVuaworNDIyNzkgODQxNmZiMzIwNDAzOTE5YTZkZDA2NmYwMjg2ZDk1YmU4YzJhYjVkZiByZWxlYXNlMjMtbWFpbnQKKzQyMjgwIDM5N2Y2MzlmN2U2YjhhZmQwYjgzMjA2YTBjOGZkOWQxODAzNjMxYmIgcmVsZWFzZTI0LW1haW50Cis0MjI4NCA0YzJkNmViOGQ1ZTljM2M2MjdlYWE4ZjliZTVhZjM5NDc0YzY2Y2Q1IGxlZ2FjeS10cnVuaworNDIyOTAgODlmMWRhMTM0MmNhNDdkZjhhYmJkYTMwMDk0NzM1NWRhMTlmN2VlZCBsZWdhY3ktdHJ1bmsKKzQyMjkxIDNjZjhhOWVkNDQ2YjNlNGIxMDU5MTE1OTRkMTMxMjViMjVmZjNmYzIgbGVnYWN5LXRydW5rCis0MjI5MiA5M2VmYTU5YjMyOTdjZmZhYzdmOTA2ZWU5YTkzOTEzNzdlYzUwZDE1IGxlZ2FjeS10cnVuaworNDIyOTMgMDVlMzE0ZWUyNmY3NzA4ODVkZDc3OTY2NzM4NjllNjY5MDNmOTA2OCBsZWdhY3ktdHJ1bmsKKzQyMzAzIDE2NTM4OWIxNGQ2YmE3MTliY2MxNTE5ZmU0MTc0ZjUwZjUwM2M0ZDYgbGVnYWN5LXRydW5rCis0MjMwNCA4MWY0NGQxMmJlZjdhMThlMzhmNjZlNTkxNGQwMzM1ZjhjYjkzN2FhIGxlZ2FjeS10cnVuaworNDIzMDcgN2IxOWE1MzNjZTliYWQ5NWRmODU3YjNjYTRhZGQ4YWNlNzljMGRiZiBsZWdhY3ktdHJ1bmsKKzQyMzExIDBjNWFlODkyNDEwNGVlNjQxN2RiMGQ0NWMwNWI3NTE4ZmRhZThiZjggbGVnYWN5LXRydW5rCis0MjMxMyAxYzNiMTVkZjY3YTI5MzlmZjMwMWRiOGRmMGM3ZTZhYTE3NjczZDQyIGxlZ2FjeS10cnVuaworNDIzMTQgYzA3M2RmZmJlNzBlYzk1YzIzYmI0MGU0MGUwOGIwYTk5OWM0M2EzYyBsZWdhY3ktdHJ1bmsKKzQyMzE4IGQyMTg3NWQzNTkyYjY0OTc0YjI2YjBhMDAxZWMxNDNmNGM3ZTMxYzggbGVnYWN5LXRydW5rCis0MjMxOSBlMmQ0NjA4ZjVjMWQ2ZDBmOGY0NTVlZjg0N2E4ZWUwYTc3OTI1OTk5IHJlbGVhc2UyNC1tYWludAorNDIzMjAgZDQ5NmMwNzY0YWQ2MTRhN2U1OGRhOTgzYjc3YzRmZGMxZWM4NmVmZCBsZWdhY3ktdHJ1bmsKKzQyMzIxIGFlMWRhNTEyNDM4MjRhOGQ3Y2EzN2VjNzAyNzczZmZhNzhmZGIzYTUgcmVsZWFzZTI0LW1haW50Cis0MjMyMiA2YzZiNDI5YTcwMzBjNjUwMDlkOGZkZjE4ZjdjZTYxZTlkZTAxNGNhIHJlbGVhc2UyNC1tYWludAorNDIzMjMgNTEyOTc4MzFiNWY4OTA5ZWUzNjRmNGI4MmE5N2NhMWZiNjI1YjQ2YSBsZWdhY3ktdHJ1bmsKKzQyMzI1IGI0OGEwNDcyOWNjNDk4YjBiZDNlOGRhMzNmODZhZDUzOGVlMzE4YWIgbGVnYWN5LXRydW5rCis0MjMyNiAyMGY3NWQ1ZTc5ZTk1M2JlNDZmYTE1ZjJiYmNhNDIwOWE2MTI0NmU4IGxlZ2FjeS10cnVuaworNDIzMjggYzAwNzBkNzZjMGRiM2UwNTUzMWUyYTk3OTYyZjZjMDdkMzJhNGFjMiBzc2l6ZV90Cis0MjMzMCAzNmVhZTNmYzM3M2Q1MDEwNTJhZDRmMmYxY2FjMDkzYTJkOTkzODczIHNzaXplX3QKKzQyMzMyIDcxNTMwOTIxY2U5M2IzZTM3ZTViZDRiYTk5ZGQ4NmE3MjU3YTllOTcgc3NpemVfdAorNDIzMzQgMmEzMjMxZmU3MmUyOThhZDlmOTkxM2ZkOTdjZGNmYmE3ZWY1ODMyYiBzc2l6ZV90Cis0MjMzNSA5OWRmZGNjNmQ2MTNkZGU0NGI4OWE4MTQ2YzM5ZTYyY2QwNzkxNjIwIGxlZ2FjeS10cnVuaworNDIzMzggYzQ2ZGUxZTViOWEwMzIwMTgwODVjYWQ2ZjQ2ZDVjMDFmZTc0YmQwMSBzc2l6ZV90Cis0MjMzOSA2NWFlNzMwYjYyMzE0M2E5YjVjZTJhMWJmMTUzOTJjNzdiZTljOGNiIHJlbGVhc2UyNC1tYWludAorNDIzNDIgMDdiYThhYWUzZGM2NzFhODYxOTAxOTIwYmEyZDRlZWVlYzQ2ZTc4YiBsZWdhY3ktdHJ1bmsKKzQyMzQzIGEyYjZkZGFiNjZkNzhhMGI4OTlmYjg3OTQ4N2RjYjdmODYxMjU5OGQgcmVsZWFzZTI0LW1haW50Cis0MjM0NCBlNDcxZjFkZjJkMDMxZjEwNjY4ODI5OTg4YWYxOGE1MmQ0MmMxMDc0IGxlZ2FjeS10cnVuaworNDIzNTQgNzRiMjUzM2I1OWI4YmViNDdkYWIyNzU1NGNhN2MxMmM0ZDZmZTNlNCBsZWdhY3ktdHJ1bmsKKzQyMzU1IGM3YWI0MTdjNTliYzhiMDNkODY2OTViNGMyYjg4N2U3NTFhMDMxMWUgcmVsZWFzZTI0LW1haW50Cis0MjM1NiBhY2Q3MDJlMzA2ZmI0MTRiOWRhZThiNjAxMmJhNmUyNzZmNjk1ZDU0IGxlZ2FjeS10cnVuaworNDIzNTcgNTc0YzI1ZmU2MDI4NDUyMGVkMjUzZTMzNGMyNzU5Zjg5Y2UyM2M5OSBsZWdhY3ktdHJ1bmsKKzQyMzYyIDM0NDc1NDQ5N2NiM2Y1ODhlNjU4NzU4MTI0NTZkYjBhMTkwNWRmN2IgbGVnYWN5LXRydW5rCis0MjM2NSAyMjA0OTdlMDg5Y2U4ZGViNWIwYzk2MzdmMTEzMWU0MDdjMzczNGVlIGxlZ2FjeS10cnVuaworNDIzNjggZGIyZmNhOWVhMjY0MDYyODE4NmUzNjFkMGE1NTMyOGVhMzc2MzMwYSBsZWdhY3ktdHJ1bmsKKzQyMzcxIGMwYzM2YmJkNWUwYzE5NDM3NjhiMGIzOTkzYjZjNTE5NGFjZGUyMTkgcmVsZWFzZTI0LW1haW50Cis0MjM3MiAxN2VjMTdkZDJhYjNkN2ZjNDY2NDEyNGZiNDcxOGQzM2ViMGVmY2JmIGFzdC1vYmplY3RzCis0MjM3NiA5NjY4NWYxMTI3MDk0NDQ0NTJkNDEwNDQzN2Y2ZmQ2OGQ3NGNlMWJjIGxlZ2FjeS10cnVuaworNDIzNzcgMzVkZThiY2NmZDBlZDcyOGI5OWJjNDFhY2ZiNWUyMjI5ZTUwODM0NiBsZWdhY3ktdHJ1bmsKKzQyMzc4IDk4ZjdiNzQzZDkxYjAzNWJlZjI1YTQ5NjZkOTEzMDQ1ZGU1ZDJmNDEgcmVsZWFzZTI0LW1haW50Cis0MjM3OSBjMDM0Y2RkNzk2MGNlYzYxNDRlYTJiZjY1YTQ0ZGVmMGY4MTk4OWJlIGFzdC1vYmplY3RzCis0MjM4MCAzNjI1YzhiMTQzZDljY2NkNTkyOGNmOTBjZmUxYmNhYTcwYWY4ZmI5IHNzaXplX3QKKzQyMzgyIDdmZGM2MzliYzViNGQzYzA5MmNiM2ZkN2Q4N2Y3M2RiM2Q0N2JhMjcgbGVnYWN5LXRydW5rCis0MjM4NCBiOGU3M2MyZDFmMTdiMjc1MGM2NTM3MWYyNzcyNTk5ZDgzNTE3Y2E2IGxlZ2FjeS10cnVuaworNDIzODUgNzk5OGQ4NTY0OWM5ZTAwMGIzN2JjMGQxZjAxNmRmNDY2M2M3NjhmZSBsZWdhY3ktdHJ1bmsKKzQyMzg4IGRhOTNmOWYyZDZlOGE4MWZkZGJkNTNhMGE5NTE2NmZlOWQzYTc5YjYgbGVnYWN5LXRydW5rCis0MjM4OSA1ODI1YzZhY2UyOGI2MGViNTdhNWQ1NDI1NTkzY2VmM2JlMWMwNjJhIGxlZ2FjeS10cnVuaworNDIzOTAgNzc1ZGVmYmE0ZWU3NGI1NjFiZjQzOGRmZDcxZTQyYmMzNDE4Y2RmNyBsZWdhY3ktdHJ1bmsKKzQyMzk0IDc2N2FkYzA5ODQxNjFiZjYzMzA1MjQzNjBhYjMwN2M2YjUyNTE3OWUgbGVnYWN5LXRydW5rCis0MjM5NSA3MzIyZGNjYmEyMjQyOGE0MmFjODk5ZDUwZWQ5NGU4ZDk1ZjI0MTYyIGxlZ2FjeS10cnVuaworNDI0MDAgMTNlOThlMzY5YWJkOWY4NmFlYzc0YmIzNGMzM2MxNWM4NzhhNzM2YiBsZWdhY3ktdHJ1bmsKKzQyNDAxIDBmMzg5NGJiMmFkYWFjOGE5YTVhNTZkYzEwNGNhMDFkZTY5ZmMzZGQgbGVnYWN5LXRydW5rCis0MjQwMyAxNTk2ZmY1Yzc5YjUwMmUxYjNjNGM4ZjJjMzg1MjhiNWVhMmJiYWMzIGxlZ2FjeS10cnVuaworNDI0MDQgMzM1MGY4NWM4ODlmZDgwYmQzZmJlYmE3OGY5NTEyZDAyZDFjNjJlNyByZWxlYXNlMjQtbWFpbnQKKzQyNDA1IDQ0NWMwYWE4MTFjYTcwZGQ5ZDdiODA3ODI2YzQ2YTFjNjI1NGMzZDYgbGVnYWN5LXRydW5rCis0MjQwNiA5MTRmNWIwZGE1NGVlMWY0MDIzMTNlNTkxMTM0MTU4NDkxNDA0OGIyIGxlZ2FjeS10cnVuaworNDI0MDcgN2M5Y2ZkM2I1ZDBmYTZmMWQ0NGU1Y2YzNGMxYzg1OWZmYjllZWE0YyBsZWdhY3ktdHJ1bmsKKzQyNDA5IDdkYzFmZTc3NzEzZjJkMjBjYzk0MTU1ZmI5MTlmOGYwMmFjMTBhNzAgbGVnYWN5LXRydW5rCis0MjQxMCA5MTMzMWE4ODcxOGUwMmJlMjExYjQ5NzM0MTJmY2U4ZmI2OGU3NmI3IGxlZ2FjeS10cnVuaworNDI0MTEgOWYzZjg3ZTkyMGE2ZDFlMTk1NTc3MTkxYTFiNTE5YzliMWQ2OTVlNiBsZWdhY3ktdHJ1bmsKKzQyNDEyIGQ2ZDQxNWRmMGRmMGFhYzJhMWNhN2YzMWI0OTU4Zjk2NDNlMDE4NzEgbGVnYWN5LXRydW5rCis0MjQxMyAyNjQ3MGNkZWVhM2Q2ZmJlY2EwYzMzN2RkNWU3Y2YxNDhjNTczMjk5IGxlZ2FjeS10cnVuaworNDI0MTQgMzBhZWYzY2UyYjI2YzA5MTljYWY3Y2Y2YmJhZmFmYWRiYTU5NDRkNCBsZWdhY3ktdHJ1bmsKKzQyNDE1IDI3OTE2NzZiMzgyNTkwMDc2MzBkOTc3YjE0NDZhOTQ2MmJmMzYwNTcgbGVnYWN5LXRydW5rCis0MjQxNiA2NzJjMzBiZjk1ZTY5YTdkZTE4YzFkNzdiYzViZjNkNTc5MjY2ZDFkIGxlZ2FjeS10cnVuaworNDI0MTcgNGM4NjA2MTkxYzBjZjMyMmU5ZTc4NTE3ODQwMDlkN2YyZTJkNzIyMCBsZWdhY3ktdHJ1bmsKKzQyNDE4IDIyOTdiMjcwZmNmNjhkOTYwZmYyMWNhMDU0OTZlNDMwMDE3MjI0ZDggbGVnYWN5LXRydW5rCis0MjQxOSAwMGY5YzZlMTUwYmEyNTg3YzY4ZjMyZjFjZTg1Njc3MWQ3ZWZiOGZjIGxlZ2FjeS10cnVuaworNDI0MjAgOWRmNjFiOTZhYTQyNjRiZDk0MjU5OTNhYzJiOGU3OGEzNjBlMTlhNyBsZWdhY3ktdHJ1bmsKKzQyNDIxIDc2Y2U4ODBkY2U0OWUxMTEzZGU2ZTMwZjUyNjY3NzFiOTdjZGY4NGIgbGVnYWN5LXRydW5rCis0MjQyMiA0NDJjMGZiM2M0ZWQxMTE4ZDhiMWQyYjVmMGRkY2NlYmFmNTdlMGRhIGxlZ2FjeS10cnVuaworNDI0MjMgOTJhZmY5NzQxN2M0NmExYWFhMDZkNjMwOTJkMWYzYjM2YzZjYzcwMiBsZWdhY3ktdHJ1bmsKKzQyNDI0IDcxZTZmNmI0MTVhNGMyNjMyOTRkMmMyNDA3ZGY4NmZjNDlhOGRmMzggbGVnYWN5LXRydW5rCis0MjQyNSAwYzA5NmJlMjcwMDAzZGFjYWEzZTVjNjg2MTdhMDQyNTFlOTNiNjc1IGxlZ2FjeS10cnVuaworNDI0MjYgZWQwN2MxYTVlMjRjNjI3NjM5YTJlMTAxZWM3Nzg0Yjg5OTVmNGQ2OCBsZWdhY3ktdHJ1bmsKKzQyNDI3IDg2MjQ5M2NlYWU0YjMyMzc4ZDNhMzBjNTI2MGFlM2Y1NmZkY2MwMDUgbGVnYWN5LXRydW5rCis0MjQyOCAyNmNhYzM3MWQ3YjZlZjlhZmI5MWQ2YWE1ODFjYjJlNjc1YmI2ZGY1IGxlZ2FjeS10cnVuaworNDI0MjkgYzA2ZWUwYzkxMjA5NTdhNzcyNjFiYWY5NzdjNzhiMzJhNDU4ZjM1NCBsZWdhY3ktdHJ1bmsKKzQyNDMwIGZkYWJkZjE0ODMzNjIwNWVlNTYyZWQ0MGE1YWI5ZDkzNmEwMTQ5ZGMgbGVnYWN5LXRydW5rCis0MjQzMSAzMTY5MzhiNGY4ZDAwMjgzYzliYTFiYzM2MjY1MzZmMmU0ZjYwYmQ2IGxlZ2FjeS10cnVuaworNDI0MzIgMGQ0ODkxMjg0NDFhZjZiOTc2YzgzOWNlNDE4YTI4OWU1ZWJmNzE5ZSBsZWdhY3ktdHJ1bmsKKzQyNDMzIDdkYjNjYjllODM5ZmFlMzVhZDI4NzJjYzA2Nzg1ZTNlN2Q3YWJiNDUgbGVnYWN5LXRydW5rCis0MjQzNCBmN2YwZDJhNWIyMGI4MjVmMjcwZjZhZGJkMGU4ZWJiMzY4NzRmYzBiIGxlZ2FjeS10cnVuaworNDI0MzUgOTdjODFkYzAzZGRkYmU3NjNmOGNiMDFlMmFiMjg3MWY3MDBjNzY3YyBhc3Qtb2JqZWN0cworNDI0MzYgMDU2ZTViNDYwNmRhNDMzMWE3ZDdmOTZlOWJhMmU5YmIzNjJiMWM4YiByZWxlYXNlMjQtbWFpbnQKKzQyNDM3IDM2MzI1Y2FlZmY5YzY1YjE0YjFjNTQ2OGU2MGQwYjlkNmU4MDRkZTEgbGVnYWN5LXRydW5rCis0MjQzOCAyM2UyM2UxNWU3ZTdjMTQwMWJkYTE3MjI2ODUwYTJjOWY0NjQ0NzllIGxlZ2FjeS10cnVuaworNDI0MzkgMTIzMmU4N2NiODE2MDc5OTRjMzg4ZGRhZGVkNmZlNjEyMDI0ZTRkMSBsZWdhY3ktdHJ1bmsKKzQyNDQwIDViZDAyZGEwMzdiZmMzY2Y2M2IxNjJkZjI5OWNhNmRhOTJkYzNmODkgcmVsZWFzZTI0LW1haW50Cis0MjQ0MSBjOTE4NzkxMmI1OWU5OTE3ZjM0MGQyMWQ3YjMwZDAwMjQzNjUxMzc3IGxlZ2FjeS10cnVuaworNDI0NDIgNjkzZGE4Njc4OTQ2YjY1NjMxOTMxOTdjMjdhMjViMGMyZWMzMTEwMyBsZWdhY3ktdHJ1bmsKKzQyNDQzIGFkM2M0YjJjMTczMDA5NDJjYjVmZGI5MDM4ZmFmZGNlYmNjNDI4MGIgcmVsZWFzZTI0LW1haW50Cis0MjQ0NCBiY2UzZjM1NmNkN2I5ZDFiMjM4YjNmNmU1ZjMzM2E1NjA2YWFmYWVmIGxlZ2FjeS10cnVuaworNDI0NDUgYTlmOWRiOWZhOTc0YWM4MjQ2OGU3MzMwZWU4NDg5Nzk0MmFkMDI1NSBsZWdhY3ktdHJ1bmsKKzQyNDQ2IGM1NjUwZGJmOTM2ZWMwYzExNjFjMjIzMmY0MTkxYWU2MDQ4NTY0NzEgbGVnYWN5LXRydW5rCis0MjQ0NyA1YjM5NjE0ODE3YTNlOWMzNTMyNjM1NGM0MDE4YTk5NjUyZDVmMTIxIHJlbGVhc2UyNC1tYWludAorNDI0NDggYmM0N2YxYTZhY2I5OWU1YmE1NjU3MGE0YWZiNmMzNDU1YzAzNjUyZCBsZWdhY3ktdHJ1bmsKKzQyNDUwIDQ2NjhkZjQ1MDY3MmMyZWZiOTkzMDVjMmM5ZTQwNDhmZDRlNmQwMTIgbGVnYWN5LXRydW5rCis0MjQ1MSAxNTc2ZjliZWI1MDNiYzQ4ZWNkYTlhMjBlY2VjMTNlYTliMGU3MzUwIGxlZ2FjeS10cnVuaworNDI0NTMgNzg3ZmViYWUzMGRiZjNjNmEzZTQ4NGMyOWVmZGIyYjdhN2ZkMDE0NyBsZWdhY3ktdHJ1bmsKKzQyNDU0IGQzNjg1ZjliN2I3MWI5NzU3YWU5MDdlY2I5ZGFkNzk2N2FiNmFhOTAgbGVnYWN5LXRydW5rCis0MjQ1NSAwOTIzMDM1N2Y5Mjc5MTE4Nzc4ZTE0NDA2ZDJiMWQ5OTdhYWY4NjI0IGxlZ2FjeS10cnVuaworNDI0NTYgOWE4Mzk2ZjQ2MGFmZmNiZGI5MjA5NWM2MjU4N2ZmOTdjMzA2OTYxMCBsZWdhY3ktdHJ1bmsKKzQyNDU3IDZiZjc4ZDJiNTNiNDM1ZmNlZmZkYjYxMWU0NTUyNzZmOTM4M2JjY2QgbGVnYWN5LXRydW5rCis0MjQ1OCBhMTIzMjYwMjI2MmNiZmFkMTU1ZDkyYzdlYjYzMjJkZDc0MWE5MWJkIGxlZ2FjeS10cnVuaworNDI0NTkgYjkzODFhNTYyM2UyYmU3NmNhMWI2YTBkNjEyNmQxOWFkNmU2Nzg0ZCBsZWdhY3ktdHJ1bmsKKzQyNDYwIDhkZTU4MjQ2ZmVmOGUwYzRmMTliMGU0OGRkODZlMGYyOGZhMDk3YzggbGVnYWN5LXRydW5rCis0MjQ2MSA5NDE3ODZlNjNhYzhlNmE1Yzc1YWYzYjU2ZDg2MDYyMGRmYjBlM2Q3IGxlZ2FjeS10cnVuaworNDI0NjIgMGVmN2NmNTIyMmIwOGFkN2MxOGMxYjY0OTZmYjhlYjZjNmNmZjZlYiBsZWdhY3ktdHJ1bmsKKzQyNDY0IDlkMjlkYWVjYjlmYWFlOGFmNGI0YWZlMjI0OGI4MmVjNmRiNmIzOWQgbGVnYWN5LXRydW5rCis0MjQ2NSA1Y2UzMmE1YmQyNDBhNzQ5MmMwNjdiOGVjNTU4YzkyOTVlMTg2ZGI0IHJlbGVhc2UyNC1tYWludAorNDI0NjYgMjM4NmMxMDVhODk0MzY0MTMyYzZhNmI4M2E0ZTRiMDY2MjJhMmY1ZiBsZWdhY3ktdHJ1bmsKKzQyNDY3IDNlMWQ4ZDNiNGI2ZWQ4OTMyMjIwZTU1MzU5NmFjOTliM2UyMWQwMDkgcmVsZWFzZTI0LW1haW50Cis0MjQ2OCAxODQ1ODcxMWViZWQ4NmM1YmMyNDhlNDBlNjhlMzMzNTdkMjkyY2RlIGxlZ2FjeS10cnVuaworNDI0NjkgOGI0Y2IyMjViNDk3NTc4ODg5YzIwNjZiMTNkYWEwY2FkZTQxY2I3MCByZWxlYXNlMjQtbWFpbnQKKzQyNDcwIDU5YjUzMmFiMzM3NjkyMzIwYWVkZjUyMTMyMGJmNWYxOTJjMTdmOWUgbGVnYWN5LXRydW5rCis0MjQ3MSA1NzI5YjRiYzliOGQzOTY5YTllNDM2ZTY0YjQ1Y2MwOTk5YmJjNWFlIGxlZ2FjeS10cnVuaworNDI0NzIgYjYwYzUwYjE2MTI2YjVkY2U3MDc2ZWE4MzdiM2EyNGJmODY0ZTBhZiByZWxlYXNlMjQtbWFpbnQKKzQyNDczIDMzYWRjNWRkMmJmMjE5OGI3NmU3YmY0NzI0MDhjYzNmZjNiY2I5ZDMgbGVnYWN5LXRydW5rCis0MjQ3NCA5MjAwNDkxM2I0MTIyMDYzYWI4YmZmNWM2YTI3MGExYjA0ZDZjOTUwIGxlZ2FjeS10cnVuaworNDI0NzUgODFmZmRlZWExZDA2NjAxZmNmNGI5YmY3NDVjODRiMTZhM2U5OWEyZCBsZWdhY3ktdHJ1bmsKKzQyNDc2IDAyYTBlYjFhMmIyMWJiOTQ5YzExYzc4ZjcyZDY0YTBjY2I4YTRkMjQgbGVnYWN5LXRydW5rCis0MjQ3NyA4ZTEzMjM2MjQzZGQzNGNmZWQzOWE2MDQ4MmIyZGJhYjAwYzA2M2FhIGxlZ2FjeS10cnVuaworNDI0NzggZGM2ZGVjMTU2ODY5ODJkNTkzMjViYzQwNDhhZjU2NDg3M2IwNDMyMSByZWxlYXNlMjQtbWFpbnQKKzQyNDc5IGE2NDUwZjk4OGFhNDQ1NzJlOGZjMzhhYzg5ODUwMTUwMDBlMTBhMTEgbGVnYWN5LXRydW5rCis0MjQ4MCAwZjFmYzhlZmI3MGI1ODJhYzEyNGUxNmYwYzRlNmYyOTY0Njc0YmM3IGxlZ2FjeS10cnVuaworNDI0ODEgOTg5YWEyODVlZGI5YmRkZjU3NDE3ZWIwMDVlMjk0MzY3MzZiZWFkMyBsZWdhY3ktdHJ1bmsKKzQyNDgzIDE4ZjI3MmY1MzY5OTEyOGE1YjIwOWY1MDczN2NlYmIyZWFkZmMxNGUgbGVnYWN5LXRydW5rCis0MjQ4NCAyNDc1ZmU5NTc4MmQwMDU2NWVmOTQ4OTJjZGFkYTQ1YTI4OTdmNjVhIGxlZ2FjeS10cnVuaworNDI0ODUgODJiYmQ1ZGUwMmYxYzg4Njk4YjdiNDNkZDU1NDY3NjExYjI3OGVjZCBsZWdhY3ktdHJ1bmsKKzQyNDg3IGM2YmQwMWM3YTU2OGM1MDZjZTA5MzUyMDIzYjQyMzk5MmE5NTI1MzkgbGVnYWN5LXRydW5rCis0MjQ4OCAyMTBjZmU5ZDMwNzc0MTI4NmYxYmZkZjkxMzFiOTMwMTlkMThkOWI2IHJlbGVhc2UyNC1tYWludAorNDI0ODkgMGQ1ZjgwNzdiZDI0MTk1YTA4YmMxNTUzODdhNGU0NDM0MGMzMTZlMSBsZWdhY3ktdHJ1bmsKKzQyNDkwIGExYjMwZmNkOWUyOGViODQ1ZjFjYTM0YjZlZDFhZmZlNjg1OWM0YTUgcmVsZWFzZTI0LW1haW50Cis0MjQ5MSAwNWVlMDZiN2I1NDczNzAwZGRhYzU3OWY4ZmI5ODFlNzRiMDJmZWFlIHJlbGVhc2UyNC1tYWludAorNDI0OTIgYmQ3ZjJkOGU4ZGVhYmJlMDQyNWQzZDQxNGEwZmNhYjgzNDViZGU4YSBsZWdhY3ktdHJ1bmsKKzQyNDkzIDc4MTY1NGJlNTVlZjBjOGRlM2E1OTgzYjE5Y2ZkZTEwODEyNGY0NGYgbGVnYWN5LXRydW5rCis0MjQ5NCBjNmZiYTQ1NjIyN2I5NzNmZDI1YzZhYTBkYWNmMzljM2IxMDA4YzVhIGxlZ2FjeS10cnVuaworNDI0OTUgZTU3Mzc3ZjBhMTY3ZjE0NmQzYzJlYzIzNTM4YWZkYWFhODJhOGM3YyBsZWdhY3ktdHJ1bmsKKzQyNDk2IDM4ZjRiMDk4ZWE2OTBjOTVjN2Y2MzA1NjY0ZGIwMTI5YWYzYWI1NDQgbGVnYWN5LXRydW5rCis0MjQ5NyA5ZDk3YzgzMzhkNGMyNGMzMDIxYTViNjIzNTczZjQ2MTQzZDllZGI4IGxlZ2FjeS10cnVuaworNDI0OTggYzU4ZTc5YjJjYTA1ZWI5NDQ2YTM3Y2NkMTMxOGU2MjFmNjMwNTZkNyBsZWdhY3ktdHJ1bmsKKzQyNDk5IGU4YTQ5ZWI4NTE5YzM1NjU5YjgxMjhkMDhjZjE4ZWJiZTVjYjRkMGIgbGVnYWN5LXRydW5rCis0MjUwMCAyYzE4NzBhYmI2Y2U1NmRkNWNjZjIzYWY5N2E4NTY3ZmRmMDQ0ZDRmIGxlZ2FjeS10cnVuaworNDI1MDEgOWMwZmQ1ODY0NzVjMTcwNjQ0MjcwOGZhOGVmYjc2MWZiZWZmOTA5MiBsZWdhY3ktdHJ1bmsKKzQyNTAyIDk0NmNmNmQ1OGZkMTE1OTU3NzM3YzdiMGRlYzNhYWYzMzQ4OTI5ODAgbGVnYWN5LXRydW5rCis0MjUwMyBmZTRhZTBjNDE3YzdiMjk2NjZkYTZhNjUyNGRjMTNiY2Q3NzE1ZmI0IGxlZ2FjeS10cnVuaworNDI1MDQgY2FiMzZhYWVlMmUzZDU3YTUyOTE1Zjg4YjllZTQ1ZjczNWUwYThiYiBsZWdhY3ktdHJ1bmsKKzQyNTA1IGY2ZDZlNTIyMDgyM2UxNmE0ZjYwYTU5MzBlMTZhMGMxNWFmYzJjZDggbGVnYWN5LXRydW5rCis0MjUwNiAxYTk4Nzk4YTRiMWRhNzIxOWM1MzQ4OTExNDA0OWQwNGU0NDJmMjkxIGxlZ2FjeS10cnVuaworNDI1MDcgM2E1ZjcxZDZiYmVlOTQxMTFlNzg1NzA0YzAyMGJlZTkwMzA1ZTBiMiBsZWdhY3ktdHJ1bmsKKzQyNTA4IDQ2ZWM5NDhjYmRlOGY3OTY5ZjI3NzhjNzQ2ODY2ZTdmZjZkMjUxMGUgbGVnYWN5LXRydW5rCis0MjUwOSAwNjcxZjNjNDYyZDUwMDY4ZTRkZjI4OWI0Mjc0ODRlNjk0N2U5MzQ5IGxlZ2FjeS10cnVuaworNDI1MTAgNGQ3NjUzZTVjYjNiY2FhYWEyOTZlMWEwMzY0MGNkMzJmMzViMWU1NCByZWxlYXNlMjQtbWFpbnQKKzQyNTExIDk1MjNhOTQxNWUxODEwZTEyZDY5ZjMyZDA4NWE0YzhiNDgyOTA0M2QgcmVsZWFzZTI0LW1haW50Cis0MjUxMiBkY2Y2MjExM2MyZTMyYzFjNTEzZTliNzZlZTQwMzRhZDRkYWQ2MzA5IGxlZ2FjeS10cnVuaworNDI1MTMgN2QyOTJjYmM3MTNhYjBmZTk5ZTkwNjJkYjllMjEyOWZlMTg2NTEwMSBsZWdhY3ktdHJ1bmsKKzQyNTE0IDM2MWM2NThhNTVlNmUzMWEzMGFlYWZkYTI2ZGY4ZWJjYTQ5MTJjOTEgcmVsZWFzZTI0LW1haW50Cis0MjUxNSBjMzZlMzdhMThmMWEzOTY5NGIyNTFlOTNiNWVmMDg5YjQ0OGM0MmMwIGxlZ2FjeS10cnVuaworNDI1MTYgYTlkNmIxYWVjMDk2M2I0Y2NkOGUzY2E5YzI0YjZmOTRkYmE0NTZiZSBsZWdhY3ktdHJ1bmsKKzQyNTE3IDZkM2JhMDA0ZDVlNTk3MWIwZTQ2OGQ1OWM2ZmJjOGVlMTE0YTcwOTIgcmVsZWFzZTI0LW1haW50Cis0MjUxOCBiNzY2ZWQwM2Q0MjU2YTZlZjRmN2Q0OWQyYzFjNDAyNGFhNzliY2NiIGxlZ2FjeS10cnVuaworNDI1MTkgYzZmZGU4YTNiOWRmOGEwNWViYTY2YjEyYWRkYzM0NzQ3YzE4ZDA0MSBsZWdhY3ktdHJ1bmsKKzQyNTIwIDRiNGVhMzhkYTk4ZWQzMTk4NDY2MzBiOWZmMWFmMWY3MTliOGUzMDUgbGVnYWN5LXRydW5rCis0MjUyMSBkMDA4MDc1MDU3M2I2M2NkYzc3NmY5M2UwY2QyYzYzMjk2MWIyYmIwIHJlbGVhc2UyNC1tYWludAorNDI1MjIgZDExMmRhNzk2NGQ2MjlhMmEyODU5MmE2MjJjNmIyMzk4NWRhYzFiMSBsZWdhY3ktdHJ1bmsKKzQyNTIzIGZmOWFmZWIwNWIzNDI2NzRkYTc4YmQyNDk1YzI2ZmFhZjM5YTUzOTkgcmVsZWFzZTI0LW1haW50Cis0MjUyNCBiZGRjMTNkNTdiODgyZDJmZWUyYjMwYjUzMzNkOGEwYzQ1OGZiNTY3IGxlZ2FjeS10cnVuaworNDI1MjUgMWUzOTY4ZmNhYzY4MTllZTQ2NTAxYzExNzYxOWNmYWFiNDNiYjkzNCBsZWdhY3ktdHJ1bmsKKzQyNTI2IDhhNmZhZWQwYWYwNGI1Yzk3MzE1MjkwMWQyYjRkOTk5ZTc0MzY3NzEgcmVsZWFzZTI0LW1haW50Cis0MjUyNyBkNGUxNzYyYjhlMTUzNDBmZmNhMWU5N2Y1ZGY3MTJkNDllMmY1OTYwIGxlZ2FjeS10cnVuaworNDI1MjggMjg0MTNjMDgyYzA4NzYyZTBiNThhNTE4NTViNjAzOGExZThkMDFjOCByZWxlYXNlMjQtbWFpbnQKKzQyNTI5IGViMDk3NzkzMmUyZGU4NjVlZjUyYjc0ZTdkZTU3YzBhOGIyYzUzNGIgbGVnYWN5LXRydW5rCis0MjUzMSA0OWQ5YzEyMDM1N2FkMTAxNWY5YjFmYjVlMWVmY2MzZWU3NDNmMjc5IGxlZ2FjeS10cnVuaworNDI1MzIgNGQ5ODhkZGE2NDc4NjQ0YjkxZDYxZjNkYTNjOWFiYjIyNTk5NmVhYiBsZWdhY3ktdHJ1bmsKKzQyNTM2IDIwYzhmYTFlMDY2ODM4ZjA1OWFkZGRkNThiOWE5ZmU0NjExYmNmYWYgbGVnYWN5LXRydW5rCis0MjUzNyA5OGY2YjU5YTZlMGEwOWRhNmI2Zjc4NjFjNDRlZjhmYjEwMmIyNjRiIHJlbGVhc2UyNC1tYWludAorNDI1MzggMTQ1ZDVmYzlhNmE1MWEyNjQzZjVkZTEyMWI1YTA4MGU3MGIyMGUxZCBsZWdhY3ktdHJ1bmsKKzQyNTM5IDRlNTBhYTdiYjFiNTJkMWMxM2UwMzU1NDVlYWYyYjZhZGFjZmU1MWMgbGVnYWN5LXRydW5rCis0MjU0MCBkMGViY2I0ZjYwMzEzOWIzNDAzOWE1ZTJlZGQzZTEwNTJjMDhhZTY1IGxlZ2FjeS10cnVuaworNDI1NDEgNjljMGJlYzExMDBhYzgzYzc5ODM4NWExYjUxODJiMjI3YTAzNzg2ZSBsZWdhY3ktdHJ1bmsKKzQyNTQzIDVmMmNiNDQ1ZTFjNTQ5ZWRkOWQ1YzJlNmI3ZjJiNmQzZDA5YzEwNDcgbGVnYWN5LXRydW5rCis0MjU0NCBlMGMyYWJkNTgxYzViMGI1NWU0MjZjZmY5YjQwOGU0MWViZjM4NDliIGxlZ2FjeS10cnVuaworNDI1NDUgMzZhZTNkOTI5ODMyZDRmZjhjYWU3M2M2OTQ2YmY1NGFkZDljYzU4YiBsZWdhY3ktdHJ1bmsKKzQyNTQ2IDJjOGRjMzU4MWI3MGYyZDExYTQ0ZWM0OWE0ZjIxMzQyOWMwZmM3ZGQgbGVnYWN5LXRydW5rCis0MjU1MCAwOWQxOTM3ZjJkYTg5NWZlOGRjNDBjNTdkZmNhYjYyMzIxNTUzMWQ3IGxlZ2FjeS10cnVuaworNDI1NTEgODFmMWIwZGRjOGExNmYxYWEzZTYyZTBhZmNhY2MwY2JkNjA1YTQ1MSBsZWdhY3ktdHJ1bmsKKzQyNTUyIDVhODM2OTg2MjA2ZGQzOTBkYWE2YTE1NGUwZTg4MzdiMDdhM2I4YmEgbGVnYWN5LXRydW5rCis0MjU1MyAyMTYyMjE2MTM5Yjk1Njk1NDMyZTE3NDg3OWFmYjg5OTg1NDZiYTY0IGxlZ2FjeS10cnVuaworNDI1NTkgOTExYzdmYTQ5NWIyNDA0NzA2ZjhhYTQ1Y2NjZTBhOWExNGY4YWFhMCB0aW0tb2JtYWxsb2MKKzQyNTYwIDE0M2MzNDhmZjcxNzY5ZDYwYjBkYWY0YmVmMjA3NDE5ZmUzMzI1ZTUgdGltLW9ibWFsbG9jCis0MjU2MSA0MTI3NjE0Zjc1MmExZjQzNmM5OWVjNzlhYTg0YWM2OTU2MjdjYjBhIGxlZ2FjeS10cnVuaworNDI1NjIgOTU4MDA4NzViZDEyNTk0YjMwNDgyYzlmOGIzMjA3OWFkYzY5ZjE2YSBsZWdhY3ktdHJ1bmsKKzQyNTYzIGUxYzNmZmU5MjZjMTE1NjJkYWNjNDc2ODA4YzAzNDljZTQwZGE4Y2QgbGVnYWN5LXRydW5rCis0MjU2NCA1ZDgyODcwM2M2YTE3MzJhZGQ0NDIwMWQzZjNlNDJkODcwNTJiNDgyIGxlZ2FjeS10cnVuaworNDI1NjggNjI1NjRkYzdiZDcyNjJkMTAxMDg0MWMxNTBlYjA2NmJhNzA3M2JjZiBsZWdhY3ktdHJ1bmsKKzQyNTY5IDhkYjk4NWI0MDg2ZTE4Y2VlNzNkNmM5MTc0MGUwMzUwYjM5ZjJhMTcgbGVnYWN5LXRydW5rCis0MjU3MCAyZmRhNGQxNTBjM2RiNDZmNjQ3MDI5YmI3MTc1MDFlZDVhMThhNWEzIGxlZ2FjeS10cnVuaworNDI1NzEgNmI0MjkyMGFjY2M5MjY0ZjdjYWJmZjVjMzg2MTcyYzIyNGYzNDVlNyBsZWdhY3ktdHJ1bmsKKzQyNTcyIGM2NTA2NDQyZGZlMDE1MjJlZDhiZGMxODZiM2E5MTMxYWVlMDE4ZjMgcmVsZWFzZTI0LW1haW50Cis0MjU3MyA5MmNlOGJiOGIxMmE3ZWI1ZjRhOTMyZDZhNDNiZGY5ZTJlZDhlNDg2IGxlZ2FjeS10cnVuaworNDI1NzQgYzk5NmExMjIzNGMyNTljMGZjYTBmMzUyODhhYzlhNGE0MDVkYzk0NCBsZWdhY3ktdHJ1bmsKKzQyNTc1IDM5MjRhZmNmOTVlN2ZkOWI1MTNjMWM1NzBjYjcyMTVlNTcyYWM5MTMgYXN0LW9iamVjdHMKKzQyNTc2IGM5ZmJiMDY3YzJhNmM5MGUzMGFiOTE3YzFjODYwZmUyMjU0ODllYTUgbGVnYWN5LXRydW5rCis0MjU3OCBiYjQ4MTE1ZTZkYWIzMzUzMDk2YzJhMzc2NDIxMGJlNGU5ZTM0ZDYzIGxlZ2FjeS10cnVuaworNDI1NzkgM2MwYjI2MTEzZGY2ZWQ1YjM2YTYwNjQ5ZDJmZDMxMjYyZTg2ODFhNyBsZWdhY3ktdHJ1bmsKKzQyNTgxIDcxMGNiZGQ0NzhhODUxYjM0MGFjZjRlZjM4MTBlOTcwZWNkNWM2MzMgbGVnYWN5LXRydW5rCis0MjU4MiAyYWI5MjcwZWYxOWFlYWY3ZjBlYThmNDhjNDUxMDY2YjI2ZDU0NDQ0IGxlZ2FjeS10cnVuaworNDI1ODMgNTc4OGUwYTY4OWUyNTc3ZThhNWUzMDZmNDg4ZDZkMDhiNjNiYzc0NiBsZWdhY3ktdHJ1bmsKKzQyNTg0IDdiZmJmYjJlZjRlMjE0NWE1OTM0MzgzYmRkZTg2MDIxMDFkNTAwYTkgbGVnYWN5LXRydW5rCis0MjU4NSA1OGE4NDUxZmY3OTU4N2UzZTc4YjI1NDYwYjVkMGJlZmUwZDQ3MTk0IGxlZ2FjeS10cnVuaworNDI1ODYgNjE2NTkyNzQzMWQ2YTY4NTUwOGZkZTQwODZlNjcxZTVjYWNkODJkMiBsZWdhY3ktdHJ1bmsKKzQyNTg3IGRiNTcxZjljYWQ2Zjg3YmYwZDkwZDMxNmJkYTMzMmIyMDc0MGY4YjIgbGVnYWN5LXRydW5rCis0MjU4OCA4NDEwZjA2YWQzNmUxODg1OTU4OTQ5ZDE5NzU4ZGY0NzYwODY3YmJmIGxlZ2FjeS10cnVuaworNDI1ODkgOTUwNGY3YWMzNjY5YzI4MWNlMjE0ZTE4NzlkYTZmYzBlNTk1OWRiMyBsZWdhY3ktdHJ1bmsKKzQyNTkwIDI5NmNkYTliM2UyZjgwOWY0NTg4ODhhM2RlOTc5NDNhZDMxYjkzYTAgbGVnYWN5LXRydW5rCis0MjU5MSA1ODQ2MzdkODMxZTNmY2JlY2RhZWQyNDgzZTJlMGVlZmYwYjI2Nzk3IGxlZ2FjeS10cnVuaworNDI1OTIgNmMwYjZjMWNkMWY0NjlkNTk0OTQzYTI1NWM0MDJlZWRhOGU3MGI1OSBsZWdhY3ktdHJ1bmsKKzQyNTkzIDJkZGVhNTUzNWYwODY0OWU1NjVjYjc0MjIwOGQ0ZTc3YjEyZDUyOWEgbGVnYWN5LXRydW5rCis0MjU5NSA3ODBiN2FmZTYxNzg1YWY3YzE0N2E5YjcxODViMDI0ZmM1NjFhYjM4IGxlZ2FjeS10cnVuaworNDI1OTYgZGJhNjQ5NDczNWQwMmE1NTM5MmU1Y2VhMTY5MDI4NDQxNzBkMjdkYiBsZWdhY3ktdHJ1bmsKKzQyNTk3IDY3Yzc0ZWZhZDhjMjNmN2ZjYTQ3ZjQ4NzQ4MmUwMDRjZmRiMGMwMWYgbGVnYWN5LXRydW5rCis0MjU5OCA1MjMwYzRjMjllYmIyNzg2NDNlN2VjMjA2NzYyNGVkODJlYTgxZmZjIGxlZ2FjeS10cnVuaworNDI1OTkgYWM0OTg5NTNjZTU3OGZhYTkwMjcyMjNjN2UyMzI1ZWZiNGYyYzM0YyBsZWdhY3ktdHJ1bmsKKzQyNjAwIGUxMzkxOTEwYjAyNjUyZDgzNGUxMTg0NjAzOTRjNjBlOGU5Yjc1YWMgbGVnYWN5LXRydW5rCis0MjYwMiA1NGViNWIxZmIzNjMyZWM4YmFjM2NjNGUxNDQ0NmY0OWU0OWZhNzc1IGxlZ2FjeS10cnVuaworNDI2MDMgZTlmMGRiNDI5ZjJiYmFlM2JlMTY1MGY3YWNmMjJlOGZiZGMxYjE0ZiBsZWdhY3ktdHJ1bmsKKzQyNjA2IDUyY2JjNDQ3ZTFjOWZiZWU3YWY1MDJmZDJjZTc2MGQ0NWQ2NGExMDQgbGVnYWN5LXRydW5rCis0MjYwNyBkYTJhMTA0OTIxNWQ2MzE4YmYzZjdmMjFkMjE0OGQ0ODI1M2JjNzc5IGxlZ2FjeS10cnVuaworNDI2MDkgMGJlYmViMzkzMDQ1NDMzZDBhZmM0MTUyOTA4MDgxZTcyYjZmOGEwMSBsZWdhY3ktdHJ1bmsKKzQyNjEwIGI4NzNlYzY3ODU2MDUxMzZjM2M2NGU0Mzk1ZGE5ZTQ4MDM1MTI3NmIgcmVsZWFzZTI0LW1haW50Cis0MjYxMSA4NjExZjM5Y2Q4MmJmYzJhZjNkNDhjMTlkMTQzZTY0YmYxMmU0NDQ2IGxlZ2FjeS10cnVuaworNDI2MTMgN2QwZjEyMzQwYzllNGY1OGI2MWMwNjhlOTFjOWE0MGUwNDY5ZWM4OCByZWxlYXNlMjQtbWFpbnQKKzQyNjE0IGUwZmVhZGM3YWZmYjcyYmY4MWNkNWExYWQxODU0NTgxNjI2Zjk3YzMgcmVsZWFzZTI0LW1haW50Cis0MjYxNiAxMTQ4NGE3MmQ5NjZmZDg4ZWJmZjlhNzdlYjRjZTZhZWVkMTAzMmVmIGxlZ2FjeS10cnVuaworNDI2MTcgYWNhYTc5ZTczMTMzM2U1MmQwYTBlNTQyZDA0YmM1YjZkMWZiM2Y1YSBsZWdhY3ktdHJ1bmsKKzQyNjE4IGRkM2U1YTk0NTk2MmMxZWM5ZDgxMTU2MmRjZTY0ZWNmNzZmMDNhOGMgbGVnYWN5LXRydW5rCis0MjYxOSAzMDE3MTA1MzVkMTUwMjc0ODFjMGNiY2RkMDdkOGIxYWE0NzMzYzMxIGxlZ2FjeS10cnVuaworNDI2MjAgMTgwZGJmY2YzYmVkMDY1MDU5ODU2MzI3OTQ0MzA3MmM2NzEzZTdiOCBsZWdhY3ktdHJ1bmsKKzQyNjIyIDAxNTFhMDIzNzRhODJlMjUzYTM1ZjU0MjJlOGNhYjgyMTA1MjVkYzIgdGltLW9ibWFsbG9jCis0MjYyMyBkZmFiMjJhZTQ4ZTM2N2Y0MDkzOWUzNTEwMzI0ZTFiNmQwYzBkZWI4IGxlZ2FjeS10cnVuaworNDI2MjQgYjZkMmY2ZmQzZTExNmI5YjlmZTk1YmM5ODJhYzc2M2MzNTlmZjEwMyBsZWdhY3ktdHJ1bmsKKzQyNjI1IDdiNThmYmRlNWU1ZGZjMWJkZDM5ODEwYzY3NWVkNDBhYzQwMWQzZjUgdGltLW9ibWFsbG9jCis0MjYyNiBlMGE3NzAxMGQwMzNiYzkzMjJhNzdjZGQwZWUyNWJhN2QyNzE1ODI1IGxlZ2FjeS10cnVuaworNDI2MjcgNzhkZTVmNmIyZjY3YjNlODUzOTM4OGI3N2NhZTBlMzI0ZWE3ODQxYSBsZWdhY3ktdHJ1bmsKKzQyNjI4IDMwNTY3YmU5MGM4NTEzMTFlOTJhZDEwMGJjMTkwY2RmYzQ4ZWE5YmEgbGVnYWN5LXRydW5rCis0MjYyOSBhYTA0MDQxMGZiOWEyZGY5OWQwYTM4M2IzOGRiNmY3ZWI1NDU2ODJkIHJlbGVhc2UyNC1tYWludAorNDI2MzAgMmEyZDQ2ZDE5MjlhNDA2YWZlNjViMTNlM2Q3YWMzOGMyMzYwZWQ0MCBsZWdhY3ktdHJ1bmsKKzQyNjMxIGUzMjQ4ZjFmYzU0ZGI3MThhOTQyMzg0Mjc5YmY0OGQ1NmJlNTI1ZjkgbGVnYWN5LXRydW5rCis0MjYzMiAzNWRiYmMxYWI0NDg3ZGZmODc2NDk4NzgxZjM4ODljNDJhOTM0MzkyIGxlZ2FjeS10cnVuaworNDI2MzMgYzNlMjg0MDk2ODZjYmUyYzNhNjc5MDBlYmIwZGI3ODFkZjVjZWVjMyB0aW0tb2JtYWxsb2MKKzQyNjM0IDY2NDVkYjA5NDk0M2RkMmI0NDRmYzFlMDFkNDgxODc2NzgzYjgzZjIgdGltLW9ibWFsbG9jCis0MjYzNSA5ZjNlNThkYmVhNjMxYmM2NjUzNTk0MDc1M2E1Mjg4OTY4ZDYyNTIxIGxlZ2FjeS10cnVuaworNDI2MzYgM2Q2OGYzNTJjMmZmMDFmMjA3ZDZhOTFjY2Y0YzcwYzBiNzM2Y2M5ZiBsZWdhY3ktdHJ1bmsKKzQyNjM3IDhmZjI4ZmNmODcyZTBhOWI5NWM2YzlhYWIwNWEwNzc0M2NmNjhhMTEgbGVnYWN5LXRydW5rCis0MjYzOCBiNmIxYzQ0ZDkxMTA1Mjg1M2M3Y2RmMWY3NDNlODNlN2JkZGZmNTQ0IGxlZ2FjeS10cnVuaworNDI2MzkgY2Q4NDdlNzI2ODM3MmU0ZTdlYmJkYjA0MWYwMTlkNjBjZGEyNzliOSBsZWdhY3ktdHJ1bmsKKzQyNjQwIDgxYmUxNWI4NDI0NDUzOTgyNmFlZjFlNmJiYmMzNjcwMDQ4MTY3YjggbGVnYWN5LXRydW5rCis0MjY0MSBiZWE5NDc1NDQ0MWIxYTcwYjcxM2ZlZWVlYzgxZTZjNmVlOTllNDI3IGxlZ2FjeS10cnVuaworNDI2NDIgMjU4OTkwMjQyODk4ZTZjNjAzZTczNjRmYTU4MTRjNzI4YTg0YmY0NyB0aW0tb2JtYWxsb2MKKzQyNjQzIDNjMDdiNmM1Y2Y3ODhiN2JkMGM4ZmVhOGE5OTRhNGM2YzkxNTA4MDMgbGVnYWN5LXRydW5rCis0MjY0NCBmMTUzMDJkOGIyZGU1OWYxYTE0MTI0MWRlYTgwM2NiMmRlZGExZGI3IGxlZ2FjeS10cnVuaworNDI2NDkgNWMzNmMyMjJlN2NhNTMxMGU1Y2M4YjhkYjI4M2JkNjY5ZDFlMjRkNCBsZWdhY3ktdHJ1bmsKKzQyNjUwIDk3ZWU3YjUzMzY2NDgxNzgwYjZmMzMxNTUwZDY2NGFjODYzZjY2ODIgbGVnYWN5LXRydW5rCis0MjY1MyBjMzQ0NWIxY2YxYmYxZWQwNGRiZDFjMmRmNWE4MTUxYjQxMDJkMTc5IGxlZ2FjeS10cnVuaworNDI2NTQgNDI5MmI0MjY4M2M1ZmNjNzU1NDMzOGJiZmQ4NDdiYjUzZTkxYWM1MiBsZWdhY3ktdHJ1bmsKKzQyNjU1IDcxZDg3MzA1NGQyOWVkYmQyMjAzMmM4YzkxNWNmMGVlY2JiOGI1YzMgbGVnYWN5LXRydW5rCis0MjY1NiBhZTM5ZmNlMGY5YTE2ZWMwYTU4OGQ3MTg5OWRkNDZiNzdkNTE0NjEwIGxlZ2FjeS10cnVuaworNDI2NTcgNDVlNmY5MDE5MDJjYTU4NTdlZWU5MWFiYTA0OGRmN2RkNTYwMTg2NCBsZWdhY3ktdHJ1bmsKKzQyNjU4IDY2ZmM1YjI2Mjg2OGJlZTdkMjMxYzc1OTg0NmMxZmVkM2NkNWVkZWMgdGltLW9ibWFsbG9jCis0MjY1OSA5NDJhZTI1Y2IzOTE1MDQwOTEwMmQ0ZDY2NmUzNzMxNDg5NWE0MmQxIGxlZ2FjeS10cnVuaworNDI2NjAgNDAyZGUwZmVmMTE2ZDhlN2MxNGMwMmM1NmRkZTBjZmViNWY3NGI1ZCB0aW0tb2JtYWxsb2MKKzQyNjYxIDExNTk2MDY0MGYyNWRlNWIwMWQyMjliMzIyYjc5ZTc1ZjhiMjBhYTYgbGVnYWN5LXRydW5rCis0MjY2MiBmN2I0NzI2YWRhNmM1MDljMDM5ZjY3NjJmZTBhYTFhYjMxNmIzYmYyIGxlZ2FjeS10cnVuaworNDI2NjMgYzQwYTMzY2E2NWI5MTYzYjlkODJkYzkzZWI5YjE3MmYzNmMzYmJlZSBsZWdhY3ktdHJ1bmsKKzQyNjY0IGU1ODBjOGIwZGNlYWI0MGViZjI5Zjg1ODY5YTQ2NWM0OGUwYzZhZmYgbGVnYWN5LXRydW5rCis0MjY2NSA1ZjM4MjJjMmU3MzEwNGJiZTRmOWQ3Y2EwODFiYjBiMzAzODUyNDNhIGxlZ2FjeS10cnVuaworNDI2NjYgOTkwNjZiZWExN2Y4ZjAzMmU4MDc4ZDVhZDc4YzZhY2ViNzRmYzBkNCBsZWdhY3ktdHJ1bmsKKzQyNjY3IGJiZjE2ZmQwMjRkZjdiY2ViYzBmNmZlODgyYjdjYzhjZjk3NjBiNTYgbGVnYWN5LXRydW5rCis0MjY2OCBjMDY2MTNlNTNmYWRmMzc0OWI4OTFlOGZjZmQ0YWNmY2U4ZTI5YzQ2IGxlZ2FjeS10cnVuaworNDI2NjkgZjJhODk1ZDMzYTVjYWU5MTNmNmVkYzgzYTA1MTVhMGI5NzU4MTI1NyBsZWdhY3ktdHJ1bmsKKzQyNjcxIGQ2Y2JjNzFiODAxMDkwOTlkMmQzNjc4YmJhNmU4ZTkyYTYzMmIyOGIgbGVnYWN5LXRydW5rCis0MjY3MiA4NzcwNjQzOGRjM2M0MWJhMjdjN2RjOTRkZDEzNTYyMjExNzdmMTBkIGxlZ2FjeS10cnVuaworNDI2NzMgZmQ1NDk3YjY0MjA5YzI0MTE3YTQ3Yzg2ZTNlODc5NThmZGQ5OGM5YyBsZWdhY3ktdHJ1bmsKKzQyNjc1IDhhMmE1ZjcxYjhiM2Q3ZTI3MDA2YTEyMDQ3NDAyNGM5OWYzOTliOGQgbGVnYWN5LXRydW5rCis0MjY3NiA2NTgzYzg2ODgxN2FhYTRjOWI5Y2UzN2MzNWRjMTNlZmI3ZTEyZWQ1IGxlZ2FjeS10cnVuaworNDI2NzcgNGE0ZTBjNThkNDM3ZTg3ZjBjMzE1OTk5NWNkN2ViNThlMGE4MDNkNSBsZWdhY3ktdHJ1bmsKKzQyNjc4IDQxNzgxNTA2MjMzNzhhMWU5MTUyNWNhY2M0ZDlhYTc3NjI1NGNjYjAgbGVnYWN5LXRydW5rCis0MjY4NSBiYmNlOGVjMmZmODFkMGRjZjk4MzcxNjFmMTY4ZmJlMjA0NzVkZWFkIGxlZ2FjeS10cnVuaworNDI2ODcgOGI2ODUxMzgyZTI3NTM1OGZhOGIyOGM1MmVmN2ZlYzc5MjJiYzQ0NiB0aW0tb2JtYWxsb2MKKzQyNjg4IGZhOTJmZTE1MjUxYTA1MTA4NTdiMjAyOWU2ZmQyYjc1YzE5NTk2NjIgbGVnYWN5LXRydW5rCis0MjY4OSA0M2I5ZDVmMDkwMWJlNjYyODQ0NWY1YWE1MzA4YzczY2Q5YTA4MGNlIHRpbS1vYm1hbGxvYworNDI2OTAgNDNjNzA0NjBjY2Q1OTBkMGI1OTQ4ZjQ1OGRiYjRjODFhZGZjMzFmOSBsZWdhY3ktdHJ1bmsKKzQyNjkxIDc5NmQxNTBlNDVhOTRiZmYxMjA1ODc0MjAyMzM0OTdiN2M3MGI3ZGUgbGVnYWN5LXRydW5rCis0MjY5MiBhM2U0YmQ0NzVhZDdmNzQ4NTg0MGUxM2E0ODMyZmI0ZGQyMjlhMTIwIGxlZ2FjeS10cnVuaworNDI2OTMgYzA5ODJiODE1NWM2MmQzZmY0NWE4MjFmZDZhZDMxNWI1NzIzYmUwZiBsZWdhY3ktdHJ1bmsKKzQyNjk0IDY1OGY4ZmYyYTQ0MmQwMTgxNTZlNTU4MWFjYjE5Nzc4YzZmMGU0NjMgbGVnYWN5LXRydW5rCis0MjY5NSAzMTA1MWE3MGIyOTcyZDhmMmNlNDBlNDg5Y2VkZWE5NDk0NjQwMGRiIHRpbS1vYm1hbGxvYworNDI2OTYgZGJmOWNjNmMzNmViZDcxY2JiZDkyMzM3ZmMyM2JlYjY5Yjg4MzE3MCBsZWdhY3ktdHJ1bmsKKzQyNjk4IGEyMTM4ZGZiNTk2NTI2NDk0NTUyNmUwMTJjN2Y1ZTI4MWVjMjk3ZjcgbGVnYWN5LXRydW5rCis0MjY5OSAzZmZjMWUxZDJmNTc2ZjY0ZjZkNzE4MWE2MzM2NTMyNmUwYWNlZmYwIGxlZ2FjeS10cnVuaworNDI3MDIgOTIyNTM5ZGJkYzRlNWQ5Yzg2YzUwZjUzOGJmMDMzZmI3ZDc2MzFkMSB0aW0tb2JtYWxsb2MKKzQyNzAzIGU4MjFiOTM2ZjNmYTc1NmExNzY4Y2U2M2ZhNDVhY2JlMGI4OWM4NjAgdGltLW9ibWFsbG9jCis0MjcwNCA4ZGY1NTAxNGM4ZmIwY2QyNzE0YTMzZGEzYjQxYjA4MzNhZWViYmE5IHRpbS1vYm1hbGxvYworNDI3MDUgZWY1MjQ2Y2U4ZmU2NTYwMGYwZGZhNWFhOWFmNGFlYWZmNDYxOGJlMiBsZWdhY3ktdHJ1bmsKKzQyNzA2IGRiYTc3MDkyZDQ2ZWJhZjJiYjhmMjQyYmMyYWQwM2Q4NzdiNGY1NzkgbGVnYWN5LXRydW5rCis0MjcwNyAwZjcyODRjNDkxYTMxN2JkN2ZmNjQ5ZTc2Y2VhYmY4MTE1MGE3NjJiIHRpbS1vYm1hbGxvYworNDI3MDggYzI5NDJjZGQ4OGIzMjUwN2Y1NWEzOTQ0NGJiOGQ4MDE5OGYyNjA2NiBsZWdhY3ktdHJ1bmsKKzQyNzA5IDBiNWU5YWNlMmU4N2IzODY4MjUwZjNkZDM1MTQzODVjOWEyZTNkMjIgbGVnYWN5LXRydW5rCis0MjcxMCA5MmJhNzI0ODRmZjM4NDUyNDhlZTk5N2IxNjlmZDNhNmUwNjUwNTdlIGxlZ2FjeS10cnVuaworNDI3MTEgOGUwNGRlMjQ4MGU0OWVhODQ2NzZjMThhYjNmZDY1ZjdhYzY0ZDlhMiBsZWdhY3ktdHJ1bmsKKzQyNzEyIDdiNjZiMmRjYzVlOTZhNjRhMThkZjIxZDEzYmE5ZjJhZjExYjQ4ZDUgbGVnYWN5LXRydW5rCis0MjcxMyAxZTgzZjE4MmI1ZjlhZjgxMWQ0NzQ4ZWQ5MWFlYWZkMzZiNDUxMzE0IGxlZ2FjeS10cnVuaworNDI3MTUgMmYxOWI5ODFhYzI0N2MzMjNkMDQwNDE5ZWI2MTdjZjMyZWE3YTVlMCBsZWdhY3ktdHJ1bmsKKzQyNzE2IDMyZTJiOGJkYTUzNWI4YTY4NzE1ZDE3MjU0MzdmMzlhMzYyZmViZTAgbGVnYWN5LXRydW5rCis0MjcxNyBkMGNhNjMwMmRkM2M5OGNjZjA3MWQ4M2M2MWJiYjdjN2Q4MzRkY2UzIGxlZ2FjeS10cnVuaworNDI3MTkgYzQxMzhhZDFlMDlhMGUzOWM3ODIzMDRlZDJkYzllODBiZDZlMWZhMiBsZWdhY3ktdHJ1bmsKKzQyNzIwIDNlMTkyNzFlZmM0NmU2OTI2MzhjYmQzNjFkN2UxMGVhNTJhMTQ2NTEgbGVnYWN5LXRydW5rCis0MjcyMSA4M2I4NjBhY2ZlOTVlNmYwMTdjY2Q2MjAyOTNmNzU0MzgwM2U0NjlhIGxlZ2FjeS10cnVuaworNDI3MjIgYTM2NmRmYzcwMzVmZDE5MjBjMWFhMDNiMjdmMzU0N2FmMTllNDhkYSBsZWdhY3ktdHJ1bmsKKzQyNzIzIDNkZDkyZDk3YTY3ZmY4MjFkZjJlMzc4MTliM2NkODZlOTI4YmFhNzQgbGVnYWN5LXRydW5rCis0MjcyNCAyMmM1MTYzMmI0NTlkNzcwMmU0YWM4NTYxNWFmYTJmYjA2NjJiNzIwIGxlZ2FjeS10cnVuaworNDI3MjUgNWU0NjNhZTcwNzA3NmRkMjg3MDhkNzY3ZDNlZjJiMmMzNGI0NDg2ZCBsZWdhY3ktdHJ1bmsKKzQyNzI3IDk1YTkyYjJiNTNlZTQ5YWM2Mzc4NmVlYTczMWJkMmM4YTU5Mjk4M2EgbGVnYWN5LXRydW5rCis0MjcyOCAwNjc0Nzk2YjY5NmNjNWEyMDYwY2JhMjMzOTZiZjNkMzk3MjNhNjExIGxlZ2FjeS10cnVuaworNDI3MjkgMWRhYTE5OWI3ODRiZTRhNjNmNTBjODA1ZjZhYjQzYTljNjc5NmVkZiBsZWdhY3ktdHJ1bmsKKzQyNzMwIGUzNjRiYzc2YmRjOGQ0NjNmNjRmYjcyM2I2YzAzNTAwMTRkYzc4NzUgbGVnYWN5LXRydW5rCis0MjczMSBkNmMzMGNlMzg2OGIxM2Q3YzlkZGQzMzdlOTY1OWZmYWU3YjJkMDMxIGxlZ2FjeS10cnVuaworNDI3MzIgYWIxYjUzZDU0OTAxYThkYTcxNjdmZWEyNGNmOTA5NzhjYzZlNDY1YiBsZWdhY3ktdHJ1bmsKKzQyNzM0IDYyMzc2MzQ1N2E0ZThmNzU3MDE2MzQ4YjFiNDY1NTUzOGU5NjUyNDIgbGVnYWN5LXRydW5rCis0MjczNSA0Y2M5NWZjZTY1ZGE3NjM5Njc5ZmU1YWJhOWE3MjM5MjI0MmFlZTY1IHRpbS1vYm1hbGxvYworNDI3MzcgZjhmZmE3Y2JmOTYwNWRlNThjYzRjZjc4N2U3N2E1ZGY1MmE0OThlOSBsZWdhY3ktdHJ1bmsKKzQyNzM4IGFmOWY5YjU5M2E1MzZkNzI4ZDJjNDc4ZGU2NmYwNTg2Y2Q1MDE0NDggbGVnYWN5LXRydW5rCis0MjczOSA2NGZmM2IyMjVkNDg1MTYxNTRkNDUxY2ZlZThjNGYwNGQ3M2QyMGVhIGxlZ2FjeS10cnVuaworNDI3NDAgMzU2MTJhMTMxYWM2MjQ4MTQ5OTgyNWRkYWMyMTAxYjlkMmFmODNhNCBsZWdhY3ktdHJ1bmsKKzQyNzQxIGE1NDk0ODE4MGEzZGUyMjllNWUxY2Y4MzVhYzAzYzViY2JkNmJlMGYgcmVsZWFzZTI0LW1haW50Cis0Mjc0MiAxYWVhM2FlY2E1MzVhNjMwY2FkNjM0ZDg0NWIyNDZiZWNjNWJkZjVlIGxlZ2FjeS10cnVuaworNDI3NDMgMTIxMWE2OGIyOGRkMzcxNzc5ZGM0MmE1ODMyNmM0N2FmMmU0ZDNkMCBsZWdhY3ktdHJ1bmsKKzQyNzQ0IGNkN2QyOTE5MTc4Yzc1NzYzNzc3ZTA5NTNiZTExOWRlNTNjNzRlYTcgbGVnYWN5LXRydW5rCis0Mjc0NSBhN2IzNjMyZDBlMDUxNTI1YmY1ODcxZmY2ZjY4NDFiZDIyMTg2ZjBkIGxlZ2FjeS10cnVuaworNDI3NDYgYTAwYTllZWY2MDYzYWNlOTk3ZmQzZTM3OGNmNWM1OWY5ZWEwNmRlNSB0aW0tb2JtYWxsb2MKKzQyNzQ3IDM3Njc5MmJmYjU3ZWY5YjgzNDBmNGJhNDdmOWYzMjVlMmY1YTJkMTIgbGVnYWN5LXRydW5rCis0Mjc0OCAyNWY4ZTZkZGU0YTNiMDk2YjA1YWIzMDczNmExZGM2MzQ2MTU2YWJiIGxlZ2FjeS10cnVuaworNDI3NDkgMmI2NTkyNjhhNzNhYTNlNjg0NTE2ODllZjQyMGQ3ZTk2YWVkMmUxZCBsZWdhY3ktdHJ1bmsKKzQyNzUwIDk2NWJiNGE1NDA5NjYzMmJmMTQ0MWRhZGM4MTM2OTYwMDg3NTRiNjcgbGVnYWN5LXRydW5rCis0Mjc1MSBkODUzYmMwNjg0N2U2NmRhNGE1ZGE3ZDJmNjA0ZmZhNWQ2MTFlZDljIGxlZ2FjeS10cnVuaworNDI3NTIgNmUyODVjNjllZmMwNWI3ZjhiZGJiMDk5MGFlYTdiMGM5M2JmOGQ1NiBsZWdhY3ktdHJ1bmsKKzQyNzUzIDU3MzIyY2IyY2ExMTE3YjdmMGQyYjRjMGRkNTQ2MDFlMGJiZDJmYWEgbGVnYWN5LXRydW5rCis0Mjc1NCAwY2M1OGRiZDg3ZmViZTE4MjBhYjM2NDlkNTM2MjFiZGJmMzk2NTU0IGxlZ2FjeS10cnVuaworNDI3NTUgYzNjNWQwNmZhYTAxZWNkMWY2N2JlYTUxNWEzZjJiNjhhYjQ1ZDY1ZiB0aW0tb2JtYWxsb2MKKzQyNzU2IGY2NjZiYzlmNjE3ZDg3MDJjNDU4MjI4ZmM2NDJhZmY4MjEzYjFlNjIgbGVnYWN5LXRydW5rCis0Mjc1NyAwOWQxNzQzMGY0YzI1YWM0OTQyYWRmNmIxNjM3MWFhNzI1ZjBhMGIxIHRpbS1vYm1hbGxvYworNDI3NTggMGUyY2Q5NGM1M2E5OGEwODQzZmVmN2JmYjIxYmQxMTk1ZmQ0NzI2YyBsZWdhY3ktdHJ1bmsKKzQyNzU5IDQ4YTI4YjM1ZGQ2NDU1NjVlYTJjMjRhMzRhNGNkMzUwZWMyM2E0YjQgbGVnYWN5LXRydW5rCis0Mjc2MCAwMmQ5YjQ3NjlhODhlODZlZGVjMmE4MzEwN2JkN2Y3OGEzOWEyNTE0IHRpbS1vYm1hbGxvYworNDI3NjEgNjA0YTEyNmY4M2MyMTRmNDA5NWQxOTU4ZDYwZmEyYTE2NjI5ZDc5MiBsZWdhY3ktdHJ1bmsKKzQyNzYzIDY4ODc5NTg3M2ZmMWNlYTE0MDhmNGYyYmY4YWQyNDMyOTg2NjVhNGEgbGVnYWN5LXRydW5rCis0Mjc2NSAxZThjYjQ3YmVhYWE0OGRmODU2ZjdkZmJjNjczZjM0ODQ2YjVjODMyIGxlZ2FjeS10cnVuaworNDI3NjYgZGY4NDNiMDdmNWZlMGE4YzMyNGU0MTA1MjZiZDYyM2NjOGUxODQwMyBsZWdhY3ktdHJ1bmsKKzQyNzY5IDg5ZDY5ZDkyMTJhMmRjYjkwZmM4NGYyYTAwZTVjZDdhMGM2ZjgyODkgbGVnYWN5LXRydW5rCis0Mjc3MCAwNDc0NzFjYjllNGQ5N2I1NzM4NzNjNzBhNDgwYWMwZDg3OWU4M2JiIGxlZ2FjeS10cnVuaworNDI3NzEgNzI4NWMzN2Q3NjMzZTRkZTNkYjU3YjRkOWY4ZDUyMTM0YzJiMzU0MyBsZWdhY3ktdHJ1bmsKKzQyNzcyIDhkZGNhYWEwOGZkZGVkM2YxZjgxZTJlNWNiNTZkNGNlY2ZkNzdjZTMgbGVnYWN5LXRydW5rCis0Mjc3MyA0MjQ4N2Q4Y2YzMzgwMDhmODE0NzMxZWMzZGQzYmNhYjM3MmIxMWI5IGxlZ2FjeS10cnVuaworNDI3NzQgMDRkMThiY2Y3NTE5ZjgyZGFhZTU5ZDhlZDJiZjkyZDgzNjdlODY1MCBsZWdhY3ktdHJ1bmsKKzQyNzc1IDUxNWVmN2RkMTZiZDk3ZDY3MjVlNjdjMjQ2NGZlYzUwNGFjNTM1MjMgbGVnYWN5LXRydW5rCis0Mjc3NiA4OGRmZDMyODFmNzFkN2NhZDUxNjgwNzk2Y2RiYzgwODRlNTYzZmZmIHRpbS1vYm1hbGxvYworNDI3NzcgYmQwNjQxZDYyNDYyNTM3ZWQ0OWVmM2U4Nzg4Mzg4NzU0MTFkZjA5NiBsZWdhY3ktdHJ1bmsKKzQyNzc4IDhlYWY5NTMxYTJkZWQyOTZkMDFiNjQ1ODdkYjU5ZWNhNzkwN2NhZjkgbGVnYWN5LXRydW5rCis0Mjc3OSA2NTgyYTQ0OTBkMWFhYjE1YzVhYzRlNzY3MzBiZDBiMzcwMGQzZWVhIHRpbS1vYm1hbGxvYworNDI3ODAgYzU1MmYyMjc1NzgyY2Y2MmI4YWI0Y2M4MTg3ZjE3YmI1NGM2Mzg2NCBsZWdhY3ktdHJ1bmsKKzQyNzgyIGUwMWYxN2MyN2VmMzBjOWY0YzgzNzMzNjI2MzE1NzA1YjE0NGMwMzggdGltLW9ibWFsbG9jCis0Mjc4NCBhMDBiZDNjZGI3Mjg3YWFmYjM2YzRiYjQ4NWVjMGM4YWZmZTZkMjQwIGxlZ2FjeS10cnVuaworNDI3ODUgZDVlNWE1ZDlmZTdjMDI1NDdmMTk4ZDlmMzkzZDIzODFmZmU4Y2M2ZSB0aW0tb2JtYWxsb2MKKzQyNzg3IDcwOTlmNmU2ODE4M2VjYTY0OWY4MTAwYzM5YWYxYzJmMDNjM2Q1MzIgbGVnYWN5LXRydW5rCis0Mjc5NCBkZTQ4MTZkMzQ0ZWVhNDg1OGU2ZjRjNzIyZDNhM2ViNGFhMDE0YzgwIGxlZ2FjeS10cnVuaworNDI3OTcgYjFhM2MyMjM4Zjk3ZTFhNjU1MmY5NWQwNDhlNTM0NjcyZmY5OWJhZCBsZWdhY3ktdHJ1bmsKKzQyNzk4IDJjMmRmZmUwNzBkZjI4MzYxMjg0MDhjZmIyMmI1NzRjODVjOTY5MDkgbGVnYWN5LXRydW5rCis0Mjc5OSBlZjg3NzlkNDU1ZWM1Y2M5NjRlOWFiN2E1ZGM1Yzc2NjdjYjljM2U5IGxlZ2FjeS10cnVuaworNDI4MDAgYWJhNzNiNDY4MDNjNzc5MGIxYmM5NWIyNDk2MTQ5MjA5YjUyMmYxOCBsZWdhY3ktdHJ1bmsKKzQyODAxIDFkMDU1ZWJkODMyMjlmYTc3MGJiZDZkNjFhMTNkOTg1MGE2MTRiNDIgbGVnYWN5LXRydW5rCis0MjgwMiA1NDc1NGYwZDI1YzcyZjdhNWYxYTllZjk1YTViNDZjZGQxMzJkN2ZmIGxlZ2FjeS10cnVuaworNDI4MDUgN2EzMGRjMmFmMzI5Mzg1ODEwNWQ0NTE2OTY4NTc2MDkyMzA0YjJlYSBsZWdhY3ktdHJ1bmsKKzQyODA2IDZiN2NhM2IyMDFmM2VmZGZhY2Q4N2VjN2VlZTc0Y2MyYTM3M2ViNDAgbGVnYWN5LXRydW5rCis0MjgwNyA0ZjJhZjU2ZDhlYmU0ZDAyN2UxMzMzZGE5OWUwM2ExZTY1MzJjZjBkIGxlZ2FjeS10cnVuaworNDI4MDggYmMwNzk3YjA2YTk5ZWJjNmVhNjc1YjUxNzA4MzJiZGViN2M1ODZlMCBsZWdhY3ktdHJ1bmsKKzQyODEwIGQzOGFiNWNhZDk0NWIzNTRjMzFmMTAxMTQwMzRiNjVmMGEwODAyMDggbGVnYWN5LXRydW5rCis0MjgxMSBiYjVlMzA0NjdmZTRkMTc2MmU1MDgxODM5NTVlZDhhNzM0MTUyYTgyIGxlZ2FjeS10cnVuaworNDI4MTIgYzFjNDYyMTBiNGI3ZTQwZWNjNWY1MzczNzY1MTQyNjljMjgxZGJmOCBsZWdhY3ktdHJ1bmsKKzQyODEzIDEyYmNkMTZjMzFhZGU2ZmQ0NTNjYTk0NDA2Y2IzZmJhNmY0YzEwYmQgbGVnYWN5LXRydW5rCis0MjgxNCBkMDJiNGNmZWZhMGEwYmU2MGNkZWZiMDcyMDM2NGE4YTA4NTNhYjgwIGxlZ2FjeS10cnVuaworNDI4MTUgN2E2YjE3NGRkZWYyZjE4ZTMwZDdlZmM3OTQ1NDVjMzFkOGZhOWIwOCBsZWdhY3ktdHJ1bmsKKzQyODE2IDA3ZjMzMGFkMWI0NzVlMmFiNzU2YmM3MzIwMGYyYWIyNDBkZjk0OTUgbGVnYWN5LXRydW5rCis0MjgxOCA5YjlkODM5MWI2NzFjYzVmMGU1NjUwYjI5M2FlNGI4MDAyOTQ4OGQ4IGxlZ2FjeS10cnVuaworNDI4MjAgZGI2MTMxYzVhZTVhYmYyMDhmZGUxYjM4NGY5ZWE3MGM1YzAxZTBhZSBsZWdhY3ktdHJ1bmsKKzQyODIxIGIyNDE2ZmFiMTNmZTZkM2ZkM2Q1N2UzYTM0YTFiYWUyYTIwMzM5YzUgcmVsZWFzZTI0LW1haW50Cis0MjgyNSAxZjU4NDE2NGUwMTMxNzYxYTVhYzJjMWFlZjE1MWQ3ZjMyMWY1ZGM4IGxlZ2FjeS10cnVuaworNDI4MjYgNjUzZDg1ODVmMDgwYTAxNzk2MTc5YmY1NGY4NjA4MjEyNWNhODcxZSBsZWdhY3ktdHJ1bmsKKzQyODMwIDc0NzAxZTRmY2RhZDBmOTQ4NTkyMDVhMTExMTQzYjcyZWYxZmY2NTkgbGVnYWN5LXRydW5rCis0MjgzMSBiYWM2YmQzNDNhMTI0N2I4MDc1YjIxYzI3ZGY3NTVjNmY2YzMxZmYxIGxlZ2FjeS10cnVuaworNDI4MzMgM2M1MTlhNjEyYmRiN2VjYTI0MzIxMzcxOTY4NDJkNzdlNzJmM2U5ZiBsZWdhY3ktdHJ1bmsKKzQyODM0IDllODE3ODhiMGQ0YjU5MTJkMzJmOWEwNTk2NzczNzI0NGZmNTIwOTYgbGVnYWN5LXRydW5rCis0MjgzNSAwYjc4MDk2NjA0NTZmNzkyMmQwNjMwNjcxNWI2NzVkNTkxNWRlOTY5IGxlZ2FjeS10cnVuaworNDI4MzYgOTEwOWIxYTBkMjY1ZTFhZWZjNmZiMjgzZDY3ZWY4MjhkY2E5OGUwMyBsZWdhY3ktdHJ1bmsKKzQyODM3IDAxYmM4ZWUzZDJmZjg0NmM0ZjdhMzNhNjE5ZTBiMjg2YjViMjVkMWEgbGVnYWN5LXRydW5rCis0MjgzOCAzYTNhZWQ0OWIyNDU2ZTkxN2Q4YjY2MjA2MzhkNjI1MTc5ZjhiZTNlIGxlZ2FjeS10cnVuaworNDI4MzkgZGVkYzJjOTRkMTEyNjI0NDE4NTYyY2VkMDNjMDRjOWJjNTFiNmY3ZCBsZWdhY3ktdHJ1bmsKKzQyODQwIDdjMWFjYThlM2Q3ZDdhNWFiOTI1NWJmMzFlNDk1NGI1ZTVkNTJkN2EgbGVnYWN5LXRydW5rCis0Mjg0MiBiMTkyOWU4ZDE1Zjk5OTk0NGE1MmE3Y2FmNjc5NDFlN2I0NWVjMTdjIGxlZ2FjeS10cnVuaworNDI4NDMgZDNkMGRkOTJjNzMxYWI3ZTBhYzQ3YmYyYWQ0MWE3ZTUyNGVkYzk2MiBsZWdhY3ktdHJ1bmsKKzQyODQ0IGE5NjliZDE1Nzg4ZjUxNDA1MTc3Zjk0MzJiYWY2MTM1YmNkNzJjMzUgbGVnYWN5LXRydW5rCis0Mjg0NSAxODQ4ZDc1YmJkYjM4YmQ1YzQ0YmQyNzYwMDBlOWVjMWU0OTExMmViIGxlZ2FjeS10cnVuaworNDI4NDYgNDI4NGIzMzI0Y2UyZTRiNjQxZDBhMjc4YzQ3MzQ2ZDliMGNmOWM5OSBsZWdhY3ktdHJ1bmsKKzQyODQ3IDM5MWY3NGM5YzI2MzY4MDk3MDM2ZmM0ZGQ0MDkwNDVjMzMyY2FhYTcgbGVnYWN5LXRydW5rCis0Mjg0OCBhZGJhYTllYmE5NzU0M2Q3YTExZDNlOTU2NTdlM2MxZGViMDg5MzRhIGxlZ2FjeS10cnVuaworNDI4NDkgNGNjZWY0Nzg4MWY3OWQ5MzhmOTEyNTk4ODE4OTI4YTA0OTNlZDEwZiBsZWdhY3ktdHJ1bmsKKzQyODUwIDJkMWRmMjRlMzNkZjcxMGU0ZDM2N2M4ODJmMWM2N2IwN2E2ZTFkMDkgbGVnYWN5LXRydW5rCis0Mjg1MSAzYjY3NWFjOWE5MjU0ZTEyMDVkMDI1MDQ2NzczNzIwNTk4YmM0ODk4IGxlZ2FjeS10cnVuaworNDI4NTIgOGNkMTUyNzQ2Mzk4Nzk3ZDg2ZDBlNzZhYTA2NjA3MjgzNzI5ZGFhNiBsZWdhY3ktdHJ1bmsKKzQyODU5IDZhYWFkYmFiMzUzMDE1NWVjMTlkODFjZGEzYmRhYmIzMDYxZmM2ZjEgcmVsZWFzZTI0LW1haW50Cis0Mjg2OCBmODBjYTcxM2JiNGJlYTM1MzkzOTBjMjExMzc1NjdhZWJlZDAxOWM1IGxlZ2FjeS10cnVuaworNDI4NzAgOWIxM2RhNjQ3YTVlYmI1NTJiYjg3ZjA4YTU5ZTAzYzZjZDkzNjE4YSBsZWdhY3ktdHJ1bmsKKzQyODcxIDhlMGYwZmIxNGQzNThiN2JmYzI1YWNiYWZmZmYzYzNlNGE1NjUxMWYgbGVnYWN5LXRydW5rCis0Mjg3MiAyMDRjMzA3YjAxY2U1N2VjMzdmZWIxYmZmM2RkYzYzMmVlNmFmZDNmIGxlZ2FjeS10cnVuaworNDI4NzMgZmUwNzM2Y2NiYTc1NTE4MDcyMzQ2MzczYjlmMzJjNTg3MTk4OWU0ZSByZWxlYXNlMjQtbWFpbnQKKzQyODc0IGNkNzJlYjU1ZDVmOGQ4Y2NhNzFiOTBiNDUyNGM0YTY1MDU5NjgzZWIgbGVnYWN5LXRydW5rCis0Mjg3NSA3ZmFjNWQ3OWQwNDNiZmFlOTcxMTFmMDU3NGJjOWE3MGIwZGI0YzJiIGxlZ2FjeS10cnVuaworNDI4NzYgNGY2MjhlY2MzMGNiMmViNGUyM2U5NDVlYzAyNWMyN2M5NzAwMWQ2YiBsZWdhY3ktdHJ1bmsKKzQyODc3IDhlYmY3OTk3YzZjZDU2ZTgzYzgzZDZmMzBlNDg1YTcwZTUzY2M1NDYgbGVnYWN5LXRydW5rCis0Mjg3OCA4OTUwNzRlNWVkM2FiODBhNDYzYjEwZTZiYTk4Y2QwNjU4ZmFmMWEyIGxlZ2FjeS10cnVuaworNDI4NzkgMWUwNDNhMTI1YmU2ODNmNWI0MTA0Nzg4MzU0NzFjN2JlODdlNjNjMyBsZWdhY3ktdHJ1bmsKKzQyODgwIDJkMjRmM2EzN2ExYjM1ZjUzNDNlMGEwMTExNjg1ZDEzYmVjYTYzNmYgbGVnYWN5LXRydW5rCis0Mjg4MSAxZTE5MTM5MmVjNWM2MTgyZWM2NmNjZTE2MzkzNjI4Yzg1MDBhNTczIGxlZ2FjeS10cnVuaworNDI4ODIgMTVkMzMyOTU2MTVmNmYwYTQ0YTlmZjg3ODA3MzEzZjBhNzkxOTBjMCByZWxlYXNlMjQtbWFpbnQKKzQyODgzIDllYjI0ZjkyYTc4NGJmMGNlYTY2Y2MyYmNjNjZjMWVkZWYyYTRmMGUgbGVnYWN5LXRydW5rCis0Mjg4NCBhNzM1ZGY1NTJmMDJkOWZhMTk5NjMyYjI0NDA0ODZlMDllYjU2Yjk0IGxlZ2FjeS10cnVuaworNDI4ODUgZTYyNzY3ZTY0ZGU4MTk2YzUyMTJmODRiZmMxOWY5ZjEyOGEyYzI1NCBsZWdhY3ktdHJ1bmsKKzQyODg2IGM5MTIxNTY0MmRjZDQ1ZGUwMGUyN2NkNzNmMWU1M2I5NDgzZjgyYWMgcmVsZWFzZTI0LW1haW50Cis0Mjg4NyA0NTU2NzJhOGY4Nzc2MWM3MGViNjRiMDNmODhkMDhmOGMwOGQ4MTE0IGxlZ2FjeS10cnVuaworNDI4ODggMjU3YWQ4OWQ5MmRmODQ1MjIzNmI4ZmVkNjdlYjgwYWU0MjU2YjBmYSBsZWdhY3ktdHJ1bmsKKzQyODg5IGIxNmU1MDQ0MTNjM2I4MzQ2YzU4YTE1ZmI4ZjE1YTMxOGM4NDBhNGYgcmVsZWFzZTI0LW1haW50Cis0Mjg5MCA3OGM5YWNiYjQ2M2MzM2FmM2FkNTZiOTY4NDEwMDY0MTUxNTliMTdhIGxlZ2FjeS10cnVuaworNDI4OTEgOWJiNTkwYTBiN2ZiMDRhNjU2MGM3M2UzN2VlMmM4YjMxYjZjYWRkOSBsZWdhY3ktdHJ1bmsKKzQyODkyIDY4YTA5NDNkYmJlNTMzZGIyOGNiMjZiN2NmZDE3MTVhZGZiNzhjNDEgcmVsZWFzZTI0LW1haW50Cis0Mjg5MyBjYTRiYmNiYmQwZDU5NTBmMTAxMWJjOTFkNjYwZGQ2MTZkMDIxOGViIGxlZ2FjeS10cnVuaworNDI4OTQgZTlhN2EyNzg0ZTE3ZWZiYmEyMzA4ZTFhY2FkNjY3ZmNiYmVmZDI4MyBsZWdhY3ktdHJ1bmsKKzQyODk1IGFjY2ZiMTU2ZjljYzY0MWVhZjRjMjNhMzllZTc0YTEyY2Q5MjVlMjMgcmVsZWFzZTI0LW1haW50Cis0Mjg5NiA4ZDQxZGRjMzFlNjFlNjNiMjJlMTI3ZjJhNWJlZGRkODgxNjQ2ZmIxIGxlZ2FjeS10cnVuaworNDI4OTcgYjIyYzQ4ZmU2MmE0YjI4NjQzOGRhNzQ0YTJhMzU1MjgyMmZlYmUyNiByZWxlYXNlMjQtbWFpbnQKKzQyODk4IDQ3MDZiN2ExMjU2YzI5Yzc0OTdlOTRiODZiN2I3NDk1MzcxOTNjMmUgbGVnYWN5LXRydW5rCis0Mjg5OSA2YTljNzE2NWIxN2JkYjdiODUxMzZlMWVlMTMxNThkYWMyODA2NDdmIGxlZ2FjeS10cnVuaworNDI5MDAgYjE3ZGE1ZTBhNjk3YTBmZmQxOTFkNWY4MGU4MTZlNjQ5MTg2YTQ5MyBsZWdhY3ktdHJ1bmsKKzQyOTAyIGNkZTc1NzMzNTQ5MjlmYmI5NjVlNTBiZjM2MjE3NGUxMTAwNDY4YjMgbGVnYWN5LXRydW5rCis0MjkwMyBkYjU2ZjU3MGIwY2ExMjA1ZjNlNDRiZWYwY2RjMWNhYzMzMDZlOGEyIGxlZ2FjeS10cnVuaworNDI5MDQgZDM0MmIwZGM0OTM0MTRmYjIzNGM1OTkyMjM4MjkxMjRlOWJmMzczMSBsZWdhY3ktdHJ1bmsKKzQyOTA1IDEzYjk4ZDBhN2JhYThiNmVmYmUyZDNmMWJkZTMwMTQxYWZhODQyOTQgbGVnYWN5LXRydW5rCis0MjkwNiA3Y2Y1ZDliYTVmOTdlYWEzYTQ4NjdhMDNiOWNiZjI5NDBiN2U5ZGZhIGxlZ2FjeS10cnVuaworNDI5MDcgYjQ4YmE3Y2Y0NTc2ZWI1Y2EyODk5MmU4Mjg4MDgwNDE3MjMxNDdlYSBsZWdhY3ktdHJ1bmsKKzQyOTA4IGY2YjdlMGMzODRkYTlmZGRjMzBmNTAyMDk5ODhjZDg3NDY2MTViNzUgbGVnYWN5LXRydW5rCis0MjkxMCBhOTY5N2RlNWUxOGJmZjQyMDEzYmUwNDg4OGJhODlmMzMwNDVjNzNlIGxlZ2FjeS10cnVuaworNDI5MTEgNjMyYTRkYWE4ZDRhZmUxNTM3M2QzM2MzMmNkOTM5ZmU5NDJkZjE5OSByZWxlYXNlMjQtbWFpbnQKKzQyOTEyIDRiMzQ3YzY1NDYzNWY2YTVlNTJmYzJlYmQxMzA3OWY3ZDNmNDMzNmQgbGVnYWN5LXRydW5rCis0MjkxMyA1NTJkZDVmZGI5ZDg0ZmM3ODExNWY0YmJlZDJjNTM0MGQwZjdhYjIyIHJlbGVhc2UyNC1tYWludAorNDI5MTQgZmQ3MzU1OTZmNjljMWNiYzM4MDZjZTA4Mzk5N2IxMzk1NGY3ZWI4MyBsZWdhY3ktdHJ1bmsKKzQyOTE2IDQzNWY3ZjNjOGI2ZGE0NzVlYWU1ZDQ2OWUyY2Q5NjIzMjMzMjFlOGEgbGVnYWN5LXRydW5rCis0MjkxOCA2ZjJlZGE0OTVkOWRlNmI2OGYxODUyZTBlYjQ0NjAzNGIzNzgxNTMwIGxlZ2FjeS10cnVuaworNDI5MTkgMjc5MDVlYmFkZGFiNWRkYWM1ZmUwMjk1NTFhNGU2N2M3NTQ1YmRmZSBsZWdhY3ktdHJ1bmsKKzQyOTIwIDAwMjNjMGNmOGZlYmMwYjlhZjNjMTI1MTY1MDE0MjAxN2ViOWU5NzkgbGVnYWN5LXRydW5rCis0MjkyMSA5MjI3YWUzZGI3ZWQxZTJhNGFmNDNiMmM3YzI4NzE3MjFiZjMxNjFmIGxlZ2FjeS10cnVuaworNDI5MjMgMTJiMDgxMjNlY2JjY2Q4MmUxODY0OGM5ODBlNTBiYjA1ZGQ4YzIyMSBsZWdhY3ktdHJ1bmsKKzQyOTI0IDRkZWRjMDVhZDZiNDc2NGFhNTJiZDUwNDQ5ODdlZTQ0ZGVkMWI3ZTIgcmVsZWFzZTI0LW1haW50Cis0MjkyNSAyMTAzM2JiN2VjYmUxOWExMTRlNzVlMzZhNzUxYjJmY2ZlYzMwNDkxIGxlZ2FjeS10cnVuaworNDI5MjYgNTZhNGNmMmIwMmZkZGNmZGQ3NjZmMzVjNzYyYWQzZTYwMWYwOTZmMyBsZWdhY3ktdHJ1bmsKKzQyOTI3IGNhMjlkZGE1NjNiN2E0NmE0ZmNlMzI3YzU4ZWIzMTQyYTFjMmExZmUgbGVnYWN5LXRydW5rCis0MjkyOCA5MDJlZjFkYzI5NzliNmNiZjgyODE3ZTM1YTM4MGQ0YTcxOGQ3NDBhIGxlZ2FjeS10cnVuaworNDI5MjkgNjllYjZkMWI5OWY1NmQ2YTY0NDk1MmNkMDgyNzZhYWI1YzVkZjQ3NSBsZWdhY3ktdHJ1bmsKKzQyOTMwIDNlMmI1NzQ3MDM4ZmZmZDQ2NTdmMzRjOTk3MGIzYmQxZDQ3N2M3NDMgbGVnYWN5LXRydW5rCis0MjkzMSAwYmY1MzYzOTAxNGE5NGJiM2UwODNmZDQxOTliOTAzMzQ0MDI2OGMwIGxlZ2FjeS10cnVuaworNDI5MzIgOTFhOWUyZTMxZTkzMGQ0NjE2ZWJmMDdiMmU5MzNhYTViNTdjMjc3YiBsZWdhY3ktdHJ1bmsKKzQyOTM0IGI0ZTg5ZDI5YmVhOGM0NWNmMmJhYWFjYzlkMWYxMGI4ZGMyZTEzNzQgbGVnYWN5LXRydW5rCis0MjkzNiBiMjE4NGQ5MTBhMDBmODE2OTYzNjQyOGRlNjkyNDIxMDAyMGM4MTkwIGxlZ2FjeS10cnVuaworNDI5MzcgMGUzNmU3YzY2YjhlOGE1YTNmZTI5ZmIxMDlhMDNkYzc5NGZhOGRkYyBsZWdhY3ktdHJ1bmsKKzQyOTM4IGYxZWFhZTdmOTYyZDNmN2ExYWFkMzEyOTRhYzU1MmEwMTI1MzExNTcgbGVnYWN5LXRydW5rCis0MjkzOSAxOGY5MTFkZGUzZTI0MDBkZGViMGJkZDAyZWNjZWVhZmNjNGJkODY1IGxlZ2FjeS10cnVuaworNDI5NDAgNTAyYTY4ODg3NzgzOTk5YmFmNTg0ODQxMDM1MGE4YzIwZDNlODNjZCBsZWdhY3ktdHJ1bmsKKzQyOTQxIGQ0MGI0OGRmODNlNzk0ZDlhMmMwNDAwYTk1ODUwMWZmMGIzMGNiMGEgbGVnYWN5LXRydW5rCis0Mjk0NCA2ZTliMzY4Nzg5ZGYwY2U1NjYzZTMxYTUyMzkzZmQyZGZlYzI2OTE4IGxlZ2FjeS10cnVuaworNDI5NDUgMzY1MmI1MTI4YjcwN2RlODMzMTE0MGI2ZWQ3MjNhMzE2ZDhiYmM4YiBsZWdhY3ktdHJ1bmsKKzQyOTQ2IDc5ZDViN2Y3N2FjNDU5NGYzMzdlNjQ0YzBmYzhmYTkzMTBjNWY3ODggbGVnYWN5LXRydW5rCis0Mjk0NyA5N2QzODc5N2I4YmMwOTdhYjNmMGEzYjczMWJlMWUwOWFkOTI1YzgwIGxlZ2FjeS10cnVuaworNDI5NDggZDNkMmY5ZmZkYzA2NTQwYzZiOWVhYTgzODZhNzFhOTE5YTVjODQwOCBsZWdhY3ktdHJ1bmsKKzQyOTQ5IDgwNTgwMDE4MWUwZTE5ZmU2Y2EyY2MwMWNiYTg5ZTdiZWY2YzFkZmYgbGVnYWN5LXRydW5rCis0Mjk1MCA0OGUwYTVlMzk0MDNiYTFmZjBlNDdjM2RjNzExZjk1NzY4YjUxZmI1IGxlZ2FjeS10cnVuaworNDI5NTEgN2MxN2U5MjIxZjk0MWY2YTFjZGQ0MDcxZGNlY2ZhMmJkZDYyMzAxZSBsZWdhY3ktdHJ1bmsKKzQyOTUyIGZjMTBmZjMyMmRmMWI3OTNlZDg1ZmM4MjQyNWE1YjM0OTJkMzhmZjYgbGVnYWN5LXRydW5rCis0Mjk1NCAzMjY2YTAyMGEwZGFiN2YwYTcyOTRiYWU5ODFmNmU0NGI4YWZhMjFmIGxlZ2FjeS10cnVuaworNDI5NTUgMTFmOGI1YjhjZTIwMTg3ODY5YTllOTdhMmJhMDc3NmVmNzVmZDRjNyBsZWdhY3ktdHJ1bmsKKzQyOTU2IGZhYjQ0YzVjOGRmNDJiOTUzMTFlNzU3ZTMwNWY3OTExYjhlNWQ3MDUgbGVnYWN5LXRydW5rCis0Mjk1NyAyYTkwNTZmNGMxNjQ3NjYzNDY2MDkxNjI3YzJkNmZkZDE0ZWRjMGUzIGxlZ2FjeS10cnVuaworNDI5NTggZGI0NjUwNDkzYzJiOGUzOTJjOTkyYWM1MjMyNDRmZGY2ZTFiZGY0NyBsZWdhY3ktdHJ1bmsKKzQyOTU5IGFlNTlmY2VkMmUxNDJkNGFiZmQyMmM3YjE5NzQ3MjM1ZWIzYjc3OTAgbGVnYWN5LXRydW5rCis0Mjk2MCBlYmViYTczNTM4OTQ3ZGYzMjcwMGY4MzdjODVkNDVjMjAxODMxOWVlIGxlZ2FjeS10cnVuaworNDI5NjEgZjEyMGY3NDBhYmU0MWU2NzdhNjFhZjM4MDk3ZmM1Y2ZlZTgzYmNiZCByZWxlYXNlMjQtbWFpbnQKKzQyOTYyIDA2ZTNmNjI3YWQ5OTU4OTg5YjU2ZWQ4OWEwZGNlZDY1M2FhNDYxYmEgcmVsZWFzZTI0LW1haW50Cis0Mjk2MyBlMjU2YjUzMDJiNTVjMzg0NzFlM2MyNTczM2M5NzFmYmUwMDkyYjhjIGxlZ2FjeS10cnVuaworNDI5NjQgZGY0M2MwNGQyNTU0NWVkNGJiZGU1YzAzZGU5NGQyOWNiNDFiMDdkNSBsZWdhY3ktdHJ1bmsKKzQyOTY2IDFkZDY1MjA0YzA5ZmU3ZDc5MWY2MTlmZWI1YjU0Y2FkMTE2NzA5NjkgcmVsZWFzZTI0LW1haW50Cis0Mjk2NyAwM2VmOTg3MDQzY2UwMGU5MDQ0OTBmY2Y5ZjY0MjkyODc0NDE4ZDhmIGxlZ2FjeS10cnVuaworNDI5NjggZTQ0NjVkMjczN2M0ZTc1ZGQ2ZTQxYzA2MTM1YTZlNGVhYWVkYzdmZCBsZWdhY3ktdHJ1bmsKKzQyOTY5IDY3MTg3N2QyMmExY2M4ODI4ZjI3M2RmMjJiMWM0YzEwZTYyMzYxYzQgbGVnYWN5LXRydW5rCis0Mjk3MCA0Yjg2N2U2NTRhOGE0Y2MwNzMxZWJjMzVmYWYxZjUzNTg1NTE5NmFhIGxlZ2FjeS10cnVuaworNDI5NzEgZjA2MTI1YTlkNDA2MzU3MTVkOTY4NTJlM2JmMzljZDg1MzMzNmVlMCBsZWdhY3ktdHJ1bmsKKzQyOTcyIDczNTFhYWI4N2U2ZGUwZmIzYmVjN2U0ZDllYjg1ZGY3MGZhNWMwOTcgbGVnYWN5LXRydW5rCis0Mjk3MyAwZjE5YTZmYzk3NTYwN2E2MGE0MDI2ZGY4YjNiOTNjMDExZjMzZTAzIGxlZ2FjeS10cnVuaworNDI5NzQgZmRiMDVjOGFkNTMzM2EzOTE3ODA3ZTU4NmVmNDRhNWE4M2FkMmJkYyBsZWdhY3ktdHJ1bmsKKzQyOTc1IDQwMjU2YjU0Yzc5MDYwYjYwNGQ2MDNkYzEyM2IwYTg3NzY4YjY5NzEgcmVsZWFzZTI0LW1haW50Cis0Mjk3NiA2OTEzZWJhNzhkNDA3OTEwYzJmZTZlOWQ5MWYyODc5MTdhYmVmNjFjIHJlbGVhc2UyNC1tYWludAorNDI5NzcgYzc3ZWNlNjY3MDlkMTdlNTc0OTU1MmUyMTgyMDkzMjM0M2E1M2M2MyBsZWdhY3ktdHJ1bmsKKzQyOTc4IGFiMDAzMTljMzc0NDg2MTA1NGNiMTBiOWVmYmEyYWZjNzkxZjBlNmQgcmVsZWFzZTI0LW1haW50Cis0Mjk3OSA5N2ZlZDYxOGI1ZTcyM2E0ZmEzYWNlNDM2OWIxOWUwY2VkODU5M2Y0IHJlbGVhc2UyNC1tYWludAorNDI5ODAgMWE4NDY1YmFmMDdkZDRmNzI5YWJlMjRmZWQ3NTg2NTc0YWJmZDU4MiBsZWdhY3ktdHJ1bmsKKzQyOTgxIGM5ZTQ5MTM4ZjY1OWIxZTE0OTkwN2MyYWU1MjY0ODM2YmIwYjM1MjMgcmVsZWFzZTI0LW1haW50Cis0Mjk4MiBkYjVlNzIwYjBjZWY5ZTI4ZmJjYzIzZTdmYzI0NzVhMGQyZmNhZTQ2IGxlZ2FjeS10cnVuaworNDI5ODQgOTU4NDI1MDA3ZWE2YThhNjkzNWQ2YTQ1ODgzZmQxMzIzNGY2N2U3NyBsZWdhY3ktdHJ1bmsKKzQyOTg1IDNiZTI0MjVkNzc0MDBkODg3MjdlNDk4NjcxY2YzMWI5OGEzMDUwYWYgcmVsZWFzZTI0LW1haW50Cis0Mjk4NiBjYjk4NGE4YjExMzQyZjBiZTE2MWViNDhkZDkzN2EyOTZmZmM5NDFjIHJlbGVhc2UyNC1tYWludAorNDI5ODcgNDMwOWIzZmI1YjQzNWVlYTkwMjFhMTE1OWM0MjhlMDA5YTQ3NTRjNyByZWxlYXNlMjQtbWFpbnQKKzQyOTg4IDMyYjg2OGE0OTY1OTMwOWM5NTkzMTljMjBiZjg5OTU1YTkzNmY4OGYgbGVnYWN5LXRydW5rCis0Mjk4OSAzYWQ0MmY5OWE2ZGJiN2ZkYzA0N2UwYzkwNjViNTEzNmJiOTY5N2VjIGxlZ2FjeS10cnVuaworNDI5OTEgZGRhNDI0MWY5YWJjN2VhMWVkZDI5Zjg3NWI1YTEyZWIyMTRlOWI2MiByZWxlYXNlMjQtbWFpbnQKKzQyOTkyIDNkN2FkZjg4NzRhYzU4YjgzODZmY2Y5M2FiZGY3NTNmOTA3ODFkMDggbGVnYWN5LXRydW5rCis0Mjk5MyA4MjkyZTNlNmVjZmVhOTdhZDI5ZTE3ZmNjMDAwMzZiMWNhMDBhMzYwIGxlZ2FjeS10cnVuaworNDI5OTQgN2ViMmMwZjBkMGZkNjY1MTI2ZDFhNWUyOGRmNWE3Y2I0YTViYzE3MyBsZWdhY3ktdHJ1bmsKKzQyOTk4IDlhMDg3MjQxMTBkMGJlYjk2ZGI4MWMzMjk2YjY4NjYyMGEwY2YzZWUgbGVnYWN5LXRydW5rCis0MzAwMCAzMjEwM2M1ZGJlZmFjM2UyYmNkYmZkNDY5MjgwOTJiMDczMGZhMTRmIHJlbGVhc2UyNC1tYWludAorNDMwMDEgYThmZDkxY2QzMTdhY2JiODkxMDhjZTQ2NTcyNzUxMDMxNThlNjVlNCByZWxlYXNlMjQtbWFpbnQKKzQzMDAyIDE1YTQ1ODE3MWViMDA4OTA2MzVhOTExZGE2NGM2MmRkOWVjMDYyMjUgbGVnYWN5LXRydW5rCis0MzAwMyAwYzA0MDgzNTJlZTY5Y2FmZWRjYWE0NjVjZmExYzAyN2UzZTNmNmJlIGxlZ2FjeS10cnVuaworNDMwMDkgMDM1Y2M4NDE0N2ZiMDRlNDg5ZmEwN2FkOTJiMWFlY2M0NjQxOWJmMiBsZWdhY3ktdHJ1bmsKKzQzMDEwIDg1MTg4ZTViNDkxMmY1NGI3MTAwNDhiYmM2MDIwOTkyN2Y1OTliMTIgbGVnYWN5LXRydW5rCis0MzAxMSBiNWExMzU3MDU5MmRkYzk0NzA3YzZjOGYyYWJiYTVkODEyYzkxOGMwIGxlZ2FjeS10cnVuaworNDMwMTIgNmIxYjMyYTg1ZjQ3NjAxZDhmYzk2YTk3ODAzYTA5ZWQ2NGQxM2U2MyBsZWdhY3ktdHJ1bmsKKzQzMDEzIDI5ZTZlN2ExMDdkZTM5MjA1YzU0MGEyODY3YzRjMjZjODY4Nzk4ZDQgbGVnYWN5LXRydW5rCis0MzAxNCBiZGFmY2EyMTkyZDM3ZWIxZjFhZjMwMDk1Zjg1NTViZTM5YjRkYWQ5IGxlZ2FjeS10cnVuaworNDMwMTUgOGMxYmY3OTk5NTJjZjFkMDM0NWIwNzJiYzBkYjQyYjNhZGI3NzMyMyByZWxlYXNlMjQtbWFpbnQKKzQzMDIyIDk1NDY5ZTk3ZmQ5MDAwYWIyOGM3MGY5OTY0YjcyNzlmZTFiMjAxOGEgbGVnYWN5LXRydW5rCis0MzAyMyA0ODA4ZWU2MmIxNTZhNjE5YTU5YzJhODI1NDg2NTEyYTE5YmRlYWJiIHJlbGVhc2UyNC1tYWludAorNDMwMjQgYjNjMzY0MGQ5MmY4NGExMmUwNWUyOTg0NTgxNTVjMDcwZjM0NjEzMyByZWxlYXNlMjQtbWFpbnQKKzQzMDI1IGM4ZmZjOTEzZDAxNDMwNTdjNzUwMzNjZmNlMTIzYzAyNGI1YzY3NTMgbGVnYWN5LXRydW5rCis0MzAyNiBmZjMwMjQyNTlkOTFkNzJiYWU3YTdjM2M3Y2VkZTIyMzIyMGU4OTNiIGxlZ2FjeS10cnVuaworNDMwMjcgZTJhYjc1NWFlNjg1ODBlMGMwMjMzOGI1ODkxOGViOTEwM2JlN2YxZiBsZWdhY3ktdHJ1bmsKKzQzMDI4IDIyZmZmMWYzYzc4YWU1NDUxODgxZDA3MTk2NWEzMjNhOTM5NmNlY2MgbGVnYWN5LXRydW5rCis0MzAyOSBjZGU1OGNkMDdlN2Q4NTA0M2JlZTVmMzJiNjhjOGU0NzgyNzJiZDZkIGxlZ2FjeS10cnVuaworNDMwMzAgNGE4OTZmYzEyMzg0MjcyNDE5MzliZjgwZGQ0MGJjMGZhMDQyZDRiZCBwM3lrCis0MzAzMSA1NzBjNjE2YWNmMGMxNGVjN2E4ZWYyNzQzN2UxNDM2ZjNiMjliYzIwIGxlZ2FjeS10cnVuaworNDMwMzMgMzc1Y2UxYzA0ZTY2YjU5YjFmNzEzZDVhNTQzNmQ0ZDRjZTViMDg3MyBsZWdhY3ktdHJ1bmsKKzQzMDM1IDQ5YzZlYjY4ODkwNmIxZGRkYWJmNTc4ZjA4MTI5ZTY3MjlkNjE1MWYgcDN5aworNDMwMzcgYWJhODE0YWE0YzZhN2JkODJkMWEzM2YwYzRjMDhlMWM4MTE5ZGZmNSBsZWdhY3ktdHJ1bmsKKzQzMDM4IDY5Y2JlMGZiN2E2ZDIwNGIwMTlmMmJjMzI2NzMzNGU5MTIzNGIxODEgcmVsZWFzZTI0LW1haW50Cis0MzAzOSA4ZThkMGUwM2YwNzZhMjQyYzJiNDA3Y2Y3OTVkMWU1MzBlODNmYTg1IGxlZ2FjeS10cnVuaworNDMwNDAgMjUxZjkyMWNjODFkY2MxZDlhNTVmMjVmYjFjNjQxZmY2MDZiYjIxYyBsZWdhY3ktdHJ1bmsKKzQzMDQxIDVmYjU0ZWQ4NTQzYmIwNzNiYmY4OTM0ZDMwNWZkODg2MWI0NWUxM2EgbGVnYWN5LXRydW5rCis0MzA0MiBkOTY5ZTMzOWFjMWU1MzdmZmM2NDVjMGJiZDI4MTVhOTBiNmIxMWQwIGxlZ2FjeS10cnVuaworNDMwNDMgZjkxNDYzMGY0MTljMWM0ZTY4MTIyZmI2ZGM3Y2E1NzRlZDI0YTI1NyBsZWdhY3ktdHJ1bmsKKzQzMDQ1IDdmYTRjMjlkNzAzMDE1YTc5ODE3OWUyZDgxYmY5NjBjOWExMDk5ODIgbGVnYWN5LXRydW5rCis0MzA0NiA5ZDNhMmNkZTBkYmQzMGY5YzcwNWUxMDgzMzZmNjNkN2I0YjAyMjE1IGxlZ2FjeS10cnVuaworNDMwNDcgNDUxZGEzYTUyOTEzMTZkYTFlODg3NTlmNjJhYTQ5OTVlZGViYjUwMCBsZWdhY3ktdHJ1bmsKKzQzMDQ4IDE3OTA4NDg5OWQ5NjliMzc5NTU2ZGZlNjBjZWNkMzI3MDczM2Q2MDMgbGVnYWN5LXRydW5rCis0MzA0OSA4NmYxMzMwMWMzZGI0MTRjZmFkY2E0NTliZTFjYzAzZTdjODk3NjVmIGxlZ2FjeS10cnVuaworNDMwNTAgNTVlNGY0NzY1NzYzZWNmNjYyMGFjM2NiOWQ3MjliMmY1ZWM5NWQzNSBsZWdhY3ktdHJ1bmsKKzQzMDUxIDViMzhkYzU1MWY4NmY4YzViZWIyMzNhMDcwYzRlZThjYmZlMDkxY2MgbGVnYWN5LXRydW5rCis0MzA1MiA0ZjQ0NDEyZTlmNmMxMjdjYjVhMjAwZGUxN2U4YmI4OWQ3MjVmNGExIGxlZ2FjeS10cnVuaworNDMwNTMgM2JmMjMwNjFkODZjZDk0MzVmNTZjNDk0MmMzMzhiMDNmYTdlMmE2NSBsZWdhY3ktdHJ1bmsKKzQzMDU0IDY3MzhmN2IyODJmNjVjNWM5MWMwNWM0MjViZmYwOTRhMWYyNDgwOWMgbGVnYWN5LXRydW5rCis0MzA1NSAzNTRlMjJmM2RhYzZmMzIyZGFjODQ2Zjg2OWQyZTZiMzU3M2Q3ZjE5IGxlZ2FjeS10cnVuaworNDMwNTcgMWRkZjBkODFkNmM1OTBjY2RjYjMzNTIwN2ZlM2E0ODc3MzBjNGNhNyBsZWdhY3ktdHJ1bmsKKzQzMDU4IDYxNGQ4MGRmZmMxZjg4ZTIwMGZjOTcwNmE4ZTc3YjE5ZmZmYTRlZTggdGltLW9ibWFsbG9jCis0MzA1OSA2ODU4NDliZDkwNWM0YWIzZDNiYzYyNTIwMzUwMzQwYWJhOTMyNTEzIGxlZ2FjeS10cnVuaworNDMwNjEgOTc4N2Y4MzBkMDI1YjU4NWM0YWM3NDRlOGNjNzM4NzI3NzBlZjk4NCBsZWdhY3ktdHJ1bmsKKzQzMDYyIDYyNDA5YTFiYzRkYjMyZTRmZTBjOTRmZTkwZmZmNjJiMGRiMGY0ZTcgcmVsZWFzZTI0LW1haW50Cis0MzA2MyBhYjE3ZGE2ODQyNmJhODU0MjQwYTBlOWY5MTUyODVkMzNmN2VhOGM0IGxlZ2FjeS10cnVuaworNDMwNjQgNWQyYWI0ODIzZjNjYzdmZTJmN2E3MmZkZTE3YmYwOTg2Zjc0ZDQ1ZCByZWxlYXNlMjQtbWFpbnQKKzQzMDY1IGYwYjBhYTM1N2Q0OWU0MzQ5YWY1YjQ1ZDlhZDdmMGQ1ZTk1ZWVhM2YgcDN5aworNDMwNjYgMjUwMDdjMTU1NjY4ZGQ3NGUzZDEyY2Q2MmZmZTk0NDgwMWJhZGM3MSBwM3lrCis0MzA2NyA1NjBhYzFiYTk5Mjc0ZmJlZDk4N2RhMmZjNjAzZWIxNjJlZDRiODMxIGxlZ2FjeS10cnVuaworNDMwNjggNGFlMGJiZmM2ODY2ZTE5NTQ3Nzc5OGFmNzNhNzE2NGJhZDI0ZjMxMSBsZWdhY3ktdHJ1bmsKKzQzMDY5IGQ2ODM0NGQ5MzJjNDU4Zjg3Njc5MTFhNTI4ZTBhNDUwMDZjNTY3OGMgbGVnYWN5LXRydW5rCis0MzA3MCA4NWVhZjBjYTY0ZjJlNGZmNmMzZDY0YjMxMDc2YWRhY2VlNjgxOWZiIGxlZ2FjeS10cnVuaworNDMwNzEgN2RhZDgzY2E3MDJkYjJiMDlkZmUyN2MyOTE3ZDZjMTE2N2UyMjQyOSBsZWdhY3ktdHJ1bmsKKzQzMDcyIDQ5MjBiZDQ5MmQ5ODZiNWFhZDAyYTFlZDZkNjg1Mjk5ZGI4N2E2YzIgbGVnYWN5LXRydW5rCis0MzA3MyA0NzI3ZjI2MGY2ZjhkOTY5MzVlMGRjOWM3NWNmNDU5NmIwMGMzNjAzIGxlZ2FjeS10cnVuaworNDMwNzUgMGY2YjRjZWVhNTgwNTM4YzgzODY0YTA2MzI3ZjZjMjJkZjRmN2NhZiBsZWdhY3ktdHJ1bmsKKzQzMDc2IDQ5NTM0NGZlZDI1NWI1YWI4ZDFiMzNhYmE5ZWExOGY3MzAyZTVkY2EgbGVnYWN5LXRydW5rCis0MzA3NyBmNzBjMDM2NDg5ZWM0MzE3ODA4YTg0MTI0ZDA4NDU0OGViNWQ5OTExIGxlZ2FjeS10cnVuaworNDMwNzggMDM4OTRhN2EzMmVjZDNmZmY0Mzk3ZmEzZGEwYzIyMWQ0ZDFmZTM5YSBsZWdhY3ktdHJ1bmsKKzQzMDc5IGEyYTYwNDkzMWZmNjgwNDdmYzYwNmNhMjg4MDgwMWRhMmFjMTkxOTIgbGVnYWN5LXRydW5rCis0MzA4MCAzMDIwM2UyYjk3ZDczMmQ1ZGZmNjA5NWI5YmU4YTYxYjc0MWQ1Y2JmIHJlbGVhc2UyNC1tYWludAorNDMwODEgOTJiZTJlMTE3MDMzMTk1OGM1NWRiYjAyZmYwOGEyOTk4NmY5OTQxOSBsZWdhY3ktdHJ1bmsKKzQzMDgyIDgyZjcwMGZjNGRlMjBkZTU4YjdlZGJiY2VjNmU0M2RhMmE2ZGM3NzIgcmVsZWFzZTI0LW1haW50Cis0MzA4MyBhMjUzOTU4YmZhNGM0MmIzMDJkZGRlNGM4OWE2NWY3ZDM0ZTJiMDEyIGxlZ2FjeS10cnVuaworNDMwODQgZTcyMWQ2OGRiZjZmMTI4MzdkOGM2ZWRiN2I1ZmYzNmQyZTg0MzhhNCBsZWdhY3ktdHJ1bmsKKzQzMDg1IDNiMzA3MjBmYTU3YTExNGIyZjBhMDgyY2Q0YTE0Mjk2N2M3NWIyYTIgbGVnYWN5LXRydW5rCis0MzA4NiBjMGFlYjEwNjU0YjJmNjY5Y2UzZTNhMWUyZDBmMWI1MzAyMmRhNTJiIGxlZ2FjeS10cnVuaworNDMwODcgZmZmNGVlY2RlZjQ1ZjY0MThkZTQ5ZDgxZWMwZGUxYzcxMWRmN2RkNSBsZWdhY3ktdHJ1bmsKKzQzMDg4IGJjZTVjN2FlNjU5YTUyNTIzZWMwNmJhMDc3NTA2ODZkMjVlODk2MWIgbGVnYWN5LXRydW5rCis0MzA4OSBjNDQ5OTQ0MDY4ZDIyOGY2ZTM0NDc5NjNjNGUxYjNkOTM0ZThmN2VlIGxlZ2FjeS10cnVuaworNDMwOTAgYmZiNzRhNDIwYWM4ZWIzNTE1MmQwNzYyZDk1MzdkNDBiNDBmN2FjYyBsZWdhY3ktdHJ1bmsKKzQzMDkxIGU0MTVmMWE4NzRiMTA5ZWZiNDcyMDNmNTcwY2E1OWYyNGU3YjEyMGMgbGVnYWN5LXRydW5rCis0MzA5MiBhOWMzYzkzODI0NjUzZTA2ODkyMWY3MGJjMzgxNWZmYjc1NjNiNjQwIGxlZ2FjeS10cnVuaworNDMwOTMgNTNjODA2ZjdhMjUwODZjMjQzZjdlOTdjOWVkMmZhNGIzYWVlNWNkOSBsZWdhY3ktdHJ1bmsKKzQzMDk0IGJkMzcxNTM1M2EwOWI1NjI2Njc5NDUyYjQ0MDMwMTk2ZTcxZDk3ZjYgcDN5aworNDMwOTUgN2FkYTE2YTE0OTY4Njc0NjIzMTQzZDJkMDgxMTY1OTA1MjZjZWQ3YyBwM3lrCis0MzA5NiBjZDE4MThlZTdlYTlhOGNlODM5YmYxYjc2MTAxZmRiZmNhYjdhNWM0IHAzeWsKKzQzMDk3IGZmMzgxYjM4OGNmZjQyYzk3NTQ0ODdmNmZlYTZmYTY2YmI2YzIxN2QgcDN5aworNDMwOTggMDgxYjRmMGU4MWI3YmFhNjgwMjU0YTMwYjcyYzQ1NDUxZDcxYjc4ZCBwM3lrCis0MzA5OSAzMzQyYjNiNTg2MzA0MDUzYTc2YTBmNjNkZDk1MGU1MTJiNmNlYWVjIHAzeWsKKzQzMTAwIDNlMWVlNmUxNmM4MWY5MTJmNjkxYzI0NGFmMTQ2NmEwZGI1MTdiOWEgbGVnYWN5LXRydW5rCis0MzEwMSBjMDQ4YTA5ZDA2ZmY4Njc0ZTA1MDk0OTRhNWU1ODZhYWNlMjczYzA0IHAzeWsKKzQzMTAyIDExODM5Nzc2YzY2YzMyNDM2NmE3N2MyMDg5MWNkMWZjMDA2MDc4NmEgcDN5aworNDMxMDMgNDA1MTFiZjU5Mjk3OTgzZTQ5Njc0YmVmOWEyNzExZWRmYjg2OTkwZSBwM3lrCis0MzEwNCBhMDE2NzJhOTZkNDcyNzA0NjM2NjBiZjU1NzA5Zjg1ZjlkOTY1ODUzIHAzeWsKKzQzMTA1IGNlMjY3ZjY4MDY1ZTIyMDkyZjE3OGVjMTc2MzY0YTdmYzMyYWM0NGMgcDN5aworNDMxMDYgOWVmM2ZhYzVkMmMwYTJhOTQ5NjIyZTU0Zjk5MzEwZTA5MGIwMTA0ZSBwM3lrCis0MzEwNyBlYTViNjZhZjYyNDVhNDA5ZTJjMjNkNzY2MjE1Zjg3ZDRlODM1MDlmIHAzeWsKKzQzMTA4IGZkYzA1YjE2NzIzNmU3NTcyMTdkYzU4ZDE1OTNlNzBkMWZjOGE1ZGQgbGVnYWN5LXRydW5rCis0MzEwOSA1YWVjZWRjOThhZjY1NTllMDQ1MzlhYzU5MzU0MWU3ZTBlNDU0ZTJlIHAzeWsKKzQzMTEwIGY3ZmQxMWE3NWE2YTRkY2I4YTIzYjBmNjBiM2NiNDc2YmQzMmIxMTQgcDN5aworNDMxMTEgYzJjMTI4MTRmODU0YWJmMGUwODBhMTE1ZmJhYTQ1ODA4ZmI3YzY2MyBwM3lrCis0MzExMiAyYjA0YjljN2I1OGViMmQwMDZlNWI3NjExOWUzNWY1MWQzMTgzNjJhIGxlZ2FjeS10cnVuaworNDMxMTMgZjAyYTAzMjU0YjkxZTc3Y2E3NDAyYzU4ZjU3NzMxODBmMDRiNzUwNiBsZWdhY3ktdHJ1bmsKKzQzMTE1IDIwM2MwNmZiYjA3NTQ0NzQzYzJkNmRkNGFkZGNiNTM1MjQxYTkzMmYgbGVnYWN5LXRydW5rCis0MzExNiBkN2QxMmQ3ZmNjMzkyZjk3OTZhYzdmOGRlOTc5MzgwYjg1NTQxMGQwIGxlZ2FjeS10cnVuaworNDMxMTcgMjMwNDVmMWUzOWYyZjkxYzhmZDFmYTQ1M2UzNDAxODJlZDM4NjRiMyBsZWdhY3ktdHJ1bmsKKzQzMTE4IDY0YzgzZTBmNjgzZTU2NmFjNmRlMDA5NmUyYjYyNGNkZjZlMjNiYmUgbGVnYWN5LXRydW5rCis0MzEyMSBiMDFjODBkODgyNjdmZTUwYWZiYjM0Njc0YmNmM2NiMzcwYzVmOTgxIGxlZ2FjeS10cnVuaworNDMxMjMgNGM4MDRhYjg3ZWFkYWMwYWFjNjAyNGY2YmNiM2M2NDNiNTJhZmVkMyBsZWdhY3ktdHJ1bmsKKzQzMTI0IDFmNDU0OTg2NWFhZGJlNTU0YWVkNDI1OTVhZWQ4YWVkMWIyNTZhNDIgbGVnYWN5LXRydW5rCis0MzEyNSBlNDNkNWQyY2E1MGFiY2ViZjRjNjdlZjZhZjgwNjQ3M2E3MzEyMDVjIHJlbGVhc2UyNC1tYWludAorNDMxMjYgZGQ0OTg0N2E2MGQzMDBkMTc2MGYxNjA3YzUwNDRkYTI2NTFkZTcyZCBsZWdhY3ktdHJ1bmsKKzQzMTI4IGIzM2Q5MTY2ODY5NjE1Y2YyOTc0ZGM4N2U4OTJiNjk5MTg1NmNjNjMgbGVnYWN5LXRydW5rCis0MzEyOSA5OTQ5MzFiNmI4NzU0ODkyOWJjMzYxMmNkOGM2NTVkMjY1MTJkNjBkIGxlZ2FjeS10cnVuaworNDMxMzAgNDNjMzkzYjJmZTlmYTQ3OWQwN2RiNGI3OWNlZDAxZWE1NThjMzU0ZCByZWxlYXNlMjQtbWFpbnQKKzQzMTMxIDgxZDBlOTMyMDhkOWU4MTA1ZDI3MGRjNjY0MmRlZDRhNjJmMTVjY2UgbGVnYWN5LXRydW5rCis0MzEzMiBkMTM0MzBhOGJkMmNlMjU5ZWU5NTI4NWUzZDhhODVhYmE2NTBiODhjIGxlZ2FjeS10cnVuaworNDMxMzMgYjU1ZjUzMDQxOTY1MzU5NjQ0Y2FiZGM5ZmJiYzUyMzg0MDg1ZDRlYSBsZWdhY3ktdHJ1bmsKKzQzMTM0IDY4NWUyMTIzODY0ZDNmNmFmMDRiODY3Y2M5MDY5YTkyMzE4NTU4NjUgbGVnYWN5LXRydW5rCis0MzEzNSAzODQwMGI2NjI0MDQ3NWEyOTU5ZDIxMGIyZTBmMDUyMDI2YjE0M2M3IGxlZ2FjeS10cnVuaworNDMxMzYgM2Y5MGE5M2ZmNWQwZWE5MTg4MjRjNTFmMDgwYWM2N2NlZDNhMWVlNCBsZWdhY3ktdHJ1bmsKKzQzMTM3IDkyY2I0YTdmYzU1NGVmZmE2OTE2YjcxYWJkMjI1YTZkYjlmNGZlYTUgbGVnYWN5LXRydW5rCis0MzEzOCA2NzcxZjBlMDhiNjBhMjM2ZjIxNmU2NjdmZWI0MTMwYjEwOGY5ZDgwIGxlZ2FjeS10cnVuaworNDMxMzkgOTI5NTJhYzhlODkxMWYwNjdmNTZiZWJjNDlhY2VkOGQ5NTc0Y2FmZSBsZWdhY3ktdHJ1bmsKKzQzMTQwIGJiNDkxZTU1ZmI0YzI0MzNhNTFjY2I0ZTFlZWZmNTYwNzg5NDRmMWQgbGVnYWN5LXRydW5rCis0MzE0MiA4NDM5MjhjNmIyNGNkZGY2ZGI4YzI1ODdjZDI3OWNmZDgzOGFjZjAzIGxlZ2FjeS10cnVuaworNDMxNDMgNmMzZWMzNzM2YzUxNGRmN2FjMWRkMDgwMWY1NzRhMDhiOWE5YjkwNiBsZWdhY3ktdHJ1bmsKKzQzMTQ0IDk5MTBmZjY5YWY5NzNiZTMzOWMyYTc1Nzk4YjBiMGUzNDViMWFlYWIgcmVsZWFzZTI0LW1haW50Cis0MzE0NSAzYjdiMjk1Y2NhOTAyYmY3MTBmZmI3MzNkZWRkZTUwNzFhNmM5YjY3IGxlZ2FjeS10cnVuaworNDMxNDYgYzAxMWFmNGEyYjAxZmQyNTE3ZWVlOGUzZDJhMjNlNjVhOTJkZTk1NSBsZWdhY3ktdHJ1bmsKKzQzMTQ3IDA3YWI1NTc2MjViOWNlZWZlZmM3YWU2NDM4ZDVhMzk2ZWE1OTdmN2EgbGVnYWN5LXRydW5rCis0MzE0OCAyMzM1N2I4OGMwM2VhZmE2YmUyOTg1ZGRmNTU2Y2UxNTA1ZTM1YWQ3IGxlZ2FjeS10cnVuaworNDMxNDkgMWQzMDgxY2IzZWE2NzM1YmIyY2U2Y2E4YTk1N2JlZmJhMTY0NzM3YSByZWxlYXNlMjQtbWFpbnQKKzQzMTUwIDdjMjJiNWFhMzQzODcxZGI5NGQ1ZWU2MzFmNGUwYWYzYTc3NjRkYmMgcmVsZWFzZTI0LW1haW50Cis0MzE1MSA4ZDQyZjY2MWZlYzgwMjllMWEyMGMzNDNkYmJkN2IxOGE3YzY5OTBmIGxlZ2FjeS10cnVuaworNDMxNTIgNzc1Y2Q2OWY4YTIzN2RhZmVkYjk0NzI5ZTZhMTJmNjU4OTA3OTNhNSBwM3lrCis0MzE1MyA2YjUxNmYzMjFkODUyNGNiYmVlMTRkMWU2NjE3OTg0MmM4ZjliMWI5IGxlZ2FjeS10cnVuaworNDMxNTQgYjMxYjdlYzVhNmI0Mzk0MGNiOGU5MDEwYmJlOWMzMmE1ODg4ZTgxZiBsZWdhY3ktdHJ1bmsKKzQzMTU1IDNkYWJkOWJiNDk2ZTlhNjhjZDZjZDk0Yjc2MjI5NzNmYzc2NjQwNWEgbGVnYWN5LXRydW5rCis0MzE1NiBiNGQwZjhkOTUxNzlhNDZiY2NiNDlkODBkZDU2MTNkMDVhZTBjMjRkIHJlbGVhc2UyNC1tYWludAorNDMxNTcgZGU4ZjVkMWNkZjRkOTU4MjRhZWQzYjBlMzNkNzhkNzJmM2I5YjUwNiBsZWdhY3ktdHJ1bmsKKzQzMTU4IGQ2MmIxMzQ4ODk0M2Q3OGM5YzhkODE3MzIyOTMyMzJhODRiNzkwNDcgbGVnYWN5LXRydW5rCis0MzE1OSA4NTJkZTMzZWQ0MjdkNmE0MzBmNjFjZDg5ZDM2MjJkOWEzOTA1YThhIGxlZ2FjeS10cnVuaworNDMxNjAgMmRjNjNjZGIwOWNmMGRhODNiZjE0OWZmMzUwNzBhMmQ0MzMzNzI5OCBsZWdhY3ktdHJ1bmsKKzQzMTYxIGRiOTg2YmUyYzAwYzVkMDNhNWRlNTQ1YWU2MzFlZDgyYzA1Y2JkNzggbGVnYWN5LXRydW5rCis0MzE2MiBlODBmZGIzYTBmNDBhOTYzOWI0ODFmYWY4ZjY4ZmQyMWFiYWY0MmMyIGxlZ2FjeS10cnVuaworNDMxNjMgNzllNGRiZTRiZGM2YTYzODgwNGM2ZjU1Y2Q5NGJiMzJiZTdkNzZmZiBsZWdhY3ktdHJ1bmsKKzQzMTY0IGEwNmM5ZmQyNTEyMDhjYWQyZGVhZGJiNTllOTQ1YzBkODNiZGU4YjkgbGVnYWN5LXRydW5rCis0MzE2NSBkODYwMzExZjhhOTcxZTcyYTllYjMzMjUyOGZmZTM5NGNkZGM2MDU4IGxlZ2FjeS10cnVuaworNDMxNjYgMzYwNTIxOGQwM2ZhMDQzN2FlNGYzYjMzZWRhMTFhNWQxNTJiYWZiMSBsZWdhY3ktdHJ1bmsKKzQzMTY3IGRlMmI5NDJmMzdmOTQ4ZTBjYzZhZjZkYjRiZTliOTFiM2RkZjUxOWYgbGVnYWN5LXRydW5rCis0MzE2OCA1YTc3NTBkYjA5Nzc4ZTAyMjdmZWExZWYyMWI4YWE5ZjA2ZDRmZWEzIGxlZ2FjeS10cnVuaworNDMxNjkgYTBhYzc3MjU5Yjk5Y2U3ZmM2OWEwMjdmZGNmNjM4MjJlMjcxYzUyNCBsZWdhY3ktdHJ1bmsKKzQzMTcxIGQ4NTkyMjc2YjEzNzQ1YTkxYjhiMzRkMzQ4MWQ2ZDI3NDI1YjY2NGMgcmVsZWFzZTI0LW1haW50Cis0MzE3MiA0OTA3ZmI4NzljZDljN2E2Mzg4YWEzNzliZjc2NzgyMDU2YTA3ZGVkIHJlbGVhc2UyNC1tYWludAorNDMxNzMgNjQxMmVkNjk3NWRlZWU4ZmE4ZDk5ZWVhYjU1OGYzOWYxYzM2YWQ1NCBsZWdhY3ktdHJ1bmsKKzQzMTc0IDg3ZWQxZjNkMjcyZTRlYzMyMDBmMGY5NThlZjI3NTE1OWU5ZjJjMzIgbGVnYWN5LXRydW5rCis0MzE3NSA4MmFlYjU0YjBiYWFiM2YxZDY4MWE3MDdjMzM0MmJmMDA1YjUyY2NkIGxlZ2FjeS10cnVuaworNDMxNzYgMTM2YjQ1N2I1NDNhYjY1Nzk2YmI2ZmE2NDFlMWIzZGQxYzA5NGZiOSBsZWdhY3ktdHJ1bmsKKzQzMTgxIGY3OTkzZGM2YmYyNjRmOGJiMzA5NDg4MWQ3ZjAzZTViMmVlMTBkN2MgbGVnYWN5LXRydW5rCis0MzE4MiBkYjMxN2U0MzU3YWQ1NGU2Yzc3MGNlMmY2NzVjZjc3Njc2NzlhYTIwIGxlZ2FjeS10cnVuaworNDMxODQgZGIyOTdiOTQ0MmU0MGNhNTY2NTdhZjEyNWNjMDI0ODM1YTNjNzYxMSBsZWdhY3ktdHJ1bmsKKzQzMTkxIGU3M2IzNWQ4MTYxN2JlYjFkZDI4MDEyNDljODY2YWRhODA2MmRlNmIgbGVnYWN5LXRydW5rCis0MzE5NCA4ZGM0NGU5ZDVjOTM5YjgyZDYyNDExZjRjMjFjZTRkMzVkZGE2NmY0IHAzeWsKKzQzMTk1IGE5YzFlNTJhZGRmMjhiYmFkODAxYzk0Zjc0NzE3MDY3ZjIyYmY1NGQgcDN5aworNDMxOTYgMjUxZWNlYzA0ZjFiZmZkNjM1YjU3MGYxZDZlOGQ4M2ZmZDY4YjgzOCBsZWdhY3ktdHJ1bmsKKzQzMTk3IGUzNDUwNmU0NGU2NzY4MmI3ZDMzMjMzNTBkZTU0ZmM4YTc0ZjYzYzAgcDN5aworNDMxOTggNTJkZDQ1ZGIxZTg1MDQ3YWJiY2MwZTU2Zjc4OGUyYWJlODEyMTMxMyBwM3lrCis0MzE5OSBiYWY2NWRjNjM5YzE0ZmUwZTM5NTJmN2I1MDRjZTdhZjAwOTM2YjVlIHAzeWsKKzQzMjAwIDA4Y2Y4YjllYzIwODcyMzdiNGIyMzE4Nzg2NGEwOTE3YmY5MDI5ODAgbGVnYWN5LXRydW5rCis0MzIwMyAyZjRhNGY5NmFjZDFlNmY0ODI5YzE4ODMyODQ2Nzk4NGQ2YzhjZGU1IHAzeWsKKzQzMjA0IGFhMDM5ZGU4OTFjOTg3ZmU2ZmUwNDVlNTk4OTM1ZmE0OTMxYjk1YTcgbGVnYWN5LXRydW5rCis0MzIwNSAwYmI3NzAwNTkzZjc1YTIxZTdhN2M1NmE1NzgxYjk2YmZmNzAwMjAxIHAzeWsKKzQzMjA2IDZlOTI5MjM4ZTNhYzQ3YjE4MjlmMzE1OTBlZmVlYjEwMjdlNTJiNzUgbGVnYWN5LXRydW5rCis0MzIwNyBjOWVlMzJiNzkzZTc4ODQ2ZWQyYzY0NjhkMmIyNzM5ZDJkY2ZkNTk3IGxlZ2FjeS10cnVuaworNDMyMDggZTcyZDFjN2M4NTU0ODkwOWMyZmNmZTlmZGQxZmM4MmI1OTliNmM3YyBwM3lrCis0MzIwOSAzZjgyNDE0MWVlYjk5ZWJkODM0YWRkMzExNzJlYTFhNGU3YzljZWU1IGxlZ2FjeS10cnVuaworNDMyMTAgN2RhZGQzZmM1ZWZhYzZiYjBjOWRhOTkxMDNmMTk4NDhjNTc3YjZmZiBsZWdhY3ktdHJ1bmsKKzQzMjExIDcxYzU2OTRlMzQyM2IyNDVmMjRjODI1NTgwZTc4NWJjMjJjZWZmYjYgbGVnYWN5LXRydW5rCis0MzIxMyA2MTc3NDMxMTQ2MDBiYjRmM2JiYzliOTE2OTRmNWYyODdlMDkxZjRkIHJlbGVhc2UyNC1tYWludAorNDMyMTUgNzY3ZTZiZTU4OWEwNDBkYmU1NDZkNzZhZTYwOTQwZmQ1YjU0MWY3MCBsZWdhY3ktdHJ1bmsKKzQzMjE2IGRiYWYwYmNlOGQ0NjAyZDIwYTU1MWFkNDE2YTRmYjE1NDE1ZmE1OWUgcDN5aworNDMyMTcgN2VhYzIzYzhlNGU5ODkzZTA3NGZlNTk2MjZhMTQwMGFjNzliYjMzOCBsZWdhY3ktdHJ1bmsKKzQzMjE4IDRlZjk5Njk1ZjdiYmJlZWQ5OTViM2Q4MzFjMWUxYWQ5NTEzYzRhYzEgcDN5aworNDMyMTkgNzA0OWRjMGM2MjFhM2QyYjAyYjMyMWM4NTU2Nzc0YWQ4NDY1YjIzNCBsZWdhY3ktdHJ1bmsKKzQzMjIwIDUyMTdjNzAzYTk0ZjhhYmVhNTE4ZGNhMzU2MWFjMDg3MGE1ZmJiODMgcDN5aworNDMyMjEgOTFkZDRkNDRkM2JjNzBkYTZmNTc0ZjhhZDRjMjkxZmZlY2JjZGNkZiBwM3lrCis0MzIyMiBkNzUxM2YzOGIyMmY5OWViZDQ4NDU5Zjk0MjU1ZWQzNGIyMDc4OTNlIHAzeWsKKzQzMjI0IDY5MWRkMDU5MTY5MTcxN2M3ZjZjNWYyNzljODM4YzNmYTBiMDNiZGMgbGVnYWN5LXRydW5rCis0MzIyNSAwMDU3ODYyYTNiZGJkYWY2MWVhODhkYTIxOGIzOTYxZjI0YmY5YWE3IGxlZ2FjeS10cnVuaworNDMyMjYgMmQ5MmFiN2Y1ZTg5ZTBkOGJiZjRhMjk5NmY5OWZkNzgzMWExNDBmNSBsZWdhY3ktdHJ1bmsKKzQzMjI3IDRkODA2MDcwMzNmYjMxNWRlNTZmMDIyNzJiNDFjZDBhNDJhNmQ4ZDIgcmVsZWFzZTI0LW1haW50Cis0MzIyOCAxMGNjZTNmNjUxNzAyOWFhYTk3MWNmNGI1MjVjMDcwYTBhOGFlYWZkIGxlZ2FjeS10cnVuaworNDMyMjkgMzU0NTgxMTIzOWI0MGJhMzlkZTQ3YjMxMTVmNmMxMzA5Nzc5NTdiMSByZWxlYXNlMjQtbWFpbnQKKzQzMjMwIDE2Yjg4NTliMDc2MDVhYjZkMWY5YmQxZDUwMDg2YzVmZWU3MWQxOTUgcmVsZWFzZTI0LW1haW50Cis0MzIzMSA5YWQwZTUxNzUyN2ZmNDFiNzczNzE3YWE0MDMzMzkxNjE1YzkwYzE5IHJlbGVhc2UyNC1tYWludAorNDMyMzIgODE0OWQwYTQyNGE1NWUwMDU1MGUxOTI2M2ZjYzAyOTQ2OTYxMjkzNSByZWxlYXNlMjQtbWFpbnQKKzQzMjMzIDFhZjI0NWZhYzkwYTZiNmZhZWY4OGFmZjAwNGQ5NTM0MzBkMjRhZTMgcmVsZWFzZTI0LW1haW50Cis0MzIzNCBjMWU3MDJkMjhjZjI4N2ZjNjRhZjZhM2ZmNDFjZTg3OTE5YmI0MmUwIHJlbGVhc2UyNC1tYWludAorNDMyMzUgYTk1MDQ1MGVmNGViOTI4NzI2NGFmZjE4YzljN2E5MDNkMDQ2ZDliYiByZWxlYXNlMjQtbWFpbnQKKzQzMjM2IGQxMTcwZTlhYTc4OWIzYTRhZDAxNTNkZGEyZDA3M2MyY2U0ZGIzNWUgcmVsZWFzZTI0LW1haW50Cis0MzIzNyA3YzViZTdjMGZkZmRiYmMwYWMxZDkxYzA3MDM4YmM4MTQxMmRhNDEyIHJlbGVhc2UyNC1tYWludAorNDMyMzggM2UwOWM4NTY2ZGYxYWZkNzBhNTU0ZGIwNjA1MmJmMzU3MTQ3NGQ4MyByZWxlYXNlMjQtbWFpbnQKKzQzMjQyIGIyZTZkNmFhODZkMWMxYjMyMmFjMzUwNGY5MjBjY2NiMzQ1OWRiZTUgbGVnYWN5LXRydW5rCis0MzI0MyBiNGQ5MmVmMmYzMzgwZGVkYjI5ZTMwZmZmNDI4MDMyMDFhZmJkNmQ0IGxlZ2FjeS10cnVuaworNDMyNDQgMGM2MDI5MzhlZDhlODc5NzgzYTFkNjQyNWI5NGMzZWQ2NGVkMDlhNyBsZWdhY3ktdHJ1bmsKKzQzMjQ1IDJiN2VjZTc4ZTI5MzE0Nzc3NzY0Mzg2NWY3M2MxN2E3ZTZhYzBiZjMgbGVnYWN5LXRydW5rCis0MzI0NiA0NWRkOTM4YjdmZWIyMGZkOTA4Y2NkZjAwMmI2MTZkOTBkZTgwZGM2IGxlZ2FjeS10cnVuaworNDMyNDcgMDI3YzZmY2VlZTBkYWY5ODBlM2U0ZTgzNjI1NDI3MzljZjRhNWUyNiBsZWdhY3ktdHJ1bmsKKzQzMjQ4IDQxZDcwNTc4NTc4YTM4MTE2MGY0OGY5YjJmMjIzZjA4Y2UwNDgwMTQgbGVnYWN5LXRydW5rCis0MzI0OSA0Zjk3YjZhMjI5Y2UwMzE1ZjQzOTIzYWE1MmVhZGE3MGJlYzE0NzRkIGxlZ2FjeS10cnVuaworNDMyNTUgMDY2YzljZTQ4YzMwMDJiZWVkNGUzYjZmZmU2ZTU5MDM3YWVjNjM2OSBsZWdhY3ktdHJ1bmsKKzQzMjU2IDI5ZGY0ZmUxMjhhMGFiZWFiZjAxNzA2Zjk0ZGUwZTQyZDUwN2IxYzcgbGVnYWN5LXRydW5rCis0MzI2MCA3MmE3MjBkZDY0ZmI0YjcwOWZmNjQxNWVjMjMwNDRmNDE3MDliNzJhIHJlbGVhc2UyNC1tYWludAorNDMyNjEgMWVkN2I4ZGM3NzdhY2ZkNWY2ZWY1M2JmYWRmNDk5M2ZiYjQ5YmQxZiBsZWdhY3ktdHJ1bmsKKzQzMjYyIDk3MzU3ZmUzNDIyMjdiZDliZWEwZTA3OGE5ZmZkY2ViZTc5ZGYyMzEgcmVsZWFzZTI0LW1haW50Cis0MzI2MyA3ZTNiZjg0OTJjMDNhNjk2NWZlZjU1MmU2ZmU1MjdhY2RkMDUwNzU3IGxlZ2FjeS10cnVuaworNDMyNjkgYTE4YWEzZmJkZDRhYjBkODFlNzI1MjY5MTNmZjgyNzIyZDkwOGNjZiBsZWdhY3ktdHJ1bmsKKzQzMjcwIGZiNDgxZTBmNTc4NmU1MWVlM2UxZTI2NTVhMTYzMzU0OThhOWM5OTAgcmVsZWFzZTI0LW1haW50Cis0MzI3MSBhOGRlMGI5NjAwMjc1YmM0NjgzMDQ5MTEzNGE1NTc5YTU5NGExYzU2IHAzeWsKKzQzMjcyIDIzMWQ2MDRkZWQ4NDZlMGE0MWI0YzNjMTFiZGZlMzE2OTFjNjRjOTYgcDN5aworNDMyNzMgNTIwZTU1YmQ3NmQ2YzIzYzliZTYxOTMzOGMwY2M4OTQ4MmJiZTkyOSBwM3lrCis0MzI3NCA2NGFlMzJiMDc4Mjk5YTI0MGI2MWYzMjY0YjcwNjZmMmU1NThmMGJjIGxlZ2FjeS10cnVuaworNDMyNzUgY2FhOWFmZjA4NWE2NjYzZDIzZDkwNGE5OTMyMDBjZjFmNGVkODhjMSBwM3lrCis0MzI3NiBmOWYwNDExNWZiYjVmNTAwM2RiMWMwNDkyNzBhZDNlNmNjNGFmMDcxIHAzeWsKKzQzMjc3IGIyYTA1ZWE3ZWFjMWFkMmRjNTY0ODRkZTc4N2RmMmU5OWNmMDRmMWQgbGVnYWN5LXRydW5rCis0MzI3OCA4NjhhYjJhNjVjNzMwZWViNDk2MGZjMzQzNjIyYzRkMDJiOTFlMmNkIHAzeWsKKzQzMjc5IDY2OGE1YmE3N2RjNmYzZGNlNzU4YzI3N2M4NDY4NWExOGVhMjg1Y2UgcDN5aworNDMyODAgMzVjYzVlMTgwYWEzZTY2NGU3YzdjYjM0ZjljZTk2YmE0NjFhOGYyZCBwM3lrCis0MzI4MSA2M2M2MWRiNTUzYTg2OTZkYzNkMzE4Yjg0YjYxNTMxZGY3OTJmZThhIHAzeWsKKzQzMjgyIDc2MGZmYjBmYmEzNzM3ZDRlZWIwZTRmMWQzMmYyMzYxOGI5ZGExZDIgbGVnYWN5LXRydW5rCis0MzI4MyBiODU2N2I4NGM1MzEzN2Y0NzZhYTQxMDFhZTYyODU1OGY3MmNkYTgxIHAzeWsKKzQzMjg0IDBhZDM4N2ZiNjMxNDMyM2NiNWRmNTkzZWYzNWE0NmZiYzU5NTY3N2UgcDN5aworNDMyODUgNGJmZThhZmU4ZjY1ZWQxMzNlMTIxMzMzMzk1MTEzYmQ4MDVlOWM5MyBwM3lrCis0MzI4NiA1OTNlOGZiOWEzY2FmZTVjNDc3Y2Q1NjM3YTFkYzI3YTc1NzI0NTczIGxlZ2FjeS10cnVuaworNDMyODcgN2YzMjJlZjY4NDM4N2RhMWE3OWY0ZGI4OTUwZTkwYjNlYTVmZmY4MSBsZWdhY3ktdHJ1bmsKKzQzMjg4IGUzOGZmMjExOTFkZTUxZTk1MjZlZmE4NWE5NDIzODYxNWZmYjYzN2MgcDN5aworNDMyODkgMjQzNjMzMDFhMjk5YzUxMDdlZmU1ZWFiMDM2OTQzYzNhN2M1ZDVkNyBsZWdhY3ktdHJ1bmsKKzQzMjkyIGMxYTZiYTdlY2IyMzRhOTVlMDhjYTQ3ZjQyMDIwMzRiYWFjNDZlZmIgbGVnYWN5LXRydW5rCis0MzI5NCA2NDMxN2M3MWVkNmQzOTM2MWUwNzM2NTEzM2VjZWMzNjRlZWMzNGE3IGxlZ2FjeS10cnVuaworNDMyOTggYmVkM2Y1MmYwZGM2M2Y3ZjJhMGNhMGEyNDc5NThjNDFiOWE0YTkzYiBsZWdhY3ktdHJ1bmsKKzQzMjk5IDFiNzJkMGU0ZjRhYTBhZGE5ZjM5ZmQ4ZDY5YmNkNWQ2OTQ2MDI5NDUgbGVnYWN5LXRydW5rCis0MzMwMCA4YWIwMWE5YzE0MGI3MDJhMjk3ZmEyZjRlZDk0NTY5ODMyMjA5ZmE4IGxlZ2FjeS10cnVuaworNDMzMDEgMzk1YWQwZDU0MjNkNjBhNDFjZDYyYzBjZGI4YTRiMDY2NzJlY2M2YiBsZWdhY3ktdHJ1bmsKKzQzMzAyIGY1Y2QzMDkxZDk5ZjlhY2YxMWU3Y2JhZGUzOTYzZDIzZTlhYTlkNzkgbGVnYWN5LXRydW5rCis0MzMwNCBiMzljM2Q3YTVhZDQ1MGNkYjE2YWJlYjEzOTkzNjYxZWI0ZjMxZGI3IGxlZ2FjeS10cnVuaworNDMzMDUgNjQyNWE0M2JmM2M2ZTllZjU4ZmIzNjZhYWVmNzEzYTc1Mzk3YTc2OSBsZWdhY3ktdHJ1bmsKKzQzMzA2IDQ5NjIyZDY1YzI5ZDJhZjE3ODBmNjViOTY0YzA0MGNhMjM0ZTg0YWMgbGVnYWN5LXRydW5rCis0MzMwOCA1MWRmOTk0ODg1ZTk3OGYzNjRhNDZlNWY2OTVhMDA3MmY0M2NlMTYzIGxlZ2FjeS10cnVuaworNDMzMDkgOTZlNGQ1MzEyOGM5ZTczZTg1ODMxYTFmMDNkOTY1MmNjOWQ5YTkyOCBsZWdhY3ktdHJ1bmsKKzQzMzEwIGE4MmVlMzI5OGUxYWQyYjY0MjhlMGY3NzQ2MjI4ZjJkN2I3OTFlMjkgbGVnYWN5LXRydW5rCis0MzMxMSBjODQ0MzA1YWE4ZWQxZjIyZTA4MGM1ZTllYjE5MWYyOTJlNjcwYzFiIGxlZ2FjeS10cnVuaworNDMzMTIgNjljMzU4YmY2YTM0NTZkNTM4Y2RhMzEwMzIwYWIyNDE2YjY1N2YxZiBsZWdhY3ktdHJ1bmsKKzQzMzEzIDJjMWZlNzYxZjAxOTQxOTk4MGIyZTUwNGViNGZhOTA2YTEzYzVmMDEgcmVsZWFzZTI0LW1haW50Cis0MzMxNCAwNmQ3NjEzYTM1MjMxOWMyOTU2ZjQ4NTcyMDM2MGYxMDRhOGE4YjAzIGxlZ2FjeS10cnVuaworNDMzMTUgNTE1MTE4YzBlMzM4YjgzY2E1OTkyZWU4Njk2MGJlMTVjMGY5YzgxNiBsZWdhY3ktdHJ1bmsKKzQzMzE2IGIzNDQ0MDQxOWI2NzllN2UxMTM3ZTBlYWExMDU5OGRiMDliNmJlMjkgbGVnYWN5LXRydW5rCis0MzMxNyAzMGZhYmI4N2ZiY2MzMGZmZGYxN2RkNjQ4ODEzY2M2NzU5MzkzNWIxIHJlbGVhc2UyNC1tYWludAorNDMzMTggNTRhYTVhYThmMmNiMjZhN2RhOTNhYjJhNGNjNWQ3OTI0ZDE4NGQzNSBsZWdhY3ktdHJ1bmsKKzQzMzE5IDQ2MTc2ZmZjOGJmNWRkY2RmYzFjZmZkMWU1NGU5YmI1YTQ0NzQwYjEgcmVsZWFzZTI0LW1haW50Cis0MzMyMCBlMjM0ZmY4YmVhYTIwMjFiMmUxMmY0OWU3NzU0Mzk0MmY0ODVhMzg2IGxlZ2FjeS10cnVuaworNDMzMjEgZDdhNmVjOWRlODg3NTU4MTNkOWUyNWZjNTQyMjhiYjAyMzZjODgyZCBsZWdhY3ktdHJ1bmsKKzQzMzIyIDViYmY3MjI3YWQ2ZTliOTNjMzEyNTk3M2ViZWY3OGZhNTc3Nzk0MzUgbGVnYWN5LXRydW5rCis0MzMyMyBmMTk4OTBhODZjNDMzMmM1ZWQzNmQ0NTI3ZTA4OWRhNzA3ZmI3NWJiIHJlbGVhc2UyNC1tYWludAorNDMzMjQgNDE2MzQ4NzQ4NDYwNDQ4OWFhMGY0MWZkMmExNjM2N2U4OGFkMmJmMiBsZWdhY3ktdHJ1bmsKKzQzMzI1IGMwODE4ZjIxZjY1YTJkYWJhZmNkOTUwZGJhOWEwZWVhZWM5NmM3MTQgbGVnYWN5LXRydW5rCis0MzMyNiA5MjM4ZjA0ZWVhYTZjZTg1NDQ5NTliYWI3MGJlMmM1Yzc1ZDY4MmNkIGxlZ2FjeS10cnVuaworNDMzMjcgOGFkZGMzMTNhYjBmYzcyMDMyYTc0MTdmOTY5ZWM5OGJkYTVhNzFjOSBsZWdhY3ktdHJ1bmsKKzQzMzI4IDc5OWI0MGM0YTJjNjFiYTlhMTU5MDFlNzg5NGU0NmU4NTA1MDJmNzcgbGVnYWN5LXRydW5rCis0MzMyOSA4ZDU3ZDI1ZTY1NDg3OWM4NjlkZDlmZWNlOTA5ZDI3NGFhMDU3MjcyIGxlZ2FjeS10cnVuaworNDMzMzAgOGY3YzAzYWNhZGRkYmM3NjI5MjE5YzdhNjkwN2U2MmE4YzYzMTVhMiBsZWdhY3ktdHJ1bmsKKzQzMzMxIDZlMWE4OTljYWM4ZWU2ZGQyM2ZhYjY2YTVlNWUzNTJlZDllZDIxMmYgbGVnYWN5LXRydW5rCis0MzMzMiBhNGQyZjdiODQ3YjFlODI4OTU4MmZjMjQ0ODRiNzNkZTU4OWZlZDVlIGxlZ2FjeS10cnVuaworNDMzMzMgOTRmNTRlYzYyZDE0MzhiMDQzMDc2Mzk3ZWI5YmRmMGU3YjM1MzU5MSBsZWdhY3ktdHJ1bmsKKzQzMzM3IGU1Y2ZkNGEzZTY1YzYxNzJhYmU5MTI2NjcyMjEwMWQ5NzcxZmIwZDcgbGVnYWN5LXRydW5rCis0MzMzOCAwMDk4ZTcyNjRlYWFjNTRhM2VmYWY4ZTJiZTM4MjEzNmJkZWMyMjhmIGxlZ2FjeS10cnVuaworNDMzMzkgMzRmMjBhYjQ0Y2VmZDQ5MDlhYTBmZTI1YjUzY2YyOGZjZWFiMzgyOSBsZWdhY3ktdHJ1bmsKKzQzMzQxIDlkOGIzM2FmZjYwYzEwMGU1NTI5ZmEwNWI1YjYyY2RmZjkyYjE1NDIgbGVnYWN5LXRydW5rCis0MzM0MiBiMDUyMjQ3YjE4MDlmZmVjNTczYjkyOTY4MDdkMjA0NjhkZjY5NWE0IGxlZ2FjeS10cnVuaworNDMzNDMgZWUzNmMxNmQ4ZDJiYjE1ZTlkNDNjZDBhOGE5MTRlMmIyODFiYzM1MyBsZWdhY3ktdHJ1bmsKKzQzMzQ0IGMwNDFiMzYyYmIwNGQ4Y2YxNzUzYzQ3YmJiMjZhZGU0MTZkYTg2NTggbGVnYWN5LXRydW5rCis0MzM0NSBkYzE4MzVmYjllN2MzYjI4YTVhY2M2MTk3ZTZlNzY2MmE1NGIwOGQ0IGxlZ2FjeS10cnVuaworNDMzNDYgNDM0NTJmMWZlYTY5MzRiOTQzODI5OWVmNjQ3ZDI4ZGE4MDZlOWIzYyBsZWdhY3ktdHJ1bmsKKzQzMzQ3IDM3M2Y3ZmUwZTczM2Y0YmFiZDEwNDQ2ODMwYmI3MWJjYjcxMThhMjggcmVsZWFzZTI0LW1haW50Cis0MzM0OCAyMjM0NWQxZTY4NTI3MDNkN2Y0NWVlODI1YWI5OWNmOGQ4YzgwNTRiIGxlZ2FjeS10cnVuaworNDMzNDkgMjYxMTE2ZjY4ODljMmM0YzdhOTRkYWFlZWFjNjNhZjM4Zjk3MzA1NiBsZWdhY3ktdHJ1bmsKKzQzMzU0IDNiNjFlNGFhN2VkZTFhN2FjMGIyOWYwZmEzMjI1ZWQyOGVlNGVkYTkgbGVnYWN5LXRydW5rCis0MzM1NSA2ZWI5YjE2ZDZlMjE1ODYzZDIzYWE5YmIxZDkwNzY5YjEzMDU5ZTgxIGxlZ2FjeS10cnVuaworNDMzNTYgNDFhMmQ3OGQ0M2M2OTdjY2MwMjg1MzFmZWI3NDVmNjc4NDBiZmQ3OSBsZWdhY3ktdHJ1bmsKKzQzMzU3IDA0OTAwNGQ3OWZlZmIxODAyYjZlNWM4MjhjNTgxYmYxNGQwMGFjYzYgbGVnYWN5LXRydW5rCis0MzM1OCAwMGU5ZDU5YzIzYjRlMzlhMjU1MjI5NWMzMDVjYTI2ODBiZGFhMTY3IGxlZ2FjeS10cnVuaworNDMzNTkgMzUyMGY5NzE0ZThjMTA0MmQxOGE1YmM2MGMxOWY3OTdlMzBjMmRiNyBsZWdhY3ktdHJ1bmsKKzQzMzYwIGM4Zjg3ZjA4ZmUwYmRkZjA4ZDFkMjU0MTFhZGVkZjBlNTFhMTcxNWMgcmVsZWFzZTI0LW1haW50Cis0MzM2MSBjMTFmZTJlMjk4NGQ5YjM3NTg5ODhjNGEyN2MxOWRkZDBhNjVjYjRkIGxlZ2FjeS10cnVuaworNDMzNjIgNTJkZWJiYzNjYzA4YTJlYTM3MGViMmQ0OWVmOTc4NzA0YzAyODhhYSByZWxlYXNlMjQtbWFpbnQKKzQzMzYzIDkzMzQ0ZGE3NmFjZDBlNWY0MTBhMjNmZjdmYmYxOGM3NDM1N2IzYzUgbGVnYWN5LXRydW5rCis0MzM2NCBhNzgxOGMyODc0OWY0YWE3MjZlZjJhODJkNzViMTdhOTUxMjY3Y2VlIGxlZ2FjeS10cnVuaworNDMzNjUgZjRjYTAzYjg3MTYwYmU2ZGRkNGQ4MTI4ZGZlMTc2NDI2MTM3OWUyNCBsZWdhY3ktdHJ1bmsKKzQzMzY2IDk0ZjE2MTNiODdkNWIyYmFmMDlhOTkyMjdhZTJiODM5ZDZmYTZlYjkgbGVnYWN5LXRydW5rCis0MzM2NyAwMzRjMGNmNTAwN2IyODQyNGZlYjYxMjk1YmY5YzRkYTY3MzM0MTdmIGxlZ2FjeS10cnVuaworNDMzNjggN2I1MjQ4MGMxMmM2MmJlZmM2NWY2ZDllMzk2ZTI5Yzg1YjRhZDk5ZCBsZWdhY3ktdHJ1bmsKKzQzMzY5IGFmMjRlYjNiYmZjZWI3ZGVlNzFjYTA0NzhjMDAyNjVlZmY3MmM5MzYgbGVnYWN5LXRydW5rCis0MzM3MyBlMTJlNDkzYjUyNDQ0NTRhZjgyZTdhNjA5YzI0YzRhOWQxM2RjYzlmIGxlZ2FjeS10cnVuaworNDMzNzQgYmM1MTYxZjI5MmI3NzEzMDE5MzhhOTU2ZTVmOWY0NWM3ZWE2NTA4OSByZWxlYXNlMjQtbWFpbnQKKzQzMzc1IDVhM2YyMjgwODdhZmRlM2FiMzY5ZjA1MzEyNGM3MzJlN2E3ZmNkYWUgbGVnYWN5LXRydW5rCis0MzM3NiBiNzU0NDBjYmZkMzRmMTVlOWY1YzU4ZTE0Y2VjMmJkNzEyOGY1ZTJkIHJlbGVhc2UyNC1tYWludAorNDMzNzcgNjE0NjFlZWJkNThmN2UzYmM0MGNiODFhN2UwYjZmMDczZjE4NGM1NyByZWxlYXNlMjQtbWFpbnQKKzQzMzc4IGEyODQ3YmIzMjhjMGU2ZTJlNTNhYmE5MWQyNDA1YWEyMzlkOTRiYjIgcmVsZWFzZTI0LW1haW50Cis0MzM3OSA1ZDYyNWY1ODlmMmE3Y2M3Zjg5NDFlZWFkZTljYTc1YjI2YTZmOTBiIGxlZ2FjeS10cnVuaworNDMzODAgZDhkZTc1MDAyOTFkZDQ1NzYxYzFmYTMxNmY0ODEzZjMzOGM2NzUyNCByZWxlYXNlMjQtbWFpbnQKKzQzMzgyIGE3ODM0ODQ0ZGNmNjEwMTY4Y2FkZWUzM2RhMzJlZmUzNDRiMjkxZmEgbGVnYWN5LXRydW5rCis0MzM4MyBiYWRhYTdlOTFkOWE3ZTcwZGFlNjMzMTQzMWE4Zjg3NDM4YTRmMWExIGxlZ2FjeS10cnVuaworNDMzODQgYTAzYzk1NWZmZWQxMGZmZWIzNjE0ZDhjOWU0YjVmMmI2ZTg1NWYzMyByZWxlYXNlMjQtbWFpbnQKKzQzMzg1IDgwYzRmYzAzZmY5YjdkNjhiZmVmNjNkMWI4MzQyNTQ5YTQxZTlmODYgbGVnYWN5LXRydW5rCis0MzM4NiBkY2Q0NTliMDM2NzA2Yzc0NzI0YmYyZDQzYjlhNzQyYTM0ZGU3NGNiIGxlZ2FjeS10cnVuaworNDMzODcgYjk0MjYwOTNkN2VhNjdhZDE5OWNlOWMxOTQzMzFmZjFmNmEyZTY3YiByZWxlYXNlMjQtbWFpbnQKKzQzMzg5IDYzYzQ0MjI2NjcwNTZiNmMxYzExYWU2ZDZlOTdhNDk3NzFmNDBhMDUgcmVsZWFzZTI0LW1haW50Cis0MzM5MCA4Y2NhMjQ5MjYyNmNlNDA4Y2Q1NjcxMTA4MTFjMDY5MmZkMWQzN2RkIHJlbGVhc2UyNC1tYWludAorNDMzOTEgNzYyZTViOGQxODlkYWVhMDdkZjE0ZTk3NzBhYjVlODlkYWRlYjllMCBsZWdhY3ktdHJ1bmsKKzQzMzkzIGVmZDE0MWNiZjZjYjM3Njk0MDEwODYwNDIwYTRiNDI0MTRjMjQ1YTMgbGVnYWN5LXRydW5rCis0MzM5NCBiYjFiNDg1MTYxMzE3ZmVjMGEyYjI3MDkwZDBmZDEwNzUyMGEzNDA0IGxlZ2FjeS10cnVuaworNDMzOTUgNGUxYWZmMGUyMGQxOGZiNzQ4MjgwY2EzZGE3ZmZhNzdkMTJkNDgyZSBsZWdhY3ktdHJ1bmsKKzQzMzk2IGNjYmRjZmM0MGM4MWM0NjhiODJkNzUwNDY3M2EyMjBmYTZhMDExNGYgbGVnYWN5LXRydW5rCis0MzM5NyBlZTRhNjBjNzEzNTcxMjdmN2U1ODE0NjI3YWJiZTlmN2QxOTBlODMxIGxlZ2FjeS10cnVuaworNDMzOTkgOWM2OTM3ODUxNmFiMGZiYjU4ODJiNzhlOTkzMWUxOTA3YzljNzViMyBsZWdhY3ktdHJ1bmsKKzQzNDAwIDUyMDMzNzZmMTU4OTJjYmRlOTRmYTAxZTg5Zjc3Zjg2YTI1Y2QzNjIgbGVnYWN5LXRydW5rCis0MzQwNCBlZjgwNTlmODdmZDJmOTJlYmQ0MTEzNzgxMTY3NzY1ODg4MzJlMmM3IGxlZ2FjeS10cnVuaworNDM0MDUgYTE1N2Y1YTY5ZDM1YzYwOTA4ZWEwNjNmOWE3YjA5ZGVhNjkyNzQxNyBsZWdhY3ktdHJ1bmsKKzQzNDA3IGFiM2VmYmNhNWM5MjA5ODQxODY4NzQwZTk3NjcxODliOTQ4OGIxMDYgbGVnYWN5LXRydW5rCis0MzQwOCBlNDk0NTVlOTRiZWUyODhmMDk0Zjc5MzQ5MjgyNGUzNWRhMGQ3ZmJkIGxlZ2FjeS10cnVuaworNDM0MDkgMWY2MWFhNDZmZWU1YjNkMzAyMjgwMTQ1NGU5OWIxMTQ3N2EwOTZhMCBsZWdhY3ktdHJ1bmsKKzQzNDEwIDQzN2QyNzZjNzMyYzdiZGE3OTM1ZGE4MDYyOGNlZDNmN2Y1NjU2ZjMgbGVnYWN5LXRydW5rCis0MzQxMSA4OTE0MmNhZGNmYjllNzQ3NjkxMzhjZTU3OWVjN2U0Nzk0NTllZjgxIGxlZ2FjeS10cnVuaworNDM0MTQgOTNiYTE1NjE5ZjVhYWM5Mjc4ZWY0ZjQ4MjkyMDBjZWYzMWFhNjFiZiByZWxlYXNlMjQtbWFpbnQKKzQzNDIwIDYwYmUzZjM5YTcyYmRmODU4YTE4MDg0YzE5NzVkZTQ3NjMzYjU1ZDIgcmVsZWFzZTI0LW1haW50Cis0MzQyMSAxY2EwMTJjZTQyN2UzMzY0YWM1MGViNjFmNTc0N2UyZmVkNWNhZGFiIGxlZ2FjeS10cnVuaworNDM0MzUgYjg1YWQyMTY2YzAxYmU3YWQwZWUyMGU0YzM0NDJhNjNlNTFkMGE5NyBsZWdhY3ktdHJ1bmsKKzQzNDM2IGI4ZDFhNDVhMzA1NzMyOTYzOGVmYjQyYmI4MzJiMTFiNjE0OTZjNTEgbGVnYWN5LXRydW5rCis0MzQzNyA4MWQ2MTE5ZGJjNjZiNTdkYWE5MzNjMDQwYTAyOThkZmQwMTMzODYwIHJlbGVhc2UyNC1tYWludAorNDM0MzggZWZiMDlkYmFhNDBlNjdkYjk5NjJkNGFkZDVjMGQ3OTA2MTVkMDUzOSBsZWdhY3ktdHJ1bmsKKzQzNDM5IGFjY2UwNDBlMGExYWFiYjBjYmY0MDAyMGM3ZWFhYTUyN2Q3MGRlOWEgbGVnYWN5LXRydW5rCis0MzQ0MSA0NGU2ZmM4ZDAyZTFjMWZjOGY3OTIwZjBjODExNzA5YzRjODgyZTIwIGxlZ2FjeS10cnVuaworNDM0NDMgMjQzNDdlNDY1NmE0ZmQyNWQzYjFlZjIwNDgzYzgyZjdhM2E4Y2JiNiBzcWxpdGUtaW50ZWdyYXRpb24KKzQzNDQ0IGU5ZTgwOThmNjU3MjQ4ZTYxYjNhODI0YTE4MDFjZjkwNjY4MjUxMDggbGVnYWN5LXRydW5rCis0MzQ0NSBmMjg0ZTg1NGZlNzJlYzQ3YzMwYTU2OGQ0MGY4ZDVkZDljNDU4MWUzIGxlZ2FjeS10cnVuaworNDM0NDYgZTE1NmM1ODE0ZmNjYmM1MDY1YWU0M2UxM2M4Y2Q0ZjJiMGViNjAyMCBzcWxpdGUtaW50ZWdyYXRpb24KKzQzNDQ3IDA4YmYxMTIyYzE0NDBmMjc1YjNhY2QwZjliZWY0NDMxNTVjZGJhYTcgc3FsaXRlLWludGVncmF0aW9uCis0MzQ0OCBmYjdiNTJjNDExNmMzNjNmZjkxMjIyN2EzM2Y2NmVkMTBhMjliODM5IGxlZ2FjeS10cnVuaworNDM0NDkgMTMzZDRiYjYxYmFiMmYzYTExMzkwZjA0NDRkZDNjMzAzZmYzNWUwMSBzcWxpdGUtaW50ZWdyYXRpb24KKzQzNDUwIDk1NWE4NmY4YTE0MGMwMjY4MGQxOTBkZjRhMmQ1YTFlOWY1NGMzY2Igc3FsaXRlLWludGVncmF0aW9uCis0MzQ1MSA3OGNhYzIwZjk2NDJkNzJkNjEwYzJjNGFkZDZmYjAzMTY2YmFkZDliIHNxbGl0ZS1pbnRlZ3JhdGlvbgorNDM0NTIgNjkxODc3OTlhOWY2YmU3ZGY4MGY2MmM1YjVlOWNjOTIxN2ZiYjY4MyBsZWdhY3ktdHJ1bmsKKzQzNDUzIDc5YTBmMDgwZjg5OGMyNTRiY2E5OTliOWQzYzMzNzNkMWM4OWY0YmEgbGVnYWN5LXRydW5rCis0MzQ1NCA1ZTFiNmY1NTM3NjMxM2M1YWM1YmE4YTI1ZTQxMmJjNjA4NzdjNjZiIGxlZ2FjeS10cnVuaworNDM0NTUgODQ5NjdhMTk2MmNiYjJhNWM3NDI3YTNlYTQ0YTdmNTMyNTNjZDI1NyBzcWxpdGUtaW50ZWdyYXRpb24KKzQzNDU2IGNlNTZjNWUzY2IyMDUwZWFlZDBhYWY0NTFlODJiMWNmODhlYzg2NTUgbGVnYWN5LXRydW5rCis0MzQ1NyBlNThhNzFhODU1MGU3YzkzN2I2MjBhZGMzODhjZGE1YzcxYzJmZTRlIGxlZ2FjeS10cnVuaworNDM0NTggYWFhMDRiZmFmYzU4NTVhMWZkNWY0NDczMzQ1YWRkY2E2MTYyYzA0MiBsZWdhY3ktdHJ1bmsKKzQzNDU5IDIzNWY2MzVhYzQ1YTA0ODcwYmRhODg4MDkyZGQ0NjgxMTdkMmRiN2EgcDN5aworNDM0NjAgMzYxOTBkN2ZkOGFiMmVhYWM5OGE2NDVjMzEwMTJmM2Y2NDA3ZmE1MCBsZWdhY3ktdHJ1bmsKKzQzNDYxIDA4OTlhODA0YTU5NGNjZjkyOGJiZTY5MmU1OTgzMWU3ZmU5Y2VlNWQgbGVnYWN5LXRydW5rCis0MzQ2MiA2MTQ1MmJkMTI1ZTVlMTA2YWQ5NDZhMTgyNTkyZTMzZjQwZGZmODM5IGxlZ2FjeS10cnVuaworNDM0NjMgMjI4ZTI1YzkzYTk3OTNiNjg5NWNjNDM2YzM0ZWQyMTk2MmM3YTZkMCBsZWdhY3ktdHJ1bmsKKzQzNDY0IGM3MmJjODQ3MGY2YzllYjgyNGY3YzkwNTk4NjRhMTI5Yzc2MDI2NTUgbGVnYWN5LXRydW5rCis0MzQ2NSAxOTA1OWRmNDVjZmU5MDJmMGUwOTA5ODYxZDFkMzk2MTk1MGNlNTRiIGxlZ2FjeS10cnVuaworNDM0NjYgMDQ5NjA2OTMzMzI4ZTg5MDgyMWUxMzMyOTBiYzk5NzRkNTM1NzA0NiBsZWdhY3ktdHJ1bmsKKzQzNDY3IGY1ZTc5MmE5M2M0MzFhNGRiMGZmZjU1NTY4YjhiODAyZWUxMDk5MmUgbGVnYWN5LXRydW5rCis0MzQ2OCA5OGY1YzkxOGEyNGFjYjkzMWUxZjc3YmViZjMwODQzOTA2ZjQ0NTY5IGxlZ2FjeS10cnVuaworNDM0NjkgMjAyZmU0YWFmY2JiMmMwODIzMGNhOTk2YmJjMzFhNGVlN2VlMGMxMiBsZWdhY3ktdHJ1bmsKKzQzNDcwIGQxOTkzZWU4YWM0MTFkMWZjMTIxNzZkYjQyOGNkMDJhMGZhZThkNWEgbGVnYWN5LXRydW5rCis0MzQ3MSBjYjI2NDVhNTU0ZDg4MmFmN2EyYjdhZmQyY2JlMTI3M2U1ODg4YzFlIHNxbGl0ZS1pbnRlZ3JhdGlvbgorNDM0NzIgMGQzZTVhYzA3MmIyYTE3YjQ5ZTM3MzAyNTA1OTBhY2E4Mzc2M2RhOSBsZWdhY3ktdHJ1bmsKKzQzNDczIDMyZTc2NzY5OTAwMTRiZDFhOTU0MTM5NzU1N2MxY2E0YWZiNjIwYzYgbGVnYWN5LXRydW5rCis0MzQ3NCAxNjRmOTVlOGUwY2NiNTA2OGRlY2QyMGQ1YWNlYTAwYWFmZjdlZGMzIGxlZ2FjeS10cnVuaworNDM0NzYgYzQ5ODhhYzU4OTk5NzkwZTUxZmY0M2FlYTY0Njg2N2IxMDljMjc4OCBsZWdhY3ktdHJ1bmsKKzQzNDc3IGQ2NWE5YzljOGE3YTJlYTM3MTczNDZhNGM0ZjFhY2YwM2I2ZWNjZjEgbGVnYWN5LXRydW5rCis0MzQ3OCA1OTkxMmI0ODEyZTZhZDg1ZWU0YzY3NTFjYmVlNzMyZTBhNjY4NTg2IHJlbGVhc2UyNC1tYWludAorNDM0NzkgZmI3ZDg5NWE4ODk3ZjUzZTM2ZTg4NGIzYzRjOTQ4NzU2M2JkZDlmOSBsZWdhY3ktdHJ1bmsKKzQzNDgwIDg2NmRhN2YzMGU1Njg2MGE2MTE4NmM4MGE2ZTE1Y2ExYjk4ZTRlMTAgbGVnYWN5LXRydW5rCis0MzQ4MSA2NzE5MmRhM2U2OWM5ODViYjEyNzJkYTkzMmQ3ZGU2MDczMDMzZmFkIGxlZ2FjeS10cnVuaworNDM0ODIgYzc3MTE1ZGRkYmUxNmRmNTJmYmY2ODIyNDlkZmEyYTNiYzViNTU4OCBsZWdhY3ktdHJ1bmsKKzQzNDgzIGFhYzAwNWU4YmI4MDA3OTAzZWQyZTUwZTcxZjU5ZmI5ODlkNTYwMDYgbGVnYWN5LXRydW5rCis0MzQ4NCBiODBiNWY4NGFlNTRmMmQ0NTIzMTVjZjY4OGJlNDE3NzRjMDdjYjNlIGxlZ2FjeS10cnVuaworNDM0ODUgYTdlYzc4ZjhkMDg2NmU2ODgyZjg4ZDU4ZjAzYmY4MDBmMWE2Y2M5NCBsZWdhY3ktdHJ1bmsKKzQzNDg2IGE0OTUwZWE1NTZiNTM0MzliOTU4MTcyYWJmOWI5MTZiMDcwYzQ2ZTQgbGVnYWN5LXRydW5rCis0MzQ4NyA3NWY5ZWIwMTEyMjZlMWYzZWY3YWUxYzU2YWE2MGE2MTFmZjA5MGFlIGxlZ2FjeS10cnVuaworNDM0ODggNmM2YjIwMDQ0M2UzNmM3YjQ0ZTA5MTYxY2RjN2IyODU1ZTU2MTUxMCBsZWdhY3ktdHJ1bmsKKzQzNDg5IGM5YTYyNzM3NzViNTAzYzQxZjZkYmM2ZDVmN2M0YzQwMjc4MzhlYzYgbGVnYWN5LXRydW5rCis0MzQ5MCBkYTc3MDY1OWY3N2I4NDJmMTJhZTRmNmUwZjhlYjJjNDZlNjcwYjZkIGxlZ2FjeS10cnVuaworNDM0OTEgNmZlZjk1NzcxMmI5MDZjZjNjZDI0NjBmOTE0MDZiZmVhMDJkNmNjZCBsZWdhY3ktdHJ1bmsKKzQzNDkyIGE2MWQzYWZkZmM0YjQ5M2M5ODMwNGQ3N2Y0NmYxYjkyNWZhMmFjZWYgcmVsZWFzZTI0LW1haW50Cis0MzQ5MyBmMzMwMDQ4ZDhiZGY4MjAyNDE0YTMzNjRjYWQyNGYxOTUxMjBlNmVlIGxlZ2FjeS10cnVuaworNDM0OTQgZDYxMGZjZGI4OWY3ZWJiMWJmODA5ZjUyMjIwYTViY2I2YWY5OTk5YSByZWxlYXNlMjQtbWFpbnQKKzQzNDk1IGZlM2I5M2MyMjQ4MTRmMzYwZWI2MGIzNWIxMGQxYzk4YjZkMmM4ZjEgbGVnYWN5LXRydW5rCis0MzQ5NiBjNmNmMTFhY2I0MWZiMzBiZTg0NGYzN2U0YTUzYWY5Y2NhZDBhMjQ2IGxlZ2FjeS10cnVuaworNDM0OTcgZTYwYzhiOWIyYjRmM2VkZWQ1YzkwYzAzMWVhZjMwZTFlZTFiYjdlMCBsZWdhY3ktdHJ1bmsKKzQzNDk4IGNjMzVkM2E4NzlhZDQ5NGNlMzE1OGZjMmJiNjU0ZGFmMTIyYWJiNDUgbGVnYWN5LXRydW5rCis0MzQ5OSAzODUwYTQ0MzQ4M2ExZmEyY2ZjZGMwNWNjOGUzZjQ1MTY2OTgyYzJjIGxlZ2FjeS10cnVuaworNDM1MDAgMzcwNDA0NTliZjJlNDFhODQ1MDgxYWY3OWJmYTFiYzg2MzdlMzFkOCByZWxlYXNlMjQtbWFpbnQKKzQzNTAxIGEyNGNiZjk0YmI4ZTBjZDQ1ODM1Mjg2YzJlNDczOWVhYWY1Mzg1NzcgbGVnYWN5LXRydW5rCis0MzUwMiBiZjY2NGExNjBmYzBhZGM3NDNjZGViOGNkOGE5NGU5OTQ0ZmZiZDVlIHJlbGVhc2UyNC1tYWludAorNDM1MDMgMjkxNGU3YjRkMjVhNDAwNzBmYjVhODBlM2Y4YWY5Y2Y4NjM3ZTJhOSBsZWdhY3ktdHJ1bmsKKzQzNTA0IDQzNmIwM2ZmYThhMjQ4ZmQ2MjYxMWNjZGQ5NmVjMTQ0YzE5ZTQ0NTIgbGVnYWN5LXRydW5rCis0MzUwNSA0YThlZjcwZGUyMTJlNDJjMmNlYTE5ZmI2NjY4NmMyYzMwMmU3ZWJlIHJlbGVhc2UyNC1tYWludAorNDM1MDYgMDE2ZDNkMjNmZjUyZGM0ZGJmMGM0MTM0NDVhZjBiMTcyMmRjN2U5MCBsZWdhY3ktdHJ1bmsKKzQzNTA3IGE3ZjhiMGJlNTk3ZTU3Mzg0ZjFlZjFmMWE5MzIxNTIxY2M0ZmJiMmYgcmVsZWFzZTI0LW1haW50Cis0MzUwOCA0N2ZiYmE4NDlhNmM4MTk3MzA4OGE0Zjk0YmIxOWRhNTc1MWJlMjBhIGxlZ2FjeS10cnVuaworNDM1MDkgODY3MGEyNzAxYTBmOTZmMmI4NmQ1OTVhYTI2MTVhNGJiOTgwY2Y1MyByZWxlYXNlMjQtbWFpbnQKKzQzNTEwIGZhYjY3MmMzZGRlNjU4NzQzMjU5N2NjZTA5Zjg1ZmVkZjNhMGU0ODQgbGVnYWN5LXRydW5rCis0MzUxMSA0NjJjOWQyYTA3YmIzN2NhMjg2Y2IyYzQ2ZjQ1MjkxZjA0ZWVmMDU3IHJlbGVhc2UyNC1tYWludAorNDM1MTIgOTgyNTE3ODAyMzZkN2Y0NGFiNGIwMjlhMDBjMzI4Yjc3M2VkMTFkOSBsZWdhY3ktdHJ1bmsKKzQzNTEzIGYwNWJkOThkOTM1ZDU2ZjVlYzE4YjU1NWEwNTY4M2FjMTQ5YjVmYzIgcmVsZWFzZTI0LW1haW50Cis0MzUxNCBlNTQ2Mjc0ZDY1MDNlYTIyMTM0NTgwYjU3NjgwN2IxYjNmYjI0OTU0IGxlZ2FjeS10cnVuaworNDM1MTUgNTkxODVmZmE4NjFkYTBmMTYwZTNhOWMyNjBkZjI1ZjQ1YzE3NTJmNCBsZWdhY3ktdHJ1bmsKKzQzNTE2IGI0N2Q4MjE5ZWNkNjFmZGFmOTA2Nzg3NjBlODMzMjIwZmRkMzQ1MzUgbGVnYWN5LXRydW5rCis0MzUxNyAzNWNmOTEyOTc2OTNlZjA0ZmZmNmE0NGQ1MjA0OTY2OGZiMjdkMzIyIHJlbGVhc2UyNC1tYWludAorNDM1MTggYjgyM2Y1ZmU5ODBjYzM5ZjBiODQ1MTIxMTE0ZmNlZjgyNDkxMDBmYiBsZWdhY3ktdHJ1bmsKKzQzNTE5IGE1MzNkNWI1ZGI4NDAxNGU3Mzg1YTJiMzIxOTQ3MzJiNWNmODM3ODEgcmVsZWFzZTI0LW1haW50Cis0MzUyMCAwNTkxNGU4ZGVkNzNlZGI5OWVhYTM0ZmFjZDIzMzRmNTAzYjg5NzJlIGxlZ2FjeS10cnVuaworNDM1MjEgODU4YWU5NTRmMDU1ODc2NDczMzc5Zjk4NzZhODYyOGQ2ZmIyYmMxYSBsZWdhY3ktdHJ1bmsKKzQzNTIyIDg3MGQ1NmEzYTIwYmU0ODVhNmNmMmMwN2FkMWY3NGQwMDU3NzFhNjYgcmVsZWFzZTI0LW1haW50Cis0MzUyMyA0OTIwNDQwMzRhODdiYmI0ZWE0NWQ5NWM3YmFiYzI2ZjUzOGZmZWEwIGxlZ2FjeS10cnVuaworNDM1MjQgNDIzMTJlNWYxMWZkMTE1YjMwODIyNTFiZTFjNTIyMzU5ZGM3MTJmMiByZWxlYXNlMjQtbWFpbnQKKzQzNTI1IGY2NDgxMmIyYjVjMWNiNGQxOTY5MmNhODI2YTMyNTQ4MDc1MGJiZjcgbGVnYWN5LXRydW5rCis0MzUyNiBiMDY4YWVlMWRmYjViMzU2MjRlMDE4Y2UxMmVkODQ0YTNhZWNhZmYwIHJlbGVhc2UyNC1tYWludAorNDM1MjcgNmYwODYzYmVkY2VhMzJkMWNmMzNkZDRhODJjN2E4ZmNlNmMxZmEwYiBsZWdhY3ktdHJ1bmsKKzQzNTI4IGIwOTgxZjBjMThmZWI2ZWMzZTdmNjFlNjI3NDU0YzAxZWY2MTg4ZmIgcmVsZWFzZTI0LW1haW50Cis0MzUyOSA4ZDA1NzlkMmI2NjI3OTJhM2U5MDVkMDNhNjMxYjM3NTBlYWYxYjliIGxlZ2FjeS10cnVuaworNDM1MzAgODIzYzQ4ZDY4NzFlYzc5M2FmM2FiNTg0YjIwMmFiNWY5OTFkNGJiNiByZWxlYXNlMjQtbWFpbnQKKzQzNTMxIDJjY2U5YmNkYzlmNjQ1OTViYTUxY2E4ZWZhODcyZTNlNjkzMzExZDIgbGVnYWN5LXRydW5rCis0MzUzMiA1ZjM1N2U2MGNkZGVhNTljZjE1MWRiMDkyNzI3MWU2YzM1ZDg0NjFmIGxlZ2FjeS10cnVuaworNDM1MzMgOTFlOWZiNWNmZTE0MjU1YjM5NjM4ZGU3N2RmMWIwZjQyZTNhOGMzNyBsZWdhY3ktdHJ1bmsKKzQzNTM0IDgzOTg4MzU0YjY0ZDlhODhiZmFlYzMwNDYxYzU5ZDc0Y2RkOWQ2MWYgbGVnYWN5LXRydW5rCis0MzUzNSBiNzMxNzRhZjI2YTliNWQ3ZWE5M2YwZmJmODgyZjAyZmY4MTNkZTk3IHJlbGVhc2UyNC1tYWludAorNDM1MzYgZmFiNDY5MzYxYmJjMGU0Yjk5OGI1ZGUxMmIxZDBkNjUwZGExMGNkYyBsZWdhY3ktdHJ1bmsKKzQzNTM3IGFjZTY3ZTNiY2E2ODMyZTE0YmE0ZWFjNWE1ZGRiYjBiYWE3NzRlZmQgcmVsZWFzZTI0LW1haW50Cis0MzUzOCAzYTgxZGNlYWE5YThiZTQxM2E3ZWY3ZThjMzMxYjMyNzc1MmI1ZTU1IGxlZ2FjeS10cnVuaworNDM1MzkgNGFiOGVjOWU1OWRmYWYzNDkxYzM0MDUxNTRmZmU1YzFhYjg4MDRjNCBsZWdhY3ktdHJ1bmsKKzQzNTQwIDBlNGIzY2FkODlmZTZjMjI2ZjBhYjM1Njc2YzIxMThiOTQ4MTU1NTIgbGVnYWN5LXRydW5rCis0MzU0MiAzZDRhM2Y0ZmM5OGU4YjFmYWVhNDNlMWYwNjdjZTZmYzEwODE0Y2MyIGxlZ2FjeS10cnVuaworNDM1NDMgNWUxY2YyMWQ0YWIyMzE5MGVhNTNkYTU5ZmE2MTcyYTZiNDQwMTUyNiBsZWdhY3ktdHJ1bmsKKzQzNTQ0IDRiNjVhYjQxYzc3MTdmZDVlYWQzNDYwZDgxZjYyMmUzNTdiNGNiNDYgbGVnYWN5LXRydW5rCis0MzU0NSBmZTk3YzAwMTZkNGIxM2ZmYjc1N2Y4ZDkyY2U0MWI1NDE1ZDg3ZDZmIGxlZ2FjeS10cnVuaworNDM1NDYgYTZiY2U3YWViZTA1YmNmZDNhMTEzYTY1MDM3OWE2MmJkOWRiNGI4YSBsZWdhY3ktdHJ1bmsKKzQzNTQ3IDRhMjA2ZmNlNWZlN2E4NDI4ZDlhYjNkNDM3MGI1YzJlM2M4YTcwMDYgbGVnYWN5LXRydW5rCis0MzU0OCA1YTZjN2Q2ZGVmMGM5Y2U1NWMwZTY4NWRkZTc5MmZhNTEzODNkMDA5IGxlZ2FjeS10cnVuaworNDM1NDkgM2FhMGE0ODI3ODg4YjI0NDRlOTBmMTFiY2Y3YmE2OWQwZDUwMjBmZSBsZWdhY3ktdHJ1bmsKKzQzNTUwIDgwNjhjMjJjMzcyNGU2Y2ZlMzQwODQ5ZjRlNzI2OTZkN2Q1NDhiNmMgbGVnYWN5LXRydW5rCis0MzU1MSA1M2VmNmMzNzcyNzFkZjhkYzhkYjNhNTQ4ZTAzNGNiN2UxMDJmMTM5IHJlbGVhc2UyNC1tYWludAorNDM1NTIgZjRkODhjZmFlYzYwYWM1MjBlNzZkMjJhNTI0MDgyMTU5ZDY1ZTFjMiBsZWdhY3ktdHJ1bmsKKzQzNTUzIDQ4Mzc3MjJhNjBmMDNkOTY1NmZhOGUwNDc0ZTcwNjdlYWU2ZmY5OTIgbGVnYWN5LXRydW5rCis0MzU1NCBjZjEwZjI0NDM1NDJmNmQyYmU0ZTZkOTc0NWM0Y2U3ZTc4NWZjNjllIGxlZ2FjeS10cnVuaworNDM1NTUgMmNmM2I1YzQ1MWQ3NDViMzU1YzNiMmNhNmJhMTgyMWVkYWI3Mjg1NyBsZWdhY3ktdHJ1bmsKKzQzNTU2IDI2MGVlMzkxZjkwOGYyM2UyZWU2OTcwNjI3NGM5YzMxNWFjZWM4NDkgbGVnYWN5LXRydW5rCis0MzU1NyBhMDY2ODVmMDg4ODY3ZmE3YmFjN2I4N2JjYzgzMDM1NjQzYmVjZTU4IGxlZ2FjeS10cnVuaworNDM1NTggZTk1NTI4NGNkNjk0MDJkYWIyNTg3NzYzZWMxZjBmZTIxZjM3MWUwZiBsZWdhY3ktdHJ1bmsKKzQzNTU5IDg1YjI2ZjRmYTJhNTA0ZmRiNTM0YzlhNTEyNjg2OWViMDJiNzYzOWMgbGVnYWN5LXRydW5rCis0MzU2MCAyODM0Y2NmNTUyZjM3ZjY3Y2U3YWFkYmU4NjI5ZjdjZTQ0OGZhNDI3IGxlZ2FjeS10cnVuaworNDM1NjEgYTYwYTk0NDNlOGRhZDllMmZkMDg4NjRjZjhiYWVhZGJiMmEyNDk4OCBsZWdhY3ktdHJ1bmsKKzQzNTYyIDljMmE0NjJkNjZiYjczYWFjOGE4NDJkNjFhZTk1MzA4MmRkNGM4NjYgbGVnYWN5LXRydW5rCis0MzU2MyA0MDIwY2Y2YzM4M2UwNjA2ZTY4NWE0OTVjYmIwZjAyYjk1ODIxOTJlIGxlZ2FjeS10cnVuaworNDM1NjQgZWE5YTAzYjhiOWY2YjFlZTYwY2YzNWY1MjE0ZTA2M2E2YjA0MjJiMSBsZWdhY3ktdHJ1bmsKKzQzNTY1IGRmYzMzZWM3ZjczYTg1ZmVhYjA4MjkwOGNhMWE4MDc5YWZmODhjMjMgbGVnYWN5LXRydW5rCis0MzU2NiA3ODI2MDQ5YWNiNGIxZDNhYzExMmM4YjVmN2IwYzIyMzhmNWNhZWRkIGxlZ2FjeS10cnVuaworNDM1NjcgNTAxZmRhNTExYjBhYmQ0ZDdkYWQ3ZjZmMjM0ZjkyZjY0OTRhNGJiNyBsZWdhY3ktdHJ1bmsKKzQzNTY4IDA5YjhlNWExMjE0NmNjOThmOTk3MzM4ZmM4YjQ1YTMwMzA4OTE5M2QgbGVnYWN5LXRydW5rCis0MzU2OSA1NDZiNjMxOTI0MDA2MmU5ZTY0YTdiYWMyYzkxOGQ3MmQ2MmYwMjI5IGxlZ2FjeS10cnVuaworNDM1NzAgMTAwNDBkMTg3YzIxMDRmNThmYmJkNGI0NmZkMzUyMGE4YTFlZGEzMiByZWxlYXNlMjQtbWFpbnQKKzQzNTcyIGNlYTU0YzlkOTIxZDU3YTk4ZTQ5NGUzYjNmMWY0YmVkYjQ3Njc0YmYgbGVnYWN5LXRydW5rCis0MzU3NCBlODJhYTgwNDE4MjFhMzU5MzMwNTFhNzE1YzJkZjA4MWE1ZWZlMmMxIGxlZ2FjeS10cnVuaworNDM1NzUgYTM0ODE4NzExMzJjZTY1NWMxNDQ3NDIyNTVjN2ZkODRkMjdiZDdlMCBsZWdhY3ktdHJ1bmsKKzQzNTc4IDc5ODZhNWIxMzFlZDJjMDdkNDk4MjE3MWEyMDA3M2MxZmVmZmY5ZWIgbGVnYWN5LXRydW5rCis0MzU3OSBlOTU2ZTE2ZTc0NDRmYjI0YmM4ZmQxNDI2N2RkYTZhZWE1M2U1YjRkIGxlZ2FjeS10cnVuaworNDM1ODEgNTdiMWZmMTM4OTk1ZTg3MDE5YTU1ZDVkYzUzZDRlN2JmZjIwNjQ0NSBsZWdhY3ktdHJ1bmsKKzQzNTgyIDNlZWE2NWJiODk2ZWRjMDYzZjI3YWJmMDU0ODY3OTllZmI3NDVhOGYgbGVnYWN5LXRydW5rCis0MzU4MyA1MTMzYjViMGI0YTg0NThkZDVlODU5NzUwYmE0NTE3NmRmZjlmMTU5IGxlZ2FjeS10cnVuaworNDM1ODQgZTE0MjU1ZGY3ZmQxNjFlODgwYjQ1N2FhZmQ2ZjliOTAwOWE5Y2NjNSBsZWdhY3ktdHJ1bmsKKzQzNTg1IDkyYTE3YTI4MjFlMDRlMTY5YmFjMTQ1OTgyMjEwOGRjMDBkODEwZDYgcmVsZWFzZTI0LW1haW50Cis0MzU4NiBlYjY5ZDJlMzEzNGNlYjBhNTNkNDZmMmI5NzJlN2E2MmExOGE1MDY0IGxlZ2FjeS10cnVuaworNDM1ODcgZTgxNGFkOTcwZmM2YTkxNjVkMDVmNDEzOGEzMjRmZmYxOTJiZDQzNCBsZWdhY3ktdHJ1bmsKKzQzNTg4IGZiYzYyZGI5N2U0MzljNWJmZjE1MjE1ZGI2ODI4NGI0NGVjN2E2NWQgbGVnYWN5LXRydW5rCis0MzU4OSBhOGNkOTA1ZmQ5NmNkM2VhZDJlZTNiNGI1MzdkNTUyY2M4OWM4ODJiIGxlZ2FjeS10cnVuaworNDM1OTAgNzk2YWNkZTcwMTk1NDExZjEzMDZjMWYxMWVhMThlMTJkYTM1MTRiYSBsZWdhY3ktdHJ1bmsKKzQzNTkxIGJkYmUwN2Q5NmI4ZWY0ZGIzNWNhMWE0N2IxMWMzY2YzOTVmNjQyYWEgbGVnYWN5LXRydW5rCis0MzU5MiAwMWZkMDkzYjg3OGNjNzcwMjNmNDVhNmQyMzM5MmMxMDk3MmEwZjJmIGxlZ2FjeS10cnVuaworNDM1OTMgYmJlMWNkYzkyNjA1MWFkODI4YzgwNDVlMzBjMDNkYmViYWVhMmU2YSBsZWdhY3ktdHJ1bmsKKzQzNTk0IDExNTQyOGJiMWQzZjY0NWJlOGY4ODc4MGRlYzU5NTZlYTZmZjUyMjcgbGVnYWN5LXRydW5rCis0MzU5NSA1Y2M2ZDcxNTM3YTMxYTk1ZjNkMzkwYjFhNjczN2RkMDQ0ZmQyYmE2IGxlZ2FjeS10cnVuaworNDM1OTYgNmQ1MGZkMzY0Y2Y1Y2I1OTZkM2YwZDQyZTdjNTY5MTc4NTE4NWJkOSBsZWdhY3ktdHJ1bmsKKzQzNTk3IGU0NTdiMjRmOThjNTFmNzNmODA2OWVmMWI0ZjI5Mjg3M2FiYzdmOGIgcmVsZWFzZTI0LW1haW50Cis0MzU5OCAzNWM0YjA5MzNhOGI3ZTU5ZDE2NGJiYjQzYTVkM2U3YTY1MTk2N2IwIHJlbGVhc2UyNC1tYWludAorNDM1OTkgZjVhZDNjN2VjMmNiZjQ1M2JmZTViOGEyMjliOTVmMzhjNjNhZDMxZCByZWxlYXNlMjQtbWFpbnQKKzQzNjAwIGJjOWQ1M2MwMGRhZDZjMzYzMDEwNDc4ZGQzMDQxNjAyZDVhMWIzMTUgbGVnYWN5LXRydW5rCis0MzYwMSBlMmIzYTdkOWFjYTkxOGFkNWM1MjYyNzIyNWY5ZjZmNzVhYjk1YjczIHJlbGVhc2UyNC1tYWludAorNDM2MDQgMTA0OWU5YWViMzg1MDlmZWVlMWRhNTNiYTBkMWJlZGM0ODJiMWU2OSBsZWdhY3ktdHJ1bmsKKzQzNjA2IGEzODMwMzc3ZTFhNzk2MjE5YzEyNGJmZGNmMjkwYmUzMzAxMjUxY2IgbGVnYWN5LXRydW5rCis0MzYwNyAyY2QxZTViMTVlMDUwZGUzYmQ2ZTRhM2NhN2MzNjViMmE2ZTYzM2FkIGxlZ2FjeS10cnVuaworNDM2MDggMjlhMDZhMmYzZjJkOGYyNTgzN2M2NzgwNWQxMGUwZjI5ZGQ5NDA2NCBsZWdhY3ktdHJ1bmsKKzQzNjA5IDYwYmVkNjQxYjZkMDMzMDA0NDUzZjhiNzY5NDJjZWQ0MTBmMzljMjUgbGVnYWN5LXRydW5rCis0MzYxMCA1YWEzY2VmNGE4YTdiNDkyMmFjODNiOWE0NTNkNWFhZjA3YjgxMmRkIGxlZ2FjeS10cnVuaworNDM2MTEgNmRiZWE5MTFlODgxMGE0YTI1MzI1YTY2YTgwNGZhZDljNjFkZWZiNyBsZWdhY3ktdHJ1bmsKKzQzNjEyIDBmM2I3YWZhMTg3YWU2NmJkYzE3NjBkMGZlZWRiYmRhYzgyMzZkOGYgcmVsZWFzZTI0LW1haW50Cis0MzYxMyA0OWRiZWRmYjFkNzQ4MzBlNmExNTU5OTE3MzZkOWYzM2MxYTRlOTRiIGxlZ2FjeS10cnVuaworNDM2MTQgMTZhNjRlMzk0NjAyMmZiOGIzMWY2YWM1MjQyYWJhYWVlOWNlOWUyYSBsZWdhY3ktdHJ1bmsKKzQzNjE1IGVmZjZjNTM0ODNmZjM5YTMyNjQ2M2Q0NzA5OWQ2MzNmNjIzZWMyMjYgbGVnYWN5LXRydW5rCis0MzYxNiAwN2U0NGZkMDZjZjc2MzllNzg1MTk1MmNjN2U5NzJkZmZhNjc4Y2RlIGxlZ2FjeS10cnVuaworNDM2MTcgMmY1N2RhOTIxYWVmN2MxZWE2Nzk5Yzc5OWE3MmU1NGFjNTc4YjVjYyBsZWdhY3ktdHJ1bmsKKzQzNjE4IGRjY2U4MWI3ZTY0ZDAzYzg1NTQxOWMyMjA3ZjQxZjdjOWY3YzE0ZmUgcmVsZWFzZTI0LW1haW50Cis0MzYyMCBkMjcwNThjNDA5ZGYzYzY5NWNkYzUwNzM5OTczMGQ2ZGNlZDA1ODk0IGxlZ2FjeS10cnVuaworNDM2MjIgYzFjZWYxZDJkY2NmNGI5ODQxZjZkMGU0NDg3MDdjN2EzNWYyNWFmNSBsZWdhY3ktdHJ1bmsKKzQzNjIzIGQyNjk3YzUyY2NhZTU5YjkyYjAwYjczYWVlYWEwNjJiYmI5MDE1M2UgbGVnYWN5LXRydW5rCis0MzYyNCA2YWIxNWZjODVjMmQwYzY4Yzc3Y2M2OTVmODdjZDI2YmNkZTliN2ZjIGxlZ2FjeS10cnVuaworNDM2MjYgYjYwMzMwNzI5MmZjNzRhZTg2YWY2YTU1OGVlMTA0MzdhZGM4YTNjNSBsZWdhY3ktdHJ1bmsKKzQzNjI3IGFkZDAwNzg3MGJiZGFkMzkwOTIxZDkyMGE2NGQzZDJhMjU4MjY3OTAgbGVnYWN5LXRydW5rCis0MzYyOCBkMzQ1MTY1ODgyNzJhZWUxYzgzYjk4ZTRkYjU0M2JmYTg5ZmNkYTc5IGxlZ2FjeS10cnVuaworNDM2MjkgMmMzOGVlNGJkZDhhYjI5NWU0OTlhYjUzMzc0NGIyZWNjY2MxY2RjMyBsZWdhY3ktdHJ1bmsKKzQzNjMwIGMxMTViM2FlMWMxODc5YTNiMDBiZWQwZTU3YmI3YWVjOTcxMDRhNmYgbGVnYWN5LXRydW5rCis0MzYzMSAxZjEwOWE0OTUzYzY5YTIzOTE2OTExNDRmNjY4YjExZWI3ZjkwZWZlIGxlZ2FjeS10cnVuaworNDM2MzIgMDRhZmIzNjUwODQ3NjBlYWNlYTZkZDhhZGNmYTI4MjdmYTA0ZmI2NCBsZWdhY3ktdHJ1bmsKKzQzNjMzIGExN2I1Mjk0ZTk5M2NhOTZmYzEwMWNlNWI5OGRmOTljOTIyMTMwNDcgbGVnYWN5LXRydW5rCis0MzYzNCA5ZWNiY2U1NWE0NTQ2NWQ4YTA0YmJlNGRlOTQwN2Y5MjcyNmViNzdiIGxlZ2FjeS10cnVuaworNDM2MzUgOGVmZGVmMmVjZjNiMTk1ODVkMTI1YmJkMDMyMjZkNjQwOTFmNzliMSBsZWdhY3ktdHJ1bmsKKzQzNjM2IGY4ZmMzMGMwZmM3YzM0NTIxOTNhMWY4YzNmM2IxZTliOGE4NmI3NzkgbGVnYWN5LXRydW5rCis0MzYzOCAyMGZmYzJjYTAzZTBjYTUxYmFmODk2NjBkOGZiOWMzZTY5NjYyMDExIGxlZ2FjeS10cnVuaworNDM2MzkgNjI1NjdiYmU3ZDg4ZGE1OGIwMTRlOTAzOWMwY2JlYzQ3M2U3ZjgwNSBsZWdhY3ktdHJ1bmsKKzQzNjQwIDU4YjhkMjk4MjE0NGY4OGQzNjVjYjQ5OTJkYjlhYWZhOTQ0NjM2NjAgbGVnYWN5LXRydW5rCis0MzY0MSBlNjU4MjkwNWVlYmE2YjU2YmM3ZjI1YTNhZGI4NjQxNDg4OGFiNzI4IGxlZ2FjeS10cnVuaworNDM2NDIgOTAzZTMxNjIwOTllMjkwZjg4YjFiZTUxNzE4OGUxY2M5ZTgwM2ZkZCBsZWdhY3ktdHJ1bmsKKzQzNjQ0IDg1MmYxYzFhODliNGQzNGU2MTc5ODcxNDgxNjJkYjdhOTJkMDBkMzEgbGVnYWN5LXRydW5rCis0MzY0NSBlNzA5ZTYyODg2ZTYwMzk0NTIzOTUyMDUwMzU5MTNkZmFhMjU3YmQxIGxlZ2FjeS10cnVuaworNDM2NDYgZDZlY2JhNTk2ZTFlNjg5MWQwNGE2YTFiZDhlNjc5ZjM5YWU3YjBkZiBsZWdhY3ktdHJ1bmsKKzQzNjQ3IDI5NjM5MmM3MTA2OTBlNjBkZDE0ZDNkNGViYjExM2MzN2Q1ZjkzNjEgbGVnYWN5LXRydW5rCis0MzY0OCA0YTk5OWM2ZTAwYzAyZmRhNWFlMDEzNTVlNThjNWQyNmQ4OTY3ZjM2IGxlZ2FjeS10cnVuaworNDM2NDkgYTk4MmIwMmJlYzBiZjE4NDUwNjJiZjU4NWE0ZmQxYTZhMWE1MTVhNiBsZWdhY3ktdHJ1bmsKKzQzNjUwIDEwNWE4ZGQwMTg1MTY2NTNiZDAxNWY2NjZiNzgzYWFlM2M3OTA2ODQgbGVnYWN5LXRydW5rCis0MzY1MSA4OTZmOWZlYWQxN2U3MjBlYzRhMjFkZTNhYzIxNDUxOGRhODQ4NDVmIGxlZ2FjeS10cnVuaworNDM2NTMgYTBmMmMzOGQ4NWY0NTNhYzk2ZTU5NmVmZjI3ZTBjMDQxMzMwYzliNSBsZWdhY3ktdHJ1bmsKKzQzNjU5IDM5NWIxZjVjOTc1MTQ5M2NhZTcxYjRlODQxNDBjYWRmMTkyOTQ2NjggbGVnYWN5LXRydW5rCis0MzY2MCA0Yjc2MWE2MzM5OWM0MjdiYjc4YjUzZDJmODc2MmYyYzg0N2ZhNDA4IGxlZ2FjeS10cnVuaworNDM2NjEgNjlmNzk1MTc3NjFkMTJhNjNlZWYwNmRkZGVkNzkxMDBhMWY1MWExZiBsZWdhY3ktdHJ1bmsKKzQzNjYyIGRiZjViMmYyYTQyOTE2ODcwMTc0Mjc2ZDFhOGM2NWYwMzY0MzE0NWEgbGVnYWN5LXRydW5rCis0MzY2MyA2NTMzMzhhYTY5ZjJkN2RjMGQxNmJmNzFmZWU2OThjMjIyYjFlOTIyIHJlbGVhc2UyNC1tYWludAorNDM2NjUgMDk5OTA2NjEyMjZkYmFhNWMzMGRlMTRjOTQ3ZGI0ZDYwMTA1YWRlMyBsZWdhY3ktdHJ1bmsKKzQzNjY2IGVkNmZlNzI5MTA4Mzk5OGU1NmMzNTlmZjY3MjE5NGMwNzEwZTQzMmIgbGVnYWN5LXRydW5rCis0MzY2NyA5NzZjMDEwOTFiMzg1ZGVkOTA0NTJlMWJmNWY1ODQ4MjUzNWFlOGEzIGxlZ2FjeS10cnVuaworNDM2NjggZDM5NjlhZWJhNzc3ZDEwMDZjZGY5OWRiNDYwYThkYzhhNDBlMzg3MiBsZWdhY3ktdHJ1bmsKKzQzNjY5IDQ4OThmMTk2YTI0ZGViY2VkNWI0ODU4NzU2MDg3NDVhMzgzYWE0ZDQgbGVnYWN5LXRydW5rCis0MzY3MCAzZDRmMzUzYzNkNGZiMjY5NDk2MmIyNTY0ZDc5ZWQ5NzdiMjBiMmFlIGxlZ2FjeS10cnVuaworNDM2NzEgNDhkMTJkZWYzMmIzYzhjZWI5OTQ0N2YwMGY3ZmFiYjZkZTdhM2U3ZiBsZWdhY3ktdHJ1bmsKKzQzNjc1IDk3YmMzNDhkYmM1ZGYyZDlkODYxOTBjYWEzNDE5NjYxMDllNGViYzIgbGVnYWN5LXRydW5rCis0MzY3OCA1ZWM4ODgzYTJlZjlhMTY0MmI2YzA3ZmNiZDc2OGY0MDdkNzE1NGY3IGxlZ2FjeS10cnVuaworNDM2NzkgZjY2MzVmMzA0Njk1ZTY2YmY1OTU5MzhkZjc3M2MyMDllZDljNGRiMCBsZWdhY3ktdHJ1bmsKKzQzNjgwIDQ4Y2RlMmY4ZDUwZTFmMTM5MzIxZDQ0Y2YzZmY3NzhiZmNhNDdmZjggcmVsZWFzZTI0LW1haW50Cis0MzY4MSAzNjliYjVmNjdlZjY4NTdkMzE1MGI0MGIzYjU3YWVhODNhMjIwOGI5IGxlZ2FjeS10cnVuaworNDM2ODIgOTYwYmY2YWE4NTRkZDY2NWNjZmFiOWRiMzg4YThiMTEwZTYwODZmMSBsZWdhY3ktdHJ1bmsKKzQzNjg0IGZjOGM5MGE0NGU2OGI3OTMyNzliM2Y1MGRmYzMzYjdkMWNjNmJkYzIgbGVnYWN5LXRydW5rCis0MzY4NSAxZGFmNGY3YjMwMjE2YTExZGJiMjFjMTY5Y2UyYTYxM2RkZmZkM2FlIHJlbGVhc2UyNC1tYWludAorNDM2ODYgNWIxMTlmMjU2Y2RlNWViMTFhNmRmMmEyMWJmNmEwZjViNGViZjU2NyBsZWdhY3ktdHJ1bmsKKzQzNjg3IGQ1Y2I3NzIzMjJiZjY3YzMzMzRjMzEwNThlMzhlMDUxM2Y5MTE1MTEgcmVsZWFzZTI0LW1haW50Cis0MzY4OCAzZjA5NWM1NWMyZDliMWQ0ZDdjMTdlMTdhZTQ5MTgzOGIwMTQwYTRiIGxlZ2FjeS10cnVuaworNDM2ODkgNDI4NDg3OWExOGVhZDg2M2VmZjRjZDcxMjg3MzAyNzM0ODVlM2E2NSByZWxlYXNlMjQtbWFpbnQKKzQzNjkwIGFkNGY3NTUwZDhhNDA2MjU4YWU4YzZiOWNkZDBiMTk1ODI4ZTY0MTIgbGVnYWN5LXRydW5rCis0MzY5MSBkMWRkYTExNDhmMTA5NjliOGUxMjVmMTQ3YTQwMDBmYTcyMjhmMzdlIGxlZ2FjeS10cnVuaworNDM2OTIgZDAzMjAxZjJmOWMyNGE1OTNiODk4ODY0ZjM4NjRjYzk5MmVkNzJkOSBsZWdhY3ktdHJ1bmsKKzQzNjkzIDJiMGE1ZWVjMDI4YjA3ZGZjZGFhMGI2YzA3ZTg3ZGMyMTQyNDgyY2QgbGVnYWN5LXRydW5rCis0MzY5NCBjMTZiNzUyZWU5M2JjMmFkYTYxZjUxZTMzNzIyOGViN2Y0ZWU2MTQzIGxlZ2FjeS10cnVuaworNDM2OTUgN2NkM2JmMjM5OWU2MjBhNjM0MmJmYmViYTkyMGVkNDBmZjkzZjBlOCBsZWdhY3ktdHJ1bmsKKzQzNjk2IGNlNGFmNTQxNmQ3NjVlYjVmYTg5N2RmZTE4YTVlNGMzY2Y4NWMwODggbGVnYWN5LXRydW5rCis0MzY5NyA3OWQzYzRhZDkzMTA5Yjc5OWE5YjlmZTEwZjAxZTFmZThhMmZkZmU3IGxlZ2FjeS10cnVuaworNDM2OTggZmY3MTg3ZGNhMmYxYWY0MTFhM2UzZTAzMzY5NDk1NzYyNTE1YzRmNyBsZWdhY3ktdHJ1bmsKKzQzNjk5IDIxMTQxMDM3YTEyMzNiZDk0ZWUyOGJkMDQwZDNmZmVjMzJjODcwYWQgbGVnYWN5LXRydW5rCis0MzcwMCA3YzQwNDhlYzBjNjg4YzVlNTZhNDQ5ZGEwNmU3NTQ3NDk3YzFhODUzIHJlbGVhc2UyNC1tYWludAorNDM3MDEgNTU1NmNlOTlmMjBjNDg0NmY3OGQ1NmFhNzM1NGFhNDc3MTk3ZWQ0NiBsZWdhY3ktdHJ1bmsKKzQzNzAyIDBhMDE0ODg0MDE3Y2RjYzYzZTFlNTMzYTA1MDQwYzM4MWFjNGY1NjggcmVsZWFzZTI0LW1haW50Cis0MzcwNCAwMTg0NWEyNDdjOGIxNTVlNmE2NjAzMDRmZWNkZWI5YzgyZmVhMjllIGxlZ2FjeS10cnVuaworNDM3MDUgOGM3ODI4OGQwZGJiYjE0YjgxZjEwODg0NGYzNmVmYjY4YzhlOTZjNiByZWxlYXNlMjQtbWFpbnQKKzQzNzA3IGI0M2RiODdhOTc1MjM5N2ViMTVmNWI4NTUwNTQ3MWE3MWFmZjhhMzkgbGVnYWN5LXRydW5rCis0MzcwOCAwYWUxZmFmNDExZmZmMjI0MTVhYzhlZTRkOTYxYjMzMmUxMmM1NjMxIGxlZ2FjeS10cnVuaworNDM3MDkgMGE0NWNiMzBiNjRlMGJlYzA5M2E2ZDc4OTFmOWY1OGFmZmMyM2Y5YiBsZWdhY3ktdHJ1bmsKKzQzNzE0IGE5ZGY5YjBiYTQxNjVlNGM4YTVlMGVmMTk1YjNjOWQxYjg1ZjBlYjYgbGVnYWN5LXRydW5rCis0MzcxNSAzYzdlYTUwNTE4YmUyMjE1Y2MzYjEyMTk2ZmJmOWQ4OGYxZDA3YjhkIGxlZ2FjeS10cnVuaworNDM3MTYgZDIyY2IxNGRhNjcxNDNlNzgwOGE4MjI2MTIzYjYwMDU4NWE1MWM4NyBsZWdhY3ktdHJ1bmsKKzQzNzE3IDE1ODNkM2ZkZGRjZDc2YTgwMjliOGVjM2M4ZGJiZDY2ZjlmODJiZDEgbGVnYWN5LXRydW5rCis0MzcxOCBhOTQ3MGViNjM3ZjE5NDg4MDc3MWM4MDE1NGMxM2VhY2M5ZDljY2E0IGxlZ2FjeS10cnVuaworNDM3MTkgODY5ZjNjOWQ3NDAxNDAwZWUxMGM0YTk1YmY1Y2JmM2Q0OGJhMGM5NSBsZWdhY3ktdHJ1bmsKKzQzNzIwIGY4YzRhYTU0MTNkYmEwZjZkOGMyMzdhYmI1MDE5ZDVhYWIwZDdhMDIgbGVnYWN5LXRydW5rCis0MzcyMSA5YmVkMzBkZjdhNGFlYTk0ODM2ZTk2ZWM1NWNkOTkzMDAyNDk5Y2YyIGxlZ2FjeS10cnVuaworNDM3MjIgNWJjMmI0ZTNmZmMxNjQ1ZjJiZTNjYTFkY2ZhZGNhYzY0YTkxYWRhYSBsZWdhY3ktdHJ1bmsKKzQzNzI5IDkwMDZmOTIyM2Q4MGI1YzQ2ZDZlNTRhY2U0NmYxNzEyY2M0YzI1MmYgbGVnYWN5LXRydW5rCis0MzczMCAxNDlmZTY4NGU0MDE2MDk2YmQ2YTUyZDFmNzdiZTgzYjVmZGMxZWVjIHJlbGVhc2UyNC1tYWludAorNDM3MzEgYjM2NjZjNWRkZDhhMGE4YmM4Y2IyZWU1OGIzZTQ0M2I2OGExNDZhMiBsZWdhY3ktdHJ1bmsKKzQzNzMyIDcwNzMxMjUyZGEzNDY5MzA2NTQ2M2NjNGMwZGY4N2FlMDYwOTdmODUgcmVsZWFzZTI0LW1haW50Cis0MzczNCBjMTdjNTIxOTMxNjllZTQ0Yzc1MjIxZjM5MmY3MDMwZTA0MzExMGE5IGxlZ2FjeS10cnVuaworNDM3MzUgYTdkNjg4ZWJlM2UxYTIwMzI4Zjk0NGVhODVlNmNlYWNjYTUyM2U2MCByZWxlYXNlMjQtbWFpbnQKKzQzNzM2IDQzMTYxM2JjOTM1ZTk1YTM2OGZlMTJlZTBlN2NiYTIzMjcyMWMwNTYgcmVsZWFzZTI0LW1haW50Cis0MzczNyA3MDkyNjYyNmM2YTBhMzQwMDBlNDRmMmFlNmNkYzMyOGZmNzllOWMxIHN0ZGxpYi1jbGVhbnVwCis0MzczOCBiYThmMjc2NGFhNGFjMDkwMDFmZTg5OTMxOGJmNDA0MTc2ZmI4NTY0IHN0ZGxpYi1jbGVhbnVwCis0MzczOSBhOGQ0OTI4MjkyZDhiMmIyMjhhYjBlNWEyYTk1OGIyYThkMjAwOGZiIGxlZ2FjeS10cnVuaworNDM3NDAgZWRjNmEwY2M4NDY2YmU2MWVmNGUxODgxMTE1ZTFkYTI4ZTA0MjkxOSBsZWdhY3ktdHJ1bmsKKzQzNzQxIDQ4MzExNDAxYTIwZWEzNjZhNWUxNWZiYTc1M2IwZDkwYWRhNzdlNzcgbGVnYWN5LXRydW5rCis0Mzc0MiBmMWM0NDA2YmY0ODFlYWQyMzQ1OWEyYTdlYjNhMjU4ZmFiMTZkMGIwIGxlZ2FjeS10cnVuaworNDM3NDMgYjA1MjhlOGM2Yjc4NDRkOTUzNjdlMjdiZDcxNjNlZjQyM2U5Yjk4OSBsZWdhY3ktdHJ1bmsKKzQzNzQ0IDAzNDJjNWYwZjRmZjY1YzM2ZjJmODVkYjBkZjY3MjU3MDkxYjM5NjUgbGVnYWN5LXRydW5rCis0Mzc0NiAwNDZlNmUzNDgzODE3Njk1NDI3YjI0ZDgzOTBkN2Y4MGI4NmY2ZDNjIGxlZ2FjeS10cnVuaworNDM3NDcgMmNkZjUyN2I1OGY2YTI5YWJiZjYxNjMyMTkzZGZmYzE0YmJjNDYxMCByZWxlYXNlMjQtbWFpbnQKKzQzNzQ4IDM5NTk4MTBiYzU0OTEzMjY5MmMzZjQzYTJkNGEzY2Q0N2MxM2YxYjYgbGVnYWN5LXRydW5rCis0NTIyMSAzNmJjYjgzZWNiYWQ1M2ViNjNlMjNkYTQzNDA0OTk0YzhmMDk2MDE0IGxlZ2FjeS10cnVuaworNDUyMjMgMjMxZTQyZDAzNjJlZDI2N2QzYjM1MzI1ODRhNmY3NDk1OTg5YWI0YSBsZWdhY3ktdHJ1bmsKKzQ1MjI0IDliZGE1YmE0MTY3N2NmNmIzMTQwM2Q1ZWI0Zjk1ODlkYjU4MGY4ZTggbGVnYWN5LXRydW5rCis0NTIyNSA2YWU0YWRlZmM1NzNiOGViMDZjOWRhYTU1OGU0OWVkODliNzZkODM0IGxlZ2FjeS10cnVuaworNDUyMjYgMjg2YzgxNjg5ODI2Y2FiYjE1NzcyZjJhMTkyMWE4NjUwODQ0MWE0NiBsZWdhY3ktdHJ1bmsKKzQ1MjI3IGE3OGJjMGJiMzQ1OTYyZTY5MDI5Y2UzYzA5OTA4ODhiMTRhZGNhNzkgbGVnYWN5LXRydW5rCis0NTIyOSBlYjBiOTkyN2ZmZmQwMjUyNzZhOTZkZGMyNDBhYWUyODQ4YThjNDhlIGxlZ2FjeS10cnVuaworNDUyMzIgYmQzNzU3Nzc5MzJkOTFhM2ZiMDA5NDkyYjIwOGZkZGFmOTdlYTcwOSBsZWdhY3ktdHJ1bmsKKzQ1MjMzIDBmMmU4NmQwOGQ4YWZmMjJmMDkyOWM3ZDk5MTdiNmQ5MGQyMTVlOWEgbGVnYWN5LXRydW5rCis0NTIzNCA0MjAyM2Y1YjdkNmQxZGQ3M2IxZTQ5MWU3Zjk3MzIxZDhhMjhkZmI3IGxlZ2FjeS10cnVuaworNDUyMzUgYzc4MmNmNmI1MTZlNDJlODc3MTRhOWQ3YzVmZjY1NDdiZjNhMDdkOCBsZWdhY3ktdHJ1bmsKKzQ1MjM2IDgwOTRjYzBjOThkN2E2NDJjYTM5YWE3MDlkMGNiODg0NTk3YTRkMzQgbGVnYWN5LXRydW5rCis0NTIzNyAzMzQyM2I4NDU1NTQwOTZiMjAyMWEzZTFmZjhhODRjMDhjNDAwZDdjIGxlZ2FjeS10cnVuaworNDUyMzggM2Q2MDE1MTM5MmMyMjU3ZDZiNmE1NzlkYTI5OWY3MDE2ZjNjZmZkYSBsZWdhY3ktdHJ1bmsKKzQ1MjM5IDIxM2M0MTk4ZmUyM2Q5YmQ1ODU4NWU2MWYzOGM0NzI3NzFhNjRjY2MgbGVnYWN5LXRydW5rCis0NTI0MCBiNzQ0MGFiNWNkNzA2ZjQ5MGZhYzg3MDQ3YjNmMjdiYjk5OWFhYTg2IGxlZ2FjeS10cnVuaworNDUyNDEgNWIzNTFkZDdkMDgxNWRlMGUyMThiNjdmOGU1ZDBjOWJlZmVmMzhlMCBsZWdhY3ktdHJ1bmsKKzQ1MjQyIDBiYzNmNzRhNGE0NzE4NDE5ZWIyY2U5NjBmYWQyZWU3Y2RiYjFhMjAgbGVnYWN5LXRydW5rCis0NTI0MyAyZTIzNGY0ZmQ3NjM5OTA3MzZkZTZkNDlkNDM2MjA5ODA3ZjRhNzZjIGxlZ2FjeS10cnVuaworNDUyNDUgZjZhMWY1NWQzZTVjZTZiYjkzZGM4OGU1ODhiMTdlODQzNjI2ZWNhNyBsZWdhY3ktdHJ1bmsKKzQ1MjQ2IGRkMDg1YzEzYzQ5YTc1ZTg0YmY3NTZhYmU0ZGIwZTZkYTJjNjYxNGUgbGVnYWN5LXRydW5rCis0NTI0NyBkYzlhMzZjOGI0NzMwYWJjOGY5MzVmZWRhNmE2MzEzNGI0ZDQxZDNjIGxlZ2FjeS10cnVuaworNDUyNDggZDExMzY2ZjdlMWU3YTU4NjkyMTI2MGEwYTVmY2FiOWQzOTFjNThjMCBsZWdhY3ktdHJ1bmsKKzQ1MjQ5IDdjYjZhMzA0NDYwZmMwMGFiMGI5NDhkNjk4NmUyYjdjNzVhN2I0NDggbGVnYWN5LXRydW5rCis0NTI1MCBlMjljZGY4Njc4ZmU5OGUyZGYwZGUxNzBlMzdiOWM1YmNjMjI5ODZmIGxlZ2FjeS10cnVuaworNDUyNTEgMDBiZjhmMDBlYzYzMjc1NzE4NmM1OTIwYWE1OTNkY2JlOGUxNTM2MiBsZWdhY3ktdHJ1bmsKKzQ1MjUyIDA3MjA1MDYxNWZjMGMxNjZjYjdkNTBkNzY0Y2U3OTNmZTdjNTZiYmMgbGVnYWN5LXRydW5rCis0NTI1MyBiMTEyZDhjNzk4OGMzMTdjMGRmYTliNjk2MjUwMGViMWJkYTM4MTg2IGxlZ2FjeS10cnVuaworNDUyNTQgMGFmN2YxODA4N2ExZmZmYWY0Mjc4YWMzNmI1MGNlMTE3NzM0MDI1NiBsZWdhY3ktdHJ1bmsKKzQ1MjU1IDFhM2U3OTlkMDYzNDFiNDEzOTUxMmEwMTA2OTVjNmFiMTMzNDcwYWEgbGVnYWN5LXRydW5rCis0NTI1NiAzYjRmZGM3NWJlMTJjZTcxYWE0ZTExOTViYzY4MDdjOWQ2NTI2ZmYxIGxlZ2FjeS10cnVuaworNDUyNTcgMjkyODU0YzQzYjk5YjlmMzU5MWFjZjNjZWYyZDdmYThhN2E2MGEyYSBsZWdhY3ktdHJ1bmsKKzQ1MjU4IDFjZWQ3OWYwODA1MDljNDQ0ZGQ1MTQxMTU0N2I3MTMxMzE4MDlhMjcgbGVnYWN5LXRydW5rCis0NTI1OSBhODQxNmFkMWE1YzU5YzM0MDc3M2U1YTc4NTM3ZjFiYjA2YzdkMGE4IGxlZ2FjeS10cnVuaworNDUyNjAgMTNkZDMwOTc0YWQ2OTEyZTlkMTg2OTAxOWJiZWQ3YzNkNjBiZjIyZCByZWxlYXNlMjQtbWFpbnQKKzQ1MjYxIGFlZWU4NWI2YTVkZDg4YWQxZWM4MTUyM2RmZWEyZGFhZGI5NGUxNjAgbGVnYWN5LXRydW5rCis0NTI2MiBmNzdkYmMwZjk4ZTM0MzUyMWZiZDg0NjMzZWQwZmRjN2Q3OGQ5NjYwIGxlZ2FjeS10cnVuaworNDUyNjMgYWRkZTlkZTEwMjg3YWQ0NWQ5NzJiNTg2Y2Q3YzY0M2M3ZTk2ZDVlYyByZWxlYXNlMjQtbWFpbnQKKzQ1MjY0IDkyNDUwNGIwMDE5NjQ5MDQxZmQ1M2VmMjc0MjljODBkN2Q5ZGUwZmUgbGVnYWN5LXRydW5rCis0NTI2NSBhZWQxYzNjMzViODM2M2U4MzU4N2U5MTAxMzJhMWMxZGYzMWE1Y2M2IGxlZ2FjeS10cnVuaworNDUyNjYgNmRkMGQ4YjRiYWM1NzRjZTRkMDY4NTI5ZGE5ZGIxNGE5MjJlMDc3OCBsZWdhY3ktdHJ1bmsKKzQ1MjY3IDA1OTFkMDMyMmYwNGMyNGRhNWZiOGI3MzE4YzI3ZWRjZGZiODE1YTAgbGVnYWN5LXRydW5rCis0NTI2OSAxYjA3ODQ5M2Q1MzgyYjgzZjUzMzM2N2ZjMmFjNWJlZDlhN2U0Y2Y3IGxlZ2FjeS10cnVuaworNDUyNzAgMmIyZTljMzg4ZmJiZTIyNTU2Yzk4ZWY5NzA3ZDAzMTZmYmU2OWE0MSBsZWdhY3ktdHJ1bmsKKzQ1MjcxIDU2ZTAwYzliNTAxMTczNDY0OTIwYjRjZjVlN2JmZjRjMWI2MjZmNjAgbGVnYWN5LXRydW5rCis0NTI3MiA0NGZiMDNhNmE1MjQ5NzA4N2UwZWQyYjY2Y2I4NzMwOTZjMDI2ZmI5IGxlZ2FjeS10cnVuaworNDUyNzMgYzRjNWVlYjA3NzM5YWI0MTA1NTM3NmVhZTU3ZTM3NDY3MWYzNDA1YSBsZWdhY3ktdHJ1bmsKKzQ1Mjc0IGY3NmI1ZDk4NzMxNGQ3NDQ3NTgwZjU1ZTdhZTllYWVhZTBlODU5NWIgbGVnYWN5LXRydW5rCis0NTI3NSBjYTk1YWQ1YjBmYmM2MWY5ZWQxMTVlZTYwMDg2ZGEyNzI3ZTdhMzg3IGxlZ2FjeS10cnVuaworNDUyNzYgMzhhY2I5MTgyNGZjYzU3MzU0ZjNjN2JmYjVkYzhmODVkMzY2M2YxNiBsZWdhY3ktdHJ1bmsKKzQ1Mjc3IGM3MzJmNjZjOTEzZmQzNjJiYWJhMWM1YjFhNGMwNWQ4MjY0MjgxMjYgbGVnYWN5LXRydW5rCis0NTI3OCBlMDcwYzMxNmViNDU1OWE4ZmU4OTkzNGUwM2M2Yjc1NjA2Yjc1ZDI0IGxlZ2FjeS10cnVuaworNDUyNzkgZjQ0OGQwMDc1NjkxZjk1MmQ3Y2Q0YmY4YjA5MGFjZmU0Y2MwOWRkMCBsZWdhY3ktdHJ1bmsKKzQ1MjgwIDQ4MGE1NjI1ZTI4NjkyMDE3NDQ3MDIxNDVkMjY1ZTQ5OTk4YjBhZjYgbGVnYWN5LXRydW5rCis0NTI4MSBiNzRkM2FkYmY4ODg1ZWZiZGEyNGZlOTI4ZDMxYzE2Y2Q5OTdlYmI5IGxlZ2FjeS10cnVuaworNDUyODIgZTYwYjMxNjQ3YTZiMzFkMDdhMTc1MTU5NjU3OWUzYWRmNmQ4NTY0MiBsZWdhY3ktdHJ1bmsKKzQ1MjgzIDdlZDBmMDAzYmE2MzEzNmExNTg4MjAzMTg3YmQ2MWUzMWU4Y2NiMDQgbGVnYWN5LXRydW5rCis0NTI4NCA3YWZhYTc1MmM3NzIwOGUzM2Y3ZDBkNWY3NjU5NjBhNmE4ODM4YzhkIGxlZ2FjeS10cnVuaworNDUyODUgY2QxOTVlMDczZGQ0NjVkMGY1YTAwZmJlMmI4ODYxMDY0NmVlNDVlYyBsZWdhY3ktdHJ1bmsKKzQ1Mjg2IDBjYTUxMTJlM2UxMjlhM2QwODQ1MDhkMGU1N2E3N2U0ZGM0MmNkMGYgbGVnYWN5LXRydW5rCis0NTI4NyA3MmNlYjFiMzBkNGJiYzIyYWVlZGM1NTcwMjM3NDM3M2YxNzRiODg5IGxlZ2FjeS10cnVuaworNDUyODggMTlkOTliMzE1NTVjZWJjZjBlOGNmNDYwZWEzZjY3ZDg4YTQ1NTVjMCBsZWdhY3ktdHJ1bmsKKzQ1Mjg5IDFlOWQ3ZTY2YzFiY2ZhNmJhY2NmZGYyNTg1MTA0ODFhZDBjYjBlZDcgbGVnYWN5LXRydW5rCis0NTI5MCA4OTY4YjEyNDJmMTg5OTRiMzlkMzExNGE1YmY1MWI2NWFiMTljOWNiIGxlZ2FjeS10cnVuaworNDUyOTEgNmZiYzExYTAzYmNjMmEzYjY4NDk3ZmM1MDIyOThkN2ZlZWExMWI1ZSBsZWdhY3ktdHJ1bmsKKzQ1MjkyIGYxOWFkZGQ2OWFkOTM5ZjIwYTQ1MzQyYjdkY2I3ZWZiYzI4OTUwNDEgbGVnYWN5LXRydW5rCis0NTI5MyBiNDNhOTcwMjY0NzkwM2Y1MjQ1OTJkODNkZjlhZTRmNTFkMjg4MDhkIGxlZ2FjeS10cnVuaworNDUyOTQgMTU3MTc5ZDJhNGMzNTIyZTJmNDc3NzYxYTU5YWEzODA0NzAxNmJmMSBsZWdhY3ktdHJ1bmsKKzQ1Mjk2IDhhMTg4MDM2YjcxM2I0YWNmODAxYTllODZkN2MxNDIzZTY4ZDRmN2MgbGVnYWN5LXRydW5rCis0NTI5NyAyZmQ2YWQ1ODIyMDMyZmJhOGFlNmQ1MmQwMDhhYTU3OTM5OTlhMzFiIGxlZ2FjeS10cnVuaworNDUyOTggZTgwOGUyYWY5MWY2MzQ5YmQzZGZjZjFiYjcwNmFjNDc1M2UxZWEyMyBsZWdhY3ktdHJ1bmsKKzQ1Mjk5IGM4YTA5ZmQ0ZjEwZGE3ZWUxMDNiZDE5YjNiYmZmYjE5Njk2N2Q5ZjkgbGVnYWN5LXRydW5rCis0NTMwMCBjMjZmNWUyMDZkZTc5ZDU0ODljNDUxOGQ0ZGRkZmIwOTZhZmI5NjBiIGxlZ2FjeS10cnVuaworNDUzMDEgYTUzOTJiYjA3NDQwMjljZjE1YjE3MTc0NmUzMTczMjFkZTdiMzExYSByZWxlYXNlMjQtbWFpbnQKKzQ1MzAyIDBkZDMyYTZiMjk2NGUyMzQyMTA4MWMzNzk2ZTIzZTVmZGI0NmUyZWMgbGVnYWN5LXRydW5rCis0NTMwMyAyODkxMTZhNTJiYjFlOGU2N2ExZDcyMjUzNDE4MWVjNGUxMmI1ZjFlIGxlZ2FjeS10cnVuaworNDUzMDQgMWUxMmVjNDlkZjliNGRiOTg0MzA0NDg0ODdjMGQyYjUxZDcwNjY1OSByZWxlYXNlMjQtbWFpbnQKKzQ1MzA1IDM5OWE5YTcyMDk1ZjkzMGEyMzIzYTY2ODNlNzdhZjhlMzlmZWRiMWYgbGVnYWN5LXRydW5rCis0NTMwNiAxN2Y4YWRjYzczZWQ4NmI4ZjU4YzJkN2RiYTYzMDMwODVjYTJkNTlhIGxlZ2FjeS10cnVuaworNDUzMDcgYWYwNTZiNjNjZTUzNjA0MzBjMTAxZjgxZjU4N2U1YzA2NjE3ZmIwNSBsZWdhY3ktdHJ1bmsKKzQ1MzA4IDg4MzFmZDgyMmI2MDVkZGFiZWI4Yzg0NDNiMDQyMWZiM2JlODI3MTAgbGVnYWN5LXRydW5rCis0NTMwOSA3NjljNjI2MTM1NWU5MzlhMmJlMDZjMzBhMjk2N2I2NGE1NDYwNDUxIGxlZ2FjeS10cnVuaworNDUzMTAgMmU4YWI3OTdjZWFmOWQ3NDhkODVjZWQyYWE1ZGNiN2Q0NjRhNDRiYyBsZWdhY3ktdHJ1bmsKKzQ1MzExIDlhNmEwMzc1ZWYyMjk1ZWFmOTFkMjAzNDZhYWMyMjhhZDI3NTdlZGMgcmVsZWFzZTI0LW1haW50Cis0NTMxMiA2NWVjYjgzZWE3ZGRmZDIzMmVlODBlMWI0OTQ0OWMzZWM0YTc1NWNhIGxlZ2FjeS10cnVuaworNDUzMTMgYmM0ZmJiYjJkYjMwMDlmMGFiN2MwZmEwODlmNjcwOWQ1MjUwZGFiYiByZWxlYXNlMjQtbWFpbnQKKzQ1MzE0IGZlZDI5N2MyMDYyZDkyOGEwMDQ2NTA5OWI3MWRlNTYzM2I5MTIzNmMgbGVnYWN5LXRydW5rCis0NTMxNSAzNmUxNzYyZWFkODZiODBiMGFjZjk2ZDdiMjg1NjQyMjI2OTg4ZGI4IGxlZ2FjeS10cnVuaworNDUzMTYgMjJmMmM5MmExZGE3Zjk2NWZhZmNjZWY2NjJjYjY2NmIwZTljZGNhOCBsZWdhY3ktdHJ1bmsKKzQ1MzE3IGFkNDg2ZTQ4NzVjNmUxODNiNTBmMzFkNzc0YmQxODZmMTRmM2U2ZjYgbGVnYWN5LXRydW5rCis0NTMxOCBjNmUxMWY4MDRkMDBmNzYzZjQwMTVmODgyYTM1ZTM1OWFjYzc1OTNiIGxlZ2FjeS10cnVuaworNDUzMTkgMmMwNjU4OGFlNjllNjI4MmVmZmRlNWM2NjMwZWE2OTllNGY2Y2M2ZiBsZWdhY3ktdHJ1bmsKKzQ1MzIwIDQyMmNkZDI0YWY0NmM0NzRlNDM5NzRlMjY3NzY0MTQzZDEyOTYyOGMgcmVsZWFzZTI0LW1haW50Cis0NTMyMSAxMGU0N2YyN2VhMzlmYTA3Njg2YjBkNjBiNjVhMDljZDE4NDI3N2VjIGxlZ2FjeS10cnVuaworNDUzMjIgNDU1MWRhODQ3NjUxYWNjMjYxYTMzYmYyY2ZlZTdlYTU4MTAwNGEwMCByZWxlYXNlMjQtbWFpbnQKKzQ1MzI0IDIxZmNjODZlNDgyMDgyYmVjNmJkOGQzZDE5ZDUzMTVjMDI1NDA2MjggbGVnYWN5LXRydW5rCis0NTMyNSA4Yzk5OGM3NjAxOTEwZWQ0ZWNhNTNlOGEwMzIwZWJiOGEwYThkMWM2IGxlZ2FjeS10cnVuaworNDUzMjYgNzRkMDQ4MzhjZDExMjc0ZmE2MTUzODAyMDhiYzM2YmE3Yzg4N2QwYSByZWxlYXNlMjQtbWFpbnQKKzQ1MzI3IGI1Zjg5OWMxODdkNGM1Y2U3YTE3ZGExNjlkOWE1YjMwNTU5OTQ3ZjYgbGVnYWN5LXRydW5rCis0NTMyOCAxMjU2NzE4OWVmMjU3MWZkZmE5NjJkZjM4NWIyYTI3MTQ2YTE2ZjkyIGxlZ2FjeS10cnVuaworNDUzMjkgZGVjMjU5ZTRkODkxNmM2NWQwMDA1YWUyNDBmMDM3OGNhYzViN2UyOCBsZWdhY3ktdHJ1bmsKKzQ1MzMwIDJmM2YyZTMyZGZkOWQ3NmU3MTk4NjNlZTE1YmViMDExOTkxYWJjZDYgbGVnYWN5LXRydW5rCis0NTMzMSA3ZGYwYzQ0ZjM5ODYyMzY5OGRjZjMwZmI4ZTczNzA0MWM3OWU4NjFkIGxlZ2FjeS10cnVuaworNDUzMzIgYjYzMTlhNjk5ZGFiYTFkNTllZTk2MDJiOTQ5MDBhMzI0MDhkNTA1NyBsZWdhY3ktdHJ1bmsKKzQ1MzMzIDJjMDg0ZDgxYzk1MTQwMWRkMDllMDNlYWQ4MjFmMmY1YmYyZGZjMzkgbGVnYWN5LXRydW5rCis0NTMzNCAwNTRhY2VkZjNjMGQ5MGMxNDQxOWI5ZGUwMTQ4MGExOGQ0NGJiOTJiIGxlZ2FjeS10cnVuaworNDUzMzUgZjQ1YmMyNDFlMjAwMGIyZWEyYzdlMzYxNjFjYTIxNTRlZTcxNWVkOSBsZWdhY3ktdHJ1bmsKKzQ1MzM2IGIxYzZhMzg2NGIxZThjMTY5MDhlYTczMGM5ZGZhY2QwMzIyZTc0OGQgbGVnYWN5LXRydW5rCis0NTMzNyAwNjc4Y2U5ZmI2YjJiMTExMGZiNmI2NjkzZTIzOTZhYjE1YzY1ZjBlIGxlZ2FjeS10cnVuaworNDUzMzggYTg0MGU5YmFmZjk2Y2M5NzI1NmRhYzJlNWY0ZDAxZDI2NjFmZjY4MSBsZWdhY3ktdHJ1bmsKKzQ1MzM5IGQxM2RlZDkxNjVlYzQ0MTQxZjA4MGExNjkxOTU0MDA2YjJlM2I0ZmEgbGVnYWN5LXRydW5rCis0NTM0MCA2NjY3NmE4ZWNiNTJjZTRjMDMyMGQwNWNlNDg2ODZiZjMyYWRkZmMyIHJlbGVhc2UyNC1tYWludAorNDUzNDEgNWE5ZmNkNjc2YjNmZTllZDEwODcxZGNlYmUxZjIzM2ZlOTE3YjFkMCBsZWdhY3ktdHJ1bmsKKzQ1MzQyIGIxNzI0ZTkyNmUwN2M0Njk1ZjRkMGU1NWI0ZDk4OGY0Y2MwMDQ2YmEgbGVnYWN5LXRydW5rCis0NTM0MyA0MzQyZTQ0MWIxMWNjYjU1MDI4YTViM2NmMjAwMDczYzJmM2ViNjM3IGxlZ2FjeS10cnVuaworNDUzNDQgYjkzYzA1OTYwYTE1ZmFiNmM3Zjg2YWNmZmZlZjI0NTgyYzM1YjM0OCBsZWdhY3ktdHJ1bmsKKzQ1MzQ1IDM2YmZlNDZjNWM2YTYzY2JhOTFmNjMzZDkwYzFkMzNkYjBjNzg4YzMgbGVnYWN5LXRydW5rCis0NTM0NiAzZjk3MzlkZTY2MDMzMzUzYzM4NDVjMjc4MWIxM2I4NGFmNDE4MTI2IGxlZ2FjeS10cnVuaworNDUzNDcgMGEyOGYxNTc4NzVlMmMxMTQ0Zjg5MjE2YjYxM2MzNGNlOTUyOTBmMiBsZWdhY3ktdHJ1bmsKKzQ1MzQ4IDYwNjgxOGMzM2U1MGZlNjcyMzA4MzBkZDc1NWI0ODRkZWZmZmY4MDIgbGVnYWN5LXRydW5rCis0NTM0OSBhNDIzMWFhMzIwMWFlMWEzOTRlZTY0M2M1YTQ3YzdjMTk0ZjY4NGNhIGxlZ2FjeS10cnVuaworNDUzNTAgODZkYjZkZjI0MTc0NDhkYWFjMGE0MmZiNWQ4Yjg2ZWEwMDA5OWIzZiBsZWdhY3ktdHJ1bmsKKzQ1MzUxIDNhMzllZDU5N2I2OGFhZjc2MDMwMDhiM2Q0ODYyYmU4OTNhYWZiMWMgbGVnYWN5LXRydW5rCis0NTM1MiBlNzk1ZDZjODZhNWVkZTk4NDFhMGFhYTRjZjk3M2FjYzFlODc5ZTRiIGxlZ2FjeS10cnVuaworNDUzNTMgMzBkNmI5ZWFmMDJkYjhlMjlmM2ZhZjYzZWE5YjI5Y2RjMjM1ZWFjMSBsZWdhY3ktdHJ1bmsKKzQ1MzU0IDU4NjQwOTgzZmQ2NmM2OWU3OWJlOTMxMzcyNWU1N2U5NzU2NzVlZDUgbGVnYWN5LXRydW5rCis0NTM1NSBmZTg4ZTAxZmY2ZGU4YjQ5MjdiZDg3MmU5OTFlZWRkZjJhOWMxZGQwIGxlZ2FjeS10cnVuaworNDUzNTYgMjNlZGYyOTBiNjc2ZjIwYjhkNTUwMDc4OGViOWFkMmE5NzcwN2RkNiBsZWdhY3ktdHJ1bmsKKzQ1MzU3IDVhNGI5NjQxMjMyZjg1ZmZjNTA4OTliMTcwOTRhM2U3MzY2NmI2N2UgcmVsZWFzZTI0LW1haW50Cis0NTM1OCA0MTMzZTg0MWYwY2I5MWRkMTg1MjRmNGVmN2ExYTVlMzlhZjg5MGViIGxlZ2FjeS10cnVuaworNDUzNTkgMzk5YjExOWMwNThhMWI5NmNlNDI2YmViNDllYWIwNDE2MjM0Y2JiOSBsZWdhY3ktdHJ1bmsKKzQ1MzYwIDVlNzJiMGM3NDEwMGQ3NTBkM2E5ZGU5ZjA1ODk1MTcwZDUzYWIyNDQgbGVnYWN5LXRydW5rCis0NTM2MSA5NTNlYjNkYzE4ZTU0MzFmMTA0NjU3MjM5ZWI5OTczYTc1MzZmNTY5IGxlZ2FjeS10cnVuaworNDUzNjIgOTk3NTEyODllYTAzYmFkMzVmNTk5ZTgxNWVhYmEwNjg3ODU4NzFhNyBsZWdhY3ktdHJ1bmsKKzQ1MzYzIGIzNTBlOWQ3OTFlNmUyZWY3MzBlZjI3N2VlNDcyOTkzNjRiNzVkZTkgbGVnYWN5LXRydW5rCis0NTM2NCAxYjViMTZjZGJlMGUxYTBiY2JiMzc0MjZkNjJmY2M1MzQ5Y2Q2MzYzIGxlZ2FjeS10cnVuaworNDUzNjcgNzUxZjdjNzliNWZkMTQ1OTQyNThjNWMwMTNkNjYzYmU1NTU5NjE2ZSBsZWdhY3ktdHJ1bmsKKzQ1MzY4IGVhYzgzZmVlYjExZjZjOGNiNDIyODBhZTk4MDViZWMyODE3YjBiMWIgbGVnYWN5LXRydW5rCis0NTM2OSA0ZDdiMjIzN2ZhMDdmMzcxZjg5ZmU5NTkwNzVmNjBmNjNlYjFmOTk0IHJlbGVhc2UyNC1tYWludAorNDUzNzAgMzA4ZTJlOGVkNjc2NjFhMjJjODliOWExNDU5ZTJjMjk5YzM2ZWNhYiBsZWdhY3ktdHJ1bmsKKzQ1MzcxIDkxYWVjNDc0NjIxODVkZTQzNzQyOGEzMmUzNGNiYzkxODA0ZTkwZTcgbGVnYWN5LXRydW5rCis0NTM3MiBhYzc5ZTkwMzdlMDZjZjM2ZDJmOTNkYmI2OTQzNzBkZTFhZTUxNGFjIGxlZ2FjeS10cnVuaworNDUzNzMgNzIwNDc0OGMyOTIxNWQ4Y2Y0ZDY1YmJkNjc4NTM4MWU3NTViMmRhNSBsZWdhY3ktdHJ1bmsKKzQ1Mzc0IDdlZTQwNjhlMmM2MmEyNTBlMmE5ZWVjMmJmOThiYjA5MjNkZDZkMGEgbGVnYWN5LXRydW5rCis0NTM3NSAyNTRjY2NiN2VmMTc2OTlkOWM4MzE2MDBiY2E4N2U5YzdjZGJhNDkxIGxlZ2FjeS10cnVuaworNDUzNzYgZTA1N2FmMmRmZmNlYzMxOGUwN2UxYzAxMTM3MDk2MWJmNjMwZjcyOCBsZWdhY3ktdHJ1bmsKKzQ1Mzc3IGZiY2RmN2MwY2M3NGQzMTM1Y2JlM2U0ODVkMjhjZGU3NzE1NGE2YzQgbGVnYWN5LXRydW5rCis0NTM3OCAwYTBkODlkNzEwYTRkZjE1YmU2MmM1ZmRlZDExODllMDUwMWFhMTMzIGxlZ2FjeS10cnVuaworNDUzNzkgOWIyMmQ4YjdiY2FhYzQzMzU2MTgwZTYwZjZkOTc1MmEyNmY0OTk4YyBsZWdhY3ktdHJ1bmsKKzQ1MzgwIGVlNTczNDk3NDRmMzcxMWFiM2RlMGUwYzZmYWVjMmQ4OTYzOWM5MmMgbGVnYWN5LXRydW5rCis0NTM4MSBiYjNmOTA3NmQwNzljNWY0NDNlZWMxZDU3MmMwODYyOWU2Y2NmMTE1IHAzeWsKKzQ1MzgyIDkxNTBlMjYwYzQxNzRhNzU5OTQwODNhZDVlNWFmYTQ2ZWQ1ODY3NGYgbGVnYWN5LXRydW5rCis0NTM4NCBkNzFmMjZlNjQ0ODllYjFmN2VkMzk0ZmE4N2FmYzVhZGUwMjM1NjBlIGxlZ2FjeS10cnVuaworNDUzODUgNzg2ZDAzNTZkZTUxM2EyZmIzNGYxZTAyNDg5NzBhZWRmYTcxMDU3YSBsZWdhY3ktdHJ1bmsKKzQ1Mzg2IDIzMGZmZjZlMDYxOGQyNDFiMWVjMjc2YjY4ZWU3ZjcyMzBiOGVhMGYgbGVnYWN5LXRydW5rCis0NTM4NyAzN2E4ZWI3NGM1MDQ2NTEzNmM1NTQ2YTk5YWRmYzZmOTNkOGU3YTgxIGxlZ2FjeS10cnVuaworNDUzODggY2NiM2FmNDliY2IzMDFjNzI1ZmE4NTkxYTM1MWIyNjE5ZWRkMmViYyBsZWdhY3ktdHJ1bmsKKzQ1Mzg5IDIzM2IxMGVjZmNlZjY2MmVlYjlmMWNhOTRhNTJiYzIyNjdlNTcxZDQgbGVnYWN5LXRydW5rCis0NTM5MCA5YmVmMWRlYmNiYWE3Zjc3Njk1MzI0YTI5MTVlMjIyYmIzYTk5YzY5IGxlZ2FjeS10cnVuaworNDUzOTEgOTFkMTZhODdjYmU4ZWE3NmU3MjgyNWI5N2YwM2RiOGYzZGNhYzEzZiBsZWdhY3ktdHJ1bmsKKzQ1MzkyIGVjOTg2YWFiZTFmZGVmMjcxMDNhZmE1MTc4M2E5ZDllZmI3NmExMTAgbGVnYWN5LXRydW5rCis0NTM5MyBhZmU1NmI5YjY2NGIyNDE3NzZjNTQ1MzhlYmFlMmY4ZDFjMDUwOTA3IGxlZ2FjeS10cnVuaworNDUzOTQgMWQ1YTRjODIwNjFlNjhkYTNjZDFkOGQ4MjkxMzkyYTg4NzI5NTdiMCBsZWdhY3ktdHJ1bmsKKzQ1Mzk1IGQ3ZGMwMDg1ZGQ4NWM4YzQ2NDUwMDczM2FiM2M5ODBmOTIyYTBlNDggbGVnYWN5LXRydW5rCis0NTM5NiBhZjQ3ZGE1ZTljZTE0ZGI0YWNlMjIwYWI5ZmRhMDhlMDQ4YWUzMDk4IGxlZ2FjeS10cnVuaworNDU0MDEgY2Y3MWMzODE0YjBiMzE3N2M5YzAyOTA5NDFhYzJiOWJiZWEwMDY0YSBsZWdhY3ktdHJ1bmsKKzQ1NDAyIDEzNjZiZmEwODRlZTcxNzFhNGYwMjc4MWJiZTk3OWJhODlkZGU1YzUgbGVnYWN5LXRydW5rCis0NTQwNiA4NTZiZWUxNTAwYmJjZGVhYzAxNjZhNjMwOWUzN2YzODE3YWYwN2Y2IGxlZ2FjeS10cnVuaworNDU0MDcgNjQ0MWY2ZmE2NTcxYTdkMmJhMjY1MGYzZjM0ZTZlOTEzODBlYzM2MyBsZWdhY3ktdHJ1bmsKKzQ1NDA4IGI5NDBhYzRmOTU1ODZhYmMwYTc4NGFhMzVhNDJjOWVlYWUyZDZlOWYgbGVnYWN5LXRydW5rCis0NTQwOSAzMTkyOWRhMGIwNWFmYTEyOTU0NjE3ZTQxMGUzODVlNjZiZjQ4ZTUzIGxlZ2FjeS10cnVuaworNDU0MTAgNmU5YWI4N2M2MDhjZDkwNTUzN2E5ZmNiMDdkZDUyMTk2OTY2MDI2NiBsZWdhY3ktdHJ1bmsKKzQ1NDExIDI3YTYzOWM0NDcxYTRlMDA3M2I2MDlkMGY2ZmU5MWVlNjVjMzMxMzYgbGVnYWN5LXRydW5rCis0NTQxMiA2MmM5MDM4YTU3OGE4YTkyMjdlNzJjMGJlMTEyYzc5YTQyMWM0MmYzIGxlZ2FjeS10cnVuaworNDU0MTMgNTg4Zjk3YjI0YmY5ZTFmZjY1NjcwNGFkNDM5ZDI1MjNmZjY1ZDM5MCBsZWdhY3ktdHJ1bmsKKzQ1NDE0IGM2ZGY1ZTc5NTQyMzAzOWMzODQ4ZWFiYzU3OTExMjY2MTViMGNiYTAgbGVnYWN5LXRydW5rCis0NTQxNyA1MzA0MDU5ZTdkZTNiMWIzM2IyNDAyZmQ5MDkxMjJkZDljZGE4ZGYzIGxlZ2FjeS10cnVuaworNDU0MTggOWIxNmU4MTYxZGY3NzdkMTAxODZlYjk4NjM1ODg1Y2JhMmMyMDA1MiByZWxlYXNlMjQtbWFpbnQKKzQ1NDE5IGJmYzQ4YWQ4MWU4MDRjYjI1ZDY1OTMyOTQ2NzIwZjU4ODVjNzJkODYgbGVnYWN5LXRydW5rCis0NTQyMCA5ZjgyMTAzMjU0ZmE0ZWJlYzUxNzhjNDBhYmVhMDM2MGExMzM1MzI2IHJlbGVhc2UyNC1tYWludAorNDU0MjEgNGM2ZDQ2OThhMTE1ZGM3Nzc0NTAyZWYxYTUyNzI1OTRkODAyYmJmYSBsZWdhY3ktdHJ1bmsKKzQ1NDIyIDA1YWYzOWE5MDc1NDM1ZGZiMWZiYTQ2NmE5MDljMGYzYzkzMGQ1MGYgcDN5aworNDU0MjMgYjAyNzBjNjgwNDJlZDQ3ODRhY2VjN2FlMDFmMTA4NjY3Yjg0OTE2YSBwM3lrCis0NTQyNCAwYTEzYTk2NTg1YzNkMzY3NjI5MDYyZGViZWRhMjBjNzIyNGY3ODc3IHAzeWsKKzQ1NDI1IDRjYzM0YWYwMTlkMmMyNjNiNzYwZmExZTg3OTU2MmI2ZjQ3NTE1MTMgcDN5aworNDU0MjYgZmIyYWZmMTg2MmU0NmYxOGQyY2NiYjAyYWRlNTU1NTZiYzg1ZTZjZiBwM3lrCis0NTQyNyA4ZGFhZTdiYTA3OGE1NTQ1M2FiYzQ4MDg1MTFiODU4MzUzMzUxM2IxIHAzeWsKKzQ1NDI4IGE2N2YyMTU4ZDYxYjFhZWFmZjliYzM3OGE1N2E3NTllZTM2NjIyYjcgcDN5aworNDU0MjkgYzQ3Y2NjY2EwYmY0Mzg2Zjg1ZTA2ZDg1NDUwMDRjMzliZmU0YWVlZiBwM3lrCis0NTQzMCA3Y2FlNjIyZWRjYzk3OGQ0MWQzMThjM2I5NzMyYmE2MGNkMDgyOWQ0IHAzeWsKKzQ1NDMxIGE1Yzk3N2U2ZjVkYTE0OGJlNzgzNmM5ZDhmNWQ1YzAwYmRiZDg0MWMgcDN5aworNDU0MzIgMzUzZmUwNmRhYjViMzcyNWM3YTUwNGZjNWVjYTNjYmRkNzZjNDI0YyBsZWdhY3ktdHJ1bmsKKzQ1NDMzIDYzNmNhODBhOGNiZWRjNzA1YmU2YzQ3ZmQwMTU4ZDE4OTNmZTI5ZWQgbGVnYWN5LXRydW5rCis0NTQzNCBhNTkwMmUwZWMwN2M4YmE4NjllOWI3NzVjNzk0YzUxMGQ1ODE4MTI5IGxlZ2FjeS10cnVuaworNDU0MzUgZDE1NDc0MjZhYjYxMDZlY2FkMmQzYmIwZWYzNjBmNDdmNmM3NDRhOSBsZWdhY3ktdHJ1bmsKKzQ1NDM2IDI0MDA5ODkzNWNkNWViZDE4ZGRhMzBkMWZmNDlkOGUyYjhkMWVlYzcgbGVnYWN5LXRydW5rCis0NTQzNyA2MzE0NWMwNmRlZWViNDgzZjM0YmY5MjgxYzA5YzRhMWQ2YTZkMGVhIGxlZ2FjeS10cnVuaworNDU0MzggMWQwMjM3NGY0YzdlMWE1YTQ2MjIxYzA2ZDFlODY3NTFkOTlmNzQ4MCBsZWdhY3ktdHJ1bmsKKzQ1NDM5IDdmNzI3OTFmMGFlYzMyZjY5MDQ3ODdhNzJiOTczYTc3OWI3ZDY2MjcgbGVnYWN5LXRydW5rCis0NTQ0MCBhYmY4MjQ2MWU2YjRkZjUxZjUxMTdmMTI1MzYzMTg1MmYxNmM4NWEzIGxlZ2FjeS10cnVuaworNDU0NDEgOWUzODJmMmY0MzlkOTc3NTIzMDY2ZTZmNWFkN2E4MTBiN2ZjZDExYyBsZWdhY3ktdHJ1bmsKKzQ1NDQyIGI3MzczYmMzYjA5ZjMzOTJiYmEzMjYyZDEyY2VmNzBhNWU3MTQ0NDYgbGVnYWN5LXRydW5rCis0NTQ0MyA3YjJlNDM2YTRhMjExYzJlNTdiZjRhODRiZTIxZjFhNWNhY2FjOWI5IGxlZ2FjeS10cnVuaworNDU0NDQgZTEzODhhYmE5ODk2MjNjYTAxNmM2NzlmNGI0YzZhNmM3NWYzNGY2ZCBsZWdhY3ktdHJ1bmsKKzQ1NDQ1IDliNzhkYzA3YjE3MGNjNjY1MDU5NDk2MDE0ZGYxMDM2MDIzMTRkZjcgbGVnYWN5LXRydW5rCis0NTQ0NiAzNTNiNTk2NTFlNDUwZTE0MjYyNDA5NDE0MGU0YTQ0MzMyZjQyNDJmIGxlZ2FjeS10cnVuaworNDU0NDcgOWViNGRjMWNjODNlN2E2MzEyNGFiOGNjODJjOGZjYjAzOTM3MjNlNiBsZWdhY3ktdHJ1bmsKKzQ1NDQ4IDgzM2YzODRlYmQ0MWI2MzAyZjJiNzFkZDM3NmQ2MjgwZjg2NGM1OTEgbGVnYWN5LXRydW5rCis0NTQ0OSBhMzljYzg0ZmYxODU2YzdhY2M1YmM3ODFjNjc4NjJiNzBjNzAzZmZkIGxlZ2FjeS10cnVuaworNDU0NTAgYjdhMzk3MmU5OTE1NzI3ZTk3M2E4NDY4NGYyMGNjYWQ1ZTRkYTM5NSBsZWdhY3ktdHJ1bmsKKzQ1NDUxIDk2YWRkYWEyNTg2OTcwYjA4MDk4ZjhkZWE1ZDIyNzNlMDc2NWYwN2QgbGVnYWN5LXRydW5rCis0NTQ1MiAwYTU0YzE1YWExNDNjNGQ2MDAyMDgxMzZkMDFlNzc2Yjk4NjdhNjU4IGxlZ2FjeS10cnVuaworNDU0NTMgZjFjOTg1M2RmMGY3ZDRhZTZhNGRiNDk3YzJlYmFhZjdiYmQwMGY2YSBsZWdhY3ktdHJ1bmsKKzQ1NDU0IDdjYzMxNTE2ZjgyNThmZjE2Mjg4MDEwN2RkYmQzYWM2ZWE3NDcxZjkgbGVnYWN5LXRydW5rCis0NTQ1NSAzOGQxN2Q1MWVhOTVkNDQ4NzUwNDFiODljMDUwMTY3ZjJjNzUxNjBiIGxlZ2FjeS10cnVuaworNDU0NTYgMDFlNTFmNWRiODgxYjg1YmExZTdhYzlkZDEzNjU5MTM4NDU5ZWFjNCBsZWdhY3ktdHJ1bmsKKzQ1NDU3IDMxZGNjMzExMTEzM2JlNzAxOGRjMDRmMmQyMWY3YThhYjYxYmNjZDcgbGVnYWN5LXRydW5rCis0NTQ1OCAwODRkMTg4ZTdkYmVmN2FlZDY5OWFiMjdiMGM3MDhmYjY5Nzk2NWJlIGxlZ2FjeS10cnVuaworNDU0NTkgYjkwYTdjNjAyMWJjYzQyMzgyZGE2ODhmNGY1YWQwYjQ0MjY4MzE0NyBsZWdhY3ktdHJ1bmsKKzQ1NDYwIDYwNGM5YmNiMzA2YzZkMjZiZDMxYjIyYjk2Njc5ZjIwOGFjZDBiMmIgbGVnYWN5LXRydW5rCis0NTQ2MSA1YmI2ZTU0Zjk0MDhmNjE3NmM5MDU5ZDdmM2I5ZDZlZGI2OWQyNTFjIGxlZ2FjeS10cnVuaworNDU0NjIgZDhiMjNiYTRhMjc0ZWNmNGVkNzZkZGM1OGVmMDAzOTE0MmYyYmE3OCBsZWdhY3ktdHJ1bmsKKzQ1NDY1IGIwMDQ0YmI0ZGYyYWVkY2ZiZjMxMWRmNTk5MWQ5Y2RiNWQ1MmJhYjcgbGVnYWN5LXRydW5rCis0NTQ2NiBkNGFlNWEyNjE1Nzg4MmUxZDEwZjc5YTQyNjZkOWY1ZjkxOWIwNWQ4IHJlbGVhc2UyNC1tYWludAorNDU0NjcgYmUyMzhjYjI2ZDMyNWUzNTgzMmQ3ZTllMWFlNTBkY2MxODUzYTQ3MiBsZWdhY3ktdHJ1bmsKKzQ1NDY4IDdiYmI5YjVmN2FkY2ZkOGUxOTk0NDY1NTQxYjc4NDc4ZjhlNjJjMzkgbGVnYWN5LXRydW5rCis0NTQ2OSBiOTViNWMzM2NiM2E1MzMxYmVhN2M1YWM1ZjdlMzE5MzAwYTVkYWMzIGxlZ2FjeS10cnVuaworNDU0NzAgMzAwYmYxYzRkZWVkZTdjMWQzZWFmN2M3NWZlOTJmMzU4OGRhZjYxOSBsZWdhY3ktdHJ1bmsKKzQ1NDcxIGRkZjhjOTE0NWYxMzYzZTgyZjhjNDNjN2IwYTA5ZmJkZDNhOTBhZTggbGVnYWN5LXRydW5rCis0NTQ3MiBiNWZjZWYxNTgxMzNhOTc2ZjYxZmFiZTY1MmYzODMxYjU0NmQzZjkyIGxlZ2FjeS10cnVuaworNDU0NzMgZTIzOWQ3NDVjNjQ3NDAzNzYwMGNhMTQ4M2RhMmM2NWYxYzhhN2Q1MyBsZWdhY3ktdHJ1bmsKKzQ1NDc0IDJjNzZmNzFiMjIzZGU3NWE4OGNhZjlmY2U2NzEyZTJmMmQ5MjUzMzYgbGVnYWN5LXRydW5rCis0NTQ3NSA1YzQ1MzMwMmQ1ZjZhMGVjNDIxNDlhYTY2ZTdjNWQ0ZTQyMThjYzBhIGxlZ2FjeS10cnVuaworNDU0NzYgZWMwMGI3OThhYjU2OWVhZTg0N2ViNmY2YWM4N2YxNzhiMGQ1OGViYSBsZWdhY3ktdHJ1bmsKKzQ1NDc3IDMzNTIyMzQyMjE5OWNlNDMzMjg2ODgwNmYyYTgyZmRkMDExNWI4MzMgbGVnYWN5LXRydW5rCis0NTQ3OCBkZGE3Y2M4OGMwNWFhYmMwNjFiOWI5NWZjODE5YWJmNDE1ODMxMWRkIGxlZ2FjeS10cnVuaworNDU0NzkgYzA0MTM2YTgwNjJhMWRiZDUyNWY4M2I2YWVhNjFiZGM3MGM4YjI4YiBsZWdhY3ktdHJ1bmsKKzQ1NDgwIDM4NGU5MTIwMjU3OGY5MTcwNWRkMTBhOTgzMmVjMzQyZjQ3MjlmNmMgbGVnYWN5LXRydW5rCis0NTQ4MSBlODE5Yjg2YTE1MDZhMDM3MzUxM2UzMjZiMmMyOTJhZmY5MTk4OWIzIGxlZ2FjeS10cnVuaworNDU0ODIgYzk0ZDc3MDUwODVhNTQ1YzNmODFkNzZhNTVlOGZiMmFjYThkODU0MSBsZWdhY3ktdHJ1bmsKKzQ1NDgzIDE5YzFiYWMxNWJkZWExNDg3MzBkNDljYmEzMDU0YmM5NzNkNWEwNDAgbGVnYWN5LXRydW5rCis0NTQ4NCBiMzc0MTQwZTQ2N2QyZTlhM2ZhMWIyNTllNzg1YWNmYWY0MTk0ZDc1IGxlZ2FjeS10cnVuaworNDU0ODUgZjc5OTFjZTQzMWU1MmVmNjcwN2E1ZTljYjVhYjAyOWY1MGRjZjYyNyBwM3lrCis0NTQ4NiA2ZjM1ZjdiZTM2YzNkNDVmNzkzODEzNmVlNzc0MjE5NDUxOWQ2OGEwIGxlZ2FjeS10cnVuaworNDU0ODcgODFiZjRkMzc4YjllNjc5ZDcwNDNiNmIzN2ZiOGEyYWQyYWMwZDc3ZCBsZWdhY3ktdHJ1bmsKKzQ1NDg4IDcwMmQ1OTdmMmY2ODljMmNmZDRhOWJlZjgwNzE3YzExZjc3OTMwYmIgbGVnYWN5LXRydW5rCis0NTQ4OSBmMTE3YTVmZGU0ZTU5YmRhZWNhMjBlNDgyMGQ0YmRlNDdkYTAxNWQxIGxlZ2FjeS10cnVuaworNDU0OTAgNGQ4MjA5M2UyZTE5NzgzNjcxNjZkMmUzODg3MzA3MmE4OTI2NDg1YSBsZWdhY3ktdHJ1bmsKKzQ1NDkxIGZiYmMwYmVmZmZmNzc4ZmE5YTM4YThiOTA2YWE5OGVmOTRiYjQwOGYgbGVnYWN5LXRydW5rCis0NTQ5MiAxOWQyNDc3YzEyODMxNjhiODEzNTFjOWU5NTk2MGRiMzhmNTI1ODA2IGxlZ2FjeS10cnVuaworNDU0OTMgNmNmZTQ4ZTY3MmM0ZTA4Yjg0YWY0NzlmOWQwNTNjNzRiNjIzYWIyMiBsZWdhY3ktdHJ1bmsKKzQ1NDk0IGVmZTc0OTIyNWJhZTJjNjUyZjgxOThjNTU4ODBiZjA3YWMzNWRmNDggbGVnYWN5LXRydW5rCis0NTQ5NSBkZjllY2FjYjBiZjY3YzBhNTM4NDJjYTQ2ZmQ2ZWJmOGJiN2FjMmZkIGxlZ2FjeS10cnVuaworNDU0OTYgNWY0NTdmNDI2ZDkxNmMxOTlkYWJmMWNiNTIyZGIzNjc5ZWExZTk0MiBsZWdhY3ktdHJ1bmsKKzQ1NDk3IGNjYzBiNTQxMjc5OWVhOTExYTkzNmQ3YTkzNjQ4MzdjMDYyYjY4NWMgbGVnYWN5LXRydW5rCis0NTQ5OCAwODZkODQzNGM3ZjdkYzI0ODgyOTZkMGM4NzA0MWQzNDFkYWExNTBhIGxlZ2FjeS10cnVuaworNDU0OTkgNTk5N2Q3Y2VkMTdkN2RmZjM3OGZiMzIxMmY4MTY3YzhmMDJkZmZlMSByZWxlYXNlMjQtbWFpbnQKKzQ1NTAwIDZkOGUzZTY1OTQ3ZjJhMjU5YmMxZTBkOTZjYzZjYmQ2ZjUzZGU3ZjYgcDN5aworNDU1MDEgOTI3NDg3OWYwNDg0MjhiOGNlNjg1NjkyYjFlMTMxZGFjYzY5NzAzOCBwM3lrCis0NTUwMiA4NTY5NWRlNjA0OWUwMTNkMDRhZjlkZTNiMTFlNTk4ZjdjMWEzNGEwIGxlZ2FjeS10cnVuaworNDU1MDMgODYyNWU0YTVjZTRkMGJkYTQ1MjE3ODkxNDdiYWM2MDRjMTc0ZjIyNCBsZWdhY3ktdHJ1bmsKKzQ1NTA0IDIwY2IxM2JkZjFmMDA5ZDVlOWNmN2Q2MmE3ZDcwODEyMTMwNjY0NDIgbGVnYWN5LXRydW5rCis0NTUwNSBhY2I2MTgzNmY3ZmFhZDlkMTM2YzhkMDQxZjE2MDIwZjMxOTVlODcxIGxlZ2FjeS10cnVuaworNDU1MDYgY2M5MTkyNTA1YjQwNWJjOWM3MjI2ZmRiZDI1NmFmNWVjMjc1M2ZiMiBsZWdhY3ktdHJ1bmsKKzQ1NTA3IDJlMzI3NmRjMjMxZjc2MDVlM2RiMzNkMTQzZTJlZDUwYzhlNDU5YmYgbGVnYWN5LXRydW5rCis0NTUwOCA2MWFjMWUzMjJkYTc2ZDk3ZWUzMDdkMTQ5ZTdmYjIyMDY2NTAwZGVmIGxlZ2FjeS10cnVuaworNDU1MDkgNmViODZhNzFmNWM4MTY3M2NhZDI3ZmYyOTViZjk4NTQ1M2RlNGQ2NSBsZWdhY3ktdHJ1bmsKKzQ1NTEwIDMxMzU2NDgwMjZjNGFlZDUyMWYyZGRkNGZiYTNjN2JhMmY3YzdjYzIgbGVnYWN5LXRydW5rCis0NTUxMSAzZWRlMTc1ZWFkMzdhODk5NmQ1NGQyOTAyZDRjYmUwZWU5Y2ZiMzBhIGxlZ2FjeS10cnVuaworNDU1MTIgYTVlODc5ODdjYWU2M2VhOGMwYjQxM2I3Y2YxOTAzZDZkZTA1M2Y0MiBsZWdhY3ktdHJ1bmsKKzQ1NTEzIGUyNTRiOTIyYzRmMzRlZjBkMWI5ZDQwMzYwZjNiZmU0MWNjODA2MWMgbGVnYWN5LXRydW5rCis0NTUxNiBmYzU4OTc0MThmMzFiZDRkNjZkYmRhNmZlN2RlODJkODYwZGM5ZDNjIGxlZ2FjeS10cnVuaworNDU1MTggZjU4MzFmZjdjZmJkMmJhZjQ4ZjY0NzQ4YTA3MTIwYTAyZjg3OGViOCByZWxlYXNlMjQtbWFpbnQKKzQ1NTIwIDQ1NzdiMjQzYjk4MTM3OGRmY2EzMjQxMDhlNDgwZDdmZDJlNzhmZWMgbGVnYWN5LXRydW5rCis0NTUyMyBiZTJhN2VjNDYyZmU0MTc5ZjJkNDMxMzNlZGJkOTNjMmY1NzRjMGY4IGxlZ2FjeS10cnVuaworNDU1MjUgZjA0ODExNmFhZGUwNTc4Y2QyY2Q4N2U4OGFjYzI1OGUyZGUzODA2ZCBsZWdhY3ktdHJ1bmsKKzQ1NTI2IGU4OTJiNTQ0MjgzNTA4YWVkNTQ2ZDFhZTI5YzVmMWI2NjJlNTRmNGEgbGVnYWN5LXRydW5rCis0NTUyNyBkODJkY2VkNmYxZmE3NDA3YTNlYTEzMWI2MzQ4MWU4NDk5Nzc3NTYxIGxlZ2FjeS10cnVuaworNDU1MjggMTc0MDYyZjdjMWJlMDA2OGE5YmY1NzhiOGE1YjMyODEyYjJmNjBmYyBsZWdhY3ktdHJ1bmsKKzQ1NTI5IGVlOTBhYjI2MDg2YWE0MzUzOTg2ZGJiYjc3YWYyNDdmZDE5YjMyNzYgbGVnYWN5LXRydW5rCis0NTUzMCAzMWIwY2RhMTFhNmQ2ZWM5MjE3YTI2NWUwZmNjODU1MzBjOTU5MWY5IGxlZ2FjeS10cnVuaworNDU1MzEgZDQ4ODI0NGRmMjg4NGIxNDVkZjM4MDJhOGEyNDhiYmZlNWFmZWVmYSBsZWdhY3ktdHJ1bmsKKzQ1NTMyIDYzODY0NDQ1OGZjNzUyOWM2YjM4OWY3ZWJjN2RlYmVmNTU2ZTI0MDggbGVnYWN5LXRydW5rCis0NTUzMyAxN2NjY2E1OTBhZTkzNzc1ZTgwYjAwYjYxY2NlYzc5YzhiNGZlMGE2IGxlZ2FjeS10cnVuaworNDU1MzQgY2M0ODk4NWMzMjY2YzQ4ZDEzNzNmNTVhMTY4Y2UzNTdlODkwMDAzMyBsZWdhY3ktdHJ1bmsKKzQ1NTM1IDkxM2QzNzkwZmQ5OWU5MWZhOTUxYjMyMDA0Y2Y4OGU4MjQ2MzNiYjcgbGVnYWN5LXRydW5rCis0NTUzNyBlMGE2MDMxZGY3YzBlZGRmMzUxZTZkN2IyNjkxN2IwOTk3NjQ3ZjE2IGxlZ2FjeS10cnVuaworNDU1MzkgMGMwMTIyYmQwZWEzMWQ2YzRlNjlmMzhmOTEzYzExZWQxM2JlMDJhMiBsZWdhY3ktdHJ1bmsKKzQ1NTQwIDI0MGZlNDk1ZDE4NjcwYTIyMmJjMjYzYmZlNWE3OTdjYWU5ZjFhZDYgcmVsZWFzZTI0LW1haW50Cis0NTU0MSA0ODhmYmI0Y2E4ZTUxNGQ2ZmYwY2Q4YTQ5M2FlODgzYzA0NzBhM2I3IGxlZ2FjeS10cnVuaworNDU1NDIgODcyNWI5MDdhY2JiZmVkZmRmZjJkNDliM2FhZjE0MjcwYmVhYmEzZCBsZWdhY3ktdHJ1bmsKKzQ1NTQzIDM1ZjI3YmJkOWFkOGEyZGY1Zjc3MzcyYmM1OTIzNDJmMTE1NzJkOTcgbGVnYWN5LXRydW5rCis0NTU0NSBkNjRiYWRhYzZjZjMxMjY1YzlhZTY1NzRmYjE4NmQ1Yzk3OWY5YWFhIGxlZ2FjeS10cnVuaworNDU1NDYgMTJhYjIwY2Q3YzI3M2ExYzFjMzM2ZWNkOTFlMmEzM2VhZDRiMzI3NCBsZWdhY3ktdHJ1bmsKKzQ1NTQ3IGRkNDE1NmMzNjcwM2ZhY2Q3MjZkZmI3NDFmMTRlM2RlMWM3MDBiZTAgbGVnYWN5LXRydW5rCis0NTU0OCA0MWYxM2I1NmRjMzJiY2U4NDk2ZjcxNTAxNzA1ODQyZjkzZjllOTlmIGxlZ2FjeS10cnVuaworNDU1NTAgZWJlNTljZDE4MjczMDJkZWNlODBjMDk3MDhlZTY0N2YyOTgzODEyNiBwM3lrCis0NTU1MSAxOTA0NWM1ZjBiYTJkYWM2Mzg1ODQ1YWFhODI3OTExYzZjZGJlOGMwIGxlZ2FjeS10cnVuaworNDU1NTMgODBlMDAzNDk2NDdkMGQzNjE2YjEwNjBlNzM0YWUxYmY0ZGZjZTc1NyBsZWdhY3ktdHJ1bmsKKzQ1NTYwIDI5MjU3ZWY2YWJlYjdlMDFkMTM4YmUxYjA5ZjIzNWY5MjEzNjc2NjEgbGVnYWN5LXRydW5rCis0NTU2MiBiN2Q0NzFlMTIwNDI3NmFmMjhlNGNlMjg4MTYwZTA4YjU5OWRmN2I3IGxlZ2FjeS10cnVuaworNDU1NjMgZGM4ZWZkNzBhYjU2ODY4MTBmMWE2Njk1NzUxN2Y0MzFiYTRmZGZmNSBsZWdhY3ktdHJ1bmsKKzQ1NTY0IGFjZDhmYmE2MTk0MzBmODFiZWQwYWY4NGE2MmI0ZDFlMzE2Y2M2OTUgbGVnYWN5LXRydW5rCis0NTU2NiBhNGQ1Y2VmYzJkZTQwODUxYzgwNzIyYjhlYjMwNTY5MTQ0MDk0ZWVkIGxlZ2FjeS10cnVuaworNDU1NjcgNzRmNDU5YTI4OWJlOWRkMGIyZjg4NDBjNTI3NzkwZDY3ZmZmMDlkNiBsZWdhY3ktdHJ1bmsKKzQ1NTY4IDU2NGVjOTczNjVmOWQ5ZmFjZGMzNGYyMjVmN2QzN2VhYTdkZDVhYjAgbGVnYWN5LXRydW5rCis0NTU3MyBkNGFlOWMwMzI1YjFhNzlmZDkzOWUyNmY0NDNjMmQ3MTBmYzAxZThkIGxlZ2FjeS10cnVuaworNDU1NzQgZTk2ZDFjYWQ0NjgyMDVhMzdjN2MwYmJiM2JiMjMzMzE4NTkzNmI1ZiBsZWdhY3ktdHJ1bmsKKzQ1NTc1IDQ3YWM1MjRkYjhhN2M4M2U4ZGU0YTg5YTE0MWYyMDlmMzVhN2Y0OTUgbGVnYWN5LXRydW5rCis0NTU3NiA0NzdiZjkzMGYzZTdmNGVkMTFlNWFiYmI0ZDAwYTlkZjlkZGIyMTRiIGxlZ2FjeS10cnVuaworNDU1NzkgNzVlNzA2YzM2Yzg2NGExNDdmNmUzNGNhYjYyMzI2YWQ0ZDBmMzJkZiBsZWdhY3ktdHJ1bmsKKzQ1NTgwIGQzZTVjOTU2NTgxY2UyZWNlODA2NzRkZDZiMTE3NmQwZDA5MmViNDEgbGVnYWN5LXRydW5rCis0NTU4MSBiMGYzN2Y5ZmM2M2ZmOWI2NzA0ZjNlOGQ4YzBkODkwZGEzYjAzMGYxIGxlZ2FjeS10cnVuaworNDU1ODIgNGM4OTQ1NTJiOTY4MGY1NWI5YzVhMzdlZDJiN2I2NWVhMDkyMGM3MiBsZWdhY3ktdHJ1bmsKKzQ1NTgzIDJmYjE2YTYyOTQxNTc4ZGIwNzg3ZjFmZGE2NTg4NTA5ZDMwNjA2NTIgcDN5aworNDU1ODcgYWMxMjdjZDg2NmEzMTJmMmEzYmM3MWEzMTg5NGMyZTJlMzMzNjRmOSBsZWdhY3ktdHJ1bmsKKzQ1NTg4IGM0MzQxZTZjNmEwM2RlNGI4ZWRjZmQzOWE1OGJkYmU5OGY5MzJlODggcDN5aworNDU1ODkgYTQ3MTE3ZmEzY2E4OGM0NjBiNWVmMjkyMzBiNzBjYTZlZTVmNzc1ZSBwM3lrCis0NTU5MCBiMGY4ODE0M2RjNWM5NTAzMzViMzhlZjIwNTM2YTNmODgxNjA5NzU0IGxlZ2FjeS10cnVuaworNDU1OTEgZDM1ZGI4NGNhMDcyY2Y0OWFlMjNmOTc1MzE0OTRjYmQ2NGU4MTllOSBsZWdhY3ktdHJ1bmsKKzQ1NTkyIGI5YWFkNmE3NDQ1MmRjNWI3MTBlYjVhZWJlMzhjNTM5MzUzOGM4NmEgcDN5aworNDU1OTMgYTRjNzBmMzk2OGJlN2Q5ZjgwYTYzYTJiMjY4ZTM3NTU4MzEyMzU0NSBwM3lrCis0NTU5NCA4ZGY2MDc5NjMzNTU4ZTQyZTE5NzQxMDcxM2FmMDIwYjM3NWYyNzczIHAzeWsKKzQ1NTk1IDZhNDVmMjZlYTYxOWU1NzA2OTAzNzBmZjg1NThlYWRlYzg1ZjAyZmQgcDN5aworNDU1OTYgYjY4ZDIxMzY0OTE2NzEzYjUzY2JmNjc1ZjIxNTM3NjM4ODgwYjIxNCBsZWdhY3ktdHJ1bmsKKzQ1NTk3IGY3MzE4NTllOWIzYjkxMjY0YjMxMmE4MmMzMTI4ZDY2YTQyZDhmZmMgcDN5aworNDU1OTggOTZhYTVjZTg2NDQ1ODA3YmU0NzNmZTkzMzUwNTliMWVmNWJjZDBjNyBsZWdhY3ktdHJ1bmsKKzQ1NTk5IDcwMmQ4NWQ5NDE4YTc0NTYwM2FmYTg1MDBjMDQzNjkwYmY2MzYxY2UgcDN5aworNDU2MDAgYjI3MjRhMTJkZGNlNGZmYzZmMzkyNjU5NjI3MmMyMmZiNGY3ZmRiMiBwM3lrCis0NTYwMSA3MjI0NTE1OTI5OWUwMTUzYWZlMmJjMTk3ZDc3ZjExYjUyYzg4ZjNlIHAzeWsKKzQ1NjAyIGI0OTg0M2EzYTFkZjRhNGJmNTJkMjI1N2VhMDA5NDQ5OTNlZThlOTUgbGVnYWN5LXRydW5rCis0NTYwMyA5YmI2ZTM1YzFjYzQxOGI4MjViNDU3OTgxNmI4ZDIwYzNkMTYxMDY1IHJlbGVhc2UyNC1tYWludAorNDU2MDQgYzI4Zjc0YmVkODNiZjg0YmRhMGY2YzRjODA5MGM2OGI1YTM5M2E3OCBsZWdhY3ktdHJ1bmsKKzQ1NjA1IDMwMWM0ZWRlNDlkZDZlNjMzZjI5ZGQ3YWZlNTEwMjE5MGUyOGVkNWEgbGVnYWN5LXRydW5rCis0NTYwNiA1YmM5MTVmZWVkMTQwYTFmYjgxY2FhMDdjZWZjM2E4NjVmMjg0YWY1IGxlZ2FjeS10cnVuaworNDU2MDcgODEwMjU1N2FmZGYxNzY2ZTE0ZmIxOTljN2JjYTljMzM1NGE2MjUyYyByZWxlYXNlMjQtbWFpbnQKKzQ1NjA4IDc0OWFkMmEzNjkzZjIyYmU3ZDAwMzViMmJjYjhmZjExMmRlNDE4M2EgbGVnYWN5LXRydW5rCis0NTYwOSBkNjJjOWY2NDY2MzgxZTY3ZDlhMGM1MDg1MTYyNDE2OTJlMDZhNWRjIGxlZ2FjeS10cnVuaworNDU2MTAgYmQ3ODUzMzk0YzdhYTVmYTI5NmEwYTEyMmNlOWFiNDY5MGRhNjI0YyBsZWdhY3ktdHJ1bmsKKzQ1NjExIGQxOGEyYzg2NjYwOTVhMzdlZWY4ZGQ2Zjg4ZTMxYzU0MjhiYWJmOGIgcDN5aworNDU2MTIgNzNkOGU4OTc3N2UzMzAyNzdlYTQ4M2FmNDA3NDlkNzNkMTQ3ZDAxNyBsZWdhY3ktdHJ1bmsKKzQ1NjEzIDkxYTA5ODFlYzRjMmMxMDUzZTk2ODNjMzhkMjk0MWRlNDJhYTU0NWUgcDN5aworNDU2MTQgZjllY2ExMzNjZjg4NjljYzU4MjNkN2U3NWZmZjhmNmJhMDUwMDBlMiBsZWdhY3ktdHJ1bmsKKzQ1NjE1IGEzMTIwMmM5NDg1ZGFjZWI2ZDNkZjQxNDJlNGZiYTcyOTIwM2JlZWQgcDN5aworNDU2MTcgNzgxNDBiZTUzMTViYzdmZmE0MGZiOWVjNmY0YWU0NTlhMzkxNTg3MSBwM3lrCis0NTYxOCAzN2MyOGE2YWQ1MDExYzg3ZTdmZTRiOGI3N2NiMmM4ZDA4Mzg5ZDZlIGxlZ2FjeS10cnVuaworNDU2MTkgNTBlMGJkMmU0NTg4MTZhMjBlZmRlNjU5YmE4YjhlMWU1YWZmMmRhMSBwM3lrCis0NTYyMCBmZDZmMTkwZTI2YThjMTE5ZTgwNjQ4YzY0YmFkMTIxNTE5MmY1NzFmIGxlZ2FjeS10cnVuaworNDU2MjEgNTI1NTEyMjFhMTMyZDU1MTc5MmI5YmRhNjMwYmU5ZjM3YzI1ZjkyMiBsZWdhY3ktdHJ1bmsKKzQ1NjIyIDU2MDg5ZmFiYTA1NmEwYzA3YmVlMTUxNTVhY2Q5NDAyYjA0N2ZjZDEgbGVnYWN5LXRydW5rCis0NTYyMyAwNmRjZGVkZmM5OGZhN2ZlZDQ2NThmYTczN2E0YWM5MzZhOTc0YTQ1IHAzeWsKKzQ1NjI0IGMyYWU2ZGIzMDU3MmIzODRlNjc1MDM3YTAyNjE5YTYyMzg0ZjFhYjUgbGVnYWN5LXRydW5rCis0NTYyNSBmZDI5YWQwYmVmNzA4Mzk1YzRmNzk5NjQ2N2JjYzcxYzIzNzI0OTU4IGxlZ2FjeS10cnVuaworNDU2MzAgMGUwZTMxNWI0MjAyMzU3Y2UzYzU0ZjBkYmIzMDg4NWU5MjczMmRjZSBsZWdhY3ktdHJ1bmsKKzQ1NjMxIGM3ZWY5MmI5MDQ1YzY4OGEzN2E0NGM2NjY0NDQ3YTVkNzY2N2EzYzAgbGVnYWN5LXRydW5rCis0NTYzMiA3MjA0ZmJhYzU3OWNjOGFjNDVhMmQzMGJjNGQ3NWQzMzllODRkZjg3IHJlbGVhc2UyNC1tYWludAorNDU2MzMgNmM2MzRjNmQ3N2RkOGQzYTAwMThkYThhMGIzYWZiY2E0ZjU4NTAxMSByZWxlYXNlMjQtbWFpbnQKKzQ1NjM0IDNmMTQzMWE5ZWRjYjcxZTk2OTZlYmViMzlmOTE0NGE1NTE3ZTJjZmIgbGVnYWN5LXRydW5rCis0NTYzNiA2MjhmNDFhOGIxY2UwMzgzODBkZDRiMGY5ZjFmYmEwMWU3MThiMmE0IGxlZ2FjeS10cnVuaworNDU2MzcgNTRmMTU1MzY5YTljMTI5YzMxY2Y5NzNiMDZhMDZlMGM2ZTM1ZjM3MCByZWxlYXNlMjQtbWFpbnQKKzQ1NjM4IGZhNmI0OWJhOWFlOWI1MThmYmYxNzU4MjkzMTNmNTI1MDE3MjRlMmQgbGVnYWN5LXRydW5rCis0NTYzOSBjZTJlYzhjODM1ZTkzNWU5MDk3MjkwNTU1MWFhN2U1ZGQ0ODFhMDM3IGxlZ2FjeS10cnVuaworNDU2NDAgZGU0YTVmNTVlMjFkZTEzYTZlZTQ4MWIwMGU4YmI4N2QwZGNjNWUyNCBsZWdhY3ktdHJ1bmsKKzQ1NjQxIGZiMTgzN2U4OGU3MmI2M2I1YmYzNGU0ZjJmZGI3YjBlMjUzMjllMWEgbGVnYWN5LXRydW5rCis0NTY0MiAxMGYyNDFmYzk1OTM5ZjljOWQ3YzhiMmQxYzJhZGMxZTgxNmQ0NzcxIGxlZ2FjeS10cnVuaworNDU2NDMgYWI0ZTY1YzgwOWU2ZmYzMDBlNmI0OWE5OGNiMzZhM2FlODE1ZGI5YyBsZWdhY3ktdHJ1bmsKKzQ1NjQ0IGNlNTU4NWFmYzIwZjkyMTRkNDc4YzIwOTU5ZTRiZDA2YTVjNmRjNTYgbGVnYWN5LXRydW5rCis0NTY0NSA1ZjllYTc2ZTIwNzI0NDQ0ZTRkMDY1NmJhNGY0Zjk1ODRlZThlYjcyIGxlZ2FjeS10cnVuaworNDU2NDYgZjQ5YTJkZGE4ZTc0NTY4NmQ0NTc0MzVjNWY0ODg5ODdiZWI5NzYyZiByZWxlYXNlMjQtbWFpbnQKKzQ1NjQ3IDgzNGZkOWIzY2VlZWMyMDIwOGM3MTA4NGEwYTcwNjFhY2JjZDYzYzYgbGVnYWN5LXRydW5rCis0NTY0OCA5MDQ4ZDc2YmYwMWU2ZGY0OWQ5OTRjYjFiMDFiNGIwMzg3OTI5M2Q0IGxlZ2FjeS10cnVuaworNDU2NDkgN2RlMjg0OTU4ODgzNjA1MTZmMDI5NzliOGI5MWRiZWM1NDA0YjY1ZCBsZWdhY3ktdHJ1bmsKKzQ1NjUwIGZkODA4ZWU2OGViOTg1NWVlMTliMTM0YTYwYjU0ZTYxNzAyNjgxNGIgcDN5aworNDU2NTIgYTdmMzc2NWVhNDY0MjliNGY5MmRjYmM1ZTg4MDQ0OTlkNmJmMzJjNSBwM3lrCis0NTY1MyBhZTZmNTA2MDBjNDZiM2JmNTc3NGU3ZTYzOGY5ZDdmNTI2ZmRlMjFiIHAzeWsKKzQ1NjU0IDg4ZGE4NDc3NjExOTI5MWRiOGY0MzIzZDRkMjU5YjAzMzRmNzRmY2MgbGVnYWN5LXRydW5rCis0NTY1NiBlMTI1MmNlYTQzOWM2NWViODVkMGVmZWJlMTY0NGRlMjQxNDg0MjA2IHAzeWsKKzQ1NjU3IGQwZTRjZWQ0ODdiMzY3ZTQyNGU1MmU2ZWVlZjcyMWVkOTZjN2RmNmYgcmVsZWFzZTI0LW1haW50Cis0NTY1OCBhMGFhOTExYmU5NmEzMWVhYzE1YzQ5N2JjOTA1OWZhZmFhOWNiNjIxIGxlZ2FjeS10cnVuaworNDU2NTkgYmNmNzE1YTk4Nzc0YjA0ZDg3YTIxOTNjODcxYzk1MDRkYjZkZmZlYyByZWxlYXNlMjQtbWFpbnQKKzQ1NjYwIGVhNjc2MjhkZGFlNTY1NTFmMzAwZGZiMzkyNTIyYTY5ZjBjY2M5NGYgbGVnYWN5LXRydW5rCis0NTY2MSBlM2E4YThkZTM1NWUzZmI5NmE5YTA5YzQ0ZTcwZTgzYTU0Njk4ZDc3IGxlZ2FjeS10cnVuaworNDU2NjIgNzk5NTlhZjBmOWUwZjMxZTY4MjlkNmViMmM5OGRkZjU4OGI1MzkzMSBsZWdhY3ktdHJ1bmsKKzQ1NjYzIDk3N2U3YTdlMTU1YWQ0Mzk0NmMxNjYxYzQ5YjdmZTg0NDRjNmNhOTYgbGVnYWN5LXRydW5rCis0NTY2NCA3ZGE0YWY5NWViYWRhMTJkN2NmZDdmYmUyZWI3N2NiOWZkMGE4MjQ5IGxlZ2FjeS10cnVuaworNDU2NjYgN2JiYjA3MTEzYjI5ZmQxYmFjOGE3YjU3NjdmZWUzZTkxM2JhNjlhYyBsZWdhY3ktdHJ1bmsKKzQ1NjY3IDIyMmI0N2Q2N2Q0MzJiNDE4ODM3ZjA2Nzg4ODFmMWRhM2E2NjkyOGEgbGVnYWN5LXRydW5rCis0NTY2OCBkNmIxZTJiMzA4N2YzODQwM2QyNDA1NTU0NTc0MjdmM2VmMzRlZWNlIGxlZ2FjeS10cnVuaworNDU2NjkgYzI1ZGQ3NWUwNjY3OWVlZjFhOWFmMjhkYTNkMTlmNGZlMDEyM2Y0NCBsZWdhY3ktdHJ1bmsKKzQ1NjcwIDk5MTA2NjU3NjQzNDdhNDU2MTM0MGI1ZGZkYTRmMzE0MTFlNWExYzAgbGVnYWN5LXRydW5rCis0NTY3MSA1MDliNTMxNzE5NTRhODJkZTY0NGU5OGE4Nzk4NjNkZWUxN2RkMWY2IGxlZ2FjeS10cnVuaworNDU2NzIgMmZkNDc3YjYxNGUzZjYyZWI4ZjAzZjc5YjFmNjVhNWEwMzY0ZGVkNSBsZWdhY3ktdHJ1bmsKKzQ1NjczIDg0NzcxMGU1ZDdlMTY2MWNmYmNmOWNkODZhZjMzZjBjYzEwYTg2NjYgbGVnYWN5LXRydW5rCis0NTY3NCAxYjE5MjAzN2I2MmYxZmI5NTY5ZTliMWRkNGViNmUwZWU5NGI2ZGM5IGxlZ2FjeS10cnVuaworNDU2NzUgNThkMTBkN2QwYWExMWNlYzgzYjc5MjllN2Q3ZGJiNjYyNDg3OTZiNCBsZWdhY3ktdHJ1bmsKKzQ1Njc2IGI2ZDEwZGQzZjk5Nzk1ZDYxMDk3Y2EwZGEwZTIzMTUwNjJmOWI3MDcgbGVnYWN5LXRydW5rCis0NTY3NyA2ZjRlZGQ5MTRjNTg2YTE2MWYzZjk0MTY1MzUxMTI0MjZlMDY2ZjQwIGxlZ2FjeS10cnVuaworNDU2NzggNzE2N2MxYzBlMDEzMTcwNWZjZDg1NTY1ZDc4NjI0YjRhZjU3MjYzYSByZWxlYXNlMjQtbWFpbnQKKzQ1Njc5IDljMDQxYzg4ZWI2NzgzNzg1ZDQzMzc2ZmYzNGU2NzRmOTMwMjY0MzggbGVnYWN5LXRydW5rCis0NTY4MSBkNjBmYmM1NGMwZDRkZmViMmE4MjY1N2QwMTc1NTJkNjE0NzMzN2RjIGxlZ2FjeS10cnVuaworNDU2ODIgOWFjYjU1NTI4NjgwMzk5ZTY4MjBlY2YxYjFhODI4OGIyYjI2OTlmZCBsZWdhY3ktdHJ1bmsKKzQ1NjgzIGFkYjEwYWZkYTU1YjRlZGEzNDBiNjRmZmJkZWNkZWU0Yjg5Y2RjYTkgbGVnYWN5LXRydW5rCis0NTY4NSA5N2U1OWQyZTYzZGY2Mzc3NTMxYzI4MTg1NjViODUxNGE1NWVmMmYwIGxlZ2FjeS10cnVuaworNDU2ODYgZGFkOWIzM2U3OGU1M2Q5MWJhZGE2MjgzNGNlNGU5ZTkyN2E0ZTUyYyBsZWdhY3ktdHJ1bmsKKzQ1Njg3IGM3OGQzMDZhYWNjZjkxMjUxNTNiZGNmN2RiZDE3NTY3NjNhZTAxNjQgbGVnYWN5LXRydW5rCis0NTY4OCAyZjRkMTdiY2M5NzUxYTljNGZjZWJhMjljNGQxZWY0ZmU0ZWYyN2I4IGxlZ2FjeS10cnVuaworNDU2ODkgZTBiN2UzNGI1OTcxMzMxYmE2NTUxZmVjNDIyMTI5MmZmNDNkMGE0ZSBwM3lrCis0NTY5MCA4YjBmMDczNWIyNDZlZTE1NjNlODIzMDE2NGNjYTEzNDJiNzQ0NzlkIGxlZ2FjeS10cnVuaworNDU2OTEgN2UyZDVkMzc0ZTNhMmY0NWFjZTkyNjA0Y2FkNmM2MWMzZWM4ZWJhZCBJRExFLXN5bnRheC1icmFuY2gKKzQ1NjkzIDkyZjIxOGE2YjIwYjg0NGQzNWEzMGNlNmQ3YTgxN2U0NWU3YmEwZmUgcDN5aworNDU2OTcgNjEyMjhlNTU3OTFmM2VmNzAwNzA2YzE0MWE2ZDNkODkxODIxODRjZSBsZWdhY3ktdHJ1bmsKKzQ1Njk4IGFjZDVlNTU1OWUzYzI3OGNkN2ViYjc4NzE4MjgwMTMzMmQyMTVmOTEgbGVnYWN5LXRydW5rCis0NTY5OSAzMDE1NTIwZDY3ZmYxYmJhYmZlZWIxZWRkYmE1ZGUyMGUwNmIzNDZlIHJlbGVhc2UyNC1tYWludAorNDU3MDAgODk1YjdkYWJhMmQ2MDg0YWMwNDU0OGY4ZmI0MjAxYjJkOGJhNWRhOCBsZWdhY3ktdHJ1bmsKKzQ1NzAxIDAwZGQxZGFlNzg4YjdkMTE4MmMyYjljNGM5MDA1MzEyZTUxYjU5ZWIgbGVnYWN5LXRydW5rCis0NTcwMiBmMzNlNGVkNTUwYjhhNGY3MTI4NTc4Y2U2NDQyZGZmMWNkNzBjMTkxIGxlZ2FjeS10cnVuaworNDU3MDMgNDQ5ZDRiYTNjZDQ0MjQ3YWIwZDdjMTk3YjI2OWUxMGY1Y2NjNzQyNCBsZWdhY3ktdHJ1bmsKKzQ1NzA0IDE0Y2IyZWVjYzZmODk0NGQyZWFhMjcyYWJkZjBhN2U5NzczZDY3OTAgbGVnYWN5LXRydW5rCis0NTcwNiBhZjQ0ZGIyYTk1MjNhMDUzYWUzZTJkYWFlNDUxMDBjYzczMjVmYTZhIGxlZ2FjeS10cnVuaworNDU3MDcgNmMxMjQyNzZhMWYwY2FmY2RmNGRhNWE1ZDViZTZiN2NlZWY4MjAyYiBsZWdhY3ktdHJ1bmsKKzQ1NzA4IDQ1Zjg0OTI5YjJhZWI4NjUyNDk1OGI5OTFjNjhmZmQzYjFlY2MzZWUgbGVnYWN5LXRydW5rCis0NTcwOSA4ZTE0MTQ4Mzg2ZWMwNGU5NjBkMjAyNzY5NDljNTdjNjQzNGE0ZjBlIHJlbGVhc2UyNC1tYWludAorNDU3MTAgYTg2OGMyMThhMjEzMWI2YjY2ZmUzNTVmYjcxY2Y5YTc1MWI4N2FkNSBsZWdhY3ktdHJ1bmsKKzQ1NzExIDg4NjNmZWQ2YzhkNzE5ZDlhMGY4MTQ3MWU2NjVlNGQwMDM5M2Q2OWUgbGVnYWN5LXRydW5rCis0NTcxMiAxODQzNzEwZjMyZTgzMjEzNjdhODQ1NTYxZDg1MTVjYWRjNjNiNDlmIGxlZ2FjeS10cnVuaworNDU3MTMgZTVmZWIwNTFjMzJmZGMzZWE2NGEwMzU3ZGI0YmRjMWUwMDExZjJiNiBsZWdhY3ktdHJ1bmsKKzQ1NzE0IDcwNGI4MDUyOTY2NGJhNGU5ODk3Yzk0MWQxODhkZTU2ZTQ3ZDA1NTggbGVnYWN5LXRydW5rCis0NTcxNSBiNTM1YzE5MWE0NGIwODIwODIxYTNjN2VkYTg1ZGFjMmZhY2U2ODY3IGxlZ2FjeS10cnVuaworNDU3MTYgNzgzY2FiNjkzMzQ3N2M0MWM3NDQxYjA3YWE0NjAwNzcxOWJiZjIzMyByZWxlYXNlMjQtbWFpbnQKKzQ1NzE3IDY4YTdjMDE1YTU0NzQ3ODQwMWI5OGQxZDA2YWNkNDVjZjJiZWQzMzcgbGVnYWN5LXRydW5rCis0NTcxOCAyNjljNjJjN2Y2NmE1MzMzNWZiMWJjNzdkYzM1YjUwOTYxOWVmMGQ4IGxlZ2FjeS10cnVuaworNDU3MjEgZDhkOTAwZDBlYjhhNDY4NGNmZTczODY1ZWUzNTY1NWQ3NGZjNzU3OSBsZWdhY3ktdHJ1bmsKKzQ1NzIyIDA5YzQyNWE1YWEzYWYzY2VjMTlkZDJhODg1OWFmMGU1ZTI0YjY0ZjkgbGVnYWN5LXRydW5rCis0NTcyMyBkNWU2ZTQ5YTM4NzkwYWVhYTE3ZDQwZGMzZjJjMTVmNWFiYmU3NzA3IGxlZ2FjeS10cnVuaworNDU3MjQgMDZjMDU5YjkyZDBiYWM3N2MzZDEwYWQwZTNkMmEzNTgyMzdlNWE4MyBsZWdhY3ktdHJ1bmsKKzQ1NzI1IDg4MzllYTkzYjZkNzA0Mjk0NzkyN2I1NTY5ZGNlYzAyYTU2YWY2YzQgbGVnYWN5LXRydW5rCis0NTcyNyBmODFjZDdlOWQwMDFmMDgwOWNiNWE3YTY1Y2JhZDk4Y2RmMGYxYTU5IGxlZ2FjeS10cnVuaworNDU3MjggNTU2NDRmMGE0MDFiYjkzNWY1ZjlkMWIzYmJiNzk5MTg1YjliMjliNyBsZWdhY3ktdHJ1bmsKKzQ1NzI5IDE2NDk3MDRhMjIxYTFhNjExNzU2YTE3NDVkY2UyMGY0OGY5NGI4ZTMgbGVnYWN5LXRydW5rCis0NTczMCA4ZGMyYTRkOGEyMmUwMDY2Zjc2NDkwY2M0MmIxZDExYzIyYzFhYTE0IGxlZ2FjeS10cnVuaworNDU3MzEgMzU4NjYyZTJmMjczYTJkYmE5MDYwYjRiMGJmMTIzNzRlNjJlY2VlNSBsZWdhY3ktdHJ1bmsKKzQ1NzMyIGZlZDZlMzdhZDAzZDEwNTJlN2I4ODYxYmEyMTRlYTU4ZTQwODQ1NmEgbGVnYWN5LXRydW5rCis0NTczMyA5Y2MxMmJiMGI3MGE4NjYzNGI4N2ZiNTgxNGVjM2U0MmFlODhkYTcxIGxlZ2FjeS10cnVuaworNDU3MzQgMjJiYjVjNjM4NjJlYzYyMmE5NmYxNjkyNzQ4ZjNkYWFmMjIwYWE3NCBsZWdhY3ktdHJ1bmsKKzQ1NzM1IDdjMjIyY2U1MWJkN2ZlMGNmMjU1YThkMjk0ZmNiOTg0NDJlYTY3NGIgbGVnYWN5LXRydW5rCis0NTczNyA4NWM5Y2E1ZTAzNWFkZmY4MmY3ZjczYTRjZTNjYjA2NDM4Nzc1NjBmIGxlZ2FjeS10cnVuaworNDU3MzggYWMwNjg0NTNhNzhhODEyNjFkY2M4Y2Y3ZmYxNjg5ZDNmNmJjZGQ4NSBsZWdhY3ktdHJ1bmsKKzQ1NzM5IDk0ZDllMGRlNGU0OWUzMjBlMDk4NDIyYjYwMWEyN2I1MWIyMDMyMDMgbGVnYWN5LXRydW5rCis0NTc0MCAwZTgwOWI3YTg0ZjE3OGY4NDlmN2U3ZmJjNWM1MGM4NGI2NDhmYzVhIGxlZ2FjeS10cnVuaworNDU3NDEgMjZkMDc3MGYyYjdlZTI4OWEzOWEzYjU1ZGNlYzFjMWVlNjU4NDljNSBsZWdhY3ktdHJ1bmsKKzQ1NzQyIDUwODU2Nzg1NzMyMDVlNWU0MGJlN2ZkODA4MGQ2OTE4NjRlMDExZWEgbGVnYWN5LXRydW5rCis0NTc0OSAwOTkyN2YyZjc0NzhlNjNjZGI0YWI1ODA4YTUwZTUzMTBiNGZiYTRmIGxlZ2FjeS10cnVuaworNDU3NTAgOTIzMzUzMmVjOGIzNTEzNTgyZGViMjIxY2Y4MmQ5Zjk0Y2IwNTdlYSBsZWdhY3ktdHJ1bmsKKzQ1NzUxIGNkOWVkMjczYTY4Nzk2MzNhMmVlOGZhNjAyMDQ1ZDZmM2NkZWJjNGUgbGVnYWN5LXRydW5rCis0NTc1MiAxZTFiNTM2YzY4YjY1NjA1ZTMxMWM3NDk0YTg0MDJkNjU2NDc3OWE5IHJlbGVhc2UyNC1tYWludAorNDU3NTMgZGZiZDU3ZjRhNzExMmY5MmY3NDQ2NWM5OWQ1ZjM3Y2ZmMzJjNzk2MyBsZWdhY3ktdHJ1bmsKKzQ1NzU0IGE4NGE2MjFlYzVjMjRiOWM3Mjc1YWRkYTQzNDlkZDlhYzk4ZjZlYzggbGVnYWN5LXRydW5rCis0NTc1NSAwOTEzNDc3YmQyNGVhNDBiNDQ5OGYwNzhiZjM4ZjJlYzNmODBmM2I5IHJlbGVhc2UyNC1tYWludAorNDU3NTYgNzdmZWEwNmViYzEwYTBiNzI5NGExOGEyN2E5MjM1ZThlMGU5NWVkYSBsZWdhY3ktdHJ1bmsKKzQ1NzU3IDc4OGQ4NjY1ZmY1OGM1NDRjYzk2M2Y3ZjEyMzg1ZDJhYWQzYjViYzcgbGVnYWN5LXRydW5rCis0NTc1OCA0ZGEwZjc2MjEzMjVjMjY3YTA3ODEwZDVjZWM0MjAyNWYwYWZhM2ExIGxlZ2FjeS10cnVuaworNDU3NjYgYWY5NTJiYzdmZWIyNjE1OWE2ZWVlZGE4MGJiZGJhNTFhNGE5NDM3NSBsZWdhY3ktdHJ1bmsKKzQ1NzY3IDk0MGNlNWE3NmM1ZmY4NWFiZmY3ODQzYzgwNTM5NmFlYjUwOGQwMWUgbGVnYWN5LXRydW5rCis0NTc2OCBkNTUxNGE3ZWFhNGNjZWNlZjgyYmM3OGM5NjE5ZjlmMTVjOTRhODU5IGxlZ2FjeS10cnVuaworNDU3NjkgMGI4ZTc4MmI4NDg0Yjg4ZGQzY2VlMjE4ZjRjYmY3NGMyZTY3N2M1NiBwM3lrCis0NTc3MCBiNWU3ZDViM2M0NDJlNzlkYjEyODRhYmIzNTk5YWVjMmNiMTZkYjVhIGxlZ2FjeS10cnVuaworNDU3NzEgMzg0NWY3MGUwYmFmZGEwNGFmYThjYTBiODNiNjhiZDkwMmIyMzRiNCBsZWdhY3ktdHJ1bmsKKzQ1NzczIGJiNmM1YzIwMGEzZjAzYmZjOTJkY2RiNmJjY2EwMGYwOGRjM2Y3YTYgbGVnYWN5LXRydW5rCis0NTc3NCBiNWU3MTgzYWQxMTIyNWY5MzI2MTQxZTlkNTc2YjllNTNlNjRmNWZmIGxlZ2FjeS10cnVuaworNDU3NzUgMzUxOGU5NGFhNjYzNzIxOTRlNTdjZTBlZGFmZjI0OTdlNDVmM2U3OSBsZWdhY3ktdHJ1bmsKKzQ1Nzc2IDE5YWQzZDM1ZmFjNGE4NGE1ZjIyOTVjZmRmNGIwZWM0MmVjODBjMWUgbGVnYWN5LXRydW5rCis0NTc3NyA4YmM0YTdlNWZlZjg0ZjcxOGJhM2E1YmJkNzBjZjc0MmJhMTExMmVkIGxlZ2FjeS10cnVuaworNDU3NzggNjFjN2VjOTk1YWRmNTdlMTgzOGEzYWVkM2QyN2FkZjZkZjE5NzM5ZSBsZWdhY3ktdHJ1bmsKKzQ1Nzc5IGU5YTcwYjE0Njg1NzhkOGU0NjA1MTVlMGY0OGQwMTgzYTc2NDU3YjUgcmVsZWFzZTI0LW1haW50Cis0NTc4MCAzNGQ2OTZjMWVlYmM2OGMxNGFlZWJhMTRkZjZlNjRlZmMyNDhmMDc4IGxlZ2FjeS10cnVuaworNDU3ODEgOGU1YjY0YTdiMzNmMmExZTM4YTZkYjBlMTljNTA4YzdhZDhhZmU1NyBsZWdhY3ktdHJ1bmsKKzQ1NzgyIDM5ZWI1YjUyMjUyMzljZGVjNTAwZGYxOWMwYTgzMDA0OThlOGFiZTggcmVsZWFzZTI0LW1haW50Cis0NTc4MyBjMTI0NzE2OWYzYTE2NmQ4YjA1Y2ZjMzc4YWMxYWY1Y2MxYzRjZGZmIGxlZ2FjeS10cnVuaworNDU3ODQgZGUyZWU4ZGVkY2U4OTlhYzIyZDg2OGE4ZmM2NzkxNDhlYWVhZWRiYSByZWxlYXNlMjQtbWFpbnQKKzQ1Nzg1IDU2NWJmZmRlOGJmMTgzMDY0OGZmMzIyNmY1NDg3MjcwNTc4YzExOWYgbGVnYWN5LXRydW5rCis0NTc4NiA0NzNmMzdkZTEzYTEzN2Y0MWY3NDQ0YThjMmEwMTVmYTQzZDg5YjlhIGxlZ2FjeS10cnVuaworNDU3ODcgMjU0NmM0NzczNGEwMTVmOGY5NWM2NzVlN2VhNTA5NjY3Yjc1ODRkMiByZWxlYXNlMjQtbWFpbnQKKzQ1Nzg4IDhiZGJlZDY3YWRmNzg2ZTg1OTdmYTJmZDAyYzRjMGZiNjQ0Nzg3MTIgbGVnYWN5LXRydW5rCis0NTc5MiAzODllOTIyYTY0N2MxMTAyZjVmMWZmMjZhNmQzMWIxMzFhODI4NjRhIGxlZ2FjeS10cnVuaworNDU3OTMgODc0ZDc3ZWVmY2U0MzFjMGQ4MDllZmUzOWQxMDUxMTRmODk2MWI0MSByZWxlYXNlMjQtbWFpbnQKKzQ1Nzk2IGYyNzQyYWNhMmFkMDdmNDQyNGI0Y2JlOWM3ZWIzMzYzMDFiMzkzOWMgbGVnYWN5LXRydW5rCis0NTc5OSBmMDgwOTQ4M2I0ZDA1ZjFiN2YyZjBjYTJlZTRiZmY1NzA0N2EzYmMyIHJlbGVhc2UyNC1tYWludAorNDU4MDAgMzZjN2E0NDIyZTMwNzU5NDVlODE2MGU1ZDI5M2MxYzc0Mzc5NjE0NyBsZWdhY3ktdHJ1bmsKKzQ1ODAxIDU3Mzk4ZWI5NzhjMjU0ZTY3MGE3MDJjOThkYWNkZGQ5ZmQ5M2U4MTIgbGVnYWN5LXRydW5rCis0NTgwMiA4NDY5ZDNkOGQ0ZWRiNzQ2Zjk5NWY0ZjU2ZTFhMGRjMjZlMTQwNmQ1IGxlZ2FjeS10cnVuaworNDU4MDMgODg3M2QzMGExNDBmODQ0MGI3OTZiNzgyNGM4MTFlNzc5MzVmM2RkZSBsZWdhY3ktdHJ1bmsKKzQ1ODA4IDVjMjI3N2EyOTRlYTQ1ZTNiNGMwZjIxYjBlMWU4YzYwMTMyOGQwMTMgbGVnYWN5LXRydW5rCis0NTgwOSA1MWI2ZjhlMDQyZGZiZjliZjU5ZjM5ZGMxZWQ2ZmJmOWEzMTY1M2RhIGxlZ2FjeS10cnVuaworNDU4MTAgM2Y1MWZmZDVkOGJmNzdhYTkyZmJlYjA0OGQ4MzViODk2NjI0ZTMwOCBsZWdhY3ktdHJ1bmsKKzQ1ODExIGY2MjZkNTJmYWJmMDQ0YzNhZDg5MDNiMDc2MTllMjYxMGFkMDFkOWQgbGVnYWN5LXRydW5rCis0NTgxMiA0NjVmNWIzYTAyMzQ4NGEzMzU4Y2VkNGEzZDg1ZWQ0MWVmOWNjMjY5IHAzeWsKKzQ1ODEzIGFjYWYyNzYzOWE0MTFiZmJjZjBhNGY1Mjk5NzM2Zjk2NTNkZmM3MGYgcDN5aworNDU4MTQgNjE0YzkyMTcwN2Y5NTRhNmYyNGE4NWQ5NDFmZmRhYTcwMDQ2YWZkZSBsZWdhY3ktdHJ1bmsKKzQ1ODE1IDJhMjg5MTU2MTZkNTAxYmFhNWM1OTFmMzhiZWIwZTM3MDc2NDAwOTkgbGVnYWN5LXRydW5rCis0NTgxNyAzMmExODdmM2Q1YmE5MzZhY2MzZjAxYzM4OTUyYTI1MmQ3YjQ5MGQ1IGxlZ2FjeS10cnVuaworNDU4MTkgZTRlODQ4MjE0ZDIzODUxYmQzZWI0ZWNmYmMzNTg3NGNmYzE5MmZiZSBsZWdhY3ktdHJ1bmsKKzQ1ODIwIGFiNTNhMzc4ZWRhOGY5YjM3MzNhZGYyMWRkNTYwN2NkNzU2NmRlYzYgcmVsZWFzZTI0LW1haW50Cis0NTgyMSBmY2M2MTgzNWM2YWM4ZTZmMzk4NThjNDMzODg3YzU1NDhjZTc4Y2JiIGxlZ2FjeS10cnVuaworNDU4MjIgNjlmMDQ1N2MxN2JiMTgwODU3ODU2YmJjZTRjZDAxYTkzZjg2YjMxZSBsZWdhY3ktdHJ1bmsKKzQ1ODI0IDhmN2FiYzJiYTdkMGEyMmQ1ZjMwMmEzMzc2NmEzZTgzNmNlMTJlZjYgbGVnYWN5LXRydW5rCis0NTgyNSA5YWJlYWI5NmFmNTcyMzZkM2FmZGRiMTdhMzdlMGE2NDE5NmJhM2JhIGxlZ2FjeS10cnVuaworNDU4MjYgN2NjN2M3YTEzNjk3YmNmMDJiZmUyNTJjMGViMDVjNDc1N2RiY2NlYyBsZWdhY3ktdHJ1bmsKKzQ1ODI3IDgxZDkxZmY4MDAzYjk5NDNiMWMzNTdhMjYzOTBjMDdlYzAwN2ZhNTAgbGVnYWN5LXRydW5rCis0NTgyOCBmODk0MTA0NDgwMWNiZmIzZGY0MzI1MTdkOWZkYjkwOGE4MzQ1YjI0IGxlZ2FjeS10cnVuaworNDU4MjkgZmM3YjYxODFkMDllYWUzMTdkOTJkYzQzYTAwNDIyZmQzODVhNTM3ZSByZWxlYXNlMjQtbWFpbnQKKzQ1ODMwIGY2MmJkNTExOGM3OGNmMzQ1YjY4MzhiYzA1OTQyODQ3M2Q0MWIzMWYgbGVnYWN5LXRydW5rCis0NTgzMSAwNzM2YjI1YzU3YzU3NjgxM2NmMDNlMTcxMzMyZDU5ODRiMGQ3Y2ViIHJlbGVhc2UyMy1tYWludAorNDU4MzIgMTM1YjE3Nzg4M2MzNDI1YmVhNmViNGE1MWYxNTViZGIxZWYzOTBjYiBsZWdhY3ktdHJ1bmsKKzQ1ODMzIGI4NTA3ZGVkNGQxNWNjMzhhODg3MzVjY2Y2ODhmNTg2M2ZkMThiODcgbGVnYWN5LXRydW5rCis0NTgzNCBlZmVlYmM4NzcwZTVlNjIxYjFmNDI1ZDgxMGNjNTY1NmIyOGZhN2JlIHJlbGVhc2UyNC1tYWludAorNDU4MzYgY2E2YzkxNTMxYTk2Nzg3MDQwNTcxZDRjNDVmZmUzODAyOTdkZGQ3MyBsZWdhY3ktdHJ1bmsKKzQ1ODM3IGNmMTlhMTIzYTVkOWFjY2M2MjRmMTcwY2U1Mjc0YmVmOWY1ZmFiODIgbGVnYWN5LXRydW5rCis0NTgzOCA5Yjc1YWQyMzZmMDAwMDgwZDZhYzNiZDA4ZWEzZDQ0OTkyOGJjNzBkIGxlZ2FjeS10cnVuaworNDU4MzkgZDc2YjlhYTcyMjlmYzY5NjE4NjIzZGRkNGViMTAwYjhmMDNjY2UxZiBsZWdhY3ktdHJ1bmsKKzQ1ODQwIGVlOThlY2YwNTc3M2E3MDcxNzdkMzM1NTFmZmVjYjhmOGU0OTUyZmMgbGVnYWN5LXRydW5rCis0NTg0MSA2MzUxY2QwZjdjMjg1ZjkyNzlhZGQxYjU1ZGE2ZmQwNzI5NjcxMWYzIGxlZ2FjeS10cnVuaworNDU4NDIgZWQzMzVlNTJkMTcwNTQ5NGZjYTcwNzY0MzI2ODYxYWFiMDlmYWIxZCBsZWdhY3ktdHJ1bmsKKzQ1ODQzIDdiODNiNjhiZThhNjdhNDVhYWRmNjAyMGQ5MjE4MjFkNDcwZDQ0OTUgbGVnYWN5LXRydW5rCis0NTg0NCAxMjhjMDA2MWI1YmIyNmIyOWViZDUzNjA2M2Y2OWYzMjFhZTExODBmIGxlZ2FjeS10cnVuaworNDU4NTAgYzkyMDJmMWM1NmMyNzRlMzAxNzc3MmUyYjg1MTEyZDBjNGQwYThlOSBsZWdhY3ktdHJ1bmsKKzQ1ODUyIGIxY2JjNjA1YmVjOWNkZjlhNDZmMDNkZGU4N2MyMjM0OTVjYWY5MWIgbGVnYWN5LXRydW5rCis0NTg1MyA3MjhjMTZmMTYyNjcxZjM0MWI3OWMyYWU3NTE5NGY2MjVkZTI1NzIxIGxlZ2FjeS10cnVuaworNDU4NTQgYjhlYzY4OWNiMmZiY2M0ZjZhY2JkMWMwZDllMWM3NWM5MTZkY2Y3OSBsZWdhY3ktdHJ1bmsKKzQ1ODU1IGI3YjVmMGIzNGQyNWNjZGQ3YzFlMWExZmM4NjM3MzBhZDRhNGM3MWUgbGVnYWN5LXRydW5rCis0NTg1NiA5YTE3YjgyZWFmYzk0MTI3YTM3ZmFjOWZmMmNiMmRjYjJlZGJhOWM4IGxlZ2FjeS10cnVuaworNDU4NTggYmIzZTBjODg5NjMyNWE1MTMwMTFhMzcwNjAyMzEyMzQ4YzRlMWExNCBsZWdhY3ktdHJ1bmsKKzQ1ODYyIGE4MTJkMGZhZTc0YTQyOGExNzJlZTBmYWE1OWU5OGJiOWFjODA2NTMgbGVnYWN5LXRydW5rCis0NTg2MyBmZTI5Mzk4ZjQ4Yzk4ZGZlMGI4Yjc2ZmIzOWNmMTg5MzljM2U4MDVlIGxlZ2FjeS10cnVuaworNDU4NjQgYWM3MjkwMGUxOTE5YTFmZWJlY2E2NmZhY2E4ODM3M2QwYmE0NDgzZSBsZWdhY3ktdHJ1bmsKKzQ1ODY1IGI3MDZiMTAwYzhmYzBhMDM4NTEzZjEwNWY2ODYxODJiYTAxMTI2NzcgbGVnYWN5LXRydW5rCis0NTg2NiA4YWFmNTdiY2NiZjhiNTY4M2E4YWRmNzg2YjM1MzdhOTBlN2RhNjZlIGxlZ2FjeS10cnVuaworNDU4NjcgNjY4NzViOWM4OWY0NTQ1ZjU0OGRhMzBmMzc1NWUyMzQ5NDIzZWM0ZCBsZWdhY3ktdHJ1bmsKKzQ1ODY4IDY2ZjFiM2ViYWVlM2EyMTlmMjkxMzMyM2ZlNmU2ZjVmODdjYzkzODQgbGVnYWN5LXRydW5rCis0NTg2OSA2ZTBiMDUzYzZjZjdiMTc2YWI1ZTFiNmUyYjY1MTdjYzFiMTJjM2JlIGxlZ2FjeS10cnVuaworNDU4NzAgMGZhM2JhZDQ4OWRkNDc3ZmM4ZjM4OGEwMzNhOTRmZmZhYzQ2Yzg4MCBsZWdhY3ktdHJ1bmsKKzQ1ODcxIGJjNDhlNmIxZTY1NDU1YzdlZTkwMGM4MDc0NWMwMjAyOTkwYTYzMTIgbGVnYWN5LXRydW5rCis0NTg3MiA2YTE0NjliMzlkNzM3ODUzYmNkMDQxNDQ4ZThkZTVmNDc5YjNjN2ExIGxlZ2FjeS10cnVuaworNDU4NzMgZWIwMzU2MmRmNGE3OTY4NDdjYTNjY2YwNDZmOWQxNWI4ODBiNWRiZiBsZWdhY3ktdHJ1bmsKKzQ1ODc2IDU0NTdhYjlmODU5OTE3YjA0YjFiMzljZjU2ZmRjMWQzZDhkYzc0ZTIgbGVnYWN5LXRydW5rCis0NTg3NyBlNWQxMWRmYjJkMDhlYzZjMWY5NTNhODA3YmQxN2Y3NmU4YzE0ZWRlIGxlZ2FjeS10cnVuaworNDU4NzkgMjNkNGFjMzNhYzE2ZTc0YzIxZGVkOWQyYjk5NWNhNTBiMmRkNmM3NiBsZWdhY3ktdHJ1bmsKKzQ1ODgwIGMwNmE2MmYwNTg5ZmJhNGE4Mzg2NDdhYzI1NTE2ZTkwNWY1NDIxNjIgcmVsZWFzZTI0LW1haW50Cis0NTg4MSA0ZjcyYTQ5ZDcwYzgwNWMwZjk3MTc2ZTdiMjliZDNiZTk3ZGMxMDgyIGxlZ2FjeS10cnVuaworNDU4ODcgNmJjMWU4M2E5N2E2OWZiODk5YWE0ZGVhNDcwOWY0ODRlYzU0NDI1NiBsZWdhY3ktdHJ1bmsKKzQ1ODg4IGU5MmE4YjhlZWM3M2I4M2NiNTY1YmU5ZmE5NDIzNjI3YTc4YzgwMmIgbGVnYWN5LXRydW5rCis0NTg4OSBhMDZiNjlmOGMyNzZhODk0MWRiY2UyZWUyMWUzMGU2NDljZTJjNWI5IGxlZ2FjeS10cnVuaworNDU4OTAgODhiODlmOTZiOTdmZjA3OTc3ZjRjZmZjODZiYjU3MTg4MTMxY2M1NyBsZWdhY3ktdHJ1bmsKKzQ1ODkxIDhjMzgzZWY3ODE5ODQ5YThjOGIwYmNmYTFmYWY5YzFmYmY4NDUyZjAgbGVnYWN5LXRydW5rCis0NTg5MiAwMjUxOGNmMTdhNjZlYTc2MTdhN2MxM2RmZDM0OTZjYjhlZTEzNjJkIHJlbGVhc2UyNC1tYWludAorNDU4OTMgMjk0MjUwODZlOWFiNjI4YjMxOTI0Y2Y2Y2IzMjJmNWJkZjJmNjNlOSBsZWdhY3ktdHJ1bmsKKzQ1ODk0IDIyMGFkMjAzOTRkZjBiMzFhNGRlNTlmMTAyOTJiODI5YmFiMGZjNGIgbGVnYWN5LXRydW5rCis0NTg5NSA5MWE2NDM2ZjBhNTg0ZTEyZDRhNmJlMzg0ZWQ3YmRlODUwMDA1ZTdmIGxlZ2FjeS10cnVuaworNDU4OTYgY2UyYTdmYWRjMmIwNGUyMzg4ZTA4OTQ2NmZlMzAxOGM5ZTU2ZjdlMiByZWxlYXNlMjQtbWFpbnQKKzQ1ODk3IDBlN2QzNGFhZWE2MTMxZWQ5N2EwYzFiODY2YjJlNjE5N2VhOGM5NzEgbGVnYWN5LXRydW5rCis0NTg5OCBiZTQ5NjQ1ZTM5ODQxMGE2NmI5MmVmOWIxMjkwNTBhODQzZTViYzAzIGxlZ2FjeS10cnVuaworNDU4OTkgYjU4Zjc1MGQ1MjEwMWZlMzc3Nzk1MTc4MTljM2Q4ZGIyZjA0Y2I4MiBsZWdhY3ktdHJ1bmsKKzQ1OTAwIDc5YzhhMmE5ODhjYjM5NDQ3OWFhMmEwNjE1MmZiMDBjMjI3OWM3MDkgbGVnYWN5LXRydW5rCis0NTkwNSBhNmExMzU5YWFiODRkZjUzMWQ3ZDAzN2E3ODQyYTgxY2M4YWNlZDhiIHAzeWsKKzQ1OTA5IGJlMGNjYTcwY2NhYWRiMzExNTJlNTUyNWM3MWJiY2EwZThhNzg0NjAgcmVsZWFzZTI0LW1haW50Cis0NTkxMCA1N2JkN2M3ZDkxZTNhYmUwMjFhZTViMzA3YjZhMzYxMWZlOGQxZmJhIHAzeWsKKzQ1OTEzIDM2MTgxMjZjNjMwNGM3MWE4MzM4MTNlMWVmNDU4YjQ0ZDRmMzAwNDYgbGVnYWN5LXRydW5rCis0NTkxNCBjMDFjMzM3YWQ2MTg4ZWZlMDI1YTkxNjJkMTE4NDhlM2FkOWZlZjAyIGxlZ2FjeS10cnVuaworNDU5MTUgYTU5NmVkOTNjZjQyNjRiMjdkY2RmNDY2MjAzM2JlMTc1ZGQ3NWNmMSBsZWdhY3ktdHJ1bmsKKzQ1OTE2IDc0MWZiODNiNGVhYjQ3NjEyZDkwOGE3MDIxOTljYzFhYjlmYjg5YmIgbGVnYWN5LXRydW5rCis0NTkyMCBjMzM0MmQ4OGFlZmQ0Y2I2Nzk3YjkwZDc1ODNmNWIzYjljYWMzZGQwIGxlZ2FjeS10cnVuaworNDU5MjEgMmM1ZTc0YzY0NWUyOGM5OGRjNjU4YjNiZWNjZjhlMjljYzYwNTA4ZiByZWxlYXNlMjQtbWFpbnQKKzQ1OTI0IGMzYTM2ZDQ1NmRlYTBiZjMzYjQ5NTZiZTRhYTU1ODkwMTNmOTNiNGYgbGVnYWN5LXRydW5rCis0NTkyNSAwZDg3OWJmZjI1ZjY2YzcyMGQ3ZDhhNzk1OTFmYWVmNzdlZDk1OTY2IGxlZ2FjeS10cnVuaworNDU5MjYgOTBkZDU3ZmNkMjRlMTJiYWQzMWQ2MzA2YWEzZDk0NTY5OTBjYWRhNyBsZWdhY3ktdHJ1bmsKKzQ1OTMxIDRjMzkxOGYyMzAzYjVhOTViZjdkYTgwNjVlZDg4MmM3OGZkNGY4NDUgbGVnYWN5LXRydW5rCis0NTkzMiBlNzAzNTI3NTI0NWJhZTM2NmYwNTVlY2RhOTNkMjc1YzlmNDc3ODIxIGxlZ2FjeS10cnVuaworNDU5MzQgZDAxNzAyNzZjNWRlZDMwNGJkNDQzOGYwOTYwMmNjOGY0NGRiNDM4OSBsZWdhY3ktdHJ1bmsKKzQ1OTM2IGRkZjAwNjlmNjFmOTJkN2VkNWQ4YzZiNjFkNjRmNjhiN2VlYzY3NTMgbGVnYWN5LXRydW5rCis0NTkzOCA4MjI1YWVlOTE5MDQ5NTA5M2FkODU4NjI3M2VjYmU5N2VkZjYzMDZhIGxlZ2FjeS10cnVuaworNDU5MzkgNmQxZTI0MGM5MThjMTJmMDc0Y2M4YTQzMzA4MWVjNDRlZGZmOTQ2OSBsZWdhY3ktdHJ1bmsKKzQ1OTQwIGI0NDg1OWYwYjMwOGJjODQ5NjEzMmIwNDRmNzc5NDYyZTNjY2U2MDAgbGVnYWN5LXRydW5rCis0NTk0MSBlYjQ4NzljMDg1YWFhODdmMmI5Njc5MGYxNDgxNGFhNzJhZTJjYzA3IGxlZ2FjeS10cnVuaworNDU5NDMgY2UwYjQ3ZDNlNWQxMGM3MDI5NmFlZDk4NTE5YzMyNDgwOTgyN2U2ZiBsZWdhY3ktdHJ1bmsKKzQ1OTQ0IDA2MDZiOWMwOGFjMjRmMWRkYjc4NTdlNTJmYzNmNmU4Zjk3ZTM0NDkgbGVnYWN5LXRydW5rCis0NTk0NSBmM2E1ZTE1M2MzMjk0OWI4MTE3MTY4MmJmZWU0ODVhZDIyMGJjYjA0IHJlbGVhc2UyNC1tYWludAorNDU5NDYgNGM5OTIyZDhkY2RkMTA3ZmMxODk4N2E4NmE2ZWEzYzA5YTk4NTQ1ZiByZWxlYXNlMjQtbWFpbnQKKzQ1OTQ3IGYxZTI0NDUyZGJiYTdiMWFlZDQ2OWJmYTA1ZTU4YmE4ZDA1ZmQzNWUgbGVnYWN5LXRydW5rCis0NTk0OCA4ZGEwOGQ4NWZjYjFlNjkyZTEwMjc3MjAwMDdlYmYyNjc2NGZhM2Y4IGxlZ2FjeS10cnVuaworNDU5NDkgOTdkYjNkOWIxNDU4MDA5MWM0M2U1ODFiNGI3OGM1N2M2NzQzNTUxZiBsZWdhY3ktdHJ1bmsKKzQ1OTUwIDhjODZjYThmMjY4Mjg4MDFkNzQ0OTYzNzBjMzJhNTgxNDY3Yjg0NjAgbGVnYWN5LXRydW5rCis0NTk1MSBlZWExNzZlNjdmMjI4ODRjNTU2OTY5N2Q4MTBhMmViNWI2NjYyMGFjIHJlbGVhc2UyNC1tYWludAorNDU5NTIgMTQ1NzMzNmQ0MzJmZTQ1OWJlYThjMDU0YjlkMTY3OTAzMzZjZGIxYyBsZWdhY3ktdHJ1bmsKKzQ1OTUzIDQyNzI4Y2IxOGVhMjU2MGMxZGE2NWQ3NmZlNTIxNDMzYTY3NDJiNzIgcmVsZWFzZTI0LW1haW50Cis0NTk1NCBmNjFjODkyY2FkYWM5Nzc0MTU0YTRkNDlmZDYxYzk0OGI3MGY4MTllIGxlZ2FjeS10cnVuaworNDU5NTUgN2ZlNDlkYmNiYmRhYjFjOTU5OWU0ZTVkNjU2Mzk3YjgyMmJiMjc2ZSBsZWdhY3ktdHJ1bmsKKzQ1OTU2IGYyNmZjM2FlZWY5NmNiNDc4ZWI4ZmViZWRlNWE3MzAwNGVkOTljYmQgbGVnYWN5LXRydW5rCis0NTk1NyA2NzAxMzA5ZWZhNzY4NmU2MDI3MjJjZDM1MTc0MzdhZGUxMWY2YjQwIGxlZ2FjeS10cnVuaworNDU5NTggODZhMDUxZDIyNjRkMmEyOTA1ODJiNGVmMDhhMjVmNTg1ZWVjMTE5NCByZWxlYXNlMjQtbWFpbnQKKzQ1OTYwIDlkNGZjYzM5MDIzNmU0YWI1ZDgxMDA1ZDUyZGJlY2E3NGEyZDMyYWQgbGVnYWN5LXRydW5rCis0NTk2MyA5YTYzN2JmNGRmNDI3YWJhM2FmY2EwNzYyYzMyMzFlMGQwZTY5OGQ2IGxlZ2FjeS10cnVuaworNDU5NjQgZTJlZjYwZmVjM2RhZDkxYTZkZjFlNDUxNGIwMjBlNTdmNTBhNzFhMiBsZWdhY3ktdHJ1bmsKKzQ1OTY1IDQwODJkMWExMTkxN2MxMGYyMDkzZDgyYTQ3ODhkZGJiY2UzNGVhMTkgbGVnYWN5LXRydW5rCis0NTk2NiA4ZjQwOGFhMmE3ZWZhNDdmNGE1YjA3MDQ2ZDVhZjRlMTA4NWU5NTUzIHJlbGVhc2UyNC1tYWludAorNDU5NjcgMmE5YjQ1ZGMzMTE0MWQ5ZWJiNDE1OWY3OWVkMDYzMDllYmFlNGJmYiBsZWdhY3ktdHJ1bmsKKzQ1OTY4IGIyMWJlOWQyMzQxYTkwNzI5NzQ4NTNmZGVkOTU4MDRhM2FlYWExM2QgbGVnYWN5LXRydW5rCis0NTk2OSA3ZmM5M2Q5NTMwYmY2MGRmODUyODI2MDJkMzU0NDAwNDI2ZTBhMWQzIGxlZ2FjeS10cnVuaworNDU5NzAgYzRhYTU2ZDdhNWMxMDYzOTQzNjc1YjkzOGRlNGFhNjcyZDY2M2EwYyBsZWdhY3ktdHJ1bmsKKzQ1OTc0IDVlMzU0M2I3ODMzN2JhMzc2YjIxYTljYWI4YTYyY2IyN2M5NTcyYjcgbGVnYWN5LXRydW5rCis0NTk3NSBiZjM3MzUyMDY4NzFiZDI3ZTlkYTFjMzhhY2UwODZkYzU3MDBiOWQ1IGxlZ2FjeS10cnVuaworNDU5NzYgMDc5NTM3MmE4NGFiZmUwZGM2MjViYzBhN2RlYmQzOTc3M2MxZjJlMyBsZWdhY3ktdHJ1bmsKKzQ1OTc3IDc4OTBmNmI5MmMxNDljZjliMTk2NGFhOTFlMGEyNWFkMzdjMzM3YzkgbGVnYWN5LXRydW5rCis0NTk3OCA0ZGUzMTU1ZTE5MmJjOTkwOGY2ZmRkYzhjODNmNmJkMTcyYjllYjU2IGxlZ2FjeS10cnVuaworNDU5NzkgY2Y3OGY5YzQ3OTBlZTEyOTlhOTRjZDNkNTEzNzgzZjg4ZWVkYWJkYSByZWxlYXNlMjQtbWFpbnQKKzQ1OTgwIDU3NGZmYzRkN2JmNmJjNzc3NDA1YmYwNDRhZjVjZGY2YmQxZDI2NTYgbGVnYWN5LXRydW5rCis0NTk4MSBiYjYwOTI5OTU0MDk5MzUxMzZhMDJjOWQwZTlmYjgzZTgxN2UxZGFlIGxlZ2FjeS10cnVuaworNDU5ODIgYTc5N2VmYjRlN2Y4M2ZlZjIzNTMzYmI0YzA0Nzc1ZTY3NTMxYjMzOCBsZWdhY3ktdHJ1bmsKKzQ1OTg3IDg1YzgyODg3ODE4OGIzNWRiZGUwNGRhNTc0YTgyOTYwY2NjYzE3ZWMgbGVnYWN5LXRydW5rCis0NTk4OCA4YjYwMTdjOTM3YWMyN2YwMDg5M2FhMWU5OTRhOGU3ZjE2NmI4ZGFkIGxlZ2FjeS10cnVuaworNDU5ODkgNTI1NjI0ZTk0ZTc4YWU3NmRhOGU4NTMyYWEzOTcxYzJiNGRiYzhmNyByZWxlYXNlMjQtbWFpbnQKKzQ1OTkwIDMyNDcyZWE1ZjNjZGI2MDhmMzY3MDJkZmJiMmRlZGIwMGUxNTliMmMgbGVnYWN5LXRydW5rCis0NTk5MiAzODBkYWQzOTU1OTkxNGY5ZDU0NzZhZmRmZDJmODA4NDQ5MDlhZWZlIGxlZ2FjeS10cnVuaworNDU5OTMgZWJkNTczMjEwZTI1MDM4Y2U0NGMwNTA2OGUxNjk4NWZmNWQ2YmI3YSBsZWdhY3ktdHJ1bmsKKzQ1OTk0IDRiZGYyN2JkNzNkMjJhZDVlNzc0YjI2MjBhN2EzZWU4M2Y0YTA5ODEgbGVnYWN5LXRydW5rCis0NTk5NSBjZGY4ZjUzMzQ0MjY5ZTkyMDRkNjU5YWQ3NjdjMTRiODFhNDhlZDIwIGxlZ2FjeS10cnVuaworNDU5OTYgNjc2NDkyYTkzYzhhN2JmN2RlYzU3YjFmNmE5OWQyMzVmMDdiMTczMCBsZWdhY3ktdHJ1bmsKKzQ1OTk3IGVmODJjNWQwMTQ2MDdmYmI1OGZjMGMxMGE3OTVmOTU1Yjg2NDU3YmUgbGVnYWN5LXRydW5rCis0NTk5OCBmMjUyYzZhZTBjNDI2NDM2MjZjOTQ2MjVhNWU3MDYwNzU0NTEyY2VkIGxlZ2FjeS10cnVuaworNDU5OTkgMjliNzM2ZjA3M2EzNWMzZmI4ZTQwNDAyMTY3ZmFiNTNmZmEwZjRiNCBsZWdhY3ktdHJ1bmsKKzQ2MDAwIGFiNzA0Yjk5ZTE1MGNmMDM3NTllN2VhNmVmZWJjZGNkNjgwMzNiZmYgbGVnYWN5LXRydW5rCis0NjAwMSBkODM1NWNjY2ZmNGFjZmMyOTdjMjYwODJmMmNjZDNmNjIxODcyY2E3IGxlZ2FjeS10cnVuaworNDYwMDIgZmVhNWQyZmQ5YjhhNDgzYzcxMTk2OGM4YjcxMGYwNWEzOTg0OTE5ZiByZWxlYXNlMjQtbWFpbnQKKzQ2MDAzIGU3ZDMwZDc1ZGFlN2MyYmZiNDA4NTg4NDA4MjYzNmU3NGY4NDEwM2MgbGVnYWN5LXRydW5rCis0NjAwNSBhZDhiNzZlOTkyNjEwNTJiMTkxNmQzMDI3M2M2NzNlODk1MTUyZDI3IGxlZ2FjeS10cnVuaworNDYwMDcgY2ExMDUwN2E2YWZiZjNjYzdiNmZiYzMyNzFhM2JhZWU2MThjNTQzNiBsZWdhY3ktdHJ1bmsKKzQ2MDA5IDBhZTRiYjc0ZTc4MWE4MzRjM2E0ZDkyM2IyNjFlZDBlNjdiYzhhY2UgbGVnYWN5LXRydW5rCis0NjAxMCAzMzc5YWQ2NmIwZTA3M2E0NWZjNzUxZWFiNTU5YzNkMDc1YjFjMTM2IGxlZ2FjeS10cnVuaworNDYwMTEgM2I1Y2Q3YzY2ZGEwOTA5Nzg3NWJkZDk3MDk5YzhkMzA3ZjI1MTQyYSByZWxlYXNlMjQtbWFpbnQKKzQ2MDEyIGQ2ZDg3OWFmMzZkMzRhNWM3MGEyMWFhYTc2NTZlY2E1NTgyZTYxYmIgbGVnYWN5LXRydW5rCis0NjAxNSBmODM4NWQ2YzhmNWVlMTYwNDUxZTc5ZWY5OTNlYmU5MWJlNzA1ZGVjIGxlZ2FjeS10cnVuaworNDYwMTYgNmNmNDY2Mjc2M2ExYTI5M2M0NjQ0NmFkYmM3MDEwODhhMjAwYWI5OSBsZWdhY3ktdHJ1bmsKKzQ2MDE3IDM2NTYzYjEzY2U3OTJhNzJiYjBmODBhZTBkNTNhNzBjZmYzM2ZhNjkgbGVnYWN5LXRydW5rCis0NjAxOCBmOTEzNTA1MDA4MzQ2ZjQzZDE2ZGNhZTI5MDlmMmE5Y2MwZTVkMGI2IGxlZ2FjeS10cnVuaworNDYwMTkgZDZlYTdkNDNlYmZjMGFiYzc2MDI2NDVlNGUyOGJhMjljZmViMTIyYSBsZWdhY3ktdHJ1bmsKKzQ2MDIwIGFjNTA2ZTJkZjA0ZDUzOTZhNDk2N2U0ZTc4MzBhOWY1NWY0YmM4ODggbGVnYWN5LXRydW5rCis0NjAyMSAyMDRlYzM4M2I0NDVhYmYzOWJmNzUyZGFlZDQwYmIyNzgwNmRlYTI0IGxlZ2FjeS10cnVuaworNDYwMjIgMzAxODhjNTIzYmM1NThkYWQwNzdiMzVkY2QyOGJjN2E5NTEyNmEyNSBsZWdhY3ktdHJ1bmsKKzQ2MDIzIGFhZTJmZjMzZTI3YzM4NTQwZGFhNzRlNzFiMzkyY2RjNzBhZTExNTggbGVnYWN5LXRydW5rCis0NjAyNCBhYjFkYzdlMjNiZmU1MTM5ZTU2NDU3MWU5NjYwYjc2OWVhYWRmZDU2IGxlZ2FjeS10cnVuaworNDYwMjUgN2NhYTZkMzNhNGM2Nzk4ZDQ4MDYzNDFhMmE3NzBlYzFjYWZhYzQzMyBsZWdhY3ktdHJ1bmsKKzQ2MDI2IGJmYjc2YWU4MmM5MTIxYmUwODNhMzBhOGJiZTI1NTBiMDJhYzA1ZGIgbGVnYWN5LXRydW5rCis0NjAyNyBjMmUzYjVjMzZkZTQ1MmJkMGU0ZTc0NzJhZGEzMDQxN2E2MDdmMmYxIGxlZ2FjeS10cnVuaworNDYwMjggZmEzYzRlYTk5ZDk1Y2E2ZWRlZDFhN2Y4ZTUzOWM3OTUzODY3ODNiOCBsZWdhY3ktdHJ1bmsKKzQ2MDI5IDBiNDczMTA0OWI3MWNlODkwYmJiZWQzMzlhNzk3NmJiOTJkM2YxNDcgbGVnYWN5LXRydW5rCis0NjAzMCAwN2FiYzYyODQ4OTlkZmExZjBhMzU0MGY0MDIwZjY0ZDM0ZjE5NDEyIGxlZ2FjeS10cnVuaworNDYwMzIgYjczZjI0ZTIxYjBhYjY0YzViYjlkOGQ4ZjE3OGFiYWZiMDhhMGJiMyBsZWdhY3ktdHJ1bmsKKzQ2MDMzIGIyODZlZDQ1NDM5ZDY2MGJlMGM5MDA3NzAyYjIzNGM3ZWRkMjk1YzAgbGVnYWN5LXRydW5rCis0NjAzNCBiMzVjZGE1NWQ2MGM2YTE5NzA5NTdhOGFhYjc4Zjk2ODliNDZkYjBmIGxlZ2FjeS10cnVuaworNDYwMzUgNzNjN2FkNWU4N2RlYmE3OWY4NmRjODA0ZDEzNjE5OTY2ZTEzZDRiZSBsZWdhY3ktdHJ1bmsKKzQ2MDM2IDZmZWFhNDJlZmY2OWY0ZDUxZjEyZWIyZTdiMjg5Njk2YjBhYTA4ODAgbGVnYWN5LXRydW5rCis0NjAzNyA0MmQ2YmFiODgwNzlmZjYwZGUyMWIxNzc2MGJmZDQzOGRmZjhmYTU3IGxlZ2FjeS10cnVuaworNDYwMzggODFlMzg1YTY0MWVmOGIwNzAzYWVlYjg1ZjdmOWQ2ZjYwMmQ2ZjQ0NSBsZWdhY3ktdHJ1bmsKKzQ2MDM5IDRjYjlkYzBkYzNmOWViZDFiNTg2YmY2MGVkOTk1ZDIyNGE3OTdjYmUgbGVnYWN5LXRydW5rCis0NjA0MCBjNjRjZDI3MWFjZWE5YWZjNDU2ZDU3N2E1ZDE0YjBkNmE3ZjcxYTgxIGxlZ2FjeS10cnVuaworNDYwNDEgYzA3YTVjMjMwNGYzZmNmOTY5NzBjNzFkZGFmZjUwYWRiZDM3OTBkNyBsZWdhY3ktdHJ1bmsKKzQ2MDQ0IDIxOTU5NzJmNzM5MWQ0ZWM0MTZiYzhjZDVhNjQxZTdhMTdkYWE1ZGYgbGVnYWN5LXRydW5rCis0NjA0NSAyNmZiNTYzODgxYzkzZDk4YmI1YjQwZDVkNTZiMjhmMTdjODY1YWNhIGxlZ2FjeS10cnVuaworNDYwNDYgY2JmMmQ1NjJlMzIyOTI5MTA0MGNhYTIwYWM4MmM5MDlkYTdlMjFmYiBsZWdhY3ktdHJ1bmsKKzQ2MDQ3IGM0OTA3ZDk5MGRiNWQ3MGE4ZTNkYjc1ODUyMjNmZWFkYTljM2IwNDMgbGVnYWN5LXRydW5rCis0NjA1MCAyODUxMTU1NGRmZjFmZjRlYmQ1MjlhNjQwMjk4NDUzYWRiY2RjZWFkIGxlZ2FjeS10cnVuaworNDYwNTIgYjBiYTRlODIyOWY3NzUxOTY0NzE0ZDc2NWFiNDA0MGFlYTNiMmQyZiBsZWdhY3ktdHJ1bmsKKzQ2MDU0IGFjY2RmMTEyNGJhMmVkZjNiZTI2MzJkZjc4MDE5ZmIxYTg0NGE3ODggbGVnYWN5LXRydW5rCis0NjA1NSAxMDk0MzdjNGNhYzQ3NjA5NzM4ODg4MTI1NjVmZWFiMTE1OTdmZTg0IGxlZ2FjeS10cnVuaworNDYwNTYgZjk2MTIxNzdkMDhkMWJiMzMxOTRjYWE2OWVjZjZlMTVkZmU4MjRiZSByZWxlYXNlMjQtbWFpbnQKKzQ2MDU3IGNjMDU1NmFkYzJiMGNiZjExN2M0YzVkM2QwYjQ1NTYyM2E1NzJiZjMgbGVnYWN5LXRydW5rCis0NjA1OCAyZDE4MmZjZmFiNmI5ODA0MGRmYWYwZjBhOGJlZGQ2YjQzMzZmZGNlIGxlZ2FjeS10cnVuaworNDYwNTkgYjRiZGJkN2IxZjVlZTc2MjcyOGNhOGExMGUwMzgxY2RlZjZhZGMwMyBsZWdhY3ktdHJ1bmsKKzQ2MDYxIGNhMWYxYzIxODllNzRmYWQwZGJhYjQ1ZDE2ZDE5ODEwMTk1YmI0YzQgbGVnYWN5LXRydW5rCis0NjA2MiBhNjllZTViYWQ5YjIzYzZlYjg2OWViNWI2NDNjMWVlNjMxOGQyNjc3IGxlZ2FjeS10cnVuaworNDYwNjMgZGFlMGU0YzM5MGU3NzIxNDViZmVkNWI4ODg2MmI0ZThiNDE4MmI2YSBsZWdhY3ktdHJ1bmsKKzQ2MDY0IGFhNjIwODU2ZThhM2Y3NWNhNjdmZmU5ZDkzYmRkZDA1NjFiNTE2ZTMgbGVnYWN5LXRydW5rCis0NjA2NSA5NTkxMGJjNjVmNmI5OTFmNDdjN2VjYzg2NzI5ZDlkOWE3MzRkNjliIGxlZ2FjeS10cnVuaworNDYwNjggMTA1NWQ2MjZlZDU5NGQ2MzhmMDQzMzEyNTcxZGE5YWMxYWQ5NzU1NiByam9uZXMtZnVuY2NhbGwKKzQ2MDY5IDg4MmI2MTJhNWZlOWNiN2EzNWM3OGZlZjM0MTA2ZGQzMTRjNTA1YjkgcmpvbmVzLWZ1bmNjYWxsCis0NjA3MCAyN2M4MDA1ODE3M2U4YTdhZjFhMmM2Zjg0MDBkODNiMmE0MjFiZTcxIGxlZ2FjeS10cnVuaworNDYwNzEgZmI0ZjBmZDdlYmE0ZWJlMzU3NThmZGRlYjI1ZTQzMDdiYzFlOGY4MiBsZWdhY3ktdHJ1bmsKKzQ2MDcyIDUxMjQxY2M5NTg4M2VkZWQ1YzhkNzVkM2Q4OTljYTRjNDI3MjEyMDcgc3JlaWZzY2huZWlkZXItNjRpbnRzCis0NjA3MyA3ZTE2ZmNjZTM0YTEzNTM5NTFhOTVjNmViMjQ3YjZjYzYxNGNlMDYxIGxlZ2FjeS10cnVuaworNDYwNzUgZDcxMGMyZGJhM2U4ODBjOTIwY2ZlODlkMDFmOTAxMzU4OGM5YzMwOSBsZWdhY3ktdHJ1bmsKKzQ2MDc2IGZlYjAwZGY5MTkyMjA2YzQ0NGM0MmNiMjk0NWM2NWE4Zjg3N2UyNzggbGVnYWN5LXRydW5rCis0NjA3NyBjY2VkODNhOTE1Nzc4YWY3ZDIwYTMyYTE1ODdmMjAzMWU4ODQ2MGJiIHJqb25lcy1mdW5jY2FsbAorNDYwNzkgNjA0YWY4NjdjNjVmYjgxMjUyNDgzZWY1ZGFlNGFkMjRhYTQ4YWNlYSBsZWdhY3ktdHJ1bmsKKzQ2MDgwIGNkMzRhMDg4MzA1MzZlM2IxNDQ3YTE1MzlmOWVkMzBhNTk5M2QxYTIgcmpvbmVzLWZ1bmNjYWxsCis0NjA4MSBlYzU0YzZkZjkwNDAyYmZlZjFiYTYxMDE5NTUzNjk4MGUyZjMyZWEzIHJqb25lcy1mdW5jY2FsbAorNDYwODIgMDJhMGM2OTI4YzUwYTdjMWM2OTIxYjlkMGVkMjlhNGY0YmEyOGE1YiBzdGV2ZS1ub3RyYWNpbmcKKzQ2MDg0IDAzNzNhMDc0MDA0YzJlYTlhNTQ5ZjJlZWYxYWE2MmQ4NTBkNTE3YzYgbGVnYWN5LXRydW5rCis0NjA4NSA1ZWFmOGI5NTg3ZDg2OTk0MWM0OGFiZDExNGQ3MDMyZmE2YmI2MDU1IGxlZ2FjeS10cnVuaworNDYwODYgODcyMDQyYTNiMTM0M2M5YTUyMmNkZTJmOGU4NWJmOGUxNmVkNTMzNyByam9uZXMtZnVuY2NhbGwKKzQ2MDg4IGZiODE2ZGZjZDAzMTU0MzBlMmJmZmU3NDUwM2IwYmI4MDAyYzFmMmUgcmpvbmVzLWZ1bmNjYWxsCis0NjA4OSA0Y2VhYmI1NDE0ZDVmMmEyNDMzZjJhMzg3NjQ5YWM2OTNmNTRmZDJlIHJqb25lcy1mdW5jY2FsbAorNDYwOTAgOWEyOGJmYTZmNzg3YzQ2MzczYThjYmJiMDBlZTc0Mjk1MWI2ODQ0MSBibGFpcy1ieXRlYnVmCis0NjA5MyAwMDQ1NmZjYTM3YzQyNDRjZGVkZGIyMWI4NDU1M2JmM2U3ZTcyZWUzIHJqb25lcy1mdW5jY2FsbAorNDYwOTQgMGRlOWE3ODlkZTM5MDRlNWM2OThhMDlhZGNhZDZiMWUyZWFlN2NmOSBsZWdhY3ktdHJ1bmsKKzQ2MDk1IDBiYTcxMWE0OTZlNmIwMDE5ZDAzNDQ0N2QyZmQ5YWU0ZDlkMjZmYTAgbGVnYWN5LXRydW5rCis0NjA5NiBhNjM3Yzc4YmYxMTk1ZWZjN2I1ZjRhOTQ3YmYxZTBmYjE4OTQ0MGEyIGxlZ2FjeS10cnVuaworNDYwOTggNmE2YzU0OTJiOWFkMmVhZDlhZWE4ZTMwMjM3Nzc3YWNmNDU4NzA0NSBsZWdhY3ktdHJ1bmsKKzQ2MTAxIGVlMjEzOTkzNWExZDNhZjUyZDUwMDliNzQ3MTkyODY0MDIyMTZmYzIgbGVnYWN5LXRydW5rCis0NjEwMyA1YjU4NzE5MGY0YzY4NTc3YTMyNTI5NjNjODU3NmM0ZjQzZjhjMTY0IGxlZ2FjeS10cnVuaworNDYxMDQgMzA3OGZkYjdjZjNkZjU1YzczZjQzYWZiNTMyNzk1MjdhOTkxMTZmZCBsZWdhY3ktdHJ1bmsKKzQ2MTA4IGI3YWFmMjFjNDc1NjQwM2YwMTgyOGE3OWJmY2IyNmI3MmZhM2FiOTQgbGVnYWN5LXRydW5rCis0NjEwOSA3NmJlZGY5ZWQyMmZmMjRlM2Q1NDM3YzY0YmY1MGIwZTk3NjAwZGY4IGxlZ2FjeS10cnVuaworNDYxMTAgY2EzNDUyMWJiMTNjMzgzN2Q2NTFmY2E5MGMxZGYwYzRiY2UyOTIyMiBsZWdhY3ktdHJ1bmsKKzQ2MTEzIDc1YmRkNDRmODVkY2Q0YWRhODZjZWIwOWUyZjcyYzQ0NzdjZjBlZGIgbGVnYWN5LXRydW5rCis0NjExNSA5YTkwNzUzZjZiZmJiMjFhOWQ3YmYyMTNlYzk3YjVmMTc0NDQ3MTI1IC4uL2JpcHBvbGl0by1uZXdzdHJ1Y3QKKzQ2MTE3IDY2N2EyY2FlNzllNjI2OTY1MTZiOTEyMDMxNmYwZjNmYjk2ZDRjNzYgLi4vYmlwcG9saXRvLW5ld3N0cnVjdAorNDYxMTggNTgzMTdkZjRkMzBiYmNiNDJkYWIwMzcyODk1NTg2NWI0NGQ0OGVhMyBibGFpcy1ieXRlYnVmCis0NjEyMyA0YjBmZjc4OGU5ZmRhZTBhN2RiYjZlZGNkNTI1NTI4N2ZkNGYzMjVjIHJ1bmFyLWxvbmdzbGljZS1icmFuY2gKKzQ2MTI1IDBmMGYwNDZhMjlmYmE0OGRjN2Y3ZTgzYWEzOGI0Y2NlOWRhODg5YWEgcmpvbmVzLWZ1bmNjYWxsCis0NjEyNiBmZjUwYWUxM2RiOWU2OGRmZjYwYjUzZDg1MmExNzE5MzQwNWRhN2ZkIHJqb25lcy1mdW5jY2FsbAorNDYxMjcgZWFhZTY5OTBlMmQxOGQyYThkYjQ3ZDY2YWIwOWI2MTk3ZTQ5NzhhNSByam9uZXMtZnVuY2NhbGwKKzQ2MTI4IDRiZDI5OWQwMGU0YzZmMTczY2JmZjM1ZGVmOTM4MGY0OTM5NGU5ZTggbGVnYWN5LXRydW5rCis0NjEyOSBiZjVmYjZlNzUyN2MyZmZlODUxYTk5ZDUyMGRjZWJmMzU3MWFiYzg4IGxlZ2FjeS10cnVuaworNDYxMzAgNDk1YTM0ZTU0ZDYwYTUyNzg1MmQ4NzA0YTQ0YWZhZDM5MjBmYmFmMyBsZWdhY3ktdHJ1bmsKKzQ2MTMxIDllZmNjZjU2ZDRlNzFmNGQ0NzNlZjAyYjQ4M2JkZjFkM2Y0NWQ5YmUgbGVnYWN5LXRydW5rCis0NjEzMiBhZjQ2YzdlZDA1ZWI3OTFiMWU0MzY1Yjc4MDgyNDJlYmZiZTI2ODQ0IGxlZ2FjeS10cnVuaworNDYxMzMgOWZkZDQzNDIxNmVmODJlZGIyZWY3YTVmYTdjMjY3ZjhjZjFlYmRjMiBsZWdhY3ktdHJ1bmsKKzQ2MTM0IDg5NWRhNDI0ODBmMWMzNTczNzA4YWMxMjg4ZGRmNDZmOGMxZTQ1OWMgbGVnYWN5LXRydW5rCis0NjEzNiBjMWNlMGI4MzE2MzY3MDNkMTNkODEwN2VlNmQ0MDUzMWMwZTRmYWNjIGxlZ2FjeS10cnVuaworNDYxNDEgMjc4ODJhOGU0M2E5ZTg5YjEwMzNiMjJhMzczMTdhMDRhZWU5ZTk4ZCBsZWdhY3ktdHJ1bmsKKzQ2MTQyIDZiNzlmZmZiYmUxZjA0MzNkMWJkNWFjMTUwZTg0ZTY0NTkzNTViYTIgbGVnYWN5LXRydW5rCis0NjE0NCBlZmI3ZTg3MjRlZWZhNmNlNzYwNDdhYTk1YWY0NGRjY2YxZmQxNWY1IGxlZ2FjeS10cnVuaworNDYxNDggMzM2MzFiNmIwODAxNDc1OTZlNjIwNWY1M2ViOWE5OWE2ODQxYTg2YiBsZWdhY3ktdHJ1bmsKKzQ2MTQ5IDdkODJjZGVkOGFiMTUyZWIxOTU0OGZmOTk5ODkzNzY2MTg1MDY0M2UgbGVnYWN5LXRydW5rCis0NjE1MCA3NGM4MmViYzRlNDQ5OTFjYjVhNWFkNzBlYTk0NzVmMzUzZjQ1ZjRkIGxlZ2FjeS10cnVuaworNDYxNTEgY2Y1YTkwNTdlZDNhOTIwNGViODc1NmRiOWM0NGQyMzViYTcwYWYzOSBsZWdhY3ktdHJ1bmsKKzQ2MTUyIGUwN2RjMTM0OGRhZDlkNGM0NDdmMmYyMjAxZWQ0Yzk3ZjUyN2QyZmEgbGVnYWN5LXRydW5rCis0NjE1MyBiOGJlZjVhMDdkZjZjY2ZiNTIxMmRlN2ZiN2MxMTI3ZmVjMDkwOWU4IGxlZ2FjeS10cnVuaworNDYxNTUgMWRjNTY1N2YxNzQ1M2M3MGE3OGJlNmNhNzZlMjYzZjM0ZGNkODU1YyBsZWdhY3ktdHJ1bmsKKzQ2MTU2IDMxNGQ2NjZjN2FkYmQxZDdlYzI0OThiMzE2MGZkMDc4NjE4YzkzODkgbGVnYWN5LXRydW5rCis0NjE1NyBkZTlmMWExNDA2MTE5MzcyZGY5ZWYyM2E0MjNkOGI2MmEwODY5NWU3IGxlZ2FjeS10cnVuaworNDYxNTggOWFlNjliY2FiOWY3MjIxN2JiYzE0ZWE5ZjllNTM4MzgxZjM3NjEwOSBsZWdhY3ktdHJ1bmsKKzQ2MTU5IDA2OTFmM2ZiMzljYWExZDBkOWE0OGQ0ZWVlNGVhODdjMTVjNjgxNzggYmxhaXMtYnl0ZWJ1ZgorNDYxNjEgMmQ1NWU5NzkwMDM1OGJiN2I0NTMzZGQwOTY3NzVkNzZjOTdmNmVkNCBsZWdhY3ktdHJ1bmsKKzQ2MTYyIDM1N2I1NDAzZTgxYWQzYzlmNjM3MjMzNzY5ZTljYTdhNGY2MWFkZmEgYmxhaXMtYnl0ZWJ1ZgorNDYxNjQgMDQyZWQ2ZjgwODQ3Y2MwNGJiM2E0MDEwMzNhMzdmZmMzOWQzZGE5ZCBibGFpcy1ieXRlYnVmCis0NjE2NSBhNTg5Yjc0NDE1YzAyMmY2ZTE2ZTcwMTRkYzZmNjNhNWE1NDIwODEzIGJsYWlzLWJ5dGVidWYKKzQ2MTcwIDg5YjJjYTUxMjMwNzIzZTJhOGVhMzBkMTY0NDJhZTBhMDJjMTM2OTAgcmpvbmVzLXByZWFsbG9jCis0NjE3MSAwYTk1NGY0ZTNlMzZhMmFjYzk3NjdiZDBmZDIxMTA5NDNlYzEwNTQ0IHJqb25lcy1wcmVhbGxvYworNDYxNzMgNDNiMTQ3NGI1MTJiYmI0Y2YwMDhmYWRiOGZjM2ZhMTk5Y2QzY2U0YSBsZWdhY3ktdHJ1bmsKKzQ2MTc1IDZkYTMxYzQ5ZWIwYTY4NjM2MWUxYTU2NWNiODg4ZjM3NDViYTZjMGQgcmpvbmVzLXByZWFsbG9jCis0NjE3NiAyMjk5NWMxMDllZmQ2N2U1YzA2NmVjYTY5Y2YzY2EwZDQ4NGYzYWQxIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYxNzcgOGFkOWUxNDQ4OWZmZjFmMWI1NThlMWI4YzQ0NmFjODlmNDVjY2QyZiBibGFpcy1ieXRlYnVmCis0NjE4MiBiNWIyNTY5NjZmZTkyYjQxNWI3NGI3MDMzZDg4ODU0YjBmYmY0NjMyIGxlZ2FjeS10cnVuaworNDYxODQgYjgyNWU2MjI3MzY2NmU2ZDJiMTEzOGQ1OTgyZTA5Zjc4MzllMDMzNyBsZWdhY3ktdHJ1bmsKKzQ2MTg2IGMyNmI5ZmRiNjVmYjNiNTc2YjYzNWQ1MzE3YjJmOWE0MTU3Mzg2YTMgYmxhaXMtYnl0ZWJ1ZgorNDYxODkgMjYwZDVhNmNlMzBmNGUyNTY5YWI4MDE3YzM2ODc3NTcxMmQxZmFiZSBsZWdhY3ktdHJ1bmsKKzQ2MTkwIGZlZjQ5NmFkN2Y2Y2QyYmRjMWYyNWQ3YWMwNWI0Nzk5OWJmZDNlN2UgYmxhaXMtYnl0ZWJ1ZgorNDYxOTIgNTFkNmUyNzE4MjQzNjhlZWVhZjJiYmM2ODQ3NzM5M2NjZmYwZTQwOCBibGFpcy1ieXRlYnVmCis0NjE5MyBhYWNlMzE0OGY3ZWJhZjAyMjkyNmQzZDI3ODc4ZWFjMWM2YTA5MjQ1IHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYxOTQgM2NmYWUzYTBlNjk1OTEwNzFkMTc0YjE0YzJiYWEyNzMxODlmMzUwYyBibGFpcy1ieXRlYnVmCis0NjE5NSBmN2E3NzQyYWVmODNiODU0MjMwNzRlYmUxOWVlMGNiZDExMWExYmE1IHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYxOTcgNThkMjBmZWI2ZTAzOWJiYTZmMTYxODkzN2Y4ZTM4MGUwZWE3OTY0OCBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MTk4IDY4NjBjMzZmN2RiNzUxNGY1Y2FkOWJlMzU1YjgyOGVkODY3Mjg4MzYgbGVnYWN5LXRydW5rCis0NjE5OSA5MWZlMWIwYWRiZjI2MTRmOWViMGJhOTc0ZjY4MWI0MjIxNTNkN2JmIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYyMDAgMzJiYTNhMGM2MDQwOTM4M2Q4ZGQzMzQ4NmIxOWVmNzE2MWMwZTA2NCBsZWdhY3ktdHJ1bmsKKzQ2MjAxIGIyNDkxZmQwYTRkYzZjNjdkYjRiMjlhYTVhZDlhZjIzMTQyYjg5YjkgbGVnYWN5LXRydW5rCis0NjIwMiAxYzVlZTk2MzFjNmI4Yjg5NjZiZTg1NzlkZTE1OWU2NWIwOWIyMzY1IGxlZ2FjeS10cnVuaworNDYyMDMgODhjYzdlNGYwMWZmNGQwZjU3ZjNjMmEwYWQxOThhOTZkN2NlNjNkYiBsZWdhY3ktdHJ1bmsKKzQ2MjA0IGJjZWE3NGIzNWQxZmVkZTBmNzkxN2MxNDNhM2NiZGE1NTFkY2FjMWUgbGVnYWN5LXRydW5rCis0NjIwNSA2NjMyMmZjYTkxYjQxYmJiYzMyNDNlYzBlYjNiMzdjMTA5ZjJhZGEzIGxlZ2FjeS10cnVuaworNDYyMDYgMDQzZTI5YTFlMzk4NWVjY2IwMTAxZmE2NTNkZTZkN2JhY2IxNGFkZiByZWxlYXNlMjQtbWFpbnQKKzQ2MjA3IDQ1Nzg4MTI4YTFiMTU0NDllYTZiMmZjYWJkODRiMDg3N2MxMmNlMTAgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjIwOCA2OTgxOThjYWJiYzVhYjc3NzUxYjU5MDljMTM5ZmQyOGRmOTQ2YmZmIGxlZ2FjeS10cnVuaworNDYyMDkgOGM1MTQ2YzUxZTJkZjAwZThkMjc4ZDEwZjBiNGNmZDk4OGM0YzBiYyBsZWdhY3ktdHJ1bmsKKzQ2MjEwIDc1ZTFjZDIyYjU2YmRkYzRhZjBlODAwM2Y4NDJhMGFjNDJjZmMwMjAgbGVnYWN5LXRydW5rCis0NjIxMSAzZGU3MDY0ZGZhNTY0MTRhYzQ1Yzk4MDhjNTM1MDQ1ZmFmYmMyNmNlIGxlZ2FjeS10cnVuaworNDYyMTIgOWJiNGMxOWU1NjEzNGM2ODkxYjkwZThhZDQ4YWI3ZTA5NDU2OWI5NCBibGFpcy1ieXRlYnVmCis0NjIxNCBhZDFlMjQzOGNmYWE1YmY0NWU0OGM5OTQ5NmU4ZWIwNDQ2NTk0NTc3IGxlZ2FjeS10cnVuaworNDYyMTUgN2IzZDRhODFlOTRkZTVhYWFhYzU2ZGQ4M2M3NGVhMjc1ZmJiNTAzMyBibGFpcy1ieXRlYnVmCis0NjIxNiBlMTViMTRjN2ZhMTRkNWM0NDAwNTJhZjExMDVjYjE5MTgxYWVlOWNmIGxlZ2FjeS10cnVuaworNDYyMTcgNjg4ZjI1NzU3MTA0MzMxM2ZhMTBhZjgwOGNiMWViZTA4ZGZjZDE5ZSBsZWdhY3ktdHJ1bmsKKzQ2MjE5IDQxNzY4ZGUxN2VhZDkwOTJjNDU0YWRmOTkxMGY5ZDhkYmI4NTJhYzcgbGVnYWN5LXRydW5rCis0NjIyMCA0YzBjM2VjZmZjYWMyYjMyMTg0M2IxOTc4OTRmMzAxMzMyM2ZmMjJmIGxlZ2FjeS10cnVuaworNDYyMjEgYmE3MTNkMzFkMDBjNjY5OTIxYjM3MzNjZjRjOWVkMDUxMTIwOGFhYSBsZWdhY3ktdHJ1bmsKKzQ2MjIyIDI5Y2NkNzcxMDQxM2ZlZmQ5ZWE2OTA4MjBhYmI0ZWIwNDAzYjMyZWEgbGVnYWN5LXRydW5rCis0NjIyMyA5ODZiZWUxNmJiNDQ1MWNiMWQ4MjM1YWI3ZWI1ZWM3OGUzNTBiNzA3IGxlZ2FjeS10cnVuaworNDYyMjQgYWU2YmJmMmYyYTQxMmI2YzQxZDE1NDRjMjBlNDI0MzczZWQ3ZDQ5NSBsZWdhY3ktdHJ1bmsKKzQ2MjI2IDQxODA5NDA2YTM1ZWJhMDRmOTNhZmI0ZjQ1NGFjYzA1ZWM5ODQxMGEgbGVnYWN5LXRydW5rCis0NjIyNyBkY2NiY2JiZDY3MjA4YTA3ODIzMGVjYzhhODAzYThkOTQ5MDYxMWVhIGxlZ2FjeS10cnVuaworNDYyMjkgOWMwOGE3YmRiYzMxMGE3NzQ2MDg0NTk5ZjZkY2M1OGVjZTNhYzBmZCBsZWdhY3ktdHJ1bmsKKzQ2MjMwIDE3ZWFhOGI1N2UwNTJmNTE0NjVjYjMzMWZhYmZjM2M1YTMzN2U3MWMgbGVnYWN5LXRydW5rCis0NjIzMSAwNTQ5NmRlZWJhNjRiZTcwNDAxMGJjNjFmM2M4ZTVkZTJmZDBiNWFlIGxlZ2FjeS10cnVuaworNDYyMzIgNmZjMWRjMDg2NDU5NDAyNTk3Zjc4MzAxYjk5NGQwZDlmNWFiNzE0MSBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MjMzIDNlNmQ3NzU1MmJlMzAyYmVhYzI1NjJkNGQ1Mjc5NzEyZTA0ZDY4ZjUgbGVnYWN5LXRydW5rCis0NjIzNCBjNWQ2MTk2NWNhZDQyMTlhOGY3YTAyY2UzYWIyZTNjYWNmN2Q4N2VhIGxlZ2FjeS10cnVuaworNDYyMzUgNWE2MzM2OTA1NmE3ZmU1ZmMzYzBiNWZmMGRlMTA4N2IxOTY1MDcxOCBsZWdhY3ktdHJ1bmsKKzQ2MjM2IGYyNzlkMDMxZjBjZWEzY2Y4YmM0ZjEwMThhZDlmYTlkMjVlOGQ4NjYgYmxhaXMtYnl0ZWJ1ZgorNDYyMzggNzRiZWIxODlmZDdlZTQ4NGNmYzJkMjMzOGFlYTI0OGFiZGJmNWViNiBsZWdhY3ktdHJ1bmsKKzQ2MjM5IDJhYTk0MDkzNTFkNjFmOTMxN2NlMTFkYTc3NTJlMDk2NWQ3MmRiM2IgbGVnYWN5LXRydW5rCis0NjI0MCA4NTBkNGY3NzE3YjhkZWEwZjliZGY1OTAwZTUwMjNjMTUwYWQ2Y2EyIGxlZ2FjeS10cnVuaworNDYyNDEgYzlkYzMwMGVlZTY4MmFjZTA1Zjc3YjQ4OGQ5MDM1MzY0NmVkZmZmMCBsZWdhY3ktdHJ1bmsKKzQ2MjQyIDA1MzI0YWE0NDRiZGUxYzBiNmYwZDI5OTRiYTNmZjUxODU1MThmODIgbGVnYWN5LXRydW5rCis0NjI0MyA0YThjOWY5YjY2ZTY4ZWM5NzA1YzIzZGJhNWFlYzBhNDlmYmQ3MGRhIGxlZ2FjeS10cnVuaworNDYyNDQgMWZkZjI5YTg4ZjBlZTBiMTNiMjg5MjFhNWZiZmIxNzUxYjVmMGNmMyBsZWdhY3ktdHJ1bmsKKzQ2MjQ1IDkxYzZjOTQ0OTBiMWM1NjQ0ZGFiNjhmODllNGM0MWNlNDMzOGU1NjcgbGVnYWN5LXRydW5rCis0NjI0NiAyZjE2ZTI3MTUyMjM1YjdmZjNjYjg3YjE1MTEzNTVmNzg1N2M1YTI3IGxlZ2FjeS10cnVuaworNDYyNDcgZWNmMmJmNDE4MmFkZjQ5MzNmMTJkMDY0Yzg1MWI4NmY1YTk3MDEwZCBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MjQ4IDY4YTM0OGM5ODY4ZGI4YjM1ODYxNWJiNDA0NzFiYWNhMjVhNTAyMWMgbGVnYWN5LXRydW5rCis0NjI0OSBjMDA2YzI3MjExNmZmYWE2YTgzMjdhMzljNGEwM2ZkYjRhODI4YzA1IGxlZ2FjeS10cnVuaworNDYyNTEgYzM1MDhhOTQxNTY4MzY1OTZhMDNlOGE5MDkzMjY0Y2MxZGNkODhiYyBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MjUyIGUxNmI0MTU3Njg2Y2I5YTQ4ODg1MmQ0NDgwZjIyNzUyNjE0ZjA5M2IgbGVnYWN5LXRydW5rCis0NjI1MyAzZDQ3N2QxNTg0MDFjNzFiMTM4NDNkNzA3ZmZhNmRiZGMxZmY3Nzc5IGxlZ2FjeS10cnVuaworNDYyNTQgZWEwYWQ0ZDRmZjhlZGYwYWNiOTg1MTllMmZlNWQzMGUxNWRlMmU4YSBsZWdhY3ktdHJ1bmsKKzQ2MjU1IGM3N2RhMjczNmZiMjY1ZDZhNDQ1N2FiMGMyY2U4ODUzNjg3NDE3NjQgbGVnYWN5LXRydW5rCis0NjI1NiAzNTg3ZWUzMTNiMDA2MTAyYWU2MTBhNTk3ZTg0ZTRlNzgyOTZhMGM1IGxlZ2FjeS10cnVuaworNDYyNTcgMDRmMzllY2JjNzNjNzZhNTVhZThjYzFlZjViNTNkZjViN2VmZDBjMyBsZWdhY3ktdHJ1bmsKKzQ2MjU4IGQzM2Q4YThiNTQ1ZWVlYjE1MGQxYjRjNTc4YzgwZTkzMmY0NGZiNDcgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjI1OSA4YTU4YWE0MGRjYzA1ZDU4MDQxYTZiNGJlNmYzOGQxNjQxYjMwZTJmIGxlZ2FjeS10cnVuaworNDYyNjAgNTU2NjIwY2Q3YjFkZTNjMTE4NjUxNTJkNzU5ZGIwMGNlYTU0NTNkMCBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MjYxIDlmODg0ZDM0YTBlY2Q0Yjk5ZTcyMjhkNTk4ZjViMjk1N2RhODQ2OTkgbGVnYWN5LXRydW5rCis0NjI2MiBlOWViNTI2YjcxMTE1ODBkMTgzZDhkZmQ3ZmNlZDhiMmJlNTZmYWRiIGxlZ2FjeS10cnVuaworNDYyNjMgY2VlYmU2Y2M0NTcwNGM4YzE4YmZhYTRkN2ExZDk4YTM4NWRlNDk3NSBsZWdhY3ktdHJ1bmsKKzQ2MjY0IGFiMDIyMTgxMTc3MTdiYjYxYjBhNzZjNGM1Yjg2NjFiYTA1MzMyYjUgbGVnYWN5LXRydW5rCis0NjI2NSAwODcyODcwMDk2NThlZWM3MDk5NTcyYWY1YjdlMjNkZjdkOWRiZGE4IGxlZ2FjeS10cnVuaworNDYyNjYgN2E2YWY0YTE0M2M2MmJjNWY2ZTRmZjg5MGM5OTcyMmU1ZTAwMzQ2NCBsZWdhY3ktdHJ1bmsKKzQ2MjY3IDhhOWNkOTk5NTM1ZDE3OTc0NjBjZTZjMDU2MGY4YjhjYzdhMjQzYTIgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjI2OCBlYjIzN2EzN2VhMDJkZWIzMzBlMmZlNWUxZjQzNzI5NzJiMDg5MDc2IGxlZ2FjeS10cnVuaworNDYyNjkgZGRjMjAwYWZkZTFhODMxYjFjMmJkYTczZjZhMTM2YTUyNDczZTkxYSBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MjcwIGQ2ZDU1M2I5ZDQ2OTc3ZmJkY2NlZDAxYWUyMTA0M2U1MWRmMDdjNzUgYmxhaXMtYnl0ZWJ1ZgorNDYyNzEgNDZkNzdiYjMyZmIwZGE4YjQxYTY1YzFiMjUwMWI0ZmExMWNlMTliYyBsZWdhY3ktdHJ1bmsKKzQ2MjcyIDVhMTQ3MzY1NTI3ZTUzODQ1YTBmN2FjMWEzY2Y2ZWU2OTgwOTBiYWIgbGVnYWN5LXRydW5rCis0NjI3MyBmOTMzMmFkNDI4N2E3ZjZkODYyNGQ5MDg3Y2IwMjE5MDFkNDczNWFjIGxlZ2FjeS10cnVuaworNDYyNzQgODJiNjgwODQ2ZGY4ODk3ZmY3MjhiY2U3ZDZlNjVkODAzZDQ5YjM4MyBsZWdhY3ktdHJ1bmsKKzQ2Mjc1IDgxYjY0MWRhNWM3OTUyYTdlMDQwNWY4M2I5NmU5YWYwMWExZTQwNzQgcmVsZWFzZTI0LW1haW50Cis0NjI3NiAxMDM1YTJiMzFlNmRmMjYxNmM5YTQyMDhlZWIxYWE5NGUwZmFkZjZkIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYyNzggOTU4ZjkxNjg0MjA5ZDAwYzMzZDdmZWZhNjhjZTQ2ZTlkMDNhOWNlZiBsZWdhY3ktdHJ1bmsKKzQ2MjgwIDE2NzBmZjcyNmU4ZmQ3ZDc0NzgyODYxNWYxMDA5YTI3NDUyNWM0NzUgbGVnYWN5LXRydW5rCis0NjI4MSAzMDkxYTc1ZWI1NjBjNTZkZTc3Zjg2OWZmZjdmZjE4MTkxNjk3MDJiIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYyODMgZGQ0MTczMWRlZTZkNGJkMmM4ZDA1YWI1NGU0NDQ1MTQ4ZDI1MmFjNSBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2Mjg0IDJmNGZiNjQxNGU4NzIwOGFiYzE4MzFkMzVhNjU2YjAyYjU3MTc4ZTUgYmxhaXMtYnl0ZWJ1ZgorNDYyODUgOGE5OWNkZWYwYzk0YWNiNTgxZjUzZWIyNWNjMjFmMTRiOTZmNTliOCBsZWdhY3ktdHJ1bmsKKzQ2Mjg2IGE2NTRkNjFkMzZkNTMxOTY3MWIxMGIwYjFlNTIxODkxYjE3OWNlNzQgbGVnYWN5LXRydW5rCis0NjI4NyA1MzgyYWFmM2EwZGFjNWZjZjJlNTg5ZDFmNDFmZmYwYjI5OTM2ZTZlIGxlZ2FjeS10cnVuaworNDYyODggYzhlNGIzYjM5Nzc0MzA1ZmFjOGE3YTUxMzk3NzZkOTdkOWEzZDVmZiBsZWdhY3ktdHJ1bmsKKzQ2Mjg5IDgzNWVhNTk4YTQwNjBiYTgxYjk4OGRjMTYzM2RlOTlkYzI5MjYyMGYgYmxhaXMtYnl0ZWJ1ZgorNDYyOTAgNjYxMGQ0YmU4ZmJkOTAyNTA1NDAzZDkyYzBiZmMzNjAwNzkzNjAzZSBsZWdhY3ktdHJ1bmsKKzQ2MjkxIGZlNjUzZTIyNDg4YzlhMGIwODMzMWQwNTRiOGYwZTk2MTBhNGIwNjEgbGVnYWN5LXRydW5rCis0NjI5MiA5MmIwZmM1NGQyMzAwZDA1OGQwMmJlNzA0ZTJiNzAyZmU5ZTcxNDgyIGxlZ2FjeS10cnVuaworNDYyOTMgNmQ4NjE1ZjlmMWNjYTk3ODM4NWI3OTYzOGJjODEyMzQ1YmZjMjI3NiBsZWdhY3ktdHJ1bmsKKzQ2Mjk0IDhkMjhlNjNlOGYyMTY2NDgzZjAwMmU1ZGY2NDk2YTg1YjFjZTk2ZmIgbGVnYWN5LXRydW5rCis0NjI5NSBhZDJlNGRlNDdkMDk2MzY1ZGFlZDdlMTRjZmJlZTRlMTdjMDg5YzgzIGxlZ2FjeS10cnVuaworNDYyOTYgMmY0NWFkNjZjZDM2NTA1OGIwMGRmZDIxZjY2ZDY0MDBiNzQ4ZTk0MiBibGFpcy1ieXRlYnVmCis0NjI5NyAzYmVmMjQwODZhY2U1MWRhMzJhMjFlNjU1ZmFlNTUyNWVmZGRmNzdmIGxlZ2FjeS10cnVuaworNDYyOTggYjdiNzYxNWVhNWY1ZjIwNzNmNGZjMTJmODIxMGY2ZTBlNzNkNGNlZSBsZWdhY3ktdHJ1bmsKKzQ2Mjk5IDlmN2IxYjdhZGYwMTBlMmZiZmRjNTc4ZjgxMjA4NzExNDFkMDRmMzcgbGVnYWN5LXRydW5rCis0NjMwMCAzNmNkNGE0YWI4ZjdlOGY3MmJhODAyMGNiNTdkMGE4MjVhOGExODU3IGxlZ2FjeS10cnVuaworNDYzMDEgYzA3YTk2ZjY5ODM5NjJiNGIyYTUxODVmMWIyNGE4ZmRmZTA5OTQ2ZSBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzAyIDk1NzcyN2YyZmYwOWYzOTM3MzcyNzE3NWQ5MmUzMThkMzg4Y2U0YzQgbGVnYWN5LXRydW5rCis0NjMwMyA5ODgzNzkwMTQ0NzczMDgyYjBjNWYxNWYxOTg3NWEwZDMzZjUyYjU3IHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYzMDQgMzc4YmE2NzdiNTc5NzA3NmZkMzQ4NTBkZDI3MmRjYTU1YjkyOTI0MCBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzA1IDc4YzYwZTU5OWFmZGI3YmFkZjYxYTQ4NDNhOGM4MWU1NjVlMGI3MjAgbGVnYWN5LXRydW5rCis0NjMwNiAzMWI5Yzc4YTA3ZjM2OWZkMWRjMTBlZTc2ODgyYWJhMDJhZTFjYTMyIGJpcHBvbGl0by1uZXdzdHJ1Y3QKKzQ2MzA3IDA1YmJiZGRmY2UzZjdhMjdiMjUxNTM5ZGVkZDdhOTdkYzY0N2MzOWYgbGVnYWN5LXRydW5rCis0NjMwOCBiZTc0MTViMGEzMTg1MWEzYzkzYmJiY2YwNGJiYWI2MTIwMTVhMmM3IGxlZ2FjeS10cnVuaworNDYzMDkgZTNlZTNlYjE4Njc4ZGM2ZTgzN2YzYmVlNmI1OGRmYmUwYmM4NjU1YyBsZWdhY3ktdHJ1bmsKKzQ2MzEwIGQyZGY0YTM1OWUzNTJhZjc3YzBlMzgzMTc1ZmY1YmQ5ZDY3YWNjNDIgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjMxMSBhNGVlNDU5ZmYyODhhNDJlODkyZWRkODBhOTM1NDNmNjA5ODUxOWRlIGJsYWlzLWJ5dGVidWYKKzQ2MzEzIDg4ZTlkODY3NzAwNjZlY2QwZmJiMWNhOTNmMGIwMTkyOTZhMWI2MmYgbGVnYWN5LXRydW5rCis0NjMxNCA0NTRiZGU3ZTQxNmU0OWJhN2JiMGU5N2JiN2RjYzBiMzJiNzNhYTJkIGxlZ2FjeS10cnVuaworNDYzMTUgODkwZjYxNjFjOThhNWE5MTU3ZjA4NDMxNWJhMjAwYmEyOTkyNDg0NSBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzE2IDY1MzNkOGFlMWZkOTUxMmVmMTdiOTRlYTg5MDFiNjAzZGMzOGE5MmEgbGVnYWN5LXRydW5rCis0NjMxNyBhMDQzYzVkNzFlYWExOGIzNmFmZWE1MGM3NzdhZjhhZTY1M2YyZDRiIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYzMTggNzZiMzAxYWM0YTVlNjM0MTg2Zjg0ZGVmZmQ0ZWUxZjRiODEyNTQwMyBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzE5IDhhMzhkYThlMTI4ZjdkYmM2NDA4OTNlNTQ0MmM5M2QzMDFlZDQ2NzAgcmVsZWFzZTI0LW1haW50Cis0NjMyMCA1MjEzYjYwNjUxOTc5NmU5MDBlNTViNzI4MWY2Y2M4NDM5MzQ3YmFjIGxlZ2FjeS10cnVuaworNDYzMjUgMWExMTMwNTA2OTBiNzQxZjMyNzZjNzFkZTkwNGUxZWM2YTJiOTk2YSBsZWdhY3ktdHJ1bmsKKzQ2MzI3IGMwMDgyNzA1ZjJmMjM0M2EyNDkyOTliNGU0MTAwYWRmNWFmZTI3NjggbGVnYWN5LXRydW5rCis0NjMyOCBmNzQzZTNjNmI5YmYxNmE4Njc3MGFlZWRiNTBhMTBkMTQ3NDg2NTA2IGxlZ2FjeS10cnVuaworNDYzMjkgMmVkNGI3NTdjMGNmMjYzZDg5ZWZlMjM3NTc4MDc0Mzg5NDE2NDcwNiBsZWdhY3ktdHJ1bmsKKzQ2MzMwIDc5YzhkY2MyNzdhNWYyNjNlM2JhY2Q4OWFlOTE5ZTFiOWE5NmFlM2YgbGVnYWN5LXRydW5rCis0NjMzMSAxM2UwZjcxYTcwZDU0NGU0YWE5YTQ3MTI2NDMwODBmMTQ0OWJhNjM4IGxlZ2FjeS10cnVuaworNDYzMzIgMDlkMmU5NjhkMDc0NzI5MzI5NWE2NzNhMDFkZThmZDVlYzY2ODViMiBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzMzIGZhOThiOGRmMGZlMjE3Njg0MTU0OGVmZDI3MzUxYWJkZGIyOGY0NGMgbGVnYWN5LXRydW5rCis0NjMzNSBhNGU0MzNjMTM2ZGE0M2IwMThkNzVhYjIxMmYzYTUyZmMyOGU0NWE0IGxlZ2FjeS10cnVuaworNDYzMzYgMzFkNDIxNTQ4MGM2OTk5NTkwN2JmN2M0Y2NjZTNiMDMyYzk5NzUyMSBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzM3IGQyYjM4YTYxZGU3MTM1MzRlOWEwMjgzMTllMjkzZmVmZjY3MzllNDggc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjM0MCBiZWY2YWFiNWY5YjNhM2QwMThhNTJhNTBjMjhhMzdlM2ZmNjNmZjUwIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYzNDEgYzBkYmZlYThjMGZiNWI5MDg0Njc3ZWIzMDQzN2I1YmUxYTQzNDQ2ZCBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzQyIGQxMDliMDgxZDQ0YmU1NDA2ODllMDE5YWZjN2I3OTIyYTIzZDRkN2Ygc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjM0MyBjMTRlMGM4OWE4YjBkMDdlNTgwYmU2YTRmMjAwYWEwOTU1Yjk4MWMyIGxlZ2FjeS10cnVuaworNDYzNDYgMmU3YTAwZWJjMzE5MjYwNTg1ZTkxZWE0MzhmNDk3ZmFjNThlMzQ5MCBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzQ3IDVlNGRjZTc4ZjIzZGE5YjMzMGNkYzcxMzJlNTI5MjhiNzRhYjBjNmIgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjM0OCA2MjRiNGJiOTNkOTAyNmEyZjU4ZDIxODBkOGE3ZDAzNWYyZmNkNDZhIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYzNTAgNDNjODZmMzQ5ZDQ3ODRjN2Q2NDc3YjU4ZmVlYzE1YWVlZDhlOGQ5MSBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzUyIDRiZmVhYjIzMGUzODVkNjdkNDE0YjFkMTI5MTk0MmE3MjhjOGEzODQgbGVnYWN5LXRydW5rCis0NjM1NCAxYmEzZTQwZTg2NDk2YTI3MzZiZmFhOTM4YWE1ZWQ5M2M1NTAzZGE4IGxlZ2FjeS10cnVuaworNDYzNTUgNTJkMTM5OWUxYzZkOTFjN2FlMWM2ZjUzMGQwZjdhYTQ3NWRmZDNjMiBsZWdhY3ktdHJ1bmsKKzQ2MzU2IGExNjk0OGU5OTE1ZWNhNTZkODMwNDg5ZmQ1ZDk3MWQ2ZjQ5NzlhNGYgbGVnYWN5LXRydW5rCis0NjM1NyAwYjhiMjhmMGYzMDE0M2IxMDc1N2JkYTYzNTI4NDExYTcyNzk2NWJmIGxlZ2FjeS10cnVuaworNDYzNTggNzI5ZmY4MDA4YzllNTk4MzA3NGNlMTk1YmRhNGFiNDNiNjBjZGU5NCBsZWdhY3ktdHJ1bmsKKzQ2MzU5IGQzN2Q1YzU1MjFlMzg2NDZlYTU5YTdlZTQ2NmI3MzFkODkyM2U5ZWMgbGVnYWN5LXRydW5rCis0NjM2MCAyZTRhMjc0ZTMxMDhhZWIzNjIzMjZiOWNlZDI5ZDUwYTdlNjJmZTAyIGxlZ2FjeS10cnVuaworNDYzNjEgYTVmNTNmZWNmY2U2NmNiMTlkMTFiNjdhNGViNzAzOTQ2OTc4OWVmMCBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2MzYyIGIzMmY5YmIyZTA3NzI3ZmE2ZDA0OGU3ZDQzY2UxYmUzM2UzMzIzOTcgbGVnYWN5LXRydW5rCis0NjM2MyBmNzEwZWRjYWE2NzU4OTllYTRiN2JmOGE1ZDUwNGQ4YWE0Y2NmZTYwIGxlZ2FjeS10cnVuaworNDYzNjQgMDU3NDQ5MTdiN2MzOWIyMzg2ZDM0MzdiMzg4OGM0ZDE5MTFiNWUwMiBsZWdhY3ktdHJ1bmsKKzQ2MzY2IDk2NDE1MTA1YzI5ZTAxZWVhZTEwMDExZTU1MTA3MjRhN2RkMjMyMjYgbGVnYWN5LXRydW5rCis0NjM2NyAzODkwYTNjNzkyYjkwMzczZWUxNzhjZjI5MDYyZWQ3ZDU2NjgwYjNjIGxlZ2FjeS10cnVuaworNDYzNjggMzVmNDE3MzFiZWU5NGU0YmFhNDVhNDg5ZjgzMDk3MzE4ZDc0NmYxYSBsZWdhY3ktdHJ1bmsKKzQ2MzcwIDRkMGFiYjk5YzllNTQ4ZDNiOWMwZDc0MTUzY2M3YWFhZTcxYzM1YmQgbGVnYWN5LXRydW5rCis0NjM3MSAyZjcxZDFhNjkyYmY0YTBiYjE2MWEwMjFlYmY3OWRhNjNhYzFjMDU2IHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYzNzIgZDIxODk2YjJkZDBhZDcxZWY3YjE1MjM4MzFhMzllMjNhMmIyNDA0ZiBsZWdhY3ktdHJ1bmsKKzQ2MzczIGQ4NWIzNjBhYTVmNmY4MWQ4YTQwYWU4ZDJkNzY1OWQ0YmQxMDNkOGUgbGVnYWN5LXRydW5rCis0NjM3NiAxYWIzMjYxN2RhZGRmNjY3YjkwNjRiMTE2ZGJjYTBlOGNhZTg0YzM4IHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYzNzcgNzY4MDc5MDJhMmY1MDVlNTdkMGU1MjliMjZlMTM1OGE0OTRiMDFhNiBsZWdhY3ktdHJ1bmsKKzQ2Mzc4IDIzZjc4ZTViZDNlM2FlNWM3NDBmMDdiZjA4OThkZWE3MWUyMTBkZGUgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjM3OSBmNzA2NTNjMWU2MzNiNjhhOWQ5NDI0OTIyMWRlODI4MjE3NmZjNThkIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYzODAgNzg3NzFkNjczYjRiNzMxMjYyNWQ1MjY5MGJlNDk0N2U2OGYwMzNiYSBsZWdhY3ktdHJ1bmsKKzQ2MzgxIDgxNmY4ZTYwMDk3YTlkYTdkN2QyNGQ4NDE4MmUyZGVmNDk0OTI4MTUgbGVnYWN5LXRydW5rCis0NjM4MiA0MWY4MzllODk1MzI1ZDM2MjgwZjMwM2ZhMWYwOTU4MTFhYjQ2ODJmIHRpbS1leGNfc2FuaXR5Cis0NjM4MyAwZjYxYzNjNjJiOGJmODE5MThkM2Q0NTNlZjYyMzM4Y2JiOGRjMGMwIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDYzODQgY2ZjOWEwMDdlOGNlYjMwYTg1YmJmNWYyZTU3ODc1YTU5ODM3ZDNjNSB0aW0tZXhjX3Nhbml0eQorNDYzODcgYjIwZTdjYmRhNDA5MTJjODM0ZDc5Yjc1NWFhYjc4ODRkZjMwZWIxMiBsZWdhY3ktdHJ1bmsKKzQ2Mzg4IGQxNTNkMmY2Njg4NGZjMzAxODViYzIxYjNiNTg5NTAzNWM0M2NiMWIgbGVnYWN5LXRydW5rCis0NjM5MSA3MGMwZmZkMjFiZjBhNzMwMGUxOGJhOWViNTMyOGQzYWIxYzk3OTMzIGxlZ2FjeS10cnVuaworNDYzOTIgZGYwNGYxOTJhMmEyN2M0ZjAwOWJiY2RmNDAyNGYxYjkwZjU5MDQ5NyBsZWdhY3ktdHJ1bmsKKzQ2MzkzIGFjNDVlY2E4YzM1YzI0NmRiODY4NjEyNzE2NjBhNWI3YjI5MDk5ZDIgcDN5aworNDYzOTUgYjE4OTY2NTZmMjJlNDY5MDYzZjI5NDEzNzEwNmQ3MzBiNjdlNWE0YSBwM3lrCis0NjM5NyBkYmIxOTVjOWRkODhlMjU0NjYyOWFkZjYyZTAzYmNkY2U5OGU0OTk4IGxlZ2FjeS10cnVuaworNDYzOTggMzNjMzI4ODk2ZjUyN2ViNWYwYzc2NWNiZWU0ODcwMmI5ZjEwYjYxMiBsZWdhY3ktdHJ1bmsKKzQ2NDAwIGFkYzIxNGZjMWUxYzEzYzM5ODA2ZDM4MThmNTdmMzFiNjgxOTBkYjQgbGVnYWN5LXRydW5rCis0NjQwMSA1ZGRiZDIwNTAwZmM1MDQ5MWY3OGI4MTFlYTJiZjA3YTkwNTM5OTczIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDY0MDMgNmIwM2E0N2ViNTRkZjdlZGFjY2ExZTExMzU2NDEwYmE5MDAyOTYzMyBsZWdhY3ktdHJ1bmsKKzQ2NDA0IDZkOTlkZjU1NjA2ZTI0ZDBmY2U2N2I3NmNlNmY0YzAxYmUzZDdlNmUgbGVnYWN5LXRydW5rCis0NjQwNSBlODNlMWFhYWIxYTNhZTA0NjEzZWRlYjY1NjA4OTIzYTQ2MWZiMzMyIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDY0MDYgNTJmMmM5Zjc0ZjVhZDVhNzZiMmIxZjhhZDk2MmU0NWVmMmEwNzhjMSBsZWdhY3ktdHJ1bmsKKzQ2NDA3IDMxMjhjZmFkYTZiNGE3Y2Q4YWZlYjIzZjQ1OWM3NDFhNDMxODE1NjQgbGVnYWN5LXRydW5rCis0NjQwOCA0MDJmM2FjNDA1MmZmYWZkZDgxNGI4ZDRhNTZkZTRkZDlhZGZkMDY1IHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDY0MDkgOGY3YzdhZWFjM2E1ODNhM2I5MmZhOGVhZTQ3YmM4ODk4Yzg4NjY2ZSBsZWdhY3ktdHJ1bmsKKzQ2NDEwIDFkYjBkNzM3NDllZDllZGE1ZWRlMDBiNzY2ZWU5MTQxZmM2ZDM4NWEgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjQxMSA1NjA3YWI2YzY3ZGZkYjBkYTZhZTlkNWEzNjUyM2JiNGYxYjU5OTZlIGxlZ2FjeS10cnVuaworNDY0MTIgZmE2NzViM2Q3NWNhODIyNWVkOTQ3MTY0ODU0YjQ1NzA0MWQ5NDhmOCByZWxlYXNlMjQtbWFpbnQKKzQ2NDE1IGU3YWY5N2UyNzhjNDRhNzEwZGI0MTllMDk3MDdiOGM5MzFhYWQ4ZDggbGVnYWN5LXRydW5rCis0NjQxNiA0Njk3ZDE5NThjY2IwNWJhNmQ5ZmQzMTQ2MTBkYTE1MzQ4ZWE3OGNiIGxlZ2FjeS10cnVuaworNDY0MTcgNjMxYjY2NDhmZGY0MWJlMmM0NTc1OTUzMjU3ZGQ4OTExNjg0NmZjZCBsZWdhY3ktdHJ1bmsKKzQ2NDE4IDJiZWUxNTBhMGY3NTIyOWExMGNiOTA3ZjliMjRlNWUzMDEyOGIzMjkgbGVnYWN5LXRydW5rCis0NjQxOSBmZWE2ZmI0NTU3MTEzYmM2MTE3MjYyYzkxZjNjZjM5YjhhZDY5ZjU1IHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDY0MjAgNGRjNjFkN2RiM2EyOWZmODZhY2RlNWYyZWNiMDk1NjU4YTQwMWQ2NCBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2NDIxIDhlMmRjM2U0MTgwMTFhNmUyNWQ3NjAyZGRhZWVjYzEwZDYwZTc3Y2YgbGVnYWN5LXRydW5rCis0NjQyMiAwZWViZDllZWI3MTdjYTMxMzNjN2UxY2Q0ZWRkZjRjNzA4YmNiNDNkIGxlZ2FjeS10cnVuaworNDY0MjMgY2U2MzhkNGI0ZmM4Y2RhZjBjNGI2M2ExNjQ4NTNhMjc2M2VmNmU1NiBsZWdhY3ktdHJ1bmsKKzQ2NDI0IDkwZWRhZjBkOTA2MjE4MjE4YmI5NGJmY2NkZGUzZTAwMWVkMWU5ZmUgbGVnYWN5LXRydW5rCis0NjQyNSBlMGU0M2U1NjE1MTJiYzk2MDQxMGI3YzdkMTI2ZDIxZWFhYjZmMDFhIGxlZ2FjeS10cnVuaworNDY0MjYgNzA4ZWFmMDg5NmJmNDU0NGQ0ZDU0MzUzODMyZjMzMDA3MWNhYTY1OCBsZWdhY3ktdHJ1bmsKKzQ2NDI5IDM4ZTlhZjM4ZjM4MWMyN2VjNjA3MGI1YzYyYTUzOWMzOGY0NmQzMjkgbGVnYWN5LXRydW5rCis0NjQzMCA0OTljZjdjMmY3NzczZWY5NmZlYTRiNDI0YjNjOTM0YmVjYzVkNTZkIGxlZ2FjeS10cnVuaworNDY0MzEgNDIwOWEzZDI5NWUzNDdlZWQ2ZmU1NDEwMjhhODlhMTNjM2M0MzExMSBsZWdhY3ktdHJ1bmsKKzQ2NDMyIGRmYmQ0NTdjYTY3YWM2YThmMDlkZjNjZGY1OTViZGQwZmM1NzRlOGQgbGVnYWN5LXRydW5rCis0NjQzMyA2OGUxYTAyYTViMjkxZDg5MzgxYmZmOGQ5NTA0ZTAzMTM1MGY2NGViIGxlZ2FjeS10cnVuaworNDY0MzQgMTBhNTk3M2UwYzlhNzM3NGYxYzFjOTEyN2E0NzAyMWQ3YmFiZmNkOSBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2NDM2IDNkODFmYWY0N2FmNzdkZDA5YWZkYmVkMGY0OWIyYzgyMzE1ZTAzYTkgbGVnYWN5LXRydW5rCis0NjQzOCBjYTY1N2UwYmQwOWMwMzc3OGYwMTZjMGQwY2NlNDdkNWNhNGQyZmM4IGxlZ2FjeS10cnVuaworNDY0MzkgOWYzMzc1ZTMzZGI5NWQwOGVjNGMyZDk3M2E2M2UxMjU0NDc0Zjc1MiBsZWdhY3ktdHJ1bmsKKzQ2NDQwIDk5ZDA2MWJjMzE0MzFkMWZmYTFjNjIxNDcwZmE1OWQwMTVkZGU0N2IgbGVnYWN5LXRydW5rCis0NjQ0MSA4YjRkMmE5MDc1YWY1YjBjM2YzYTA5YWFiZjM1MGQxZGMzNzQ1MjQzIHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDY0NDQgNTQ5Y2FkYTRlMzZjYzU3YTNlNWYyYWU0MTk5NjhjZjFlZjQ4ZDJiMSBsZWdhY3ktdHJ1bmsKKzQ2NDQ1IDNmZjNkMmYyMjAxMjI0NmZjMTgwNjc1MjJjZGUxNmE4ODlmNDJkYTIgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjQ0NiAzMjg3OWQyNjEwOWQ5Njk2MDZkNzg3YTU1MTU1MzA4M2FhZmFjMTU3IHNyZWlmc2NobmVpZGVyLW5ld25ld2V4Y2VwdAorNDY0NDggMTZhMWNhZDBmOTQ5OTkyNTQ0YmY4YmNhNWM4YjY5MmVlOWE0OWFlNSBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2NDQ5IGNlM2UzYzYzZmU1YWRkZTMwZWQwZjc5NjNhY2QyZTNjNGVjNDNhZmMgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjQ1MCAwMDM0MzM1MTFlNGRkODRhZmE0YzA0MWIyYWE3NjdlNzJlMGJmNzZjIGxlZ2FjeS10cnVuaworNDY0NTIgNzM0MjZlNzFmNjdhYjU3NjJhZjMwZDkwYmE1YTMxZGNlODEyY2M4NCBzcmVpZnNjaG5laWRlci1uZXduZXdleGNlcHQKKzQ2NDUzIGE1ZDVlNzNiMmVkYmI1ZmIzZWI5OTc5NzI1ZTEwMGJkZDE0NjAyYzAgc3JlaWZzY2huZWlkZXItbmV3bmV3ZXhjZXB0Cis0NjQ1NCA3OTVkMWNiMWRmMDEzY2RmMzQ1YTkyNmJhZjUwNjViZDAxNWEwYjE1IGxlZ2FjeS10cnVuaworNDY0NTYgNGMwODIzZjBhMGExNTc0ZWE4MmMxOWRlOWQ0YzFlMmExYTU2MDlmNSBsZWdhY3ktdHJ1bmsKKzQ2NDU3IGE1NmFhOGFiNDg5YjcwYzQ1YzUyNzMwNmU5NGRmMTQ1ZDY5MzM0N2UgbGVnYWN5LXRydW5rCis0NjQ1OCBjZWJhOGYyZWEyNGVlYmE1MDg3NWQ0NDNmNDZkZmI5NzFkNmQyOWY2IGxlZ2FjeS10cnVuaworNDY0NjAgY2NkYzBiYzExZGNmMmUyOGY2YzRiYzk2NDQwZGZmMTRmYTY0OTlmNiBsZWdhY3ktdHJ1bmsKKzQ2NDYxIDYwNjNlNGU2ZWUyMGUxN2Q5NDljMjE3ZTM3OTYyMzJmNjcyNjkyMzMgbGVnYWN5LXRydW5rCis0NjQ2MiAzMGU0ZWE0MjMzNjkwOWFiY2UwNjVkZDVjNDg2OTJjNWQ0Mzk3YWQ0IGxlZ2FjeS10cnVuaworNDY0NjMgNzgxYmQ5NGNlYmFkNTVlMjhmNzg4ZGM5MjI1NDNmMzZmZDk0NGY3OCBsZWdhY3ktdHJ1bmsKKzQ2NDY0IDA1MzA1ZDNhYTA0ZDFkYjY0MzgyZTgwYjg5NjU0NTVkZWE2NGY3ZDMgbGVnYWN5LXRydW5rCis0NjQ2NSA1MDZlZjkxMzAyMzhiNWViOWRhMmE3OTNhZGNkNmVkMTVlNjExNzY4IGxlZ2FjeS10cnVuaworNDY0NjggNWIwNzUzYjlkMTZhYzM4NzY4YzA2NWVlMGQ0MjQ4NWM1YjdiOTVmYyBsZWdhY3ktdHJ1bmsKKzQ2NDY5IDcyMzI3ZjhmNGE3OTZmZTU2YTQ3YjkwODQ4YjFiZWVhYzY3NGNmOWEgbGVnYWN5LXRydW5rCis0NjQ3MCA4MDM4ZTQxZjQ2Y2MwZDI0MzQxYjBiZmU4ODM2MjEyZDU5ZjVkYTU0IGxlZ2FjeS10cnVuaworNDY0NzIgZWFlNmRlMWI0MzgzODBhNTU3MDJmYjMwZjFmYmIwMWQxMGVkMDc3NCBsZWdhY3ktdHJ1bmsKKzQ2NDczIDA4YmYwODIyYzUwYTBkNzNmOWZmOTM1NmRjMmU0NDA0MjU0MmUxMDYgbGVnYWN5LXRydW5rCis0NjQ3NCA4ZGFlYjlhZjg0MjJjYmQ0N2MyOTI0MTIwNTgzOGI5YmQzNTQyNzk4IGxlZ2FjeS10cnVuaworNDY0NzUgOWE2NWZkNDI1NWEzN2NlYTcyZWQwMTM4MDUxMWUwOWUwNmM3ZDE0YSBsZWdhY3ktdHJ1bmsKKzQ2NDc3IDgwNzU0MGNmNzcxNGM5ODk0ZDI5YWIwNmRlZjgzMWIyODFlZmNiMTYgbGVnYWN5LXRydW5rCis0NjQ3OCBlOTU3MTU1YWU5YmRkYzIxY2E2NjYxZWEyNWMwMTFjYzQwYWY2NDRhIGxlZ2FjeS10cnVuaworNDY0ODIgMDM4YmI4ZDAwNThiMjUzOTU3MmYxOTU4MGQwZThjOWFhYzQzYzQyMiByZWxlYXNlMjQtbWFpbnQKKzQ2NDg4IDQ1NTZjMmM5MzBmNGIwMjVlNzlhYjFhMWVhYmQwNGFhZDFlMjIxMGUgbGVnYWN5LXRydW5rCis0NjQ4OSAzZGVkMDkwOGU5NTJmNjQ2ZDQwMGU5ZTU1YzZmOGM2OGNiNDFmNDViIGxlZ2FjeS10cnVuaworNDY0OTAgMGYyZjdhMGQ5YjdkZDIwMTViNGQ3MDRlMTNlZTE5MTVhMGRlYzEzNCBwM3lrCis0NjQ5MSAyOWFlNWUwZmMzNDgyOGI1ZTYzZjE4NGYzMDM4NDYxMTY2OGRiZWZkIHAzeWsKKzQ2NDk1IDYzMWMyMDdjMzY5MjNkMDIzZjg0Y2QwYTkyYjI4OWI2YjcwYmU2ZDAgbGVnYWN5LXRydW5rCis0NjQ5NyAxYTIzNzA2MTM5Y2EwZmMyNzg2ODk0ODMyNWUyZjQyMTUxYWJjYTQ4IGxlZ2FjeS10cnVuaworNDY0OTggM2ZlYzNjZTIwNDEzODRhZGViZDlkYzczZWVlNjMyOTY5OTI0NWMyNSBwM3lrCis0NjQ5OSA1NTE4MTRlNGI0NzExN2IzMmY2Mjc0YzFlMzkwOGM0NjRjZjgyMTQ0IGxlZ2FjeS10cnVuaworNDY1MDEgMjM2NzI1ZjY0YTM0MWZmZTkwMTI5YjA5NzkwM2ZlMTBhNTkzOTRiMSBsZWdhY3ktdHJ1bmsKKzQ2NTAyIDdmYTdjYjZkOGJlODFlMjkwYWEyYTZlOGQwMjRlMzhkNzQ4MjZkM2EgbGVnYWN5LXRydW5rCis0NjUwMyAwMjAzYThhZjc0YTc1YTlhYmY2MGRmZDY5ZGY4YWViMzI3YWYzOTE4IGxlZ2FjeS10cnVuaworNDY1MDQgNmJhNTY3OGJlN2YyNjM1NDQ2Yjk4NThmM2QzMmZjNmI4MWI3YWEwNSBsZWdhY3ktdHJ1bmsKKzQ2NTA1IGY3NmQzZTY4ZDFhYzM3YjAwYjFkOTViZGZiZDhiYWQzMzg0MDdkZmUgbGVnYWN5LXRydW5rCis0NjUwNiA1MTI1NWNjOGEwZGMwNGFiZTczMDVlNTRkYTNhMzBmNWZjNGMxMjRlIHJlbGVhc2UyNC1tYWludAorNDY1MDcgZTk4OWVlNWQ0MDRhYmU3NzYyMTRhYjA4MGUyNzYyMGJlZGMyN2YwZSBsZWdhY3ktdHJ1bmsKKzQ2NTA4IDMyMDRhYTllMmIyMjU5NmE5NjI0ODk5MDVhNzM1ZTg2ZmMyY2JjMzMgbGVnYWN5LXRydW5rCis0NjUwOSA3MTg2MWMzNzgwOTM3MTM2MWVkZDllYTE5ZDkxY2FlNmVlNmY3ZjkwIGxlZ2FjeS10cnVuaworNDY1MTAgNTkzYWNjZGRlMDBlZjMzM2QzZWJkNTliODg4MmFjYmU4NjUyZTU2ZCBsZWdhY3ktdHJ1bmsKKzQ2NTExIGYxN2QzNzkyMGY2YTFiZGZjZTA4NjA5MjdlMTdiODU3ZTYzOGJlYmIgbGVnYWN5LXRydW5rCis0NjUxMiA5NWZiMmNkMWQzYmFjZTQ3NWNkMjQxNTg0ZDFkMDA4YzgyNmUxNzlhIGxlZ2FjeS10cnVuaworNDY1MTMgZTBjZWE2MDU0MTdlNDVjNTUxZjI3NmFjNGQ5ZWU1M2Q2NzdkNzdlMiBsZWdhY3ktdHJ1bmsKKzQ2NTE0IDkyNjhjMzA3ODJjMGFmZjcxZjRmMzMwOWJhZjM1MDAwNWI1NTE2MTcgbGVnYWN5LXRydW5rCis0NjUxNSA5MzhjMGZjZDViY2NiNmM3M2NhYmM5YWQzZDZhMzM5MzMwNzRmZDRmIGxlZ2FjeS10cnVuaworNDY1MTYgZDYwYzdmNmMyYWEwMDRiZTNiYjk0MmIwZGEwYTMxODdhODM1NTVmOSBsZWdhY3ktdHJ1bmsKKzQ2NTE3IGJmMzI2NTgxYzc0MjIyNjJhOGE5ZjdiMDg3NDVlNjYxOGE0NGM2MDcgbGVnYWN5LXRydW5rCis0NjUxOCA5ZjMyODRjOTJlYjMwZjEwNzEwYzliNmI5MmM2ZDAwNzZjN2FlYWVhIGxlZ2FjeS10cnVuaworNDY1MTkgZDMzODMwNjM0OTFmNTk4M2NmYzFjNTlmMTYzOGVhMGRlNjIxZTAzMCBsZWdhY3ktdHJ1bmsKKzQ2NTIwIGFhMDY1ZjgyMDI1MjQ2YmExN2ViMjMyNTdjMGQwMTg2OTA3YjNmOGMgbGVnYWN5LXRydW5rCis0NjUyMiA1OGU5OWYyYTY0ZWNhMWRlMmE2YWFlNTg3NTdiMzE1YzcxNzI2NGIyIGxlZ2FjeS10cnVuaworNDY1MjMgNTUzMTk1NTk5M2VkNDE2NDA2ZDUyNDY2NDdkYTEyNjU1ZTdjYzk3NiBsZWdhY3ktdHJ1bmsKKzQ2NTI0IDliMDAxZWJlYWE1ZTQ4Njc3NzVkMTBkZmY0OTAzMWYzYjNjNDdiMTYgbGVnYWN5LXRydW5rCis0NjUyNSAzZDFhOTliMzlmY2EyNWFlYjYxNDFlNTc4NWY1MmI4YzczYzQ4MjcwIGxlZ2FjeS10cnVuaworNDY1MjYgNjc0M2E2YTA2ZjE1NmQxZGJmZTg5ZTc5NTNhZDgyNTNkMzM5OGU0MiBsZWdhY3ktdHJ1bmsKKzQ2NTI3IGZiNTZhMzk5MjYwNGJhODU5NzZjZGQxMTcxNjc4NGUwNzY2YjIyMTEgbGVnYWN5LXRydW5rCis0NjUyOCBmNjRiMTNhMDBmMzNiMjhjOGVmYWE1NThhMDMwY2E4MDc3MzM5MzM5IGxlZ2FjeS10cnVuaworNDY1MjkgZGNmOTJkZDc0MDhhM2YwYmQyYWY1NDQ5NDk4ODFhMzk1ZjY5NDUyOCBsZWdhY3ktdHJ1bmsKKzQ2NTMwIDhhYzYwM2U1NzBhMDU1OGY5YTI3NTcxNDU2ODI2MTg5NGE5MTcxYWIgbGVnYWN5LXRydW5rCis0NjUzMSA1YTEyYzBjNTE4M2U4OGEwNWZiOTAzNWNkODI4NmEzYzliMDJiODE1IGxlZ2FjeS10cnVuaworNDY1MzIgNDhhNmFmODdmM2U4NjJhOGIzMzc3MDgyMzVkMTQ2MjAyMmQ1ODkxNSBsZWdhY3ktdHJ1bmsKKzQ2NTMzIDNmZTNjY2RmMDE1NTUyMTYzYzRjOTFhMWU5NDZjYjExMTZiNmFiMGIgbGVnYWN5LXRydW5rCis0NjUzNCBhNTI5OGYzNzFiZTdjZDJhZDkxOTQyMjIzMDM1NTA1MDU4MGY4OWIxIGxlZ2FjeS10cnVuaworNDY1MzUgYzNmMmM2Njc2YjA2MWNhNzEyODliZGRjN2NlMDUyMzJhY2Q0Y2ZiOSBsZWdhY3ktdHJ1bmsKKzQ2NTM2IGQ1YmRmZDEyMDIzMjcwODI2N2FkZGM2NDZiZWUzNmEwZTdmYzgwZDMgbGVnYWN5LXRydW5rCis0NjUzNyA3ZDUxMGU0ZjNjOTg4NTA1ZDA2YmM1OTFjNTkwOThlMDU0YmIxMzYyIGxlZ2FjeS10cnVuaworNDY1MzkgNGU0ZTY1M2E4MGJmNGFmNjRhZjA5OWIxNmViMjk4Zjg1OGIxYTI3NyBsZWdhY3ktdHJ1bmsKKzQ2NTQwIDE3MzFmYmRmMDI5ZDIwOWU3NmZhOGI4NTI4ODY0M2ZlYWMyNmY1OGIgbGVnYWN5LXRydW5rCis0NjU0MSA2ZDc5YWNkYzgxMmQyMDEwZDBkMmNlZGYwZmZmZmFiYTczNDMxZjgzIGxlZ2FjeS10cnVuaworNDY1NDIgYTgyZmQ3YjA0NGRjN2E3ZDZkNWQ2OTFhODYxYTI2YmM4ZTJkMDIwNCBsZWdhY3ktdHJ1bmsKKzQ2NTQzIDhkZmJhMDg3ZGMwNzdhNjFmNTBmM2FmNmEyODM0Y2NhMjRkYzM0ZTIgbGVnYWN5LXRydW5rCis0NjU0NCA0OTRjYWI1NjNjMTE3YTEzOWJkYTEzODk0OTk2ZjI4Y2JlNTZkMjViIGxlZ2FjeS10cnVuaworNDY1NDUgOWY4NjJkOWY3Nzg1ZGRhNzUxMGUyMmFiY2QzYmM4OWY3ZDUxNGNkYiBsZWdhY3ktdHJ1bmsKKzQ2NTQ2IGVjNWRjOGE0OWVkZmI2NTc0MDFkYjVjMjExNjkzZDdjYTk0YjZlY2EgbGVnYWN5LXRydW5rCis0NjU0NyBjNDUwMWZlZmQzMjRmYjQzNjNjOTQ1NmY3ZmJmNzJkMmM5MDY4NDEzIGxlZ2FjeS10cnVuaworNDY1NDggNTEwNjgyYWM1ZTg5ZGQ1YjY1YmQ0N2I4YWM4ZTBlZmMyYzY0MzViMyBsZWdhY3ktdHJ1bmsKKzQ2NTQ5IDQ0MTcxMWNiZmUzNDE3MWRhNjc0MzZlZmYxODVjYTQ2MzExMDljYTIgbGVnYWN5LXRydW5rCis0NjU1MCA0Zjg1ODY5NDZjOGY1NjMyYTQ2NTc4M2U0YThmNjllYWMzOGZmMjA3IGxlZ2FjeS10cnVuaworNDY1NTEgMGFiYTYzZmY3ZjczZTM4NjgzZGE1NTVmYzhiNGJjZWZlY2U4MWM3OCBsZWdhY3ktdHJ1bmsKKzQ2NTUyIGQyMDA4YjMxZmQ2MmEyNGQ2YTRmZWUxNTY1YjM1NWVkMDRlMDIxNzYgbGVnYWN5LXRydW5rCis0NjU1MyA5OTU2NGU2MmFlYTkyZGUxNDA4OTJlMTc4MzJmZTIxN2E2M2VjYWIxIGxlZ2FjeS10cnVuaworNDY1NTQgZTExNThlMTk1MWRhNTBmNmVhZGY4ODI0YzRlZTcwNzdiMjQyYzk2ZCBsZWdhY3ktdHJ1bmsKKzQ2NTU1IDEzZmVkZDBkMGYyNmM2NjRlZDU5NjRlNGVhYTc1OGUzZDA0NTllODYgbGVnYWN5LXRydW5rCis0NjU1NiBjNzQ3YWQ1M2UwOWUwZjkyOTQ0YzU0NjM1OGM3ODU0MDRlZDc1N2U5IGxlZ2FjeS10cnVuaworNDY1NTcgMTY4ZWI2ZTE1YjhjN2M5NTFkZDEyMWQ5M2Y4ZDcxZGE5NmFlNjQ3NCBsZWdhY3ktdHJ1bmsKKzQ2NTU5IDdmMWYzNmIzYzlmOWFhYzM5MThlZDZlODZmM2UzYmYxZTg5MTRlOGYgbGVnYWN5LXRydW5rCis0NjU2MCBlY2Y3MTczZTc5ZmY1NjZmNGY5NThiYWRjMTg5ZTU3YjcwZjI4NjBlIGxlZ2FjeS10cnVuaworNDY1NjEgYmIwZDJiOTU1NDM5ZjMyZTQ4MTIzNzA3MDNmODhlNjFlMjI0NjcwMiBsZWdhY3ktdHJ1bmsKKzQ2NTYyIDJmZTMyMzNiZDQyNjEyZjRiMTczNGMxYWU5M2RlMjYxMGYxNTY1ODggbGVnYWN5LXRydW5rCis0NjU2OCBkMmFlNTgwODgwYjRiYmRkNjg1ZWM3ZDkwZjRkMzlmYmY5MjQ4Y2E2IGxlZ2FjeS10cnVuaworNDY1NjkgZjlkMTg0MGZhZDM0ODUyNTQwOTI1ZWY3YWY5YmU5ZjlmYWQ5NzE1YyBsZWdhY3ktdHJ1bmsKKzQ2NTcwIDYyOWViZjdkM2I1Y2FjYTU5ZGJmMGMxM2RjOWE5ZjlhZjY4Y2Y1NWYgcmVsZWFzZTI0LW1haW50Cis0NjU3MiAxYTU2ZGE4NmMxMWE4NzlmYTcxOTUwY2I0MmUyZWZmYTE4YzYzOTNlIGxlZ2FjeS10cnVuaworNDY1NzMgYmFkYzE3MzdkYzgwMTljZjJiMzAyZDUyMDAwNWYwMzU3MTJhMGVjNyBsZWdhY3ktdHJ1bmsKKzQ2NTc0IGYwZjI5MWZhOWI0NjkxODQxZWRlZWU1ZWU1MzgwMDBlZDhlMmNlZGMgbGVnYWN5LXRydW5rCis0NjU3NSAzZmQ4MDI3ODQ1ZjgwMmM5YTBkODgwOGFjNjZmNzRiZDY3MDg2ZDliIGxlZ2FjeS10cnVuaworNDY1NzYgZjUwZDNhNTFkNjQ2ZjMzYmVmZjViNDJiYmU2MDU4NmQ0YzQ0MDJlNSBsZWdhY3ktdHJ1bmsKKzQ2NTc3IGQyNWUyNzljN2VhOWIyNTdjZGM1YTFiMTJhM2Y3MzVkNDlhYjYzMGMgbGVnYWN5LXRydW5rCis0NjU3OCBmODMxZThiYzZiZDM3ODk5MzQ0NzU4YTg1ZjZlMDI3NzUwOTVjNTAwIGxlZ2FjeS10cnVuaworNDY1NzkgNWY0NDJmN2JmNDE5ZTRmYzNjMTIwOTgwMzA3ZDkxYjY2NWMzZTg5ZiBsZWdhY3ktdHJ1bmsKKzQ2NTgwIGUwOTk3ZmZhMzU3MjQ2OGI5ZWEwZWEwY2Y2MmIxNjgxN2NhMTExZjYgbGVnYWN5LXRydW5rCis0NjU4MSBhN2YyMjk1YTc4YWMxMzk1MGJmZmU4Nzg0YmY4NDkyZjBiMmNiYjE3IGxlZ2FjeS10cnVuaworNDY1ODIgNDQ3YTk0YjAzOWRlYjgwY2ExZGE5MzMzYmEzYWM4MTNiODcwYzkzOSBsZWdhY3ktdHJ1bmsKKzQ2NTg0IDQyOGU5Y2JiNDM0NjFlMGVlZmZmMmY3NDMwMDc1YTg0NzUyNjdmZWIgbGVnYWN5LXRydW5rCis0NjU4NSBkYjJkOGFhOWZlM2Q0MjA4Yjk5Mjg3ZjA1M2JmNDhkMTNmYWViM2Y0IGxlZ2FjeS10cnVuaworNDY1ODYgMzAzMWE3MTEwZGE5YTg3NTk3MzJmZjI2MDJmYzM5OTIyMzFhZjk0MSBsZWdhY3ktdHJ1bmsKKzQ2NTg3IGIxZWI0YTY3NDk5ODA1NGE2ZTc1MWExNmUzYTdlYWYzYmU3MmFjMGQgbGVnYWN5LXRydW5rCis0NjU4OCBjZjY3N2U5Nzg4NTJmYTZjZWJlYjA5M2E1MDRlNWQ0Yjg0OGI5MzBmIGxlZ2FjeS10cnVuaworNDY1ODkgMTc1Y2JkZjlhNWZiZDA2NTdmODUxNTg2MGVjNTEwODNiZTQwY2I4MyBsZWdhY3ktdHJ1bmsKKzQ2NTkwIDk5NWVjZDIzMWY3YzU5OGQ1YjQxNTEzMDNmZDMyNjRjOGQwNzI5MzYgbGVnYWN5LXRydW5rCis0NjU5MSBjNWQ1MDg3MmVmZjQ4MmE3MzdlNDkxNGIyYzYyODQxNjdiYTQ0MThkIGxlZ2FjeS10cnVuaworNDY1OTIgYjliMDM2ZjAyMjA3ZTI5YjIyMTUzNDg2NmQ3MGQyZWYyOWQ0ZmQ2YiBsZWdhY3ktdHJ1bmsKKzQ2NTk0IGQ3ZGQ1Mjg0MjdjMGQxNGFhNDNiMGY4ZmFkNTJlYjU1NTM4NmU5ZGUgbGVnYWN5LXRydW5rCis0NjU5OSBmMzdlNjdiZDQzOTMxODRhMWViYWFlZWM4ZDExYjIxOWQ1NTE3OTk5IGxlZ2FjeS10cnVuaworNDY2MDAgMjYzMmJkNTVjMjlmMjU0NGJkOTg3NDE2Y2YyY2Q3OWU2MzU4ZGIyNSBsZWdhY3ktdHJ1bmsKKzQ2NjAxIDc1ZDY4MTE1OTMyOWQ5OGYxNjU1ZGJlMGYyN2U1NjEwZDNmZThmOTQgbGVnYWN5LXRydW5rCis0NjYwMiA2OTdkZDg0OGUxZjEzNjM2ZTU1NDNmZGE1ZmM2MWQ1MDdhNDMzMjlkIGxlZ2FjeS10cnVuaworNDY2MDMgMjFlOGRkM2UzOTQ1NzdjNTgxNjZiNTE1MDEwMmUxMGFiZGZiYTM4OCBsZWdhY3ktdHJ1bmsKKzQ2NjA1IDJlYjhiZTBmODczMTI5NzE2MDc2ZDM2OTQ3ZWUwYWE1Mzk1ODUyMmEgbGVnYWN5LXRydW5rCis0NjYwNyBmOWMzMDFkYzVmYjc0YzhjMmUxOGE1ZGFmMjBkZDA4ZjgyNzQxZDA0IGxlZ2FjeS10cnVuaworNDY2MDggMzgzY2Q5NGMyYTY3ZDM3ZjJiYTFiMWMxNzI2NTBhOWNiNjg0MTc3NSBsZWdhY3ktdHJ1bmsKKzQ2NjA5IDZmOWI1MzZlOTZmNjYzNTNjMWZlOWU3NTUyMzhhOTAyM2UzZTljNTkgcmVsZWFzZTI0LW1haW50Cis0NjYxMCA5NjZlNzQ3MGZlMjM3MzMzYjRlMGVmMWQ1NGM3OTUyODA0MDlmN2Y4IGxlZ2FjeS10cnVuaworNDY2MTIgMmI1YTlkYzQ5MDVjOTM5YmQ0ZDNkNjQyZTBhNzcxMjNmMWJjNzVmNCBsZWdhY3ktdHJ1bmsKKzQ2NjEzIDY0YjkzNzlmYTgwZGIwODg0MTM1OWQxZWE0Mzg4YzYyZTIzNmE0ZGIgcmVsZWFzZTI0LW1haW50Cis0NjYxNCA0NjQyNjVjMWQwOGIxY2E2N2Q0NTZmODhlYzU3NGMwM2M3Mjg3ODFlIGxlZ2FjeS10cnVuaworNDY2MTUgMzQ3M2ZjZjBiY2VlODQ2MWY2ZjY2ZmQ2NjYwNWZkYmVkODdkNjc3NiByZWxlYXNlMjQtbWFpbnQKKzQ2NjE2IGFhYmMxMzYwMjQ0MGFmM2U2ZjhiNTBjY2VkMmM0YjVlOWRlMDMwNzMgbGVnYWN5LXRydW5rCis0NjYxNyA4NTU5OTNiMDlmZDkyMDgyYjQyYTdkNjU1NTY5MGYyYmU5NDBhYTNlIGxlZ2FjeS10cnVuaworNDY2MTggMzJmNzA2ZmQ0NTAzZTk4OTBlN2YxMWJjODQ0ODFjZjNiZDM3YjUzYyByZWxlYXNlMjQtbWFpbnQKKzQ2NjE5IDk3MDUyNmMxYTdlMmZmMzY0NGVmMmMyNDU2MzMyY2JmYTQ3MmEzYTggbGVnYWN5LXRydW5rCis0NjYyMCAxMjlhYjg0NmE3MWZhZmY2MTIzYzM1NWVkMDU2MmM3ZTMyZWYyOGNjIHJlbGVhc2UyNC1tYWludAorNDY2MjEgZDQxNDBmNzlmMWM3MDc5OGEzMDEyNDNmNjRhYTA2YWEyZDY1MWU0ZCBsZWdhY3ktdHJ1bmsKKzQ2NjIyIGY3ZDQyM2MwYmNkODZhM2IwM2JjOWI1OTY0NjAwMDJkMzMzYTQ2MDkgbGVnYWN5LXRydW5rCis0NjYyMyBmMGY1ZGNhMjk5OTA3YTQ4MjNjYjliOWZiYzA1NDkyZjMxNjYzMzdhIGxlZ2FjeS10cnVuaworNDY2MjQgMzQ3MTRlNDBkNDY1NmRmMDI3Njg2NjYxNGJkZWIwNmIyMzA4NGMwMSBsZWdhY3ktdHJ1bmsKKzQ2NjI1IGQxZmFjYTRmMGI4MDI2MTI1YjFmMWQyMjkxZjc1OTkyOTA5NGJlYWMgbGVnYWN5LXRydW5rCis0NjYyNiBhNDY1NDc3MWU1YjMwMTQ0Y2I4MThlODYwZDAzODQ4YjA1MGI2Zjk1IGxlZ2FjeS10cnVuaworNDY2MjcgYmVmMDIzNmQ3YmZhNmYxMzZlM2Y1NzhlZjU1MmQ1ZGMwODM3ZDhkNiBsZWdhY3ktdHJ1bmsKKzQ2NjI4IDRlYzk0MmNmOGM5MmVkNzZlNDE0YWE4M2MyNTY0YTM2NzE1NDkxNjggbGVnYWN5LXRydW5rCis0NjYyOSA4MDZmM2UxNDExOWQ3N2RjODNmZDc2MTYwYTQyMjQ4NTk0ZmVjNWU4IGxlZ2FjeS10cnVuaworNDY2MzAgNzIxYTdlYjIzZWJmOWMwOWRjYThiN2MzODMwMmFhNzExOGFmZTNkZSBsZWdhY3ktdHJ1bmsKKzQ2NjMxIDE2MzE4MjQ5YWEzMzI0NjM3MzIwYmUzNDVlNjE0MmYyN2QyZGQ1MTggbGVnYWN5LXRydW5rCis0NjYzMiAyNDhkMTA2Zjg5NTJlZmQ0ZmQ3MWJjN2I5NDY2NjdmNDhmZmEwOGVkIGxlZ2FjeS10cnVuaworNDY2MzMgMDdhY2Y2ZmE1YWEwZWRmZmVlYjFlMDFiNmU4YjFkZGZhZjU2MTc0OCBsZWdhY3ktdHJ1bmsKKzQ2NjM0IDNhYWRjNmRjNGIxYTY0MjA1NWFhZThjMDRkYTA3MWQ1MWZmMGFjOTkgbGVnYWN5LXRydW5rCis0NjYzNSA2Zjc0MDRmM2ZjNTc2NWIzN2QyYTUxMzczMjQzYzY4YzcwNDMzNTdiIGxlZ2FjeS10cnVuaworNDY2MzcgNTcyMmYxMTJkNWRhNTRiZDA1YjEwYjVkZWQ0YWUwZjdlMDgyZDZlNyBsZWdhY3ktdHJ1bmsKKzQ2NjM4IDgyMDcyYThmNTI2NzRmMDM1NGY2Mzg1NGY1YzBlZjY4OGU3MTQ3MTggbGVnYWN5LXRydW5rCis0NjYzOSAwN2U1MDNlODU4ZWZlMjdkNGIwODMxMjJmODNkY2M2YzBlMjE1ZjA5IGxlZ2FjeS10cnVuaworNDY2NDAgMGIyYjA3NmU1OTA4ZWEzYzEyMzRiYjc2NTM1Mzg1MjFiYTQ4NzJjYSBsZWdhY3ktdHJ1bmsKKzQ2NjQxIDE5NDMwY2RmZjJiZDZhYTkxZjI5OTkyY2VjMDhmMTQ2ZGJjMDA4NTkgbGVnYWN5LXRydW5rCis0NjY0MiBhMTE0MDAzYWEzZDNlYjA3MTMzNDQzYjFiYmFiYmY5NzFiMGYxMmU2IGxlZ2FjeS10cnVuaworNDY2NDMgNzIzOWExYTgwNDg3OTAwYTNiZjExZDZhZDgwMjY4N2Y3YTRiZDViYSBsZWdhY3ktdHJ1bmsKKzQ2NjQ0IDQ3MjJkMzdmYWExNDM3OGI5NGFkZTMwNjJiZDI4NTU5MWE2MjczYmMgbGVnYWN5LXRydW5rCis0NjY0NSBlMDBlNjhkZDFkZGZhODYxYTc5Zjc3NTI1ZGM0ZGYwYmI0MTE4Zjk4IGxlZ2FjeS10cnVuaworNDY2NDYgNWVjODk3M2RkMjIxMzkxYjlhYzU4Y2NiN2U4MDk3Yzk5NTA4NWI3MSBsZWdhY3ktdHJ1bmsKKzQ2NjQ3IGRiNzkyOTc3MjYzYWNlZTZmMDRkNThkMWE0NDMwNTg3MTQwZGFmYzQgbGVnYWN5LXRydW5rCis0NjY0OCA5ZTBiMDUwY2U0NmYwNWMwZTc3ZTM2NTk4ZDc1MGE4NDkwNTIyYjg1IGxlZ2FjeS10cnVuaworNDY2NDkgMjE5NjliNzFjMzZkMDcyMWNhZThhMzYyODQ3YTk3YzU3MTgxOGY3MyBsZWdhY3ktdHJ1bmsKKzQ2NjUwIDVkZmIyMWEzN2YxOWZhZjkwYjVlNTE1MGNkNjc3YWVhNTU0ZWFjYzkgbGVnYWN5LXRydW5rCis0NjY1MSA3ZDMxZDAzMWY4ZTEzMzUwOWFhMTE3ZmU0ZWU1YjIzMDljMWQzY2U4IGxlZ2FjeS10cnVuaworNDY2NTIgOTEzZTVlODRmYWRlNzZkNjRiM2I5OTgxMDhmZjUxM2U0MTRkYzQyNiByZWxlYXNlMjQtbWFpbnQKKzQ2NjU0IGYxNmQ0NGQzMDNjZjg0MDA5ZTQyOTA0ZjVmODUwYTBmOWNlMjA0YjMgbGVnYWN5LXRydW5rCis0NjY1NSBjNDU4N2E1ZjVlOTRlZTZjNmFjYzE4NTNiZWI0NGUxMWE5ZDliNjZlIGxlZ2FjeS10cnVuaworNDY2NTYgZDAwNzNjNmY2ZjU2ZTJkODE1MzUzMjA3ZjQwMWNkNGFjMTk1OTg2ZSBsZWdhY3ktdHJ1bmsKKzQ2NjU3IDFjMjNlOTVhODBhMmVmODk0YzQzOWQ3ZmJmZTY3ODZlZGVhYWY4YzMgbGVnYWN5LXRydW5rCis0NjY1OCBiMDBjYmIwOGUwY2MxMWJlZTBkZWFiNDU3YTlmYTRlM2E0ODM3YWFlIGxlZ2FjeS10cnVuaworNDY2NTkgNThkZTYxYmVkZGZjZWYzZmYyYTNlM2YxOWUwY2E2ZWRmODA5YWNmNSByZWxlYXNlMjQtbWFpbnQKKzQ2NjYwIGMwNWVmMDhlMWJhOTRkOWNhMTc5ODY5MzBiYmU0MDc5MmIwYzBkNTggbGVnYWN5LXRydW5rCis0NjY2MSAyMzc0NTYwNjJiODBmNzM2Y2I4NzIyMTMzMWM5MzUyYzRhMDk5NmZlIGxlZ2FjeS10cnVuaworNDY2NjIgY2IzZjUxMzhlY2I1NzgwYTRmZGI1YzBhY2ViNDhlODZmMTdkYTU0YiByZWxlYXNlMjQtbWFpbnQKKzQ2NjYzIGM5MDhhYWE5MWVhZTE3ODdjMzE1MzQ3YTU1ZTRmZDNhNTgxZjU3ZGIgbGVnYWN5LXRydW5rCis0NjY2NCAxYzlkODA3N2VjZmIyMWY5Y2ZkNzY3NDg3OTYyYTE1OWJkMGEyNjY3IGxlZ2FjeS10cnVuaworNDY2NjUgNWFkYmE3MDk2MDZiM2E2NGQyMmNhOWIyYjhkM2Y1MWVlNzg3Zjk0ZiBsZWdhY3ktdHJ1bmsKKzQ2NjY2IDk5MDY0N2UyYWJjNGIyNDUyYjI1ZTg3NzhkOTNkY2YzMDRmM2IzM2EgbGVnYWN5LXRydW5rCis0NjY2NyBhNGI1OGFiNjUyMDIzYzU4MTI5MDUzNDhjN2NjYTE2NDhhZDJiZmE5IGxlZ2FjeS10cnVuaworNDY2NjggZjNhNjc5OTg1ZTBkNTQ4ZGYzMDdhOTlhNzRhNDVmMWIwMjE3NzViNyBsZWdhY3ktdHJ1bmsKKzQ2NjY5IDMwNjA1YmY5NWVmOGI4YmU3YWIwN2MwNGJkMTQwMTVjODhlNjU2NDcgcmVsZWFzZTI0LW1haW50Cis0NjY3MSAwMmQ0NzU0MDVlM2I1ZjI5MGI2MDRhZjAzMzMxMTEwYTVkM2VmODFiIGxlZ2FjeS10cnVuaworNDY2NzIgNjY0OWI1MWUyNDVmOTI1ZGM3NzQxMTAxYzA5NzU1ODYyN2E5NmNjMyBsZWdhY3ktdHJ1bmsKKzQ2NjczIDIxNzdhZWNkOTFmY2JhYjNkYThkNzczMGE1YTYzYTNhMTk3NmNhNjEgbGVnYWN5LXRydW5rCis0NjY3NCAwODU1ZGExNGE4MjBjMGYxNmE1ZTdiY2I5MGE2ODUxNDQyOWFlYzEwIGxlZ2FjeS10cnVuaworNDY2NzUgOTYzOWNiMTNiOTQwNTMwZDEzOTBhN2VkNDYxZjcxMDQxN2UwMDg2NSBsZWdhY3ktdHJ1bmsKKzQ2Njc2IDY4N2FhY2Q2NGJlOTY2OTYxYWQ3NDcxMTgwMzYwYWUyZTJiZDc3OWMgbGVnYWN5LXRydW5rCis0NjY3NyAwZGNiOTIyOGNiM2ZkODU1MDI0MGQ5YWQ5NDQ3YjFkMTQwZWIwMjA3IGxlZ2FjeS10cnVuaworNDY2NzggNjU0ZjAzODNkYmNiMmUzY2NhZTk4MWMxMzgyYzU1NTE3MjFiNGNkYiByZWxlYXNlMjQtbWFpbnQKKzQ2Njc5IGM0YjQ0MjIyYTU5OTRiMDdhY2Q0ZTllNzY4ZWEzNjkxZGZkNmVjNTQgbGVnYWN5LXRydW5rCis0NjY4MCAxOGRlNTBiNThmYjFkNzhmZmNlNzYxMjE1MWE4N2U3NjFkOWUzMDBkIGxlZ2FjeS10cnVuaworNDY2ODEgZjAwNTE4YmI1YjQzMzU3NzVjMDZlMjY5YmQ1NGY2YzIyMzJlOGQyZiBsZWdhY3ktdHJ1bmsKKzQ2NjgyIDgwYTYyNzM0MGM5ZjIzZDc5ODA0N2ZlMzhjNWU4MWYzY2YwZjU3YmQgbGVnYWN5LXRydW5rCis0NjY4MyAxMWY2NjczMTU1NGRiYTc4MGU1MDUwNTQ3YWMxYzVhMGNjYTdkMjk5IHJlbGVhc2UyNC1tYWludAorNDY2ODQgYTYwYWRmMGNiMmZkNzRmYmM3ZDkyNGQzMzY4YzIzMGVmOWU1NTdmMSBsZWdhY3ktdHJ1bmsKKzQ2Njg1IDcwODFlOGQ1MzI5OGVmM2M0NDlmY2Q3YTkyNDMxZDZlYTQyMGI5NjcgcmVsZWFzZTI0LW1haW50Cis0NjY4NiA2YWU0MThlNGIzNmE5YTY3Y2NkZTcyM2JmZGEyMDk1ZmRiNDZlNjk1IGxlZ2FjeS10cnVuaworNDY2ODcgMWUzOGZmODFjOGE5NTJlZWJmN2NiYmYzNjcyNTc4NTJhOGMwM2VmMiBsZWdhY3ktdHJ1bmsKKzQ2Njg4IDgyOGMxMDZkNWVjYzlmZDc0Y2QxNmY4YmZkMWE5Mjg2YjE2ZGMyMGEgbGVnYWN5LXRydW5rCis0NjY4OSA1ZmJlZmI1YzhhMjNlNjljZDAyYTZlMzk5MzVjNTFjOWMyMzk4MWUxIGxlZ2FjeS10cnVuaworNDY2OTAgMGRjYjYyZDZkOTlhMjhhNDgwNzY2NGFhYjJjMzU4OWE1Njk1MDdhNyBsZWdhY3ktdHJ1bmsKKzQ2NjkxIDk4ZTgxYWY0MDAwN2VmZDE4ZWE2NjZlYzRkYTVkNTJhZDE2ZjRmNjcgbGVnYWN5LXRydW5rCis0NjY5MiAxYzAxNmY5Y2E1YTc0YWQxMzczNmNiNzAxM2RkY2ZkMmYxMzgyZWQ1IGFpbWFjaW50eXJlLXNmMTQ1NDQ4MQorNDY2OTMgMjgwYjhlYWVlMWMwMzRkZGEwNWFjMmQ4NzJiMDZhMjhjN2IwMmFkYyBsZWdhY3ktdHJ1bmsKKzQ2Njk0IGM5ODlmYWZmZjNkYzZjNTJkYmEyZjE0OGIyMzIxMTIxMTc0ZDk5YzEgbGVnYWN5LXRydW5rCis0NjY5NSAzMTFmNzUxYWNhN2EzMzJkODgxNWIwNWQxNDBmYjk0NmM3ODhjM2RjIGxlZ2FjeS10cnVuaworNDY2OTYgY2IzYjQzOWMyOWNjZmRhOWZlMDgxZjk1MTk3NmRiMWQ2MjQ4MWZkZSBsZWdhY3ktdHJ1bmsKKzQ2Njk3IDkzMWFkMDZiZWM1NjE5NjlkMTQ0ZTVhOTAzZWRkODhlYWYzNDhhYjMgbGVnYWN5LXRydW5rCis0NjY5OCA2MjVjMmQ5OGExZjgwNWQxNzkzN2MzNmE4MzlhNTU5ZWQzMDczMGU5IGxlZ2FjeS10cnVuaworNDY2OTkgN2JmYWZkZWZmZWUyNjA5NTZlYzI4YWZkZDNiZjE1MzZiYTdkMjgwMyBsZWdhY3ktdHJ1bmsKKzQ2NzAwIDFlOGI1OTM4OWUyZTEwYjY4MjY4ZTk5MzE4ZjE0YTdiOThhN2JkMzYgbGVnYWN5LXRydW5rCis0NjcwMSAxZTg1NjU3ZjA0NzQwZDYwYjY5N2RmMjJiNDJjZWZlY2ZjOTZlMjI5IGxlZ2FjeS10cnVuaworNDY3MDIgM2EzNmQ1ZjViMTBmZDMwNGU1MTZmOGM5ODg4NjU0YjIwZmIyYjc5MCBsZWdhY3ktdHJ1bmsKKzQ2NzA1IGVhOTk2NmM4ODY1NzQyZDI4MDQ2YTgzZjQxODc5ZGViMmYyYmNmNTEgbGVnYWN5LXRydW5rCis0NjcwNiAwY2QyMjczYmMzYjE3NTZjODhjM2Y2YjY5MjNjMThjZTk2YzU1NDQ3IGxlZ2FjeS10cnVuaworNDY3MDggZGVmYjJiOTkzNDM0ZmYxZjY2MTk3NWQ2Mjk4M2Y3ZGYwZjFjYTgxMSBsZWdhY3ktdHJ1bmsKKzQ2NzA5IGEyY2Y4NzFiNzgwMGU4ZGRjMzczYTk0MGViNmMzNTcwMWI2NTRlZGYgbGVnYWN5LXRydW5rCis0NjcxMCAzZmIzODM1MWRkMzljYjczZTVkMmJiM2I0Njc1ODhmMTM2Mzc1ZWFiIGxlZ2FjeS10cnVuaworNDY3MTYgMmFmNTc1N2RlN2IxZTlhZDY0N2E5OTJmMmU2YzczMzI0YzgyODZlZSBsZWdhY3ktdHJ1bmsKKzQ2NzE3IDFjYjJlY2U0YjllMWRlMGVhYmQzOWQ2YWU0MWEyMGZlNDkzNjEzZjggbGVnYWN5LXRydW5rCis0NjcxOCBhMzY2OGU5NGZjNmQ0ZDQ3NzJiNGMzNDAzNGJlNTE1M2EyMDA5ZjQ0IGxlZ2FjeS10cnVuaworNDY3MTkgMWI0N2QwMzBjM2ZhZTVjN2Y1YWIzYjA2YmRmNzZmYjMzYTJlNjlhMSBsZWdhY3ktdHJ1bmsKKzQ2NzIwIDc3MDRmMzc1NDFmNDIzMWZlYmQ2MDJjZTMxMzI5M2Y1NjIzNDBkMDkgbGVnYWN5LXRydW5rCis0NjcyMyA4NzJlOTkxZjliNzAxNTQwOWVmNTdhNzlmMjM1YjA3NzYyYzhhZjYyIGxlZ2FjeS10cnVuaworNDY3MjcgMTEwMGI1MmM1NWZkZmUzNjQ1YmYxMzllNTYwNGZjYWNlN2U3YTQ3MCBsZWdhY3ktdHJ1bmsKKzQ2NzI4IGEwNzYxY2ViODYzM2E4MWEzNGQ4NGY5MGZkM2M2YzZkOTJkZGM2YTUgbGVnYWN5LXRydW5rCis0NjcyOSAwYjRlYWM0MDUwYjgwMDI4YmYyZjU1YTBlYzE3OTA0MWJmM2ExMDE4IGxlZ2FjeS10cnVuaworNDY3MzAgZmMzYmNkNGU0NGI5NjRhZTcyODAyNjlkMmU5MTI4NDBmOTU2ZTNjMSBsZWdhY3ktdHJ1bmsKKzQ2NzMxIDBlN2JhZmIxYjgyZjljMWExOWQyN2I4ZWE3Zjc4YzhkMjZkNDgxY2QgbGVnYWN5LXRydW5rCis0NjczMiA3ZDMxYjY2OTJhYjc0ODAxZGViMzVjNjU2MTA0MjA3YWZhMDIxYmIyIHJlbGVhc2UyNC1tYWludAorNDY3MzUgZTNjMDhmMDY2ZWI4MGQ3ZTgxZWQxZDg5OTBkMDM4ZDEwNTU1OWYwMCBsZWdhY3ktdHJ1bmsKKzQ2NzM2IGZjYmY2M2M5YjRmNmZjZWRhNjI1MjU4N2JjMWVkZmVmMTIzYmZkNTkgbGVnYWN5LXRydW5rCis0NjczNyA0YjBhM2QwZDg1ODQxYjc1MGY3ZjMxNGI3ZTdkMzNkMGU5YzY5Yjc0IGxlZ2FjeS10cnVuaworNDY3MzggMWUwNzA0Y2Q5ZWU4MWFhYTU4ODBmNWE4ZGIwMjNmYTRjOGIwZTcxNyBsZWdhY3ktdHJ1bmsKKzQ2NzM5IDVjNThmZGE5NWFhNWEyYmZkNDIxYzdhMWVkNGNiY2U5OGM1NDM0ZDQgbGVnYWN5LXRydW5rCis0Njc0MCBmMjhmOWMxNWUyZDBmOGUwMjMxN2U4NzBlNjZjNjVkNjY5MDEzNWM3IGxlZ2FjeS10cnVuaworNDY3NDEgMzU4MWQxZGM0MjUzMzcyMjMwNTk2ZWM4NDlhNmJmMGU2MTI1ZDE3MyBsZWdhY3ktdHJ1bmsKKzQ2NzQyIDFkMjM5YzdlOGQ2MDc1YTMxODYwMThhYjZiNGZhNDBkZmRhZDFiMzIgcmVsZWFzZTI0LW1haW50Cis0Njc0MyA3MmM4ZjE4ZTAzMTE4M2RiZTlhN2ZjZTlmZTY2MDMxMTFkOTYwOTliIGxlZ2FjeS10cnVuaworNDY3NDQgNzYxOTIxNmJiYzE5NGMzNDMxZjgzNzA5YWFiOTZmOWE5YWZiYWJlYyByZWxlYXNlMjQtbWFpbnQKKzQ2NzQ1IGQzZDk2MWYzODhiZTJiMDNhZjY0YjE0OGM3M2YwMmY0NjczY2VhN2YgbGVnYWN5LXRydW5rCis0Njc0NiBlMmJhNWFlNGI4MTNkOWZkMmMyZDI2OGQ4YmFmNmMyNjg0MjU1ODUxIGxlZ2FjeS10cnVuaworNDY3NDcgZTBkMjk1ODYyMTJhMzc3ZWRkOTIyNzM2OGY0YzNjNmQ3MGNmMzIxNSByZWxlYXNlMjQtbWFpbnQKKzQ2NzQ4IGRlZTczZmE4MTEwZjNlYWQ0MzAwZjkxNjQ1ZjY1ZGI4YzhlM2U0NWUgbGVnYWN5LXRydW5rCis0Njc1MCAxOWZkNjE0MTk0MGQ1YjBhN2I0ZmIyYzQxMzg5MTJhYmIwMjgzZDk4IHAzeWsKKzQ2NzUxIDI0OTMwZTNiNjA2MTlhZWMzMTljZGYzM2IyY2Y0MGJjOTMxMTgyNmIgbGVnYWN5LXRydW5rCis0Njc1MiAzNjVjYTA0ZDA4NTY0YTA5ZDFjZWJhYWRhZTc0NWIwOGE0Nzc2YzY4IGxlZ2FjeS10cnVuaworNDY3NTMgMDk5OTdiMmY2M2EyYzNkYWIyZTZjZDdlYTljYmZiZmYxYmZhMWIyZiBwM3lrCis0Njc1NCBhMTljMjBjNWU1Yzc1NjYyMTU3YjExMDJlMzZjMDdkMWUyYzAxYWI5IHAzeWsKKzQ2NzU1IDZiYTdkNDY2Nzk4NjdiZjlkNGFiNmVlOThlMTU1ZmNkMDExN2NhZDUgbGVnYWN5LXRydW5rCis0Njc1NiAwZTMxOTY2NzQ1NWMzNWM2MjIyNDM1NWIzNzI5M2VkZTRlNTAyM2I4IHJlbGVhc2UyNC1tYWludAorNDY3NTcgNWJjNzI3MmI4MWU1NDdkZmNjZWEwYjBmZmI4MDM1MjA5N2NmNzU1NiBsZWdhY3ktdHJ1bmsKKzQ2NzU4IDkzNWFjMjJmMGIzZjAyNmU1M2Y4ZGJjN2NiMWJjOWQ2NTEzNzE2MmUgcmVsZWFzZTI0LW1haW50Cis0Njc2MCA1ZjE5NTQ0M2UwMGFhOTA5YzkwNWZkMTUxYzM5ZmNlNzhlZGQ4NDkyIGxlZ2FjeS10cnVuaworNDY3NjIgNGU3OThjYWEwODJlNWNkZDEyYTJkN2UxZjcyZmNlZTFiN2JjYzA1OSBsZWdhY3ktdHJ1bmsKKzQ2NzYzIGMyMDM4NDA1N2EwNmMyN2I3MzYyNTVhMGI4MmI4NGQxOWRhNTY1OTQgbGVnYWN5LXRydW5rCis0Njc2NCBjM2M1MmYxNTk5OTlhZTk0NjBhZmRkYjRkNjM3Y2MxMjIxZjkwZmE5IGxlZ2FjeS10cnVuaworNDY3NjUgZWNhNGZlMTMyOTQwYmQzYzUyYWE2ZGIxMTBlODllYjQyMzU2MTJjMyBsZWdhY3ktdHJ1bmsKKzQ2NzY2IDJlYTI2M2I2Mjg5NzJlNDUyNzNmZDlmZGViOGJlMWVlOTY2NWI2MjQgbGVnYWN5LXRydW5rCis0Njc2NyBkZWJjOGQ3ODNmODY5ZTVhOGM4YTcyOThmNzI0MGNhYzFjZjlhMjc3IGxlZ2FjeS10cnVuaworNDY3NjkgMGExYmFkMzJhYmZlMzlkOWEwZGMwYmIyNmNjNGM1MGY1NmViODBlMSBsZWdhY3ktdHJ1bmsKKzQ2NzczIDY3ZjQzMGQ5MmIzOGU1Y2E0NGMyMmM3NjNhNmY0MzE3ZjlhZmY4MzQgbGVnYWN5LXRydW5rCis0Njc3NiA0NjU5OWZjNDg2ZThmZGFhZjIxZjhiYjgzYjlhODhiNGRmMjA0ZjA1IHJlbGVhc2UyNC1tYWludAorNDY3NzcgYzU3MzIxYzg0MjI2YzkxNjc5NmE4ZWQ1YzA3ZWMzYjVlZDE2YjI2ZSByZWxlYXNlMjQtbWFpbnQKKzQ2Nzc4IDc3YjY1ODlmYWRiOTdkODVlMGM2NDVjODE1Yzk4OWYzNGU1NTY0YmYgbGVnYWN5LXRydW5rCis0Njc3OSA0ZWYxYzY4NWJjYmRjZTQ0NDNiMzI4YWUwN2M5Nzc3MDM5ZmYzMGY1IGxlZ2FjeS10cnVuaworNDY3ODMgMDVhNDljODk4NWZiMDlmNDc1YzdhMmE5ZjQzYjlkMTgzYTk2OTk3NiBsZWdhY3ktdHJ1bmsKKzQ2Nzg0IGFjMjVlZWU5MDI1NDE3NTEyMWJjZWExNTc2MzVlOWVkZjFmOTJkNzYgbGVnYWN5LXRydW5rCis0Njc4NSA3MmUzN2FkYTQxNzA3MmZiMWExMzAzMDhjZThlMzBlM2YwYjdhY2FjIGxlZ2FjeS10cnVuaworNDY3ODcgNzBhYWMyYjkzZTA5YTNhNDg5MDBiMjViZDNiYzhkNWJiZWNlYzIwZCBsZWdhY3ktdHJ1bmsKKzQ2NzkyIDZlOGQ5OTcxODE3MDBkNDFjMjIzMjZmY2QzNDk4MjhlNmMxY2I5ODcgbGVnYWN5LXRydW5rCis0Njc5NCAxMzVkMTU4NmIzNWQ1NGJhYzgxZDcxZmE0NmUyZDZhNzk4NDgyMzljIGxlZ2FjeS10cnVuaworNDY3OTUgMWNhZmJjZDdmNTVjY2NhOTFjNDA4NWIxZjVhNmVhNWFmOWFmMmFlNSBsZWdhY3ktdHJ1bmsKKzQ2Nzk4IDc2YWQxMThmZmUzYjVmODU2Mjg2NzU5ZjBlZGM3NTNkNDhlZjdiNDggbGVnYWN5LXRydW5rCis0Njc5OSA1YTc0MTkzNDI5ZjA2NGUxMjVkZTkzNjJjYzE4NjM2NDRkOGJhNDJhIGxlZ2FjeS10cnVuaworNDY4MDAgMDdmMjQxOTdiODdjZDcwZDIxMTY4YWYxYTExNGM1ZjM2Y2FjZmM0MCBsZWdhY3ktdHJ1bmsKKzQ2ODAxIDI2YTk3ZTViZGYyMTIxNTExMDNhN2I4MzBhNDUzN2VhMTc0NjkxYTEgbGVnYWN5LXRydW5rCis0NjgwMyBiMTI5YTUwMjcxYWRmZWM3OTIwNjIzNmNjMmVjNTM5NDRiZWZjZTU0IGxlZ2FjeS10cnVuaworNDY4MDQgMTgyOGFmNWRjYzk5NDRhMmY3ODU1YjdmY2IxNjg2NGI3OGIzYmE5ZCBsZWdhY3ktdHJ1bmsKKzQ2ODA1IGJhNmVlYmY3YzcxOWRmYjU4YTVlMzk1NGE4Y2U1YjI0YmZhMzg5MDkgbGVnYWN5LXRydW5rCis0NjgwNiAxNmM3OThlOGVhZTMyN2I4NWE0NjBjYmJhMWNlYmZiNDQxOTc2MzkwIGxlZ2FjeS10cnVuaworNDY4MDcgNDkzZmI1Nzc5MzJmMmQ4ODMxYTQzYjUzMTljNGVjOTdmMjhhMTdlOSByZWxlYXNlMjQtbWFpbnQKKzQ2ODA4IDQyZmU2ZGUyNDYwMmZkNDBmNDJlMzkzZWQxMzQ0MWNmNTQ5YTNlZTcgbGVnYWN5LXRydW5rCis0NjgwOSBhZDVkNDczNWJlZGM4NDZjNmFlZjIxYzEwMmVjZGJjY2NlYTVjMzIxIHJlbGVhc2UyNC1tYWludAorNDY4MTIgNjc0NTBkYjI2ZjgxNjdlNzhiYmMzZTA1MDk3MDgxNDdkNTU3Y2JlNSBsZWdhY3ktdHJ1bmsKKzQ2ODEzIGUxNWZhZmE0MTA3ZDIwZDZiMGQ0MTlkZmI3YmYzZGQ5YjJkZTg1YzMgcmVsZWFzZTI0LW1haW50Cis0NjgxNCAwOGIyNGM4OGQ1MTkwMTBmNTEzM2I4Mzk0Mzg3YzEyNzZlNDg0ZjVlIHJlbGVhc2UyNC1tYWludAorNDY4MTUgZTdkMDg0Y2Y2NWJiOWI0MDg0MGNlZTkzM2RhZjFiYmM1NTBiYTQzOCByZWxlYXNlMjQtbWFpbnQKKzQ2ODE2IDQ1NGFhMGVjMGViN2IzYTZjYjM0MWNjMjEwMzA0NmEzMjQzYWI2ZTEgcmVsZWFzZTI0LW1haW50Cis0NjgxNyA4MjMzMWYxMWExNTYwYmZlM2NlZjQxOTgxYmJhOTRhNGQ1ZmRlMGVjIGxlZ2FjeS10cnVuaworNDY4MTggZTJkMmRjNTA2NTI4Nzc5YmJkMjVkNjk1MDI0MWFkZDEzM2E3NjBhMCBsZWdhY3ktdHJ1bmsKKzQ2ODE5IDQyODA4NTI2NTExYzliYjQ5MjBiMWUxMDcyMjFmOGVhZDE3M2VmZjYgbGVnYWN5LXRydW5rCis0NjgyMCBiMjNlZWI4MDI3ODA1MjNiNjU0OTZlNGJiZjVlYTZjODI2MmIzZWE2IGxlZ2FjeS10cnVuaworNDY4MjEgMzEyNTA5OWIzNDk3MWMzMGM3Njk3ODNlZDM5MDBhNmU1MWNlYTIxNiBsZWdhY3ktdHJ1bmsKKzQ2ODIyIDJkZDE5NzAxNDYxMjJhZGVjZWM4NzY5MjZkMjQ4YjU1MjY1YWFlODEgcmVsZWFzZTI0LW1haW50Cis0NjgyNCBhYTVhMWJjYTI4ZGQ4OGNjYzJkZWMxNGI1OWU0M2E0ZDgxZTY3MGY4IGxlZ2FjeS10cnVuaworNDY4MjUgY2Q1ZjJjNWJhYjY1M2I1NTczNmU3NzNlYWUzODVhYjQzMmMyZjhkMSBsZWdhY3ktdHJ1bmsKKzQ2ODI2IDUzOGNmMTg4ZjhhNmNiYzIyMDhhNTIyNjJlYjlhYmRiOWYyNjA2NDEgbGVnYWN5LXRydW5rCis0NjgyNyBiYzA5MTE4MWI4NDEzOTU1MDdhNzc4MDIxZjQ1OTVmMWIxZTRiMjRjIGxlZ2FjeS10cnVuaworNDY4MjggMDE0MjUzNmI1MmI2NGIzYTgzNmE2Mjc4MDc3ZjZmMDViY2U0YmMxOSByZWxlYXNlMjQtbWFpbnQKKzQ2ODI5IGM1YWZkNDQwYTRkMDlkMGRlMGM3NzM3ZTUzNzFjZDJkMzVlNzJlN2IgcmVsZWFzZTI0LW1haW50Cis0NjgzMSA5MjQ0MGRlODY4ZTkzZmVmMTNiMzM4M2JlOWNjNTEwZTk3ZmI0ZGZjIGxlZ2FjeS10cnVuaworNDY4MzQgYTFkZDI1ZWMyZjViYzY2NTU4YzMzODlkYWI1NWIwYmYzMTJlNzk4NyBsZWdhY3ktdHJ1bmsKKzQ2ODM1IDczNjY1ZjZmZWMzMTVhZWNmMzBkY2Y3ZTMxYWY0NjhmZmE3ZDliNDUgbGVnYWN5LXRydW5rCis0NjgzNyA3YjMxOGU5NmY4MGFhOTQ4ZGFhNDBmMWNhMDcxZTk5ZTFiM2EyY2U4IGxlZ2FjeS10cnVuaworNDY4MzggYjhmMjI4NTFjMWZmMWU1OTkyNGM1ZTdiMjY1ODBiOTNhOTAyNjU1NiBsZWdhY3ktdHJ1bmsKKzQ2ODM5IDBiM2ZlMmI3MzRhMWRmZjE0MDY1NWYxM2MzMGM4M2RiNTUzNmU2NDcgbGVnYWN5LXRydW5rCis0Njg0MCBiZjRlNDg1YmVjZjM3NzYyMmIwZmMyYmFlOWUyZWJlZTdjMmNkMzBlIGxlZ2FjeS10cnVuaworNDY4NDEgMTk1YTBkM2VlY2Q0NWViNzQzYWIyMDRiZjhhMmU2MzA3YTFlNjM4NCByZWxlYXNlMjQtbWFpbnQKKzQ2ODQ0IDlkODQ3OGY3MzJkNWFkYzkxZjFjN2RjOGNiMjk5NDBlZmYxYjQ3N2MgbGVnYWN5LXRydW5rCis0Njg1MCA5YTk0NDY3NjczMmE3ZGIwZTQwYmI2NWM4ZGVmNjY1YzMzMjgyODljIGxlZ2FjeS10cnVuaworNDY4NTEgZTgwMDk3YmY3M2I2MGZhZDhlN2YxNDBmMzAzNjVkMTM1NjNhZWNjZiBsZWdhY3ktdHJ1bmsKKzQ2ODUyIGU2MTU3NTVjYTg3MjVmYjBiOWY4ZmNkNzE1Y2NkZDM5Y2I1NmViY2IgbGVnYWN5LXRydW5rCis0Njg1MyAwYThhMzkyZTFmYWVjZjMwZjgxMzUzZTgzMTcyNTBkMzkzOGI1NmQ3IGxlZ2FjeS10cnVuaworNDY4NTQgYWYxNzQyYTgwNDllYzc4ODZlODRkNTEwNWVlZjg5M2ZjMjBmNGIwZCBsZWdhY3ktdHJ1bmsKKzQ2ODU1IDUwMWVlMmEwNWZlYzRiOGZkMGRmNWI2YzI4OGVhYjcyYjM1ZDhlZTkgbGVnYWN5LXRydW5rCis0Njg1NiBhZGYyMDg5MmQ4Y2ZiYzBjZWZmZGM5N2JkYjE3N2YxYWFjOTkzYWJlIGxlZ2FjeS10cnVuaworNDY4NTcgNDkwMjZhZjlkMWQ3OWM0MWEwYTdhYTY0YjJmZWJkYmQxMzQ1M2ZhNCBsZWdhY3ktdHJ1bmsKKzQ2ODU4IGU4NDY0YWZlZjRhNDFhYTlhN2IyZjYxNWMwY2MzMWI4ODBkNzBjYmUgbGVnYWN5LXRydW5rCis0Njg1OSAxYjNiNmIxOTgyYWFjZDAzMTQ4ODhlZmZiODFiYmVkNWM2NTE2NzM2IGxlZ2FjeS10cnVuaworNDY4NjAgYWIyNTNjZDQ5N2QyMTM3NjczMDJiYmViNmEyNWY4OGEyYzAwMDRhOCBsZWdhY3ktdHJ1bmsKKzQ2ODYxIGZjNGFmZWU0MGMyYjNiODU4YTk1OTc0YmMzNDE3ODUxOTM3Mzc1YWEgbGVnYWN5LXRydW5rCis0Njg2MiBhNzg5MzkwZDhlYTdlZGRlN2QwNjM0ZTdjYWE4NDU1YWI3YTg5NGMwIGxlZ2FjeS10cnVuaworNDY4NjMgYjUwYWIyODhhZTI3ZmY0ODk1NzBiZTMxYjg2YTMzNjhjMzg5MWRmNyBsZWdhY3ktdHJ1bmsKKzQ2ODY0IGQ2N2RlZDdhMjkxNGU0Y2YzZjljMTVhMTgyNDcwYWI0MzFhZGUwZjYgbGVnYWN5LXRydW5rCis0Njg2NSBmY2ExZTQyNGQwMjM4Zjg5NTJiMDg4M2Y3ZWI5Yzc3NDQ1NGQ5OTBmIGxlZ2FjeS10cnVuaworNDY4NjYgY2JmMjcyZjQ3OWQxMDdiMzIzZWNhNDA2Mzk2MzJhMDk5ZDg4OTYyZCBsZWdhY3ktdHJ1bmsKKzQ2ODY3IDVhOTk0ZDI2YTNjZjg5NGJhOWExNmVhODg1ZmEwYjdmYzA1YTk5NjUgbGVnYWN5LXRydW5rCis0Njg2OCAwYWNjNTJkM2ZiZjFmNDM1YTNmYzNiZTdiMmJlZTE4N2I3OWY4YzhiIGxlZ2FjeS10cnVuaworNDY4NjkgZTZjODAwYTQ2M2IxMzEyOWQzYzcxODAyY2FhNWQ0MzdkMzE2MWZmOCBsZWdhY3ktdHJ1bmsKKzQ2ODcwIDhiYTk3Y2NiZjkzYTgzZjZlNmJmYTgwNjJlNWRiYmViYmU4NTYwNzIgbGVnYWN5LXRydW5rCis0Njg3MSA2NmNiY2NlNDIyNzhmMjJkMjE0YjY4YTZlYjJlZmVjNzU5ODkzYTVlIGxlZ2FjeS10cnVuaworNDY4NzIgMWZhNzhmZDFlOTMzOTE0NzRmYzg5NTMxNzA5NmU4NWUyZTQ0NzJkMSBsZWdhY3ktdHJ1bmsKKzQ2ODczIDYwZDc5YTJiYzk5N2U4Y2MwYzMzMDQwOGUzMTczMTJiM2I3Yzk5MTIgbGVnYWN5LXRydW5rCis0Njg3NCAxYTExYTRhNDlmYjg1YTNmOTZmNGUzNGYyNzBiZmIwZmRiMDc5NDVmIGxlZ2FjeS10cnVuaworNDY4NzUgM2VlZTdiZDlhMGQwNzJiNDNiZGM2ZWQ3MGM3Zjc1MGUyNDlhNmQzNCBsZWdhY3ktdHJ1bmsKKzQ2ODc2IDQxNTcwZjA5OWE0YzNlNjUxZjZiMmQ1N2Q3OWMwOWI2NzA3NjZjMWMgbGVnYWN5LXRydW5rCis0Njg3NyA5MmQ4Y2RjNGI5MGMwMmM0ZDE3NWZhNmE0NzBhNzM3OTg1MTI2NDA0IGxlZ2FjeS10cnVuaworNDY4NzggZjE0YWI3MGMzMjBlNDhmZDJiNTJlMzFmYzdhODdiYzI1MDcwNWU2ZiBsZWdhY3ktdHJ1bmsKKzQ2ODc5IDY5ZTg5YzI5MDQ0ZTJiZGQwZmI5Yjc1NTNiMGY5YjVmOTMyZmE3NzggbGVnYWN5LXRydW5rCis0Njg4MCA0N2Q4ZDE5Y2NhZGM3MDUyYmE4YzJiNTI0NjlhMDFlYzUzMDdiNGM5IGxlZ2FjeS10cnVuaworNDY4ODEgNzk5ODNjZjYzNGMwMjVhYjRhNWU3MWVlODdkN2M5OGYzNDgwZThiMCBsZWdhY3ktdHJ1bmsKKzQ2ODgyIDQ2ZjNlYjQ3NGM4NDJkMGIwMGFlOTI5MWNiMzU3Zjc2MTFlMjlhNGEgbGVnYWN5LXRydW5rCis0Njg4MyBhOTFlNzM5Y2UzMzMyNWZhNGFhZjEwMDI0ZmNkOGEzODg3M2QwOTZlIGxlZ2FjeS10cnVuaworNDY4ODQgMTg5MzA0YzlkMDdlYWRhNGNkNGMyMTkxNzJhYjVlZTU5MGMyZjQ5MCBsZWdhY3ktdHJ1bmsKKzQ2ODg1IDJhYjAzOTRlNmU0OWI0ZjM1M2I4NmIwM2NlZjk2M2Q1YTUzZTZlZDYgbGVnYWN5LXRydW5rCis0Njg4NiA2MThkMDg4ZDk2Njg5Y2Y3ZGRhZTc4M2UyYzRjOGY5Mzg0Y2JiY2NkIGxlZ2FjeS10cnVuaworNDY4ODcgMWRhODQ1NmViZDQ4NzE5YTRlYmQ3ODdlNGZiYjM1NjVjMzAzMDkxNSBsZWdhY3ktdHJ1bmsKKzQ2ODg4IGQ1NzcxYTM4OWI4ZWI3YTk4NTc4Y2Q4MDVlZGQzZTEyNjBmZDUzZDkgbGVnYWN5LXRydW5rCis0Njg4OSAxNzAzZWZkYTU3NzQyZDE4MWJlMDQ1ZjIwNzA4ZDY1ZDkyZGI5OWQxIGxlZ2FjeS10cnVuaworNDY4OTAgNTE3MzJlODFjNzk2MTQ2N2Y2ODMyZWI2ZmI4YzAzYTg3ZTNjZjM4ZiBsZWdhY3ktdHJ1bmsKKzQ2ODkxIDhmZTM3M2ZiMjFkNDMwYzRhNjRlYjQ1NGQwMWVjYmQyZGZiNWI5NDYgbGVnYWN5LXRydW5rCis0Njg5MiA5NzFhYmYzYWVjZjQxMTU4Y2M3MGMxZGI3OTNkMTQ1NGYxNWFkZTE4IGxlZ2FjeS10cnVuaworNDY4OTMgOTdiNjFkNmY2Yjc2ODE2MjA0N2E5YzY0ODYxYTE3YzUwYzUzMzgzNiBsZWdhY3ktdHJ1bmsKKzQ2ODk0IDRjNzRlYzgzMWE2YzNiZmVlM2Y4NDQ5M2ZjODBiYjliYjc2ZWI0MmQgbGVnYWN5LXRydW5rCis0Njg5OSAzODFhNzJhYjVmYjgzOTRhMmQzZWEyOGJkNzBjMTAwZDYzNmM3ZDFhIGxlZ2FjeS10cnVuaworNDY5MDEgYzg2MTg0NzNjZGM2ZTgxNmI2OWNiMGNhZTBjOGE1NDkyZDBkMzJkYiBsZWdhY3ktdHJ1bmsKKzQ2OTAyIDUxZjMzNDJiNzBkM2NmYTczOWVkMjBmZGY3ZDQ0NWUwYzIyYzY0MzIgbGVnYWN5LXRydW5rCis0NjkwMyA3NjVmYjFjY2MzZDg5NGRiZGIxYWRhOTFkM2ZlOTQzNjhiNjI2ZGM3IGxlZ2FjeS10cnVuaworNDY5MDUgOWI4NTA3Y2ZiZTk1MDEwNTlmMjc3MGZjZWQyOTVkMWM5YjdhN2JkYiBsZWdhY3ktdHJ1bmsKKzQ2OTA2IGE0NTUyZjA4ZDUzYjM0MjczZWY0Y2M0NDY1Nzk1OGU3NDU5M2YxODcgbGVnYWN5LXRydW5rCis0NjkwOCA5YzUyZWZjYWZmNjUxZGVlODU5MjEzN2Y5OWM3ZjNjNzM3NDU0Mjk1IGxlZ2FjeS10cnVuaworNDY5MDkgNzBiMTY2Y2ExYzQ5ZTIzNzg4NTUyMmU4MjRkODBmYTlkZThkNGY0ZCBsZWdhY3ktdHJ1bmsKKzQ2OTEwIDkxNGRhMTAzNmVlZDVkYjZiMDY4YTZjODA4ZWE4Y2ZjZDMyZTc1NmMgbGVnYWN5LXRydW5rCis0NjkxMSA5MzY0MjllMTBiODc5NmViNmJlYzMxYWZkMzA5NTBlMjQ5Mjk0YmIyIGxlZ2FjeS10cnVuaworNDY5MTIgZWEzNzIzYjJkNDZiZDE3ODA0Njg0YmJhZDI4ODExZTEwYmU2NzYwYiBsZWdhY3ktdHJ1bmsKKzQ2OTEzIDY0NTYwOTJjMTIzNWExNzAxYTc2NGE3Y2VkZjk2N2JkNDQyMWJiZmUgbGVnYWN5LXRydW5rCis0NjkxNCBlMWIxODQ3OWNlOTMwN2QzZjVmYTgxMjQ5MTBhNTNkNGQ4OGMzY2M5IGFpbWFjaW50eXJlLXNmMTQ1NDQ4MQorNDY5MTUgOTgxMjJkMjE3NmYxNDBhMWY1MDI3N2Y5MzI3ZjIyNjI1OTk1ZDdhMiBsZWdhY3ktdHJ1bmsKKzQ2OTE2IDVkYjFmYTZlOTY4MTgzNWY1MmQwY2M5NzRmODQxODVlOGRkMjk2MGYgYWltYWNpbnR5cmUtc2YxNDU0NDgxCis0NjkxNyA5OTIxMjZhMjllMGZkMzhkNGRmYzA0ZGQ3MTQxMGExMWZlMGExZDUxIGxlZ2FjeS10cnVuaworNDY5MTggNGU3NGRmOTU5NTE4YTRiNzM4M2M2ZWQ0ZWNjZDY2NmEyNGRmMTIzZiBhaW1hY2ludHlyZS1zZjE0NTQ0ODEKKzQ2OTE5IGY3ZDIzYmNhNTk5ZmViY2JkMWU0ZTE5YzEwMWZlODFmMWQzYjRlYzYgbGVnYWN5LXRydW5rCis0NjkyMCBhNzE0ZjJmMTNlMjVmMjI3MDRmMTdhYTE4MjQ0MGJlNTU0OWEyNzRlIGxlZ2FjeS10cnVuaworNDY5MjEgM2U5NmU1MDI1ZDlmN2FhZTRiMDRmMzY1Nzg2Y2M1NzZkYTUyMTlhZSBsZWdhY3ktdHJ1bmsKKzQ2OTIzIDZmMmYxOGY4NjM4NzQzZDQ5YWQ0N2QxMjkxZTQ2YTVlYTJhNWJjNTYgbGVnYWN5LXRydW5rCis0NjkyNCA2ZjMwNjExZjI4M2RjYmU3MmVmNzYwOTA2ZjcwNWYxODNiZWY0Nzk3IGxlZ2FjeS10cnVuaworNDY5MjUgNWQ2MjJlNDgzZmNjZmE2MmRmNTdiNDRjMzQ0OTNlMWMzMjU2ODk2OCBsZWdhY3ktdHJ1bmsKKzQ2OTI2IDUxMjUwNzY2ZDZmNWQyNTEzMjAyMDg2YjZmY2I5NGI4NTJjMWFlNzQgYWltYWNpbnR5cmUtc2YxNDU0NDgxCis0NjkyNyBiYjFmMDJlOTcxMWRhNWY1M2VhZDI3YjcyMjNmNWM0YWEwNGJhYTA0IGxlZ2FjeS10cnVuaworNDY5MjggMjE2NzEwNTEyM2U0NDc4YmFhYzc1M2MxNDk2NDdhYmQ5OWJiNDlhZiBsZWdhY3ktdHJ1bmsKKzQ2OTI5IDZlMGMwYzdjZjA2ODlhZDQ4MGNjNWVmZTE3MmE1ZmQyMGVhOWM0YjMgbGVnYWN5LXRydW5rCis0NjkzMCA3MGMyZWZhMDAwMDc4ZjI5YzRkY2VkMjVmMjY5OTUxYzUyYzhmMjNkIGxlZ2FjeS10cnVuaworNDY5MzEgYTI0OTBmNzkzMWQzMTEzOWViNWQ3ZGZlYjIwZjRjYTk5MWI0ODI3ZCBsZWdhY3ktdHJ1bmsKKzQ2OTMyIGJiNjg0YTBjMjJkOTYzNGEwY2YwYzM3NjFiMGY2ODlmOTZmMjk0NzYgbGVnYWN5LXRydW5rCis0NjkzMyA3NGJmNTczYmZmNGMzNWU3YTg1ZTI5ZTg1MTE4YWFjMjIyZGExYzI5IGxlZ2FjeS10cnVuaworNDY5MzQgMGE1Y2YyNTk0NWUyYjY3NWNkNTJkZGExOWMwOTRkM2YyYTVhYjgxYiByZWxlYXNlMjQtbWFpbnQKKzQ2OTM2IDNlNWZkMmI3MGU1YTcwZDVlNTcxMzk0ZmYxNTIxYzMxNGY3NjRkOWMgbGVnYWN5LXRydW5rCis0NjkzNyBlY2U4YTY3NTFkYjc0ODhiN2I4MDdmNmUzMTgxODcwNzk2N2UyZWUzIGxlZ2FjeS10cnVuaworNDY5MzggNmY3ZTY0YjcyYTU4NzllYTZjZGM4MDE1MjZmY2U3ZmUxMjhlN2Q1MyBsZWdhY3ktdHJ1bmsKKzQ2OTM5IDQ1NTg5MTZiODQxZjFjZmE3ODI5OTE5ZDczYzViMmQ1OGJkMGI3NGIgbGVnYWN5LXRydW5rCis0Njk0MCA2MmNmNmQ1OGJiNTNmYjZiZGVhYTA3MGE1NWJlNTRjNmU1MTdlNWI5IGxlZ2FjeS10cnVuaworNDY5NDEgNTc5NmFjZmJiNmRhMTY3ODRiZDgyMTE2NTBiZmMwNGE1YzkwZmUyNCBsZWdhY3ktdHJ1bmsKKzQ2OTQyIGI3YTM2MjBkM2RiYjc2NzA1ZDI5NzJmNjNhNDQ2Y2Y0MzFjOWI0ODMgbGVnYWN5LXRydW5rCis0Njk0MyA2ZDgwNzZkMzgwNTk3YTY2OWRmNGMxMmEyMWFjN2ZhZWE1ZmUzMGVkIGxlZ2FjeS10cnVuaworNDY5NDQgZDg1N2EzMjA3NWQ0YmVjMDcxMjk4M2MzYTNjMzljZGVkYmIxYzE4MyBsZWdhY3ktdHJ1bmsKKzQ2OTQ1IDU0OWM1NDc3MDBhZjg3MjVlNTA0ZWJkYzA5NWQxNTg1ZjdkZDE5NWUgbGVnYWN5LXRydW5rCis0Njk0NiAwNjlmZjNhNzA2OTQxMDRhNDNmMWM2MWY0OTFmYjZkYWNjMjRiM2VhIGxlZ2FjeS10cnVuaworNDY5NDcgYzk1OWRlNjRhOGRhMTg3ZTFlZTg3ZTE3NjM4MDBjOTc0NjUyOTA0ZSByZWxlYXNlMjQtbWFpbnQKKzQ2OTQ4IDQzNzdiMTdkZGIyY2ZlNTAzZGFiODJjNWU3NDhlM2NjMjY5YjZlNGQgbGVnYWN5LXRydW5rCis0Njk0OSAwNjkwNjI4NTkyOThjNTI0MmYxYzljNmI1OTY4NzM1MTQwNTU5NjYzIGxlZ2FjeS10cnVuaworNDY5NTAgYzUyMGVlY2UwMWIwMzk2ODRiNWM4MmI3YTdhNTljN2FlYzhkNGNiMyByZWxlYXNlMjQtbWFpbnQKKzQ2OTUxIGQ2ODc3ODM1NzkxZDdjNjQyYTNkZjA5MmE1Yzg2ZDk0Njc1ZTY3OTYgbGVnYWN5LXRydW5rCis0Njk1MiBiN2Y0YmE2MDFkZjk3YWY3Y2U1YzNhY2MzNWYyMjAwYWNmZDFiMDQ4IGxlZ2FjeS10cnVuaworNDY5NTMgOTE3YmVlYTU1NTk1ZDliYjA2NTBlMGNhOTc1ODRkYzY5ZDZhYmZmYyByZWxlYXNlMjQtbWFpbnQKKzQ2OTU0IDE2ZTA1YzYwNjI3NWViODhmZjVlODM3ZDhiOWI3YzhiNzcyNWFlOTkgbGVnYWN5LXRydW5rCis0Njk1NSBkMWFlYzdiNGRiYjg2OTNmNDM4OTJmZjdhNmFiMTgxMmUyNjFjNWY1IGxlZ2FjeS10cnVuaworNDY5NTYgMDNjMDVjYWI1ZjIxMjc3YTllMWIxOWJmN2NkYjQ4YTVlOGRjNmE0NSByZWxlYXNlMjQtbWFpbnQKKzQ2OTU3IDBmNzZhNTZkNTA2Y2MyMDBjOTQyZGI0OWFhZTEwMWFhYWMwMWRlMzcgbGVnYWN5LXRydW5rCis0Njk1OCAwY2YyZWIzY2M1MGE3M2I2ZTc0NjI0ODM2N2QxNjhkNmQwZTlkNDc1IGxlZ2FjeS10cnVuaworNDY5NTkgODY4MDg1M2U5ZWU0MDk3NjNmZTE4ZDBjMzFmMDhiNDI1ZThkYWVlYyBsZWdhY3ktdHJ1bmsKKzQ2OTYxIGQxNWRmMDJkYjFjYzEzZjdhYzQ0MThhNDhhMTNmOTRjN2E1MmIwZTEgbGVnYWN5LXRydW5rCis0Njk2MiBkN2JjNjQ3MGU4MzgzNWNiZGUwZjIyNzZmZGYzZDQyNDI4MTJjZGZhIGxlZ2FjeS10cnVuaworNDY5NjMgMzJhZGFhZDU5ZmIzN2Q3OWFiMzU5OTU0MjExODI1ZjE2YzA5N2NhMiBsZWdhY3ktdHJ1bmsKKzQ2OTY0IDBhOGI4NTFiMDM3NTIyOWViZWUwNjNkNjEzYzFjZTZjODE5ZmMwNzQgbGVnYWN5LXRydW5rCis0Njk2NSA3N2IwMWM5MzMzMDg4YWZhNmU0YzFkNDdjNDIxODMzMzgyNWMwODA3IGxlZ2FjeS10cnVuaworNDY5NjYgYTlmOWI1MDc1YmMwY2YwM2NlY2JlYzk1ZDM5MWQ1ZmJiY2Y1MWQ1YyBsZWdhY3ktdHJ1bmsKKzQ2OTY3IGZkNDEyYTAwYTA3ZGY0NTljMmFjMzQ5MDI0MjE5NTMwNDllYzIzODMgbGVnYWN5LXRydW5rCis0Njk2OCBkNGIxZjlhMzFjMjk2OTg1MDMzM2QyNWQ1ZTRmYjQ2MjViMDc2MTE1IGxlZ2FjeS10cnVuaworNDY5NjkgOTkzN2YwOWQ3NmUzYTBkZThhZGZiOTQ2NWMzYWNjYmUyNTg2NWJkZSBsZWdhY3ktdHJ1bmsKKzQ2OTcwIDc5M2YwMjY5OTNiYjI5ZDZjYzkxNTkyNjUzMjlmMjA2ZWQ2NzBiZWMgbGVnYWN5LXRydW5rCis0Njk3MSAzYjY1ZWVmYmFmNzZlM2RiZDBmYzdkYThhMmIxYzI3MDI5ODg3ZTRkIGxlZ2FjeS10cnVuaworNDY5NzIgMzRiNjk3MDQxMTkxYWU3MWUyNjg3YjQ2NWU3NTM0ZmFhZWI1NzRkNCBsZWdhY3ktdHJ1bmsKKzQ2OTc0IGM3N2JlNWM0MDYzYjMxZTRiODdiZDdmM2I2NjlhOGUyNWYzYjU1YTUgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis0Njk3NiA5OTM4Nzc3NGViMWRkYTExOGUyODdmNmIwMTE4ZWU1YTViNmE1Mzg2IGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNDY5NzcgNTRkZjM1ZTljNjk4YTdmOGQ4NWJiMWVjYmZhMGEzYzcyYzU0Yjk1YSBob3h3b3J0aC1zdGRsaWJfbG9nZ2luZy1zb2MKKzQ2OTc4IDllNDgyODAwMGNmYTkyOGJhMTE5ZDBmNWRmMWZkYTNjMTY3ZDNlNDUgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis0Njk3OSA3ZGJiZTc4NmZkY2QyM2RmYTc5YjhhNWMwMzgwNWZlYzQ1NGNjNjliIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNDY5ODAgMzczMDQzYTFiZGZiYjg1MDFlOTQ1Y2Y5NDY2MTA1NjNiMDQ0Y2VhNCBob3h3b3J0aC1zdGRsaWJfbG9nZ2luZy1zb2MKKzQ2OTgxIDkyZWI2ZWQwM2MyZTFjYzg1MDEyMjg0ODU4ODRmMDg2N2E3YjBlN2UgbGVnYWN5LXRydW5rCis0Njk4MiBjYWNkNDdhNjFlNzk2ZGZiMzY3NDQxN2Q0MDI1Y2IzNzM5ZjEwMTRhIGxlZ2FjeS10cnVuaworNDY5ODMgMWY5NDdmMTM0MWQxOTQ3YjMyYWJkZjA5MmQxOGVjZWNhNDg2YmYwOSBsZWdhY3ktdHJ1bmsKKzQ2OTg0IDlhOWQ1NzgyZTQzNjdiOWEwMThkYzZmNDI5Mzc5ZTUwOWRlNTQwNmYgbGVnYWN5LXRydW5rCis0Njk4OSA5ZTgyN2ZkODMxZDc3Yzg0OGY3NjRhYWVjYmFmYjAwZWUwYjgzYWYxIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNDY5OTAgYjVlZmEyM2NjOTQ4OGQ3YWQzNjZhZmRiMDBmNjQ3MmRlZjYyOTZjZiBsZWdhY3ktdHJ1bmsKKzQ2OTkxIGU3NmI2ZjNhNDQxOTM5MzUwMjQzOTNkMDUxYmIzODEwYzdlOTJlZDEgbGVnYWN5LXRydW5rCis0Njk5MiA2YjRkYTRlZTcxNDZlYjkwNjZiYjllOGNjZGY4YjZmZGJhNzRjMjdmIGxlZ2FjeS10cnVuaworNDY5OTMgZTBjM2Y1YTQ0NDBmZDQzNDFiYzdkNDZlNDI1YTBlNTVkNzQyYjNhYSBsZWdhY3ktdHJ1bmsKKzQ2OTk1IDU1N2U2MjEyNmNiMWRjMjJlYjg1YjBlNTk2OTQxYTZlZGQwNjBlZTQgbGVnYWN5LXRydW5rCis0Njk5NiBiMmE0YmU0NzM3MjgyMzAwYzRmMGY1NTU3ZGY1NmU1ZjViOTNkYThiIGxlZ2FjeS10cnVuaworNDY5OTggOGE1MGQ4ZTkwMThjODQ3OTU3MDBhZWQ4ZDlhN2Q4YzI4MzkyZjJhMyBsZWdhY3ktdHJ1bmsKKzQ2OTk5IGY2ZGM1NWQzMmY3MDJjZTA5Y2U2NDhlNGJhMjhhMWIyZTI0YmNmZTggbGVnYWN5LXRydW5rCis0NzAwMCBhZmY2NjI5ZDFkMWM0MTFmZmY0NjQyY2ExZDE5Mjk5YjlmNGM4MzI4IGxlZ2FjeS10cnVuaworNDcwMDMgMDNjZjVkZDdjOTA2MTViZjg3ZmZkOGVkOTZlNzMyYThkZDI0NzA2OCBsZWdhY3ktdHJ1bmsKKzQ3MDA0IGEwYjA2MmZmMjkzOWM5MmViZTM3Y2ZiNWRhNzY4ZDc4YmNlNGJjMjkgcmVsZWFzZTI0LW1haW50Cis0NzAwNSBjNTAyNjcwMzkwODhlMDIwOTRkN2QyY2MzOTMzYWZjODAxZWNmMmZjIGxlZ2FjeS10cnVuaworNDcwMDYgMDI2NTBhNDdlZThiZTM5Mzg0MjY4ZmYzODNiMGVmOTk1MTM1NGMxMCByZWxlYXNlMjQtbWFpbnQKKzQ3MDA3IDk2ZTFiMGM4ZmY5YThkYTFhYTMzMzgyYzMxNzkzNTM0NTAxYzQ4YmYgbGVnYWN5LXRydW5rCis0NzAwOCAxMjU4ZTkzYmIxZDAwNTk0ZDRkMTAyYjdmNGMwMGQ3NzkyOTE4ZjhlIGxlZ2FjeS10cnVuaworNDcwMDkgNDg0ZDNkNWJhN2Y5YTVhYjAzMzAxZTRlMmJkNjVmZTA0NzY0ZWUzOSBsZWdhY3ktdHJ1bmsKKzQ3MDEwIGI5ZDE0NDBjMmRkMTYzMWQ0ZDA4NzYwN2NhOTQ3OWNlN2Q2OGQxY2UgbGVnYWN5LXRydW5rCis0NzAxMSA2YTdmMWYxMmVhYWY3ZDQ0ZThkM2M5MzM2ZTIzMWQxZjg0NDQ2YTAzIGxlZ2FjeS10cnVuaworNDcwMTIgNDExZDBhMzUzYTE1Yzg0ZmQ3ZTJiMGU1Y2ZhNjdjNjY2MjNjNmM5MSByZWxlYXNlMjQtbWFpbnQKKzQ3MDEzIDMwZDIzMzM4NTJkNTBmMDFkM2QzOGM5ZWUwNzg2MjZiMWI2OGY2NjggbGVnYWN5LXRydW5rCis0NzAxNCBhZDVhZGQ5ZTAzNjk2ZDNhYmRhZjE2YzAzMzFiZGY2NDUxMTU3Yzc3IGxlZ2FjeS10cnVuaworNDcwMTUgZjRiNDQxMjU2NDY3ODlmNTQ1OTEwOTE1ZDVkNWFmMDA4ODVlY2NmMSBsZWdhY3ktdHJ1bmsKKzQ3MDE2IDkzY2MzZmMyNTA5OTk5OWVhYTVlOGYyNjUyMjliZDI2MDM4OTkzZWMgbGVnYWN5LXRydW5rCis0NzAxNyBhM2M2MWM2NDhmYzgxOTRkYzc5NWJjNmMxNzliOGQ4Y2IyMDFiMzljIGxlZ2FjeS10cnVuaworNDcwMTggODA1ZjQxODgxZTI3MGUzODEyZjkxZDQ3MTllYjk2MDBjZDBiMzRjMSBsZWdhY3ktdHJ1bmsKKzQ3MDE5IDI4NDNiZjcwYTljZmQ0Zjk5ZTI2MzkzZmYzY2FhY2E2Njc3NmJlYmUgbGVnYWN5LXRydW5rCis0NzAyMCA2NzI5YzI3ZDAxZmU4ZGI5ZjE0NTJjYzhkNGYxNzBiZjRiN2ZiOThiIGxlZ2FjeS10cnVuaworNDcwMjEgMTE4YzY1MGUyYzliM2I0NGVkZDJjOGM2ZTg1MTA2MzM1Mjg4YzBhMiBsZWdhY3ktdHJ1bmsKKzQ3MDIyIDRhNzY2MDI0MDQzYWVlZTU5MmE2YzA5MzdkZTJkYjRiMTVhMGE2NzIgbGVnYWN5LXRydW5rCis0NzAyMyAwYjk1YTBhYWFhZWY5ODZhYjRlY2UzMTdjMTY3YTEyMmY4YTJjNjE1IGxlZ2FjeS10cnVuaworNDcwMjQgMGJmOWUzMDk5YzU3YmM3MzBmZGI2NWIxNmY1Yjk1YTU3ZTU2ZDViOCBsZWdhY3ktdHJ1bmsKKzQ3MDI1IGM2M2QyYjYyNjNiNThiNzIwNzEzN2I2NjQwMzViN2JmZTQ5YjkzYjQgbGVnYWN5LXRydW5rCis0NzAyNiA0ODMwZDYxNDdhYWYwOTk1MjRkN2M0YWJkMGJkYTY1OWY0MTEyZjZlIGxlZ2FjeS10cnVuaworNDcwMjcgYTc0NjIwNWY1OTc1OWM3MzI4ZDg5OGU3OGI4Y2RiZTk4MzQxYmMzMCBsZWdhY3ktdHJ1bmsKKzQ3MDI5IGYwODg1ZmUxNGQ0MmFlZWExZTc5Yjc0ODA2MTc3M2E1ZTI5YTU3MDcgbGVnYWN5LXRydW5rCis0NzAzMCA0MDhkMmE1OTZmOTkyMzQ1NmE3MmM2OTg4MDM2MGQ4NTljNzg0ODhhIGxlZ2FjeS10cnVuaworNDcwMzIgNWI5ODdkMjEyMzFiZmI2NTQ2NjIzNjAwYzM2NTQyMWE2ZDRmZWYwNSBsZWdhY3ktdHJ1bmsKKzQ3MDMzIGYxOWU4NzcyODFlNDkwMzcxMWYxNTc3ZmZlNjM2MDg2YzdjNzlkNzYgbGVnYWN5LXRydW5rCis0NzAzNCBkNDliMTk4ZjU0NWNkODJmYmY3MzVhMjI5NzljMzMyYjhhOTdlZWNiIGxlZ2FjeS10cnVuaworNDcwMzggNTIzNzVmMjAzMjQ0OGZlNDdiMDZlNTlhNjJjMjkwNTdiZThhYTBhOCBsZWdhY3ktdHJ1bmsKKzQ3MDM5IGY4NzE2Yjc2YTcxZWY3YTA3YTA3ZmQyODQ1ODVmYjFkMTg4Yzc0NzUgbGVnYWN5LXRydW5rCis0NzA0MCAzYWYzMzJmZmY1Mjc5YTdhZTU2NGM5ZmM0YWM5MzM4YmU2YjZlY2NiIGxlZ2FjeS10cnVuaworNDcwNDEgZmRjY2M2YjE0ZmFkNmVkYTU1OWJhYTI1Mzk2YzRhY2FmODc0YWI4MSBsZWdhY3ktdHJ1bmsKKzQ3MDQyIDI2ZTRiZjE5NWFlMjkyZmQ5ODk0MzFmMGYzMmFjNmQxNTljNDE0ZDIgbGVnYWN5LXRydW5rCis0NzA0MyBhM2JhMWEzN2I1Mzc0OGJmYTg0NDQ0YTBkYTljZDI1MWY2ZWU0YTA2IGxlZ2FjeS10cnVuaworNDcwNDQgODY4MTI2ZTNiY2Y2ZDAyYTU0ZmI4ODUxNDcyMWVhOGNhZTcxMjNhMCBsZWdhY3ktdHJ1bmsKKzQ3MDQ3IDRmZmZlNjc3ZjU1Mjk2Y2I3OWFiYmM0ZWMyYmEzODY3ZTg3ZGU2ODYgbGVnYWN5LXRydW5rCis0NzA0OSA3MDIzY2VkY2M1ZWQwNGE0NWI5OWNmN2Y4ZTVhM2ViMTdiMzI4MjNiIGxlZ2FjeS10cnVuaworNDcwNTMgMDUxY2MzOWE4MDA4NDMyN2RjMGFkY2JmZWE2OTkxZTJlZTQ1N2FiYiBsZWdhY3ktdHJ1bmsKKzQ3MDU0IDUzYjA0YzE5ZmU0MTZjY2E5MGQ4NjYyMjU3MDgwZjA5MDM3OGI4ZjcgbGVnYWN5LXRydW5rCis0NzA1NSA5YjBmOTQzMGNiY2JkYmI0OTY1YWM2MDI3MjNiYzQxZWYyYzA0MjgyIGxlZ2FjeS10cnVuaworNDcwNTYgMTQ5MWU1MmM4NTk3MGQyNTM4Yzg0MTdmMjllYzVlMGNhZmI1NjAxMCBsZWdhY3ktdHJ1bmsKKzQ3MDU3IGUzYWM3MzlkNDg4OTU1NWNmZDQ1ZThjOTZmYjY4ZDU5MjM0ZjI5NGIgbGVnYWN5LXRydW5rCis0NzA1OCBhNGRkNmIyMDliNjVhMmE2ZTg2YWZmMmFhMTliZjBiMDA0MTUzZTc4IGxlZ2FjeS10cnVuaworNDcwNTkgNjllZjIzZmNmNWY4M2YyYTFlNDAxMzhiOGZiNzZlNDRmY2MzMWRkMiBsZWdhY3ktdHJ1bmsKKzQ3MDYwIDE1MmVjMjJjNGU2OTVkYTExNmY4YjhlMWFiNTU2OTRkMTk0OTQzZWIgbGVnYWN5LXRydW5rCis0NzA2MSA1MDZjNzY4NDdlYzcxNjI1ZDZlMzQ5Y2VjMjU5ODE3ZjM5ZDIwNjE4IGxlZ2FjeS10cnVuaworNDcwNjIgM2NkZGU0NWE0NjhkNTliM2I3Yzk0ZjJjNGIzNjk5MzdlMGNhY2Q0NiByZWxlYXNlMjQtbWFpbnQKKzQ3MDY0IGNiNzIyNWU4NDgwNTZjYzA3ZjM1MTVkYTAyMjA5NzNlNTI5MDhiMjQgbGVnYWN5LXRydW5rCis0NzA2NSBhY2EzNmY3ZjNhZTg3Y2EwYTM3ODM4Y2UwNGI0ZTE5MGFlNTcwMDkxIGxlZ2FjeS10cnVuaworNDcwNjcgMDQxYWQwMDY4NTcwMTE2ZmNlYjQxZDNiMDQxMjE2MDBkNTczNDY1ZCBsZWdhY3ktdHJ1bmsKKzQ3MDY5IGViZWU1NTM5MzA4YWVlNzc5MjRhZDY1NThkOWIxMDNkMGExNmU5OTAgbGVnYWN5LXRydW5rCis0NzA3MCBhZWQ4MDk0NDMyMDUzZDE3NGYxZGE5MWE1Yzk5YjkzMDdiNWEzNTExIGxlZ2FjeS10cnVuaworNDcwNzEgMjExNGViNzNhZWI1MTcyN2FiYTQxYmVmOTlkZmJhZjk1MGVhYzE3ZSBsZWdhY3ktdHJ1bmsKKzQ3MDcyIDU4MDM0MDg0ZWY0NGFlNDVmMmI4MTdlZjQ5ZTUzYWE0ZWE3YTQ0NDYgbGVnYWN5LXRydW5rCis0NzA3MyA2NTM1M2M0ZGI4YzIxYjkzYzk1YWFjNTViM2YwOTdkNzU4NjZhYzhiIGxlZ2FjeS10cnVuaworNDcwNzQgYWZjNDc1ZDA1Njc4Njk1NDBmNjFjYTdkNmEzODUwMWQ2NGQ4MzJkNyBsZWdhY3ktdHJ1bmsKKzQ3MDc1IGFmY2I1ODJkOTJkODMwNDg0NzM1ZGM5NDk3ZDA2YjdjMDUzYTcyOTAgbGVnYWN5LXRydW5rCis0NzA3NiA3ODgxNmM1Y2ZmMDUwOGM0YTI4YjU4NWE2N2ZkZGZjZGNjMDBhMzk3IGxlZ2FjeS10cnVuaworNDcwNzcgYmNlYWE3NzIwY2M3MTFjZDUzZWVkZWI4M2E1YTU0ZjllYmFmYzIzNCBsZWdhY3ktdHJ1bmsKKzQ3MDc4IGQ4NDIyNDMyMGY4MjhhMGI2ZDI4MzkxZDQwNWMzNDdmNzlmMDA5NWEgcmVsZWFzZTI0LW1haW50Cis0NzA3OSA5YjQ2YTRmNTJkMGMwMzE1ZmY4NjI2ODQ3NDdhZGRjNGJjNzgwNzA4IGxlZ2FjeS10cnVuaworNDcwODAgMzIzZGE0NzZmMTdlZTE3ZjI4NTM5ZmUwNzIzMWYzODhiYjkzMDM4NiBsZWdhY3ktdHJ1bmsKKzQ3MDgxIGJhYjBiMWU2YzZkNDFjYmZlMmU0NmEzOGFkMDg2NzliODQ2YTQ2ZDQgcmVsZWFzZTI0LW1haW50Cis0NzA4NSA2NGQxZjY2YTIzOWE2MDljNDUyOWZhZjhmZjI5Yzk1ODA1NTFmMzgxIGxlZ2FjeS10cnVuaworNDcwODYgNmYwNDJmNWJmOTRkZTc4NDY5MmIzMzlhZGU5ODliYWQ1NjA1MDk0YyBsZWdhY3ktdHJ1bmsKKzQ3MDkxIGM3NTMyODU2ZmQxNzU5MjUyNWVhZjlkODhhMGU0YmYxMWYwNjgwNzYgbGVnYWN5LXRydW5rCis0NzA5MiAxMzQyZGZkNTI3MzM5MDA4ZWVlZDQwODNlODBhYmY2YjM5YWUxNDk1IGxlZ2FjeS10cnVuaworNDcwOTMgMDlkMTYwNmU3NTI0OWNjMDEyMGRmMTI1ODU5ODVhMDNmNGE2NWQ4YiBsZWdhY3ktdHJ1bmsKKzQ3MDk0IGFkNTk0OTE1MjcxMTZkM2EwMjI3YTZmZjU3ZDcxN2JkMWI1YjBlN2YgbGVnYWN5LXRydW5rCis0NzA5NyBiOWE2NGI3YTMyNjEyZGI2MjllOThlYjhkYWI4YWExNTUyYmNhNTQ2IGxlZ2FjeS10cnVuaworNDcwOTggYjgyYzQwZGMwOGQ4MmNkMDE0MDY2NWEzYmViMjUyYzNkNjczNWM2NSBsZWdhY3ktdHJ1bmsKKzQ3MDk5IDgxNjhkMDVmOWI0OWU2MGM0OWU2MzQ0Y2IzYzI5MGVhMDVhZWIxZDYgbGVnYWN5LXRydW5rCis0NzEwMCBmMmNjMTU2ZWI5MjhlM2ZkZmZmMzk5NzQwY2Y1NmNkODNhYWZlOWQ5IGxlZ2FjeS10cnVuaworNDcxMDEgNThmNDE5ZDhjNjQ2MWZiOTE3YjA2Y2NjOWMyMjcyOTdiNGU2ODc2OCBsZWdhY3ktdHJ1bmsKKzQ3MTAzIDM1Y2YwZjg3OTgzZWRlY2E4MDU5NmQ4MTFkYjVmM2IxZjM0MzI2NzAgbGVnYWN5LXRydW5rCis0NzEwNiBmMjY2MTNiZDQ4NGQ3ZGU3ZDUxNjQ2OGRmM2ZmM2IyNjllZTU3YzcxIGxlZ2FjeS10cnVuaworNDcxMTMgYjhiMjI1NTBhY2FjMDE0NTcyMGM1MzU1NmViMjY3YzRjYzc3OTk3ZCBsZWdhY3ktdHJ1bmsKKzQ3MTE0IDc0MTMxMzAyOWQ2M2Q5Njk0NDczYjI0ZTBmYTVkMDFlNGVmYTc4ZjIgbGVnYWN5LXRydW5rCis0NzExNSAyMjU0NzlhY2U5YTcwZDI3OWFkNzRmMjMyZTU3ZGUxN2FlZWQ5ODkyIGxlZ2FjeS10cnVuaworNDcxMTYgY2VlYThhOTg2NTg0NDc3YTMwYzk0NTk3Yzc2ZGViYTY4MWQ0M2UwZCBsZWdhY3ktdHJ1bmsKKzQ3MTE3IGNiODM5OTk2YTM4NmVkYTAxNzdiYzBiYThlYmI2OTg2MjE4ZjhjM2YgbGVnYWN5LXRydW5rCis0NzExOCA3MjFjZWM3ZjAxODU3NDc3ZjU2ZjM2MjAzZTBlYWVmODk5NDZlYjVlIGxlZ2FjeS10cnVuaworNDcxMTkgNGRlYTVmNDZlZTk4NTU0MjQ5ODBjNWE5NzJkNDNiYWM4YTUyZTJiZSByZWxlYXNlMjQtbWFpbnQKKzQ3MTIxIGRlNDEwMjUyYjlmZGEzYjhkNTgzMzhiYjUxMWVlM2Q3NjU0MzE4NTggbGVnYWN5LXRydW5rCis0NzEyMiA1MjI1MGVlYWY3OTFkNjY0M2RmMGIxMzczMjUwMmMwNGFlOGI0NTJkIHJlbGVhc2UyNC1tYWludAorNDcxMjMgMDYwMjc3MWI4YjQ5YjdjMzM0MGRkNGQwYmE0MzZkN2JkYzI5ZGQwOCBsZWdhY3ktdHJ1bmsKKzQ3MTI1IDA5NTU0NmRkYjJmMTZjNjQ3MzQ3Y2NmYzBmNmIzNjhhM2EzZTc2M2YgbGVnYWN5LXRydW5rCis0NzEyOCA3Yzg5OTBjY2NmOWIyYWQ5YmNmZDIwODI4ZTZmMDFiMzM2MTc0OGM2IGxlZ2FjeS10cnVuaworNDcxMzEgYWMzZDRiNzFiY2UyYjI2YzlmYTc5YmRkMzVhM2ZjNDMxYzdkMGY5MiBsZWdhY3ktdHJ1bmsKKzQ3MTMzIDNjZjIxOGU4YjQ0OTI1NzNiMjI4YjNlYTMxOTIyOTZhMzEwOGJiMjUgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis0NzEzNCAwMzg4YzdkY2U0ZDQyNjY2ZDFlZjUzMmNmYWRjZmIwMjkwNTczZWU2IGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNDcxMzUgNGI0ZWQyMzAyZDFjZjU2ZWYxNjE5MzA1NDE1YmIwZGUyZDc4NzEyNCBob3h3b3J0aC1zdGRsaWJfbG9nZ2luZy1zb2MKKzQ3MTM2IDg1MWYzNzhhYjljZGM1Yjc1NjRjNDdkMmZkNzQzMDc1NjY5YTYxOWUgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis0NzEzNyBkNzQ5MDhlNzRkMzA3MjBmNWMxMGMzMzMyYjQzYjA3YmJkMDY1ZDZiIGxlZ2FjeS10cnVuaworNDcxMzkgNTZiZjU2ZjVjODIxNDc2ZDVkNjdjYjQyNzc5MGNmMWE2OTA5NWVlMiBsZWdhY3ktdHJ1bmsKKzQ3MTQwIGE0MjYzYzQyNDhjYjY3ZTdhZDNiZGM2M2JmNGM3MTdlYWFjZGM3OWUgcmVsZWFzZTI0LW1haW50Cis0NzE0MiA1YjgwNzk2NjBlYzQ1ZTRjOGIyNjBmY2VmYTY2ZmQ4YjUxMzEwM2NkIGxlZ2FjeS10cnVuaworNDcxNDMgNTgyNzBhNjkwZjQzYzVkMTkwMDlkZTIwNjA3MzdlZjY5NDNiZThhOSBsZWdhY3ktdHJ1bmsKKzQ3MTQ3IGY5OWZiZmJhODk4MzQ2MDFkNDQ3MDRjMWI5NGM2NjA5OTgxYmI2ODggbGVnYWN5LXRydW5rCis0NzE0OCAyZWU1YmRhOTIwYTI0NWFlMDgwMmFiNmUxODQxYzZmODgyMzZjZjQxIGxlZ2FjeS10cnVuaworNDcxNTEgMWVhYjVhZTNiMWZmYmFlZTcyZTU5ZmZkYjdlNWNmOGVlNDQ5MWE5ZiBsZWdhY3ktdHJ1bmsKKzQ3MTUzIGIzZWY3NDFlMjYxNzFhZmYxMWZjZTExYWZiOWMwZTg0YjM0NTQxMzggbGVnYWN5LXRydW5rCis0NzE1NCAzYzlkM2EzMTNkODFkZTUzOTE2ODQ3YjM0MjVjYzJmMGJhMWIzZTEwIGxlZ2FjeS10cnVuaworNDcxNTUgMTdmODJiZDY4ODc4NTMyZmIyOTkzNDE4MWI2ZjU0Y2RjZWZiZjc3YyByZWxlYXNlMjQtbWFpbnQKKzQ3MTU2IDI5ZTQzYzVlMTE4ZjdiMDkwMTQyM2ZmNjRlMjk3MmJkYTUzYTMzMzYgbGVnYWN5LXRydW5rCis0NzE1NyAxYjJkZjJlY2JjNjM2YTJjOGI3MjIzM2U4MjVhYzYwZWI3OWQ3Mzg5IHJlbGVhc2UyNC1tYWludAorNDcxNTggMGE4M2RjMzUyOWQxNWFmNDQ5MzRmNWIzNDgxYzBjYjhhMDMzZmM4YyBsZWdhY3ktdHJ1bmsKKzQ3MTU5IGY0OWNjMjkwNmNkMDBmNjA0Nzg2ZDJkNzBlZTJiYWFhODMzODUwNDggbGVnYWN5LXRydW5rCis0NzE2MSBjNmQwNGM5YzNjNGFlNzc0YzVhMjkwMDE2NDY5MzExY2VjZDY5MmE0IGxlZ2FjeS10cnVuaworNDcxNjIgOTliMTVjMjViODQwMTY5MzhhYTY5NWUyOWZmNWQ1ZTYzMWY5MmRiMSBsZWdhY3ktdHJ1bmsKKzQ3MTYzIDE1ZmU5ZGJjNWQzOWVmMTI4ZjlkODkzNWUwYWE4ZDQwMDJjODIyMDcgbGVnYWN5LXRydW5rCis0NzE2NCBkYTIyYjkwNWRmYmViZDllOWFjZDg4OGMzNTQxNmI4ZmZjODI5NDdiIGxlZ2FjeS10cnVuaworNDcxNjYgYTIxZTQyMGE1OTdjYzk1MDUxNzE4ODRmYTI0M2FjZjQ3ZjRiN2NkZCBsZWdhY3ktdHJ1bmsKKzQ3MTcwIGQ4NTcwODc2OWFiMWQ5NGJjZDJiNDA0NjhmODFhNjY2ZTllYjljNjkgbGVnYWN5LXRydW5rCis0NzE3MSAxMzkyNTYxZDVkZDdhZTNkZTJiNGJkNTUyMmQ0MDc4ODZiMjJmNmZiIGxlZ2FjeS10cnVuaworNDcxNzUgMjcyZjE5NWEyODRlN2UwMTRjYTk0MmZmYjE4NTg5NjJhZmZiNzEzYyBsZWdhY3ktdHJ1bmsKKzQ3MTc2IDQ4NTA1NmU1M2NkYjk5Y2YxNTY4ODczYjM4M2U2Y2RmNjY5M2Y1OGYgbGVnYWN5LXRydW5rCis0NzE3NyA2YjBjNjNhOTc1MTQ3YTk0ZjY5YjNhMDM4ODM4Yzk0ZTc1NTA0Yjc2IGxlZ2FjeS10cnVuaworNDcxODEgNWQyYzk4MmFiYmIzOWU3ODQyNjFmYzYxMDBlMWMyMmMyYTE1MGIyMSBsZWdhY3ktdHJ1bmsKKzQ3MTg4IGQ0ZGJmYmYzZjJiOTBjNWMyMzk5MGZhYjdhZmFmZWM1ZTNiZDY5MWQgbGVnYWN5LXRydW5rCis0NzE4OSBiNjY0YTkwOGJmZjM1MGVkMWI1NmI1NjBmNGYwNzJkMmExNWI3NDYwIGxlZ2FjeS10cnVuaworNDcxOTAgYzU0N2Y2ZTkxYzU4NGI5NDI2MjA1ZmI4NmEzMDFmZmU3N2Q2NDNlZSBsZWdhY3ktdHJ1bmsKKzQ3MTkxIGUwNzZlM2Q3NmY3NzEwYTAwMDFlMWUzOGNmNTYyZGM0MjU3YTY4OGMgbGVnYWN5LXRydW5rCis0NzE5NyA1ZGQ3MzYyNjhmZjQ0MDIzZGI2NjVjNmJhNzFjNDRjZDZkMThiMjA5IGxlZ2FjeS10cnVuaworNDcxOTggNjk3NWJkNDg4NGViYzJjODAwNGJkOTY4YmFkN2JmNDMwMDA3OTU3YSBsZWdhY3ktdHJ1bmsKKzQ3MjAzIDBmM2JhM2RlZjFhZDgwYWVkMWZjNGI1MWZmNDdkNTgzYTYzNmVhZTIgbGVnYWN5LXRydW5rCis0NzIwNCBjMDEyMzAwNzY4NTljMWZlNjZjZWFmZjMxNzAwODRmZTk4ODllOTk4IGxlZ2FjeS10cnVuaworNDcyMDUgODg5NGVlZmJiMGE0OWZjNWVhZjU0OWU1NTdkOWMxYWI1ZTIzZjNkZiBsZWdhY3ktdHJ1bmsKKzQ3MjA2IDYzODI0MWZmODdiZGRiYmJlMGUyMjA2NTI3NzA5YWU2Yjk1NzI3OTAgbGVnYWN5LXRydW5rCis0NzIwNyAyNzk3Mzk2MmZjOWZiNjJjZjhmNmNhYWYwNjliMjM4NzU2YTUwZGRlIGxlZ2FjeS10cnVuaworNDcyMDggYjE2MTRmNjc0YjMyNzA0MzViOThmZDgwYzNlZjMzZWMxMWU2MTQ5MyBsZWdhY3ktdHJ1bmsKKzQ3MjA5IGU2MWE5MzhmZTk5OGQ1Zjc5OTc0YjM3NjMxMmYwYmFhYzAyYWI4M2QgbGVnYWN5LXRydW5rCis0NzIxMCAyNTM3ZGVkYTM1MWZhODkxMmNlZmNmZGI5MmJmMjIwYTg0YjExNjRhIGxlZ2FjeS10cnVuaworNDcyMTEgYjk0NzBkNjdkOTZjMmUyNzAyZTgwOWQ0MWY4OGQ3NGE4NzA2YWYxMCBsZWdhY3ktdHJ1bmsKKzQ3MjEyIDBlOGE5NGJhMjEwNjZkYTY1ZGY5ZDY2MDhlN2U0OGJiYTYzOTM3MWEgbGVnYWN5LXRydW5rCis0NzIxMyBlOWQzOWM1ZmNjMjc0NjE0YmMyYjZlM2ViOTM0ZTk0ZWE3MzFkMDJkIGxlZ2FjeS10cnVuaworNDcyMTQgZjExNjU4MmY2NjIyNDI1ZTk4Y2NhOTllYmNiNzA5MjU3YzNlMmRhYyByZWxlYXNlMjQtbWFpbnQKKzQ3MjE1IDA5MzE1Njg5OWY3NWFiMmNiMDZkMDkwZGQ3OTg5NGI3NjQxZjNlMDUgbGVnYWN5LXRydW5rCis0NzIxNiAxNmJmMzY2NDgzMjMzYjA4ZGZiY2UzYjlmOTkyNjUyNTU1OTdkZjg2IHJlbGVhc2UyNC1tYWludAorNDcyMTcgODY3NWE2MDg0MjQwZjg1NTcxZDQwZTkwMzA1YzQzNTRhMDQzMTM0NCByZWxlYXNlMjQtbWFpbnQKKzQ3MjE4IGM1YmViY2JlNDUzOTFhM2NiYjJmOGI5MTFhM2VlNjQ4MDYyMTk1MjkgbGVnYWN5LXRydW5rCis0NzIxOSA4MTMwNGMwMTQ2M2EyZTliZDhhM2U3ZWY4NmExNTM0ODJhNDZkMDM0IGxlZ2FjeS10cnVuaworNDcyMjAgNjNhMzE5ZjA3MzNjYTA2NjZiNmYyMWEzM2I0MDBkNGZkY2Q5MDQ3NiBsZWdhY3ktdHJ1bmsKKzQ3MjIyIDAxZDRiMDY4NTA2NzYwNjgxMDllMmNkOWFlOTE5NmU1Mzc2MWUxMzAgcmVsZWFzZTI0LW1haW50Cis0NzIyMyA3NWJkYjFlYjA3NjY1OTVkYTMxNjkyM2JmMWNiNWI2OGRkOGUzOWQ4IGxlZ2FjeS10cnVuaworNDcyMjQgOWM5MjJlMzFiNmE1Yzg5MTA0YzQ2YjIwZjA3MGQ2OTNmMzJmM2JjYiBsZWdhY3ktdHJ1bmsKKzQ3MjM0IGM4MjM3NWQ1NjBiM2ZlOGEyOGEyNzdmOTE5ZTYwMTYyOTRkYTRkY2UgbGVnYWN5LXRydW5rCis0NzIzNiA0MWZjMjAzYTNlOTFmMTYxNWMxNGE2ZmIzODA4M2QwMThmNDc0OGFkIGxlZ2FjeS10cnVuaworNDcyMzcgMTg5ODlkMDlkNTg0ZTZjM2U4NGQ0MDVjNjY0MTFhYWU4ZGZiZWYxMyBsZWdhY3ktdHJ1bmsKKzQ3MjQxIDZkOWUyMmMzMzBlNGI3NjQwMzAwNDY5ZmYzOWM1OWY2M2FkNDUwZTUgbGVnYWN5LXRydW5rCis0NzI0MiAwYzRlNWEwYzE5MTRmN2IyMmRmYjBiMGUzY2ZkZjg1Njg1NzNhMzM2IHJlbGVhc2UyNC1tYWludAorNDcyNDQgZDllNzgzMTlhMTkyOTM4MTI2NzE0ZTZkN2IzN2QwMzJjYjQ0ZDA0ZiBsZWdhY3ktdHJ1bmsKKzQ3MjQ1IDc1NTA0NDcxM2U5N2NhMjQzYmE2ZGFiZWQ2ZTdhOGY5ZGY1ZTE3MjMgcmVsZWFzZTI0LW1haW50Cis0NzI0OCBiOTE1NWJiMjZiMjgxZThlMzMxMWQzNmM3YWRmNDBlNGFjYmExZmExIGJjYW5ub24tc2FuZGJveGluZworNDcyNDkgYjBiZDBiY2U5NDA2ZWRhNGIxMDMyNzQ5OGQ5NTRmYmI2YjEzZDMyZiBiY2Fubm9uLXNhbmRib3hpbmcKKzQ3MjUxIDllODIxNDM1YTYxMmQxZTk3MmIzNTk2ZTI0OGRlYmVhOTM2OTliNWEgbGVnYWN5LXRydW5rCis0NzI1MyA1MDBhZTk1MjE1MGI3NjY4ZTMwMDc2NTQ5ZWVkMDQwNDljMGMzMzhlIGxlZ2FjeS10cnVuaworNDcyNTQgODdlNWIwMTBiM2IwOWQ1YjViOWM1NGY3NGUzOTA4OGRiM2YwNDFjZSBob3h3b3J0aC1zdGRsaWJfbG9nZ2luZy1zb2MKKzQ3MjU1IDcxZWFkYzM1ZjE2MzcyNjExNjY5YThmNjRmOTk2M2Q1NDIwYWRkNGEgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis0NzI1NyA0MTU2MWIwMDE0YzhiNjgxNTY0OGU1MDQyMDgxZmE2OGQ2YWVlODNiIGxlZ2FjeS10cnVuaworNDcyNTggNDBmMDU4NjczMTcwYjhhNmE4YWRmMDNiNmFlNWMwN2NmMWFhNzBhYiBsZWdhY3ktdHJ1bmsKKzQ3MjU5IGI4NTFhZmNjMTY0OTY1NjcwM2E3MmQwZWZkNWMyZjlmYTY2OWJmY2EgbGVnYWN5LXRydW5rCis0NzI2MCBlM2NmZjYxYjc3Nzk2MWFmNDZmNDJlM2MxN2VmZjg0OGNjZTA4NGUxIGxlZ2FjeS10cnVuaworNDcyNjEgNGRkMWE5MzgzZTQ3N2ZjNjcyYzk1NDQzMzAxMjVhYzc0ODA1N2RlMSBsZWdhY3ktdHJ1bmsKKzQ3MjYyIGQ4Y2U5YmM0MDVlNDFiNjk1NDZhMTQ0ZDcxN2NkNWFhMDkwZWU1ZDAgbGVnYWN5LXRydW5rCis0NzI2MyA2OGM5ZThhNTUzNjgzYjJjMjM0OGNjZjI3OTk4NDhmOGZkYjMwZDY2IGxlZ2FjeS10cnVuaworNDcyNjQgMjA3M2YzMmNmNzFmYzdlYTQ0ODU2ZWI1Mjc4ZDcwOWNlZTA0YTkzYiBsZWdhY3ktdHJ1bmsKKzQ3MjY1IDY5N2QwNTQ4MDA1M2Q2ZmRlZmU2NDVlMDg5ZmNjMTQ2ZGIxY2E4MTAgbGVnYWN5LXRydW5rCis0NzI2NyBmNGUzM2IxMmJiNTdiMTAwYjM0YzJmOTI2OTA1MmY0MzIwOTUxMDRhIGxlZ2FjeS10cnVuaworNDcyNjggMzRhNjZlMmY4OTU5ODAyNWFkMWM3M2E0OWE0YWI4M2QxYmE1ZDU3MyBsZWdhY3ktdHJ1bmsKKzQ3MjY5IGY2OGU1MWE2NzNkZjczZjJiMWY0NzQ5ZTc0NmNmMzliYzA5OWYyNjIgbGVnYWN5LXRydW5rCis0NzI3MSAzNGNiOWE2Y2UxMmQ4N2Y2YWUwMzE2NjYxMDc1Yzg4YjA5MjY2MTEwIGxlZ2FjeS10cnVuaworNDcyNzIgMzc0YzIyOWQ5MGU4ZjM2NmU1OTU1OTg0YzQ1NjE1OTExZTk2NzY1ZiBsZWdhY3ktdHJ1bmsKKzQ3MjczIDVhNGFiMzgyMDU4YTVmMTBmMzRmZjI1MjBhNjA1NDNhMDQ3NTE0NjAgbGVnYWN5LXRydW5rCis0NzI3NCBlZWJjOTVmOTU4ZTQ4ZjM3N2RmZDk5NWNlNjNjYmFhNGEwNjc1NTVlIGxlZ2FjeS10cnVuaworNDcyNzUgMjM4ZTBiMjAzN2ZjMjQ4YWE3ZTYzZGU2ZWRhZTQxNWRjNDY2MzJhMiBsZWdhY3ktdHJ1bmsKKzQ3Mjc2IDM0NDI1MWNkOGQ3NjQ0MDljYzAzYzU5NjdmYjE1Zjc4YzI3ZDU0MjYgbGVnYWN5LXRydW5rCis0NzI3NyAzZmE3OTBiMGFhNjgxNWMxZTFkYWU4ZjIzMGFjODVkYWJlODE5OWQ4IGxlZ2FjeS10cnVuaworNDcyNzggZjkzZGJmY2M2NjNiMzMwNzNjODJiZWRiZmMzZTU4NWMxZDQwZTdlMSBsZWdhY3ktdHJ1bmsKKzQ3Mjc5IDU4Yzg4YTdjOTMyNjNjNDhiYmViMWVlZDNhMjIwM2MyMDUwMGJjNmIgbGVnYWN5LXRydW5rCis0NzI4MCA4ZmVmYTk5ZTg3YzBkMzg1NjQ0OGZjNzY3M2QyN2RlOGY4ZDEwNmZkIGxlZ2FjeS10cnVuaworNDcyODQgZWQ0MzI0M2M4ODYwNWVmYzhlMDlhZDQ0YWZjMWEyN2Y2NTY2NGJmNCBiY2Fubm9uLXNhbmRib3hpbmcKKzQ3Mjg1IDQ1MjQ3YjkzYTVkOWExMDE5MjA3YTFkZTIyMjkwZWQ2NWUwNjBjMTYgYmNhbm5vbi1zYW5kYm94aW5nCis0NzI4NyBiM2MwZTA3NTlhYzA5ODA0NDYwOTJlNDVlNzc4NGQzZjNiM2FkY2FkIGxlZ2FjeS10cnVuaworNDcyODkgZGE1OTgzNjE0ZmFjMjI4MTljYWVjMDk1YmZlMjM4ZjAxZjYzN2U1OCBsZWdhY3ktdHJ1bmsKKzUwNDc3IDEwOGRjMmYxZTdkYTMyY2YxYTFjN2U3ZWJmNWRkZmM0ZWE1ZTFjNjUgYmNhbm5vbi1zYW5kYm94aW5nCis1MDQ3OCBiYjMwNTAyNjMyNDQyMmFlN2FjNDVkYjNmZDA5ZTQyMmJlOWUxOTU1IGJjYW5ub24tc2FuZGJveGluZworNTA0NzkgYjhhOGVmYzAwYjFlMjVlMmY0YWQ5ZDdjZGM0NjVhMTNlZTY4MWEwNCBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNDgwIDkwM2Y5ODY3NjU0YTE3YTM5NDc0Y2VhZTMyOTMxNjY3NWQ0MTQ0MzggYmNhbm5vbi1zYW5kYm94aW5nCis1MDQ4NiAzNWFmZTdjNDY3NzIwNmNkMzViYTM3YTIwODc1NzQ4M2UxNGUyMzg4IGJjYW5ub24tc2FuZGJveGluZworNTA0ODcgYjQyODEyYzc3NGQwYzk0OWIwYmE3N2NmNWMzZjYxODA3MDEzODJlYSBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNDg5IDA2NmFhNDJjZTVmMjQwOTc4YzE2NTZmNWVjYjYwNjY5NWViODJhMDUgbGVnYWN5LXRydW5rCis1MDQ5MCBhYmIyYzc2YTVlMDUwY2Y4ZDA2YzI2MDczY2YyMjY1YjJmMDQyYmMyIGxlZ2FjeS10cnVuaworNTA0OTEgMWM1YmRiYzc1ODBjYTE4Y2U2OTkyYjE4YjcyYjQ2MjYwMmI3NzUzOSBsZWdhY3ktdHJ1bmsKKzUwNDkzIDlmNzBmNmJhN2I2OWNiZTZiYWRkMTFmZDI5MDczMjQ5Mzc1NmFhZjIgbGVnYWN5LXRydW5rCis1MDQ5NCBiYmM3OGYwMjEwMDdjMGYwNDIxOGQ5Y2EyNmMwYmE3OWJmMDY4MGI1IHRpbS1jdXJyZW50X2ZyYW1lcworNTA0OTUgNjRjY2Q3NDVlYTkyMGJlMWI5OTM4OTFlNDk2MzdkMWYzNTFjNDQ5NCBsZWdhY3ktdHJ1bmsKKzUwNDk3IDk1ZjllMDE4NDU1NTZmOTYxMjgxNjFkYTRlYWVmNjFiM2JmNTZhMmIgbGVnYWN5LXRydW5rCis1MDQ5OCAzZjU1NjFjNWQ5NTk1NWIxMzljYzY0ZWUyNzJmZTNmMDllMzk1MzM1IHRpbS1jdXJyZW50X2ZyYW1lcworNTA1MDAgY2EzZDlhNjcxMjZiZjhkOTE0YTc2NjFiN2RhMjAwMTExNmQwZDkyMCBsZWdhY3ktdHJ1bmsKKzUwNTAxIDhjYzk3ODQxMzBhMGU4M2QwNjI3N2U1OTdhZjBhNjQ4NjBlNzk2ZWYgbGVnYWN5LXRydW5rCis1MDUwMyBjMDJmYTE4N2UwZjQ5Y2IyZGNhN2E5YzQ0OGRiNTM2MThhNjZlNjkxIGxlZ2FjeS10cnVuaworNTA1MDQgYzY3YjIzMzk3ZjMwNjQ5YWZlNzU0ZTU3MzA3YzhkYWY3ODc2YzU2MiBsZWdhY3ktdHJ1bmsKKzUwNTA2IDBmZTA4YWVkYmQ4YzRmY2JkZmI2MGEzYzIzNTI0NjgwYzEyNDU5YzEgbGVnYWN5LXRydW5rCis1MDUwOSBjNTQ3NjQ1YWI3MzY0YzI5NDc1NjZhZGFlYjk3YjIzMDNkYjYxZjc3IGxlZ2FjeS10cnVuaworNTA1MTAgNTE0MjhjMzc4Y2MzZTI2ZjFmYjJkYzczZmNhYzg0YzMyNWE0Y2M2YyBsZWdhY3ktdHJ1bmsKKzUwNTExIDdlNDNkMDJlZTIxYTYxZWRmNmNlMzc0ZTQ1Y2I5NGZmNzE0NDQ4ZDIgbGVnYWN5LXRydW5rCis1MDUxMiBjMWY0YmY4ZmY3NDhjMDFmNmMyMzg1NzMwNThlOTI0Mzk3NjQ3M2E4IGxlZ2FjeS10cnVuaworNTA1MTMgMzVjNGZkYTQ3ZGZiZDhmNzMwODVmMTIxYjM5NDAwYjU5MTQxZWZiZSBsZWdhY3ktdHJ1bmsKKzUwNTE0IDAyNTk4YzU3Y2EwOWNjMGU4ZWE5MjQwYTIzNWIzZGYwODVmODc5OWEgbGVnYWN5LXRydW5rCis1MDUxNiBmMzczNjQ2Nzk1MDE4MjU1ODk5ZmJhZGI3N2U4MDY2NWIwOWM3MDFmIGxlZ2FjeS10cnVuaworNTA1MTcgYWU1NjQ1Yzc2ZDVlYTMzZWNiOGFlNTgxM2E2MTdlMzE1ZWZiMWZmZCBsZWdhY3ktdHJ1bmsKKzUwNTI2IGI5NzhhZmU3Y2FiNjZhZWNmZmRhN2M5ODczNzRlY2VjMGY2NzI0YjQgbGVnYWN5LXRydW5rCis1MDUyNyA4YWRkYzkxMzE3MWU4ODM0OGMzZjQ5Nzc5MTI0YmViZjQ2ZTEwYTdjIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTA1MjggZjJhYzMxZmMzNjllNjJmZTc3ZmI1YjVjODkyNDcxMGVmYjQyYzBiNiBsZWdhY3ktdHJ1bmsKKzUwNTM3IDNiMzhhYjljNGIwMzY5NWEzMzE1ODUxYzlmYmM4ZmM3MjUwYzYwNGUgbGVnYWN5LXRydW5rCis1MDU0MCBjODQ5OTdlMWVjYzc2OTI1NDg5YmQzMDFkY2U2MzBkMDdjZWMzYmVjIGJjYW5ub24tc2FuZGJveGluZworNTA1NDEgYjZmZDQ5OWU0MzQzZmI3Nzc5MGNmZTRiNzM1MjdmMTMzOGIyZjIwNCBsZWdhY3ktdHJ1bmsKKzUwNTQyIGMzNjE5MTVkZjI5MTNjNjFhZjc5MGEwNjE3ZjJhMGU0NDE3Y2VkNDcgbGVnYWN5LXRydW5rCis1MDU0OCBmY2JmNDYyMTE5MDNhNGYyYTBkNzY0MDg2ODdlYmUxYThlNGY4MDY4IGJjYW5ub24tc2FuZGJveGluZworNTA1NDkgZTQwMjQ0ZjVmZWI5NGQwMTU0ZDNlMDNiMDNiODc5YzNiY2MxMTBlNiBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNTUxIGZhNmNhM2Y1ZjIyNmU1ODBlYmJkZDY5ZTExYWZmOTliODVhMGViYzYgYmNhbm5vbi1zYW5kYm94aW5nCis1MDU1MyAxY2EwMTViZTcwYWUyMmY4NWFlZDcwZjhjOWVkNjhmMWUyN2I5ZWQ0IGxlZ2FjeS10cnVuaworNTA1NTggMmQ1N2U0YjA4Y2U2OGNmN2IxOGIzNmQ4ZjUxNmI3YTViOGRmZDdhNSBob3h3b3J0aC1zdGRsaWJfbG9nZ2luZy1zb2MKKzUwNTU5IGIyODY1MzYyMjA5MzgzMDJjY2UxNmViNTJjMGZjNjBjZDA3YjRiNTQgYmNhbm5vbi1zYW5kYm94aW5nCis1MDU2MCBlMzFlZGVlNWJjM2Y1NGUzNDI2NjIwMjk3ODliYzRlNWFjNjQxNzRkIGJjYW5ub24tc2FuZGJveGluZworNTA1NjQgMjE2YTk3YTJlZDM2ZjI1OWRhZWFmMmY5MTE1OTIwMzI0ZjEyYTc0NyBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNTY1IGRhZWU4ZjhjMDM1Zjk2YWUxOWQwODMwZTcyYjEyYTEwMjNhNDIwOWMgYmNhbm5vbi1zYW5kYm94aW5nCis1MDU2NiBlM2Y2MDY2Y2U3NWY1ODJkOTRkMjI4MDc5YTBiNzUzMzc3MWFjMzdjIGJjYW5ub24tc2FuZGJveGluZworNTA1NjcgNTJhODczOGY1YWI0ZDFlNjgwMGQzM2RlMDEyN2NkNmY2MjZlNDg5NSBsZWdhY3ktdHJ1bmsKKzUwNTY4IDAzYjZmZTU3Y2Q2ZGY1YmIzNGNhMTlmNGI3NjBiOTQzMTg2Y2M4MDYgbGVnYWN5LXRydW5rCis1MDU2OSAwMGY5NzVlYWQzNDRhZmIyY2FkMTRhMmNlNTk1MTlkOThiMWM2YzVjIGxlZ2FjeS10cnVuaworNTA1NzUgZDY0NjNlOGVmOWM0N2QzMjczZDNlOTA1NWRhYWQxMTY5MzliMGQwZSBsZWdhY3ktdHJ1bmsKKzUwNTc2IGY1MGI5ZGE1ZTM2MTk1M2FkNDBiM2MyNDNhMGE2ZjRkNzQ4MGY5OGMgbGVnYWN5LXRydW5rCis1MDU3OSBhZTBjMzI4YWM1YmY5MWJmOGU2OGM1ZDk0MTIxZWRkODZiYzdmMzM1IGxlZ2FjeS10cnVuaworNTA1ODIgMjE0YjI4ZDdhOTk5MzM0ZDA0MWFjNzA3ZjBmZGU5OTYzYTU4MDZlNSBsZWdhY3ktdHJ1bmsKKzUwNTgzIDY1NTIyOTkyM2Q0MmY5ZjMzYjNjMzgyMTA0OTcwZWM3ZmJjY2Q4M2IgbGVnYWN5LXRydW5rCis1MDU4NSBjN2RkNjY5NmVjOGNiMTcwYTE3YzdhZTJjNzAyZDFiYWU4NWFmNWRjIGJjYW5ub24tc2FuZGJveGluZworNTA1ODYgNmY2OWFmYjc4NWQwYmY5YzVhMDAwN2Q1NzRjZGQ4OTE0YWUwNTI4ZiBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNTk0IGU2ZjE2YjdhNTg0ZjIzNjZkMTFhNzhjN2YwZjdhNTMwNjRiZWNhMjkgYmNhbm5vbi1zYW5kYm94aW5nCis1MDU5NSA5MzNiZTNlMGFjNmNiMDU2ZWE2NGE1MDEyMjM1YmNiOWYwNWY2MmYyIGJjYW5ub24tc2FuZGJveGluZworNTA1OTYgNzE3YTc4ODdmZDdhNzZkNzE0YjhjMTJkNmFiOTA4ZGMxYjc3ZGJjYiBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNTk3IDcxODJjMjc3NWMxZTQ1NDJjZDdkNDI2MjA1YzQ5ZDY1YjNkODBiYzUgbGVnYWN5LXRydW5rCis1MDU5OCBiMWJiMTc5YThhYjA1N2RiYzJkNzQ1ZGM5MDY2ODA2MjEzYjA2OWEyIGxlZ2FjeS10cnVuaworNTA1OTkgNDc2Y2Q4Mzc3N2YyYmE3MmVkYzdlZmVjYTI1NTZkNmI4ZGQ4NTNhMCBsZWdhY3ktdHJ1bmsKKzUwNjAwIDJjM2VjNzIwYWE3YmViMGRhNDAwMmI4NDdjYzVlZDdkYzc4MjU2NmMgbGVnYWN5LXRydW5rCis1MDYwMSBiMDk1ZTgzODhiMmU2NDUyNWRlMjgzNWM3MjJlYmJiZDJjNjE1OTVmIGxlZ2FjeS10cnVuaworNTA2MDQgMzZjNWQwODViODY5MjA3NDAzY2Y0MWU2MWI3YTIyZDRiNzFlYzdkOSBsZWdhY3ktdHJ1bmsKKzUwNjA3IGM0OGIzYTY4ZjY5NjJhNjk1YjI5YmQxNjJiMjQyODk5ZjYzYThkN2EgbGVnYWN5LXRydW5rCis1MDYxMCBiNTYyZmQ3OTUwMGQxZDM3MGY2OTdjZGU1MmRlNDA5N2E2YjY0ZThlIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTA2MTEgMmYzMDUxNWNmNjZiOTZlOTFiYWExYzdiNDY5OWZjNDE0MzRlZjEzOCBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNjE3IDg5MmI3YWMyNmQzYmI1OTAwODQyNWNmMzZlYTgyMzg3NjUyMjIxOWMgbGVnYWN5LXRydW5rCis1MDYxOSBlNGI2YTRmMmNlMTQzN2RhNjE0YjlkMjFlZGZmMDU4OWRiNWFhYWUxIGxlZ2FjeS10cnVuaworNTA2MjAgY2Q0NTljOTIwZjk5MGM5NDNmNjEwNjFlMmIyZjMwMTM0OGE0MWQwYSBsZWdhY3ktdHJ1bmsKKzUwNjIxIGE3NzY4ZmVmNTliMmNkMWViZDJiYzc5OGIxMzk3ZDdjNjRhYjE0OGUgYmNhbm5vbi1zYW5kYm94aW5nCis1MDYyMiBmYzY5ZmE2ZTU0Yzg2ZGMyZTE0ZDg0MDUxOGYzMTIzNTc1M2I5NzhiIGxlZ2FjeS10cnVuaworNTA2MjcgMThiOTc5NmI3YmE1OGM3NGVhYTMyMmU1OWY4OTNlMzAzMjFmN2FhNiBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNjI5IGM4NzBlZTA2NmMxMjU0OGM4ZTk3YTM4MTE4ZGQ3NjEzZGVjOGFlZjUgbGVnYWN5LXRydW5rCis1MDYzMCBmNzFmMjg0MzYzMWZlY2ZiM2JhMDk1NDMxMjMyNmUzYmEwODU4NzlmIGxlZ2FjeS10cnVuaworNTA2MzEgMmE4NGI0NmFkNjRjYTY5ZmE0ZWRjZjVmZTBlNWFlMzAxMmI2ZjU1NCBsZWdhY3ktdHJ1bmsKKzUwNjMyIDE2ZjNjMDJlZGUwMjUzMWIxZGI3ODBkNGVlZmNhODQ1YmYyOGNiZDUgbGVnYWN5LXRydW5rCis1MDYzMyAwZGU1OGJjZTQ3ZWYzMmEzMGYxZWU3YzE5NGFlYzJhYWYwM2E1YTkwIGxlZ2FjeS10cnVuaworNTA2MzYgN2RmYzc3NmRkODFiY2VmNjgzMDAzNzYzODUyOTlmNDgxZjI0ZmNiOSBsZWdhY3ktdHJ1bmsKKzUwNjM4IDlmMmMzZGU3NDg1NmRkZDEzYmZhZTY4ODBiMDU3MWMwNDQxNWM2ODQgbGVnYWN5LXRydW5rCis1MDY0MCA4NWZmYzBiZmNjOTgyOWVhZjA2ZmZjNDBiZjdkNjlhYjEzZGRlYWZjIGxlZ2FjeS10cnVuaworNTA2NDMgYjYzMjU2MzQ5ZTc3OTAwNTFhYzcxNzc0NGEyYmY5N2EwZWJmOTM1ZSBsZWdhY3ktdHJ1bmsKKzUwNjQ3IDdmNDBlZjg3MTczMTExNDZmNzA0OTM3YjVlYjUzOWQ2NjJlNzI1ZmIgbGVnYWN5LXRydW5rCis1MDY1NSA2YjFlZDdiNzA0OGU1ZThiOTE4MGI5MTk5NzhlZDU4NDcyNzQ1ZWM3IGxlZ2FjeS10cnVuaworNTA2NTYgYmY0NzRmOWQ1MjI1ZTdlN2VhNjBjNDE5ZTQ0OWE4MTdhZTE4MTJlMCBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNjU3IDVlY2YyMmE0ZTVkZmMyMDQ0NWQzNDdkYTA1NDBkNjc4YzRjZDVjM2MgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis1MDY2MCAwNTI5YTU4NTA2NGM0ZDc0ZDQ2NWJiMWRhY2RiNjg3MGE5MzA4YWRjIGJjYW5ub24tc2FuZGJveGluZworNTA2NjEgMTQ2NzFhODBhYmVmMDkwNzQyNmM5OGRlNmNjNzYyZGI2ZDBlNTVmMyBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNjY0IDJhNzZlYzJmMGI3OWQwZDU0YTE5YzlhYjAzNjY1MjNhNDk3NWRhMmMgbGVnYWN5LXRydW5rCis1MDY2NSAwNjMxNjQxZmRlZmY0ZWU0NTBjMmZmNjRmNTExM2MzY2FiYzY4MDUzIHJlbGVhc2UyNC1tYWludAorNTA2NjcgMDA3MTUzNTNmODJjNTY3N2Y3ZjEzMDIwNTdjMDE3OTZkYjY4NjkwYyBsZWdhY3ktdHJ1bmsKKzUwNjcxIGMxMzZmZjRkNDI2ZGZiY2I3MzI3ZDRlMzU2MDk2MjkzZDA3OGRjNTIgbGVnYWN5LXRydW5rCis1MDY3MiA5MTBhOTQ4ZTAyOTBmMTgxNzE3OGE0OGY4ODdjMzRhZWQ0YmY1YWFlIHJlbGVhc2UyNC1tYWludAorNTA2NzMgNzU2ZDU3YWNkYTg1YmNiYTI4ZjIzMGU0NWQ3MTQ4ZjhjZmNjZWI5OSBsZWdhY3ktdHJ1bmsKKzUwNjc0IGJkYTkzYjQ1Y2E0MTNlYjNhNTExZDUzYmNlZWExZGVlNWNlMzdiNzcgbGVnYWN5LXRydW5rCis1MDY3NSAzZGRiNTk0ODNmMTAzMzVmMTY1MTY5YzY4YTI4MmFmOWMwYWM2MTQwIGxlZ2FjeS10cnVuaworNTA2NzYgYWVkYjg1ZWU0ZmVjMmVlYTcwYTk5MmM1NjVkNzIyNTU4OTJhYWJhMSBsZWdhY3ktdHJ1bmsKKzUwNjc3IDUwYjBiNTRmYjE3ZDdlM2ZiZTVhYmMwMmQxNTdkYWE0NWIyMzBiZjAgbGVnYWN5LXRydW5rCis1MDY3OCA3NzVmODViOThlNjU5ODM5NjM5MzRhMjhkNDVkOWZiMDJiNDE4NTEwIGxlZ2FjeS10cnVuaworNTA2NzkgOTBkNWQxZmVhNGYyYzExNTY3ODM5YWFlN2Y1ZjliNzJmZjIzZDk5MSBsZWdhY3ktdHJ1bmsKKzUwNjgwIDM1ZDUwZmJlMGI4ODk5ODBmZmIzNjVkZThlYTAzY2Y5NDUwM2FjZDggbGVnYWN5LXRydW5rCis1MDY4MSA5MzRiYTViZThmM2YwYzI3MTIyYWQxNzM1MjNjNzAyMmE5NWMwNjY3IGxlZ2FjeS10cnVuaworNTA2ODMgYTU1MTk3YmQ3MjAwZGUxMTMyM2RhZGI4Yzk1ZjE2ODQ4Zjc3YjU0YSBsZWdhY3ktdHJ1bmsKKzUwNjg0IDYwNjRjYjMwMTIwOWM4ZWM3MzdlN2ZiNTFiN2U4YmQ1NmQ2ZmQ3YmMgbGVnYWN5LXRydW5rCis1MDY4NSBhYTg1NzkxZjU5OTEzZjFhMTA2ZDdhOTgyYTEyYWMzYzI3MTc2YjNhIGxlZ2FjeS10cnVuaworNTA2ODYgZDJiZmNjMWFhYzNkNGZhZTllMjkzN2I4NzA4ZjI3ZTM2OTZkMDBjZCBsZWdhY3ktdHJ1bmsKKzUwNjg3IGJiMTcwNzI2NWRlN2UyNjgyNGJiNWMwMDg5ZTI3MGI4NDUxMTc0ODEgbGVnYWN5LXRydW5rCis1MDY4OCAwMDg5NDE1MjE4MDUwMmRjYTY0Yzc0NGQ1ZTA1MzFmZmEyMTU5NWYxIGxlZ2FjeS10cnVuaworNTA2ODkgNjU0YTViMjYyNzE3ZTI3ZjI5YzI0OTRmMWQwMWNlYzYwNjRhYTczNiBsZWdhY3ktdHJ1bmsKKzUwNjkwIDYyOGI4NTEwZmVmYmI5Nzg5ZGQ3MmYwOGIxNzQ2MDBkZDcxZjU2ZmYgbGVnYWN5LXRydW5rCis1MDY5MiBmZGEzY2JkNzRjNzE4ZWZjZTZmN2ZhZDQ2NWFiMTE3YTUxZTVhZTIzIGxlZ2FjeS10cnVuaworNTA2OTMgZmY1Mzk3MDdhMWVkMzQ3YmJkOTdiMDk1NDI3YWY3MzdjZTI2YzkzNSBsZWdhY3ktdHJ1bmsKKzUwNjk0IGU3ZDBhNzVlMzE0NTUzZjYwNTFmNWYxMmExNzRmZWQ4MDU4Njk2YjUgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis1MDY5NSAyNDRmYjUyNGRkZDQxYjU0NGJmNTc2YmJmODNjOTVlMWQyMzhmNWNkIGxlZ2FjeS10cnVuaworNTA2OTYgOTc5ZTM5MGUyYmI0YzU2NWQwNjhkM2ZjZTgxNjliZjI0MjEwN2VlOSBsZWdhY3ktdHJ1bmsKKzUwNjk3IDk3MDE2MzM4MThiNGJiMjAyNmJmNGQ3MmFmOGIzOTAwYjQxODNkMTEgbGVnYWN5LXRydW5rCis1MDcwNCA5NWZhOGZjOGEwNjVjMzcwNGU4MzhmNjk0ODM3Mjg1NDgzNmQ0YjJhIGxlZ2FjeS10cnVuaworNTA3MDYgYWNmZjFjMzRjY2EzYzM1ZjcxMDY3NWQzYWY5YjcxZDZjZjIzYmI2MSBsZWdhY3ktdHJ1bmsKKzUwNzA4IDg1YjIzOTY1ZWM0YzA2OTFiM2EyNTE1MzhjZjk5NTIzODc1NjBiZDUgbGVnYWN5LXRydW5rCis1MDcxMCAwOGYzNWFiZWNmOTgwZmRhNTRlNWNkOWM2YmFjMjJiZDU0NWQwZDA3IGJjYW5ub24tc2FuZGJveGluZworNTA3MTMgYzU3NTliNWE1N2YwYzY5MDkyOWE5OTcwYWI0NWZiZjA0ZjRmNmZlYiBsZWdhY3ktdHJ1bmsKKzUwNzE1IDFkN2RhODYwODAzMWJmZDJmMGM3NGEyZDA5YjZlYzhiOWViNTgwOTkgbGVnYWN5LXRydW5rCis1MDcxNiA1ZmY1YTU4M2IxMmU5YzY0ZDUwZmJjNTEzZTJmZmFmZTk0Njc3MDg2IGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTA3MTcgODRlOTE2NmI3MTA4ZjEwZDYyMjQ1MjM2MGJhZmU5YTFlMDYwMDNiMiBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNzE4IDNjNWRiMmIzZjg5M2FkYTI3ZGZhYzVkMGM1ZmYwNGIwOWE2YTJiY2IgYmNhbm5vbi1zYW5kYm94aW5nCis1MDcxOSA1YzkwM2Y2NTA3MTk5ZTNkNjJlYjI4MGY3MDU2MDUwYTBhODgwZmI1IGxlZ2FjeS10cnVuaworNTA3MjAgOGZlNjc4NmY1MTQ0NWJhNGI0NjA3MWRiNjFjNjBiNGExM2RjODE2MCBsZWdhY3ktdHJ1bmsKKzUwNzIxIDVhYjc2ZmJmMjNmM2NmMjE3YmZmZGU3YTVhMTVjMTFlZDdhZTIzMTkgbGVnYWN5LXRydW5rCis1MDcyMyAyYTFmZWZiMTg3NjRjYTMyZDFmNjhiMTVjNTFkMGU4MGRlODllOTQ0IGJjYW5ub24tc2FuZGJveGluZworNTA3MjUgMTQwNTMxYjEyNGY4NWRmNTcyOTI3NDFlMjUwNDZiYzk1ODg1ZDdhYyBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNzMwIGJlMTczNGNjNmRjMDJjNTc0ODk2YTE2MDI2YjU5MGNiNDhhYzIxNzcgYmNhbm5vbi1zYW5kYm94aW5nCis1MDczMSBhMzJmMjBlY2MwMjRiN2JjYjk3NTZjNzQwYzVhMWFkNTViYzZiYTRmIGxlZ2FjeS10cnVuaworNTA3MzcgNTk3NjliNTM0Nzg5ZTc1M2E1NDIwNmYwNWU5MThmMjFmNzEyZDE0MyBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNzM4IGViNDQwZWM3NGExM2ViZjU1MzEzMmM3NjA0ZmRhYTdjMjVjNDI1YWYgYmNhbm5vbi1zYW5kYm94aW5nCis1MDczOSAwNjA3MGExMmE2YjAyYjU3MGRkZjc5NzhmN2Y1YWZlNDIxNzgxOWE3IGxlZ2FjeS10cnVuaworNTA3NDAgMzU3MmZhYTlhMjllMDc4YzMyMTdmNjlmMWNiODQwYjkyOGE0N2MxYyBsZWdhY3ktdHJ1bmsKKzUwNzQxIDdmMzgxNzMyNTFiYmM2YjAwNWVhMGFlNTM1N2MwNzE4ZmI3MWJhMTYgbGVnYWN5LXRydW5rCis1MDc0MiBhZjRhM2EwZDQ3Y2NmZTZmNmI3NDczNDVjNDc4YzA4OWI2ZjFlNzA1IGxlZ2FjeS10cnVuaworNTA3NDMgZjIwMzFmMTVkOTlkODEyOGFkZjFjYjNhNzBiYWI3MWI5N2MwZGVhMyBsZWdhY3ktdHJ1bmsKKzUwNzQ1IGJhYTU0MzM3YzNkOWU5NWZiYWQzNTk2MTU3MTJkNGE0MWJmYTUyNzggbGVnYWN5LXRydW5rCis1MDc0NiA3YzA5YjY2ZjA0YmQxNDkxYjAzNjdjOTc3MWE5NDIxOTk3ZmQ3ZDRkIGxlZ2FjeS10cnVuaworNTA3NTQgNDE3Y2RlZGUwNjg4MGYxZDU0OTgzM2Q2YmM0NzgxMjJkMTE5YjhlOSBsZWdhY3ktdHJ1bmsKKzUwNzU5IGQwYTk1NjU0ZjgwMzIxY2UyMzUzOWM5YWQyYmE4YzI3ZjM2NWNiYjYgbGVnYWN5LXRydW5rCis1MDc3MSAwNzllNDJlMGI4MjZhODkwY2YwZjAzNTRmNGJiMDFiYmUyNzZjN2RhIGxlZ2FjeS10cnVuaworNTA3NzIgZjFhMjc3N2U1YzhiM2Q2ODU0YzQxYzQxYjg2ZjhhNjM1NDQxZTgxMiBiY2Fubm9uLXNhbmRib3hpbmcKKzUwNzczIDEyZTk3M2JkZmVlZTI5OGY5MTI0YjA1MDFkYmViZmI4NzdmNmYxZGEgbGVnYWN5LXRydW5rCis1MDc3NCBlZTZhYjMzMTc1ODFiZjc4NDVkODRiNWE2ZTk3N2RiZjg5OTEwNTA4IGxlZ2FjeS10cnVuaworNTA3NzUgODMyZmNlNTBkYTkzNjJlYTQ0NDQzZmVjOWU2ZTI0OTVlNmEyMjdlMyBsZWdhY3ktdHJ1bmsKKzUwNzc2IDcxMzJmOThlZjA3YjMyZDk5NDQ5MzNmMmRiZTdmOGU3NDgwY2NjMTkgbGVnYWN5LXRydW5rCis1MDc3NyA3NWE3MTA2NjYyYTNmZDYyNzI5ZTNkMjIyMzg4ZGY1MzI2MjIwMWM5IGxlZ2FjeS10cnVuaworNTA3NzggMTgwNWU2ODRkYzkyNTcyOTc1NDI1N2Y2MGJlYjExZWZkN2U4ZTkwMyBsZWdhY3ktdHJ1bmsKKzUwNzc5IGJjNWQ4MzFmMWRkYTUwOWNiZjU2YmZmZWM1ZTczNjcwYWFhOWE4MjcgbGVnYWN5LXRydW5rCis1MDc4MCBjZGJiNDRjM2RlODcxNWExMGMwZGNkYThmMDhhOWJiZWM2OWYzZTg1IGxlZ2FjeS10cnVuaworNTA3ODEgMGUwYTk3Y2VkOGU5MWY5MmUyM2E4ZWFlZGRkMmU2ZTQ3OTgzYTNlZCBsZWdhY3ktdHJ1bmsKKzUwNzgyIGU5NzczZmMyN2U5YjM2YTU5NWRlNTEzZjc1YmUzZmRhZGYyMzc4NzAgbGVnYWN5LXRydW5rCis1MDc4MyA5NTdiZjMxMTkyNDc4NDA2MjI4NWYyZmJmOWJmNDZkODZlYzhmY2UxIGxlZ2FjeS10cnVuaworNTA3ODQgOWQxOGQ5NjhhNThiMzMxZmU3ZjIzNWU5NjE2YzAxMjg0Mzk2M2E3ZCBsZWdhY3ktdHJ1bmsKKzUwNzg1IGUzZGE1Zjg3ZmU2NDFkOGIzOTJlYWU3NTFmY2EwYWMzZmY2OWY1ZGYgbGVnYWN5LXRydW5rCis1MDc4NiA1NGJiNzIwNjMyYzQyZmQxODVhZGU4OTk5ZThjMGUyODgyM2U2YWJiIGxlZ2FjeS10cnVuaworNTA3ODcgMGE0YWQ4M2ZkNjU0OTIyNTNjMjg3MzQ5ODE1ZDYwYmU4YmRiNjBiMCBsZWdhY3ktdHJ1bmsKKzUwNzg4IDNhYzg1MDk0MzdkZmRiYzI0NTAwOTY4Y2E4ZDNkODE0OWNkZDc2ODUgcmVsZWFzZTI0LW1haW50Cis1MDc4OSBiNThmNzk1MmUzOGFlODkxZDJhMTAzNTRmOTYxMDMzOWY0YTMxN2EzIGxlZ2FjeS10cnVuaworNTA3OTAgNzg2NDNiZTNjZjQwYmIzYTlmNGQ0MzkzNTcyZWUwMjIzMmM2M2U5ZSByZWxlYXNlMjQtbWFpbnQKKzUwNzkxIGEzZmRhODQzMjM0ZTQ4ZDFjYTZjODJiMjVlNjNjYTRhNDRhOTkzY2EgbGVnYWN5LXRydW5rCis1MDc5MiBmODgxOWJkNGU0Mzc5NzcwNWRhY2UwMTE3ZTIyYzU2MmFiNDQ5OTliIHJlbGVhc2UyNC1tYWludAorNTA3OTMgNTM0MThjYmFkN2ZkNGMzNjJiOWU3NDhmYzlkNTY1YjEzNDhjMWMzZCByZWxlYXNlMjQtbWFpbnQKKzUwNzk0IGE0YzRiN2VhNzljMGE3NGYzNjkxMzE5OWI3NDY3ODNiMWUxMTc4ZGIgbGVnYWN5LXRydW5rCis1MDc5NSA4MzJkNWEzNDEzMGZhNTM2NDU3MDc0MGRlNzUxMDY5MGExYmMzYTViIGxlZ2FjeS10cnVuaworNTA3OTYgYTRmYzRlNzUyNjM0NjgyNTI3YjdmMGQxZmVlMjViYzMyOGJkNWIwNCBsZWdhY3ktdHJ1bmsKKzUwNzk3IDYzYWVhNjg4YjViYjI2ZGZjY2RjNDBlNTY1NzI4ZGIyYWVlYzczOGQgbGVnYWN5LXRydW5rCis1MDc5OCAxYjFmZDE4YjFhZGE1MzgzYzI1ZTU2MjRmODYxYmYwNTNkNTg2MTI4IHJlbGVhc2UyNC1tYWludAorNTA4MDAgMDJmYTEwMTVjYmNjNGM5MzRjODQwYTNmOWZkMmZlNjIwMDFlOTcyYyBsZWdhY3ktdHJ1bmsKKzUwODAyIGNhYWYzN2U0NWQ0N2Q0N2VjNDc4MzU4NmI5NjA2ZTk0MGU4ZDAxODggbGVnYWN5LXRydW5rCis1MDgwMyA4OWUwOTBmZWY5ODUzMDIxY2FiNjk5NmI3ZDg0NjRiZTE4ZGI0MTMxIGxlZ2FjeS10cnVuaworNTA4MDQgZWZkZTVlZTg4YzlmNzc3OWYwMWNlNWIzZmM2MzI4ZjE3MzQyZjkzNyBsZWdhY3ktdHJ1bmsKKzUwODA1IDBjMDBlMmY1MDllMDA3OTM0N2EzZGE1ZDNkOGM1MTRmYmU3MTg3MzQgbGVnYWN5LXRydW5rCis1MDgwNiA3Y2U3ZWQyZWNkOWNhZDM0ZjI2NzdjODQzMTc3NDVjY2MyZTJiNDhlIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTA4MDcgZDcxZDQ2Njk3NGU1ODdiYjM2Mzk1N2EwOTljZmFjZWZmODc4NzFmNyBob3h3b3J0aC1zdGRsaWJfbG9nZ2luZy1zb2MKKzUwODA4IGVhZWRjY2MwMjgzZDc5MTBlNDlmZjJlNzk5YWZlOTMzODI1MWZiMjAgbGVnYWN5LXRydW5rCis1MDgwOSAwN2NlZTAxYTRmY2NjMzg3ZjBmYzFkOTI4ZmE1MGZhODFlZTdjZTExIGxlZ2FjeS10cnVuaworNTA4MTAgYTVmOGQxZDI1NWE5NzliYzcwZjRmNjhjMDc0MzliNmMzZWQyZDM4OSBsZWdhY3ktdHJ1bmsKKzUwODExIDk5YWE4NDIyNGYxODE5ZDU1MjcyNmFhOTExZWE4NTcwOTQ1NGY0N2QgbGVnYWN5LXRydW5rCis1MDgxNSA2M2E0NGM5MWE0ZDVlYmNlMzI1ZmMwZjgyMmMyZThmODJkZjEyZTI3IGxlZ2FjeS10cnVuaworNTA4MTYgNjIyODJmZGFhYzVhMGExMzU2NTk1MDJiZjNjMzRiODVmNzQ0MTZmOCBsZWdhY3ktdHJ1bmsKKzUwODE3IDc5MGE3ODJkOTgzY2M3NDQ2NDE4NTQwMjIzMGJjOGViMjE3OWRiOTcgbGVnYWN5LXRydW5rCis1MDgxOSA2NjIxZWRmZDI5NmFiOGRlMTcwZjE2MDk4ODE3MGM2NzA3ZjAyMjdhIGxlZ2FjeS10cnVuaworNTA4MjIgMmQ0YzlhY2NiOGZjYzEzYzQyODZmMTgwOWZmMjA3ZWUxYzNlOTIyNiByZWxlYXNlMjMtbWFpbnQKKzUwODI1IDgzN2Y1Njk1MGNlYThiNzQyYTQ2M2Q3NDY5ODYwMTYzNDkyZmViMmYgbGVnYWN5LXRydW5rCis1MDgyNiBmZjhlN2M0NmU0Mjk4MDFmMDU2ZDExZjBlMzE0YWM3ZTY2YzZmOTY4IGxlZ2FjeS10cnVuaworNTA4MjcgOTUzNzY3NTJlNjdjZjkzYmIxM2Y1NGNmZmIzODJhOTQ5OWRjMTdkZiBiY2Fubm9uLXNhbmRib3hpbmcKKzUwODI4IDkwM2ZkYzM4ZDU2NDVlNGMyZTAxODkyMDBmNWYwNTRjZDk2MTdhNzIgbGVnYWN5LXRydW5rCis1MDgyOSBmOTBmMzI4NjI3NTYxYzVkNjcxYTg0YWUzOGQxMjI2MTlkNmFmMzI0IGxlZ2FjeS10cnVuaworNTA4MzAgYjkxNTFjOGM3OWU4ZjUzZTlkMzM5ZDA1MDQxMDY3NTM2Y2YwMmQyZCBsZWdhY3ktdHJ1bmsKKzUwODMxIDVkMTE2MmU2YmMzN2Y0OGQ1ZjI4ZjliYWFlNGFlZjY2ZTkzYzMyM2EgbGVnYWN5LXRydW5rCis1MDgzMiA0MGU4Y2FlZjg0MGVmMjQ5YjU2NzBjZTA4MWJiMTg5YTRiZGE2YTZmIGxlZ2FjeS10cnVuaworNTA4MzMgMTQ5MDUyOWU3NGNlM2JhYjkyODNiODU1MzNiZDMzYzk2Y2MzYTA2ZCBsZWdhY3ktdHJ1bmsKKzUwODM0IGI1NWJmMmFkZmFlNWU5MTQzYWJiOGM5OWRjNDNkZjgzM2M4NjhlYzQgbGVnYWN5LXRydW5rCis1MDgzNiA1ZjMzMTIwNTRjZWRlNjFlODM1ZTQ4NDEzM2UzZTc5NTU0NGIwN2E4IHJlbGVhc2UyMy1tYWludAorNTA4MzkgY2ZiZjU3NTcyNDU3ZGMwMzVkMDhiMTRhNDc1YmMwMTk0YTIzMWUwOCBsZWdhY3ktdHJ1bmsKKzUwODQwIDZiMjAwYjhjNjNkMzMyNjZjM2NiM2ZiYzc0ZWI5OWU4ZDA5ZjhkYTEgbGVnYWN5LXRydW5rCis1MDg0MSA2ZDE4NGZiOGM1MzUwOThkOTlhMTUzYWZlYTY2ZmYyOTdmOTQ3YjU5IGxlZ2FjeS10cnVuaworNTA4NDIgN2RhNmY4MWFkNGQ1M2U1MjFhOTZjZjU3NTk0ODk2NGM0YjIyYTczNiBsZWdhY3ktdHJ1bmsKKzUwODQzIDE3ZDU2NzFmZmZjY2MzY2E5OGQ4YzZhYzcxYTFjMGUzMmYwNGM0MDYgbGVnYWN5LXRydW5rCis1MDg0NCA5YzZkYzZkMDliMDczNjIzZTMxZjg4MWEzNWYxYWUxYzgxMGNmYTQ2IGxlZ2FjeS10cnVuaworNTA4NDUgOWYzZjFlZGQ5YzM1MDYzOGQxOWQwM2Q5YmY1NTQ1MzEyNzU2M2U2YiBsZWdhY3ktdHJ1bmsKKzUwODQ2IDI2NzA2NTA3NmYwNTlkZWYwNDIwMTVlODVhZmQ0OWU1ZjUwNTg3ZWYgbGVnYWN5LXRydW5rCis1MDg0NyAyNzFiMmJiMmZjOTIzY2YwZGYwMzNhYjVhNTEwYTE1ZGE2YjA5NWM4IGxlZ2FjeS10cnVuaworNTA4NDggZjI5MmEyYjE0YmFmNDgxMmMzNDNhNzlkODk2MWNiYWI5NjUyNDQxNCBsZWdhY3ktdHJ1bmsKKzUwODQ5IGFjZjYwMDQ3MTM2OWY0M2Y0YjNmNzJiMzRlNDhiNDg3N2ZlNjlmYzEgcmVsZWFzZTI0LW1haW50Cis1MDg1MCBmMDhjNWJiYjgwNDIxY2QzNGJlN2IxYjgwZmIyMGVmNmJmY2I5YzM4IGxlZ2FjeS10cnVuaworNTA4NTEgYjgxNjQyZTUyMjg3ZjM2YmY2YTFlMGY5Y2FiMWIxZjUyYzlkNDljNyBsZWdhY3ktdHJ1bmsKKzUwODUyIDFlMDBlZjA3YmViMjcxOTg0ODIzYjhkMmYzNjE4MDRhY2U1ZDM5YzAgbGVnYWN5LXRydW5rCis1MDg1MyAxODVmNDI4M2EzYjljZDRiNjcwZDliMGFiZGYxZjJiYmNjNDE2MmUxIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTA4NTQgMjljMmZlZTZjOTg0OGU4YTI3Nzg5ZDcxYTcwYmJkNTM0OGQxZTllMiBsZWdhY3ktdHJ1bmsKKzUwODU1IDQwYjQ0NmVkM2YxMjYyZDk2MmUyM2UxYWZjM2MxOWJiYjAwZWUzNDAgbGVnYWN5LXRydW5rCis1MDg1NiA1ZWU2ZDNkYTBlNjQ1NjQ4N2QxMDY4M2JmNzU2OTcxMTI1ODAwNGM3IGxlZ2FjeS10cnVuaworNTA4NTcgYmNlZmJjNWU2NzFhZmQ3YTE2ODQyNWNhZWFkMzJkMDhjZmE3ZWRlNiBsZWdhY3ktdHJ1bmsKKzUwODU4IDBiMGNjN2E0OTY4MmNjMGFmODFlZDRlNDAzZmUyM2Q2YmQxZGI1NzEgbGVnYWN5LXRydW5rCis1MDg1OSBkNzY1Nzc1ZWQ3OWY4NTYzYTE5OTU1Y2Y4ZTViMDVhYTg5NTdlZjg1IGxlZ2FjeS10cnVuaworNTA4NjAgOGNhMzA2OGVhMzQzYTI0YWU3M2FhYjBmNDE0MTBhNTEwOGNmNDMwZSBsZWdhY3ktdHJ1bmsKKzUwODYxIDAyNWMyN2I4MTJmNjhjNDI0YTY2ZWJiNjhiMTgxZGRiNDI5ODcwZWQgbGVnYWN5LXRydW5rCis1MDg2MiBiMDExYmVjZjhjODIyYzJiYjU2NTRjOTkxZDdhNzZkMjAwMWVkMjE4IGxlZ2FjeS10cnVuaworNTA4NjMgYzE4YTY2OTRhMDY2YzdlOTVkMTVjNjdhYWM1YjRmNjY2OWQwN2VjOCBsZWdhY3ktdHJ1bmsKKzUwODY0IDAwYWNlNmU0MDhiMDM3MWEwZjIyNTg4MTU3MDRjNjBmZjkyNGMyNTIgbGVnYWN5LXRydW5rCis1MDg2NSBhMTEwYTQ0NjIxODlhMjAwMDJiOGQ4ZDRmMDc0MmU2NTRhZjRjNzBhIGxlZ2FjeS10cnVuaworNTA4NjYgNjFjMGZlNDgzNzZhMTJkOGEzM2M1YjY0MzVlMWZjNWMxOTU0YmIyOCBsZWdhY3ktdHJ1bmsKKzUwODY3IDYwNTIyZGZlNjI1OTkwYjA0NWE0MGE0MTEwMDdkOTg5Y2UwMzA1OGYgbGVnYWN5LXRydW5rCis1MDg2OCA3MmE1MmU2ZmM2ZjEwZTUzZjUwYjZmMTIxZjIwNjQyNTMwNDQ4MTM3IGxlZ2FjeS10cnVuaworNTA4NjkgODc5YmQ3NTEwZmVhMDBkMjEyNjk3YmFlMjJjMzk3NWM4NmE4YmYwMSBsZWdhY3ktdHJ1bmsKKzUwODcwIDZiM2Q0YTBmMmFjNTkxNTc4MDc0ZDVmZDM3ODRlYjQyZTY4Nzc5NDQgbGVnYWN5LXRydW5rCis1MDg3MSBjNGE3NTQ2YTUwOWYxNzRjMzg4ZGU0MzQ1NmMzZWJjMDZkMGU4NmUyIHJlbGVhc2UyNC1tYWludAorNTA4NzIgY2U0ZGZmMmE5NTIzODAwY2I2NTA3MTQyZWIwOTljZmE2NDg2MmNkMSBsZWdhY3ktdHJ1bmsKKzUwODczIGVlYTY3NDIxMWQzMmJjMWQ1NjNlMDJkMmVmZGQ5OTNlMzk2Mjc0YjEgbGVnYWN5LXRydW5rCis1MDg3NCAwZDBkODJlNDBiOTI3ZTUzZGFiODYzZWY2MDRkYjJhNWM1NTE1ZDg5IGxlZ2FjeS10cnVuaworNTA4NzUgYzZkNGMwYWYyYTEyMjI2OWExOTEwZDRhYjFhNTMzYWIwZmZiZDZkMSBsZWdhY3ktdHJ1bmsKKzUwODc2IGFjMDFiNjM1OWI2MjE1ODhjZDhmYjNjNGY3MzFkM2FkNjk2YTgyMDggbGVnYWN5LXRydW5rCis1MDg3NyBiMGNkY2JjYzVmNDU3OGRiNjRlNGM3MTAzODA0YTZlNGRiODUxMWZlIHAzeWsKKzUwODc4IGE3NTMwMDM2ZjA1NWNiZDg0MjE4MDM5MTk2NmZhMTZhNjJmNjliMDkgbGVnYWN5LXRydW5rCis1MDg3OSBlMTlkYTliMDAyZGEzMWM2MmYxODgzYWRhMTJkNmE0NTNlZDk2ZWUzIGxlZ2FjeS10cnVuaworNTA4ODAgNmViMzc1N2MyYzk5MWQzNjg5ZWI1ODc0N2IzM2E2ODIxZGVmOTNmMiBsZWdhY3ktdHJ1bmsKKzUwODgxIDI4Y2RkNDNlMDU2OTAyY2ZmYjdjMGMwMmVjNmNlNjJjYzQ2MjdlZTUgbGVnYWN5LXRydW5rCis1MDg4MiAwNzgxNzJlZWFhZTUzZDYxNDEyMzA3NDA4NDg0YmE5ODFhMmJkMmUzIGxlZ2FjeS10cnVuaworNTA4ODMgMGIzZmQwNGNkZmI0ODg1YzczNjk1ZDQ2NzFlYWFhYTI2NjMwZGM3YSBsZWdhY3ktdHJ1bmsKKzUwODg0IDExMmYyMTg4MjEzYjI0Y2IyMzc3YTBkZTJlMGNhZmRmZTUyY2NiZmUgbGVnYWN5LXRydW5rCis1MDg4NSA0MGNlYmFmYWU1NmZmNjAzZjgxY2RkOWUwZTJlMjUyYTFmNzRjNmI3IGxlZ2FjeS10cnVuaworNTA4ODYgMzUwNDNmYmE3YWVkODAxY2RkYTUzYThkMjcwYjcyOGYzODAzMmZmNSByZWxlYXNlMjQtbWFpbnQKKzUwODg3IGNkOGYyMGQ0MDBjMWM2NWEzMzBkNzNlNGNmNDk3YmE0ZDYwYmQyYmEgbGVnYWN5LXRydW5rCis1MDg4OCBlZjFlN2YzZDlmOWQ4MmVjOWNkZGI3NTlkZDAzOGZhYWQzN2IyYWVlIGxlZ2FjeS10cnVuaworNTA4ODkgNjFjOGI0MTA0YWVmYWVhNTIxMWY2ZjljZjBjODU0MWU4N2VjNGVhOSBsZWdhY3ktdHJ1bmsKKzUwODkwIDc1NDMxYjBiZmIwZTcyMTNiMGIzNGIwOTYwZmVlMDkzYTYzNDE3N2YgcmVsZWFzZTI0LW1haW50Cis1MDg5MSBiOWYzNTNjMmMwMjNlNWI5ODYzMzJkNzg2OGVkNmFjYzMyMDUwOWFmIGJjYW5ub24tc2FuZGJveGluZworNTA4OTIgNjk3YWUzNjJlZDAyNDE1MmExMDg3ODNjNjM5NjdlYTAwMTE3ZDcxNCBiY2Fubm9uLXNhbmRib3hpbmcKKzUwODkzIDQyNzZkMGI0NjlhZmZmMjRmMmI3ZTI3MTAxZTA2ZThiNWY3MmJkYmMgcmVsZWFzZTI0LW1haW50Cis1MDg5NCAyNzdkN2FmNTVjNDk0NWE3ODBhYjM4NGQ3NmVmMjNhYmU3NDUzZjc5IHJlbGVhc2UyNC1tYWludAorNTA4OTUgNGE2YWRlOWNlNzgwZGI5MDU1N2EzNmExY2Q5YzA1Mjk2ZTU0ZTQzNSBsZWdhY3ktdHJ1bmsKKzUwODk2IDU1ODY1ZDdiYzZlYTQ5MTQ0NWFjYWE1MzExYmUxOTlhNThmMWVmYzcgbGVnYWN5LXRydW5rCis1MDg5NyBiZjE5ODRjMTNlMmY3OTg2NDQ2NDlkZmNjMDgwZTgxODAxYTBkNjEzIGxlZ2FjeS10cnVuaworNTA4OTggNmRhY2RjMWEwMDU0ZmE5MzY5YzczYTk1OGY1OTEyYTJlYmM4NjY5YiBsZWdhY3ktdHJ1bmsKKzUwODk5IDBlOWEyNjlhMjE4OTBiMTAwNWU4YjgwOTBkYzY3NmYxNzYwYTEyOGQgbGVnYWN5LXRydW5rCis1MDkwMCBkMTY2NGE1MDFkYTVjYmRlMGUwMDEwN2U4ZmZjOTk2MWU4YWJkYTM2IGxlZ2FjeS10cnVuaworNTA5MDEgMGRlOWQ3MTQ0NGY2Mjk2ZWI1ODQwMDcxNjE2MGExNDYzYTNlNWQ3NiBsZWdhY3ktdHJ1bmsKKzUwOTAyIGE5YjJmZDJkNGM5NjE3Y2E1NDM0MDk3M2U5MjI0NjFhNjYzZTQ4NzggbGVnYWN5LXRydW5rCis1MDkwMyBjODM0Y2I5NTYzN2FjZGIxN2QyM2RkMTZkNmFhYzMyZGE2YTBkNTRlIGxlZ2FjeS10cnVuaworNTA5MDQgYzNiYjRiMjNlYjliM2ZiYWNhMjYyYzlmODFlYzA5ZmNhZjY5MjA4ZSBsZWdhY3ktdHJ1bmsKKzUwOTA1IDQwNmMxZWZlN2JlZWQzNDY5ZjY5MWU2OWIxM2NjOWJjMzNkYjcwNTUgbGVnYWN5LXRydW5rCis1MDkwNyAwNGRmMGE5NzIxYjJjNzRjYmYzMDE0MjVjNjIxZWI5NTNmNDIzMmY3IGJjYW5ub24tc2FuZGJveGluZworNTA5MDggMWI1OTdjODAxNTcyMjJjNDMyOTEwOGQ0YzczNDhmZjQ3NDA0NGI5ZiBiY2Fubm9uLXNhbmRib3hpbmcKKzUwOTA5IDlmZGM2ODQxYzNlYjY5YzcyZWExN2ZiMzRhMDFjNTQzZjIzZmEwMWEgYmNhbm5vbi1zYW5kYm94aW5nCis1MDkxMCAzMDhiYTY0MzE3M2EwMDRmM2ZiY2I5ZGE0YTU2YmIyMzI4Mzc4NDNhIGJjYW5ub24tc2FuZGJveGluZworNTA5MTEgZWM1MTZiYWY4YTMwYzVkNTljMjVhMjFlMmQ4MmI2NDRhMzk2NTQ2MyByZWxlYXNlMjQtbWFpbnQKKzUwOTEyIGYzZDU0MDc1MWFkZTA3ZGQ5OGNhYjEwODYzZWNkMmZkYWI3MTE3MTUgbGVnYWN5LXRydW5rCis1MDkxMyBjNGFjNmVhNDk3YTEwNWVkMzU0NDNlNGU2YTI0Mjc2YzY5ZDkzYjk2IGxlZ2FjeS10cnVuaworNTA5MTQgODdjOWUzMzFkNWM4ZDYxMTJjODEzZGU4MWEzZGY2NGFiZDg1ZjI2NyBiY2Fubm9uLXNhbmRib3hpbmcKKzUwOTE1IDZiOTZkOGM5MjNiZWM1YjE1ZWE0ODUwYjEzMzcyOWI4MTVkNGJmODQgbGVnYWN5LXRydW5rCis1MDkxNiAzZjQ0ODViMjBlNzk5ZThjYWUyN2EwZjdhYTgyY2MyNzUwOTQ4OGE0IGxlZ2FjeS10cnVuaworNTA5MTcgNWU4NWVlZTMzNTgyOGQ4MzVkOGE4MDQ5NTQ3OTUzYmVkZDhlMGM4MSBsZWdhY3ktdHJ1bmsKKzUwOTE4IDEyY2ZhMWJjZjg0M2Q3NGJjYmUxM2U4NDI1MjcxZTNmNGIzZmQxMWYgbGVnYWN5LXRydW5rCis1MDkxOSA4YjljY2Q1ZDkzMWUwZjI0MzdiNWFmMzQzNDdlZTA0MGM2YjQ2MTk4IGJjYW5ub24tc2FuZGJveGluZworNTA5MjAgOTI1YWI0NzgyOTk0MjQ5NzA5NzNlMjk2ZmQyNjk1NDM5ZDllMmIyNCBiY2Fubm9uLXNhbmRib3hpbmcKKzUwOTIyIGE1NGFlMjU4M2I3MDEwMGNhMjA4ZmUxMTM1ZTZiNzgzN2U1MDBiZWEgbGVnYWN5LXRydW5rCis1MDkyMyBlNzk1ZTA1ZDZkNTY1YzYyYjkzMmEzN2MwMmI2NzI4NWYyODljMDA5IHJlbGVhc2UyNC1tYWludAorNTA5MjQgNmM4YmM3Y2Q3MmE2YzlmYzdmNDgxZTAzYzAzZmVlMGE2MWU5YTIzZCBsZWdhY3ktdHJ1bmsKKzUwOTI1IGZiNmJjY2ZmYmUzMTBhNGIwODgyNjBmZGMzMmRjNDcwY2M3YmFiZDkgbGVnYWN5LXRydW5rCis1MDkyNiBjZGI0Nzg3MjI2YWYzYjU1MzEwYWU4MDVhOTQ5Y2YzMThhMzA1MTE1IGxlZ2FjeS10cnVuaworNTA5MjcgZDQ1MzQ0MGIzM2M2ZTUxNzMzZjFkM2ZiMmJiYWEwMGZhNTU2YTk0MyBsZWdhY3ktdHJ1bmsKKzUwOTI4IDFmYWQ0ZjNlMzZiYTRmYjA0NDM5ZDQ2OWNmMWI1NDE4YTcxZTdjZWMgbGVnYWN5LXRydW5rCis1MDkyOSBhYjM0OTVkZjRjY2VjYmE2ZTFkNjI4ZmQ3YThjNzNmYTQwNzBlMDZlIHJlbGVhc2UyNC1tYWludAorNTA5MzAgYmQyNmExOTUzYzA1YmUyZWFmZDNhNmRlNTZkNjgzODA3OTRiYWY4NSBsZWdhY3ktdHJ1bmsKKzUwOTMxIGE5OTVjZmY4NDNiMzQwZTFmNWFiOGM5NzdkMjI0ZmFmYzBjYzhiMTMgbGVnYWN5LXRydW5rCis1MDkzMiAzZmVkN2ZiNmJjOTY0NDkzOWNkN2VmM2MwMTcyNjE2YTRhNTBlMjQ1IGxlZ2FjeS10cnVuaworNTA5MzMgNWYyMTU0M2MzM2RjNGVjYTdhZTNlYTI1MzFlNzQ2ZmJiMDkxZmQ5NiBsZWdhY3ktdHJ1bmsKKzUwOTM0IDJmM2Q4NzFiZjZlZjIyZjM5YTI1N2M2NjY5MzRiODczZTQ1Y2RjYzggbGVnYWN5LXRydW5rCis1MDkzNSA2ZmY3MmFkOTNhZDJiYTYxN2M1MTUxZjE0ZTFlMTg0Y2E1YjRjYjljIGxlZ2FjeS10cnVuaworNTA5MzYgMWM5NGY2NjIzNzc3OWI1NmJhYTk3MWUxNzFmZmQ1YTBlYmJkMTI4OCBsZWdhY3ktdHJ1bmsKKzUwOTM3IDZhODk5NWMyZThiYzk5MWQxOGNhY2MzNDA2MDIyMWYyNDM4NjBiMWYgbGVnYWN5LXRydW5rCis1MDkzOCAwNjkxZDkwMWQ4OWNiZjNiYWMwZDUzYmE1ODcxZmFmN2QyNDg2ZDIyIGxlZ2FjeS10cnVuaworNTA5MzkgMGFiYTZiMWY1YTAxYzNiZGY1ZGYxZGExMmI0M2JiNWRlMTc3YjNjMCBsZWdhY3ktdHJ1bmsKKzUwOTQwIDFhMjIyZjExMGFhYWY5OWRkMTIxODI1ODg1NjRlMTFlMTE1MjU5MTMgbGVnYWN5LXRydW5rCis1MDk0MSBjYjFlNDMyYjQ5MTlmMTA2NDQwNmE2OGM4ZWYxNjA4MzU4YmQ2NTI0IGxlZ2FjeS10cnVuaworNTA5NDIgNGRkNTJiYTUyZGU4M2VlMTNjMzNlZTc3NGVhMTJmZDQ3NjU1OWE2NSBsZWdhY3ktdHJ1bmsKKzUwOTQzIDNhMmQzZWRhM2UxNmU1ZDRkOTZkOGZhNWQ1NTdmNDEwN2JjYmNmMDEgbGVnYWN5LXRydW5rCis1MDk0NCAzNDk4M2MwYjI2YmMyOTI2NjI5ZTIxMjY3NGM4OGYyNjFmODQxMDdkIGxlZ2FjeS10cnVuaworNTA5NDUgODA2OWQ3M2FjYmRmOGI1ZTlkM2I4N2M2YWU5MjFhYjVmOGIwYjlkNyBsZWdhY3ktdHJ1bmsKKzUwOTQ3IDM1NTgzZjU1YzVhOGE1NWEwNjdhMWJlMWNmYjQwZWYxYWU0ZDI2NGYgbGVnYWN5LXRydW5rCis1MDk0OCA3MjgxNDI5YTAxZDY3ZDRiYjcwOTg2ZjJlNTc3MTk1ZDZiYzQzMmY0IGxlZ2FjeS10cnVuaworNTA5NDkgMzRjMjBkM2YyNTEwNjQwNzNkZmQ2ZWIzZDI5MDMyOWI3ODE0YTAxMiBsZWdhY3ktdHJ1bmsKKzUwOTUwIDg4ZGI2MDJmMjNhNmQxZTVkNDVhODQxMjQwM2MwYWU5YzU1Nzk1OTQgbGVnYWN5LXRydW5rCis1MDk1MSA0NWEzNTRmNzRkODBkNjU0MDlhMGRmMmE1YTJhNTkyYjZiZGI0NDZkIHJlbGVhc2UyNC1tYWludAorNTA5NTIgNGRiOWQ5NTMzYjE2M2QxNzljMDk5OWMwYjRiZTY3YjU3OTFmNmI1MyBsZWdhY3ktdHJ1bmsKKzUwOTUzIGQ4ODg4YzhiODcyYjEzYTczNzRkNDYzYTM2Njg4NzBkZGNjZmFmMTUgbGVnYWN5LXRydW5rCis1MDk1NCA2YTVmNzlhNGU2ODczM2UxMzZmMTI1NmMwYzFiOTExNzI1ZjhmZjU2IGxlZ2FjeS10cnVuaworNTA5NTUgNWFkNmUyYTcyYjJhYzJhMTQyMzk3ZjQyMzU5YzFlNWZjOWE4MTE5MCBsZWdhY3ktdHJ1bmsKKzUwOTU3IDZkMWY2NzNmMDU5MDdjNjgzYjcxOTQ2ZjcwYzFhYTBlNTI0NzQ0NTggbGVnYWN5LXRydW5rCis1MDk1OCA4MDU1MTJjZjE0ZWZjYTY1ZWQ4Y2JiZTBhYTBjOTJmYjEzZjFmOWU0IGxlZ2FjeS10cnVuaworNTA5NTkgNDQwN2U1MTkzYTRiMGM5MTcyODVmMjJmY2MwODQ3ZWM4ZTA2YzRjNCBsZWdhY3ktdHJ1bmsKKzUwOTYwIDRlM2FkNjVmNTVlOGVlMjdjZWEwMTIxYmJkYTk2NGVjYWQyYjNjNDUgbGVnYWN5LXRydW5rCis1MDk2MSBlZmJhZWM5Njc0ZGZkMWY5OThkMDY1NjM0MzIyYzdmMWFhZTg5ZTFhIGxlZ2FjeS10cnVuaworNTA5NjIgZGQ1MWU1NmI2Y2IwYTVkMjllODk3YmJjMjVhMDBlMzE2NDlkNDlkZSBsZWdhY3ktdHJ1bmsKKzUwOTYzIDE1MjNjMzhjZDUwNWZmMjE5MjJiNmY4YjQ3ZGUxZDNkNzAwZmYyNjkgbGVnYWN5LXRydW5rCis1MDk2NCAzODhiN2Q5MGJiODk2M2U5N2U0YmRjZWIxZTZkMTg3NGZiMmQ4ODNkIGxlZ2FjeS10cnVuaworNTA5NjUgZjY5ZDkxYTdjZjcxNDg5NGVkZDA0NmVlNTdlMzE0MjA2Y2EzYTc4NSBsZWdhY3ktdHJ1bmsKKzUwOTY2IDc3ZjM2NTNiZmMxNDgzZjc0MGIxMjBjNzc5YThlM2ZlM2FkYjYxYjggbGVnYWN5LXRydW5rCis1MDk2NyBhZWU5ZjBkNWZkMmIxNjcyNDUzYWRlZTlkZTUyMGI2M2M3M2I2Y2M4IGxlZ2FjeS10cnVuaworNTA5NjggYjc0NWIzZmQ2NmE2NDlhNWZhNTQwYmRmNDc5NzFjMjZhZjBhOTU5ZSBsZWdhY3ktdHJ1bmsKKzUwOTY5IDdkYzVmM2VkZTRjZGM2MmJmZWZiMWQ3MGJkMGJhZWJjZDk3NTgzNjQgbGVnYWN5LXRydW5rCis1MDk3MCAwNDFlYjYyMzFjZGMyNDE2ZDliOTVkMDY1YTgyZWNiMWExNDc1NTUyIGxlZ2FjeS10cnVuaworNTA5NzEgMWI0ZTVlYjIxMDQ5ZmI1ZTU5YTNiMjQ0NjhiYzhkYzg5NzAyMGE5OSBsZWdhY3ktdHJ1bmsKKzUwOTczIGNlYmVlMWY4NTIyMjE5MTFhZGIwYmIwOTU2YjE5NzU4ZDRmYWM2MmMgbGVnYWN5LXRydW5rCis1MDk3NCAxZWI5MjE1NjQxYTg4NDRlYTY0MmMxNDc3OGNkMzAzMDVkM2UzMmI5IGxlZ2FjeS10cnVuaworNTA5NzUgMjE2ODc3Yjg2YmMyODY1Zjc1YWYxYTM5NTNlYzk4OGNjNTIyOTU4NSByZWxlYXNlMjQtbWFpbnQKKzUwOTc3IDkzNzdjNjYwNDU0MmNlNmVhYmY1ZDBlNjJjZDQ0MzVkZTZkMWVjOWUgbGVnYWN5LXRydW5rCis1MDk3OCAzNjFlZjdjZWVmMjhkOWY2M2ViM2U1YzdlNTU3NTgzZjBhMTM1NDNkIGxlZ2FjeS10cnVuaworNTA5NzkgYmRlNThhNzhmYzcxMmUyYTk3MjVkNDc0NTgxYzE0YzliMzBhMWUzNyBsZWdhY3ktdHJ1bmsKKzUwOTgwIGQ5M2EwNDM0MGU2YmJhNTc0N2VmMGIyZmYwOTk4MDUxZTZmYzkxZTMgcmVsZWFzZTI0LW1haW50Cis1MDk4MSA2NWU3YjQyMjM0NDRmMzZjODY3ZDk3MDEyYzQwZTk0ZDRlMzJmMTMxIHJlbGVhc2UyNC1tYWludAorNTA5ODIgOWI5NTgwOTgyMDM1NWI2ZjFlNDg3NDcxYmNlMWViOTA0ZDc0MDcwYSBsZWdhY3ktdHJ1bmsKKzUwOTgzIGM5OGEyMzUyOTgzYTQ5NmQxNGE5OGQwOTkzMGU2NGUxZmY3MTUzZmIgcmVsZWFzZTI0LW1haW50Cis1MDk4NCAyOWM3NjM1ZDAxOTlhYzViZTJjOTc5OTQyZWUxMDJiMDljYjI0NmUxIGxlZ2FjeS10cnVuaworNTA5ODUgN2Y0NGQ2MzRmMzc3YmQ2ODliMzlkZDRmYjJhZmJmZThkZmUwOTJjOSBsZWdhY3ktdHJ1bmsKKzUwOTg2IDRhZWQ0MzY3YWRkMjdjZWViZmJkZDdkODUzZjJiMDI1MGMwNmE5OTIgbGVnYWN5LXRydW5rCis1MDk4NyBkMGU2MTcwNzA0ZGVlODUwOTYwMTRiMzM3ZWQwNDFkMzJjYjMxYWFmIGxlZ2FjeS10cnVuaworNTA5ODggYzg3YTM5NTFkZmM1MGFhMDcxOGJmZDhlMjBiMDljNjY5MWYxZDUwOSBsZWdhY3ktdHJ1bmsKKzUwOTg5IDRlZDVkNGM4ZTY1NDI0ZjRhODExYTA1N2FhNTc3MDFmMmQ5ZWUwYTMgbGVnYWN5LXRydW5rCis1MDk5MCAzOTVkMTVlODM3NGE3MGEwNmE0NmRjNDc4MzI4MGQzM2MwODUzZTJlIGxlZ2FjeS10cnVuaworNTA5OTEgYWVjNjY2OGM1OGQxZTFmODkwMmZlODVkNTIwNjcyMjFkOWM5ZWI1MiByZWxlYXNlMjQtbWFpbnQKKzUwOTkyIGNmMDQ2ZTIyZDdkZDU5YzRjYTMyZDI0NzM0M2Q2OGJkMTAxYTJmYmQgbGVnYWN5LXRydW5rCis1MDk5MyA5MzBiYjFlYjhkZDVkMWNhYzUyOTc0MTUzNDg4MTRiZjc0N2Q4NTIwIGxlZ2FjeS10cnVuaworNTA5OTQgM2RkNDEwMWNiN2U5Nzc5ZmZmNDQ1MjNjN2JhOWFkYTZjYzc1OWI4YyBsZWdhY3ktdHJ1bmsKKzUwOTk2IGY3ZjEwYThiOTZlZTdkNjAxNGY3NjQ4N2RkN2UwMzk1Y2U1MDM3ZjUgbGVnYWN5LXRydW5rCis1MDk5NyA3ZjA0NzkzZmUxMzVlNWU4ODQ5NTdhNTc0ZjQ1ZTI1YTMzODQyOTkxIGxlZ2FjeS10cnVuaworNTA5OTggOTEwMTUxNTI0ZjVlZWIwZDMxNTExM2NhZjVjYTAxMGU2OGFhYjM1YSBsZWdhY3ktdHJ1bmsKKzUwOTk5IDY2MjgxNDg4ZTkwMjNhODIyZDY5N2FmOTVhNzllZWMyZWQ3MDIzODEgbGVnYWN5LXRydW5rCis1MTAwMCBiNzliNjhiODJhNDQ1YzMzMTFlMjU5MjBjODc1NTc3ZDhmNDlkNTQxIGxlZ2FjeS10cnVuaworNTEwMDEgODZlODFkZWZjMjg1NmU2MDIwODEwZjU4ZWU3NzQyN2EwZGU4YmQ5ZiBsZWdhY3ktdHJ1bmsKKzUxMDAyIDNiNzg5NTdjNzc5MTk5ODRiMDEzYmI5NmRiODA1MzU4NTEzOGFjMWIgbGVnYWN5LXRydW5rCis1MTAwMyBmM2UwODkxNWI4N2I0NDM1NjFiM2MzM2IxNDFhNjU0Y2QxOGNhMWYzIGxlZ2FjeS10cnVuaworNTEwMDQgODZjMzYxOGE0OWMzZjNhNTkyNDU4ZjVlZTliODQ3M2NkMWU5OTg1ZSBsZWdhY3ktdHJ1bmsKKzUxMDA1IDQ5NjZiMTc5NjNiNDFlN2U3ZTYwNjFlNGRlZTZlNDVkMGNhYTA0OWEgbGVnYWN5LXRydW5rCis1MTAwNiAzZGU4YTU4YWUwYjllOGUxMmRlZTI0MTNhYjRiNmZkYjk1ZWYzZDI4IGxlZ2FjeS10cnVuaworNTEwMDcgMzkzOGU2ZWZhNzkzZDZiMzE3NmU2NWMwMzg3MzAyM2U0MzQ3YzgyMyBsZWdhY3ktdHJ1bmsKKzUxMDA4IDMxNWE2NmQyMjQ3YTc5MWQzYjBjZjQwYTczMjU0NDI1NDUwODE4MzMgbGVnYWN5LXRydW5rCis1MTAwOSBmZjIyM2I5NWYyMDdlMDlkMzNiYzUwOGQ2ZTI0ZTRkYTJmYzg4MDNlIGJjYW5ub24tc2FuZGJveGluZworNTEwMTAgOWQ3YzQ1ZDBkMWJmN2VjMzY5ZmU3ODNjMTQ3Yjk5YTJjMmFkMDI5NyBiY2Fubm9uLXNhbmRib3hpbmcKKzUxMDExIGVlMmQ0NmFjMmY2ZTdiNWI5ZjE2ZTQ3Nzc3NTlkOWY4OTNhMzYwNDYgYmNhbm5vbi1zYW5kYm94aW5nCis1MTAxMiAxYzBjMTI4MzhlNjI1M2VkZjE1MTE4ODA4MWQzMTIyOTZlYjNmZWY4IGJjYW5ub24tc2FuZGJveGluZworNTEwMTMgODJiNjc1N2ZmZmY0NzZiNTYxNDU3NWU2MmYyZTliNGI3NDI1OTFiNiBsZWdhY3ktdHJ1bmsKKzUxMDE4IDkxY2E2ZWVhZWI0YWNjNTY0ZTBmYWFjMzllYTEwYjI3MzNiNGU1YjEgbGVnYWN5LXRydW5rCis1MTAyMCBkMzlhZWU2Y2RkMzJjZmFiZDFjYmRlYTJiNjE3N2UyZjFkNmRiYjc4IGxlZ2FjeS10cnVuaworNTEwMjEgNTNkMDU1MmE3YThjNTA3MTUxM2JiMTA2NzVlOTIwOTZhYzQ2YTUwZiBsZWdhY3ktdHJ1bmsKKzUxMDIyIDI5MTVjMDcyOWYwYThjZTZkMzE4YjMxMzk1NmMxZjUyYzRiY2IwMGYgYmNhbm5vbi1zYW5kYm94aW5nCis1MTAyMyA3ZTAzMTgzZWI3YTUyYTFjOTRiMGRjNTc1NDc4ZmUwNTBkOGFkODA2IGxlZ2FjeS10cnVuaworNTEwMjUgMTU2N2MwMWNjYTczZjlmNjg0ZTNiZjY2MGZiOWE5YjM2NmU0YTUxOCBsZWdhY3ktdHJ1bmsKKzUxMDI2IDQ2Mzc3YjA1ZTE4MTU4OTE1YjY0Nzg1ZTFhMGU3OTZjZDZhODFkN2UgYmNhbm5vbi1zYW5kYm94aW5nCis1MTAyNyAyZjIyMWJkZDlmNDRiOGY4YzkxMzdjNzAyZTYxMzRiNTliZjQ5ODFjIGxlZ2FjeS10cnVuaworNTEwMjggMjMyZDE1NmJlYjgyZmM2YWQ0MmUyODkzMDhlMGU3NmFmZjU5NWMzNyBsZWdhY3ktdHJ1bmsKKzUxMDI5IGQyMGI5YTJkOGVlNzMwMjA0YmEyYWRhN2YxNGQ5ZGZmZGVhZWEzOTEgYmNhbm5vbi1zYW5kYm94aW5nCis1MTAzMCBjZDgyZWJmYzY2YWZkNDY0Zjc0ZWZlMjJiODNiYjJhZWE4NWRhN2EzIGJjYW5ub24tc2FuZGJveGluZworNTEwMzEgYmQ1MGE0MmI3ZGYwZDBhNmVkZjEyNTFiMjczODJhYmVlMjdlMzZlNyBsZWdhY3ktdHJ1bmsKKzUxMDMyIDRmMTVhYmIxMjBkYzUxNjMyMzg1YjBlZDAyMTAxYzIxMTJlM2NmYmUgbGVnYWN5LXRydW5rCis1MTAzMyA3ZDZiOTcxNTgxODA1YTc1MGJlZjRmNWI0NTkyNTk5MDZkYjQ1ZDAwIGxlZ2FjeS10cnVuaworNTEwMzQgZmEyZGFjMzkyNmZmYzE1OWRhMTM5NmQwYTgwODA1MGU0YjBlMDgzYiBsZWdhY3ktdHJ1bmsKKzUxMDM1IDU5NzYyZTc5NjI4MTJmYTc4NjRlZDk0MjFmZWQ1MmE3YmEyNWVjOWMgbGVnYWN5LXRydW5rCis1MTAzNiAxMmZmZWQ5MjdhM2Q0NWQxOTUwYWRjNTBiNjlmZmI2NjA0NWMxNWQ2IGxlZ2FjeS10cnVuaworNTEwMzcgMzQ0MzY0YjQ5MjA4NTY4ODY5MzZlMWVhNWY4ZjRmOTAzZmYxZDU0ZSBsZWdhY3ktdHJ1bmsKKzUxMDM4IDAwMzUwY2JlMGE5ZTk0ODdjYjZmNjU4MDVhZjVkODllYjU2ODIxYzEgbGVnYWN5LXRydW5rCis1MTAzOSA4NWZkY2RmY2E4NWMxY2JhMWI5N2JlYzZmZTJjZmY4ZjI1YTMyOGM2IGxlZ2FjeS10cnVuaworNTEwNDAgNWY5ZmEwYjg2M2FlZTgwZjk5MjNmZWY1ZTA4ZTE0M2U0NjdiYTI4YyBsZWdhY3ktdHJ1bmsKKzUxMDQxIDhiOTMxNzRkNTAxYTRjYjliNGUwZGQ4MDFjMzdhNDAwNjg3ODUwYzEgbGVnYWN5LXRydW5rCis1MTA0MyAxZWFkNDEyMjFiZDg4MGVjMTlhZDEyNTliMjlmM2EwNTZhNGQ3ZDJiIGxlZ2FjeS10cnVuaworNTEwNDUgY2UxMGUzY2M3YWViZTg5ZjI0Yjc0NzhhNTA4YjcwOGMzNjAxMTc5ZiBsZWdhY3ktdHJ1bmsKKzUxMDQ2IDgyZjU2MjA3NjUyZjY5Y2FiMmE5YzIzMDY1NTY3ZWM0MDcxZWM0ZDggbGVnYWN5LXRydW5rCis1MTA0OSBjMGFiYjE4Mjk5YjQ0MmUxMTYwZDJmOTU4YmNlMThmNjY4NTBjYWE5IGxlZ2FjeS10cnVuaworNTEwNjUgY2RjZjJiY2FkNjI0ZWE4YmFjNjM2NTYzZGZiODE5MzAwNDc0MGE3YSBiY2Fubm9uLXNhbmRib3hpbmcKKzUxMDY2IGMzODk4YTczYjM4NjA3ODc1MTM3ZjNmMzdkYTlkNzFiYmQ3Mjg4OGYgbGVnYWN5LXRydW5rCis1MTA3OSBlYzRmMzVkMmE2OTNjZTE5NTAyZjA2ZDZhYjRmNGM1YjVkMThmZWYzIGxlZ2FjeS10cnVuaworNTEwODAgYjkwYThiMDM5NWJkNDNmZDE5Mzg0MjQ1MWQwYzQ5NTczYjRkNzE2NiBsZWdhY3ktdHJ1bmsKKzUxMDgxIDhlZjNmOGNmOTBlMTIxYTBiNDBhMGUzZmI3YzMwODZiYzBhOTE0NDAgbGVnYWN5LXRydW5rCis1MTA4MiA3NWJmNzczNjdkYTMyMGIxMjU5Mzk4OWZlOTFlYmVjZjdlYmIyNGQ5IGxlZ2FjeS10cnVuaworNTEwODMgODI5NmZiOTZjYzE4NGY2NGEwMDdmYTQ1ZjU2ZjgwZWI3Nzk3MTgwZCByZWxlYXNlMjQtbWFpbnQKKzUxMDg0IDU1ZjgzMDE4MzUzMjZlNmNiYWJmZjJhOGY4Nzc3MzM5YzBhMjAxNTcgbGVnYWN5LXRydW5rCis1MTA4NSA4NDk3NGM2NzY5MDMxZDBmNTdhZmNlNTgxODdmNzI1YjdiODQ0MGFhIGxlZ2FjeS10cnVuaworNTEwODcgNzdjZjE4YjhiMWNlMTMzMDBkYzlkMWY4NzRjNThmMDQ3NzNlYjM0YyBsZWdhY3ktdHJ1bmsKKzUxMTA0IDEwMDRhMTZiMGYwOTFiYjc4M2YyODQxOTUxOTEyYjBmYmVmYTdjYTQgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis1MTEwOSBlYjIzZDA5NmQ2OTQ2ODk1MTk0NzZmNmFjY2NhOGFiNmQxMjAyM2ZlIGxlZ2FjeS10cnVuaworNTExMTAgYTljNzQyZDZjODg4ZWUzMzUzMWJhZGJmZWU5ZmQ0ZDczMTcxZjEyYyBsZWdhY3ktdHJ1bmsKKzUxMTExIDAyMzgxNjZmMDdiNzAzNWRjNjZhMjQwZjEyM2I2NzVkNmQ1M2FkMzMgbGVnYWN5LXRydW5rCis1MTExMiA0MDU4NWZiMzg3YmJhYTgyMzk5MDRhNjI3YTNhZjU0OWRlNWU4NmE1IGxlZ2FjeS10cnVuaworNTExMTMgNDY1YTA3OGQyY2E2YjdhMzZkODkxM2YzNDQ4MDMyNjI4NGY3ZmYzMiBsZWdhY3ktdHJ1bmsKKzUxMTE0IGFhMGNjNzU1MDc0ZWI4OTEwMWMzNmQ1YTUwMDRhN2MwNDY0MzZhN2IgbGVnYWN5LXRydW5rCis1MTExNSBlZmE4MDYzMzMwOWRhODc0NWMyM2RiY2M2Yzc2MzEzYmE0YzQ5NzEzIGxlZ2FjeS10cnVuaworNTExMTYgNjU2N2MzMmFiODgxNTUwZTBlMGMxNTIzYjJkMGJkZTU5ZDM0MjZlZCBsZWdhY3ktdHJ1bmsKKzUxMTE3IDk5OWE0OTE0ZDUzY2I0MWY3ZGRmZjM0MGJlOTBlZjYxNWM2YzMzZWYgcmVsZWFzZTI0LW1haW50Cis1MTExOCBmZjRiMTU3ODAzOTY4MzNmNWE5NGRlOWE0NDQwYzc0OTAwZWZlNzdiIGxlZ2FjeS10cnVuaworNTExMTkgOWNiNDU2NWU2MGNhYjQzMjExYWM0NWJiMGRlNTRiYTAyZDVhZjhiMCBsZWdhY3ktdHJ1bmsKKzUxMTIzIGZlNDRkY2JlMTNmMmMyNzdiYWJiMmE0OTYwZWRhMjBlODA2MjY1ZTEgbGVnYWN5LXRydW5rCis1MTEyNiAzYmZlZjNkYjMyYjM5MmE0ZjYwYjBmMWYzOWNmNWIyZDVhOGIxMzM1IGxlZ2FjeS10cnVuaworNTExMjcgNDA0MTVkZjViYTlkZTVlYjY3NGM3NGRmN2FhM2IyNmE0ZTQ4ZDg0YSByZWxlYXNlMjQtbWFpbnQKKzUxMTI4IGI5MGZlNGFlMzAwODM0NjJkNzlmZTI4NmVhZjRhYTlmM2JkYWI4YTAgbGVnYWN5LXRydW5rCis1MTEyOSA1MDA5ZGU1MDRmOTI0MDIxYTQwMzJlZDk2N2U4ZjRmZTY1ZTk4NWJhIGxlZ2FjeS10cnVuaworNTExMzAgMjE0ZTRhNDM4NGYxMmIxMmY0MmFhYmE0NTE4ZDA3Yzk1MjNhZTk4OSByZWxlYXNlMjQtbWFpbnQKKzUxMTMxIDJlNjMwYjJkNWI0NDYwZWQ5YTY2MmM4YTA4ZDMxMDkxODkwNGZlMTUgbGVnYWN5LXRydW5rCis1MTEzMiA3MmEzZjcyM2VmZDE2OTcyMDQ5NmI3YTIzNTM0YzVjZTNmNzBiMzk3IHJlbGVhc2UyNC1tYWludAorNTExMzMgZmMxMDFjYzM1NGE3OWZiNjUwZGE1YjE1OWIyODdhOTNiODBiMWY5YyBsZWdhY3ktdHJ1bmsKKzUxMTM0IGI3ZWFiMWMxOGU5ZDM3YmM3ZTM4M2ZlMTgyYjdkMTMxODhlNjkwMjUgbGVnYWN5LXRydW5rCis1MTEzNSA1OTQzMjk2YTUxODIxNWQ3MDAzNjdiNTIyY2FmZjFlMGIwM2U3NzMwIHJlbGVhc2UyNC1tYWludAorNTExMzYgYjUwMjY4ZjQ2ZmZmOWE3NjBmMzA1ZTkxNzRlZDg0ZGNiN2Q4ZDIwMiByZWxlYXNlMjQtbWFpbnQKKzUxMTM3IDMzNTA0NzRmMzQzM2M5OWQyZGUwYmY0MDEyZTBmN2UwZjY4MDQ3NzMgbGVnYWN5LXRydW5rCis1MTEzOCBmNWE3ZjRkZDkzZTBkODc1ZDhhNjM1YjQyYWU3NjVhOWQwNzg1MWRlIGxlZ2FjeS10cnVuaworNTExMzkgOTk3Nzg4ZGU4NjY3MzMwY2U5ZjIyYTE2ZTkwNzlmMWM0ZjAzZWE4MyBsZWdhY3ktdHJ1bmsKKzUxMTQwIDI0ODVlZjRjNWQ0OWQyYmUwOWI2MzMyZjZiZmY1Mjc3N2QzNjEwNjAgbGVnYWN5LXRydW5rCis1MTE0MSAwYmM2Y2ZiNmI1ZmIyMWFkMTU2OGNlYjgzNGRmYzRjMDJkZTQ5NDFhIHJlbGVhc2UyNC1tYWludAorNTExNDcgOWVkNTYwYjM1MTM5ODBkNGM2NDNjYmU1MzdkZDVlMDlkODkyODg1OSBsZWdhY3ktdHJ1bmsKKzUxMTQ4IDI5MGM1ODJhMjJkMDQzOTgyMzYxNjg1OGY3Yzk1ZWI5ZDc4NWM3MjUgbGVnYWN5LXRydW5rCis1MTE0OSBiNjdmNTIyZDc2ZDc4ZDgwMDI5ZTU1OGM3MzM2ZTkxZmY0OGU5Njg0IGxlZ2FjeS10cnVuaworNTExNTAgMTRjNzY5NDg5NTNkNWM1ZjdjNjRkMjBlMzFhNGEzNjJjOTcxYjYxMyBsZWdhY3ktdHJ1bmsKKzUxMTUxIDJmMDMxNjQ4ZTU4Nzg0NDk3ZWUyNWFhMjE5MTFiMDNlNmRjMmQxNzYgbGVnYWN5LXRydW5rCis1MTE1MiBkMTU0MjYwZjQ2ZThmN2Q3NzdkOWVkYTRkZjMzNTI0NWJlYzBhNjQyIHJlbGVhc2UyNC1tYWludAorNTExNTMgNTZjMGUyZjU5NmU3NmYxZDMwZjMzZjAxYmRjMzYyOTE4YzBjMGEyOCBsZWdhY3ktdHJ1bmsKKzUxMTU0IDhkYzZiZTNlMTFlMDBhN2M3NmUxZWI4NTUzODIyYWU5NjBiOGI0MGUgcmVsZWFzZTI0LW1haW50Cis1MTE1NSBkZTQ5N2M0MWU5YWRlZmM4YjZkNDRjZDExY2VlZjA1YTk2MzYxZmM3IGxlZ2FjeS10cnVuaworNTExNTYgNTY5MTYyNDI2OWE1YTYwNjc2ZmJhNWM1ZjY4NDAwYzE3ZjJkZmFkYiBsZWdhY3ktdHJ1bmsKKzUxMTU4IDlkMDg5YWE1OGUyZjRiNWNlNGNhZDljNGY1MWQzOTFjM2MyYWI2NWMgbGVnYWN5LXRydW5rCis1MTE1OSA4MDIyOTI3YzE3YTg0NjQ2ODVkZTUyZmI2NGFmMGIzMjM1NDViOTg0IHJlbGVhc2UyNC1tYWludAorNTExNjAgNWI5NjkyZjY2MjlmNDA3YWRlOTRjOWI3ODgzZWFmMGM4ZjA2MDFlZiBsZWdhY3ktdHJ1bmsKKzUxMTY4IDZmNzc1MThiNjM3ZGIzYjhmZjlmZTA5MWIzZWYzOWI1Nzk5NjA4NjMgbGVnYWN5LXRydW5rCis1MTE2OSBiOTViOWY0MTU3YTgyMjEzMzAxMjE4ZjU1ZDRmZGI3NjM1MDI5OGRlIGxlZ2FjeS10cnVuaworNTExNzAgNWMzZDQ5Mzg1ODE2ZDcwNmY3YTIyZDk3YTUwODg4YWZiOWFjZWJlNyBsZWdhY3ktdHJ1bmsKKzUxMTcxIDE5OTM4OGI0NmM4M2EwMGJlZDJmMThmZjZiMTBmZmMwYjk2NDJiZWYgbGVnYWN5LXRydW5rCis1MTE3MiA5YTgwODFjZjRhNzBkYWI0NmJhMGYxMDYzMTBjYzIxOTBjYmI5ZDM3IGxlZ2FjeS10cnVuaworNTExNzMgMGYzYWQ1YjkzNmE4NTcyYmZlN2MwN2Q4ZTM3NTM4NjczZjIyODc4NCBsZWdhY3ktdHJ1bmsKKzUxMTc4IDc0ZDIzY2QwNDQyMTA0ZmY5NzViODVlMWI3NGY1ZTRlYTIzZDZlMmIgbGVnYWN5LXRydW5rCis1MTE4MCA3ZDZiMmUwNGU0Mzk1NDA2MDBlOTg1OTBhMjgzMWFkODU5ZjI4ODEwIGxlZ2FjeS10cnVuaworNTExODEgZmVlZTY1ODIwMTFmMTc3NmE2ZTFkZTg5NWZiMzJiM2VlOTBkN2NhNSBsZWdhY3ktdHJ1bmsKKzUxMTgyIDkyMjJkMGRhYWIzYzZhZWRlYjAxYTk0NzUxNDcyNTI3Zjg2MTA1NGIgbGVnYWN5LXRydW5rCis1MTE4MyAxNTZiMjhmMGYyZDM1YWMwMGU4MmM2M2QyYTE0MDE4MmM5YzdlYzc2IGxlZ2FjeS10cnVuaworNTExODQgZGRlYTRkMzdjODNjYTQ1MWMzMDc5Y2FkODU1ZDA0ZTU4OWI4MzFlOSBsZWdhY3ktdHJ1bmsKKzUxMTg1IGI4ZTM3ZTAyNjhmMmNhYzA0MmQ5MmQxNjIwMTZhNDNjMTM4ZjQ4NjEgbGVnYWN5LXRydW5rCis1MTE4NiAyNmE2YmVkZDE3ZTIxZGIxMDY5NzM2ZGUzMjUyNTY2YzU2ZGUzY2NkIGxlZ2FjeS10cnVuaworNTExODcgM2MyYmY3OTUyNmJlODk4MTRjZDAyMTcxMDQwMzQxODc4YmJkM2Y1OCBsZWdhY3ktdHJ1bmsKKzUxMTg5IGQ4ZmE4MTBjZmQ1NGRmZDhmMjdlZWEzYmMyMmExNTE4ZDAzYjAxYzAgbGVnYWN5LXRydW5rCis1MTE5MCA5ZjA4NTE2YTRkMGM5ZTk5ZDdmNGJkNGU0NzkyMjEzZTIyYTg4M2ExIGxlZ2FjeS10cnVuaworNTExOTEgZWFkNDhhODIyMjk1YzgzZTFmMWU4MTQxYzc5YmJlYWFhYzI3MGM1YyBsZWdhY3ktdHJ1bmsKKzUxMTkyIGU1NWY2ZDcyMjQwNGZhOTJiMmE0M2M3MmZmMjEzMjdkN2E0NzE0YjIgbGVnYWN5LXRydW5rCis1MTE5NCA5YjMyNjBkODM1NTg3OTVkMWExZDMxZGI5NTg4MWI2MjY3ZWVjZWFkIGxlZ2FjeS10cnVuaworNTExOTUgZGU5ZTFhNWRjYTkzNjYxYTcwMTBlNzc2MDExODdiNzY5ZDk3M2I5OCBsZWdhY3ktdHJ1bmsKKzUxMTk2IDhlZDYyZGIxOTA1YzRkM2UzOGI3NWFmNzFiNWQ5MTM5NTNmMTc3ZmUgbGVnYWN5LXRydW5rCis1MTE5NyAyYWNhNGYwNDAwMTJjZWIwOGFjZjA1Y2U5YTdkYzJiMzg2NTIzNzM5IGxlZ2FjeS10cnVuaworNTExOTggYmUxMDdiMDRjMjUyNWI2YjgxMTJhMjFiYTY1NDEyZGYzMDAwMDUwOSBsZWdhY3ktdHJ1bmsKKzUxMTk5IDZhYWY1NWY0ZDdhM2I2ZDM1ZmQ5MTM3MDUzZDM5NWJhYTg0MjQ5NTEgbGVnYWN5LXRydW5rCis1MTIwMiA2YWI0YzM5ZmQ3YTM4M2ZkOWQ5NDJmY2Q4ZjliN2JlODg0NTg2MDdkIGxlZ2FjeS10cnVuaworNTEyMDQgODY0MTcyNTE1ZWU3NmEzYjQ1ZGYxNDhmNjY4MmU5YzM5MzAzYjhmNCByZWxlYXNlMjQtbWFpbnQKKzUxMjA1IDQ4ZmQzODg3MzQ2MzZkYTFhZDAyM2JlODg0YzM0NGFhYTYxM2MzNDIgbGVnYWN5LXRydW5rCis1MTIwNiAxMDg3ZGYwMGE2ZTg3YjkxZDY2Nzg3MjUyY2Q1YTZiZGUwMGVhYzAxIGxlZ2FjeS10cnVuaworNTEyMDcgZTc3ODc1N2QzMzMwNzIwMTQ1ZTc0ZmRjNWRiMDNlMmE5NWZhYTAwNSByZWxlYXNlMjQtbWFpbnQKKzUxMjA4IDc3OTBjZDBjYWJkMDRjOWQxMWQ3ZTg1NmZiMzY1ZTdjYzgwNGViOTQgcmVsZWFzZTI0LW1haW50Cis1MTIxMSA2NTRjMzgwY2Y4YjlmMDc5MTU2ZTMyMTExZDE2MmFkODAzYzg5MzE5IHAzeWsKKzUxMjEyIGY2OWJlM2M2YTJkNDYzNjQ5YmM1Njg0NjkyODgyOTQ4YTA2Yzk0NTYgbGVnYWN5LXRydW5rCis1MTIxNSBiOTk1ZTI3NjBkYTQ3MmMzYjU5MGQzNjkzYjhmZDY1NjkxNDczNGUyIGxlZ2FjeS10cnVuaworNTEyMTggZTExY2FhZDdlMDI5ZGM5MGI4YTdkM2I4Njk0YzgyZDk0NzUxZDgzNCBsZWdhY3ktdHJ1bmsKKzUxMjE5IDlmMzkwODgyYTJjM2E1MWUwODdkMWM5MTU4ZDkyMDg3ODk0YzZhZTAgbGVnYWN5LXRydW5rCis1MTIyMCA3MWIwYWM4MGExMzVlM2UyYmFjYTM2MTJiMjMxYjc2ZTY5Y2VjNzk2IGxlZ2FjeS10cnVuaworNTEyMjEgMjE3OWQ5ZjE0Mjc4MTczYmU5NWRhYjNkZTBiYWVjNzA1ZTdiN2I2MyBsZWdhY3ktdHJ1bmsKKzUxMjIyIDg0MmJkNjEzNGU5ZDIxYTAxM2RhN2Y1OTEzYzViNmU1NTg4MTJiZmMgbGVnYWN5LXRydW5rCis1MTIyMyBhODBkZjUzMzA2ZjBkY2ZmNzlkYzE4ZDE5NmFiZGI4ODYzOTdkZWM3IGxlZ2FjeS10cnVuaworNTEyMjQgNmQ1MzZkNDNjMWEwNjU0YzQ2NjQxOTkzNDBlYWUzYjUzZjAxYTcwZCBsZWdhY3ktdHJ1bmsKKzUxMjI1IDgxYzZiMGVkMzE4OGRkY2MyOWQyMWUwN2NmNjM2ZGY3NGYyMTZkMDggbGVnYWN5LXRydW5rCis1MTIyNiAyN2Y5YjRmZWUxNGY3YjY4MDhjN2FmMjZhMDRmYjJiZWQ5Y2Y2NzFhIGxlZ2FjeS10cnVuaworNTEyMjcgOWExMjg4ZDgyMDBmOGNiM2NlMjIwYTZmMmQ3OWQ4OGFhMmQyNzY0MiBsZWdhY3ktdHJ1bmsKKzUxMjI4IGVkNjU3NjVlYjY3OWI1MDMzMTY0ZjBiNGNiMTQyYWI5YTUyMDYzMDYgbGVnYWN5LXRydW5rCis1MTIyOSA2YThmMDE2NjBhM2IyZGU0ZjA4YmIyMmM1M2M2MzJiNzJiZTM0ODY5IGxlZ2FjeS10cnVuaworNTEyMzAgOGI5MWZmNjk4ZjRmZjJmM2RmNTU2YmU1MjFkMTIwMWJkNjRkOGM4YyBsZWdhY3ktdHJ1bmsKKzUxMjMxIGRlYjc0OGYzM2MxZGI1MmViMDg0ZjJiYWUzZWMzZDFjZGM0YjhkN2YgbGVnYWN5LXRydW5rCis1MTIzMiBjZTExYzZjMTkzOWRiNjg0ZjMwNjdlYTY0NGI2ZDQ3YmM5MWU0NWRhIGxlZ2FjeS10cnVuaworNTEyMzMgMTUxMDg2NmM5MjBlYjgyZTYyNzczYjViMDhiNzUxYzE4ODFjM2U1MyBsZWdhY3ktdHJ1bmsKKzUxMjM0IDJkYmFkNTNkZTJiMTI3MTdjMDc5MGJjNjQxYjAzNDdiYmZlZjFhNTEgbGVnYWN5LXRydW5rCis1MTIzNSA2OGJlZDUzNDg0NTQwMjNjY2ViYjQwMmY1YjM3MDVjZTgyOTM3YTFlIGxlZ2FjeS10cnVuaworNTEyMzYgNmNhZmRjODFjZmRlODY5OGU2YjgzZTY4MmZhMjRhMjY5OGY2MjFmOCBsZWdhY3ktdHJ1bmsKKzUxMjM4IDQ4ZjFkYmM1Nzg0NTA2MWZhYTUwYTVjMjMyZWM1M2FiMTY1MmUzNjQgbGVnYWN5LXRydW5rCis1MTI0MCBlY2U5N2NmZTYwODM3YjE3ODZlZGY5MzcyZjllMmQ5YzdmMmNhMTBjIGxlZ2FjeS10cnVuaworNTEyNDUgYzdmZjAyYzE1NTlmZDg2NmNjMDg3YWFjMDY1ODQ5YjFjY2EwM2ZiZiBsZWdhY3ktdHJ1bmsKKzUxMjQ2IDNiZTY2MjczMjNiOWQzYTA1ZWE3MGUxM2Q4ZjZjMWEyYTIyZTFkZWIgbGVnYWN5LXRydW5rCis1MTI0NyA1NzQ4MjE3NmUxMDExNjYzZTNmYzUwOTIzYzQ0YjM4OGRkOGJmOWI4IGxlZ2FjeS10cnVuaworNTEyNDggNzFiYWEwNjc2N2RkYzI5ZjdkNjkxMWZhOWM2ZTU0NWZlYTc2NzBiOSBsZWdhY3ktdHJ1bmsKKzUxMjUwIGRhZWRhYWNmN2UxMTBhM2NkMWEyMzY2ODkwMTQ5YjczMmIxYzFjY2MgbGVnYWN5LXRydW5rCis1MTI1MSA1MzFiMzY0YmJjMGUwZDgxNWNmZWVjMjJmMDllMjgxNjNjNDdkMThlIGxlZ2FjeS10cnVuaworNTEyNTIgODE1OGI0ZTBjN2I5YjVjM2I3ZDFiOTkwYTczNDlmZjg3ZDBkMWRmZSBsZWdhY3ktdHJ1bmsKKzUxMjUzIGJjNzRhZmI4ZTRlZjYxZDQ4YmQ4ZjE5ZGI1NjZmZDYyOWI4ZTcyNDEgbGVnYWN5LXRydW5rCis1MTI1NCAyNGQyY2MzMzAwMGNiMTg1ZjUxZWYzNWUzYWQ0ZDEzYzdmMDg5NjIwIGxlZ2FjeS10cnVuaworNTEyNTUgMjQ5YTU5YWNiNmVmY2YwMjA0ZjA5NjllNzZmNTY1NmQ0YjNkYjRjMSBsZWdhY3ktdHJ1bmsKKzUxMjU2IDcxMjMxYmM0ODYyMmUzNmRlZTM2MDExN2ZjMjEyNzk1ZDQwOTQzYmEgbGVnYWN5LXRydW5rCis1MTI1OCAwMzU2ZGQ5Y2MyNzQzOTYxODZjNTg1M2FkYmI3NmUxNzZhNDdmMGM0IGxlZ2FjeS10cnVuaworNTEyNTkgMzE3NjA1ZjJjZjZmOTllMWQxNmQ1YjA5ZDdmZWU2NGNhMjI1NDIxOSBsZWdhY3ktdHJ1bmsKKzUxMjYwIGQ1MjMxZWM2ZGFjMzk5ZDMzMGQzOWIyM2EyYmQ1Nzg4YjFkNjFmZDUgcmVsZWFzZTI0LW1haW50Cis1MTI2MSBlNzcwMWIwNWZkOWUyM2ZkMjQwNDc0ZGY5OTI1ZjcwNjcyMDY0YmZjIGxlZ2FjeS10cnVuaworNTEyNjIgZGY5NDc4YmUwNjI3OWEwNDdhMWRhM2E2NTU5NzZlNWFhZDI4MjQzZiBsZWdhY3ktdHJ1bmsKKzUxMjYzIDhjMTZjYmVmNzkzMjYzNTcwMjBlYWVlNmNkZjFmNjExMWIwMjExMTcgbGVnYWN5LXRydW5rCis1MTI2NCBhYjg1MzljMDdiMWIzYzZlOTI4M2I1ZThlNjc5MWVhMWZlNmUzYmM5IGxlZ2FjeS10cnVuaworNTEyNjUgYzBhNThhODU1YWMwZTM4MTM2YTU4OGU3NTE4NmQ5YzMwMDEzNDAxMSBsZWdhY3ktdHJ1bmsKKzUxMjY2IDQyMTgyNmM5NDEwNGYxM2FmZjc0YzkwN2QxNWU4Y2Q1NWYxZjMwOTMgbGVnYWN5LXRydW5rCis1MTI3NCBhNmE2ZGZmMTc5MzU2ZTI5ODFmYjU1MmYzOTJlNDQ0ZWM1Mzc0MTQxIGxlZ2FjeS10cnVuaworNTEyNzYgNjM1YjA5YjFmNTQyZTI5MTc1Mjk3NmUzZDk3ZjEyZWMwYmZlNjZmMiBsZWdhY3ktdHJ1bmsKKzUxMjc3IGE1NTM2OWUyM2YwNjk0YTVlNzkzM2UyMDAwZWFhM2ZiNmNlMTdkNjMgbGVnYWN5LXRydW5rCis1MTI3OCA0ZTViODNiYTdjMmE2YWY5Y2EwMWJjZjgzNTMyNTBjYjE1ZTY0NWY4IGxlZ2FjeS10cnVuaworNTEyNzkgNjRmYjY4ZGNhODk2NDhiNTlkMDE2MzcxODMxZWE4MjAzMjBiOTYzNiBsZWdhY3ktdHJ1bmsKKzUxMjgwIDIzMTJlMTc4YjM0ZDk3OTg4Y2ZkNmU1YmRkNjU4NGQ4OWM4M2UxYjAgbGVnYWN5LXRydW5rCis1MTI4MSAyNTRhMTg2OTM3YTliNDk5ZTk3MTgyZTM3YzdiZWNiNDdkNzkzY2NlIGxlZ2FjeS10cnVuaworNTEyODIgMTYwYjgzYzcxZDdhMGFjOTYwN2I4YzlhMDk2MzY2NDUzNTg3YWUyMSBsZWdhY3ktdHJ1bmsKKzUxMjgzIGE5NTA5MDI4MTAzMjEyMWEwMDJlNzZmNDFhNmJhNTdhZGI3MjJiYWYgbGVnYWN5LXRydW5rCis1MTI4NCAxNGVjOWNmZDk3NjAwZTI2MTQ2NjY0MTFmYzNhZDZiN2Y2NTYwNjc5IGxlZ2FjeS10cnVuaworNTEyODUgMzUyZmZlNzdiNzFkZDBlN2NhOGY2NjdhOWU2YTIwODZkYWEzYjA2MCBsZWdhY3ktdHJ1bmsKKzUxMjg2IGVhMWY4YTExYTcyYjlhMmEwMDBhMjU0NGY4N2MxMWY3YzZlMzQwMTUgcmVsZWFzZTI0LW1haW50Cis1MTI4NyA5ZDY0YmQ3NDgzMjBhZGI0MGM3ZTAzYmFiOTA0ZmMwODU0YWFmMDliIGxlZ2FjeS10cnVuaworNTEyODggY2Q2N2UxMTFlMWI4NWI3ZTE1ZWIxYmU0ZjU5ZDE5NDczMzk2YTFjNSByZWxlYXNlMjQtbWFpbnQKKzUxMjg5IDIwN2U0ODdmNDI1ZGZlNDFjNjE5OTA5ZTZhZDhkZjA5ZTE1NWU5MzcgbGVnYWN5LXRydW5rCis1MTI5MCBlOGM0NmNjOTlkZjVlZGQyYjUzMjMzYTg4MzE0MmY5OGY1ZDJlZTM3IGxlZ2FjeS10cnVuaworNTEyOTEgNzk5YmNmMGNjYmZkMzEzZmY1OTcyN2I2YWE5N2NlMGU2YWRjYmY3MCBsZWdhY3ktdHJ1bmsKKzUxMjkyIDE0OWRlNzI1Njg2NGNmOTIwMGQ5NzIzMmI2ZjIzZGM5ZDVkNzhkOTEgbGVnYWN5LXRydW5rCis1MTI5MyA4NDY3OGYwNzUwYjg0NDgwNDcwOGU0ZjBkNzRmZDIxZDVkZDRhOWM5IGxlZ2FjeS10cnVuaworNTEyOTUgZTkwZTdlNzY4Y2IzNTI3YWJmMjBiNGIxMTg3ZDQ4NjFmNzc0MWY0OCBsZWdhY3ktdHJ1bmsKKzUxMjk2IGU2ZmM0Zjk5YTYxYmUxOWFhYjdhM2ViYzFkOTJjMWJmMzE4ZWFlOWQgbGVnYWN5LXRydW5rCis1MTI5OCA0ZjkwYzFkNTMwZDk1YzljOTA2ODI5OGQwOWIyMWM4YTY4Y2U1ZWI3IGxlZ2FjeS10cnVuaworNTEzMDAgNjRiMzMwNjBlZjA5ZDVhNDcwZjQyNjcwYTUzNjcxMzAwNmM5ZDRjZCBsZWdhY3ktdHJ1bmsKKzUxMzAxIGJmNWJhZTFmMDBhZDQ4NWU0MzIwZTI5NTU4NDNhYTEwODY4MWJiMGIgYmNhbm5vbi1vYmpjYXAKKzUxMzAyIGJlOTBmYTdhYWNkYTc5Y2M3M2RkZGRmYzNhYmEyMDk4OWUyOTM3NWYgYmNhbm5vbi1vYmpjYXAKKzUxMzAzIDk1ZjY1NjY5MGEwMDA4ODljYjc0NDRiOGFjN2MzNDgwMTBmNzFhZTcgbGVnYWN5LXRydW5rCis1MTMwNCAyMDdlNzdjMTQzMzA2NGI2Y2NlMjcxZWEwNmE2NjQzODM5OTY2ZjFkIGxlZ2FjeS10cnVuaworNTEzMDUgOTA5N2VjZmViMzQ1MGMwM2I1YTBhNDg1ZjNiOWU3YzZhMDY3MjBmMSBsZWdhY3ktdHJ1bmsKKzUxMzA2IDZlN2IzZGQ1OGY5ODcxMDNiYzc1Y2YxNjQwMDk3ZTcyZTYzNDZhNGMgbGVnYWN5LXRydW5rCis1MTMwNyA5MTMzMDc2YzBiZjk3MWU5NmJlZGMyZTRlODk1OGRmOTNjYjkyNjZlIGxlZ2FjeS10cnVuaworNTEzMDggMmRmZTFjNjI0Mzk3YTRkYTE2MjY2OTQ1MjgwMWExYTY4OTkxZTkwOCBsZWdhY3ktdHJ1bmsKKzUxMzA5IDM3MWI5Y2QzYWYxNTYwMjk1ZDAzZGM1N2VlNDRlMjJjODVmYTZmYTEgbGVnYWN5LXRydW5rCis1MTMxMCA3OThiZWNhYjM5MDNjNGFjOWVlNDI5MDliYTc3OTg2NDc5MTlmODdkIGxlZ2FjeS10cnVuaworNTEzMTEgMjRjYWIyMjhiMDM5NmI3MDAyNWNiOTczOTQyNGQ3NjQzMDM0M2Q5ZCBsZWdhY3ktdHJ1bmsKKzUxMzEyIGI1MDczYjQ4YzkyNWYxYTk3NjMwMzYyM2I0N2UyNDJlZjczODEzNWEgbGVnYWN5LXRydW5rCis1MTMxMyBkYTRiZTA0MDhiNjI1NzI5NmE2ODc0ZGZlNWUxMmI1ZmYzNGExNzNkIGxlZ2FjeS10cnVuaworNTEzMTQgYTI3YmQ1MGViMGZkODdiMGNlMzkwNmJmYjRlNTkwNjI3ZDhmZGNiMSBsZWdhY3ktdHJ1bmsKKzUxMzE1IGM4Y2UzOTk0NWRmNWY4NzU3OWIwYjY5YzIzM2UwZGFkMGQ0M2RhNmEgbGVnYWN5LXRydW5rCis1MTMxNiBhNWQwZjlmYmNiZjRiODI0MjVkMDI1MGNkMDU5M2VmMWY3OWFmNTQ0IGxlZ2FjeS10cnVuaworNTEzMTcgZDIzYjY2N2YwNGRhMmJlMWU2YzE3NzZkZWFlYTIxNTRhYTU2NGNjMiBsZWdhY3ktdHJ1bmsKKzUxMzE4IDRiYjM0ZWI0ODczNjc0NzBkNGNmMjZkMmU5MjM3YWE1ZTliOWM1ZWUgbGVnYWN5LXRydW5rCis1MTMxOSAxMzU4NDA0ZDZkZDllZTk0NTJmY2MyOTQ4ZmMxYTliN2MzYWNhZGYzIGxlZ2FjeS10cnVuaworNTEzMjAgZmZlN2QzYWIzNWE4MzcwZDE2MzAwMzIyMjJjNDkwNDI3N2IyOTY4YSBsZWdhY3ktdHJ1bmsKKzUxMzIxIGZlODBiYjEwMmFiNmQ1MWUwZjk0ZWZlMDVlZTQ1MjEyODQxYTZmOGMgbGVnYWN5LXRydW5rCis1MTMyMiBkODIyMTg1NTQ4OTcxYWI3ZjgwODMzMzI2MTUzODc5MDNiNzdhZjUxIGxlZ2FjeS10cnVuaworNTEzMjQgZWRkODNmMTYyNDUzYWEzMDg4OGE2NTdlNDMyYmE2ZjI0MGZhNzk1OSBsZWdhY3ktdHJ1bmsKKzUxMzI4IGFhZmUxYWQ3M2VkNzQ5YmZmYTYzZmVhOGJiMmM3ZjVhMjI4ZjNmNDcgbGVnYWN5LXRydW5rCis1MTMyOSBkOTY2MGY1MWIwNTZiNzRmNzU0YmVkYTJkMTc1NDQ1OGZhNzMzNzhjIGxlZ2FjeS10cnVuaworNTEzMzAgYTZhZmUwZWRhNzExZDk5NmI3MjZhNTQ4YzA1NzkzZWM1NWI2ZThlYiBsZWdhY3ktdHJ1bmsKKzUxMzMzIDJkYzY0ZDU3MGU4ZDdhNDQ5OGFiODUwMTA4Yzg1NzA5YzI3NmRmOTMgcmVsZWFzZTI1LW1haW50Cis1MTMzNCBhMzU4YWYyMWE1NGE5YmQzOWY1MDZkNzI5MWRmMzQzODc5ZDE3YTgwIHJlbGVhc2UyNS1tYWludAorNTEzMzUgOGU4OGVjYmQ0MDhiZmM5Y2QwYmZkMzU2MWQ3NmRkZWZhNGY3ZmY0OCBwM3lrCis1MTMzNiA4ZjViOTk4MmJlYmEwNDhiNGJlNTZiMDZiODdkYmYxM2RmM2M2ODk4IHAzeWsKKzUxMzM3IGU0YTY0MjljMTIxNGVkZTkxMWNhYTU1ZjBkODA2MDA1ODQ2OWMwM2YgcDN5aworNTEzMzggODQxZTBjODZlMDBlNDIzZjgxNzA5MmUyZmY1Y2RhZmE0YjgxMDE0MSBwM3lrCis1MTMzOSBjYjY3M2VkNTA3YTc5NDAyNWJlYjRhMzdhZjg3ZGVmMTZkZDM4MGFjIHAzeWsKKzUxMzQwIGIyZmUzNmJhYzNhMTY0NGUyNWJkNWQ4NmE4ZDE0MTU3ZDU3MzJiYWUgcmVsZWFzZTI1LW1haW50Cis1MTM0MSAxYTY4OWJlMjczMjk3MzI0YzNmYTNkZDVkMGI4MDk5ZmE1MGNlOWU2IHJlbGVhc2UyNS1tYWludAorNTEzNDIgZWRiMTYyMTAwOTc5Yjg3OTI3YmRmZWQxNThjZWJiOTY0NGUwNTdiZSBsZWdhY3ktdHJ1bmsKKzUxMzQzIDliYzBiYzBhZDFiZmU2YzkwOTZlN2IxY2MyZjQ3OGNhOWEyMmM1ODMgcDN5aworNTEzNDQgMDEwMzQwMThlOGIyZjgwZDhmZDVjODI5ODhkMjM4MmFhM2RmYjMwYiBwM3lrCis1MTM0NSA0YWJiNDZkZDJiNjA3ZjllYWE5ZGFkNTY3NmVhYzg5Mzc2Njk0NDdkIHAzeWsKKzUxMzQ2IDFlZGRlMjM0OWY3ODQ2NmZiYzAwOWM0MTcyMzg2NzNjMjgyODdkZWIgcDN5aworNTEzNDcgZjY4MjY5ZWQ0NjFlNWQ2MjA5OGEzMjk1MTdmNTg5OGU5NTU2MGQ1NCBwM3lrCis1MTM0OCA2N2U0NTcwNGMwN2VhNWEwNGFmMGU3YjFiZGEwMmRkODE3ZGUxMzEzIHAzeWsKKzUxMzQ5IDMwMjJjZDVlMDEwMDQ0YzNiYWQxZDZiODAwMGEwMTUzYzYzZWI0ZWYgcDN5aworNTEzNTAgNWI2ZjgyMTAxYzQwNWIxNzU2ZGM4MDJmZjIyMTUzOTRiZWE4MGYxNiBwM3lrCis1MTM1MSBhOGJiMWFkN2ZjNmZhZGM5MTQ0ZjYxNzIyYzA4NjA2MTAxOGIzMmQ3IHAzeWsKKzUxMzUyIDBhMWY4N2E4NTViM2U2MTViN2M5ODIyYWVlMGMyNDcxMGRjNjYwZDEgcDN5aworNTEzNTMgZmEyNzU4NDU4NjZjOGE3ZDVlNWU5YjBmZTcyMzQ3NGE1MDU1ZDllOSByZWxlYXNlMjUtbWFpbnQKKzUxMzU0IGE4NzMyMGViZDBlNjY4OTY0YmU4YTc0NTM5NTMwZjg2YjQwMTdmYTYgbGVnYWN5LXRydW5rCis1MTM1NSAxZmY5M2JhNDA0NTA4ODM3MGRkZjA0ZDRmMjNlM2Y2M2M5OWFiMzY0IGxlZ2FjeS10cnVuaworNTEzNTYgMzFiOWE0YjQyNTI4ZWNmYTUxZmEyY2Q2YjUwZWI2MGFhYjhmNWM3MCBsZWdhY3ktdHJ1bmsKKzUxMzU3IGRmODdiNjA1NjdjZWI1MjRhYjlhMjMzNGU2OTBiM2RjZmUzZmViOGQgbGVnYWN5LXRydW5rCis1MTM1OCAwNDVlMjBmZjg5ZWJiNzA5MzIxNDEyN2M2NWQ3MzIzMDg0MGIwOTA5IGxlZ2FjeS10cnVuaworNTEzNTkgODliNzMwYjcxNDM0ZjljZWE0ODQ4YWJjODY2Y2M4ZTgzYzhjZDRmYiBsZWdhY3ktdHJ1bmsKKzUxMzYwIDIxMGM1YjU1NzVjYjVjYTAxZDFhMDJjOWI2OTRkY2JlYjZhYWFjNzQgbGVnYWN5LXRydW5rCis1MTM2MiBiNWQ0ZjNhNzNkZTA0ZjcwZTc1YTUzZGYxNzg0Yjg3ZTlkYTJlNTZiIGxlZ2FjeS10cnVuaworNTEzNjMgZjNkZWU2MjVmYzQ4M2E2M2RmZTVmNDdkNTM4ODM4MjIwMmNjYWJmMSByZWxlYXNlMjQtbWFpbnQKKzUxMzY0IDRjNmY3N2I1NjQ1MmQ2YTQ4Y2YyYWVjYjU5MDNjZmQ4NDdkZjZkNDAgbGVnYWN5LXRydW5rCis1MTM2NSBjYTc3ZGUzNWRiNjIwYTE3NTA3ZGQ3MzkwYzM5MThhYTg3NjI3YzQzIHJlbGVhc2UyNS1tYWludAorNTEzNjYgN2ZiNTZhYWY1MmJiY2VhNTVjMjNhNWY3MTkzMDE4ODUyZDM3OTM2ZSBsZWdhY3ktdHJ1bmsKKzUxMzY3IGI4N2ZlMTFmYjdlMjhhZTI5M2VmOGJkYTZlZjhkNzE1Mjg4N2U1MWIgbGVnYWN5LXRydW5rCis1MTM2OCAwYWQ3ZTg1YzhjMDRlOGE2N2Q3MTU2N2U2N2M5ZTdhMzQ5MzhmYjdlIGxlZ2FjeS10cnVuaworNTEzNjkgNzliYmZhMWRiZDFiYjBjNmExZmJhZmYwNzEyMGI1OTQ4NzIxMTI5NyByZWxlYXNlMjQtbWFpbnQKKzUxMzcwIDFhYzE0ZDQzZWM2NDQxZTZjYjIyMGIzMThmMjk4NjczOTgwODc4OWQgcmVsZWFzZTI1LW1haW50Cis1MTM3NiBjNGU3YjQwNzBmMDc1NDdmZGIxMzRkNWU2Y2I5NTNiMzI2OWNlOGFjIHJlbGVhc2UyNS1tYWludAorNTEzNzcgZTdhNWIyODdmMjdjMWE5ZWU5MDFkNTIxMTE4ODQ1NmEyNjg1ZTQwMiByZWxlYXNlMjQtbWFpbnQKKzUxMzc4IGNiYjQzNWM1YzIxYzY3MDNmMTk3MDM4ZTc0N2Y1MTQ4OTdkOWMzOGEgbGVnYWN5LXRydW5rCis1MTM3OSBkZTRlZjE3NzI3OGJmZjg1N2Y3MTE2M2Q0NzBlMWQ3ZjA1ODFiZTlkIGxlZ2FjeS10cnVuaworNTEzODggMjU1MWViNTY3MWE0MWQ4YTQ2YjY4MTNmZjE0ODkzYTk0MTkxOTg5OCBwM3lrCis1MTM5MCA2MzIzN2ZjZWZkOTllZTRmNjc1NzIyZDVjMjcxMDY1OWFhNWRkOGNiIHAzeWsKKzUxMzkxIGNmYjM4NDczY2ExMTk5ZDk4MzJiM2FlYmMyMzU0YWQ2MTE0YWFhMDggYmNhbm5vbi1vYmpjYXAKKzUxMzkyIDg0NTJkNWVlN2IwM2JjMmVjMDY0OTAwNjYwOGJkMTQ2YzA5NDU3NzQgYmNhbm5vbi1vYmpjYXAKKzUxMzkzIDRjNjc0YTA3YjIzYzM2MGZmOWIxODhjODFhZmFmZmVmYWI1YzllYjIgYmNhbm5vbi1vYmpjYXAKKzUxMzk0IGQyM2I3Y2IxNzAwYjUwZWRhYmQ0NWQwYWRlZjgzYWFmNDM2MjE1MDMgcDN5aworNTEzOTUgMGI1ZDhlYWUzZWNhMDYxYjdlYmRlNjJiYTNhODAzZDZiZjM4N2NlNyBwM3lrCis1MTM5NiBjNTU3ZDQ0NzRmMGY0ZjA3ZjliMGVjMmFlNzlkNTgyYzJkODY5NWU2IHAzeWsKKzUxMzk3IDNlYmY1NjA0ZjYzMjBlNWIxZWUyYTM2NDQyOTUzOTFkMWRjZGNiNmQgcmVsZWFzZTI1LW1haW50Cis1MTM5OCBiODhiNjlmOTdhY2MwMDYxYWFjZDNhNjhiMjA5NmRiMzZkNWQxMmVmIHJlbGVhc2UyNS1tYWludAorNTEzOTkgN2NiY2IyMmM4YjhiMmM4YTRiNjM2MGEwNWEyYjc0OTM0MDcwYTVlMCByZWxlYXNlMjUtbWFpbnQKKzUxNDAwIGE3NDVhMmJkNDhhZjBiOTRiMWZjY2VkMDQ1ZjQ4ZjAwNTY4YWJlOGMgbGVnYWN5LXRydW5rCis1MTQwMSAwYWY0ZmZhYmEwM2MzMmI0Y2E0YzA0ZmE5YzJlMzI0YzdkNDZhZTZkIGxlZ2FjeS10cnVuaworNTE0MDIgODdkMTUzZmZiYjk4YjVhODNiNWU2OGNmMjIwZTdiZDc2ZjIwYTUyMyBsZWdhY3ktdHJ1bmsKKzUxNDAzIGIwZTBhNWViOTA5ZjE5NzliYTExNDUwMThkYzk1M2I4ZDMxZDg2YjkgbGVnYWN5LXRydW5rCis1MTQwNCAyYzQwMjY3Njk5NDU0OTkwN2NmODFjNWYyMmQ4MmE0OWEzYjkzOGI2IGxlZ2FjeS10cnVuaworNTE0MDUgYmJlZjJlY2RlZTMzZWJiODE5MDMzMjA5NWY4ZGE5NDdkM2MwNjM0NyByZWxlYXNlMjQtbWFpbnQKKzUxNDA2IGJkZWU0NTg4OGI2NDBjOTU2MWVkM2I4ZTRlY2RjNmIwM2Y4ZDRmMjIgcDN5aworNTE0MDcgZDI0MGNlNTY5NmY5ZmU4Zjg1NjFhNTVmZjhkMTNkZDI4MTYyNjM5YSBwM3lrCis1MTQwOCAxMmM0MmZmOTk0MzdiZjcyYWRlNjc5MjY3MGJkMGI4ZWJkZTE4NzJiIHAzeWsKKzUxNDA5IDgyNzE3Yjg0ODg4ZTA0NmFhYjljZTMxMDkzZjQ1ZjA1ZjM0MzU0YTUgcDN5aworNTE0MTAgMGYxMzVhZmZhYmYyYzdhZjQxNjczNmMxYjEyNDg3YmFiZWQ0NDc5ZSBwM3lrCis1MTQxMiA1OTlhYmMzMWY3NzBhZDc1YTc2Y2Y3NmI5NzdlNTUyY2JlYWY5ZjFjIHAzeWsKKzUxNDEzIDk2MzQ5NmNiZjNkM2MwZjFjY2UzZjBmZmRlNjJmNDUwMDYxMDNhNmMgcDN5aworNTE0MTYgNDQ2MjJlYjU4YTI1YjZhZjA2MTg4MGZjYzA1N2ExZDQ1ODUxOWI3NSBsZWdhY3ktdHJ1bmsKKzUxNDE3IDViMmMxYjY1ZDM1ZWVhOThlMDRhNDE4ODNmZTAyMWIxMThkZmM0YWUgcmVsZWFzZTI1LW1haW50Cis1MTQxOCBjMzMxOTJlMmMyNWIxOTRmZGNiODcyYWE0MGQxZGYyYjhhYmE2NTRkIHAzeWsKKzUxNDE5IDE1NGYyNTZmZmY0Mjk5NWQ5ZGExM2Q3Njc0YjMzMWM0YWIyOGYxMjEgcDN5aworNTE0MjAgMjJjMmUyNWVkMGU0MGJlY2NjZDZkYTFmMDI5MThhMmExYWVjZTNjMCBwM3lrCis1MTQyOCA1ZTE0Mzk0NDc3MGI0MWNiMjRlZDJjMTlkOWU1NWUxOTY0MGEzODkzIGxlZ2FjeS10cnVuaworNTE0MjkgZWVkYTI3MDQxMzBlZjUwYjA3M2Q5ZThiNjA4NDQxZWJlZDg1MjFmNSBsZWdhY3ktdHJ1bmsKKzUxNDMwIDczYTMyOTFjNThkYzFlZWI0ZWM2NTM1ZjYyZmE0MGVjNmIwMjMyZTcgcDN5aworNTE0MzEgNDBiYmU2NjliMDg5ZWZhNzBkNmEzMWQ1YzE1NGQ0NTkzOWQ3Y2EyNCBwM3lrCis1MTQzMiA4ZGQ1N2M1M2NjZjZiMjkzYzM0ZGRmODFjZDMzODBjMDVlY2M4OWE4IGxlZ2FjeS10cnVuaworNTE0MzMgZGI0MmU4N2M5Nzc2ZjcwMjQ3M2FhNDNiNmU4ZDQ0ODRiYjkwN2Y1ZiBsZWdhY3ktdHJ1bmsKKzUxNDM0IDJmZmRlZTFjMzg4NDRhYjAxMmI2ZjkyM2Q0NTUyNGNlY2M3YmQ3N2EgbGVnYWN5LXRydW5rCis1MTQzNSA2ZjEwMjA3NDMwNzc0ZjEzODZjMDZkNjY3YjU1NGRlOTk1ZTgwODYxIHAzeWsKKzUxNDM2IDhkZDcxNTdkMmEyMmExOTEwMmU1NDNiYmJkNTI1OTYxYjFmYTVhYjcgcmVsZWFzZTI1LW1haW50Cis1MTQzNyBjZjQyYTQ0YzU0OWVkYTAxMzliYWQ0NWU5ZTIyZDUxODE4NGExMDIzIHJlbGVhc2UyNS1tYWludAorNTE0MzggMzY3NGYyMGFjNzgxZjY1N2M3ZmJlNmNlNDM0NDViN2ZiYzQ1MTRlNiBwM3lrCis1MTQzOSAxN2YxZGYxNTUzYzlhZTQyNWQyYWJjMzE1OTRjMjUxMzJmYTgwODAwIGxlZ2FjeS10cnVuaworNTE0NDAgNTExZGI3MWI1YzE0ODlhMzg1YWI2MWIyZDQ2N2NkMmMyOWMxNmRlNiBwM3lrCis1MTQ0MSA1MzkxNGQ1NDBhNjc4MDE4NmZjOTdhYzcxYmIyNmQyYzVhOGVjYzJmIHAzeWsKKzUxNDQzIDlkZWU4MWRjYjliNDE5YjljYTc3MWFhNDRlZGUyYjViNjBhOWMwN2MgbGVnYWN5LXRydW5rCis1MTQ0NCA3ODNjNWUyODAzZjk1ODBmYzgyNzZhMGFjYTczZTg4NDc1ODUyNjRmIHJlbGVhc2UyNS1tYWludAorNTE0NDUgYzQwZmU4NjU2M2ZjODgxY2VhOWUyMjFjMGVhYWUxYzE1ZWM5MDcxMyBwM3lrCis1MTQ0NiBlZDBkYjBkNmNhOTkzODFhMjg4N2M4ODM1MzQzNDhjMzkxNWIyOTc0IHAzeWsKKzUxNDQ3IGU2MWIyMmJmN2FiNDc3MjU3MGM5NzFhOGVmYTNlMzUzMzUzMzVhMmYgcDN5aworNTE0NDggMDJiYmVlYzI3MTRmMDQ5MWIwNTE1NTZkMTI2YzU4MDVlNjQwZTU3NyByZWxlYXNlMjUtbWFpbnQKKzUxNDQ5IDM5ODI0NzVjNTE0NGJiYzk5ZTE5ODJiNmNjY2E0ZGUyZjNjMDIwMDUgcDN5aworNTE0NTAgZThhNjViYmQ2YTI5MmM4NzQ4ZWIyMDQ1NjY1NjUzMzY3MjA0ZGU3MiBsZWdhY3ktdHJ1bmsKKzUxNDUxIDNjYmVkMTNjNDY0ZDljMWRlNGM1ZTQ0N2NkM2U5Njc5Y2FmOGUxMDAgcDN5aworNTE0NTIgZTdiMWEzZGIxZmUzY2RiYzc2MGU5ZGY1N2JkMWNjZmYwM2E1OTc5OCBpbnRfdW5pZmljYXRpb24KKzUxNDU0IGM2ZDlmYTgxZjIwZmRjZDAyYzM0M2FhNjIwMjRlMDE1ZDUxM2M2MjAgcDN5aworNTE0NTUgZjE4ZDc3OWM3Y2ViNjcyZWUzN2U3ODNmZDFmZWE0YWNlZGFkZWNlOCBwM3lrCis1MTQ1NiA1ZmRkZGRkNTE2Y2I3Y2MzY2E4YmRlNjM4NjNjZTQzOGZkZGYyZjZhIGxlZ2FjeS10cnVuaworNTE0NTcgYzhmZjQzODAyZjMxNGM3ZDZlOGQyOGJkMzkzN2Y0MGEzN2JiYTA4MiBwM3lrCis1MTQ1OSBlODZjMGIyOWI0YTI2YTQyZTRjZTY0NjlmMmNhM2U5YmZjYzMwOTVhIHAzeWsKKzUxNDYwIDcxOWM1ZGI3YmZhZDQ1YTdmYTkxN2QxNWJhNTYzMzFmYTA1NTM0OTQgcmVsZWFzZTI1LW1haW50Cis1MTQ2MSA5Y2M2YTU0OGRlYzQ5NDNlYzJkYzYyNjZiMDczMzNiYWI4NDI1NTBhIGxlZ2FjeS10cnVuaworNTE0NjYgMmY2YjQyYWVhZDk0ZjgxY2UyZTYwZTNmMmFjZWZlOGYzNGE5OGRiZSByZWxlYXNlMjQtbWFpbnQKKzUxNDcyIDhkNzFmOWE2YzFjM2EyZWFmMzI3ODEzYmFkZjIwZTk0YjA2YmE1ZDggcDN5aworNTE0NzMgZDY1ZTZkY2ZkY2I1N2ViZDAxMDkzOWZiZTE5OGE5YTRjYWQzMDFjYyBsZWdhY3ktdHJ1bmsKKzUxNDc0IDlmMjc4MDA5MDI2ZGIzODM0YjVlMmYwNjJkNDcwZmU3YTQ4NWYyYjYgcmVsZWFzZTI1LW1haW50Cis1MTQ3NiA1ZmY2OTZmMmE3YTVhYTI1Nzc3NjExNWQ0NjEzNzcyOTdlNzAzMjhkIGludF91bmlmaWNhdGlvbgorNTE0NzcgNDRkYTNkMjk3MTA3OWJiZjdiMTY5MTRjNDdhZGE4NTBkYjllNWM3YSBpbnRfdW5pZmljYXRpb24KKzUxNDc4IGQ5MTU4NWIyY2RjMTAwNzk3OGRiZmJiYjA1NDVhMWRjZTMzYmZmNjMgcDN5aworNTE0ODIgM2VhNTI3NTg3NDEzMWUwODJlMTIzNDdlZGIwNTkzOGY1ODJjZTM4YSBwM3lrLW5vc2xpY2UKKzUxNDg2IGYwZjQ5N2EwNTA0Y2NmNTI1ZjIyYmVmZDQ2ODAwOTYxOWVkYTY3Y2YgcDN5ay1ub3NsaWNlCis1MTQ4OSBmOGE5MGQxODI1Y2UwMDJiODExZDE1NGI0NGM3ZThmOTQxODg1ZTFhIGxlZ2FjeS10cnVuaworNTE0OTAgNTNkZjNlZmY5NGUzZTYxODJlZThhN2RiYThhZTg5M2RjNDY0Y2Q1YiBwM3lrLW5vc2xpY2UKKzUxNDkyIDE4NGY3YjE2ZDIwMzZmNmM0ZTQ1NmQ0OTE3OTI1MTkzOTIwZTE3YzEgaW50X3VuaWZpY2F0aW9uCis1MTQ5NCBhNWYzNDNmNzI0NzEzNWZhMTgzZTg1MmNhM2UyOTJkNzNjNTdlM2YwIHAzeWstbm9zbGljZQorNTE0OTUgY2U1ZTQ1ZTRjNWQwNjljZGEwZjQzM2QzOGVkMDk3ODg4ZTNkZTkyOCBpbnRfdW5pZmljYXRpb24KKzUxNDk3IGE1OWJiZmQ4MDhkOTcyNzA4NmExYTBhZGEzOGI4YWUyNmU1YTIxZjEgbGVnYWN5LXRydW5rCis1MTQ5OSBlNmUxYjQwMzgyN2U1ZTU3OTQ0ZWVkOGJkZjkzODBhNWYyM2UzMmE2IGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTE1MDAgODc4MmNjMGZiNWUwZmVjMGU4YWM3ZGZkOGZiZmNhZjE3YTNmZTY5MCBpbnRfdW5pZmljYXRpb24KKzUxNTA1IGFjN2YzOTNmZDI5YjM0MmYwMzYxOTAxMzlmY2JiYjU0ZDM3MjNmMDQgaW50X3VuaWZpY2F0aW9uCis1MTUwNiBkMTc0M2IwODI3MzQ3MTQ0YWZlMzg0NWRkMWNkYjJiZmEyZjQxOTQ3IGludF91bmlmaWNhdGlvbgorNTE1MDcgYmNjNDE0Mzc4ZjMyMDdjY2Q1MmQyNDhiNDMyOWY4YzUxYzNhNDk1YyBpbnRfdW5pZmljYXRpb24KKzUxNTA4IDZkNDM1ZGE4Yjc5YjMxODZhYzA0ZDYxN2U5ZGM1ZWQ5NGQ5ZDYwNDkgaW50X3VuaWZpY2F0aW9uCis1MTUwOSBmMjhiZTVkYjUwMDViYTkyYmQ4M2U0NmJhMzFmNWZlZmY0ZTY1MzI1IGludF91bmlmaWNhdGlvbgorNTE1MTEgMDUwZmI5YTA5N2NkN2NmMGNlMDgxMDhmYzQ2NDAxOGNmYTc4MTZlNCBpbnRfdW5pZmljYXRpb24KKzUxNTEzIDQ3MmNhNzAwNmY3MGYyYTNjYWU0YTA5NjJiZjM0NTliZDFhNTNkZWQgcDN5aworNTE1MTUgNDQ5YmEwZWZiNmJkMjc5MTFkOWE1YmJkZTk3NTNiMjI4MjVlMDg4YiBsZWdhY3ktdHJ1bmsKKzUxNTIyIGUyODAzMWFmZWZmNWYyZmE4YmJjNTYwYWU0ODJkMWEyOTUyZmNmMmMgaW50X3VuaWZpY2F0aW9uCis1MTUyNSBkNWZhNGFmZDY2MjBlNmU2N2UwMWM1NWI0MzA4Yjk4ZWZlZjY1NDdiIGxlZ2FjeS10cnVuaworNTE1MjYgNWNjZTAyODg3NGJjNzhlMTIzMGE5NGI0Mjc3N2Q1NGIzNDkxYjUzMSBsZWdhY3ktdHJ1bmsKKzUxNTI3IGY0NTQ1MTgxOTQ5MWI0NjVlY2E3NjE0ODk1ZjA4NTlmMzViMDhhNGEgbGVnYWN5LXRydW5rCis1MTUyOCBhYWE3NDVmYzdiNzY3ZTk3MTAxZTdlMDI4MTliZDcwYTY5MmM3OTdiIGludF91bmlmaWNhdGlvbgorNTE1MzAgOTgxMTgxZDJhNGZlMDc1NTdkM2U4NzI2MjMyOGUxOTBlNTEzZGQ4YiBsZWdhY3ktdHJ1bmsKKzUxNTMxIDNkZDYxZmZkMDQ5ZTE1N2UyNjI5NjQ0NmYzMmU1NTJlMWQyMDVlMmIgcDN5aworNTE1MzMgMTNkNWU1ZjBlOTkzYWM3YTY0YzM3YzkyM2Q0N2E0NGY5OGYyZDc4OSBwM3lrCis1MTUzNSA4YjllYzM0NGJlZDJlNTcwZmQ2ZTJhNDgyMmFjNWNmMTA2YTkxOTFkIHAzeWsKKzUxNTM2IGNlMjNkODY3MzJiMGI4OWFmMjA0OWZkYmFlYjA4OTg2NGMxNmE1ZTggcDN5aworNTE1MzcgZGNlZWE0MWY0YTZkYWVhMjEyODVkZTg4NzNkYjE4OTlkMjM1YWEyYSBwM3lrCis1MTUzOCBlZmUzZjJjMGRhNWU4ZWQ1MmI2MjU4ZGI4YmIzYjAxNWRkYTZjNmZlIHAzeWsKKzUxNTM5IDc0OTZmOTQ3NTRmZjBlYjE4MmQ2NmFmYjg0ZTYzYTI4ZDYwYjU0NDAgcDN5aworNTE1NDAgNjlmNjFmOTBjNGZjMDhhNTU2NDg4MDc2MGY5ZjBhNTg2ZmUyYzJmNyBwM3lrCis1MTU1NiAxYTBmNDQ3ZTYwYThhZmIzNjcyZWMwMDM2ZDMwZDg1Zjc0NDQ1NzNiIGludF91bmlmaWNhdGlvbgorNTE1NjEgMWNmNTI4NWM4YWI5NDdmNTg1YTVkM2RlZDI1NzRmMzNjZWZmMWQ4MiBwM3lrCis1MTU2MiA1MWNkYzM5OGUwYjA2M2U4NjVjODMwNTM4MzhhMmQ3NzYwMzgxYzJlIGludF91bmlmaWNhdGlvbgorNTE1NjMgMzE3ZGNjNTkwZmZkOGEyNmI2Nzg5YWE5MjhmYTQ3ZWVjY2E2Y2I3ZSBpbnRfdW5pZmljYXRpb24KKzUxNTY0IGU0ZGVlYTkzOGRlZjA4MmFmZGVkNzA4NmZhMzZiMmJkNWJjY2IzMWEgcDN5aworNTE1NjUgYTg4YmMzYmFkNjUxYjNhZmFiNjhlY2NkNDE3NWJkZTM0Y2Y1MDU3YyBsZWdhY3ktdHJ1bmsKKzUxNTY2IGFkYmZkOGQ1ODUxY2M2MmI1OGIwMTMyZWMyMzQ0Yzk1MWNhM2JlOGQgcmVsZWFzZTI0LW1haW50Cis1MTU2NyAyODBjNmRiMzFjNWEzZDIwMzJmMGE5M2U2Y2M1ZDlkNTYyMjZmYzIyIHAzeWsKKzUxNTY4IDkzNDhlYTYzYjAyZGZkZWMwMzcyZjljNmY2Y2RhNGFkYjY1MWVkN2EgcDN5ay1ub3NsaWNlCis1MTU2OSAwODAwNWJhNmNlYjkzMGRjNzM3ZjRmYjEyYTJlZjdkYmExZGEyMDBmIHAzeWsKKzUxNTcwIDUyM2U2Y2NlNDE4NzE1MGRkOWEyN2I0MWE1ZWY3ZjliNTcyNmFmZGIgcDN5ay1ub3NsaWNlCis1MTU3MSA3ZWQ1Y2U4OWYyNmFlN2M0OTVhZmFlNTdlNzg4MzYxOGEzZGE1MzQ3IHAzeWstbm9zbGljZQorNTE1NzIgZWJhZDU5YzcyMzNlM2E4MDVhNjlhYzM5M2Q0YzgxNzc1YmZiYmI5OSBwM3lrCis1MTU3MyA3YmM0MTkyYTUyNzhjNThiY2E5NWNmZWQ1NDBmM2EzNzc3NzA1YTYwIGludF91bmlmaWNhdGlvbgorNTE1NzQgODQzMzU3ODhkOWNiMjEyNjJiNzU3ZjQyMWYxMDEwNWRjYTRmYTEzMiBpbnRfdW5pZmljYXRpb24KKzUxNTc1IGU1ZWMxYWRiMDYxZjVhYjU4M2QyNjFhYTc2YzhlNzczYjFmOTNiNTggcDN5ay1ub3NsaWNlCis1MTU3NiBiZjQyYzgxZGI4MDZlZjIxMmYyNWEwYTkwZWRlYjUwYzhmNzRiMjUwIHAzeWstbm9zbGljZQorNTE1NzcgYTUwNDhjOGQ4ZjMzMzJhYjdkNDQ2YWNkYTgwMDhiOGM1MWEyNjE5NCBwM3lrCis1MTU3OCBhMjQzYTUwZGEyM2FlMmVmNTEwYjZjYmQwZTM5NWVlN2M1YWU0ZjM4IHAzeWsKKzUxNTc5IGY5ZTc1NjBmZTAwZDIxODk4OTYzNWYwNzVhNTYyMjlhYjM3YmM0ZTAgcDN5ay1ub3NsaWNlCis1MTU4MCA3NmE5YTUxMzFhYWVjOTYzNTRhOTI3YTY4YWQ5MzA4YWRhZjFlOTNlIGxlZ2FjeS10cnVuaworNTE1ODEgNDRhZjRiMzdkNWZmNDBhMmU3Y2NlZWRmMWE5NTRhMjM1N2RjNDQ4MyByZWxlYXNlMjUtbWFpbnQKKzUxNTgyIDI2ZDI5NWU3OWFlODcxNjMzNzE4ODRkMWFlNDdmZGFlNjIxZTMwYzcgcDN5aworNTE1ODMgZTY4NGY5N2FlM2ZhZmIxNDgwYTA4NTEyZGFjZmY1YzM5MGFmOTBmZiBwM3lrCis1MTU4NCBmMTZhNTgzYzViMDkwNDVkOGEyZDNiNDM0NzdkMzg5NjliMmYwMTMwIHAzeWsKKzUxNTg1IDRhMzhjZDFhMTYwNjFiMWYzZTIwNWNiZTZjYmE5NzFhYTk4YjhmNTcgcDN5aworNTE1ODcgZjUxZWRiY2Q1Y2MwMDA4YjAzM2ExMzUyNWVlOGM0YTUwY2Y3NTZhMiBwM3lrCis1MTU4OSA5MmNmMzk3NGQzMmZiY2VlNzYxOWEzYTAzYTViYjYxZDY2Yjc5M2NkIGxlZ2FjeS10cnVuaworNTE1OTAgZWRlYzc5NjJhZjI4N2U4YzBmYWU1NmVhYzE2NDllZDEyYzgzN2U5ZCBwM3lrCis1MTU5MSBlMDc2Y2NhNGQ5ZDdhMGM5Y2MzY2Y5YjRlZjUzNDUxNjhhM2Y0YWI4IHAzeWsKKzUxNTkyIGRiYjU5NTRmZGRjY2NiMDM5Nzc1MzdkZjRiNjA2NDk5YjE5ODEzYzYgcDN5aworNTE1OTMgZjA3OGU3ZTRiOWExNTA2MjIxMzlhY2Y2NzkyMWRjMTEyMDQzZjE4NyBwM3lrCis1MTU5NCBmZjY5M2E4NjFiNzA0ZmRlMTc1MGVjOWRkZjIxNzgzYWQ3OTE0NWZjIHAzeWsKKzUxNTk1IGY4MTE1ZjY4NmU0MDExYzY4YzE0MmEzZjc3MzA4MWFiYWNhMzZlMDMgcDN5aworNTE1OTYgNjkyN2FjYmZhMDFiNDdmYWJhODQ0MmMyMDBmMjc2ODUwODM1OGM0ZiBwM3lrCis1MTU5NyA0ZTVjOTRkMDM2NDkzZGY3MGNkMmY0NjkwMGJjNWVmYzg3NjllOTkwIHAzeWsKKzUxNTk4IGViMmY3MGZkYmYzMjQwYjk5ZDI2MDUwNmFlZTJhYWZhMzlkZjQwOGUgcDN5aworNTE1OTkgNzg1NjRlMjY5ZDIzMGIyZjUzNzc3ZTMzYmI3MjgxOTQ3ZTIzMzVkNyBwM3lrCis1MTYwMCBmODdhM2U2MTg1M2Q3MmIxZDEzMzk5MmY5OTFlMzk3YjMxYWFjOGU4IHAzeWsKKzUxNjA0IDNiZmM4YmI0ZTcyNmYwYTczNmM5YzUwMmNiOGE4YTM1YTkzZWM5NjkgbGVnYWN5LXRydW5rCis1MTYwNSBjYTJiMmNjMjMwN2U0NDEzZmEyYmZmNWI2YWFiMDkyNzM5MDdmYzc5IGxlZ2FjeS10cnVuaworNTE2MDYgZjQ5NzY1MGExNDkwNmYyNzYzOGRmYzMzMGRiMWFiMzA1ZTZkM2ZlYSBsZWdhY3ktdHJ1bmsKKzUxNjA4IDkxNmFlNjM2YTgzZTRiODAwMmMwNzI0YmM2OGFjNzRkODQzODYyZWMgbGVnYWN5LXRydW5rCis1MTYxNiBiYjA3MzgwNWZiYWJhMDExNTM3NzQ4NjkyN2MyNWQwMWNhMjlhNmVhIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTE2MTcgOTA0OTU4MjE2ODEzMWQ5ODlmYTVjMmVjNjFlMzZhN2MwYjBiNzU3YiBsZWdhY3ktdHJ1bmsKKzUxNjE4IDU1NDI3NTkyNTRjMGIyODBjZGJmZTYwNTViNWExMzgyOTQ5MzAyMGUgbGVnYWN5LXRydW5rCis1MTYxOSAxYjczNWE5ZDIxMDcxMGRlNGI4YzRhYWIzNDAyMDk3NmNhZTlkNDc3IGxlZ2FjeS10cnVuaworNTE2MjAgYWNhNzA5ZjMzYTZhMTY4YjE5OTg2NDVkYzE3YjRmODhjMWZkNzg4NCBwM3lrCis1MTYyMSAzZDc3OThmZWFmYzU5OGY5ZWJiZDc2MTRiOTU5YzIxNThjNzRkOTdhIHAzeWsKKzUxNjIyIDZjMTg0ZmE1NTE3MGEyNjg2ZTE5MzIzMGU3YWVhNzRlNGQ5YWIwNjUgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis1MTYyMyBlYmViMzRhZGQ0YTYyY2RjZTY1ODhkMDQ5MWZjNjhhN2I3NDM4NDY0IHAzeWsKKzUxNjI0IGQwZWQ3ZGJhYWQ1NmUwYTBhZWE1MmZhYjY4OWZkOGJkNmRlYWNmMGIgbGVnYWN5LXRydW5rCis1MTYyNSAwY2I5ZTU3ZWM0MDY0NzhjN2RmM2I2ZTA1YWQ3NTcxYjIzNjQ0NjA0IHAzeWsKKzUxNjI2IGM0ZDhjMDU0NjE2YzAwOWQwYWMwMjc5NTNmODFlNTMyOWVkZTZhMTcgcDN5aworNTE2MjcgYzA5MzYzM2JlYmVjY2ZlMDRlOTQ4MzI1YjYxNjBjNGNmY2IxYzFkYyBwM3lrCis1MTYyOSA1NDBjOTU5MjcyOWU3NGQ4MmFkMzMxZjY3NDNlZDQ5NTE4YWMyYTcxIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTE2MzEgZDBiODNjNDYzMGMwOTI0ZGY2NjEwNjM1NDNmM2M1NDc4YzhjMzVhYyBwM3lrCis1MTYzMiBkYTNhOWY0MDI4ODYwNjU4YWI3OWM2ZGUzNmIzMzY2Yjk5YTE0NzJiIHAzeWsKKzUxNjMzIDRmNzZmNjNhMzJmMzZiYWFmMTcxNzlhYTZjYmU5NGYyZmIxMmYzM2YgcDN5aworNTE2MzQgZDE0ZjEwYTRkOWQ0NjYwZGNlMTNjODc0YjU5YTYyMTM1MWQxNWVkZSBwM3lrCis1MTYzNSAwNWFjOWM0OTI4YTQ4ZjEyOTRjYjllZGZjOTgxMTZkNzE2NTBlYWU4IGJjYW5ub24tb2JqY2FwCis1MTYzNiA2ZTE5OGM2NTVlZWFhY2YzNTU5MDc1MTcyZGI0ODNmZjYyM2I5ZGRiIGJjYW5ub24tb2JqY2FwCis1MTYzNiA5MGE4ZWU2YzNhODY3NmNjNWI5NDNiMmIxZGViYzNjYTBmMTdiYWYxIGJjYW5ub24tc2FuZGJveGluZworNTE2MzcgYjU2M2IxMmU0YzAwMzYzOTJjNGRiODE1MjhlODkwYWM2ZDhiYmEzNSBiY2Fubm9uLW9iamNhcAorNTE2MzggZmVmMDJkYmE5YjVmMzI2ODcxZTYyNzU0NWJjODZmMWQyZTZjYjAzMCBiY2Fubm9uLW9iamNhcAorNTE2MzkgZWM0ODA1N2EzNGI2MDE4ZjU3YmJmNGY0OTc0NjUyMDM1NWYyOTczNCBwM3lrCis1MTY0MCAwN2ViODAyNjRmNjE1MTFkZWY1NzI4ZGY1YzZhNzU3ZWQ2OGQ5YmQ2IHAzeWsKKzUxNjQxIGY5NzQ4OTBjNmNkMmE3YzUyZDMwMDdkMWQ2Y2IzMTY4ZDRjZjExYWYgcDN5aworNTE2NDIgMjE4YjZlOTAwYThkNDQyNWJkOWQ5MmE1ODIwNWFlMzg4MzNjNzc2ZiBsZWdhY3ktdHJ1bmsKKzUxNjQzIDc1OTEyMjgxNTFkNzAyZWM1MzNiZmJhYmI4YTM4MzVlNmI5YjA5YTEgcDN5aworNTE2NDUgODkzYWRkNTU0NTQxOTY3MDgwMGViMTE3NmI4ZGI0YmNmZmQzNTAwNyBwM3lrCis1MTY0NiBhYTU5NDY2ZWJkOWMxNjE2MWM1MWMxMTQwMDQ3NDExZGY0MTMyMWY5IHAzeWsKKzUxNjQ3IDc1NGE3MjllOTdhZjVhYzY0ODVhNWZhNThlZTRhODliZGQ5ZDQyZjAgbGVnYWN5LXRydW5rCis1MTY0OCBmMGI4ZjcxMTg1ZjU1ZDZmZDhjYzU1ZTJhZTk5OTE3MDc5NDcxYTU2IHAzeWsKKzUxNjUwIDQxNjEwN2EzNTE4NTNkOGViMzNkNWZhNGZjOTYxNTMzOTViNzhiMGUgYmNhbm5vbi1vYmpjYXAKKzUxNjUxIDE2ZDQ4NmM3ZGE4MjQ1YzM1NjBmYzQzZTk5OWQ2YWViOWI1Y2YyNWEgYmNhbm5vbi1vYmpjYXAKKzUxNjUyIDhmNzMyMWFiOGY0MGY3Mzc3NjJhYzAzMjA1OGVlMzFjNThlMzcyMTMgYmNhbm5vbi1vYmpjYXAKKzUxNjUzIDRkMjNlOWExMjcxMDM4NTVkODMzNzliNDAxY2MxN2Y2MWRkZjNkZmYgYmNhbm5vbi1vYmpjYXAKKzUxNjU1IGYxMGZlZGJlNmMxMzk2MWI4ZmI2M2IwOTU2MTc1NDgwMDc1ZjA3Y2IgYmNhbm5vbi1vYmpjYXAKKzUxNjU2IDViMDJlYjVmNjVmMWJmZjZhNDVmMDg4NmRkNDQ4MThhN2ZjNTFjOGQgYmNhbm5vbi1vYmpjYXAKKzUxNjU3IDM1NTQ5NjJkOGIyMWQ3ZTU2NTY5NWFiODhkMzJjMGQzMTljMjYzM2EgYmNhbm5vbi1vYmpjYXAKKzUxNjYzIGU4NWQ1YjIwZWE2MGVkNDE4MTI2YmI3N2EwZDU3MGY4OTBkNWU1YjQgbGVnYWN5LXRydW5rCis1MTY2NCBhODM5NTdjOTFmZGI5YmI3NzE3MDcwZjliMDcyYjUxN2E3NjM1ZmE1IGxlZ2FjeS10cnVuaworNTE2NjUgMWYxNzA1NzA1ODllYTVmYjUwMzYwMzYzOTFiYjEzM2U5NDgwYzAyMiBsZWdhY3ktdHJ1bmsKKzUxNjY3IDYwYzExOTM0NzA5ZWM3NDI3ODRhM2YyYWQyMDBhY2UxYWZhODVhNjIgYmNhbm5vbi1vYmpjYXAKKzUxNjY4IGJjY2M5MTU4MDhkODAxZmZhYThhNTI4YmVmM2VjNWNlNDcwNWZlZGYgYmNhbm5vbi1vYmpjYXAKKzUxNjY5IGRkNTE0YTE3Nzg0OGFlNmU1MTVkZDY3NDE5MDE1NmNmMTI0YWNlMDAgbGVnYWN5LXRydW5rCis1MTY3MCA4OTE3NmU2NWFkZDJjOTg1YjAwMzVkOTJkNmIwZGE5YTVhYjdlN2RhIHAzeWsKKzUxNjcxIDcyMWMzOTRlYjBiYTMzZTk5ZDgwMjk1NzkwODZjY2EzNjllMDRlM2EgbGVnYWN5LXRydW5rCis1MTY3MiA1NjI2YjJlZThjZTRjYmM1YzQxMzhhNTk3Y2YwNmQxNDhjZWNmNjA5IGJjYW5ub24tb2JqY2FwCis1MTY3MyBhYTY0MWZiMTc2OThlZDMyNzc5MDM5MGZjZDM1ZjkxZjc5M2IxM2UzIGJjYW5ub24tb2JqY2FwCis1MTY3NCA4MjA4MWJhOWE1YzUwN2MwNDlhYjc2NDE4OGI1YTA5OTJjYzg3YzA1IGxlZ2FjeS10cnVuaworNTE2NzUgMTFmNzA1MzA1MWZmOWVhZGZjY2Y1ZDY2OTljNDA2N2EyMDZmMzgzMiByZWxlYXNlMjUtbWFpbnQKKzUxNjc2IDRhNzkwNmQ4ZGU4NjEwN2NhMTAwYzA2ZDczMjIyODFjZGU0ZjkzMjggbGVnYWN5LXRydW5rCis1MTY3NyA3MWVhMmJlN2Q5MTI2YThiY2FhZTNiZjY5NTk1MzE3YmYzYWM5MTViIGxlZ2FjeS10cnVuaworNTE2NzggMTg0YzFkYmY3MTk0ZTQwNDhhMWIyYjgxMTU4ZDVjZmIxYzEwYTgzZSByZWxlYXNlMjUtbWFpbnQKKzUxNjc5IGJhODM3NTQ1Y2MyZmFmMDc4YzNjOTg0N2ZiN2ZkYjk5YjUzODllYmUgYmNhbm5vbi1vYmpjYXAKKzUxNjgwIGE2NjZkNzVmM2RmZmMzOTM0ZTZjZTVkMjUzNGRiMmFjZWMyODQ0NjQgYmNhbm5vbi1vYmpjYXAKKzUxNjgxIGQxOTg2ZDM2OWZlZmI4ODliNzU4OGNjZWU5M2U2NzViYzk2M2M2YTggbGVnYWN5LXRydW5rCis1MTY4MiA4NDE4ZjFiOTA5MGU4N2VlYWE5ZDNlZmEzMTU1NzM5NDkzYWU0ZWZjIHJlbGVhc2UyNS1tYWludAorNTE2ODMgZTkwNWY3OGVhZmNhNTcyMWE2NjIxZWJmODNjOGFkMDNmMDU3NWM0NCBsZWdhY3ktdHJ1bmsKKzUxNjg0IDEzNTJhZDlhZmNjMGI4ZGYzZDIwYWEzYjI2ZGI5ZTMxNTc4MDIxNjMgbGVnYWN5LXRydW5rCis1MTY4NSAyZjA4NmQ1OGNhMTBmN2UxMTEzMWM3ZDhjOWNkMDYyNzFkMDMwOGYzIGxlZ2FjeS10cnVuaworNTE2ODYgOGZlMTY4NzAzMzQ4Yjc0YzlhYmJlMDlmNTY4YzU1ZjZmZjU2MWYyZCBsZWdhY3ktdHJ1bmsKKzUxNjg4IDc2OTNiNjk5M2RkYWYzZjgwMzAxN2Y4ODNjYmE2ZTg4NjQ3NGZmOWYgbGVnYWN5LXRydW5rCis1MTY5MCAzMTRjNGU3YTM2ZDNlZjNjNjNmOTk2ZGVhZTI4MTk5OWFlYmM1YTAyIGxlZ2FjeS10cnVuaworNTE2OTEgMWVjN2VmMGYzYjhkMDRmNGNiZDFkNDE0OWNhYWMzOWNmOTU0MTg4ZCBsZWdhY3ktdHJ1bmsKKzUxNjkyIDIxMTk3Y2JlZDUxZGFjODhmMzFkNDU3ZjU1YWM0NTRkYTg0NjVmZjAgcmVsZWFzZTI1LW1haW50Cis1MTY5MyBhYThmZWRmNmJiMjQ4ZWRkYjNmZDFmNzRjYzMzNTcyYWQ2YjQyMzljIGxlZ2FjeS10cnVuaworNTE2OTQgODgzMmI4YzJmYzQ5OWY0NzY0OTcxNDc3OWU5NDkxM2RmMTdjMDIwZiBsZWdhY3ktdHJ1bmsKKzUxNjk1IDRjZWM0NWJkNjY2Mzk4M2VlMmY3NmM0OTY2ZGVmOTE3YzZlN2Q0MDcgcmVsZWFzZTI1LW1haW50Cis1MTY5NiAwNjMzMGQwYjQ2NGFmMjUzMzVkNzExNmQ2ZDkzYmFmYWRmMzZlNGY0IHJlbGVhc2UyNS1tYWludAorNTE2OTcgY2I2NjQyZGVkNGU3NTgxMzJmNmQ1OTUwNTA3NjhmNmUzNDExNDA1ZiBsZWdhY3ktdHJ1bmsKKzUxNjk4IDEwMWUwNGE0ZjQwM2FhZTVjNWU3NDM3YzcxZTQyMTRkYWNhNzI2NmQgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis1MTcwMiBjNmZlZjk0NGFkOTVkZWFmZDJhZjA2ODA3ZTdjYzIxMmE3ZmVhOTI3IHJlbGVhc2UyNS1tYWludAorNTE3MDMgNTg5OTgwYzc4MDI1NDYwOGFkMzNhYjQ1NGY5YWU0YjcxMTc4ZDlhOCByZWxlYXNlMjUtbWFpbnQKKzUxNzA0IGNmYjc3ZmZmMDI0MDIxMDgyYWQ4MTFhZDIyNGFmNzE4ZGMxMjYxOGYgbGVnYWN5LXRydW5rCis1MTcxMCBhYmNhNGU2MjZjYjVmNmE4YjI2Mjk5NjA2Y2FhMzY3MjE2NTg3N2YxIHJlbGVhc2UyNS1tYWludAorNTE3MTEgZjVlNzhhZThlYzBjYjhlY2NmMWU4YzgzYTY0MDczZDFhZjJlMzkxZCByZWxlYXNlMjUtbWFpbnQKKzUxNzEyIDAwZDJjOTNiODhiZmVkNTdhZWFlMWEyNjE3Y2ExM2E3YmJhNjcwZDIgcmVsZWFzZTI1LW1haW50Cis1MTcxMyBjNmQ0NGE5NzQ5ZGI0ODZiNjY4Mjc4YmIzNzA1MDhkMzM5Zjc4ZTkyIHJlbGVhc2UyNS1tYWludAorNTE3MTQgOWNhMTlkYjE3ZmFmNzk1MDAzMTlmNWFiMDI1Y2I3NzI4OWFiNDc2MiByZWxlYXNlMjUtbWFpbnQKKzUxNzE1IDI0NGM3MzRmMWQ4ZDFkYjgwY2U3YWU2OTI4MGFhNDk0MTgzN2I5OGYgcmVsZWFzZTI0LW1haW50Cis1MTcxNiBlMWFhOWEyOWVkMTUxZmZiZGYxNmU0NDcwNmIzNjZiYWU2ZGIyZjk3IGxlZ2FjeS10cnVuaworNTE3MTcgOTk1NzQ2N2ZhZjQ3YzNjZTE2YzdhMWIzZjAxNzg5YzBjNzE3Y2Q4MyBsZWdhY3ktdHJ1bmsKKzUxNzE4IGQxYjQ5N2VjMTkwYTFhYjZjZTkzNGUzZjQxYmE4MzJlOTk4ODQzOGEgcmVsZWFzZTI1LW1haW50Cis1MTcxOSBiMzUxNDM4MmMzMjc0N2NjODE0MWU4MTcwZGQ0YTEzNjdkNDdiM2E1IGxlZ2FjeS10cnVuaworNTE3MjAgMDhjYTQ3NmY4YTM0MjRkYzI2M2E3ZTIyMmVhOGQ4ZDM0ZTcyMDE2OCBsZWdhY3ktdHJ1bmsKKzUxNzIxIDk3ZDNlYWI4Y2RhMmY5MjBiNTA0NzlhMGU1ODM0NjU3YjQ4NjJjNDUgbGVnYWN5LXRydW5rCis1MTcyMiA5ZDQ0NzkyMDYzYmJmZGU5YzYzZmI2OTlhOGY4NjFjODIyOGIyZTI2IHJlbGVhc2UyNS1tYWludAorNTE3MjMgNjI3YTIxY2NmMjRmYzQwM2M4Y2I3OWE2NDUzNTQ2Mjk3OThjMzZmNyByZWxlYXNlMjUtbWFpbnQKKzUxNzI0IDMwMGZlNTA2YTBhYTQyMGIwM2NiNmQyMmYwZDQwNDg4ZDcwY2VkNzkgbGVnYWN5LXRydW5rCis1MTcyNSA4MjYzOWMwNTVhNmZhODQ3NTNmNDJiZTQ1ZTUzMWUwNjI5NzQ2ZDI1IGxlZ2FjeS10cnVuaworNTE3MjcgMTU1Y2IxNTU3Yjk3NTBkNDkxMTFiMTBlMzE4OWU3OTAyMjg4NWRiZCByZWxlYXNlMjUtbWFpbnQKKzUxNzI4IDRjODVjZTcwNDI2ZTM5ZjRhYTE5MGQxNDUxOWM0YjFlYTgzZmNjMmEgbGVnYWN5LXRydW5rCis1MTcyOSA4ZGNiODgyZWMzZTFhYWM3ZDMzNmE0MGFhNjRlYzY2NTYxZmMzZGVjIGxlZ2FjeS10cnVuaworNTE3MzAgMzMwMGQ3NDkyZjFhMTNjYTYwNGJmYWEzZmUyOTdhNGYzMzM4ZDBmMyByZWxlYXNlMjUtbWFpbnQKKzUxNzMxIGM1OTFkOTk1NGZiMzkzMzBjMjEzNmIyMjY2MDkwODg0ZmE2NjBhMGIgbGVnYWN5LXRydW5rCis1MTczMiAzZDk2OGI1ZmNhZjliZWU3OGM2YzhmMGQ3MDYzZDkxYmQxNmUwMWM5IGxlZ2FjeS10cnVuaworNTE3MzQgNmE1MWNiODA2OGY1Y2VlZTVhMzAwMDU2ZDY4YmY3ODAwZGQzNzVjOCByZWxlYXNlMjUtbWFpbnQKKzUxNzM1IDVkNmU5NmEyZmU2ZTg2ZGQ1ZjhmNmExMjMyMzk5YTI2ZGQxNzk2YzcgcmVsZWFzZTI1LW1haW50Cis1MTczNiA5ZjBiM2Y5YzcwZGExYzcyMmZiOWJkNTQ5NmQ0OTg1OWY1ZjRmM2Q5IHJlbGVhc2UyNS1tYWludAorNTE3MzcgMTUxMDk3ODFmMDE2OGViZDg1MTNlNGVjOTE2YWUyN2RkZjIwY2YzYSBsZWdhY3ktdHJ1bmsKKzUxNzM4IGVlMGM3NTdjNDk5MGFiYWFiMjA0OWE5MzdjNjJkMGJkMWQxMjZjYjIgbGVnYWN5LXRydW5rCis1MTc0MCBkZWQ3YjY5MGMzMDYzYjBjN2IzOWM0MDQ3MzlmMGNkYWMzNjQ3ZWUyIGxlZ2FjeS10cnVuaworNTE3NDEgY2E5NWJkNTU5ZTcxNjdlZjE1MGNlNWI5NWMyYjc4YWNiZGU5NDc5ZiByZWxlYXNlMjUtbWFpbnQKKzUxNzQyIDZkN2E4YjVlYjU1MWZjNTE5NzEzNmFlODIyZDkyNGUzNzE2ZGUyMzcgbGVnYWN5LXRydW5rCis1MTc0MyA4ZmI1OTc3ODRmMTg1NTExMjVkNDNkOWMwZGJhMjEzZDc4YjMyM2ZlIHJlbGVhc2UyNS1tYWludAorNTE3NDQgNzFhYzc5NmEwMThjNjMxOTllYjY5MzZjMzRlMDUxMGM4MGY5MzdhOCBsZWdhY3ktdHJ1bmsKKzUxNzQ1IDdjNWUyOTM2MjgwM2IxZmYzYWI5ZGZjZTFmYTE0MmRkODU4ZTVmNGEgbGVnYWN5LXRydW5rCis1MTc0NiBlOGI2OGRmOTBiODRlZDVjYTVlNjJhMzBhZTJhMjkyMzM2ZGMxNDc4IHJlbGVhc2UyNS1tYWludAorNTE3NDggYTUyNDg5OTgwYjViNDkzYTVkODljOTlkNzNjMTI1YTI1NjYyYmVjZSBiY2Fubm9uLW9iamNhcAorNTE3NTEgZTQ2NmZmZmRjOWE5MWM1M2M2ZDg4NGVmYTBiZWVlN2M0Mzg4ZTU5OSBsZWdhY3ktdHJ1bmsKKzUxNzU1IDFjNDI1YTg5MGY2Y2NhMzE1NzlkYTBhZmY1NTU0ZTgyYjFmMDU4ZmQgYmNhbm5vbi1vYmpjYXAKKzUxNzU2IGM5Y2MyOWJlNzU1ODc4Y2I2YWI2MDAyODhmNmI3NDY2ODdjZWE0MjQgYmNhbm5vbi1vYmpjYXAKKzUxNzU3IDc2YjhhNzVkYmU2YTNkNzRlMzRiYmY0MDI5OGI0OTU3MGMzYjFkNjIgYmNhbm5vbi1vYmpjYXAKKzUxNzU4IDQ2N2M3MTZlMmY4MThiYjQwNzJhYmZmYjY1YzEzMTcyMWI0ZjliNzUgbGVnYWN5LXRydW5rCis1MTc1OSA4YTIwYzk0ZDlkOTllMjJiOTQxMzE1NTg5NzQxYmIxMTBhZjVlOTkzIHJlbGVhc2UyNS1tYWludAorNTE3NjAgMmE3MzBmYjZmMzRiNDMxYTc1YmM0Yjg3ZDM1MDFiMWE4YTU5MjNhMiBsZWdhY3ktdHJ1bmsKKzUxNzYxIDlkZWIwOGVmNGJhMWRmMzUwZTUwNjZiNGIxZjhlNzkwYmY4NGQ2OTEgcmVsZWFzZTI1LW1haW50Cis1MTc2MiA5OGNkN2IxNjY2ZmI0OGNmNTFmMWUyZDFmMGU2MmQwNWQ0NzgzNTA4IGxlZ2FjeS10cnVuaworNTE3NjMgNmRjYzY0ODc5MzQxMzgxYmIxM2U2NzUyZWMwZjMxODA1NWYzYTExOSByZWxlYXNlMjQtbWFpbnQKKzUxNzY0IGFlNWI4YThiOTExZTI5ZDljMGIzMzUxYjUyYzcwZjM2NjRkM2Q5MDMgcmVsZWFzZTI1LW1haW50Cis1MTc2NSAzMDdhMTFjMDg1YjQ2MTBkODZlZjkyMmQyM2UzN2YxYjg5NjExMDQxIGxlZ2FjeS10cnVuaworNTE3NjYgODM5NGQyZTliZmQ2N2FmNGViMDQzZjgyYWE5NmUyOGMxNmY5OWE0OCByZWxlYXNlMjUtbWFpbnQKKzUxNzY3IGI4ZmJkMzIyNzYwYTliYjE1YTBhMzNmMzBlMWFiNDFhMGUwZGFhNTEgbGVnYWN5LXRydW5rCis1MTc2OSBkNzE5ZmFiNzk2Njc4NzZjZDE0NTY1YTQyN2Q3Njk2MGZkMjhmNTljIHJlbGVhc2UyNS1tYWludAorNTE3NzAgY2I4ODNlN2UwYjdlMTcyY2Y3ZjE0NTFkZjA0ODljZjU3Y2M5YjI1YyBsZWdhY3ktdHJ1bmsKKzUxNzcxIGM5NGYzNzA1NGYxOTcwZjZmYzE2MmIxMjUxZWVmMjU0MDg1OGUyM2MgcDN5aworNTE3NzMgN2EwYWQxMTBlOTFlNzkxNjMxZGY4ODljMTJmNTVmMDc2Yjk4ZjNiZSBwM3lrCis1MTc3NCAzYjc1ZWRjYzRhNmY0ODdkZmM3Y2FlZTExZjdiZmM1Njc0ZTRmMjUxIHJlbGVhc2UyNS1tYWludAorNTE3ODUgZGNlMTdiNWJkMzg3Y2EzYmE3NzhlNWQxYjk3NjY0ZmQ0MThiZDQ0ZCBsZWdhY3ktdHJ1bmsKKzUxNzg2IDgxYjQ2N2ZlOTJlZTUwOTY0YzUyOGZkZWUwZjA5ZDM3NTk3MWU4YjYgcmVsZWFzZTI0LW1haW50Cis1MTc4NyA0YWE5ODQxNDFmZWZjZmI2N2I5ODU3NWU4MmQ2YjBkZTE5N2Q3NWJlIHJlbGVhc2UyNS1tYWludAorNTE3ODggMjUyN2E0ODM1MDk5MjkzYjlkOTAyYjY1NTg1Nzk3MWI5MWEyNTkzOCByZWxlYXNlMjUtbWFpbnQKKzUxNzg5IGNkM2I3ZjI1NjQ5ZDRmMzc5NGYwMDBiN2MwYzRmY2YxNDIwYTIxMTkgbGVnYWN5LXRydW5rCis1MTc5MiA1NmU3ZDY5NTI5ODUxNTVjYmZmNWYwZGVkNDU5NGJkY2EyODVlZTg1IHAzeWsKKzUxNzkzIDVlNTAyZGUwY2VkYWNmZDVlYWFmOTNlNjVjNzEwY2ZmMDg0ZmVjOTkgcmVsZWFzZTI1LW1haW50Cis1MTc5NCA2ZDQ3YzhiYzA1MTI3MWI0OTk0OTBlOWM3Zjc4MWQxZWRjNzBlYWMwIHJlbGVhc2UyNS1tYWludAorNTE3OTUgNmU2YmFmMWFmYjEyYzA1NjAyNmE4ZGQ3NmZkNzAzNjQyY2Q2NTQ2ZiBiY2Fubm9uLW9iamNhcAorNTE3OTYgOTQyMDQ1NDliNTE2MDkzZDczZDk1NTJkMzVkMDExNWU0YjQ3MDU0ZiBiY2Fubm9uLW9iamNhcAorNTE3OTcgMzYzZWY4MDRhMDk2ZjUxODliYmYyYzljYWE3OTZjNDRkMWIyZWVlOCBsZWdhY3ktdHJ1bmsKKzUxNzk4IGVmMGY0MmJmMmEwODUzNTBjOTM5M2IwMzA1ZjM2NGEyMzRhOTU4MjkgbGVnYWN5LXRydW5rCis1MTc5OSBjNjQzYjAzMWQ1MjZjODM1NzVkMWU3MzIzNDc4ZmMwMGYxYzVmZmViIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTE4MDAgZTgzNzIyYWE3OGRkNDc1MzE0NzlkYzIzNWQ5YTM1YzlmNjIxNWY4NyByZWxlYXNlMjQtbWFpbnQKKzUxODAzIDM4YmE5NTI0NzgzYTFlYWJlOGY2NzdjMDA3ZjZjZTU3OTdjNGIwOTEgbGVnYWN5LXRydW5rCis1MTgwNCBjZjlkM2IzODI1MWY5MmFkNmJiMDZjMzQ3YWY3MjNkMWNlNjY0NDFmIHJlbGVhc2UyNS1tYWludAorNTE4MDUgMWVlYmI2NDczMTBmYjVlY2ZhY2M1ZGViNzVjNmQ1MWViZTE3MzkzNCBsZWdhY3ktdHJ1bmsKKzUxODExIDQwNTgwNDE5MmE2ODI4MjVkZjgzNzJlYWYzY2ZmN2M4YTMyZTdkZGQgcmVsZWFzZTI1LW1haW50Cis1MTgxMyBjM2EzNTNhMDcxNDY4YjU4YTcyMWY5ODM3YzkwMTUxYjA2OGNiZWE3IHJlbGVhc2UyNC1tYWludAorNTE4MTQgNDFjMWU1NDNiOWU5Njk3NjE0NWQ1MjI1ZGM4NTE1ZTdjMjJlZmU5YiBsZWdhY3ktdHJ1bmsKKzUxODE1IDRlODE5NzRmN2UxNDAzYzc0YTc0ZWY2NjljNTE5ZDRiZjllNTU3MGYgbGVnYWN5LXRydW5rCis1MTgxNiBkOTY3M2I2MmNlMzVkOWQwZDNiZjMwYTYyYmQwNGVmNzdjYzY1MThlIGxlZ2FjeS10cnVuaworNTE4MTggNDM0YWZjNzI4ZjZmNzRhZjkwNTAzMTRkYjEyMTg2ZTZlYTAzODM1NiBiY2Fubm9uLW9iamNhcAorNTE4MTkgYTA2NWI1NWUxZmIxZDA2ZjA2ZGQ1NWU3ZmZlOTMzODJkYzJkMjY5MSBsZWdhY3ktdHJ1bmsKKzUxODIwIGQ1YzZmZWEyNTJmMDQ4ODI2NWU3N2U4MmNmYTRmZTQxYTM4OGQ5NGYgbGVnYWN5LXRydW5rCis1MTgyMSBlYzZmZDljZWJkYTE4NTg3YjYwNmQ2NWExNmJmNDZkMWEwYjhmMTAwIGJjYW5ub24tb2JqY2FwCis1MTgyMiA3MDEwOGM2M2M2ZTUwZTgzN2Q2OWNkYTZmNjA3NDcwYTFjOTBkZGMzIGhveHdvcnRoLXN0ZGxpYl9sb2dnaW5nLXNvYworNTE4MjMgMzIzOWY5M2NmNGQyM2VkNjlmYzg4MTcyOTRjMjgyZTAxNzRlZmNhNCBob3h3b3J0aC1zdGRsaWJfbG9nZ2luZy1zb2MKKzUxODI0IDI2NTNmODMzNTg3NzkzODdkMWRkNDExZmY2NzYwNTllMWRhZjkyYzYgaG94d29ydGgtc3RkbGliX2xvZ2dpbmctc29jCis1MTgyNSA4OTFlMzMyY2QyZDZhMjY5YzBjYTJiMWQ0OTAzMDNjMmZjMWIxMTNmIHJlbGVhc2UyNS1tYWludAorNTE4MjYgMDI5OGNjNmMyOWNkNmVjZGFjZDU0ZWMyNGUxMTcwMDYxZThjM2ZhMCByZWxlYXNlMjUtbWFpbnQKKzUxODI3IGMwMzE0Yzg5MzZlNTExNmQzYmJiYjJmN2RhNWUwMGM2NjZiOWMxYmYgbGVnYWN5LXRydW5rCis1MTgyOCBkNGU1M2U3MGNkNzgyNzRkMDUzODYzYzhmNTZiYWE1NjBhMmI1ZTJkIGxlZ2FjeS10cnVuaworNTE4MjkgN2JlMzBjYmZjOWIyODNhYTM4OGUwNzRhMDhkZmZjYjQ3M2IyZmRkMSBsZWdhY3ktdHJ1bmsKKzUxODMwIDUyN2EzZDAwNTJjOTAxMTIxYjU4YmFhYjk2MDhlY2VjMzgxYmVkYjQgbGVnYWN5LXRydW5rCis1MTgzMSA2YTgzYjI3NDBmYzdjY2RhMDNkOTYxMGUzY2QwYjg5NDI5MzM5MWM5IHJlbGVhc2UyNS1tYWludAorNTE4MzIgNDA3MzVkNWY4YWNkYmU3Nzg4MWRmOWNlYmQyMTZmYTdhODU5ZWVhYyBsZWdhY3ktdHJ1bmsKKzUxODMzIGI1Mjc1ODgyYTNlMGQ0YjBjYzQzMTQ3YjMzM2ViMzg3NDI2YTkwNzggbGVnYWN5LXRydW5rCis1MTgzNCBhNGEyMTRiZGY4ZWFjMGVhMGU5YzM4ZDFhMmM4OTQ3NGFkNWM4YjQ3IHJlbGVhc2UyNS1tYWludAorNTE4MzUgNmY2ZTU1ZmQ5Yjc5MWMyYTdkY2FkODg1NjE3NTFlNzEyYWYzNTEwYiBsZWdhY3ktdHJ1bmsKKzUxODM2IDBlYjNmMGY1NGEyNjc0ZmVmNjgwYWI1MjkxYWRlMWI1ZmI5NmVhYjkgcmVsZWFzZTI1LW1haW50Cis1MTgzNyBjMmZkOTc4ZGYzOTIyNDI1ZjVmZTg3OTFkZDQ5ZGE1NWQwOTMzMDdmIGxlZ2FjeS10cnVuaworNTE4MzggOWU3ZGM2NDMyYTQ0NjViNjM1ZDc3MWU2ZTgyYTZlMThjYzcxMTRkNyByZWxlYXNlMjUtbWFpbnQKKzUxODQxIDgwNGQxNzFjMmNiNzE1NWM2OTMyMmU3YTk2ODc1MjI4YzExN2MwNmQgaW50X3VuaWZpY2F0aW9uCis1MTg0NyAwZmZlN2Y5MmFiMmZkZWZhMmY4ODVhMmQxOTliOGVlNjQ1OGI2ZmFkIHJlbGVhc2UyNS1tYWludAorNTE4NDggMzk4NmIzNmI4NDk1MjMzNDBkMzA5YzljMDg1Y2YwNjVhZDZjMmJkZSByZWxlYXNlMjUtbWFpbnQKKzUxODQ5IDVlZjA0MDZlNmQ1MjRjNmNjZjY3MWIyODQwOTI4ZDU3NTUzOWQ2OTQgcmVsZWFzZTI1LW1haW50Cis1MTg1MCBlNGU4ZjBhNGVkYTRmZTI4YmM3NTFhY2RkYWU5NmMxNTNhN2Q3YjE1IHJlbGVhc2UyNS1tYWludAorNTE4NTEgNTRkNGZkMDg4Mzg1YzdmZGMxZTQxZjY0MDZjZDU1NzRjZjIxZjJiMSByZWxlYXNlMjUtbWFpbnQKKzUxODUzIGQwNmIyYjQyZDEzODgxNmZlYjg5Mjc3NTA4NTkyOWE2ZWQzNTUxZjUgcmVsZWFzZTI0LW1haW50Cis1MTg1NCAxNWFkNmJhMmUxYTU0Mjc4MWJlYWJhMTI0MDNkZjdjYjc0MDFlMmE3IGxlZ2FjeS10cnVuaworNTE4NTUgNjZkMDM1NzAyOWI1NWFjNjE2OGY5YTMwMTgzOTk3ZTdmMjU3OGRhOSBsZWdhY3ktdHJ1bmsKKzUxODU2IGMwYTA3MWRmNDYyMWE1Nzk0ZDQ1YTkyZTRhNTk1MzZkN2NiM2U1NmQgbGVnYWN5LXRydW5rCis1MTg1NyAwZjdlZTk5MjViN2M0Mjk2MmI2MTU2NGJkMGQ0NDlhMzNjYTIzZmJiIHJlbGVhc2UyNS1tYWludAorNTE4NTggMGJhYzQwZTRkMGM2NDNhNzhjMThiNDZmY2IwZjQ4Yzc4NzFhZDFmZCBsZWdhY3ktdHJ1bmsKKzUxODU5IGM1YzlkYmVlYWZhNzZhMWRkNGJmMjZmMjI2MDFjYWQ2ZmRkMzcyNGMgcmVsZWFzZTI1LW1haW50Cis1MTg2MCBjYzNjYjNhODIzN2VhNTQ1ZGI5MTdkODRjNDlkOGEwYTVlMTc1Y2MxIHJlbGVhc2UyNS1tYWludAorNTE4NjEgN2Q0MGQzN2U0Y2MzNWQ2MTkxOTQwODJkOWY4MjM5MTRmYzIyZjdiNCByZWxlYXNlMjUtbWFpbnQKKzUxODYyIDI0OWZkYjU5ZGM1MmY5YjUzYTUyOTJhZGViMzM4MmQ1NjdiOTA5YWEgcmVsZWFzZTI1LW1haW50Cis1MTg2MyBkYzUwZDRhYzk1ZDkxZmMxODAwMTg3MDQwNDE3NTdlOWYyOWQzNTY4IGJjYW5ub24tb2JqY2FwCis1MTg2NCA5NWNmMzFlNjkzMzUwMWYyZDNmMjk2ZGJiMDdkMjY1MTEzMGIzZjhhIGJjYW5ub24tb2JqY2FwCis1MTg2NSA0MTc1MDFlZTNlODZmZmFjZWJkZjBlNmE4YjJkMWU5NzQ1OTRmNWNkIGxlZ2FjeS10cnVuaworNTE4NjYgZTU3ZDhhZTQ1NjY5ZjRkN2UyZDRjZTNkN2Y4YTYxZWVhZjJlMTZkOSBsZWdhY3ktdHJ1bmsKKzUxODY3IDU0YjgyYmQyNTY5M2U5ZDdmMmRmNjhhMzhmMTllZDUyOWQ5ZjhjODYgbGVnYWN5LXRydW5rCis1MTg2OCA1MDQ0ZDA2OWI1MzI5MmVlMDMwZDE2M2YxNjNmMGU4MmRmNjhmYWIwIGxlZ2FjeS10cnVuaworNTE4NzQgMTBlYjFmNmIzMDgwOTM0MjYyN2NhMTQ0ZTAwM2FiZmRmMjRjMzlhMyBiY2Fubm9uLW9iamNhcAorNTE4NzUgMGJjMzljMTMxOWRkYzAzN2FiMmFiNDA0NDlmZjNjZjgyOTJmY2FhZCBiY2Fubm9uLW9iamNhcAorNTE4NzYgMDdhNDRiZmY5NjdmNTgyNmMzNTEwODFkNmNlZGI3MTI5ZDEzMjM2YiByZWxlYXNlMjUtbWFpbnQKKzUxODc3IDc0ZTQyNGMxNzhmNDVjMjM5ZjE5NTlhZTQ1NmQ1MmFlNTc5NzU2MjcgbGVnYWN5LXRydW5rCis1MTg3OCAyYjA1ZWM1ZGY3Nzc3OTdkNDhlZDMxYmIwZDA1NjgzOGU1ZmU0ZTNkIGxlZ2FjeS10cnVuaworNTE4NzkgYTAyMzVkNDM1ZWQ0ZTcyZDQ5YzVhNTNmMmMxNTdmZjgyNzViMjVkMiBiY2Fubm9uLW9iamNhcAorNTE4ODAgNzUxNzljMmVjYWMxYzViMGYzNWM0Njc3MjE0MjliMDI5YTVmZGFiYiBiY2Fubm9uLW9iamNhcAorNTE4ODEgZGFkYTM0YjRkNmI2YTRlMmQ3YTg5ZjBhYzAzYzAwYzNjNzQ1YTIyNCBiY2Fubm9uLW9iamNhcAorNTE4ODIgMzRhYjA1Mjc0NWVjMmE3MGU0YTIxY2I3NjBmNWFhMDQ1M2FlOGYyNiBiY2Fubm9uLW9iamNhcAorNTE4ODMgMGVjZTI4Y2I1YjllNzNlOGNmMGY2NWUyM2VhM2EyNjk1NWJhZjgxNSBsZWdhY3ktdHJ1bmsKKzUxODg0IDg5OWQ0ZGMxMmMzNzhkYmUyNWI2ODljNDUxZWI1NDVmZDY4YzE0N2UgcmVsZWFzZTI1LW1haW50Cis1MTg4NSBiNjczM2EzNmVlY2RmNjU1NmE4MzhjMTdhNDNlN2VmNjI0ZDNmMTIyIGxlZ2FjeS10cnVuaworNTE4ODYgODczNzU5YjBiMTI2MTZhODA0ZTAxZTlmYWFmNDczZmJlZTJmNmZkZiByZWxlYXNlMjUtbWFpbnQKKzUxODg4IDRmMzZjNDE1OTZiMThkMGRmZjc5Y2NjMWQ0ZjFjNTkxYmI0ZjRhYzIgcmVsZWFzZTI1LW1haW50Cis1MTg4OSAyZTk5NWYyNDRkNmI2MmM5NDA5MDllYzAyMWM3N2JkYmRkOTI5N2FmIGxlZ2FjeS10cnVuaworNTE4OTAgMmEzNDk4ZDg3NDFiNDJjNTFhYTRiMzc5ZDQ2YTM0YTRhNjZlYTQzOCByZWxlYXNlMjUtbWFpbnQKKzUxODkxIGY5YzlmOGEwNWE4OTRiZDE0MDYyY2IwNDFkZDUwMmNkOTkwMTMzZTEgbGVnYWN5LXRydW5rCis1MTg5MiA4ZDNiNzY0MzU5OTIxYWNkNzMwMTJmODdjNzE0Y2I4NzJjNTEzNzU4IGJjYW5ub24tb2JqY2FwCis1MTg5NiAzMzBiZGEyNDA1ZWU2YzY4MjE4M2RjNWVhYTUzMTBiODg5MjMwNDAzIGJjYW5ub24tb2JqY2FwCis1MTg5NyAxNjYwZWFhMGNjMjY2MzMzMGMzMTM4YjJmY2IyYjFlZGJlMjI4ZTQ4IGxlZ2FjeS10cnVuaworNTE5MDEgZjVmNGQyZmRiNjJjMjlhZjk0NDAzYTIxYjczZjRiNGMxYTdlNDBiZSBiY2Fubm9uLW9iamNhcAorNTE5MDIgZDQzZDk0MjJiN2FjNzlmM2I2ZTFjZmZkZGJmY2I0MzEwNzUzYjk3MCByZWxlYXNlMjUtbWFpbnQKKzUxOTAzIGNlZGVhOWUyM2E5NTVjNzU1OWMyN2FkZTMyZWM0MGZkMDAwN2RlM2MgbGVnYWN5LXRydW5rCis1MTkwNCBiYjllOTE0ZWRlMDUxZmFiMDBiMjJjZjAyODhmZjRjZjcxNjY3NWYyIGxlZ2FjeS10cnVuaworNTE5MDUgNTkwYTk4YTcwYmY5ZDk0NWRhNmMxZjZjNGFkNTNkNDMwOGRhNWMwOCByZWxlYXNlMjUtbWFpbnQKKzUxOTA2IDZiMDFhOWM0NTVkYmQyNjVkZGVmYjdhNzU4YmJlMzUyYzNmNmM0NzMgcmVsZWFzZTI1LW1haW50Cis1MTkwNyA3Njc5NjJmODg4MzQ2MDlmOGU4OTQ4MjdlODhkZmI0NDIxMWExOTRhIHJlbGVhc2UyNS1tYWludAorNTE5MDggYzEwYTcxY2YxNmU0NzE0MjVlNmQ3NTY0ZTNmN2E2NDhmMTRiNzAyZSByZWxlYXNlMjUtbWFpbnQKKzUxOTA5IDdmNWY0NmI1NjYxMWMxNTNhZWM3YjA1M2MwMGYxZDg5MDNmYTFlZWQgYmNhbm5vbi1vYmpjYXAKKzUxOTEwIDIwMTQ3NDE1ZTk3ZjliMGNkOTUxYzFlZTVkNjhhZjI5YTIzODg4ZDMgYmNhbm5vbi1vYmpjYXAKKzUxOTExIGNlMjQ3NzhhNjQ5ZjFhZTUzZjVkMDA3NTgyMTQ0NWJhMjQ5MTViZjUgYmNhbm5vbi1vYmpjYXAKKzUxOTEyIDc3NTIzNzgwNzdhNTM3Y2IzY2QyYTRjMGZhOTc1MjdiYzcxMDYwMDggYmNhbm5vbi1vYmpjYXAKKzUxOTEzIGI0NDcwYTU0OTkzYTM4N2M1NzliZjY3OWIyM2ExYzU0NjdlZDlkMzQgbGVnYWN5LXRydW5rCis1MTkxNCA3ODM5NDFhMDBlOWUyOTUyMjkxYzA4Yzg0MjdlNjlhZWNiZjE3ZDZiIGJjYW5ub24tb2JqY2FwCis1MTkxNSBlNzBhN2I3MTk3YjY4NDFkNzgzNjcwODBiNmVmNjMwMWYwYWY1YWQzIGJjYW5ub24tb2JqY2FwCis1MTkxNiBiNmVlNGQzNTQxYzBhNTI4ODEyMWQyODhhZGZkMjNhOTgxMjM2NjgwIGJjYW5ub24tb2JqY2FwCis1MTkxNyAwOTRkYWU0OWFiZWJiMzRkYTM4YzNiMDY0M2JhODA3NmM3OWNiZjI4IGJjYW5ub24tb2JqY2FwCis1MTkxOCBlMDM2ZmM5YzY4MjcxNDc3Yzk2NWZhNjkyM2JiMmVlZTgxMmIzZjhhIHJlbGVhc2UyNS1tYWludAorNTE5MTkgYmM3NzJmYjUxMzkyOTVkMTU4YjcyNzQ1NDZmOGFkNmRjZmNiMDdkNiByZWxlYXNlMjQtbWFpbnQKKzUxOTIwIDcxYjgwMjQwYWMzZGRhZTQxOTJhMmM1MGExY2JjNTRkYjZjZGRmYmIgbGVnYWN5LXRydW5rCis1MTkyNiAwMTcxMTA4YWI1MTU1OGViMDZiN2FiNGU3M2QwNmY1MWM4MzM4M2Y1IGxlZ2FjeS10cnVuaworNTE5MjcgNDg4OGQyZDRkMjkyZWMzOGQ1ZTNlOTQzMTkxMzkzZTA3Y2YzMmNjNyBsZWdhY3ktdHJ1bmsKKzUxOTI4IDcxZTBmM2ZjNTdkYTc3OGY0ZmUwODQ5YjY0YTY1ZWFhNjExZGQ1ODUgbGVnYWN5LXRydW5rCis1MTkyOSBiMzAzZDJjMmM2YzU2NDM0M2EwMzY3ZTBmZjhhNmFjZTdhYzU5NzM4IGJjYW5ub24tb2JqY2FwCis1MTkzOSBlYTI0YTljOGVkYTI1OGI5M2FlZjU5MTNjMjg4M2RjNDM1NmRkMTJmIGJjYW5ub24tb2JqY2FwCis1MTk0MCAwMDMxZmMyZTA1ZTI4NmUyYmFmODkzN2U3YjMzYzcyYmVlOTdlMmVkIGJjYW5ub24tb2JqY2FwCis1MTk0MSAwMTUxYzA3YzUzZTUxMDYyNzMyYzAzN2UyNTY0NWJlMjNmMGRmN2E2IGJjYW5ub24tb2JqY2FwCis1MTk0MiBkZTQ5MjRkMDM5MDNmNzRjODU5ZmMyMzA3ZWJiMmRiM2JmZTRjOTA3IGJjYW5ub24tb2JqY2FwCis1MTk0MyAxZjQ4OTdmNWZiMmJlYmE2MTg4ZjRlMjM0ZTAyZjRiMGYyOGU3ZGExIGJjYW5ub24tb2JqY2FwCis1MTk0NCA0M2JhZjZiYjBmOGIwYjRlNzNkMGUwMmU4ZWJlMGZiM2VlZDQwNWIyIGJjYW5ub24tb2JqY2FwCis1MTk0NSA1NmYwZWM1MGQ3MzcxNzQ4Yzk4OWU2MWNkOWIyNmI1NzBlNTIzOWUzIGJjYW5ub24tb2JqY2FwCis1MTk0OSA5MzYyOTcwNDdjMTc5ZWQ4Nzc5ZmMyM2IxZTZiNDM2ZjMyNDZhMjVjIGxlZ2FjeS10cnVuaworNTE5NTAgNjk1MzBhYTIxYjhhNjQ5ZmY3NDcwYWUxNGY5ODFjM2NhZDNjMmE2NiBsZWdhY3ktdHJ1bmsKKzUxOTUxIDM1YmYxNmU3ZjExY2RlMTZjNDVkNmMwN2YzOGM1MzI5Y2FhODUyYWUgcmVsZWFzZTI1LW1haW50Cis1MTk1MiBlZmY4OGM2YWFhYzM3NDc2ZGNiZDljOTc3OGNhNjExZDg1MmE0NjkwIHJlbGVhc2UyNS1tYWludAorNTE5NTMgZGU0ODY2ZDQ0ZjEzNzc1YzVmZGEzMmQzZmI3MTljYjNiYjU3MzE1NCBsZWdhY3ktdHJ1bmsKKzUxOTU0IDdmNmI0ZmM2N2JiNmIzZjM5MTc5ZWI4MWI4NDBhMGExNTk5YjMxZDQgcmVsZWFzZTI1LW1haW50Cis1MTk1OCBkZjk4ZDk3MzEzOTBmMTQ3NjgxN2Y5NDQ5NDQ4NWY3YWRjMGEwZWJjIGJjYW5ub24tb2JqY2FwCis1MTk1OSAwODlkZGYxODc3Y2MwNzhkNjE0NjZkMTQyZGRhMTJkOTU0YTk3YWUwIGJjYW5ub24tb2JqY2FwCis1MTk3MSAyNGY5YTEzMDg0YjAxNzQ3NDQzOTJmZDhjMDdiYjYzYjc4OGE2ODVkIGxlZ2FjeS10cnVuaworNTE5NzIgYjhjYjcyMDEzNzljNjc5NTBkZTExYWVmZDNjMDMxMTExNDQzNDFjYiBsZWdhY3ktdHJ1bmsKKzUxOTczIGFlYTE5YzJhNDViZmM5NGFlMTYxNTc5M2JhNjBhYzk0OTBmMzRkMjQgdGhlbGxlcl9tb2R1bGVmaW5kZXIKKzUxOTc0IDI2NjE4NTI4ZmEzYjc2NGIwOGQ2NzgxYjNiODMzNTFiYTY2OWQ1MzEgdGhlbGxlcl9tb2R1bGVmaW5kZXIKKzUxOTc1IDk0YThjZDU4ODhlNzBiMDcwM2I1NmQ2NGIxYTExNDQxMzQzZDQzOGQgbGVnYWN5LXRydW5rCis1MTk3NiAwYjYzYzI4NTkzNGZhMDUwZmJmYjRhYjY3YjdmMmZiMTIyYmU5OWU3IHRoZWxsZXJfbW9kdWxlZmluZGVyCis1MTk3NyA2OWJlMDE1YTRiNTFjMDNkMjQ5MGE0OTU3NDNmM2Q4OGM5YWY1ZGY0IHRoZWxsZXJfbW9kdWxlZmluZGVyCis1MTk3OCBjNzgxYzk4MGM5YTBkZDg4MGI5MzFkZjFhNWM4ZmVjMDQyYjIzNjlkIHRoZWxsZXJfbW9kdWxlZmluZGVyCis1MTk3OSAwNzlmOWJlYjFkN2ZhMzU5MjJiMjg2ODBjY2RjYTY3NTFlYTAwYjYyIHRoZWxsZXJfbW9kdWxlZmluZGVyCis1MTk4MCA1ODcyYmFiZmY2Mzg0ZjQ2ZTUzZTUzOTk0ZDgxZGZlYmMyZDYyNzhmIHRoZWxsZXJfbW9kdWxlZmluZGVyCis1MTk4MSBlM2M1ZjNiNTkyNzFmMDJlYWYwYzM2YzkwODg3N2ZkZjYzZThkMjRjIHRoZWxsZXJfbW9kdWxlZmluZGVyCis1MTk4MiBlMjc0MzIyMjU4MWQyOGRiZTlmYThmYjFiZjdmMDQyMDAwZWI2ODFlIHRoZWxsZXJfbW9kdWxlZmluZGVyCis1MTk4MyA3NDM5N2IwMDk5MTQxZmNhZmQ5ZWMyMmNhZjdlZGU3OWY1ZWMzNjE1IHRoZWxsZXJfbW9kdWxlZmluZGVyCis1MTk4NCBiOTQyNzhlMWJjYjMxNDFhNTAyZDczNjM1ZDQzNzE4YTI5NjYzNDU3IHRoZWxsZXJfbW9kdWxlZmluZGVyCis1MTk4NiAwNGM5OThmZjI4YjdkNDFjZDMyOTc2NDcyMWU4NTYwZDRiNGJmODVmIGxlZ2FjeS10cnVuaworNTE5ODcgY2FiMDU2OTAzYjNkZDI2NDkyZjA2ZWE5MzI4ZmU1YTMzZjk0MGYzNyBsZWdhY3ktdHJ1bmsKKzUxOTg4IGMyMGJkNzRhYzlhNjdkZGViMjI3NWYwNDQxODA1YWJhNmVhYTI3NjUgcmVsZWFzZTI1LW1haW50Cis1MTk4OSA0NzllMzg5Y2I0NjJmOGRjYmE4ODVjZWJjOWEwMjY1ZWFhNzE4NjQ3IGxlZ2FjeS10cnVuaworNTE5OTAgN2Y2ZGRmNTU1YzEyMGJjOTM1YTgyOWU3NTBjZGYxMWRkMGZlMzMxOSBsZWdhY3ktdHJ1bmsKKzUxOTkxIGQ5OTc1MzMxNDQ1MzM1M2RkZWViOTk2ZmI3ZDA3NTcyMjk5ZGQ4MDAgbGVnYWN5LXRydW5rCis1MTk5MiBiNTI5MmY5Njc4NzdjYzM0OWExNDM1OTJhNTViY2YxNTNhMmY5MzZlIHJlbGVhc2UyNS1tYWludAorNTE5OTMgMjViY2RmM2NkMTk0MjFkNDM0NDdlNGVmNmIxODQ4OWNiMDY4ZGY5OSBsZWdhY3ktdHJ1bmsKKzUxOTk0IDM0NzhjMTYwMjA3Yjc5ZDZmOGMxODVlNDIzMGM2MmU4MjUwMjgyN2MgcmVsZWFzZTI1LW1haW50Cis1MTk5NSBlY2FhZmMzMmM1MDAwNjMxNDQ5YTYwMWI4NDg2MTQxYWJhZjYxODVhIGxlZ2FjeS10cnVuaworNTE5OTYgY2NkZGIyMjYxMWRjNmYwZDU2MDBjZWIxMTVjZWY5ZjAyNDBhODcyMiByZWxlYXNlMjUtbWFpbnQKKzUxOTk3IDYwM2NkZTVlZDFlYmM1N2Y2OTU5MTljMjc5YWEzODM0YjMyNjRlY2IgcmVsZWFzZTI1LW1haW50Cis1MTk5OCAzYzdmMTg4MWU4MmE5NmFlNDY1YmMwMmFmMmNlZTllYjJmNDRhMWE5IHJlbGVhc2UyNS1tYWludAorNTE5OTkgZGVjN2Q5OTNiNjhmMjQxNDlhZDg4ZjE5MjgyZWVjMmUxZWFiNTZiNCByZWxlYXNlMjUtbWFpbnQKKzUyMDAwIGY4YTdkZmJmODFkMDg5MjJiMTA1Zjc2ZGUzMDM1OGY2MDYzODAwNDcgbGVnYWN5LXRydW5rCis1MjAwNSA3OGM1YTAzOWZhM2E2NDIzY2UwODBkMDQ5YWI0OGEzNDA1MjI4ODQ1IGJjYW5ub24tb2JqY2FwCis1MjAxMCA3OGQ0ZTVlNDcwY2Y4MjQzYTljNjdhMDdjODVmYWVhYWI2YmVkYmQ3IGJjYW5ub24tb2JqY2FwCis1MjAxMSBiMDcyMjI4Yzk1YTIwNDA1MDEwN2VhMjI1OTg0ZDFjZDg1YWIxMGM2IGxlZ2FjeS10cnVuaworNTIwMTQgNzRkY2ZkMzZmN2M0YTM5YjI1NjVhOGEzZjJkMjY5ZDE5YjU2YzI1ZCBsZWdhY3ktdHJ1bmsKKzUyMDE1IGU2YTRlMDY3ODk5M2NlODZkMGRhN2E4YWZmMzA5ZDdhYTYwZTJmYjQgcmVsZWFzZTI0LW1haW50Cis1MjAxNiA5MzQ3YzJiNDUxYmFkOWIxZGEzZmJhMjdiYTY0NWIyYThmZjUxMzBiIHJlbGVhc2UyNC1tYWludAorNTIwMTcgNmZiNDZlODdkNWY5NGM2MGU1NDhmYzE0M2M1ODRhMDRkYTU0MWExYyByZWxlYXNlMjQtbWFpbnQKKzUyMDE4IDNiNzBkYTllZTM2ODc1OTMwMmU3ZGJjNTQ3YTc2OWU3MTU1MDIwMGYgbGVnYWN5LXRydW5rCis1MjAxOSBhNTIxNDJiYzE1OGY2NWQ1ZTM2N2NiNmI3MjQ3ZTdkMDA3NWU4MjgwIHJlbGVhc2UyNC1tYWludAorNTIwMjAgNjhhNTZhMTVkNzU1OTMzNmM2YTViZmU1ZjMxMGE3ZmExNDY0ZGRkZCByZWxlYXNlMjUtbWFpbnQKKzUyMDIxIDk0ZGZiYjlkYWM1NzhiMDM3ZGZiZDI4NGQ4MTI0NmQ2NzQ1M2NmYzIgcmVsZWFzZTI0LW1haW50Cis1MjAyMiBjNDlmMDJhNTBjYWRkNmY4MDFjYjVlMjdkOGVhYTNiZGNlYjY1ZjZhIGJjYW5ub24tb2JqY2FwCis1MjAyOCAxNjk2ZDg1YmEwNDM1NjQ1YTJhY2Y0NzU0MjRlZDg5Mjk1OGM4ZTE2IHJlbGVhc2UyNC1tYWludAorNTIwMjkgYWYzMTg2YzY0MDkyMDdjNThjZTdkMjUxNjE5MWNkOGQ1MWZhNjU4NCByZWxlYXNlMjQtbWFpbnQKKzUyMDMwIDg4NGQxY2I3MDIyMTViYjdkMDJkNjQ2NjcxYjg1MzE1MzE5NmY4YzUgcmVsZWFzZTI0LW1haW50Cis1MjAzMSAxMjg2OWFhZTlmNmQ5ZWRmYmU4YjY4YjQyMmYwMWIwNjY1ZmM4ZjQ1IGJjYW5ub24tb2JqY2FwCis1MjAzMiBmOTBiYTMwNmMyODdhNDhkYjAxMDM1OWQyY2FjOWQ5MWRiYjhkMzkzIGxlZ2FjeS10cnVuaworNTIwMzMgMzUwNzc3NWY0ZWQ0MWQ1NmEyYTdhODc4YWZlZDI4NjhmNzYzMWZlZCBiY2Fubm9uLW9iamNhcAorNTIwMzUgZmIyODllZTFjZDYwN2IzNzlhMDFlYWMyNjA4ZTk2OTNhNDllNGFlMCByZWxlYXNlMjQtbWFpbnQKKzUyMDM2IGFiNzllZDBmOTI4MTc1ZTE5MDc1MjIxYTY4YmQxOTYwM2JjY2VlZTUgcmVsZWFzZTI0LW1haW50Cis1MjAzNyBjYzE4ZmRhZDEwOGI3ZDcyMDA3OTdlYjA1ZTFjNTBjMzc5MDgxMTA2IHJlbGVhc2UyNC1tYWludAorNTIwNDAgNGYxMTc0NWM3ZTVmY2U4ODgxNDg2Y2M4ZmY2NDdmYzM1ZmM5YjgzNyByZWxlYXNlMjQtbWFpbnQKKzUyMDQxIGMxMWNhZTJiOWE3NWYyYTgxNDFkODdhMDE2NTAzODgwMTdkNDlhN2IgcmVsZWFzZTI0LW1haW50Cis1MjA0MiAyNjMyYzlhZjY0YWJiMjUyNzYxNGI0Y2ExNmFjYjg5MjhmNmZjNWM3IHJlbGVhc2UyNC1tYWludAorNTIwNDMgMTVkZGFiZTYzZDk1MmM2N2IzNTNhY2UzZDIyODM3ODMwZmJlNTZiNSByZWxlYXNlMjQtbWFpbnQKKzUyMDQ0IDFlNWYwYjA0NjZkOGRmMGRiYTljNGYwMDE2MTRlNWE2NTAzYjg4YjEgcmVsZWFzZTI0LW1haW50Cis1MjA0NSA5ZTBmYjk1NDc5MWVjOTM0OTJlY2E3YWUyMmZmOTM4Y2NiMTUzMjVjIHJlbGVhc2UyNC1tYWludAorNTIwNDggMDU4NjE3NDllYWNkMjExYWZiMmNmMTNhZDlkMGFkM2ZmODA3ZGZmMSBsZWdhY3ktdHJ1bmsKKzUyMDQ5IDAxYzAzYTcxMWIxNWNiMWVkMDFmZDNmMGQzMTRkMzAwNTNlNjZmOGUgcmVsZWFzZTI1LW1haW50Cis1MjA1MCA1MmNkYmU0Yjc2NDRkNzJhYTkyY2EwZmM2NTQ4Nzg2MTRjYzEzZDZlIHJlbGVhc2UyNS1tYWludAorNTIwNTEgMGVkZjM5OTk2MThhZTI4Y2Y5NjhhOWIwMGVkYjAyNzJjZjFiMTNhYiBsZWdhY3ktdHJ1bmsKKzUyMDUyIDFkYzIyY2MyMDEzMmYyYWMwNTk5NzdhNWM0YzdmYTJhOGMzMDg0ODIgcmVsZWFzZTI0LW1haW50Cis1MjA1MyBkZTc5ZjE4NzBhZThmMWQ4NmQxZjU4NTE4NjgxZDM0NmVmZTM1ZmVhIGxlZ2FjeS10cnVuaworNTIwNTQgNWRmZmEzNWNjNjQzMDJjMmMzZGRhM2FlMWZjZGJhYzhkNmZjODI5YiByZWxlYXNlMjQtbWFpbnQKKzUyMDU1IGQ4MzM4MDZjNzM1MWE1OTE3MjYyYzg4OTAwYzUyZmM4MWRjNjVhNjQgcmVsZWFzZTI1LW1haW50Cis1MjA1NiBjNDc3YTBlMmIwNjc5OWRhYWQ4OTQ1MmQ5ODFjNzVkY2M0OWMzOWQxIGxlZ2FjeS10cnVuaworNTIwNTcgMmM4MjRhOGExZmI4Y2Q1NmFhOGViNmZlZmY5Y2E1NmQzNTMxZmRhNiByZWxlYXNlMjUtbWFpbnQKKzUyMDU4IDQ5ZmJkZGZiMTIxNzAxZGRlZTE2NGFjNzUyYjEzMjEyODBmYmNmNjggbGVnYWN5LXRydW5rCis1MjA1OSAxM2NmMzQ0ZGU4Yzk4OTg0ZjM1ZjhkMzgxOWMxODE2ODQ0MTUxNGM1IHJlbGVhc2UyNC1tYWludAorNTIwNjAgNTI0NjBiMDkyYjVhNjZkNWEzNTkzYTE2ZjJlNGM3NjMxYjg5ZDhmNiByZWxlYXNlMjUtbWFpbnQKKzUyMDYxIGUxYWI0NjUzZWJjMDkzMjU5NmI2YjA2NDJjMmYwZTg5YjE5MmMxM2IgbGVnYWN5LXRydW5rCis1MjA2MiAzOTg2YmZlNTMxMDFkYjMxMjkyMjk0M2E2YzkzMTNmN2U5OTc0OWNmIHJlbGVhc2UyNS1tYWludAorNTIwNjMgZTdhNTgzNDFiMmU4Zjc1MzVkNzdjZDE0YzIyN2IyYTcxOGQzMzVlMSBsZWdhY3ktdHJ1bmsKKzUyMDY0IDFiZjUxZDJmNDY5ZDJkMmZhZjc4M2JjNjhmNTNjZWY5YmYyODQ2YjkgcmVsZWFzZTI1LW1haW50Cis1MjA2NSBiOWEyZWYxMzAyZDQ3Y2NkNTE1MGQ1OTNhMTljNjFlNWEwM2I2MjVkIGxlZ2FjeS10cnVuaworNTIwNjYgOTlkMWM5MzY3Njc5NGQyZDRiNTgzYjY0ODYyN2JhZTZiNGZjZTZiNiByZWxlYXNlMjQtbWFpbnQKKzUyMDY3IDMzMGRiY2FkYjkzMTcxZjYyMzdlYjE4ZDdhYTgxYjk5NzRkZWY0NmEgcmVsZWFzZTI1LW1haW50Cis1MjA2OCBmZmI5MDEzNzRhMzgyNTM5YTkwNjU3YTU0Yzg5Y2NkZTA4ZmYyY2Y1IGxlZ2FjeS10cnVuaworNTIwNjkgZDkxODI2YmFjNjU1NWNiMGE2MTQ2Yjc1NWM2NmNiNDVlM2M0Y2Y2OSBsZWdhY3ktdHJ1bmsKKzUyMDcwIDk1ZDI0NzNmNzc3MGNiMTBjNmY4OTM1YzAyMTE2Y2RiNzdkMTQzNmMgcmVsZWFzZTI0LW1haW50Cis1MjA3MSA5Y2FmNWE5ZGE1NTRkMGJhYjNiYTFhYzg0OTYyYzQ2YjA3NTRiZmMwIHJlbGVhc2UyNS1tYWludAorNTIwNzIgYjdhZTg5NzdkMDZlNDk3ZDZmZGFkZWFhMGM4NmQzMzZhZWRjZWFjZCBsZWdhY3ktdHJ1bmsKKzUyMDczIDliZTAzMjI2YTdiZjhkYTk5ZWRmMTc5MGFlNTU5ODYyMzJmZWJhMzIgcmVsZWFzZTI0LW1haW50Cis1MjA3NCBjZjU4ZmI4NDUwYmEzMDVkNGZjMDU5ZDkwOTVhNWVhYTAwMjk3Y2NlIHJlbGVhc2UyNS1tYWludAorNTIwNzUgNDBlMmZlZTAzYTk0OTIyNTA5OGJiODdkNGJmYjQyOGY3ZmNkY2ZiYSBsZWdhY3ktdHJ1bmsKKzUyMDc2IDUxMzBiNjhiNTRlOTRhOGIwOTIyM2FkOTUyY2FhMTcwNjUzZjBmMTAgcmVsZWFzZTI0LW1haW50Cis1MjA3NyBkZmQ4MDlkY2Y2ODAwMGZlNmE0YTY4MGEyNTBjMWY5ZWI5OGQyZWMyIHJlbGVhc2UyNS1tYWludAorNTIwNzggYzg5YTc1NmMwOTY1YTkwZDM1Y2E2MjFiMzBiN2Q0NTIxYTI2ZWU1NCBsZWdhY3ktdHJ1bmsKKzUyMDc5IDkwNzI4ZGZjMzNlODU4ODRkY2NlY2I4MzZlNWIwMTQ1ZWFlZjg0NzMgcmVsZWFzZTI1LW1haW50Cis1MjA4MCBkNzQzMzgxMTMxZDZjOWYxYjg5M2UxMzZhMTY4NGVlZTc3NjE4OWJiIGxlZ2FjeS10cnVuaworNTIwODEgYmY0N2RlNmQ5YzkxOGUyMDZjM2FiN2ZjZGVjZjQ1MWQ4NmZkMWIxOCByZWxlYXNlMjQtbWFpbnQKKzUyMDgzIDI1N2RhZjM5YjA4YzY4ZTYyZjRlNzBkNTUxMzhkMjI2OWE4MDhjMjEgbGVnYWN5LXRydW5rCis1MjA4NCA4OWU0YWViYmYzMWM0NjA5M2IzY2NhN2M4MTgyM2M4NzFkY2I2ZWM5IGxlZ2FjeS10cnVuaworNTIwODYgMDBhZjY5ODcwMjZhNmQ1YzFlMmQzZTE2NDVkZDFmNmE5N2IzOTBhNiBsZWdhY3ktdHJ1bmsKKzUyMDg3IDFkYTA0YzhlZThmZjAwMzA4ODcwNzhhOGJkYTY4ZTI0NWY2YWQ3ZWYgcmVsZWFzZTI1LW1haW50Cis1MjA4OCA5ZmNhYThlZThjMjJmZGIzZWQ2M2MzM2EzNjM3OTA4NTc2YmE1ZTEzIHJlbGVhc2UyNC1tYWludAorNTIwODkgMTY5N2QwZDRlZjMzN2E4ODIyYjU5MzUwYTdiYWEwMTVhZTA5NDdhNyBsZWdhY3ktdHJ1bmsKKzUyMDkwIDVjMzZlYzVmZDNjMjM2ZWI2YzA0NDBjZmJlNWZkNzhlOTlmODk4NDYgcmVsZWFzZTI1LW1haW50Cis1MjA5MSBjMGU3MWE0YjcxYzc0NmYwYjhiZGFiNTA1OGMxYjVhMjNlYmZmNDFmIHJlbGVhc2UyNC1tYWludAorNTIwOTIgY2RjMzY3YWIzYmJmY2IxMWZkZDRmNWNjY2MyZGVlODcxNGIxNjI1NyBwZXAzMDJfcGhhc2UyCis1MjA5MyBiMTQ0OWE3ZTE1ZWRlZWFkODU3ZjUzY2I4MGZmNWRlOTM2ZmZjZmRiIHBlcDMwMl9waGFzZTIKKzUyMDk0IGI0NTUzYjEyZTI1YmU5YWNmNjNiZGIxMWEzNmM3ZjkxZjMwZjdlMzAgcGVwMzAyX3BoYXNlMgorNTIwOTUgYjIyYmFhMTU0MTQ3NGY1MWZhMmNjZjUyYmMzMjI5ZDkyOWM5NmUyYiBwZXAzMDJfcGhhc2UyCis1MjA5NiA4NGFmYTM2NmVlZTdhMmIwNjU0MWU5ZGI4M2EwYTM0MThjNzEyMzExIHJlbGVhc2UyNC1tYWludAorNTIwOTcgNDVkYmNiMGU5ZmE5ZmQ0ZjkxODYzOTcwMjE0YTkwYjA2ZTA4ZjRlOCByZWxlYXNlMjQtbWFpbnQKKzUyMDk4IDgxODExOGMzYTM0MGRmYTEyN2EyZmVhM2NmZGFmZTMzNTI3MmMxNDYgcmVsZWFzZTI0LW1haW50Cis1MjA5OSA1ODBmNmE2OTUxNzIzOTc1YzVlYzgzMWY1NDZlOTFmMDBmNWU1NTRiIHJlbGVhc2UyNC1tYWludAorNTIxMDAgMmM4OWQ2MTZhOWVkMzdjMDFmMmJiNTY3ZTgwMDcwNTQ0YmVhNmEwYSBsZWdhY3ktdHJ1bmsKKzUyMTAxIDJlMWM0OTM5NWI5NjFmNjU1NTRmOWExYTZkNjc5Mjk1NGY3ZmY5MzYgbGVnYWN5LXRydW5rCis1MjEwMiA0ZGE0ZGU5NTQwMTJiNDlmMzU5YjQxYjllNTQ1N2JmNzdhYjg5NmVhIGxlZ2FjeS10cnVuaworNTIxMDMgZjAxOWU0Zjg2Mjg3N2FhN2IwYjk0MDk2MmJjYTlkYjMyZWQ2NzY3NSByZWxlYXNlMjQtbWFpbnQKKzUyMTA0IDI4YTk0YmY3ZjY3ZjNjNGIxYjJjOGZmMGRkZTNiMGZmNzIxMDViNGQgcmVsZWFzZTI0LW1haW50Cis1MjEwNSBkZTdjMGNiNWE4NzI5NWM2YTE0MDM2N2FmMGJiMmVhNGM0ZmQ5MTJkIHJlbGVhc2UyNC1tYWludAorNTIxMDYgYjMzMmUxYWM2NmNjZDdjNmVmN2YwZmU2NjNhMDdiY2RiZWRiMmNmZCByZWxlYXNlMjQtbWFpbnQKKzUyMTA3IDA2MjkxZWFkZGUyZGI1YTJlY2QzM2E0YjI3MTg0MWYzNWMzNmY0ZmIgcmVsZWFzZTI0LW1haW50Cis1MjEwOCA0NDNiODczZjllYjkwODU1ZWU0YzJmYjUyNzZlOWQ0M2VmOGJmYzBmIHJlbGVhc2UyNC1tYWludAorNTIxMDkgNWRkNmM5MGQ0MjIyY2I5ZTZkNzZhM2I2ZjhlNDJjNzg3N2E0MDRlZSByZWxlYXNlMjQtbWFpbnQKKzUyMTEwIDZiMWM0ZDdkM2EyNmMzMDU0NWZmZjAzZDQ5ZTVhZTVkYTM5NTU1OWEgcmVsZWFzZTI0LW1haW50Cis1MjExMSBiN2UzNGZiYzgwYWQ2OWJjZmZjZjhlMDEwOGZmODQ4YTJhNjJmMThhIHJlbGVhc2UyNC1tYWludAorNTIxMTIgNTJlOTk2NGVmOTIyZDc3MzA0OGZiYTgzZjI3Yzc1NjA4OTc0ZmY4NCByZWxlYXNlMjQtbWFpbnQKKzUyMTEzIDU0ZDE3N2VkZTg4Mzg4MDJkNjliMGU5ODFlYzYyOGZiNjQ5OTZiYzYgcmVsZWFzZTI0LW1haW50Cis1MjExNCA4YzgzZmQ3OWNlZTViZTMwNjQ2NzYyMTM0MTU1NDE5YjA1MDRiMTQxIHJlbGVhc2UyNC1tYWludAorNTIxMTUgZWYwOWUyNmVmMDk5YTQzOTE1YjA4YzllYTlhMDgzMWE5NDY4MDhmNSByZWxlYXNlMjQtbWFpbnQKKzUyMTE2IDJmMjM4YTJjZDE4OWRmYzM3ZDU3YjUzYTcwMGU0MDhiZDM1OGY3MWQgcmVsZWFzZTI0LW1haW50Cis1MjExNyAwYjZiMzYwZTkyMTc5NTEzMTE2ZGQ4ZTRlNGViNzRhYWQ4MTk0YmNmIHJlbGVhc2UyNC1tYWludAorNTIxMTggOWU3NjNiY2QxM2NiOWZlYmJjMzY3ODY1NGJhN2RjY2RlMjg2NGI0YiByZWxlYXNlMjQtbWFpbnQKKzUyMTE5IDBkMzViOWY5NGIxNTE2Y2YyZjVlZTI2ZTFjMWIxYTUwNjVlNjZjYTcgcmVsZWFzZTI0LW1haW50Cis1MjEyMCA5MTY3OTI4N2NiOTZjZjk4NmMwMjcyNDNiZDgwMTBlYWRlNTViY2M5IHJlbGVhc2UyNC1tYWludAorNTIxMjEgNDdhYjBjMjdkZDFmOTIyZjRmNjBkYjM3ZjA0YjVlNTdlOWQyMzc4YyBsZWdhY3ktdHJ1bmsKKzUyMTIyIDM2MGQwOTcxYTZlZWYxZDg3OGYwYTBkNTM0YTVkYTM1NWQxMzg2NGMgcGVwMzAyX3BoYXNlMgorNTIxMjMgOWUzNWI2MmVkNGQyZGY5NzU3MjU5MWM0ZDFjNWZhODU5Mjg2MjU5ZCBsZWdhY3ktdHJ1bmsKKzUyMTI0IGZkMTRiYjU4MzFjZGFjNGNjZGE1ZDdhOTQyYzAxMjRhN2ViOWRjNWYgcGVwMzAyX3BoYXNlMgorNTIxMjUgYWRhNTZiNTRkYjlhNzkzNGNhYWMwOTQzMjFhMzc3ZGZiMGJhNDUwMiBwZXAzMDJfcGhhc2UyCis1MjEyNiA2NjBjZDA3MjA4MGRmM2U4YjA0NTZkMDIxMGVkZjRhOTdlMGU0MzE3IHJlbGVhc2UyNS1tYWludAorNTIxMjcgNzliNjQ0YmYwMTE2NDdhNTMxZDNlZmQyYTYzZDU3ZTU4MzkwZDU1ZCByZWxlYXNlMjQtbWFpbnQKKzUyMTI4IGRiNmNhM2VhNTNlNWI2N2FlNDE4NDFlNTBlNzVjZjIwODM4NTUzYmEgbGVnYWN5LXRydW5rCis1MjEyOSBmNWQ3ZGU1MDMxYWE0ZTIyN2RkZWQyMjcxOTU4MzhmNjJmZTFmN2I2IGxlZ2FjeS10cnVuaworNTIxMzAgY2E4ODdkNTVjNTkyMTNkMzRkZTg3ODM0MzI4YWFmOTEzZDkyMDJiOSBsZWdhY3ktdHJ1bmsKKzUyMTMxIDhhMjg1M2JmOWVjYWQzYjE2NWZkZjk3Y2U4YWNkNzc0NTY3NDU1OTUgcmVsZWFzZTI1LW1haW50Cis1MjEzMiBlMDM5Y2Y2YjdkNDI5Y2U1OTA1YTdhMWE4MmM3NWEyMTAwZmQ0ZDU0IHJlbGVhc2UyNC1tYWludAorNTIxMzMgMWI2MWU4MjY2MGJhOWM5YzAxMjMyMmY0OWQ0NzI4MWUwNDU4OGZlZSByZWxlYXNlMjQtbWFpbnQKKzUyMTM0IDEwYmI3YWNiYmRjODM3ZTI5YTliMTFmMTM4N2E2YjFiMmNhMDQ1ZmIgcmVsZWFzZTI0LW1haW50Cis1MjEzNSAyYWRkNDRjMGRlNmM3ZGFhNjQ3ZTdkOGQyOTM2MWViNDllOGE2NTQ3IGxlZ2FjeS10cnVuaworNTIxMzYgYTliMWY0MDRlODhiNTljZTQ4MWYzYmY4Mjc2MzJmZjEwMzI2OGMxYSByZWxlYXNlMjQtbWFpbnQKKzUyMTM3IDBjOGU5ZjkyNzJkNWYzZTE0NDcxZjU1MGIwNDIwYjA4N2QyNjc0ZjQgcmVsZWFzZTI0LW1haW50Cis1MjEzNyAwYzM2NDEwYzM5ZThkZGJiODk1MTg1N2RjNGFkZjMzZjI5ZmRjMzVhIGxlZ2FjeS10cnVuaworNTIxMzcgNGViMjg2ZTkzMWE5NWRkZGIxOGQzZWNjNjlhYzk3MzI0NzVmNGYzZSByZWxlYXNlMjUtbWFpbnQKKzUyMTM4IDc5ODkzNWUxMjk1ZTdmYTMyNDEwOTgzMDhlNTc1MDJmNTE1YWVlZGYgcmVsZWFzZTI1LW1haW50Cis1MjEzOSA2YmE0MDJiNjAwNDE4YTU2ODQ1M2ZhYjllZWU3ZjNjYjhhYTE0MGE2IGxlZ2FjeS10cnVuaworNTIxNDIgYmZhYzIzMzg4YTIyNGU3OThiYzIxMWY1YTZmYjU2YTc5ZGQwMTY5OSByZWxlYXNlMjQtbWFpbnQKKzUyMTQzIGRmN2E1NDM1ZWNiYjVjZmZiNTYwYmYyMDkzMzA0YWU5ODU4NTM1MjAgcmVsZWFzZTI0LW1haW50Cis1MjE0NCA0MmFiZmIzOTEzMDBhMjUwNzY1N2E5ZjU1MjA5ZWNiNzUyMjFlMmU0IHJlbGVhc2UyNC1tYWludAorNTIxNDUgMDRlYzM5MTQxMGNiZTQ2ZWI5MmZkMDkwMzM1MzI0MGY3N2E3ODZiNyByZWxlYXNlMjQtbWFpbnQKKzUyMTQ2IDUyNzBiMWUzNjY0OGVmMDQyNzhhYWNkMzg2YWYxMzY2ODYxMWM1ODYgcmVsZWFzZTI0LW1haW50Cis1MjE0NyA0NDA0YTM5ODE0NzA2NDFkMzE3Yjg5OWE1NTk5MDkxOTM1ZjYyNjE1IGxlZ2FjeS10cnVuaworNTIxNDggOGFhYTNkOTFlZWZhN2YyOTZjZjJjN2MzZDc5MWJmYjdlMzYyNjY0MiBsZWdhY3ktdHJ1bmsKKzUyMTUyIGIxZTczNzdlY2YwNDQ2MDEwNDM3YzI0Y2JjZmQ2ZGQxNzBjMWY0ODggcmVsZWFzZTI0LW1haW50Cis1MjE1MyBlODhjNDI2N2FjZDFjNzkxNzRiZDBhNmExMzgyMzgzZjI2YzdlZjYyIHJlbGVhc2UyNC1tYWludAorNTIxNTkgYTRiYmZjYTQwYzdjZjc2ZjAxYjVkODI0YWQ2YjcwMDNhMmNlNjVlZiByZWxlYXNlMjQtbWFpbnQKKzUyMTYwIGY2YmJlOGQ2ZmEzMzAzNTVlMmZhNjFhN2RlODMyMjA1M2E1NGUyY2EgcmVsZWFzZTI0LW1haW50Cis1MjE2MSAxZjU4OGE5ODJjYzU2Yzc1ZWJiODBhZTA0ZDU4OTE0ZGQwOTA5YTZhIHJlbGVhc2UyNC1tYWludAorNTIxNjIgODAxN2IzZjIxZjYyZTZhMDRiNzk4ZDNhNjIyYmViYTQyNzQxZDMzYyByZWxlYXNlMjQtbWFpbnQKKzUyMTYzIGMyN2Q4Zjg5YWE4OTE1NTE5YzEwZmRhN2ZkNWI3MWE2MjFmMmJkMWIgcmVsZWFzZTI0LW1haW50Cis1MjE2NCA5ODE5Y2RkMmZjYjE1NjlhZGJhOTNmYzMyOGVkMDUwMjI3YjcyN2NhIHJlbGVhc2UyNS1tYWludAorNTIxNjUgYTlmZWUxZjYyZjE3NjA2NzY2NmMwOGY3YTZmYWE4OGVmNDA1NDUyNiByZWxlYXNlMjQtbWFpbnQKKzUyMTY2IGFiMTM1NzYzNzRiMWE5NWZmNzBkOWU5YTM4NWQwZWEyMmFmMGU1NjEgcmVsZWFzZTI0LW1haW50Cis1MjE2NyA1ZTI0NDk5NGU0MmU1MzQyNzVkZTI0YmJmMWE1Yjg0OTNkNWNhYjQ0IHJlbGVhc2UyNC1tYWludAorNTIxNjggNWQ5M2U1Y2NiMzFlNzRjNzgzNDM4ZGRjNzc5NDg4MTU1NzgzNTBiZiByZWxlYXNlMjQtbWFpbnQKKzUyMTcwIGNkNmNlNjY2ZWZmOTFiZmEyMTI2NTEyOTA0YjQ1MTk3YzRkODVhMDcgcmVsZWFzZTI0LW1haW50Cis1MjE3MSBlNjU4MzY4MTU3OTFjN2JmNmZmMDAxMjMxZjA0MDgxYzI0OGJjOWU3IHJlbGVhc2UyNC1tYWludAorNTIxNzMgM2I1N2VlY2RjNTA0YTEwMGI1ZmQzNGQxNmI0MjE4YTkwOTU1MGE2OCByZWxlYXNlMjQtbWFpbnQKKzUyMTc4IDJhNDZiNzZiZWI5ZWJkOWEyNTYyNDJlZGYwNmY3MzE3YTM1MjI0MjEgcmVsZWFzZTI0LW1haW50Cis1MjE4NiA0NjYzYWNlMjM0OTljZTY3YWYwYjRjYjU4MjlkZmNhZWI5OTZmZTNkIHJlbGVhc2UyNC1tYWludAorNTIxOTAgN2JiZmYyZTlhOWMyMTljNWY5MGVkNTFiNGNiYWIxMzEyYzA1ZmJhMiByZWxlYXNlMjQtbWFpbnQKKzUyMTkyIDViZWM0YTY3ZmYwZGE4OGRjZDQ3MzgyNzU0ZjgwODdiODY3OWViYjggcmVsZWFzZTI0LW1haW50Cis1MjE5MyA0NWFjOWNlMGJiMTU3MTZkYzFjZGU0NDE0OTk0YmUxOTAxOTkyOGEyIHJlbGVhc2UyNC1tYWludAorNTIxOTQgNmJiMzc1ZjU1OWNlNDY3NGMxY2U3YzM0MzAzYWFlOTY2NjM5MjQ5ZSByZWxlYXNlMjQtbWFpbnQKKzUyMTk2IGU4MWZmOWFmNjQxZGIyNWNiYzNjYTM5NWNiOWEwOTM0YWIzMTFmZTIgbGVnYWN5LXRydW5rCis1MjE5NyA2YjFkZGYzODdiZDE5NWU1OGJhMzI0M2NlYWIzZDY2NjYzNWIzMGRlIHBlcDMwMl9waGFzZTIKKzUyMTk4IDU0MzRlZDRmZTg2MjI2NzFlM2FiZGQ5NTRjMTU5NDk2OGIwMDlkZjQgcmVsZWFzZTI0LW1haW50Cis1MjE5OSA0NzEzZDk5MDBlOWU5Y2I3MTYwYWQxYTg3YWRhMTNkOGI4MzU5NWU3IHJlbGVhc2UyNS1tYWludAorNTIyMDAgNzc2NzRjMGY5MjE0MTA2OTc1NmZkODY4M2NkM2Y5NzI3M2Y0ZmZjOSBsZWdhY3ktdHJ1bmsKKzUyMjAxIDc4ZDdiZWEzYzEyMjBiYTI1YTdhMzk5M2U2MTA5M2I5OWZmMjA3NzMgcmVsZWFzZTI0LW1haW50Cis1MjIwMiBkZDU0YmQ2YTZiMWVjYTRjNWYzMDc2NjkyNmRhY2YzY2JjZGE2MzJjIHJlbGVhc2UyNC1tYWludAorNTIyMDMgMDc2YzIwY2E1ZDdiNmYzNTljM2Y5NTYxOWE1YzJjNGJlN2ZiOGVhMiByZWxlYXNlMjUtbWFpbnQKKzUyMjA0IDI2YzJmZjcyODAyN2ZmODkyZTNhZWYxMzZlNTZhZDJiMTk4NjFiY2YgbGVnYWN5LXRydW5rCis1MjIwOCA1YWVhOGIxZmQyNjI1NDBkODRmOGViMTdkOTQ4ZjFjMWJmOGY2YjI0IGxlZ2FjeS10cnVuaworNTIyMDkgMzU3MTQ3MDBjZjg3YzU0YjA0MzFhYjg1NDllY2JiMjVmYjVmNTRlNCByZWxlYXNlMjUtbWFpbnQKKzUyMjExIDBlOWZkYjE2NGQyMDYxMmQ2NWI4NjI4ZDViNTU1ZmQ3M2ViM2I1MjMgbGVnYWN5LXRydW5rCis1MjIxMiA5OTRhZDc1MGIwZTNiYzA1OGM1ODkzYjFiZDVmZjkxZDE3MmFjMzU3IGxlZ2FjeS10cnVuaworNTIyMTMgNWQ4Mzk5NGNkOGNkZjQwYTRiMzM1YTgzYWZhZGM2NWUxNDA1OGEzNSBsZWdhY3ktdHJ1bmsKKzUyMjE0IGQyNGVhYWVkYTc0OGM0MTZmNjcyNmRjYjgyYzg0ZDg0ODEzODM1OTYgcmVsZWFzZTI0LW1haW50Cis1MjIxNSA5MTE4ZWE3ODFmZDUyYWY0ZGE2NDk0NDE1MjA2NTAyNjFkNTZkZGRiIHJlbGVhc2UyNC1tYWludAorNTIyMTYgMmEwNWVlNGEyM2UwNzFkMWVkMjVmOGM4MDkxOTkwM2FkNjAyNjkyNSByZWxlYXNlMjQtbWFpbnQKKzUyMjE4IDdjMzQ5NDRkNGM4MGJlOTc1OGMwMGM2ZTJjNjYyMTVkZWRmZjBhNzggbGVnYWN5LXRydW5rCis1MjIxOSBhMmYyNmY5NDRiNjU3MTc5YWZlMzZkM2U2ZDZmZmU4YTI4MmI5MzQ0IHJlbGVhc2UyNS1tYWludAorNTIyMjAgZWQ4OGQ2YjdjMWY5NjY5MDNiZDkxZDlhOWVlN2UwMzkxYWIyMzI3YSByZWxlYXNlMjUtbWFpbnQKKzUyMjIxIDE2ZTI4OTJlMWUzYzJhMjY5MTVjMjYxOGU3MDVjODlhYmQ2NDJjOTkgbGVnYWN5LXRydW5rCis1MjIyMiA5ZTA0MzFmZDY3NGEyNGY5OGRiMWJjYWI3YWNiM2M2MWU5MDJmOGJhIHJlbGVhc2UyNS1tYWludAorNTIyMjMgMzQ3Nzk0MzkxY2U0MzQwYmI1YzIxYjFlODFjNjQ2MjJhZDVlZWZhOCBsZWdhY3ktdHJ1bmsKKzUyMjI0IGQzYzE5NDdkMTY2NjUzMWUxYmExYjk4MWY4MTI2YjNkNWIwMGFlYzYgcmVsZWFzZTI0LW1haW50Cis1MjIyNSA5M2UyYjMxMTJkNzllMTA5ZWM1YjY0MGEwZDQzMzUzNWIwZjEyNjVmIHJlbGVhc2UyNS1tYWludAorNTIyMjYgNjk5Y2M2YTVjODZlYjhhNTlhYjA1NjkxZDgwOTVhZWY1MWNlNWU2MCByZWxlYXNlMjQtbWFpbnQKKzUyMjI3IGI5ZDMzMDFlNWYxOTVlNjBkOTkzN2JhN2E5OWU0NWJjYzI0MWI0M2EgbGVnYWN5LXRydW5rCis1MjIyOCBkZWVlYTRkYTFmMzU0OWVmMzNhZGVjNjE5NjA0OWM3NGQ0NzRhODJiIHJlbGVhc2UyNS1tYWludAorNTIyMjkgMjA0NzRkOWU3NWUxNGJkYzIwNDQ2OWRhZDQwNmI4ZmUzOTc3OGQ2OSBsZWdhY3ktdHJ1bmsKKzUyMjMwIGY4MDVjY2NlMmY1NjRlMDUyZTY4NjhjMGJiNmUyNzQ2OTgyM2M3YTQgcmVsZWFzZTI1LW1haW50Cis1MjIzMSA2OTNmZjVkNzM0MTI1MWY5NjMxNmVkMTY1ZWI0ZWVmYzQ2ZDM1ZDg0IHJlbGVhc2UyNC1tYWludAorNTIyMzIgMGRjMjYxZDhjNTdmYTg0NTMxZjFkMjgzZTE5M2EwNGI0MTFmM2IyYSByZWxlYXNlMjQtbWFpbnQKKzUyMjMzIDgzOTY1OTc3ZjM0YTFhZTM5NDc1MDAyMGMzOTlkODgzNmQwN2RlZjQgbGVnYWN5LXRydW5rCis1MjIzNCA3Njg4OTRmMzNmMWMzNDdmNDQwNGRlOTVkYmYzYmVlMzYzMWFlY2UyIHJlbGVhc2UyNS1tYWludAorNTIyMzUgNzExN2Y2ZTVhYzgzOThkZTcxYmFmY2QyNTYzYzBiODMxZDYwZWU2OCByZWxlYXNlMjUtbWFpbnQKKzUyMjM2IDkxYmU5NjY0NjQwNzMyOGFhNzdmZDNjNDgwMmNiYzg4Yzk4MDBlNjEgbGVnYWN5LXRydW5rCis1MjIzNyAyMGRkMTNhZWUyMzM0OTEyMjkyMWFjYjIyZTdlMzQ0MmNiODQxYzY1IHJlbGVhc2UyNS1tYWludAorNTIyMzggYzMzOWExYTE2ZWM1YjY0MTU2ZDI2MGZjNjE5MGQzZDZkZjEzYmYzNiBsZWdhY3ktdHJ1bmsKKzUyMjM5IDQ3NTIyOGVkMjA1NGM3ODJjZTUyM2NkYTY2NDQ2OGM5NDUwNDMwM2MgcmVsZWFzZTI1LW1haW50Cis1MjI0MCAwYWNlM2M4MDYxMTQxMmRiODgwMWU3YTM0MDc4Y2IzNzkwYzY5MmE3IHJlbGVhc2UyNC1tYWludAorNTIyNDIgYWVlZTlmNWEwYjNlYzBlNWM1YjYyYmFkMzY0ZjgyODczYjBiMzNhNyBsZWdhY3ktdHJ1bmsKKzUyMjQzIGRlMmI2YTFjOWIzMTExMTU1MWM4NmUwZGI4YTgxYTcxNDBmZWQ2NGUgcmVsZWFzZTI1LW1haW50Cis1MjI0NCBhNjA0OTViMzZmMzhjYjJlYzRiNWIxMGI0ZThkNThiZjBlYjYxMmI1IHJlbGVhc2UyNC1tYWludAorNTIyNDUgYzM4NzdiNjQzMGI1ZDg5ZTJlMDliYzFhNGU4NzQ2MjExYjdmNjcxOSBsZWdhY3ktdHJ1bmsKKzUyMjQ2IGVkYTkzMWYzOThjMGQ1ZWZjYTBmNDhlZDI4YjdjMjRjNTdlMGMwYTcgcmVsZWFzZTI0LW1haW50Cis1MjI0NyBlZGUwNWQzNGM1MTgzZmUzMTZhNGViYzAwYzc0ODgwZjNkYTljM2MwIHJlbGVhc2UyNC1tYWludAorNTIyNDkgNGVlZmNlOGJjMmY3NDhhMzM3ZGE3ZmJjMDA3YmIyMjRhMTllMDhkNyByZWxlYXNlMjQtbWFpbnQKKzUyMjUxIDY2NWQ3Nzk4YTFiYzhhNjBiNjhiZGYzMmVlYTAzOTQyZWE0YzYzZWQgbGVnYWN5LXRydW5rCis1MjI1MiBiZjZhMDJhZGE0NDllNGEyYzk4MmU1MzYzNDYzODQ1ZTg4NjBhMGI3IHJlbGVhc2UyNS1tYWludAorNTIyNTMgMzgzNTY5NTFjMTlmOThhYTY0ZWU0NGU2N2MxNDVlYzc3MGIzMGNhNSByZWxlYXNlMjQtbWFpbnQKKzUyMjU0IDFlNGUwMTVjMDdjMDc0ZGU3ZGI0OTgwMzQ2ZDhkMTEyNTM5YjRhNjkgcmVsZWFzZTI1LW1haW50Cis1MjI1NSBmNDZiYWRjOGRjMjEzMzk4MmUzMjhlNDYwYzljMDgzYTIyNmEyYTIwIGxlZ2FjeS10cnVuaworNTIyNTYgZDMzZTQwMTFlMjAyOTQ3OWFhYTU3ZWNiMGJjMDlmZGU3N2M5Nzk4NCByZWxlYXNlMjQtbWFpbnQKKzUyMjU3IDI4ZGI2MTEwMTQ2MzZlZWExYzg4ZDBjZDNmYzJjZGIxNGM4ODQzMmQgbGVnYWN5LXRydW5rCis1MjI1OCA4Y2E5YTdiMTFhN2Q0MjYxYmEwYzJiOGU2YTNhYjA3ZDM2ZWEyM2U3IHJlbGVhc2UyNS1tYWludAorNTIyNTkgNTJiNjVmMjhiZTE3MTcyMDMxYzMzMDIzODU1MTM3ZThhNDhlYjVjNCByZWxlYXNlMjQtbWFpbnQKKzUyMjYwIGNlNTE1MDMyZmNlMzdhYTFiMGQ4NzY4ZDA3NzYyZDcxYjJlZTE1ZjAgcmVsZWFzZTI0LW1haW50Cis1MjI2NiAzMDkwOWUxY2FmNzljOGQ1NDQ2MmQ1ZDU5MzJhYTZhZmViYWY5MzE3IHJlbGVhc2UyNC1tYWludAorNTIyNjcgMGRhYzZkZTBmZTc4YWRmYmY5OGZkZWVhNDMxODBmZmU4ODM4YzZmNSByZWxlYXNlMjUtbWFpbnQKKzUyMjY4IDY2YjgzZDFiYTJmYzVmOTlmOTkyNTdhYTMzZjdkODA2M2M3ZjFlNDMgbGVnYWN5LXRydW5rCis1MjI2OSBiMmVkZDUxMjQxYWUyMjFhOTRjYjFkMTQ2NjZkMWY2ZjI5MzU3ZDE1IHJlbGVhc2UyNC1tYWludAorNTIyNzEgNTZiOTExZGNjMTg1YWM2MGZhZTliZTgzNGVkNTYzZWZiYmY4OWQwYiByZWxlYXNlMjQtbWFpbnQKKzUyMjcyIGY3ZmJkYzU2MmQ3YWRmNjg5N2EzZDY4YTdkMWI4YjQyM2IxODFmNDEgcmVsZWFzZTI0LW1haW50Cis1MjI3MyA1YmNhYjRjYTY2MDgwNDk3ZWJkN2NjY2M3N2Q5MmI4MGYyMzg3NTc1IHJlbGVhc2UyNC1tYWludAorNTIyNzQgOTg1MTI2ODczNzQwZGVmNTU3NzNiZGU1NDBjNmQyNjIzMWNjNDZhYyByZWxlYXNlMjQtbWFpbnQKKzUyMjc1IGExYzM4MWMwNWRkZWM0Njc3MDhlZjQ5ZDllZDJjMGRhOGRlZjU5N2QgcmVsZWFzZTI0LW1haW50Cis1MjI3NiBiYWFlZWE3MjJiMWM5N2NhMDMxNzllNWEwMmE0NzE3ZTcwMTdiYTJhIHJlbGVhc2UyNC1tYWludAorNTIyODIgYTA0NTRmMWY5N2M2Y2FiYjM2YzRmYWNjYzU4OTM4YzlkYmYwOTQ1YSByZWxlYXNlMjQtbWFpbnQKKzUyMjkzIGFjNjUwYWQ2YzgxN2JlMmE1NjY4N2FhMGM3OTNkMTFkOTM0MzgyNjkgbGVnYWN5LXRydW5rCis1MjI5NCA2OGI0ZDBkYWI0OWFkMWVlZDZiNjM4NmM4ZTYyMGRmNjk3MjhmMzQwIHJlbGVhc2UyNS1tYWludAorNTIyOTUgNzAxNDBjY2NkM2RhNzNiZGQ0MjYzOThjZmI1YTEwMDM4MTE4YjAzOCBsZWdhY3ktdHJ1bmsKKzUyMjk2IDY2NzBkZGE0YjI3ZDlmMmQxMjIwZWI0OTRlMmJkOGYxNmU4NGQwYzUgcmVsZWFzZTI1LW1haW50Cis1MjI5NyBkZWIxYTBiNWRiY2I4ZWFiN2Q4NDliZjIxNGQ1MTc2MTZiYWI0Y2UxIGxlZ2FjeS10cnVuaworNTIyOTggYzY4ZmFjMWViNmNiZTQ3OGI0YzY1ODM5MTZlNzFjNDE5MDkzZGJkNSByZWxlYXNlMjUtbWFpbnQKKzUyMjk5IGMwMjA4MTk1YTU1ODUwNzU2M2E4YmRmYzUzNzAyZDMzNDQwZDM3NDkgbGVnYWN5LXRydW5rCis1MjMwMCA3NjQwYTU3ODIyYTY3YWM2YWQ5NDE5MmNkZjRlN2IzNGU5ZjY3YzdmIHJlbGVhc2UyNS1tYWludAorNTIzMDEgNjQ3NTk4YzFhOWQ5MjQzYmM2ZmRiYTA2N2JlNDhhYTExNzMzMjQ2MiBsZWdhY3ktdHJ1bmsKKzUyMzAyIDZlNmMyMjBjMmZhNjIyYWMyNjhkZDRmODU3MTUyMzhiY2I1YzFmN2IgcmVsZWFzZTI1LW1haW50Cis1MjMwMyBkMjdlNzYzMjY4MTk4N2FlNTY5OWI1MWQ4N2MyNjA0YjI3MTQzODhkIGxlZ2FjeS10cnVuaworNTIzMDQgMTdmNDE3ODA5ZTIzOTgzYzAzZDY2NjJmYmNlNGM0OTZjY2IzZjc2MiByZWxlYXNlMjUtbWFpbnQKKzUyMzA1IDQxNTkzODZmOGRiZGZjMDU1NmQ2MzA3NmFlZjVlNmRhNDMxYTM3OWQgbGVnYWN5LXRydW5rCis1MjMwNiBhMGJmNzI4MWJkMjBiNjVhNTg0ZjRhNjI5OWNiZWNlMjU5NTZkODM0IHJlbGVhc2UyNS1tYWludAorNTIzMDcgMTBhYmZjYjY2ZTY3YmRlZmE3ZDdjNTcwOWQ5NTcwNjdmZTI0ZmUyNyBsZWdhY3ktdHJ1bmsKKzUyMzA4IGNkNWY3Y2QyMDk4ZWIzZjc0YWJlOGZiODRmZmE5MTBiMmYxMDZlYjYgcmVsZWFzZTI1LW1haW50Cis1MjMwOSBmNDQzMGJlYzMwMTNlMjhmOTExMTQ1ZGE1YWU2YzBkNjkxNzA4MWNkIGxlZ2FjeS10cnVuaworNTIzMTAgMWExYTU5ZjUwYjRhZTIyOGY5NjFjOWMyZGRmMzU2NWM5ZTc1MjEwMiByZWxlYXNlMjUtbWFpbnQKKzUyMzExIGEyNDgwMWRhOTJlZTBkNTJiNjEwMzBmYWQ3YTcwZTVlNmFmMWI4YjYgbGVnYWN5LXRydW5rCis1MjMxMiAxZThlOTAwZDlmNDlkMjdiNDBiMjViNjQzYTQzY2FiOTViOTY3YzliIHJlbGVhc2UyNS1tYWludAorNTIzMTMgN2ZhYmJjNGEwYzRlODZiNjY4MDNlODQ2MmQ3N2M0OTgxNzllNjFmOSBsZWdhY3ktdHJ1bmsKKzUyMzE0IDNjZmE4OGZiMGY0NTM5NzhjMGE2ZjIwYjAzYzI2NmY4Mjg0MzQxMmUgcmVsZWFzZTI1LW1haW50Cis1MjMxNSA2MzU0MzhiMjk2NzNmZDYxMWYyMjk5YmQ3Yzg2OWVmMjE0YmVkYjFmIGxlZ2FjeS10cnVuaworNTIzMTYgYzRjNGVlYzY0YzEzNjRiYzY4ODRhYzBiNTRhNmJmNzA4NjgzMTRlNiBsZWdhY3ktdHJ1bmsKKzUyMzE5IGM3N2Q5YTlmZTcwNDM2OTJmM2NjZTJjYWUxMjEyMTc5NGMxYWQ2OTkgdGhlbGxlcl9tb2R1bGVmaW5kZXIKKzUyMzIwIDhlNjg1YjIzODlkY2VlYWYzOTE0YTUxNDYwOTYxMzQ4NWI0YzZjZGIgdGhlbGxlcl9tb2R1bGVmaW5kZXIKKzUyMzI3IDM5Yjk5MWJhODc4Zjc5MDVjNjg0Mjg1NDUzMTY1ZGRmNmZlODFiZGQgbGVnYWN5LXRydW5rCis1MjMzMSAxMDlmOTBjMjY2ZmJjMjg3MzZjNDM1YTVkOTkwMzVlZjMwN2JhYmNhIGJjYW5ub24tb2JqY2FwCis1MjMzMiAzOTg1ZDdlMjA2N2RiNzVmMTcwZTA4OTE5OTRiMGZkNzA5NjNlNDBiIGxlZ2FjeS10cnVuaworNTIzMzMgYjYxYTkwZTc0N2U3YzkyOTAyNTI5ODNjNjU2YTQyNzJjNzlmN2YwNiBsZWdhY3ktdHJ1bmsKKzUyMzM0IDg0ZDNiNzJkYzMzOTJhNmQxMGRlY2Y5YmFjZTBiNWJiN2FjMTIxZjkgcmVsZWFzZTI1LW1haW50Cis1MjMzNSBiOTRiY2I3YWVkM2RkM2FhN2EwYzllN2EwMmRkODg4OWVmOGQyMDBlIGxlZ2FjeS10cnVuaworNTIzMzYgM2JjNGE5NDAxYTExNjE3YjU2NTc2MmZiZDAxMGZmNTMwMjhkNTVhYiBsZWdhY3ktdHJ1bmsKKzUyMzM3IGRhZTc0YTgwOTRkOTBhM2IwYzUyNjlmZTY2MWVhYTAwNWIyY2ZiYjggcmVsZWFzZTI1LW1haW50Cis1MjMzOCBiYjM1YzU1YmM0NjcwYmQwZGViMjk1NzZlMTljNmY4NWRkZjAyZjhkIGxlZ2FjeS10cnVuaworNTIzMzkgMGY1MDVlYzhiOTdhYTIxZTBmYWExNmQ0NDBmNDY5MGY3M2Q1MWUyNSBsZWdhY3ktdHJ1bmsKKzUyMzQwIDQ1ZWZlNDM1NmI2MWVkYTAzMDk2N2YxMTk5Nzg0YThmZjRjMDliOWMgcmVsZWFzZTI1LW1haW50Cis1MjM0MSBjMDA2ZDIyNzk0OGRlZWQ0OWRjODFlMTNiMDYzNTZhMmUwNjk4YzE4IGxlZ2FjeS10cnVuaworNTIzNDIgMDVjMGNkMjdhYmNhMDg2NjEzNDBjYTdjZTgwMzQzY2Y3YjliODYwMiBsZWdhY3ktdHJ1bmsKKzUyMzQzIGRlODhjMzYzZDYyMjM2Mjg2MzMyOGUyNmUyYmEzMmFkOGMyZDJhMjMgbGVnYWN5LXRydW5rCis1MjM0NCBhMjlkMTAwYzc4MTUzYzEwYTJhMjRhZTcwYmE4YTk1YWU4OTI2N2MxIGxlZ2FjeS10cnVuaworNTIzNDUgNTYxNWVhYzhhYTc5NzZmY2U2NjYyZDg4NDY2YzQzYWJmYzNjNDVlMiByZWxlYXNlMjUtbWFpbnQKKzUyMzQ2IDJhMWE1ZGMyNTVhZGM5MmI3MTE0ODY4MTU3NWExYWJjMWY0OTE2NjYgbGVnYWN5LXRydW5rCis1MjM0NyAxZTU1NWYwNDhlM2Q0YmJlMGI2MzBjOTQzMmM0MzY1ZWI2YjFlOTYyIHJlbGVhc2UyNS1tYWludAorNTIzNTQgZmE5NmJmZjkzYmNhZDAwYWQ3M2Q2OTI3NDhmODY4MzkwMzJlMWU1MCBsZWdhY3ktdHJ1bmsKKzUyMzU2IGJmOGRhZjRhNmU3MWExZWEyZTVkZTUxZmM2NDhkZjc1ZTVhYTg4NDEgbGVnYWN5LXRydW5rCis1MjM1NyA0NjljMmQ2YzgxNjViMjU2NzUzMzVhYTVlYTM5ZTg5MGMzOTcwYWFlIHJlbGVhc2UyNS1tYWludAorNTIzNTggODUwNTA4MzkxZDQ2YmRlNGUwMDE3MmE0OTQ5MWMxYWIyOTYwMGE4MyByZWxlYXNlMjQtbWFpbnQKKzUyMzU5IGUxY2IzMjY0NWY3N2UxZjk3ZWY5MTc3Y2MxMDExMWQ3MTgwZWE2MGUgcmVsZWFzZTI0LW1haW50Cis1MjM2MCA3YzdlYjE5MGIyNjYzMGZjNjJlNjRlODk1NTA5NTI2ZGI2YzNmMjU1IGxlZ2FjeS10cnVuaworNTIzNjEgYTY1MTFlODI5N2YwNDhjNTMyYTg3NDk1NmNlZGE1NWZmOTU4NmVjYSByZWxlYXNlMjUtbWFpbnQKKzUyMzYyIGZiNWRiMTJmMDI2NzYwMjE5YzhhYzYzNDQxNTJjNDYxNjlhNDUyMTMgcmVsZWFzZTI1LW1haW50Cis1MjM2MyAxNDUxM2RiMGQ2MmQ1MGZmMjJhMjM3NjFlMzNiOTM1ODc3ZmYyZWZhIGxlZ2FjeS10cnVuaworNTIzNjUgNTJmZTBlY2Y1NWMxYTE4MTA1ZmY1YzJkNzc5YTg3MWY3ZmNhZjU0OCBsZWdhY3ktdHJ1bmsKKzUyMzY3IDQwNTBmMjUzYTZmOGE1ZjAyNzkzODhjYjZlYTEwNzk5YjY3OWQzZDcgcmVsZWFzZTI1LW1haW50Cis1MjM3MiAzNDU1NTQyMmRjNDVmODhmNTI5M2ZiOWZiYTMxOWI1NTllODc2YWE5IGJjYW5ub24tb2JqY2FwCis1MjM3NyA0OThjZjRiMDlkOGFjMDNlNDVmM2EwZTI2YTczY2I5MTNmZTc2NzgwIGxlZ2FjeS10cnVuaworNTIzNzggNjYwOWYwMjA2NDlmMGQwY2Y2NTNlNjllOGExOTA2YTg2YTNjYTRkMyBsZWdhY3ktdHJ1bmsKKzUyMzc5IGExYTY3OTEwNTI4ODZjODkwYTBmMTE5YzUyNWMzZDI3MThmMjdjNGMgbGVnYWN5LXRydW5rCis1MjM4MCBiMWQ3MDhjMzNlYWI0MjkwMjYyZTk2ODUzY2ZiNDM0NWY5ZTA3MzBhIHJlbGVhc2UyNC1tYWludAorNTIzODEgZmIwYzZhNjdhOTM5ZThhMmVhMjc3OWY3OWUzMmMzYjc2ODljMzdlNCByZWxlYXNlMjUtbWFpbnQKKzUyMzgyIGVlNjZhMTVhOTAzMDIxY2EyNTA0YTMyMzI0ZDNkY2JjNDZlYThhOWIgcmVsZWFzZTI0LW1haW50Cis1MjM4MyA1OTJhYzkzNTMyZWZkZmE5YTQwZjQ3Yjk2YjFjMTIzMWQyZWFlMGU1IHJlbGVhc2UyNC1tYWludAorNTIzODQgMTA0MzRkMWI0MjY2MWI3MDAxODhjODJlZmMzNTA3MWY4MjRjYzFlNCByZWxlYXNlMjQtbWFpbnQKKzUyMzg3IDQxMGMxYzc4ZWQ1MWUxMmRjM2RlOTU3OTU5ZjZiNzk3MGMzNzk5NGEgbGVnYWN5LXRydW5rCis1MjM4OCBlMmRmMTM1NjM0OWYxNjhiYWViYjMzNWUyMWMxNTgzMzMwNDNkNGRmIGxlZ2FjeS10cnVuaworNTIzODkgMDUwOWFiMTRiMmQ5N2NlZWVmZTI1ZTk2NDMyZjRlMzczZWFhYjgyZSBsZWdhY3ktdHJ1bmsKKzUyMzkwIDE4YzEyZDM0MjE0MzgyZmFmOGM1ZmE1Y2IzYzYzNjQ5MDUzODQyYzYgbGVnYWN5LXRydW5rCis1MjM5MSAxOWRlMzE2NDkyZTczOGNlZWRlY2I4ZWM1ODA4NDc1MTM2ZGM2NmMwIHJlbGVhc2UyNS1tYWludAorNTIzOTQgM2I4NTMzMzQyOGY5ODZkZDZkOTFkNTdmMDdjZTUwNzIxYjAxODViNSByZWxlYXNlMjUtbWFpbnQKKzUyNDA1IDg2ZWE4OGM1MjA1YmY1MDQ1MWEzMjMwZjY3MzVkY2MyZjIzYzk2M2EgcmVsZWFzZTI1LW1haW50Cis1MjQxNCA4MjZlODY3NGExMWQ1ODk1N2ZiYWVhZGRlOGMwOTY0ZWVjMDdmMjMxIGxlZ2FjeS10cnVuaworNTI0MTUgYTBkOWZjZjZmMjE1M2Y1Mjk3YTE0YmUyZTE5N2RiOTVhMTcxOTg5ZCBsZWdhY3ktdHJ1bmsKKzUyNDE2IDM4NGVmODdmY2MyNTc5ZWE2ZDVlOWI3Nzg1MDJhMGM0ZmY4YzUxMjAgbGVnYWN5LXRydW5rCis1MjQxNyBjNTQ0MmI0MjRhODY5Mzg1ZTAzM2NlN2MyOGZlN2FhNjAyN2RmYTZjIHJlbGVhc2UyNS1tYWludAorNTI0MTggNTAzMGZiNGE0MDBmZWJiOWFjOGNkNDc5MmI4Njc2YjhlNTk4ZDk1NSBsZWdhY3ktdHJ1bmsKKzUyNDE5IGU5Yzg0NGM0ZDFhMWM5NTg3ZWZkNzZkOWUxMWI3YWQ3OTdhYWVmY2IgcmVsZWFzZTI1LW1haW50Cis1MjQyMCA3NDlkODU1ZWUzNTcxYWI3ZTU3YzJmNDkxOGQ1NTEwMjFjZmE2M2MxIGxlZ2FjeS10cnVuaworNTI0MjEgMTIzYzE0ZWQzMDhhMTUzODFkNDBiMDgzOWY1MzdkMDhlZWZlOGNiNiByZWxlYXNlMjUtbWFpbnQKKzUyNDIzIDRlY2YxNjYyNDQ5ODQ0ZTZlMGNkYzk5YjQ0ODE3Y2QzZDlkOTFjYjAgcmVsZWFzZTIzLW1haW50Cis1MjQyNCA4Y2QwYjcxMTNhNzFhMDU1MWUzODMwY2ZmZmZhNThhMDE4MTZhMDRmIHJlbGVhc2UyMy1tYWludAorNTI0MjUgYjIxNDI3ZmYyNjQ3NWY5YzdmNGE3MDFkYTMyNGU5NTFjMmIxNjJmZSByZWxlYXNlMjMtbWFpbnQKKzUyNDI2IGNkZDM0NzZkMWIwNmIzYjRlY2M4OWVkMzVkNWI0OGI2ZGZiNjAzYTYgcmVsZWFzZTIzLW1haW50Cis1MjQzMSBlODJlNjk2YzAzZGM4YWQ2MzZhNzMzMTc1MzMyZjI3YzVjN2M2N2I3IGxlZ2FjeS10cnVuaworNTI0MzIgMDUwMDQwY2JhMjZhNDVhODE5OThiZDc5NWEyYTZlMmQwMzM0ZjU2YSByZWxlYXNlMjUtbWFpbnQKKzUyNDQ2IDkxODY1OTgyOTZjYjA5ZTE1OTU1YTU3ZDE4OWEyNzFmOWQ3ZTg5ZWQgbGVnYWN5LXRydW5rCis1MjQ0NyA5NDczNjZlMTMxZmRhZTIwMTJkOGY5NmIyZDI5ZmY5NjFiNjI4Y2E1IHJlbGVhc2UyNS1tYWludAorNTI0NDggZDc4YTdhNjA1NjE5Mzk2OGU4ODU2Y2M4MjdkODNkMTEzOWY4ODRlNCByZWxlYXNlMjQtbWFpbnQKKzUyNDQ5IDE1ODZmYWIzYzg0OGI5NDQ3MjdlMWM0ZmRkOTdhZmIzOTYzYjY3ZTIgbGVnYWN5LXRydW5rCis1MjQ1MiAwYzFjYjkyZGFjOTdlZjM5ZTExNWY5YzU5Y2EzMzQ5MzllOGJjOGU4IGxlZ2FjeS10cnVuaworNTI0NTMgMGU4M2Y4YzVkNzBhZWMzNDczMWIwYjhlMWZjNWE3MGFjZmM2MjgyMiByZWxlYXNlMjUtbWFpbnQKKzUyNDU0IGMwZjU2ZjI0NjFmNTI5OGZiYzEzOTE0Zjc5ZWEzYzcxNDZmZjg3NjkgbGVnYWN5LXRydW5rCis1MjQ1NSA1ZGM0NzMxNjUwOGZiNGU4YmYyNmJkMDJmZGE1NWUwZWRhYTAxZTQ2IHJlbGVhc2UyNS1tYWludAorNTI0NTYgMDE1Zjg5YTczOTI5ZTRiYjNjZDJiNDdkZDAwMjFhMjJmMzU4NDRlYyBsZWdhY3ktdHJ1bmsKKzUyNDU3IDM0ZGNiYzc0NjI0M2U2N2MyMTZjYzljOWFhNDhhZWNiYjAwNjliMTggcmVsZWFzZTI1LW1haW50Cis1MjQ1OCBlNWNiNGNiNTY1NDFiOTdjYjAyN2VkYWEyZWJiNGRiYTM2YTczZTY0IGxlZ2FjeS10cnVuaworNTI0NTkgZDNkYmIzMjZmZmJhYzc5YTU3YzM5ZjZiNzVjYTk1NGU0ZjY0YjViMyBsZWdhY3ktdHJ1bmsKKzUyNDYwIGFkNGM5YmExZGI1N2ZkMWUwMmMwNGQ2Njk3OTFmYjk3ZTZiNWYzNTEgbGVnYWN5LXRydW5rCis1MjQ2MSA1YTEwNmI0YmNkZDI4ZjIzYWMzYmY5NDlmY2UxOTBlMDBhOTdlMTk2IGxlZ2FjeS10cnVuaworNTI0NjIgZTU3ODJlMmE0MTJiYTE4ZTMyYmI2OTZjNGNlOGIxMTUzNGNmMTc5YyBsZWdhY3ktdHJ1bmsKKzUyNDYzIDdhZjk0YTI3MjNlY2IxMzRmZmUwYjBkYmIwM2FlYTFhZTkyMzVmN2EgcmVsZWFzZTI1LW1haW50Cis1MjQ2NCAwZDUxNzZlMmJmZTRiNDRhOTFlNzRiMjM2MWQyZjM5MzM4NWMzMmEzIGxlZ2FjeS10cnVuaworNTI0NjUgZGRiMWRiNTY1NjA4OTNjNGI3YTU2MGU1OTAzNTVhOWU1Y2U2ZTEwYiByZWxlYXNlMjUtbWFpbnQKKzUyNDY2IGU4NjdiNTk1MDc5ZTkyN2U0ZjJjZWRmOWEwYmE0MmI1MTE3OTA1OWMgbGVnYWN5LXRydW5rCis1MjQ2NyBiNTZiNTYyZTNhN2I3YzgxZjEwZTE2OTZhZmFjZTE5ZDIwNTJmMmM2IHJlbGVhc2UyNS1tYWludAorNTI0NjggNzYyZGNhZDcyMGI1M2VhY2YxNGE3YzM3MDZmNzJlZTU5YzE1ZDBiZiByZWxlYXNlMjQtbWFpbnQKKzUyNDY5IGUyZTgwYTAxNjk0NTIyMDlhNmU0ZDIyYmM5Y2NhZDIwMDFlZDQ3YmIgbGVnYWN5LXRydW5rCis1MjQ3MCBjNWE2YWNlM2ZjN2ZkMjU0YjIzOGQ3YmMwYjRhMjI5OWM0MTJkMTk2IHJlbGVhc2UyNS1tYWludAorNTI0NzEgNThkYjk2OGQxNDQ4MmU3Yzk0NTViYjJiNzc2ZmYyZDZlMGQ3OTI1YSByZWxlYXNlMjQtbWFpbnQKKzUyNDcyIDZiOTFjMGRjZWE1OGE2NjZiNzkxMWNmOGRmMGM4N2MwZjc4NmQ0MGMgcmVsZWFzZTI0LW1haW50Cis1MjQ3MyA4ZjlhZDM1ODEzNmYwMzkxNDI5ZDQxYjVmYmFkMzY2YjYzMDBjMmI0IGxlZ2FjeS10cnVuaworNTI0NzQgMjljMDFlNjJjZTZiY2FlNjgxNjkwYzI2Y2QyYTUyZTNjYzE4MWNmZCByZWxlYXNlMjUtbWFpbnQKKzUyNDc1IDE5NTU1OWM1YmFjZGYwNmMyNjJmNjBkZmVmZjQxNzEzODdkOGFlNWEgcmVsZWFzZTI0LW1haW50Cis1MjQ3NiBlM2I5YzYzOTc3MjM0ODJjZDFhZWI5NjNkZDQzYmVmYmMyMDVlZmUyIGxlZ2FjeS10cnVuaworNTI0NzcgZjQ1YjJmMGM1NDJmYzNjMmI4YWVhNzVlOTY2ZTIyMGY1Zjk2MGNhNiByZWxlYXNlMjUtbWFpbnQKKzUyNDc4IDc3MGM3MThiYzk3ZTAyYTJiM2NiMjdlNGRiOWNkMzUwYWUxZGQ2M2EgbGVnYWN5LXRydW5rCis1MjQ3OSBiYjBkYjQ1ZjIwZWEyYmMzNzdmYjQ2ZWFiNTQ3NmRlMjVlMmYxZjIzIHJlbGVhc2UyNS1tYWludAorNTI0ODAgZmI5YTdiMjg4ZGNlMjk0MzU1NmUyNTU3M2QxMDdhMmE2YjA5MWNjNCBsZWdhY3ktdHJ1bmsKKzUyNDgxIDlkNjkxZDM3NTVkMGRlNGUxZWIxMjc0OWI5YzMxZjdkOWFmNjk3YWQgbGVnYWN5LXRydW5rCis1MjQ4MiBiOTExNjZlOGQzOGRiMGM3MWMzZWQzOWU2Y2Y5YzlhNDMzZTdmMzdhIHJlbGVhc2UyNS1tYWludAorNTI0ODMgOThlOTAwNDk5MDQzNDE1NDBjYjI5MDA0ZDlkM2U0OTk1NGRjYjZmYiBsZWdhY3ktdHJ1bmsKKzUyNDg0IDg2MjQ5MDlmNTAzMWY0MGQ5MjU1ZjdlNjc3ZjhkNzA5MTEyOWRmMTMgbGVnYWN5LXRydW5rCis1MjQ4NSA5ODhkOTVmZjFmZGI3MmFkMDU3YzgwN2Y4NzA2YTczOTBiNmYwYTFmIGxlZ2FjeS10cnVuaworNTI0ODYgMTg4NzFhMTBmZmMxZmE1NGZjYjIwOWY4MmE1OWYxNjVmMjIxODIxOCByZWxlYXNlMjUtbWFpbnQKKzUyNDg3IDQzYTgyNjQ2N2FkM2NlYWJmYjQxNDRhNzRhMDUyMDEzZTFiYzk1MGUgbGVnYWN5LXRydW5rCis1MjQ4OCA1ZDVmMTg0NDM2NjRkMTU3MjJkMmE3NmZkNDQ5MDEyZDRhOTE1ZTU5IGxlZ2FjeS10cnVuaworNTI0ODkgZGMxZTQzNjE3OTcyODIyZjI3ZDE3YmJjMjc3NzFhNWY0ZmFmNzdiZSByZWxlYXNlMjUtbWFpbnQKKzUyNDkwIGQwYmQ4YThhZmIwMTAzYzZjMTNjNTNjNWY1ZmI4MTk3YzRhMTA5MTQgcDN5aworNTI0OTEgMWNjZTA1MjZkOWIwYTUzZjRmZjk1NzEzZGRlMTUzZGM3MGRhZTJkYyBwM3lrCis1MjQ5MiAyMTkwOGM3MGQyNjRiY2Y5MzI3Mzg4MzljNDNmNGExM2Q2MGIzNzU2IGxlZ2FjeS10cnVuaworNTI0OTMgMTNiOGFkNjc5ZGVmYzc0MzRiMWJhMWM1ZTMzYTFmYjIzNDk4MDhmYyBsZWdhY3ktdHJ1bmsKKzUyNDk0IDUxMzM5ZDM5YTU5NmFmZjAyYWQxNWMzODg0NjdhYmQ3MWIzNjEwNTYgbGVnYWN5LXRydW5rCis1MjQ5NSA2OTcyOGE3ZDIzMTIzOWNlYzUxNTBlYjdiMTVkYmY2ZThjNzViNTEyIGxlZ2FjeS10cnVuaworNTI0OTYgN2QwYmRkNmUxYzQ2OGIyYjU2MWE2MzU1NDNiOGZlMmZhN2IzMTAxYyBsZWdhY3ktdHJ1bmsKKzUyNDk3IGMzODFmY2Y5ZDEwODFjNjU1ZDhjNjZlOTUyZjlmZmUyOTdmODkwZGMgbGVnYWN5LXRydW5rCis1MjQ5OCAyZDVhNWRlZGQ5NzU5NjgxZTllYjIzYjFiOTc1ZDQyODc5ZmY4MDFlIHJlbGVhc2UyNS1tYWludAorNTI1MDAgNGM1M2IyNDNjMzkyMmE0NTQzMTVjM2VlNTc2YzRmMjA3ZGVkZDEyOCBsZWdhY3ktdHJ1bmsKKzUyNTAxIGM1OGQxYjk2OTg0MzhlNmFjMGY4ZjRiZDAxNGJlMDVhNmE5NGUyNzYgbGVnYWN5LXRydW5rCis1MjUwMiA3OTYzMDRlZmEyNjhjMDVkMmUzZTk3Zjg4YzYyMDhkZDU3NmZjMzMxIGxlZ2FjeS10cnVuaworNTI1MDMgNjFlNGI1OWFkYTBjMjllZjkyNGQxMWE4NjJmMGVmNTYyMzMzYjExNCBsZWdhY3ktdHJ1bmsKKzUyNTA0IDM2MDg2MDVhNzRkNThlNTZlYThhMmE5ZTNiMTU4MmI1Nzg3N2NhYTcgbGVnYWN5LXRydW5rCis1MjUwNSBjNGU1ZTUzYmE3M2YzNThiOTg5NDAxY2YzNDczYmQ0MTZlZWYwNDc1IGxlZ2FjeS10cnVuaworNTI1MDYgMzIxYzA3NWY5NWNmZGFjN2QxZTE4YmIwNTFhZTM4MGZkYmJmMjI1YiBsZWdhY3ktdHJ1bmsKKzUyNTA3IGExODYzODMzYzRlNmY3MGFjODkyODY5OTY1OTgyMDdlNzljZDFmN2IgcmVsZWFzZTI1LW1haW50Cis1MjUwOCA0YzYxZjQwMGNlMzBkMGNiOWY4NTZjMGI4ZjE0MzRlOGVmZmFkNTE0IHJlbGVhc2UyNS1tYWludAorNTI1MDkgMzgwYTM1ZDc4YzYwODk2Yjg2OWYyNzBlOTBjZDE5MWQxYTBjNTRhOCByZWxlYXNlMjUtbWFpbnQKKzUyNTEwIDlhY2MxNzc1ZDU3MTRiYmZlMjE5MDNiMTRlZjU2ZmUyZTMzYzFhMzUgcmVsZWFzZTI1LW1haW50Cis1MjUxMSA2YTY0NjllMjk0ZTcyZmNhYmM5YTQwYTM1OGVhY2EwODdmMTVhZGE0IHJlbGVhc2UyNS1tYWludAorNTI1MTIgZDAyMGUyZjcwOGJlODI5ZjM1OTdjNDFlODg2MmMyOTRjMTkwM2Y4YyByZWxlYXNlMjUtbWFpbnQKKzUyNTEzIGRlMjYxZjc2M2I0Y2MwNDk1OTA0N2ZjYWU0YjlmNjAyZjU2MzFmYmIgbGVnYWN5LXRydW5rCis1MjUxNCA0ODFiYmE0MWY5ZjQ1MGUyNjVmMWE5MTcyYTBiNDZiNmQ0NDljMjM2IGxlZ2FjeS10cnVuaworNTI1MTUgZDIxZGQ4Y2JjNzE2MTY3YTA0MTZjODczNjk0YjM2NTJjY2M5ZGZlMiByZWxlYXNlMjUtbWFpbnQKKzUyNTE3IDdjNDA1ODY4MTIyNDk1NWRlNmFlYTJmYWJhNGExYWFmMjMzYzE5ZTQgbGVnYWN5LXRydW5rCis1MjUxOCBkMjQ1ZWZjN2VjODkwMDQ4YWVjNzFiZWM5Y2NmMTQyMTRkODNlYTVlIHJlbGVhc2UyNS1tYWludAorNTI1MTkgNmE4NjBjODFhYjdkMDgzOTgyNzhjN2NhNmQ2OTYzYmU0MzZkMWVjOSBsZWdhY3ktdHJ1bmsKKzUyNTIwIDRkODMzZmNhMzY3MDJjYmVhYzQ3MzYxNjAyMzQ4OGQ5MDdkMWU4NjQgbGVnYWN5LXRydW5rCis1MjUyMSAyYTFlYWU2YzBlYjg2MmE1YTg0ZGJlNTAwYjIwYmRjNTJhODRjMTdkIGxlZ2FjeS10cnVuaworNTI1MjIgYTcyZDk3MGMzODRiZDEzNTk0YzU2MzE1YjhhNWUyYWIzZWFlYTQ3OSBsZWdhY3ktdHJ1bmsKKzUyNTIzIDNkM2YxMjdkM2UwYzc5YmU4M2ZiNTBiMmNmZjM1MGY3MzBmZTBmN2MgcmVsZWFzZTI1LW1haW50Cis1MjUyNCBmZDhhNWY5MjVkNGQ1MTM5Y2UyNjIzNzIxMTNiZmRmMTMyMjVhNjkzIGxlZ2FjeS10cnVuaworNTI1MjUgZWQyMmNhOGY3OGZmMDNhNTMwYjBiZmQ1MDYzM2ZkYTRkYTkwZWRjZCByZWxlYXNlMjUtbWFpbnQKKzUyNTI2IGM3ZDc3OGRhMTYyYzkyMGZhYWVjMmIzZTEzZmI4OWVhMzU1MTMxMWIgbGVnYWN5LXRydW5rCis1MjUyNyA5NjYzMTAwYzk1Y2EyZDI2MTIxNzE1NGY3NDM2NGEwZTdjNzAxYWVhIGxlZ2FjeS10cnVuaworNTI1MjggN2M0NDE0NDcxNGY2OGY5MmE3YWI3NDIzM2Q0NDUxZjY5OWM0YjhkNSByZWxlYXNlMjUtbWFpbnQKKzUyNTI5IGUxNjgwMGFjMWVlYTE0MWYwZDIzZTQzYzMyMDNkNTMwNDBhZDgwOWMgbGVnYWN5LXRydW5rCis1MjUzMCA4MjY5NWU3MzY4MjNmMDI4NDZlY2VjMDUwN2NhMTg0MTE4OTJjN2I2IHJlbGVhc2UyNS1tYWludAorNTI1MzEgZjQ5Y2I2MDkwNDI4NzNiNjVkZjhlYjM1NzIxYzdjMzI0YWY4YTlmNiByZWxlYXNlMjUtbWFpbnQKKzUyNTMyIGRhNzljNGU5YTViYmZiNTc0YTJjZjAyZGM3MTAxZGJhMzg5MDMzMTEgbGVnYWN5LXRydW5rCis1MjUzMyA5MzY2N2E3ODViODM0NjYwZjNlNWVlMmQ1MGJlM2IxMjViNWJmODc2IHJlbGVhc2UyNS1tYWludAorNTI1MzQgYzY3NzRlYjNhMDY3MzY1ZmM5ODk2NDI0N2NjOThiOGMyZjk5MjY5NiBsZWdhY3ktdHJ1bmsKKzUyNTM1IDlhYjdhNzczNmNhMDVkMzUyYmE5OThkMjVlYjM0OWJjMGZhZTViN2YgbGVnYWN5LXRydW5rCis1MjUzNiBiZjc4YmU2M2YyMGQ1NmJlNGU4MDNiNzJjODQxMDA0ZmMzMmFkN2U1IHJlbGVhc2UyNS1tYWludAorNTI1MzcgZDlhOGQ0ZjFkNjUxNGM3ZmU5NDczNzY1MzFiMDc2YWM0MjJiYWRlZSBsZWdhY3ktdHJ1bmsKKzUyNTM4IGY1NmIyNTE2ODE0MmM5NDU0ZGQwODllOTc3NTljOGQwODE3N2E0MzQgbGVnYWN5LXRydW5rCis1MjUzOSA3Y2U4NzJiZjAwYTNmOWRhMTRjMDVkNTQ2YTE1NTc4MmZjODEyNGNiIGxlZ2FjeS10cnVuaworNTI1NDAgNDE0ZWMyNjJkNjA4ZTRkYWExY2QzOGQ1NDBjZGYxMDExNzFhOWYxYyBsZWdhY3ktdHJ1bmsKKzUyNTQxIDhkNmQzMTViMmFmM2I5NWZhYTY1ZDAyNjU3M2UzZDZjM2NhYmE1YmIgbGVnYWN5LXRydW5rCis1MjU0MiBjYTNkMWQzYzRkOGMyY2YzMmY0YTc3NzgxMTMzNzQyYjg2ZjNjZGVkIGxlZ2FjeS10cnVuaworNTI1NDMgYzM3MDdkYTgwYWVmMzllOTQ3YjhmZGIxZmQ5YjJmMDMzMDVhNjMxYSBsZWdhY3ktdHJ1bmsKKzUyNTQ0IDEwMDczMjhmOWRiNTE0ZWVjZDFiOTFlZjZiOGFhZmFlM2M0MWNkZGYgbGVnYWN5LXRydW5rCis1MjU0NSA3NTUwNjgxMGNiYmY0Y2MwNWFjZWM3OGZiZmU2MWIxYjliNTg1ZWQ4IGxlZ2FjeS10cnVuaworNTI1NDYgZmZjYzY5NmUxZGEzYzI0MjhjNmRlMTYwMDE0M2ZlZGM4NDM0MDYxOSBsZWdhY3ktdHJ1bmsKKzUyNTQ3IDBkMGFlODRkZDFiN2FlYWViODEwZjYwZGNmOTMxNGYxMTkwZjBjMDIgbGVnYWN5LXRydW5rCis1MjU0OCAxNzE1ZTZhMGFlZTlhZDBmZDc5ZmYwMTM0M2JmODE2ODkxODRkOTM2IGxlZ2FjeS10cnVuaworNTI1NDkgYzVhMmY0MzFjNjk4ZWYzMGY0OGZjMWZlNjQ5Y2U3YjRiZjZiOTU5OCBsZWdhY3ktdHJ1bmsKKzUyNTUwIGE4YTZlMmI4NGJiYWY2OGQ0N2I5MDU2YmI5NGI5YWQ3NTFlZWViMjIgbGVnYWN5LXRydW5rCis1MjU1MSBiODg1MGFlYzA0NjZmZmVkMzgyYzVmZWJmZjYxYmFkNDIzM2NjMTcyIHJlbGVhc2UyNS1tYWludAorNTI1NTIgYmM4ZmZjM2UzY2RiNGU5Y2Y1OWJiZDZkZmNhNTMwMTMxMjIzOWU4NiBsZWdhY3ktdHJ1bmsKKzUyNTU1IGI4MjA0MDY4NTJhMGE5Y2QwYmU0ZDkyYjNkYmY2M2U0ZTQzNGM4NjIgbGVnYWN5LXRydW5rCis1MjU1NiAzMzg0MGM0MDcyYjc0NzQyMWZkNzQ5MDc4ZjNlZjc5MDk1ZWI3MzNjIGxlZ2FjeS10cnVuaworNTI1NzIgMWFiY2ZlZmVhM2VlYTY5NzMxODJmMzFkMzZhOGI5NWZjN2JlNDhmNSByZWxlYXNlMjMtbWFpbnQKKzUyNTczIDNiNmZiNTQzOWMxMDYxYTk0MTQwMTI0NTA3NmMzMTViZWFmY2M3ODcgcmVsZWFzZTIzLW1haW50Cis1MjU3NCBiNjc1NTNjMTRmYmNhZTFlMjA0Yjc1NmRjNGNjOTJlMWQ0YWRjN2M0IHJlbGVhc2UyMy1tYWludAorNTI1ODggYTNiZTQwYzA3MjUwMzAzN2I2ZWZmZjVhMzFlZThmMTBiMzZkZTQyNCBsZWdhY3ktdHJ1bmsKKzUyNTg5IDg3MWIwNWQyNTJiZTBhYTExZGFmZTE4NzU0YWQxOGJjYjI2YjBkNjcgcmVsZWFzZTI1LW1haW50Cis1MjU5MiBhZTQxMWZlMWVlYzAxYjJhMjUyNzEyYjI0MTA5MWQzMThiNzQ5YmE5IGxlZ2FjeS10cnVuaworNTI1OTMgM2U0ZTBiZTQwZjUyMDkzODU3NmU3Njc2ZmYwNDU3ODMwYjY2YjM1MiByZWxlYXNlMjUtbWFpbnQKKzUyNTk4IGZmNjc4NjY5YWE2ZTEzMWVjZDJhZTg3ZjAyMzExNDhlZDBlNWE0NzUgbGVnYWN5LXRydW5rCis1MjYxOSA1MzBkN2ViMGM2YzQ4ZjFkNTBhZDU0NDBlNWRhMGUzNWU4MDg0MGFjIGxlZ2FjeS10cnVuaworNTI2MjAgNmRmNGE5MTQzZGRmODgwNGVlOTU4ZTM2N2Q1MzU3ZDQxN2I5N2QyNyByZWxlYXNlMjUtbWFpbnQKKzUyNjIxIGViYWYzNDdkNDJmYjE0ZDczYjg5YmI5ZDJhYTA3MTkxZmM3MmRjMjYgbGVnYWN5LXRydW5rCis1MjYyMiAwMDNkODNkYTk5MzI2MjUwMmIxODg3YzBiNzNlYjM2OGY4NGVkYTVkIHJlbGVhc2UyNS1tYWludAorNTI2MzAgMWYwNTVmY2I2Y2E2NjBiZDdhM2QwZDk4N2JjMTA1ODExNWM3ZGE1ZSBsZWdhY3ktdHJ1bmsKKzUyNjMxIGQ3ODVjMjlmNTM0MDM1YmUzMDJiMGJkMjU2MjM1ZjQ5MDk2ZTMwNmIgbGVnYWN5LXRydW5rCis1MjYzMiAxYTBmNDY4ODNlYTVmMGYxMjEyMTNmMzIzYzU1OGY2YjM3YjU5YjY1IHJlbGVhc2UyNS1tYWludAorNTI2NDQgY2JlMTMzZDcyZTM5NzJkNzFkMjNmZjBhNWU3YjQ4NTdhMGM1NWYzYyBsZWdhY3ktdHJ1bmsKKzUyNjQ1IDU1MzFmNDYyMzJiN2FmNGJhNDU1ZDhhN2FmNjQwMmY1ZTllNjQwNjAgcmVsZWFzZTI1LW1haW50Cis1MjY0NiAyNDQ5OGQ0MzEyNmNiODlkNzJlZjdkMzI2NzI1NWM5NWRkNzc2ZGJlIHJlbGVhc2UyNC1tYWludAorNTI2NDcgZWQyYWM4MDg0ZTA0ODUwZDVjMDE3YmUyNmU3MjE4ZjZhNmNlZjY5OSBsZWdhY3ktdHJ1bmsKKzUyNjUxIDFkZTVlNzM5ZjlmZjU5M2RlOTBhMjNlNjUxMzkzZTg4MWRkOTQxZTUgbGVnYWN5LXRydW5rCis1MjY1MyAzY2MyZWFmMGU1ODE0OTlkYmZmYjAzOTQ3YjliYmUwNmVlNzdiYmRlIGxlZ2FjeS10cnVuaworNTI2NTQgZjg4NjI5OTgyNzBmYmZiYTA4MDZlODgxOTZlODQzM2Q3Y2U5M2RmZiByZWxlYXNlMjUtbWFpbnQKKzUyNjU3IDk2MzNmNTM4Yzk4ZGE2ZWY1ZGMzNDhmMzNmMGNjMDZlMTgzNjY2ZmEgbGVnYWN5LXRydW5rCis1MjY1OCA4ZDY4YjIyNGE4ZjA1OGUzMTM2NGViZDEyZWY5ZmQ1N2E5ZTI5MTY5IHJlbGVhc2UyNS1tYWludAorNTI2NjIgNjFjZDhjODdjZmUyYzM3ZTRkMzU3N2NhZWY1N2MxYjBmMjkyNGVjOCBsZWdhY3ktdHJ1bmsKKzUyNjYzIDc4Yzc1YjNkM2QwYmIxNDIwMTZmNGE0NjQ5Njg1Y2NhNzhhOWNhN2YgcmVsZWFzZTI1LW1haW50Cis1MjY2NCBmYTkwMjlhNDFjZThhYjA5YzgzOTg4Y2RkZjkwZmE4ZGQyMWY2YWIyIGxlZ2FjeS10cnVuaworNTI2NjUgYmQxNjIzZDA0YmZjNDRlMTc5MTgyMGYxZWQ1NTI0ZjBkNGIxODZkNCBsZWdhY3ktdHJ1bmsKKzUyNjY2IDRmOGViYWNlYzVmMDUzNjI4YzhmMjRkMTgyNzIyNzc3M2MwOGY5ZTEgbGVnYWN5LXRydW5rCis1MjY2NyAwMmMzNjZiMmFhYzJjYWM2NWYzMDdmZGVmOGNlYTY4YWYzNTMxZjEzIHJlbGVhc2UyNS1tYWludAorNTI2NjggMGRlYTM3YmNiZWZmNGMwMGQyMWM3Y2MwMDMzZDU3MzIzMDA3OTkzMyBsZWdhY3ktdHJ1bmsKKzUyNjY5IDdiODUxMjA2ZDI0Y2UzNGMzNDk5ZWRlM2MyZjM1ZWUyODMxZTEzOGMgcmVsZWFzZTI1LW1haW50Cis1MjY3MSA3MGM3NTZhYTkyNzNjMjA4NjM3MWM5NTZmNzg0YTcwOTczMGVhMWM2IGxlZ2FjeS10cnVuaworNTI2NzIgMzU3Yzk5NTM3ZTg1MmRkMzM5YTJkYjA2MTlmMTlkMTU1ODRmOWRlZSBsZWdhY3ktdHJ1bmsKKzUyNjczIDU3Njc0MjEyYzM3Y2YyYzk1NjBlNmYyNGVkNWI1ODE4YmE2ODMwMzIgbGVnYWN5LXRydW5rCis1MjY3NCAyNGE1ZGM3Nzc5MzE2NjQ2ZTBkMjBiZjMxMjY1NmE3YjkyYjE5NWE0IGxlZ2FjeS10cnVuaworNTI2ODYgNTI2Yzk1ODRmMjUyNzg2NzI2NzZkMDc4NzU3NTc2NmY2MmU1ZTJjZiBsZWdhY3ktdHJ1bmsKKzUyNjg3IDAyNWIyNGEyNjEzMTRkMTBlYTFkZWViZTY1NmJhMGI3YWIzYzMzYTAgcmVsZWFzZTI1LW1haW50Cis1MjY4OCAwN2IyOWJjZmMwMTM1MjM2OTExZDMxNTcwNGJiNWJlMjE4NzMwNTI4IGxlZ2FjeS10cnVuaworNTI2OTAgNmQ5OTc2MmNkODE4ODFkN2RjYjQzZWU4N2VlYmUyMjlmMDc2ZTczNiBsZWdhY3ktdHJ1bmsKKzUyNjkxIDZjMDY3NzI3M2M1YWJiM2I1OGJlYzZkNTAxOTkyMzhjOGU1OGE5YTQgcmVsZWFzZTI1LW1haW50Cis1MjY5MiBhZDc5NmZlNDcyY2FlZmU0NzE4ZmRlZTVhMWZjY2NlODIwNjE4NzE1IGxlZ2FjeS10cnVuaworNTI2OTUgNzA1OWRmN2MxNWRmODIzMTZjMTg5ZDlhMzU2Nzk2OTQwZTYwYjdlZiBsZWdhY3ktdHJ1bmsKKzUyNjk2IGMzMGM1ODRjYzZhYTQ5NmIxYTk5NWUxMTg2ZGMyZThiYzVkZTQ0ZTcgcmVsZWFzZTI1LW1haW50Cis1MjcxMiA1NjFmZmE3NTdkZmI1YTRjMjI2MWFiNjUzZWEwMDA2ZGRjYjNhNDM5IGxlZ2FjeS10cnVuaworNTI3MTYgNTRmNjIyZGQzYjI2NjY0YTUyYTllMTI2MTIyYmJkYWI0NWM5MTc2YyBsZWdhY3ktdHJ1bmsKKzUyNzE4IDczMjQyNWUzYjkyNzRiNzNmNWY3N2UxZmU2NWUwNDNkY2MzMDM3NmQgcmVsZWFzZTI1LW1haW50Cis1MjcxOSBkNzVjYmUyYjk2MDE5YzkyMDkxYmJjMzc4NTFiZjdjZTgzN2UxNmZjIGxlZ2FjeS10cnVuaworNTI3MjAgMGU1ZjJkMDU0OGViNmM5NjZhNzIxNjhlZjA4OWUxMmUzOGU0NDg5NyByZWxlYXNlMjUtbWFpbnQKKzUyNzI1IDZmMjk3MDkyMmM0NGNkODRmY2M2MGM4NzRlM2I4OGQ2NjYyNDRlNjcgbGVnYWN5LXRydW5rCis1MjcyNiA2MTZhMjA4ZjRiODA1MTQwMWM4YWM0Y2I3MDZjYjE3MjMyZmIxYjczIHJlbGVhc2UyNS1tYWludAorNTI3MjcgMTBhOTc3NGJiM2UzNDdlMGVlN2QwZGRhNjkzZGVjY2M5N2I2OGI3OSByZWxlYXNlMjUtbWFpbnQKKzUyNzMxIDQ0NjBlYzI0ZGFjOTBmOWM5YWI2OWQwZDJkMGNmMmUwZTcwNWMwOWMgbGVnYWN5LXRydW5rCis1MjczMiAzNWNmMTMzYWM3ZjhmMDEzYWE4MWE3OWFhNzIzZWE4N2VkNDQ5NmY4IHJlbGVhc2UyNS1tYWludAorNTI3MzMgMmNmMThmMTI3NjYzYzc4MTYwMmU0OTQ4ZmI1M2IwNjQ0NWQ1NDI0ZCBsZWdhY3ktdHJ1bmsKKzUyNzM0IDYzMzgxMmU4Y2ExYjZhOWE1YWQyZjVlYzA0NmI0MTkxMDkzNDNmOGYgcmVsZWFzZTI1LW1haW50Cis1MjczNiA5MGQzNTU4MjliYmI3ODY4ODU4OTNlMWMwZWEwNjVjYzM5OGJmNzBlIGxlZ2FjeS10cnVuaworNTI3MzcgOWY3ZmM2OGEyMGFlZGRjZWU2YjljZTk1ZWUwNjc2ZTZkNDRjY2I3OCBsZWdhY3ktdHJ1bmsKKzUyNzM4IGJmNGQyMDQ3NmE4NjE0ZTlhMWJkYjM4ZTM1YTFlY2MyYTU5OWQ0NjggbGVnYWN5LXRydW5rCis1MjczOSBlY2JlOTFiNWU0NmE1MzVhODUzNTE5ODFkZDFjZDdlNDBiZGJhOTRlIGxlZ2FjeS10cnVuaworNTI3NDAgNTkxZGFhNTM2MmIyZDQ4YTI3MjEzNWRkZWVhMTUxZjU1OTNmYTk0OSByZWxlYXNlMjUtbWFpbnQKKzUyNzQxIGQ0OWUwZGU0MDE5ZDFmNTVlMDFjYzIwN2M4ZTE4ZWY2OWI5MDg1OTAgbGVnYWN5LXRydW5rCis1Mjc0MiBlZmYxMWU0MzVmNDEwM2E2ZTc1MTcxM2ZjZTY0YmYzYjY2NTYzN2E2IHJlbGVhc2UyNS1tYWludAorNTI3NTMgN2UwY2Y2ZTM2NTBjOGU5M2M0MTVjZTNhZmE4ODZiZTM0YmVkNDJjYyBsZWdhY3ktdHJ1bmsKKzUyNzU0IGY5MWI2ZDg1Y2FiNTYyMmNhNGViMTAyZGUwZWFiNmU2Zjg2ZWY0MTEgbGVnYWN5LXRydW5rCis1Mjc1NSBhMWMwYjUxNGNiNTM5YTA3ODM2OTUzODk2NjlmYzhkMjVhMzU2OGU2IHJlbGVhc2UyNS1tYWludAorNTI3NjIgYjgwYTM2ODg1M2M3NWE3NjBhNjYxOWY4ZjRlMDdiYzVmNjQxMWNmNSBsZWdhY3ktdHJ1bmsKKzUyNzYzIDhhMzY1ZmRjZGM0OGRjZWU1OTY4OWRiMjBkZTVjYjE1OTk3MTYxMjkgcmVsZWFzZTI1LW1haW50Cis1Mjc2NCBiYTU2M2FiN2E1N2FlMmQ4N2Y2ZWRhZDk3ZjA3ZGFkMWVhNTNiYjViIGxlZ2FjeS10cnVuaworNTI3NjUgMjUxNWVjNGI1YjMzNjU2NTFjNThiZjYxODg5MTYxNWE3OGNlOTU0YSBsZWdhY3ktdHJ1bmsKKzUyNzY2IGUyNmM1MTc4MDczNzUxY2JjNGMxYjI2ZDBlN2NkNDFlMzU4ZmZiMTcgcmVsZWFzZTI1LW1haW50Cis1Mjc3NiA3Y2VlOTQzNDk4MWEyYWE4ZmJlN2Q1MjRiMGU0NGZlNjNhNTdiNTZkIGxlZ2FjeS10cnVuaworNTI3NzggNGM2MmM4MjkwZDRmNTgyZjRhNGQzMjFjMDNkNTVkZjViNTRlNWI4ZiByZWxlYXNlMjUtbWFpbnQKKzUyNzgwIDg5ZjJlOGRhMGYwZjllZGQ2MWM4ZjUzNzliMzRjNzIzYThmYzc2ZTYgbGVnYWN5LXRydW5rCis1Mjc4MSBjMWFjOGJkZTVlMTc2ZDM0YThlMmJkZjlhM2JlOTlmYWJhYWMwN2Q2IHJlbGVhc2UyNS1tYWludAorNTI3ODIgNWMwOGRjYjdkMjgwOWY0NGNkNDNiNGJjZTMwYjExMzViMjJlNmM3YSBsZWdhY3ktdHJ1bmsKKzUyNzgzIDc4YzBlNzJmMTZkM2QwNzdmOTIyZTgwMTMzYTQ4OGMwZTI0MzFkY2IgcmVsZWFzZTI1LW1haW50Cis1Mjc4NCAzMjBkZmRlZTg5Njg5N2M1YzcyYzQ3YzM4ZDBiMTYwNDRlMWYyYWRhIGxlZ2FjeS10cnVuaworNTI3ODUgYTA0MDZlOTMzYTgxNzM3ZGI1YWQ2ZjhmODYyZmM0NGUwODIyODE2NyByZWxlYXNlMjUtbWFpbnQKKzUyNzg2IDVmYTVlZjU1OWEyZjEzYjhmM2EzNjZmZjQ4ODIyZmNiMTEzMTJhNTMgbGVnYWN5LXRydW5rCis1Mjc4NyBiODcxZTdiZDgzNTViMjkyMmRjOWI3MjM4MDBlODYzMWVjMWE1NDFjIGxlZ2FjeS10cnVuaworNTI3ODggMGZkYzJiODIxMWY5MmU1NjYxOWU2ZWJlMTdlMzg5ZWY1YTgxOTM0NSBsZWdhY3ktdHJ1bmsKKzUyNzg5IGJlMmY1YjJkNTNiM2JkMjYxYzY5MTczMmQyOGQwN2U5YWJhMGM4MGQgbGVnYWN5LXRydW5rCis1Mjc5MCA0MDE2NmU1MDExZjgxOTBhOGI5MDA3MThhZWZkYjUxOGM5NDZlZWEwIGxlZ2FjeS10cnVuaworNTI3OTEgOWZkMTM1NGRhNmRiNmIyYmU4NmI0N2ExOTU5YTUyODg2YzViYzViOSByZWxlYXNlMjItbWFpbnQKKzUyNzkyIDI3MTEzMzk4MWU2M2UxYmM3OGY4OWU3NzAxM2QxMDBhN2M3OTkxMmMgbGVnYWN5LXRydW5rCis1Mjc5NCA2NGUwYWM4Mzk2YTNkNmVlMjNlMGYzNTRlMDQ1Mjg4NTkwMmVjMjdkIGxlZ2FjeS10cnVuaworNTI3OTUgNjA2ZTFmMGU4N2JkYWQ2Y2QyNDM1OTVlMWJjYjE0MDg0MzZmYTM4MCBsZWdhY3ktdHJ1bmsKKzUyNzk2IDQyZWFlZDhkMmI0NTQyYWZmY2VmMDEwMzViN2EwMzk1Mjk5ODE2NzIgcmVsZWFzZTI1LW1haW50Cis1Mjc5NyBmM2E2MzE4NTc1NDQ3NWNkNTViMDg1NjliMThhZDU2ZTNmZmZlMjFkIHJlbGVhc2UyNC1tYWludAorNTI3OTggZDdhYzNiOGYyMTM5MjE5ZWY4ZDI2Njc3N2RhYjVmMThiZDQ2NWMzMyByZWxlYXNlMjMtbWFpbnQKKzUyNzk5IDhmZGE1Yzg2Y2MxNmNlYTg5MzExNGM1Y2YwNTdhZjg1NmFiMTg5N2QgcmVsZWFzZTIyLW1haW50Cis1MjgwMCBjZjBlNjg1NjI2MDRkOWEyYTM2NjNiZDMwZjJkM2NhMjczMzdlOTc4IGxlZ2FjeS10cnVuaworNTI4MDEgY2U0Y2NmODdmNTZlNDYzOTRlYmYwZjMzMjljZTY1ZTE0NzIzNzE1NCByZWxlYXNlMjUtbWFpbnQKKzUyODAyIGM3YThjYjA5NWM0ODUxZjgxOTBkZGMxNzQ3YjA1ZGMxZjk3Y2VkOTIgcmVsZWFzZTI0LW1haW50Cis1MjgwMyA5NWFlNzQxZTI4N2JhZjdiNzA5MWJhNWU2MWMyYmYwMGIyYTY1OWU3IHJlbGVhc2UyMy1tYWludAorNTI4MTEgOTljYjM4MzUxZmZjNDBiYmMzMDFmN2MzY2YxM2M1NWRiZWJkMzI2YiBsZWdhY3ktdHJ1bmsKKzUyODEyIGFiMTg4NWYzNDQzYTdkYWIzYThlNDk0ZGZiNGY4MTdhYmJlOWQ2YTcgcmVsZWFzZTI1LW1haW50Cis1MjgxMyBhMjdlZGUyY2E2MDY4YTUxNjhiNTYyZGM0ZjliNjVjMDdmMWNiMmUyIHJlbGVhc2UyNS1tYWludAorNTI4MTQgNjFiMDY5Yjg0ZDBhZmNjNTEwZDI1NzYyY2U2MzJkYzQzMTg4MzE3YyBsZWdhY3ktdHJ1bmsKKzUyODE1IGIwYzA4ZWYxYzMwMzA5MDdhNjZkODdiN2NkYmUyZTNjMDIzMGNiY2YgbGVnYWN5LXRydW5rCis1MjgxNiA2ZTFiOTAwN2JiZGM2MDQ4YjgyNGU2ZGM5YjIxNzdlZmViNTg0YTFlIHJlbGVhc2UyNS1tYWludAorNTI4MTcgZDE4M2Q4MTI0ODAzZDAyNzJlNWNkZGU0M2VhOGFmYTlkMGYwYTg5MCBsZWdhY3ktdHJ1bmsKKzUyODE4IGEwMzdmYThmODQ1OGUzMWYzMWYyYTcxNzkwZTM3Yjg3N2M4ZWRhZDEgcmVsZWFzZTI1LW1haW50Cis1MjgxOSAyNTlkMjY5MDA4NjE3Y2JjMTdkOTEwZjAwNGYwNDkxYWI3M2YwMGE5IHAzeWsKKzUyODIwIGQ3NWIwY2FhNjdkYjlkZTYxMjEwOTc4YmRiYWYxZTZhYTRlYmU0YzEgcDN5aworNTI4MjEgOTNkYmZjNjU0YjZhMjIyZmJkNTJhYjhmZjQzYmViNzkxMWZiZjYwMyBsZWdhY3ktdHJ1bmsKKzUyODIzIDdmMzNmMjRhN2M0MTY3YzgyNzlkNjhlZGNhNDJlYTliNmUzZDM5NDAgcDN5aworNTI4MjQgMjVjYzYxNjE0NzIwNjNiYWNjNmEzZmVkZDU5ZWFlMDJlNmIzNmQwMSByZWxlYXNlMjMtbWFpbnQKKzUyODI2IGEzZTBmMWUxMTA4Mjg4OGU5M2QwYzgyODVlYWZmMjU5NjhkODVkZWUgbGVnYWN5LXRydW5rCis1MjgyNyBiNmIwMjU5MzE0NTEzMzM3N2RlMjgzMWVhZDlhMGIwZThjZjk4YjgwIHJlbGVhc2UyNS1tYWludAorNTI4MzMgMjkxZTYzMzY4NjdiNjc0ZjBmODRmZDRjYzBmNDYzNjIxZGNjNjcxNSBsZWdhY3ktdHJ1bmsKKzUyODM0IGNkM2Q2Yjk4Y2FlYWQyNjZiOTAwMmM4Y2Q3NzE5NWM2ZDhlYmZkZTAgcmVsZWFzZTI1LW1haW50Cis1MjgzNSAwMDQ2MmNhNDg4NDU0ODBlOWNhODQyM2E0YmY3NWI3MDQ3YjIyZmM0IGxlZ2FjeS10cnVuaworNTI4MzkgZTcwNzBkNjdkYjhjN2M5ZmUzM2YwYzc4YjlmZDU2NDIwNGYzNWYwNSBsZWdhY3ktdHJ1bmsKKzUyODQwIDE5MzE0NmU0ZDI3NmMwNDRlZjdhYTIxYjNmNWVjNGQzYjc4ZWVjNDggbGVnYWN5LXRydW5rCis1Mjg0MSA5NmJlOWQ3NGFkMzY3NTA0MGQ2MDIxYzNlNzk2OTFkNWU1ZTI2NDQ2IGxlZ2FjeS10cnVuaworNTI4NDIgNTg2ZGQ4ZWVkYjc1ZmVmODc5YTZjZmI0ZmI1MDAyNmQ5MTQ0N2MzZSByZWxlYXNlMjUtbWFpbnQKKzUyODQzIDI1MDgzNWRjNTQ0YWE2MDAzZDIwMzY2MDc2YTI1MmUzZDY1MzJlYzMgbGVnYWN5LXRydW5rCis1Mjg0NCAyMGJlNDMxZTc1NDAxYWZkOWI3NmZmNDBhMWY4Y2FjZDViZmE3Mzg0IHJlbGVhc2UyNS1tYWludAorNTI4NDUgNDU0ZWZmMjcwNmQzYjhiYjI3MWRjY2UxNDdmNWU3OWE4MTQ5ZjAyYSBsZWdhY3ktdHJ1bmsKKzUyODQ2IGE1NWQ0NjVkNDBjZmQyNGRlNWQ1MmMxMDljYzI2N2YxYTZmZTg2NWQgcmVsZWFzZTI1LW1haW50Cis1Mjg1MCBlZjE1NDcwMTY3MDMzYzc0YWU1MDVkN2Q0MmEwZGZiNmQzZGQ5ZWFiIGxlZ2FjeS10cnVuaworNTI4NTEgYTEwMTUzMDJkN2U0ZDQyYTBhZjE2OTVjMDg2ZDJlZmE4MjdkMDhlZiByZWxlYXNlMjUtbWFpbnQKKzUyODUzIDg4MTMzNDE3ZGZkMDViNGUxNTZhNmJjZTcxNGQyYWYwMTljNWNhYjggcDN5aworNTI4NTUgNzhmYjc5OTBjNWFhNTk1YmZiYzRmMTdjYTgxZDhmZGMyOGE2MzRiOSBsZWdhY3ktdHJ1bmsKKzUyODU2IGExZmQ5M2I1ODkxMjEwODc4YWMzYjRhYzdlNGY5MDY2NDMzZTQ5M2YgcmVsZWFzZTI1LW1haW50Cis1Mjg1NyAwMmQ1MTNlODcxZmU5NTcyZDIyZjE2MjAyNjQ5ODk2ZTY4ZTMxODkxIHAzeWsKKzUyODYyIDRlMzY4ZTgyYzcwZDZhMWUzMTIwODQyZmJlMjQxYWIzMjk2NWMyZmMgbGVnYWN5LXRydW5rCis1Mjg2MyAzOWFkOTlkZDY3ZTRkZTVjZmE5YjMxNTgyOTQzMmQxMTI1MTQ1NDZiIHJlbGVhc2UyNC1tYWludAorNTI4NjMgOThhMWVjYTNhOTMwODNjY2YwMWY0NWQwOWEyNjA5NmJkZTQxMDZmOSByZWxlYXNlMjUtbWFpbnQKKzUyODcyIGZlZjViNzc0ODE4YmRjNGU2MjYyYTIzMDA0ZWEyZmRkM2I5MDQ1NWIgbGVnYWN5LXRydW5rCis1Mjg3NSAxZTNmNTAyMGJiNTU1OGYwMjc3NzlhM2UyMWE4NmJkMzUyNzFmMTRkIHAzeWsKKzUyODc3IDJlNTAxMWFjYjQxNGQ0YjI2Nzg4YzAzNTdhMDViMWFhNTRiNzBmNzIgcDN5aworNTI4NzggYjNlZDA1M2NjNmExZjJiMWYyYWNjMDFjYWU5NTM0ZWY3OTE5YmQ0MiBwM3lrCis1Mjg5MCBkODAwZDY3Mzc1NTY0MTQ0NGEyZmE2Y2M3OGJkODYyNTMzOTI5YTFmIGxlZ2FjeS10cnVuaworNTI4OTkgMGUyYTA3M2NiYmJmYTdjZjdkZmFhZjVkNGZkMTY3M2NhZWE0YjQ3NiByZWxlYXNlMjUtbWFpbnQKKzUyOTAwIGM3ZTdlNzE5NmE0Y2NmMzU1ZmFlOTEyZjFkOWU5MjQyNjY2NDJkMmUgbGVnYWN5LXRydW5rCis1MjkwNSAzYWIxMmQxYTE3ZDJlZTM0OGZkOGFiZjBlZGY1NTA2YTc3ZmNiMDFmIGxlZ2FjeS10cnVuaworNTI5MDYgYzQzNzg3ZTZkNzA2MWQ1N2ZkNzA4MTY0ZDBlZjAyZmMwMGQ5YTU2MiBsZWdhY3ktdHJ1bmsKKzUyOTA3IDI2YjcxM2ExOTUzNGYyOGU3ZGUyYWFiOWFlZGM2OWZlMTdjNWNmYjMgcmVsZWFzZTI1LW1haW50Cis1MjkwOCAzZWU5ZDFhMzZkNDY0MzA5Y2Y0Y2JjMTUyOGQ2NTE3MGY5YTc1OGUwIGxlZ2FjeS10cnVuaworNTI5MDkgYTAxNDY5MmNmYTY2OGRlZDFjMGJjYmE0MmJlOTMzYzdhZDExOWE1OSByZWxlYXNlMjUtbWFpbnQKKzUyOTEwIDczZjBmYzJmOGYyN2RjMDk3YWYxYTIyNGExODA0ZjVlMjI2MzBhNDAgbGVnYWN5LXRydW5rCis1MjkxNSBjMWE2ZDk0YjgwMjc3NjhmMjM2M2EwMWQ4NmExZGE0M2QzZjNjNjk2IGxlZ2FjeS10cnVuaworNTI5MTcgMGNhYzNlNTMxYzVhMTViMWEyOTM5NDBlMmRmOTE5NDUwZDcyODk3NyBsZWdhY3ktdHJ1bmsKKzUyOTE4IGYxYTZhYjM1NzRlZmRiZGQ2OTFlNmYxM2NjZDQ5ZTUwYzAwOWEwNjMgcmVsZWFzZTI1LW1haW50Cis1MjkzOCBlYjMwZDMwZjIyYTE4NTc5ZWZkMWYwNWFhNzUxMzIyZjdlMzdjNjc3IGxlZ2FjeS10cnVuaworNTI5MzkgOWZmMmI3NDU4YzcwZDBhYmM3OTcyNDIzYzM1NTVkZjM3M2UwNzQ1NCByZWxlYXNlMjUtbWFpbnQKKzUyOTQ1IDlmZTU4NTViMDVkZGE4ZjdkZWZkMjA2OTM5N2M0ZGM1YmZiZTRlYWIgbGVnYWN5LXRydW5rCis1Mjk1MSBkNTU3Njk3MTJmNzNkZjU4ODVjODJhMTc4YTZjNTY1ODg1ZDJiMTEyIGxlZ2FjeS10cnVuaworNTI5NTIgZWVmNzI1YTQwYTY2NzgxMTViMmU1OWFiMDUwYzNhMmFlYmU3YmIzYyByZWxlYXNlMjUtbWFpbnQKKzUyOTYyIGU1Y2U1YTA1MzQxMTY5NmJkMDY2YTgwNjFhMjI4NzNjM2QyODQzNWQgbGVnYWN5LXRydW5rCis1Mjk2MyA2ZTkxZmM4OGJmOTljZjg1MGUxZmU4ZmExYzIwNGFmYjRmMjA4OGUxIGxlZ2FjeS10cnVuaworNTI5NjQgNmIwMmZlMWIzODJmZGZjOTZlNGE0ZWE3OTUwMmE0ZGNiNGExN2IwYSBsZWdhY3ktdHJ1bmsKKzUyOTY2IGExNWJkODFlZmRiNjM2OTk2ZDMxNzRhZDY1MjJjNGE3MjgzZjI2N2EgbGVnYWN5LXRydW5rCis1Mjk2NyBmYTI4MGQ3YzdkNWVkMmI3MTE4YTIyMWE1YTc5NGYxNDlmYWNiYTMwIHJlbGVhc2UyNS1tYWludAorNTI5NjkgYWU5MmM4ZDBmMDhkNTk0YjUwOTRlNjllNTg2N2ZjZjU1NjI1ZWIzNCByZWxlYXNlMjUtbWFpbnQKKzUyOTcwIGNmODdjOGYzM2Y5ZjcyZjdmNGYyNGUyN2Q0Y2IzYzBiZTFhYzQ3MDMgbGVnYWN5LXRydW5rCis1Mjk3MSBiODdjNTYzOWJjM2I4MGE0OTBjMmJkMTE5MDRhMWM5MzdlNTdiN2Y0IHJlbGVhc2UyNS1tYWludAorNTI5NzIgOWQ0NzI1NTViOTBkN2ZhNDU1NDRhN2Q5ZTc2ZTM1NWFiYjkyOWEzOCBsZWdhY3ktdHJ1bmsKKzUyOTczIDY4ZWYwN2Q5YzgxZTFjMTU1MWEwMzkyZGY4Njc3MGU1NThhN2NkMGUgcmVsZWFzZTI1LW1haW50Cis1Mjk3NCBkOWI0ZWZjNGViZWZmZmM4Zjg1NzYyNzM5NmY5OTBiNTQ0YWQxYjYzIHJlbGVhc2UyNS1tYWludAorNTI5NzUgZDRlYjY3ZDFkOTMxOGU3ODZlZWQ0ZjI0MGVjNmUyZjViMGYwOTc3OSBsZWdhY3ktdHJ1bmsKKzUyOTc5IDQ0N2VmMGU3NDYyOTk3MTEzODkzMWNjZDVlZDVlNDA2NzQ0MzYxYWEgcmVsZWFzZTIyLW1haW50Cis1Mjk5NCAwYzUxYjAwNWMyMTQ0YTQ0OTY3OTcwMjRhM2MxMThlZjljMzRjNTExIGxlZ2FjeS10cnVuaworNTI5OTYgM2Q1YjMwNzcyODkyYWNhNmFmYTg0YTVlM2VlMjM1NjJlZTIwY2QwNCBsZWdhY3ktdHJ1bmsKKzUyOTk3IDA0ZmRmOWZmYjE4ODJlOWJjZmEwOGViY2ZjNTAwZjQ4NDFjYTZjOGMgcmVsZWFzZTI1LW1haW50Cis1Mjk5OCA2MTMwNzJiOGY4ZDA5YzNkNmFlYzcyOWM5YmRmODAwY2ViYzU4NjFlIGxlZ2FjeS10cnVuaworNTI5OTkgYTMxMWExMGJhMGJmZDZmMDZmNjdlMmRlMzRkNWJmYTJjYzVkMTYzZiByZWxlYXNlMjQtbWFpbnQKKzUzMDAwIDMxNWM1YTYzM2IwNWJmMjU0ZjNmYzY2YTQ2MmZiOGVjYzkzNzY4ZDggbGVnYWN5LXRydW5rCis1MzAwMSBiMzMzMmVjMjkzZjI2ZDliMGNiYjJhOTEyMTQ0ZDQ4MmQ4Nzk5ZTAxIHJlbGVhc2UyNC1tYWludAorNTMwMTIgODEwMDgxODEyOTk2ZDhmZTdlMjVkYmQzNWRhYjk4MDMzYzJlM2NhMiBsZWdhY3ktdHJ1bmsKKzUzMDE3IGNjOTkyZDc1ZDViM2M5OTJhOWVkMDkxZTExODkyYTExM2MxMzQ1ZTkgcDN5aworNTMwMTggNjQ4MjI2MWIxMDkyMTYwYTFmZjQ5OGVjNmRlYTAyZjQ3ODE1MGQzNyBwM3lrCis1MzAxOSA1MGNlNTZiMjRjYmUzMTM3MzFiOTdkZjhkZWVmNDZhYzAxMWNmNmRiIHAzeWsKKzUzMDIzIDFjYjdiM2FlNDE0ZDA1YzIwMThhMmE0NmZmYThmZDA3YmExYjVmYzEgbGVnYWN5LXRydW5rCis1MzAyNSA1NmU4OGJiYWQ5YTBlOGRiMTE1ZjdjNGYxN2UxY2Q1ZDg5Mzk5ZTdlIGxlZ2FjeS10cnVuaworNTMwMjYgNDgwNzg5YjMyOTRkYzViYmNmYjQwNWVjYWVlMmM4NGExZWI1YWFkNiBsZWdhY3ktdHJ1bmsKKzUzMDI5IGU0ZjJiOTJjNzU3Yzk1ZDY0ZGE0YWM4MzA3NWE2ODQ2NjAxMjg3MzcgbGVnYWN5LXRydW5rCis1MzAzMCBjZWVlZDAyODcyMTY4MjMyZmIwMGE0YTZlZDFhZDYxYmFkYmIyZDExIHJlbGVhc2UyNS1tYWludAorNTMwMzEgYTkxMGFiZTc4MTU5MGE1NTRiN2YxOTgzMDM5ZTA3M2ExNjVjYmE3MSBsZWdhY3ktdHJ1bmsKKzUzMDMyIDllMzk2OThhZmJhNTZjYTY5ZjQxNDY5NmJlYmEzYzYyODRkYTM1NzIgbGVnYWN5LXRydW5rCis1MzAzMyBlZTVlNDFkZWE5NDkyZWI1OTk2ZDBmNDlmZTI4MjYyY2RhYTQ4MzhmIHJlbGVhc2UyNS1tYWludAorNTMwMzggMGRkZDA1OTNkNDBiZWU5MjQwZmI4ZDM1NzkwMGMwMDA5ZjMyNTc3YyBwM3lrLW5vc2xpY2UKKzUzMDM5IGZhOTkzNDYyNjQxMDQ0MmMxYjI4MTAxYTU3NWIwNWNmMjAyMTI1OWUgcDN5ay1ub3NsaWNlCis1MzA0MCA0NjdiMzgxMThiMjlhMmI2YWU4ZTM5MTlmMGI0MDFlMjg4ZTk1MWYyIHAzeWstbm9zbGljZQorNTMwNDEgODMzODRhNjkyNWE0YzkyY2IxODNlNTU5YTgxNTFlZDE4MzlkMzgxYyBwM3lrLW5vc2xpY2UKKzUzMDQyIDU5N2ZlODk1YTk1ODM2MmY2ZWZjYWEwNjEyYmJkZGViODU3YjcwYmIgbGVnYWN5LXRydW5rCis1MzA0NCA0ZjdmNzJiYzM0MGE3ZTVkMzAxODkzODk1ZDRmNDdhOTAwYmI2NTFjIHAzeWstbm9zbGljZQorNTMwNDUgNzQ1NzNmZGU0ZjBjZTc3MWEwZmUxMDY2MzhlMDc0ODA1ZjM2ZmZkNCBwM3lrLW5vc2xpY2UKKzUzMDQ4IDBkNjRmMjllZjI3M2QyYzIzMzRiNzhmODE2ZjliMjA2NzhmNjE4YzkgbGVnYWN5LXRydW5rCis1MzA0OSA3ZDc5ZmQxODE2YTg0NWQ5NzA4ZmNkYTExYzkzN2Y3OTcwYWFiMGY3IHJlbGVhc2UyNS1tYWludAorNTMwNTAgODFjY2ZlZGMxYzk5ZTdkOGQwZjEwNWJmZmY5YjRjNTZhZmVmYmUyYiBsZWdhY3ktdHJ1bmsKKzUzMDUxIDhlM2YyYjAyMmY3Mjc3MWM3MGM1YjA2ZDY0NjBkNDcwOWQzNDNkYTQgbGVnYWN5LXRydW5rCis1MzA1MiAzOGFhMWEwMTAyMTllZWFjNDg2ZTM0NTJkOWFhY2RlZTIzNjhmN2JhIGxlZ2FjeS10cnVuaworNTMwNTMgNTZkYzcyYzFhMWY0M2RlZWFjNDI2MWU0ZjRlMzg2MWEyNTRmN2ExZCBsZWdhY3ktdHJ1bmsKKzUzMDU0IGNkZjYzNTEzYThjZGZmYzM0MzgyYjJkNWE4NTFiNzY0NGQ0MGEyZTcgcmVsZWFzZTI1LW1haW50Cis1MzA1NiBhZGQwM2E5ZDc3OGI4MjgxOWExYjI5OWEyZmZmODI4Y2I1MzliNjk5IHJlbGVhc2UyNS1tYWludAorNTMwNTcgZmUyYTNjOTY2YzhlYWYxYTc2ODQxNThhOTE1Zjc2MzZmNDZiNjY0NiBsZWdhY3ktdHJ1bmsKKzUzMDYzIGViM2IyMzlhNGQwNzgwNjE2NmYyODkyZDEzN2Y1NTZlMmIyMmYwNWMgbGVnYWN5LXRydW5rCis1MzA2NCA5NTQ4Y2EwZTY1NjBlY2Q0NDRlYmRhODQ5OGVkMzdhOTU4MzliZTE2IHAzeWsKKzUzMDY1IDIxNDgwZDg5YjQ3ZjEyZDBjZjUxOWFjZWZjMWYwNzFjNTM5NGY1NjQgbGVnYWN5LXRydW5rCis1MzA2NiBiMjdkNWQ5OGE1NTY3NmM2NTk2NDE1ZmZiNDBmNjRkNjY3MzM0YTRhIGxlZ2FjeS10cnVuaworNTMwNjcgMTdlNzRjZTJiYzM1ZTc5YjY1NGMyMTUyMWQ1YmQ5ZGM4NWNkOGQ2ZiBsZWdhY3ktdHJ1bmsKKzUzMDY4IGRjYzQwYjkzYmZiZWNiYTNiMDQ1ZDQ0YjcxMzhjZTdmZDEwYWNiMTMgbGVnYWN5LXRydW5rCis1MzA2OSAwYjA0Y2I3NTFjMWEyMjExM2RhMzY2OTkwZTNlNjc4MWVjY2Y3ZWIwIHJlbGVhc2UyNS1tYWludAorNTMwNzAgMTY0NGJhN2RjZTFmMDVkZTA2ZGE0OWQzMDlmOTY1MmExOTFhNmMyMSByZWxlYXNlMjUtbWFpbnQKKzUzMDcxIGY5ODM0MGUzNmMzMTE1ZWQ3NjNlMTU4N2M2ZDQ4ZmQwYzc0NTgxNjAgbGVnYWN5LXRydW5rCis1MzA3MiAzMGYwOTc3NmVkNTU2MDBhMGM0ODYzZDQ3MzRjMjA4MTI1ODEyYzhiIHJlbGVhc2UyNS1tYWludAorNTMwNzMgZmU2OThkMDc4Y2Y5N2U3NzY3YWExYjJjYTA0OTMzNmIxMTIwOWI5NiBsZWdhY3ktdHJ1bmsKKzUzMDc0IGE4ZmEyNmEzYTJjYTFjOWRhZjNkZDg5MmEwNGY2NjZlNjk2NGZjNGQgbGVnYWN5LXRydW5rCis1MzA3NSA2Zjg2NGE5MWM2MTJjOWVkNzI5ZjExMDZmOTQ1ZDc1ZjMxZTUyMGRiIHJlbGVhc2UyNS1tYWludAorNTMwODAgODU2NWUzZmVhOWI2MmEyYmMzODdmNzBkNmFjOTUyYTk3MDEwNjY5YiBwM3lrCis1MzA4NyBkNGZjYjU2NTYzMTYyYzI3NWNmNDg4ZjQ5MTlkZGJjYjllYjllYTdhIHAzeWsKKzUzMDg5IGYxYTRjZTFmZTViMTBiNWQyMDg2N2Y0ODYxODhmMzgyNDFlNDUzMTQgcDN5aworNTMwOTAgNTEzOTVjMGI1NDgyZjhjNDBmZmYwNzAxNWNiNmFhNzczMDhlMWE4MSBsZWdhY3ktdHJ1bmsKKzUzMDk5IDk2ZDUzM2VmYmU3ZGQ0YzdmMDdiNTRiNWI5N2M1ZTY5OGQ2ZDQ2Y2MgbGVnYWN5LXRydW5rCis1MzEwMCBmZTliNTY5OTA4OTQ0OGVjZjk3NWJjYzliMDBjNGFkMTBkNDQ5YjI4IHJlbGVhc2UyNS1tYWludAorNTMxMDEgMDM3ZjNjZWEyNjU1MDJjOTZmNjVlOTAzZWYzYTE3ZGNiOTc3OTRhYyByZWxlYXNlMjQtbWFpbnQKKzUzMTA2IDEyNTBmZTQyY2U1Yzc5MTI0MDc3OThiMzdhZGRmMWY4ZTNjNTNhM2YgbGVnYWN5LXRydW5rCis1MzExMCA4ZmIzMzUwMGUwNjcwYjg1OGQ1YTJmODU5NGIwM2U5ZGM3NTU4YWM4IGxlZ2FjeS10cnVuaworNTMxMTIgNzkwOWE0ZWU1NjZiMDU4MzQyYjE1MDRmYTUzYjcyMDNiZTU5NGZlMSBsZWdhY3ktdHJ1bmsKKzUzMTEzIDJkNWVkMjY3YTQwZmExYWNmZDI5OTlkYzFhMDQ4MzlhYjk5ZjgyZjAgbGVnYWN5LXRydW5rCis1MzExNCA4M2Y1ZTgwY2UxZjI5YzMxMWEwNzYwYjI0Y2Y3NjBlZWM0NWI5YzliIHJlbGVhc2UyNS1tYWludAorNTMxMTUgYTg1OTVkZWFkNTRhZDVkN2ZhOWJlYzczYzdiMzQ3MjhmNWM0NmJiNSBsZWdhY3ktdHJ1bmsKKzUzMTE2IDIyYTU3ZjRmZmJjZDNkNGVlOTUxYTgxNjE0NWQ1OGJkNmNmZWZmMjggcmVsZWFzZTI1LW1haW50Cis1MzExNyAzNWM0OGY2OWJhY2VjNzk1ODI3ZmY0ODE1YTZjMGUzZGMwMDMyOTRjIGxlZ2FjeS10cnVuaworNTMxMTggZDJmYTdkYWFhNTliZjMwODcwODlkMjA2NjNkZjA4ODQzZmE5MGY1NSByZWxlYXNlMjUtbWFpbnQKKzUzMTIwIDNkNjY2OWFkZWNlNGE2NDM3OGFiZTZmZWMzM2Q0NDBhMWYxZWVmN2YgbGVnYWN5LXRydW5rCis1MzEyNSBlOGUyM2VkNmI2N2YxMzRjYWQxYmZhNDNiM2RkN2E1MzhiNDIwZjcxIGxlZ2FjeS10cnVuaworNTMxMjYgZmI1ZTNmYzQyMjdiZTgyMmIzZTdmYWFmODk4YmZmOTBiZTFkNmEyMiByZWxlYXNlMjUtbWFpbnQKKzUzMTI5IDk0ZWJmNGEyZjczOGYwMTFlNTljYzFmNjYyNGI5YzMyY2RhNTNiMTIgbGVnYWN5LXRydW5rCis1MzEzMSBmOTRlMmIxOTUxODllZGM5NTY3M2Y4NTQxZWEwZDg0MjU3ZmM2NGRiIGxlZ2FjeS10cnVuaworNTMxMzIgMzdlNzFmZWFlYTNkMmZjMjA0YjkyYjdhMTZiYTVhYTZhNTQ4ODQ2OCByZWxlYXNlMjUtbWFpbnQKKzUzMTM3IDg4MTYyNWMxM2MyMDZjYjcyNTFkYWU5MmNiMzRlOTRkMzI5YjRhNTAgbGVnYWN5LXRydW5rCis1MzEzOSA2NjNjOWYxY2UzYWFiZjhkODRjMzU3NWI2NTNlMzBhNTM1NWFhMGYwIGxlZ2FjeS10cnVuaworNTMxNDAgMmM1MDRjNjJkNGQ4ZGQ1NDE4MDc1OTExNWI1Yjc1NTQ3NGVkZTVmZCByZWxlYXNlMjUtbWFpbnQKKzUzMTQxIDJmODRiNmU4MTkwMmE4NDE3NDA0ODYyOTE2ZTE3ZjAzNTA4OThlZTEgbGVnYWN5LXRydW5rCis1MzE0MiBmOTI2YmJjMmZkNjI5Mjc3ZTZhM2EzZDdmYzIwOTA2MmVhM2U5ZWJjIGxlZ2FjeS10cnVuaworNTMxNDUgNWM2NzQ4NGM0Y2Y1ZWUxNzJjNTcwNWY5MzczYzYzOTBmN2YzN2JhMiBsZWdhY3ktdHJ1bmsKKzUzMTQ2IDkyZjNlZjhmYTRhZmEwODA2NzY3ZGQxOWVjMjFlNjBlYTk0ODYyM2UgbGVnYWN5LXRydW5rCis1MzE0NyAwOWY0YjQ2MGJhZWI3ZTVmYjRjNzg0NDdiMWY5OGJiYTRmNzkxZjRjIGxlZ2FjeS10cnVuaworNTMxNDggZGVkOTlkYjcwY2E2NzhkZDA5YjNkZWNhY2Y4NjcyMzRlZjBhODBkOSByZWxlYXNlMjUtbWFpbnQKKzUzMTQ5IGU0YjBmZjQ0OTIxNWYyNWYyYWQ1NWRkNGNkM2QyNTMxNmFiYjFkZDIgbGVnYWN5LXRydW5rCis1MzE1MCAyODk4MTlmZGUzYWYwZWNmNDk2NDA4N2IwYjcyN2EwZGRkOGM1Njk4IGxlZ2FjeS10cnVuaworNTMxNTMgNWM3ZWE5MzQ2ZjEyNzQ1MTg4ZTkyNGY2MTk2NDJhOWVhOGJmMjlhZCBsZWdhY3ktdHJ1bmsKKzUzMTU0IGFjOGE5YTQxMjFkMTdhYTcxZGJhZjVhZWRhNzNiZDZiMTZmMzY2MmUgcmVsZWFzZTI1LW1haW50Cis1MzE1NSA2NzYzZTQ1YzdmN2QzNDgzNTQyZTQyYjQzYjc1YmU5YzZhYjg5MjY1IGxlZ2FjeS10cnVuaworNTMxNTYgZWY0YjhmY2QxNGQ3MmZlMzhiYzAwMjc5ODA5M2JhZjYwMWExNzdkYSByZWxlYXNlMjUtbWFpbnQKKzUzMTU5IDFlMWI5YzJlMmFmMGUzMjJkMzExOTAyMTEwOWM2MWNkZDk1NTA1NzUgbGVnYWN5LXRydW5rCis1MzE2MCAxMmFmNjc4OGQ5MTE1NTljOWNlZjRlODBjOWVlNDc4Y2MzYTU0ZjQ4IGxlZ2FjeS10cnVuaworNTMxNjEgZTg1Y2EzZmQ0YmQ2M2YzODBhMGFiMzFiOGViNDEyODQ2ZGFmODVlMCBsZWdhY3ktdHJ1bmsKKzUzMTYyIDI2NzZkODI4N2ExMWIwZTlhMmZkOTIxY2ZmNWY3OTk4NjU5OTZkY2UgcmVsZWFzZTI1LW1haW50Cis1MzE2NSA2ZjhjNmY4MzBiNTFjZTY1ZTI1ZDhmNTU0Y2ViYmQwOTQwNWY1ZWVlIGxlZ2FjeS10cnVuaworNTMxNjYgNGQ3N2EyYzZhYTU1MzM3M2E2NDA1YWQ4NjIzOTc3NTkxZTNiYWMzZSByZWxlYXNlMjUtbWFpbnQKKzUzMTY3IDE5NWY2ODlhZjVhZmY0YmNjMDY1ZmY1Zjc0ODhmNjVlYjNiMzQ2OTggcDN5aworNTMxNjggYmNlN2U0YTkyNmE5MWJhNWI0M2I2ZWFhMTA5YmI0NTVjOTA5OWY5MiBwM3lrCis1MzE3MCA1NGNkNDc3ODg4MTFjMDNjNWVkNTE0YWEwZDAxMDNkNDZhNGZlMTgxIHAzeWsKKzUzMTcxIDdhMzVkM2QxYWM1YTMwMWVmM2RjNTJmOTE0MDg0NGYwNDIyMDExYTUgcDN5aworNTMxODcgZDYzZmE5MGRmOWVhZDg0NDdjZWFkM2I3ZmU0MjNjMTFhYzE4MDFiNiByZWxlYXNlMjUtbWFpbnQKKzUzMTg4IGEzMjIyMDc1ZjVjNjZhMTNjYmNiZDU3NmMyNmI5ZTA1YTJiMzY1MDQgbGVnYWN5LXRydW5rCis1MzE4OSBiMTllZDU0M2Q2OTVhMDMwNWZhMDI4MTQ5NjQzOGU0MTljODY0NTQ4IHAzeWsKKzUzMTkwIGI5ZmNhOGZiMGZiMzUxOGYxOTE0NTNiZWE5NjY5Y2M1MDQ5ZjZjODYgcmVsZWFzZTI1LW1haW50Cis1MzE5NyA5NDM3NWQ4MTQ4N2RhODE4MGIwYmQ5ODNlMWQ3NmY0MjU3MmQxNjk1IHJlbGVhc2UyNS1tYWludAorNTMyMDAgYzFhNGRjNzFjZGQzNzYwMTIwNWZiNjY0ZDQ5YzQyMmUyNzYxY2IxOSBsZWdhY3ktdHJ1bmsKKzUzMjMyIGJlODI0MGNlNTJmZjdmMzliYTE2NjFmZGI3YWI5NjVlMzVlMDQ4ZGEgbGVnYWN5LXRydW5rCis1MzIzNSAyYjE5YjJhZGM1YzFiOGE4NzE0MDBlOTAxMGM0YjAyZThhODExMWMyIGxlZ2FjeS10cnVuaworNTMyMzYgN2ExMzgzOWM2MzVkYzU1Y2RlNDdlMjFmZTk5M2VkNjFkODdkNjNmOCByZWxlYXNlMjUtbWFpbnQKKzUzMjQzIDljYzc2MWI5ZTJhYzU2MGY0OGE0Y2M1ODkyNGU2OTFkM2VhYjZmM2YgcmVsZWFzZTI1LW1haW50Cis1MzI0NCBkYzdkNGU1ZDhiNDk3ZTJiMDFiYmQ4NmQyNzA5ZTMzOTgxOGE1NmUxIGxlZ2FjeS10cnVuaworNTMyNDkgNDIwM2Y4ZTZlODZhYjQwYmZmZDJjM2I4MzdhMmY0MGViNzhkM2MwYiBsZWdhY3ktdHJ1bmsKKzUzMjUwIGQ5NzQ5YzNlNjMyNmFlMTYyM2Y5ZDFkNGFlNGJmNDhjOTcxYTY0NWIgcmVsZWFzZTI1LW1haW50Cis1MzI1MiBmOWIyNzgyMDc5OGI3NDc0ZjM2Y2YzNDFhYjE3MjJhMTg2ZjU3MzIxIGxlZ2FjeS10cnVuaworNTMyNTMgNjlmZTY4M2VjZTU2NmM4NDIzMDc3YmYxNDJkNjM1Mjc1NzZjZjJhZSBsZWdhY3ktdHJ1bmsKKzUzMjU0IGFmYWJmZmQ1NjJlOTRjYmRlMjRlMTM5MWQ4ZjY4YWY0NzJlNDRkMzIgcmVsZWFzZTI1LW1haW50Cis1MzI1NSA0NWM3MzE1MmI0YWM1ODMxNDU1M2QxMDVjNjM0ZTY3YTg0NDAyY2ZiIGxlZ2FjeS10cnVuaworNTMyNTYgY2EyOTVjMjcwYjFjM2YyYzE1NWE5NTJhOWRjZGUyZTM3MWUzNGE1MiByZWxlYXNlMjUtbWFpbnQKKzUzMjU4IDQyNzRlZGZkY2U5ODE4ZTU0Njg0Y2RlMjBlN2I4MTdkYTRhNGZhODIgbGVnYWN5LXRydW5rCis1MzI1OSAzMGRhMDZiMjI1YWZhYzNiYjE4YzA4ZDE3NWQ5N2YzYTEzY2ExOWRhIHJlbGVhc2UyNS1tYWludAorNTMyNjAgOTZkNzZkMDlhNGU5YzIyNTJkZmE4OTdmZDZjYThmOWVhYzc0NGI3OSBsZWdhY3ktdHJ1bmsKKzUzMjYyIDdmNzY5OTZjN2JmNGI4ZWM3NGJmNDZhMDRkNDRkMGY1OTY1MTY5MGIgbGVnYWN5LXRydW5rCis1MzI2MyA5MDkzN2QzMTc0Y2JlNTY4NmNhOTFkZGU5MGM3MWY4MTVjOTlkNWFjIHJlbGVhc2UyNS1tYWludAorNTMyNjQgOTMzNGIwZGMzYTE3ZDkwZTI3ZWY0NTc5Nzg4OTcwMDQzNjRhNWNjZCBsZWdhY3ktdHJ1bmsKKzUzMjY5IDNhOGZkMzYzOGYyNjBhMWM1NWUxYTU3OGJhZWQ1YTJmM2E3NzNmNGMgcmVsZWFzZTI1LW1haW50Cis1MzI3MCA4NGFjZWE4ZTA3MmU2NmUzMWI0MGI3NWNlZTUwY2Y2ZjExZDc5OGJjIHJlbGVhc2UyNS1tYWludAorNTMyNzMgZjcwMjc5ZjAwZGZjODBjMGRmYjk4ODlmNmU4Mzc5NjE4MjFmZTY3NSByZWxlYXNlMjUtbWFpbnQKKzUzMjc1IDY4NDVlMGU2MjkwMGZjMjE5NTU5YjFhNzhhMjZjZmJiNGQyNzQ0MGMgcmVsZWFzZTI1LW1haW50Cis1MzI3OSAxNjdlN2JhNzQ3NTYxM2MyMjY4MGNhYjk2YmZhZmVkYmFjMDU3YjE0IGxlZ2FjeS10cnVuaworNTMyODUgMDdjNDcwMjAyMGRjOTJhZGU2NWIxZjFhMWZjOGVkZGYyYTkxYjNkOSBsZWdhY3ktdHJ1bmsKKzUzMjg2IDQxMDU1NzBkYTMwYWQyYjIxMDg5Y2QwMTVmMWM1ZGFiN2MyNDkzMWMgbGVnYWN5LXRydW5rCis1MzI4NyAxNTIwYmFhZjI3YmY3NGU5Nzk3OWQ3YWYwNzUyMTJmZTg0YWJmZjg1IHJlbGVhc2UyNS1tYWludAorNTMyODggNmJkNjVjYjViOTUyMDYyZTMwZWEyZTIzNmRjNTIxNTljMGI5YjBhMCBwM3lrCis1MzI4OSA5OTViN2ZjYzI5NmRmNTY4NGFjNzM5YTIxY2U2NGE0NTJiODcwNGIzIHAzeWsKKzUzMjkxIGNjOTQ5YzYwNTU3NGRhNzVkYzg1OTFiNzJmOWZlZjVmNGIxOGY5MWYgbGVnYWN5LXRydW5rCis1MzI5MyA3YTExYTNhYmU2NGMxZjZmN2M1YzIzNzdiYjhjZWVlNWIyNWVlMWViIGxlZ2FjeS10cnVuaworNTMyOTQgNDRjNjIyMGIxZGMzZmZhNjZkYWRmZGYyOTkwYzU4M2ZmZGQ4NDlmYiByZWxlYXNlMjUtbWFpbnQKKzUzMjk1IDk5MDkzYjUyN2MwMWNhM2ZmNTkwZWEyYzM5ODBkZmIxNWYyZmVjODEgbGVnYWN5LXRydW5rCis1MzI5NiAwMzU0N2E0Y2QzMGFmYTEwYTM4YmE4YzIyYTY4NTU2MmM4NWY4YTUwIHJlbGVhc2UyNS1tYWludAorNTMyOTcgOTQwZmY1Yzc3ZjNhOTEwN2VlY2IxNjgwYWQ3MmEzZmNiOTk0NmRlMSByZWxlYXNlMjUtbWFpbnQKKzUzMjk4IDhkYTZkZGE2NzlmOGIyYThlNWRkZjZiNWViMzliMjVjMDRmZTdkZjIgcmVsZWFzZTI1LW1haW50Cis1MzI5OSA0ZGM3OWUyODMyMDk0ZDUyYTgyNzNjODJmOGRiNTMzZDg5ZTU1YjMxIHJlbGVhc2UyNS1tYWludAorNTMzMDAgYmQ3ZTQxZGU5ODJmNjBlOWYyOTgwODgyNGNjM2Y1ZTVlNTc3NDY2NSBsZWdhY3ktdHJ1bmsKKzUzMzAxIDlhZmQyYzdmYWVkZTYzYTcxNzk1ZDMxYTY1N2U4ZTg0YmRjNjU3MWYgbGVnYWN5LXRydW5rCis1MzMwMiAxZWQzZWQ5YWYzNDhjZmJhNGNlNzkzMTc2ODZjODliYTQwZDYxM2JmIGxlZ2FjeS10cnVuaworNTMzMDMgZGU1MDQwMjRhNmU3N2I0NTliMDllYTQwNjg3YTA2OWQ1NjEzNjgzOCBsZWdhY3ktdHJ1bmsKKzUzMzA0IDkyZGQyYmI5NGNhOWM4NzkxNDA3ZWIyN2IwMjAzNGJmMTE3ZjY3NWYgbGVnYWN5LXRydW5rCis1MzMwNSA1ZDQzMTAyNWM5OTlhOTZlMGQyNzU3NjhhYzgxODE1N2EwYzA5ZTBlIGxlZ2FjeS10cnVuaworNTMzMDYgNjFkNjM0YTBiZDZhMjNkOTAzNzQxMzhjYTY3NGNiNzcxZTJlZmRiMSBsZWdhY3ktdHJ1bmsKKzUzMzE2IDBkOTJjYWEyZDBmNDJiMmMzOTJjZGRmYzkxNjFhODIzYTQ4ODRhZDIgbGVnYWN5LXRydW5rCis1MzMyMSA2ZGRiNjM2Zjk1YzAwOTQ0YzY4NjMwYWRhMmEyYjc4Y2VhNmNmMjVhIHJlbGVhc2UyNS1tYWludAorNTMzMjkgYjgxZjRlZTk0YjA0Y2I5NmFmNGQxOWNhZmEzMjI5MzI2NjZkNTFmNSBiY2Fubm9uLW9iamNhcAorNTMzMzEgNDlkYzdmYzY2YmVlMzgyYTA1NWMyODBmNzZlZjg0OWI1MGRiYTI1NyBiY2Fubm9uLW9iamNhcAorNTMzMzIgNjcyODdjYTRlMWU4NTNmY2RhNzIyZjNiOTkzOTZmMmQ0ZTg4OWY2ZCBwM3lrCis1MzMzMyBiYjFlZWE5Y2VkNzBkYWI3ODQ0ZjMzYjQ1ODFlMDViYjkxOGZjYTE5IGJjYW5ub24tb2JqY2FwCis1MzMzNCBmMzFmZWUyNjJiNTE0NWYwNDNjNWIzODMyMTg2MDk0MTI2OGJlYjA0IGJjYW5ub24tb2JqY2FwCis1MzMzNSA2OWJjODA2ZDk2NjE2NTNhMzZjMjk1NGUzYzc3Mzg5NzRjNWVlOTkyIHAzeWsKKzUzMzM2IDBiNzk3YTdiNTMxMzA0ZjI1MDkwZDk5NTM4YzYzZmE0NTJjNDViYTggcDN5aworNTMzNDAgNjY3YmQwMjdkODAwOThkNDcwYjljZTg4NTU3ZDVkNmQ0NDMxNzllMiBsZWdhY3ktdHJ1bmsKKzUzMzQxIGI0YmE3MjQ5YWJhNTY4MzExMDU2ZDlmMGRhM2I5MDE1MmVkN2FmMzYgbGVnYWN5LXRydW5rCis1MzM0MiA2YjE4YTA5NWMyZTdhYjdjM2UzM2EwNjZjOGE3NDU5MjViZWY0NGFkIHAzeWsKKzUzMzQ5IDRiYWI2NWZjY2E4ZTYzNjk5YjAyMjYyNDJkZmUwODIwMjQ1OWQ5ODggcDN5aworNTMzNTcgZmY3MWI4MmY2Yzk1NjA4M2IwY2QyOGNiMjJjNDg2OGZlZDM2OWQxNSByZWxlYXNlMjUtbWFpbnQKKzUzMzU4IDEzZmMxOTQyMDRjNGU3NGM2ZTQzYzY2YjVlNDE3ZTNjZDgwZjllMWYgbGVnYWN5LXRydW5rCis1MzM2MCA0NjhhZTNlMzkyYTJhMmI2NDgwZjRhZGY2YjQ3ODhkYWRiMWIxYzBjIHJlbGVhc2UyNS1tYWludAorNTMzNjEgOTA5NDZkNTQzNGFhMzJhNzc2N2JlN2M5OTU5NDUxMzQ5ZDNlMGEyZSBsZWdhY3ktdHJ1bmsKKzUzMzYyIDVmMTMwMjcxZjM4Njk1ZWY0OTk2NzJkNmNjNjM4ZWExYzRmNGIzM2QgbGVnYWN5LXRydW5rCis1MzM2MyA3ZTI1MDAyMjZjNDM2YzY1YTFkZDc5MzM2OGY4Yzg1YmVmMTMxYTk5IHAzeWstbm9zbGljZQorNTMzNjQgOGMzNjkzNDZhNGNjNTA4YzlkY2QzNzdjNjEyN2JmMDU0ZTJjYjVjOCBwM3lrLW5vc2xpY2UKKzUzMzY5IGUxZTQ0OTNmNmU4ZjI0N2FmMjU5YWUyNDE2NGNjOTFhY2ExYzgzZTQgcmVsZWFzZTI1LW1haW50Cis1MzM3MCA0NmZjNzU2MTVkYTUyMmJjODA4YzUzNGI1NmEwNGVjMjVhNDMzYmYyIGxlZ2FjeS10cnVuaworNTMzNzEgYjYwYjQyMDk3Yjc4YjZhY2E0ZGJlY2JkMWYzN2FhNTZlNThkNDk2MyByZWxlYXNlMjQtbWFpbnQKKzUzMzczIDgxM2RjYzgzZTQyYzI3ZGMwNmEzZTBkNDNiODQxMDc0YjU5NThjMmQgcmVsZWFzZTI0LW1haW50Cis1MzM3NCA0M2M3NWU1NDBlOTIyZmI2ZThmNzg2MDcyNGM4Y2YzZmQxN2JiYjcxIHJlbGVhc2UyNS1tYWludAorNTMzNzUgMjExMTlkYjVlMDk2NjUwZDQzYWM1NWM0ZTdlMTVmOTIxYzhiOTgyMCBsZWdhY3ktdHJ1bmsKKzUzMzgwIDI2ODU5OTAwZmE1ZGU3ZTVkYTZiMzVlOTFlYjEyMTgwZWNkODkwOTQgcmVsZWFzZTI1LW1haW50Cis1MzM4MSA3ZGEzZGJjODE0NWI4NGRiYWEyZTIzN2Q0MTljY2I4OGI1MTA2ZWU1IGxlZ2FjeS10cnVuaworNTMzODMgYmUxOTNhZjIyZjA0N2ViMGFmNzYzY2NkM2IzY2Q5ZTRiZmU2NWFkMSByZWxlYXNlMjQtbWFpbnQKKzUzMzg0IGUxOGFmMjhiNDlkYTlhNTkxMzZhZjNjMmE0NjUxYjEwMTU4YjIwYTUgcmVsZWFzZTI0LW1haW50Cis1MzM4NSA1M2MwYjA5YzQ4YzExZjRjYzA0YTFmM2ZhYjA3N2M0MGExOTdhNmUwIGJjYW5ub24tb2JqY2FwCis1MzM4NyAxYzRiYmU2M2ZkZmM0ODc3MjQzYWFhN2FhZmVlNzUzMjcxZGU1ZDMzIGJjYW5ub24tb2JqY2FwCis1MzM4OCA3ZDg4NjhjZmJhN2M1ZTlkZjQwZjZjYjQzMzljMzU2ZmJiYzUxNzFhIGxlZ2FjeS10cnVuaworNTMzODkgYTJlMTdiNzUxNWQzYTM2M2UyNTI3MDIwZGQzZDZiYjZkMjdlZmQ1MSBiY2Fubm9uLW9iamNhcAorNTMzOTAgNjg5OWI3NDBlOGVhZTZkZGQ3ZGNkZDg5OThiZWQyNTRjYjI4YTA0OCBsZWdhY3ktdHJ1bmsKKzUzMzkxIDc4Y2QzODRkM2ZjZjkwOWFjODUyZGUzODc2YTQ1MmU5NDRkMGZiZGMgYmNhbm5vbi1vYmpjYXAKKzUzMzkzIGM3YmQ4OTJjMDU2N2Q3MmQyMDdjM2UyNjVjNzMxMDlhZWQwN2RhYTggbGVnYWN5LXRydW5rCis1MzM5NCA2ZDE2ZWJjNzE1Njk1YzA5MDkxOWYwOTg1M2MzZTk5NTU2ZGM1MDVlIHJlbGVhc2UyNS1tYWludAorNTMzOTUgMTgwMmNmOTMyNTRiZjY2NDU0NWYwZmQxNGI1ZDA0ZDA1NmZlOGM5ZCByZWxlYXNlMjUtbWFpbnQKKzUzMzk2IDhiZjY4ZWNjNzY3NmFmMWZiZDM0YjhlZDNiMGJjNmFmN2NiNTYzOTAgcmVsZWFzZTI1LW1haW50Cis1MzM5NyAyYzU3MWY2Y2UyM2FiMjc2NjhjMmFlMTJkNGRiNjQyODc3YjRlZDZlIGxlZ2FjeS10cnVuaworNTM0MDEgZThhZGU4YTZlNWNiOWNhNGEyMTM1YTFmZWI2N2FmOWJkZDU5YzM4NSBsZWdhY3ktdHJ1bmsKKzUzNDAyIGNmOGFmNmI3NTk4YmM1MzU1ODlkNzVkNjk1YjFkY2I3MzMwMDIxZmIgbGVnYWN5LXRydW5rCis1MzQwMyBjYTUzN2U5YmE3YTdmMWE2MTA2OGY1MDVjNWYzM2U4NTYxYWU5MDgxIGxlZ2FjeS10cnVuaworNTM0MDYgYjMwM2ZiMzgzZmE0Njk0ODM3NTJlM2YzYWE2N2Y3YmVlYWQ4MGM5MSBsZWdhY3ktdHJ1bmsKKzUzNDA3IGYyN2I4ODk5YjYxMzUyMzJhN2EyYWU5ZDYzZTMxNDQxMWNhNmQ4MjkgbGVnYWN5LXRydW5rCis1MzQwOSBlZDdhY2YxODgxYTk0MGZjNjVjN2QyNTk1YzYxZjM1Y2ZkMjVkNDQ1IGxlZ2FjeS10cnVuaworNTM0MTAgMmE0NzZjOTRiZTIwMDQwNWE5MWU4MjUzOWUyZWRhZmFjM2QyMzcwMCBsZWdhY3ktdHJ1bmsKKzUzNDExIDY4YjQxYzJkNjY2MzFhYWM0YjQxNGIyY2E2YzYxZmVmZWUzNDdjYzYgbGVnYWN5LXRydW5rCis1MzQxMiAyZGY4MGU3MTZlNWM5ZDkyNjZmZmVkMGE5ZjIzYjhkZDZmNDdhNTE4IGxlZ2FjeS10cnVuaworNTM0MTMgMTQwOWUxZjI3M2I1MDg1MTM1NjJjODYzOTBlZDMzZTZiMDIxNWJhMSByZWxlYXNlMjUtbWFpbnQKKzUzNDE0IDczYjkzZGM1ZTQ0MGFjMDg4OTI2MzVkZTBlYTE5YzBjMzY3ZjE5Y2UgbGVnYWN5LXRydW5rCis1MzQxNSBmMzI4MzI5NDcxZGY1NzEzOTZhM2JhY2M5ZGFhZjNmMGMxMmZiNzVmIGxlZ2FjeS10cnVuaworNTM0MTYgY2ExYjQwY2M2Yjc0YzM1OTlhMjQ2Y2FlOTU0NDU3NWFhZmE4MzQzZSBsZWdhY3ktdHJ1bmsKKzUzNDE3IDQyNmYxZDM3M2NkZDY1NzgwZjg3Nzk4MTMyY2I0OWI5YzEzY2IwYTkgcDN5aworNTM0MTggNGViZjBiODA1Y2U4NGY3YTc5ZjAwY2I5ZDAxNjNlMmQ0ZTg2YTU3ZSBpbnRfdW5pZmljYXRpb24KKzUzNDIwIGI5ZDRjZWQyMzUwNjIxZjY2OGNmZjk0MmZjNDM1MDIzMGViZDlhODIgbGVnYWN5LXRydW5rCis1MzQyMSA0YWVlM2Y2NzJmNzdlMGZlYWYwMmNjZGFiZDAxZWVkOGI2MzIzNmRlIHAzeWsKKzUzNDIyIGRiZmQ4NmMzYzc5MTNhYTFjZDI0MjdmYWYxOTQ2YWViZjUxMTZhOGUgcDN5aworNTM0MjMgOTBjMzgyNzE2ODZiMTIxMzE0NDM1YjM4OWZjMmIxN2VjODk4YjM1ZiBsZWdhY3ktdHJ1bmsKKzUzNDI0IGEwMDRjM2IwMTljYTE1MzIyNTBjNTJjNWFmYWNlYjkwMGFlNDQ5OGYgcDN5aworNTM0MjUgM2Q3OWJjNmVkNmVjZTcyMjg5YTE2YmM4ZmEzODFhYzA5OTRlMDJjNiBsZWdhY3ktdHJ1bmsKKzUzNDMzIDk4ZDVmOTBjYjkwNWFmZWJjZmNmZDFjZDM3YmMxZTI3MzgxZmUxM2UgcDN5aworNTM0MzQgNmVmZTNhNGIxMGFjOThhZDJlMjU3ODkyODIyZmE5NTQxMjI5ZmNmMCBsZWdhY3ktdHJ1bmsKKzUzNDM4IGRiOGMxNzVkMTI4M2Q3ZmI3NjYyMDMwMDJhZDYwZjE3MDk2NDQwN2EgcDN5aworNTM0MzkgOGUyY2E1NDQ0OTAwMWVjYjIzYWU1YWE1MTg3NzRlMTBlZmZlNzFmZCBwM3lrCis1MzQ0MCBjZjk4MzQ1YjlkNmIwMjBhZjAwZTY3NzcwYjBmM2E3MTIzYmRlNjlkIGxlZ2FjeS10cnVuaworNTM0NDEgZjM3Njk2ZTY0NmZhYzVkNTM1NjNkMzk4Nzk4ZjRkODAyMGUzMzNhMyBsZWdhY3ktdHJ1bmsKKzUzNDQyIGNjNWMwNzFjODQyMzExZTgzZjZjZWEwODgzZjQ0OWI4ODc3ZjVlZjUgbGVnYWN5LXRydW5rCis1MzQ0MyA4NmNlMWRmNmE4OGU3MGMxYTM5MGEzM2EwOGRiN2RlNDI4OGMwNjI2IHAzeWsKKzUzNDQ0IDgyYjliNWIxMjI1NmU0NWUwY2E0OTFkMjRiZDZlYzVkYTljOTNlMWQgcDN5aworNTM0NDUgNmY1YjMzOTQ3Mjc0ZThiNGQzZmM1MWVjOTQ1M2EyZTIxZjI2NDdlNCBwM3lrCis1MzQ0NiAzNDI1MzJmNDUzNmU2MTg0ODlhYzUyODAwOTNmMzk3M2I1NTYyZDJiIHAzeWsKKzUzNDQ4IGQwMmQyOWM1MjMyYTFjYWJjYjI3MDAzNDdkODRkYTk4NjUxZDFlOGEgcDN5aworNTM0NTEgNDdmOWVmZGMwODU1YThkMTc2MWEwYTQyNDc5MzU3NjJmNDJjMzVjMyBwM3lrCis1MzQ1MiAxYzI2NTA1YzFkZTZlYjUwZWE4NjRhOTc3MDI4YmRmNjk1NzhhOTdjIHAzeWsKKzUzNDUzIDNmNzgyNzRmMmEzNDk0MzViNzQ1MmUyZDI0MmZiNjBhNTQ3MzY2ODIgcDN5aworNTM0NTQgNGE0YmM1Yzc2ZTQ1OTBiZGM4ZTVlN2FkYTJiYzM0ZjRlY2MwNjRjYiBsZWdhY3ktdHJ1bmsKKzUzNDU4IDliZTYyYzQ1ZjNhODc5NDBmMWIwY2RlM2IzYjc2ZGNkZGQ4YTkzNjUgbGVnYWN5LXRydW5rCis1MzQ1OSBlNWI2NDFlNzAwZjIzNTQ1YTM5NGMwYTgzODBmYzAxNzUyMDBjZmE4IGxlZ2FjeS10cnVuaworNTM0NjAgYTRjZGI5YzhhZjI1YmQ2N2EzOWIxNDkyYzM4YzFjM2MxYjI1YWVmNiBsZWdhY3ktdHJ1bmsKKzUzNDYyIDM3OWFmNDE4ZmMzNjc1MmRlOTVmNGFhMmJiN2JkZDU5NThiZTgxMTEgYmNhbm5vbi1vYmpjYXAKKzUzNDY0IDQ4ZDM4ZDc3NzAyNDk2MjllYjUxNTNiMzkwNjBmMTUxNWQyOTVmMjUgbGVnYWN5LXRydW5rCis1MzQ2NSAwM2E1ZjJiMDY4MjUzZmFlMDUzNDRhNGJkMmJjNGEzNmRiZGU1Y2ExIGxlZ2FjeS10cnVuaworNTM0NjYgNjY3ODJlNWI5OTJmNTdmNGI3MjFiMWM5NTY0YTk5YzU0NDhlZmExNyBsZWdhY3ktdHJ1bmsKKzUzNDY3IDRhOTdmM2JmYjU1Y2UxZTViZGNjZDkzY2Y1OWY3MDdmNWE5MDY4MTkgcmVsZWFzZTI1LW1haW50Cis1MzQ3MSBiNzMzOGYzYjFiMDIyNDVlYTRjZmM4NjkwZGMzNDYxZTA1ODhiM2Y1IHJlbGVhc2UyNS1tYWludAorNTM0NzIgMDkxZGY0MzYwMzhkNzQ1ZWE5ZDYyN2Y4ODIwMmIzMDg0MGY0ZDVjYiBsZWdhY3ktdHJ1bmsKKzUzNDczIDE5MWVhYWU1YTI5ZDJlYzNmNGE1ZjYzMjllZmI2NmM3ZDExZmU1NTIgcmVsZWFzZTI1LW1haW50Cis1MzQ3NCA0ZDg1N2RhN2U2YzRmNDEzMjg3NTQzZjk2NmU5NWYzYTNkYjkxMTA0IHJlbGVhc2UyNS1tYWludAorNTM0NzUgNzczMjliMTI3ZDQzNzRlNDE2ODYxOGYyZDRmMGIyNmZlZmUwZjczMiBsZWdhY3ktdHJ1bmsKKzUzNDc2IDk0Y2EwNmQ5NTkzMDZmODJjNWViMTMzODFjNGUzMGU2YzJiY2I0N2IgcmVsZWFzZTI1LW1haW50Cis1MzQ3NyA5MDE2MDQ5MGM2ZDQwNTJkM2I0NzUxOWQ3MzM1MzdlYzU5YjIxMTg0IGxlZ2FjeS10cnVuaworNTM0NzggMjIzZmYzNWRjZmZjMWIwNmFkNDBiZjA3NDU0NTY0MWRlOTI2MjM2YSByZWxlYXNlMjUtbWFpbnQKKzUzNDc5IGVlODdlZWY5NTdmMzU5MTM2MzI3NzAzNDA3ZTNhMTM5ZDE0MzAwZTUgYmNhbm5vbi1vYmpjYXAKKzUzNDgxIGNhNjA3ZDc0OGY2NGU2NjA0YzhhNWFlMDYwMmJmYmE0NWVjZGM5ZjYgbGVnYWN5LXRydW5rCis1MzQ4MiA5YmRmMzRiM2Y3MmViMGZlZTNjMmIxOWIzOWYyZDg4OWQ1ZDM2N2ZiIGxlZ2FjeS10cnVuaworNTM0ODMgM2YxZGZhZjI5M2ZhMWRhMGVmOWI5NDkwNzlmNjg4ZmY5ZjA1NTA0YSBsZWdhY3ktdHJ1bmsKKzUzNDg0IDBiYzQyYzE1NmU5ZjVlZmVlNzg5Yzk1MmE0ZDBlODg2ZjZlNDRlYTAgcmVsZWFzZTI1LW1haW50Cis1MzQ4NyA5ZmU5MmYxOGJiNmE0MmE3NDY5M2Q2YWU5ODA4M2M2MWE3YmQ0OGUwIHJlbGVhc2UyNS1tYWludAorNTM0ODggYjhhY2VjNGE0Yzg5Y2E2YmQzYWY4NTliN2Y2N2I0MjQxN2M5ZWI0YiBsZWdhY3ktdHJ1bmsKKzUzNDg5IGIwNTFkMTk3ZjdhNDkzN2ZjY2VmYzY3YWFlYjgwYzIxNmE0NTUyNzUgbGVnYWN5LXRydW5rCis1MzQ5MCAwNWE4OTg2ZDk1MjY3MzdjOTI0MjMyYzU3ZGM1MzJjYjgwNzRhY2Y3IHJlbGVhc2UyNS1tYWludAorNTM0OTYgNjgwZDE3YTZiMTVmMGEwNDI0YTAzZDYwNGQwZDQ1MjMxZWUxNmQyMiByZWxlYXNlMjUtbWFpbnQKKzUzNDk3IDM5YjNhNWEzYzY0NWI4OWI4MGY1ZjNiNWMwZDRhMzRkMWFlNGQ0ZGIgbGVnYWN5LXRydW5rCis1MzQ5OCA2MGQzMWExMmIxNTBkNTA5Y2ZkNzBiZjE5OGQwNmJjYWY2NWZlYmE4IHJlbGVhc2UyNS1tYWludAorNTM0OTkgMmY4MGFmNjc0MDc0YWZjMjUyNmFlMDAxYWFkOGM0YjVlNjM4NGJiYiBsZWdhY3ktdHJ1bmsKKzUzNTAxIDViZjRmMDU5MDNiMjBjNjBmNzhlYmM0NTA2NjBkMjc0NmNhN2FlYTAgcmVsZWFzZTI1LW1haW50Cis1MzUwMiA1OWNmODllNWYyMzdlZGFhNTE2MDg0MzEzMTMyMWY4Zjg0YWM4YzQyIHJlbGVhc2UyNS1tYWludAorNTM1MDMgN2IzOGY5OTU1YzY0NjU5NDAxNDc3NTcxYjcxYWY5Yjk5M2M1OGZhZiBsZWdhY3ktdHJ1bmsKKzUzNTA0IDEwYmZmZDE5YjUzNWE0NDhlNDgyZTI5ZWZmZWFmYzg1OWQyYjNmMTIgbGVnYWN5LXRydW5rCis1MzUwNSAzYWU0ZjkzMGJmMjdiNGNkYzBjNzdmZTE2YmRmNTA0MTZhODc5NjUyIGxlZ2FjeS10cnVuaworNTM1MDYgYWM0YzJmNWMzZmMwZTk5MzQzMzY0NjhiM2M5MDk5Mjc5Zjk4OWM5MiBsZWdhY3ktdHJ1bmsKKzUzNTA3IDVmOGE1NGM4MDRmZjZmMGRkMzJiMmMyNTgxOTJkYTkzYTlhNmVkNjQgbGVnYWN5LXRydW5rCis1MzUwOCAwYmZmY2E2NGNjYzRiYTA0ZTQxMzA4OGQwNzQwZWM4MmY0ODQ4MTE5IGxlZ2FjeS10cnVuaworNTM1MDkgNzdlMGY0NzE4YTdjYTYxNzc4N2U3MGZiM2E4ZjZmYmRlN2JhMDVjNiBsZWdhY3ktdHJ1bmsKKzUzNTEwIGM4NmRmMzExZTYyY2VjZTIxMDA2YmU2YmMzNjIwOWZhZWYyYjRiOGMgcmVsZWFzZTI1LW1haW50Cis1MzUxMSAyZmE2ZTgyYjFmMTdiN2FlZjg3NjEzNzk3MmE3M2I3YzJmZmRlNzc3IGxlZ2FjeS10cnVuaworNTM1MTIgNTczYTQ2MTc2MTc1Mzk1MmEwYjA1MmMyMTUwNDIzMDU0ZDA3NTQwYyByZWxlYXNlMjUtbWFpbnQKKzUzNTEzIDY2NmZhZjg5MTJlMDVmMzdmZTNhYjRkODEzZGEyNDkyMTQ1YmNkYWUgcmVsZWFzZTI1LW1haW50Cis1MzUxNSAxNjc5YTRhZGExNzEyYjBkODg5OWE1OGZkYWM5YWQwZmNmOTA0N2RmIHJlbGVhc2UyNS1tYWludAorNTM1MTYgM2I2YWM0ZjRiNDM3MjQwYmRmYTBmODUzNDBhZWNkYzU2YmJiMTgzOSByZWxlYXNlMjUtbWFpbnQKKzUzNTE3IGIyMzcxMWJlMmIzZTAzNDIxMzhmNDc0ZmYzMTY2NDg0ODg3MGZkNGYgbGVnYWN5LXRydW5rCis1MzUxOCBiYjRjMGJiYmEyNzJmOGQ3OGY3NTI2ZmQyNGM2MjA4MjgxNDAwOGI4IGxlZ2FjeS10cnVuaworNTM1MTkgYjE2YjRmOTc2ZTcwYWQ4N2Y2NjM5NzJjMmNhZmE0MDc5M2Y0NzhjMSBsZWdhY3ktdHJ1bmsKKzUzNTIwIGVjZTJhZjc2NDYyMWQwNTdlNDI1NjRhNGI0NGQzNDFiOTZlY2E1NDUgcmVsZWFzZTI1LW1haW50Cis1MzUyMSBkZTJiYmRlY2U4M2VkYWZkMmFlMWRhNDg5MThhNDMyNzM1ODZmMjA1IHJlbGVhc2UyNS1tYWludAorNTM1MjIgZDdiZTAzZWJmNDY2NzMxY2I3YmU2MWM0NzRjNjUxZTk1MWZmNDQ0ZiBsZWdhY3ktdHJ1bmsKKzUzNTIzIDlmMjM5M2U5ZWFjYWJmNDM4MDYzZmRhZjI4ZjJmNGYxNzg3OWU4MzIgcmVsZWFzZTI1LW1haW50Cis1MzUyNCAwODFjYTYwODBmZjE0NTMwNGU0ZDM0ZjExODkxOTk2NDM1MmNmNTE1IGxlZ2FjeS10cnVuaworNTM1MjUgMjliOGI2NWJhZTNmYWI1ZTBmNGI5NzBiZDk2YmZhM2JlMDMwZTIxMCByZWxlYXNlMjUtbWFpbnQKKzUzNTI2IDdmNDA2NWVmYTQ0ZWUyMzk2NTExMTUxNWY0YzMwNzJlMjVlMmEzM2EgbGVnYWN5LXRydW5rCis1MzUyNyA4NmFiMmYyMGEzMzMzOGRjMGEyZjAxMGFmMGM5MjkzMTRlYjY4ODNiIGxlZ2FjeS10cnVuaworNTM1MjggZDJlMmVkZDA3MDgyYzRmYmVkZTQ4YjI3YjJmZWIzYmU3NjVlMzhhNCBsZWdhY3ktdHJ1bmsKKzUzNTI5IGRhMzBhMjZkZmViMzljYjUwMWI1YjBjMjg1YWRlZGM1ZGRlN2JmYTUgcmVsZWFzZTI1LW1haW50Cis1MzUzMCA2ODYwYmE4OGQ2N2VhOWQzMGY3OWVlODFhMjkzODYzZjEyNzMyY2Q4IHJlbGVhc2UyNC1tYWludAorNTM1MzEgZGYyOTRiYzVjZTZlODI2OTg3NjUyMTY3YzEyZjM4OTU0MmJjZjU3ZiBsZWdhY3ktdHJ1bmsKKzUzNTMyIDBlOTVjNzc1MTJmNTRhMTBjMjljMDczODBiMDJhNzFmMDU0NjQ5MTYgcmVsZWFzZTI1LW1haW50Cis1MzUzMyAyOTMzMTFlNjNhNzMyZTIxZGE3ZWY2NjMwZmZmMjVkOTgwMDgwNDdmIHJlbGVhc2UyNS1tYWludAorNTM1MzQgMDMxNDRjNDg2NzgyYzFiMTNlMWJhNjA4NzhiNTlmNDhlMGZmMTYwMSByZWxlYXNlMjUtbWFpbnQKKzUzNTM1IGRiYmRmYzAzOGRjOTQ3Y2Q5MjQwYmMyOTc1ZjgyODI1ZTdmMjdjYWUgbGVnYWN5LXRydW5rCis1MzUzNiAzOGQ5NDRlZmU2MDBjNmM0ZWY2OTdlZmUzOTU4ZjQ1M2Y5MGI2MjZjIGxlZ2FjeS10cnVuaworNTM1NDMgNDgwN2E2YWJmOTA2MjRjOThiNzljNTUzYjEzYmMwNTAyZTM5YjZjYSBiY2Fubm9uLW9iamNhcAorNTM1NDUgMGQwOTZiMTQ2YjQ4NjhiMzI4YjU4MDAzYTc1NmVjMDNkYjJjMTE1ZiBsZWdhY3ktdHJ1bmsKKzUzNTQ2IDQxNThiYTdmNDZhMDM1YWE0MWNmMjI5MWRiZmI3NmY0Zjc3MTIwZTAgcmVsZWFzZTI1LW1haW50Cis1MzU1NiBhNWIyNjljZTA3OWRlZGM2YjBmZjRjOGI0MzE5NGUwNWUwOTAwOTlkIGxlZ2FjeS10cnVuaworNTM1NTggNjU2ZGQwMDk1ZjUyZWRjMThkZWU5NWQyM2Q2OWJhY2IxOWFhYmRjMiByZWxlYXNlMjUtbWFpbnQKKzUzNTYzIGU0MzgxNmRkYzRmMDVkMzE4ZDU0MDllNzJhY2E5ZGM3M2RjN2E5YTggbGVnYWN5LXRydW5rCis1MzU2NCAxNWRlY2EzOWUwZTZiYmM3OWNjNDgxNjA2M2RiY2UyMjAwYjIzZjJkIGxlZ2FjeS10cnVuaworNTM1NjkgNGZhOWM4MGZiMTdhYjg2YzE5ZDQ4ODRhMzU0ZmM1MjU5MjM5YjNlYiByZWxlYXNlMjUtbWFpbnQKKzUzNTcwIDExNjNmNTVkYWQ5NWY4MGNmN2YwNWVmMThiYjg2ZGU1N2YyZTdjNWQgbGVnYWN5LXRydW5rCis1MzU3MiAyYmJmMTdjMWM2OWNiOWQxYmRjY2ExNGRjMzg0NDcxMDFkNTA4MTY5IHJlbGVhc2UyNS1tYWludAorNTM1NzMgMTI4NTUwMDBlMTNiZGVhYjQ4ODdjNzQ0YzNlMTY1OTk1NTY3NTlhYyBsZWdhY3ktdHJ1bmsKKzUzNTc1IDIzNDNjNjhjYTFjODdhM2FmZjUwMjNhYjI3ZDgxYjBlOGNhYjU1MDcgbGVnYWN5LXRydW5rCis1MzU3NiAxNzUxY2EzZmVmZmU5NmI0NDhmNmUzNjJiNGQxNjJjYzlmYjdmMjk1IHJlbGVhc2UyNS1tYWludAorNTM1NzggYzlkN2I4NmY5Mzc3Y2IxOGJiZjEzNmZjYWJmOWNhY2VhZWUxMGFlMyBsZWdhY3ktdHJ1bmsKKzUzNTc5IDI0MzFmODJhNmExNzU2ZmE3NGFkMjJjZTNiNzIwMTdkYTRmYTFmZmIgbGVnYWN5LXRydW5rCis1MzU4MCBhZDkzNmUwYjZmY2ZkMWJiMmRiZjlhN2EzOTkwZjFjYTM3OTgzNzIyIHJlbGVhc2UyNS1tYWludAorNTM1OTAgMTc4MmI2MjJhYWM3MWI5YjBlM2FhZDkxM2E4ZjY1YzkxZGUwNmQ5OSBsZWdhY3ktdHJ1bmsKKzUzNTkxIDJkODIzOWFiZmE2MGZhZTNjMWJlNzVlYmMwZGJjNDRjOGUyZDViOGMgbGVnYWN5LXRydW5rCis1MzU5NCA1ZmM4MTljNmMxM2UyZWY5ZTdiZDVkNmU3MDYwZGY2Y2JmMGZhNWI4IGxlZ2FjeS10cnVuaworNTM1OTYgZDYwYWQ5MTRkODMzZWU5NmNkYmViMzRjZDVhY2M2YjRhY2QxMGM2MiBsZWdhY3ktdHJ1bmsKKzUzNTk3IGFiOWM4NjUxOTYyODFhZmEyYTc1NzdjZjY2NDllNzU3NzhlN2MyMDYgbGVnYWN5LXRydW5rCis1MzU5OCBmZmI5NTgwZjk2N2JhYTZjOTYyMjg1ZDVkODM2NmVmODE1ZTBhNzk0IHAzeWsKKzUzNTk5IGQ1YmFiYjMyNmE1MGQxMDNiMDE1NGJlYzRkNmMwYjI1MTA4MzA4ZmYgcDN5aworNTM2MDAgYTI2NDQyMjI4MDU4NTVjODE3ZGYxZDUzNmMyNDgyN2ZmMmM0MTY5YyBwM3lrCis1MzYwMSA1ZGFlMGQ3ZjY4M2FiMzc5NjkyZmQ0Y2I0NWE5MTkxZGQ5MmNlMjBkIGxlZ2FjeS10cnVuaworNTM2MDMgNGIxMDAxZGEzOTkyODZhODYzYWM2NTk5OTIyMTVlYWFiYTVkOTgxNCBsZWdhY3ktdHJ1bmsKKzUzNjA0IDBhY2EwMDM5Y2MxYjVlZDE1ZjEwYTlkZjQxZTI2NTg0N2QwMzc1NzggcmVsZWFzZTI1LW1haW50Cis1MzYwNSBiZDM3MzlhODcyNTk1YTA3MTZkOGY2MTc3N2MzMGZiNjlmZTg0YmE5IGxlZ2FjeS10cnVuaworNTM2MDYgMDM3YWJjYTgxN2I2MzgzYmRiNDhhNzc2MTM4NDQ2YTkyNTVlNDA4NiByZWxlYXNlMjUtbWFpbnQKKzUzNjA3IGMxNDdjNmJjNTc5ZjI4MThhZDEzMTMyZGEwODQxZWNkMzBhYWYzMWYgYmNhbm5vbi1vYmpjYXAKKzUzNjA4IDY3ZWM0YWZmYmQxNGMwZTRkODcxNWQ1YWFmMGRiMDYyMGM0NTNmZmMgYmNhbm5vbi1vYmpjYXAKKzUzNjA5IDBmMjBjM2JjNjI3MDZhMjJmYzFlYTExOTJkNmVhYmIwN2EwMmNhMTkgYmNhbm5vbi1vYmpjYXAKKzUzNjEwIDZlYmFkMmE2Yjk5MDc4NmFiNjEyM2JjOTZiNjE2NzMxNTE3YTJiYTIgcDN5aworNTM2MTMgNTgzODlkZWE2NTFjZDY5MzFlOGE0MWNhMzcxZWZlMWFhZWE3OGNlNCBiY2Fubm9uLW9iamNhcAorNTM2MTYgNzJjMGM2YWVjMWVkMTg1YzYzNmNlMTNmMDRhNWE3MDYzNWMyMjAxMiBiY2Fubm9uLW9iamNhcAorNTM2MTcgNTNhMzZkYjJjMzg3NjQwOThiZThmNjEwYWY2MDNiOTRhMDlkNGQ4YiByZWxlYXNlMjUtbWFpbnQKKzUzNjE4IDJhOGU5ZWZiNWQyMGMzYmM1ZGNjNzE5ZWUyNzE0ZTY4OWIwM2VhYzkgbGVnYWN5LXRydW5rCis1MzYyNCBhZDhjZGZiNjk4NzIxM2VkMGNkNmQ1ZDNkZTQ4ZjU3NWMyMDgwMjU4IGxlZ2FjeS10cnVuaworNTM2MjcgODQ4MDk2OGY0ZjRhMTRlOTI5MWFiNTAxNTU5OWQxOTE3ZjZhYTkxOSBwM3lrCis1MzYzNCBmMTcwMWJhMjQ1MmI0MGVhOGRiODljMjNiMmMzYTJjN2MzMzNhMzgxIHAzeWsKKzUzNjM1IGNjYWM2MzZiMTUyY2U2ODJmYjRmMjUyNTI1YmU0NWRhYmRmOGQ2ODMgbGVnYWN5LXRydW5rCis1MzY0MSA2ZDljYTkwZDhiZjc0OWQ5NWJkOTgwYWZkMTE3ZGQwMmNhNmJlZTU4IGxlZ2FjeS10cnVuaworNTM2NDQgMWFmOGZlZTMzMDEzYzBlNzYyYjI0MGE1ODQzNGVlOWUxNzJiYTMyYyBsZWdhY3ktdHJ1bmsKKzUzNjQ2IGQzZTg4NjMxZjkyYmI2YTA3YmE3MGU5NWQ5ZWMyM2ExZDA1Y2JiMWYgbGVnYWN5LXRydW5rCis1MzY0NyAyNjVjNTFiYTM5MTAyMzE0OWM2OWFkMDVjNTBhNThjNTYxNmQ2ZWUxIHJlbGVhc2UyNS1tYWludAorNTM2NDggMDlkY2FjYzhhMGJjMmExZTMwZmQ4NDdhMDM2N2Q3Y2FkNTg1NDY2OSBsZWdhY3ktdHJ1bmsKKzUzNjQ5IDA1MjhkNmY5NGViNmVlNjNmOGU0OGMwZDFhZjI3MDdiMzk4NzJmMTAgbGVnYWN5LXRydW5rCis1MzY1MCA2YzQxYjAxMjI3NDdhZjU5ZDUxZmU3OTRhYjBhNThkN2UxYjlkMjRkIGxlZ2FjeS10cnVuaworNTM2NTEgZDU5NGVjODU4ZmU5NzRkYzVkOTJjMTcwMTM2YjBmMjM2OTRkNmY0OSBwM3lrCis1MzY1MiBmODNkNmFhMzkwZjEwNmI5MmZiOGZmMmRmZTJkYTRlYjg4NThkOGRmIHAzeWsKKzUzNjUzIGM3NzkzMzQ1YTBjNTQ0YzI0ODI3Y2E1Y2JhMzY3ZDkyZGViNmFmZWUgbGVnYWN5LXRydW5rCis1MzY1NCA0OTliZjMwNDBhZjdiZjQ1M2JmZDMxZGUyM2U1OWIzYmQ1YWExYjQyIGxlZ2FjeS10cnVuaworNTM2NTUgNTZkYmRiN2I0MDRhMzliZTdhNWMyODMzYTY4MjlkM2RkMzk0ZWQwZCByZWxlYXNlMjUtbWFpbnQKKzUzNjU2IDA3ODc1NTQ5OGNmZTM1NTBiYjYwMTJkZWMwYjU2YTM1YTI3Nzk2ZjMgbGVnYWN5LXRydW5rCis1MzY1NyBkNTA5OTQ2OTNjOTI1NmZkMWUxYmNiZDcwZWVjZWFjODk1MWZlNDgzIHJlbGVhc2UyNS1tYWludAorNTM2NTggNDg3ZWYwZjkwM2UwMTU4NDE3Yzc4NWI5NGQxYzAzOThkY2E2OGM4YyBsZWdhY3ktdHJ1bmsKKzUzNjU5IDhlYjAzYjExODE2NDBmMTllNTQ5OWIyMmMyZDNlMjRmYmUyM2U0ZGYgcmVsZWFzZTI1LW1haW50Cis1MzY2MCAyOTAwYzc1NjQwNTVkNjJjMmRmODBhNjdiMjdmNzQ4NWY2MjY2ZWY3IGxlZ2FjeS10cnVuaworNTM2NjEgMzAyMjc3OGVlMGNjNmQzNmZiNTQ4NjcxNzM4N2RiM2QwYjEzZjQyNSByZWxlYXNlMjUtbWFpbnQKKzUzNjYyIGZmYWFhZTAyYzY2MjljYzU1Njg4ZWQ4ZTM2ZWUwMTUxNTk0MDdmZGQgbGVnYWN5LXRydW5rCis1MzY2MyBhMmQ3ZjRjMjllNWIwODkxM2RmZTdmYzk5NDM5OGJmZWQ1OGVlNDk0IHJlbGVhc2UyNS1tYWludAorNTM2NjQgYzk5NGMyNDVkOWFiNWNmOTY1NzA1NDg0NGNjMTAzODcwN2Q3ZTE1ZCBsZWdhY3ktdHJ1bmsKKzUzNjY1IGQ4ZmIwZjZhYWFkNDNjYjJmODIwMzg4YjIwM2NiOWIxZGFjZWMxN2IgcmVsZWFzZTI1LW1haW50Cis1MzY2NiAxYWQwNTY4NzM3ZjYxMDEzMjRhNTQ3NTJmZGExNzJiOWVkNzU2ZGJjIGxlZ2FjeS10cnVuaworNTM2NjcgNDdiYjI4MDNlYjFiZTM2OWRmMzhiOWNmNjgxYzQyN2FlZTExYTkwYyByZWxlYXNlMjUtbWFpbnQKKzUzNjY4IDFmNzFhMzJmOThkMjNiYzAzMDQxYWQ2ZWE3NjYwZmE4NzkwMTkxOGUgbGVnYWN5LXRydW5rCis1MzY2OSBhMDRjNzgxNTQ2ZWQyYTk3YjNmNWI2YmJjODUzZDBjM2IxMDBkODRkIHJlbGVhc2UyNS1tYWludAorNTM2NzAgOWY1ZWFlYTNjNzk1NDA5YmMzMzU4ZmFmYjRmOWVkYzZhOTExMDkxYyBsZWdhY3ktdHJ1bmsKKzUzNjcxIGU3NzZjODNhMGMxOWUyNzNlNzIwOGYxY2ZkMmE5NjFiMGE0NGZiOTAgbGVnYWN5LXRydW5rCis1MzY3MiA3MTU2Y2ZkYzM2NjdlM2JmZDA1MmQ0MThiZGEzNmY5MmI1OTkxYzdiIHJlbGVhc2UyNS1tYWludAorNTM2NzkgZjdlOTA3MWMzYTFmMDBlZDcxMjRmMWRlMGRlMGEyOGUxZGU2YzhmNyBsZWdhY3ktdHJ1bmsKKzUzNjg1IDc5M2UwMzIzZDRkNjViZmM4OWI0MGQ3ODE2MmNkNzcxYzU3NWExOGUgcDN5aworNTM2ODYgNGNkZjIxYTBkYmJjZTg5MWU3NWE5MjBkNGZhZjRjMGVjYmRkODMzMiBwM3lrCis1MzY4OCAxZDU0M2EzMjAzNDYxMDczMDVjNDkxM2Q4MjdkMTQ5ZjIwYTQzNDg3IHAzeWsKKzUzNjg5IGY2ZjM5MWQxZDA1MGZlMzZkMDAyOGZlYzJkY2UxMjJiZjMwYzQ0ZTkgbGVnYWN5LXRydW5rCis1MzY5MCA4M2VmZmY0ZDVhZTk0MjU4ZWM2OTJjZWJmYjE4MmJmY2VlZjcwYzViIHJlbGVhc2UyNS1tYWludAorNTM2OTEgNGQ5MTU2NDY0NjczNmRmNzEwNzgxOGEyOTlhZGNhYjU2YzQzOTgzZCBsZWdhY3ktdHJ1bmsKKzUzNjkyIGI3MDQyYmRmOTBhOWJhZTQxNGY0MTQxNThhNjEzNzgxZGU2OGRmZjUgcmVsZWFzZTI1LW1haW50Cis1MzY5MyA5ODQwNDFlNzQ0NmQzMWM2YTNiYTA0YjVjNTlhMDA4YzZlYWFkNTczIGxlZ2FjeS10cnVuaworNTM2OTQgZDJmZTg5M2E0ODQzNzI1NzA1OTcwM2QwNjE4ZTY4YjZmYTMzN2ZlZSByZWxlYXNlMjUtbWFpbnQKKzUzNjk3IDI2NmMxYjBmOWUxNmM2ODg2NjQ2YWIyOTM3ZTA0NDBiNjZlNmM0MTYgbGVnYWN5LXRydW5rCis1MzY5OCBiZTI5NTg3ODI1NmFhYmNmM2VlMDYzZGMwZWRiNmJlNTNkYTI5NTc3IHJlbGVhc2UyNS1tYWludAorNTM3MDEgMjI3NjBkNTNkNGRhNWQyODc3ZjgxNGZhMTlkZDYxYmY3MDA2YWJhNiBwM3lrCis1MzcwMiAwY2UxNGM0Y2ExMzM3ZDEwNjgzYTQ2OWE3N2FjNDNhYzg4YmU0YmRhIHAzeWsKKzUzNzAzIDY5MTdjNjc2YzkyZmJiNDljZDFiMTI1MjJkOTNhNzNhMzhmZDRlOWEgcDN5aworNTM3MDQgZTlhNjIzNGIyNmFmZDFlMDI1Mzk2MzI1NTIzYWNiYTNkMWEzZmFmMSBwM3lrCis1MzcwNSBlOGIyOTEzZjkyOTdmNDdmOTQyYzE1ZDNhOTNmMWRiMDA2NDEyMjlhIHAzeWsKKzUzNzA2IDhkOWEwZWM0ZDk3NjAwNzc2Mzk4ZTk5NmRkZDJkMjhkMGUwOTE2YmQgcDN5aworNTM3MDcgOWZkOTY0MDg4ZTA3MDVmNTJlODUwNTdlYTAyZWViMTc1Mzk2N2Q4NiBwM3lrCis1MzcwOCA4MWU0MDM0YWQ4ODM3NjEyMDI2ZmYxZWRkZjgxZWUzNTVmMTllNDYyIHAzeWsKKzUzNzA5IGMxNWNmZjJkZDE4ZjVjZWQ5NTliNDVmMTE3ZDNiMTQwOTIzMTMwOGEgcDN5aworNTM3MTAgYjdmODlkYjlhMWQwNWFhODY0NWE1NzhiYjY4YTdhNDNjYWNlZTg2YyBwM3lrCis1MzcxMSA0M2UzNjljYzAyYzU1ZjQ3M2Y2ZDRhNzU2ZjVmZmM4ZDQxODkzNzJlIHAzeWsKKzUzNzEyIGM0YmU0OTNkY2I2Zjk0YjU2YmI2YzVjZGJmZDcxMzI2ZTE3NjU3ODUgcDN5aworNTM3MTMgZmZkYzhkMzk4ZTQ5MTFiN2M0MWM4ZWNjYzc3MmE3ZjlkNWU2YmNjZSBwM3lrCis1MzcxNCA3MjI3N2UxOTY3YjJiNmRmY2UyMjQzY2Q3ZWU5MTJmNGJlMTFiN2QzIHAzeWsKKzUzNzE1IDA0ZjVjYmM3NDQyNDFkYmQ0NjRlNDkzZWViMGE4NWVkYWEwZTkzY2EgcDN5aworNTM3MTYgNjc1MjVlZmM5OWM1N2Y3YTk3NGI4ZTM0MGY4MjUxYTU4ZGZiZjMzMyBwM3lrCis1MzcxNyBhZThlZTllNWU4MTUwMzhmY2Y2MDhjMDQ5ZDk0MDUxOWY5MzBmZWY0IHAzeWsKKzUzNzE4IDU2MjJhMTNhZDhhYjExZDcwMTNlMTE2YmFhM2U2ZmYyMTViMmExZjUgcDN5aworNTM3MTkgZTI4MDBlOGRkOWM0ODRjNGE5ODk1ZmNiYTY5NThhZDJmN2JiOGQ0YiBwM3lrCis1MzcyMSA0MzVlZDY0MWEzMzNmODMzOTYzM2FlNzExMTEyOWZiZTFmM2Y4MmNiIHAzeWsKKzUzNzIzIGVhZWRmODRlYWJjZGY2ODM4ZGRkODQ5YWE0MTZjN2I4N2JmNzI5OWYgcDN5aworNTM3MjQgN2RhMmFlMWE0ZjcwOWQwZjE0ZDNhOWU1OGFkNmZkOGIyZTcxYTllYSBwM3lrCis1MzcyNyBmMjI5NjQ1ZDYwN2RkZTNlOTBmMTMzZDM0OGUwMjA5ZDZjZDk5ODE4IHAzeWsKKzUzNzMxIDM1M2MwMDlmNmM1Mzg1MjU0MGZhY2JhMGQzMWM2NTNlY2E3NmRjOTggbGVnYWN5LXRydW5rCis1MzczMiBmMzQwY2IwNDViZjkyZDBlNzc3MjM4NWE3MTk3ZTliMGFmMzdmMGE4IHAzeWsKKzUzNzM0IDRhMDFmNmUwMjAxNjg4NjQxZGY1YWY5Njk0ZDI5ODEwNDZlZGM1YzEgcDN5aworNTM3MzUgNWRiY2UyZWExMzNjM2MwMWU3NmIwYzZkM2E0OTQxNjk1YWJiYTkxYiBsZWdhY3ktdHJ1bmsKKzUzNzM2IDkwNTM2YmUwOTNmN2RhNWY5ZGU2NjM4YjFkNjUxMWRiMDNiNzdjY2IgcmVsZWFzZTI0LW1haW50Cis1MzczNyBmY2Y2OTAyZjIxMGVkM2IwNmI5NWJjNTIwNDUxZTc0OWJlYmNmZmQ4IHJlbGVhc2UyNS1tYWludAorNTM3MzggY2I4MTIzYWIyYTA2NWQ4YTA5MGQxNDIzY2ZhYTEyMTNjY2NlM2U0MiBwM3lrCis1MzczOSA1ZGU3NTQ3YTVhMjM3MTExMTM4NjYxMmE5YTlhMmZhNjIzYzA2NGVkIHAzeWsKKzUzNzQwIDNkMThkOGYzNjZiMTE4NGQ2MTliYTc0OTUwYTNkNzE1OGQ2NGQyNTkgcDN5aworNTM3NDEgMjlkNjU3NDFmNmM4OTZmMmUxYzE5M2UwMjBjZjdkZGI0MTI3MjliMSBsZWdhY3ktdHJ1bmsKKzUzNzQyIGE4NDQ2MGU1MzE2MDkzZDAwMzBmZWI4Yzc2MGFjMWMzYTk4ODU3MjQgcDN5aworNTM3NDMgNWVmNzBjNDlkODVhMjQzMzViNDNhZjQzYzNmMDliNmRmNjMxOTJhMyBwM3lrCis1Mzc0NiBlNjY4NWM4NDBlZTNjMTFhOTFlMGEzMzcyMWE1N2IxN2NmNTFmODM3IHAzeWsKKzUzNzQ3IDQyOWE0YmMzMWM4ZTM2NzBlNzAwMGZhNTQwOWM3ZTJiODBmNTQ3NTAgcDN5aworNTM3NDggZGNhOWJjODgzMDQwOTY1OGZiNzcyYTZkMGIzMDUzYzZkZDQzNDVkNSBwM3lrCis1Mzc0OSA1MDMzMGQxOGQxY2Q3MTQxYmFmYzJjOGE5OTgwYThiOGNhODgzZDc2IHAzeWsKKzUzNzUxIDE4MGQ0ZTg5OTY4MzkwNjlmY2E4ODE5Y2Y5ZjNjY2M1ZWEyZWEzZTEgbGVnYWN5LXRydW5rCis1Mzc1MiBlYzFlYmRmNTRlYWZkOWFiYjE0MjQxOGRjNjVjYmE0YTYyZGQzMDBhIGxlZ2FjeS10cnVuaworNTM3NTMgYmJlNmRlM2E5NzQ1MDA2ZjQxMjVhYWMzMjcyY2ViYzQzM2YzZTNlYyByZWxlYXNlMjUtbWFpbnQKKzUzNzU0IDcyNGUwYjYzYTc5YjVkNGIwY2IxNjdhYjhmOTYwZWM1MWU2YjM5MjggbGVnYWN5LXRydW5rCis1Mzc1NSA3YWQyOWU5OWVlYzg1NzI2MjBmY2YwOTg3MDNhYTU1ZDYwNGI5NzY1IHJlbGVhc2UyNS1tYWludAorNTM3NTcgMzJkNDZhYmFhOGFiYTRjNWU3YTljYTgyOTUyNTIzY2RjZDgxZDk2OCBsZWdhY3ktdHJ1bmsKKzUzNzU5IDlkMjUzY2QzOGI1YjY1YTNkNmM2NGM0OGY4Y2FmMzQ1ZTU1ZTQyNmIgcDN5aworNTM3NjAgMjhjNGQ5Yjc3NDBlZDAxMDM4NTczZWZhYzcwMWZlNzAxNzhjYjA0NSBiY2Fubm9uLXNhbmRib3hpbmcKKzUzNzYxIDM1YzBkMzhhY2RjZTA4MDJmM2JiZDA0N2Q2YzAwM2VjYzAwYzE0ODkgYmNhbm5vbi1vYmpjYXAKKzUzNzYyIGQ0YTZhNjdhMDBhMGJhMzViYzIxYjlhYzMyMDNlOWIwODU4MGIwYjQgcGVwMzAyX3BoYXNlMgorNTM3NjMgODFkNjhkZDg0YWEwNWNmOGQ1OGRmNTVhZjE3NDZkODFhOTk5ZmIxNCBsZWdhY3ktdHJ1bmsKKzUzNzY0IDFkYmE2MWMwNzcwMzRlMTY4N2ExZmY2MTVhYzJkYjdiYWYwODcyZWEgcmVsZWFzZTI1LW1haW50Cis1Mzc2NSBkYWYwNjM1MjdiOTcyMTRjOTVlMjczMjdkZGQ5OTJlYzA3ZTRkMDJlIGxlZ2FjeS10cnVuaworNTM3NjYgZDk0OTkzM2NkNmI0NmM3MmNmN2M0MDI5MTQxMmQyYzZlYjdhZjYxOSBsZWdhY3ktdHJ1bmsKKzUzNzY3IGJkMjRkMzgyNmNjODNkZjBjOWI1OGNkZGYxYzdlMmM0YzczMjYyZjQgbGVnYWN5LXRydW5rCis1Mzc2OCAxNzdhN2JlZTY0ZTllYjJkMzc3MmNlZmY4MWQxOWMyYzlhOWFlZGE0IHJlbGVhc2UyNS1tYWludAorNTM3NjkgM2JiZWM5MWM1YjhmZTY2ZWMzNGYwZjhmMWFiMDg4NGExNGE4OTMwZSBsZWdhY3ktdHJ1bmsKKzUzNzcwIDg4NWE3N2ZkNWMwMWM3ZGJmODNhMjlkNWRjYmU5OWY1OTZhMDkwNzEgcmVsZWFzZTI1LW1haW50Cis1Mzc3MSAzOTgzZWUwZjZmOTY0ZGJiMjI4ZjVlMWIxNTJkYmFkZTk4YWM1NTlkIGxlZ2FjeS10cnVuaworNTM3NzIgZDQ3NjhiZmY2NDNlYTgxM2Y2NmViNmQ3OTcyMTVkMmI1MmE1YTJlOCBsZWdhY3ktdHJ1bmsKKzUzNzczIGFiZmQ5NTE4NWFiOTkxOTM2OTQxZGFkYzQwZGFkZjVhZDIxZjZiYjQgcDN5aworNTM3NzQgOTBlMjJmZWE4MzYzNDQ1NjdkYzU1ZGU4YTlhOGEwZGFiN2NlODNjOSBsZWdhY3ktdHJ1bmsKKzUzNzc1IGRjNTY3ODliMjllOWE2M2I0ZjU3MDRmMGQ4MTQ1MTAzOTcxZjE4OWMgbGVnYWN5LXRydW5rCis1Mzc3NiBhNjU0NmMyNzM2OWE2YzRmMTMwZTZkZjEwZWM2N2ExNWJiZmRmMjMzIGxlZ2FjeS10cnVuaworNTM3NzcgMDk3MmMyMTc2YWY5YjlhOTBmOGZjYjBmYzRlYTVkYjQxYjJhZGFjNSByZWxlYXNlMjUtbWFpbnQKKzUzNzc4IGE2MjE4NGIwM2YwZjE1MDJkMGFiOGU3ZGVmOTJjOWI2NjZiZmE2ODIgbGVnYWN5LXRydW5rCis1Mzc3OSA3MzQ4MWUwNzc3NThhOTQxOTNmYjAxMWZlOTY2YWM1OTc4ZWVkYzkxIHAzeWsKKzUzNzgwIDUwMmRlMDc5YWIzYTIwNTIwMzM1MWEwZmY1MDJiOGQ4NDA5Njk2MDIgcDN5aworNTM3ODEgMWQ1M2VhMGZjMjNmMTVmNWQyYzYwNTc2ZTk2YzMwNWJjMGZhNzI2NyBwM3lrCis1Mzc4MiA0OGI2ZDAxNTM0MGFlNjk3ODhiNTk2OTM0ZjA0M2YzZjFmNTcyMjI3IGxlZ2FjeS10cnVuaworNTM3ODMgN2U0YjYzNWYxZDMxZGJhMGQ3ZWFlMWUxM2FiM2U4MGNjNGZhM2EyOSBsZWdhY3ktdHJ1bmsKKzUzNzg0IDk5YjBlMDRiMmViMWNhMDExZjhmYTgzYjMyZWM0NzgxM2Q1YzM2YjUgcmVsZWFzZTI1LW1haW50Cis1Mzc4NSAyYTI1MzI4ODNkODBmYjM3MmRiMmUzZWVhOGUyN2NlZTk2ZDc3N2Q2IGxlZ2FjeS10cnVuaworNTM3ODYgOTE0ZGQ1MDU5ZjM4ZjMyMjU1N2E4MjQ0M2NlMjhmNjFmNWNmMDJhMyByZWxlYXNlMjUtbWFpbnQKKzUzNzg3IDQ3NDk3N2NkNGQ5Yzg0NDE0MjhhOTE0M2QzN2VhYWEzNzE2MzA3NWIgbGVnYWN5LXRydW5rCis1Mzc4OCAyOWZiOGRiZDEwYjg1ZjRiMjlmNzk4OWQwNDVkOTYzMjdkM2I3OWFmIHJlbGVhc2UyNS1tYWludAorNTM4MDAgYmMyYmQwZjAxZDk1YjU0MzQ5NmZmYTE2YzViYmY2YTQyNTRhNThlMyBsZWdhY3ktdHJ1bmsKKzUzODAxIGI0YjMyNzg0MGZiMTUxMGU5N2M1NDA5NDA2MTQ2NjE0ZjU3NTNiZjAgbGVnYWN5LXRydW5rCis1MzgwOSBmNGY2OTVhNzU2NjRhZjNiYmYyZjc4NWQwNTMzZTNkNmNkY2U1ZDRiIGxlZ2FjeS10cnVuaworNTM4MTEgZDc5NWE1NWU5YmU0MWQ2ZDlkNTIwZDI3M2JmNjU2ZGZjMGRiMjY2OSByZWxlYXNlMjUtbWFpbnQKKzUzODEyIDczNmYzZDkwZTRlMjg0ODZmNzA3NWNjMDM4Mzc0MDY5OGQyYWQyNTMgcmVsZWFzZTI0LW1haW50Cis1MzgxNiA5ZTM1NjQ1YWY0MGY2ODJlY2MyZjkxZjY5ZTQwY2Q3MWRkNTg0NDA3IHJlbGVhc2UyNS1tYWludAorNTM4MTcgMzVhZTI4MjU3YTI4MDViNGE3MWU5ZWIxM2IxNzgwZjNlZDFmMDhlMCByZWxlYXNlMjUtbWFpbnQKKzUzODE4IGIwZjhlOWIwY2MxOTkyOGNjZjk3M2E1NTI4ZmZhNDNiNzc3N2ZmYWMgbGVnYWN5LXRydW5rCis1MzgxOSA4MWI1ZGY1Nzk4YzI3YTVhNGIwYzk4ZTFjZWYxOGVjZmZlNWViODk5IHJlbGVhc2UyNS1tYWludAorNTM4MjAgMzZkN2IzYjZlZTU5NmZlODE4ODE4MGU4OTJlNmZlZGZmMDZmZDQwNSBsZWdhY3ktdHJ1bmsKKzUzODIxIGQzODZiNDYwOTkzYjczYjg2ZmZkYWNjMDgyYzUyNTNlZWM0NTA1MmIgbGVnYWN5LXRydW5rCis1MzgyMiBkZjAyMDRjYTk3MzlmMTU3NWVmMDNhOWNiZDNkMjMwYTllNTZjOTZhIGxlZ2FjeS10cnVuaworNTM4MjMgMGNjNDUwYjg5ODM4OTE2ZDE1MjNiYjQ3Y2UwZTRiZjg1NTYxZWYyMCBsZWdhY3ktdHJ1bmsKKzUzODI0IGM5ZTQxM2IxZDU0MDZhMGE4YmY3Yjk0NDZjNGY3YmRiY2I0ZTM1NmEgbGVnYWN5LXRydW5rCis1MzgyNSA1NzdiZjIxYjJjODZkY2UwNWIwMDMxNDQ2OTlhYTE4YzI3MDFiMmNjIGxlZ2FjeS10cnVuaworNTM4MjYgNTNmZDE0NGEzZjFhYjNjYjlmMjU4MzAyYWI1Zjk4YTZiZTg1NDY3ZiBsZWdhY3ktdHJ1bmsKKzUzODI3IDY3MmI5MDc1NzY0NzEzZGE4ZDU2MGU3OThlYmEwYWIwMzc1NTlkOGIgbGVnYWN5LXRydW5rCis1MzgyOCBjMzRiZDY1ODllMWVlYmNkMzk3NTMxNzM2OWNjNzJkNmQ5Yzg3NGNiIHJlbGVhc2UyNS1tYWludAorNTM4MjkgZDVhMTVmODUzZGI3NGRlNzZjZTkyNmI1YjUzNTVmMTFiNWVlNjhhMiBsZWdhY3ktdHJ1bmsKKzUzODMwIDAxZDU0Yjg4YmY1ODZlM2I4ZDBiNGE2MzQ5ZTIyZDY3NDYxNTBiOWIgcmVsZWFzZTI1LW1haW50Cis1MzgzNyA2ZmEwZDY4MmUxZTU1MGFhMDFiM2QzM2MxYmQ3MjE2ZDI1MTk2OTFmIGxlZ2FjeS10cnVuaworNTM4MzggODEyODYxOWU5ODRkZTk4Y2Q2NzE0MDU0YThkMmE2NDc2ZDk5NTdlNiBsZWdhY3ktdHJ1bmsKKzUzODQxIDQzNzk3Mzg0MTE1ZTU5ODg4MWU2MTE2YTAzZGIwNzc0MzRkNzljMWYgcDN5aworNTM4NDMgNTVkZWIxZGE0Y2I4ZGUxNjM1MzEyZTRmZGQxZmM5NTExZWQ3NzgzOCBwM3lrCis1Mzg0NCBlNjhiNDhjMzlkOGFjYjUzZjNmMzE1Zjg3OWYxOGJhM2UzOTgzMWMyIHAzeWsKKzUzODQ1IDYwODgzZTYxNDI5OGYzMWE2Y2U2OWRmNDQ0Zjg4ZWM2NzYyNGE0NTEgcDN5aworNTM4NTIgM2ZiY2Q2ZTJiY2I3N2RkZDljZDA4MjQ4MjRhYzNhZGQ5OTNiMzFhOCBwM3lrCis1Mzg1MyAzNDI3YTk3MzQ1ZmNmZTc0OGNkNGM4OTFhNjM5NGJiYmU4ZGYxMmIyIHAzeWsKKzUzODU0IGMxNjRiMGI3NTk3MTYwZWY1MjI0ODgyMjEzY2JmNDQ2OTdlNzU3NWQgcDN5aworNTM4NTUgMTI0ODlhNWRmYjRhYjAyZWY2MzczZmIzZGFlOGExMGRiNTE1ZWNlYyBwM3lrCis1Mzg1NiA5MDk3NjVlYjM4MWJkZjViNzg0YmNhODljYzU3NjlhNDA2Nzk1ZjkwIHAzeWsKKzUzODU3IDI5OTg3MjQ0OTA1ZGZmZDQ0YmEzZTVhMDdmMzEyZmM4OTVhY2Y4ZDcgcDN5aworNTM4NTggYzUwZTI2MzMwMWRhYmI1MWYwYTc2Y2ZlMTRkNjk0N2Q4YjI1ZDUxNyBwM3lrCis1Mzg1OSAyMGUwOGE4NzkxNWE1NWFhODUyYmY2MjYzNTYxNjUwZTAzN2Q4ZjQ4IHAzeWsKKzUzODYxIGYzYTU5YWNjYTUxZmZlODcyNDA4N2M2OGQ0ZDE1MDA4MzAzODZhZjIgbGVnYWN5LXRydW5rCis1Mzg2NCBjOTNmOTJhN2Q5MjAyZTJhNTIwYjgxNDRmMDEyOWUzNTMyNTI4ZjJiIGxlZ2FjeS10cnVuaworNTM4NjYgMzJjNDg5N2I1ZDQ2YzAwZWVlY2VmMWJhZWM3ZGMyMWQwZDFiYjVjMSBwM3lrCis1Mzg2NyAzYmFjNDkyNThhNGE1ODBmOGQ5OTUwNTk0ZjU4Y2Y3ZjE5NWVlZTg5IHAzeWstbm9zbGljZQorNTM4NzIgMGVhMjRmNGYyNDY3YWZjNDkzZDEzNGY1NThhYTQ3MGNiZTgwNDdlOCBwM3lrCis1Mzg3MyBiZDE0MTllOTQ3NzNmMDhhMGJlZDYxMTQyNDBmYTNlMjM5YjE5YzQ3IHAzeWsKKzUzODc0IGIwNTc5MGQwNjZiNDc0NGU1MmQzYzcyZDkyOWJkZjE4N2NjMTYwZjQgcDN5aworNTM4NzUgNTgzZmU3NTNlNzIxMjk3OTEwMWI0ZWUzMmU4NWUwZDNkMTUzMTEwMSBwM3lrCis1Mzg5MiBiNThhNDM3NGFjMjFlNDViMWEwNjJmMGU3ZmZjMDBkMDMzZDg1Yjk5IHAzeWsKKzUzODk3IDQyZTc5YzU5MjEyZDIyZDI1MmEwNGY4NTViN2Y3OWIzMmIxNDAzNjkgcDN5aworNTM4OTggOTMwNDdlZTQ4NmRhNGEwOWY0ZGRhMmQzYzZhM2QzZDUyMTUyYTQ1YSBwM3lrCis1Mzg5OSAyZTRkYWMwNTljYzU0YjNhNDBlMjM3Y2RjYTU5OGUzODdhNTczNDMzIGxlZ2FjeS10cnVuaworNTM5MDAgNjVjZDFmMjgwZTYzYzBiNjZlMGU2ODdhMDA1NzY4ZjlhYWY4ZWJiZCBsZWdhY3ktdHJ1bmsKKzUzOTAxIDg4MmI5YzE0ODk1YzBjY2U1ZThlMzgwMWM5ZjNjOWZlYWE1MDM0YzEgbGVnYWN5LXRydW5rCis1MzkwMiAxOTFjNDhjYThiZjljMTI2ODE5NTQyOGI4Njc4ZWI4NjJmMzUzYzkxIGxlZ2FjeS10cnVuaworNTM5MDYgZTg1NDI3MTQ5NWRlMTA0NGNhZjZkYWFhMDk1OWYyNTczMTNkN2FiNyBwM3lrCis1MzkwNyA4MzA4OGFkODNhNmIwZjJkYTgzMmFjYmFkNWQ2MWZhMmE4NzQ0MzA5IHJlbGVhc2UyNS1tYWludAorNTM5MTAgMGM0MTBjNzg1MzFjZjMwMjMzYWE4MTc1OTc0Y2ZlMTZlZmQ1OTMzNyBsZWdhY3ktdHJ1bmsKKzUzOTExIGQwMWJkMzdiZjVjZTUyNjE4MGQwYWEzMWNhMzkyZjczNjk3OGI0N2QgbGVnYWN5LXRydW5rCis1MzkxMiBmMmYwYjQxZjI3MGRhZTRjNjk4ZjJjYWZhOGU0NTMwZjFmMzk4OTllIHAzeWsKKzUzOTEzIGVhYWVlNzg1ZWI4NmQ3OGYyNDJjZjQzY2UxODA0ZmE2ZDU2ODdiMDcgcDN5aworNTM5MTQgOTdjNzdiMWUzNGJmMjQzMTIyNTQzZTJlNDFhZjg1YzBjZTcyMDdhNiBwM3lrCis1MzkxNSBhOGMzYWFhYjAwZWEyMzI0YTZmMDE4MDY3ODZkNzFlNzhlMDI2MTZiIHAzeWsKKzUzOTE2IDE5YWZiMDMwMmEwNmViMWU2YWJjNzU1ZjI0ZjUzZGUyMmE3Yzc0ZGUgdHdvdXRlcnMtZGljdHZpZXdzLWJhY2twb3J0Cis1MzkxOSBkODQyZTM1ZjVhMzEwZTU0NmVlNTZhMDViZDEwNTYxZTVkYmNiNzBkIGxlZ2FjeS10cnVuaworNTM5MjAgMDcwYjlhMGI0YzA0MDQwN2YzN2JlMjllNGMzOTkzZmE1YjM2YWFhOSByZWxlYXNlMjUtbWFpbnQKKzUzOTIxIDEzZjM5MzFiOWZjNDY5Mjk0MmUzZWNlNjJkZDBmYjliNjkwNjcwOTcgcmVsZWFzZTI0LW1haW50Cis1MzkyMiBmNTc5MGY5NmFjZjNjMzlkZGNjN2QxZmMxN2FlZWEyY2U3ODk2MWY4IHAzeWsKKzUzOTI2IDViZDNhMjJiYTQ5NmIxYzQwOTJjMmQ0MmE0MDUwZGRmNGIxNGI1NDcgcDN5aworNTM5MjggMWI5NzJiN2UzNTJhZGYzMTA1MjkxNTEyNzBlZDE5YTk4OTFjOTVkNSBwM3lrCis1MzkyOSA0MGIxN2FmYzRhYTdiZjcxYjUwNGM5NDg3NjZmZmU0MGI4Mjg5NzY4IHAzeWsKKzUzOTMwIDBkMmRjMzYxMWUzYjM4MjZmZmQ5MzE1NjU0MDllMWMxOGJkZWIwMGIgcDN5aworNTM5MzEgNjEwYzdhY2M5OTgyOGU2MmUxZmQzN2ZiMGY2N2I4NmU0NTEyYTkzZiBwM3lrCis1MzkzMiBiZTQxZGE2NmNlMzdmNjQxZjViNjU2ZGZhOWU5ZjUyYjY5YjVmNWMxIHAzeWsKKzUzOTMzIDI1YTg0OTAwZTIwNTVjMTRjNzY2MGU0Y2U2MzViNTY0ODc0NWZmMTEgcDN5aworNTM5MzQgMDM4ODNhY2I2NTBiODA4YzY5ZGY0NjE5MjdmZGFjZDM1MGQxN2RjZSBwM3lrCis1MzkzNSA2MjE0NDNmYzAxYmJhMTU1OWQwOGJjYmJiNGZjNTYyYzI2M2JiNzU5IGxlZ2FjeS10cnVuaworNTM5MzYgOWQxYjBjMjk1ZWJiYzBmYzE3OGM2MmM0MWU5ZjYxYjEzMGQzNWM0OCByZWxlYXNlMjUtbWFpbnQKKzUzOTM3IDkzZjU4MjgwMzczMzA0ZGUyMTljOGEwNWM2NmZlMzkxMGI0Yjk4ODYgcDN5aworNTM5MzggN2JjN2Y3NDBmNjlmZGM5ZjkyZmQ1NDg4MjA3YTBmM2IzMDNmYTE0OSBwM3lrCis1MzkzOSBjMzQ1MWE3N2JmZDE2NGRmNWRmY2Q4MzcwZDUwOTg3ZDg5OTNmZDAyIHAzeWsKKzUzOTQyIDkwYzgwN2VlODc2N2IxYmI2NTA4MWI2YmFjYmJkMjY0OTE3ZDU2YWIgcDN5aworNTM5NDMgZWNlOGEzOWZhMjgyZWRjNjJlMTRmYjc2OWNiMTM4M2I2ZmQ3NDhmZCBsZWdhY3ktdHJ1bmsKKzUzOTQ1IDU1ZDdlOGZhNWVhOGQ0ZmE4ZTcxNzA3MzBkZjU1NmFiZDdkMWQ3YTIgcDN5aworNTM5NDYgYTI2MjliZTFiMWQwMTU5OTI3MTkyYTNjYWRlNTE1ZGRlNTIxODY5YSBwM3lrCis1Mzk0NyA4OWJhOTNjNzAxYzg4NDczOTZkODJmOTY1YzY3NWNhZDVhYjVlZDk5IGxlZ2FjeS10cnVuaworNTM5NDkgNDVhZmZhZTQ2NWU0MTE5MjkxODE0MmZlZmY3NDZmMjA0ZjUxZmZlMyBsZWdhY3ktdHJ1bmsKKzUzOTUxIDAzNzZmMTNhMWFmOTEzMDcwNDJkYzRhNWIyZjU4N2EzZWQ5YmIyZDMgbGVnYWN5LXRydW5rCis1Mzk1MiA2YWExYmU1ZGQwMDk4YjM1NzFmMzViYTcyMzk5NzI4MjRlMjdkMWRmIHAzeWsKKzUzOTUzIDJjMDNkNzA2ODM1ZTQ2MGJiZGM4ODgxMWM1NDBmOTEwNzgzNGIwMDIgdHdvdXRlcnMtZGljdHZpZXdzLWJhY2twb3J0Cis1Mzk1NCAwNDdlZTIzYzBmODc4ZTkzM2VjMjg0ODIxYWJmZmQ5NzNhNGQ5NDEzIGxlZ2FjeS10cnVuaworNTM5NTUgYzhjMDY3MzAyNjU5OWJjZDY0MGVmYWE5NTM2ZDRkMjkzNmQ2OTllMCBsZWdhY3ktdHJ1bmsKKzUzOTU2IDE4NTNjZjA2ZTM2YmEzMTJhYmQxMjNlOGMyZDE2OTg5OGI0NzdkMjggcDN5aworNTM5NTcgMmNhMTRkNmEzNjliNzI1YjEzZDQ5YjBhZTM3N2IzM2IyNTM0MjZkYiBwM3lrCis1Mzk1OCA4NjQ3MTkwZGI5NmNkMWFhOGI0M2IyNjRmMzFiNThiZDhiYzA0MmUzIHR3b3V0ZXJzLWRpY3R2aWV3cy1iYWNrcG9ydAorNTM5NTkgZmMyM2ZjODYzOWJhZjAwZGU1MWI0NDY1MTdmZWU5NmEyNDFkNzEwMiB0d291dGVycy1kaWN0dmlld3MtYmFja3BvcnQKKzUzOTYwIDRiOWQwZGFjNzljY2MwOWJjMWY3YjQ2MjEyYzcwMmYxNDAwNDM1YzMgcDN5aworNTM5NjEgYzc5ZTYyMzRmYjE5ZWY2YTM0Y2VhNWEyNTljZDBkZDZiZjZiMzRhMCBwM3lrCis1Mzk2MiBiYjczZDNhMDQ1N2U5NzdkODQ4OTYwYmRlZWMyZTc5NThjZWU2NjI3IHAzeWsKKzUzOTYzIDdmNzA3NGQ0ZjgyY2Y3MGNhMWQ3MDk4ZDNjZDIzODY3OTRmOTZmNTQgcDN5aworNTM5NjQgZDk3NmM5YTYzMTExNGE4ZmFiMWIwZjUxMTMzYmI0Y2ExMjA4MmQ0OSBwM3lrCis1Mzk2NSBiMDgyNmU4ZTQ1Yzc4ZWY1NDg4YmY4YTQ4YjljZWM4NzczNjE5YmU4IHAzeWsKKzUzOTY2IDMwOTNlYTliNDAyNDk3MjgxOWRjMDc3NDJlYzAwM2RiYzA2OGFiZTUgcDN5aworNTM5NjcgZTc1OWZkOGQ5NWFlN2JjY2M0NjI1OWUxZTA0ZDFhNWFmZDg0MzY0YiBwM3lrCis1Mzk2OCAxZTRlMjkyNDg2YjY4ODg5ODYyYTgwNDdjODAxMDk2NDAxMGJkYjM4IHR3b3V0ZXJzLWRpY3R2aWV3cy1iYWNrcG9ydAorNTM5NjkgZjNmMGM2OTdhYTViMTYzMmVkMmUwYzRhZjNkZDkwZGUyM2UzMzhjOSBsZWdhY3ktdHJ1bmsKKzUzOTcwIGVlMzYwMmM3YWUwNDE0NzRhOGM3NWRhZDA0ZGNiZDNkZmRhMDUwOWUgbGVnYWN5LXRydW5rCis1Mzk3MSA0MzA4MTFiZGJmZWY2NmJjOWE4NWVjOTRjY2I3YWI2OTk4OWFhY2RlIHJlbGVhc2UyNS1tYWludAorNTM5NzIgOTRjNGUzNmMzMTI0MmI4OWUwMjYwMTUwYjEyYWViMmMxZmQxMjEyNSBwM3lrCis1Mzk3MyBkYTczYjVhMGZkOTBhYmEzMmM0Y2IxZDA5MzRkZDA0YTNkNzI4ZDg5IHAzeWsKKzUzOTc0IDJjZTIyOWE3YmEzZjY5ZWM1NDdlNzlkYzQwYTViMmQ1N2Y1OGY0MDYgcmVsZWFzZTI1LW1haW50Cis1Mzk3NSBjODNhY2ZiMWE2MzJmNzk0NmYzNDZlNzIyZjcwZGU3OTFmM2MyMzQ2IGxlZ2FjeS10cnVuaworNTM5NzYgZmVkYjAzZWFjNmFkNmQxMTA0NTA0OGQyODk2YjFlN2ViMGFmNzQyZSBsZWdhY3ktdHJ1bmsKKzUzOTc3IGFhMTk1YTFhYTk1NTI4Yjg4NTMyMmRmZmFiYjRiZTMwNDE4YTM3MTEgdHdvdXRlcnMtZGljdHZpZXdzLWJhY2twb3J0Cis1Mzk3OCBlNWU5ODM3ZGE3MGI3ODYwMGE4MGE1MmU3NzI2ZmMyMzkyNGU3MWZmIHAzeWsKKzUzOTc5IDBlYTUyNTU4YmRmZWMyOWFmOWNkOWM5OGUwYzA1ZGIyYmQyNWEwMjIgcDN5aworNTM5ODEgNTQxYThiMWI1ZGE3NWQ5YWY1NDk0MzQ3MDRiMWFiNTYzYjcyMDc3MiBsZWdhY3ktdHJ1bmsKKzUzOTgyIGU2NmRkYjZlMzRlODQ0Njc3NjVhNzZkZTdjY2UzY2ViMzM0OWQ2NGMgcDN5aworNTM5ODMgNDE2MjkyYzgyNDljZThjOTA4MGM1NDExMWZhNzg4NDcwNWZhZWM4NSBwM3lrCis1Mzk4NCBjMjRlOTVkMTE3NTIwMWI1NzQ3MDQxNWFiYzNiMGUyYTBjYjQ3YWFkIHAzeWsKKzUzOTg1IGQ1NTQ2ZjA5ZjIwZTc2MzhiNzU4MjQ4ZTVkNTRmMWI4NzZlMmFhZDIgcDN5aworNTM5ODYgMzBlNWNiM2E1NWFjMzE0N2Q5ZTkyZWEzODhmNGY3OTQ1NjE2ZTc2NyBwM3lrCis1Mzk4NyAxNDBmMzUyNDAyN2YwZTBiNWE3MGNlMmZmMTU5NGYzMWJhMjQ2YzhkIHAzeWsKKzUzOTg5IGE5ZTZjNzNlMGZhNWIyMTMyYzE1MzFjMzFhYWVmNGNmZmU0ZDUyNmIgcDN5aworNTM5OTAgMmQ5ZDEwNzAyZWM0NGUyZmU0Y2Y4MTQ5YzZjNmYyNWE0MzRlZGMyMiBwM3lrCis1Mzk5MSA2YzBkMGJlODJiNDdiYWYyOWE1ODExODQxYzU4Yzg4MjcyOWFiZGVmIHAzeWsKKzUzOTkyIDExNzc3Yzg4N2Y3Y2UwMGU0YmQ3Y2VhZWM2MTM2OWZmOGI5N2U0NTUgcDN5aworNTM5OTMgYTJjOWViOWFiNjA5Njc0YjQ1MmYzZGJiNDk5OTFiMjY3NWMzNjE2ZCBsZWdhY3ktdHJ1bmsKKzUzOTk0IDBiNDc0NDZjYzQwODRhMDM4MGRiOTY3NzE4ZTQ3ZjcxZGU0MzU4ZTMgbGVnYWN5LXRydW5rCis1Mzk5NSA0NmY3NzFlMjY3YmM4MTU4MjhiNmVkMDZlMDIzY2Q1YzNkNGRjYWEyIHAzeWsKKzUzOTk2IDNjYWJiZmE0Mzk4NDA5M2IxM2Q3Y2M0YjNkZjk0ODk4YzUxMWU3NWEgbGVnYWN5LXRydW5rCis1Mzk5NyBkNjI4MDVhOTkzYzUwODgxOTgyZmY1MWVkMDE2ZTQxYjY5YWM1NmRjIGxlZ2FjeS10cnVuaworNTM5OTggNWVhZDMyMTMwZjY0NmU4YjJlNmFmY2UwZDk3YjMyMzVkNzYxMDFhZSBsZWdhY3ktdHJ1bmsKKzUzOTk5IDRhNGY2ZjAyNmYxYzU4ZjQ5OWFhY2E4MjY2ZWNmMTE3MmIyY2UxNzUgcDN5aworNTQwMDAgNjFmZWUxODUzY2E4OGYzODIwYmY3YTNjNjNmYmY0NWE3MjU2MWQyYiBwM3lrCis1NDAwMSA4MGU4NjFlN2ZhYmU4ODg1ODZlY2RhMjdmNjhjNDk5Y2M0ZjZjZTM4IHAzeWsKKzU0MDAyIGMzYjI4YmE5MThmODNlYmZmMmU0Y2U4MTE2NTRkYTdkNGIzZjIzMTcgcDN5aworNTQwMDMgMWY3OTBkYTc5ODQwOWQ5MWNlODljYmQwYjBkN2VmZWY0NzY5YThiNCBwM3lrCis1NDAwNCA0MzFiMzIzODU5M2VhY2JhYzY1YTU5ZjE0Y2NiNGQ5OWViODE1NzZmIHAzeWsKKzU0MDA4IDc2Mjk2NGY5OTg3MTA0N2JmMDIzOTE5NGNhNzI1NGQxZDMyZDQ2YTUgcDN5aworNTQwMDkgYzAzNDQ3MGUzYzBhZWI5MTY0NzQxMzcyYTU3MGQ5ZWIxNGMwNzc0MiBwM3lrCis1NDAxMCA4YmViNzU0MDJlNzRiZjU1NDdkNGZmNDk3YjdiOGRhMDBjZjhkODM5IHAzeWsKKzU0MDExIDkzMDMxZTcxNjVhYjAxMjlmYmJkOGExMDlmNmJlYWIwMzRlOGY0ZDUgcDN5a19ub19hcmdzX29uX2V4YworNTQwMTIgYmE5MmU5YWRlMzZmMTE3OGFkNDU2NDc1NjgzMzg3NTViNmIzMTNjMyBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDAxMyA2ZDkxZTc0ZmNmNTVlNTIwODZkOGFlM2ZmNGIyYzE4MjUxMDkyYmIxIHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDE1IDM0YTdjMjllNjVkMTYyYWYxYTcwODUwMTA4ZWI3NGNjMDY1ZGI5OTggcDN5a19ub19hcmdzX29uX2V4YworNTQwMTYgZTEwM2I5MzdkNzQ3NTEwZTRlZTMxMjBlYWZhM2NkNGRlODk2MjMxMyBsZWdhY3ktdHJ1bmsKKzU0MDE3IGExYWVlODEwYjczOTY4NjA2MGRmZjBkZWUyNzFiMmY5MzRhMGM0ZjAgcDN5a19ub19hcmdzX29uX2V4YworNTQwMTggOTUzM2ViMGU4N2NmZmNiZjUyZjJjYzZmMTBjMmJmZWJkMzRhODc0ZCBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDAxOSBmMjUyNDY4MDU4NTA3ZWM3ZDk0NGQ5ODQzNjgxODMwNWJiZWQwODk2IHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDIwIGJkMzU5MGI4Yzc4ZWU1OTFlMDQxZWM1ZWIzNjNjZGNlMjcyMzA5NzAgcDN5a19ub19hcmdzX29uX2V4YworNTQwMjIgOWRkODZlYWQ1MWMzNzc2Y2Q2YTRhYTFiYzY0YjE3YmFmMDFiZDY3OSBsZWdhY3ktdHJ1bmsKKzU0MDIzIDE2NTQ2MWFkMzhkYjhlMDVlMTgxNTJiYWZiOTA1ZTkwZTA3YzE1YjAgcDN5a19ub19hcmdzX29uX2V4YworNTQwMjQgODNiOGM3MGVmZDFlNWYxYmVhNTgzNDI3MjZhYzVjOGRiNzI0ZjRiZCBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDAyNSA5ZWI2MGEwNzI4NWE0N2VkMzQ3MjZiODdhM2JiNmUxZTdmMzc0MTAyIHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDI2IGE4Yzc5YjFlNjk2YWU3ZWQzMmIxODU0NWIzZTMyNTAwN2IxYmUzNGYgbGVnYWN5LXRydW5rCis1NDAyNyAxNjViYmVkMzM3OWQ2ZDNmNDViZTFlZGYyYWUxMmY1ODQ3Mjg2MTBmIHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDI4IDJjNmNkOThkYjBiOGYzZTNlNzdjMzZjMDlkN2YyMjY5YjYzN2Q3OGEgcDN5a19ub19hcmdzX29uX2V4YworNTQwMjkgYjM1Y2ZkOGI0OTEwNjE0ZDJiZGQ3MDAxM2VlMDgyYmM5ZTUxNTJmYiBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDAzMCBhYzBlYmFlNDU4NzIyMmRjYTIxZGQxNDc3ZWFmNGM5NDZhNjU3OTNiIHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDMxIDRjNTZmY2VmYjI4M2I3ZjZiYTQ1YjRlNWFmZTM5M2NiM2IwMzlhYmIgcDN5a19ub19hcmdzX29uX2V4YworNTQwMzMgNDA4N2MwZWM3MzNiYmE1NGU4MDEzNzI3ZWQ2NGYxNzNiOWE2MTc1ZiBsZWdhY3ktdHJ1bmsKKzU0MDM0IDAxZGRlY2I3NzgxNTQyNjM4MzRlOWIwMGIxY2RhMmFkNjQwOTBlNWUgcDN5a19ub19hcmdzX29uX2V4YworNTQwMzUgZTQ3NmE1YTc4YjI5MzdlNzY3MjEyMmYwMWFiNjY0NTVkYjBhOTNjZiBwM3lrCis1NDAzNiA1NmQ1MWY1OTQ4NjUzZGEyYTFlOTk3OWVmYzRiMTFlMmY2ZGFkMWY4IHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDM3IDdkN2YzMjJmMmNiNjc4NzI5MGJmNjczNTgzZjc4OTMxNWM3MmY0NTkgcDN5a19ub19hcmdzX29uX2V4YworNTQwMzggZTIyMDhkNGY1YTdmYzliODZiMzU1NmQ1M2JjYzg3MDIyNjk0ZjFiMCBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDAzOSA3NDcyZjdiN2Q5MDM0NDYxNjJiMWE2YjFlZDNkMjExNmVjODQ1ZmNlIHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDQwIDFkY2UyNTAyNTY3OTIxYjI1MmM5MzAwNGYzY2QyODVlZTVjZTFlOGIgcDN5a19ub19hcmdzX29uX2V4YworNTQwNDEgYmRiNTI3MjhiMDJlZjRhYjcyZDg5NzBmNDgzNDVjNWZjNzNiOWRmYyBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDA0MiA0NTU1OTYxYzVhMmY5NmFhOTNlODJiOTdhNDQ5YjM2MmRjZjU5NDhkIHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDQzIGUxNjI2OGMyNzNiYjI2NjRjNjA5OWVlYzUwMmJmYjVhNGE1NjA5ZWIgcDN5aworNTQwNDQgNGFlMDQ5MGUxYTBjMGYzNDlmNjc4MWMwNjQ1ZTIyOWQ0NmIxMWM3NSBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDA0NSBkZTJjOWY5YWVhMWVlNzZkNTlkM2UwZTUyYjdlZjNiY2YzYWFhNzkxIHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDQ2IDY5Y2E2NTdhNjRlN2VkYmYwNWViMmMzNDkwY2RmYTU1ZDI0YTE4NzcgcDN5a19ub19hcmdzX29uX2V4YworNTQwNDcgNGMxZTJjMzNmYWNkMDhjZWViNjcwZWM4YzQzNWM3OGI3NzdjZDFlMyBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDA0OCAwYzE0YjY2YWNhNzAyYjRkMWY5ZmVhZGZjM2E2MjI2NzA1Y2I2NGY1IHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDQ5IGVlNDYyMTdjODdhZjdhODczODE5YWEzZGNjNzMzMTI0Zjk2NTk4NTMgcDN5a19ub19hcmdzX29uX2V4YworNTQwNTAgMjdhMjE4NmY0NWNiNGIyMzcxNjNlNmU3NWIyOGQ5NGFlNjAxZDMxZSBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDA1MSA5MTg1YzcwYTE1ODVlOWE2ZmMwYzJkZmRlZjc2NTgxOTY2ZWFkOTAzIHAzeWtfbm9fYXJnc19vbl9leGMKKzU0MDUyIGQ5YjE1MzRlYzc5ZmU3NTA0M2MwMDgxOTY1MWE0OTUyNzE5MmM4YzggcDN5a19ub19hcmdzX29uX2V4YworNTQwNTMgYjQ2YzZkMjc2MjVlM2U2YzAzOTY5YzM2YjY0OTI1NWQwMjQ3ZjI4NiBsZWdhY3ktdHJ1bmsKKzU0MDU0IDUyZTQ1MzA3NzNjOTcwMWEwNmMxMWUxMTU3N2VkZTliYjFkZjI2MGQgbGVnYWN5LXRydW5rCis1NDA2MCBiZTQ0YmYyZGIzNTBlNGFhMmM0MjU2OTExZjMwMjE2MzU1ZWVlMTBlIHJlbGVhc2UyNS1tYWludAorNTQwNjEgODg4ODRlN2JhYzZkYzJhMjhmYTg4YjA4NjE0YWM3ZTYwNjIzMjQyMyBsZWdhY3ktdHJ1bmsKKzU0MDYyIDUyZTk1ZmIwODkwMTdkYWI4OWY3NjBjNWM1MWExYWRjOWNlNTQ1ODYgcDN5a19ub19hcmdzX29uX2V4YworNTQwNjUgMzJhNGU1ZWUyZDk4YzE0NTc5YmQ1MWY1MmU4NmFhYTAzNWM5ODIzNiBwM3lrX25vX2FyZ3Nfb25fZXhjCis1NDA4MCAxYzU4NjExYzUxZDBjYTZmYTU5ODJiNWExMjg4Y2FjZmFkMDczMDY3IGxlZ2FjeS10cnVuaworNTQwODUgYmU2OGRhNTYxZGNkNjc4NzBmOTY1YjE2NGM5YjI3YjY3YzI1ZmUxYSByZWxlYXNlMjUtbWFpbnQKKzU0MDg2IDRlMzQ4MTk2MWZiYmMyZWNlMTY1MDI1Y2JjYzA4OWIyMTYxMTBlZGMgbGVnYWN5LXRydW5rCis1NDA4OCA2OGE0ODdkMjFjMDY5YTc1YzMzZWM4NmM1ZmM2ZjM5MDJkNTc3N2FiIGxlZ2FjeS10cnVuaworNTQwODkgMzI0YTcxYTEwM2VjMmRmZWNjZDNhNTA5OWU4MDllYzIyZGRlNmQ5NCByZWxlYXNlMjUtbWFpbnQKKzU0MTE0IDJmMmI4OTM1YTgxZTI2MjAyNmJhMWY1MmJmMWRlODRkOGVhNjA2ZGQgbGVnYWN5LXRydW5rCis1NDExNSA2ZGVmODJiOGNmMjBhYTIyM2JhN2E1ZWFhOTljNGM4OTlkNGVjMWQzIHJlbGVhc2UyNS1tYWludAorNTQxMjQgZmU5YTlkMzlhMzUxN2ZlZjU4OTI0M2U3OWZhZTU3ZTk3MDE2ODI1NCBsZWdhY3ktdHJ1bmsKKzU0MTI1IDNiMWVmY2UzNThhMzYwMTI3MzBlZGMxNmI4ZGZiZmQ0ODcwMWQxMGQgbGVnYWN5LXRydW5rCis1NDEzNiAzNzIwNzBiYTZmZDMxZjRlMzg5YTkwY2NiM2NiMDYyZmQ4MTdjN2Y4IGxlZ2FjeS10cnVuaworNTQxMzggZTFiMDAwYmVkNDYyZjM4YmRkMGYwN2NlYTE3NWY1MzcyNmNkZGFkMSBsZWdhY3ktdHJ1bmsKKzU0MTM5IDZkMzQ1NGMzNzFkZDQzYWM5ZjMxYjRhMzM2ZjE0NDJkNDZkYmY5NDggbGVnYWN5LXRydW5rCis1NDE0MCA4OTFjMjhkNTM1Njk2OWIwNDkyNWFhYTZmNDViZTYxYTg1NjJlYzZiIHJlbGVhc2UyNS1tYWludAorNTQxNDkgMDgxYjRlOGI2ZjViODIxNjVjMzA1ZTI3ZDdkYjIzOGNjMTY4MWMyOCBsZWdhY3ktdHJ1bmsKKzU0MTUwIDYwNTg1NTMwZjMwYjhiY2RhMDU1YTcwYTE2ZTAzZDYwMWM2NTE2N2YgbGVnYWN5LXRydW5rCis1NDE1MSBlNDIyODAyMjAyYmUwYTIwNWUwNTBiMzQyOTg0MTA5MzJiYjMwMmVjIHJlbGVhc2UyNS1tYWludAorNTQxNTIgZjFlODhjMzUwMmQ5ZjFhYWY4MGM0NWNmZTk2ODhmYTZiOGFiYTY3YSBsZWdhY3ktdHJ1bmsKKzU0MTU0IDQ4MjU0NzM5MTU5ZmZhZWJiNjgyZGZiY2FiMThkMzA0YzE1ZWUxN2QgbGVnYWN5LXRydW5rCis1NDE1NSAzM2I0M2RlYmI5N2VlNzY3N2I2NjM2ZWQ1ZjEwZDZhZDA0ZTc1MDU2IHJlbGVhc2UyNS1tYWludAorNTQxNTYgNWMxOTZhYTZlY2Y0OGRiOWNkOWUzNWRjOGZlZjJiMDM4YjRlODEzNCBsZWdhY3ktdHJ1bmsKKzU0MTU3IGI2ZGNiNzc4MzM4NTdkOTlhOTQ2ZjVjYzNmZDc2NTBkZDQzNjk3MTkgcmVsZWFzZTI1LW1haW50Cis1NDE1OCAxMDgwZGU0OWM4MWU4ZGY1NjRjOGEwNDc4YmY2MDQ5MWQ3NTQxMjMwIHJlbGVhc2UyNS1tYWludAorNTQxNTkgNWMwOGU2NDYwZGM1NTRmODgyMTllYjE0ZDVjYzU4ZDlkYTI5YjIzZiBsZWdhY3ktdHJ1bmsKKzU0MTYwIGIwZjI2YTc4MTNjOTA5NmY0OWQ2NGRlYjUzM2QyZDg5ZDM3NTk2MWYgbGVnYWN5LXRydW5rCis1NDE2MSBmODNlNTgyMmU2NzI2YmU5ODkwNjc5NDFlMDdiODBmOWQ3YjJkMzhkIHJlbGVhc2UyNS1tYWludAorNTQxNjIgMDlkMDhmY2I4ZjdiOWQyMjI4NDlmYzc3MGM5ZWQ3NjY2ZDRmNjIyZiBsZWdhY3ktdHJ1bmsKKzU0MTYzIDJlZTM2NmEyZDJiODkxZjdiZmI3OWY2ZjM2NzNjYTBhYWI2Y2U1YTkgcmVsZWFzZTI1LW1haW50Cis1NDE2NCA0ZTgzNWRmMmI0YmE4OGNiOWFkMTg1Yzg5YzVhZjlhOTViNDUxMTljIGxlZ2FjeS10cnVuaworNTQxNjUgOTYzYzBlNDQyODMyMTE0YmFmZWI3YjIxYjYyMjIwMjY0ZDYyZTAyYyBsZWdhY3ktdHJ1bmsKKzU0MTY2IDA2OTkyZTZiMjA1YTQ0OTYxNGU2ZDhmNGIyNWNlODM0YTg0MDRjYzAgbGVnYWN5LXRydW5rCis1NDE2NyAzY2ZkYjgwYmM2OGU4NzRjZTZhYzM4MmE0NThhNmJiNTc0ZTIxMmIxIGxlZ2FjeS10cnVuaworNTQxNjggMWVhMTlmNzQ1MDRjYmM2MGExMjQ5ZWVjNGM2MzYzNjI2ZGNkMzRjOCByZWxlYXNlMjUtbWFpbnQKKzU0MTY5IGQ0NTc3MjE1NTM5ZGRkMzc0MTkwZTliNTYxMTUwZmE3NTQ2NjEwMDMgbGVnYWN5LXRydW5rCis1NDE3MCBhNmEwOTViZjY0NTg1ZDAxNDJmNDg1MjYyYjczNjNhMzA3MTY3ZjU0IGxlZ2FjeS10cnVuaworNTQxNzEgNjdjYzBlOTVlOGE1NzhmYjBhNDZlYzJiNjNhNjVmZjk1YzlmYWY1OSBsZWdhY3ktdHJ1bmsKKzU0MTcyIDQxZWQ5NGJlNmQ1Y2FhMGZiMTliNGZjYmU1ZTBjMmQ1MzFhMTQ4ZDEgcmVsZWFzZTI1LW1haW50Cis1NDE3MyA2YTU5OWFlZTdjYTQwYTEyNjEwMjgwYzJlYjI1M2YwNDNkMTFhMzJkIGxlZ2FjeS10cnVuaworNTQxNzQgNjE0YmNkMzdjNmYzYTRlZmQyZTU0NTE0NDkwYjM4YzFlZjA5MjRjMiByZWxlYXNlMjUtbWFpbnQKKzU0MTc1IDZjZDM2NmU2YmVlY2M1OGZiZTM4MmZkMzgxNzI5YzQzNjdmNjdmNTQgbGVnYWN5LXRydW5rCis1NDE3NiBlNjZjZmM3MjVlOGRiMGUxMGUxYjkyZDE2OWVmMmFmYjAyNDQxOGIzIHJlbGVhc2UyNS1tYWludAorNTQxNzcgNmQ4ZGNhZDEyZmQ5YmZiODRjMGUyZTVlZDk1NmZiZWEyMzU0NGMzYyBsZWdhY3ktdHJ1bmsKKzU0MTc4IDgyODBiN2M0MDU1NzYwMjI4ZDkzYjI3MmEyNzc4N2NkYjAwYTkzOGUgcmVsZWFzZTI1LW1haW50Cis1NDE3OSBlZmEwYTc2MTkxOGMyOGM3MmY1NjAyMDdhOGE5YTJmNjYzMmRjN2NhIHAzeWsKKzU0MTgwIDNhYzI0YzAxMTBlOTZmOGE1MWQyNDI1MjEyN2JlMjljYTUwNGQ1NTQgbGVnYWN5LXRydW5rCis1NDE4MSAxYzE0YjIzYjljMWJjZjY5NzFlYmQwNGE4YTcwZTg2ZWUwYmNhZGQxIHJlbGVhc2UyNS1tYWludAorNTQxODIgNzU3ZTkzYTQwOTZjNTI0YmE5ZTM4ODg1MWI1ZTZlMDFhOWZlMDY5NyBsZWdhY3ktdHJ1bmsKKzU0MTgzIDE2YzIxNWU0M2JhZDBhM2Y0MWUyZGEwMTY5YjZkN2JmMjdkYjNiYTQgcmVsZWFzZTI1LW1haW50Cis1NDE4OCA3MjhjNjBlODVlZmE1OTRmY2QzYjAxNTQ0YTE5MjRiZDY4NDcyNzJkIGxlZ2FjeS10cnVuaworNTQxODkgYzhlZDRhZWE2YzU4MzMwZDk2YTc2NDk1YTBlZTQwYWUwYTcyMTgwMCBsZWdhY3ktdHJ1bmsKKzU0MTkwIDIxMjMzYzJlNWQwOTM5OTQwNzRkYzhhYjc4ZmY3NGEyZmUzNTI4MGYgcDN5aworNTQxOTIgZjQ3OWI5Yzc0Yjc4MTk5NzkxZDY1NzcwNjU3NjUwYjUzNzM3MDI0YSBsZWdhY3ktdHJ1bmsKKzU0MTk0IDEyOWZmZmYyY2U2ZGM0NWYzNTIwNmVmMTNmZTVhMmU0ZDQwZjBkZDAgcDN5aworNTQxOTUgMjQyZGUxNmE2ZDQ0MmMwZDU2NzU5MDI1ZjZjMzcwNjEyNTg4ZGFlZSBsZWdhY3ktdHJ1bmsKKzU0MTk2IDFhMGM5MDc5MjhiNDAxMzQzYjY3MTY1NjJhZmM0M2Y3N2M2MmFjMjggcmVsZWFzZTI1LW1haW50Cis1NDE5NyA4NTBjMzJkYjI3ZTY0NDA2NTZmMjhmYTIzNDFkYzllMGQwN2NmMzMwIGxlZ2FjeS10cnVuaworNTQxOTggZTE5NjJhYjEyZmNlOWFiYTg5NDVmYTczZTZmOTczYWM0YzNkOWQ5ZCByZWxlYXNlMjUtbWFpbnQKKzU0MTk5IDdkYTIzYmY4OTQ5ZmM0YThlYjg4OTE1YmZiZTJhMTBkNjY0ZGMwYzIgbGVnYWN5LXRydW5rCis1NDIwMCA4MWU0ODZiMzAwNzg4NWMwNTcxOTQ1MWUzMjZhYTFkZTEzZmVkMGM5IHJlbGVhc2UyNS1tYWludAorNTQyMDEgYjA5MmIyYzgzYWI3ZTg1OTY3YjMzZjc2YTM1ZjUwNDEzNDVkZGM1NCBsZWdhY3ktdHJ1bmsKKzU0MjAyIDUxMDIzMzZjYTM0MzU0NGNkNjVjZjI1ZTM1Nzk3ZjRmZGFhMmMwNWMgbGVnYWN5LXRydW5rCis1NDIwMyA0MjNiMzY0ODQzY2RjMWNhZTAwMjVjZjg4OWYwYzgyOTE0YWFlOWE3IHJlbGVhc2UyNS1tYWludAorNTQyMDQgOThiYmM5M2JkNTViYTBhNjQ5ZjRiN2MwNmI4MWE3Nzc4YmQzMTk2NSBsZWdhY3ktdHJ1bmsKKzU0MjA2IDNiNTM4YWNmNzY5NGUxMzE4YmNhZjY0MTlhZjRhMTEwMmM2MTM5YmMgbGVnYWN5LXRydW5rCis1NDIwNyA0NmNmYWJiN2Q1NDQ2M2U2OWUyZGEzZmFiNmM3NTU1YWIxMTg1MWM1IGxlZ2FjeS10cnVuaworNTQyMDggZTQyYzYzZDdjMjMwYTg4MGQ3YTY3OTI3ZGNkNDg5ZjM1NDE3NDU5YSByZWxlYXNlMjUtbWFpbnQKKzU0MjA5IGJhYWJlZjZjMDBkNjhlMjc2NzU2YWQ4YzI4ZDUwNGQ2ZGU0ZDk3NjIgbGVnYWN5LXRydW5rCis1NDIxMSBiZmRiZDNlYzI3ZDg1YTVlZjQzNGI0NDY2ZmU0YWQxMzg1NDA2YWMzIHJlbGVhc2UyNS1tYWludAorNTQyMTMgNGEwZTIyOGMzNmU1N2Y3MjIxMzQ3ZWJlMzM0NWNhNDMyNWMwNjc1ZSBwM3lrCis1NDIxNCA2ZTFjZjRkMjhhZjM0ZWI1MmQ1YzhiNGI0YzA3NWM5MGRkNzhhOGUwIHAzeWsKKzU0MjE1IDE1NzI2MGVmNjc3Y2FkNGNkNGVlNjEwYzk0Njc4ZWJiOGZhNGExZjYgcDN5aworNTQyMTYgNjNhZjM3YzJkMGMwZWQyODliYTg1ZWJmMjBlYjY4ZmUzYjkwMGEwNiBwM3lrCis1NDIxOSA5MThlZGFiYWFhODRlNjI1YjgzOTkwNTg2MzllMGNkZDU5NDAxZDViIGxlZ2FjeS10cnVuaworNTQyMjAgYzFhOTdiMDgyMTNhOWRiNTM0Y2Y0OTEyZWIwMmI4ZDM2ZjhkZGM1NSBsZWdhY3ktdHJ1bmsKKzU0MjIxIDMyYWY5NTg4YTE4MmVmNDQ4YzA5ODk1NDhkZjcxNTJhNjU5MzBlNDggcmVsZWFzZTI1LW1haW50Cis1NDIyMiA4YWE3Y2I1MWQzNTg0ZjhmOTNiMmY5Y2IxNDhiMzZhZGFhNWI5ZDVhIGxlZ2FjeS10cnVuaworNTQyMjMgMmY1ZDg0ZGNiNjU1N2RhZDM1ZmQ3YTlhMjlkNTA3Y2QxMzdmODFlYyByZWxlYXNlMjUtbWFpbnQKKzU0MjI0IGQ5NDhhMmMwZmNmZGRkOTUxMjA4ZjBjMDU2NDM4MTA5NGFjYjhjNjYgcmVsZWFzZTI1LW1haW50Cis1NDIyNSA1NTY1OWU2NDI3N2JlNmNkNDA2NDQ5MDZkMGE4YWU0YWE5MDJkOWJkIGxlZ2FjeS10cnVuaworNTQyMjYgOWI1NmVhZDM1MzJjZDc4ZTljNjYyZTE5YWUxNDk3OGUwZGVhNDA1OCBwM3lrCis1NDIyNyAwYmI5NjlmMTUxMThhMzg4MGVjMWJlNzliYzMyODBiMDA3NDY2MGRhIGxlZ2FjeS10cnVuaworNTQyMjggODM0MDBkZjk3Mzc5YWUyZjU1NTczOGVjZTBiOWVjNDE3NjYzZmYxZiByZWxlYXNlMjUtbWFpbnQKKzU0MjI5IGE3YzhhNGQxYjk0MDdkMjliMDU4MGM4NDkwMDY4NTQ1ZWZkOWQyM2MgcmVsZWFzZTI1LW1haW50Cis1NDIzMCBmMmJhODEyZjcyMDA3NjBiNjViZmY3NWIzMWRiMDAzZDc0YjVjOGQxIGxlZ2FjeS10cnVuaworNTQyMzEgM2JlMjE3NWJiYjAwMDc0ZDI0M2M4NGJmOWM5ZGNmNTZmNjlhOWIxNyBwM3lrCis1NDIzMiBmZjBjNDZmYjE5NWEzNTZhOTJmMmQyZGM2NDQ5YzMyMWViNzBlMGM4IGxlZ2FjeS10cnVuaworNTQyMzMgYmUxZTJmNzQ1NjY5ZGMwOTVjNzU1NGM1MzZlYmI3ZmMxMTRlM2E0NiBsZWdhY3ktdHJ1bmsKKzU0MjM0IDljZmM5Y2JhNjc2OGIxNmZkNmQ1MmY5MzlhOTMwNDQ0YzIzNWRjNzMgbGVnYWN5LXRydW5rCis1NDIzNSAxYTBmNmExMjg3NGMyYWFjMzNmNzA2NDVjM2Q5MDZmZGMyM2JkOTk1IGxlZ2FjeS10cnVuaworNTQyMzYgZTgzMTA4NTVmY2M3YTY3NDRkODE1MDAwNTdjOTcyNWRiN2ZiZDE2MSByZWxlYXNlMjUtbWFpbnQKKzU0MjM3IGY3NTQ1N2Q3NTMyY2UwY2U3YjdkNTdkNDcwM2Q5YWMzNDU3MWY5N2MgbGVnYWN5LXRydW5rCis1NDIzOCA3ZjZkNTM5MGExMWFiMmRkNzVhMmY4MzZiN2FkNTY5YTNjYTVmMGFiIHJlbGVhc2UyNS1tYWludAorNTQyMzkgNzQ0NmFkNmNiNThiZGNiZmNlODE4OTMxZGEwYmFmYzZkY2QzYjU1YiBsZWdhY3ktdHJ1bmsKKzU0MjQwIDA5YmZjMGNkZmY5ZmVlM2JlNDg4ZGJlMWIyMDRjOTBkYjQ3N2MxZGQgbGVnYWN5LXRydW5rCis1NDI0MyAyODc3Nzk4NDNjNWQzOTk0YTIxZTVkMzJiMGUzZjhmYWRhNWU2NjU4IGxlZ2FjeS10cnVuaworNTQyNDQgMzcxN2IxNDgxZDFiOTU3Mzc5YWIyMWIwZmZiZDY5MjA5Yzk2MTU0MSBsZWdhY3ktdHJ1bmsKKzU0MjQ1IDFmZWU5ZjQyYjFmYWRkOTc1MTRhNzU5MTRkNDFhMDI0ZTI3NmM0MmQgbGVnYWN5LXRydW5rCis1NDI0NiBiMTMyNmFhMDRiMmMzZGEyNDU2OGE3Zjg2ZjhhNWRhNTI5MzZmMTQ1IHJlbGVhc2UyNS1tYWludAorNTQyNDcgNDdhYzFiZmVhMzA0N2M2Y2U4MGJmMTU3OTI0MzA0ZjE1YTcwYjVmOCBsZWdhY3ktdHJ1bmsKKzU0MjQ4IGZlZGQ2Y2NjNWU1YjRmODY0N2NiOGE0MmJhMDUwNTQ2YjUzZWM1ODIgbGVnYWN5LXRydW5rCis1NDI0OSA0YWE5MTg3YjUxNTljY2RlMzU4NjQxMDRlNWY2YjM1MDZjY2IzMTg1IHJlbGVhc2UyNS1tYWludAorNTQyNTAgMWFmMzhhZjMxNGYyNzI3M2Y4NDkyNjZkMjIzMjM1MDhlNTNhYjI2NyBsZWdhY3ktdHJ1bmsKKzU0MjUyIGJlMGQ0OTEzNGU0ZmEyZTg1ZjZmMDZjM2ZkMTU3MmM5NWViYzE2MzkgbGVnYWN5LXRydW5rCis1NDI1MyAxYmJkNjg4YTZkZTE2ZjU3Yzk5ZDY0ODM4YTJlNWE5ZjM0MzI2ZTgyIGxlZ2FjeS10cnVuaworNTQyNTQgMDAyMzdmNTE0ZjA2MjkyYTA0YjIxNzk3NzVhYmExZWEyZGZjZjZiZCBsZWdhY3ktdHJ1bmsKKzU0MjU1IDAxYzhmM2UzMzMyY2FhMThiOTJmOTUwZjViODc1ZDhmZmY1MTYwOTAgcmVsZWFzZTI1LW1haW50Cis1NDI1NiA3MTgwOWMwODlhMjYzOTVlOWU3MDEwZGUxN2I3NThjZDY3M2EzYjBjIGxlZ2FjeS10cnVuaworNTQyNTcgZDNhMzVmZTEzODM4YTIxOTY3YTc2MzU3ZGZhZmU3Nzc1MDI4NmMxZCBsZWdhY3ktdHJ1bmsKKzU0MjU4IDU5NzhlMDcyOTFmZTc2ODBkNWUwMDhlYjhjYWQ5YmU4MzNiZjNiNWUgcmVsZWFzZTI1LW1haW50Cis1NDI2MCBhM2YzMTEzMDRlYTYzMmViYjEyMTljNTRiOGY1NmFkNjI4MDE0YmIwIGxlZ2FjeS10cnVuaworNTQyNjEgMmI1MWIwNGIyNTQ1NGNhMTIyODMwMjk4ZTAyZDA2ZjJmNGVhMThjNCByZWxlYXNlMjUtbWFpbnQKKzU0MjYyIDEwMWExYWI1NzNkYjRlYjI0NzUxNTE5N2NjZWIxNGNmZmEyMGQ4MjAgbGVnYWN5LXRydW5rCis1NDI2NSBjZjQ1MjAyNzA3M2UyOGNjZTM2NWJjNjU5NjE2MmNlZDhlNzRlODBlIHAzeWsKKzU0MjY4IGYxMThhYWRjMTEyMDVjNzU0Y2Q2YWYyMjJmOTk2OTYxYmQwMTRhZDcgbGVnYWN5LXRydW5rCis1NDI2OSBjOWI0MGIwYWEzMDMyMDFkNzVmYThhZTAwZmE0NDk1ZGU5NWE3MzQ2IHJlbGVhc2UyNS1tYWludAorNTQyNzAgYThhZTJjMjljNjZhZTJkNjBkZGE2MDAwMGQ3NDk1NTZmOTAwNTgwYSBsZWdhY3ktdHJ1bmsKKzU0MjcxIDVhYjdkYzhlNzMxYTk3YWFlMjgxYzg0OTFiMTgxMmI1ZWYxYmY3YmMgbGVnYWN5LXRydW5rCis1NDI3MiBkNGVhMDY4YzM4MjA0ZDgwZDE1ZDJjOWJjNzE3ODlhZWRiZDdlZmNkIHJlbGVhc2UyNS1tYWludAorNTQyNzMgZDcwNDQ0NjViNzQzYmY1MTVhMDdjNDZkM2MzM2U2MGUzNDE2ODI3NyByZWxlYXNlMjUtbWFpbnQKKzU0Mjc0IDYwYTM1YzA3ZDMyZGYzNDFhNGViODlmNzc5OTI5NWUxZmI2YWZmNTMgbGVnYWN5LXRydW5rCis1NDI3NSA1YjZlMWMwMDhjYTMyM2RjNzE0NmFmMjNmNDc4M2U3MzM0NzI1ZDYxIHJlbGVhc2UyNS1tYWludAorNTQyNzggOWEwY2NkYmJjNTY4ZGNlODJiMDkzNWFlMTA2ZmUwYzFjNWU0YjJmYiBsZWdhY3ktdHJ1bmsKKzU0Mjc5IDcyYzViNTVjYWExZGIyZTM3M2Q0MDQyOWE0YzljODU3NmU1NWUyYzEgcmVsZWFzZTI1LW1haW50Cis1NDI4MCBkODUwYmY1NmZkZjZjYTJmZGQ4NGYwZjMzZWRjYWE0NDgzODVhMzVlIGxlZ2FjeS10cnVuaworNTQyODEgZGNlOTQwZDlhOGU5Y2RmMGQ2NTU4ZDMzODJkZTVlNmFjNTE2YjkyMiByZWxlYXNlMjUtbWFpbnQKKzU0MjgyIDQ3ZWRlNjVlMmVmZDhmZmViMTA5OGNlMzhhYmFmOTRjM2JkNzEwYWEgbGVnYWN5LXRydW5rCis1NDI4MyBhZGY2MTJmNzA2ZTRlOTA2NGJiZGU4ZTAyZWMxMmM3OTIxOTFiODJkIGxlZ2FjeS10cnVuaworNTQyODQgYTdkYWEwMjE4Y2YwYzA2M2E1ZWUzZDBjMDk2N2Q1MGIwNDRlZTQ1YiByZWxlYXNlMjUtbWFpbnQKKzU0Mjg1IDNlZTk1ZmRlN2NmYWU0MDQ5NDIzYWQxMjM0NmE3NmRiODVjMWE5MmYgbGVnYWN5LXRydW5rCis1NDI4NiAyMTEyMDFlNmIwNDVlZDJjNTExNWUwMDIxMzU5Y2JmZGMyMTU4ZjkwIHAzeWsKKzU0Mjg3IDcxN2JjMmE0ZWVlNzdiNmYyZGYwMGQyZmVkYzk4ZmJhY2QwYWU1ZDIgbGVnYWN5LXRydW5rCis1NDI4OCBhODdiY2MzN2JmMGZlYTc3YWQyOTljYTYxN2E5ZTVhMGI5NTc0M2M5IGxlZ2FjeS10cnVuaworNTQyOTAgNzEwMGM1OTE4MmZmMzE2ZGY4NzdhNDRiZTUxZDU2M2ZlZTk0YWRlNyBsZWdhY3ktdHJ1bmsKKzU0MjkxIDQ1Y2UzODhlYzU5YTVkMjNiZTBiMzhhMDAyYjRjMTEyMzJmODE3Y2MgbGVnYWN5LXRydW5rCis1NDI5MiAyY2I1ZmI3Y2QzNTdlNGI4MTJlMjkxYzY1MmY1NzZhNzJhNDJkMGJhIGxlZ2FjeS10cnVuaworNTQyOTMgNWJlM2QyMTc3MzQwNWRmNjdiN2I4NzE2MTFkNjg0ZDI1YmE0ZjcyOCByZWxlYXNlMjUtbWFpbnQKKzU0Mjk0IDY2ZjI2NWFjNGVjNGY5MGI1ZWIyNjgwYmI0ZmZhNzAwZDM0MmI1NTQgcmVsZWFzZTI1LW1haW50Cis1NDI5NSAxZTEyYmVkN2EyZmU1YTQ2YjI3MzZjZjU4OGM4Yzc1Y2U4YjdhNWQ3IGxlZ2FjeS10cnVuaworNTQyOTYgMDEzNTUxMjRjZTQwNTE1YmMxODFjMmRlMTNiMmEyN2JiZWM1YmQzNyBsZWdhY3ktdHJ1bmsKKzU0Mjk3IDkxYTgwZTUyZDg2M2VkNWIyYWNlNTJlNTU1YTZlMjdlNmU3MGQ3YzcgbGVnYWN5LXRydW5rCis1NDMxNSA5MWJkNzM4YTQyMDY3YTEzYWMzY2E1M2UyMjczOTZjYjU4MWI2YzYxIGxlZ2FjeS10cnVuaworNTQzMTYgODQ0NzhkZWI0YWQ5NmE5YWNkZTk4ZTdkMDhhNWIxZDU5Y2YwZjBiMyBsZWdhY3ktdHJ1bmsKKzU0MzE4IDQ3OWRjYmQ3OWI1N2YxNWVmOGEyZTYxYTRmY2VjM2IwMDE3ZjU4OWMgbGVnYWN5LXRydW5rCis1NDMxOSBmOWEyNmFhM2QwOWM0NGMyNmQ5NTJiYTc2MTQwYjZiNzZjNjcyOGJhIGxlZ2FjeS10cnVuaworNTQzMjEgOWRiM2UzMjVkZDg4ZDRiMTc3NGFiZjYzNDRjMzFjMzVhNmJmN2ExZCBsZWdhY3ktdHJ1bmsKKzU0MzIyIDcyODZkODMyYWQyNzI3MTQ1YWY0NDM5MDViOTIwNDY4NzVjMGNhMmIgbGVnYWN5LXRydW5rCis1NDMyMyBlMmNlZWRlMjBkOGMyOTQyNGM4ODZkNjUyMDUwNmNkN2IwMDFlYTk0IGxlZ2FjeS10cnVuaworNTQzMjQgMTZkN2RjZDdhNjljNDJmNzVkN2YzMTg4ZjQwYzdjMjY2ODBhYzljMCByZWxlYXNlMjUtbWFpbnQKKzU0MzI1IGJlZDU3ZGZmM2RiODZlNjhmMGZjOTQ0N2U4NjQ5MWVhNTk1YjIxMTggbGVnYWN5LXRydW5rCis1NDMyNiA3YTMzMWM3Zjk0MDRmY2QwMDFhYzM4MWY2OWI4NTI4YzUxOGI0NmU5IGxlZ2FjeS10cnVuaworNTQzMjcgYmJhZjZjOTM1NjYzNmZhNTM3YWRlMDUyNDg2YjZmZmM5ZGRjNWE5OSBsZWdhY3ktdHJ1bmsKKzU0MzI4IDhmYTRlOTgwYjU4OTlmYjliZDIxNTNhOGVmYTMzOWE1MjAxOGNhMTkgbGVnYWN5LXRydW5rCis1NDMyOSBiODk0MzdlM2JjOGViZDdkNmI3ZThhMmEzN2M1YzAyYjgzM2IzMTc0IGxlZ2FjeS10cnVuaworNTQzMzAgYWRlOGQxYzgxMDA5M2U1ODQ0ZjY4NTI2YjUyNDg5YWFlNTUxMWIxOSByZWxlYXNlMjUtbWFpbnQKKzU0MzMxIGIxM2U2MTI4ZWZhNzJhNGUyNjY3ZTBjZTI4OTdjYmEyNmMyMDk5YWMgbGVnYWN5LXRydW5rCis1NDMzMiBiNmMxMDM4NDUwNTRmMTg4ZDJhYjUxOTFiMWZmZTkzMWJmZjk4YThhIHJlbGVhc2UyNS1tYWludAorNTQzMzMgYzZmNDE1MjkwZjgwNmNiMDU1ZmY2YTliNmJiNTkyODUzMzhhNTcxMiBsZWdhY3ktdHJ1bmsKKzU0MzM0IDdkMzBkNjJhOTAxYWE4MWYxMjQwOWNmZDZjYWM5OTczYWViYTZkZDQgcmVsZWFzZTI1LW1haW50Cis1NDMzNSA1YTNhMWIwMjQxOGFmZDBjYjlmM2ExNGNjNjUzMzI5ZTIxZjU0MjM3IGxlZ2FjeS10cnVuaworNTQzMzYgYTRlMGM3OTAxNWQ4MmZlMjk4NWE5ZGY3ODJjNWFhNThlN2ZmYjk1YyBsZWdhY3ktdHJ1bmsKKzU0MzM3IDgxZTVjNWQxOTk4ODdjOTViMDI1NzBjNGUwNjUxMWY5ZGM2ZDZmMmMgcmVsZWFzZTI1LW1haW50Cis1NDMzOCBhMzQxOWM2YzBjZmVkZjZhZmIxNzQ4NmRkMGQ2MDM2YmQwMjRiMjM1IGxlZ2FjeS10cnVuaworNTQzMzkgNTNlZTI3OTUyODdiNDRjNmM5NmFkZGQ5NWE1MzE5MjgwODBiOWU4NyBsZWdhY3ktdHJ1bmsKKzU0MzQxIDFkODBkODRjNzc5MjQ5NzViY2IzOTNlZDJkZGQwYzYzY2M4Mjk1MGUgbGVnYWN5LXRydW5rCis1NDM0MiBiOTBkOGIyZTVlZDA3MTc0YzQ4ZWY2YWM4NGE5OGIzMTdkZWYzOWJlIHJlbGVhc2UyMy1tYWludAorNTQzNDMgMGMxMjJmZTgyN2Q3OGE0NmUyMjJmNDcwZWI4NGE1ZWY0ZGQwMGU4YiBsZWdhY3ktdHJ1bmsKKzU0MzQ0IDdiMzZhNjRkY2IwOGQwMjY2MjIyN2IyMzNkOWVlNDdjZDRlYzgwZDAgbGVnYWN5LXRydW5rCis1NDM0NSBhYzcxZGI5ZmFkYzg2YjlhZTE2OWZlNjlkMjBhMDU3ZWVjNjE1MTFkIGxlZ2FjeS10cnVuaworNTQzNDYgMjhiMDQwM2Y4YzkyYjcxZGMzYzQzNDcwYzMxOGU1OGQwMGI4OGFiMSBsZWdhY3ktdHJ1bmsKKzU0MzQ3IDkzZTY3ZDM2MmE4MWEyOWE5NzlmNjY2ODk0NDQ1MDY4ZGFkZDFjMjIgbGVnYWN5LXRydW5rCis1NDM0OCBkOTZlYmIyMGQzZTFmNjEwNWM5MzVjODFkOTI0ZWNkMjk0NjU3NDkxIGxlZ2FjeS10cnVuaworNTQzNTIgNGE3OWRkMTViYTU5ZjY1ZTM5MTg0NGFmMmQ5ODhlYTYxNjI1NDczMCBsZWdhY3ktdHJ1bmsKKzU0MzU3IDQ5M2NhZTcwNWY5MTg4YzNiYjcwOWM3Nzc1ZmQ5NjNmZTFlYjRjOTggbGVnYWN5LXRydW5rCis1NDM1OCA3ODY4NmM3YTIzYTdkNTAzZTgyMjZjNDliYTY3NWZmYzUwMzk4MTVjIGxlZ2FjeS10cnVuaworNTQzNTkgOTIyYjc3MDhhODBhZmUyMDk2ZDgwODlkNGNhYjUxOWMyMGJiMDA2NSBsZWdhY3ktdHJ1bmsKKzU0MzYwIDIyNmQ5ZmNmOWQ1OWNkYTQ3N2UyOTBkMDFiZDFiMWVkYjNkYjUwNmMgbGVnYWN5LXRydW5rCis1NDM2MSBkYmE1YTMzYTBlNzk5NTI4MTQwMjI5YjUzY2NkNjRjMGU2MWZjY2U0IGxlZ2FjeS10cnVuaworNTQzNjIgMjA5ZDY4OGYzY2E1ZWVjMmUxODYxMWExZTc1MjFjYWE5Y2I3OGQ5YiBsZWdhY3ktdHJ1bmsKKzU0MzYzIGVhZmJmYThhMmIzMDBjM2FiYTkxZDVlNmE0NTJlM2MxNzdlMDc3NDMgbGVnYWN5LXRydW5rCis1NDM2NCBmMWYxODY0NjAyNTBhMmY1MzA4ZWU0NjQwMGQwNjExMzU4YWM4MzFmIGxlZ2FjeS10cnVuaworNTQzNjUgY2EzMzhkNTYzYTdhZDE2ZmY4Y2QxYzliZTgzMGEwMGZlZWIyNTQzMSBsZWdhY3ktdHJ1bmsKKzU0MzY2IGQzMTEwMTNhMTYzOGE5NGNiMzZjYTExNjA1NmMxMzAzNmU4YTdiZDcgcmVsZWFzZTI1LW1haW50Cis1NDM2NyA1YTFhMGFhOWE0YmJhZTE5NzZhNDdjYjAxNThmMzBlMTYxYTE1ZTZhIGxlZ2FjeS10cnVuaworNTQzNjggODk0NjkxY2E0ODM1M2YwYzQxYjhhNWJlYTExNDEzMmQ0ZWY4ZDAxNiBsZWdhY3ktdHJ1bmsKKzU0MzY5IDFkY2RiYzI1ZGVhN2M2NTk4ZWNmYjQzZDQ3YTkxNDdhMzg3ZTg1NjQgcmVsZWFzZTI1LW1haW50Cis1NDM3MCA1MmE2OWEwNjQ2MzdhNTk5NTM3ZTRkMzUyYWMwOWEwODc3MjRmZDRjIHJlbGVhc2UyNS1tYWludAorNTQzNzEgZGUxZDA1YzU1YjZmZGYzY2VhMjI1ZWU3ODUxOTRiZDg4M2QwMzc3YiBsZWdhY3ktdHJ1bmsKKzU0MzcyIGZmOWQ4MWU3NmE3NmY3ZDU3ZTYyZTlkMmRiYTUzNGEwOWQ3ZDMxYmEgbGVnYWN5LXRydW5rCis1NDM3MyBiYzJhNWE1NGI1Y2FmM2Y0ZTFmMGY2ZGFhNjNlMDYxODQzMjk1ZTIzIGxlZ2FjeS10cnVuaworNTQzNzQgYjUwMDc2MWI0YjYyNmRjMWZiOTBjMzA4ZTA4Zjk3YWFhNTg2NDIyYSByZWxlYXNlMjUtbWFpbnQKKzU0Mzc1IDU2YjJiOTMzYmFhZTJjNDVkZmU1MjZmZTExYzYwYzUzN2ZiODdjMjIgcmVsZWFzZTI1LW1haW50Cis1NDM3NiBjMzAxYjViY2RmZGM1MTBkZmI5YThiMzU0NTJjODgwMjBhNWZlNjA5IGxlZ2FjeS10cnVuaworNTQzNzcgOTBlNTdlMmM3YTAzMzNlYjc4ZGRjMmM1MzY0NGI1YTc4MTQ4ZDY1ZCByZWxlYXNlMjUtbWFpbnQKKzU0Mzc4IDI5MDBlYzA0MDMxZDk0YzNhZjhkNmE4ODk5M2RmYmU2MmMxOTBhMzggbGVnYWN5LXRydW5rCis1NDM3OSBmYzVlMDQ1Y2VhZTQzOGQyMzg5MGQzZjY1NjlkZTI2MGI1NjBhYjg0IHJlbGVhc2UyNS1tYWludAorNTQzODMgNTE0YWVmZjYzYzlmZmI1NTExMDA5OTdkYjRiYmE2ZWYzZDBhZjc4YiByZWxlYXNlMjUtbWFpbnQKKzU0Mzg2IDYyODA1NTJjMTI5NzIzZTM3ZDdiMzg4YjRiNTgyNjYxYTE4YmVmM2MgbGVnYWN5LXRydW5rCis1NDM4NyA5OTQzYWVhNGYyZDFkZjIyYzdhNjBjZTMzYzlhYjlkY2RhNTM2NGZmIHJlbGVhc2UyNS1tYWludAorNTQzODkgYmJjZTJkOGZmNzNkNTRlMGY5Nzc5MGEyNmNlMzhhYWU0ZGE0NDI0OCBsZWdhY3ktdHJ1bmsKKzU0MzkwIDRlYjRjZmI2MjU0ZWJiN2I4ZjNmMGFjMjQ5YmQxM2Y3YTVkZDY0ZTggbGVnYWN5LXRydW5rCis1NDM5MSBkMTU1YWU2MzY3Mjg0OGVhYTE2YmUwNmRjNTcwMTNhNTI2YzZiN2RjIGxlZ2FjeS10cnVuaworNTQzOTIgMGE2YzUxMzVkMmRlZjQ5OGU4Mjk1ODcxMTM0OGMwOGNlYmU0MTc5ZiBsZWdhY3ktdHJ1bmsKKzU0MzkzIGZjNTI3ZWI5OGRjZTY4NTVjYTkzOTdmNjgxNGQzMTA1M2MyZjY0Y2QgcmVsZWFzZTI1LW1haW50Cis1NDM5NCAzNzZiNDIzNWRkNDQ0NDgxYjc4NjRmMzVkODY2YTJmYjYzNjNkYTVkIGxlZ2FjeS10cnVuaworNTQzOTUgNGFjYjQ1YzI5N2VkMWZiNmI4ZTI5ZDUzNmEwYTM1MDlhNzFjZjM2YyByZWxlYXNlMjUtbWFpbnQKKzU0Mzk2IDhkOTdkZWU2ZGY2NDQ0NDE2ZTNjYzU2ZjQ0NmZhMGUyYmY1YTFjZmMgcmVsZWFzZTI1LW1haW50Cis1NDM5NyA0MjE3ZjM4NTBmMGI4YTViNmU3MzYwMDU5YzYwZjdlMzZlNDYyNTZiIGxlZ2FjeS10cnVuaworNTQzOTggNTJjMzM5YzBjYjM4YmM2OWQ2NzgzZTVkYWVlNmE0OTY4ZjcwMWIwOCByZWxlYXNlMjUtbWFpbnQKKzU0NDAwIGEzNzdmOTQyZWUwYWRjMTg5ODVmOTRiOWU0ZWM3YjNlMzZmODIwYTggcDN5aworNTQ0MDEgYTMxMmMyNzZhNWU3OWJjZmIzNzBiNzQ5OTk5ODMyMjNiZGIzNzAyMSBwM3lrCis1NDQwNCBiNDNhNTJmNzE2OTZhMDY1M2IyOTUyNjc5OWJjN2FhN2MwYzZkZWYwIGxlZ2FjeS10cnVuaworNTQ0MDUgZDgzNTgwOWY0NWVjNDQ5MTRmNGJjZDEwODE5ZmY2ZWRiYzcxNjg1NiByZWxlYXNlMjUtbWFpbnQKKzU0NDA2IDAxOTUxZjZiODE5ZDEzZWFiMjNiNjdlNWFhMTQ2MzRkNmNmODBlMzQgbGVnYWN5LXRydW5rCis1NDQwNyA5NDIwNTk4NmFkNTMwOGE5NDNkZjE3ODNhNjIxMDNhN2NhNzM1M2Y0IGxlZ2FjeS10cnVuaworNTQ0MDggMjY5MGRlNGJlYWExM2RhNGFjZDk2ZjEwY2YxMjI3NzE2YWE5NGIyNCBsZWdhY3ktdHJ1bmsKKzU0NDA5IDY0NTA3MGI4Mzk0MjZiZjFmOTNiYzc1ODgyMGI1MjRmZDdmZDg5ZmIgbGVnYWN5LXRydW5rCis1NDQxMCBhNjk3OWFjOTUzM2ZhZTY2OTg3NmFjMmFkOWQxNDVlMTA3MzhhMTRlIHJlbGVhc2UyNS1tYWludAorNTQ0MTIgYzU3Y2Q1NDY2MTJkZDgzZTg3ZGVjMzE3YWM0NjgwOTk2YjY1OWE3YyBsZWdhY3ktdHJ1bmsKKzU0NDEzIDA2Y2Q2MGIwYmQxNjRjNzNlMjJhNWQ0OTM1MjllNzVmNDdkZWU2OTggbGVnYWN5LXRydW5rCis1NDQxNCBkMWJhODEzNDUyOGUyOGMwYmFiM2M0ZTQ5MzYzNWYzZmIwMjQyMjMxIGxlZ2FjeS10cnVuaworNTQ0MTUgNzJkYTQ4ZDk2MjU3ZmMzMGIwMzJhMmI0ZjVmOTE0NWJjMjExZDU4MCBsZWdhY3ktdHJ1bmsKKzU0NDE3IDhiYjU3MGFlNGM0NWM3MmU4ZWMyMmY5OWM2ODhlNzg3NmVlZTY0NjMgbGVnYWN5LXRydW5rCis1NDQxOCA3NTQ5YzRiM2FhMzZhMDFkMzhlZDA1NWZmZmVlYzUxM2JmMGM3ZTlhIGxlZ2FjeS10cnVuaworNTQ0MTkgZjNkNDI3NGQwNjNkMzBiY2M4MDk2MDIwNDUxMzM3ZDUyYzgxOGVmMCBsZWdhY3ktdHJ1bmsKKzU0NDIxIGViZTUyZGJjMzU1M2Y3ZWU2MDg5ZGMzY2NlYTgxYTU5ZWI3ZGYyNTkgbGVnYWN5LXRydW5rCis1NDQyMiA5MTI2ODY3OGQ1N2Y5NmQ1MTAwYzI2NDE1MTVkYmU5ZTdiZDZiZTQ0IHJlbGVhc2UyNS1tYWludAorNTQ0MjMgMTM3M2E4MzA4M2JiMjEzYTlmY2MzNmJhMTgxOGMwMTY2ZWZjOGUwNiBsZWdhY3ktdHJ1bmsKKzU0NDI0IGEyYWUyNGZmYTYwYTkwMzU1ODUxOGNiMGVkMjQ0MWViZDI5ZGNjOTEgcDN5aworNTQ0MjUgM2M3M2E4YTIwODM5NWZjOGY4OWE1MWEwOWY5NzI4Y2NhNmQ4Mzc4ZCBwM3lrCis1NDQyNiBlM2JhNjBkZTNkODQyZTFkNzRjMjEwNGIyNzYzZTY2ODM2OTk2ZjA2IGxlZ2FjeS10cnVuaworNTQ0MjcgMzQzYmUzOTZiYmQ3YzYxMjljNDYxMmY1OTdlNmMyNjhlZGVmMTVkNyByZWxlYXNlMjUtbWFpbnQKKzU0NDI4IDE5ZjdmZjQ0MzcxOGY3YTlkYTFhZWE5ZWRiZjAwYTEzNWY4NjA4ODMgcDN5aworNTQ0MzAgNWUyNGY2MzZhYzc1NzZlOGIzNWZkZDhkODc5M2JiMTU0YTFlZDA4MyBwM3lrCis1NDQzMiAwNzEwMTZjNzI5MzkyZTU1M2NhM2M5Zjg5ZDI0OGI5MzgwMDIxZWIwIGxlZ2FjeS10cnVuaworNTQ0MzMgMWY4NDM4OTBhNGU2MWI0NzE1ZDJjM2ExNGE1ZWMyYjE1ZGRjMDFlNCBwM3lrCis1NDQzNCBiMWExOGM3ZWQ1Y2E2NzlhZWE4OGYwNzQ1MTMxOGVjN2Q2NmFiYzU4IHAzeWsKKzU0NDM1IDE2ZmU5MzZmODliMTlhNTUxMTIzNDBlYzVkNGE4OGQwNzdiNzhlODAgcDN5aworNTQ0MzcgOGQ3OTlhOTljZjY4ZjRkNjhlNzNhNjNmZDE1YjlhMTYxYzE4YTE4NCBwM3lrCis1NDQzOCAwMzdmZTZhNDQ0ZDJmZTk4Mjc0ZWJhYWNlZTRjNzFkOTA1OWFmZDdkIHAzeWsKKzU0NDM5IDhkMDZjMTEyMWIzMzFhNTNmMjkyNjAzMGY0MDA2MGY5ZTc5Mjg1MzEgbGVnYWN5LXRydW5rCis1NDQ0MCA2YzhjMzNhNDNhMTU1NWI4MWVjZWM5MTEwZjVlZGYwZDI0OTU5MGJiIHAzeWsKKzU0NDQxIDlmMDdkNDEwYzU1NTQ2OTY3NDI1OWUyNmE3OGU0NTIxZGI1NTA3YWMgbGVnYWN5LXRydW5rCis1NDQ1MSBjN2MyNzU0ZmYyZDZkZGI5YTkwZjE4Mjc3MGU3YTNiOWIyMmVmYWVhIHAzeWsKKzU0NDUyIGY5OTczYTZlMWFmZTAxZTBmYjNiYzk3ZDdhNDBmYTAxZjdkMTc5ZWYgcDN5aworNTQ0NTYgOGQyOTc4MTQyNTkzMzg5ZmVhNDY3NjlhOThjY2I1Nzk2MGRiZjc5YSBsZWdhY3ktdHJ1bmsKKzU0NDU3IDIzNmFmMjE2MWViNjc4YWQ0NGRlNDFiZDFjNTlmMzljYzBiYzlhNTkgbGVnYWN5LXRydW5rCis1NDQ1OCA2MDE4MTk0YWZiYmRlMTNlMWZhM2QyNDg4OGQ3YzA0NzgxODFhZjY5IGxlZ2FjeS10cnVuaworNTQ0NTkgYzk5N2U5MDdjNGM2NzA2MGQ4MzgxYTc2YTkxMTUzNWRjZWU1N2RiYSBsZWdhY3ktdHJ1bmsKKzU0NDYwIDMwN2U1ZDQxNjRmM2EzYmIxMjE1MGI3MDdiYWYxOThjNmZkNjIyYzAgbGVnYWN5LXRydW5rCis1NDQ2MSA1YTc3MWI0YThiNzhjYzQzZDc1NjIwZjU5N2QyMmI3YTY3OTJjNDkyIGxlZ2FjeS10cnVuaworNTQ0NjIgNDU2NjljNDE0ZGI0NTU2NzU1MjQ2ZTk3MTBiYmVjNTU1NGY3MzMzZCBsZWdhY3ktdHJ1bmsKKzU0NDYzIGI4YjE3YTJmYWNlNWFhZjNjZDdmNzM5MGNiN2MzOGJlYmZkZmFmOWMgbGVnYWN5LXRydW5rCis1NDQ2NCBiNDNhMmRhODMyYTcwZDdhODljMmZiOWNhYTYzMTZjZjQ2ZjVkMDcyIHJlbGVhc2UyNS1tYWludAorNTQ0NjUgZWM2ZmIwOTEwMzliNDUzYzBjMGU5MjFmZWE0NmVjN2YxZjEwYmRjZCBsZWdhY3ktdHJ1bmsKKzU0NDY2IDUwYTZiMzNjOWQyYzVjMDcxMzFhMDljMWY4NzU3Y2E2NjZlOWIxMjMgcmVsZWFzZTI1LW1haW50Cis1NDQ2OCA5ZDBjMDU0MTE3MzQ4MzE0MDA5ZTU4OTgxNTQwMjFlODQ5NGU4M2JhIGxlZ2FjeS10cnVuaworNTQ0NjkgN2YyOWJlMWNlZmJhMTI1NjM0MDgxYzMxMGJkZTJhMDgzOTc0ZTU2YSBwM3lrCis1NDQ3MCBlMTJjNTA0ZTQ2NmI1YjZlOWYyYzg2MGJjNzA3MjBiYmUzYmI3NmVmIHAzeWsKKzU0NDcyIGYyOWYxYThiNzg2OTJkMWNmZjE5MzZlMGEwNDIwMjBhNjg1NTM4YmMgcDN5aworNTQ0NzggODgxMjcxODY2OWUxOTc5MjIxM2NlYTY4NjhmMzM0YzQ0ZTAzN2JhOSBwM3lrCis1NDQ3OSBiNzUyYTFlMDk0NGI0MzYwOGViMzgwMTk0ZWQ2ZmM2NDg2YzA2ZTViIGxlZ2FjeS10cnVuaworNTQ0ODAgOWNmMjJjNWVlZTNkN2ZhMDAwMTAyMjM4MGFmN2YzOWNjYTAxODYzYiBsZWdhY3ktdHJ1bmsKKzU0NDgxIDA4ZDE2MTgzYTljMTUwNTIyYWU2YWU3YzBmMTZhNWJjZjY1NDdmYjggcmVsZWFzZTI1LW1haW50Cis1NDQ4MiAxZGM0YzRjZTJkYjlmZjAyMGYyYjkyMDM5OWY0Njg3OGM4YWIxMjA0IGxlZ2FjeS10cnVuaworNTQ0ODMgZDE2YWJlNWM5MmRlYmY1NTUxNmU5MGFlNGY1OTNjYWY1OGEwYzk3ZiBsZWdhY3ktdHJ1bmsKKzU0NDg0IDg1MmM5ODk2ZmU5MjM2NTFhYWU4ZmQ1NjAwNDdmN2ZiYzEwYTM2MDMgcmVsZWFzZTI1LW1haW50Cis1NDQ4NSA0NTllMzZiMmVhNDUxZmNkZTIyMGZjMGZhMjYzYjZkNWZjODVlZDYxIGxlZ2FjeS10cnVuaworNTQ0ODYgNWI3MTE2MzJjYWUxMzJhYjhmZGMzZDVlNWI1MmJlNGJkZmE5Nzc3NyByZWxlYXNlMjUtbWFpbnQKKzU0NDg3IGNiNmViMTMyYWNjZjI2Njg5NGYwYjFkZjJhYmQ4ZTdjZWJhNjJjZDEgbGVnYWN5LXRydW5rCis1NDQ4OCA3MzkzYzcxMGQ0YmJiZWRkOWEyMDdlMmU2OTJlMTk0Mjc0MTBlNGNkIHJlbGVhc2UyNS1tYWludAorNTQ0ODkgZTU1YmZiMWFjMWU3Y2NhZGVhMDYzNmFkODkyOTc2YzFkNDYxNGNkYiBsZWdhY3ktdHJ1bmsKKzU0NDkwIDViZDk2NjM2MjBiYzk3OGExMjc5NzJhN2NlN2FiYzZmMTY0N2JiZGIgbGVnYWN5LXRydW5rCis1NDQ5MSBiMWU4YmZkZmU0Yjc5NWEwMmRlZTZjNzg1ZDE0ZDk0MDE0ZmM5ZWMwIGxlZ2FjeS10cnVuaworNTQ0OTIgY2NjNDQ3YTZkOTE2NDhmNzExNjIxMTVmNDVkMGFkNzc5OWFkZWNiMSBsZWdhY3ktdHJ1bmsKKzU0NDkzIGQyNWY3NzU3NDg2NjMxZTg0NGIxYTRmNTBlOTcyZTAxNGE5YjM5YTAgcDN5aworNTQ0OTUgMTVhN2UwYjdlNDI1NmI1YzkwZjhjMjI1OGFkZWQ2OWZjZGE1NzAxMyBsZWdhY3ktdHJ1bmsKKzU0NDk2IGY4ODlmNjVhNDg2MWJlYjVmYzAxOTE3Y2MyZDVhYTk1NjUzZDU0YTAgcmVsZWFzZTI1LW1haW50Cis1NDQ5NyA0MDhkZmM3ZTMwMTg0YzIxNWEwNjM4NGExZDU5ZjgxYzYzYzRiNDM1IHJlbGVhc2UyNS1tYWludAorNTQ1MDIgZDQyOGUyMWQ2ZWFmNTgwNjRlZjRjYWFmNzIzZDZmNzVjNjc5NmYxZiBwM3lrCis1NDUxMCBiZmM0ZTgwNDYxMDIzOGI4YjAwYzM5MmUzZGFjYjI3MzYzMTNmMmIzIHAzeWsKKzU0NTI0IGFjZjlhNTVjODg1ZDc5MTI3NjllNjljYzY4MmQ5MjMxMmJhOGVkMmIgbGVnYWN5LXRydW5rCis1NDUyNSA1MmUyZmNkNTNhZDMzOTY2M2VlYmRhZmZjYjEzOWJiNTgwM2YxODRjIHJlbGVhc2UyNS1tYWludAorNTQ1MzIgMTc1N2Y4MGI1ZmRiYWU0NzlkZGY2MDQzYjcwOTkzOTc1YjZiZjUyMyByZWxlYXNlMjUtbWFpbnQKKzU0NTMzIGFmYjFjNmNiMmM4ODQyMjkxNGU2OGFmYTAxYmQwZTg1Y2NkOWY5NGYgbGVnYWN5LXRydW5rCis1NDUzNyBmZTE4NDJiNDhiNjZmZmVjOGE2OTg2NDhmYWFlNzJmYTEwMjBmNDBhIHJlbGVhc2UyNS1tYWludAorNTQ1MzggNDJlYjViYjc3NjYxNTdhZjM1MGJhNTgwMjNhOGM0ZGZlOGYyNmQ4NyBsZWdhY3ktdHJ1bmsKKzU0NTM5IDhkZWJjZTJjNGZiMWI0ZTg3Mjk0YjVjNmEzNjU5MjRlNjY4ZWUzNjkgbGVnYWN5LXRydW5rCis1NDU0MCA1MWZiZjJhNzU1NDhiMWE2NDAwODc4MDc2YTA3NWZjMDE1NGU0MWU4IGxlZ2FjeS10cnVuaworNTQ1NDEgOGYxYzllOGVmYmJiZmQxOWY4ZjI5YmQxZDU1M2RkYzZiMzlmNDM4OCBsZWdhY3ktdHJ1bmsKKzU0NTQyIGQ4NzQ4NjczZmQ5ZjlhNWVhYTZiN2U3OTFlYmM2MTBlNWI1Yjc5YTEgcmVsZWFzZTI1LW1haW50Cis1NDU0MyAwMjU3NGY0ODViMTVjM2ViZDlmYzFkNjJiMGU5OTliYzZmNTlmYmZmIGxlZ2FjeS10cnVuaworNTQ1NDQgMGVhNTU5NWQ3NWRhZDhhM2EzMzUxYTEyMGNjOTVmMTI4ZTA5NzUxMyByZWxlYXNlMjUtbWFpbnQKKzU0NTQ1IDEyYzcwNTU4MDc0ZTdjZDBlYjMyOTczNWU0MWIxNWU3MmY1ZDA4NWYgbGVnYWN5LXRydW5rCis1NDU0NiBhNzNhYTBiODIxY2E1ODg0Y2IzZjA2MjVlMjQ4ZWZkMmNiOGNhYTM5IGxlZ2FjeS10cnVuaworNTQ1NDcgM2I1NmU3ZTg5NDcwMmUwZWMwZGMwMjVlMjVhNTQxNzljZTkzZWUyYyBsZWdhY3ktdHJ1bmsKKzU0NTUzIDc0ZDI5YjYzNTQxNmI4OWFiYzUwY2FjYmQwYTUwMmFiNzNhMDM3MmEgbGVnYWN5LXRydW5rCis1NDU1NCAzZmY2ZDNmYTgxMjI5YjkwZTYyYjM5ZmRjNjE4YzIxMjg5YTBlY2YxIHJlbGVhc2UyNS1tYWludAorNTQ1NTUgMTg5OTViZDhiYzhiM2FhNmI5NThjOGViM2RhODE5Y2UyNjYxZjNiZiBsZWdhY3ktdHJ1bmsKKzU0NTU2IDFjM2UwZDJjMzZkYzk3NjIzZjlhOGNjMWY1M2ZjZTdjY2NlMDY4OTQgbGVnYWN5LXRydW5rCis1NDU1NyBlZjcwY2Q0ZGJhNTBiNjU3NGFkMWE1YjcxMWRlMTU1ZWM0YTU1OTcyIHAzeWsKKzU0NTU5IDM4YTNkYTAyNmQ1ZTU3NDNkZTY3YTVlZDhiMzU5MjM0M2RjMDUwNTUgbGVnYWN5LXRydW5rCis1NDU2MCBlOTM4ZTllZjQzNGI4MmU2MWY4Yjg1Y2UwMzIyM2QyNzBhYjkwNDg0IHJlbGVhc2UyNS1tYWludAorNTQ1NjUgMzJmNzJlNTc2MThjYzE1YjJlZjYxMmNkNDhiODZjMWY2MzNmMjg4YiBsZWdhY3ktdHJ1bmsKKzU0NTY2IDhmYzYzOTZmMDc2YTVlY2JiMjFhNTNjNThmOWM4OTU3NmRhM2ZiZDMgbGVnYWN5LXRydW5rCis1NDU2NyA2NTBlZTE3OWYzY2VjMjBhN2JhZTZkZmYyMjQ0YTM4YTNhNWEyMzFiIGxlZ2FjeS10cnVuaworNTQ1NjggODI1OGYyNWQ0M2Q3OTY0OTAzNGU1ZjM2ZjVkNzFiYWJkYzEzOTBmZCBsZWdhY3ktdHJ1bmsKKzU0NTcwIDNjMDkxM2I2NWU4ZDZkNTVlN2Q2MTRmOWQ4ZDM5OWNkOTZhZGQ2YWMgbGVnYWN5LXRydW5rCis1NDU3MiBlYjI1YzhlMmI0YTFlYmUyNDZhMmU2NGFiZjYyM2IyOTRmMmYxMTJjIGxlZ2FjeS10cnVuaworNTQ1NzMgYTA3Zjk4Y2ZmYmRmZWY5NTEzNjI2NWUxZDY0ZWRlYWRiOGRhOWRkOSBsZWdhY3ktdHJ1bmsKKzU0NTgwIDJiZTEzMzAxM2I3MWNhYjI4M2VmNDA5M2Q3N2NhZDU0ZTg4MWYzNzIgbGVnYWN5LXRydW5rCis1NDU4MSA4YmU3NDRkNWM1NjczODkyMzU1YmNjZDBmNGQ4NDZlNGZhMjBmZDQwIGxlZ2FjeS10cnVuaworNTQ1ODIgMDNkNWRiODMyNWY0MTFhNmI3ODNhMGE2ZDk5YjNkZTc2ZTIzMjRjYiBsZWdhY3ktdHJ1bmsKKzU0NTgzIGEzMWIwYjE4Y2FjNjJkOGZlMzczNWY0NWMyMTdjMDc0YmNhZWFmYWIgcDN5aworNTQ1ODUgNjUzMjZhMzgxNWY3NjBhZTg4NzQxOTk5ZTQ3MGE4MmZkMmZmYmQzNCBsZWdhY3ktdHJ1bmsKKzU0NTg2IGU0ODkzZWU5YTg4NTc5NjQwMDU2ZjQwMjE0YzAxYWJhMWVjNmYwN2QgbGVnYWN5LXRydW5rCis1NDU4NyA1MDk1YWZlZTA4MGYxMDA5YTU4MjljOGFkNzQwN2U3M2FkYzI2Njg4IHAzeWsKKzU0NTg4IDgzNGRhNTJlYjJhNGViZTZmODBlMDU5ZDExM2FjZjFiMDQ4ZDMyOGEgcDN5aworNTQ1OTIgNDVhMjc2MWM5YjE2Y2UzYjNlNDdiM2U4ZDliZjhlOTJkMGEyZjI5ZSBwM3lrCis1NDU5NCBkMTQ0ZjgxNTc0YzA4NWRlMTViODI5MWMwYjAwYmY1YmNjZGFiNzIyIGxlZ2FjeS10cnVuaworNTQ1OTUgZDQxNmQ5NzE3MTgxNWJhNjI4ZTQ1NzExNWFhMjQzZDFmZDZiYjg1NSBhbWstbWFpbGJveAorNTQ1OTYgM2U2ZDAzMjE3YTAyYjA1OTlmNjdlM2EzOTY4YzRkNGNmNDM4MWNiOSBhbWstbWFpbGJveAorNTQ1OTcgNDZhZDIxOTM5NjhlZmE3YTI4ZmNjNThkMDZmYzczNjAwNDMzZGQ4NyBhbWstbWFpbGJveAorNTQ1OTggNzMwNTQ1ZjI0MDg2ZGQ5ODE5Mzc2NThmMWNkMTcwMGY3MmVhMDgxZCBhbWstbWFpbGJveAorNTQ1OTkgMmQyOTY2NTY3OWU2NzQ2NjAzNDY1MjQ1MzZhM2I0ZWQyMDUxY2IzZCBsZWdhY3ktdHJ1bmsKKzU0NjAwIGVmZGNlOGQ4ZGI5OTAwMjhhNDEyZGM3NzE4ZTg0NTMwYWJmMTE4YWIgcDN5aworNTQ2MDEgZjlkZmJiNWQzNWMyZjMyZTYyMGY0ZDQyOGE3YTFjZjVjYTY4MGM4MiBwM3lrCis1NDYwMiBiODk3Yjc3YTAwNGY3YTU4ZDg2NzIwZTkyNTIzMjE5YWVmMDNmNDUzIHAzeWsKKzU0NjAzIDM5ZTQzODZkNzFmNjUyNWFiNjU0MDc4MzczYTQ1NjdmYTI5ODBlZGYgbGVnYWN5LXRydW5rCis1NDYwNCBmNTdlOGUzMjU0NzVlYzUwNjYzOGIwNDY1MzBlOTM1NDk1ZGRjY2RmIGxlZ2FjeS10cnVuaworNTQ2MDUgNWE4Y2E5ZGQ4OWRiMzQ3Y2ZlMjg3ZmU1ZDkzZTA2ZjZmNzIxYTM2ZSBsZWdhY3ktdHJ1bmsKKzU0NjA2IGUzMzQ5ZDQxMjY4MWVlNmYwZjQxODJiMWVmZWNkMDViY2Q5NzJlZWQgbGVnYWN5LXRydW5rCis1NDYwNyBmYTIxODFiZDI3MDQ5YmQ4ZmEzYzkxMjQyNDRmOWRiYzhjNmJlYzU1IHJlbGVhc2UyNS1tYWludAorNTQ2MDggM2ZkOGYwNjU3N2ZmZjlhNTEwNzIwYTk4Y2UyYzI3NjA2NWEwMjMzMSBsZWdhY3ktdHJ1bmsKKzU0NjA5IDUxOWU3MmQ2MzBkMjA4NzM4OTZlNmU0ZDY3YTFhODcxNzBmNTA5NWYgcDN5aworNTQ2MTAgODhjMmFjNTkwNDQxYzJlNTNjYzYwNjc5NGNmNDgxMjcwNDJmMzkwZCBwM3lrCis1NDYxMyBjY2RjNWIzYjliMTE3YWM5ZGFiNGVkYTA4OWRmNGRhM2E3NmNjMTJjIGxlZ2FjeS10cnVuaworNTQ2MTQgMzc4YjJmNDdlODA4ZjcxMzExYTA2YWUxNGRmY2RiNGQ2OGY2OTFjYSBsZWdhY3ktdHJ1bmsKKzU0NjE1IDZmOWU2OTNkNzZhMTg0ODQ4YTRmYzJkOTY4NDQyZWJlNDg1YWZhYWYgbGVnYWN5LXRydW5rCis1NDYxNyA4ZTNjN2E1YWNiY2RmMDAxNDdmMjNiYTIwYjMyNGVhNjFiNzk1NzMwIGxlZ2FjeS10cnVuaworNTQ2MTggODNlMWIwNjExNzE0NmM2ZGY4N2IxYTBhMTFmM2E4NDMxYTlhNTUzYyBsZWdhY3ktdHJ1bmsKKzU0NjE5IDRlNjBlM2E2MGY1MDRjYjNjMWJkMzhiNjFkMDhiZjUwMTU3ZGE3MWIgbGVnYWN5LXRydW5rCis1NDYyMCBhNTA3NWE1MjczZGY3OGQ0YjE5Nzg0NDcyODFmMmVhY2U0MGM1ZDYyIGxlZ2FjeS10cnVuaworNTQ2MjEgY2RiMjU3OThjZjBiYTA1YTRkZDViYThlZjIwOWM3ZmIyNGJhOTJjNCBhbWstbWFpbGJveAorNTQ2MjIgNTg0MjdlMWU1MWJkYzYwNjg5ZmQ0OGQ3YTgxYjkzYzhiNWRlYmFjMSByZWxlYXNlMjUtbWFpbnQKKzU0NjIzIGRjNmU5Zjc5Y2M0YWZiZmM2ODA0YTZjYzA4ZDhlZDc5NjIwMDYxYmUgbGVnYWN5LXRydW5rCis1NDYyNCA1MDI2MzIzZDk5Mjg4MzM0NjM1ODk5MTU0N2RlZmJhNjY2NDI5ZGEzIGxlZ2FjeS10cnVuaworNTQ2MjUgNTVlY2MzYTQ1Njg2NjM4NzJhNzk1MzdhNmZiNWQ5ZDc3YzNhZDIxNSBsZWdhY3ktdHJ1bmsKKzU0NjI5IGMxZjY3ZTFlZWU1OGI2MTkzMTI3OTA2MTUzZThmYzk5ZjEyNDNlZTggbGVnYWN5LXRydW5rCis1NDYzMCAzOGE4NjExODFmZGQ1OGMzNWQ5ZTM4NDMxZjk0MGE5ZGMwN2QyM2JmIGxlZ2FjeS10cnVuaworNTQ2MzEgNDFkYjNmMzBhM2Y5ZjBkMWMxMWM2MTBkMmYxYWE1OGM3YjQxNjVlYyBsZWdhY3ktdHJ1bmsKKzU0NjMyIGRiOWVhZGMwNzgyNjQyMzYxYmY0NjM3ODNhOTY2OTdjNWNkMDVmMGYgbGVnYWN5LXRydW5rCis1NDYzMyBmODY1NTdlNTAzZjNhN2QxM2VhZmNhZGYwMDY2M2MxZjE1NThjNGViIGxlZ2FjeS10cnVuaworNTQ2MzQgOTM0Nzg3NDQxMDM4NzlhODViNDMxYjIzOTMyNDVhNjYyOTBhNjczMiBsZWdhY3ktdHJ1bmsKKzU0NjM1IGMyYmYzZDY0NmVmZmEyYjMyOTAwZjUzM2E5ZDc5YzQzOGFkYjY4YTEgcmVsZWFzZTI1LW1haW50Cis1NDYzNiAyY2U4ZTgwNTM5Y2Y3OTE2M2JkYWEwNjU1YTRkNWUwZGJjYjQ5NDU4IHJlbGVhc2UyNS1tYWludAorNTQ2MzcgZmM3ZmJjZjJhZTUxNzdhZmRmMjU3Y2RhNjNhZDQyODIyYThlZjhkMSBsZWdhY3ktdHJ1bmsKKzU0NjQxIGYyMTliYjdlNzRjOTIxNzJhOGE5YjM0MGJlNWU1NjdkMWZmZTI4OTUgcmVsZWFzZTI1LW1haW50Cis1NDY0NCA3ZGVlN2Y3ZDI5ZjA4YzllODAzN2JhMzBlMjcwZjRiZTRlZGI0OGEyIGxlZ2FjeS10cnVuaworNTQ2NDUgMjIxMTk0MjQ5ZmE4NmUzYzVkMTMxNmIxYjY5ODNlZTRkMzRmNGEyNCByZWxlYXNlMjUtbWFpbnQKKzU0NjQ2IGI1Yjc1MGNmODVjMjA5NTZlNmJlNmZjNzI1M2I4YTIwNzJmZjZmMjkgbGVnYWN5LXRydW5rCis1NDY0NyA2OTZhNjY2ZGZlNjE0MTY5ZTY1N2JmNDgwMjVlYTI5ZTk4Yzg4MDIxIGxlZ2FjeS10cnVuaworNTQ2NDkgZWE2ZjJjNWQyNzQ5MmYyYzU1YjU5NzczMDgyNTFhMTk2NmJjNGFmMyBsZWdhY3ktdHJ1bmsKKzU0NjUwIGU5NWQyYmNmZWI0NjMxZTYzMmEwM2Y0NDA1MDlkZWNlZmFmZTNhY2MgbGVnYWN5LXRydW5rCis1NDY1MSBhY2RiNGYzYzNkNjMyMmEzYTk3YjkwMTBhMmQzYzU3NTk5ODQ4MGM4IGxlZ2FjeS10cnVuaworNTQ2NTIgMWE1ZGEwNzhjNDM1ZjJmNzU1ODAwNWJkMDNmZTJjMzc5ODIyY2I4NiBsZWdhY3ktdHJ1bmsKKzU0NjUzIDkwYzRjM2YwNDIwNTZhZmJlZGJlNDQ2MGE5ZGM5MGU0MmM5Y2ZkNzYgbGVnYWN5LXRydW5rCis1NDY1NCAzNWJkYzYxYWM4ZWFkZTlmMmJmMDRlYjk0OTI1MzYyZTdhNzEyYzAxIGxlZ2FjeS10cnVuaworNTQ2NTUgNDdkMDVmMWFlYmRkZmJkYzJlMDBkYzg1ZTUyY2NkNTJhNzAxZjNiMSBsZWdhY3ktdHJ1bmsKKzU0NjU3IDgxZTU4ZjAxMDFkYjdhMTIxNGU5MTA1NTA3MmY4YWMyZmQxMDRiZjEgcmVsZWFzZTI1LW1haW50Cis1NDY1OCBmNzY0YTc1NTIxNjJlZmMzMDkzOGI3ZWQ4OGU1MWFjZGMzMWJjYTdhIGxlZ2FjeS10cnVuaworNTQ2NjAgMTJmZjIwOTQ4YTAyMjU3MzdjNTI0ZGRhNzIyNWZhYzM3MWIzNTc4MSBhbWstbWFpbGJveAorNTQ2NjEgNjc2MGYzOGU5ZWQ2NzYxYmRmNjhhYTkxMDA0ODhkYzBlY2E5NjEzMiBhbWstbWFpbGJveAorNTQ2NjIgNmEzZGQxYzRhN2RmMDE0MTU1NDFhZDkzYmNhOTZmNzNhYzI2YzMwZSByZWxlYXNlMjUtbWFpbnQKKzU0NjYzIDRhMDM4NjBhZTA4YjU3MDdkZWY4YzE2OGY3MWVmOWFlYTY5NjFkNDIgbGVnYWN5LXRydW5rCis1NDY2NCBlZjVkM2U1MzkzODQ3MjIwNWNlZWZlNDBhYmJjMWM0MDRhYzM1YmI3IGxlZ2FjeS10cnVuaworNTQ2NjUgOTliZjE0NTU1OGQzNWIyNTU5YzhlNzcyZTcxYjMyNzUxOTExNGMwMSByZWxlYXNlMjUtbWFpbnQKKzU0NjY2IDQ4ZDhkNWQzMTdhZWUzYWEyY2M2NjQ4ZWNkZTYxZDQwNjk1YTcxNDMgbGVnYWN5LXRydW5rCis1NDY2NyAzNDNlZWYzNDI3NzczYmUwOTAyMzIwZjNkYjkxMzU2ZWI1MWYyNWU4IHJlbGVhc2UyNS1tYWludAorNTQ2NjggZTY4NWJmYTZiNGVhYjg3NTAyNGQ0MjE3NWJkNTQwODNmOTBhNjZkMSBsZWdhY3ktdHJ1bmsKKzU0NjY5IGY3MWZlZWM3ZDU0Nzg5Zjk0YTNlZTk5ZGY5ZTM3OWZkNTQ2ZjU1NTggbGVnYWN5LXRydW5rCis1NDY3MCA4OTBiYjkwMDBjZTU1NTMzZmE2ZjU1NzMzZmI2MGFhZTJhODEwYjBiIHJlbGVhc2UyNS1tYWludAorNTQ2NzEgMjJhMTY3YzQ2NzhjMmE4NWVmN2JhNmRkOTg0OGM0NzhhN2VjM2QwMyBsZWdhY3ktdHJ1bmsKKzU0NjcyIDg1MTEyZGQ1MDA1OTVlZTIzM2RmNTMzNmNhNjIxOWJiYTQ2OTFkNjIgbGVnYWN5LXRydW5rCis1NDY3MyBjZmFjNjRhMDJhM2Q4M2UxNjM0NDRhMWRjY2UyNzM2M2EwOWU0NmVhIGxlZ2FjeS10cnVuaworNTQ2NzQgYzczODE4MDQ0NDdiYzNkNDE0YjBmOTMzYzQwYTRlNDYzNzk4NzRjNCBsZWdhY3ktdHJ1bmsKKzU0Njc1IGFjMjU1YTQyZWMwZTFhOTE0MzJmYWRjMWE5Y2RkN2ZkMzU5MzE2Y2MgbGVnYWN5LXRydW5rCis1NDY3NiBkNDFkMWJhMjA5Yzk0MmFlMDcxYTY3NTJiM2I0MTFjMjBiODMwYTQ0IGxlZ2FjeS10cnVuaworNTQ2NzcgY2I2Y2NlNGQ0MjMyYmY0MjhkMjQwZGNjNWVkZTdlZDE4MDE0NzVmZiBsZWdhY3ktdHJ1bmsKKzU0Njc4IGUxYWIyNWZkNWJhZDgxNDU1ZjRjOTRjODRiZTEzNDQzZDQ2YmI3YWQgbGVnYWN5LXRydW5rCis1NDY4MSBkZDdjNjliZDBjNTJhMTM1YjMxMzY3NDM1YTczOTJmMTg5YzQyMzEyIGxlZ2FjeS10cnVuaworNTQ2ODIgZTdmNzhhMzdhZTUwYjBiOWYyOTEzMzhiMWU4YzkxNTZhYzc4ZTAxMiBsZWdhY3ktdHJ1bmsKKzU0NjgzIGI3ZTM3OGU5ZDAyZDU1YzNlOGRiMmNkZjlkYmM4MzZhYTJiYjUxMmIgbGVnYWN5LXRydW5rCis1NDY4NCA1ODZhN2U4Nzc1MDBlMjBlZGRjMjZlNWE3ZmQ1Y2Y5NTAzZGFjNDA0IGxlZ2FjeS10cnVuaworNTQ2ODUgZDhjZDg4ZjkzMDk4MGRlMGY4NmVjYjA1MzRhNGMwMmFiOTI0MGJkOCBsZWdhY3ktdHJ1bmsKKzU0Njg2IGIwMDFiNjU0NzhmYWJlOTgzNjEwODA0YWQ4OTkzOTI1MTdmZmZmMjkgcmVsZWFzZTI1LW1haW50Cis1NDY4NyA0MzI1MDAxODI4NWMyYmIyMTk5MTgyY2MxNGExMGM2YWM4YzI4Y2M1IGxlZ2FjeS10cnVuaworNTQ2ODggNzEyYTE1ZWZjZjE5YjczNjkxMmQzZWFmMDBlYTNiZTY0YWZlZGMwOCBsZWdhY3ktdHJ1bmsKKzU0Njg5IDUxMmY1NmFmYTRhMDUxM2U3MGQ0MDYwNTBjYTg3MjNiYjVjODAxYjYgbGVnYWN5LXRydW5rCis1NDY5MCA0YzdlYmMzOTdkOTQ3YzcxMjZkNzZiZGJhMjBkN2VhM2M0NGYyMzNkIHJlbGVhc2UyNS1tYWludAorNTQ2OTEgODEyMDI3ZjFlZWE1MzVhM2EzMTkxZDdlMGVjZDlhZmFmMjdmMzhjMyByZWxlYXNlMjUtbWFpbnQKKzU0NjkyIDI4YWVjMTM1OGY1OTRlMTRiZjdiZTZkODZiMGRhYjUyNTE1ZmMyZDYgcmVsZWFzZTI1LW1haW50Cis1NDY5MyA0Nzc3YzQwMDdiNWIxOTQ0MjM5NTNkNDFiMWU1ZTZhZGFhYmE2YzVkIHJlbGVhc2UyNS1tYWludAorNTQ2OTQgODE3MGQ0NGRkOTA0ODhkZTAyNzhlNTExYzAzN2RiMzFiMjlkYzVhNiByZWxlYXNlMjUtbWFpbnQKKzU0Njk1IDgwZmY3NWZhMjc1NGViMGY4YjQ1YzA0NzJlNGJmMTE3ZDYxYzFjNDUgbGVnYWN5LXRydW5rCis1NDY5NyA5YTUwZTJiNmI2ODU3NDdmOGY5MDU3NTRjOTI3YzFiODViNmY5YTQyIGxlZ2FjeS10cnVuaworNTQ2OTggZWE2ZmJmNDA0YzM0ZDk2MzFiODMwNzRjYTQxNmNlZWFkN2JhOGVmYSBsZWdhY3ktdHJ1bmsKKzU0Njk5IDU4MWQxMjdlODIyYjcxOTQ2ZTE2NGVjODdiMWExNTY2OTFiZDM1ZWEgbGVnYWN5LXRydW5rCis1NDcwMSA5MTIwMjgxMjQxYjgyY2VjMTAxZWFkY2E1YTY5YjRjNDcxNTFjNTc2IHAzeWsKKzU0NzAyIGJhZDVmODMyODA5ZmMyOTQxOTEzZTQwZmMxOGQ5YjAyZWEwMGMwZWEgcDN5aworNTQ3MDMgNThkNDljYWU4ODdmMmY5YTNkZmJkNzYxMjQxOTE4ZGZhNTFjN2Q2NSBwM3lrCis1NDcwNCAzYjEzOTZiMDEyMzkzODIwMjkwZmMzMDUwOGUxM2UxNDhmNDlhZTE2IGxlZ2FjeS10cnVuaworNTQ3MDUgMjM0ODY5ZGQyNzg0ZWQwZjZmZmJiYWNiMmE1MDk5YWUzMjhmOTViZiBsZWdhY3ktdHJ1bmsKKzU0NzA2IDk0MDhkY2QzY2U4OGZkZjAyZjFiZjg3NDQxN2E3MWIyM2M5NzZmNjUgbGVnYWN5LXRydW5rCis1NDcwNyBjN2I4MzBjODZmNDJiYmQzODFjZmY2MmYxOTJjODU0NDI3MDBmOGI1IGxlZ2FjeS10cnVuaworNTQ3MDggMDIwZmQ2ZGU2NTI1ZGEzNGMwNmIwMWUyZWNmMTcxOTBmMmY4NTZmZCBwM3lrCis1NDcwOSBjNTY2MDA1NWI0MjVkZGJhYWQ2ZmE0Yjc5NDhlZDE3MGVjMDYyY2Y2IHAzeWsKKzU0NzEwIGQ4YjE0OTk0ZDg3MGI2OGU0ZDBiNzU5ZGYxMjM2YzhmODNiNWNhZjYgcDN5aworNTQ3MTEgODBmNWVlMjFlNTQ1NTg3ZGQ1MGJlZjNjZWYwYjMyODU4NGRjMzY3NyBsZWdhY3ktdHJ1bmsKKzU0NzEyIGNjMDBiY2U2YzU5ZDM3YTM3ODQ5MzA3NjVlMTg2MTgzNjBmNzMxMmYgbGVnYWN5LXRydW5rCis1NDcxNCBiOTEyNGMwZWYxN2EzMjE4ZGU0NzNjNDZiNzhlNjZjZGRkOThlYmFjIHAzeWsKKzU0NzE1IGFmNTExZDI0NDYzNjkzY2Y0NDBkMTFjODg2MzliYmFkZmNkOWY5MTEgcDN5aworNTQ3MTcgZTI5ZmE0YTFjYmQ5MzFiM2ZlYTcyNTM0MGVjNjc3ODIxMTdkOWE1ZCBwM3lrCis1NDcxOCBhNTcwN2JmNGY2ZDE0MzM5MmVmYjYxYzhjNDk4MDllYWMyNmE0OTlkIHAzeWsKKzU0NzE5IDMzOTAxNWQ5OGI3ODY0MjI1NzdhZmY0YjU1NTUzZDAwZTk1N2RkOTcgcDN5aworNTQ3MjAgNTIyYjNmMzVkMGViN2RiYjYzNzUzMmRhNzdmODVlMTZiZjVjMDU0OCBwM3lrCis1NDcyNiA0ZDUwZmFkOTU3NjgyMDYyZjQ0OTc1MTQwZGY5NGI2NmJlMGVmOWNjIGxlZ2FjeS10cnVuaworNTQ3MjcgNjU3M2VjMWU1ZGMwY2RmZjRhYjIwNmY3Yjk5NTg2MmFjM2ZlMWE3NiBsZWdhY3ktdHJ1bmsKKzU0NzI4IGY0MzkxYWJlNWIwMjM0NWYyMTU2YmM0MzU3ZTU5MzMxMmMwYTJmOTYgcDN5aworNTQ3MjkgODU0Mzk5Mjk3Zjk1N2U4NTI1MTJmYTU4ZTViNGI3YTg1ODlhYTllYSBsZWdhY3ktdHJ1bmsKKzU0NzMwIDY3ZjkwMGQyZjJlNjIxNGVjODExYzI1NzdmMDZlZmNmZTg5M2VjNTkgbGVnYWN5LXRydW5rCis1NDczMiBhZTRjZWQyOGE4MzkwMmJiMjFlOWYzMmU1MjY1NTc5OTUwNzk1MmM4IGxlZ2FjeS10cnVuaworNTQ3MzMgNGY3NzAxNjI1NGJjODRiZjUxZmUyNTA3YmFmZjJmNjUzNDVmNzkwMCBwM3lrCis1NDczNyBjOTBkNzVhNWUxOTExNGJjN2FhZWMyYTZjYWVmYjQ0YjU4NDM3MzNkIHAzeWsKKzU0NzM4IGQ0MTA4YWNhODc2NDI3YTlhYmE1ZWI5OWQzMmNjMzJjNDU3MDZmYjggcDN5aworNTQ3NDAgYmEzMWU3MTIxMGQ0NjlkMzM2MTc4NmY4NDczNmQ4MTczMzAwYzZkZiBwM3lrCis1NDc0MSBlN2Q5NzkxMDE0MzA4YTg3NTE5YTkzOWIzYjk1MGNiODgxYzViNjY2IGxlZ2FjeS10cnVuaworNTQ3NDIgN2M2OTcyZjM3ZmUzNTMyMGNjMWZiY2JjMmY1ODNiN2ZkNDUyMGI1OCBwM3lrCis1NDc0NCAwNDg2ZGVhYWFkZTNlNDBlODZhYTVlMzE4ZTYzMTYyYTA0ZjhhYThiIHAzeWsKKzU0NzQ1IDQ1NjFmNmRhM2I3ZDM5NDc4NjhmNTUxZmJjN2VkZWU5OGU2YzY4MTkgcDN5aworNTQ3NDYgNDAxMTBkMDZlODJhZTIzYjY3OTNlNmNkMjI5YzlhOTkxNzhiNDQ1OCBsZWdhY3ktdHJ1bmsKKzU0NzQ3IDE1ZjM0YWQ0NjgxYjg4NTQ1YTM3NmE1ZWVlNmYzNzZjMGU3ZGY4N2MgbGVnYWN5LXRydW5rCis1NDc0OCA3M2MwMTY2OTZhODJmODRiZWM3YzVkMDJmMmRjZTY4MDRjMDFiMzk3IGxlZ2FjeS10cnVuaworNTQ3NDkgMjZjYmNkNzlhMTUzMTAxNTY1MDNlNDk5YjI4MTgwN2IzYTNjMmU3OCByZWxlYXNlMjUtbWFpbnQKKzU0NzUwIDI4YmM3ZWQyNjU3NDczMDVhNTI2MTI0N2U1YTIwMDJmOWZmMTA1MTMgcDN5aworNTQ3NTQgOTgxYTMxZmYxOTY2ZGYzMjU5MzQ5ZDFlZDc2YjA1ZDFmY2UwYjdhYSBwM3lrCis1NDc1NSAwMGQ5ZjUwYmRjMzFhYTk0Y2IxNWEyNjcwMmM2ODFjNDIwNmRhNGM2IHAzeWsKKzU0NzU2IGYzOTA3OTNlNzVkZWMzZDk3YTgxZjAxYjYwMzIwMWYzN2Q2OWFmZmEgcDN5aworNTQ3NTcgNDZkMGY0MDU3NzA1YjA5N2U5YTE3MDg3MWZkMDFhNWI2MjExZGQwNiBsZWdhY3ktdHJ1bmsKKzU0NzYwIDBkZmEyYTU2NDA3NjBlNjg4ZjU0N2M0YTRjMGNhYzVjNGZmM2IwMWMgbGVnYWN5LXRydW5rCis1NDc2MSAzNjY3ZDFhOGM5MTZmMWEzZGM4MWE5MDNlMGNkYmY4MzI2YTY3YWJhIHAzeWsKKzU0NzYyIGEwMWNiM2RmMzhkZGYzNDc0MWIyNDgyZGE3M2Q5OTdlZGQyMTA4NGMgbGVnYWN5LXRydW5rCis1NDc2MyBjNGY0MDNmNDUwZWRhNjVlOWEyMTZjNzA5YTM5MmYwOTQwZTA0MGEyIGxlZ2FjeS10cnVuaworNTQ3NzIgY2VkYzhkN2QxYzdmZWI1MmIyNmZlYmVkOWVjYzc5YzI3NTU1NjE0MCBsZWdhY3ktdHJ1bmsKKzU0Nzc0IDg2YzQ2ZGM2YTc3NGFlOTc0NWE1MDQ4ZTQ0MjhmODBhZTE3N2YxMzEgcDN5aworNTQ3NzcgNjVjYjZiMWZhMzk1MWYzNDUwODBkMWM4MmFiNzM3Yjc5YTc0YjdmYyBwM3lrCis1NDc4NCBjMzRkNzA1Yjg4NGU0ZTlmMDczMzc5YjUxZmUwYWNhMmU1ZmVhNWM5IGxlZ2FjeS10cnVuaworNTQ3ODUgYzBjNDQwN2QzNTMxYzZiYWY1NGNjMDg1OTQ0ZGZlZWNjZjdiOTA2MyBsZWdhY3ktdHJ1bmsKKzU0Nzg2IDg0NDczMTRmNTAwYTk3Y2M1NWM0ZmQ4NDY5YWJmYWM5ZmQxMDMxYjUgbGVnYWN5LXRydW5rCis1NDc4NyA5NTNiZGVmZDgxZmY1NTZhZTYyMWQ3ZmY4NmQxMTgzMjkyNGQ1MjVkIHAzeWsKKzU0Nzg4IDM1Njk1ODdiZWYwNjVlYjkwM2NjYzhiMzYyMjdmZTI4ZDM3YTM2NjUgcDN5aworNTQ3OTcgNDU4YzhkYjJlOTQ2MTZhMmFmMzNjNDc3MDM3MTJjOWE4NjI5Zjg2MCBwM3lrCis1NDc5OCAwYTM4OWI0N2YxMjllOGY2ZDA2ZWJiOGQxMmRjZWYzODE4NjgxNGJlIHAzeWsKKzU0Nzk5IGQxYzNkZDE4NGUzODgyYjk5NDQyNzQzNmViZWFhNDgwOWVkMzZmZGUgcDN5aworNTQ4MDAgZTJkN2E0YzM5MzYwYThmMWMxMzdiMDhhNTFhNDZkZDk2NmJiZTAyOSBwM3lrCis1NDgwMSAzYzMzOWRlODAwMTA1NmI2ZDJhMDc0YTI0MDk4MzFhOGE2NzhlMTIyIHAzeWsKKzU0ODAyIDM1ZjlmZmM2YjUxMGY4ZjljNjZjNjYyY2ZiMjI4ZDZlZTAzNTIwNzUgcDN5aworNTQ4MDUgYjgyMmZiZDg1YWZlYjNiN2FiMjQ3NzQ3NjU5MGRjNDJiOTcyNzEyNCByZWxlYXNlMjUtbWFpbnQKKzU0ODA2IDVkZmQyZjRiYzgzNGI2ODMzM2M1ZjE5NmUwMTA4MjMzNTU1MTk0NTAgcDN5aworNTQ4MDcgNTM0ZTRjNzA3ZTkxZTZiZGE4Y2QzMjU4NTNmOTYxMDI1YjY5MGZlYiBsZWdhY3ktdHJ1bmsKKzU0ODA4IGJhYjljMzgxNzA5MjZiMzc2YjE1MDBiY2NlMDMzNWFiZTY5M2UyZDIgcDN5aworNTQ4MTIgMGQxZTQxNWVjMzZjY2QzNjllNDA2ZDFkYmJlOTcxNDQwNDIxZmI4YiBsZWdhY3ktdHJ1bmsKKzU0ODEzIDgyZjI3OTFiN2MwMjIxNjRhZjJkODIzYjg1YmMzZjQwNmMyMzQ0YTcgcmVsZWFzZTI1LW1haW50Cis1NDgxNCBlYTNjYTQ5NWYzMjExZDNiMWU4NWY2MDQwZGIyMmJmZGY4MzBiNGY2IGxlZ2FjeS10cnVuaworNTQ4MTUgZWQ4MjAyMzlmODc4NzYwNmNmYjg0MDhiOTRiNDI2NzA0MTMxNjNmYSByZWxlYXNlMjUtbWFpbnQKKzU0ODE2IDg0MjM3NzIwOTdjNzRhNmNjMGFkZWQ4N2ZmZTUzMmI0NmYzNGYzODMgbGVnYWN5LXRydW5rCis1NDgyNSA1ZjhhODdmYjRkZjMzMmQ5ZjliM2U3NGJlNGJiOWNlMTRlOWFlNTFhIGxlZ2FjeS10cnVuaworNTQ4MzUgMDYwYzc5ZjZkOTE5NjdmZWQzYzI3OTVjOGRhMDkxZTQ0ZTJmMjI4OCBwM3lrCis1NDgzNiBkNjdiNWQ5NTNiNDUyM2IyOGJiNjFjYzA2YTIzOTU2YjM4MTg5Y2NjIHJlbGVhc2UyNS1tYWludAorNTQ4MzcgYmM3NWM1MjNiOWQ4MTcxNjRlN2YxZDQ0ZWMzYWUzZTYxYWUwNzhlMyByZWxlYXNlMjUtbWFpbnQKKzU0ODM4IDU2MjNlMjMzZTljY2ZkNDdiZTM5Njc4ZTExNzc5M2EyNzIwYzFmMDYgcmVsZWFzZTI1LW1haW50Cis1NDgzOSA0NTc5YTI3NGZkNmUyYTU5ZWY2ZmI0M2MxYzk3OTlhNmRjMGU4YTBhIHJlbGVhc2UyNS1tYWludAorNTQ4NDAgMmZlOTFkMjAxYjA1MjJjMWMzMTc1NWFkMjZkZWI2ZDg3ZDVjMWQ3MyByZWxlYXNlMjUtbWFpbnQKKzU0ODQxIDMxYzkyODI4YWVmYjFiMjRlOTAwNTViMTQ5N2UwNmQ5ZWRmYmEyOWYgbGVnYWN5LXRydW5rCis1NDg0MiAzZTVmZGI5M2M5NWE3Y2MyZTlkNzYwMGM2ZDQxNTJiMzQ2N2U3NTZiIHAzeWsKKzU0ODQ0IGNjNzA3ZjFhZTBiNmVlZDNkMzI1NDI3NGNiNWZmYzUxM2U3MjE5ZmUgbGVnYWN5LXRydW5rCis1NDg0NSBhNDk4NTlmNDRjNDMwYzY1NDIwNmM3ZTVjYjQ4ZDAwNTU4NjUxMWM5IHAzeWsKKzU0ODQ2IGI1YTJlNzUzYjY4MjMxYjBkMWMzZDU2NGQ4NDJiOTVkODQwZDUzMDIgcDN5aworNTQ4NDkgZTAxMTY5NjYzNjVlMmI3ZjZkOThmYTQzNmI1MzVhZGZjMDU2ZGZmMyBsZWdhY3ktdHJ1bmsKKzU0ODUwIGMxY2ZkMGFmNWY1NzMyNzE0N2MzMzVkMjdlOWU5YmE4NDdhYmE3MWMgcDN5aworNTQ4NTEgMDkwOTcyYzIwYTQ3MmU5YjJkNWI5YzExMjZiNzE4ZTQ1MjdlMmVmZSBwM3lrCis1NDg1MiBhMzBhZjgzM2QzODliODI4ZGUzMzQ1YmY0MTczNjY5OGVkYjVmZTQwIHAzeWsKKzU0ODUzIDk2NTczOTVjMjVlNThiY2RlZTYxYmZkOTE5NTcwZjM0NzE2YzViNjcgcDN5aworNTQ4NTQgOTkwMjdjMmIzZmQyZGU0OWE5NjdlYmUwMDhkYTU0MjJjYTQ0OGRhNSBwM3lrCis1NDg1NSBiZWEwYTU1OTJkYjNmZGU5N2Y2OWRiMmZjYzE0NTIwZDU1ZGRiOTI5IHAzeWsKKzU0ODU2IGE1ZTQxMDYzOWUyNDg2MzU1ODA3MWNiZDhiYWM0YjQyYWQyMzExYzcgcDN5aworNTQ4NTcgNjFjMjhkNzc4ZTM3OTMyYjM4YWFhMGJkN2QzNDYwYjQxOGYzMzA5ZCByZWxlYXNlMjUtbWFpbnQKKzU0ODYzIDQ5MGQ4YzA5YWJjYjgxNDk1MGJlN2JiN2EyNWMzZmYyMDQ3YzdlYjUgcmVsZWFzZTI1LW1haW50Cis1NDg2NCA0ZTBlODRmOWQxNGUyYjVkMjg2NGIxYjNiMWUxNTJkMjBjMTJjMDVlIHJlbGVhc2UyNS1tYWludAorNTQ4NzMgYzMyYzRiM2RhOTNmZDRiZmY2NDE3ZDY2NDA5OGM0YWEwMGU4YWFlOSBsZWdhY3ktdHJ1bmsKKzU0ODc0IDU4NTI3YjliMjQyYzdkNGJkNTE5ODBkZDVhMTBhMTFhYjZlYmU5NzQgbGVnYWN5LXRydW5rCis1NDg3NSA1YTZkOTAzYWI3YjViYTRlZjBkMWQ5MWQyYzFiMGVkNmIxYWE0ODljIGxlZ2FjeS10cnVuaworNTQ4NzYgZGE0MDNkMmI4ODZhYjU4YmYwZGYxYzExZGM3MWRkYzNkYTU4OTdlNSBsZWdhY3ktdHJ1bmsKKzU0ODg0IDc2ZmQzYjk4ZDAwN2Y2YzQ4Y2FlOTE5YjM5YmRjMTNlODdjYzNlMGIgbGVnYWN5LXRydW5rCis1NDg4NSAxN2U0MzYzZWYyYjUzMGYxYWE5YTBiYzEyODQxOGVlNjNmN2M0NGUwIHJlbGVhc2UyNS1tYWludAorNTQ4ODYgMGY2NzVhNjI5NzcwYWExYzJmYmFkMDAyN2MyNTU5MDdmYjFhYzk4MSBkZWNpbWFsLWJyYW5jaAorNTQ4ODkgMDFlNmQ4NGUzODkyNDUyNDczMjM2ZjIzZWVhZWY3NGVlOTk5MzZhZSByZWxlYXNlMjUtbWFpbnQKKzU0ODkxIDE4Nzk1ZDQ5YjhkMmFjNDBiZGQzODg5MDM0N2I3NDAwYzRmNDU0ODkgZGVjaW1hbC1icmFuY2gKKzU0ODkyIGY0MzY2NGU4YTFmYTRjOWZkYzQ1MGQwNTcyNGU3MmQ5NGVjNDE4MWUgZGVjaW1hbC1icmFuY2gKKzU0ODkzIGJmYjZmMTMzMmZiNGUzM2Q1YzcyNGE2YmJlYWY1NDZhNTA5NjY0ZTQgZGVjaW1hbC1icmFuY2gKKzU0ODk3IGY3NzdkMWRkNGRjZGRhMjU3N2QyZmFmNDJkMTQ2ZmJjNGE5YzljYTIgYmNhbm5vbi1vYmpjYXAKKzU0ODk4IDZiNDY1Y2MwMjViM2Y3NWNiZmJjNmViN2Q0OTE2NTNkYzg4ZTYyMWEgYmNhbm5vbi1vYmpjYXAKKzU0ODk5IDg0YjVhY2VkNTM1NjEzODhmMzExNzM0OTNkOGI5MGQ1YjAzOTY1NzcgYmNhbm5vbi1vYmpjYXAKKzU0OTAwIGFmNzI2ZmI2ODFmYWFhZWI4ODE2NjI0YWM2MTVjZTdkNDk5YTI1ZWQgYmNhbm5vbi1vYmpjYXAKKzU0OTAxIDBiNzA4MzBlZDc0M2ZjY2FkOGVhZGEzNDA0NzllNjFjZTNiZjE1ZDQgYmNhbm5vbi1vYmpjYXAKKzU0OTAyIGJiNjBiOTUzOTgzOTQxZTkyMjY0YjI3ZTFiM2ZhMjU2NzRiZWFkNDIgcmVsZWFzZTI1LW1haW50Cis1NDkwMyA4Y2QwOTMyNzRkNTc4MTBkNmQxNjhhMzNkNzg2YTVkM2M4MmQ2ZDY2IHJlbGVhc2UyNS1tYWludAorNTQ5MDQgMWNjNmJmMjM0OWU0ZTFlMDNjZDA3NWQ2YjliODhjOTUyZjJmNTBiZiByZWxlYXNlMjUtbWFpbnQKKzU0OTA1IDlhOGMzZDlmNDA1YThhNWZjNjdkMTdmZmQzNzFmYjFhMzMyM2MzODIgcmVsZWFzZTI1LW1haW50Cis1NDkwNiA2YzZjOGE4YWZiMzgxZThhYTQ0NWQ4YmY3NzAwNDcxYWNjYzhjNTY5IHJlbGVhc2UyNS1tYWludAorNTQ5MDcgNWE0NjE5MjE0MDQzZDAxNjYzMmVlODQyZTA4ZDU4ODNjNjc5YTAyOCByZWxlYXNlMjUtbWFpbnQKKzU0OTA4IGFhM2M3YmE1M2Y5ZDJmNDY5NmUwZWYyMjBkZDMyMzAwNmE3N2Y4ZTMgcmVsZWFzZTI1LW1haW50Cis1NDkwOSAwYTZlNTM3YjhkOTZiMzY3YTk0NGY2NDFlZmYyOTZhOWM3NmNjNTAyIHJlbGVhc2UyNS1tYWludAorNTQ5MTAgMGM1MDE5YWZjNTViNWUyYWVjZDhkMWQ2N2I2OTI3OTBlMGIzYWZkOSBwM3lrCis1NDkxNyAxZTI4YzY4YjRlNDNmYjJmOTU2ZDg4MmIwMDM1ZGE0M2YzNGJjZDU2IHAzeWsKKzU0OTE4IDI4MDRlNDg4NjFiYTYyN2Y0ODhkZTU2NmRmMTNiOGY5YjhmNWZkNTkgbGVnYWN5LXRydW5rCis1NDkxOSA0NTYzOGIzN2I4MmM4MTM4ZTVkNjZmNWQ5YzUwMWQzNjEwMzJiMDVlIHJlbGVhc2UyNS1tYWludAorNTQ5MjAgM2NjYjRjMTQzZDNiOGIyNTNlZjAxNGVhY2UxZmJlMTEyYjc2OTMyZSBsZWdhY3ktdHJ1bmsKKzU0OTIyIDNjMjY3MDkyZjEzMWU1YWI3NmU1N2U1ZjViOTFhMjlkZDFhYmZlMGQgcmVsZWFzZTI1LW1haW50Cis1NDkyNCBmNTUyNmQyZWI2NTQ3YjFkOGNhYmNjYTM5YWRlMjlmZTE1OTJlYzhjIHJlbGVhc2UyNS1tYWludAorNTQ5MjUgNTVkNzYxYWNkY2JjZDQxMmQ5ZWYxNGFjZjE5NzliOTc1MzBmOGEyMSBwM3lrCis1NDkyNiAyNmRmNTY2ZjgwZjBkZDc4ZmM0NTBmY2NlZWJmMzEwNGQ1OWQwNTYxIHAzeWsKKzU0OTI3IDgxMGQzMzNhNzNhMTBkZGUwZjYwM2Y1ZmFmYjUyYWM1YWRhMGQwMGIgbGVnYWN5LXRydW5rCis1NDkyOSAzYzEyMDVjYTQ0MmI2YmM4NzYwY2Q4ZGQ2MjJkN2E4NTllNmE0YjRmIGxlZ2FjeS10cnVuaworNTQ5MzAgZmQwZmJmZmQ2ZDUwZjc4NWNmZDYwOTlmZGQ0MDA1N2E1ZmQ3MTQ2NiByZWxlYXNlMjUtbWFpbnQKKzU0OTMxIDA5ZGRiYWRlNjVmZWRhMzkwMmNkY2U3YWM2YjY2ZmJmMjkyNGUxNmYgbGVnYWN5LXRydW5rCis1NDkzMiA5MWYzMTIxNzZlYWYzNzhmMDc4NWE3ZjNhOTkzYWJmMDY3ZjM2NWIyIGxlZ2FjeS10cnVuaworNTQ5MzMgZjQ0NjE5MzhmNTBlMzViZTM4NjY0ZjhiMWU1NDQ1MmY2NTE3ZGI5MiByZWxlYXNlMjUtbWFpbnQKKzU0OTM0IDJmODc2YTVmZmEwZDNkNGYyYzVmYmViMGU2ZTM5ZDM4NTUwOWUwNmYgbGVnYWN5LXRydW5rCis1NDkzNSBkMzZhMzYxYzA1ZmQwMjdkM2I3ODEwNmI4YTUzYzQxMGU2MzFkOGQ5IHJlbGVhc2UyNS1tYWludAorNTQ5MzggZjU4YzBkMTFhNzVjMzE1Mzk2ZDgxMDhlOGM4MGM5ZDAyMWZiOTVjZSBsZWdhY3ktdHJ1bmsKKzU0OTM5IDhkNTAxOGQ3NTA4YTJhN2IzYTZiMTg3YTQ4OTNlZmJjNjVlODA4MTggbGVnYWN5LXRydW5rCis1NDk0MCBkMDVkOTg2NGI2M2M3OWVjNjFmYTM5NjZmZmYzYjdiNWVjNGY5ZjA1IHJlbGVhc2UyNS1tYWludAorNTQ5NDEgN2VhNTk0OTcxNGFkMTViODZlMDdlYjU3YmZlZmU5OTllMTM2ZDNkMiBsZWdhY3ktdHJ1bmsKKzU0OTQyIGFiZmE3MDU1YjhmMzA5YjI1MDVhNzI1MzdlZDcwODdiNWMxNWMyNWQgcmVsZWFzZTI1LW1haW50Cis1NDk0MyA3ZTk5YWY4NjljOTE3NmRiNDY4MWFiYjM1NGE4ZTFmMGJhOGI5ZGY3IHJlbGVhc2UyNS1tYWludAorNTQ5NDQgNTE5ZjIzMTM0NTNiNzFiZDgyNTFkZGVhZWJjOGNjZGY4MDRmNmVmMSBsZWdhY3ktdHJ1bmsKKzU0OTQ1IGI2ODI3MjQ0OWRmNGIwMzExYmQ3MGM5NGEyN2E0NzM1MzZhMzU1YjUgbGVnYWN5LXRydW5rCis1NDk0NyA3MDhjOGM1ZmMxNzMyMzZhY2QyOGMwOGQ5ZjQ1NzVlN2ExNGY3NmUyIGxlZ2FjeS10cnVuaworNTQ5NDggMWJiMWZhN2ZkMTc0MWIzN2IxZTc4OWEzNzM1ODQxNzc5ZGI1YjhkNiBsZWdhY3ktdHJ1bmsKKzU0OTQ5IDQ3YWViMjQ4ODJiZDc5ZDVhZmI4OWQ3ZTA3NjQ5ODQ1YWQ3NGIxZjQgbGVnYWN5LXRydW5rCis1NDk1MCAzZWU4NDk3NDZjMWJmNWI1MzAwYWExOWM5MjJlODIxNTY5M2U1Mjk2IHJlbGVhc2UyNS1tYWludAorNTQ5NTEgMzc5N2I5ODA5MmNlYTJkYThmZGE2OTJiZDAzZTgzNWY0YjJjYzYyYiBsZWdhY3ktdHJ1bmsKKzU0OTUyIGNhNDg5ODA0YWUyMDEwNjNkNDJlMjJjYjRmMDU1YjQ4NzkwNTVlMDEgcmVsZWFzZTI1LW1haW50Cis1NDk1MyA0YjlmYTgwOTJlODI3MTAzYmNkMWIxYjJmNWY5Njc2Y2VkNDBhODE5IGxlZ2FjeS10cnVuaworNTQ5NTQgN2RlZDc4N2U2MzExNmNjOWMyNmI2OTVjYWNjOTZlOTJjYTA0ZTJmOCByZWxlYXNlMjUtbWFpbnQKKzU0OTU2IDZjNGQ3Njc4YWY1ZTJkMTkzN2ZjOGZiMTY3ZjQxYTIxMDYxYzZlOTMgbGVnYWN5LXRydW5rCis1NDk1NyAxMDAyZjQyZTEwY2RmMmQyYmI1ZTgxZmI3Y2NkYzc5M2IxZjgzODJkIGxlZ2FjeS10cnVuaworNTQ5NTggNzFiNWMxZTJjMDljMjIxZjExMzMzN2VjODFjOGM4ODVlZWYyYWVkYyBsZWdhY3ktdHJ1bmsKKzU0OTU5IDAxOTkwNGM2NDcxN2M4Njg3MzhhOGRiYWQ3YmJlNzM5Mzg4NzJhYjIgbGVnYWN5LXRydW5rCis1NDk2MCAxZjFmYjgxODg4YWUyOGU1ZGI1ZDkzN2I5NzIzZTQ2YjIzYjExOTY3IGxlZ2FjeS10cnVuaworNTQ5NjEgNzYxY2UzOTQ2Yjg2ZWI4MzYzMTE1MGVlNGMwNzU4MDI5MTA3YWQ1ZCBsZWdhY3ktdHJ1bmsKKzU0OTYyIDNmNDNlYmZhOTJkY2YyM2Q1NjRiMDdhZmFjNTJkMDRmM2VhNjZmNWQgcmVsZWFzZTI1LW1haW50Cis1NDk2OSAwZjI5YTFhMDk3MmNkZmE0M2VjZDI0NWZjZTQ5NGU3NWYwMzk0NjIyIGxlZ2FjeS10cnVuaworNTQ5NzMgZTYxNmZhMTMwYzJmY2MzZDA1M2NiZTA3ZTk0NmQxOWI5ODQ1ZmVhMyBkZWNpbWFsLWJyYW5jaAorNTQ5NzQgMDczZDY4YzI5MDQ5MzgzYjBmYzNmNTY5NjEzNGI1MjkzZjk0OWQyZiBsZWdhY3ktdHJ1bmsKKzU0OTc5IGI2ZThhZGVjMDU0YzdkN2NjZDNiZWE2ZDI5OTQ2NDcxOGQwMTc3YjkgbGVnYWN5LXRydW5rCis1NDk4MCAwMGJmMTQ3NjAxZTQ4ZDE1ZmU5NDIxMDE5MmI1Y2Y5YzI5NjFlNmQxIHAzeWsKKzU0OTgxIGY3NjYzYzY3MzRiYmU0ZTQzMmFlYmY0YmRhOGZhZWY2ZTAwNTdlZmEgcmVsZWFzZTI1LW1haW50Cis1NDk4MiBkOWE0ODdjMmZhOTYxNjAxMDZkYThjNTk0ZjQzNzMxOTUzZDczNmQxIGxlZ2FjeS10cnVuaworNTQ5ODMgNjg3N2I3OGU4MTBkMDI0NTYyOWVlZmZiZGUwOTRmNTZmZGQxOWM4YSBsZWdhY3ktdHJ1bmsKKzU0OTg0IDg5MDVkZjYxNzYxM2UxYzBlOGJmMThkZmVjZDgzZjRmMTc1NTIwYTQgbGVnYWN5LXRydW5rCis1NDk4NSA3Y2MzMTAzMmUyMDYzZmUwNjEzODRmOGVjNWFmM2Y0NzBmMGM5NGM5IGxlZ2FjeS10cnVuaworNTQ5OTUgOTM4YzVhZThkYzMxNGJlMjk4OTNkYmUwYmUzY2U0MjIzMjM4NzZlNSBsZWdhY3ktdHJ1bmsKKzU1MDAxIDEyNjQ5YTczNGJlNjI4M2UwYWJhZGYwYzdkOTdlNDRhNDQwODk5OWYgcmVsZWFzZTI1LW1haW50Cis1NTAwMiBjYzlhZmVkZWQyM2ZjYTE2NzA0MDk2MTgwODQ5YWE1YzU0NjUzOGZiIGxlZ2FjeS10cnVuaworNTUwMDQgYWRmYWJjNTczNjFkMzdjOTk5OWZjMTVlNGJjZDVmYmUzY2I1YTdjYyBwM3lrCis1NTAwNSAwNjE0NWZiYzdhYjkzMTgzNDA0ZmVkNmY4YzYzYWU0MzI1ZjM3ODI0IHAzeWsKKzU1MDA3IDI3MDA4Njk5NGY0ODRlOTYxOTUzMGNiOTk0YTg3MmIxOTZjYmI5YTggcHkzay1zdHJ1bmkKKzU1MDA4IGE2YTQzNmFhZWZkYmVlZWUyODU4ZGU1MGI3ODE0M2FkNmNmMTFlYzEgcmVsZWFzZTI1LW1haW50Cis1NTAxMSA3NmUzNzVhYjc1MjU3NDA2MjY4MTU2YmZjMDYzMGEzYTJmYmQzZjUwIHJlbGVhc2UyNS1tYWludAorNTUwMTMgMjlhZTY2N2YzMjM5NDExNjQ3ODA2YzI3NjVhMTdkMmM1YTMyODk5OCBweTNrLXN0cnVuaQorNTUwMjEgYWQxZDU2YzA3NDIzMzk2ZjFiYjZlZDgzZjQ0Mjk4OWEwYmJmNGEyNyBsZWdhY3ktdHJ1bmsKKzU1MDIyIDUyMTE2MGM5YjM2OWQwNGE5Y2Y5OTk0NTY1ODNjNjE1MDI5MTQ5OWQgcmVsZWFzZTI1LW1haW50Cis1NTAyNCA0ZjgwMWE3NTg5MzZkNDQ2NjQ0MmIxNTEyYzRmMzM1OTA0Y2M4NjQ2IGxlZ2FjeS10cnVuaworNTUwMjUgNmE1NmFlZGJlMjgwOGEzYTZiOTgxMGExNjIxOTc4NzNkNWI5ZWYyMyBsZWdhY3ktdHJ1bmsKKzU1MDI2IDg3M2RmYjUyYzMzNDYwNmEwOWJjMjdlYWVjOTU0MmYwNWQ0ODMwNmIgcmVsZWFzZTI1LW1haW50Cis1NTAyNyA4MmU3OTk4M2NiMGMyOTk4NDg5ZDM4ZTY3MDg1ZjQ0OTQwMWRiZWNkIGxlZ2FjeS10cnVuaworNTUwMzYgYjg2YmQ3N2QzZDQwNDBlM2QxNWQ0NjNkMWE3MDBmZjg0MWIxMWFlYiBsZWdhY3ktdHJ1bmsKKzU1MDM3IGJjN2EwMzc5ZDNiMThlYjNiNDE3M2M0MWM2YTQxMmJmN2ZiYzEwYjMgcmVsZWFzZTI1LW1haW50Cis1NTAzOCA4NmEyMzJlYThiYTQ1ZGNlYmY0ZTNlMWE3YjM0Y2I2NDQzNjdlMjY2IGxlZ2FjeS10cnVuaworNTUwMzkgMDBmZTRiYjAyOTM2NGQ3YTFhZTFlZWNiNjFhMWJmYjllNDk2ZjEyNCByZWxlYXNlMjUtbWFpbnQKKzU1MDQxIDJiMmQ1N2Q2Y2M3ZWI4MDVlNTg1OTdhMzZiNzRiNzIxNjE5MjMyYTYgbGVnYWN5LXRydW5rCis1NTA0MiBkM2RmMzFkNDU0NTcxYmE4NWJiOGE2ZjU4NjZiNTYxN2Y2ZjYwOGUxIGxlZ2FjeS10cnVuaworNTUwNzAgMzc2OWE1MTk2MDM1YTMwNzUwODRjMzg5Yzc3M2MxNTA1ZjA4YTY0NiBsZWdhY3ktdHJ1bmsKKzU1MDcyIGU1MGQ4MmM0MThhNzJmZTQ1MWQ3ZmU4ODIxNzMxZWFjNDQ4MjJiYTcgcmVsZWFzZTI1LW1haW50Cis1NTA3MyBhM2JmNTVhMDNmNjZmN2JiMmM0MzNlMjM4NjJhY2MyNjRjMTk2Y2M1IHJlbGVhc2UyNS1tYWludAorNTUwNzQgMzllOTUzODA1MTg0OTM3ZDRhNmZmYjk2NjAxYTg2NjNiOTg5ZTNkMiByZWxlYXNlMjUtbWFpbnQKKzU1MDc3IGVhYjI5NWQ5M2M4ZTY1MDY5MzBjMjQxNjIwMTZjZTdkOTgyYmNhNzEgcDN5aworNTUwNzkgYmVhY2Y0MGI1OTYwN2E2MmJlOWI2N2M5OGUyYmEwOTUyY2E2ODZmOCBweTNrLXN0cnVuaQorNTUwODAgOTgwZmYwYjFiOTU3ODU1NGRmYjNhNDFhNDU0ZjU0ZjZjYTQzZTcwYSBsZWdhY3ktdHJ1bmsKKzU1MDgxIDNkNzJjMTA5MWU1YTM5YmFlZWI4YTgwODgzMGZhODNlMjUwYzFhOTEgcmVsZWFzZTI1LW1haW50Cis1NTA4MyBiYzZhMGZlMzIzNTE3ZWQ0ODI1ZTdlMmUyYWRhZjlmZTVlY2QzYjAwIGxlZ2FjeS10cnVuaworNTUwODYgZDcwNTY1NDU3ZWFiYjA0ZTgyODQxYTVlMTg3MGFmMGNiNDYyMzA2YSBiY2Fubm9uLW9iamNhcAorNTUwODcgN2E0ZjE3NGRmODQ0MTA5NGQzODYyOGNiYWVmMzk1ZGE5ZTE5NzBlYyBsZWdhY3ktdHJ1bmsKKzU1MDkwIGE2ODQ2N2NjMDZkM2I0YTA1MmZkMmViZTEzZTNkODNmOThhNTlmMGUgbGVnYWN5LXRydW5rCis1NTA5MiBlOWJlZjViNDIwMDE1NTRkYTA4OTBkNzkxM2M4NWU0MjA0NDYzNjhlIGxlZ2FjeS10cnVuaworNTUwOTMgMjVjYzFjZWU1ZTY5MDQxYWQwMGEyN2MyYjlhMzUxN2YyMWQyODllNSBsZWdhY3ktdHJ1bmsKKzU1MDk0IDdiNzRhMTk3NjA5Yjg2MjE4NjA3YThmNTlkNGI1NjZjNTAwYzRlZDIgbGVnYWN5LXRydW5rCis1NTA5NSBjMWY2Zjk4NDhiMTdjYzE4ZTc4YTE2NDg0YzU2NGNlM2EzOGNhNzYyIHJlbGVhc2UyNS1tYWludAorNTUwOTcgODI1ZDk2NjMzOGVhNzAwMDYxYjNmNWY4YmQwYjZlZjQ0OTMzNzkyZCBweTNrLXN0cnVuaQorNTUwOTkgMzY4ZmVkOWFmNzYxNzk5MTE1Nzc0NGEyYzczMDhlNjNiNmE3NGVmYiBweTNrLXN0cnVuaQorNTUxMDAgMTViODEwZTIxZmU5YTkwYjQxNGFhMzc5OWE2NDBjYTVkMTEzYjI2MyBweTNrLXN0cnVuaQorNTUxMDEgOWIwMWRmZDAzYzI5NDljMGM5NjRkMzY2MzA1MTVjNWNjYWJiZDJhYyBsZWdhY3ktdHJ1bmsKKzU1MTAyIDM3ZDgyYmVlN2ExNjE1Y2M1YWZkY2IzMjU0YmRlNDFhYTNjMDQ1OWIgbGVnYWN5LXRydW5rCis1NTEwMyAxYzE3MDViZjM2Yjg4YjdkNDFiNTgzMTMxMzY4MWJjYjRhMTUwMjViIGxlZ2FjeS10cnVuaworNTUxMDQgYTg1ZDcxNTAwOWVjYzFhODBlNTNjNWVhMzVkYmVmMmRkZTQxNTIzMyBweTNrLXN0cnVuaQorNTUxMDUgMWU1YTJhMmIxOGVlZGI4OWNjYTdlODMxZWE3MjY3NmJmYWE4NjQyYiBweTNrLXN0cnVuaQorNTUxMDYgZGM1YTE1NjdhZjk4NGQ1ZTZmY2M4OWNiYWJmYmYyMGE4ZDIyNTgwOCBweTNrLXN0cnVuaQorNTUxMDcgZjZmYTQ3MDhhNGRiNDcxMWY5YzQzNmU0MjBiMDUwNDcxYjYzYzBkNyBsZWdhY3ktdHJ1bmsKKzU1MTA4IDJjNTQ3NjNjNDUwNDIxZDBiZjNjYWI4YTJlZWNmNzhkYThiZjg0NjkgcHkzay1zdHJ1bmkKKzU1MTA5IGNmYjNlMDAyMWIzYmY4ZDMyYmZhZjc2MTdjMmQ4MGJiZTBmNjFjZGUgcHkzay1zdHJ1bmkKKzU1MTEwIGNiM2M5MjA2MmVjNDA1ZTlkODE4NzBlYmFkZjlmMjc5ZGZkOTBjNjggcHkzay1zdHJ1bmkKKzU1MTExIGNhNDQ4YzYwN2IxNDAxY2U4MGI3OGRjNWJkYmZiMjY4YTZlNWNhZWQgcHkzay1zdHJ1bmkKKzU1MTEyIGExNGZmMzcwYjYzZDkzMmI2YTU4MGM4NGRlNTdmZmUxNTg4OGM4OTMgcHkzay1zdHJ1bmkKKzU1MTEzIGFjMTZiZWNlMWU1ZmI3ZjVlNGYyMTFmNzAwZGQwMGI2NzVmYjQ2ZDkgcHkzay1zdHJ1bmkKKzU1MTE0IGIzOWFiY2JiYmJiYTRiNTQyYWI1ZTUyOTI1NjFjNWVlZDRkNTg3YjUgcHkzay1zdHJ1bmkKKzU1MTE1IDFkZTU0OTQ3MTcyMWMzOGEyMjg3YWQzYTk0YWEzNzJhNzY3NTM0MzEgbGVnYWN5LXRydW5rCis1NTExNiA0OTY4NmVkNTZlYzdmZTg3MTdmYmM4ZTI0ZTNjZmMzNWExNjhmNzRmIHB5M2stc3RydW5pCis1NTExNyA1YjhlZjk0YmI4MTBmZDAyN2Q3YzUwZGUxOThmZmIyMjEzYWEwYzcwIGxlZ2FjeS10cnVuaworNTUxMTggMTE2MjUwMmEwOWRhNzZiMWVkODQ5YTFiMDBhNjM5NGY0ZmJhMTAyYSBweTNrLXN0cnVuaQorNTUxMTkgYTNlMzAwMWIzNWJmMGExNWUyZWI1MWRkYWVkNzYxNDc1MGIyZjBjNiBweTNrLXN0cnVuaQorNTUxMjAgN2YzNmY5NmI2Yzc2NTg2ZjgzODIwNDRhOWQwNWUyOGUxOWQwYTdjNyBsZWdhY3ktdHJ1bmsKKzU1MTIxIDA1MmJmMGRlZTZiODU0NzA2NDgwMTgwZjMwM2YzN2FjZDhhMGU0MjAgbGVnYWN5LXRydW5rCis1NTEyMiA5MmVhZDg3YmY5ODQzYzQxZTcxYzc3NjkzYzllMjZiMDMyODEwZTNhIHB5M2stc3RydW5pCis1NTEyMyBlNzhlMWI2MTZjNzJmYzgyY2VmZjYxOTUyZTk3ZjhkYmY0OWVlMjA0IHB5M2stc3RydW5pCis1NTEyNCBhNzMyM2M3MmI1YzcxZjkwM2FjZDJlODk0OTRhMzU1MTc4Mjc1MTIyIGRlY2ltYWwtYnJhbmNoCis1NTEyNSBiZTkwMzliNTc0ZDk3Y2VjOWVmZjMyNmJhZTk4OTVkNDhkYTM4ZTk5IGRlY2ltYWwtYnJhbmNoCis1NTEyNyBjNDhmZTRkYzM0YTkxNDIzMDZmYTg1NjFkMGJhM2UxOGY3NDlhYzlmIHB5M2stc3RydW5pCis1NTEyOSAyMTMxZTAzNzIxZWZkYzlhNzcwOGIzZjMyNGVjYmM3YmRlMmJlOWRjIGxlZ2FjeS10cnVuaworNTUxMzAgNTJiOTlhOTE1ZmFhNWU3OTdkODI4ODMyYWY5MWQ2YzU1MjEzZDMzOCBweTNrLXN0cnVuaQorNTUxMzEgOGI3NDNmNTU1OTYxMDhkYzU3OTE2YWM4OGQ4YTU4ODk3MzQyNDdmNiBsZWdhY3ktdHJ1bmsKKzU1MTMzIDA3OGI0ZjJmZGZjOTQ3NmE3OWEzOTU2OGEzOTY4NTYxOTEzZDVhNDkgZGVjaW1hbC1icmFuY2gKKzU1MTM0IDNiNTdmMGI3ZWRkZmY5MTVlYzg0ZjlhMDUyYmYwNDhmMGM0ZDdmNTQgcHkzay1zdHJ1bmkKKzU1MTM1IDllMWRmYzg1NTg5MDViZGI4NzgwYmVjMTkyYjEyNzZkYTg5NjFjZjQgZGVjaW1hbC1icmFuY2gKKzU1MTM2IGUyYjFkMDIyMmFmZWNmMjUxZDkxZTIzOWQ0ZDExMzU5MDRiY2U3NzUgZGVjaW1hbC1icmFuY2gKKzU1MTM4IGRmNDYwMTFjNTkzNjI1NmZjNDAzNTIwNmY3ODdhYzJiOTczNzg2Y2MgZGVjaW1hbC1icmFuY2gKKzU1MTM5IDg2ODA5NzJlZDhmMDM2ZWJmMjdiMmVlYzlmOGEzZWY2YmM2NjM1MTIgcmVsZWFzZTI1LW1haW50Cis1NTE0MCA2MTU3OTVkNTJiOWZkOThhNGZhMjFjNjQ3ZmFiNDQ3MjZiZDg5NGQ2IGxlZ2FjeS10cnVuaworNTUxNDIgYmU3ZWIzZmQzNzc2NjEzMDcxYjZkM2NhYzM4MDlmYWZmNzRjYTM1ZiBwM3lrCis1NTE0MyAyNjZlMTIzOTRiOTdkMmZiMzM0ZDFlZTdmNTBjM2RlYzBkYzhjOWQyIHAzeWsKKzU1MTQ0IDk0NmZkNTRiNDU3ZjVlNDI2YWQwZTc2MDExY2JkMTkzYzBmOWUwMDcgcmVsZWFzZTI1LW1haW50Cis1NTE0NiA2MWFjZmI4MzE2MzNjOGU3MmQzMzQzOGE5M2IxMTcyZjEzMDA0YTFkIHB5M2stc3RydW5pCis1NTE0NyA2YjdkMTc4MmE1NzQ5OTcwYWJmMDdlODJiMDI3ZjQ1MmQzNGVmZjdlIHB5M2stc3RydW5pCis1NTE0OCA4MzhjYWIzNzkzNzZlN2JmYTAxZmE2YjRiOTEwYzM0ZDMwNTM5NjM5IHB5M2stc3RydW5pCis1NTE0OSAxMDdhYWNiOWM1OTU4ODMxY2IyMDdkMWQ3M2ViNGEwZTk0Y2VlMTQwIHB5M2stc3RydW5pCis1NTE1MCA2YmMxNTZkM2MwMGVjMjUzY2IxYzM4MTJhNTVlMTRmYmU5MzYwNGFhIHB5M2stc3RydW5pCis1NTE1MSBlMjVkY2Q4NzRiODI3OTljZWMzYzc0YmU5NWI1MjgxYjAyY2NiZDhlIHB5M2stc3RydW5pCis1NTE1MiA0NmIwMGM3M2UzMmZmYjUyZmZiMWQzZDZkNTQxYzI1MTM2Y2YzZTdhIHB5M2stc3RydW5pCis1NTE1MyAxNDQwYmJiNjcxNTBhNzAxZmNhMjZhMjhkYzA5YmE5NWUwODQ0YTliIHB5M2stc3RydW5pCis1NTE1NCBlYTVjY2VlNmIyODU0YmUyYTU4YzgzNDE2NjkyYmI4MDI5ZTU4YmI3IGxlZ2FjeS10cnVuaworNTUxNTUgMmQzNzc0MDhhOTg3YmNjN2VkMzhkNjRlZDU1ODZmMjZhYTViNzU3NCByZWxlYXNlMjUtbWFpbnQKKzU1MTU2IDU1NGZmMjcxNDVlMTRhZmVjNjY1MWQzNGFjYzFhNTI0Yjc1ZTk1ZWQgcHkzay1zdHJ1bmkKKzU1MTU4IGYzMjAyZmU3ODU5ODE5YTRhZTZiMjM2Njc2YmI0NGY1NmQyZTcwM2IgbGVnYWN5LXRydW5rCis1NTE2MiA4NzI4Y2QwMTJiZDg3ZTc2NDJiZjYxY2FiNzFkMjliZDM4NDQzMjkyIHAzeWsKKzU1MTYzIGM3OTFhNWUyZTA5ZThmZTFkN2U5ODQwMzQxNGNmZjAyMDZiNDRlNmUgcHkzay1zdHJ1bmkKKzU1MTY0IDJkY2MwNWE4MDkwNWZlZTQ2YWU1NmE5OWNkZjhlMmNlOWEzMGNjMTMgcDN5aworNTUxNjUgMGMzYTMxNDgyMDhlMGI5NjRmNTY1NjI0YjkzOWQ5ZDU5YzA5ZmI3MSBsZWdhY3ktdHJ1bmsKKzU1MTY2IGQ0YmE2NjMyNzdmOGZiYzI3MzQ3ZWRkZDgyZjJmMjM3YTgwMjJiM2MgcDN5aworNTUxNjcgYzEwNzVmMDY2NTBhNzYxZWI1MjlmMGM4ODNjMjAyMzI5NzZhMzg1NCBwM3lrCis1NTE2OCA1ZDA5NjkxNjdmNmRiNzZkNzFmMDMxZGI3YjkwMWI2MzgzZGFkNTNiIHJlbGVhc2UyNS1tYWludAorNTUxNjkgNTQxNzk1MzhhMzg3NzI1NWRjNjVhOGFmNWFmOGFiNjVlMmU5NTRlZiBsZWdhY3ktdHJ1bmsKKzU1MTcwIDQ0MzEwMmJmNTg5NTA1NDdhYjg3YmFiZGVhNzU1ZTA5YzhjODZiOWMgcHkzay1zdHJ1bmkKKzU1MTcxIDQxMTAyNzNhMjYxMTA5ZjI0NjY3MDk4YzA3Nzg0YTM5YzUzMjU4MzAgcDN5aworNTUxNzMgYmUxZTcwOGQ1ZDNkZjE1YjhmM2JmZjAxOTgxY2ZjNWY0OGUxMTBlNSByZWxlYXNlMjUtbWFpbnQKKzU1MTc0IGE1MjM0ZjNjNzU1MTFlZDJiYzBkZTQyZThjZmVjMmIzNjM5ZWFhNGIgcmVsZWFzZTI1LW1haW50Cis1NTE3NSA4NDNkMGNjYjAwOTRkZjc4Y2U3MjQzYjE5MzdhNjY4ZWFhMzQ2ZjM4IHJlbGVhc2UyNS1tYWludAorNTUxNzcgZmRmZGVlMTkxYTYxMmI5NGIzMzEyNGE2NDE5ZWMzMTMwNzQ2NDYzZiByZWxlYXNlMjUtbWFpbnQKKzU1MTc4IDIwNTg3MWM5NzE1ZGI2M2MxMTdlYmNkMGNkOTRhZmQ4ZGQzNDlhYzYgcmVsZWFzZTI1LW1haW50Cis1NTE3OSBhMTUzZjIxNGZhMWI4NDA4ZDU0NTM2OWVlNTQwZjVkZWQ5NzFjNjg3IHB5M2stc3RydW5pCis1NTE4MCBhNmViNmFjZmUwNGFjMmJmMzA0NDI4NWFlZjU1MmMwYjdkZmU0YmVhIHB5M2stc3RydW5pCis1NTE4MSBjNjU2ODU1MGIxYzYxMGRjNGI1Zjg3N2U1N2Q0OGEyYmViMDZiMGMxIHB5M2stc3RydW5pCis1NTE4MiA4ZTdjNjBiMTM1NmI3MzgzZmIzY2M5ODQ5ODQzMDFhZDQzNmM0ZTg5IHAzeWsKKzU1MTg0IDljYzRjM2YwYjU4MDc1YTQzODNlMjA0MmVjM2Y4MDZiYmVlYjdkZTUgcHkzay1zdHJ1bmkKKzU1MTg1IDcwNDcyYzE1N2JiOWMwMDUzODRlNzhkYjk1ZGI2NmI1YjJjZTdjMjIgcHkzay1zdHJ1bmkKKzU1MTg2IDhmNzdmOTYwNzExMzg4MDVjMmZjY2QwZmIzMWY2MjA5YjVmYTQ5NTQgcDN5aworNTUxODcgNmEwMTZmM2UwMDUxNjY3YzNlMzI0NWYxZWY3ODFkOWZhOGFjNTc4NSBweTNrLXN0cnVuaQorNTUxODggYzg0MDAwOTZkMmQ3MWM4ZjUzN2JkMWM4ZmRkMGVmZjg1YzdmZjc5OCBweTNrLXN0cnVuaQorNTUxODkgYmM2YWQ2M2NkNWYxZjZlMDg3OWIzZDJlODBlZTdhMGNkNDM4NzRhYSBweTNrLXN0cnVuaQorNTUxOTEgMmQ5ZTU4YzVhZDM0M2Q0NDE0NDhiNDcxMzkwNDFkNGU2NmM0ZjBiZiBweTNrLXN0cnVuaQorNTUxOTMgMjNhOGIzZGZiZTk1MzcxMGZkY2M2N2YwN2UwOGQxMWQ3NTlhMWZlYyBweTNrLXN0cnVuaQorNTUxOTQgNDRlYmFlNGY2MWM0YTJiMDAwZWM1M2U5MjQ5ODU3M2Y0ODNhZGZhYSBweTNrLXN0cnVuaQorNTUxOTUgMDUwYzk4Y2Q0MWM0Zjc0YWNkMmNlOTNjMWIzYTA3OGMzZjhlOWQ2YSBweTNrLXN0cnVuaQorNTUxOTYgNTI1MzMzNzBmMWFkNDAzYzIzMzY2MWYyZmFiMDA1MjM2NDU5YTNjMSBweTNrLXN0cnVuaQorNTUxOTcgMzcwYjkxNTMzYzUzZDhjMDA4NTk0NThlMzg1OWU5Y2Y0ZDk2ZWQ5NSBsZWdhY3ktdHJ1bmsKKzU1MTk4IGYwZGExYjdiOGU1YTJhZTQ5ZGRiMzI5YWVjN2I4MWVhZjY5ZjAzZDggbGVnYWN5LXRydW5rCis1NTE5OSA3NmU2M2UwMzMzNTYwNWRjNjNhZDkyNGI4ZTU5ZWNlNjk1MTZmYWMyIHJlbGVhc2UyNS1tYWludAorNTUyMDAgNWM3Mjg1MzQ5NzBjMWUyNjJhNzhkYzBlYzQ4MDQ4NDA5YzU0YmI3MCByZWxlYXNlMjUtbWFpbnQKKzU1MjAxIDdmZTZhZmNiZDNmMmE2YTY3NmQ5MDIyODg2NmNjY2IxOGYzODMxODAgcHkzay1zdHJ1bmkKKzU1MjAyIDY1MGZmOGQ3Y2MzODBhYTE0NWVkZjY4ZmFkZmZlMTZlYmU2MWQ2NWYgcHkzay1zdHJ1bmkKKzU1MjAzIDNhNGYwNmJjMjU0YmI1ZWRkYjM4ODZiZTZkZDE1MTVhZDM5N2Q2MzQgcHkzay1zdHJ1bmkKKzU1MjA0IDAyZTY5ODk4ODUyMWE5OTU3ODU3YWUzOTJmMTJkNThiYTg2Nzc1OGYgcDN5aworNTUyMDUgOWIxNGMxZTU4OTM2MWJjYTNmN2MyY2U3OTQ2OWE5NGFlMWUyMGRlYyBsZWdhY3ktdHJ1bmsKKzU1MjA2IGRkMmQ0MDdkY2ZkMGM0N2QxZTFhMDIyMGFlNTllODVjNDMxOGZhNGIgcmVsZWFzZTI1LW1haW50Cis1NTIwNyA0NzVjN2M1NDM3ZmM2MmI4M2QwZDcwZTk4MzY4NTBiZjVmNjgxYjNhIHB5M2stc3RydW5pCis1NTIwOCBhMzYzY2VhMzJiOWJhYWEwMmIwZmMzOGIxNDNhMjU1M2Y5MjVhY2FjIHB5M2stc3RydW5pCis1NTIwOSBhMzI0OGZlZmMwZGM4YjZhZWUwNTZjODU1MjQ2MjM0ZTA5MzRkNTc4IHB5M2stc3RydW5pCis1NTIxMCA4NWQ1MWNiOGFlNWVkODUyN2Q2MzU4NmUxNzk4Mzk0MzAyOWFmMTgwIHB5M2stc3RydW5pCis1NTIxMSA0YTk1MzNlOTM2NWUwZDk3ODE2NzQxMjkxODM1MGNlNzc0MDQ4Y2RiIHB5M2stc3RydW5pCis1NTIxMiBiMWJiZTgwMTExNTI4OTNjY2M1MThkNjc2ODQ0ZWRjMjUxMTViYjZlIHB5M2stc3RydW5pCis1NTIxMyBkMTI4MTFkZWNmOTRkMzdkOTlkZWRlZTYyMTg0OTA2YTc3OTM1MTQ2IHB5M2stc3RydW5pCis1NTIxNCA2ODhlMmJjMjA4MDI2MzhhZWQ1ODgzNWViZWNiODE3YTE0OTAxNjhkIHB5M2stc3RydW5pCis1NTIxNSA3YTk2Yzg2NDA1NzUxYmQ5ZWM5OThkN2VmZWYwMmNjYjVkN2UwYzk0IHB5M2stc3RydW5pCis1NTIxNiBkZDNhYzFjZDFjOTE5NmYzMmQxMjZhYjAzMzhlYTJjMWFhMTBlMWI1IHB5M2stc3RydW5pCis1NTIxNyA1ZjIwMjg2YjBkYTk5MzYyOThiMTYxNmI4ZWQ0YjU1NDkzMWMyOTAzIHB5M2stc3RydW5pCis1NTIxOCAyNDhkZmMxYmQ0NGMwMjViYWM5MDJiZmQ3M2UxMGUxMjk5MjUxOGU1IHB5M2stc3RydW5pCis1NTIxOSAyOTc3MzRmOGE2MjdhY2RmNmViYWQ4NTZmMGI1NWEzZGQyNGVjYWNkIHB5M2stc3RydW5pCis1NTIyMCA5MTVkNTI0NTVmZmM0YmZlZmMyMmI2ZDMxZTdlOTM2MDQ0OTg3OTExIHB5M2stc3RydW5pCis1NTIyMSBjNGE5OTkzZjJjZTZjZWFhMjA5N2YyODY1ZGFhN2Q1YjkyMWI2MDQ0IHAzeWsKKzU1MjIyIDk5MTQ0NmZmNmIxNWMwOGIwZGYyZmNjYzRmNGEyNGQ3M2ExZWU3NjIgcmVsZWFzZTI1LW1haW50Cis1NTIyMyA3NzVkNDRhNTQzOTk1NTBiZDU5MWU2YTExYzJhNTQxMzUxM2MxMjA1IHJlbGVhc2UyNS1tYWludAorNTUyMjQgOTg3MDkxODlkOWUxYzAwYWM5NGU2MTlhZTBiZjk4ZjU5NTFjMDZlNiBweTNrLXN0cnVuaQorNTUyMjUgMTA0MDU2OGY5MDJjYTJiMWI4NWFhYTM2ZGVmZDc5ODU5N2E1MWY0ZiBweTNrLXN0cnVuaQorNTUyMjYgMWQzMzQ5MTJhMTA0MGQ5ZmU4NTRmZTQ4MTA4YzA1NWVlMTQzNjkwMSBweTNrLXN0cnVuaQorNTUyMjcgNzU5NDcwOWU2MzFiMzMzN2VlNGJjNmZlZmY2NDc3ZTI0ODUzYWM3YiBsZWdhY3ktdHJ1bmsKKzU1MjI4IDhhOGJmMmMwNzRlMDRmMGJiMzI0NDRlZTQ4OGJiMjUwYjM1ZTg1NWMgcDN5aworNTUyMjkgYzVlYmY5YzIxOWJlNDY1MjA2MGM0ZmExMTAyNjJmN2I3YmIwMmExYSBweTNrLXN0cnVuaQorNTUyMzAgZmI3MDVmMThiZjNkNzY2NWY2NjhjNjBiM2I4NjdmNWU4MTA3MzVlYiBweTNrLXN0cnVuaQorNTUyMzEgYmFiOGE5YzdmNDllYjYyMDE3MmZiY2U0Mjc1OGMyNzg1ZjcyMDYzYSBweTNrLXN0cnVuaQorNTUyMzggYTZlNGYyY2JlZmE5YmQwYjM1MWFlZjRjNjMzOWIxM2U1ODMyN2MwYyBwM3lrCis1NTI0MSA0MzY3YjdhZjc1MzE5YmQ2NWY3ZTc4MWI5ZTk5ZmViNDA3MGUyNjdiIGxlZ2FjeS10cnVuaworNTUyNDIgOGVkZDc0NjI5MWZlZmRlZTZmZGVjMmQ4Mjc3NTZmZTBkMTNkYTRiOSBsZWdhY3ktdHJ1bmsKKzU1MjQzIDAyZDI0ODhmZWM2MGNhMTVjYjlhNjViZjJjNDVlN2M2NzZlNTI0ODAgcmVsZWFzZTI1LW1haW50Cis1NTI0NCBjZjlkZDdmMGY0YTIwZjAyNmEyOTQ3ZTBiZDI1Mzk0MDc4ZWRjMTFjIGxlZ2FjeS10cnVuaworNTUyNDUgNmM0YWE0NjExYzg4MWRjNjJjZTVhOWM0ZDY3OGU1ODIxMTAxNTAxMSBsZWdhY3ktdHJ1bmsKKzU1MjQ2IGNiYThjNmE1ZWNmMDI2MTY3NDY5N2M3ZjVkZjVlNDRmMzE4MDAwMzYgcDN5aworNTUyNDcgY2Y3OWZlZThiNzFhMTBhOGQ2OTlhNWUzMjMwNzJkNjVkYzg1MmQ5YiBsZWdhY3ktdHJ1bmsKKzU1MjQ4IDAxMTI3ODIxYWY3NTYxNGVhNTczYTc3OWZmMDYwZmU3MWI3NTVkMzggcDN5aworNTUyNDkgZDIzMTY4NWU5ZWE3ZDU0YTJkYzRmOGJmZDZjM2Y4NGI4NGU3YTkzMiBwM3lrCis1NTI1MCBmMjIzYTQ0ZGIxM2E2ODgzN2ZlOGZmMGUxMGEwZDUwYjc2NmU4NDYwIHAzeWsKKzU1MjUxIDliOWM1M2MxYWE1YzA5NWYwOWZiOWJiYTM4NmQ1YTE1ZTUzYjMxOGQgcDN5aworNTUyNTIgZGMzOWJmYzVjNzRlNjIyYmM1NDhiMmJkNWVmNDQ1ZTFiZjg1MDFjMCBwM3lrCis1NTI1MyA4MWQ5ZjUyNzBlODc1MmQ0N2MxZGFlMDNjNDU2NTA0MjYyNmYxNzYwIGxlZ2FjeS10cnVuaworNTUyNTQgM2VlZTA2Y2IxNWEzZWUxYmVlMzQ0MzFmMTlhMDQ1ZmI0OTcyMmMyMSBwM3lrCis1NTI1NSA3ZDk4YzEyYTM0NGRiYjAzMGM0ODE0OTY3MjZjODU3YThmYjAyYzhmIHAzeWsKKzU1MjU2IGQ5MWNjOGQ0OTI5NGU4YWY0MmUxMzQ4YmMxYmUwZTNhYjFmMTM3NjYgcHkzay1zdHJ1bmkKKzU1MjU3IDQ1NDhjZWIzMWM5NDkzOTkxNWVmN2NiNGYxNGRjY2IwN2VhMDhlM2IgcmVsZWFzZTI1LW1haW50Cis1NTI1OCBjZDI0MDNkMzcwZTBmNjdjNDFiNjlmZTI3YTAxZjM3OTUzYmI4OTZjIGxlZ2FjeS10cnVuaworNTUyNTkgYjhmYTRhYzZjNWYwN2M2MDlkZWY3M2Y2Yzg0YjNmNDg0N2QyNzY1NSBsZWdhY3ktdHJ1bmsKKzU1MjYwIDNmYTQwYjU5YjliNjhlMmZlYmJkMDViZTQ3MmYyYTQ0N2RjZTE4ZmQgcmVsZWFzZTI1LW1haW50Cis1NTI2MSA1MWM3NDEyMjg5NTgzZmZlYTE0NTExYTMyOWE2MTljNDM5ODVlNTU3IHAzeWsKKzU1MjYyIGJjZjU3YTE1M2IxMWE1NzBmZTBlNTQ1NTNkYmUyMDcyYmExNmE4MDIgcDN5aworNTUyNjQgZDdjN2ZlOWI2ZTk3MmU5MjU4NjYyYTNkZDY0MmQ3ZGFjZDJkYmY2ZCBwM3lrCis1NTI2NSA5MTUzOTJkNWYwYjg2NDZiMTZkNTE0NGJiOWRlN2QzNzZlOThjZDUzIHAzeWsKKzU1MjY2IDMyNjczYjg4OGMyNDRjZTE4Y2NmNDFlY2UwYTU5ODAxMTU5ZDE3ODYgcDN5aworNTUyNjcgNWEyZjU5MjBjZjc1MGZjZDU4Y2RkYmYyNTk0OGU4MDI1OWEzMjkzNiBwM3lrCis1NTI2OCA3ZDQ5MDM4ZTk5Yzk5MTQ4MTJkOWNlNDQ1NjhlZmJmMmI2MDM5YWI5IHB5M2stc3RydW5pCis1NTI2OSBlZTQ3ZmQ1YzBlNWQ3NDY3ZmViMjhlZWQxNjEwZjgyNTAwZWMyM2NjIHAzeWsKKzU1MjcwIGUxNmM4ZTVjNWNhNGMxMTFiNjVmOTFhZTlhMzg0YTlkOTc3ZjBjMmMgcHkzay1zdHJ1bmkKKzU1MjcxIDI3MTllMTdjOTI4ZDM2NjgwOGI5NDRiMGNjY2RlOWQxZTIzMDllZjAgcDN5aworNTUyNzIgZGRjNGJlMjc4NmZkMjU4MzVkZjhlNjZlMzI0MjNiYTgzOGJkOTBiYiBweTNrLXN0cnVuaQorNTUyNzMgMjBiOGIyOTU5M2MwZDk4ZDRjODE5ZmY0ZDhmZDJjMWZkNTBlYjFkMSBsZWdhY3ktdHJ1bmsKKzU1Mjc1IGUwNmUxOTZhMDVjZmYzODFiYzQ2ZWMzNjYwNTI4NzQyYjdiNGRlNzcgcHkzay1zdHJ1bmkKKzU1MjgwIDk3MDZmM2I0OTA2NzBmMzE4OTcwYzc2YWUxNTFkNWE4N2Q3NTFjMWYgcDN5aworNTUyODIgNzk5M2YyM2FkNDZjYTU0ZjEwZmI5YWM1OTUwMWMzY2RkNzY1ODA4ZSBweTNrLXN0cnVuaQorNTUyODMgZDIzN2Y0N2YyOTNmMjliOWFhNjA1MGZiMTgwYTYxYTI3NmRmNmJjNSBweTNrLXN0cnVuaQorNTUyODQgOTE3MDQwZGZlYzU4MzhjN2ZkMTEzZTcxZDExYzlmMWI2ZDgwNmJlNyBweTNrLXN0cnVuaQorNTUyODUgMjYxNzEzM2M3YWZhMjczODM0ODgyNjdlMThmZjMxNzIyMDE0NzY0NCBweTNrLXN0cnVuaQorNTUyODYgNjAyNmI4YTI2YzA1ZmY0ZDQ4NmM0ZTIzMjVlODUxODA4ZWEwZmNhYiBweTNrLXN0cnVuaQorNTUyODcgNDgyYjU5OTBkMmZiM2RmNjg2NzQ1NDNiZGZmZmE1YjBiMjExNWZhMyBsZWdhY3ktdHJ1bmsKKzU1Mjg4IGMxN2Q3NjBjYjZkMDZmMDk2MGMxM2JkZGZhMGJmOGJhYTJjOGYyYWYgcmVsZWFzZTI1LW1haW50Cis1NTI5MCA3YmJiOTdlMTRhZDZlZDEyZTdmMWM0ZmI2NjMwMTAyMTc4NjhlNzg4IGxlZ2FjeS10cnVuaworNTUyOTcgYTQ4OTNjNDgwMjY0OGI3N2FjMjY5ZTU1Y2YwM2M1YTcxMmI5M2M0MyBsZWdhY3ktdHJ1bmsKKzU1Mjk4IDkyZWI1YWU0YzE4ZjE1MWE1ODk1NmFlY2UyNzNkZTRkYTgwMDNlZWUgbGVnYWN5LXRydW5rCis1NTI5OSBhMTYwYjQzN2ZmMzVmZTE2ODI0ZmFiYmI2N2UyZmNkNGY1NTc2NjJlIGxlZ2FjeS10cnVuaworNTUzMDEgYjQ2MDA4NDQ3OTkzMzM5MWY4MTk4NDU5ZmFkM2ZlMzRiMGRhMTU2MSBwM3lrCis1NTMwMyBiN2U5MTM2ZDRjODM4ZjhlY2ZiYTdhZWI0NjMyZWQ5NzhmMzkwZWM4IHAzeWsKKzU1MzA1IDdkMjRhNjhkMGExYzYxNjM2MjJjZjQ3NDYwZjA0NDYxN2I4NDM3NWQgcDN5aworNTUzMDYgNjU2NjZlYzgzYzJjMDBjNzEzYjIwOTEyN2VlZThjZGQ4YmQ5NTEyZiBwM3lrCis1NTMwNyBhYWU1NDllYmE3MDc1ZjU0NmU3YzhlMjExZTc2ZGZjMGZhNjIzM2M4IHAzeWsKKzU1MzIwIGM0ZDU3ZGM2MGIwMTliNWUzZThmYjIzNWMzMTY1Y2EzY2ZlNzY2Y2IgbGVnYWN5LXRydW5rCis1NTMyMiAxNTIzYWE4MjcxNDY1ZTlmMjY1OWNlYjVkNmE4Yzk2ZDY2NTAwNDI0IHAzeWsKKzU1MzI1IGY2MGM4NzdkNTJjOGEwOTdhNWQ4MTEzZjlkYjNjZmVhM2UyY2I0NjQgcHkzay1zdHJ1bmkKKzU1MzI2IGM3ZjU0NjYwZWExN2VmYWZmYmNkY2MwOTI0MGZmYTZkNmM4NzUwMWIgcDN5aworNTUzMjcgZDZlNmY5ODJjNjM3YjY5ODA3ZDM4NzQ0MWVlNTYxNzM5OWZjODY3NyBwM3lrCis1NTMyOCAwMGMwMmM0NDg4Y2VmOTExZTBlMjEzNDA1YjhiYWU5NGU3NDYzZmJhIHB5M2stc3RydW5pCis1NTMyOSBmMzI1NmM4YzcyY2E4MTMwZGUzMWE2Yzg5N2NmNTI1NDQwZmNkZWUzIHAzeWsKKzU1MzMxIGJjNDNjYjIzMTY0MDQwODkyMzJhY2Q2ZGIwYmFlNjMyMDFiMjg1MTkgcDN5aworNTUzMzIgNTU4NTE4ZmY5ZDkxYWI2MjQyNmQwY2U3NjRhYmQyZTJjNDcyNmRiNyBwM3lrCis1NTMzMyA2ZGViNGJiMTAwNTlmOTFjY2NiOGJlZjFjNTI2ZjJhMDFjNjZjMjVkIHAzeWsKKzU1MzM0IDFkYjMxOTQxZTAxMzkxZTc5NmQ4NzIzOGVkYmY3NzE0ZmRiOGQxNzYgcDN5aworNTUzMzUgYjljNzI0ZGQ3MmM4MThmMWExZDM3MmNlNWY5MDRhMDFmMzVjYTRiYSBwM3lrCis1NTMzNiBkODEzZmMzNmI5NzAxZjUyNGI0ZTdiZWUwMjRhNzNiMTIzZTFlMmJiIHAzeWsKKzU1MzM3IDFjOWEyOTk2NTZiZTM3MWExYTI5N2NmNWViMDYxZDhlN2FlZTcxNjUgcDN5aworNTUzNDMgOWFkODQwNzBiMjJkODRmMTc1YTNiODkwMzY3Y2Y5MDY5MmI2NDE4YyBweTNrLXN0cnVuaQorNTUzNDcgNmNhM2Q1ZjNkMWJlMTMxZmY2Njk3YTc5ZGYwZTg0YmNhNmM0OTNhZSBweTNrLXN0cnVuaQorNTUzNDggM2UxZWI3YWY0ZWEwZDIxZTdmMWU5MzA1ZGYxNzUwZjE3N2Q5NTZjZiBsZWdhY3ktdHJ1bmsKKzU1MzQ5IDJiNzExMmE2MzU3MWIyZWUwYzQ5NDc4NDEyYTNiODg4ODdmYzMxOGUgcmVsZWFzZTI1LW1haW50Cis1NTM1MCAyNjM0OWE2NGVmNzAxNWJjMjBiOTkzMjI5ZjM1MGM0ZmJlMWY3ZDgwIHJlbGVhc2UyNC1tYWludAorNTUzNTEgZDNjZDI5MjBiZWI2ODdiZjIxNzFlZjc5NjEzODBkMzE2YmNkMjBkOCBweTNrLXN0cnVuaQorNTUzNTIgYzljNTJiODdjMzBiNWZiMzNhYzNhZjk0OWZjMDNkOTY4NDExZDAwNyBweTNrLXN0cnVuaQorNTUzNTMgYThiN2E4MTU5OWQwNDhhYWExNDI0ZDY1NDUxNGIzYzJlMDAzNDMxOCBweTNrLXN0cnVuaQorNTUzNTQgZDExNDZkNGRiNTQ5NDY4NDRmNDk5OGFmOGEwODkyYjk2NjZiODg1MCBweTNrLXN0cnVuaQorNTUzNTUgMjAyODZlY2E0NzQzMTVhOTYzYjFmNjEyMjQxOTQ1NjM3YWU1NTUxZCBweTNrLXN0cnVuaQorNTUzNTYgNDMwYjZlZDgwMTQ4ZTliMDA5M2U5ZDBjYzk3YmI5MjMxOWY5MmJlOCBweTNrLXN0cnVuaQorNTUzNTcgNmVhOTM3MDBkNzc5MjA3MDZmY2E1NGYwYjJkNzNlYzYwOWMxZjZiMyBweTNrLXN0cnVuaQorNTUzNTggMjk2ODU5NzExOGMxMzljOGJiN2IzN2VkNzNiMDNlMjNjODg0ZDMyYSBweTNrLXN0cnVuaQorNTUzNTkgMjkzN2Y1MzcxMzJlYTNmZmU0MzVmZTk1MzRkNjYwM2Q4MDRmY2QzZSBweTNrLXN0cnVuaQorNTUzNjAgYzdiMTU1YWQzNzkxMTkwNGU1MWM4NWZlZjRjODJhMTA2NzgxY2JkMCBwM3lrCis1NTM2MSAzNzg3YTNmYmM0NThkOGRiYjljOTdhY2IyYmYyNzlmYTkxZDdkNTlhIHAzeWsKKzU1MzYzIDc4ZDc2NDM1ZGE5YWM5Y2UzZjJhMDBlYzVlZTc5NDg5YTY0NjZiYzggcHkzay1zdHJ1bmkKKzU1MzY0IGJiYjA5OWQ0ZWM4MDI0YmY4MDBlMDJjMDYzNWYyOGM3OWQxN2IxODUgcHkzay1zdHJ1bmkKKzU1MzY3IDA1MmQ1NWU4YWY3NzMwYTc0ZjI1MDgyYTcxNDNkMTc0Mzg2MjI4ZmEgcDN5aworNTUzNjkgOTJmNzE5ZmE5YjE2ZTkwY2FiYjk1NWE0MGMxNTY1ZDQ0MmE2NzA1OSBwM3lrCis1NTM3MCA0ZTQxYjcyZGEwZmM2NjM3MjQxZjdjM2VhMzQ0YjdkMTFmMzBjYmYwIHAzeWsKKzU1MzcyIDBhZDY5NTFjMThmN2M1NzgyYmNjNjI3ZGU0YjY0ZjljNjk3ZjhlMzMgbGVnYWN5LXRydW5rCis1NTM3MyA2OWUxZjdlYzBjZTkxNmYxZjZlMjUxMzk0YzZiNjFmNWJjMWZmMTlkIHJlbGVhc2UyNS1tYWludAorNTUzNzQgZDBjMDc2NjY5NzMyZmQyZjg0ZjBhYzgzODMxM2QwMjcyODViN2M0MiBwM3lrCis1NTM3NyAwNDI0YTlmYTRiMGI0ZDRjZmMzNjhlOGIwNjcyN2ZlMWQxMWViZGYzIGxlZ2FjeS10cnVuaworNTUzNzkgYjAxNTQ2ZjM2YTIyNjMwNGM5MTk1ODNmM2NiNzc3YzI2ZjhiZjEzYyBwM3lrCis1NTM4MCAwN2YwODMyMjk3YjFlNzJlNWZmZTZhZTY0Njk4NGVmOTRlMTkxMTljIGxlZ2FjeS10cnVuaworNTUzODEgY2NhOWUzMmVlNTUwMWJkOGY4ZGQzZGMxYWMzNTZmNmFmMDIxZjA2MCBweTNrLXN0cnVuaQorNTUzODIgZGM2YjVmMzU1ZDVhOGNiYjE1ZjVjMjNiN2E1NDBmYTIwYTY4YjJhMCBweTNrLXN0cnVuaQorNTUzODMgOWI4MjkzYmY4ZmVjOGJmZjlkMzk4OTY4MzE3NzI3YmRkNjM3M2JjNiBsZWdhY3ktdHJ1bmsKKzU1Mzg0IDc1ODFlYzE2MjMwZWYxODMxODNhZWJhYWVjM2RhNjZhNzc5MmY5ODYgcmVsZWFzZTI1LW1haW50Cis1NTM4NSA2MWM0YzIyMmEzMjcwZDgzMTI1ZGNhMjU5NDUwMDZlYjMzZGI3YmE4IGJjYW5ub24tb2JqY2FwCis1NTM4NiA2ZjEyOTNhYjNhYzQ4ZTgzNjZlYTRmZWYyMDQ1ZGFmMWU2MzU0YWFkIGxlZ2FjeS10cnVuaworNTUzODcgNjkzYjhkOTE0NzcxNzA4MDlhZTkyYjM1NGQ4Y2Y0NTlhNDA0ZjhkMSByZWxlYXNlMjUtbWFpbnQKKzU1Mzg4IDM4OGU0ZjIxZTc0OWUyN2RjMDNmOGEwNDQ3NWVjZTY0MmY4ODc5NzQgcDN5aworNTUzODkgMmVjYzI5NjQ0M2MzMmMzYzExMmYzNmM3MTEyMGEwNDRjMmEyNmI3NiBsZWdhY3ktdHJ1bmsKKzU1Mzk0IDc1NmUxZDQwNGNiODYxYjllMWRhYTBmNDMwMGQyNjg5NGQyOGZjYWUgbGVnYWN5LXRydW5rCis1NTM5NSBlM2VhODgxYjE0ZmVkMmI1M2I2ODQwOWE0NjIzMGNkZGVhYzk3YmJlIGxlZ2FjeS10cnVuaworNTUzOTYgNzlkZDkwNzg3MDkxZGZlM2QxZTBjNjQ2NTM3MWFkZDgzMmJkZmUwNCBsZWdhY3ktdHJ1bmsKKzU1Mzk3IGNjNmY0N2YxZTEzYTQ0NmRkNTMyNzI4Zjc2NTEyMWIzZWJiOTkyMWMgbGVnYWN5LXRydW5rCis1NTM5OCA2ZjBkYmE4MDc3MzRhZmM2YWY5MGY0NzIzYTFlMDAwNGY4ZTg4N2RhIGxlZ2FjeS10cnVuaworNTU0MDYgYzEyYTMwOTc4N2QzY2M4ZjM5NDMwNWIyYmQ1Y2Y1ZTNkNmNmNmIyMyBwM3lrCis1NTQwNyBiMDg1ZWI2NmI3ZjZkYTZlMjQzNzIzYWJkMTFiYWEzMTkyMDM2YzYwIHB5M2stc3RydW5pCis1NTQwOSA0MWExODMwZWVlMTY1MThkYzMyNjYzOTgwMmNmNTcxZjY5ZjcxMjFkIHB5M2stc3RydW5pCis1NTQxMCBlZGE5ZTYwYzk3NDU0NzhiYzY5ZjE1Y2QxODVhZmM2NGJlNDVlMjMxIHB5M2stc3RydW5pCis1NTQxMSA0ZDE1YWQ0MTY1MWU0YzBmNjhlY2VkM2ZkYzU4ZWY5YTEzNDYyYjc2IHJlbGVhc2UyNS1tYWludAorNTU0MTIgMTUxMTg5YzcyYTM3MmI5YTIzNDhmYTg3ZWQ0ZjNiZTlhMGNhZTIxMiBsZWdhY3ktdHJ1bmsKKzU1NDEzIGE2Nzk2YTI0NDgxY2U1MDEzM2I3YTMwZGI0N2U5NzQzOTJlMTA4YWQgcDN5aworNTU0MTQgNjg5YmFlMDc2N2UyMGMxZWRiZjZiZjdmNTA2YjI4ZjY4NjMxM2JhYyBkZWNpbWFsLWJyYW5jaAorNTU0MTUgYzI0MTFiZGI2Mjg2Y2ZlMTYzNjEwMGMxMWIwN2Q4MTc5YjUyMjhhMSBweTNrLXN0cnVuaQorNTU0MTYgNjA5NDViZGIxYjc1NDg1NmExOTQ3M2MxMjQ0ZjljZGI5ZTE3YjJhZiBweTNrLXN0cnVuaQorNTU0MTcgYjBiNTE0YmFkZjBiMGJhOWZjOWVjYTVjYTc2ZDdjMWVlNTc2MTQyYSBweTNrLXN0cnVuaQorNTU0MjAgMTNhNmM2YmVmNjA5NzAxYTc3NWIyYTY2MzU2NjNlNTkxN2ZmZWRiZSBweTNrLXN0cnVuaQorNTU0MjEgMGVhZDEwNjRlYWQwMDJkN2ZkZWY5OGFiYzQzMzg2MWI0ZGM0OGIzMiBweTNrLXN0cnVuaQorNTU0MjIgZWRiNGM5MDI4YmUwMDJhM2VhZTA0NDQ1YWQwMjIzNWY5N2NlYTA1YSBweTNrLXN0cnVuaQorNTU0MjMgMWE5Y2Q3NjM2NGUzZDZhMjNjZGZmMjI2OWFmM2E1NGYzNzMwZTcyZCBweTNrLXN0cnVuaQorNTU0MjUgNWQ5ZGQxYjhkOTA4Yjc4Y2M5YmI0MjA4NzIyOThmNWQzY2RjZjExNCByZWxlYXNlMjUtbWFpbnQKKzU1NDI2IDQ3YjE1OWQ2NDBhNDU0ZGVjZjZhM2I2NDNjZmRjZmNjNjM5YWJkMjAgcmVsZWFzZTI1LW1haW50Cis1NTQyNyBmNDNlOWQxZmFiYWE4YjZmYmU0MDY1NjYyNTU4MDZjNzM3ODAwNDdmIGxlZ2FjeS10cnVuaworNTU0MjggOGZlOThmNjBlYjZlMzc5N2MzNTRjNGI5Y2VkNzMzZGMwYjYwNDcwMiBweTNrLXN0cnVuaQorNTU0MjkgMTQxZTJhZWZmYmFhNDNlYjM4YWIxNzBkYmUzOGRlOGQ0ZmQwOTViOSBweTNrLXN0cnVuaQorNTU0MzAgY2U2MGY0N2IxN2EyNTQxYzliNGJkODJjODAwOWE2ZDJhYmI2Y2FlYiBwM3lrCis1NTQzMiA2NWMzYjQzMmY1MDFiN2ZmM2RlNjkxM2Y0MjM0ZDFlOTQ4MjIzNTdjIHAzeWsKKzU1NDMzIGQ2YWE3ZWRmMjE3YTY1MjBlNjI3MTgwODE2N2M4MDg2NmVhZWVmYTAgcHkzay1zdHJ1bmkKKzU1NDM0IDQ3ZGM3MTYwNTM0MWQzYTk3ZGRkZDE2NmY5MzZiOWViODI0ZTdiYWEgcDN5aworNTU0MzUgOGFkMWM4OGNlMWFjNjc4NGQ3NDdhZGI4ZmMxYjY5MjFkMjkzMjBjMyBweTNrLXN0cnVuaQorNTU0MzYgYjU5Mjk4NWE5NTNmZjkwZGQ3N2YyNzk5YzEyMWQ1NDliZGQ2OTljMyBweTNrLXN0cnVuaQorNTU0MzggYjI5ZDcxZDQzYzgwOTFmMzI1MzAxZjQxZWUzOWYyOGU5YTA5MGEyMSBweTNrLXN0cnVuaQorNTU0NDEgNjUxZmEyYzljMmFiZTVmMzQzYzFhYmY3ZGFiZWZlZDRkNmFhOTRmOCBweTNrLXN0cnVuaQorNTU0NDMgNmQ4ZDY2MDUwMDAzZjFmODgzZWVkOWMwNjJjMzdmNjA2MWIwYjc5NyBweTNrLXN0cnVuaQorNTU0NDUgMTM2NDFhZGJhNmVjYzYwNGRmODA3ZmExOGQ0ZjU5YTFlYzJmYzdkMSBweTNrLXN0cnVuaQorNTU0NDYgZjE5ZTYzMWJlMTAxYjdhZjgyMjhlNDcyYmUzYTg4ZmQ4NDQyNmZkYSBsZWdhY3ktdHJ1bmsKKzU1NDQ4IDRhM2E2Mzc2OWQzNGE5MzQwZGRiOTUwNzQzODg3YWYxNWY5MDNlODggbGVnYWN5LXRydW5rCis1NTQ0OSBkNGRiNjI2YzIyOTA3NjZiODg2MmJkNTBiZDFiNjk1N2VhN2QwNmVlIGxlZ2FjeS10cnVuaworNTU0NTAgMzEyYzExMTlkYzE0NmE3YTNiNjFhZmZjYjdkZWQ3ZDU1MTZkOWQ3ZiBsZWdhY3ktdHJ1bmsKKzU1NDUxIDI5OTg3OGQ2MmUyZjc5ZTYxODRmZGE4NDdlNTVlYTdlZWM1NjdlYjAgcmVsZWFzZTI1LW1haW50Cis1NTQ1MiAwZjkzYjcwMGM0YzlmMDFmMTA1ZWU1Mzk3MGIyYjY4YzBjNjY3MWIyIGxlZ2FjeS10cnVuaworNTU0NTMgNTE1ZTI1NjRlY2E3ZmE4MWE5ZjdkZjNhZDQ3YjZlY2MxMmMwMjU1ZCBsZWdhY3ktdHJ1bmsKKzU1NDU0IDRhNjdmMTAzODMzZWI4YzUyZmY1ZDYyMjI5OWQ3NWM1ZGE4YzYxZWIgcmVsZWFzZTI1LW1haW50Cis1NTQ1NSBmMTRhNWIwMDVhMWUyYzRlMzhjZDVmNjUzYmRlYzliMmNiM2E1YzRmIGxlZ2FjeS10cnVuaworNTU0NTYgYmVlOGQwMWVmNDJjN2IxMmFmYTk1OTg2MjgyNzY1MGNjN2RiOGE1OSBweTNrLXN0cnVuaQorNTU0NTcgMTMyNmIwYjJhZmEwOTE1M2NiYzg5ZWYxYmU2NGE4ODAwODYzNDM5ZCByZWxlYXNlMjUtbWFpbnQKKzU1NDU4IGI3ZmI5NDJiNDAzZTllOTFiMmFkYjU2YWJlODkwZjk0YzUyMmIwMzkgbGVnYWN5LXRydW5rCis1NTQ2MCBjMmQzMmI1YWU5MGIzYTMxM2ZkOGVjNzY3MzhlZGFmNmMwNDcyODk4IHAzeWsKKzU1NDYzIGQxYzM4YWYwNjViZjM5YzE5NDg0ODA3NDRlYzQzMTEwODUxZjU2ZDIgcHkzay1zdHJ1bmkKKzU1NDY0IGVjYzY4NTkyNWI1MmQzYzA0MzU5OTZmYWFhYWRiMDJkZjUyM2YyN2EgcHkzay1zdHJ1bmkKKzU1NDY1IDZkMjQ2YWM2MzE5ODJkYTU5YWMyZjM1MjQ4ZmM5ZWViN2ExNzI3YmIgbGVnYWN5LXRydW5rCis1NTQ2NiAwMDQxM2Y3MGNlNWMzZWJjNjk2MjQ0NDY2MzkzNmEwNGUyNzkyZDI2IHB5M2stc3RydW5pCis1NTQ2NyA3NzlhMjEwNTM3Nzc4ZDU0ZDA3MjAyNTFlNTc2NDJlZTQ1NTZmN2QwIHJlbGVhc2UyNS1tYWludAorNTU0NjggYzAyOGIyNzc1YTlhNGVmZmE1ZGEwNjYzZjkyYzAyYmZhZWU5YjhiNyBsZWdhY3ktdHJ1bmsKKzU1NDY5IDViZWYyYzIyYmY4NTcwNmUyYjRhYjRjMjA4MTBjZDUyYWY0Mzk0OGQgcDN5aworNTU0NzAgMzEwMjlmNmViY2EyYTg3ZWUzMmVjNzc4YWQ4YzM5MjI0OTVhNjVjMCBsZWdhY3ktdHJ1bmsKKzU1NDcxIDY3Y2I4MTgzNjBmMGRjNDcwYjQ0MzFhNGNhOTcyNjkxZDkxNmEzYWEgbGVnYWN5LXRydW5rCis1NTQ3MiA2MmNmMmNiNzRlMzUxYTZjMTdmYWYxYzdmOTEzZWVlZTIzZjU3M2Q3IHAzeWsKKzU1NDc0IGMwZTg5ZDBlZTBlNWJhODJiYmU5ODY3NDQ4ZWJmYjhiYjRiMGM4MmUgbGVnYWN5LXRydW5rCis1NTQ3NiAyYzAwYTE5MTAyNzFjYjU3ZDQyZTFlNWM3ZDc3ZTA0ZDFkN2ViZTYzIGxlZ2FjeS10cnVuaworNTU0NzcgYTU4YmE2N2ZhZjFhYmYzODk0YWEzNTYzMzYyNTk2OWUzODNlNjUzMSBsZWdhY3ktdHJ1bmsKKzU1NDc5IGUzNWYxZWUyMmFiODg5MzE4YzA3MjhjNzRkNTI4YTZiZmU1YThlYWEgbGVnYWN5LXRydW5rCis1NTQ4MSBhYzhhNmRlZWY5NzQwZDhkNTJlNDI2M2EwNmZmZmFiNzI2YWRlNmU1IGxlZ2FjeS10cnVuaworNTU0ODIgMzVlMThhMGQxMGYyNmJjZjQwMzQ4MDEzM2FmOGVhZTA3Y2FkYjY3MiBsZWdhY3ktdHJ1bmsKKzU1NDg2IGQyNGM5ZTQzMmQ1MjRmYjAyYzkxYWM4ZWY4NDQ1YzNiZjU0NjJmN2EgcDN5aworNTU0ODcgMjY3MWUwNmJhYTRjMDdiMzE1OTkwNGQ1YzRmYTNlN2JlOTU2YTc0MSBsZWdhY3ktdHJ1bmsKKzU1NDg4IDk5M2Y4YTliOGFiMzk5NzQxODVmMzVmMjMxMDU3MTdkNTIyMzEzZWUgcHkzay1zdHJ1bmkKKzU1NDg5IDk0NTdiOWY1YmRkMTA5MzJmYjJjMTJiYzI4NjhiNmFkNjM3ZjNlZmIgbGVnYWN5LXRydW5rCis1NTQ5MCA4MWIxNzhmMGIxZWYzNzc4ZWRiNWE1ZWZjMWI3YjYzNTczY2Q5ZTYyIGxlZ2FjeS10cnVuaworNTU0OTEgM2QzYmYyNzQwOWU2MjAyYmY4YjQ3NWEwMGFhZmJlMjFkOTQ5ZDJmOCBweTNrLXN0cnVuaQorNTU0OTIgMTQ0NmI5ZmNhMDFkYmQzNjRlYjlmYzA4M2YyMGNjNWI0ZTlmZjdkNiBweTNrLXN0cnVuaQorNTU0OTMgZWJiMGI2ZDZkYWRhMjgwMjFiOGFhZWRiZjdiOTUxODYyNWRiNjFiMiBweTNrLXN0cnVuaQorNTU0OTQgZWUyOTUxNDQ0YTg5NjQ2NDE2ZmMwMzA4Y2U0YzNlOTA2ODJlOGY2MyBweTNrLXN0cnVuaQorNTU0OTUgYTQwNTczMmEyNjJkYzc0ZjJmYjUwZjZkN2MzMTU1NWM2YzE2NWY4YSBsZWdhY3ktdHJ1bmsKKzU1NDk2IGQ3ZjZkNmY0NTYyZWU2MWUxNmYwN2RiNmNmNWMxNTRhZGEzNzNkZTYgcHkzay1zdHJ1bmkKKzU1NDk3IDhlMDYyZTU3MmVhNGQ2YWU2MTU3NzlmY2NjZjIyOWU4NjA5ZTc2ODIgcHkzay1zdHJ1bmkKKzU1NDk4IGY5OTQ5YjYzZWFiM2ExMjYyMTk4ZmE3NTU3ZDgyYmJjM2E0NjQxNGMgcHkzay1zdHJ1bmkKKzU1NDk5IGQwN2QzNGI1M2RiNTgwOGM0ODQ4OTg2MTEyYzhmMzBhM2MwNTBjYWEgcHkzay1zdHJ1bmkKKzU1NTAwIDUwZGFmYTIyYjhhNGU3YjZiNDAyYThmMzc3NGJjMmI1ZWVjZGU1OGMgcHkzay1zdHJ1bmkKKzU1NTAyIDdjOWRkZDRhMDgxNDZmNmRjM2M1Y2M3ZDAzNzU3Yzg1NzI4ZDQ3YTEgbGVnYWN5LXRydW5rCis1NTUwMyAzZDA1ODU4NzY5MWRkNDliOGFiODU0ZThiOTUyMDgzOWFjN2EzODUzIHJlbGVhc2UyNS1tYWludAorNTU1MDQgYTkyMjdkN2EzNGZhOGU3MTQwNzZhN2I3MmFmMWE5ZDdmYzAzNjFmYiBsZWdhY3ktdHJ1bmsKKzU1NTA1IGVjODNkMjEwNjVhYTM2ZmIxZWJiNDEzZGU5YTU3ZjA2OGRjMGRlMTUgbGVnYWN5LXRydW5rCis1NTUwNiBlYTdhZTg5MWY5Mzg5NGNhZTBlM2JlMTFkZjg2ODMzMWUwYWJjZGY0IHAzeWsKKzU1NTA3IGM4OTc1NTlhODlmYzk0NjVkNDI5OGUyMTI5YzJhYzk5ZjMxNzczMGQgbGVnYWN5LXRydW5rCis1NTUwOCBiZmM3M2Q4NDllMjhhOWRlYjIwMDZlNWU3OGViNDY4MjFhNDliODcwIHB5M2stc3RydW5pCis1NTUwOSBkYjQ5YTEyNDczOWRlZmU2MzM0YTQyN2U2YjQxODlmZjE5MzFlYmRhIHB5M2stc3RydW5pCis1NTUxMCBiNWFjYTAyOTViNzkyZmFhNzkwOTYzMGZjOTQzNzhjMTdjZWQ5YmY0IHB5M2stc3RydW5pCis1NTUxMSBhZTY5MTIyN2ZkMzQzN2Y5ZTdiNDUzOGZiYmY3ODllZjAwYmZlYjRlIHB5M2stc3RydW5pCis1NTUxMiA5OGVmNWZmY2ZmMjg0M2I0NWE1ODQ4MzY5NDc3ZGFmMzNlZmQ5OWRjIHB5M2stc3RydW5pCis1NTUxMyBkZDgwYTRjNWY0N2QwNGQwNWE2MjQ0NzM0NjQwN2I4YTVjNzY2YzMzIHB5M2stc3RydW5pCis1NTUxNCAyNGI2MDYyMmI5NDRkMDRkZmUxMmZjNjgyOTE3Y2JlN2I5MDY5ZTM3IHB5M2stc3RydW5pCis1NTUxNSA4NDNmN2VmYzA1OGYyM2M5ZmYxMjFjM2ZjM2Y5ZGQ4N2QxNGZhN2IxIHB5M2stc3RydW5pCis1NTUxNiA4YzNlNDBiMTc5YmY0MTRmYWIwYjdiZGEyOGY3OTJhNWIzMWI2MGY3IHB5M2stc3RydW5pCis1NTUxNyBlYjQ1Zjg1YzRjNzkyNjNiZTRhNjI5NTUxZWI4N2Y0NzY5YjAwNjNlIHB5M2stc3RydW5pCis1NTUxOCBhN2JlMTQ4ZjdjNTYwODA2NDA5MWVhMTJiNmM4MjgyZmRhMWUyNjc4IHB5M2stc3RydW5pCis1NTUxOSBmN2YyYTQ5YzFmMmU1NGUzYzU4ODRkNDE1N2E1N2Q2MjFkMmFhYmRkIHB5M2stc3RydW5pCis1NTUyMCA3MmQ3YzBmM2JmZmVlOGYwN2Y0MjljZjM2MjQ1ZWQyN2E1NTllMGU5IHB5M2stc3RydW5pCis1NTUyMiBmZjdiZWZlOTE5YjViMTY2YjgwNzk4N2VjNDc1YmZiYThkZjM3MTU2IGxlZ2FjeS10cnVuaworNTU1MjUgYTBlZTNiMmJhMzYxYzNlZTMzOTQ4MTQ4NTcyNzk2OGEzNGZiZWExMCBsZWdhY3ktdHJ1bmsKKzU1NTI2IDRjYmY5NDk0MzZlYjU3YWQ2ZWZhZGY4MWJmOTRlYWEwMjkyNmIzNjIgcDN5aworNTU1MjcgOGMzNTc4OTM0ZGY2ZGE4N2MyNjE2ZDEwM2FmZDZkNmE5MTRmZDQ0MiBsZWdhY3ktdHJ1bmsKKzU1NTI4IDlhNDQ3NTE0ODU1ZjExNzFmNDYxYTk0M2E4ZTlhNTg5Mzk2NmZiZDUgbGVnYWN5LXRydW5rCis1NTUyOSBhNmM5MmRlZWFlMjdmMmZmZmVhMDAzZTE1NjcwMmFiY2M2ZWRkNWE1IGNweV9tZXJnZQorNTU1MzEgODE0MDc3ZTdhZGVlM2FjZjcyMDE4MmYyOWU4NmNiNzA5Mzg2YzZiNCBweTNrLXN0cnVuaQorNTU1MzIgNzA5ZjgyZTJhNTVjYjQ1NGMyZDZkYjU1YTIzOTRhNDRhYjYxZjJlYiBweTNrLXN0cnVuaQorNTU1MzMgYWIzOTY2MmU0NTRiY2U0YjBlNDkwYjA0YTY1Y2E5ZjUzYzZlOGQ3OSBjcHlfbWVyZ2UKKzU1NTM0IGUyNDBkMjBkYTNlYzhmZWE4NTUzOTQwN2MzMTYwYjNlMjQ4M2NmOWMgY3B5X21lcmdlCis1NTUzNSBlOGY2MjRkNDhkYTJkZGYxZTg0ZTRlYjJmZmU4MTVmMDYxMjk3NTYzIHB5M2stc3RydW5pCis1NTUzNiA1NmU5MDA3Mjg5Mjk1MzA0NjFjYjE1N2I3Y2FhOTcwY2M4MTRhYTgwIHB5M2stc3RydW5pCis1NTUzNyAyMzMyMzc3MDdlYmM5OTc5Y2EwOTBkNDI1MDM3Y2RiNjgxZjYzYWUwIHB5M2stc3RydW5pCis1NTUzOCBiZmU5NTMwNDZkMDViMjI2ZmQ4OTZjOTA3MDA3YmEzOWFkYTQ0YmFjIHB5M2stc3RydW5pCis1NTUzOSA1MjNkZjFkZTBhNWMyYjhlYzIwNjYwMDkzYjdmNDhmMzdjMzA5YjJlIHB5M2stc3RydW5pCis1NTU0MCBlYjE4OGQ3ZmVhNWQ5OGU0NjY3MmJlYzNiMjEzM2ZjZTU1YzM0NDc1IHB5M2stc3RydW5pCis1NTU0MSAyMTFkYzlkNjM2NzNiNWRjN2Y4ZmM0ZmNiZTQ2ZTVjMjk1MDM4Y2MyIGNweV9tZXJnZQorNTU1NDIgMTI5Zjk2NTNiMGEyMzlmMmQ3ZjYyMWEzOTkyNGI3MTkyNTNiN2I2MCBjcHlfbWVyZ2UKKzU1NTQzIDFmNzg5MWQ4NGQ5M2ZlMzY0YmE4YjIyMmYxZTQzYjgzMmM2N2U1N2QgcHkzay1zdHJ1bmkKKzU1NTQ0IDQ3NzRhOTRkMmU2ZDY2NWU5NDlmNDZmOGM1MGNjZWNjZDA2ODE3Y2IgcDN5aworNTU1NDUgODJlNWRiNDk2MGVkZmIzNGIxMDkxOTVkMzNhNDI5ODIzOWE0YTdhNiBweTNrLXN0cnVuaQorNTU1NDYgOWNlOGZhMGEwODk5NzI3YmEwM2EzNzMwYmFkMjM0MWU2MjRhYjA2NiBweTNrLXN0cnVuaQorNTU1NDcgMzA4ZTYzMjcwMmJmYTRhZThkNWM2ZGE0NThhZTk3YmRmNTFlNjAxZSBweTNrLXN0cnVuaQorNTU1NDggMjFkYzQ2MjliNzEyMTQ1ODI4MWFkOGEwNzUwMzM3OTQyN2ZlZjRlZCBweTNrLXN0cnVuaQorNTU1NDkgY2YxNTE5NjdlZWEzY2YwMTU0MGQwZDQzNmE5YjQzZDkwYTNkYzMyMyBsZWdhY3ktdHJ1bmsKKzU1NTUwIDZmOGY4MjI4MDU0NWRkOTNkMDYxMjE2MWJkMzRkYzE2NTRlNjYxY2MgbGVnYWN5LXRydW5rCis1NTU1MSAzOTc5ZjllMmQwMjYyODdmNzkwMTBjZGNhOThmZjUxOTI3ZDNhY2I3IHB5M2stc3RydW5pCis1NTU1MiBjZjA4OTFmMWQ2MGFhOWRiMDU1OGNlMzVjN2U3MTk1OGRlOWQzODU4IHB5M2stc3RydW5pCis1NTU1MyBlNjMxMDFmYWFkYTY4YzIxZWM3ODkwZDcyYTM0NjY1ODNjMTJjY2EyIHB5M2stc3RydW5pCis1NTU1NCA4NmE5ZDVmNDMzMDc3NDQyMzU4ODc0NGYzZjRjMmI4ZGIwYmEyY2NjIHB5M2stc3RydW5pCis1NTU1NSAxMDQyNmFkNWE2ZTBiMTM3ZTUxNjBhNjFlOTU3MzZiNzE5NGY3ZTMyIGxlZ2FjeS10cnVuaworNTU1NTYgMDU3YTljM2QwNjdkMTEzNDZjN2RmNDE1ODhiY2ViMWRjMTcwMDBiYiBweTNrLXN0cnVuaQorNTU1NTcgNDFjZmNmZGUwOGE5OWE3NDVmN2FiM2VhZmJmNDNjNTAxODZlY2YzMSBweTNrLXN0cnVuaQorNTU1NTggMmY0OGM1NmM1ZTgxNjkxNTJkNThiYmU1NDBhODU3M2NkYzk4MGU2NCBweTNrLXN0cnVuaQorNTU1NTkgOThjNjZlZmM5NTUzMzNhNWIzMjE4MGU0YTk0OWI5ZTQ2NzBkNzdkYSBweTNrLXN0cnVuaQorNTU1NjAgZTRlOGIxMjc3MGU0MDZiYjNlMWE4ZGU4MGRjNTljNGNhYTE1NDk2YSBweTNrLXN0cnVuaQorNTU1NjEgZTZmYzY3YWQ5YzU0YmMxZGRkYjIxYTZjM2IyNWMzYWIyNGQzOTRiZCBweTNrLXN0cnVuaQorNTU1NjIgOTY5ODY4ZGYxOTM4YmM0ODJmY2M5OGVmNGI2NzRmN2FiNmJmODE3YSBweTNrLXN0cnVuaQorNTU1NjMgNDZhOTRlYWQzZDY4ZGUzYjMxY2Q3YTNmNjA1Mzg1NTExYTUwYjk5NyBsZWdhY3ktdHJ1bmsKKzU1NTY0IDI0OTAwNzY3OTUyNDRkMDUyZGMxZWY4YzA0NjllMmI3YWZkNjY5YmUgbGVnYWN5LXRydW5rCis1NTU2NSA5OWUzMzA2OGMzMzQ3ZGMyOWVlYTI4ODhlOGZkNzcxMjhiMWUwNzc5IHB5M2stc3RydW5pCis1NTU2NyBjZWMyYTljMjAwYmEyY2EyY2I2YWU1ODdhMjUxOTJkMDEzMTc3NjI2IGxlZ2FjeS10cnVuaworNTU1NjggNTIyYzQ5MzhiZGY2ODE4ZTk4ZmI1MGY5ZjNkOTY4YzhhY2YwOGQ0ZCBsZWdhY3ktdHJ1bmsKKzU1NTY5IDJjOGJhM2ZhYWY0MGMwNTk1MjkzNjhkMTE0OTU2MzkyZjVhZTVkN2EgbGVnYWN5LXRydW5rCis1NTU3MCA2MzE5MjcxYzIzMjYxN2Q4YWViZDU1OTdiNzA3NmNiYmQ2M2QwYTg3IGxlZ2FjeS10cnVuaworNTU1NzUgZjU3Nzc1YzVkMGI0MjM2NjI4YzI5MDAxMWVjYTQ2OTY3NWQxNTM4NiBsZWdhY3ktdHJ1bmsKKzU1NTc2IDFhMzg1ZDBhZTgyYmEwZWE1MGI3NDAyYmU3N2M1MDQwMjkxN2RmMTEgbGVnYWN5LXRydW5rCis1NTU3OCAwZTgwZmJkNzMwMDVjNmVjZjZhOTE0ZTVmMDE0OWI2NzMyZmJlNGZhIHJlbGVhc2UyNC1tYWludAorNTU1NzkgY2MwYWVlZTU4YTRkODcyOWRhYTMwY2E5MmI5OTM3NDllYzcyYzlhNSByZWxlYXNlMjUtbWFpbnQKKzU1NTgwIGNlYzZkOTZjMDg0YTE2OTZkZjA4NTBhODU3OWQyZDNjM2RjYzFmNmIgcmVsZWFzZTI0LW1haW50Cis1NTU4MSAzNGU4ZTAzZTkyMWY3ZTQ3N2FmNmEwYzUwZGEwNmMzODAxMGQxNDVhIHJlbGVhc2UyNC1tYWludAorNTU1ODIgMmY0ZDkyMGE1NmZjMGY0MWUyMGNkYjU0ZWYzM2FmOTZlMzE3NDNlMiByZWxlYXNlMjUtbWFpbnQKKzU1NTgzIGRjYjQzZjQwMzkwYmE3OTJkNmU2OWI2NjZkNjE2ODNkN2JmYjcwOGYgcHkzay1zdHJ1bmkKKzU1NTg0IDFlYzFhZmEyYmRiNThjMzhjNDA5NDYwZGY1NTBiODA5NjdhOThiMTcgcHkzay1zdHJ1bmkKKzU1NTg1IDA4OWY0NDlhMjBjZGEwMTkzNGZkM2U3MjBmOTliZDg3ZjU2NmEzNzEgcHkzay1zdHJ1bmkKKzU1NTg3IDg1YzkzNWRiYmVmMjZiZjQwNDc4MTcyYTU1MWRiMmNlMThmZmI0YTUgcDN5aworNTU1ODggMDQ3ODZhZTUyZGFkNDIxMjdkNWIwZDcyNWU3MWI3MzM0NzQyZDk2ZCBweTNrLXN0cnVuaQorNTU1OTAgYmVkZmJkY2FmMzU1N2NkMDBmYTQxODU1OTZkNGI1OWM4ZDNkNWViYiBweTNrLXN0cnVuaQorNTU1OTEgOTY1N2MzMzNjNGVhOGZjMGQ3NmM4YWRmYTFhZDExZTU1NTU4MDU0MiBiY2Fubm9uLW9iamNhcAorNTU1OTIgMzg3N2YzN2M5ODYxMGJjYzZlNjdjMzI0ZDQ4ODM1ZmRiYWJmYmExNCBsZWdhY3ktdHJ1bmsKKzU1NTkzIGU3NDZhMDZiM2VhZmU5YmEwOTE5YzAwY2E1ZDdmNmYzNTYzZDhiOGEgYmNhbm5vbi1vYmpjYXAKKzU1NTk2IDAwZjk0ZDM1YzYxY2U3ZWJiMWQzMTcxMTVlOTY0MWY5YjIyYzUyNTYgYmNhbm5vbi1vYmpjYXAKKzU1NTk3IDFlYTRiM2NmOWQ5ODE0ZTc1NDlmMTllNWFmNmI4OGRmN2RmNDRiZGIgYmNhbm5vbi1vYmpjYXAKKzU1NTk4IDViYzdmNTZmNWMzM2RlZjg4YWY3ZWE1ZDcwMjIzMTNkOTA0NzhiNTggcDN5aworNTU1OTkgYWRiZjY4MWYxYmIyZWI3NTE2ODkwNTIzNTY3MTAxNDM0MGM1ZDc1OSBwM3lrCis1NTYwMCAxMDU2NTMwNjE2YWMzYjJkODMzZmExMzQ4MWUwODk5NmIxZjgyODIzIHB5M2stc3RydW5pCis1NTYwMSBlNzE2MmI2Y2E3YTA0MGQ4YWNhZjhlNDdlODRlNTQwZDc4Zjc3ZGQ0IGxlZ2FjeS10cnVuaworNTU2MDIgMzg5MDc3YTU0ZmNlM2VjODllN2U3ZmE2NDc4MWYxYzQ2ZjRkZDI2ZiBsZWdhY3ktdHJ1bmsKKzU1NjAzIGZiZjM0MmJjYjc4NDY1MjUxYWU5MTNiYWQ2ZmY5MzVmMjgyZmMzMjIgbGVnYWN5LXRydW5rCis1NTYwNCBlYzNiOGU5NGEzNTU3MWU1OTU1YjU3OWZhMWYxMjMyYjMwNjU5YTY2IGxlZ2FjeS10cnVuaworNTU2MDUgZjI4YmVkMjY0YjAyY2IzMjAyYWEyMDdkNzRjYjVlMDBlZWUwNWM4MiBiY2Fubm9uLW9iamNhcAorNTU2MDYgNWU0M2M3MzY3ZDU0NWE4NmIyNjAzYjZlYmFjZGUwYmRmNmU0YjQ0NiBsZWdhY3ktdHJ1bmsKKzU1NjA3IGMzNmM4ODc5YThkYWQ5ODQ1NzE5ZWFkYjZlZjY4MDRlNjUxNjYyMGEgYmNhbm5vbi1vYmpjYXAKKzU1NjA4IGFhNzMyMDZjOWNlNjc1NmViYjYzNDdhMjU1OTZkOTgyOWNhZGY1YWEgcHkzay1zdHJ1bmkKKzU1NjA5IGY2YTllMDM0Y2M2MjgyNDI2M2VkYTQ3ODc1OGQ4NjBlYmMyODNmYjUgcHkzay1zdHJ1bmkKKzU1NjEwIDI0OWI1MjVlMWFjMGU5ODBiNDJhOThjZmM2YWI0YTk3YjBjYWUwY2IgcHkzay1zdHJ1bmkKKzU1NjExIGI3Y2ZiM2ZkOGRiMDU5OTRkZjNhM2Q4NDc5NThlOTQyNzg5YjAyNmYgcHkzay1zdHJ1bmkKKzU1NjEyIGMzMjg3ZTE5NWExZDU4M2VjYTJlZmYzNzA4NTkzM2FmMjQ0M2RhNzQgcHkzay1zdHJ1bmkKKzU1NjEzIDliYWVjMmY1NDUwOWY2ODM1NGRkYjlhMDJlNTc3Y2U1ZjE5YmI0OWQgcHkzay1zdHJ1bmkKKzU1NjE0IDRjYWVlYjQxMzE4NjJmZWExYzlhZTdlNjNhYTZlZmNjY2U2Yjc4NjMgcHkzay1zdHJ1bmkKKzU1NjE1IDNmZGE5ZTZhMGI2ZDFlZDNiNzk4OWNlZjdlNTdiZTUxNDI0ZDA5YzEgcHkzay1zdHJ1bmkKKzU1NjE2IDgxZDViMDA3MTE2OWFjM2IxNDMxODRjNThiNzI0MDg5YjBiYjEyNzEgcHkzay1zdHJ1bmkKKzU1NjE3IDlkZTg3NTY5MTgxY2I4ZjMxZmQxZmEwNzRmOTBjYjgwZDIwOTU2YTIgbGVnYWN5LXRydW5rCis1NTYxOCBhZGU3YjA2OTNlMDc2YzIxMzkzZDEyY2I0NjY1ZTliZjg5NzA2NGYwIGxlZ2FjeS10cnVuaworNTU2MTkgYTllYmM1MDRmNjlkOGNjYjkyOGIyMmEzYTc2MjhiMDE1NDYwOWYyYiBjcHlfbWVyZ2UKKzU1NjIwIDc1ODY2NmUyN2ZiZWZiNDE2NDU4MTNjZjVhMDdmOGQ5NDM0MTZhNTkgY3B5X21lcmdlCis1NTYyMSA4YjRmYjcxZmZmMWQzNjYzNzE2MzMwMDhhMTgwYzlkMjc1NGQ0MWRmIGNweV9tZXJnZQorNTU2MjIgYWVjZDc4YWZhNWEyNmU5NDM4N2I3MDRhNGQyOTA2OTk3Yzk4ZmE1OSBjcHlfbWVyZ2UKKzU1NjIzIDBlN2M3MGQ0MWExOWIwNmU5M2QzN2RhNmMxYzQwNDFiZWEwNDNkYzEgY3B5X21lcmdlCis1NTYyNCA0ODkwNjBlOTdkMTdmYTg3NGNlOGE3MWI4OGNiODc4NTQxMDg0M2ViIGNweV9tZXJnZQorNTU2MjUgOGQ2MzdkODE2Zjc1NDE3YjA5OTFkN2MyYTc4NzBmYmMzOWJmZjViOCBjcHlfbWVyZ2UKKzU1NjI2IDM3MDA1MmRjODk5MmYzNDUxNTQyNmNhYmYzMjk4NWM4MjZkOWMzODEgY3B5X21lcmdlCis1NTYyNyA2ZGQ5NzY3NjM3YmI0M2Q3ZmIwNzllYWRlNzg2ZmU4NTEwYzQyMTdkIGJjYW5ub24tb2JqY2FwCis1NTYyOCBkNWFkOTE0OTM2MGJiOTRkNjE5NjFlYjkyNWU5ZjkyOWE4ZTEwZTQ1IGJjYW5ub24tb2JqY2FwCis1NTYyOSAzN2NhNGRkOGFiZWY0NjkzZGMyZTZmNDI4NmZhMmVkMmUzNTczZmI2IHAzeWsKKzU1NjMwIGRlNTFhYWM0NmIxYmM4OTQ1M2U4NjRhMGM3OTZjNGQ2MjE3NTFmNDkgY3B5X21lcmdlCis1NTYzMSBiYTdlYWVlMzM4MjI3OTE4YjYwNWEyYzVhMDI0NjIwYmRmNmE1MWZhIHB5M2stc3RydW5pCis1NTYzMiA1YWQyZDc3MDBkM2M1MDUwNTkzYTVkZmI5MjFjNTgxZDY3N2VmNzJlIGJjYW5ub24tb2JqY2FwCis1NTYzMyA1MzgxYjRlNzFhMDQwNmM5MjI0OTRmN2QyOTRiMDg3N2VhZjRmYTk4IGJjYW5ub24tb2JqY2FwCis1NTYzNCA1MDNmNWE1NjQ2ZDE3YTA5OTI4YjM1YTEyZWQxNzRmMmY4MTA1YzQ0IGxlZ2FjeS10cnVuaworNTU2MzUgZTE0ZWNlNzc3YjhiNDViOGY5OTJlZjcyNzMwMWU3M2EyYjZiMjNiZSBsZWdhY3ktdHJ1bmsKKzU1NjM2IGM3ODM0OTcxMzE3Y2Q0OWJhMmI2NTJlODEzM2U4MTI5ZDgxYWY2MTggcDN5aworNTU2MzcgODg1ZDBlZjkwZTBmNDQxY2U1N2IyYTFmYmIyYjEyNTUxNzI3OTlhZSBsZWdhY3ktdHJ1bmsKKzU1NjM4IDA2ZTZkNjIxNWM1Yjc4YmQxM2E5MWI1OWVlMDJhZTMwNTM0OGMxYWIgbGVnYWN5LXRydW5rCis1NTYzOSA3Njg4N2UzZThlNTdhNmFkNGQ4YWEyY2E0YTAyZTYyMTg2ZjIzNjgxIHAzeWsKKzU1NjQxIGFlODA1Nzk4ZmE2NzgyYzZiZDk1Y2YwNmFmNzlmMDA4NjQzZmEyMjcgcDN5aworNTU2NDIgNjdlZTQ2OTZkMTQ5YWI2N2I1ZGM5MGY3ZTlhZTEwZmE3ZDY4MDA0MiBwM3lrCis1NTY0MyAzNzdiNWRkNjI5M2RhOTk2NjI1ZTlhYmJkNjk0NTk1YjgzNTg5OWJlIHAzeWsKKzU1NjQ1IGExZWUyNTZmYmM4Zjg0NTk4YWEyNTA1MGM5NDQ5ZjdhN2YxOTRkYjUgYmNhbm5vbi1vYmpjYXAKKzU1NjQ2IDJhZTk5NzVhY2EyMDVlNmEwMWIwNDZmZTcyODExM2JkMGUyYmQ4NTkgYmNhbm5vbi1vYmpjYXAKKzU1NjQ3IDhiMWNkZjkzMjFmZDEzNjBhMTAwNTUxYTI5YjYzMTUwZTM3ZTBmYWYgYmNhbm5vbi1vYmpjYXAKKzU1NjQ4IDkzODYyYWE3NmY3YzJhMDc5NjI1NjU3ZDc1ZWQ5OTFmOTljZjBkMjEgcHkzay1zdHJ1bmkKKzU1NjQ5IDliMWZmY2UyNTZiOWFhZTY4NjU5NmI5NjVkNWM2MGMyMTljYTQyNGEgcHkzay1zdHJ1bmkKKzU1NjUwIDZjMmZhNzFkYzQ1OWYzODUxMGU1YTg4M2M2ZmRiNjk5OGViNjMzMWYgcHkzay1zdHJ1bmkKKzU1NjUxIDQ5MjY4NzY5NWM2NmM4MzU2MmZiNjQzYjA4NmM3ZDUwNmY1Y2MwODAgYmNhbm5vbi1vYmpjYXAKKzU1NjUyIDA5ODJmYjA4ZTc5YjFkODE0MzUwZjZjZDYyN2Y1NjM0MmJmMDQwYWMgYmNhbm5vbi1vYmpjYXAKKzU1NjUzIDAwM2NlMzZkZDIwMjIzNDkwOGM1YTc3YTIwZTljZWNlYmMwNWZiMmUgYmNhbm5vbi1vYmpjYXAKKzU1NjU0IDE4ODIxNmI0M2VmNmE3NGIzNzFlYjQ2ZjhiYWQ5MmQxNTYzNmIyZmQgcHkzay1zdHJ1bmkKKzU1NjU1IDM3YTI4NTZkOGYwZTFkOTFjZWI3MzE2Yjg4ZWYxMDg2OGE0ODdkZmYgYmNhbm5vbi1vYmpjYXAKKzU1NjU2IDc1YjljZTFhNzc0NWYzY2Y0MTg3OGM4N2Y3YTg3MzFkZGQ2ODM3ZTIgYmNhbm5vbi1vYmpjYXAKKzU1NjU3IDYyZTM5NGQ1MGFhMDYxMTMzOTYxOTczMzg5MjRmNDk4YTU0Mjk2MzYgcHkzay1zdHJ1bmkKKzU1NjU4IDY3OTZmMGNiMGJlYTQ4MTAwOGRlMTE0NWYxYWIxOTA4MjlkNWU1YWQgYmNhbm5vbi1vYmpjYXAKKzU1NjU5IGRlZmUyNTEzYjc4ZTE3MTA1NDdiZmY2ZDNlNGY0ZDlmM2ZmMDFkNDIgYmNhbm5vbi1vYmpjYXAKKzU1NjYwIGNlYmFmN2MzYWI4Yzc1MGE4MTYxZTlkZWUzZGUyMWQ3YzRmZjc3ODIgYmNhbm5vbi1vYmpjYXAKKzU1NjYxIGI2ZjA0OTc0ZDhhNzdmZmQ4YTM2MmY3YTNkNDQwYjZiMGFmZmMwODQgYmNhbm5vbi1vYmpjYXAKKzU1NjYyIDU2MjYwMmM5MTAxZDlmMWVlYWZjYWFhNmZhODlhNDFjNTQxN2IzN2UgYmNhbm5vbi1vYmpjYXAKKzU1NjYzIDM2YTA1Njk2YmU4MjE4MDkyNjVjZGRiYzNjYjUzODkxZTkwYzczYzQgcHkzay1zdHJ1bmkKKzU1NjY0IGY0MGZmMmQ3MzhlYTQyNjRiMzBlYjg3OTRjMzllYzY4MjlhOTU5ODggcHkzay1zdHJ1bmkKKzU1NjY1IGM0MGJmYjM3ZmExNTQyNGU5MDRkM2FkNzMxOGZkY2U4YTI2ZWNmOTEgcDN5aworNTU2NjYgNDE4MDU5OTk0ZTQ3MjIyY2JhOWQ0ODliMjZmMjcxNzZhMWViMWUyZCBwM3lrCis1NTY2OCBhYTRiNzI1NDlhNjk2ODI3ZTBjNDM0YTE3YjA4ZGVjZmQyMGE5NjdlIHAzeWsKKzU1NjY5IGQ1YmJmOTc1NzBlMzYyNmRjMThjMTEyMGNlYjMxMTVlMzRjNjFhMDkgYmNhbm5vbi1vYmpjYXAKKzU1NjcwIGU3MWRlNTc1MTNlMWJkM2IyY2I1ZTVmOWE3OWJjNjMxMWI4MzhkNjIgY3B5X21lcmdlCis1NTY3MSAwNjM1YTZjYTE5ODAwMjIwZTdkZDQ2NDllMjI4ZmI0NDVkM2VjMzc1IGxlZ2FjeS10cnVuaworNTU2NzMgN2QzNzljNDc2MDA3NDIxNDUzOTYzNzc5ZDU2NjUyNGYyOGUyMDU0NSBwM3lrCis1NTY3NCAzYWZmY2UyZWY3ODJjYmVhYzQ1ZGQzZTYzZmEwZjQ4ZDY2YTNhZTQ1IHAzeWsKKzU1Njc1IGRkMzk2MzU0MGNmNzcwOTQwOTBhMjk0NDE1MmJiYjIxNGEwZTA3MGQgcDN5aworNTU2NzYgZGRmMDQ3MWE2ZGUzNzNiOTRjNGZjNmJhZmZkZmYyZTY5MGYxZGM1ZSBsZWdhY3ktdHJ1bmsKKzU1Njc3IGFhZjNiNmQ4MmI2M2YzNmRkODc1OGNmNzcyYmNiNWVlNDY2MzU2ZjAgbGVnYWN5LXRydW5rCis1NTY3OCAyNzVkODdhNDdmNjQxNGZlNjlmMzQ5Mzg0MDFkNWFjMDA3MWEzZjQ2IHJlbGVhc2UyNS1tYWludAorNTU2NzkgY2RlYTA5NGNmMDQ1MWY2NzBmNjQyMzY4ZmU1M2IyYTJhMDc3MjhmYSBwM3lrCis1NTY4MCAzOTRhYjVmZjE4NTRlNDE2YWQzZDI2NzM5OTNmZjA1ZmE2M2JjMjUzIGNweV9tZXJnZQorNTU2ODEgYmE4YjVhZDhlNzZlYmQ3ZWNhNWQwYWMyOGE1ZGQzZDAwNjMyMDhhYSBjcHlfbWVyZ2UKKzU1NjgyIDUxNjc4NTc4NTFjMTA5ZDRiMjY0YWFkN2EwOTMwMjU1MWMxYjIwMmMgY3B5X21lcmdlCis1NTY4MyA0MWM3Y2QxNmIxOThjMDA2ZGEzNDAxMjA2YzU3YmZkNzE0MTMyZmI3IGJjYW5ub24tb2JqY2FwCis1NTY4NCBhY2QxZTI2MjQ5OWRkMjhjZmEzYjRkZjQ0MjlhNjhiNzIzNGNjNjE3IGJjYW5ub24tb2JqY2FwCis1NTY4NSBhNjA0MmM3ZDdjNTVmYTJjMWIxMmVhYzA3OGZiMGYxNWU1Y2Q3NjM5IGJjYW5ub24tb2JqY2FwCis1NTY4NiA1YzI5NDExYTA1YTVmNTljNWVmODEwYzhkNjdlMWUwYzVhODQ3NmY4IGxlZ2FjeS10cnVuaworNTU2ODggYWQ2YzViODhiNWM0YjAxOTcwZTBjMTM0MGFlYTg2NjI1NTcwZDkzNCBwM3lrCis1NTY5MCBjMmRjNGQxN2U5OGJjNDA0ZDQ2OTQ3NjEyOGJmNTczODE1ODc2MTdhIGxlZ2FjeS10cnVuaworNTU2OTIgMTc2OTk5MzExNzllOGYzMDU2Yjk1NDczOWRhOTIwZjhjYjE4MjYyMCBwM3lrCis1NTY5NSAxMjAwYzBlMDk1NTM3NjU5MTJkYjE5ZGIyMjM5M2M1YTY4MDBmYmZmIGNweV9tZXJnZQorNTU2OTYgMGUyOWJiODBlMjI3OGVmNjJlNWQyMzQyNjkyM2FhOTYyYmUzMWIwNSBsZWdhY3ktdHJ1bmsKKzU1Njk4IDhlN2VjYmQ4YWFhYjE4NzY4NjAxNzMxMDEwMTY4ZWI1ODM2Yzg2NWQgYmNhbm5vbi1vYmpjYXAKKzU1Njk5IDBmNDI0ZGU0NTZkYjQ2MDk5MGVlNzU2NGQzYjEzZmNiNjc4ZTJhMDcgY3B5X21lcmdlCis1NTcwMCBiYjk0MmI2MGIwZmVmMmI2MmY1OTc1MjYzMjJhOGJiNDI2NGQ5MGUyIGNweV9tZXJnZQorNTU3MDEgZGZjZTlhMjYzNWU5NmNmMTJhNTM1MmJhODNlMzBiMjJiNTA1OWIwMSBjcHlfbWVyZ2UKKzU1NzAyIGRmM2Y3NmFjZTJkNzRkNzNkZTkwM2YwNThkY2FlODViM2E4NmUzYjIgY3B5X21lcmdlCis1NTcwMyBhZjBhYzgzNjAyYjQ3ODZhMjExNWU1YmQxMzZhNTQwN2RkZWI5MTU3IGNweV9tZXJnZQorNTU3MDQgZDhhNmFmYTZlOGM2MGVlNzVkNWEwNDk4ZjU1NjQ3Mjg2ODk5NzkzNSBiY2Fubm9uLW9iamNhcAorNTU3MDUgZDBiNGJiYWFmYWFlNGM0MTViNTVmOWI3YjBmOTdmODg1MjcwNGEyNiBsZWdhY3ktdHJ1bmsKKzU1NzA2IGRkNDY4OWQwZWM4NWI2YzEwM2E1NjMzZDQwMGM5NjY5Y2UxZjI1MWYgcHkzay1zdHJ1bmkKKzU1NzA3IGYyODdiODhjM2MyMWNmYmM1NDQyNTMyMWVhYWUyNDVhMDhmZjA3ODYgcDN5aworNTU3MDggYzQ1MTExNTBlZjYwNzEyMGU2YzM5ZmUzZDlmN2M0ZGI0NGUzZGFjNCBwM3lrCis1NTcwOSA3MWQ4NjFlZTlmZjBkYmRhZTA3YWUzYzQwYjMyZWVjMThhMzA2NmJhIHB5M2stc3RydW5pCis1NTcxMCBiOGJlZjlhMWNkZjAxY2Q4MWI0ZDZlNzUxYTY4MDZmNGI0YmQzNDg2IHB5M2stc3RydW5pCis1NTcxNCBkYmQyY2Y0MDUyNzgyNWZiZjExNGU0YTkzNmEwNmU3MmZiNjU5NWQ4IHB5M2stc3RydW5pCis1NTcxNSAxMjdmMTUxZjMxN2I3N2VhNjEzMzhkNjc2N2JkODQwNmQ5MGVhMjc3IHB5M2stc3RydW5pCis1NTcxNiBiMzgwYzljNDk3MzhhY2EwNWExNTNlZDY1Y2E2YzdhMzhlNjgyNmVlIGxlZ2FjeS10cnVuaworNTU3MTggY2VmMDdkYjFjYWVkMWEwODI3ZTQ5YmQ5MTcxZTQzYjUyYWVkOThkOSBweTNrLXN0cnVuaQorNTU3MTkgOTFiYjE5ODEzY2E2MTFmY2EyMTA4MWRmMmMwM2UwZDA1NWQ0NDU3OCBsZWdhY3ktdHJ1bmsKKzU1NzIxIGM2MWNhYWY1NjE2MzBhMWVhNzBkNGE1MDRlOGU3ODY3NmEyMThlMmUgbGVnYWN5LXRydW5rCis1NTcyMyA2NjdjMWE3Mjc5YzlmN2NiNDg3ODM2YTU3NjlmN2IxZWRiZTIzMDE1IGJjYW5ub24tb2JqY2FwCis1NTcyNCA1Y2E3ZDE3MGU0MzEyZjU0MGI0ZDYwMmI4ZWUyMmU4ZjIzNDczYWEwIHAzeWsKKzU1NzI2IGNjZjIwOTkyNTM4MzY5ZTdmOTgyMDY3YzU1NDEwZDNhOGEwMzYwMmYgbGVnYWN5LXRydW5rCis1NTcyNyA5Njg2MWEwNDFmNTQ2Y2Y0NzhmNzY5Njk4NjM0ZmQzNzk3NDIwYTI5IHAzeWsKKzU1NzI5IDI5MzRhZjA1ZjhiZmIwOTJiY2QxYzA1ZGFmYTc0ZWExMmJlYzg3NTIgcDN5aworNTU3MzAgOWFjYjM5NDc4MGRmOTM2MTliZGIwNGU2ZDIzZTFjNTUyNmFhZWY5YyBwM3lrCis1NTczMSAyNGVmYTJlNDQ4YmNlMmZhZTEwYWI0Yzc3ZmExYjgzNGJiZjY3YWRlIGxlZ2FjeS10cnVuaworNTU3MzIgOTA0ODdhODg3YmUxMzZmYmU5MjQxYmU3N2UxZWFjZmU3OWExNTZlMSBsZWdhY3ktdHJ1bmsKKzU1NzMzIGZlYzEyOTY1NDRhYjk2YzBlZjUyODJiZGU0YjI0Y2QzY2ZjMzljMTQgcmVsZWFzZTI1LW1haW50Cis1NTczNCBmMDEyMWIyMTVkMzg5NjAzMTMzNzRkN2NmYjZhYjE1OTM4MmJlNDQzIGNweV9tZXJnZQorNTU3MzUgZmJiZjg1MWUyMzBhNTllNWZkNjM5YzQ0NDg0OThmOGI3OGZlYTc1NyBsZWdhY3ktdHJ1bmsKKzU1NzM2IGRhNTFmN2Y5MDhjYWQ4ZmU3ZmQ5MWI5MjFkYzM4Zjg1Mzc0NWUxOTcgcmVsZWFzZTI1LW1haW50Cis1NTczOCBkZmY2MjRiMmEyNDkxMDQyZTcyOGIyMTVlNGE5MjI1YjJhZmM3ZmVjIHAzeWsKKzU1NzM5IGY5ZjYwMDAzMjdlMjdiZDJlYjhkNGFjNWIxMTkzNGJmZDQ5OTM3NGEgbGVnYWN5LXRydW5rCis1NTc0MSAzMjhlNDU5ZWI2NzAyOTYxMWZkZjhhMzg3NTYwMzMzODJmZjE1MWIxIHAzeWsKKzU1NzQyIDdiM2Y2NGIzZTczOTM4OGVkNDNmZDBiNGRhZWVhODRjMDc5OTk2OTggcDN5aworNTU3NDQgMDRmNGI1NTdkM2M0NTExYjNjZTEwZTMxYTI2NGRmYTlhMDUxZjgwNSBwM3lrCis1NTc0NSAwNDE4NmY1MjE5MmRkYjEzZTNlMmVmMzEwMzE1NWI4ODQxZDM4Mzk0IHAzeWsKKzU1NzQ2IDdlMGMyMjBiNTVhNjQwMzNjODNkODdiNjFhZGM5OTNjYzllOWU5MjMgbGVnYWN5LXRydW5rCis1NTc0NyBiNGYxM2M3ZmRmZDg4ZDE2OGExNWQ1MjIyZGIwYTBkOTM4MzczYzZjIHJlbGVhc2UyNS1tYWludAorNTU3NTEgZTMxZDJmOTVmMjI1NGQyNDZkM2U1OWYyNDNiYmM5ZTBlMzVmZGQ5NyBsZWdhY3ktdHJ1bmsKKzU1NzUyIGUxOTk3MjgzNDE3MDg4ZGFjYjY3OWM1YWYyMTBjMWRmOGM3OWJlMzIgbGVnYWN5LXRydW5rCis1NTc1MyA4MmI5M2ZhOTFkY2YzNDEzZDAyYjk3ZmYyZWNkMTkwOWMzNmUxNDYyIHJlbGVhc2UyNS1tYWludAorNTU3NTQgYWJkZTA4Mzg0M2NkMmNhMzIxOWFmZWU4NTQ3MmZlZGZkZjlkODYzNSBwM3lrCis1NTc1NSBiOGFiZGZhMWM5YWZjMTAwMmQxMjI5NTBmM2IyOWE1NWM0MGRmMDNjIHAzeWsKKzU1NzU2IGY2ZmFiMWM3MDdlOTA5ZmZkMDU3OTRjZmUxZjZkZjU4MmEwMWNlN2YgY3B5X21lcmdlCis1NTc1OSA1MDE0ZjhkYWE1N2ZhZDU3ODZiYWE3ZGY0M2EwZDQ2NTRjZTNlYmZhIHB5M2stc3RydW5pCis1NTc2MCBlNGFiMDgwMzljNzVmODBmZDhmOGVlOTU1ZjYwMTc3ZDU1NjdkYzA2IHB5M2stc3RydW5pCis1NTc2MSA3M2RkMmRhMzFkMzdlYmQ4M2VmY2NiYjUwY2E4NTIyMzVlMjdjNTBkIHB5M2stc3RydW5pCis1NTc2MiA4YmNmYzQ2ZTQ0NGI1ODI2NmJkY2NiMWYxYWE2MGJmYmZlMTM5YzU5IHB5M2stc3RydW5pCis1NTc2MyA1Mzk2M2EyZjU2NTI5YmU4YzE2NTQ4NGU1ZGU2Y2RmZDg5YThmNDE3IHB5M2stc3RydW5pCis1NTc2NCA1Nzk4YTJmYmFiMDMwNGYxMzY3YmYxNTg2OTJiODljNGRiZjE0NzFmIHB5M2stc3RydW5pCis1NTc2NSA3MTYwNGQ0OWEzODYzOWVjYTE0NzJmMTdkNzZiODU4MzkxMWE3N2U1IGNweV9tZXJnZQorNTU3NjYgYzM2YWM2N2VlZjViNzc2YTEyYzA0NzUzZjcwOGE1ZGM5YWNmYmVlMCBsZWdhY3ktdHJ1bmsKKzU1NzY3IDRiMzRmYWFhOTc3ZGU4OTY5YjJlMmI5NDU4ZTkxMTU2OTI2OTAxMmEgY3B5X21lcmdlCis1NTc3MCBiNmMxYTFhMTVhNmNkYjQ1MDFhMDU4ZmUwZDM5NjA4YmM4OTkxYmFhIGxlZ2FjeS10cnVuaworNTU3NzEgZTNmYmRkN2NiOTY5Y2ViOGIyYzg0Mzk2YmRlYzg4MzkxZjZhYzAyNyBjcHlfbWVyZ2UKKzU1NzcyIDc2MTk0ZTY4MmUyMWNjNmFkNTNmZDRjNDMwZTM0NTJjM2RjOGVkOTYgcmVsZWFzZTI0LW1haW50Cis1NTc3NCBjNWNmOWE0ZjRmYTk3OWNkMTc1NTU5MTliNmQyODc1MTQzOTQ4YjhkIHJlbGVhc2UyNS1tYWludAorNTU3NzUgMzVhY2NlZGI1ZDAzYjQ4ZTAxZDc5ZjgyNDAwM2YxZjZiZWY5MDkxMiByZWxlYXNlMjQtbWFpbnQKKzU1Nzc1IGNmYmNmZjY2ZTcyNWFiNDI4ZTNlOWEyYjE1YTJjNzc5NjM4OTZjYWUgbGVnYWN5LXRydW5rCis1NTc3NSAwMTgxMzg0MWQ2NGJmYjQzNjZjZTBkZDExYTZlMGY2ODI4ZDJmNjBiIHJlbGVhc2UyNS1tYWludAorNTU3NzYgMzlhMWEyMmY5NmNmNjNmMTM0MjlkNzVhYTQyMGU3ODJjMGY4ODQyZCBweTNrLXN0cnVuaQorNTU3NzcgYjNmNjFiYWUxMGMzOGNkODU5NGEwZWYzMTA1YjFiNmZjNzI4MWFlMiBjcHlfbWVyZ2UKKzU1Nzc4IGVmMzc0MzFlYmYyYzk0NWUxZTNhYzgxM2JmZWE0MmJmOTYxZGQ3YmEgcHkzay1zdHJ1bmkKKzU1Nzc5IDRjNWZiZTY1YjdkZTc5MzU5ZDRmMTU3NTY0ZjI4ZDE2ODYwNjQ4NzUgcHkzay1zdHJ1bmkKKzU1NzgwIGIzMGM3NWQyMmYzNGIyMzk3MGE0ZThlMzhkMjg4NmM0ZmI0NTk5MmQgcHkzay1zdHJ1bmkKKzU1NzgxIDcwMTVjY2NmMjllM2JiZDc1ZGMyNzQ3NjJjMjA5ZDNiNGYyM2EwZWIgcHkzay1zdHJ1bmkKKzU1NzgyIDMwZTYxYWMxZDY2YzYyY2NmNTQwOWE1NTQ2YjU2NDUwODBmYWQ1MGMgY3B5X21lcmdlCis1NTc4MyA5YWY1MjRlMzUxZjMyNTBmMzFmMGQ2NDkwNzg3N2I4ZWI3MWEyYzJiIGxlZ2FjeS10cnVuaworNTU3ODQgZjIyNzc0MzlkY2RjOWY4YWQ0YTg4MzlhNDk3ODk4YzAyYzgzYmM4MSByZWxlYXNlMjUtbWFpbnQKKzU1Nzg1IDU4ODY4NmQ0YzJjZjg3ZWI5Njg0Yjc2ZGM1ZGQyOTE5YzA3NzI2YzAgbGVnYWN5LXRydW5rCis1NTc4NiA2ZmQ4ZDUyNGQ1NmIyZTY4ZWViNjU0MjM4ODBlNTY1MTQyMzYwODgwIGxlZ2FjeS10cnVuaworNTU3ODcgMTE5MzBkY2Y5ZDRmYjRkYWU2Yzk0ZWY0YjdjNTBlNDA2MTYxYzQ3ZiBweTNrLXN0cnVuaQorNTU3ODggN2U1MmI1YmVjNWE0MjY5OTc2MzU2NTM1OWZlYWNhODliYTY4MDJhMSBweTNrLXN0cnVuaQorNTU3ODkgY2U1YWY5YTc0NmNiMjA4YzNlMmMzNmMwYjIwOTFjOTExZDYyOTBmYiBweTNrLXN0cnVuaQorNTU3OTAgNDU5NjcyN2Y2YzM5YmM1OGY4MWYxN2ViOGIzZDViMzNhOWNhOTMxOCBweTNrLXN0cnVuaQorNTU3OTEgYjA1YzZkNDJkNGY3MjFmYjY2YmQ5MzgwOTMyYjY0ZTE3YWI2MGJlZSBweTNrLXN0cnVuaQorNTU3OTIgZjE0MWM1Zjc3ODYwZTMwZGMzOTY4NmU0NTk1ZTk0NTRiNTkwYzE1ZCBsZWdhY3ktdHJ1bmsKKzU1NzkzIDA1ODc5YWI4N2U1YjQ4NGM5OTViNWU2NWU0NDMxYjQ5NWY2NjhlZWYgbGVnYWN5LXRydW5rCis1NTc5NCA3YjM3YTQzNzIzNjE2M2Y4YjQzYTk2NmY4M2FiYmJjZTZhZjY0Y2U0IHAzeWsKKzU1Nzk1IDlkMDJhNGFkZjU3NDgxYjYwZDJmOTc1YjZjNTc5ZjFkNmQxYWQ1OTkgcHkzay1zdHJ1bmkKKzU1Nzk2IGIzOTAwYTUxMzQ2YjUyYzRkMTFkZTk5NmFmMDA4N2JkOGQ3OTQ3NzQgcHkzay1zdHJ1bmkKKzU1Nzk3IDU5YjdlOTM0Njg4NWNjNjBjYmFlZDhmMDZjNzBhZGY4NGRiZWVmOWEgcDN5aworNTU3OTggYzYzOTIyOGNmZTIzZDQ0YTljYTE1OTExNmI5Mzc3ODY2Y2IyNWY2OCBwM3lrCis1NTc5OSBhMzI2MWNkZTNhMzdlNjgzYjIyNzEwNGM1ZGVjNzNmNjY2MGUzNjcyIHB5M2stc3RydW5pCis1NTgwMCBmZWU3MWM3YWY1MmY0ZjBlMDk2ZWRiYTU1OTNjMTEyYjc5YTQ2YmI5IHB5M2stc3RydW5pCis1NTgwMSA5NDJkODMwMmY0ZDZmMTU0Mzk0MDI0MDYzMzJhNGM3MzRmNmM1Zjg2IHB5M2stc3RydW5pCis1NTgwMiBjOGIwZTNiOGI0NTZiYzhmMmFiNTlkNDU1ZTY3OWEzMWU0ZTQ3NGYzIGxlZ2FjeS10cnVuaworNTU4MDMgYzJhYzIyYzZmOThkMDNmY2QyODQ2OTUxNGIxNzA3YmE4YTg2YTExYiByZWxlYXNlMjUtbWFpbnQKKzU1ODA0IDFiYzkwMWRkYjdkYzIxYjNhZGRhN2U5N2YxMDIwYjZhOGU2ZDA0ZDAgbGVnYWN5LXRydW5rCis1NTgwNSA4MjNjMmY3NTkxZjUwMmVhODRlMDAwYzQzNTNlODkzYjFmOWFjNDhkIGxlZ2FjeS10cnVuaworNTU4MDYgODE1MGQxZjAxMGFhYzU2NmYyM2QwMmZhNjllOTU1Yzc2N2UxZTdlNyByZWxlYXNlMjUtbWFpbnQKKzU1ODA3IDE0NzQ1YjRmYTcxOGE1OWY1ZDUxZGE0NGNmNmU5ODhjOTU0OTcyYjQgcHkzay1zdHJ1bmkKKzU1ODA4IDgyN2VjNzY4MDE5OTUzNGZjOWNjNGU5YmRjZmM0Y2RkMjE2NWNkYTUgcHkzay1zdHJ1bmkKKzU1ODA5IGNkOGYxNjViZDdlMjk3YTRhMWZiYmM2YWEwYWIyOTJjZDUwMTE4MDUgcDN5aworNTU4MTAgYzZhMGI3NWRiZWMyMjhmZjkwNzUyY2YyYjVlM2Q5MzNkZDI5ODk0MyBweTNrLXN0cnVuaQorNTU4MTEgZWYwOWNiMDExOTU5NjRhM2ZkZDYyMWQ3ZTE1ZjgxZDJiMGM5YjJmZiBweTNrLXN0cnVuaQorNTU4MTMgNTRlZjY0NWQwOGU0ZmJiNmMzOTM5NGIwYTVkYmM3MDkxOGRhZWNjMiBweTNrLXN0cnVuaQorNTU4MTQgYzQxZmQ1NzIzODYwOTYwMDk3MTRiYzc4Zjk0ODhmZWYwYTE2ZThjMSBjcHlfbWVyZ2UKKzU1ODE1IGU0MjAwMzkzNjhiNzliZTJiMTkyZDQwMjU1M2FkMDI4MjVjMWJhZmMgcHkzay1zdHJ1bmkKKzU1ODE3IGFlNmJhNjE4OGQzOGQ0MDRlMzBhYWM3ZDUxMmM2YjA3NTIzMzBlYzAgcHkzay1zdHJ1bmkKKzU1ODE4IDY0NjRjYzYzOGZhYTBkMTQ4ZjY3ZTE3MGE2YTMyYjgxY2VmM2ZhMTQgcHkzay1zdHJ1bmkKKzU1ODE5IGU2NmRhZmE5ODQwM2Q2MjU2NDQ2MjI1ODA1YThlZDEzMzNiOTUwMTUgY3B5X21lcmdlCis1NTgyMCAxNGVjOTY3M2Y4OTQ3YzczZjMyZGVlZGI3NDUyYmI4ZGU3ZDJjZDdhIHB5M2stc3RydW5pCis1NTgyMSAyNDUzYjkzNzkyNWU4OTNmZTg2NzMyZDc5NTBjNzk5Yjc4OTA0M2I4IGxlZ2FjeS10cnVuaworNTU4MjIgMjlkMWFmMjIwYzNjN2E1YjVjNGE4ZmQwZTFjYzAzMzJmOGQ3ODRkYiByZWxlYXNlMjUtbWFpbnQKKzU1ODIzIGUxNTNiYTM1MmI1MTNjNWY4Yzc4YThkYjcxNzM5ZWY4ODAyZjBhYTMgcHkzay1zdHJ1bmkKKzU1ODI0IGY0OGMxOTdmOWMzOGZkZTZmNjQ1NjNiY2EzM2JiMzc5OGMxNDhhNDEgcHkzay1zdHJ1bmkKKzU1ODI1IDU4YTEzMzMwZGZkZTk5NjdmOTM4MjI5ZWZjNWVjZDE5NjQ0ZWFjNDggcHkzay1zdHJ1bmkKKzU1ODI2IDBkODFhNjU2NDEyYTE3ZDQxYWE4YTc1N2E2NzIwMDI3NTJjMTQ0NzYgcHkzay1zdHJ1bmkKKzU1ODI3IDE0YjY1ZGU5Yjc5ODU0OTBhMTc4YjU2YjIyNGE2Y2Q4MTY1Zjk0NzUgcHkzay1zdHJ1bmkKKzU1ODI4IDUyMmE0OTQ1ZGVmODBlNjBjNzIzZTdiNWYzMzkzNWUwNWU0ZTUxYzAgbGVnYWN5LXRydW5rCis1NTgyOSAxYmJjZDM5MjQxN2RjYTU3M2JkYzBkMjkyMzI0MjI0OGY4NjhhYTQ0IGxlZ2FjeS10cnVuaworNTU4MzAgMTBmOGE4YTkxOWUyYTBkMDk3YjdhMmM0OWMyYjQ0ZDUzMTJjMDE2NyByZWxlYXNlMjUtbWFpbnQKKzU1ODMxIDdiODRlODkxOWIwMDBjNTEzMjRhNGJhNTZlYjc0ZTQ4ODNjYWE3NWUgbGVnYWN5LXRydW5rCis1NTgzMiBiNGY0ZWU4NGMzMGQ3YWFlODEyZGNjZjg2ZTAzMTBkOTU5ZjI2NmVlIGxlZ2FjeS10cnVuaworNTU4MzMgODY5MWNjNzZkNDQxOTI1MGNlNTJmMmM4ODY1MWFiYzAzMGEwODA0YyBsZWdhY3ktdHJ1bmsKKzU1ODM0IDA2NzJkYmVkNWY3YTk3OGUxNTY2M2QyZmE2NGY5N2ExZTNiNmVkODIgbGVnYWN5LXRydW5rCis1NTgzNSBkNjBkMGQwZWU0ZjhjOWM4MzcyOWMzYmQ2N2FiY2I0ZGNiYjEwYTcyIHJlbGVhc2UyNS1tYWludAorNTU4MzYgMmJmNGRjOWQwNjQ3YmNhZTU2MTI0MzhkNjYzYWI5ZDkyZmEzNDcyZiByZWxlYXNlMjUtbWFpbnQKKzU1ODM3IDA1MjdhYjk0M2E0ZjIyMmNmODYxODEyY2I3NzkyMzBiODg5NjVkOGEgcDN5aworNTU4MzggNzlmMTNiZjhkZDI3YTI4NTc4ZGE5ZDZhMDk3ZGY4Y2M0Y2YzMGVmMiBwM3lrCis1NTgzOSBlNjJiNjA2ZWZmMGI4MzY2ZWYwMGY5YWY2NmM1MjY4N2Q5NTRkODAxIGxlZ2FjeS10cnVuaworNTU4NDAgMmJkOTQxN2RhY2Q1YzUzYWJlNzg1NGVlZDY0NDg5YzA0OWIwZGYwOSByZWxlYXNlMjUtbWFpbnQKKzU1ODQxIDE2Y2VlNjc0YTQxMGU1OTI2MjViZTQ2MGNjOGNmYTA1ZjU3MTY0ODAgbGVnYWN5LXRydW5rCis1NTg0MiBlODQxMzk3MTIxMmRmOTQ1MDkwYTQ4ZWJlZGI2NTRkMDU1MWU1NTg2IGxlZ2FjeS10cnVuaworNTU4NDMgMjg4MDVhNzIwNDU0MDAyYzhiMzZkN2I1OGE2YjBmOTU5NTczMTJhYiBsZWdhY3ktdHJ1bmsKKzU1ODQ0IDdjOTIyNWRhNWY2MTE1OWI0MzY4ZjM0ODIzODViYTc4ODA3Nzg5NDYgcmVsZWFzZTI1LW1haW50Cis1NTg0NSBlMmMzOWEzMGUwOGRkNmRjNDk5ZjViNWM3MDFkNzY5ZTZhZDIwYWJiIGxlZ2FjeS10cnVuaworNTU4NDYgNzMxYjY5OTQyMzE3ODAxOWYwNjJmNjBhY2Q2MTBjZWJiNTNjZmQ0YyByZWxlYXNlMjUtbWFpbnQKKzU1ODQ3IDNkYzUwN2NhMmUyYmViYjUxMDM0ZGRkZjQyOWY5MzQ5YjA3YzNmMmEgcDN5aworNTU4NDggNTljNmY0Y2JiMzI2OGVjMmE0MDc4MzkzN2I3ZjdlZDU0ODlmZTIxNiBweTNrLXN0cnVuaQorNTU4NDkgMDIyMjRkYTYwZmQxODNiZmUxNWFhZTlkZmFmMWY1NmQwZDhmODNmMCBwM3lrCis1NTg1MCBjZDEyNWZlODMwNTFiNGU1MDg3ODlkYjg2NDQ3MWM2YzJmMjExN2Y4IHB5M2stc3RydW5pCis1NTg1MiA2NDQzODUzYmEzMTQ4OTFlN2NkZTdjMWViMTQ4OTE1ZDE3MWFkNTZiIHAzeWsKKzU1ODUzIDZiZWI3NWVlZTljNTJmMmIxMmM5YjQ3Y2MxZDE4ODYzZTM2YjYyM2QgcDN5aworNTU4NTQgYjFiOGVlODA3YmRhZGUyMTlmMzA2YzJlMjMxODE1MGJmN2M4NTc2MSBsZWdhY3ktdHJ1bmsKKzU1ODU1IDNkZGFhZjYxNDgwNDRhYjc5ZTA2NzdiMjJkNTI3NGI0MGI5MWZiNWMgbGVnYWN5LXRydW5rCis1NTg1NiBiMjM5YTJiY2IyNGYzNTNjMTgyMTM3NzRkNDA1NDU4NjQzNDU4ODRmIGxlZ2FjeS10cnVuaworNTU4NjAgN2VhY2NmNTNhZGJkMTRjM2E4YjcwYTE4ZDFkOGU5YjFmZWY1OWY1ZSBsZWdhY3ktdHJ1bmsKKzU1ODYxIDc5OTBiYjI3NTljYjM3OTRjNzFlOTcxYzUwYzYzOGU2MWIwM2QyNmUgcHkzay1zdHJ1bmkKKzU1ODYyIGY1YjY1NzMxYmQ2YzlmYjYxYWRiNmI1NmM3NGMzZmQzNzBhNDc1ZWUgcHkzay1zdHJ1bmkKKzU1ODY0IDZhNDM4MmNlYjcxZTJjOTNjZmVlZDJlNDU4ODBkN2VkZDI4ODc1NzkgcDN5aworNTU4NjUgMGU5YjBiOGZjM2U3Y2YxZDZmYmFkNWMxNDhhZTIyNWNkZWZmNzhlOCBwM3lrCis1NTg2NiBiMzdhNTY4ZmQ0NDFlYjU1YTJhZTk1NTg2MzliYjc2YWQwZWI3YzIwIHAzeWsKKzU1ODY3IDJkNWUyMzY1YzdkYjA1YjgzMGU1MjIyZDRmMmJjNDRjZWQ3OGYwM2QgcDN5aworNTU4NjggOWU4NTdiNmMxZTU2M2U3NzRmNDQ0MzIzY2QwMmNhNTg0Nzg2ZDQ4MCBwM3lrCis1NTg2OSAxOWZhOWM3ZDNjNGYwOWQ0YzIzOGM0NGY3ZjY3MDNkZDllYWNlZjUyIGxlZ2FjeS10cnVuaworNTU4NzAgZTFhZmU1NmNhNmJhMzA4MDkyMTMyMjg2N2YyMzZkOTM4YzY4ZDIwMiBsZWdhY3ktdHJ1bmsKKzU1ODcxIGI3ZjhkZGQwNzJiODU4ZmEzNGRhOWFjMzI5MjBiNDcwMGM2OWUyZGMgcDN5aworNTU4NzIgNTliYzhkYTAxYzY1OWNmODE0NTdmMGZmMGFmMDE5MTQ0YWI4NTNhYiBsZWdhY3ktdHJ1bmsKKzU1ODczIGRkZTdjMzdmNDUzNjRkNzY2MWYzODBiYWJkOGJhZTBiZGQwYmNlNDAgbGVnYWN5LXRydW5rCis1NTg3NCBiOTRmMjg0ODA1YmU3MDgyNmUxYTU5OGM2MjcxN2NkZmMxMjBjZjIxIGxlZ2FjeS10cnVuaworNTU4NzYgMzZiOGQ3NGRlYjllOTIxMDJjOWJhNWY4YzQ2ZmNmMWQ3Mjc4OTMzZSBweTNrLXN0cnVuaQorNTU4NzcgNzVlZmU2YmY4YTNlY2VkODQxZmJlZmQ2YTQ3YjlhNjBmMTVkZjMxYyByZWxlYXNlMjUtbWFpbnQKKzU1ODc4IDcxZjMxOTI5MTVlMTMxZTJmOTFhOWQyODdmZTEzNjhlOGJkMGE0NzcgcmVsZWFzZTI1LW1haW50Cis1NTg3OSA0MzMyMmZmNWUzMTJjNGE1NDkwNDVjZTY1NmQxMjY0NGYxOWMxMDcxIGxlZ2FjeS10cnVuaworNTU4ODAgYzllM2M4MjgzOGMzMzgzM2NkNDBmNzVkODYzNDMzYzUyYmEwMmMyZSBwM3lrCis1NTg4MSA3M2I2Y2ViYzZmNzI3YTFjOWM0YWMwNGVmZDc3NzNlMTA0YjAyYmY0IGxlZ2FjeS10cnVuaworNTU4ODIgYjM1NmY4NzIwOTQxYjI1OTJhMmI3ZDJjN2U0NTI2YWQyMTUzZGEwMyBsZWdhY3ktdHJ1bmsKKzU1ODgzIDgyMTc4YTYwODJlYWZiZDE1MjE0ZmY0Njg1NGY3NTkzN2ZhN2Y5MDQgcmVsZWFzZTI1LW1haW50Cis1NTg4NCA2ZjNjMzM1ZWY3MTZmZmUwNGQ4ZDFjYWIyNjIwNDk2ZmRjY2MzZDZhIHAzeWsKKzU1ODg1IDliNmM0Njk0NmUwMmRkNWNmZjJhZDA5YzgyMDE3NTZlMDUwMWQ2YTEgbGVnYWN5LXRydW5rCis1NTg4NiA2NDQ5ODUwYzU3NTlhNTBhYzI2ZTEzNjJjODIzZTEyZTljOWI1NDExIHAzeWsKKzU1ODg3IGQxZDc5YzcxZmY2MmNhYWQ4OGE0ZTNhY2M3MGEwMWNjMTA5ZTBhYzYgbGVnYWN5LXRydW5rCis1NTg4OCA5ZDQwNWUxMzNkMGIyNDc3NmNjZjAzN2Q2MWU2YzljMGY4Nzg0NWViIHJlbGVhc2UyNS1tYWludAorNTU4ODkgOWJiZmQ4NDU2N2Q1MGE0MDlkYmNmMzIwY2ZhOWMwMmNhNWQ5OTgyNSBsZWdhY3ktdHJ1bmsKKzU1ODkwIGQwZTRhMzJmNmI3ODk1MTJlYjk0NDZiNWE5NGI1YTgxYTgxMmRmMzYgZGVjaW1hbC1icmFuY2gKKzU1ODkxIDE2MGI3MzE4YTNjYWI2ZTJlMjExNGIzZGI2NTBmMmYwOTAyMTMyNDMgcHkzay1zdHJ1bmkKKzU1ODkyIDE4MDg0NmI4NzU1Zjk4NGZiMTllZmFhNDgzMWMyYTI5YWU0NjkxNWEgcHkzay1zdHJ1bmkKKzU1ODkzIDA1NjYyN2NiMGU0MGEwZmNmZTUxYTRjYzU1NDYwZWUyNTFlN2MyNTUgcHkzay1zdHJ1bmkKKzU1ODk0IGY4M2NjOWIzMWE5NzdiZGU5NzM1YWMyZDM2NzM0YjMyM2JiMWY3NjQgcHkzay1zdHJ1bmkKKzU1ODk1IDk2ZWVmYzdhNjdhMGZjNTdlMWJkYTQ1ZWQ4YWQwYjlmMWVlZjJhMTMgcHkzay1zdHJ1bmkKKzU1ODk2IDNlNjRkMGVhYzc3NDhlYzhmNWVlNTI1OTI3MDc0MTlmNjIxY2U0Y2UgbGVnYWN5LXRydW5rCis1NTg5NyBlMGY5Mjc0MTRkZmEzOWExNjI2ODEzZWFiYjUxMjM0OTY1NTQ2ZGU3IHB5M2stc3RydW5pCis1NTg5OCA2MWZkNTQ0NGQ5NWY4MGJlMTQ0ODFmODhkNWM2MDZhMzcwZmUxY2UyIHB5M2stc3RydW5pCis1NTg5OSBmYWE2MjZkNmU2NzUxNzJkYWI1NmQxYmI0N2JmNmU2NGE2M2M1ZTZiIHB5M2stc3RydW5pCis1NTkwMCAxNzFmMGUwNzM2NzEyNmFjY2ZiYzI3ZmQ4ZDdhNWRiNjJlYzdkNjYwIHB5M2stc3RydW5pCis1NTkwMSA5NWJlNmMzYWRlNmU5Yzk1ZTNlNTAxOGRmNTQ0MmZkZjkyM2NlOGJmIGxlZ2FjeS10cnVuaworNTU5MDIgZDY3OGJhMDE3N2RhZmExZDIxMWNhNWMyNmYxNzFhZjYzZTBmZWFmNCBweTNrLXN0cnVuaQorNTU5MDMgMzkxMDUzM2I2NmM3YWQ0ODM4N2YzODZlYzVjZTFlNTE0ZDZmOGQ3ZCBweTNrLXN0cnVuaQorNTU5MDQgM2MzZjYxNWVkY2ZmZjdhMDViOTVlZTA4ODYyZThiNjU3ZDJkODljZCBweTNrLXN0cnVuaQorNTU5MDUgYzYzMGUzYTY4ODgzZGMzNDkwNDU0ZWE3YzJlMzhjY2ZiNTQwZjZhNSBwM3lrCis1NTkwNiA1N2MzNDQxNDk3MjdmMmU0ZjkxY2VlYmU5MmU2MjkyMTIxYTRlNzA3IHAzeWsKKzU1OTA3IDAyZDNlZDJjYzM0NzU5MDAyMmMwOGE3MjgzZjc1NTdmMjc2YWY1OTAgcDN5aworNTU5MDggMTkwZTJmMDY5YjE4MTgwMmE2MzEwYzFiY2VkZDAwNzIwZGU2N2MxNCBwM3lrCis1NTkxMCA1ZTE0Njk2ODY4Zjk3MTM5ZjYyOTRiMTA0MTllODNiMTZmZWFjYzY5IHAzeWsKKzU1OTExIDZmNzIyMDhjNjQzYjVlNDkwMWFiMTI0ZTU3ZTgwYzVjYmM2Y2E4ZTQgcDN5aworNTU5MTIgNWMyNmZlMDdkZWRmNWQ4Njg1YmMxMzgxMzUwZTA2NDk5MmEyZGUwYiBwM3lrCis1NTkxMyA3YmY4MzYwOTgwZjFmM2MxODEyNDM4ZTU3MWQxOGQwYTk4ZTE1YzkwIHAzeWsKKzU1OTE0IDhkYjA2OTY3NjJiNGYxN2Q3M2NjNmFlYjRhOTYzY2JkOWM5M2M5YzUgcDN5aworNTU5MTUgY2E2OTNmNGZkMDVkMGUyOWIwODA4MzNkMGM2M2E0NTNlODhlODUxMiBweTNrLXN0cnVuaQorNTU5MTYgODgxMjE2MmYwZjgyYTY5OGMxMTY1MTc2NGU3MDA2MTI2YTU3MThlZSBweTNrLXN0cnVuaQorNTU5MTcgODgxYWIxZDQxN2ViZTNmZWRiNDdiOGYzYjhjZTRjMjBhNWY5OTE5NSBweTNrLXN0cnVuaQorNTU5MTggODAyYzg0Zjk5YWFkMTViNjYwYjRlZjUwOTMzMmE5NDJkMmU4MDNjYSBweTNrLXN0cnVuaQorNTU5MTkgMDYzNTMwZmNjMzJlOWUxNDVjZWYyY2EzM2MzNDY2ZjkzZmM1MGVhMCBweTNrLXN0cnVuaQorNTU5MjAgNmQ2NDcyMWVjZDI2OGNlMTVlMWU3ZmM2ODc0N2M5NjcwMWI4Y2FiNiBweTNrLXN0cnVuaQorNTU5MjEgM2ZhYThjODA5NzAyNmJlNWYxYzBkNjA0MGU5NWEwMjc3N2ZhYjgxMyBweTNrLXN0cnVuaQorNTU5MjMgYTk5YTk2YjViM2Y1Y2MxNjI3N2NkYzRmNTBkOTE2NGMwOTcxYzBiNyBwM3lrCis1NTkyNCAxNzJkY2U1ZmFiYTFkYmFhNTQ3MmY4MDFkNWVlNDNlZDc2NTBiZWI5IHAzeWsKKzU1OTI1IDM0NzNhNjg1ZTVlN2Y4ZTQ0ZTliNTM2YWZmMjg5OWMzOGZiMTcwNDIgcHkzay1zdHJ1bmkKKzU1OTI2IGFmMjYwODAwNDAyMWQ2ZWRiMjA3ZTRmNWQxOTUyZDE4ZjljZmZjY2YgbGVnYWN5LXRydW5rCis1NTkyNyAwNDU5Yjg4ZTE0YjQxNDgzNzI0NDMwNjJkYzAzZGJhMDAzOTg5NjJkIGxlZ2FjeS10cnVuaworNTU5MjggYmE1ZDFhMzk3N2U5M2QxMGRlMjk3OWU4YmJkMDVhZmMzODlhZTQ0OSBweTNrLXN0cnVuaQorNTU5MjkgMGJkNzU5MTZlYzU4MTkxMmNhMGQzZTNkYjc2YWM5MDliNTJiYTU4ZiBsZWdhY3ktdHJ1bmsKKzU1OTMwIGQwY2ZmZjg5MzBlNTVhZWU3MGVhMTM4ZTViZjhhMDdiZjU5ZDEwOTAgbGVnYWN5LXRydW5rCis1NTkzMSBkYzdhODJjN2NlOWVjYjU4NWMyOGMwZDU4YjhkZjJmMWRlYzUxNDg2IGxlZ2FjeS10cnVuaworNTU5MzIgYmM5MGZjOWI3MGI3NjIzOTdhMWY4NGE0NTQ2NGJjYWFmYjgwOGM4YiBweTNrLXN0cnVuaQorNTU5MzMgNDg3NzAwODA3NGE5MWI4MDQ0OTA0Y2U1NDM1NmU0NWI1ZDFmY2JhOSBweTNrLXN0cnVuaQorNTU5MzQgNjU3ZmU3OWE2ZGZlYmIzYTUwNzZmZWI5ZDczM2ZkZjEwYjgyMzdlNiBsZWdhY3ktdHJ1bmsKKzU1OTM1IGU4YjIwNjBjY2I1OWM3YWI1MDlhMDhmNWJmYjlhYWIzMzc4ODFiZDggcHkzay1zdHJ1bmkKKzU1OTM2IDQ1YmI5N2E0ZThiNjcxMTc4YjY1M2QwMTE1MGJiYmZhNmE4ZmVlMWMgcHkzay1zdHJ1bmkKKzU1OTM3IDRmYjg1ZTZmODJlNWUyZjAzMjJjNjViMjI3NWY2YjM0NjA1ZDFhY2YgbGVnYWN5LXRydW5rCis1NTkzOCBlOWZiMDZiNDQ0NmUwZTllOTRlOTY0YzVjYmM2ZjI0YTFhOGU2OTA3IGxlZ2FjeS10cnVuaworNTU5MzkgNTYwNTcxOWJlZWUzY2FmNTM4M2NjNWY1OGIwOGIxNzVjZDA0N2M2YyBwM3lrCis1NTk0MyA4MjUwNDFmYzhlMmMxZWQ0YTNiZmYxNzY0MDU4Yjg1M2VmZGY4NDE5IHB5M2stc3RydW5pCis1NTk0NCBjZTYzYTVkY2IwYWYxMzQxNWY5YmZhNDc1NTFjYTQ4Nzg5Y2IwMjVmIHB5M2stc3RydW5pCis1NTk0NSBmODMzYjQzYzI3NTY4OWViMjQ0ZTZiZDFkNDA4NTI1NjFmMGU4Y2U4IHB5M2stc3RydW5pCis1NTk0NiBmYmFiZGIwZDdkZDIyYzRhNjE2NzUxZTg3ZTkxNzBkMzcwY2ZhYTAxIHB5M2stc3RydW5pCis1NTk0NyA4Y2ExZDNhN2Y0ZjBmOWRmN2U4NDI5MTJhZTc3ODg1NWY5MzYzYTkwIHB5M2stc3RydW5pCis1NTk0OCBkZTg4MDM4MTY1NGFmNmY3MjBlZmQ0MzMzMTBiYTE1MzllNzg1ZjYzIGxlZ2FjeS10cnVuaworNTU5NDkgMDMxOGEwZjU0NTIwZTQyNzFhOThjMWI3OTAxNmQxNzI3YTliZDAyZSByZWxlYXNlMjUtbWFpbnQKKzU1OTU0IDYwYmUyNzYxMDU3YmZkZDNlNDMxOGNhNTAzYWU5NGRjODk2ZDk2MGQgcDN5aworNTU5NTYgYjUzOTEyMTRkZjM1ZGVlN2U2NWY2OWY5YTRjNDhhNjBlMTUxMzgxMiBsZWdhY3ktdHJ1bmsKKzU1OTU3IDNkOWUwZWZjYTVkMzUyOTY0M2RiYWM5ZGQ3NzBmMzJhNTQ0ODNmOGEgbGVnYWN5LXRydW5rCis1NTk1OCA1MGJlYmVkYzYxNGVkNTRkNTQ0MzljNWJmNjJlMDgzY2Q1YTFlMjE2IGxlZ2FjeS10cnVuaworNTU5NTkgOWUxMTRiMWZkOTRlODM4MDhmZjUwODIwY2Y0YTg5ZGFkMzcxMjZjMiBwM3lrCis1NTk2MCAwNWYxZmQzMTM0NGRkOGJlNjgwOGE0ZDBlZTI5ZWZmZTEyZTkyMzg0IHB5M2stc3RydW5pCis1NTk2MSBmZmIxYWU3MjMzYTIyOTk4ZjE5OTFhNTBhMzhjZTRiODVmN2RhOTQxIHB5M2stc3RydW5pCis1NTk2MiAzNzE4OWUzNzVlYzc5NmFiMTYwN2M1ZDNmOTgxOTMzY2E3NmUwMDlkIGxlZ2FjeS10cnVuaworNTU5NjMgMjI5YzI4Y2I5YWZiMjMyOWMwZjU1N2JhZGJkNWFmMDhiMzQ2MmQ3MyBweTNrLXN0cnVuaQorNTU5NjQgNTM2OThmOWE0ZWI3NmU1NDhiMmEwYjY3NmNhYTc3ODUzZDZkMGIwZSBweTNrLXN0cnVuaQorNTU5NjUgNTY3NWY2YzNmZjgzZDFmMzA3ZjEyOWYwMmZkMGNhZDBmOGE4YWY3ZCBweTNrLXN0cnVuaQorNTU5NjYgOTczOTkyYTc0NDBhMWNjNTgyMTA4NTI1OGNjNjYzNmVkMjkyYWMzNyBweTNrLXN0cnVuaQorNTU5NjcgYjdlNTQ5ODU3MzIxNTk3YmE5ZDQ3ZDM1MmUzN2NjNGJkYTk0NjU1OSBweTNrLXN0cnVuaQorNTU5NjggMGUwMTBkYjEyMmM3MWEyZTIzYzYyZTA1MGFlMmRlZmNkYTVjOTliMCBweTNrLXN0cnVuaQorNTU5NjkgODY5MzdiMGNkNTZhNmMwYWFiOTkwMzQzNmYxNzU3OTU0ODVkNmEyZCBweTNrLXN0cnVuaQorNTU5NzAgNzJmYzdkMDI5ZDNkMmIzYzFkNmYxMDgzZjY5NDJiZmE2Zjc0MDY0MCBweTNrLXN0cnVuaQorNTU5NzEgZDE3YTI3MjQ3OTg2MzAyNjVhZDAzNTRkOTY0NjQ3NjBiZDk3NjJhNiBweTNrLXN0cnVuaQorNTU5NzIgMzY1NjdmZTAyZWE1ZDExMTRkMTNhYWU1MzdmOTVkNDcwYTExNzMyZiBjcHlfbWVyZ2UKKzU1OTczIDQ5N2ZhZGUxZjg3MzQ4MjQ2YWE0MDZkN2M0ZTgzNGM5YzcyNmZiNzcgY3B5X21lcmdlCis1NTk3NCAyY2Y3Y2U0MWVjNjAzNTliMjljMGE5N2FlN2QwZWZlMzEwNTUwODg0IGNweV9tZXJnZQorNTU5NzUgZmQ4ZGQ3NDQ3MGY5NTkwNDdlZjkzNGE5OWQ1ZjAzNDU0MjU5OTU3OCBsZWdhY3ktdHJ1bmsKKzU1OTc2IDQ0YjQ0YjBhOWZlMjU3Yzc0OGY5Mzc1MWQ1NzQwMGNjYjRlYWVjMGIgcmVsZWFzZTI1LW1haW50Cis1NTk3NyAyNzFmNjg2ZjYyMTgxMWRjYzYzMjgyMzQ5MzViNDEwNjhjZTk4OWE0IGNweV9tZXJnZQorNTU5NzggZjY1NjcyYjhlN2QxZmVlOTQ3ZTZmYjkxYTg1YzkyMzMyM2MyNDlmZCBweTNrLXN0cnVuaQorNTU5ODQgODVjNDQ2ZjRiMTk2MjJjYzg4YzhhN2FmYjQ4ZTg5MTQzMjU1NTg1YSBsZWdhY3ktdHJ1bmsKKzU1OTg1IDRmNmNlOThiMDYwZDFmYzZjOTQ1NmNiZDZmNTRmMWE2NWViNGExZDggcDN5aworNTU5ODYgMjQ2MzI0YjM5ODk2YjEzMGJkNzJlZDE4OGM1OWE0OWE5ZjdmNGYwYyBweTNrLXN0cnVuaQorNTU5ODcgNTgzOGJlYzdjMTE1OGFlMzAwNTc2NWU2MDdlOTg3ZDNiMDRlNDljNCBweTNrLXN0cnVuaQorNTU5OTEgNjcyN2NjOWVkMDlmZjFmNWIwNWRiMzE2YjcwNDk0OWQ5ZmM4YmMzNiBweTNrLXN0cnVuaQorNTU5OTUgNDg3NzQ3ZDkxMGM3NjJjMDJlYTNkZTdhZmQ2ZDM4ZmUxOTQyOTI2YiByZWxlYXNlMjUtbWFpbnQKKzU1OTk2IGQ2ZDFlODZhZDQ2YzFlOTBkN2U4ZTMxNDcwZmE0ZTgyNWEwNTRjOWUgY3B5X21lcmdlCis1NjAwMSBlZDZjODJkYTFhNmNlZWIxZDk1ZDE4NzljZDA0MTNkMWZiNjI1OGIzIGxlZ2FjeS10cnVuaworNTYwMDIgOWJhOTkyZjY0ZTk1N2YwNzg2YzA1ODQ0NjA1ZDJhM2FiNWYzYmNhNiBjcHlfbWVyZ2UKKzU2MDAzIGU0ZTZhNGQ3YzE2ZTk1OGNlNDkxNDAyNTM5MWM5MWI4Y2UyMmI5NTUgcDN5aworNTYwMDQgN2Q3YzQ4MDU2M2UyMWNjZmRjMDViOGE3ZWYxODM1NDBlYTNjNThiZiBwM3lrCis1NjAwNSA4ZTg2MDk0MzJlNTZjODkxZmEzYTgxYjU3NTM0YjQ4YjU3YTg1MDhmIGxlZ2FjeS10cnVuaworNTYwMDYgY2VkOGRiNjE4ZTViNmJlYTk1OTk2ODE0ODY0NzRmMTI0YzkwYWRlZCBsZWdhY3ktdHJ1bmsKKzU2MDA3IDQxZDQ1YzIyZjE0Nzg2MWQyODk5NWVjNzVmY2M4MGQwZTI4YTlhOTUgcmVsZWFzZTI1LW1haW50Cis1NjAwOSA4NTNiODQwOTMxNTE0NmY0MTMyNDNmMGVjZTk2NGEwMzQ2NDUyMTU3IGxlZ2FjeS10cnVuaworNTYwMTAgNTZlYzM0N2RhOGU0MmY0ZDY0OGY3NTlhMmU1YTBiMjI2ODA2NTNhZCByZWxlYXNlMjUtbWFpbnQKKzU2MDExIGE5YWVjYmY1YjEzZjAyM2M3ZGM5ODcyMjMzMzg4YjQ2NTkyMDIwNDAgbGVnYWN5LXRydW5rCis1NjAxMiAwMmRhNjMwNThkNmIxNGU5YTEwNjQ0Mjk4OTZlYmJhNDZmZGI1ZDk4IGxlZ2FjeS10cnVuaworNTYwMTMgNTk0OTdlYzI4Y2FhYmUxMzQyYTY0NTEzMmEzNzAxNWJlNDFkMjNjYSBwM3lrCis1NjAxNCAwODA1MTU3NzM0ZjhkOWRjMjBmOGM3M2Q5NDk1NGZiMzUxMzA0MjUzIHAzeWsKKzU2MDE1IDI1OWRlMzg3NDQyMDYwMjIyNDY3OTA0MmU0ODY5MjhjM2E3YzljMDAgcDN5aworNTYwMTYgODI4MjNlMTNiNjZjZDllNjBiMGE2YWIyY2E0OThhYTZkODMwOGUxNCBwM3lrCis1NjAxNyAwZTIwNDM2MjMyOWVkZTcyOTU0ZTAzZTk3MzA2NDY4NTJlZjkyZWFlIHAzeWsKKzU2MDE4IGI0NTY1ZTA5NjEzMWYxZDFkZjA0MTc5ODU3ZjcwMzhjMjU2YjQ5OWIgcDN5aworNTYwMTkgYjJlNzMzNmZlYjgyNmE3NmRiYWQ5NmE4MTZmYWU0YmRiZDYzNmEzNiBsZWdhY3ktdHJ1bmsKKzU2MDIwIGU0ZjY0OWM0ZjQ1NzI1ZWRmNmQ5YmJkYzZlNjYxOGZiYzcwMzk2NjYgcHkzay1zdHJ1bmkKKzU2MDIxIDMyZmUyYjllOWYxMTE0MzNjNzc4ODIxMTE4OWUwMDljNmMxMTkzODMgcHkzay1zdHJ1bmkKKzU2MDIyIGViYzg3Yjk0ZTZlYWI1ZDEwMzgwMzA5OTU4M2JiYmMzMjIzODNmZTYgcHkzay1zdHJ1bmkKKzU2MDIzIGE0YWU2MjY1M2E1Y2IxNjljZGUwZjVhZWZkNTBiYTE0YmUwYWM3MTEgbGVnYWN5LXRydW5rCis1NjAzNyA3Yzg5MmU3M2U4ZTQ5ZjUwNTU4YTI2MDkxZjIxNjlhYWY5YjRjNmU1IHAzeWsKKzU2MDM4IGFhYjkwODBhYzRjN2VhMzY5ZTJkNzhhMGQxNjRhYTBlZjk1NTM2ZDAgbGVnYWN5LXRydW5rCis1NjAzOSA2NmM4MzQ3YTY0ZGRhZWQwNWMxZGQ4NTg2ODA2YjdlODY2ODk1ODFjIHJlbGVhc2UyNS1tYWludAorNTYwNDAgMDRhNDE4NWJkNGQzY2MxNjUzNWQwNmM5MWQ5NjVmNWE2ZTM0YjU3ZCBsZWdhY3ktdHJ1bmsKKzU2MDQxIDY3ZjcwOTdjMzRmMzQ5OTgyODA1MWZhYzZlZDMyNDQ5M2QwNTE3ZTYgcmVsZWFzZTI1LW1haW50Cis1NjA0MyA3MGEwODMxZmVkYTY5MGU0NGE1Mjk4MTBmMjhiZjI5OGNiY2ViMzA4IHB5M2stc3RydW5pCis1NjA0NCA0ZGIwYTBjYzU3YWJlZTk1NDExY2UwZDE5OTM3NGNlZjJmMjhkNDJkIHB5M2stc3RydW5pCis1NjA0NSAwNDEzOWUzMGU2NGRhOTUxZWY3ZmQ1ODhmM2ZhMjdiNzcwYzA2NjlkIGRlY2ltYWwtYnJhbmNoCis1NjA0NiA4NDI1MzM0NzdjZWE1NDQ0OWViMTc3N2M2MjU2MjExZjU1MTQyNTI2IHB5M2stc3RydW5pCis1NjA0NyAxZjA2ZDVlZTQwYmQ3ZjJjMWFjODdhMzAxZjZiODk1MjNhMDVlMjk5IHB5M2stc3RydW5pCis1NjA0OCA2NzEwZjQ1M2NmNGE4YTJlOTU3NTliN2JmM2ZlODYyNzdkMjBmZjg1IHB5M2stc3RydW5pCis1NjA0OSAzODNjODkwN2JlYTA0NDgwMzFkZmI4NGY3Y2U1MTQzZWY4ZTQyN2M2IHB5M2stc3RydW5pCis1NjA1OCA2YjMyNWIwNjVhZWRhZWYzMWRhY2U1YmE5NmU3N2NkM2MxYTE5MGZlIGJjYW5ub24tb2JqY2FwCis1NjA2MCAzOWVhYTljMDI0NmU0YTJiMjA4MzhkNDRjNmVmMmZiODkwYzliNmJiIHAzeWsKKzU2MDY5IGUxM2Q1YjEwNTNlZjgzMTlmZTZmMWUyMDg3NjNkODQyZTIzNjZkMDkgcDN5aworNTYwNzAgYmU5ZGUwNWJiODg5Y2MyYjlkMTFlZDA1Nzg5NTgzNDZlYWY4OGI4MCBwM3lrCis1NjA3MSA5NTkyNzY4NDQ3NmJlMTZiZGIzZmEwN2VmNTJlNGE3MWRiODM5YjUwIHAzeWsKKzU2MDcyIGY5N2I2NmU5YWE4ZjBkN2I2NmY2YWQyYzBmYjRhNmYyZWQ5Mzk2YjcgZGVjaW1hbC1icmFuY2gKKzU2MDczIDQ1OTAxMjllNGMyYjVkZjhkNGQyNjdkYTg5ZTJkYzZkMDMxNzU0ZjYgcHkzay1zdHJ1bmkKKzU2MDc0IDc5YzI2NTYwNTZmNjc1ZWFhODUwYTI1YjRlMDE3Y2U1MmRmN2Q0OTMgcHkzay1zdHJ1bmkKKzU2MDc1IDhmYzkzMjE1YzBjY2ZiYjA0MDg4MTRjYTczZmZlZjMwM2ZiODZkYjcgcHkzay1zdHJ1bmkKKzU2MDc4IGMyOTFkMmY2ZDAxN2YyNTE1ZmNkNzE5NGNkYzc1ZTkwY2JmNDI0YTcgY3B5X21lcmdlCis1NjA3OSBiOWJmN2M3NjBhMTAyNWJiYWVjN2MyOTE0NDMyOGFkMGRkZmU3MjlkIGNweV9tZXJnZQorNTYwODAgOWI1NmM5MTYyNTM0NzRhYTc2YjE0YjdmNjhhM2I5OTRlMGU3ZTBlZiBjcHlfbWVyZ2UKKzU2MDgzIGU4NzZmNjQzOWRjN2JjNWMyYjY2NWVkZjg2OGRlNDRiNTdjZWE2NDggY3B5X21lcmdlCis1NjA4NCA0MWU4YWQyYzliYTk5MWM5NWEwMjEzOTRjOWRjNWJmMjg0MzY5ZDMyIGxlZ2FjeS10cnVuaworNTYwODUgZDgzN2I1ODQ2ZDQxNGZjZDgwZjY5ZjUxMzhmYzBmNjM4YjAxMTYzZSByZWxlYXNlMjUtbWFpbnQKKzU2MDg5IDlhNmFjOWE3ZTNhNGZmOWZjNjkxM2EyOTI0MzEzMjJkYTY4YjY4MWQgcDN5aworNTYwOTAgZGIzMjA4NzA0YWMwYWY5ZDQ5Mzc0NGEwZGQyNjA0NWNiMTVjYzE1NyBiY2Fubm9uLW9iamNhcAorNTYwOTEgNzA1YmM3M2VlNDMzMWM4YzMwYzhjYzIzZjIwODFmMGMzOTY5YmQ2NSBsZWdhY3ktdHJ1bmsKKzU2MDkyIGIwMDc0ZmQ5MjYyMWM2NzNjMTcyYmU2MzkyYTAwMjdiZDNkYThjNDcgcmVsZWFzZTI1LW1haW50Cis1NjA5NSBiZjZlYjg4NDdhNDI0NDAyOWRiMGZkYTUzYjY4YTU4NTA5NTVhODgxIGJjYW5ub24tb2JqY2FwCis1NjA5NiAxNTkwMzFkYjhlOWYyODU3MzA3NWU1ZWE1YTZiMmM3NWYzMTlmODlhIGJjYW5ub24tb2JqY2FwCis1NjA5NyA2MzNiMDQ5NDdhYzQ2MDVjMDY0YjliZjg5YzJjMGQ3NmY5NTgxY2YxIGNweV9tZXJnZQorNTYwOTggYmIwOWVhZDA0ODQwNTNhZGE5NTU4NzA3MmQ4MTNmMmNiZjBhZmY1OSBjcHlfbWVyZ2UKKzU2MTAwIGEyMDAyNDBkZWE4YWI3NjM5ZTViY2FlNDU2MjhkODlmZTAwMWU4NWIgYmNhbm5vbi1vYmpjYXAKKzU2MTAxIDNmNTg5YzU2NDQyNmQ4N2MxZDA1NzJkMzAyZGU2MDk1MjM1MWJlYjUgYmNhbm5vbi1vYmpjYXAKKzU2MTExIDdhMTE4YWMxNDlhMDY2NzAwM2E1ZWZmM2RjMjZmMzlhZTg2ZWYzZDYgYmNhbm5vbi1vYmpjYXAKKzU2MTEyIDUwZDMyNjQ3YjAzNTY1MmFiMjc1MmI3MzIwMDg2ZDI3ZWMyYzVlZmYgYmNhbm5vbi1vYmpjYXAKKzU2MTIzIDVmMTQ4ZjZlMGE0Njc5OGVhZWIyNTVkYmQyOGQxMDA3YTFhMTQxMjkgY3B5X21lcmdlCis1NjEyNCAzMTRhZGMzYjdiYjQ3OTk4YjlkZTY5M2QxMjZhNDM2YWZjZjQxNmVjIHAzeWsKKzU2MTI1IDdmZjM1YWQ0NjZlYzU1ZThkYjNiZjMzYzcwYzljN2Y2MWE4NjAzN2MgcHkzay1zdHJ1bmkKKzU2MTI2IDg2M2VkN2NkNDVkYzhlZDU2NjFkMzk3MWNmMGRhNzYyZDA3MGEwZGIgcHkzay1zdHJ1bmkKKzU2MTI3IDQxNjc2ODBiM2FlMjRmM2Y2MmMxMDliYzRkZjZmMmViMzJiNjE0YzQgcDN5aworNTYxMjggYTg1ODJlMjU3NDhiNzI5NTdmY2Q0N2QyOWRhMTQzYmY0MmU2YjYzMSBweTNrLXN0cnVuaQorNTYxMjkgZGE0Y2M2NzY3M2E4NTFiNjg5NjExN2MyOWEwNDAwMjkyZWFhMzM0ZCBsZWdhY3ktdHJ1bmsKKzU2MTMwIGM3NmE5NDMyMmNjYzg4Y2ZjNDQxOTdhZmJkZjUyNjc4ZWI4ZTE4YTAgcmVsZWFzZTI1LW1haW50Cis1NjEzNCA3OGJjMDc4YzczNTBlMmY5ZmY2MjFhZjQzMzYwZTE2MGYzMWFkODg2IHB5M2stc3RydW5pCis1NjEzNSA4Mzc1MzU5OTQyMGRjOTM4YjJjYjVlMDUxNDc0MGQxNTEwYWQ5ZGNmIHAzeWsKKzU2MTM2IDI4OTljZjhjYTU3MjVmMGEwNDE5OWQyOGFlNmIzZDliZTMyYzUwMGEgcDN5aworNTYxMzcgZGNjZjE0ZmUwMGVjZDNjYzFlNjQ3YWUxMjMxMGQ3MjkzMjBmNmFjMCBsZWdhY3ktdHJ1bmsKKzU2MTM4IDkwODU4MGI5YzhlMTBiZjJiNDMzY2JlOWZjNGNjMTBlYzdmNzBjODEgcmVsZWFzZTI1LW1haW50Cis1NjEzOSBmNTM1NzEyNGNlZmU1NDIxMmQyMDQyZGQ1NzNhZGJjN2NiMmQ1ODU3IHAzeWsKKzU2MTQwIDFmN2I2NmE5ZmZiMGQyNzJiMTdiMGQ5ZDYwOTBhYjdkODZhODEzODAgcHkzay1zdHJ1bmkKKzU2MTQxIGUzYmNiOTg0YjI0YzhlOWQ5MTlhNGVhNjY5YjdmMjE1NTkxYmUzOGYgYmNhbm5vbi1vYmpjYXAKKzU2MTQyIGQ0YzRmODljNzc3ZDQ1MzlhZGVlZWIzY2JjMDA4MDEyODk3MWMyZDYgcDN5aworNTYxNDMgNDA3ZDE3NGRiNmRlYzdmZjc3YTRhN2IwNjkzNDYzYjc0N2EyZDAxYiBsZWdhY3ktdHJ1bmsKKzU2MTQ0IGMzZWEyNzc5YzYzNThhNTI1MzVhMmNlNjQ2Mjc2N2JmOGMwNmEzZmMgcmVsZWFzZTI1LW1haW50Cis1NjE0NyA2MDRiZmE2M2MxMTM4OWZkYTkzYmFiN2RmMTQ0ZmU5OThlMDFiZTU3IHAzeWsKKzU2MTQ4IDIxMzc0MzY5Mzc1YzE2NTk4ZjcxMTViZmMzYzIwYmU4YmQ0NGM4N2QgY3B5X21lcmdlCis1NjE0OSBhYjc0YmRiZjZkYWFmZGI3ZTFjZjhmNzUxMDY3ZjdkMzhhZWM3M2FiIGNweV9tZXJnZQorNTYxNTAgZWIyZDUyNTg2MDE3NTg3OWZhZDU5NTY1ZjQyZmNjODAxMzY5ZjdlNyBjcHlfbWVyZ2UKKzU2MTUxIGZlYjI3NmMwODkxNzFjOGRmMjgzYTFkMWQ4YmVhNmJiNWJlN2M3ZTUgY3B5X21lcmdlCis1NjE1MiBjMmNjMTIwM2JkNjljOTZlZDk4MjNiM2FiYmUzOTJjNmE5ZjA0ZDg4IGNweV9tZXJnZQorNTYxNTMgODE3Y2JmZjlmYmViNGRiNDQ1ZWE0MjQ1MjQ4OTRiZjYyNTQwMzBmNCBjcHlfbWVyZ2UKKzU2MTU0IDhhMTdlNGM0MmEzNWZiOTY5YjlhN2U0NjRmNWIwNDg5ZWMwZmY1NzQgY3B5X21lcmdlCis1NjE1NSA1YjFlNzRmYzQyYjgxZmI1MDZjMTU0NTM3OTA5YTFjZDQwZjljMGEyIHAzeWsKKzU2MTU3IGE1M2U0OGJlNmRmOTU1MmM2MmZkNjEzMDQ3YzFjNjdjOTcxZDQ1OTAgcHkzay1zdHJ1bmkKKzU2MTU4IDBkYzYyNjQ3YWZmMGNjZGM3OTU0MWJiNDlhNjk3MWQ4MjkwYjZlOTQgcHkzay1zdHJ1bmkKKzU2MTU5IGFlODcwMjI4ZDVmMzM0ZTM5MTcyNzU2M2RhYzk4ZWNkYzA2OGFiMTMgcHkzay1zdHJ1bmkKKzU2MTYwIDMxZjQ3N2IwODhjOWY2MjNiYmZhMWUzMWMyZTAzYzMzMDNmNTFjMzAgY3B5X21lcmdlCis1NjE2MSA4ZWVhYTk5MjM5MDFmMzg4NDUyMjA5NzdmZGViNzExNzM1ZTlmMzU5IHB5M2stc3RydW5pCis1NjE2MiAwMTAyZjVlNTM3MDM5ZjYyNjg2NDY3N2Y4ZWUyMGU5N2NlNDNmNzcyIHB5M2stc3RydW5pCis1NjE2NCA1MTg3ZWQ2OGFiZTBiOGQzZTNlNzFhMWFkZDQ0ZTM2ODI3NWFiZDY3IHB5M2stc3RydW5pCis1NjE2NSA4YTk0Y2U1MDIyMDliMDk1NWE0MWViNjI3NTE4NWQyNDExZmFjY2MyIHB5M2stc3RydW5pCis1NjE2NiBlNDc2OTk3MDQ4YTBhYjUxM2Q1N2YyMjFlZWEwMTJhYzBlODBhYzMyIHB5M2stc3RydW5pCis1NjE2NyBlNmM1ZmZhNmRjNjczODE0ZWZjOTQ4ZDgyOThkOWVhNDAxOWNlNmE0IHB5M2stc3RydW5pCis1NjE2OCA0MGE2YjkzZjllMGJlOGExMTZkYzZmNmE4YzliMWMxNGY2ZTEyNzBjIHB5M2stc3RydW5pCis1NjE2OSAzZjc4Mjc4MTAyMGJlMjJmOTUxYjMyY2Y0MmQ2YTA4MjE0NzZmY2U2IGNweV9tZXJnZQorNTYxNzAgYjBlYWJhOGI5ZjAyOTM1NjIzM2FlMWI3NzJiZDhmYTlhN2I0MjA3MCBsZWdhY3ktdHJ1bmsKKzU2MTczIDc5NmM3OTYyMzkzODM2NzUxYzk2MjBjZDEyNGMyYTU4Y2M0NjAxYzAgY3B5X21lcmdlCis1NjE3NCA4YjJmZWJmZGE1Zjk5YTM5ZWU3NjNhZGYzMWUwZmU4OTZiNDE4YTllIGNweV9tZXJnZQorNTYxNzUgYzQwNDRlNDdmYzFhZmVkMGU3NGY1OWZiZDRhOGQyNWI3MzBkMmQ0NSBjcHlfbWVyZ2UKKzU2MTc2IDllNWEzOTYwOWEyMDhkZDFlZDBhNDllZGY0ZGU3MDJkMjAyYjlhZGEgbGVnYWN5LXRydW5rCis1NjE3NyBkNjM2MmVkNTQ4YjBiMTcwZGM1MjNiOWZiMDMwZTk1YjAwZWJjMjNkIGxlZ2FjeS10cnVuaworNTYxODEgNzIyNGU0MjA4MWJkMzgxYmI5ODhhYzYwYjU5NDY5OTAxNWI3MTQwYSBjcHlfbWVyZ2UKKzU2MTgyIGRkODk2MDUxMjZlNTg1Y2RmZDFkN2QwNjg4ZDRiOGZjNDk0OTgxNTAgY3B5X21lcmdlCis1NjE4MyBkYmM3NTNjMDIwMDczNjJkZTcwNThjODJhYTJjZDQxZGQzZDcxMjc1IGNweV9tZXJnZQorNTYxODQgOWMwOGQ5MTY5YzFjZDQ0OTIxNDExMzEzMTEzMWMxNzgzZTc1ZjFiOSBjcHlfbWVyZ2UKKzU2MTg1IDM3NDEzZjYyMTEyMGEyOGIwNDc1Yjk2MDg5N2Q0ZDZkNDM4ZmY0MmQgY3B5X21lcmdlCis1NjE4NiAwNGUyNGI3OTIxOGFmMjg5MWQ4MjhkN2Q5NGQ0NmZlZTk5NjQ2MTBlIGNweV9tZXJnZQorNTYxOTMgZTYyZTJiODExMzZhMjJkOTY3ZmE0NzJjZDQyOGIyZGY1ZmMyOTMyNiBjcHlfbWVyZ2UKKzU2MTk0IGIyZmZjMDI4NTg1ZmIyZDBmYTg0OTQxZWY5YzQ5YTAyZTEyYjMyZjEgY3B5X21lcmdlCis1NjE5NSA0ZmE2ODM4N2I2YjM1OWU5YzA1MGU2MmQ3ZTE1ODc1MjA5MzYzYmQyIGNweV9tZXJnZQorNTYxOTYgYWEzMGIyYjA1OThlNDgwN2NiYjQ5NWRjZDViN2I4MjljNTcxMDI5OSBjcHlfbWVyZ2UKKzU2MjAyIDUzN2ZlOGRiODMzNDk4OWQwMzExNzk3NGZiNjJmMmNjMDI5NzliMWEgcDN5aworNTYyMDMgNzRkMTFkNDQyODk4NWNhODY0ZDA5Y2U4YTQzMTg2MGFmZTBiYjAzNCByZWxlYXNlMjUtbWFpbnQKKzU2MjA0IDc4MmY0YjNlNGRiMDhlMzYwZDJhMGMyZjllNWEzNjE3NzEwMTRlNTEgbGVnYWN5LXRydW5rCis1NjIwNSAyNjM4Yjk3NDkzNzE0N2I4ODE5YzZhNGNmOWZmNGIyYmJmMDA5MDMxIHJlbGVhc2UyNS1tYWludAorNTYyMDYgZWM0YjczY2IyNDQzOTQ3NjcxYjE3M2Q0OGI4NzcxYzIyOTYwMTI1MCByZWxlYXNlMjUtbWFpbnQKKzU2MjA3IGQ4OWQ5MDBjNWQ3ODJkNmYwNDFhMjIwMDgyYjFmMmZiZjIyNTE4ZWEgbGVnYWN5LXRydW5rCis1NjIwOCBiZjIyMmViZmYwZTU0NzQzYzVjNGI3YzY2YWNmYThmZGRiODU3NWYwIHB5M2stc3RydW5pCis1NjIwOSAwZWI4NDBmMmRhZmE5ZDlhMjE5ZThjNWEwZGJhMjA1NDg1OWQwZWRhIHB5M2stc3RydW5pCis1NjIxMCBhNjJlY2NiNTNmMzAxYmIzMWI0ZmJmOTZkOTNmODU4ODJiYWYyYWIwIHB5M2stc3RydW5pCis1NjIxMSBiZmY5ZWJhYmZjMTU1OTM5YzQ1MjdlYWQ4NjIxYTM1YmU2N2U4OTJjIHB5M2stc3RydW5pCis1NjIxMyAxNmU4M2JmODFkZTk4ODllYjhjZDAyYjE5MWVjOWRhMTIzOThiMmRmIHB5M2stc3RydW5pCis1NjIxNSBkZmI4ODU4YzA2NjQwZGRlNDZmZjJhZWY3ZjJmZTIzNDYxOWIwZmM0IHB5M2stc3RydW5pCis1NjIxNiA3ODIwMzI5OGI0MmI3OTQ0YjViYWNmOWVlYmFjYTZiYTFmMzE4ZmUxIHB5M2stc3RydW5pCis1NjIxNyAyOWJhNmMzOTkwOTAxZGU2OTA0ZGM1NzBjNjcyNjIxMGY1OGQwY2Y0IHB5M2stc3RydW5pCis1NjIxOCA2YjMwYmQxMzBkYzE3ZDhjMGU3ZDM0NDQwZDU5ZmRkYmYxZjlhMzg1IGNweV9tZXJnZQorNTYyMTkgZjRiOTkxOTU2NjJmZGViNWY4OTkxN2EyM2ZiNzI0YmI1MGVmYTE2YiBjcHlfbWVyZ2UKKzU2MjIwIDMzNTA2ZDEzZGQ3OTBkZGI4Yzk4NzQ1YjAzYjk0Y2FhMTc2Yjc5MTkgY3B5X21lcmdlCis1NjIyMSBkOWQ0ODJkMDM4ZDVkYjIxZDk4NTdmYzQ1ZDFlNjFiNmI1YjYxZGJiIGNweV9tZXJnZQorNTYyMjIgNDAyYTA2ZWNjNjEzMTA2ZjI5MTc0ODNkNGI1YTg5NzAxOGI5MDVmZiBjcHlfbWVyZ2UKKzU2MjI1IGYwOTc5YTg2NjcwZjQ3Yzc4ZDNkZTQxMWI0MzA5OTI4ODYyM2Q1MmMgcHkzay1zdHJ1bmkKKzU2MjI2IGUzODA0NzU1MDM4MzRiNjhjMmI0MWIzMDVkMWEyYzIwNzExMTQ1ZDkgcHkzay1zdHJ1bmkKKzU2MjMwIGFjZDFmNjQyNzA2ZjJjNzc3ODlhNDQ5MDFmOWE5MzY0ODYxZjU1NGUgcHkzay1zdHJ1bmkKKzU2MjMxIDlkMGQ4Y2FlMWNjNzNhZmIyMjU5ODhmN2JmZDk4M2YyZWFiYjYzY2MgcHkzay1zdHJ1bmkKKzU2MjMyIDNkYjAwODNmNjY4MzdkMDEyZDg2MGQ2MTI3Yzg0NThiMDYxZThiOGIgcHkzay1zdHJ1bmkKKzU2MjMzIDkxYWRlNjdhYjIzMGRjNTBjZmY4YTllZTk2ZDVkZmZmNzRmNzMxNDAgcHkzay1zdHJ1bmkKKzU2MjM0IGYwYTk2MTNmY2Q5MzNiYWNjNDU5NzUwYWE4YTEyY2U5MDgwNzdjM2UgcHkzay1zdHJ1bmkKKzU2MjM1IDhjZmRhZDIwNDY3NjM3OTcxZjhjZDU3N2JkNjY1ODAyNzI3N2NhMDIgcHkzay1zdHJ1bmkKKzU2MjM2IGRkYjkxOWRjYjQ4MjBmZjA1MjJiZmQyMDVlMTU1OWI5NTMwODc4NDQgcHkzay1zdHJ1bmkKKzU2MjM3IDhkNGI2OWUzMTU4MWJkNGQ4MTIyNmQ3MTdmMTRhODYyZTY4NGU0YWUgcHkzay1zdHJ1bmkKKzU2MjM4IGIyZGMzMTcxOGIwM2YyNjQwN2RmZDU3ZGY3MDI2ZjkyMjU2MTE0ZjEgcHkzay1zdHJ1bmkKKzU2MjM5IGY0YTFiNzZhNWE2M2QzYWE0ZDZhNDMzYTdjMzc4NTIxOTFiMWMxM2UgcHkzay1zdHJ1bmkKKzU2MjQwIDU2MjE1MDcxYzc0MmU3YjUwOWNjN2I0NmQxNjYyYmM5NjljNDE0ZTkgY3B5X21lcmdlCis1NjI0MyA5Zjk5ZWE0ZjgxZTkyZmM5MDU5NmI0MTk3YTcxY2NiODNjNTAyNWJhIHB5M2stc3RydW5pCis1NjI0NCAzNjQxYTIwNjMwZjNjOGM5MzhmMzY1MTM5Y2EyYTAwZGQ4MTgwOWNjIHB5M2stc3RydW5pCis1NjI0NSAwZTQ0NjA4MDNiNGE4MDkzNTQ3ZjI5ZDczNTFmMDA2NzlmNDk3OTRiIHB5M2stc3RydW5pCis1NjI1MCA4YjMxNjA3Y2FhMGNiMTg4OGY3N2ZkZWNiODczZGVlN2EzYmYwNDZlIHB5M2stc3RydW5pCis1NjI1MSA5YjM4NjYwNDIxZWU5YjlmZDQ1MTMwNzY1MGY1MzUzYjA5N2YxOWNhIHAzeWsKKzU2MjUyIGJmNWQwNGUwZGE0Yzc1MjI0ZDJjMzJhNmMyZTQwYjlmYjc3NDU1N2EgcHkzay1zdHJ1bmkKKzU2MjUzIDYyMjgwNjI5MDlmMzQ3ZGIwNzcyYTJlNDAwMTliNDBlNWY3NmVmY2IgcHkzay1zdHJ1bmkKKzU2MjU0IDc0N2IxNTE5YTM2Y2RmZTA2ZmVmN2NkMzk3MTM5ZmQxM2Y2ODljZDAgcHkzay1zdHJ1bmkKKzU2MjU1IDFkY2YxZjEwODYyYzAyMjA1YmQ1Y2Y0NTE2OWMwNTEyMmYzNzY0ZWQgcDN5aworNTYyNTYgZTliZmIyNGY5NmUwNjNkNTA0YTU3OGFlZDNhNGQyNTQwM2YwYzQ5ZSBwM3lrCis1NjI1NyA5MGZjZDA4MmRhMGRjYWNlODdjNWZjZDNkNDI3NmM1N2EzOWQ5MjQ3IHB5M2stc3RydW5pCis1NjI1OCA4MTkzMGVhYWU3MTU4ZmEzMDhiM2IzYTkxNzRhMTgyOGEyMWU0MmVlIHB5M2stc3RydW5pCis1NjI1OSBlODQwYTRjZmI0MWY2ZTg3NjEzMDE3MWNiMzdiOTk1ZmFjMjhhNzQyIHB5M2stc3RydW5pCis1NjI2MCA5NjNmNTBlZDJiNGY4YmM3MWI3OGI0NjcwNmI2ZWVjZDgzNDE2MDRiIHB5M2stc3RydW5pCis1NjI2MSBjNmE4YTdkZjM3ZWY2NWNkMzkwMDk5MDhjNDBkN2JmMDc2NGU1MTZkIHB5M2stc3RydW5pCis1NjI2MyA3OTA4MmNjMTRiZjE0NGIyNGEwOTk3YTZlN2JmZDFmZDU0MGUzZjQ4IHAzeWsKKzU2MjY0IDFhYzJjMWI4MDMyNDA1NGEwOGY0MjYzMWE3M2NiZWM3MmEyZjJiODUgcHkzay1zdHJ1bmkKKzU2MjY2IDA5MDU4OGExNzQ5MDMzYmQyZjUzMWQ1YzgyY2I3ODdkNTUwNGFhNWYgcHkzay1zdHJ1bmkKKzU2MjY3IDc1ZDNjYWE0NmE5MzZiMTBmNTMwOWYxMDhiMDZlYTA5ODA3Yzc4OGUgcDN5ay1ub3NsaWNlCis1NjI2OCBkZjQ3OTUwYzgzNzA4ZTliYzhjMTdjODZiNWMxZDk4NTAyOWNjYWQwIHB5M2stc3RydW5pCis1NjI2OSBiZDRlMzcyZjQ3OTg1NDA0Njc0ZDVlODg5ZTQ1ZTZlMTRiZmRiOGY5IHB5M2stc3RydW5pCis1NjI3MCBhMzU1MzU5ZTQ3YjQ1ODcxYTY2Y2ExNTZkMmExYzZkYzljODNmNWRhIHB5M2stc3RydW5pCis1NjI3MSA1YjM5MzFhZTI2MmZjN2RlMDc0ZGQyMGY3MTQ5ZjQ1ZjQxMTUyYjg2IHAzeWstbm9zbGljZQorNTYyNzIgYTgzOGI4YzY0MTAzNjNjOGZiNTQ0MDcyMWY2MjNjMzkzNjJhODE1MiBweTNrLXN0cnVuaQorNTYyNzMgNTE2ZGM3MjNjODllYmI2OTZjN2Q3ODUxNzBiNDk1MGQzYTNhYjAwYSBweTNrLXN0cnVuaQorNTYyNzQgM2JlZmI1YWRiMzRlYmU2Y2FlYmI2OTY2ZDc0Mjg4MWE4OTJlOTM2MSBwM3lrCis1NjI3OSBjMWE2MGI0YjgzZDM5YjI4ZDM1ZTQ3MjI3MzAwMmU2NzU1N2E1Y2FkIHB5M2stc3RydW5pCis1NjI4MCAwOWJmMzU3OTNiY2RkNTkzNjkzNjljZmI3ZjM5YWM1MmRlY2JhOWQ0IGxlZ2FjeS10cnVuaworNTYyODEgN2EyNGZlNzBjMTZkYmI0ZGY2MzAxYTY3MDQ2Y2IwYzQ5MDAyYmY5ZiByZWxlYXNlMjUtbWFpbnQKKzU2MjgyIDg1NGNjNGQ1YTMzZDhhZmRjN2NkYjNhZmRlMjZlNmM3NjEyZWJkNTMgcHkzay1zdHJ1bmkKKzU2MjgzIGJiYzA5NGMzMjhlZmQ5MWQ4ZTY4NDE0Zjg4MGVlZDZiOGM4YzBiMzUgcHkzay1zdHJ1bmkKKzU2Mjg0IGU1Y2NmZWIxMWNkNjcxMTk5MTQwYjQwMzE4OWMzYzNkM2M1NTFlMjggcHkzay1zdHJ1bmkKKzU2Mjg1IDliNzJmMDYzNjk4NjRhMDNiYTliZjJjZDBhZjBkOWVjMDA1ZjdiNmMgcHkzay1zdHJ1bmkKKzU2Mjg2IGQxYzdjMjU0MzkwM2I4ZDcyNWY4YWY0ODc1OTNiN2E0YTE4NzFhYjggcHkzay1zdHJ1bmkKKzU2Mjg3IDdjNmE3OTViNTI1YWNmNDhmMGMzYmU4YzE4ZmM0MDA5Y2M2OTM5MDEgcHkzay1zdHJ1bmkKKzU2Mjg4IGNhM2NmYjM0ZTNjMjYzNTk3NWQ1MWNlMTg4NmE4ZTM3MjcxMmU1YWYgcHkzay1zdHJ1bmkKKzU2Mjg5IDIzZjFkMmMzNmQxMmNmMzg1MmUzOGI1NDg5NzBiOWY5N2FmZmQyYzQgcDN5ay1ub3NsaWNlCis1NjI5MCBhNWMyMzQyMmFmNmM2OGJhNWZmNGU2Y2E0NDM1MGU4MzdhYjA1YTkwIHB5M2stc3RydW5pCis1NjI5MSBjYTA2NWI1MWE2MTY2ZDU3M2ZhMDE4N2NlYjc2MGYxMDQ3MWM2NjhhIHAzeWstbm9zbGljZQorNTYyOTIgZDVjZjE5MTY5OTA0NjI3M2I3MDI3YjExN2VjM2Y1ODg5NmMxNTU5YSBweTNrLXN0cnVuaQorNTYyOTMgMjU1YmQ0M2NhNzhmNzkzNzlmNjJhNDgwNGU1ZTM2YTM0NGRlNzdlNyBsZWdhY3ktdHJ1bmsKKzU2Mjk0IDIzYWM4ZDE0MGE4YTJlOTVjNDg3OWRkZGRkMzI2ZDdlNmZhOGYxNDYgcmVsZWFzZTI1LW1haW50Cis1NjI5NSAxOTZlNWM2MzIzYTM2YjhmZWIyOTk2MDUyM2UzYTlmNzlkYTU5Mjc3IHB5M2stc3RydW5pCis1NjI5NiA2MzE5YWRiMDA0MWQ2ZWVmZWMyMGJjYzYyZjNkMGU0NmZiYTBmYWM3IGxlZ2FjeS10cnVuaworNTYyOTcgOGI4MTU4MGFkMGMxMDYwNzRlYTY3ZDViM2Q3ODM4NjUyODIxOTNlMSByZWxlYXNlMjUtbWFpbnQKKzU2Mjk4IDg2ZDFkYmZjNTgzMzFiNjIwNTMzYmQ0MmRmMjA1NmZiOTRmNTMyNTAgbGVnYWN5LXRydW5rCis1NjI5OSBiNDNlNWYzMzQ4YWVhOTUyYWM0YzkyNGJmNWZiN2JiNWY3YWU1YjU3IHJlbGVhc2UyNS1tYWludAorNTYzMDAgMjkzYjgzZjlkYTlmZGRlNjc2ZGU5NGFhNjVkZDQzNjRmOTQ5M2U3NCBwM3lrLW5vc2xpY2UKKzU2MzAxIDdjMzc4NGJiZmMwOWFlOGJiMDcxM2I4YzIyM2I5ZDM0ODQyYjE5MTQgcHkzay1zdHJ1bmkKKzU2MzAyIDI0OGEyMDY5OTBhZTA5YjliZWQxZDlkOGYzNzQ4MzIzYjJmNTEwZmUgbGVnYWN5LXRydW5rCis1NjMwMyAxMGU5YzkwZWFmMDNlNmRmYzkzNzhjN2IyY2I3OGVmMTg2YTQ2OTBmIHJlbGVhc2UyNS1tYWludAorNTYzMDQgMmMzM2RmMDljMWM3MWY1OGQyMTM2YjcyMTg2MjQwNGEyNWQ3NjRiYSBsZWdhY3ktdHJ1bmsKKzU2MzA1IGMyNTVjMTBkYWM2YTY5MWViNjU0YzI0ZGYyNWZlMjExNjYwMmYxYjYgcHkzay1zdHJ1bmkKKzU2MzA2IDRjNDljZDY1YjVmMTcwNTJjY2E5MzI0ZWM1MDk3MjUwNDg2NzQzMmQgbGVnYWN5LXRydW5rCis1NjMwNyAyYWYzZjA2N2E0MzEwMmRjYjNhNTUwNzA2YjY3ZDYxZjE2ZTAzZTI5IHJlbGVhc2UyNS1tYWludAorNTYzMDggMzQzYjYwYjYwNGJkOTNkMGU2NjE4MGFlZmU3ZTA5NzU4Y2JmMzEzYiBsZWdhY3ktdHJ1bmsKKzU2MzA5IDcyYzU4MzM4YjIyYjYzOWI4OTk2ZmY0YzU5MGQ5Njc5NTU5YWIxOWEgcHkzay1zdHJ1bmkKKzU2MzEwIGVjNzQwODRhOGNiYTBhMDdhMTAxYTc2ZTY3ODRmN2ZmODUwN2Q0MDMgcHkzay1zdHJ1bmkKKzU2MzExIDZjYjllZmI1Y2JlNWJlODc2ODcyMzU1ZjJhOWU4MDkzNGYzMTk5NWQgcHkzay1zdHJ1bmkKKzU2MzEyIDNlMDZmMmI5MDEwMjY0MTJkZmZmODcwOGE2ZjRmZjc4ZTA5MTlhYzEgcHkzay1zdHJ1bmkKKzU2MzEzIDNmZDM1NTNlMjU4ODU0ZWEzODM3OWE3YmMxZDA2NGFjZmRlODdmNDIgcHkzay1zdHJ1bmkKKzU2MzE0IDU4NjYxYTgyMzM4ZTgyY2YxMDJlMzE2ZTAxNzhlYjdjYjIyYjMwOTMgcHkzay1zdHJ1bmkKKzU2MzE1IGU3MTVlMjA4MTYzNzFhMTQ3ZWU1ZmRiMGJjYTE3MTJjOGIwMGJhODcgcHkzay1zdHJ1bmkKKzU2MzE2IDBiODk3NzQxMWIwN2I0ZTY4ODI1ODc2MDE4MjY5NjBiOTUyODcyOWMgcHkzay1zdHJ1bmkKKzU2MzE3IDg0YTIxNzU3OWFlNTlkNTM4NDhjZGJlMTlkMWUwZmI1YTdhNDg5ZWUgcHkzay1zdHJ1bmkKKzU2MzE4IDg0MjI5YTkwNjZlMmY4NjYwMGI1MmE0Y2NiYTJkY2QwNDY2ZDkyODcgcHkzay1zdHJ1bmkKKzU2MzE5IDA2ODEyMzMzNDRkOTNmZDBkZTllNWUzNDYxYzgxNjA1NGUxMTdiNjcgcHkzay1zdHJ1bmkKKzU2MzIyIGI0NWMwZjQ0NDgxMzFkY2NiMjNkNTgxN2ZlMWY0ZTlkMTk1ZTYyZTIgcDN5aworNTYzMjMgMmFjYzYzNTlkMDVkNDA1NWQ2MmU2ZDA4M2VmOWQzNWIyNmRjMTg0MSBwM3lrCis1NjMyNCA0OGM1YTg0OWEwYzJmY2VmYTVhN2RlMzEwYTY2ODI3MTY5NzdiOTg3IHB5M2stc3RydW5pCis1NjMyNSA3Mzg0NmY5NjI5YzU2N2ViYWZhMGViMDBhYjFjYmQwYzk3Yjk4MDIwIHB5M2stc3RydW5pCis1NjMyNiA0ODRhMDA5NmJhZTkwZjY2MTlhZmM2OTE2YjNmZjlmZjA2MmZiNWUyIHB5M2stc3RydW5pCis1NjMyNyAwNDk0YWU3MzUwNTgyYjU4MThkMDk2MWE1ZmMwNTRlOGE4Nzg4MmJhIHAzeWsKKzU2MzI4IGZiYWUwMTJmZjI5NWRjYWY3YmI0MDA0YzVkNzUzNWMzNGFiODM5ZGEgcHkzay1zdHJ1bmkKKzU2MzI5IDc2OWU3MDc4YTJhYTdmMjRkOWU5OGY0NDQwM2RkM2Y5YTAwZWJkY2UgcHkzay1zdHJ1bmkKKzU2MzMwIDdjYzg0OTZmMjM0ODBjMDZiZGYzYThjYjI0MDAxODcxZDZhODA2NmYgcHkzay1zdHJ1bmkKKzU2MzMxIDJmZDE0Njk3MjNhMDcwMmViMDllZDY1NjFmNjcwMDNiYjliOWE4M2YgcHkzay1zdHJ1bmkKKzU2MzMyIGFmZTg3MTU0N2IxYTM5MGYyMmIyYTdmYzExMzI0ODIyYThlZTIxOWMgcHkzay1zdHJ1bmkKKzU2MzMzIDEwZGU2YTkxZGE0ZGExOTBjYWJmNTc0ODNjNWMwMzYxMmQ2NTU4NmUgcHkzay1zdHJ1bmkKKzU2MzM0IDZhMDk3NzcyZWE4NmI1YTQwMTc1ODc4MTgxNWZlMmFiZjNjYjcyYmMgcHkzay1zdHJ1bmkKKzU2MzM1IDZlNjVmMDhmMTI3NjI4NjIxY2UxNmI2ODlkYWViODliZWFmZDRiZTUgcHkzay1zdHJ1bmkKKzU2MzM2IDFjMzc5MGM4MzFmYzE2NTU2YWYxMGU3YmFjYTc4ZGMzNjRiNzU3MGIgcHkzay1zdHJ1bmkKKzU2MzM3IDhlYWYwM2ZjM2YxMjk1ZDYxNDJjOGEwMjRmMTBiODE1ZTU5NDEyODkgcHkzay1zdHJ1bmkKKzU2MzM4IDIyZDY1ODRiODcxMjZjOGZiODk5MzgzODM1MGI5MGIwYzk5ZWJiZDIgcHkzay1zdHJ1bmkKKzU2MzM5IDVkMTZmNDc4NDY1YTUzNTU4ZjI2ZGQwMjZmZjlkNDY3MGNiYWJkZDAgcDN5aworNTYzNDAgMGMwZDc1MGVlNzVlNGMyNTIxZjZhOGQzNTY2NjNlODc0ZWExNGFlNSBsZWdhY3ktdHJ1bmsKKzU2MzQxIDdiYzQ3MjNmNTYyZmFjZTExZGM5NzA3YmU5ODQ3ZjcyMjQ5ZGIyMzIgcHkzay1zdHJ1bmkKKzU2MzQyIDA5ODAwMzRhZGFhNzIyYjQ2NDg1MzNkNjgzZWQ4M2NmMTNmNGY3Y2UgcHkzay1zdHJ1bmkKKzU2MzQzIDY5M2JlMjdmNjI2ZmJiYTk2Y2ExODJmNTUzNmQ2ZTMzYjQ2MTM2ZjUgcHkzay1zdHJ1bmkKKzU2MzQ0IDE3YmIzOTgwNDgzZWNmYmQyMDYxY2FmZDE2M2QxNDBhZmEzNzU0ZDUgcHkzay1zdHJ1bmkKKzU2MzQ1IDEwODlhNGY1N2QyMDk1YjlmYmQ1Y2EzZGExMTUyY2E3MDg4NzE0MjQgbGVnYWN5LXRydW5rCis1NjM0NiBjMjgwNjQ3YzMzMGNmMmFhZDkyNDc2Mzc0NjVkNGY0YzZhZmE2NWQ4IHB5M2stc3RydW5pCis1NjM0NyA3YzFjOTAyZDcwMDAzMTJkMWQ4OTA0MjQ5YzNkZTU1Zjc2ZTQ4Mjc4IHB5M2stc3RydW5pCis1NjM0OCA3NjAyMWJiYjg5YzczODM3NmNiMzlhYTdkNzljNDdhMzFjODk4NmU4IGxlZ2FjeS10cnVuaworNTYzNDkgY2I4NjVlMzk5ZTg0YzY1YTk4MTJlMzQ4YjY3ZmFiZGIzODEwY2IzOCBsZWdhY3ktdHJ1bmsKKzU2MzUwIGFlYWQxMzZjYTQ5ZTI5OTU3ODk3MWI5ZjIyNzBiNDcxMzZmZDk0MWEgbGVnYWN5LXRydW5rCis1NjM1MSAwZDYyY2RkMzU1N2Q1YWRmODZmNzQxNTk4NjEwNWZmMGQ4YWVjYWVkIHJlbGVhc2UyNS1tYWludAorNTYzNTIgYjZlYWE2OTE2ODg0Y2RjZjFmODJmNDNmOGUzYzRiN2I0OWQzNzU1YSBsZWdhY3ktdHJ1bmsKKzU2MzUzIGYzMzY1OGRhMDYzNzU0NjJiNzBiNjdmMGU5NWQ3ZjVlZDllODYwNjMgcmVsZWFzZTI1LW1haW50Cis1NjM1NCAzZjg3OWQ3MjZkMTg5ODE0YzAxNDgyNGMyYWE0YzhjZjY0MzNhNzg0IHJlbGVhc2UyNS1tYWludAorNTYzNTUgZjhjNzVlODQ5OTU2MDk0NjUwNjY3ZDE4MDM4ODg5MWM4ZTE4OWQ3NiBsZWdhY3ktdHJ1bmsKKzU2MzU2IGYwMWFhM2QxOGM5ZDNhYzAwNmQxM2ViNmExMmZkZmIxYmQwMWU3MTEgcHkzay1zdHJ1bmkKKzU2MzU3IDRjZjA0NTk0MTA4NTQ1MGQyMTg4NjYwMjlmZTM3NGRhY2YxMGNkN2IgbGVnYWN5LXRydW5rCis1NjM1OCA1OTllYTllNWM2YzVkOGU5YTM2NTg2ZGNhOWZkYTE5OThkMjExYTFiIHJlbGVhc2UyNS1tYWludAorNTYzNTkgZDhiZjQyNjcyMzMwNTZkNWEzN2Y1ODI4YzNhOWQxMjY5YWNhYzg1ZiByZWxlYXNlMjUtbWFpbnQKKzU2MzYwIGMyOWIwZGJkYTNmNmFkZjhhMjI0YzI4YjU3ZTRiMmRhMDk0ZjJkZjEgbGVnYWN5LXRydW5rCis1NjM2MSAwYmZmNGI2YjkyYmUyYjczZmZhMzljZGQ2NzczOTUxNDE0NzQ2NjRjIHAzeWsKKzU2MzYyIDYxNDEyZTI1ZTYxZTMwZDFjYWRhNDczYzQyZjYzZjJkMDIwZTNlODQgcDN5aworNTYzNjMgMjAyYzM3ODM1NjI4YjkxNWFkNGVhZGJlMTQzNjExMWIwZTgwZTczZCByZWxlYXNlMjUtbWFpbnQKKzU2MzY0IDhjYzY1MDdiMDYyNmJiNGUxMGQzODliODkyYjc5NTU3MTBmMmUzYzkgbGVnYWN5LXRydW5rCis1NjM2NSBkYTJmODk0OGNjMThkMjA4YWE4MTRkOWRjZjc1NzY2MmIxNzJiODAxIHJlbGVhc2UyNS1tYWludAorNTYzNjYgNjk3YzBhNzhkOGM5MDA1ZDlkZjAxZDVlYmQxY2U4YTgwYWJlMzExZiBsZWdhY3ktdHJ1bmsKKzU2MzY3IDg1ZDRhMDJkMGFiYjBjNjc0MTdhNDNlZmEzMTU1M2MyOTc5YjJjNjkgcmVsZWFzZTI1LW1haW50Cis1NjM3NSBjZjg5MGU0MWFjMTM1MWY1NDNhNGI0OTBhZjQwNmFhZmRjZWEyNDEyIHB5M2stc3RydW5pCis1NjM3NiA1MDY2YjAwMjViZjA4NjUwMWM5YWMxNGZhOWNkYjE0YWI3ODRkMzVlIHAzeWsKKzU2Mzc3IGE1YTNkZjQ5YWNmMzAyOWU0MmJmM2ZlNWQ0MGI2MDYzNTRkMzFlZTcgcDN5aworNTYzNzggMmQyMjUwNDI4MzA1NzM4OTU2MThlZjc4MTQ4ZjJhODI1NDAwZTk0MSBjcHlfbWVyZ2UKKzU2Mzc5IDA5Y2QzZTUwMzIzNWU2NWM2ZWExZjkzZTg4N2I4NmNjNzJkZTg0ODYgY3B5X21lcmdlCis1NjM4MCBhNWU4ZGQ1OTk2MGRkZDk5ZDE1ZTFkMDhiNDE1NjMyNTZmYzVjMTZmIGxlZ2FjeS10cnVuaworNTYzODEgNDVjN2Q0NzM1ZGEzNmMyM2ZmMTQ5YmRhOTk2ZjE5ODQ1ZDc2ZDRlOSByZWxlYXNlMjUtbWFpbnQKKzU2MzgyIDhhZjA3ZTExZjE5N2UyNjEzNGRhMWFkZDNkYjVlYjZhNmFjMjg1ZTMgbGVnYWN5LXRydW5rCis1NjM4MyBkYWFlMjdmYmI4MTY2ZWRlMWQ4ZjU3ZDFlZGI4OGQ4OGJjNDc4MThkIHJlbGVhc2UyNS1tYWludAorNTYzOTIgYzIzZDhjMjdkYzkyMjIzODUwNzBiNzEwNTM1M2NmNTNmNjM1ODZhZSBsZWdhY3ktdHJ1bmsKKzU2Mzk1IDE4ZTVhZTkxYmQyOTc5ZTAyZDI2MTlkMjMyOGJhYmUxYzJiYjg3NzEgcHkzay1zdHJ1bmkKKzU2Mzk2IGViZTk2MGQxZDYyN2VlZDZjZmNiOTMyODdiZTEzMGFiYTljMWJjODIgcHkzay1zdHJ1bmkKKzU2Mzk3IGY3MTViYWNkZmQwMGYzM2JhY2Q1ZDFmNjRlYzMzMmUyNmFmNzcyNjEgcHkzay1zdHJ1bmkKKzU2Mzk4IDE5MTk5OWJlNmNmNThlZmE2ODIyZGQwOWNiZjAzYjM2NTJjZmU1MzkgcHkzay1zdHJ1bmkKKzU2Mzk5IDVhZTc3NGNjMjZlYmRkNzA3Njk3MDBjOWY5NjczNzlmNzViNmIwNTQgbGVnYWN5LXRydW5rCis1NjQwMCBkMDYyZjY3YzMyNjA0ZDQyMGU0ZDNiZjM1NjNlYzYzZTE5ZTY0ZDgyIHB5M2stc3RydW5pCis1NjQwMSBmNWI1ZGFjYjlhZTI5YmIxMmI0NzE5NjIyYzY5ZDkwYjQyNTk4NWJiIHB5M2stc3RydW5pCis1NjQwMiAzZjI0MjA5ZjI1MWUzYWQxMTNjNDY0MTY4MDdhYTY3MGZkNDkxNWEzIHB5M2stc3RydW5pCis1NjQwMyAzNzcyMTAzMjAwZWM4OWJjODhiYjNiMmYxYjY2N2ZjZTUwZWI2OTkzIHB5M2stc3RydW5pCis1NjQwNCA4NDc3ZmMzODhlZWFlZTNlOGYyNWE1MTFkYWJhODgzZTRiZjE1YmUzIHB5M2stc3RydW5pCis1NjQwNSBhOGQ0MzA4NWE4NTcwYjBjZTMzMWE2MDk1NzhmMjVkYjAyYzA4OTJjIHB5M2stc3RydW5pCis1NjQwNiA0NGJjNDlhMDdlNTI0OTU4ZTgyYThiOTk0NzhjNDE5YmY2MzY5OGVlIHB5M2stc3RydW5pCis1NjQwNyA1MzM3YzNhNGEyNzNkOTA3N2Q4YmU1MzcwNjVmZWE5YmM0NzAyM2Q4IHB5M2stc3RydW5pCis1NjQwOCBmNTFkM2JlNDM1ZGY2OGUzZDFkNTI1YjE0NjcyYzA1ODVmNWE2NmViIHB5M2stc3RydW5pCis1NjQwOSAwNThhYmY4NzhhZDRkZjk4ZmJjMzMwNmY3ZWVjYjkyMjdkNmJiNDA0IHB5M2stc3RydW5pCis1NjQxMCAzYmVhOGZhYzNhN2NmNmQ0M2Q2ZjQ0ZGJhYjlkMDkwZTM4ZDc3YWY4IHB5M2stc3RydW5pCis1NjQxMSBjNGFiM2VmNjE5NGY3MzcyMTQ3NzZlOWIxYjRhZDM1MTEzMjk2NjRkIHB5M2stc3RydW5pCis1NjQxMiBmNjU5MjE0NmM3ZmE2OGY3YTE1OTQxNzdmNDNiYjJhNDkzNWI0YmVkIGxlZ2FjeS10cnVuaworNTY0MTMgNTUwMTQxZmQ2N2MyM2RlODk1MzViNWQyOTIyNDBkNDFhNTUyOTk5ZiBwM3lrCis1NjQxNCBjOGU2MjQ1NzlhNGQ2M2U2YmQ2ZWVkMzVlOWUyNGY4ODgwZmY4ZmFkIGNweV9tZXJnZQorNTY0MTUgZjk0MGU0NzBlNTUwMjZlMTJkMzRkNzE0MzQwMGZmMjA3N2I0MzVmNCBweTNrLXN0cnVuaQorNTY0MTYgNjdiMDFiMDVhODFiNjIzNDg3ZmEyZjQ5ZmEwNWQ2MmU5YmJjNzdmOCBweTNrLXN0cnVuaQorNTY0MTcgYTMwOWNkYjdjYjMzMGQxMGFmMWY4YjkzZGY4YjkwNDNiMTk4ZDAyZCBweTNrLXN0cnVuaQorNTY0MTggN2QxNmI0MmZjZGJkZTJjYzUxM2ZjZGI0Mjc3NTZiYzlmMGNhZDM1MSBweTNrLXN0cnVuaQorNTY0MzggZDA3MTk0MDZiMmM2NTllN2RiNDM4OTYyYjZiNWJjNTRjNjBiYWU2YiBweTNrLXN0cnVuaQorNTY0MzkgN2NlZDNlODUxOWYxNDE4ODkxZDMwMzc3N2Y1ZDg1ZjE0OGY3MTZhZSBsZWdhY3ktdHJ1bmsKKzU2NDQwIDM1ZWI3MjIxNTYzMGFmMWFmZTRmYzFhMGFjMzk4Mzc1NTA0ZmE0ZGUgcHkzay1zdHJ1bmkKKzU2NDQxIDY3NzVlZTZkODlkM2Y5ZmRiMjk5N2ZhY2UxYzlmMmY0MjU1MmQ0ZjEgbGVnYWN5LXRydW5rCis1NjQ0MiAxNDk4MTViYTI4NGNjZGZkM2Q4YmIxY2NmNWM0MTZkYWU5YjgyYmIxIHAzeWsKKzU2NDQzIGJkNmFjZmRiNDdkMjVhNmNmZWMxZmFiMGEzZDkwYzE4ODI4NTMzNTAgcHkzay1zdHJ1bmkKKzU2NDQ0IDRjNjU4Mzc3YjkwODQ3NTQ5MTZlMGFmMTg5M2M0MTgzOTgyZDQzNzMgbGVnYWN5LXRydW5rCis1NjQ0NSBjMWU5ZWVlZGEzNGY5YmYyODNhOGZiNWEwYTYwMGEwNjM0NzQwMmI3IGNweV9tZXJnZQorNTY0NDYgMWFlNWYxMDJmZDNkNmUyNTE1ZmVmODU4ZGVmZWEwZDI4ODdlZDY3NiBweTNrLXN0cnVuaQorNTY0NDcgMDA3ZWQ2Y2RkMWY3YmM3NGJlOGQ5MzExZDIxOTUwMmRkZjI2NjllYSBweTNrLXN0cnVuaQorNTY0NDggMDg2NDJiZDFiZTE4NGFlMTJjMmUzN2ZkNjc4NmZjY2FhODNhNTU5NyBweTNrLXN0cnVuaQorNTY0NDkgZGZhY2I1MWQxMzg2MTYxMjE3OTVjMTMxMjgzODIwOWY1NmM3N2FmOSBweTNrLXN0cnVuaQorNTY0NTAgYmRjNjdkYzFhOTVlMmU0MDM0N2U5Yzg1ZGMwNTliMTlhYzk0NjhiMSBjcHlfbWVyZ2UKKzU2NDUxIGQwMWFlNjk4Y2I1ODM4Zjc1Y2I1MDc4YjZjYmQ2NGFlMzU2YzgzMzkgbGVnYWN5LXRydW5rCis1NjQ1MiAyOGFmOTYxMDM4ZGU4MjZhNTA3ZDY4NWFmOGE2Y2QyMTM3MWI4NDczIHJlbGVhc2UyNS1tYWludAorNTY0NTQgMzc5MDJlYTQxYTE3YjQzMmFkYjYwM2IwYTI0ZWJhZDU3ZjUxZjA5ZiBwM3lrCis1NjQ1NSA3Zjc2MGRiNGU3NDZiYWVmMThiMzU0ZGYwOTg1M2U2NTBmOWM1Nzg3IHAzeWsKKzU2NDU2IGMwMmEzMzc4OGE4ZjVlYmQzMjJmOTZlNWFjNWIzMzk2MzRmOTg4NWYgbGVnYWN5LXRydW5rCis1NjQ1NyAzZmI1OTY2NmIyODEwYTQxZDAyZTE2NjQ2Njk4NDgxM2NkNjRkYzNjIHAzeWsKKzU2NDYwIDQ5OTlhMDk0NzM0MzRhY2Q0M2U0NDBkOTZiMmM4ODZiMWFkOTE1ZjcgcHkzay1zdHJ1bmkKKzU2NDYxIGFjMzZmMDZhNjEyYjgwZTBiMTE0NWEzNzkyZTliNGVmZTU3NmE4MmYgcHkzay1zdHJ1bmkKKzU2NDYyIDYzOTU1ZTNjZjk5M2I2MTk1MzIxMGM4NDBhMWUxMTM3YzI2OWM5NDkgcHkzay1zdHJ1bmkKKzU2NDYzIDhjNGEzMzA3OWNhNjAwZDg3MmI2NDYyNzljZjc5MDRjODk2ZWFhM2IgbGVnYWN5LXRydW5rCis1NjQ2NCAzZTMzMjE1YzY2ZWRlOGZmMmM1Njc0YjdhN2IxYWNkMTA2MWYzNjNkIHB5M2stc3RydW5pCis1NjQ2NSAxMTYyNTFhZGE5MDU4ZmU2MDdlOGM4MjI1MzU3YWYzMzgwMTNiNzg0IHB5M2stc3RydW5pCis1NjQ2NiA2MGI3MThiNmZjOWIxNjMzY2MyNGE5ZGRmN2YyNTYzNjNiN2U3OGM4IHAzeWsKKzU2NDY3IDRiYmJlMGM1NWZhMjE1OGZlMjE2NTM3YzhmY2RmYjNlYmFkNzQyYjkgcHkzay1zdHJ1bmkKKzU2NDY4IGM0NmYwYWZiNDAzYzQwN2ViOTllZTg0MmRlMjIwNTdlYTM1YmM1MmYgcHkzay1zdHJ1bmkKKzU2NDY5IDk2NGM0YmY4NmQ5YTY5Njc1N2VlMGQyMzQ0YmI2Mzk0YzgyMDhhMTMgcHkzay1zdHJ1bmkKKzU2NDcwIGEyYzVjZWJkMGRjNTFmMTViN2I5OTVhYmU5MGY1ZmRlYmJmZDE1OTggcHkzay1zdHJ1bmkKKzU2NDcxIDU3YzYyYmQzNmIxOWJiODFiZGM5NDE3MjdhMWU5YTM1MThiNjA5NTggcHkzay1zdHJ1bmkKKzU2NDcyIDVhOWUzZDM3ZjY2MWYxM2VmZGUxNzFjYmFlYTcxODQwMjdlMjgzMWMgcHkzay1zdHJ1bmkKKzU2NDczIDMzM2ZmMDU4NDkzOGM1NjMzOWRlNzU2NWIzMzVjYjY3OTY4MmJiNDkgcHkzay1zdHJ1bmkKKzU2NDc0IDdhMGQxYmFhNGE1M2RlZDQyNDUxYjE4MDkyZDZhYjU0OTU5MTA2MmQgcHkzay1zdHJ1bmkKKzU2NDc1IDJiZTI1MWRkMmNiZGYxNjEzM2M0YjU0OTEwMjIxMWEyYjc5YjhkYWYgcHkzay1zdHJ1bmkKKzU2NDc2IDY2MjBhNTEwZTlhOTUxMTBkYjEzOTEyZDY2NTUxOGFkZTdkZDdkOWQgbGVnYWN5LXRydW5rCis1NjQ3NyBlMzcxNzFhNGIxNDc5NTlmNmYyM2VjMmEwOGYyMmQ0ZGI2NzMyN2Q5IHAzeWsKKzU2NDc4IGZkMzQ1OGE5MmE4OTQwZGJkN2E2NzUxMWEyM2ZmYWQ5OGU3N2E5NzQgcDN5aworNTY0NzkgNGU4OTg3MmYwODJlMDZiOGZlODkyNjA1YTdlNjIwYzM2MTI4OWM4ZiBwM3lrCis1NjQ4MCA1MzFlMTgxZjViNTMwZjllNDUyODYwNTQwNDliMjY0NGRlNzM3ZTIyIHAzeWsKKzU2NDgyIDEyZGY5MDYwMDNlYTkyMjZmMjJjZTMxOGRmYjFkOTBmM2I5OTA0YzMgcDN5aworNTY0ODMgZTcwY2RjZTBlOGIyOTU1YzQ0MDA4YTQ0OGYwOTM1YjlkZTdkMTg1ZSBweTNrLXN0cnVuaQorNTY0ODQgYzhiODUwYjVhMDY2NjkxZmE4OGNmZTUyZWQzNWU4YjgyYTM5OWVlOCBweTNrLXN0cnVuaQorNTY0ODUgMDNhYjhjOGJiMGFlMTg0Y2U4YzgyZjA2ZTU4MWRlYzQxZmRkYzliMyBsZWdhY3ktdHJ1bmsKKzU2NDg2IDIzYmZkYjc1NzFhN2RhZDFjZTg1YWE2NWVlYjE2NDVhYzhiZTgyMzYgcDN5aworNTY0ODcgODhlZTBhNTU2MmVlMjIxOTBkZjcxZjAwMThjZmU1ODlkMzdlMTkyMiBwM3lrCis1NjQ4OCAzOGQxYmViNjUwYmFjZmUyYmRlYzMyNjk4YTBhYjhkMjU5YjI0YmZhIGxlZ2FjeS10cnVuaworNTY0ODkgODExYzlhYTZlZDg4MmU0MDU3NTFkYzZmNGU5NWI3MTk0ZjViMTAzZiBwM3lrCis1NjQ5MCAyNzg2MzhjZGM2NDdhYTI4NGVhMGZhZjNjZmJkYmJiMGNmNWNjNmUyIHAzeWsKKzU2NDkxIDYxODU5YTM5YTg3ZTcyNjQ1MWI3MTg1NGE3ZTAxYzY3ZjM4NDVmZmEgcDN5aworNTY0OTIgN2JmZTlhMTA3YjI5Nzc3MjAzZDY0MjIwNjY3NzA2ZTc2N2RiYWE2NCBweTNrLXN0cnVuaQorNTY0OTMgYzE1MmM3ZmExN2M0ZDAyODczYzdmMDY2NGZjNjU0NDJjMTViN2Q0YyBweTNrLXN0cnVuaQorNTY0OTQgZjRhZjZmNGI1MWNjMzYxOGZmYjMzOGQxMmU5NTcwNmVmMTk4ZmI3MSBweTNrLXN0cnVuaQorNTY0OTUgMTQ1NzQxMDE2ODQ4ODJjN2JkZGY1MDE1OGYyMWQzMWQ4YWNiNzYwZCBweTNrLXN0cnVuaQorNTY0OTYgNjBjNzY3MThlMDRhMDA1ZmM3NzZmMDc3YzFjZWM0YzhkZmJhN2M0OSBweTNrLXN0cnVuaQorNTY0OTcgZjMyZmJmOWZhNjBiMWM4OTQwOGRjNWRiMDgxMGY2NjQzNjY5ODA0YSBwM3lrCis1NjQ5OCA0MDk5OGYxOGM1ZGNjYmMzMDE3ZTBiYTI1NTNhYzVjZjg5ZDgxYzM5IHB5M2stc3RydW5pCis1NjQ5OSA4MzY3MGMyZjFlYTg0YzcxMWIxZDc5MDA4M2UyYzRhZTQ4NzNiNjczIHB5M2stc3RydW5pCis1NjUwMCA5Y2U1NGNmMGRiZTJhNjlkZGFmZmRmZjBiOGVkNzQ0YjM4MjNkMzQwIHB5M2stc3RydW5pCis1NjUwMSAzNmI2NzAzMGNhNDcyZGEzNGJhMzY0ZmNlOTNhZTQxNWE0MjZiNGQ3IHAzeWsKKzU2NTAyIGI1OTBmNGEwNmJmODY0N2NhNjI3ZDg0MTc3NTA2Njg1ZGJmZDM4MTcgcHkzay1zdHJ1bmkKKzU2NTAzIDVlNjZiYjY5YzFlM2U0ODZlN2JmNzQ1ZGM3NDZkZDBhYTc1MmNiZDYgcHkzay1zdHJ1bmkKKzU2NTA0IGJmZTA0MWFmYWZlNjkwYzBlYjY4NTA1NDZhMjhkY2U0M2IzZThiN2QgcHkzay1zdHJ1bmkKKzU2NTA5IDNmZTY0M2Q2MmVjYzQ1ZWIwNGMwNDY4M2VhMDNhODI2NTM5YzRiNTcgbGVnYWN5LXRydW5rCis1NjUxMCBmZDY3MDUzOWMwODVkNTYwMjI2YjllM2NmY2RlOTVlYThlY2ZiNzNjIHB5M2stc3RydW5pCis1NjUxMiBlNTBlMzNiN2UwZTBjY2I3MTE0MDUyODY4YjBjZWEzZDU0NDRiYzVjIHB5M2stc3RydW5pCis1NjUxMyA2NDA5NTJkZjQ0MzE0YjRiYTBkYWI1OWVkNzUyZTY4ZGM3YzJkYTE5IHB5M2stc3RydW5pCis1NjUxNCA5NTllNTJhZTI2MjdhMDg5YWQ1OGIwZWU4YzViNTNkMWQyNDUwZGI3IHB5M2stc3RydW5pCis1NjUxNSAzNmZiY2RhODBiMWM0NTdmYjRlZDlhMjA2M2RhOTg5Y2JlZGMxM2I4IHB5M2stc3RydW5pCis1NjUxNiA1YjljOGRjZTRlZGQ3ZThjZDZiZTFjMzVhYWY5ZTJlNzc4N2Y3ZTkzIHB5M2stc3RydW5pCis1NjUxOSBkOTRkNWI0MTZhOTQ3YWY0Zjg1ZTgyM2YxZDJmYzZkOTI5MTMzNDAxIGxlZ2FjeS10cnVuaworNTY1MjAgYmM4ZTVlMTU3MWFjY2YwZWVlNzhkZTRkZWNhY2FmMzZkMzcyZDQ2YyBsZWdhY3ktdHJ1bmsKKzU2NTIzIDMwZTExMjM1MGUyMDNhMzY5ZjRjZDU4NDFlNDgwZThlMDdmOTk2MDUgbGVnYWN5LXRydW5rCis1NjUyOSA3NDZhNTAyMWUxYWE4NzExZTViNDg5ODI0YTU3Njc4NDBiZDIxZjU3IHB5M2stc3RydW5pCis1NjUzMyAwZTJmYTRjNmE0MjgzNTUzNzIyMGI3ZjlkNTMxOGFjMTViZGE4YTgyIGxlZ2FjeS10cnVuaworNTY1MzYgMTEzNzcyNDkzMGE3MmIzODhkNGU5NDc0YmY1ZDA0ODczMTE0YTQ2NSBwM3lrCis1NjUzNyBkYTYyODM2ZGQ5OWY3NzNkNjRhMWY4MWFhOTAwNDQ4NWVlNzM1YzViIHAzeWsKKzU2NTM4IDJmZGE1NTNhYzZlMTYzZGIxNGYyODhkMzM4YmE1N2VjNzQzYzZiZTYgbGVnYWN5LXRydW5rCis1NjUzOSBlOTg5MWQ3ODdlZGQ4MjY5MmQxOGI4NDNmMjNiMWEwY2NiMjdmYWZmIGxlZ2FjeS10cnVuaworNTY1NDIgMTIwNWQzMDM0NjFjMzIzYjk4MTQ1NGVhZjYzZjhlMjliMzk4Y2FmMyByZWxlYXNlMjUtbWFpbnQKKzU2NTQzIDI3ODY0YTE4MWYwMWIyMzkyY2M5Zjg4OWFmMTE0ZjNhNDk4Mjg3YzMgbGVnYWN5LXRydW5rCis1NjU0NiA3OTVhNWRjZGM5ODIwMzAzMmU1MjIyNzdiMTE5YTFkODA1Y2EyZmNmIHB5M2stc3RydW5pCis1NjU0NyBkNDhhY2IyODQ2NjRjNzQ0YjE4ZjBmNzU5NzJlZGU2OTA1OTRiMWIyIHB5M2stYnVmZmVyCis1NjU0OCA1ZjNmNTRjMGM2YzhlYjIwZDZiODEzYmZhZjU2MmFiYzcxNDkxMmM1IHB5M2stc3RydW5pCis1NjU0OSA4ZmY4OTk2NDE1NjM1MmY3N2FhZmU0ZDkyMGJkNjA0MWQ3YTczM2UxIHB5M2stc3RydW5pCis1NjU1MSA2ZmE3ZDhmYjA3NzMxOGY4Y2ZhZWJmYzg5ZGIyODQ1ZjRlYmY1ZjRmIGxlZ2FjeS10cnVuaworNTY1NTIgNDM0YWU2NmI3ZGUwNGU5YmNjYWY5Nzc4MTdjOGNmMzI2ZjBlOWY0OSByZWxlYXNlMjUtbWFpbnQKKzU2NTUzIDY0OTAzZmY3NmVkZTFhMDk2OWU4YjE2NmQ4MWE1NGExNmU0NTRlMDcgbGVnYWN5LXRydW5rCis1NjU1NCA1N2ZhY2YzNGE3MTg2MTBjNTY5M2I0ZTlmZTM4NWE0MzkwZmIxNWRmIHB5M2stc3RydW5pCis1NjU1NSBhNTQzNGZhZGE5ZmY0OWM0MDdlMDFlMjcyNzdmNjBiNzhiNGVmNDExIHB5M2stc3RydW5pCis1NjU1NiAyYWNjODkwMjc2OGM0NDdmMDMzNjYzODg5Yzg2NWE5NWJiYTY4MGEzIGNweV9tZXJnZQorNTY1NTcgMDdhNTc3YjYyMGVjNjkxODJjNDg1MzcxMDA5NmRiYjY5ZmE2MzgzOCByZWxlYXNlMjQtbWFpbnQKKzU2NTU4IGRlZWM0MTI2ZmZhY2ViMDZlMjZmYWRlNmEwYThmYjhlMjdlYjhlYmIgcmVsZWFzZTI1LW1haW50Cis1NjU1OSBiMDBiZDA4YTA5NDk0OTEyMjc5Yjg0OTc5ZDUyYmRiMzRhMWQ4MGNhIHB5M2stc3RydW5pCis1NjU2MCAyNzhjNTIxMzQxNDBmNjE3ZGNmZjFjYWEwN2RjZGU4NDA4YWM4NDg5IHB5M2stc3RydW5pCis1NjU2MSAxMDcxZjcwNzZlOGUzOGM3MzRmYjU4Y2ZjMzRiZmI5YzEwZWU5ZmNiIGxlZ2FjeS10cnVuaworNTY1NjIgMjBiZDViZTI0YWI1NmI5Yjk4NWJjOGFiZjFiZDU2OTAwNjgwNWJiYSBsZWdhY3ktdHJ1bmsKKzU2NTYzIDg2Mjg1YjM5N2I0ZDEwNGQ0OTdlYTBkYzRkNGEyMDE3NDM1OWVjYTcgcHkzay1zdHJ1bmkKKzU2NTY2IDA1NDZjMTE1YTljZjNjNzJiMzYwNTFiOGJlYmQwM2VkZmYyNDA5NTMgbGVnYWN5LXRydW5rCis1NjU4NCA5ZTg0YjQ4Njg5ODQ2ODFlOGUxZmNjMWU3YjgzYmNhYzMwYjBhZjc3IHB5M2stc3RydW5pCis1NjU4NSA5MGU0MmEwYjIyMDJjZjg1NmRjNWExMzgwOTNmNWYyMmZiYWM3YjRlIHB5M2stc3RydW5pCis1NjU4NiBmNjcyMDcxZDgyZmI4MzhkYzhiNjVkNjY1MTM4NzA0YjgxNzVjMDUwIHB5M2stc3RydW5pCis1NjU4NyAzNTdjYjg5NjdlODVlZTBmNzhjY2Q5MjAxYzU2MzdjZTYxNzlmMDU4IHB5M2stc3RydW5pCis1NjU4OCBlOTkxNmE0ZTA2YTRkZDNhNTFjMWI1ZTVhN2U0MjBjNGFkYTIwNDhjIGxlZ2FjeS10cnVuaworNTY2MDAgN2U3ZGNlMzA4OWUzN2E5YzEwZmJlMjFhYjYzMjZjZjYwOGMyNWRkMyByZWxlYXNlMjUtbWFpbnQKKzU2NjAxIDg1YjdmNDBlMWMxY2YwYTViNTVmNjYzNzkyYTE2NzFlNjFiNmY0MzIgbGVnYWN5LXRydW5rCis1NjYwMyBkMzQ3MWVmNmZlMzhhOWM4OGNhNTE2ZjIxNDdkZjM3NGE5ZjdhNzZlIHB5M2stc3RydW5pCis1NjYwNCBlMzFjNDgyMThiMGNiOTFhMGM4Y2QyNmE0OTdiMWE1MDdmNmMwMDk0IGxlZ2FjeS10cnVuaworNTY2MDUgNzg1ZGUyMjQ5OTVkNTExNWFmNzVkMzFmOTc4ZWM5ZWNiMzg1ZWVlYSBweTNrLXN0cnVuaQorNTY2MDYgZTFkYWU4NjI2YzExYTZkZTA5ZjdjNmY1ZjQ2YWQ2YjAxNjE0Zjk0ZiBweTNrLXN0cnVuaQorNTY2MDcgODZjMTNjZTYwYWFkZTVkOTc4NzNkMzk3MWJiZWU2OTY5ZDY4ZDVmZiBweTNrLXN0cnVuaQorNTY2MDggZDUyYmVmNTUyYWE0MDdmMWE2MjJkMmY5MmEzMmU5YmE5YTA3NzUzMSBweTNrLXN0cnVuaQorNTY2MDkgMzEwNWI3Y2YzNWJlYTcwNzdmYmE5NzZlODRhZGNhY2Y2ZWNjZjMzNiBweTNrLXN0cnVuaQorNTY2MTAgYjlhZGFkNTY5NWEzOWFkMTA4OWE5NDgwZGYxZmQzMDBiZjQ3Nzk2ZCBweTNrLXN0cnVuaQorNTY2MTEgZTk0ZDUwNjBiMGMxYzRhMjRmNjA3MjViMTAwMjVlNGMzYWNkMjZiNiBsZWdhY3ktdHJ1bmsKKzU2NjEyIGYxZjFmNWUxMzk1YzhiNDllY2VkMDczYzI1NDE3NzIzMDE4Zjk1MDYgcmVsZWFzZTI1LW1haW50Cis1NjYxNCA1Y2Q1ZjMyYjRhMjg4NjQ4ODA2MmUwMTYzZDU0MTFhYjc5YjE4YjQ2IGxlZ2FjeS10cnVuaworNTY2MTUgMzY1ZTk5MWE2MzFiNGM1NjVkNjU1MGQ3ZmFhMjI1YTg5MjkxNTBiOSByZWxlYXNlMjUtbWFpbnQKKzU2NjE3IDhhZDhhMzM0YmUwZjM1NWZkMDQ3OTAwZjE2MzczM2M1NTA1MTkwNTEgbGVnYWN5LXRydW5rCis1NjYxOSBlNTk4MTczZjk1ZTg4MDQxZjk1MGYxNTI0OGIyZjYxYjNhN2ZjMjM2IHJlbGVhc2UyNS1tYWludAorNTY2MjAgMjUxMDMzYTFjMmUzMjg1ZGEyNzRkODZjZjZmNDVkMzJiNWI3YWNhOSBsZWdhY3ktdHJ1bmsKKzU2NjIxIDdlODQ2OTYxN2IxYzNkMjU2ZTdlOTM4NWY2MTMyZGM4NTIzYjkwNmIgcHkzay1zdHJ1bmkKKzU2NjIzIDBjMzAwYjI5MjAwYzIyODliNWY5NTUxOWY2N2EyMzUzN2FhMjNlZDMgcHkzay1zdHJ1bmkKKzU2NjI0IGNlN2ZjMDhkNWY0Nzg1MzE0MTY0MDA2NjM2MmQ4MzFhZTE3YWYyYTkgbGVnYWN5LXRydW5rCis1NjYyNSA0OGNmYWFhODI4NzMwZGUxYTFhMTU5Y2E1NDVkMjFjY2MyMTY5M2ZhIHB5M2stc3RydW5pCis1NjYyNiA0Njg2MjE1NjliZThlOTVlY2Q5MzNmYzljODZlYzZiYTIxNjMzNTRmIHB5M2stc3RydW5pCis1NjYyNyBiZDg0NTZjOTU2OWFjMjUzMTQ0YWVkNzgxZDAyNTZmZjhjYzUzODdhIHAzeWsKKzU2NjI4IDhlNjlhYzFiZDA0MmNjYWRmZGI4NGM2MGZkYjQ4MmVjZWJkNGE1Y2IgcDN5aworNTY2MjkgNTA0MDg0YzA0YWMwMDBjZGQzY2JjZGQ3ZmJhOTJiYjBiNzZmYTRlYSBweTNrLXN0cnVuaQorNTY2MzIgM2EwMTUzNTViMDdhYTAzNTA0MTIyODM0MDk0ZTBhYzIwOTNhZGUyNCBsZWdhY3ktdHJ1bmsKKzU2NjMzIGI2MDY4ZGQ2YWUwMGMzZTE1Nzg5MDg4ZDg5OTIxNmE3NTExMGFlOTMgbGVnYWN5LXRydW5rCis1NjYzNSBlZjJkYzYyZDI3ZWI3ZDhmMzE5OTI1YjMxZTMwZjI4YmUzM2FmNzY2IHJlbGVhc2UyNS1tYWludAorNTY2MzYgZTFjMGFhOTRjMDkyZjljMjBlM2QzZDJhZGI0MTMwZjY3ZmRhYThmNCBsZWdhY3ktdHJ1bmsKKzU2NjM4IDNmNzhhY2MwMTAzOTgxNWI2ZmJkOTUyMDI1MTAyMWUxODg2MTJhY2IgcDN5aworNTY2MzkgOGI1NmEwNjk2MTRlZjRhMjE1MGQyZjA4MTAyMzY5YjI3OWZhMzQwMCBweTNrLWJ1ZmZlcgorNTY2NDggMzkyZjk4MjIxZDEzZWVhYzQ4ZWVlMDM5MjQ1NDc2OTNkMjcxZGJhOCBweTNrLXN0cnVuaQorNTY2NDkgOGMxNjVkMjA3MDlmNjNmYzYzYjVmMmRkMGRiOGM4ZDM4M2Q0OWY1NyBweTNrLXN0cnVuaQorNTY2NTAgYTZkMjZhNGQ2NzJkZWEzYmQ4M2YyNDRhODNlZTQ2Nzg1ZDE2N2RhNiBweTNrLXN0cnVuaQorNTY2NTEgOTg5OGE2Njk2NWJjZDk4Nzg1OTRjYTYyYWZiYTUxZGYwMDE1ZTM5NiBweTNrLXN0cnVuaQorNTY2NTIgZDNhNWM3OTZjOGJhMDBmZjVmMDEzMWEyYmJiMTJmZGRiODc5MGNlMSBweTNrLXN0cnVuaQorNTY2NTMgNjcwNTliNzhiY2U0NzVkM2FmYTU0ZjVkNWFhZTAyNmQ1YmQwZDNjNiBsZWdhY3ktdHJ1bmsKKzU2NjU0IDgwMWFkMmYwZDBiNTgwNTk3ZGMyYzgxZjkwNDViZTA2ZDA5NGI3ODcgZGVjaW1hbC1icmFuY2gKKzU2NjU1IDA3YzJmODFjMjY3ZDYxOWJjNzYzZGFlYzljYzQ1MTUxYTJkNDhlOGQgZGVjaW1hbC1icmFuY2gKKzU2NjU2IGNmNDU5NjUyYzM1MjM0Yjc4M2RmNDM5ZWJlNjdhNTk4ODY2YzcxYmIgZGVjaW1hbC1icmFuY2gKKzU2NjU5IDZmMjMzMGUwOTA5YmVjNGI3YjA0YjZkNGJhY2JkM2QwNDMzN2UxMmQgcHkzay1zdHJ1bmkKKzU2NjcyIDAyYzI3MTc3ZGY3OTM0YmNjYTFkNmNlYWQzYTdkYjZkNTQxOGFmYjggcHkzay1zdHJ1bmkKKzU2Njc5IDBjYmJhNDQyNmNkM2M0ZDJhYTllYjgwYWMxZjM0NmRjMGEwMGY3YzQgcmVsZWFzZTI1LW1haW50Cis1NjY4MSBlMjFkNjQ3NDZiZDNjYzRmNTA2YWU5NWMyMTZjYjNhMTRhNGNjMzA1IGxlZ2FjeS10cnVuaworNTY2ODIgNzU1ZTMxZGVhNDdlNTk2ZjMwYTY0NzBhNzQyMGVhMjkxYTI3YjI0NiBkZWNpbWFsLWJyYW5jaAorNTY2ODMgYzMzYzM3YmE5Y2IzYjU5ZTA3YjFlOTk5MDQxY2UxYzg0Yzc3NDU1YSBkZWNpbWFsLWJyYW5jaAorNTY2ODQgYjFmZjU0ZjhmOWQ4MzEzYTUxYjk0NDc5Yzg4NDRlZDE1NTYxZDk0OSByZWxlYXNlMjQtbWFpbnQKKzU2Njg1IDNhZGIwMzM1ZGU1MDZjZGVkMjE5ZTA3NmQ5ZmQxOWFkZjllNDc1YWMgcDN5aworNTY2ODYgMTY4ZDA1NTE2MGRjMTlmOTExMTc0YzkzYzAyYmRmMGViNzAzMmQ4NyBwM3lrCis1NjY4OSA3MjNjYjllM2ZhNTAwZTc1MGUwY2YwZGViMmQ0NThlNjI1OTBkMjA1IGxlZ2FjeS10cnVuaworNTY3MDMgNzc5NGRhMTMzNGEwMWY3ODQ5ZTcwN2E0M2M3MzdlZmVkOTE4NDBhNyBweTNrLXN0cnVuaQorNTY3MDQgYWU3MmJmNWFlNDY1MThjYTYxZDViNTA5YjRmM2M1ZDRhMTIzZWVhNCBweTNrLXN0cnVuaQorNTY3MDYgNDY2MjVlNjEyMmU5OWJmZTBjYTQxZjY5ZjI5ZmM2MjkxNmRiMDI1YyBweTNrLXN0cnVuaQorNTY3MDcgODFhZGUwMTQ0MjQ3ZDc4NzVkMzNkODUyZDMyNDE0MTBjM2I1MDIxZCBweTNrLXN0cnVuaQorNTY3MDggYjFiZjFiYWI5Nzc5NjYwMzE1MTBkZjU0MTEwMTNhYzViYmEwMTUwZiBweTNrLXN0cnVuaQorNTY3MDkgNmMzZmE0M2YxZDFkMjUxMTk2Y2IxZjk0MmNmMDM5NjVmNDY5NGYwOCBweTNrLXN0cnVuaQorNTY3MTEgNzQwMWZmNzhlYjI5YzAzYmNhOGQzMTEzN2I4MWUwYzc5YjIzNDg5YiBweTNrLXN0cnVuaQorNTY3MTIgNTM1ZGFlMDRkNmNkNjc0NjQ1ODNjMmUwMWNiNTgzZmZmYWU3OGQyMyBweTNrLXN0cnVuaQorNTY3MTMgZTMxOWQyZDI4NWJhM2Q2NzVhZjZmMDE3NzEyZjM1NjBiZjZhMzk1NiBweTNrLXN0cnVuaQorNTY3MTQgYzM1MTQwNTU5Zjg3ZThkYThjZTYxOGQ2OTdiYmFhZTUzZTliYTQ0MSBweTNrLXN0cnVuaQorNTY3MTUgZjZjYzc2ZTRjYTI1MWJkYWM3ZjkwN2YxNzFkZTQwZGM0ZjliOWYwZiBweTNrLXN0cnVuaQorNTY3MTYgM2VkMDIwZTk1YjQ0NGUzMGUzOTFlOTVmNjcwMzUyMDhhYTEzOWI2MCBweTNrLXN0cnVuaQorNTY3MTcgM2JlMjk3MmEyOWNhYzVjNzBlOTA3ODE4NzIxNmY5ZDdmYWFiMDE1NyBweTNrLXN0cnVuaQorNTY3MTggYWRlNWQxYWMxYTJjOGE1MDM5YWRlMDZiNTBmNGFkYzIzNzZjMjAwZCBweTNrLXN0cnVuaQorNTY3MTkgNzEzMDRlZmJjMzE2YTZkMmY0MmQzNWI2NGE1Y2ExMTcwZDRiZDgyOCBweTNrLXN0cnVuaQorNTY3MjAgMDU3MjhlNTJiMjgzMjBkMTgwMTgyZjY4NWRkMjg3OTU2ZDYxN2U0NSBweTNrLXN0cnVuaQorNTY3MjEgYjZiZGJiNjMyNmQyZjBiOWUxOTdmNDA2MWI1ZmUzNTAyOWI3MDZiYSBweTNrLXN0cnVuaQorNTY3MjIgMGZhODRmZmJhNzY5OGFkZWIyODVjZWVlYTIyOWVlZDE0NzVlNjI3YSBweTNrLXN0cnVuaQorNTY3MjMgYzYxOTQ0ODBiMWQ1OTYxZDRlZGYzNGE4ZTEyOTMxZjA0OWVjOTc4MiBweTNrLXN0cnVuaQorNTY3MjQgMTJkYmFlY2ZiNDRiOTE0N2U4MzM5ODY0NzNmOTk1NTcyNDhhMTkxZSBweTNrLXN0cnVuaQorNTY3MjUgMTMzMzUwMzk4NzIyMTBhOTFkZmQ5NDhlYmQwOWUxYTYxYjkxZjcyZiBweTNrLXN0cnVuaQorNTY3MjYgOGQ2OWEwODRlMzY1NWNhNTUzMGI1OWVhZTY1NGQ0NjAwNWJhNDkzNyBweTNrLXN0cnVuaQorNTY3MjcgM2ZlNTdkYWFhNjA4MTM0OTY3OGFhYzU4MGUyMmI2YmZkNWRiN2RhMiBsZWdhY3ktdHJ1bmsKKzU2NzI4IGJhNjRmY2FiNTIxNDJhNWZiODdjOWVhMGQwNGZmM2M1NWVmNjAzMDEgcmVsZWFzZTI1LW1haW50Cis1NjczNSBhYTVlZTY1MzI4ZmI2OTQ4YTYzODE5NjVhNGMzNjhhYmFlODE4MDcwIGRlY2ltYWwtYnJhbmNoCis1NjczNyBlZDM3NTQyZjQ3M2VhZTI4NjVkNzJlMGY0MTZjMWU3ODZhYmEwOTlkIHB5M2stc3RydW5pCis1NjczOSA1MjhhOGQ5ZWYyMDJlNTRkNjM3ZTZlYjkzN2FhNzQ0NzQyMTA4NzBjIHB5M2stc3RydW5pCis1Njc0MCBhNDBhZWRkYzBjODFiZDhlNDdhOWMyOGU1ODI2MDg2MjI1NGM1NmZjIHB5M2stc3RydW5pCis1Njc0MiBmNDQwOWM1ZDc5OTRkM2EwZmVjZmRjYjZhMThiNzI2Yjk1ZjU0MjkxIHB5M2stc3RydW5pCis1Njc0MyBkMjIzNWFlZTJkMjU1MDJjYWMxOTYyZGI2OWNkMGRlNDMwYTNjOGNmIHB5M2stc3RydW5pCis1Njc0OCBhODRlYWRmNjM3MmUzOGIyMzZjYmZlYjA4N2QzZmM0MjkxYjRhOTNjIHAzeWsKKzU2NzUwIGZkYmVkNzNlNWRhN2Y1Y2IxMTA5MzhhNGE4ODBmYjg3ZjhhYjAzZTUgcDN5aworNTY3NTEgNjQ4NTc3Y2M2ODhhZjZjZWIwNzk3MjlhNTdiZmFmMWU4NjY0MWU0YiBsZWdhY3ktdHJ1bmsKKzU2NzUzIGRkNzRlMDIwYTEzMjM4NmQ0MTY5OGZhODcyZWNlZDBhZGEyMTQwN2YgcHkzay1zdHJ1bmkKKzU2NzU0IDYyOTE4NTk5MmFhMjE1MGIwMjhkOTg5Y2FhNDVjMjRiYWJmNjQ0NDEgcHkzay1zdHJ1bmkKKzU2NzU1IDA4MGYyYWExODAxNThlNzJlOTI4OGI4OTJmY2VhMDdiOGZkNDFhOWQgcHkzay1zdHJ1bmkKKzU2NzU3IDQ5ZDUxYzFmYzE3NzhjMTJlZjY1MTU4NmE5YTY5YWFmZmE3MzhkMGEgcHkzay1zdHJ1bmkKKzU2NzU4IDE3ODAwMzVkNTgxMjNjNzdmY2U4YjA1NGE3NDY2N2RjNjVlZmU1YTggZGVjaW1hbC1icmFuY2gKKzU2NzU5IDg4ZDdhM2RmNWY3OWU1Mjk4YWU2MjQwYWFkNGJiNWY5YzNlNjBjYWEgZGVjaW1hbC1icmFuY2gKKzU2NzYwIGI0NTAwNTY0MWJjYTYyODlkOTE0NWJmNGVmNjcwY2VlMmFmZjY0OTYgcDN5aworNTY3NjIgZGJmYzNjZjE1MjJkMDdhNGU2OTZjN2FjMjMzNmVkMTlmNzViNjNmMyBsZWdhY3ktdHJ1bmsKKzU2NzYzIDliMjZlZTZlNmQwYTQ1ZGZjOWFiMjkyZDgzODBlMTk0OWFiZWVlMDcgbGVnYWN5LXRydW5rCis1Njc2NCAyNThlMmI3YTc4ZTRmZTE3NDc4NDAzZWJhOWZjZjIxNGVhMjlhNmZhIGxlZ2FjeS10cnVuaworNTY3NzUgMGFkYjcyMDdlNGJlYjdiNGQzZjA5NzZlMzViY2ZmMzFiY2YyNjE4ZCBkZWNpbWFsLWJyYW5jaAorNTY3NzcgOGI0NWYyMjk3ZGJkMTQ5YjI5MjFjMmQ2ZWM4ZWY0NzMxNDBmMzhhOSBweTNrLXN0cnVuaQorNTY3NzkgYjEwYmEzOGU2YjgwODEyMzZhNTkwM2EyYTE5ZDZkYjkxZmU0ODRhMiBweTNrLXN0cnVuaQorNTY3ODAgMjI5MzYxMTk4ZThkNWVkODNjNjU5YTRkMDgwNjZkYjZkNmQ3ODQ1ZCBweTNrLXN0cnVuaQorNTY3ODEgNDQwMTc2ZjA2MTQ3OTQyNDA2MWE4N2MyNmIyY2I1MmQxNjEwYzZmOCBweTNrLXN0cnVuaQorNTY3ODIgM2ZjM2NlZGM0OWNhM2M2YTg1YjE4NTgwNzE0ZWQ5MTRhODZmMjViOCBweTNrLXN0cnVuaQorNTY3ODMgODFhMzgwM2Y0M2NmOTg5ZWJkODRmYzM3ZmVjYzdmM2M1MWY5ZTQzMyBweTNrLXN0cnVuaQorNTY3ODQgZjRjOTljYWQ4ZDJmNjRiMjdmOTM2ZDUzZTM5OGQ1OWVjZjAxNzM5MCBweTNrLXN0cnVuaQorNTY3ODUgZjgyODFkYzJlNjhkZWQ3ZjNiNmZmNzdlMWM2NGI3Yjg4N2JhNzVlYSBweTNrLWJ1ZmZlcgorNTY3OTAgMmFiMThmZmI0MDFjZjFiN2FkMDk0M2Y3NGRhOTE4NDlmZTI2YmE4ZSBweTNrLXN0cnVuaQorNTY3OTEgMmExMTNhODI2NGIxNjIxMDY5OTRjNjk3NGVkNWE0ZDMzMzI2NjJlNCBweTNrLXN0cnVuaQorNTY3OTIgZjMyNDhjMzIwZGQwM2ExZGMyYzZlNzhmYTY3YzIyODg1YWQ1NWM0YiBweTNrLWJ1ZmZlcgorNTY3OTcgZmU1YTA2MjFmOTE4ODA2ZGJmYTEyZTJiYTg4NzNmNmI5OGYxYWZmNSBsZWdhY3ktdHJ1bmsKKzU2Nzk4IDdkMDc4ZmEzNGJiZjYzYmYyYTJiYWU5ZDU1MDRjNmQwODRiNzcyYjkgcmVsZWFzZTI1LW1haW50Cis1Njc5OSBiMjJkOWZkNGE3ODVhZGZhYTMyYTU3ZjQ5ZTgwZTZmMmUxYzdkYTE4IHB5M2stc3RydW5pCis1NjgwMCA2YmEyZTY3NTgwZmM5OGI4MDJkNTAzNGI5YTk5ZmRmOTVkMThjNTJkIHB5M2stc3RydW5pCis1NjgwMSAzNDVjODEyZjMzNjY1ZWRmMzJlZWMwZmFhYmNhZmMyZmUyOGU3MjQ0IGRlY2ltYWwtYnJhbmNoCis1NjgwMiAyOTczNTg5OWNhMTVhMDY5NmE4NTkzYTEyYmZjZTI1MzBkMDQyNmM4IHB5M2stc3RydW5pCis1NjgwMyA2ZmRkMWFmNjNmYTZhNWZmYjdhNzQ1NDRiZGU5NTJiMTAyZTFjYjBjIHB5M2stc3RydW5pCis1NjgwNCBlN2ZkMzI3ZTBjMTlhMjg4ZjA5NTVkNzU3OGNhNzA4OTU4ZjMxYjdjIHB5M2stc3RydW5pCis1NjgwNSA0OWQ0YzRjZGYwYzg2MjgzYzFiY2ViYzViNzk2ZDcwMTQxOWYxZDFjIHB5M2stc3RydW5pCis1NjgwNiA5ZjE4NDhmNTk2ZTBjYzY0ZDVjNjQ4ZDY4ZDFhMzQ1YWRmZGFjZDkzIHB5M2stc3RydW5pCis1NjgwOCBlMTE1MGFhZTBmNjRkNmRiOTY0ZGEzOWJhMmU1N2U4NDI4NDE0MjZmIHAzeWsKKzU2ODA5IDEzZGM4MzZkNGE5OWE4NWUwNzkyNDgxM2Q3YmUwYTBhZGZkN2VkMTEgcHkzay1zdHJ1bmkKKzU2ODEwIGIyMGNjMWMwY2YxMGU0NDYxZTc2NDFmMTNmNjZmZDFmYWZhOGYzYjYgcHkzay1zdHJ1bmkKKzU2ODExIDRkZWEzYjY4YjAxM2IwZThkZDJjODA3MWQ5MzhiM2U5OWYxZTA5MzAgcHkzay1zdHJ1bmkKKzU2ODEyIDA0YTE0ZGY0MDczYTRlZjhlMDFmYWNkY2ZjODhmMWRhMWM5MWIwYTAgcHkzay1zdHJ1bmkKKzU2ODEzIGMxZWQ0OTBiZDI2Njc0ZGNkOTQ3NzQ3Yjc4MzE2M2MxMDYwYzFhYWEgcHkzay1zdHJ1bmkKKzU2ODE0IGI2NWY2YWM1Mjk2OGM2NjM0NzRlNWJhZjllOGQzNTBmZTU3NjdhNjEgcHkzay1zdHJ1bmkKKzU2ODE1IDNmMWZjZDA4MGVjNGI1MDEwYjAzNzk3YWFmNzMxMzk4MDBkNGE3MzkgcHkzay1zdHJ1bmkKKzU2ODE2IGM4YTA5MWI4NDJkNmVkY2YzMDFiN2ZmN2MzZDVkMWI4YjM4OTJhOTcgcHkzay1zdHJ1bmkKKzU2ODE4IGM5NmI0YzM4NjUyYzM5ZTI0ODMzM2JkNmZjZTAzYjkzMDhjZDhmMzYgcHkzay1zdHJ1bmkKKzU2ODE5IDY2OGE1YWRjYzg3Y2YyY2Y5N2U1ODkwZWYzNzc3YWI4ZjJlOTRlMmUgcHkzay1zdHJ1bmkKKzU2ODIwIGI1NmE4ZDgyMmYyMWI2NWExZTY1NzNlN2ZjNDQzMjBiODU3ZGIyYmQgcHkzay1zdHJ1bmkKKzU2ODI0IGE4ZjEzYTQzZWFhMWU1M2RjMmYxZDY2ZWQ1NTJmOTc4OWYwNjRjMTggcHkzay1zdHJ1bmkKKzU2ODMwIDg2ZmQzOWMyYzY3NjhkY2YyYWE5M2FiZTE0MjQwMzM2ZWM1YzVmODUgbGVnYWN5LXRydW5rCis1NjgzMSA4OWM4MWZkNzAzOGU2MzE3M2Y0MTc0MWNhZDZiNDhkMTVlNGNkMGQ3IHJlbGVhc2UyNS1tYWludAorNTY4MzMgM2Y2YmUxMmI5NTM0MjNmZGJjMTVlNjdmMGVmZDAyMzNlN2ZhODQ0NiBsZWdhY3ktdHJ1bmsKKzU2ODM0IDU3Y2QwNzBhZDMwNDJmMTJlZDQyMDMzYTgwNzNlMGZhZTYyZTc5ZjYgcmVsZWFzZTI1LW1haW50Cis1NjgzNSA1ZjYwYzllNDE0NDAzYWU1YTRmNGExMDFmODk1MzQ4YzA4NWU2N2I5IHAzeWsKKzU2ODM2IGY0ZTM2NmMzOTJiZTcwNmVjM2M5MWY3OTIyZTQ2OGZlMmZjYWZlOTcgcHkzay1zdHJ1bmkKKzU2ODM3IDE3Y2RiZWRiYjE1ZDQ1NGEzZGE3NWQ3ZGEzNDExNGI2ZjEwN2JjNTMgcHkzay1zdHJ1bmkKKzU2ODM4IDk1ZDNhNjVjYjc0YzcwZjhiZmExNmM0MWRiYTgzMjdjNjFhMWI4ZWQgcHkzay1zdHJ1bmkKKzU2ODM5IDk2MDk4YWJjOGY4ZjY3NjZjNWNlY2Y2NmZhNjcwYjAwNGNhZTA0MjkgcHkzay1zdHJ1bmkKKzU2ODQwIGMzMjFjMmI1OThmMTc0ODA5MDE3YWE5ZTU2NzJlMWVmOTAzNjZmZTggcHkzay1zdHJ1bmkKKzU2ODQxIGY2MDY5ZjlkZDUyZGZhOWM5YjZmMTIzYmZmNmJhYjYxZTA0Nzk3NzMgcHkzay1zdHJ1bmkKKzU2ODQ3IDllZGYzMGJmYzJlYmUwYWQ4MTMwOGE2NzgxM2FhZWY1OWE3Y2MzZjcgcDN5aworNTY4NDggOTkxODk4OWI3MzNiNWVjN2Y1NTE3MzdiNzhmM2IzOWI1OTBjYmYzOCBweTNrLXN0cnVuaQorNTY4NDkgMjNkOTYzYTc1Njk2MmVhMTBiNDAzMTRiNGE3ZGNkNmE0MmU4YWJiMiBweTNrCis1Njg1MCA1ZmJkMTVjNjFiMTI1MDUxN2NlMWM2Nzc2ZmQ5OTBiOWQzYjQ0NmEwIHAzeWsKKzU2ODUxIDNlMWExNTE4NWY4Y2Y5ZWVjMDljNjY0YjM5OWI2ZmM4ODIwYTY1MGYgcHkzaworNTY4NTIgMjZjYTNkNmY0NzNhZDZkZTU2N2YwYTFjN2UwOTc2ODQyMTljOWQ2ZSBweTNrCis1Njg1MyBkYjI1OWQxNDFlN2FlYzAyZjZhYjdlOGI4YmM3NWRmYzQ4MzJkZTNmIHB5M2stc3RydW5pCis1Njg1NCA0YWFlYTM1ZGNjY2Y4ZDIxNGVhOGNkNTA4M2IzYjUxYTkxZTYyYTE0IHAzeWsKKzU2ODYwIDBjODk0MDliZGE3YWJjNjBmMzlkYmRjY2ZhMjg0MzA2N2QxMDYzMTMgcHkzaworNTY4NjIgZGY0Y2Q5Mjk3MDk4MTk0N2EyOWY1ZDBmYjFiMGRlNjUxZWNhZjAyMCBweTNrCis1Njg3MSA0ODY1YjUxMGNmNTRlOGRhMWRmM2I2M2U2ZmU3OTFkODEwMmZjOGZkIHB5M2stc3RydW5pCis1Njg3MiAzZGEwYTRkYjIxMDI0ZGU1YjY3NTBjMzMyMjVhMDRkZTAzYjBkYTcxIHB5M2stc3RydW5pCis1Njg3MyA1MjJhM2UzYTAzYTk2Y2UxOWJiODZhOGMxOWU0ZjYyNzJmNmViMTc0IHB5M2sKKzU2ODc0IDA0M2ExMDJhMTcwZWUyZWYzYmEzMmVhZTQ1ZDBiZTZlZTA2MWE4NjMgcHkzaworNTY4NzUgZGNmMjczODVmMTI1MTkwMjA2NzhhODg3ZDVlMThiY2M0YzEwMzA4ZiBweTNrCis1Njg3NiAxNjZjNzQwNTM2YjVmNzNhYjQ3NmU0OThjYzgzNWU2NjgwNmIwODU1IGxlZ2FjeS10cnVuaworNTY4NzcgODJhNWMzMGMxNzg2MjA2YWRjNWQxZDI0NGE0YTFkNzYyNGFjNDZhYiBwM3lrX25vX2FyZ3Nfb25fZXhjCis1Njg3OCBiZTNmZWNkMmQzMzk0MjljMzg1MDQyZjlmOGE1YWE4ODFiOTE3ZDczIHB5M2sKKzU2ODc5IGEyNGUyN2YwNWU0ODI5Y2I4NzIzOGZkOTY4YmRhOWQ2ZWQyOWQ0YjUgcHkzaworNTY4ODAgYzBkYmY0NWNjMjA3Mjk4ZjRjMDcwMTgzZGQwNWQ1OTk5MWJlOTllMiBweTNrCis1Njg4MiAwODcwZThlOWU5OWY1OGY2YWRlZjY0NmY3YWIzOGRjMWZlZTRmM2E5IHB5M2sKKzU2ODgzIGYwY2ZlZDM4YjlkOWUxZjU0ODVkNjA2MzAxODI4ZjE2ZTJiNzZiNGMgcHkzaworNTY4ODUgMGU1YWViYTNjNjdkYjJhNWM0ODZiMzhiZjcyNzA0YWUwZmIxODliOSBweTNrCis1Njg4NiA1MDdmNTY3MWUzODg2MjhmNWRlODE2MzQwMzc1Zjc5ZWQyNzdkMjkyIGxlZ2FjeS10cnVuaworNTY4OTAgMGFiMzQyMWEwOTA2NzdjOTA5YjlkN2Y0OGYyMzViYzFkNTNjN2M3YiBweTNrCis1Njg5MiA5ZDRlMjIwMjI0ZmI1ZGQ3ZmM1MjczMGM1MmEzNTRlZTg2MDFlMDAxIHB5M2sKKzU2ODkzIGNjMjVkMTYwZjBmN2VlMTBiMGEzNzJjMGNiZDkwNjg5NTc3MjRlMjEgcHkzay1idWZmZXIKKzU2ODk0IGVlYjM3Yzk3OTNlYTUzNDM2OGQwNDk5ODIxOTdhNDdjZWUyNDJjZjAgcHkzaworNTY4OTYgZjM3MDE2ZDQyNzI5ZmJlZjk4NTdlZGM5Mjk3NzFkZjgyMDJkZTdiMyBweTNrCis1Njg5OSA3NzAzMTg3YzdjNmYxMTdjYzliMDE1ZWU4OTc0ZmZmZWNjMjE4YzczIGRlY2ltYWwtYnJhbmNoCis1NjkwMCA5MzA3MzZlZTkzZDk0OTBhOTNkMjhmYTFjYjM2MmRjNzI2YWI2MTgxIHJlbGVhc2UyNS1tYWludAorNTY5MDEgMzQ2ZDBiODQwMzBiOWRmOTU4ZmFmODU0MWFmY2Q1MzkyZWNiZGY3NCBweTNrCis1NjkwMiBlNjQyODYwNTNiMjUyMjg1MTVmZjg4M2NiMDU0Yzk5ZjkxNzZlMDlmIHB5M2sKKzU2OTAzIGQ5NWIxNWE1NWYyYzA2MzBlMGNlNTYwNjAyOTRmNTUyNzc1YzllZTQgcHkzaworNTY5MDQgM2VjMjBjNGMxYTRmYmM1MTMzNjkyZWYwNmY2MjE0NWZhZGE3YzFiZCBweTNrCis1NjkwNSBhZmZiMWU4Nzg4MWE1ZjFhZjYzZjJmYzMzOTE3NzVkYmM4MGZmNGY1IHB5M2sKKzU2OTA2IDgxYmQzZTk0Y2YwYzMxZDgzNDJiNjZhMGMyYjJmYjAzYzYxYzJhYWIgcHkzaworNTY5MDcgMzg1OGQwYjhiMGVmNzZmYmQwZGFiZTE1MzZkNDEwYWQ5ZmJkYWUzYiBweTNrCis1NjkwOCAzYTE1NzJkMWZmMWFkNTRmZWNkYWVhMDZjYjE1ZThjODg0ZDMwMDg3IHB5M2sKKzU2OTEwIGY4MjhmMzUwMTRhZTM5YmFlNTA4NGQ5MTgxZmU5ZjYwN2FmODc4NDkgcHkzaworNTY5MTEgNmEwOTQyMzE2NGZlNjI0ZjU2N2NhMTRiMTAyYTc1NTQxNTIyNzcwZCBweTNrCis1NjkxMiA1ZjllNzlkMWUxNTg0YjU5ZmU4MWVlOWM5MWY3NjI3NDA5NjUwMGRlIHB5M2sKKzU2OTEzIDhkNjg2N2NiOGE4ZGI3MTg5NTE4ZWQwNWM1YjgyNWZkNzMwZjcwNDQgcHkzaworNTY5MTQgNmNkZGNlNDA5NmEyMjdlMjBjYTk1MTQwNDgzZDQ4ZGJjNzAzZTNiYyBweTNrCis1NjkxNSA3NGEzYzY4MjY2ODNlNGY3NDlhMjE4ZTM3NjI3NzlkYzMzMzQ2MmU2IHB5M2sKKzU2OTE2IDljM2U2NDQwZjU0YzMyM2M2ODE1MjE2ZTRjYjE1OTIyMDM4ZGQ3ODIgcHkzaworNTY5MjIgNDNlMzJiMmI0MDA0ODFjYTM3Yjg2MzhjM2FjNmNjNmNiN2FlOTFjMSBweTNrCis1NjkyMyA2OGZmOTA5OGIyZGM4MzZkNWIwZDBiNGJkNjIzMTE5MTc1NDdkNjk2IGRlY2ltYWwtYnJhbmNoCis1NjkyNCBhYWI2ODc5MzZlY2Q4Mjc0YmU0ODgwMjg5M2ZjMGQ5YWJmMGE3ZmI0IHB5M2sKKzU2OTI1IDBjOWFkMGIyZmFjNTRhYjkwYTI3ZmIzNDNiMmNlYmMwMmQ5OTgyNjUgZGVjaW1hbC1icmFuY2gKKzU2OTI2IGQxODU1ZDBlNGUwM2MzOTM3NjEwNzY3Mjg5NDFmY2IwYmMwOGJjNGIgcHkzaworNTY5MjcgY2ZhZGQ3Y2M5YzQ1NzdhNTZjOTFiN2Q1MjRhZWUwODcyNTdjOTM2OSBweTNrCis1NjkyOCBhNDRjNTY0MDI2YjgzMTQ4NjA1NWZiMTRlYmM4YzdkNDU1ZjMxMjY0IHB5M2sKKzU2OTI5IDA3N2M2ODE4NmUyMzc3ZDQ1YWEyN2IyYTZiNWE2Yjg2MGE5OGQ1MzEgcHkzaworNTY5MzAgY2Y5MTM3N2UyNDQ0ZTQxNGE1YWU0MjI3YmU2ZTdiMjUzZjNhYmYxNSBkZWNpbWFsLWJyYW5jaAorNTY5MzEgNDIxZjlmMzU4ZTRmYmI0Yjk1NzgzNmE2NDFhNWViOTQ3MTA4MmQ4NiBkZWNpbWFsLWJyYW5jaAorNTY5MzIgMGMwZTM1NWNmNzQwN2NkM2VjNDY1MmY3YTAzOWRjOTFhMWJiYjhiOSBweTNrCis1NjkzMyA4NDQ3ZWNkMWJmNDU4MWI4OWE1M2ZmN2Y5ZjQ3NTUxNmFiNmQ3ZmY5IHB5M2sKKzU2OTM0IGE4Yzc0MjQyNTM1NjJjZDRmNGMzMThkNDExZjZlMWYxOTg3MDRkMjkgcHkzaworNTY5MzUgZTBmNjIyODZhOWE0NTRiZDNmOTNlZmJhZTcyMGU4Njk2MWE2MzE4MiBweTNrCis1NjkzNiA2NWYxZDQxOWY2MzEwOWZlNzcxZWI4YWRiN2M4NGY4Njg2MmYwYzU5IHB5M2sKKzU2OTM3IDI3NjMzMGY0MmU3OTM2YjQ2ZjBhYWM0ZGZmN2FjMWZjNDljODA1ODYgcHkzaworNTY5MzggYjY2MjVkMmIzNzhhZjEyZGYzMjU4YmYxOTg5NjFlOGU3ZmVmOTkyMiBweTNrCis1Njk0MCBhYzE5MmY4OWMxMDkzY2EyMDFiMjFmMTMyZDVhNmNmMzdkNDA1NzA0IHB5M2sKKzU2OTQzIGM2OWQxMjI2NDNkNTBkM2QzYjU0YjFmNDlhOWQ0Y2NiMTAxZjEwNzggcHkzaworNTY5NDQgN2FiYWNjOWUzOTk1OGYwODU0M2JmNjNlMGZjNGZmMWE1ZmFiOGM5OSBweTNrCis1Njk0NSAzZTY4MmFlOWQyOThlZjExOGE1OTJmZWM1NzcwYTYxY2M5N2M0ZWJiIHB5M2sKKzU2OTQ2IGI3YjNmNGUzMjUzM2ViM2ZmMDI2NmE5NDU1YTNjZWFlZjBiYTI4MzIgcHkzaworNTY5NDcgZmVlNWM2YmJlMTQ0ZGFiODM0ZWFlZjQ5YjQ2N2IxZDczZGQ0ZjNkZCBweTNrLWJ1ZmZlcgorNTY5NDggNGI0OTk1YzhlM2ZkNjc2ZTFhYWM1OTg3MzJjMGE2ZWQxMWI5Y2I3ZCBweTNrLWJ1ZmZlcgorNTY5NTAgYzNiMzRiMGY4MjE2YWUzOWUzMTYwZjIyN2ZjMWQxZmE5NjQ1Y2UyYiBweTNrCis1Njk1MSAzNDZhZmE2NThlNDQ2MDM4NTA2NTM5ZmFiMDgzYzVhMmU2OGI3MWQzIHB5M2sKKzU2OTUyIGU3ODEwODVhYzk4OWU0YzBjMWEzZjI1NGZlZTJjYzlkMTE0NDNmZDkgcHkzaworNTY5NTQgN2Y5NDljMTdjYzM2N2JiY2IzNGM1NTI1Zjc0MDkwOWJlZDRmZWM4ZCBweTNrLWJ1ZmZlcgorNTY5NTUgMGZjYzE4YWJhMzg1ZGU0Yzk2MDFkYjgzZDhmMGYwN2JiYWYwYWYwOCBweTNrCis1Njk1NyBkMDIwYjliMWQ5OGI2YWQ1N2E5NjA5NmE2MGVmNjc3NmUxYzdjNmQ3IHB5M2sKKzU2OTU4IGFlOWNmNDhlZDZmNzI4ZmQ3YjAzMjU3YTFmMTg0ODI4MGNhZjhlNGYgcHkzaworNTY5NTkgMGQ5OTUzZDdiODI3NTdjZmM0OTMyYzllYzE3NmFiYTVjMTJmZTU0NyBweTNrCis1Njk2MCAxNTAxOWVhZTM5ZTgyN2Y0MTQwYTNhMmVlYTNlMDNkNWM5ZWY5MmM5IGxlZ2FjeS10cnVuaworNTY5NjEgMTM4MTA0NmZlODk0NWJkN2MzNTgwM2Y0NDMzNTVjMmFlOTdhZjcxMCBweTNrCis1Njk2MiBiOTBjMjIwNDE2MzUxYTVlNmM1ODMyZWE3MGMwNDFjNmJjOThiOTYxIHB5M2sKKzU2OTcxIGViMmMwNjc2YzczZjFiMTZkZjJhNzg3NWM1OGMxODIzZTAxYTUwZGEgcHkzaworNTY5NzMgZDRlZTU0YTg4NDg1MGJjZTZjODYyY2ZlMjM1MjZlOTY2OTM5MWZkNiBweTNrCis1Njk3NCA1M2I3M2MyNzExYjZjNjgyYTRlMTJhOTU2NDI2OGE5YWUzNTYyOTgwIHB5M2sKKzU2OTc1IDU0MjYxNjM0YWQ0NmQ1ZTk2ZjAyOGQyMzk4NDNlZjk0Y2JlNzc0ODkgcHkzaworNTY5NzYgN2E0NWU4Yjc4ZDYzZmY0NGVlOWQwMWFjY2Q5YjkwMDE1YjUxZjlmMiBweTNrCis1Njk3OCBhNzI0Mjc5ZmM5MzFhNWYxYTBmZWU2MDE1Y2E1NmQwMDYxZjU0OTdiIHB5M2sKKzU2OTgyIGZiMDY5ZWFmYWY4OWY1MzFiMmNhMWY2OWVlMWUxN2JmMTk3NGFiZTAgcHkzaworNTY5ODMgNGJjZTk0ZDllYzMxZTQ1MzhjMzA2ZmZlNGMxNzg5Y2UyZDliZjVlYiBweTNrCis1Njk4NCA2YWY2YmI0ODI0ZDViZTYxYzBjZjA3Y2ZmNzcwMTJkMjdiY2JhY2NlIHB5M2sKKzU2OTg1IDQ3YWFmM2Y0YTAzOGNlOTRhYjg0ZmI3MjlkYjQ3ZTgyNDdmNmUyNTUgcHkzaworNTY5ODYgMGVkM2QxODI5MjBiOGY4ZDY0YmRmMzQ4YTJiNzI3MzBhMzMzZjRiMiBweTNrCis1Njk4NyBjZjliM2I0ODdmZGExZjY1YmQ0MGE0NjMxYmM5MTVjZTVlNmIyZGIwIHB5M2sKKzU2OTg4IDM3N2I0ODM4MWE0OWMwMzM0Y2EyYTU3MDQxYWM0MjlkMjZjYjk0MmUgcHkzaworNTY5ODkgNWFlYjI2MWRlMGJkYWNjOGY3YjllYTZkNDVmNWVhMzc1YTU2ZmZlYiBweTNrCis1Njk5MCAxZTQ5MzY5NjQ3NzZmNTdmZjYwOTIxZGViY2RhZmY3MDdiYzVkNzQ3IGFsZXgtcHkzaworNTY5OTEgYmJjZWY2ZGU0Njc0MDU2ZGI2YWVjYzI1NWJjNmQ2ZDVjYmMyMGY1NiBhbGV4LXB5M2sKKzU2OTk1IGQ2OGE3MWM5NjVlYzE1MDViNzFmNWUxMzVjYjllODBhMjY1MmRlZDIgcHkzay1idWZmZXIKKzU2OTk5IGJmZTIwMmJmZmRmNDJmYjQ0NGZlMDQzZmQzYzBkZjE2NzdlOTZhZDcgbGVnYWN5LXRydW5rCis1NzAwMCBiZGM0MDI5M2Q3NWVmYjhlYjBmMWZlMzQ5NzBiOGU2YzM0NDUyMDdlIGxlZ2FjeS10cnVuaworNTcwMDQgOWNjZjlkNjdiYjM0OGM5NWMwMWQwZTU3NzkyYmMxNzkxY2QyM2VhOCBweTNrLWJ1ZmZlcgorNTcwMDUgZDMzNzFmZDQ5MTAyNDVlYzJhOGE0NzhjYTA5ZWZiZDFjMjgyOWZjOCBsZWdhY3ktdHJ1bmsKKzU3MDA2IDIyOWQ2MzQ1YTczYTExMjQ1MzA3NzdkZmUyNmY4OTdjZjNhZTBkMTEgcHkzay1idWZmZXIKKzU3MDA3IDY3OTM3ZmVlNzVhZjZhMjcwODgxYTZkM2UxMzRhZTdiMTg5MWNhZTYgbGVnYWN5LXRydW5rCis1NzAwOSBiNjIzNzc3ZjIyYjBkYTQwM2MxN2I5OWVhOWFiZmZjOTBlYjJlMWUzIHB5M2sKKzU3MDEwIDNjMWEyMDM2NWEwNWJjMWEwNGIxYmRkY2FjYjM1N2IwYjc1MGE5ZDcgcHkzaworNTcwMTcgMjE5ZmUzOWVkZTk5ZjdlNDIzMThkNGZiNjk4M2U4NjVmZmJlYmJlNiBsZWdhY3ktdHJ1bmsKKzU3MDE5IDI3NGYzYWU0ZGNjNzgwMzQwNzU4NWMzNjYyOGNhNWYyY2RkYTBhYjcgYWxleC1weTNrCis1NzAyMCBiN2JkNGEyNjg5YzE2Y2U1ZDExM2M2MmI2MmRiMGEyOWQ4YmE2Nzg2IHB5M2sKKzU3MDIxIDg2ZmFmMjExM2QzNmY1OGRhN2IyMDVjYmEwNjE5OTE5ZWE3ZGUyNGEgZGVjaW1hbC1icmFuY2gKKzU3MDI0IGE1MjhmN2Y4Zjk3YTI5YzA0ZjJkZDNjZTlkMTZlNGY4OTQ4YzJhN2EgcHkzaworNTcwMjUgMWI5MWZhYTBkZTJkMWUzNmU4ZTFkYWJkZTgyOTdhYTkzYTc0Y2MzZiBweTNrCis1NzAyNiA5YjAyMTI4NTIxZTI3MDRhZWVkMGIzYjY3NGIxY2ZmZWMzZTJkYWFmIHB5M2sKKzU3MDI3IDMwYzBkNTlkYjBjNjQ4NTI3ZmNkZmM4OThkNzM3YTM2NmNjNmRmMTYgbGVnYWN5LXRydW5rCis1NzAyOCA1MzkxYjVmOGNkN2EwZTM2YWY1YTg2YWZiODk0NWZmYmUzMTk0OGRjIHB5M2sKKzU3MDMyIDEzYjIzYWRkZWY0MWQ4MjA2MTk2MzcxNzU4NTJhMzIzNmM0YWMxMTcgZGVjaW1hbC1icmFuY2gKKzU3MDM4IDNiZWVmMTZkODE2NzEzYzFkNzkzM2YyOWFjZGU5YjRjYzZiNDgzMTkgZGVjaW1hbC1icmFuY2gKKzU3MDM5IDdjNjZmMTExOWU1NTRlMDIwOTM3NjRkN2Y0YjYzMWMyNjk5ZTdhZTQgZGVjaW1hbC1icmFuY2gKKzU3MDQwIDRlYmVhNmFmZGM4NzExMDI4YzYxY2M5MTE5MTkwMzk3N2YzMWViZGMgYWxleC1weTNrCis1NzA0MSBlZDk4OWRkOTk1ZDI0NDIxMmJjNjQ2NWQ4MjZkYjg5ZTQ5MDkyODRmIGFsZXgtcHkzaworNTcwNDIgYWM1Y2U3YzQzZWU3NTlkZTQ5NTY3MDgxNmYxYmJhN2VhMGM0NTI3ZSBweTNrCis1NzA0MyBmNmFmMGIyNTk4Y2ExMmMxZGM1MzRmNjM4YWZlZTYwZDQzMGE2ZWE5IHB5M2sKKzU3MDQ1IDk4MDMwOGZiZGEyOWY5Yzg5MDY0NmIxMzliMjM0NGE4YWEwOTI2OTUgcHkzaworNTcwNDkgMjA0NzdjYmZkOTk2NzgwODU0YTk2ZDA3MGVjM2I1NjIzODZiY2EwYiBweTNrCis1NzA1NCBmNjhiNmJmNDYzNjYxZTJiZGUyMmRhYzBhZTA1NWU5NjE2Y2IzY2E3IHB5M2sKKzU3MDU2IGY4MjhhOTVhOWRhNmJhOTA4YzliYTBjMjY2M2RkMjJhM2JhOGQ0YzkgZGVjaW1hbC1icmFuY2gKKzU3MDYwIDQ2MjA2NjFlMDZhZmFmNDUxOTM4NTg2MDNjNGMxYWVmODA2Y2I2MWEgbGVnYWN5LXRydW5rCis1NzA2MSAxN2JlOGZiZWMxNThjNDViMzcyMGU1MTExNGU3M2YyNTBlOWVkZDMwIHB5M2sKKzU3MDYzIDI0NDk3MDE5YzQwNzM1NjRkNjQ5YWUxYjJiZGZjZmQ1NzNhMWIzMTQgbGVnYWN5LXRydW5rCis1NzA2NCA3MTdmZmIxNmI1ZDEyNTRmMjc5M2UzNWM2NGFjZGYwOTk5NDI0MDM0IHB5M2sKKzU3MDY1IGM2MmY2NjY5YWUyMmI4Nzc5NWJhMzY0OTQ3NTE2MzE0MDFhYTVhZmMgbGVnYWN5LXRydW5rCis1NzA2NiA5ZTE1MjliZjA0NDIyOGI3ZjdiOGExNmM1MzdkYjkxNzg1NjQ4MGVkIHB5M2sKKzU3MDY3IDcyNjFhOTFiZTAwMzY4MzA4MzVmN2U0YWNjMmE5NzZhOGU5MjM3ZWYgZGVjaW1hbC1icmFuY2gKKzU3MDY4IGIxYWJmODQ2Y2U4MTUyYzM4MDMwMzEyNjlhNmRhNWE1Y2E3ZjRlMjUgbGVnYWN5LXRydW5rCis1NzA2OSBhM2U3NjQzMTcwNWIyNjNjODY2NGIxNTFiZWMwNTM3MDE4NDIyN2RjIGxlZ2FjeS10cnVuaworNTcwNzAgZWFiNzVhZTMyMTJiZGIyZDRjYmY4OGVmYmViZjk4ZTQzYzk1NDg1OSBsZWdhY3ktdHJ1bmsKKzU3MDcxIDNjYzJjYzc5NTc2NWZhOTg0Y2FkZDgzZjc0M2Q3ZWFiNGQwYjZmOWMgbGVnYWN5LXRydW5rCis1NzA3MyBkMzM2MmM0OTUyOTYwYjRjMjNmMGVlYzY1MmIzMmFiZjg5ZWJlNzEwIGxlZ2FjeS10cnVuaworNTcwNzQgNzkyNmE4Y2E5MjkwNDJlYTc5MTc4YTc3ODYyNzhhNmNlODExOWQzNSBsZWdhY3ktdHJ1bmsKKzU3MDc2IDEyMTIxM2JiZjM1OGY4NmE5MWRkZDE3YTljOWI3YmVlYTFlYTcxZGQgbGVnYWN5LXRydW5rCis1NzA4MiA0YTQ4NzE5MWZjNTRjMGExNzA5ZWUwZGM3MjI4OTRkN2I0NzZlZjg3IHB5M2stYnVmZmVyCis1NzA4MyA2NmE1OGMxYzI4M2IzZTU5ZTc2NWU5OGFlOWM3YTk4MDczNTI0MjUxIGxlZ2FjeS10cnVuaworNTcwODQgYmJiNGY0NjYzY2QzMjEyYzhkMTAwYzFhZGFiYWI0ODFiNjliMzFmMiBweTNrCis1NzA4NSA3YTU2MmEwMDk3M2VkNGQzNTI4ZDgyNzRlMWFlOWI1N2E2MTY0YTY5IGxlZ2FjeS10cnVuaworNTcwODYgY2VkMjdiOGYwODliYTViMDc2M2Q5MzZiMDUxMzkzYThhZTFmNTc2YSBweTNrCis1NzA4NyBjYjhjMWRkN2VlMzJiMDI3YTZlYzM3Yzk4ODUyMWVkODFiNzhjYTVhIHB5M2sKKzU3MDkyIDYwM2RjNTNjNDcxNjIwZTk1OWE4OTZiYWQ3Y2M3MzNmMGUwNjhhODYgbGVnYWN5LXRydW5rCis1NzA5MyAxMzViM2NkNWU3MjMyZWVmZjIxOTFmZTBlNDVlYTUwNzc5ODczYTllIHJlbGVhc2UyNC1tYWludAorNTcwOTQgZDI2NDEwN2M3ZGE2ZjZhMWJkNjM0NWM5NGYwNTVmZDE1YmU0YjQ4NCByZWxlYXNlMjQtbWFpbnQKKzU3MDk1IGExNzY4YmJkNzY4MTllZGI0OTg3ZTE5OGQ2Njk1MGM0YWMxNjc5NTAgcmVsZWFzZTI1LW1haW50Cis1NzA5NiBkOTdmZDQ0Nzc3YjJjMTJjODhmZTYwYzU5ODEzMmVkZWFkZTk2YzU4IGxlZ2FjeS10cnVuaworNTcwOTcgNGQyYWE0YmZiMmQ2MDE0YmU2MWEyNDNlNjg2ZTI2Y2Q0NWU4NmRlMyBweTNrCis1NzA5OCBhZjE4MGQ1NDZlYzIyMDI4ZTNlMTRmMzFhNjIyM2YyMWIyMDI4NGVhIHB5M2sKKzU3MDk5IDhkYmM5ODFmMDQwYjhjNGQ2ZjU3NTgwODhjNmM1NmI4MzcxZDNkODIgcHkzaworNTcxMDAgMTI0YmQyODI0OTNkNTU2ZDMzYWFhNWM5MWY4ZDU0MDYwOTU3MTQzMCBhbGV4LXB5M2sKKzU3MTAxIGQzYTg5ZDlkMmY1ZTA2YWYxN2M1ZDkwOTRhOTk3OWRkZjdjOWI2MmMgYWxleC1weTNrCis1NzEwMiA0NTE4M2QwYjIwYTc5N2Q4MWZhM2Q0YTJmMmM5YjkxNDU1ODQxYmNiIHB5M2sKKzU3MTA0IDg5YTNjYmExY2Q1MjQyMzA3ZjQ2M2QwZmRlNzI0YjIxZWQ2MzlhZjMgYWxleC1weTNrCis1NzEwNSBmMWEyZDUxZjFjYWIyODRmMTY3OGZmYzc1MmMwZjRmNzUxZTEzYTM3IHB5M2sKKzU3MTA2IDE4MTA0ZGJhODVlMzM3M2U4MTQwYmNkNzIwMjRmYjk1YWRiNTE3ZWIgYWxleC1weTNrCis1NzEwOSBlY2I3YjJkZDNhZjU4MDNlOGMwYzMzODEwMGU4MTMyYTk5NDAyOTRmIGFsZXgtcHkzaworNTcxMTAgMzQxMjQ2MTNiYzRkZGFiZmE3MTEyMDlhZGJiM2YyZjM1MDZiNjNiOCBhbGV4LXB5M2sKKzU3MTExIDQ2ZjQ4MGUxMTY2Yzg0YTdiZmVlM2IxM2Y5M2NkYTI2OWQ5ZmIzN2EgcHkzaworNTcxMTIgMGRlYmY5NDU1Y2RjMTc3NTg0OGQ3ODkwNDcyOWEyZWQzMzkyMWQ0OSBweTNrCis1NzExMyBhNmM0ODkyNWRlNTNiMDg2MGRhZjg3OGI1M2I0MDEyMTdhZTA2NDhhIHB5M2sKKzU3MTE0IDIwYWVjOWYzNDU5OGQzNTM5MTFkNWQ2NWM3Zjc2YjQ3YTkxOTU1ZTEgcHkzaworNTcxMTUgYTI4NTlhZTg5ZGE5MWExYmViOGFjNzdhNjA2YjNlYTUwY2UyM2M3ZiBweTNrCis1NzExNiA0OGEzMWIwYmY1MDE4YjM2MGYxYzhmOTEyNTc1ZGM4Y2E4OTAwNTI3IHB5M2sKKzU3MTIwIGI3YTViYzY5ZDJlZTViYjk0MzcxZjlmZjZmNDg1ZThkMzg2Y2FmZGYgcHkzaworNTcxMjMgN2IzOTFhNGVmODljZTJkMTNjMjlkMTIxMjk2ZTUzMTk5YTg1ZjI4ZiBsZWdhY3ktdHJ1bmsKKzU3MTI0IDEyZGQ2Mzc3ZmY4NWJlZDc5YWYxYWEzNzQ3NTQ3MWYzNmZkM2FkNzAgbGVnYWN5LXRydW5rCis1NzEyNSAyODFiNTE4ZTRiY2MyOGNhNDNlN2VkNjRmMDhiODU1MWU0Mjk2YzllIHB5M2sKKzU3MTI2IGZmNWFkYjMzNzRhZGNkZWNjNTU3NTE5MTY2OGMyODg4MTZjN2ZjZGMgcHkzaworNTcxMjcgMjA1NmQ4MzUzYTY4OWI1MTRmYWMwMjFhNDU5ODY0NWU4MzVmYTUxMCBsZWdhY3ktdHJ1bmsKKzU3MTI4IDI2MDZhZWFhODZkNDA2NWQ0YjVlY2Q4NjdjM2RkMGYyYmE4ZDIwMjYgcHkzaworNTcxMjkgZmNmNmRjNTFhZjU0MzFmNDI0MDVlYjFjMDAzMzcyZDVlOTQwOWFmMyBweTNrCis1NzEzMSA0YzVlY2MyY2NhYmRkNTJjNWVmMzlmNDdmMzQwODJiZjkwZTgzZWJiIGxlZ2FjeS10cnVuaworNTcxMzIgOWZjMjFjOGJhYmI5NmM3NjNkZDkxNGNlMGJkOWIyYmNkZGFlN2MzOCBweTNrCis1NzEzMyA2ZjQ5MjI4MDM0MTE2NmEyYTQ3YWNiMzAzMjQwZmE3YzAzMjMzZWFkIGxlZ2FjeS10cnVuaworNTcxMzYgODYxMGExY2E2NTBiMzQyYWVmODAxYTQzMTk4ZTYwZDVjMGNiYWIwNiBsZWdhY3ktdHJ1bmsKKzU3MTQyIGE1ZTk4NGVkYTQ1YTIwY2U3MDAzODhhNTMyNzUzMmY2NzJmODY4MzYgcHkzaworNTcxNDMgZTM5NDQ5MDk1Y2M1YWI2YWY2MTZhZTA5MWRhYWQyNzQ4ZWJiZGJkMyBweTNrCis1NzE0NCBjYzdiNWJjMjk3YzRlZDUyYTc1MjBjZTc5NDRiYzQ5ZDI0NDBiNzZlIHB5M2sKKzU3MTQ1IGE4Y2ExNGNlYzExY2Q2OGM2MDEwZDI0YmI2ZjA0ZmJjMzEyNDVmNGUgcHkzaworNTcxNDYgYzkxNjczMTMyMWMwYjAxZTgzOTliZDk2MzJiMzVjNjYwZjBmNDJmNyBsZWdhY3ktdHJ1bmsKKzU3MTQ3IGYyZjBlOTVhNzk3YmM3N2ZlMmIwMzk2Y2Y2YTc0Mjk5NjY2NWM3NWYgbGVnYWN5LXRydW5rCis1NzE0OCA1NmQ4Yzg3MWRjODZiMzlkYmRlZWVjOTUyZjk2ODVlMDYxM2UzNDJlIGxlZ2FjeS10cnVuaworNTcxNTAgOWM0ZjViMWQ2YjlkYjVmYWRkMjhmMWU3MTZlOTRlNTZhMDUzYjBmMyBsZWdhY3ktdHJ1bmsKKzU3MTUxIDk4Njc3NjQ1Njc5MTM2NWUwN2IzMjVmY2IyOGVhYzViODA2YWRhNGUgcHkzaworNTcxNTIgNzQ0NDY1MDlmMGYyNzZmMDJhNjVjMDAxODZkZWYwYTg0M2UyZDFlNiBweTNrCis1NzE1MyA5MjUxNWI2NDliOTIyN2UxNDQ3NjI3NjVkNjcwNTk0OTlmZjE4ZTQ1IHB5M2sKKzU3MTU0IDFiNGM5NTk3NGE3ZGE3MmRmODc5YzdkYTMyNTg2NTFkZWQ5ZDRmYzkgcHkzay1idWZmZXIKKzU3MTU1IDE3MjFmZjVlMjg2NGQ1YzA3YjIxMTNhMWJjNTg3ODgyYmU1YzVkN2QgbGVnYWN5LXRydW5rCis1NzE1NiA2ODc2YWU5MTdmYjFiYWM3MWJjMjk2MDFiNmViODBiNDY4NTAyZTk4IGxlZ2FjeS10cnVuaworNTcxNTcgYWQwNjMyN2UxZjM5YTczY2NkYzkzOWJlMDA4OWFmYWJhZGU3MmEwMyBweTNrLWJ1ZmZlcgorNTcxNTggYmMzMWRmY2Y3ZGZhMGQ0MTRjNGQ1YTRmZGQ3NTBmYmJmMjIwNDNkZSBsZWdhY3ktdHJ1bmsKKzU3MTU5IDM3ZDcwODU0ZDI1NTJjZTdmYTk1NTExMjhiMGFjZTM2YTlhNThlMWMgcHkzay1idWZmZXIKKzU3MTYwIDM4ZGZlZGYxZDJhYThhNTZiZjI3ZTg5YWUzNjFkZDdiMDg0ZDI2NTYgbGVnYWN5LXRydW5rCis1NzE2MSBiODA1NDEyNTFlMGVkMWVmZTM5MmJiOGJmMmNkZDk2MjMzZWEyM2IzIGFsZXgtcHkzaworNTcxNjIgZDg4NTkyZGQzYTYxMDkyYWM1MWU1ODQzZDBjMmMxNDFjMDgwNGU2NCBhbGV4LXB5M2sKKzU3MTYzIGM1OWY5OTQyNjgyYmIxZGNlY2U3MjljMTM2ZTM0YzljZjNhMmU0MmIgYWxleC1weTNrCis1NzE2NSBkZmZiZmU2MDc3NzRmMDczZmZjODljN2U4NmNjYzc2MzM2YTE1MGU4IHB5M2sKKzU3MTY5IGUwY2M4MzNmZGQzZWJkZTk3MjQwYmU0MjAyNmYwNDYxMDhmODhjYzYgcHkzaworNTcxNzAgYTU0ZDg2NmRjN2I0ZWZkMmViN2E3NzkwOGQ0Y2M4ZjZhZTMxMDgxMyBweTNrCis1NzE3MSBhZjEyYTQ2ZGY3MzdhZDE2YTZiYzkzNGFjZTE5MWI2ZTNhYWNiOWQ1IHB5M2sKKzU3MTc1IGE5MzFjNjAxNWI5MTdhN2ZjNjdiMDNlMjQzMmIwODc0MmE1NTBiZjkgbGVnYWN5LXRydW5rCis1NzE3OCA2OTc1MGIwOThlYTI0N2VkOTM3NjQ2YjczYTdlMmJmZTcxZWQ3MTljIHB5M2stYnVmZmVyCis1NzE3OSAwNjk1MGJkMDRlNjk2OTJjMjhkNGYzMTkzNjIzMzYxN2Y0ZDQzNDkyIHB5M2stYnVmZmVyCis1NzE4MCBhZDQ3ODhkZjUwNGUwOTY0MWUzOTU2MzFiODJhNWVhODk4ZWQ1MmEwIHB5M2stYnVmZmVyCis1NzE4MSA4NWMyMmI0ZDQ0NTU5YjNjNWY0MjY5ODc0ZWNhNmQ3M2M3NWI4YzU2IHB5M2sKKzU3MTgyIGIzY2E3ZjViNTM3YzVkNzJiZmEwZjlmY2Y2MzFjZDkzMTM1ZDY5NzQgbGVnYWN5LXRydW5rCis1NzE4NiA4MWI0NWMwZGEyYzhiOGE2NWIzMTNmMjEyNzFlM2YyNTQ2MGQyNzI5IHB5M2sKKzU3MTg3IDc2ZTA0OTczYjE1ZGZkMGNmODIwNmFmZGZhOGMxMDAzYjMxMmFhNDggcHkzaworNTcxODkgZWQ5N2E5ZDFjMzQ3MzQ0MTJhMjQ0ZDI3NGM5YzA1YTc1N2RhNzhkNSBhbGV4LXB5M2sKKzU3MTkwIDBiYzljZjFjZjk1OTE4OTgyOTVkYmQ2YTBkNTJkN2QzYzVmY2Q2MWYgYWxleC1weTNrCis1NzE5MSA4ZGNlNmUyODcwZTgwOTNlNTYzZmJmNTEwYzg3YmE1YjhjMTA4OWE1IGFsZXgtcHkzaworNTcxOTIgZjc4YmY1ODQyNzllNmRkNzM3NzJjNTQ0N2RkZmVjNjM1NjM2Mzk2OSBhbGV4LXB5M2sKKzU3MTkzIDJjNTFiZTk5MDRkZTFjY2U0NjgyYjcwMmU5ZTViMzgwZjQ1NDEzZjUgcHkzaworNTcxOTQgN2U1ZWZmODdkNjY0YTAwOWY5ODNlMGFmZmY1ODk1N2Q0MTk5M2M2NyBweTNrCis1NzE5OCBmY2EzNTQxNjA0NTg1MThkYzk3ODIyYjY1N2JlYjhmMGYzMWFlYjE3IHB5M2sKKzU3MTk5IDZiNTMwZTAyOWIzYzNkODNmYjc1ZmFhZGQ3ZjcwYzEwNGRkMjE1NmEgbGVnYWN5LXRydW5rCis1NzIwMCA5NWIzN2NhZTQ3YzRmN2VjMTY2MzM5OGI0YzUyN2QyMjNhOWE2OTU0IGFsZXgtcHkzaworNTcyMDEgNzM5ZDMxMDUwOTdmZTAyMmViMzRhNjE0OTMxOTZkMGQyOTU3M2U0YSBhbGV4LXB5M2sKKzU3MjAyIDY5MmY1N2E1ZGM3NmExOWEzZjk2YmIxODdlMzk0Y2RiOGI2ZmUxZDggcHkzaworNTcyMDMgZDAzZWI3NzQ1NzZhM2U2ZTQ5MTkyZjM4YTM5ZjY5MGJhYWY5N2M5NyBhbGV4LXB5M2sKKzU3MjExIDcwNTQ2MTVmMzdmZTYwM2E2NmM0ZjZmMDA4MmQzNDdkZmZlZDZiNGUgbGVnYWN5LXRydW5rCis1NzIxMiBjZDQ1OTFiNzU0ZTAxMWQzNmE4YTI1OWI3YWFlZWNkOGYzZmNjOTNlIHB5M2sKKzU3MjE0IDU4NWQ4YmVjZTgyNjdkMDU5OTg2ZmNmN2IwYWJiMjVkMjNlZmVkM2YgcHkzaworNTcyMTUgOWEyZjM3OTQxYjJiMDVjYjU0MTAxYTVmYzA3OTJkNzFhNWQ4MjU1YyBhbGV4LXB5M2sKKzU3MjE2IDBmNTBlMDkxYTM2ZmVjNmI3ZjU2NGRlMjAzMTRjNDA5ZDZkMjBiNTMgbGVnYWN5LXRydW5rCis1NzIxNyAxNTA0N2IyYWNkM2Q1NTQwOTI5ODNiOWJkZTJmYmUyMTg3ZDc3Mzk0IGFsZXgtcHkzaworNTcyMTggMDQ5OTNkOTZlNzM4MTYzMGNiOTBmZWNkZGM0YmYwODE4NDJjNjNjYSBhbGV4LXB5M2sKKzU3MjE5IGMyM2RjZDk0ZGNjZTAxYjYwNGUyYWQ5YzNlZjMyNjEwMWE5MjhiNWYgYWxleC1weTNrCis1NzIyMCAzNjQ1ZjBiOTQ5MDhiYmFkYmE3MzY1M2I3NjM5MGMxMjU5ZmVmM2FlIGFsZXgtcHkzaworNTcyMjEgYWY2YTcxOTBjYWJjYjNhY2Y5YzMxYjcyZmY3ZThlMDFhYjZiNjMwMiBweTNrCis1NzIyMiBlNzFjMzIyMzgxMGYyNDViZTBkZDUzZWU2ZGQ3YTMyMmM5ZGRhODFkIHB5M2sKKzU3MjIzIDJmNDY3OTMwMTEzMmU4NWU0OGI2ZWU1ZDg1NzI5NGQ0OGZmZTdkZTQgcHkzaworNTcyMjQgNWFiYTk2NDY0Yjg3OTdlYTEyMDNlZjU4ODdhZTVjMDQzZjM1NzgzZCBweTNrCis1NzIyNSA1YzA4NDcyY2ZjMzQ1YzhmNmI1MGY4M2QyMmEyODlmMGM2OTJmMjU0IGFsZXgtcHkzaworNTcyMjYgOTU0MmUyZTZlZjAyYjJmOGE3YzczY2Y3ZDc4NTcxYzRiM2ZhMGQ0NCBhbGV4LXB5M2sKKzU3MjI3IDQzYjM1NGE4Zjc3M2NmNTI3YjI0NzJjNDEzOTQ3ZTk3ZTlhNDhmYmQgbGVnYWN5LXRydW5rCis1NzIyOCBkMGYzZDI5YjcwOGQzMDhiYTBlNjQzMmFjMGU2MGFiZTgzYjM4NGYxIGFsZXgtcHkzaworNTcyMjkgZGRmZjUyMWFjN2YxYTkxMTYwNTU4M2I1NzY2YzBmNzQ3YjgyYWRlMiBsZWdhY3ktdHJ1bmsKKzU3MjMwIDhkN2ZhOGE1YTdlMzhmZTViNjJjMjBjZDUzN2U1Zjk5MTAzMGQ2ODMgbGVnYWN5LXRydW5rCis1NzIzMiAyYjRmZWUxZDQ4NjFhYzNjYjgxZjhmMzA3ODgxNGZhZGQ2NGI4OTdkIGFsZXgtcHkzaworNTcyMzcgNDQ3NGZmMTBiYjBhMjJiOTVhYmVlYzhlZDU0Y2JlZWY0ZTUwZDQ4YiBweTNrCis1NzI0NCBhYjdhNmU3NGJiZjIzODE0Njk5ZWNmNDMzNDhjZDRhMDM2YTU3ODk2IHJlbGVhc2UyNS1tYWludAorNTcyNDUgNGYxMTI1NTk1OGJlOWYyNDc2OWM1ZDY1YjM4MWIzYmNiYTI3NjJlMSBhbGV4LXB5M2sKKzU3MjUxIGMwNDBkYmI2OWRmNzFjOTEwYjI3MTQyMzcyYTc2NDFiNTg2N2VhNTAgYWxleC1weTNrCis1NzI1MyBlZTllYmJmNWYzZGM4YjAyZDI1YjliNDdmNDc0ZjA5ZTZkYjZiYzhiIGxlZ2FjeS10cnVuaworNTcyNTQgNjJlZWU3OWRlOTIzYWM3ZDRjMTE2ZTRlOWMzNTM3NmMwZjFlNjEzZCBsZWdhY3ktdHJ1bmsKKzU3MjU1IDFlZmU5YjEwYzRhNmYzMmFiYTZjNTRlZGNlNjA4YzJiOTY2ZGQ1NTggbGVnYWN5LXRydW5rCis1NzI1NiBmYWNkZDc0YTBiZGQxYjc0ZDMzMjBjODIyMGZiOTVlZjY4YTdjMjQxIGxlZ2FjeS10cnVuaworNTcyNTggNWJmNjhmYzczOTIzYTk2OTg3YjcyMGZiNDI1MWQ1MDNmNDZlZTcxOCBweTNrCis1NzI1OSBmMzE4MWU5ZmRlNGQ3YTBlNWI0NjYzZTMzMmI1ODNlNWVlNTBkMzkxIGxlZ2FjeS10cnVuaworNTcyNjAgZGU2ZjMwYzYyNzMwNTQzNzA3MmQyYTkyNWRlNGRhZmMwM2I2OTY0MSBhbGV4LXB5M2sKKzU3MjYxIGQ5ZTM3ZDI2Zjc4ZTk1OTIzNWM4M2UyNjg4YmVmMTdlM2FjM2ExMzMgYWxleC1weTNrCis1NzI2MiA2ZDI1MjgzOGQyMzA2Mzk3ZDFiMDdhZGMwZTg5MTIzNTVhNjBjM2E5IGFsZXgtcHkzaworNTcyNjMgYjkzNzkyY2VkOWU4MGYxNjZiYWQxZDhlZjAyYjY3ZTAyZDI0YWRjZSBhbGV4LXB5M2sKKzU3MjY0IGFlY2ZmOWUwZWVhZTRkOWY4NDcwMzY3MTU5Zjk1YWMwYWI0YjIyNDMgYWxleC1weTNrCis1NzI2NSA2MDU0ZDdkMjM0OWYwNDYyNDZhMWY1NDE0MTM5NGZlMjE0ZTZjMTk5IGFsZXgtcHkzaworNTcyNjYgMjA4MTExNjEyNWNlYTlmNTY4MmRjMGZlYzRiNmY1NTVmMjJiOWE3ZiBweTNrCis1NzI2OSBlNzY5NmZjZTMzNzYxMGJhM2RlMWE5NDlhM2ZjMzI3ZTI2NGU2ZTA5IHB5M2sKKzU3MjczIGEwM2YzNzhjM2JmN2JmMmM4MWNlNWQ2YTg5MzBhNTU2ZTQxOGI3NDcgYWxleC1weTNrCis1NzI3NSBjOTQ3YTA0NzY4ZTQ1YTIzMTFkYzBkYWExZDI2MTQ2NTI1ZWM5ZDZhIHB5M2sKKzU3Mjc2IGUzMWIzODdlNmQ3NzVjMTA1YWIwZGRlOTAxYjNjOWU0ODY4NGU2MTAgcHkzaworNTcyNzcgMDA4MWRiYWNiN2FhNjEyMmNjM2UzNTY4ZGU2MGRiYjFiNmQ1MzNmNiBweTNrCis1NzI3OCBkODAwYTljZGFiNzY0NjQxMzg4MGQ2MjZmMWQ0ZjQzMDk3MGJjMDVlIHB5M2sKKzU3Mjc5IDNiNGUzOWU4MzE5MzIxMmMzZTU2NjNhMTdkMzkwODg2OWMxMGFjYzAgbGVnYWN5LXRydW5rCis1NzI4MCA4NGM1YzA1MjRkM2NlZjdkY2Q4MjYxZmI5Y2JkYWIzMjUzOGM0NGYyIGxlZ2FjeS10cnVuaworNTcyODEgMjY3M2NkZWQ4ODU1NDUxMGMwMGZiZDE1M2U5N2Q3Y2YyYjZhNGVkOCBweTNrCis1NzI4MiA3ODIzNzBjOTM1NzU4ZTY0MzM0YzRiM2UyMDllMWQwODA1MzRiNDExIHB5M2sKKzU3MjgzIDhiYWQ4NzIyZjBlNjQyOGQyYWI3YTA5Y2UxYzRhNzc5NjRjMTIxNTQgcHkzaworNTcyODQgMDkyZjAyY2YwMThmOWQ5Mzc5MDAzMDIyOGM0MjhlNmQyZGVjN2E4NCBsZWdhY3ktdHJ1bmsKKzU3Mjg1IDFiZjE3ODU1ZThlODVmMWYzNzYyZTFiMTI1YmFjNTU2ZmFkZjhjOGMgcHkzaworNTcyODYgOGI2NDAwZjk3MTZmZWUzZGJmOTRiODIyZWIwMTU2YzA0MGUxYTdlYSBsZWdhY3ktdHJ1bmsKKzU3Mjg3IDVhMjBlZTgwNTgxOTU4YjAxNWMyOTNmYzkzMTNkNzU3N2MzNjY5MDQgcHkzaworNTcyODkgMGIwNjA2OTY2MGMyMmJlYzJlN2Q3NDg1OTViODllNDk2MDdiM2UyNSBweTNrCis1NzI5MCA5ZTgxYjIyNjg5ZDJkMTdkYzNkMjE1YTQ4MTRiYjY4YzY3ZTI2ZGIwIHB5M2sKKzU3MjkyIDY4OGNkNDM5OGY0NDY4NTYwNmEzNDI2MjgyZmI4MWFiNGIzZmU2MTYgcHkzaworNTcyOTMgNTA5OGM2ODc5MDkxNmY0ZGMyN2NjYjIwOTYxMzI2NGRkYjhhNzFlYiBweTNrCis1NzI5NCA1ODkxNzUxNGU0MjNlY2YyMWYxYWQ2ZGI3YzYyMmM3YjM0MTYwZTc3IHB5M2sKKzU3Mjk2IGFhZDE3YjFhYjBjOTJkYjNiYTgxZmJlNzA0NWZkZWIzNTNiZmIxOGEgcHkzaworNTcyOTggMmVjMTZiNmI0ZDA0NDIzNmI1ODk4YTQ3ZjgzNzkwNDUwZGZhMmViMyBweTNrCis1NzI5OSBlNGFkZTE2YTY5NGZmNTQ2ZTBhNTNlYTU4ODcyZTZhYjNmNzRiZTFiIHB5M2sKKzU3MzAwIDI2YjI5ZjdiOGZmZDhlZjlmYWFjM2E4MDhmODUxM2ZiYjI3ZTcwYTkgcHkzaworNTczMDEgMTk5NTA0ZmI5MWM1ODBlNmM2YWZhZGYzZGRjMzlmZmY1ZGE0ZTZhYiBsZWdhY3ktdHJ1bmsKKzU3MzAyIDdmZTI4NDhmZDQxZDc0NmNiODk0ODRmMDBiMTZiOTY5ZDA3MWU5NjggcHkzaworNTczMDMgYWU4M2VmYjczNTA2ZDI1N2VjMzEzYWE3MDBmZTA0NDgzNTc1NDQ0MiBweTNrCis1NzMwNCBlYWUxMGQ5YzljNGVlZGI1MTk4MTIxODZiNzQzZGRiOWVmNTFmMmRkIHB5M2sKKzU3MzA1IDUwNmI5MTdkMjM2M2E4NzBmYzYwMTY1MWVjNzg5YTA5YzBiNTY4MTUgcHkzaworNTczMDggMzI4NDMwN2E3MzUxOWE5ZDViZjQ1NzIzYjIyODM1ZWQyZjc0NjJlOCBweTNrCis1NzMxMCBmMzQ3NmU5YmJlNmFiMzYxMDYwM2YzOTA5MDI2Mjg1NGRjNjQ4MGQwIHB5M2sKKzU3MzExIDdmNGQ5M2UwMjk1Y2FjNWI1ZmQwZWJjZTc5Y2IwNTU2ZjMyYjYzMzYgcmVsZWFzZTI1LW1haW50Cis1NzMxMiBmYTlhNDBlZjA3ODBkZDc3ZmNjYWM3ZDdiOGY4MThiNWY1ZGI5MjA0IHB5M2sKKzU3MzEzIDA2ZGU2MmYzM2MzNzdkNjMzYTFiZmM0MDZjYzgyNWRhYWRiYTUwNjUgcHkzaworNTczMTQgYTlhNGNmOTFjYjdlN2I1Y2ZlYWIxNWRhYmIzMGFmZWQzMTNlMmZlOSBweTNrCis1NzMxNSA4MGJjNjg4NTBhMDg2MGRiMWM3ZWZkYzE3YTExNWUwZGY2NzlkODM4IHB5M2sKKzU3MzIwIDI0ODBiODY0YmUwMzk3YTYwNWE5NjgxMjk1MjYzYTc0YzQ2YTMzMDQgbGVnYWN5LXRydW5rCis1NzMyMiBkZTFiYWNlODFlNmVkMmE0ZTUzYjg4YTNiNmNlODk2MThiZjQ4OTlkIGRlY2ltYWwtYnJhbmNoCis1NzMyNCA4ZTg3ZDlkNmU4MTI3NWMxMjRmNWE3YjE2MDhkMmI1MTJhZTBiODIxIGxlZ2FjeS10cnVuaworNTczMjUgN2E3NWNkMjhiMTI1ZDNiNmViOTkzYWM2MmYwOTY5MTg2ZjI4ODA0NiBweTNrCis1NzMyNiBiMzQ4NTUwYTJiZmM2ODhkNmFiZTdhNDdkMzZhMjA5YThlYzk2YWU4IGxlZ2FjeS10cnVuaworNTczMjcgYmNiZGM5NWRmYmE5YWE1NDNmMDQxM2VlMzk3MzVhOTZmNmIwYTI5NiByZWxlYXNlMjUtbWFpbnQKKzU3MzI4IDkwODczMzdmM2EzZjg5OTFkZmUxMmY3MTRkOGUzYWFiZmNlMDM3OGEgbGVnYWN5LXRydW5rCis1NzMyOSBhOTExY2Q5ZDE5ODkzYmU4ZjRkZjg5NDhkMzljYmMwN2RhNzBjOTM3IHB5M2sKKzU3MzMwIGRkZWZiZGJkYmNiNTFjZTBhYjE4N2E1MjU1ZjMzOTE0ZGNkY2UxNDggcmVsZWFzZTI1LW1haW50Cis1NzMzMSBhZGI4M2Y0YWM0Y2JlNWUyNWMwYTJhY2VmYWM1YzYyMWMxMmQ1NTdiIGxlZ2FjeS10cnVuaworNTczMzIgNzI5ZmU5OWI0MGE1NzJkZWM5ZWZhY2FmMTZjM2M0NWE2YTlmM2VmYyBkZWNpbWFsLWJyYW5jaAorNTczMzQgNGVkZmM1OWI3MmIyYjRmMWRjOWMzYzhlOGQwNGZjZTcyNGNmZDAwMyBkZWNpbWFsLWJyYW5jaAorNTczMzUgYWY4ZmM0NmQ0YjU2MTc4ZWZmMzYyMDMzMDA0NTQ2MjI2MWM3OGEyZSBkZWNpbWFsLWJyYW5jaAorNTczMzcgNzFjNjhkZTNiMWM1NzRkOGFhYWE2YzdiMDFjZjQ2MDU4NzdlNjgyMiBweTNrCis1NzMzOSBmNTNmMWExYWMwMTY0MGY4YjNjM2JiODA3YzFkN2UxZDZmMDQwY2JkIGRlY2ltYWwtYnJhbmNoCis1NzM0MSBhMmNjMDE4ZjM3MDBkZDQxOWZlM2FiNGY2M2M0N2MwOWViMDM4MzdhIHB5M2sKKzU3MzQzIDkwODBjYzc2ZGE5OGYwZTEwOGYxZWU5YWM4ZmY0ZTFhNDRmMTQ1NjMgbGVnYWN5LXRydW5rCis1NzM0NSBlMWNkZDZlZTkxMGU3ZGIyM2Y2YjdhMzhmODcwMTY5ZTZmNTM3YmMwIGxlZ2FjeS10cnVuaworNTczNDYgMDBmOGIyNDgyNzY0Y2Y2Y2ZjYjhlMjJjYjQyNzY3NzgxNWE4ZGJmZSBkZWNpbWFsLWJyYW5jaAorNTczNDcgMDMxOGFiY2ZhZjM2YTZmZDY4NGZiODEwYWYxNzYxNGVjZWJlNDBjYyBsZWdhY3ktdHJ1bmsKKzU3MzQ4IDk1MjA1NzljYzMwYmZkY2E5YTc3Mzk3ZWM4MzcyMWRlZTk2YTAxM2YgbGVnYWN5LXRydW5rCis1NzM0OSA4MTg4NmUwNWZkNDAxNmFiYzRlYmMwZWE4MWRhZTQyMDc1NzgzOTRlIGxlZ2FjeS10cnVuaworNTczNTAgYTE1NjU0MDQ1OTllNWVkODZmNjgwOWRlZTg4ZWMwNjY0YjcwOTQ2OSBkZWNpbWFsLWJyYW5jaAorNTczNTEgMjY1MDBiYTA5ZjcwYzYyMDU3ODRiYzhhMWMyMGM0MWMwZGJmYTRhYyBsZWdhY3ktdHJ1bmsKKzU3MzUyIGUyMDQyZWMzMzBhNDU1NTIyOWEwZjFhMjRlZWJjMjhlZjEyNWE5ZjIgbGVnYWN5LXRydW5rCis1NzM1MyA5YTM0N2JhMTdjYWIwZThmOGFkYjJlMDA5YTFkMmU4NThhNTFiZDNiIGxlZ2FjeS10cnVuaworNTczNTQgM2VkNzgxNGNjYTM2NmQwOWY3ZTFlNmI1NGVjNDZkY2I4MzFhZjA3NyBsZWdhY3ktdHJ1bmsKKzU3MzU1IDc3Y2YyODA4ZWVhNjM3NTExZTYxNmYwNTAyNmE5NTY4NTYwYjQxZWEgbGVnYWN5LXRydW5rCis1NzM1NiBjZTUyY2Q3MWE4ZDlhMjdjMTBjNWE5MDllMTMxZDg3NmJlMzBlNGEwIHB5M2sKKzU3MzU3IDIwNzNlYTMwMDVhNzg3OWViNTk3MDQ5ZDQ3ZTdkZGY2YmI2M2NlNTIgbGVnYWN5LXRydW5rCis1NzM1OCA3OTIzYmZmMTkyMTJiMDM5YzM1YTc4MTYzZWQxNTZiNDQ1ZjE3ZjhhIHB5M2sKKzU3MzU5IDA3N2ZlNzg2MGNjOWIxODY4NTVmNTQzZjFhMjZlNDQ1ZGQ3YTdjMzAgcHkzaworNTczNjEgMWM5OGI0NDVkODQ3MDk5YzI2NTJhNzU3ZDQzNTE0ZjcwZDgyNTFmMCBweTNrCis1NzM2MyA0MmIzOWNiNTM2ZDllNGI1OWY0OTU5ZjY5ZmVkMDI5ZWViODBkN2VmIHB5M2sKKzU3MzY0IDBiNjI1MzlhY2ZiOGRlZDY3MjUxYzc1NDhjNjZhYzhjNmRiMzRiYjggcHkzaworNTczNjUgZTc0NGEyMGVkOGE2YWRiZjA0NjMyYjdiMjYyY2FlNTA5ZTI2NTM1ZiBweTNrCis1NzM2NiBmOTRjNjhmY2Y3OWRjNTI2MmNlNWM0YTNhMDA4ZWU3NmU0MThkMmM2IHB5M2sKKzU3MzY3IDI3M2FjZTM1OWU1NWU2Y2JiNTY3MDhhNGJiMzZkODU0OTkyMDBjY2YgcHkzaworNTczNjggZTNlMDZiMzg5NDA2YTkwYTM0ZTU5ZDc0NzRmYTU2ZWExYmRkNjc3OSBweTNrCis1NzM2OSA1NjdjOTIzY2IxYzYxZDkyZTViNzQ4Yjk0Mjk4NTRjNzZiNTVhOTZhIHB5M2sKKzU3MzcyIDgzYzg0NDhjNmRlNDExNWFkOTIxZWQwZGM4MjhlNTU2MDM5ZWQ0YTcgcHkzaworNTczNzMgNjZmNzNjZTk3YjMyZDcxNGEwOTg5Nzk4OTliNmFkNmVjZTc2NmY2MSBweTNrCis1NzM3NCBiNjI2Yjg0YjUwNzA0NTEwMWUyYzIxYmYyMDBjZWNjMmFmNGRiZTliIHB5M2sKKzU3Mzc1IDE5ZGE0MWZjMTE3YTAzYWQ3ODY5ZWNlOTdiMWY3ZTM0ODJhMjMxMDMgcHkzaworNTczNzcgYjE5N2MxYzA0YmExNTg2OTIxMjQ0NTJkOWY4YjBlNmQxOGM0MDMyZCBweTNrCis1NzM3OCAwNWZlMDI3ZTJkODA5ODI4NGRkODk3OGIzMjlhOTk5NTExMzEzNzQwIGxlZ2FjeS10cnVuaworNTczNzkgMzE0MTUxNWY2YzQ1YTI4ZWNkMWM2MmU3YTc2YzM5NjE5YzE5NzY1ZSByZWxlYXNlMjUtbWFpbnQKKzU3MzgwIDJiOWIyMTQwMjY1MDQwZDAxYjY1NDQ1MTAxZTlkNDgxMTQwOWM5NjggcHkzaworNTczODEgZDNiYWFiMjA5NjI2NDllMmVmNDIzOWFkNDc3ZWJmNDk4OWJkMzMwZiByZWxlYXNlMjUtbWFpbnQKKzU3MzgyIDczMjMzMzE4NzZkZDQzOThkYzJlMWNkYTFjNTU1M2QwNWEzZjdkZmEgbGVnYWN5LXRydW5rCis1NzM4OSA4OTAxYTdjZTZjMDc0NWIyZWNjODI1M2FmNmM3Mjc1ZDFlOWVkZGQ1IGxlZ2FjeS10cnVuaworNTczOTAgM2ZiYTE0ZWM5YWFlYjQ4M2NhOWExMGI0ZGNiNTZhYWMyNDYyYmI4ZSByZWxlYXNlMjUtbWFpbnQKKzU3MzkxIDJjNDIyYTQ5NzJmMWM5NTYwNmRkZmU2ZmNlZjAwZDEzZmJjMzY4OGMgbGVnYWN5LXRydW5rCis1NzM5MiBkNzUxN2MzMDY3OTE0NWFhMGNjZjg2ZjE2ZTZkODEyZDA5YTc0NDNhIHB5M2sKKzU3MzkzIGMzYjUzZTA3NGVkMTFiM2I4YWRkMmU2ZGE4ZTdlYmZjMDFjM2I4MTUgcHkzaworNTczOTQgOTQyODYwZjhjZDk3ZTljNTgzYThlYjkxZmJhOGY0M2Q1MWU2YmJkMyByZWxlYXNlMjUtbWFpbnQKKzU3Mzk1IDU4ZjM1ZGYwZjZmNDg4NmQ0ODlhNzEwNGM4ODY3NGJmNTgxZTc3NTQgbGVnYWN5LXRydW5rCis1NzM5NiA0YjcwMzZkYzc2ZDU1OTIxOTc4ZDZkMDYyYzMxMWY3YmY4YjE3OTRiIHB5M2sKKzU3Mzk3IGUyNTc4ZjMwNDJiMmQ1Mjc1NjRjYjc1NWU4NWRjNmEzYzBkMjg2ZGMgbGVnYWN5LXRydW5rCis1NzM5OCA4YjFiMzI3MjU0YzBkMzUxOTlkZmQyMWIwYjM4ZmZiMTg3ZjkxYmU5IGxlZ2FjeS10cnVuaworNTczOTkgMjU2YTRkM2M1ODFmNzJkNjRlZDMzNGU0ZDRlMjNhMWViOTU2ZDQyMiBsZWdhY3ktdHJ1bmsKKzU3NDAwIGY3OThjMzY2MjcwYzBmYmNlMzZkMDNiMTQ4Yzc0ODMxYmIzMTgzZTkgbGVnYWN5LXRydW5rCis1NzQwMSA4YzU2OTU2OTcxYWRlM2VkNjU2ODk3MmU3YzEyODM3ODRmNzY2ODFjIGxlZ2FjeS10cnVuaworNTc0MDIgMzAyNWU2NzZlNjY5MTgzODEzOTNlMzU0ZTMxYTZhNjQwMzEzYmY0YiBsZWdhY3ktdHJ1bmsKKzU3NDAzIDA2NmQzOWZhZDQwOGUxZDFkNTc5ZTJiZjM4ZTUzNGEwODI0MjNjMGIgbGVnYWN5LXRydW5rCis1NzQwNCA0OGQ5MWYxNTU4YTAwOWQ5NWU1YTYzNmYzOWY2OTY1YzAxYTEwNTZjIGxlZ2FjeS10cnVuaworNTc0MDUgYzZkNjMyMWRjN2Y5NDJjMThmZjY0ODg2ZjExNDU0MzliZGE0NzFiNyBweTNrCis1NzQwNiA3MjFjM2VhMTNkODRhM2MwNTlhMTM5M2E5ZTJhM2E0NDQzMTEyZWVkIGxlZ2FjeS10cnVuaworNTc0MDcgNjEyNGIyZWY2NTEyMDE2MTllNDBkNjdhYjM5NTY1NTE0YzYwZjZjMCBweTNrCis1NzQwOCBhNmU1YjM4NjhmM2Q4MjQyNDIzMGM0YTcyY2EzZjVkZjA3ZjA3Y2FmIGxlZ2FjeS10cnVuaworNTc0MDkgZTQyZTdkMDMxNzNiMzE0M2I3NWU1ZDAzMzg3ZTI1NzA3YWI0MDhjZCBsZWdhY3ktdHJ1bmsKKzU3NDExIDYxZmI1OTc5MTdkMWNmOTc2YmVhYjAwZTA3YjllYWNlYTcyOTNjYTAgcHkzaworNTc0MTIgODQ2MThiMjA2NGMxNmFjMzYzZTU4OTI1YTQyYjdjMTAxMTNjODIwZCBweTNrCis1NzQxNCA2Y2Y2YjgzMWFiMzZjZTA2ZTBjNTRmZmIxOGIxNzM1YzJhZDM2Nzg5IGRlY2ltYWwtYnJhbmNoCis1NzQxNSBjZjJiMzdiOTBjNjZmNTQ5NDdjNmJmMTExNGJlN2QwMDk5ODIwMjAxIGxlZ2FjeS10cnVuaworNTc0MTYgZTFhMzY1NTlkOGI2ODk3OGFkNjZjMjgwM2I1NDZlYmQ5N2NjYzczMCBweTNrCis1NzQxNyA4ZTk3NzExZmFkYzE0NzAwNzIwNTQxNjBjM2MwYmI3OTlhYzU4MWFlIGRlY2ltYWwtYnJhbmNoCis1NzQxOSAzODM2MjBlNjJlZTY0YzRlNGEwN2NjMmJhNTIwMDc3OWJjMTdjNzgyIHB5M2sKKzU3NDIxIGIwYTcxYmZmYTBhMWY3MTM2ZjNlYzg3MGQwOTgzNjgxYmNmYTljNzYgcHkzaworNTc0MjIgZDAyNjEwYjBhOWYzYWNkYzVlNjI5NzIyNzg5NDhlOWQzODMzMmU2NSBweTNrCis1NzQyNCA4ZTYxNzI3ZGI1MjliNWIxNjhkNzNlYTExNjA4MTI0YTRiMzgwOWIwIHB5M2sKKzU3NDI1IDQxZGE0OWM5N2E1OWVjNmY4MjcxNjFkYTZmY2I3ZTU1ZWFmNTRjNmEgcHkzaworNTc0MjYgMDFlZTYzMTFiYTQ2OTRjMmM1N2NkMzhlZTEyYjhmNDM0NWFlMDc1NSBweTNrCis1NzQyNyAwOTk0OTU4ZmZkNGZkNGQ3MjhjMTFmNWZiNTJiZmJiYzlmOTkyY2QzIHB5M2sKKzU3NDI4IDY5YjhlMjk3NjU1NjVhNzQzMWRkYjliNzg2NWMyZTk0ZDhiZjJhZjkgcHkzaworNTc0MzIgM2NkNjBmNzQ0ZjhlOTNiNjAwZDQ3OTgzMzM4ZDAwNTU0MzYwNTQyOCBweTNrCis1NzQzMyAzY2I1ZGVmMTg2NWRhNjU4MGVlMmJiODc3N2NkMmE1ODhlMTYwMTQ0IHB5M2sKKzU3NDM0IDc4ZjdlZDdkODA2NDljMTE0YWUwNzYwN2IwNzlkMzRmZWM1YTBlZDMgcHkzaworNTc0MzUgNTk5NTE0Mjg5MjI2ZTFhNDk5MGFhOGM2ZTVlYWNiMGEwMmI2ZDM1ZCBweTNrCis1NzQzNiAwMGUxMjhiNTI3MmY1NWVhZjY3MjM4ZDI0YzA3OTg0NzcxNmE1MzY3IHB5M2sKKzU3NDM3IDc3NmI4YmQ2OGIzMDFhMDY2YjUwM2JmZTlkMjQ4NDA1NjMzMDgyNzUgcHkzaworNTc0MzggMmMyZTkwNTg5NGEzODBjNjU2ODg5YTY2MmQ1MjIxYTAyYzQ2YzNjMiBweTNrCis1NzQzOSBhOTllYzRiZWZkYThhZGZmNTI2ZWFjMDQwYzdkZDlmYmRlNmE2MjllIHB5M2sKKzU3NDQwIDc0Yjk5M2E4YWQ2ZmVmNzMxOTQzNjU5YTE5YzEwYjgxNTEwNDc5OTcgcHkzaworNTc0NDEgM2Q1ZDA5YjQ1MWI2NmEyZjg1ZTRjNzJkYzcxYTFmZGJiYWRmYjg2MCBweTNrCis1NzQ0MiBmODFkOTRjMDVhMGVjZGE0MWRlMGQ5OGFjNGU3OWEyNmI5Zjk4MzdjIHB5M2sKKzU3NDQzIDg3MmM3YzNmMGFmMzU0MDBlZmM1MDZmYjQyZjAyY2EwM2FhZDA4MGYgcHkzaworNTc0NDQgNTM1NTMzNzcwOWUxMDk1MGJjNmUyNTZmODVjNDNjODgyMTRhYjg3ZSBweTNrCis1NzQ0NiBmYjU4ZmIzYmRkYzE5YjlkZDY5MjcxZTg1OTczNjU1ODBkYjNiYmJiIHB5M2sKKzU3NDU1IDFiNDIwZTZlMDBlYjE2NGE1ZmQwMDQ3YWQzMDMyMDk1MGUzMjMyZmUgbGVnYWN5LXRydW5rCis1NzQ1NiAyMmJiYWZhNjkzM2JkOWZjZDAwMjc5ZTc4NTBmMzExNjRmYzlhNmNkIGxlZ2FjeS10cnVuaworNTc0NTcgYmIyODhlMDRiOGU1ODg0NmM5YzNiMTNhZjc4YzU2OTljNzQ2OWI1MyBweTNrCis1NzQ1OCAzMDJhZWVlMzJkYTgzYTQ5ZmM3NDhlZDEyMDZhNjdkNzI0NTIxNWJlIHB5M2sKKzU3NDU5IGJkOTNhYzMwYzc3OTUyYmY5ZDIzNzY3MTYwOGViOGNhNzhjZjdhODEgcHkzaworNTc0NjAgMTg0ZjgwMGZkYmY2Nzg1ZmNkZDQ2NWZkN2ZmNWEwZjJhZDc4NTBjMyBweTNrCis1NzQ2MSA1NDNmMmJhOTdmYWI5ZDdkMWU2NGZlMTYzZTY2MDJiMjVlZjkwOTVhIGxlZ2FjeS10cnVuaworNTc0NjIgNzgzNDBjY2VhMTRiZTQyZTcwZjM3MzIwYTEyZmMwN2Y5OWI1NmM1ZiBweTNrCis1NzQ2MyA2ZDEzZTE4ZjcwNmFlMzk2OWRmZTk2OTVjMGEwOTg1YzYxYmE1Y2JlIHB5M2sKKzU3NDY0IDA4YjYyNzhhYTFmNDA5ZmNhYjBjYmNjY2RmM2YxODM5NTkxMjdmYWMgbGVnYWN5LXRydW5rCis1NzQ2NSAyNDEwNTM3Mzk3MzMzMjQ2M2FkMTM0ZGFlZmJkZTNjNGI4NDYyMTcxIGxlZ2FjeS10cnVuaworNTc0NjYgYmIzMzZhNjhhNDdmMjUzNDQ2YmQ3Mzc4OWI2ZDBkMTI4YjI4MTk2NSBsZWdhY3ktdHJ1bmsKKzU3NDY3IDRjZDExZTgyNTY0NDgwOWUxYjY2MThmZWUwYjU3NGEzMDk0ZTMzNTYgbGVnYWN5LXRydW5rCis1NzQ2OCBjYWZlMWY2NTNkYjM2YjYzMWQ0NjY3M2YzMjc3M2Y2MDAwZTg0Yjk3IHB5M2sKKzU3NDY5IDZhMTgxYWJmYzhhNDA3MGNmM2YzMTQwOTk1MjU2ZjAyZDNlYjRhZDggcHkzaworNTc0NzAgMjBlMWNjNzRlOGNhNTFmMjU4ODZjOWY0NjUzZTY5OTJmZjVlYTA0NCBweTNrCis1NzQ3MSA1YTliN2MyZjM1ODlkOTUxMDUzODc2NWYwNWY5MDE3NTczMDcwM2NmIHB5M2sKKzU3NDcyIDc4Y2YyYmRhODg1NzE4ODJmYzVlYzBhNWMxYjg3NjEyZjJlMGUxNmMgcHkzaworNTc0NzMgZWZmZWVhN2NmODk4NDg1MWI1MjgyNTg4NDYyYjRiNmQ1ZDJiYzdhNiBsZWdhY3ktdHJ1bmsKKzU3NDc0IGQ4YTYzYjYzMjc0MTJmOGRjZmY0MDlhYmFmZjFmYmEyZjkzNTRiMGQgcHkzaworNTc0NzUgYzMxYzIwN2I4Yzg2ZDU1NzdjNjc5MDM1ZDc2MTcwYTlkYWExNzVlYiBweTNrCis1NzQ3NyAwNTQ4ZGY3ODEwYTBjYjgzM2MxMmFlNWU4NDI4NDZiNjI3ZmU1NzA3IHB5M2sKKzU3NDgwIDNhNjg5Zjg4YzgzODVlMTFkMzBlODk0YTFhYWQ4NTU1Y2Q4MDI3MWIgY3B5X21lcmdlCis1NzQ4MSBhOWIzY2UwNjY1YzNhMzVkMzJmOTFjNTMwMjM4YmRiOGM0ZjgwZGNjIGNweV9tZXJnZQorNTc0ODIgNjczY2JjODVkOGM0MGJjMjBmZTAxNDdiMTkxZTgwMDllYjRiMjAyYSBsZWdhY3ktdHJ1bmsKKzU3NDgzIGViMTlmMmZhZWVhMTJiMjJkNzUzNDYzYzllYmVkYzNiNjVjODMzYzAgbGVnYWN5LXRydW5rCis1NzQ4NCAzNGU2ZmE3OGI2NDMyODg1MmExOTI5NWEzYzA1NThiYjQzNGJlMmQxIGxlZ2FjeS10cnVuaworNTc0ODUgNmU3MzU5MTA2NzE4MWEzMzI1MzkxNjM3MjgyOWZjMGFkOTExZmI3YSBweTNrCis1NzQ4NiAzMTUyZGY3MDUxN2E2ZjEyMTQ3YTYxYzQ3OTdjZWRjY2ViZjhmMWFiIHB5M2sKKzU3NDg3IGI1NWU3YzUzMjUzYzBkMTE0OTNjOTFlNjk1N2EyZDZiMDdkN2U5ODIgcHkzaworNTc0ODggN2ZmYWRkZDFkZTMwNTBjNGRmYzU0NzQzNGVlNDMzZGU5ZWE0NzJlNyBweTNrCis1NzQ4OSBlZDFkMzUxMThlZDhmMGY0MThlNjQxODNjYjY5YjA5NTZmYzYzZGQzIHB5M2sKKzU3NDkwIGJiYzQ0MzI2YjUzZDY5OWUwY2M4YjQ3OGNjMmI3YWVjMWJjNzdjMzIgcHkzaworNTc0OTIgMDI3YzdkMDQ0Y2ZkN2NkOGQ0MzQ2N2YyODgyNDg3YmQxMmU0MjQwOCBweTNrCis1NzQ5MyA2MzgwZjg4ZTNkZWVkYjMyZDNhY2E5Njc0NWQ1ZjdiYjMxZjMxYmI2IHB5M2sKKzU3NDk0IGZlZDRmNzJiMDRjYjlkOTgyNjk3ODUxMzJhZmQ1NjMwZjNhNzE5NGIgcHkzaworNTc0OTUgMTM5MGMxMWU2NDBiMWE2Y2NkZDQ4NmU3NzBjMGM4OGJjYTM3OTNmOSBweTNrCis1NzQ5NiA4MjRiOWQ1MmUwMDZiY2FjOWJlNWVhZDI3MmMwYzdkOWM4M2M0N2RmIHB5M2sKKzU3NDk3IGQ1YjUyZDU2YmViYWZiZGVkNDZmNmZkMDYzZTcxOWZiZDFiMWMzNzMgcHkzaworNTc0OTggZjNiM2ZmZDEzOTU0OWVhYTE5MzZjYTViZjk5NDljZjA5Zjk4NWQyMiBweTNrCis1NzQ5OSBlZjU2MjgxZjAzYjQ1ZDQ1OGIxZWZmZDE5NTkzMGQ3ZTVkZmQyNmQ1IHB5M2sKKzU3NTAwIDE1NDdkZTE2ZmVjOTUxYTZiYzIzY2Y5Y2ZmM2VkOGU0NDQ5MjczODIgcHkzaworNTc1MDEgMDM2NTk4ZGU0NjYwZDYyNGY5ZGM5ODc1OWNjYjljNDQ5NjgwNDQzMyBweTNrCis1NzUwMiBiZjFhNTNjYzZlNjUxZjdkNTBlNjNhYTFiN2JhOWZkYTRkNDQ1MmNkIHB5M2sKKzU3NTAzIDc4ZTAwYTBmNjAxNWU1YTFiMDc0MzE4NmE2MzRlZWYyMGZlMGUxMTQgbGVnYWN5LXRydW5rCis1NzUwNCBlZDE1OTRhMTZiZGI3Y2MzMDc4ODQ0YTIzYTk0N2Y4ZTkwYTJmZWI5IHB5M2sKKzU3NTA1IDg0ZmE5NDdmZjY5NjYwMmFkOTg5MWZjOTg5MGRiZjFmZDJhNzVhNDUgcHkzaworNTc1MDYgMWIxZjdjYTNmZDQ5MzA1ZGUyOTUyZDdhZGYyYTcwZjQ3OGZiN2RmMyBweTNrCis1NzUwOCBhMDk3MjhiODk1MzAyMzJkMDI4NzAyOTlhMzViNjA5MWFhYTg1MTAyIGFsZXgtcHkzaworNTc1MDkgM2ViNWRkYWRmYmY3OGJlYjkxMDczMTc1ZDk4MDk4NmNhNDgzYWNjMyBweTNrCis1NzUxMCBkNmQ0OTNiNjE3ZTNlNTFiY2FhNzNiZGQwZTMzNWZiM2QzNTEwNDQxIGxlZ2FjeS10cnVuaworNTc1MTEgNDAzZWJkMTQ1OGFmZmI1ZGZhZmM4ZTY3MTRlZjdkZmZlZTE0N2UwNCBhbGV4LXB5M2sKKzU3NTEyIDZkZWRiMzNkMmRhMzg0OWJhYWY5ZDA5OGU5OWY4OWY5ZTUzMDFkZWQgcHkzaworNTc1MTMgYmFiNzVlNGM2NDdmNmY0MWZkODRlZTY5N2ZjYjBmZWZlNTM4M2JkMiBsZWdhY3ktdHJ1bmsKKzU3NTE1IDM4OTVjMTI5ZTQ4NjIyMzcxMTRkYTgxMDY2ODI4MTFmMTRlMDJkODAgcHkzaworNTc1MTggYzJjNzZhMDQ0NmZhYjI2ODUzNmJhZjUxYzEzNTcyODkzZDU1ZWJlNCBsZWdhY3ktdHJ1bmsKKzU3NTE5IGExMzQ4NWEzYjQwNzgzZjRjODZiM2Q4ODI0ODJiMTcyNzJlMTYxMzQgcHkzaworNTc1MjIgZmYzYzBiZTcxZGMyYjM3YzE0MjE5N2EyMDZlNDY1NWQxNWY4NDcxMyBsZWdhY3ktdHJ1bmsKKzU3NTIzIGQ4YWQyOWM2ODc2M2VhYjQyYTM2NDI2NzU0MTljNWExMWFmZWM4MTkgcHkzaworNTc1MjQgODVlYWVjZjlkNjc4MzQxYzYzY2MyZjRjZTU0MmE4MDM4MWJjMjgyYyBsZWdhY3ktdHJ1bmsKKzU3NTI2IDVmZDY1ZTI1MDg0MzU1ZWI1Y2EzZTJjMzYwM2Y0YzhhMGQzYmYwZDYgcHkzaworNTc1MjcgNTZiYmQxNzY3MDU3NWYzMGEzMzJhYTU1Mzg2NDdiN2M3NGZkZmExMyBweTNrCis1NzUyOCBhNDBkZmI1MWRmOTE1NGIwOTg3NDQwNWMyY2Y1ZGMwZjJjMzY0ZjRhIHB5M2sKKzU3NTI5IDQyNmFkYmZmNDkxZGQ1NmIyODFlOWY0MzU4MzZhYWUxNzRhYmFmNzEgcHkzaworNTc1MzAgZDkxMTVhNDUwZjFjNjljNWI1NGFiODIyMzQwMWI5YzA0MWVjODVkOSBweTNrCis1NzUzMSA4MDM2NWRkNDU1ZmE2ODg5OTRmZGRiOTgwZTFlOWVlMTE1YzZkMmU1IHB5M2sKKzU3NTMyIDRjNzhjMDQ4YzNiYTA0ZGJhNDVkMDc0M2M3NGRlZTM5ODg0YjAzMTEgcHkzaworNTc1MzQgMjUxOTc1MTUzMmFmNzZiNjdhNDAzNmZjNDM1N2RhZTJjYTU0Y2FlMyBweTNrCis1NzUzNiAxOWRjMmVlYWNiYzExYTM3ZTY5ZDYzNzA1ZWRhNGMwMWJiYTFmNGIzIGxlZ2FjeS10cnVuaworNTc1MzcgOGUxMmQ1NmRkNjAzZWFjYWZkNDNiOTg5NDQwN2E0MDdmZmFlY2RjMiBsZWdhY3ktdHJ1bmsKKzU3NTM4IGJiNjI0OTJiNTg0ZWI2ZjU1NmYyYTNlMjk3OGMwYWI0ZmIzZThjNGUgbGVnYWN5LXRydW5rCis1NzUzOSBlNjQ4NDg1Y2YzYWZlMjY3NTczMjZlMzk3NDA1Y2YwNmFkOThlMDI0IGxlZ2FjeS10cnVuaworNTc1NDAgZDVmYmI4NDNiMGE5ZGQwMjlhNmQ5NzRlYmI4OGY2ZmFjY2Q2NmU1MiBweTNrCis1NzU0MSBlOTQ2MTAwYmI5ZmQ5Y2YzYjNlYmI2NDMwZWZkZThiNWQyN2YyYjUzIHB5M2sKKzU3NTQ2IGRkMDY3MGM2MDFkOWFiYWI0NjViNWEzZGFmMDllOTliZThiMWI3NmEgcHkzaworNTc1NDcgOTA0Njk3YmU2OGNjYjU4NTczNzBjMTM3NWFjNTk0NzhlNTVlNWZiNiByZWxlYXNlMjUtbWFpbnQKKzU3NTQ4IDI1MmE4NDI4MGI3MzJhZWE4ZWY0OGExODBhY2QxZjc2OTViNTdhNjcgcHkzaworNTc1NDkgOWIyOTQ4NDZkMjBkMGJhZjk3YWNmMDFlYjVjZWM3YTM4NTA0NGViZCBweTNrCis1NzU1MiAyYzAyYmE3MjcxNGI5NDRlNmRlMDU0MzY2ZDNjYTNiZjM3NDQxNjBjIHB5M2sKKzU3NTU0IDZiNDc4MWRjODFmZmZjY2NjOWE0Mjc1M2RlZGEzZTRiNWZhYmNmOTAgcHkzaworNTc1NTUgNTk0Zjg5ZWMwNjA3NzllMjc5MDEyNmVlNDllN2VkYzUwZWM4YzQ5ZiBweTNrCis1NzU1NiA3YmY4ZjIzMzllYzY5YmZjMmRmNjg5NjFiNzkxYzc5Mzc1OTRmODk5IHB5M2sKKzU3NTU3IGUyZmZhMGNkOTdiOTdiZmM3NTVjYWUyYjU0NWU4MmJiNmY5ODhkNTcgcHkzaworNTc1NTggMDAyMGJjNzg0Yzc2OWY4YjBlYmRhMDMzYjQ2NzQ1NTM1YjU2MGI3YiBweTNrCis1NzU1OSBhNDk2NjVmOGQyZjRkMDcyMzJjYzU5Y2FhMjY2N2UyMjFhNWNhMGMxIHB5M2sKKzU3NTYwIDE5MTk2Y2NlMTQzMTMwYjIxM2ZlODkwYmEzMWYwODQxOWM3ZjljZmMgcHkzaworNTc1NjEgYzA5YzMyNjRhOTAwOTUwYzdlY2Y1OGJhZDQxMTZkOWI3ZWEyMmUxYyBsZWdhY3ktdHJ1bmsKKzU3NTYyIDYyODc0YjM0ZDk1ZDk5YzcyZDNiYTE0ODRmMDI3MDlkYTQ1OWIzNTcgcHkzaworNTc1NjMgZmIzMjZmZDlkMTg0MmQzY2Q4NzFhZmU4MTYwOWM1ZDAxZTI5Y2E2NiBweTNrCis1NzU2NCBjZDIzNTAyN2U2NGMzN2JmMmU0ZTYwZmYwMTVjNGY2NTc3ZGMzYjM5IHB5M2sKKzU3NTY1IDdlYThhNmNjZGM0MmRkMTRlNjFlNDRiMDc2ZmFlZTQyMWYzNzI0NTggcHkzaworNTc1NjYgYjk3ZmE0MDU1MzQzOGRkNjQzNDdkYWEyNDBjZjIwMmJiZDg5MTNiYiBweTNrCis1NzU2NyAwMTcwNDE4ZGFkZWFiYjNlZWM3ZmUyNDE4NTAzM2E4NTRhOTg3MGVkIHB5M2sKKzU3NTY4IDU4MDVmZTE3Y2IyZGM2MDQxZWRhYmQzM2ZmZDRhY2M3ZGQ3YThhMzkgbGVnYWN5LXRydW5rCis1NzU2OSA3YTYyYzI0NjlkZWEyZTRlOWMzZjY5NDY1ZjM5MmZlNjY3ZWUwMmNjIHB5M2sKKzU3NTcwIDI0YTA1MzI1Njc4YjEzYWUzZDFhYzFmNWI0YjlkMDg2ODE5YzNkMGIgbGVnYWN5LXRydW5rCis1NzU3MiBjYjI4ZTE0ZWU4MDgwZDUyOGUwMWE5NDNhNjJiMTljZDM0NzlkYzlkIHB5M2sKKzU3NTczIDA0NGI2Mjg1ODE1ZjE4YjIzMWQxMzUzYTc5OGU2Y2I4YThiMTU2OGIgcHkzaworNTc1NzQgNzk3MzEwNDAyMTdiNWY2NWVmNWJlNDU0M2FlMTUwMjVmOWMxMjgzNiBsZWdhY3ktdHJ1bmsKKzU3NTc1IGUyMGQ1YjY0MTg5Yzk0M2ZmMGQxOTQxZGEzOTYwOTc4ZDlkNzQ3NmMgbGVnYWN5LXRydW5rCis1NzU3NiAzZjBmMWM3NzVkOWQ0MmZhMTgwYzNkNWJhMWQyOTI5MTdlMDBlMmVlIHB5M2sKKzU3NTc3IDlmYjgzMzFjZWMyY2ZlNzNkZTc1MzRmNTdkNzVmOTY5MGE2OTExY2QgcHkzaworNTc1NzggOGUwMWYyNjI2MmNmOWU0ZDAwYThiYjdkNDMxZWRjNjczYzc5MWMwYiBweTNrCis1NzU4MCA5MjIwOTMxZTQ3NDFiZjA0Zjk2NzVhYWY0OGJlMGI0MjIzNjM3MTJkIHB5M2sKKzU3NTgxIGM3MmEzY2MyMWVmNzNlMTMyMzUyYzI5ZjMyM2M5ZTIxYTQyYjU3MDQgcHkzaworNTc1ODIgYWVjYmY1Njc4NzA0NWMwOTY4MzE4MWQ0ODU5NTM0NzJmYTQwNjJmNyBweTNrCis1NzU4MyA4NzE3YjRmOGUxZTVlZDgzMzA0NDFiYmRiMjU1OWMwMTdiZTZiMDFlIHB5M2sKKzU3NTg0IGIxMTBiYWM5ZGY0MDkwMjNiNzRiMjBiNmY2NGM1YmI4YjJjNTMzNWIgcHkzaworNTc1ODUgMzg0ZjlkOWM3NWEwMmZmZTg2N2EwMTQyYjEyNDI2YTZiY2JlOTE5ZiBweTNrCis1NzU4NiBiNGIxNGM0YmViODJjYWI4N2UzYTM2NWI1M2FjOWQwYmMzOTdlNTMxIHB5M2sKKzU3NTg3IDAwY2JiMzNjYjg2NDBmOGZkZDc5NjgzM2ZlY2UwY2Q4MzcwZGJkY2EgcHkzaworNTc1ODggZmQxZmNiYTVlMTZiMDU2MzJlMDA1MmM2MmMxYzY1MGJlYzBhNmE3NSBweTNrCis1NzU4OSBmM2IwYWM0ZTY4NGY5ZGRjYTk0NThkZjBiNWIzNGI3NGYzMDZjM2M0IHB5M2sKKzU3NTkwIDdiZTBlMDBiMDM2NmQ5ZGRjYWM3ZWQ4MzhmYTU5NzYwYjQ1NWZkM2IgcHkzaworNTc1OTIgMTFlYzQwOTdmYWZlNzE1NGExZDNiYmYyNDJiYjQ1YWY1YWZhMmNkMiBweTNrCis1NzU5MyBjYmQ1MGVjZTNiNjEyYzA4YTY2OWQyMGNmZTNkODM1YTI1NWIzOTczIHB5M2sKKzU3NTk0IGFlZTIxZTBjOWE3MGYzOTA2MDNkZGVjYjVmY2YxZmZlYTg3YTY3NGIgcHkzaworNTc1OTUgYWEzOTUwZjExMWQ5ZjEyYTRhZDBjMGIzNzRjMTU0ZWI5NjkzNWVlOSBweTNrCis1NzU5NiBiODQ2NWYwMmZjYjFlZTZmYzI0NjU1MmVkMDAyMDU1NDkxZmM3ZTZkIHB5M2sKKzU3NjAxIGZkZWYzMmJiYmNiODQwNzlhZmM5M2JmNzZlMzAzODUwNjI3OTllOGMgcHkzaworNTc2MDIgNDlkY2UzZGEwZTgwM2NmM2EyZWMzOTY2YmI4ZjJjOTU5ZTI3NWU5MSBweTNrCis1NzYwMyBlMGI2YjYyODdjNmIyM2Y3YjM5NjRmMTQ4NjJhNTE1OGM5ZjVjNDNlIHB5M2sKKzU3NjA0IGJjOThhZjk3MjY3OGQ4OGViNzM4YmIzZGFmOWM0NWM2NzdjNDNhOTUgcHkzaworNTc2MDUgZTgzNmMxMmM1NGMyZjQ0NjBmOTNmMmI5MjU3YWU4MWI1MmZhOTdjMiBweTNrCis1NzYwNiA4M2MxMzFkZmRkODRjMTg4OTRjY2M4MzFkZGIyNjhhYzhmODg1MTQwIHB5M2sKKzU3NjA3IDFkZmU2ODViODU3NmJmZWExODRhNWRlNWViZjU4NDcyYjRlMWUxNjUgcHkzaworNTc2MDggMTcxYjlmMTVjMjIzYTRiZDllODhlZDFhMTdiMDk1ZDVhZWRjODQyOCBweTNrCis1NzYwOSAzMjQzMjBkOTQ2MTAyZjEwYjliMWY5Y2FjNzk0NTU3YTNiNzA4NGNhIHB5M2sKKzU3NjEwIDcyYWZhZjlhYjMwYmE3OWJlNTQxNzI1YTgwMDllYjdjZWViMTg5N2UgcHkzaworNTc2MTEgOGIwNmY1MTQ3NDQ1ODYxOWYzYWFiZDQzYTExZTg0MWI0Y2M2MjBkZCBsZWdhY3ktdHJ1bmsKKzU3NjEyIDY4ZmUzNTA5MDc1OTI4MTg4MTI0ZjY0Nzg3MWFmNGJhMjBkYTEyZTIgbGVnYWN5LXRydW5rCis1NzYxMyA5YTEzZThmYjFhM2I2Y2M5Yzc4ZDY0OTZkYjhmY2UxMDA0ZTJmODdlIHB5M2sKKzU3NjE0IDk2ZGExYjlkZWU4ZGIyYzE5NjY5NzM5Y2IyZDBjNzA0MmVmMTNjZGUgbGVnYWN5LXRydW5rCis1NzYxNSA0ZWNiYWUwNzQ4MWYyMTRhMTFkZDUzOTk0NzEyMDg3ZWRmNDNiYmQyIHB5M2sKKzU3NjE2IDNiZjJjYWQ4ZjIyYTljZTEwMTc3MmVkYTdmNTllMGIwMjFhMTkyMmQgbGVnYWN5LXRydW5rCis1NzYxNyA2NmUzNmNlNWE1NmM2ZjI2MmFhMjEwZDEwNGUzMTBmMmQ0MzJkMWE0IHJlbGVhc2UyNS1tYWludAorNTc2MTkgOTYyMDEzNDAxMGE1YWQyZTU3ZjlhZTFiZDc2ZmMzY2UyYjdhMmY0NyBsZWdhY3ktdHJ1bmsKKzU3NjIwIGQxNzg5ZDRmZjAwYzZlYzY2ZTBjZjM5ZWYzYTRmYmU3OGJkNWU3YWMgbGVnYWN5LXRydW5rCis1NzYyMSBjYWFkMzVlODIxM2I4YTdlZmQ3NGYxOWI1NWI2MjUxMTMxY2M1M2Q1IGFsZXgtcHkzaworNTc2MjIgMWVkYzZlMTdhZTE4NWQ0MjBkNzJjNjcyZDE4MWE1NzFmODM2YzRjOSBsZWdhY3ktdHJ1bmsKKzU3NjIzIDI1YTg5M2Q2N2M2NDE4NDMwNTk2OWNkMTYwN2M1ZmVjNTU5YWFkZDYgZGVjaW1hbC1icmFuY2gKKzU3NjI0IDI3ZjAyODliNjgzNTFjZThjNDJmYmIyMTcwZTFhYTFiMDc4YzI0NmIgcHkzaworNTc2MjUgMzA1MTEwNjhkM2Q0ODJlOTE0ZTZkNjU1NDM5MjZiNzI4MzRhOGI1ZSBweTNrCis1NzYyNiBlNmE5ZmNkMWI0NGU4MTU0ZmIyNWFkOWVhN2E4NDA5NmI4ZmRkOTljIGxlZ2FjeS10cnVuaworNTc2MjcgNTMzZmI1MzIxZDZiYzFkNGMwOGVjMGMwYzM2MzYxNDc2N2YyMWY2MSByZWxlYXNlMjUtbWFpbnQKKzU3NjI4IDhiYjFmZTFhNzJhNGEzMmI1ZTgwYmZlNGU0YTY3NGNhYzFiNjc5MjAgbGVnYWN5LXRydW5rCis1NzYyOSA4OWM0ZmY5N2ZkODkzZWNhMDc1YWNhY2ExMjQ1NTlmMTExZTY4N2ViIGFsZXgtcHkzaworNTc2MzAgZDY5ZDgwNjAwY2YxNzIxNzY2NWRkNDI0MzA0NjBjNmFhNDk4MmNmMyBhbGV4LXB5M2sKKzU3NjMxIGZiMmNmNmU4Y2Q4NjExNTM5NzM5Yzg2NzkyMzUxNmZkY2FiOTRmYWMgbGVnYWN5LXRydW5rCis1NzYzMiBkZWMyZWM4MjY4NzQxMTdhYjA5MzQxOTlmNjRhYzhiMDk3ZDBjZTQ4IHB5M2sKKzU3NjMzIDFhMjMwY2I3N2YwNWNiZWM2ZDU1MGRhNzY3ZmZlODAzMGQyYWZiNzkgbGVnYWN5LXRydW5rCis1NzYzNCBiOTJmYjI0YzVkNGI1MDYxYjYyOWQ4YzE1ZDAzZTliNTgwMDliZmRhIHJlbGVhc2UyNS1tYWludAorNTc2MzUgYjJkZjQ0YjljMjUxMzQ4ZDdmMThlODRhOGJmZDVlYWIzZThhMTI3YSBweTNrCis1NzYzNiBhNzk1MWFiYjg1MzRiMzEwMmI5NjA1N2I4YWFjNjM2ZmYxMGEwYjcyIHB5M2sKKzU3NjM3IGQxYTE3Y2QyNmE0YjAyY2ZlZjA1Y2RkMDc1MzRiMzFmNGZhZWQ4MTEgcHkzaworNTc2MzggMzdiZWFlMDlmY2IwZmQ1ZmVhOWIzZGM3OGExMzc0ZmM5MzVlZjdmZiBweTNrCis1NzYzOSA1MGI3ODdjYmE4ZjFjZDZkNzVhNmY2OTdhY2E4NTVlM2FmNjVkZWJlIHB5M2sKKzU3NjQwIDcxM2ZiYTM0ZDY2Yjg4YjQxMWRmZTY3OWRlMTkwNzExNjg5Y2ZhYzYgcHkzaworNTc2NDEgMGU1MTBhZmY1ZTlhZTE1NDJiODNkMGZmM2NiNTJkYTA4MzM5YTM5NSBweTNrCis1NzY0MiBjYjVhZTAyMGEwNjBlYmE3NmI4OTBlZTI5NzA1YjQ0ODdhYTQ2MGQwIHB5M2sKKzU3NjQzIDlmNzRiNjk5MDU2YTQ2NTZkNzdkYzIzZTc1YzBkMjhiNzc4ODM3NTcgcHkzaworNTc2NDQgMDVjNDczOGY4YTQzYzczMzBkNzI5ODM2MTIxYmU5OThhZWNjODRmYiBweTNrCis1NzY0NSAxY2U4OWYyNTc4Y2Y4MWRmYmM2MDEzNzYxZDAxMTVhNzJhNTQ1NWQ1IHB5M2sKKzU3NjQ2IDBlOTA2NTEwMjYyZDFhOThlNDk4YjE4NWQ2OTEwYjg5OGY4YThkMTggcHkzaworNTc2NDcgNzFjZDU1OThiNzRkNmQwYjgwMGE4MTJiNDllMGJlMDg4ZTdiYzZiOSBweTNrCis1NzY0OCA2YjNlOGFhNTRkZDlkOTE4Nzk5ZDQxZjdhYjE3Y2I1Y2ViZTM5MzMzIHB5M2sKKzU3NjQ5IDU0MmI5YjExMTkxNWNlZDY0MGI1OTZmMDJjZWNlZjYwYjA4OWRjMDcgcHkzaworNTc2NTAgZGY4ZWY5YzgzNzFhNDU1MDI5MDg0OWUyYTU0NzAzOWQxYmM4ZGI3YyBsZWdhY3ktdHJ1bmsKKzU3NjUxIDgyNjAyMzE1ZWFlYjllNzEwZWVlMTE1MGEyZjllOWY0N2JhY2RmY2UgbGVnYWN5LXRydW5rCis1NzY1MiA5ZGY5MTFkNjU0YWZjYmM0YjI5NWM4YTNlZjc0OGQwYmUxZTAwYzZlIHB5M2sKKzU3NjUzIDBmODJmYzQyZmQ2ODFhZjkyNDk0YjFjMWQxZmY4ZWVmNTU3ZjI5ZTMgcHkzaworNTc2NTQgN2ZkZTZlZGYyYjkyMDEyODI2NWE4ZDViZGYxY2JjYzM4YzA1NTE5YiBweTNrCis1NzY1NSA3OTE5MWJkZmEyM2I1MmMyOWFhZDY4MTk5ODk1NDE0YTAyMTIwNjYxIHB5M2sKKzU3NjU2IDNhNTZlNzNhZTkxOTU3NDU5YTEzMzliNDU5NTgzMGM1OGRjNGNlNzcgcHkzaworNTc2NTcgZjQ4NTFkYzBkZjA0MTc0NTc2ZjEyMDFkNjFiMGVlYTVhYzE0YzBmNiBweTNrCis1NzY1OCA3MDczZjQ4MTQ3YmRhZmMwYjBiNDhmOGU0MWU3YjMyOTk2YTY4NmUwIHB5M2sKKzU3NjU5IDRiZWJiMjI4MTdjZmVlZGIzZjI1MDY2OWNmNWQ0YWEyYmJmOTNkMjggcHkzaworNTc2NjAgMGQyOGE1MjBjOWIxOGVhMTk2YzE3MGIzYTdkMjliMjIwMWE0OTQ1OSBweTNrCis1NzY2MSAxNzIyNDU5MjVhZTYwM2QxNjEyZGFlZWRiYTA5NDE2YzFkNTZmY2RkIHB5M2sKKzU3NjYyIGEwMzUzMjYwN2QxY2E3YTgzZDE1YTBjZTc4ZjE5Yzk3YTUzYjZiYmIgcHkzaworNTc2NjMgMzNlODdmOTcwYTIyYzAzMjM5NTJkOGY4OWQxZmE0NTJmMmEzZTZlOSBweTNrCis1NzY2NCBlY2RhMzMwNTE3MzlkOTZlOWFlZmRhNmEyMzNiM2VhZDY2MDM0NjFiIHB5M2sKKzU3NjY1IDk4ODU0Yzc2MjljOGUwMzNmM2Y4YzM0NTkyZjU4ZGEwNjM5MjRhZmMgcHkzaworNTc2NjYgYWJlYTU2NTMwNDA0OTk2NWM4YTg4MjJkZjA5NDNjODA3ZTk4NjZlMSBweTNrCis1NzY2NyAyNTBhOWQwN2MyY2MyYjZmMzgzMzM1ZjJlMjdhOTBkOGQ2ODVmZTI3IHB5M2sKKzU3NjY4IDRkNmMxMzQ0MzQwYzJjNzJhMGJmMzQyMGFmODYxYTU4ODg2MmI2MzUgcHkzaworNTc2NjkgYjkyMjZjYWQ5ZGZkYjA4YmRiYzdiNDFkOWUzMGM4YjUzMDk1NTk3YyBweTNrCis1NzY3MCBkY2QyODVjMDc4MTM1YzU5OTM4NTgwZDM4MjBkMzEyNzQ1ZjNiYjIzIHB5M2sKKzU3NjcxIGRjMGYwZmZkNDI1NzI4ZTcyMDc4NjQxOTNiNmNmNDUzNjVjZmY2MTUgcHkzaworNTc2NzIgOTZiZGUwODgyZTVmNGE0Nzg0ODA2YjVjNzI1OTNmMzAxMDQzMGVmNSBweTNrCis1NzY3MyBlYWZjOGIyMzU4OWQxM2EwMDg1MGI4MTNlZTVlMmJiNjQ0MTA0OTI1IHB5M2sKKzU3Njc0IGUxNDJjZDRiNTcxMDFjNWMyMzRmZDI5NjM2NTZlZWU5YTU0OTdiOWQgcHkzaworNTc2NzUgY2Q4MGViOTg5NzI4M2YzNTgzYTZkMmI3NjZlYzhlMGFiMTAwMzdlNSBweTNrCis1NzY3NiBhYTU3Y2VlMTE2MzEzZjZhZmUxMTk1NTI2ZjcyOTNiMDMyMjdjMDYyIHB5M2sKKzU3Njc3IGI3NTRjMDkwODg5N2ViYjI2MzkyZDQxZTgzM2I4YmRhNTAxOTAwNTggcHkzaworNTc2NzggYWM4YjM4OWYwMDI1ZDczN2I0NGNkNDI4NzkwNzY3OWQ5ZjI0OGIxYiBweTNrCis1NzY3OSA1ZmRlNWQ2OTY0ZDdjZDcxOTQ1ZWYzNjdlNTY4Yjc1MzBiNzFhOTU5IHB5M2sKKzU3NjgwIDQ3NzE2MzlmYzA0OTk2MzlmY2Y5NzExOThmMDg0ZTdkZTUxNjBhYjkgbGVnYWN5LXRydW5rCis1NzY4MSAwN2Q2N2E5NzI1YTc4ZTFiMTY3NjAzOWVlODA0MTI3NWYxYzE5ZGZjIHB5M2sKKzU3NjgyIGFiODllMTMwZDY0YTg0ZmFkZjMxZDYxOTk5Mjc3OTc5Y2Y3ZDgwNTUgcHkzaworNTc2ODMgNmUzNWM3YzE3NjA0ZTZhZjI4ZjBlMjdkOTZiNWM1MzE1NGI4YjJiZCBweTNrCis1NzY4NCAwZGNkN2YwODczOWFjODA3Mjc0NTI0ZmZkOGIzMWQwNmE3YzU3YjYyIHB5M2sKKzU3Njg1IDg4YmI0NTlmZGJmNTdjNzI4NjFmOTAwMDEzMGJkNjBkYTAxNjdiMTggcHkzaworNTc2ODYgOTgzNDMwMWEyZmQzZTAxNzg3MmZmMTNmYTlmYzEyYjU4N2U0Mzg4NCBweTNrCis1NzY4NyAwY2Q0MDFiZjJhYTdkZGFhNzRiZjAxZTMyNTEzZWUwMmJjYWFlNGU5IHB5M2sKKzU3Njg4IDk1MDg0ODExNzM5N2Q3MjRkNDQwY2ExYTlhYTc2ZGJiNTAwZTdjZDQgcHkzaworNTc2ODkgMDEwNGQ3OTlkZDQ0NTQyYjI1ODEyMmNiMDE0ZmRkNWMyYmZhYWUyOCBweTNrCis1NzY5MCAxNjU5MzRiYzQ0Mjk2MTA0NjA3NDI0OTNmOWEzYjYwZmVhOWQ4YTQ3IHB5M2sKKzU3NjkxIGQ1ZjNjMmY0MTZmMmE4OGIzZTRjNjY4Y2MxMTcwMmU4OWFhODAxMmYgcHkzaworNTc2OTIgOTA3YTQ1ZGYxMjk1M2E1OGFjYThiNDRkZTYwN2IwNzVmM2JkYWE2MSBweTNrCis1NzY5MyBhMzQ2NDRhNjU3ZjVhMjZmZjZkNTJjNjU0ZmVkNDI5ZTlmMjU0YzMwIHB5M2sKKzU3Njk1IDM5MThhOGE1MWJkMTk3ZThjZmM1MzFkYjRhZDA2MDVlZjJjNDQ3NzQgcHkzaworNTc2OTYgOTUyYmY2YTQ0YzI3N2Y3MDM5ZWY4ZTBmNGE2MzA2NTE0NjJlM2E5MSBweTNrCis1NzY5NyAxMzIxYmEwYjY3MGYxMDEwMjA3NGU3ZTA1NzY0ZGM3OGJiZTA3ZGFiIHB5M2sKKzU3Njk4IGI5NmNhMzUwODkxZDFkYTJmMmVmM2I5ZDkzMGE1N2JmZmM2NDNmNzUgcHkzaworNTc2OTkgYTZkMzkzMGI1NjEzODBhYTZkYjNjMThjYmQyNjUwNDRlYTk1YzViYyBweTNrCis1NzcwMCA5MDc1NzEyZGVlOGZkNDg2ZTA3NTdiMTU3YzAwZjg4MmM3ZGExODZjIHB5M2sKKzU3NzAxIDgwNzdlZTQ5ZmFkZmRjZDM2YjFlMDNmZDMzOTU4OGI5MmU0OTI2NmMgcHkzaworNTc3MDIgNzA4MDMzZWQ5NTE1OTQ4ZDAxM2ViOTZjZWM1ZDE4M2M0NDM4MjQ5NSBweTNrCis1NzcwMyBjYzBmZTA1NmJhYmRmNWE5NmY0MWEzOGUyOTFhMjlmZDY4OTExYTI0IHB5M2sKKzU3NzA0IGFjMmQ1ZDM0NjI1MmEyNDQ3NDk3MGVmZjU0MmJmYmQxNzI5ZGU3ZTQgcHkzaworNTc3MDUgYjVkOWMxOTVhMGM1M2E5N2IyNWRkNTMzMzhiZTI3ZDZlZDMzYzI2NyBweTNrCis1NzcwNiBlMDkzY2E1NTljMjNjZWJmZWU3NjUzYWRmYjg3ZWRjMzdkNzhkMTIyIHB5M2sKKzU3NzA3IDhjY2Y2ZjRjN2YxMjU2ODU3MDRlN2Y1NGFiNWQwNTA4NDQ5ZmYzMzggcHkzaworNTc3MDggNDI3NTQyMDhhNjU0NGNhMTkzNjRmNDQ3Y2NkYThjOTRmM2Y5YTQ1NCBweTNrCis1NzcwOSBlODJjODBhMDQ0OGQ1YjU2NWM2ZmMzNWEwNjUxNWMwMjg3N2E5NDlhIHB5M2sKKzU3NzEwIGNjN2U5MTRhMjJkOWNjNzQwZjZjMjk5ZjgzOGRkZDQ2MzlhZTA1ODQgcHkzaworNTc3MTEgNmUxMDEzYjkyM2UzYzFjODJhYzA1ZWIxYzFiOTY2ZDFjNTg5ZmVkZiBweTNrCis1NzcxMyBmZmE0MjMzZGU4NjYyMjdhZGEwZDI3NGRhNGQ0NTRhOTk4MWFiZTk2IHB5M2sKKzU3NzE0IDk2MjQ4MzJmMzE1NmYzNmY3NzdjMWNkZjdjODEwZGM0ZGFkOTViMWIgbGVnYWN5LXRydW5rCis1NzcxNSBhMTEzNjczMTdjYTBmY2NmYWU5NGQyMTlkMjY0NjNiOTRlYjk4MWEzIHB5M2sKKzU3NzE2IDhiMGIxMTQ2ZDkwODA1ZGU1NGI4OWQxZmQ2ZjFiZDY5YTFhY2Y5ZjggbGVnYWN5LXRydW5rCis1NzcxNyAxMTMyMjBkYWNlNjQ2YmIzMTBiNzUzY2JhMzdkZTQwN2RlODJhODBlIGxlZ2FjeS10cnVuaworNTc3MTggMzlkOWU1MDAwZTdjZjRjMmNhNDViMGQwM2RhMDVlYzU4MTA1OGRkMiBweTNrCis1NzcxOSBkZjUzYzU3NmM1MzFlY2UxZDQ3YmMwNTFkOTQ3NjY3NjM4OTNjMDA3IHB5M2sKKzU3NzIwIGI2ZTMzYjVlYWM0MGZhZTA1MmUxYWMwNzBkZjljNzNhYTg5NmQwYWMgcHkzaworNTc3MjEgMDhmN2E2YjI1YzhmMmJkNDY2MDU3MmVkNWE3OGZmNWU3MjkwZDc4NSBweTNrCis1NzcyMiA2NTAwYzhiZDdmZWFiNzA1MDE4N2Y1OTc1Mjg3OTJmNTFjN2JmZDE3IHB5M2sKKzU3NzIzIDNhN2JkYjBhNTk0ODJiYTAxMzFhYTU4ZTYzMzQzODEyMzc0YThlMjcgbGVnYWN5LXRydW5rCis1NzcyNCA1NmFmZGQ2ZDZjZjc4ZTkxYTI2NmMwMmFjZmIwOGY2MjU0YmVkY2Q0IHB5M2sKKzU3NzI1IDIyN2NjZGQwZjhkYjdhZjI4YmZmM2Y3Y2E3NjU5MGM3MWM5ZTI1NjIgcHkzaworNTc3MjYgOTczZGEyZWJjMmQwZjM3ZDBhZDA1Nzg5ZWIyMjZkZjM4MDljZjI0OSBsZWdhY3ktdHJ1bmsKKzU3NzI3IDZmY2I4NzNmMzk2YzY4ODlkZWM1OWE3YWE0YTc5MDgxZDc0NzE3MjAgbGVnYWN5LXRydW5rCis1NzcyOCBkODNjMmIyMWFjMjZlYzJlY2Y0MmU4Y2M0NWM3YTI2M2JjZDljZmRiIHB5M2sKKzU3NzI5IDdlYTY4ODg1NjJkMWQzODQ3MDMzYzExNjZjMzE1ZTBjODRmNjk3YmUgcHkzaworNTc3MzAgM2JmMWI4YjM0MDgwMzJkOTA3Y2FmOWY1NGM2NTIyYjlmYTIwNGRlNiBsZWdhY3ktdHJ1bmsKKzU3NzMxIDdkZmVkMWNmZTc2MmM1NGU2NDQ1YTBkMTY0MWZlZmZkNjZiMjEwNTkgcHkzaworNTc3MzIgNWI3YWFmYWRmMjIzMDE5NGRlNGU1N2VlYjI0NDg1OGJjZDUwYzM5MSBweTNrCis1NzczMyAwYTM4YzEyOTcxN2EzMTU1ZTc2YTliYzQyNmNkZWQwYzM4YzAyMTZmIHB5M2sKKzU3NzM0IGQ2MDM2N2ExMzE2ZjQzOTBkNzc4MjUyODJlM2E0ZDZlMDQzOGM5NmIgcHkzaworNTc3MzUgNzgzZWE2ODIxZTA0NzFhMzU3N2M4YTk0YTlhN2Y5ZDg1ZjYwNWI3NCBweTNrCis1NzczNiAxYTkwMWIxYzdjZDMxODYxNTI3MjVhNjFjYjE3ZDNhNTRjNWVlM2Q1IHB5M2sKKzU3NzM4IGU3YTM5MGEzNmVjOGY3M2JjMDQ4MTFjOGQ0ZTI3OTUwNjc2NTQxNjkgcHkzaworNTc3MzkgMDJkMWI1ZTdiZWY1NjhmY2EyYmFmNTMwMDY2ZmY5YmY4YmI3MTk1OSBweTNrCis1Nzc0MiAwOTNmZDg0ZmE3N2M0NTQ5M2RhMTdjMjkzODVhN2UxM2I2NDU4ZjNkIHB5M2sKKzU3NzQzIDZjMjAzYjdiMWUwYTExOTdjZmQxYTc2NzNlZjFlZWM2M2RlNjFiZjQgbGVnYWN5LXRydW5rCis1Nzc0NCA2YmJlY2MwMjhiY2UyNjZhMDcyM2M3OTc3NzA1ZTY2YmE3ZWExMmUzIHB5M2sKKzU3NzQ1IGE1NTMyNGM5NjAyZDYyMWZhZTNkMTExYjU1YzdmZTYxMmI2MWRmMTggcHkzaworNTc3NDcgYmVhZjY2MzA4MTQ4ODRmY2U3Mzg3YTdhNjE4ZDYzOTFkNzE2ZWZhZCBsZWdhY3ktdHJ1bmsKKzU3NzQ4IDY2YTVjNGJhOTM4ZWFjYWRmNDQ1NWZlMWIyZTY3MWUzNDBjNzc1YjggbGVnYWN5LXRydW5rCis1Nzc0OSBjNGE5NmRlNWU0NGU1OWY4Yjc4OTYxOTY4NWZkZDc4YmY1MmM5YWZiIHB5M2sKKzU3NzUwIGZmOTE4ZmNjNTdkMmFhMzkzMTAzM2RhODZkNWUxNTA1NmU1ZmY2NDEgbGVnYWN5LXRydW5rCis1Nzc1MSAyMzM2NDQ5NmRmMzEzNzRjMjUxMTEzNjJkZDY1NzBlMTcyY2Q2ZDAyIHB5M2sKKzU3NzUyIGRiOWExNzYxOTBkMzYwZDc4OTUxZDJkZWNmYjBmYTJiMGIyZGUzNmQgcHkzaworNTc3NTMgNTA0YzE1ZjA1ZGYzNTQ0YTM5ZjZlODMzMWMyYzczYTM1MjQ3YWFiYyBweTNrCis1Nzc1NCAwZmQxYjRlMmY0ZWU1OGFlZGRkZGM3Y2EwNjMxOWEyNGEzNGQ4NWI0IHJlbGVhc2UyNS1tYWludAorNTc3NTUgZGNlZGQzMmYwNmRlMzcxMWQwZDUxZDRlNDI5MTc4ZGQzMWJlYzQzMyBweTNrCis1Nzc1NiAzZTNiYzg0MTIyZDdiZjdjZjRkMWVlYmRjYmU4M2E2Mjk1MTIzOWFkIHB5M2sKKzU3NzU3IGJmMTFlZDQwYjEwNThkYjRhMDI1ZDc0NDQ3M2UwZjdkZGU4ZGVkMDcgcHkzaworNTc3NTggODdhMGZkY2FhODRhNjQ0OWRmMmRmMTgwMjgyZjk1MWJlOGI1NzdmZSBweTNrCis1Nzc1OSBhZTkwNDIwZDI2MzU1ZTI3MTgxZTkxNGQ3MmI3MDZkM2VlNDhjNTZiIHJlbGVhc2UyNS1tYWludAorNTc3NjAgNjhmOGIyMzkzMjQzNzdlMmZiZDUxMDExMzAyM2MxNGQxZTlhYmM3MSBsZWdhY3ktdHJ1bmsKKzU3NzYxIGFmYmY2ZmQ3Nzk4MDc5ZGUyNmRjMjE2ZjFmYmFhZmJlMTY0OWU5OTEgcHkzaworNTc3NjIgMjBkOGQxMWM5YjIxMzgxZjVjODY5YTU1YThmYjJlYmUxOWE0Y2Q3MCBsZWdhY3ktdHJ1bmsKKzU3NzYzIGNiMjUwYjA0NzNmY2I2Zjc2OTkyY2M2YjA2ZjBiMzJmYmFkYjZmZjkgcHkzaworNTc3NjQgNWQzMTRjM2U5OGVkZTU2ODVmMDQ2ZDAwYTg5OTY0NjZlNDY1MmNjZCBsZWdhY3ktdHJ1bmsKKzU3NzY1IDhkZmQxODA4MzU0MGQ5MGJlYThmOThlNDNjNWM5N2JmMTY4NmViZTIgcmVsZWFzZTI1LW1haW50Cis1Nzc2NiAxYmNkZWExZGM4Yzc1MGY3ZGM3M2QwYWVlYWZkNDBiODhkZjVkZjc3IHB5M2sKKzU3NzY3IDJlM2MwMmM2MjVkZWFjMzcwNWEzYjcxMjZmMGMyYjA4MDg0NzU5NWEgcHkzaworNTc3NjggOGM4OWI4YzQ4YjZjYjkwZmUxZDU4ZGYxMDg1YTIxYThlOTY2OTFhOSBweTNrCis1Nzc2OSBhNmJkM2RhYjNlYjhjNGVjNGEwYjZjOTY1ZjkyYWYwMzg2YzIyYmFjIGxlZ2FjeS10cnVuaworNTc3NzAgOTJlNDdkMzM4ODRlNDdlODlmM2E2YjEzNjc4MDVmMzg0MTEwMDA5YiBweTNrCis1Nzc3MSAxZDU3ZmI3ZWZiMTViMGRiYTRiNjc0MGMxNzM1NjBmODk1MTc2MTU5IGxlZ2FjeS10cnVuaworNTc3NzIgZGQwNjg4NzQwZDI0M2RiODYzOWZjOGI3ZGM4MDg0MDdhODE5N2QyYyBweTNrCis1Nzc3MyA0YTA3YTI4OGY1YzQ5YWY0ZTNhZThhMTgyNGJiN2IyZjA0MWRhMWUxIHB5M2sKKzU3Nzc0IDY5ODkwNmMyZjQ2OTEzMGFiYjA5ZmFlZGU3ZGZhODE4Y2Y0NTEyY2YgcHkzaworNTc3NzUgYTlhY2MwNmRhNTdhYjQ0NDA5NmM3NWUzYTA3Y2FkZGJkMDkwNmY1YyBweTNrCis1Nzc3NiA1NGRlZjE4ZWIzMWZkZmQxNmE1NzExZDc1MzYzNWY2OGU2YjI1MjQ1IGxlZ2FjeS10cnVuaworNTc3NzggNDQ0MWMzODc2NTBkOWM4NjMyMDM1ODNmOGQ5OTU4YTVkMTUyZDljYSBweTNrCis1Nzc3OSA0ZTZiNGJhNjBjM2IyODQyMGJhNGUyYzViZjE2ZmUyMzhlMTI0MzUwIHB5M2sKKzU3NzgwIDNjNDMyOTQzMWJiYzQ4ODJiZjllZTNjMzgxZjE0MzA5ZDdiZjBjOGMgcHkzaworNTc3ODEgMzJmNmRkOTVkMWJhN2NhN2YyYjI2MjAxZDAwYTI3NTA0ZTgwZGFkZiBkZWNpbWFsLWJyYW5jaAorNTc3ODIgZTkxZDJiZjcxZmRlZDg3YWMzZDEzMWNiYzRiNWEwYTliMjRmMGY1ZCBkZWNpbWFsLWJyYW5jaAorNTc3ODMgOTgxZWNjNTI2NzAzMDNkN2QyMzFmZjdhYTk1NWRlZjI3MThkNTU3OCBweTNrCis1Nzc4NCBkMmU5ZGFkZWRjYzZkOWFjOGEyN2U1M2UzMGQ3NmQzYmJiYjRmZTIzIGRlY2ltYWwtYnJhbmNoCis1Nzc4OCBkZWU0Yzc4ZWE5MTBjODRiZDE4YWIxNmQ5NjkzMTE0YmRkNDNlMmI5IHB5M2sKKzU3Nzg5IDY5MWI1Y2NlZjBjODExYmJmYjFkNDU5Njc1Njk1NjRhN2VhNzcwN2QgZGVjaW1hbC1icmFuY2gKKzU3NzkwIGRkNmNmMDBjMTc5NDk0YTdlY2NjNzkyOGFlMjMxNTg2YmZiOWJkZmIgcHkzaworNTc3OTEgOWZiMDMyN2IzMTEwMDkzYzlhNDIzNTNkMjU4NGExNzdlYmM1MzlhZCBweTNrCis1Nzc5MiBlZWQxNWVjNmI3NTk5NWJjZTUwNjVlYjU1Y2Y5NjFkZDQ1YjdkZmJmIHB5M2sKKzU3NzkzIGE4OWQ0NjllMWZmNzc3MTY5MTRjZTFhNDI0NGZhNTI5YTcxY2U2OGEgcHkzaworNTc3OTQgNTdlM2Y2ZjBhNTg4YzAyZjI2MTJlZTMwOTkyNDVhOTIyOGQ1YjhkYiBweTNrCis1Nzc5NSAwMTM1ZjBlNjc2YmQwMWI0MTEzYWFhNDZjM2NlZGZkZTVhNTdkZDUyIGRlY2ltYWwtYnJhbmNoCis1Nzc5NiBlZWU1YmRkMzcxNTg3ODQwOTJlNGMyZTdmMmYzODA5NjM0NjJiMDE3IHB5M2sKKzU3Nzk3IGNkYjdiOWY4MmNjNDU2MDg3ZjgxYzU5NGE4MDQ2YmVjYTY2MTg5MjIgcHkzaworNTc3OTggN2IwMjM3Y2JkMGVkMTE5NDY0MGY4ZTBmODE1Mzk0MDdhNWE2YWZlYyBweTNrCis1Nzc5OSA5MGM3MTViYzdkMzA1ZGEzZDE3MzczYTY3Zjk1NGY3YTdmZTk5NzFmIHB5M2sKKzU3ODAwIDdlYzA0Y2IyNjJkMjFlMjRkZTQzYmU4NGRjYTRkMjAyZDgwMDgxYjMgcHkzaworNTc4MDEgODQ1NGEyYmZhZTA0NDU2ZjBmNDUwYjllMGFlMzMyMDcxNmY2OTIwMSBweTNrCis1NzgwMiA5NWQ2ZmUyZThlMGU5MWYxYzkzNmEzZGJmMzA5YTg0NjNhOWVmMjY5IHB5M2sKKzU3ODAzIDBjZjcwMDQ2NDE3NzZkNzIzN2RmNDE0MWIxNDZkNjRmOGZjYWExZGUgcHkzaworNTc4MDQgN2VhMTM2N2JhMjc1ODhiNDJiZGVjZTA3YzRlN2ZkNjA3MGY2YjYzZCBweTNrCis1NzgwNSA4OGFhYTM4MGYwOTE3YzI3MDA3NGQwYWI4ZTJlNzliODdlNTA5NjdiIHB5M2sKKzU3ODA2IDE0ZWU2NzA1NTdjZjAwMDgwMTU1MGMxNzZhZjQ0MGYxZjUwYWU5OWMgcHkzaworNTc4MDcgZmVjMmMwMjk5YThjYmFkMjFiMmRlZjkzZmE4NjFiODc5ZmU3ZjQ5MSBweTNrCis1NzgwOCA4ODM0ZTY1NjgzZTdiNDEyODdkNmQ3ODRmYmJjYjhiNDQyZWJjMDQzIHB5M2sKKzU3ODA5IDM0MjQ4MDMzMzdhMzcwZDY5OWNmMjE2YmZjYmNkYjEzOWUyY2E1MTIgcHkzaworNTc4MTAgODVhNjc4NTc5OTgzMTQxOGI2YmZiYjczNzgxMDkxZWRmNmZlYTgyMCBweTNrCis1NzgxMSA3Mjc1Mzk4NjVmMDQ2NWNjYjk4NTU4MDk4MThiNjZkN2FhYjQ5MTZkIHB5M2sKKzU3ODEyIGVhOGI4ZTNkOGM5MzI4N2UxMDUyZWI5NGI2NDM0ODAyYjQxNDNhZTQgcHkzaworNTc4MTMgMzQ0OTFkYzE0M2U3Y2Q4NDZjYjNkN2QwM2U4Y2FhNWUxNjAwZWRjMCBweTNrCis1NzgxNCBlMTQwNTVlODJkYjk5MWViNzU3NjlhZGI1MDA5MWVmY2ZkYWRiNDg2IHB5M2sKKzU3ODE1IDIyMWZmYWRjMWE0YzI2OTUwMDg5NmExNmVhMzJiN2QzM2IxYWRiODYgcHkzaworNTc4MTYgYzkyZDQyNmVlZTc1MWI0MWRkMWQxOGI1OWZhNzk5ZjJjMTFkNGMxOCBweTNrCis1NzgxNyA0NzI5MGNhZjdlOGU4M2QxODdiMTRhNWE3YTRhZDU2MDk4YTFmN2M3IHB5M2sKKzU3ODE4IGQxNWQ5YzZiZWRhN2ExMDRhNDZlYWVlMTliMzkwYzUyZTI1YTI1ZmEgcHkzaworNTc4MjAgNWZhNWIyMTMzZmViZDhhNDc1OGRlZTRkZGExMGI4NTA4ZjA0MzY0YyBsZWdhY3ktdHJ1bmsKKzU3ODIyIGJjMThhY2Y4YjYxODJkYTE5ODk5MmRlM2M2OTQ0OTM5NjEzMDEyNjYgcHkzaworNTc4MjMgNDMwNzdjMjc5ZDE3Yzg2NmUzZDllNjVhOTI0NGFiZTkyNGMzYzRkZCBweTNrCis1NzgyNCBkNjdiOTRmNDlkZmNjY2YwM2E1ODhhMzFiYjYxMDVjMzdkMWE0ZDNjIHB5M2sKKzU3ODI3IDk5OGQ3NTdmM2ZiMGFlOGI1MjE3Y2NjYjMyMDA0ZDFlNTMzMmZkNGQgbGVnYWN5LXRydW5rCis1NzgyOCA5NThjNGNjNTk5M2UxZTZhMTA0ZDE3ZjgwMjBjOGY2MjdiNjlmNTVhIHB5M2sKKzU3ODI5IGExMmEwMmI5ZjY0OWRhY2M3OTZhMzQ3MTg5OWNlNGI0NzI0N2Y2MGIgcHkzaworNTc4MzAgMTEyNmU3ZTg1ZjE4MDQ1ODg2YTE1OWMwOGQwYzNlZDViY2ViMDk2ZiBweTNrCis1NzgzMSBiNWYwNmU1N2EyNGY0OTg1YmVhZDIyNjg3MjY5M2MyMWUzYTZiMTNmIHB5M2sKKzU3ODMyIGY3Zjk0NDM3NDQzOGMwM2MzNzY4M2ZkNjJjNzNiZmIxY2M5YTEzZDQgcmVsZWFzZTI1LW1haW50Cis1NzgzMyA3MTEyNTI0MDJiMmY1NjczYTZmMzdhYTkwNWY3NWUyNmM2ZTJiMmZlIGxlZ2FjeS10cnVuaworNTc4MzQgNzcwMDBmMjY0MWVlOTE2OTdhMjIxNWNkMzZiYzJjZjA3NWM5Y2FmZCBweTNrCis1NzgzNSA1YzMwZjE1YTZiODc5OTdiYjkzNTQyOTVkNjdlYTk3NWM5MDE5ZTg0IHB5M2sKKzU3ODM2IDIzNjFhYWVhZmNiY2M4NTllNmNlNWQyMTQ0OTQyZDM1YjM0N2I0Y2YgcHkzaworNTc4MzcgMDgyY2VmM2JlMjliMzM5ZjNhNTVkYWI3MWJkYmRhNjk1MWYwNmJiMSBweTNrCis1NzgzOCAwNmRjNDMyMWE1NmEwYjM5OWUxMzA3Mjc5OThiOWIyNjRjNmJkNDA2IHB5M2sKKzU3ODM5IGE3ZDU0NDAzNTNjMzVkNDM5ZjhjM2MwODJkMjVmN2JiZWQ5ZGY5OWIgcHkzaworNTc4NDAgZmZiMTAwYmUwMzEwZGE1ODRmNjhmNzYzZDQwMjBhZmFmZTBjOWU4MSBweTNrCis1Nzg0MSAxYmI2M2EzMmE2YzhkOTFhZjk2NmVhMmM5MzU5ZGU1YjVkNWFlMTc2IHB5M2sKKzU3ODQyIDQyMzE0ZDdkNjA4M2Q0ZmVhZjMwMzFiOWI4MzFhMjg2MDE2Y2E1YWEgcHkzaworNTc4NDMgYTZmM2JjMjE2YzM3MGJjNjhhZTgzMGY4NGMwMGMxOGMyMWYzZmVmMCBweTNrCis1Nzg0NCBiNWUwZjc3MjEwMTRhNmM0ZTE5ZDRiMTJmZTI5ZTY1Yjk4ODk0MTZkIHB5M2sKKzU3ODQ0IGNkM2Y3ODNjZDA4YTE2NzgxZTIzNmMwYjljYjU3MTdkMWQ5OTVmYTkgcHkzaworNTc4NDYgMzM1ZWY4NmE4YzVjYWM5OGM4ODE5NTIyZWJlMTJlMDY0M2UxNDYxZSBweTNrCis1Nzg0NyA5ZmYxMTI2ZjA5NmMyYTc1ODI3OWUzZmU2YWJmNjFlNWI0YzMwZDg5IHB5M2sKKzU3ODUwIDhjMWMyZDViZWQzMjI2ZjVkMDM1YWQ3YzJiNjMzZjFiYjc1MTEzMjcgcHkzaworNTc4NTEgMWQwZjRiM2VlZmFiMzc3MmM0MDAzNjJhNjc3ZGJlYTExOTliZDlkYyBweTNrCis1Nzg1MiAyMGFiZGI5MTZjZTMyM2UxOTUzZGJlYWNhZTkwY2M5YWZjZDc0OTVjIHB5M2sKKzU3ODUzIDI3NWY4OTRkYmYxMjFjNDA0OTYwYTMwODNmMzRiOWRkNWY1MDllZGYgcHkzaworNTc4NTQgOWNmYWQ5YTVjODNiMzgwZTJkY2U4NGVlNGU3ZWI0ZTI1ZTZjNjcyMSBsZWdhY3ktdHJ1bmsKKzU3ODU1IDlhZjljOGE3MWJmZTgzZDJmYTg4OTUxZDNiNDdhMTEwYmE0ZDQwMzAgbGVnYWN5LXRydW5rCis1Nzg1NiA0N2M4ODBlNDhiZjZiMmU5MmNlZDRjNzk4ZGM4ZDg1M2FlZjA0YTc2IGxlZ2FjeS10cnVuaworNTc4NTcgZTliNjczNmMxNjMyMDg1YjZkNjZkMTM4Mjc2ZjQzNmVkY2M1MzI0NiBweTNrCis1Nzg1OCA2NmM3NTFlODFjOTBlNmQ0NDk2NWEzMGE5NmZkNTc0ZmZlNzIyYjFiIHB5M2sKKzU3ODU5IDUxYWZjMWQ1NjVmODMyYmZkMWQzZWQ4ZjMyYmY4ZDY1ZWEzNjYyMDYgbGVnYWN5LXRydW5rCis1Nzg2MCBiZDk5ZmVhZmY5OTU4Y2I2MGIxMGFmYTViZDE3MDA0ZTQ3YWJmYTkzIHJlbGVhc2UyNS1tYWludAorNTc4NjEgNjIwZGNhNjc1MTM3YTE2NGQwZDRhNjI1ZjRhMjBmOWQ3NjVhOTdhOCBweTNrCis1Nzg2MiBlZTFiM2ViN2EwMTM2ZGNjMTI2OTMzYjVkNGUzY2E3MjJiOTJjMzc2IHB5M2sKKzU3ODYzIDBhMGI4MjI2NTcwNjIyODJiMzhlNzNmYzZiMTE2NWYzODdmZDI2MTUgcHkzaworNTc4NjUgYmVkMGY1MGVjNzBiN2Y5ZWY0NWFlNjhmNjgxMWY5YWM5Y2JlMTNkOCBsZWdhY3ktdHJ1bmsKKzU3ODY2IGQ4NDI0NTdlNGIwZTM5ZmIyYjEzMmUxNGYyMmNkZWRjYTQ1ZmU0MDYgcHkzaworNTc4NjcgYmYzYzk0MjEzZDVkMWUyNDM1OTM3ZTJjODVlZjhhOGQxNDg4NTc3MyBweTNrCis1Nzg2OCA1ODNlNDFkMTI5NGI0YTUzYTAyMGY3YmM3YTAxY2Q3NjZjYzQyMDk1IHB5M2sKKzU3ODY5IGRhMjg1ZDNiMDY1YWMyYWQwYWIwOTdmNGVkNWI4Mjc2ZjY2YTgyY2UgcHkzaworNTc4NzAgODA4ZjMyYTBkOTljMmUwMmM0Y2NiNzM4YWVmZTM4MzNiODFmYWU2YiBweTNrCis1Nzg3MSBiN2JmYTc4MGE4ODI4ZWM2NjVkMjA4Mzk0ZDdmOTU0NDhlNjNlYzYzIHB5M2sKKzU3ODcyIGY0ZDJlZDUwZGU4NTlkOTFkOTQwNGM3MjJmYTM1YjMyYWNiYzk1ZmQgcHkzaworNTc4NzMgYzRmNjNiYjRkMzhhMmM0M2Y2NjU5NjlmN2VhNzk2Njg5MWI0YjQwZCBweTNrCis1Nzg3NSBhY2FjZThlYjBiZDgyNmQwMzBjOTBiNTcyZTIwNDkxMzczZDk2YjZkIHB5M2sKKzU3ODc2IDllYmE2ODllY2YyODdkYzc3M2UzZjk1Yjk1NWRiMTI5NDdlYzA0ZjEgbGVnYWN5LXRydW5rCis1Nzg3NyAzMjBjNmJlZjhkMzBjMjlhOTY5ZGU0OTkwZmI3NGMyMWM1ZDg2NjU5IHB5M2sKKzU3ODc4IGNhZjBkN2UzYjI5YTVmNmY4ZGM3YmVlMTUwYzE2ZTg4ZjUxZjhmNzQgbGVnYWN5LXRydW5rCis1Nzg3OSBhZDNkNWFjYWNmMDNkZTcwYmY1MzhjZTRjODdiOTZlZTc0YWY0NTI5IGxlZ2FjeS10cnVuaworNTc4ODAgOWIxODMzZmM1YzdiMjA3YjJjYzYxMDQ1ZWNlNmFkNjZjNDg0ZmMxZiBsZWdhY3ktdHJ1bmsKKzU3ODgxIGNlM2EwNzEzNTFmY2NkNTBkYTc3ZWNlOTY1M2E4OWM3YWMyMDg0NDMgcHkzaworNTc4ODIgMTRlOWI4N2I3NTNiMjc5YjM3MjI1OWJmYjI4NzlhNTU3YzE3MTI4ZSBweTNrCis1Nzg4NiAzODZjMjJkOTNhYjY1YjYzYjA1Y2FkODkzOTQwMDA1OWY2Nzk4N2ViIHB5M2sKKzU3ODg3IGQ0NDI5ODRmMjkwYjljMjVlMGRlMjg3Y2QxM2U4OTNmNTE0ZDBmNTYgcHkzaworNTc4ODggM2FjMjM3YmNhNWVlNTM3OWMzNWZlYmY4MWE1NGVjNGRiNGVkNWRiNSBweTNrCis1Nzg4OSBkODY2NzJiZGU2NDA2NTY1YWRlZWM1MzBlMTgwZTVmNGFkNjM3YzViIGxlZ2FjeS10cnVuaworNTc4OTAgZWExODQ1MTM2NjBiNWQyODE2YTdmYTc4MmQ1ZDJjMWI0M2ZhNjYxZSBweTNrCis1Nzg5MSAyNzliOTU2YTNhOTYzNWRmMWI2NDFiODk4NmQ4OTE5NDE4ZmZmOGRiIHB5M2sKKzU3ODkyIDE0Nzg2ODhmNDU2NTg3YTUwZWRmNTk5MTg0NzNkMTU0OGUyMzViZTggbGVnYWN5LXRydW5rCis1Nzg5NSAzNmY1NmEzZWYzNmY4MDkwMWMwNjUwYmIzOTg4M2FmNTI2Yjc3NTJiIGxlZ2FjeS10cnVuaworNTc4OTYgYjc1MTZhMzQ2ZjBmMzk4ODQzMTRjM2I2MGQxMTRkMDI2NGQyN2YwZCBsZWdhY3ktdHJ1bmsKKzU3OTAzIDFiMGQxNTQ0NGNhNWQ0MjZkZjhhMTAxY2E0YjkxMGE2MDNmY2ZmY2QgcHkzaworNTc5MDQgY2UwY2IyZDg2OTE5OWRmOGI3MmI1ZDg5MzVmOGY1Y2YyYjdhZTBiZCBsZWdhY3ktdHJ1bmsKKzU3OTA1IDFiNWIwNTQ2YTdkZDJkOWNkNWIxYjI4YzRjNmEwZjlmZTU2M2M5NTkgcmVsZWFzZTI1LW1haW50Cis1NzkwNiA0NjNiMzQxYTlkNjMxZWM0ZGYyMzg0ODcyM2Y2ZjhkMTVhMWNhMmU4IHB5M2sKKzU3OTIzIDQ5MDI2NzFkZDY3ODUyNzg5YTBlNjFmZDI3NDBmZmRlZDFlNTI5YzQgcHkzaworNTc5MjUgN2M2ZTdkMTlmZjUzYmM0ZWQ4MjY4NjYxYWJiYzYxMDYyYzIyZTM3YSBsZWdhY3ktdHJ1bmsKKzU3OTI2IGI1ZjUzNWNmMTM1ZmM5ZGM0MjBlYzkxMzRmZjkxOGE5MjE5YjZjZTAgcHkzaworNTc5MjcgYjUxYWMyZDJkNTM4YmRhMGY2ZjU3ZGQxZWVhMDNjODhjZTcwMTAyMiBweTNrCis1NzkyOCA1NjRhZTU2YmQyZGE2MWM4ZjI0NWUzOTk5YTBmYmM1OTE3NDhiZDI3IHB5M2sKKzU3OTI5IGY0ZmI3NGY2MzgwNjdmM2QwYzQ5MTM3YzNmNjRkMzI0NDE0NDQ2M2QgcHkzaworNTc5MzEgZGQwYzY1M2JhMjlmMjMwOGYyNjJjNjhmNjM1OGY5NzlmODQzMjMzMyBweTNrCis1NzkzMiA1NzhiMTc0NjFmNmI2YjlhYmExN2IwM2RjOTIxODU0ZmZjYzFiMzdlIHB5M2sKKzU3OTMzIDExOTkzYmNiMGJhM2QxZDlhNDZiYTkzOTM0OTZhMDMzOWZiZGUzODEgcHkzaworNTc5MzQgNDM1OTc3NzhlZjJjYmM1MTMzNGRhMWI5YjJmNTdkYmQ5ODBjYTE4OCBkZWNpbWFsLWJyYW5jaAorNTc5MzUgN2ViOTU0MzUxYTRmZDdkZDQ3N2YwYjUwNmZjNGNjZjI2ZWU5ZmUzZSByZWxlYXNlMjUtbWFpbnQKKzU3OTM2IGM0OGNkNmUwNmFjYTUzOWQwNTI5MDc2NzYwNDUzOGJjMGZjYTBmN2IgbGVnYWN5LXRydW5rCis1NzkzOCBhOWZiNjVjOGVhY2IzODFlZTI0OGMxNTUzYjkzYzUwZWY3YmRlYmY0IHB5M2sKKzU3OTM5IDQ4ZWU2MzlhNzVkZDcyZmVkYWQxOTRhYjQzZWU1ODA2YWQ3MGQ1ZmIgcHkzaworNTc5NDAgZTI1M2IyMDQ1MjUwNjlmZWVjNGZjM2IyMWJhMDY2NDJmNmZmN2I3OSBweTNrCis1Nzk0MSAzY2JiNGY5MjIwZjQxOTI1YjEwOGZmYjdhYWEzMjRjZDdhNmE1ZTdhIHB5M2sKKzU3OTQ3IGEzMTFhYjJmYzFhNzAwNTE1MGE0YmZmNDUxYWNkMDA3YzgxY2UzY2QgcHkzaworNTc5NDggMzQzNmRhZjQ1NTE2YWU3OGM4YjIyZmYzNTA1MGQ3YWI0NWUyNzk5ZSBweTNrCis1Nzk0OSA0MjhkOTIxODA0ZmE0M2NkOGU2MWM0YzQxOGI4ZjMyNjZlODgxNGQ2IHB5M2sKKzU3OTUwIDY1NTA3MWJmNmM0NWM2ZDg2NWI0NDNkNGE1YzlkMTEzNTYyYTFjMmQgcHkzaworNTc5NTEgYTFjYzliNTg5ZTIyMmVmMjk5YzE1Zjc2MzE4NjA1OTk1NGYyYTU1OSBweTNrCis1Nzk1MiBiYmQ0ZDI5NmY3NGFjZThmMjhlMmI2OTRmNGFkOGZiZjg2MjE0NTg2IHB5M2sKKzU3OTUzIDk3OGM0MmI1MzhkMWM5YjRlOTI4N2M3ZTFjNzFlY2IxMmI4ZDc5YWQgcHkzaworNTc5NTQgMjA1MmY1NGNlZDQ5NjYwYjI4OWY0YzI5MTg4ZmU4ZTQyZTc2NGIyNSBsZWdhY3ktdHJ1bmsKKzU3OTU2IDAyOTRiYjJlOTVkZTMyOWJmNTkwNzlkNjI2YjJiZWJmNjNlYTYzZGQgcHkzaworNTc5NTcgMzhmM2Y5ZWYxOTNkMmFhNDQ5M2MyODFjYzRjMWNiMjQzNzNiNTMyNiBweTNrCis1Nzk1OCA0N2Q5MmRiN2NkMTAyMjJjZDdmYjEyNjc3OGJlOTEyYjM3NzczZDc3IGxlZ2FjeS10cnVuaworNTc5NTkgYzlhYzViOGU0YTgxNjk1ZWRmYzFhYzhlNDIwODM1MTgyOTI5MzIzOCBweTNrCis1Nzk2MCAxYTBjNzM1ODA2NjVlZjZkNDE1YmEzNjZjOWI1MmM1M2NlYjY5MGViIGxlZ2FjeS10cnVuaworNTc5NjEgNmEwNDhmZjMwNDg4ODc4YTJmZDIzOGQyZDkyZTI0ZTA2MmVkMDVhNiBsZWdhY3ktdHJ1bmsKKzU3OTYyIDQyNTEyN2MxZDExM2M0ZmFhYWYzYWIzYmVmMDA5ZTEyYjg3OTQ5OTIgcmVsZWFzZTI1LW1haW50Cis1Nzk2MyA4ZTcwZmQ2YTdkY2IwOTUyM2VmMDRlZjRmMWU1NjVkOTY1Y2QzOTdlIHB5M2sKKzU3OTY2IDA4MWUzNjIzMjVkYTY4ZTNiMzc3MTNjZTI1NDBmODhjYzI0MmQ0MTMgcHkzaworNTc5NjggMzRiYzYzOGFjNzA3NmVjMTViYTE3M2ZmZjVlNWU5NTc4NjI5ZTAwMSBweTNrCis1Nzk2OSA0OWQ2ZmE5OGRjNzgxN2Y1MTA1YzA3OWVlZTQ0ZDU2ZTdmZGFjMzgxIHB5M2sKKzU3OTcwIDc5MDRmYmFmYWIzZGU1MDg2NTRmZjkxMWNiMDM5NDc3ZTM5YTJhMjEgcHkzaworNTc5NzEgMzQ4NDM1MGE0ZjY5ZGYzNzY0MjI2NGQyYjJjYjE4ZGJiZGRmNWE0NSBweTNrCis1Nzk3MiA4MGZmY2MxNjFiMzBjOGY2OGIyODk5OGY1YmY1YzliYWM5OGNkYjU2IGxlZ2FjeS10cnVuaworNTc5NzMgNTNiOGZjMDc5MDc3ZjQ4YmVhYjFiOGMyY2ZjYzBmMzU5MzU5OGZiNCBsZWdhY3ktdHJ1bmsKKzU3OTc0IGM2YjExMjNlMGU2Y2E0YmUxZDA1MjBmMDI2MjBiMTk0ZjA0ZTYxYjcgcHkzaworNTc5NzUgMjk0ZTM1NDUyZDI1Nzk4NTI4ZTRiNGJhNTY2MmM5MTU4YzNiZTdjNiBsZWdhY3ktdHJ1bmsKKzU3OTc2IGU5NDYwNzNkZWUzOGIwNjVkNmFkZTcwNjBjMTA2MzI0Mjg4Y2I3MWYgcHkzaworNTc5NzcgZTZkZTlhZGQ3YzA3NWJjOTcwZmM1YTJkZjQyYWI2ZjQ0M2ZkZmMxZCByZWxlYXNlMjUtbWFpbnQKKzU3OTgwIGUyYjRmYzk2MDgzMGZjMjJiZTFmN2E4NDU3MzlkZGMwNDI5NGUzODkgbGVnYWN5LXRydW5rCis1Nzk4MiA3OTA4MGM0ODg5YmMyN2U5NWQ4Y2M5YjIxYTc2YWJkYmU4ZjI4M2U1IHB5M2sKKzU3OTgzIGNjNDQ0Mjc1NDUxMDVlMzIzYTExNzMyYTg1ZWE5N2I4ODdkZmUyODggcHkzaworNTc5ODQgZDMxMDQ3YTFjZTE5NzY4NGYyZjU1Mjk2Yzg5NzE1ZWUyYmYyMDJiZSByZWxlYXNlMjUtbWFpbnQKKzU3OTg1IDQ1MzEyMjBlNTBiYThjMTRmYjE3YWEwMzMzYmI5NmJmMmU3MTE5NGMgbGVnYWN5LXRydW5rCis1Nzk4NiA1ZmQwNDUxZTc0MDYwOWZjNmE5ZmJhOTcwZTU3YzU5MWU0YWIyYmJlIHJlbGVhc2UyNS1tYWludAorNTc5ODcgN2ZiOWNkOTFlNjQ4NjFkM2RlODkzNWU2YTNkZDQ2ODhiMmNjNzgzZSBsZWdhY3ktdHJ1bmsKKzU3OTg4IDcxYzNlNWI2OWUxNGU3MWRlMzM0NWQ1NTUwMzc4OTczODhhMzRmM2UgcHkzaworNTc5OTAgM2MyYTRmNmFjY2Q1NmFkZDQzOWZlNmFjNTY0NWQ0ZGVkYjBiZGM5YiByZWxlYXNlMjUtbWFpbnQKKzU3OTkxIDU4YWY2Njc1MDE5ODYyZGFiNDQ5YWI2NDU5ZjhmNWE4OWNiZTlkOTcgbGVnYWN5LXRydW5rCis1Nzk5MiAwOGUxMDU1NGU0MzAzODA3MDM2YTkxODQ5MzU5ODU5ZTBmMzdiYTM3IHB5M2sKKzU3OTkzIDkxYzk5MDExZDA2OTQ0YTYxNzAxODNlYWJjOGZkYWYyZDA0NjhjYTggbGVnYWN5LXRydW5rCis1Nzk5NSA3MmE5NmU2YTdjMmZiYzViYjhkZTE4NGFkZWVhYjBjNjAxZGEzYmM4IHB5M2sKKzU3OTk3IDg4NTgxM2NjYmY0NTRjYzBkOTNmNTk2NmUwNGYyMTViMDdkNmRjMmEgcHkzaworNTc5OTggYTRiZDhhNDgwNWE4MDI0NzcxNmYxODFiZjhlZjdhNWVhYmIwYzJmMCBweTNrCis1ODAwNCAwYTMxZDFjNDVhODkyYmE5ZDBkZDNkNTMxZWZkNzE3Yzc0OWYxM2FiIGxlZ2FjeS10cnVuaworNTgwMDUgODg3ZTFmZWFiZGJkZTZhYzlhMTZhNTAyODE3MDY4ZWIwZTEyMGU4ZiByZWxlYXNlMjUtbWFpbnQKKzU4MDA2IGZkYzY3NWNiNWU4YWVjMDM3ODc3OGFkOTQ0ZmEzOTYwZmRmN2VlNjEgbGVnYWN5LXRydW5rCis1ODAwNyBiZThmN2QzY2Q3Y2MxM2IyZjZkZjZkMTlkZGY3OGNmZjc1MGNjMmZhIHB5M2sKKzU4MDA4IGZjYjAyY2I5NmNhMjAxYzE3MjU1NzMxMWI3MzU1MDM4ZWM4YTAyN2UgcHkzaworNTgwMTEgYjRhMmYxMGIzOWQyMGYxMjIyNTU3YjcxODFjMGZjNjE1NTI5NzA4NCBweTNrCis1ODAxMiA3OWRkYTU2OGY0MjVhMzkwOTg0YWMyOWUyZjE0MGUzYTYwNjgzZWQ3IHB5M2sKKzU4MDEzIGFjM2ZjMmFlNGFiY2ZmMGRlMWQyMjA3YmJlMGM3N2NlZTcwZjQ4ZjQgbGVnYWN5LXRydW5rCis1ODAxNiBjNzZhY2E0ZTEwMGRlMTE2MmY0MjdmZDcxYzE2NTQ5Yzc0ZWNlNjQ2IHB5M2sKKzU4MDE3IDdjMmY1YzYyZjhjYTBkOTM3MzNmNjUwMjc4Mzc5NzQ5ZTA1ZGM4MDEgcHkzaworNTgwMTggZWRmYmNmMWZmNzM0MDc1MTBlNmZkNjM3ZDUwMjZiOWZhYzk3NjRhNyBiY2Fubm9uLW9iamNhcAorNTgwMTkgYzljNjE2NWY3YzBkMWUwNGNjNmI3NDhkNWMyYzQzNTg1OGNlODZhNyBiY2Fubm9uLW9iamNhcAorNTgwMjAgZTdmZDFmZDkxYzUzZmFiNmRhODU0ZDI4ZGU2YzgwNTQzOTE0NmZkYiByZWxlYXNlMjUtbWFpbnQKKzU4MDIxIDJkYmE1YWM4Y2UxNTlmMWUwN2JhMmE0MzY4MWEwNWU1MzRmYTEwMDMgbGVnYWN5LXRydW5rCis1ODAyMiBiYTA4ZjdmMzZlOGVkNGMwN2Y3NDM0YmMxMGViNzk2MjVjNTc2NDE5IGxlZ2FjeS10cnVuaworNTgwMjMgNTU2NTY5YWIzZjlkZDg1NTUwZDhmNzE2MzFhYmMxYTkyNGYxMTllMCBsZWdhY3ktdHJ1bmsKKzU4MDI0IDE2Y2I4NWZlZmM1ZDAyNWUzMDRlNTFjMmQ0NGJkNWM1Mjg1MDcwNzkgcmVsZWFzZTI1LW1haW50Cis1ODAyNSAxYmM0YThkNTdiMzEyOTg1ZjRmMjljZDU1N2VkN2UyMDQ3YmMxZjI4IHB5M2sKKzU4MDI2IDcwNTI1OTM1NzRiZjQ3YjQ0MzM2Nzc1OTAwMmZiNTAzYWU2MjA3ZjIgcHkzaworNTgwMzEgNTdlYWJiMDUxY2ZkY2FjZWM4Zjc3YThhNTlmMTE1NTg5MDZhMzNiNyBsZWdhY3ktdHJ1bmsKKzU4MDMyIDNiYzNmMTJjYWUyOGYwMmIzNTcyYWEyYmU3ZmNiMjUwMjVlZjA3ZTUgbGVnYWN5LXRydW5rCis1ODAzMyA4MGQyZGFlYzYxY2M4Y2FjNWFhY2Q5ZGQwZjU2ODI1ZTQ5YjI1NDc3IHB5M2sKKzU4MDM0IDI4NzE2ZGQxNGJjNWZhMjcxNDJjYTU3OWVjYWU3Yjc4ZjI5YWU2OTkgbGVnYWN5LXRydW5rCis1ODAzNSA3ZGFkZDIxZmE4N2MxMmIwMjlhOTU2ZDY5MDNlYmYzYWFkZTRjYzA2IGxlZ2FjeS10cnVuaworNTgwMzYgZjYyODU3NTMzY2JlYWEyYjk0YWFhYmI4MDMxYjg2NWRhODBkOWZiYyBsZWdhY3ktdHJ1bmsKKzU4MDM3IDRiMjEzNGU0NzMwYzIyZDVkMTcyMTJlM2E4NWM0NGVlNzAzNTI0MDYgbGVnYWN5LXRydW5rCis1ODAzOCAwNmY2NjgyYjIxNjZlMzA3YzJhYTFmMmE3YjE5OGRlNjRiOGU4YjkxIHB5M2sKKzU4MDM5IGZjNDcwYmJlOGQyNDJiODdiMjgwZTU4MzYyMWRhOGJhMzZkYzEyNTMgcHkzaworNTgwNDAgMWY5ZWVlMDhhYjM1ZTk1N2ZmNTY1ZmZhNTJiYjAyNmY1MjEyOWI4NiBweTNrCis1ODA0MSA3NTVmYTUxODdkMWJjMTJlOWQ0MGI5NTMwOWMzNmNjNjBjNDE1Nzc0IHB5M2sKKzU4MDQyIDg4NWZiMTdjNWUzMTk2ODI1ZmZlNDc2ZmFiYzkzZjg2ZDYyYTNhZmEgcHkzaworNTgwNDMgZmE1NWQ0MmM4ZDljOGQyZTU3YTY3MjY2ZmM3Yjg5NTU3ODA5YTJjMCBsZWdhY3ktdHJ1bmsKKzU4MDQ0IGI4YTgyMDZjMDg0OTI1MDVmM2RkODM1ODE3ZDQ1NDE3OTg1NGE2ZmQgcmVsZWFzZTI1LW1haW50Cis1ODA0NSBiMzY3ZDZlNDIyMzE1YTkwNGJlNDVkODZmNjc3YjI1ZWFkMGYwNzQzIGRlY2ltYWwtYnJhbmNoCis1ODA0NiAxZjYyMjczNjVjMzZkYWJhYmFhMTgxOGE2M2M2YWYwNzBlN2FmNGM0IGRlY2ltYWwtYnJhbmNoCis1ODA0NyBlODVmYWEwMjE5MWM0N2M5NTBjMTk3MmIzMzdlMTdmODcyZTMxYWIwIHB5M2sKKzU4MDQ4IDA4ODFhYmFiOTM3Mzg0MWU4ZDY0N2YwMGFhYWZmMGFmOTBmOTkyMmYgZGVjaW1hbC1icmFuY2gKKzU4MDQ5IGZmYTA3NDdhN2NiN2EyMDYxNDcwODMyNDhmZGIzMjgwOTVlZGRmZjYgbGVnYWN5LXRydW5rCis1ODA1MyAyYWU2ZGIwYmM3ZWJjYmJiYzczMTJkYjZlMDNhYTBmNTU3NjQyNWQ3IHB5M2sKKzU4MDU0IDg3NmI3ZWY0Nzc1ZDhmYmI5ZTRhNWRhM2Y0NGYwOWE4MzE4NzljNmIgcHkzaworNTgwNTggYmFlYjY2Y2U3YjUxZGRiMzY3MmM0NTU2YzczMDRmYmRhMzRkZDRjYiBweTNrCis1ODA1OSA3OGYxYzMyOWM5ODM3MTNhNDFmMzFhODVhNDBlODgzNmZjNGMxZjIzIHB5M2sKKzU4MDYxIGEwOWVhMmNmZTc2YTMwNWIwMzcxMjljMWNkODE0OTVkMWY2MzcyZTYgbGVnYWN5LXRydW5rCis1ODA2MiA3NWNkNTQ4NjMyNTA5YTJlYWNhN2YwYzMwZjczODdhNmI1YjNkZWM3IHB5M2sKKzU4MDYzIDc2YzFjYzY3MGM2MzNlZmVkOTgxN2FhMDMwOTJiYjYwZWUwZjc3M2MgcHkzaworNTgwNjQgYTExYjQ4ODViNDQ1ZjI3ODBjYjgwNjM1MDJlNjViMjRjMWUxNTc5ZSBsZWdhY3ktdHJ1bmsKKzU4MDY3IGU4YWE3MjRkYTkwNTg0ZDM0MmJjODczYmZjZTUwNTIwZmE4NGUyN2UgbGVnYWN5LXRydW5rCis1ODA2OCBiMzU1ZDJkYmE5YjZlMjVhMzlhN2UyZjlmOTUyYjJlYzdhNTc2ODZkIHB5M2sKKzU4MDY5IDgwN2FkYzAzMDY1MzUxNTFmYzgxZjAzNjFlOTY4NWY4ODdmMmZhYWMgcHkzaworNTgwNzAgM2QxNDk2NDg5ZjU4NTFjNjBmNWU1NzA5ZTU1N2VhNzU2ZDg3YjcyOSBweTNrCis1ODA3MSA5MTc2YTUzYjRiNjI1MGVhYzg1MzZkMGNmMGIxOGExYWRmOGUwYzQwIHB5M2sKKzU4MDcyIGY4YTVmYmEzNWViMzZhZjM0YTliMDJmZjM4Y2IyOTI5YzhkM2I5OTAgcHkzaworNTgwNzMgNzViMjY1YzA4YzkxMGJlNWE4NWJjNDQzMDg1YTIxMzM4ZjQ0NjEzMCBweTNrCis1ODA3NCA5ZjdmMzE0NzAzMWMyNjg2ZGEyNmNkNDBhMTIwOWFjMDc2NjIzZjA2IHB5M2sKKzU4MDc1IDg3NTA1MmMyYjdiMzQ2ZmNkZmIzYzY0M2ZkMGRhZjdhNTFkZDMyODcgcHkzaworNTgwNzYgYjI3ZDM0OTE2MmJkZWVlZDE2ZGRjMzZlMDgzM2NmZjVlYzU1MmRkOSBweTNrCis1ODA3NyAwOTI4N2YyMDU1YWI1ZDhkZjE2NGVjNzk0Y2I4M2FiYmRjMzg4MDE4IHB5M2sKKzU4MDc4IDg3ZDQxMWViYmFlMGUyNDI3YTlhZWNhYmI1N2RkYjgyOGY0YTc2NmMgcHkzaworNTgwNzkgMDk5YWI4MjNiODRjNGExZWE0YWUxMGE3NWUzMTU4YmQ2NzcxZThiMCBweTNrCis1ODA4MCBmYTAyY2QyY2MzM2I4YjM5MzU4YmZlN2MwNTM2ZDUwNTNmNjA2ZDAzIGFsZXgtcHkzaworNTgwODEgYTdkYjllYmVkMjhhZDEyOWUwZDdiMGQyYTVmOWQ2OTk2NjA0ZDI3NyBhbGV4LXB5M2sKKzU4MDgyIGQ5ZmM5MjhkYjFmYWY1NjQ0YjU4ZjA5ZDU3ZDQ2NTY0YmYzODE5NjMgYWxleC1weTNrCis1ODA4MyBhNjY4OTc0MTlhMzRlZmE5NzhhY2FhMWMzYmUzYWQyY2Y4ZDFhNjBkIGFsZXgtcHkzaworNTgwODQgNWE1MWQxYjY1NjI5OTVkYTFlMmExOWE4MWY5Y2VhYmVjYmViODE3OSBsZWdhY3ktdHJ1bmsKKzU4MDg1IGQxNTUyYzE1MGU5MTRkN2JjYWMyMGI2ZGFiNDJmZjI3YThiZmMwYmMgcHkzaworNTgwODYgNjBmYjk4NjEyYTllN2RhY2Q2MmI0NWM0NjFjOTU4NzY0OWNmOWQwMCBsZWdhY3ktdHJ1bmsKKzU4MDg3IGNlYTZhODBiZmZiMjliMGY4M2YyOGJmNWQ0NmM1YjNmNzIyMGQ2Y2EgbGVnYWN5LXRydW5rCis1ODA4OCAzNGI1MDAwMWRkMmMzNTc3MjZiOWQ0ZDNmMDU5MzY3MjQ4OWJhMmY4IGxlZ2FjeS10cnVuaworNTgwODkgODYyYWU0M2NmYjJiMmUyMTZjZTgwYzZhZGM5NmUyMWRkOTAwMGIxNCBsZWdhY3ktdHJ1bmsKKzU4MDkwIDc4YTdiOTlkOWY0MmEwZmMzMTNiZjRhZmFiNjE4MmYzNGFiNjU5MjAgbGVnYWN5LXRydW5rCis1ODA5MSBjZWQyNGNjYzQ5ZGQ2YmIzN2U2YzgwZWQ0NTk5ZTZmMjkzZWM3YzQ3IGxlZ2FjeS10cnVuaworNTgwOTIgYWMxOThmYmQzNzAwNGZjYTgxOTRjNTVlMDA2OGU2Mzc2NDYxOGU3MCBweTNrCis1ODA5MyAyODJlMmQwYzI5MzcxYzExMzQxM2FhNzE3ZmMwYWM5NTAxZjcxZmQ4IHB5M2sKKzU4MDk0IDViZmZiNmM3OWMwNjExMjQwY2M2Y2UzOWZiYTI2MTE1MjhmYjI3ZjkgcHkzaworNTgwOTUgMjZhZTIxMDk2OWMwNWU3YmY1NGExNDMzN2ExOTI0NzQ5YWZiNjczZCBweTNrCis1ODA5NiA0YTZjNzg4MjI2ZjVjMmZkODExMWEwMzMwN2UzNWNkNjdkYjQ4ZjcyIGxlZ2FjeS10cnVuaworNTgwOTcgMTkzMDIwYmY1MmRjMzU2YzlmNjhiZTRiZTU2NzNlOWI3YzJlMDY2OCBsZWdhY3ktdHJ1bmsKKzU4MDk4IDFkYWQ1OGUwMGMzYTUwYWQ3Zjk2NzNlMDcxNjE0YmJkNGYwMjNiNDAgbGVnYWN5LXRydW5rCis1ODA5OSAzMzgxN2RhNTNmZDc0M2E5NGU5NmE3NjU0OWZjZThhNmQ4MWI0ZGI1IGxlZ2FjeS10cnVuaworNTgxMDAgMjBhODBiODNhNmM1MjY5NmZmZGEzZmFjMzkzOTA0ZWQwNDdkNmQyMyBsZWdhY3ktdHJ1bmsKKzU4MTAxIGIzYTRhMTRkOGFjMzEyMzE5NWI5MDkzNzE3N2VjYTBiMWI2N2FjYjMgbGVnYWN5LXRydW5rCis1ODEwMiBlYmRmMmMwOWMxODk5MDg3NDJmYTk0NDY2MmQ3NzM0NGEwZWE1OTBhIGxlZ2FjeS10cnVuaworNTgxMDMgYmZlMThiOTA3ZDg3MzVlNTFhOTc2MzljODllNDBiMzk5NGE5NmRkZCBsZWdhY3ktdHJ1bmsKKzU4MTA1IDE4ZDVhYTUxMzVjYTNhNTMzZGRhYjAzMzhmZDQzYmZjZjYzOGRiN2YgcHkzaworNTgxMDYgM2ZmMjQ5OGNmNTQ4YTc3MTcyYTljY2M0OWY5MWNkZTBhZTA0ZDQ4NiBsZWdhY3ktdHJ1bmsKKzU4MTA3IGU4Mjg3NmE2MjFiNWY0MzgyMjQwZWI3MjcwM2VjYWE4Nzg2ODczMDEgcHkzaworNTgxMDggYzViNmFlOTQ0MGI1ZGZmNDFkNWUyZWExNzc0ZTg3MDkwODEzNTRhMiBsZWdhY3ktdHJ1bmsKKzU4MTA5IGVhZDdjM2M2YmUxYjlhOGQ5MDlhYmJiOTA3N2I3MDk5MTllOWE0MTEgcmVsZWFzZTI1LW1haW50Cis1ODExMCAyNzRmZTRiYmUzZTA3MGQ4YzQyNjI3NDc2MTU2NzAzZTI5ZmIyNzA0IGRlY2ltYWwtYnJhbmNoCis1ODExMiAyNWVhNGU2NmY5YTAwNDgwYzUxYjUzNDdhZDcwZjg4MTgwYTA0YTU1IGxlZ2FjeS10cnVuaworNTgxMTMgNjM3YmZiMGM1ZGFlODVjZmI3MDRkZjFlZmE2NzQwZDQxOTRhZTRlOCBweTNrCis1ODExNCBjYTA2YzRhMzA5MWVlNzRiNWNhMjI4NjJhYzkzZjNkZTk0NDE5ZDVhIGxlZ2FjeS10cnVuaworNTgxMTUgNTU1M2Y4YjRkZWMwZGUwODA3ODRjYzAyN2QyOGMyNDQ0MmExNDllMCBsZWdhY3ktdHJ1bmsKKzU4MTE2IGI1Nzk1ZGE3ZGQyNjNhNTE1MTI0MjNkNmRhZmYwODcxYTQ3NWI1YWEgcmVsZWFzZTI1LW1haW50Cis1ODExNyAwODU4ODg3NmU0YTc0Y2Y1ODExNTY0ZTVhZjZjNDRmMDI1YjcyZGFhIGxlZ2FjeS10cnVuaworNTgxMTggMjAzOThiNTUyNjZjOTZiNWYxZmIxNjdmYTM3YTdlOTA3YWU5YzgwOCByZWxlYXNlMjUtbWFpbnQKKzU4MTE5IDg0MGZmNThkMWU5ZWZhNDhmMDMzODdmNDY5NzQzNzg5YTI1MThlZjUgbGVnYWN5LXRydW5rCis1ODEyMCA3NTZhN2I3Y2RjNGU1YWQ5OTYwYmZjMTRkNTA0YmNjZjllMzc4ZWEzIHJlbGVhc2UyNS1tYWludAorNTgxMjEgOTAwNzE1NGE3YzQ5MTU3NmYzYThhZDhmYjRlZjZlMjM5Y2NhMDI1ZSBsZWdhY3ktdHJ1bmsKKzU4MTIyIDA2ZWZlODM1ODA0YTJkMmE2YTU0NjUwZDViOWI1YzQwNmI4Nzg5MmEgbGVnYWN5LXRydW5rCis1ODEyMyBjMzhlMzUzZTg3NjFlODQwMDQ2YjY0N2M2NzZlZGNmZjVhYTdhM2M1IHJlbGVhc2UyNS1tYWludAorNTgxMjQgMWUzZjU3ZTczZTA0YzNhZjM2ZTZiNmVkMDZjNDJlYWE5OTg3OGRmOSBweTNrCis1ODEyNSBhMGQyMDEyZmY0YzE1YjVlY2M5Y2MxNWIwYjk0YmU2Mzc0NTM0Nzk3IGxlZ2FjeS10cnVuaworNTgxMjYgODRkYzg2ZjIxMTk2NGI3Mzc0ZTExYzc4MTVjZmFlMDUxZTE5ZTA3YSBweTNrCis1ODEyNyA1YWI1YTVjNzM2NjhmZGI5YmU1ZDJjZWQ0MmI4NzI4Zjg2Y2Q1MmE0IHB5M2sKKzU4MTMxIDk0MmZhMWM0YTlkMGVmMDEyNjZkNWY3NjNhYTg0ZGY1YTUwOTI1ODIgcHkzaworNTgxMzIgYmYyZDhiNzk0OTNhYTIwMTcyYzJhNDBmNjg4MzUzNWVjY2JhZDI2YiBweTNrCis1ODEzMyA3MTA3ZjM5YzJmNjZjMjBlNDMwYmE3YTU1ODk0YjRkYTRiMDBhNWM5IGxlZ2FjeS10cnVuaworNTgxMzQgMzllYmNmMGE5OGI0ZDEzNDdlNzdmNmJlMjg5YmM2ZDkyMDAzNGFiZCBsZWdhY3ktdHJ1bmsKKzU4MTM1IGUxMDAzNzFhM2Y2MmRlNTNhZTJmMGE1YzgyNTViMGQ2MWE3YTUwOTIgbGVnYWN5LXRydW5rCis1ODEzNiA5NDlhMzViMjdkMjA0MmRmYmRjOWUwZDUwMzRiZTBiMmI0NmFlZjZlIHB5M2sKKzU4MTM3IGIyZGNkNzU3YTZhMzc1ZWNmZWUyYTY1ZWY2NjljZjBhYzBkNzI5Y2EgZGVjaW1hbC1icmFuY2gKKzU4MTM4IDUyN2M0NGVmMjZjY2QyZTM4M2IyMWVkMzk2OWM3NjE3NmZkOTIwY2QgZGVjaW1hbC1icmFuY2gKKzU4MTM5IGM3OWEyZjBhNzAzNDJkNDRjMmY4NzdjYjdlZGQwZDhlZjUyZWI0MDUgbGVnYWN5LXRydW5rCis1ODE0MCBjNjc4NTExMzBmYzRjNmU5YWNmYzg1ZGEyN2NiZTM0OWZiOGIyYjliIGRlY2ltYWwtYnJhbmNoCis1ODE0MSBmMTRmYjdiMDNkY2ExZWI3Njk2NTYxMjEzYjUwZmJkMDg2MDc1MWI3IGRlY2ltYWwtYnJhbmNoCis1ODE0MiA5OGJhNWMyMjExOTg2Y2MyYWI5ZmY0OWYzMDY3ZGQzN2ZjNDgyYmJmIGRlY2ltYWwtYnJhbmNoCis1ODE0MyA2M2YzMTU0YzczMWQwMjJjYmIwOTg5OTM4ZWM2NjdkMWM2YzhkMzcxIGxlZ2FjeS10cnVuaworNTgxNDQgNjNjOTU3NjNhNDNiZTRlOTE5NDRkYWYxOWVhMGYwMzhlNzc1Y2I2NSByZWxlYXNlMjUtbWFpbnQKKzU4MTQ1IGM4YzdhOTQ3YTY0MTk3Yjg2ZWZlOTQ0NWRkM2Y4ODcwOTNlZWI5ZjQgbGVnYWN5LXRydW5rCis1ODE0NyAyZjhiM2VhNjJhMmUxZWFjYWI0ZWQ5MDIzOTg3NDA4OWIxMjk0OTQ0IGxlZ2FjeS10cnVuaworNTgxNDggZGY4ZDMyZDVlNDQ0MTBkNjZhMTJlMjQzZjg2ZTE2OWJmYmEwNDU5YiBsZWdhY3ktdHJ1bmsKKzU4MTQ5IDYyYzNjMTA0Y2EwMTIwMzliNjlmN2Q5NDI1YjU5ZjE2YTljNzlhMGQgbGVnYWN5LXRydW5rCis1ODE1MCBlYjk4ZjIyM2Q2ZWFlYWQ0NWZiMTg3NTM3YmJjYzczYzQ0YzZhYjNiIGxlZ2FjeS10cnVuaworNTgxNTEgOGI2ZGM2NmUwZWI1NGVjN2FmNmZlYTE0NmIzMWViMzU1ZDMxMDVlYyByZWxlYXNlMjUtbWFpbnQKKzU4MTUyIGUwZjVhZjE0Yzk4ODNjYTQwMDVmYmNjMDEzMDcyMDY4ZWRlNmMwYTQgcmVsZWFzZTI1LW1haW50Cis1ODE1MyBlNTFlZGRlMjgwN2YxZWExMWUxYjczNjkwYWE3YTQ3YWZjNDdlYzcwIHB5M2sKKzU4MTU0IDA1ZDdjM2QwYjc3YTIyOGFlZTRiODFlM2U2MjBkMmNkZjg1NDkzYzMgbGVnYWN5LXRydW5rCis1ODE1NSBmZGZmNDhmODdmMzVlOTA3NTc4ZGYwYWU3NGE5ZjM1ZDI3N2Q1NTJhIGxlZ2FjeS10cnVuaworNTgxNTggMTMzOTFmOWQyMGVhNDk5MjYyZmNjZjQ1N2FlNjkxZmRiOTZiNTYwYSByZWxlYXNlMjUtbWFpbnQKKzU4MTU5IGUwMDIzMzk1ZTUzOTMyOGI5ODE5MGQxNzdiYmViYmRlZjdlN2Q4NzEgbGVnYWN5LXRydW5rCis1ODE2MCA3M2YyYzlkMTZjZjRkNzVjNGNlYTRkN2Y2NjJjMWNiOTVlNTg4MTFjIGxlZ2FjeS10cnVuaworNTgxNjQgOTA0MTk2NWE5MmYyZWY2NmYwNWVkMDUxODc0NmI1NGUyNWFhMTI0NCBsZWdhY3ktdHJ1bmsKKzU4MTczIDFiNjZlMmE1Nzk2ZjE4Yzk0NzVhNmZjNmM0ODAwZDgyZTFlYzVhMWMgbGVnYWN5LXRydW5rCis1ODE3NSAyZTdkZDIwMWVhMWQyYzdlYTllODYyOGE3YmU1MWE0NzVjZWFkZTM1IGxlZ2FjeS10cnVuaworNTgxNzYgNzYzMDI0OGI1OTNjZGZkMjAzMDcyMDcyYzcwZTU1OTVjNTU0ZTY3MSBsZWdhY3ktdHJ1bmsKKzU4MTc3IGFlOTgyMjkzYzFhZTA4OWNiN2YxNjNkOTMzZjFjOGFkNmI5MTY4ZDYgbGVnYWN5LXRydW5rCis1ODE3OCBlMzEzNzk1ZWExNzQyZGRmYWUxYzU2YmM2YmY4MDMxNzhhMmU1MzUwIHJlbGVhc2UyNS1tYWludAorNTgxNzkgOWNjMTMyYzg0NjFlYzY0NTcxZjQyMjY3Nzc5MDA2ODRhNDk5YWIwOSByZWxlYXNlMjUtbWFpbnQKKzU4MTgwIGUwMWRkMmJmMDk5YTVhZGEwYTU3MjMxM2M4MzE1ZDM3NzExOGVmNDYgbGVnYWN5LXRydW5rCis1ODE4MSA4ODkwYmU5Mzg2YjdhYzQ3YTYwODc5ZGNiZjVlZTY1ZDc5YTk4ZWYzIGxlZ2FjeS10cnVuaworNTgxODIgNGU1N2MzNmY2ZDJlMzY2MjI4MzJlNDNmZjk4ODIxODY5NTU3NzI2YiBweTNrCis1ODE4MyA1ZDM0MjhmZjdmZmExODIzZGFmMjIyNTEwZDlmYzIyZjljZjBhNTc3IGxlZ2FjeS10cnVuaworNTgxODQgMzYzMjAzZDc1ZDY5ZjNkZjg3MzY5NmJlMDRiMzQwNWRhODA1ODBhYSByZWxlYXNlMjUtbWFpbnQKKzU4MTg1IGM1NDkwYTllYWFlMmY3ZWZjM2VjM2IwMzQwNTc1M2QzZTU5Njk1YjAgbGVnYWN5LXRydW5rCis1ODE4NiAyZmRmZjBiNWJlYjZhYjdjNmYxYzc4YzUxN2M2ZTQ1YjU4YWQ3MTIyIGxlZ2FjeS10cnVuaworNTgxODcgNGU1NDNmYWUwZGVkODlmOGEyMTBjODc0ZGI5YmU3NTc1YmY5ZmE0NSBweTNrCis1ODE4OCA1MzM1Zjg5ZGYwODFiYWU0ODdhZDQyMThhNmEwNjBlOWNhZWZmZTM1IHB5M2staW1wb3J0bGliCis1ODE4OSBlMzk1YTYzNmVlNGE3Y2VlNjNlZTc4ZjkxYzE0OTZjYjcyMWIzYmVmIHB5M2staW1wb3J0bGliCis1ODE5MCA2NDFkNGNhYzk3NTZkOGE3MTczY2FkOTdjZWQ1MDdlYTkxZmM5YzFhIHB5M2staW1wb3J0bGliCis1ODE5MSBjMWJjYjYzMzkzNTc3NGEwOThmY2U1YWM1NWFlNzBlMjIxMTEyMDRlIHB5M2staW1wb3J0bGliCis1ODE5MiA1OTc1YTczMTZjMDY1MzIyZTg5ZTVjMWMxYzc0NzNjMzg4YzhmZWM4IGxlZ2FjeS10cnVuaworNTgxOTMgYjkyMzZhNzVhNmU1YWVkNGE5OTdjMGMxN2JjYjJjYTY3ZjVlMDkyMCBsZWdhY3ktdHJ1bmsKKzU4MTk0IGVmMjIzNTQ2YjRiZDZkZTMzODhjZGNlNjEzOGE0YTY4Yzg1MjVmZDggcHkzaworNTgxOTUgNmEwZWEwNjVhOTlhMmY5OGU4MTIwZTQxY2FhMjk2YjAwY2U2N2U3MSBweTNrCis1ODE5NiBmMTkyNDQyZjQ0ZDgxZDhhNGMyZjE2NzE5YmViZTYzZTM0ZTMzZTJlIHB5M2sKKzU4MTk3IGIyOTU4MmJkYzkzY2Q2Y2NiYWVhZjE0NmRkZGRjNjcyODFkOTc3ZmMgbGVnYWN5LXRydW5rCis1ODE5OCA3ZGRkNDA1MDNlMWExZDAwMjY5Mjk2YTRlNWMwZmZjYzIzZTU3Y2ExIGxlZ2FjeS10cnVuaworNTgxOTkgNzVlNmJmYTJkNGQyMjBlN2MxYWJlNmJjZWNiMjVhOThiZDZhMzI4YiBsZWdhY3ktdHJ1bmsKKzU4MjAwIDNlZDJmNzcxNjNmYzMwZjhmOTI3YmVmNGZjZWU5ZjcwYTFlMDczYmIgcmVsZWFzZTI1LW1haW50Cis1ODIwMSBmMmVmOGFlMGJjMTg3NTI5NTU0NzJlODBmZmZkODYzZmI4MDBiZDEzIHB5M2sKKzU4MjAyIDFiYWMzODZjMTdjYzY5Yjk5ZDMzMTViOWZhYTE1MDUyNmM5ZmY2MTcgcHkzaworNTgyMDMgZWIzOTZkZTgyYzAzMGZjNzBhZmJlMWM0NzY2MjFiMGU3ZTQxYTgwZCBweTNrCis1ODIwNCA4ZTEzZDNlYWNhY2NiNGJlN2NiYWY2ZWFjNzdhMzEwOTViZWNlZDM2IGxlZ2FjeS10cnVuaworNTgyMDUgNjkyNDkzNzcxYWUzMjJjNWQ2ODgwNjU4NzU1NjUyYjExODNjNDhiNCByZWxlYXNlMjUtbWFpbnQKKzU4MjA2IGQxZmE4MjBiMmRjYTBkMWVhZDc3NTcxM2RjM2QwMjlkYTRhNTc0NDMgbGVnYWN5LXRydW5rCis1ODIwNyBjMTllYzk1MTVhMzM2NzYyNWJhNDYzODA3YWZiMjBjNWE5ZTQ4MmY4IGxlZ2FjeS10cnVuaworNTgyMDggMzU3ZjU0MDE1YTJkM2JhMTBjZGYxMzFjODM0MzZjYTNiNGUyMmY1YyBsZWdhY3ktdHJ1bmsKKzU4MjA5IDQ0YWE0ZmZkYzFhYzk2Zjg4MWI2MjczZDIzNDhiMGY2YzY3MzkzMzEgbGVnYWN5LXRydW5rCis1ODIxMCA4MTQ3ODQ2NWZlZjNiMTQ3Mzg0NTlmYjdmODUzMzFlNWVkYWZjYjQ1IGxlZ2FjeS10cnVuaworNTgyMTEgMzU3Y2YwN2EyM2ZlMzY2YmY2YWI2ZGViYjU2MTNiOTcwNDg4ZmQzYiBsZWdhY3ktdHJ1bmsKKzU4MjEzIGIwNmIxOTFiN2NmYTBiODdhZWVmZThjZmQ0MzJlM2M3NWU1MmEzN2EgcHkzaworNTgyMTQgYTVkMzdjZGNkMzE2MTczYTEzNWQzYzdiOGVjNzMyMmRmZTE2YjUyZSBweTNrCis1ODIxNSA1MjFiZjg3Y2ViYmQ5ZTA4YWZkY2MxN2M0ZWZlMDM4NWI5MDhjZWNlIHB5M2staW1wb3J0bGliCis1ODIxNiBlZjE3MjE4MzYxNzgyYTA4MTg3NGZkMjk5MjU5OTYxNDM2MGU3ZjY5IGxlZ2FjeS10cnVuaworNTgyMTcgNDA5MDkxYjI4YzdlOWQ2ODM0NmI0MmNkMTg4NWE0ZmU5YjVjMDg4NiBsZWdhY3ktdHJ1bmsKKzU4MjE4IDdkMTRhMzE4ODg1MDFkYzFkOTAxODc5MzU2NjQwZWE4NWUzMmVmNmYgbGVnYWN5LXRydW5rCis1ODIxOSBlMWMwOWZhNmZjMGY1ZDI2ZmUzMmIyOTkwODliOTlkNzZlNTM3NWRhIGxlZ2FjeS10cnVuaworNTgyMjAgZGMzOWRkZGVhMzMwMDQ1ZTk0NTQ2NjMxYzkxYjY3ZDdiZmI3Njk4ZSBsZWdhY3ktdHJ1bmsKKzU4MjIxIDQ2YzQ2N2RlZTY1OTM4ZTczZTliNDNhMmQ3Mzc0YTE5NWYyZjBkMzMgbGVnYWN5LXRydW5rCis1ODIyMiAwYzhmZWM3NjExMWM3ZmFlYzYyMWNhODljNGVlOTk2MDhlNDI0NzA3IHB5M2sKKzU4MjIzIGRhOTUxOTc5N2M2MTA1OGExOWFhMGVjMjllNDg3OTk3NTFlNmJiZGEgcHkzay1pbXBvcnRsaWIKKzU4MjI0IDE4MzdjYWU5MGU1MmU1NTBmYmFjNGU1NTY0NzFlYWVmMjFmYzc0OTYgcHkzay1pbXBvcnRsaWIKKzU4MjI1IGVjODQ2ZWJhYjJlZmEwYzU3NTE2MWMxMGRhZjRjOGQ3ZjA4OWI4N2IgbGVnYWN5LXRydW5rCis1ODIyNiAwZmY0MWIxNjNmNWJhMWY1ZDI4OTk5MmQ2YWExNDRjZWE1ZjViNmNlIHB5M2sKKzU4MjI3IGYzMWQ0MTU1NTRjZGJmYzViNTQ5ZGQzNzZlMmFmZGRhMTkwNmJjZWQgcHkzaworNTgyMjggZjZjYmFiNzU5MjhmNjg2NDljNDU2YzA5ZDE2MmViOTdmMGQ1YmU0MyBweTNrLWltcG9ydGxpYgorNTgyMzAgNzNkMjZjZDhlMGI1NjRmMTA4MzJiN2JlZmI1OTkyYWQzMDI2ODQyMiBweTNrLWltcG9ydGxpYgorNTgyMzIgZmMwMzM2ZjQ0N2FlYWYwYjVmZjNlZDY0NGVhYmE0MmYxNTBlYTMyOCBsZWdhY3ktdHJ1bmsKKzU4MjMzIDM3ZmZiYjdhMTk2MjkzMGY3MmE1ZDRiMGY5NWUyMGVmMjJkYTZjYjUgcHkzay1pbXBvcnRsaWIKKzU4MjM2IDA0NzZhMmNjNTY1ODc0NDNjZjQ2ZmRlYmNmODg1MTEwNjExYzg4ZmYgcHkzaworNTgyMzggY2VmMmVkODI5MmI2Y2ZkYmI4NTQ2MTI5ODVhMmE2ZTk1NzMwNDUzMCBweTNrCis1ODIzOSA1ZjczMzhhNGQxZGRkZDI2MTgxZjYwYWRhYWFkNDk2YzcwMWJmODc0IHB5M2sKKzU4MjQwIDU1YTY2MzE2Yzg5ZWQyY2IxNjE0YzI3YTU1NjBmYmQ0NWJkZjE0NjYgcHkzaworNTgyNDEgYTRkZTMxMjIxNTc4NDdmMzA4ZGJkNjJiM2ExYjAxZjM1MTRmYzUwYSBweTNrCis1ODI0MiBiNGU2ODhmZDY2MDJhNTY5MDE1MDNlMjY0NmE5N2VkNzJhZDk4MTY3IGxlZ2FjeS10cnVuaworNTgyNDMgOThmZjliMmZmNzU3NjUxZDVkMmE2ZmIzNjM4ZTEwNTViMDY3MmM5NyByZWxlYXNlMjUtbWFpbnQKKzU4MjQ0IGI5M2VkMDQzZjI3MjFiNWJjZmNlMGUwMDJmYTg0OGY4MWNhMzZlZWUgcmVsZWFzZTI1LW1haW50Cis1ODI0NSBlOThlMTFkNzc2OGM2NWI2ODIxODI3MmRkYWUzYTNkNTEwMWVjYTQyIGxlZ2FjeS10cnVuaworNTgyNDYgYjcwZWRiNWE3Njg4NDkxYzczZjU1ODUxNWJjNWE3MjI3ZmZmODNjZiBweTNrCis1ODI0NyA3NzNlOTc2YmFiM2FmYjUxNDlkMjRhM2UxZDE0Y2YxMzFjYzVlZjRlIGxlZ2FjeS10cnVuaworNTgyNDkgMGI2MTRmZDJkYzJhZTA1NmI2ZTA5MDFhNjk3MDgxZjY0OWMwMGNlMiBsZWdhY3ktdHJ1bmsKKzU4MjUwIDk0NjNkZGExOTE2MDEzYWY4ZGM3NWFhMjhkNDRlZjZjY2ZkODAxOWEgbGVnYWN5LXRydW5rCis1ODI1MSA1M2Y3YzkyYjQwMjQ3NTVmNjIwZDkzNzEyMDE5MjA3NDg3Y2E4NzgzIGxlZ2FjeS10cnVuaworNTgyNTMgMmRjMGU2ZTNhZDIwMGU2YWFlYzNjYTk4ZmNhNDA3NDQ3YTc4NjdkOSBweTNrCis1ODI1NCBmODFlMzljNDM3M2RhNTgzZGM0NTMzOGM1M2E1MWI5Yjg4OGJhODFkIHB5M2sKKzU4MjU1IDc5YjBkYjAzNTZkMzFjOWE2NGE1ZDg4Y2FhNGFiNTNjNDM5Y2Y1OGUgcHkzaworNTgyNTYgOGQ3ZTkzYjQ3Y2FiZDUzZjczYzM3NzhkOGE2ZjhmNjg0OGQ1NzUyNyBweTNrCis1ODI2MCAxYTc5YTQ1MDAzZjVkYjk0MjY4MDkwYWNlNjNkYTBhZGMxNWI4ODcwIHB5M2staW1wb3J0bGliCis1ODI2OCBiOTAyODZhYjg2MjlhZjAyNDEzODFjMDQwYjM3ZTg0MTdiZTljMTU1IGxlZ2FjeS10cnVuaworNTgyNjkgODU2ZjhlYTkyMmRmNTEyOTQyZGJmZDQzYmQyOTNhMjIxYWZiOWMyMyBsZWdhY3ktdHJ1bmsKKzU4MjcwIGY1MzAwNTk4YjExY2FkMTMxMWUzMDhiMmMwNTExYzcxYmJhYjU1MDcgbGVnYWN5LXRydW5rCis1ODI3MSAxOTQ0Zjc5ZGI4YWQzNDRmZTVlZDFlZTk1Nzc5ZDVlZTg1ZTk0NzVjIGxlZ2FjeS10cnVuaworNTgyNzIgMTNiYWFkYTJhNjAxNzFlNDIyYTQ4N2JjYTlkMWYyNjc4NGFlMDA1OSBsZWdhY3ktdHJ1bmsKKzU4Mjc2IGE3YzQ4YWI4MDllYzQ4ODFjOTFiY2I4MzRkNzhlODdmOTM1Y2Q1ZTQgcHkzaworNTgyNzggMGZmNDZlZjk0NmIxM2RjNTIzMzUzMjI2Njc3YjIzYzEwZmQ3OGQ1NSBweTNrCis1ODI3OSA5YmM5ODU1ODJjYjI4NTY3MGMxOThjNDdhZWI0Y2YwN2I3NGZmOTY4IHB5M2sKKzU4MjgxIDdmY2Q5OTQ1ZDFiZmUzODQ3NzYzN2RiZWE4MjI4NTA5ZGIzZGJkMjkgcHkzaworNTgyODIgZTg4ZjgzYzNiMjVlOGM5ZTUyM2FhMmQ1MGFkYjZlY2FhOWU4YjIwZiBweTNrCis1ODI4NSA4NjY3MTcyNjljYTM4MjM1MTM0NGM4Yjg5Mzk5ZDVkMzA4ZjkxZDQ3IHB5M2staW1wb3J0bGliCis1ODI4NyA4ODBiMGIyMmMxNWE5ZjcxYmNmMmRlNjgyYzAyYTAyMTJkN2M0NGYxIHB5M2staW1wb3J0bGliCis1ODI4OCAzODFlZDQxMDAzZTc2N2FmMjk4NGNlYTU3NzQ4YTI3NzU2MzYyMWRkIGxlZ2FjeS10cnVuaworNTgyODkgMTA2YTcxYzUxNDc3NTFiYmZlMDU2YmIxMjc5NGVlMjBmYmI4M2RjYyBsZWdhY3ktdHJ1bmsKKzU4MjkzIGExY2E0ZWE0MWU3ZTlmZDU4MDk3OTJiYzMyNDYxNTEzODExY2I3ODkgcHkzaworNTgyOTQgOWQ2ZDlhYzk1YWUxNzYwZDAxMDNhZjhiNGY3YmY2MWIzMDAxZjU4ZCBsZWdhY3ktdHJ1bmsKKzU4Mjk1IDc5NDMyNjJlNWZjNDM3NjdkMDQ5NWJkYzU5NTFkMmRjMDJlYWVjOTggbGVnYWN5LXRydW5rCis1ODI5OSBjOWJmNmU3MDMwOGU3NjQxYWNiYjczZGExYWNkYzhkMzc1N2M3NmE1IGxlZ2FjeS10cnVuaworNTgzMDQgYjEyY2Y0NjdiMDVjYzJkMzc3MmYwNDI2OWFhODM1OTgxMmMyMjc1YSBsZWdhY3ktdHJ1bmsKKzU4MzA1IDMzM2IwNTJlOWRhOWEwYTIwY2RjYjNiZjVmNDZmMDkyMzdiNGJlN2UgbGVnYWN5LXRydW5rCis1ODMwNiBjZDI4MWMxMjgzNmRjNGYwODdjNTRjMDY3NDU3MTg3M2VlMDgzNTljIGxlZ2FjeS10cnVuaworNTgzMDcgNzMyY2EyN2E2NzhjZmVjMWVmNDRlNWNlYmQyYjMyOTYxNGY3ZWRkNyBsZWdhY3ktdHJ1bmsKKzU4MzA4IDFiMWE1NjUyZmVkOGY3NzZmOGU0MWI3MGUzYzhlNDdmYmQ0YmE3NTUgbGVnYWN5LXRydW5rCis1ODMwOSA5YWU0ZThhNTM0ODY2MmRlY2EwMmQ2ZGZhYjU5YThmZDNiNzQxYThmIGxlZ2FjeS10cnVuaworNTgzMTAgMTc2YjYxMzFiMGJhZjQxMDNkZmY0MTI4NmNlZGIyM2M2N2UwZjNiNiBsZWdhY3ktdHJ1bmsKKzU4MzExIDY1YjM2NTRjNjdmNjMxYzY3ZTQzNjBhMGY2ZmFmOThlYTUwNjVhYmEgbGVnYWN5LXRydW5rCis1ODMyNSA1YjUyNDlkZDE2YjQ1MDc5YjE4YzBjZjRlYjA3N2I2Y2MwMDYyNDM0IGxlZ2FjeS10cnVuaworNTgzMjYgNzNmNDk2NTY0MjBiY2E3NzE1NzJmYTIyMTRmYTYzOWIyZTEyNTg4YiBsZWdhY3ktdHJ1bmsKKzU4MzI3IGU4Njk0YWI1M2E1ZWNhM2YyMWZhNjNkODBkMWRlZmM4OWZjYWRhNzkgbGVnYWN5LXRydW5rCis1ODMyOCBjMGFiZGQ1NzllYjI2YWZmNDg3MWZjYzUyZDUyZjc1YjhlYmRiNDJiIHJlbGVhc2UyNS1tYWludAorNTgzMjkgZjJjOWYyNGEwZjVhODlkNGQ4ZGUzYmEyMmEzOTI1MGE2Mzg3YTExMiBsZWdhY3ktdHJ1bmsKKzU4MzMwIDk5NTY3NzIxOWE2NTU4MmE4NDg2ZGMyN2Y0NjQyM2ExMzBiMDNlZTYgbGVnYWN5LXRydW5rCis1ODMzMSAyNzUxMTU5OTliNTgxMjFmZDMxZDZhZDk4ZTgxMzcyODI1OWQ1ZTJlIHJlbGVhc2UyNS1tYWludAorNTgzMzIgMWJlYTZmYWZjYzUwNTcxMDk2NTNmMWU1ZWIyNjJkYTRlODc5Nzk2NSBsZWdhY3ktdHJ1bmsKKzU4MzMzIGE1NDMwMDYzMDhiYjliZDk0MGViNWIxOGJiOWZiOTQ5Zjc5Yjk1ZmQgcmVsZWFzZTI1LW1haW50Cis1ODMzNCBlODQxMTk3YzFkMTdmNTVmMGIyN2U5YjM5M2YzOWIwYjY1NWM1OWVkIGxlZ2FjeS10cnVuaworNTgzMzggMTdiMDczNzBhNzgyOTAxYWRmMTgyNjg4ODVjMDY2YjE0YTBjNGEwNCBsZWdhY3ktdHJ1bmsKKzU4MzQzIDY4ZmMxMDdkZGI1MGI5OGFmZDEzNjgxNmU5YjZhNWI2MDMzYTZmNGQgbGVnYWN5LXRydW5rCis1ODM0NCBmNzM1MzU5NWI3ZmE4MTlmOTZlY2NlYzYzMzFkYWQyMzA5ZmM5YjRjIGxlZ2FjeS10cnVuaworNTgzNDUgYWNkYWM0MWY3MTA5NzJhOTIyNTE1ZTYyOGE1ZTkzY2FjZDFhMGQxYiByZWxlYXNlMjUtbWFpbnQKKzU4MzQ2IGVkNDk5ZTM0OGExMTlkMjc3ZGRmZTIxODkzNjE3NzlmODRiMzAwNDMgcHkzaworNTgzNDcgYWUyYTk5ZmM3M2RhNmQyYmViMWEyYmIwOWQxZTJkYTIzNzg1OWI3OCBweTNrCis1ODM0OCBmMzZkMGY3MDc3ZmNiZjVmOTc2M2UyNzQzODYxNzRiNzQwMjQwM2Q5IGxlZ2FjeS10cnVuaworNTgzNDkgYWQzNjZlMzE2ZTMwNjRmM2I0NjdmZjNhMzMxN2IyZmQzNzUyOGJlZSByZWxlYXNlMjUtbWFpbnQKKzU4MzUwIDM5ZjRjNTA2Y2Q3MThiMDQzN2Y4MGZiMDAxY2FmNTRlNzc5MTlhMjcgcmVsZWFzZTI1LW1haW50Cis1ODM1MSAzY2QxNDYzYzkzOGQ2ZjdjODMyODBmNzk2ZTMxMjRmNjg4OTg0OGQ4IGxlZ2FjeS10cnVuaworNTgzNTIgMDc0MTMwYTA3M2I2NjgyYWVkOGU4MWVkZWFiZTM0MmVkOTkyNTRjZCBweTNrCis1ODM1MyAyMzE5MmIxYjcxZTI3NTU0ZGU2ZGYzMDY0M2RlYzFjZmY5ZWY4MWYyIHB5M2sKKzU4MzU1IDE0YWRkZGE4MzM0NDMzNzVlMjkxZWRjNWFhNjcxNTI0YjMwNDI1ODMgcHkzay1pbXBvcnRsaWIKKzU4MzU2IGY1Yzc5ZjQzYmJmNjk1ODZlMmZhYWNjMDZiOWYwODViOWFiM2M5MzQgYWxleC1weTNrCis1ODM1NyBhM2JhZDY5NGMyODM5ZGEzZWY3ZGY1ZTU1NThlZWZjNzc4YmUzMzY3IGFsZXgtcHkzaworNTgzNTggOTRlNTM2YzM2NDQ5M2ZjOGFjNjI2MjVjNWRhN2E2OWMzYmFmMmJjMiBhbGV4LXB5M2sKKzU4MzU5IDMwNGQyY2VhMTM3ODM1Yjc0ZDEyOTUzMTA0MmNjMWY5YjU3ZjU3OTMgYWxleC1weTNrCis1ODM2MCA4YzEwYWFjMzcwMzc5MjVkY2NiN2JiZGZiNGI3MTRiNjFiZmIzZmZiIHB5M2sKKzU4MzYyIDhiYTUzMDBjYjRiM2I1ZDZiMzgwNzFjNzU2MTk2NWRkNDVhZWUzMTYgcHkzaworNTgzNjMgNzY3ZTBjMzEwYTZhYWZhN2YwOWJjZGQ3YjU3YmRlYzQ0YmNjNTQ5MSBweTNrCis1ODM2NCBmNjE0M2M0MTE3MTM1NjUwMWU0NmFlY2FhN2RhZjA0ZTk3Zjg1ZDhlIGFsZXgtcHkzaworNTgzNjUgZjYwNjFjNzFhNGQyMzZiNmU4ZDUzYjhjYzM3ZjdlYmQ2MTkwMjY4MyBhbGV4LXB5M2sKKzU4MzY2IGZhYjQwODlkYWI5ZjlmMGQxNzVlZGU5Yjk0MDRjNzI4ZGMzNjM0NDAgcHkzaworNTgzNjcgZGU0MWU5NzlhZWJlYjg5OGNiNjZhOWEyZGU2YTI1ZWQ1MWY1MTU4YyBweTNrCis1ODM2OCAwNDU5NTJmZjA4Zjc0M2IyMzE2MzUyOWM3ZWUyYTNjYmQ1OTAxNDY3IGxlZ2FjeS10cnVuaworNTgzNjkgOWU2MDIwYmIyMzUyMmIzMWM4ZTk3MmQwMGE0YzM1NDU5Mjk5OGY0ZCBsZWdhY3ktdHJ1bmsKKzU4MzcwIDRkYjVkYWI3ZjIzNTg5ZGFjNzg0NDNkYWI0ZWNiNDBlMGFiN2NmMjMgbGVnYWN5LXRydW5rCis1ODM3MSBmZjRiYmU2ODIzZmM5YjkzMGEyYTllMWQxOTkzNzE2ODNmZmUwZDE1IGxlZ2FjeS10cnVuaworNTgzNzIgOTE5MDRmM2U3YmUxYmE0ZTc4ZTMxMTk3ZTVhYTMyY2VmMjUxNTZjYiBsZWdhY3ktdHJ1bmsKKzU4Mzc1IDY2MTRkNDJkN2YwYTMzNWQ5YjFkNDFlYTA1MWNhZDM5NTU1ZWEwZDMgcHkzaworNTgzNzYgMGJhMzgxMDBjZGE5MDMyNTE1YTc3YjhiMTljYzBmYTcyNjIzMzFmMiBsZWdhY3ktdHJ1bmsKKzU4Mzc3IDhiZDkxMDAzNmM5N2Y3NDBiNzBiNDljMTFhOGM5OTdiYWM5YzhmODggYWxleC1weTNrCis1ODM3OCA1NzEzYjE3NmRkYjY5ODQ4N2VlOGRiMDY0YTVlMTM1MTg5M2U5MWFhIHB5M2sKKzU4Mzc5IDI3YWY0NTI0OWE4MDNkMTVjNjAxZjc3MjQ0NWFhOGIxYThkZjkxMzMgYWxleC1weTNrCis1ODM4MCA2NTk4N2IzOGRmMmUzNThjZDMzMmNlZTJkODRlZjcyMDM1MThmOGRlIGxlZ2FjeS10cnVuaworNTgzODEgOTY1ZTcxNTQxNzdjNjk1MDU5MzgxMDg1NjEyYmNlOTU1ZjhhNTNjNSBsZWdhY3ktdHJ1bmsKKzU4MzgyIGViZjJhNWNmMTNmYmRlMWU0NWRmMGUyNmYwODdmNTE4MmVlNWE5YWMgbGVnYWN5LXRydW5rCis1ODM4MyA5OGY2MTgwYjliMzMzMGIxMDFmNGMxMDYzNjIxZGU2MDgzZmUwZDhiIHB5M2sKKzU4Mzg0IDMzMDIxZTQwM2YzYzY1OWRhMzNjNzA2MWFiNGE2NmQyNzEzOGI3M2IgbGVnYWN5LXRydW5rCis1ODM4NSA5YzMwMTVmYzViZjQ1OTk3MDJkYTdhY2YwYTkzZWYzOWE1M2MzNjY0IGxlZ2FjeS10cnVuaworNTgzODYgYzQ4ZjkzODFkZGYxMzBmNjc0N2MyYjRmZjg1ZWNmYTAxY2FiNmNkMiBsZWdhY3ktdHJ1bmsKKzU4Mzg3IGRjNmUyYWRmOGRkMmEzMDZlOTg2YjdmNmZmMzUzMTYwZmIyMjY4MDAgcmVsZWFzZTI1LW1haW50Cis1ODM4OCBhMWI3Njc1N2Q2MmVlMGZiMDYxNzU2YjMzZjQxMmFmNTEwYzdkNmMxIC4uL2N0eXBlcy1icmFuY2gKKzU4Mzg5IDI0ZDExMTgwOTQ4MDA5NGIzNzEzYjA5ZTRiNzcxNzE3MjQ1YTRkMzIgLi4vY3R5cGVzLWJyYW5jaAorNTgzOTAgNDdjMDI3OTFlYzZiMmM2YmYxNjBjY2I3NzY3YjdkMzhjZDQxODA0YSBweTNrCis1ODM5MiA0YTcyZmM1ZGZiNzliM2QyMGE3N2Y1YWNjMTBlMzJjZWI0MjVmZTM2IHB5M2sKKzU4MzkzIGM5NGRhODQ3NjVlZTMwMjUyYWI4NmY4YTA4ODAzMzkyN2U5YjYxYTIgY3R5cGVzLWJyYW5jaAorNTgzOTQgZmE5M2RkNGUzNGJjMjMwNDY3YjE5MDBjYmM2OTYzMmZlZjg5MWViMCBsZWdhY3ktdHJ1bmsKKzU4Mzk1IGJjMjViYWZhMzNiMWZjNDZmOGQ4MWEzNzBlOGEyYmUyZjk4NzdkMTggcHkzaworNTgzOTYgMzdkODI3MGFjOGQ5NjFiNDgzYjg1OWY4YTAwMWQ4ODE0NDkzYTVmYyBsZWdhY3ktdHJ1bmsKKzU4Mzk3IDM0MGU2ZmQ1ZDc1ZjA1NTU1Mjg4NDZjNDY4ZGY3MDhjMDkzNWNhZDMgcHkzaworNTgzOTggNDE1YjFiYWNmZWQ3YWYwMGNkMzU1NjVjMGUzM2QwMGY2MDYzYmNkYiBweTNrCis1ODM5OSA4YzVlNjBkZGFhODI3YjVmMDE3MzUxNWEzYjExMThmZGQxZGRhZjIyIGxlZ2FjeS10cnVuaworNTg0MDAgOGQ0MGM1MzQ4Y2E5ZDkzZDAyZDg4MGFiNzY4MWQ0MWM2MmZlNGQ1NiBweTNrCis1ODQwMSBkYTUyYjRjNzc2YTQ1NGZhMWEwZDkwYTU2MzBhM2JkYzc1MTJiMjQ2IGxlZ2FjeS10cnVuaworNTg0MDIgMDZiYTQyYzJjMGQwNzQ2YTU2ZDVmNmMzZmQxOTMzNjE1ZjJhZGY5NSBweTNrCis1ODQwMyBlNWQ2ODkzZGJiMzZlZjQ0ZTkwMjhiYjZmYzMzNWI2MWUzYTFkMzllIGxlZ2FjeS10cnVuaworNTg0MDQgMWQ1MmU3ODM4NDJkYTFhODA2NzEwODFhOWU4MzdjOTU5ZDAxYThiNCBsZWdhY3ktdHJ1bmsKKzU4NDA1IDlmN2RlMTg0MzFmZTk1MGQ1MzkxZTU3NzRlZWQxY2QwNDU4MTA5OTkgY3R5cGVzLWJyYW5jaAorNTg0MDYgZmZlYzQ5ZDNkMjE1NDcxZmJkZmVhZDdiMTFkZTZhMmNjZjhmYmJjNSBjdHlwZXMtYnJhbmNoCis1ODQwNyA0ZjllY2VhODE3N2NiZWQ5N2I5YTZjMThmNTIxMmZhZDhiZGEwYzg2IHB5M2sKKzU4NDA4IGI0ZDhmNzE0NTllOTQ5YmNkMDU3MjUzMjEzYWNkNDA5N2E2ZGZlNmEgcHkzaworNTg0MDkgNGMxODljNzE0NGI3OTRiNDY3YjM0YWFjOGNlNDVlNmQzMThmMDczMiBweTNrCis1ODQxMCAyZjMwYmZiN2M3Mzg1ZjM4ZDA0NzdkYmQ4ZTg1Y2RmYTQ1OWEwODMxIHB5M2sKKzU4NDExIGI5ZDE5ZDUxZGUzNjk3NWE1ZTdjNDU3MDVkOTY1NTYwZDQzMTFjMTMgcHkzaworNTg0MTIgNmU2MGY2NWZmMzY0N2M5ZjE3MDhjNWI1NGFmNjZjZTE2NzYzNTkwMiBweTNrCis1ODQxMyAyYjc0NmYyOGIzOTlhNzEwNjk3ZDhhMzEwYWMyMGNhYWQ2ZTkyZDhkIHB5M2sKKzU4NDE0IDk5MzcxYmQyY2E4Zjg3ZDliNWJiYzRjZTQwZWVjNWM4MzE3Yjg3NjUgcHkzaworNTg0MTUgMDI3MTBiODk3MDFlMDgzNzUzMTcxNWM2NGQ5MDE1Mjg4ZjdlOWY2NiBsZWdhY3ktdHJ1bmsKKzU4NDE2IDM5YzliNTYxMjQ1MWEyNzI3Mzg0NjNhODEwYWQwYzI1NmNjMGU0OTUgcHkzay1pbXBvcnRsaWIKKzU4NDE3IDM5Y2I1ZDk2Y2U3NzAwNGU5NzI3NGE0MWVmMDkwNmE2YjJmYmViZTAgcHkzay1pbXBvcnRsaWIKKzU4NDE4IDhjNWE0MzNhOWQ5MGU3ZGEzNTFlYzU1NDEzMmNmNDc2MWNlNDg4M2QgcHkzaworNTg0MTkgYmYxMDE0NDQ4YzQxN2Q5NDg1NmViM2MxMzdkY2MyYzNjZDQ5ZTRiYSBsZWdhY3ktdHJ1bmsKKzU4NDIwIGI2Mzc4ZmE2ZTE2NDkwYTcyYTRmNmZkNTZmZGNjNGMwZGI3MDEzN2EgbGVnYWN5LXRydW5rCis1ODQyMSBjYTliMDhlN2RjMjNkYTAxMGIwZjFkMWE3ZWZmYTI0ZDVhZDE0ODhhIGxlZ2FjeS10cnVuaworNTg0MjIgZTQ5YWU5OTgwODA4MjJlMzQ3MWE5ZDRhY2FiN2I5NTBmODY2YTZkMyBsZWdhY3ktdHJ1bmsKKzU4NDIzIDE2ZDRiOTA0ODUxZmUwYTFiMTc0NjI0NmU3ZjIzNmU2NjdlNGU2MWEgbGVnYWN5LXRydW5rCis1ODQyNCBjZGEwYjYyNTI3NWE2MWIxYTZiMWRjZTI0YTRlOGMyNmZhZWMyNjUxIGxlZ2FjeS10cnVuaworNTg0MjUgOWI2YTQ3M2NmYTIyOGIyZDcyZTY0ZmQ2YzliYzBlYjA2MzEzZmEwOSBsZWdhY3ktdHJ1bmsKKzU4NDI2IGE0NGU0Y2MzM2Y1ZTAzZGNlZTU5Y2QyNGMzMWNhY2RkNWU5MjYxZmUgcmVsZWFzZTI1LW1haW50Cis1ODQyNyBhMjYyMTc4YzFjMGFmNDUyY2M3MTlmZjNmOGVmMjUwOTJlZDNlMmU4IHJlbGVhc2UyNS1tYWludAorNTg0MjkgYTNmZDZlNTliYTgzNmVjZjQ3MTM4MDgwNjZjMmU3OGM2OTg1N2M3OSBweTNrLWltcG9ydGxpYgorNTg0MzAgODFmNTk4YTc2ZjU5ZmEzNDI4MGU2NmEwNDk2YzEwOGM4NWQ3NThhMSBsZWdhY3ktdHJ1bmsKKzU4NDMxIGZjMDQ4YjcyYmYzZDA4YWJhNDY4NDk2NWJiZDczMmVlNDc5ZDlmOTcgcmVsZWFzZTI1LW1haW50Cis1ODQzMiBkMGJhMzlkZTdhYjdlNTBjODEwMDMwYWY2OGRiMjBkYjRkZjMxMjlkIHJlbGVhc2UyNS1tYWludAorNTg0MzMgZmIzMTBiODYyMGVjZTFkMTY1YzU3NjA1NTBhOWFjZDI2ZTI1ZDBlZCBsZWdhY3ktdHJ1bmsKKzU4NDM0IDk2MDMyMjFiYmE5MDJhYjAzMmQwZWI0NjBjMjJjNjdmMjAwMGRiZmIgbGVnYWN5LXRydW5rCis1ODQzNSAxMDRkMmYyOWY4ODZiOGM5MmViNzU1MzIyNGVhNWY1MWYzMmViYmY1IHJlbGVhc2UyNS1tYWludAorNTg0MzggNmE5N2Y3MjYwY2FkMDk4NWYzOGYwZGU0YjJiZTFjZmRiNzZmZWI3ZiBweTNrCis1ODQzOSA4MzNiMGU3ODE1MDZkYWQwYTI5MjQ1Y2MzYWE2NzFiZWQxZmRjMzg1IHB5M2sKKzU4NDQxIGZiOWQ1MzA2ZjRjNzIyNDBiY2ZkNGQyNDNjNDIzMzI2Y2VjYTE3ZTkgcHkzaworNTg0NDIgOTkzZTI0YzcyNGI4YzdkMzJiY2I5M2QxNWVhY2IxOGZlNTU0NDE0YiBweTNrCis1ODQ0MyA0ZWE5NDVjYmJiNmQ0OWQxZTQxMzUxMzI4Y2JlOTQ5Y2U4ZjBlMDU5IHB5M2sKKzU4NDQ0IDQ4M2NiNDFhNTY5MWJiNTU2YWY1MjI5ZDc3ZGM1OTU3ZGQyZGY2MDMgcmVsZWFzZTI1LW1haW50Cis1ODQ0NSAzNTg2NjMxZDhkMjFjNTkzNjc1ODNkN2YyNzhhNmFhYTQ1ODc3ODkwIGxlZ2FjeS10cnVuaworNTg0NDYgOWYwMzY2MjYwY2ZiYjQ4NzM3MDhlZjFhMDVlMjQzMzRkMDMxZmIxMiBweTNrCis1ODQ0NyA2NDRlMjhlYTliMjJhNDYwZmZjMGM1NzJjYjQ2NzNiMzliYTM4ZjY5IHB5M2sKKzU4NDQ4IDhlNzJkYWNmN2YzYTUyN2IxMjVhNjg5ODk1YWEwN2VjYWI4NjFiMGUgcHkzaworNTg0NTAgMDJhMzNkY2E0MDAxYTU4ZmM5ZDVhZWYyNzgwZDQ2YmZmNzFjZjg2NiBsZWdhY3ktdHJ1bmsKKzU4NDUxIGMzYTI1ODIwZjUxMjM1Y2Q0YmU3ZDQyNjFkOWE1YmFjZTczN2Y5MWQgcmVsZWFzZTI1LW1haW50Cis1ODQ1MiA5OTI1Y2UxZmQ3YmU3ZGZiNDY3OTg0NzEzMDIzZTFhZmExM2Y2NDgyIHB5M2sKKzU4NDUzIDMwNmQ1Mzk1ZGZhMjk5ODA5OWU0OTUzZDVhMWY1ZDhjZjY3ZTlmOWQgbGVnYWN5LXRydW5rCis1ODQ1NSBhYzYyZWIyNjcyMDZlMTVkMzk5NDRiNjYzYTc3YjYwOWU5OGQ2MDJhIHB5M2sKKzU4NDU2IDAwMTU1NzJkMTFiY2Y5ODYzZjExMDYyNjhkMjFhMmVhYmFjNzgyMDYgcHkzaworNTg0NTcgOWZiZjczM2EwNjM5YmVhNzdkOTEwNWJlYzFhODdkZGI5N2FlYzJlYyBweTNrCis1ODQ1OSA0ZTA1YzI0ZTI2ZjhhNTM0YjY0YjY5ZmVhMWEzNGRhMzAwN2U4Y2EzIGxlZ2FjeS10cnVuaworNTg0NjAgN2UyN2Q1MGM4NjcyMWU2MWZmZmZlOTcwNGJkNjYzYWU4MzY3YjdjYyBsZWdhY3ktdHJ1bmsKKzU4NDYxIGI0MDM1ZDM2NjViYjgzMDIyMGIxYzM1ZDU3ZGZmZDU2Y2JlZjYyZjcgcHkzaworNTg0NjMgMTI2ZDJmYjczNWI1YTI2NGMwNmE1ZjgxNTM2YTYzMzEyM2QyMGFlOCBweTNrCis1ODQ2NCA1YWQ1NzhhZTk4NzNlNjE3NDY3ODA4M2QzZWEzMDMzNzNiMjI3ZTEwIHB5M2sKKzU4NDY1IDkwMjk0ZDgwYTNjNWJjZmRlNmEyMzk5MDQ1MjIxNTJjMmNiOTg2ZWEgcHkzaworNTg0NjYgMTkzMTllNzBmYzNlZGJiNDViMmQwMDcxNjFjMWIzYTFkZTA5NDE4MSBweTNrCis1ODQ2OCBhNWE0Yjc4NmJiMjE1YjZiMGE4YmE5NDBiODQ2YzExZTE0Y2Y0ZDY3IGxlZ2FjeS10cnVuaworNTg0NzAgMjE5NWQxZjE3OTU4M2FmNmYwYzNlZTg1ZmY1OTdjZTZmYmRlZGQ2NyBweTNrCis1ODQ3MSA2OTc0MDBmY2U3YzVjMDRiNWIxN2RlOGVjNzBkZTdkYzIyOGMzNWVhIGxlZ2FjeS10cnVuaworNTg0NzIgNTA1OTliYmIwYzY3MjM5OTJjZTc0MjQ3YWZmNmZiZTg5MDk4ODQ5NCBweTNrCis1ODQ4MSAxNmUyMzdlY2UyN2QzOWQ0NzgxNTRlYzhlYTBiMDU2MDIxNDRjZGVkIHB5M2staW1wb3J0bGliCis1ODQ4NSBjOWU2MWQ2NmZmNjUxODI4MWVjNjQwZDNlMzM3MGQ2ZGRmYWM1YzU0IHB5M2staW1wb3J0bGliCis1ODQ4NiA2Y2I2Mzk3ZDIyMWFmMmE4YTM3M2Q3ZjZlYjNhMDNjMTkyOTMyYjNjIHB5M2sKKzU4NDg4IGQ3MTM4NGNiNTYwNDRkYTE5OTFhZmVmZjNiN2U3NmExNmM0N2ViNGMgcHkzay1pbXBvcnRsaWIKKzU4NDkxIGU3MmFkNGQyNTZlODQwYmI3ZDk4NDUwNTUwNzNmMGIzODAwYzk3N2MgcHkzaworNTg0OTMgNjk3Y2MzMWE4M2Y2NWU5MjBkMmYyMjNlY2RjZGRiOTI2ODhlZDI3ZCBweTNrCis1ODQ5NSBhY2U0NWIzNjFlODczZTBlMTdkODIyMDk2YmJhMzM0NjU5MTRhNTFiIHB5M2sKKzU4NTAwIDQwNjAwNDdiM2YxZDNiMjBjZjAxNDg3MmRhMTExYjQxYzZmMzk1NDUgbGVnYWN5LXRydW5rCis1ODUwNiAwNDZlZGFhMTU2NmE3Yjg4NWQ2OGI1ODRhY2VjY2RjODFjNjJjMjBhIGxlZ2FjeS10cnVuaworNTg1MDcgN2NhMGJjMGFkOTYwMzViY2NkMDUxYWIyNGIyNDQ3ZTkzMmNmODU0MSBsZWdhY3ktdHJ1bmsKKzU4NTA4IDAxNmRhOGUyZjk0YjhjYzM4M2MwZDk0NDYxNjE3ZjE1ZjkyYmM3NDMgbGVnYWN5LXRydW5rCis1ODUwOSBjOGVlMjYwNzMwNTAzZTk5MWYyMWFhZjRlMDBjZmVhMTc5NmI3MjdjIGxlZ2FjeS10cnVuaworNTg1MjIgNjE1N2UwZDI3ZWVmNjEzOTRhZmRkNmM4M2FkNGVkMWM4OTBmMTA0ZCBsZWdhY3ktdHJ1bmsKKzU4NTMwIGRhNDQzMzRlYmVhMjQ1MmNiMjMwMmI4MzhlYWY4Y2UwNjE2ZTE3ZGQgbGVnYWN5LXRydW5rCis1ODUzMSBmMWY3MDFjMjI0YzFjMGI5ZTRiZGQ2OWU0YjVlYjYwMDIxZmIwYjcyIGxlZ2FjeS10cnVuaworNTg1MzIgMjdhNGQyMjRlYTFiOTA5YWFjYjhhY2Y4OTgwYTljOTk2ZWJhNzlhYiBsZWdhY3ktdHJ1bmsKKzU4NTMzIGI4MzM0NmYzYmZhZmRhNGMzZjE3MTkyYTMxZjdlMTE2YjNmZmVkZTEgbGVnYWN5LXRydW5rCis1ODUzNCAxNDNhY2JiZmFmZDdjNzA2ZWNjZjg3OWM5OTYwNGEyODI2ODY1ZWExIGxlZ2FjeS10cnVuaworNTg1MzUgNmRiN2JiZThmMjdjZTY3MjQyZTk2ZjAyYjY3YTBlYmI1NGFhZWMxMyBweTNrCis1ODUzNiBkMjE2NWRjMWIwOGRmYzA2NTE5NmRmNGY4ZDBkMjc2ZGIyYWIyOWY4IHJlbGVhc2UyNS1tYWludAorNTg1MzcgY2MxNTgzNmI2ODA4Yjk5OGZiZWQ5NDE5NmY2NzkwZWIyODdhMWMwYSBsZWdhY3ktdHJ1bmsKKzU4NTM4IGU5YWY3MDYzODg4OGRmZDBmZDA5YzFiZjFlNzUxODM4ZjM4YjdkM2EgbGVnYWN5LXRydW5rCis1ODUzOSBmMjY3Nzg0MzA0NzAwNGRlNjM2MDM0MmJlNmRkOWI2NzdmODJiMTQyIGxlZ2FjeS10cnVuaworNTg1NDAgNDQ1MDdjNGRlYzJiNWYyODQ0ODdjZWQzMDYxNDgxNWY4MzQ3MGJmNSBweTNrCis1ODU0MSBkMzdjMDA1MTQwNmU2NmU0ODNmOTUyYmFjODJhOWM2NDRlYjNmMDk0IHJlbGVhc2UyNS1tYWludAorNTg1NDIgNTQ4ZDA2ZTk4ZjU2NDVjZjcwNjQ1MDU0MjVlZjUwNDlhZDI0MmM4YiBsZWdhY3ktdHJ1bmsKKzU4NTQzIGJiNWNiODllZmUxOGFlOGMwZTQ1NTRkYmU3ZDMxMDYxZmI2MDI5NmUgcmVsZWFzZTI1LW1haW50Cis1ODU0NCA5NmFmNDFlNTBlNTYxMTdjZDZlYWM3ZTdlMjY5OTczZmMxNjNmNGIwIGxlZ2FjeS10cnVuaworNTg1NDUgYmRkOTI0MjUxODBmNGJkZjMzYmFjMmE0MjBmMmU3NTkwNWRhNTVhMiBsZWdhY3ktdHJ1bmsKKzU4NTQ2IDIzMjBjZDRmNjhiNThiYTdmZWIxMjY4OTcxMTNjYTE5YmEyZjg2NzQgcmVsZWFzZTI1LW1haW50Cis1ODU0OCA4YTAxNjc0MTYyMjMyMDU5MjVkZjVjNTQ2MGJiNDJlOTE1MzY2NjM2IGxlZ2FjeS10cnVuaworNTg1NTAgODA3NDRjOGQzNGQ4YjE0Y2M1MmNmMjE5NDA2MjBmZTE1NDNmNzg2ZCBsZWdhY3ktdHJ1bmsKKzU4NTUxIGRkMDNhYTc0MWY1Njg4OWM1MTI2MjhmNjI2ZjUxZjEyZmZiZWNhM2QgcHkzaworNTg1NTIgYjE4ZjYwOTJmNmUwMTc3ZWQyN2VkOGVmNmNmMjM2OGJkOTM1ZTg4ZiBweTNrCis1ODU1MyBhMmJiNzZkMTFkNjZiMzEzZTRhOTU4ZmRlNTAyODE5N2NmYzc4MTQ5IHB5M2sKKzU4NTU0IDU3ZjNmMTI2ZjNmNzAxMmNiMmNlZTE0Mjc4NWU0YzU3MzRiNTM3M2EgcHkzaworNTg1NTUgNzU5MzQzNjA1OGRkNTMxMDE0MmZmNDUyYzBlNGJiOWJmZmEzNGVkMiBweTNrCis1ODU1NiBmMGJjYzExY2E5NjU2NTlkNDMxYzkyOGMyYTdiZWFiNzg4ODFmYjI1IHB5M2sKKzU4NTU3IGQzNzhhY2RjMzBlZWQyMmNlOGQ2OGI1YmY3OGZhNWYzOTc2ZDRiZWYgcHkzaworNTg1NTkgNjVmZTE5NTUxOGNiMmZkMGJmZmE0ODE5Mzc3NTcyZmJiYTMyMThmMiBsZWdhY3ktdHJ1bmsKKzU4NTYxIGNiOTRlYmQ5YWZhN2ExYWNmNmY5NTVkNGZmZmFhZTA3ZWMwMGZmNjEgbGVnYWN5LXRydW5rCis1ODU2MiBhMjE0MGViNWZjNmFjZWYxNGU4ZGRjOTc5Nzc0MWFmMTRhNzc1N2IwIGxlZ2FjeS10cnVuaworNTg1NjQgM2NiNjc4NjI4YWYzOGU4NTZjZWUzZDM2YjgwNmM4M2RkMTBiZTRjNyBsZWdhY3ktdHJ1bmsKKzU4NTY3IDI1MmI5ZDIyY2E1NTVjNzBjMmI4ZjIwYzA0NGJiZDY5ZDc0MGUwNDYgbGVnYWN5LXRydW5rCis1ODU2OCBkNzI3OWMzMjFiYjdjYzhlMjRkYzNjYTVmZmE1MGI3OTMwN2FkZDUxIGxlZ2FjeS10cnVuaworNTg1NjkgMjAxZGQwOTQ5OTk5MGVmMTI5YWEwZWU1YjQ4YzY2ZDVhOGNiMjI2NyBsZWdhY3ktdHJ1bmsKKzU4NTcwIGM0Y2MzYzI0ODlhMDQ4Mjk1MGI5ODFkMWYxNzg5OGM3MmRjOGFhNWEgbGVnYWN5LXRydW5rCis1ODU3MSA4ODk5N2YwODIxNzQ5YWQwZmUxNTZjNzE1MWIyMGYzN2FkNzcwNjVkIGxlZ2FjeS10cnVuaworNTg1NzIgNWU0MjExN2Y5Y2JjYzAxMDUzNTBiMTRiMjk5MzQ3ZDBlYjUwNDk0ZCBsZWdhY3ktdHJ1bmsKKzU4NTczIDI1Mjk2ZWMwMmIxOWM1MWZkMmQxZjQ2ZWU0YzU3NjBhYjFmMjRlMDggbGVnYWN5LXRydW5rCis1ODU3NCA1Y2JhMTRhNTY0ZmRkZmFlZDgwMDE2ZDc1NjFlYmQzMDFkNGUyM2IxIGxlZ2FjeS10cnVuaworNTg1NzUgOGZlMjI2OTMxZWU3MjFhZTNkY2ExMTVhZDRjODdhNmYyNmM3ZDZmOCBweTNrCis1ODU3NiA3YzM1YTU5MzE3NTVmZDY1ZDAwZjgwOTA5NGM2MTNiMTI1YTkwYTUxIGxlZ2FjeS10cnVuaworNTg1NzcgMWJmNDc2MjM5ZjM5NTllMjBiYzBkMDU5NWQ1MzczMzkzNDI2MjU2OSBsZWdhY3ktdHJ1bmsKKzU4NTc4IGE1NzYzNTEwMGRjMzk0NmIxNjZkMmFlN2Q4MGNlYjU4YWQ0ZmI2ZWYgbGVnYWN5LXRydW5rCis1ODU3OSA0ODIyMGQ2NDRjOGUxMDlhMmMwMTNhNDAyZjllNzczZmMxYjk0NzA4IGxlZ2FjeS10cnVuaworNTg1ODAgZmFmNWRlNjllOTc3MWU2NzY2YTA4NDBhZjUyMzEwNjc4YWE5MjA5MiBsZWdhY3ktdHJ1bmsKKzU4NTgxIGM1Yzk3ZDdhZTkwY2U4ZjRmNWU3ZTQ4ZTdlNjcxYTI1ZmNmOGIzOTYgbGVnYWN5LXRydW5rCis1ODU4MiA0ZjY2MmJhMDlmMWZiZTM4NjFmY2Q1YWU4NWMwYzM1MjZkZTFiZTMzIGxlZ2FjeS10cnVuaworNTg1ODMgNmRmOTg1NzQ0ZDk2NzhmYThiMDhmMjlhOWRjOWY4NmE0NzJhNjk4OSBsZWdhY3ktdHJ1bmsKKzU4NTg0IDAzMDU2MzY1YTFiNjYyY2FmMjg3NmM0M2FkM2ZlNWU4YmU3MzhiMjIgbGVnYWN5LXRydW5rCis1ODU4NyAwMDY3YTZhYjQ4NTRlNzE2NTdhNWJiOTJiNzJhZTI3MTdmMjZhMjZkIHB5M2sKKzU4NTg4IDkwMjEyNWI1OTRjYzg5OWY4OGU3MDU3OTc5ZWU5ZDk0NTA1YTU1NWQgbGVnYWN5LXRydW5rCis1ODU5MCAxNzgyNTgzZjExNThiZjM1OTAzNTk3Zjk0YmZlMjhkYmVlZGUyNTAxIHB5M2sKKzU4NTkyIGE1OGYzMTkzN2RhZjljZGNkYTdkYzkzZWZlYjQxYTcyZWFmZjZjZDEgcHkzaworNTg1OTMgZTgyZDlhODhlZDllNDI4NTJjNWFkZWYxZDRjMzVhZTdhNzhhMGEzNyBweTNrCis1ODU5NCBiNmEyOWEwZWEzMDdkMzkzOWRlNzg0ZTA5ZWIyMGI5NTdiYThiOWYyIGxlZ2FjeS10cnVuaworNTg1OTYgYjEwNTQ0ODI3YWY3MGIzNTcwM2MyYTRmZjNmYjQzOTNhM2JhODc3NiBweTNrCis1ODU5NyBhMzJlN2VjOTMzOTRlMTUyNWRlY2NmYWIyMWU5NjlmYjFjOWMyMjdlIHB5M2sKKzU4NTk4IDA0MDg4YWJmNGU0ZmQwM2U3ODg1NDU2ZmUzOGQxN2ZjM2Y4NDRiNmMgbGVnYWN5LXRydW5rCis1ODU5OSA1M2VlODk0M2QxNjU4ZGFhYzNhODBmZjgxOTcxNzUwMjg4YmFmNGZiIHJlbGVhc2UyNS1tYWludAorNTg2MDAgZGM4MWJjZmMzNTFhZTAxYmEzN2UzZjNiNjc3NzQ0MDg3ZmE3N2M2OSByZWxlYXNlMjUtbWFpbnQKKzU4NjAxIGViOTA4YTE5YzA1YTI0ZTA4MDMwNjZiODY1Yzc1MzhjOGIzZGExNTAgbGVnYWN5LXRydW5rCis1ODYwMiA5NWQ4YzkxM2U4YmYzNjExMmVjNzdiYTYzNmM3MTFiYjFkZDE0MTNkIHB5M2sKKzU4NjAzIDk5NTI2YzQwMTQ3YjE0NWI0YmMyMGEwMTc5ZGFiZGRiYjZjYWJhYTAgcHkzaworNTg2MDcgY2Q1YjM4M2EzOTdlNmUyMTJkZjZmZmI1ZDMyNmJkZDJhMmNhY2IyNiBweTNrCis1ODYwOSA0NDFkNjA5ZDA5NmI1ZGY2NjAzZTE0Zjc0OGNiYTQ3OTYyODYyNDlkIGxlZ2FjeS10cnVuaworNTg2MTAgNjM0YzNkNDA0OGU3ZDdkNzBlNjUxOTYzYjFjNWQ4YWVkZTgxYzljOSBweTNrCis1ODYxMSBmOWI3OTU0ZDc4OGQ2MGNkMDRkNTI0ZWYyMjZmNmZkYWRhODc0YjFiIGN0eXBlcy1icmFuY2gKKzU4NjEyIGRhODIzMGZhZjJhZWJiZmEzMTgwYjQ4OGFhYzUzODliYjJmMmFlNjMgcHkzaworNTg2MTMgYzlmMjg2OTdlMTk5NWI5MzAwZDIwNjZkYjU1ZWFiZTc0ZTMzOTRiNyBweTNrCis1ODYxNCA3OTkwNGU4NDFkZjM4MGM2MGRiYWM3MGY4OTg2YjRjMWJhM2U0ZjAwIGN0eXBlcy1icmFuY2gKKzU4NjE1IDM0NzkyYjllNGI0MjhkZWIxNGQ2Njk5YWZjMWI3YTRmZDg0NTRmMzcgY3R5cGVzLWJyYW5jaAorNTg2MTcgMDAzZDM1MjE1ZWYyYWM2MjY3ZWZkMWNhNGM1Y2E1ZDcxZmY5ZDNlZSBweTNrCis1ODYxOCAwY2ExZDI5YjgzYzJiNmRhOWRhYWU5ZDJiMTcwYjhkYTk4ZGVmY2ZhIGxlZ2FjeS10cnVuaworNTg2MTkgMGM3NmU1M2MxZDY1MmUxMzc4ODNkMTlhNzVmNTFjNzk2OGRiZDQ4ZSBweTNrCis1ODYyMCBhMDk4M2Y1NWM5NTc1Y2VjZmZlMGQwNGY5NTZhZWVlNDFjMzJiZWIzIGxlZ2FjeS10cnVuaworNTg2MjEgYTc2MGMxYTA3ZDI2ZjBhOGYxMTU2NWY3YmEzZTdjZTgyYzE3M2I3YyBsZWdhY3ktdHJ1bmsKKzU4NjIyIDM2YjJhYWY0NTdiNGFlMmI4NDJjZGYxZWVkMTg0NzgzYWI1NjJhYzMgbGVnYWN5LXRydW5rCis1ODYyMyAwOGVlMjU2YTliZDExOTE2NDIzMDMyNmZjMjU2YTk5Zjc3ZmFiZmU3IGxlZ2FjeS10cnVuaworNTg2MjQgNzQwOGUxYWU5OGM0YTA3NWJjYThhYmVjYTdhNzg2YTE3NWI0YTAzYiBsZWdhY3ktdHJ1bmsKKzU4NjI1IDk3NGU2NGNjMDgzZGNhOTI2Y2Q0MzFjMzUwNTQ2NDk1MjY5MGUxZmIgcmVsZWFzZTI1LW1haW50Cis1ODYyOCAzYTE0YzkwNGRhMjMyN2MwNDEwZGQyMGE0N2JmYTM5YjQyMmEzMTJiIGxlZ2FjeS10cnVuaworNTg2MjkgNzMyMjc1YzQwMjZiNTIwYmE0ZTE2NGU2Y2RjOTBjZDUyMzAyZTgwMCByZWxlYXNlMjUtbWFpbnQKKzU4NjMwIGU1M2Q5NWMzYzBjNGRiMTRlOTllYmEzYWNjMTY5OWYyYjY1NjRlM2UgcmVsZWFzZTI0LW1haW50Cis1ODYzOSAzZGY1Yzc0NjE2MDNjZmE5YTU1YmVjNzlkZDBmMTU3Y2I3NGU1ODE3IHB5M2sKKzU4NjQwIDMzZWZiZmMyOGQyYjM3OWI1M2M1MmQyNzdjYzJlNmI0N2NlZmVlOWQgcHkzaworNTg2NDEgNTkwYTFiZWVlZjg5ZDFkYWMxZGNiMTI0YmVmMzNjYWM3ZDZhMzdjOCBsZWdhY3ktdHJ1bmsKKzU4NjQyIDdjN2I0MmY2NGY0MWQ0MThkODM1ODRkODdlNjRiMmJjN2FjOTUyYzYgcHkzaworNTg2NDMgYmFjMzQzYWRmZmQ5ZDI3MzJmN2JhNDFlYzZkZjEyZjNiYzMyNDMwNyBsZWdhY3ktdHJ1bmsKKzU4NjQ1IDNlNjM0OGJjOWEyODM3NDkxMDQ5ZWJjNjlhN2JiMThkODUyOTIxMTkgbGVnYWN5LXRydW5rCis1ODY0NiA4ZGVhNTk5NzliYTJlOTg4YmFlZDUyZWU1YTIzZmRiNzQ5YTk0M2VhIHB5M2sKKzU4NjQ3IDU3YzBkMDg4NDMwNjQ4NTllZTFkZmNiNmE3ZTFjY2VkYmE4N2JiMmIgcmVsZWFzZTI1LW1haW50Cis1ODY0OCA1MWJhMTJlMGExZDUwZTI3MzMxMWU3NDZlMTJlNjJlMWU4ZDg1MGUxIHB5M2sKKzU4NjQ5IDhmZTI0ZTVlZWVmZmI5OWQzYmFjYzQ5NWI5YjA2MDdjOTc4ZTNjM2UgcHkzaworNTg2NTAgZDY2MDE4ZWQzZGVkNTkwYmExZjZjNjY3MDVlYzNhYjAwNDAzN2RlYyBweTNrCis1ODY1MSA5MDBlZjBlYjNmOTRiNTAxMjUwMWY0MDI4ZjlhZWRmMTE1OTYwMDk1IGxlZ2FjeS10cnVuaworNTg2NTIgMzVkYTkxNWFkZWRjYWNjMWEwMzJhOGE4NGI1YzE3ZTc1ODdlZjE1ZiBsZWdhY3ktdHJ1bmsKKzU4NjUzIDgyMzc3MmYxZDJiZTkwOGI1YzU0OTJlMGI3NGIzOGJiZGI5OTJiOWUgbGVnYWN5LXRydW5rCis1ODY1NCBmZWQ2NDMxNGQ5NDQ5ODNmYjNmZmI4MzM4MDk0OTliN2JhNzIyYjg1IHJlbGVhc2UyNS1tYWludAorNTg2NTUgNTMwNTczY2Q0ZjdhNzc4MTY4YmQwNjFkZmFjYThhMjAwZmU5ODI3ZCBsZWdhY3ktdHJ1bmsKKzU4NjU2IDUwOWE3MzZlYmRiOTcwNjIwNjZhMWRhNTcyMGI0ZmU5YjI5MzBmNjUgbGVnYWN5LXRydW5rCis1ODY1NyBhODgxOGZmZTI0ZDExZjEwMTQ1YzM1MWU0YzY4YTk1Yzc1ODA4OTI0IHB5M2sKKzU4NjU4IDcwNzVkNDY0ZDkzODQ1M2ZiMzg2NDI5NDY3NjVmYWY1MWRiZTNjOWUgcHkzaworNTg2NTkgMDZiZGI4NDM5ZTI5ODRjMjc2NDc2MDgyOTUwMDM5ZTljOGUzMTdhYiBweTNrCis1ODY2MCBkM2JmMDA5ZmJiYTk4ZDNiN2MzMjJkY2YxZWNlYWRlNjNiODY4ZjdmIGxlZ2FjeS10cnVuaworNTg2NjIgNGJiNmEwYzM1M2FiNjg2ZTc2NTcxMmYyNWIxNjRlZDhhZTFkMTlkZiBweTNrCis1ODY2MyA1YjEyYjBiZDgxODgwZTk4ZjAwZTljOTczNjJhZmRiNTdlMzVkNGExIHB5M2sKKzU4NjY0IDE5OThlZTBlZmYyYzEyNjZhOTA3NWY4MGMyZmQyMTQxYTM1NzdjNDggcHkzaworNTg2NjUgNmFiNjRmNmI0YzAzMTdlNzEwYWJhNzllMDVjMWM4YTZmYTNlZTM3MCBweTNrCis1ODY3MyAwNjUzMTg0OGEzOTQ2ZWFlODk5M2E0YzRlZGFjMDg5MTEwYmQwYTkwIHB5M2sKKzU4Njc0IDY0Y2UzYmYzYTZhOWQzOGRjODUwYzYxYTFkMjY3ZTNjMjRiZWU2M2UgcHkzaworNTg2NzUgZmM2YmEwODhiZDc3Y2FiMThkMDkyOGE3Mjk4NzJkOTI5MTkyZDRlZSBsZWdhY3ktdHJ1bmsKKzU4Njc2IDVhNGU4YmRhZGI4NTA0Y2I3YTE3YWQxMTcyYWUwYmNlZDE1NjQ5NzkgcHkzaworNTg2NzcgNTBhMzQ3NWRiNDY2YjdkOWQzYmExZGRjYTcyNzFhNjAzNjVkOGUzMCBweTNrCis1ODY3OCAwNTAyYThjNjRlZjIwZWZmOGJiODljNTU1NzljY2Q2YTc0OTQxMjZiIHB5M2sKKzU4Njc5IDdmYjg2ODAyM2Q3NWFlZjg1ZmIyMWUxZTM0MjBhZTgyYWVlYzI0NzYgcHkzay1wZXAzMTM3Cis1ODY4MCAxNzI2YTRjOTE2ZjAxMzE0M2RiMGM4MDllYzZiZWRmOGM5N2FhOWNkIHB5M2stcGVwMzEzNworNTg2ODEgZmE3Y2Q4ZWFiMmQyYzNlMDdlYmFhZDAzZDNhYTI5YzdmZTZhMWJhMCBweTNrLXBlcDMxMzcKKzU4NjgyIGIxMDJiODM2MWQ1ZTkzY2VmNTQxZjc5OWVhZTMzZGEzYzlmZDExMGEgcHkzaworNTg2ODMgMDQwZjUyMmZlZTExMjM4ZjIwNmM4YTA2MWIwZGVhN2FmNmQwZjU0ZiBweTNrCis1ODY4NCAyM2U2ZWMxYjVmMzUwZDZmNTY1NGNhNzk2ZGViZjMzZTE0N2MxYjBkIHB5M2sKKzU4Njg1IGZmYWE2Y2U0YmZiNDc4OWJlY2ZiOWY2Zjc5NjdmYTZiMzM1ZDA5MjYgcHkzaworNTg2ODYgZDQ2YTMxZjVjNWRmMjZiMDkxM2Q2MmUzYWQ4ZTMzZTZiMDZiMjkzMCBweTNrCis1ODY4NyBmZDRkMTBlOTkzYjc5YzQzOGViMWIyYzY3MGVhN2Q1ODVhNjU3YjY5IHB5M2sKKzU4Njg4IDk3ZTJlODljNjU5MTJmMmQ2MjJhNTU5MDMzOWNkMzNhYTQ1MGVhNzkgcHkzay1wZXAzMTM3Cis1ODY4OSBlMTg5ZDMyYjM3MTkwNjhiYWY2YmYyN2VkYjY0NzAyNjZkNGEwMjdjIHB5M2stcGVwMzEzNworNTg2OTAgNjFiYzgyZGYzNWZmOTA2YTczNGRkMmIzZjdhNWM4MzVjYTA4NDUwMiBweTNrLXBlcDMxMzcKKzU4NjkxIDVkMGJlOTdmMTcwNDBjZjNlNGJkYzcwZDE0MDdiNTQ4OTcyNDQ4YzggcHkzay1wZXAzMTM3Cis1ODY5MiAyZTllZGNkZGRkNDQzYTUzY2Q4ZmQ1YTc1MzY1ZGE2NWYzOWZjMDNjIHB5M2stcGVwMzEzNworNTg2OTMgZGFjYzczMGM3Mjk4ZDU5MDI2MTkxODNjMTI3YWI2NmI3ZGRiODgxZCBweTNrLXBlcDMxMzcKKzU4Njk0IDhmZDNkYjY1MzMxOGViZWRkODA2ODdiZjBkYzY0NGFmNGFmMjZkMzkgcHkzaworNTg2OTUgZGM5ODE2MmVmODQ0ZjBhNmYxZDJkZTA2OTAxMjI2NTE1NWEwMDg5MCBweTNrLXBlcDMxMzcKKzU4Njk2IGY1YmM5NDgxZjg4M2ZjYTY0Yjk1ZTNhZjI3ZGY2ODEzZTIzZWQ3MTAgbGVnYWN5LXRydW5rCis1ODY5NyA2MDhlZTRiODIwYWZhNzIwY2RhMzgxM2JlZThmY2JhMDIxZGE0NzIzIGxlZ2FjeS10cnVuaworNTg2OTggMzY1OTEzZDdhZjdkNjVkNDhiZGY0OGY2N2UxMzEyNjg1ZmFiN2IwNyBsZWdhY3ktdHJ1bmsKKzU4Njk5IDkxZmQ2NTA0NWVlZTY4YWRiZjg0ZWZmM2Q2NjA2ZDY0MTk3N2MwMGEgcHkzay1wZXAzMTM3Cis1ODcwMCA3MzYwYzEyYmQ4MWQ0OWVkOGJhYzUxZDBmNzc1OTNjMjI0NjA4ZTQxIGxlZ2FjeS10cnVuaworNTg3MDEgNTFhNzM3NDEwNWFjNGMzZjVjYjUzMTg3MDI4ZmJiMGY2OWJjZWUxNyBweTNrCis1ODcwMiAzZjQ2N2FjY2VjZDJlNDYyYjBkN2I1YmRmOGVhNWI2ZGZjYTg5NTQyIHB5M2sKKzU4NzAzIDEyZDIwZmRmZWE2MmY1MTk3NGM1MDVjOTliMjI1M2IyOTY2YzVmZjUgcHkzay1wZXAzMTM3Cis1ODcwNCBkOGY3NDQyYjhjYWU4NjZmYThmYTUxMmY5NzMwMDg4MTk0OGY1MTdmIHB5M2sKKzU4NzA1IGMzNDcyMDc3N2NiNjZmZjM0YWE0YmRlOGVkYjA3YWRjNzQ2OTcwZGIgcHkzaworNTg3MDYgNDBlM2EyZGI1ZDllMzAzZGQ3YTllZTA1NDE4MGMxODA5YzIzMzU0ZSBsZWdhY3ktdHJ1bmsKKzU4NzA3IDMyMzU0ODcwZGZiMmJiOGZmNjEyNmE2Y2MxZTM1YTVkZjQzNzNlNzMgcHkzay1wZXAzMTM3Cis1ODcwOCA3NmE1NWY3YjUwNjAwNzUyYTFhMjdhNTFmYmQ4NzUzYTY3MzE2ZjJiIHB5M2stcGVwMzEzNworNTg3MDkgMTI0Y2JmMWEwZTNlYTQ4MDUxOTJlOWU4N2M1Y2U4YmU3YzViNDQ3ZSBsZWdhY3ktdHJ1bmsKKzU4NzEwIGE1ZGQyNzhiMGMxZmJhNDBkZDc5ZjRjYzQ3OGU0NjA0ODk1NGViYWEgbGVnYWN5LXRydW5rCis1ODcxMSAwMGIxMzZiN2RhODQ0ZDMyZGU4OGQyZWFhNWQ5MjFhMmZhOTNkYThkIHB5M2sKKzU4NzEyIDQ3YzU1M2ViNzVkOTFkMjZiYTI2Mjc1NDYzZGE5OTFmMDI0YjQyNGYgY3R5cGVzLWJyYW5jaAorNTg3MTMgOGY3ZjZjODUwZGJkMjYyYjY5YzJiNTNjODRmMjA5Y2UyZTljNmQ2NSBweTNrLXBlcDMxMzcKKzU4NzE0IDI2ZmU3MDg5ZjE0YWYxZWJkMjM3ZGJmZTcxZGRiZDM1ZDAyM2NkZDggcHkzaworNTg3MTUgMzM0ODA3NjVmNjY5MzAxZmI0MjFmYjUwYTFkN2QzMGMwMzNmZDExOCBsZWdhY3ktdHJ1bmsKKzU4NzE2IGUyZmU1ODYwNGNiMWNlYmY3OGViNDY0YTAwYjc5MWY0MjUxMmJmOGQgbGVnYWN5LXRydW5rCis1ODcxNyA4ZWRlYjUxNjhiZjUxNjY0MTQ2NzNmZDhiN2FiNzg5M2M1ZDViMTBlIHB5M2sKKzU4NzE4IGMxMjE0YmQ2ZWQxNjA1MmU5OWVlMWVjZTAxNTQ2OTg1NDM4OGQyZmEgcHkzaworNTg3MTkgZTUxMGI3MTZiZDgwYjdhNzY5Y2ZkNWI5YmMxMzQ2NmFhNmE4ODkyNCBweTNrCis1ODcyMCAwNDY4MjY4NzgxN2ViOTQ0YWYwOTk0OGI1N2IxY2YxZGNhODc2NWY1IHB5M2sKKzU4NzIxIGU5MTUwNmI0Yjg1ZjhhYmQwM2VmOGY3NTNiYTQ0YmNlODAzMDRlNjUgcHkzay1wZXAzMTM3Cis1ODcyOCA3OGE4YWVhNmNiMGFlNTFlMzJkNWZjMjYyYTA5ZDYzZjUwNTRkMmY0IGxlZ2FjeS10cnVuaworNTg3MjkgZTIzNGQ5NzZiNWQ0N2I3MDAxN2M5YjQzZjcyZjc3ZDU5NjNlNjRiOSBjdHlwZXMtYnJhbmNoCis1ODczMCBlM2EwMWY0OTNlOTRmMzU4MzgwOGE5Y2RiNWI0NjBjMDQ3MmNlNTgyIHB5M2stcGVwMzEzNworNTg3MzEgNDMxYzVhMWE2MjkwMTEwZDEwZWU5YTMwY2RiZDAwMGI1NGQxYWRiMiBsZWdhY3ktdHJ1bmsKKzU4NzMyIGJjZjYyOWU0MzA4Mjc4M2IyNTJlZTBiMzUwMTFhYjhmZTEzMThkNjggcHkzaworNTg3MzMgNTI1MzFiNGY1MzVkM2I5NDk2OWVjMDc0ZjkwOWUwOTJhMzlhMTEyNiBweTNrCis1ODczNCBlZWIzNzI4MTg5NTk1NTdmM2ZmZDRjZTg4MzAwMDFkODM2ZjdmNGFlIHB5M2sKKzU4NzM1IGZlNTcwY2Q1YjE4ZjFmMmQ2NjcwZDU3Yjk1YzhhZDQ1M2IxMjA2MmMgcHkzay1wZXAzMTM3Cis1ODczNiBkNDdhMDRhMmUwYmI0NWU1ZTkxNjc5MTVhNTQ1YjZkMmE5YzZiYjUyIHB5M2sKKzU4NzM3IGVhNjUwMTEzNDI4NjhjNDIyYjllNzI4ZTk5NTk5NjUxYjcwNGM0MTAgbGVnYWN5LXRydW5rCis1ODczOCA2MGQ5NjEyMDQ2MGIxYzQ3MmVhOWRmNDMyOGYwMGU1YWU3NzQ4OWMwIHJlbGVhc2UyNS1tYWludAorNTg3MzkgZTQyMGFhN2Y1MGNiNTBkYjM1NDU0OGM5MmY5MDBlOTUwZDhiOGY0MyBsZWdhY3ktdHJ1bmsKKzU4NzQwIDNlNzM4ZTUyYTNjZWIxMWJiZWE0NTczNDI1ZjU3NzcwMmE2NjA2ZmIgcmVsZWFzZTI1LW1haW50Cis1ODc0MSBiZWY4OGRhODIxYTRjMmM3MjY2OWEwZTRjZDUzNmZkNWYzZjZlM2U3IHB5M2stcGVwMzEzNworNTg3NDIgYTJmOWU2Y2VmMDJmNzhhN2E2ZTQ4NzBmZjU4NTViMzIzZGJkZTliMiBweTNrLXBlcDMxMzcKKzU4NzQ0IGZiYzZmYzZkYzRmZmUxYjJjMjc0N2M3MjUwYWI1NTgxN2E3NTk4YTggcHkzay1wZXAzMTM3Cis1ODc0NSA0MzFiYzkwOTQwMTk1NWEyMTAzY2QwY2Q2ZGFlM2E2YTM5M2IxOTA2IGxlZ2FjeS10cnVuaworNTg3NDYgMDIxY2VlMTg5ZjllMWFiZTViN2MyMDAwNzIyMTljMDUwMDNjMGZhNSByZWxlYXNlMjUtbWFpbnQKKzU4NzQ3IGZkNjg1ZDdlODU5YWExMGRiZDRkNmUzOTQ1Yzg0OGI3NzkyMmE5NjkgcHkzaworNTg3NDggZjg3ZGM2YTA0Y2VhYmEzMDdjMjA4YmYyYzFiMDJjYmEwODU4ODg5ZSBweTNrCis1ODc0OSAzZTVlZGYxOWQ1ZjA1ZDJmZmExZDAyMWRhNzgxNjE1ZmQyZDg1ZjA0IHB5M2sKKzU4NzUwIGJkMmY4YmIxMWJjYzM2MjUxYjFmMGM0NDBiNTU2ODg2MTc5OTY3MTcgbGVnYWN5LXRydW5rCis1ODc1MSBlOGQwMDNiMzg3MGYwM2UxNmQ1MjlmOGUzZTBmZmY4NmQ0MjVmOTgyIGxlZ2FjeS10cnVuaworNTg3NTIgM2Q4NjY1NzkxMTdkYTcwODk3OGRkNzlhN2QyYmVhNTllMGE5ODM2MSBweTNrCis1ODc1MyA3OWY1Y2E5ZWUxNTQ5YzE1ZjU1ODhjYTNlN2QzYTAxMTNiNGNkOWY2IGxlZ2FjeS10cnVuaworNTg3NTQgMGY3NDFjODlkODAzYWEzOGUyNzdhYWZkNTRkOWEzNmFkYmQzYzNkOSBweTNrCis1ODc1NSBjMDBkYzc1ODY3MTQzZTc5ODkwM2RiOTJmNWM2MTVkNzVkODlkNjJiIHB5M2sKKzU4NzU2IDJiN2FhZGJjZWEzNGY2NWU0ODM1M2FlNjllOWQ4Yzg2MjkxZmViZjAgcHkzaworNTg3NTcgMTU3YmIwMjg5MmJjOTRmNzA5YjQ2YWVlMGQ4ZTNlNzczZGVhYTQ4ZiBsZWdhY3ktdHJ1bmsKKzU4NzU4IDVhMWNkM2NhMGIzOTFjYjdlNDVlNDFkNmY1NTlhNTViNTFmMjJhMjEgbGVnYWN5LXRydW5rCis1ODc1OSBjMTliNjg0OTQxMWMwMzI0MDg3NjM5ZTRjMDg3OTViNWJiOWY1NDM3IGxlZ2FjeS10cnVuaworNTg3NjAgZWQzYzJhYWEwMDJhMmE3YjA5YjE0MWYwZGI3NTYxYmYzODI5ZTJiYSByZWxlYXNlMjUtbWFpbnQKKzU4NzYxIDk5ZmY5ZGNmMzc2MGUxMjhkOTg5Zjk3ZDNiNGI5OWZlMjgwNzQyNjQgcHkzaworNTg3NjIgZTVlYjkzYTBhMjBlMDUyMzFlODI4YTVhNTJhNTU5NGY4MGY1Yjk5MiBweTNrCis1ODc2MyAzMjc2N2I0Yjc5MjFhOWM5ZTljNmMyYjljNDMyYzVhZjYzZTNiZGMyIHB5M2stcGVwMzEzNworNTg3NjQgOGFjMjg0YjY1ZTM3ZTA2OGI5ODJhNzIyZTJjNDQ1MjUwZGUwMWNhZSBweTNrLXBlcDMxMzcKKzU4NzY1IDhhNDBiODMxYWI2ODk5YzUwNDkzOTQ0NzU5N2Y1Nzk2YjhlYzI3OTkgbGVnYWN5LXRydW5rCis1ODc2NiBjNDYyNGRjMGQ0MWIxMDdiYmFhZTA4ZDkzODA0MDhiZGI3YjAzNWY5IGxlZ2FjeS10cnVuaworNTg3NjcgNTg5MGQ1MTBhYTZmNzQ2NTE4OTFlNDZkOTVlZjExMGU5ZjhhY2ZiMSBweTNrLXBlcDMxMzcKKzU4NzY4IDg5NDhmODgxZTQwM2ZiMmQ1MWU1YThjYjQwN2QyOWQ1NjcxMzdjZTIgcHkzay1wZXAzMTM3Cis1ODc2OSAyNzQ4NmEwMmFlNjRmZDVhODk1Mzc1MDJlODEyOWE3YzA5NjVjNGZiIHB5M2stcGVwMzEzNworNTg3NzAgODcwZjcwNTYwYzhmMjg5MWIzNDBlOTE4ZWQwNzk0ODRkZmFjM2VmMSBweTNrLXBlcDMxMzcKKzU4NzcxIGI2YzhhNjY5Yzc5Y2EzNjYwOGYwODFmNDBmZWEyODM4MzU0Y2JkYzcgcHkzay1wZXAzMTM3Cis1ODc3MiAwNGJlODlmYTc0OTdjMjllMmEzYjA1MWNmZjY4MTJiMjYzMDkxMDQyIHB5M2stcGVwMzEzNworNTg3NzMgZDdhYjVhZjNjOThlYTk2NWU1NmYwZWYwMTQ4OTI0MGJkODk5NjFkMCBweTNrLXBlcDMxMzcKKzU4Nzc0IGI0ZThlNTIzYjg4MmVlMjZkNmUxNzRmMDQ1YzNhNjVlMmNmMTg4MjcgcHkzaworNTg3NzUgNWIzYmU0YWIyZmUxZDExZTMzYWRjMWU1MDM0ZDFlNDA5ZDFjZDE5NSBweTNrLXBlcDMxMzcKKzU4Nzc3IGVlMWJjODM0ZDhjNmZjZDY1MDUzNTZjOGY4MGY2ZjZkMDc4M2VkZjcgY3R5cGVzLWJyYW5jaAorNTg3NzggYzUwZTZmOTI0MTlmM2EwMmYwZDE3NjljMTA0ZWQwNzcyZTZmNjdlOCBjdHlwZXMtYnJhbmNoCis1ODc3OSAxMWMyZmRlNzhkNTc3MWI3M2MyYWQ5M2ZhY2E0Nzg5ZWQwZDc3OWFhIHB5M2stcGVwMzEzNworNTg3ODAgODkwNGEwYmNiZjRmZjkyMjZhYzljNjgxZTNlNDk3NjMzNGIyMzBmYyBweTNrLXBlcDMxMzcKKzU4NzgxIDJhOTM5NGZiNTBhYzE2Yzc5NjdiNjA5YzUxZDQ1MWFkOGU4Yzk5MGUgcHkzay1wZXAzMTM3Cis1ODc4MyA4YzdkYWFjMGQ0YjBiM2Y0NDZiYzcyZDZhODNkYjI1YjMzZDkxNjhiIHB5M2stcGVwMzEzNworNTg3ODQgNWZjYjY2MDJjNDlhOWM1ZGMxMTRkYzhmMmViNjdhMDFhNjQ0YzUwNSBsZWdhY3ktdHJ1bmsKKzU4Nzg1IGE3Zjk1ZTJiOTM1ODI0Y2IxYmJjZmIyN2M0YzI5ZWUyMjBiZGQ3NGYgbGVnYWN5LXRydW5rCis1ODc4NiBiNjEwODM3NzRjMDhjNDA1NGNjM2NjOGE2NGRhYjI2NzhjMmMwODYwIHB5M2stcGVwMzEzNworNTg3ODcgMDYwNDZkMTc5MGI5MzBiOTRkNTI5OWU5YTliMjg3ZDZkNDM4OTE5MiBweTNrLXBlcDMxMzcKKzU4Nzg4IDkwZDVkODRjYTI3ZDgxZjRiYmE4OWZmZDQ5MzdhZmIzMDZkYTBjYzIgcHkzay1wZXAzMTM3Cis1ODc4OSBhOTgyMzQ0NTE2NjllODUyMzIxZTBkZjMxNzhmNmEyZmRmOWY0NGI1IHB5M2stcGVwMzEzNworNTg3OTAgNmRhOTBhNWFlOWZhYTAzOGJhZjE5NTI2M2VmMGUwOTJjNTVhZjNmZiBweTNrLXBlcDMxMzcKKzU4NzkxIDQyNjRhMDdhMzlkMTNmNjk0NjU5ZGIyNjgzODVhNTIyN2ViMDgyZDYgcHkzay1wZXAzMTM3Cis1ODc5NCBhMDMwZWNlYTRjMjRiNzVjYWFmOGVkYzMxOGU5YTE3ZTUyNGI0YWRiIHB5M2stcGVwMzEzNworNTg3OTUgMjgwM2U5NmNjNjRhZjhjNDE3MGNkM2QwMGYwNGE3NjBiZmZhNGEwZSBweTNrLXBlcDMxMzcKKzU4Nzk2IDRiMzYyMzU2OGU2Y2Y4NGM4OWI1MzY4NWQyMDk1YTc1NTNiNWEyNmIgbGVnYWN5LXRydW5rCis1ODgwMCA4NDRhYzJjZGY3YThlMDU5MTFkYzRhNjlkMmQ4OTE1ZWMzODJhMzJiIHB5M2stcGVwMzEzNworNTg4MDEgN2M0M2Y0ZGNjN2M3YzBiODYwOWU0MmFiNGNhODdiOTlkNTJiN2VhNyBweTNrLXBlcDMxMzcKKzU4ODAyIDZkNDZmZWIxNjRiNmJkZjY3Y2I4MzVjZjBiMGMxZDQwYzUzMzQzMDIgcHkzay1wZXAzMTM3Cis1ODgwMyAwMGM5ODQ2NjYxNWIyM2FmNTY4M2U2ZjA5YjMxOWVmMzMzYjkyNDMyIHB5M2stcGVwMzEzNworNTg4MDQgOGJiM2U3NzY4Y2E2OGZmMjM4ZmZkZmRmMzZmZTczMzkzMjUwMWRiMCBweTNrLXBlcDMxMzcKKzU4ODA1IGFkOGMzZjllYzFiMjk3ODYyYTY0M2Y5MDI5Zjc5NDUzMWE3Y2JkNTQgcHkzay1wZXAzMTM3Cis1ODgwNiA3ZWRiZjI1OGNhZDAwMTE5MzIzOTU4MjZjMGNhNTJmNmYxZDY4OTU1IHB5M2stcGVwMzEzNworNTg4MDcgMTE5Zjg0MWJiODE2NGFkZmI3YzBkZWM5OTc5ZTQxMzM1OGU3MzA5MyBweTNrLXBlcDMxMzcKKzU4ODA4IDAxMTM1ZGRkNzI2ZGNhOWUxOWZmYjY0Y2FiMWJkNTkyMTM4OGQ4NDkgcHkzay1wZXAzMTM3Cis1ODgwOSAzNTc1Mjg0ODU3NDM1MzI4MmNlZjJmYjFkMWIzYmI2NjM4YTRkYjcyIHB5M2stcGVwMzEzNworNTg4MTAgYjQ5YjMxMDdlNDIwMzBjYmRmN2JmZWI4MDk0YTU5NzhjMWFkYmEzMiBweTNrLXBlcDMxMzcKKzU4ODExIGE4ZTdjYjllMzdjOTQ1ZDEyZjAzODA0ZTRkOWExNzRkZTAwZTRmZWUgcHkzay1wZXAzMTM3Cis1ODgxMiAxNDJmMjY5NDdhYmE3ZDg0MjExOWIwN2M0NjYxZDViN2MxYTY1ZGI3IHB5M2stcGVwMzEzNworNTg4MTMgZDI0OTU0NWJhNzkyMjRhNGNiMjY4ZmQ3MmRlNGY1OTQ5OGIxNzBkNSBweTNrLXBlcDMxMzcKKzU4ODE0IGNmY2ZhZDg3ZWI3ZDBmNGUxMjc2YjFkYjdiODA0NGQxM2VlN2NmN2EgcmVsZWFzZTI1LW1haW50Cis1ODgxNSA3MDRlNjcxMWU1MGRjZTVlNjFhMjc1MDBkZDcyNDM1ZWE3ODA0ZWU4IHB5M2sKKzU4ODE2IGQyYmEyYmY0ZTc2YmFkYTU4NGE1ZjUxODY5NTM5MzAyNzAxNjQzOWEgcHkzay1wZXAzMTM3Cis1ODgxNyAzMTdiYTUzY2Q0NWM4ZTZlYjBiYTVmNzQyNDA5ZTY4Mjc5MGY3M2Q1IHB5M2sKKzU4ODE4IDUyMmJiYjkwMDVhNDE3ZGNkMTdlZGE5YzYyNzRkZjE1ZTYxMzRmNDcgcHkzay1wZXAzMTM3Cis1ODgxOSAyZmYwZTgxZTY4ZmNhMjMwNmU1MGI3YTNjNzU3YTEwMzE3ZjUzODUyIHB5M2sKKzU4ODIwIGE0MTQwYTI4YzNlNzYxY2IyM2Y3ZWMxNWQxZWU1Yjk0NjZiZTllM2QgcHkzay1wZXAzMTM3Cis1ODgyMSA4N2QzOGY0MmQxNjM0NDBjYTQyYzQ2YmY2OGQ1Y2YwZjVkM2E1YzVmIHB5M2stcGVwMzEzNworNTg4MjIgNmU0OTFkMTI3NjVjNWY3YjRjZjI1MWIyMWI1MzRmNDlhZDYzZjlmYyBsZWdhY3ktdHJ1bmsKKzU4ODIzIDQ0OTBmMzM1YmJjZDM4YmI3MjBmNjk4Mjg0OWI3NTRlMmM4YTNhMDcgcHkzay1wZXAzMTM3Cis1ODgyNCA2YWRjOTlhNjg4OGZkZWQwZDI3YzM1NTBjOWZkYWZkZjhmZGVhOTA2IHB5M2sKKzU4ODI1IDhmZDY5NGQwZjkwMmI4NjQ3YjRjYzBlMDM0ZDUyOWIzYjQ0NDhlMTMgcHkzay1wZXAzMTM3Cis1ODgyNiAwYzUxNzE3OWNiOGM0MDVjNTY4MDFjNmI4YWJiZmFmYzNlY2FjMmE4IHB5M2stcGVwMzEzNworNTg4MjcgOTIxYWY3ZjI3NjAwZjdjNDk0MzljZTZhMDUyZTc0OGQxYzc2YTI1OSBweTNrLXBlcDMxMzcKKzU4ODI4IDlkZTA3Mjc1YjAwODdhNjZlZTY2MjNhOTFmOWM3NzhlNzZiOGE0N2IgcHkzay1wZXAzMTM3Cis1ODgyOSBmZDFjMTBkMjFjOWVlNDMzZDUxZTgyNTg1OTcwOTc1MzY1OTlkMWMxIHB5M2stcGVwMzEzNworNTg4MzAgM2NiYzc4YzNhNDAzNTQ5NWU0YjJmMDQ3Mzg3ZGI4ZDc3ZDQ5NDMxYSBweTNrLXBlcDMxMzcKKzU4ODMxIGY2MWEwZWU3NDc2ZmFjNjEyMzRiZWEwNzMwY2M4NmI0YjY3Njc0ZGIgcHkzay1wZXAzMTM3Cis1ODgzMiA0OGU3NzkyMjQxMWQ5YzVhNThjY2RjNWEzNDMzY2I5YTQ2MGU0MjY2IHB5M2stcGVwMzEzNworNTg4MzMgYjNmODZjNDFkMGEzYTA3MjVjODhjMjQzMTgzNTdkMzZhZWIxYzA0ZiBweTNrLXBlcDMxMzcKKzU4ODM0IGY3YjQ1MjlkMDk4NDJhM2Q2ZGE5MTgzMzdkZjQwMWFiYzVhMTYzN2UgcHkzay1wZXAzMTM3Cis1ODgzNSAxNGRmZTJmMTM1ODIzMjk5ZTc4OTBhMzU2MmM4Y2FkYjA2MjQzMTM4IHB5M2stcGVwMzEzNworNTg4MzYgZTkwMDY1ZTE3MjEyMDIwNzg2YjI1MWQzNmM0YWU0MTBiZjRiMmQ3NiBweTNrCis1ODgzNyA2NThjZDM0YThjNWRiZTE5NjhjYzhlN2FjYWJmYzkyMDU3ZDYyMzg3IHB5M2sKKzU4ODM4IGRlM2I2M2Y4YjE3YjZjZGU2NGExZjEwMTc0MTVlYjE5MmE5Y2VjOWMgcHkzaworNTg4MzkgMDNjM2E1NDA3MmQ5MWVmNDMxYmJjNTc4MTI2NDAzMjU0OWUyOGE3ZiBweTNrLXBlcDMxMzcKKzU4ODQwIDE4OTEyNTdkZmQxMTNkYTY4MjI0MTczYmYzN2I2NzE5NTgxZTNhNTcgbGVnYWN5LXRydW5rCis1ODg0MSAwOWY5MjJjNGY4ODcyNWU2YWQ3ZTk1OTE0ZjhmNmFhYTRkZTdiNmI4IHJlbGVhc2UyNS1tYWludAorNTg4NDIgZWYxZDNlODcyOTZmMzY1ODkxMDU5NzdjZWYyNGU3ZGU5ZGY4NzE1MCBweTNrLXBlcDMxMzcKKzU4ODQzIGYxZmRkNmI3MDE1ZjAwNWM1MmFmMTFmMjJjZTg5MzIyZjI4MGEyZTggcHkzay1wZXAzMTM3Cis1ODg0NCA1ODVhZDc3MTNlZmVmZWU0MjBhMjY1MjE3OTU3MDQ4OTFiODcwYjkwIGxlZ2FjeS10cnVuaworNTg4NDUgNDQ3ZDJhNDUwMWNiNzJhNjVjMWU3OGY0NzY4YmRiNjg5YzZjMWFkMyBweTNrLXBlcDMxMzcKKzU4ODQ2IDUwNDIzZjQ0ZTZkY2ZmYzVkMjFiMTcwNjdiNzg0ZDZkOWIyMmQwM2QgcHkzay1wZXAzMTM3Cis1ODg0NyA3MWY4NDM1NzUxYmFhNWM3MWZlMDgzZWNkMzNkOTU4N2IyOTg1OWIwIHB5M2stcGVwMzEzNworNTg4NDggMTUzYzBjNzQ0MWFhZjZmZTExNDA4MWI5NjZhODhjMDZjZDRkZjk0MiBweTNrLXBlcDMxMzcKKzU4ODQ5IDVhY2Q5ZGYyNzEwODUyODNmN2MyODc5MDUzNTRkOWU2NTY4OWJkMDcgcHkzay1wZXAzMTM3Cis1ODg1MCA1MWEwZGU5YmFiMzc0NmFmMWE1ZDdmOTYzMWNiNmVlOGE1ZDY4Mjc2IGxlZ2FjeS10cnVuaworNTg4NTEgOGQ0ZTljNGYwMzUwYTFlMGI0Y2ExYzM2NzgwMzQzMWU4NmU5ZGU0YSBsZWdhY3ktdHJ1bmsKKzU4ODUyIDM3NDIzYzc2ZTIwODU4NjhhOTZkZDhhYjAwNWFjM2Y2YzM2MTRhNmUgbGVnYWN5LXRydW5rCis1ODg1MyAwZmQxY2FhODUyMjVmYWNhMjU5ZmUzODgwMTZlMzZkNmUwNjAwNGRmIGxlZ2FjeS10cnVuaworNTg4NTQgMzcxNTY5NDVjYTM1MTZlNWI3YjhhNjU1OWM3MzhlZGQwOWE2ZDg3OCBsZWdhY3ktdHJ1bmsKKzU4ODU1IDAxZTYzMzNmM2I2Y2VmMjM4NzhiZmNkMDEwMDg0ODNmM2M4N2I4NGYgcHkzay1wZXAzMTM3Cis1ODg1NiAxOTg3ZGJlN2ViNmU3ZDcxN2M3MDg0YTRiMDEwNWM5NWMwOTJlOTZmIHB5M2stcGVwMzEzNworNTg4NTcgMDhlZTNjNzNiNmJlY2FjMTYyNTUwNWQ2Yjg2Zjg4ZjE2ZGM5OTczMyBsZWdhY3ktdHJ1bmsKKzU4ODU4IDcwZWYwYjZhODM0NWYxMjJhOTU5ODUwYjE2OWUyNTcwZjZjNTBkZTIgcHkzay1wZXAzMTM3Cis1ODg1OSBmZTljMjIzM2NkMDRmODMyOGY5MTk0NmY3Yjc4Mjk2Y2ZlMDRkZGM4IHB5M2stcGVwMzEzNworNTg4NjAgMzA3ODgxNDZmMGE2YzA3YWIxMzgyNmRhMDQ0MTc4MjkwNzdhMmYxZCBweTNrLXBlcDMxMzcKKzU4ODYxIDc3ODgyM2MwZmZiNjM5OWIzYWM3OGFlYjA2YzUwZTIxZDkyODIzZmEgcHkzay1wZXAzMTM3Cis1ODg2MiBmM2MzMzdlOWQxZTU5N2MzYWQ0YTM5M2ExYjNlYzdlYjExNGE4NmFiIHB5M2sKKzU4ODYzIGY5ZDQwMWYxZTFlZjBiMGM3YmZjNTlhZDkzYWIxOGJkMTJlMmU3ZmUgcHkzay1wZXAzMTM3Cis1ODg2NCBjNDkwYWUwOGQ2MDhiMDE2MDgzOGJiNjMzOTc2MGU4MTc3MWExZGQ1IHB5M2stcGVwMzEzNworNTg4NjUgYzE1NWYxZGVkYTY1ZDg0N2FhZGZjMjJmNWI4ZTljYTAwZmNkNTg5ZiBweTNrLXBlcDMxMzcKKzU4ODY2IDc5ZmU3ZDA2MjA2YzE4ZjQ0MGM0ZTU4MWFkYWUxYmVkZDJkMzc0MWUgcHkzay1wZXAzMTM3Cis1ODg2NyA1M2FmMDQ2Y2MyYzUyZTJlODNlNzQ5MmE3NWQyN2Q1ZmY3NWI0NTYwIHB5M2stcGVwMzEzNworNTg4NjggZDdkYjQ2N2NkOTQwN2FhMDk2NDA0N2E0YjJkNWIzZGVhNjRlOWQzOSBsZWdhY3ktdHJ1bmsKKzU4ODY5IGE0OTRhOTE1MTJlYzllZTQ1ODJlYTZjNmE1ZmRmMTg2ZmVkNzBlN2QgcHkzay1wZXAzMTM3Cis1ODg3MCA4ZDMxYTM2ZjBjYWFlNTA4OWRlMGNmOTM0OGMxNGVhZDRhYTVjYmU0IHJlbGVhc2UyNS1tYWludAorNTg4NzEgZDI0ODUyYjg2ZDcwYmMyNjRlOTFjOTc0MGI2YTc3MmRhMTEyNjM0ZSBweTNrLXBlcDMxMzcKKzU4ODcyIDI5YTU5OGU2OTM4MjYwZjg2NzA5MTdiOWMyMWMxMjBhNTMzMDE1MTQgcHkzay1wZXAzMTM3Cis1ODg3MyA4NzE3OGYzNWQ3MDA3NDk1Nzk2YThjNWIxNTFiMmQ5MzY5YzVlOWFmIHB5M2stcGVwMzEzNworNTg4NzQgNTUzMTM4NDgwOTE4NTM2NWY2MWFmOGI2YWY5MGVhYmFlYWE3MjA2MyBweTNrLXBlcDMxMzcKKzU4ODc1IGNjNjViNjQwMTk4OTQ2ZTRiZmJhMzI3NWEwMDEyOTE2ZmU4MDhlZWQgcHkzaworNTg4NzYgMGIyMDY3OTBmZWI2NDNlY2UzY2Y4ZTEwZGI1M2FmZWQ5MjY3MDMwNiBweTNrLXBlcDMxMzcKKzU4ODc3IGQ4MjRjMzE1ZmNhYzI4ZTQ1ZGFmNGJiMzZhNjU3NTY1OWFiOGMxMTkgcHkzay1wZXAzMTM3Cis1ODg3OCBkZTk3MzkyNmEzNWNmZDI1MzIzODhmOGVkOTRkMmQ1NTVhMzQxOGVlIHB5M2stcGVwMzEzNworNTg4NzkgYzkzYWQ2YzQxN2RmMjUxYmZhYTZiMjNkYzI5YWQ5YTQ3NWRmNWJkNCBweTNrLXBlcDMxMzcKKzU4ODgwIDkxYmExNjk4YTAxMTg2YzJkNmI3YzVhYTk1ZDJkOWEyMmU4MjBhMTkgcHkzay1wZXAzMTM3Cis1ODg4MSA2ZGIzODA4NTJmNjNmZTFjZWYyYmE2YjJkNTI1Y2Y1ODdiZjExYmI4IHB5M2stcGVwMzEzNworNTg4ODIgOTMwYzYwZjhhYWZmYTcyODk4ZjA5NDIwMTI0NzE1OGFjZjIxODZjMSBweTNrLXBlcDMxMzcKKzU4ODgzIGZjM2JlYzIwZWMxNTM4ODhiMTZkNjA0NWEwZWRhNDhkMjhjY2ViYTMgcHkzay1wZXAzMTM3Cis1ODg4NCAwMjI1N2VjNTRkNzkxM2NmNzgyYWY0MTY4MGM2NDQwMjIzM2MwZjZlIHB5M2stcGVwMzEzNworNTg4ODUgY2I4ZWYyNTUxZDBkMGUzNGZjOTNjOGVlNTQwZmZjYzZlMmY0YjU4NSBweTNrLXBlcDMxMzcKKzU4ODg2IGIzMTBmZDJiMDE4NDdhMGM5MWQwN2E4ZmFiMDc4NWMyNzJlMWQwZWMgcHkzaworNTg4ODcgOTBkMGMzNzY2ZTkyOGEzMmI2MGJjYTYzZmVhZGYzYTNhOTViM2I5NSBweTNrLXBlcDMxMzcKKzU4ODg4IDBkNDYyZDc4OWIxOGVjNmE1OWViZTIxMTY2ODhkNWI2OTg1YzIxNWQgcHkzaworNTg4OTAgY2ZlOGZjZWQ4YTEyMjZhZmYwZjE0NGIwZjliOTRmMjNmODc0NTAyOCBweTNrCis1ODg5MSBjNWY3MDhiYzRjYjdmYzAyOWE3NjI5MzczMDExYTQzZDlmZDU4MWU0IHB5M2sKKzU4ODkyIDczNDdmNzViOWMzNDQyYmQ2MzNhZGFlNTMyNjk4ZjI0YzJhMmJlMDcgbGVnYWN5LXRydW5rCis1ODg5MyBkYTU4Y2Y5YmNiMDFiNWE3MjZiYzM2NjVlMWNhNDAzNTY0N2I4OWIxIGxlZ2FjeS10cnVuaworNTg4OTQgMDZiYjgxMDc0N2UxZDM2MDcxZmVlYTJkYmRiMWQ5ZDRiOGI5ZWMwZSByZWxlYXNlMjUtbWFpbnQKKzU4ODk1IDlmMTdhOWE1YjVhZWVkNzRiMmJlMWVmMGJiNmI4MWQ5ZThiNmE5MTMgbGVnYWN5LXRydW5rCis1ODg5NiA4ZmNjM2Y0NmM2OWRlMTczZjI4NzM3YmU1NzkzODUzYWUwMGMzZmU3IGxlZ2FjeS10cnVuaworNTg4OTcgZmE4MmVjOWM4MGNkNjc4NjdmZmVkMjIzOTU1NzJhOTliNWRiZjRlNiByZWxlYXNlMjUtbWFpbnQKKzU4OTAwIGRlNjNlZjE4NmMxZWM1MDAxODgxNWY0MzFmZTZmZjFjZDJkNDNhNDAgbGVnYWN5LXRydW5rCis1ODkwMSBmNDc0ZGU5NzM0MDQ3OGVhYzcxMTc4YTkyNzZhY2JlZDFhYjEwOTkxIHJlbGVhc2UyNS1tYWludAorNTg5MDIgN2JkNzJjNTZmNmE0MGQyZDQzNDFiZjE4MmM4Y2M5OTQxZjRjMDhjYyBweTNrCis1ODkwMyAxMjQ3ZDI0YjI4N2I4YzZkZDIwZTM1ZjM4OWE0ZGFmNGQyMjUxYzQxIHB5M2sKKzU4OTA0IGRiYTI0OTFjZjcxNzYyNWIxYWQ2OWZjNWQ5YTA5ZTg5Yjk0Y2E0ZjggcHkzaworNTg5MDUgZGZiNDYwMDA0Y2ZlMmRmNzAzOTg2YWExM2JmOGFjM2Q5MDgzZjVkOSBsZWdhY3ktdHJ1bmsKKzU4OTA2IDJmMDRhYmQxMzM5NDRkZTMxMzdmMDBkNmI2YWQ0MGJhMWY1YjIxOTUgbGVnYWN5LXRydW5rCis1ODkwNyAyZDhkNjg1NWE2MDI0MTllYTlhOTk2ZTc2ZDgzZmUyY2M3ZmVlNThhIHB5M2sKKzU4OTA4IDJiM2FiZTNkM2FlNmVhMzNkMmIzOWYyOTgzNDg4MGNiNTA4NDIxZWQgbGVnYWN5LXRydW5rCis1ODkwOSA2NmQyNzVmMjlhYzU1MGVhZjViN2YyYTYxZmNiYTg4ZWQ0ODIzY2EzIHB5M2sKKzU4OTEwIDcwMjJhZmZkN2JkMDljZjExNTUzYzIyZjhlMGFmZDQzN2EzZWRjZmMgcHkzaworNTg5MTIgNmFjNjE4ODJmOTM3MGNmZmZiZGFmYjRmY2Y4Y2U2MjgyYmM0NDgzZCBweTNrCis1ODkxMyA2ZDM0Nzc3OTUyMWI1YjI1MjI3MWVlYTA3NWY5YzgxYzg0ZWI1OTllIHB5M2sKKzU4OTE0IDM2MGRmNjQxMjQ0ZDllODExZWZkODlhZDA2MjJhZDQ2YmE2NmZlZmYgcHkzaworNTg5MTUgYjIyZjI3ZTA3MDExNDhlYjYzYjIxZWYyYzM5MTU0YzAzZmVjMTViMiBsZWdhY3ktdHJ1bmsKKzU4OTE2IDJmN2M0MDFjYjYyZTA0OTczMWRiMzZiOWU1YjAxMmU1YzkyNTlhZDQgcHkzaworNTg5MTcgM2MxZjg1OTNhMTRlNGM1NWU3YzAwNjQ4MGMzNmVkNDFhYjc4NGY5NiBweTNrCis1ODkxOCBhZGU1NjYzZTg4ODY4YTMxYzA0NDVjYjk5NWY1YTcwNDI4ZGRlZWUzIHB5M2sKKzU4OTE5IGQ1YzI1YmYyNjkyZWVhY2ZlOWNkOWIxZGJiMTAwZmYwMzlhNmI3YjUgcHkzaworNTg5MjAgODNjMDVkMmUxMGRlY2QwNjMzMDRlZTU3ZWU5ZTdjYzQ4NWVkYWNhNyBsZWdhY3ktdHJ1bmsKKzU4OTIxIDgxZTMzYmRlNmVlMjBhYzQ0YTAxNjk2MWFhODE2ZTljOTBmYjhkYWYgbGVnYWN5LXRydW5rCis1ODkyMiBkZGM3ZDE0YmUxZTk5Mzk0MThiMzQzMjc4MzliNDgxNjk2MzQ4MjZmIHJlbGVhc2UyNS1tYWludAorNTg5MjMgYzFmODgzMTE1NWRlMGU1OGI4MjMzYmIxNWY0ODllZjczNWRiNmQ5ZiBsZWdhY3ktdHJ1bmsKKzU4OTI0IGFhZWVlNTBhMDY0MDE2NzFiZjVhMDc5MzM2MjI5NjMxYTZkYTVhZjggbGVnYWN5LXRydW5rCis1ODkyNSBhYzEyYWM4OGFlZWE5M2ExMDZiYjY4ZTc1OGZiMTliY2ZjMWNlYzRjIGxlZ2FjeS10cnVuaworNTg5MjYgMjBkYzY3ODZmOWFjZmU5ZmYwN2QzMzQ0YzJhYzhlYWVhYmMxOTMwYSBweTNrCis1ODkyNyBmODJhMjBkZGE0NjVlZjIwZDgxOTcxYzlmMTAwN2YxNzUzNjFlMWFiIGxlZ2FjeS10cnVuaworNTg5MjggMTU2MTc2M2NkYTcyZGVjNmNjMjE5MzY5NDVhYzRhYTQ4MTI4ZmMxMiBweTNrCis1ODkyOSAxOTdmZmI5OTZmYjg4OTU5OWI3YmYyZTViYjNiZGY5MzE3MDIwZDUwIGxlZ2FjeS10cnVuaworNTg5MzAgODVjZjMzNGIzMmMzYWMyMWViYzQxYzUxNTYxZDZlM2I3ZjZjYjEyMSBweTNrCis1ODkzMSA0ODdmMzczN2VhZWZkMDIxM2IwZTE5MTEwM2JlOTYzMzY5MDQ5ZmQyIGxlZ2FjeS10cnVuaworNTg5MzIgMWFkZjA2NmYxODc5YTRiOTM3YWE4OWYxZTFhNGU0NjI4YWVlY2IxMCBsZWdhY3ktdHJ1bmsKKzU4OTMzIDVhMTY5ZGUzNmRlNzhjYmI3NTlmNWNlZGJhZjUyYzY4YmZkYzhjNWIgcHkzaworNTg5MzQgMDY4NjU1MDU0YjBkMGQxMzYyYWE3MmIxYzBjZDdkZGMzY2ZlMjYwYiBweTNrCis1ODkzNSBkMmY5ZTIwMTIwZjllOTM1NzQ5ZWVlODc5MTU4NTBjM2E2NDJhZDE3IGxlZ2FjeS10cnVuaworNTg5MzYgMDFhNWJkYzI4MjBhMDExZmE3YzYwODkzODhjNzk2NDhiOGZlNzNkZCBsZWdhY3ktdHJ1bmsKKzU4OTM3IGM0ZTI5MzZkMTMwNzUyMzI0NjUwOWMwM2YxZGE2Y2U2ZDM3YzFiODEgcmVsZWFzZTI1LW1haW50Cis1ODkzOCA1NWNiZDBjN2FhY2ZjMzg3NDIwYmYyOTM1N2U0NjIxYzZhZjNmZDEzIGxlZ2FjeS10cnVuaworNTg5MzkgNGVkMTZjYTRkOTgwMDhkYTEwMDdhYWI3M2U4NWYxNjBhNDRmMzIyYSBweTNrCis1ODk0MCAyOWJlY2UxNDc4OTM5MWRmMWIzNDg0MzEwZmM4ZWU1MzlkMjdmYTlmIGxlZ2FjeS10cnVuaworNTg5NDEgYWRlNThlYjdjOGM3NWM1YmVjYzNiNWExMjljZDgzODU0ZDY4YThkMyBsZWdhY3ktdHJ1bmsKKzU4OTQyIGFmMzQyOGZhZTE1ZmQ4MzM5MDhlYWEwOTI2NjdlZGEwNTVkMGVkNTQgbGVnYWN5LXRydW5rCis1ODk0MyAwMGU2MTY1ZjQ0ODI5ZGVhYmYwNzVmM2JmZWU1ZWY5ZGM1ODM5YzA5IHJlbGVhc2UyNS1tYWludAorNTg5NDcgN2JjNGNjOTcyYjBiM2M2MWVlNDQ2YWMwZGVmMDBiYjQ1MTZiNGVmZiBweTNrCis1ODk0OCA4ZWQzYTk1Y2ExMTRmYjFjMmQyNDAyMDU3NmZlYWE5YzVlNGMzZTdkIHB5M2sKKzU4OTQ5IDE2NGE2YWM5NGQzYzgxZjQyMjc3OGZhZWZhZDBmM2NlZTA0NzdjODMgcHkzaworNTg5NTAgNTkxMmI2NmNjYzJkNWZmNzViNmFkYmNhN2EyMDk0ODM5ZWFlZjRkYSByZWxlYXNlMjUtbWFpbnQKKzU4OTUxIGNlNzdkOTFlYTFkMGJiZGZmYTFiZmNkNDZhNDMwZjBjOTNhNjZmODcgcHkzaworNTg5NTIgZDdlOWJlYzFmZWFhOWE1ZDYwNzUzMTU0ZGVmMGJkZWRiZTg2NDIxMyBsZWdhY3ktdHJ1bmsKKzU4OTUzIGEyMjEzMDYwZDlkZGIwNDhkMWRhMjE3OTkyY2YxNGM2MWIyZDlkZTcgcHkzaworNTg5NTQgMWQ2ZGI5ZGQzZTc3YTdjYzhkODlmYzhmODRlYTA4N2M0YmFmZGNmZCBweTNrCis1ODk1NSBiMzFmNjFkN2Y4YjBlZTAxNGViYjA5YWM3ZWI2NGIyYTg2ODAxODRkIHJlbGVhc2UyNS1tYWludAorNTg5NTYgMWUwZWExZjAzMDU4YjVhMjUxZGYxM2ZkMzhhZjE3ZjI0YzNhYjA0NyBsZWdhY3ktdHJ1bmsKKzU4OTU3IDA4MTExODJhOWNlOWFjMWRkMmEwOWVlZmE0ZGQ4Mjc1OTM4MzQ4Y2MgcHkzaworNTg5NTggNzNjOGUyN2ViOWNlZjQwMmZhY2Y4YTljYzMxZWY5MzFmOGZkYTA0ZSBweTNrCis1ODk1OSBjY2NlYWVjMTE0NDJmOTRhODkzMDMzM2MzYTZlOTk4NjEwYjBkNjA5IHB5M2sKKzU4OTYwIDI0MTI4MTEyM2ZkODM1MWQxMGUwMjE4ZDMyMzlhNWJmMWYxMGVmZjMgcHkzaworNTg5NjEgYTA2MGIzY2MyYzYyYjEyOTZlMWM1Y2U5MTU1NDZiYTJhMDY3Njk5YiByZWxlYXNlMjUtbWFpbnQKKzU4OTYyIDJjOTdlMjRiMTZjZmNhOTMzNDhhODg1MjAzMWI0ODlhNWM4ZmYwNGMgcHkzaworNTg5NjMgNzY4NDRhMGE1NzlmOTkyZTJiMDQ4YmE4N2NiYjNkNjNmNDJkMGRkNSBsZWdhY3ktdHJ1bmsKKzU4OTY0IGQ1ZmM2ZTk2MDkxZmI2ZmVkMjM3YTQ5MjQzZjgyMzAwOTlmM2RjNjMgcmVsZWFzZTI1LW1haW50Cis1ODk2NSAwMzc3YmE5YmMzNTkxNzUyYjc3MTNiZjQ4YjQ3YTM3MzFlOWI5MGE1IHB5M2sKKzU4OTY2IGUxNjJlODgxZWE1ZjRlM2RhNWM0MWQyMzkyY2IyZGFjMTdhNDAxZDIgcHkzaworNTg5NjggMjRjODRkNThjYjgwMTBiMThlNjIzZTc5M2RhNzJmYmRhMTg3YTdmZSBsZWdhY3ktdHJ1bmsKKzU4OTY5IDUzZmMwZjQxZjY4ZDdmMTY2NmMwNjkxOTZjZTkzNjU2MTBmOTQ2MzkgcHkzaworNTg5NzAgOWExMjgxMzkxYzQ2ZTljNTMxMzY3NjZhYmRlMDM2MGFmZWZlYTFmYiBweTNrCis1ODk3MSA4OTk5ODkzYTZlMjIxNTBjODk4OTdhZTQxYjM4NmZjNWIyOWYyMmMwIGxlZ2FjeS10cnVuaworNTg5NzIgMDNhZDFkYjdjODBlNDVkNmRlNjY5NWVhODFiZDBjNjUyN2Y4OGRhMSBsZWdhY3ktdHJ1bmsKKzU4OTczIDNjMjlkNzNjNzc2OTRlNmM3MzU3NGNlNjA3MmM4ZmI2ZTIyNWUxODcgcHkzaworNTg5NzQgZWUwODE2MDljZWU4Y2QzNDUzMTkxMjQyNzYzYmQyZTM0MWNlOGEyNyBweTNrCis1ODk3NSA5ODc5NTczOGI0YzI3OTNmMGNkOGNkOGE4MjE5NWZjMWM0OTVkYTY1IGxlZ2FjeS10cnVuaworNTg5NzYgMGFlOTA3ODc4NmI0MDJlM2YyYmQ3ZjYxOTc0NmM1YTBkOTEwZDcyOSBsZWdhY3ktdHJ1bmsKKzU4OTc3IDAxOTgyOTgwMzg0OGU2ZjExZWZlMDE4YzNmZjgzNGE2YTYwYTk2OWIgbGVnYWN5LXRydW5rCis1ODk3OCBkZDNjNGRkM2VjZmQxNGNkZGE4N2I0ZjhjZGM5MmFlYjI0NGQ3OGIxIGxlZ2FjeS10cnVuaworNTg5ODUgMTc5MTg2NWE2NjhiOWYyZGI0YTBkOGM3Y2Y4OWMxYWM2NTFmYmMxOCBweTNrCis1ODk4NiBmYTZjZGY1NWRlNThmMzZhMjc0MjBhYTY5MDkwZGE5MzMxNzI0YWRmIHB5M2sKKzU4OTg3IGQ0Zjk3MDZjYjQ2YjNjMmIxMjFlM2U0Mzg3MzFjYTBmY2U1YjExYzggcHkzaworNTg5ODkgNTE2MDQxZDUyNjU2ZDQ4MWIxNTc1ZTFlOTQxYWEyMjJiNjgyNWJhOCBweTNrCis1ODk5MCBmNGEzYjRlMTU1YzI1OTM3NGM5ZGM5NWQzYzA5NWZkNGJhNGI3ZmQ5IHB5M2sKKzU4OTkxIDlhMzVlOTI2NjM3OWJjYWE5NWIzNjI1NmRiNTUwYmUwZjc3NjU1Y2IgcmVsZWFzZTI1LW1haW50Cis1ODk5MiA4ZWQwMjgwYzJhYjY3NDg1M2VhMTdlMGIyZTJhZWJiYmJjMzExNDQ0IHB5M2sKKzU4OTkzIGY0NDRlMjU5MzQxYTk2ZTM5YzU0NzgxYzZkMzRlM2QzYTZkNzYzYmMgcHkzaworNTg5OTYgZGU2YjEyNmE4ZDM3NDk1YjY5YTI5MzhmYjI4MjgyODc2ODA1ZWE1MyBweTNrCis1ODk5NyBiNTk4MjVkOWRiOGY5OWU2NjBhZWExYmE1N2E4YmM1OGQ5MzUzYWIzIHB5M2sKKzU4OTk4IGM3OGRiNDkzODQ4MmM3YjZiYzBjYjg2M2IxNjZhMTYxNjI1NTgwNGIgbGVnYWN5LXRydW5rCis1ODk5OSA1OTA5MzBlMTdlMGM5OGY4N2ViZDUwNTdjY2VkM2Q0Mjc1YTA4NWM1IHB5M2sKKzU5MDAwIGQ0MTkzMzMwZDFiZWVhZjkyYjIwMWIyNjI4N2RiZTk1Mzg2YTAwY2EgbGVnYWN5LXRydW5rCis1OTAwMSAxNzM5ODY5Y2JjNmU3ZTM1NDBhNjQ1NDE3Yjc4ZmNiY2UzNmM4ZjlmIHB5M2sKKzU5MDAyIDZiMDEyZjAxYTg4OTA5MzI5YTdmMDVmZmU1NDM5NzgyOTE2NmE4YmMgcHkzaworNTkwMDMgZTIwMjAzZDAzMzFjYzI5OGYxNTJiMWI0ZGI0MTZlOWQwMGI5MTI1NCBweTNrCis1OTAwNCAxN2FhZjk1YWY5MDlhMTYyZTNhYWIyZTQ1NjljZWYwYmMzYjU3Nzg1IGxlZ2FjeS10cnVuaworNTkwMDUgMTE2NWQyNjFmYjA1ZGI1NzNmODJjZWNkY2ZmYTA5OGEwY2Q4MWRiNCBweTNrCis1OTAwNiBjMzE1OTRmYjFlZDQ0ZjAzNmFhOGQ0NWY5ODNiZmJjNjMzMzI5MzY5IHB5M2sKKzU5MDA3IDU1OTAxNTdmNGZjNjE3NTQ5N2ZkZWI0MDQ2NjYxNjk1YjE4YmNkZjAgcHkzaworNTkwMDggNGE2YTdhZWE1N2Y0ZmQ4ODY0ZTgyNmI2MzUzNjY0Mjg0N2U0OGJlOCBweTNrCis1OTAwOSA3MGNmYzdiNTA0YzI4NjM2MjQ0MTAyMjM1NGMxYTBmMzc2ODJkNDBmIHB5M2sKKzU5MDEwIGY2Y2NhNGIyMjYwY2FiZmM4MmExMzAwN2I1Zjc3NGNjOTM5YTNlOGYgcHkzaworNTkwMTEgZGMyMjU2ZTMwMWE5MjM5MmM5YzU1ZmIzMzA4NGViODZiOWFiYjU2MCBweTNrCis1OTAxMiA3MWU3NDU2MmZiNjQxMjg1OGVlZDNiNGIwNTZkMGUzMDU1ZjQ1MmJhIHB5M2sKKzU5MDE2IGE5OWRhODkzZjIwYzFlYWRmYTAyYjM3ZTdmMzM0MzJlMjhjNGI5MjYgcHkzaworNTkwMjAgMjVhNWY2YTMwMjkyNWQ1NzQ5MjFkNjUzMjFjMzI4OGUwNjQ2N2VkMSBsZWdhY3ktdHJ1bmsKKzU5MDIxIDJkZjUzZjA1MzkyY2MxYWU3ODRjOGVkNTM2NTMwOTU4NTNmZDI4YmQgbGVnYWN5LXRydW5rCis1OTAyMiAxZmIzNTM3NzZkZmI0ZTg2MDhiZjA5NjY3YzVhYjBkYzAzOGQxYjk4IGxlZ2FjeS10cnVuaworNTkwMjQgMTQ5NGJkZTUxMGZmOTRlZDk2YWQ1MGNhMmM0MjNmMDA0ZGRhZWEzOSBsZWdhY3ktdHJ1bmsKKzU5MDMzIDk5NWQyNWFhYzE2YWFhOTJiYzk1M2I3NjA3ZjIzYzliZTU1NmIxMmIgbGVnYWN5LXRydW5rCis1OTAzNSAzOGY2MzQxOWFiZDY0NzNhNDRlOWM4OGI3ZjNhMjcxZDg0YTkxNzUzIHB5M2sKKzU5MDM2IGQ1MGM3MDk5ZDRhYTRjMGNkNDRmN2JhZGY2NmYxYTZhNmNlNjUwMTQgcHkzaworNTkwMzcgNDgzZTk1OGQxM2M3NmI2NjRkZTE2YjM3NjQyYjU5NTRlYjZhYTMyNCBweTNrCis1OTAzOCAxMzMyNDUwYmM5NTIxZDAzOGU3NGUzNmQyOWNhYWM3ZWY5YTBlYzYzIHB5M2sKKzU5MDM5IDRjZWMwYzYzOTJjMTNhZDViYTY4OWEwNmVhMDU3NDgwYmExYmQ3NjkgbGVnYWN5LXRydW5rCis1OTA0MCA1MjBlMmVkOTRiY2M1MzBkNWRkNGQyNzA5MjBmYTU1MzVlY2FhZjljIHB5M2sKKzU5MDQxIDQxZjdjMTNlZjE2MTFjNWJkMjAxMWRmZWM5YTY1YWNlNWUyODQzMjIgcHkzaworNTkwNDIgYjkxZmQ3NGYzMmQ4ZTljNGNjMThjZmM2YWE1ZDZkYWE3NzUwYTMxOCBweTNrCis1OTA0MyBmY2Q3NjMzOWZlMWZlNmY3NGY5YTkyNDM3Y2FiYmFkNTAwNDU4NWQwIHB5M2sKKzU5MDQ0IDNhNzMwZjQ5MDhlM2YyZGIzZThmM2U5MDNmYTlkNmJjNGVjZGU3NWQgbGVnYWN5LXRydW5rCis1OTA0NSA3MGRkYmU2N2QzYzQ2MGExYzhlNDVhYmNiMDM4NWIxMDBhMzFmNTI1IHB5M2sKKzU5MDQ2IDE5Zjk5NjU1MzE4NDgwNmI5Yzc5NmM2YzM3ODA2ODAxNzNlYWI0ZTkgcHkzaworNTkwNDcgNmFhOGUxMzVkOWY4NGRmNDAxZDIyMTljYzc5NmZmMjkyNWMzZTY3MiBsZWdhY3ktdHJ1bmsKKzU5MDQ4IDQ5NjgxZDQzNmRmOTIzNmE2MzRkZDYwMjg2ZDEwNDM1NTE1NjE1ZTggcmVsZWFzZTI1LW1haW50Cis1OTA0OSAwZTg5NzkwNWVlOTQzZDk0MjI0MmFiMDljOGEyNDhiNWMwZWQyZDYwIGxlZ2FjeS10cnVuaworNTkwNTAgZTVkNDhmYmUxNjQ2MmM0MGRjMjJmNzBmMGViZmFiNDQ1NWIxZjkyMiByZWxlYXNlMjUtbWFpbnQKKzU5MDUxIDc4MGM3Mjg0MDZlNjc1ZjJiNGZjOTllYzZlZDJlZDllY2IzMjE3MWEgbGVnYWN5LXRydW5rCis1OTA1MiBkYThkY2Q1Y2Y1YTAxYTM0MzA1NzA4MTlkNWE3NGUzOTY1ZGYzZDBiIHB5M2sKKzU5MDUzIDFhZTkyMjRmNGVlN2YwMWE1YTQwN2NmZGE0NGU4ZjU4MDYwYTI0NGUgbGVnYWN5LXRydW5rCis1OTA1NCA1NGI5NzNmMGY1NWI1YjVkNmMwNTZhMmNlMzMyOGUxNzZmMzY0YTBmIGxlZ2FjeS10cnVuaworNTkwNTUgYjZmNTc4MWY1YzNmMGY1NWNmNzUyMTVmOTZlYzZjMGI4ZWY2MTVjZSBsZWdhY3ktdHJ1bmsKKzU5MDU2IDQ3NDdlZjk2NDBhZThiMTM3NTIxNzAyMzQ4MDJjNDYwNGNkNzYyMGEgcHkzaworNTkwNTcgNjFlZjkwYTFiMzVlMjU3Y2IxYTA3NGU1ZTg4N2UxNGNkMzRjMTA5OSBweTNrCis1OTA1OCA0MGRmYzQ4NWIwYmUzN2ViYWEzMWM2ZTg5MTA2OWU4NzA1YjVhYTUwIHB5M2sKKzU5MDU5IDY5Njk5Y2ZkZDI2ZWQwZTUzYmNmMDM1ZWY4ZDQxZTZmNDUzYWJlMWYgcmVsZWFzZTI1LW1haW50Cis1OTA2MCBiMWJjZDU5OTY3MWYwNTE4MWRjOTUxNTYyNDBiNGE3NDQ4ZDBmYTZhIHB5M2sKKzU5MDYxIGE5MTVmMmIxMzVjMDk1ZGZlOTQ5MjlmODNiNmFkMzIwYTQ5OTMzOWEgcHkzaworNTkwNjIgMTQ2YmE5N2ZmZTFhYjJjOWFmNDM2YjAyM2M2M2ZiOTgzODYxZmViMSBweTNrCis1OTA2MyA4ZWE3ZjU5ZGZmNmJjNjNhYzhmYzUwYjJlNjcwMzE5YWY3NmIwMWJjIHB5M2sKKzU5MDY0IGZkZjE0MTcwMzM3YWQ3OGM1ZGRjNDNlODBiMTA1NDBkZTgzYjE3ZGUgbGVnYWN5LXRydW5rCis1OTA2NSAyYTNkNzM0OTVmMTg0ZGNiMWZkMjZlYzZhNjhiY2Q3NjI0YjI0MjBkIHB5M2sKKzU5MDY2IDMyZDQ1N2E3ODg1YmRmMzgyNmJlYmRkZWE0OTk0MTRlOTRjMDYxY2QgbGVnYWN5LXRydW5rCis1OTA2NyBkM2NiMTZiMzIxZDU1YzNmYmZkN2E4NTI0ZmE0ZjlhZDZjNjg4MTFmIHB5M2sKKzU5MDY4IDc0ZjIyOTU0ZjE4OTlkYjRjNDlkMGNmOTZkZGFkMjVjMTY4OTljN2EgbGVnYWN5LXRydW5rCis1OTA2OSA2Y2EwMDQ0NzVhYTBmYzg0Mzc4YjA0ODI4NGMwMjhiZDZjYmRlNjI4IHB5M2sKKzU5MDcwIDJkZTdkMDBmYmYxOTJhYzNhNmZmYzE5ODNmYTI4NWM4NWMxMzRlNGYgcHkzaworNTkwNzEgNTU3NjE0YzRmZjAwZjMwOTg3YjY2NzkwMDNhY2Q0MGU3MzY4NDI2NSBweTNrCis1OTA3MiAyOWIwZjQ5NzVkOWYzMWUyZDEwNmViYjRmMzU2NGYxMjQ5ODk3OTU4IHB5M2sKKzU5MDczIDdhYjQ5MDY0ZDQzMGFhNWM5MzA0NjM1OGExMTEwYWIyZDQzMmQ4YWYgbGVnYWN5LXRydW5rCis1OTA3NCBmNTRlY2Y0OTRjYjcxMTA1MDI2MDgyZTgzOTk0OWM4ZjczNDA4M2QxIHB5M2sKKzU5MDc1IDhiN2Q0MzEzZWJjMDU2OWNhYzkyZmUzNzQwZDMzN2I1YWRkMzIxNWUgcHkzaworNTkwNzYgZThhYzFhZTQ1MDNjZDdhODI4MDcyMjgyOTVkNDU1OWU3YTBlMjFhNCBsZWdhY3ktdHJ1bmsKKzU5MDc3IDljNGJmMThlNWQzMGU2MzM0Y2MzNDQ1ODRiMGZlYmVjMzg4MDBkMDQgcHkzaworNTkwNzggNzFhMTdkNGQzYWZhMGRhNDE2ODg2NzFlMGNjNDBlMWJlZTgxOTUxNSBsZWdhY3ktdHJ1bmsKKzU5MDc5IDJiYTVhYjM4NjhjOTBmYjFmNDdkOTQ2ZWQ1Y2Y0YTI5ZDkxZmZkNmIgcHkzaworNTkwODAgMzhiMWRlYjRlNGViZGY4MzlmN2M5MTZmODY5YTRiOTc2MmNjYzkwZiByZWxlYXNlMjUtbWFpbnQKKzU5MDgxIDg4Mzg4NGZkYWFlOGUxMTQzY2ZhMjk4Yzk1MzAwYWExNjkyYTE1ZjUgbGVnYWN5LXRydW5rCis1OTA4MiA4NjM2ZGNiODAxY2UwNjAzZTQ3YTY1ZmJkNDZmNDk2Mzk2YzhlZmE0IGxlZ2FjeS10cnVuaworNTkwODMgMjVkOWNlMjgzYjM5NGYxYWVkNjlmNzkzZmYzYzVkZDA0MzY5MjQ3YSBweTNrCis1OTA4NCAzZmI3ZWQ1YzIzZGQ2OTBkNDQ0MGJkZDY2ZDc5NTE0ZWM0MTE2MmVhIGxlZ2FjeS10cnVuaworNTkwODUgM2IwNDg5NDExNmZlMjIyZjgyMTQzNTVkZmJkNmVjNmFmZWY1NDU4ZCByZWxlYXNlMjUtbWFpbnQKKzU5MDg4IDc4MmNiNDAzNzhmNDRmODdhMTRjNmFiYTUxN2FkMDRmYTQ1Y2U3MjIgbGVnYWN5LXRydW5rCis1OTA4OSAyZGJjZDM5MGI2ZjE1Mzc4ODNjMTlkM2M0MWRjZDRjOGE4N2QyYjVmIGxlZ2FjeS10cnVuaworNTkwOTAgYjA5OWQzOWMzNDgyZDk1Y2FmZjcyZWYyZTg0Y2YyMzNhMmMxZDFkZSBweTNrCis1OTA5MSAyZmQ3YzkxMTE2MzJhMjUwMGExMGY4MjY2N2YzZGYzNTU3MWJkOWU1IGxlZ2FjeS10cnVuaworNTkwOTIgNmM5NjdjMjY4NDFhOTE0NTUyYmQwNmUxZjVjN2U5NjNhY2Y5YzZlZiBweTNrCis1OTA5NCBjYmM4YjNiZDMxNTc4MWU1M2FmYjg5MDI2ZTU0ZDAxZmMwNmQxMzNiIHB5M2sKKzU5MDk2IDhlMGM0YzcxMDM3NWYyZGM5MThiMjQzNmZiMjY0NWVjZjA4MWU3N2EgcHkzaworNTkwOTcgZWE5ODg0ZjE0NTQ1OTg4NWJiNTE0ZjFjZTA4NWQ3OTE5YjI5ODEyNSBweTNrCis1OTA5OCAyYTNjYTkwMDA4ZmZmZWMxZWNjMzAxY2RhN2E0OGFmNmE1OTI4ZDY5IHB5M2sKKzU5MDk5IDMyYmZmN2YyOTc1ZDgxMGE5OWQ2OWQ5YjNkYWI5ZTE1ZDhkYTY3YTEgcHkzaworNTkxMDAgNmYxNDk1MjZlODY0YzQxMDQ2ZTRkZGVhM2I1M2YyZTU3YzQ1YTJjMCBweTNrCis1OTEwMSBkZGJjNWUyYzY4OWE3YTQxMTEwMmQ4YTU5MDYyYTkxYzk0MzAxZGY2IHB5M2sKKzU5MTAyIDA5MmI1MzA2OTgzZjcyMGJiZTAxZWIzZTFiZWY5NzcyMjE5NTg4Y2QgcHkzaworNTkxMDMgNzUzNjQzNjQ0MDhiNjkzMWQ4M2Q4OWJjNTA1ZjFkMmU1MmZlZGI0NSBweTNrCis1OTEwNCBmZTViMmVkZmZhZTc2OWFjY2E1MDViMjhmMzNhODA3ZGVhYjQ0NTY2IHB5M2sKKzU5MTA1IDIzYmVmZTU0MGQwZDU0NmRkMTY5ZTdiNTU0YmQ5YmM2MDY4MGQ2NzggcHkzaworNTkxMDYgMTAzYjdmOTU1MDM2ZWEzNmY1ZmVjNWQzYmQ2NjgwYTU2Y2JlYzdiMiBsZWdhY3ktdHJ1bmsKKzU5MTA3IDEyMDk5NzA2MTJkZmUxODExNjA2MDE0ZDFlYTczODRkY2U0ZmE5NWMgcHkzaworNTkxMDggOThiNDk2NjY0OWQ1MWIwOTNlMTkxOTdlMWM5MmE2ZGJhNGMxMjMyYSBweTNrCis1OTEwOSBiMjMxYmRhNjUzYTRmOWIzNWY2MWRjZDI2NTNkZWFkOGFkYWQ2OGJmIHB5M2sKKzU5MTEwIDI1OWU4YTJkNmY4YzI3MDU5NDUwZTgyZGQ3OGVmMmZhYjYzZThiYmYgcHkzaworNTkxMTEgMTRjNGJiM2M2NWE3YzdlZWY3ZWJiZjE5MDFlMWY4YzkyOTlmY2E3MCBweTNrCis1OTExMiAyNjU1ZDExMzEyMzJjMWNmZDI1Y2IyMDkzNTQ5MzY5MzJjMWMzMWNmIHJlbGVhc2UyNS1tYWludAorNTkxMTMgNDFiMmYyNmM3YjNkYmM1MDg4NjFiZWM0MTQzYTE5NWU2YjA2MTcwMyBweTNrCis1OTExNCBkMjM4MjlhOWRiMjExOTNjNmU0ZjE1YzRiOTZjM2IxNGU0YWEzYTVhIHB5M2sKKzU5MTE1IDhkMWVlZjM5MTlmMDUxZTc5ZDU3OWI2OThhNjYwYTc3MjdjMmYwZjAgcHkzaworNTkxMTYgZDliY2Q5NGU1OTM1ZTZiNWY5MWE0YjIxYWRhYzhmMTQxNmZiYTYzMiByZWxlYXNlMjUtbWFpbnQKKzU5MTE3IDhiY2JmMzIyYzJiNWMyNzkwZTdjMDlmYzVmNTU3MDhlM2I3YjczZTYgcHkzaworNTkxMTggNGE3NTUzYjE3NmI2YTFhM2NkNGMzMDFhMjY1ZDJjYWY0Y2YyNDkyNCBweTNrCis1OTExOSA3Mjk2MmFiZDkwYTE2YWI4NTZiYTY5ZTIzZWYwZjJlZGJmNWM3ZmM0IHB5M2sKKzU5MTIwIGE4ZGQ4ODc0ZmYyZDUxZWJiNzQwYTM0MzkxNWMwMGM4NWYwMDMxZTIgbGVnYWN5LXRydW5rCis1OTEyMSBmNjMyNzIwZDgxMDI3Y2U4OWYyNDYxYTQ1MDcyNTNjZDZlMjQxYTg0IHB5M2sKKzU5MTIzIGRhNDc4NDcxZjFiNmI4Njg1NzdmYzg2ZDM5N2FhYTQ3OGJkZTZiYjAgcHkzaworNTkxMjQgNmQ2YjYwOWU0NTdjODA3NTJhYzVkZTA1NzFjNTMxY2UxZjcwMGI3OCBweTNrCis1OTEyNSA4NzQ0ZTQxZGFmNTQ1Y2QxODZjMTI1ZTVjYzEyYzgwZTVhYzNiODc4IHB5M2sKKzU5MTI2IDNjNzI1YTQzYWM4Y2Q4ZTY3MzEyYTQ2NGVhY2E4MDZlZTY0MjU2NDYgbGVnYWN5LXRydW5rCis1OTEyNyA5MzUwZTQyNWU1ZjNiYjdlNWI2NGZmZjBmYmQ4YTk1YTRiNDIwNWZmIHJlbGVhc2UyNS1tYWludAorNTkxMjggNDljZWZlY2NmOTNlYmY1YWI1MmZlYWExZTZkNzhkMDY3ZjVkMzYzOSBweTNrCis1OTEzMCA2ZmY2ODUwNTE5OWFlMTg1MWZkNmJiNjdhZGFhNGZlOTM2ZWZjZWI4IHB5M2sKKzU5MTMxIDYyY2YwOGE2NGJjMjMxNDA0MTkzZTdkODBiNzQyMjM0N2EzNDE1YmMgbGVnYWN5LXRydW5rCis1OTEzMiA1ZjZhOGUyYjllOWNhNmRkNDQ2MjcyZTliYjllMWM1MjYxZjM2MThjIGxlZ2FjeS10cnVuaworNTkxMzMgZTcyNTE2NmM4YzgxODRmODBmZmQ2ZmRlY2VjOTQ2NzUwY2Q0MWUxMSBsZWdhY3ktdHJ1bmsKKzU5MTM0IGFmMzYwMzgwYWExNmZmMzdlNjYwZWYxZjVhNDIyMzUzYzllZmNiODEgbGVnYWN5LXRydW5rCis1OTEzNSAyMjMwZjE2ZTQwMmIxMDUxMzNkNGI4ZDE3YThmNmFkYjVkNTViNTc4IGxlZ2FjeS10cnVuaworNTkxMzYgZWQyOWI5MTYyYWU5ZTlhNzM4YmFhZjMwNzEzZTE3NzFhZTIyZTA1NiBsZWdhY3ktdHJ1bmsKKzU5MTM3IGI0ODFhZGIwNDY5OWFjM2Q2MjdlNTk4MmU0ZmVmYjU3ODMwNGMwYjUgbGVnYWN5LXRydW5rCis1OTEzOCA0ZDBmZTdkYTRjZDVmNmYyMGY0ZGQxMTI4YmU3YzJiYjllNTdiYTY3IHJlbGVhc2UyNS1tYWludAorNTkxMzkgMzU4NmE2NjM0OGJmODRjYTBkYzkwNmI3MzcwNTRhZWYyYWI3NDU0NiBsZWdhY3ktdHJ1bmsKKzU5MTQwIDRlMWExOWJhM2Q0YTYzOGY1YWRjZDM0OGUwNmNkNmZkZjNjMTI0YzQgcmVsZWFzZTI1LW1haW50Cis1OTE0MiA2OGNhYTQ3ZjVlMTUzZTM1NTczMDhiMzM3NjYxYWJmNWY0ODAyNjA1IHB5M2sKKzU5MTQzIDExZTNlMmFlMjM2NDNkMjIxYzYwMTMyNmY0OWU3OTAxY2MwZjExZWYgcHkzaworNTkxNDQgYTRhMTQwNDg2NjkxMDNkZjJjYWJlYjNiMzc5MzAwNjExZjY4NDYzMyBsZWdhY3ktdHJ1bmsKKzU5MTQ2IDU1ZmFmYjQ2ZmE0NTVmNWJjYTZlMGFhYzBkNDY3MDg1ZTczMWQ0N2UgbGVnYWN5LXRydW5rCis1OTE1NCBhOWNmNzgwZjYzOTZhNzJlOWNmZjgwN2ZhOTViM2Y4NjQ4NWUxZjdmIHB5M2sKKzU5MTU1IGI4NmU2YmY3NDM4Zjg4ZjMzOWNiYzViN2U0N2ExOWU4ODY1NmMzM2QgcHkzaworNTkxNTYgMTc0NzlhMDllYzdjY2Q1NTE5MDU3MmE4NGNlNzIyOWU4MmQ1ZGJlYiBsZWdhY3ktdHJ1bmsKKzU5MTU3IGJiMWUxNWJiN2I1OWVjODU5Yjk0NTY5MzI4ZGE1Mzk4NmYxZTkxNmIgcHkzaworNTkxNTggYjliOTQ3ODViMmM3MmZjNWM4YmM3NGE5MDgyZjkyNjJiOGNiMTJlMCBsZWdhY3ktdHJ1bmsKKzU5MTU5IDE1NWU5NzI1ZGEyZjkzNDc1OTU1MmZjZDFkYmIyMGVhZGNiZDc5N2IgbGVnYWN5LXRydW5rCis1OTE2MCBjZjYwMzhkZjlkNTI2OWM4ZTFlZGE3NzRjOWUxMjg4MzY5OTA1NjQ1IHJlbGVhc2UyNS1tYWludAorNTkxNjEgNDlhN2M3ZGJhOGNhZmY0ZGE5ZjA3MDNiOGY0OTJhNDU5ODA4MWY3ZiByZWxlYXNlMjUtbWFpbnQKKzU5MTYyIDBiNTM1N2NjNDE2YjhmMzU4MjRiZjMzNDExMjBmMmZlMTJmODdmMzkgbGVnYWN5LXRydW5rCis1OTE2MyAyYmVkODQxNTg1YTljYTY1YjBiNzRiNzcyNmU0NzRkZGJiZjk1OTRlIHB5M2sKKzU5MTY0IGQzYmU2ZTYxNWY4YzQ2ZGFhNjVhZjgyODdmYzI2NThlZjY2NzdkOTUgbGVnYWN5LXRydW5rCis1OTE2NSBlZGI3NWMwOThhNGIwNTlkODQyMDc2OTQ4NTczNTRlZDYxMjYxMmMzIGxlZ2FjeS10cnVuaworNTkxNjYgNmQ2MTRiOGM1MTI1MzJlY2Y4MDcxMTAzMTRjNzNkZjIwZmRkMGIwYSBsZWdhY3ktdHJ1bmsKKzU5MTY4IGNmMjIwNTk2MGNiYmFhZDZlNDVjZDczNTRhNWJmZDhhZDU2MjhiNTYgcHkzaworNTkxNjkgMjA2OGJmNzc4OTFkMGI0MjQwOTI0Y2M4Yzg0NTc1ZDEzMWJkZTg4MSBsZWdhY3ktdHJ1bmsKKzU5MTcwIDIxODNkNzJhYmZhYWNmY2RlNWNhM2ZmOWYzNGQ4NWE2ZTIwYzUzYWEgbGVnYWN5LXRydW5rCis1OTE3MSA0Y2Y5YmI5Y2VmOTFmNTAzZmM2MTlkYWM3MDIzNzQ5NTI4MDE2YTI2IHJlbGVhc2UyNS1tYWludAorNTkxNzIgZDU2MDFlYmUxNWE5NDcwZDFkZDMzZTg1ZDczNTI3YzU2MzRkM2EwNiBsZWdhY3ktdHJ1bmsKKzU5MTczIDE0YWEzZTRlNzM3NTliN2E2NjdiYzdiZWZmMTYzZjIzZmZjNTdiMTAgbGVnYWN5LXRydW5rCis1OTE3NCBlMDQ2NWJhMGU5NWQ2OGJmMTYyOTUxZmZkNDJiYjZhMzRhNGVhZTVkIHJlbGVhc2UyNS1tYWludAorNTkxNzYgN2RkNzk2MWUwZWZmM2ZmNGM3ZmMyMmZlZDYzY2QxOWI2MDQ5YTgxNiBsZWdhY3ktdHJ1bmsKKzU5MTc4IDIyZTA5OTA1ZTQwMDBhZTdjZmY0ODZjYmZjNjc1MjFiZWM0MjlmZDYgcHkzaworNTkxNzkgN2I0ZTk0YTdiOTJlOWVlMDFhYWY3NzllNDVkZDg3ODgwZWMzMjdjOCBweTNrCis1OTE4MCBhN2MxOGI5MjQyMzZhMDdlOWE2M2Y1MTgzZDFkODI4YWI1MWMyYWVjIHB5M2sKKzU5MTgxIDdiMzAxMTEyNDdmNjcyMDA3YzI2ZWM3ZTM0Mjk5NGRmMzMwODljZWEgcHkzaworNTkxODIgZTYxNjVlMzg5YzUwMjJiNDY4NzNhNWYyOWRlODI3OTEwODAyYWE1ZSBweTNrCis1OTE4MyBmZjVkZjFmYzBmY2M0YTZkZjMzOGE4Y2VjNWYxODRkMDk5NGU3MDljIHB5M2sKKzU5MTg0IDUyYmJlMzM2NWM3MmMyNzBmNzVkMTczYzBjNjk4ZWI0Y2U2MDE2MDQgcmVsZWFzZTI1LW1haW50Cis1OTE4NSA3M2Y4Mzg5OWViOWQ5ZWMwMGU2MjJjZGIwMGUxN2Q4MjY1Yjk3NmM4IHB5M2sKKzU5MTg2IGU0YjFlMDVjZTI2MzUyNzU1YzAyZDMzZDkxMTlmN2E0ZWYzMTUxNTYgbGVnYWN5LXRydW5rCis1OTE4NyBlYmM3Mzg5Mjk3ZDY5MWM2ZTE1OWM1OTk5OWU3ZTAyODVmMGQ1NjZkIHB5M2sKKzU5MTg5IDQ4YWY2Mzc1MjA3ZTcwOGRiNDFjMTliNjAzNzNiYzYxZGYwM2ZlYjAgcHkzaworNTkxOTAgZjQ4ZDJlZjcyZTdlMzk0MjRiMDRhYTI1NThiOWJmNjBiYTA5YmNhMiBsZWdhY3ktdHJ1bmsKKzU5MTkxIDA0NzY0NTdmZmIzOTFmZDJmMDQ2OGM3MjJlN2JjNWU2Mzc1NDE1NjAgcHkzaworNTkxOTIgZTdmZWQ3YTU5NTc2OGRjZTI5M2U1ZDA2M2U2MGRmOGM4MjBiY2ExOCBweTNrCis1OTE5MyBiNGRhNzFhODhmYzAxNWVkNDI4YTdmZWVjZGExODM4ZjA5NTU5OWNjIHB5M2sKKzU5MTk1IGYyZTI0NzlhZmRmMGIzMzA4ZjI3NWJhNjhmZmU3Njg1NjFmNDM5MjYgbGVnYWN5LXRydW5rCis1OTE5OCA4ZjkyYjRlZTZmYzRjZjU5NTQ4OWJiYzViOGI5MmIyZDVkMWYyYTEwIHB5M2sKKzU5MTk5IGJhMzA1NjExOWIyODNjMGQzOTQzOGQyZTU5MzEwNjM0ZjE0YzM2NTUgbGVnYWN5LXRydW5rCis1OTIwMCA1ZDEwNDlkNGMzYzY1ODQ3MGRlMDM3MTNiZGMyZTZiYzlmZGQxM2RlIGxlZ2FjeS10cnVuaworNTkyMDEgYmZlMDM3ZTNmZDU1ZmYyZmI4N2RiNjA1ZmZmOWU2YTgzMTU0ZmJiMCBsZWdhY3ktdHJ1bmsKKzU5MjAyIDQ1Y2VkNmFiMDY2ZDViYzYxM2QxOGVmZTk3MDFjMGZlZjY0MGU0OGEgcHkzaworNTkyMDMgNjBlNmVhYTM3OGQ5ZjkxYmUyYjQ5OGQ2NjJhNTZkNWVjYWJkYTE5NyBsZWdhY3ktdHJ1bmsKKzU5MjA0IGQ0NGZmZmRhMmNkMDg3NTdkZWQ1OWI3M2FjNDI5N2IzODUxNzE2YTIgbGVnYWN5LXRydW5rCis1OTIwNSAxMmU3MjgwMzVlMmM2Y2YyYmZkMTMzMzg2NmZmNDlkNjMxYjBhNmEzIHB5M2sKKzU5MjA2IDcxZjQ3Zjg2NDY5MWU4NDRmMzZjNDgxYmUzYmU3NjFiMGFmN2NmM2EgbGVnYWN5LXRydW5rCis1OTIwOCA3ZThlODc5N2Y5ZDBhODUxOGI1NmIxMzI4OWIxNTM2YWZlZmQ4ZDFmIGxlZ2FjeS10cnVuaworNTkyMTAgOTE4YmJlZTNhNTQ1ODgwMGYyYmUxZWYxYmZiMzhmNjc2MDE1OWI4NSBweTNrCis1OTIxMSAxZjAyNGE5NWU5ZDkxNmEzOTQ1M2UzZDYzOWZlMDdlYzU1MDU5ODBlIHB5M2sKKzU5MjEyIDUzYjA4ZmQ4OGJmNDc1YmI0ZjY3OTk5MWUxMTRkYzA0YzIxMWMwYWIgcHkzaworNTkyMTMgNTMwZmI5ODUyYzUwNDNmZWMwYmQzNzNiYjNkMmUyNWVlMTM1ZGQ5MiBweTNrCis1OTIxNCA0YzM5MDI5ZTNmYjAzMGE2N2Y3NTVmN2M2MThmYzNjZTkwODgyMTRiIHB5M2sKKzU5MjE1IDQyOWNhZGJjNWIxMDkzY2Q4MDdlYzg4MTY1ZDU4YTdjMWNkOWMxNWIgcHkzaworNTkyMTYgNDFiN2Y4MDI2NWRiMTliMzk4NDg1NzU0M2ZiM2MxYTZjYmJhNjQ1OSBweTNrCis1OTIxNyAxNTY0OWFlZjJkYjU1ZTEyNzAwOTQxYTNjYTNmMDE1N2UzOWVlOTNhIHB5M2sKKzU5MjE4IGVjY2IxOTcwNDRkZDQ5NWQ3ZDYxMDRmMDc2NzU3ZjZkNjhiMjhlODggbGVnYWN5LXRydW5rCis1OTIxOSBjMDI0Yjg5NGQ5MjljZWQ0Y2I2ZWM1MzkwZjg4NGI4OTQzYTZhN2MzIGxlZ2FjeS10cnVuaworNTkyMjAgZTZjYTkyYjE4Y2Y0ZGE0MmVjNTkwN2RlYmQ0MzY1Y2NmZTFlNzViMSBweTNrCis1OTIyMSBmMjM4NWQ5ODI4MmFiYTBkOTEwZDAwOTliNzlhZWNhYjYxY2I1ZDA2IHB5M2sKKzU5MjIyIGM0YTZkM2VjNDJjMTI0OTI2NzFjNzg3NzlhOWYwNjRjMzBkNzU2ODIgcmVsZWFzZTI1LW1haW50Cis1OTIyMyA2ZWQ3N2ZkYThiOTE0ODBhYjliZjUxOWFjNjY5NDMwMTFiMjVkNGM2IGxlZ2FjeS10cnVuaworNTkyMjQgYjZiNWI2Y2RkMjAyYTkwZWQ1ZGUzMjAxYzc5ZWJhNmEwM2JhNDM1YSBsZWdhY3ktdHJ1bmsKKzU5MjI1IDllZjg1NzI0ZjRiMWY1MjM3YTMzMmE0ZTNlZTEzNTdkNDFjOGNhMjMgcmVsZWFzZTI1LW1haW50Cis1OTIyNiA0OWFjNTg3ZTIyZTkxZjAxN2ViMWQwMjMwMGE0YjM4ZTdmZGU1YWU4IHB5M2sKKzU5MjI3IDI5NWNmMDVmZGQyYzMyOGM3NTAxYzQzYzA2NTYxZTU5NGM3Njg4ZjkgcHkzaworNTkyMjggZDYzOTQ1OGM3ZTAyNDVjYjNjMDRjMTBiYTMwYzEzZGQzZTkxZGZjYiBsZWdhY3ktdHJ1bmsKKzU5MjI5IDBjYzU1MmFiNzZiZDM5YzNmMDVjMzMyODIwNDQ0Y2M1MDE5YTdiYTcgcHkzaworNTkyMzAgODk0ZmVlMjc5ZGJjZWYxNjFiYzExZTdlYTRmZWUxNjcyOTg0MjE3ZiBsZWdhY3ktdHJ1bmsKKzU5MjMxIDQ0MTdhYjViMzUxZTZjZDg0Y2RkMDNmYmU3ZTBiNWNiOTUyOTg3MDIgbGVnYWN5LXRydW5rCis1OTIzMiAwMDA0OGZlZGJhYTBlMjJlM2ZmNTZiOGI5YzIwYTQ3MjViOWZmYWM3IHB5M2sKKzU5MjMzIDNlZjZkYmM0MzUzMWExY2JmMjg0YTZlY2VkYmYwOGNlNGM3NGUzNjcgcHkzaworNTkyMzQgMjhjODAyODM3MjUyMzNkMWY0NTY0NmNlYzcxMTdjNDRjNzI1MzdhYiBweTNrCis1OTIzNiAzY2ViZGU0NzhjYzRkZmUzMzc3NWM5NDEzNDM2ZGUxNDVhOTRiOWEyIHB5M2sKKzU5MjM3IDUzMTEzMTA2ZmViYjU5NTVhNDExNWI5OWMzMDY2OTZmYmFkMTMyMGYgbGVnYWN5LXRydW5rCis1OTIzOCAzYWExMTBmNjgwYWIzZTBhMDgxNzI5ODRlMDg4YWQ1N2Y2ZGZhYWNkIGxlZ2FjeS10cnVuaworNTkyMzkgZjU2NDQwNWM4MTA0MWRmYjhlNmIwNTU4YjZmOGViYTM1NDc4ZDA5OCBweTNrCis1OTI0MCBiNDQwNTllMGYwNzU5ZWQxMmNhYWU1MzU5ZTFjM2FmODU2NDBjYmE3IGxlZ2FjeS10cnVuaworNTkyNDEgMmY0N2IyMjhiYTA2NTRhMGEwYzE1YjU4YTEwMmViNWViNjVhM2MwNCBsZWdhY3ktdHJ1bmsKKzU5MjQyIDc1NzdiOTllYzUzYjU5MmJjYmU5YmY0NTkxZDRiNzFiN2MyYzQ5YTkgbGVnYWN5LXRydW5rCis1OTI0MyBjNWYyYzk3ODkzMTM1ZmJmODczYTA2ZDkyOTRiZGI0NzQwMzhmYzIxIHB5M2sKKzU5MjQ0IGY0ZTdjNzI5YjNhMjRlYzJiODViZWZmY2I0ZTU3OGRlYjY2MzBjOTMgcmVsZWFzZTI1LW1haW50Cis1OTI0NSAxNjVlNTI3YzM5OWFlZTUyODY1MDRmMGUzMmRlZTJlMjI5YjYxMWY0IGxlZ2FjeS10cnVuaworNTkyNDYgNTFjMWVhZWI4Nzg2YTY5MmQ1MzY0NmJjM2NiYzk4NTdlZmFjN2Y4MiBweTNrCis1OTI0NyA2NjRiMGJjOTJiOTZmZGU5ZTc1ZTYwODc5YTBiMTdmOWRhZjlhNTYxIHB5M2sKKzU5MjQ4IGRjYzRiYzU4YWY1MmI3ZWM2ZjA1MDUxMmE0NmJjNDNlYTNlMzY1OTkgcHkzaworNTkyNDkgODBiNDJkYjJlYWM5MmJlODllZDE0MGI2OWU0MjNmNzQxYjEwZjZlYSBsZWdhY3ktdHJ1bmsKKzU5MjUwIDJiYWFiZWU0MDcwMmY4NDYwYzFiZTcxZWZhMjlkMDM1NDA4OWYzN2QgcHkzaworNTkyNTEgNGNiOTVmYzQxMjllMGUxMzU4NDFmMDcyZjQ0ZTU1MTBmNjBiZjM5NiBweTNrCis1OTI1MiAzNTFiN2JkNzg2ZTRhZWVkMzNkOTZmZmFhNGQ2MGRiZWVjZTNlOTYzIHB5M2sKKzU5MjUzIDJiMjFmMTU4YWI5ZmYzMTUwODYzOGU4MmFiYmMxODgzMTQ1YjMwMjggbGVnYWN5LXRydW5rCis1OTI1NCBjMjE4ZDFhYzkxNmU1ZmU0M2JkZDNkNWE1YWQ1OGUzNjIwZTJiMjQ3IGxlZ2FjeS10cnVuaworNTkyNTUgMTEwZmY2MTRlYzI4YWRkZWY2M2YxZmNiZjYwZGM2NThkNjBkMDUwOSBweTNrCis1OTI1NiA5NDRhZTM0NWU5ZmZiNDFhOWExOGFlZjIxOGFjOTIwNzYzNTBkZWQ5IGxlZ2FjeS10cnVuaworNTkyNTcgODZhNzM1YjQyYThmY2VkOWZiYmUwYzViYjVmNjM1ZGU3M2QxOTU5YiBweTNrCis1OTI1OCAyMTMyMWRjZjBhYjVkOWY3NmYwNjFjY2NmZTAwZWUzZjc4OWQ3ZDE4IGxlZ2FjeS10cnVuaworNTkyNTkgNmQ3ZmQ5NWVmMTRhZTk3ZDI2MzE3ODU1ZjFhMjk3ZWMzZjFhMWY1ZSBweTNrCis1OTI2MCBlNjM0NTExYjRhZjVkYThjZmU2ODdjMjIzZTg4ZmM1ZjJlMzQ5YzhmIGxlZ2FjeS10cnVuaworNTkyNjEgYjIxYjFjNGYwNDM5NWI5YjJhMWE1MGEwNTk1Y2U2MzYwY2JlMzU5YyByZWxlYXNlMjUtbWFpbnQKKzU5MjYyIDRmMWIyMGVkOThlNWZhNzU3ODA4MDBkNDY4Mzc5MDBjY2U4YzNiMTAgbGVnYWN5LXRydW5rCis1OTI2MyA2MjI0ZGNhYzgwN2Q4NzMwMGM5YjdjOThhNmFkZDc5NmEyMmEzZGU3IGxlZ2FjeS10cnVuaworNTkyNjQgYmZkZWE2NTM4OGMzMWE2NWJhYmJmM2RlODE5ZjFkMDQyOTU0Mzk3MSBsZWdhY3ktdHJ1bmsKKzU5MjY1IDE5OWRmZjg1MzBhZDlkYjk2YjNlMDA3ZjUwY2UwZDM4ZTc0YTc5MGMgbGVnYWN5LXRydW5rCis1OTI2NiA4MjMxNDFhZGIwODAxYWE0M2VlYWJmYzIzY2QxOTFiODc2YzFlYThjIGxlZ2FjeS10cnVuaworNTkyNjggMDg4OWRhZjZkMGQ5NGI1Zjk2N2FkNjk3MGUyYjlkNTE3YWFhNmE2YSBweTNrCis1OTI3MCBmMzI0NjMxNDYyYTI3YzZkMmE2ODRmM2JiNTcwOTE4NWZmNmI4ZjJhIHB5M2sKKzU5MjcxIDFhYzdiYWFlYmNlNzc1NDlhNmM1N2I0MjI1ZmM2ZTFmN2NkNzdlMWQgbGVnYWN5LXRydW5rCis1OTI3MiBhYmEzZDA5NDlhMWQ1NTJkZDdlZWZhMTlkZGM0YTY4ZGE3NjA2ZWUxIGxlZ2FjeS10cnVuaworNTkyNzMgZTdiY2FjODU2MjQ1MmM2OWE0ODIwYzJjNWUzODllNzNmMGFlMGNlNyBweTNrCis1OTI3NCAxZTI2NjAxNWNmNWJhZWNmZDQzMDc4MDRiMGE0ZGVjNjk2ZjUyNzdlIGxlZ2FjeS10cnVuaworNTkyNzUgZmYxNzY2ZWIyZmNlZWYzM2U1OWE2NDUzOTQ3MDliYmUwYTIxN2E5ZCBweTNrCis1OTI3NiAyN2ZkY2EzYWE3ZDQ2OGQwY2FkMTA5OGM5YzBiMjhmMWVmMmRlYmUwIHB5M2sKKzU5Mjc3IDQwZmNhYWRmYjE2NjNmZDlkZmJhZGE4ZjVjNTMyNWQwYmM5ZWI2ZmEgcHkzaworNTkyNzggNGUxZDY0OTEzNjdjNzU4ZDMwNmQyMjdiNmU3ZGZlMDc3Nzc2MWYzYSBweTNrCis1OTI3OSBjZWRiN2FkYzg3YzVmN2MzYTM3ZWFiZjEwZTI3NWNhOTRkM2U5MTg1IGxlZ2FjeS10cnVuaworNTkyODAgMTY5YTgzNjQ1MzY3MTcwOTlhZDQ1YjQxYzE1NWE2NTZjMTc1MTY2OCBweTNrCis1OTI4MSA1NzgxZTE5MjhiY2E2NTYzM2JkMmVjNWMzZWZhYzEzODY5M2VlMjA5IGxlZ2FjeS10cnVuaworNTkyODIgN2YwZTQ4NTM2YTI3YjM1YzAyOWFjYzkzZjlkNDdjM2Q3YThlNDY0OCBweTNrCis1OTI4MyBhMWMzYmQzODI3NzFjZTQ5YmFlOGZmZmMwMDA4NTkzZjQ2Y2Q3ZDhlIHB5M2sKKzU5Mjg0IDkxZDExNGQxYjU4NTEzNDgxYTgzNGNmYjI3YTI5YTJlNTMyMzkwMGMgcHkzaworNTkyODUgNDg2ZGM0ZGYzNzg5Njg3MTBiODA2OTg5NmI5NGUzNzlmZmYyM2FjNSBweTNrCis1OTI4NiAyMGFjNDc3N2MwY2ExMDNlOTJmNGUyOTc3ZWFiOGM1Mjg1MmI3ZWUzIHB5M2sKKzU5Mjg4IDgwM2VkZjliMWRkOTE0MzMyNmVjYzJlNmFmYWM3NWJjZjYzOGI0ZDYgbGVnYWN5LXRydW5rCis1OTI5MCBlYWQwZDQ3YjAxMmI1OTJiN2FiY2QxMTllMDIzNjE0ZjgzYTJjYWQzIGxlZ2FjeS10cnVuaworNTkyOTEgN2VhYjE3YmU4Y2I0OTc4MGI4ZDAzNjdlMDQ3MWJhNTk1MzYwNzQ0MyBsZWdhY3ktdHJ1bmsKKzU5MjkyIDY0NTgyMDgzY2I5YWZhNDNjMDc0NTA5MDAxM2E3YzdjYWJhNDJiMGUgbGVnYWN5LXRydW5rCis1OTI5MyBmZTZiZWRhZmI0NmE2NDYwZWIwMGNlZDA4YWEyYjgxNGQ5ZTc4NjIyIGxlZ2FjeS10cnVuaworNTkyOTQgMzBmNTQ5Nzc4MjhiMzM3NTBiMzViNmNjNjVkMzg2OWEwZWQ5NWEwMyBsZWdhY3ktdHJ1bmsKKzU5Mjk1IDk3MjEwZDg2M2QxMjM0YzZlNGI2M2Q3OTJkN2U5YzA3ODgzNTQzYjcgbGVnYWN5LXRydW5rCis1OTI5NiA0ZDE2ZWUzOTMwMWY5YzIxZTlkOTJjZGY2OWI4YTNiMjdhNjQ0ZGI5IHB5M2sKKzU5Mjk3IDk3MzI2ODVlZWUxNzJhYTc2NjU5ZWNiY2E2ZmYyZTk2NWQxODQ3ZGQgbGVnYWN5LXRydW5rCis1OTI5OCA4YWNkOGY1YzYwODE3NTJhMmM4YTU2MTk5MWVhMTZlOGQ5YTQyYjIwIHB5M2sKKzU5Mjk5IDdlODlmNWNmNmIyMTRmNGJiZjU3NzJkODY3MjBlYTcwZDhjOTYyODkgbGVnYWN5LXRydW5rCis1OTMwMCBhYTYwMTdhMmU4ZjkyNmZkMTE5NDJkNGQ3MDFjMjUzN2Q0NGNiMzg5IGxlZ2FjeS10cnVuaworNTkzMDIgYmU3YTg1YzM0YTRjNGY4NzM4NmU4YzNkZTgwNTJlMDAzN2EzNjhlMCBsZWdhY3ktdHJ1bmsKKzU5MzA0IGI2MzczNDkzMzZmZDlkMTIyN2FmMDczNTMwZjk1MDUzNmM3NzhlYTQgcHkzaworNTkzMDUgZWFkN2EwNTNmNWI0MzRmYjljMzZiOTYzMmMwMzFhNDU4M2JkMzdlMCBweTNrCis1OTMwNiA0NGQwYzcxZGMzYzNiMzg5ZGZlZGNmMzI4NzdmZTUwMWI3MGMwNzg0IGxlZ2FjeS10cnVuaworNTkzMDcgYWVlZmI4OTczODRmYjQwZGE5ZjBlZDZkM2Y1NjFlZmNiYmY4ZGUzMCBsZWdhY3ktdHJ1bmsKKzU5MzEwIDBiZmVjNjA5ODM3ZWM1MDFhYmM4MTY2NTg1NzY2MGJhYjE2YjQ1MDEgcmVsZWFzZTI1LW1haW50Cis1OTMxMSBlMDhiMTJjM2I5MTM2NDNiMGFkNzhjNjcyNDYwYzVlY2ViYTc4ZWI5IHB5M2sKKzU5MzEyIGQ3NTIxMGJiY2E5N2FmODc5ZTY0NjExMzg3NGUxZDY2NzY0N2QzMGMgbGVnYWN5LXRydW5rCis1OTMxMyAyYTQzNTA3Y2Q5NTMyZWIwNDFiZjU4NDE3MTBkYzRjOGI3YWIzMWNiIHB5M2sKKzU5MzE0IDgyNWNmZmQ2YzBjZGE3NDg2NTI0ODEyZDAzMjZiZDc0NDdjMDY0OTcgcHkzaworNTkzMTUgOGU3NGFmMTk3ZTZjMDMyNGQ5YTk1YWY4MzQ1ZGJiZDBjNzlkZmZmNSBweTNrCis1OTMxNiA4NDJiM2Q0NWJmZTRjM2NmN2IyNjI0MmJmYzIyZTgyNWNmM2IzYTI0IHB5M2sKKzU5MzE3IDA0NTA1Yzk4OGFiY2Y3YzNiZWRhMjZjNDg1NjQ3ZDliYTQ0ZTdiZWUgbGVnYWN5LXRydW5rCis1OTMxOCBlY2U2NWM2OWIxZDMxNGUwYTFiNDU2OTcxYTY5ODRlMTg5M2QyYmNmIGxlZ2FjeS10cnVuaworNTkzMTkgYzhiMzM5Y2ZlZjFmZTViNDYyZGJjZDk3ZDA5OGEzYWM4Nzc0MjAyNiBweTNrCis1OTMyMCAzMWEzY2UzOGI1NmMzNWQ5YTA0OGMyYTI4ZGE2YTY2M2YyZDIzYzViIGxlZ2FjeS10cnVuaworNTkzMjEgYzlmYzRiMWY5YmM2OTJmNWVkOTczYzAzMDQyYTgxNDZiNjNlYzFhZCBweTNrCis1OTMyMiAwY2U2MTIyMWM2M2Y4NGYyNzVhZGYyNTQ5YjllMTVmNWVmNTQ3ZmE1IGxlZ2FjeS10cnVuaworNTkzMjMgNjBlZjljNGU0MDEyNGRjMzMzYzljYWIwMmZiYjdkYTI4MjhiY2I1MiBweTNrCis1OTMyNCA3ZTUwNDJlZTk0MjQ0ZmRlZWRlYTJhM2FhNzhlYjIyYTk3Zjg4NjY0IGxlZ2FjeS10cnVuaworNTkzMjUgNTMzMjBkNTQ0YmM3YWQ5MmI5ZDI4YWJiOWM0MGQ2ZDJjNmQxYTU5YiBsZWdhY3ktdHJ1bmsKKzU5MzI2IGYwYjMzMTliNzI2NmI4ZjJjYWFlMjUxZWVlMWJhYjNjYjQxNjQ5ODIgbGVnYWN5LXRydW5rCis1OTMyNyAyZmZhNGY3OTk0YTNlOWM4NDVmYTdjMTI2NDQxZDA0ZWY2ZmVmZjZmIGxlZ2FjeS10cnVuaworNTkzMjkgMTZiYTAwMTY4YzZhZWRhNDZkZTgxOTVmZTEwOGM4ZjQ0MzUxZTE4OCBsZWdhY3ktdHJ1bmsKKzU5MzMwIDFlNzI2YWVhYjZhNTI5YWNjYzViNDhhYWMzNjEyYzc2NTI4Njk2ZDIgcHkzaworNTkzMzEgODhmODY0NDViZTc3M2U4NWEwMWJlZTAzZGE3NDMxM2I5NjgyOWIzOCBweTNrCis1OTMzMiA4Mjk5MWZmNzVjNWE2ZTRiN2ZmMWQ5N2Y2NTgyODY4NDcwNDI2M2M4IGxlZ2FjeS10cnVuaworNTkzMzMgMWEyYTZkZjBmYmUwMTcwYzgxYjNlM2YxMzcxOTNjNmIyNDdjODNhOSBweTNrCis1OTMzNCBmYjg0YmQ5NTAwYTQwZWE2YWRiNDk2MTA4YjRhNTkzMjNmNDEzZmE2IHB5M2sKKzU5MzM1IDU2NTAxMmQxMTIzZGYyZTJhN2NiYjllY2IwNmRkYjAzZDkxYzMyZGQgcHkzaworNTkzMzYgODFlMGMwZTJhOGMxMzg0NGMzNzk3MGRjYjliNWIxNTkxZGVjZWE3YSBweTNrCis1OTMzNyBhZjg2Yjg5Y2U3ODQ3MGE5YjlmYmRmMDViNzI2ZjNmMmIyNzFlYjBkIHB5M2sKKzU5MzM4IDlkMTUyNTMwOTEwYTY1MGQzY2FkNGFmMzA3NDk1YTAyZmRjMDFjMGYgcHkzaworNTkzNDAgMWE3ZGZiNjFiNGQ4ZTE2YjdlNDY1MjE1NWZjOTliOWMxZTRlNWEzMSBweTNrCis1OTM0MSBlZjUzOTliMzUzYzk1ZGE3MGU3ZTc3YjJmMmYzYjMyOGE5NWY0MTYwIHB5M2sKKzU5MzQyIDU2NDlmN2NlMzA2Mjg1NjFjZGZhNjc4Y2EzMTRhYmE1MDY3ZDEyMzUgcHkzaworNTkzNDMgMzM0MTYxZjc0YjhlNWZkZmVhMTAyNzFmZDAxZDNlMTE1NmM0ODE2MSBsZWdhY3ktdHJ1bmsKKzU5MzQ0IDYxMmQ4ZGVhN2Y2Y2UzMjM5MTIzNTg0ZDg3NWY1MzA1NTdhYzA3ZmMgcHkzaworNTkzNDUgZTRjMjI1MDVmMDExY2YwNjcwZjdlZTM0ODY4MGM1MTU1NGU2MjNlYiBweTNrCis1OTM0NiA2M2U2MWM3NzBhOTMyYzg0ODdjNWE3ODU4YzFkYWJhNTEwOTEyNDQ1IHB5M2sKKzU5MzQ3IGMyNzg3ODI4MWM4Zjc4MWI2OGMxMTgwNDU0ZmY2MzQ5NTk1M2MxMzAgbGVnYWN5LXRydW5rCis1OTM0OCA1ZDk5MTA4MGQ4OGU1ZmExYjE0NzQwOTdmNDhiMTQ3YmRhYjgyOTg0IGxlZ2FjeS10cnVuaworNTkzNDkgMjZhNDM3ODYzOTViNGQyYjIyY2U0MWIzOTcxZDU4MTllZDk0ZTMwOSBweTNrCis1OTM1MCAxN2I0MzkwMWJiNDE1ZmJhMjhhZWU5MDljY2U2OGQ2Nzk1Nzc1Y2QzIGxlZ2FjeS10cnVuaworNTkzNTEgMjc4NWUyMTYwZmE2YjI3MjQyMThjYTZmY2NjOTdjYzg5ZDRlMTdhMCByZWxlYXNlMjUtbWFpbnQKKzU5MzUyIDI1MGM0ZmQ0Y2E1NDJkMjQ4Yzc4MjA5MzRlZjIxYTMzZTBhMTgxNmUgbGVnYWN5LXRydW5rCis1OTM1MyA4NjcxNjEzNGVkODc2ZjNiOWY0MTIyODQ0MWQxMWY2NThkNDZiMWQ3IHB5M2sKKzU5MzU0IDEzNDllYTQ0MWU0MWJiY2EzZmY2YmVjY2JkZmJlNmNhNWYxNDBmNTAgbGVnYWN5LXRydW5rCis1OTM1NiA0MGZjODQwNTE3ZmMwMTJiYTE0NzFjNTUyZjBmY2QwZjYwOWQzMzM1IGxlZ2FjeS10cnVuaworNTkzNTcgZGFkOWVkMzM5YmMzNDU4ZDYwZDk1YzRjN2U1ZTUyZWJiZTI5NmZjZiBweTNrCis1OTM1OCA5MzQwNjk4YWU0MjEzOTA4NmUyMzdiZmI4MjgwNjQ3ZmQ1YjhhZWM0IGxlZ2FjeS10cnVuaworNTkzNTkgNzlhZmE0YzU1MjExZGZhYjU4YWRmNGUwMDRlZDQ5ZWQ3ZDRkNjA4OCBsZWdhY3ktdHJ1bmsKKzU5MzYwIDYyMDBhNDQ3ZGFhMTY2Nzc5NTAxNTBmNjdjMjgwMDI3ZTgxZjMzNTAgcHkzaworNTkzNjUgMzIwZjdlYzYzZjBiZGZkMjdlMmRkYjkxYzA2NWIyNmQ1NTQwOTg4ZCBweTNrCis1OTM2NiA1OTBhMTQ0NzYwMTlhM2MyYjYyYzAyNmQwMmU2Yzk5M2NjZmY5NzczIGxlZ2FjeS10cnVuaworNTkzNjcgZDMzZjhjYzcwN2NiZmUzYjkxZGUzZGM0ZTQ5ODA4OWEyN2VlMjgzZCBsZWdhY3ktdHJ1bmsKKzU5MzY4IDg2MGNlOTc1NWQxNWJkNzg1MTA3MTNkYjM0MjNlMWYyOGFkNDcyMWIgbGVnYWN5LXRydW5rCis1OTM2OSA1NWMwNTA0MjMwM2IzOWYwNTRjNDcyMTNmNTYxYjBiZjU5N2VjNGFhIGxlZ2FjeS10cnVuaworNTkzNzAgYTFiYzY1OTU0YTljYmMxZTE3ZWNhODViNzBiYmU3MDc3OGU5OGFhNyBsZWdhY3ktdHJ1bmsKKzU5MzcxIDA1ZGE0OWViMTJjMTRmMDM0OGE1ZWMzYzMzM2E5MzE0MTgwNjJkY2MgcHkzaworNTkzNzIgMWY3MjJiMDg1NDAyN2M1ZWMyZDcwYzI0ODljY2I0YzQwYjQ2OWE2MSByZWxlYXNlMjUtbWFpbnQKKzU5Mzc0IDUzODQ3NmI2ZDdlMDUyYjUwYTgyZmRiMWE4MjRiZjA0MWUzZTg2YjUgbGVnYWN5LXRydW5rCis1OTM3NSAxN2MxNzgwN2E2MTE3OGFkNjg4YWU4MWI0MTE1NzZmMjk0ODVmNWJjIGxlZ2FjeS10cnVuaworNTkzNzYgZDY0YmViOGZhZDA2NjE3N2Y5MWVlOTFlN2ZmNzZhYzBjOTM3YjI4NyBweTNrCis1OTM3NyA4NWU0YmZmMzdiYmRjYjZkNTZmMDJlZGY4NTMyM2IwNWExOTI2YzRhIGxlZ2FjeS10cnVuaworNTkzNzggNDRjMDkwYzc0MjAyNjAyM2NhMGYwYjczMTUyNmIzYzU3NWFkMWU3YyBsZWdhY3ktdHJ1bmsKKzU5Mzc5IDFkOThmYzI2NWY5OTJlNTY2Y2NiYmYwMmQzZmJmYTI4YTUzNzQ4MGUgcHkzaworNTkzODAgOWFkNGFlZGYzNDliZTkyYTI4NGQzMzdmZDNkZDI4YmEwYWUxMTAxNCBsZWdhY3ktdHJ1bmsKKzU5MzgyIDZlZjhiNWI4ZTVkNmZmZThiMDRmNjc2OGU1YmYzZDAxZjBhNjI4OTMgcHkzaworNTkzODMgYWZkMjk5NmYyMDIxMjQ3NDk2MjA4ODliNjIzOThmZmI2ZjQ0ZTE3NiBsZWdhY3ktdHJ1bmsKKzU5Mzg2IGE1M2VmNzc4NTkwZWJiM2QwZDY2ZTAyZjIwZmY5MTFmZjIyZmYwM2EgbGVnYWN5LXRydW5rCis1OTM4NyBiY2MxNzNjM2FkNzA5MmIzYjY3MGUyMGM5MWEzZmJjMDliZjExZWExIGxlZ2FjeS10cnVuaworNTkzODggZjExZGQ0ZDMxNWRkMGRhNjdiNzBkYmEwNGZhNWExMWJkYWNmOWFiYiBweTNrCis1OTM4OSA3NGJkZDUwZjA3ZTVkYzNjNDhhNmY0MjJjOTllNmZiOWJkMjEzOTU3IGxlZ2FjeS10cnVuaworNTkzOTAgNzFhZDVlMmJlZGRhMjdkMDljNTE5YTE5ZDYzNzYxZjYxYjBkYzAzNCBweTNrCis1OTM5MiA5MzllODEyY2MwOWNlN2IwMDliNDNhYjkyMzBjZjA3MTFiYzU5NTE3IHB5M2sKKzU5MzkzIDUwYjAzYWZhMGJiZTc5MzM3YWZkMTI4ZTcwMTMyMjJhNmE3ZGE5OWUgcHkzaworNTkzOTQgYzIzMjgzNmNlNWM5NDM2NDU0MDA1MThmM2FmYmRkOThjZTMwZGMxZSBweTNrCis1OTM5NSBjZTI4MGEwNGY1NWUwZmU4N2I1ZTljYTFlYzYwZDZhMTFlYTY1ZDViIHB5M2sKKzU5Mzk1IDY1ZTgyMTQwZTI4MWJmMjZmMmUyMmVkYTA1YTdmOTk1NmM0MjBmOGIgcHkzaworNTkzOTkgMmZjZTk4OWRhMDIxM2NhZDQ4NjQ1MTNjMDM0ZWRmNTA3Mjg3NzhhNyBsZWdhY3ktdHJ1bmsKKzU5NDAwIDMzNTZhZDYyYzJhMzY5OTcxZWViNzVmN2YyYjFlNjg1OGU1NDIyY2UgbGVnYWN5LXRydW5rCis1OTQwMSA1ODJkMmE4Mzg2M2NjNDM5MDM1MGMxNjNiOTEyODNlNDJmMmYwZjA0IHB5M2sKKzU5NDAyIDgwODg0NjQzYTZmOWU3ZDEzNmM5NjI3ZDEyNzE0NDdlMDc4M2NiOWUgbGVnYWN5LXRydW5rCis1OTQwMyBjNmZiMzkzYjZjODE1OGIyMDU5ZmM1MGIyMTg2ODlmZDI0NGVjNGU2IHB5M2sKKzU5NDA1IDcwY2M3Zjc0MGQzNDcyNjBhMGJlNjI5MDdiNGI2NjgwMWNmYTRkYmMgcHkzaworNTk0MDYgMjJlM2Y1YmQxNDA3ODYzMzhhZjQ2ZTRiMmUxY2JmYThlZmNmOWI2OCBsZWdhY3ktdHJ1bmsKKzU5NDA3IDRkZTU5NDc0MGE4OGY5OTZiNzAxMDYzYzI2OWE5N2NhNmY5ZTYxYjIgbGVnYWN5LXRydW5rCis1OTQxMCBhNzFhNzFjYWI2MDgyNWFjMTcyNmU1MzBjYzllZTYyY2FhNTQ0NDVmIGxlZ2FjeS10cnVuaworNTk0MTEgMGJiMTA4YTNjMGM5N2NlOGI0Y2NlNTkzN2E1YWU5YmVhZmE3MzdiYiBsZWdhY3ktdHJ1bmsKKzU5NDEzIDc3Y2I4ZmYzNDkxMmFjZDA3ZDNiMTllZjUxYTRjMzkwMWMyOGI2MTEgbGVnYWN5LXRydW5rCis1OTQxNCBhOTg3N2I3ZWU4NWRlYzhjOGNkNGU5N2I5YmU2N2Y2N2VmYjgyOWQ4IGxlZ2FjeS10cnVuaworNTk0MTUgNjI0ZjUxMWNlOWYyNDhkMzhhZDA4YTAyNzNjOWQyNGUwZDQ0YzgwMyBsZWdhY3ktdHJ1bmsKKzU5NDE2IDAzOTQ1YTFkNGZiM2NmNTlmODIxMmZmZDdiNDYxNTAyNDYyNjdkMzggbGVnYWN5LXRydW5rCis1OTQxNyA5YTk3NmE2ZWU5MzY2OTFlZjlhNDNlZjBjNGFhZjkzODViYTcxMjNlIGxlZ2FjeS10cnVuaworNTk0MTggMTE4ZTZkNjhiNDRhMTI4OGFiNzZlODQ5ODMxNDMxMTdkNDFmNDcyOCBsZWdhY3ktdHJ1bmsKKzU5NDE5IGYyZjczOGE0MzdmODc5YzY0M2RkNDY0NjRkNWI5YTRjNzhhY2UzYTAgbGVnYWN5LXRydW5rCis1OTQyMCBhZDhiODA0NjA2NDRmMWY4ZmE2MzU0ODU3YzIzNjQzZjkwNDZjOTJhIGxlZ2FjeS10cnVuaworNTk0MjEgYWFkNjVhMjQyNGUzOGQ4YTcyYTdjMGEyNjU2ZGYwMzlkMTA0MDM4OCBweTNrCis1OTQyMiA0ZWU3NDMxMGVjZjk4ODc3NGIzNGFiYTVkZmI4MmE1OGQwMmI1MGU5IHB5M2sKKzU5NDIzIDE3NDQ4ZTVlOTY3MWRhNGI5NjE5NjMwOGY1MTNmNjAyMmQ4NThkMDEgcHkzaworNTk0MjQgNjk5ZmNkZjViYmQ3NGIwMTA4NDRmZDQxYTE3Y2FhNmVhOWNmY2I3MyBweTNrCis1OTQyNSA2YjUxN2FjMTBlOGVmOGUyMzdhZDFiNmJjYWViYjE2M2M0NTQ4N2I3IHB5M2sKKzU5NDI2IDkxY2NjZTc0MWQxMTQxZDk2ZDNhM2YzMDNjMjU0MTE2NDVkZDcwOWIgcHkzaworNTk0MjcgNmQ1ZjA4NjAxZjRhOTViNDIxNWZjNWM5YWY0N2JmMWRmYWMyMTQyYSBsZWdhY3ktdHJ1bmsKKzU5NDI4IDUwYTUwZTc1MjE0MjNhMjcxNTM4MzkzNDY1MzI5MGE1YTg3MGNhZjAgcHkzaworNTk0MjkgYTVjNDczOTEyMWUxNGZkM2RhMTc0OWE1YjBkZWM2MmU5NGVmYzk4YiBweTNrCis1OTQzMCA2MWRmNWY1Mzc5NjllNmFhZWNiNDgyZDM2NTQyMDFhZjk0NmYyNTg5IHB5M2sKKzU5NDMxIGY2N2VjNGViNDc4YTg5MDhjOTAyMzFhYTIwZjA1OGU2ZTljMGVkY2MgcHkzaworNTk0MzIgNDRhMjRiNTliMTZkMDIxMDY4MmRkYjAyYWFmYmFkYjFjNWVjNTY0YyBweTNrCis1OTQzMyBiZTNiNjYwMWY5ODlhNjhlNWEwMTljZDgzODY1NDcwZmFkOWQxYmU0IHB5M2sKKzU5NDM0IDM2OWE0ZTA2ZmQzMDExNjJiODdmYmY4MDg5MzM1MmJkZmMwNGY4ZWIgcHkzaworNTk0MzUgNmNlNmUyZjNkY2IyZDY4N2Y5NWFkNDUxNjJjMTdkMzNkMTY0MDM0MiBsZWdhY3ktdHJ1bmsKKzU5NDM2IDVhYzg3NGQwOTU1NjM2ZDUzOWNkY2QxOTk2MmEwZmM4ZGIyZjgyZDIgbGVnYWN5LXRydW5rCis1OTQzNyA2NmRiZTEyZGRmMzFkNzZjNDhhNjAzYmQ5MGVmMDM0MzFmZWMyNjE2IGxlZ2FjeS10cnVuaworNTk0MzggNDBiZmQ2ZjFjYzE2OTAzMzIyYTE2YzJiNzBkMmQwOTIwZWY5NTExOCBweTNrCis1OTQ0MSBkNzdmZDFiOGMwYzU0NzMyMDkzZjE0NzEyM2EwYzQ4ZmUzYzI1YTMyIHB5M2sKKzU5NDQyIDVhYmZkMDdlOTdkNDg5ZjI1YzVkZTIwMmVmNmYzNGVjMDQ0YmIyYmMgbGVnYWN5LXRydW5rCis1OTQ0MyBhYWMzM2VlMWE4ZmM3MzI3N2RlMDEyZmRkMWI1YjczMWFiMDc2OGQ0IHB5M2sKKzU5NDQ0IDg4OWE2NDIxZjEzNWI1OWVjMjQyZDU0NTA3MmEwZThmOWI3MTA4Y2IgbGVnYWN5LXRydW5rCis1OTQ0NSA5Y2YyYmY5NDYxYzQxMGQ4NThlYWNjMWQ2YWViYTllY2Y1NDI4NDNiIGxlZ2FjeS10cnVuaworNTk0NDYgMzNmZjQwZTZlMTM3NTg5NTZlMWZlNDZmYTNlZWZjNGRjYzJjNjhiNSBweTNrCis1OTQ0NyA1OWU2NGZhM2FkMWQ5Y2EyZTc3NTk5OTMwYmU3NWYzYmIyOTMxZjQyIGxlZ2FjeS10cnVuaworNTk0NDggMjAyOGZlYjk0YjU3NTUyMDQ5YWU1ODdjNDc0NTc3YzdlMWFjYTIwZiBsZWdhY3ktdHJ1bmsKKzU5NDQ5IDQ0NGRhMDhmNzhhNGRhNzlmNmM3MTdiMTdlYmEyMDdlZjYwZDE1YWUgcHkzaworNTk0NTAgNjBhNzQwZjVhNTdhM2ExN2U5ZGE2MmQ0NzY2ZGZiZWI4MDM0YjM0YyBweTNrCis1OTQ1MSBhMzg2ZWYyOGIwMDg3Mjg4MzZhYTk0MzRkOGU0ZGVmYjc5MmQ5Zjk1IHB5M2sKKzU5NDUyIDEyY2Y5ZmZmOWQwYWVkMzZkNmEyYzZmZTdiNDQ2N2Y4OTg3YWU1YjUgcHkzaworNTk0NTMgNmIzNWRmNDBiY2FjYWZkNmQyZDVjYWViZDkzNjkwZjA2MDY1MjgxYiBweTNrCis1OTQ1NCA3NmNlNTk3YzcyZWUwZTEwNTVlNWM3OTA3YThjZjU4NDJkZTcxODlhIHB5M2sKKzU5NDU1IDQ3ODk1Y2E2ZjBjYmE4ZmIxYThmNzU5MDI3MTVlOGE1MDNlMTA3ZjUgbGVnYWN5LXRydW5rCis1OTQ1NiAxYjBjZTlmZmE5NzI2ZDUzOTRjNDhiOWI1OGQ5MTMzYjM1ZmMwNTMyIHB5M2sKKzU5NDU3IDY4MmQ5Nzg4YTAzOGU3MmZiYWJiMTAwMzQ2NzNjMWM2ZmQwMDQyMzMgcHkzaworNTk0NTggNjZjZTMzMTRjMTk4MjBhNzFhYjk0YTg2YjI5MGQ5OGYyNzI3ZWM4ZCBweTNrCis1OTQ1OSAyNDc0OWEzODA0MDkzNDAxZGU4MDMxNDA3Zjc4MGNlNjZhYjBkY2NkIGxlZ2FjeS10cnVuaworNTk0NjAgZWI2NWUxMDVlNGI4Y2RhZGEyMDBhOTUyYmRmYTk0YTQ4MjU4YjU3YiBsZWdhY3ktdHJ1bmsKKzU5NDYxIGE0YWFiNzJjMmNjMGJjNDk0MzE5ZDIxMTA1ZTU3YTVkZTg0NzhlZjMgcmVsZWFzZTI1LW1haW50Cis1OTQ2MiAyYzZmZTJkY2M4OGVhMWQ4MWJjNWMyMTg5NjQzNWQ2ZjljNTEyZTNmIHB5M2sKKzU5NDYzIGU2NWU5YzY0OWNmZGFmYjM4YzM0YTg4NDNhMTlhODMyOWYyYmM0YWUgbGVnYWN5LXRydW5rCis1OTQ2NCBmOTA5ODcyOTE3Yjk1ZDliM2NkZDlmZmFlODU0NTA5NTNjYmI1NzUyIGxlZ2FjeS10cnVuaworNTk0NjUgN2FlNjA0YjM1MzNiNTM2MzU0ZGEzMWEzYzNlMzdmOGI1MDk2N2I3ZSBweTNrCis1OTQ2NiBiNTIzOWNjZjk0YjViYTczOThhN2M3MTdjNDYxNDgzYmQ4MGMwMmQwIHB5M2sKKzU5NDY3IDcyN2FmMTYxY2E0NjRhYmQyNzEzMDQ0YWNkZjVmNTEzNGE2ODAzYTAgbGVnYWN5LXRydW5rCis1OTQ2OCAyZTE5YzNlNTExYmY1OTM5ZjYzZjQ2ZWI2NDNkZTBlNzEyN2IwZDE2IGxlZ2FjeS10cnVuaworNTk0NjkgM2UwODY3YTA3NzY1N2U0MTQ4NzU1MDQ0ZTFiZDgzNjI0OGQxMWEyMSBweTNrCis1OTQ3MCBlYjIyNjBkY2IzNjVmZGU2NTExZjQxYWZjNGQ4MjRhNGYyOTI4OWViIHB5M2sKKzU5NDcxIGE2ZDEwNTlmMjJlMmNkMTQwNGJhMGEwMmNmMjI4ZDUyNDdiNDRkOWEgbGVnYWN5LXRydW5rCis1OTQ3MiA0ZWJiYTliMjY4OGY0MDcyYzE3ZjU5ZWI0YTk0ZDQwMzBiYjU1OGUzIHB5M2sKKzU5NDczIDY2ZDQ3OTZlZTkyY2JmYzQ2OGRmOGRmNzZjM2YyMWM3M2Q4OWUxZjggcHkzaworNTk0NzQgOWEwOWQ0NDJiY2UyN2IyZDczNzZmZDM5YmIxMWJiMGM4ZTFmNzk3NCBweTNrCis1OTQ3NSA5OTI5NzgyZjVjYjQ4ZDA3YjQ0NTEwNmMyMzVkYjIyNjI4MWJjZTgxIGxlZ2FjeS10cnVuaworNTk0NzYgMDE3MDcxNGViMDQ0MjE1OGMzMTBhMjRmZGI0ODdmZGFhMTE3MWUyOSBweTNrCis1OTQ3NyBlMTc2YjRhZWE5YzUwZjVhMTlkMmFjNWI0M2Q0ODZiNmNjMTRmZTVlIHB5M2sKKzU5NDc4IGMyZTcyZmViNTNiMzZlYmMxNTBhOTY4MWI0MThlOTU1NzA4OTJiMzAgbGVnYWN5LXRydW5rCis1OTQ3OSA1NDEwNTJiMDQ0ZjA5ZTMxMDk2ZGRkOTdlNjI5Y2JlYjhiN2M0MDVmIHB5M2sKKzU5NDgwIDdhOGM4YzU2ODVmY2NiMTRmZmNiNmY2ZjdjYTYwYjg5N2Q5MzlmNmEgbGVnYWN5LXRydW5rCis1OTQ4MSA2YWU5NGEyYmE1ZGZhZmEwMWEwZTQzOWQxNzU5NTFkYTlhYjdkNjQwIHJlbGVhc2UyNS1tYWludAorNTk0ODIgMjI2YTA2MmFiNDNlZjc3Nzk3Nzk0YmFjODVkMWUxODVmNTYyYmU1ZiBsZWdhY3ktdHJ1bmsKKzU5NDgzIGQ4ZTA2NTQzY2RkODBlMzQ1ZWRlMTZjNmUyYTI3ZjA0OWU3ZDVhYzUgcmVsZWFzZTI1LW1haW50Cis1OTQ4NCA1ODkyNjJkODFlMjk4ZmVlYzcwODYzMmZkYzhiNzg5YzE2NWI2MjdmIGxlZ2FjeS10cnVuaworNTk0ODUgZjA0YzAzNjVjOWFhZmJiMzllOGI2MWRhYzZjZDYyZWE1MTQwMThkZSBsZWdhY3ktdHJ1bmsKKzU5NDg2IDMwOTZiMDEyNzMzZTE5YTRiOWJjYTM3MzA1MDE5ODIwNmYwMGY5YTYgbGVnYWN5LXRydW5rCis1OTQ4NyA2NmVkNmUwM2ViYmRhOWVmYTMyMTI5YWQ3NzYyMzkxZDEyZmRlZGZmIGxlZ2FjeS10cnVuaworNTk0ODggNzE2MjM4NzgwNTdiMmU0ZmRiZGJhMmFiNGY1ODgwMTA4NzgwYzk4NiBweTNrCis1OTQ4OSA0NGM0MThiMmJmN2Y2NjA5ZWY3MjEwYjAzMzJkYzgwNGZmMGY1NWM0IGxlZ2FjeS10cnVuaworNTk0OTAgN2E2MmM2ZDkxMDdkZjk4MmRmMWY3NWJkYTM1NTVlYzMyMzQzZGU5MSBsZWdhY3ktdHJ1bmsKKzU5NDkxIDI5NGIxYTc5ZjIwMTlhYmMwMmQ2OGIxOTViMmU5YjY5MGZmOWJiMzggbGVnYWN5LXRydW5rCis1OTQ5MiA2MzVhMjMyODAxMTI2M2QyOTU3Y2FhZmU2M2Q0YjljNTYyZDIyMmFmIGxlZ2FjeS10cnVuaworNTk0OTMgYTMyN2YzZTI2MTU2MTFiYzU0ODM2ODNhMGUwOWIzYTQxMDJmYmRlNiBsZWdhY3ktdHJ1bmsKKzU5NDk0IDNjOGI3MDJlNWYyMDcwZWVjZjEwNDcxZjRjZjUwNWE3OTcyMTYzNWUgcmVsZWFzZTI1LW1haW50Cis1OTQ5OSA5NjFlODljYzc5MTFjMGE2YzAzOTcwOGMzMTU1NTY3MzE0MDE0ZTgxIHB5M2sKKzU5NTAwIDkwNWE5Njk5N2I3YzgwZWIyZGEzMzM3YmFjOTViODc4ZGNkOWJjN2EgbGVnYWN5LXRydW5rCis1OTUwMSBkY2E5NTk1NjczMGZjM2Y2MTk3MGE2ZWZhM2M3YjlkMDZiMWVhZDU4IGxlZ2FjeS10cnVuaworNTk1MDIgN2RhOTQ3NTdlYzViZDNmNzhmODZmYjY5ZmNkMWUxOGU4ZjE5NWMwOCBweTNrCis1OTUwMyAyMGVkMWQ0MTU0MDllYWMwYTkxY2U3MGU3MGQyYjQ4NjkyMGNhNThiIGxlZ2FjeS10cnVuaworNTk1MDQgMWJiOWIwN2EwMWRkYTFlYjkzY2U0ODQ2MjhjOTNlMWY2YWVkN2JkYSBsZWdhY3ktdHJ1bmsKKzU5NTA1IDQ1Yzc4ZTUwY2JkNWUwZTVlN2RhZGVlNzc4MjJiNGJiYTY2ZDNkY2QgbGVnYWN5LXRydW5rCis1OTUwNiAxOWY4OTRhZTg2NGFmMWRhMmEzYzI0ZTM0Yjg3YzExMjYyNWY5Yzc1IHB5M2sKKzU5NTA3IDE0YzVkMjc1ZGRmMTQwM2E2ZTJkZWM3MDZlNWM1YzNlZTZlZmUzZjggbGVnYWN5LXRydW5rCis1OTUxMCAxMTU3MDY4NDYyYjUzOGVjOGJhMDY0YjM5N2UyNzcyNDNmYzVmMGNmIGxlZ2FjeS10cnVuaworNTk1MTEgMDZkMTIyYjRiZmZkN2FlZDhiYWU0NmVjZTU3OGE1OGI3NDlkNDAzNyBsZWdhY3ktdHJ1bmsKKzU5NTEzIDJjZTUwYTI2MGY1M2Q0MjNiOTYzMWJlNGYxNmM0YjI4NjBiOTBjNTIgbGVnYWN5LXRydW5rCis1OTUxNyBlNzBhY2JmMjZjZGE4ODBlMzBjOGZhMjE4OGQ2YjY2YjBjYmM4OTNjIHB5M2sKKzU5NTE4IDMwMzcyN2M1OGI1MWUwMTRhNjM2OWRmNzE1ZWIwMTI2M2U0YzI0MTggcHkzaworNTk1MTkgMDQzY2E5YjY2Zjc5NzIyMDA5MzU5ZGM3OWNlOWMyNWU0Njg5ZjQxMSBsZWdhY3ktdHJ1bmsKKzU5NTIwIDYxOGNlMjgxYTU1Zjg0NTIxZjZiMmE0ZDk1ZDllOWU5YzNmMmI4NjQgbGVnYWN5LXRydW5rCis1OTUyMSA0YzBlYjU4NzQ4MmY2MGNhMjExZGNkODJjNmUyNDA5MDQ0YmRjMjg3IHJlbGVhc2UyNS1tYWludAorNTk1MjIgYWFkOTBlYmJmYjUwNGJkNTgzNjNlNzZiODdiOTU2ODg4YWViMTkwZCBsZWdhY3ktdHJ1bmsKKzU5NTIzIGE2NDlhYTUyYjA3OTkwNTAwMTNhYjIwNDFmYzZiMzQwZDk5NmM5OWMgcHkzaworNTk1MjQgZWUxMTc0NjIxMmIyYmQyNWU1ZmI4ODViMTZmNjA2ZDdiMWFkMDBkZCBsZWdhY3ktdHJ1bmsKKzU5NTI1IDVhNTBhNWI1NzBiMDJlNmYzNjJiYjZlMjM5ZDA2NGZkN2YwODFkNDMgbGVnYWN5LXRydW5rCis1OTUyNyA5YjQwYWQwNTdkNTllMjA3Y2FmNTE3YjIwMjljMTAwODcyOTVjZGZjIGxlZ2FjeS10cnVuaworNTk1MjggMjExYWJjZmI0OTI4YjJjMTcxZDVlMjhiYzkwMTk1ZWEyNjI3MzExMyBsZWdhY3ktdHJ1bmsKKzU5NTI5IGE0NjM3NDJmYTQxMWI4OThiMjJlOGQ5ZDRjNzAwODM5OGM5NGVhYjggbGVnYWN5LXRydW5rCis1OTUzMCA3NzkxYTVlYTE1YzM4NGVlMmU1MzcxZjY2MmFmMjU0MDZmMzllMjJmIGxlZ2FjeS10cnVuaworNTk1MzIgZTk3ZjEwNWQxYzgzNDBmY2FiYWZiMmIxMWFlY2VkMzVmNWRhZjI0OCBsZWdhY3ktdHJ1bmsKKzU5NTMzIGExNDQ4OWY2ZGI2ZjkyYjg3NjNmNzkwMTY3YjdjMGMzODIxN2FjNGEgbGVnYWN5LXRydW5rCis1OTUzNiBhMmQwYzZhODg5MDk4MDEwOTU2NDEyYTE2MjZkNWI2OGMxZDE3NTFiIGxlZ2FjeS10cnVuaworNTk1MzcgMGE1NDQ1MjhkYzlmNWQ3Nzc2NWY2Y2MxMzQwNjdjMDI3ODlmMGRlOCBsZWdhY3ktdHJ1bmsKKzU5NTM5IDA1YzUwMWE5NTMwODc1MTFmMTViYWEwZTFkOWNlZjdjOGNlYzE0NTIgbGVnYWN5LXRydW5rCis1OTU0MCAwOWY3NDMxNmQ1ZmI1NTgwYTlmNmI3ODBhNWNkMjdjY2UxZDA4MDYzIGxlZ2FjeS10cnVuaworNTk1NDMgNzVjNmJmZDNiMWYzMmVjMjE3Y2E3MzFlNWM1NTRmOWZmMzEwZmFiYSBweTNrCis1OTU0NCA0YTZjMDZhNzdkZWIxNmEwNzhjNDM2MmVmYzRlZDY3OTk0YjJlYmY5IGxlZ2FjeS10cnVuaworNTk1NDUgYzBmMmNmNDM4OWM1MDI4ODgwMWI3ZDhjMTVmMmNlYjRmMjM2MjA1YiBsZWdhY3ktdHJ1bmsKKzU5NTQ2IDExYjZmNWI2OGFkMWE3MjllMDdjOWEwODM5ZGI3NzlmNjZkZGQwMzQgbGVnYWN5LXRydW5rCis1OTU0NyA1NmYzNDJjODRlODcwNzVmZjZjOTZhNjc3NTZhOWVmODdjMzIxZDY5IGxlZ2FjeS10cnVuaworNTk1NDggMDdhYTE5MTcwYTY3M2RhNmIzZThjNGM2NmJmZDg2OGIyZjkwYzBlNCBsZWdhY3ktdHJ1bmsKKzU5NTQ5IGI1YjMwODBiMzYwZmRlYWU0M2FlYTgwN2RjOTBhNjNjNWIyN2QyNTQgbGVnYWN5LXRydW5rCis1OTU1MCBlYWIwMDJiOGUxN2U4ZTJlODQ4NzY5MWQ3YmY4MDkxNDA3MzZlMGJkIHJlbGVhc2UyNS1tYWludAorNTk1NTEgYjU5YzMyOGJmYTYyM2UwZjk2NjRhOTYyN2I5NTA2NWE5MmFmMzE3MyBsZWdhY3ktdHJ1bmsKKzU5NTUyIGE5OTEyOGY2Yzk3ZGYzOTMwZmMzODk5NmIwN2EyOTcwOWQwZDNhNWIgcmVsZWFzZTI1LW1haW50Cis1OTU1MyA3YWMxMTdiM2JlMzdlYjdhZTMyOTcwNzg3ZTYzMWIyMmFiYTA0OTk0IGxlZ2FjeS10cnVuaworNTk1NTQgMTVmYmU3Yzc5Mjg0OTczOTE3NzExNjMxNTBmZDBlODlkYjYzMTk2YiBsZWdhY3ktdHJ1bmsKKzU5NTU1IDk1ODU4MTA5ODE1MWFiNzYxYjYxZmZjOTkxN2U2MjYxMDk1MDgyODMgcmVsZWFzZTI1LW1haW50Cis1OTU1NiBkYzg4NGI2MDUwZDQ1ZmI1MzA2YjUxN2E0YzM5MTUzZDA4MDk4MDcwIHJlbGVhc2UyNS1tYWludAorNTk1NTcgZjhkMGZhZmZjZTg4NzZmNTU0YmY2ZTE4NWNkMjllNzAzYmRhNjFmZCBsZWdhY3ktdHJ1bmsKKzU5NTU4IDFkNjlhYWJmNmY3ZjIyNzQ2YjRjNzIwM2FmNWM5YjAxOWQyMmUzMmUgbGVnYWN5LXRydW5rCis1OTU1OSBkNTFiMzljMjE2MGEzYjg1NWY0ZjI2NWM0MjBjNDY0MGQ3ZjU3NGRhIGxlZ2FjeS10cnVuaworNTk1NjAgYTI4YWM5YjY3YmVkYjU2YWExZTI0NzM4MThjZmMxMjk4ZmUxZTFkOCBsZWdhY3ktdHJ1bmsKKzU5NTYxIDYxNmZlYzBlYjUxNGI2NTEwNjBjNDA5YTM5MjhkNGE5YjA1Zjk2YjIgbGVnYWN5LXRydW5rCis1OTU2MiBlMmVmZmVjOWQ1YWQ3Y2YwOTZmZGM0MGM2YmQzNWFhNWNiMWVmZTNmIGxlZ2FjeS10cnVuaworNTk1NjMgNGRjMDE0MDJkNzhhZmUyYzliNGE0YmQ4MDA0ZWIwOGUyNjQ3MzM1ZCBweTNrCis1OTU2NCAyNjM4NGI4MTgwYzdhNTVjZDZhMmVkNDQxMDdjZjRlMzM5MDI1ZWM2IGxlZ2FjeS10cnVuaworNTk1NjUgODZhMjY3OWRjYTQ2NGEyODRmZDAyYjgxNjQ2ZjI2OTIwNDlhMmNlOCBweTNrCis1OTU2OCBmN2JjNzkxMTJiY2ZhODliYmVhYjAzNWQ4YmNlYTQzZTgyZmU4OWQ5IGxlZ2FjeS10cnVuaworNTk1NzIgNjMxNGI5ZjhhN2UwM2YwYzU3ZTk5NTQzOGE0OWQ4OTFjZmFkMGQzMiByZWxlYXNlMjUtbWFpbnQKKzU5NTczIGIxMzQ3YzY4ZDQ1Njg1YWUyYzgzZjUyYzIwOTI4OTQ2NjgxZWYzOTQgbGVnYWN5LXRydW5rCis1OTU3NCBiODliMDMzNDM3MmJhODNhYmY0ZDJmYzI0NGFjMTZiZTNkZjk3MjgwIGxlZ2FjeS10cnVuaworNTk1NzUgNTFjMTc1Yzg2ZjM2YmIzYmVkMTMzYTFiMGExNDhmM2UyODE5ZTVjZSBsZWdhY3ktdHJ1bmsKKzU5NTc2IDE3NGUwYmNiMmMzYzEzMmEyNmM5ZjA0ZDNjZDYwZmQ5ZjdkZjFjZmEgbGVnYWN5LXRydW5rCis1OTU3NyAwYWQxMmM3OWFmMTg1ZGY4MzhmMjE2Zjc3NmU3NDQzZTFjMjM5MTcyIGxlZ2FjeS10cnVuaworNTk1NzggYmI3MTZlYmNiMDgyYTFlNzk0NDJlNjI1ODEzZmExNjNiYzQ2OGQxYSBsZWdhY3ktdHJ1bmsKKzU5NTc5IDhkNGQzMzUzNjk5NTBjMTIwMmIzM2ZlOWE1OGQ1NmRlMTVkY2E2MjIgcHkzaworNTk1ODAgYmFkNTVhNTg1OTU5YjExZjkzNDFjOTZmNjE0ZWFiMWE3NTU0NWVjMiBweTNrCis1OTU4MSA1NWRhZGM4YjY4ZmMxOTQyZmNlMzZiZDczZTQ4NTJmYjZkODljYTA4IHB5M2sKKzU5NTgyIDIxMGM1MDdkYWM5OTYxODQ4MjE3ODFjYjEzYWI4ZmVlYjljOTMyZjMgbGVnYWN5LXRydW5rCis1OTU4MyA2ZWEwZTE1Y2U1NzM2ZGY3NmRhNTFiMjVhZWNkNDNmZmY3YzMxZDY0IHB5M2sKKzU5NTg0IDhkZWFkNmY4MWJhZTAxYmU0Y2QzNGJjOWI1Yzk0YzViZDNjOGYwNGIgbGVnYWN5LXRydW5rCis1OTU4NSA4M2NlZDQxNzdlYWNjNDkzZWI1ZDU2ZTRlMGQwYzI0NzFkZDgwNDBjIHB5M2sKKzU5NTg2IGVhZWZiOTNiNWVkNDQzODQwNmZjN2Y4MGExMGFjMDM1MmNiZjVhZWYgbGVnYWN5LXRydW5rCis1OTU4NyAzMmRkOWI3NzczYzNjMjFkMWY1MTZlYWVhOGZmOTgyZGM2MDQxYjYyIHB5M2sKKzU5NTg4IDQ0NTQxMDc0NGZkNjM3MzU5NzEzZDBkMjMxNzZkOGFiNDk1YmJiMzYgcHkzaworNTk1ODkgYmNlNzBhNDc3ZjFkYTNkYTM0OTNiZWI0Y2RjZDVmYzdlMzljZTBmZiBweTNrCis1OTU5MCAyYjAzY2FjYzFiNmE0ZTFhYjU4MTI5YmViZjBjNDU1MmM5MThiYTI0IHB5M2sKKzU5NTkxIDk1N2JhYTM3Y2UwZDRmNGIxNWYyN2JkMGI0MzA0MWZmZWU1ZjA4ZDYgbGVnYWN5LXRydW5rCis1OTU5MyBjOGQzMTI3OWZjZGNiNmE3MTJhOWEzNTYwNmY2ZjJjNWJmMzFjNWYxIGFsZXgtcHkzaworNTk1OTUgMjc1MGQ1MzFmZGMwMjNkYmRiNDAyZGI2MmZiMTljYzgzZjRkYTczMyBweTNrCis1OTU5NiA4NjM2OTJkYzQxMWVmMDFmMGM2NDIwMmI1YjE1YTQwMzhhZDZjODM4IGxlZ2FjeS10cnVuaworNTk1OTcgNWY1OTEyM2U3ODFmZjY0YzU4MWEzZmVlYWVkY2FhOGNlYzg3N2M5NiByZWxlYXNlMjUtbWFpbnQKKzU5NTk4IDFkYjYyNDNlOTNmMjliZDJjMDE1OTg5ZWNkOWZmMTJhMzM1ODA4NGMgbGVnYWN5LXRydW5rCis1OTU5OSBkYjY3NTIxMWMyZjc1MzExNjJmZDc4NWNlMmY5YzA5Zjg2NWQxOWFmIGxlZ2FjeS10cnVuaworNTk2MDAgYjliZTExN2IyODJjMzdiYjM1Y2E5MjAyMjViOTVjYTgzYTY5NDU4MSBsZWdhY3ktdHJ1bmsKKzU5NjAyIGVkYjZhYTYyNzUzYmM3OTA3ZmVmM2NlNGYzMzY2MTI5NTk5MTNiZTIgcHkzaworNTk2MDMgMDg0NjhhMjYzYTk1ODE4ZjliMGJmN2E5NjZmZjMyZGIwNWZjNjdlMyBweTNrCis1OTYwNCBlYjY5NWM1OTFlNzA0YmE0OTczMWJhOTcxNjdiNTZkZWQ2ZjM2Y2ViIGxlZ2FjeS10cnVuaworNTk2MDUgNzFiYjcwZjYwOTdiODIwMDRjZDE2ODdkMGQ1ZDQ1NWE3NjUyMzM4NyBweTNrCis1OTYwNiAzNjI1MjM0YmYzZDJlZDM2ODAxY2EwYzY0ZWQ0ODU0ZjA1MzQyNGFlIGxlZ2FjeS10cnVuaworNTk2MDcgZGEyYjEwNWIwYzUyM2Y0ZmEzOTJhYWNiYzM4M2UxMDNhOTBhNjVlYiBweTNrCis1OTYwOSA1NjcwMTA0YWNkMzk1NDk1MWNhZTJmMzJhOTlkMTk5ODkyNmE0MWEyIHB5M2sKKzU5NjEwIDdkMmRhMWNkODBhMTFiYjZmNTQ4YzY0ZjI2YWY2ZTQ1MGQwMzA0M2EgcmVsZWFzZTI1LW1haW50Cis1OTYxMSBmMjkyMjczNWZiN2FiMjllMzAyYjQ5OTNhOWM2OWI4OGE1MjQyNDA2IGxlZ2FjeS10cnVuaworNTk2MTIgYWUwZjJlYTA0MDlmNDQwMGRkMDUzMTEwMzhhMjA5ODRhN2M5NGI3OCBsZWdhY3ktdHJ1bmsKKzU5NjEzIDFmY2YxZTZkOGJiMWRlZDk1YWJmNTdjY2YzOWUwYmI4NWQ5ZWFiYjcgbGVnYWN5LXRydW5rCis1OTYxNCA4NjM1OGI0M2M4YmIyNWMxYjkyYTFmYTFkZjg1ZmI5NjM5MjJjOGI3IHB5M2sKKzU5NjIwIDk1Y2YzZDUzY2FlMDAxYmU2YmNkODQzMzY1MjQzZTUwZTQwZGY4ZjYgbGVnYWN5LXRydW5rCis1OTYyMSA4M2ExMzhmZGZkZmE5ODE4YTU0YmJlMjIyODU2OTZmMDMxNmZlZmM3IGxlZ2FjeS10cnVuaworNTk2MjIgNzQyZDY1OTYxYjFmYTZjYzRiMzk5MmE3MWRkMzk1NmRmN2ZmZDljMCBsZWdhY3ktdHJ1bmsKKzU5NjIzIDM3MTVmMDM3NGY2YWU3ZGMxODllMmExYTU5M2IwZTM0OTNhODhjYTggbGVnYWN5LXRydW5rCis1OTYyNCBhNjMxOWFiNDllMGEzZmJlNDI4ZjdhZWQzY2ZhNzlhZDJkOTQ0ZWNiIGxlZ2FjeS10cnVuaworNTk2MjUgNjU1NmYzZjIyYzE5ZjFiYmVlMzk1YjU1MDkxMGJkODQ4MzdmYzAxYSBweTNrCis1OTYyNiBmMDVhYzE0NTExZmY2MmYxNTkwNTJhNzEwNzlkNmJlNjcwZjJlMmYxIHB5M2sKKzU5NjI3IDFlYjQ5ODIzN2JhNWI1OGQxYWJiYTEzMDcwZjIyNDY2NGY5NzMxZmEgbGVnYWN5LXRydW5rCis1OTYyOCA0NDZlOGI2MDdiZDNhMDBmM2NmOTZhYzMxNzcyYmEyYTkxNWJkODg3IHB5M2sKKzU5NjI5IDQxYmZiZmMzNmNmNzI2M2ExMzkzMDEzMzQ2Nzc3MDE3NDAxMmYwYWEgcHkzaworNTk2MzAgODFiM2FjNTkwODljMThhNDFiZDkwNWQ3YWIxZTQ2ODgxZmE4YmNhZiBweTNrCis1OTYzMSBhY2I2YTRiMmMwN2YzMWViNmUwMDg4MjU5ZTk3OTI4OTlhNjM4Nzg5IGxlZ2FjeS10cnVuaworNTk2MzIgNDI1MTg1M2ZhOWI5MzQ4YjJiZWY5NzJlZWJiY2Y0NmJjNDE5YTM1YiBsZWdhY3ktdHJ1bmsKKzU5NjMzIDNlZTVkZTE3NmU3ODUyZWQ2YmU4NzQyYjA2MTU0ZmJhOTUwYTcyODkgbGVnYWN5LXRydW5rCis1OTYzNCA3YTg2YjIwYzViNGIxZDNjNDMzMTUxN2ExODk1OWU4ZTA4MTUwNWViIGxlZ2FjeS10cnVuaworNTk2MzUgZWIxMjA3NTEzZWU3ZGVlOWE1N2M1N2U1ZjAxZWMxYmJkMTI2OTQyNyBsZWdhY3ktdHJ1bmsKKzU5NjM2IGRkYTI5ZTcxMjgxNTA2ZjFkMjIxOGE2ZWVmMjQ3N2NlMmIwNGYxYTAgcHkzaworNTk2MzcgNDZkNTQwMTFlMWU1NjNjNGMzODc4ZWM4M2MxY2QxYmUwNzk3ZTI1NSBsZWdhY3ktdHJ1bmsKKzU5NjM4IGUzNjZjNDQ5NDhhMzE0MWM4Y2IzNTZmNDRjZTg1N2QwYmU5YmU2ODAgbGVnYWN5LXRydW5rCis1OTYzOSA2MDdlNjhjYjA5NDhkNzA3YWJjOGY5MzZhN2I3Yjc0MDNlYzZmMjI2IGxlZ2FjeS10cnVuaworNTk2NDAgOTM4MGQ1ZGE3NzE2OGUwZTk3YWYyNjIwYzcyMjg0N2Y5MWQ5YjkyMCBsZWdhY3ktdHJ1bmsKKzU5NjQxIDkwMWY3MGRiM2IzNDA0MDA4ZTgyNDA4YWQwMDUzOTIyNWRhYzViODcgbGVnYWN5LXRydW5rCis1OTY0MiBlZWUxYjc2YTk0ZTAxMThhMDZiY2NlNjZlMGIzMzM3MjNjMDM0ZGViIHB5M2sKKzU5NjQ2IDY1MmY3YWI1OTE4YjJmN2Q5Y2FkYWYwZjRjMmNlNDRkZmIxMzdkZDkgcHkzaworNTk2NDcgM2ZmNzc4YTM1NDEwNDhiZmU4ODA5MDE2ODE3MzI3N2QwN2QxY2ZjMiBweTNrLWdyYW5kcmVuYW1pbmcKKzU5NjQ4IDliMmUyNTUxYWZiZTM3ODQzYWQ5ZDdlNjE3NWEyZjRiNmRmMDgzYzUgcHkzay1ncmFuZHJlbmFtaW5nCis1OTY0OSA5NGEyOTM3MzQ5M2JkMTAwNGZjZWZmNTBjNDBhZTk3YjEwYWY1ZmUyIHB5M2stZ3JhbmRyZW5hbWluZworNTk2NTAgZjY3YjJlODNiMzQ3NWRkZGY5YWJlYTJiMTQ2YTg2ZDU4ZWJmOTVmNCBweTNrLWdyYW5kcmVuYW1pbmcKKzU5NjUxIGRiMGM4YjQxZGRiMGQ1ZTRjMjlkOTdiMDBmOGU2NGUwZDkxY2M0MDkgcHkzay1ncmFuZHJlbmFtaW5nCis1OTY1MiBiOTg4ZTRkMzVlZjNjZDBkNjVjYWFkZGU1ZjA0ZWMyZTNmNTNkOWJkIHB5M2stZ3JhbmRyZW5hbWluZworNTk2NTMgYTFmZjJmYWVkYzZiZThmYmVkNjZjYTc5NzhhZTY1ZDFkNGE2YmI5OSBsZWdhY3ktdHJ1bmsKKzU5NjU0IGQ5YTRhNWYwMTIxZTE4YjFkZThlM2ZjNjQ0MTAxODM5MjRhYmIxMjcgbGVnYWN5LXRydW5rCis1OTY1NSA2YzBjNTNiOWYzN2I0Zjk5NDcxZTYyOWNjNDkzNmI3OTIxZTc5NGEzIGxlZ2FjeS10cnVuaworNTk2NTYgMWE1NDhhNjU0YzFhM2U2OWUwZTUwNTU0NDE2MGFmNzFkZTc1OGYyNSBsZWdhY3ktdHJ1bmsKKzU5NjU3IDlhYjMxZmEzNmZiNTJmYzEzMmM1N2I5ZjQ2MzA3MGFiNDIzOTE2MDIgbGVnYWN5LXRydW5rCis1OTY1OCBmNjQ1ZTA3ZDg3MGFmNTk2YWYxY2UwZWY3MWNiY2I3NzBhZDA5NDI4IGxlZ2FjeS10cnVuaworNTk2NTkgZjBlOWMzZDE2NzY2ZDI0NmFmODUwMDAwY2ZjZjU0ZDViMDVlOGIwYyBweTNrCis1OTY2MCBkYTMwODc3Zjk3Nzk5OTQyMGRkOGYzOGNlMzQxMTJmZGM3ODkxOTNkIHB5M2sKKzU5NjYxIDA5OWExN2UyZDJiZDQ5ZjM0YmFmYWYxNjQwNmNkYjliOWFjZDhkMzUgbGVnYWN5LXRydW5rCis1OTY2MiA2NmJlYTkxMzI0Y2Q5MzM3MGZkMGM2NGFkYzUxZTk0MmQ1YjhhOTVjIGxlZ2FjeS10cnVuaworNTk2NjMgMWU2ZjI3YjY5NzNjYzVhMDY3MmUzYmU5Y2Q4YzU5NWQ4YjE0ODQ3NiBweTNrLWdyYW5kcmVuYW1pbmcKKzU5NjY0IDg5OWZlYWQ5ZWFlMjFiNmEwZjk5OGVmMDQzYmRhMzhmZTAyOWFjMWYgcHkzaworNTk2NjUgZTkwN2Y4MTRkOWEzMDcxOWM4YjdiNmM3YzBhYzFkYmI2YjU1ZWJkYyBsZWdhY3ktdHJ1bmsKKzU5NjY2IDY2ZGEzNzdiYTgxMDc4OTMzMmMwYWRkMmIwYzQyNmFhYWFhN2VjMzAgbGVnYWN5LXRydW5rCis1OTY2NyA2ZTkzZDJkNmViMjgwMWRiYmQxZjQ5MGJlN2JiOWMyNzFmZTUzMmYyIHB5M2sKKzU5NjY4IGU5ZjQ4MGI0YzEzM2NmNmU5Y2U1ZGI4Yjg4N2EyYjNmYzg4ZWFkMmYgcmVsZWFzZTI1LW1haW50Cis1OTY2OSA1Y2QyOGYwMTBmYzcxYmEwYWM5NzAyM2MyNjJkOTI5NzY2OTk3MDNiIGxlZ2FjeS10cnVuaworNTk2NzAgNGFlMzAwN2ViMGY0NzE2MDRlNWUzY2M0ZDYxNjczNzY2MWE0ZDRjZiBweTNrCis1OTY3MSA0Zjk3MjNkOWNhMzIwYWY2N2U5ZjYwYTJjMTk3ZGEyZTZmZGZkMzBlIGxlZ2FjeS10cnVuaworNTk2NzIgODM4NmVlZGEyMWM4ZTM1OGY5YTRlNGFiMDNlZGViYWE2YjFkMTk5MCBsZWdhY3ktdHJ1bmsKKzU5NjczIGEzZjE4Njc5MGZmNmUwOWFhNDAyYzhjNGViMThhMTlhZTk0ZTdmZjcgcmVsZWFzZTI1LW1haW50Cis1OTY3NCAxOGExYmM0OWE2OTZlMDVkZDRlNjM1Yjk1Njk1MTI1MzYyNjM1MTUwIHJlbGVhc2UyNS1tYWludAorNTk2NzUgNGMwNTZjMGEwYjlmNTY2OTlhNzk2MzUzNjcxMzdjNTg1NmU5MmVjZSBsZWdhY3ktdHJ1bmsKKzU5Njc2IDk2OGJkYTgxZTZjODBiYTVmZmZmMTVkYWM3Nzg4YWJiODZiN2IxOWYgbGVnYWN5LXRydW5rCis1OTY3NyAyN2U0ZTUzMGNmMmY2ZjA2OTU3YTVlNTI5Y2NlZjVjNmM3YzY3NjYyIGxlZ2FjeS10cnVuaworNTk2NzggMGNiZTk0YmVhMmM3ZWY2MTBkZWE3YjA1ZDFiYWI5ZjA0YWY5YWY0NCBsZWdhY3ktdHJ1bmsKKzU5Njc5IDYyMDhiMTdkMGRiZWRmMGRlODJkOTBkMGQ5ZDA0NTg0MTdkMGRkOTEgbGVnYWN5LXRydW5rCis1OTY4MCBiOTFjYTg3ZTZmMzI3MjE0N2Y5NGFiNjVjZWE3NjhiMjQ5NDIwMzA3IHB5M2sKKzU5NjgxIGZhMmY3MTgzYjFhZmM1NTNjMTdiN2U2YWU1ZDMzODI1YThhMDFmYzQgcHkzaworNTk2ODIgYzczMjEwZWE2MWM4NjUxNmVlZjAyMmFiYTg4Yzc4ZDFhMGZiMjk3NiBweTNrCis1OTY4NSAwMzZiMDBkYzk3NjdmNzVlMjMwMDVmNDNhNTc4ZWQyNTQ5NDYwOTFjIHJlbGVhc2UyNS1tYWludAorNTk2ODYgNTNhYzNmYzY5Yjc4YjFmZGUwODI1ZmYzNmI4YzQ2ODRiNzFiNGRkNyBsZWdhY3ktdHJ1bmsKKzU5Njg3IDhkNjllZGQzZDI5MDI4N2U5ZmRlNWI3ZTliOWE1MWE0MDZlZjFlMWYgbGVnYWN5LXRydW5rCis1OTY4OCAxNzM1OWM5YTRhN2QyN2ExOGEyMzZjYTY0NTNmNDM5ZGRiMzM5YjYzIGxlZ2FjeS10cnVuaworNTk2ODkgNWUwMTcwZDNjNGRhNTQ0YzlhMTdmMWE2ZGQzYmE2Y2YyNzUxM2Q1MSBsZWdhY3ktdHJ1bmsKKzU5NjkwIDk0NjI5Yzk1OTY1YTExODRmMzNjMDgyYzgxZTFlMWEzZTQ1ZTM4MzYgcHkzaworNTk2OTEgY2YyNjY3ZTJiYTJmNWUyZTQxNzdjY2EwMWI1ZWNiNWQ5ZTMwMTVkOCBsZWdhY3ktdHJ1bmsKKzU5NjkyIDUxNzFiNWFlNjg4YTIxN2I5ZWM4Y2NiN2EzZDA1ZTY4OGRhMjFkNTcgbGVnYWN5LXRydW5rCis1OTY5MyBkMWEzNmRkYmFhNDkyZTkyNjc5OWM1NDdjYmI5NTk4MGU4MjVjMjNiIHB5M2sKKzU5Njk0IGNiYTlmZjc2MDQzMDQ4ZWMyZGM3YjMyMDRjMGY1ZTE0NGIzMWFjNTMgbGVnYWN5LXRydW5rCis1OTY5NSAyOTg2YmI0MzIyMjIxNzIxYWJlNGJhNDg2OWZmZTBlNzBhZDg3MDZiIGxlZ2FjeS10cnVuaworNTk2OTYgZGUwMGFmMDNiYjRkNTY5NTU0YWRmOWRjYmQzMzMwY2I1OGIwOTdlYiBsZWdhY3ktdHJ1bmsKKzU5Njk4IGRjZGQxYmEwOTY0MTBlOTdjMTA5NDU4MjczMWJiZmM3MmFmNDJlYWUgbGVnYWN5LXRydW5rCis1OTY5OSA3NDJjYWY1MzU1NTc2ZmU2ZWRmMzYzOTFlNDQ2NzM0OGYwMWJkZDllIGxlZ2FjeS10cnVuaworNTk3MDAgYWQyYmNiZTgzZmRjMmZkMTRiNzU5ZDE1Y2VhY2RjN2ZkNmJlZTYxMSBsZWdhY3ktdHJ1bmsKKzU5NzAxIDc2NDNhNDNmMjVhMWU2OTdmMTZiMjNmMmFjZjhmMGM2ZGJmYTE3NzIgbGVnYWN5LXRydW5rCis1OTcwMiAxM2FhYmMyM2NmMmUyYzBlMjI1OWM5YjUwNjY4OTQ1ODE4ODk3NDM4IHB5M2sKKzU5NzAzIDYxYzE2NGYyNTQzNTY0MmMzM2FhNjY2MmY5ZjY5M2VkNDE1Yjk0YzcgcHkzaworNTk3MDQgNzZhODlkZDRhNTEyMzcyNzdiZTU1NTgxNDQwNTI1M2UzNTAyZTU1MyBsZWdhY3ktdHJ1bmsKKzU5NzA1IGQyYzFiYTA5OTI5MDgzYzgyNTY2NGUwYmQ4YTBkNGExNjlmOWQ5OWIgcHkzaworNTk3MDYgMzk4YjYyNDY3NTlmYzJkMmUzY2I0ZDAzYWY1ZTE4YTE5ZWEyOTU4MyBsZWdhY3ktdHJ1bmsKKzU5NzA3IDc3YzM3ZTMyZmUzNWI1YzA3MjU0M2VlYzk4MDEzODBmNmEyNjQyYWYgbGVnYWN5LXRydW5rCis1OTcwOCAxMjdjYzJmZWE5ZmI5ZDE1ZWMwNjY2ZGZiY2ExNzMyNGVkMzExNzFlIHB5M2sKKzU5NzA5IGRjZTI1OTQ4OTE4ZDBkOThhMDMzMGRkMDE4MmI5NTcyN2Y0NjJiZjQgbGVnYWN5LXRydW5rCis1OTcxMCA4MTY2OWZiYzg0NWYxMjQ5N2M2NGY2Nzk1MmE0M2E3YjNiYmQzZmZkIHJlbGVhc2UyNS1tYWludAorNTk3MTEgNWQ3ZDJhZjU5YWZlMWNhYjUyMWE2NmRlN2FkZjExMmJmOWQ3NDFmMSBweTNrCis1OTcxMiBiZDAyNThkZjMzMGVjNWRhZTliMTZkMmRmY2I4MmVmOGYxNzIwNWE0IGxlZ2FjeS10cnVuaworNTk3MTMgMjkyYzVlNTFhMGU1OTYxOGVmOGE4YjQ4ZTAwMzhiNzkyMWM0NjAxMSByZWxlYXNlMjUtbWFpbnQKKzU5NzE0IDkwMTkwODZmZDIwYTRkYjc1MmYyN2JhNjdhMzNmOGY5MDJmOWQyNWYgbGVnYWN5LXRydW5rCis1OTcxNSBkMDc3YjBjODkzYmM2NTYxOWFiNzMwNDI2NjY2ZTU3N2U4OGEyODUyIHJlbGVhc2UyNS1tYWludAorNTk3MTYgYmZlZDcwMjc3YWIzYjY4NjUzNzlmN2EzODU4OTM1N2I1ZWY2ZjRjMyBsZWdhY3ktdHJ1bmsKKzU5NzE3IDYxMzQxNzc1YmM0MjE3MjMxNWUxOGViMTQ0ZjdhNzQ1MTdkZTZlY2UgbGVnYWN5LXRydW5rCis1OTcxOSA4M2NhNzM1YTM5OTVhNzIxNTVmNmEwZmVmYzYwNjJiMmFiYmIxNDlmIGxlZ2FjeS10cnVuaworNTk3MjAgNjQ2Y2ZmMDk2MDM5YmFmYTVlOWNmMDBiYjdlMGJmYzgzNTgyZTkyYyBweTNrCis1OTcyMSA3M2JjMDAyMjUyYmZkNTgzYmY2ZmU1YzJkZDJlMWQyNGUyMDMyYTdjIGxlZ2FjeS10cnVuaworNTk3MjIgMzRjOTFkZjYwNTMyOTk5MDY0MThjOWM1YzlhM2UzZmFkOTQxMjZlMyBsZWdhY3ktdHJ1bmsKKzU5NzIzIDU3YzdkNDJmNmNkZWIxOGE3YWUyMzk2ZGQyYjc1NmRkNWQ5MDA1ZGIgbGVnYWN5LXRydW5rCis1OTcyNCAyMDM3ZjRjYWJiMDdjY2RhNjNkZTNmMjFlODFjNjM1MWQ1NmZiYThiIHJlbGVhc2UyNS1tYWludAorNTk3MjUgM2ZjYWY2Y2MzMDZkMWU0ZTZhYTlmY2YyMGZhZTc2MGYxN2VjYTRlMyBsZWdhY3ktdHJ1bmsKKzU5NzI2IDJlMmZhMjkxOTE0YzUzY2Q0ZDRkYmE2YmUyMTg2YTAyYzllZjkxY2YgbGVnYWN5LXRydW5rCis1OTcyNyBkY2M3Yzg2NWM3N2IxMDE3ZGE5MjAzOGYxM2EyMjRlZjBkZjc3NTRlIGxlZ2FjeS10cnVuaworNTk3MjggN2JiOTFiM2JhMGVjYzI4NTM1MDJmMGUyZTg0MDRiYzE1YzhjODllMiBsZWdhY3ktdHJ1bmsKKzU5NzI5IDVhMGNiZTM2YTYwMzc3OTVlM2EwZDVmMWYyYmQwYWE5ZGZlZmM4NGMgcHkzaworNTk3MzAgMzNhMGFlNzA2NzBmNDM2OTIzNGQ4ODk4NTUzMGU2OTAwZDI0ZWViNiBsZWdhY3ktdHJ1bmsKKzU5NzMxIDk0ZWVhZWViM2NlOTNkZjhkMmIzYTcxMWU3NjA3NjVkMjZmM2QwODggbGVnYWN5LXRydW5rCis1OTczNiBlNDhiNDY5ZDFkODY2Yjc3ZTViNjdiYjIwMGFjNGRmMjNkM2JlYTZhIGxlZ2FjeS10cnVuaworNTk3MzcgNzc3NDI5YTIzMDI2NjdmMWQ1NjMzY2Q4NDQyZThkMmQ5ZjNjODRhZSBweTNrCis1OTczOCBjMGMyMzY5Zjk0MjY3ZWExNTBjZTJlMmUyZmVjNjM3ZTc0ZjE4ZDhhIGxlZ2FjeS10cnVuaworNTk3MzkgOWNhZjhhN2IxMWE2Yjg5YzE3OTNiYzZmNGQ0YzA4Y2I4NWM5ZDRkNCBsZWdhY3ktdHJ1bmsKKzU5NzQwIGJiYzllOGMwOGNkNWVlZTM3YzAzNWU5MTFlMTA0YzE2N2M0MDU2YWMgcHkzaworNTk3NDEgZmM4MTg2YjUwMTQ1YjlkMmI3ZjJkMDE0ZDVlOWQ5ODVlMDg2YzQ1NSBweTNrCis1OTc0MiAwYzBhZWJjNjY1NmY5NGQyNTMzNDRjZTRhMTJhMDMzZjM4OTc2YjM3IGxlZ2FjeS10cnVuaworNTk3NDMgM2M2Zjc1NDNiZGQ2YjRhYWQ5Nzg4OTA2M2NmNGNiN2Q5NTYxOGI1MSBsZWdhY3ktdHJ1bmsKKzU5NzQ0IDAxZDViOGU3ZDEyMTIwNWVjN2IyMWE4YWYwZDczYTQ4ZWNiYzQ4OGMgbGVnYWN5LXRydW5rCis1OTc0NiAxNDI2Y2QxMzY3MzlmYmRlZTI3ZmQwNjc0ZWNiOTQ2ODNlMTRiMzY2IHB5M2sKKzU5NzQ3IDMxZTI5NGQwOGNlMWM5ZGYzZjI4NmM1MjMyODY3OWZjMTViMTZhYmYgcHkzaworNTk3NDggYmQ4NTg3OWVmZmE2OWRhY2RjOTk1MWM4NzVlZWY0NDY1ZjI0NzYzYSBweTNrCis1OTc0OSBkMDBkZTBjZjA0ZTI3NGYwMjNhMmQyNDFlZGFlMzg1OThlNjlhYjY2IGxlZ2FjeS10cnVuaworNTk3NTAgMGYxYzhiYWI4OThkYmQ5YmNkMzljNDY2MzIyMWRjZDM3Yjg1MDY3YiBsZWdhY3ktdHJ1bmsKKzU5NzUxIDlkOGI5NTNkNGFmNTJlY2FiZDA2ZDQwNGVjNmZiMjlmNDBkNGQ0YzcgcHkzaworNTk3NTIgZWRiYTBhMWI3ZWJlMTA4YzZiNzIxNTJiZDQ4OTc5NTU1NGQwZTZlZCBsZWdhY3ktdHJ1bmsKKzU5NzUzIDI0NGJiMzFjMDM2YmQ1NGQ3MzFlZWJiODAwMjgxYzdlMjg3N2EwMzggbGVnYWN5LXRydW5rCis1OTc1NCAxMTVkYTIyNjhjZDk1ODExMjNiNDk5N2E4MDdkMDc4MmQ0ZGRlN2M1IGxlZ2FjeS10cnVuaworNTk3NTUgOThjYzFjYzU3NTczY2MwNmMyYTdlNGQ3OWE1MGJjMzg4MDhjZWIwNiBweTNrCis1OTc1NiAwODEzOGJjM2MwNjBlYzZmMzQ2YjI5MTZmYzQxODllNzI5OGY3ZGE2IHB5M2sKKzU5NzU3IDRlNzRjMjc2NzhiYTE1Y2U5ODY0ZGU5OTJmMzA3ZDViMjY3Nzg3ZDEgbGVnYWN5LXRydW5rCis1OTc1OCA2NWZlNmU1NmQ0ZjhkNWM5YTI5MDJiZWU5ZGI4NTNkY2U4NjRiNDNiIGxlZ2FjeS10cnVuaworNTk3NTkgYWZiMTMzNzkwNmFlOGE1MmU4ZWJkYWI3NGI1Y2YxYzY0ZGNmNjY4OCBsZWdhY3ktdHJ1bmsKKzU5NzYwIDI4MWM5NDc5MTQyYTNlNGFiYTA2YjI2MDBlODRiN2JiMzRmNzc2OTIgcmVsZWFzZTI1LW1haW50Cis1OTc2MSA4YmY2YTlhM2E2MzI5YmUzOWNkMDBiZTgwNjUwNDg5ZGQ4NWYxOGIwIHB5M2sKKzU5NzYyIDU2YmE3OTFkOGIzNTkyMzU0N2JmMmNhYTM3YzM5ZDhhYjQ5N2Y3ZjEgcHkzaworNTk3NjMgMjg0OGZmYjlkMTdhNmMzYzliMzkyNjZhYTcwODIyNmY5ZGE1YjcwZiBweTNrCis1OTc2NCAzMjY4MWFlNmM1YzE0ODg1NWZiNzQ2ZDQyYzExMWM0YjgxNWI4NjQzIHJlbGVhc2UyNS1tYWludAorNTk3NjUgN2EyMDY1YjViZTc1YjMyMzVmNTkyODg1YmQxYWFlNzBlZTZmYWEwYSBsZWdhY3ktdHJ1bmsKKzU5NzY2IGJlZGQ4YmZkM2ZkMjY4MDQ3OTA0NDY1NGVlZWUyZjgxOTMwZDUwNjIgbGVnYWN5LXRydW5rCis1OTc2NyBmYWIyYWE2YjgwNzM2MzMyZGNmMTMwMTg5MGFhODQ3YzQ1NjE2ZTA1IGxlZ2FjeS10cnVuaworNTk3NjggZTViZjY2OTZlMmUzNmE3NGNjNzFhMGM4NGQ0MTEwZWU4NzA4MzcwOSBsZWdhY3ktdHJ1bmsKKzU5NzY5IDNiYzA0MDVkZTQ5MTVkNDg3YzQ1ZGVjYTNmNWJiZGY5ZjViY2JiMDEgbGVnYWN5LXRydW5rCis1OTc3MCA0MzIxYTVhYmQ2Y2UyZTJkN2Q2NjJkMTVmZmZmMGYzYTRiYWRhMDU3IGxlZ2FjeS10cnVuaworNTk3NzEgMTU1ZjVjMzZmZjkyOTU2MWZmMmI1NDc5MjJkNWI1ZGFmYWY4YWI2MCBsZWdhY3ktdHJ1bmsKKzU5NzcyIDc5YTM0MjQ4YTI2MmZiYTlhNDI3ZWFlODY0YmYyZjM2YmM1ODM2YTUgbGVnYWN5LXRydW5rCis1OTc3MyA2NjE5N2Y4ZDBmZGYwZjg3MjcwMzA2MzE1YzliNmI0YzczOGM2ZDQwIGxlZ2FjeS10cnVuaworNTk3NzQgNTA3ZTc2ZDdmY2RkNWM1YmY2ODViYTViNDViYjVjY2Y5ZGE4M2MwMiBsZWdhY3ktdHJ1bmsKKzU5Nzc1IDY0Nzk0YmE5ZTI1YWQ1YzFjOTJlZDMxNGFkY2Y2ODViYzdhOGVlMzIgbGVnYWN5LXRydW5rCis1OTc3NiA5OWY2MzcwYzZjZDA1ODRhNzUyMDIzM2MwMWIwYWU3ZTRkZGRjZDBlIGxlZ2FjeS10cnVuaworNTk3NzcgZDg5NzllNjQyOWU1ZmY4YWJjY2QyZDA0ODdlMTYzYjllNjU3YTI5NyBsZWdhY3ktdHJ1bmsKKzU5Nzc4IDZiM2FhZTVjNjliZjIwNDRlMjU5M2YwYzIyZjIwMzE5MGQ1OGE1MWEgbGVnYWN5LXRydW5rCis1OTc3OSBlZDc1OGY2YTk3YmIxMGNhYzUzOWM1YWIwOWQ4N2U3OTRiMzI4MmRkIGxlZ2FjeS10cnVuaworNTk3ODAgMDkwMDgzYTIzM2Y4ZTM2NmRlOGNjOWU2ZDZlMmZmMjlmMTE3YTkwYSBsZWdhY3ktdHJ1bmsKKzU5NzgxIGIyNDg4OGNiOTU1MzMzNTg0YzhjNTg5NDBmNzQwODYwYmI4OWNkNTkgbGVnYWN5LXRydW5rCis1OTc4MiAyYWNjNjUyZTU4YTE5YzZjM2Q2MDgxNzg0NWJiYjkyNmVlY2FlYjI3IGxlZ2FjeS10cnVuaworNTk3ODMgNDIwZmU2ZDdkNWY0NWU1ZjlmZWU0YTI0ZmNlYmZmZTJhNmQ0MjZkZCBweTNrCis1OTc4NCBhYzdkZWIxYzFkM2NlMDNhZTcxMDdkM2YzZDM0ZThiYzAxNWZhZmI0IHB5M2sKKzU5Nzg1IDhlYjk2MzYzZjFkNTljMmI3NWVjNTE0Y2Q5ZmI1NGVjZWI5ZDYwOTYgbGVnYWN5LXRydW5rCis1OTc4NyAxODExZWIwM2JhMDBjOGY5MzcxZTA1YWNlZTNmOTExZDMyZTQ3MGVmIHB5M2sKKzU5Nzg5IGZhMjUwYTU4MDk5ZmM0YWFhNzhhNTZlZTFmYmVjMjdhZjA3MTVhMjAgcHkzaworNTk3OTAgN2NiYWNhYTVmODg1OGY0OTQ3NWJkNTMyNGRiMTg5ZWFhNDQ1YmI5NCBweTNrCis1OTc5MiAwYzRkMjU4YTViMjVlYTBmZGE1OWM2NTZmZGQyYmMyZjM0Yzg3YzM4IGxlZ2FjeS10cnVuaworNTk3OTMgZDA0NjVlNzgyYjAxOTEwM2M4YTg0NWJiNTcxOWYyOWYzMDAzNjBkMCBweTNrCis1OTc5NCA2NzRjOWI4OWQxMjQxNDAxY2UyZmI1YzMwYzdlMzgwNGJjY2QyOGRiIHB5M2sKKzU5Nzk1IGI4ZTM0YmNkYmE0NTQ4Mzc1NGM0Y2VhMzA0ZTg0NDBiODJlODFmNzQgcHkzaworNTk3OTYgMTNiN2NhMDRiZDcwZTE0NjQyZWQ2ZDk3YjEwZTg1ZjU0YzM5OWIwZSBsZWdhY3ktdHJ1bmsKKzU5Nzk3IDk3NGYwMzIwZDZiM2NkOTMyMWQyYTkyYjZjNjA0YzhjMDUyMjZiNTQgbGVnYWN5LXRydW5rCis1OTgwMyA0MjY0NmE4NzI3NzJlZmFkYTA2MjA5MmNjM2NmZjE0MTQ1YzNhMDJlIGxlZ2FjeS10cnVuaworNTk4MDYgMDViY2I3OTBlZjYzMjRiZThiN2Q2ZjJhMDA2NDJkNmI1Y2MzYzBkMCBweTNrCis1OTgwNyBhODY5N2FmYmYxN2VmNWM3MmMwNWUzOWNkZjVjZTI0ZmJjNGEwYjlkIGxlZ2FjeS10cnVuaworNTk4MDggNDU1MzZkNTU4N2Q0NzcwMzI1MDFhMWM1MzY0NThmOWI0ZTRiM2VkMiBsZWdhY3ktdHJ1bmsKKzU5ODA5IGY5Yzk1MGU4ZjJlMGFlNmZhYjI5MzdlY2MzZDcyMmFiZGFhMWVjZjYgbGVnYWN5LXRydW5rCis1OTgxMCBiNmVhNTI5OTNjYWU1MGFlNjU2MDQzZmRlNzA1MDFkZjU2OTEwNWM0IGxlZ2FjeS10cnVuaworNTk4MTEgZjI3MDc0ZDE0N2Y0ZTE5OGE3YjMwODc5MmIxYjViYzhkNDU0YmQ2OCBsZWdhY3ktdHJ1bmsKKzU5ODEyIDZjNGIwY2M5ZjZjOTAwYmIyNWI0OTIxZTIxZmI3OTViZDZmODEyMjUgcHkzaworNTk4MTMgN2VhMjMxNTc4YjAyZGZhMDNjNzg2MzZlODNlNjBlMmE4ZjRmNWVkYyBsZWdhY3ktdHJ1bmsKKzU5ODE0IDNhOTQ0OTM1YzYxMGRhNGZjYzAyYjRiMTk4MjljZjU1N2MwODc2ODggcHkzaworNTk4MTUgODY0ZTY3OWEwZTg1MDgwNGJiZjIzZWJkMzRlZjA2OGI5NjZjMTcwZCBsZWdhY3ktdHJ1bmsKKzU5ODE2IDRkMjNmNWE3ZDRjOTYwOWMzMDM0ZmVjMzk0YzAzOGExY2I3NDBlN2UgcHkzaworNTk4MTcgMTljZTllZjM0YjYyMzNjYjM4MzU1OGNiYjc3YjI0YmM2OWNkMjZlNCBweTNrCis1OTgxOCBiOTg5NzdmMGFiYTFjNjU3YzQwMGViMWRhYWQ1NTkyMjJjYjhlZjJjIGxlZ2FjeS10cnVuaworNTk4MTkgYWM1MWNmZTVjNWM2Yjk4Mjg0YzM2NzQ0NDE4NmY3Y2NhYjU1NzM5MCBsZWdhY3ktdHJ1bmsKKzU5ODIwIGYzYzFmOWM4Y2U5ZjEwNmVjY2JmMWY0Mzc2YzJiMDAyMDQ1YTZhNjEgbGVnYWN5LXRydW5rCis1OTgyMSA3NmZjZWI1OGJjZjUxZDFlNzk5MzI2NGU3YjFjNWFmZDQ2ZmYxYjAxIGxlZ2FjeS10cnVuaworNTk4MjIgMDZkMTVkYTFmMTI1OGM0NDU0NTQ0MDMwMmJlZmJmOGMxNWFlMWE3NyBsZWdhY3ktdHJ1bmsKKzU5ODIzIDJjZGI2NjE2NzVmOWMwM2Q5YTk2MmQ2OGE3MTIxZTNjY2Q3N2Y0NDkgcmVsZWFzZTI1LW1haW50Cis1OTgyNCA1OTlmMjJhMzQ5YTI0ZmUzYTk5MGVhMWNiNTM4NzU3MjAwYzE1ZGNiIGxlZ2FjeS10cnVuaworNTk4MjUgY2RjMjg1YmQwZWZiNDRlN2E0OTA2YzFkYjNlMTExYTg5MjIyMThkZSBweTNrCis1OTgyNiAzMDVkN2QyY2UwNDcwMWI0MWNlMDk0ZTUwODNlMDA2ZTc1ZGE1MjA2IHB5M2sKKzU5ODI3IDEzMmQ5MDg0NzFjODM4YjkxMDU1Y2YzMDA0MTQxNGY1MDI2YjMzNWIgbGVnYWN5LXRydW5rCis1OTgyOCAwYWFlMTQ5NTBlMGJjMmJkMzdmMGY0NjFhMjQ3OGRjNTcxNmQ1OTBkIHB5M2sKKzU5ODI5IDNiM2FiOTI1YjI2MWU3MzRiNjRlM2QxZjA1ODgxNDM2OTYzY2U5NDkgcHkzaworNTk4MzAgZGI1ZTAxYzMzZWI3NjMzYzAxM2E1MTRkMjc5YWYzMjQ3OTg4OWI1NyBsZWdhY3ktdHJ1bmsKKzU5ODMxIGZkNTMyYTliMjgxMDYzODMzOTE4ODY0Y2VhZDc5NWNmZTY0YzZlNTIgbGVnYWN5LXRydW5rCis1OTgzMiA2YjcxNWVhODA0Mzc3NDY4ZmQ5NmUxNTRmOGEzOGI1YmEzNGM3YTQ5IHB5M2sKKzU5ODMzIGNmMzZlMDFlODNmMjBlNzQwZTkxMzViOWIzNmJmNDhkMDBkYTBjYWYgbGVnYWN5LXRydW5rCis1OTgzNCBhZGRjMTg1OTZhMTU3NTM1ZTBhZWRhODAzNTJhZjUyMTk1MjNlNmI3IGxlZ2FjeS10cnVuaworNTk4MzUgY2ExNDE1YzYxMDVmN2ZkMGRlN2JlMWNmZGYwZjU3MzNjZDZlYjBmNyBsZWdhY3ktdHJ1bmsKKzU5ODM2IDE5ZTFmYTc4ZDMzMDU0OWY0MmFjZDI0ZjI0MmNhNDVkNTUxZGM3ZDcgbGVnYWN5LXRydW5rCis1OTgzNyA1ZTAyNGU5MWVlMDY3ZDc1MWE5NDI5MDgyY2JlOWE2ZjEzNjdmMGQzIGxlZ2FjeS10cnVuaworNTk4MzggZTk3NTYyNjZlMGI5MzgxNDAzODQ4NDE5YjE3MGVlMjI5NmYyYWMzNCBsZWdhY3ktdHJ1bmsKKzU5ODM5IDZkNTIxNjAzZTA3ZGU3ZmI3ODhlZGE1ZThmOGM5NTQyOTJkOTZjNGQgbGVnYWN5LXRydW5rCis1OTg0MCBjNzVkMzYwYWI4N2IzODc2NjNhMTgzMmM0MmEwNTRhYjdhYzNiY2JjIGxlZ2FjeS10cnVuaworNTk4NDEgNzNlMWJmMTc5YTAxYWQ3ODI0ZmY1YWEyYjI5Y2UwNjhhNDU3Y2Q2NyBweTNrCis1OTg0MiAyMzZlNzUyNmFiZWFmNThmMDVkZmU5N2VkNWNjZTJmMmU5YWFhODkwIGxlZ2FjeS10cnVuaworNTk4NDQgNDJjZjU5Y2NjZTY2MmI3NTAwZjc3NGE5NGE2MWZkYmUzZDU3YzVlZiBsZWdhY3ktdHJ1bmsKKzU5ODQ1IGEyOTM4YzU1MjAwY2U0YTZkYzFjZDBkNTEwYTg5Y2VmMjQxZGUzZWIgcHkzaworNTk4NDYgZmI1YTYzMzBmNzFiMzk4ZmNlYjBlNDA1MjAyYTg4ODA1YmExY2MxNCBweTNrCis1OTg0NyBjYzg2OGZjZjUwNWFlYjU5ZTQxM2MyOTgxOTFhMzNjYTg2OWFkOTlhIGxlZ2FjeS10cnVuaworNTk4NDggYTViN2YyZDg3NjFkNWExZDJhYjI2ZTIxZjM2MDdhM2FlZjY5MmE3OSByZWxlYXNlMjUtbWFpbnQKKzU5ODQ5IDYwYjU0ODAxYjY0NjMyZTgwZGE0MTE0MTU0YWQ5YzQwNDc0YTExMjggbGVnYWN5LXRydW5rCis1OTg1MCBhMWRkZTY4MGU2OTQyMGY3YmQyYjgxMGYyOWE3Njg4MWZhNzM1ZWJiIGxlZ2FjeS10cnVuaworNTk4NTEgY2IyMmY4NzQ4ZGE3Y2Y0NTZiODZlYjJmNzBmNGJjMzFlOTJiNDU4ZiBsZWdhY3ktdHJ1bmsKKzU5ODUyIDA1N2RlNDZlYTE3ZTIxYTYwYzRiNjkwMjJlMzE4OTQ5ODgyMzkyODIgbGVnYWN5LXRydW5rCis1OTg1MyA4OGQ3NmI5MjA2ZTY2NzMyNmEzY2Y4MWRmMjhlYmM2ZjI1ZDU2MTExIGxlZ2FjeS10cnVuaworNTk4NTQgZDFhMWJhNTAyNTc5ZTllMjIyNTVhNzhkN2I2ZjhlMzBjODM2NzI0MyBsZWdhY3ktdHJ1bmsKKzU5ODU1IDc2Yzc2NWE3NGZiOGNiNDM4NWY5MDI3MDVmYWZiNjY0ZGUzZWZjYWIgcmVsZWFzZTI1LW1haW50Cis1OTg1NiA1ZmI5YjJmNmJhY2I3YzZiZTg4OWIwMDA0ZjljNmQ3YTExY2NhYmUxIGxlZ2FjeS10cnVuaworNTk4NTcgMDg4YjUwNzdjOTAwYzhkNDg3M2RkYjVlOTc5OTg4NzI3NmRkNjAyNiBsZWdhY3ktdHJ1bmsKKzU5ODU4IGY0NWVhZWRiOTIwZTIwNTVlZjM3ZTEyZmIxZDNiZWQ0ZWE0MDYyYzAgbGVnYWN5LXRydW5rCis1OTg1OSA5YTYwYmQ4ZjAwZDZhZmE5MDQyZmMyODIxZmUwYTI4YjYxM2QyYzAxIHJlbGVhc2UyNS1tYWludAorNTk4NjAgNzZjYWI4Njc4OTE2ZTRkNGE4MGIwMmFlM2QxOGYxNDhmOGQ0YTU5MyBsZWdhY3ktdHJ1bmsKKzU5ODYyIDQ3ZTc4YzJkMTZkZTBkNDMwMGU2YTdjMjcyMmY1MzZlODllYTUzMjYgbGVnYWN5LXRydW5rCis1OTg2MyBiN2QxYjYyN2E3ZDUxZTRkMmIyMmUwMDkxNzBlZGE1MzlkOTI2YjlkIHJlbGVhc2UyNS1tYWludAorNTk4NjQgOTRhYjU3MmVkNmRkZjM2MDgwMDYwMjc5ZDliNzFmMGZkMDNlMjdlNyBweTNrCis1OTg2NSAzMzQ0MDkxOTk2MTI0MzIxNDM5NmZkMjk1Mjc5NmM4YzA5ZjY5MzVlIHJlbGVhc2UyNS1tYWludAorNTk4NjYgYmY3YmJkOGRiMWE4MmQ3ODI1OWZmOTI1NGMwZjRjYmEyMzMyMjg4YiBsZWdhY3ktdHJ1bmsKKzU5ODY3IDVmNjQwZjhmOTJmNDhkNGRiZDJiODkzMzAyOTIxZWRkMGQxOTNjOTYgbGVnYWN5LXRydW5rCis1OTg2OCAxZDc0ZGQ4MjI4ZGIwY2M5NWJjNzAwMjNlYzNlOTJhN2NiY2U5ZDNjIGxlZ2FjeS10cnVuaworNTk4NjkgMTBlYmQwMjdjMjQzOTQyNWRjMTI1YjM0MmYxYWMxYzE1NDE5NmQzYSBsZWdhY3ktdHJ1bmsKKzU5ODcwIDUwODY5ZTc0N2U3NmU5ZTQwYTk2ODM5NTA0ZjdkYjViOGM2MTcxNjggbGVnYWN5LXRydW5rCis1OTg3MSA5ZjZhYTQ5ODQ5OGQyODVjMWExYWNkZDc3ZGZlNjk0MWEyNTU1MDM1IHJlbGVhc2UyNS1tYWludAorNTk4NzMgYTYwZjkyYmEwZDFlZDU2MzE1NTViMmMyOWFhMDU3MDdmM2IxMzA5OSBsZWdhY3ktdHJ1bmsKKzU5ODc0IDY3NzZkNmVmMjAxYTEwMzc1OGI0YmZjMTI3ZTkzOWQ1NmNmYjljZTcgcmVsZWFzZTI1LW1haW50Cis1OTg3NiBkYzlkOTViNzE3YzU3ZTNlNjFmNGRiMjllZGY5MGQ5NjU3ZWU1OGVlIGxlZ2FjeS10cnVuaworNTk4NzkgOWE5NzkwOGI0Yzk3ZWY5MWIxZDJkYjUxMjM2NGUxNzFmNTJkNzliZCBsZWdhY3ktdHJ1bmsKKzU5ODgwIGM5YjZiZTQ4MTY1N2RkOTYyODFjZDAyNjg3YTQ1MTYzMjcwNmFlYjcgbGVnYWN5LXRydW5rCis1OTg4MyBhMjlhZGMzYjBmMjY2YjYzNmM5NjJlNDI5YzE0MGEwYmJiM2MxODk3IHB5M2sKKzU5ODg0IGZhZTljZWRiOTE0NmJkZjE2MmJiODg3YmMzODM5ZDcxZjc1NWExNDcgcHkzay1pbXBvcnRob29rCis1OTg4NSBmYjI4NzQxNWFjYTBlNmZhNWQyYTMyOWUyOGEzNjA0YzJmMDEzNDMzIHB5M2staW1wb3J0aG9vaworNTk4ODYgYTkzZTBlODBjMThhMDE3MTA4MDE0ODdiMzFkZGU5YzBjOWE1OTM0NCBweTNrLWltcG9ydGhvb2sKKzU5ODg3IDc2YTQ2MWRlMTU0NDQ0MTBmZTE5MDVkNmFlN2E3YTczMTJiNzJkMWIgbGVnYWN5LXRydW5rCis1OTg4OCA0MjY3NmE0ODQwYjVhNzExMGFjY2M2ODJjNzZlYzQyYzYzMTc4OTc3IGxlZ2FjeS10cnVuaworNTk4ODkgYjQ0NmNkNjEzODhmMDViNWZkZDVlNjU3ZGQxYmFhMWYyN2I4NWQwMCBweTNrCis1OTg5MCBkOGQ3YTc4YzY0MjNjMWE0MTYyMmM1YjY3MDY5YjU2ZjA4MjEwNTVlIHB5M2staW1wb3J0aG9vaworNTk4OTEgODk2OWQ3NGQwZDIyZjMxOWM3YzQ1ZTY0MjU5YWQ3NDc3NTYxODc1MSBsZWdhY3ktdHJ1bmsKKzU5ODkyIGMzMTEzOTE0ZTY2ZTllMGQ2NjkzOWFjM2UxYTdmYzhhY2ZkMjI0MzEgbGVnYWN5LXRydW5rCis1OTg5MyBhZjZmMzQ1NjU3YjRiNzk0MWYzMWZkNGNlNjM5MzI0OGZhY2U2ZTQ1IHB5M2staW1wb3J0aG9vaworNTk4OTQgMjA1NzhkYjA3NjI5YTIwNDY2ZjU0ZjY3YmI4MzQwZjhiODJiYjIxMyBweTNrLWltcG9ydGhvb2sKKzU5ODk1IGRiYWZjZDgyNzk3OWUwOTdlMDlmZmVhMTc2MzQxZmI2ZDUyYjk3ZDQgbGVnYWN5LXRydW5rCis1OTg5NiBlNzUzZTMxYTBjOGYxNzk0MzhhMTlmZjc0NjkwY2VlMDc0MDNlYjQ3IGxlZ2FjeS10cnVuaworNTk4OTcgZGY4NTZlMGUxYjJhMDg5Yzk0MWRmNGMyYTMxNzMwZDc1NTU1ZDg1MiBweTNrLWltcG9ydGhvb2sKKzU5ODk4IDY5ZjQ5NTA4MjQxMjY3MjczNDg5MWY2NmUyMjhhNjI5ZGU2ZTA1N2QgbGVnYWN5LXRydW5rCis1OTg5OSA2MDEyNmFhM2I4MTY5NzcwZDc5ODQ4NWIyZjc1YmZlOWUxYjhlNWVkIHB5M2sKKzU5OTAwIDc4NTFlNzVmNTQzOGNhNDU5OGQzMDVjNmM5OWZiOTQ0MGZkYzBkN2EgbGVnYWN5LXRydW5rCis1OTkwMSA0MDNjZmNhOTg2M2ZkMmUzMDhiMDQ1ZTJhZjE4YzBmNmQyYWZjYTQ4IHB5M2sKKzU5OTAyIDVkZWM0YWRlOGZhOTUyODRiMDYwZTBjNTQzZjMwNDM2YTEwZDAwN2IgcHkzay1pbXBvcnRob29rCis1OTkwMyA4MDU4ZTE2ODIwZWY4NjBlNGM5MGM0N2UwNzBhYjNiZjc2Zjg5MDM4IGxlZ2FjeS10cnVuaworNTk5MDQgMzU0YmUwZGFmZTU0YjIyMmFmMjVhOTNkYzk4NWVmYmMyODdjOWI1NyBsZWdhY3ktdHJ1bmsKKzU5OTA1IDNjZDliODc3ZWFlMDlhMzViOWNjZDc5NWRlNzVkODM5NzI5YTQ4N2YgbGVnYWN5LXRydW5rCis1OTkwNiA3ODUyMzdmYTVmNDAxNDQ0YzMxZDYxN2RkYzA2ZTAxMGEzOWU4ZmE2IGxlZ2FjeS10cnVuaworNTk5MDcgNmIwYjVlZGZiMWI3ODVjMTY5MWM3Y2Y2OWQ1OTgyNzExYzQ5OWRlYyBsZWdhY3ktdHJ1bmsKKzU5OTA4IDA2ZjlmNTFhYjhjMDNkZGNiYjFkMjlhNjkzZDI2MGM4MTQzNmEyMDQgcHkzaworNTk5MDkgYmUwNGVlNGM0ZmQ3MzQ1ODY5Yzk4MDNkNWQxMGI4MWRmYTE5MmJhMiBsZWdhY3ktdHJ1bmsKKzU5OTEwIDJhZDNlMzVjNTgyNWMzN2YyOGI3ODgyYmFiZGEzMzM3NTM1YzgxNzEgbGVnYWN5LXRydW5rCis1OTkxMSBhZjNhMGNhMWFiNGEwMmJlMmE1OTMxODZhNDMwNDYzZGNiZjM3YjkxIGxlZ2FjeS10cnVuaworNTk5MTIgNjJmNmQ3ODBhMTFkZTAzNzM0NjM3NWFmOGY1ZmNiOTY2MmQ4YmFjZSBsZWdhY3ktdHJ1bmsKKzU5OTEzIDNjYzNhNTVkMTIzMzQ1MTNmYTczNmE1MDQ1NzNlN2I2MjE4YWVkYWEgbGVnYWN5LXRydW5rCis1OTkxNCA5NDI2MWYzMDI3YTU5M2RlZjQ0YTM1ODZkMTMwYjhkNjE0OGRiOWZlIHB5M2sKKzU5OTE5IDU5YTgyY2RmYTEzN2U4OGI4Y2MzNmQ2NTUwMzVjYTdmNGU5YjcwOTMgbGVnYWN5LXRydW5rCis1OTkyMCBhYWRjZGE3YTRiZjdhZjRlZTNhMDliNTAxMmU0ZjRhMmQ1NTY4OTYxIGxlZ2FjeS10cnVuaworNTk5MjEgZDhlNDM0MmMxNDVlNmI1YTg4YTE0OTFjNTRmMWYxZjE5ZGM2OTUyYSBweTNrCis1OTkyMiBlN2I4MjEwMWI5NzBmOGVjNWIxMGU1NWU5ZDlkOTE4MmQ0MmUzMjliIHB5M2staW1wb3J0aG9vaworNTk5MjMgNzk1NzlmYThkNzUyZjJiZmE5NDQzNDg0ZjRhNjc2MDFiNzdlYTY1MCBsZWdhY3ktdHJ1bmsKKzU5OTI0IGYwYjkzM2YxMjk4MjY3ZDhlNmNhMzU1MTM2MjgxNzljNzBiZWI0ZTcgbGVnYWN5LXRydW5rCis1OTkyNSBhMjIwMjExZjgzMzEzMTYwMjkxYmRmNWZhNzY2NTZlMjMwZjM5MDUyIGxlZ2FjeS10cnVuaworNTk5MjYgZDU4MjRmZGQ5YTE1ZjBmZDc2NjljYzc4Y2IxYzJjZDExOWE1YmU1YSByZWxlYXNlMjUtbWFpbnQKKzU5OTI3IDc3NmI0ZTA1OWY4MzZhMWZjMTI0MWNhZDczYmRkZTZiMWI4MzZmYzUgbGVnYWN5LXRydW5rCis1OTkyOCAzYWYzZmQzODg3ZWUyM2U0OTVjMjIyNTQwZmIxMTBlY2JkOGFiY2I5IGxlZ2FjeS10cnVuaworNTk5MjkgN2I3OTg1NDhhNGFkZTRkMDI2ZjVlOWQ4ZDljOGIyNjAzYmMyMzlmNiBsZWdhY3ktdHJ1bmsKKzU5OTMwIDdkYmMzZjQyNzhlYmQzNGZiNzFmMDQ4MGUyNjdjOWE4ZjA4N2RjODUgbGVnYWN5LXRydW5rCis1OTkzMSAyNzNkMzdiZjIzZDNiZTJkMzJhYzI4OGNhOThiMmVjZDBiNjkzMjYxIGxlZ2FjeS10cnVuaworNTk5MzIgYTU0Y2M0NzcyZTczNzM4MzViOTZjZTY4NmMyODlmY2FiNDAyZDhhMCBsZWdhY3ktdHJ1bmsKKzU5OTMzIDVhNzFkY2M3MWVmZjc2Mzk0ZDM1OTk5Mjc3MmEwZDlhMGQ5MmE3OTQgcHkzaworNTk5MzQgNTM1MTEwNWZmODA4YTMxNzBhNjNjNmVmN2U3YzhkODA5NWFiYmNlMyBweTNrCis1OTkzNSA0Y2E4YWNjOWJlZDcxNTQ4OTI3ZWE4Mjc1ZmU5Y2EwMGI0ZWRlYTU4IGxlZ2FjeS10cnVuaworNTk5MzYgM2Y2NWJjYzg5NjZmMjlkODkwOGUwZWNhZTE1NmVlOWRjMjU4OGIyMSBsZWdhY3ktdHJ1bmsKKzU5OTM3IGI2NzJjMDE1YzJkYjg0ZmY0Njc5NjMxMzY3MDUyOGQzMDdkMDRlNjggbGVnYWN5LXRydW5rCis1OTkzOCA5NDY4ZTYwNjM2MTczNGUxNWNjZmEwYWMwY2U5NThlNGI5YjkzNTRhIGxlZ2FjeS10cnVuaworNTk5MzkgYzczNzY4ZDk3N2E5ZjkyYmI5Y2RiOTA0NzhkNTcxY2FkMTk5MGQyYiBsZWdhY3ktdHJ1bmsKKzU5OTQwIDg5NGQyYWQ0NTAyNjllN2UwNWQ4OTk4N2YzZGQ2N2UxODA4ZGEwOTcgbGVnYWN5LXRydW5rCis1OTk0MSBmMmQ4MjBiNWFlMmFlNjQzNzA2MGJmMzg0MDkyNjAxYTk1OTRmY2YxIHB5M2staW1wb3J0aG9vaworNTk5NDIgYzI1NzYwYzIxMzk3YTFlNDIzOTBlMzM2NGFlZWM5Y2FhYjVhNTVlZSBweTNrCis1OTk0MyA0MjkzYTA2YWZkNzI3Zjc1MzYwMTVmN2RmM2QyYTFjMjcyZWM5YjkwIGxlZ2FjeS10cnVuaworNTk5NDQgMzg3ZDQ4YzNhMGIzZTdjMjc0MTg3MWIxOWExMWI3YjI3YzZmYThhMyBsZWdhY3ktdHJ1bmsKKzU5OTQ1IDkxOTI4ZDk5ZWJiMDkyNzA3YjQ2MmQ2Y2U4YTU0OWFmODFiNjUzYTEgcHkzaworNTk5NDYgNDI2ZmVmOGJhZGUyZGQ3YTg2YzhhNjhkMDBiNDA5NTE2NjhhYzdiOCBsZWdhY3ktdHJ1bmsKKzU5OTQ3IGI0MDk5NDFjN2E1MWUxMDA5ZGIxNDE4YzEwMjMzNTgyNzNkM2RiY2UgbGVnYWN5LXRydW5rCis1OTk0OCA3ZTQxZTFjNDZiNTdiMGVhNmEyOGVmMmFjOTZlY2MwOWFlMGMwNzI1IGxlZ2FjeS10cnVuaworNTk5NDkgOWI2ZDM0OGNlYzg3ZTRiYTRjMzBlM2E3ZDhmZDczZDQxNjIyOGMzYyBsZWdhY3ktdHJ1bmsKKzU5OTUwIGQ2NmU1ODM3YWE1N2MzMjJlMWRmZTYwMTMwNWMxZjVlOTQ2ZTZhNGQgbGVnYWN5LXRydW5rCis1OTk1MSAzM2Y2NzA5MDc1ZTgzYzhhN2U1YzJlNjNhMGYwMTJiMjhiZDRmZmU4IGxlZ2FjeS10cnVuaworNTk5NTIgMzIyYzIzOGE2NGU1MjczODVhMzU5NjdmNWZjZGM3ZTk4ODNiMmQzNyBsZWdhY3ktdHJ1bmsKKzU5OTUzIDYyZWFjZTY3ODBmNjU4Y2RlNTFhNjVhMWU1YTBjZTliNThkMmNkNzcgbGVnYWN5LXRydW5rCis1OTk1NCAxMTU0MTU4YTE5OWY3Nzk0ZjI1ODU1ZDllZjcyMWM0NzcxYzY1YmU1IHB5M2sKKzU5OTU4IDYyN2YyZTIyNzNiOTRmZTk4YmI5MWQ3M2UxOTlhNzRkZDkzMGExNjcgcHkzaworNTk5NTkgMDA1MDIxYmY1YWNlYzczYzMyM2VkYzQ3ZGE4OTllMzY2MzFiZTA2NSBsZWdhY3ktdHJ1bmsKKzU5OTYwIDgyN2YwNDUxNzM0ZmQ5NjY0NzdhZjNiYmNkNWVlZjU1YTdhNzc1NGUgcmVsZWFzZTI1LW1haW50Cis1OTk2MSA1ZGZkZWQ5YWQ4YTBjYzZkZmViYTc2ODUzY2E5ZTNjZDlkNzc0ODFlIGxlZ2FjeS10cnVuaworNTk5NjIgNmFmMTk0YzQ5NGNjMmZkZjNmNzIzNDJjMDQ5ZTVkYzU3NzlhYWNmOSBsZWdhY3ktdHJ1bmsKKzU5OTYzIDc3NGE5NTk3MjI4ZTBhZGI3ZjhlMWI5YTViNjkzYjdkNjQ5ZTY1YTUgbGVnYWN5LXRydW5rCis1OTk2NCBjYWI4NDEyOWRjY2I1NDU2NDA2M2YxNjM5NjE4NTY1ZmYzODdlOGMwIGxlZ2FjeS10cnVuaworNTk5NjUgZjAzNGViNWQ4Y2RmNDlhYzUxMTM5M2ZjOWY5NmM2ZDZhNGM3YmM0NiBweTNrCis1OTk2NiAzNTdiMzY1NTYwZjRiNzkyMzhlOTBmODQ5M2U0NGViYzlkNzlmZWM2IHB5M2sKKzU5OTY3IGEwMGQ5MDAwNGEyNTE5NmFkYTZjZmNhMjA3NzYxMmU3ZGQ4NGNmYzMgbGVnYWN5LXRydW5rCis1OTk2OCBlNTExY2NmMmZmYmU2N2ExMmUyMTQyMzkwYTY4MzZjZDU3NmIyZTA1IGxlZ2FjeS10cnVuaworNTk5NjkgZDAyMDhkNjVkYzIyYzUwMTA4YTY3MzllOGEzNWE5NzkzOTllYWU1YiBsZWdhY3ktdHJ1bmsKKzU5OTcwIDg2ODlmNDZkMjVkNmFmNTVjOGNiZTRkNWYxNzVkZjhjMTVmZjc5YzQgbGVnYWN5LXRydW5rCis1OTk3MSAxNDg1NGM3YzZhMjQ4NzBhZGI1ODhkMmE2MTVhNzU1NzJiM2ZmYTY5IGxlZ2FjeS10cnVuaworNTk5NzIgNWM3YjdmYmVhNjgxYjE1ZDg0ZTQzMTI5OTgwZjgzY2ViNTk5ODg0ZSBsZWdhY3ktdHJ1bmsKKzU5OTczIDBiYjZjZjc3Yzg1YWY4NTM0ZDBmZWVlY2JhNDQ0YWVhZjE5MWEzMTggbGVnYWN5LXRydW5rCis1OTk3NCA0NmU3MzFiYjZhODVmMWNlZGM3NjQ4NzRjOWZhYjEyZDY0YmU1MmZhIGxlZ2FjeS10cnVuaworNTk5NzggNTlmMjliMDEzNmZiNWY2MTg0OTdmMDlmOGE0NTJhNTA2NGI0MGIzYSBsZWdhY3ktdHJ1bmsKKzU5OTc5IGJmYThkMjI1NzgyMzIyM2RiN2M0YTNkZGNlNjYxNDQ0NDFhZTFmNzggcHkzaworNTk5ODQgMjhjODFjMjczODllMjU0MzM5YTkwYzMxMGFiNTc3NDdhZTMyMzIzMSBsZWdhY3ktdHJ1bmsKKzU5OTg2IDZlNTY3NWNhMjU1OWM2YTczN2VmMWI0NmI4MTE0OWY3NzFhN2Q0N2EgcHkzaworNTk5ODcgYzc5MDU4N2YyOTkyNWMxNTE0NTEwNDBkMzk0MzcyYWU2ODdkNjY5YSBsZWdhY3ktdHJ1bmsKKzU5OTg4IGNiOTA0MDRhNDZhZDE4YTEyMmJmMTgyYWQyNDE3ZTljZjRmYTVhNTAgbGVnYWN5LXRydW5rCis1OTk4OSBmMzAyY2Y5OTk2MzNlYjdjNmQyYjBlMGYyNjg0ZjRkZWZiYzkwMGE1IGxlZ2FjeS10cnVuaworNTk5OTAgNmYwNDljYTU1ZTA2YjJjMTA4ZWMwZDhkMGU4NGJiMGI4MjNkYzM4NSBweTNrCis1OTk5MSA5OTJhNjExYjJlMzE0NjZjMTcwNGJhN2VlNmMxOTZiYjg0YjRmMDFjIHB5M2sKKzU5OTkyIDJmMTFmN2Q5YmRjODRlMGQ2YmJhMmVmZTNjZTVhNDlmYzBjZTlmYTUgbGVnYWN5LXRydW5rCis1OTk5MyA3MWM3OTllYjI0YjI0ODBhZGZiNzdmNDNkZDI3NWZmYTRlMjFhODgwIGxlZ2FjeS10cnVuaworNTk5OTQgN2YyZjIxYWEzNjkwNmE5ZGQxZTc4NTdjODllNzllOTQxYTgxOGJhOCBweTNrLWltcG9ydGhvb2sKKzU5OTk1IGIyM2I0NzdkNzg5OWE2NjhmNjg0MzQ5NGE2NzEzNTk0NTg5MjQzODMgcHkzay1pbXBvcnRob29rCis1OTk5OCBjNDM4M2Q3NjVjYTcxNzgzNzQ4NGEzYzJhYzVkMzcxYTgwMDY2NDk4IGxlZ2FjeS10cnVuaworNTk5OTkgYTRhMDI0MzJlNzMzM2U5OWVmMDllYzU3YjM5YTI5ZWFhMGU3NWI4YyBsZWdhY3ktdHJ1bmsKKzYwMDAwIDQxZjFiM2NiMGJiMTAzNTViMjQ5NWY5MTNlZWI0OTZmMzk3NDMxNGMgcmVsZWFzZTI1LW1haW50Cis2MDAwMSAyZjdmM2Y1ZTczZDNjNWVhYTE0MDJjOTFhZmUwZTRjZTE4YWIyNzI0IGxlZ2FjeS10cnVuaworNjAwMDIgM2Q3MDQyODkzY2M1MDQ2Y2VkN2ExOTZkNThiNmQyMGExZjU5ZTllNyByZWxlYXNlMjUtbWFpbnQKKzYwMDAzIGNhZjU4YzgzMTQ5OWNjN2Q1OTQ1MzU5MTg5NmQwMzEwZWQ5NWZkMjcgbGVnYWN5LXRydW5rCis2MDAwNCBhMmYzZDQ5OWNlMTJlZjRjZTIxYjU2YmNiMWUwOWJhM2M1NjIyNjllIGxlZ2FjeS10cnVuaworNjAwMDYgMjdkNTk2NzViOTJjNmY3YTBkMDA1ZWJhODljYWE4NWQ1ZGUwNGJiMCBsZWdhY3ktdHJ1bmsKKzYwMDA3IGYxMjhlNmViZjkwZjgxZDBmZDJhMzA1OGJjN2ZhM2NhYjY2YjMwZjMgbGVnYWN5LXRydW5rCis2MDAwOCAyYzliYzYxZDRmNzNmMzc2ZTM1ODk1ZmZkZDcwZmQ5MTFiMzEwNjMwIGxlZ2FjeS10cnVuaworNjAwMDkgYzc4NGYyMGM5NjdlODQ0YmVkYmIyZmQzNzQxZDI5YmNjYWU5MmE4ZCBsZWdhY3ktdHJ1bmsKKzYwMDEwIGFhNWNmNjM5NDY0MWRjMWQzYTJiZjBkNjM3NGRiNmFjNGVlODA1YmMgbGVnYWN5LXRydW5rCis2MDAxMSA5OTAwMGVhMjFmZjI3OGFiYjg5NDlkYWVjNzBhNzE1NzRlY2RkZDczIGxlZ2FjeS10cnVuaworNjAwMTIgYjQ2OWU5MDI3M2ViMDcyZGY3ZjA0ZGVlZTMyYzQ3OTE1OTI5ZDNiNSBweTNrCis2MDAxMyBkMGY3OTYzY2Y4YjAzMzQ4Y2JjYzQ1MzA4NjcyMDU4NjU0MDNhMDg0IGxlZ2FjeS10cnVuaworNjAwMTQgMjZiNjFhNWRmMTFiNjEyZDMxMTE2NjI3NGE3MmFlNjI0OWQzMTU5ZiBweTNrCis2MDAxNSBjYjBkY2Q2ZTNiMTE0N2YzYWNhM2IyZTI3MDVmNmIxYjkwYTg4NDY2IGxlZ2FjeS10cnVuaworNjAwMTYgM2IzODU2YjM2MjFiMjA4OTVkYWU0ZjM0YTMyMTJkNTg4MTVkODRhYyBweTNrLWltcG9ydGhvb2sKKzYwMDE3IGRmNzFmY2RkYjc1ZWFiMTdhMDVmZTI2MWU0MDIzMzAyYTJlZDY4OWQgcmVsZWFzZTI1LW1haW50Cis2MDAxOCBhMzgwMjg1M2MzMTc2MjY2Y2Y3YjI2MGQwMGQyZTQ5MDljMTgyZDg1IGxlZ2FjeS10cnVuaworNjAwMTkgMTcwY2IyNzM5YTM5MGUyNzgzMjI5NDQ2MjVlZjFiOTViOGNlYzIyZSBsZWdhY3ktdHJ1bmsKKzYwMDIwIDA3NjZlZmQyYTZkNjNlNjNhM2IzZGRiNTMzZGRmMmNhYWU4N2E2MDAgbGVnYWN5LXRydW5rCis2MDAyMSBkODE2YmMwYzQwYjY3NTk2ZTI1MzVlMDQ3NDU2YWI1YTE2YjdjNzc2IGxlZ2FjeS10cnVuaworNjAwMjIgNzE3MjY1ZWQyMDQxYjMxOTdjMjVlNjFjZjViMmUxNjIxODgyNWU4YyBsZWdhY3ktdHJ1bmsKKzYwMDIzIDNiNGJjNGM3MDRjMTRmNjkwYmY0MmEwYWRkZjY1ZGZiODVjZTc0NmYgcHkzaworNjAwMjQgMjIyYjkxOGNlMDkyNGNlZDZlZTdkYjE5Y2QzYTRiZTVmMGFjMmU2NiBsZWdhY3ktdHJ1bmsKKzYwMDI1IDI5ZTRjODZkNTA3MWE2YzhlNWJhMjgxMjAxZTE4MWIyMjM1OTA3YzkgbGVnYWN5LXRydW5rCis2MDAyNiAwNzZjOGFiYmQ1NGY3ODk5ZDgyMDQ1OTU1NjUyYTBjOTE2YWJlZGVhIGxlZ2FjeS10cnVuaworNjAwMjggOGI0OTU0MDNiYTIzNWJkYThlM2U4M2JiMGFhNzA3M2NhNDg0N2VkMiBsZWdhY3ktdHJ1bmsKKzYwMDI5IDQyOGRkODUxYmI4YWU4MGZkM2IxM2IyMjc4MzhiNGQzZmMyNTdkZDEgbGVnYWN5LXRydW5rCis2MDAzMCBiYjMzYjMyZGUzYTBiOTM3MjE1NDI5M2RiYjE5NmMyYTRlMDdiNTRkIGxlZ2FjeS10cnVuaworNjAwMzEgODVjZjIyMGYxNmQ4NWVlNDA0NjY4MTk3NDYzMjJiOGVkMzU5YmU4MyBsZWdhY3ktdHJ1bmsKKzYwMDMzIGEwZGQwOTJiYjZjMzZlN2M2ZDNiNThiNDY5Nzk5MzU0NDc0MDQ1OTkgbGVnYWN5LXRydW5rCis2MDAzNCA0ZDYxYzg4NzYyNGQzNWJiNmNjNjMwMjFiNzZiMjk3NWU5M2JmNjI4IGxlZ2FjeS10cnVuaworNjAwMzUgMjZhODZjMjlhZDYwMGE2ODhlNGE0OTRjOWE0YWVlZDQ4Mjg2YjRlMyBsZWdhY3ktdHJ1bmsKKzYwMDM2IDg0MGU4N2UxODMwNjk0MGI4MGM3MDViMzkyYzM0ZDg2M2VmNTVlNGYgbGVnYWN5LXRydW5rCis2MDAzOCBiNDAwM2I2YzZkMTM3ZWY5NTRjNDczMzZkY2NjNWY5NmUzZjUzYTcyIGxlZ2FjeS10cnVuaworNjAwNDEgYTNiZjBlMjRiOTFlNjk0ZWY5NGM0ODU2N2YwOTFmYjM5MDZiZGU0NyBsZWdhY3ktdHJ1bmsKKzYwMDQyIDc5YmFiYjRjY2VjODUyZmZmZDkzYjk2MTMxNzg2ZTdkMzQxMGVjOWMgbGVnYWN5LXRydW5rCis2MDA0MyBiYmY0ODQ1ODEwNDM3ZDY2YjYxNjg3ZmU3M2I3ODc1NGM4OWIwMmI1IGxlZ2FjeS10cnVuaworNjAwNDQgMTRkNDEwNDk3NmZjYzdkNDFjODc5N2IwMTA2YTcwNDVmZDY4ODhhNiBweTNrCis2MDA0OCAyOTQ2MDIwNTYwZTczZjk1OTNjNDAxMGY0ZmQ5NzYzNjEyODgxZWI0IGxlZ2FjeS10cnVuaworNjAwNDkgZDk4MzNkMmJmNDY5NWZmYzY1YTc4MmE5Yzg5ZTJjNzM2MmEyN2ZmNiBsZWdhY3ktdHJ1bmsKKzYwMDUwIGRiZjA4NTY3NzZkZDdjM2MyYmY5ZjZlZDdlNGYyNTRkZTY3MTU3ZDAgbGVnYWN5LXRydW5rCis2MDA1MSA5N2E3YzEyNmQwNGViZjY2NTUxMmE1MDBhM2JlNThkODY1YmE2ODNhIGxlZ2FjeS10cnVuaworNjAwNTIgOGRhOWViZjczMDI2NDdlY2FiNTM5NDkxNDU3MjNjN2Y0YzM2Mjk5OCBsZWdhY3ktdHJ1bmsKKzYwMDUzIDRhNjc2NzNlMzQ4MWRjMTA0ZTVlNjg3ZTViZjNiMzdjYmNmMDA3NjIgcHkzaworNjAwNTQgNTVkZGIxNjZmMWQxYWEzMmI0MTQwZWZmNjE4MGMwZWNiMDFkYjRkOSBsZWdhY3ktdHJ1bmsKKzYwMDU1IDNmNDBhZDNjMTNkZDdlYzJiNGNlYjI0NzkxNGY0OTYxMmViZDlhM2YgcHkzay1jdHlwZXMtcGVwMzExOAorNjAwNTYgNzY1ZTU3YzAwMWIxYTExZWJiZmUzMGU3NjM4MzcyZWE5ZTkwODM5MyByZWxlYXNlMjUtbWFpbnQKKzYwMDU3IDU4MzAzZWQ3MmJhMWE3YmYxMjVlZjY2MDk2NDI4ZDQzNzBjOGQ2ZjMgbGVnYWN5LXRydW5rCis2MDA1OCAxM2Y3NGM4NTQ0Y2M4YTkyMWRlNmI0ZmM2MzE2NDA0YWIzYzk5MDJkIGxlZ2FjeS10cnVuaworNjAwNTkgZWI4ZWY5NjllZDY4YTVmNzg2ZmE0MjlhZTM0MDcwZmQzYWNhMzJiNiBweTNrLWN0eXBlcy1wZXAzMTE4Cis2MDA2MCBkN2E4N2M3ZjE0ZDllZTk3NmY0NTZlN2Y5OWVlMTI1ZmM3MzUxN2E3IHJlbGVhc2UyNS1tYWludAorNjAwNjMgYTUwNzJiYTM1ZjBhMGYzYWQxNTY5NDUxMDhmNDY3MmNmOGJmY2U3YiBsZWdhY3ktdHJ1bmsKKzYwMDY0IDIxNzk4MzNjOWM5YTU5MDhmMzljMTA2MjFkZDdkZDI0MzEzZTQ3NTEgcmVsZWFzZTI1LW1haW50Cis2MDA2NyAwYjdiNjJkZDRkY2JkMjgzZjc2ZjExMjM1YTIwMWQwMmYxNTg5NTU1IHB5M2sKKzYwMDY4IGM0NzA5YjgxYWJkZWI2YzdjMTZjY2I2MGFhYTE5N2VjNzk1ZWQ0NDQgbGVnYWN5LXRydW5rCis2MDA2OSBmZWJkZTNjYWYyOTEyNmM1M2IyY2NmNTA0NzczMTRhZjljM2NhZjJhIGxlZ2FjeS10cnVuaworNjAwNzAgZjI3OTdlMDcwOWUzOGNlMTRkZjNjYjQ0NTRkOTkzZWZmMzk3MjQ2NSBsZWdhY3ktdHJ1bmsKKzYwMDcxIDNkNzJmNTIwOWU2N2Q1NDk4MjUzYTE4NjU0ZTJjODc2YjcwOTk2MDcgbGVnYWN5LXRydW5rCis2MDA3MiBmOTc3NTQzODM2OWFiNjExNjFiYWE0NTUwYmYzZjY2ZWY5ZGY2NTU2IHB5M2stY3R5cGVzLXBlcDMxMTgKKzYwMDczIGNlMzI2YWZkZjA5ODlmY2I2MGQ3ZDE4ZDg5NWE1YTliMzY2NWE5ZjAgbGVnYWN5LXRydW5rCis2MDA3NCBjYzBhMjk2MTE5NWVmMzgxYWNhZGI1MjU1YWY4MTE0YWEyOTE5ZWY5IGxlZ2FjeS10cnVuaworNjAwNzUgNzNiNWU5MzllMDU4MGRkYmU4MTA1MDFiODkyYTBiYzljNWNkMjVmOCBsZWdhY3ktdHJ1bmsKKzYwMDc2IDUyZTgyMTQxOGE3OTliNTI0YWQ4MzU4MTE1OTlhNjU3YjQ0MGJiMDMgbGVnYWN5LXRydW5rCis2MDA3NyA4ZWRiZTAyNWFlZDU3MTI4ZjEzODc1YmU1NTQ1OGNjMTU3OWNjNzg3IGxlZ2FjeS10cnVuaworNjAwNzggYzdjYjU4MDA2MDZlMmY2ZGUwM2JiOTJiZGVkN2FlYmExMTJkMDQ4OCBsZWdhY3ktdHJ1bmsKKzYwMDc5IGE2ZjlhMmJhODk2MmE0NjI5NDNiNmEzNDM1ZDQ0NjExZWYxNWI3NDMgcHkzaworNjAwODAgY2RlNDFiZDA4ZTVlMjRjZDkzOGQ2MjI3NTU4ZDA0N2Y1YTBjYjk5ZSBsZWdhY3ktdHJ1bmsKKzYwMDgxIGUzZmRiYzgwOTk5OTgwODhiZDA3YWJlNGQwMmIxMmM0NzY0NGZjNGYgbGVnYWN5LXRydW5rCis2MDA4MiA4NTliZjg1YTU1NmE5OGI4MjBiMDAxNjgyZDM4YWZlMDQ5NTBjMWEwIGxlZ2FjeS10cnVuaworNjAwODMgMGZlOTM2Yjc3MTE0MjM1MTRhY2UwNzhjNWU1YmZiNDQ2N2IwN2VjYSBsZWdhY3ktdHJ1bmsKKzYwMDg0IGFmYTBlZjM3OTE4NjVkMThjZWI3MTM4ZDYzNTE4MWYxYmNlMzJkYmMgbGVnYWN5LXRydW5rCis2MDA4NSBhMjY1YmFhNzkxMDAzNDNiYTE1Yjg1ZDA1ODc1NDNlMzNkZjJjMzY2IGxlZ2FjeS10cnVuaworNjAwODYgODAzNjY2MjFjNTAyMjk4MWI3MjNhODY4YmEyNGE1ZTMzMjYwMjI1ZiBsZWdhY3ktdHJ1bmsKKzYwMDg3IDljMGE5MTNhZGNkNGI4YTk2ZTZiOWY5MWNlOTI1NDIxYTVlODIyZWYgbGVnYWN5LXRydW5rCis2MDA4OCBlNGU2ZmM5Yzk3NzVkODIwMjQzODI5YjE5NDYzNzFlMWZiZjE1ZjhiIGxlZ2FjeS10cnVuaworNjAwODkgOGI1NTMyMTE2MTE1MmJiMGZjMmZiMDI4NGZhMjM3YjlkYjU4M2FhZSBsZWdhY3ktdHJ1bmsKKzYwMDkwIDM2MjVlZWQ0ZjBjZDliZThjODNiNTY4ZmY0N2UzYTFhMWRmYTQwNTggcHkzaworNjAwOTEgODc3YjQ2NzliOWZlNjliNDA1YmU1ODNlZDA4ZjY2MTJkYzQ2MThhYSBsZWdhY3ktdHJ1bmsKKzYwMDkyIDYxYTExY2M5NTYzMmU4NDE1MDVmMmZhZTEzMzVjNmNmODA4YjE5NDYgbGVnYWN5LXRydW5rCis2MDA5MyAxNzAwOWQ2MjExYjgzNmE2NjAxNDZkZjM3MGIzN2ViZmY1MmNkZmQ4IGxlZ2FjeS10cnVuaworNjAwOTQgY2EyNjgzYTY3OTQzMTNhM2ZlYzE3NWQ3NDA1ODdjNTM3MzllMjM4YyBweTNrCis2MDA5NSA0YTdhZmZmNTJlYTcxZjQ4N2EyMWVkMTk2ODViYWFhOTdjYmNkMWVlIGxlZ2FjeS10cnVuaworNjAwOTYgYjMxMDIwMDZkZDdlYzlmY2VjZTM4MjI4ZWYxMjdkN2MxMGRhYTczOSByZWxlYXNlMjUtbWFpbnQKKzYwMDk3IGI1MjBkMzNiZWUwNjE1NGY5N2M1YWVlZjJlMDc3OTZhNzVkZDk4ZTYgbGVnYWN5LXRydW5rCis2MDA5OCA0YWM0ODQyNDliZDFlMWZkYzYyMTFiNjE2YjFjNmNmOTFhZjBhYWY1IHJlbGVhc2UyNS1tYWludAorNjAwOTkgNGYzNTExOGVlZDNiOGYyMTYyNWM3ZmI1MDNkNmNjNWU3NjQ1MmM3NyBsZWdhY3ktdHJ1bmsKKzYwMTAwIDg4ZjhmMTUyYTBiMzMyYzJkMGI5MTQ3ZDAyMTkxYmFmOGE1YTQ1NTQgcHkzaworNjAxMDEgM2M5Y2NjMzJkYTlhZmU2NDQ5NzBhNzdmZmI0OGEzYmRiZTExYmZkMyBsZWdhY3ktdHJ1bmsKKzYwMTAyIDIxMDMyM2UyYTkyNzI2ZDRiY2JlNTNiYzZmYmUxOTcyZDdiMTRkNDQgbGVnYWN5LXRydW5rCis2MDEwMyAxNTUzNjg2NTE5OGFiMjE5NjUwYzUwYjk4N2RmNzg2MWQyNzcwOWI2IGxlZ2FjeS10cnVuaworNjAxMDQgYjRkMDNhOTJiZGRmOWNiY2I3Y2MwNWNkNzI3NjE4NDM0MGNmMTY1YiBsZWdhY3ktdHJ1bmsKKzYwMTA1IDNkMTMxYzgzOGYwOWI4YTMwMTFlNDMwOGRjOTNiZTJiNGNiYjFkNzcgbGVnYWN5LXRydW5rCis2MDEwNiBkOGMxM2VjYjZlODU5ZmVlNmRjMTlkZjhmZDRjYmYzMWUwYWRhZDkxIGxlZ2FjeS10cnVuaworNjAxMDcgYmRhNDllYjQ2MDc0OWY4NDMwNzk1ZjI0ZWYyZmQ2YzNhZjM4NmU0NyByZWxlYXNlMjUtbWFpbnQKKzYwMTA4IDE3Zjg0NTMzMjc3ODQxNTQ1YWZjMTc0OWJmODlhMTNlZTIzNjkxMzUgcHkzay1jdHlwZXMtcGVwMzExOAorNjAxMDkgMTNkYzY1ZmU4NTk5ZjA4YThkNGFlNWRmNDU2MDBlY2U3ZjA3MjM2YiBsZWdhY3ktdHJ1bmsKKzYwMTEwIGVjMDJkYmU2YjA1MTAxYjYxM2FhZTUzNmUxMTA0NTZiMTE5YTU0NGUgbGVnYWN5LXRydW5rCis2MDExMSA1ZTY2MDMwZjFhNjdhNDY5NTQ4NDc1YmI4ZjBhMDhmODgwNjIxNDJjIGxlZ2FjeS10cnVuaworNjAxMTIgYWMyZWE5NTUyMjkzMGIyYzIxYzZkYmRlZTg2ZTc3NzE0MTcyY2VmMyBweTNrLWN0eXBlcy1wZXAzMTE4Cis2MDExMyAwYWNlNzQ3Njc0NzhjZjY3ZTZiMDc0MmVkMWY5MDRhMGNjNTMzNzljIHJlbGVhc2UyNS1tYWludAorNjAxMTQgNDc5NjU4OGQ5ZjlhY2I3NTEzNzUyNjc3MzM2YzNjZjZiYTI3ZWM4YiByZWxlYXNlMjQtbWFpbnQKKzYwMTE1IGMyMzg5MmY1YTY5ZjE2ZjgxYjExZGY3YzgwYjAwYzZkNmY5OTU2MzYgbGVnYWN5LXRydW5rCis2MDExNiAxMTQ4M2E2NzNhNDVlZWQ0Y2I0NDI1NTI1ZDBkY2NjZGQ5ZjczZjFmIGxlZ2FjeS10cnVuaworNjAxMTcgNjhmNWNjOTViNzBhNWU2ZjljMDQ5YzlhODE2YTRjM2QxOWRmNmE0YyByZWxlYXNlMjUtbWFpbnQKKzYwMTE4IDc2NDcxNTJmNzQyNDViN2VlNTI5OWIxZDg4ODZjZWU3OWEyNDQ1MjcgcmVsZWFzZTI1LW1haW50Cis2MDExOSAxZTU2MTQ1NjdhNmVkOTY5Y2Y5NDI3NzQ1YmVkYjg3YjAyYzk5NzNkIGxlZ2FjeS10cnVuaworNjAxMjAgODE2YTdiZGJmNjllOGZjMThjODlmOGY5N2UwZTZiMWI0ODQ2Y2Y0YyBsZWdhY3ktdHJ1bmsKKzYwMTIxIDExMjBiM2Q2MDZmMjhjMWM1YWQ5MDUyZDQ2NDg0YTUzODc5NTQ2MzAgbGVnYWN5LXRydW5rCis2MDEyMiA2ZDQzZmNjZGE5MGMzYTE0MmNiNGUwMjFlZTNjMDFjZGFiMDBlZDY2IGxlZ2FjeS10cnVuaworNjAxMjMgM2UwZjRhNGI5ZjU1YWU2MTIyNGE3ZTIyNWJiNTVlNjk4MWVlOGQ3NiBsZWdhY3ktdHJ1bmsKKzYwMTI0IGZhNmNlZTE0ZGNiYTQ4ZDBhYmQ1ZDAxYjRkOTA3OTE4OTdiODAwYzAgcHkzaworNjAxMjUgNTUzNDlkNGQ5ZjgzMzllNTBjNWVkNjg5Y2U4MzVmYmZkYmM4NDdkYSBweTNrCis2MDEyNiAxZThiOWU3YzM0Y2VjNTVkMDYxN2FkYjNkZjAxMjE0MGUzYWM4MjkyIHB5M2sKKzYwMTI4IDAyYTIxMjBlNWRiMjNiNWZiNGQ0ZDQ2ZjNmOTAxZjk1Zjg0MzY4ZjEgcHkzay1jdHlwZXMtcGVwMzExOAorNjAxMjkgOTQxY2YyYmYyMDBlNDM5MmEzZjhiZDg2ZjM2ZjY1MTk1YmE1ZTBlMCBweTNrCis2MDEzMCBiOTlmOTI5NWZkOWNmODg2ZGVlYmNkYzY0NmIyOTU0ODY2YTk3NWFhIHB5M2sKKzYwMTMxIDk0MmU0YjQyZGExNGQ1Njg1Y2UyYTY3ZGQ3M2IzZjVhMTdkMTkxYjUgbGVnYWN5LXRydW5rCis2MDEzMiAxNTBjYjQ4ZWRiMDdlMWJhODYxMGRmYzNjMTAwMjI3NjhjNmVlZDE2IHB5M2sKKzYwMTMzIDNmMzRkM2IwMzUwZDEzNWI5ZDYxZmNlZjUwNGM1NmEzNTBhZTlmYzkgbGVnYWN5LXRydW5rCis2MDEzNCBlMzY0NjllNmQ4YjY3ODA5YzczNGJhYmJmMTgxYTg5YzJhZWM3YmI1IGxlZ2FjeS10cnVuaworNjAxMzUgYWJjYjc5MjNkODk4ZmRhM2RlZDJiNWM2MTM0NTQzNzdjNzI2N2QxYyBsZWdhY3ktdHJ1bmsKKzYwMTM2IDE0NWIzZTYwNTM3ODQzNTI2NmU1NDNhMDA0MDhmOGMyNWQ5NmY1NjkgbGVnYWN5LXRydW5rCis2MDEzNyBiMjhmZGVmMmYwZDcxYjE4ZDY4NDQ3ZGZkYjI3YmE5OTI5YmQwODI4IGxlZ2FjeS10cnVuaworNjAxMzggNDI0Y2NjZmQyYmFhYTcyMThhOWNiNGRhZjM5YmQyMDhlNjU4YjNjNCBsZWdhY3ktdHJ1bmsKKzYwMTM5IGVhY2EyMzY3ZWNjOTkyNzhiMjA5NjY1YWI2MWFkZDA4OTQxYTI0NTMgbGVnYWN5LXRydW5rCis2MDE0MCA4NGYxYTY1OGIyMzE5MjM3MDVjZTkyODk5YjAwYzUwN2E2Mjc1YmE2IGxlZ2FjeS10cnVuaworNjAxNDEgZWY4NTljZDc1NGE3NmZhNzdlMDg0YTg1OGUzNGMyZThmNTJhMDYzYiBsZWdhY3ktdHJ1bmsKKzYwMTQyIGVhMzg5YTI2OGI1NDQ5ODA3MjdjZTM4NTk3ZDM0ZmE5OGY4Yjk5YjQgbGVnYWN5LXRydW5rCis2MDE0MyBlYWIwMGRiODBjMjc5NTlmMDIyZjRhZDljNmQwZjM4NGNkZDczYjE0IGxlZ2FjeS10cnVuaworNjAxNDQgZWY3ZDcyZDk4NDg1YmY0MTRhODYyMTY3YjBlZjI3NThiZjllMTMyYyBweTNrCis2MDE0NSBhYzk3MGY4ODMxODc1NmNlMmFkYmQ2YmQ2YmEzYzkwYjZhNmI2NDZhIGxlZ2FjeS10cnVuaworNjAxNDYgMGYwNzJlZGIzMzQzNzMyNjE3OTQ1Yzc1YmQwM2U5NWU5NmY5ZWU2MSBsZWdhY3ktdHJ1bmsKKzYwMTQ3IGMzYmY4ZjliZWFhNzI3MTI5ZTRlMDdlNzYzYzE2NzllNWI0OWNlZDEgbGVnYWN5LXRydW5rCis2MDE0OCBlYjJlYWZkYTI5Yjc2ZGQ5YjFiMmVkYjYyNzc0ZmY1OTRlODFhZmMzIGxlZ2FjeS10cnVuaworNjAxNDkgODliMTNiNjkzODY0NTQwNjVmMDViNjZlNjVhODk0NjY4MTAzMTA1ZiBsZWdhY3ktdHJ1bmsKKzYwMTUwIGVkMzNkYTJlNzRlNzBlM2UxNGZhOTlmY2Y4ODAyOTc0ZTJkNjM1NDEgcHkzaworNjAxNTEgOTQxMWIxYjkxMjE4MTJiN2JlZjZlNzg4M2I5MzViNDRlZTEyMjk1MCBsZWdhY3ktdHJ1bmsKKzYwMTUyIGZhYmM2ODhhMDhjNjhmZmJiNWQxNmE1MzQ0ZmQwOTZlYjYzMDFmZDcgbGVnYWN5LXRydW5rCis2MDE1MyBhZDZhOWRiMWZmNDVjNTQyNzkyYWEzYmQ5NTBiYzZlNWE4YjNhNDYzIGxlZ2FjeS10cnVuaworNjAxNTQgZjZkNGEyYzQ5NTMxNTBlOGM2M2MwZTgwMmViMjRiNDljZDdkZmRhNiBsZWdhY3ktdHJ1bmsKKzYwMTU1IDhmMTVmOGRlNDIxODVhYWM0YWExZGZhZWE5MmE0MGRmNWMxODRmZjMgbGVnYWN5LXRydW5rCis2MDE1NiA4YWJkMzZmM2FiN2EzYWRjODI5Zjk0NTcxODhkYjRlNzg1MjM5NjI3IGxlZ2FjeS10cnVuaworNjAxNTcgMGFlNTlmNjA4YjQ0ZjljMTFlOGMwMzYxMGVjZmViNjU2M2Q1MWVjOCBsZWdhY3ktdHJ1bmsKKzYwMTU4IDE5OTBmYTZiOWU4Mjg3ZDgxMmE3MGFkOGMxOWY2NTc0MDYxNDNjMWQgbGVnYWN5LXRydW5rCis2MDE1OSA3OWYxNTA1Mzc1MWVkODc2ZGMyNjRiNDhmODUzZGViOWE2MDYyYzYzIGxlZ2FjeS10cnVuaworNjAxNjAgZGZmZjA0MTc1M2FhMThlMDYwNTk0Njc4ZjA0NTgxMmE0ZjhjNjZlMSByZWxlYXNlMjUtbWFpbnQKKzYwMTYxIDI3ZGFjMTY1NDFkOTA5MDg2NDI0MmU0NWQwNTUxN2M2NmNlMWQwOWUgbGVnYWN5LXRydW5rCis2MDE2MiBkOTYyMTQwNTQwNmJkZWQ1NTk0ZmZiOTZhNzNiMmI0ZGYwZTM5ODZhIGxlZ2FjeS10cnVuaworNjAxNjMgYTZiMTkwYjBjZjA2OGU3ZDI0Y2M3M2RkYjE3Mzg1ZTk3YzliODBiMSBsZWdhY3ktdHJ1bmsKKzYwMTY0IDQzMmM0YWUwZmQwNDZmZTkzZjQ1M2ExMTE5OGFjMDMxYmU4OTNmZTggbGVnYWN5LXRydW5rCis2MDE2NSAzMjQxMmZjZWIxYjM0YWQ2MzQyYWY3MTE1ZGZlNTFiZjVmMGI0NmFmIGxlZ2FjeS10cnVuaworNjAxNjYgNzI5NDk1ZjdiMjIxYTQ1ZTA4ZWU4NmQxMTEyNjQ0ZTJiZWFmMjdkMyBsZWdhY3ktdHJ1bmsKKzYwMTY3IGM2OWE3YjU1YWQ2YmZmYTU5ZmRmMTcyZDZkNWY5YTg4ZWY3MDM5ZjUgbGVnYWN5LXRydW5rCis2MDE2OCA4YTliM2IwYmU1NzM5YWFlOTYyZDgyZDUwYzIwM2ZjZmNjYWMwMGZmIGxlZ2FjeS10cnVuaworNjAxNjkgMWJlNGJiZDgzNGExNGNkMmZhYjVhMDYwZGM2MzExYjQxMjMzZDA5MiByZWxlYXNlMjUtbWFpbnQKKzYwMTcwIDdjNTRmNGEyZDQzODRlY2RhMjI0ZmQxZTAzMTEwZTUyZGRjNmU3NjkgbGVnYWN5LXRydW5rCis2MDE3MSAwYjQxYTkxY2QyNjFhMzUyN2I4ZjhlMWY1NDEyZDVlYTA2NjUzYmNiIHJlbGVhc2UyNS1tYWludAorNjAxNzIgZGYyMmU2MTgwZTY3YWM5MzU4OGJmNjRhODE1YTU0MzdjM2Y2MjJjNSBsZWdhY3ktdHJ1bmsKKzYwMTczIDI5NjQzZmJlMTE1MDcwNmE0OTJhM2NhOWU4NmI1NzAwNTA4MTlkN2IgbGVnYWN5LXRydW5rCis2MDE3NSBiNzZjNzhjZGEzYWJmZTFkNzI3NWIwYmM3Y2E0ZTZlMjIyMjQxN2U3IGxlZ2FjeS10cnVuaworNjAxNzYgZmViYTVkNWNhYzIyMWYwYmQ5MTNmZDk2ZWQzMjg1MjU3OTY1YTIyNCBweTNrCis2MDE3OCBjM2Q5ZTU3ZTcxZjJjMjM0MDE5M2Q2MmQwYjVhNWEwNDg1ODNkY2NlIGxlZ2FjeS10cnVuaworNjAxNzkgNWJlYTQ1OTJjZDdhMWI3MGUwN2Q4OTVkOGQ4YzBhMjNmNjg0ZTQ1MSBsZWdhY3ktdHJ1bmsKKzYwMTgwIDEwMWQ4NmExYWY4NTg4ZmRiNGFhNDY4ODFmZDEzN2IyYzNlZDJhNjMgbGVnYWN5LXRydW5rCis2MDE4MSBlYjRiNTBmNzM5ZjZlMWE1ZDlhNGVkNDJhOGYwNjRhZjZhMzhiYWZiIGxlZ2FjeS10cnVuaworNjAxODIgMzEwN2ZkYjkwODFlNTg0ZWU2N2I1YTVhMWY4ZjlhZmQ5MzUzYzUwYyBsZWdhY3ktdHJ1bmsKKzYwMTgzIDgxMDNmMDE5ODk2N2M5NjUzNzY4MTNkYjEzODZhNmZjOGYxNmY1NGQgcmVsZWFzZTI1LW1haW50Cis2MDE4NiA3MTFhZTBlOTljMDI3ZDVlN2Y4NWQyZDlmMzhiNzFmNThlMzI4OGE3IHJlbGVhc2UyNS1tYWludAorNjAxODcgZWE2MWU5ZWRkOTc5OWI4YTU2M2RiOWRlYjk4OTZmYzg5ZGQ3ZWY1MyBsZWdhY3ktdHJ1bmsKKzYwMTg4IDdmMmI1MjVmOWRmNDhjN2U4MDc1M2U5MjIxMTgwODA5YjZiMWJiY2UgbGVnYWN5LXRydW5rCis2MDE4OSBiNWU4MDlmOTI2ZGUxODdlYzFmYTg0OTk5ZTUxY2Y2NDllOWY4YjQxIGxlZ2FjeS10cnVuaworNjAxOTAgZmU3ZDQyMzQ3NGRlYWQ5YjZkMzJmNzk1ZWE2OGY5YjVmY2VmYmE3MyBsZWdhY3ktdHJ1bmsKKzYwMTkxIGZmYWNiNDQ2NzNlYWI3NmQ5M2E5YjMyZThkNGFjMjg2NGVlYjIwMTYgcmVsZWFzZTI1LW1haW50Cis2MDE5MyAxMmI2OTEwMTE1ZTBmZjI4NzRlOWQ5MDBiNzQ3NjI1NmFmZmM0ZTNmIGxlZ2FjeS10cnVuaworNjAxOTQgOWQ4Yzg3Nzg4OWMzYWQwYjVmYWQzOGY4ZTQ2MGE2MTZiMWQ3YzZiNCByZWxlYXNlMjUtbWFpbnQKKzYwMTk1IDAwYTY4NTk2ZTUwNjUwZDQxZDgzNDNlMDcyZTlmNzA0ZTJkMmZkZDEgdHJ1bmstbWF0aAorNjAxOTYgZTA1MDRhMWM1ZjlkNzJkNzE0NGIyYjU3ZjQ5N2RiN2E1NTZhYjJkYiB0cnVuay1tYXRoCis2MDE5NyBlNDNjMmFiNmE1N2M3Njk1ZTg4YTc0YjU5NTcwNTE3MWVjMWEzMGIzIHRydW5rLW1hdGgKKzYwMTk4IDA5MTgwNjM4MWNmOGQ2YzE1MTJiYjgwOGE3YWQwNTA0OGZhYmM2MjYgbGVnYWN5LXRydW5rCis2MDE5OSBjM2NlNTZjN2VjZDExYmFkMTU1ZTdjMmFhOTMwNTNmN2Y0MTFmOWNhIGxlZ2FjeS10cnVuaworNjAyMDEgN2NhMDdmZTAyOTU4ZDEzOGI1NzMxMDM3ZmJhNzliOTBiMzE5Mjk2MCBsZWdhY3ktdHJ1bmsKKzYwMjAyIGJiN2VlM2Q4OWMyZjYwNzY4MzkwNGE1NTNlM2Q5Y2JkOGNiYjVmOGYgbGVnYWN5LXRydW5rCis2MDIwMyA1NmYwZmJhZWI2N2ZkZmM4ZTRiNjcwYTE3YzE0ZjFiOGMwMTRmYmJhIGxlZ2FjeS10cnVuaworNjAyMDQgODY3YzBhYWQ3OWMxNmE3MWVlYjE1NzIyZjcwYWQ1NmEyNDc2YTQwOSBsZWdhY3ktdHJ1bmsKKzYwMjA1IGMzZWQ2ZGE3YTE0Njg0NmMwM2NjYTVmNTg3MzM0OTVmYjgxZGFhZTUgbGVnYWN5LXRydW5rCis2MDIwNiA1Mjk4YWJiZGQ5MWNjZWM2ODM2N2M2NmI0YWZlN2JjMDgwNDgwNDk0IHB5M2sKKzYwMjA3IDZiZDQ4NDliNTQ1OGRlNTUwMGQzMDUyYWQ0YmY5ZjRmMDM4MTIyNjYgbGVnYWN5LXRydW5rCis2MDIwOCBkZjgwYzZiNjA2YTQ4NmNlNTBkOTg2ZjY2NzRhNzE3YmE4ZDg4MmQ5IGxlZ2FjeS10cnVuaworNjAyMDkgZDYyYzEyNmZlNTZhMmQ2NDMxN2I2NzUzMDlmMmQzYWNlNzA4ZjJlZSByZWxlYXNlMjUtbWFpbnQKKzYwMjEwIGZlZmFhMGU2NmZkZDBlMzUxMjEzZmJhYjA5MjkxNDFlZThiMTg4ZDcgcHkzaworNjAyMTEgZWI1OTEwMDkyZjU5YmJiNzVkYjZmMzgxMTU0MTFjYmFmM2NiOGViMSB0cnVuay1tYXRoCis2MDIxMiBjNGI5OGJjMTBiZTdlMTE2MGU1MWI5NjZkYzk5ZjhlMGU2MWUyNmM1IHRydW5rLW1hdGgKKzYwMjEzIDJlMTUxMzc2OTQxZjhiNWJiNjk2NWJiYjg3NDVkZjk2OGM3NmU2ZTYgbGVnYWN5LXRydW5rCis2MDIxNCBkZmQyMTc5M2E1YjU3NTExNjllZmU4NmMyMGRiZTljYThjZTIxNmE5IGxlZ2FjeS10cnVuaworNjAyMTUgZGZiNmYzNjdhNDA2YmJhZTllNGU4ZjY2Njk0MzA2MDZiZTBiNTRjNCByZWxlYXNlMjUtbWFpbnQKKzYwMjE2IDlhMTIxMWM3N2UwMjhiM2FiY2IzODMwYThiZDIyZDVmYmQyMGJlODUgbGVnYWN5LXRydW5rCis2MDIxNyA2OTU4MmJiMTExNGMzNmJkZmU0MzQzMjE2NzM3MWZjY2M2MzQ4MzYzIHRydW5rLW1hdGgKKzYwMjE4IGE0MDIyOWFkZmEyY2NkOGQ1MzE1OTdiODg5ZDhkYjE2MGFmZjdiNWYgdHJ1bmstbWF0aAorNjAyMTkgYjI4NTRlOTc0Y2E5NjcwZjYwYmNkYTFkYTBhOGY2YjZhMWQwMjMzOCB0cnVuay1tYXRoCis2MDIyMCBiY2NjNzY4MmM2ZDRiYTRhNTJkMmQ2NGRmYTkwZGQyN2ZmMTdiYmFjIHB5M2sKKzYwMjIxIDAwNTkyMWZjZmY0M2FkYmM4OTNiY2U3Nzc3NWY2Y2IyNWRjZGRkMTcgbGVnYWN5LXRydW5rCis2MDIyMiAxNDhjODdhNjY3YzIwMWQwNmYxYjc5MjIyZjA2MTYxN2Q1OWQxYTZmIHJlbGVhc2UyNS1tYWludAorNjAyMjMgZmRkNzRiZGVlZTE1YmQ0N2MzNzc5YmM4NTk1Y2Q0YzllZmM1NzZkNCByZWxlYXNlMjUtbWFpbnQKKzYwMjI0IDRjODMwOGFjMjBjZGQ5ZGRjMzFhZmIxZGQ5YmUyNzMyZjYwY2I4ZDcgbGVnYWN5LXRydW5rCis2MDIyNSBiOTM0ZDJlZTYzZjYzOWJkYzViY2I5ZTYxNjJlNjZmZTc5ZTljYzBjIGxlZ2FjeS10cnVuaworNjAyMjYgNzMzMzM1YjIyZjhmZDc4YTMwZmEyNGI1Mzc4Yzk2NmRkMjMwN2RiYyBsZWdhY3ktdHJ1bmsKKzYwMjI3IGQ5YTYwNzUyNTU4ZWY3ZDg0ZDI5MjQwZTEyMGU5OTExNDM5NTQ2NzcgbGVnYWN5LXRydW5rCis2MDIyOCA5NWE0ODczNTE3NDA4MGFlNTc4MjI3YTVmNzAwN2U0NmE4YTYwOWZkIGxlZ2FjeS10cnVuaworNjAyMjkgY2RjNGFlY2VkZDRjODVjZWY2ODRlMDFlMjgxZGViM2FlMDRjZmZkNSBsZWdhY3ktdHJ1bmsKKzYwMjMwIGNjNzNhOGQxOTM4YjQyZWM0YjlmZTcxZGQyZGQwYTU4ZjliMzIyMGQgbGVnYWN5LXRydW5rCis2MDIzMSAwMTJmNTE2ZDRkMjJmMzhlYmUwMjllMzllZTIxNjA1MThlODY2ZDFkIGxlZ2FjeS10cnVuaworNjAyMzIgZmVkOGMzNmQ4NzE1MGMzNzAxMmQzY2UzMDI0MjUwY2NmOWFhOWYyYyBsZWdhY3ktdHJ1bmsKKzYwMjMzIDIyYTlkOTc1N2ExNjk3Yjc5MjNjZTM3OTg1M2ExODA5NDMxODkyNTkgbGVnYWN5LXRydW5rCis2MDIzNCAwNjNlZDM3N2ZkM2Q2MmY0ZjEzNTcxNDBhYzAwNjE0M2FlNzVkZmI2IGxlZ2FjeS10cnVuaworNjAyMzUgYzBmMDQ4MzU2YzM2Yzg5MDJlMWEyODYyZmQ1NTYzOWNjNDhkNGI0MCBweTNrCis2MDIzNiBlMjJhOTJlZWM2NjIwMDY3NzVjYmNmOWFjZTY5MjBkZjg1NDgyMzNiIHB5M2sKKzYwMjM3IGYzYTlhZDQ0OGNjYWQxOWViMzcyNWYwZDkyYTI3NDQxNWY1NmQzNTYgbGVnYWN5LXRydW5rCis2MDIzOCA0MzcxNzIwOTNhMjNhMjQyMTA2YTMwOGFiM2FhYWZkM2RkNTdkYjg1IGxlZ2FjeS10cnVuaworNjAyMzkgY2JhMzA4NGIyN2U3MjY5MDY0OTQzYzdhZDJjOTc3Y2M0NWVlMWI4YSBsZWdhY3ktdHJ1bmsKKzYwMjQwIDk5OWE1ZWU5Y2QyYzNhMWY3NTEwMTU5ZjU0OWZlMmNiODZlNzhjMWUgbGVnYWN5LXRydW5rCis2MDI0MSA5NDhiYmEwZTI0N2I4OTU5MjlhYzJjZGE1YjNkYzNiMmE0MmJlNTNkIHJlbGVhc2UyNS1tYWludAorNjAyNDIgZDhhYjMyODIwYjE3ZGI1YmFjMTY2MTFlNjRhZGNjN2E1ZWJiN2JkMiByZWxlYXNlMjUtbWFpbnQKKzYwMjQzIGYyZGE3ZmNmM2EyNDRhMjA5MGRmYzkzNDk4YWRhMzRkZGRjZjVkOTIgbGVnYWN5LXRydW5rCis2MDI0NCA3ZmEzYWU5YmEwMzFkYWY2ODlhMjYyYTQ0OTIwNWUwOTYwMTliNTE2IHRydW5rLW1hdGgKKzYwMjQ1IGMzM2YyNzc5YTkzODYwNGMyOTFmY2NjMzEwMjRkMjBiMjBjNTUxMmEgcHkzaworNjAyNDYgZWJiYjdiYjAwMzNiYzM0Yzg3ZDI2YzI3YTg1ZjBiZjU4OGY0MjkzNCBsZWdhY3ktdHJ1bmsKKzYwMjQ3IGRiNjI0YjFiYTA2ZGU5YjVjODk3YWY1NjIwMzRiNTQ5OGU1NjYxY2QgcmVsZWFzZTI1LW1haW50Cis2MDI0OCAyOWZmOTA2NmRkMGM4M2RkZjQ1MGI3YjRmMDYyNmUwYWNkNzRkYWYxIGxlZ2FjeS10cnVuaworNjAyNDkgNjg1ZTk2ZDIwODgxYmFkNmRiMzQ0ZTVhMTRmMDE0NzA2NmNlYThlNSBsZWdhY3ktdHJ1bmsKKzYwMjUwIDhiZDVmMGRiN2Y1ZDEwNzBhMmQ0YzAwNGMwNDhiZDE0NjA3N2JlOTkgbGVnYWN5LXRydW5rCis2MDI1MSBhOGI3NTAyMTBiNzk5MDkxZThiMzI4MDMwYjY5MTZhNmEyNGQyODg1IHJlbGVhc2UyNS1tYWludAorNjAyNTIgNmVmM2JlNDdhNDRlN2U0NmMxZmExZjBjZjMyYzdmMDE4M2IyNzJkYyBsZWdhY3ktdHJ1bmsKKzYwMjUzIGQxNmRlNjI1MmY3ZmE0MzhlZjRmNjRhZjc4ZjNkYjVmODQ3MWYyYmIgbGVnYWN5LXRydW5rCis2MDI1NCBlOGVmYTYyZWVjMTU3ZDBmMjVkODdmYmI1NmVkZDEzMzZiY2JhYWY2IGxlZ2FjeS10cnVuaworNjAyNTUgYThjNzQxMjUzNzZkNjUxOTQ0NmY1OTQ3MTJlZGE0NTEzNzAxN2U1NiBsZWdhY3ktdHJ1bmsKKzYwMjU2IGY0YTZjMzIzNTAwYmVlMDU1MjA2ZGEwMTNmZGE2NTFmMmNlZTFlZDggbGVnYWN5LXRydW5rCis2MDI2MSBhNmYwZTRiZmMyZGQ3MGZlYjQyYjhjOGIyNWYwMWEwODc5ZDU5MjMzIHB5M2stY3R5cGVzLXBlcDMxMTgKKzYwMjYyIDdlM2FmZTkwNjQ0OTViMmIwZmViOGFhNWU0ZTVhN2NmMjMyZjAyYzEgcHkzay1jdHlwZXMtcGVwMzExOAorNjAyNjMgM2Y2MWI2NjQzYjdlZWExZGRhNTdhNzc3NTM3ZDM1YTYzZjFhZjI2ZiBsZWdhY3ktdHJ1bmsKKzYwMjY0IDc1N2E3ZjMxZTQ2MDkyYzA4YzQ2ZGRkODcwNDI2OGYwNzRlMmJlZGYgbGVnYWN5LXRydW5rCis2MDI2NSA2OWM1NzAzZDIwZmI0MTA5MzRhMWUzMGQ5Y2I2M2ZlYmMzZGE2MDI1IGxlZ2FjeS10cnVuaworNjAyNjYgZWJkYmU4ZGY2MmIwMzk4NTM0ZTkzNTUxY2I1ODcxMGFmNjdlNTdhZSBsZWdhY3ktdHJ1bmsKKzYwMjY3IDQyNjhiNzdmOGU1NjdkMGMwMzZiMzM1ODUwZjQ0MDExODQ2NDZmYmYgcHkzaworNjAyNjggNzQyYTI2NGNjZTRmYWIzNzgyZjcxMTM4OTg5NzA0ZGI4NzdmZGUwOSByZWxlYXNlMjUtbWFpbnQKKzYwMjY5IGNlMTU5ZDAxZWUzMjJhNzcxYWM3MzU2ZmMxMzEwZTBiZDQ3NDRiMmMgbGVnYWN5LXRydW5rCis2MDI3MCA2ZGEwZWVhMzY3ODNhOTMwODkxZTNiYWM3OGIxNDRlZmQ0NDRiOWZlIGxlZ2FjeS10cnVuaworNjAyNzEgM2JkMTljOGFmMmIxMWQxZjEzY2QxMDUwNTNmMjBkYmY2ZWI0MjgxYyBsZWdhY3ktdHJ1bmsKKzYwMjcyIGZhZTU0NTkxYzAzNTY1ODYxMTc1NjZmYzI2NjE0ZTcyZTYyZWE1NWUgbGVnYWN5LXRydW5rCis2MDI3MyA4NDQyMDMyMDlmYjA2ZWNiZTg1MzRhZTU5YWMyYWMxYjgxNTQwY2RkIGxlZ2FjeS10cnVuaworNjAyNzQgNTQ1NThlMDI5YzJkYTQyMGM1Y2E2ZjJkMWNmYmNkOWNkYzAyMTNlMiBsZWdhY3ktdHJ1bmsKKzYwMjc1IDkzNGE1OWQ1MjU0MzE0ZDM3M2ZkY2MzY2EyODljNjdiN2VmMTg2MTEgcmVsZWFzZTI1LW1haW50Cis2MDI3NiA5OTcyY2NjZjZhMzNmNDQ5YTU5ODkyNWQ3NzgzMzdiNzEyNWEzODRiIGxlZ2FjeS10cnVuaworNjAyNzcgMTIwOTkxNDM3MjRmMzRjY2NkOWE2MmFmMGNmOGEyMTViMWRmYjFmNCBsZWdhY3ktdHJ1bmsKKzYwMjc4IDA4ZWIxYzQxMTExMzkxZGJiMWNkZjFmNjNlM2JmNzdmMWM4YTE1OGEgcHkzay1jdHlwZXMtcGVwMzExOAorNjAyNzkgNTNlN2JjZmI1NGE0NWY1ZmQxY2IxNmUyNTNhZjQzNWMyN2JlYmEzMiBweTNrCis2MDI4MCBhYTgzODk1OGU1NGFiMTM4OGU0ZDljZDg3Mzk5Njc0ODUyM2NkMTRhIHB5M2sKKzYwMjgxIDY1NDdiZTExZjQ0Mzg1ZmM4MGYzMGY5ZjMxN2MyYzY2NzQ0ZTQ1NzggcHkzaworNjAyODIgOGJjYThlYjM2ZTM3ZjUxODlkMDk1MzcxYmU3ZWFmZGQ5MzEyZjFhOCBweTNrCis2MDI4MyBiYmM3MTlhOGI1OGJmNmQ5YzRiN2ExZmUzM2RjYTA1ODBjZTRjYzA5IGxlZ2FjeS10cnVuaworNjAyODQgMDVmMDFkZDc1OGExYmRmZmQ5ZmMzMDdhODljNDY0OWViNTliNjM3MiBweTNrCis2MDI4NSAzYTQ0MmEwMDlhODNlNTg2ODY4ZDQ2YTBiOWMwOTBlOTNmYzM5Nzc4IHB5M2stY3R5cGVzLXBlcDMxMTgKKzYwMjg2IDhlNDM1YmRkNGJjODk2NmFhMzlhZWVkMTlhMDY3NGI2NWUwMDc4MzkgbGVnYWN5LXRydW5rCis2MDI4NyAxYmU5M2RkMTc5ZGY3YTkwMmM0OWI0NmM0MzhhOTE2NDRlNTg0NTUyIGxlZ2FjeS10cnVuaworNjAyODggZGNjZWFlZmE2N2ZkOGU1ODJlNWNlMTRlOTZhZGQ0MTA1ZWUwNWQwZSBweTNrLWN0eXBlcy1wZXAzMTE4Cis2MDI4OSAyN2QyMjdhODdhNzM3YmJkMTEyZjVlZjk4ZjFhZjQzYzE1OGFhMGViIHB5M2stY3R5cGVzLXBlcDMxMTgKKzYwMjkwIGVmNDJiZDdmY2JjODNlMzkwMmQ4M2ExZDBkMDBlNGJjY2VjNzUyMTggcHkzay1jdHlwZXMtcGVwMzExOAorNjAyOTEgZGRiMWU0OTlhMDFmODE2M2RlMTMzYWVmOTc3MjZiOTg4ZTBjODJiYSBsZWdhY3ktdHJ1bmsKKzYwMjkyIDNjNTdhNTFmNzM5NGY4NzUzMjhkMzk3MGUwOTM0OTkzNjcxNWUyYjggcHkzay1jdHlwZXMtcGVwMzExOAorNjAyOTMgZDhlODgzNThmNmMyNDA4MjhiOTZjYzZjMzI1MTM4NjE2NmIwZjY5ZSBweTNrLWN0eXBlcy1wZXAzMTE4Cis2MDI5NCA0MjQ0OWY2ODI4ODViYTA2ZWY3ZjVhMGZkM2NjYmQ4Njk1ZDRkODI3IHJlbGVhc2UyNS1tYWludAorNjAyOTUgNTk1MGQ4ZGU4MTM0YjU0OWVmODJhYTY5MTFlMzBmNzlkYzM5ZGQwYyBweTNrLWN0eXBlcy1wZXAzMTE4Cis2MDI5NiBiNTQ3NDZlMmE4ODBiZDM1OGFiZGQ0MDk0NWY0NWY3NDk2NTMzMzBmIGxlZ2FjeS10cnVuaworNjAyOTcgOTQ2N2VhMjAwNDZjMzFkOGNkN2I3NTA1ZTE0MWE0MGE4NDUwNTA5MSByZWxlYXNlMjUtbWFpbnQKKzYwMjk4IDFmNGIxYmFiYjllMDdiMWMzZGE1ZmU3YjIyNjZhMjRhZjA4MDY4NWUgcHkzay1jdHlwZXMtcGVwMzExOAorNjAyOTkgZWExZDQ3YzdhNDY3NDdiMTVhM2MwNjc1OWNhZWQ1N2I2MjA5MWZmZiBweTNrLWN0eXBlcy1wZXAzMTE4Cis2MDMwMCA4OTEwNTBhNmE1YzkwMTcyNzc0ZmVjM2UzYmVjZWJjOTdjOTI3ZTc0IHJlbGVhc2UyNS1tYWludAorNjAzMDEgZmI2OGU0NDU4N2VhMjU5ZDUyMjAyMGFlZjE0ZmMzNjkzYTg4YjE3ZiBsZWdhY3ktdHJ1bmsKKzYwMzAyIDk2ZjVkY2I0ODBhNjAyZjlkZTUzY2Q5ZDIzZWUzN2Y2NDgwZTYxZTkgcHkzaworNjAzMDMgODUxMDMwMTYyZDcyODM0ZjA4YWViOTMwYjViYTQ0YTg5N2UyNjM0ZCBsZWdhY3ktdHJ1bmsKKzYwMzA1IDY2NmNlYjY3OTlhNzgxNTcxZTVkZDM5ODk2OTJjMGRjYWYyZTRlYjkgbGVnYWN5LXRydW5rCis2MDMwNiA2YWUyMjAzMGUxNTI1NzZlZjY4YzZhMGEyYjEzOWI0M2FmOTg1YjNhIGxlZ2FjeS10cnVuaworNjAzMDcgZDM0N2MxZjljMzhhZDY1OGI5YTdhY2M3YzJjN2RmODA5NTcwN2NkNyBsZWdhY3ktdHJ1bmsKKzYwMzA4IGM2ZTVjNjA0ZWE2MWRlZTJjYTJhNmVhYzJiM2M3Y2NlNzJlNjJjZGEgbGVnYWN5LXRydW5rCis2MDMwOSBiZTQ0ZmFlZDU0MmQ3ZmQwOGY2MWU0OGUyZTRhNDM1NzI1YjNlN2I1IGxlZ2FjeS10cnVuaworNjAzMTAgMGYwOTNlOGIyZjUzMWI0YjE0ZmVjOWI1NGM0MWI4Y2E5MjkwYzRlZSBsZWdhY3ktdHJ1bmsKKzYwMzExIDMwN2Q0MTA5ZTIzZWE1ZmRlYTBhYzJiNDMzYWQ1ODk0YWNjNjYyNmQgbGVnYWN5LXRydW5rCis2MDMxMiAzMTI0Y2M1Yjk3M2YxN2M0ODk3MDdmOTA4Mzk5MWYxZDVjYjYyMDgzIGxlZ2FjeS10cnVuaworNjAzMTMgYjcwNDg1MDExMjE0NTM4ZjNlOGMxMzcwYTg0YTdjOGVkNmE0MmU0MCBweTNrCis2MDMxNCAzN2Q3NjI5NzVhOTUzZGUxY2M2ZTU4ZTBlNzE5MWE4MDg5YTExNmMwIGxlZ2FjeS10cnVuaworNjAzMTUgMjIxZGVjMDNlMjYxMjU3YmI0NzY3YjM3MzM2ZTkyMTFhY2Y4YWVhMSBweTNrCis2MDMxNiBhZWRiN2FjMjYyN2VlNDI1MWYzZmQ2YWJiODE1MDZjMDA4NDg5YWQ3IGxlZ2FjeS10cnVuaworNjAzMTcgNDdiYjMxZDA2NTc3MmQxMDA3YTU0YWI1YTFkNmNjZWZkZDYxZjY2NSBsZWdhY3ktdHJ1bmsKKzYwMzE4IDY0ZDEzZjQ1NmQwNmJhY2YzZTkwMzQwOWVlNDIxNDdkYWEyMjI3YWUgcHkzaworNjAzMTkgODQzMTYxN2YyMGUyYTk1YWJkNjE4OTkzZjhkZjI0NWUyODhjZjM0YyBsZWdhY3ktdHJ1bmsKKzYwMzIwIGFhYjVjOGU4ZjM4ZGMwMzM5ZDIzMDhhZWI1NWFiZmUwZTE2ODY5YmIgbGVnYWN5LXRydW5rCis2MDMyMSBhYWE1YTc5NGY4ODdlMjFkMWNmYjY0YWY3OWEzOWQ1MjE3NDUyMWRlIGxlZ2FjeS10cnVuaworNjAzMjIgNWUwYjQ2MGYyOTRhNWM3Y2MxZTFhZGM4MWFkNzQ3MmU0MTVhMmNhMCBsZWdhY3ktdHJ1bmsKKzYwMzIzIGE3NTBhMjZiNWZhZGE2MmU2YTBlZDk5YTk2YmJkZTIwNDNmOTIyZTMgcmVsZWFzZTI1LW1haW50Cis2MDMyNCA1MWJiN2IxYWU3NjU5MTA1ODgzNmYxNjg3YmIwM2Y5ZmVkYjA0NjlmIGxlZ2FjeS10cnVuaworNjAzMjUgZGYyM2Q1MjQ5NTUwZDdmNzg4ODdmZWIwNzZlNjI3NWYwZjZkZDdhOSBsZWdhY3ktdHJ1bmsKKzYwMzI2IDY5OWIzNzE3MGNhZGM2YjAxOTRjZmE0YzM2M2ZmNWY1OWQxNjAwY2IgbGVnYWN5LXRydW5rCis2MDMyNyBjYjU4MzlkMTMyMjYxNmEwMTQ5Nzg4Mzc4YTJkODZlNGZmY2M1OTI3IGxlZ2FjeS10cnVuaworNjAzMjggOGNiY2E5MWUzMTU0OTcwYmI0NzU2ZDI4ZjI1YWVlOGQ0MTlhOTZiZCBweTNrCis2MDMyOSBmYmI5YWU5YTUxNGZlYmE5MGNhYzcyOWJiM2NkOTkyN2Q1NGQyMzMyIGxlZ2FjeS10cnVuaworNjAzMzAgNWQ3ODJjOGQ0MDE2NjhjYjkzZDYxOWM0ZDg0Njk3MTY3ZDQ1MDMxYSBsZWdhY3ktdHJ1bmsKKzYwMzMxIGRjYTNmNjQ2ZThhMWZiNTlmZjI4YWM2Njc4YjQxOTQyYWZlZjA0ZjkgbGVnYWN5LXRydW5rCis2MDMzMiBmM2I1ODQ4NDNmOWZiZGM5YzU0YWI1MTQ1NmU2ZmM3ZTA3NGRhMGZjIHB5M2sKKzYwMzMzIDk2MmM0OTFlMTdkNmNhOGM2ODAzYjAyZDBhMjcxZDA3ZGVhYjkyNDAgcHkzaworNjAzMzQgNWY5ODQ0NmUwZjFiYjdiNzU2MjRiYzU3MDI5NWU1YmYxZmE0ZGMwMCBsZWdhY3ktdHJ1bmsKKzYwMzM1IDUwZjJkN2JkYWJjOWE0NmM3MDljMTE4NmIxMWJjY2IxMzc4MzU2YzUgbGVnYWN5LXRydW5rCis2MDMzNiA5MDkzOTA4YTBjZjVkNGMyY2Y2N2Q2M2Y5YTI2YTk5YTlkODU4OTkyIHJlbGVhc2UyNS1tYWludAorNjAzMzcgZTMzNjI1ODk1NTUwMjYxN2I1ODMyOWM3ZmEwNzBiNGU3NzkyMTVkMCByZWxlYXNlMjUtbWFpbnQKKzYwMzM4IDViMTdiNDRiZTFiZjg3OGQ2OTFlZWNmOWYzMmM5NmU4ZTQyYmNkYjUgbGVnYWN5LXRydW5rCis2MDMzOSA2MzVhNzU2MzYwZjE4YzlhMTE1Y2NiZTI1NjRhNzYzNmRjYzYxMjQ0IHRydW5rLW1hdGgKKzYwMzQwIDcyYTY3MjdiZWQ5YzllMTRmM2U1NTQ2MDNhZGE3NDIyOTBjZTg4YWUgdHJ1bmstbWF0aAorNjAzNDEgNmFkYmQ2MmI5YWJmYTBlMzBiNTk3ZDdjZTExMGQ5ZTEyNDNiNmJlYSB0cnVuay1tYXRoCis2MDM0MiAyY2EyYjA4NDBiMzVkMzg0NWQ4MGJkNzc4NjM1YTA2NWQzNjZhNjQ5IGxlZ2FjeS10cnVuaworNjAzNDMgMjBiZjk0Mjg1ZWVmZTg2ODY1YzE0NDkyZmMwZGZmMDc3YzBmMzUxZSByZWxlYXNlMjUtbWFpbnQKKzYwMzQ0IDRkZDBmY2YzZGFmNzNlMjZmMDNjMmI4YjdlZDExODhlMTY5MTE1ODEgbGVnYWN5LXRydW5rCis2MDM0NSBmZjU4YjMwYThkNTI4NzFkNmNmMDU0MmNmN2VhMWE3MDRkOGExNGViIGxlZ2FjeS10cnVuaworNjAzNDYgNmJiZjZmZGMxNTJiOWU0MmVkYmYxMWE2MDVjMjE2MjMxOTk4MWU2MiBsZWdhY3ktdHJ1bmsKKzYwMzQ3IDQ2N2M3MWYzNjVmZGViNGY2OThlYzQ3MjEzNGFiODRiNzE5ODRmY2QgbGVnYWN5LXRydW5rCis2MDM0OCBmMDE4MTNiMzNjYTRiY2RmYjRjZTEzNTVlN2QzYjFlYTA5ODhlYTA4IGxlZ2FjeS10cnVuaworNjAzNDkgNjJmMGJhNzQ1MzU3ZjA1OWJlYzZkZGQzYTQyNTdiMjgyOGZhYzdjYiBsZWdhY3ktdHJ1bmsKKzYwMzUwIDdjMDIxODJlMjk3OWEyMmVlNzU4Y2EwMmYyNWY4ODJiMmI4NDBkNDggcHkzaworNjAzNTEgOWI3NGM5YzhiOTJjNzlmYmY5MDRmNDY3NmU3M2NkYThkYzM2ZjBkNyBweTNrCis2MDM1MiBmNWU1MmE1M2ZjZDE0ODM0ZjYzNzJiNmNlMWI2ZWFkOTg5MTNiMjA4IHB5M2sKKzYwMzUzIGVlMjQzY2E2NWY1ZjU0NjhiZDA5NjM5YzgwNzA0MmZmM2VjZGY2MmUgcHkzaworNjAzNTQgZjE1ZDNiZjRjYTU2YTEyZDFiMDZjNjI2MWI1MzBmZjE4MDQ1N2I0YyBweTNrCis2MDM1NSBlMjI0YWQ0YjhiOGNhZTMxNmZkYTA0YTI1OTc1M2FlYTJlNmEwNTU2IGxlZ2FjeS10cnVuaworNjAzNTYgNzA3ZGQ5ZjM4NGYzODk2MjRiMjBmMjEwYmFiOWI5YjQ3NTEwNjg3YyBsZWdhY3ktdHJ1bmsKKzYwMzU3IGZjZmExMzE5OWVjYmRhMjllZDk1OTFkNTJhZDc1ODhjOGJiM2ExNzYgbGVnYWN5LXRydW5rCis2MDM1OCAxZDcxYmY0NzVhODVmM2FjNjY3ZWY3ZTMwNTNkZWJhZTUxMWQ4NWJkIGxlZ2FjeS10cnVuaworNjAzNTkgMmU0ZGQzOWJmNjkwNTYzMjY5ZjUxNWU3NzQwNjE0NWUyNGY5YTljMCBsZWdhY3ktdHJ1bmsKKzYwMzYwIDYwNGFhYzQzMzdhNWM1YjEzNGFhOTVjNTFjNmJiYjM3MzQ3ZTUxNGEgbGVnYWN5LXRydW5rCis2MDM2MSBjMzE1YjY3MjQ1ZjdkNTRiMDMwYTUzZTI0ZDA1MDRkNDdkZGNjZjRkIGxlZ2FjeS10cnVuaworNjAzNjIgYTNkNTcwMGIxZDVhM2UwNjA3MDc3YjVjZmU0MTY1MjJiZTNmNjRiMiBsZWdhY3ktdHJ1bmsKKzYwMzYzIDFmZjJiYjUxODdkZmY5MmE1NDIzZmZjOTEzY2I5YTJkNTc1OTI0MTYgbGVnYWN5LXRydW5rCis2MDM2NCA4NWNjYzdjMTU0MjVkZTgyNzhhZDQzMzI5ZjJmMmJmNDA5OTE0OTA3IGxlZ2FjeS10cnVuaworNjAzNjUgYjA2NGUyNWZiODQyMzQxOWY3Nzk5ZTNlY2FlMzVkOTU0ZjhiNjBjYyBsZWdhY3ktdHJ1bmsKKzYwMzY2IDU2MWMwNjVlM2YyZDVmZThlZmEzYzU2NDkyZTM1YWYxY2VlNTdmOGUgcHkzaworNjAzNjcgMGE3MGY1YjMwYjhhYzE4N2E0Nzk3OTQ2NWZlNDJmNDJiYTEzMmU4MCBsZWdhY3ktdHJ1bmsKKzYwMzY4IDIyOTQ1ZGJjZDAzMDFmODY3N2JmNDBlMTI4OTE5NzM2YjBmMTE2YzMgdHJ1bmstbWF0aAorNjAzNjkgNDcyNWM4NGIwNDIyNzliOTU2OTJkMzJkMTYxNmNlZmYyMGY1YjliZCBweTNrCis2MDM3MCBmN2QyMzYwZTk1M2RlN2NlOWQ3MzljZTgyNmM3ZmJjMzQ5MDFiZmY5IGxlZ2FjeS10cnVuaworNjAzNzEgYWZhNTk5MzIyNGU1NTYzMDY0ZWFhY2MxM2YwMmY5YjY4ZWI3NjYyZiByZWxlYXNlMjUtbWFpbnQKKzYwMzcyIGJlMzE0MGVjNjdjOGY2MzA4ZjQ4N2EwYjNlNmNiMzRmNTg2MTlhNDUgbGVnYWN5LXRydW5rCis2MDM3MyA3OWY0MzlkOTlmOGMzYjhiMTkwNjc1N2VkYmMzMTNkNTNlYzVkNDlkIHJlbGVhc2UyNS1tYWludAorNjAzNzUgNjk1ZTViZjNhZjljMDU2OTIxNGZjY2QzN2FlMjVmNjcwMGRmY2JlZiBsZWdhY3ktdHJ1bmsKKzYwMzc2IDcyN2NjODEwZDY5MGJjZTg4NDY2NDM3MjFkNmM4N2YxMTFlZDVhNjEgcHkzaworNjAzNzcgZjA2MmRkYTU0ODk0ZjI0MGY5OGEwNDg1NGYwNzYwMzRkMzI2NGRlMSBsZWdhY3ktdHJ1bmsKKzYwMzc4IGVhM2ZlMzAyZDM5MjA2NDBmYzYyODg3NTA2YjVhOWE2M2ZhZjFkZDQgbGVnYWN5LXRydW5rCis2MDM3OSBlYmZiYWExMDUxZTJkMGQ3OGQ2Y2RkMjE5YjU1OTAxMTU1Yjc4Yjg5IHB5M2sKKzYwMzgwIDUyMzJmMDdkOWM4ZTNkYjM4OTI0ODRiMjdmMWZlY2UyN2U3YWI0YWIgcmVsZWFzZTI1LW1haW50Cis2MDM4MSAxYzlhYzAwYzQ3NTg3OTYxNWJjNzFjMWUzYzAxN2M3OTM3ODc2ZWQyIGxlZ2FjeS10cnVuaworNjAzODIgNDNjYWY4MThjZmYwNzI5MWMyODUzN2Y2ZDQxYzdkZmVhZjQ5N2JlOCB0cnVuay1tYXRoCis2MDM4MyBlZjJkM2JmODM4M2RjYmIyNTZlN2E3YTg2YTQ3Mjc3NjBkMjRmMjUzIHB5M2sKKzYwMzg0IGYwN2U2ZjMyOTc1NTNlN2M1ODRhODNjN2ZlNzQwNWZkNTU4MTM5NWUgcHkzay1jdHlwZXMtcGVwMzExOAorNjAzODUgZTYxNGQyNDhiZGQxMDE1N2JmZjc3ZTRiNTBkYzVjZDM4OTU2NWI3ZSBweTNrLWN0eXBlcy1wZXAzMTE4Cis2MDM4NyA1ODNhY2UxMmM1Y2YxMzFjMGU0NjlhYWZmMWY0MWYzN2FjOWZjYTk1IHJlbGVhc2UyNS1tYWludAorNjAzODggMTVmNWI3MzFlMDBiMzgxNWEzNmEyYmJkODFlZDZkZjUzNjQwZWRmMCBsZWdhY3ktdHJ1bmsKKzYwMzkwIGEyOGQwYjE0Yjc3ZGVlZjQ1YzNhN2I4YTBmNTRmZGZjM2RiMDllYjEgcHkzaworNjAzOTEgMmMzZDQ5N2ViZmQ2ZGJhYWZjMjc4MDY0YWRhM2Y2NmNmNWI4ZmI1NiB0cnVuay1tYXRoCis2MDM5MiA5NGYxOGMyZGVhYTVkYWFiZTJiMjIxZGFmNWZlMjc2YjU4YjM2OWIxIHRydW5rLW1hdGgKKzYwMzkzIDBkYTJlZjlmZWRjMDMyZjA5N2JhZTZhZjA0NWQwNmZiODcxMmJjYzAgdHJ1bmstbWF0aAorNjAzOTQgNmFjN2QyZTlhM2JjNDAyNTA3MTI4OGIyZjY3MmRjYmMwNjA2M2U1ZSBweTNrCis2MDM5NiBhYjY3MjYwNzM3YjFjODZlMTMxZGFlNTNhNmU3MGQ2NzI3ZTk0ZjNiIHB5M2sKKzYwMzk3IDE1ZThiMzQyNTRlY2ZiNWY3ODg1MWMzZDZkNDNkNGI3ZjUwMWNhMjIgbGVnYWN5LXRydW5rCis2MDM5OCAxZTU4M2ViNzFiM2ZiMzYxOTc5ODk4YmM2Nzg5NDBiNTJhMWVjZjA0IGxlZ2FjeS10cnVuaworNjAzOTkgNzdkMDUyY2UxZjRjN2M1ZDM1MDRjN2MxOTllNGJlZmU1ZDEyYjJmZiBsZWdhY3ktdHJ1bmsKKzYwNDAwIDc1NjQxM2MwZmYxZDlhYTg3ZTQ1MTE5MWNhNjNjMWRlODNiYWI1YTcgbGVnYWN5LXRydW5rCis2MDQwMSA3YTZhODBlODRhOGEwMDZlNDY5N2YzZTIzMDI4NDU2ODFlODU2MTk2IGxlZ2FjeS10cnVuaworNjA0MDIgZGM0NmE2N2E3YjdiNzBkMDExN2IzZjUzZjI5MTIzOTNiMDZmNGNjZCB0cnVuay1tYXRoCis2MDQwMyBiZDI0NmYzMzY4N2Y3NTc1YzQ5ZDZlMDMzZGQxN2MyMjBhYmE4ZTFjIGxlZ2FjeS10cnVuaworNjA0MDQgNTQ2NzNmNzI0MTA2ZWIxZmU2ZTFmZDgzMDg0NTFjZDJmMjA5MWYxNCB0cnVuay1tYXRoCis2MDQwNSBlZmVhNDIxN2E5NTQzM2NlMzBjZGEzZGM0YTgyYTE1NTQ5NGM2MTEwIGxlZ2FjeS10cnVuaworNjA0MDYgNDE4YWQxNTlmZTg0M2VlNDc3MTBjZTE1NjUwNTM0YTRkNDdmOTIyYyBsZWdhY3ktdHJ1bmsKKzYwNDA3IGNjMjJkM2YxMmIxMzdmNzI4M2Y5ZGY3MGM5YzU3MjUyODBhNDU0MDIgbGVnYWN5LXRydW5rCis2MDQwOCBjM2IzOGE4NTk4OWZjNzY1MjMyMmYxNDNlYmUzOTAwYWM2ZTM3YjEyIHB5M2sKKzYwNDA5IDg2MDk0YzQ2N2VhZmIxNDgwY2VhMzE4ZmEwN2ZiYWY4MWIyNWZjNmYgdHJ1bmstbWF0aAorNjA0MTQgZTlkM2Q1NjFkYmQxYWYyOTllY2Q1MGJlOTJkZTdmZTVmYzEwYjJiYiB0cnVuay1tYXRoCis2MDQxNSAzZjlmZTI3MTU1M2YxNmQ2MTE2YzllM2JhMzE4MGU2MzZhYTQ1MTRiIHRydW5rLW1hdGgKKzYwNDE2IDMwM2NlZjA2M2MzNTIwZWE2ZDU1ZjRlMjRlYzA1YzU2M2UxYmQ5MmMgdHJ1bmstbWF0aAorNjA0MTcgYjliZGM2YTk4YmVhMjI4OGI0ZDNhYmMwM2E4MzM3N2Q0NDIyYjY5YyB0cnVuay1tYXRoCis2MDQxOCBlZGQzNjdjMjJjOGZjYzQ0OTM4NjYxMjhhY2Y4NDE2NTdiN2IzMDU2IHRydW5rLW1hdGgKKzYwNDE5IDNlYmFhZTM0MWMxYjEyM2U1ZDllNTQzZDU2OWYxZDRlYWExNDA0YTUgdHJ1bmstbWF0aAorNjA0MjAgM2I0ZjBjNWVjZjUzZmQ2MmM4MjE3NWJmODkzNmFhY2QxNDcxNjE4ZSB0cnVuay1tYXRoCis2MDQyMSAyOWQ2MTVkZDFkOTcwNTVmOWRhNTJjZTQwNTBlZDRlZTc0YmMxMTFiIHRydW5rLW1hdGgKKzYwNDIyIGIzNzJjMzU0YTI4YzE3NDc1MmUwNjE0YjBhYzMyODJiZjVjYTQwYzQgdHJ1bmstbWF0aAorNjA0MjMgNTA5Y2RmNmQ2NDc5NWVkZmQ5NDk1MDQ0YzZkNTFlMjYzZjdkNGVkMyB0cnVuay1tYXRoCis2MDQyNCA5Mjc3M2Q3ZTY1M2U0YzFmZTQ5Nzg4MzhlMTNiNWY0ZjAxMTM2MzFiIHRydW5rLW1hdGgKKzYwNDI1IGU3OTFiYjBhZGNkZTgyOTA3MTdiNGFkNzMzODU5MzBmZTc1NmFkZjIgbGVnYWN5LXRydW5rCis2MDQyNyA3YWM3ZTA4OWEwNmZjOWFkNGNlMWFjYWMxMjYzN2U1OGJlZTA3OGIwIHRydW5rLW1hdGgKKzYwNDI4IDcxNjZlZDQ5OGM2ZDNjYmRlNWQxODUxY2JjZTlmZTMyZmYyMjMzNmQgcHkzay1jdHlwZXMtcGVwMzExOAorNjA0MjkgY2Q2NWJhMjNhNTBlNzYxMGU0MDEwM2YzNDM1ZTVkYTE3NmJiMGNkZCB0cnVuay1tYXRoCis2MDQzMSA5NmQwMjQ5MTY0ZmM2NTI2ZmNmYzJiN2QzMDBhNGVhOTBhYWY2ZWE2IGxlZ2FjeS10cnVuaworNjA0MzIgYjdhYThiZGU3YmNmNzBmNDhjODhkZmEwNDYyNmNlYTc2YjU1ZTAxNyBsZWdhY3ktdHJ1bmsKKzYwNDMzIDI1MGYyOWJhYjYxYjEyYzM2NmFiMzMwNmY1MmJlNDljZmRmYjM1MDEgbGVnYWN5LXRydW5rCis2MDQzNCA5MGU4NmVlMzY4NGIzYzFiNThkNmUzZWVjMDJiMDBiOWI2ZGMxNjdlIHB5M2sKKzYwNDM3IGU5NzY0YTY5NTgwOTdhMDRkODkzYzI0ZjU5ZGZjYWYwZWUwYzE4MzMgcHkzaworNjA0MzggNjI5MDlkMmU1NzNiOTc0ZjcwZDk2OThhYWE2ZTFhNTIzM2YxM2FhZiBweTNrCis2MDQzOSBlNDMyMzg3NjBjMzg3Mzk2ZTA3OWQ2ZTczYzBlMTI5ZjYxOWQwNTM3IHB5M2sKKzYwNDQwIDI2Mjc4Nzk2ZDRkYTEzMTlmMzkzODM3MDBmNTQ3Y2NkNjk5YThkZTcgbGVnYWN5LXRydW5rCis2MDQ0MSA1M2I5MGYzMWVmZDZlNjZhMjgwYTY5MGU2MzA4ZDQ4NGVlYjA4OTZkIGxlZ2FjeS10cnVuaworNjA0NDIgNTEwYTQ4Mjg5ZDFkNjg4ZDUxODFjYmZkODNkNGE5ZWI4ZmJkOTUzOCBweTNrCis2MDQ0MyBjOGZjYTliNWNkM2MzMGRjY2I1ZDRkZDcyZmZhZDQxZTM1ZjI5YTVmIHB5M2sKKzYwNDQ0IDc2MzhkNGFlMzEwYzIxZjk4MDA4OTYyMDE1ZTQ0ZGUwNDgwMTg5MDMgcHkzaworNjA0NDUgYmQ4ZDIzNjlmMTQxMWIzNTA2YjY0ZWM4ZTI1MmUwZTFmODA3MzI3NCB0cnVuay1tYXRoCis2MDQ0NiA1YWIyMzdjOTY2OTVkZjdhMGI3YmU4ZTY3N2YzNGYwZmUzMzA2NDYwIHRydW5rLW1hdGgKKzYwNDQ3IGFmZDBjYjI1YzczZTIxMzE4MDdiMDEzMDFkMGM2NWVkMzdkMGVjYWYgcHkzaworNjA0NDggOTYzOWE3M2FmYTQ3NzYxNGMwZWQzNmQyYTg5ODljNzQ1YTUzOWVkYyBsZWdhY3ktdHJ1bmsKKzYwNDUwIGMwNWVlNzdiMzlmMmRjMTA2ZGQ3YWFlOTFiOTEyOWUzYTgyMGY4NjQgbGVnYWN5LXRydW5rCis2MDQ1MyBiOWVlMzFhMjZmMzg1ZDNjZmE5NGM1YmY5MjRmYzg0NmUyNTBiZjg5IHB5M2sKKzYwNDYzIGJlMDZiMzM5NTc2ODRjNDRiMDk1NWNkNGY5ZDZlN2Q4ODJjN2I0NWYgbGVnYWN5LXRydW5rCis2MDQ2NCA3ZDBkZjVlYzNkMmY0YmU3ZWIzNjRhZmUzYmQ5NTJkMTkwMTI1MDVkIGxlZ2FjeS10cnVuaworNjA0NjUgZTg0NzZhZWY4NTdjMjFjMTBlOTE1NDNlNzk5OTBkMGEzZTYyNTMyNCByZWxlYXNlMjUtbWFpbnQKKzYwNDY2IDcxOTgzNjAzZWE5OTk5MDQyNzI0NTFiYTMzMDI2MTdjMjRhNmQxOGMgcHkzaworNjA0NjcgM2YyNDk2ZGM5MWRiM2Y2NzhjNzgyMjE3Njc3ODVhMzdjZmJhOWRmNSBweTNrCis2MDQ2OCA4OTMwZmYyMzBlZTllNDYzY2Y0ZjRkMDEwZDY1ZjNkZDc4ZmY5Zjg4IHB5M2sKKzYwNDY5IGRlN2MzMDk3YjJjMTA2NTJlMTdhODZiZmRhMmY4MDRhODQ1ZDBkNzMgbGVnYWN5LXRydW5rCis2MDQ3MCBlNzdiODJhZWQxYTgzMTMxZmY0MzUzOTE1MDA1ZjhiNTEyZTIxOTUyIGxlZ2FjeS10cnVuaworNjA0NzEgMDNlNGEzNmE1NmJiYTQ5NWUxMzE1Y2YyZmUwYTkwZTc2MTIyYTAwOCBsZWdhY3ktdHJ1bmsKKzYwNDc2IGYzODBkOTkxMzkwZTA5ZjIzZDEyODQ3MDllZTJiNDk2OTE4YjlmN2IgcHkzaworNjA0NzcgZjE4M2YxMTg5ODI0OGU3NTRlZmJiZTQzOTMxMjEzMDE3MDJiMjE0NCBweTNrCis2MDQ3OSBkNjM1ZjI5ZTU1ZjgyOTQ3MGY1YTJkZjFhMjhjZTg5NTNjNjdlZjEwIHRydW5rLW1hdGgKKzYwNDgwIGE3N2M4ZGNiY2VkOTEwZmZkM2UyZjkzZDEyYjgyYzBhNWFjNzZmNDggbGVnYWN5LXRydW5rCis2MDQ4MSAzYWE0YjhkZmJjNGE0Y2I1NDJjZTk0ZjhlNDIwNmE4MjgwZmU4NzI5IHB5M2sKKzYwNDgyIDg2NTllNTI2MTRkYWRkNjllMTFiYTZlMzcxNWY1N2NjYzg4ZGE3M2MgbGVnYWN5LXRydW5rCis2MDQ4MyAzZjE2YWM5MTUyMTRlZDM5ZTU2ZmU3NGJmYjc5Y2UyM2RjMTY4NjQzIGxlZ2FjeS10cnVuaworNjA0ODQgZjBlNmJiOWIyNGY2OGIxZWYzZGNiYjRhYWYzMGUyNTg5YzNhNTk0NyBsZWdhY3ktdHJ1bmsKKzYwNDg1IGE0Yjg0MjU3YzdmODU3ZjUyNzZkNWQ1MDE1NjdjYmRiOTI2YjNjYmUgcHkzaworNjA0ODYgNDkyYjMwMmFkZWQ2ODk0ODcyZmMzYWYyNWFkZmI5NjY0NTBiZDIyMyBsZWdhY3ktdHJ1bmsKKzYwNDg3IDY3ODUwOWY5YTAzZjcyYTFlZWI0MDRiNTViZGIzZGY3ODlhZmNlMzkgbGVnYWN5LXRydW5rCis2MDQ4OCAzMTY0YjRhZTI3YzNjMWRmMjUxYWVjNzJjNDAwYjcyMTIxN2ZhMWUzIGxlZ2FjeS10cnVuaworNjA0ODkgZDc1NDAwMzFiOTU5MjE3Mzk2MWVlYjc5OTczNmVhNmFhNTI5NzA5ZCBweTNrCis2MDQ5MSBjNjZkYTU3Yjk0ODg5ODBlNTQwNTVmYTk2MWMxMzVkNDMwYzYxYTczIHB5M2sKKzYwNDkyIDM4NjA0ZmEyYTQ4ZjFmZWUxNWI5N2ZlNDdiNmZhZDJlMTdiYmMwNzggcHkzaworNjA0OTMgYTI4MWUzMzE5OGMwYWUzNGQxYmIxNTU4ZjNlN2U2YWRiNWNjZmVmMCBsZWdhY3ktdHJ1bmsKKzYwNDk1IDdjYjZlNTYxN2RhMDlkODlmM2U5Y2YzMTg4YTUzYTc4OWI4YjUxM2EgcHkzaworNjA0OTcgOTllZjI0OGZiMzE1M2ZkMDk4OTU2MGEwNWM4NTUxY2UzMjIyOTc0YSBsZWdhY3ktdHJ1bmsKKzYwNDk4IDJiNjM2OTBkNTEyODU5N2M3MDFjZGQzOWYyYjZiM2JiYTVhMzc4YTcgcHkzaworNjA1MDAgMzNiYmRjNzZhZmI2MmUxNDVlZmQ2MmFhZWNlMmQ5MjVkNmJiMGNmZCBsZWdhY3ktdHJ1bmsKKzYwNTA0IDM5NzlhZTFlZWExN2E3MTk4MDk0YjY5ZTBlOWYwZDJiMjRkYTVmOTYgbGVnYWN5LXRydW5rCis2MDUwNyA2NDkyYTc4ZTkzYjRjMWNjYzFiOTM3ZjdjNzc2NzM5ZDg5ZmZhY2JlIGxlZ2FjeS10cnVuaworNjA1MDggZmFhODhmZjRjY2U0ZDI1OWZhYjEzNzkyNzliOTFiMTFkNjhmNzEzYSBweTNrCis2MDUxMCBiZGI3MDI5NTI0OGJjZmMzNWM3ODMzYzA0MDNhZWYyOGI4NDVhMTMzIGxlZ2FjeS10cnVuaworNjA1MTEgYmVlYTczY2EyYjg4ZTdkNjhjYWFmZDIzNDdiZDdjNzNiYzJhNjA4NiBsZWdhY3ktdHJ1bmsKKzYwNTEyIDVjYjgyODgzNjBlNzM4YzNiMjFhMDY4N2MyYzk0MzYxMDYzYWY3MGMgbGVnYWN5LXRydW5rCis2MDUxMyBkMTJjOTdjYzc0NjcxM2Q0N2EyNjczMmU0ZWM0YjU2YTNkMDExMjhmIGxlZ2FjeS10cnVuaworNjA1MTQgZjRiNDllZmNlZGMwZWUyOWU0ZDRmY2UyMjY1MWJmNGU3ZTlhYzBkOCBsZWdhY3ktdHJ1bmsKKzYwNTE1IGRmNWU1MmUwNTI0NmZjYTBlOTUzZjQ4NDFlOWNmMTVkYmU1YTBjMzEgbGVnYWN5LXRydW5rCis2MDUxNiBkMGIzMWYyNDY5NGRiZTcxYjlhNzNmZjQyM2JiZGYyMjk1ZjdiYjk2IGxlZ2FjeS10cnVuaworNjA1MTcgMGI0ZThhZmVkNjYzMTI0ZDA1Yjc3YjBmNmQzYWQ3ZTQwNDI3ODA4OSBsZWdhY3ktdHJ1bmsKKzYwNTE4IGY1ZTE4YzliZGU3MDE3NTIzODBjY2Q2OTJkODdjNjcyYjU3MGJlYzMgbGVnYWN5LXRydW5rCis2MDUxOSBjZTk4MTZmNTM2OTA5YjU5ZGVhNjk5N2I0NDU1MTYyYmQwMDFkZWJkIGxlZ2FjeS10cnVuaworNjA1MjAgNGM1OWE4Zjc5ZTQyODFlYzI1NWU5OTQ5YzhkNjZmZGJiMWQ3ZjljMyBsZWdhY3ktdHJ1bmsKKzYwNTIxIGUyYThiNjc2NWFiM2ZiMGM4YzViYzZkZDE0ZDVkMDE2Y2NhNDM1OWIgbGVnYWN5LXRydW5rCis2MDUyMiBkNTRkMTMzYzZhOGRiN2Y3NmY3ODA5MDg2Y2YyN2Q2ZmM0ZTUxYWU2IGxlZ2FjeS10cnVuaworNjA1MjMgN2UyZTYwM2Y0Y2JlY2UwODUyOGZhNmIwNTU5NzA2NTRkYjJhOWU4NSBweTNrCis2MDUyNCBhM2U2Zjc0NTMzZDYwY2QwY2JmM2IxNGRjYTBiNTRjNjAyMmYyZGY0IHB5M2sKKzYwNTI1IDY0MDkxMjQzYzA3YmNlYzk1OTJkMDQyMGRlYjlkMTI3MmM1Njk5ZmIgbGVnYWN5LXRydW5rCis2MDUyNiBhODFlZjYzYTEwMDlhMjk5NGNjYmUwMWQyN2NiYWE0MDkyNjFjMmI0IGxlZ2FjeS10cnVuaworNjA1MjcgZDk4MGYxNzVjODg2MzRiZGFiMDAwOTUzNWI3ODFjZWU2N2EzMWE2MCBsZWdhY3ktdHJ1bmsKKzYwNTI4IDZkNzViZTJjM2QzZTQxMmIzNTNmODY2OTc5MjcwNTUwM2Y0MzBjOGYgbGVnYWN5LXRydW5rCis2MDUyOSA2NjBkMjk4OWIxNjFjZDU0MGFjOTk3Y2ZmNjMzZGM0ZDY3ODY4ODgyIGxlZ2FjeS10cnVuaworNjA1MzAgMDQ2NTNmOTI2NjRmMzFkMjE2MTIyY2ZhYmQ5NDFmOTJhMWRlMGI2ZCBsZWdhY3ktdHJ1bmsKKzYwNTMxIDY1YjEyNTJjMWJjMTkwYWFmNjAyYzc5OTZmOTU2MGRkNzE1YzgwYmUgbGVnYWN5LXRydW5rCis2MDUzMyBmMDNhZjYwMTIyNWIxZGU5ZTBhYzlkMmI1MzFlNjNkNmYyYjc0ZTViIGxlZ2FjeS10cnVuaworNjA1MzQgYjJkZTk3ZWIxZjY3Yzc0MzA1NzJiYTk2NmZkODVlZWQ1NDYxMmI0NSBsZWdhY3ktdHJ1bmsKKzYwNTM1IDk1YmJmNTYxM2IxOGY0OWRlNTJjNDIyYjY4ZDZjY2FlMmIwZWFhNmMgbGVnYWN5LXRydW5rCis2MDUzNiBhZWZkY2I1MjQwNmRkNzFmZWI3ZjE0NTU5NzAyZDQ3YmY4Yzg0ODFlIGxlZ2FjeS10cnVuaworNjA1MzcgNTlkODlkNjFjM2EwYjMwY2U5MGVlZjNjZmI4NTVhN2M1NzQxMTAyMiBsZWdhY3ktdHJ1bmsKKzYwNTM4IGMyZGNmNTRlOTFmZDE4OGU2MWUwNmU4N2VjMWI5NjYyNDE3MjdjYjIgbGVnYWN5LXRydW5rCis2MDUzOSAyNDk2OTQwNWUxYWFkN2Y0ZGQwODBiNTY5YzM4MTk1OGE3ODNhMGI2IGxlZ2FjeS10cnVuaworNjA1NDAgZTVlMDI4OThiNmM0MmMxMTdhZjY4Yzg3ODk1YzE0YWY2YzNkNGY2ZCBsZWdhY3ktdHJ1bmsKKzYwNTQxIDM5NDA5MWZkMWQ1MzM1ODA2MTQ1YmRjN2UzYWZlZTE2NWI1ODIyNWQgbGVnYWN5LXRydW5rCis2MDU0MiAyMTU5NGM1YTA2MWE1MGUwNTgwNTIyYjM4YTk0ZWJkYWMyNzdjOWY4IGxlZ2FjeS10cnVuaworNjA1NDMgZjJjZGVkMGMxZmQ3N2E2YjQ1ZTliZjZjMmZiNjQxNWIyNjMxMzBkMSByZWxlYXNlMjUtbWFpbnQKKzYwNTQ0IDNhYzQ4Y2IzNDAyNzM0YzYyOWZhZTc3NTY1N2FlZDUxOWNhZWNkYjggbGVnYWN5LXRydW5rCis2MDU0NSAyN2NhNDcwMGJjNmRmMGZmNzhiNDU4NGI1YTYyNjk4YjIxN2QxMmI2IHJlbGVhc2UyNS1tYWludAorNjA1NDYgNDAzYTdlZTVhNTNlY2ViNmExNThkZWNmZjE1MTQ5ZjAyMTM5OTY4NCBsZWdhY3ktdHJ1bmsKKzYwNTQ3IDZjOGM2ZGU0NGZmNzU4NjdjMDJiNTgyMjMxMGFmZWUxZmYzZDhkYjQgcmVsZWFzZTI1LW1haW50Cis2MDU0OCA2ZTEzNGFhNzM4Nzk2OTUyNjk4YjA3MjNhMTEyMzU5ZDllYzc0YWE0IHJlbGVhc2UyNS1tYWludAorNjA1NDkgYjY2YWJmMGZkNTkxMjk2ZTU0Njg2ODU3ZjcyZTkyMzA3OTBjMTBhNCBsZWdhY3ktdHJ1bmsKKzYwNTUwIDViZGM4YjU5OTIyMmJhMTRmN2ZiYWRiZGNlMzU0NzViZTcxMjU0ODUgbGVnYWN5LXRydW5rCis2MDU1MSA0YWQwOTU2NTU3OWQ3YmNmNzIwOWFkNmJjY2ZhZTVlZmU2ZDVjMWVkIGxlZ2FjeS10cnVuaworNjA1NTIgYmRjZjQwZDFiMzhlYjRmNDc3M2ZjM2YzYzM0ODYyNTNhMmM2NjIzMiBweTNrCis2MDU1MyA1YmM1ODdmOTAxNjRjNWIwN2FjZGRiYzY2NzFjMmM4ODkxNGVkZGE3IGxlZ2FjeS10cnVuaworNjA1NTQgZWI5N2U4MzAyZmEzMTA2YzQ4NDM2Y2NlMDQ1ZGE5MWRlOGI1ZDE2MSBweTNrCis2MDU1NSA0YWE2MzgzMTMyOTgwYjNlNDJjMWZkMDFiODVhODdkYTM4M2VkY2M5IGxlZ2FjeS10cnVuaworNjA1NjAgNGY2ZjQ0YmM1MTk1N2UzMDJhMzI0YTRmMzg1YTczOWYzNDFmZmQyMiBsZWdhY3ktdHJ1bmsKKzYwNTYzIDc1MDM5ZDMxMThhZWVhZDY1ZTM3YTEyM2QyNzI1ZmM1NmY1ZTJjOTQgbGVnYWN5LXRydW5rCis2MDU2NCBhM2ZlNzQ4NWY1YzU1NmIzZmVlYzVlY2JmYzhjOTYzZGMyZjMxODY5IGxlZ2FjeS10cnVuaworNjA1NjUgMzg1MGQxM2JmOTZiNzUzOWI1ZTgyOGFjZWFiZGRmMmVjOTIxZDU2OCBsZWdhY3ktdHJ1bmsKKzYwNTY2IGYwMzk1NWZhZmZiNDc0YjYxMGRhMWY1NWE1YmRiN2ZiNGI4MzdhNTQgbGVnYWN5LXRydW5rCis2MDU2NyA4ZmRkNmQ2MmVhNTVhYjc0YzJiZTlhNjdlOWMwMGI1N2RlOWMxNjBlIGxlZ2FjeS10cnVuaworNjA1NjggY2MzMTlhNWY1MDNlNzQwNmUxZGQwOTg1OWU2ZDgzZWEwZGMwODk2MCBsZWdhY3ktdHJ1bmsKKzYwNTY5IDNkN2I4NGRhYTM0YTRkNGNiYTU5ZjQyZjE3NDM1ZjQ5NjNhMWYyNGEgcHkzaworNjA1NzAgM2JlNGZhZmQ5Y2MwZGYzNzdlOGVmNzk2YTJjZjBkZjcyNTQ5MDY1NiBsZWdhY3ktdHJ1bmsKKzYwNTcxIDFiZWI3ZDI5M2Y1NTJjODBjYjU1Y2QyN2I0YmUwYTQxNzU4OWQwYzEgcHkzaworNjA1NzIgMzhkZTBlNDFkMjU0ZDc0Njk0MGQ4YmJkZDIzOTVkOGI1ODMwZGQ4MiBweTNrCis2MDU3MyBmNjlkYTNmNTcyMTc2NmUxZmIxZGZhNjcyOTY2OGM0NWFhNmJlYTJhIGxlZ2FjeS10cnVuaworNjA1NzQgOWI2N2QyNTk1YTIzMWI2Zjg5MmQ3NTk0OWM2OGUzODFkMjAxZDk1NyBweTNrCis2MDU3NSA2NDNjMTM5N2Y5NTQwZjAyZWM4YmI0MjFlMmRiZDE1MmUxZjU2NTlhIGxlZ2FjeS10cnVuaworNjA1NzYgOTY4NmM0YjQ2MjQzZGE4NWMyZTUzYTA3ZjZkN2RkNmE2YzljNmRiYyByZWxlYXNlMjUtbWFpbnQKKzYwNTc3IGU2MTEzNWY3ZjliYmZhYjdjNWIxNjYwMmIxYzYwMzQ4MTY2ZDg1NGMgcHkzaworNjA1NzggY2IxZTVjMzdkM2QwMjQwZThjNTk3NWZlYjYyYWEzZDBhMzM3YzhlZiBweTNrCis2MDU3OSA4NjYwMmI2MDM0NjJjODE2YTg2NjIyYjMxYjRjZGM0YTYxZGEzODA1IHJlbGVhc2UyNS1tYWludAorNjA1ODAgMWY4N2VjOTkxZTU5ZGVhZjQ1YWU2MTc2Yjc1MzIxZGU0OGYyMDA1YyBweTNrCis2MDU4MSBlODdiZDhkZGQwMWIwYTA5MTFlOWQ2MGQ2YWZkNzA2NTUxZGEyZjIxIHJlbGVhc2UyNS1tYWludAorNjA1ODIgMGRmYWE5MmJkNTM0OGRiNDhjMWVhMTZiMDYxNTVhMThiYTYxMjVmYSByZWxlYXNlMjUtbWFpbnQKKzYwNTgzIGU2MDY5YjI0MDMxZWFlNGEwZTdhNTdmYTBkYTA1N2I1MmVhMDk1NjQgcHkzaworNjA1ODQgM2Y4Zjg2NDkzZGFhZTgyOTcwYjRiOTk4NjY1ODk0YjRjZTA5ZmZlOCBsZWdhY3ktdHJ1bmsKKzYwNTg1IGJkZjc0ODY4OTNiYWFhMmM3MWY1OTY0N2E5MmJjYjYwNjc5ZDUzYTMgcHkzaworNjA1ODYgNjQ2MzQ3NDQ0ZmFhNTJjYzEwNWRhMjU2YTVjOGE2NjlkZjAxNGNlNCBweTNrCis2MDU4NyA1YmRhNGY3NmFkOTJjNjc1MWE0M2E0MDQ1M2IxNjFhNTllYzRjOTRmIGxlZ2FjeS10cnVuaworNjA1ODggOTRkOTgwOTY2MDU2ZmUzZWU5MDU5ZWU0ZDE2ZTNhNmU3ZjZjOGE1YiBsZWdhY3ktdHJ1bmsKKzYwNTg5IGYyZjk5MTYzNDc4MTQ4NGE0M2IzYjBkYTcwNmNmY2RiOWE5OTJiOWQgcmVsZWFzZTI1LW1haW50Cis2MDU5MCA4ZDg5MDM3ZDVmYzFhYzIwYTExNzU2ZTBkMGNlNDJmYWU1ODRhODUyIGxlZ2FjeS10cnVuaworNjA1OTEgMDYwZjAzOWQyZmFiNTQ1NzU4YzBiY2JmOTdkNWFhMmE0Yzk3NmNkOCBweTNrCis2MDU5MiBjZmEyODA0MjRiNjUwZjg3OWVlMzA4N2RjMDc1ZWU3MmM4YWI4ZGRiIGxlZ2FjeS10cnVuaworNjA1OTMgYjAxMTM2NjEwMmRiYWI3NzlkN2JjNTcyNWM3YjliYTlmMDU5NGNjZCBsZWdhY3ktdHJ1bmsKKzYwNTk0IDRkNThjMGZhNmUzNDMyMDdiNWIxODkwYmE1MGU0MWI5Y2FlNDk1ZmIgcmVsZWFzZTI1LW1haW50Cis2MDU5NSBkYWM0MjE3ZTk5NjVhMGVhOWUyM2NhODY2ODkwMmNjZTc2MDAzZWI2IHJlbGVhc2UyNS1tYWludAorNjA1OTYgZDJiNDlhNjhlNmY3YmIwZWFkMjZiMmVkMDcxMTlmOTk4OGUxMWM3YiBsZWdhY3ktdHJ1bmsKKzYwNTk3IDVmZTU1N2M3NjBhMjAwZDY3ODZmMGJkZGM3OTdkMmUzYmJiZTA5MGMgcHkzaworNjA1OTggNjg3NDM3ZjdiNzg0OTE2OTJmYWNkNzEwY2YwMGU2ZTI3MzUwMjkzNSBweTNrCis2MDU5OSAxYzJhMjY2ODZlNTQ0MDFiZGYxZGMxMDNlY2NjZDNhNDlmZDljYzcxIGxlZ2FjeS10cnVuaworNjA2MDAgODNiNWQ2YjJhYTcwZjNjYjM1Y2Q5Y2VlM2UwYTgxMmE3NmVjOTJmMyBweTNrCis2MDYwMSAwMWQxYTRmZmQ1YjM1Zjk5ODFkNDdhYWRjYzk3ZDdkYzE1YTllZTk4IHB5M2sKKzYwNjAyIDY4NjM2ZWE4OTE1MzExOTM1MGY1ZmY4ZmJmZjc5ZmRmMWZjNzM3Y2MgbGVnYWN5LXRydW5rCis2MDYwMyA4YmMxZmRjNjMzNzBkMTRmYjNkMmFhZjA2ZGYzOTJjYzlmYzkyN2E4IGxlZ2FjeS10cnVuaworNjA2MDQgZjRjMGU1M2MzNTYxYTM2YjlkNmE1YjEyNzRiZmVjYjc5ZGYxMDlmOSBsZWdhY3ktdHJ1bmsKKzYwNjA1IDc3YjM3MWM2OTU4Y2VkZWRkMDU3ZDNlYzY0ZjE5Y2JiZmIyYWRjYzcgbGVnYWN5LXRydW5rCis2MDYwNyA4ZmVjNTBhMzg1OWY0ZDFkZjJhNGM3ZWZmMmI5Nzg1ZjA4NTMwNjFiIHB5M2sKKzYwNjA4IDExMWNiMmFkN2FmNDhkNjUxZjIxNDU3ZmJlOTRhY2ViZWZlN2NlY2IgcHkzaworNjA2MDkgM2VjZDUyNmMzNWM1NjcxZTVkMWQxZWNkYjcyY2U2YzJhN2Y2N2QyYyBweTNrCis2MDYxMCA4ZWYzYzdjMDA0NzAxNTlhZjBiZTA3ODA3Nzk4ZDNhM2M3ODI4MTMxIHB5M2sKKzYwNjExIGI2NWY3OWUzNWIwOGVjZTRiODhiZGJlMzNlODc2N2VhODUzYmFkYzcgcHkzaworNjA2MTIgZmRkOTkyOTFjYzQ1OTE2ZTllYzIzYWFmMjcyM2EyMTE1NjRhMjFlYSBweTNrCis2MDYxMyAxNjUzZjVmZjNjMDAxNGFhZjgzMjkxNjRiZTQxNDM3YjljNzUwYjk5IGxlZ2FjeS10cnVuaworNjA2MTQgYTRjODdjODg5NjQ4MzFkMzgzZjc4ODVkYzM4MGE2MzFjNjg0ODU2OCBsZWdhY3ktdHJ1bmsKKzYwNjE1IDczNzgyN2I0YzVkNzVmNTI1OTJiOTcwODNmZTJiYjUwYzZkZWM0ZDYgcHkzaworNjA2MTYgOTIwYTc2MzNhZTA4OTIyNTFkZWMxMmZjODIyMmQxY2Y0YTc2ZmYxNiBsZWdhY3ktdHJ1bmsKKzYwNjE3IDE0MmExMWIzMDU3ZTlhZjg3ZjI2M2RkMDcyNjk4Nzk2ZjdmNGIxN2EgcHkzaworNjA2MTggYjg0N2E5ODIzYjJmZmZhYTI1NDRhNjAzNjY2OGNkNTY1YjVjMzM4OCBsZWdhY3ktdHJ1bmsKKzYwNjE5IDMzYjc4YWFmYmJiMjIyMmM5OTAxOTBlYWJjODk0ZGFjMjY5MTFlYTEgcmVsZWFzZTI1LW1haW50Cis2MDYyMiA2NWZiMjE3NTA5NDI1YzllNzFlN2YxMjFiNWUxMGZhZTkxYzJhNzJjIGxlZ2FjeS10cnVuaworNjA2MjMgMDU3MWJjNGFiNmMyODIxYmE5OGMyNmNhZmE1NzliMjlhOGYxNzJiMyBweTNrCis2MDYyNCA4MTkwMGE5MTQyMmJmNzEyMThkNGRmNDFlOTRkMDM2NTU5MDZmNDYxIHJlbGVhc2UyNS1tYWludAorNjA2MjYgMGY3YzMxN2JiZTdmOGNkYzZmZGE4ZmY0ZTY0NWIwODk2N2MzNDU2MiBsZWdhY3ktdHJ1bmsKKzYwNjI3IDBiYTMxY2VhNmUwM2IyYzkyMzc5OGU3YTg5M2IzYWI3NzE4MWI2ZWIgcHkzaworNjA2MjggZGJlM2ExMzNiNzE4MzQyYWJiOTFhZjJmZDlmZjhmZGI1MDYzNDFkNSBweTNrCis2MDYzMCBmNTVhNGYxMTkxNDE5NWEzZmU4MDdhYzQyYTExNDUwNWQ3Yjk1MmJjIGxlZ2FjeS10cnVuaworNjA2MzEgYTIxMjZlZGIyMDdiMTI4NDBjZTA0Y2FlMzg1OGExNDY5NzA1MzI5MiBweTNrCis2MDYzMiAzNDY2MjViYTU5MDMyY2I3NDRjNjUyMmI3MWY3YjBkNjUyN2MzNTVjIGxlZ2FjeS10cnVuaworNjA2MzMgZmZlMmQwZjU3ZWZkNzFjZmNlNmM1NzE0OTYwMGI5YmEzMWUwMzNkZSBweTNrCis2MDYzNCBkMzllMWEwZTA5NjU0ODIzNTM1M2EwOGMzNTI4YzQyMTA4Mzg0M2M4IGxlZ2FjeS10cnVuaworNjA2MzUgMDYzZDAyMmFjMDExYjg1ZWU4NmYwMGQyMzQ5NjNkMGIyNGNjMWIxYiBweTNrCis2MDYzNiAzZjEyNDk3NWUwOTk1OTQ1ZDQ2ODRhZTNjMGQ2YzRkMGEyYjBmMWRjIGxlZ2FjeS10cnVuaworNjA2MzcgM2JiM2M3NDNmMTA1ZjcxMGFhOGM3MzMzNDE3MjkwYTU5Nzg5MzEwOCBsZWdhY3ktdHJ1bmsKKzYwNjM4IDkzOGJhNjIyYWNhMDNjZjJkZTZlNDhkODM3ODYzZWU3NzhmZGVkZWUgbGVnYWN5LXRydW5rCis2MDYzOSAwOTU4Y2M0NmIzM2YzNDlmY2MzMWYyMDUwZjYxNmNkNmEyM2Y2YmIzIGxlZ2FjeS10cnVuaworNjA2NDAgOGNiYjhhYTQ1YmE5YTlhZGI1YzY5NTk1MWI4ZmFkMjg3ZTRlNGZiOSBsZWdhY3ktdHJ1bmsKKzYwNjQxIGZlYjZkZDM2ZDUzZjMzZTk2NjMwMmE3ZmI0MTRmOWQ1MDJjYmY1YWIgbGVnYWN5LXRydW5rCis2MDY0MiBjNzNhMjgwMmI3Mzg2NjBkMTJhMzk0MTQyMDhlZjkxZjA1MjExM2MyIGxlZ2FjeS10cnVuaworNjA2NDMgZTgyYWIyNDIzYWFiNzA5YzZhYzk3YTY0OGYzMjZiODFiYjZkMTEyYyBsZWdhY3ktdHJ1bmsKKzYwNjQ0IDQ0ZTJkOTg5OTExNWQ3MjhhNGE5YTFjZjE4N2ExODJiMmI3N2IxZmEgbGVnYWN5LXRydW5rCis2MDY0NSA3ZGM5ZGVlMDk5ZTg4MGRhN2YxYjkwMTE4MTUzYTAxNzJlZDkyMjVkIGxlZ2FjeS10cnVuaworNjA2NDYgNWFjNjA1YzBmMjdjYThkODRiYTk4ZWRkODQ0OWY5NjU4MGYyYTEyZiBsZWdhY3ktdHJ1bmsKKzYwNjQ4IDIxOWY3ZjIxMzRkNDhlZjlmMDE1Yjc1MmZkYzNkMmRjZmRkYTM4OGEgbGVnYWN5LXRydW5rCis2MDY0OSBkZWI0ODczZmEwZjA0YzU3YmFkZWVmMjY2MjJhODgzMDk1MDNmZjcxIGxlZ2FjeS10cnVuaworNjA2NTAgN2ZhNDcyNWNjZTg3OWRhZWRhMTkxMTBhZGJjYmE5MzViNWNkYmI2NyByZWxlYXNlMjUtbWFpbnQKKzYwNjUxIDJjNjNmMTUyMmJiZTRlNzZlY2QzYTkzZjJlNTFjZWE4MDdhZThiMzYgbGVnYWN5LXRydW5rCis2MDY1MiBjZGQyZWEwODBlMjM2NWRkYWVkNjYyMjdmMGE3MDk4ZDE2NGY1YzQwIHJlbGVhc2UyNS1tYWludAorNjA2NTMgNGUzM2ZjODJlN2YzMTg4ZjU5MTU4YTVhMzU5MTRiOTVhZTJmOGE0YSBsZWdhY3ktdHJ1bmsKKzYwNjU0IDQwM2Y3MDVkNThjOTJmNmFhNDI1ZTk0ZThjMWQxZjg1YjFhZDNlOTUgcmVsZWFzZTI1LW1haW50Cis2MDY1NSAzODFmNGEyOTMzYjU4OTcwMTRhMWU4OGJiNWY5MmI4YzUwMDNlOTIzIGxlZ2FjeS10cnVuaworNjA2NTYgNWQ4ZmVjYTMzMzE1ZGU5N2I3ZDNhZGIxOTljZjNjZGMyMjQ1ZTEyYyBweTNrCis2MDY1NyA1OWE2NDg1YmFjMDIzMWQxY2Y2MmVhMjUxOWMzMzZlMWMzNjljYjBhIGxlZ2FjeS10cnVuaworNjA2NjAgNGU0MzcyMmZkNTAzZTE2MjdjMTA2NzQyN2I0MWI1M2IyMmQ1ODIyZSBsZWdhY3ktdHJ1bmsKKzYwNjYxIDI2MjI2MzczN2JjZTJkY2ZmMmJhYTMyNGQzYzY4OGE5OWJjOTAxM2YgbGVnYWN5LXRydW5rCis2MDY2MiAxYzMyNmRlYTQ5NGMyYzllYjg3MDBjYThiMzljODBmOTdlNGJmNDgxIGxlZ2FjeS10cnVuaworNjA2NjMgZTk0YWYwYzdhYTEyYmEyODcyZmI2NTNlZjI0MzFlZDVmY2I5M2Y0NiBsZWdhY3ktdHJ1bmsKKzYwNjY0IDQxNjY5NDVhMGNjNGZmYjc2Yjg2YjM4MWFjNjRjZGNjM2Y5YjAzMGUgcmVsZWFzZTI1LW1haW50Cis2MDY2NSAwNDYzZjgwMWQ3ZGM1MDk3Mzg1MmQyMDI2NzRlMzYwMzcyZWM0ODZjIHRydW5rLW1hdGgKKzYwNjY3IDU0ZGNmODA2ZGVkNjNjMTg3ZDg3MGEzOTJlNzAwMDVlNmExMTA4NzggbGVnYWN5LXRydW5rCis2MDY2OSA0MjQyMmNmMDIwOGIwYWRlZDZjYWZmNmQ1ZDc4NmIwMjk4MjJmNTE1IHB5M2sKKzYwNjcxIGVjYTkwYjhhYTdmZGI4ZTI5NzlkYzA5NGY4ZTZmZDdhYTQwMzVhOWIgbGVnYWN5LXRydW5rCis2MDY3MiAzZmE3ZmIzMjhkOWFhMjkwYmY3ODg0N2NkNTc5NTliNTI2ZDcyN2RhIHRydW5rLW1hdGgKKzYwNjczIDE5ODBkNzA1ODYyNzI1NzA3M2QyMmM0ODcwNDQwODUwMDA0NmRlNGMgbGVnYWN5LXRydW5rCis2MDY3NCA4MmQ0NDI4MGMxMzU2ZWFkMDU0MDU2MWUxYjIyMGU1OTRhMjlhNzEwIGxlZ2FjeS10cnVuaworNjA2NzUgNzdjNTc5MWI3YzIxMDE3NzgxYzc2NjNiNDI1Mzk0MmY2N2JmOGUzZCBsZWdhY3ktdHJ1bmsKKzYwNjc2IDE1YmM4ZTgzMjQyMDdjMjdlMzExYmZiMjI2NjQ3YTQyOWVmOGEwZTUgcHkzaworNjA2NzcgNjhkMzFhOTFmZGYzMjkyMjk2MzU1ZmRlZWQzNTQzNzZkODk3MTAyYyBsZWdhY3ktdHJ1bmsKKzYwNjc4IDU5NTBjNDlmMjI1YWRlYTQyMTYwMzUxODRhZDA5NjljNGQyZTY2YzggcHkzaworNjA2NzkgOTdiNDIwYjJkOGQxMGUwY2M1MjIzNjhkZTc5NDM3NjBmZDZkMjNmZSBsZWdhY3ktdHJ1bmsKKzYwNjgwIDViYTVjNGM5YTAxNjk2NjFmN2QxYmQ3YjRlNGEzOTBlYzMwNDUxZTggcHkzaworNjA2ODEgMmE4MjFlMDAxYTJiNDZkM2RhODEwNGJmOGU5NzI5M2ZjMTE4NGFjYyBweTNrCis2MDY4MiA4NTI3ZWQ3NTYzZDBiNGJjZjM4OTc4YzVjNjllMzZjYTg1OTZiYjk0IHB5M2sKKzYwNjgzIDBmM2Q1OGY5Y2QzNTI2ZGNiNmYyYjdjODE4NGFmZGIzYTZhMGRlYmYgcHkzaworNjA2ODQgNjQ1OTM4ZTBlYjUyYjI1MDZiYmFjNzU5ZGRlYjg3NDk4YWM1NjIxYSBsZWdhY3ktdHJ1bmsKKzYwNjg1IDI0OTA2Yjc5MjU0MjQzN2VmMDBmNmEzMTdhYTlkOWQ4ZDAzMjlmNDcgcHkzaworNjA2ODYgYWViZDljNGQxOWVkZmMxZDQ5MTBmNGM0NTc3Y2E5N2RjZmQ5MmZiNiBweTNrCis2MDY4NyAwMTU5ZTYyYjk3YzU1YzYwNDk3ZmYxMzZiNGE0NzMyOTgxYTQxZWQ0IGxlZ2FjeS10cnVuaworNjA2ODkgYTgyMTU3ZjUzNGE3ZTI5OTQ1NTA0OWNkNDYyYWVjMjE1NDZjYTJmOCBsZWdhY3ktdHJ1bmsKKzYwNjkwIGEyYmYyYTU5NDA0YTkwZWY2M2E0YzkyYjVlYWZiOTMyOWNkOWM3NGQgcHkzaworNjA2OTEgNGNkMWQwNDc0YTEzNGU1YTgwMDNjNWYyOTM5M2Q2NjhkODM1ZTUzNyBsZWdhY3ktdHJ1bmsKKzYwNjk1IDgzODIxZTBmMzk1YjRkN2M1MWRmNTQxMDE2ZTUxYzBkMmI5ZGIzZDEgbGVnYWN5LXRydW5rCis2MDY5NiAzMjljNmIyZTExMDUxNzk0YmFlODZjYzNiNTA5YzI5NTIyNzc2NjM0IGxlZ2FjeS10cnVuaworNjA2OTggYmM2Mjg1NGVlOWMyMTE0ODljM2I4ZDg1ZTdkMzMwMTQ3OWIxM2JkMyBweTNrCis2MDY5OSA2MjYwZGIyMmZmNzUyZjQ1YzQ4YzBiOGU3YzBjZmU0YjZhODJkMjNhIHB5M2sKKzYwNzAwIDU4NWFlYTkwNGYwZGI0ZGRhODI2YTczMTYzM2E1NTU0MTVkMmNhMTggdHJ1bmstbWF0aAorNjA3MDEgODcyOGY4MTZjYTc1MjAzZTQ0OWJlYTUzYjlmOGIwNDRjZTk5NjBiNyBsZWdhY3ktdHJ1bmsKKzYwNzAyIDg2ODliNjcyNjViZmJmMzZmMjY1MWM3OTQ1NDFiYzM2MzIyZDI1Y2YgbGVnYWN5LXRydW5rCis2MDcwMyA2MWViYTgzMzJjMTQ1ZTAyNWNjZWRjMjBhNmY0ZDgxM2EwZjVlOWYzIGxlZ2FjeS10cnVuaworNjA3MDQgNzQ1MjgwZDcxNDI1NWNlYzQ3MDk0N2ZjOWJhMTk5YmY3ZDU3Yjc1NyBsZWdhY3ktdHJ1bmsKKzYwNzA3IDg2OTA2YTVjZWNhNjM0ODgyNTY2MmM0ZDM5ZmYwMGM4NzQ1OGI0YzIgbGVnYWN5LXRydW5rCis2MDcwOCAyZDZmNjQwZjcwODEzOWM4MTBkZDQ0MGFkOGRlNzE0YmVlYzgzMmI1IHB5M2sKKzYwNzA5IDg1M2M3M2IwMjllM2UyOWU3Njg1NTAyNWNhZWUxMDMzZWI1Zjc0MTUgbGVnYWN5LXRydW5rCis2MDcxMCA3ZjRjZWYwNDE4NmYxY2JiZjVjMTM0MDYyNzU1Y2ZmZDYwZGNiY2ExIGxlZ2FjeS10cnVuaworNjA3MTIgNGFlMDM5N2VmMWM1ZjE0ZDljNDI3ZWVkNTdiOWYwNjAxNmRmY2M2NiBsZWdhY3ktdHJ1bmsKKzYwNzEzIDZlYmU4OTMyOGI1ZTczZTk2MjFkZTIxYzc0YjdmYTlhOWU1OTYxM2QgbGVnYWN5LXRydW5rCis2MDcxNCAxZGM3MWYwOGVhN2M3YzhiOWRmMDgwNTQ0NjUyN2Q4NjgyZGE1N2MyIHB5M2sKKzYwNzE1IGZiNTUxYzkzOGE1OThlOTNlNDE0MjQyODMxYjQxZGIwMjgxZDEyNmQgbGVnYWN5LXRydW5rCis2MDcxNiAwMTNlNjZjYjM2YzBmZTViMmFiNDRkYTcyYjljMGI5MGMwNDYzNGRkIGxlZ2FjeS10cnVuaworNjA3MTcgZmQ3Nzg5YTFiZmNkYTJhNjVkZDM0MjQyYzI5ZmUzMGZkYTRkYjU4ZSBsZWdhY3ktdHJ1bmsKKzYwNzE4IGY4ZWUwNmE1MWMwYjJmMjAzNGRlZTYzNjA0NjkxYmY1MjRiZTRhNGIgbGVnYWN5LXRydW5rCis2MDcxOSBjN2Y5ZjlmZGNmODI3MWMzMTIxMTI1MjMzMTk0NzNkNzMyYWQ0ZWRkIGxlZ2FjeS10cnVuaworNjA3MjAgYThjYTllMDY1ZDlkZWUxNWU5NWQzNDFhNzdlOTllYjhiOTg2ZGUxNSBweTNrCis2MDcyMSBhNTBjMWZiN2Q5MjBhODFiMTlhYWQ4N2UwZjAyYjI1ZDMyNGQzZTFlIGxlZ2FjeS10cnVuaworNjA3MjIgOWYxYTJjOTkyNTVmZjQxYzExMmY0Nzg1ZTYzOGRhM2NjMWE3ODI1MiBsZWdhY3ktdHJ1bmsKKzYwNzIzIDFkYzVjYTExNDQ4Y2QwNzMwODdjOWY3NjUyMzFiNzZmYWZkY2VlOGQgbGVnYWN5LXRydW5rCis2MDcyNCBkYzUwZGVlN2Y4ZTUyZTMxZmZkMDNlYmRjNjc3MDE2Y2I2ZGQ2OTQ3IHRydW5rLW1hdGgKKzYwNzI1IGU2NzA1MGQ2MmFkZmE0NmVkYWVhYmY2MGQzYjE5ZmMyMTFiMDVmNTYgcHkzaworNjA3MjYgM2U1YTc5MGUwY2Q2NWQ5ZTc4YTU4YmMwOGNiZjM2YzkxODhmMmVkZSB0cnVuay1tYXRoCis2MDcyNyBlZWVmMzlhNmY0ZGQ5OTVhZjZiMzMwYTcyNDQ5Y2RmOTU2NzVmMWE0IHJlbGVhc2UyNS1tYWludAorNjA3MjggNGFmYmNkZTM0M2VkYmMzZDI4MWE5NDJkMzg1YzMzMTdhNDQzM2IyYyByZWxlYXNlMjUtbWFpbnQKKzYwNzI5IDQ1NjVjNjk0MjBiOGNiMzRhOWYxMzllNGU0MDMxM2I0ZmNmNGE2ZDIgcHkzaworNjA3MzAgNzkwNTU0YWUyYjA0YWNiMzBhZGM3MjY3MTBiMDdiOTFkNzBkYzBmYSByZWxlYXNlMjUtbWFpbnQKKzYwNzMxIGMwYWE2ZDhmNWNkYjQyMGUyODhlMjdjNjY5Zjg3OTFlNjdkMTFlNTcgbGVnYWN5LXRydW5rCis2MDczMiBjMmZjMzE4YzRmYTMzM2Q2ZTgwYjVjN2I0ZjgwNzQ5Yjk0YTgyNWQyIHB5M2sKKzYwNzMzIGNhMDg1MzYyMmYxYTFmOWI5YWMxOTFiOGUyMTRkOGI3OTE0NDRkYmYgbGVnYWN5LXRydW5rCis2MDczNCBmODViNjNmNTY3MDYwNDE4YTc5N2I1MzVjZGJhNWMyOTYxZGQ2ZGM3IGxlZ2FjeS10cnVuaworNjA3MzUgODA4Zjg0YzU2NmYwZWRhZDZhYmI2OTc0NTllMjc4YzNmZGQwZTJhZCBsZWdhY3ktdHJ1bmsKKzYwNzM2IDg1YjY4ZDdkNmY0MTFlY2NlY2FiMWZlMjQ4Y2JjOWYyM2RhZmViMGEgcHkzaworNjA3MzcgYTM5ZmI4OThiZWIxYWQzZGEzZjYxMTEyYWNmZjk0YzdkZTM5ZmU4MCBsZWdhY3ktdHJ1bmsKKzYwNzM4IDkyYmQyMWU2YTgyYzRkMmM3NGY1YjJjZWU1MTJkYmFkMTFhNjhiYjMgbGVnYWN5LXRydW5rCis2MDczOSA1MDc2MmIxOTRhMDBhZDZiMTVhYTFkNjc1ZGExY2VlNTVlNjcwZWE1IGxlZ2FjeS10cnVuaworNjA3NDAgZWViNzJjZjM3YWViNGNiNDgxNTZlNGQxY2M0ZmRmYjRiMTFmNWZkOSBsZWdhY3ktdHJ1bmsKKzYwNzQxIDRjYTcwNjYzYTc5ZDA5YTdmNTA4ZDBhODgxYjQwNTIyMmVjMzMzNDAgbGVnYWN5LXRydW5rCis2MDc0MiBmMGU4YjU0MWYxMTMyMTU4NGYxZTRmNjIxOTU4NGVkOTM1YTdhNTA5IHRydW5rLW1hdGgKKzYwNzQzIDI3NWVkODU5M2VjNjFkMTYwZmY2YWVkMjJkNTljYmNlMTNjMmZlNjIgbGVnYWN5LXRydW5rCis2MDc0NCBiYTE3YjIxYWI5M2U2NjQ3ODY5ZjZhOGVlNzA1NTU1YWNlNDIzNDRkIHJlbGVhc2UyNS1tYWludAorNjA3NDUgNzg5YWE2N2RjZTZkODJiMjFmYmY2N2VkNTczOTAwYWU4NzA3MjAzMiBsZWdhY3ktdHJ1bmsKKzYwNzQ2IDVmNWI0NjQ1ZDkxMzJiNGJhOThlNjhlZGJkNGFiODZjYTdiNjBjNDMgcHkzaworNjA3NDcgOGViOGU5YTMyNjBkNmVlOWQwYmJkNWJjMGM2MjZmODI5MzZhZTU5NCBsZWdhY3ktdHJ1bmsKKzYwNzQ4IGFlNTVlNzE0ZDc0NGQyYTAyNjUzYTBkMTYyYTg3NzQwZjUwMTk3YzUgcmVsZWFzZTI1LW1haW50Cis2MDc0OSBhNDdmNWZmYzA4MjM1MzdmNzI1YTUyODk3ZGU5ZTJmMjkwYWYyYjZmIGxlZ2FjeS10cnVuaworNjA3NTAgMjdmODg1OTdkMDJiOGMxMTE4ZTUwNWI2OTAxNTk5M2ZiZGVkM2Q2MyBweTNrCis2MDc1MSBiMWNiNmI0NGI3OTg3MzMzNzZkYmE4OTI5NTgxMWUwMDZhNmZiNjA0IHB5M2sKKzYwNzUyIGQ2NzNkMDAzYjZjYTgxZTE0ZDc2NmU2NzhlZjY5OTdiMzgyMmM1ZjMgbGVnYWN5LXRydW5rCis2MDc1MyA5NWMwMDAyNjU0MDA5MDcwNTc1NjI0MTRjMmFkNTQ5ZWJkZWQyOWI2IHB5M2sKKzYwNzU0IGQzMTlmNDBjZDAwMGZiODRlZTQ4NzU3OThjYmE2MTJiMzk1ODc4MTkgbGVnYWN5LXRydW5rCis2MDc1NSA4ZjhhZGVjOTNjZjJjYmNkNmRjZDAyYzU5NTM2MWZiNDE0NDFmNmFlIGxlZ2FjeS10cnVuaworNjA3NTYgZjEyMDUxMjFlODQ4YTYyMzNjZDhkZjQ1NDg3NzdjMzZjOWZlNGM1NyBweTNrCis2MDc1OCBjZWVlMDk4MWYxNDFkNDAyMWNjNTUzMmE3NzE4OGY5NzcyZDEzODExIGxlZ2FjeS10cnVuaworNjA3NjEgMTE0ZGMyMTU4MzY5ZDg3NjAwMmUzZDllZGQ5NWI3ZWJiZWIxYzQ2MCBweTNrCis2MDc2MiBjNTIwNTU4N2IyYWJjMDY3ZjdmMjg5NWIzZWUwMDJkNGUxM2Y2ZGRjIGxlZ2FjeS10cnVuaworNjA3NjMgYWU5ZWNlZGI0ZjkxYzYzOGQ1MTZiODU5YThjNTJkOWU0MjcyODNkOCBweTNrCis2MDc2NCAxOGM3NmFmNGYzNjQ4ODU0NTc1NjVjMWFhMjU2NTE2NjMzYTE0NmMyIHJlbGVhc2UyNS1tYWludAorNjA3NjUgNmViNjQyZTBhZGQ4MGNkNWY3YTg3NjYwZDM4NjJhNTc1ZTBhZWIxOSBsZWdhY3ktdHJ1bmsKKzYwNzY2IDdlZGY3MjI1YjA1ZjhiMmI1NzYxN2JiZWJkNTEzNmVhOTc5NGYxNTYgcmVsZWFzZTI1LW1haW50Cis2MDc2NyBiZWVhMzViMGVkNTBhZDVhMWY1NTk2MGNlNTBiMmQ5ZjgwNzJkN2NmIGxlZ2FjeS10cnVuaworNjA3NjggYjBmMzgwYThiNDQ3YjRiM2ZmYTRiZDVmNWQyMzRmN2U2MTM0MzQyNCBsZWdhY3ktdHJ1bmsKKzYwNzY5IGY5MDNhNjQzYTg4YjFiNTFhNDY4MzczODRmOTQ5Nzk0ZjExZDdjODcgcHkzaworNjA3NzAgNWYyZWE5NjVmODUzZWNlMTg4MGJlMDQ4OWZmM2Y4OTkyYzg1MGIzZCByZWxlYXNlMjUtbWFpbnQKKzYwNzcxIDMwYjU2YmViZGU1NGFkYzlkNzhjYTk1MzIwYmFiZGE1YWVjMmQzZTggbGVnYWN5LXRydW5rCis2MDc3MiA3MzcyMzA4ZWI2MmY5ZjY0ZDBkNWFhY2Y1ODNiMDBmODExZTczNzhhIGxlZ2FjeS10cnVuaworNjA3NzMgMzMxMjJmZjgzNDA1MTU4ZWJmNmI4ZWMxN2FjYTk3ZGZjOWRhMGVjZiBsZWdhY3ktdHJ1bmsKKzYwNzc0IDdkMmZiYjRlNTc2ODZhNGZlOGI3MzdiMjhlZjE3YjgzNmFhM2JhZGQgcHkzaworNjA3NzUgNjA4YmQxMDE0ZmJlYTZmY2QzZGY5ZjE2YzQxY2IxZDIyYjNjMDViMCB0cnVuay1tYXRoCis2MDc3NiA1ODRmYzE1ZDQ3YWMyYTcwYWRiNmJiODk1NjEyMjg5NjEyYmZkYzc5IHJlbGVhc2UyNS1tYWludAorNjA3NzcgNDQwZTcxNWJiM2QyZWRhYzYwZjM1YzA5NDhhNTMzZmMzYTViZTFhZCB0cnVuay1tYXRoCis2MDc3OCBkNmVmOWNiNTQzYWY1YTgxN2JhMDQzY2FiYzU5ZTEzMjQ1MjNiMDcyIHJlbGVhc2UyNS1tYWludAorNjA3NzkgNjg1Y2VlMTQxMGY4ZTM0M2Y4OTI4ZGQ5NTEwMDNlYjk1ZmE5ZTBkNSByZWxlYXNlMjUtbWFpbnQKKzYwNzgwIGY4ZmIyNzEwNmVjYzAxODRmMmI2ZTU2MmFhOTI3ZDZiNWY1NGQwM2UgcmVsZWFzZTI1LW1haW50Cis2MDc4MSAwODNiZjZlMGFlNTA1MWNiNTVkNmJkNzQyYzhkMzRiZmIxNzgwNGExIHJlbGVhc2UyNS1tYWludAorNjA3ODIgNzZiMmRlOWM5YjBiN2U1MjNkYTVkM2U5NzliNzMwZDM0Yzk3NTkwOSByZWxlYXNlMjUtbWFpbnQKKzYwNzgzIDFlMGVlMzI0YzUxMzY2ODQzNGM4ODIyY2Q5MmViZDhjMWViMGU2NmIgcmVsZWFzZTI1LW1haW50Cis2MDc4NCA1Njc4NmEyZGVlYzQzYjg3MzZhYzVmZWI0NGQxYjcxY2NhMzhkODcwIHJlbGVhc2UyNS1tYWludAorNjA3ODUgYzdlNjgzZDUyYjNiM2UxMTI4OGQyMjNkYjYyZDY2ZDYxNTk4ZTZkYiBsZWdhY3ktdHJ1bmsKKzYwNzg2IDRmY2I3MDAxMTVkODAzYTlkYjM0YzM4ZmU5ZGUwOGMxMWE1OWIxNWYgbGVnYWN5LXRydW5rCis2MDc4NyBlNzBmNTZjZjY5NzIyZTIwMTY5MmM1MTA0N2NlNmQ3YTZhYmJkNDg2IHB5M2sKKzYwNzg4IDY4MDE2YTA4ODhiOTY4Mzc1YzBhYzlkMjE1MzA2NjgyZDEyMTJkNzIgdHJ1bmstbWF0aAorNjA3ODkgMDk1Y2E5ZmYwZDhlY2E5YzMxYzk1Njg4YmI2NzU4NGVhNWZhMWUyNyB0cnVuay1tYXRoCis2MDc5MCBlNTE4ZTM5ZjRhOWU5NTkxNzZkNWIwZTEwMmMxNWFmNzE0OWE2YTczIGxlZ2FjeS10cnVuaworNjA3OTEgZWY3NTQ4MTczZTYxNzFlOTk1NDk1Y2Q3YjgzMDc5MzU4MDExZmRlMiBsZWdhY3ktdHJ1bmsKKzYwNzkyIDBkZDA1ZWVkNjNkZTk4Njc3OWY5NTIyMDQwZTk2YzBmMDdiYjVlNWEgbGVnYWN5LXRydW5rCis2MDc5MyA4Y2JlMGJkOTNjMjhiMDEzMjNhMzg5MzIxYjEyOTU5MTIwZWRlY2ExIHJlbGVhc2UyNS1tYWludAorNjA3OTQgMTkwZDU1MzczZTUwNTdkM2M4YTc0YTY0ZjJhZDU5MjNhMWU2ODIyYiBsZWdhY3ktdHJ1bmsKKzYwNzk1IDVhZDhhZTRkNzg0ZTZhY2I4NmJkNzg1YzIwN2Q3MzNlYzQ2YjQyNjMgbGVnYWN5LXRydW5rCis2MDc5NiBlMjJiYzhiOTY1NDczZjU4MTc2OTNjZDU5Y2I5MzY2NTRkY2JhYmIzIHJlbGVhc2UyNS1tYWludAorNjA3OTcgNjVhZTY4YzdhY2EzODE2MmJhMDQ4OGUzNmY4ZGEwOThiYzFjYTIxZSBsZWdhY3ktdHJ1bmsKKzYwNzk4IDVjMWRhN2IxYjRhNmI4MjhkYmViMDA4NWU4Y2U1ZjE5Y2M2ZTFlMWQgbGVnYWN5LXRydW5rCis2MDgwMCAwYThhYWU1NzVjZGRkYmYzZDEzM2ZjYjRlZWQ5MTA4MGUzZmU0MWYzIHJlbGVhc2UyNS1tYWludAorNjA4MDEgMWRjMzIyYWRiYjY3NjQwMmU1MmY1MjY4ZDY2ZTM0ZTEwNzVmOGU2YSByZWxlYXNlMjUtbWFpbnQKKzYwODAyIDg5ZWM0MmIyOTg2MzBlODhiMWI5NjhiNTMzMDdiOWMwNTQ2NTE0ZTQgcHkzaworNjA4MDMgMTY3YTlmYzgyODQ0OTFjYjVjZWJlMTI1YTFkOTlhMmExY2VmZDQzNiBweTNrCis2MDgwNCA4M2QyYzcwNDQzZmI3MmIyZDYwNzBlY2E0NDQ0NTEyNjY4NGVjZjdhIHB5M2sKKzYwODAxIGEwMzM2MTc3OTJkMTlkZWM0YjFkZDBhNjc5ZDc1NGEyODE1MjIzM2UgcmVsZWFzZTI1LW1haW50Cis2MDgwNiBmMTk5ZGUzOGFkMDEwMTM3N2FhNDBmYTgyNzIyMmQwMDkwMWJlYzdjIHB5M2sKKzYwODAxIDk1NzAyMGVkM2FmYWU5ZWU0Njc1ZTM0ODViYTYxYzdjMWJkZmRhMzkgcmVsZWFzZTI1LW1haW50Cis2MDgwMSA3MjFhNTkxMGZiZjBkOTkwYTRjYjIzNWE4ODYyOTk5OWUzYWZkMGIwIHJlbGVhc2UyNS1tYWludAorNjA4MDkgMWNlYjJhNmM2MGVlYWU5ZDE1OGI1ZDRiNmM0NjY3YzczYjlkMDFkMyBweTNrCis2MDgxMCAyZDllY2EwYjQ2ZmQzZjA4YmJiZGRlYjQ0NGFmZmZkODIwZjZjMmUzIGxlZ2FjeS10cnVuaworNjA4MTEgMjE4MzZlMGI5ZWIwMzE5NzFkNmRhZGZkMDFlOWFmYWViODIyYzFmNyBsZWdhY3ktdHJ1bmsKKzYwODE0IDc0NmE4ZTFhNzg1YTU5MDVmODAzY2JhNzI1OTIxODM0YTkwZGNjNWYgbGVnYWN5LXRydW5rCis2MDgxNiBlMThjYjIxZjVmNWZmMDc0YzRjMmFmNDYzN2Y2MGM5MDNiNTY1NjM2IHRydW5rLW1hdGgKKzYwODE5IDQxZGMzNjg2ODg5MDhjM2YwZDEzOTIzNzBiYzY1OWI4ODgxNzlkNjUgdHJ1bmstbWF0aAorNjA4MjIgZWVjNjdhZjRkN2RmZjExNWI4ZGRlNzFlZjI1MTE4NjhiNGZhZjRhOCBsZWdhY3ktdHJ1bmsKKzYwODI0IDEwYjI2M2EyMDJjYWQzNzg2M2Y3MTA3MzcxODA3MzQ1NWEwNzZhNDYgdHJ1bmstbWF0aAorNjA4MjUgY2Y1YTVkNzMyZTNjY2IyOTI4YmY5ZWIyYWFiMGNlYzcwMDYwYzJmNCB0cnVuay1tYXRoCis2MDgyNiBmNDgzNzRiOGMxYzNkOGQzNTYxYTM5YjEyZjU0YjJjYzk0ZWJjMzA4IHRydW5rLW1hdGgKKzYwODI3IGEyMzU2NzNiOWY4ZWEyNGJhODE3NjI2MDRhM2Q0ZDIwZjk0ZmFhOWUgbGVnYWN5LXRydW5rCis2MDgyOCA4OTFmYjVjM2JjMTgyYTMxNzQ1ZTZjYjhmYmIxYjY3ZjUwMjU0ZmFjIHRydW5rLW1hdGgKKzYwODI5IGIyZjNmZDlhNGM2NTcxNDhkMjJkNmFjMGY0NWY1NzA3NmI0YzE4NTMgdHJ1bmstbWF0aAorNjA4MzAgYTk3Njg5YjNlNzQyNWU3ZDM4ZTEzOWU2ZmMwOWZkZTY3N2FjNDQ5OSBsZWdhY3ktdHJ1bmsKKzYwODMxIGIyN2RlMjlhMjMyN2E2MjA4NzY5ZmUxZjJlZmNiMDdlYzc1NTllMDcgdHJ1bmstbWF0aAorNjA4MzIgMzMyMjFhZGMwYzIwNmUzMmZmMTQxYWEyODU5OWUyMDc1ZDI1OGQwMCB0cnVuay1tYXRoCis2MDgzMyA0YjQzMjE0NjFhOWYwMjg3Y2E3YmRjMDBlNTRlYWJjMDNlMzM1YjhmIHRydW5rLW1hdGgKKzYwODM0IGE1NzM5MjVjOTFlNDJlYTBjYTdiN2ExYWE2YjYxODJhODAxZGJkOTkgdHJ1bmstbWF0aAorNjA4MzUgM2E1NWMwZmQ4MjJmYjMwNWE5Yzk4MTkzN2YwYjQ0NGZjYjRkYmZhZSBsZWdhY3ktdHJ1bmsKKzYwODM2IDdhMzU1YjZiMjFhYzhkNjRhNmMxNTczYzQ3NjVmOTRiNmMzYWMxODAgdHJ1bmstbWF0aAorNjA4MzcgZGY1MWJhZDg2NzEwMDU0NmFjMTcwMjNjZmIyOGIxNTJhOWIyZDQyYSBsZWdhY3ktdHJ1bmsKKzYwODM4IDQ1MDRkZmNjMTkyNGRkNWYzMDNlMjJiNWQ1MmZmNjA5NWEzZjAxYzYgcmVsZWFzZTI1LW1haW50Cis2MDgzOSAzYzRkNTkzZTE1Mzg2NWI3Y2Y2ZWRiZjM2Y2M2OTgzZGQ2YmI0NjI4IHJlbGVhc2UyNS1tYWludAorNjA4NDAgOTE1ZmRhY2Y3MDJkYTNhYjRlMWFmNTY5YjJjOTFjMzlkNWY2OGFkYiBsZWdhY3ktdHJ1bmsKKzYwODQxIDU1NzIzNmQ3NTJlMmQ5NzllZTJmZTIyY2Q5YjhmMzNiYzBmMjk2Y2EgbGVnYWN5LXRydW5rCis2MDg0MiAwZTJhYWE3YjliMWZjOWJiOWU1ZDlhYmE1ZGFiYWJjYTIxMTY0MzI4IGxlZ2FjeS10cnVuaworNjA4NDMgZDhmMTJiYWUzNzhhZDA3ZTU5OTAzNTE4ZWM4MWRkN2U3MjZjNmNhNSBsZWdhY3ktdHJ1bmsKKzYwODQ0IDE2NmUzYmE3ZGUyNDM3NzVlZDg5NTE4ODNkYjVhZTBjYjE1MjMyYTUgbGVnYWN5LXRydW5rCis2MDg0NSBjNDQ3NTJkOTBmZDJjY2U0MGQ5YjU2ZGQyZjRmYmUxOGEyNWQ1NDc1IGxlZ2FjeS10cnVuaworNjA4NTAgNjJkZjFlMzM5ODMyYjZmNjhmNDIxM2Q4NDc5ODhjNDQyY2FjNzE5MyBsZWdhY3ktdHJ1bmsKKzYwODUxIDcxMTM5YjY5MjQzOWJkZWQ4MTgyYjM4NmVkZDAxMmQyNjVkYmQxYzYgbGVnYWN5LXRydW5rCis2MDg1MiA5YWNlYjkwNTRiM2Y5ZmYyYTcwOTlkNjIyMjEwYTkwZjVjMTVmNWMzIHRydW5rLW1hdGgKKzYwODUzIDdjNGM0NjM0MjEzNzNiNTJlNGU3NTc1ZWYxNmY1Nzk0MDAyOGQwYjYgcHkzaworNjA4NTQgZDM3ODU5ZjI5ZTUxMWExMmM0N2NjYzgxMDU5MDMwODE2NWM3N2Y2NSB0cnVuay1tYXRoCis2MDg1NSA4YzY4ZGI4NmZmODdhNDEzYmJkYWQwZDU2NTVkZmQ2MmRkMGIxMGI1IGxlZ2FjeS10cnVuaworNjA4NTYgMWE4OWU5MTMzMzczOTUwN2UyNmU5NmRhYWFiZTBjNTg2MzM4YjIwNiB0cnVuay1tYXRoCis2MDg1NyAzMThjYTZiYzg5YTNkNWRmM2M2ZGY1ZmE3ZDhmYjU3ODg5ZDI4OTVjIHRydW5rLW1hdGgKKzYwODYwIGYzNzhlZGQyMWRmMjZmNjIyOTMzN2UxMDA4NmE0ZGRjNDM3ZDMxZjQgbGVnYWN5LXRydW5rCis2MDg2MSBhYzA5NWI3NzRlMTkzYmY0Zjg3OWI1NjZiMTI4NGFjOGI2ZjViMjU5IHRydW5rLW1hdGgKKzYwODcxIDI3MGZjZDJlOTc4MjY4YTQ0MzI4NjM0M2I0YWVmNmZjNDExZjE3ZWIgbGVnYWN5LXRydW5rCis2MDg3MiA2NTUwNjU5ZGJjOWRiNjZlMDU5OGZjZmQyZWVhODI3NDg3ZDNjZWU2IGxlZ2FjeS10cnVuaworNjA4NzMgNjIxMjM2NzM5MGUzMjRhYzcxYjcxOWE4OTc0OWJjOGY4YzhiNDNmYSBsZWdhY3ktdHJ1bmsKKzYwODc0IDE4NzJiZDZjZjRiNDViNThhZGE5ZTI5OGQzOWJjM2ZhODgyOWE1MjYgcHkzaworNjA4NzUgMTJmZjE0NmY1OWE3MDcxYWQ4ZDA4NTc1MzcxZWI3YTFlMWI1MjNmNCB0cnVuay1tYXRoCis2MDg3NiA5M2I2MTU3NDEwNzQwYzgzYjZiODIxNDgxM2U0MGUwNDFlMGM1ZmI5IGxlZ2FjeS10cnVuaworNjA4NzcgMDhjYjVhYmZiNWI2YTI0YjE4ZGYyZjMyNmNlYzE0MTk5YmJjMzViYiBsZWdhY3ktdHJ1bmsKKzYwODc4IGNjMDIzMmRlMDY2YzMzZGU2NTkyYTViNTA3MzgyYTExNzc2YjVjMDAgbGVnYWN5LXRydW5rCis2MDg3OSBiNzIzMWJmNmJmYjc5NTllMmM3YWRkOTIzNjg0MzQxNjk3YjgwZmExIGxlZ2FjeS10cnVuaworNjA4ODAgN2FmOTU1ODQzOTI5NjI5ZjZjZjM5YTA3MGNkOThkYzUyYmUzNmIzNyBweTNrCis2MDg4MSAyMWViMWU2ZWRhZmFmMzllNzE0MzkwYTNlMmM3Y2I3ZTMzNTI3MzJmIHB5M2sKKzYwODgyIDljYzdhODY3MzdjOTY1MmZmM2E1MzE4NjcyMGVjYjBmNGI5ZTcwNjMgbGVnYWN5LXRydW5rCis2MDg4MyAzZDJmZjAxNDY1NzQ5MGNiMGQxYmFkNzVjNThiNGU3NThlMjdhYWY0IGxlZ2FjeS10cnVuaworNjA4ODQgMWJjOTIzYTEwN2Q5NTZlNjllOGFjYjE3NDAxYTc2Y2QwZTFhOGM2MSBsZWdhY3ktdHJ1bmsKKzYwODg1IDBlOTJlZjU3YzBkNGE5ZWQzZjMyNmNjZTMwM2YxYjE1NDEyNDQwNDAgbGVnYWN5LXRydW5rCis2MDg4NiBkNGIwZjEyN2NmY2IxZTkwYjVhMDVmOGFiMzMwMzcyYzhmMzNiZTYyIHRydW5rLW1hdGgKKzYwODg3IDUwODc0MTUwNTRmMTkzNzg2ZWJkOWEzZDY5Y2Q3NTdiMzQxNTVjNWUgbGVnYWN5LXRydW5rCis2MDg5MSAyZWZjZDdmNjA2ZjhjZDUxYjJhZGYzYjIxY2EyM2FiYjdhNmFlMTIwIGxlZ2FjeS10cnVuaworNjA4OTIgYmY2YjI2OGU3N2YzYzQyZjBkYzg1MzU1YTkzN2VkNDU3Nzg5YzRlNyByZWxlYXNlMjUtbWFpbnQKKzYwODkzIDNmYzU4NjMwN2Q2NjkzYzRkM2UyOGI1NDZlZDc0NmNkZmViNzFmZDAgbGVnYWN5LXRydW5rCis2MDg5NCA4ZWNlNWNhNGE3ODVlMDc0ZGYxMzllOTc1ZjNkYzkxZTBjNzU4Y2UwIHB5M2sKKzYwODk1IDYwNmQ0Y2M1Y2RiMzBiYmFkMTZjZDM2MTU3NTI4YjMxOGY4Y2EyNmIgcHkzaworNjA4OTYgMjdiZWFlMjFhODJjOTY5NDNkNmFkMWRkODRlN2Q3ZWNmNzNhMjdmYiByZWxlYXNlMjUtbWFpbnQKKzYwODk3IGJjNzBlOGI4OWExYzA1NmM2NDU0MTExZWU1OWFjMGU2MTJiMDI4ZWIgcHkzaworNjA4OTggYjBjYzdhNmRhMWUwMzJlMmJkNTFjMmUxMzQ0NzUzNmU4OWI1Yjc4NyB0cnVuay1tYXRoCis2MDg5OSAzZWU3Nzk1OTg1N2FmM2FhMWY4NWFmYmNhOTQ5YzRkNjQxZjZiOTc5IGxlZ2FjeS10cnVuaworNjA5MDAgMjk1ZjM3ZmM2MjFiOTUzYzE3ZWI1ZjZiNzkwMTk0NTAzYmE0OTI2OSBweTNrCis2MDkwMSBmOWY0NzljZTUwZDBiYTRkZjA3ZWQzYjk4N2M0MTVlZjk3NTRkOGQwIGxlZ2FjeS10cnVuaworNjA5MDIgMTVkNTc3NmYyNzAzY2MwODc4OGE1ZDg1NWZkZTY2MTA1Y2ExYjYxNyBweTNrCis2MDkwMyA5ZTI2YzBiMjM5ODdmNWY2MzFjMzQ4NjY5NjVjN2VkYmFlZjI0YTllIHJlbGVhc2UyNS1tYWludAorNjA5MDQgYzQ3NGM5MjdlMDM2MGZlMjJlOGVlYmI1MmI2NjZmNmI5MGIyNmQxZSB0cnVuay1tYXRoCis2MDkwNiAyOWE2NmU2MjFkYmUzZjJkNzljMzUzMzYyODYwMjY5NTAzY2Q4OTI5IHB5M2sKKzYwOTA3IDJmZjUxYzQxMmU1NzdiNTQ1YTliZmRlMzJhMmE0NjFkMTc2OWMzZjQgbGVnYWN5LXRydW5rCis2MDkwOSAwZWEyMzZhNzFkNzc3M2M2ZjEyMjgxOTJhZjkwZWYwNGM4MWIzMDNmIGxlZ2FjeS10cnVuaworNjA5MTAgNWQ3MjZkYTIxZDc1NDMxMDVmYmVmYjQ3ZjhiYWNjNWZiYzAzMDU3OCBsZWdhY3ktdHJ1bmsKKzYwOTExIDA5YjE2N2E0MDE4YjZkYTY4ZTIwODEyZWJmMWEwNTM1N2UwYjYyMjQgcmVsZWFzZTI1LW1haW50Cis2MDkxMiAxNTFlN2ZmYzdlODkzNjhhMDYwZjVhYjA3ZDI0MWI5ZWE3ZGNlMmYzIHJlbGVhc2UyNS1tYWludAorNjA5MTMgZDEyMTk5ZDYwMmQzY2E5YWIzZGY4OWZkNDBkYmFkZTkyODEwZjM4NSByZWxlYXNlMjUtbWFpbnQKKzYwOTE0IDFkNTA4YmJiZGI0OWEyYjExNjI5ZWUxODZhNjM5MjgyOTFiMDg2OTQgcmVsZWFzZTI1LW1haW50Cis2MDkxNSA5ZjQyOGE1ZTYyYjMxNDI3Y2M1ZmFmMDdiNzc0ZDM5ZDM0NDZkOTBkIHJlbGVhc2UyNS1tYWludAorNjA5MTUgOTQ1NTAxNjVkNjI2ODIyYTBiZDUxZDNlZDJiNjAzZGYxOGFhZTk0ZCByZWxlYXNlMjUtbWFpbnQKKzYwOTE4IDgwZWNmNjczNDdlOTU0MWYxMzY0YTI0ODk0NTRhYmFlZjM5YzdjMGQgbGVnYWN5LXRydW5rCis2MDkyMCAxYzk1OGZlNzE4ZTNlMDg5MDIyM2EwNDA4Mjk0Nzc3NGExMjJiZDUxIGxpYmZmaTMtYnJhbmNoCis2MDkyMSBiNTI2NWFjYmVlNzVjZGZlNDlmMmRhNTc4N2MxNmNjNDk0NDJlYTc4IGxlZ2FjeS10cnVuaworNjA5MjIgZjZlZWVhMDE5YzFmNGNlNWQ1N2I5ZjNjYmRiZGRkZGNhMGMxMzMwNSBsaWJmZmkzLWJyYW5jaAorNjA5MjMgOGExODdmNTYyOTU5NDkyNWMxNWY0NDcxNTQ5NzI4MjU2NGY4MGFiOSBsZWdhY3ktdHJ1bmsKKzYwOTI0IGY4MmJkOWVmN2Q3ODgzYzQwYzdhODQ2MjY0ZDM4ZTc2NmZmMjI4MTYgbGVnYWN5LXRydW5rCis2MDkyNSAwMGJkZDk2ZGRlZGEzMWEzMjM1NzNiYjc4NjNlYzZiNDllNDQ0OTE5IGxlZ2FjeS10cnVuaworNjA5MjYgOTA0OGNlOWUzN2M4ZWZmYjEwYmZkYjcyZTVkY2UwMjljZGExNDhkOCBsaWJmZmkzLWJyYW5jaAorNjA5MjcgZjllMjU1NjJiMmQxYjk5ZTNmYTQ1MGE2MzdhZTE3YWNhNzAzZGE3ZiBsZWdhY3ktdHJ1bmsKKzYwOTI4IGU5YmM0ZmJkYTE5MTI1ZGU3MzE2NGEyYjM5NTRlN2UzMmRjOTUzNjEgbGVnYWN5LXRydW5rCis2MDkyOSA1OTUzZjZmYzAyMDQ0OTUxYzA5YzkwYTJiZGNiMWFmOTdmMTY4OGVjIGxpYmZmaTMtYnJhbmNoCis2MDkzMCAzMzc4MmNhOWY2ZGNkMzMzMWIzOTQ3ZjdkYjc3NzNhMTc3OGRjNzI5IGxpYmZmaTMtYnJhbmNoCis2MDkzMSAxODRkMWIyMjc1ZGM4NzZhYjVlOTVlM2U1MjA5NDI0NDllZDU2YmY0IHB5M2sKKzYwOTMyIDdkMjYyMzBiYjc2MzAyYjI2ZWUxZTFjZDllODk2MTU4ZGRkNGRmZmYgbGVnYWN5LXRydW5rCis2MDkzMyBlYzBhODU3ZTg5NmRkYWFhMWJiOTdhODc5NGE1NjYxYjk5ZTZlMGEzIGxpYmZmaTMtYnJhbmNoCis2MDkzNCA3YmUyMGY0OGZmNjcwZmE4NjAwOGVmYTUwNTQ1NjdkMzZjNjMwYTg3IHB5M2sKKzYwOTM1IGQ4OWQ0ZGY5NjdlNjBjOTc5OTE4ODZhNGExZWNlY2E2ZjA0NjFlYTUgbGliZmZpMy1icmFuY2gKKzYwOTM2IDM0YWZlNmNiMDJhMTU4YzE3NGUwNWJkNDc4NTIwOWQ1YzJkNzFiMzMgbGVnYWN5LXRydW5rCis2MDkzNyA5MzAwNTNjOWRiMWRjMzk2NWQ4MDY1MzJmY2I2MGQ2OTBhOGE4NjQxIHJlbGVhc2UyNS1tYWludAorNjA5MzggYzU5ZmQ4MmE1NmIwMzMzZWY2MDA4NGI4NjRiZmFiZTBlMTNjZjY5MiBsZWdhY3ktdHJ1bmsKKzYwOTQwIGUyODg3ZGM1YmRiNWE2YWI4MGRhZjljZWU0YzRmZGJlYWQ0NGQ0MGEgbGliZmZpMy1icmFuY2gKKzYwOTQxIGE5ZTFmZGFmNDEzZDlmZjI2YjI4ZGZkNTkyMzQ1MDcxY2MyYjk4YmUgcHkzaworNjA5NDIgM2NjNTdmZDg3ZDBlMGU5NjA5ZDhlYzNjN2E5MjM2ZjNiZTk0NmZhYSBsZWdhY3ktdHJ1bmsKKzYwOTQzIDAyZDRmOThhN2UxMzJlZWVlN2IzZDhkZWU5NWE1MDdmMjI0NTFjZmEgbGliZmZpMy1icmFuY2gKKzYwOTQ0IDNiYmY5NmQ5NjYzOTEyNDcyNGMyYzhmMjQ0ZDI3ZDRmMTkyODUzZWYgbGliZmZpMy1icmFuY2gKKzYwOTQ1IDZlYTZjODdhNzUwMTI3ZWFjMGEyYmM0NWM1YTNhODU4OGZiZDhjNmMgbGliZmZpMy1icmFuY2gKKzYwOTQ2IDkyZGI2OWRjOGQ0YjA2NTk3NDJkZGQyNWUxZGY2YTg5OGVlMzkzYjggbGliZmZpMy1icmFuY2gKKzYwOTQ3IDhlZWY1NmUwOTg2Y2YwMTIxNTJhNDFiODc0NTk3MmFhZTE2N2I4NjAgbGliZmZpMy1icmFuY2gKKzYwOTQ4IDk4YzNmOWExZDM2NjMwMGY1Yzg0NWJmZWM4ZmU3MmIwNDdiYTY0MzQgbGliZmZpMy1icmFuY2gKKzYwOTQ5IDg1YzYzMDM2Y2EwMTkxMjVkMWI0YjhlMDgyOGM3ZTIwYzI1MzQ3NWQgbGliZmZpMy1icmFuY2gKKzYwOTUwIGYwZjhiMjAwMTUxNWUwNWQ5MzU5Y2EzODBlZTZhYzdjYWE2MTg3ZmIgbGliZmZpMy1icmFuY2gKKzYwOTUxIGE3ZjM1MGIzZWQyNDkwNjNjMzZiZjgwMzA3YWYxYmNkMWEyY2E2MGIgbGliZmZpMy1icmFuY2gKKzYwOTUyIDFiNGNmYTAwNmJlMTU5MDkxMGMzN2UyNmVmMDQxM2E3MDEyMjgzZWMgbGliZmZpMy1icmFuY2gKKzYwOTUzIDM3MzA5ZTMzYzQyYzQ1MmRhZjYwZjQyZjM1ZmU2YWQwYmRmYmU4ZmUgcmVsZWFzZTI1LW1haW50Cis2MDk1MyA0NTQ2NjgxM2RlZjc3Y2IyYmJmNTU0ODVlMDc2MjRiMWM1Zjc4ZTBmIHJlbGVhc2UyNS1tYWludAorNjA5NTUgYjg4N2RiYTJiNWUxYzE0MjgxMDNkMjUyMzcyMzIzY2VkMGIzMzMzYSBsZWdhY3ktdHJ1bmsKKzYwOTU2IDg1M2FmNWJiYjQ5N2IyMzAzNzE2NWY1NTQ5NTlhYWVkNDcyYjYyNjkgbGVnYWN5LXRydW5rCis2MDk1NyBiYzlmZDg0YWZkZWNjZWIzYzk2YWNlMjhiNjdhYjYyYTE3NDQ0MjNmIGxlZ2FjeS10cnVuaworNjA5NTggYWIzOGQ3NzFmNTZkYTk5NmFkZjQ1M2UxY2Y1ZWFlY2Y0MDM0ZmViYiBsZWdhY3ktdHJ1bmsKKzYwOTU5IGQ0NjYyNzczMGEyYTMwM2VlYTlmMGZkZmVmYWM3YzY4YmRlNGE3ZjggcHkzaworNjA5NjAgNDI3YjU0YzdlZTI1MmQ2NDQ2MjVhYzI4YzQwZmU2ZTU2OWNiMzY5MyBsaWJmZmkzLWJyYW5jaAorNjA5NjEgNmQ2YTI5M2ZiYWYzYjUxMDhkNWY4ZGMwN2YzZGVkYTY4M2JlMjdiNCBsaWJmZmkzLWJyYW5jaAorNjA5NjIgNGE5NTIyZmQ3NWE2ZTJhYjU3NjVhYzZiODIyZGFlMmM2OTYwMTU5MyBsZWdhY3ktdHJ1bmsKKzYwOTYzIDA5MWIyNzg3NmExYjg2NGUxZjkwNDA0ODBiMjkwZjM2MGUzZWQyNDAgcHkzaworNjA5NjQgNDJiM2IxMTczOTFkY2I1MmNiNmJkMTAyYmJjZTRkYmRiMDc3ZWFmYyBweTNrCis2MDk2NSA2N2E5ZDMzODU4NTEzODBlMGRlOTNiNzMxODUzNDlmMjA5NDE1OGMxIGxlZ2FjeS10cnVuaworNjA5NjYgN2M1MWUxZDE0YzhjNTlkOWM2MDU2ZWEwMDEzZDE4MmFjNTg2NjUyMSBsaWJmZmkzLWJyYW5jaAorNjA5NjcgNmE2Y2E1ZTU3OWY2NmUzZTc0MDAzMWMwNjk5NzVkZDRjOTAyNDEyNSBsaWJmZmkzLWJyYW5jaAorNjA5NjggMDc5ZTIxZjU5MzE5M2FkNzgzZGU1YjE1MGJiMzIzNDEyZmE3OTdlMyBsZWdhY3ktdHJ1bmsKKzYwOTY5IDExYTczZmJiZjg2ZjJkZjM5ODA1NzhiZDY0MjQzNmZiMzU1YTQzMGUgbGVnYWN5LXRydW5rCis2MDk3MCA4ZWI1OTgzMzEyMzE1NzA4NWE4YjMwYTIxNDRmZGRlYjc3ZTMwYzQ2IGxlZ2FjeS10cnVuaworNjA5NzEgMWM3MmE3MzgyMTMzNmIxZDZkMzNmYWRhNGFmMDNhZDFiZWU5NDBiNCBweTNrCis2MDk3MiAxNDdiNDhiM2JjMjM0ZTY4MDY5ZjViM2VjMWU0N2JhYzNjNWJlZTVlIGxlZ2FjeS10cnVuaworNjA5NzMgOTAwMzQ3ZjcwMjU4NGJiNjI3MzUxNjE0Y2NlMmJmZTYwYjlhNmUyNyBsZWdhY3ktdHJ1bmsKKzYwOTc0IGNhNWYyZjk2MDYxNzRjMzY1MTkzNjQyMTlkMWZhZDA2NTU4ZTc1YTEgbGVnYWN5LXRydW5rCis2MDk3NSA5NmEzNGVlZjg5YTNkMWRiZmUyNDUxNDUxODhiODA4MGFiOWNjNzdlIGxlZ2FjeS10cnVuaworNjA5NzYgZGRhOTJhMDk3ZThjNmY2ZDIyNjBiZmVkZTIzZDVjNDU2MjAxZGRjOSBsZWdhY3ktdHJ1bmsKKzYwOTc3IDVlMDc3MmVkMjBkMWQ2OGE5NTY1MDIxNTJjNjBhYjkzMmZkZDQ5ZGEgcHkzaworNjA5NzggMzkzODIyZjJlZjkwMWMzNjU1ZDg0YjJiZjg0MDVlM2VhYjRjODVlYiBsZWdhY3ktdHJ1bmsKKzYwOTc5IGYxYjUwYWE1ZDVhZjQ4M2FhMjYzYWE5N2RjYTFhOTNjZTcxM2VjZTggcHkzaworNjA5ODAgNzM0ZmMwYTE5NjU3ZDVmMGYyYTg0YmFkOTE1YjA1MzE2NjY5NGUyYiBsZWdhY3ktdHJ1bmsKKzYwOTgxIDdhOGRlMmE3YjFhNTZiZGYyMjJmZTZmMTQ2NjA3M2ExZWIxNGVlN2IgcHkzaworNjA5ODIgOGY5OTRkNjk3NzQ3NTUwZDEyNmE1ZWVmMmJhODdiOWM2NDMxZDgwNyBsZWdhY3ktdHJ1bmsKKzYwOTgzIDM2NTdjMjdlYTJmZDJiOWE1NzQ3M2ZlZDU5MjczZjYyY2IzNzk2ZjEgbGVnYWN5LXRydW5rCis2MDk4NCA5MzBiMjgwMmMwMzdiOTM1NTQ5ZTNhMzdmMDgwNzIyNWYxYjY3OWIyIGxlZ2FjeS10cnVuaworNjA5ODUgZDdlMjMyZTlmMWExZWUxNWMyYjNmODU5MmY3YjdjNTEyNDk2ZmMyNyBsZWdhY3ktdHJ1bmsKKzYwOTg3IDFiMTlhNTcxNDVhNWIyZjVhNjZmNmMzODVlNGE0NzhhMDczMGYyZmUgbGVnYWN5LXRydW5rCis2MDk4OCA5NzcxMzk1NmMxYjBkZjNhZWQ3ODhhZTIxNGU4ZTgzY2M0YjAxYTIzIGxlZ2FjeS10cnVuaworNjA5ODkgYmEzNTliNmMzM2MzODE1NjQxZWE5MWIwMjc5NmQ1Y2Q1NTJkNzA5OSBsZWdhY3ktdHJ1bmsKKzYwOTkwIDlmMDM3ODg3NjNlMDlhMDkwMTM3MGM3MjVhM2IzNTcxMGY3NDVlYjQgbGVnYWN5LXRydW5rCis2MDk5MSAxY2M0N2UxMjlmZjQ3ZjRlYTZkNGQ2NGYyYmQ1ODBiZmU2NGM4ZGU4IGxlZ2FjeS10cnVuaworNjA5OTIgNThjM2YzNDM5NjcwOGFkZjM0MTdjZGY2ZGJkMmY3NTU4OTZiNWVkNCBweTNrCis2MDk5MyAyYzVkOTE2YmQxMWM5YTllMTE0NjVjYjk1YjdkZDBjMDBjNzNjODMyIHB5M2sKKzYwOTk0IDQyOTg1ZWJiZmM0NTMwOWI2OTQwNGY0MzJlMmNhYWQ4Mjk3NDg5ODcgbGVnYWN5LXRydW5rCis2MDk5NSBlODRhZDJhMjU4YTQ2OTQ5NDJmOTE0NzFkOGNiYmZhNDEzZGVjMDIxIGxlZ2FjeS10cnVuaworNjA5OTYgOTc0Y2ZmM2UwMDIxNjIxYWU0YWI0OGNmMGVhNzllOTBlY2ZmZjZjZiByZWxlYXNlMjUtbWFpbnQKKzYwOTk3IDEzMGZiZmIxNjAzNmFmNDY4ODAxMmQ2YmY1Yjg5OGE0MTRmNjIwZTEgcmVsZWFzZTI1LW1haW50Cis2MDk5OCA3NDhhZjBiODM2NzRjYzFjMWZlMGZjNWVmYzlkOTVlOWQxYzZiNmQyIHJlbGVhc2UyNS1tYWludAorNjA5OTkgZWM3ZjA4NzNiNjY0ZGY0NjM2ZWQzMWI3YmVkZTBlMDMxYTAwNjQ4ZSByZWxlYXNlMjUtbWFpbnQKKzYxMDAwIDFkODRiZjVmOTQ3ODZhODQ2YzA4MDI4Zjk5YjZjM2I4MjdhY2Y0NjMgbGVnYWN5LXRydW5rCis2MTAwMSA0N2E1OGNhM2UxMGViNzAyN2QwY2M5OTRlM2IxYWRkNjU3ZmI5NGJlIGxlZ2FjeS10cnVuaworNjEwMDIgMzkxNWQ1ZjY1MGZhOWRlMDdhYmI3MWQyNjEyYzg2MWMxMmE2ZTQ2ZiBsZWdhY3ktdHJ1bmsKKzYxMDAzIDdkZDJjMTc0NjI2N2QyZWNlMTc5MjgxNTM1YWIwZmVhYTlhZDY0MjAgcHkzaworNjEwMDQgNmJhNTMwOGY3YmE0MTY1YjhmZTIwZDk5ZWU5YmI1M2UzMDIyNjIzMCBsZWdhY3ktdHJ1bmsKKzYxMDA2IGVlYzRjMWU5ZTljYzg4ZmVkNjEyMzhjY2Y0ZTNmZWIxNmFlYjU2NzEgbGVnYWN5LXRydW5rCis2MTAwNyA2YTEzZmVjYWYyZGZiMjZjNGIxMDA2NTE0MGVjMTA4YjRjMDc3NjcwIHJlbGVhc2UyNS1tYWludAorNjEwMDggNGViNWE2NjdjODgyYjVhNGUyNzQxODA4ZTdmNmMwNDBmNmY1YmE2NCBsZWdhY3ktdHJ1bmsKKzYxMDA5IDgwZTBhMjkzMGM2ZDU5ODVlNTQ4NDdmMmFjNGI3MzJlMGU0MWEzNjIgcmVsZWFzZTI1LW1haW50Cis2MTAxMSAyNDFjZjgxYTA1MDg3OTdmY2M1ZDliNWIwMWFjY2M0Nzg4YWIzNTNhIGxlZ2FjeS10cnVuaworNjEwMTMgOWYxODNhZTM0NThiZmI4YTkzMTczYzNmNDI2NzdmNzljNGQ5NjJmMiBsZWdhY3ktdHJ1bmsKKzYxMDE2IDQwZDI2OWQ2ZGE5YzU4MzA3YzNhYTQ3N2E1MjQwODk2YTc5NWVkMjMgcmVsZWFzZTI1LW1haW50Cis2MTAxNyBhMDEyMTNhNTQyNWQxYzQwNTFlY2EyZWQ3ODlkZDY0NGI1MzI4MzNhIGxlZ2FjeS10cnVuaworNjEwMTggNjY5MzA0M2QyN2ZkMzI5N2NhOWZkOTFlOWMzZmU4YjYyZjdmZjM2MSBsZWdhY3ktdHJ1bmsKKzYxMDE5IDgxMGJkNjc3Mzg2MzZlYzg1OWM2ZjUwMjkzMTdkNjc5ZjEwYjA0ZjkgbGVnYWN5LXRydW5rCis2MTAyMCAxOWQ4NTI5NDJkZGRkMjJjMTA5ZmM2ODZmNDhkMmRiMjFhZTVlYWNmIGxlZ2FjeS10cnVuaworNjEwMjEgODUzMWY4OGI1NzhlMjBhNDI5NzZlMzM1NmFlMWViZmIwNzA0NzhkZiBsZWdhY3ktdHJ1bmsKKzYxMDI0IDMwNTc4ZTA0ZDM1Y2RjMGM4NjE1YTg3NzdiZjYxNGM2YmIwYzU4ZDIgbGVnYWN5LXRydW5rCis2MTAyNSAyN2JhYjM5ODlmNjM1M2NkNzJiM2Q3ZjNlMDMyYzA4OTQzNDY5ODg3IGxlZ2FjeS10cnVuaworNjEwMjcgODEzYzE0Njg1OGY3OGUxMjhiMTE0MWY4MWI2NDU4MGMxNjIzZWIxZSBsZWdhY3ktdHJ1bmsKKzYxMDI4IGMxMjZiZDliNTA1YmY4NmI4MWVhYmU0NzljZWY2Y2IyMTA3ZDJiYWUgbGVnYWN5LXRydW5rCis2MTAyOSA2YTk5MmI2NjgwYjFiNzY0NTVjZTBlMjExM2NlNDAzOWJkOGE3NGRiIGxlZ2FjeS10cnVuaworNjEwMzAgMWIwZWI3NmVmNzJhYmQ5MDgyYTA5NTE0ZTg3OTE4N2ZjYWE4NWNhMCByZWxlYXNlMjUtbWFpbnQKKzYxMDMyIDliMTE1YzVlOTExNTJiMDcyM2ZmZGU5NWI5YjU4MTJiMThjMDJiYTUgbGVnYWN5LXRydW5rCis2MTAzMyA5N2ExOTcyYjY3MmU3YjViNTM1YWIwM2ZlZjg4MmYxZjFmODM3NjZkIGxlZ2FjeS10cnVuaworNjEwMzQgMjFhNWU5YTU0ODNhNTIyNDBiNTFiNjJiZGY5MWI1NjQxMmYzNWFjMCBsZWdhY3ktdHJ1bmsKKzYxMDM1IDdlZmE0ZDFiY2VkMzhjMzBjNTc5OWQ1NzEyNmZjNGViZjU4MzJhZTYgbGVnYWN5LXRydW5rCis2MTAzNiA0ODQ4OGZhNTA3MjllNGYwYmEwMDVhNWUyYjMzNjAwMzc5NjgwMjhjIHB5M2sKKzYxMDM3IDAwMmE1YWM3OTJiMWU2YTdmOTk2N2NhMTAyMzRmODJkNjJkOWQ2NzcgbGVnYWN5LXRydW5rCis2MTAzOCBlYWE4YzE5MzkxMDhlMDFkMTRkZmUwMDI3YWU1YmYwZDNlM2ZhNzkwIHB5M2sKKzYxMDM5IDhjN2JhMGVkODQ0M2I1MTM3MmY5Yzc5YmU5ZDNkNTJlZGQwZGE5NjYgbGVnYWN5LXRydW5rCis2MTA0MCAxOGZlZDE0YjA2YjYwNjY0ZmMyZmQyMGZjMzE1YWJlNjliNGZhYTc3IGxlZ2FjeS10cnVuaworNjEwNDEgYzAzYWZmNmQwN2Y1M2IxMDZjNjJjNjI5NWY5MGNlNWI1NmJlMTgzNyBsZWdhY3ktdHJ1bmsKKzYxMDQ2IGQ4OWZlMWQyZmFkZDgyYTBjYzgzNjEyOGMxYTkwMzRkNDBjOTg4NGIgbGVnYWN5LXRydW5rCis2MTA0OCBhZGU3YWM4OGQyZDA5ZTIwZTYyMWI2MjExOWQ4YTcxZDA2ZDU4ZTUxIGxlZ2FjeS10cnVuaworNjEwNDkgYWY5MjhmZjBjNWM2OWQxYzU4M2ExZDY5ZTgzMTRjMGI4ZjdkNDU3YiBsZWdhY3ktdHJ1bmsKKzYxMDUwIDFiNmZiNTY5OTYzNDU3ODQwYWU5NzgzN2YwMzNhYzQxYWQxODAyYzcgcHkzaworNjEwNTEgYmY4ZWU1OTNjYmFkMDNjNzI0ZTVlNDk2YTBkZWRkZjdkYzMxNWI3NyBsZWdhY3ktdHJ1bmsKKzYxMDUyIDU1ZWVmYjQzZWY2ZjNhZDFhMDExNzdlZGFkMDJjMzE2NTZmNDU3NzUgbGVnYWN5LXRydW5rCis2MTA1NCBhNzdlMWNmN2VkMjUyNjJhOWNmMzUzNDdmZDg2YzMwMjczOGNkNDYwIGxlZ2FjeS10cnVuaworNjEwNTUgYjBmZGU5MzY2MWNlODc1MWVkZmM2YmIzOWNjZmMzYTRiNWZkNzhmNiBweTNrCis2MTA1NiAwOWM5Y2VlY2RkNTZkMDRiZjIzNzE5MWNkMTQ4NmQ0NzZkNjhjM2FiIHB5M2sKKzYxMDU3IDcxMjkzNzJmNTMzZjQxYjM3NDE1MjZhZjgyNjQ5OTVhOGM4OTU0ZTggbGVnYWN5LXRydW5rCis2MTA1OCBkYzViMDEwNzI5NGMwZGM0ZjdkNjg5NTNmZTUyNzExMTAxZDVhYzg5IGxlZ2FjeS10cnVuaworNjEwNTkgZTU3ZmZhMmI1ZDA3ZjAxMjVkNmM3ODlmNGI1MTRkZjk1OGZiZjZlYSBsZWdhY3ktdHJ1bmsKKzYxMDYwIGIyOThjYjQ5NzVkMmRmZGMwMTBlYmRlYTA4YzdjM2U4ZjBlYzI2YTQgbGVnYWN5LXRydW5rCis2MTA2MSBmY2U1YWY1Y2UxNmE2ZDcwZjAxMDY1NTk5YWQzY2I2YmE4MjM0NTFmIHB5M2sKKzYxMDYyIDhiNTJmZjQxZTBlMjc5NjMzMGRiNGU2YzNkZTJiYTg3OTBiNDk3ZWQgcHkzaworNjEwNjMgZjg4YmViZWViNjczZTk4NjA4NDgwZWYxOTI5NmM3NzFmZjQzNWQwNiBsZWdhY3ktdHJ1bmsKKzYxMDY0IDNhNmNhODllZjc2ZDQ3NDI1YWRkM2Q0OTUxZDRjOTkyM2FmYTE2NmQgbGVnYWN5LXRydW5rCis2MTA2NSAxN2M4ZWM4ODlmZjQyYjBjZjI0MjFiNTVlNTU3MWY1OWQyYTM3OGIzIGxlZ2FjeS10cnVuaworNjEwNjYgYzVlNzdlMGYyZjMyZmZhZjQyYzc1YTc0ZGRjYTFlNzRmM2UwMTE3MiBweTNrCis2MTA2NyAxNDRlODQ2NzJlZjkzNmQ5NzA4MDE1ZmQ3MjUyMzQzMzJhYWNkZmUwIGxlZ2FjeS10cnVuaworNjEwNjkgNDI4OWM0MTA0Mjc5MDM2ZWZiODYyZDIyNDkyMDgwYzY4M2RhZjQyZiBsZWdhY3ktdHJ1bmsKKzYxMDcxIGY2ZGMwOGFkNTY0YjFjNjk2ZTY3YTNmYjQyMzBjMzliNmI4N2NjOWMgbGVnYWN5LXRydW5rCis2MTA3MiA0ZjYzOWFmNThhMTkwYzA5OGI2NjVhMzdiMWRlMDViYjQ2ZDg5MGYzIGxlZ2FjeS10cnVuaworNjEwNzMgZTgxZTQ1ZjgwMDJlOGMwOWEzY2YxMDcxMjc2Y2EwNzYyZTAzNzdmNCBsZWdhY3ktdHJ1bmsKKzYxMDc0IDQ1ZmMzZWNiMzAyM2VkODBjOTc1OTAxOGIyYjkyZWZlN2ExMDFkM2QgbGVnYWN5LXRydW5rCis2MTA3NSA5YjM4MWVkMWRiMTQzMzJlNDE0Zjk3OTQyMjZiMjI1NGI2NmFhNGYwIGxlZ2FjeS10cnVuaworNjEwNzYgNjI0YWU4N2YxYzk2MWZkOTFmNWExNTVmYmE2ODljM2Q2NGVmZDEyNSBsZWdhY3ktdHJ1bmsKKzYxMDc3IDA4OGRmYzBmNzFiNDk4MGNiOGUyOTUzMDY1YTBlYTQ3N2Y4OTg5ZDAgbGVnYWN5LXRydW5rCis2MTA3OCA0YWU0MzMxNGI3NDYyOGY5ZjljYmVjNzM3YTdlZjk0MTY2NmIzMGM0IGxlZ2FjeS10cnVuaworNjEwNzkgYmYxYWIzYmY3OTljODYzNjgzODhjMjlhOGNiMTJmNGI3OGRkNjk0NiBsZWdhY3ktdHJ1bmsKKzYxMDgwIGNhY2Q3YmExMWI3NzU4YzE4OTI5NjAyZmYyZTBjZmI2YmNmM2NmMzcgbGVnYWN5LXRydW5rCis2MTA4MSAyYjM2NzI1MGIwY2QzMzU5MTdiMzIwMjU0ZWU5ODg1MzYzNGFjYmUzIGxlZ2FjeS10cnVuaworNjEwODIgZmU3Mzk0YmM3OWQ2M2UyMzUyMzk4ZjEyNDA5NDA0NDIxOTk2YWFmYSBsZWdhY3ktdHJ1bmsKKzYxMDgzIDdhZmVmOGY0M2U0YTUyZTA4MDE4ZDZjOWNjMDE0MjI4ODAzNzEwMTUgcHkzaworNjEwODQgYzU3Y2IyZjhjMzUwNTJjNTQ2NDYyODgwYzZhNzkzMGU1YTIyOTkxMSBsZWdhY3ktdHJ1bmsKKzYxMDg1IGQxMzIzZmNmM2FhMTc5NTNkYzAyNGM2NTJmYjIwYjZlN2MwOTQwZDQgcHkzaworNjEwODYgZjMzZjY2YTIwODJmYmYzMjZmZjc0ZTYyZjRiZjI0NGUwMDE3MzA5OCBsZWdhY3ktdHJ1bmsKKzYxMDg3IGZmZGQzMWYxY2QyMDk0ZDI2YjhiMGMwYWI0Zjg2YjU1MDllNjczOTEgbGVnYWN5LXRydW5rCis2MTA4OCBjYTQ1ZWI3MWYyZDJiYTMxZWNkMmFmYjJiMmZmNWRlYmJmMTM1ZTBjIGxlZ2FjeS10cnVuaworNjEwODkgZTQyNWRkYTRmNjMwMDYwZGY2YWU4MmFhZmU5NTE2MDJkMTUzMjZjMSBsZWdhY3ktdHJ1bmsKKzYxMDkwIGYyZjMzZGI1ODkyMDBiZWMzYmQzYjc5NjkyODA5MDU0YzdlMTI5MmYgbGVnYWN5LXRydW5rCis2MTA5MSA3ZDczNDdkZDk0ZTg3N2Q3Njk5ZDY3ZGU3YzkyZTVmZDJlNmY0ZmFiIGxlZ2FjeS10cnVuaworNjEwOTMgZjc4ODQxNjRmMDg4OWJlYjYxMjBjMWUyNjY2ZmI1M2E2N2U0NDY3YiBsaWJmZmkzLWJyYW5jaAorNjEwOTQgMmM5MzE4M2I4YTNjMjY5NDQ2YzUzNGYwNWFiYzI5OTQ5NDVlOTAyYiBsaWJmZmkzLWJyYW5jaAorNjEwOTUgNmM0NjEyMjU1ZjYwNTJjMmFhYTQ5YzgxN2QyYTc4NjAwMmY3YzY2MCBsaWJmZmkzLWJyYW5jaAorNjEwOTYgYjc4YzNhNDM3MWQ1MTExMGEzNzU0NjhkNzA0ZTYwZDJiNTE2NDhlMCBsaWJmZmkzLWJyYW5jaAorNjEwOTcgZDE3NjkwYzUwNzY2NjgzOGM2Y2I5ZjdiM2EzYzY0MjgwNTBhOWEyMCBsaWJmZmkzLWJyYW5jaAorNjEwOTggNjU5MmU1YTkwYzJjZDg0ZjIxMGZkOWY2NmRhMmE3NDhmNDg0YjUxZSBsZWdhY3ktdHJ1bmsKKzYxMDk5IDhhYWYxNDk1ZGEzOTU5Y2Q4NDRjYjVhNmRkMTZmM2UyOWEzNjMwMTQgbGVnYWN5LXRydW5rCis2MTEwMCAzZTQzNWEyMTEzNTY5NjhkN2U0MGViMjMxYjllNmI1YTVlYjEzM2EzIGxlZ2FjeS10cnVuaworNjExMDEgZDQ0MzRmMDNiOTcwMjJiMjc1ZjA0NTZiYTAzNjYyYWYwM2FlODRkYiBsZWdhY3ktdHJ1bmsKKzYxMTAyIDk2ZDVhMTU3MzE2ZTM1MTgwOTI3N2Q4M2U0NjI5M2ZkNGU3OGI1OGUgbGVnYWN5LXRydW5rCis2MTEwMyA4YzNjNWI0ZWVmNTU1NzE5Mzk4NTZiMzMxN2EyMDYyNTExYjY4MTlkIHB5M2sKKzYxMTA0IDhkZDMwZmUxMWE0YjM0ZDEwNzdiZTgwOGYyZTBmMTRhZGI4NDM0NGIgcHkzaworNjExMDUgMTE4OGVkZTE1NzM1YjliODY5OTEwY2M0NmY4N2Q1N2MxOTdlYzZmNSBsZWdhY3ktdHJ1bmsKKzYxMTA2IGNjMjIwNzQ1ZTRlNTkzZTZjMzZiNmY2ZGYyZjc0YTU0MGNkODJlM2UgbGVnYWN5LXRydW5rCis2MTEwNyA1MDRiNDM1N2JkZGQzOGU3M2EzY2VlYTYyNmQyOTkwMzAwNDEyZTMzIGxlZ2FjeS10cnVuaworNjExMDggMmQyYjBlMTU1ZjE5OGZiYzZmNjA3ZjFjODI5M2I4ZThhNjA5ODU2NyBsZWdhY3ktdHJ1bmsKKzYxMTA5IGJmM2ZhMzdmZTc5Y2QwMzhjMmVkM2ZiNjQyY2I1NjQ0NmNjNzk0OTkgbGVnYWN5LXRydW5rCis2MTExMCAwY2I0ODE5NTY0NTJmYzVmNWMxMDFlZTNmMjQwOGM5OTY1NWFhYThkIHB5M2sKKzYxMTExIDI0MjU0NDMwZTg5YTBjOGUwNWQ3NWQ5OGY4MGQ2YmUzMjZiYTZlNjYgdHJ1bmstbWF0aAorNjExMTIgMDEyOGNlNzczNTRmNjA1MjZkYjhkYzg3ZWU1MDc2OTM0YjNiYTRjMiBweTNrCis2MTExMyA3MTBkNTI1YjA1NGM4MWViMmNlN2I2MmVhYzQ5YTIxNmY0ZGYwODhmIGxlZ2FjeS10cnVuaworNjExMTQgYzM4ZGNiN2Q5NGE2ZGE5YmRmY2FiOGY0N2Y5NDNlNTM3MjhkMjVmNSBweTNrCis2MTExNSBlNGZmZTY0OTk1NDgxYTk3MTA1YjkzMDBiODllZmQ3Y2NlYzZmNWI5IHB5M2sKKzYxMTE2IDU5NzYyZDY3MTRhMzEzYjk1ZDkyZDViM2RmNjdhNjM1YTJiMDBlMWEgbGVnYWN5LXRydW5rCis2MTExNyA5NzJmYzdkN2NiNzI2OTc4YzI4NTUwMjZjNDQyOGI3MWU3NDE1MTAxIHB5M2sKKzYxMTE4IDQzZTA4NDg0N2U1MzMyMzQwMWU4Y2Y3YzJkMDI4YzI2OGNjZjgwMjggbGVnYWN5LXRydW5rCis2MTExOSA3ZGEzNmI0OWM5ZTVhYWUyZjg1MDVkM2VjMDZiMzZiNjEwZGFhZGEyIGxlZ2FjeS10cnVuaworNjExMjAgYzU0NjUyMzY2NzcyOGM5NTcwN2RkMzg1Y2UwYWIyNzgwNmI1ZTMxMyBweTNrCis2MTEyMSBkYmYxZGRjNWY0Nzk1Mzc5NDc0NWY2ZmM5ZmRlMmU1NDI5ZGFlMGYzIHB5M2sKKzYxMTIzIGJjZTRjNDBkZjdkZjc0ZWZkODdmZWUyOTIwOWViMWNlMzM2ZjE5NDMgbGVnYWN5LXRydW5rCis2MTEyNCAxMDk2MmIzZjc3YTliMzgxYjYzMTgxNmFjYjE2YThmYzQ5Y2Q2NTk1IGxlZ2FjeS10cnVuaworNjExMjUgZmFjZjAxZjE1YjE1MzU1NTljMmJhMDVjNGY1YWE3MjA0NmI4OGYxYyBsZWdhY3ktdHJ1bmsKKzYxMTI2IDkzN2EzYzVhZjY5MTkyYjhlZDE4ZjRlN2FlZjZjMWU1OWVjZDBkYjggcHkzaworNjExMjcgOGNkOTg0YzE3ZGVjODVhYzA3MzkxODVkMGVjY2U3ZDBlNDlmYzU4YyBweTNrCis2MTEyOCBiMjY5YzJkMDNmZDJkNmEyNzA4ZWNmNjYzMGI3ZmVhMjE5MjViYTk4IGxlZ2FjeS10cnVuaworNjExMzIgMDk0MDcxM2I2NzI2Y2EyNmYzYmQ5ZTZmZjQ1YzBlODdiZjVkMGY3ZSBsZWdhY3ktdHJ1bmsKKzYxMTMzIDA1YzM5NjE5MWU0MzI5MWY3NjBiYzIwMjkzNzkzZjZhOTRmZTNiNTcgbGVnYWN5LXRydW5rCis2MTEzNSA0YTk1ODhiMWU0Yjk1ZGYxM2JkNTEwOGViYTM0N2MwNjFlZmUyMzE0IGxlZ2FjeS10cnVuaworNjExMzYgODljZmIzOGE0Yjk4NjIzY2EwNTUyNmQ2YWI5MjI2MDdlZDA4ZWUwZiBsZWdhY3ktdHJ1bmsKKzYxMTM3IDIwN2NhMGE4YWZkMDAyMzBhYmI1ZWNlMjQ3N2Q2OGZiNzMwYjJhNDAgcHkzaworNjExMzggY2ExMWNmMjRlYjg1NWY1Yzg2Y2MxYzQwZjA0N2I0NjVjYmU3ZTQ4YSBsZWdhY3ktdHJ1bmsKKzYxMTM5IDY3ZDQwNDg2Njg0NjIwOTRlZGYzZWNlNzU2ZjQwMjlhNjJmZDUwNzUgbGVnYWN5LXRydW5rCis2MTE0MCAwMmEwMWU1NzhkNmM1YTBiZTM0Mzc4MzA2NjYwYzNmY2M0ZDU5YzYzIHB5M2sKKzYxMTQxIGI3ZWU5MDc0Y2EwZWIzYjc3ZWZmZDJiMjMxYjMwOTE2NzkxNjBlYTAgbGVnYWN5LXRydW5rCis2MTE0MiBmYzZmOTA1NDVjYjQ4ZTVjZWY1ZjZlY2JiMTBmZTZlY2NkY2Q3OTdjIHB5M2sKKzYxMTQzIDAwMjNjMDQyMjhlNmIzNTMzMDVkNWNhZGFhOGZlNjU5MTgzMTgxMDYgbGVnYWN5LXRydW5rCis2MTE0NCA4OTQ2ZTI3YTQ1NjNiYzJkM2RiMjllNDYwZjk4YzE4MWFkZTc1ZGYyIGxlZ2FjeS10cnVuaworNjExNDUgOWI4ZmM0MDVmOWIwNGZjNTExYTZjMjM4MTExOTk0ZTgxMjI4NWM0NCBweTNrCis2MTE0NiA5YWQ1NDJlYTA1YmExZGE5YjAwNjFlMmVlOTJlOGM5NTA3ZjQwNjYzIGxlZ2FjeS10cnVuaworNjExNDcgNDRkMTBkMzkwOTJjNjVlYzJmZWJjY2FlNzI2Yzg2MmZmNGI4NzU0NyBsZWdhY3ktdHJ1bmsKKzYxMTQ4IDZhMDRkYmIwZDE0YjQ5ZDE1ZjMwZGEzZjc3ZDM5ZjVmNjRhMDllNjYgbGVnYWN5LXRydW5rCis2MTE0OSAzMTI3OTU2ZjNiMzNlN2QxZGZhMmY1ZTI3MjE1NTg2ODhjOTU1YmIyIGxlZ2FjeS10cnVuaworNjExNTAgYThmYmQ5MjcxNGE5YTljNDcyMjdiOGYyNmU4NzZmNDRlZTgyNjA3ZCBsZWdhY3ktdHJ1bmsKKzYxMTUxIDJkMGJkMDk1YzQyMGIwNzExMDAwZDliZTY2ODQ4ZjZjZmQ5NzJiM2IgbGVnYWN5LXRydW5rCis2MTE1MiAwYWRmYmE4YWU5NTcxM2M0ZTBkNzJmMTVkMDg5NmRhZmJmYTZiOGQ0IGxlZ2FjeS10cnVuaworNjExNTMgODJjM2IwYjVhYTkyNThkODhlMTdmOTdkMTVmMDhmMDcyZjQ4ZTdlMyBweTNrCis2MTE1NCBjMDlkYjc4YmQwNjZjY2IxMmQxNTg3ODlkYmRmMzQ5OGE2MTM4OTNhIHB5M2sKKzYxMTU1IGNjNTU0M2I1NjEwYjJkMDY1Mjg0NDQ2Njg0OTY5ZGVkOWVmNjVmNDMgcHkzaworNjExNTYgMGUwMTY5YjBlYWNjNmRkZjgwNjhkNWM3Y2QxODQ3M2E3YzMwYjlkOSBweTNrCis2MTE1NyA1YmEwNjY5MGMxODQ3OTliMDVjNWRiNjAxMTBlMjNmYThjNzBhNTM4IGxlZ2FjeS10cnVuaworNjExNTggZGYxNTgyN2YzNDg4MWI5YWYwOTM2MzUwODEzY2VkNWMxMjNjODIzMCBweTNrCis2MTE1OSAzNjJhNDZlN2MzM2EyYTZhZjY3YTc5NzQzMGZkNjRmYjkwNTc2NjZhIHB5M2sKKzYxMTYxIDIwYTQyNjc0YjExMTA0YWI5ODU4NjlhMWRiZTc0ZDE2MGU1ZjU0ZDMgcHkzaworNjExNjMgY2QxNWE1ZTljMWRlNTliYmVmZGE3ZjZmZjg1ZjQ2MTIwMDU2ZDNmNCB0cnVuay1tYXRoCis2MTE2NCBjMTI1YzYxZTA2YTg2MDY3MzIwYjUyNmQ4MDFmYTlmN2NlYmNkZjU1IHRydW5rLW1hdGgKKzYxMTY1IDcwYzQxYmQ2ODBiNWU3Y2IwMWE0MjU2YmVjZTliMzI0ZWE2NGQwODAgbGVnYWN5LXRydW5rCis2MTE2NiAzNDM5ZmEyMTVmYWVjMGFlMThjYjI4NDM5NGYxY2M1MDQ1OTVkYmVhIGxlZ2FjeS10cnVuaworNjExNjcgNWI3MDc4ZWNjZWU4MzY5N2Y1NDQxNzQyZGY4ZTlhZGM1NGU3Y2M4MiBsZWdhY3ktdHJ1bmsKKzYxMTY4IGE2MmY5NWE0YWRmYzVlMmFkMjYzNmUwNzY0OWJiYzc3YTQwNzU1MDEgbGVnYWN5LXRydW5rCis2MTE3MCA0MDYwZGIxMjZlY2YzNmM1MDU0MjhjMjRkYzZkYjU0ZjFkNTdhYzU5IGxlZ2FjeS10cnVuaworNjExNzEgOGJiZTUzMWZjZDNjOGNhNzFmNWI0MWQxMjZiMzhkZTFjN2NhZWU0ZCBsZWdhY3ktdHJ1bmsKKzYxMTcyIGY3MmIyZGU5OTdiOTkyNzg4NWE5NGM3MzljOWFjOTc4MWIyODdmYmQgbGVnYWN5LXRydW5rCis2MTE3MyA5NmNhOGM3Y2VkYzRkMDMxZWJiMjA4ZTVhZGE5MzE4ZTYwOGNhNjI4IGxlZ2FjeS10cnVuaworNjExNzQgNzYyOGNiNDAzYzUzZTFhMzZhZTNkMmY5NDhiMTcxNTU5NmE2NjM2NSBsZWdhY3ktdHJ1bmsKKzYxMTc1IGJiZGYwNmE4NmEyNDMyOThiMjEwNzRlOWFlNTNjYWNjYWMwODRjMzEgbGVnYWN5LXRydW5rCis2MTE3NiAwYThlZWNhYzVhZDFkYzkzNDdkZTRjYWI0NzI1YjgxNjExZjA1ZmVhIGxlZ2FjeS10cnVuaworNjExNzcgZjY1M2MwYjg5MTZiOGU1NjViNzA3NjZkOTFhM2YyMjUwZDRlNjY4OCBsZWdhY3ktdHJ1bmsKKzYxMTc4IDQ3MzI4ZDc2ZThhYmJkMTc2MzFlZDY2ODA1Yjc1MmU4ZmMxNWEzYjggcmVsZWFzZTIzLW1haW50Cis2MTE3OSA1NGYxY2I4YTgxZjY2MDI1YzdlZjEyNmU4ZTdlNDRlYjQwMzU2ZDMyIHJlbGVhc2UyNC1tYWludAorNjExODAgMDU2NTEzMGQ3ZDlmNjRjMGRmNDQwZTVjMjE1ZjJhNGRlODM0NjBjYyByZWxlYXNlMjQtbWFpbnQKKzYxMTgxIDFmN2Q2MjhjNzBhOWFlZmU3NjJjMmMzMjIxMDg3NmZhZjhkNjRjNzggcmVsZWFzZTI0LW1haW50Cis2MTE4MiA3YTFmYzYxZDVjM2U0NWYzYTIyMTVkNDJjYTg1Njg2MWExODBkMTE5IHJlbGVhc2UyNC1tYWludAorNjExODMgNWNjYjZlYjIwMmZmMjFjMDE4MDA0NzU1NWVjYTY2OWJiOTI2Y2UxNyBsZWdhY3ktdHJ1bmsKKzYxMTg0IDg4YzFlMTdjZWZmY2YzNTkzZmIxYjViMGQ2MTc0NmFlYzBhZTk4MWMgcmVsZWFzZTIzLW1haW50Cis2MTE4NSA4OTNjN2JkNGE5MmJkODg5YTg1ZTY5MWY0OTE4OGMzN2IwYTcyMzU3IHJlbGVhc2UyMy1tYWludAorNjExODYgNTY2ODFkNWJlZTcwOTMwYmM0Y2Q4MWMyODkxZmNlNGMzMGVhNjcwYSByZWxlYXNlMjMtbWFpbnQKKzYxMTg3IDRkNzEzMDFhNmQ0YjdmYTk3OGUwZGUyY2YwYWIyNzFhMTRlYWUyNmIgcHkzaworNjExODggYTMxYjY1MDUxNWNiOWNhNDFjNTdjMTVkNGJkYjczYmMxMzhlZGNmMCBweTNrCis2MTE4OSBjZjNhODBmMWRhN2QwN2EwMzRmZTQ3MTNmMDQ4ZjM3OThlNmE0OWUxIGxlZ2FjeS10cnVuaworNjExOTAgNjA2OGI3NWVjMjdhMGYxOWM3MjAyYzgwZTA4MGRlN2ZlM2Q5ZjRhMiBsZWdhY3ktdHJ1bmsKKzYxMTkxIDQ0YWQ3OGZlMzVmYWIxMzE3Y2ZjZDAzMTg3ZjQ3Njg1MTFhZjFlNjggcHkzaworNjExOTIgYjkzMmYwMzVmYjNlZjQzNmRhYjAwNjIxYjUzZTdmMzEzZmQwMGZlMiBsZWdhY3ktdHJ1bmsKKzYxMTkzIDI0ZjQyMzBiYWViZTdkZmM2Y2IzNzY5ZmU5NzliMzFkYTY5MTc2YTcgcHkzaworNjExOTQgYzZkOWEzNGYwMjRmZGJhNDY2YTkyMjc5ZTNmMTE1NmMyOTE3ZGUyMiBsZWdhY3ktdHJ1bmsKKzYxMTk1IDJjNzNjNTgzM2YyMDA1YWU5ZjU2ZGNjYmM1ZjlkMjA5YTMyMDVmMmIgbGVnYWN5LXRydW5rCis2MTE5NiA3ZTRiNzUzYWZlYzZlMTc5NGUzN2FjOGVkYzY0MzI1MWU0MzVkMmExIHB5M2sKKzYxMTk4IGE1NTEzNmM3OGI2MDQxZDNlZTZmNTA1ZmUxMWQ1ZTlhYjQ1NWJmZmYgbGVnYWN5LXRydW5rCis2MTE5OSBhMThhNDI0YzJiZDM0ZTc4N2Y5MjMzODcxNmQ4MmQ3ZDQ4ZTkwNzA1IGxlZ2FjeS10cnVuaworNjEyMDMgNDFhNzA3NzQ0YmM4OThkY2EzZGZiMGQ0YjU3NzJmNTIyMzE1MWZmMSBsZWdhY3ktdHJ1bmsKKzYxMjA0IDYyODJkZmQ1ZGM0OTRmNDA5MWJhMzI4NTI5NWI2OWEzYmViNDczMmMgbGVnYWN5LXRydW5rCis2MTIwNSA4ODJlYmExNDUxMTk4ZDVhMGZmZDgxYmYyMTc4ZmYxN2FkZjg3YjMzIHB5M2sKKzYxMjA2IDI1NDA2YjNmZjk3YTZmZDI1ZGQ1NTExZGQ1MDVlMzE5YjI4ZTRhODkgcHkzaworNjEyMDcgNjVlZjYwOGRkNjZjYjA0MzIwYjVjMjcxY2Y1NzA1Y2Q5OWIwZTQzZiBsZWdhY3ktdHJ1bmsKKzYxMjA4IGU5OWUxZDhiODA3NzcwZWU4YmU2YjFhYjM1MTY0NTAzMGQyNzBkOTMgcHkzaworNjEyMDkgYzUxOGYzOTQ3M2ZkMGI5MDAzZDgzODAxNTIyMzY1YmVmYmM1MmJhYyBsZWdhY3ktdHJ1bmsKKzYxMjEwIGExNTRmMTk4MjU5MjhjYmFmMWYyZmM0MzI3ODliZGUzZjJlN2E0MGUgbGVnYWN5LXRydW5rCis2MTIxMSAwNzIzOTJlZDRlYTY5MTM5MTc3MWY0MDk1ZDM5Nzg2ZmQwODc1NTllIGxlZ2FjeS10cnVuaworNjEyMTIgODQwMTM4ZTI0OTgwYzg5OTc0NjNjM2Q4NjY0MzE0MDAwMGJkMGFjMSBsZWdhY3ktdHJ1bmsKKzYxMjEzIDJkNTUxZDA0NjAyMmUxYjc0ODY2YTY1NTQyMzc5YmU5MmZiZDNiYjcgbGVnYWN5LXRydW5rCis2MTIxNCA0ZDM2MWYwMTY0MWNiNjExYWIzZmE5MDNjMGVmMzQ4Y2M2ZmEzOTQ0IGxlZ2FjeS10cnVuaworNjEyMTcgOTFkNzU3MmUzNWExY2QwMTBlYTAxNGJkMzhkNDY3YTdjMDIyOGM3OSBsZWdhY3ktdHJ1bmsKKzYxMjE4IGQ3ZTRjNjNlYmNhZDA3YmU2YjJiYzE4ZTAzYzI1ZWQxYzMyNjRhMjQgbGVnYWN5LXRydW5rCis2MTIxOSA1NDg5YWY2ODY0MDhjMWVjMDcyYmEwYjg5NmJmMzMxYjEyZWQyZGUxIGxlZ2FjeS10cnVuaworNjEyMjAgM2ZjMDljY2YwMTQxODVkMmNiNGNlZjFjNWFlMzUwOTYxOTY1MGY4NyBsZWdhY3ktdHJ1bmsKKzYxMjIxIDBlMjI0YWEyMTlhMjFiN2ZhMjI1ZGExM2IxNWU3MTAxNGMwOTQwMjggbGVnYWN5LXRydW5rCis2MTIyMiBmM2ViNDU3ZTk2YTc1YzNmOTc3ZTU3MGIyNWUzMWJkODEyZGU1ZjBlIGxlZ2FjeS10cnVuaworNjEyMjQgZTQ0Yzc0NWJlYzBiYWRiNzkwMTZlYWNkMGNhNmIyZjNjZmU4MTBhZiBsZWdhY3ktdHJ1bmsKKzYxMjI1IDRlYTM2YzAxMmEyZGU1MjI3NDIxMjFkNDkzMjY1MjljOThjMGZiMTkgbGVnYWN5LXRydW5rCis2MTIyNiBkZDAxNmE2ZGRjYzVhOTAyOGYwNWJhNTE3YWRkMzc3OTQ3OTRiYTlmIGxlZ2FjeS10cnVuaworNjEyMzAgOTdiZWEzOTIzNmE5M2I2OWM0NGY5MWJkYTk0MjY3MTM2MjYyY2U1OCBsaWJmZmkzLWJyYW5jaAorNjEyMzEgMmQ0MjUzMDE1ZjU4NDBhMTRjYjRkYWFkZDc3MDc5MDhiYTU5MmMzMCBsaWJmZmkzLWJyYW5jaAorNjEyMzIgOTZhYTZkMDI3ZTJlNzY5MTgxNmU0OWIzMDRkOTc1ODI4MTQyMWNiMyBsaWJmZmkzLWJyYW5jaAorNjEyMzMgNTU0NmRjNGE0MjZhYWE2Njk5YjRjNzdiZDIxYWNkZTY3YmJjNTM3ZiBsZWdhY3ktdHJ1bmsKKzYxMjM0IGQzODdiMDFkYmMxYzlkYWFmOTA2NmIxMTY4MmU3Yzk1ZjUzMzMzYjAgbGVnYWN5LXRydW5rCis2MTIzNSA5MWNhOTU0OTkwNmFjYWJjOWFhNjU3ZTQxZjZjMjVlMDI1ZGM0N2JlIGxlZ2FjeS10cnVuaworNjEyMzYgNDk1NzAwZWUzMzQ1NmY3NjRjZWMxYzE0NTI5NTI2OGYxMzY4MmI1NCBsZWdhY3ktdHJ1bmsKKzYxMjM3IDhhNWM3NWVmYWU0YzIwYmU5YTc0MTliOGRiMTBhZTFlYzI1NjZmMGYgbGVnYWN5LXRydW5rCis2MTIzOCBkZDMxOGMzZjZjYjc5YTc0OTU5YmY2YTJmNTM1MWFjMmY0ZjE0NGRkIHB5M2sKKzYxMjM5IDAwY2IwYTM1ZmI0OWIyZmM5N2Y2Yzc0Y2JmM2M3NGNhMjUxNmRhZDUgbGVnYWN5LXRydW5rCis2MTI0MCBmZjNlOWFlYWE2OTIzNWI4OTI1OTIwNWVlYTMxNjZlN2MxZTYzMTM4IGxlZ2FjeS10cnVuaworNjEyNDEgMzBmYTY3NzcwOTZmMjEwMmVkN2Q0Y2NjODc2MmFkZGIzNjRlYTY0NSBsZWdhY3ktdHJ1bmsKKzYxMjQyIDExZTllMzY2N2IzNjVjZGVkNzdlOGMxNzZlYzI5YTkyMWNiMDgyYzcgbGVnYWN5LXRydW5rCis2MTI0MyBiZWFiOWUxMGExOGJkZTk3OGY0MjZmOTBjOGY4OWE4ZTA5MDgyYjYyIGxlZ2FjeS10cnVuaworNjEyNDQgOTk2MGZkMmY1ZWE5NDA4NWFlZTY5OWJjYWQ5ODBjNTA0NTVhZjllZiBsZWdhY3ktdHJ1bmsKKzYxMjQ1IDFhNjhlY2UxNTQ3YWI0N2Y3Mjk3Y2RmYmU4NjNhZmQ2ZGNkYWI1YTUgbGVnYWN5LXRydW5rCis2MTI0NiAyMzQ0MDFhZGQyOTk4ZmJmYTU0NTc4NDhjNWY0OTg1MmIzMjNlNGZiIGxlZ2FjeS10cnVuaworNjEyNDcgYzlkNjZiZGJjY2NkNDRhMzU5YzViYjgzODNiNGUyYWRiNWM4MWRlNSBsZWdhY3ktdHJ1bmsKKzYxMjQ4IDQzNjEwNTEyNTQ0NTkxZjc4ZTg3ZTFkMDcwZmViNzIzNzUzNmFmMzAgbGVnYWN5LXRydW5rCis2MTI0OSBmNTI0NjkxMWM5MDNmMGMzZmVlMWY1NGZhOGU5MTBiZTEzNWYwYjlmIGxlZ2FjeS10cnVuaworNjEyNTIgMGNkNGFkMWM5MTUzZWE4YTE0MTY1OGI1MTUyN2M1NDgxM2MyM2JiMSBsZWdhY3ktdHJ1bmsKKzYxMjUzIGQ0MWE0MjA2NDA1YzEzNWZmMGQ1ZDI5MWVhYjZmZTRlMTY5NDY3ZGYgbGVnYWN5LXRydW5rCis2MTI1NCAyMjE2YjEwMGIyZDJlZGVmZDIzZmVhZGFmNTZjMWVlZmI4ZWE2YjA4IGxlZ2FjeS10cnVuaworNjEyNTUgNDI4ODliMWE3ZGMyNTVkZDgwNTBjZjkzMDgwZGI4NmJkYWRmMTUxOCBsZWdhY3ktdHJ1bmsKKzYxMjU2IGMxOTdlMTg0NDliNDA0Zjk1M2E1Njk3NTVjODBhZDFkMDk2MmZhNjEgbGVnYWN5LXRydW5rCis2MTI1NyBlZWZjNjA0YWQ5MzVhYjg0MzA2MTE2ZDk5NmU1ODg2MzE0NWQ0NzY3IGxlZ2FjeS10cnVuaworNjEyNjAgZDBiZTJjMzZjYmY4ZDc5OTIyMGVmOTAwZTU4ZGY5NzVlYmUxMTQyMSBsZWdhY3ktdHJ1bmsKKzYxMjYxIDczOTVlZDBmMGY3Zjc3NDM5NjliYjk3ZmE2Mjc0ODU0OTk4ZWFiNjcgbGVnYWN5LXRydW5rCis2MTI2MiA5YjA0OTQxNjczZjE3M2YyMTRjNzQ5MjMyMjU3Njk4MTM4N2Q5YzJhIGxlZ2FjeS10cnVuaworNjEyNjMgZWY4OTMzOTA0ODdiYWZkMDFlODhhZmM4ZTNkZWE0OGNkNGVjNzlmMCBsZWdhY3ktdHJ1bmsKKzYxMjY0IDYxZDIyNzAxYTVlNWViNjI2YWQ3ZGQwOWZmMDYxMGE0NWNmZmRiZTYgbGVnYWN5LXRydW5rCis2MTI2NSBiMjYyYmVjZTEzMjNjYzNlOTExY2QwMWMxOWZkZTQxZjIwYTA0ODRlIHJlbGVhc2UyNS1tYWludAorNjEyNjYgYjhlZjcxYjAxNDQ2MTA3NjhhNTg0Y2QxNDg2MTQzMGQ5YmU5NTMzMCByZWxlYXNlMjUtbWFpbnQKKzYxMjY3IDRjNDc5OTNhZmIxYjEyMzBkY2FmOWQzMDc1M2I2ZWIxNmI4ZWUzMTcgcHkzaworNjEyNjggMGI4YjNlNjYzZTNhMTVjNzY0N2VjMTgzN2IxYTc2ZjUxNGJiYmQxZCByZWxlYXNlMjUtbWFpbnQKKzYxMjY5IDA2NWM0YTc2YWMwMWYxNWNhNGYzYmIzNDMwMThjMDNiMjQwYjJiYWEgbGVnYWN5LXRydW5rCis2MTI3MCAxNTc0NmJmNGEwYTYzYzQ5OTA5MzgzMjc2YTlhYTFjZjRlOTQ2MzcxIGxlZ2FjeS10cnVuaworNjEyNzEgYTRjMjY1NTY1Y2I2YjY3NzQ2YzZjNGRkMjI1MzE2ZTc3NDliZDY0MSBsZWdhY3ktdHJ1bmsKKzYxMjcyIDM5ODAzMTNkOWI4YjI3YzBlMjIzNzBjZjIxYzhiNDYwMzcxNTIyZGQgbGVnYWN5LXRydW5rCis2MTI3MyAzNmZlZjk5YWYxOGQxMjE0M2QzNjhjZGE4ZTE4MTAxMTRhNjk4MDE2IGxlZ2FjeS10cnVuaworNjEyNzQgZTliZTZhZWI0ZGYwNjIxZmIyOTIxOGU1MzQ0ZWU2OGIxY2Y3N2JkNSBsZWdhY3ktdHJ1bmsKKzYxMjc1IDg5OGRjMGY4YWI2MzVhZjdlODZmYTIyOWZjYzE4MTMzMWU3YmNkYTAgbGVnYWN5LXRydW5rCis2MTI3NiAxN2IyZWEwYWZhNjExODg4MjgxYTBmMjQ5YjBjNmViMTAxMzVjOGU2IHJlbGVhc2UyNS1tYWludAorNjEyNzggYWYyNjdlNTRiZjFkZGU4ZDhiNjdkZjAyOWYwNzk5ZWFkMDdlODQ4MyBsZWdhY3ktdHJ1bmsKKzYxMjc5IGJiYWI4ZjY0ZjhkNjJjNTY5YzZkM2M4MDFmMThjOTMzYmQ0MDg3MmUgbGVnYWN5LXRydW5rCis2MTI4MCA5ZWNiMDNlZjFjNjI0MTk3YjUyMzk2Yzc2YzVmMTE2ZGM1ODUwMzM1IHB5M2sKKzYxMjgxIDQ4NWIyMTk1NDc0NjA5N2IyNTA1MjIyNGNlNDllMTYxOGVlMGQxNTUgcHkzaworNjEyODUgNDRhYTU5Zjg1OTFkYWE2ZTc3NGRhOGM2YWZiYzUyODZkMmNlNWI5NiBsZWdhY3ktdHJ1bmsKKzYxMjg2IDBiZTliMWNmMWIxNjIxMTY3YmRhYTJmNzg1NzBkOGNiYWU0NWJkODIgbGVnYWN5LXRydW5rCis2MTI4NyA3MTIyZmE2NTY5N2I4YTczZTYxMGRiNDg2ODEzYTAzZTk2YTMyYWQ4IHJlbGVhc2UyNS1tYWludAorNjEyODggNWY0OWI1NjlkZWRmMTE0YzVmZWNiYWI1Y2Q2MDJmOWUyYTg1OWE4YiBsZWdhY3ktdHJ1bmsKKzYxMjg5IGE4NzU0YzBkYjUzZjUwMzEzZjVkZmM0MTc4ZWU2ZTI3ZjQ5NDdmZGYgbGVnYWN5LXRydW5rCis2MTI5MCAzNDM1OTdjN2Q2ODJiMzU1MjU4MDM1MmRlZGRkMGNkYjM2OTc4YTA0IGxlZ2FjeS10cnVuaworNjEyOTMgOWJiZTU1Zjk4NjdlZTk0ODU0ZTM0NWY5YWY3ODdmY2RlOTE0NDVmNyByZWxlYXNlMjUtbWFpbnQKKzYxMjk4IDM5MWRlMTQzMjI2ZmQ3YjM3Nzk2YmM5NzhmZjNmNzhmMDViMDg5MTkgbGVnYWN5LXRydW5rCis2MTI5OSBmODZmYTVmZWFmMzE0ZGZhOTdiMDYwYjAxYmEyMzY3NDIzMzc4NDc3IHJlbGVhc2UyNS1tYWludAorNjEzMDMgOWNmNzA3MjljMjNmMjA4OGJiNTAzMGIwOTA5MzliMzViZDIyZGVhZSBsZWdhY3ktdHJ1bmsKKzYxMzA0IDM3YWE0MTZiNGM0N2I0ZWY1ZjlmMDkzYWM4Njg3NTc0MjMwYTE0YmEgbGVnYWN5LXRydW5rCis2MTMwNSBlNWFhZGMwNWY2ZjUxZWNkNWJkMDZmNzYyYWZiMTZlMDEzNzIxZjkwIGxlZ2FjeS10cnVuaworNjEzMDYgNDUwNTBkMzc2ZDU3ZmI4NmY4MDQyNDVmYmZjMDY4ZWY2ZmY5MTQ5YyBweTNrCis2MTMwNyBjMjdhYWJhZTA2ZmRjNzViMjI4ZjY4ZDNkOTNmMTA0ZmQzYTIzMmQwIHB5M2sKKzYxMzA4IDlhNzI3YzlmOWJhYTI1Nzg2NGQ1M2E2N2UyZDNhMDAyMWE5OTdiY2EgcHkzaworNjEzMDkgYWY0NGNlZjFjZGY1YTU1YzkzZmQ5ZjE3OTJkYjBhOWJhODkyZTViNyBweTNrCis2MTMxMCBjODMwNjE2YmQyZmM5MzEwNTNjNDE3OTQzZjE0ZTk0ZjRmMjUzNmQ5IHB5M2sKKzYxMzExIDk0MDUzYjI3YTM1MjU5MGFjMjBkNjZiZjVkOGU2ZWVkNDExMTU4YzEgcHkzaworNjEzMTIgNTA2NTQ3ODIyYjhkMDEwMjJkYTY1NTAwZTRiNjFjYTdmZTk2ZDUyYiBsZWdhY3ktdHJ1bmsKKzYxMzEzIDE1ODQyMDk0YjA4OWEyYzc4YjUwMjVjNmM3ZWQ4ZDhjZDlhYWI2MmUgbGVnYWN5LXRydW5rCis2MTMxNCA4YmFiNDE4Y2M4NzkzYjhjMDA4NmEwMDI3YWE4MThlNWE4MjcyNDhhIGxlZ2FjeS10cnVuaworNjEzMTcgNWI0MjM5YzFmOGY4MmY2MDlmODg4MGE0MzRjMTM5YzFkNTk2MmUyMyBsZWdhY3ktdHJ1bmsKKzYxMzI5IDdmMjNiODA0ZTk0YzA0YWM0ZmI3NWUxNjU3MjljNGRmMzY3MzZlZmIgbGVnYWN5LXRydW5rCis2MTMzMCA2NjA3MGZkYmYwYjkzMDc3MzBjNzVkMTliN2MxMmI1OTkxMWU1ODlhIGxlZ2FjeS10cnVuaworNjEzMzIgNmYxOTU3NTVmMTQ0ZTgwMmRjMWQ4ZjcyNTE2ZGQwYWExZWI4OTcyZiBsZWdhY3ktdHJ1bmsKKzYxMzM5IDQ1NmNlZWM2NTM1N2MxNjY1N2IwYWRiYmJjZmUyNzIwYWYwN2FiMDUgcHkzaworNjEzNDAgYWVhYTMwMzE0N2VlYjIzZjRjMGI0ODAzMTZlYzM2NGU0MTI2ODlhNiBweTNrCis2MTM0NCBiOWQ2Zjg3MGJmYjE2OGM1ZmMzNmNkZWNjNzBhMTk1ODMwNzJjNTU5IGxlZ2FjeS10cnVuaworNjEzNDUgZDhkZjRhYTA2MjYxZGU1ZTRjMGFhMDUxZTQ0ODY5N2Q0NzkxZTQzNyByZWxlYXNlMjQtbWFpbnQKKzYxMzQ2IDIwMjI5NDNhZDQ1MGM0MWQ2NDcwOGZiNWNhY2EyZDI2NzJiNWI4ZjggcmVsZWFzZTIzLW1haW50Cis2MTM0NyA1ZDc2NGQ1MThmNjVlYmI5MTA4NTY5NzI3YTdjODhiMzIwYzI3ZWI4IHJlbGVhc2UyMy1tYWludAorNjEzNDggZTg1NzJkOWFjODVlZjNkM2U0YzAwYzRlZDhmMWNhN2E2YWVkOTlkZSByZWxlYXNlMjQtbWFpbnQKKzYxMzQ5IGY3YzM2NThjNzFjM2Q2YzMyMDM5ODI1MDczMjc1ZjVkNzgzYWE0MDMgcmVsZWFzZTI1LW1haW50Cis2MTM1MCAxNjJjNjk1MmVhMzRkNGU3MWY1Zjk5OTdmZDgwYTFiNjg4MzlhMmZkIGxlZ2FjeS10cnVuaworNjEzNTEgY2U1ZjZmZDU3OTEzMmY0Yjk1MGIwOTU1YWRjZjRlYjgxODQwN2JlOSBsZWdhY3ktdHJ1bmsKKzYxMzUyIDdmNGU2MDIxYmM5ZjYwOTRmZTJhMGQ2YTc1MGIwYTZlYTdjMGVlMDQgcHkzaworNjEzNTYgZTA5YmMxYzUyOTViYzE5ODQ1YTBmMzU0ZGEyZTgzMDY2ZmViOGVlNiBweTNrCis2MTM1NyA3YWRhYWI2NGViNzJlNDdlNTdmYmI0Y2NiYWY4NzAzZDBjMmY1ODEyIHB5M2sKKzYxMzU4IDc3NTJhNTdmOWM0OTBkMzFmMGYzYWY4YzYxMjE1NTM2OGUzOWRiZDEgcHkzaworNjEzNTkgZTQ0NjkxMGM5ZDQzN2Y0ZDRhMDMwYWIwMTQ0YWRiZDExYWZhMjRiYSBweTNrCis2MTM2MCA3NDBiNTgwOGM1N2FlN2IzZDRjNzkzYmFkZTUxMWNmYWY5ZjUyZmVkIHB5M2sKKzYxMzYxIDQyYTZhYWQzOWU1Y2U5YmQ0NWZiZGEzZjdmNjk5MThiN2Q2ODM1MzYgcHkzaworNjEzNjIgN2I5NWM1N2I1ODIxYmZhYzI3ZWU2YjE1ZTQ2MTZhZTM5MGMxZTNjYiBweTNrCis2MTM2MyA5ODYzMzhlYjBjMGRlNTI4NjI1ZDQ1YjlmYTUxYzNlZmM4YjkwN2EzIGxlZ2FjeS10cnVuaworNjEzNjQgNzQzMWYzZmFhMzU2OGE0MmUxZWQ0NDNmYTZkMzViNzlhOWFhOTQxYiBsZWdhY3ktdHJ1bmsKKzYxMzY1IDkzOTVhMjJhOTY2YTk0Y2EwODhiNWM0YTdkNTkxMjQ0ZjRiMjZkNTAgbGVnYWN5LXRydW5rCis2MTM2NiAwMTFkNzlhZjA1ZWE5MTNmY2JmNzMzZDVlMWVmMjRkNmJmMmFmOWVjIGxlZ2FjeS10cnVuaworNjEzNjcgZDUwMjRlZTllODhhMzFiMWI2Yzc0NDQ4NDIxZTEzYWQ2ODAyMzQzYiBsZWdhY3ktdHJ1bmsKKzYxMzY4IGQ3MmQ1MjdkZTcxMTk2NTY1YWY3MzVmMmE4NDdmNDg4OTc1NDdhN2QgbGVnYWN5LXRydW5rCis2MTM2OSBjYmI5ZTJmNGIyMDI4M2FjYTMzNTRhODljZGY4NDZmYjI3MTY1MWFhIGxlZ2FjeS10cnVuaworNjEzNzAgZGI1YjMyMWVkY2JiMmMxZjkzZWEwZWMxNDFmOGI1Njc2M2ZjNmRkNyBsZWdhY3ktdHJ1bmsKKzYxMzcxIDZhMzNkNGY2ZjE2Zjc4MjdlNmUyZjFlZjRlNzA3MzNhYWI2MTRkYTkgbGVnYWN5LXRydW5rCis2MTM3MiA1NDNlOGRkZTM2MWY4YTYxYzIxNmU3NzRhYzRmZmU3NDZjNzUxY2JjIGxlZ2FjeS10cnVuaworNjEzNzMgNDlkYzlhZjkwYjNkMWYyOWRlZGI1YmFlYzM4NzRkMzYyNjk2YmE0YyBsZWdhY3ktdHJ1bmsKKzYxMzc0IDY2MzQxYmVkODJiMzA1M2ZmZTY2Y2U4MWE0ZjE5MjU4ZTA0YzBmOWEgbGVnYWN5LXRydW5rCis2MTM3NSBkOTdiYmFkOWEzNWVlZWUyMDM3MWMyNDFjNjRjZmQ4ZGRmYjEwOGFhIGxlZ2FjeS10cnVuaworNjEzNzYgYmM4MTMyNjVlMmM2NTMzYzU1MGNjZWZiZmU3MzI2ZjFlZjhlYTM1NSBsZWdhY3ktdHJ1bmsKKzYxMzc3IGUyZTU0MmZkYWNkMDlkZWI4YWRhMzVmNjNmNzdiZmZhNzQ4ZjgwN2IgcHkzaworNjEzNzggZjZiM2NmMmYzMzMxMWZjZTcxNTFiNjFmN2M2ZDhkMWRiNzEzZTkyNCBsZWdhY3ktdHJ1bmsKKzYxMzc5IDdjNzhlYTcwNzIxOWVlNGQwMGU2NDYzNWNjZGExYWQyNzE5ZmI0ZDggbGVnYWN5LXRydW5rCis2MTM4MCBlN2FhOWI1ZjIxYjUwZDI4ZDg1ZDA2NzRhYmM4NTczNGM4YjBmNWVmIHRydW5rLW1hdGgKKzYxMzgxIDUzNzM3NTFhZDRiNDEwYjgyNzdmNTE0Y2YyNGMyZjUzN2ZjZmUyYzMgdHJ1bmstbWF0aAorNjEzODIgMGUwYzE0OThiZTFhODBmODZiOTk0NzRiNWNlMmFiZmQzM2RlYjNiZCBsZWdhY3ktdHJ1bmsKKzYxMzgzIDM1NGUzNzdjOTU5MDI0NGFiZTA3YTk3OTJhOGFhMDJjN2M2YzFhNjMgbGVnYWN5LXRydW5rCis2MTM4NiAxNjU4MGRjMTQyOTRlOTIyMzk4NGVhOTEyNDBjODljMTUyNThmOGU4IHB5M2sKKzYxMzg3IDAwNTNmYzlmNWExZjZlNzA1ODY0NDhjOGU5MmU1NGRmOWQwYzU3NWYgbGVnYWN5LXRydW5rCis2MTM4OCA5Yzg5MDllZTU3MWY0YzUwNWY1MTFkNWQxYTM3YjZmZGE1NTNmNWI5IGxlZ2FjeS10cnVuaworNjEzOTIgYjk0MGIxYWQ5YTNhYTIxOWEyMWE5NDhiMTIxN2YxZGQwZTA2MGZhZSBsZWdhY3ktdHJ1bmsKKzYxMzk1IGMwN2M1YzdhOTE0ZWUzMWY5ZDcwYzQ0YmEwZWZmNjQwMTQyYzBhMzAgbGVnYWN5LXRydW5rCis2MTM5NiA4MjNlMTFlYmY2NjgyOWJhZjU1MGI5MTYwMTNiNTM0ZmQ3NDVmNzA5IGxlZ2FjeS10cnVuaworNjEzOTcgYTVjOTM5MjI5ZmYyN2ZiNDY0NmQxZWVjYjFhMWVkZGFiYjhmZWQ4YiBweTNrCis2MTQwMiAyMTJlOWM4YWQwODdlYjE2Yzg5NGUwMGVjOTg1MjAxODQ1NTlmMmNiIGxlZ2FjeS10cnVuaworNjE0MDMgNTllYjVhZjYxY2Q3MzY4NTE3Mzk4ODdhNzA1MmI2NmVlMmM5OWJlYSBsZWdhY3ktdHJ1bmsKKzYxNDA0IDUzMWU2MjQxNmVlYjY3ZDVlOTI5N2UwNzg4MTNjMjI4ZmQ1OThkZTAgbGVnYWN5LXRydW5rCis2MTQwNSAwZDEwZjE5M2I5YmUyNWE2ZmVjODk5YWM0M2ZmNjIwZjExMWRiNTNmIGxlZ2FjeS10cnVuaworNjE0MDYgNGUzNThlZDdmNTE1NjE3ZmZjN2JhNTJiMDFlNTNlYzQ5ODMxOGIxMCBsZWdhY3ktdHJ1bmsKKzYxNDA3IGZlYTdiYTg5MTBhOTYwYmY3MGRkOTJlNGU3N2Q3NzAxNjE1Y2RiOTEgbGVnYWN5LXRydW5rCis2MTQwOCA4MzJjODIwZTlkMTQ0Y2I3NmM4Nzc4YWQ2ZmNmZmUyMzJiMWY1YzQ2IHB5M2sKKzYxNDA5IDA1OGZiZmI5ODVhZThhMGI2NWQ3MDQxNWE2MTk5MTVlOGM1ZGFkNDAgcHkzaworNjE0MTAgNzAyNjU3ZWZhYjliZTkxMzkzZDljZWI0YzkyNzA2MzYwZDk1OTRjNiBweTNrCis2MTQxMSBhZTIxYThkNzAzMDI2ZTE4MjIyMzBjNDZlZmI2ZDFhZjZmMTU2NTRmIHB5M2sKKzYxNDEyIGQwYzY3N2RkZDZiODljMDE0ZDY1ZjkxNzQ4NzIwNTdmOGIyNjk2YmQgcHkzaworNjE0MTMgMmUwZTE0MDI5NTlkM2RlNzA3YzUxZjllZTEyNjFiMDQyMTQ3ZmFhNCBsZWdhY3ktdHJ1bmsKKzYxNDE0IDM5ZmIyYzc4ODQxZWEyNTgyNGJiMWFiMDY5NmEyYTk3ZGI1YjlhMDEgbGVnYWN5LXRydW5rCis2MTQyNiAzNzk3MzEyNWIyYzBjYzBhZjk1NzhmYmQzYjU2M2I4Mjc1NDI1YTZkIHB5M2sKKzYxNDI3IGQ3MGZhYjk3ZWJiNWVhOTczMTA3NWUzOTdiOTE4MzFiMzE0NTBlNGYgcHkzaworNjE0MzAgMWYwZTdlMmRiZTE1Y2JhZTllNTY0NWM2MTM0ZmNlODI2MmJmM2MyZCByZWxlYXNlMjUtbWFpbnQKKzYxNDMxIDc5ZGVhNjUzMzJmODZmMzdmOWM2NTNkZTI0MGMxOGVlZjk2YWZlZDQgbGVnYWN5LXRydW5rCis2MTQzMyAyZmYzZTQzMjE3YjdlNTQ0YTM5ZTU0NTgzZTUwZWZkOTY0NzVhMTliIGxlZ2FjeS10cnVuaworNjE0MzQgNGQyOTEyN2YzZmEwZDdiY2E3MjljZGM1MDFkNjBkMjIwOTI2NzE4YyBsZWdhY3ktdHJ1bmsKKzYxNDM1IDE2NzMyZGIwMDgyMmVhOWRhZTE3ZTFhNGEzM2NlYjkzNGU3ZjNhMWQgbGVnYWN5LXRydW5rCis2MTQzNiBjNDQwMmVjNjBjM2E0YTE1MmVlNjI1ZTdkMTdjMjVmNmQzNTVjNTljIGxlZ2FjeS10cnVuaworNjE0MzggNGQzOWQ0YTZhOWRiYTVhOGQ4OWZmMWNjNWViNWRmM2Y0M2Y4N2E2OCBsZWdhY3ktdHJ1bmsKKzYxNDM5IDIyYTRhMTExZDU5OGFlMTNiYTcwZmI3MjEzMmIwMDJjNTIzZDhhZDcgbGVnYWN5LXRydW5rCis2MTQ0MCA0ODI0N2E0YjM4ZWRmMDk3M2QxN2E1NjQ1NDRlZWEwYzdjOTIyMmI0IHB5M2sKKzYxNDQyIDYyZWYwZWEwMzRmNGU5NjkwNzllMTY0YzgwNThmMjUxNmQwOTc3ZWEgbGVnYWN5LXRydW5rCis2MTQ0MyBiYjU0M2E4MDlmZTI0YzhjNTI1MWViMjU4YmYyZTlkNjBmODUwZjE1IHB5M2sKKzYxNDQ0IGYxMWMwMDI0NmZiNTI1ZDE3YzM0ZjI2ZTZhNGZiNmNiNjVjNjQzMmUgbGVnYWN5LXRydW5rCis2MTQ0NSBhY2JmOWNmNTk0ZjhiZDg1MjY0ZDZhNDRmNWVmYzQ2ODY2NGFhMGQ2IHB5M2sKKzYxNDQ2IDM2ZjNjNmJmMmM5N2JmYWZlZDY5ODFhZjIzMjljYjQzMWExNTc0YTMgcHkzaworNjE0NDcgMGRiN2ZhMTRjNzk0OGJmMTQzNjhmNjVjMGRkZmY2OGIzZDNlMzA2MSBweTNrCis2MTQ0OCBjYjM2MGZjODg5MTIyNzczZTNiYjIzZTQ3Njg4MzBlMjI2ZmRmMGY3IHB5M2sKKzYxNDQ5IDcxMDQ3OGExOTc3YWNmY2M0NWMzOWU4NjYzM2RmYmI3MjA3ZTYxYTkgbGVnYWN5LXRydW5rCis2MTQ1MCA4MDE4ZjUwNjU2NjFiYWEzMmEwNGNkMmI4NjI3YzM5ZDU4MWYwN2M2IGxlZ2FjeS10cnVuaworNjE0NTMgN2U4Y2ViMzk0NDdlY2JiYTY2YzBlZWQ3NjE4OGMxOWYxMThkZjU5YSBsZWdhY3ktdHJ1bmsKKzYxNDU0IGI1Y2I3YTY3OGYzODkxZmM0OTY3ZWFhNzUzMmE4ODcwOThjYzNhMzcgbGVnYWN5LXRydW5rCis2MTQ1NSBkZTZiMjgzNGI4YWY5OTBkMTFhMGQ3MzNjNTc3MjQ4OTg1NzY1ZjY2IHB5M2sKKzYxNDU3IDQzMTgyNWVhYzRhZTM3MzYzZTRlOWZkMDRhNjcwZDI4OTUzZmI1YjQgcHkzaworNjE0NTggZDMzY2FkYjU5NWY2NWRkYWY4YjAzYWY5ZTBlNmI3YzQ5MzQzZjZhOCBsZWdhY3ktdHJ1bmsKKzYxNDU5IDZhN2ZhODQyMTkwMmE5NTRkZWM3NzlmZTlhN2Y0YTQ2MThiMWE5NDIgcHkzaworNjE0NjAgMmMyNjBiZTEyNDJkOWFmZDI3MzE4NDdkNDcyZTM3ZjVlYjQ4ODY2NiBweTNrCis2MTQ2MSAzNGY0ZDQ3ZWM0M2E0ZjM2YzFiN2QwNzhjNDE4NmVkYWI0ODA0M2JmIHB5M2sKKzYxNDYyIDlkOWEzOGI4ZWIxYjExYTAyODI1ZWIwNDU5MGM5ZjI1ZTFhOGQ5ZjkgcHkzaworNjE0NjMgYTIwMGMzODdlOGIyNjUxMzVkZTE2YjZkOWU5N2Y2OGNlNDViOGEzMCBweTNrCis2MTQ2NCAxNmI0NDc2NDk0NGViOGEzZWE4MmRjNjNkOTA4ZTM2OTlhOTY2ZjRhIHB5M2sKKzYxNDY1IDZjMzkzZGNkNDVjNDhmMDcwNzMyYjFhOGQ4ZThiZmY4YmFhNDllYTkgbGVnYWN5LXRydW5rCis2MTQ2NyAzMjI2OTNiZjEwY2FjNmNkM2MwODdlMDAxZTZhOTRjMTAyMmU0MTFkIHB5M2sKKzYxNDY4IDk3M2EyM2NmNmYwYjdhMDk1OWVkNmFiNjJjZTc5YjBkZTI3YjEwZTggbGVnYWN5LXRydW5rCis2MTQ3MSA3ZjEzZDY5MDRlMTRhNDk0YWVlYzg4OTlkYWJkNzhjMjRlYzlkNGNkIGxlZ2FjeS10cnVuaworNjE0NzIgOGEzZmE4NmMzMGE2ZTJjNzJkNWM3YmJmYzIzOGE5NWViZjNmNjIyZCBsZWdhY3ktdHJ1bmsKKzYxNDczIDM3NDVmZGI5OTMyZjA3YzQ4NGU5ZjMxNTU3YmIyOGI2YWZjNTI5YjEgbGVnYWN5LXRydW5rCis2MTQ3NCA4ZGVmYTFkNWYwNjZkOTMwMThkOGI3YzdkOWY1N2RlMGQ0YzM3NmU1IGxlZ2FjeS10cnVuaworNjE0NzUgZmYwYWI3YjI4ZjQ5MTdjZDg2Mzc0MDc0ZDJlZjQ5YTk4MTViMTJlYyBsZWdhY3ktdHJ1bmsKKzYxNDc2IGUzMWQzMTc4MWE3NTNlMGRjYTQxZDI0NjY5NzI5ZTM4ZWY5MTNjYzQgcHkzaworNjE0NzggNzlmZGM4OGZmOWVjZGRlNWY5NzI0YWIwZTlhOGM2MjQ3ZmE3YjNhYSBsZWdhY3ktdHJ1bmsKKzYxNDgwIDRkYWJkOTA3MTg3ZWE3MzkxYTU0YjUzMWRhNzJmNDM0NmRkMmUxOTUgbGVnYWN5LXRydW5rCis2MTQ4MSA5NjZmZjE2OGI1NjY5NmMxMDVjMzA0NGU2NjJkMTdhYWYzNzg5MGNjIHJlbGVhc2UyNS1tYWludAorNjE0ODIgN2M0ODU0ZmZjZGNkODhjYzU3MmJlZGQ4MTk0ZmY1ZDBmYzYwNzAwZSBweTNrCis2MTQ4MyBjMGYxNjVlMWRiYzA1ZGNlNTMzNzgzMGZhNDMzZTlkYTBiNDU4M2YyIGxlZ2FjeS10cnVuaworNjE0ODQgYTdiYjAwNGU3ZjA2YTkzY2Q4ODU3M2MyYzc4YmY0N2Y2MDc2NmM5OSBsZWdhY3ktdHJ1bmsKKzYxNDg1IDNkZWI3MGU0MTgyYTA3YTJhNzkyOTgwNWIyMTYxMTZhZmNjM2ZlOWMgcmVsZWFzZTI1LW1haW50Cis2MTQ4NiAyN2U3ZGMyZTYyOTA1ZTkyMjhmOWUwYWIxYjY5ZTRhYjI1MmY3YjhiIGxlZ2FjeS10cnVuaworNjE0ODcgYWEzM2ZiOTBlYWE1MmE5YjliYTc5ZWMwYWUyNzZlMTkwYTJmOWU0NyBweTNrCis2MTQ4OCAwNDQ4N2FkM2QxYmVmNDE1MzUwZmQzY2NhOGNiNGRmNmQ3NDk1NjlmIGxlZ2FjeS10cnVuaworNjE0ODkgM2JiMGYxYTE5MzlkOTM4NzhiNGQ2NDliZWFlOGU3MWVkNTkxOWQxZCBsZWdhY3ktdHJ1bmsKKzYxNDkwIGIzNTk0ODBjYTg4NjQ2MGVjZmVmODUxNjA4OTE5YWY1YTBhMzMyYjAgcHkzaworNjE0OTEgNWMwYjVjYWJlZWM5NjZkN2ZlYzgzNjQyOTllMWFiODI3Mjk2ZDEzMSBsZWdhY3ktdHJ1bmsKKzYxNDkyIGVkY2IzNTQyMTc2YTUzZDE0ODJlZmM1ZDJkODQ5YjU1OWVkOTNiMTcgbGVnYWN5LXRydW5rCis2MTQ5MyAxMzcyOWM3MGM4ZDhjMjk0OTk2ZjA3OTg5OTFhNGFkZDlkZTY2YjAyIHB5M2sKKzYxNDk0IDA0MDUwMzczZDc5OWRjMGQ1MzkzMGM2OTE1ODVmYzI4MmUwNTc0OGMgcHkzaworNjE0OTUgMjU0NjMxM2E4YjI3YWQ0ZmFjOGFjOTJmMmYyYjM4YzljODAxYmEwNSBsZWdhY3ktdHJ1bmsKKzYxNDk2IGM1MjQxMDY5ZmZmZGFhOWU3ZjEzNWZjZmE0YmMxYWY2ODAyMjZkZDAgbGVnYWN5LXRydW5rCis2MTQ5OCA1MjY4MmJkNzM4YTc1Y2Y0Y2I3MTJlNmIxOGI0M2NmMzIyOWJhY2FmIGxlZ2FjeS10cnVuaworNjE1MDMgZTIyN2VkMmNhOWQxNWFiYmI2MTMzMTQxYjM5MWEwMjU0YmEzOWYyYSBsZWdhY3ktdHJ1bmsKKzYxNTA0IGQ0YmJmOWI0NzEwZjQ3ZDhmN2M2YzBmZDA2OTNiMDMyNGI5NDJmNDAgbGVnYWN5LXRydW5rCis2MTUwNyA2ZmM2YTgwNjc4NGY5NWYwNjBmZWVlZjQ0YmY1MzViNmIwNDk2MjZjIGxlZ2FjeS10cnVuaworNjE1MDggODY3MzY0MDFkMzk0NDQ3YWNhZmU5YzQ1NjY0NGQ0MDJjNjM3ZThlZSBweTNrCis2MTUwOSA5NzM2MWQ5MTdkMjJkNDAxYTM2Y2U4NmRmZjZhZDA5YmYyZWRhMjM0IGxlZ2FjeS10cnVuaworNjE1MTAgNDYzNDI0MzE3OTU1MGFmNTU4MmRhNDBjMzdhM2Q4M2VkZmE3MjAxNSBsZWdhY3ktdHJ1bmsKKzYxNTEwIDExN2JiZDQ0YWRhZTY0NmFlYjY1NGNjZWRiYzljM2FlNjI2NjVjYzIgcmVsZWFzZTI1LW1haW50Cis2MTUxNSA4ZjAwYTA5NDhmMDBlMmU1N2U3OTIwNjVhYjE3MzZhZGI1YWIzNTQxIGxlZ2FjeS10cnVuaworNjE1MTYgNmMxN2RhYzcwNTcxN2NmY2Q0MjQwYTM4NzEzYTdmOGY0N2VmNTZlZSBsZWdhY3ktdHJ1bmsKKzYxNTE3IDk2MzhkMmVhMmY1N2JhYTM2NDc1YTg1ODIzZDdkNzMwMDYzZjVhZTkgbGVnYWN5LXRydW5rCis2MTUxOCAzYjM5YjdiYjJjMDdjMjY4ZjlhNzE4ODQ4YjFlN2U2MzU4NThhMmJlIGxlZ2FjeS10cnVuaworNjE1MTkgZTE0ODI4NWJkNTExODM4OTBkMTU5NTZmYTMwYTkwMmMwOWMxOWZjMyBweTNrCis2MTUyMCA5NjYwMWY4ZjMzOTE0NDVkOTJiMmE1NzcyYjI2MDE2NTU5MTk1MGFmIGxlZ2FjeS10cnVuaworNjE1MjEgMzBjNGUxY2E4NDIxMjM2Njk4OWRmODMzYWUyMTc3MDI1ZjE3NDc3YSBweTNrCis2MTUyMiA5YjhjNGI1MTA3ZjBmNTVjYjczYzIwNzVmNmEzYzEyZmExMmNmMjJlIHB5M2sKKzYxNTIzIDIxMTM5ZWE1OWI2YmEyNTY1ZmI2Yjk0NzY1ODgwM2NiODI1ZDFlMDUgbGVnYWN5LXRydW5rCis2MTUyNCA3OGNhOGMyNTYxZGI4ZTc5NjY4ZDE1NzVkZjhmMWU3ZjliMDgzMTVkIGxlZ2FjeS10cnVuaworNjE1MjUgNmYwZWRhM2U5MmIzNjFiMjE4NzdlNjY0MDViNTVmNjhiMGQ3ZDY2NiBsZWdhY3ktdHJ1bmsKKzYxNTI2IDU4MWMzZTViMzQ5YjEyMGQyOTY1MGFkZDY2ZDE0OGRkMGQ4ZWFhOTkgbGVnYWN5LXRydW5rCis2MTUyNyA5MjMzODBhY2QxY2RkODA1NWM5OGJjNjc3MzVkMGQ0Yjk4Njg4ZWU0IGxlZ2FjeS10cnVuaworNjE1MjggYzQyNDA5OWI0Y2U0YjRkZTRiYWFhODNmNjAwZjEyYzA0ZGNmYWQ4YyBsZWdhY3ktdHJ1bmsKKzYxNTI5IDUwNzcxYTNmYWQyY2FhYTg4Zjk0MGVhMzllZmIwMDgyNGM2MGI4YTIgbGVnYWN5LXRydW5rCis2MTUzMCBmMzAyYmVmOGEwMDRhYWVmMTI3MTMzYjE0MjRjNWQ1NTgyMDVmZDMxIHB5M2sKKzYxNTMxIDFjZDkzMGI4MzVhNjM5MjhkMTcxODFiZmU3MzE4ZjZiNmJjMTQ4MTQgcHkzaworNjE1MzIgZWE5MTkxNGJjYjk3NzRmNTg1NDliZGE5MDM1YjVmOTc0MmNmOGI2ZSBsZWdhY3ktdHJ1bmsKKzYxNTMzIGE2MjhlZjgyZWI3ZTBjOWUzOTVjNWM4YjA0NjlmYzdlZTc3ZDkwODEgcHkzaworNjE1MzUgZTBlOGJlZjBkNWVjY2IyNzI0ZTE0NzM5OTY3ZjNlZWUwN2I4ZWI2YSBweTNrCis2MTUzOCBjYzc1OGU4ZGRjOWQ3OTQwNTJhYTBhZDA4NjU3OWEyMWM0Nzc5YWJjIGxlZ2FjeS10cnVuaworNjE1MzkgOTRhNjA4MmE3NzBmYTMwZmNmODVkMGJkMjFiZDcyNDk5NWYxMzg2YSBsZWdhY3ktdHJ1bmsKKzYxNTQwIDNhNzJjYmNjMWJiODA2YzJiNjljNmM1YWYyNTc1ZmQ0MTY4OWMyYjcgbGVnYWN5LXRydW5rCis2MTU0MiBlYjZkMDA3NDUzYmMyYzI3OWQwOTYxNjEzZTIwNzhkZmVhMzUwMjBjIHJlbGVhc2UyNS1tYWludAorNjE1NDQgZGM0ZDY4YWU5ZDNkYmYwNDE1OTc2ODdkYmZkMTZiMDQ0MzNkNTk3MiByZWxlYXNlMjUtbWFpbnQKKzYxNTUzIDBkNzY1OWMyYjk5ODUyNzRiNjYzMWM2YTFiMDcyNjViZjZmNTY3MzAgcHkzaworNjE1NTYgNTE1NjMzNjE1NzM1YWYwNmFiODM2ZjlkMWFkNjc4NDViMTQ3MWI0YiBsZWdhY3ktdHJ1bmsKKzYxNTU3IGJjZTY5ZGI3MmUwMDQzYzU4MTJiNzkwYTc1NDM4YTVjNjZlODU2YzkgcHkzaworNjE1NTggODNjNTVhY2ZiOTU5ODlhZTg5MWI3ZmMwNzdjMDM5NDA5NjhkZTM1MyBweTNrCis2MTU1OSAxYmI2N2U1MDNkZmZjYTQzNjRkZjY0YjUzYmZjZTY1YTJiZmI3Y2ZjIGxlZ2FjeS10cnVuaworNjE1NjAgMDA1ZGI5MzRlZTI1ZWY5OTBiZGFiNWVhNTZmZGVkNWI2Y2VmZWRmYyBsZWdhY3ktdHJ1bmsKKzYxNTYxIDBlNzk3OTNmZmU4NzA1ZTFkNWU4MTE1MGRmZjFlNGViODViODY2MTkgcHkzaworNjE1NjIgMTZjNTc2ZGVlOWQzYmFjMTg0YjQxNDkzNmZkY2RkYWVhMTI2ZDE1MCBweTNrCis2MTU2MyAyZjY0MGYwZjA2OTc2YjJlYWQ5MDM5MzNmNjYwYTIwMzEwYjIxMTgwIGxlZ2FjeS10cnVuaworNjE1NjQgZWUwZGZjY2Y4Y2VlNmVjZTg4N2JkNTM5MjY3ODc4NzI4YjY1OWFjMiBsZWdhY3ktdHJ1bmsKKzYxNTY1IGIwZDAxOTY5YmJjODdkZTQ1ZGMxN2M3NzZmNWIxOGFkNjYxMjVmZjggbGVnYWN5LXRydW5rCis2MTU2NiBmM2JlMTIyMjBmZDdlMDFiYmIyYTgwNjVjYmYxYWQ2ZjRjNmU4MDYwIHB5M2sKKzYxNTY3IGZhNzBlNmFlODMxYWUxZGVhZDFiOWFkYmFmZTBmZTVmNTYyYTFlNjEgcHkzaworNjE1NjggMDVhYzNjMTliN2E4MDM2NDMyNTZhYWFjOTc2MjFhY2IwNWZhMzhkNSBweTNrCis2MTU3MCA4NjBlMjNhNjFlNTUxMGZiYzMzZTM4YWYzZDU2NTExMGRjODdiNzJhIGxlZ2FjeS10cnVuaworNjE1NzEgMjg5M2MwMTI5ZmU1YzM2MDJhNjUzOTM2OGYzYWNkYTRkNzNiMThhZSBsZWdhY3ktdHJ1bmsKKzYxNTcyIGM4YzU0N2M1MWY5YTZmMGFlNTUwM2YwOTVlMGI5MWQwYmRjNzdhNGMgcHkzaworNjE1NzMgNTFlMjQ1MTJlMzA1Mjg1NTZjMmJiNzFhNGM2ODAyNjEwODc5NzcyYiBweTNrCis2MTU3NSAyMzg1ZTE2YWNiNDI3OWQ1MWZjNzFhYzA5MWYxYmEyNjA5YWZjNmJjIGxlZ2FjeS10cnVuaworNjE1NzYgOTZiZDk3MjJlMzFkMzAwOTI1YTZhNjMxZWZjZGNlNGJhODc3NjM3MyBsZWdhY3ktdHJ1bmsKKzYxNTc3IDcyN2Y3NDNjZjYzMGIxZDE5ZTBlMjI2YTE4NzI2NTAyZGY3MzkzOGYgbGVnYWN5LXRydW5rCis2MTU3OCBmN2E2ZjMzOTQzMTA2NzQwMjIxNDg3ZmFjOGIwNmM4ZDkzNGFkMTMwIHB5M2sKKzYxNTc5IGYwOTZlZjljNDExNGY3NTdmZmUzYTcwMmY5MmU2ODVjZWI0MzllY2QgcHkzaworNjE1ODAgZDg3ZDdmYzJjMmJmMzNhZDUwMmVmZTIwOWY3YzNhYjkyODRlYzJhMCBsZWdhY3ktdHJ1bmsKKzYxNTgxIDE5ZDRiNjk3ZmJmOWFkNTNjMDA0NTYyYzM3YjdhZjhjNTk3Y2RlOWYgbGVnYWN5LXRydW5rCis2MTU4MiA3MzNjM2VlMTk4OTk2NjdkNWY2OGNkZDFjYjc5ZTkxZWIxODAyNzE3IGxlZ2FjeS10cnVuaworNjE1ODUgYzc3ZTMxMTllMjY3NWUwODYxMmI5NjhlZGVmNjc4MDg4ODY2NDRkZSBsZWdhY3ktdHJ1bmsKKzYxNTg2IDFkZmI5YWU3OGEzNzI3Y2Y4M2U0NTBkNmJmMjhiZmRkMTYxODg5Y2EgbGVnYWN5LXRydW5rCis2MTU4NyA0Y2E3MTE5ZDE3MDA1ZGY2MTUxMWE1YTA0NGUxNmQ4YThjNDY0Mzk5IGxlZ2FjeS10cnVuaworNjE1ODggYjg0ZTBlMjNjYWJkODkwNDc1YTU3ODE2MTBlODc2M2NiZjE0ZmE0MSBweTNrCis2MTU5MCA3Zjc3NzA3MTllODQ4Njk5YzkxNDE4NDYyYTJhODUzMDAxNjYwNjYwIGxlZ2FjeS10cnVuaworNjE1OTEgZDRlMWRiODc5N2Y2ZGM4MGNhZmMxM2VkOGVhZjVkM2ZhMmQyZTYzYiBsZWdhY3ktdHJ1bmsKKzYxNTkyIDgxOTExNjk1MDA5OTA4N2JlYWZhZWI4ZGMyMzhjODAzZTc3ODk1ZGUgcHkzaworNjE1OTMgZDVjZmY3ZjlhMTQyYmU3MjA2MjRjYWJlODY5MDA0MzE0YTI0NjFhMyBsZWdhY3ktdHJ1bmsKKzYxNTk1IDJhMDEwNzVjZDkwMjE0MjcyN2FlNjVhNWY1OGM5OGQ1MDg1ZTA5MzAgbGVnYWN5LXRydW5rCis2MTU5NiAzMDI2MjVmYTZhMmE2OWFkYzhkNzkyNDI5ZWQ4ZTg4NDY3ZjgwZDJlIGxlZ2FjeS10cnVuaworNjE1OTcgNDU5NzBiMDRjZTgzZTJkNTM0Mzc0MjhjNmViMDQyYWI2NDIzOTk5NCBsZWdhY3ktdHJ1bmsKKzYxNjAwIDk2M2Q2N2RmMzcyMzdlNWRjOGExMTQ2ZjViYmNlYjZjYmNjN2ZjNjcgcHkzaworNjE2MDIgYTk4NTVkYjQwZmZiMzNmNGFiMGI0YzkzODYzOGRkZGI1ZmJjZTJlNSBsZWdhY3ktdHJ1bmsKKzYxNjAzIDFkYTI0OTk2ODNiNDNjM2UwZDE3NmU5NjEwMmJhN2I3OGU3Nzc4NTMgcHkzaworNjE2MDQgM2IzMjNmZjkzMDRjNWYwNTc2MjJiZmZjY2FiYzllNGViNjliOGZlZiBweTNrCis2MTYwNSA0MjJiNDlkZmQxNWI1M2MzZTc1NTBhNWJjNWUzNWU0YmI1NGU0NWI2IGxlZ2FjeS10cnVuaworNjE2MDYgZTBjOWI5ZWYwNDY2MGY5ZmI4MGVjMDQ1NjhiMWM0M2QzZjIyZDVjNCBsZWdhY3ktdHJ1bmsKKzYxNjA3IDQyODQ3MThmYjYzMWZhZGQzMjIyNmY0NTlmY2U5NDk2NGYwOWY5ZDQgcHkzaworNjE2MTMgYWQxZDYwNGJjOGVkMzUzMDE0YmIyZTRkNDMyYjhkOWM1NGE3MDViMiBsZWdhY3ktdHJ1bmsKKzYxNjE0IGFkYmM5MzRiZjFmZDUxMDI3NTU3MzI4NDBiNzhjNzY1NzcwMDg1MzQgbGVnYWN5LXRydW5rCis2MTYxNSAyMTQ3N2IxYmE1ODE3YzVjOGUyYjhhOWRmNzM1ZDc5ODY2MmI0YmQzIGxlZ2FjeS10cnVuaworNjE2MTYgNWNjMDRhMjA0NzY2ZjJlN2U1NDMwYTIyNDY0MTBiOGJiNzhiYjRhYiBsZWdhY3ktdHJ1bmsKKzYxNjE4IDg1NWM0MjkwZGZkN2FhMzRkYjA5ZTNmZmRiYmRjNzgyZTFkNGYwMzUgbGVnYWN5LXRydW5rCis2MTYyMSA3NGFiOGJkOTZjNWRlYjNhMmUwZjA0YjJlNWVjNDNmZmVkYTdmMjY5IGxlZ2FjeS10cnVuaworNjE2MjIgYjBiNjA4ZTU3OWNkNWFlMzYwZDcwYTFjZWE1MjQzYTYwNzI2MDEwNCBsZWdhY3ktdHJ1bmsKKzYxNjIzIGViYzEzMGE0YTI3MzgyOGY2NmFkNmZiYzczNjcwNGJmMWI2NDE1N2EgbGVnYWN5LXRydW5rCis2MTYyNCA5M2Y5NzA3YjY2NGNlNGFjZDk0NjliMTgwYjZiNTBjNzYzODZjYjYyIHB5M2sKKzYxNjI1IDMzMGY1NzRjNThmN2MzZGJlZDVlZDRkMDM3Y2I2ZjUzYTZiMGEzOTQgbGVnYWN5LXRydW5rCis2MTYyNyA4ODE3YThlMTJhNTU5ZWNhODczMjBjZmYxMTIwMWZkYzA2ZTRmMGNlIGxlZ2FjeS10cnVuaworNjE2MzEgM2JmMTljMzFjOTU2ZjE0MTI0ZDNhY2Y1YmYyZGMxYWJkZmNiMmI2ZiBsZWdhY3ktdHJ1bmsKKzYxNjMyIGRjNWJlMGIzYzNiZTdkYTQyNjQ2ZDQ2MzJlNjk4MDBkN2Y4YTkxYTcgbGVnYWN5LXRydW5rCis2MTYzMyBlNjY1YTBiMTZkYTBlODdiMGMzYTAzNmIzYjU0OTI2YjgzNGMwZTlmIGxlZ2FjeS10cnVuaworNjE2MzQgMjQyNzU1NTJjOTczMTcxNDIxOWUxMzVlZjJlZjg1OTQ1MmRhNjQ3MiBsZWdhY3ktdHJ1bmsKKzYxNjM5IDQ0MGIwOGEzMmUwYjNkNTA0ZjUzMjVlY2JiZTBiZTUyMmIwYmRlMmMgbGVnYWN5LXRydW5rCis2MTY0MyAxNjU3ZjBhY2NhNzgyMDIxMDVkNzczNjAyMDc4NTNkZjVjYTA1ZjIwIHB5M2sKKzYxNjQ0IGFlM2FkMDY1NzdjN2Q3YTVkMGZkY2U2OWM4Mjc0ZmE2YzdkNTZiMTcgbGVnYWN5LXRydW5rCis2MTY0NiAyZGEwYmYyZTJmNWNjMWYzYWM0Njk4NzRhNmNkY2M5N2YzNzI2ZTAzIGxlZ2FjeS10cnVuaworNjE2NDcgNjVmMzYxMDRmY2FkNzJjYTg5MjA0ZTZlYzQzMjE2YmI4YjFjNTU0ZiBsZWdhY3ktdHJ1bmsKKzYxNjQ4IDM5ODlmYzYxZTc4OWM4OTQ1MzY4ZDM2MGFmNWVmODIxZmE4MDU2YjQgcHkzaworNjE2NDkgM2FhNWViMTgyOTEzMTUwMTkwN2YzMDA1ZGJiNmM4MWMxYWMxODFhMCBsZWdhY3ktdHJ1bmsKKzYxNjUwIDI5M2M2MTA2ZmJlMzQ5Nzk4MmM5NTRkYzYwZTI1M2QxNzIyMjBhNzQgbGVnYWN5LXRydW5rCis2MTY1MSA2NTA5ZWY4YmZlOWMzNjNkYzdmYjU0NzY2N2U5ZWY2NjQzZDYxOGFmIGxlZ2FjeS10cnVuaworNjE2NTIgY2JhZDFmNWNhYmIxNTExZGNhMTYwNDVlYjdhYjUwNjRlMzUzYmUzYiBsZWdhY3ktdHJ1bmsKKzYxNjUzIGU4NjI4MjE5OTQ2NTE5N2IxYTE2NDExNzFkYzRhOTNiMDBhMGY3ZDggcHkzaworNjE2NTUgZmM5M2JmNWZlY2UxZDY0MmJiOGJkZTU4YzUzOWRlNGYxYzhmYzY4ZSBweTNrCis2MTY1NiA4YjBiODkwMjVkOTgyOGIzYTgwYjgyMjFhMWI0ZGRiZDcxMzY1YzBkIGxlZ2FjeS10cnVuaworNjE2NTcgNWJkMmJkYjM5ZTljZGVmNWYzNDkwZGUyMmFkMDQ3YmVkNzlhOTljNiBsZWdhY3ktdHJ1bmsKKzYxNjU4IGQwMGE5Zjc1ZDIyM2Q5MzRlMGNlY2I2Y2FjMmYzZjlhM2VmZWIyYmYgbGVnYWN5LXRydW5rCis2MTY1OSAwZmRiMzYxNjM4NDFkOGI2OTZhOTkwMmIwZGI4YzA2ZTljMjhiZTA5IHB5M2sKKzYxNjYwIGUwMjAzYzY1OGI4NjUwMWQ5ZjUxMmFhMGE2ODljMjVhNWZkZjhmZGEgcHkzaworNjE2NjEgOWE0NzcwOWEyOGI3OWY0YmM2YzE1M2Q4ODI0ZGIyOWUwYzIzMjUzOCBweTNrCis2MTY2MiBmYzIxMDY3M2VlZjAxNTQ0NDI4NjJiODk0NTU3NDhjMDU3ODNmZWMwIHB5M2sKKzYxNjYzIDYwZGI5YTY3ODU1MWQxNzUwNzBiMWRmMTdmOGI1ZThmZjQ3ZTEwZDAgbGVnYWN5LXRydW5rCis2MTY2NSA2YTNlZjNjOTA5NWMwNThmN2FkYmZkMGYwYjRlYmM5MDEzYjM4NjZlIGxlZ2FjeS10cnVuaworNjE2NjYgMTMyY2YzYTc5MTI2MWY0YzJiNTAyYWI4Zjg1ZmQzOTk4MjY0OTY2NyBweTNrCis2MTY2NyAwNmU2NDFjYjNhMjAwNzNmYTkwNmJiMTM4MWNiYWI3NDM0M2RiNWUxIGxlZ2FjeS10cnVuaworNjE2NjggMzlhNGY0MzkzZWYxOTgyNDA0MzY5NTI0ZmM4M2Q0ZTY0ZTdkNTM1ZiBweTNrCis2MTY2OSA4ZTVlYzY5Yjc2YTc0YzUwZGMxMmI1MTIxNzYzNjIzMWZmZThmMDQyIHB5M2sKKzYxNjcwIDM2ZTI5NmU2NmQyMTZhYzk3Y2U4YThjNzM0NGE1ZjIzOGI4YTc2MTcgcHkzaworNjE2NzEgMTMzNDk4YjkxZjFjNDAzY2Y1NjYxZmQ4OTdmODVkOTVjZmYxMWZkZSBweTNrCis2MTY3MiBjOTU2NjNjNjg0Y2FmOWExZTQyMWY5NDVhYmE1OTU5NDQxMmMzMDkxIGxlZ2FjeS10cnVuaworNjE2NzQgZDllYzA2OGIwOGYzMDk0N2U4OTVlY2ZjYTM5ZmViZjIxMTMwNmU2ZiBsZWdhY3ktdHJ1bmsKKzYxNjc1IDdkMmUxYWM4MzRiODVmNzhjOTk1N2Q1NjMwZGIwOTZiNzkzZmZkMzQgcmVsZWFzZTI1LW1haW50Cis2MTY3NiBkMTRhOWU1ZjgwYWU4ZmMyMzQ5YTUzNDFmZWZmNDAyY2EwNzc0ZWUzIGxlZ2FjeS10cnVuaworNjE2NzcgMWM3YzA4ZDI5ZmVlZTVkNzFhMTU4NTFmZGQ5ZWI5MTFlMmFmZWZhMyBsZWdhY3ktdHJ1bmsKKzYxNjc4IGQ1MTFlMzIxNzQzYTkxMWE1YjkxMjQ5Yjk2NDUzMWZiNTBmYmU4NWYgbGVnYWN5LXRydW5rCis2MTY4MCAyOTEzMTg5MjYxMWM1NWNkNDRlMTVlODc2ODZlMjQ2NzcyYTEyNzAwIHB5M2sKKzYxNjgxIDdjYTU3ZTIyYTUyMDc4OTQwZDg4ZjI3MTVkYTgzZjFjOWFiZTU0YjAgbGVnYWN5LXRydW5rCis2MTY4MiA5MWFjODA0OWU3MDkzNDIyZWI4MWFiNzE1MTg5OGIxMGQ2YzZlYmI5IHB5M2sKKzYxNjgzIGU4MzYwYjVkNWExMDc0ODQ0NGExNjI3NTY5OTJhYWRjZmEzOTRhOGMgbGVnYWN5LXRydW5rCis2MTY4NCA2OTYyMjViNWQ1NTU1OWFiMWQ3NjkyNzY1ODA3MTE2Y2I2YjgwNGI1IGxlZ2FjeS10cnVuaworNjE2ODUgZjNkODM4ZGFiNDBlZGJkNTk2OWExMGVlMGZmYTg2MGY0ZTUzYjRiNSBweTNrCis2MTY4NiAyODczM2FkYTRkMDMxZGUxODk4Nzc1ZWZlODc3YjBkM2ZlY2UwNmJjIHB5M2sKKzYxNjg3IDdjNjY2N2JiOGY4NTM0NzRlNWU3OTAxOTA1NmQ3Nzg1OWVjY2RlNGMgbGVnYWN5LXRydW5rCis2MTY4OCBhYTlkYTRhM2M5N2NlMDU2ZDdiNzNjODQ3ZjE3NmRjYzc2OWJiOGFkIGxlZ2FjeS10cnVuaworNjE2OTYgYzQ1YTQ1NjY5MDE3YjkyNTBlZmM2ZjM1YWRiNTEzNjQ1MTkwYzg4MiBsZWdhY3ktdHJ1bmsKKzYxNzAwIDhmOGIwM2MyYmJmZjAxNzJjOTY1OWNiY2FmODZjZDU0YjZkYTI4OTYgbGVnYWN5LXRydW5rCis2MTcwNCA5NDRkODdhOWJiZDBhY2RkNGQxYWY4MjNkMjdjNmY2NGNlN2FiZmIxIGxlZ2FjeS10cnVuaworNjE3MDUgOGVmMDVhY2VlZjJiNGE5ZTc0NzA2ZWExNmU4NDI1M2U0MDAyODdiNiBsZWdhY3ktdHJ1bmsKKzYxNzA3IDcwNGE4NjRlY2IwMTRjNTA3NjliNWE2NzczODdiYTQ3ZjlkNmRjYjUgbGVnYWN5LXRydW5rCis2MTcwOCBhZGI1Y2FiMzAxYTZlZTU1ZmFlODVmYWM5NDFhOGEwOWJhZjA0ZGM1IGxlZ2FjeS10cnVuaworNjE3MDkgNTQ0YTQ2ZGYwMjIyZGM5MjY5ODUzYjkzMGUwNTQ1YzE4OTVjMmNhOCBsZWdhY3ktdHJ1bmsKKzYxNzEwIGYwZTRkOWI0NWU3ZjM2M2EyYWEzMjljZGI4ZDFiYmFjODJhYjIzZWMgcHkzaworNjE3MTEgN2YwMzU1OTJkNmUxYmY1MGI0NWZkYzI3ZTEyZjg4ZjRhMWEwMzdkOSBsZWdhY3ktdHJ1bmsKKzYxNzEyIDg1ZmJkMWQyNjVhMjk1MTM5YjQwM2MxZTY5ZjMzOTVlNjI4NDVjOTYgbGVnYWN5LXRydW5rCis2MTcxMyA0NDE1MjdiZmM3OWNjNzNkMDVkMWM0Yjk1NzdmNDAzY2JlZTU0Y2JhIHJlbGVhc2UyNS1tYWludAorNjE3MTQgOTkzNTViYWE3NDhkY2Q0ZTYxNjNiNjFhZTRkMTU3YjBkNjkyYWYwNSBsZWdhY3ktdHJ1bmsKKzYxNzE1IDIyNzU2MTJjMTZhOWZjMTczOGQxYzBlNDRiODE3OGM4NDIzOTAyYjMgbGVnYWN5LXRydW5rCis2MTcxNiBiZjA3YmFkMWQ3MmY2M2ZjODkwNTNlMDg4ZjA3MzhjN2FjZDQzMjBiIGxlZ2FjeS10cnVuaworNjE3MTcgNzJkYzE2ZTgwMTc5MGUyM2YxNGIwMjA1NDZkMmZkNjI3MWQzZDBjZSBweTNrCis2MTcxOCBkNjc5M2VjZTMyNTQ0ZGU2ODMyMTYyM2FhMmU2YTkzMWExMzhhYzQzIGxlZ2FjeS10cnVuaworNjE3MTkgYTAyNTM3MTg0OTllM2I2YWE1YWQ5NDQ2YWY4ZmViNWE3ZjU0Y2JjMCBsZWdhY3ktdHJ1bmsKKzYxNzIwIDFmOGJhNWU4YTJmYTkzYmRiZTcwNDc4ZjdhMDZlZTExZTgyMDI1NGIgbGVnYWN5LXRydW5rCis2MTcyMSAyZTNmODZlNzNmYTI3NjFlNGY1Njc3YTczNGI2OWY3MWY3OTc4YjJjIGxlZ2FjeS10cnVuaworNjE3MjIgNzI4ZGMxMzMyN2IyZmI5NGNjYjkxYzNlNjgxYmIyYTgzMmExNzgwNyBsZWdhY3ktdHJ1bmsKKzYxNzI0IGU0N2MzYzdiYmRkYzdiN2JiZjc2NzQ0ZjY5MDBmZGFkOWU0YTQ2YmQgbGVnYWN5LXRydW5rCis2MTcyNSBhNzM3NmQxOTJhNmQ3OGFiMjA0NjBlZWUxNGEzOThlYjUzOGYyNzU4IGxlZ2FjeS10cnVuaworNjE3MjYgN2FhNTJlYjkwNzRmOWQyYTk5MzdkM2RkNzIwNzRmOTI3YWMzZDdhNCBweTNrCis2MTcyNyA4YzFmZjhlNTQ3Mzk3MTFhNWVlYWFmODIyMmM3NmU3ZGRmZDVhY2RmIHB5M2sKKzYxNzI4IDM3NmI1Y2I4YTAxNDM1OTlmYmMzNjJlOGUzZGM1ZDQ0NGE2ZjkwMTQgcHkzaworNjE3MjkgN2Y2YmNhNzhjMzY0ODU3ODk0NWIwNjgxMzM4NzQ2NzJhMzZjNzNmZiBweTNrCis2MTczMSBjZGViYTIwY2NkNmEwMWQ0ZWYzZDZiZWE5YzlhNDY5YTcwOTkyN2FlIGxlZ2FjeS10cnVuaworNjE3MzIgNzI2NGMwNTFhMzljYmI0NDBmMjU4MGQ0ZDg0MDM1YWNmZTI1Yjg0ZSBsZWdhY3ktdHJ1bmsKKzYxNzMzIDYxZjVjNjYzYjQ5ZDhiYWRlNDdmYjQwNjA4ZmMyMDczZDUyMDQyZTMgbGVnYWN5LXRydW5rCis2MTczNCBhOTljYTFlNTc1ZWQ5NzU4MWI0NzVkNTFiNGQ4MmQ0OWRkYzNkMDZmIGxlZ2FjeS10cnVuaworNjE3MzUgMjQwODMzMDVkMWM3MDQ2NjE1YTljNWI1ZmJhYjAwZjkxODc5ZmI5ZCBsZWdhY3ktdHJ1bmsKKzYxNzM3IDExZmJjOGFmZTMwNWZlMzM5ZWJhYjNjYzI0YTUyMzAyYmVmOTU1Y2MgbGVnYWN5LXRydW5rCis2MTczOSAwNGMyMTQ4NTY0ZTQ1OWNmZDliNDg0M2MzZjM5NTE0ZWY0ZGYxZDcwIGxlZ2FjeS10cnVuaworNjE3NDEgZWVlYjZiOTUyZDJmODllYWU0NmJkM2YyNjdjMWFiZDgyM2MyZTQ5ZCBsZWdhY3ktdHJ1bmsKKzYxNzQzIGY5Nzc4NWM3ZGU5YjYyMDFlMGNiMmY5OGY0NDEwMjMzZDVlZjYwY2UgbGVnYWN5LXRydW5rCis2MTc0NCAyMjY3Y2ExNGQ1NGJhYTY5NDBmYjNjOTYxMTg5NTAyY2ExNDM0ZGNiIGxlZ2FjeS10cnVuaworNjE3NDcgYjQ5NzU0ZWE5NGRiOTI2ZDE1N2UwMGE0ZWMyY2YwYzQyM2U4NDNkMSBweTNrCis2MTc0OCBiMGE0M2JkNWMyODE4MmJhZmMyNmEwNzU1M2UyMzJjZWE1NDIyMDA1IHRydW5rLWJ5dGVhcnJheQorNjE3NDkgNzA4MzRjMGU0OTFiZDhiZjE0ZDhiNGJjY2ExODQxOGQ4MWQzMWJhNSB0cnVuay1ieXRlYXJyYXkKKzYxNzUwIDQzNTY0M2I3ODBjNzE5YTcwMjFlYzhkNGY5OWM3YzYxMTU3NGIxMmYgdHJ1bmstYnl0ZWFycmF5Cis2MTc1MiBjNjMyZjllMWVhNWRiZDRhN2Y5MTg2MTA5NzU1MzY3MDZjOGY1NDY5IHRydW5rLWJ5dGVhcnJheQorNjE3NTMgZDRiYTViZDExNTgwYTg3NzkwYjYxMmZiOWM2MzRlYzFiOTVhNjgzNSBsZWdhY3ktdHJ1bmsKKzYxNzU0IGRmYTBhMDExYTI0MzVhNjM3MTQ0Yzk1ZmVkOTY4YjAyZmE4ZGNmNGIgdHJ1bmstYnl0ZWFycmF5Cis2MTc1NiA2NjY3MDA4ODk0ZTBkYjI2ZTFjZTkyODFlNjNhZTI0ZjJhM2Q0ZWFkIHRydW5rLWJ5dGVhcnJheQorNjE3NjAgMjQ4ZjkyN2JhNTdlYjI2M2MwZGQ2YzhjNDk5MWQzNDg3MzhjMjgyMiB0cnVuay1ieXRlYXJyYXkKKzYxNzYxIDc1MWRlNjE2ZTA4MDE3ZmMwYjE4ZDFhNmNkNTcyNjM1ZGNmMzJhZDAgbGVnYWN5LXRydW5rCis2MTc2MyAwMTIyYjQ2Y2U0ZTBiZGQ0ZjVhODQ0ZjMzYjQ1MjBmNjY0MWQ4NDBhIHRydW5rLWJ5dGVhcnJheQorNjE3NjUgZjJhYjUwZDBmYTkwOGViZTc5YTEyZWRhOGRkYjFlZjI4OTJmMTRlMyBsZWdhY3ktdHJ1bmsKKzYxNzY2IDJlNWFiMzVjY2FmMWFkZGIyM2NhNzU5MDNhOTgwNDAzNDlkNmQ2YTkgbGVnYWN5LXRydW5rCis2MTc2NyBkNmYwZTNlNTU2YTQ1MDllMzdhZGIwN2VlMmEyOWFhZDExODVlM2Y0IGxlZ2FjeS10cnVuaworNjE3NjggZTY3ZjQyMWEyMGIwYjFiZGJlYTVkM2I2MWY2YzU1M2NmYmMyYjgxNiB0cnVuay1ieXRlYXJyYXkKKzYxNzY5IDMxY2YzOGJkYWFjMGNiMDNlNzRjN2UxYjFkNWVmZDJhNjYyMzNmNDQgbGVnYWN5LXRydW5rCis2MTc3MCAxMGIwZDgxYTIxNDVkYmRlMGM0YjI0Yzg4YzMzOGRjMzU1MmU1MWJiIHB5M2sKKzYxNzcxIDk1N2NiYTc1NTMxNWI0NjUxNTI0MzJjMzQ3YzI3Y2I5NWZmMDFlN2IgcHkzaworNjE3NzIgZmIxZDM1Y2ZiOGQyZGRhODJmYjc0OTJkYTc0ODlhZTcyMGM1NjRhYyB0cnVuay1ieXRlYXJyYXkKKzYxNzczIGZhNDE4Y2RmM2JmZTlmMDQwZWVmOWJiMmJjZDNhZGFkNmNlOGVjYTkgbGVnYWN5LXRydW5rCis2MTc3NCAyOTZmOWJjNDJiOTYzZWZkMTM3OGI1NzJiZWNhOGQ5YzhlMGRhMTgyIHB5M2sKKzYxNzc1IDNmMGUzZmIyNzJhNjIxZTZkMzJlMTUyNzRlODIwMWU3NGY1NTFmNDMgdHJ1bmstYnl0ZWFycmF5Cis2MTc3NiBmNGM1MGE1MWQyNGYwYmYzMDAxMjRhZmY4ZTExZGIzZDI2M2RjZDBhIGxlZ2FjeS10cnVuaworNjE3NzcgNzIyYmVmNjgzNWI5NDRmZmEzMDE3ZjE4MDU3MGMyZmI1MjRmMzI5YSBsZWdhY3ktdHJ1bmsKKzYxNzc4IGFmOGZiNTNhNTRmZDNkNDRhMDg2Mjc4NGQ1YmFiZGRhZDMxMmZlZjkgbGVnYWN5LXRydW5rCis2MTc3OSBhOGY1NGI2YThjMTg1NWQ0NWYyNDVhMGU0ZTA4MjdjYTZjZmRmNGIxIGxlZ2FjeS10cnVuaworNjE3ODAgYzY0YzdiNzI3YzYyNThlNDM0MDk5ZWRkYjkzZGMwMGY4MTQxMGMwYSBsZWdhY3ktdHJ1bmsKKzYxNzgxIDdkYTViNjg5NzFhNWE5ZjBmZDc4ZGZkNGEzNzgwNjQxNzc4ZTRhNzQgbGVnYWN5LXRydW5rCis2MTc4MiA5NjM0YzE3ZThmZTU2MjA1MDljMWYxYzQ4MjU0YzhjZGUwNzFkMDE2IGxlZ2FjeS10cnVuaworNjE3ODMgZjFlY2IzZTk3OGRiNDlkNTdhNWE4MzJhZDY1M2ZkNmQ0NGQ1ODU4ZCBsZWdhY3ktdHJ1bmsKKzYxNzg4IDc1NjNmNGQyZjM2ZWE0NjhkYmNlMzI3MjhjZTIwNjI4M2Q1MTUwZmMgbGVnYWN5LXRydW5rCis2MTc5MyA4NzEwYmE3ZmJhMmJlYTdkNGNmYmNkYWM0ZGUxODdiN2YwNDA1NjRkIGxlZ2FjeS10cnVuaworNjE3OTYgZjFlNTE3ODU5NDdmNWI1ZjE1ZDMyZGY0M2U0MGQ2Mjc2ZWZkNDY3OSBsZWdhY3ktdHJ1bmsKKzYxODA1IDcyOTZjY2JiODU4YzJiODllZjUwZjk4NTczMjYwOTY4ZWEwZTRmOTEgdHJ1bmstYnl0ZWFycmF5Cis2MTgwNyAxZDVhMTE2MTllY2E4OGNlNzc5NDU5MjQ3M2Q4ZTNlMTgwOWU4N2QxIGxlZ2FjeS10cnVuaworNjE4MDkgZGY1YzhiOTdjYjJhMWZhMWZmNjQ1ZGZlYzY1MzNhMDFiOTgzMzE4MiB0cnVuay1ieXRlYXJyYXkKKzYxODEwIGMxZmM2ZTBhOTRiOWI3YzA0OGNmNDQwM2U0OTRlY2MzODk4ZmM0MTggbGVnYWN5LXRydW5rCis2MTgxMSBhZjFiMGY5OGRhZGY5ZDFiZGQwNjdmY2U0NWUyYTVmOThiYjU1MzE4IHB5M2sKKzYxODEyIDM5ZGM5ODVjNmZjNjA2NDQwOTZmN2U3OGY2NTRlZTNiYzU4NjBkMjAgdHJ1bmstYnl0ZWFycmF5Cis2MTgxMyA0NjdjMTZhNTAzOTJjYzBiNWY0ZTM3NDM2MzM3YWQ2YTA0ODlmZjAyIGxlZ2FjeS10cnVuaworNjE4MTggMGE0ODU1OTNhZTFjZTVkMzhlYjcwMTliNWMxODg0MWVmNmIwODA0MyBweTNrCis2MTgxOSBkMGI5MWE5MGJhY2M5NTNkNzQ0NzY2YTcwMTY3ZjEyMWI1ZmY4ZGE4IHRydW5rLWJ5dGVhcnJheQorNjE4MjAgNWU5MTY4NWQ5YzA2ODUyZGViOTc3ZmMwYWUxYWUzNDZhNzZjMjFkYyBsZWdhY3ktdHJ1bmsKKzYxODIxIGY1YjFmYTEyMTRmMGExNTRmODAxYmUyNTUxNWMwMTljMWI0OTk1ZTYgbGVnYWN5LXRydW5rCis2MTgyMiA3Y2FhYWIwNGE0ZDhkYTMyODBmMDk1ZmQwMjZjOWI0MWQ2YTI3MDJkIGxlZ2FjeS10cnVuaworNjE4MjMgNWNhOTI4NDAyZTU0MzY1Y2RkZTNiMGIzZjQxOWQwYTUxYTI3OGQyOCBsZWdhY3ktdHJ1bmsKKzYxODI1IGEzOWNmMzM1MzEyZTc3Y2I1OTJlNjNjZjUyZDQ3N2Y5NTM3NjVkYzggbGVnYWN5LXRydW5rCis2MTgyNiBiZmVlODczZWRmM2ZmNmY3YjA2ZGFhNjU4MmMwMzQxOGM5OWMyNGNlIHB5M2sKKzYxODI3IDY4MDUxZjhjNjYxOGVkYjhmZTlmMDE5ZjY5NDBlYzU4NTYzOWUwMjcgcHkzaworNjE4MjkgNGE2YjA5M2IzMTliYmZjODgwNzIxMDI2YTliZGZiOGVlYzY3NzczMyBweTNrCis2MTgzMSAzNzA4ZjA5MDZlZjVlNmYyM2MxYWQ2YTBiNmFmZmM1MmM1OTUyZjY5IHB5M2sKKzYxODMyIDVmMDRlMDJiYjQwYzVkNTZkYzk0Y2JhZTEwMzE0ZWNjOWZmYjI1OTkgcHkzaworNjE4MzMgMmNjZTkxN2Q3OTk2M2Q4ZDZiYWIwYTNlOGYxZDVmMjU1ZmYwOGJhNiBweTNrCis2MTgzNCA4YzI2MDRmZTU4ODY4YTU1ZjhjYjEyMGQzOTNhZDE2MmMzNDQxYzI0IGxlZ2FjeS10cnVuaworNjE4MzUgZGY5MDc3NGY5MmIwNjlkOTBkNzlkZTQ3MDJmNDQxZjlkOWM1ZGZiMSBweTNrCis2MTgzNiAzMGVmNTExMjgxMzI2ODUzNzNlMDFiNDk4MGJkZGZmZjllZTc5N2IxIHB5M2sKKzYxODM3IDg1OWZmNWM3YzYwYThjMGM2ZDUxNTUyZWViZmVjNzI1YWMxYTY5OTAgcHkzaworNjE4NDEgMjU0MzFmZjZjZTY5ZGY2NWNjODlhNjg2MDViMmM3YzEwNTYxNTdmZCBsZWdhY3ktdHJ1bmsKKzYxODQyIDM4ZGUwZDIwMjMzODY3ODE5OGI2ZWVmODY4NDY4MTUwMjBiNDM3NjggbGVnYWN5LXRydW5rCis2MTg0NiAyZDBlMDg5MTdhMmUzNjBmOTU5ZTE0ZTAwYmI4ZjY5MTU0ZjdjODI5IGxlZ2FjeS10cnVuaworNjE4NDcgNDYxZmY0M2U3NGQwMjJhYjk3OTMwZjEyODcwY2YyMGZiOTU2N2JlYyBsZWdhY3ktdHJ1bmsKKzYxODQ4IDQxZWU5YTQwMGFkMTE0MDI2NjQwYzA3NTBiNWI0NDgyYmIwZThlMGIgcHkzaworNjE4NDkgMDJhZTMxMTI1NmE3N2ExYTk0YjQ1ZDA3NThkYjBhNTQ1NGYzN2QwNyBsZWdhY3ktdHJ1bmsKKzYxODUwIGIyZjNlNDZlNzhhMjlhOTQzMTdjNmM0ZTNkNWYxY2EyYjY1YzI5MDcgcHkzaworNjE4NTEgYmZjZGE1NTI0OTJlNjVmNTY3YjZkMmM0MjViN2VjMjFiOGU2MWNiMCBsZWdhY3ktdHJ1bmsKKzYxODUyIGM4NmU5ZGQxNmI4ZDE0ZDVmYjljMmE3N2QwNDQ3YTBiM2E2OTQwZTcgbGVnYWN5LXRydW5rCis2MTg1MyBjOTIzMDA5MzA3NzJkNjY2OWZjZjk3OGJiNTJiYzI1MzllYzhjYTFiIGxlZ2FjeS10cnVuaworNjE4NTQgNDIyODVkNjM3NTVhYzM4ZjBjNDBiNjE3NzlhNTExMWY5NTkyNmM1OCByZWxlYXNlMjUtbWFpbnQKKzYxODYzIGYzZTY0OGZlZTRjMTlhZDViZThkNjQxMzNmODkyNmQwZDcxZTdhYzcgbGVnYWN5LXRydW5rCis2MTg2NCAwOWFkZmYzZDY2OTE1NGNmNTFjODQzOWY4NGFiNGNjMTkyNTY5MzcxIGxlZ2FjeS10cnVuaworNjE4NjcgY2U0NWZkM2E3YTNmYmU2MmRiY2JhYTk4Yzk2OTlmNDgxNzQxZDY2NCBsZWdhY3ktdHJ1bmsKKzYxODY4IGRlODNlZGNmZWIzZDMwOTA1Y2Q4MGIxNmJmZjIyMDNjMDFmNTA3MjMgcHkzaworNjE4NjkgZGU1NDQ5NWE0MTRhN2I5Mzc0YzgzNzBmNjYzNjIwOTA5YWI1NzExYiBsZWdhY3ktdHJ1bmsKKzYxODcwIDJiZmY1YTcyOTAzNjlkYjU1YThlMTc1NzY0MjM4OGFhZTcyYWVjYWEgbGVnYWN5LXRydW5rCis2MTg3MSA5NThjZjBjMjdkYTkzOTM2NzFlYTBlNzAyYjQyMjM1M2U1MmNmOGM1IGxlZ2FjeS10cnVuaworNjE4NzIgMzhhMGE3MzdjY2Q0MjUzMjg2YjI5ZGNkMWU3NjI0NjdjZDBjN2JkOCBweTNrCis2MTg3MyAxNDdmMzVmNmU2ZTU4NmFmMzk3MTZjYjU4ZjI3M2RlYjlkOTc3MTMzIHB5M2sKKzYxODc0IDRmOWNhODI3YTdkODdlOTdjZGU0OWZjOGE3ZDFlN2YxOThjZTkyYTggbGVnYWN5LXRydW5rCis2MTg3NSAwZGQ0NDFjYThlYjBjMzljN2UzY2Y3NTRlNjFmMTYwOGExNjYzYTRhIGxlZ2FjeS10cnVuaworNjE4NzYgYWJiZDgxZjJjYzY4ZTZiMTc5N2QzMGRlNDI3ODE1ODQ1MTJmYzBhZSBweTNrCis2MTg3NyAwNDFlOGQ3Y2M2ODQwOTMwY2RlYjQwOGIyNTE3YTFhYjYxMmQzN2QxIHB5M2sKKzYxODc4IDliM2YwZmE1ZDhjYTA3NjAyNDBkMDJlNTMxYmYzN2NmMTM4Njg0YWMgbGVnYWN5LXRydW5rCis2MTg3OSA4NGJiNzcwMWVmYmFkODIyYTA0MjU4MjQwZGY4ZDhlYTczNjhkYzI0IGxlZ2FjeS10cnVuaworNjE4ODAgMmExZjQ4MDFkNDk0ZmNhNDVkMDA3NTkyZTdlMjcxYWQyMTY5OGZlZiBsZWdhY3ktdHJ1bmsKKzYxODgxIGFlNjU5ZmYwNTI4YmMxN2I2MWYxYWRhYjE0MGIyOWY1MTViMzdjMGQgbGVnYWN5LXRydW5rCis2MTg4MiA0N2MyZmZjMzhkMWQxMDNjZWI0ZTVkNzgyNzA1M2Q0MmRhNGVmYmU0IGxlZ2FjeS10cnVuaworNjE4ODMgMWEyYzk2NDVmNzFkZjNjMDZiN2ZjZTgxMzlmNzMzMzhkYzM5NTdlMyBweTNrCis2MTg4OSAyYTg2NmVhNjY1MDliNjM3OGQzYTZlODFhZWNlZTJhYTk3MjkwMzdhIGxlZ2FjeS10cnVuaworNjE4OTEgYTdjYmZjYmFhNmIwNjE1NjdhNTk2MThiOTc2OWUxYzBkNDE5NjM1MiBweTNrCis2MTg5MiAyMmJkMDIyOTNlZmE1ZDVkNDA1MTFiMzFmMjIxMmQxZWVlNjhlY2VhIGxlZ2FjeS10cnVuaworNjE4OTMgMGI2Mzk5OTE1OGIwNzI2NGM4ZWQ3ZTk5MmJhMjczOGRhZjFlNWQ4MyByZWxlYXNlMjUtbWFpbnQKKzYxODk0IDZiZWEyZjEzNTFiMWY1ZjNhNGQ3ZDVjNjM5NjI5MzJiNTEwYmFiNDQgcHkzaworNjE4OTYgMjU2ZjkzOTRkOTNkYjVmMzIyZmRmZjQzOTg2MjRiYzNmMmZkNjRmMyBweTNrCis2MTkwMCA3MmNjNDAwZDgwNTM2ZDFlMTU0NTZlZjVlMzU3NDAzOTVlNjZkMTUzIGxlZ2FjeS10cnVuaworNjE5MDQgZTgxY2FjNzNkYWYyZjA4MTQ5OWJhOGMwZTc4Yjk3ZDlkNTQwNzkzNCBsZWdhY3ktdHJ1bmsKKzYxOTA1IDdkM2E2ZGM0NzFjZDkxMjM3ZmQwM2YxZmNiYmEyY2IzYTA0MTcyYTUgcHkzaworNjE5MDYgMTg5OWUwOGZhNDIxMTY0ZjRjZjI1MmYyY2UwZDQ1NWUxMzNmOWM4OCByZWxlYXNlMjUtbWFpbnQKKzYxOTEzIDVkZjcyYjk4ODdmYTY4OWU5OTQ5ZDM0MjYxNDczNjk2OWJkOTM4N2MgbGVnYWN5LXRydW5rCis2MTkxNCA0NmY4OWY0ODBiZDRjNTBjZDIwMTNkN2QwMGYxY2FkOWYyODU0MDBhIHB5M2sKKzYxOTE1IDYyMmQzYjExNjhhYTI5NGQyNTg4OTI4YjliOGUwMmMwMDllYTJlNDYgbGVnYWN5LXRydW5rCis2MTkxNiBmOTRhYzhmOWNmOTZkNGVmYzQ0MDFkYzBhZTVmNmQyY2VjNTM5ZTAxIGxlZ2FjeS10cnVuaworNjE5MTcgNjc5MDk1MDhlMDQxNWE0MGUwNTgwYTBlNThhNGM2YjFkZjYyMmI4ZiB0cnVuay1ieXRlYXJyYXkKKzYxOTE4IGI1MWU0YjUwZWQzMGVjMjhkNWZhNjlhODE2N2ZjOTE3YzM2NWVmYTMgbGVnYWN5LXRydW5rCis2MTkxOSAxNTExODU2NmY5ODcyN2JjMmFhZDAxZDhiNDY0ZjEyNDgyYWI2Njc4IGxlZ2FjeS10cnVuaworNjE5MjAgMTVkYTA5OGIzY2Q4NWMxNDdiNzc3ODgyZmJjN2IwOGQwYjM1YjYzMSB0cnVuay1ieXRlYXJyYXkKKzYxOTIxIDRlYTZmMTJiYmU4YzY5YmU2N2M0YjM5YWJiYWNmYjI2N2IzNTNkNjkgcHkzaworNjE5MjIgNTRiOTBkN2VkZGI3ODFhMGE1Y2E4ZGZjYzcxYzhkZTQzNTlmNTgwZCBsZWdhY3ktdHJ1bmsKKzYxOTIzIDI5NmMyMThmMzVjZjZjMzcyYWQ2ZmUxM2I2NzU5NTVhZTEyN2RmOGEgbGVnYWN5LXRydW5rCis2MTkyNCA4ZjZjY2QwNzVhMjRkODM2NjhhNGQzNzRlODZiOGRlMTViNzNjMDExIGxlZ2FjeS10cnVuaworNjE5MjUgN2RhODkxODEwMmZlZTE1NGMxOGUwZWNiNTBkYTViZmZhNDM1ZjE1MSBsZWdhY3ktdHJ1bmsKKzYxOTI2IGNkZGIyOTdjMjQ2NTNiNjg2Y2I0MzE0ODZkYzczMTg0ZmFiOTRjMmMgbGVnYWN5LXRydW5rCis2MTkyNyA4NWFjYzQwODExYjNkNjQ0Y2Y1MmUyNTYwOTMxOTI5ZDM5YmY1ZGU1IHB5M2sKKzYxOTI4IDFhYjVjYzI1MzQxYWQxODE3YzhmZmFhZTI5ZGY0YTM4ZGIzM2YzYTEgbGVnYWN5LXRydW5rCis2MTkyOSAxZGQwMDAxNmE2OWNlZDhlYjczZDM2NmY4ZWE1ZGJkYzAzMGE0MDE0IGxlZ2FjeS10cnVuaworNjE5MzAgZDU3ODRmYzE5ZTdhYzcwNjliMjg3ZjI5ZThlNzE5ZmQzM2NhMDkxMiB0cnVuay1ieXRlYXJyYXkKKzYxOTMxIDZlYTQxZDUyMzllMDdlNmVmNjU1OWUxOGZiOTgyNjM1ODRhODY5OGYgbGVnYWN5LXRydW5rCis2MTkzMyAxYzdmYTRhY2VjYjNhZDI1NjdhMGQ3NzQ0NDA4YzZmNDNlZGIxZDllIHRydW5rLWJ5dGVhcnJheQorNjE5MzQgOWZjY2NkNThkNjVkYmY5MzY3NzI3ODIwNzExYjE3YWMyYjMxZDBkNyB0cnVuay1ieXRlYXJyYXkKKzYxOTM1IDIwZmM0MWMxN2NjN2M2MDdmOWU5ZjM3NGYxODYyMWFhYzAyNTE3Y2MgbGVnYWN5LXRydW5rCis2MTkzNiA1MzQxYjMwYjE4MTI1YmYxOTI1YzBkNDRmMGM0NzIzODk4YjUxMjhhIGxlZ2FjeS10cnVuaworNjE5MzcgY2MwZDE5NzdmODIwYzc5ODIwZTZkNjQ4NmU3ODRiMWNjNDc4YTVlMSBsZWdhY3ktdHJ1bmsKKzYxOTM4IDJlN2ZmMzhlMGExODNlYTg4YzRlMmE1Yzk4NWUyMThkM2NhODIxNWIgbGVnYWN5LXRydW5rCis2MTk0MCBjY2VlYTk4Y2NmMzVmNzc0ZTgyZTQ1OWE0MzA0OTYxZmI0YTE0ZjMwIGxlZ2FjeS10cnVuaworNjE5NDEgMmJjYmQzODgyZWVlZDZjZjcwODVhYTMzYWQ4ZTIzMmQ0NjU1NjczOCBweTNrCis2MTk0MiA0ZDE5ODkyMDQwNjIwYTQ3NDE4YWYwN2E5YjRjZjU3OWQ3YWRlMTU2IHB5M2sKKzYxOTQzIDhkNmZkZTE2ZTQ5M2NiMjRjNzVkMTUyZDM4MmQwMTMwZjRiNGQ4MTYgbGVnYWN5LXRydW5rCis2MTk0NCA2NGJkOTZmZjk0ZjE0OTQxODMxMzRiMjY4ZDU2ZTI3OWNiYmY3YjUyIHB5M2sKKzYxOTQ4IDFiNmMwZmYxMzRmYTRhMWQ4YTdhOGYzYzAwN2E2Zjk4NDk3NDU3OTYgcHkzaworNjE5NTEgOTk1Yzk5NjBmN2ZmMzgzNGE5MWQ2YzNmZjE3NTRlOTBiODdjNGMzOCBweTNrCis2MTk1MiBkY2U5ZDJkOTJjODgxNDcyYTA3YzI4ZGIwNWNjMWVmYzM2OGNlZmQ1IGxlZ2FjeS10cnVuaworNjE5NTMgYzc4ZDM1ODZjNDc0ZjY2NDA2OTUzOTdiYzJkN2NhNWNmODgyNjhlZSBsZWdhY3ktdHJ1bmsKKzYxOTU0IGRhYTZhY2VhYmRmYzU4NDkwZjhhOGRhMjI2ZTk0MTk0MjcwM2U2MGQgbGVnYWN5LXRydW5rCis2MTk1NSA3ODUwNGQ2MDRiNDQ4YzhiNWNkOGRlNTFhMjgwNmYxNWU4ZTg0YTc2IHB5M2sKKzYxOTU2IGQwMGRlZDhiMjY3NzFkNDhjMDg5ODNmYjI2OTRlNzU2YzMxNTRkZjYgbGVnYWN5LXRydW5rCis2MTk1NyBhOTM1YzUwY2I1MWFhNDVlZWIxZTQyN2IzNDgwNTFhZWU0ZDIyN2UxIGxlZ2FjeS10cnVuaworNjE5NTggMjQ4Njc2OTg4YzU0OGZjY2NmOWIwNTU5ZjJhYjc2MjQ2Y2M0MTQzNyBsZWdhY3ktdHJ1bmsKKzYxOTU5IDM4ZmU2NGUzYjEzMTczYWZjOTMzOWVhZTQzYmRjZjM3ODc0YWY2OTggbGVnYWN5LXRydW5rCis2MTk2MCAzNmQ4MjhkMjdjMzY0MDkxMWU4NmNkNmE2ZmFlMjAyODQ5MjVmNzg3IHB5M2sKKzYxOTYxIGIwNmExNWVmZGM2ZDFmNDJjZjg2OTJhODhlZjk4N2I1NTA4MWZkZWYgcHkzaworNjE5NjIgYWUyODMxNTQyNTU4MTY3ZTg0M2RhNzI2N2Y4YTI2ODQ3YTU1NzVlZCBweTNrLWltcG9ydGxpYgorNjE5NjMgNWMyNzFlZjZjYjMyNjM4M2FmNzA0YzUwZmQ5NGQ4ZTkzNjIyNGFmZCBweTNrLWltcG9ydGxpYgorNjE5NjQgYjQ1ZTdiNTdhMGQ4MmFhZDU4ZGU3OWNiODE1ZmE5NzI0NmI5NzhmYiBsZWdhY3ktdHJ1bmsKKzYxOTY1IGVmNDBlYzMyYzVlNGQ3NzM5YjJhMjUwNWQ3MDI0ZDUyOGJiMGMyMWUgbGVnYWN5LXRydW5rCis2MTk2NiA4NDc5M2JmNWE0YmZjMGQyNjA5Y2M4YTBmMjNjMTY1OWZjM2U1YzJhIGxlZ2FjeS10cnVuaworNjE5NjcgNjE5MmQ1YjEyYjZhZTE3YjUzYTJkYWY4YzZhMzlhNjc2OTljNTFiNiBsZWdhY3ktdHJ1bmsKKzYxOTY4IGQ3NDBjNzFmMDJmZjI3YWI5ZDk1MThkODMzMmM2ODBlYmNlMTcxMzcgbGVnYWN5LXRydW5rCis2MTk2OSA1MDc4YjdlZTE2ZGMxNzFkNjk3YmEzMTUzOThhNGQwNWMxZWM5MmFkIGxlZ2FjeS10cnVuaworNjE5NzAgYjM1MDk2MGFkZTZkNjY5Njc3M2I3MWZlMDM5NmI2ZjYzNzc3NWI1YyBsZWdhY3ktdHJ1bmsKKzYxOTcxIDMxM2YzODFmYzBhNzE3MGNjMWU4MWE5NzRhNzdhYzA2ZDQ1MWNlN2QgbGVnYWN5LXRydW5rCis2MTk3MiA2ZjEzMWQyYzM2MjgyMDliZWZmZDU4OTVjZGQ1MjMzMTUzOWNkZmFhIGxlZ2FjeS10cnVuaworNjE5NzMgZWFjNDFmOTAyOTZjNjljNmQwN2QyOWYxZmViNDUzYTRjMGU0MDBkMSBsZWdhY3ktdHJ1bmsKKzYxOTc0IDYyMTM4YTBmNDIzMjZiYjAzNDBiZWU3MGZkNDdiMTExNGYyYjMxOTQgbGVnYWN5LXRydW5rCis2MTk3NSBhMGVhM2EwZWZjNzEwOTM0YWQ2NmUzOTA3MjExMjMwZmYyMjdkNmExIGxlZ2FjeS10cnVuaworNjE5NzYgZjFhZWM3ZGVjMDVjYTIxZWI4MzY3NDA2ZGVjOThlYjA2Y2ZhNmZkOCBsZWdhY3ktdHJ1bmsKKzYxOTc3IGUzOWY2OWJmNTYxMGVhZDM5ODUxNzc0NDU5MDlhN2JhZjk0ZjhhMWYgbGVnYWN5LXRydW5rCis2MTk3OCA1NjQ0MmRiNjBhMzYyYmZiNjJlOTA0NjNmNmRhMzE0OTM2YjJkZDllIGxlZ2FjeS10cnVuaworNjE5NzkgMzFiYTNmYTE1ODViMDlkYjBjODAyNzdkZTIxODBlYWNjMTYwNDhkMyBsZWdhY3ktdHJ1bmsKKzYxOTgwIGNiNTYzMzBkN2FkYzhjZDEwMzliZTQwNGVlY2ZmOTFiNTViYTJhN2UgcmVsZWFzZTI1LW1haW50Cis2MTk4MSA2YTY2ZDMyNjdkMGNkNGRjYTYzZjU2MWYxNmI2NzBhNjU5Mzk2NTYyIGxlZ2FjeS10cnVuaworNjE5ODIgZGE1NTk3YTVjMTk1ODJhOGUzN2Q1NDA1OGY0MTc1YjVmYWQxODcyYSBweTNrCis2MTk4NCAxMGEzOWE2NjJlNjljYTRkZGZmYzJiYmZlYjdiNTA4MDFhZDQ5ZmI1IGxlZ2FjeS10cnVuaworNjE5ODUgMThlMTlhYzk4ZDM0YzAxOTMzMTI5ZGM3YmE3NjE0YjQxOTYyMjBjMyBsZWdhY3ktdHJ1bmsKKzYxOTg2IDU5ZDA4MjU5MWY1NjgwNDFhMGM2M2Y0YTRlOWMyZGFmNmUyYzk0MjggbGVnYWN5LXRydW5rCis2MTk4NyA3ZmRmZjAyZTZmNDVlYTk4NDUxYTdiOWJiMzA3MDE4ZThkODYzNTdhIGxlZ2FjeS10cnVuaworNjE5ODggNGJmNjFmY2NjNGU2ODgyNDc3ZmNmM2E5NGY1OTQ1YWI5NzUyNmJmNyBsZWdhY3ktdHJ1bmsKKzYxOTg5IDZlN2IyODA4YjlhNjllNzdhOWI1YWYxYzhlZGIyYzJhYjE3YTAzNWEgbGVnYWN5LXRydW5rCis2MTk5MCAxZDUwNzQ3ZTUzZDM2OGIwZDgxZGE5MjA2ZjBmZDIzOWNhNmMwODg5IGxlZ2FjeS10cnVuaworNjE5OTEgNzIzMjI1OWEwNTI5ZTY5NjAyOWYzNDU4NDJhNDZlYzFkMWI5ZjA4NyBweTNrCis2MTk5MiAxZTEwYjMwZjc0OThjM2Q3MmRiOWRlM2EzY2JlNzYxMDk2NmI2ZDZiIGxlZ2FjeS10cnVuaworNjE5OTMgMzEwM2VhM2RmNDlkOTRjN2U3MWM1YTAxYmE3ZDZmNmRiZGRjNDkwMiBsZWdhY3ktdHJ1bmsKKzYxOTk3IGJiZmNiYWZlYWU4NDNkMDBhOTRiMWFkM2IzMGJmYzk0MjgxYmY1MWMgbGVnYWN5LXRydW5rCis2MTk5OCA2NGYyZWI0MTcwZjE5NjBhMjk1NjgwZjdmZTFlODM1NmI2MWFiYTYwIGxlZ2FjeS10cnVuaworNjE5OTkgNjlkMDA5MDc0MDg4M2ViOGQzZjJiNWVmOTg4Mjg2MGQ2YWQyYTI0YiBsZWdhY3ktdHJ1bmsKKzYyMDAwIGY5YTYyOWY0MTY1NmRhNzIwYTU0ZmRmYWZiMzM0ZjM5YmFmNDRkZGYgbGVnYWN5LXRydW5rCis2MjAwMiAyMzY1YzQ3ZmU2NGRkYzM0ZWYwY2NhNjNiNTdjYWZjMDQ4NTdlMGIxIHB5M2sKKzYyMDAzIDg0ODE2MGQxMDc4MDYxY2NiYjVkNjdjZTcyYjIyNDVlMzY5ZTU1MmQgcHkzaworNjIwMDQgY2EzOGY3YTRiNGM5NTk2OGI4NGEyNzQxZjQxYWUzMmFjMjQwM2JjNiBsZWdhY3ktdHJ1bmsKKzYyMDA1IGE0M2JlMDc0MzI0ZDJmM2YxYmU5OWY2ZTRkZDUyYzZkZjgwZTMxODUgbGVnYWN5LXRydW5rCis2MjAwNiAwOWZhOGNiMmJmZThmNGYyYWE3NTAwMTQzMWJlNTM2N2JiYTcwN2VjIGxlZ2FjeS10cnVuaworNjIwMDcgYWFjZjhiZTUxZjkwMzA3ODc3MDliYzVjZDQ0YWVjYWRmZTM4YTcwMyBsZWdhY3ktdHJ1bmsKKzYyMDExIGEyMTg1NGU1MTBiNDdiY2NjZWRlMmRlZmE4NzNkN2IwMjRmMTAyZDkgbGVnYWN5LXRydW5rCis2MjAxMiA2NTRhZDc0YWRlMTMxMjAxNmQ3ZjViZWU1NzU0NjRkOTg1MWEzYWJhIGxlZ2FjeS10cnVuaworNjIwMTMgMWI1YjZhYmIxZjJlZGU5YjE0NWFhODQ2MjdiYWJjZmYwOTQwY2Y3YyBsZWdhY3ktdHJ1bmsKKzYyMDE0IGMzZTY3NGNiZDcyZTlkOWFiNDUxN2Y5MDY3NmIwMGQ2OTc4OGY1MjUgbGVnYWN5LXRydW5rCis2MjAxNSAzYjk5NGY3NGIxMDA0ODIxM2VmZDI4YjdlNTVhYTgwOTk0NWU2ZjcyIGxlZ2FjeS10cnVuaworNjIwMTYgYzc3Y2MyM2UzOTRmMTQ0ODE2MTJjMDkxNGRmNGU4ZDI1MDYwNjUzNSByZWxlYXNlMjUtbWFpbnQKKzYyMDE4IDk3MzRhNDJjZmExNWUwMTVlY2RkYjlmM2VkM2IyYjkxNGYyNWRiYTEgbGVnYWN5LXRydW5rCis2MjAxOSBjNGVkNjY0YTFkYTFjMGIwMWIwOWE5NmVmM2VlYTZlMzVjMjExOTRjIGxlZ2FjeS10cnVuaworNjIwMjAgM2VhM2U1MWQxZWUzZmE4ZjY3YmM0NzNiMjU0ODU0ZDI3ODZhZTlmMiBsZWdhY3ktdHJ1bmsKKzYyMDIxIGVmZWY0ZTNmZWQxN2RhY2YyZjNiYzdjNDAyNzg0NWRmN2RkNWU0NWIgbGVnYWN5LXRydW5rCis2MjAyMiA4NzJhYmVkN2QwNjk0ZDg5YjRmZDU0OTcyOWE3NmYzZmQ4YjJhNTA4IHB5M2sKKzYyMDIzIDdjZTFhOGZkOGE3MWNhOTdlNmMyNmQ4ZmNlZWVlZTExYTBhZDExNWYgbGVnYWN5LXRydW5rCis2MjAyNCBlMDZlMDhlOGZkY2VkZWM2YmFkYTNiMWRhMjg3NmE5ZjhjYzBhMDcyIHB5M2sKKzYyMDI1IGQxZTFiNzQwZjY4NDM4OWMxZWViMmE4NjMzYmEyYTU2ZDkyNjA4MmYgbGVnYWN5LXRydW5rCis2MjAyNiAwZWE1YzA1NWFiNTRmNDZiNmYzZGMyOWMzOTI1ZmI4NGM4MjJmOTViIGxlZ2FjeS10cnVuaworNjIwMjcgMDkwNTNhN2MxY2RmZDgxOGYwOTJmNmE4YzRjNzA0Nzg0NDAzZWFjMCBweTNrCis2MjAyOCBmZTUzZDFhMzZlZjYzYjk0ZDFlNTk1ZmJmNGU1ZmRmMzUzMDYwMjJlIGxlZ2FjeS10cnVuaworNjIwMjkgYzQ0MGE1NzM3MTQ5YTcxMmRiOWJkNDVhYmQ4NDZmNTc2N2VjMzZkMyBsZWdhY3ktdHJ1bmsKKzYyMDMwIDZiM2FjODllMGRkNDkyNDlhMTA4ZDlkYzVmODVmODU1YzA5OTM4NGIgbGVnYWN5LXRydW5rCis2MjAzMSA5NThjZjdlY2NhZTI0OTYyZDc5NTBiYWIyMjc1NjViOTM5YmI1MjAwIHJlbGVhc2UyNS1tYWludAorNjIwMzIgMGE0ZGEzOTdlMWRiNDdiMDg2Y2ZkYjAwZGRiZjg5YjNhZWE0MzUzNyBweTNrCis2MjAzMyBmMTg0MzMzN2E2NmMxNWU1MzNjNjAyMGU5MGJiN2FlZTZmZTQ0NmZkIHB5M2sKKzYyMDM0IDQ2MzQ4ZGU2M2Y2MWEwZWJhN2ExZjM0YzRkM2E0YTVlOGVkOTk3MGIgcHkzaworNjIwMzUgNTExMGNmMGU1ZjhmZWFmMjQxY2I5MGRmZjJmZjc1MDAwNWU0ZGVjNyBsZWdhY3ktdHJ1bmsKKzYyMDM2IDE2NzM2ZWI0MDE1MGFhN2Q3ODg0MDc4ZmJiMTA2NzViMmFiY2Y3ZDQgbGVnYWN5LXRydW5rCis2MjAzNyAyM2U0MjU3NzIyNmE3Zjg1ZmI4YWIyNzIxZmZkNzgzNDgwODljNWFlIGxlZ2FjeS10cnVuaworNjIwMzggNmUwMmZmMGJkNmY4OTQ0YjcxMjI5YWIxNzEwODIwODk4N2YwMmFlZiBsZWdhY3ktdHJ1bmsKKzYyMDM5IGIwYmYwNmQ0OTY0N2RkMjVkMWMzZDM2NmM4NDFhNDYyOTA4Zjg3NjMgbGVnYWN5LXRydW5rCis2MjA0MCA0YzY3OGU5YzdhMzA1MGMyNDEyYjM2MTc0YTEwMDVhN2MzZmQzYmI4IGxlZ2FjeS10cnVuaworNjIwNDEgNTFlZmYyZmQ5NTI3MTM2NmNlODc4MWQxN2YyYTBjZDYwZWIwMDAyZSBweTNrCis2MjA0MiAwYzIxZjliNGE4MzFhNDYxNmE4NmQyNjJhZWFiNjdlZjYxZWZjYzMwIGxlZ2FjeS10cnVuaworNjIwNDMgMDFhN2U2NjUyNWMyNjI0Y2M3YzI4MWQzMzZhMzgzMjkwZWYwZTIwMSBsZWdhY3ktdHJ1bmsKKzYyMDQ0IGU0NDg2YzM0M2Y3ZmE2OGQ5YTA3MWIwMTc5ZDY3NWE1MWUxZDhkOWMgbGVnYWN5LXRydW5rCis2MjA0NSBlZDg4ZjRkZTQ5NmYxOTgwNmIzNjZhNzBlZjI5ZDc3MmJjYTE2Y2RmIHB5M2sKKzYyMDQ3IDJmZjg4YWU5ODUwYzUyZTVjZTdhZDljNWExMmVlMTUzYTYyMTRjODEgbGVnYWN5LXRydW5rCis2MjA0OCBlMzcwZDljZDE0OWVhMjYwNGJiNzhmNTFhMTcxNTU2MTllNTQ1Y2VlIGxlZ2FjeS10cnVuaworNjIwNDkgNDJjNWQyODdhODUyZTZmMjg5ODhjZDZiMjU5MzIzZGFjMDA3N2FlYiBsZWdhY3ktdHJ1bmsKKzYyMDUwIGYwNTFlN2E4MGFjYzc2YjQwMjllZTU4NjYyMTQ5NTgxZjJiMDZlMTkgbGVnYWN5LXRydW5rCis2MjA1MSAyOWVhNTA3ZmQ5OTgyMjMzNzQzODc0MTAyMTY4MmYwMzFjODIzMGMzIGxlZ2FjeS10cnVuaworNjIwNTIgYzExMjIxOTA2MTcxMWE0NTAxZTg3NmUwZDA2ZTczZTcxMWU5ODAwZiBsZWdhY3ktdHJ1bmsKKzYyMDUzIDA3Zjc1ZDU1MTliNDdiNGMwYjE3NWQzYzNmMjVhYWZiZTFiNjg5OTIgbGVnYWN5LXRydW5rCis2MjA1NCA1OWQ0MmU2ZDE4ODUzYmEwZmFkOThmOWJmZmU1MTU0MDQ4ZDVhYzJhIGxlZ2FjeS10cnVuaworNjIwNTUgZWE3NWIxMmZlOGU3NmY5YmZlODMxM2Y2ODYwNGM4ZDAxNGYzMjhiYyBweTNrCis2MjA1NiA5ODI3NmJlNjQ1NzlmYzNjMGM2MTMxZmYyZTJmMTUxZTU3MDU3ODNkIHB5M2sKKzYyMDU3IDFjOTcyMzJkOTNmZjNlOWFlMjBlNGExNjE4NWM0YWIzYTA2MWM0ODUgcHkzaworNjIwNTggZTg5OThlODBlYWYyYmY4YjU5OTAxODU4NDc4Y2NmN2NmNmY5NWJkZSBweTNrCis2MjA1OSBiZTE4ZGY2MzQ0MDU4NTkzOTU2MDUwYzg3ODc3YTVmODY3M2EzMTE0IGxlZ2FjeS10cnVuaworNjIwNjAgMzJlYTc2NTRmZjljNGVmMzVmZDNjOThjN2EwMmQ4MDcyYTQxNmVhNiBweTNrCis2MjA2MSA0YzdiYjQwOWRhZDZkMDBkOTBkNmRhYzQzZjgzNDk3MjJkNWQxMDU2IHB5M2sKKzYyMDYyIGE3ZmI0ZDg3Y2JkZTM5N2RhNGZlZjM1ZjZmNzhlOTkwYmQ2ZTI5ZWMgcHkzaworNjIwNjMgMmJjMWQ1YWE3MjllZTQ5NmM2ZTkyZmZjODBlZTQ0ZTRjOTJiNDk2NiBweTNrCis2MjA2NCA2MDQyOTE0ZTgyODY3N2NiMjllNmRhOTJmMzhhNWVlZDg4YjBiMWJhIHB5M2sKKzYyMDY1IGM1YjE0OWFkMzAwZjhjMDhjMWVjMzhlYjMyYTkxYjA2MjQ3NDdjMWMgcHkzaworNjIwNjYgNTdiYmFjNTMxOTE5ODI5YjMzZmRmZDNkMzE4NmNlNTRiODcwNGFkOCBweTNrCis2MjA2NyA2MDBmMmZmOGFhOWU5MTcwY2M2MDk3YjU3MzUxNmU2OTM2ZjNmMWNhIGxlZ2FjeS10cnVuaworNjIwNjggZmZiZTZjNzkwNTIzY2QyODhmMTg5MWY5MTcxZTJkZWEwNjU5YjM3MSBweTNrCis2MjA2OSBhZWQ2OThjODY0N2I5OTE0ZjAxNTdiYTdhM2ExOTI5MTEyY2U4MTc5IHB5M2sKKzYyMDcwIGYwZmE2MDViMmE3OGE2MDhiN2Y3MzI5MmVkY2FlM2RhMzczYjMxM2IgcHkzaworNjIwNzEgMzhmOGRmZWNlOThlNWJkODNhNzNjNmJmZDA3NTMyMzYzMjkxOWI5OCBweTNrCis2MjA3MiA4NjQ1NzRhOWNkMjZlYTZkNWY1NmE5N2VjOGU0Yjk5MDk4MDk3NjU3IHB5M2sKKzYyMDczIGU5MDMyZjVkZDUzOWIzYTY0OTI2MTY3MTVjYjJlOTQwMzFlMDdlOTAgcHkzaworNjIwNzQgYjJkOTNhOTYwYjk4OTBmNmQ4MzE2MzVlODhjOWZiM2FmZjc4YjkwNiBweTNrCis2MjA3NSBlM2RjODY3YjYxODJlZTEyOGMyNWIwMDE1ZWYwODJmYWEyYTViYzA0IGxlZ2FjeS10cnVuaworNjIwNzYgMDdiMzZkMmI3NTM0YzVjOGJiNDk2YTcyYTkxZjgwY2MxMWZjYzM3MiBweTNrCis2MjA3NyBlNDc0ODE3NjRlNTczMDg0ODhhMTllMWNiMzkyMzQxYzFkNjQxOTQzIHB5M2sKKzYyMDc4IDgxZWUyNzBhNmViNTRmMDAzNzIwMDcxMzdiZmZjNDgyZGYzNTMzMjcgcHkzaworNjIwODAgYzNlZTBmMGZiZWUxY2VmNjI0YjIwNGNiOGIzZWFlZmY2ZTQ5YTJhZiBsZWdhY3ktdHJ1bmsKKzYyMDgxIDYxYzkyOTIzY2Y3ZmNlYjNlOTJmMGY1YmM3NzNiN2I5ODg0ZWQ5YTMgcHkzaworNjIwODIgNDE1MTU2ZDRjYmQyMGM4YzYyZWE5MTg3NDg5MTZlMTBjYTE2NzNlMSBweTNrCis2MjA4NCBjNzAxNWUzNTdhMmM5NzljNDI0MmI2ZjIyNThkMDA4NTg2Mzc0OGRmIGxlZ2FjeS10cnVuaworNjIwODUgMTc4ODFmOTZlYTAxZTMwNDBmMWE2ZjkyYjMzYTRkMjAwOTZmM2FlYyBsZWdhY3ktdHJ1bmsKKzYyMDg2IDZkZWNmZTM4YTgwOTE5OWYxMjU4ODUwMjE4ODQ4YzA2OWM5NWQwZGMgcHkzaworNjIwODcgZDg2YjMzM2M3MmU3NDFiOWM2YTIwNzdiMGI2Zjg4Y2ZmNjA4ZGE5YiBweTNrCis2MjA4OCAzMGRkNjA2OTg2NzFmMWI4NjY2NTVkOGM3ZjgwMThhY2YyMjYwMjU5IHB5M2sKKzYyMDg5IDVhMTdkMTU3ZGYwMDE2NDdiNjIzMjRkODk5ODUyMmM3N2U0MGI1NWQgcHkzaworNjIwOTAgN2RmZjVlNDFmYTdhZTFiYjAyNzQ1N2ZjMDFiZTgwMGZmMWE0MDU1ZiBsZWdhY3ktdHJ1bmsKKzYyMDkxIDRjNTA2NWRkYjliZDYzODgzMzAwMmYyMzhmZTY0NTM2NDI3MmY4ZTggbGVnYWN5LXRydW5rCis2MjA5MyBhYjRmOGM0NmMzZDliNmRjNjk2NmE5ODM1MDllYTU4NzZiY2JkODg2IHB5M2sKKzYyMDk1IDQ3NzllMzQ5NmFlMWFmYmJmYjgxMmViNmU1NTIzMmRlYjM2MTI0YzUgbGVnYWN5LXRydW5rCis2MjA5NiAwNzMwZjNkNTBjZGNhMWIxNmQzZGQyYWZlNDhjYzU4YWM1ZTE4ZjcwIGxlZ2FjeS10cnVuaworNjIwOTcgMWM3OGQ4ZTg3NjUzYTVkZmIyNzkxODE1YTNjYjc1Y2Y2MDM1NjcxZCBsZWdhY3ktdHJ1bmsKKzYyMDk4IDBiMzc0NzcyNTRmNjQxODA4Mjc2ODdlMjRkY2QyZDM5ZWJiMjM4OTEgcmVsZWFzZTI1LW1haW50Cis2MjA5OSA1OTM5OTAwZDk4ZDIxNDk5MThhMWNmNGY5YjQxYWU4Nzc2ZDBkODE4IGxlZ2FjeS10cnVuaworNjIxMDAgZDZlMTMzM2U2MDc1Y2Y0MWNmMmQxY2I3NTY2ZGY5ZWI2NzA4YTdiMCBsZWdhY3ktdHJ1bmsKKzYyMTAxIGM3YzI1MjA0ODU1NTM3NjhlNDk5YTgzZmZkZmFjNDI2OTkzYjA3NWEgcHkzaworNjIxMDIgZjc1MzkxOGFiZTY1MjgzOGIxYjEzZjI4MzUxOGZhMWM3NjM5ODEyYyBsZWdhY3ktdHJ1bmsKKzYyMTAzIDBiMmE0YTEyNDVhM2M5NjY3MTY3NmFlY2U4NzYyNDM5NGQ2ODE0YWIgbGVnYWN5LXRydW5rCis2MjEwNCBiYjRhNTQ3NDMwZjg1Y2UwMzVjODgxNGZkMGRjMDMwMGU5NDhiYWY2IHB5M2sKKzYyMTA1IDAzZWQwMTE4ZTczMzc2MDM4Y2RhY2Y5MjA5OWQ0NTk3MWRjN2M5OTYgbGVnYWN5LXRydW5rCis2MjEwNiA4ZTZhNGNjN2RmYzA0ZGE2OTRiOWRjMzQ5ZmRmNDQyNDY2ZGM4YWY2IHB5M2sKKzYyMTEwIDgxMTc5MDZiN2JhNzVlNmUyYjQ5OGYwMjYxZGFhYTA1ODU2ZjRhNWUgbGVnYWN5LXRydW5rCis2MjExMSBhMTcyYzJlMzhhYzllMmVhNjJlZDllOGI1ZWJhMWI2NjY4ZTE2YjYwIGxlZ2FjeS10cnVuaworNjIxMTIgYTk0NDY5Yzc0YjllYjRiYjMyZDhlYjA2Yjg0ZDZjMjQ5Y2IwODQ3YSBsZWdhY3ktdHJ1bmsKKzYyMTEzIDBhNWM4NjM1MGE4OTI3NjEzZmE0NTI0OWEwMDkzY2MzMGEzMTk2M2MgbGVnYWN5LXRydW5rCis2MjExNCAyYjBlY2M3ZmQ3ZWVhMjgyZGRiMTJmNGViMzY3MGM1MWRhNDRjZmFiIGxlZ2FjeS10cnVuaworNjIxMTUgMjA1ZDdmZDUwZDM1YTk2Y2FiNjM2OTllZjI2MmZkMjNhZmU2ODk1MiBweTNrCis2MjExNiBmNTQ3ZWJmMDI4NDMyODliOTQ4MWQxOWU4ZjU5NjI4NzcxZmFkNjI1IHB5M2sKKzYyMTE3IDg3OTFhYzljYmNjZDViZjFmMmEyNTc4MWU2ZDQ4MmNiODNiNDVkYWUgcHkzaworNjIxMTggOTc1YmQyMTYwNTI3MGEwN2Q5MjU3Yzk0NmE3OTViNDg4OGM2YTkxMSBweTNrCis2MjExOSAxNWY3NzNmNzMwMGUzNzJjNTZhMjFkNTlmZTQ5Y2EyNjk1NWE2NDc3IHB5M2sKKzYyMTIxIGVjYWIwMzc2NmNhY2NmMzQxN2JmNGZmOWQ3NWEzZDlhNzc1YTQ5NTQgcHkzaworNjIxMjMgZWVjMTQ0OTE3YTE4OWJlMTFlZDVlZmEzNWM2NjA0ZDAzYmM2MmJjYyBsZWdhY3ktdHJ1bmsKKzYyMTI0IDc2YTgxZWY5YjM3OTFlOTRjMzZhNTAyYTliNjIwNWIwNDc2NWNhY2IgbGVnYWN5LXRydW5rCis2MjEyNSBhYTliYWJiOWE0OGVkOWNjMjliOTJkOGJmYmI2YWQ2NjE0MmRhMzkxIHB5M2sKKzYyMTI2IDE2MTdiYjA1YTc4YWQ4MTgzYzJkYTI2Mzg3MjEwMTg5N2IzNmExNmQgbGVnYWN5LXRydW5rCis2MjEyNyA0ZDgzYjhkMDMyOTlmNWFhMWZhNGU3MzQxM2FmMjRlZTQ0ZDAwNmZkIGxlZ2FjeS10cnVuaworNjIxMjggMjg0OGM2NTdhZjBhZTc0ZjYzMGJmMzdlMTIxM2M5OGY3OTUzZGQzZSBweTNrCis2MjEyOSA5ZGNkYTU2Yjg3MWUxY2VhMGIxZTk0OGQ3Y2Q0YzYxYmM5OGM1YjMzIGxlZ2FjeS10cnVuaworNjIxMzAgODE0MjJmMWRlODkwOWRhM2RkMzcyYTRjY2UzMzQ1MjI5YWJjMjAxMSBweTNrCis2MjEzMSA5NzM2YzIwZDI2ZWI2ZjY0OGFkMzFmNGQyNjNlNzY4MzA0ZmQ5NDE0IGxlZ2FjeS10cnVuaworNjIxMzIgZGRmZTk0NzQwZWRlYTU3ZThiYmVkYjAxOTlkMTc1YTM3YjcwMGM1OCBweTNrCis2MjEzMyBhNzJlOTE3NDkxYTQ4Njg0MjQzOGY3MzhmODM2OTAwZWIyN2VkOWFlIGxlZ2FjeS10cnVuaworNjIxMzQgNjdmMWM0NjUyNzljYmMxZDRlMWY4Yjc2Mjk2MjRlMmZkZjNjOTliOCBweTNrCis2MjEzNSBjYzMzMzNiN2JkOTM2NjY4YzE2NzgwZDgwZjAzZGQzY2Y2ZjllOTNiIHB5M2sKKzYyMTM2IDc2ZjU3N2E5ZWMwMzNmZGEwODE0MGFhZDc4ZjY1OTVhMDU4Y2U1YjUgbGVnYWN5LXRydW5rCis2MjEzOCAwM2IyNmY5MWJmNmQwNTAzYTM0MjJiZGQ1Nzk0NDUxMDk5OTJjMjQ2IGxlZ2FjeS10cnVuaworNjIxMzkgNGJhNjgxOTVhNTExNjMyNjNjZTkzNDMwNjlhMGZjMDhjZjQwZjEzYiBweTNrCis2MjE0MCA3YzA4MWMwYjBmNTU4OGRiYzFiMDM0OGVjZTlkYmQxYTQzYjllOTBiIHB5M2sKKzYyMTQxIGFjNWU0ZDU0YjIzZTlkNTZlMmUxNzM0ODc5MDNiMzM2ZmUxNmIzOTQgbGVnYWN5LXRydW5rCis2MjE0MiBmYjNjOWJiNzZiMjk0NThmYjMzODc1MzM5NDk3MTA5YzQ2MTgxOTkwIGxlZ2FjeS10cnVuaworNjIxNDMgZDgxOGY2ZDI5Mzg0N2E3ZjBiMTExOWM1MjBjMjJkN2E0YmM0ZTFhMSBsZWdhY3ktdHJ1bmsKKzYyMTQ0IGNjZGRjNTZiZDViMDcwZmI4ZmY2OGUyMzRhMmNjZDI0ZDUwZjYzYzcgcHkzaworNjIxNDUgYjI4YTJkMjVmZDkyZGMwNTZmZDU2ZTFlNTc0MWYzYzg4ODA2Yjg1YSBsZWdhY3ktdHJ1bmsKKzYyMTQ2IDNkMDM1MmE1NDFjZTU2NjJiNjlhZTRjNzQyNmM4NzQ3NGJhMTU5YWYgcHkzaworNjIxNDcgNGExMTMzMDNmMzE2NTQyZGM3ZDMzZjNhMjE5OTFmNzBhNWU2OWJiNyBsZWdhY3ktdHJ1bmsKKzYyMTQ4IDM5OWU3NGJiMTJjN2RkMGY5MDE3M2YwZGY2ZDk4NzY2ZTYzN2U4ZjAgbGVnYWN5LXRydW5rCis2MjE0OSA4MjczMTc2ODk4NmQ0NzQ5YTBhZTM4YjcxODExYmNmZmM3MDk5MGZkIGxlZ2FjeS10cnVuaworNjIxNTAgYzNhNzcyNTg4ZGI3NmViZGVjNWVlODZlODBmYWM0ZDhjMzZjMTEwNSBsZWdhY3ktdHJ1bmsKKzYyMTUyIDZhYmUyNWI5OTI0YmFjOWYzYWRjZGNjODE0YjZlNTM3YTdiYjQxODggbGVnYWN5LXRydW5rCis2MjE1MyA2MWEwYzc2ZWNmODc2ZWU1YzcyZDc1OThlNDgwNWVkMGE1NWMzMTlkIGxlZ2FjeS10cnVuaworNjIxNTQgYTE5ZWM0ZjE3Mjc3OTcyYTNkNWVlZDc2ZjlkZmUzNjM1Y2Y4MTlhNSBsZWdhY3ktdHJ1bmsKKzYyMTU1IGY4MDZmZDk5NDFkYTY4YzQ1NWQ2YzBiYjZjZGEyYjU0MmMwY2I2ZTcgcHkzaworNjIxNTYgMGNlN2EyMzUyYTUzZWEwNzgwMGZiZWE3MmQxMzNmMTVmMGE3OTgxNiBsZWdhY3ktdHJ1bmsKKzYyMTU3IGU4OTE2YzY0ZGY0YzVmYjUwMGZkMjZjNDA4MjA5NmMwMWQ4ODg3ZmUgcHkzaworNjIxNTggNDkwMWU3NWY3NzVhZTFhYzAyNTJhZDM1Mjc0ZjY1NzgyMzdiOTUxZiBsZWdhY3ktdHJ1bmsKKzYyMTU5IDM3MjZkZThjYjhlMWQzYzAwNDMwYWU3YTFjOGZhMTE1ZDA3Y2Y1OGEgbGVnYWN5LXRydW5rCis2MjE2MCBmNGJmM2U3YmNiZTgwYWUyNGE3MWQxODJjMTJlMzJlYzE4MDQ3MTIwIGxlZ2FjeS10cnVuaworNjIxNjEgZGU3Nzk3M2Q3ZTFhMGM0ZDJmYzU5NGM4ZTRhNGUxMDA4NjkxYTYzZiBsZWdhY3ktdHJ1bmsKKzYyMTYyIDM0NDJlOWU2YjJjZjE4ZGZhNjUwN2I1MjIyNzczYTRhYzU1Y2Q3Y2YgcHkzaworNjIxNjMgOWM5MjZiMGE2NDhmNDI0OGRkZDg1NGM3OTgzOTA3YTNiNjliMjk5ZSBweTNrCis2MjE2NSBiMTAyOTJlYWZiMDczNzE4Mjc1ZGU2ZDU0YzkzM2ZkZmMxZmFhNjA4IHB5M2sKKzYyMTY2IGMzZGNjMGM3YmZkOTU3ZTEyNjM4ZDFjZTA3YjQ5MWU0YWMzOWE5MzkgcHkzaworNjIxNjcgYTFhNTE4YmU1NDdkZDkyYzliYmE3YWQ2YTg3NGJmMGVjNjIwYmMxZCBsZWdhY3ktdHJ1bmsKKzYyMTY4IDEwNTVmMzY5YjFmY2VlMDc5YTJjZDk4YWZkOWQ1ZWM3MzU1NzYxZmMgbGVnYWN5LXRydW5rCis2MjE2OSA2MjUzYTcyMWQ4YTZhMmIzZTY5YjM1OWEyZjQ5MmJiN2ViMTAxY2QxIGxlZ2FjeS10cnVuaworNjIxNzAgZTNmN2RjZmFhMDMwY2JlODRmNWJkYTM0ZmZiYTQ5YWZjYWU3YTEyMCBsZWdhY3ktdHJ1bmsKKzYyMTcyIDg1MzJkNTY5MTg1MDlhYjhlMTEyYzMxMzVjYzEwYjQwOTFjNGFlNDkgcHkzaworNjIxNzMgMTBkOTRjOGM4NDE0YWI2NzJlMjI3ODBiMDJiYmVkZGJkN2JhNDc2MyBsZWdhY3ktdHJ1bmsKKzYyMTc0IGY4NGNkZmMyMjFkMTM1ZTBlMmUxM2U1YmQ5MjVkMTEyOWRmMTY0NmIgbGVnYWN5LXRydW5rCis2MjE3NSBiYzcwMGFkMDI5NjIzMTg1MjY0ZThjNWQyZDIxNmJlZjExMmJhZjJjIHB5M2sKKzYyMTc2IDQzNTJkNDFhZmZiMDFiMjVmMGYxNjI4YmYzY2JhZTk5MTllMTY5OTcgcHkzaworNjIxNzcgODY0YTU2NzFjN2E0M2NhNzcxYzQ2YmM2NzZlYTUyNmQ1Mjk5MDI2YSBsZWdhY3ktdHJ1bmsKKzYyMTc4IDIyYTc0ZWFmNmIyMjUzZmMxMjViMDc5MWMyZTcxMjk3YjkxY2Q5YTIgcHkzaworNjIxNzkgNDJhNzU4Zjk2MWExNzkzM2NlZTJiYTM2YzE4NjlmODAzMDJhZDVkMyBsZWdhY3ktdHJ1bmsKKzYyMTgwIDAxMmQ5N2JiZWVhZjZmNmMxOGVlZmQ0NTQxMGQzNDJlYTRhYjIzZTUgbGVnYWN5LXRydW5rCis2MjE4MSBlNTNmMmNjY2RmMWQ3MWIyNzk3MDE3OWM0ZjZjZDZiZjIxMTQ2YzM0IHB5M2sKKzYyMTgzIGZiNWVhYTRiZTcwMDkxYTZlZWM0NWRmNzJmNWNlZTJmNjFkODQ5ZWUgcmVsZWFzZTI1LW1haW50Cis2MjE4NSBmNDZjZDI0MGUxMDU4NWM5NDkwNTUyZjYyN2Q3ODA3NzIxNTNjOWY1IHB5M2sKKzYyMTg3IDAzNTI4OWU2ZmUyMzVkZDMwNGFlNDhkNmM4YjE1NTU0YTYwYTZhMDEgbGVnYWN5LXRydW5rCis2MjE5MCBjN2RhMzFjMmM0NWZmN2JkYTBiYTI3YzJiZWMzMzJlMjI4NTMxNjkyIHB5M2sKKzYyMTkyIDljNjQ3NTQyNzYwNTIxNDMyZjc3ODlmYzVmYWM4YWRjZjZmYTA3YTQgcHkzaworNjIxOTMgZTI4ZWQ4NWNjOTYyZGQ3NDFjODFmOTIxODg5OTI1ZjgyNjkxMmI0YSBsZWdhY3ktdHJ1bmsKKzYyMTk0IDI3ZDMyNDM2MGE2M2UzMTRlMjJhYTJhODEwMGNjYmEzZmYyMzkwNDEgbGVnYWN5LXRydW5rCis2MjE5NSA4NmRhOTI5OGI5MDhiOGM5NzZiODFkYTA5MjExM2JiOWM0MjViZTJiIGxlZ2FjeS10cnVuaworNjIxOTYgZGY3NjE5NTM5NjMxYTI2OGMyZTA2OWEwMjBjZThkYTRlYjI4OGZmYSBweTNrCis2MjE5NyBhOTNkMjkxOWVhNTliZGQ5YTBhMTBkNjQ0NjA3Y2I5YmYxYjIwMDk3IGxlZ2FjeS10cnVuaworNjIxOTggNGJkYmVmNzA5NTE1NWFiY2Y4YjJmOTYwNGFmODc1YzM5OTczZmQwZSBsZWdhY3ktdHJ1bmsKKzYyMTk5IDRlNzI0ODlmMTZkMDUwYWZiNTQ3MzQ3NWQ3M2U4OTE4YWQ0N2YxYzEgbGVnYWN5LXRydW5rCis2MjIwMCAzYWI1NDc0YmRlNDU3Zjg0ZWY1MDdjMzdhOGQyNjQ0MWFiZmYxOTQ5IHB5M2sKKzYyMjAxIDNkOWFkMjdkOTMwYjA3OGUwMTBkMTgwZmE3MzVjOWFiMjllZWIzMDMgcHkzaworNjIyMDMgNTZlNDk5NTJkMWE0ZjYzYmM1Mzk0OTJhMGQ3YjNiZDIwNGJkN2VjZiBweTNrCis2MjIwNCAyZDk1ZjdhOTgzZDgyZDgwZmQ4Y2JhYjRkYjE5OTdjZDQxY2IyMmZiIGxlZ2FjeS10cnVuaworNjIyMDUgMjdkZjNiODEzNTE4MjhkMzc0ZDdjOTEwZjE2OTQ5YzBkMTNmNTIzNCBsZWdhY3ktdHJ1bmsKKzYyMjA3IGMyNjY3MGYxZTUyMGZlZjRmMTgwMjFhYmEyYWRjNjkxNGM3MGZjZmMgbGVnYWN5LXRydW5rCis2MjIwOCAyM2I2NWYyZDc2MjE5ZDI5OWJmMGE1NmEwZTEwZDY2MzllYzRkMDRmIGxlZ2FjeS10cnVuaworNjIyMDkgMGJlNDAwY2JkNWI4YTAyYzZjYTllM2M2MzQ2NmEyMDQxY2ZlOGQzYiBsZWdhY3ktdHJ1bmsKKzYyMjEwIGQ3NmU1OWZiZjA2ZDQxN2M3NTIyZThjNTliZDkxMTYzZjZmODY1MDggbGVnYWN5LXRydW5rCis2MjIxMSBmZDQ3YTkwMDkwNWMyZDZmZjdiYzZjZmJmZWZhYzMxNGFjYzM1YzhiIHB5M2sKKzYyMjEzIDYwY2RiNjcwM2RmMzNlOGJiYjZiODNjYjZmMjYyYmVjMDEyODA3YjUgcHkzaworNjIyMTQgMDlmMzZkNTdjOWQ2MTNhOTNkNDBlYTQwYWI0NjcxYWJmMzk0NmY5OCBsZWdhY3ktdHJ1bmsKKzYyMjE1IGY5YzYxYzk2YTc2OTViMGE4NTFhMGE4MDkxYzRiMDQ4ODI3ZWQyYjYgcmVsZWFzZTI1LW1haW50Cis2MjIxNiBjZDA4MTg0NjM3YzU4YmVmMjRhMGM4MGY5YzgyZGZlMzdjNGY5MjIyIHB5M2sKKzYyMjE3IDg5ZGQxNjJmMTU1YmZjYTllM2Q5MjIxM2QzYzgzMThlMzVhMzg0MDQgcHkzaworNjIyMTggNDU4OWQ4MzFhYTgwYmJlNTE2YjgxODgwYTQ2NWYyMTJhMDkxNjY5OCBweTNrCis2MjIxOSAyMThmMmQ1NWRlNDg4MWFjMWQ1OGFiNzdmNTBkNzA2Mzk1NjAwMzc5IGxlZ2FjeS10cnVuaworNjIyMjAgNDM0ODM0MzIxOTI0ODlkOWM5M2EyZmNjNWQ1NjM4ZDM3YTFlMTlkNyBsZWdhY3ktdHJ1bmsKKzYyMjIxIDYzYTBkMzNjNGNkMzU0OTg2MzY3NjQzNmUzMmE0MjhlYTc0MDEyNDMgbGVnYWN5LXRydW5rCis2MjIyMiAyNzBkNzlmOTAwNzExZWJkNDY0YjExNWQ3MmQxMjJmMTJhYTA0ZjE3IHB5M2sKKzYyMjIzIGUwMjRiNzU1Mjc5NWVjYjllZDY2N2IzOTJlYTlmYWE4NTFlNWFlNWEgbGVnYWN5LXRydW5rCis2MjIyNCA2M2Y5YTg1MjYwOWUzMTg4NmYxMmZmNTBjZDlhMTJkZGM2NzdlNzBhIHB5M2sKKzYyMjI1IGFlNjRmYTFiYzljYmI0YjllNDJmMTBjNGMyZThmMzhjYjM0YTk5MjQgcHkzaworNjIyMjcgNTBmNTE4NGVlZWQ4ZDhhZjExY2YxYzgxODJkNjI2MjQwZDA5MWMwMSBsZWdhY3ktdHJ1bmsKKzYyMjI5IDM4MmQ1ZWExN2Q3OGE0OGQyY2FlYWEwMjYzMzdhNTNhZDE0YjNkZDMgbGVnYWN5LXRydW5rCis2MjIzMCA4NTQzZjhjODFkYTA4OGFkMjdkMmFlZmJlYmIyM2JmMTFkZjc1MTM2IGxlZ2FjeS10cnVuaworNjIyMzEgMWYxNTQ2M2FmOThjMzk0YTMxN2EzZmE3NjczM2Q0MWExNmQ4NmVjMyBsZWdhY3ktdHJ1bmsKKzYyMjMzIDdlYmU4MWIxZTQyMzJhNWE2ZmRlZWI2NjZhYjM4YzRlMjIyZTY4MGYgbGVnYWN5LXRydW5rCis2MjIzNCBkOTE3ZGEyYjE5NDZlMTJjNDZmNTIzMjZhOGU2N2EzZjVhNTE5MDMzIGxlZ2FjeS10cnVuaworNjIyMzUgMjdjNzEzOWE5OGVmN2U5ZTZkMTFjNDQ3NDk4YmUxOTMyODQ0NzhhOSBsZWdhY3ktdHJ1bmsKKzYyMjM2IDA0OThlYmI2YzQxYjgzMDk4MjYxODE2MzlhY2I5YmU5ZGIzNzE0MmIgcmVsZWFzZTI1LW1haW50Cis2MjIzNyA3ZmQyNzRhNThkNWMxZTBlYzVlYjg3ZTcxYzFlOWNlMmM5N2FiMzViIGxlZ2FjeS10cnVuaworNjIyMzggYWJkYzgxZTFjYjViYTY1NWJkYmMyZDQxMmVkYmM5ZTBiYWVhMmE1YyBsZWdhY3ktdHJ1bmsKKzYyMjM5IGFmNGM0NmJmM2QwOTcyYjc0NTcwMGVkMDQzZjE3NTRhNzJjNDM0OTkgbGVnYWN5LXRydW5rCis2MjI0MCA2MDg4NWY4ZTg1NzVjZTZlNGY2ZGE2MDkzMDA0NTRlMjQ4OTlmMzBmIHB5M2sKKzYyMjQxIGFmYzYyMWExYmM0MTkwMzk4ZmRkNDRiYjA4ZjZlN2VhNWYwNmMyMjQgcHkzaworNjIyNDIgMmU5MTdiMGM4ZjZlODkyYmM0ZGI4YTFmZGE1ZTZmYmZiY2RjZjI0YSBweTNrCis2MjI0NiBiM2NkMDMzOWNhNzdlOTc5MTg5OGNmMTZjMmQ4NzlkYWRiZjUzOThkIGxlZ2FjeS10cnVuaworNjIyNDcgMmM0NTUzZjY1OTI0MzUxNmI4NzEwYzAyZDkzMGIzYmUxMDA3ZDg1NCBsZWdhY3ktdHJ1bmsKKzYyMjQ4IGJlN2IwZWI1OTkwYzZiNjFhOTY0MjhhMTc4NGU2NGMyOTYyMWNhZGYgcmVsZWFzZTI1LW1haW50Cis2MjI0OSBhZmYzODM5ZDAzOTQxYWQ0NWFkN2MxYzQ5ZWQ4ZTMxNGJhMThhZGFmIGxlZ2FjeS10cnVuaworNjIyNTEgNWE1NjkyZTNjOWJlMjI5NTQ3MWE2NmU4NGI0ZmNhNDg4YmQ1ZWJmZSBweTNrCis2MjI1MiBmZjM0ZWYwYTgwOTY0OGNkYzNlMDliNTQ2OTc3MGU5YWE5OTMwNTUzIHB5M2sKKzYyMjUzIDE4ZGI4YzRkNDQ4N2FlNjlhM2RlZWUwYWZjNjVmYzU4NDIxMjc3NjcgcHkzaworNjIyNTQgZWZhOWNjM2JkN2YzZWJhNjhmYTc4ZTQ5ZGMyYjExYjZhZTA1OTVlOCBweTNrCis2MjI1NSAxMWIxOGRkMTU5MDNlYjljM2JhNjczMjAxNTM4Zjc1MTE5ODJjN2VlIGxlZ2FjeS10cnVuaworNjIyNTggZDhiNzcxYmUyMWRmNDQ5OWEyNGIwOWU1YTZiMzVkNWJiZTZjZjc0YyBweTNrCis2MjI1OSAzNjAzMjY3NjcyODgwYTQxYzVhODk3ZmEwM2I5ZWQyZDc1NDM3NzQyIGxlZ2FjeS10cnVuaworNjIyNjAgY2UzMTg3NDYyMDExZjY4Mzg2Y2I1MGViOTk5NGVmN2Q1ZDNkZjI3ZCBsZWdhY3ktdHJ1bmsKKzYyMjYxIDBiNTU4NzVjMWM5YzFkNjYwZjczMWEzMjk1OWE5MTZlOWUzNWY3MzAgbGVnYWN5LXRydW5rCis2MjI2MiBjZDRiMWYzZmQxYTk3NDA3NTAyNjQzYjMwNGYxZWE4ZmY1ZmE4MmM3IHJlbGVhc2UyNS1tYWludAorNjIyNjMgODQyYTZjMmM5YmNkMmE3MzBjY2M0NTdmMjFmNmIyY2Y1ZjRjZDQ1YiBsZWdhY3ktdHJ1bmsKKzYyMjY0IDIyODdhNGFiMjRkODc2MTE5ODhmNTE2YjRhYzVmMjVjMWZlODBmNWEgcHkzaworNjIyNjUgM2NlN2M3OTZiY2ExMjQ5NWJjYTA3YjdmY2NiZWE2MGRhNGJjMGFhMSBweTNrCis2MjI2NiA4ZDU1NTg1MGY3M2Q5NjhmZDY3Y2IyYmE2Y2ExNWY5MjcxNzRlN2IyIGxlZ2FjeS10cnVuaworNjIyNjkgN2M5OWNlZGMzZTU0YTVlZmJmOGRiM2E0MDM0NDk1NzEzYzgyNzZhYSBweTNrCis2MjI3MCA1ZTU1ZDQyNzVhMDk0MTBkMjk2Yjc3MWIwNmZjOTQ2NmU5ZmE1ZjBjIHB5M2sKKzYyMjcxIDFhYWFiMzIxODNmMjI3NDU4NTk2YWUwM2Y5YWQ5Y2JjNmZmY2MwZjcgbGVnYWN5LXRydW5rCis2MjI3MiAwNDEwZmY4MThlYzc4ZWYxYjIyNDBiM2EyN2UwMDkyZWNkYmQ1ODkxIHJlbGVhc2UyNS1tYWludAorNjIyNzMgNjQ1YzUzNWY4MjIzMjZlYjc3MDE4Njc2M2YwNzdkZDJjNjk2MzgyMSBweTNrCis2MjI3NSA4NDE2Y2RkMTFjMTE3MjE4MDJlOWQyNzU2NzE1NDc0MTg0YmNhZGU0IHB5M2sKKzYyMjc2IDYxOTY1MjlhZmQ3Mzg0NzVmNTliZjBiNzdkYWY1MTIxNWQ3YTMyOTEgcHkzaworNjIyNzcgMjlhN2JlYzYxMGNiZjIzOWNlOWQ4NWUyMDQ0ZjNiOTFhYzQ0Yjc1NiBsZWdhY3ktdHJ1bmsKKzYyMjc4IDQ1ZmRhZTRjZGI1NTdmMmE2Yzg1MGRlODk1MjEyNzU2Zjk5Mjk3OTggbGVnYWN5LXRydW5rCis2MjI3OSBkZGNlN2M5NDIxZDJlOTZmZDU1YTZlOWNkZWEyMjU1MGY5Y2U1YTAzIGxlZ2FjeS10cnVuaworNjIyODAgYWZhYzNmZjYwYzZjNWMxMDg4MTQ3M2NhMzYzNWMzMjNmNjE5ZGViYyBweTNrCis2MjI4MSAwOTRhOWNlNGI5YmQ0ZmRkZjNhYmY5NDZmMzg0N2U0NWIyYjdiMDRiIHJlbGVhc2UyNS1tYWludAorNjIyODQgOTc5NzRkOTY3MTI3MGI3ODdlOWFjMjQ4NmMxNTZkODRhYmY0NTYxZCByZWxlYXNlMjUtbWFpbnQKKzYyMjg5IGJjMzM3NzBjYTExNDhjNjAyOWIyNzQ5NDRmODA0YmE4Y2RlNzZkYmEgbGVnYWN5LXRydW5rCis2MjI5MCBhMjQ4NTZiYTc3ZmVkMzRjYWQ1MjU5OGExMzkzYzMzNWYzYWU3MDcyIGxlZ2FjeS10cnVuaworNjIyOTEgMzM2MWI5OGZmNGZmOGNlOGY3OWZkNzJlM2I5NTgxZjhlMjQxZTdhYyBweTNrCis2MjI5MiAzNjUzZmJkZDQ0ODM5YmJhMTA4NjA3NjBkZmMyNDQzOWJhY2JkOTY4IHB5M2sKKzYyMjkzIGMxZmEyZTc1OGUwNWI1YTRiMDdiYjY2NDVmZDI2YzI1NGI2NjFmNDQgbGVnYWN5LXRydW5rCis2MjI5NCA5NDc4MmJlOGYxZTc3YjU4YmY4Yzk1ZWRhNGU1YWRjNmQzN2U5MGZjIGxlZ2FjeS10cnVuaworNjIyOTUgZmUyNzUxYWNhZDNlMTNhNWNiYWZjMDQzZmY0NTAzMjFiMWFlOWU0OSBsZWdhY3ktdHJ1bmsKKzYyMjk2IGNhMjMzYmU2NDU5ODljYWRmZjQ0NjZkMTI1NjExNDU2NWU2MTlkOTQgbGVnYWN5LXRydW5rCis2MjI5NyBkNDZmNmViMDllYmNmYjg2NjRhZGI4OWE3MDk2MzE5YTBhNmM2OWUyIGxlZ2FjeS10cnVuaworNjIyOTggNzY0YWFiMGU4YjliMWU0NmEzNGUyOTFiNzNiYmI4NzAwMWExZDY4MyBsZWdhY3ktdHJ1bmsKKzYyMzAxIDhiOTE0ZmNlOWQ4NGMwODRkYTQ5OTZlMDQ4NDk4YWEyYzA5NTNjMjUgcHkzaworNjIzMDIgMmE5ODU4MjU1ZGUxMDg3M2U4OThiMzkwODczZTg0MDNmOGJlODZmMSBsZWdhY3ktdHJ1bmsKKzYyMzAzIDg0MDA2NDgwMjk1MmIzNzhlODFmNDYyN2EwMTc1YzZmODJkY2VhNjcgbGVnYWN5LXRydW5rCis2MjMwNCBmNzgxY2ExNDM5NWIwNjU3ZjJhYWU2MTllNTYxNmYyY2FkYjUyOGY3IGxlZ2FjeS10cnVuaworNjIzMDUgMzllYTJmYzQ1MDNkMTIzMTc5NWE3Y2NhNWQ3NGFlYjEzNDk1M2IyMyBsZWdhY3ktdHJ1bmsKKzYyMzA2IDgzZTY5NzVjMzE5OTg0NDE3YWIxZjJjZWUxODMzYWIyY2EyN2MzZDAgbGVnYWN5LXRydW5rCis2MjMwNyAzMzA3YTU0NTBjMzc5YTY5MWEyZTg5YTZkMWVhYTk5ZTMzNDY4YzcyIHB5M2sKKzYyMzA4IDM2ZDBhMWUwYzAyNGJhOWQwMDc2YjU4ZDFjMWI3MjNmOTI1Mjg4ZDQgbGVnYWN5LXRydW5rCis2MjMwOSBiNTQ0YmI2MWJjYTljYWJkMDMzNzhmOGNjN2I1NzIyZDVhODFiYjYyIGxlZ2FjeS10cnVuaworNjIzMTAgOWFkMzBjY2NlNDljMTgxY2RlMzliYzFmNTMwMmZhODIxY2VlNmVkOSBsZWdhY3ktdHJ1bmsKKzYyMzExIDAyMzQzZWNhZjBiYjAwODk3OWRmZWFhMjU0NGEzMDMxZmIwOTA3NzMgbGVnYWN5LXRydW5rCis2MjMxMiBlMGMzYWNiMTE2YTU1NGMxMGU2Mjk3ZWMyMjg5ZWUwN2E2OGE4ODJkIHB5M2sKKzYyMzEzIDhmMmI2NWVjN2JiYWI3OGI5ZDQwZTQ4NGEyZmRiNThiODNiYWRjMjQgbGVnYWN5LXRydW5rCis2MjMxNCAyOTIzMWE5NzM1ODBlYTg0ZDNlZTFiZmRmMGVlOTI4OGM1NmVhZDE3IGxlZ2FjeS10cnVuaworNjIzMTUgZmMzM2U3NWI5MjU3MGRjM2YxMmY0MTNjNDY0YzczMDA4YjE5ZDcyZCBsZWdhY3ktdHJ1bmsKKzYyMzE5IDdhNWE1ODBiYTZlYTIzYmE5ODA2MDBjNDcxYTE1ZDAxODE3MWRlM2YgbGVnYWN5LXRydW5rCis2MjMyMCAwNTI4Mjc5MDA3ODI2ZDdmODg0MmJmNjdkZGY2ZWVlMjRhNTE1YmE4IGxlZ2FjeS10cnVuaworNjIzMjEgODVmMGUxYWMwYmM5YjJiMTA2YjA0NTczMDhhMDUwODM3YjJlNTY5YyBsZWdhY3ktdHJ1bmsKKzYyMzIyIDQ3ZDliYmUxMDg5NzIwY2QxZTNkMzcwNzRlYTUzYmZjYzA5ZTJlMTMgcHkzaworNjIzMjMgMDI4ZDg2MjU0MDliMjIyZGFkN2NkYjY5YTAyZmQ2OWY3YTY1ZmFkOCBsZWdhY3ktdHJ1bmsKKzYyMzI0IDRhZmRjNjhlYTUyZWE1OGM2NTdmNWQ0NTBlNzc0NzBhNTlhOWIzMzQgbGVnYWN5LXRydW5rCis2MjMyOSA2OTUyZTcxODFmZmM4OGY4YmY5MTZkOTcyMzlmNWE4ZDc0MjQxZjdjIGxlZ2FjeS10cnVuaworNjIzMzAgYjQyMGVhYmY5ODM1NDU5NzQzMGFkODdiY2Q4NzI5ZDU3MDBjNDJmMCBsZWdhY3ktdHJ1bmsKKzYyMzMxIDdjMjFjYzE0Yjk0ZjVhNjRkMjg2YTNkY2M1YWI3NDg0MmZlMTRmMTEgbGVnYWN5LXRydW5rCis2MjMzMiAwM2Q5YzY2NGE3YmM4NzA1ZmQ1Y2U2ZmZhOGJmZWU1YTA0NGMzMmNjIGxlZ2FjeS10cnVuaworNjIzMzMgNDBmZGQ1Y2QyZWY1MWQ2MTY4ZDA3NjI4MjVmMjdmZWNkMmI0YTBjYyBweTNrCis2MjMzNCBmYjA4MTAyNWIyMjMwYmQ3ZDQ4ZjFlMTMzOTRlMDI1YzdlNGQ1YjU2IGxlZ2FjeS10cnVuaworNjIzMzUgNDY4NzllN2ZjNGQzMzU0YmVmMWRkNjA4OWQ0MGEyN2M0Nzg0MzYwMyBweTNrCis2MjMzNiBjNzQ0MjM1MTAzNjE4MDcxZDYwODhiZjNiN2Q0YzUyMjg5ZmJhNzY1IHB5M2sKKzYyMzM3IDcyYTc2NDg2OTlkMDgzODk5ZDIzNjkyZjFiNmU0NTliMTQ3NjIyOGYgcHkzaworNjIzMzggYjNkY2E4ZjU1MzVlYzIyMWY1MGY4YjEzODcwZDg3ZTczMWQ5MmVjYiBsZWdhY3ktdHJ1bmsKKzYyMzM5IDYxNDg3YmU2ZjQ0MjkyZGQzOGQ1Y2ViMjMzNDMwN2RmOTlkNzYwY2EgcHkzaworNjIzNDAgOGRkMjQ3NDFiNmFhZjBiNjI0M2JiNjdjODgwMTMyMjQ4MWJlZTkyNiBsZWdhY3ktdHJ1bmsKKzYyMzQxIDZlNGNhOWY3MmJiYTZkZGIyZDA2ZThkNzgwYTVhYzk4MjhlZmU3MzIgbGVnYWN5LXRydW5rCis2MjM0MiAwZmVkZTRkMWIxNGJhMmE1M2IxMjcyMTlhZmNmMmZlZGEzZGQ1OGZkIHB5M2sKKzYyMzQzIGFkMTcwYTMzNTk2N2JhYjIxN2FkMDNiNTA5ODViZWMwYzBhYjBkMDIgcHkzaworNjIzNDQgNTk3NTNiZGNlMDg5ODQ5Y2UxY2Q3Y2E5YmJlNzhlOGQ4OTFlMDIzMyBweTNrCis2MjM0NSAyNDIwNWIxZjk1NGVmNzVlNjIzMmQ3YjY4NjJhYTc5NDczYmZjYTM4IGxlZ2FjeS10cnVuaworNjIzNDYgOTliZmI4ZGUzNGIxZjZkMDE2MTM2YWViZTA4OGQ3N2U0Y2FmOTFhMCBweTNrCis2MjM0NyBlYWIxNTM5OGVlZjAwYWNiNjllODBiM2VlMTUyZGQxYzExY2RjNjkxIGxlZ2FjeS10cnVuaworNjIzNDggOTFiMDk5YTdmM2UyMmI4M2VhODIwMzRmODRmMmY2ZTZhMjhkNjQwZSBsZWdhY3ktdHJ1bmsKKzYyMzQ5IDk4MWRmMTNhYWIyMDA4YzExNGY0NTE4NTc0ZWZiYmMzODZmZjVkZGIgcHkzaworNjIzNTAgMTg0MWY5MmUzMGRlZjBhNWIzMTI3ZjVhYTFmYjBhMDNkM2U3MmYzNCBsZWdhY3ktdHJ1bmsKKzYyMzUxIGVmMDZlZDgwNDkxOGExYTQwMzIxY2FkZmJkMzM5Yzg5ZGJlZTk4MzAgbGVnYWN5LXRydW5rCis2MjM1MiBjZTU1OTdhZjk5YzdkOTVjYmY1YjE5YWNmNWQwMDczNGFjMjliNjkyIGxlZ2FjeS10cnVuaworNjIzNTMgM2UwOTVhYjc1ZmM4OWFlZDAyZjBjNGQ1Yzc5Y2Y4NzhhNDdlMDY2MiBsZWdhY3ktdHJ1bmsKKzYyMzU0IDE5ZmQ0NjNlYTcyOGU0MGU4NmY2ODc4YmNjMjU1ZjBkMDZkMDk0ZDUgbGVnYWN5LXRydW5rCis2MjM1NSAzOGM4MzFiNDdkYzViYjQzMWNjMDgyZTQ5NTQwM2Q3MzU5NGJjZjVkIGxlZ2FjeS10cnVuaworNjIzNTYgYjA0ZjIwNTJlODEyNjI5NjFkMmIzZDdmN2U1MTUwMTk5MDg2YjA2YiBweTNrCis2MjM1OCBiNzIzMTA2OTAxZTBjZjBmM2M0NDNiMWUxYmVmM2FhOGU3MmQ1MDc1IGxlZ2FjeS10cnVuaworNjIzNTkgOWYzY2ExOTE2MmE3MzhhNjIwYzYwMjc2MWE2MWNiZjAxZDJlYTJmNiBsZWdhY3ktdHJ1bmsKKzYyMzYwIDQ4Mjg5NjQ1Y2RlZjc3ZmZkZWI1NmNiYmIzZWIwYmNiZmI2NjE1YWEgcHkzaworNjIzNjQgMWM5YmE0MDExZjVkZDg1YmRkZWEzY2Y3ODVkODRjNmIzMWE2OWNhZiBsZWdhY3ktdHJ1bmsKKzYyMzY1IDA3ZDdlNWNkYzFhMDEwY2Y5MWEyNDE3MDg5ODA4NzUxNTQ0NTY1MWUgbGVnYWN5LXRydW5rCis2MjM3MCBiYzk2YmFjNTg2YjRjMjFmYzJiMTJlMmJmMmJjY2YwMTY4MzFlZmQ3IGxlZ2FjeS10cnVuaworNjIzNzIgMWZlZjI2Zjg5YmNlYTE4NmE1NDMyMjAyZDlmMGY2ZTc0ZDIxOTdhNSBsZWdhY3ktdHJ1bmsKKzYyMzczIDdjZDM2M2RmN2E4NDZjZDE4MjUwNGFmZGU4MGI1ODg4MzJiNTgyMWYgbGVnYWN5LXRydW5rCis2MjM3NCA1MDI0YjEyYTAzOWQxYzdkZTFhMGIyM2U3OGIxNDdiNDgxOGIwNDA5IGxlZ2FjeS10cnVuaworNjIzNzUgODkxOGM1MWRlMDEwOGFjZWM3MTEzYzY1ODE5YTM5MWM2NDNiMGVkNyBsZWdhY3ktdHJ1bmsKKzYyMzc4IDRmODI2MWI5MmZjNTYwZGVkNDMwNmVhYWVlNjUxY2NhNTZkZTgxYjkgbGVnYWN5LXRydW5rCis2MjM3OSBmYjhkM2UxZjYxNjEyZDQ0ZWZmMTNkYjA2MDEyNzMwMTViMTE0NjA1IGxlZ2FjeS10cnVuaworNjIzODAgNWJjN2IyMGRjMDRhOWQyNDlhODIzMzk0NTc2NDE1ZGE3ZmU4OGE5MCBsZWdhY3ktdHJ1bmsKKzYyMzgxIDVjNDMxNTlmNWFkMGIwNjU5OWI2YjdhMzliZWNjOWViYzAwYzZiY2QgbGVnYWN5LXRydW5rCis2MjM4MiA3NzljYWExZTBmZmIyZTBjODJlMWU3M2NlN2YxNDRkMjljMjNjMjIxIGxlZ2FjeS10cnVuaworNjIzODMgYTE5OTczOTlmODcyNGM0YWEzMzU0NTU4NWQwZWQ3MzE3ZTA5M2JhMyBsZWdhY3ktdHJ1bmsKKzYyMzg0IGI2OWY0NDNlZjQ4MDcxNzljYjExYjZiNTJlYjM2NTMzOTg5OGYyODIgcHkzaworNjIzODUgYmViN2FiY2Q2YzAxYTU0M2RhZGY2ZjgyNThkZmY1ZmI3YmRlMmU2OCBweTNrCis2MjM4NiBlMTY1OTNkYTQ4OTg5YzcwM2RhZTY3MzZhODBmZWQ1OGUyZmEwMGQ0IGxlZ2FjeS10cnVuaworNjIzODcgZTAyOWQ3YzdkZTgxMTQ0MTMzZmU4YTg5OTA1MDlhYzc3ZGI2NGM4NyBsZWdhY3ktdHJ1bmsKKzYyMzg5IDk3YzIxNDE3YWY0MGFkN2IyNzY2N2U1NDI5ODIzMGJlNGZhMGI3MDUgbGVnYWN5LXRydW5rCis2MjM5MCBiMWM3MGM4OWMzZGE2YzM5YzExMzJlZTEzMDZkNjg4NDdiMjcyNDQyIGxlZ2FjeS10cnVuaworNjIzOTEgMzc0ODMzZGU1NzBjMjQxYmUwNjM0ZmUxNGJlNDkyZjUwMmY2Mjk1MCBsZWdhY3ktdHJ1bmsKKzYyMzkyIDEwZGEyNzk4ZTU4ZDgzNjQxY2IwMzIyYzU3ZTAzODgzZTEwN2YyYWQgbGVnYWN5LXRydW5rCis2MjM5MyA0ZjcxODA2MWY0NWE0NDE4N2M1MjBiMmM2MDZiNDZmYWYxYzQxNTZlIGxlZ2FjeS10cnVuaworNjIzOTYgODJkODVhMDU5MjNiZjM5ODQ2YTQ1MTZiMTYwMjBmMGQwZTU3NTBiNyBsZWdhY3ktdHJ1bmsKKzYyMzk3IGQwZmE0NWU2MzdhMDUwMDE5MGNkM2RmYjNlODdlZWRiZDU0ODhmZDQgcHkzaworNjIzOTggYzM2NTljZTg5M2U3ZThiYmViYjkyN2ZiYWZiMDg3Mjc5MDZiOGM5OCBsZWdhY3ktdHJ1bmsKKzYyMzk5IDY0NGE2NzgzMDA2MWJhMzViNGY4YWZmYjhhMmI2NDUyMTJmZTRmMWYgcHkzaworNjI0MDAgNjQ4YjRkMDFjY2NmNTk1NTgxNTU1NjViM2IzYzRmYjlhY2RlYmNjYSBsZWdhY3ktdHJ1bmsKKzYyNDAxIDEwMjM2ZDFkMDg2MDc2N2E0OWE4ZWUxNGIxY2E1Mjk0YjNjOWViZWMgbGVnYWN5LXRydW5rCis2MjQwMiBkYTRhODdkNjNiMGVlMzAwYjIwMWRhMDJmZTE0MGFlMTJmYzhkNThlIGxlZ2FjeS10cnVuaworNjI0MDUgMzg1ZTIxOGQwZjZjNWFlNWIzZmY3Y2M3M2I4MDQzMTc2NTNmYTNiZCBweTNrCis2MjQwNyBmZjU4Y2I1YWE3NmRhNjAwOWNjZDhlMjFlNmEyNjkzZjBmNDM5NmRiIGxlZ2FjeS10cnVuaworNjI0MDkgZjY0MWU1MDVmZmY0NmUxNzY1YTZkMTBmMjM1MDIxMzNjYWQ0MWQ3NCBsZWdhY3ktdHJ1bmsKKzYyNDEwIDM1YmY4MDEyYTM3NmU2M2QxNWE5MTNlNjM4MjllMDdhYmYwMDkwMTEgbGVnYWN5LXRydW5rCis2MjQxMSBkMTY2MjUxZDgwMTQ0OTE2Nzc3NzI5ODllY2VjNjdlNzk2ODNmYTI0IHB5M2sKKzYyNDEyIDMxZmY1OWQ5ODRiZGUyYzhlN2Y4M2ZmNTY3MjBmNjU0MzdhMjAxMDEgbGVnYWN5LXRydW5rCis2MjQxMyA4MGIxNjU5NWU0NjI2Y2M4NGI5Mjc3ZjAwYTcwZDBmY2Q5MmVkOGE4IGxlZ2FjeS10cnVuaworNjI0MTQgYTIwZGVmMDEwMWRlMjY5ZTFhZGFkZDQ5ZTFiZWQwMTAzYzQyMTZhMiBsZWdhY3ktdHJ1bmsKKzYyNDE4IGYzY2YxMmJkMTExMjg0NmQwYWE0MTUxMmQwODliZTMwNzQwZTEwN2EgbGVnYWN5LXRydW5rCis2MjQxOSA3MzczMmQ2NmQwZDVmN2I1NzM1MzI1NmZhZjk3YTllMGJhNzQyNzA3IGxlZ2FjeS10cnVuaworNjI0MjAgYzc4Y2ZlMjEyNmRhMTg0NjEzNjg2YzE2ZTVkNzIwNGRhZDU5MTk1NiBsZWdhY3ktdHJ1bmsKKzYyNDIxIDYwZjQ0NTZmYTMzODNlMDc4M2MxNDE0NTFlMmYzNmI3MDZiMzFlMzQgbGVnYWN5LXRydW5rCis2MjQyMiA2Mzk2NTMyN2IzZWY2NWYxYmM3OWYxOWQxODQxN2M5MjA3OTM5NzIwIHB5M2sKKzYyNDIzIDYzMjNiZGMyZDY3MTFmYmYyYWQ1Y2NkNzFjZmVlYzk0ZWQxYjc3ZWUgbGVnYWN5LXRydW5rCis2MjQyNCAwMjIyOTYwMzJkOGY2OTY0YTBmZDVjMjEzNjZlNzlkMWRjZGNiMjBiIGxlZ2FjeS10cnVuaworNjI0MjUgZmRkNWEwMTk4NzY5ZDMwNzVhOTM2ZThlODNhNzIxMmM5Y2M2M2ZjMyBsZWdhY3ktdHJ1bmsKKzYyNDI2IDA1MmZkOGYxY2EzNzFjNjg3MzM4MTAxZTY1OTg0NWNhYjhjYWU2ZjQgbGVnYWN5LXRydW5rCis2MjQyNyA0MDZlY2EyZGRiYmM0Zjg5ZjZmYWFjM2IzNDQ3ZDI3YWQzODljMGE5IGxlZ2FjeS10cnVuaworNjI0MjggZGYxM2NjYWE1YWU5N2MwMWQ4Njc5NzU0ODg1MTlkZDg4NDA2MDJjZSBsZWdhY3ktdHJ1bmsKKzYyNDI5IDYwNzc2MDYzMzliYjlmZDAyMjA5OTcwZWFkZWU4NmE2NGNlODM1MjggbGVnYWN5LXRydW5rCis2MjQzMCBkM2FmOWZkMWNmYWZmNjc2ODY1ZWI4YzZhNDU1N2EzYWQ4ZDJjOGI1IHB5M2sKKzYyNDMxIGQwYjhhOTBjYTI3MDlmNWZlOTNiMDg4YTk4NDkyZjJmYmQ2ZGRiODMgbGVnYWN5LXRydW5rCis2MjQzMiBiYjBmNThhZGM5MWNlMDcyMGYwOTM2ZDU5Y2ViZTNhYTFkMDk1YzIyIHB5M2sKKzYyNDMzIGVjNDg0OTBiOTY5YWJkZWIzOGIwNmUyNDk5MmQxMWU2NWYxZDRlYWMgcHkzaworNjI0MzQgMzg3NDljMDljNTU2MzUwMWQwNTExOGZmZDM1MWJhY2Q3MzJiMjljMyBsZWdhY3ktdHJ1bmsKKzYyNDM1IGFlNTU0ZTVkNmUwNmRiMzBmYTU2OTNhYmM3YmI0ZDk3MzQzMDEzMjQgbGVnYWN5LXRydW5rCis2MjQzNiBmNTE5NTNjY2U2YWIxOWM2MzIzNjA3NGJjNGEyODM5M2VlNWIyYTIwIGxlZ2FjeS10cnVuaworNjI0MzcgOThlMDcyZjIyYzRmM2Q2MjhmMTE2NDhjMGI3M2U0OTM4MGMzNTNkZCBweTNrCis2MjQ0MSAxYWNkMDBmMmEzODA3Y2JhNjAxZDg1Yjc4OWJlNWZlMmNkMWI0NjMxIGxlZ2FjeS10cnVuaworNjI0NDQgYjdkZjMwYWM1YjVhMjYwODg3NWYxNDM1OTc4MjljZDAzNDE0ZjAwMyBsZWdhY3ktdHJ1bmsKKzYyNDQ2IDA0OTI4NDcwYWQ4NjA5YTk4NDczZDIxMmRhYjg5YWFmYWRmNDI4NDYgbGVnYWN5LXRydW5rCis2MjQ0NyBiYWUyZjRmZWVmY2NjYWNhYWRhMTU5ZDBhMjk2OTVmMWY2ZTAwMTVlIGxlZ2FjeS10cnVuaworNjI0NDggYzQ0YjhjYTNmNGQyOTU4Y2E4NmJmMjNiYTcyN2QwYjVmOWMzZmZhMCBsZWdhY3ktdHJ1bmsKKzYyNDQ5IGIxMjU4MzY0MzEyOGVhY2Y4NTQ3NDg3YTM1MzNiMzM5ZDBjM2YyMzAgcmVsZWFzZTI1LW1haW50Cis2MjQ1MCA0MzRiY2NlY2E3ZGYwODkwZTQyZTJjNzYyYjExODA5YWI4MTRmMTBmIGxlZ2FjeS10cnVuaworNjI0NTEgMTA4ZmU1N2I5YTY4ZTFlOTc4ZjhkZmE3NjE5OWFiMmMwNGI4MGRlZCBsZWdhY3ktdHJ1bmsKKzYyNDUyIDJmMDA2NTQ0ODg4M2FiYzU5ZjVhMmZmZTU5MjQ0NzdjYTk4OGU1M2QgbGVnYWN5LXRydW5rCis2MjQ1MyAwOTQxZDc5ZWE3ZDZlZmI2M2UwZGQyNTc3YzUyYWNjZWFkZjdlODM3IGxlZ2FjeS10cnVuaworNjI0NTQgODhhOGRlZjU4MDA3NzdhZTFkNzdlMGIyMzRhMzc5YjQ2N2YyMzRjYiBsZWdhY3ktdHJ1bmsKKzYyNDU1IDY0MmQ1NzEyMDkzYjgwYjA4ZTRiZDIwOGZhYWU4ZjJiMTkwNDg0NTYgbGVnYWN5LXRydW5rCis2MjQ1NiA2NmI3OTkzMDY4YmRhMzFlZTcyMzkxMmNjYjYzZjc4NjI4M2Q5ODcyIHRsZWUtYXN0LW9wdGltaXplCis2MjQ1NyBmYjNjYjA0MTk1ZTBmODIyYjA3M2RmNzU1Y2FiY2Q2OTJkNDgxYmU2IHRsZWUtYXN0LW9wdGltaXplCis2MjQ1OCAxNDQwM2E1NDI1OGZjNGU4OTU5NWY2YzNkZTFhYWMxODAyMGU5YWQxIHRsZWUtYXN0LW9wdGltaXplCis2MjQ1OSAwYzU4MjRiMDAyNjMzYmE0NjE1ODAzMjYyNzVlNGQzYjljNDZiOGJkIHRsZWUtYXN0LW9wdGltaXplCis2MjQ2MCBkN2ZlZmIzNWU5OTNmZmM5NDc0MmIwOWQ5YTdlODc2MzFlN2IwMGUxIHRsZWUtYXN0LW9wdGltaXplCis2MjQ2MiBjMGNkYWNmMDdmNTQwZDkyYzhlYzAzZGIyOThkOTliZWMyYmU5YTdkIHB5M2sKKzYyNDYzIGZlZDcyZmE5NjdiZjVhNGEzMWQ2NzI2YTA4ZmE4NDVmMzM0ZjNkZjMgbGVnYWN5LXRydW5rCis2MjQ2NCBhNzQ2NTQzNTIzNjZlZjM4NGY4MTE4MzI0MTU0MDRiYjU4NDY4OTcyIHJlbGVhc2UyNS1tYWludAorNjI0NjUgOThkY2FkOTA5MmE4ODllZjQ3YTkxNGYzZDU5MjQ0ZGZhNjJlYTIzNyBsZWdhY3ktdHJ1bmsKKzYyNDY2IGM5ZGU2NzA1YmQxMTI5NzVhNWEyYWIyNGE5Yjg5ZTM4ZWVkOGMzMTEgbGVnYWN5LXRydW5rCis2MjQ2NyAyZTFlYTYxYzk0Y2M3ZjE3MjhlODllMmFiZjNmMTdjNzhiY2E1OTJlIHRsZWUtYXN0LW9wdGltaXplCis2MjQ2OCBlZDI2N2M2OTg5YjZjY2I0NmM1NTg4Y2FhNzUyNzI2OTcyOTkwN2VjIHRsZWUtYXN0LW9wdGltaXplCis2MjQ2OSAzYzZhMjVlNGRiYjVmMGY5NjNiYjFhNjk4OGNmYTJjNTIyZjZiNzk2IGxlZ2FjeS10cnVuaworNjI0NzEgMDdjZjI4NDgwYWQxZWM4MzYyYWM1MDJkOTlkMGQxMGUzNzE4NmE2ZSBweTNrCis2MjQ3MiAzZTliNGZhOTNlNWM0MjkxYzZmMjg1YmUwYmQxZTcwNGUxMTZiZDRmIHB5M2sKKzYyNDc0IDYyMWEyZWFjYzI3YzQ4OTkzYzYyMjgzZDBhYzYzZTcwZmVhMWQ3MmQgbGVnYWN5LXRydW5rCis2MjQ3NiA1ZTYzNmM5ZDYxYWU1NzVjZDZhNDVlODE1MzQ0NDczM2NkODE1YWY0IGxlZ2FjeS10cnVuaworNjI0NzcgYTAyMjU2MDBiZmYxNDk2ODhhNWIwZTJiNTJmNzlmNTQzMTU2ZTUzZiBsZWdhY3ktdHJ1bmsKKzYyNDc4IDNlOGEwM2E2NDk3ZTE3MTQxZDNkNmJiZjE2NDY5MTVhZWU2MWU4OTIgbGVnYWN5LXRydW5rCis2MjQ4MCA0NTkwODNjNmJlMTUzZWJiNWZkYTZhMDM2ZmNiNmViYzQ1NzA4OTkwIGxlZ2FjeS10cnVuaworNjI0ODEgNGZmOGRmYWVjM2ZjNmRiOTQzYzc5Y2U2M2NiNGY0ZjhhYjcyZmQ2YSBsZWdhY3ktdHJ1bmsKKzYyNDgyIGE1MWIzMjkyNDViMTQ0ZGFiZjhhZDgxM2RhNjk0YWMyMTU5ZmE2MDQgcHkzaworNjI0ODMgODVkNDY3MTU2NWM4NzQ5Y2Q1YmZkMzhiNWNlZDY4YjdmMGI1Y2JjNSBweTNrCis2MjQ4NCA5MGUyMTQ2Y2I4YTMwOGEzMDEyZTczODAxNTdjYWMxMTgyOTRhYTM1IHB5M2sKKzYyNDg1IDk1OTQ3ZmRmNDBhZTQ4YWVkMGZlZmEzOGQ0YWZhNGUwZGU4MjUyZmUgbGVnYWN5LXRydW5rCis2MjQ4NiBkMWZiNDlhZWM3NjUxMDQ0YzllODBlNjIwMGM0NDA1ODNiYjU0YmZlIGxlZ2FjeS10cnVuaworNjI0ODcgODg2NGRmYTk5Yzc2MDJjZThmMjk5MWFhNTVhNTA1MjBkNTgxYzEzOSBsZWdhY3ktdHJ1bmsKKzYyNDg4IDM1MTE5YjAzNjg2ZDJkNDlmMzFjNDQyMzM4YjE5Y2QwODFhOTcxODYgcHkzaworNjI0ODkgMWNmM2IzNGRmNmM2MGVjMGQwNDA4MTg3YTY2ODEyZjBkMjhkODkzYSBweTNrCis2MjQ5MCA2NmM4YmQxYmVkZjMyMzJkZjBlNGEyZDJiOWYwMGUxM2M4NGQwNjUzIGxlZ2FjeS10cnVuaworNjI0OTEgOGI3MThmYzE1ZjNkNmI1MjMxNjJhZDJlODA1ZjQyMWMyYTA1MzlkYiBweTNrCis2MjQ5MiA1YmE2Y2JiY2FlZTczNjQ1M2M5YWJlMWI5YTA5Y2M4YmMyZDQ4NjA3IGxlZ2FjeS10cnVuaworNjI0OTcgMDRiZDc2ZTkyMDY1NDMyZmUzZjk3ZjMzNDkyODFlNTczYzkxZGVlYiBsZWdhY3ktdHJ1bmsKKzYyNDk4IDY4OTg2MzU1MjM4MDczMWZmNDdiYTkzMmJkMjgyNjUxMmNiMGYyMzcgbGVnYWN5LXRydW5rCis2MjQ5OSBjZTYyMGNjOWE2YTg2OTQ5ZDIzZDg1YjJjOTUwODJiNjRmMTNhNmU5IGxlZ2FjeS10cnVuaworNjI1MDAgOWUwNWYxNWY5MjFiMDEwY2RmNTA5Y2QwNGNmNzVjOWViYjQ2YTcxNiBsZWdhY3ktdHJ1bmsKKzYyNTA0IDBjN2NhNDcxZmI4ZDc3OGJjYjM1N2I5MWRjYjI1NTNkZjNjYmNmNzggcmVsZWFzZTI1LW1haW50Cis2MjUwNSBjNzM4MjgwNjIwMzEzMGJhNDExMzQ0NTM4MDc5MjNmMmE3N2U1YmE3IHB5M2sKKzYyNTA2IDJhMzFiYzI4YzEwZmZmMGFkODM2MzNkNjZmZjNiNzFjNWU2MGJjYjcgcHkzaworNjI1MDcgMGUxMTg1YmZhMzEzNGNkMjQwMWU1MDk2MDY1ZjA0ZmQxMzk3ODA3ZiBsZWdhY3ktdHJ1bmsKKzYyNTA4IDBjZmM4NDViODUyZDgyNGExZGU5ZTNmMGUwZjg1YTFjNjZiYTNiZTkgdGxlZS1hc3Qtb3B0aW1pemUKKzYyNTExIDUyMzgzMjdmNDViZDQwNDJjNzZiNWQ0YjhjZGNjYWY4ZGZmOTQxMTUgbGVnYWN5LXRydW5rCis2MjUxMiBmZmVlY2JlYmYzY2E3Y2U3NmIwZjg4YTVkNzYwMDkyZmRmY2YzYjMzIHB5M2sKKzYyNTEzIGViMjc0NmU4Yjk4MzMwZGUxYjEwMmYxZmFmMTM4NTNiOTVlZmRhYzggbGVnYWN5LXRydW5rCis2MjUxNCBhZDM0MTc1MDM2MzZjZjdlZTU3MTA5MmIzYmZiZWFjNDQ4ZDg5MzY5IGxlZ2FjeS10cnVuaworNjI1MTUgMzYxZDc3NmQzODBlYjk0MjczYzRmNDNlZjU5NWNhNmI3NTQwOTliZSBweTNrCis2MjUxNiA0NzIzM2ExN2U5NzA3OTc0ZWFlZjQ4ODM0YzAxZDMyNjU4MWJiOTc5IGxlZ2FjeS10cnVuaworNjI1MTcgZDU4ZWMzOGU2ZGIxYTk1OGIyOGE1M2ZmY2ZjMzJhMDFlOWJiMzU1MSBsZWdhY3ktdHJ1bmsKKzYyNTE4IGFlZjM1MDFkOGU3NzZlNjkwNzg0MmQwNDIwOTUxYWEyY2I4M2UxM2QgbGVnYWN5LXRydW5rCis2MjUxOSAwNmU2N2NiMjIxNTgwODZhMDRiOTQzNGUwNzA2ODdlZDdhMjY5OTVkIHB5M2sKKzYyNTIxIGRhZDg4Y2I2ZWYxZmRkNTk1M2JlOTZiZjgxNzMyMGE1NjQzZGRiZjUgbGVnYWN5LXRydW5rCis2MjUyMyBlZGIzYzNkNjYwMDY3ZWFlNTkyODIwMzI2YmI3MGI0NjlmNzg4Mjk1IHRsZWUtYXN0LW9wdGltaXplCis2MjUyNSBjNTg5NWI5ODFkOGYwZjRkYmIwY2JjN2NjMjRkNjRjYjc5ZDNhOThmIHRsZWUtYXN0LW9wdGltaXplCis2MjUzMSA2YjdjOTFkOWRjNTExYmYxNThiMTVjOTg0MjIzZmI2YTczNjY1ZjAyIGxlZ2FjeS10cnVuaworNjI1MzUgZjM2NWEwMThhZjViNjk0Njk1MDY3MjU4MTUyNDY1ZjVlMmJkZGMzMSBsZWdhY3ktdHJ1bmsKKzYyNTM2IDc2NzAwMDVkYThjNTY4YmViM2JlNDYxNGQxN2E0ZmI4OTI0ZGRiMTQgbGVnYWN5LXRydW5rCis2MjUzNyBkN2Q1NjcyZjVkNWUwNTBiYmMzZGU2ZWEwZjZmNjA2MTM4YTVkM2U3IHB5M2sKKzYyNTQwIDA2YWE4MDJiZmNiMThjNWIwMTllMmY2NTE0MzkxYjY1NDg0NTE3NTAgbGVnYWN5LXRydW5rCis2MjU0NSAzZDlkZGNlMmRhODUyMDQ3NzBjYWI3NTdmOWZhMzI2NDcyMzZjNTE2IGxlZ2FjeS10cnVuaworNjI1NDYgZWJjNDBlNTAwODY5OGE1NmQxNzEzNGI4NDU2NGQyMzE3NmI1MzI1NCBsZWdhY3ktdHJ1bmsKKzYyNTQ4IDE4ZTlhMzcyYTdhM2EwY2M3OTUwZjAxMjY3OTViOGE4OGU0NDg2YzggbGVnYWN5LXRydW5rCis2MjU0OSA4NGRmMDgyZGQyMTY3ODM1ODE1OGExZGNkMDVmOWI2ZGVlY2VhMWIwIGxlZ2FjeS10cnVuaworNjI1NTAgNTlkYjU3NWFlMzc0NjI1NjVmNDdkNmE0NWEyNTAzMzU1YTBhMzUxZiBsZWdhY3ktdHJ1bmsKKzYyNTUxIGM1ZGMwNWNkMzg1ODliYzMwYTdiZGZjYTZlZGFkY2QzN2I2ZDE3M2UgbGVnYWN5LXRydW5rCis2MjU1MyA1NzZmYTI0NDBhMGM4ZDhmODg5ZDNhZmE1NzZmZjA3NWI3NDYyYjA0IGxlZ2FjeS10cnVuaworNjI1NTQgZDJiYjVmMTMxODczOGIwMDY0NzVmYTdkZjEzYmM4M2E1NmVhOTIyYyBsZWdhY3ktdHJ1bmsKKzYyNTU1IDA3YTRlMTcxMDI2Mjk5Y2YyN2E4ZjBhMjM0ZDlhNTFjN2E4ZGJkMDIgbGVnYWN5LXRydW5rCis2MjU1NiBhNTE3ZWNjYzc4M2I5ZTBjODFhMDRlOTgwNzk5ZGRkMGVkZDE4ZGE2IGxlZ2FjeS10cnVuaworNjI1NTcgMWVhNGQxYjE4YWVkNThkNGI1YjNkYThkMDcwNTI4NGE0M2RlYzAzYyBsZWdhY3ktdHJ1bmsKKzYyNTU4IDRlNDc1NDhlZGQzNjZkMmIxMTZiZjNmMWJkZGZhOTFhMDRmNTIzNGIgbGVnYWN5LXRydW5rCis2MjU1OSBmZWY2ZDZiYTc4YTQwMTdhOGQwN2ZlMzQ5NzRjMzhjMzYwZjkxZDdiIGxlZ2FjeS10cnVuaworNjI1NjggYzM0ZjBlNjA5ZmE2YWU0MzBkZDFjNmQzNjQxZTM1NjhiNDk3NGU3NiBweTNrCis2MjU2OSA4ZDNhZDhhZjY5MmI1YTM0ZWZmYzgxMzc0MDc4NWExMDc3YjExZWNmIGxlZ2FjeS10cnVuaworNjI1NzQgNmZlYWQ0Y2Y3OTExMWRiMGZkZmNjN2JmMzRmMmFjM2Y3YzYwYjdlOCBsZWdhY3ktdHJ1bmsKKzYyNTc3IDdmNjBiMzM3YjA0OTJkNGZlN2UxN2I4OWI3MWYzMDZhNjIyMDVlNzMgbGVnYWN5LXRydW5rCis2MjU4MCAwMTU0ZGYyNTBlZjZiNTA5NGE1NWVmMjBkNWEzZjFjYzNmY2Y3ZGU2IHB5M2sKKzYyNTgzIGU0MmQzOTc3OGVhZDljY2I0NTg3NWJiMzZmMzhmZDBkYWM3NjQ4MzkgcHkzaworNjI1ODYgMzdkNjQ1YjAxNTIzMTZlNDFiMTE4NDAyOWQzNmJhNmVmNmIzYmIwMCBsZWdhY3ktdHJ1bmsKKzYyNTg3IDdiNDA4MWJlYzc4Mzc4OWY4NjcwNzdjYTc2YTg5YWNjN2VhYjk3YmEgcHkzaworNjI1ODkgY2JhMjgxYjE2YTgyNDVlMTU2ZmMxZjliMzgxM2I3YjQ4OTgyYjZkNyBweTNrLWN0eXBlcy1wZXAzMTE4Cis2MjU5MCBlZjQyMWEzNjVhMWQ0YzcwMzEyMWU3YzUxYjgxOWUwNTY3NDM1NmUwIHB5M2stY3R5cGVzLXBlcDMxMTgKKzYyNTkyIGQ2YzZmMzY2YjIyMDYyZmQzZGVmMmI0MmMxZjE1NDcxN2FjYzE2NDYgcHkzaworNjI1OTMgOGY1Yzc1OWUwMTljNjZjYmQwYTM0NTc5ZTdkNjhlMDA3MjY1N2Y0YyBsZWdhY3ktdHJ1bmsKKzYyNTk1IDNkMGQzYTY4MDg5NmNkY2U3Njc5MTYxZDQyMWNiMjFmYzgzMWQ0NTEgbGVnYWN5LXRydW5rCis2MjU5NyA5NDhiZWE5NmRkMjAxYjMyMGI2YThlYmI3ZmIwNjRmMDhiM2Q3NDQxIHB5M2sKKzYyNTk4IGFmMGVmMDQ0MDFiYjJlNzliNjRmOTI5NTk5MjY4ZjVhNmZmOTJiMzAgcHkzaworNjI1OTkgN2E2ZDc0NzRjZTZlMDhiMDdjYjZhNTNhZDhmNzNlY2I3MzAxNTA3ZSBsZWdhY3ktdHJ1bmsKKzYyNjAwIGIxMDE1NTZiOThlYWU2MDk5ZTk2ZGEzM2FiYThlYmY5NzQzYWQyMWQgcHkzaworNjI2MDIgMDFiZTFjOGYwMDZiZGQ1NjM3MWFiMDg5NTRkOTA5YWUyMzVhMTUxNCBsZWdhY3ktdHJ1bmsKKzYyNjAzIDAxNDUzNTcxOTY2ODg1YzNmNGY3ZWQ2NzNiYTFhZGNhMWRmNDViYTUgcHkzaworNjI2MDQgMzAzNmUyMWFjNjYxZGRhMDEzZTY3NzcyZDlhMzlkOTdhMDI4NjAxNCBsZWdhY3ktdHJ1bmsKKzYyNjA1IDE0MjM4MzRiNzJkOGQ4ZDI2ZTE3MzNiODc3NmMxMzJmMmZiYTYyMzMgbGVnYWN5LXRydW5rCis2MjYwNiA2OGNmYzUxZTQzMzFlZmUxYjc3ZWJiNWI1MTE4YTkyZjc0NzYxMWFmIGxlZ2FjeS10cnVuaworNjI2MDggNjVhY2M1NWYxYTY5MGZhNDA2ZjcwZDc2ZjczNmI5MDIyMzQ5Mzg0NiBsZWdhY3ktdHJ1bmsKKzYyNjEwIGE0MGQ3ZTYwNWY5ZTExN2E2NjE3OGZmNDdhOTdhYzJiNWM4ZDZkNjQgcHkzaworNjI2MTEgM2YyMTE3ZDMyNzFmN2MwZjYwZDQ1ZDcxMmFhMzg5Y2YzOTMxY2VhMyBweTNrCis2MjYxMiBlNDJmZTE5YmE2ZmRmMzdlOGYyNmZhOThkMzM0NGEyYmZkM2Q1MzA5IHB5M2sKKzYyNjE1IDg3ZDMxMzdjMzFkNDM2MTAyZGY3NmQwY2EzMmEzY2U5YTUyMzE0NzEgcHkzaworNjI2MTYgMzMxNWY2YjQ0NDAzMGI4Nzg3YmNlYTQzZDY2NTA2YzQ5OTgyNWUyMiBsZWdhY3ktdHJ1bmsKKzYyNjIwIDU2ZjgxZWE5Y2I3OTUwZDRlNjJkNWU3OTc5ZTZmOTE4Yjg5ODI4MzggcHkzaworNjI2MjQgODBiZDRiYWE2Mzk4MTkyMDM2NWE3MjU0NTczMzc0NDA5ZTQ5NjQ1ZiBweTNrCis2MjYyNiBlYTFhOWNmNzM1YTU2OTQ1NDMzNjhkODQxN2M1MjE5OGE3N2E4MDA5IGxlZ2FjeS10cnVuaworNjI2MjcgNTQ2MDZlYTlmNGM3YjkzMzg0MmViZDcwZDA1MGRjM2UzY2RhMGE0ZCBsZWdhY3ktdHJ1bmsKKzYyNjM2IDBiYTEyYzMyZTJiNTY5NTkwMDg1ZTIwMTBjOWVlMmVkMGE2MDQ2ZTQgbGVnYWN5LXRydW5rCis2MjYzOCBjNGQ5MGZhOTM1ZWFhNDEzMDVmMTk0MWI1NGZmYmI1ZTA0YWM3OGY0IGxlZ2FjeS10cnVuaworNjI2NDQgYTFjNmYyYWI1OTdlMDM3OTYyMTQ1YWIwOGRkMjE1YzZmYzBkY2I1ZCBsZWdhY3ktdHJ1bmsKKzYyNjQ1IDIwYjcwNzg2NjQ1OWFkYTc0YTA2MzkwOGI4YmNhZDk2YmRkZjBkNGYgbGVnYWN5LXRydW5rCis2MjY0NyAxZmZlYzJhNjg3ZTk1OTZmNDhhYmFhMzhmMzAzNGM5ZWM2NzMxYjk5IGxlZ2FjeS10cnVuaworNjI2NDggM2Y4NGU2YWUzNmRhZDI5ZTA5MGE0YjQ3NDZhMDNiZDQ4Y2IyNjY3ZSBsZWdhY3ktdHJ1bmsKKzYyNjQ5IGI1NWM1NTY3Y2M3NjczM2Y0MWRjMTE5NmViNTU1MWY1ZWU5ZGJkMTAgcmVsZWFzZTI1LW1haW50Cis2MjY1MCBlYjlkYWI5NTZhNmViOGI4MGU1YWQ0YWZkYzIzMzg2M2UxZDZkOWE0IHJlbGVhc2UyNS1tYWludAorNjI2NTEgODA2MzU0ODllOGQ4MzE0NGI0YzA5ZDdmOTQ0ZDI0MmU0NzFjMjU1YSBsZWdhY3ktdHJ1bmsKKzYyNjUyIDZkOTQ5NzU5N2M0ZjNmZWZiNGMxOGE2YzUxM2I3NzI5MjVjMmI0ODYgbGVnYWN5LXRydW5rCis2MjY1MyBjYzY2MDI5ZDJlZmU1OTM5YWJjMjY0NDk0MTU1N2JjM2JlODcyMmQ3IGxlZ2FjeS10cnVuaworNjI2NTQgZmQyN2FjNWZjYzgxODA4ZTlhZmQ5MWU2YWQ3NjZiM2RkZTY4MWFkZSBweTNrCis2MjY1NSAwMzJhMGEwZDNmYTk2MDZjZmUxODcxZDliZmY2YTIxMmU2YWRiYzU0IHB5M2sKKzYyNjU2IGE4NTlmODM1ZWY1M2RhOGEyNjFmNzI4MDE3MTcyZWRmODVhZDAxOTkgbGVnYWN5LXRydW5rCis2MjY1NyAwZmRlZjE0OTgxYThlM2JiMGExYzJkMDQ4N2Y1MmM3YjNiNzVhNWU1IHB5M2sKKzYyNjU4IGJkOTEwMDBjOGU3M2RjNzc2YWY4YjZjNjc0ZGYyYzhhOWRmNzVmNzMgcHkzaworNjI2NTkgM2Q0Mzc3NTIxNzBiNTJkYzA0MTc4MTE5Mzg3NmNlMGU0ZGIxYWE2ZSByZWxlYXNlMjUtbWFpbnQKKzYyNjYxIGJmYTgyYjQ5MzMzNTQwOTcxZTY4OWY0ZmQyNzlmYTIzMjE3OTAwYjUgbGVnYWN5LXRydW5rCis2MjY2MyAwZGViNGFiMDQyNmUyODdkOTZlMDhjMDIzOTU1YTQ4Mjk5NjI3NDQ0IGxlZ2FjeS10cnVuaworNjI2NjYgZWMwOWFkNWJlZDFhY2NhMTBjMmNkNjFmZDRiYmJhZjkxYWY2MjFmNiBsZWdhY3ktdHJ1bmsKKzYyNjY3IGVhNTk0MzA2ZWE4NTQyYjk4YmUwNjg2MzdiMDcxMmE3ODMyYTE3MjEgcHkzaworNjI2NjggNjhiMWQ0NGI1Zjc0YTc5ZjAzNjAyNTdkM2RjODc2MTUxMWI2YWQ0NCBweTNrCis2MjY2OSBlYTMwZjAzYjI0ZjQxZjgyMTUzN2I2ZjNjMmRiMGEwNGMwMGVlNTBjIHB5M2sKKzYyNjcxIDk0MThkYzRhN2I5ODVkNWNmYmJkY2I5ZDE1Y2JiODgwMjA2NWVhNzAgbGVnYWN5LXRydW5rCis2MjY3OSA1YmI5NDA2NWIwNzk5OWNlMmUzNDc5NjU5ZTdlMzcwNjE2ZjcwYWMyIHB5M2sKKzYyNjgwIDgzY2MwOTY4MjA4MWRjMDQ5M2U5MjIzYjg1MjcxMmZmYzhhNmU5MzIgbGVnYWN5LXRydW5rCis2MjY4MyAzMzkwZWI3NTkxZjYxMjhiM2ZkNjY0ODg2NzI0ZjcxOTI5YzgwMDY2IHB5M2sKKzYyNjg0IGM5N2UzNmFiY2RkNTk1NmY1YjM3ODFkYzY5MzNmZjMwZDc1YzA1YWYgbGVnYWN5LXRydW5rCis2MjY4NSBhY2IyYTkzOTQyOTZhNDU3NTE0NDE2MWEzMzVmODU4ZWIyNGE5YWI3IHB5M2sKKzYyNjg2IDE4NzJlMWRjMDM1ZmMzMjliOWU4Yjk5ZjIzYzNmMDdlYjA0ZmRlN2QgbGVnYWN5LXRydW5rCis2MjY4NyBiN2M2NmQzZTJlMjhkYjAyZDZjYzdhNzc4ZWJkNjczY2IyY2Q2MWUyIGxlZ2FjeS10cnVuaworNjI2OTYgYTk0YjlkYjkyMjNmY2QyMGQwNDkwZTU3NWQzZjQxNWUzNzc0N2M0MyBsZWdhY3ktdHJ1bmsKKzYyNjk4IGFhYTBhYjQ5MDEyNmUwMmYxODQwNTVjZmMyODA0N2QwNzNiMzZjMzcgdGxlZS1hc3Qtb3B0aW1pemUKKzYyNjk5IGRlNzZiZTAyZGI0MjViM2U2YTRmNjBiNzFmODYxOWZlYmE5YmJjOGUgbGVnYWN5LXRydW5rCis2MjcwMCA2ZGIzOTJhYzlmNGViMTQyYjRiN2RlNzQ2NGY0MWVkZjQ2MTAzMjgwIGxlZ2FjeS10cnVuaworNjI3MDEgYjkzYTA0MWNjMjIxM2U1ODlkNDJhNGU0YTc3MjJkYTRlYWFmZGIxOSBsZWdhY3ktdHJ1bmsKKzYyNzAyIDI4YjA5OWFjNGNkOGY3YjhjNzUxZTZkNDM0YmQ0Y2YzODIyNzNiMzYgbGVnYWN5LXRydW5rCis2MjcwMyA2YzRlZmU1MmQ1OTRkM2ZmNGZhMDFmYWJkMjg3Njk4MWRkNTFhZjAzIGxlZ2FjeS10cnVuaworNjI3MDYgYzA3ZjE5YWY1NTRhOWY2MzBkN2ViZmMxOTUwMmQ5ZjY0YWJkMWUzMyB0bGVlLWFzdC1vcHRpbWl6ZQorNjI3MDcgMmU0NjM0NDJlNTcwNjA0Yzk1ZGE4Y2I0M2Y2OTk5NzA0OTA0NmEwYyB0bGVlLWFzdC1vcHRpbWl6ZQorNjI3MTEgZmUzMDBhOTcyZmI4ZGYyODc1MDQ3NTY5NThkMDI5YjVhZWY4ZTg2MyBsZWdhY3ktdHJ1bmsKKzYyNzEzIDcxNzJlMTFlOWZjOGM2NzZkY2Y2M2ZmZDk5NTVmNWQyMDI1OTliNWEgbGVnYWN5LXRydW5rCis2MjcxNSA2NDM0MTVmOTFhNTBjOTJmZjkzNTc4OTkyZmE4YTY4NTE5ZDdlOTBkIGxlZ2FjeS10cnVuaworNjI3MTYgMDMxZGZlNDU1NTg1Y2NkZDA3ODk3YjhlNmQwMDRmNzljYTQyNjc5YSBweTNrCis2MjcxNyBjN2MyNWNjOTk2M2RkMzMyNzgzOGE1Mzk1NWVhODlmMjQyZWQ1Mzc3IHB5M2sKKzYyNzE4IDA1YTgxN2UyNWYyMGQ0MmNjNzBhYTZiZTZjZDc0NjUyZDJlMzc1YTMgcHkzaworNjI3MjAgZDkwNzFmYTgyNDRhZjM0MzM2NjlhN2M3MDkwZTZhNTc2NjA3YWViZiBsZWdhY3ktdHJ1bmsKKzYyNzIxIDhhOWI4YjNjZTJlMTIyMjUwMzcxMTBjMDY5NWRhMDE0MTdjODFhNWYgcHkzaworNjI3MjIgOWIxMGJmNjRmMTI0MzIxNmI2MzA3MTFjNWE4MjhjMzljMDg1ODA0YSBsZWdhY3ktdHJ1bmsKKzYyNzIzIDRjOTBiZThhNGQzODI3ZGU0YTQzMjVhNGRmYTlmMTQ4ZTJjZjE3M2MgcHkzaworNjI3MjQgOGUzM2YzMTZjZTE0MGRhOTc1ODYzZWE0ZTk1ZGNkOGEwYjU0MjFmZSBsZWdhY3ktdHJ1bmsKKzYyNzI1IDE1ZjFkMjMyZWFlOTEzODU3YjgyNGU4NzFhMWQzZTk3NjJkYmUyZGMgcHkzaworNjI3MjYgMTBlOGVmOTViMTFmOWRiNjE4NGU1NTQwOTFmYjhlZjUzOTcxZmNjMSBsZWdhY3ktdHJ1bmsKKzYyNzI3IDg2ZjczODM4YTRiYjcxNTAxZjAzOGUzOTQ0YzVlYTczNjliODg1OTggcHkzaworNjI3MjggNTViZjhkNjkwZTY3YWY0NjBiY2E4ZTVlNTNhNDY1NzRiMjg5Yjc3YSBsZWdhY3ktdHJ1bmsKKzYyNzM0IDRkZWQzNTc1NGNiNzIxZjQ5NjEyMjA4YTBlYjg4NTE5MDFmYWRkMzAgbGVnYWN5LXRydW5rCis2MjczNiAzNGE1MzgwZWUyNzVhZTBjYTE3MTcxNWE2N2ZmYWUwZmUwNWFkMmZmIGxlZ2FjeS10cnVuaworNjI3MzcgODhhMDk4MDRiYmEzOTQzMTVmZThhMzUzYjQwNzA1Y2U3N2Y5YzgzYiBsZWdhY3ktdHJ1bmsKKzYyNzM4IGI3NGEzZjk0NmE1ZTY3ODEyZTliMDJmNDkyMzgwMjgwZDEwMGY5N2EgcHkzaworNjI3MzkgZGFjMjE4NDNjZjUzNTE0YzU3Zjg0ZTk5ZmZiYjgzZGRlZTZmM2Q3MiBweTNrCis2Mjc0MCBlMTlmODdhOTg3OGMyODhkM2U4YzllMmQ4MTAzNzdjMTM2NjFjODA4IGxlZ2FjeS10cnVuaworNjI3NDEgOTFkNWYwODQxNzAwMDY4MTkyNjViMWQxMmEwZTI2ZTYzZDBkMDQ5MCBweTNrCis2Mjc0MiBmMmE0ZDhkNGYwNjM0Y2RiMmM2OThmNWVhNzQ3NzdkY2Y4YWM3MDg3IHB5M2sKKzYyNzQ0IDI3MjllOTc3ZmRkOWVhN2UzZWRhYzUzMzFiNjhmM2Y3ODI2MWI1NTUgbGVnYWN5LXRydW5rCis2Mjc0OCA3MTA2Y2E4NzFiZmQxYjY3NWNmNmViYzIxY2FjMDAwOTUyNDYyYjczIGxlZ2FjeS10cnVuaworNjI3NDkgMmYzNTFmYTUzYTZiM2YwZWFmZTg4ODZiOTRlMGRkNzM2OGE0NWU0NiBsZWdhY3ktdHJ1bmsKKzYyNzU2IDVhZThkNTRkMDk1MjhmNjU1NjE4MWQ1ZWJmYWFjNzExNzdmMjAyZWUgbGVnYWN5LXRydW5rCis2Mjc1NyAxMWVkNDA1ZDk5Y2I4NmYzYjVhMTc4NTg1ZTY5ZjMyZTk0NDViYTcwIHJlbGVhc2UyNS1tYWludAorNjI3NjQgMWU4YjhkZjRkZjgzMTUzZGRhYjI3ODc2OTljZWI2YTk2ZWIwZjE4YyBweTNrCis2Mjc2NSBjODJmNjNlZmJjNDA4MzFiNDljYmJmYmM4MzIxYWJlZDE2Nzc3Nzg1IHB5M2sKKzYyNzY5IGIwZmI1NWVjZTg5ZmMzZWNjY2M1NGJjY2U1NzQ0MDBmNWEyODFhZTkgbGVnYWN5LXRydW5rCis2Mjc3NCBmODQ2OGJmZDQzNTc2MDRjZjQ5OThiOTg4YzQzNDBlYjdjZjc1ZTRkIGxlZ2FjeS10cnVuaworNjI3NzUgZGRkNWY0MjMzMmI5ODU2MzI1NzZjNzgyZWJiNTJlNmU0ZjNlOGYzNSBsZWdhY3ktdHJ1bmsKKzYyNzc4IGNkYTgxNmMzYTFlNDZiZTNhZjJlYjdkOGNlMjkyZGU4MjhkMWYzNGQgcHkzaworNjI3NzkgMDJhODE0MmQ4M2RiMjgzNzM3ZjUxZjdmOTk1MjcwOTQxNzk1MWY1OCBweTNrCis2Mjc4NSA5MTMwYjQ4YTcxMzBlMTVhNDljNGUxMjg0MjZiZmYxNjE0ZGViZDk0IGxlZ2FjeS10cnVuaworNjI3ODcgNGIxOWI0MWVmNjA2NGM1MzA1Y2FjYjc3YTVjYmFkZjhiYzhiZjZhYiBsZWdhY3ktdHJ1bmsKKzYyNzg4IDFhMmRiYzg0YmRmY2YwYThjNGM2ZGUwYjA3ZGI0NGViNmJmN2UzMWUgbGVnYWN5LXRydW5rCis2Mjc5MCBmNDA2NGI1YzhjNWQyZGY0YTBkYTZmMmY1MDQyYjZlZjkxYWMxOGZmIHB5M2sKKzYyNzkxIDkxMWM4N2Y4ZWQ1ZTU3M2E2ZTBmODU0YjM3Mzc5M2QxNWJiMDYwYmEgcHkzaworNjI3OTIgMGMyZTRiNTVmODBiOTdiNTZkNzFkMDM0ZDEzMjkxMWQwMjQxNjZjMiBsZWdhY3ktdHJ1bmsKKzYyNzkzIGZmZGI1ZjQxMzlmZTdhODcyYjJkN2MwYjhkM2ZjZjIxZTZjYjA5ZDkgbGVnYWN5LXRydW5rCis2Mjc5NCAxMGIxMzlkODc4NjAyMWMwOTVhYjM1OTUzZmI4OGEwNTZjYTdiNDg2IHB5M2sKKzYyNzk3IGNlZWE0MGRhYTg0OTA3OWI1MTVlZjgwMjRmNDQ2MDQwODBhYzE2Y2EgbGVnYWN5LXRydW5rCis2Mjc5OCA3YzgwYmFjN2Q3NzY1NmNiNzFkOWNhNjFjZTE1ZmI3ZWZjODQ3NGQyIHB5M2sKKzYyNzk5IGM4YWEyMjBjNmNlZWY5NThhZDVkOGQ1MzIzMWVmMGU1ZjcyYTk2OWEgbGVnYWN5LXRydW5rCis2MjgwMCA3MzdhMThiMmRlZDM2NWYwYmJmYzkxMGNhMThmZGMyNDZkYzc0NWYxIGxlZ2FjeS10cnVuaworNjI4MDEgNzRiOWM4NTM2MWY4OGUyNTNiOWY3YmI0OWRmYWUwNDY2MTliOWFkNyBweTNrCis2MjgwMiA3NDg2YzI5ZjkzYTNlZGQxMTIwNjE4YzU0OWY2YjAzNGM0ZTNkNjZkIHB5M2sKKzYyODAzIDBlNWE5NmZjOTQyMmI0ZTEzODU1MzcxYTQyYjM5MDI4NzNkZDlmYzEgcHkzaworNjI4MDUgNzdkZjk5MWVhNjM3OThmNWM5NWMzOTFmN2U0YWQ3MTQwMjM4OGUyMCBsZWdhY3ktdHJ1bmsKKzYyODA2IGQxOTY1MDg4Yjg1ZGQ3Mzc2ZjBiNzg2OGFhZWNhZjhiZDQ1NDFlYzEgcHkzaworNjI4MDcgOGI5MzFhNzk4MjdhOWI2NWUwMTMwYjdmYzlhMDU0YzdkNzYwMGE2YSBweTNrCis2MjgwOCA1ZmJkOTdmMWJjMzVlM2M5NmUzYWZiMGM1MmFiZjRkZGQ1Y2JhMTNhIHB5M2sKKzYyODA5IDM4Yjk0YzA5N2E1NTI2ZjVhYmFjMDE0Zjc0YjVmOTBmYWRmYzdlMTQgcHkzaworNjI4MTAgZDdlMjAyOWIzY2E0YmYxMTMwY2EzOTFiNDZkYWViOGQ4NzI2MTYxZCBweTNrCis2MjgxMSBiNjM1NDYyYTU3OThmMDNlNTUyZjFjYzEwMTU2YWE1M2UwM2EwNDJlIGxlZ2FjeS10cnVuaworNjI4MTIgODE1NDY0OWM1NTE2NjIwMWUwOWQwYjcwNGI0Y2FkMmU3ZTM5NTE3NSBweTNrCis2MjgxNSBhOWFjZjE4YThlNTc1MTFjN2JlYTg4NjRjYTM5ZTE4N2NjMDM1MDkzIHRsZWUtYXN0LW9wdGltaXplCis2MjgxNiA0MzA3ZWVkMWY3M2JlOWM0YjdmYjljNWQ3ZGUzMjk1Mzg3NTgwMzhmIHRsZWUtYXN0LW9wdGltaXplCis2MjgxOCBiOWEzYWJmNTlhNDU0NmYwMDJkNjZlNDE4MjgwMTEzYzU2OTc5MGUwIHRsZWUtYXN0LW9wdGltaXplCis2MjgxOSBhNjRmNDBiNjIxNjk2MzBjNjdmYWY0Y2JjYWJmNjQ3ZTFjNjkzYjA4IHRsZWUtYXN0LW9wdGltaXplCis2MjgyMCBiYjk1NmY0ZTMyNmVjNDYxNTVmMThmNWNlYjIwNjVkMzAyNmZhNjAyIHRsZWUtYXN0LW9wdGltaXplCis2MjgyMSBjNTM4MTUyNjYzNjBmMDVmZjVhMWVhMDY1NWM1M2JiODFkYmFiNGI2IHRsZWUtYXN0LW9wdGltaXplCis2MjgyMiA0YjAzOWVkZmVlNmJlZTQ5MjY4MWU3ZDg1MmY1MDM4YzIyZDU3ZTdkIHRsZWUtYXN0LW9wdGltaXplCis2MjgyMyA5NzQ3ZDExMzcwODNjYTUzYjc1NmFmZDBhMjEwYzY2OTY5Y2RiZDVjIHRsZWUtYXN0LW9wdGltaXplCis2MjgyNSA2N2JhOTNhZDAwZmRmMWI5MTM1NGRiYTExODMyYjM2YzRiZjY5ZjE3IHRsZWUtYXN0LW9wdGltaXplCis2MjgyNiAyYzQ1NThkZmY1M2Q5MDY0YTc3YTEyYjcyMDAyODhmYjJmNmFmODljIHRsZWUtYXN0LW9wdGltaXplCis2MjgyNyA0MWU4ZTcyYWE5ZWRiMWIwYjk2ZDA5YjgxNmRkMzI3ZmEwMjlmZjQxIHRsZWUtYXN0LW9wdGltaXplCis2Mjg0MSBlZjQ3ZGYyNTQyM2M3NmFhY2E0NDI1NGRhYjA5YjZiYjdjOWFlNWU0IGxlZ2FjeS10cnVuaworNjI4NDIgOTU3MGJjMTI4MzE0NDRhM2I4MzM1NGY3ZThkNzc4NWNiYzBhMWZlMCBsZWdhY3ktdHJ1bmsKKzYyODQzIGFkNzc1MWE5NTgwOThkNzEzZDZlZTgyY2ZjMTQwODZhMTgxMmYzMDIgcHkzaworNjI4NDQgODMxYTMwY2QyM2EyODIwNTJkOWIxMTJlOTcyODA4NTVlOTU3OTUxMSBweTNrCis2Mjg0NSBlMzQ1OWFkMDEzNjg2Y2JlY2U3MzY2MWViZjQ4YzY0YjViZDAzN2EzIHB5M2sKKzYyODQ2IDZlYzU2MDhiNjYzYzJjZjI4MDMwYTRiNzBjYzQwMmRmMzEzMDI4MTIgcHkzaworNjI4NDcgYWNkNjgyNzdjNGRkMDEyN2E3OTgyMTAzNTg0MDNkZmY1YmJkNTU1ZSBweTNrCis2Mjg0OCAyZWYxYzM4MTEzOGQ1NzNjZmQ5NGJmZWU5NGE1ZjZiMTFlZWY3Mjc3IGxlZ2FjeS10cnVuaworNjI4NDkgMGU3NmE4ZjM0NzY5NWEzNzUwZmI2ODExZDU1ZDZkYmJkNzc4Y2JkNiBsZWdhY3ktdHJ1bmsKKzYyODUzIGIxMjRlMzE2MTRlZDk2OTMzNmY3NWUxZTI3NmFhNTkzNjA3OTBmYjkgbGVnYWN5LXRydW5rCis2Mjg1NCBjNTYyNDAyYzFjMDgyOTkyNjliZWYzNjg3NTZjODIxYjhiMWNiYTFmIGxlZ2FjeS10cnVuaworNjI4NTUgYzY3YzA5NTU0ZDIzMDIwNDNmYjM3ODA5MWNkMDMyNTNjMzNiN2U5MyByZWxlYXNlMjUtbWFpbnQKKzYyODU2IGUzNTkzNTQ3NTE1MzM3N2Q2NzI3ZDY0ZTZjNTJmNzJjM2I4NDAxNWIgcHkzaworNjI4NTcgODE0ODA2OTI2M2FhMWYwMjEwY2RkMGQ1OGYxNTkzZmJhZDRlNmVmNiBweTNrCis2Mjg1OSBhZWQwNDIzOWEzZmMyNTg1MjA1MmRjNDZmMzkxNmQ2MDViZmUzNjUxIHB5M2sKKzYyODYwIGNlZjVhYTNlZDcxMzM1NDkwNDcyODY2MTg3YjYzOWZiNWE2NjdmYTggcHkzaworNjI4NjEgNDhlOWZiMGE3MjE3OTk4NzdmMjZlZGFlZjAxYWM2ZTYwMjliNjgxMiBsZWdhY3ktdHJ1bmsKKzYyODYyIDZiNzk3MGFhMGRkYTMyN2YyNWE4MzE1MTk1MWQ4YTdiOTY2ZWFiY2MgbGVnYWN5LXRydW5rCis2Mjg2MyA5ZjQ1OTc5NTU4YTliY2Q4MjE5NmYyMmM3MDA5ZDE1ZWVjYzM0NDRlIHB5M2sKKzYyODY0IGQ5ZDRjZWY0MjFhMmRjNDRhYzQyYWI4ZGM4YjFmYTA4YjRmM2RlMDUgcHkzaworNjI4NjUgZDQ0MzBlOTAyMWMyMjNlOGZlNTA2MDI5MjZiN2MyMWI1OWNmZGE5ZCBsZWdhY3ktdHJ1bmsKKzYyODY2IDcyYmUxMzkwYWU1ZjQ3YmY3ODliNGE3M2QxNWZhZWQzNzE4NGVmZGEgcHkzaworNjI4NjYgZTY5Zjg0ZWU0ZjNhNTUwMjJlMmYyNTJlY2UyYmFkOTQwN2QyMTU1ZiBweTNrCis2Mjg3MSA5ODFjYWYyNGRkOGE2YWFkOGMzOTI5ZmYwYWRhZmZiM2RiOTVkYjA0IHB5M2sKKzYyODcyIDE2ZGRkZmUwYThjZGM0NjYyM2UzYzdkMDU5Nzk2NDEyMWYxMGU2NTMgcHkzaworNjI4NzMgYzhiNDlkOGMzOTY3ZTdhZWRhNGFlNzk4MDMwNjE2M2FiZTE5NGUwMiBsZWdhY3ktdHJ1bmsKKzYyODc0IGYyZDc3MWYzNzBiZDhlMGJhMzU4OWZhMTZlMWRjZTJhNGJiOTZlNTcgcHkzaworNjI4NzYgY2E0MTAyNDE0YTM0NWNlZWM4MDliZmE2YjUyOTBlZDYzYjY4M2QyOCBweTNrCis2Mjg3NyAxMTQwN2MxZjY4Y2E0ODRjMjhiMWQ5NDY5MWRiNTg4NTdhZjNhMWZhIHB5M2sKKzYyODc4IGVhYWM1NjE5YTIxZmZjMDU0OWNkZjNlMzJiMjY3ZjNiMzdiODFkMWQgcHkzaworNjI4NzkgMjAyOGZhMmZjMWRkZmNjOTRhZTJlMTNmMWNmYWM2NzMyM2Q2Y2E3YyBsZWdhY3ktdHJ1bmsKKzYyODgwIGU5NWRkMjVkZmIwY2JlMDgwNWVlOTM4MzJhNjUwZTBmMzU1MGQ2MzAgcHkzaworNjI4ODMgNWM1YjM2M2QyZjE5YTgxYTllYWM1ZjM4MDE1MDQ2YmY5OTA4Y2JhOCBweTNrCis2Mjg4NCA5ZmJjMmRhNTRlMjkzZGU5MTMxYzUwY2M1NDE4ZWExMjZhYjQ3ZDM5IGxlZ2FjeS10cnVuaworNjI4ODUgMDQ3ZGEzZjZmZDdmZDk0YTJlYWQ3NzE1MDY0NGI4ZmY4OWEyNmMyYyBweTNrCis2Mjg4NyBjYWM2YTFhMzM0ZTA0Y2IwNmM4NzdjOWJlNTZkNDViODY5OGU2MzA3IGxlZ2FjeS10cnVuaworNjI4ODggYjcxMDlhMGNkMGY5ZjU3YTUxZmY1YjQ5MjVkMGNkNGEzYzA1Y2U3YiBsZWdhY3ktdHJ1bmsKKzYyODg5IGE3NjcwYWZiNWMwOTJkOTk2MTMzMjE0ODk0MTYwYTdlOTNhOTcxODYgcHkzaworNjI4OTIgNmFkYTE1ZDc5OTBmNzI2ODk5NzdmNDNhNDljMTQ4NzUyMzFlMDA2ZSBsZWdhY3ktdHJ1bmsKKzYyODkzIGI1YTY3NzI3OGI1ZmE4NTg0NjdjMGFlZGYwMjc0Mzc5NWFhZjBlNzkgbGVnYWN5LXRydW5rCis2Mjg5NCBiOGU3YTE2MTYxMWMxNGYzMmRiYmJkODM3NTM3Y2QzYzBlNDk2ZjdjIGxlZ2FjeS10cnVuaworNjI4OTUgMWZiMjQ2Y2IyOWFlNDExZWU4ZmNhODJmNWQxODEwZDVlNTY2NzAyNiBsZWdhY3ktdHJ1bmsKKzYyODk2IGRmYjBiYjVmYWE2YmM5ZjYzNGIwNDEyMzc1ZGJmYmI5OGFhMzc2MTQgbGVnYWN5LXRydW5rCis2Mjg5NyA2YmU2NDcxOWE1MDlhY2NiZjQwYzVmZDczYmQ5MTE4ODM1YzNhM2ExIHB5M2sKKzYyODk4IDJhMTczYThiM2IxM2Y4YWUxNDViN2FkNDg4ODE5ZDcyN2JlNTYzZjUgcHkzaworNjI5MDAgZmIxOTg0ZmIxODJkM2I5NjExMGUyYzE3MWYwNmVhMTFiODRlODcxOSBsZWdhY3ktdHJ1bmsKKzYyOTAxIDIyNGNhZDgyMzU5MDVmMDFkMThmYTU1ZmU2NGIzMzhjNjQwYjliMjIgcHkzaworNjI5MDMgNWU0YmQ4MjQ5ODQ2MjRlYjI5OWViYmZmZDIyZmFkZWU4NmYyYzhhYiBweTNrCis2MjkwNCBkYzU3M2VlMGQ5MDQxN2I3OWUyNmU1ODFjYWEwMzJjYTk5MWYzYWQ2IGxlZ2FjeS10cnVuaworNjI5MDUgYTEzMGNmNDhhZDY3Y2FlZjFiMTEzMzk0ZWU5MDgzNmM4MTA1MjQzMyBweTNrCis2MjkwNiA1ZDE1YThiY2M0NDU2NjI1N2E3M2FjNTNiZTFmZTdlZDU1MjRmMjdlIHB5M2sKKzYyOTA5IDhiZmUyYjA2NTI3ZGFkMDM0ZDM4ODJiZGRhMjhjZTU5Mjg1ZjcxMWQgcHkzaworNjI5MTIgYjkzMDA1NzEyZTM5OWZmMGMyZWVkYWZjYTNlYjcyM2M1MmRiMjQyYSBsZWdhY3ktdHJ1bmsKKzYyOTEzIDViNmVhNGRiYTQ0YzljY2ZlMWViY2IwODRjMDVmOGIxZGYzZDIwN2IgcHkzaworNjI5MTQgNGQwMDdhMzFiNDY0NTNkNzNjYjc1ZDQxM2MzYzQwNzQ5MmMzNTZlOCBsZWdhY3ktdHJ1bmsKKzYyOTE1IDM3Njc1ZjBjMzM4YTY2MDVmMWU1OTkzMDkzNGNjNjIxYTcyMTQ0ZjQgbGVnYWN5LXRydW5rCis2MjkxNyA4MTZjMjFjNzYyYzg1M2Y5NjYwOWRmNzgyZTFiMjNjYjQ4NDMwMWM0IGxlZ2FjeS10cnVuaworNjI5MTggZWJjOWY2NmZlOTkwMjkyODYzNDlhMzQ4YjRjNjkxZTljZjY0NDBlYyBweTNrCis2MjkyMCA5NDZmYmFlNGJhYWI1NjZiNDk1ZWVjOGJmOThlMzgxYjYzNTc5M2FkIGxlZ2FjeS10cnVuaworNjI5MjEgNGJkOTg5N2RjZTA3Y2ZhMTFiOGI0NWNjZjU2ZjQ1ZmUyODQ3YTY1OCBweTNrCis2MjkyMyBhODliZTI1MDcyZTNkZTdmM2U4MWQ1MzM2M2RiMjdhZGYxZDI0MmFjIGxlZ2FjeS10cnVuaworNjI5MjQgNWZiOGE1MDRmYTk2ZjExMTViNzVkZDU4MzFmNGJlMTNmOGYwMTE5YiBweTNrCis2MjkyNyAxNWM3MjIwMjg2MTU1YzFiN2I3OWJiNzM0MGY4ZDY0ZWQ0YmM3ZjNjIGxlZ2FjeS10cnVuaworNjI5MjggNTRlNjIyZWYzNTAwZTI3ZmI3ZDljOWZjZGFkNzk1YWJhMTM4ZTJjZiBsZWdhY3ktdHJ1bmsKKzYyOTI5IDg0YWYwY2ZhN2I4MWQ5NDM0ZTc0YWFiOWZjMjI3OTU5MzlhODIwZmEgbGVnYWN5LXRydW5rCis2MjkzMCBjZDZjNmRlYjdmODRlNGVjNDQzMzEyY2Y3Mzc5OGRkNDhmOGUxNDQwIGxlZ2FjeS10cnVuaworNjI5MzEgYzI0NDM4ZTlhYjU0ZmJhMzZlYTIwZWNkNTFjMTUzZTBkMGRlMGZjYSBsZWdhY3ktdHJ1bmsKKzYyOTMyIGNjYzMzN2I0NWIyZTMxYTAwY2Y0MDEzZTk4YzY0NTg3YTI3YzFlZmUgbGVnYWN5LXRydW5rCis2MjkzMyBlZmI5NzlhNDk0N2QwMDM4YzlkZjBjZjNiMGFhMDg1NzgzM2FiZTI1IGxlZ2FjeS10cnVuaworNjI5MzQgZjNmNmE4OTVhNTU1ZGYzNjk1Y2M5ZWRmZmRmY2VmY2VlYjAwMGUyMCBsZWdhY3ktdHJ1bmsKKzYyOTM4IDM5NTVjNTAyY2ZhMzcyMmZhMDk5NDIxN2Y1MjI4NDQwZDVmMTZlZTUgcHkzaworNjI5MzkgMTdjZDYxMmIwNmRhMWY4NGYyYzEzNjVlMTAwNmQ4YmVjMDg5MzRlNyBweTNrCis2Mjk0MCA4YjY3Njg1YThiYzNlZTY3OTIzYTFiNzg4MWEwMzdjN2YxZTgxYWQ1IHB5M2sKKzYyOTQzIDhiYWViYTEzYWU5M2Q0M2YwZTYzNjkyNmJlMjkyZDY5MWU5ZTVlZjEgbGVnYWN5LXRydW5rCis2Mjk0NCA1MWJhYmU3M2MwY2EzNWY2YTM0OGNmMTIwYjA0MDZkNWFlY2E4ZmE3IHB5M2sKKzYyOTQ1IGE0NDQ5ODVhNjc1YWU0ZWFlNDYwZDI5NzZiYjY5OTgyZjk3ZWIyMGMgcHkzaworNjI5NDYgYjQzMjUwNmVmY2U3ZmQ5NmVlOGFmNjgzMTQ2ZDhmYWExYjIyYjY4OCBsZWdhY3ktdHJ1bmsKKzYyOTQ3IGUwY2E3NGIzNjRlNDliNTU2MThhODIzZDJiZDllZWI0MTU2NGQ5MTEgcHkzaworNjI5NDggZmQwYjg5NGJjOTBjNTJhNDRmNTZlZjI2ODcwNzY0N2U1OWY0ZDFlZCBsZWdhY3ktdHJ1bmsKKzYyOTQ5IGJkMjk1NGM0OTE2OThjMTQyYmFmNTM2YWQzZDFhYzk5MTQ0Mzg1Y2YgbGVnYWN5LXRydW5rCis2Mjk1MiA0NDk1NGQ2NWE3M2E0NWRkNTI1YTMxYjRkZWM1YWM0NDk2YzFjZGE1IHB5M2sKKzYyOTUzIDg3ZDg1NGJjMWU0NWU3MWYwOTc0YTg2ODJkMTA5ZTljMDA2MmEzYjYgcHkzaworNjI5NTQgZGVjNTMxYzBhY2Y5YjYyZjlmODUzNDk2MDkxOWM0N2VkYjczZjk3NSBsZWdhY3ktdHJ1bmsKKzYyOTU2IDM3YjI3YTI1YTg0NzA0YThhYjA4MmE1ZDRmOGU5MDdiZDFjNDA2MTEgcHkzaworNjI5NTcgODAyNTE5ZjA0NzU0NWQ0MDExMjk3MjFkNzQwM2UzNmJmNzNkM2Q0MSBsZWdhY3ktdHJ1bmsKKzYyOTU4IGZlOWI5N2RiZDIzMmQyY2RhZGY4NzlhYjdmNjZjYWZhM2E1MjI0MzMgbGVnYWN5LXRydW5rCis2Mjk2MCA0YzVlZTFiMzgwNDUwMTdlODY1N2IzM2ZhZDVlYTFjZjY1MzNhNTY0IGxlZ2FjeS10cnVuaworNjI5NjEgOTFmZmQ5ZjNjY2VjOTAxMjA2ZGEyNzllYjFmYWE0MGJkZDU0MGZmNCBweTNrCis2Mjk2MiBjNTZlODNkMDhkMGIwNTgzNTM0YWI5NDBlYTAwMmFiN2U5YTk1YjE5IGxlZ2FjeS10cnVuaworNjI5NjMgMDdhMzVjOWE1ZDNmYjhjZmRjZjQ4ZWYxYjZhMzE3OWQwYjljMzg1MSBsZWdhY3ktdHJ1bmsKKzYyOTY0IDQ5OTg3NWNiNmJhMmM0MGQyNjA0MmZiZDA0YzZkOTViMzEzZTU5N2MgcHkzaworNjI5NjcgNDM5MjY5NDg1NTY5OTA5NzE0NzA3NmZiN2Y3YTdmOThjN2Y4N2YzNCBsZWdhY3ktdHJ1bmsKKzYyOTY4IDU2NzljZTY2ZTc0Yjg4MzhkNWRiNzdmN2M5MmFiYWVjOGQ2NGEwMTcgbGVnYWN5LXRydW5rCis2Mjk3MCA4ZGU1MWRhYTUwNmZkODU0OTZmZmE5MjBmY2IxZGM1MDEwNjQyNzVkIHB5M2sKKzYyOTcxIGFhOTI1MGU2YzQwOTM0ZTA1ODA1YzE4ZjJmYzYwMmQzMjllZGYyM2MgbGVnYWN5LXRydW5rCis2Mjk3MiA3NmVjNjc1ZTIwYjhjYmZkMTUzNmY5YTlkYTNlNjNkZTYwM2U1N2E2IHB5M2sKKzYyOTc0IDIzZWMzM2Y2NjczNjBlNGExNTA5ZTAxYTA4MGE5MTBjNDI4MDBlZTQgbGVnYWN5LXRydW5rCis2Mjk3NSA4ODRmODQyNmNjY2Y3ODkxMGNiOTNiZGMwNTg5MGEwZGZjYzAzMmMwIGxlZ2FjeS10cnVuaworNjI5NzYgZDBmNGMyNDY2OGYyMzdkYTY2M2MyZjQ1OGEyNTg1ZGQyMDI0YzAyZCBsZWdhY3ktdHJ1bmsKKzYyOTc3IGJlOGM0M2EzZmQ2MmZmNjI5NzQ3N2E2YTI2NWZjZDRmNDVkYzYyYmYgbGVnYWN5LXRydW5rCis2Mjk3OCAzODkzOGI3MTQwMTgyNDA2ODI0ODdiYzBmNDA2ZWNlZGQ3MjdlZmE2IHB5M2sKKzYyOTc5IGUzZDRkZTkzNTBmYjRkZGFkZjg5YjZmZjVkZGJiZDc3ZDBmOWJhYTEgcHkzaworNjI5ODIgMmVjZmM3MDEzZWI1YzMzNmNkMTBiMjM5Y2ViYmE3YmJmZjU4NDU5NSBsZWdhY3ktdHJ1bmsKKzYyOTgzIGExZjQ1OGIwMTQ5ZjA5MDIzYTdhNzBmNmU0NDY0YTIyYjdjZjhiMTMgbGVnYWN5LXRydW5rCis2Mjk4NCBhZDdkMzE5YWRmNzY3YWM2YTU3NzUwYTUzMTZiMzBkZjdjYTkxNWE1IHB5M2sKKzYyOTg1IDQxYTk3NjQ5ZGU2MTc1N2E1YTcwNjk4MTBjZDI4NDQ0NDc1YTQ0YjIgbGVnYWN5LXRydW5rCis2Mjk4NiAxMzJmODJkMjQwMjhlZDdmNzg2NWU3NzA3NjlhNWFjNDE1NWU0MDQxIGxlZ2FjeS10cnVuaworNjI5ODcgNDUxNjc0Zjg2ZDc1NDRlYTIzNTBmMDY0NjU2YzczYzk4ZDgzYzliNiBweTNrCis2Mjk4OCA3NjU0ZWI1ZDBhNjcwMWQyM2I0MjIxOTJhYTU3OTAwOTI1MDUyY2Q2IHB5M2sKKzYyOTkyIGJjOGIyMjY2MTFkZDQzZmJiYjhjMzMyODIyYTJmYzRmZWE1OGRlNDUgbGVnYWN5LXRydW5rCis2Mjk5MyBiMzhlZDdjMWNhYjFjMTllNzJkYzM2MDdkYTc5YTJhYWEyMmUxMGMwIGxlZ2FjeS10cnVuaworNjI5OTQgMmQxZWY5NDg3YzMxNTM4MzJlOTcwODc0YjE5ZDg4NmU4NjA4MTg5YyBsZWdhY3ktdHJ1bmsKKzYyOTk1IGJlM2M5Zjg4NjZlN2I3MmM5M2E5YTQzMDEzYjM0YzdmMGRmYjdmMTUgbGVnYWN5LXRydW5rCis2Mjk5NiBhYWM3YTIyYmVmODQ1ZTJhNWQzMzQ4Y2QyNTAzYTk2NTIxZDVmZTFhIGxlZ2FjeS10cnVuaworNjI5OTggMjcwZjU0ZTgyZDIwODFiMDBhYmNkYjE1MjBkNWJiZTM1YjlmY2IwZiBsZWdhY3ktdHJ1bmsKKzYzMDAwIDc2M2Q3MmQwMDAyNTdhMjg1NzRhY2Q2ZGViOTQzYjc3OTgzNzJhZjYgbGVnYWN5LXRydW5rCis2MzAwMSAzNDE4ZjJlYmNlODcyMzJmMzBjNjZlYjA5YjgyYjAwZTNkZDhmMzU5IHB5M2sKKzYzMDAyIDZiNGJmZjI4YzdiYTJiNWJlYTg0NTBjNDhmNTM3NjQ2NmFhZmFlYjUgbGVnYWN5LXRydW5rCis2MzAwMyA4N2RlNzU4ZGJkNjQ2NTViNmI3OTYyNjkwZGNmZjJjMzkyYmFjNWE2IHB5M2sKKzYzMDA0IDMzZDRlMDNiMjNiYWRlODE1MDU5YzU4M2ViMzJkMzk5Mzc3ZmJjZjIgbGVnYWN5LXRydW5rCis2MzAwNSAxMWEwYjIyMWYzNzI2NDMwNzQ3ZDgzMTEyNzQ2OTY0ZDJmMDBlNjE1IHB5M2sKKzYzMDA3IGI2YjJjZWE1ZDMwNmY3Yjk3MTRhZTkzMDI4N2EyNDI0YmNhY2ZmYWEgbGVnYWN5LXRydW5rCis2MzAwOCA0MjhiNjZjMDRkM2E5MTFiMjM5NDg4ZjMzNTNkZjhhYTFlNzBkNDNlIGxlZ2FjeS10cnVuaworNjMwMDkgNjBiMThiMzlhM2EyZTgzOWY2ZDVmMmVmMzJlN2E2MWJhNjRjYzAyZSBweTNrCis2MzAxMSAyZDA0ZTU2MDEyZWRjNmZkZDg3NmQ4YTAxYmNlMDI0MGU4ZDA3YWU1IHB5M2sKKzYzMDEyIDZlZGFhYTc3YWYyNzY4NmUyODM3M2I2YzFkMjRlNTc4ZmU5M2ViYTEgcHkzaworNjMwMTMgMGMwMmUxNWE3YzFmY2QyMDU0YWEwNGRkN2RhNTdmZTNkZTE2YjQzMyBsZWdhY3ktdHJ1bmsKKzYzMDE0IDJjYTdhMjc5ODE2MWM0MGM2YTgwMTE0MTFmOGMzZjdhNjc2YzMyYTQgbGVnYWN5LXRydW5rCis2MzAxNSBiZTFlZDYyZDhiODBjN2QwNzA4ZDhmN2NhNDliMGNjYmFhZWM5YmRjIHB5M2sKKzYzMDE3IGM3ZDUzMGU4YjdmNTNiY2QzZWMxM2NiYjA0NTU0NGIyYmMyNDZlOGEgcHkzaworNjMwMTggZjJhNjNlYzUwNTVlNmMyNDdlODAwZTQxY2E1ZjFiYzdiZjc5Y2E2YSBsZWdhY3ktdHJ1bmsKKzYzMDE5IDkxZmFhZTQ5Y2JlYmFhNWM4Mjk5ZDM3M2MwMGQzYTc0ZmZjOTIzODQgcHkzaworNjMwMjEgMWU0MjdiYzBmODE4OTRmYzUxYmQwMDgwZGJhZjNhMTg2NGI3MTFlZCBsZWdhY3ktdHJ1bmsKKzYzMDIyIGMwYzU3YmU5OGVlZDZjNDRhMzQxM2IwYzdjMTBjZmRkM2U4MzlkMzYgcHkzaworNjMwMjUgYzE1Y2YwMTQxNWY5MjU2NWVhNGFiNjk2NmVlM2MxZjYyYzBhMGEwMSBsZWdhY3ktdHJ1bmsKKzYzMDI2IGQ4ZTAwMGVjNzc5NmJmYzYxZTYxNTE5N2QzZjBmOTczOWYyOGY2NjggcHkzaworNjMwMjcgODkyZjliMjk1OWM5ZDE2NTYxYzVlODAwMTRkNDAzN2VkY2M2NmE4OSBsZWdhY3ktdHJ1bmsKKzYzMDI4IDM4NDk2OGQ0ZDY1NTg2ZTBlYzI3YWNmYmFiYzRkMjI4MzE5ZjUyYmUgbGVnYWN5LXRydW5rCis2MzAyOSBhYWFlNDg5YjlkODFjMWI0ODQyYzQxNDNlYTUyNmE3Njk5ZTFmMzE4IHB5M2sKKzYzMDMwIDJjYWMzMWZjMTdjMjFmYWFlZjM5ZmE0YjExM2UyMDNlMTRiYmJkODAgbGVnYWN5LXRydW5rCis2MzAzMSBkMjM0NTExOWEyZGFiZGIxOWYwNTZiZDFhN2I4NzE0OTEwMzQzZTEyIHB5M2sKKzYzMDM3IGZiMTRmZjA1N2MwOTY3NjZmZGQ2NmRkZTU1ODY5ZGQ3MWM0MjlhYTYgbGVnYWN5LXRydW5rCis2MzAzOCAxNmYxNmZjZTUzMDI1ZjYyYzE4NmJmODBmOTdiOWUwMjNiOWQ1ZTU1IGxlZ2FjeS10cnVuaworNjMwMzkgZjYzODhkYzAxOWNjODJmNmNiYzg1MWM0ZjU4ODA1YzVjNDhmMzM2MSBsZWdhY3ktdHJ1bmsKKzYzMDQwIDIyNGUwN2I2NTg2MWMyNTZiZWMwZjA4M2YzMWNkMGFiZTlhYTdlMGEgbGVnYWN5LXRydW5rCis2MzA0MSA5YzE4YmFhNzYwYWQwZDBkZDkxOGVjYTc0YmU0ZjgzYmVmOTJlZjIzIGxlZ2FjeS10cnVuaworNjMwNDIgYjQwODI3ZWI0YjgwYjc2ZWMzYTA4MWQ1Mjk1ZjQ0Y2U1YzAwMWQ1YyBsZWdhY3ktdHJ1bmsKKzYzMDQzIGZkZWY3MTc5N2U4MzIzMWJjYzIzOTQ5Y2FiZWQ3NTI3NDgwM2NkNTUgbGVnYWN5LXRydW5rCis2MzA0NCBkZDU1MTNiNDcyZGM5N2Y5MDlhNmRhMzI1YWQ5OGZiYjU1ZDFmZTBiIHB5M2sKKzYzMDQ1IDUyNTY2YjQ0NWZjNzU1NzAzMDE1YzlhYzg1NmQyNjQyNzYzMzJlNTcgcHkzaworNjMwNDYgZTVhZWIzZGYxNzRlNDk3ZWY1Y2YzNTQ4M2UyZjlhYzMxMWM0Mzk1MyBsZWdhY3ktdHJ1bmsKKzYzMDQ5IGQ4ODUwNzU4ODc5MDQ4OWU1Yjc5ZGZiYmJhMGIwZDRlODgyNWNhYTMgbGVnYWN5LXRydW5rCis2MzA1MCA4Nzc3ODMzMzNlYWVkZmU1MWEzMDFmM2ZmNmJmZmE1NDhlMGM3NjRiIGxlZ2FjeS10cnVuaworNjMwNTEgNmJkNjY2MDc1ZTE0YzhkN2U2OGI5OTQ3ZDBlMzNiMGJkYThhOWYzZiBsZWdhY3ktdHJ1bmsKKzYzMDUyIDVkYmJjNDQ5ZjAyYmUyMjVmOTA2OGYwZDA5NTEyNTg1OWM2MzkwOGEgbGVnYWN5LXRydW5rCis2MzA1MyBjN2QxYTE3MGM5NGMzNWNkMDE2NWRlNjVmYzgwNGFkZmUyNWZkMDEyIGxlZ2FjeS10cnVuaworNjMwNTQgYzIxMzZjMTRkY2Q3OTQwOWQ4ZTEwMmZkOGMzOWI1N2Q2YWFkYWQ3ZCBweTNrCis2MzA1NSBmNGU2MWRjZGI2Zjg1YTRkNzM1OTc5YWNiMThjM2QzNWZjNWI1YjkyIGxlZ2FjeS10cnVuaworNjMwNTYgYjI5YjQ2YTQzOWQ5ZjBjOGU1NWJlNDAzYjkyMTA2YjgwZjY2NGQxNyBweTNrCis2MzA1NyA5Yzc2NWY0ZWQ1MTIzNDUwMmY0NjFhMmIxZTVhZGYxZjNkYzFiZTIwIGxlZ2FjeS10cnVuaworNjMwNTggYWZhZWVkYWRiZGIzNmIzOGMxY2E2NWE3NWIzNzliNGZiYTA3ZWJlMyBsZWdhY3ktdHJ1bmsKKzYzMDU5IDRmYjZjMGMxNjlmZjBiNWNjMjQyMzk4ZTc2NjJhMDI1N2JhYjQwNGMgbGVnYWN5LXRydW5rCis2MzA2MCAwZGY2MTYxOTNiOTg4MDZiNDU5ZGQ5YzZkOTdjODlhMTFiODFhMGM2IGxlZ2FjeS10cnVuaworNjMwNjEgYTczZTg3ZjE1ZmZhNzQ5ZWUyODdhNzkwMzJmNDI1NjU4MDQzNjcwYSBsZWdhY3ktdHJ1bmsKKzYzMDYyIDA4MWYyYTY2MjYzNDY1YjU5NTdkYTIyNzEyYWRiMTQyOWE1MGI2MzQgbGVnYWN5LXRydW5rCis2MzA2MyA3Zjc3ZGI5NTBjYjQ0ZWZkNzZhN2RhZWRkNDVjZmU2Yzc2MDBkNzI2IHB5M2sKKzYzMDY0IDgxOGNhZWJlMzczMzExZTE5NDgxYzgxODg3NWFjNTU0ZTg0NTg3ZTIgcHkzaworNjMwNjUgMDc1NzJhODI1NDBmZGRlNzE3MGQzM2Y3OWMxNmQzZTU1OThhYTQwYyBweTNrCis2MzA2NiBiZTg3Yjc3MjY4NjYwYjVkODU4YzVlNjExZjBhYmNjNjA4NTFlMDA3IGxlZ2FjeS10cnVuaworNjMwNjcgZGVkY2U3Y2I3YTVkZmY3Y2EyMjBlYjUwZDY2MWY1NGQ0MjYzMGRlNyBsZWdhY3ktdHJ1bmsKKzYzMDY4IDFmZGZiMjlmNGZiODM2MDljZjZkYzkyYjA0MGRjZjZlOGM0ZmVhOWYgbGVnYWN5LXRydW5rCis2MzA2OSA1Y2NkMTY1ZjMwYTQ1MTIzMjliYWUxNjJmNDgzYzE4YTZkMWNjYzNhIGxlZ2FjeS10cnVuaworNjMwNzAgYjE3YjI5ZTYwZTliYmQ4ZGJlNTA4MjhhYzgyOGE4MjU1MzMzYzBiNSBsZWdhY3ktdHJ1bmsKKzYzMDcxIDQ5ZmYxZmMwMGM2YzUzNGUxZjQxYWZjZWEyMmI2NDY2MjYyMzhkMWQgcmVsZWFzZTI1LW1haW50Cis2MzA3MiA2N2U0MzYzZWEyZTA2NzRlN2ZkNDYyM2U5ODg1YzgzMGE3NzI0OTVjIHB5M2sKKzYzMDczIGFiMTkwZjcxYjkxNzY5NTYwNTFhMThmZWM4NDllMGI5ZTZkN2RkY2YgbGVnYWN5LXRydW5rCis2MzA3NCBlMzQwMWYzMTZhM2I5NGI4NmRlNDVkMzE2ZmRhZTY0ODZiZjk4NGU1IHB5M2sKKzYzMDc2IDIxYWUyYjY1YmJiYjM2OTdlMTY4NWE0NTA5NTM0M2ZkZTNiNTc0NDcgbGVnYWN5LXRydW5rCis2MzA3NyA3NjY4MWE2MzA2YTgwNzBlMDE2NTIzY2NkMTM3M2FlZDA4ODkwODJhIGxlZ2FjeS10cnVuaworNjMwNzggMjA2NzAwZDc0OWYwZjMyMzlkMDNlMmFjMzg2NjE3ZjQ3YzdkNDJmMyBsZWdhY3ktdHJ1bmsKKzYzMDc5IGJkMmM5NWMxNjVlYTRjMGQzZGVlZGUzMjI1MGE5M2JjMDJmNWM3ZWQgcHkzaworNjMwODAgYTk0OTVhM2ZlMmUwYjc4M2RhZDUxYWUwYTBmZjBkZTg3ZDQyNTc4NSBsZWdhY3ktdHJ1bmsKKzYzMDgyIGUwM2Q4ZDNlNjc1NDRmNzdkNzM5MGVjYWNkOGMwMjYzODI5NDdjMDYgcHkzaworNjMwODMgYjcxZmNmZDk4NjZiYWVlYjBkZWRmOGMyODljNDhlOTM0MzAxYzBhYiBsZWdhY3ktdHJ1bmsKKzYzMDg0IGFiZTNmMzA1ZjZjOTYwMWRiMjk4MDg1MTg4OWNmYzgzMmE3Y2NlODEgcHkzaworNjMwODYgN2U0NjllM2NlYmRhNmUwOTgzNzEyOTIwZGZjYzU5NzFkZDdlODc4MCBsZWdhY3ktdHJ1bmsKKzYzMDg3IGI3MTBkNzE5YTA4MmFkNTk1NWE2NTg4MGFjZmI2ZmFlZTBlNWRjNDEgcHkzaworNjMwODggODExMzEwNDZkMWIwOTI5MGZjYmMwYzQ5NTVmMmIyOWJjZTQzOWIyYyBweTNrCis2MzA5MSA2YzE1ZGI2Y2U1ZGFmNjRiYzNjY2JmZTM3MWU4MTMyZTE4YjRlOTFmIHB5M2sKKzYzMDkyIGVkMmMxODg4ZTE0MzAxNDFmOWJlMzBlNGRmMzgwYmI4Nzg2YzhiODkgbGVnYWN5LXRydW5rCis2MzA5MyBlZjRlYzk2OGZkYjY2ODBlZjMzOGYwMzZjNjIyMTNiMzA3ZmQ5ZmJjIHB5M2sKKzYzMDk0IDc0MWIyNjY3YWMwYjcxNGY2YWZkYzExMjJiMzc5OTBjZDgwM2Q3MDYgbGVnYWN5LXRydW5rCis2MzA5NSBmM2QwZWMwYjczN2ViOWMyYmZhZTc5ODIyNTM2NGViN2FjOTEwYWE4IGxlZ2FjeS10cnVuaworNjMwOTYgY2NjNjYzYWE0YTc2NDRjN2UxYjVlMWExYzU0M2ExNTkxYWEyODUwNyBweTNrCis2MzA5NyA2YTE5YjliZWExOGU3YmQyZTE4ZjBiZWFmMDRmNWYyOGY4OTRkZTQ2IGxlZ2FjeS10cnVuaworNjMwOTggOGVhOGZiMTRkZjcxNTNkYzcxMWMwNjI3ZDllMGVlYWU3ZTcxMTZmYiBsZWdhY3ktdHJ1bmsKKzYzMDk5IGU5NDU3NDQ1NWQ5ZGQwNzczYThlZDlkOGQ1M2JiYzJmZWYzNjcyZGUgcHkzaworNjMxMDAgYzhiNzcwMDdhMWMxNDQzM2VjZmZlZDM4NmI5ZjlkMWYwYzE3MDc2YiBsZWdhY3ktdHJ1bmsKKzYzMTAyIDIyY2RiNmVjM2U1NjkyYTI1ZDI1YWZjOGI2MzEzMDFhMzAwZjg0MzMgcHkzaworNjMxMDQgYTQyNzdjMWM5OGE4NTQxMmY4OTFlMDYzM2QzMDFlOGVlNGE4M2FlMiBsZWdhY3ktdHJ1bmsKKzYzMTA1IGQ3YzIwN2I4MGM0MGFhMjZmNmEwMWE0YzE1ODk5MGM4MWU5NGYwMzMgbGVnYWN5LXRydW5rCis2MzEwNiA5MDY4NjA0NWZiYThkMTJmNWJiMGNkNzRmMGIyYWNmYWRjNmU3M2UzIHB5M2sKKzYzMTA4IGE5ZmY3Mjg5MDgyYjIwZmM5MmEwNzFkMWQwN2UwYWI2Y2FhM2MxYTEgbGVnYWN5LXRydW5rCis2MzEwOSAwZDQ5NTc1NDBjOTZlOWY5N2QxOGViMzNmZjQxNGIzOGI0M2FhYmIyIHB5M2sKKzYzMTE0IGMyYWI3YTA2ZWQyNGJlYWQ0ZWM2MzZlYzVhMjQ5NWQ0MzJjYTU4MDQgbGVnYWN5LXRydW5rCis2MzExNSA1MjZkOGNmN2E5MjA2ZTNmNjQ0MjJmMzFhYjNlNzczZjdmNDRmOWMxIHB5M2sKKzYzMTE5IDRjODM3NTU3NGFhOWU3NDYxMGE4OTYyOTg0NWQ4MWVjMzZjMTI5NWQgbGVnYWN5LXRydW5rCis2MzEyMiA2MjJhMjU5NjcyMjhkOWEwODFiNzgzYzgyYWNmNzE1NDcyOGZjOTJiIGxlZ2FjeS10cnVuaworNjMxMjQgZjBhMjg1ZmMyMDFkMDA1ZTUwM2I0NmQ4MDAxOTIzNmMzODI2YWMyMiBweTNrCis2MzEyOSBiZGUzOGE3YjIzMTgzOTkyZTgxMjg5YzNkY2JlNjRjZjBhZGIyNGE4IGxlZ2FjeS10cnVuaworNjMxMzIgYTM3NWIxMzQ2ZWIzN2UzMjQ2ZWVmNTk2YzhkMzgyMGY2MWEwNmJhOCBsZWdhY3ktdHJ1bmsKKzYzMTM0IGRhZmRlMmVlZTNkMGQ4YTEzZTk2OTJhMTU0NDEwYmJjOGI3Yzk1YjUgbGVnYWN5LXRydW5rCis2MzEzNiBjOWU1ZmFhNDgyZThiYWYxZGU5YmUyNWUwZWM2MjllN2ZhNmJmYzQxIHB5M2sKKzYzMTM3IGIzMDVhOTZhNGJlMmU0NGFhMTE2ZWRlMGQ0MWYzMTVlYmRlZThkZTcgcHkzaworNjMxNDAgYWNhNWMxZDFjNTY5NGEzZWMwNTZmMTAyM2IxYTU5OThhNzIxNzJjYiBweTNrCis2MzE0NCBhOWFhMzQyYTM2N2E5MjJkMjM5ZmNlYmI1NDk0OWJkYjRjMWMyODBkIHB5M2sKKzYzMTQ1IDJmMTQ1MThmMzAwYjhmYzMzYTllYzY2MThmNjY0M2Y0ZWJhZmIzMmUgbGVnYWN5LXRydW5rCis2MzE0OSA3OTkzMjFlN2U3YmI0MzI5MTc2YmEzNzFkNzFhYjFiNWU1MjFjOWQyIGxlZ2FjeS10cnVuaworNjMxNTAgYzFhNjhmNTQwZDViYzNiM2M1ODczZTdkMjBhODM2ZTUwMzc2NGZhNiBsZWdhY3ktdHJ1bmsKKzYzMTUyIDgzN2RlMjRhYzFmN2E1ZmJmNTc3ZGE4NGI3OTJlNGJhZjlmZWNhYmEgcHkzaworNjMxNTMgNGFjOWNjMWQ3Nzk4NGJjOWMzZWNlMzMxMGMwMDUxZDllMWQ5N2M1MSBsZWdhY3ktdHJ1bmsKKzYzMTU0IDY0ZDE5ZjI4NTFlMWJkZjIxMzMyMjBkNTE2NDQzYjUxOTA3N2I4M2YgbGVnYWN5LXRydW5rCis2MzE1NiAxMjgwYjhlYzlkYTM4NTFmNmJhYzlkMGMyOGExMmIyOTNjZTU2ZTI0IHB5M2sKKzYzMTU4IDVhN2NjZDY1ZTU5YjNkMmVhZjc5YzUzZDhjNTdmOWMxMTJmMDI3OGQgbGVnYWN5LXRydW5rCis2MzE1OSAwODljOGQwZGY3NzQ0NGQxNTk2NGU4MjhhNDIxNDg1MjVkZGUxNTgwIGxlZ2FjeS10cnVuaworNjMxNjEgYmEyM2ZjMTU3NjE4YjM5OTcwMzBhMTc2YjNjZTc0ZmNjYjg5MzU0NSBweTNrCis2MzE2MiAzOWY2ZjdmMTcyY2E4ZTU0N2MyODg3ZmJjNDRiMDZhZjZmYTRjZjhlIGxlZ2FjeS10cnVuaworNjMxNjMgZmQyM2U2ZDE3N2U5ZGE2ZDdiNTM0YTU1ODVjODYzM2JkZDhhMTJjNyBweTNrCis2MzE2NCAwN2E1M2JiODJiYWEwNWJkYjE3YzgzNjRiZmRjNTdiMGQ2ZGE4ZTQyIGxlZ2FjeS10cnVuaworNjMxNjUgZGYxMWFmZjA5MmNkODRlOTVhYThhYWY4NWY1NDVhYzI2ZmNmYzllYyBweTNrCis2MzE2NiA2YTc3OGMwYTUxN2U2MGViZDgzNzY2NDRjY2U5NDc2Y2Q5OWY0M2RkIGxlZ2FjeS10cnVuaworNjMxNjggYjNlYWMzYTdmZGMzYzc1MTg0OTU4ZjE1ZjU2ZDYwYTU5OWU1ZjY1ZCBweTNrCis2MzE2OSBlOTk3MzkwMzY2MDY5YTQ5NzRmOTU5ZGFlNTcyMmY4ZDY0MDE1YTRhIHB5M2sKKzYzMTcwIGQyODEwYjhhZWQ2ZDFmYzA3OTE2NzMwN2RkYmFlM2E2YzU0Y2NmMjYgbGVnYWN5LXRydW5rCis2MzE3MSBmZjliMjA1NzcyMmNiNTA2YTk0OGZhMDlhYjBiNmVkNGRlMzIwYjNiIHB5M2sKKzYzMTczIDkwOTE2MzdlMzJiMWUzYjdkMjgxMWE2ZDU3NDFmOGUzOGEzYzdhYzcgbGVnYWN5LXRydW5rCis2MzE3NCA5OWY1MGFmNjkyZDAyOGMxMDQxN2EwOTRhZDU2OGU4MzI5MzQ2NGQ5IGxlZ2FjeS10cnVuaworNjMxNzUgOTJkMDBmNWYzYzBkMDQwMTk1ZTdhOWIzODc5NDM5ZGUzNzAxN2QwNiBsZWdhY3ktdHJ1bmsKKzYzMTc2IDlkNDZjMjg5ZDE2NjA1MWFkYzY0NmRjMjc5ZDJmYTA5NTJhOGFlNWUgcHkzaworNjMxNzcgZTY0MDM5YmJmZTI2ODY3ZTk1ZDRjZGViZTdlYTExZWUyYmYzNmVhMSBsZWdhY3ktdHJ1bmsKKzYzMTc4IDFlNTczYzJjZDliZTYxYTE4MDM1OTQ4MjFmMWUwZDY5MjI5OGEwODggbGVnYWN5LXRydW5rCis2MzE3OSAyZWJlMjcyN2ZjOTJhZTQwN2M2NzQ4MzVmMDFjODg5MTYwOTUxNjVkIGxlZ2FjeS10cnVuaworNjMxODAgOGE0OWY4ZWY3Zjg5NDIzM2E4YTEwZWRlYTdjYjhiZTcwYTkyM2I0YSBsZWdhY3ktdHJ1bmsKKzYzMTgxIDg5NDE0NGIxNzNjOWY2MmUxNTBkMGQ5OTI1OWYzYmY2NjliNThhNTYgcHkzaworNjMxODIgMDNiMTIzM2JmNWZlMDBjODZmZGU5MWU1OWQxMWE1Yjg2MGQ2MzBjOCBweTNrCis2MzE4MyA4MjZhZmY5NWNmMGJkMWIyYjQ4Yzg0Mjg1NDhmZjA5M2UxMTdmOTNiIHB5M2sKKzYzMTg0IDY1Yjc1Zjc4MzhmM2I3MzBlYzU3Y2EzYjgyOTgxZDkyNTY2MjkwZTkgcHkzaworNjMxODYgNTFhZmQ1NjZkYjJiZDQyNjNhNDg4N2IxYTlkN2IxMGM4ZjE2NDc1ZSBsZWdhY3ktdHJ1bmsKKzYzMTg3IDZkZjAzOTRhYmJmMWJkYTJiMGQ3ZTU1ZmQ0NzY1ZTZiZmFhMmFjYmEgbGVnYWN5LXRydW5rCis2MzE4OCAyODQ1MWI1ZTgxNmZkYmEwMmJlYmI2YjZiODUzNzIyNWVkNWFkODFmIHB5M2sKKzYzMTg5IDYyNjU4YjBhY2EwODIyZTRjOTY4NTdjMWUzY2EyOTk5ZGMwYmViNGYgbGVnYWN5LXRydW5rCis2MzE5MCBlZWFkMDhiOGUxZmQwNjNlMWQzZWI0ODU1MzI2ZWY4ZTdkOGVlNTExIHB5M2sKKzYzMTkxIGE1OTY0ZWU2NjE5M2E0YjAyYWRkMDkyYTg5Njg5NTA5NTVhMjg4ZDIgbGVnYWN5LXRydW5rCis2MzE5MiBkYTZlZjExMGMzNzM1MjQyZDcxNDI2Y2FjMWI0ZWI0MjJkZWU0NjA0IHB5M2sKKzYzMTk0IGU4Zjc0ODQ3MjczMGM3YmRhMDk3OTUxZjhkNjJjNjkyYzhmOTZiNTcgcHkzaworNjMxOTUgOTExYTdiY2RjMTdlNTkxMGNkM2ZlODg4MDQyOTFjZjg5ZWZmNmM4OSBsZWdhY3ktdHJ1bmsKKzYzMTk3IDc1NTY4Y2RkYTk0NDcwOWZiMTY3NDY5ZmY3NTUyMDdhNGIzYjM5ZmMgcHkzaworNjMxOTggMzg0YzU0ZmFkYWEyZmJkM2Q0NjY2ZDJjZWY5ZjliNzc1MzQ2YjlhZCBweTNrCis2MzE5OSBhOTU5NGE1Y2RmN2ZiODYyYjQ0OWJmNzg2OGMyYzVmZGM3NDI2ZDZhIHB5M2sKKzYzMjAwIDU1ZDhjMzUzMjJhNzBkYjNhZTk5YTgxZGJlZjI1NTg4M2Q2MDM3YjMgcHkzaworNjMyMDMgYzI2YzAyYTQyMDA4MjRiZmYyNWViMWQyODgzNzAxNjk3MmNkNTAwOSBweTNrCis2MzIwNSBlY2RlZWZhOGJiNmE4NDE2MDk1YWM4N2RhZjJlNDc3MWJhMTczZDE2IHB5M2sKKzYzMjA3IDY5ZGE3YTRmMmY4ZTJkMzA5YjRlN2NjZDYxNmZlNGYxODNmMGVmMTQgbGVnYWN5LXRydW5rCis2MzIwOCA0NzY5MmY2YzgxNWVkZGJhNDg0ZTIyYTFkN2E3ZGQzMjQxNmU2YmYxIGxlZ2FjeS10cnVuaworNjMyMDkgN2M4YWNhYTI3ZWFlMWQ0NTVkY2FlZWExYjhmZDQ5NTU2MDJiY2M4NCBsZWdhY3ktdHJ1bmsKKzYzMjEwIGU0ZTNiM2ViYTIyNmZkODliNjczMDIxMTlmYzQxNzdiYTJjNGQxYjMgbGVnYWN5LXRydW5rCis2MzIxMSBkMmMxZWQ0MDhhMWQ3NmE2NTcwMTVmNTIzYjUyZmU4NzUxYTM0YzBlIGxlZ2FjeS10cnVuaworNjMyMTIgNzY0NzdiOTc4ODUwOWI0OWE0OTI2YTg5ODQwNDkwOGMxYjEyOWFkMiBsZWdhY3ktdHJ1bmsKKzYzMjEzIGYyMmVkODAyODlkMzAxNDc5Njc5ZjI4NWUxYWE2Njg5ZjI5YmFmYjUgbGVnYWN5LXRydW5rCis2MzIxNCA0OTAzOGVlMGU1YjViNTMwMDM3YmM0YTllYTRmZGUzYzI2Yzg1YTFlIGxlZ2FjeS10cnVuaworNjMyMTUgODEyMmEzMjRiN2E1NTE5ZGRhYTRiODQ5NWQ0ZTU3MzlkZWIyMTBkZCBweTNrCis2MzIxOCA2MDNhOTM1ZWFhZGE5ODVhYjUyYjFmNDAwZTgyYjFhZGVmNmM3NjdkIGxlZ2FjeS10cnVuaworNjMyMTkgYTE3NTg1YTQ1ZWU3ZWEwZjBjODQ5MzllNjc4OTE3MmU4YTI4NTQ4MyBsZWdhY3ktdHJ1bmsKKzYzMjIwIDdiNmUyMjJlYWRhNzBhYjYyZWI4MDI4MTBkY2YxN2UwMDU0NTZlOWIgbGVnYWN5LXRydW5rCis2MzIyMSA1ZGQ2YzUxYWVlZGVhNDg4YzNkMjg3MGIwZGE4ZTkwMzZhMTVhZDU4IGxlZ2FjeS10cnVuaworNjMyMjIgOGIyMjNkMzUxYjA5NTkyYjAzY2U3OTQwMzVhYjI0YmFhMjNkYTk4MCBsZWdhY3ktdHJ1bmsKKzYzMjI1IDU2MWU1ZjUwMjZlYjBhNDRiMzhiNTBmMzg0ZWQ3YmEyYTY0YzlhNzggbGVnYWN5LXRydW5rCis2MzIyNiA4NzYwOTEyYTllOWZlMDU5MDQ1NDdmMDgyMjM0MzgyNTJhZmFmMzI3IHB5M2sKKzYzMjI4IDAzZDY4NzViZGUwZWJiMTkxN2IxODA0NDUwNmVjODM4MDU1MTVmODIgbGVnYWN5LXRydW5rCis2MzIzMCBlNTM2YzY1MDE0MDJjMTE3ZDBlYTRmZjgzOTBmZWQ0OGM5ZjFiNjI1IHB5M2sKKzYzMjMxIDhmYjliZDU5NjJlNDZmYTJmYzVkZmUwMjVkZWZjZDM5M2IwNzAwN2UgcHkzaworNjMyMzMgZjJjNGFiNzRjYzY1YmNmZmQzNzdiZmY4YzE2MDZlNjJiZjA3MmQ0OCBsZWdhY3ktdHJ1bmsKKzYzMjM1IDkwNWI2MjcxZWYxMThhYzNkMjA0MDBiOGY3YWQ4ZjVhNTA4MGRjNDQgcHkzaworNjMyMzYgNzFhYTkwM2ViN2FjMjI0NmU5YmU2YzM2ZTBmNTIwOTNlMGNlM2JiMyBsZWdhY3ktdHJ1bmsKKzYzMjM4IDgzZTk1MGYyOWQ0NDMzNjZlMjVlYmNkMDc2YmRmZGZmMjViYTZjN2QgcHkzaworNjMyNDAgYTNiNGYxZTY1Y2JlYWU1NjRmZmQ0YzllMTJjMTFmMzE0MDBmMGJjZSBsZWdhY3ktdHJ1bmsKKzYzMjQxIDQyZmM5MjIxMjBkOTZlOGMxZTgxNzkwYmZhN2IxMGNhYmVmNGY5ZDkgcHkzaworNjMyNDIgOTkzZDBiYzA3ZTAwMmE5Yjk1OWRiZTlmMjVmMjA1YmZhZjRlMzYxYiBsZWdhY3ktdHJ1bmsKKzYzMjQzIGM1NDZjNDBmY2VjZTBhNjc3YzJmMDE3ZDNkYTRiYTA0NzU0ZDhmZDQgcHkzaworNjMyNDQgOTU4Mjg2YjE1ZGUwNTBkOWNjYTJhNDQ4Njc4MDRmMzRiMDI3ZTJmMSB0bGVlLWFzdC1vcHRpbWl6ZQorNjMyNDYgZjI4YjcwNjQxNTk1ZjJkMTZmZGY4ZjA2ZTA1NTBmNzMyMmM3ZmE3MiB0bGVlLWFzdC1vcHRpbWl6ZQorNjMyNDcgMTc5NTZkYmFkMGU0MWUxYTRlZGY2MjU5MWFkNDI2M2ZmYTc5OGFlNCBsZWdhY3ktdHJ1bmsKKzYzMjQ4IDcwODIxNGYzNTFmZTdkOGJkZTRhOWQyMjEwNTQ0YzMwZmUxNzJkNzggbGVnYWN5LXRydW5rCis2MzI0OSA3ZTE4ZDY1OTM4MjQzYTUwNzVmNmMxN2ZhNmQ4ODlhMDk1YjQxODYyIGxlZ2FjeS10cnVuaworNjMyNTAgYzIyOWU3NWZjMjI0OWU2YWRlNDNiMDY1ZDFkZWY2NjkzZTMxMjZkNCBweTNrCis2MzI1MSAzNWE4ODk5MjU2YzJjYTdiMjkzOTNkYjI4MTkxZDgxZTIzM2RkYzczIHB5M2sKKzYzMjU1IDRlYjU5ZDhiYWM0ZDY0YzhiMzhhOTAyMTY3NjIwN2IwZDZmNjE1ODEgbGVnYWN5LXRydW5rCis2MzI1NiAwNjYzZjJmYWI5MzQ1MmM3YzM5MTRjOTc0OGFjZTJmODNiZGQ0ZGJhIGxlZ2FjeS10cnVuaworNjMyNTggNDE2MjhmMzhjNWEyODg3NGZkNjBhODY4MTQ1ZjVkMjA5YzdlM2JjNCBweTNrCis2MzI1OSA2ZjI1OWE5Y2NjODQ4MTg4NTM0MjdiMzQ2ZTBmY2MxY2RiZWEwZWQ4IHB5M2sKKzYzMjYwIGYwYTQ3MDkxYzhkODZkZDJmM2JlZGM5YThiNjFhZWMxZjgyMzVmZDIgbGVnYWN5LXRydW5rCis2MzI2MSAxZGY0NjY3MDJkZTJhOGFkMmNiM2NhNzdhMTAwYjJhNGNlNWExYzdkIHB5M2sKKzYzMjYyIGFhYjhiOGQ0YjZhNTA4NTVjZjNhOTE3ODVlNGE0N2VjMzJhZmVkOGUgbGVnYWN5LXRydW5rCis2MzI2MyBkNWVhYTdkYWVjMmY0NzMwNWMxNWI4OGY4YTYwZGNhZGFjNDU3NWRlIHB5M2sKKzYzMjY1IDA1NGZmNDEyOGY3NDRlZWRjMWRlMmZkMThiNDg1MGRhMGExYzMyM2EgbGVnYWN5LXRydW5rCis2MzI2NyAyN2Q2OWRjNzI3OTMyMWQwZDk0NGZkNGYyMzM1NzA2NDU2ZjA4YjAzIHB5M2sKKzYzMjY4IDVlODkzMjk5MWFkZmQxMjFjM2U1NTMyYWJmNTczZThhZmE0YWRkYzggbGVnYWN5LXRydW5rCis2MzI3MCAzYWJhNDQyNTYyNjU3OWVmZTA2OThlNjk2MjhhNjI4ZjRmZTYzMTNiIHB5M2sKKzYzMjcxIDYyZDllYzljOWVmZDEwMmE3NTQyNjZkMjIwZTc2ZjRkOTkyOGUzY2MgbGVnYWN5LXRydW5rCis2MzI3MyBmNTEzYmI3YjhkOTdlNTViODFmM2IxNDVhNWI4OWYzZmVkZDhlYWJkIHB5M2sKKzYzMjc0IGEwOTJkY2U2ZTlkNGE5NjEwMjg0MzNkZGUzYjg0ZDBmZTNhOWRiNmIgbGVnYWN5LXRydW5rCis2MzI3NiAzY2MwYmY3ZjA0YjZmNTUxMGRmYzUyOGM1MjhiYWQ2NjdhYWMxMWIyIHB5M2sKKzYzMjc3IDg3NmQyZjBlOTJlNGUzYTE1NDA4YTVmZjlkNjNkYTRjMDRlZGM0MjggbGVnYWN5LXRydW5rCis2MzI3OSBlNGJiNmYxNzRiMDA0NDQ3Y2ZlMzY1MDA4YmM4NGY3OWJmNzJiZDJkIGxlZ2FjeS10cnVuaworNjMyODAgNmRjOTFiMzY2ZDlmZmU3MmJhMDI0MDViNTkwZGM3NGQzZTI0ZjAyNCBweTNrCis2MzI4MiA1N2NmMDAxYWEyYTI0ZTg2Y2JmOGEzNDdkZTg4NDcyNDA5ZjJmZDJlIGxlZ2FjeS10cnVuaworNjMyODQgZmNmNWRhYzUxMzk0YjhiYjRmZjdlMTNjZTI0ODhkNzEwZjExZWNiMSBweTNrCis2MzI4NSBiYWRhMGU4NzFhYzFjZjE5ZWYzOTc1OWMwY2VlY2ExMDU0ZTIyZTAxIGxlZ2FjeS10cnVuaworNjMyODcgNWFmMzhiOTVhMTdmYWUyOTllM2E1OWRhNjVkYmIzZDZhZjMzMjZkMCBweTNrCis2MzI4OCA5NmE4NzZhZjkzMGE0Nzg3Nzc1YjNmZjM4ZDRmZjZjN2M2NTg4M2Y3IGxlZ2FjeS10cnVuaworNjMyOTAgOGExMGE0MTE5ZmMyNzU3M2FmZWFjZjk1NzI2ZTBiMjRiNjI4ODQzOCBweTNrCis2MzI5MSAxYjQ0ZWQxYTkwNDY1ZWU0YWRjNDA0YWZhMzExNWE0MTYyYjhiZWUzIGxlZ2FjeS10cnVuaworNjMyOTMgZGM0MDk4Y2E4MjNlMjg3OWJlZjM1YmU3MmZhYjIwZDQ5MGU2Y2Y4MyBweTNrCis2MzI5NCBkNGI3NDNiZGViYjE2YzVjOTFhYzVlOTZiYTNiNzllOTNjMmRhZGEzIGxlZ2FjeS10cnVuaworNjMyOTYgY2ZhOGM2MThlZDM1MzcwOWFhMjBiZTQwMzNmZDc0MTNlNDdhYmNmOCBweTNrCis2MzI5NyA4MDQzNWJjN2FhYzQ4MzhmODhiNWJmYTU0MGMyMjlhMjE4MGIwYmM5IGxlZ2FjeS10cnVuaworNjMyOTggMWU1NWIyZDFjOTNlZjM1ODdjZGMyNmM3MWVmMTNjMWQxYWViODdiMyBweTNrCis2MzMwMCA1OWJjZGZkMjc1MDFmZWE0Y2QxMzI1MWVmNWEwMjZkMWE3MTQ0MmY5IGxlZ2FjeS10cnVuaworNjMzMDIgNTI5ODczOWYwYTRkZmMxN2Y0YjFkYjQ5MWVkYTgyNTExMmRiNzhlMiBweTNrCis2MzMwMyBkNGFjZWQzM2Q1N2E1OTI0YzMyODdhOTVkYzg5N2Q5MWNhMWUzZmZjIGxlZ2FjeS10cnVuaworNjMzMDUgZTExNmNhMjZkOGYxY2E2YmJjMDBjNjlhMDhjY2EyZTk5ZDFhNDdjZSBweTNrCis2MzMwNiBlZDUzMmNhN2FlNzVjZmQ2OWFlNmFiODBlMTcwODdjZTA1NDY5MGI2IGxlZ2FjeS10cnVuaworNjMzMDggYTdjMWIzMTcwMTEzODMyYWZhNmVhMDQwMTE1MWRjZmZiMDVlNDk2NSBsZWdhY3ktdHJ1bmsKKzYzMzEwIDVhNDYwODI3MmM1MDZhNmMwNDI4ZGEyM2UxNjk4M2ZjZTZmNjUyMjcgcHkzaworNjMzMTEgZmRhNGQ0MWEwNzczODc5NTY5Nzg4MGM3ZjllY2EzMDI2NTViMGE3ZSBsZWdhY3ktdHJ1bmsKKzYzMzEzIDFkNjJkMzI2MTJkNmRjZmIyZDI2NDYyYjVlZWVjOWEzOTBmOWFkMDIgbGVnYWN5LXRydW5rCis2MzMxNSBhOGE1N2ZmNmY1NjhiYzRlOWQzNmQwZWE2YzBiYzEyMjZhNTIwNWZjIGxlZ2FjeS10cnVuaworNjMzMTcgMTM1NmE0MTg4MzBiMzRjYzE4ZmYzNzM1ZmMwZWNlNjZiNTRjODcwNiBweTNrCis2MzMxOCA2MjhkZDVlYzRkZDJlOGE3ODRhMjBhMmIzYjhhYWQwOTMxNGZkNWFlIHB5M2sKKzYzMzIwIDE1NzNjNzc2ZGY4MmVjNTU1ZThiZjc4NzhmY2NjZjkyODIxZTc0ZjcgbGVnYWN5LXRydW5rCis2MzMyMyBkNTkyOWNmODY4Y2JiYjUyMzFiMTkxNDNlOWIzOWJjMDlmNjNhNTVhIGxlZ2FjeS10cnVuaworNjMzMjQgOTE4OTYyMjcyNzJhNjkyYjUxZDUwYTBiNTEzYzJjOTBlOGM5MTc3MCBsZWdhY3ktdHJ1bmsKKzYzMzI1IDhlMDAxNzk4NmY1MGVlNjRhMTdlODdmOGNjYTBhNGQ3OGVjMjBmZDMgcHkzaworNjMzMjYgMzkxOTc5YWY2NjJiYzQ4ZGFkNjc0NDRlNGFlZjI2ZWY5ZjljZjY5MSBsZWdhY3ktdHJ1bmsKKzYzMzI3IGU2OGU2MTA4NjJiZWI1ZjlhNTcxMmNkZGIzMzJhOTM1OTVlMmNlZjAgbGVnYWN5LXRydW5rCis2MzMzMCA4N2E3OTM1MjM0MmM2MjE1ZWFjZTBmNmNjZTQzNjYxNzU1NTY2YzhmIHB5M2sKKzYzMzMxIDA4MWMxNTgwNmUyODdjMDM2NjE2YTUwODJjZjdhNGJlYjkxNTA2OTcgcHkzaworNjMzMzIgMGQ1NGM3MDU2NDY4YjMyYTY4YTU3N2YzOTIzNjRiM2RkOTZhNWFlMyBsZWdhY3ktdHJ1bmsKKzYzMzMzIDM5N2YyOWRkODJiZGM1ZGM0ZWYzZmY1YjcwNjYwNTUzNGFlYzczMTcgbGVnYWN5LXRydW5rCis2MzMzNCAzMWNjOGUxYThmZGY1ZjIzN2Y1ZTlhOTY5ODkzOTlmZjkyYzFmNmI1IHB5M2sKKzYzMzM1IDk2MGFkZTg1NjA3OGQ2NTcxMmFkNjdmNDA2NmVjNDY3ZDA4MjJlNzYgcHkzaworNjMzMzYgYWUxNmU5NGJiMDNhZThlZGZkNzAzNjQ4ZWU1YzQwNThlNmZkM2VlNCBsZWdhY3ktdHJ1bmsKKzYzMzM3IDJiOGY3NDRkYjc5YjcyMTU4N2FjMDZkY2JhNTVkNzhiMzI2NTI4NGQgcHkzaworNjMzMzggNjc4MGYwMTU5OGEyMzQ0Zjc5ZTczZjFkMjU2MTdkM2ZiNTNlMjhhOSBweTNrCis2MzMzOSA4ZDhlMDZmNGJlMWZmNGJmNmU0MjUyZGFlNDU3MGE0M2JjYTgyNmRhIGxlZ2FjeS10cnVuaworNjMzNDAgMGM3MTQyYzU2ZDdlZDllZjU3NTU4Yjk4MzJjMGE2OTRjY2ZjNWIyMCBweTNrCis2MzM0MSBhOGFlMmFhMDhlN2ZmNTMwNWY4NzVlYzkyYzQ5NDYwMTMzNzYwYTdkIHB5M2sKKzYzMzQyIDNjMDNlOWI0NjY5ODQxNzVhZjhmODY3MDhlYWRlZGMwZTc2MWM5ZDMgcHkzaworNjMzNDMgNTkzYjY0OTkwNGI4NjYzNjA0MGViYmNkYjFiNDFkMTYxYzM4M2E1YyBsZWdhY3ktdHJ1bmsKKzYzMzQ0IDM2NTY4NzM5ODUxODdjODgxMmUzYmY2OTI2MGQ3Y2YyOTRkMWJmOGIgcHkzaworNjMzNDYgMmUyYzcxMmZlMjZkNjk3ZGQ2NmM5Y2RhMDM1YTYyMGZiZDdjOGFmOCBweTNrCis2MzM0NyA1N2Y2MWRhZDdiM2I0ZjNmMzhiNGU2OGU2YWVkMWQ3MzkxMmMzMDgxIGxlZ2FjeS10cnVuaworNjMzNDggMzQwN2JmOWRhYzM4N2E0YzRhYjdjZGYwYmFmZGFhNmE4ODFiY2U5YiBsZWdhY3ktdHJ1bmsKKzYzMzQ5IDU4YTBkNTUyNGY5YTNiYTk1MDYxNTNkMWJmMDJhZjQ4ZGFkODc4ZGQgcHkzaworNjMzNTAgOThmNjg3MjZkYTAyZDUwYTZiNTljYzQ4YjAxMjFiZDU3MDdmODAzMSBweTNrCis2MzM1MiBiNjMwNzI5NTcxZTY2OGY0ZTRlMDcyNjg2YTdhMmZmYThjMGZjOWZkIHB5M2sKKzYzMzU0IDlhYzExMDQzYjM5NTM2M2UxOGVmMDNkZmFjOTZjNzdiNzYwN2VhZDkgbGVnYWN5LXRydW5rCis2MzM1NSA5NDdjYWVlMjM5OWVmMWY4OTFkMTQyMzkwNTQxZWI3MmZkOGRlOWUxIHB5M2sKKzYzMzU3IDNkZjA5MGVkNDgxMDNkNjIyOTIwOTQ1ZmU3ZjAzZTc0NmM5YzJmNGIgbGVnYWN5LXRydW5rCis2MzM1OCBkNmZlNTAyMzM2MjYwZjYwMTM0MTgyZGUyYmM5ZDlkZTYxNzI0MDM1IGxlZ2FjeS10cnVuaworNjMzNTkgNGVhOTkzMDllNTI1NGM4YjU2YTIzMmQ4ZjY1MDQ4MGMxNWQxOGJlNSBweTNrCis2MzM2MCA0ZjFhMDc5ZGY0MjdjYmQ5ZTgzYWE4ZmVhYTkwMWI5YjFlM2FiYWE2IHB5M2sKKzYzMzYxIGIwYjMyNzMyZjY2ZWI3YmUyNjBiN2NkMTQ0YmUzZjk5NDIzNTQ0MTQgbGVnYWN5LXRydW5rCis2MzM2NCBlZDEzMDQwYWMyZTZlNWY3ODQ3OThmYWZmMTlkZGJkMWRkNTNiOWFlIGxlZ2FjeS10cnVuaworNjMzNjUgZmYyZGMwMmJhNDFhYTNkMTExMzM4YTM3NGZhZWVmNzMwY2ZkNDM1YyBsZWdhY3ktdHJ1bmsKKzYzMzY2IDQ1NjUwYzI1YTAyODY1MjY2ZjM2NzM2ZjI0YzU0NGMzM2E0OTdkZWYgbGVnYWN5LXRydW5rCis2MzM2NyA1NGZkMDQ1ODU1MGM2YTc1MDM2MjE1ZGZkYTU1MGQ0OTI4MzZlYjIzIGxlZ2FjeS10cnVuaworNjMzNjggYWE4ZTEzMjc5YjViMWFjMWNjNTVlNWZmNzQ3ZmQ0ZjA2MjFjOTk4NiBsZWdhY3ktdHJ1bmsKKzYzMzY5IGEyY2VmOWU4OWI3YzJlNjk4M2UyM2Q1ZDA5ZmE1MjVlNzAwMjQ0OWIgbGVnYWN5LXRydW5rCis2MzM3MCA1ZDFhZmY0NmNjMGRmMWUzODNiM2JhZjFmMGEyMmExNWRiNTYyZTM2IGxlZ2FjeS10cnVuaworNjMzNzEgYjI0MDNkNDcwYjY5ZGQ3YzhiZmJmMDY4NTdlN2Q5MTZhYjYxOGQyZSBweTNrCis2MzM3MyBkZDBiY2MyMTZmZTM1OTIwYWY0NDZlMjg1NzM1NGM3OWMzZTNmNDFkIGxlZ2FjeS10cnVuaworNjMzNzQgM2I4MjdmMzY0N2NiMTg0NjhhYjY0MDY4YTU5ODJhOWY2ZTM3YmYzYSBsZWdhY3ktdHJ1bmsKKzYzMzc1IDg5M2E0ZGMxN2E5MWM1ZWJhMTM3MzUzNzI1YmU2NjZjNWVhNWU3NWIgcHkzaworNjMzNzYgODhiYjlkZjM4NWRjMGQ3NTA2MDBlZjM2Zjg0Yzg1YjdhMzNlNDRhMCBsZWdhY3ktdHJ1bmsKKzYzMzc3IDBmMTU3MzVjMTgzMWY1NGVhMGZhZDVjMGExZmRiMjdkYzc3ODY4YjIgcHkzaworNjMzNzggNjM3NDFjNzUyMWFhMGMyMjMzY2ZhOGFjNDFhZTU4NDU4OTRjZDZiZiBweTNrCis2MzM3OSAwZTY3ZTIxYTQxMTMyMGM3NzIyZmJhZjNjNTRkN2NkNWI4MTMyYWU0IHB5M2sKKzYzMzgwIDUzMDQwNDZiYjM1OGQ1NjAxNWNiNjk3NTA1ZGYzMmE3MzlmYjk2MTYgbGVnYWN5LXRydW5rCis2MzM4MSBhYmUzNWE4N2IwMWRhMzAzMTFiODk3MzVjZTk2ZWRkOTA3NDE0YmQ3IGxlZ2FjeS10cnVuaworNjMzODIgNjBiODU5MjRlYzZkMDI4ZTZhMmZiODdjNzZiNWI0NDBjZTE5N2NmNCBsZWdhY3ktdHJ1bmsKKzYzMzg0IGNlN2FhODhiNjY5ZWExMGRjMWNjNzk1YWMwYjRlMGYyMjA0ZTI2N2MgbGVnYWN5LXRydW5rCis2MzM4NSBhMDJiYzJhODRkMTljY2QwYjgwMmI4NDhkMjg0NzZkNjIwMDBmMzQzIHB5M2sKKzYzMzg2IDg4MGZlODg3N2RmOTc4YjllY2UwOTI3ZDIyMjc2YWU0YjkxN2U2ZTQgcHkzaworNjMzOTIgYWI4MGJiZmE2ZjBjMDg5MjU0YzVlNTZhOWRmYjMxZDYxYWRlZGZkYSBsZWdhY3ktdHJ1bmsKKzYzMzkzIGJlNTgxYWNlYTRlNzM5OTZiMzc0ODc3Nzk0ZTFmMTQ3ZDk0OWQ1OTQgcHkzaworNjMzOTUgNmFmNjQ1MTIyOTRhZDA5ZDcyN2IxZjBkYjEzMDRkMGQ1NTY3MmQyNiBsZWdhY3ktdHJ1bmsKKzYzMzk2IDQyYjc4ZTBlNjg0ODA3MzQ5NjIxNTA0MjQ5YzY1ZDE4YjhhMzAyYzcgbGVnYWN5LXRydW5rCis2MzM5NyA4NGJiNzJkOTBiYzcyNTI5NjM4MTUzYTdmZDVhODVkNmQzZmJlZGY2IGxlZ2FjeS10cnVuaworNjM0MDEgMDY4MDc5N2FlNDU0NjI5ZTA1N2ZmMjIzZTI2ZGIzMTIzMDExOGVhMyB0bGVlLWFzdC1vcHRpbWl6ZQorNjM0MDIgMjE0NGM5ZjM2NWM4ZmFhZmYzMTNmZTVkMmE1MTFmOWFiNDJlZGExZCBsZWdhY3ktdHJ1bmsKKzYzNDAzIDFjYTk2NzU2Njg4MGU4MDY0MjAzYmIyM2E3ODBmODdiNzI4NWM2ZDIgbGVnYWN5LXRydW5rCis2MzQwNCA2ZmJkMDZkYjcwNzc2MDE2ZDAzNWUyYzU3NTgzYmIzYmNiMDUyN2E2IHJlbGVhc2UyNS1tYWludAorNjM0MDUgNmI3OTc3MzE0YzAyZmQ2MWI3ZmVlMmFjZDc0Y2ZiZTU2MjhkYjQ3YiBsZWdhY3ktdHJ1bmsKKzYzNDA4IDNiYmY0NGQzMjM2MTIyYWNiOTA3ODAxN2E0OTM2YmZmOGUzMWU3YWIgbGVnYWN5LXRydW5rCis2MzQwOSBmMmMwM2Q3MTU5N2Q0OGIyYzRiOTYzYjY0ZDBjMjY3ZmFiYTkwOGVlIGxlZ2FjeS10cnVuaworNjM0MTAgNjk0ZDM2ZmI2ZjRkZmEyNjY4MGM0MTYyM2NlNzFkODAwMDY1ZDA2ZSBsZWdhY3ktdHJ1bmsKKzYzNDExIGE5N2ViMTc3ZjNhNzc5Y2Q5YTRhOTBiYmY2Y2Y1YTUyYjdiMTJjMGEgbGVnYWN5LXRydW5rCis2MzQxMiBhYzkzZWRjMzk2YTY0Zjk0YjAyN2Y2NGQzNDAzOTJhNmI4ZGEyNWRmIGxlZ2FjeS10cnVuaworNjM0MTMgYjY2MDUwZGI4NDFmMDViYWIyODIzZjE0NWY1ZTUxYzQyZjQ1ZDE3NiBsZWdhY3ktdHJ1bmsKKzYzNDE0IDY4MzZlOGYxZGVkYmNkNDZmMDNkOWY3OTk5ZDIxOGZmMjU5MjFkMzMgbGVnYWN5LXRydW5rCis2MzQxNSA3NDYwNDE1ZGE4ZmVjNzY5MTAyODZiN2U5MzNkYmM4ZDlhYTUzM2ZjIGxlZ2FjeS10cnVuaworNjM0MTYgZjNkZGE5ZDM2NjhmZDMzMjNiNzk5OGVkZTE3YzUyMWU2ZmRjYzY2MiBweTNrCis2MzQxNyBkNjMzNDRiYTE4Nzg4OGI2NzkyYmE4MzYyYTBkZDA5ZTA2ZWQyZjlhIHB5M2sKKzYzNDE4IGVmNGNjYTJkNjE3MTNkMzNjMmE1MDI1MjM1ZDQwMzBlMzY5NWQwMmMgcHkzaworNjM0MTkgMjQ5NjE4ODhhZDk1NmFjZTgwNzI3NTYyZTc1NTdjNmEyNzg5Zjc4MSBweTNrCis2MzQyMCA4YTc0NjEyZjNkMmJhZTFkYzIyYmY1NjA0ZmM4Y2Q0MTJkZTA1Njc0IHB5M2sKKzYzNDIxIGQ2ZTFlYTIxYzk0OGVjMjg4NTFmODdlZTExZjUyMjlhOWUzYWVmYjcgbGVnYWN5LXRydW5rCis2MzQyMiA5MjQwYTU5YTI1ZTlkZGM0MjJjMzU4NDgzMDdhMTNiMDU3YmFhNzJmIGxlZ2FjeS10cnVuaworNjM0MjMgY2NlMWIyNDNjMTFkMTM2M2Q4MTcxMjA0ZmVmOGVmM2RkZDE3YjdiNSBweTNrCis2MzQyNSA3MTE4ZmFkZTU3NWI5ZWMxZWQyOTgxMGRjM2JjM2Y4NjJhZjY0MmRmIGxlZ2FjeS10cnVuaworNjM0MjYgNjRmMzg3MzQzOGIxY2IyNjQ1ZDE4N2JmNGRkZGE0ZWRmY2Y1ODFhYyBsZWdhY3ktdHJ1bmsKKzYzNDI3IDVjZTkwNGM5MGU2MThjNzViMTQyZTNkMGI0NDFmNTVhNmJlNGI0NWUgcHkzaworNjM0MjggZDk1M2VhNThjYzhiY2EzNWU0MmE5N2ZkZmFkZmJiNmUwODcxZGY5MiBsZWdhY3ktdHJ1bmsKKzYzNDI5IDdhMWRjM2U3Yzc5YjUyNDM5OWViYTNmZDgwOWQzMDEwYTcwYjA1MTUgcHkzaworNjM0MzAgODAxYTA5ZGQwZWI4YWJkZjliMmZlYjc1OTVjZGE0NjBhZWMxNzA1YSBsZWdhY3ktdHJ1bmsKKzYzNDMxIGFjNTlmZGQ4MGU0NTllNjgyMDBkMjZkYTBhYTFjNDZmZDcyOWFjYjkgcHkzaworNjM0MzIgMGFhMWJkZTlkMTk0YTk3ZDYyNTdmNDQxZWRiNDYzMTVhYTM4MGQ3NSBsZWdhY3ktdHJ1bmsKKzYzNDM0IDMzYzdmZTg1ZTM1ZGZmNjAwMmQ5ZjlmZDJiOWMyZWUwN2U5NjUxNWIgbGVnYWN5LXRydW5rCis2MzQzNSAxMmMyMjlkMDIxY2MyYzYwYTQ2NjljMjI0ZWFjNzgxMjM0MmNmZDU0IHB5M2sKKzYzNDM4IGY4NjJkZmFmOWE0YmUzYTMwNWZiNWViZDlkNzRlNDA3MTgwMjk3MTEgbGVnYWN5LXRydW5rCis2MzQzOSA3Mjk2YTJmYjQ3ODZkZGE5MDdiNDZlY2Q4NjE5YzE4Y2RmNzRmNDdlIHB5M2sKKzYzNDQwIDNkNWNkZGM2ZTVlN2ZjNTAwMzY4YjUyY2E2YzZmMDQ4ZDIzMTkyZGUgbGVnYWN5LXRydW5rCis2MzQ0MSA1ODVmN2NhMzhhODVhZjgwOTcxMzVjOTM3MmY1MDcyNDdhOWNkYzcxIHB5M2sKKzYzNDQzIGJiZDMwYzQ5MmE5OThjM2VkNmUxNzA4MDc0MmViMmIyNmQ1ZmJjYTAgcHkzaworNjM0NDQgY2RiNzVhZjIzODVhMzFmZGE2OTNkMTYzOWVmYjg2MTY0NTllY2E0ZSBweTNrCis2MzQ0NSA5ZjM1NDAwMWVhMjUyNzExNWRhNWY5MmNiYzU2NTQ4ZGJkNDU2OTczIGxlZ2FjeS10cnVuaworNjM0NDYgZWZlMjJlZWYyNmJlM2UyNzVlN2IwOGU1MWVlYzZmNDRlODBlZjA0OCBsZWdhY3ktdHJ1bmsKKzYzNDQ3IDIwYjFjNWM0ZTMwNDQ1ZjJiNmE4N2M2OGNmMTJhZjJjOWVmNmI3YjggbGVnYWN5LXRydW5rCis2MzQ0OCBhOTM4NTI5ZjRkNmRkM2EyMTg5MTMyNzI4MDc5MGJkNzIwYzI4MjM0IHB5M2sKKzYzNDQ5IDJlOWY1NzJiNzMyMjdhODU5YTQ5Y2QyMGQ0MTVmY2QxZWFjNjJiOTQgbGVnYWN5LXRydW5rCis2MzQ1MCBiODZiMjllMGNmMzI5ZDEwYzE4NjMyZmRhNDg5Nzc1YWQ2ZTIxYTVmIGxlZ2FjeS10cnVuaworNjM0NTIgMzBmNjMyYjM2ODY4ZTlkNzBlYWQyMzEzZDU2MTViNDE5MjVhOTQwOSBsZWdhY3ktdHJ1bmsKKzYzNDUzIDM3NDk5Mjg3Zjc1OGE3MmRiMmQyYTliMzkwM2YwZmZhYjE4NjFjYmIgcHkzaworNjM0NTQgNjFhNjc1YmE3OTA2MDI1OWM3YTk5MjFkMDFkOTQ5MzFiYThmYmFmNyBsZWdhY3ktdHJ1bmsKKzYzNDU1IDM2YzcxZDNhNmVmOGMxZTg4ZmRhMjEwZGVjMzg0ZGVhYmNmNTY0YTggcHkzaworNjM0NTcgMzA3MWEzMzdkOTIxZjNlYmFlZTk0MjI0Njc3Yzc3ZjY0Y2U4MGJkNiBsZWdhY3ktdHJ1bmsKKzYzNDU4IDZhNmNiOWQ0YmY5NDUwMmQzOTg4ZjNmZmFmZDgwNWFhMTk3ODdlYmIgbGVnYWN5LXRydW5rCis2MzQ1OSA3OTZjYjkzYzk3MDdmN2JmY2Y4OTIzYjE2N2I5OGVkNWIzNGJjZDVlIGxlZ2FjeS10cnVuaworNjM0NjAgY2Q5MWRhZjAzMjdjNmVkMWUyNTJjZDYyMDkxMjFjMzVlZGJmYmI0NCBsZWdhY3ktdHJ1bmsKKzYzNDYyIDEyY2ExZTgyMDI4MmJmNDljNWQ5N2VlZmQ5NzcyN2FhMWMxOTA1MjMgcHkzaworNjM0NjMgNGVjY2U4ZmVkNmUxZGI2NDNmYWNjZGFlNjkwODNiNjc0MmZkYzA3MSBsZWdhY3ktdHJ1bmsKKzYzNDY0IDk1Y2IwMDkzNjZkY2I5MzA5NWU1ODUyYjI5MjNlOGI1OWI0MGI5YjkgbGVnYWN5LXRydW5rCis2MzQ2NSA4YjYyOGNhMjE4ZjNkNmMzNjI5YmVlY2E1OTA3N2MxNDNhZGQ5NTEzIGxlZ2FjeS10cnVuaworNjM0NjYgYTFmNzA0MzVkOGUzNzNmOTYwYjk4MjNlZTJmYzcyYjYzZmU5NGFlNiBweTNrCis2MzQ2NyBjYThkOGM4ZjI5NjAzMjUzNmVlYzA4OThmZGZmMTUwZThmN2Y0YmYyIGxlZ2FjeS10cnVuaworNjM0NjggODUzMjZmYjc1NWUyOTkwYTFkYzBiMGE0OGQzMjFhZDYzZmQxZGY0NCBsZWdhY3ktdHJ1bmsKKzYzNDY5IGU4MDg1MDA1NWI5MzE3MmMxNDBiYTIxMmFjY2EzYTFlN2NiMGM5ZWYgbGVnYWN5LXRydW5rCis2MzQ3MCBiODNkN2QwMjllMGUxNzVlYjQ5NTE2MjA0NDg3MjQ5MTcxMjJkZWYxIGxlZ2FjeS10cnVuaworNjM0NzkgNjNkZGQzZWU0YTJkMWQ3ODI4YWFjOTAwNTBjNDcwNDlmYzc0MjRmMCBweTNrCis2MzQ4MCA4NWJhMDg3YzBjYzc0YjJjZjc1ZTBkYTAwMTA3OGZkODQwZDEwMjgxIGxlZ2FjeS10cnVuaworNjM0ODEgNDU0ZDM4YzFmNDdlOTFhODAyNGU2YWZhY2RjNDYzNmM1MWI1NTNmNSBsZWdhY3ktdHJ1bmsKKzYzNDgyIGVhYWExOWU5NDk5ODNjNzE2YmIwNTZhMDdjNzY5YWI3ZTgzNzI4MzkgcHkzaworNjM0ODMgZDE3ZmFjODk2YTBiYzZiZmZjZjA5ZWIxNzRjYTkwZjFjZmJhNTAxYSBsZWdhY3ktdHJ1bmsKKzYzNDg0IDc3NTU3MjE2YmEzMjFhMTYxNjE4ZDdiOTczMzg5ZmVhYTk3NWQ3MDEgbGVnYWN5LXRydW5rCis2MzQ4NSBkNWRkOGE4NTI5NzA1NmFlY2Q3YWZjMTFlMTFjNWUzYzk4ZmY1ZjhlIGxlZ2FjeS10cnVuaworNjM0ODYgNWNlYzQzNmQ2NGEyODEyYWY3NTJhMGI5ZjI1ZjU2MTU5MDBkODljNyBsZWdhY3ktdHJ1bmsKKzYzNDg3IGI1MzYwNGZhZDU0YjBlNjYyOTAxYTdiYTViNDExYTc3YTQwZjFhNzEgbGVnYWN5LXRydW5rCis2MzQ4OCBhZTE5MTIwMjMyYjRhOGUzMzkwNTY2NGUxNTMyZTNlOGI1OGE4M2Q3IGxlZ2FjeS10cnVuaworNjM0ODkgN2ZjOTZkN2VjZjJlZDcxY2MxZjE3NmQyYjhmZmNiZTFiODUwZjc0ZCBsZWdhY3ktdHJ1bmsKKzYzNDkwIDUxZTMyNGI1NzNiMDk5NDZiN2YxMmE3NWJmZDVkNWI3MjAwODRlNzUgbGVnYWN5LXRydW5rCis2MzQ5MSBhOGYxNTgzYjc4ZjZmZWU3MTc2ZjdjZTJkMDhmMzBjYzBjYjA4NTkwIGxlZ2FjeS10cnVuaworNjM0OTIgNGFkNGJlZjkxZThlN2Y0NDg5ZTk3MWUxNjgyOTA2MGMyNGE5NGJhYyBweTNrCis2MzQ5MyBmNDE5YjJlOTZhOTg3YzFkMzZjNzhiODc4OWEyNmMzOGNlYWJkMDUxIGxlZ2FjeS10cnVuaworNjM0OTQgMTczZTVlOGIzZTU5ZWQyYTRhMGJhYTEwYjk5MDQxNWIwOTYyNjZjZSBsZWdhY3ktdHJ1bmsKKzYzNDk1IDA5MTI1MTFiOTg5NzYyYmQ0OTlkZGUwMjUwNzM5YzA3MTA4Y2ExYWYgbGVnYWN5LXRydW5rCis2MzQ5NiAzMmJkMTg3MDlkZmRmMDA0ZWFjMzlhMGVhMGZmMGI3NjUzOGMzOTM0IGxlZ2FjeS10cnVuaworNjM0OTcgMTRlYjgwNGIzZmM3ZGYxYzMyMzZmY2NmYzE5NTNkYjAwZTA0NDUzMiBsZWdhY3ktdHJ1bmsKKzYzNDk4IDU5YWIyY2YwMDJmYThiNWFkNjg3ODJjYTFjNTg3ZTljMzJiNjhjYTIgbGVnYWN5LXRydW5rCis2MzQ5OSA1MmE2NjM3MzQzN2QzMjM3YzRmOWIyZjJlYWRjYzZiMmI4MjZmNGI0IGxlZ2FjeS10cnVuaworNjM1MDAgMTJjNTZkMmViNGQ5Nzk5NTk0MDM0MDU3YTEwMTYxNWI2Y2U3ZmJkYiBsZWdhY3ktdHJ1bmsKKzYzNTAxIGRlMTFiZjg0NDkxZDZjZTQxOTUyMWNkYTZhNDIzZjgwYmIyMjBhY2QgbGVnYWN5LXRydW5rCis2MzUwNyA0NmJkOGNmYTc1NGM1ODlhMzY1ZmY4MTNmZDcxMmVhMTgyMjNlM2M0IGxlZ2FjeS10cnVuaworNjM1MDggMzI5MWNlNDkyOGJjNDQ2MjZjNmYyMGNlZTNhNjkyNTE4ZDUzMTI3YyBsZWdhY3ktdHJ1bmsKKzYzNTExIDIyZDJmYjc2MWFjMWQzNDkyOTk3YzMzZDIxZWIxMzM1ZDU4ZDdjNzMgbGVnYWN5LXRydW5rCis2MzUxMiA5YzkzMGEzMmNlYmIyNTc4ZWQzMTQ4YzI1NWQ2YjdlYmQwYmY5MzEzIHB5M2sKKzYzNTEzIDUzOGU0MTBjMDA4ODMxN2YwZWMyNWZmMzNmNWVjNDc0ZTAxZTBlNmUgbGVnYWN5LXRydW5rCis2MzUxNCA1NWE1MGQzOTFiYTlhODM5MjdhZWYwNjZhMTNhODI0Y2ViYTBmYmU3IHB5M2sKKzYzNTE2IDJkN2ZhODRjODc4ZGI1OTJiYTU5NWZmYWM4N2RmZDcwOGMyY2VlNTYgbGVnYWN5LXRydW5rCis2MzUxNyBkMjkwMDUwZWQ4YjIyYTJjNjE3MjA5MmUyYWVjMWU4NDNjMjkwMDFkIHRsZWUtYXN0LW9wdGltaXplCis2MzUxOCA3YWE5YWQ2NTgwMTRhNDNiYzQ2MDU1NDg2Nzg4MWU2YzA0Zjk5ZjMzIHB5M2sKKzYzNTE5IDlkYmNhMjc1NGI0MDZjM2MyMmU2NjIyZmFhMTAyOWY3ZjllOTBiZDUgb2trb3RvLXNpemVvZgorNjM1MjAgMWQyMjcyM2E1Nzg1MjQ2ZDZmMjc0YmJlZmI5MDg3NjY1YjZkNTVhNSBva2tvdG8tc2l6ZW9mCis2MzUyMSAzNjA3Nzc2NWUxY2Y0NThhMGM3MDk4NTQ2NjJlMDE0ODM4NGNkNGFjIG9ra290by1zaXplb2YKKzYzNTIyIDc3OThiYzg2YWJhMzJhMTVlNzY4MmU4OTIwN2ZlMzY2MjUwYjIwMTUgbGVnYWN5LXRydW5rCis2MzUyMyA4YzgxZmFhMjEwYzFkZGVmMjIwMGRmMTRkM2Y2ZThkMjgxMzk2N2M1IGxlZ2FjeS10cnVuaworNjM1MjggNWJlMmQ4MmFjNWFjZDU5NTc4NzdkODczN2JlNWNjZDYyZGIwMzI1NCBsZWdhY3ktdHJ1bmsKKzYzNTI5IGNkZDAwMDA2MzFjYzc4NWFlMzgwODExZmM0N2JhYzg4ZTBhNjMyNGYgcHkzaworNjM1MzAgMmMzNGYxOWUzOTIyYTZhZDE0ODk3YmZiNzMyOGM0YmExZjI5MjY0NSBsZWdhY3ktdHJ1bmsKKzYzNTMxIGM2ZGJjNDMyM2EyMmQyNWU1MDUyOThkZTk1MmIyNWUyNGJhNmNiNTcgbGVnYWN5LXRydW5rCis2MzUzNCA4MWMzYTZmOWQ4NWYwYTNkYzJhNjNjOTc2YWU4NGY4MDlkNmQ0YjY5IGxlZ2FjeS10cnVuaworNjM1MzcgNGY2ZWE1YzU5YWIzMWJhNWYwNWI5NzlkYjk4Y2U0MDZhNTYwODkzMSBsZWdhY3ktdHJ1bmsKKzYzNTM5IDM4YTk3ZGNjMmM5YzVhOTNlZTkwZGI0MDA2MGNmYWM4YzAzYTJkOTcgb2trb3RvLXNpemVvZgorNjM1NDAgNzExNGUxZWZlM2Y5Njc0ZTkyY2U5ZDM2NGI3NGM0ZjNmYTk0MjFmZiBsZWdhY3ktdHJ1bmsKKzYzNTQxIGM1MzRiNjlhYjg3MWQ1YTEyODYxYjRiMmFmYmQ0YTBlNmRjOTRlODEgbGVnYWN5LXRydW5rCis2MzU0MiAyZmZmZGVkYjEwZjhjNDgyNTU1YzU0MTNlMmM5OWY2ZjJlNzU3OWNjIGxlZ2FjeS10cnVuaworNjM1NDMgZTE4NTIzZjg0MmQ3ZDEzOTUwZGQ5OThhMjE1YmU1ZmE0ZjA5ZTMwYiBsZWdhY3ktdHJ1bmsKKzYzNTQ0IDVhMjk1NTI0MTJmYTJiYzZlZThhMjAyYjZiODViMjc3MDU4MTY3MjAgbGVnYWN5LXRydW5rCis2MzU0NSBiYjA0MzMyYzdmMDE3ODJiZmFmMjliMzJkZGIxNjE1NmI3YzlmMDk5IGxlZ2FjeS10cnVuaworNjM1NDYgNzFkZWVlNmI5NDFlOTNiODk1YzFlNGNkYmE2NTc2ZDkwODlmZTEyYiBsZWdhY3ktdHJ1bmsKKzYzNTQ3IDlmYmM0MWFiZGQ0YmVlMGI4ZjRlNDQxNjI0M2M5NWY0ZjQ2NTNiNDIgbGVnYWN5LXRydW5rCis2MzU0OCAzNDJmYmRjY2I3ZDk2OWZmZGY3MmVhOWJjMGJlNzJjMWQ1Yjk5NGMxIHB5M2sKKzYzNTQ5IDk5MTc2YjlkOTBiMzdmZjZmZDcxYmQxNGUwMzVmNWZhNzU5NTNhNTIgbGVnYWN5LXRydW5rCis2MzU1MCBlMmJlZjQ0ZjQ1N2RkYzIzNzQ0MDY3MDJmYTNiNWYzOGZmNjQ2Nzg1IHB5M2sKKzYzNTUzIDU5NDgyOGVhMDNhMTA1YWQ0M2VjZjZhMjZhMzAxN2EyMzY0MTdiODggbGVnYWN5LXRydW5rCis2MzU2MSBhMzBmZWRlODc2NDNkNWJiMDE2ZGFlYzQ2Y2EyNzdmYjg1MmYwNmYxIHJlbGVhc2UyNS1tYWludAorNjM1NjIgNWVjOTUyOGM5M2RlYWE1NmRmOTgyNTc5MmEzZDdiMzcwMWM0ODQwYiBsZWdhY3ktdHJ1bmsKKzYzNTYzIDVkMTkyOTllZTM0NjNlZDdkMzc5ODQ0ZWY0MjhlOWNiNzkxNzlkNWIgbGVnYWN5LXRydW5rCis2MzU2NCBjNWE4NWU0ZjllODY2NmIzZGFiZmE2YzdmMzYwMjc4OTlkYTQzM2IwIGxlZ2FjeS10cnVuaworNjM1NjUgYTIxOGQ1Y2IyNThiMjA4MzEzMjgyM2EwOWRkZjkyZDk1NThiMGIxZCBweTNrCis2MzU2NyA0NmM2Yjk3ODlkZGVjYzMwNjgyMGYyNmYwYTY5MWU5NmM1NTVhMmI1IGxlZ2FjeS10cnVuaworNjM1NjggMDM0ZDZjOWUyNjcxZjllNWQzM2IzOGM1MGI4MzQwZDgwNmQzMGRjNCBsZWdhY3ktdHJ1bmsKKzYzNTY5IDI3YzBkNzM1MWVhOGRmYWM0YWQzMjY3YjNiZDZkMTFjNWZlYmU0N2EgbGVnYWN5LXRydW5rCis2MzU3MCA3MjdmZGI5MDYxOTEzZTI2MmI4MzdjMjQ3MWYyY2E1NjM0NmE5YzMzIGxlZ2FjeS10cnVuaworNjM1NzIgNTU2ODAwNWQyMjE3MzIyNWI3MDY0MWVlZWQzZjJjY2ZjMTJmMGJmNyBweTNrCis2MzU3NSAwZDBkOTY0MWY5YmQ5NzdhNTU3OTUwNWE3MDVkYzg1ZmJjZTQ5MzNkIGxlZ2FjeS10cnVuaworNjM1NzYgNDVmZjczNzY3MWY2MzM5ZGE5YzU1YTRkZmU0N2Y0OWJjYWY0NDI5MCBsZWdhY3ktdHJ1bmsKKzYzNTc3IDZhYmM2M2M2MTUyNjVmOTFlMmE5MDZjYTE2MmZiNjRiYWZhNzA1YjYgb2trb3RvLXNpemVvZgorNjM1NzggOTA5MTJiMTBhZTcyZjM4Y2FjM2QxMjlkYWIwZmNmNTJiNzVlYWFiYyBva2tvdG8tc2l6ZW9mCis2MzU3OSBmZDFhMmY0OTk2ZWYxNjkwYzUzZmIzODdmMGIyNWFjMjY5MDM2YzJkIG9ra290by1zaXplb2YKKzYzNTg2IDI4Y2Y5OWMxOTNjN2Q1NmYyMDEzOGQ0NDY1NWE3ZGVkNWI3ZjI0YTEgbGVnYWN5LXRydW5rCis2MzU4NyAwZjVmMzJiY2RjOGZjZmRkMTUxMTUwZWRmYjJkMmM1ZjE1NzExNTYxIGxlZ2FjeS10cnVuaworNjM1ODggMDVhYTIxZDZkYmViZTYyOTlmYmY5NjU0ZjdmMTk5MGVjNzNkNjdiNCBsZWdhY3ktdHJ1bmsKKzYzNTg5IGJhMWZhNTExYjcyZDFmYzRiMTc1NTUwMmU5NTRmN2Y0ZjQxZjVlOTUgbGVnYWN5LXRydW5rCis2MzU5MyAyMThhMTA4NjcyOGFiNjg3NzAwN2M0MTRhNDY5NGUzMmMyYWVmZGNmIG9ra290by1zaXplb2YKKzYzNTk0IDg3YjE0NDE4ODlhNTMzMmYxNjk2OGNmZGE5M2ExNjEzM2I2YzQ2YmUgb2trb3RvLXNpemVvZgorNjM1OTUgZjViMDI5MDIwZTAyM2ZmZGZjZTVhMTZiNmQxYzM1Mjg1YTcxNmM1ZiBva2tvdG8tc2l6ZW9mCis2MzU5NiA2ODBiYjlkZDU4MDc0NGQxYjdmNDNlYzJkMWU4OTViNDkxOGEwOGIwIG9ra290by1zaXplb2YKKzYzNTk3IDBmZWNkMzg2NzkzZTYyMGE4ZDExYjUxOTlkMDY4Y2JmNTAwNTcxZDUgbGVnYWN5LXRydW5rCis2MzU5OCAzMzllMTcxODMxNWNkODYzNGQ3OGI1YmM1ZmMxOWFkNjU3NzQyNzA0IGxlZ2FjeS10cnVuaworNjM1OTkgMzc2N2E1YWE5NTYwMjViOGY5ZWIwYzBlYjAzNzIxOGQ4MmQxMzYzOSBsZWdhY3ktdHJ1bmsKKzYzNjAwIGNiMWM4OWE0NGVkYjY1MzQ0MmJjZTkzYTE5ZDM2NjU5ODIxMDA0M2MgbGVnYWN5LXRydW5rCis2MzYwMSA3MWZkYmNkN2JhYTlhNmE3NzUzMmE0ZWNjZmJmNjg5MzVjMTAwYWQyIGxlZ2FjeS10cnVuaworNjM2MDIgMjYwYjYyYWFmY2I0OTdiZDk4MGRjM2M5NTJjYmQ5ZDI2MjNjMTNhMiBweTNrCis2MzYwMyA5YWNiMzE0YjkwNzI3OGYwNDYxYmEwZTBjYWU0NWM1MzQzODY4MjZlIGxlZ2FjeS10cnVuaworNjM2MDQgNzNiMjQxMjdmN2I2M2RmOTc3MjgzOTQ5MmRhNTgyYTIyNTE0NzMzZiBsZWdhY3ktdHJ1bmsKKzYzNjA1IGNhZjNhY2RmZTVlNDM4ZDYwYzY4Mjc1MjVkYTU5MTYzYzMyZDlmMjQgbGVnYWN5LXRydW5rCis2MzYwNiBhZmUxNDhhNGFkMjdkZmM1MTZiOTVhZjZhY2Q4ODM2Y2M1OTZhMThkIGxlZ2FjeS10cnVuaworNjM2MDcgZTUzNGVlMGE0Y2QwNDQxYTcwMWNjMzkxNTYzNWI2MDkzMTA2ZDQ1NSBsZWdhY3ktdHJ1bmsKKzYzNjA5IDgwNjU5YjlhNGNkN2QzYjYzMWQxNjZmMjg0NmFmYTEzMjE3Nzc3MTMgcHkzaworNjM2MTAgMTU0NmMxZmI4ZjgyODM0NjZjOGI5NzVjYzAyNWY4MTEyNGExYTMyZiBweTNrCis2MzYxMSBkMTI1OWZmYjEwM2MyOGNlNTViOTIxM2U3ZmQyMTBiODhjNmY1ZWNhIGxlZ2FjeS10cnVuaworNjM2MTQgZDU1OTFjMTZiOTk3YjFhMDNmZTEyZTIyOTA2OTBlYmMxZjM3MjI3YSBsZWdhY3ktdHJ1bmsKKzYzNjE1IDYwZGY4ZjY1ODU3NWFjYmQxZjAyNDg4ZDg1NDQxZmVkZDlkMzc1YmIgb2trb3RvLXNpemVvZgorNjM2MTYgODk1NzA4YjA1NmI3YmQ0MjEwZGY2ZmViMTU0MTJjNWFiNDVhYTI5ZSBva2tvdG8tc2l6ZW9mCis2MzYxNyA5NjcwMjYyNTc5NjExZjFmOWE2NmJkM2QzZDY3NjQwYjI5NzAyNjI4IGxlZ2FjeS10cnVuaworNjM2MTggMDA5MTE5ZWI0ZDJkODAwMTllNjhjZDUyNThkNDFiNzgwNGE0ZDYxZSBsZWdhY3ktdHJ1bmsKKzYzNjE5IGQ2ODhmM2Y3YzhkZmQyZTBlM2MxZTViNjQzMDE5Y2YwZWJmOWE3MjcgdGxlZS1hc3Qtb3B0aW1pemUKKzYzNjIwIDc3MGU0ZTEzMjc3NWFhMGM1ZGFhNTc1MTM3OWRjN2IyOWFiMWFmN2YgcHkzaworNjM2MjEgNDk5MDZkNDMyYjQ3YmFiMDNlNDEyZGU4OGNmNjVhM2RlYmJiNWQ3NSBweTNrCis2MzYyMiA1NjBjOTczOThiOGU1MzRlZjZkMmQxMjBlYjVjODFkNzYwZjgwM2IxIHB5M2sKKzYzNjI0IDM4YjFhMDE3ZGJmNjAwNzFjYWZkZmMwNDg1MDQ0ZWE0NGJiNWUwZGQgcHkzaworNjM2MjUgODEzZTBmOGE3NDFkNTliZDVjYTdiNjUwNTc2NTVlYjlkZDc0MjUxNyBsZWdhY3ktdHJ1bmsKKzYzNjI2IDI2YjM1OWUyMzdiNTRkOWE2ZGI4MDUzMmU2NDgzNDRlMDgyYTQxZjcgcmVsZWFzZTI1LW1haW50Cis2MzYzMCA0NmYzNTFlZTlkNWVkNDEzMDM0ZjJlOWYzNzUzNGZmNDFhMjgxZGNkIGxlZ2FjeS10cnVuaworNjM2MzEgN2ZlM2E4NjQ4Y2UyNDJmNWIyZDZjYmYxNzAzYmVlOGM0ZWI5NDY3YiBweTNrCis2MzYzNCA2ZWRjODBkNDIwMjExNDdjNTJhYmY3ZjkyNTdiZTQyMzFiMmJiMjUyIGxlZ2FjeS10cnVuaworNjM2MzUgOTM4MjZiMzVmYWNjZTY2YmRmZTFhY2U0YTBiNzlkMWNlYzAyNmVmZiBweTNrCis2MzYzNiA4MjcyNTQzODQ1M2JhOWNlNjdhNjY3Y2ZkMDVmMWM0OGEyYjVlOWVlIHB5M2sKKzYzNjM4IDMxNjYxMWZiMTI2ODJmNzBiNGQ1NzYxNzAwNDdkOGE5OGRhNjk4MGQgbGVnYWN5LXRydW5rCis2MzYzOSA1MTE5YmM3N2JkNmRkZTMzMjU4NDZjOTMxZTcwZGI0YjI2MDAwMDU4IHB5M2sKKzYzNjQwIDQwYTE2MzBlZjJjZjg0NjFhMWQxNmY0YTc5NmNhYmJkZTc5NDJkMjIgcHkzaworNjM2NDEgN2RmNGJhNDg0MDU4ZmRjZjExMTlhMjRhMGEwMTdlNzU0NTI2MWU1OSBweTNrCis2MzY0MiAxYzUxYWJlYjkyNWZlNjg0NWFjMmJiNGMxMDY4NjYxNjViMzMwZjhmIHB5M2sKKzYzNjQ0IGFlMDE4NjlmNjJiZThiZWY1ZTY2MmJkODIwMmViZTQyOTlmZWExZGIgbGVnYWN5LXRydW5rCis2MzY0NSBkN2JmMjY2OWZlNjYwODhhNDRmOGYyMmRiNmFmOGY3OGVmYmYyMWQ3IHB5M2sKKzYzNjQ2IDA4Y2UxOTJmMjRiMDQyMzUyYjM5Y2IwNjA0MTcxMTZjNmRiYjQwMjQgcHkzaworNjM2NDcgZjc2MmE5YWI2OWRkMThiZTk0MDJmMjgzMGRkMzVhNzVhOWM4ZTNmNyBweTNrCis2MzY0OCBjOWQ3MTdiNWI3YTI0NmM0YTI2YzM2MDMwZjAyM2U5NDA5OTAwMGMzIHB5M2sKKzYzNjQ5IDY1OTUzYWU5ODEyMjc5M2RmODczMTIxYjU2NjUzODRjNjU2YTNjOWEgbGVnYWN5LXRydW5rCis2MzY1MiA4YzJmNWFhY2MxYmM5ODNjMGM3NDE0ODY3NDE0ZDA5MmNkZGZiOGY1IHB5M2sKKzYzNjU1IDcwZjlhNWRiMjc5YzIwZjIzZTE4ZjUxY2I2MDQ3Y2NiMWIxNDVhYzUgbGVnYWN5LXRydW5rCis2MzY1NiBmMjhjYmFiMTFhY2Q3NGNiMDE3NGY4MWJiNzk2ZDE5MTYxMzFkNzFiIHB5M2sKKzYzNjU4IGUyNDIwMjYxZDRhMzAwYzU1ODExY2E2YWQ3MDY1OWZmNGZiNTQ1Yzkgb2trb3RvLXNpemVvZgorNjM2NTkgNTQxMWI2YTIyNmU1YWIxOTUyODc1NzBlYTdhYWQzOTU5YzJkNGRmYyBva2tvdG8tc2l6ZW9mCis2MzY2MCAwZmQ1NTNhZDUzZjY0NjQxNDE2Zjk0NjQ2ZWMwZjY2ODA0ZjRhNDMxIGxlZ2FjeS10cnVuaworNjM2NjIgYWZiZGUzNjBkZDFhOTVkYWZmYzY0OGMwZDZiZTFlM2UzOTI3Nzc4NCBweTNrCis2MzY2MyA2ZDNlMTMzMGEzYWE4NGFkNzQ2NTMzZWJhMjQzMmUzNDg4OThiYmY1IHB5M2sKKzYzNjY1IGU3MjVmZjE4MzQyYjEzZmNhYzBhZjg2ZmI3YjcxYTc5ODk0NzA3MTIgbGVnYWN5LXRydW5rCis2MzY2NyAzNDZhOTlkZjU4ODlhYmE0ZGM5NGQ1YmU0MzNkYzllOGI1YWM2YmRlIHB5M2sKKzYzNjY5IDBhNDU1MDgxNDMyMDdkZDgyYWQ2Mjk3ZDZkYzZhZGQ3ZTgwOGZmY2MgdGxlZS1hc3Qtb3B0aW1pemUKKzYzNjcwIDBiOTc0MjU4ZTE1YjgzMmY1YTZiMDlmMTZjYjhiOGYwNzA2MmFmYWQgbGVnYWN5LXRydW5rCis2MzY3MSBiOWVhYjc0OWJhNjYwMDc1ZmIzMzViOTkyMWYxY2MzYjhkY2RhZWJmIHB5M2sKKzYzNjcyIDA0YmQzNjkwZmIxZmU1YTM4MTU2NGY2NWZmZDMxNDc4NmE4ZmVjOWIgbGVnYWN5LXRydW5rCis2MzY3MyBhYmFmY2NmZTc1MDFjMjMxY2Q4NmJiM2U0NGI0MTFjYjY2MzIyNTY1IGxlZ2FjeS10cnVuaworNjM2NzQgMzI2NGFhZjdjZjMwM2YwNWJhNzIyZmQyM2NkMjJlMmIxOWY1MWI1ZSBweTNrCis2MzY3NSA0ZmUxOTJkNDg5NjAzMmYzNTYwNjAwNWNkZGYxYTExYzUzY2Q4M2Q4IGxlZ2FjeS10cnVuaworNjM2NzYgNjUzZDA0ZjMwNDI4NzcxZDZhZGE1NGJiYTY0ZGQ4MjljYzUzMGFlNiBweTNrCis2MzY3NyBlOTIzOWFkN2I4YzA3MDI3Y2RhYjlkZTUwMzhiNGZmNjA5ODg2Zjc3IGxlZ2FjeS10cnVuaworNjM2NzggNGQ5OGViYWVkMjc4MzZmNzcyYTdjYzI5YzdiMDc2YzRlYzFhNmM4NyBsZWdhY3ktdHJ1bmsKKzYzNjc5IDE5NGJiZjA0YjAxNTQ0MjVjMTUzZWQ5MzczYjI5NGRlNzRlNjlkYmYgbGVnYWN5LXRydW5rCis2MzY4MCAyY2NiMzRkNTM3ZGI2NGU2NTBlYzFlMDNhMzg1NjYyNWU0YjI5Y2I0IHB5M2sKKzYzNjgxIDk2YjM0MjYzZTQ0OGQ0Y2IzN2Y1ZmFhMmVhMjI5MzE2NDI0N2Q4MGYgcHkzaworNjM2ODIgMjNhYjU4NmM0MjdhMzdlMjFmNjFkZTI3NmYwMzJhMmUyZDgyMDU4NiBweTNrCis2MzY4MyA4MTFhODA2NTEyMzJlOGQwODU0ZWY4MjYyOGM2NTZmMGE3MDYyZjU0IHB5M2sKKzYzNjg0IDhjYzNhZDhiZjdjNGU2N2FkMzk2ZTcxMDczODVlZjFlMmFiNzcxNDcgcHkzaworNjM2ODUgZTNlMGMxYTY1MjA0OWZlOWZlYzc1ZmZhNzVkMTcwM2Q1YzBjYjM2YyBsZWdhY3ktdHJ1bmsKKzYzNjg2IDcwOGE1NjEyNzljYWI0NjExYzAwZDFjM2Y0OTc0MGMzMDdjOWQwMzAgbGVnYWN5LXRydW5rCis2MzY4NyA5YTBkNGRjMDdjODk1NGNhYmU0ODc5M2Q2MDNiMTljNWNmNGU2NTM3IHB5M2sKKzYzNjg4IDM0ZTQxZjRlOTYyZjE0YzFkYTU1ZDQ5NGI1MzQ2MTYwOTViMzc1YWQgbGVnYWN5LXRydW5rCis2MzY4OSA0YWIzZTdhYzhiZjRhYTM2NjA0MjA4MTdkYzY1NTQ0MmFkODY2ODJmIHB5M2sKKzYzNjkwIDE3YjhmNDQ1ZDA0MzFlZDBmYzkxNmQxODAyNjVjMDc4ZGYyYjBiYmYgbGVnYWN5LXRydW5rCis2MzY5MSA2NjJkMTVhZjUyZGY2NjY1NGViNTQ2ZWFjOGRiYjhiZmI3ZWI1YjgzIGxlZ2FjeS10cnVuaworNjM2OTIgYTk0NmJmNzY2NjU0NDA4NjVkMDJmOGQ0MTRlZDI1N2U0NzYyNzk4ZSBweTNrCis2MzY5MyBjZTljZGNlYmFlZjAyNDdiYjhiYWM4ZjZhMWE2MDhiMTVlMmYwOGRkIHB5M2sKKzYzNjk0IGE2ZDYxNzcwODY2NWFmNjdkZWM5MGE2OTE1MTI3Mjg4MTJhZTY4YmMgcHkzaworNjM2OTYgNzAxMDRhM2UxZDlkMzk5OTMyNDJjN2FkOGJiNWQ2N2IzYzA4Nzk1ZCBsZWdhY3ktdHJ1bmsKKzYzNjk3IGJkYTE1ODU5ZjY1OGYyMjEwZmE1OGNlOWRiNTk3MTYxMmFjNzM0NDcgcHkzaworNjM2OTggYzU2MDRiZTdhY2RmZTBhMzc3OWIyYWZjNTA0ZmQ5YzhlNTg3MTZlNiBsZWdhY3ktdHJ1bmsKKzYzNjk5IGJhODAxNWUyMzQ4NzIwNTQ0M2MyYjU2NGIxYjhjNmU1MjZlNDNkYTYgcHkzaworNjM3MDAgZTFmY2MzODgxY2I2ODc1YjRkZjcxYzEzMTBlMTY0YzNkZmFmNWE3MSBweTNrCis2MzcwMiBlMDE3ZTFmZGUzNjkyZTI5ZWFiMDA5ZjU4NGFkNDZkYTkwMGI0YTVlIHB5M2sKKzYzNzAzIDM5NzVlYzJiMGRlMmFmMjQyNTc1YTk5Mzk0MDlmY2EzODZmNmY2NjYgcHkzaworNjM3MDQgZmNkNDU2YWU1MTViYTg4MTg2ZDIxNjlmNzI4MGJlNjFhMmNkN2UwZiBsZWdhY3ktdHJ1bmsKKzYzNzA1IDAyN2M4ODdlOWRhOTIzNjg3ZmE2N2E4NDc5ZTQ2ODQyOTBiYjFmYjIgcHkzaworNjM3MDYgYmM0ZGY1MWMwMWQ1MjU1MTcxZWQ2MmZlOTRjYjU0OGMyZThiMTY0NyBweTNrCis2MzcwNyA3YzViNWYwZWIzMGQ5NTBiOGYwZTUxMmY5YmUwNWYzYjc3ZDA2MjliIHB5M2sKKzYzNzA4IGRiZDlhZDUyYjRkMGU5ZmNmMTA3MTliMmI1YzRjZmQzNzNhMzM3OTIgcHkzaworNjM3MDkgNzljN2U4NDhlYTE3Y2M5MWM1MjY1ZmM1ZWViZDYzZmUwMTRkNjBmMCBweTNrCis2MzcxMCA2Yjk3M2Q5MzZiMDc5NzE2MGNjMTZiNWU0NzE1NjhmNTZlZThhZWJmIHB5M2sKKzYzNzEyIGMyYTBhNzA4NDYyZWJhMjdhMWIzNTAzMGVkM2Y1NDYwZWViNzg4NDUgcHkzaworNjM3MTMgMDYxOTNlM2RmNDE2ZjViMjcyYzk4NWRmNTUzNTAzY2VmMTlmZTNmNyBweTNrCis2MzcxNCA4ZmYwYjkyNWVhNjQ4ODU5OTU2ZDk5YjYxYWRmY2M2OTY0YTkwYTllIGxlZ2FjeS10cnVuaworNjM3MTUgMDUyNWNkNWIyNTgyOTAwNjhmN2ZkY2NkYmJlMzRiN2JjYWNjMmNjZiBweTNrCis2MzcxNyA2ZjFhNjMyY2IyZTUzMmI4M2Y5Y2I1YjdhZjk3OGZkMmNlMTJiNmM2IHB5M2sKKzYzNzE4IDNjNzBkNjhiZWIzMDk1N2E5NzY5YzdmMGEzZmVmZTBjODAyOTE4ZmQgbGVnYWN5LXRydW5rCis2MzcxOSBmNjFiNmMzMTAwMWNiNWZjNjIwZTUwZmEwMzFiMzAyNjIzMDdlZDIxIGxlZ2FjeS10cnVuaworNjM3MjAgNzg5ZTBmMTVjMzdiNmY2MjdhYTU4NThjY2JmYzM5YTE1Y2E1MTQ0MyBweTNrCis2MzcyMSAyZjkzMTkxNjlmZWM5YzYzMGQ4MzM4ZjE5NGIxNTJlNmU2Y2ZjNjllIGxlZ2FjeS10cnVuaworNjM3MjIgNTk3ZDhmZDU2OTNlNDM5NjE3MGE1NTJhZGQzNmMwMGNhYWI4MjU0YSBweTNrCis2MzcyNCAyNzNlOGRlMzQ2MDNkY2EyN2RlYzQ1NTI2YzIzMjJhZjIwNWZjMmM4IGxlZ2FjeS10cnVuaworNjM3MjUgYzRhNDU4ZWNkMmVkN2YwMDJlMWRjMGFkYmMyMjE5Y2ViNjIwNzkyNCBsZWdhY3ktdHJ1bmsKKzYzNzI2IGY2Yzg4ZjE3MmJiZWM2OGM4MjU2OThjOGFmNmYwMTU0YTVmZTM4OTMgbGVnYWN5LXRydW5rCis2MzcyNyBjOTFiMzdkYmJhM2YxOGJkYzM2MDQ3NjMyOTgwMDZmOWZiMzM3NTM2IHB5M2sKKzYzNzI4IGE4Y2M4ZTZmMGMxYTY5MDBiNDlkNjE1ZWNjMTcxZDVmNTY0YzJiMGYgbGVnYWN5LXRydW5rCis2MzczMSA2MWE1Njk3YTc2MjY1MWZmZWViZDFiNjQ4MDJiN2MyNDAwNzY3ZTZiIHB5M2sKKzYzNzMyIDE0NzRmMjUxMjhjNDRlY2E4MDNhM2U5NTBiZGQyNjE3ODdiODExYTYgbGVnYWN5LXRydW5rCis2MzczNCBlMWE0YmY5MWIyYWVkYzQwZTRkMGJiNTQzMGE1NjZhMWE0YzRkYmUwIGxlZ2FjeS10cnVuaworNjM3MzUgMjMzNzk2OTViNGRiMjgwYzQ3ZGNiZTUzMTI0OWRiNjk0NGJjNTBlMiBweTNrCis2MzczNiAzNDNhYWFhODAyZTgxMDQyZTVlYzlkNTcxMGE2NWVjZmE4Yzk5M2M0IGxlZ2FjeS10cnVuaworNjM3MzcgZGMyN2IzYjQ2ZjBkZmMyMGM5NWZhODY2MjQxMzE2MTYyZmY4ZTM3YyBweTNrCis2MzczOCBlNDEwNDU5N2MyYTNlZjc2MmQ5NjIxYmI1OTkyNGQ1NzVlYmQ0ZDkwIGxlZ2FjeS10cnVuaworNjM3MzkgNTFjNjNiN2VjMWE4YmNlYTg0M2M5NjVhN2Q0M2E2YmZmYjE1NWEzMiBweTNrCis2Mzc0MiA1MDJlNzJmMjhlOWVjN2Q1NTI0MGU1MWRjM2EyMTg1NGU4OWFjYjM1IGxlZ2FjeS10cnVuaworNjM3NDMgZjk0YWNhYjc4YWE5OWQ3YmUzNTNkZjQxMGJmNjI4ODQyM2M2NjcyYSBva2tvdG8tc2l6ZW9mCis2Mzc0NCAzZWFhNzIzNjcxM2ZhMTc2NWZmZTM2MmZhYzBkNjBkOTVhNGRhYzMyIGxlZ2FjeS10cnVuaworNjM3NDUgNGE3ZjM0ODBmNDU0ZGI3NjdkZTI0MjRmOTA0YzdiMGU3Mzk4ZjlkZSBsZWdhY3ktdHJ1bmsKKzYzNzQ2IDRkM2U5NTM3M2Q5ZTI0MGYxNWQ2M2NiNmI1YTgzNmI0YTQ2OWZhNWQgb2trb3RvLXNpemVvZgorNjM3NDcgNDM0ZjFkNWFjZmU0Y2U4NWVjM2Q4ZmMzYzI3ZTBkZDQwZDYzYzI0OCBva2tvdG8tc2l6ZW9mCis2Mzc0OCA4NDk0NmY0NTUzZjEzOTlmZjVhN2JmNTg4MDMyY2E2NTI0NGUzNTMzIG9ra290by1zaXplb2YKKzYzNzQ5IDQ5M2IzMmM3ZDEyMTIyNzdjY2Y5MGQxMzU3ZDJlZWIwYzQxZjdkODcgb2trb3RvLXNpemVvZgorNjM3NTMgNGVlMjlmZmQyODU2ODY1YTU0YTFlNTRmMmU4YWYxM2VjZDA4MTk2ZCBweTNrCis2Mzc1NCA3N2Y4YWU4ZmM3MGI0YTA5YjU1YmM5YzM1Nzc4ZDAwNzAwZjliZGM2IGxlZ2FjeS10cnVuaworNjM3NTUgNjdmNGI3NzY3YTBhYjExYWFkM2E2Njk2OTY1NDE1Nzk5YzEzMWJiNyBsZWdhY3ktdHJ1bmsKKzYzNzU2IGI5N2RkNTg4OTI0Njk5ZmIzYjVlMjFkYjU0OGJjZDkzOTBmNGY1MTkgcHkzaworNjM3NTcgOTNmZTkxM2ZhZTU1NDdhMTljMjEzZjYwMmM3MmJmMzM5NzdhNDcwMiBsZWdhY3ktdHJ1bmsKKzYzNzU4IDA5MDY1YjAxMGM5NTA4YTc3OWMwYzNmMTBhMDFlOGQzY2MxYTNmM2MgbGVnYWN5LXRydW5rCis2Mzc2MCA3YWU3OWU5NmZjNDJmOGYzZWZhMDlhODBkYzg2YWQyNTVkOTVhY2ZlIGxlZ2FjeS10cnVuaworNjM3NjEgMTI1MjQ3ZWNlNTYyNTJhNjgxZjVkMjViMTJjYjM2MzVjMDM5YjdiZCBva2tvdG8tc2l6ZW9mCis2Mzc2MiBhMWNiNTQzMDliNGQ0ZjQzNjBhOGRhMmIxNTA5NGQwNTlkZjllZmU4IHB5M2sKKzYzNzYzIGRjZDZiZmIwZGI0MzljOWQxNjdhN2FhNDI0MmQ2ZWI1ZTE4MGQwNTEgb2trb3RvLXNpemVvZgorNjM3NjQgMjNiOThmN2VmNDU0NzY3ODdiMTMyMTBkZmE4ZThiOGRlYTAyYzg5YiBva2tvdG8tc2l6ZW9mCis2Mzc2NSA3OWYzMTI3ZjFkNzI3MGRlYjA2MTA4NGVkN2NmOGQyODk1YTdhZTQ1IG9ra290by1zaXplb2YKKzYzNzY2IDA3MmJmYmI2NTQ4NDg1ZTQzYWIzZmIzODlhODBjMDM4ZTAxMzQxNDYgb2trb3RvLXNpemVvZgorNjM3NjcgMTU2NzQ2YTYzYTVjOGYzMzI3YzhiZWNjNzhmZjI1MjUzN2U0M2NmMyBsZWdhY3ktdHJ1bmsKKzYzNzY4IDc2NTI5MzZmYWQzOWY4YjdlMGY2YmVkMzNlZTAyZTQ3M2RmYzUzYTEgcHkzaworNjM3NzUgNWUyM2IwZmNjNzhlZTZhNDNkYzdlMzI3ZWYzZGEzOGU5MThlYTZjYSBsZWdhY3ktdHJ1bmsKKzYzNzc2IDI5Yzk1MzZjMDRhZDQ4NzY5ZWQ5NzM2YmEyNzdhNDI3NGI2MDZiZmMgbGVnYWN5LXRydW5rCis2Mzc3NyBiNmNiZWM0OTk3NTYyMmQ2OTcyN2JjMzllNDU1MWE3NzNjNTViMzMzIHB5M2sKKzYzNzc5IGIxNGM0YjViYWIwOGQzNmZmYjkyNTI5NjBmYWQzMGYwY2Q0NTExNGQgcHkzaworNjM3ODEgMDAxNTQ1NjdkNTkzNWIyODRjYWMyNTczMmJlODk4OGUwMzczMjE3YSBsZWdhY3ktdHJ1bmsKKzYzNzgyIGVmNTFmY2RhMzQ4YmY5MjNkZDk4MmVhNzJiYjIzNjY3YzA2MDEyMjMgbGVnYWN5LXRydW5rCis2Mzc4MyA2M2I0NzQ1NTYxYzM0MzZlZjVkNzIwM2FiZGQzNmY5YzU5ZmZjODYzIG9ra290by1zaXplb2YKKzYzNzg0IDllNmU2YjgxN2YzMjAyZTMwZGJjYzg4NDk1YWZhNjY1ZmUzMTA0NGIgbGVnYWN5LXRydW5rCis2Mzc4NSBmYjJkOWIwYjQ0NzAzMmExZjdkYWYzODFmNWVmZDkyOTk3OWUwZDRjIG9ra290by1zaXplb2YKKzYzNzg3IGU4MWQwMmQwOTY5NzRmMTMwNWU1MjQxNDIxMzk4MjA5ZDcwMWE4NjkgbGVnYWN5LXRydW5rCis2Mzc4OCBlMmM1YWUzMGNmZmVhY2Q0OGEwZWZkNTYxZDNkMjE2NzUxMWUwNjY3IGxlZ2FjeS10cnVuaworNjM3OTEgYzU5NWRhMDU1ZmQwOTIyMTJmYWE2Y2Q1NjM4MTFlNmNlMzVlNjcwMiBsZWdhY3ktdHJ1bmsKKzYzNzkyIGM5MGNkZDgzNTk2MDZlNDM3MTdiYTBkOTgwMThmMGIxODM3ZGIzOTMgbGVnYWN5LXRydW5rCis2Mzc5MyAzOTg2OTgwM2JmYWVlZGQwNjA0M2NlNDczODQ5NTZmODAzOTUwOTFhIHB5M2sKKzYzNzk1IGFlYTNjNTU0M2Q0M2YyYjlkNTFjMzc4NTY3ODNiZGNkMjliNGU5NTAgcHkzaworNjM3OTYgMzY2YTQzNTUxMWRkNWQ0YWM0MDU5NDIyZDAyNDhlZDQ5OWEwOGQzNSBweTNrCis2Mzc5OCAxZDI5YmZhMjczNjgxYjk0MmFkODhlYzgxMmU1YTJmNDRjZjU4NDA1IHB5M2sKKzYzNzk5IDkyMmU1YTI0Y2M4MmU5ZWZkYTQ4ODY3ODMyOTY2ZmU3ZWU3MDU5ZWEgbGVnYWN5LXRydW5rCis2MzgwMCAyMzkxZGE2YzQyZWYwOGExNmM3MWNkNmE2YjhkYzEyYzY0MzY5ZDQ2IGxlZ2FjeS10cnVuaworNjM4MDEgMjYzZmQ2ZmJhY2FjNTg0NWU5NDYyNDQxMzExZGIxYzAyYjgzYmJiNyBweTNrCis2MzgwMiA4ODJhYTE0NjY1ZTQ3ZjFmZDg4MDc3ODJkMDY0NDkxOGE1MDM5NTUyIGxlZ2FjeS10cnVuaworNjM4MDMgMDE5ZDNiMTEwYTZlZWU5YTRhM2Q2NjU2NDk0NTUyMzFmYTlmNmUyZSBweTNrCis2MzgwNCBjZjVmMjczMWZjNTYwNzE4YzFmMzkxYmIzYjlmMWIyM2M4NWJjMjAzIHB5M2sKKzYzODA1IDFlMWRmODkyMDk1YTcxNDE1NDEwNDVhNDZhNjZlNjBiNjVkYjhhZDggbGVnYWN5LXRydW5rCis2MzgwNiBlYTI3M2M4ZTNlYWEzMDU0NDBlZGYxZTEwZWQzNjA0ZmZiNmIwYzU3IGxlZ2FjeS10cnVuaworNjM4MDcgMzM4NjViYjU4Mzk2MmYyNTMwNTY5YTdhNDNiZjVkYTczOTdiYTAwNiBsZWdhY3ktdHJ1bmsKKzYzODA4IGQ2NjM5Y2Q5NTc1ZmYyMGFlZWMyOWQwYzhhMGRkZTc3MDYzNWExOGIgbGVnYWN5LXRydW5rCis2MzgwOSA2Y2U0NDM1ZjE1YWQ0ZThlZGNmOWYyODc2NWNmMmEwODAwZGM0YWM3IHB5M2sKKzYzODEwIDBlOTE2OTBkYWUyZjYzOTZjYWY0MjE4Y2UyNDE3Y2M1ZTk0NDJkMTkgcHkzaworNjM4MTEgZWNhODgyNzMxMTk0Y2RhYzQxNTEzZTc2MDk0Mzk5YzlmMDhkNmEzNyBweTNrCis2MzgxNCA0N2VmOWE4MDZjZTk3YmU3NjlhNDMxMTU0MjVlODQ4N2IxMDY5NzY2IGxlZ2FjeS10cnVuaworNjM4MTUgMGRhMjdmZGYwMTkyMDU3NDhmYzY2ODA3YzdlNmIwZWI5NTIwODAyYiBweTNrCis2MzgxNiBjNDFjMzk1NDU4ZWIwMjhjMWY4NDQ5NzJiMDhmODQxNDlhODcwOTI0IHB5M2sKKzYzODE3IGJiYTI5ZjQ2MmJjYzY5MDQ5NzNiZGVkMTdjODBlY2Y4ZDRhZGRiM2MgbGVnYWN5LXRydW5rCis2MzgxOCAxMDVhZDYxMzI1YWMxYzIyYTBjNTA4ODE0Mjk2M2RiOTgyODdhZjliIGxlZ2FjeS10cnVuaworNjM4MTkgMjE1MTBjYzBjMmU0MmI3YmYwYjU3N2YwYzI4ZjNkNWNjYWVmY2FmOSBsZWdhY3ktdHJ1bmsKKzYzODIzIDBiMjdjZTNjNmIyMWM5Y2FmNzhmNzQ2NTRlMWQ3MWI4NWE5NTdlMGQgbGVnYWN5LXRydW5rCis2MzgyNCAzZGNkNzAwMDQ2OTZmZGY4NzMzMDQxMTkwNWQ4YzBiMWIwYjY5MGUyIGxlZ2FjeS10cnVuaworNjM4MjUgYTJlNzJlY2RiZTAyYmU4N2UwODg3ZjQ3MDc5MzRlOThkOTNiYzA3OSBweTNrCis2MzgyNiBjMDRhYTRhYWJlMTdlYmQ5NWM4YzhkZTM3MTIyNmVmYTViMTkxNDI5IHB5M2sKKzYzODI3IDJlODc2OWQ1YTc4NmI5NTQ0YzJmYjk0ODZkMmQwYmQxZWE5YjVmMjEgbGVnYWN5LXRydW5rCis2MzgyOCBmZjZjYzlkNGZmZDM1YWU1MWFjMWY5NmEwM2Q0M2E2ZGYxYTU2MDMyIGxlZ2FjeS10cnVuaworNjM4MjkgMDNhZmU2OTg1ZTVkZjc4MDIwNmIxOTA1ODhjNjQ0NDZlNGUyMDkwYyBsZWdhY3ktdHJ1bmsKKzYzODI5IDgyYTQ3ZDc4ZDI3OGI5NzYzNWI1MTNlYmI4OWE4YWY1MWZiZWEzNDggcHkzaworNjM4MzAgYWYzNjg1ZmE5Y2E5MTQ4MjU2NTJhNGU1YmRmZDY4ZGFiNzU3N2Q4NSBsZWdhY3ktdHJ1bmsKKzYzODMxIDUxYTg2NTMxMjhlM2FkNWYzOWQ1NjYzZWFkZDE1NjlhMmJmM2Q1OTQgbGVnYWN5LXRydW5rCis2MzgzNyBiZWUyNzFlNzZhM2U1MzExYjcxMmFlOGQxN2QyMmNlZGZlM2UyMmExIGJlbmphbWlucC10ZXN0aW5nCis2MzgzOCAwNzVjNmJkMjBmMDc4MDRkYjZmZjlmZThlM2NhNDJkODRmOTQ4NjNmIHJlbGVhc2UyNS1tYWludAorNjM4MzkgMDE1NmMzMzZlNmIzZDUxZWFiZjZiYTU1MjY2M2ZjZTc1OWRkNTU0NyBsZWdhY3ktdHJ1bmsKKzYzODQzIDFiZGYwNzQwOTQwM2I0YjU1NzgyODcxZTZkYTFhYWFlNmQzNjJiNjIgcHkzaworNjM4NDQgMmY1ZWRlMDBmYTllZTE3YWFmNDRjYTExZDRmMTU0MmYxODFiZDMxMiBweTNrCis2Mzg0NSBjNGUyZWYwOWEyZjA0YjI5NzQxNGM4YTZjZjM0MjE2Y2Y2MDIzNmNkIHB5M2sKKzYzODQ2IDEwNjJiN2RlYzk1YjdhNjdhMGVkYzk4OWZiMWQ5NjRlYzI2MWM2ZTEgbGVnYWN5LXRydW5rCis2Mzg0NyBkMjM2MmY5OWE0MDM2OGM4OTdiNTMzNDI2ZDIwMmM5Yjg4ODBjMGUwIHB5M2sKKzYzODQ4IDYyMmNhYmJhZjJiY2U5OTdmNTliZGNhZjFhZTMyZWRiOGRjMDE5YzEgbGVnYWN5LXRydW5rCis2Mzg0OSAyYTYzYWIzNTk1YTE5ZTI5MzFkM2I0ZDliODIxNDVkZmIwZWE4ZjMxIGxlZ2FjeS10cnVuaworNjM4NTAgZWNmMmVkMDk1ODgxNTU3ZTZiMjhhNzk0YjA5ZTAzZDU0MzdkZjE3OSBweTNrCis2Mzg1MSBiMTMwNDRkNTU0YWZkYjMxMjA4MWRlMWM0ODhhMGM5ZTMyNDgwOGRiIHB5M2sKKzYzODUzIDgzYTEwMDAyZmVkYmRhODQ5NDE2MDMyOTQ4ZDNiNTVhNjA4NzUxNTkgdGxlZS1hc3Qtb3B0aW1pemUKKzYzODU0IDY1MzAyNjQxNDM3NmM4M2E2Y2Q4ZTgzNjhkMTA1NTc5MTJlMDQ1MjQgdGxlZS1hc3Qtb3B0aW1pemUKKzYzODU2IDg4YmQwN2MwYTg0N2QwMzQxMTc0ZTI1ZThlNjg0NmEwYmYyNGE3MzYgbGVnYWN5LXRydW5rCis2Mzg1NyBiZWEzYzFmNTJlMDViODg3NGViMDIwMTEzYjM3ZGNhOWE4NzdjMmI4IHRsZWUtYXN0LW9wdGltaXplCis2Mzg1OCBlODc5N2U2ZTA3YTc0MDVlYzUwNTM4NTg2NDBmMWNmZTNlZGQ4ZWIyIGxlZ2FjeS10cnVuaworNjM4NTkgYTY1ZjA5NWIyN2YzY2M0MDg1NmM1MTc2YTU0MTViYmY5MGJiZTYxMiBsZWdhY3ktdHJ1bmsKKzYzODYwIDM3MDI3MjlhMjQ3MDczYTA1Mjg4MDg1YjU0NjlkOTkzNDU1MzBmNDQgbGVnYWN5LXRydW5rCis2Mzg2MSBmY2Y5ZDk1ZWY1MGQ3OGIzMzFmNGM4NjNhMTQxMjIzYmZkYWU3YzIyIGxlZ2FjeS10cnVuaworNjM4NjIgY2ZiNTQ5MTAwMWQwMmFlNGI4MTVmM2E0YWJkMzc5ZmY1MmVhM2NlZSBweTNrCis2Mzg2MyBlN2YwZmQ4MzU4ZjVhZWY3NDE3OTgzZGFiMzA1ZmQxY2E5Y2JjNGViIGxlZ2FjeS10cnVuaworNjM4NjQgNGRlZGVmNGMwZGZkMjkwOTI1OTA1MTMyZDY2NmMwY2I1MTVkNDE3MyBweTNrCis2Mzg2NSBjMGZlNTRhMDI4ZTM2NTkyMDEzYWZmY2U4NGQ1ZmRlYjUzZDVhNTU3IGxlZ2FjeS10cnVuaworNjM4NjYgMzE0NzZkYjk5YWMzMWZmMmE4NDJjOGQwNWE5ODlmZGVkYzc2YWQ0NyBweTNrCis2Mzg2NyAwNmQ3ODU2Y2E5ZjQ2YThmZWI5NGEyY2ExMTk3MmMyMzg0NGJkMjIzIHB5M2sKKzYzODY5IDgyM2JlNGEyNzVlMmI5OWUxMmUxODJjZmFhYjJkOTQ4OTI2NjFlZDMgcHkzaworNjM4NzEgYzBkNjE2ZjBhZDg2MzlkMmM2MDlmODg4ZjdjNmZmMDljYmMzNWUwZiBsZWdhY3ktdHJ1bmsKKzYzODcyIDMxZDJmZjg2OTZiZGM4ZWMyMGM5MzdmNDIyZTE4ZThjOWZmZDA2NGIgcHkzaworNjM4NzMgMGJmMDhkZTMzOWEwZDIxMDNhZjIxNDliMGEzNDYxN2MyODk2YWZhYyBsZWdhY3ktdHJ1bmsKKzYzODc0IGYxNTAxNzdmZjFmZjc5NGQyOWRkM2NjNDY0MTEwMmVhNWQ2ZDk0NWIgcHkzaworNjM4NzYgZWJiZjg5NTA1NmVhOGFjZjExZTU3Yzc4Yzk1NmE3NDUwMGQzNjkwMSBweTNrCis2Mzg3OSBiNmRkNDllZTAzNWI1ZDNkNmE4ZjhjMDQwYzgxNGUwYWJkNWM1ZjFkIGxlZ2FjeS10cnVuaworNjM4ODEgNjQwNDQ0NmU1YWEzNmIyMTBiNzhmYWI0OWY4NWY3Y2U2YjIyMjkyNCByZWxlYXNlMjUtbWFpbnQKKzYzODgyIDdlYWFhZDA5YjZjZGQ0YjdkOTg2YmZiOWVmMjU4ZDc2NWFlZjY5MjMgbGVnYWN5LXRydW5rCis2Mzg4MyA3ZDY2MTEwNDY0MDQ5YjEwMmEwZWU5Zjk2MzNlNGJhODA5NDI0ODI2IHJlbGVhc2UyNS1tYWludAorNjM4ODcgMTAwZTMyNTA5YjU3NzY1MzZjYTZkY2FiZmIyMjY0ZDA0NDIxY2Y1NyBsZWdhY3ktdHJ1bmsKKzYzODg4IDA1ODA1MzFjMzc1NTVhZGU4MzFlZjcxMjZhODc0ZTBhYTcwMjJiYzkgbGVnYWN5LXRydW5rCis2Mzg4OSA1YmM3ZGE2NTAzYjA1ZWI3NzZlMTYxNGEzOWQ2MmI5OGQ5NjFjMTlhIHB5M2sKKzYzODkwIDc5MzczZTA3MGQ0ODYwMDllZmFkOTJkMTE4NWM2Y2U0NWFhNjkxYWQgcHkzaworNjM4OTEgYmIyYzRiZGMzYzY4M2I0OGZhOWU5NWJkODI4M2ZkOTQwNDhjMjRiZCBweTNrCis2Mzg5MiAxZjJmMTU3N2FlNzgxOWNkYjA0ZjQxMWI5M2FmMjZiZjU4YWI1ZTU4IHB5M2sKKzYzODkzIGI2YjUzNGI4MjhiMzM5YmJkNmVmN2JhMDIyNWZjOGViYjkxMTJjMDMgcHkzaworNjM4OTQgNjVhNjA2MDhhYjVhNTliMDI4NDkzY2Y3NTg4NGUxOTVlNDVhYjllMCB0bGVlLWFzdC1vcHRpbWl6ZQorNjM4OTUgZjllYmFjYWNlMzVkM2NiNTdjNjllYWZjNWUwNDdjZWExYjlhZDk5ZiBweTNrCis2Mzg5NiBlMGNhMDIxOGZmMzNjMDI0YjUxYzIxNGI1MDE2ZTJjOWM5NDAyOTYwIHB5M2sKKzYzODk3IDQ0NDAyNDdiOGE0NDgxZGZlNmU0ZjNmMDA1MTA0NDhmM2YxZDBlNDkgbGVnYWN5LXRydW5rCis2Mzg5OCA3NzA4OGQ0MWM3OTAxZmNkMGEwMWI0NDI1OTVhNmYxZGNhMTE3ZmE4IGxlZ2FjeS10cnVuaworNjM4OTkgZWQ0NzFhODAwOWE2MzE5MWY0ZGNhOWIzNTdkODFiZGQzNDNjODYxOSBsZWdhY3ktdHJ1bmsKKzYzOTEwIDQ3ZmYyNGJjNjExNjVkMmYzMjY3ODE5NDMyYjE1OTA0NjkxOThiNmMgbGVnYWN5LXRydW5rCis2MzkxMSBjMjNlNmQ1MzAwYTBhMjRjNGE1MTExYTI0NTQ4ODhhYTUxMzEyYTg0IHB5M2sKKzYzOTEyIDM5OTkxOWU2MWQyMzhjMjIyMGMzY2ZmOGYwMDMzMWUyYzEzMGQ2M2MgdGxlZS1hc3Qtb3B0aW1pemUKKzYzOTEzIGY3M2U2ZjZkOWJhNjk3Y2E5MjdlM2RjYjM0OWRiOGZiMjg4MGE3MzcgdGxlZS1hc3Qtb3B0aW1pemUKKzYzOTE0IDUzNTNiNTUwYzk2OTJjZTg4N2QyNjBhZGE5ZDAwNDU1YzljZDViZGMgbGVnYWN5LXRydW5rCis2MzkxNSBhNzZlNDliMjE5YTJjYTJjNzU0ZTU1NDc1OTY2Mjk1ZTFkZTY2NjQ4IHB5M2sKKzYzOTE2IDg2ZWQ5NzlkZTg5ODdmYjBkYzMxOGQyZTA5N2VlNDY5MTA0Y2EzY2UgcmVsZWFzZTI1LW1haW50Cis2MzkxNyAzMjU4YmJmYzQ1NmU2NzRjMWE0ODg0YTA0MDhkY2Q3OWE3MDUyZjgxIHB5M2sKKzYzOTE4IGU0YTE4NjQzNzQ0MDQyYjYzMTU4M2NlZTg4NmExODJmNGNhNzcxODUgcHkzaworNjM5MjkgZWYwY2NjZGU4YzI0NWNiNTU2ZjQyMWYzMjBmOWE2OGNiYmJmNDJjNyBsZWdhY3ktdHJ1bmsKKzYzOTMwIDU3MmQ4MWVjZjAwZDYwZTNkNmZkOWU1ZDI4ZjRhMWRmZjkwMTc0YjAgb2trb3RvLXNpemVvZgorNjM5MzEgZjgyMTE2NjAwYzBmMTgxYmNiNTM5ZmI4NTY0Njk0NmU4OTAzNmQ3YiBva2tvdG8tc2l6ZW9mCis2MzkzMiAyYTFjNjk3OGRjNTc2MTBlMDVmNzZiOWY1MWY0NzI1ZjVkMmMxNDBkIGxlZ2FjeS10cnVuaworNjM5MzMgMjFiZWIwZDVlMzI5OTUyNGIxYTQ5ZjJkOTY4NzU3M2E5NmJlZjlhMyBweTNrCis2MzkzNCBkNTdhYTc1MmE0MDExODI3N2Y2MGExZDM5NjUyN2E5YjIxODgyZTIwIHB5M2sKKzYzOTM1IGQwZjc4M2JhNzY2OWEzMGMxMWJhZTFmMTM1YWE4MGFiYmVjZTMwZDggcHkzaworNjM5MzYgYTY1NjE5YWQ1OWYyODczOGJjNWZjNjk4NzE0MGExNGEwYTc3MWVkNCBweTNrCis2MzkzNyA4ZmNjOWVjMTg4MjQ2M2FiZmUxOWFjOTFiZGViYmI5NDBkYzg1NWIxIHB5M2sKKzYzOTQwIDU4ZjRiNjA3NzNmZTYwN2NiZWM4Y2ZiNzU1YmU0ODRjNzUzMmFkNDEgcHkzaworNjM5NDIgOGFkNGViZGJkMzczYWE3MzkzNDI4MmM1MjAzOWU0NmRiMTEwNjM1MiBsZWdhY3ktdHJ1bmsKKzYzOTQzIDEwZmIyZGVjMzY2NWI0YjU4NzMzNjFjNGVlYzUwYzIxMGYxNTFmNTQgbGVnYWN5LXRydW5rCis2Mzk0NSBiMGQ0Nzk5YjBkYjg0NGU3ZDcxYTQ4ZDY1NTNlOGU5NDNmNDcwOWRjIGxlZ2FjeS10cnVuaworNjM5NDcgODQ4MGY1NGZjZDZkZjRjMzI0YTJmZDRlYjFlYjA0MjIxOTFlZGJlMSBweTNrCis2Mzk0OCA3MWJlZDIwOGZlNTA0MjQyZGY3Mzk4MzRhNWZjNzQzYjc3ZGE1NjY2IGxlZ2FjeS10cnVuaworNjM5NTAgZTk1YzE1YmI5OTUwMmI3YzE3ODRlOGY2YjI1YmJiZjBhMjM4MGRhZiBweTNrCis2Mzk1NSBjMzRlMzQwNTc3MTRhMDExYWI5Nzg3NzYwNzhiN2Y2YTFmZjU4ODZmIGxlZ2FjeS10cnVuaworNjM5NTYgNDU0YzdiMGI2OGE4N2JjOTc4MWIzMWE1OWEwNzRkY2EyOGVlNWUyYSB0bGVlLWFzdC1vcHRpbWl6ZQorNjM5NTcgZjA0YjA1OWU2Yzk4MjExNTVmZGM2NzU4OTM4NDQ0OGE5ZWE1OGYyYiB0bGVlLWFzdC1vcHRpbWl6ZQorNjM5NjEgNzM1MjU0M2NiYTAzYzQzMWVhN2QxNjUyZGIwYmIwMjUyZTMwM2UwZiBsZWdhY3ktdHJ1bmsKKzYzOTYyIGJiY2UxOGQwMGQ4NzUyNWFjYWY3Yjc0MjNhMTA1OGRhODAwMjIwMjIgbGVnYWN5LXRydW5rCis2Mzk2MyAxZDBhOGNhYzE1ZWYwNGU3NTZjNmU3ZmIyNDhkMzMzZDkyMzg2MDljIGxlZ2FjeS10cnVuaworNjM5NjQgOGUwYmMxZmMwOTVlNTBmYzQ2NzJmOTQ2NzZlMjJhMjg5ZTA4NTBjNCBweTNrCis2Mzk2NSBhZDEzY2I5ZTk0ZjFiNzRmOWRhMDQ0N2ZiYzZmZmY3ZTg5NDc5NmZjIGxlZ2FjeS10cnVuaworNjM5NjYgZmQ2ZjMwNmMwNGUwMGFmMmE4M2M0YTEyODJiN2FkMTlkODUzZmZjOSBweTNrCis2Mzk2NyAyYTQ5NmYxZWI5ZjE2NGY4NThjMjZiZGM1NzczY2I1ZGRiNDg1MjQzIGxlZ2FjeS10cnVuaworNjM5NjggMGQ3Y2NiNTAwMDdjZTJjMjBmODM3YTRkYWI5MDIyNzY3MjU2YzA3ZiBweTNrCis2Mzk3MCBiNTUzMDllZjU0Yzc3Mzg3ZmUzZGY3ZjlmYzUyZmQ1YjYwMTZjYWE4IGxlZ2FjeS10cnVuaworNjM5NzEgOTQ1ZGExNzI2Y2YxYTA4ZGYyYWU0ZWY4NDE2ZGViZmY5MzkyY2NiMyBsZWdhY3ktdHJ1bmsKKzYzOTcyIDllMjcxY2IyNWU1OWY4OWYyOTZmZDcxMjJjYzdiNDEzOWNkYWEyYTIgbGVnYWN5LXRydW5rCis2Mzk3MyBmNzQ1M2IwYjMzOWUwNWU2NzBiNTdhM2UxNDc2OWE2MTA1ZTk2YTAzIHB5M2sKKzYzOTc1IGIzODJiZWI3YmUzNmYyNTI2ZWE0ZjcyNGU0MDhmZDdlYjA2YTM0ZDkgbGVnYWN5LXRydW5rCis2Mzk3NiA3ODgwYTQyNzcxNTgyYmNlNWY3NTExZTY2ZjQ4NTZjY2FmY2U2NDMwIGxlZ2FjeS10cnVuaworNjM5NzcgNGY1ZTZhYWY1YTZhODBhNjUzOTA5NTVlYmU0ZGJiODlmMTE4MjZkYiBsZWdhY3ktdHJ1bmsKKzYzOTc4IDdhMWQ0ZTgyMzNmODkwMzEyODM4NGM1NzEyNzQ2NTk0ZDdkOTY2YzUgcHkzaworNjM5NzkgMzI1NWYxZjE2MGFkZWRjMTA0MWU5ZWJhZTRkZjQzNTA0ODQ5NjIyZCBweTNrCis2Mzk4MCAxMzBjZTg2ZDYxYjY3OTJlODJhMTBlMzJmYTQ3ZGRmZTg2YWIyNGM2IHB5M2sKKzYzOTgxIGViYmYwMTE1NTBjZDZhOTQ0ZjkwM2M4N2E5MmMwZTM2OTJjY2UxN2IgcHkzaworNjM5ODIgYWY2ODBmZDNmZmRjNzYzNDg4MWNhMWVjMTM0ODk4NTUzMGU3M2EyZSBsZWdhY3ktdHJ1bmsKKzYzOTgzIDllYTEwNGYxZTVjZDI2M2M1NjEwYmQyOWMyN2M4NDk5Y2YzZjVjYzcgcHkzaworNjM5ODUgY2FhOTBjZjZiZTlhM2Q1N2Q0OWY5Zjc0MTVkMWFkYTljZGJkZDU3YSBweTNrCis2Mzk4NiAyMjg0ZmE4OWFiMDhkNTU3NzEwZjQ3MTUwODVmODEyNTUwNzJmNTkwIHB5M2sKKzYzOTg4IDIyMTBmNDJlN2M4OThiM2RhMjMwMGU0Y2I5NjYwNWE4NTA5NGQ4NmQgbGVnYWN5LXRydW5rCis2Mzk4OSAyNDk1NGViODBiOWI2MTdiMzQyNWI2MjNiZTU1NTJjYTBhMjI5NDcwIGxlZ2FjeS10cnVuaworNjM5OTEgZjA4ODUwOGY2ZDk5ZGFlZjJlYzI3MWJhMDdjN2NlNDJhYjMwOGM2YSBsZWdhY3ktdHJ1bmsKKzYzOTk0IGEwMTkzYjA4ZjBlYjhmNzU2ZmJhZTc3ZDZjMWQ4OTc3YTc1MmU0MTMgcHkzaworNjM5OTcgYzlhNWYyZWI3MjBjYzU1YjU0OTRhMmQwYmI5MmQwMGNkYzk3ODcwMCBsZWdhY3ktdHJ1bmsKKzYzOTk4IGM4OTQzNGNiOTE0ZDhjYzk3NDEwMDQ3ZWNlMGE5MmZmZjM5ZWU5NWUgbGVnYWN5LXRydW5rCis2NDAwMiAzYWViYWM3ZjI3MjUyZTQ0Mzc3MGVkZDczNGY1ZjM4YTMwMWZkZTAzIGxlZ2FjeS10cnVuaworNjQwMDMgYmYxNDNiZWIwOGU4ZTYyMWE1MmQxYWRjOWFiOWJkYzg4ODk1NDY4YiBsZWdhY3ktdHJ1bmsKKzY0MDEyIDlmZGEwOTBjMDQ1ZjZlMzE0NGEyM2QzM2ExY2FjYmEzY2U4ZDJkYzYgbGVnYWN5LXRydW5rCis2NDAxNCBlYmY2ZjYzOWUxMTc4NWRiNDVmYWIwY2Y5ZDc5ZWI1NzIyZTMzYmVkIGxlZ2FjeS10cnVuaworNjQwMTUgOWJlY2U1N2NkY2UzMWI4MDkxMmRjZjY0ZTU5NmRlNzJjOGFlOWE5ZCBsZWdhY3ktdHJ1bmsKKzY0MDE2IGIzMmQ3YjgzMjk4YTk4ZTQwYjMxNzcyZmQwYjE0NzU0ZWYzNjY1OTggbGVnYWN5LXRydW5rCis2NDAxOCA3MjAxYzAxOTNhZGVkODNiZGZjN2NmNjgzZDYyNTgzZTU1ZjNiYzMyIGxlZ2FjeS10cnVuaworNjQwMTkgNDBmMmQ1YTRmYWRjYzMzYmUyMDkwMjJiMDgxYjQwYTA4YjIyOTdkYSBsZWdhY3ktdHJ1bmsKKzY0MDIwIDY3NzU2NGEyNzA3YWFjNzFiYjQyMWFkYmYyMGU5OTIxNzQ3M2QwNmYgcHkzaworNjQwMjEgNWY2NWM4MzNkYzg3MDZhMmQ1ZGRhZWFlZTZkYWJlMzU2OThlZWEwMSBsZWdhY3ktdHJ1bmsKKzY0MDIyIDRmNzBhOWRlMjg2NTE5NjA3ZTJjYzE1ZjBmNDRmYjJiM2MwZWRhZjggbGVnYWN5LXRydW5rCis2NDAyMyA3ZDM2MTNkYzNmMWNjZGU1MGNmYTY2ZWI4MzgxMzRkZDkwODRlZjQ4IHB5M2sKKzY0MDI4IDc4ZDNkMzU5NTU1ZWE1YmFmNTczMWM5OWQ4OTFmMGNiZTk2YmMxOWYgbGVnYWN5LXRydW5rCis2NDAzMSBmM2RmNTFiNjBkYzI2MjNiNTU2NTZiY2NkZjYxZTlkOGY4NzVkZmM1IGxlZ2FjeS10cnVuaworNjQwMzIgMjJjZmNlYjMzMzhlNjhhZjg0OTIxMmQxODk4NzE3YjM5NmQwMTdiNiBweTNrCis2NDAzMyBhN2IxNjIyMjc0YjM3NTJkZjBkNmJhZDRiNmMwOTE5YzEwZGQ2OWY0IHB5M2sKKzY0MDM0IDVkMjc0MmUzNjg4NmYwMWRlMDMyYTVlMzUyNTM1NDZmYTVmY2YzMGIgdGxlZS1hc3Qtb3B0aW1pemUKKzY0MDM1IDFmZmU2YWI4NGExYjhlZGMyNDg5MzlmYzZkMTFkY2I4ZmY2ZTNjNDMgdGxlZS1hc3Qtb3B0aW1pemUKKzY0MDM2IDFjMDMwOTBiMmEwYTJmYmU2MTRjOGUzNDJhNjhkZGFmNTlkODlmMDkgbGVnYWN5LXRydW5rCis2NDAzNyAyNGRmMzQzNGNjZjdiYzI4NDVlZTdkMmM2Y2UzMjUzZGUxMTU5YWNhIGxlZ2FjeS10cnVuaworNjQwMzggYzhlMjk1OWU4YjBmMTkyYTRiMzIxOGJmZjlhNjMxYjZiN2Q4NGJhNiB0bGVlLWFzdC1vcHRpbWl6ZQorNjQwNDAgMzFhZWU2NzAxOWEyYWQ0YjU4YzA5YjI4MzA2NDM2YmRiNTMzMzFiZSBsZWdhY3ktdHJ1bmsKKzY0MDQxIDAyNjUxM2JlMzhkYWE3N2JkMGM4ODI0Zjk5OTdhNTkxOGQyMTczY2EgcHkzaworNjQwNDQgZDU2NDUwZGI2MGEyM2YzNDM0ZDZiZDAyMDc0ZTFiZjM1YmM3MDY0YSBsZWdhY3ktdHJ1bmsKKzY0MDQ1IDUzMjUzZjM2MDE0ZTAwMWYxY2YxM2NhYzE5ZWFiN2RhNWJjMDJlMjIgbGVnYWN5LXRydW5rCis2NDA0NiA5NGUzNjMwZGFjYTczMGZjODVmNDhmNTcxNDM2OWVjNGRkMjdkYmQ4IHB5M2sKKzY0MDQ3IDI0NmE4MDI2MzdhZGY3ZWQ4YzYwYjMwNzlhYWVmYzY3OTJiOTdmNGIgbGVnYWN5LXRydW5rCis2NDA0OCA1MjI5NGFmNGI2NjNjYWRhOGUxZmQ5ODg3OWVkYzQ5MTk5NTQ2Yzc0IGxlZ2FjeS10cnVuaworNjQwNDkgN2FjYjdlN2E1ZjI4MDkwNTA0ZDk2MDBiMmFlZGVlYjYwZjRiNTg5NSBweTNrCis2NDA1MCA2NDI4YzRmMWFlMDk3YTQyNWMxYmNlNGVmYzMyZWU5MzJkMzA3MDBlIGxlZ2FjeS10cnVuaworNjQwNTEgZDRjZDcyMjNhZjNiZjI5YzNjYTdjZDVjNzY5YTczMTlkNDFmMWVmYSBsZWdhY3ktdHJ1bmsKKzY0MDUyIDc3MWY3YTgwNDg3NGZkN2RhMGIzZmNlZjg5NWMyZjAyNTMyYWIxM2YgbGVnYWN5LXRydW5rCis2NDA1MyAwMjA1OTI2OGM4MjVmYTM2MGYxMjM1YTIxODY2OTkzOThhZDEwN2NjIHRsZWUtYXN0LW9wdGltaXplCis2NDA1NCA2Y2ZhMjk3YzY1NTUwYzljMmY0MjI2MzA1ODNjMmNkN2M5ZDk1ODczIGxlZ2FjeS10cnVuaworNjQwNTUgMTA1NzdlMjVmNzhmNmMyYTA1YTMyMzRjMjYzYjdmYWFkNzg0OWM1MiBsZWdhY3ktdHJ1bmsKKzY0MDU2IDJkNWYxZDk1NmVmNmJjZjQyY2I3ZWE1NzUwYWRmOTdkOTE4N2I2MGUgdGxlZS1hc3Qtb3B0aW1pemUKKzY0MDU3IGRmOWIzMzdiYTMxMTI0ODlkMjVmM2ZhZDkyMmI3YjQwNWRhYjFiZWUgbGVnYWN5LXRydW5rCis2NDA1OCAzOTM5ZmY4OTgzNGNmNjBjM2YyZTUwMzI4ZDZlMDM3MDgwNDZhZmJiIGxlZ2FjeS10cnVuaworNjQwNTkgMzM0OTJjMjQxZGFiNWNhODEyYzkwZmY0YmNlNmM1YzdkNWQ1YzdhMyBweTNrCis2NDA2MCAxMzllY2RiZjRmMTk2YTJlNzNiZTYwZTNhOGQ3OWMyYjNhYzY1NmRlIHB5M2sKKzY0MDYxIGMxYWViNmM5NGFmMTBmYjdhODExOTI0ODVjNDBkOGJiMDFiMzI4NzkgcHkzaworNjQwNjIgNTNjNjBjN2NjY2Q5ODM0YmE5MWM3NGNiNDgyNjQ5YmNkNDQ0ZWJkYSBsZWdhY3ktdHJ1bmsKKzY0MDYzIDQ5MmY4ZTEzMDVjZjYyZTA2MTJkY2Q1MzI1OWI2YzU1ODk4MWQyYjAgbGVnYWN5LXRydW5rCis2NDA2NCBlZDU3MmQyNjBmYTcxNzJiMzE2NDkxN2IwMTNlNjk2ODBkNjI3NWEwIGxlZ2FjeS10cnVuaworNjQwNjUgODk1ODdlYTE4ZWQ3ZTE4NzRmMTFiYTMzMjljZWViNjU3YmIyMzViNCBsZWdhY3ktdHJ1bmsKKzY0MDY2IDI5NmFiMTAzOGI3Zjc4ODAyZWI5NzQxMTlkOGM1Mjg2NmNiNzQ3YTEgbGVnYWN5LXRydW5rCis2NDA2NyBmNDk4OTUxNmI0ZDZhMjg2NzE0ZjBkNmQyZmNjMDhlY2E0NTMyNzQ1IGxlZ2FjeS10cnVuaworNjQwNjggZGM5ZjRkNmNkM2YxNzI2ODNlZTE5MWMyODkzNzRjYzRjNTViZDA5MCBsZWdhY3ktdHJ1bmsKKzY0MDY5IGNkNWQyNWRkNjEzMTEyZjdiYzk1YzJkYWFjZDJlNDA4MGQ5NmM2ZDAgbGVnYWN5LXRydW5rCis2NDA3MCA4MTNiODdiMTZkYzUwOTAyZjM3OGI4ZDE3YzZiZDVjZTRjNTY5Y2JiIGxlZ2FjeS10cnVuaworNjQwNzEgYzAwNTc2ZTIwMmRhZGNmZGYxM2E0NDlkZDMzOTQyN2U2OTVhYTYzNyBsZWdhY3ktdHJ1bmsKKzY0MDcyIDc1MjEyYjQwOGQ3YmFiYTJjMmMyZjFkZGM0NTVlOWM0YTFlYWQyZmMgdGxlZS1hc3Qtb3B0aW1pemUKKzY0MDczIGQ1Y2MzYzVjYzE4OGVjMzI5ZTUxMzBjM2EyNGI1YjM0OWIxZGMzM2UgcHkzaworNjQwNzQgZGZjMzhlNWFmMTJkMjY1MjA1ZjZiZmNlZDlhYzVkYTFiZDAyYmRiZiB0bGVlLWFzdC1vcHRpbWl6ZQorNjQwNzUgNDA4NGE4NGU0ZDNiNzQwMDNhZDhiZTk2MzY4MjU2ODEwMmRhZmFiMSBweTNrCis2NDA3NiBlZTczYTZiMjdjM2FhNGE2YmYzNWUxYTliZmIwZTgwYWM0MzFlMzNhIHB5M2sKKzY0MDc3IDAzNjdhOTM3ODhkYmFhMTJmY2ZjYzliODE5M2MxZGVkMTg2N2VkOTkgcHkzaworNjQwNzggOTMwZDkzMDhiMzJhYTU2NWM4ZmNjZjE5NjUwZmI0M2JmMzM1YTk3OSB0bGVlLWFzdC1vcHRpbWl6ZQorNjQwNzkgMDllYjhkNjI2MjZhMDI2MzQ5OWVjYzM2YzdmMWUxM2M2MmFhOGFkMyBweTNrCis2NDA4MCBiYmUyMDc3YTQwMWJjNDliMzY4MjMxYjgyMDY2NGUzOWM3YzMyMTc3IGxlZ2FjeS10cnVuaworNjQwODEgN2Q4MjRmZDEzMWFkOTkzMzliYWVlNTk3MzNmMjgyMWU2OGU2ZDY2OCBweTNrCis2NDA4MiAyNmE3MjgzZjdmMTc5YzRmMTQ3YjU3M2RjMzQyNDdmMWIyODhmYzc3IHB5M2sKKzY0MDgzIDk4ODI3YTIxZTM1MjllYjQ1NzZiYjgyNjE0YWM3MThkZDJjZjdiMDggcHkzaworNjQwODQgOTFlYjI0MjA0ZTA4YTZjMGVjZTkxYmYxYWI4ZjRjYjBhNWIzMTdhMCBweTNrCis2NDA4NSAyOTI1YjU2OGFhY2NhNjA4ZmY5Nzk3ZjZjMzYzZDlkNDk4ZjFmMmZjIHB5M2sKKzY0MDg2IGFjZGE0MzI1MjcxMDAxN2JhNzhmMTU1Mjc3NGMxMWY5ZjJjODNlYjIgbGVnYWN5LXRydW5rCis2NDA4NyAyZWFlMzFhM2VmODkzMDBhYmIxMmNkYjBhNjg1ZTA4ODkzZGZiY2JiIHB5M2sKKzY0MDg4IGJkNTg0ZjEyMWM0YjUwMjI0NTAyZmM4ZTYzZDk1NGMwMjA5NjJlMDQgcHkzaworNjQwODkgZmZjNmEyZWY3NmU4YWQ3MjRjMTU0NDZmZDc0MTI4OTA4MjM4ZDIzNyBsZWdhY3ktdHJ1bmsKKzY0MDkwIDZkZGUzOTFiZTk3ZDg4YjdjMWEzY2QzZWU1ODI1MzE4MTFkYTk1MmIgbGVnYWN5LXRydW5rCis2NDA5MSBmNTI5YmYyZGY0MzY4Y2E4OGZjMmNjOTJhYTY4OTcwNzJkN2I3MmE1IHB5M2sKKzY0MDkyIGFmZDNiOGVlZTJmYjk4ODNhMWNlZmE3OTkxM2MxYTQ2ZGY2NGMwNzUgcHkzaworNjQwOTMgZTdhOWVhYjM2M2FkYWE1NzJiNzUxMTcxNzk3MDllMWU3N2U3YTYzMSBsZWdhY3ktdHJ1bmsKKzY0MDk0IDgyNDhjY2ZlYjUzNDI5YmQ2MjI5YmZkNjdlOTcxNjE4OGYyMDI3OGQgcHkzaworNjQwOTUgZWM4MjdmNmU0Y2M2YjY2OGU4MDk0Yzc0OTRlNDNjZDA5YWJhNjFlZiBsZWdhY3ktdHJ1bmsKKzY0MDk2IDBjYTI0MThjNzcwMjU3ZjVkYzcwMDhjZDk3NjgxOGMyMGZkZjkyZjUgcHkzaworNjQwOTcgMjcxODQ1ZjMyM2JlNDMzMmZkNzFmNzFhYjgyMWMzZTQzYjYwOGU2MSBsZWdhY3ktdHJ1bmsKKzY0MDk4IDAxM2JlNjMyMGI4Mjg2ZTQ4OGIwMzFkM2M5OWYyYmI2OTFmOGY2NzAgbGVnYWN5LXRydW5rCis2NDEwMCAxZWFjOGZmMDFkN2IwNjA3ZWRjZDIzZDA0ZTM2ZTU3MDdkZTMwM2NiIGxlZ2FjeS10cnVuaworNjQxMDEgN2Q3MGI1OWVlYWYyZGQ5MGQ0NmRmY2JiOWFkMmVkMjM5NGE0MDVmMCBsZWdhY3ktdHJ1bmsKKzY0MTAyIGRhMzA3YmVlZWJiOTIwMjA0YjRjNzAzNDg2MTVmNDZiOGI4NjhmMGMgbGVnYWN5LXRydW5rCis2NDEwMyAyYTdiNmU5OWNjNTRjZWViNDhjZTljN2NmMzc1NDZhZGI5MTNmZWFkIHB5M2sKKzY0MTA0IDQ1MTFlY2QyNTYzNDNjNmIyNDAyODJjM2NiODUwM2JkMmFkYmY5Y2UgbGVnYWN5LXRydW5rCis2NDEwNSBhY2RkYjAwYjFkZTVmMDQ1MTNkZGJmNmYwZmQxNTZkZGEyM2QwYjM5IGxlZ2FjeS10cnVuaworNjQxMDYgZTgxZGVjY2IxN2M2YjY2NzJmNjcwOWQ4YmJhMzJlODYwMGQ4NTU1MCBweTNrCis2NDEwNyA5NGY2NGYxMWZkZDAwOThlNGFkNWEzZDZmN2EwMDZmMmU1ZGIwMGI5IHB5M2sKKzY0MTA4IDI1MTE0MzE1MTlhMjIxYmMxODY0ZDgwYjE4NDE5YTEyMGJjZGZjOWYgcHkzaworNjQxMDkgODhhNDJkYjM3NzdjMjNiOTQ3Y2VmYmNhMTIzNGU4MjZkY2NlYTgwMSBweTNrCis2NDExMCBiODJlMDU0NWQxMTE1NGE5ZWMyMDgxNTExMjYxOTJiNGFiNmVkNjI3IHB5M2sKKzY0MTExIGI4MzNhNDAwOThjMDBmNzk5NzY2Njg2ZTU1NWFlMzBlMjRiZWE1OGMgcHkzaworNjQxMTIgYjBlZjAwMTg3YTdlYzE2N2I4MTUxOGEwYjBhZTNlOTZjYTdmNmVjZCBweTNrCis2NDExMyAyNTQzYzRjNzk1NDMzYTYzMTRkMDIxOWUyYzRmZmJmZTA2YWFkNTNmIGxlZ2FjeS10cnVuaworNjQxMTQgMWM5NjRlZDM1ZWY5ZmIyNzliNmNjMmRjYTM5YWUwZWVmN2NjMTI1NSBsZWdhY3ktdHJ1bmsKKzY0MTE1IDhmZTQ3YjJjOGJmZTM3YTQwN2RjZDMyZmMyZjJmNzhjM2YwNjc2ODggbGVnYWN5LXRydW5rCis2NDExNiBjYjg0OTRjZTEzMzdjODNmYjQzNjU4ZGEwODEwMWZmYTJhZTRkZjgzIGxlZ2FjeS10cnVuaworNjQxMTcgMGY1NTY0ZmQwNDBhOTRhM2VlOTk4MWUwYzE4NGQwYTExYTIzNGY3NSBsZWdhY3ktdHJ1bmsKKzY0MTE4IDI0NWRjYTI2NzEyZjc2MzEyMjYyNWIzOTQyMTBlYmNiZjk2OTQ0ODMgbGVnYWN5LXRydW5rCis2NDExOSA1MTdlMTQxN2Y3ZTJjZDllOTlhMGU4MzYxMDI4OTBkOWQ0OTk4MmU4IGxlZ2FjeS10cnVuaworNjQxMjAgY2VmOWYyN2E0Y2MzM2ExZmY4NWY4NzIxZTI4ZTU0ODQwODAzOGU0NSBsZWdhY3ktdHJ1bmsKKzY0MTIxIDIxMmExZmVlNmJmOTNmOGI3NGY4MWRkMzU2N2JmOTY0ZTYyN2VhMjAgcHkzaworNjQxMjIgNWM2Y2RmY2Q2ZWFlNDllZmE1YzdhMTUyYmY4MjA1ZjBmYWE3ZmM1MyBweTNrCis2NDEyMyA1N2M5YWJhYjQ4MzJjOGI2MjRlN2NiY2M4ZmNmZTc2Njc5MmM0ZDNhIGxlZ2FjeS10cnVuaworNjQxMjQgNGRkMTAwMzcwODhjMjgyZDE3NmI0ODE2NmQ4ZDg4OGI3YzE3YjgyNiBweTNrCis2NDEyNSBjMzQ5ZjlmYmM3MDQ0NGE3YjM4NWJiZTQ5YmMyN2UwOWRiY2U0NmExIGxlZ2FjeS10cnVuaworNjQxMjYgZTJlYjcwMjM1MzkyZmIwZGJjMTQzZWY0YzNhZWU4MjRjZDE4NWYxZiBweTNrCis2NDEyNyBiNzcyYmVlM2ExMGVmMGMwNTIyZjE1NzMwMWE4MWNkMGM4MWQ5YjAyIHB5M2sKKzY0MTI4IDhkYzQzMTJhMmY3NTc4NTBhNDNmZTVmZjk4ZDk5ZDg3ODRhOWRlN2IgbGVnYWN5LXRydW5rCis2NDEyOSA5MTIxYzVjYzRmMDU0MTBmZmQyMGI4MjVlNWY2YjIyYjMwODNlZTcyIGxlZ2FjeS10cnVuaworNjQxMzAgNzJiNDk0NmM0NDNhZTQ1MjYzZGZlOWEzNWJlMWYzY2JiZWFjMDcxMiBsZWdhY3ktdHJ1bmsKKzY0MTMxIGU2YmVhNzJlOTQzNzAzZWViODYxNTlhY2U3MTAyNzRjODJlY2E1MzEgbGVnYWN5LXRydW5rCis2NDEzMiBlOTM1OThiZDdmNDI4OTI5NmQwMjQzMTZiYzJjNmUyY2QyYzdkOWYxIGxlZ2FjeS10cnVuaworNjQxMzMgNjk2MzQ0ZWY4YmMwNDg4MTVhMGRmZDNmMjQwNmJkMGVkYzRhZWIxYSBsZWdhY3ktdHJ1bmsKKzY0MTM0IDZkZDNlYjQxMTcwYTU4ZGFiNTc5ZDEwMjE5NjMzNjJlMzhjYjA5NzcgcHkzaworNjQxMzUgMjgyMDEwOWM4ZDU1MjhmN2QzN2ZjYmJjNDZlY2IzODFjZDQxOGE2YiBsZWdhY3ktdHJ1bmsKKzY0MTM2IGNjNzJmNDFmZjAxNDFhNDdhYTZjYzhjZDM3NGMxODgwY2MxNzM0ZWUgcHkzaworNjQxMzcgMTc3ZjFhYWUzYmI0NDkxYzAyNmUzZmRjZTdmNDFmODY2YmQ4NTUxYyBweTNrCis2NDEzOCBkYTQ3ZTdlMTM1YWU5ZjMxNjgzYTRhMmIzNjU0MGJkNjdmYjY2NDkxIHB5M2sKKzY0MTM5IDZmM2MxMzU3YTdmYmRlN2ZhMmM2Yzc0NTA5NTMzNDYzM2Q5Njc5ZTkgbGVnYWN5LXRydW5rCis2NDE0MiA2NzM1MzJhYTM3OGIxZjhmZWE2MzBlYWFkM2JhMTVhZGJkNmEyMThkIGxlZ2FjeS10cnVuaworNjQxNDMgNDQ1Y2Q2ZWJhMzMxZTlkNTZiZTgwZWVlNTIwZGFlNzJmMmU2ZjFiNSBsZWdhY3ktdHJ1bmsKKzY0MTQ0IDA0NWY4M2ExYjg2NDFjMjRmNmY0NGZmNjkyNWFiNWYyYTE3ZDY0MzUgcHkzaworNjQxNDUgZDNlMmE4ZTdiZjQ1OTEyMmYyMTNkMzFkM2UzOGJmM2JhNDdhZTlhMSBweTNrCis2NDE0NiAzMmZlZjYzMWY3ODkzNGMwNmI5ZGExMGNhNGZkODU1MTlhOGQxODM1IGxlZ2FjeS10cnVuaworNjQxNDcgN2E1YmI1NTNkYTJiMTcyYmIzYWNlMGQ0ZTE1MGJmNzE2ZWFmMDY3NCBsZWdhY3ktdHJ1bmsKKzY0MTQ4IDRjNmI4YjkzOTcxODE5N2UyNGQ4ZmJkZWJhZTkzOTgwMmY3NWVhNDkgcHkzaworNjQxNDkgNmE3ZWIwYjcwMTk4MDk5YTgzYzgwZmViZjJkMTg0OTI5ZmI5ZjAwZSBweTNrCis2NDE1MCBiNDVhOTUzOTA2MjBhZTY3MDYzOWRhZDc2ZDM3ZmU4ZDQ1M2NiZDMzIGxlZ2FjeS10cnVuaworNjQxNTEgZjc1MWRhYjcxMzAyNGQ5NGVhY2JkMmU2YTZiMGM1NTE2MDIyNGZiOCBweTNrCis2NDE1MiBhZmRkNDljNDc1OTlkOGJhZjU2ZmI4NTcxYWM4YWQ2YzMxNWI0NDgzIHB5M2sKKzY0MTUzIDhiMGUyYzk2Y2U4MGUwNWNjZTc3ZTMxOWI5MmQwMjdjZmIxOWUzOTUgcHkzaworNjQxNTQgMWJmZWE5NTZkMGQ3MDk5YWQ5YjU5M2FiOTE4MWQ1ZWM4MjAzMDRhNyBweTNrCis2NDE1NSBiZmI4Mjc0ZTM5MzlhOTQ5YjRjMGEzNzk5NzdjMWJmOGFmNTk3OWQwIHB5M2sKKzY0MTU2IDdiM2EwMjdhYjc4NWI4NDUwYTMxZGZlY2JhYmYyM2Q0NTNjZGVjNGEgcHkzaworNjQxNTcgZDE1ZDg2ODBhMDBhNjBjZDE5ZGI4ZTQ1YTAzOWUxZWMwZjQxYjE0YSBweTNrCis2NDE1OCBmNTI4MTNmNDMxODlkMjNjMDg0YTA2M2Q3ZWIyYWI0YzliMjg2YWM3IHB5M2sKKzY0MTU5IGEwMjFmZjExNzE4YjZhOTVhOGUxZjE3OTY5YWM1NzczODNmZjc3NmIgcHkzaworNjQxNjAgMzhkMTc2ZWJiMmZhYjk2M2ZiM2ViNWQ2ZmYxMDM1MzE4ZTU5OTU3MCBweTNrCis2NDE2MSAxOGVhYTFkNWYzOTQyOTgxOGU4NGVlOGZlZWMyZmU5OGUxZjI2MGFhIHB5M2sKKzY0MTYyIDVhZjE1MDg5YTEwMDY0OGI2NmYxZDY0MWIyNmVhYjliZmJjZTI1MWEgcHkzaworNjQxNjMgODA5NzVlNjFmOGM4Y2RlNWI1Mjk5YWI5YTVkZGRjZTI1YzVkNThmMSBweTNrCis2NDE2NCBmMzFlMzJhMjAxM2NmNDBhNDk4YjcxYWY0MjMxNzk3ZmJkNWUwNzYwIHB5M2sKKzY0MTY1IGY2YWVhODA4YjM1Nzk5OTMzZGUyZjAyNWQ1NDg5YzM3YWFiYTE0ZDMgbGVnYWN5LXRydW5rCis2NDE2NiA1MjU4ZDRkN2RlNzdiNDk4NjVlMDUzZDc3NWYxODQ4ZmIwNDZjMDFiIHB5M2sKKzY0MTY3IDVmNGE1MWY2MzlmMWQ1ZmU3M2E5ODA5ZGQ1MTY5NjkzYWRjMGE3NmIgcHkzaworNjQxNjggOTFhODgyMDBmZGYwZGQ4OTM0ODM4OGIzNWZkYjUyMWQxYjI0OTY1MiBweTNrCis2NDE2OSA0NDAxOWUzN2FjOTI1ZTU1ZTQ4OTliZjIzNTE4MjQ1NzRmMTM1M2I3IGxlZ2FjeS10cnVuaworNjQxNzEgNjUwYjNmNjg0NWY5MzFlOGJjMzFlNGRlODcwYjhjMWRlYTNiZjg5NyBweTNrCis2NDE3NiA1YTljZmY3ZmQwOGY1Yjc5MTdmNzA3NjBlYmUwZjM3NWQxYjk4NzEyIHB5M2sKKzY0MTc3IDU4NzBlYmUyNWRkMDkxYTViZDU4YmI1MWFkN2YzOGVhZWQxNGJmMTYgcHkzaworNjQxNzkgM2EzZTIzMWI4NjZmYmUyYWZkZjM5MDFkMDdmMTY3OGUwNDE1ZjM1ZSBweTNrCis2NDE4MCAwYWU1MGFhN2Q5N2M1Mjc3ZTdiZjhlZjg1ZDliYmM4YTVhZWE5YTc4IHB5M2sKKzY0MTg0IGIzNzY5YjZiYWUwZjBhZDc4NzNiNjA2ZjFhYzYzNGJmNTNmYzUzZWMgcHkzaworNjQxODUgM2Q2ODY5ZTJjOTJhYzk5NjlhY2U4YTY4ZDJkMzk4YzIzZGI3NWZkYyBsZWdhY3ktdHJ1bmsKKzY0MTg5IGU4NmYzODU4ZGYyMGNhOTNkNmVhYzA0YjAzM2M5NTdlYTc1MTFlOWUgbGVnYWN5LXRydW5rCis2NDE5MCA1MDNmYjNjNWUwODE0YzEwNWYyZTU5OGUxYTcxNjE3NGM4YTEwNTY4IHB5M2sKKzY0MTkxIDMwMTdlNzk0YmJiOWFjMzVkNGE4ZWZjZTc4ZDE5MTE4ZmFlZDJlMWMgbGVnYWN5LXRydW5rCis2NDE5NCA0MTQxNDkzZGQzYTA1NTZhYmIyMzcwYmYwY2NiNmY2YzU5OTAzZmIxIGxlZ2FjeS10cnVuaworNjQxOTUgNDE0ODRkMTgzOTBjZmMzMDYyZDkxMjMwYTBlZGQyZGQ1OGMwMGQyZCBsZWdhY3ktdHJ1bmsKKzY0MTk2IGY0ZmY1OGUzNDZlZTQ5M2ViYTQyY2UzNjBkODQyNTg0YWIyZGE0YWMgbGVnYWN5LXRydW5rCis2NDE5NyA5N2NkOTUzNjdkNjBmZmI1ZDc0MTY4OGU4MjZjMDVlOWQ1MDY0Njc5IGxlZ2FjeS10cnVuaworNjQyMDIgZTI0ZjI2YzNjY2U0NjQ4ZTc2NzExODdiODM4YjcyOGMxODFkMTE1ZiBsZWdhY3ktdHJ1bmsKKzY0MjAzIGQ0MDdmOTU4YzEzNzRlYzlkNjRmNjQxMWZiYWRkMjRhYTMwZDFiNmEgcHkzaworNjQyMDQgMTA5ZTk3NDhjN2Y0MzUxYmY2ZjJhZDNiMzNlYzJlZDEyMmQyNWRmZCBweTNrCis2NDIwNSBmY2RmODE0YzliMTEyOGEyMTkzYjk0N2Q0Y2YyYWI2ZmFkNWM5YmNiIHB5M2sKKzY0MjA2IDY1ODVmZDFkOWFkNzEyM2Q2Y2FhOGM3NDRhMWVjY2M0ZmI2ZjM0MDQgbGVnYWN5LXRydW5rCis2NDIwNyA0Yjg2ODJlYTM3YzFmNDI0OGRkNmM2OWY5ZmU1ODg1NmU2MTdiODhjIHB5M2sKKzY0MjA4IGZkN2ViMjc0MTAxMjFjOTVkODAyOGU1NjdhZWQxNzkyNWQ3MmZkMjEgcHkzaworNjQyMDkgNTcyNmU5MTU3YmYwMmZiNWQ4N2RkMzdmMWI0NjQ3YmM5M2ZjNjdjNyBweTNrCis2NDIxMCA5MmI3OWI2ZDFhM2I5YmJkMGUxOGE4YWZlNWFkYWQ0OThiM2UwMjZhIHB5M2sKKzY0MjEyIGRiOTlmODc1MjcxMDZjYjczYmU2YTdkMTZiNmYxNDE4MzZlMjY0OTYgbGVnYWN5LXRydW5rCis2NDIxMyA3MWNiN2VhNGYxMTAzNjc1MjRmYjNiMWFiOGRkM2UxMzhmMGNmYTgxIHB5M2sKKzY0MjE0IGZjZmUxMGYzZGMxNDZjZjUwNWFjZWZiZmJjOWJkZjg2ZTdjODNkNzEgbGVnYWN5LXRydW5rCis2NDIxNSBiMWY0ZWE0ZWI1NTU2Mzk5MzQxY2Q2ZmZlZTVkNDZhNDczOTI4NDA0IHB5M2sKKzY0MjE2IDljNzllZTQ5YTJkOTUyYjhlYWZmOTgzNmYwMmNmOWVmMWU3MDg2MTUgcHkzaworNjQyMTcgMzE5ODhiNDAxNTM1Nzk1NDZhNWUyMTNlNzc3ZDk1OGJkMDkzMDA2NyBweTNrCis2NDIxOCAxMzA3MWFkZDhmNDhhZTU4Y2E0NWJiZjM4Yjc3MGQzNzZmYmFjMTcwIHB5M2sKKzY0MjE5IGUzMGFmMzI2NGEwZjU3M2FjMTAyODljNzhlYzkwMmUyNmUxNWYyMWYgbGVnYWN5LXRydW5rCis2NDIyMCA1ZWJjZGViMGNiMjZjNjdhODUxZDg0MzEzNWZkYTE2YTU2NjJiZDM4IGxlZ2FjeS10cnVuaworNjQyMjEgMTQ2NDM0NWExOTY4M2I3NGI1YWZkZmFhMDEwZTExYTYwOWYyYWFhMyBsZWdhY3ktdHJ1bmsKKzY0MjIyIDhmNjFhZTAxMTMwZjg4OTM5ZGE1M2M0MDI2NmUyNzFlNmUwM2Y2Y2EgcHkzaworNjQyMjMgZDVhYTI1YmY5MzYwM2ViNGUxYTgyODJmYTU1ODU2OWY2Nzc5MTFmMiBsZWdhY3ktdHJ1bmsKKzY0MjI0IDM4ZDA0NjdmNWVjNzY5ZDRkNGNjYzg1ODlmNzM3ZWJmNDQ5YzU0MWMgbGVnYWN5LXRydW5rCis2NDIyNSA3YThlZTA1YzY5N2Y1MGYxMjJkYzEwYjExNDRmNWIyOTNkZTcyN2Q1IHB5M2sKKzY0MjI2IGEzNWRhOTRlMDVmYzVhNThlZWE3ZTZjMjg4NTA1MzEzNDRhYmFlZWUgbGVnYWN5LXRydW5rCis2NDIyNyA4YzYwNjhmMTRlZThjZWYxMDEzZTBlMGNiYzE0ZDViZmIxOGUwMjAzIHB5M2sKKzY0MjI4IGI1ZTAyNzc1ZmZmY2IzZmM0Yjk5ZjUxODE4MDhmOGM3YjEzNGNhMjYgcHkzaworNjQyMjkgNjQzNGRkNzA0ZDYwZWE2MDgwMDM4M2FlYjY0MGI0ZTEyZmU4ODBkNyBsZWdhY3ktdHJ1bmsKKzY0MjMwIDJkZmFhMDY4M2JlOGI2NjNkMDYwMzg0OTcyYjAyZDAzZGMxNmYzODcgbGVnYWN5LXRydW5rCis2NDIzMSA0ZGE4YjdhOGNmMmU5NGJiZGM1NjVlOTAyNThmZmMwMWM5ZjJkZWQyIHB5M2sKKzY0MjMyIGExMDY4OGFkY2RkNjI1MzZmYmQ5NWVjM2FjZTlkOTFkODgzNTYwYjggdGxlZS1hc3Qtb3B0aW1pemUKKzY0MjMzIDE2OGM5ZTk2NzcyYzU3OTcyYmZhNzliZmI4OGNkNDZlMmFhYWNlMTEgbGVnYWN5LXRydW5rCis2NDIzNCA3ZmQ5ZTljYmQ3MjE1M2FkOGQ1ZWRmNTg1OWJlYjI0OTg0YzdhMmQzIHB5M2sKKzY0MjM1IGEzMzNjODc3MGUzMjEzMjczOWRkYjUwNGZjNjI1NmM4ZjdmNWM0MDkgbGVnYWN5LXRydW5rCis2NDIzOSBmYWE3Y2E1MjQyNzE4ODQyMmVkMTE3YWQ3MzY4NzFjYmMyZDBhNzc1IGxlZ2FjeS10cnVuaworNjQyNDAgY2RiZjEyOTEyZDRiODJhNDQ4ZTdmODY3ZjczNjJiYTcwMTM4MjE2ZCBweTNrCis2NDI0MyBmNTI1NDlmYjc0YTI2NTE5MTFhNmQ4OWIxMjE5MWRmZWJhOGU4MmE1IGxlZ2FjeS10cnVuaworNjQyNDQgYjkwNWNiMjc5M2NjOWFhZjNhZDVkYjQ1MzQzMzI2NGZkODQ3YjcyZSBsZWdhY3ktdHJ1bmsKKzY0MjQ1IGJiODE3YTVkNjhiN2MzMDgzZDIwZjc0OTY0YTcwYWJmNjg5ZDViYzkgcHkzaworNjQyNDYgYTQ1MGRhMjQwMDg5NmQyNDMzZjAzZWZjY2M1ODg0ZDJiNzc3MzAzNiBsZWdhY3ktdHJ1bmsKKzY0MjQ3IDg3MTQ3ZGI4MmViMWUzMzIyNjNmM2E5NGVjZjVjY2Y0OTI0MTY1N2QgcHkzaworNjQyNDggYWY4ODczZGYwMzIyNWVjMTBmY2RhNjRmOWQ4OGVjZWMxYTI2MWQzMCBsZWdhY3ktdHJ1bmsKKzY0MjQ5IDliOGZmNzNkMDE4ODU5Mzc2YzkwZjY1MmI2ZmQwYmZiYzY2N2RiMGQgcHkzaworNjQyNTAgZDAxMTY1ZmFlOThlOTAwNGUzZjgzNTliOTNhNjY3ZDE0OGFjN2UwYSBsZWdhY3ktdHJ1bmsKKzY0MjUxIDQ2ZTU4NDYxNTBkNWU5NWY4YTJhMTIwNGJmZWRlOThkNDJiYjFmYmYgcHkzaworNjQyNTIgNmQxZGM3NjFhYjRlMDg4OTg5ZDc1NDRiNGUxZDJiNzliZGYwNGRlOSBweTNrCis2NDI1MyAxMDY5NTc4Mzc5YTAxMmNkMWM5ZjhjMjRhNTM5ZjIwYzk0N2UzYzgwIGxlZ2FjeS10cnVuaworNjQyNTQgNDQ2ZDVjMjk5MDhhYTk4NTJlODM0YjNmOWYyOTRhNjYxZWU4YmZlZSBsZWdhY3ktdHJ1bmsKKzY0MjU1IDJmMTZjZWEyMjRmNWNjNDg1MjQxOTIyM2NkZjBkYjY3NGNjZGUxYjQgcHkzaworNjQyNTYgZGZmNzYyYWRmOWQ2MTEyMmE0ZWI2NjVjMGEzYWVkNGE2MWViMTRkMiBweTNrCis2NDI1NyBmMzZmMDkyZGJlOTc4NDZjMjI2ZTEwOTgzNmUyN2M1YmMzZWMxYzVlIGxlZ2FjeS10cnVuaworNjQyNTggYWJhNThmMjhlMTY2YjNmN2FlNzY5NWI4NTVlZTNlZjQyODc3NGIxOSBweTNrCis2NDI1OSBmMmUyZDViOTY0ZGUzOGMxZDRhMjk5MTA4NTdlYzhmMjY1ZDBjNzNlIHB5M2sKKzY0MjYwIDM3Y2Y1YTFlNjM5ZTkwZWZjY2RkYzNmN2IxZDZhY2FlMjk1YzU0MGIgbGVnYWN5LXRydW5rCis2NDI2MSA1N2FhODczZDk2ZmNhOGI5MjA0MDc0ZmM4ZjQ0MzUxYzJhM2EyYmVjIHB5M2sKKzY0MjYyIDA5NWI4NWQ3YTAxNDFlM2Y3ZWZhZDkxNTZkYmZmMjk2YmQxODgzNDQgbGVnYWN5LXRydW5rCis2NDI2MyBlOGRmOWU0ODczYjQ3ODAxM2ZlMjk5N2Q1ODU5ZWNkNWRmZDYyZGUzIHB5M2sKKzY0MjY0IDEwYThjZThkYjZiZmI0ZjdjNjExMDJjMzFjNWYwMmM3Y2MyOGY1NWYgcHkzaworNjQyNjUgNmYwZmUwNjZhODRiYjUwNGU0ZGI0NzFlYmY1ZGQ1ZDlmYzVlZWEyYSBsZWdhY3ktdHJ1bmsKKzY0MjY2IDYxZTUyODZkOTM3YzhhY2VkNjkxYWExZTM2ZjIzMzYwNjQwZTk4M2EgcHkzaworNjQyNjcgYWEyNTAzMTg4YmYzNGQ4OTI4ZDcxMTU5NWFmNDQxYmQ3NjVhZjk5YyBsZWdhY3ktdHJ1bmsKKzY0MjY4IGM4ZjhhNTc4YzAxYjk4YWRkY2EyMGRjNmYxNmRkMzk1MTFiN2QyNmMgdGxlZS1hc3Qtb3B0aW1pemUKKzY0MjY5IGU5YzkzNWNkNzg4OGFlYmY5MGUwNTc5ZTI0NzgxMjA2ZmI2MmMwMmMgbGVnYWN5LXRydW5rCis2NDI3MCAxODk4NjdhYWJhZmEzNzc4ODNmZmI1ODUwM2Y3OGIyMzU5YmYyZDQxIGxlZ2FjeS10cnVuaworNjQyNzEgYjViZjE2NzkwZTNjNjlkMWY1NWQ0YWRkYTk4ZDQ5MWYxMmMwMTM3MyBsZWdhY3ktdHJ1bmsKKzY0MjcyIDUxNmMxOWQ4NTkxYTliNDYwMzVkODUyNTVhMTMyYzBiM2Y5NDEwMjMgbGVnYWN5LXRydW5rCis2NDI3MyA5NmJmZjdlMTM3ZmJkMTIzMGQzZDU4NDQ2ZjI4MjZkNzc1ODU4N2MwIHB5M2sKKzY0Mjc0IDRiMWUwMTUwNWQ0ZDM3ZTk5ZjE3ZWEyZWM0NDEwYzBlNjcxZjhiNDIgcHkzaworNjQyNzggOWFkNjkxMjdlNmFhNjU0YTM2Zjc3YmY0OGJhNmEwNTRhZjg4NTRhNiBsZWdhY3ktdHJ1bmsKKzY0MjgwIDkxNTVmZjc4ZmQwNjRkNjgwZjczMDhmM2RmYWE3OTExOGNlYTYzMDUgbGVnYWN5LXRydW5rCis2NDI4MSA3YmE3OTAxZGFkN2Y4YzZiNWEwYTJjYzRmNDA2OTNjMDZhY2YyNmI1IHB5M2sKKzY0MjgzIDI1ZmEzZGQwMjFmNTJhYmUxYTI2OTk2MGM2OWVkNGUzNmI4YzFmNGYgcHkzaworNjQyODQgYjMzZTgzMzRmODJmNzllMzM3N2EwNzg3NTVhNjdlOTRlMjQ3MzliZSBweTNrCis2NDI4NSA1Y2I1MGU3YTk4YTI4NThhOTEzNzQyODAxMjE5OGQ1MThkOWU4MGI1IHRsZWUtYXN0LW9wdGltaXplCis2NDI4NiA5OTFjYWFkODFhMmRhNmY1NWZjMDE2ODBlNThlODc3MTJlNTQ3YmRiIGxlZ2FjeS10cnVuaworNjQyODcgNGUzMDRhZGVkN2E4NTBiNGJmNjcxZmY4NmNjMDc1NjZkMGFjODgwNCBweTNrCis2NDI4OCA2MTNkYWY3ZjhlNDg2YjQ3MTE2NDExMmE4YmU3YmIwNjU3YmY2NTVmIHRsZWUtYXN0LW9wdGltaXplCis2NDI5MSAxNDM1MGU3NWQwMmE0YmUyZGIyZWQxZmU3Y2Y0ODEwYTQ1M2FhMmNlIHRsZWUtYXN0LW9wdGltaXplCis2NDI5MiAzODZhNzI5ODRhZjVkY2YzNWQwYjA0MjMwYjliYzliMWUwZjM2NDM0IHRsZWUtYXN0LW9wdGltaXplCis2NDI5MyBmNzdmOGU3OTk3MTQ5NGZiZmZhZGFmNGQ3N2NhMDg2NWVjZDQ1YzU1IHRsZWUtYXN0LW9wdGltaXplCis2NDI5NCAyNmU5Yzg3MWQyM2ZhMTI4MGQxMzNlYTk5M2U2YTNmMDkyM2YyNTliIHRsZWUtYXN0LW9wdGltaXplCis2NDI5NiA0MGQ2MDFkZTI4ZGMwODE3NjY3NWQxMjM2NmY2MWE0YWZlNmIxNzk0IHRsZWUtYXN0LW9wdGltaXplCis2NDMwMCA2ZjZmZWQ0ZjA2MjZiNDc3YWVkYmJmODRkODBjM2RjYzc3M2ZmZTg0IHJlbGVhc2UyNS1tYWludAorNjQzMDEgYTZkN2JmY2Q3NDU2OTFlMGE0ZGRjMDFiMjJhOWQwOTYzYjUyODBmZSBsZWdhY3ktdHJ1bmsKKzY0MzAyIGVlMjgyM2UxZjIzYjY1ZjhiZDQwZmU3OGJmYzA4MGRkYjljMjEwYjggcHkzaworNjQzMDMgNDY1MGVlZmI1ODM4ZTljOTYwNGI4MWJmNjA2Nzk3YjEzYmZlMWM3NyBsZWdhY3ktdHJ1bmsKKzY0MzA0IDM4NDMyODYwYjNiNDY4Yzg2NzZlZjE0ZDM1ODQwMzU5ZDBhNjkxZmQgcmVsZWFzZTI1LW1haW50Cis2NDMwOSBiOGU5Y2MyODAyMmM1NGY0NzEwMDI4NGViYTQwNjIwZTFlNjZiMDM3IGxlZ2FjeS10cnVuaworNjQzMTAgNGVkMTY1OTQwYmRkMDE5MjUxZGIzYTg4YzQ3MjUyNjAwMTcxMWU2NyByZWxlYXNlMjUtbWFpbnQKKzY0MzExIDVjODVkNTVjNGZiMmJkYTQ5NWVjM2Q3MDRjODUyMTExOGJlZjg1M2QgcHkzaworNjQzMTIgNTY2YzcxMzdhYThkYWVjNTRiOGJlZTFmYjI4Mzk1NTA5N2Q5ZmQ3ZiBweTNrCis2NDMxMyAyZTEzZmZhYjE5OWZmYmMyYzg5NjhiZjU0OTIwYTc2ZGMzNzc0YWRkIGxlZ2FjeS10cnVuaworNjQzMTQgNjA5YjA5YTlmZWViNDFmN2YyMzM1MmZmZTk4ZGU4MWQ0MjhhZWFhNiBweTNrCis2NDMxNiA4NDU5MGE2NGYzYTIyNjQzMzY4NDBiZTkwZDI5ZmJkZDc4NDhmODViIHB5M2sKKzY0MzE3IGY4YTg4OTRkYTc3YTRiNzI3NjViOGZlYzk4YzE3NTNjOGQ5NGY5MzQgbGVnYWN5LXRydW5rCis2NDMxOCBhMjliZjY5ZmIzNDQ2NDdjNmZmMDE3MzZmNTc5ZjgyYjJmMDJhNDI3IHB5M2sKKzY0MzE5IDMwMmE2ZDc2MzM3ODQwNjVlMjMxZWU4ZGEzMDBmZjcwNjE4MmE5NWMgcHkzaworNjQzMjAgYzA3NDE4ZGUzY2QzMzI4ZWM5NTM1NjZmY2IxMTA4ZDc1OTViNTg2YSBsZWdhY3ktdHJ1bmsKKzY0MzI2IGI4YzlhMzU0MzM4MTNiMjgzNTg5ZjVhZTY5NjgwY2MwY2M0MDllNWUgbGVnYWN5LXRydW5rCis2NDMyOCA5OGQwMTJhOGU0NDVmMDhiYzIwZDE4YmRkODg1M2Y0YjNkY2U3YjU1IGxlZ2FjeS10cnVuaworNjQzMzggOGU4NWM0NmNmNjczYzI2N2VhZmYyZDMxMDkwOTQ1YTVlZjI3NmY5NSBsZWdhY3ktdHJ1bmsKKzY0MzM5IDI4YWJjMjAyYzc3MTA1OTcxMmU5NzlkMjI5YmQ4ODZkOWRhNTM3N2MgbGVnYWN5LXRydW5rCis2NDM0MCAwYjFjMDFlZWM3ODg1MjlmZGYyNjAzNGU2ODk2NDgwNzAxZDAwNDNhIHB5M2sKKzY0MzQxIDAzNjM5YjA5YzM3NjAzMjhhYTZmMTFjNDkwMTRkOTE5ZGU4ODJjZjMgcHkzaworNjQzNDIgNDBhNzU5MTNmMDRhNjRiNGZmODFkMDRhMjZiNmY3ZjNkNTdkMWEzOSBsZWdhY3ktdHJ1bmsKKzY0MzQzIGY2NDk5Njc2MDk4NDcyODM5N2U3NmIzODVhYmE2ZjQxOGUxNGJjYTEgcHkzaworNjQzNDQgNmYyN2Q1MmU4ZDk1NmUzMjM3OTU2ODZhZmExODlmYjE4YjE5OGRkMiBweTNrCis2NDM0NSA2OGQ4N2JjMDZmYTM3MGQyNWMwMGU5OGU1MDBlZDVlOTJiYmMyNTE5IHB5M2stdXJsbGliCis2NDM0NiA4NzAwMTE4OTk5NWMxYWUwOGFkNjNhNjE1MDkxM2JmNDIzOWJhNGY4IHB5M2stdXJsbGliCis2NDM0OCBmNjcyNmYzMmVmNzA0NzdiZjNhMzhkY2M4NjE3YmNhNDU0MTlmNWI3IHB5M2sKKzY0MzQ5IGNhMDc0MjMyYjg3OTc2N2EyODFjNzZkOGEyMWYzYzE0ZjA3NTMwNTAgbGVnYWN5LXRydW5rCis2NDM1MSBlMzljODEwYTdlYjI3NzkxODAwNTdjYWZhOWRkOTg2ODk5MmU4Y2IwIHB5M2sKKzY0MzUyIGVmODgzZmI0YzA3NmRkNmY4NzViYzU5YzhhNGVjMmVhNzEzNGU4M2IgcHkzaworNjQzNTMgNzBkNzJhNzVjY2YxZTZmMDZkNDIwMWQ3M2QzOWY4N2NmNWY0YTc5OSBweTNrCis2NDM1NCA1Zjk0MzUzMTdkZTE3MDU1MjkyOTliNGRiMzE4OTZlODk3YzdkNzA1IHB5M2sKKzY0MzU1IGEwNTIzYzdjMWM0Zjc4NDVlYjY1NjNlNWVjNTQ3OWRkODU2MGRlZTAgcHkzaworNjQzNTYgYTE3NDE2MTdmMDZmNGQ1NGNmMWYwYzM0NmE1ZjIzYzBkYzNiYzg4YSBsZWdhY3ktdHJ1bmsKKzY0MzU3IGRmNWJiMGE2NTk0YmI3YjExNzk5NmZmMzQ1ODRmNzUwYzc4ZTE2NmQgcHkzaworNjQzNTggYTRiOGRiZTFiNjMzNmYxYmNiYTc1MDczYzMxNGVjNTYxMjcxOTM0OCBsZWdhY3ktdHJ1bmsKKzY0MzU5IDE4N2E4MWRkYWYyYmRmOGNlYTI1ZDlhMTZlMTY2NDVjYjZiNTk5ZDAgcHkzaworNjQzNjAgMDNhOWE5ZDMwODFlZGFiNjgxZjUxODcyNjk3YTUwNTI0NmUzNmUwMyBsZWdhY3ktdHJ1bmsKKzY0MzYxIGE0MDhhMDVkMGUyNTFiOGI2MDk2NjdkNmM5OTc1OTIyZTdkNzg0MWUgbGVnYWN5LXRydW5rCis2NDM2MiBkNTJhNzNkOGQyMGYwMzJiOTNkNzU4NmY4ZTBiZDBkMDIyZWM3OTVkIHB5M2sKKzY0MzYzIDY2YzhmNzZjYWM0NDZkMWE0M2Y3YzRkMTc4MDkzMTEzMWQ0ZjI0NjMgcHkzay11cmxsaWIKKzY0MzY0IGFjODU0Y2RlMzEzNWU1N2VjMWY0ZmM5NWFlNWQ3NDQ5NTBmM2M1MzEgcHkzaworNjQzNjUgNTY0YzI5YTBmYWIxYTA0ZmE5NDJkMjNhY2M5NGU0YjJiZmRmZWQ4NSBsZWdhY3ktdHJ1bmsKKzY0MzY2IDBiMTQ5ZmM0MDE4Njg2ZmEyNTc0ZjJhYmRlYTQ1YjBkY2VjNjQ4OTQgcHkzay11cmxsaWIKKzY0MzY3IDI4ZjU2N2E0MTNmNDE0YmNjMGUyNGQwZjhlNThiYmNmNzQxZjBlZTMgcHkzay11cmxsaWIKKzY0MzcwIGFiMTJlM2FkMmU2NjVmMmUyYzVhYWU5YmIzMTYzZGY2NTQ2NGQxZGMgbGVnYWN5LXRydW5rCis2NDM3MSBiNGQ4MjM0ODM0MjFlYjQwNGE3MDY1YzkyODA5MDU0MWZmMGQ0NDQ3IGxlZ2FjeS10cnVuaworNjQzNzIgYTY1MDNhZTNlMTljMWZmY2Y3MWU5ZDViOTI4MzI3NWJmYTE5YzBiMCBweTNrCis2NDM3NSA2YjdkZGMwZmRhOTM3ODI5NWY3N2Y3YmUwODNjZGRkNjIxYjU5MDJjIGxlZ2FjeS10cnVuaworNjQzNzYgNTcwMmVkZTQyMjdhNDFiZmVjYzMyNTFiZTU2YmZkYmU2N2E0YzUxMyBweTNrCis2NDM3NyA5NTQwNTk3OTEwYjk2OTVjMWZjNjlkZmYzNzkwZGQ1MGM0MDU2ODRhIHB5M2stdXJsbGliCis2NDM3OCA0ZGE3NzE1ODhiYTMxMDA2ODhkNWVhNjE2ODE3OTRjMjQyZDQ4MmMxIGxlZ2FjeS10cnVuaworNjQzNzkgMTU4OGUyZmEzZTdlNzRiMmJhMmYxMjM0YmMwYjk3YzE0MDM4ZGUxNiBweTNrCis2NDM4NCA2YWZkZDZmZTU1MTJkZjRkYTE1MDRjMTNiMDMyNmIxNDNiYjBjMzc5IHB5M2stdXJsbGliCis2NDM4NSA1YTQxNmE2NDE3ZDM4OWNjYmUyNDY4Nzg1NWJmOTdiZWVjYjNkMDQxIHB5M2sKKzY0Mzg2IDc0NGY5YzgwOWYzMDNmNDA3MTViYmYyZGFkYjZhZTY4NTkzNGZhZGIgbGVnYWN5LXRydW5rCis2NDM4NyAwMzIyODA4YzIwZmVlNjg1NjMwN2QwM2YxYzI4YzVjOGUxYjMwYmY1IGxlZ2FjeS10cnVuaworNjQzODkgNjkwNDAwOTJiOGY4MzE3NmM5OTNlOTMyODFkOWQwZTdlNzAyMTkxOCBweTNrCis2NDM5MCAyYzEwNjgzMjhiNWJhNDc2YjE3Mjg5MTM5OTg2ZmYyNjllOGZhNjc0IHB5M2sKKzY0MzkxIDA3Zjk0NzI2MDE3ODNlMTJjMjhjODc4YWY4YzQzMDg0YTZkZTczNzcgcHkzaworNjQzOTIgZWExOTRjOWE2YzJmOWRlNDQzYTE1YmYyNjkyMjI5NGRhZTM5MDBjNyBsZWdhY3ktdHJ1bmsKKzY0MzkzIDJkZGQ4NmUzNzAwYzIwZWRjYWRiMjg1MjZiMzdlZWNiZWRlOTMzZTEgcHkzaworNjQzOTQgNWJkNDNlYjllNTIwYzI3NjI3OWMzZjc2YTgxMjg4YTkxZTVhNTlkMCBweTNrCis2NDM5NSBhMzM1YzRkNjQzYjFjZmUxNDE5N2E5ZWYxOTVjOWIyODA0ZjYwOGZjIHB5M2sKKzY0Mzk2IGIxZWQyYjAwNWUzZGJlYWRkZjU0NjRjNTA1NTIxYzNmYTU5NDBjMzIgcHkzaworNjQzOTcgMDczMDIyNGVjZjVmZWUxYjA3Y2E4M2RkOGFiMDI2N2ExOTI1NTA5ZCBweTNrCis2NDM5OCAyZjJmMzJhZjhjNGVlOGY2NTk4ZjYzMmRjODM3MDFhMjA3MjZkMTBhIGxlZ2FjeS10cnVuaworNjQzOTkgMjU4MWVlMWYyNmY5ZTRiOGRkMzY3MjlhZGJhYzcxZmIxYmEwNmZiNCBsZWdhY3ktdHJ1bmsKKzY0NDAwIGVjZmYxYTFhMDdiNTU1Zjg1ZTg2MTg3NmY2NmYyYjVkNTRlOTMzZTEgbGVnYWN5LXRydW5rCis2NDQwNSBiMzRiYzYzOGI4YTdjNzhiMTkwZTNkOWY4NmE1NjkzODA3MjMxMGNjIHB5M2sKKzY0NDA2IGJlMDdmMzc5ZDg3YWRmMGRkNjRlNjhjNmU2OWY3ZDA3YzVjOTZkZmUgbGVnYWN5LXRydW5rCis2NDQwNyBhNGJlNGIxNzQ3NzExZGUxNGUxYjljYTU0N2ViZGIzY2Q2YmUxODRmIGxlZ2FjeS10cnVuaworNjQ0MDggZTEwNzA2MmFhOWNkNzc4Njg3ZjdhYTM5NWM4MWY1YjMyYWU1ODljMyBsZWdhY3ktdHJ1bmsKKzY0NDA5IDlhZjBkNjViYzNiMjc4NDYwNjAzM2UwZmY3NWVlMmI1NjM2NGNhZTIgbGVnYWN5LXRydW5rCis2NDQxMSAyN2M3OGNiZmE3YzY4MWI4YTM3YjIyMzEwZDUyMThjZWQ5ZTM1N2JkIHB5M2sKKzY0NDEyIDBhZWViMmI0ODM0MWM3NzI4NGRkMGUyYzU4ZTUxZTQxYTFiOTc4MzMgbGVnYWN5LXRydW5rCis2NDQxMyBkYjYyYzQ0OGEzNDllMmYxNWM0YzJjY2VlODk2OTFhZjI2Nzg1OWRhIGxlZ2FjeS10cnVuaworNjQ0MTQgY2I4NzFmNzM2YmUwMjRhNzVmNGFlNzkzNWI4YTQ4ZTY0YzZjOTJlOSBweTNrCis2NDQxNSAyYmY0MTEyY2Q2ODE1YzcwM2UzNjU1MjVlOWE4YWI0Mzg5N2M4OTYyIHB5M2sKKzY0NDE2IGI0MThkZDM5Zjc5OGJlZjg0NzFmYzE5YzhjZDAwZGMyNzE1ZmRlM2UgbGVnYWN5LXRydW5rCis2NDQxNyA1OGY0M2FjZTI5NWU1YzM5ODE5N2EzMmQzZjBkMWM3ODlkMTJjOWJjIGxlZ2FjeS10cnVuaworNjQ0MTggNmI0YjI5MmMzYTJkYThkYWJkNzYyMTFjN2E5ZDYxNDFlMWQwNzRmZSBweTNrCis2NDQxOSAyNWQ2YjJkMGVlNDJlZThhN2Y1YTg1YjNjMDNjNTk5MzExMjQ1ZDZmIHRsZWUtYXN0LW9wdGltaXplCis2NDQyMCAwN2RjZjBlYTc4ODBmNDBmOTExOTczNzRmZDk1MmQyNTZiZDc1NDgxIGxlZ2FjeS10cnVuaworNjQ0MjEgYzM5MjYzZTk0YzMzMDc0ZDRiNmZlNWFjNGRlZjRlMDRiNjFkZjEwYyBsZWdhY3ktdHJ1bmsKKzY0NDIyIDdiOTZmYWU0MDBkNjE4OWU5ZTA2NTI1MDY1ZmExYjc1ODllZWY1ZWUgbGVnYWN5LXRydW5rCis2NDQyMyAxYmZkNWU3MTJiOTRjYTE1ZWRiOTQzNjdjMDJhNDM4ZmNkODA4NjBjIHB5M2sKKzY0NDI0IGVkYzcwMWQwMGI2MjI0MTIwMmQ1MjVkZTcxNTg5OTU2NjYyMjFjNzEgbGVnYWN5LXRydW5rCis2NDQyNSA3MTdlOGFlZTRhOWQwN2Q3Y2RhOWY1ODNmM2E3Mzg4Y2VjZjlkY2QyIGxlZ2FjeS10cnVuaworNjQ0MjYgZDFhNDYzNTBiMDQ3NmM0ZmNjMzM5YzA0MzIwNGQyOTg3MzBmNjI0ZSBsZWdhY3ktdHJ1bmsKKzY0NDI3IGJmZGEzOThjOTE3ZTVkYTI1MGE5YzYwOWNjNjg4ZjJkYzg5NmFmYjkgbGVnYWN5LXRydW5rCis2NDQyOCBhNzE4NmZlZTc1OTZiNjYzZjUzNDVjNGE0YjA5NjU2ZTFlNjk3YzRkIGxlZ2FjeS10cnVuaworNjQ0MjkgNjI5ZWVkY2JiMjY1ODUzNTI4NDc5YjQ5MDgyOWMxZmEwOWNjOThjZiBsZWdhY3ktdHJ1bmsKKzY0NDMxIGQ4ZGM2YjM3ZmQ3ODllZjRmOWY4OTU0ODE5Y2JlNzVhZDY1ZjYzYWMgbGVnYWN5LXRydW5rCis2NDQzMiA1ZWJlZmY4MDQyNWM1NDk5YjRjMzJhY2IyOTJlNjVmY2VmOTc1OTZjIHB5M2sKKzY0NDMzIDRlMWNhZGI3ODcxZWVjZTE0MzhhN2U2NmFjMDkxYWMyNzZjNmUxNjQgcHkzaworNjQ0MzQgYTEwN2JjMmQ4ZjM0MjdkOTk3NmI2OTRiMGM1NWI3MDY4M2MyNTFmMyBsZWdhY3ktdHJ1bmsKKzY0NDM1IGIzMjEwMWMxOWJmODQ4NTYzMjBjZGQzODAxMGYzNmI3MzEyZWZiYWUgbGVnYWN5LXRydW5rCis2NDQzNiA0ZmZhOWJiYTdjNWYwMGI4Y2FiN2Q0OGQxYmU5YTI1Y2E5MGRiODRiIGxlZ2FjeS10cnVuaworNjQ0MzcgMjQ1MjBlODI0MTA3MmU3NDAxNzkxYTVkNjU5ZmIyMjZjMDAwNDhkMCBsZWdhY3ktdHJ1bmsKKzY0NDM4IDQyNjdhZGFjZGQ1Mjc4YWQ5N2FjNTg1ZmY2MTRkMWU2MzA5MmY4NzMgbGVnYWN5LXRydW5rCis2NDQzOSBhMDY3ZGMwNDM4ZDUzMmM1NTIzNmYzNGE5MGVjZmU1ZDU2ZmEwMDQ3IGxlZ2FjeS10cnVuaworNjQ0NDAgNzViNmIyNzM3ZWE3MTkzNjhiN2Y2YThhNjhjZWZiM2E3MmNjZjhiNyBsZWdhY3ktdHJ1bmsKKzY0NDQxIGFjNmVhYjI0NzNjNWI2ZjFlMzAyMmY0NDJjM2FjYzc0NjY1OTkzOTMgbGVnYWN5LXRydW5rCis2NDQ0MiAxNmI3YzUwMGI3NTNhM2M5NmU2MDQ4ZDMzNjNlODk0MDBiNDg2ZDI1IGxlZ2FjeS10cnVuaworNjQ0NDMgOWM2N2QzZGNlOTI1ZDk0ZmY1OTU3YzMzNjBmMDU3OTcwNjk1MGNkNCBsZWdhY3ktdHJ1bmsKKzY0NDQ0IGFlYWQwYzc4MWNiZWY2MTI2YTExZjk1MGVkMTIyOTE5YzBkNmZmM2MgcHkzaworNjQ0NDUgNTU2ZTRmNmVjOWEwOGNhY2VhYjc4ZDQ2NWVhZTE1MzY2NmE2N2NjNSBsZWdhY3ktdHJ1bmsKKzY0NDQ2IDAxNjE2NmI3Yjk3NmUzM2YwYmM2NDBhOGE0NzJkYzMxZmQ0YTY3ZDggbGVnYWN5LXRydW5rCis2NDQ0NyA1ZThhN2Y5ZDk1MjM5MzIxZjgyZTk3MmJjMTZiNjZhNTQ4MjhlODUzIGxlZ2FjeS10cnVuaworNjQ0NDggOTY4MTUyNzE5NjNkNWNhYjJhYzNjMGNiNjc1MDlkYzExNTFmNjE1MiBsZWdhY3ktdHJ1bmsKKzY0NDQ5IGUxN2I4MWE5NWFlZDJlOGE5ODU4MjM1MGYxMzQxNWExMmZhNDhmMmIgcHkzaworNjQ0NTAgNzBlMWEzOGM5ODA1YjZhNmMxN2E0OTJmY2NjZTRlMmY3MmVjZjk0NCBsZWdhY3ktdHJ1bmsKKzY0NDUxIGM1N2QxZTk1NGQ5MzQ1N2MzMTM2ZGFiZjVmMTZkNGMyNGY1YjM4MDggcHkzaworNjQ0NTIgOTZhZGY5NmQ4NjFhNDRkMWIyOWU5MTlhZjgwZmYwNDE5NWEzNzNjNCBsZWdhY3ktdHJ1bmsKKzY0NDUzIDdjZGJlMDFhNDU3NjRiMmUzODQzYjUxODg4M2YyNjIwMGUwNDZiN2EgbGVnYWN5LXRydW5rCis2NDQ1NCBhYzE1OGNhNjg2Y2I1MTlhMzgwMTIyYjkyOWE0Y2FmYTNlMzlhYWU2IHRsZWUtYXN0LW9wdGltaXplCis2NDQ1NSA4YjZjMjg1NmRiZTUxMDM3YzJmZDZlYTM1YzA0M2NhYjhmMTJjNTE1IGxlZ2FjeS10cnVuaworNjQ0NTYgZWI5ZmFlMmZhM2Y5NjY0MmViYmY1YWM3MWNhNWQ3MjZiOTE4YjNiYSBsZWdhY3ktdHJ1bmsKKzY0NDYxIDY1YzIzNjYzZDBiZDY5ODEzMmVjNzlmMDBiNTE0ZjIzNDUxMWU4ODggbGVnYWN5LXRydW5rCis2NDQ2MiBkYTY4OTNlMjAwNGY0Y2E3MDkxZDk5YzQzY2NkNzRkZDY4NTRjZDU4IGxlZ2FjeS10cnVuaworNjQ0NjMgNjhjZjNjYmIyMWQyNThkOGUwMjIxNmQ0Y2NlM2M3YjhkNjlkOGUwZCByZWxlYXNlMjUtbWFpbnQKKzY0NDY0IDdiNTFlYThjYzU1OGRiYjM0YjRjNDAyNzFhZmYyZjAyZTE1ZGI5OWQgbGVnYWN5LXRydW5rCis2NDQ2NiBiMTFiMDljMWVmZWYyYmViMjM1NzgzZjNkNjdjNDUxZTQwZWE2ZDYzIGxlZ2FjeS10cnVuaworNjQ0NjggODhiZDhlYWE1MTUyZWRjNTc5NzI0YzllNTM5MDYzNWZjNWMzMDZhMCBsZWdhY3ktdHJ1bmsKKzY0NDcxIGE5YWQ5OWQwYzcyMjRiZTE4YWRlMjM3ZWE4NGNiMzQ3MzQ1YjljY2EgbGVnYWN5LXRydW5rCis2NDQ3MiBlMGYxZTFjNTY2ZDlkNjc1NDMyYTE2ZjU1MTgzY2MzYzEyMTE0YTdlIHB5M2stdXJsbGliCis2NDQ3MyBmODQ2OTFmNDg5YzM4YzYwODM3YWQwNWYxMDBhODY5OGI0YzQ0YmQ2IHB5M2stdXJsbGliCis2NDQ3NCBkZDkwN2Q2YTdhODVkMTYzYzdlMTIxYzVjZTNkMGZmM2M3ZjNkY2QyIHB5M2stdXJsbGliCis2NDQ3NSBmMDAyN2JmZGY5YmM0NDUyNTZmNDc5NGU3YWNmMjkwOWU3NzUzNWRhIGxlZ2FjeS10cnVuaworNjQ0NzYgMWY2NzFjODVkZjA0N2M1Yjc1MDI2YzM0NjQ3MjIwMTU5MmQ4ZDJmNiBweTNrCis2NDQ3NyAxZGJkN2E1MjJhMjM2OWYzYjUyOTA1NjllNjY2MThhOGI0OGQxZDUxIHB5M2sKKzY0NDc4IDZjMDRkMTQ5OTRkMDg4MDEzYzRiODE2YmM4ZmVjNTQ3ZGE1YTYxYmUgcHkzaworNjQ0NzkgOTY3Njg4NDc5ODgzMGQ4MDE2NzRhZWU1YzljNmI3NGM1NjNlZTVjMSBweTNrCis2NDQ4OSA2ZTA2ZDRhODZlM2QwMzI4ZDhkMjA4NDAwMzg2NWJhNjJhYmJmYjdkIGxlZ2FjeS10cnVuaworNjQ0OTAgYjAxNTY5MzExNGY2Nzk3YWM0YjBmMWIxZTJlMWYzMWM2MzNjOGE5NiBsZWdhY3ktdHJ1bmsKKzY0NDkxIDc1MmUxYWJhZjE1YTU2YjViM2ZhZTg0MWQ3MGE5NTJiZGNiNTBkOWYgbGVnYWN5LXRydW5rCis2NDQ5MiAwOTgxNzNlODQ0ZDE1Mjg1M2M1Mjk2MjdhZjhmYTczNmFkM2ViN2ViIHB5M2sKKzY0NDk1IDVkNWY3Mjg1ZjVjNTliNGY1MTU2NjYyNGJlOTU3OGFjYTY3MWIwZWUgbGVnYWN5LXRydW5rCis2NDQ5NiBjODNlZWYwNzhmZDlmMGVjYTg4ZWU1ODczZTkwNjVjMTQ1OWUxNjY2IGxlZ2FjeS10cnVuaworNjQ0OTcgYjFiZGNiYzk3YTE0YzA5NGFiMDRlODJiMjE2OWYwODZjMjZmMWY3ZSBweTNrCis2NDQ5OCA2OGZkM2FiODQ4NGVlYjdkMGI1ZjM2MzM3Mjc4ZmY2Y2ZlYjRhOGI1IGxlZ2FjeS10cnVuaworNjQ0OTkgMTJiZTQ0YzZhNzAyZThiM2I3Y2FhYzlmNzdmMGM0MTFkOGU4MDQ5MSBsZWdhY3ktdHJ1bmsKKzY0NTAwIDdlNzQ3ZGUyMzFiMzgyNzM3ZjYzMThmM2IyMDUwZDNmNTYxZjBkNjMgcHkzaworNjQ1MDMgMjJmYmRkZjE4ZDQ4OGExMDAxODMyZTc0NzVhOGM1N2U5MmQ1NTVkYiBweTNrCis2NDUwNiAyNzBmZjZmNGQ5OWYzZmQwZGY5MmZmNzIyNzA2OWYyNWUyYjUxNDRiIHRsZWUtYXN0LW9wdGltaXplCis2NDUwNyBkOGFmYTQxYzY5NmFiYmRlYjAzZDJkZGNjNDc3MWVjNmFjYjA5MDdmIHB5M2sKKzY0NTA4IDNiNmZmY2ZlMjk3MWUxZmQzOTllMDJlMWNiZmZhYjZhNDZmMWVlNzcgbGVnYWN5LXRydW5rCis2NDUwOSA5NTc0ZmVkOTM2ODgzNmE1YmZmNzc5MmYyYTdmOTMxZTI2ZjgwYjdjIHB5M2sKKzY0NTExIDBhZjZmMDMwMGVhZmY0NDNkNjg2YjJhNThmN2JiZmU0YjdkZTdiOGMgbGVnYWN5LXRydW5rCis2NDUxNSA3Nzg4ZTk4OTNiODViYjkxYzc3M2M3MWQwYTM1M2E0NWQwZWQxMjlkIHB5M2sKKzY0NTE2IDNhZGE0NmYyMzIxZGMyNDQ2ODBiNDcyZGIwZTBiMGFiMDM4M2JmMWIgbGVnYWN5LXRydW5rCis2NDUxNyAzYzhkM2I5OGNmZDczY2QyMjM0NmJhZWQ3ZjdkNWVhMTJlYTEwMDhmIGxlZ2FjeS10cnVuaworNjQ1MTggMzgwYWEyZDE2MWQzOTI5NzIzODAwOGNlNGRlODFhMDFjMGZiOWZkMyBsZWdhY3ktdHJ1bmsKKzY0NTE5IDBiNTJiZGM0Y2Q4OTM5OTkxYjhhNGFhZTk3NTJhNjMwZjAxOTMxMzQgbGVnYWN5LXRydW5rCis2NDUyMCA2NGFiYjYxZTlkNGY3ZjA0NzNmN2I3ZmE0Yzg4MTM2MzBmYjVjMmZjIGxlZ2FjeS10cnVuaworNjQ1MjEgNTdjODJjYjBmYWZmY2U5YmZkMmNkMWQ4OWJhZmU3MTY5NDM0MmYwYiBweTNrCis2NDUyMiAzN2EyMWQwOTdkMzRkMzUxNDVlNjhjNjVmOTY1N2VjMjBjODJiNWYyIHB5M2sKKzY0NTIzIGU1YTUxZWQ5ZTYzNDI3MGUyNGUzMTEzYTJiM2MzMTY0Y2U2Mzc4YWIgdGxlZS1hc3Qtb3B0aW1pemUKKzY0NTI0IGQxZTg2NGE1YzYwYzhiNGYyZTA3ODg4M2YzODdjZDdlMDU0MzVjMDcgcHkzaworNjQ1MjUgZmZiZDRlMzMzZTJmOWJkMGUzZjA4ODE1YmFhZjYwMTkzYWRkNzUxOCB0bGVlLWFzdC1vcHRpbWl6ZQorNjQ1MjYgN2RlMDM4NTUwNTIzZGMyYjM4OGY2ZDQ1ZDU0MjdmMzcwZGVlNDY1ZCBsZWdhY3ktdHJ1bmsKKzY0NTI3IGJkZTJhYjk0MzU5M2MzYTlhYzE4MzdlNWM0YjkwZGRmMzAyYWVjYjUgbGVnYWN5LXRydW5rCis2NDUzMiBiMjYxMTY0MjViMTE0MzYwMDY1MWU3ZjQ4MzY1MzNiZmU0ZmFmODBlIHRsZWUtYXN0LW9wdGltaXplCis2NDUzMyA3ZWIzNzM3NjU3ZDEyZWZjODBjMDAyZjNhYTk2ZWFiZDI2NmQ2MzU5IGxlZ2FjeS10cnVuaworNjQ1MzUgODgyMWI0MDVlMGU2Y2Y5ZTg2YTQ5YTU2YTA0NTdmZjM1ZGRmNDI5ZSBsZWdhY3ktdHJ1bmsKKzY0NTM2IDA2NGIwYjc1YmFkNTNiNWJhNzM2N2QxYTkyZTVlZjRkNjEyN2I2M2EgcHkzaworNjQ1NDQgOGM5MjljZTBmYjQxYzA4NjUxZTVhYmQzNWU4NTdkODI0OTMwNGE1ZiBsZWdhY3ktdHJ1bmsKKzY0NTQ1IDcyM2MwZmY2OThiN2Y1NmY4MzVlNGU1MWYxMDU0ZTY5MTE3ZWJmMzcgbGVnYWN5LXRydW5rCis2NDU0NiA3ZmJjMzc0Yzk1OWQyZDc3OWY1Y2U2NjRmMzVlZjRmYzA4MDZmN2U1IGxlZ2FjeS10cnVuaworNjQ1NDcgNThkYzM2N2RjMWVhMDBiZDNjYzgzNTNkYzRiMjY1MmIxYzQzOTk5ZCBsZWdhY3ktdHJ1bmsKKzY0NTQ4IGM0Yjc2NmFmYWM2ZjY0NmU4NzFhMTMxNGQ1NDNmNjYxZmRhZDJhM2YgcHkzaworNjQ1NDkgZGM0MmVmZDcyOGVlYjgyMmQ1NjM0MmUzNjMzYmU4YzdjNTMyNjFhYyBsZWdhY3ktdHJ1bmsKKzY0NTUwIGVkZDQ4YjA4NDk0ZGE4OTZjYmZlNThkZDMwYmFiYzg0YjUzNjYxMzAgbGVnYWN5LXRydW5rCis2NDU1MSBiZmFmMTQyOTU3OTQ5ZTA0M2JkOGNmZTZjN2NkZDhlOWZkZmZkY2Y1IHB5M2sKKzY0NTUyIDYwNWFiNmY5MjgzODhhZjVmMWRmYWE5MjJjODk1YTQ5ZmQwNzkxOTEgcHkzaworNjQ1NTMgYzcxMmJjZDMyMDNiNGNlOTgwNGNhZWZhMDE3OGM4ZjY3ZTBiMGM4MyBweTNrCis2NDU1NCBjNTYwNzJlYWFjYzI2MThhMTMzOWQ4Y2EyNzgwMGQ5MzMxNGNjODQzIGxlZ2FjeS10cnVuaworNjQ1NTUgYTY5YmQzYWI5Zjk5N2NkYmFhMTk2MzU3Y2I1ZjI3MTE2YzVkMzI0NiBsZWdhY3ktdHJ1bmsKKzY0NTU2IDcyNDM0MDEzYjAzMGZkYzhkMDVhMGUyNWZhODJkNTFjYzBlZjI1NWMgcHkzaworNjQ1NTcgNDNmNmJiMGVhY2IyZjQwODNiOTY4YmZkNGI3YjcxODZjMjhhZmEyNSBsZWdhY3ktdHJ1bmsKKzY0NTU4IDViNGM4NzA5OTAzZDA3YTUyNTNlZTExNDYzNDY0NGIzNmZlNDY0NjEgbGVnYWN5LXRydW5rCis2NDU2MSA4ODM5MjAyMTk0MmE2ZGZkY2VlODZhMzE4NjRkODc2ZWFhMjc3N2Y4IGxlZ2FjeS10cnVuaworNjQ1NjIgZWQ1ZGMxM2I4OTliYTJkNmI1NDViZjhhYTE3OTRhODVjMTI4N2JkMyBweTNrCis2NDU2NSAxYzRiZDUwMmRlNjI5YjI5MGRjODcxZDFmYjJiMjEyOTZhNzU5Yjg1IGxlZ2FjeS10cnVuaworNjQ1NjYgNTA4NTlhZTRhZWJiYTRiZDYyYTM2NWM4ZDk5NzZmZjIxMDlmMzBjZiBweTNrCis2NDU2NyA4NDFhZTE3NjdiNGM1NDgzOGJlMDRiZjI1MDdlZjk2OWQ5MGE0NDdmIGxlZ2FjeS10cnVuaworNjQ1NjggMjQ4YjhhZGZjYzk3YTM4ZjVmMzgzZTBhMGI4YmE5ZTE1ZTM4ZjkxMSBsZWdhY3ktdHJ1bmsKKzY0NTY5IDkwM2I2ZTJhMzA0ZmIwYjMwN2NjZTRjOWE1ZmRmNzNkZjY5ODY0ZjYgcHkzaworNjQ1NzAgYjg1NzcwNDU5NTkxYjg4YjY4MmIwMjYyMmY3MGMzZjM5NTVhM2MwNSBsZWdhY3ktdHJ1bmsKKzY0NTcxIDJjOGUzY2NlYWM0ZWI0ZTA0MDFlNGE4NWQxYThhZmJhNjMyZGJhMzggcHkzaworNjQ1NzIgYWZjZDY4YTg3ZWVjYWQyMTEwZTFmODk4NThkZjU3OTk2MTdiNGUwNSBsZWdhY3ktdHJ1bmsKKzY0NTczIGJkYmI2NmJjMzdkY2UxYjNmY2FjY2UyOWQ2NzdhNTg0YTEwMmI0MmUgcHkzaworNjQ1NzYgYWZiZDUwYWQ0ZjM0ODQwNWQ2YmQzNWI5ODI3ZDUzMzcyZGNhYzkxNSBweTNrCis2NDU3NyAxZGQxMGIwNGRiNDc0MWI5ZmM5M2Q0MjI4NTliMjBmNDc3N2RmZDM4IGxlZ2FjeS10cnVuaworNjQ1NzggOGEyODFiZmMwNThkN2YwZDFlYThmNTJkOWI2Y2QxMmYyYzU1ZTZlOCBsZWdhY3ktdHJ1bmsKKzY0NTgwIDBmYzc4NjFlY2U1ZjZjZjBlNjIzYWI3NTY3ZjhmYWU3M2FhNTdkODMgbGVnYWN5LXRydW5rCis2NDU4MSA1NWFjNmM3Y2ViNTk4M2MyNWYxZmE5NmQ2ZjVjMjQ1OWY2MjZmYWUxIHB5M2sKKzY0NTgyIDNjNDlhZjJkNWJmMGFmZTY1ZDBhODExMDQzZjE3ZWU1M2YzZTY2NmMgbGVnYWN5LXRydW5rCis2NDU4MyBhZDliZWI0MWFhYzEwNTAwZjc2NTk1NzUyZDE2MWUxYmNkMGQ3MWQxIGxlZ2FjeS10cnVuaworNjQ1ODQgZTE3YWRmYWY0ZjY0YzljNGE0MTdhYjA3YTY5ZWNiMDg1OTRhNmI1NCBweTNrCis2NDU4NSBkOTRmYTRjYjUyZTczNDlhOWQwOTBjMzcyYjE3MjkwYWYyZDFkY2QyIGxlZ2FjeS10cnVuaworNjQ1ODYgZWY5MjcwMzc0ODQ0NGNjZTkxOGUxYzIzNjM3MTZmMWQ5ZjlkYzRiYSBweTNrCis2NDU4NyBmNWY3MGYyMGI2NzhmOTY2ZjY2YTQxYmZmZDdjMDA5ZTU0MjE3NzA2IHB5M2sKKzY0NTg4IDRkMmQwYTIxZDQ5NDhkYTljMmM3YjFjZjI3ZmI0ZDQ3ZjRkNDVhNjMgcHkzaworNjQ1OTAgYmU1NWI3YzJjOGU2OTI1Y2JiZTY4ZjU4YzE1ZTBlNzk0NjU2ZmNmMCBsZWdhY3ktdHJ1bmsKKzY0NTkyIDczY2JjZGU3NWUwNThjMzg3NDZlYWNlZmZlNDA5MmQ5MDQ0NTlhNmYgbGVnYWN5LXRydW5rCis2NDU5MyAyOTdlMTIxOGVmZTUwOWY5MzdiZjgxODY4MTc5NDNkZDYzMTE2ZTBmIGxlZ2FjeS10cnVuaworNjQ1OTUgZTE0NzM5YzU4NDAxMzY5MzQ3NWI2MTg0MzNhMmYzODhiM2I5YTk4MCBsZWdhY3ktdHJ1bmsKKzY0NTk2IDI1NDEyYzZkMjc3NjM1NjU4MGY4MjcwMTY1NzhlNjdmOGYyMmViNDUgcHkzaworNjQ1OTcgODJjNDY4MWNkOWJkMDdhM2FkN2VkNWMxZTYxZWQ0M2FhMzJkNjg2NyBsZWdhY3ktdHJ1bmsKKzY0NTk4IDc2MDQ1MTVhODE5ODVhYjcwNzI3YzNlNGFmY2JlNzVjZjA4YzhiODUgbGVnYWN5LXRydW5rCis2NDU5OSBhOTAwYmIxZGVkOWQ5YjZlN2U5NmZlZDVhOTA1NWFjOWIzYWFiOGFjIHB5M2sKKzY0NjAwIGI5ZDJmZjVlM2RjZmMwYWU5ZWFkZTk1NTE2NzYwNTFjNGZkMGZjNzAgcHkzaworNjQ2MDEgOGNjYjM1NzM5YTk2ZjIwYjJhZDc2NjBiY2QyZWUwMzk3ODIzNmNhZSBsZWdhY3ktdHJ1bmsKKzY0NjAyIGUyOWI0Y2U2NDFmOTQzMTk1Zjg1MWE4MTRiMWI0YzZiYzZmZGFiNTIgcHkzaworNjQ2MDQgZmQ3OWM0ZDk3NzQ1YWQxZWNkZmI3OThlMjViODJhMDRiYzRlMjllOCBweTNrLXVybGxpYgorNjQ2MDUgOGNmYjg5YjYxYzJlNTFiNzkyYjFlYmYzOWZmNjBkMjk3NmUyODJlOSBweTNrLXVybGxpYgorNjQ2MDYgYjZhZDY2NGNhZTQ5OTg4MjcyZGI4ZmQzYTJhOTc0ZTQ2MmI1OTdmMSBweTNrLXVybGxpYgorNjQ2MDcgN2IyZjIxODk1MzkyM2M5MGU0MTFlOWIzNjY2NjEzNjFkNzJjY2MwNCBweTNrLXVybGxpYgorNjQ2MDggNzM5Y2M5ZmRlZmU1ZDRhZWI2NDE3MDhiNWU5MDY4NWRkYmFmOTBkMSBweTNrLXVybGxpYgorNjQ2MDkgYWQ5ZmI5ZjFkNmQzYmRiYWY1MzE3MDQ0NTFkNmVlY2FhYmEyZWZkNyBweTNrLXVybGxpYgorNjQ2MTAgNDE2YTU2ZWIyNGYzM2FhZGJmY2MzOGMyMWZiMTk3ZjQ4YTM1NDIyNCBweTNrLXVybGxpYgorNjQ2MTEgNDQ2ZTNkYWMwYzMxYmQ0OWZiMzY2Nzk4MTg3N2U2OTM2YzYzY2VmMyB0bGVlLWFzdC1vcHRpbWl6ZQorNjQ2MTIgMzdjN2QxNzc0MGNjYTY4OTQyNjM1NzMxN2RjZWFmZDgzZDAxZjcwOSB0bGVlLWFzdC1vcHRpbWl6ZQorNjQ2MTUgZTI3MTk3NmFjMzcyNGVhMGIxNDMzNzg2N2UyZWY4ZGE3OTNmMTNiZCBweTNrCis2NDYxNiA1Zjc0NjhhYzE0Y2Q4N2E1YTIxMjMyYzU5YzljMTE3ZWQ0MGVkMTYyIHB5M2sKKzY0NjE3IDkxM2FhMjc0ZWQ3N2I1N2QxYzMxZmIwOTdlMWU0NGY3M2NjOGQ1ZWUgcHkzaworNjQ2MTggYWNkZmZiNWI0MzUyMjExM2RmZGI1ZGQwNWJjOGZiZDk2ZDNjOWVmNCBweTNrCis2NDYxOSBlZWQ1MzE3YWM4MzdlMjYzZDMwZWE5MDA0OGYzZmJiZWM3YzRlYTc4IHB5M2sKKzY0NjIwIGY5MmM4MDA5NWMxNGM5ZDkxYjQ1YzVkZGVhNTEzNDllNTE0MTk1MTkgcHkzaworNjQ2MjEgYmI2NWY5Yjc2YzFmYTUxYTAyZGM1ODNkZDA1MTdmNTM4ZjdlMWQ5ZiBweTNrCis2NDYyMiA4MDEwOWQ0MDQ0Y2RhNGZlOTFlNGM0YTY3YjQ5MDFkZDE0OTRhZTdmIGxlZ2FjeS10cnVuaworNjQ2MjMgZTEwZTI1N2NiZjYxNWViYjY3MTBlZGJiNjBiNjQ4ZWJhZTMyZTA0NiBsZWdhY3ktdHJ1bmsKKzY0NjI0IDdkMTUzMGZhYzFmNjY4NDE3NjkyY2M5NDQ3MTJkNzE4NmM2M2E3MmQgcHkzaworNjQ2MjUgZTY4ZmU5MGYxNWFiMDBlMDMyMTg2Zjg1OTBlZDBjZTRlYmJiZGQ5ZCBsZWdhY3ktdHJ1bmsKKzY0NjI2IDQyMzA5NDM3ZjFjYTI1YzAxNjEzODc0OThkMmIzNjEyZjI0MWMwZGIgcHkzaworNjQ2MjcgN2UyOTlhYjM1ZDk1ZTE5OTg5OTk3OTBkYzZkMzlkOGViYjRhMjJmYSBweTNrCis2NDYzMCBjYTEzNTNiZmQ0OGEzMjMyMzAxZGVkODE3OWQwZjU0NGNhYTIwYTMxIGxlZ2FjeS10cnVuaworNjQ2MzEgNzAzNTc4MTE3Nzg2MjdjMWEyMDE1MTUzMzAzZDZhNmViZWYwNzNkYiBweTNrCis2NDYzMiBkNjY0MDQ5ZWNhY2FkOGJlMTk4OTk4MmI1MGUxYzRmOTkxYzhhMzIyIHB5M2sKKzY0NjMzIDdkYmQ2YjYwNzcwNmEzNjNiYWE2ZDhmMTA4NzhhYmU1ZTQ2ZTY1MTkgbGVnYWN5LXRydW5rCis2NDYzNCA3MGE0ZWM0MTI4ODIyYWNjYjQ3NTRkNTc1MGVmZjcyNDU3ODE1YzdlIHB5M2sKKzY0NjM1IGNkYTU1NmQyMzkyNDQ3Yjk5MDQwMTY5OGFmYzhhYTVlZDEzNjk2ZGEgbGVnYWN5LXRydW5rCis2NDYzNiAyZDQ4NzdmNzUwMGVmYWMzODEyM2Q0ZjhiYzRjYTI1MzUzYjkxODM1IHB5M2sKKzY0NjM3IDZjMzg2MDkxNDI5MmM2YmU4MzA2YWVjNjM2NmNkYzA1MmIyZDM3ODYgcHkzaworNjQ2MzggYTA2YTBlMTEzMmVlMDJmYmFkMTFmODI0Yzc3MjUyYWRkOWZkYTk4MiBsZWdhY3ktdHJ1bmsKKzY0NjM5IDYwZmQwODg2ODExYzc1ZDU5NjA3MGU2NjgyZDJkOGVhNTdjOTlhOTcgcmVsZWFzZTI1LW1haW50Cis2NDY0MCA0YTgzMjk1MzUyMzRkNzViNWQ3NmM0ZGI4NzgyMDExMGYzYWM2NmQwIGxlZ2FjeS10cnVuaworNjQ2NDEgZThiZWUzMDk3ZDQ0MGU1M2JiZjNmNWU4OTYwNTg1ZWVkNWE0YjY0MyByZWxlYXNlMjUtbWFpbnQKKzY0NjQ3IDZjZDNjYmUwNzAzNWU5NGZkYmE4ODNkZGE0N2FmOTNkMDVhZGYyOWIgbGVnYWN5LXRydW5rCis2NDY0OSA4MDE3NTQyMDFiMTE0MTI4NjJiMzU5YjBlMzliODIyYWI2OTkyZmIwIGxlZ2FjeS10cnVuaworNjQ2NTAgMmQwMzZiNzhkZmE0MGJkNjEyNWQyZDYxZjhlMDYxYzQ0YjQ5MWU4YyBweTNrCis2NDY1NCBiN2YzZDk3MGU0NGYwMzE3MGYzNDZjYzhhZGI4ODY0NWJiYzcyZmYwIHRsZWUtYXN0LW9wdGltaXplCis2NDY1NSA2NWFmNTQ0ZGExMjFkNDg1MTUxOTRkMmVkODE2OWE0MTYwYzk1NzM1IGxlZ2FjeS10cnVuaworNjQ2NTYgNWQ4ZjQ3MDA1YjczZWIwYzg1OTcwZDZhZDBiMmFjMTlmODZhMDM5YyBsZWdhY3ktdHJ1bmsKKzY0NjU4IGY5MjcyNDBkZWYxYjczYzdlZDE5ZGI4YjkwMDJmMjU2ZTEzODNmZTEgcHkzaworNjQ2NTkgYjM5Y2VlYzgxYzE3NGY4MWRkZTEyZDljODgxOTBlNjExZmE2N2Q5ZCBweTNrCis2NDY2MCBlMjJkZWFlYjZjMWIwMmYyMTdiNzQ0Mjk4OTgxMWRhZjhlYWNjMjMyIHB5M2sKKzY0NjYxIGFkZjQ4ZjJmYWRmY2JiZTk1NzRiYjMwNmVlZTY5MjAwNTlkMmE0NGIgcHkzaworNjQ2NjIgZGFmOWZhZDdjNTUxOTEzNmUyMjg5Y2E4OWEzNzFhYTQ4MGFmYWU3NiBweTNrCis2NDY2MyA4MzJhZTUxM2QzNDQ0NTAxNjZhN2Y2MDVjZTQ1NzJiZjJmY2IzNzZiIGxlZ2FjeS10cnVuaworNjQ2NjQgZTRiYmIxZDNkZDE0NWM4Yzg2Y2ZhYzA2NTE2YTU2ZTI0ZDA4ZDU0MSBsZWdhY3ktdHJ1bmsKKzY0NjY1IDMwOTU0MmZkN2ZlOGQzMzgwNjc1YmYzY2YxNGE3YzExMzM2ZDFmNjcgbGVnYWN5LXRydW5rCis2NDY2NiA4MWZkOGE4YmFhOWE3MzNjYjUxOWNhMmU4MTFkOWE1OGViNDUzNzUwIHB5M2sKKzY0NjcwIDE4OTliZTMxMjJjMjIwZWM5ZmQ3YmM5OTgxODg3NjdiZDNlMGUyOTggcHkzaworNjQ2NzEgNWY0YTg5ODBjMWFjYmY2OTk3YzBkN2Y2MzhmZmE0MGQ4NWM2MjUyNiBweTNrCis2NDY3MiA3ZTU2MDE2YTY1NjU5ZTBkMmZlMGEwYTA2ODk5Yzk3YzI1MjE3ODM5IHB5M2sKKzY0NjczIDcwZTFkMmJiYmMzMmZhZDE1OGQ5YjMyYTQyMDEzNGJiMjU3ZGMxMTIgbGVnYWN5LXRydW5rCis2NDY3NCA0MDI1ZjYzODkxMWZhMTk2MWUxMTNkYjlkMDg4MTdmMTkxMDNkNmI2IHB5M2sKKzY0Njc2IGJkMjMzNDEyMGEzMGU3YzQ3MWI0NzU0M2YxNzY5YjRiZWY0ZjJmNmMgcHkzaworNjQ2NzcgNjkwMWQ1ZmYwZjdhYjZhOTMwMGRjNTVlZmM2NTcxYWNkZjEwMDEzZiBsZWdhY3ktdHJ1bmsKKzY0Njc4IGZiMDJmZWRmZTY0N2YyYzg4MmYzNDRhNjc3ZWI3MzU2Yzc1MjlkM2EgcHkzaworNjQ2NzkgMWY4YmUyNmQwOThhY2E2YmVlNmJkMWIzN2EwZWRmYTk4ZjY4ZjlhZSBweTNrCis2NDY4MCA5ODg2MGNmYTE5ZmQzOGJjZmJjODAyZGRhNDI4YjI4NmI1NzZiMTRmIHJlbGVhc2UyNS1tYWludAorNjQ2ODEgYWExZmJlMzIxYWNmMWYwYTJmNGU0NDBmOWU0OTk0ZWUwNzk1MTA4YyBweTNrCis2NDY4MiAzNTBhMjg5YjBlZDQ1YzQ0ZTQ3ZThmYjllOWE0MTQ4MWMwYjkyOTY1IHB5M2sKKzY0NjgzIGVmOGQ3NDg3YTA3NzczYzNmODMyNDM1NTViNTEzMTVjZGQ3ZmJiYzYgcHkzaworNjQ2ODQgYTU3MjNhODM2N2U3NmExODk2NjM0OWQ1Yzk4ZDMyMGE1NGEwZGEyOCBweTNrCis2NDY4NSA0MjI0ZmY3N2ExZGRjZmVmMjUwZTE5ZjZhOGI4YTEyNGZhZTI3Njk3IGxlZ2FjeS10cnVuaworNjQ2ODYgODkzZDkwYjc3MzFiZDAxNWYwNjFjYzg3ODMzYWZmMmU5Zjc4MDY0MyBweTNrCis2NDY4NyA3ZDFlNjE0OTJjN2RmZDc4YjIxZDQxMTk2MzI1ZjFlMTkyZjQ1NjMwIGxlZ2FjeS10cnVuaworNjQ2ODggYWNmYWQ4NjQwZTIxZmY5YmNlNGZlYjNlMzVmNGRkZWUyYWIzODFjMiBsZWdhY3ktdHJ1bmsKKzY0Njg5IGU1MDIwNDY2NjhiMTAwYzhmNjk2Zjk1YTA1MDJmNDY3Mjc4ODk3OTkgbGVnYWN5LXRydW5rCis2NDY5MCA4MDdkNjk5NWJhZmQzZWVkMjY3NGQ5ZWEwMDg2OTJkMzMzNTIzYjk4IGxlZ2FjeS10cnVuaworNjQ2OTEgY2RhYWM3OWE3MjM3NjhkOTI4MzAxMzQ2M2ZiNzQ0NzY3OWQyODdjZiBweTNrCis2NDY5MiAyZDBjMzY0MzIyM2Y2OTI2ODUwODYzMjIzN2EyNzczMjQ2MDhmNGZiIHB5M2sKKzY0Njk2IDQwZWNiOTEzMzk5ZTY3MzEzNGI2Njc0Y2RmYjEyZjkyM2M0MGI4ZWEgcHkzaworNjQ3MDAgYjFiM2FmODJhZGQ2ZmFkM2IyNDMzODA2YjU5N2YwMDYxNjJiYWY2ZiBweTNrCis2NDcwMSA0ZTY4NTljNmQzOGM4YTJjYWE5MzZhNzJkZTFiMjIzODA2ZDVmMzIxIHB5M2sKKzY0NzAyIDEzYzk4NTJkZTgxYTNkMDFhMjhmOTJmNjIyM2VmYzhlMDlhOWUyNjkgbGVnYWN5LXRydW5rCis2NDcwOSBlYTdjYzE4YzlhYzg2ZjIzMmNjYmZhNWE5MWQyOGEwNDhhYzgyMjdhIHB5M2sKKzY0NzE2IGRjOWIzZjI4OTJiOGIwYzQ5ZTMyYjQ2ODhiZWQ4YjJjNWM1OGVhMDIgcHkzaworNjQ3MTcgMDQ4MTc3OTNiOTYyNWIyNDYwOGRhYTE3YWIzMmU5MTNhOTE3ZTczYSBweTNrCis2NDcxOCBmMjcyMDYxMDFmZjk0M2MyYTAyZWI0Yjg1M2E0NGQ2N2RiYTIyZmQ1IHB5M2sKKzY0NzE5IGM5MzU5NmVjMWQzZGU2NjVkMzYxMGMyY2JhM2QxODRlZDUzYzk1ZGQgbGVnYWN5LXRydW5rCis2NDcyMSA2ZjEzMmEyNmIyMmY3N2NlNDRmZjEyODZhZmY1MmQzNWFkNmNkZTg2IGxlZ2FjeS10cnVuaworNjQ3MjIgZDc1MjY2NzBmZjBhZGVlZGU4MmQ4ZDMyZjMyN2YwZjgxZjNhMjgzYSBsZWdhY3ktdHJ1bmsKKzY0NzI3IDNiMDBlOWY5ZDY5MjU5ZjJjNTMyZjVkYWM5MTFjMTJiY2IzOGExMzYgdGxlZS1hc3Qtb3B0aW1pemUKKzY0NzI4IDhmMTM0NjUwMjIzNDVkZGIzMGZjMTY1NDk5ZjY3ZmY1ZWJmODAxODMgcHkzaworNjQ3MjkgNGJmODQwMzVjYjVmNTg0MWViNzA5NzhlNmIwNWI0M2YxMTg4ZjJmMCBsZWdhY3ktdHJ1bmsKKzY0NzM1IGY3NzI0NzZhZDkwZGY4ZTkyNzY0MDRjOWUwNjdiNzlhMzkzNTE2YmYgbGVnYWN5LXRydW5rCis2NDczNiAyMjc5ZGQ0YTJmNzMyYjc1Mzg3ODlkZWU0MjQ3YzE0Zjc4OTNmZGQ5IGxlZ2FjeS10cnVuaworNjQ3MzcgNDcyMWYyN2VkNmMyN2U4NzUzZDNhYWM2MDg5M2EwM2E0OTA5ZmQxNCBsZWdhY3ktdHJ1bmsKKzY0NzM4IGZiMjc5MjQyZjk3MTAyZDBkYTc2NTIwMDMzYTZiZGE3OWJhMWEyYWMgcHkzaworNjQ3NDIgNDgwMGRkMjJmNDU1ODM4ZjJkMjBiNWU2MGQ1NGRhN2I3ZTdmMTFiZSBsZWdhY3ktdHJ1bmsKKzY0NzQ0IGQ2NjU3OWY5MjVjNDZmODViOGIxZThkYTQxY2ViNGEzNTYxMzBiNjMgbGVnYWN5LXRydW5rCis2NDc0NSAyNDc2MzczZjU1NGQxNTM5MWY4YmIyYmE0ODNkODBmYTIzZDcxYTY3IGxlZ2FjeS10cnVuaworNjQ3NDYgNDViNjcyMzY3YjFmN2Q1MjJjM2NkZjA1ZjUwYTFmNzliNDhhZDM5YSBsZWdhY3ktdHJ1bmsKKzY0NzQ3IDRiYTNkMDdiODcxZjg3MzQzNzQ5M2JhNmUzNGFlODI5YWNhYWI2NTEgcHkzaworNjQ3NDggNGE3MmJlMWQ1YzIxODExYzg1M2Y4ZjBmOTBkNGFmZWQxN2EyM2Y5ZCBweTNrCis2NDc0OSA2YWU3MWY1MjJiMmYwYWJmZTZkMDA5NTJkNmVkMTVmYWZlZTI4YTNkIHB5M2sKKzY0NzUxIGZhMzQwODgzODBmOWJmMzA5Y2Q4MTA3MjY1YmQ2MjBhZGE0ODBjMWQgcHkzaworNjQ3NTIgYTA4ODJiZmFmNTRkOGQ3ZGEyZjliZTMwMTI5ZWEwMWY3NjQyOTk5ZCBweTNrCis2NDc1MyAwNzM4MTE5YzFlZjhmZDk1YTg4MTMyMmY5YzVhZWE1NmUyYjgwOWNkIGxlZ2FjeS10cnVuaworNjQ3NTQgYTMxMmUwM2EwNjMzMjUxZDFmZTNkMjVkN2E4NmY2ZGE2ODcxYTNkNyByZWxlYXNlMjUtbWFpbnQKKzY0NzU2IGMzMTkzYjcxNTZiYjY2NTA0MTM0ZjIxYTBmZjk2ZmYxZDFhODYzMzAgbGVnYWN5LXRydW5rCis2NDc1NyBjM2JjMDUyMzcyNzJlZGVlMDIxODYyY2M3NzRiY2U0NmMxODBkMGE5IGxlZ2FjeS10cnVuaworNjQ3NTggMmI5ZTEzMGUyMWJjNTQ2Mjk3ODhiOTc1YzhjZWFjMjMyZDk0NzdlYyBsZWdhY3ktdHJ1bmsKKzY0NzU5IDZjOWFmMTRkN2I4MTM0NzZlMjE5ODJiOTU2YzA1ZDIxOTE3Yzk3YmYgbGVnYWN5LXRydW5rCis2NDc2MCA3MWQzMWFiNzM1MDczMWZhY2I0ZmM3MDg4MzZjNmU1NjU4ZTkzYjhkIGxlZ2FjeS10cnVuaworNjQ3NjEgM2FlOTI5YzBlZTdhMjg1ZWJiZTU2Yjk3ZDQ0ZmIzMDhmOWJhZTJmZiBsZWdhY3ktdHJ1bmsKKzY0NzYyIDBjNjJhMjc5ZTRkYWZkMjBhMjJlNTIxNGFjMTFmNjZjMjBmYjdjOTggbGVnYWN5LXRydW5rCis2NDc2MyAzOTQ3YmZkZGE3NmQyN2NlMjJhY2JmNWZmNDg3M2FiNGU5N2YxY2QwIHB5M2sKKzY0NzY0IDY0MGFmNTQ0YTg2MWY3MDRhMzYzYWFhMzNlMTI2ODgxNzM2MzQzZGMgcHkzaworNjQ3NjUgMjIzMWE1Y2VlM2Y1NmVjODMxMDA4NzM4YTI5MmVmZjJjNDU5MDhiMyBweTNrCis2NDc2NiA0NjE0YWMzMTJjY2VlOTgwMjZjMmEwMjdiZWZlMTJmNjA5MDRmNDAxIHB5M2sKKzY0NzY3IDMwZmJmOGU0NTU0OWQwMjk2OTQwMTY4NzA3MzNlZTllYzU2ZGQwYzQgbGVnYWN5LXRydW5rCis2NDc2OCBkN2ZkMzJjZTA3YWE2MmFmNWVmZTk3NjkwYmU0NjQ4ODdhNGJjYmE2IGxlZ2FjeS10cnVuaworNjQ3NjkgYTI0NGQ2YjE0NTAxOGU4MGRkYTYzMmY4NzY0MzcwZjVkMWUzZGVmOCBsZWdhY3ktdHJ1bmsKKzY0NzcwIDViMmYwM2JlYmUzYmFmNmJiNThjMTliMjdlNjZkNWEyZjZjNWM1OWEgcHkzaworNjQ3NzEgMDhjNWM4YzExNGIyOWE4ZTgyOTAzYmMxZjczZTY0MTk3NmM2Yzg3NCBsZWdhY3ktdHJ1bmsKKzY0NzcyIDI2Nzk5ODYxZDMxOGNlMDdhNDYzYjdhOTRhYjk2ZDRkMDk1ZDdhZjggbGVnYWN5LXRydW5rCis2NDc3NCA2NWY2OWNiYWY0ZjBkNWIzYjZmODBhYTY5YWY3YzY4YjYwYTU4NmE0IGxlZ2FjeS10cnVuaworNjQ3NzUgYmM5NDNiYmZkYjFlY2IzMzNlZThiYWNiYTJjZTQ0ODM4YjlhZjg5OSBsZWdhY3ktdHJ1bmsKKzY0NzgxIDgzZjRiNzc3ZDk0YzVlMzUyM2U5YmQ2YjUwMzVjOWZjOWYxY2U2MGYgcHkzaworNjQ3ODggZjhiNzQzNjMyNTkzYWE0MTM3YTNkYzBhMGZhZTFjZjZhMDk4YzAyNCBsZWdhY3ktdHJ1bmsKKzY0NzkxIDFiYzU0Mzk0NGRhYTI4ZGQwZGFjZGRkOWEwNmJlZmM0MjcxN2ZiMDEgbGVnYWN5LXRydW5rCis2NDc5MiA0YzAxZDc4ZWM1OWZmZjRmMDFlNjEzNTU2MDVkZDRkMjE4MDcwODRhIHB5M2sKKzY0NzkzIDM2MTg4NTQ0YzU2MTAyNmY2ZjgzZDZlZmFmZDliODRhZjY3ZThiZjYgbGVnYWN5LXRydW5rCis2NDgzNSBiZWQzZGZkOTkyODFlNDFlNzU4YzE0N2M3MDM4MzQ1OTc2NGQ5ZmVjIGxlZ2FjeS10cnVuaworNjQ4MzYgYzMyZTkxNjUwYzE0NGI5MjdkYmMyMjI1Nzk3YjMxOTFiYmFiZTAzMyBsZWdhY3ktdHJ1bmsKKzY0ODQyIDY4Yzc5NjRkMjUzNDdkMjdkMWJhYWM4ZDk3OGQwNzEzY2EyOTYyYjkgbGVnYWN5LXRydW5rCis2NDg0NSA4ZTczODNjYmU1NmU0OWE3ZWRkMjUyNzgyNGZjNmQ0YzE2NTc2MDExIGxlZ2FjeS10cnVuaworNjQ4NDYgYmQ0MzVlOGIyZTI4MDA2ZGVlYzY0MDA3YzI0N2U1YTQ4NzRiOWU1NiBsZWdhY3ktdHJ1bmsKKzY0ODQ5IDA1ZmVkOWJmNDg5ZDc4M2UxYzQ2NjY0ZjNmMWI3OTkwNTEzZmM2YjIgbGVnYWN5LXRydW5rCis2NDg1MyA3Y2ZjMjhhYzA3MTUyMDFjOTM2ZDdhODQyOThlOWE1ZTI2NGE4ZTIzIGxlZ2FjeS10cnVuaworNjQ4NTQgMTI3NDIxMWEzODhmOWFkMWY4NjY2ODhkOTA3ODUzM2I1ZWYwMmU5MiBsZWdhY3ktdHJ1bmsKKzY0ODU1IDMyOGYzM2JhZmZhMzgyN2Q2ODE5MzQ3NmY3ZGJiNGIwMjQ5ZjA5OWMgbGVnYWN5LXRydW5rCis2NDg1NiBmZDA1NGU3M2UyZjIzOWUzMzVmNTRmZGY0NmZiNDQzN2Y5MmUwMTI0IGxlZ2FjeS10cnVuaworNjQ4NTggMWQ0NGUwMDRjOTFmOGEyZTk4NTVhN2I4MTVjYjVhYzU0ZGUzZGEwOCBsZWdhY3ktdHJ1bmsKKzY0ODU5IDc2MzI1YzE5YWY4NDA4NGQzZjQwOGM4ZDBlYjdmYjNhMjY1ZTVhZGYgbGVnYWN5LXRydW5rCis2NDg2MCAxY2Q0ZDYyNDQ0YjYxNDE0MTcyNTNmMmJlYmVlZjY0NjYzZTllODljIHB5M2sKKzY0ODYxIGUxNjM4NGUzZWUyMmE2NjQ2NmVmYjQ5OThkZjZlMTM2YWM4ZGRlNzIgbGVnYWN5LXRydW5rCis2NDg2MiA1NDVlNDQyMzZmMjg2ZDU2ZGIyYjllN2NiZDE1M2ZjYjM3ODRjNmI1IHB5M2sKKzY0ODY1IGMwM2IyMjNjMmI2OTBiNWI1MjAwOGU2YTY3Y2Y2ZmUwZGFkYTFjYTEgbGVnYWN5LXRydW5rCis2NDg2NiAzODFhZTJhZDgxMGI3NjMyN2UzZDkyZjkzMmMzZmE4Yzk1NzViYjAwIGxlZ2FjeS10cnVuaworNjQ4NjcgNTNiNTFjMjEzYjNkYjAxOGM3NzEwNzdmYWUzYjdmMTk2YjY5YzgyMyBweTNrCis2NDg3MSBlMjg2YmQwZjRlMWJkZjYwMTFlYTRjNDlmODZkNzVlMTcyYTRiZWQ1IGxlZ2FjeS10cnVuaworNjQ4ODAgMTNlNTI1ZDk3NGIxNThiZjZkYWE0MmU4ZTNkOTIzNDdhODFhMzg1NiBsZWdhY3ktdHJ1bmsKKzY0ODgxIDRmODA0ZWU3NzJlYjJmY2JjZmYyZDFkMGRiNWIxYzg5NjE0Y2U1MzMgbGVnYWN5LXRydW5rCis2NDg4MiBmYWVhNmU5ZGE2MzlhZjFkMDFkMmE2YjQyMzIxM2VlYzY2ZTkyYWE5IGxlZ2FjeS10cnVuaworNjQ4ODMgYzY1OWI1MzhmN2JhYzU2YTdhN2M5NTA1ZTllZGQ1YWQwYTdkNDUyMCBweTNrCis2NDg4NCBjZDc3NjNiMDU0NDZmMDM4ODQ0ZGMzM2YzMGRhY2RkYjRlOTY4YTQ3IHB5M2sKKzY0ODg1IDhkYTVkMzhkZGNhM2I4ZGNkMTRiZWEwZTZjNDcwZDdlMmY4NmJmYjAgbGVnYWN5LXRydW5rCis2NDg4NyA5MGI2ZDE5ZjA2YzFkOWZmMjhlZjY4MTI4Y2YwOTY0Y2Q1NGJjZTNkIHRsZWUtYXN0LW9wdGltaXplCis2NDg4OCBhNzQ3Y2QwNjZmMzIxMWY5MGRhMGIwMGZhNDQyYjljNTI2ZTg3NDllIGxlZ2FjeS10cnVuaworNjQ4OTYgYWQzMDkxMjI3ODRjZWZmNTZiYzY2OTRlMjdlMGUwMTE3ODI4MjQ0NyBweTNrCis2NDg5NyAzOGQzYTUwZGVmZWM5N2Y0Njc5ZTc5MWJiNGUyZTcxODgyMTQzNDM4IGxlZ2FjeS10cnVuaworNjQ4OTkgZDZkZmZkYjMwYmRkZDhhZGJlODQ1ZmE2NzBkNWUyZGRkZDYxNGExZiBweTNrCis2NDkwMCBiYzI3Yzg5NjdjYWMxZmFmYWI1YjkwZjgzNTJhZGEyYmRiOTAzMWI4IGxlZ2FjeS10cnVuaworNjQ5MDEgMmM5ZDBhN2UzYmM0ZDNkZDNmZjA0NzkwNWQwYzQ5MWZkNzUyYWM0ZCBsZWdhY3ktdHJ1bmsKKzY0OTAzIGJlYjBmZjVhMmEwZjU4YzU2YmJkOTg5NTY2NDVkNmFiYmNlYjM1MWMgbGVnYWN5LXRydW5rCis2NDkwNCA1ZjI0MzFkZTYzZDBhNTE0OGRkMmYzY2M0NjNjM2Y5MjY3NWU5YjY1IHB5M2sKKzY0OTA1IDJlYTgyOWRkNmI1YTFkZTcxNWRkNzQ0MzMyMmZmNDM3MTAzMTk5YjEgcmVsZWFzZTI1LW1haW50Cis2NDkwNiAxOWNkYWFkNzg4YjkwZjBhMzAxMDNmMjNjMjI4MTZkOGY1MmQzMjM1IHB5M2sKKzY0OTA3IDVlZTMzYjlkZGVjYzY5MzRmODdmNjE5YjJiNjA3NmIzZjQ3ZmUxYjQgdGxlZS1hc3Qtb3B0aW1pemUKKzY0OTA4IGE3MGQ5MDVlNTA0MThiMTE5NDJhMDg4YTYyMDMwNzc4YjA3NDEzZTYgdGxlZS1hc3Qtb3B0aW1pemUKKzY0OTA5IGUyMjk2YjUwMDYzZGYzZTdiOWQ0ZmE3MTM5ODdiMmM2M2VlNTE3OTEgdGxlZS1hc3Qtb3B0aW1pemUKKzY0OTEwIGIzNWM4YjE5NDBhZjUyMTAwZTllM2FlOTc5MzNmNmE5YmYzNDRiMjQgbGVnYWN5LXRydW5rCis2NDkxMSBiNWNmMGNiMGM3Y2U1OGI3MzAzNWQwNTBiOWU2YWFiZDI4ZTgxN2U0IHB5M2sKKzY0OTEyIDg2ODY1NjMyODE1Mzk1ODViZGFiNTc4YmQxOWE5YjAyNGVlNTY2MmEgcHkzaworNjQ5MTMgNWFhZmEyM2NiZmZjOTk2OTE2MmNiMzE4YTQ1OWM3MmNiNWZjMjJkYiBsZWdhY3ktdHJ1bmsKKzY0OTE0IDIzMjEwNDBlYzkwYmU2NzRiM2I4MmJiYzI3NTYzZDUyZWM0NTE3MGMgcHkzaworNjQ5MTUgYjkwNzUyYzVlOGMxNTNjNjlhOGU3N2YyN2IwMWFmYjEyMTIwZmFlOSBsZWdhY3ktdHJ1bmsKKzY0OTE2IDhjZmNmNzkzMjcyNDVjYzcwMzIzZjM3NzM5Yjg1OWMzNmRiYTQwMWMgdGxlZS1hc3Qtb3B0aW1pemUKKzY0OTE3IGFiMmNmZDdjM2JlODc2MjdhNmQyOTY5ZGNhZGRiODdmZmZjYWE2ZmYgdGxlZS1hc3Qtb3B0aW1pemUKKzY0OTE4IGU1M2U0YTcxZjU2ZmQxODZiZGU4MzY5ZGE2M2E0M2VlOTBjMzAyZGEgcHkzaworNjQ5MjAgZDYxMWIwMDkxZDVmNjRlZWFmZWM1NjZmYTY0MDE1OWMxNWUxYjdmZiBsZWdhY3ktdHJ1bmsKKzY0OTIxIDVkNjFhZDIxNGI5YzA2OWM4OGIxYTE5OGYxNzI0YTI0NTI3MGUzMTkgcHkzaworNjQ5MjIgMDQxNTUwNzM4MjAxZmRmZTQ0NjFlNzk3ZTc1M2NkZDVlMDhjMjY2ZCBsZWdhY3ktdHJ1bmsKKzY0OTIzIDhkMGE5NzY4MTZmMmY5ZGU3ODAzOGVhZmFlNDBiOGZhYzRkZGYyYTcgcHkzaworNjQ5MjQgMThiZjJhYWE4N2I1ZjI0ZTdiMzE0M2UwMjZkYjQ3NDJmOWYzOWEwYSBweTNrCis2NDkyNSBjNTcxMGYwZGViYWUyNzUxNWE3ZDhhMzA5ZDExZGNlMTQ2NzBlOTBiIHB5M2sKKzY0OTI2IGU1ZTEyZDMxMDU3ZWQ1MDViZWE3NTAyNWM4YzZmZGYwZjMzNTg2MDAgbGVnYWN5LXRydW5rCis2NDkyNyA1YWMyNmIxZjI1ZDkxZWVjNGJhYmE0ODliMjJhZWQwZmMyYmJkYjM0IGxlZ2FjeS10cnVuaworNjQ5MjggNmMxMjM3Y2I1YWFhNjZiZGNlODg1ZDA5MjExYTdkZjY1NmNjZmE3ZSBsZWdhY3ktdHJ1bmsKKzY0OTI5IDhiYWNlMjE0YWU1NGEyMGM5MGJhY2M5NjJhYjhmYjQ5NTZkNWZhNjYgbGVnYWN5LXRydW5rCis2NDkzMCBhZmU4ZDUxNWJmZTJlOWM5OWFiNzJmYWIzNzYxYzE4MTVhZDdmZmJjIGxlZ2FjeS10cnVuaworNjQ5MzEgODFlMzRkN2U0YmEwYTdmYTYzMWJkM2E0MTgwYTA3MzljMjM5YWI5YyBweTNrCis2NDkzMyA2ZmQ4YTFkODQ0OGJjZDE2NmZlMzcwYzQzYzJkYzRjY2ZlNjRhODhiIHB5M2sKKzY0OTM0IGJlM2QzMTA2ZGE2ZjI0NTFhYmVhNmRiMWZjNjdlN2M5OTNlNTQwODMgcHkzaworNjQ5MzUgYWZkZDY0ZWRmMTg5ZTVmOTY3OTM3MjEwNjI5MmQ1ZDQ2MzEzMWJjOCBweTNrCis2NDkzOCA5MmIxY2FmYTMyNjdiNjY4ODAzOWEzY2Q3YjgyNmYzYTU5OTNkNjMzIGxlZ2FjeS10cnVuaworNjQ5MzkgN2EzMGIzYzVjYjU3YTdiYzk2ZWFiNmJjM2I0MzMzNzg0MGRjZWNjZCBsZWdhY3ktdHJ1bmsKKzY0OTQwIGMzYmM0Mzg4ODJjYjgyZjRlMmU5ZGM4NDI4OWMyODNjZGNkZjA0NzkgbGVnYWN5LXRydW5rCis2NDk0MSBhZTM0Yjk1MWIzMzc3NjI2YWI0ZDdlYjE3NTI5MzQ3NTRmOTkyOWFiIGxlZ2FjeS10cnVuaworNjQ5NDQgMmFkNzQ5ZDU3ZTYyYzA1MDU4NDc1MjBmMWY2MWMxNzZmMzE0YTgyZCBsZWdhY3ktdHJ1bmsKKzY0OTQ1IDJjYzRlMWM0NzVmODEzYzE0Y2EwMDEwNzg2ODdjMmFiNWI4ZjJkYmEgbGVnYWN5LXRydW5rCis2NDk0NiBjMGMwNmZmYWVhODMxMDkxM2UwMzRhYzg0ZjI3MmVhZWIxOWQ0ODVlIHB5M2sKKzY0OTQ3IDE5MzY5YzdmNTc5MTRhNWNkNDJiNjAwODNkZGVjNTk3MGIxYTc4MTIgcHkzaworNjQ5NTMgZTdhNmE0NTE1YWIwYjM5YjU1YjI0MWFkZjIxNjg1YWNhNTMzN2E4OSBsZWdhY3ktdHJ1bmsKKzY0OTU0IDk5ODY4MjA3MjNlMGNmYzcyNzJkZTg5OWQ4MGExYjQwMGQ1YzlhOTUgcHkzaworNjQ5NTYgM2Q4NjgyNTRmZjdlZWZkNmUzYTFmYWJjMzcxNzM5N2EzN2M5MTc1NSBweTNrCis2NDk1OCBjMmIxMTRkMGUxY2Y0ZDczN2Q1OTAzNTg3NGIxMzVlZWMzZjJiMTBjIGxlZ2FjeS10cnVuaworNjQ5NTkgNzQxOTU0OTllOTA5M2NhNzVlYzExZjFhNGI0ZGI1M2VhOTIxNDM2YyBweTNrCis2NDk2MCBkNGU0NzMyOTFhMTdjZmIzNjc5ODY5Y2Q0ZDY2MTk0OGU3ZmNhNWFmIHB5M2sKKzY0OTYxIDJmYmUyOGRlY2EyYTI4NGNkODQzMTE1ZTQyZDEyY2I4ZTU3NmNiM2EgbGVnYWN5LXRydW5rCis2NDk2MiBmOWI4MGE4MjBhMjU2OWNhYmQ1ODJmYzk4YTQxZDlkZDk0NDY0ZmQ4IGxlZ2FjeS10cnVuaworNjQ5NjMgN2Q1NzBkZjVlOTBhNDEzYmUxNzg4NzAyNzlhNGVlOGZiYTQ0MmI2MyBweTNrCis2NDk2NSAyZWUwOWFmZWUxMjYwMjUwZmQ3OGQwMjc1Yjc3ZWVkZWE1YmZmM2FiIHB5M2sKKzY0OTY2IGRlZDIxNzA0MzcwN2MyZjVkNDM2NWJkOGQ4NzkyNzk0YTBlNDRjMDQgbGVnYWN5LXRydW5rCis2NDk2NyBmNGU3ZWY0MzI5YTk1N2U5MmFmYjExYTRmMGVmYzgyZGM2ZWU2ZmQ5IHB5M2sKKzY0OTY4IDFmZGJhMDk3OTMyYWY4NmZhNDE2ZTgzM2E3MmQ2Y2JkOTIxNTE4ZjEgbGVnYWN5LXRydW5rCis2NDk2OSBmODcyM2ViMTA1YWNkNWZhZGUwZDZlNmJhZjUzMjI0MzIxM2I3Zjk1IHB5M2sKKzY0OTcwIGUyNmM3MjRkNWUyM2UzNzQ4Zjg2ZWU1NzU0MGM4NjJlNDRiYWNiNDggcHkzaworNjQ5NzEgOTE2ZDMzZWM3YjVhZmVjYzBiNDNkZDNjNWM0NDgzODRmMTI1ODIxOSBsZWdhY3ktdHJ1bmsKKzY0OTcyIDQzMmQyNzgwOGJkMWVlNjM5M2E2OWFmZGI4Yjk2Y2Y1NGQzYzkwNWUgcHkzaworNjQ5NzMgMWYyNGNlYzBmMmUxZDY4ZDI2N2QxNzgxODZlYWYxY2NiMTM4Y2NmNCBsZWdhY3ktdHJ1bmsKKzY0OTc0IDk3YmE5MzZlOGRmODRjYTQ3YjBjOTYxZmYyMWY1ZTYwOGI0YTU3NTAgbGVnYWN5LXRydW5rCis2NDk3NSBkMDQwYTNiNjNkZjQyNTg4NjdhMTZhZTA5YmQzY2QxM2Q5Yzg2ODk2IHB5M2sKKzY0OTc2IDg3NWJlYjRhZDg4OTE1MGE2MDU4MjBmNDNkNDZlNDE1ZDE1NGZkNDcgbGVnYWN5LXRydW5rCis2NDk3NyAzNTAwNGQ5YmZkMTU2MDQwNDUzMWFmZjIyZGI5NTkzNTQ0M2I5NzVmIGxlZ2FjeS10cnVuaworNjQ5NzggZGEyZDM2MzM3OWYyNmU0ZTQ0YmQxNGRhZDg1YzEwMGYyMDQ0ZTRhYSBweTNrCis2NDk3OSBhNDQ4MmExYTMwYzZkOTNjYzMyMzQzYzhiMTI4NmVkODI3NWVlN2I2IGxlZ2FjeS10cnVuaworNjQ5ODAgMWUwMDkxNzA4ODc1YTc4NTEyZjQxMzczNTQzODI4MTBlYThjOWUzMCBweTNrCis2NDk4MSA5Y2IyOGFkNWE0MWMwMDEyNjkwZTU5NzE1OTRiMjViZTU2MGMxMWExIGxlZ2FjeS10cnVuaworNjQ5ODIgMDFmYmUzZmM4ODNlMGFlYjFlZGUzMTQzODJiYTkzYjQzNjQ2NzY5MSBsZWdhY3ktdHJ1bmsKKzY0OTgzIDUxYzBkM2EwNzFhZDAwNzgwNmZjN2Q1ZGZkZmNhMjJhYzNhOGMxODggbGVnYWN5LXRydW5rCis2NDk4NCAzZmE0NGU1ZTRlMmIxZjJjZDZkOGQ0MjU4MGQ0NWY3NDllMzg5ZTBiIGxlZ2FjeS10cnVuaworNjQ5ODUgYzY2MmU4Y2ZmZGRmNjFkNWI2ZTRjNWRhYTY5OTJlOTQ0YmYwZmI3NSBweTNrCis2NDk4NiBlZmY5ZDExYzQ3NjI2YWJjZTA3MjY3YWIyMmNlZmU4ZTU3MzQ2ZTRlIGxlZ2FjeS10cnVuaworNjQ5ODcgM2EzYTVhNDkyMTQ3MWMzNDgwMTQxZmRkYjQ1N2Y3MWNhNWIyYjQxMSBweTNrCis2NDk4OCAzYmIxZjhiYmEzMzY3NmEzNTk3N2E5MzY0ZGMzY2ZjOTE5NjJhMjZhIHJlbGVhc2UyNS1tYWludAorNjQ5ODkgYmJkMGM5MDAyN2JmYjc3YjQ2OGNlZWYzMTVmYjFmNjJiMjU3YjdjNiBweTNrCis2NDk5MCBiZDQ4NDEwNjljNjg0ODU4YjI3MmQyMjQ4YWE1NWYzZTYzZmMxMDQ0IHB5M2sKKzY0OTkxIGQxNGQwYjE1ZTE4ZTcwZjdlNzQ4Njk1MzgwNWZlNDI4NTA5YjlkNzMgcHkzaworNjQ5OTIgMzhkNzE5YmVkZGJkZDg2MzY1MWM5MGMxZDI2MWYxYTY0Mzg2NjNkMyBweTNrCis2NDk5MyBlYTIzZTdjNTYxNTQ1NmNjYzU5ZDNiM2Q3ZTAxZTZmNzIxZjJlZGI4IHB5M2sKKzY0OTk0IGZjZWZmOTU0ZjM4MDRjNjJiMWNlNjU1ZTI0ZGM5MTM0YzIzMWRjZGIgcHkzaworNjQ5OTUgOGU5ZTY1MzgzYWZiNjUwMmUzOWRlNzRkMTUwNzUwZTliMDVlYTEyOCBweTNrCis2NDk5NiA2NWU5YzAxMDJlZjljNGIwOTQ3YjkwZWQyMTU4MzhhZjFiNzIzYTk1IHB5M2sKKzY0OTk3IDkyNmIyYTE5NjA4MzE1Mjc4NTA4YjEwNWYwNzdjZWU0YTBiZTFlOWQgcHkzaworNjQ5OTggOWViZDNmMzg1NTc1OWQ1OGFlZTRlYjhiOTdjZWYzN2JkYWI4MjM0ZSBweTNrCis2NDk5OSBhY2E1YjJlNmE2NmYzMjRiNzQ1NDZlYjgwZjU0ZjIxOGM3MzU1MTBkIHB5M2sKKzY1MDAwIGY1OGUzYTBlYTk5YTE3Yjc2YzVlMDg2ZGY4OTU4OGNkNTM4MzFjZTIgcHkzaworNjUwMDQgOWFhMDc4MTYxNWZiMWM3YTc2MGFkYjZkZDVkNTI2ODFkYTAyZGI4NCBsZWdhY3ktdHJ1bmsKKzY1MDA1IGMwYWIyYmFmYjI2NDQwYjU5Zjk4NDkwNWM2NDFhMDc2NDc0YTQ2NTUgbGVnYWN5LXRydW5rCis2NTAwNiBjZWEwNjZkZWRmZGZiMjA4ODI1OTZlYTMzOTMyNzY3MWIyYWM1NmUxIHB5M2sKKzY1MDA3IGNhMGQ2MjBjZDYzYjJhNWZiZGFlZDQxYmU4NjY3NzU3ZmQxZmRjYWYgcmVsZWFzZTI1LW1haW50Cis2NTAwOCAyYmI4NjZkMjgyYmFkNTVkZmU2NWU3MTM5YjEyOTMzYmY4MmE5YmY3IHB5M2sKKzY1MDA5IDE3NzMwMmZlYWIzNjg5NTVlZWQwMzI1ZWU5NTE4ZGFmNWFhODliNDcgcHkzaworNjUwMTAgZGUwYmY2MGYxMjQ1YWM3M2U0NGJiMjVlMmM1OGVhZTZlNWQwODJhZSBweTNrCis2NTAxMSA0ZjZlZGVhNGI1NTg1NjExYzE1NGY1YTIwZmIwZDI3OTdjZDI3NzVjIHB5M2sKKzY1MDEyIGE1MTkxZDdlYTQwNTQwYzMxNjFlNWFjZDQ5NzAyYTcwMTM0YjhjODYgbGVnYWN5LXRydW5rCis2NTAxNiA1ZjZkYzJmODZhODg0NDE3NWIyYjliM2FkYzM3N2Y5MWI3ZWFiZTZhIGxlZ2FjeS10cnVuaworNjUwMTkgZWMzOGZiYmI4Y2NlYmUxZjI2NzA5MDdlNjg5MjY4MTU4ZjhhZmJmMSBsZWdhY3ktdHJ1bmsKKzY1MDIwIGI2NDVhYTJiY2E5Y2M3MTIxOWJjMjMzNDhjYjEwNDBiNGU2YzFhMTggbGVnYWN5LXRydW5rCis2NTAyMSAyZTkwZmVmMjI2ZWE2YzIwMmRhNzAxZGI2YTIwZWRhZDcwOGNmNmE0IHB5M2sKKzY1MDIzIGEwOTYzZTQ2ZjQzZTVlNzdlOTIzNTViNTU0ODdmMWY0NzZkNWUzNjYgbGVnYWN5LXRydW5rCis2NTAyNCA2NTRmZjU3NTU0MzZhZDUzYTZkYTFjMGQxMmIxNGI1NTc0YmIyYzNjIHB5M2sKKzY1MDI2IDY1NTIyN2M5ODhhNzhkNmQyMjgzYzE0YzhmOGMxYWI3NjJhNzk4OWMgbGVnYWN5LXRydW5rCis2NTAyNyBhY2FjYTExZDgwZGJjODRkMzEwOWFkODZiZDkxMDM0NTc2MDI3NjY2IHB5M2sKKzY1MDMwIDU5YWM1YWVmM2IyZDFmZjNjM2E2Yzc2Yzk0NDU5MmRlMTViMmU1NmMgcHkzaworNjUwMzEgYjJmM2RlMzU4YWY0MDgwMzI0ZDdhZjg0NWFiODIxNWVmNmI5ODAxNiBweTNrCis2NTAzMiAwOWJlYjk2YmEyMGQ0N2M2MzQxNzI3ZTFmZWM2ZmQwYzEwNmQ0Yzg5IGxlZ2FjeS10cnVuaworNjUwMzMgZWM4NWI1OGFkMmJhNGEwODBhNjAxYmIxMWI4NDc2Yjk2OThlNTJlYyBsZWdhY3ktdHJ1bmsKKzY1MDM0IDZjOGJhYzkxM2FhYmZjYzA4YzVmZDQ3ZjVjZTRlNGE0ZDZkY2I4ZTcgcHkzaworNjUwMzUgZWJlOTMyMzI5MjQ2OTk3ZDUzODEyMGEzOGFlZjdhNTZlZTJjMzgzNiBsZWdhY3ktdHJ1bmsKKzY1MDM2IDYwNGZlYmQyMDRjYjJkM2U2M2YyOWYxNGI5MWU3ZDY5NGY5MmFhNGYgcHkzaworNjUwMzcgZWM5N2I3YWFkMjMxYmVjY2Y3YTI3ODNlNGI0MDI4ODk4Y2FhOTM2NiBsZWdhY3ktdHJ1bmsKKzY1MDM4IGVmZTcwNmFhYjMyYjkxYWUyODNhZWYxYWVmY2I2OTczNDI2ZjJkY2EgbGVnYWN5LXRydW5rCis2NTAzOSAwMTgwNmNkZWRkZGUzNjA4YmYwNDE0OTQwYmVlODE5OWRjMTUyYTFmIGxlZ2FjeS10cnVuaworNjUwNDAgMDkxZGY0YzA4ZDk5YTRkZTUzNTdjOTk5OGY4NGU1NjkwOWE4YmI5OSBsZWdhY3ktdHJ1bmsKKzY1MDQxIGZiZjE2NWE3ODk1MzczY2FkMzBjYzYwZjFmMzY1ZjJiMjM3ZDVmOWIgbGVnYWN5LXRydW5rCis2NTA0MiA3ZTAzMGI2MjgyOTRkYjIyOWI4ZTA3MjQxNGI1NWM3MTU3YjcxMWQxIGxlZ2FjeS10cnVuaworNjUwNDMgYjk4MjhiMmE1MWMwZmYzNTFmMWNiNmYzNTIyZTc1Yzg0ZmU2MTMzNiBweTNrCis2NTA0NCA5MjFjNGE4MDk5MjM4MzE3ZDVkZjhmM2UyNzZmYmI5NjZhYzU4YzE5IGxlZ2FjeS10cnVuaworNjUwNDUgZDg3Y2Q1ZTczNjVhYTgyYWM3NzE3NTM0M2ZmODk3YzJlOTkxN2IxYSBweTNrCis2NTA0NiA3NjhiY2ZmNGMwZGFlZGE2NDdkYmQyNzQ0MTBkOGRmNzAxM2ZlY2Y1IGxlZ2FjeS10cnVuaworNjUwNDcgZjJjNzI3OTI1OGMxMmRjNDY2OTZjNDNjNWQ5MzQ0YWYzMTFkYjAwZCBweTNrCis2NTA0OCBkMzFkNjFmNDY0OThkMTQyMTczZmJiMjUxMjZiYWRkY2Y0ZTNlMzhiIGxlZ2FjeS10cnVuaworNjUwNTUgMzBmZGQwYzNiNmRlMWI4MjM1ZTc1YWI1ODAwOTA2ZjljN2M0NDNmOSBsZWdhY3ktdHJ1bmsKKzY1MDU2IDljNTZjZDk3ZmY0ZGVlMzA5NDY4YzM1MjMwZGJiOTg1ODVhNWY0NmQgcHkzaworNjUwNTcgMjdiY2E3ZmFjMzYyZDcxNTkwZGQ2M2JlOGVhNjE1MjU0ZjZjOTE3OCBsZWdhY3ktdHJ1bmsKKzY1MDU4IGM1OTExYTdiNWZhMDBiYzI3NWY2Y2Q3ZmI2ZDcyOWE4YjRlNWVkN2EgcHkzaworNjUwNTkgNDUyMzNkNGMxOGQyM2IwNjBhZWRlM2JiNWYyMzZmM2ViYWVjMmZiNSBsZWdhY3ktdHJ1bmsKKzY1MDYxIGEyOWM4NmNlNzY2ODcxMTEzYmUyNzZjNDI4NmIyYTFlZmY0MjE1ODEgbGVnYWN5LXRydW5rCis2NTA2MiAxYmU1YjZiZTQzY2I2OTg1NDJjODM5MjE5Njc1MjQ4ZGI4MmFjNTlmIHB5M2sKKzY1MDYzIDc5Zjg0YmMyYjE0OTIwODVmN2ZkNmMzZDdlNmFiNjU1ZTlhNGI1NmEgcHkzaworNjUwNjQgZGJjMmI3YWQwYzIyMTdjMDgwZWRjMDFjNDc5NzYxYWNkZTRmYmIyOSBweTNrCis2NTA2NSBlZWZiOTgzNzk2NDRkOWJmODRjNWUyZmViM2EyNTlhMTVhMzViNTBkIHB5M2sKKzY1MDY2IDc4YTI5YTA1MjA3OTgyZDI2ZTczYmEwMDZiM2U0NDlhYWZjYjc3NjUgcHkzaworNjUwNjcgOTkxY2FkZDQ3ZDk3MzJmMzExMjExZWViZGU5MGZhOGU5ZTdkOWEzNCBweTNrCis2NTA2OCAyMDY4NzEwYjMyYzM1MTNjMjQzNjJiMDhiNTE1OTMxNjM5NDY0YWM1IHB5M2sKKzY1MDY5IGYyODNlM2I1ZjkxN2FiMjZiNTM4ZjRlOGEwNDRmYjA3Yjc4NjlhZGEgbGVnYWN5LXRydW5rCis2NTA3MCA1NjAzODhjZGExNjNkOTNkZDhjODRmOWIwOGEyMmZlYjQ1YmRhMmUxIGxlZ2FjeS10cnVuaworNjUwNzEgN2M2ZWM3YTgwMTZhZGZhNzM0ZmI5NzIyY2UxMGRiYTY2YzlhODFjMSBweTNrCis2NTA3MiBiYTM5YjQwZWJmMmQ5MzM5Y2FiYzdkNWYwNDNhMGFmYjA3OTc3NDQ3IHB5M2sKKzY1MDczIDgzZDBkNGNiN2E2NjFjOTdjZjU5ODQ4YmM2NjE3NmY5ODhlODkyYTcgcHkzaworNjUwNzQgM2Q1MjY1MjViM2U4MWQ5NGFhNGYyZTRjNjcwODFhNTY4MzQ5OGY1ZSBweTNrCis2NTA3NSA1YzMzMDA5OTk0YjQ2MzU4ZDZlZjk4MzUzNzRkOGNlMzhkMjViM2ZiIGxlZ2FjeS10cnVuaworNjUwNzcgNmRkNTIwZTFiYzBkYjM2MWZhYTFjZDYzZWFlNDE2Yzk0Y2YzZWFkZiBsZWdhY3ktdHJ1bmsKKzY1MDc4IDRkZWFkYzhmOWUwYTM5M2VhNjFhYWRmOGQ5ZmQ5NGUzZTZiMjAxODYgcHkzaworNjUwNzkgMDMxYjVhZDU0N2U0MjdiNDM3Nzk0YjgxODFmMjkyNDkwNjJiMDgzZiBweTNrCis2NTA4MCAxNmVjNGJiMTRhNjhlYTQyOGFjZjA5ZWJmMGM5Mjk4MWRhMjY0NmYzIHB5M2sKKzY1MDgxIGE5NjgwMjliNjNkYjEyMWYwMDdhN2RjOTBhZjg4YWM1ODJkZDQ3ZTEgcHkzaworNjUwODIgODFlYzgyNjNiZDZlMjVjOWE4ODU1Y2QwY2U5YWU4ODE3MzI5NzJiZSBsZWdhY3ktdHJ1bmsKKzY1MDgzIDU4ZDRiZjMxNzI4ZmY4YjQyOTYxMWIzZjRiMGU0OTIxYjA4YTFhYzYgbGVnYWN5LXRydW5rCis2NTA4NSAxOWU3NzlkMDIwNTM1M2ZjOGNlMTkwMzU3MzRlMzc4MjhkMmQ0M2Q2IGxlZ2FjeS10cnVuaworNjUwODYgYjc0ZTlkMDliMTgwNjkzZDAwY2M1YjMzNDZjMTAxNGQxNDZjMTU3MiBweTNrCis2NTA5MCA3OGVlNmJhMjA5OWVlN2QyYzZkOGI1YjIyM2ZiOWUxMTliMzdkODVhIHRsZWUtYXN0LW9wdGltaXplCis2NTA5MSA2NDRjYTQ0ODc4ODFlODc5ZTAxMGVmNTNmZjk5NDY4ZjlhODM0MDVjIGxlZ2FjeS10cnVuaworNjUwOTIgMGVhZTliMjVhMmVkMGJkZTA1OTUxYjlhMDBlNWM5ODI3MmFkMjhkNiBsZWdhY3ktdHJ1bmsKKzY1MDkzIDhlYzE4MzBkNTcxOTk3M2U3MDczYTgxYjg5OGIzYTExMDM3YzFhMTAgbGVnYWN5LXRydW5rCis2NTA5NCAxYWNmZTQyOGU4ZjE5Yjk3OTBmNDU3ZDgyZmNkYjRjMmU0ZWMzYWY2IGxlZ2FjeS10cnVuaworNjUwOTUgY2VjNzA0Yjc5YmRmMWY1NTAxMzY5ZjE2ZDlmZDc1Mjc3MDA1OTU3YiBsZWdhY3ktdHJ1bmsKKzY1MDk2IDI5MjUxMzVjYTA1MGE2NDQ3NWRkZjMyYWIwYzM3NTRlNzk0ZTYwNjcgcHkzaworNjUwOTcgNGVjNWEwZWM2MzFhMDU1M2M1NTY4ZDM0OGJiODNhYjlkMmNlMWI1MyBsZWdhY3ktdHJ1bmsKKzY1MDk4IGU4NWQ1NjkwYzI5NmVmNmYzMGY1ZTk3MzBhYTYxYjBmZGE3Y2EwMmUgbGVnYWN5LXRydW5rCis2NTA5OSBhYzFjZDQ2YmY3ZDU3ZTliNGQ3NGYyY2YwYjViMzExMzVjZGUxYzZkIGxlZ2FjeS10cnVuaworNjUxMDIgMWIyMGFmYTQ4ZDU4YWU1MTI1NDkzZmMyMzM5ZTI5OGY3MGZjMmU0ZCBsZWdhY3ktdHJ1bmsKKzY1MTAzIGM0MzIzMDdlYzAwZGQ2ZDY4ODFhYjAxMWQ0MTRhOTFlNDg2MTExZDcgcHkzaworNjUxMDQgOTU3NmJiNzFhMDFiNDhjMGNkNDA5MzBkZTY5NzhlNjhjNTE5ZTMxMyBsZWdhY3ktdHJ1bmsKKzY1MTA2IGU3ZDY0ZTgyOTAzNTIyYjMzNjcwM2ZkZjFhOGMxYzNlZDJhNmUyZDggcHkzaworNjUxMDggOWJkYjc0MDRlZmU3ODg5ZGI4YmU3NDNlYjgyM2MzZjY2ZTdkZDE3MSBweTNrCis2NTEwOSA0OTcyNmRjYTE2ZDgxMWMzMThkYzMzZmE1MmVjYTI3YTU0NTg1NzhlIGxlZ2FjeS10cnVuaworNjUxMTEgYjkzMWEwMjI2NDY2NTZiZjE5Y2Q1NDgyZjIwZTEyZDQ4ZTY1NGNiMCBsZWdhY3ktdHJ1bmsKKzY1MTEyIGY5MDQwZDEwN2Q2NjQ3ZGVmNzlkZmUzNDkyOGU0MTM4ZTA0ODBmNjcgbGVnYWN5LXRydW5rCis2NTExMyAyOTc5NTEzMDY0MDA1MjFiN2Q3ODQwYjJjMWIwMDc1MGIwZTVkZmJmIHB5M2sKKzY1MTE1IDZlNzcxNmEzYmRlYzEwNjBiOGViNTNhYzZhNzdjMzkyZjA1NmY2MjEgcHkzaworNjUxMTggZGVjZTE3ZWRiZWQwOGFiNjljOTIyMWY4NjhiZDBkNDU1NmNmNjc5ZCBweTNrCis2NTEyMCBmZWZmZWMyNmM1NmNiOTZkYmNlYzMyZTdkOTZlNWJjOTEwZjIxMjliIHB5M2sKKzY1MTI1IDQwZGI0NWJmYzBmMmNkYmNjZGVmYTY1ZmE2NTU5MzhkMTdiNzdiY2UgbGVnYWN5LXRydW5rCis2NTEyNiA0OGU4M2U2NjkzNWE5YTZjMzM4YTU3OWE5NWYwMTJmNTQxYTc5NTU3IHB5M2sKKzY1MTI3IGE1ZmZlMzRjNzJjNDg5OWRjMGNhZTc4MzlkMmZmYzZjZmEyMzg3ODUgbGVnYWN5LXRydW5rCis2NTEyOCBjYWNhMzM4MzJhMWE1MTI3YzIyN2ZhYmY5OWQ5ODM1ODFmNWY5ZWUxIGxlZ2FjeS10cnVuaworNjUxMjkgZTZiYTZmNDE0NjliZjMwYmVkNGJlY2JiZTI1MmZhZjY0ZWJmOTBlYiBweTNrCis2NTEzMCA2YzVjZGRiMjY3ZmUyNGQ1OWQ1YjMxZWFlMGQwYjJjMmQ1OTRkZGE0IHB5M2sKKzY1MTMxIDdhZDZlNGNkNzcxMzY2ZDk0NTU4Mzc3YWUwODZiYzAwYzZlMTE1MTUgbGVnYWN5LXRydW5rCis2NTEzMiA0MGIwZTMzMThhOGJiYWRkMTc0NDdhNjg0ZGM1MjkwODQwMTk0YTBjIHB5M2sKKzY1MTMzIDMzYzZhZjY5YWUwZjE3NTMxZDJhZWE4MzQ3Njg4NzQ2ZDBmYTUyNzAgbGVnYWN5LXRydW5rCis2NTEzNCBlOTA3ZGE4MjUxNjkxOTI5ZThmZTU1ZjhjMmJkM2YyNDI5MTk5NTBkIGxlZ2FjeS10cnVuaworNjUxMzUgNDliZTg4MTJkNDMzMGFlZGU1MDBkMDhhOTYyMmE4YWJiMzVmYzZkYiBsZWdhY3ktdHJ1bmsKKzY1MTM2IDk2ZWFmYWI0ODkwMTJlZGYyZDk4MTNiZmVkMTAwYmVhNDZhYzQyNjggbGVnYWN5LXRydW5rCis2NTEzOSA3ZjU0MjJkMDQwOWY5NDQ0N2U3ZTE0ZTZkMTRiZmZjODMzYWI2NjgxIGxlZ2FjeS10cnVuaworNjUxNDAgZGZjMzc1ODNmMjA0NzY3ZWNhZTY5ZTQ2NWNlZTE2M2VjMDk5ZmI3OSBweTNrCis2NTE0MSA5NDhlNWIzMjMzMjkxYmUxNTI1NmNmMTA2ODliNTY3ZjM3NTE2ZjBmIGxlZ2FjeS10cnVuaworNjUxNDIgNDA3ZWIwMDQwMDQxNDFjYThlZjYyYWM3ODdiOTE3NDM3MjAxM2ZiYyBweTNrCis2NTE0NCA4OWY1Y2ZlYzA1NzNjNWVhMzMxMmI3OTljNTAwZmRmMzExYzhiZWFhIHB5M2sKKzY1MTQ3IDdjMTQ3YTc2YTBiMjcyNDY3NWQ0OTA0MDJiYjQ0ZjlmNmY2MGU1YjAgbGVnYWN5LXRydW5rCis2NTE0OCA4Y2RiMTgxYWE5YWZjNjc1ODA4ZTkyY2Y2NjZhZjExMTNmMjJlM2FmIHB5M2sKKzY1MTQ5IDcwYmU2OWM5M2UzM2FhNTNlOGVjMjVjMWQwYWYwMjg4MTBmOGZmNzggbGVnYWN5LXRydW5rCis2NTE1MCA0M2M2OTM0NTE0ZDdjYzM0MmU2M2EyNDI4MDJmOTJlN2M3Y2I2YjBkIGxlZ2FjeS10cnVuaworNjUxNTEgODk4OTIxM2YzODZiMjZiZTQ0ZGJiYzhlNGNkMmIxYWNhY2VlNDRmZSBsZWdhY3ktdHJ1bmsKKzY1MTUyIDY0NGZhN2EyNDBjOGI3OTYxZDZlN2FiMjRjYzJiMDkzM2FhMGUxYjggbGVnYWN5LXRydW5rCis2NTE1MyBiYjI2MzY4ODI1MDNkZDI2ZGYyZWQ3NGY5MDRmZWJiYjJhNmYwZWYzIHB5M2sKKzY1MTU1IGQyN2UyODAyMDcwOTJkODUwNmIyNTgzNzRiYTY3Y2UzOGI2Yjg4ZjQgbGVnYWN5LXRydW5rCis2NTE1NiAxZDRjYjI2ZWM4OWZhNjlkYWM3MTEzOTMxMzhiYTVlNWZkOTY2MzU3IHRsZWUtYXN0LW9wdGltaXplCis2NTE1NyA1NzhhNGIwYTUyMmQyNjBmZDEwMDg1NTM0YTI2NDM5MjgwMmM5NTgwIHRsZWUtYXN0LW9wdGltaXplCis2NTE1OCAxZWQ2OTRhN2FiNjAxNDczOTQxNDA5YzllMDYzY2UzYThmZmFkYmIzIGxlZ2FjeS10cnVuaworNjUxNTkgYTk3ZmQ1YTNiMDkwYjY5YzY5Y2NlNDFlMmQxYWZhNjE1NjhhMjViYyBsZWdhY3ktdHJ1bmsKKzY1MTYwIDYwNTM1MjUwYTYyYzZhNDBmNmRkYzUzNDdjYTNmMWVmZDU3N2VmNzEgcHkzaworNjUxNjEgNjI4MjNlY2E4ODFiZTRhODdlYzYwZGEwZWJlMmJiOTMwMDEzZjk3NyBweTNrCis2NTE2MiA3Y2NjZTJhNzM5NGEwMjgyYmU0MGFiYjRlNWNkZjEwOThkNWUwOWIzIHB5M2sKKzY1MTYzIDM2NDEwNjc5NmIyMTA0NzJlYTI5ZGY2ODI0NTIwMTlmNDdiZTUyMWYgbGVnYWN5LXRydW5rCis2NTE2NCBlY2M2YmUzODBjNWJjOGE0ODIwY2QyNDMzNDkyM2YwMWM4NjRhODQ0IHB5M2sKKzY1MTY4IDA2OGMwMGJmNWEyNGFmZmYzNjk1MTQwYjI2M2EwMmQ5NWU2Y2FlOTUgbGVnYWN5LXRydW5rCis2NTE3MSAwYTc0MWMxM2ZjODFjNmVjMjhlZjliZmJkZmZlMGJmYzBiNTZhNTkzIHB5M2sKKzY1MTcyIDNmNmQ0M2Q1NzU1Y2I5YmFmMzQwOGE0NDMwODQ3MmEyZDU5ODMyMWIgbGVnYWN5LXRydW5rCis2NTE3MyA5MjFiNjc1OWNiZGU3MDlkYjY2MmZjZTVjMWJkMDBhOTM0MDFjMzlkIHB5M2sKKzY1MTc0IGE5ZGZhMDg1MWIwNzM4YzQxM2Y2MzVlY2MyNTY3NzYwZmE2MmU3MTMgbGVnYWN5LXRydW5rCis2NTE3NSA5NzViYmRjY2M1NWVkNTgyOTUwYmUwYTU1NjQwY2Q0NTEzYmY0Y2M4IHB5M2sKKzY1MTc2IDgzMzFiYzRlODI3OGM4M2JmYzE5Y2Y4YzZlZGUzZDQ4ZDJhNjE2YzcgbGVnYWN5LXRydW5rCis2NTE3NyBiODM2YmYyNWYxNzZhMjlmM2I2MWI5Yjc4N2NiMWRhNmQwMzQyYzE2IGxlZ2FjeS10cnVuaworNjUxNzggYmEyNzY3YmQ0NjIwNTI5OTkwNjA3NmQzY2UzZTAzOTlhMDNjZTI0MSBsZWdhY3ktdHJ1bmsKKzY1MTc5IGQ4Nzk4ZDVlYzRiOTNhNTdlYWRhN2U2Y2U2MGY5M2JkNzliNWQ4ODAgcHkzaworNjUxODIgNWQzODMzZTZhYWUzMGVhMWE5ZjRiYmE5MTgzYmVlM2MzMzE0MjQ4NiBsZWdhY3ktdHJ1bmsKKzY1MTgzIDNiNWMyNjEzZWQwNWRjOTkwMWUzNGQ5NDQ4MDA4MzRjY2UwOWM1YjcgbGVnYWN5LXRydW5rCis2NTE4NCA5NmE5ZWJmZWUyY2QyYzc2NDVjZmY5Y2E5ZGY4MzNhNGE0NTQxZDAxIGxlZ2FjeS10cnVuaworNjUxODUgMWEyZjhkZGU4MWVjYzQyOGZlNGZjNmM0NjJiNzEzZWFlNjg0NmRkZSBweTNrCis2NTE4NiA3MzliYjA3MjhlZmU1Mjk5YmIzYmE3MWM4MDBkYzgwNGIxNzY5MjkwIHB5M2sKKzY1MTg3IGVhNTNlZThhODMzMzIxZDhlNzBmYzViZGUxMjc3OWJhMDA1NThkNmUgbGVnYWN5LXRydW5rCis2NTE4OCA5MGZiYmJjZTc1N2FmODcxNTFhMTdkNzdmMmNjYWRkZjNiOTNhY2Y0IGxlZ2FjeS10cnVuaworNjUxODkgOTU2MWFhZWRmYjczOGYwOWZiYWM4YTJhMjU3NzljMWM1MzYzMWY3NSBsZWdhY3ktdHJ1bmsKKzY1MTkwIGRkMzE0OTBkM2ViNmRlODIwNWQ4NmRlMDA2Y2FhZDAwNWMxZjkwZmMgbGVnYWN5LXRydW5rCis2NTE5MSA4MjFlNzNkN2JjYzU0YTRiODVjYjhlZGQzOWU3MzAxNWJlYWYwYjYzIHB5M2sKKzY1MTkyIDY3OWUzYzI3MmVjMjYyZTJkYmYxZDgzOTc3OTlhMzFmOTIyZWMyMzcgbGVnYWN5LXRydW5rCis2NTE5MyAxMGY0MWFkYzBkMjRlNjAyMjNjNTFhMWRjOWRiZGQ2YjZjMjliMzhlIGxlZ2FjeS10cnVuaworNjUxOTQgNzYxZGNhYWFhMDllMjEwNTk5MGNkZjhiOGY2ZDJkY2YyYmE0OWZkMiBsZWdhY3ktdHJ1bmsKKzY1MTk1IDZjYThhZjY0NzQ3YjUwOGM2NWM4MDkxNDE1MzlhNjliNzZiZmE5YjEgcHkzaworNjUxOTYgMjBiNGI4M2E1NGFlZmYxMjAxNDVhZGQ1ZTlkOTkxOWM3MWRjMjNjOCB0bGVlLWFzdC1vcHRpbWl6ZQorNjUxOTcgZmNiZDlmNGYwOTVjNGYwMGUwODQ4NWFhMmNkMWU4ZjE3MGE3YTVlNCBweTNrCis2NTE5OCAwNDQxZDMwZDY3MmJlMDY1N2RkMmU1ZjJmODRmY2QzNjNmYWYzNTAyIGxlZ2FjeS10cnVuaworNjUxOTkgODM3NWIzZjY0NzBmNjBiOTQxZDFmYjBiYzBjZDc0M2I3YWM0ZjJkNiBsZWdhY3ktdHJ1bmsKKzY1MjAxIDBkMzdhYjAwZjZkNmM0NmQ0OWI0MDZkNjhlNmY4ZWVmMGU4NDE0MjggcHkzaworNjUyMDIgYmRkYzFhMTcyNDdlM2Y5NTc2NmExNDMxNTdhMDg1Y2Q4M2RjZmNiZiBweTNrCis2NTIwMyBhYjIyMTc3ZWI2ZGM0OTU2NjNhMTRkNTY0NWE3MThmNmE4YTZmOTM4IHB5M2sKKzY1MjA0IDQ1Zjg4ZDdiZjA1NzZjMzRkYzRhM2RlNjQ4YmFjOGY2NjRhYmJjZTkgcHkzaworNjUyMDUgMTc5YTdmNDE2MjQwYWY1ZjYyZjdjZjlkZTljZmNkNjA2OWY3NjU1NyBsZWdhY3ktdHJ1bmsKKzY1MjA2IGI1MWNkNWQzNzk1Y2ZiNTE4Y2U1NTAxZTZkMWI2N2FiY2RhMWVlZDIgcHkzaworNjUyMDcgM2VmYTIwOTE2YTkwNDNmOWNkYjJjNGZkMjhiMTQ1ZmUxYzA5MDI2NyBweTNrCis2NTIwOCA4ODdlZTZiZDkyODRmYjliNmVhZTQxZmJjMjNlYWI0NzMyOWVlN2VmIHB5M2sKKzY1MjA5IGI2ODcwNDQ1N2VmZWYxMGYyNzc3NTZkMGJiN2RhYTY5MjQ5NDk2YmYgbGVnYWN5LXRydW5rCis2NTIxMCA3NTlhNzMyMzU5MWViZDk0MGQzNzhmODEyN2RhZTdmMjU0NWIxNTZlIGxlZ2FjeS10cnVuaworNjUyMTEgMzg1Mzg1NmY3YzUwNTVkN2E0MzgzN2YwMmQ1MzRlNjM3ZDc1YWZhMCBsZWdhY3ktdHJ1bmsKKzY1MjEyIDA4ZGRjYWQ4NTEzNDhlYjRmNzExYTQ0OWFjMjBkZjQ2YTEwNGNlMjIgbGVnYWN5LXRydW5rCis2NTIxMyAxYjFlMWY4NzJlMDk4MzFkYTkyM2E5Y2JkZWE3ODhmNGY3ZmQ0N2U3IGxlZ2FjeS10cnVuaworNjUyMTQgMDdiODk2NTMxNDVlMDMyYThiNDg0MDI3NmEyZDBiNjU3NGY1OGM3ZCBsZWdhY3ktdHJ1bmsKKzY1MjE1IDQyMDNiN2YwODdjMTAyMzY0YmE5ODMxZDRkMTVmNGU1MjI2ODkxZTcgbGVnYWN5LXRydW5rCis2NTIxNiA3NGZiMGRmMjlhNDg3NmEzNzU1MmIyOTk1N2ViNjg4ODQ1ZGI4MmM3IGxlZ2FjeS10cnVuaworNjUyMTcgMjkwMDc4ZTliNmEyMDJlZGM1MjNiNTViOWY0ODE0NjhkNWE3ZWI4YSBsZWdhY3ktdHJ1bmsKKzY1MjE4IDFjNzhhYTdlYTMzNjBmMzkyYzRmNmY2ODdkZmRjYzc1N2RlYTQ4M2YgcHkzaworNjUyMjAgMWNlN2U1YzVhNzYxN2U5NjZiYjc0MTExYzg5MTRlNGNhZjM3NjRhZiBweTNrCis2NTIyMSBkOWQ0OWY2NzM4OWY2Mzk5ZGIwODg0MTc2NWRmMTI4NTU3ODY2OTRlIHB5M2sKKzY1MjI1IDEwMWJiMThjMTBkNTc1ZGNjMzBhMjI0NDFmMzk0MzVhNTUzZmY4NTEgbGVnYWN5LXRydW5rCis2NTIyNiA3ODE2MzBlMjU1NDBhMzU2MjhjNmE2NmI5NmYyN2U4MzZhNWY0M2NlIGxlZ2FjeS10cnVuaworNjUyMjcgMzVhNDYyZmY5ODczMTczZmZiNzQyYzJmNmYyYjJhMDI0YTkyZTRhMCBsZWdhY3ktdHJ1bmsKKzY1MjI4IGEwMjhjMGIyYWNlZTc4OTYwMTJjZDE4NWUzZmIxYWQ5MDFhOTYyMTMgcHkzaworNjUyMzAgODYyYzBlYWIxYzUwOWI1MGUwYWZjZDEyMThkYjQ2YmI0MThkZTFhNCBweTNrCis2NTIzMSA4ZmYyNWRiMDEwNzgyOTIxYjI5NjdkMjIyYTJlOTJmNDUzNzg2NjQxIHB5M2sKKzY1MjMzIDE4MmZjYTAyNWNhMDRkNTVjYzRhY2Y3ZjliMTgzMzgzYTYwZDAxODUgbGVnYWN5LXRydW5rCis2NTIzNCBiNzFkNzZiZjQ1MDY2YmQ4NjkyNzFiYTIyMzUwZmY1NDQ1NjVkNGY0IHJlbGVhc2UyNS1tYWludAorNjUyMzUgOTcyZjQ4OWFlMzU2Zjc1ZmRiYTA2NDMxODFkMzI4OTIwODdjMDgyOSBsZWdhY3ktdHJ1bmsKKzY1MjM2IDU1NjQwMTUxZTBmY2MwZWQ4NDRiNTdjOTg0MzAyNWRlNjcwYTg0M2UgcHkzaworNjUyMzcgYmUwN2MzMDgzY2VhZTI5MGI5MDM4YWFiOTFhZjU2MGQ2YzY5NzY4ZiBsZWdhY3ktdHJ1bmsKKzY1MjM4IDc0ZWVmODViNGIyY2RkZTc2NGZhZDE2MGQ0MjRkMTBhYjRiZDQyYTcgcHkzaworNjUyMzkgMzAwZGY2YjFlNGIwZDc3ZjQyMzQ0YTZjOGY3NGVjMDM0ZDY3NTYyYiBsZWdhY3ktdHJ1bmsKKzY1MjQwIDlhNmY4ZmIxNzVlMDU3YjEyMWY4MjZlYWZhNGY3MjdmZjQyNmIwNDkgbGVnYWN5LXRydW5rCis2NTI0MSAzMDQ4NWJjMTcyNjgwNjE1YTFlYzk3YTIwMjI0YWVmMjRlZmM0ZWZhIGxlZ2FjeS10cnVuaworNjUyNDIgNDk3ZDIyNDBlMWYwZTk2YzkxNGU1NjQ0ZTM5NGU2YmJkMDdlMDU1NiBsZWdhY3ktdHJ1bmsKKzY1MjQzIGQzZDU4NjAxOWFmZmYwZTc1ODk4ZjgwMjUxOWJmMjYzZDY2Zjk5Y2UgcHkzaworNjUyNDQgYjIxMTdiMTgwNDljNDJhMGM2NzgyMzdkYjBmNTExZmEwN2JkYWJkOSBsZWdhY3ktdHJ1bmsKKzY1MjQ1IDYxM2IyNDAxNGFmYmExY2E3OTU1YWJjYjgwZWU1MmYwMGU0ZWI0YzggbGVnYWN5LXRydW5rCis2NTI0NiA3NjdjYzg5ZTNmZGVjNTkzNmM0NmM5YjcwOTJiNjM1M2IwNjk2YmYwIGxlZ2FjeS10cnVuaworNjUyNDcgNGE0NjIxYTY4N2E3ODdlYjNmODNiNjg3ZTYwMDQxODlmMzNhZDg1NyBsZWdhY3ktdHJ1bmsKKzY1MjQ4IDJkMGUwNDAwMWU4MWMzNmI2NGU5MDczNjRiYTk3ZDVmZmFlYWIwZWEgbGVnYWN5LXRydW5rCis2NTI1MCAyZmI1NWZmMDYyNzVlNjVjNzA4MjNmNTk1ZTA0ZjI5MjRlMjc4NzY1IHB5M2sKKzY1MjUxIDdiMDg0NDgxMzM4OTNiZTliMzI0YWIxMGFjZGQzYTY4OTE2ZTA0ZTEgcHkzaworNjUyNTIgNzE1MzJhZDdmM2VkZjYwOGQ5YTFlMTQ0OTNhODY3NjA2NDRkN2IxYyBweTNrCis2NTI1MyAwYzEyYTM3ZDVlNWQzZDQ2NDkzY2VhYzkxZjcyMjdjYTNkZmZmMzVmIGxlZ2FjeS10cnVuaworNjUyNTQgYjhkNGRiYjI5MzhhNTlhMWY5MzBjNmMxNDJiYWYzNDQyNzQ5OTQ2ZSBweTNrCis2NTI1NSA5ZjllNWZlNjNlYzJjZDc0NTkyYmE3YmRkM2M2ZDMwNTg4YzdiYTIwIGxlZ2FjeS10cnVuaworNjUyNTYgMzExMWI2NTQzZGQ5ZThhZThlNDBmNmJiMzVkMTExMWNiY2U4ZDE1OCBsZWdhY3ktdHJ1bmsKKzY1MjU3IGYzYmYyZTliYjg2OGM2ZTUwY2YwOWI2MjU4MmVhMmFlZTYwNzQwOTUgbGVnYWN5LXRydW5rCis2NTI1OCBiMDFlMjBkMzczMDQyNTg2MjY5ZmUzNWE5OGFjZTJjMzE1ZGM2MzYzIGxlZ2FjeS10cnVuaworNjUyNTkgZTNkYTg2OWRlOThlYWIxNWU0ZWYwY2QyYjc2ZjJhYTE1ZDNjMWY2MiBsZWdhY3ktdHJ1bmsKKzY1MjYxIDJkYTQyZGNiYjhjZWJiMDRlZGM1MDJkNDIyNjcxNWY2M2QwZWI5NjAgcmVsZWFzZTI1LW1haW50Cis2NTI2MiBjYzg0ZWU2NjY3YjcwZTU4N2Q1MWU3ZTRhMjI1YmEwNzczNjdkYWVjIHJlbGVhc2UyNC1tYWludAorNjUyNjMgOTVkZjExOGY0MmM2ZjIxYjAwN2FhNWU4MTAxYmFhOTNiN2I3NmI4NiBsZWdhY3ktdHJ1bmsKKzY1MjY0IDE1MWMxY2Q5NGE0MDJiYzBlNGUzZjNlMGZhODMzNDE1MTdlNDRhYmUgcHkzaworNjUyNjYgOGFmYzRlMmM0YzAyMzZkZDU5ZmY2NjVmNmVkNWE0Y2MwM2I5NTllYiBsZWdhY3ktdHJ1bmsKKzY1MjY3IDQwYTU3M2YwMWZjNGEyZDE3MWZmYTE1YmI1YTgxZThkN2U2YWI0OTcgcHkzaworNjUyODQgY2NiYzg3NzRkODJiNTVjNDFmYzcwMTIyNGE2OGNjMTFiNjZmYjcxNCBsZWdhY3ktdHJ1bmsKKzY1Mjg1IDc5MWE2MzFhMmM3YzgyODE5Mjc4MTFhZmY5NjYyZTY4ZTdjYmEwOTcgcHkzaworNjUyODYgMjYyZDJlYThhYjUwZGE1YmY0YjI2MjYyNTNiOTRkZWVkMTc0YzRhNyBweTNrCis2NTI4NyAzYTI2N2ZlNzM4M2M0ODExMjY2MDcyOGRlZTMxODc5ZDg5NDI1ZWU1IHB5M2sKKzY1Mjg5IDUwMjI4ZDJiMzJjMTQxMTRkZjJhMmFlYmU5ZWFmZDI0Y2VkNDA3ZjMgbGVnYWN5LXRydW5rCis2NTI5MiAyMWVhYzkxMzgyNDk1YmJiZTAwODQ4MTE3NDNkOTk5MmM2YWQ2NmUwIGxlZ2FjeS10cnVuaworNjUyOTMgMGM3ZmFiMGIwNWMwMzYzNzZiM2U0Yzc5MTg1Y2Y3ZDdlMThjNTAxZiBsZWdhY3ktdHJ1bmsKKzY1Mjk2IDY4OWI1ZThhZTY5ZDRiMTUzNWExZjZhODRhOGU0M2QzYzk3NjA0MzAgbGVnYWN5LXRydW5rCis2NTI5NyAwMDgzNDI1MTllODY1Njc3N2MzMjM5M2NmM2U4MWI4YzcwOGQ4OWQ1IHB5M2sKKzY1Mjk4IGZkMzA4ZjAzOGFmYmE3OTdiOWNiNTBhZTRhYzkwZjQwZDA1MTYzYmUgcHkzaworNjUyOTkgYjQwZTEzYmNiOWVhNWU4NjUzOGNmNzQ4YjVlZGZiZDNmZGJkNzExOCBsZWdhY3ktdHJ1bmsKKzY1MzA3IDQwZTk0OWE2ODM0NDY1YTQxY2RmNzY0NjhkZGJhOTljZjY0NjY5M2EgbGVnYWN5LXRydW5rCis2NTMwOCA4ZDA1ZGRhNzM1Zjg3OWM5OTQwZGE3ZTUzZWM4NjVkMDJmODViNGRmIGxlZ2FjeS10cnVuaworNjUzMDkgYjM1Y2U5NTRhMzkyMTBhYjk2NDRmOWFkNjEwOWYyZjVkMjYxNzgyNyBsZWdhY3ktdHJ1bmsKKzY1MzEwIDhmMzYyMGY1ZDY4YWFiZDU5OTBkMDlmYzk3OTBlNjMxOWIxYjBhMGMgbGVnYWN5LXRydW5rCis2NTMxMSA5MGMyNWIzNmUwYWQ2OTU3NWNhYzg4ODQ2MGNjNWJkM2U4YzJiOWUzIHB5M2sKKzY1MzEyIDgzYzdhOGZhZWI3OGU2OWI3ZDVlZjY4NDE0MmIyMTU4MWVjNTUyYjMgbGVnYWN5LXRydW5rCis2NTMxMyAxMmUzYzM4ZDMxNmUzOGRjMTNjMTY3ZmYyMGJjN2NmMzgyMTQwYzUzIHB5M2sKKzY1MzE0IDdmODIyYjVkMzY3MDE0N2Y5YzMxNGZjZjg2MzBhMWVmMTI2NDA3ZWYgdGxlZS1hc3Qtb3B0aW1pemUKKzY1MzE1IDY3ZDE3N2FhYjhhN2M1ZGIwM2EyYWUwNTVlODMyMGM5OTEwOWIzMDEgbGVnYWN5LXRydW5rCis2NTMxOCA4YTEzMzY2M2ViZGUwOWY2OWZiNTNkMmY0YzM4MDU2OWEwMjgxMDFlIGxlZ2FjeS10cnVuaworNjUzMTkgOTE1NDU1M2Y4NzZiYzdjMjU2MDc1MzMzMDEwZTQwODYwOTJmNzdkMyBweTNrCis2NTMyMCAwZmJkZGMwNGFlZTE1OWE0ZmNlMjE2MmJkZGIyMTVjYTY2MjE2YmQ4IGxlZ2FjeS10cnVuaworNjUzMjEgNWRiNDMyODRlYTdhYWMyNmExNDdjNzM4ZTVhMDgwOTg3MzYwMDAyMyBsZWdhY3ktdHJ1bmsKKzY1MzIyIDFlYzM4YjcwN2NkNmIxNDllNTc5ODdmMmNkODNjMzhiYTgyZDRkNjQgcHkzaworNjUzMjMgNmYyMzJmY2ZiNjU3NmM1NWQ0ZmFkNzU0YzU4ZjA5YTg3YmI3MDZmZiBsZWdhY3ktdHJ1bmsKKzY1MzI0IGJlNzUyMWFmODQ1YTBlODRjNmM1MDg5NDE3ZTViMDM2ZmM1MjljNTggcHkzaworNjUzMjYgMzQ3NjAzZjc5NGQxMWI1NGIwOTkzM2IzZDdlOTc2ZDM2ZDZjMTMxZCBsZWdhY3ktdHJ1bmsKKzY1MzI3IDFkZTcxOGEzMTAwNGUxOTY3ZTVjZDUxMzJjZDRlZDZiZDY1NjRkZTEgcHkzaworNjUzMjggNGNlYmI1Yzg0ZDdjZmJhODZmODFmNjA0NzY4NGI4ZTlmNmU4MDRjYyBsZWdhY3ktdHJ1bmsKKzY1MzI5IDAzNzgxOGNhZmMzOTM1OTk2MDZlYTBmOWMxNWVmNTk2MDk5ZjQ4YTUgcHkzaworNjUzMzAgNGMxMWZjM2IzM2EyMzNmYjRjMjZmZjMyM2YyNmM3ZTVjZDkxOTQ1YSBweTNrCis2NTMzMSAzNWIxYTIwNDcwZGIwNzljMDQ1N2M2YTRhYjdkOTczNjcyZTY5ZTEwIHB5M2sKKzY1MzMyIGIzOTAxYzU2NjBmNzFkMGE3MmMwZjE0NTU3MDdiMTRiMDI0NTkxNGIgcHkzaworNjUzMzMgMTg3Mzg4YzExNTA1MGM5OTEwNDA4MTc1ZDJmNWYyMjRhOTE2MGJiMyByZWxlYXNlMjQtbWFpbnQKKzY1MzM0IDBhYWZkMWFlNTEyMDhhMWI2Y2MzMTIwYmVhYWIzYWRkZjU3YzQyM2IgcmVsZWFzZTI1LW1haW50Cis2NTMzNSBjNGQyNGZjOGJhOGEyZWM2NWIyYTQzZDg4YTNiNTJkNTAwZGM0MjIzIGxlZ2FjeS10cnVuaworNjUzMzcgMTNiMmUxMWYzY2Y1YmQ3NDA2ZGFmYTQ4ZGYxZmNiYzM3ZDBkMGQyMiBweTNrCis2NTMzOCBmZWM5ODVjYmY1M2ZhYjA1ODM3OTk1MzcwMDEyNDY0ZDk3MDY5ODQ3IHB5M2sKKzY1MzM5IDQ1NTAxNDRiMTU2MDY2ZmZmYzhmYTZkZTg4NDgwYzMxNTU0OTZmMDAgbGVnYWN5LXRydW5rCis2NTM0MCA1NDI4ZjdmYTE3MWNmMWJhOTYyYzhkOWI2NGQyMjRmM2FiOTM2MTk3IGxlZ2FjeS10cnVuaworNjUzNDEgZGU3NWU3MjgwYjdhYTYxOGNjYTVkYmY3MWJlYzJlMmY5ODA1ZjdiZiBweTNrCis2NTM0MiBhOTRmMTM2YjUyODM4MmMzOTQyODM4NTEzMjNjODU3OGMzMDAyOTBkIGxlZ2FjeS10cnVuaworNjUzNDMgNjMxY2Q5YWU1YzhlMjJlMjNiN2FlMmZmNmVlNTJmYWU1NGQyZjE5NiBweTNrCis2NTM0NCA0ZmVjYzliOTlkOTg1MjJkZjJkZjU2Mzk4N2Y3NzE1YzkyYWZjOWM1IHB5M2sKKzY1MzQ1IGE0NzZlZjVlZWJhZGJlNDI5NzZlMzNlZDg4ZDVhNTU4ZTA2ZDljYTMgcHkzaworNjUzNDYgYzU5ZTkwZDhkMWM3MDgyMWNlMTIyNGU1ZjI1YTc1YWMyNGRiNDliNiBsZWdhY3ktdHJ1bmsKKzY1MzQ3IDNjMTU1ZDc4MTNjYzE3NWNiOTE3OWExYjJmNGJkMTQzNzllZDJkODQgcHkzaworNjUzNDkgYzJiNWEwYWIzMDcwNjM4NmI5ZjNjOTNhODNkZTk0NzRlZTQ2MjZiNiBsZWdhY3ktdHJ1bmsKKzY1MzUwIDcwZDQwZjlhZDFkN2FjZDI3ODRlMzY3NTZjNGI4NjlkYjdjYzMzODEgcHkzaworNjUzNTEgMGQyZDI2ZmZlMjBlYjI0OGFjMzZlMDI4MDE0OWI0OTMxMGY3Zjc5YyBsZWdhY3ktdHJ1bmsKKzY1MzUyIDE0ODAyMGI1YzUzMTJlMzk4MDNhMDFmYmExNjdjNDU0OGRmNGQzMGMgcHkzaworNjUzNTMgMTE0MDc3NGY2OWE1NzJjOTVhNDIwMWIxY2E5NDM4ZmI5ZGM0NWY4YyBsZWdhY3ktdHJ1bmsKKzY1MzU0IGYxZmM3ZDkzNTA5ZDNmZWQyMTkwMTFhZjU0OWE4NGEwZmU1YzNiNWIgcHkzaworNjUzNTUgNWQyY2Q5NmExOTZiZmQyMmE0MzgzYzA1NjhjYWMyYzMxYjc3MTg1MyBsZWdhY3ktdHJ1bmsKKzY1MzY1IGYxMjFhOTYzYWI2OTRkYmJmMzc1OGNiZGFmZjQ2YWIyZWMzMTA0OTggcHkzaworNjUzNjYgZWZmNGM5NGMwMmNkMWUxMmY4OGIwNTFiNDVkNzM4MGQwNjgzOWYyZiBsZWdhY3ktdHJ1bmsKKzY1MzY3IGMwZGYxYzY0NzdiYjkyNzdhZjM0OTI5ODgyNmEyOTI1YTZhNDA5OTUgcHkzaworNjUzNjggOTViYzBjZjMxMjAzY2Y4NzcyYjczN2QyMDFlY2Y4ZDE4NDExYjM5MyBsZWdhY3ktdHJ1bmsKKzY1MzY5IGNjMzcxNTcwZTE0MTMyM2ZhMDQ3ZDM4ZTcyZTI3NjUwNDIxNmM2ZTEgcHkzaworNjUzNzAgMTM4MTc3NDJhNzgxMGJhMTQzNmQ5YzgwM2M3NjQzZTY4Yzg1OWExMSBweTNrCis2NTM3MSAxOWI2YzYzNWY1YzFkMzMwMGU2OTEzODM1N2E5OGZhYjM2YWY4ZjQwIHB5M2sKKzY1Mzc2IDE1MjJmM2Q1YmU2ZTdhOTQ2OTczNDNhNTEyZWY4YjNjNzQwMTNkY2IgbGVnYWN5LXRydW5rCis2NTM3OCBiOGE4ZDExMzA3NmZiOTQ1ODRmOTE5YTk1MWM1ZDMzZTc0OGJhMTA2IGxlZ2FjeS10cnVuaworNjUzNzkgNGI3MmM3ZjYzMDc3NDVmNzg4NmJjZjNlZmNhOTlkODg3NzMyMjI5OCBsZWdhY3ktdHJ1bmsKKzY1MzgxIDEzZWJiNGI1ZDg5YWE4OWEwNjYxODZjYmQxNGM3N2RkNTUxN2Q5MmYgcHkzaworNjUzODIgNDViY2Q5NmU1NmQxZDQyMWZhZTc2YzZjNGEzMjdjN2Q4NjhlNDAyYyBsZWdhY3ktdHJ1bmsKKzY1MzgzIDBhZmYzYmYwYTM0MjZmMTI0NDE5Yjg0MDdjYWM4ODY0ZmJhMWI1MzQgbGVnYWN5LXRydW5rCis2NTM4NCA2OTIyZjg0YTcxNThmOWZjOTE1OGM0ZDc0ZDJmNGIyYTdkZjcxMzNkIHB5M2sKKzY1Mzg1IDZiN2M2MTAyN2ViMDRmYTM3MThlODdkYjY3OWNhZTU5ZmRlZDEzNzggbGVnYWN5LXRydW5rCis2NTM4NiA1Mjc5ZDc5NjEwOTM3YTViNGM0NzUwMTE5NzgxM2JlOTQzZjdkM2JiIGxlZ2FjeS10cnVuaworNjUzODcgNGIxYmE1MGQzYmRmN2FkZTI1NWJjNGRmNzkyNTUyNzkyOTExYTIzNCBsZWdhY3ktdHJ1bmsKKzY1Mzg4IDE2NjBiMzM1MzgyMTAyZGM2Y2IzOTA1MTcyMTUwYWE0ZTU3Mjc4MDMgcHkzaworNjUzODkgZjhkMmEzMTg1ZDlhYWZmM2MyZmExMmI4Nzk3ZGIyNGM3MjliYjRjNyBweTNrCis2NTM5MCA0ZjQ2ZjNmNzIzMWJmZjg5YzM5ODI5ZDhkN2NkNTkzNDM5OTZlMmQ3IHB5M2sKKzY1MzkxIGQyMWMwYTJiNmIxMWE0ZTlmNjliNDMyZDhjNWJiZWZkOTgzMTNlZTQgbGVnYWN5LXRydW5rCis2NTM5MiAwMDE4YjE4ZjVmNDY0MGE3Mjg3NTVlNzU3NzU1M2U5ZmUxNDAwZWViIHB5M2sKKzY1MzkzIGYwYmQzN2VhNjk0MDVjYjQzNWVlMWNhMWJiZWVlMzNkY2ExNjRlZWIgbGVnYWN5LXRydW5rCis2NTM5NCBiODk0NWQ4ZjAwZWEyNTMwM2Y4N2FkYWI0ZGJmM2NmNDY0YWU3MDEzIHB5M2sKKzY1Mzk1IGE3YmY1MDNjODU3ZTljN2VmMjNhZmQ4YjcxYzUxZDE3ZGM2MjdjNDUgbGVnYWN5LXRydW5rCis2NTM5NiBlODc5NmI1NWY4MWIwOGQwNWYyZjcyYzYxNGY4MWJhMjVmNDhjMDM3IHB5M2sKKzY1Mzk5IGJhODRjMWUzZGQ2MGNlZmIzY2E3NjFmMmIxYjFjODc3MGQ2NzgyYTggbGVnYWN5LXRydW5rCis2NTQwMCA0YTRjMjBhMjE2N2JiMTgzZTU3YTg0ZTYxYzU5MWM1MDljOTliODZkIHJlbGVhc2UyNS1tYWludAorNjU0MDEgZDU4N2FhNWU4MjRkNjUxOWJjZGE1YjNhY2M0ZjA5ZmRiMGI1YWVmMyBweTNrCis2NTQwMiBmZWRkYWYyMWMyYTQ5ZjdkZjk0Nzc1ZTZmZWNlZGNmMzdkMGE3N2QzIGxlZ2FjeS10cnVuaworNjU0MDMgNzQ3NWIwZmNjNWZmMmJjM2RlMzBlNTM3N2M3MjVmMGJhYjU0ZTI3MyBweTNrCis2NTQwNCA2NTQ0MjU0NjE3M2VhNDI4MjAyNDE3ZTg0ZGM2NjliMWU0MmNkY2QwIHB5M2sKKzY1NDEyIDc2M2ZmMWJhOTFjN2YyZDNlNTliMzMxOWRkOGIwN2M5NzE3YzcyOGYgcHkzaworNjU0MjAgYmY1MDA4NWZiY2QzMmQxYzQyZDQzZTZlYzM3NjkwNjMxZTA0MGFjMyBweTNrCis2NTQyMiA5NzYwN2ZjYjdiMjYxOTYxZWI2NzkzNjFjYzU3MTk5NTVlY2YwYTRhIGxlZ2FjeS10cnVuaworNjU0MjMgY2M0M2I5OThmNWI1MTgzY2IxYjEyMjg0YjVjOGFkYTVjMTM0NTcxZCBsZWdhY3ktdHJ1bmsKKzY1NDI0IDQzN2RkYmJjZGQyOTRiNzM1ZTY5MGE0NTAyZjQzY2NhMjBmNDkwYzggcHkzaworNjU0MjUgNGU2YTBhZTFhOGU3YWFlOTY4NDc0NGY2YTJiMjQxMDA5MDNhYWNkMCBsZWdhY3ktdHJ1bmsKKzY1NDI2IDc0Y2M5MzJhZDhkYjY4NmI3YjBkMDhhN2EzZWI5YjFlNjM0ZDIyN2EgcHkzaworNjU0MzAgOGYzMmIxMzI2OWI0YjFhZTk0N2RmZTgwNTZlOWZiZTAyZDhkOGY5ZCBsZWdhY3ktdHJ1bmsKKzY1NDMxIGJkNTFjZjcxNzYyNDViMGVlYmY2ZGRkNjgxOGY2ZjUzYmIwM2Q5NDcgcHkzaworNjU0MzIgZTAwN2FmNzlmNjdjNmE1MTcwYTViMjZmOTkxNjg2ZDlmNWNlMzliZSBweTNrCis2NTQzMyAxZGI0ODM5NDgxMDY3ODkzNjM4MWNhY2FmMzJhMzM4ZTE2ZDQzNWEyIHB5M2sKKzY1NDM3IDNlNDRkZWJjMmJjOTBhNzZiMWY2MTgzZGZlOTI0MWZjMTk1MThiMmQgbGVnYWN5LXRydW5rCis2NTQzOCBkZjViMzk0ZDFlMjQzOTI5NWE2MjA5MGU2OTIzNjU5NGY1NmUxMjAxIGxlZ2FjeS10cnVuaworNjU0MzkgZTkzNDk1NmRkY2UzNzJjMWUyMWQ3NTdjYzQwZGQwNjBiMDE4M2QxOCBweTNrCis2NTQ0MCA0ZTQ1ZDBjZmFmNzFiNTJiZDEzOTFjNjI5MGRlMTNjZmZmYmFiMzI2IGxlZ2FjeS10cnVuaworNjU0NDEgOGM0OWEzZTkwZjQwYTg0ZmI4MzQ5M2RjMzVkMTk4NmUyOWI2YTI2OCBweTNrCis2NTQ0MiAxODAzZGU1YWUwZGMzNzBkZjIzNzIyNzZkNWI4ZmZjNDZhMDc3ZTQ2IGxlZ2FjeS10cnVuaworNjU0NDMgMzNkYWFlNjMzOWVlM2EyNzBhMjkyZGI2N2M1MTY3MjNjMDMzYTFlZiBweTNrCis2NTQ0NCA5ODZjYmRhZjE1NGZjMjczYjM3MmJlOTg2YzQ5MWE0NjdmNDEzNjQxIGxlZ2FjeS10cnVuaworNjU0NDUgNWYzZWY2NDAwYTk2NzYyZTYwYzI3ZWQ1MWEwNTVlNmQ3OTExZGM3ZiBweTNrCis2NTQ0NiAyNTEyODI1ODAwNDFhMjgwNjg3Mjg3ZDg0YTk5YmZmYzNmMjNmYjM0IGxlZ2FjeS10cnVuaworNjU0NDcgMGM2YjZiZDg1YWNhZDM3MzcxYjk5ZmFhM2M4MWZjZWQ5Nzg0ODc1ZiBweTNrCis2NTQ0OSAxZjIyZGU5M2RhZjhlMzNjZmQwMGM3YWUwZTUzMzA1N2FmNzhlOGY4IGxlZ2FjeS10cnVuaworNjU0NTAgODJkNGQ2ZGVlMDM0NzVlM2U2YWZhYTRiMDM4N2I4MzVjZGY2MWVkZSBweTNrCis2NTQ1MSBkNGRiNWRlZDc2Y2UxZmMxOGM0ZGNjMTQ2NjE2NGQ4YTQ0OTAzMWY1IGxlZ2FjeS10cnVuaworNjU0NTIgZDdiYWU3YmQzOWQ2ZjIzMDYyMTUwMGQ3MmQ0ZTg2YTc5YjM0ODA0NSBweTNrCis2NTQ1MyAyZThjZGVlMzRkOTc3ZWVhYjhhMzlhM2E4MjliNTBhMmYwZDI4YmUzIGxlZ2FjeS10cnVuaworNjU0NTQgZTM2MjBiNzNhN2QxNGY3MzNhYzUyYzQ2MTk4Yjc1MjI4M2Q1ZWY0YSBweTNrCis2NTQ1NSAzNWU3ZGM5NzdhNjNjMzY0NDczZjJjNDFhODY3ZjgwY2UyMWRkNzg2IGxlZ2FjeS10cnVuaworNjU0NTYgODk3MmNlNTYyNGI0ZDkxNjA3Y2FmZWIyMDIzNTI3OWRmMDk2OTdjNyBweTNrCis2NTQ1NyBjNzdhYzhiZGQzZmViNGM3Y2RhOTQ2ZTQ5MTM2MzU3YzBhNDFmMjQxIGxlZ2FjeS10cnVuaworNjU0NTggNDMyMmFmMWI2ZDNkNmJkNWVlYjAxNjZlNmJkNTgzZGQxN2ZjZTYwNCBweTNrCis2NTQ1OSAyODhjYTFjNzI4ODgwOTRiNTkzMmJmYjI3NzM3NDg0OTc1YmYxNWE5IGxlZ2FjeS10cnVuaworNjU0NjAgZGM4NTBkYTA0YmQ1NDcyMTZlMzE0NzNmNjg1MDFmYWUyMTJjNjJlZiByZWxlYXNlMjUtbWFpbnQKKzY1NDYxIDE1MDhjZWEyYzZiNTZlNTgwMjIyZjgyOWZiNTY0MzA4MzQyMTQwMzYgcmVsZWFzZTI1LW1haW50Cis2NTQ2MiA1NmIzYjJjY2ZkNjg4ZDhhNTRlNTEyOThkMGFjYmE1ZjYwMmVhNTRhIGxlZ2FjeS10cnVuaworNjU0NjMgNTVlMzI1ODA5NGYwMzJkM2E2MDBiNWI0Y2I3MGRiMDIwM2I4OThlNyBweTNrCis2NTQ2NCBmZGYzYjZmNDk5ZGFlMWVhOTQwMTk5NDkwMTllMzYxYTcwODJhMDJiIGxlZ2FjeS10cnVuaworNjU0NjUgZGFkYTk0YTUzMjlmMmY4MjhkM2U3OTZjMzg5YzFjYjU1MjU2NGMyNCBweTNrCis2NTQ2NiAxYzI0YTA5YWNiOTdjOTQwOGY5NzY2YzcwOGU4NWZjMmYxMTg0MjhkIHJlbGVhc2UyNS1tYWludAorNjU0NjcgMjFmMTQ2Mzg3YTYzY2ZiNWM5Mjg4ZDdiYjVjOGIzMjJiZGJlMGNlYyBsZWdhY3ktdHJ1bmsKKzY1NDY4IDlkY2IxZDI4ZWZiYjhmMzlmM2E1NGQyNDYxMTAyOGE3NWY2OTIwN2MgcHkzaworNjU0NjkgOGJkNTY1MDE5M2M2MDg0ZTMzNjg1MDBhZjQ0MWM4NzgzMjM3OWE3YyBsZWdhY3ktdHJ1bmsKKzY1NDcyIDQwYmUzN2U2OTE1OGY2ZmNmNmY5MjhiZjg4NDNlNWQyN2FkM2Q5NTcgbGVnYWN5LXRydW5rCis2NTQ3NSA2NDFlZGVlNGZjYjE0ZjFkNjNjZTNiZTNjZGJmMjFmMTZjMTEyYWQ3IHJlbGVhc2UyNS1tYWludAorNjU0NzYgYzIzNWJhNzBlNTk0YjE0MDY3OGI1NWQ0OTM4ZmI0MThhYzQzNTg5YSBsZWdhY3ktdHJ1bmsKKzY1NDc3IGRmMGFjMDZjZGRjYzNlOGI1YzEwYTZkZGMwYWY5YWMyMTIxYjI4ZmQgbGVnYWN5LXRydW5rCis2NTQ3OCA1MTM0MDZhMzdlMzg1MzZmZWZmNWRlNDM5NjY0NjRmNDdjMWYzNDE3IHB5M2sKKzY1NDc5IGJjZjQwYzgxODkxZTEwZjlkMGUzODE1NmFhN2M3ZjgyZmVkZmJlNmMgcHkzaworNjU0ODAgYWI0YzljMzg0ZDMxODgwMjM3NGYwOTAxZGEyMTQ1Y2E0N2NmY2RhZCBsZWdhY3ktdHJ1bmsKKzY1NDgxIGE4YTgyMzJjYjU0MTlhMmJiZGQ1ODUzMDRhMzcwMzFmYmI2NzE4OWIgbGVnYWN5LXRydW5rCis2NTQ4MiA1OWY0Zjk5NDczMGZhNzlhODE5Yjg3MjA4NTVmZDNjNzRhYzBiYWUxIHB5M2sKKzY1NDg3IDQ5NDExZDdkYzI1NzQ3M2IwOGRkNjA0Mzc1ZTg4OGNkZjQyMDExYjUgbGVnYWN5LXRydW5rCis2NTQ4OCBlYTgzZmVlNTc0MjIzMGI5NjY0MGFjZjBiYjBiOGVhMTdkZmU3YWQzIGxlZ2FjeS10cnVuaworNjU0OTAgNmM4OGRlM2M0ZDRkZDg1MmE2YzRhNTcyMDYwODk0MmRlMGU1MzU3ZCBweTNrCis2NTUwMiAyMTc0NTU2M2U2ODBlMGQ0Y2ZmMWRhM2M5ZjVjMzM1NjE5OWI5MjczIGxlZ2FjeS10cnVuaworNjU1MDYgNmJjM2NmZTA5OGNlNDU3OGZiMGU3MjJkMjQ5ZGU5YmU3NjNiMDY2MiBsZWdhY3ktdHJ1bmsKKzY1NTA3IDUxZjVjOGU4ODVjYThjNDk4M2YxM2IwNDU5YzM4YWU4MTQzNjQyOTAgcHkzaworNjU1MDggOTNiY2M5MjAxZWUwN2Y3MzcyNGQ1NzBiZDFjMzYzNjg5ZjJkMTg5NSBsZWdhY3ktdHJ1bmsKKzY1NTA5IGZhY2Q4MTk3MjUyM2I5NjM4ZTljMzg5M2MyZGYwNzc4NjMyNzVjN2MgcHkzaworNjU1MTAgNGQ4NDI3ZDI1Zjg0ZTFjYzk3ZDYwMzBlNGI2NWJhOWI0NmVlNjY3MSBsZWdhY3ktdHJ1bmsKKzY1NTExIGNmZjgyYjk5MGEyMjk4YTI5MmNlNTAxMDc4M2U2NDI4NzQ4MzQyNDcgcHkzaworNjU1MTIgNDdjZDQ1MTY4NjNlZWE3YmJkZDY0YWZmZmQ2ZTQyYzdhY2Q3ODIzZSBsZWdhY3ktdHJ1bmsKKzY1NTEzIGU5YjZlNDQ4ODg3MWU5ZDJkMWNjNTRhYzA0MmU1ZmQwNjliNDJlYTggcHkzaworNjU1MTQgOTc5ZjBhODk5MDNmMjkzNTgyYjNlY2VlOGM2M2YyNzIyYjFiNzFmOCBsZWdhY3ktdHJ1bmsKKzY1NTE1IDU3YjhjNzc4ZGEwNzM0YzMxOTBkYWJmODMyMjA5MTQzMDM3ODdlNGQgcHkzaworNjU1MTYgZjc4NDZhNzFlMzhhMjExMDg2Mjg2MzYxNDMwMjhiOGYyNjNjMjRhMyBsZWdhY3ktdHJ1bmsKKzY1NTE3IDNkMDgzZTY5MjY1ZWYwY2MyNzUwYTJmNzc3MTI5YWNkYzY1ZTMxNzEgcHkzaworNjU1MTggNmM2YTAzMDU2N2RkMDYzMTJhYmU0NmRjZmNjZTFkMzNjOTQ3YzkyNyBsZWdhY3ktdHJ1bmsKKzY1NTE5IGNmMzMxZmVmMzI5M2M3MjAwZTk3YWZhNjg1MDk2YWZlOTBhZGQwYTUgbGVnYWN5LXRydW5rCis2NTUyMCA1OTRjOTljMGYwNzg0YTJmNjA0MDAyZWYxZWEzMjE2ZTBmYTMxNDkwIHB5M2sKKzY1NTIyIGRmMjc3ZTY0MmU1ODAwYjM5NGUyNjg4Y2Q2ZjdkMmRiODllMzE5MjkgbGVnYWN5LXRydW5rCis2NTUyMyAwZGEzMDJmN2ZlOTQzMmM3MzNkOTFmYjA4YTA0YTM5MzdmNWZkZTA5IHB5M2sKKzY1NTI0IDM4MWE3MWRmMDYwZTRmNTkzMTkzNTZlYTdjNmQ3ZjY4MTdhNzdlMjAgbGVnYWN5LXRydW5rCis2NTUyNSBmZmMxZDhmOGM1YWQwMjViNmUyOWQwZGI4ZmQ4NmNjMjBmMmMwMjZlIHB5M2sKKzY1NTI4IDlmYWE4NzkwMjExNDM0ZjQ1NDY1NGMwYmI2NmM5MTBlMDc2NmUyYzMgbGVnYWN5LXRydW5rCis2NTUzNiA2OGRmODQyZDYzMzA4NGZkZDVjOWU2YmZjZTU1YzJmMjE3M2U1ODRiIGxlZ2FjeS10cnVuaworNjU1MzkgNWI3NzRmZTA0YzdlMTc3ZTNkOGIzYjIzMTVlMGM4MjBjZDI4MGJiMSBsZWdhY3ktdHJ1bmsKKzY1NTQzIGI2NTRkMTRjYjlkOWVlMGQ0N2NmMjNlNmMxNjRjOGYwY2VhZTk4NzIgbGVnYWN5LXRydW5rCis2NTU0NCBlNWZjM2UxOThkZGFjMWM3Yzc5YzU3YWU5OWEwN2VhYzhjM2NiMmJkIGxlZ2FjeS10cnVuaworNjU1NDUgMTYzNTg5MWIxOGU4MWFkNmZjOTE3YzZhNDQwZTBiNmFlZGM3ZDI0OCBweTNrCis2NTU1OCAyMzY2MzczOTA0NTdlNmIzMTgxZWE2YjYyYjc2NWY0OGFhOTJjODNhIGxlZ2FjeS10cnVuaworNjU1NTkgNzllYTM0MGQxYTU5ZGFmZTBjNWQ2NDE5ZGFlMGRlMWRlOTViODFlNyBweTNrCis2NTU2MCA4M2E3MjE5MzY0YjEzNjcxODgzZDNlZjk0YTAyYzdhMGE1ZTExODA2IHB5M2sKKzY1NTYxIDU0OTEwOGU5YTBhMzIyMzE3YjUyODkyZDM0MjlhMDBjZjVhMDU0ODUgbGVnYWN5LXRydW5rCis2NTU2MiA5Y2NjMTY4MmUxOWI4Nzg5ZjQwMmQ3N2FiMWZlYjYwODA1ZTNkNDgyIGxlZ2FjeS10cnVuaworNjU1NjMgNTNhZGU5ZTY4YjU2MmUzM2I0ZTU4ZTM3NTMyZGFkZGI0ZDdhMTZkZCBsZWdhY3ktdHJ1bmsKKzY1NTY0IDEyMzczZmE2ODA0ZTRiOWY2MWUwYzM1NjVlOTdmYTFjOGViMjQzMTggcHkzaworNjU1NjUgMDNkYWUwMzdiMmI3Mjc1NTVkMjhkYzBkNmY3NmNmYTk2OTMzYzMxMCBsZWdhY3ktdHJ1bmsKKzY1NTc4IGYxZmM5NDc3MjJmMjlhNDNjYjI5N2Q0OTE4NjEzYzJmZTdlNmQ5MmIgbGVnYWN5LXRydW5rCis2NTU4MCAwNDJkMTZhMDUwMTY5MTFiZjA5YmNjODgxN2M4YjJhY2U5MWNmYTdiIHB5M2sKKzY1NTgxIGM4YzllNzhmYzA4MjM4MDFhNzM3YmYyY2IwYzAzZDUyMDAxOTMxOGYgbGVnYWN5LXRydW5rCis2NTU4MiA4NWI2N2ZiNTY3MmI5OWYzMTI5ZGUwMzNmMGM2MDFmZWI2ZDY1ZmE3IHB5M2sKKzY1NTgzIGNmYWQzZjdmNWU2MzhlYzFkZDg0NzE2NGYxYjc5NTA3YzYzMDdlN2YgcHkzaworNjU1ODQgMGJmNmM0MmFiNGU0MjM4NTZiODk0NjM4ZWFjOTMxNzhjZDNhOTc2YyBsZWdhY3ktdHJ1bmsKKzY1NTg1IDJiM2Q0MmVmZmU1YmUxNjlhNzlkOTE1OWJmNjc0MGIxNDVkMmE2OGYgcHkzaworNjU1ODYgNjQxNmU2MDQ0YTMwMTY3NmYwMmE2YTViOTJlZmRiODlmMjY5OGZmMiBsZWdhY3ktdHJ1bmsKKzY1NTg3IGE2ZDZjMmZhZDIyMDBlY2Y5ZjI2ODQzNzg1MDIzODk3ZTEyMjA1MjQgcHkzaworNjU1ODggNjU5MDFmZmZmYzZhYmU1YTMwYmRkMWNkMDMxMDhlOWE3NWJjNDMwZCBsZWdhY3ktdHJ1bmsKKzY1NTg5IDQ4N2UwZDlhMzgxYTgwMDAwNmFmNzY3NDI4MTBjMTk2NDFkZWU4NDQgcHkzaworNjU1OTEgZTZmZTgzYzJlMjYyMDZmNGFhZTYyYzIzMzZlNTlmZGQ4NGNlNGQ5NiBsZWdhY3ktdHJ1bmsKKzY1NTkyIGIyYzUwNWQ0YTIwM2Q4MmQ4MDJlNWQ4NDc0ZWQ2MmUzMzNkOTM0NDMgcHkzaworNjU1OTMgZmQ3YjkzYTAxYzA0YjdlNGVkMWQ5NzM1ZGU0YWYxZjc3NjhhMTk2OSBweTNrCis2NTU5NCA5NDliOWEyYjk4Njc2MTA5NjI3MGUxMGY1ZTZhYTAyZDQzNWIzNzg2IHB5M2sKKzY1NTk1IGUyYzcwNmY5OTA2YzM4NWI5NzkzNmVhMDU5NmM4NTI2OTJmYTI4ZmUgcHkzaworNjU2MDEgNzIyNGZmZjk4ODIzYmM5ODMwMDc5OWIzY2Y5Yzc2NmU3NmQ2NTY1ZCBsZWdhY3ktdHJ1bmsKKzY1NjA1IDQ3OTY3NjkwYjU4NTVlYzljYTMzMWFlYjIzMWVjZTQxOGE3NWExM2UgbGVnYWN5LXRydW5rCis2NTYwNiBhYWQ1ODA5ZmM0MTk1NWIxNDExZGE3NzcwZDhmNjc4MGI2NWY4NWU3IGxlZ2FjeS10cnVuaworNjU2MDcgZWUwYTUyYzk4MmU1ZjZhYTQ1ZGVmMDhhM2NjZThiYjYwZjBmZTJmZiBweTNrCis2NTYwOCA2M2FlYTk5Yzk3MWE2N2Q4ZWMwYmQ5Y2Y5ZDlkZjY3YzcxMDJiZGZjIGxlZ2FjeS10cnVuaworNjU2MDkgZDYxNWFhOWZkZjM2MTA0OGRlMmRiMTRmZjMwMzI5N2IwZDJkN2E3YyBsZWdhY3ktdHJ1bmsKKzY1NjEwIDZkOGQ5MjBjZDkzMjQwYTQ3Y2QwYjIyNmRiODIxNDc3M2RiYzhlNmEgbGVnYWN5LXRydW5rCis2NTYxMSAxYTExNzE3YTE1NGI0ZGYyMzA1ZGMzYjRmOWJiZWI0NGVmM2E4YjUyIHB5M2sKKzY1NjEyIGQzNTI5NjQ0YzY4MjNlYzRmYWM3ZDFiOGExNzQ5MGUyODg3ODY2MGUgcHkzaworNjU2MTMgMzg4YTRiZTdkNjc5YTE1ZjFmMjU4NmQ4MDFjZjgzMTY1MmE5ZjFlZCBsZWdhY3ktdHJ1bmsKKzY1NjE0IDk5ZjliZWE5MDliNTU5YTcyZjQ0Y2U0OTExNzRkYmQ4NWYxNDA2YWUgcHkzaworNjU2MTUgYjNhYmZmMTdlMmRkMTc0ZDQ3ZjUwOWEzODU1YzU4MTA1ZGFjMDExMSBsZWdhY3ktdHJ1bmsKKzY1NjE2IGFjYjk4ZGJiMWIwNGZlZTM1MDhkMzFiZDBjNjViYzMyMTEwNmRjYmUgcHkzaworNjU2MTcgYmM2YTM1NzJiYzg5NmQzYjE3ZmU0YzllZWI2NDc2NzE0OTY3Njk3MyBsZWdhY3ktdHJ1bmsKKzY1NjE4IDlmODQzMzk2ZGY4OThkYWViMzYwMTJiMjI5OGE5ZWVlZTI0ZDBiNzQgcHkzaworNjU2MTkgMzAxMzViNmUzOGZkYWY3MzIyMjJlMDkyNGIyMzk4YTA0YjViN2U1NiBsZWdhY3ktdHJ1bmsKKzY1NjIwIDMzY2Q2YzVkMWEwNGIxZjhkMzgxOTEyZDRhMWNkZTg2ZDkwM2FhZDkgcHkzaworNjU2MjIgNWExNWE3MDQ0ZTdkOGQ2YmE4YzJhOWMzMDNhMDcxNjI4Y2FmNGYxZiBsZWdhY3ktdHJ1bmsKKzY1NjI0IGFjODEwMzM0MWI4MGU5MDIwNWNkZmI0YjA2Y2RkMWFiOTU3Nzg0MWMgcmVsZWFzZTI1LW1haW50Cis2NTYyNiAwNTRkYzExMWIxZDljMTFhNzBkNzNiZTYzZDc2M2Q2ZjM3YTgxYWNmIHB5M2sKKzY1NjI3IDZlNGY0N2E2OWVmYTc1NDIyNzRlZWFiNjQyYWNiYzk3YWVhNGEwMDggcHkzaworNjU2MzcgNjk0ODE0ZDdiMTA0M2MxMzUwZWI0OGUzY2EzZWViMTcxYjYwMWJmNyBsZWdhY3ktdHJ1bmsKKzY1NjM4IDBiNjcxYmNlNjk0ZTQ4OTc4Mjk2NDFhZWVkNjBlNDhmZWU0ZTcwZGQgcmVsZWFzZTI1LW1haW50Cis2NTYzOSBjZTU5ZGFjM2ZjYTI0Y2I2YTNkZWJjODgzZDJhN2E0YzViZDM1MGE1IGxlZ2FjeS10cnVuaworNjU2NDEgY2Y2OTg1Y2I2ZDE1NmRkYmFjYjAxOGQ5YTA3ZWI3OGUxZDRjMDI4MSBsZWdhY3ktdHJ1bmsKKzY1NjQyIDc1MjdkYTJiMDVlOGE5ODgzNmQzOWI3MDI5OTE3ODc0MmU4OTYzY2MgbGVnYWN5LXRydW5rCis2NTY0MyBkMjFkOGNiZTZiZDRkZDc0MGFlMzY5MmNiNzVhYmM1YzU2YjZmMzE1IHB5M2sKKzY1NjQ0IDBhYWU3MmY4ZGRhOTA0OTkzZDdlOGJmY2MxNjQxNjNlMmViNDhiYmUgbGVnYWN5LXRydW5rCis2NTY0NSAyOWQ5MzZhNGY4ODU4ODZmZDA3NWUwNDY2YTY5MzkwMTNhZGVkNzgzIGxlZ2FjeS10cnVuaworNjU2NDcgZWJlYWE2NTM2ZDMyOGEzMTg4M2U0MzM3OTVjZjM3N2RlYTY3NWZjNCBweTNrCis2NTY0OCA3Nzc5YWYzODhhZWMxYTNlMDAyMzIyNTIzN2Q5ZTBkMWNmNTViZWI0IHB5M2sKKzY1NjQ5IGVmNDFkYWUzMGYzNWQzNmVkNDdlOTJkZmRlODkzZjMxMTQzMDQzY2YgcmVsZWFzZTI1LW1haW50Cis2NTY1MCBlZWZlNDQ1MGY3NzNmMmNmYTFmNDVkNDk0Mzk0MTcyMjcyYTc2YWY2IHJlbGVhc2UyNS1tYWludAorNjU2NTEgZGQ3ZTJkNjhiNmRkZGYxNjA4OTk2NzQyOThhZTgwN2NiOWEyNDNiMSByZWxlYXNlMjUtbWFpbnQKKzY1NjUyIGEzMzkzZTU4MWIxNWI4NGY5MTljZTI4ZWYxYWIxOGI3NzU4NzQwYjcgbGVnYWN5LXRydW5rCis2NTY1MyBiMjE5ZDU1NDA0ZTc2YWE2NjRlMmI5ODczNzA1ODEzMWYwY2M4MGZlIGxlZ2FjeS10cnVuaworNjU2NTQgYjhjNGJmMzkzNzk0ZTliMWU3NzM3ODhiMDdiOTQzYTk0N2E5Njc1ZiBsZWdhY3ktdHJ1bmsKKzY1NjU1IDc5ZmEzZTBjMDk4ODlhYWNiYWEwMDgyYjYyZDc2NDRmNzljMmRlODEgbGVnYWN5LXRydW5rCis2NTY1NiAzYzhlZjM0NjY5MjM3MTIzOGQxMDAyNTU2YWI1MjA5ZmJiNGJjZjYzIHB5M2sKKzY1NjU3IDcwMTUxNjU1NTM5MzczNmY5YzY5OWVjM2U2Y2U4MjM4ZWRhOWU3YWUgcHkzaworNjU2NTggZjA0NzI1MzNiZmM5ODkwNjM1Zjg5Mjg0NDc3N2Q3M2I4NzJiNTJmMyBsZWdhY3ktdHJ1bmsKKzY1NjU5IDc5YzI5MTZmZTU4ZTQxZTcxYzI5Nzg1Njg1YzZhOWQ4YTVjZDFmMzIgbGVnYWN5LXRydW5rCis2NTY2MSBjZDNiMGI3ZmQ4ZTFiN2UyZTNjYjNlZjFjZmVjNzAyYTRkZjJkNmY0IHB5M2sKKzY1NjYyIDEzMWY4NWJiNjkzMDBjNDhlNmQ5ZjZkYTI3NTdjMjIxNGY4YTBjOTUgcmVsZWFzZTI1LW1haW50Cis2NTY2MyBlY2NkOTQyOTcwMmU0ZjU3M2JkZjQ0MmI2ZmJiYmE4ZTljNGU5NGE1IGxlZ2FjeS10cnVuaworNjU2NjQgZDc4ZTI0YjEyZjYzMzZiODdhNTE2YjUyZGIwM2RkMDQyYmQwZmVlOCBweTNrCis2NTY2NSA1MGZmZmM4MDA4NDU3YTliZTBlY2VmODY3YWFlMTIxNDNmNDFlNTE5IGxlZ2FjeS10cnVuaworNjU2NjYgOWQ3OGZkNjBiZjJhNWVhY2Q3NDVhZTM0YWZjODQ2MTY4Y2E4Y2E2MiBweTNrCis2NTY2NyAwNjAwZmNlNjc4MzUyMjg4Y2RiNzc4NzY0MzcyODQ2ZTRkZTcyNTE1IGxlZ2FjeS10cnVuaworNjU2NjggNGYxZmU4ZjE2ZWY5M2Q2M2Y4ZjM4MTdhMmU2OWNlNWZhMDVhZmJhMyBsZWdhY3ktdHJ1bmsKKzY1NjY5IDA0NTU2ZTJhNzk4NGY5NDE4MTY5ZGExNTZjNDk4MWQ0YjZmOTU3ZjggcHkzaworNjU2NzAgZjYwMjZhMzc5OGQ0NDAxM2NjMDc0ZmJkNGIxMWUwMjMxZGI3ZWQzNSBweTNrCis2NTY3MSA2YjE5MDhlYTZiNTM1NDRmNjNkOWVhMWQ1ZWEwYzhkYmM1MmE0YTllIHB5M2sKKzY1NjcyIDcwZjI3OTVkNjkwMjgyNjE1MmU5MGI4ZmI1OWVhZTUyOTc3M2FjOWEgbGVnYWN5LXRydW5rCis2NTY3MyA2MWQ1MGRhNTgxNmEzODcyMGFiNDQ5MmUwMjcwMmNlYTQxNDlhY2YwIHB5M2sKKzY1Njc0IGYxMjYwZjQzMTFlZTc4Yzg1MTMyOTNjMmNhZDQzMWMyYzM4NTQ2NjUgcHkzaworNjU2NzYgYWRlMzNlMTNlYzY5MzA2NmM2ZGQ2N2Y5MWE1MmQ1MWVlOTc4ZjRjYSBweTNrCis2NTY3NyBlODUwOWFjNTAxZjMyNGQ4NTc3NWU0MDRmMDFiZDJjZjQyMzFhZWI3IGxlZ2FjeS10cnVuaworNjU2NzggYjc1NjIxYTQyMGVjYjI4ZTkyMzkwMGE0MDcxZTA0ZDE5OTZiZjc5MCBsZWdhY3ktdHJ1bmsKKzY1Njc5IGFmNzM4OGFkMzE2NGViNzRkZGRkOTg1MTBjMzAwZTA1MWQ0NDVlYzggbGVnYWN5LXRydW5rCis2NTY4MCAyOTNkZjgxNTNmNjE4NThlYWNiY2I5YTJjOGM4MDUwNTNlZDhjNjgzIHB5M2sKKzY1NjgxIGY4YTM0NmZjZDA0MTk2MzIxYWM2YjM3MzdjYzlmYjc4NzcxODlhNWUgbGVnYWN5LXRydW5rCis2NTY4MiA2MzNmYjAyNjBhYjMyMjU0NDNmZGVlMmVjYWNmNmY4MDg5YTExNGUzIGxlZ2FjeS10cnVuaworNjU2ODMgMzY1MGIxY2U0YmQ4NDY0MTBkYTY4YmY0Y2Q0MmJhMTdjNGMzZjFmMCBsZWdhY3ktdHJ1bmsKKzY1Njg0IDYwZTBlMDk3NjNhYjYwZDQ0MDZjMGJhOTVlY2M1NzM2Y2I2MTZhNjggbGVnYWN5LXRydW5rCis2NTY4NSAxMzZmNjFiNzRlOGZlOWQxYjYyZmYyZjVhNDc5NDYzMWM4OTBjMmIwIHB5M2sKKzY1Njg2IDY3OTM4NTc1YWZjNmNjNmNlNjg1N2ZjNWQ1ODU2MjFkNzViYzc5MTAgbGVnYWN5LXRydW5rCis2NTY4NyA1NGEyZGI4ZmRjNjI2ZGU5NGUzNGFjZTRjNDBjNzg1MGNlMGMxYWJlIHB5M2sKKzY1Njg4IDBhNDMzNzZiYWE2YmYyYTkwN2YwMmQ2OTdjZmU1YzgwYTk1ZDE2NzQgcHkzaworNjU2ODkgZTk2MWNjMDE0NjE5MTQxZDI5NjIzOGViNTBhYjU0YTRiYTg0MDM3ZSBweTNrCis2NTY5MCBjNmYwZGU1ZjJjNjg1MjNkNmIyMjJkYjY4Y2YxYzc0ZjViY2Q3YzY4IHB5M2sKKzY1NjkxIDkyMzMyODZjN2VkMGRjNWU3MmI4MzhjYmNlNjQwNDBiZmFmZmJjZGYgdGxlZS1hc3Qtb3B0aW1pemUKKzY1NjkyIDFkODE3MWQ2NDQ2M2VkMDI0ZWJjM2I2MWQ0ZGY4OGE2ZDc0NjlkOWYgcHkzaworNjU2OTMgY2RkODk4NDMzZDU4OGUzMGRmNWI5ODZhYTM0NTI3ZjY0NWJhMjgzMyBsZWdhY3ktdHJ1bmsKKzY1Njk0IGMwNTc5ODllODdlYjlkZGVhMTgxNTE5ZmY5OTNhODg5Mzg4N2MyNTAgcHkzaworNjU3MDAgMTgwMDYyZTMzOTU2OTgwZDU1YjYwZjQzYmNiZDA5ZjE5MjMxNDM5MCBsZWdhY3ktdHJ1bmsKKzY1NzAyIDgxNjNkYWVlNzg1ZDQwYTNkN2ZiNTVhZDBkOWZkYjE0MGYxMmE3N2UgbGVnYWN5LXRydW5rCis2NTcwMyBmNjI3ZjgwMjAxZDM5ZmUxNWVmOWIyZWY2ZGYxM2RiYmIwOWVhNjRmIGxlZ2FjeS10cnVuaworNjU3MDQgZTYxZGViNjkwZTcwODQwMmQ0NTJlYTZjZmU1N2UxNGNjMTFlZTE0MSBweTNrCis2NTcwNSBhM2Y5NTBkMTVjMDgzZjU2YWRkMWFmM2RhMDJkYzE0MjlmMDhlODg2IHB5M2sKKzY1NzA2IGMzN2Y0YjAzNjM3ZjIyNjU4MzkzNDkzMmQ4OTQwMmUwNDgwOWQ2ZDQgbGVnYWN5LXRydW5rCis2NTcwNyA3MTAxNDY4NWUwZTVmNWI5OWUzYzcxZDc4ODI5ZmE5NDYxNmRjMDNjIGxlZ2FjeS10cnVuaworNjU3MDkgNzgwZTE3MDM4OTAyOTlhYmFhZTEwNDM2YWIyMDlkNTIwZWViMDVlMyBweTNrCis2NTcxMCAxNzAyODczZjI0OTJmMjMwNTI1YTdmOTA2MWRhYWIwNGZmYmE4OTAxIGxlZ2FjeS10cnVuaworNjU3MTEgYzZkNzhmODY5NDA1ZDc1MTRkNGNhNzJiMTM5ODc5OTRkNWRjOWM0MCBweTNrCis2NTcxMiAxZWQ4NmNlMGJlYjI2NmEyN2Q5ZmNjZTJmNTIxNTZhYjk1OWU4NGRlIHB5M2sKKzY1NzEzIGVhZDM1OGNlNGQ4YWIwOWZmMjczOGJmYThmYWMyMDI2ZTg1Y2Y2YmQgbGVnYWN5LXRydW5rCis2NTcxNCA4Nzg4NjE1MTViMTYwYzlhYmI2N2ZmYjM2Yjc5NDA0MmE0OWFjOGVjIHB5M2sKKzY1NzE1IDlmYjEwZjNkMGY4NzMwOWU5NTQ4Y2UxNDQ2ZWRhOWZhNTU3ZjlhODkgbGVnYWN5LXRydW5rCis2NTcxNiA4OTRiNGFjZmZmZTQwZDBiYjVjZWQ2NzRmYTBhNThjODQ0ZjVjYjkxIGxlZ2FjeS10cnVuaworNjU3MTcgOGMwZjg1MTk2ZTM3YzJlMTFkZGZjMzY3OTI1ZGJlZjRmMzljMDM2ZCBweTNrCis2NTcxOSA5MThhOTE4YTk5OTZjNjA5MDcwZWQwOWQ0M2E5MmE3ZmVlMTNhZmQxIGxlZ2FjeS10cnVuaworNjU3MjAgYjk3M2ZjY2QwMmE1YjkwNzgxZWMyNzM0NDhiZTYwOWIzMzBhNzY0MiBweTNrCis2NTcyMSBjYTRjNTEzNTg2Mjk3ODhjMTdkYTE1MGE4ODJjZjIwYzk0Mjk3ZDgyIGxlZ2FjeS10cnVuaworNjU3MjIgMWQ2NWM4ZjVjMDhlMTM4MzU3ZGRhMWMyNDlmMGFhMGEzMjY0YWMwNyBweTNrCis2NTcyMyA1ZGY1NmNkNTUxOWE1Njk0N2QwNGNmOGViZDI3NTcwMmFjOTAyYTg1IHB5M2sKKzY1NzI0IDJkNzZhZjdmNzcwMjY4YTkyZGI0NDQwNzhhODJiOWY2MWVjM2EzOTMgbGVnYWN5LXRydW5rCis2NTcyNiBiNjBlMDkyOGRiM2VjN2ExMDUyNDAzYmIyODIwNWRmYjRiNTFhZmU1IGxlZ2FjeS10cnVuaworNjU3MzEgZTBjNjU5MjJiODc4N2RmOGE0MjllNTA3MGU5MGQ2MGI3NzljOTQ5ZiBweTNrCis2NTczMiA5ZGU2OGFkODYwNzhjMzYxYWIzMGExOGIyYzc2NzZjOWQ1N2NiYWIzIGxlZ2FjeS10cnVuaworNjU3MzMgYWVmYjhlOWQzODQ0ZjFlNWVhOGFkMzZjZGM5YzE2ZDMzMDBlNzNlNyBsZWdhY3ktdHJ1bmsKKzY1NzM0IDMxYzM5YTYyZDNmOTY1NWE3MmY4MDgwMDQ3MWJjNWY1NzA1M2MwOTMgcHkzaworNjU3MzUgZWJhNzQ1N2Y0YmI2OTNiOTBjMTEyNmE3MDViNzc2NjEyNTVjZTQ2MSBweTNrCis2NTczNiAxNTNlOWU2Nzg2NDY0YTE4NDM3M2U5ZWM5YTBmZTAwN2Q5YTQwZmJmIGxlZ2FjeS10cnVuaworNjU3MzcgZmY4NTY1MzU0NWY1Y2E3MGY0ZjBlZjJiMmQzNDdlN2NkNWFjN2JhMSBsZWdhY3ktdHJ1bmsKKzY1NzM4IGViMWU2NGU1MzVlNmExNzEyNmVmZGI0ZTkwMjhjMDk1N2RlNzc2YzUgbGVnYWN5LXRydW5rCis2NTczOSA1YTM1Yzk2M2U3NzEyMmVhNmMzNDlhYzllNTg2ZDY1NjE5OTE1M2Q0IGxlZ2FjeS10cnVuaworNjU3NDAgZDk5ZmU1NmY5ZmY4ZDY0MWMxNjAzZTc2MWE2OGJkMGQ5ZmQ4ZGZkMSBweTNrCis2NTc0MSBhZjRlNDBmODkzYmQ5NTBkMDQ3MTMxZmNmMjUwM2VmOTAxM2EyMGFlIGxlZ2FjeS10cnVuaworNjU3NDIgMmJlMTdkMzY4YTljNWI4ZmU2MDhiZmY4NWU3NjRiYjc1YmI2MjY3NyBsZWdhY3ktdHJ1bmsKKzY1NzQzIGYyNGYyNmExMjE4Njc1ZWUwNzQyMWY4YzMzN2U2YzU5Y2E4MThkMDAgcHkzaworNjU3NDQgNDhkZGRmZDJmYmYzYmMwMDM0NzFhMmJkYWIzZThhY2I1MGMyNzJiZSBweTNrCis2NTc0NSBhYWVmMDhhYTJhN2VmZmJhYzI5YjEzODdlZjM4OTUzYWE2NmM2NzIwIGxlZ2FjeS10cnVuaworNjU3NDYgNjEyYjBjMGU1YTBmMzNkOGI5MmQ0YWYxZjU0MjIxMWFhMDU2NTEyMSBweTNrCis2NTc0NyBkOWQ1MThjZDQ5M2MzMmVmYWZjOGEzYmM1MjUxMjQ4MjIxZjg0YzcyIHJlbGVhc2UyNS1tYWludAorNjU3NDggYzc0ODFjNzNjMTYzYTE5N2E3Zjk4MmEzZWIxODZiNmJlZGIxMGJkMSBsZWdhY3ktdHJ1bmsKKzY1NzQ5IDQzNWQ2NGZkMTNhOWNkOWQ0ZDMwNmU0MzYxNGZhNGZmNWQ5ZDkzNTggcmVsZWFzZTI1LW1haW50Cis2NTc1MCBmNGMyZWFhZDA5Zjg0NWUxMzgzMGM0OWVhODdiZmEzNWE0ZjljNDA3IHB5M2sKKzY1NzUxIDQ1NTY5ODk1ZjdiNTYxNGFhZDUzZmNlYzgzYjhkYjNhNGQyMWIxMzIgcHkzaworNjU3NTIgZGRjNjVjZDJmMGJiYmFjMzVmMWRmNGMwMWE1NjM5NjkyNDUyYTY5NSB0bGVlLWFzdC1vcHRpbWl6ZQorNjU3NTMgOTBkMDQ5OTgzZjViM2RmZTZjNzczNjk5MDI3ZGIxZjhkOTlkNDU4NCB0bGVlLWFzdC1vcHRpbWl6ZQorNjU3NTQgMDc0MDllOTg1YzM5YzlhYTE3MWNmZWI4ZGYxNzYxNTQ3ODMyMTYxMyB0bGVlLWFzdC1vcHRpbWl6ZQorNjU3NTUgOWM0OTg5MDcyMThmZDdlODBiMmYzMjE5MTI1NjhmMzJkNDlkNTlkNiB0bGVlLWFzdC1vcHRpbWl6ZQorNjU3NTYgZmMxYTBhY2ZjZWY4MDhiZjNjZjQzODE4YTU1NDg2MzE5ZWUxODE1YyB0bGVlLWFzdC1vcHRpbWl6ZQorNjU3NTcgZGE1ODMzM2VjN2RhNzYxYzUxMTJmNzc4ZTU1YWJmZjA2YzEwMWZiYSB0bGVlLWFzdC1vcHRpbWl6ZQorNjU3NTggNTA0OTNmOWRkOGM3MWE0YTQ3MWJjZWZjYjU5YjRjZjhiMTE0OTlkMCB0bGVlLWFzdC1vcHRpbWl6ZQorNjU3NTkgMTZiOWVlMWVlZTMxZmEyNTk0Mjg4NWExODQyZWIwMjgwOTM1ZDc3NSB0bGVlLWFzdC1vcHRpbWl6ZQorNjU3NjAgOTNhYjlmZGE4MGFiMGM0YTBkNTM2MjlmNzc2ZGEwOWU0ODU4YzEwZiBweTNrCis2NTc2MSBmNDgyODc1ZTJhMDMxYWFiNmMzNDY5ODVmYTAzMmYzOTJiYWU5NjAwIGxlZ2FjeS10cnVuaworNjU3NjIgZjRjMjI2YzYxYjcxYzhmNmIzZThjNjRhYjczYWU0Y2JlYjJiYTExNSBsZWdhY3ktdHJ1bmsKKzY1NzYzIDJmN2U1N2ZjMWYzYTY2NmI1NzJjZWEzOGZiMzE0ZDMxODQwODZlMWMgdGxlZS1hc3Qtb3B0aW1pemUKKzY1NzY0IGE4ZjNlNjNiNDdlNDI0MmQzOTI3ODNlOWIwMTQ3YzVhYjUyMDM5NzggdGxlZS1hc3Qtb3B0aW1pemUKKzY1NzY1IDNkZTY5ZTZiMmNiMjUyMWQ4ZmI2YjViNTZkOWE4YjBiNzRiMDQzNDkgdGxlZS1hc3Qtb3B0aW1pemUKKzY1NzY2IGM1MDU5YjEyZGRjNmQxODQ2YjMwNTAwNTM4NThkZTNiNzNlZTYzNTggdGxlZS1hc3Qtb3B0aW1pemUKKzY1NzY3IDliOTg1NjdkNWRkZTUwNzA0YWU4YTU2ZDNhYmUwOWExOTRlOGNlMWYgdGxlZS1hc3Qtb3B0aW1pemUKKzY1NzY4IDdhMDM4MDIwYzhkZDYzZTZkYmFkMjZjNjMxYzg0ZDRhMWY3NGQ4ZTcgbGVnYWN5LXRydW5rCis2NTc2OSBjYWJmOTdiODIzMzA4NjFlNWI2NTEwYjRmMjYxNGJiY2VkMmI2ZThmIHB5M2sKKzY1NzcwIGIzNzdjMTQ3MzIzZWJmOWUwODY3MmIyMTRkNjQwMWZlMGUzNWZmYjQgcHkzaworNjU3NzEgZTRjOThkNjE1N2M3MDE5N2JiNGFjNmE0YjQyY2Y1ZGRjYmRhYzljNSBweTNrCis2NTc3MiA3MWI1M2Q2ZWE3YTQ1ZmRiNWUwZGI2NWFlYTE1MzIyYzQ5NDgxMjA5IHRsZWUtYXN0LW9wdGltaXplCis2NTc3MyBkN2Q3MTM5ZDU4NDA2YjY1NWNhOWJjMTgyYmM0OTMxZjcyZTExM2Y1IGxlZ2FjeS10cnVuaworNjU3NzQgMWQ4OGFkNWY0ZGVmMzM2M2YyNDg1MTdlZDM5NTA4MWEwZGRiODMxYiBweTNrCis2NTc3NSBjMzZjY2YyYTcxZTE2ZTYxOTVmYjc3MzRkNmMzMjFkZmNhZTkyZWVkIGxlZ2FjeS10cnVuaworNjU3NzYgYjI5ZGYzNjQyYjk3ZDNiNmZjNWJlMTUwMDAwNzdkYzdkODE0ZTBiNyBweTNrCis2NTc3NyA0MGMwN2E2MWUxYzI2YzFmZmEwNGRkMTk1MmI5NDU1NzIxN2Y0NDg4IHB5M2sKKzY1Nzc4IDEyYzNhMDMzODllN2YzZTIwYTdlYzgyYjVjNjUyMmFlZGZlMmE5YzQgcHkzaworNjU3NzkgNDkyMTNkNDI5YzY4MWEwMWRhZTBiMzdkYTlhZTk4Yjk5ZjE3ZjkxMiBweTNrCis2NTc4MCAyYmViYzBhNmQwNDI4MGQwYzczMjY3ZjVkZGJmNDc5MjQ3MGU3OTZjIGxlZ2FjeS10cnVuaworNjU3ODEgMDY4OTFhZWM0MWRlNmU2OWI3MWM1NTVlYmJjMzJlODIzMWQ1MTIwYSBweTNrCis2NTc4MiAxOTVkYTZkMGM3N2MxMDY4ZTI4YWQyOTg4OTNkOThjOWQzMmU5NzQ5IGxlZ2FjeS10cnVuaworNjU3ODMgODBhOWZmNTllYjAyMDJiMmMyYzdlM2I1MjUxNjk2N2E0OGNjMTg2NiBweTNrCis2NTc4NSA1MzBiNGNiMTk0NDI1YTIzYTQ2YWMyOGMyMTRiZjUxZGRmOWMyOTYxIGxlZ2FjeS10cnVuaworNjU3ODcgNzU2NTg1NDNiOTE5YmY1MzU0MjgzM2MwYjIxYjk3Yjg3NDEwZTEzOCBsZWdhY3ktdHJ1bmsKKzY1Nzg4IDIyYWQ4OGU1YzAwM2E0NmQzNDgxZWYxZTRkNjMzMDNlMjNjNDJhNGQgcHkzaworNjU3ODkgNDNmYTUwYjllYjEyOGZkNWY3MDJjNTI3NDA4NzkzZDE3OWNhNjYxZSByZWxlYXNlMjUtbWFpbnQKKzY1NzkwIDU1Mjk1MzMwNmQzNDJjNThlNjgxYzc2ZDg3NTA3ODcwNTdlOGM1MzggcmVsZWFzZTI1LW1haW50Cis2NTc5MSA4ZDk5ZDAzYTA2ZTQ0YTc3NDdjMWQxYzBmNTI1OWY4YTU5ODExNGEwIGxlZ2FjeS10cnVuaworNjU3OTIgYjBjNGFiODIzM2ZhOWI1Y2ZiZmNiZDgwNTgwOWU5N2Y0ZTJiZDk4OSBweTNrCis2NTc5MyBkN2ZiZTczZmU3Zjc0NDc4ZWU3Mjc1MzE1ZTUxYTY0YjVjYmEzMjI2IGxlZ2FjeS10cnVuaworNjU3OTQgZGQ5OTJiNjQwM2Y0Y2ZkYjgwMzVhNDhhZmRkMzM1NjgzNDg0NGM4YSBweTNrCis2NTc5NSA2MmM2OWQ4OGU5ODVkN2M5N2E3MGM3YmE5M2ZlZWIxZTU2ZDBhMGFiIGxlZ2FjeS10cnVuaworNjU3OTYgZWRiNWE4NTkzNzQ5ZTZjZWM5YWY4MjZiMjBjMDg5YjBjNDMwMmZjNCBweTNrCis2NTc5NyA4OTUzOGQ1ZmI4MWFkYjJmYjIwNDAzNmFiZDM3YmEyYzE0NDdmMzIxIHB5M2sKKzY1Nzk4IDk5YTJlZTRlM2EwNTczYzBmNGM1MmU0YTcwNWNhODdiYmY1MTI3NWEgbGVnYWN5LXRydW5rCis2NTc5OSA5NWYxYzdkYjg5MjNmNDhiZjQ0YzQ3OTZhOWE3OGNmOTdhNTY3ZTM0IHB5M2sKKzY1ODAwIDM1MWFkNjg0MDdlN2ZmMWY0NTE1ZGEzOTM4MDYwZjUxNjdjYjE4ZTggcHkzaworNjU4MDEgZjI4N2JlYjM1MmZlMTYzOTM5MGZlYzlhYTMwNDc2NDE1ZmJkZjU3YSBweTNrCis2NTgwMiA1NTA4ODYyYTFkZTUwNWM4MGQzYjM2ZjJmMDNmOTJmNzM0YWNhYjQ2IGxlZ2FjeS10cnVuaworNjU4MDMgNWE4N2IwZDFjZTkxZTE4YTMwNTc4ZGZmNzY5ZGNlYjQ3NDE0OTExYSBsZWdhY3ktdHJ1bmsKKzY1ODA0IDYwMTk0YWIyYjc1NjI1YjRkMzI5YWU3NzFmYjAxYzAwZjFlMTgzZWUgcHkzaworNjU4MDUgMzE5NWJkNmI2ZGQ3Y2RhZWZiZThkZjE0NTRkOGQ4NjRjMTY5ZjMzNCBweTNrCis2NTgwNiBmYzkwYjU4MTUxNmViZDhhMTkyMzE4MGQ0ZGU0N2VkOWU0Nzc1MjAwIGxlZ2FjeS10cnVuaworNjU4MDggMWE0MWQ0NTZkODAyYmZlNDE0NzU0ZTYyZjcwYTFmNDJiMTYyOWQ4NSBweTNrCis2NTgwOSAyMTE5MjcxNDdjNjA2ZTJkN2Q4NTA3Mjc0OTQ3NzM5YTRlM2M2OTNjIGxlZ2FjeS10cnVuaworNjU4MTAgMjI1NGFhODI0ZDRkYTNiZmUzZTA5NTFjNDYxZjkzYmViM2U1YmMyNiBsZWdhY3ktdHJ1bmsKKzY1ODExIDc1MTdiZGNjNzY5YTFlMTc1MDBhZWE3YjJjMTI3ODUzMzY5YmM4ZjcgcHkzaworNjU4MTIgNDIwNzIxOWFjYzdhODAzOWMzZGU0NTljNWY3MzMyY2FlMTlmMjIxZSBsZWdhY3ktdHJ1bmsKKzY1ODE0IDRiNDU2NGJlYjZkYTJlMGIxMzRmOTNhZjAxYjRmMTEzYmQ1Nzg0YjYgbGVnYWN5LXRydW5rCis2NTgxNyAxN2YwMTA1MTdiMzM1MDYwNTJlNmFjYzI4NTc5MzY3NjdhNzJmZTg1IHB5M2sKKzY1ODE4IDFkMjllNTNjZTJhZjY2N2Y2MTBhNTVkZWI2ZWFhZWI3NzliZDE3NTAgbGVnYWN5LXRydW5rCis2NTgxOSA3NjYyMDAxMGQ3ODI5ODYzN2ZiZDYzZDJkZGI0NDVjYmFkYTUzMzIyIHB5M2sKKzY1ODIwIDVjMGU1ZjJjYmM3ZDg5YzBjYjBmMDAyZTcwODc3YmVkNmQ2ZjdkZTcgcHkzaworNjU4MjEgMjYxNGQ1MDFkZTlhZWZjMTdlZTc4NTBjZjNjNDg1NTI4OGFlNGVlMCBweTNrCis2NTgyMiBlMTQzYThmMzUyNDE3Y2YwNDljYzkwYWQxNTIwZDIxZjZlYjhiYmZiIGxlZ2FjeS10cnVuaworNjU4MjMgNDcxYTRhODhmNTFjNjRjMDMyMzEwYTc5ZjExODJhOGI5Mzc0NWYzMyBweTNrCis2NTgyNCAwMjRiMmI5ODQ4NjY3NmNjNDFiNGU3Yzc2MzI3ODczYTg3ZTdjNTNjIGxlZ2FjeS10cnVuaworNjU4MjUgMWZkZmEzODJhZTEzMmUxMDNiODQ5OWM3ZDg2NWE3NjI5NDRlZDA4NyBweTNrCis2NTgyNiA5ZDE4NTZhYmE5ZjI0OTNkYTgxOTc1Yzk2MzlkNzg3MDY1M2QxZjNhIGxlZ2FjeS10cnVuaworNjU4MjcgZDY1MzdhM2UxYjczYzAzOWJjM2RmY2MzNjEwMWU0NDA4ZjVjMGUzMiBweTNrCis2NTgyOCAyOGQ5M2M5YzNhMDMwMzVjYjFkM2I1MTA2YzZhZGE2YTE1MjI5ZGNlIGxlZ2FjeS10cnVuaworNjU4MjkgZGI1ODkyNDFlNmY3NGM4OTU1ZjU2MDY2ZjY4ZjgwNjNjY2YxMmM5MyBsZWdhY3ktdHJ1bmsKKzY1ODMwIDZkZGEwMTY0MzEwNmNmYjJkMjcwYjBiNTg5OWFjODdmNjk0NGZmYzEgcHkzaworNjU4MzEgNTlkOTdhM2VlMjE5ZTQ2MTVjNjBhMzk5Y2U3ZDEzMTU5ZjdiZWVkOCBweTNrCis2NTgzMiA5MmY0YmIzNjYzN2MzNGU4Mjk5MzZkYWJjOTVmMmM1MGQwMTRkMWMyIHB5M2sKKzY1ODMzIDhkODgzNTA1NTNjM2Y1YTY3NDk1MjkyMTNhNDVkYTNiZTI0NzVlNGMgcHkzaworNjU4MzQgOGE3YTI1NDU5YzZmMDIxOWEyMzllZDEyMjA1OWEwZTc3Y2E1MTA5OCBsZWdhY3ktdHJ1bmsKKzY1ODM1IGUxMDcxM2IyZDU0MzM4ZDk4NzkxMzRhODlmZGY5MzkxMzlkMjM4YTAgcmVsZWFzZTI1LW1haW50Cis2NTgzNiAzMjkxNDkwNDhiOTBjYzk1NjU4ZTEzMjFjZjAyZjNiN2YzZTEzMjdmIHB5M2sKKzY1ODM3IDJiYWMwZDQyMTkyOWU0NTY5ZTlhYmFlMzUyNzU2OWQxNTAzYTQzY2QgcHkzaworNjU4MzggNDI4ZDM4NGVkNjI2MzQ5OTZkZTViZDc0NDk0MTAyMmZjM2FlOWY3MiBweTNrCis2NTgzOSA1YzEwNWY5YTc4ZThlMWY5OTljZWUxMTJkMzJkYmJjM2E1Nzc4ZjJiIGxlZ2FjeS10cnVuaworNjU4NDAgOWE4OWZiNTgwOThiNmJhNWNmZTJkMmYzYzUxOGI1OWY2ZGNkNGEyZSBweTNrCis2NTg0MSA1NDEzOGVlMjBlNTdjMmU5YWQyZGZiYzQxODY1NTFjNzUyZGIxODcyIHB5M2sKKzY1ODQyIDAyNzVkODFlMzFkMDljYmUzN2FjOWIyZjUxOWY1ZGJiYzc4NmQ1ZmEgbGVnYWN5LXRydW5rCis2NTg0MyAyOTFhNmYyMjAzNjA3MGM1YTAzMDQxZTE5OTIxMTJjOTBjMzk0MDdjIHB5M2sKKzY1ODQ0IDgzZjc3OTg1MjRmMWM3MDE5YWMxMDk5MTMxMjRmNWIwODc5YTYxNmMgcHkzaworNjU4NDUgYjBlM2FjODZjZGQ4MDJhMzFmNWU2ZjI1M2EwNzExZDMwMDI2YTdmMSBweTNrCis2NTg0NiA3ZDY0ODA2ZmViMTU2MDhkNmFmMmVlYTk4MDA3ODE3NzBkNWI0NmJmIGxlZ2FjeS10cnVuaworNjU4NDcgNWUzZmFhZTZlZmM2NzE5ZDQ0YmMwZWRiM2IyN2JjMzIxMzhkZjU1YyBweTNrCis2NTg0OCAxNGYyYTRjYjU3ZGUwNDM1NzZiODc4YjI2ZmQ1MGExODZlMmU4NDRhIHB5M2sKKzY1ODQ5IDdjODFkNWFhNWY0MTdkMDg1Nzc2ODUyYzIyZmNkM2JkNzk2MjRjNmIgcHkzaworNjU4NTAgMThhYTkxOWRmMjQ1YWI5ZmVmMTE4NjI5ZTgxZmMyZmY0ZmNhMmVlNCBweTNrCis2NTg1MSA5NGE3ZmIzM2FmZWE1MjkwMDg4N2Y3MTA4NTcwNDg2ZTQ4NWFkNTBiIHB5M2sKKzY1ODUyIDQzYTg4NTg0NGFkOGQ0ZTE1MTZmMGRiMmFhZGVhMTBkNGY0NGY4YzEgcHkzaworNjU4NTUgNGRmMTIyYWRhNzZmYWY0NmRhMzBhMTgyZGUyYjdlZWZhNmI1ZTU4ZiBsZWdhY3ktdHJ1bmsKKzY1ODU2IDgzZWIyYWFhNWZhYWE0NDU5Y2E2ODMwN2EyNjNkMzZjZDcwZDkzMTUgcHkzaworNjU4NTcgMTRlODE5YmVlZWFiOGMwNGFjNjRjZTYxNWM3ZGEzZGQyNmUxMjUxYSBweTNrCis2NTg1OCAyMDlhNDU4MWJkOTE5YTAzNTQ2YmZjOWQwMzdmZjBkZmY4NjA2Y2UxIHJlbGVhc2UyNS1tYWludAorNjU4NTkgN2YwMzhhNDcwMGIxYzA4MDRlYzM5OTZlYWJjNWNiZmI0MTk5OWM1OSBsZWdhY3ktdHJ1bmsKKzY1ODYwIDgzYjJkMDdiNDc1YjUwMzA3YjQ4ZjZhZjU3MzllMTZiYWI2ODU4YmYgcHkzaworNjU4NjEgMjQ4MDYyMjk2NWU2MDA4Yjc4ZDUwNzRjMDg3MmRkOTVlZmVmOTk1NyBsZWdhY3ktdHJ1bmsKKzY1ODYyIDc1MTFmM2U2NzJhMjlmMzcyOTVkZTUzZDgxZWQ1MGNmZDQxMzYyM2MgcHkzaworNjU4NjMgZWEzZDEzY2Q3YzFlNmI2ZjVlNGRlNjczN2Y2NzJjMzRlNjA1OWMxZCBweTNrCis2NTg2NCA3ZWE4MDVkODc5ZTFhYjU3Y2IyODYyMTg4YTI0ZDExODkxZGUzNDU4IGxlZ2FjeS10cnVuaworNjU4NjUgMWEwNTlhYWZlNDlmMGU0Yjk5NGVjMTg0NDc0OGVkZTRlMzk0NGQ1OCBsZWdhY3ktdHJ1bmsKKzY1ODY2IGFhNjEzMjA5MzMyZDUxYWI2ZWM2MjliODJhZWYwZDcxYmNhYzkyZTggcHkzaworNjU4NjcgMjVmMDZhNzAzZjg5YTllODk2ZjU1MDg3NGRhZDFjZDNlNzQzMmRjOCBweTNrCis2NTg2OCBiZDM3YTE4NjYzOGYyODNkNDNkY2M1ZDQzZmFjMzc0ZDU5ZTYwY2MwIGxlZ2FjeS10cnVuaworNjU4NjkgZjA0YjcwM2YyZGRkYTFiMTE3YTE5NTU2YjAyOWRlNGY3Njk0MWZmNyBsZWdhY3ktdHJ1bmsKKzY1ODcwIDk3YTI0YzYwOWMyZWU4ODA0MDA5OGE0YzhmM2I5Y2FiYTAyYWE1ZjkgbGVnYWN5LXRydW5rCis2NTg3MSA2ZDIyZWU4YzczY2EzNDhjMTE0YTZmYjc5MzIyZmZiNGQ2YmNjZWUxIHB5M2sKKzY1ODcyIDQ5ZjUyZTI4NWE2NDAyYmNkNWY5ZDBlNTU4MDA5ZGQ0NWI3YWYyZWEgbGVnYWN5LXRydW5rCis2NTg3MyAyYjgyOWZmYTQ4MWI1NzQxZDBlMDQ4MWYzMDRjMDU5NWMzZjgxNjFhIHB5M2sKKzY1ODc0IDk2YTRjZGE2NWM1NTJmZmFkODNjM2M4YjVjYjQ5M2M4ZDE5ZmY0NWQgbGVnYWN5LXRydW5rCis2NTg3NSA1MTA5MTkwNzMxMTlmOTE5ZTI2MjM4ZGVmMTU5Mjk4OWYwN2FlY2QwIHB5M2sKKzY1ODc3IDZhYmFkYTA1YzMxMzEzNTkxMjQ2YjJhZjc4YTBiZTQ3ZWM2NWQzMmYgcHkzaworNjU4NzggZjQ5ZDkzMTRkNDM5MTExYTFmYzBiMjc1YzM3NDhiZDJlNjBiZWVlNyByZWxlYXNlMjUtbWFpbnQKKzY1ODc5IGVmMTk1NTg0NTUwOTRmYzFhYWI4M2MwYmZmMDRiOGQxYWUzYzkzZTEgcHkzaworNjU4ODAgNGI4ODA2NDU2MDc4NzFjMDA1ZjkwOWFhZmUyMTBlYWM4ZDBmZGI2NyBsZWdhY3ktdHJ1bmsKKzY1ODgxIGM3ODIzYjM1MWZiY2I3NTY0MDI5MGI5OWViOTAwZmEyYWU5ZTFiNjIgcHkzaworNjU4ODIgODJjNjk2ZjA0MjRhNDdlNDZhOGEzYThiNDBjODg1MTU4ZTBkODUxZSBsZWdhY3ktdHJ1bmsKKzY1ODgzIDk5ZTc4M2VjNzc4MTU4NzFjNjdhY2IyMTY3YzY3ZDlkNjQxYzIyYzIgcHkzaworNjU4ODQgYzFhN2ZkYjI0NjI4ZjI0M2UxY2YzMmViMDE3NDE4ODljMzJmMzE1NCBweTNrCis2NTg4NSA1MDRlNmQwMzBlODRjN2RmYzQ1OWY0ZWI2MjZhYmJhNmI0ZWYyZTUzIGxlZ2FjeS10cnVuaworNjU4ODYgNTAxMjU2YzU0Yzg0YTY0ODUxZThmNjdlNmM5MDExYzNlNWQ4NTI1NiBweTNrCis2NTg4OCBmN2E2Mzk2YjQ5NmYwMjJhYzk5NTY4NmFjNWQxOWI1NzNkYjNlZjJmIHB5M2sKKzY1ODkwIGU3ODAyNGFmMGNmMDNhNDdmZDk3NTg1ZjkxNDQzNmY4ZjIyMjlmMzAgcHkzaworNjU4OTEgYThmOThhNzI3MzcxMjEyMmFiOWU3NGNjNzM4NmU1YmM3M2IwNzc4NyBsZWdhY3ktdHJ1bmsKKzY1ODkyIGJlZTQwMDMzNmZkNWM3YTA0MzQwN2Q3OTU0MDJkZGU4YWQ4YWEyMjQgbGVnYWN5LXRydW5rCis2NTg5MyBhYmRlNGRiMzA3YTU5YzU2MTE4M2RlN2ZlZmNkMDM2NDljMjQ5MzNhIGxlZ2FjeS10cnVuaworNjU4OTQgMWFmMjExMjM2OTA0MzBkZTA3MDEyZGJkMDgxNWYyOWE5NWFjNzIzYiBsZWdhY3ktdHJ1bmsKKzY1ODk1IDhmMjE1NmIxNWJiOGU2OTBjYjQzNjIwNjc5MWUxZjZmNjM5MTU2ZTYgcHkzaworNjU4OTYgNmNkN2IxOGJiNzQyYTM2YTJjNTRmY2UxNWU4NWY3N2M3MDExNDZmOSBweTNrCis2NTg5NyAzYTExZTc5Yjk0NzE1ZGRkNzEwMzY1YTM5OGVmNjEyNzUyMDhmYzdlIHB5M2sKKzY1ODk4IDBmZTZjYjBjMzEwZDcyOWRhZDUwYjM2NWNiNDFhZDYxZThlMThkYTAgbGVnYWN5LXRydW5rCis2NTg5OSA2ZDZkM2UwMzc1NTAzY2QyNWJlNzI3MzZjNWM2ZTU4NWYwMGFiOTFkIHB5M2sKKzY1OTAwIGQ0MjYyOTE4NTM4MmViM2Q3Y2ZkYTFhNzBhZjM4YWIzNGE2NjJlNTkgbGVnYWN5LXRydW5rCis2NTkwMSBjMTI1ZTc1ZDIxYTA0ODc3NGY2NWM1YTdjODRlNjM5MTczNjM2YWMwIHB5M2sKKzY1OTAyIGEzNmI2YzFjZWM1Njc4MjI2OTY3MTg0NmRmNjQ3MGNmNzQzNDA4MGEgcmVsZWFzZTI1LW1haW50Cis2NTkwMyBlODk0MjA0YWRmYmRhYWEyN2QwNTM5ZWFkMTU5MzY4YmJjMjUwNTY0IHB5M2sKKzY1OTA0IGFlNWI3M2M1MjA5N2U2YTM0NjZmZDVlMGVmZTQ4YjE5MGU3YWQ3MTUgcHkzaworNjU5MDUgNTFmMmY4ZmVlNWM0NTBkMjFmZjZhYzg4MDE1ZTc1NzY4MzgyZjAxMSBweTNrCis2NTkwNiA2Y2M4OWM2MGY3NGQ2Yjk3NjVmNzZlOTU0YTc1MzMzMDc3N2M5N2NiIHB5M2sKKzY1OTA3IDRmNTAyMjgyMzE5OTBlYTFkZWI5Yjg5Mzc2YzBhMDg1NjBmMjRiYTAgcHkzaworNjU5MDggNjdjYjMzODgwMzc3YmMzYWRlMWE1OGM4OTYyZDZhZTIzZWZlNTA1NiBsZWdhY3ktdHJ1bmsKKzY1OTA5IDExZTcyZWJmOTA2YWVmZWJhNmQ4MTNmNTI3NjY4ZWNkOWY3Y2IzMzMgcHkzaworNjU5MTAgMWJlNzg5MGNkNzU5NzgwMTZlZmQ3NTg5ZWM2NGNlZGZjMTNjMDhkNCBsZWdhY3ktdHJ1bmsKKzY1OTExIGMwMzAyNGRiODAxZjk2YWQ2NTk0MDE3MDgwODI4ZDNiNzQwYzQwNTQgcmVsZWFzZTI1LW1haW50Cis2NTkxMiAwNDBkOTU4MDUwMGNkYjY3MjM5OTY5ODYwYTM4YTllNzAxZDE0ZDgyIGxlZ2FjeS10cnVuaworNjU5MTMgZTk5NjE0Y2EwMjA0YjdlNjAzMWJmYzIyN2Y4ODI2NGQ3MGFlZWJiYyBweTNrCis2NTkxNCAxY2I5MDhhMDQzYjNmMGY5MzgzOTc3ZTU5N2NmNGE2ZWViNWMwMTQxIGxlZ2FjeS10cnVuaworNjU5MTUgNzYwOGFmZTExZmI5NjA0OWU3ZTQxNmZjMGNiZmY0YmFkNzIxMWIxYyBweTNrCis2NTkxNiA4MTMzZmJiNzQ1ODc1NGE3MjVlNjcyNTAzNjAzYmIyZWQ0ODE4MWU4IHJlbGVhc2UyNS1tYWludAorNjU5MTcgYjE5OWYzNDE5ZTY1ODAyYjlkZDY3MmJkZmQ3OThmMTZiNjBkYWY3MCBsZWdhY3ktdHJ1bmsKKzY1OTE4IGExOWQ2N2Q3N2IyMmY3ODdiZTE2NWM1MjA5NzhlMmI2Yjk5ZGE2MjkgcHkzaworNjU5MTkgODhjYTUxNzU0NmZkMDIzNTdjZjcyMzNkYzk0N2JlMGNmM2I0NTE1NyBweTNrCis2NTkyMCAwMzNkNjNiZjcwOGVhMmFkNDFjNTJkNGI4NDE0NmRhMjMxZmE5YzY4IHB5M2sKKzY1OTIxIDAxM2Q0ZDg0MDdjYjlmNjhlNzY1NmQxMWY2MmI3OTE4YTk1MjFlNDUgcHkzaworNjU5MjIgYzYyODYyZDczZjllYzY0ZDY1NTQ5NGNmMWY2MTQ0MzQ0NmYyZGVhMiBsZWdhY3ktdHJ1bmsKKzY1OTIzIDczMTY0NTY1YjkyMGUyMDU5NmQzM2E5OTNiOTllZDdhNzkzN2U3NjUgbGVnYWN5LXRydW5rCis2NTkyNiAyN2QxOWI2NjUwMzU3OWQ4YjNhNDFlNTJhY2FiOTA3OTlmMmJiM2RmIGxlZ2FjeS10cnVuaworNjU5MjcgNTA5ZTMwYTc5NjhlMDFiZTMyOWVjMTIxNTQwYjNlNzU1ZmM0ZTU2NiBweTNrCis2NTkyOCBjNDExY2Y2OTQyODk2Y2MyMTYwODlhNjk1MDY0Njg0NDMyMmYyZWE0IHB5M2sKKzY1OTI5IDAxYjllMThkNjlhYzQ0OWVlOTU5YWI1OGExYTFhOWZkY2Y4YjFiNDkgcHkzaworNjU5MzIgYTBhYmFmZjk3ZTAwMWE0YjkwZTQ2ZGYzNjdkN2YxMmFjNTBkYjllZSBweTNrCis2NTkzMyA5NTlkMWFhOGI1OGFlYmUzMjYzMGVmMDJiZDQyYWVhZmVmMTk2MzNiIHB5M2sKKzY1OTU4IDU3YTg3MzU2NDdjZjg3NDVkMGI2MzI2NTBhYjQ4NDQzMDBjZTY0ODMgbGVnYWN5LXRydW5rCis2NTk1OSBhNzcwMjJkYzNmNjFkMjIxZDE1OGZhOTgxN2Y0MGYyNTI3YWNmZTMwIHB5M2sKKzY1OTY0IGUzOWQ0NGFkYjYxODA2Yzk2OTJjM2MwZTBhMjMyNDU2ODdhNzUzNGQgbGVnYWN5LXRydW5rCis2NTk2NSBhOGQ2OWMxYTNmNGVmZDM4NzY4YTM3OTM4NjNiZGVlM2VjZDcyNjZhIHB5M2sKKzY1OTY5IDRmYWFiYjE4NTYyYzYzZDcyNmQ1NmE3YzBlMGNkNTQ1ZDlmMDk2MDcgcHkzaworNjU5NzEgNGIxZjI2MmNlYmRmNDAwMzI3MTlmMjUzN2Y5ZThiMGYxMGVmZjczNCBsZWdhY3ktdHJ1bmsKKzY1OTcyIDJkYzY0NjlmYzRjNGQ0YjNjNmM3MzhmODk0NzUxYzM0YzgzZjEyY2MgcmVsZWFzZTI1LW1haW50Cis2NTk3MyAxOTQ0ZDMxMDQwZTMwNjYxYjNiYzZkY2M5YmMwMzhiMDRjYzMzYTVmIHB5M2sKKzY1OTc1IGFmYmZkOGYyMTRkZDEzMzdkNmQxNzVjOGNmZmFmYWQyZTdhNTAxZjEgbGVnYWN5LXRydW5rCis2NTk3NiAyYWE3OWFkNGViODUyZGRkZDZhN2FhNWEwNTI3N2U4OWYwN2E3OTA4IHB5M2sKKzY1OTc3IGJjZTAzZjg3ZjY1ZGIxYTEwNDRhMTRjOTg3YWM4YTBjMDkwZjUzMTYgbGVnYWN5LXRydW5rCis2NTk3OCA0NmMxYmNjNGMxZDMwMzc0MDU1M2FiNjg2NGJjMGFmNTJkODYzMTVlIGxlZ2FjeS10cnVuaworNjU5NzkgZDk1MmU3NTNjNjExZjc1YWFjZGY1NzUyYzVjMzRlNTY1MDM0OTIzZiBweTNrCis2NTk4MCA3NDg5OWU2Yzg3YTVjNWRhNmFlYjljM2U1ZTgxODI1OTdhYmQwNGYzIGxlZ2FjeS10cnVuaworNjU5ODIgZjk3MGE0Zjc1NjBmZmEyMGU5NGI1NWE1ODk2N2RkZDRmYWE4OWY2OCBsZWdhY3ktdHJ1bmsKKzY1OTgzIGUzZTUwNzM1MGVkNGQ0ZGU4OGYxZGExNDNkYTAxNjI0Mzg2ZmIxZjMgcHkzaworNjU5ODQgMjA0NDMxZDQ0Y2RjNDkyODRjMWMzY2RkODE1YmU3ZWRjZjRmNTk5NiBsZWdhY3ktdHJ1bmsKKzY1OTg1IGNmZDc5YTRjMTYwNDMzZGQ1NDg1NmM0MjhlZmQzNDFkOTc1Y2QxMTggcHkzaworNjU5ODYgNzVmNjRmZDFmMTEzNzg4YmVjNGZlN2VjZWE3ZGZkYjhlYmFhZGYxYiBsZWdhY3ktdHJ1bmsKKzY1OTg4IDY1YjJkZDQ2ZTE3MTE4OTdiOTMxM2NiYzg4NDFlOTczMTI1ZDhlMmEgcHkzaworNjU5OTQgYjUyMTM4M2I4MWE3MTU3MTVlYWY3ODk1NzNkOTlhNzUzZWVhNmI4YyBweTNrCis2NTk5NSA5NjllZGMzYjcwN2YzYmZhODQzYjE1Nzk2MmViMmM0OTk0OGFmYzZiIGxlZ2FjeS10cnVuaworNjU5OTYgZTdiODU4OTBlOWIxMDczNTA0ZDE1ZGMxMzBiMjUxOTllN2JmNmRjNyBweTNrCis2NTk5OCA1ODdjZDRmNjZjMmRjZDk1ZmJjOTUxNDFjZmM2NWY3MWY1Yjg1MmFiIHB5M2sKKzY1OTk5IGRmZTU0NmI2NmVlZmQ3NTgzYWQ1MTZjZDY3MmEwNzE0ZGJlYzYxYzYgcHkzaworNjYwMDAgNzZlNzFjZWNjNGQzMTNjYmMwYTZmM2UyNTMzMjg4MTU5ZTg3NjAxMyBsZWdhY3ktdHJ1bmsKKzY2MDAxIDA3ZWM3MmNmMTljN2Q2MWM4YTJkMjY4MGVmMDI5NTk5ZGRkYmJlYjcgcHkzaworNjYwMDIgN2JiMWM2MGVhZjY0ZjU5ZTViY2VjODVmNjI2NmY0MmY2ZjcyNzZhZiBweTNrCis2NjAwMyA4NWMwOGNmMDhiMmI1ZWVmNzUzZDRlZGVjM2JmMTk3OGQ0MDdkZTJiIHJlbGVhc2UyNS1tYWludAorNjYwMDQgZTE0NTUyYjczMTdiY2M5NTU5NDNiYWJkZjM1OTIzMDZlNGIyZTAxOCBsZWdhY3ktdHJ1bmsKKzY2MDA1IDY4MmU5YTQyYzE1ZDUzYjQwZjAyYmYzNGIyYmNjNzc5OTYzZTkxNDQgcHkzaworNjYwMDYgYjE2ODJjNjkzYjlhMTVkODc5ZDY3NTUyMWY2MWQ1ZGQzZDk3YTc0MyBsZWdhY3ktdHJ1bmsKKzY2MDA3IDVjNzVhMzNlZjViMjc2MzYzN2Q4ODgzYzVkMWNhNmM1OTI3Y2U0ZTIgcHkzaworNjYwMDggZDJiYTM2YTdhNzEyNzQ1Y2I4YzU3MDEzNzRlZmEyNmY3ZWE4YTk2MSBweTNrCis2NjAwOSBhZmI5ODA4YjBmMzBmYTI1YjM2NjhjNzQ4NWRjYjIxYjAxMGUwNDQxIHB5M2sKKzY2MDEwIGEyNzIwMzUzZjBkMzQ5ZDc0MWU5YjU4YWMyM2QyYzFjMmFlOWM1ZjQgcHkzaworNjYwMTEgOTg0ZTFjNjAyOTc5MmM5ZjI5NDU3NGFhNmQzYzU2NjgyM2ExNjFmZSBsZWdhY3ktdHJ1bmsKKzY2MDEyIDJhNmFlN2U4YzdjMzZlMDMzZjIwYmFmMzU5NmE2ZjZiNmIzMTJkMmEgbGVnYWN5LXRydW5rCis2NjAxMyA2ZWExYTcyMGIwNTdlZTFiYzhlZjE2OWUwNTQzYmMyNzYxYjMzOGQyIGxlZ2FjeS10cnVuaworNjYwMTQgNzBlZGFjODkwZjJiNmRmNjJkYzkzMDhmN2UwNTE0YThkYjNjYjg3YSBsZWdhY3ktdHJ1bmsKKzY2MDE1IGMwMDE5ZDQ1NTUxZGM3NTBjNzY2NmYyMzA5ODM3YjFkNWM3OGJlNTEgcHkzaworNjYwMTYgYzk1ZjM4N2VkMWY0MjZjZTY1MjFjMDhiNjU5ZjZiMThhZjMyM2Q3ZCBweTNrCis2NjAxNyA1OGQyOTVlNzgwMGY3YTRmMmZiN2EyZjIxZjVjYTFmOThlMzBhMjVmIGxlZ2FjeS10cnVuaworNjYwMTggZGU5NTRkZDY3OTdiNmU2Nzk0NWRhZTcxOTljN2IxMjE1NzRhZmZmOSBsZWdhY3ktdHJ1bmsKKzY2MDE5IDg4MTE5ODNkZmNhZjhiMjI2ZjQzNjczZDNkODY0NTA1NjFkYWRjNjUgcHkzaworNjYwMjAgMWE0OTIyZmE1MTYwNjU5MjFhY2QwNzQ4N2ZjZWEyMmZjNzUzYjliMiBsZWdhY3ktdHJ1bmsKKzY2MDIxIDY3OGEwZjBlNjFiYzVkNmJjNTI2MWVjNzNiN2E1NTE0MjZiY2E0NjggcHkzaworNjYwMjIgMmE0N2IzYmIxMWZkOGJkOWVhOThmMmU2NzE1NzAzZDkyMDI5ZmI2YiBweTNrCis2NjAyMyBkZjYyNGRmNmVmYTNjZGEwNDFlYTRjNGEzMGJmYjk1ZmI0ZDhhNTRiIGxlZ2FjeS10cnVuaworNjYwMjQgM2RjNGRmYTNlYmExNjhjZmJhNDAxNmY5YmY3ZTAzOWQ4YzM0MjM2NyBweTNrCis2NjAyNiA2ZmFjNjM2MTMzZjAxMDZlZTRhMjllMTQ4NjI1YTI1YTA1OWI2MTg1IGxlZ2FjeS10cnVuaworNjYwMjcgNGZiN2U3YjJjOTYyYWMwODY5YjlhZDRkZDI1YmFmMGJjNTg2NjhkMSBweTNrCis2NjAyOCA5ZWIwY2QzMDMyNmQ4YjY1NDRiZGIwYmJmYmI5NWFjYmRiODVmZmQyIGxlZ2FjeS10cnVuaworNjYwMjkgZGQxNzdmNTc2YmU4YTk1ZTZlMWM4YThhMWVlOWE5ZGEwM2IwNTI3YiBweTNrCis2NjAzMCA1YTIwNTkzYTgxOGZjMjMyYWJjZjYyMzUzMTIyZjg2ODRmNDEwOWU3IHRsZWUtYXN0LW9wdGltaXplCis2NjAzNCA4MmY3M2IwYjVhMzA4ZTk4MmM1MDMyMmY5ZmNkYTM5NzNiOWYyODQyIHB5M2sKKzY2MDM4IDU0OGRjY2M0MDA4ZWQ5MzRiYWZhZDVmN2I3MTBjYTQyZGJiYjIxYWIgcHkzaworNjYwMzkgZWRkMmNhODk0YTY3ZGM2YjRmOWNjOTJkNjhmYTQ1YTc3NTk1MDMzNiBsZWdhY3ktdHJ1bmsKKzY2MDQwIDAzYzIzYzUwNjU0ZTVlM2E2MmE4ZmVjNmY0YTdmYjRkMWIyMWNmNmMgcHkzaworNjYwNDEgNGRiMWY1MDk4MTc1YWJjYzU2ZWFkNmYwNWQ4OTIxYjVjM2U0YmIyYyBweTNrCis2NjA0MiBkNmU4NmE5NmY5YjM1MDg5Y2IyYTk3NDYwNzNkMDVjOGMwYWM2ZTA1IHB5M2sKKzY2MDQzIGQwMWMxZDc2ODg0MTUzNDBlMzJiNmI3MzE3ZmMxZjk2YTc4ODA1ZGQgbGVnYWN5LXRydW5rCis2NjA0NCAxMmQyNzYyMDc2YmFhNjExZjc2OWJiZTgwNmZlZGQyNTg3NjA1ZmVlIHB5M2sKKzY2MDQ1IGM0MmJmOThiMjYwZjM1MjA0Njg0Mzg3MjU2MjQ3NDQ1ZTAyNTM2MDUgbGVnYWN5LXRydW5rCis2NjA0NiBkOWZlMjllOTVkNjAxNWI3ODM3NTRjNDJkYWI3NzM3MTFhODY1M2I3IHB5M2sKKzY2MDQ3IGRlNmZiOWYzNDUxMzI3NWQ2MzZmNTAxMjg0N2MzNmEzNmM1Y2ExOWQgcHkzaworNjYwNDggNDdhODAxYzI5ZjEzZDQ4ZTZjMGZjZTc0ZmY5OWQyMzQ3YmRiZTI0YSBsZWdhY3ktdHJ1bmsKKzY2MDQ5IGFhM2M5MGNlMTkzMmJhZTc3Y2E5YTY0OGQ4MTFjODEzMWY5NzNmYzAgbGVnYWN5LXRydW5rCis2NjA1MCBmZGQxZWUyMGFiODZiMDk4MDdkMTlhNDQ3ODEwZGRhNmYwNjM5ZjZlIHRsZWUtYXN0LW9wdGltaXplCis2NjA1MSBmMjdjY2ZkZWE4MzQwMTIwMzhjYmEwODI3YjM2ZDc0N2I1OTk0ZjdmIHB5M2sKKzY2MDUzIGVmYzQ5ODYzY2Q4ZmY5YmIzOWQxMzZhZWI1ZThiZDIzOWQwMWUyN2EgbGVnYWN5LXRydW5rCis2NjA1NCA0NzE5MmQwYjczMWYxMDQ5NmYzZTYyMzJkOTliNjVhNTBjZDZjOTM3IHB5M2sKKzY2MDU1IDZjZWI3Yzg5ZTc3NmJhOTI0NDk5NzY5YzY5NjliNWUzYjA2N2EwMTkgcHkzaworNjYwNTYgYzU2MmM4ZGFlNDlhNjA1ODcwZTZlOGFhNmZhN2I4ZTJlZTkxN2NhZSBweTNrCis2NjA1NyAyN2UxNDJkOTlhNzE3MzkzNmE2NThmZGIwM2NlZjg4YzEyNjdkYjg2IHB5M2sKKzY2MDU4IGJiZmZlMDkxNGM1NmU2MTBmMTE4ZTEzYmVhYTA3OWIxOTE4YmUxOTIgbGVnYWN5LXRydW5rCis2NjA1OSAwYzY1YzgwMjc1MmEyYjgyMGQzZWIzYmRiZjBjYzY1NzY2NjIxYmNlIHB5M2sKKzY2MDYwIGE4YzUzNTgwYzVlYzQ3MjI1YzE4ZjRjNTFiYWZlMWMzZGI0YWIxM2EgbGVnYWN5LXRydW5rCis2NjA2MiAzMDgzNGI5YWExOTM3ZjFmZjgyZDQ4Nzc0MTMxM2RhODUwNTJhMGE4IGxlZ2FjeS10cnVuaworNjYwNjMgMDEzMTM4Y2RiODczYjJlY2MxN2ZhNmI0MTRjZjM0ZjRhNzM0ZWY4YyBsZWdhY3ktdHJ1bmsKKzY2MDY0IDAzZTIxNmRjOGZlY2NiOTFhNDEyNzQyNjAzOGRkYzc0MGIxNzA1ODggcHkzaworNjYwNjUgNTZlZDQ0NWZhNjFlNjAzNGQ0M2IyOWNkNzI1MTk1NDZmMThiM2JmNCBsZWdhY3ktdHJ1bmsKKzY2MDY3IDk2YmM1ODk2YTI0MDU1MWNkYjc2NDM2YmZjZjdiNDk3NDFiNDUxYTAgbGVnYWN5LXRydW5rCis2NjA3MSBhMmYyMDI4YjczZWQzYWJlNTY4YWI2OTBiNDZhMGM0YmU5YTQ4ZTBmIGxlZ2FjeS10cnVuaworNjYwNzIgODRiZGQ1M2UzOTA2NDg2ZGViMWMxNmZmMWZlMzg1NzMyNGVmMTdjMyBsZWdhY3ktdHJ1bmsKKzY2MDczIDk2MDU4OWQyYTEyZDlhZDQzNzhlNTc3YzcxZmFkOGNiZDZkZThiMDkgbGVnYWN5LXRydW5rCis2NjA3NCBmYTdiNjFkMmJiM2Q3Y2M3Y2I3ODFlNjBmYmE5MTcyZDQyZTRkNGY1IGxlZ2FjeS10cnVuaworNjYwNzYgMTFkOGZhM2M4OGQ4ZTgzNjgxZGMzYWVjNDFiYzYxZmRmODFiYTA3ZiBsZWdhY3ktdHJ1bmsKKzY2MDc3IDQ4YzVlYjUxMzM3MGQ4ZmE4ZDRlMmU0OWQ5YzU3YTVhNDQ3NjYwYjcgcHkzaworNjYwNzggYjUxNTY5MGIzNzlkN2RkZWFiNTI4M2VhM2UwNTcxYzMzMDBhMmRhMyBweTNrCis2NjA4MCBmNjc5NjNjZDQzOTUzY2MxZDllZTA1MGExYjE1YWM4YzQyNzhlZjljIGxlZ2FjeS10cnVuaworNjYwODIgYTFkOWU4M2JjNzZkYTNhZWUyN2RhNGY5N2RkZTJkYTkwZjg2OTBhNCBsZWdhY3ktdHJ1bmsKKzY2MDgzIGViMTM0ZWVlMzIzMjI2MDAzNzNmNTQ4ZjY4NmIzNWJmOTBkYzA3ODQgbGVnYWN5LXRydW5rCis2NjA4NCAzNmFkNWU3ZTM5YjRmYmQ5NmNjMTk4MTRlZGM3ZTcwNmEyMjVhYTEzIHB5M2sKKzY2MDg1IDljMTc1Zjg4NjBlMjNkZjM2ZTE4YTBkMzE4MmRhMGVlYTQ4ZDA4ZmUgbGVnYWN5LXRydW5rCis2NjA4NiAyMjFkZTEzOTQ2ODExM2NmNTg5MTExZDg0NzMyNjRjMmJiMTNmODQzIHB5M2sKKzY2MDg4IDgxYTFhMTU0NTE3MjJiODE5NWY1Nzc0YTZkYzk0ZGM1NTNhZGZjMzEgbGVnYWN5LXRydW5rCis2NjA4OSA1ZGE2ZjIxY2Y4MDU5NDIxZDFkMjQ2NDg0Y2VkY2M0ZjhkZDU1YmZkIHB5M2sKKzY2MDkwIGZjMTFhOTA0ZjZjZDE3OTBhZjkyMGU4NDYxMjM5ODEzNDVlM2I5ZDcgbGVnYWN5LXRydW5rCis2NjA5MSBiZWU2ZWI3Njc3NDI3ZjgzZGE5NTY2YWI2NGE0Y2E3MGVjODBlM2ExIGxlZ2FjeS10cnVuaworNjYwOTIgNjI0YjQ0YjdjZGYyOTIxODRmZjc0MDFiODBkNjc1NTRiZGQ5MTVlZCBsZWdhY3ktdHJ1bmsKKzY2MDkzIGJlNjNlYzc0OGVlMDY0YTIwNmYzYWNjYzAyYWJiMWMxNDdhMmZiYzAgbGVnYWN5LXRydW5rCis2NjA5NCA3ZTE5NGI5Y2MwYTJiNGQxZjI0ZDBmNDljZWRmZjVjZmIwOWZiYmFlIHB5M2sKKzY2MDk1IGI0YzE0YjcwZmUwZjgxOTlhYzRiZmQxMjk2OWZiZDY2M2MwNGIzZTEgcmVsZWFzZTI1LW1haW50Cis2NjA5NyA3YjM5NTAxYjBhNzYyNDdjMDkyMDZkNzBlYjM5M2U5YjA4M2ZlYmE3IGxlZ2FjeS10cnVuaworNjYwOTggMTNmZGY5OGVhMjkwMDEzMDcyZTc2YTFlMDk3Mjg4M2M0MjBjODZhYSBsZWdhY3ktdHJ1bmsKKzY2MDk5IDE3NmM0MDlmZDc0N2U4MTJhMDY3MmRkYWE4ZGFjMDAwMWFmMDU2ZTcgbGVnYWN5LXRydW5rCis2NjEwMCA4Y2RhNjE1ZWYyMmJiNzQ4ZTBlZTM1OTQ0ODE0ZWQ5YWY5ODNhZjNkIGxlZ2FjeS10cnVuaworNjYxMDIgNWZhMGQzMWE2NzFiNzgxMmIwY2VmNGUzOTM3NjJhNjNmYmYxY2U2MCBweTNrCis2NjEwMyA1NzY0NDE1MjdkNGY3Y2MzZGI3MDY5MmQzNDQ2YTE5YTIyYjExODkxIGxlZ2FjeS10cnVuaworNjYxMDQgZWQ1OWYzYjY3YjNhZTNjMTE4NzRiODc1ZWI0YzJlMzllNjg0M2Y3YiBsZWdhY3ktdHJ1bmsKKzY2MTA1IDlkYjNmZTc4MGJmYzZhMTAyMGU4NDZjZWFmNWE4MGMwMjg4ZDJlZjAgbGVnYWN5LXRydW5rCis2NjEwNiA5MjUxNTMyMjU1NzBjM2I4ZTIyY2U1ODkxZGNjOWI3MWY0NDY5M2I4IHB5M2sKKzY2MTEwIDUxOWUwNDc1OTkxZjc2YjgxZDUzMDE1ODQ3NTYzMTAzOTU5YTZmOTUgbGVnYWN5LXRydW5rCis2NjExMSA2OTZmNWQ4NDE5ZjIwOTM5NWIzZjYyMTcyMzQ3OWVkNjUwOWM0ZWIwIHB5M2sKKzY2MTEzIDdlY2VjMWIzMGMzZjQwNTMxNzEwNWZkODM1ZDU4ZjAxNDJjNGIzZTIgcHkzaworNjYxMTQgOTg4NjYxZmZkMTAyOWNiMDM3ZjYyNGZlMjQ0OGMxMDhjZjg1YjliYSBsZWdhY3ktdHJ1bmsKKzY2MTE1IDUxZjc5NWM5NTMwZWMwYmNiNDQxNmU5YTljNmMwYWJkMzA1NWExY2EgbGVnYWN5LXRydW5rCis2NjExNiBhNWEwNzFjODBmMmQyNTI5NGUxYjQ3MjM0MTk1MDJjOTgxYjU3NDI5IHB5M2sKKzY2MTE3IDEyZmIzNjI2ZWU1OWYxOGRlZjgyN2UwNTI5NGQxMjE2MzRiMTg0ZjMgbGVnYWN5LXRydW5rCis2NjExOCAzN2E5ZjY5MGE5NGE5YWNiMzkyMzI3NTE2ZTQzMjMwNTk2Mzg1NDVhIGxlZ2FjeS10cnVuaworNjYxMTkgYjUzNjVmMzQ2NDBmMmM2NjRjMTkyMjk0ZWI2MDM1NTI5MWZjZTdhYyBsZWdhY3ktdHJ1bmsKKzY2MTIwIDY2ZTFhZmQzMzQ1ZmRiMGJiNGMxZjk3YTlkMTRkMGMxYzBjODE4ZDQgcHkzaworNjYxMjEgMTZjMDNmN2NiYzIyMWY5NDA1YzEzNTliYjJhNzNmZmQ0NGYyMjg5MiByZWxlYXNlMjUtbWFpbnQKKzY2MTIyIDMyY2U0MDJhN2UzZGYyMGMwZjVjZTUwZTkzNTQ4NzRiMjQwZGJjZWIgcHkzaworNjYxMjMgZTYwMjFhYWQyZGUyZDVlYzk5NGY2NzY2MTAyZDFlNWIxMjhlZTVlMCBsZWdhY3ktdHJ1bmsKKzY2MTI0IDY4MGIwNzZkMGMxM2EwM2YzMzRhNjc0OWZhNDQ2M2E1ZTNiMTE1MTkgcHkzaworNjYxMjYgNGZjNDgwYmUxZTRkMmM2NzhhMzkyZDQzYTM5YTQ4NzYyZjE5ZjkzNCBweTNrCis2NjEyNyBiYzU4NWI0ZDQ2MDZiNTJjM2M3ZTUxZDk2MmU1ZmYxNzhmOGM4YjZiIGxlZ2FjeS10cnVuaworNjYxMjkgOWVkMzI4N2JlZWYxOGE0YjdiYWJhMDQxMDFkYmMyMmRjM2FmZGY4ZiBweTNrCis2NjEzMCBhYmE4NTk4Yzc4NWNhNTNlMzM2MjFkMGE4YWE0YmEzNjQxNDljZjIwIHB5M2sKKzY2MTMxIDIzNmZjZjI5MzljN2Q1MjM4OTM0YzZlMGQ4MzAwNWJkMmQxZjVkMTQgcHkzaworNjYxMzIgM2I5NjA4MTE4ZjhkODdiODgxMWIzN2E0NmEwNzQ5MDk1MjQ5MWZmOCBweTNrCis2NjEzNCA4YTEwOGQ1NGVmMDNjYWExYjhkN2JhODIwNzYyZGYwYWViMzU0YjA1IGxlZ2FjeS10cnVuaworNjYxMzUgZDU2MzYyMWQ3NmRiNGY5NGU3NDVlYmM2MmI5MjE3OGVhMzNkYjJjYiBsZWdhY3ktdHJ1bmsKKzY2MTM2IGNkMTg2MzA2ZjM4NWFjOGNmYmU2MTg3OWY0ODRjYjExYmZmMDlkNTQgbGVnYWN5LXRydW5rCis2NjEzNyA4YzRmNzUwNjYxZWMzOTQ0MDQ5ZjBiZTUwNTIwZjRkMDcxODk4MWY5IGxlZ2FjeS10cnVuaworNjYxMzggNGMxNzcwYTU1YTg1ZTVkYTMzM2U3ZTRlZGUwYWUxMzA0Y2I1ODhjYyBweTNrCis2NjEzOSBjYWE0MWUxNjFiMDQxMWY0MDZjNzNlMThlODhjZDg3ZjE3NTkzYjQ5IHB5M2sKKzY2MTQwIDNiZGM0NmZhZWY0ZGE4YjA2ZDA3Mjk1Y2NmYWQ4YzA3MmM2YzEyN2MgcHkzaworNjYxNDEgNGIyOGJmNWVlMzkzYjQzYmE0OWJiOGU4NTVjOWQxNjA5MGQ2NTdkNSBsZWdhY3ktdHJ1bmsKKzY2MTQyIDk5ZWUzYjc3YmMwZGIyZjJhZTJhM2E4N2IxMDU4NDNmMDA1MDE1OTAgbGVnYWN5LXRydW5rCis2NjE0MyAxODk3NzQzYjMxNWRlMmFmNTRiYmNhNzA4YzJiYTIxNzUwMTBlZWMyIGxlZ2FjeS10cnVuaworNjYxNDQgNGRhNGY5Njc5NjcyNTc0NGZjMmQ0ODdkMmY1MjVlYzM0MzQ0YmZhZSBsZWdhY3ktdHJ1bmsKKzY2MTQ1IDM3NzlmYzlkZmU1ZjczODkwYWFhNDZlM2M3ZWYxMmU0ZTA2ZmQ5MDAgbGVnYWN5LXRydW5rCis2NjE0NiAzODg4OWNiNDUxODgxMDVkNzFmODM5YzUzNmI1NmNmNDMxYWY1NjdhIHB5M2sKKzY2MTQ3IDdhNmU2YTA0ZTI4ZDE0OTJiYTExYzA3OTNjZDg4ZTQ5ZDU5OGE5YjcgcHkzaworNjYxNDkgZDgzY2U0YjU4MWU2MTU2ZDNhN2JhZWEwMTYxZGI0YTliNGZlOTgyOCBweTNrCis2NjE1MCBkMGQ1M2RlOWQ4MmUyZjFlOTc4YzA1NTFjNDc2NWUzNzI3MjZmNTg0IGxlZ2FjeS10cnVuaworNjYxNTQgMzgxN2M5NmZkNTQwOGEwYjNmNDE2ZTdkNjMyZWZmNjhhNmQ2ODc5ZSBsZWdhY3ktdHJ1bmsKKzY2MTU1IDFjMTRjZTA4NTQxNTFlYTA0ZTE2MzFiNjZjMTk0YWFhNmFmMzVmMDAgbGVnYWN5LXRydW5rCis2NjE2MCBiYTVjNGNlMTJiYmRmMTZkNTk0ZTAyNjg0YjJmYWMxOTFjYzYxMjhlIHB5M2sKKzY2MTYxIDc1MGRhMmQxODA4OTJlYTk4YjJlMGRhZmZlMGUzYWFlYjM3NjdhMmMgcHkzaworNjYxNjIgYzdmZDBlODgxYzQ1MzAzYWQ5YTQxMjkwM2NhNjExMDgyYWVmNDE2MyBsZWdhY3ktdHJ1bmsKKzY2MTYzIDg4YzkzYTliNDEzNzNhZDFjZTJhNjg5MTFlODNmNjQ3MWE3MmJjM2UgcHkzaworNjYxNjYgM2I3NGQxNDYyZTNhMGY3ZDRkNjMyYTUwOTIyYTA4Mzg2NTI2MzIzZCBsZWdhY3ktdHJ1bmsKKzY2MTY3IGYxYWU2OWNkZDRmZmRiZmFiNjdhYzYwOGMzM2NjZmE0OTA3ZmFhNmQgbGVnYWN5LXRydW5rCis2NjE2OSBkODI2YTc1NTcxYmM5NzlmOWQwNTk3OTg3MTg4N2QyMjIyZTVkOTk5IHB5M2sKKzY2MTcwIDc4NGQyNGE1Y2U3YmFjY2Y5N2M0MzhiMzk0ZTYxOWVlMGJkMWM5MTYgcHkzaworNjYxNzEgMmQ4MGQwMGIxZWYzNjAzMzBhN2NlMzQ4NDc4ZTA2MjZmODM5YTM3YyBsZWdhY3ktdHJ1bmsKKzY2MTcyIDNiZDkwMDJlNzQxZmZjMzA2NjJiM2U4MGI5NGY5YTcxMTdjYzIxOTMgcHkzaworNjYxNzQgZTJlZGMxYzExZTUwNzc0NDI5NTI1MmYwMjg1N2EzMmNlZDY0YTI4ZiBsZWdhY3ktdHJ1bmsKKzY2MTc1IDYzNTZhNTQxNGQwMTljZmE5OWM0NDNkNGMzNDdiYjk4NGZkMjMwMTggbGVnYWN5LXRydW5rCis2NjE3NyBiZjA0M2QwZGI3ZGZjOWZhOTdhYWJiNTVkMjQ5ODIyM2Q3OGZmZDY1IGxlZ2FjeS10cnVuaworNjYxNzggNzVjNWEyYzkzNzZlOWI0NWQ2NDFjNzcxMTM4NzI1NzBlMGRmNDg0NiBweTNrCis2NjE3OSAyYTYwZjdiNDIzMjhkYjE0YTJlOTdiNDg5NTBjZWNiOGM1ZDRmYTUzIGxlZ2FjeS10cnVuaworNjYxODAgNWZkMzliODRmYzI5MmM5ZTUwNmZiZjBmNDAwOTEyNDRmMjQzNjMxMyBsZWdhY3ktdHJ1bmsKKzY2MTgxIDRjNjgzZWM0NDE1YjNjNGJmYmM3ZmU3YTgzNmI5NDljYjdiZWVhMDMgbGVnYWN5LXRydW5rCis2NjE4MiBiOWVkMTRlYjllODdiZmM2YWY3ZDM2MTlhNWI1Njc0MDg0YzBhOTJmIGxlZ2FjeS10cnVuaworNjYxODMgMGY2OTMwYTQzMzYyOGM3YjU1ZTFhMzRkODMzNmRlZmVmNGQ3YTcwZSBweTNrCis2NjE4NCAzMzgzMDhjOWNjY2JjYWY3MGIyYzMwNWZhMGViZmFkMGFiNmMxMGMwIGxlZ2FjeS10cnVuaworNjYxODUgMDZmNTRlMTFhMDhiNGFiNTAxYTEwOTdkYjdkNjE3NzQ2NTgzNGExOSBweTNrCis2NjE4NiAyMmFiMTA2ZTMxODZiNTg0OTQ2MGQxZmYzZjk2OWIyNGY3MDMzZTE0IHB5M2sKKzY2MTg3IGY4M2RjY2Y0MTdmMGRhNmQzZDA2NzVhMjVkZjdjOTQyNDc3MzU1MTggcHkzaworNjYxODggOTJhMDFmZTI0YWUwNjQxYWZlZDFhOWU0MmVmODNmZDFlODExM2RjMCBweTNrCis2NjE4OSA2MTU0NTE2YmU0OWNkYzk0ZmIzYmE5MzMxYTI4Mjc3MGEwMTMxZjhlIHB5M2sKKzY2MTkwIDE0ZmMxNjkyNmMwM2ZjODU4OTIwOTc2NmJlNjJlZGJlOTgxN2NlYjEgbGVnYWN5LXRydW5rCis2NjE5MiAwMWYyZGNlMDZmN2QxMDJmYjlkNDMyNjMzYTczNWE5NWU2MzE3YWZhIGxlZ2FjeS10cnVuaworNjYxOTMgZTZjN2I2ZmEwNzcxZTQwYjg3YjA3M2MyN2Y5ZTJiM2U2NzI5MTdlNSBweTNrCis2NjE5NCBhNTM4NjEwMTg2NWI5N2UwZTM4NzM5ODZiYjQ2OWJmZTYzMTZmMWJlIHB5M2sKKzY2MTk1IDE3N2U4YTYxYWY0NWM1MTQwZGUwNmI3NjIzMzViNjAxOGI1Y2VkZTQgcHkzaworNjYxOTYgMmI4NTVhOTQ3ZjBmNWY2MDQ0OGMxNmJjNDk1YmI4NzRmNzExZTliMSBsZWdhY3ktdHJ1bmsKKzY2MTk3IGUwYWI1YjI4NjEyNDU2Y2U3OGY5M2E2ZDRkNDlhODNlODY1NjQ2ZTMgbGVnYWN5LXRydW5rCis2NjE5OCBlN2JjZmQ3MjA4OThhYmE0MjU3OWQyYWQ5NTcyMTQ4NDY0ZTcwOTk0IHB5M2sKKzY2MTk5IDY1ZTIzNjgzYzAxMGMzZGE0NzE5YzE1OTAzNWIyZTY4ZDIxMTdjYmMgcHkzaworNjYyMDAgZTM4NDdlN2MyNGUwMzJlNGExNDc3N2E4YzhmZWZkZTE3MzZjOWQ1NSBweTNrCis2NjIwMSA5OTU3YTM2ZmMxNjdlY2NkMzczY2M2ZDkwOTFjYWFiZWNlNmM5MjU2IHB5M2sKKzY2MjAyIDViNzg0NWVmNGVmZDBkOWFiYzRhY2E1ZmY5ZjdmYjUzMzU2OTQwNTMgcHkzaworNjYyMDMgYzUzMjM0ZmY2MWIwMGY0ZGZlYTA5YWFlYzAwM2U1OTQ0ODM5ZTU3MCBweTNrCis2NjIwNCA4MTJlYTEwNWIxYjBlZDBiOWYxMTMwNTgyYWM2ZDk3MGQyZWJkOWU2IHB5M2sKKzY2MjA1IGY3MWE4OTI4YzFiN2I5NjNhNzY4YjQzMTA5NGFiN2U4ZGU2ODc1Y2IgcHkzaworNjYyMDcgMTQyNDliY2I5M2QwY2E2NWQ5YThhNGI2ZGNiMTA5NDNiNDE3YTYxYyBweTNrCis2NjIwOCBjNWJlOTQ4NGIxNGJkMDdhZjRlOGQ0NjNhYjhhN2JhMzgwMTBlOThiIHB5M2sKKzY2MjA5IDQ1YzQzODA4OTc5ZTk1NzYzNmVkM2Q5MGYxNDIxYTkwOTIwMjBlYTcgcHkzaworNjYyMTAgZGM3NzRjZTAxYzFmYTJiNTkzMjI2NWVjZWJlZjliMDlkNDdkOTFmMyBweTNrCis2NjIxMSA4MzNkM2VjZmJiZjA5MTA5NDM3YjAzNmI0Njg0ODIwNTU4NjI0NTUwIGxlZ2FjeS10cnVuaworNjYyMTIgYjI2NjU4NDc2ZDU1NTlmMDMxYjk0M2I4MmJjMDlmOWI5NjBkNmI1ZiBweTNrCis2NjIxMyAzMTY5MjM2NzczZjFiNzViMzFkZmNlYzI4NTA3NmU0ZTkxMWEwNWQzIGxlZ2FjeS10cnVuaworNjYyMTQgMmMyYmVmOGZmY2ExMzhmZGQzYjFiMWYzMTc5MGIwMTUyZmFlMDVhYiByZWxlYXNlMjUtbWFpbnQKKzY2MjE1IDVjMTBhZjhkMzNmNWNkMmRlMzJkYzE1MGMwMmUxZDE1MDk5YzVlMDggcHkzaworNjYyMTYgOTRjYzExZWM3ZWMyMDJlMzM2NDc5NWU3MjhhYWRiNjk1M2NjMGYxZSBweTNrCis2NjIxNyA1Yjc2YTNlNDVhYjNlMDFiNzlhY2VmZjRjMGQwYzNhMTJjNzYyNmNmIGxlZ2FjeS10cnVuaworNjYyMTggYWUyYzFiMjc1ZmViM2FhZGIyZTI0NDU3MjM3YjM1ZThkZjc5MmEyMiBweTNrCis2NjIxOSA0NDUyZmYxZmJjOWQ1MTM0MmMyZDVjZjNlNTFkMTk5OWM4ZjZmZmQzIGxlZ2FjeS10cnVuaworNjYyMjAgYjc1NzNlZjI0YzcxOWVjMTViZmEzNTEyMzIyZDQzMDI5NDZkMWFhMCByZWxlYXNlMjUtbWFpbnQKKzY2MjIzIDdmOGVmOTgyOTRiYzExYzM3NWNlNjJiY2ZlMzRiZWI5NmY4Y2NmODkgcHkzaworNjYyMjQgM2ZhMDY2ZDJhMzk3ZGM3MDg1NGFhMzJkODE3MjNlNTdhNjBjMjI0ZCBweTNrCis2NjIyNSA2YjA0YmM0MmJhYTViYTdhOGQ3NmUzZTI1YWRmOTc5ZjUxMDM5ZGNlIHB5M2sKKzY2MjI2IGM2MTgzYTg5ODgwZTYyODEzYjRkNGNkYjZiZjdlN2M1ZDczOTc0MjEgbGVnYWN5LXRydW5rCis2NjIyNyBmZGQ5M2JmYTZjMWJhNWU3NWI4OTBmOThmZTA3N2M5YmI0MWEwZTk0IHB5M2sKKzY2MjI4IGE2NjIwMzQzZTNkYjQ3ZjhiZTZmMjYyNDBmMTg1ZGYyOGQwNGVkZDAgcHkzaworNjYyMjkgOGFmYTc3MjNhZmE3NmFkMDdhMzgxNDg2OGY0OGRlZTdlMGY3YjU2MyBsZWdhY3ktdHJ1bmsKKzY2MjMwIGI0ODY2NDljYThiY2UyMDE3YTJhMzI4NDllYmFhN2IzZmJlMDUyNDAgcHkzaworNjYyMzEgODlhOWJjMTg1ODZhMTczMmYxYWQyMTQ4ZGU1MDc2NDJkMTZlYTI0OSBsZWdhY3ktdHJ1bmsKKzY2MjMyIGI0NTg2OGZlNDg5Y2IyMzkzZmRhMGUxNDUzMGEwYzgxNjQ5ODY2NDAgbGVnYWN5LXRydW5rCis2NjIzMyBlN2U3MGU4ODExNjBiYWIzMzk0OGNlZWUwZDdhZTlhNDEzNjljZmQ1IHB5M2sKKzY2MjM0IGE2NzdkNjhlODEwNWM5YWZkZDhhNDJlM2QyMjJiZjMzMjlmY2JiMWUgcHkzaworNjYyMzUgNDMzMjIwYTYwYThkMDM1MGY0MDZlMWIxNWYwNzEyZDliN2I2YzE1MSBsZWdhY3ktdHJ1bmsKKzY2MjM2IDk3YjlmMGJlOTM4NTI0OWYzMmI2NjYyYmZlZmYzNWFmNGRhYTI2NGUgcHkzaworNjYyMzcgZTc0MDk2OTczOGVmMWY4YWY1ZmJmOGVjODU0MDkxNDk0MjUyNTVkMCBsZWdhY3ktdHJ1bmsKKzY2MjM4IGVjZDdmNTkwZTE0MjQ3OWMxNmVlYWFlZDdiNWY3NWM4YzIzOTkzN2UgcHkzaworNjYyMzkgZGFiN2FiYjc3ZThmODU1MzJiMjdiNmM0Y2YzNjdiZTdjNzY3ZWQwZSBweTNrCis2NjI0MCBmMzI1MTdmODc2YjY3YzFjNWYxYzhmMjE0MThkOWE0NGNmMWViYWI0IGxlZ2FjeS10cnVuaworNjYyNDEgMjZiZGQ5NGE0MjkzNzc2YTA3N2RiMTQxMDU4MDg5NWQ4MDQxYWMxZSBweTNrCis2NjI0MiBjM2I4MTEyMTRjZThmYWFkMDE4NjgzMzNmMmNiNGIwYTliY2E2YTkwIHB5M2sKKzY2MjQzIDIzOGEwODlkNDJiZDYyZTA4NzZlOWMzYjA1ZGQwM2FkMjk0YWExMTIgcHkzaworNjYyNDQgZGMwNzA5YTJiNDJmNTc3MjM0YTg2MjgwZjU3ZjVjNGUyNDkwMTZlZiBsZWdhY3ktdHJ1bmsKKzY2MjQ2IDQ4ODJlNGM0MWNlM2VmZWI1YmMyZjM1M2FhOGU3ZDU5MzQwNzM2MjQgbGVnYWN5LXRydW5rCis2NjI0OCAxOTMzODI0NzkyNWZjNGNmOWNlMzE1M2MyNjcyNjFkM2UyZWFkZDQwIHB5M2sKKzY2MjQ5IDc1MWYxYjU2OTliYWRlNGU4MDY1N2E4MTE4YThkMWU4YTA5MTZiOTQgbGVnYWN5LXRydW5rCis2NjI1MCAxMmVmN2E5MmU1OWJiYjI0NWQ4YzkzMzc1MDAyMThkNDQ2MGRlNzI1IGxlZ2FjeS10cnVuaworNjYyNTUgNjYyMzM2ZDU2N2E5ZWNlNmUxYjM4YWY0MTU1YzdjMTNhNjI0YmUwNyBweTNrCis2NjI2MCA2ZTcxYjM5OGI2Y2NkZmY2ODNhYzEyMDAxMDI0ZjAwZWZiZTY0YTk2IHB5M2sKKzY2MjYxIGY4MzY4MTQyZjhkM2I0MjlmMTFjODRhYzk5MzkyZDEwM2MzMzhlYWUgcHkzaworNjYyNjIgMTVkZjI5NzA1ZTE4MmExMjc2MjlmNjQ2Y2VjZTJmNGQwMmM5Yzg2MCBsZWdhY3ktdHJ1bmsKKzY2MjYzIDRkZDU5ODkxNDM4MzQ3YzU4NDQzNmY4NThkYTQ1ZTQxMDFiNDhmMTIgcHkzaworNjYyNjQgNjcwMjhmNWIzMzIxY2MzZTk1MjNkMTU3MGUzYzE3ZjVlOWE3YzAyMCBsZWdhY3ktdHJ1bmsKKzY2MjY2IGMxYThmNmI2NDhlYTUxZjFjYTlhMmU1N2Q2MjUxYWYzYWU5ZmI5MzAgcHkzaworNjYyNjggYmIwZjc0MjhhMTUwN2RlYmE3MjJmMWFjYTk5ZWMyYjIwOTBjZTNmMCBsZWdhY3ktdHJ1bmsKKzY2MjY5IDY3NDZjNmJlZTI4NjA5M2MzMWVkYjg5MGZkYmYyMzU5NTU1NTkzMGMgcHkzaworNjYyNzAgZTI3Y2Y3ZWUyOTY4YjNmYWU5MGEzZWQxZGFkZjRlY2ZjZTJhNTkxNCBsZWdhY3ktdHJ1bmsKKzY2MjcxIGNhMWE4YWM0N2QwNDYxZDEzMmE3MzRjMzEyNWZiZmJiMGI2OTFkNDUgcHkzaworNjYyNzIgNDQ1Y2U2NTc1MTYyZWJkM2Y5OTRhZjdiMTYwMDdlMDJjOGZhMjljNSBsZWdhY3ktdHJ1bmsKKzY2MjczIDhmZmVjMzcyMDQwZTQ3YTliMjYwNzAyMTkxNzc0NWVlNzRiYTY4ZDcgcHkzaworNjYyNzQgMTc5ZjhkODlhZDE5YTZiYTRmNDRhNmVkYzlmYjVmZTFlODdmYWE0NCBweTNrCis2NjI3NSBmZGE2ODk5NzBiM2Y4MjhhNmRhMjI1M2E0YmNiYWMyYjYzNjAwNjQ3IGxlZ2FjeS10cnVuaworNjYyNzYgMDI2MjdiOTI1YTQzYzcxOTRiNTgyNGIxYjEwYWRmOWJlMWM4Yzg4MSBweTNrCis2NjI3NyBmZGMwOTQ4Yzk1Y2YxOTc5YjA1MDI2YjkwOTZhYzQ4MjE5YmE2OWZmIGxlZ2FjeS10cnVuaworNjYyNzggMTM5NTViY2QwOGJlMWE1YWFjMjU3NTgyMGJhZjk4NmEyZmUwYmY2MSBweTNrCis2NjI3OSA3N2UxYjk1ZjE0MThiMTMxZDQzYjFiZjNiNmUzYmViNWRhY2IxZmFmIHJlbGVhc2UyNS1tYWludAorNjYyODEgYzZiMDJmNzliMmJjM2EzNTYwOWNiYWY4YjIwNjEzNGNhMmJiODQwYSBsZWdhY3ktdHJ1bmsKKzY2MjgyIDJlY2I1NmU2ZTBhNmNkMTMyYWE5MTE0MGE0Mjc1MmQ3NTY1OTdlNzcgbGVnYWN5LXRydW5rCis2NjI4MyA3NTEwZDg3M2I4OGMzMDMwZTE0OTkyOWNlMjhmM2Q2OWRlZDYxMTU4IGxlZ2FjeS10cnVuaworNjYyODQgM2YyYzRjZTMyYmE0N2EyZDM4YTQxMjJmOWM4NjBlYzc4OTcxMmJhYiBsZWdhY3ktdHJ1bmsKKzY2Mjg1IDkwY2ZjNmI5MjZjNmY1NDRiNGRkNjQyOWY2N2EwMmJmYTZkZmZiMGEgcHkzaworNjYyODYgNDczM2Q4NGYzNDg4YjRkZTExZmU1MGI5MTRkMzNiMjA2NTVlNjUzOSBweTNrCis2NjI4NyA3MzUzNmE1OGFiNDI2MWQyYjViNzc2Y2ZmMjhmYmY1OTA2OTU3OTRmIHB5M2sKKzY2Mjg4IDhjZmJiMmUyNzVkOWM5MTU0YWEwZWMyYjFkNTI1NDU4ZTU4MzQ3YzggcmVsZWFzZTI1LW1haW50Cis2NjI4OSA5ODdkYjdhZjA3MDAyYTEyYzAzZWJlZjliMmEwMWQ0ZTliZTJjNjE4IHJlbGVhc2UyNS1tYWludAorNjYyOTMgNTIzZDZkN2U1ODI1YzI3YWMwNjNhNzM5M2I5ZTExNDFkMzQ3NjJhNyB0bGVlLWFzdC1vcHRpbWl6ZQorNjYyOTQgM2FmNmE3MDIwNzBiNDNhNGVhNGQ0NTViY2Y2ZTUzYjY0ZDQzZGUzNCBsZWdhY3ktdHJ1bmsKKzY2Mjk1IGExY2FlOTU1NWY1ZGY4Mjg1OWM3ZGRiNjVjZDczM2I0MzQxOWQyMjYgbGVnYWN5LXRydW5rCis2NjI5NiAyYWIwNTI5MjM3Y2IxYTUwMDA4YThjMDQ1ODA1NmI4NGI5MmQzOTZmIGxlZ2FjeS10cnVuaworNjYyOTcgMjYxMWU4YWUyMzhmZDZmMWNlNjM0NThiY2JhMTNhNWQwMjUyYjNhNiBweTNrCis2NjI5OCBkNzk0MjM4MTUwZDIyZmM0YWFmMTAzZmU2NzI0YjU3OWRjNGM5NGQwIHB5M2sKKzY2Mjk5IDA1ZTI1ZDdhMDdlMTk4N2Y1NWMxNDc2ZDhkMDg1NWExZDM4OTUyMjQgcmVsZWFzZTI1LW1haW50Cis2NjMwMCBhOTM0N2NiOGFjMzgwNjcyZGFiMjYwNDg4YzZjMTg0ZWE4NDhhN2Q1IHJlbGVhc2UyNS1tYWludAorNjYzMDEgN2IxZjhlZGU5YjUzNDNlOGNmNDY5YjZmYmQ2MDk1MTJmOGMyNmYwZCBsZWdhY3ktdHJ1bmsKKzY2MzAyIGYwODVmMzlhNmY0ZDEyMjMxZTZkNjY5ZmI4NzJjZGUwZjQ5NmMxNTUgcHkzaworNjYzMDMgMjcxZGNlMDkxN2MxMDU3NTRjMDI2MTBiMzU5YzMwMDI1YmViODExOSBweTNrCis2NjMwNCBhYTBlZjVkZTM0NWE3ODhmN2NjYWZkMjQwZTNiYmYxNDYxOGFjNzE3IGxlZ2FjeS10cnVuaworNjYzMDUgNTY4YWI1ODM3MTk0ZDg5OWUxMWZlZDAxYzI3MDVjYmMxYTk4OGE1YiBsZWdhY3ktdHJ1bmsKKzY2MzA2IGZlNTM2MmQ5MzU0MjU4ZTE5MTljOTBkMDY2OGUwNDM1MGU2ODU4MjUgbGVnYWN5LXRydW5rCis2NjMwNyBkNjFiOTU2YjBiZjY0NGMzMDlmMGRmMjg1Njc4YWNjZTI5OTlkNGFhIGxlZ2FjeS10cnVuaworNjYzMDggZGU2ZWVmMzFhYTVmNzI5OGUxYWE3YzgzZGI2NjE5ZWRhYWFlZTJiZCBweTNrCis2NjMwOSA1MDk0MWJlZmYwMzI4YjRmNmIyNjVhMDMxZGFjN2U3ODcyNjVjNmQ2IHB5M2sKKzY2MzEwIDM3YjcwY2Q0YTBmMGQxMGZmOTg4YTA3ZjA1MmRhYjViNGIwOGFmZTYgbGVnYWN5LXRydW5rCis2NjMxMSBhYzNiNjcwNDMzNjFlYTYyOTIxM2VjZjI4NTM2NjRiYWU3ZjRiZjQ1IHB5M2sKKzY2MzEzIGJmNGJjOTczZTJhYWZiMzM4ZmY3MDdhMmNiOWVlMGQ2MTgyYjA1YjkgcHkzaworNjYzMTQgNDQ3MDJlMjczNzUwNmM1MjdiZGMzYjFjNTBhMjk4OTNmMGRhNTAzZiBweTNrCis2NjMxNSBjODcxM2ZiMDVmOWU0ZTgzNDMxOGU1NGE1ZDBkNjU5MTRiYzM3MTA3IHB5M2sKKzY2MzE2IDk3M2JkYjJkYjZhYzk2ZTI3MGZjNTMyYzc2MTk4ZDNkYmQ3YmYzYTkgbGVnYWN5LXRydW5rCis2NjMxNyA0ZDE0OGJiODRhMDc3YjJhOWZhMzczNGZmNGQzZTM2YWYyZTY2NTgwIHB5M2sKKzY2MzE4IDg2YTQyZTlmNzNkYzIxOTMwMTY5MmEyN2RlNWZmYzM3ZGEyODhkMmYgcmVsZWFzZTI1LW1haW50Cis2NjMxOSAyM2I0NTJhYzFhNTBhNDlmYzQ5YzcyMDFmZTc1ZjljMDNjZWU4ZjJjIGxlZ2FjeS10cnVuaworNjYzMjAgOTY0ZGI4NzlmMTkwZTlkY2NiMWQ2ZjVkY2U3MTA3YzVkMTU0NDE2MiBweTNrCis2NjMyMSBmZjk2YTMxM2NkMWM4MzliYTMxYjM1NDIzMWVjZWRhZGY0MjA3NWE4IGxlZ2FjeS10cnVuaworNjYzMjIgM2U2ZTU2NWVlMzBhZGNiNWVjMDNhNTgwZTdmYTE5OGEyNGRhOTdlMiBweTNrCis2NjMyNiBjNDZiY2NjZjJhZjJlNDc3MjU3NDk1ZDlhZDVhNmIzNzk3MDkxNDNjIHB5M2sKKzY2MzMwIGI1MjhjYmVhNjBlMWM1MTVmMDgwMjY5ZDRhMzkzZTQwOGE2ODcxNGQgcHkzaworNjYzMzEgZjcxMjNkNDVkMGM0M2U5YWUwZTgxNmE2MDc4ZDJkMGQxNTNiMzUxZiBweTNrCis2NjMzMiA5NzQwNDBjOGYzNjk2MTEwNzQ5ZjkwMzQ5NjY3MmUzOTU3MTkwYWQ2IGxlZ2FjeS10cnVuaworNjYzMzMgZjY2NTBmMjQ3NTk4ZTJkOTg2Zjg2MjBmYmQ0M2ExN2M0YzM2ZTMxZiBweTNrCis2NjMzNCA3MDg3ZWE4MjhkZGEyZmI1OTI3MDQyYzU0OTE5NjYyYWZkNTA2NGYyIHB5M2sKKzY2MzM1IDBmNDQ1N2NmMjViMmNlYmEwOThmNTRiYjhjNzM5YTM2YWQyZTk4NzggcHkzaworNjYzMzYgNzU2NjM3YTNhYzRiYTI2MTAxNDBhMWU0M2RmMDQzMDgzZWUzNzNiMCBweTNrCis2NjMzNyAzNmIyZDY3NGZjOGM1M2ZkNDMwM2MzYzRmNGE3YTE1NWM1ZGM1YjU3IGxlZ2FjeS10cnVuaworNjYzMzggY2Q2MWQ1NGZjOGMwNjRkNzM2NzE4MTZhOTYxNDczYzZhMjliNjJkMiBweTNrCis2NjMzOSAyOTA5NDg0MmIzNzc2YTlmOGJlOWM5ODY2M2JiNGQ2MGQ2MGQ2OWY5IHB5M2sKKzY2MzQwIGE5MGIyODU0NThhYjAxN2UxZmUyNzRmMzQ0OWI2OTMzMzA3ZGNiMWUgcHkzaworNjYzNDIgMTM5ZjZiYWVmNmMyMzA4MzEzYTE0MmY3NWE2M2ExZDI0YzgzZTZjZSBweTNrCis2NjM0NCA0MjQ5ZTU4Mzk3ZWYwMWMxZjJlMmE3YzI4MGQyYTFmZWM2ZTE5YWEwIHB5M2sKKzY2MzQ3IDZmMDgyNzhiZjhiMWY1ZWE5ODdhZTU1OTFhOThiYmRjMmVhZjY5YTQgbGVnYWN5LXRydW5rCis2NjM0OCBkYzBjYWUxZTZhZGIxNTYxOTQwZGQwYjY4Nzk2ODM5MTMzYTVkMDJjIHB5M2sKKzY2MzQ5IDQ5YTkzYzAyYTZkMjEzMTdmYTUyNjFmNWQzNDViNzlkNjdlMjg0ZmQgcHkzaworNjYzNTAgNzUzYTc2YjNlZWE5MWRkMTljYTg5YjYyMWNiYmU2ZGM0Njk1MWRhMSBsZWdhY3ktdHJ1bmsKKzY2MzUxIDVjMDM4ODFjMjA3NTUxNTI1NTJmNmEyOGJhNTUyZmRlZDM1MjRiYzMgcHkzaworNjYzNTIgNzNjYzdiNjM1NWI4MTc2YTk1YjU1OTE4NTg5YmU0ZWZkNmJlM2ZjMSBsZWdhY3ktdHJ1bmsKKzY2MzU3IGRjMTlhMWI3YzVhNjM0NDgwNTM1N2M3NjhiZjVkNWJhZmZjMzk3YTEgcHkzaworNjYzNTggMmMyZTNhNTZjN2JjYzg2NzIzYzE0ZGE4YTk0MThhZDNlNDZiZjRjMSBsZWdhY3ktdHJ1bmsKKzY2MzU5IGU5MGEzZjBhOTkyOGFkM2ViNGVlN2VhYzk2MjBlNTY3N2Q3Nzk0Y2EgcHkzaworNjYzNjIgYzM3YzdkYmQ3ODgwZGIwMzQ1Y2E3ZTk3YTIyNmIxMWNiZjRjODVjZCBsZWdhY3ktdHJ1bmsKKzY2MzYzIGRjNjAyOTNiMjlkNTExOWJmNjc3Mjk5NmFlNzU0ZDEwZGIyYzlhOWUgcHkzaworNjYzNjQgOTVhYzY5ODM1OGFiYjM0ZDgwMzRlNGRmN2JlYzRmMDdlNGI1ZDg5MiBsZWdhY3ktdHJ1bmsKKzY2MzY1IDc3NTY1YmUxYjk1NzcwZDFmMjY0NDc3N2U4OGRhNGIzODY5YWY0ZGYgcHkzaworNjYzNjYgNTEzMjY2YTc1ZWMzMWUxMWUzMzc1ZGUzNjM3YzI4ZmU1MDczNjI3NSBweTNrCis2NjM2NyBmMTAwZWZjYTE0ODcxYmI4MjFhMzFhZWM4ZGQ5ZDFiMDI1YmRkZmZkIGxlZ2FjeS10cnVuaworNjYzNjggMjVmMTQxMjhhOTdjMThlNDRiZmRmNDE4NGJkOTcxOGE4NTc5NjJjYiBweTNrCis2NjM2OSAyYWI4NWMzOTJhOGRhZTAwYTVlMTcxZDhjNmJhMDk2OWUyNDdhNTBhIGxlZ2FjeS10cnVuaworNjYzNzAgZGQ5NjE0NGU2ZTgxZmE0ZTZjYzU4YWFlMDcwMzVhODk0Y2NiMWQzNCBweTNrCis2NjM3MSBmOTc3NzkyNjJiYWMxYjM1ZWRhMzAwYjZlN2ZlMjcwYWMwNzJlMTZmIHB5M2sKKzY2MzcyIGFmNDAyMzhhNjhiOTVjYTA4M2E3YmJjNTdkNDc4OTA0NjIxZjk3ZmUgcHkzaworNjYzNzMgNTg5MDczY2VlMGFlNDdhNjZhMTBiOWM1YWQwMTFlMjFlN2EyMDNmYiBweTNrCis2NjM3NCAzNDhhMzMwNDhlYmY0OGZiNTA3MjU2M2Y4NmJlNzQ0MmY2M2M3NDI3IHB5M2sKKzY2Mzc2IDE3NDc1ZWI1NTA2N2FjMWQxOTU2MDgxZGYyY2VkZjYxNTAxNDQxZmYgcHkzaworNjYzNzcgMTQ1NDQ5MTA5YTMxY2ExNmIzNGI3OWUyOTg1MDhiYWJiNDM2MWUwYiBsZWdhY3ktdHJ1bmsKKzY2Mzc4IDZhZTJkNGI1MDdhMjUyZjYxZDQzMjQwODJkY2MyMDlkZGI2Y2QyNjkgcHkzaworNjYzNzkgYTRkZjQ5MDNiMzU1NTY0ZjJhNDdlNTIxOWM0NTg3ZTNkNzU0NTg4NyBsZWdhY3ktdHJ1bmsKKzY2MzgwIGQyN2RmMDgzZDRlNjc0ZDk3MmU5NTRjNDRkNzhmNjNkNzZjZTI1YjUgcHkzaworNjYzODEgNTFmZjkzNDU2MmMyM2VjYTZkY2YyMWVjZWFmYjk3YjViYjNkYjgxOSBweTNrCis2NjM4MiA4NzUzMTMwMWJhNDhjODdlMjhjZGJkZWIxMDViYmYxZmVlNDdkYzkzIHB5M2sKKzY2MzgzIDNkYzMxODA5NjMxZmUxNzkxNWM1NjZiNDEyMjZlODJkYzZiYzNjOWIgbGVnYWN5LXRydW5rCis2NjM4NCA5NmQ2Mjc2ZDgwZTIzMjQ2YmEwMTI0MzFkMDcwMzA2MDU0ODJiNWFkIHB5M2sKKzY2Mzg2IGYyOGI5OTlhNjlmODNiNjUwMzcxZjU3Y2U0MzE5ZmIzNzRlZTc3OGEgbGVnYWN5LXRydW5rCis2NjM4NyA4OWMyYTY5N2Y3NzJmMGZiNjVmZWZlYzQwMzFjMWRlMDNhNGI2ZWU2IHB5M2sKKzY2MzkwIDBlZjdjYjM1YjIxNjcyNDY3NjY0ZmNiYzMyMzRlYTFkZTJkZTQ2NmEgbGVnYWN5LXRydW5rCis2NjM5MSA0Y2Q5N2Y4ZGU2OWUyMGE5ZTY0NWZjZThiMzZlNDI5OWEzZGM5MjdjIHB5M2sKKzY2MzkyIGMwNWY1YWJlZjc4YWQ1MjUyZTJiZWRhOGUwZDEzZTk3ZWQ5MGI3ZTggcHkzaworNjYzOTMgMjgwMzQ3ZDJmNzY1MDFlMjM5NDQ1ZGU2ZjE1Y2NiYWI1N2ZiNDQzZSBweTNrCis2NjM5NCAwZmNkNGRiMjNkZmZlYjM5YzU0YzZhMmMxNjUyMTczNzk3Y2IyMDFhIGxlZ2FjeS10cnVuaworNjY0MDQgZmYxNWU2MmEzNDliNzhiZDc4OWVhZTViMTdiZTU5NzcwMTRjNTlhYiBsZWdhY3ktdHJ1bmsKKzY2NDEyIDRjNzdkMTAxNmY2MGFmNDUyNmMzM2NiZGQzOTNhZWQ3ZWFkZTU0M2QgbGVnYWN5LXRydW5rCis2NjQxNCA3NmJjNzU3NzI3MzZmMzJlOWQzNDE4YTVmMWYzMTU3NWRhODBmM2FhIGxlZ2FjeS10cnVuaworNjY0MTUgMzgxZWNmNDZkZmFlNDRiODNlM2I4ZGI0ZjEwY2RiNGEwZmZmNDFmYSBsZWdhY3ktdHJ1bmsKKzY2NDE2IDFlYmIyYThjYzA2Yzk0NDcxZDcyYjU0NzZjMjA1MGM0ZDExNWExYWEgbGVnYWN5LXRydW5rCis2NjQxOSA0ZjdkZTFjYTkyZmY4MDY3MWVhMjJhNTgzYjBiOWE5Y2UyNjE0ODM1IGxlZ2FjeS10cnVuaworNjY0MjIgNzM4YmE4MzE5ZjQ5MjA0ZTQ5NjE5Y2I1ZWM5YTU3M2Y3YjYxNWY1MSBsZWdhY3ktdHJ1bmsKKzY2NDI0IGM4ZDQ0NmVhOTZkYWJkM2JiNGRkNzY2NTdlNmQ5MmFlMTAyOWNlYjYgbGVnYWN5LXRydW5rCis2NjQyNSAwOTMyYjliYWE3YTQ1OGYzNWNkNzFmZjdlZjcwYWY5Y2Y5ODFjMTczIGxlZ2FjeS10cnVuaworNjY0MjYgYmIzZDFiZDFlMjkzM2U3ZTExZWJkZGI5YzliMWZiYjIwM2Y5NzBhNCBsZWdhY3ktdHJ1bmsKKzY2NDI3IGU3YzI4MDBiMjNiZjgyYjU2OTM5YzNjYmRkOWY3M2ExMGFlMjEzMDQgbGVnYWN5LXRydW5rCis2NjQyOCA0MTUyNGY5ZTJhMmY5ZmI4NTljOTdhM2MxZGQxM2E1NTkyODBmNmQyIGxlZ2FjeS10cnVuaworNjY0MjkgNWNlMDE0MzhiYWFhNTk1Y2Y5MTUyMTkyYmVkZGQ2MDU1NzBmMDZhMCBsZWdhY3ktdHJ1bmsKKzY2NDMwIDU5NmExYWQ4ZmViNjFiMjUyMzdjOWY3ZDIyNmI3ODYxY2EyZTkwM2EgbGVnYWN5LXRydW5rCis2NjQzMSA3NDI2NzFjNWQ3Yzk1YzY1YWJkM2EwZTNjZDIyYjdhN2NjNGUyMDhkIGxlZ2FjeS10cnVuaworNjY0MzIgYzBkYTdmMjM2MWVjZGMzODVmOWZiMmQyMWQ5NTk1MzdkNDc3MTcwZCBsZWdhY3ktdHJ1bmsKKzY2NDMzIDA1MTM2MjkzZjBjOGJmZDVjZDI4MzU0NjI5ZGU1YzJjZjdlYTIyMWMgbGVnYWN5LXRydW5rCis2NjQzNCBjM2YwZjk3ODM5ZTM4Mjc3ZWY1Yzk1MTJiYjlmY2IwZjFhZDU2YjA5IGxlZ2FjeS10cnVuaworNjY0MzUgNTJlZjk1YmRkODAxZTQ0YmU0ZmZiYTJiNTUwN2FhZWM3ZWE0N2MyNSBsZWdhY3ktdHJ1bmsKKzY2NDM2IDA2ZjMyM2FhNzJjNDk1MDc4MGJlMTY0Y2M4ZGM4NWM5ZWI1MDhhNDQgbGVnYWN5LXRydW5rCis2NjQzNyA2NzA5ZmY4Mjg3ZDk4Nzg0YWE0MWJkOTY2NmJiYmYxZDg1ZTAxNjgwIHB5M2sKKzY2NDM5IDY2NjVlYmZmNjRmMWYyYzIwNjYxMmMwODg2MWY1N2RmMmRjODdiMzggbGVnYWN5LXRydW5rCis2NjQ0MCAxZWFkZGQyMzg4Y2MyNzQ3MWZiNDAyM2RiMDdmMThjMzc0MDNjZjM5IHB5M2sKKzY2NDQxIDFhZjE2OTcwZGFjM2ZkNDU2NWRlZmEyMzI4OTExYzgyYjc2YTU0YmMgbGVnYWN5LXRydW5rCis2NjQ0MiBkNDA2OTgzZWQ5Mjc5Y2NjNjU5Yzg2ZmIyY2ExZDBiMGY0Nzg2NjBhIHB5M2sKKzY2NDQ2IDhmODg2YWNhYTE0MmNjYWE5ZDliNjIyODg2MjBjYjFmYmI0NTlkODcgcHkzaworNjY0NDcgZmViN2JkZTFhNGQ5MzAxMTcwODZhMjg1NmJmYzBmYTk2NjJkZjdmOSBsZWdhY3ktdHJ1bmsKKzY2NDQ4IGM4N2I4NGRiMjQ0Y2Y2MzBlMzAzNzA5NzM2Y2Q4ZGZmMTdhMmE1MjEgcHkzaworNjY0NDkgMDk1ZGU1YjkyOWRkYmI1NjRkZjk1NTQ5NzVlMTAyZjk5YmEwZTljNiBweTNrCis2NjQ1MCA3NWIwZGNiYzNjYzcxODE1ODg5MDMzMmVhZTRjZTczNDU0ZGVmMjE3IGxlZ2FjeS10cnVuaworNjY0NTEgM2IwNDhlMzFkZDllNzdhYmRmNmJkNTk4OTJkZDExODdkMjVjNjc1MSBweTNrCis2NjQ1MiA1OWRiNGIzYTA2YjAxYjUyZjc4YzRlNzQ5YmY4MjM3YWM0N2RlZDRkIGxlZ2FjeS10cnVuaworNjY0NTMgNTZkNWMwM2I5MmI2Y2VmMTU5ZWFmN2ZlM2U0MDgyZWE0OTJhYTY4ZiBsZWdhY3ktdHJ1bmsKKzY2NDU0IDQ3ZGI2MmJmNmFhNzBkOGU4ZjVhYmY5ZTBkYTVhYTlkNmU5OTk3YmMgcHkzaworNjY0NTYgNjI3MDBiYjdmN2I1OTA5ZWE3OGNiMDcyOWY1OTY2NGEyOTI1NTIyMSBweTNrCis2NjQ1NyAyYzViYjQ2MzRkMmQ5ZWM2YTc3NzY1MjZlMWQ1ZjU5YTQwYjUwY2MyIGxlZ2FjeS10cnVuaworNjY0NTggZjk5ODAwMTY2YzJiNzNlMzNiNzIyYmZkMzVhZmQ3ODVlMDAzMzUxZCBsZWdhY3ktdHJ1bmsKKzY2NDU5IGNkZGY1ZDY0NzZjZjEyN2I4OTZmNDIzNjU0NjY4YWJmYTkzZTA3ODEgbGVnYWN5LXRydW5rCis2NjQ2MCBlOTY5MjMyMDU0YTJjMzhiNzI1ZmZjYmFiMmI0OGZjMDQyZmNlZTkzIGxlZ2FjeS10cnVuaworNjY0NjEgNjkyOWI3NDI3MmM0MGVmNTMyM2NiNTY4MTMwZTJiZmVjMjNjYWEwZSBsZWdhY3ktdHJ1bmsKKzY2NDYyIDYyZTVmNzNkMDViNDlmNDI3ZDZiYmY1YTg1MThiZmE0NTY5MzJkMDQgcHkzaworNjY0NjMgNjRiZTlmOTA4NjRlMTRiMzM1YjY0ZmQxZTBkNWM1MzM5NTE0NDM5MSBsZWdhY3ktdHJ1bmsKKzY2NDY0IDI2MDU0NjViYmEzYzE4YTFhYjMwZTZiYmE2YWZlZmMzZTMxNDcwNzYgcHkzaworNjY0NjUgYTNmMGQ2NjdlMmNlNTU3Yjc4M2UwNzgwODE3ZGI5NzZmYTA1YjEzMSBsZWdhY3ktdHJ1bmsKKzY2NDY2IDNhODJlNTAyNDc0MzI4MDA1YTRkYjY2NGVjYTk4ZWExZjExYWQ1YTYgbGVnYWN5LXRydW5rCis2NjQ2NyBhYWViZGM0YzQ2OTAzYjMwZjI1ODU3ODZmMzc5YzY4MDZkMzBmYzQ1IGxlZ2FjeS10cnVuaworNjY0NjggMDJhNmNjNWQ3YTIyNzZlMTkyMzkwMDUyODJjNGJkODY5ZTE5NmQ1YiBsZWdhY3ktdHJ1bmsKKzY2NDY5IGJkYjY2MGRjYTc0ZDZhZjRjMjZmNjI3OTdmMzQyNWQyZDYwMjIxM2EgcHkzaworNjY0NzIgZjk3NGUwZmE1NGNhYTc3ZDM2MTI5ZTVhNGZiYTdiYTkyZTFkOGQzOCBweTNrCis2NjQ3MyAxMTY3YWU2NDVlOGMwMjc1NDNhYTE5YjRkZDg2Njk1ZjVlNmI2NGIwIGxlZ2FjeS10cnVuaworNjY0NzQgMjBkZjA2ZTFiMjY2OWY1OTI4ZWQ2ZjViNzBlMjhmODhhMTU1MDg5NiBweTNrCis2NjQ3NSA2NzA0M2ZiOGFlYTVjMGU4MTA1MDVmYWNmMjMzYWI0ZjZjOWU4NTQ4IHB5M2sKKzY2NDc2IDMzMDIwNDViYWU5Nzg5NjExYmUwNDVhMDc3N2JmNjgxNDU3ZDY5YjggcHkzaworNjY0ODAgYmIyYTBhMzdmYWE5N2JkYmVjYmRlZjkyMTIyY2QxNGM1MDI5YTE2YiBweTNrCis2NjQ4MyBkMTdjYzRkMTc2NmNhMTNhZjU0ZTJhNjg0M2M0OGYwYWE1ZjQyNzBkIGxlZ2FjeS10cnVuaworNjY0ODQgNDQ1M2UyYzZhYTdmZDJlNTRhOTY2ZDhiODU4NzgyMWMxOWQyM2I1MyBsZWdhY3ktdHJ1bmsKKzY2NDg1IDk3ZjI4ZGZhMTU0OWIzYzFkMDk2YTNlMDA2MDNlMmY4YmM2NzJlYmQgbGVnYWN5LXRydW5rCis2NjQ4NyBhMWMxOWYyNjNmNzk1NWZmMWY3YTBkZTIxOGRlZDU2NTJiNDRlOTJkIGxlZ2FjeS10cnVuaworNjY0ODggNWQyZjE2MTE5NDU5NGIxYWE4NTczMTAzZTQxNTM3NjZmYmU5OGI1NyBsZWdhY3ktdHJ1bmsKKzY2NDg5IDJmOWIwNmY5NWM5YTZhN2QxZmUwOTU2OTU3NDAzMGQ5NmRhMTcxMDUgbGVnYWN5LXRydW5rCis2NjQ5MCA3YjE2ODYwMmY0NGRiMmFmYzRiZGNiOGQxMmJkNmVlMGVkZWZjYmJkIGxlZ2FjeS10cnVuaworNjY0OTEgZTI0MjllMjMyNTc2YTY2NmZkMmY1NDNkOTU2ZmRkMjk5OWMwOTY3MyBsZWdhY3ktdHJ1bmsKKzY2NDkzIDMwZWYyMmE4MDI2N2MzZDY5ODI1MzBhYjZmZTg4MjFjYzEyMDRjNWIgcHkzaworNjY0OTQgYWY0YzRjZjNlMDFlMDkzMmU2NDQwYTI5NWZjZDBlNWE5YzdhM2JjYyBweTNrCis2NjQ5NiAyNjA2ZDlhMDBjN2I2MjIwMGY0NDA2NWFlZDQwOWNjMGEyYjc2ZjNmIGxlZ2FjeS10cnVuaworNjY0OTcgNTg4MTg4NDYzNjNiYjVlMGM4MWFkNjJkNmFmNDY5ZTU1ZGFjNWEzMSByZWxlYXNlMjUtbWFpbnQKKzY2NDk4IGZlMzU1YmQwNWM0NzQzODI1NDZjZjg0N2FiNTc4NjhlYzVlOWM3YmEgbGVnYWN5LXRydW5rCis2NjQ5OSA1MDdlZGU5YzdmN2Y0NzVkZmFmYmQ0YTUyYzIyZDc2N2QxMGEyYmMwIHB5M2sKKzY2NTAwIDVkNjFjNjU0ODQ5Nzk1MDE3ZGNhNGMwOTY1Y2Y5MDg3YTY4OTRjMTAgcHkzaworNjY1MDEgNDI4YjA1M2JiMDk4MzkzOTMzMDE4YjcyMTU5NDEzZDBmYjBhZTM4YyBweTNrCis2NjUwMiBjNjcwM2Y0OTg5YjM3MzBmNDM5NWZhODBiNzI1MTAwNDdlMGFhYzM4IGxlZ2FjeS10cnVuaworNjY1MDMgMGFkOGNlYTYwYmZhMGI2MDQzODI1YTZiZTMzOTc2ZjRmODU0Y2RhYSBweTNrCis2NjUwNCA1MjU3OTIwOTdjNjMwOGE3OGE3NmI3YjVmNTZiYmQ4YTI0YzI2YWNmIGxlZ2FjeS10cnVuaworNjY1MDUgNTU0OWI1ZGY4YmNiZGVhNzIxZWQxZTljZTcxOTU0YzI2MDNmNjZjYyBsZWdhY3ktdHJ1bmsKKzY2NTA2IDBlZWMzNDc1NTA0MTRlZWZhM2I1ZjUyYTBlMWI1MzdkZjlmYzM3NDkgbGVnYWN5LXRydW5rCis2NjUwMyA0OWI5Yjk5NjVmMzEyYmExNWZhN2E5MmJkNGRmNWMyYzdjMzgzODdkIHB5M2sKKzY2NTA4IDc2M2U0Yjg0ODgxY2MxYjkyMDc4YmI4MDIyYjgyZWExYzY1MGQ3MzEgbGVnYWN5LXRydW5rCis2NjUwOSA2NzAwZmQ4MTI1YmE1ZTBkMWM5NjgxNDFiNTEyYmE1ZDRlYmJiNTUwIHB5M2sKKzY2NTEwIDlmZTQ2N2ZmMGMwODYzNGIzY2RmMjFjOWE5NjYyNGNhOTQ3NmVhMjUgbGVnYWN5LXRydW5rCis2NjUxMiA1YTcxYTYwNjhlMzAzNTg0NjI3Yjc2NWNhZmUyZTQyYmFjYmZiY2Q3IGxlZ2FjeS10cnVuaworNjY1MTMgYzQ1YTY5NjViYzQ2Nzc3ZTQwMTdiOTc1MjJjZGU3Y2RiMTRlOWIzYyBsZWdhY3ktdHJ1bmsKKzY2NTE0IDYyNjAzMjU5NzcxMjAzMTAxMjUwZmVhYmUzYWJiOWY1YmE4MTNjZmEgbGVnYWN5LXRydW5rCis2NjUxNSAxNWFjNDk2MDJhMDY0OGIxYjU2ZjkxMjIxYzVmMjZkZWM3YWNmNzJhIHB5M2sKKzY2NTE2IDU3OGFkNDkxZDRhNDg2YmQwMDE3ZDU4NmQxZjA1YzM4NjUwOTkyMmUgbGVnYWN5LXRydW5rCis2NjUxNyBjMTM3MjkzMmFlODdjYzk1NTU3MGUyNDk3MDgyY2Y2NmMxMWEwNmI2IHB5M2sKKzY2NTE4IGYzZTVhODUzNDIwNjI5MzYzMDk5ZTczNmI1Y2IyMTA1MzRjNzU3Y2MgcHkzaworNjY1MjAgYjZhODAzMTg4NDU0ZDc2MzJlYzIzYTI0YjdmNzAzZWJhODQyYWE1YiBweTNrCis2NjUyMSBjYzlkOWQ5NjZiMWE0ZmY1MDJlZjRmNjhhZTBmODBkZmVlNTAxMzUyIHRsZWUtYXN0LW9wdGltaXplCis2NjUyMiBkNmI4ZDQ2YTM0MzFiYWM0YmE0NjBjMzRiOGRmZDc2YTZmYjE5Njk0IHB5M2sKKzY2NTIzIDUwYjFlNTU3NTZhNTA3YzUxYWRlMGU4YWJiMzZhZjc4N2RlNjcwZWQgbGVnYWN5LXRydW5rCis2NjUyNCA0ZjlhOTcxNDBmMGVmYjlhZWM4YTM0M2Y5N2I1ZWI0NDc2YTUwMDg2IGxlZ2FjeS10cnVuaworNjY1MjUgNjFjNjhlMmM1NzFiMDdkY2U1YTY2MDQzNjViNzNkM2ZmMDhiM2U4NyBsZWdhY3ktdHJ1bmsKKzY2NTI2IDg1YjQ4MGVmMjYzNWM2N2E5MjQyNDA5NzIzNjVlMTE1MjBhZDZhMjggbGVnYWN5LXRydW5rCis2NjUyNyA4YjE3ZjkyYmJjNGRiNjY0MzU2MjRjZDBkNWNlZDUxYzdmNzVhNGY2IHB5M2sKKzY2NTI4IDZiOWYyY2U1ZmU5MjJlODZjMDIwNjQ2YTU2ODRkMzE4ZmYxYmVkODUgcHkzaworNjY1MjkgNzAxZGI1ZTk2N2I1ZGIxMmYyMDgzMzQ2MmIzMmRlZGYzMzNhZDY2ZCBsZWdhY3ktdHJ1bmsKKzY2NTMwIGI4NDE1NTJhOWE3M2I5NDFlNDFhMDBmMzEyYTQwYTJjMzkwN2Y4ZmEgbGVnYWN5LXRydW5rCis2NjUzMSBmNzFmNjRhZTY1MTk2NmU1MDRlMmJmNWQwMzY4N2E3OGJmMjNmNWE2IHB5M2sKKzY2NTMyIGU1MmEzNTk1ZGZkYmM1MDZlN2JkYTM3NDhkM2U3MDIyYWYwMmEwZTkgbGVnYWN5LXRydW5rCis2NjUzMyAxNzc3NmRmNmZkYTJjYzMwNDE2MjMzZjNkM2ZlMzkzYmE3YjMxMjk0IHB5M2sKKzY2NTM0IGMyZTJlOTI2MmI5OWIyMDhjZmI2ZTljOWI1NDI3YTFmNjE0N2VmNTkgcHkzaworNjY1MzUgOTIzZmI0NThiZDBjNjllZjliMTE3ODY5YWQ2ZTRlYjUyZTA1YTBhMCBsZWdhY3ktdHJ1bmsKKzY2NTM4IDM4NmEwM2VjMWZmMDE0ZGY3YjNlZGNjY2ZlZDM0ZjQ4ZmYzYjM4ODIgbGVnYWN5LXRydW5rCis2NjUzOSA1NWNiM2UxMWJkZjc0ZTY2MjdmYzhlY2I4OWI5NzZhOTgyNzZjZTUxIGxlZ2FjeS10cnVuaworNjY1NDAgYzIwMDVjMWNmNmNkZThhNTVmNTZhMTRiZTlkMjUyZjU0YmZhY2Q4ZiBweTNrCis2NjU0MSA0OTkyZmQ0OWE5ODVkNjc4Y2M0ZTBiODFhOTkwNTNlZWZjNjg5ODQ0IHB5M2sKKzY2NTQyIDI1ZjgwOTEyM2RmNjA2M2Y2NjVjNTYxYmJjNjY1NGM1MjUwYmFlOWYgbGVnYWN5LXRydW5rCis2NjU0MyBkMWFiODNhZDVlMmI5MzRmMzQwNDU0NDc3ZWQ4NzVlNmMyNmUxOWQyIHB5M2sKKzY2NTQ0IDZiNjc5Y2EyNDM2OWZhMWQyMzRkMjFhMTJjNzYxOTk3MmMxMmNiM2EgbGVnYWN5LXRydW5rCis2NjU0NSBmMGMyNWU2YmJhZDU4MGI3Y2FmNjA1ZTkzOWM3OWUwODhiNWE3ZWNmIHB5M2sKKzY2NTQ2IDM5YTk0NzE5NTQ1NGRjMjA4YmMxMmE5MzJlODI0YTdmZTQzYjVjNzcgbGVnYWN5LXRydW5rCis2NjU0NyBjMTc3NzAwNzRhNGJlOTU0OTE3OWFlYzI2MzBlOGMxYjRmNGQ0ZTA5IHJlbGVhc2UyNS1tYWludAorNjY1NTAgNTQ2MTNiYTFkY2FkZjUwMzdhNzYzNDdlYzAzNDAzYTM4OTBlZjcwYiBweTNrCis2NjU1MSA2YWUyOGE1MDNjOWQxNmE3ZGIyZGNiOTllZTQzMGY3ZTQ0ZmMyNGZiIHB5M2sKKzY2NTUyIGYzZGE1NmUzZmNlNGIxNDJmMjM2MWE4YWZiOTdiMWM0YmJjMmQzMGUgbGVnYWN5LXRydW5rCis2NjU1MyA5MjJiOWUwM2IyNjBlYzU5MmYxNjRmOTAwNzZmZjczODZkZjFhNDAxIGxlZ2FjeS10cnVuaworNjY1NTQgZmU2NjBlOGM2M2JhNjkwY2Q1OGI5MTUzNzFkMzAzNWJhM2RlOGUyMiBsZWdhY3ktdHJ1bmsKKzY2NTU1IDA2Y2YzNWU2ZTMwOGVhYmZhZWE4M2NhMTMwNWU0YTI3YzkzMmE2ZTUgcHkzaworNjY1NTYgZTg2ZWQxMTM1MzVjZWYwYThiODhiNDg3YmNiMTFhMDc0MzY4MGRlZiBweTNrCis2NjU1NyBlZjc1ZWIzZGM0OGU4MjAyZGU5MzkyMzZjNWJlNWYyMTIzZmI4NzdiIGxlZ2FjeS10cnVuaworNjY1NTggMjdjMWJhNzE4NmQ4ZjcyOWM0N2ZjNmE2YzA0YzhhYWM3MjM0MTIwZSBweTNrCis2NjU1OSBkZTkwYTcyZTNlMjM0MzhhOWFlZTNiNjZkZjFmZTQ3ODlmNmJlNjIzIHB5M2sKKzY2NTYwIDFkNWMzYmNmMzVhZDM5ODZjMDhiYmNmNWJmOWNkZWIxNGVlMWQ0NmYgcHkzaworNjY1NjEgMDE4YmNkNjRjMzNlNGY2OGM3MDJjNGI1NzljZDdlZWZmZWU5N2E1YSBsZWdhY3ktdHJ1bmsKKzY2NTYyIDBkZTVhMzg4YTI2MTgwNGU3N2ZhMDY3ZDU4ZmEzYWQ5MzE4ZjI3OWYgcHkzaworNjY1NjMgNjQ2MTZlNWQ4MGI0YjI2NGI5YTljZjkwODM1ZDI4ZjE4YjI5OTVkYSBweTNrCis2NjU2NCBmNmRmNTY3Y2NkNjI4OWE0ZDYwNWVjOTJkZmExM2M4NGUyN2ZmN2RkIGxlZ2FjeS10cnVuaworNjY1NjUgYmU4OWQyYTM0YjJmODlhMzE3YmFmY2UwNGY2YjQ4NDUzODA3NmIxZiBweTNrCis2NjU2NiBhNWYyNmIzYTI2ZmQ5ZWU4ZTU0Y2FjMTUzYjM3MjhhNTA1MTNkMGFiIGxlZ2FjeS10cnVuaworNjY1NjcgZWRmOGE2YzY5MDI4Yjc3NTg5NWExYWVhOGU3YTc3ZmEzZDg4OWE2NyBweTNrCis2NjU2OCBmM2ViMDAwNDg3YjkzNjJjMmZjZjU0M2UzOTk5NjdkNDdhODVjNDgzIGxlZ2FjeS10cnVuaworNjY1NjkgZjg0MzBiNjg3NmZiMzZjZmE5MGNhZTZiYWJjNDI0NzY3ZWZlMmUyZCBsZWdhY3ktdHJ1bmsKKzY2NTcwIGJiZTJlMzU4NTJjZDRkOGEwMmM3Y2E3MjJmZjViZDkzODUyN2VlZTMgcHkzaworNjY1NzcgYjNjMjlkYTkzNGY1ZWRmODhmNmRlMGFkZmQzOTBmNjYzNzNhMTBiNSBweTNrCis2NjU4MCAyNWRhMDdmZTM2MzBjMDFiODk5MThmMTBjNzM3OTNlODkwYTc5ODQwIGxlZ2FjeS10cnVuaworNjY2MTAgZGI5OTllYjJiYmRjNzU5ZDJiNDk3MjdjYjc1MWIwMzI0Mzg1MTk5ZiBsZWdhY3ktdHJ1bmsKKzY2NjExIDYwNmFiMjVkZGVmMWIwYmUyZmRlZTMxZDU4YzY5MGUzZWMyOThmZGEgbGVnYWN5LXRydW5rCis2NjYxMiAwMWZjMDgzZTFkZGQzNTEwMWMyZTIzNjA1NjM0NmRiNmVhMjdmNWU1IHJlbGVhc2UyNS1tYWludAorNjY2MTMgYTg3MGMzYzZhOWFkMjQxMzU4OTJjNzdlOWZhNTgwNzNlZjZjNzU5NCBweTNrCis2NjYxNCAxMjBiNGJjZjA5ZmY3MjBlNjMyZjRlZGU1ZDc5MWU5NGY5ZWU1OGJjIGxlZ2FjeS10cnVuaworNjY2MTUgYTAwNjI2ZjJkNzA1NzkyMzVhZDAxMDQyZjEzODEwOTE0OTJiMTM4YSBweTNrCis2NjYxNiA5ZDFjNTMxMTY4Y2FkN2ExZTg5NWY2NzBiODgyYTkyMWM4YzYyNjg0IGxlZ2FjeS10cnVuaworNjY2MTcgMDkxYTZjNTIyN2E5NDc1YmEzYWU2YTNmMjExMzNkNDhmMDZiM2Y1OSBweTNrCis2NjYxOCBhOTFlNzhhYjRkN2QyMDMxMzZmODZlOGYwYzlhZWMzM2Y4ZTAwZDBiIGxlZ2FjeS10cnVuaworNjY2MTkgM2ZlYmNiZmQzNjAxYzQyM2EzMWIyNzA3NDVhZmUyYWUyZGNiNjE5OSByZWxlYXNlMjUtbWFpbnQKKzY2NjIwIDVlNWIxNWI2OTJlMTQxN2Y2YTk4Y2ZiMjkwMGMxZWY4NTBmNjEzOTQgbGVnYWN5LXRydW5rCis2NjYyMSBhY2M0NGI3ZmFkZTA5YTZmZTcyYzA5NDE0ZjU4MWU0NDEwN2EwOGJkIHB5M2sKKzY2NjIyIGRiYWVjMjQ5ZDU2ZjEyYjVmODk2OWE0ZTM0YmNiNWY4M2RiMWZkNTMgcHkzaworNjY2MjMgNzhhMjFiMjc4ZTFiOWI3NGE4MmRlZjQxYmY1YTUzYzQ0MDZkYzJlMCBweTNrCis2NjYyNCBmMzIzZmE0ZTQ4ZDc5YTI4NzE0MTI2ZmY3NDM4ZDI4Nzg4MDJlOTAwIGxlZ2FjeS10cnVuaworNjY2MjUgYjU1MGRlNDI4NTFhODVjMTA2NmMwZGM3ZjdmZmE0MTVhMjQyMzQ1ZSBsZWdhY3ktdHJ1bmsKKzY2NjI2IGIyMzJlMmU5ZTc5MzdlMzQ1NzMyMjkzNmY5MTllMWQwZmE2M2RjNjIgcmVsZWFzZTI1LW1haW50Cis2NjYyNyAwNmViZjEyYmZhNjJjYTViOWVjYTJlN2FkNzBkNjU4MjhhOWMzZTJkIHJlbGVhc2UyNS1tYWludAorNjY2MjggNGVlZGU1ZTQ4YWU2ODVhYzdiZDk1OTEyZDI3YjY3YTRhMTMwYTVjZiBsZWdhY3ktdHJ1bmsKKzY2NjI5IGUxM2MwM2UwY2UwYmI0YzkyM2QyNmZkNzNmNTY2NzI1MDBmZDIxYjcgbGVnYWN5LXRydW5rCis2NjYzMCBiYmFkYjk2MGZkNWMxYTk3NjhmMDlkOWJiNzFlNzAyN2IxNmMyNTUwIHB5M2sKKzY2NjMxIDMwNGJlYTg3MzFkMjFhNGUwOGViZGNjZjYwNWFlZmZjYmI1MjMxMWMgbGVnYWN5LXRydW5rCis2NjYzMiBlMGMwNmNhZWZiZmYzM2ZhNDcwNmNjZTU1ZTM4MGYxNTAyYWY2YzBhIHJlbGVhc2UyNS1tYWludAorNjY2MzMgNjQwM2YxZWRlY2MxOWQyNGM0ZWJhZWI2MTc1YzQ5ZTEyMWE5MmQzZSBweTNrCis2NjYzNCBlYjM1ZmNiYTY1OGVlMjViMzEwYmE0YWQ5MjQ0M2VjNjY5MGIzN2I5IGxlZ2FjeS10cnVuaworNjY2NDMgMDc1MDQyYzc3MjRjNzRhNDliNmIzZTA0ZmQxNDQ1YWM4NzRkZGZjMyBsZWdhY3ktdHJ1bmsKKzY2NjQ1IGRlNzVmYjRlODAwY2VmOTNiOTIzNDUzMzZlMDA2OGFlZjUxZDBjMWMgbGVnYWN5LXRydW5rCis2NjY1MyBjZGM3ZjYzNjc3OGI2OTIzZDBmZjcxZTk1ZjMyNjAwNmVmZTFkNmI1IGxlZ2FjeS10cnVuaworNjY2NTQgOGExZGJlNWMyYjc0NWMxODU1YmE0MDE2MzhkOGRiZmI1ZjI0ZjkxNCBsZWdhY3ktdHJ1bmsKKzY2NjU1IDUyODQ3NjhjMjY0YzU5ZDU1MDM0YWM1MTFhNmQwYmM4NjczZDdmN2EgcHkzaworNjY2NTYgZDcwYmNmM2I2MjhkN2EyZWQ2MTliZjkzZjRlYjkzOTA1YzBiYjAxZSBweTNrCis2NjY1NyAwNjk5YTcxMmEzZGJkZDhjNTJmMThkYWQzMDY5MTI2MTMyMTJhMDBmIGxlZ2FjeS10cnVuaworNjY2NTggNzY1MWI5NDEzYzg1NGNiNjBkMGMxMDNlMzFkNzM0YTkxMjFhMWJjMiBweTNrCis2NjY1OSA3YTNmNzUyYWRmMWNmODk0NTJiODgzOWM2NDMxZGQ5MjUxN2IwYWJjIHB5M2sKKzY2NjYwIDUzMGM4MTQxOGMyODM4Y2M4MjJhOTkwYTJhM2UzZWFiYzMzZjljNzMgbGVnYWN5LXRydW5rCis2NjY2MSAyY2E0MTU5YmJlNjU0MDY2MTczYTkyNTAxZjllMjVkNDZjOTNiNzQwIGxlZ2FjeS10cnVuaworNjY2NjIgY2UyZmNhNDhhY2U0MzI2NjgxODU0NjMxM2M5YTFkNTNmYTg2ZjM0MSBsZWdhY3ktdHJ1bmsKKzY2NjYzIDc1NWYzNGFiNDM4YjE5MTY3YzM3MTBkNWIyNDhhNmUzNGMyNTU5YzIgbGVnYWN5LXRydW5rCis2NjY2NCAyMzFmM2EyNWNjZjViMmRlODhlZGE5MGYyNGU2MDlkYjkwNDMwMmRiIGxlZ2FjeS10cnVuaworNjY2NjUgZGEwNzM0ODRmNWFjMzA2YzU4YmNjODE5NWQ0ZDA2N2ZmNGI0N2UzYSBsZWdhY3ktdHJ1bmsKKzY2NjY2IDQ4NDRjYWMwODY1MjVkMmE5ODVmOTY5MDJhN2I4MmE2YWU5OGY3YzEgcHkzaworNjY2NjcgNmNjNWFjZTlmNTEzZTAwODAwZTEwMWE3ODI1NmU3ZGU5MjViMDFlYyBsZWdhY3ktdHJ1bmsKKzY2NjY4IGVjNDJmNzk4ZjU5NzM2NDQwYTAzMWZlNjJmMmQzMzcyZDU4MmJlNjcgcHkzaworNjY2NjkgNTZhM2ZhNDQ5YzZjNmMxMzU2OWY4YzRhZDNiOTlkMzA2N2QwMTdhNyBweTNrCis2NjY3MCA1M2FjZTM5N2I5YzViYjViZjUyM2MyOGQ5MmIzMTBlYWQ3ODZkOTMwIGxlZ2FjeS10cnVuaworNjY2NzEgZGJjNmVkYmE3MGE3Yjc2NGFhNzQ2OWMyMjIzNmM4NTZkYWRkYjFlZCBmaXgtdGVzdC1mdHBsaWIKKzY2NjcyIGNjNjliOTMxYTYwODJkOWQyNDI3NDkyOWJlZTI0MTkwMDAxYTk3MzYgZml4LXRlc3QtZnRwbGliCis2NjY3MyA1YTlhODNjYWU4ZjFiMmFiOWZmNzM1MjRjNTc2N2NlYTFjNmE5NDZlIGxlZ2FjeS10cnVuaworNjY2NzUgYzVmNWQ2YTMxM2U5OTczZGQ0ZjA5NGNmY2U5MTQ3MDkwM2RjZTc3NCBweTNrCis2NjY3NiA2NGJhNTI0MGFmMzFhOTJiZDgwYTk0MWYwMzJjZjc5NjBiZDRlY2JkIGxlZ2FjeS10cnVuaworNjY2NzcgNzRlN2Y5N2RhZDdkZWRkMTA1YTE3YTJmYzhhYjBkODAzY2EwYTM3MCBsZWdhY3ktdHJ1bmsKKzY2Njc4IGE5NTAzMGY5MzllZDA4ZGViOTM0MzdkMDZiMjYyZGE4NWVlMTM3MGQgcmVsZWFzZTI1LW1haW50Cis2NjY3OSAwMjQxN2I1NmU0YjIxYTk4Y2Q5ZDg2ZmFkNmMxOTM4MGM5NWRkNGU1IHB5M2sKKzY2NjgwIGQ1ODYxODVhN2E1MTY3YWVlMmJkZThkYjk5NzVjODk3YzkwMmY0NWEgcHkzaworNjY2ODEgY2FkMWQyYThhOWQzYjliMGUwNjZkODQ4YTg2Y2EzNjFjYTkyNDRlOCBsZWdhY3ktdHJ1bmsKKzY2NjgyIDQwNTM2ZGRjMjZhMTliOGZlZTI1MGY0MzczMDVjZjI1NjYzODM3YTQgbGVnYWN5LXRydW5rCis2NjY4MyA1YjM1Mjk0ODU0MjE4YThjYWYxNjE2YjFmN2ViZDJmYTYxZDhiZjQyIGxlZ2FjeS10cnVuaworNjY2ODQgNjllMTg0Yjk5MGRjNzdiMmU1OGMyMmZmZjNhZThiZjNmMDQ3ZDc3ZSBweTNrCis2NjY4NSBlZGI1ZWVjZjNiYjhiZGViNjg1ODk2ZjcyOTg3OTJjODU4YjUwODcxIHJlbGVhc2UyNS1tYWludAorNjY2ODYgZDg4ZjFmMmYwMjEzNWY2ZTQ1N2Y0N2IzODkwNjE5NzkzOTMyMGIzMyBsZWdhY3ktdHJ1bmsKKzY2Njg3IGFiMzRhNjQ3ZTIyZmNlYjUwNDUxNGZmYmJlMWYwNWVhM2U5MmI4ZjggcHkzaworNjY2ODggYjQ5NjRkZjY0Mzg0MGU0M2IxYmFkMzZiNDNiNmExMTAwOGE4YTViOCBsZWdhY3ktdHJ1bmsKKzY2Njg5IGY0YWViMTEzYzllZmFkY2U2OTViNmRkN2QxODY4M2M2MmZhNGZhMDMgbGVnYWN5LXRydW5rCis2NjY5MCA0MTU2NTU1ZjM5MTE4MWJjMGQ4ZmNhY2U3MzUzZTcwNjI3M2ZhYzg2IHJlbGVhc2UyNS1tYWludAorNjY2OTEgMzc2MzI3Y2I2ODIxM2M0ZDE0MDIxNDFkNTJlMDA1NmU0YTAwZGQwYiBweTNrCis2NjY5MiA3YzU2NjI0NTQ4ZmQ0ODJmNWJhZmZkY2QwN2U2YTUxOWY1NGFjNmJlIHB5M2sKKzY2NjkzIDZhNzMxMzRmOTYwMzJlZjExNjJlNWZmMjc1OWIwMmVjZWM4ZDg2NTYgbGVnYWN5LXRydW5rCis2NjY5NCBiMjgwMWFjYTlkNmI1ZmJlMWExYTBlOGU4NGQzNDMyMWJiMmJjMTMzIHB5M2sKKzY2Njk1IDU5OGQxOTkzNjE4NmEzODA0NDhlZTM5MWZlNDBlNTg1YTNmZTU4NmIgcHkzaworNjY2OTYgYWY2ZmU5YWRiMzljM2YzYWQ1MzhiOTYzMjg2NzQ5YTU3OTc4YjhhOSBsZWdhY3ktdHJ1bmsKKzY2Njk3IDZjZWFjZDAxNWQ2NzhhNTNjMzFlYWNhZTljNjhlNDNlM2M5ZDkxNTEgbGVnYWN5LXRydW5rCis2NjY5OCBhNGVkNTRkNTc2NGM5MDYzMWMwYjdiNTUwMzVmMWMwYjRhMWYyNjM3IGxlZ2FjeS10cnVuaworNjY2OTkgNjc2NTk0NmUxYWM0OWZmYjM1NGJhYmE4NWZmYzM4MjBiZjMwOTEwMSBsZWdhY3ktdHJ1bmsKKzY2NzAwIDdmMWY5ZTE4Y2RmYTMyNWFlOTU2NTI1NDcwZTIyMDU3NTk1NmQwNzcgbGVnYWN5LXRydW5rCis2NjcwMSA4NjA0NWUxZWU1OTUwYzRhMDAwNjMxZmQ2YWU2NGQ2YWEyNzRmYjFkIHJlbGVhc2UyNS1tYWludAorNjY3MDIgMWY0ZWEwMjI5ZWM2NjhjYzA1OTBiYjk1ZTYyMTk2MmZhMDlhMjkyMSBweTNrCis2NjcwMyBlZWQ0ZDUzMzMzMmYwZmQ5MDFhYjMwZDI5MmQ1ZmFmNmFhZThiOTM2IGxlZ2FjeS10cnVuaworNjY3MDYgZDMxODIzNGEwMGQ3NTg2Yjk1ZmRkMzY5MzQ0ZDFmNmEyMDI3MTVhNCB0bGVlLWFzdC1vcHRpbWl6ZQorNjY3MDggZWE1MzE2M2IwNmRlMzJhNmZiYjM5MGNiYmIxNDkwMTMwMTFhYjE3YyBsZWdhY3ktdHJ1bmsKKzY2NzEwIGI1ZmI5YjAwMmVjMzE3M2NhOWEyM2Q1NjBmMjQ2YmFjODA5NGFhOGYgbGVnYWN5LXRydW5rCis2NjcxMSBhZGE2ZDdmNzFiNWRmMDc2ZDllMGIzNmVmN2YwZWQyM2Y2Nzg4NjZkIHB5M2sKKzY2NzE0IDU4YTk4ODRkMmJjM2QzM2Y5ZGY4NTUyODU3NzA5ZGZlOTlkMTgzODQgbGVnYWN5LXRydW5rCis2NjcxNSA5NWZmZjVhNmEyNzY1MjBiMmU3ZTBmNzVmZTMwM2Y0OTM3NjU2N2E1IGxlZ2FjeS10cnVuaworNjY3MTYgYmM0Y2E4MGJiNWZkNGM5MWE4YjdlNzA3M2U3YzRkMWNjMWI0NzcwZCBsZWdhY3ktdHJ1bmsKKzY2NzE3IDU0Y2QxY2M3MGE0NzhkODUzZWY4YzM2NGEyZTAyN2I2ZmE2MDI0ODIgcmVsZWFzZTI2LW1haW50Cis2NjcxOCA3MjkyODkzZmMyYzVmOGI4NTA4MjdjZjI0ODIzMjk2MDE5ZGJmZTVmIHJlbGVhc2UyNi1tYWludAorNjY3MjEgNzQ4ZWM5YjJhZWYxMDI3YmQ5MzNkZTZmNzg5YmFiOGJjYTg4MGU2MSBsZWdhY3ktdHJ1bmsKKzY2NzIyIDlkMmYyODE4MjgzZDVlODljNDEyZGQ2ZjkyOWQ1NmRjMGRlYTA1MTUgbGVnYWN5LXRydW5rCis2NjcyMyBhNWYzMGQwNjQ5M2NiZDRjOTVkOWE4ZDZlNDZkODIxNTM2ZDY2ZmFlIHB5M2sKKzY2NzI0IDg4ZTYxODNjZGIzOGM2YmNhZmNjNjQ4MWU3NTA3YjY4OTNkOTA1ZGQgcmVsZWFzZTI2LW1haW50Cis2NjcyNSAwMzNiYjVjYWNkMGEzNDE3YmU2ZjRkNDVjMjI3NjBiZDFmMzE1MjA0IGVtcHR5Cis2NjcyOCA2ZGQ4N2RlODUwM2Q1NjUyNmNjZjhlMTVkN2JmMzE5ZDYyMTYyZjJmIGVtcHR5Cis2NjczNiA1NmQxNzg4NzQ4MjEzM2Q5YjdlNWRkMjg3YWIyMmZkMWNlYWE0ZmI4IHJlbGVhc2UyNi1tYWludAorNjY3MzcgZWViNWZhM2VmODg5YTIyMTkwYzY1NThjMmFkY2U4ZmMzNDAwODlkNiBweTNrCis2NjczOSA5Yzk3MWQ1MmEzYzM1ZmFiMmFhNjdlMzM5N2E1M2U2NzE0NjBlYmQ0IGxlZ2FjeS10cnVuaworNjY3NDAgODczZDFlMzY5NzlkYWU2N2Q5NGU0NTViNTllMjgyNTRlMjgxN2I1MiByZWxlYXNlMjYtbWFpbnQKKzY2NzQxIGY5ZjAxNDg0ZTQ4YjAyYzFkMWM4ODYxYzk0ZmFjODhiYTJjN2MwNGUgcHkzaworNjY3NDIgMDY4ZDliNjE0ZTdiZmZhYjY4ZGQyODExMmJiMGZmMTM4ZThmNDIwMyByZWxlYXNlMjYtbWFpbnQKKzY2NzQzIDhhN2M5MzBhYmFiNmEyYzI2ZWFiNjk4OTFmNDlkOGJlNDlhZmU1ZGUgcHkzaworNjY3NDQgYjlhZmE3YzljYzM1ZTE1ZmI2OGE5ZDQwMWE2YzEyZjNmNjEwMWQxYyBsZWdhY3ktdHJ1bmsKKzY2NzQ1IDc0MjZkOGQ3Y2UxYjRhNWRhZGY1OWRmN2E2NmNjZjhlZDU0NzlmYmEgbGVnYWN5LXRydW5rCis2Njc0NiAyODFiMjFjYTAzZjYzNjMwNGY5N2U5MzhmNmJkNjM4MTcwM2RiNzhiIHB5M2sKKzY2NzQ3IDAxMzg5NTI2YmEyNTU3OWUzODU1NmEyYzI4MDEwNGMxZWUyN2UwNjUgcmVsZWFzZTI2LW1haW50Cis2Njc0OCAyN2Q3ZWZhM2UxYWMwMDU1MTkyYThiZDc0MTBkNDJhZDMzNjg5Y2Y2IGxlZ2FjeS10cnVuaworNjY3NDkgNjQyZjIwYjIyNTc3OTU2MjhlNjM4YTcyNGJiMGYxMWZjNTExOTc0MCByZWxlYXNlMjYtbWFpbnQKKzY2NzUxIDg2ODkzYTM5N2RkMDUxZDRiMTUyMzVhOThlY2UyZDhiMjhhMzRjMTYgcHkzaworNjY3NTIgZjgxMmJjMmI2YTdiZmRmODcyYmUxNzg1NDJlNGIyMThkMDMyZmM5YiBsZWdhY3ktdHJ1bmsKKzY2NzUzIDk4MTMwNmY0YjQwNTAxMWUyZWMyMDVhZmRjMGUwYzViMjYxMWUxZmEgcHkzaworNjY3NTQgM2FlYWM0YTZhMmNmY2I1YWU3N2JiYTc1MjBiOTgyOWM4OTFiZTFmNSBweTNrCis2Njc1NSA0MTllNzIxYjNjYTllMjAzMDUyNjkyMzg0YWU2OWJlOWMxZDBhNmIzIHB5M2sKKzY2NzU2IDIwMGRkMWQ4MjBmY2Y0ODU5M2ZlODNiNGIyNjYwOTY5MzBlMGJkYjIgbGVnYWN5LXRydW5rCis2Njc1NyA1N2IyZDlhMjI1OTRhMTVkNTc5MDJlYmNiYzlmODFkODhjOTFkMjExIHB5M2sKKzY2NzU4IDRmNzcyMDA0YTg1ZGNhYzUyNjNmZTllZGJjNTQyNjY3ZTU2OTM2NzcgcHkzaworNjY3NjEgNTVmOTE0YWU5MGVkNjRjYTAzMDUyZWM0ODJhY2QwZDRlMTVlZmY5YyByZWxlYXNlMjYtbWFpbnQKKzY2NzYyIDAzOTEwYjg5MjY3OTFjZDY2ZGNlNDVmZjI5NWQxMGU3MGUyMTBiNTMgcmVsZWFzZTI2LW1haW50Cis2Njc2MyAyMjIzNjU2ODJjMWJlMjA2MjMzYTE4OTcyY2FjNGVkN2E1OGYzOGY5IGxlZ2FjeS10cnVuaworNjY3NjQgMTA5MTAwOGYyY2JkMDdkNGE2NzQ4MzQ1NDgzMTdmMDMzNGVjM2ZiNCBsZWdhY3ktdHJ1bmsKKzY2NzY1IDI4M2U1NDI2NGMwZDY3ZmU0ZGZiYWQyNjE4MDhmMDAwYjRmNzI4OWUgbGVnYWN5LXRydW5rCis2Njc2NiBmYTA0MGQzMGNmY2FhOGE2MzI3NjU5OGVlZWFiN2UyZmIyZmYwN2Y3IGxlZ2FjeS10cnVuaworNjY3NjcgZThlMTk2Mzk3ZjQ1NzFiNGIxZDYxZjFhZmQ2MTYxMmIxOTk5ZjI3MCBsZWdhY3ktdHJ1bmsKKzY2NzY4IDc0OTgxZGM4MzlmZDIyZmZmYTY5MDZlOGY4N2E5Zjk4MzA2NjRlYmUgbGVnYWN5LXRydW5rCis2Njc2OSBlODIyOTkyY2Y2Y2VjY2NmZGY4YTI0YjgxMjI1MDAyODE5YTJmYzRjIHB5M2sKKzY2NzcwIDhlYzg0OTc2MDRjNzdlN2Y1NTQxZDk4ZjQ2ZmQxNzlmMjA5YWQyMGQgcHkzaworNjY3NzEgYThmOTU5NWI5ZjU1MzZkZDk3OGEwOTk3ZDU2ODJiN2Q4OWVkNTM4ZCBsZWdhY3ktdHJ1bmsKKzY2NzcyIDA4YzQ4ZWEwNTA0NWJiMDNmYWQwNjVlNDU5MDYzNGI2YWVmNmUxMWUgbGVnYWN5LXRydW5rCis2Njc3MyBiZjgxY2I4ODkyZjUxY2U3MzYzZTk4OTM0Mjc0NzNkMDJlOWFiNTY4IHB5M2sKKzY2Nzc0IGI1ZjM5YzhhNDQyMzllNGNjMGZjMzc0NGQ3ZTVjMDQzZDgxYmFhNDkgbGVnYWN5LXRydW5rCis2Njc3NiBmNWI5YzZmNGM1OWM3OTA1ZDAwNWMxMGZjMTc3NTE1OWRhOWJmZjBjIGxlZ2FjeS10cnVuaworNjY3NzcgZWY0YmI0ZDVkZmRlOTdhNjVjYThjNDcyZmFkODgyNjc2NTJjZmE1NCBweTNrCis2Njc3OCAwYjFkYjI0MmQyMzJlNDdmN2U5NWVjNTE5NGM2OTk4NjYxMGMzOGEwIHB5M2sKKzY2Nzc5IDg0Y2NmOTFhMDZjYzU0NTJhNWY4YzczNzRjYTU5MWY5NGM1YzIwMjggcHkzaworNjY3ODAgOGE4OTJjZjI1ZTdhYTZiMzVmNWEzMjUyMWNjMmIzMGVjOGU3YTk0MSBweTNrCis2Njc4MSAxNmExOTRkYTc3ZGU5NmU1NzdjMjdmNzE0NmNlMWUxMGNiZTc2OTMzIHB5M2sKKzY2NzgzIDg0NDJmMTM3MjBhNGRjMGU2OTY1YmQxNGU0ZTcwNzQwYjY2MmNlMjMgbGVnYWN5LXRydW5rCis2Njc4NCBiZTJmODViZTU2NmU1MTYzMjNmYjRjN2UyNjEzZDJlNTY2MGQ3MjYzIGxlZ2FjeS10cnVuaworNjY3ODUgYzU2ZmJiN2MxNjg5Y2E4YjBkOWE0N2ZkYWFiN2JjZTI4OGE2ZmQ2NSBsZWdhY3ktdHJ1bmsKKzY2Nzg2IDg4NWZkZjU5NzBjYzU2M2E1YzBhYWE2ODQzOWRiODBjNTJjMTE3MmEgbGVnYWN5LXRydW5rCis2Njc4NyBiMjFkZTA0MjEzOTVkNTA4MzI0NzI2ZjkwMjlkYzg3YWU4OTUyYjE1IGxlZ2FjeS10cnVuaworNjY3ODggNTgwOGE3YWUwM2FjZDkwN2YwOTAwYmRkMjIxNWI1OGFjYjBiZWM4ZCByZWxlYXNlMjYtbWFpbnQKKzY2Nzg5IDM1NmU4OGQ0YWYzMDIzYzdiZWIxNmI5N2Y0YzI0NmNkNjcyMjUwZjkgcmVsZWFzZTI2LW1haW50Cis2Njc5MCBlNTkxZTc1ZTgzYTJmMWYwMjcwMmM2YWIzNjliYWUyOWJmNjUzYTNjIGxlZ2FjeS10cnVuaworNjY3OTEgZjIxYTNkODU4NWM2NTU0NDlmZGRjY2EyMTJkMWFlNDQ0NTkzOGI5NSBsZWdhY3ktdHJ1bmsKKzY2NzkyIGFmN2EzOTlmYzI3MjIyYzIwNjczYTE2MmIwNzJjZGM1MjdmNjMwYWUgbGVnYWN5LXRydW5rCis2Njc5MyA5ODRhOGJjNmQ5NTZmMzU1MTQ0NjA3OTJkODM1YjI3M2M0NjdiOTdmIGxlZ2FjeS10cnVuaworNjY3OTQgZjczMWYwOWVhODM5NGM0ZTQ4YzM1OWE2ZDk5MWJkOThiMjc4ZjJkMSBweTNrCis2Njc5NSBhYzMxNmYyNTIyOWM5MjA0ZTI2N2NmYTIyYjk2ZjhkYWZmODc2NzlkIHB5M2sKKzY2Nzk3IDczY2UzYTExMDQ2ZmJkYzAwOGJjYjM0ZWU4MWM0OTM4OGRkMmM1NzEgbGVnYWN5LXRydW5rCis2Njc5OCBmZjVjM2RkNjhkMDdjMzg4YWFkMmYwOWJhZDBiYzY2NTMyZmUyNDUzIHB5M2sKKzY2Nzk5IDA1NjA0NTU1YjhkNDAwZGJiYjE3MmY4NGYwZjJjNTg0OTRiZmY3MWYgcmVsZWFzZTI2LW1haW50Cis2NjgwMCAyZTc5NDc1N2JkYzg0YWI3OGFkMzY0NjdmNjkxMGYyMzI3MTk1NWJkIHJlbGVhc2UyNi1tYWludAorNjY4MDEgZTA5NmM1MmNkNWNhOWExM2U1MTk0ZmNkMWUyY2ZkMjVkN2UyMDA0MSBsZWdhY3ktdHJ1bmsKKzY2ODAyIDhmNWE4ZWE1YmE3NmVhYTNmNWZiNjkyMWYzNzhjMjhiMTFiMjA0OTYgcHkzaworNjY4MDMgZGE5NTVjMzM5NjViNDkyMDMyNTBkZjNhNWQ2YmEzM2JhNTNiYmNmMSBsZWdhY3ktdHJ1bmsKKzY2ODA0IDM1NmExZjZlZjM0ZmQyODc3YWVkOGM3YWY3ODJjOTg1ZTljYWQ5YzQgbGVnYWN5LXRydW5rCis2NjgwNiBjNWIyN2RmNzlkN2Q2ZDliZjZiMjU3NjIwMTBiYmE0MzBlNmMyY2NhIHB5M2sKKzY2ODA3IGMwNDc4NjUxNDYwZmNhZmQ3YThlMTliM2U0MDFlMjZhNThhYzM3ZTIgcHkzaworNjY4MDggOWU0MWM1ZTdlMzYwMTk5NjliMGIyZWQyM2Q0ZDVhNjZiOTRiOTI5ZiBweTNrCis2NjgwOSA1MjRhYzc0NGFlMDQzOTY2NjQwMDkzMDlmMTBhZmEyNjhiYzBlNDU0IGxlZ2FjeS10cnVuaworNjY4MTAgZGM5NWU0NmYxZjNlODlhOWJkNjIwZDM0MjdlNjI4NTAzMzIwOTI1NCBsZWdhY3ktdHJ1bmsKKzY2ODExIGMyZDAxOTZlYTU4YmQ0NmJlZTM5MDg0NzJjZjI5OGU2YTE5OWQ3NTAgcHkzaworNjY4MTIgMDJkZDVkYjYyOTBmNDViZTJlZWExZWJkNTczYWU5ZmNiODkxZTQ1NSBweTNrCis2NjgxMyBjOTMzYzg0NjdiZGRhYWVlYmY0YWZjMmYyM2I5ZmE2NDhlNTcyM2VkIGxlZ2FjeS10cnVuaworNjY4MTQgYzljNzhlMDBkZjY3M2U2NDM1NzNlNWJjNWIwMzRmYjQ1MjNmMzgyNiBsZWdhY3ktdHJ1bmsKKzY2ODE1IGM1YWU5MzJmNjNjOWRhMzQ4YjZhZDUyOWY5NTk2YzljZjk4NjEyZGEgcmVsZWFzZTI2LW1haW50Cis2NjgxNiBmNTExNWMxMzJkNGFhNmI0ZDkxNzA1MGQ4MDUyNGMzYzZlNTQ3Zjc4IHB5M2sKKzY2ODE3IGRmZTMxMGE0MDI0NThkMTE2NmI2YjBiMTRmOGJiZjkxYzk0MTRhMWUgcHkzaworNjY4MTggN2FlYzAwMDE1YTllMTU4OTRkYmRlNDljZmQyMmE4M2I1NmUzNzc5MiBweTNrCis2NjgxOSBkOGI0YTYxYWJmMjVmNzE1YWUzYTY2OTYwMzE0ODU2ZWExZDYxNDZlIGxlZ2FjeS10cnVuaworNjY4MjAgZGJkMmIxODE3YTc1ZDQyOGYwNDIxZjY4ZmQzYzYyMjM5MzJiNmJmMSByZWxlYXNlMjYtbWFpbnQKKzY2ODIxIDEyNTk4NGI3MWE3NjhlMjAwNTU1ZTg0YTIzNWRlNmJkYjIzYjdmOWUgcHkzaworNjY4MjIgZTk5MTUzOGI5YTg3NmM3NzRlNjA5MDg4NzFiZGM4MDg2ODZhODA5OSBsZWdhY3ktdHJ1bmsKKzY2ODIzIDljN2VkNzBhYTJjM2ZlNGY4Y2Y0Yjk0MGJlMDE0MTIyNjMyMzc4ZGEgbGVnYWN5LXRydW5rCis2NjgyNCA3ZWZkZGFlNTBkMjU1MDM5MTUyMWVjMzYzMjk5MDMyYWIwZThlNTQ2IHJlbGVhc2UyNi1tYWludAorNjY4MjUgNjY3OWMzMjUyZjliMGViMjVkZDgzMmNiMzhkMTA2NTc0ZjE2NzliYiByZWxlYXNlMjYtbWFpbnQKKzY2ODI2IGRkOTdkYzc5YWUwYTA1ZjE0YjdkZGMxODM4MGU0YzU5ZGU0ZWRkZTAgcHkzaworNjY4MjcgOTE1ODc4MThhZGI4MzgwNGEwZGVhZGFkOGM2NTdiMTgzNDMwZmIwZSBweTNrCis2NjgyOCBkMjE0MGRlNzY0Nzk0ZTdlNGYyYWIwNDU4ODgyNWEzOTRmMjI2OGE3IHB5M2sKKzY2ODI5IDFjOTgwNTU0YjU0YjJjMTBkNGJiN2VhODA1YmQ0Zjk1ODkyZDNmYjQgcHkzaworNjY4MzAgMGIyZjc2NWJhNGY3NzVjZjU5Y2Q1ZTQ4YTVjNTdlOTJjM2M4NjQ1MyBweTNrCis2NjgzMSA4MjA5MWRmNjUxYmU3YTkxNzY3NzcxOTMxOTM3MWZjNWZmMTMxMWY4IHB5M2sKKzY2ODMyIGNiNzg4ZTA4NDRlN2Y5ZDA4Mjg1NGEyM2ZkNTQzMzMwNzM0M2ZhMDQgbGVnYWN5LXRydW5rCis2NjgzMyBjZTdiOGMzMTdkYTIwZjhhNzQ1YTUyZjkzNjQxNTAyNzdlZGNlNzBlIHJlbGVhc2UyNi1tYWludAorNjY4MzUgZGVlZjI4NDgyMmY3NWQwN2E5MjhjMWE1MjVlODYzNzY1NjE2OGIxNCBsZWdhY3ktdHJ1bmsKKzY2ODM2IDIxMDYwYTU2ZGVmYzg4MWU2NzdhMTFkMTEzOTNhMWQwOGI0MjE3NWQgbGVnYWN5LXRydW5rCis2NjgzNyA2ZTdiODUzZTg2MTYwOTMzNDI3Mjc4ZGIyNzNhNTVmZDBmZTA4ZDdmIHJlbGVhc2UyNi1tYWludAorNjY4MzggMWU1YjIwNTBlYzZhY2Q0ODJmODk5M2E2MTUyNGRjNDRmMmVmNjhmNyBweTNrCis2NjgzOSA1OWRhYTdjZjhjYTA5Nzk1MmQwOWRiODUzM2E4YmQ4MzdiMzA1OGJmIHB5M2sKKzY2ODQzIDY5ZWExMmRiOWIyOGI1OTgzMjJkMWM2NTdhZjY2NWI5ZjI3M2RlNjIgcmVsZWFzZTI1LW1haW50Cis2Njg0NCA4NjBmNjI4NDhhZjAyZmJkODM4NTU3ZDI4MDVlMmMzNmVmMzIxMTk3IHRsZWUtYXN0LW9wdGltaXplCis2Njg1MSAwMjA1Y2YwYjFhZGI5ZmJlM2NiN2RlZmFkZTMyOGRlNWUxMjFiZTY0IHJlbGVhc2UyNi1tYWludAorNjY4NTIgOTRkMTdjZjNkOGJiYmUwMjQyZDIyZTQ4NDkzMDI1MGU5ZmJlZjgzZiBsZWdhY3ktdHJ1bmsKKzY2ODUzIGI0ZmNiMmY0NzEwMWNiYmRlMTMzY2Y1MGFiMTRiN2I2ODZkMjRjODQgcHkzaworNjY4NTQgNDg0NTgxMGY1ODhlYTI4ZjA0NzAzMDMzZDA4NGM5ZWUzYTc1YjM5MiBsZWdhY3ktdHJ1bmsKKzY2ODU1IDU3NWY2NWYwMGM2YzA5MjNjMGIyNmVhOTNmMGMzMWMxNDhlNGFmMGEgbGVnYWN5LXRydW5rCis2Njg1NiBkNGI2MTNkYTM4ZGNjZjY4OWI1MTg1NjAyNDc1YWExOWJiYmYxNmI0IGxlZ2FjeS10cnVuaworNjY4NTcgMmJmMWMxYmQ4ZDk2ZWIwZWFmMjhjNjVmYjY4Y2MxMWViOTkzY2VjZSBsZWdhY3ktdHJ1bmsKKzY2ODU4IDljMGVkNGFlY2ZiZDkxZDNiYzgyOGY0YWJiYWU0ZTYxOWExZmMzMWYgcmVsZWFzZTI2LW1haW50Cis2Njg1OSA1MTg3NmE0MDNjMGRmOWJjNTY5NzA1YzdiOWIyZWU3Yzg2N2FjNzBlIHJlbGVhc2UyNi1tYWludAorNjY4NjEgY2U2NGNiYTUxYzJiN2Q5ZTNjMDZjNTU5MmI1ZjA0ZGE1YzE4OGZhZiBsZWdhY3ktdHJ1bmsKKzY2ODYyIDBkYTNjMzBmZTliNTIzYWFmMTdjNDMwYjE4YjYwZWI3MDlhOTc4YTcgbGVnYWN5LXRydW5rCis2Njg2MyA1NTBkNzUxNjBjYzRmNzM4MWI5YjUxZjI1ZGZlMDU1NmJkNDMxNDMwIGxlZ2FjeS10cnVuaworNjY4NjUgYTAyNThiYWVkMDA1N2MwNjUzNTQ0MTcxZjliN2U2MTUxMTlkMGQ3NyByZWxlYXNlMjYtbWFpbnQKKzY2ODY2IDBlMzU5YWZjMDY0NjgxMjUzZDAxZDA0Y2E0ZjBkNjczMjE4MDczNjUgbGVnYWN5LXRydW5rCis2Njg2NyAwYjdlMDIzODAzZmIzNzJlMDQ1MjUxZDNiZjE4NTZjMDQ0NWFlNjA3IHB5M2sKKzY2ODY4IDJhMmNkYjI4NTY1NmRlMmYzZjY5MzNmNTk4MzYzYjI1ZWRjMThhOTUgbGVnYWN5LXRydW5rCis2Njg2OSA2NjVmYTA1NjMyZjdhYjY4M2NjNGZjNTQ3YmQ2Nzk3YWFhODczODhmIHJlbGVhc2UyNi1tYWludAorNjY4NzAgMDhkNmRkNjg0YTZiMzEwZjNkNGUxYjgzOTc5ZmNiM2E3NjZkY2Q3MSBsZWdhY3ktdHJ1bmsKKzY2ODcxIDNkZDE2NTFhZjM1ZGQ0YmNiMjU4ZWYyOGJkZDM0ZmZjMDQwNmI1ZGQgbGVnYWN5LXRydW5rCis2Njg3MiAzNDJmNzAxODllYTllNWI1OGZjOTc4NTA5ZmUzMTk1YmMyYWIzZTNiIGxlZ2FjeS10cnVuaworNjY4NzMgYzBhYzQ3OTg0YjExMDRkZGJjMGEwNzQwZmVkNDcyNzJiYzY5ZmY0NyBweTNrCis2Njg3NCA3OTZiMWJiOTU1NGNiN2VhNjI1MjU2MTEwYmQ0YzVhMWZkYzU4OWU5IGxlZ2FjeS10cnVuaworNjY4NzUgNWEwOTIxMDFmMDY5NjNlMjUwZTViZjE0Yjg4OWQ5NTY1YWU3OWFjYiBweTNrCis2Njg3NiBiZGY0ZGE1ZDA0YWQ5YmU1MzU4YzBmNGEyYWQ1NWVkYmM3YjFjNDE5IHB5M2sKKzY2ODc3IGQzZGUwODJjYTAzMTRhOWVhNGIxOWM5NGRiZWEyMzNmZWNiZGQ0ZTYgcHkzaworNjY4NzggZTY3MDJjMWEwN2Q3NTJiM2VlNTk0N2I4MWYzMDcwNjQzMzZmNjgzNSBsZWdhY3ktdHJ1bmsKKzY2ODc5IDE4NzAwNGRmNTc5Y2IwMjEwZDc3MTg4YTNmMDVmMjlmMGU1NmVlZTIgdGxlZS1hc3Qtb3B0aW1pemUKKzY2ODgwIDk5Yzc4ZDYwYmUxMjVlM2UzOGUwNDA4NTk1ODU2MTMyMjBjMjVjM2YgcHkzaworNjY4ODEgMmYwZDczODRjYzFjMGE4MzNkMWJlMWU4YWY3YTJjNjJmZGI3ZmNmYiBsZWdhY3ktdHJ1bmsKKzY2ODgyIDA4YTNlNjhmMWZjYmIxMWNiNWEwNDY4OTQxY2Q2YzJjYjBiMDZkY2QgcmVsZWFzZTI2LW1haW50Cis2Njg4MyA3MWZhN2QzY2M0YzU5ZGJlZjc2NzM0ZTk4NmIxNjg2MWU5NGJhMmZhIHB5M2sKKzY2ODg3IDlmZGY4ZDhkZTI4NzVhN2Q1NTZjOTU0MGZjYjM3YjI5OTZjM2ZhMmQgbGVnYWN5LXRydW5rCis2Njg5MSA2MmMyNGQ0YTFmOGY2MjA5YTAyY2JkZGFmMWEwMDA1N2M3MzM3OGU2IGxlZ2FjeS10cnVuaworNjY4OTIgZTFhODhlOGI5NjQ5YmZhZTdlZmJmNzkwZmFmZjk2NzZhMGFjNTYyNSByZWxlYXNlMjYtbWFpbnQKKzY2ODk0IGIwOWU3MDUzYjQ3MmMzOTVlMDVhNGFiOWI0ZWY1YzljODM5OWFhZWQgbGVnYWN5LXRydW5rCis2Njg5NSA1ZTY2NjMyODZhYmM1N2M5YjhjYTI1NTUwYjEyYzU2MGNhNTQ2OTI5IHB5M2sKKzY2ODk2IGFjODZlOTUzNTU4ZjQ0NmNkNGZmNjZiNDEyODJmMzNmYmM2Mzg5ZTYgdGxlZS1hc3Qtb3B0aW1pemUKKzY2ODk3IDBmMGMyMjgzNTgzZWViODcxMDJjMTcwMWNiNjdlMzIxMjc5ZTIxN2YgcHkzaworNjY4OTggMjMyYTIyY2ZkZWE4ZmE5OTNmYmE0NTdmODg2MWJlZDYxOTIwNWU0OSB0bGVlLWFzdC1vcHRpbWl6ZQorNjY4OTkgODRmMDE3NDIwYjliOGUxYjZhOTE0MTkwMTA5Zjc1ZGY5MTY1NTdiMCB0bGVlLWFzdC1vcHRpbWl6ZQorNjY5MDAgYmI1MTE1OWU3MWRmYzMxNTJlMDNhMmIwMDI2MmE2MTAzZTg0YTJjYSB0bGVlLWFzdC1vcHRpbWl6ZQorNjY5MDEgZDE3Y2ZlZTRmMjNkZWZiZWE1MzZlNjA1MGFmMDQ5NDM5NzBjZWU4MyBweTNrCis2NjkwMiBmZGNjOGEzMTM1Mzc0NDhmNDYwYzI0YmVjNTljYWJkOTM3Yjg5Y2Y5IGxlZ2FjeS10cnVuaworNjY5MDMgNDA5ZGFiOGIxZDM0NDk2OTkxZjU5MmFlYTA4ZjJkMDJjMjgzYmI0NSBsZWdhY3ktdHJ1bmsKKzY2OTA0IDQ4MTk0ZDdhZjMyZjAyNjgxYTc3NmYwZWNlNzY3MjdkNTdiMmU3ODcgcHkzaworNjY5MDUgMGFkZjZiZGIxNzBmOTczY2E1N2FlODA3ZmRjMzkxODY2ZDY4MThmNCBsZWdhY3ktdHJ1bmsKKzY2OTA2IDQ3MzdlNWRmNTBmNGQ3ZmU5ZWE4MmI2MzA3MGYxY2FlNzYzOWQ2MTEgbGVnYWN5LXRydW5rCis2NjkwOCAyYTEwOTZiNDgxN2EyZjZmZTJjNGQwZjAzZTdlNzFkZGY2ZDU3NDNmIHJlbGVhc2UyNi1tYWludAorNjY5MDkgNWFmYzlmZmE4MGJiNzllZjZiMmJjMTNjMGIwNDJjNjM4YTJkOGRhNiBweTNrCis2NjkxMSAwMTExMWM0MDYxNmY1OTBiOTFmMjliMjliYTAyY2FkODhlN2RkMzEzIGxlZ2FjeS10cnVuaworNjY5MTIgOTJkMDg5MDMzNWMyNDk0OGNhMzBjZTFjYjM1YWU2YmYxZWE4NWZiZiBsZWdhY3ktdHJ1bmsKKzY2OTEzIGI4ZmM3OTBhMjdhZWM4YjY4YjM4YjgwMjBhYjRmYmZiNDM3YjNiNmEgbGVnYWN5LXRydW5rCis2NjkxNCA4ZDJhNjk3MTFhOTdjZWQ1YmIwNDNhYmU0OTljMTdjOTNjMzFiODVkIHJlbGVhc2UyNS1tYWludAorNjY5MjAgZDA2MTllMjEwYWM0MmZlMDk3Y2MwMjUwYzhiY2NkMGI0ZWVhM2MzNyBweTNrCis2NjkyMiA2OTM4MjE5ZGM1YTY0NjQ4N2JmZWM4Mjk2MDlmM2IxNzU3ZWNmMGM0IGxlZ2FjeS10cnVuaworNjY5MjQgZDdhNzI4NDIwYjAzYTdiMzdlODE1YjNkOGU0NWQ3N2EzMWNjNjkwOCByZWxlYXNlMjYtbWFpbnQKKzY2OTI3IDE5OTI4ZTQ1ZDE4YjIxN2JlYWQ5NDM1YTU0NzA5ZGVmZTcxNGFjYjMgbGVnYWN5LXRydW5rCis2NjkyOCA5ZGVkZmI4ZTU2NWM0NDVkNTM0ZTE3MmMwYTk0OGZhMmM4MmI1ZGFjIGxlZ2FjeS10cnVuaworNjY5MzIgM2MzYWJkNWZjODMzOTIzNzI0NzJkM2QyZGNhMDM1YmFjZjA4Mjc1MSBsZWdhY3ktdHJ1bmsKKzY2OTM0IDAwZTQ2N2RiNjE4MjU0MzZiZDBjMDU4NTk5OTlhMGJhOTIzMTIwNDggcHkzaworNjY5MzYgYTU3ODE0N2JiNWMxMzA1NTk0ZjJlY2IwZjRjOTg1ZmQ1NDk3MzA1MCBsZWdhY3ktdHJ1bmsKKzY2OTM4IDQ2MjI1MjExZTUwM2ExOTU0YmM4MDYxYmFjMTJlZjQzMTcyNzE0NjkgbGVnYWN5LXRydW5rCis2NjkzOSAyNDFlMDMzNzFjN2U0MjYzMmUyN2VmMzIyMjFjZTU3ZDE4N2IwMmRiIGxlZ2FjeS10cnVuaworNjY5NDAgNjAyNGUwY2FiYTY0ODAyYWQ5MzJiZmNjZjFlOTU3ZmEwZjRmZTk2NSBsZWdhY3ktdHJ1bmsKKzY2OTQxIDRlMmU2ODg0ZmQyODg3NjIyYWFlYmY5NTliNjEyZjI0N2RjZDVhMjIgcmVsZWFzZTI2LW1haW50Cis2Njk0MiA4YTg5MTMyYjg1OWYxZWI0YzI1ZDJkODQ3YjVlMzJiMTIzMjE2Yzg4IGxlZ2FjeS10cnVuaworNjY5NDMgYTUzYmI4MzMwYTY0YzUxYmNjMGE0OGQ2OGEyNDZjZGU0MDYzNTNlYSBweTNrCis2Njk0NCA1MGM4ODZkYWVkZjBkODE1ZDY0OTk1ODI2NWZjMmZhYjI2OWQyM2RjIHB5M2sKKzY2OTQ1IGNhNzIyNzFjNjI0YzJkZmJlYmMwYjYwMzJmMDFiOTI0MTNjMTRjMDQgcHkzaworNjY5NDYgMmEzOTEwYThkYzM3N2FmYWRjMjFiMWVjNDFiYWM1ZjE2MjhmZTkzYyBweTNrCis2Njk0NyA0OTFlZDgwYThjYzE1MTAzMTBmYzMxMmUyNmIzMmZlODNmNzg5NDZjIHB5M2sKKzY2OTQ4IGNiYzNhZmMxZTQwYTIwOWQ4ZDQ3MDJmZmQ0ZmVkMGEyNDQ3ZDA1N2UgcHkzaworNjY5NDkgMmMzYTZjOWRmZjYyZDVjOTYwMDY3OTI3NGM5Njc4ODBhMTViYjM3ZSBweTNrCis2Njk1MCA2NDVmZTU2YzExN2FhNjNmOTFmMGMzNDkxOTc3YTA1ZDgxZDkzMDcwIHB5M2sKKzY2OTUxIDQ4MWFkM2Q5ZmZkMWI2OGRmOGRhODU3OGUyNTc5ODE5NjIzYjZmMGUgcHkzaworNjY5NTcgZjY3ZGU2MWMyY2ZhOTIzODgzZWM0MmUxNzNjZDE3Zjc3MThkY2MzZSBweTNrCis2Njk1OCBiNTU1ZDRkOTU3NWM0NThlOTdjMDVlOTViOGNjMzZhMjc2M2Y4NTg3IGxlZ2FjeS10cnVuaworNjY5NTkgNjZjNTQ1Zjc5NjI2OTMyYzFhYmEzYmJmY2UyYmEzZjgxMTExMzYwNiByZWxlYXNlMjYtbWFpbnQKKzY2OTYwIGRmY2U2MmFiMDdiYTBhMWY2Y2U0NzI5ZDA2MjA3Y2FhZDBlZDM0NGQgcHkzaworNjY5NjEgODNkMDk0NWVlYTQyMjg0MDkyNjc3NWI4NWVkZGYzM2U2MTRlNzYyOCBweTNrCis2Njk2MiAwMTIxZGYzY2Y1YTAxMmMyYjgwNjBkZWVhYzdmODMzNGZjZTE1ZWVhIGxlZ2FjeS10cnVuaworNjY5NjMgYmMxZjQzMjUyYzkyMjBmOTJhNjAyZWU1ZDcxMzY1MDk0MDFmYzIzNiBweTNrCis2Njk2NCA5NmU3ODU0ZDdjNmUxYTEyYjJhZWM1ZWI0OGQzYzZjZTM3MGM3NDkwIGxlZ2FjeS10cnVuaworNjY5NzAgNjg0YmY3OTkwMDk0YmNmZjFkMzg1NGQyM2Q1ZmU0MDhkYWNjYzg5NiBweTNrCis2Njk3MSBlODg0MWMzNDY2NTE5NDcwZDQ1MGEzZjQ4YWNkMDBkZWQzNjQ0YWI2IHB5M2sKKzY2OTcyIDU3ZTJiNWM0NTc5NWE4MDUwZTc0NTAzMzUzMDQwN2MxZDM5YTQwOTMgcmVsZWFzZTI1LW1haW50Cis2Njk3MyBkYmQ1NGJhYzBiNmY3Y2ViNWE5YTFlMTRkMzlmZGYzMmE3MTVmYWFiIGxlZ2FjeS10cnVuaworNjY5NzQgMmUzOGNhNzA5YjFkMjk2YzdmZmE4MjFmYjAyZWJlNzMyMjZhNjljYyBsZWdhY3ktdHJ1bmsKKzY2OTc1IDNmZjdiYjgzMDUxOWMyN2RlMTVmMGQ3YWExODUxODAxMmY5ZWNmYWIgcHkzaworNjY5NzYgMjZiYzBjZDAxMDhiNDViNmRlZjA5NGM5MTM2OTNkNWRmOTQ2NDUyZCBweTNrCis2Njk3NyA2Y2RlMmEwNTFiMjc5ZDIxMGM1NjYwYmJlMGNkMjZhODNiODhiZTc2IGxlZ2FjeS10cnVuaworNjY5NzggODliYTAxYjYxNGVlZDMxODA2OTgwYmQyMjkwMWJlN2E0MDdmMjZiMiBweTNrCis2Njk4MyA4N2VmODk2MDgyM2ExODQ4MTZjZWY2NWU1MTUyNTUyYmE1NjM1OTYyIHB5M2sKKzY2OTg0IDg0OTZmNTQwM2E4MjI1MTA3MDY2YjE3ZDI1OTc2YzE3ODY2NzkzMTYgbGVnYWN5LXRydW5rCis2Njk4NiA0MTUxMzdkMGUyMGE1MjdmZTMxYmNmYjRjY2MyM2JmYjdjMjEzZGVkIHJlbGVhc2UyNi1tYWludAorNjY5ODkgYzIwOGY1YzFlNGZlN2I3MzJiMjQ1NmUwMjllYjgzN2U3YWIzMmU2YyBsZWdhY3ktdHJ1bmsKKzY2OTkwIGMxZGNmZjc1OTc2ZTA1NDZiZjc2NGQ4MTE5MzMwNWRhNTk0YmMxZTAgcmVsZWFzZTI2LW1haW50Cis2Njk5MSAxZWIxNzEyMmI0Y2NiN2RmYzViMTZkYzFmMmM2NDhmMGIzOWVjMmIxIHJlbGVhc2UyNi1tYWludAorNjY5OTIgODBkMmQ0NjdmMjM4ODZkN2Q0Zjc1ZmVlODQwZTM3OTc4OTA4NDY4ZCBsZWdhY3ktdHJ1bmsKKzY2OTkzIGRkZDBmOGNjZTU1Y2QyMDgyYTU1YjliNjJiYWM3OGYwMzg3ODcxNjAgcHkzaworNjY5OTQgMGFmYTczZDRiZjk5NDc4MTMzOTFkMTUzN2EyMzc2YzY0MmFkZDk3YyBsZWdhY3ktdHJ1bmsKKzY2OTk1IDEyNDk4NDBhNDJiMmRhZWEyYTVkNzY5MDU3ZDc2ZTFiNzRiZjI5YjUgbGVnYWN5LXRydW5rCis2Njk5NiAxOTY4NzgzMDMzOGZiYjBkYTY5N2UxNjdkNjE1NzU3MGY5Zjk0Y2EwIGxlZ2FjeS10cnVuaworNjY5OTcgZGY3NDIyNDYwNjYwNjg5MWI2MTJiMTZjMTliMGQxNzNkODVmNjgxYiByZWxlYXNlMjYtbWFpbnQKKzY2OTk4IDU0NzlhODc3YmEyODI2YTBkMDBiOTVjMDFhOWZiOWUwZGMyZGIwY2UgbGVnYWN5LXRydW5rCis2Njk5OSBkODQ3YzRmYjdiMzk5M2I2YmM0OTZiNjY5ZWI0M2FhM2UwM2NhMzU2IGxlZ2FjeS10cnVuaworNjcwMDAgNzEyODRlOTE1NzA2M2JhN2U5NDFjOWRjMDc3YjNmMDhhOGVjMDE2MyBsZWdhY3ktdHJ1bmsKKzY3MDAxIGM2YzMyODQyZTcxZGM0Nzk0MjViNDgzNjdlMzQ1YjQyN2ZlYjUxZjAgcmVsZWFzZTI2LW1haW50Cis2NzAwMiA3MTRkM2MxNDQzYTc0NmQ4ZmFlMzE4NDFiZTJkYzY3OTQ4YTA4MDBlIGxlZ2FjeS10cnVuaworNjcwMDMgYmJhYjExY2RiMTc1NjEwMDY5ZDFmMzEwOThkZTIyYzNjOTcwODkwNSBweTNrCis2NzAwNCAwNTcxNWYwY2Q3ZTc3OTQzNGMzN2U0MmZkOTI2NDM4ZDQ4NTI3ZDhmIHB5M2sKKzY3MDA1IDg5YWU5ZDdkMThkN2JjZGVmNjJhOWYxODhjZmFhZDEyNjAzM2U3NzMgbGVnYWN5LXRydW5rCis2NzAwNiAyYTg1ZTVjOWUxZTJhNzdmNzhiNzNlN2NmY2ZiNGJmNzRmNjVkMGIxIHB5M2sKKzY3MDA3IDYzZjNmMDQ1ZmU0OGEwYzY0YTEyODI5YWVjN2I0ZTE3YzJmN2U3NzggbGVnYWN5LXRydW5rCis2NzAwOCAwYmMyY2QyZDk1OTgyYjMyNTlhYjE3MDRlOGIzNDBlMzJkZTlmNjBhIHB5M2sKKzY3MDA5IDhiNjVkMTNjMTc3YzZiZGE4YzA0Y2U0NmEyNGVkYjM4OTNjMTZkNDQgcmVsZWFzZTI2LW1haW50Cis2NzAxMCAzMWE2OWVkMDlmYmI0MGUxNGYxMmE1M2YxMThkOWQxZDA5NWU1YjQ2IHB5M2sKKzY3MDExIDg0MjBhZjZjMzNlZGQ5MzNkYWE5OWNhZmY5YjhhZGM1YzA0YWI5ODIgcHkzaworNjcwMTIgMmEzODc3MWNlY2RkNWFkMzc0MjE1ZDY4NmUwYjFkNDdhYzY0OGVhNiBweTNrCis2NzAxMyA2NjM0NTMwYTA0ZTAzNDUyMWEyZmQwMDEwNjU5YjY5NTc4M2FiN2RkIGxlZ2FjeS10cnVuaworNjcwMTQgMWE0ODdhYjBkNjViNzQyOWY1ZjE3MDExNzk5MWRjMjA1OTNhOWIzMCBweTNrCis2NzAxNSBiYmUzNzMyMjEyZDY0ZTZmM2IwMDA2NWM0MTFjMDRjMjI3MzNiN2QyIGxlZ2FjeS10cnVuaworNjcwMTggZjY2Njg4ZTY5ZjY2YmY1ZWIyNWRjMzZhM2E3MzMyY2EzOThlNTVhYyBweTNrCis2NzAyNiA0YTc0NTkwZjM4ZGE1YjIwZDRkNTdiYjAxMTliM2MyODYzZWMwNWYxIHB5M2sKKzY3MDI3IGRmMmJiZGU5Njg4MDJkOWNiYWI2M2YxMzdhZThhNWFkYzQ3YzMzYWMgcHkzaworNjcwMjggMTk1Y2Q3ZWJmNjJjZGJjMTU1NmY5ZWE4ZjU3ZTBjZDE2NmE5MGY5MiBsZWdhY3ktdHJ1bmsKKzY3MDI5IDg2MDczN2M5NmU5NzgyYTIxZGM0MGRjOTM1MDE0ZDdmNWEwYWIzOTQgcHkzaworNjcwMzAgYTU3NjhiZDYyOTM4YjlkZjljODVhMmEwYjBmMjNjYjQ2N2YxZTRhNyBsZWdhY3ktdHJ1bmsKKzY3MDMxIDBhMTg4YTJkNTA0ODgyYWEyOWJkZTA0OWMzNGIyNTc4YTQ3ZWEzNDQgbGVnYWN5LXRydW5rCis2NzAzMiAzMGMwYjI2NmFmMDYyYzE3YzY4MTA2NzI3MjY1YmMzNWZmZTZkOTFiIHB5M2sKKzY3MDMzIGU4MGQ5ZTZlMjZiYmQxZjYxNzFhN2UxN2VmZWE2N2YzNTc3NmQ5N2EgcmVsZWFzZTI2LW1haW50Cis2NzA0MCA0MGZkNmVmMGVhYThmMzNiY2VjZTMyMDMyZDIwOTBjY2M2MjYzNTliIGxlZ2FjeS10cnVuaworNjcwNDEgOGJkZThmNTFhZGUxNGRlNDljYWNhMzJiOTA4ZWM5ZDI2ZGQ2MjgzNiBsZWdhY3ktdHJ1bmsKKzY3MDQyIDQwZDhmYjEyOTMwNmFkNGYzOGM4MWIzYmE3MTQzOTNjYjM1OWVmM2EgcHkzaworNjcwNDMgNGI3MjY1MDBhOTY5OWNmZDE5NTM5MzZkMWYzZjFiMjI1MDgzYmU5NSBweTNrCis2NzA0NCA4MDRlNjM2NTgxN2M0YjEyY2MxYWY0YmY3N2RhYTA2ZTk4ZTMwMDZlIGxlZ2FjeS10cnVuaworNjcwNDUgMmFhNjliOWQxMjczOGRmMjBmMDhiYzQwZGRkMDY5ZmUxMGM4MDMyNSBweTNrCis2NzA0NiAwMjFiYzlmODgxMDM0OWRjOGJmZTY2YTg0MmY4ZjIzMjkwM2NlNjUxIGxlZ2FjeS10cnVuaworNjcwNDcgMzQ4NWQ5NTk1N2MxZDJjNTgxZTAxZjEzYjJkNDliYmU2NTJhMmY0YSByZWxlYXNlMjYtbWFpbnQKKzY3MDQ4IDcxMTM5MGQ0YWMyMTM5MGIwYzZkMWRlMjk4MzcyZWYwMzQzNDlkMjYgcHkzaworNjcwNDkgMjRmNjVlMzA5MGU4MGEyMmFmZGU2YTg5MTc0OTE5ODQxZTM1YjkxMiBsZWdhY3ktdHJ1bmsKKzY3MDUwIGJiMTA5YzRiZWQyNzZhMzNlYWFjYzZjMDk0MDE2Y2FlZjFmZTlhYzIgcHkzaworNjcwNTEgYzBhZmM0ZWViYTdkNmE4NDMzNTc1NzljNTJiNzU5NDEyMjVjOGU5YiBweTNrCis2NzA1MiA2YTIwZThjMTc0NWE5ODg4ZmY4YTgwMDcyMGIxZWUxZDk3OGFmMDFkIGxlZ2FjeS10cnVuaworNjcwNTMgYjNkZjU4Zjc2ZTQ5ZDg3ZTBjZjNkOTczNDdjOGQyNzY3MmE5OGRiNiByZWxlYXNlMjYtbWFpbnQKKzY3MDU0IGQyZWM2ZDViMmRiOTcwMWJhMDYyOTUzMjVlODY1OTM5YTY5ZDA3MGIgcHkzaworNjcwNTUgOWZjNTczZmJhZjVlMzRiZGFjZGYyNGU0MzA5YWY4YWEyZmM3NWZjYSBweTNrCis2NzA1NiBlOGMwYTVhNjQ2Y2E2Y2NkYTAzMWViZmFkMDkxNTEzYTI4YmVlOWUxIHJlbGVhc2UyNS1tYWludAorNjcwNTcgZWZlZjVmYzQ1YTlhNDc3MjUwYmVmY2Q3ZGVmZWI0ZWUwNTJiZjhmNiBweTNrCis2NzA1OCBjMzIzMTAyNzM3YmMyM2NiOGZmZTQ5MWZhOWFlM2E3OTY3ZWVhMjRlIHJlbGVhc2UyNi1tYWludAorNjcwNTkgYTVjYTg5NTFiZWYxNzI5YjdmNWQ0ZGI3NjMyMmZmYWE5ZTQwMGFhMiBweTNrCis2NzA2MCBiMGNjY2I1NTk0MWM0MTcwZTE5NWMyZDA4ZjY1MjQwYTNjYmQ1ZmFhIGxlZ2FjeS10cnVuaworNjcwNjEgODA0NWQ1NTk2YjFjOGI5MzM0MDU3MDc0ZTE5YzgyNDY5MGZjNzM1NSBsZWdhY3ktdHJ1bmsKKzY3MDYyIDljOTdiYzg2MTIyYTBmN2M3ODMyMjU4NGFhN2E2YmU4ZTUxOGRjNWIgcHkzaworNjcwNjMgMDZjZjJjZWEzODdiN2U0NTAzZmFiYzk2ZDVkZjhkNTE2MGI4NDYwMSByZWxlYXNlMjYtbWFpbnQKKzY3MDY0IDNlMmRlNDg0Y2UzNDIxN2M2ZGE0N2ViYWMxNDhjYjEwZGFkMmUwMDMgcHkzaworNjcwNjUgOTY0MThmODEyZjA2ODAwZTA3Nzk2Yzc5MzM2ZTZiMmEzOTVkNDQxOSBsZWdhY3ktdHJ1bmsKKzY3MDY2IDdlNDAyNjNkYmZkMzQ1NDk5Mjg1ZmJjOTJmODI0ZjJmNjRiNmYxYzAgbGVnYWN5LXRydW5rCis2NzA2NyA2Y2FjMmUzMDc3YTM0ZDcyYTNlMTgxOWZiNGJiYWI1MDQyY2Y2OGYxIHJlbGVhc2UyNi1tYWludAorNjcwNjggZjMyMzRlNDNlMWZlODBhMjk0YTg1MTU4ODFiYTY5ODAxOGNmNDI5MyBweTNrCis2NzA2OSA5OTA2ZjY5NmI5NDE5NWFmYWYwNTY4ZDFhOGRmOWI5NTYwMjlmNTQ1IHB5M2sKKzY3MDcwIDBkZmRiNTJhYmRmOWY5NTg3YjEwN2ZhMjM4ZmE5ODhhNzI2MjlkZGIgbGVnYWN5LXRydW5rCis2NzA3NiA1NzhhYTQzZGM0MDA0MzA3NTAxOGU3N2Y5MmI2YzMyMWJjZmIzMTNlIHRsZWUtYXN0LW9wdGltaXplCis2NzA3NyA5MWFiNDM1NDQ0MGVmYzgxNDRjNTI0YTMyY2Q2YzIzMzBkNGQwYzM1IGxlZ2FjeS10cnVuaworNjcwNzggMmVkM2Y4OTI2YmI4OTFjOTlhODRkMWMxMGM5MDc0YjBiMTFkMTVkMyByZWxlYXNlMjYtbWFpbnQKKzY3MDc5IDQ1YWM1MTk2ZmE2NzlkZmFlMTk5NGUwODdkMTY5ZjE1NzM1YTI1YTggcmVsZWFzZTI1LW1haW50Cis2NzA4MiAxMTg0YWJjNWY5NmM5NmQ2MTJmM2U5NmQxMDQxYWNmMjUwNTZkOTc4IGxlZ2FjeS10cnVuaworNjcwODMgMDBlNzFjZDg5MTI4NGE1N2NlZjBhOTY1ODU3ZDJlNjM5NDc5NWRkYyByZWxlYXNlMjYtbWFpbnQKKzY3MDg0IDQ1MDQ2ZjA3MjI3YWQzYWYyNzFkNTE3YWYyOGFiZTViMTk2NjhjNDggcmVsZWFzZTI1LW1haW50Cis2NzA4OCBiZDBlOWE5Y2QyODNhNTU0MGFlY2Y5ZjFhMGI4NzViODYxMTllNTZkIHB5M2sKKzY3MDg5IDBkZWM1NGFhNTNlZTc1ZTM3YWY2YTE4MmI1OWJlMDIxMmE5ZjZkYTYgbGVnYWN5LXRydW5rCis2NzA5MCBmODQ5YzU5YmJmZDc2NGYwMjUzZjQ5NTljZDEzNmEwODk0ZDFlZDEyIHB5M2sKKzY3MDkxIDBjOGZhZjZjOGViMjk2MGQ0YWI3MzgwMWJiMWE4MzJkNjc4ZGMzYmYgbGVnYWN5LXRydW5rCis2NzA5MiA1ZjgwMWFkZDIwZmJiYzMyYzY5OWU0NWY5ZWY0YTExYjY4YzEzNDRiIHB5M2sKKzY3MDkzIGYyYmIxMzNlZjUxN2Q0NTBkMDJmYTZjZmZiYmY1ZWVhYTNmZWVkYzEgcHkzaworNjcwOTUgZjY3YjJjOGZhOTNhZDIzMjJkZDI2OWU3YzFhOWQ0NmE2MzNmZTdmOCBweTNrCis2NzA5OCBlNjhlNDJiMTdlNWUzNDE0NDkwM2U5M2E0YzU5MDVhNDZiZGQwNWViIGxlZ2FjeS10cnVuaworNjcwOTkgYTUyOWUzZGM2OTVhOGI2ZWRkZTQ4YmMxZGY4OGZhMDIxMjkzNDNiOCByZWxlYXNlMjYtbWFpbnQKKzY3MTAwIGMwODllYjY0ZWU1NzZlNTdiZGFmMzJlYzMwZThiNmUzMDIwZDkwNDUgcHkzaworNjcxMDEgOTcyYjQwNTQ2ZDc5NTU0ZjNhODk3MWYwZjE2ZWYyOTM4MDA3ZmMyNiBsZWdhY3ktdHJ1bmsKKzY3MTAyIDUwZTc4MjJjOTU4NWZlZjU2ZWQ2NjYxMWZhYzRiODU0MmFkZTNlOTMgcmVsZWFzZTI2LW1haW50Cis2NzEwNiAyM2Q5Y2I3NzdkOWE4MTZhMjU2MmRlOGI3N2ZhZWM0NWMzZDQ4MTA1IHB5M2sKKzY3MTA3IDk4ZjMxNzU2NDYyMDNlZjRlYTM5MGQ0MzQ1NGJiZGU3ZWFiZjM2ZmMgcHkzaworNjcxMDggNDAwZmJjODA1MmFkZWNjMTc2OTI2ODVkYjM1MzM4YjNjYjkxNTE5YSBweTNrCis2NzEwOSAxYmMzZDFiMzlhNGI3OTVlMjY2NTNmN2M2NjllZDAyYWM2MTgzYjJmIHB5M2sKKzY3MTEwIGUyYTQ3MmYzYjc3ZjZjMTBlYTQ1NTE3ZjM5MThjOGVjMTkxOTA4ZmQgcHkzaworNjcxMTEgNWI0Y2I4Y2Q1MDUxZjdhMDEzOTc5YjQ2NDdhYjFhOGI0OGMwMmY1ZCBweTNrCis2NzExMiBhYTZlNjQ5NTk5YWQwOTBkZjkxMmRhNjcxNGQ2ODhkYzMyYmNjNzQ3IHB5M2sKKzY3MTEzIDNhOTQ3NjhhMmE4YmU1ZDA5MjgwNmRjNjhhNWFiMWFlY2IxNzJhMGQgcHkzaworNjcxMTQgZDcxOTZmYjk0ZjI1ZmM4ZGE1Yzk5MzQ4MGQ1ZTA1NTE0MTQ3M2JlNCBweTNrCis2NzExNSA2ZTBhMzYxMDc4ZTUyMTY4YWE1ZWM5MmE3N2MzODliNjRiMjFjYTkzIHB5M2sKKzY3MTE3IDFjMjNlNzAwMTUwNjc0MDQ0YTA2ZWM3MDdjMmFkMWYyOTFjZjYyNjQgbGVnYWN5LXRydW5rCis2NzExOCA3OWM5YWI2NDk4ZmRmYjlkZmZhMzMyNDY0ZmU0ODc1YTc0MTRkZmFiIGxlZ2FjeS10cnVuaworNjcxMTkgOWEzZTkyNDNjNTE4OWJlNjQ1NjAyOTNmYjMwMjc2M2U1NTVjZjE3ZSBsZWdhY3ktdHJ1bmsKKzY3MTIwIDI2ZjAxZWVhZjU0ZTgwZTljZGJiZWMwYjg5YzhmM2VhYjhhYTg3M2YgbGVnYWN5LXRydW5rCis2NzEyMSBmM2Y2NTBjN2QzYWFjNjNjYmJmNjZiZjA1ZjU2YWRlZTdkNzIyODNlIHJlbGVhc2UyNi1tYWludAorNjcxMjIgZjc4NjdiNzdkYzU1NzgxODFkMTk2YjJmZjRkYTNmYjVmMDJlNjVkNyBweTNrCis2NzEyMyA4MzcwZTllZjdmMGZkYzk2N2Q5OWE2YjkyYjZiN2EyZTM3MWUwZjZlIGxlZ2FjeS10cnVuaworNjcxMjQgN2U2M2ZlYjMwZWE1ZGRjNjkwNTk5MzAxOWJlZDA5NWJkMzMzZjA2ZSBsZWdhY3ktdHJ1bmsKKzY3MTI1IDIxMGM1ODVmOTViZWU2ZjQ1OWQxMTM0NjRjZmJiMmM4NzY0ODlmNWQgbGVnYWN5LXRydW5rCis2NzEyNiAxMDQ1MzdhNTQxOTY1MGQzNzk4ZjVhZmQ5MDc3ZThhZTg4M2IzYzI5IHJlbGVhc2UyNi1tYWludAorNjcxMjcgMzI1NjE4NzkyNWQxZTkxZWYxZTMxOGIxOWQyYjNlZGVmOWZlZDc4ZSBweTNrCis2NzEzMiAxNGQ0NDEyZDJiZjg0ODEzMGViOWQ2YjUxYWUwMmFhOGQ5MGUwY2VhIHB5M2sKKzY3MTMzIDgyODA5NDg1OTJiYjJjZGRkOGEwNTQ1NTg5Njk2ZDkwY2ZjMDk0NDMgcHkzaworNjcxMzQgOTc0Y2FmMTY3ZmYwNDUyOTYyYzBiNTMyYTYwYmNkZGE4NTU3NzdmNiBweTNrCis2NzEzNiA1MzRiZTgwNjZjMzZhNmFmYzI2MWI1YmZjN2M3NjIwMGQ1NGRhMWI4IHB5M2sKKzY3MTM3IDhmYWU0NjVhMzk2MjdiNTkwMzg1NDYyZTYwOTVlYjYzYWY0NTI0MGEgcHkzaworNjcxMzggYWM0MmRjOWEwMjAzZWZiMzdlNjVmNzc3MzdmZDE5NDRhOTE4MDMwOSBweTNrCis2NzEzOSA5MmJhMTJmOTMyODIzODRhMjM4YzBmYjA1NjllN2NmNDkxZjAzMmRlIHB5M2sKKzY3MTQxIGQyZjczMjNmYjcwOTY1YmU2MjJhZmQ0Y2M3YTU0MjE4NTA1NzljNGMgcHkzaworNjcxNDMgYzk4M2ZhNjhkNmZmMjU1Y2ZjN2IyYTU5MDUxODljM2E1NTczYzNlNSBsZWdhY3ktdHJ1bmsKKzY3MTQ0IDYyMzhiNmNmNzdmMTA1N2NlYWM1MWE0ZDY2MTdmNTliNDE4MGRmYmQgcmVsZWFzZTI2LW1haW50Cis2NzE0NSBlYTg3ZTg4MTQzNTliMzhlNzcxOGJiMDA4YzUwOTljZTFhODhjZDdjIHJlbGVhc2UyNi1tYWludAorNjcxNDYgODJjY2M3ZTc3ZWM1NTczZDU2OGQyZjUxNTZkNWZkNWM5MGQzZmYxMCByZWxlYXNlMjYtbWFpbnQKKzY3MTQ3IDQ3OWRhZDlkYzk2YzFlOGRjZjYwNDZkY2M1Y2JlOWUxNzgyOGY2NGIgcmVsZWFzZTI2LW1haW50Cis2NzE0OCAxZjdmNDFmMjBhYzU5NjY2ZDg3N2RmZGM5MjZiYzJkMTUxMzBiMTBlIHB5M2sKKzY3MTQ5IDlkYTUyOWEzZmQ1YWU3NDJkMjhhZWU1ZWYzZjgxNzE4Mjg3OTljYjMgbGVnYWN5LXRydW5rCis2NzE1MCBmYWNjYjk4ZDk0NzRlM2MzNTA0MDgzZjM0N2M5MWEwNzJjYjgyZDY3IHJlbGVhc2UyNi1tYWludAorNjcxNTEgYWNiNzhlY2U1NmE5ZTEwMmZjOWU2NzYyNWIyZTc0ZDljYWM1NTFjZSBweTNrCis2NzE1NCAzMTczNzE3YTg5ZjMxN2NhNzEzODgyOTExMTIzODI4MjhkMDIyNmUwIGxlZ2FjeS10cnVuaworNjcxNTcgNTcxOTM4MDU0NzIxZGIzZmZmM2U5YjA5M2E5ZTUzYjFhOTcwZDRhYSBsZWdhY3ktdHJ1bmsKKzY3MTU4IDAwOGFjYjBjYmJmYzI5ZWU4Yzk0ZTJkMDBlYzVlYzJkMDA4OWIyOGUgbGVnYWN5LXRydW5rCis2NzE1OSA1ODIzNWI5ZGMzYWUyNGM4OTdkYjFmN2RmOTc5YTQ4NTU2ZTAzMmVlIGxlZ2FjeS10cnVuaworNjcxNjAgNmYwNjU3MWE4YWVmYWZlOTY3MDkyNTdiN2YxNzlhNDFiZjhiZmY2OSBweTNrCis2NzE2MSBkMGFhMTBmZjI4YzY1NzAwNjU3MGIzNWM4Mjk1ZDVhNTQwZWE1OGZiIHB5M2sKKzY3MTYyIDIwYTQwODk0NTM5YTQ4YTFhN2ExZmU2YWI0MmM1ZWRiNWYwNzRkZWMgbGVnYWN5LXRydW5rCis2NzE2MyBkMzRjY2IwMzQxZWE1M2FhODZiYzM3MGRhZDE2NDRkMGYxMDk2MGVkIGxlZ2FjeS10cnVuaworNjcxNjQgZWY4ODBlMmNjNTY4Y2NjZjk4YjhjOTQ1MzJlMDM2YzU3ZTJjYjc2YyBweTNrCis2NzE2NSA3MWY1M2QzZDE1NTEyMWNmMDNhOGViNzcwODkwYzNmMjFjMDU5MjI0IHB5M2sKKzY3MTY2IGJjNGY3NDJlMmMxZDUzODQ0NTFjYzVkY2VkNWIyOTUyZmNlMjUxMWQgbGVnYWN5LXRydW5rCis2NzE2NyBmMDdiODJhMzIxZmUxOTA1NTM3OTg0N2Q1NTdlN2I4ZTVkYTk5OTMwIHB5M2sKKzY3MTY4IDc2ODMyYzA5ZDJmZGMxYjA2OWViZjBmNjFhMjZjNzVhNDVmZDIzNmUgcHkzaworNjcxNzEgMmUwODU3YjBmYzY3NTc4NDRhOWUwZGRiNTY3YmE0NWNkZjcwOWUyNiBsZWdhY3ktdHJ1bmsKKzY3MTcyIGNkZGQ5MTgwYjhjODgwNjIyNzA2YWQ3YjQ4ODlhYmVhZDU1ZDg1OTEgcHkzaworNjcxNzQgMjExMTUxZmRjOTI0NDQyY2NjM2NhY2U1ZWMwZmNhOGJkNDFhMzBlNyBweTNrCis2NzE3NSAyYmIxMmNhMmZmNDRlMTFiOGMzZGNiYTg0MjQ2NTdhZjllYjM5NjdjIGxlZ2FjeS10cnVuaworNjcxNzYgYzJhNzViYTQ2ZjE0ZDlmYzI2ZDRhZWM3ZTZjOTRlNTU3YmQ2YzA0OCBsZWdhY3ktdHJ1bmsKKzY3MTgwIGFlODNkNGFhM2UwZWQ5NzQzY2MwM2ZiM2FjOGE5NjQ1YmE4NjA2YjggbGVnYWN5LXRydW5rCis2NzE4MSAyYjMzNDBiNWNhMzg2YjUyNDY3YTViZWViM2ZhZjU3OTAwY2I5MDlmIHJlbGVhc2UyNi1tYWludAorNjcxODIgYjI0ODFhMTUzNzYzNDhmZjgxYmNmMWNkMDA1MTdmMzlmNDdiZTlkZCBweTNrCis2NzE4NCBhY2Y2OWUwNzliODQ2YjVjM2Q4NGU0MGU3OWE5NGVjMWJhOGZhZTM5IHRsZWUtYXN0LW9wdGltaXplCis2NzE4NSA1NGNiNTAxZjYyMTVhYmRjY2Y5ZTQxMTU1MmEwYWZlMzM2NGJhMjczIHB5M2sKKzY3MTg3IDIxOGE5ODk4MTE4M2QyYTNjN2YzZDE1ODc5ZTBmYTExYzA5Mjg0ODggcHkzaworNjcxODggNjNlYTIyYjU4ZDU0MjU5MjE5NjZkZjA1OWNmMjJiM2VmZjhjMTllNCBweTNrCis2NzE4OSA3NDQwYTMwYTJmMTM0MDNhNDI3ZTEyMGNjNmYxZjc4ODBiYWUyZDVkIGxlZ2FjeS10cnVuaworNjcxOTAgZmI3MjUzNjZmOWFjOGJlZDRlMzJkNjZkN2ViOTIzYTU1NWM2ODI4YSBweTNrCis2NzE5MiBiMDcxM2ZiYzUwNjFiYWEyNTJhNDQwYjI4ODY1NzRlOTJjZTA5ODdjIHB5M2sKKzY3MTkzIDgxMTkwY2IxY2FlMjkzMDZhMjI4MmQyZTE2YWM0NTBkNjVhZDYyZTQgcHkzaworNjcxOTQgZjJiNDNkMjgyNTFkY2RjMDIwYjhmZWY2MzgzZWQyY2E5YzZkODY2YyBweTNrCis2NzE5NSAwM2U3NGRkOWNjODNmNTkwZjg1ZDkwMjVhMjk2OTM2NmQ2YzU3NzM3IHJlbGVhc2UyNC1tYWludAorNjcxOTYgOGQ2ZTI0OTk3MjZhNTI4MTNhMTMwMTlhMDZiMjc4OTg5NzFhNTBjOSByZWxlYXNlMjQtbWFpbnQKKzY3MTk3IDYxYTMzMDUwNDQzZDIwZjBkMjRhZjkyMjc5MTI4MDU2ZjllOWE4YjYgcmVsZWFzZTI0LW1haW50Cis2NzE5OCA5NzgxZWVmMzE5MmM2YWIyY2NiMjVjZjhiZjExODU2ZTA5ZTBmZTIzIHJlbGVhc2UyNC1tYWludAorNjcxOTkgMjAwYzhhYWIxOTE3NmZiZjcxODYwZDQ3MDI2YmRiZGE2NGE3ODYxMiByZWxlYXNlMjQtbWFpbnQKKzY3MjAwIGNlNzIyNGNmODdiYTIwZjQ4YzBmZTBjOGY5ODczMWE5NWVjOTY1ZmMgcmVsZWFzZTI0LW1haW50Cis2NzIwMSAyMzI4NWZmMTBjMDRkNzkxYjRlNzAxYTRkYTcyMTE1OGQyZDBkNGQ0IHB5M2sKKzY3MjAyIDlhMTNlOTY2ODg5Y2I0NGM4N2Y2ZjgxNDhmNmQxZTIxNzAwYTE5NjEgcHkzaworNjcyMDMgY2QwOGIwMGFjZDZhMWNhNTM5YjAyNzAwYzE0NTY3NTg4OWI5MGM4NiBweTNrCis2NzIwNCA5ODYyOGRjNzMwZGFlNzcwZjQxODEwNGY4N2I0YjMxYzlhNDBkNzBmIHB5M2sKKzY3MjE2IDQ5NGJiOTY3MTM5MTc5MDVlY2NlZDRkNDM5NmJkOWJiMTM0NDZmYzcgcmVsZWFzZTI1LW1haW50Cis2NzIxNyAwNTlmMTE2YTI4MTk0Zjg4MzZiZDE5ZDljYjc3Y2MyMjRlNmJkMmE3IHJlbGVhc2UyNS1tYWludAorNjcyMjQgYzI3NzJjYmZlMTgxZTFmM2E5YjYyYWJiZTRhN2MzMjcyNDQ3NDZiNSBsZWdhY3ktdHJ1bmsKKzY3MjI1IDE2NjAwY2FjZTMxNWRjMmMxZDcyZjM0MGI4NzQ5MWIxMGUwNjM0ZjQgbGVnYWN5LXRydW5rCis2NzIyNiAwYWQwNzA3ODQzM2EzODc5YzUwMDYzMDZhMjVlZDc2NTk2YWJiZmM3IGxlZ2FjeS10cnVuaworNjcyMjcgNGM0NjMyM2FmYWI2Zjk5Y2JlOWYzOTI4NmQ4Yzk1YTkzNjU3MDdiZCBsZWdhY3ktdHJ1bmsKKzY3MjI4IGRiZTRiMTZmODA0YmE3YmQxMTE1M2E5MWE0YjU2ZWIwNzE1NTE1OWMgcmVsZWFzZTI1LW1haW50Cis2NzIyOSA0MjBhNWU4M2UwMmU3YjRjMTc1ZWE3NjY4ZDYyM2Q0OWZhY2U5ZTQzIHJlbGVhc2UyNi1tYWludAorNjcyMzIgYzcwN2RhMzQzNTU3OGNkYmE1MDI2YjUzMDFjZDM1Y2E0YTNlODhiOCBweTNrCis2NzIzNCBlNzRkZDU0MThhMzNmYjAwMGI5MzM4YTlhMzVjNGRkNmUwMDJkYjM0IGxlZ2FjeS10cnVuaworNjcyMzUgYjQyOGU4ZjZiMTQzNDYyM2Y2ZTFkZmZlODQzNDQ0YWQ0MDIyNTBlMSByZWxlYXNlMjYtbWFpbnQKKzY3MjM2IDdkZTFiMmFkMzgwNDg1ZDBlOTcyOThjNmNiNDljMjJjYTgyYTQ3OGQgcmVsZWFzZTI1LW1haW50Cis2NzIzNyBiMGZjYjE3ZjdlZmE4MTUyNmQ2ODcwMGQ0YTc0ZGNhYTg5ZWQ5NDFkIHB5M2sKKzY3MjQxIDFlNDRlYTUxNmUwZTcwYzVjYTUyZDNjM2I1MThjNTAyOGZiNmY4M2UgcHkzaworNjcyNDIgNjIwYTM0ZGMxMGY5MDY2MzdjZWM1MDZjZmNhOTBiODVkNWZmMTVjYSBweTNrCis2NzI0MyA3NTU5YTMyY2MzMGVmOTYwNTRlMGFjZGQ4OTgyMmIwNjlkNzk1Mjc3IGxlZ2FjeS10cnVuaworNjcyNDQgNjc0ZWY0YTdjZDczMDE3NWY1ODNiN2MzNzA0ODZjMTFlMGVmZWQyZCBweTNrCis2NzI0NSA0YjMyMTk5YThhZmVjNTc4NWRkNmM5ZWI3Yjk2MGQyYzM4MGRlN2UzIGxlZ2FjeS10cnVuaworNjcyNDYgMDgxMzVhMWYzZjVkODg1MGRjNTVkODNlMzZmNzk3OWRjY2IyZGE2NiBsZWdhY3ktdHJ1bmsKKzY3MjQ3IDczYjlmZTFjNTM5NzNkM2VmZjM3YTY4OGRiOTIxYTQwNDU0NjBkOTggcmVsZWFzZTI2LW1haW50Cis2NzI0OCAzNTZjM2UxOGRhNWU4NDhhOWY5OTIyYjY3MDdkNzNkZjdkNjNkZDRiIHB5M2sKKzY3MjQ5IGE1ZTQxYTc5NDk1NDQzNzlhZmU3YjEzMmU1MTljOWIxOGNlOWM2MTcgcHkzaworNjcyNTAgZmM0NmFiZjE3MGZkZDhkNzVjZDljNmI5OTYzNDFiMWJkNWYzYjBkZSByZWxlYXNlMjQtbWFpbnQKKzY3MjUxIDkzNmE2ZTYwZjNlYjdhM2JlNDdmYmFjMjY5NWJhNDZmYzBkNTBlNTEgcmVsZWFzZTI1LW1haW50Cis2NzI1MiBmMzlhY2ViY2U2MjhiZTFmOThjOTEwOGIzNjJhN2UxNmYxMzc0Y2U5IHJlbGVhc2UyNC1tYWludAorNjcyNTMgZWQwZGFjMjZiMzk2ZGEzZmI3NzY0NDlhMGU1NmVjY2M0M2U0OTg3MSBweTNrCis2NzI1NiBlMmQyYTdhNmU4MzE1ZGM4MjY3YjM2YzQ4ZWY3MWMwZGU0MmViYTVmIHB5M2sKKzY3MjY2IGVhNmVlMjgyMDc1M2JjZWZlZTUyZGI3OTA2MDFmMDhlNmYzOTVjYmIgbGVnYWN5LXRydW5rCis2NzI2NyBkNmU2Nzk4OWZmNTE0OTczNjJmZTNmZGI3ZGU4ZGFmOWIwZjdiYjBjIHJlbGVhc2UyNi1tYWludAorNjcyNjggYzZkMTZiMmE4ZWZhNGQ1NjI2YWRhZThlMTYxNDkxNjJlNzkyZWEwZiByZWxlYXNlMjUtbWFpbnQKKzY3MjY5IGNlNjkyMzU0NWU1ZWMzYTYzOTBkNjYyNGFkZDg0YTYwNDBhOTdhZjYgcHkzaworNjcyNzAgNmQ2ZTM4Y2ZmMjQ0MGUyZjlmZmQ0NmUxZWUyNTUwMWQ2MDkyODYwMiByZWxlYXNlMjQtbWFpbnQKKzY3MjcxIDBjMGJiMTA0ZWM0YjdhN2Y2YmRiOTk5MmM1Nzg2M2JiZThkNmEwZmUgcHkzaworNjcyNzcgMmQ5YjE3M2RjM2EyZWI3YTgwNmU1MWIzM2M5Y2E5NWNmYWU4MzdiMiBsZWdhY3ktdHJ1bmsKKzY3Mjc4IDE1M2ZlZDdjN2I2MGI5MGQ1ZTk0NjYzODkyYzllZmVmY2M4MTA0MTAgbGVnYWN5LXRydW5rCis2NzI3OSA3MWE1MGU2NzVmYTFlNDQ4YWVmOGI2ZGYyZTViNDM1NDBhMWU3OWMwIGxlZ2FjeS10cnVuaworNjcyODAgN2JiMjA0NjEyZmM2NzZiYmM3ZWZlMGVhNjM0YWE0OTg1OWFiMDVhNiByZWxlYXNlMjYtbWFpbnQKKzY3MjgxIDhiOWJkYTViOGQ0YTlkMWJhM2E3YTI5YmEzZWZmN2JiZDUwNDhkZWIgcHkzaworNjcyODIgNzIzODk1MGQ1YzYwNDAwNzdkYTcxNWQ4MWQ1Yjc0MWM2M2MyYzczOCByZWxlYXNlMjYtbWFpbnQKKzY3MjgzIGJmNmE1YmU4MjdiNGMyZTZkMGNhOWNiNjcwOWU3MDgwNTgyZTQ4NmEgbGVnYWN5LXRydW5rCis2NzI4NCAxZjdiNmM0MGM5OTA4OWE2NjViMTlmMTc5MzZkMzdiY2NiMDk5OGMyIHJlbGVhc2UyNi1tYWludAorNjcyODUgYTkzNzZhZGMyODRjZTc5MGMxMDMyOGIzNmE3MDRlZDZjYWM5NjkyMiBweTNrCis2NzI4NiAwNzIyZDcxYWZhMmYyODZlZTQ1MWY0MjkxMzc5ZDIxMDM5M2QyYTk0IHB5M2sKKzY3Mjg3IGE0NGNlNTU1NmE3ZmM2MzAyNzkzNDkxYWExYWRmZmFlOTMzYjRlYTYgbGVnYWN5LXRydW5rCis2NzI4OCBmMDRkZjEwZTIwNTAxMWU4YmNiNGNiNjEyNWVhOGQ0NTYyOTA4MDczIHJlbGVhc2UyNi1tYWludAorNjcyODkgZmZhZTU4Mzc4NTFjYjRhYWIyYmM0YzdkMjhkMDQyOTMwMWRmZTI0ZCBsZWdhY3ktdHJ1bmsKKzY3MjkwIDFlN2QzMjIyNzRjODNlYzc3YzlmNDM4MTZlZTJkMDhjZTFmNTg1NDEgcHkzaworNjcyOTEgN2IxODc5OWU5NTE5NDU4Mjk0Yjk3YTRlYjE2Y2Y4MWRlNThiNzJkOSBsZWdhY3ktdHJ1bmsKKzY3MjkyIGZkYzkzMzk1MTk2NDZmNWNiM2FhYjkwMGFhYjMyN2Q4NDNmYWJlMzEgcHkzaworNjcyOTMgY2FjYzAxOGZhMzQxYWI1YzU3OTZkNWVmZjYyYmZkZDkyYWQwMGI2ZiByZWxlYXNlMjYtbWFpbnQKKzY3Mjk0IDA4OGZkYWRmOTYwOWQxOTNlYjEwZjhhNDBmMDliNTBkZjkwMWZmOWMgcHkzaworNjcyOTUgYTI5MGE1MWZmOGUyN2Q3MmI4ZDFmMWZiMzBiOWFlYzc2MjYzOWIyZiBsZWdhY3ktdHJ1bmsKKzY3Mjk4IDJkYTNmY2Q0OTM1ZjE1NGY5NDE4NmIzNWMxZTkxODAyM2UxM2JmZTAgcHkzaworNjcyOTkgMmNhOTY0ZDcyNGQ1ZmY5YTE2NzQ2NzQ1MTliMzQzNmQzODAxYzFmYiBweTNrCis2NzMwMCA4NDEzNjlmMzczMzQ4NjFlOTAzZmZmMzdhY2U5ZjFiYzE3YjgxNTlmIHB5M2sKKzY3MzAxIGNiODAzOWQ4MmFmM2YxNDBmOTZjYTEzMjE5YzBhNmYxY2YyYWI4ZmEgbGVnYWN5LXRydW5rCis2NzMwMiAyNDY0NTg3MDc3OWFiOGNjYTM3ZWFiOTY4YWQ0MTEyNDVlNzJjM2ViIGxlZ2FjeS10cnVuaworNjczMDMgZjQxY2IyMDZkMDYxZWQxMzU4Njc4ZTQwMGMxOThmYzY5OWYyMGZkMSBsZWdhY3ktdHJ1bmsKKzY3MzA0IDg4ZmY0NWU1OGU5NGI2YmE2NTUyZDg4ZGYyNzYxY2M2NmUyNGVhZjcgcHkzaworNjczMDUgZGMxZGI0NmQwYTQ0YjliOWEzZjY4YjQ2MDBkYzAxZjdjYWI1Mzc5ZiBweTNrCis2NzMwNiA1ZmZkNjdkZjhjOWYwODE5ODYwY2EwYjVmMjM4ZWZkNWU2OTBkYjQ2IHB5M2sKKzY3MzA3IGVhZGU0N2RmYzFlNDcwNDc4NjVkNWNhZTFjNGI1Zjg4NDM3NzFkNzAgbGVnYWN5LXRydW5rCis2NzMwOCBmOTVmZjk2ZmQ3OTJmMmYxZGUzMWU4YjQ5ZDc3MTg2NWM4MDdhODY2IHB5M2sKKzY3MzA5IGJhYzA0MGI1ZWYyMmE0MjQ0NWU2NDhkOGU5NjYxNGNkZjJhZTM2MDIgcHkzaworNjczMTAgNTRlNWQ4NTNiMGRlYzdlNzRlZjMxMjY4M2FmYzFmMDUwNzU2NGY2YiBweTNrCis2NzMxMSAxNTlhMTFiMWQyNDQ1MGE0YTUxYTQxZTg3ODkzNjQ2OTI2NTVkMjM3IHB5M2sKKzY3MzEyIGU4M2E2MGM2OWQ1M2Y1NTUxYTMwNmU3N2E2ZDM4ZTliMTE0ODU0OTYgcHkzaworNjczMTMgMzRmYjY2NmZmNTJmNDEzNGYzMmVlYTY4NTk1YWU2ZDZiYzM4YjAwYyBweTNrCis2NzMxNCA3YWFhM2FmZmVjYzE1MzJlMTEwNGJjMTdmMWQ4NTliOTUxNTczYWJiIHB5M2sKKzY3MzE2IDM0YmMyMjc5ZGM1NmRmZGFiMWRhMzI3NmE1M2MyNjFmOThhNWEyMDQgcHkzaworNjczMTcgZWRhNDY3ZDY1YjY1ZWZiMjExYzNlNDQ3NTM4YzExODI2MWIxZTU5NiBweTNrCis2NzMxOCAyMzI3ZGQ2ODQyMWNjZmZjMDA1MzhiN2RmN2YwN2Q4N2RjNzZmODgyIGxlZ2FjeS10cnVuaworNjczMTkgMzI1MGZiNzFhOWUwOGMwNmE4NmVhYmYyYjE1MGFhYjlkM2JkYTUyOSByZWxlYXNlMjYtbWFpbnQKKzY3MzIwIGI2NGQwNTNhZmQ4NGRhOTE0MDI5M2NhODU2NzlkMDFjODI2ZDhhYzQgbGVnYWN5LXRydW5rCis2NzMyMSAwYmNhZmE2NGVjY2I0NDM1N2RhY2FiMzU3ZTU1NGFhYzdhOWI3OGQwIHJlbGVhc2UyNi1tYWludAorNjczMjIgZjQwM2Q5NDE1N2IyMTBkY2Q5MzhkMmM2MzNlYTQ0YzExZGY2YjYwNiBweTNrCis2NzMyMyA3ODQ2ZmU0OTUyMTI5MDBkNjEzNGE4N2VhNDRiYjhjMWQxZmQ2MTdjIHB5M2sKKzY3MzI0IDBlYjVhZGQzMTYwYTI0OTA5MDEzN2VjYjIxY2FjY2Q4YWYxMzBhYzEgcHkzaworNjczMjUgNmFlZjI4ZWJiZDZjMTE3NGI4NmZkODUwYTdlMmQ2MmI3N2M2OWZkOSBweTNrCis2NzMyNiBkYzRhY2Y3NTMyOTYyZDNjOWI4OWVjNDA5ZWVkZjljMjI2N2Y2M2Y5IGxlZ2FjeS10cnVuaworNjczMjcgYjE4MGIyNzFhN2IyYjQ0ZmQ3NmY0MmRjMGVlMWE2NGVkZmExZmI1MCBweTNrCis2NzMyOCAzMWQ4OGZmZmI5OGExMDRhNDgzNDk4MjM2MzliYzFjM2JmMjgzMTJmIHB5M2sKKzY3MzI5IDhmMGExNzVmMDRiZWFhZDVkNDA5OTAyNjY3NTNmZDYzOWNmMDcwNTUgcHkzaworNjczMzAgM2YyZGRiM2RkMTQ3YTViMzI3MjY2NjA5ZjhhOGEyYzg0NGZkMDhkZCBsZWdhY3ktdHJ1bmsKKzY3MzMxIDJkOGMxZWE3ZjhiN2VjNDVkOGI5MjgxMjJjYjEwYTMwODFlMDFhZGUgcHkzaworNjczMzIgNWUyMDA3ZmEzY2Y4MmM2YzRjNGQwZDQ5NGZhMmIyMjYzZjlkMGIzMiBsZWdhY3ktdHJ1bmsKKzY3MzMzIGEwZjRkNDVmZDQ0Y2Y2ZjE4NzljOTUyMjE4OGI5MjU4N2EyZDM4NDEgcHkzaworNjczMzQgYTQyMjBjOTJmN2NjZjQzMzAxNjZjZTZhZTA1MzdlYzAwODMyMDE5NyBweTNrCis2NzMzNSAyZDk3MDY5MDEyNDE3MTc1YTMwODE1YjUxZWYwMDdjNzc5ZmI2OGRiIHB5M2sKKzY3MzM2IDc4OWEzYWIwYWU5ZWE3Zjk3OTRhZDgxMGU3ODQxNTMzNTM5MmY0ZjQgbGVnYWN5LXRydW5rCis2NzMzNyBjMDA5ZjAwYTQ1MGZkYTc3NGIxOTgyYjVkMjc2ZDEwMzM1ZDYyMzkxIHB5M2sKKzY3MzM4IGI2YTgyNDU5OTIwY2VmMGEyMDI5MjdjMzE1ZDVlMmVjYzZhNjU5ZTYgcHkzaworNjczNDAgMTMzMjFjYjJkNzUyMDMxMmY4ZDUyMjM4MWUwOTdhNzBhMTIwODI2OSBweTNrCis2NzM0MSAwMzBhMTUzNjllYWM3N2NiM2JjMjY4YzhiYWUxYWQzYzBlNjM3NjZkIHB5M2sKKzY3MzQyIDVmNzA3MDZhOGU2NzE4ZjFjMjIyZTBiMjRkMTA5NzJmMzliNjMyMmIgbGVnYWN5LXRydW5rCis2NzM0MyA1ZmVjZDFlOTUzMjQ5NzkwZDNiYzk2MzJlNjhmMDEyZjcyNjU4OWUxIGxlZ2FjeS10cnVuaworNjczNDQgNWQ5YmU2NWU3ODkxZjcyMDQ1MzlkNDUwNjY2YTUzYmNiNTY2M2QwYSByZWxlYXNlMjYtbWFpbnQKKzY3MzQ1IDYzMGMxNzRiNDY1ZTk4MTY5YzQyOGU5ZmUzNTllNjU4N2I3MDU0ZTQgcHkzaworNjczNDYgN2MyYjFiNTJmMTM0MjhmOTU2MWNkMWUxNTY2MTA2YWRhZmRhZmJkNyBweTNrCis2NzM0NyA5M2QyZGQ2NDFiNzAxOTQzNGM5Y2IxZjJjMTA4ZTRhYmNiNzlhNGEwIHB5M2sKKzY3MzQ4IDhhM2VhYzdmOWNkNjQ5N2ViMzVkZTc3YjM0ZjY5NGJhMTYwZDVmZTYgbGVnYWN5LXRydW5rCis2NzM0OSA1M2ExMjdhZWE1NmU5MzU5NzMxNmVkZGFjZjc2ZmE4MzNjNWUzMTMzIGxlZ2FjeS10cnVuaworNjczNTAgYzlkMGQ0ZGE5YWM5N2RjNjk3ZWNkNWYwM2ZmYjgyMzFjZWYyNmNkMCBweTNrCis2NzM1MSA3YmJjYTI3ZDM1NTllMjdlZDg2ZDU4MGViODU5YTVkMDRmMmZjZjc3IHJlbGVhc2UyNi1tYWludAorNjczNTIgNzVlOTkyMDM1MWYyNWUxM2QxYTI1NjgwMjZjN2U1ZDk2M2UyMTEyZiByZWxlYXNlMjYtbWFpbnQKKzY3MzUzIGU3MDRlZWRkNzdkY2RlN2EzMzE0YzVkZjVlYmZiY2E4ZmRjYjI0OWYgbGVnYWN5LXRydW5rCis2NzM1NCBkNzMwM2FiY2YwNjkyODJiZjI0ZWVmNzQxN2M0Mjc5YjM2MGVmMjg2IHB5M2sKKzY3MzU1IGNhNjczYmJkZTFhM2Q4MWE1YjQ0YTJkMGY5N2UwNWMzY2VjMWVjNGMgbGVnYWN5LXRydW5rCis2NzM1OSAyNDE2NTAzYTMwNzhiNWRmMWNmZTgxNjAyZWE3MDg1YTE2NTE2ZTE5IGxlZ2FjeS10cnVuaworNjczNjEgZjFiYjI0MWJhZDI0YmJmMDYyNjI4Nzg2ZjUyYWRkYWRiMzY3MjdmMiBweTNrCis2NzM2MiA0ZWFiMzQwMTYwZTBhMjJjZmZhZjM5MTI1NGJkZWFhYjhjMjc4NTlkIGxlZ2FjeS10cnVuaworNjczNjMgMWU5MTlkMzRjOTgyNTE2MWI4NDkxMDJiNDczZDhjMDA3NmVjMjQ0MCByZWxlYXNlMjYtbWFpbnQKKzY3MzY0IDlmZWFhNmExYmYyYzIyYmFlMzFhNzRlZjg2ZjYyZDMxNjhkYTRlYzEgbGVnYWN5LXRydW5rCis2NzM2NSA3NTFhOGVmYzVkNDY2MmFhOTJmNzMzMTgyOTYxMzZkNDM3ZGE5MDdhIGxlZ2FjeS10cnVuaworNjczNjYgOTk1OThhNjFjYzM1ZmQ3YWYyMmU4MjQxNWU5ZGFlNWY0ZmI4NjdlNiByZWxlYXNlMjYtbWFpbnQKKzY3MzY3IGMzZjQ5YWRhYzJmZTY3ZTE2YjBjZmU2ZjQxOTJhZTAwNGYzOWZhYjMgbGVnYWN5LXRydW5rCis2NzM2OCAwNmZiNjQzZjY1NTNjNGY0YjM2ZjM4ZDhmMzczMTFkNDg1NmVkOGNjIGxlZ2FjeS10cnVuaworNjczNjkgZTQ5NzYwOTA5ZDJiYTUwNmJkOTMwYjc0MDYxOTc3N2FlZDc5YWM2OSBweTNrCis2NzM3MCBiNzFjYzAwM2VmOWY4YTUxNTBiZTg2YjhjYzNiODZkMzY3ZDFiN2Y5IGxlZ2FjeS10cnVuaworNjczNzIgZDY2Njg2ZWIxMWY2MzFhN2Y0ZDQ1MTZlMmRiODU0NDI1MTJlZjFlNiBweTNrCis2NzM3MyBmZmFkNmMwZjI1MmViMjA4MGIyYWY2NjE0MWE4MDQ4NTFkMTgzMDFjIGxlZ2FjeS10cnVuaworNjczNzQgOTZmMzhlMzU3MTk0ZWM2ODdmYTQ0ZjBjMmU4NTEwNjAxZDlkZDMwMSByZWxlYXNlMjYtbWFpbnQKKzY3Mzc1IDQwYjcyNzdlNjY1ZjAxNDUyZTliY2U5Njk2NzZjNDA3MmQ0ZWQ2OGUgcHkzaworNjczNzYgMGQxMGQ1YWIyODQ0MGE5NGI0MThkNTIzNzkwZWNmN2ExZGUzZDAwOCBsZWdhY3ktdHJ1bmsKKzY3Mzc3IGYzN2JmNTVkYjQxNmNhM2NjMGRlODEzOWQ5NmJkZTJmOGMxNzQ5MTQgcHkzaworNjczNzggNmMwODcxZjBjN2E2OWQ1NDJmZjUxMTAyZGQxOTFjZWY1Y2M3NjI1YSBweTNrCis2NzM4MCBkZmVkYTBkM2Q2MzZkNDAxNzNhNzFjZGEzYzAyMzMwNTU4NDYwMDY3IHB5M2sKKzY3MzgxIDRjZjAzZTE0MjAwYzg5ZDA1NGQyODViY2U5NThmZWFmMjY4NTVhMTMgcHkzaworNjczODIgZWZiNDlkZjBkODk5ZGY5ZDJhMjlmNjYwNTFjYWJjN2NlNTA2YzgzOSBweTNrCis2NzM4MyAzNTI4YjVjMTY5Mzg3OTliODk1YzMzN2IyMzZkYTg3YmU4NThiY2YyIHB5M2sKKzY3Mzg1IDMwZDAxYTVmNTE3ZWQ3YmU1MTI5Mzc3YzIyZTYzOWVmOGUwZmU5OWQgcHkzaworNjczODggMmQzZjFkMGMyYTEwZWNkNTdhYTg4MzgxM2U1N2UyNDM5NDFjM2JiOSByZWxlYXNlMjUtbWFpbnQKKzY3MzkxIGQzN2I0ZmU1MTMyODc1NDFkZTViODk3NWNhODk3NjdhOTQxODVlOWYgcHkzaworNjczOTMgOWZkOWNkODUyNjMxYWQ2ZjMxMzc3NzNhYzEyN2E2NjlmYjJkNWQyOSBweTNrCis2NzM5NCA2OGYzYmViN2VlYWRmMWIwMDE5NTkxZjQyMWU4NGUzZDMxZjc4ZWE3IHB5M2sKKzY3Mzk1IDczODk1ZWFkYThiZDFiMjIzMjZmN2E5MjA3NTNlOTRkYjZjMDEwYzcgcHkzaworNjczOTYgYTBjYmU0MGRhYzhmM2Y0NzVjYjdjZWE5MGY2OTQ0MjM4YTMyNzM5NSBsZWdhY3ktdHJ1bmsKKzY3Mzk3IDU2ODRjZTk2ZTYzOWY3ZWUwOThmMzNjMGVkNGZmZWY0NmJkYzJkYTkgcmVsZWFzZTI2LW1haW50Cis2NzM5OCA4NWIxZGU4NTVhMTNmYTRhZmYyMDU2MmFkODYwMTk5NWFjYTY5NDIxIGxlZ2FjeS10cnVuaworNjc0MDEgZGViMzA2NjljMzU1YzI4YTFhNWI4YWE1NjY3YmU3ODg5YjgyNGEzZSBweTNrCis2NzQwMiA3OTdiZDMzM2VmNmJhMjJlOWYzYWU4ZjA5ZWZjYjFlODMyMTY5NGQ4IHB5M2sKKzY3NDA2IGEzYTVmNjQwNGFkNWJhM2NlMTNjZjZmM2RjZmE1MjQ5NDRkOTQ4NjkgcHkzaworNjc0MDcgNWNiYzNkZDQ0OTE2MTA4NTNkMzE4OTE5M2MyNjkzNjViNTc1OWE1NSBsZWdhY3ktdHJ1bmsKKzY3NDA4IDBhOTk0YjMyZGU5ZmU1MTYyMGI0NzFhZDQ3ZmQ4NjU3YmJhYzRmMWYgcmVsZWFzZTI2LW1haW50Cis2NzQwOSBmODA0NGI4ZmY2ZWVlYmJhZmJjZWQwNTc5NTg5OGY1NTYxYzExYWJlIHB5M2sKKzY3NDEwIDhiMTRmYzVlNWYzZjVkMzljMzQ3MmZkMWIyYTliNDg4YTM2YzJmOWYgcHkzaworNjc0MTEgMzk3ZmJkNmMzNDcxYTMxMDAyY2UxMDIyMDhhMWE3ODZjMzBkNDlkOSBsZWdhY3ktdHJ1bmsKKzY3NDEyIGM1NDY0OTdiNDIxYTFhMmM1NjM0ZTExNWZmODZmYmQ4ZWJlNTMwMDcgcmVsZWFzZTI2LW1haW50Cis2NzQxMyBiNThhNDM1MDAyYzExMWQ5MzgxZTg0OGZiMmJkMDQxOGY1ZjZiZGMzIHJlbGVhc2UyNi1tYWludAorNjc0MTQgZmNhZTE0YmNlYTczMjM3ODViZWMzMTA3NjBiMDM0YjFjOWZmODc1MCBsZWdhY3ktdHJ1bmsKKzY3NDE1IDM4MWM2MjgxOWYyZWM4Mjk3OGFjYzkxMmIwMzU2OTA3ODZmNjFiN2QgcmVsZWFzZTI2LW1haW50Cis2NzQxNiBjNTEyNjJhZDU2MDNkZTk3MmFkZDc5ZDViZWI5MzVlMWEwMTQ1OTk0IHB5M2sKKzY3NDE3IDM4MDNiNmM0ZmY4ZjMyMDEwNTA2N2QyNTRmODkzOGYwOTM0OTdiMjAgcHkzaworNjc0MTggMDZlNmMzOWFkODAyNGY4N2Y5YThhNjQ0MmJmOGQ2MzJjMzNkZDBkNSBweTNrCis2NzQxOSBjYzllZmI5ZjhlNTdkODRkMDcwOWViNTQxOTM4YzgzYWYwYzQxYzYzIGxlZ2FjeS10cnVuaworNjc0MjAgYmYyZDE5MjkzZGI3N2NhM2EwYWFhMGZjMmMxMTdhNWIwZDdlMjY3YiByZWxlYXNlMjYtbWFpbnQKKzY3NDIxIGE5MDM1MmU1OWNlNjFkMzJmNDMyZDRlOWM4NDQ4MzJjNDZmMzVmOTQgcHkzaworNjc0MjIgMThhYTcyOGU5NTJkNTExZjkyYjExNjdhOTc5ZWQyMjMwMGU0YTQwNSBweTNrCis2NzQyMyAwYjNiNDRiOGM3ODI2MjU3YTI3ODFmYmI5NTY4ZWRiZGJlOGY3M2M1IGxlZ2FjeS10cnVuaworNjc0MjQgNDZiNWNmM2NhZGU0YWY3NWM2NWVjZmUxMjFjMDdlNGViN2Q4YTg3MyBsZWdhY3ktdHJ1bmsKKzY3NDI1IDBmY2ZlMThmZjhmNmQ1NzA2OGFhNGI3M2VkODliYmUxZTE3MTliODggcHkzaworNjc0MjggYzhhZWQ5YTM2ZWNiN2Y5OGM0ODA3ODlkMzhmMzc1ZTNhZGRlNGIwMCBsZWdhY3ktdHJ1bmsKKzY3NDI5IDhkMzI5ZDJhMzY0YWI1MjVjYjljZjJjOTExMjBjNjAxNDIyOTYwZDkgcHkzaworNjc0MzAgMDYwN2M5N2E4MTI0YjRlMzg1MWY4ZjRhNDkxMjE2NGQ3NzI2MmNjNCByZWxlYXNlMjYtbWFpbnQKKzY3NDMyIDIzYjQzNDhmZGY1MmZmNmVjZTA1OWVjN2QxYjBkMGY1OGNkZGI1ODMgbGVnYWN5LXRydW5rCis2NzQzNiA1NjBiMmY1Mjk1MmM4N2M0YzgyZDdjMTkyZmMyYmYzNTgzODYyMjJiIHB5M2sKKzY3NDQwIDA1YzEyZjZkMTQwNDA5YzEwOTk4MWQ3N2Q5OGRlODgyZGVkNWRjYzAgbGVnYWN5LXRydW5rCis2NzQ0MSBjYzI5NGZjOTBmNmM0ZGNlZDkxOWJkYTRkY2JlMjI2NGI1NzM4MWRkIGxlZ2FjeS10cnVuaworNjc0NDIgZWYwYzVjYTQ1NDQxMjM0NGM5NmE2YzIwMjhiMDc1YjJjM2U1MDAxMiBsZWdhY3ktdHJ1bmsKKzY3NDQzIDgwMzdmYTdhY2U5ZWVjM2M5MGI4MjhjMTUwNmRkMWU4NThkYTZlYjQgcHkzaworNjc0NDQgZTI5ZjY2ZmRiNDJjMjBmOWE3ZTNkMzI2NDYxZTY4YTNiZDUyOTk1YSBsZWdhY3ktdHJ1bmsKKzY3NDQ1IGY5YWE4N2ViMzM0YzFlZGM0NjNhOWVjYjdhMTUzMTIzYThiNzcwZDggbGVnYWN5LXRydW5rCis2NzQ0NiAzNTY5ZjdiMDkwMjU2ZTBhYTBlY2Y3ZTNhMTQ4OTk2NzRkMThhMjlhIHB5M2sKKzY3NDQ3IDI3N2E4ZjI5NDRiNDIzNWFlZWNkNGQ3MTVmYzMyNGI5YTA4MDlhYzkgdGxlZS1hc3Qtb3B0aW1pemUKKzY3NDQ4IGJlZjNjODVhOTA4ZDRjZGRkMGIxYWZkNjEwNjU1NmI4MjI2ODViNzcgcHkzaworNjc0NDkgYTFkZTkxYWQ5Mjg4MmRkYjdiMjlkZTRiYzhlYjNkYTlmZGE0ZWNkZSBsZWdhY3ktdHJ1bmsKKzY3NDUwIDdmZGY5MzZiMzBiZjZmMmNhZGNiZTNjNWY0MjE1ODIyNmQzMTIyZTkgcmVsZWFzZTI2LW1haW50Cis2NzQ1MSAzYmYxOGJlN2NlNWE1YjQ4NDI3YWU2NGUxYjk4ZTk0NDI4MmQyNDFjIHB5M2sKKzY3NDUyIGYxZWJiYzE4NmMxMTI3NjNkZWVhMTYxMjdkZjdjZWQ3MDk5MjRlOWUgcmVsZWFzZTI1LW1haW50Cis2NzQ1MyA5NDJiNGEyYzJjMTNiZTlhZjU5NjY5Zjg4ZjdiYTQ1ZWY0MTQwMWZkIHJlbGVhc2UyNC1tYWludAorNjc0NTQgMzlhNTZkMzU1Mzc2YWFmZjQ5MmU1ZjE5ZmY2MzVjZjQxNTY1YzcwYSBsZWdhY3ktdHJ1bmsKKzY3NDU1IDM3MTJkMWY2YmZkNTViNWE1OTk4YmMwNDllZTYwZDMyMjcwYjdiYTggbGVnYWN5LXRydW5rCis2NzQ1NiBiOTYyZDA0YmI3ZjAzMzRhZWQxZGY4YTZjY2UxY2I2YzRiNzRlOWZkIHJlbGVhc2UyNi1tYWludAorNjc0NTcgN2VkMzhhYTEwZGU2YTUyZTY4NjQ2ODFiMzM0ZWRhMzNiNzA0ZjZjOSBsZWdhY3ktdHJ1bmsKKzY3NDU4IDE4OWRlZjA2MjUzYzZhN2E5NzI4NWJkNDdlOTU3NDdiNWE3NGFkMmQgbGVnYWN5LXRydW5rCis2NzQ1OSAwMWY2ZWE3ZjdhNzU4MWY0YTQ5NGZjOWY2YWU4OGRhODQ1MmIwM2ZjIHJlbGVhc2UyNi1tYWludAorNjc0NjAgNzVhOGNhYTI0MTg2NTk1OWU1YjY1ZmYzN2UyZDVhOTZmMzkxZWEyOCBweTNrCis2NzQ2MSBlZDhhZGZlZjI2YzY1YjNhODg2YzgzYjBiZDM0YTYyNjc4ODgxZjY3IHB5M2sKKzY3NDYyIDZlODkxMzUzY2U5NjU4ZWJlYmQzZjY3ZTc5MGMyOWFjNDMyZmFiMGYgcHkzaworNjc0NjMgNjgxNzMzYjQ5ZmEyMzk4YWY4ZmI4MWY5OGNiM2UxNjFlYjZiNTRjMSBsZWdhY3ktdHJ1bmsKKzY3NDY0IDYwZTc3NWVhYWFlZWU4YThlZWM2ZjFjNWM2OTcyMzFjYmUwZjkxMmIgcHkzaworNjc0NjUgM2U1OTk1ZjZhYjhmNmE2YzQ0ZWU4ZWI0YmE4NzI5MDExNjY2OWRmMyBweTNrCis2NzQ2NiBhYjEyZDcxNmE3YTgxZWQ0YTA0YmE2NzAzMDM5M2M3NzM3NDAwYzViIHJlbGVhc2UyNi1tYWludAorNjc0NjcgN2Y4ZjcxZGM4NmM3NDA5NWM2YTkxYTQxZTNmNzYyM2YzZjE4ZTg3NyBsZWdhY3ktdHJ1bmsKKzY3NDY4IDA3MzJkMTNlZDA2NzhhZDg1NjViOGU5MDQwMDI5NDJkYjgwMzQxYjggcHkzaworNjc0NjkgMGY3NzI1ZTE5YmMzYjkzZjMyODE4NjQyNTBmYmY1NjI4MDgxMDE5MCBweTNrCis2NzQ3MCA0NDYxZjE4ZjI2NDNjOGZjOTlmMTAyYjQxZTE3OTA3MThkOTUxMThlIHB5M2sKKzY3NDcxIGIxZDJhZjUyZDgwMTUzNGE4YmQ4MmJlOTc0NGJkZGFlMzQ0ZmRmZmQgcHkzaworNjc0NzIgZWQ4NDc2ZDdmNjRhNWQ2MTY1MTgxMDY0MmQ3YTRiMzQ0ZWNhMzZjZCBweTNrCis2NzQ3MyAwOWMyZDE1ZTRkMWRiNjJjOTlmYTEzNTUxZmQ1N2U3MGJjNDE3ZmZhIHJlbGVhc2UyNi1tYWludAorNjc0NzQgYzE4MmUzYjllOWZjM2FiZGZkNTBkYTViNmZjNWJhN2Y3ZGRjZDY4YSBweTNrCis2NzQ3NSA0MGVjNmQyODk1NTJlN2YzMzljZGYwNzdmNTk3MzM1ZTcyNzBkNzA2IHB5M2sKKzY3NDc2IDZhMTIxZjA0YmM3ZGY2YTI0OWZhOTk5MzYwMzhiMWU3YmYwYTUxMmYgcHkzaworNjc0NzcgZDE3MmRkOGQ5ZTA5ZWJkODhmNTE0ODFlYzdkODU5MDNhYjc3OWVmNyBweTNrCis2NzQ3OCA4NmVlMmUwZDRkNDE1NDk1NTA3MDNmYjRjN2YwMmFiNjdlNDExZTUzIHB5M2sKKzY3NDc5IDc4YjBjOGRlM2E5ODgzODIxMzM4MWUwNjU0NmIwNGNhMTQ5YzM4ODQgcHkzaworNjc0ODAgOWM4MWMzYjcxMTE5NTJmMTRlYTI4ZWIzMjEwNjFlMmE0MjRkOTlmNSBweTNrCis2NzQ4MSBjZGRhMjA5M2Y2ZjUzMDhiNjJiZDI5NjM0OTVkMTJiNjk5MTUzNTI0IHB5M2sKKzY3NDgyIGNjNWE5NWYwZjU2YTUzNGY1ZmI0MzBlOTA4MGI3MjdmZDczNDI1ZDUgcHkzaworNjc0ODMgYzgyNmU0NjJmYTUxZjUzZjIxNWRmYmY2NjE1YTJlZWI3ZGI4MGEzZiByZWxlYXNlMjYtbWFpbnQKKzY3NDg0IDVkNGRmZWVkZDUxMmIzMTk0NDMwOGRjYzY5ZmZmNDE0MTIzMDA1ZTEgbGVnYWN5LXRydW5rCis2NzQ4NSAwNDUyNmEyMjJjYWYyNDNiMzU0YTU1MGQxM2QxMDhmNjk4ZTUzODk5IHB5M2sKKzY3NDg3IGNmNDdmN2M3ZGRiMzI2ZTA2OGE5NDY4YmM0YTcxODdhMDZjZmI4NTcgcHkzaworNjc0ODggZDFkZTMwMmU2ZWZjNTM4NjE2ODExNjcyMWY1ZWNiM2QxZWNkYTI5OCBweTNrCis2NzQ4OSA4MWNhN2JiODgwNGYwMmM1OGNiOTllM2M2MTkyMTQzYzM5YWEwOGZjIHB5M2sKKzY3NDkwIDEzN2I1MGVlOTZkNWMxYWQxODBhZTY0MDY5N2E5Y2Q0YTNkNGJhZmIgcHkzaworNjc0OTEgNTRmZWFjM2QxMTY5MDY0OTc0MzZjNTdjN2I4ODc4MjM0NTY2N2U5OCBweTNrCis2NzQ5MiBmNDQ3YTFkZTJmYWU5YjAzMzJmOTcwMzU1NGQyZGIzMDQ3MzI5NDJlIHB5M2sKKzY3NDkzIDg0NTMwNWEzZGEzNjNlYmJkOGZmYzMzYTIyNDk3Y2VhMTZlNmEzMWYgcHkzaworNjc0OTQgMzM0NDgwNGYzMjdkNmU1YjVlMWUyZWZhM2VlMDc5NjFhOGEwNmI2YiBsZWdhY3ktdHJ1bmsKKzY3NDk1IDZhNGNjNmJhMWMxNmFlY2JiMmU5ZmVlMTNmZDFmOGEzYTg5NDFmYzIgcHkzaworNjc0OTYgYTNkMDI5OWI0YjFkYWZiYWE4OWY3NThmY2QzNGM1NDg1ZWI0N2U1ZiBweTNrCis2NzQ5NyBjNmE0YTJjYzU2MTI2YTM5NzQ1ZWU3ZGY4MDcyYWUwOTEyN2Y0YTRmIHB5M2sKKzY3NDk4IDU4OGE5NWVmNzk3MTc2YTU1NzhjYzM0MTMyOWRhYmQ3YWI0MWNlNGUgbGVnYWN5LXRydW5rCis2NzQ5OSAxMDdkNDUzMTc5YmUyZWRlN2U3OGY3YWE4Njc4YzIyYzYyMDViZDQzIHJlbGVhc2UzMC1tYWludAorNjc1MDAgNTIzNWRjZGE5MDc2ZjI1YTljZGNjNzI2YTliM2FjMzk0NzkxYWJkYiBweTNrCis2NzUwMSAyYTVlYzA2MGJiOTk4MTliNmQ1ZDVlNTFiNjBkOGRiYTk3YjRhNjFjIHJlbGVhc2UzMC1tYWludAorNjc1MDIgNTlhZGZlNDM2OThkYzg0OGQ4MzExNTI3YzBkZTM0NDRiZTZmZGE5MCByZWxlYXNlMzAtbWFpbnQKKzY3NTAzIGE2NTMyMTQ2MDI3MDdiZGUwZTUxMDY0ZDdjNzc4OWNlMjk1ZTQ0MzIgcmVsZWFzZTMwLW1haW50Cis2NzUwNCA5ODA3Yjc5YTE2MmU2ZmZiMGJhNDJlMmM2OTU4NDg0N2E2YTdlM2MyIHJlbGVhc2UzMC1tYWludAorNjc1MDUgNTg5Yzg4YjIwYjViN2UwMDc3OTEwMWMxN2QxNDkxYTMzYThmYjljNSByZWxlYXNlMzAtbWFpbnQKKzY3NTA2IDY4YTZlM2FjNDFjMThjOGExOTBhZGEzYWExNzY0NGI2MTBkZTJjNTcgcmVsZWFzZTMwLW1haW50Cis2NzUwNyA5YTJiMDYzODcwYTMwOTFmMjMwMTlmN2JjY2M5ZDQ1YTY0MTNkYjQ2IHB5M2sKKzY3NTA4IDc1YjhlZTA2MmIwZDRmYzkxN2IxMzczOTNhMjg5YTBmNTQ4YzFjZDYgcHkzaworNjc1MTEgODc4ZDQwNDY4YzRlN2QyZDEyOTNmYWI2YTY5NjVhZjIxYjE0ZjkyOSBsZWdhY3ktdHJ1bmsKKzY3NTEyIGUwN2EzMjJlZjU5MzRjZTM1YjQ5Njk5ZTM5MzhlMjFmZDMxMjYzMTMgcmVsZWFzZTMwLW1haW50Cis2NzUxNSBjYWJmMzAzZTc4N2FhNWNkNzIwOWI0MGUzYjJjYWJhM2VlNzVjNWE1IHJlbGVhc2UyNi1tYWludAorNjc1MTYgYzlkYTg1YzE5NzE5Yjk1NDZkYTdiZjZlNjNjYWYxYzA1Y2Q2NDkxZSByZWxlYXNlMjYtbWFpbnQKKzY3NTE3IDUzMTQ1N2NmYTNlMjQzZTFmZDMwODU0OTU2ZTU1NjRhNTgxNTU2YmIgcHkzaworNjc1MTggNzFhY2E4NTNiMjQ0MjEwNjZmZDQ5NDcwMzdhMGJmMzUxODBjYTNhZiByZWxlYXNlMzAtbWFpbnQKKzY3NTE5IGU3OTNmYzNjOGFiZTk1ZTMxOThmODQ5MWM1NDljYmViZmU1MTRlYzkgcHkzaworNjc1MjEgZjNjNDg1ZTJiNDUxMzY2NTc4M2RiOTE5Yjk5NGIxOGVhM2MwYmQzZCBsZWdhY3ktdHJ1bmsKKzY3NTIyIDQ4ZjI5ZDg5NGIzY2M3YWZiYWViNGFmNTExMzA4MWE3NjRiZTIzMjkgcHkzaworNjc1MjMgNDI1NjAzNzRhYjI1MWFiYWQzNDczZTNkMGQyODUyMTgzZTM3NzM0OCBweTNrCis2NzUyNCAwN2VmY2UxMDdhYWVmMmU5ZDRlY2I5MWVkMjIwNmMxODY5NDhiNThjIHJlbGVhc2UzMC1tYWludAorNjc1MjUgODU2ZmMzZWEyZGRiODczOTdiY2M0YTM4ODZmYzIwMTM4Yzg1OWYwMyBweTNrCis2NzUyNiA3NTIwN2EwYTllMTU4NDUwZTA1OTk3NWIwMTJiYjdmZDJmNjMxYjFmIHB5M2sKKzY3NTI3IDQ1OGQ3YmMxMjk1MDkxOTc5YWRiNjgyODRlYTExYWY2MTU4NTllMWIgcHkzaworNjc1MjggZThhYjI3NTgyYjE4NDNmMTgyYTA0N2E0NTZlMmUxYzk5Y2Y2NDNjMSBsZWdhY3ktdHJ1bmsKKzY3NTI5IDNlNjUwMDMyYTVkMWNiYjEyMjE0NDJiOWNmZDEyYTcyOGQ0OWMwYWMgcHkzaworNjc1MzAgYzExNWFkNThlYWRmZTlhMGZiZDhiNjk2MzhjMmUxMzJjOTAxMDJmZSBweTNrCis2NzUzMSBmNmU1M2MzMGFlOTZjNWJjMWQzNGEwOTQwNWYwNGZjOTBhMzk2MjYwIGxlZ2FjeS10cnVuaworNjc1MzIgMjMxNjgwMjQ0YzE3YjMyMzBjNWMwYTkzOGNkN2U3YzYzZWJhM2UxMiBsZWdhY3ktdHJ1bmsKKzY3NTMzIDc0YmZlYjM2NGEyM2IzN2ZkYjM5ZDYxMGIxYTA2NWFjOTk4NmZhMDIgcmVsZWFzZTI2LW1haW50Cis2NzUzNCAxMDNjNjhjYzI5ZTVlMmY2NGJiMjlmNTU0OTlhODdjYWNiZTQ0MWFkIHB5M2sKKzY3NTM1IDg5ZTczOGM3OTJjMGJjOGRjMTYxZWZkY2M5NmQ4Y2I2NTNkZjE2YWMgcmVsZWFzZTMwLW1haW50Cis2NzUzNiA0NzkwYjMxZDkyNTc3N2YyZjFjNjY4M2Y1NjRiM2IxYTk1NDFiNzYyIGxlZ2FjeS10cnVuaworNjc1MzcgOWY4ZTUxZmRjZWEwZmJjNjZiY2I4ZDgxZGJkMTg1MWIwZDk4Mjc2NSBsZWdhY3ktdHJ1bmsKKzY3NTM4IGNkNWY1NmE4MWNjZTFkMTY1ZTNkZmJjNWI4YTYwYzgwOTBkMGE5NjQgbGVnYWN5LXRydW5rCis2NzUzOSAzZWNhNWE3MzY1MTYxMGFhOTMxZTNhZGU4YjdhNzNkZjc3ZWIwYjI1IHB5M2sKKzY3NTQwIDI3YmEwOTk1Nzc1MTQzZWJhOTE0NWFkODU3N2IyZjE5MTQyZTBmYzcgcmVsZWFzZTMwLW1haW50Cis2NzU0MSA2OTI5NTYzZGFkMDAzZDY1MWY2MGUzZWExYzk2ODI3NGM0ZDZjYTNmIHB5M2sKKzY3NTQyIDY3ODYwN2NlMTIyZmE4Nzc3YzA0Y2QyNWYwODc3ODVlMzkxMDcyYmQgcmVsZWFzZTMwLW1haW50Cis2NzU0MyA1ODljZGU2MTRiNWJmZTRiYzYxZDZiMDU1YzZjNTIxNGM3ZWJjNjYxIGxlZ2FjeS10cnVuaworNjc1NDQgZGVkOTllNGY2YjNkYmMxMDUyNWU4NjAzMTdiZjhlMDA0YzBkMjU4MCBweTNrCis2NzU0NSBhOWQwMDY3Y2JlYTQ2Mzc1Y2YyMzJmYmI2YmM2MGVlZjk5Y2ViNDMxIHB5M2sKKzY3NTQ3IDU0YzE5YTFiYmFiZDllNWVjOTk1ZTA4MzcwN2QyYzVkM2NhOTI5NDEgcmVsZWFzZTI2LW1haW50Cis2NzU0OCA0ZTEzYjM3YjM3MjNiOTIxNzNkODA4OGM0ODMzOGU3NzFjZDdhNzMyIHB5M2sKKzY3NTQ5IDliYjg2ZjdmYjk0NDc5NWFmOWY5M2ZjMTEwNWI4YjhiOGVjNzk3N2IgcHkzaworNjc1NTAgOGRkMzU2YjE0YjBkN2Q1NmUxMjgzMzc3MTc0MDEzNzliYzliOWQ5OSBweTNrCis2NzU1MSA3MjlkYjk0NjRlZjY4OGFhMzNiYTJjNzljZDZiMTkyOGVhNTcyOGNhIHB5M2sKKzY3NTUyIGJkYjAyZWFkNzU5Yjk3ODNjNmFmMmRiY2UwZTY1Mjg4OWZjNjZmZTQgcHkzaworNjc1NTMgODUxOTBmZjIyNGUwYzQ3MWE2YTE2MmJhZGM5M2M3NTYxZDAwZGJhZCBsZWdhY3ktdHJ1bmsKKzY3NTU0IGMzMTlkMjQ3NGY1N2UwZmNjOGZlNThiYWYwMjEyZjQzZTNjMzExNzAgbGVnYWN5LXRydW5rCis2NzU1NSAyNzk0NmYxZWI4ZmE1NzdlYmUyOGY0NzZkNGNiZTAxOTQ2ZmE1YjYwIHB5M2sKKzY3NTU2IGEwY2VhMDFlY2U1M2NlNmVhZmY2M2E5MTczNTVlMDU2MmU0MDQ4YjkgbGVnYWN5LXRydW5rCis2NzU1NyA3NjU5ODQxZDI3MTRkZWQwZGNmZmY5MmE1MzkyNjdlNGM0NzI0MDIyIGxlZ2FjeS10cnVuaworNjc1NTkgODZkOGE1MjJmNDQwNzNkMTIxMTM2NDIyYTQ2NGU4ZDY0ZThkZGQzZSBweTNrCis2NzU2MCBiNDdiN2Q5YzU5MzYwNmE3YTBhMWNlNjA4NTA3MzdlNzE2MWMwZjEyIHJlbGVhc2UzMC1tYWludAorNjc1NjEgODliYzMxZTA2NDg5MGJmOGE1YzllYTU4NWIyODU1YzZjMWI0ZjA0MiByZWxlYXNlMjYtbWFpbnQKKzY3NTYyIDAxMzcxODk3Y2IxOTAwMzVkNTZiYmY0ZTYzZDIxYjdiY2U1MGM3NGMgcmVsZWFzZTI2LW1haW50Cis2NzU2MyA1ZWY4YjVhNzRlZmEyMWNkYjlkYTU4N2E1YTA0NzUwY2ExMmU5NDNkIHJlbGVhc2UyNi1tYWludAorNjc1NjQgODU5ZjU1MGI0MDAzYWNhMWQyNmZkNGU3Yjg3YmE0MDhjMGRlNGZjNiByZWxlYXNlMjYtbWFpbnQKKzY3NTY1IDNjN2VlZjE4N2JlYTM0ZGFhZDFmZmEzM2QxZWMzOGI0MTU4MmJhMWEgcmVsZWFzZTI2LW1haW50Cis2NzU2NiBmMDhkMTQ0OGI5MGZmNWQ2YzA4NTMwZmU5MGU5OGM4ZmI2M2VhODZmIHJlbGVhc2UyNi1tYWludAorNjc1NjcgNmU1MWZlMWI3ZWQ5ZWE1NDJmYTJjZTZhZTZiMzkxMDRiYzM4ODZlYyByZWxlYXNlMjYtbWFpbnQKKzY3NTY4IGExNzJlYWE0ZDVlYzEwNDk1M2QwYzFkM2RiYTBhZGNlMzc2MjI1MWEgcmVsZWFzZTI2LW1haW50Cis2NzU2OSAxMWJmNTlmZTEwYjkyNDEwN2I3ZGE1MmVjZjUyNjI4MzBhNDNlMTk5IHJlbGVhc2UyNi1tYWludAorNjc1NzAgMmUyNmU4MjE5YWE0MjBjNTRlYjViMDQwZjExMDNhZjVkN2Q3NmZjMyByZWxlYXNlMjYtbWFpbnQKKzY3NTcxIDM2MzZmZTk1NzMyYzEzN2EzMTRiOTdmZmYxYTZlMmZiYzk5ZTIwNTkgbGVnYWN5LXRydW5rCis2NzU3MiAyMGFiMjI2MGRjOTNiYzA3MmRiNDdkYWE5NDI2OTcwNTEzOTFhZTMyIGxlZ2FjeS10cnVuaworNjc1NzMgYzQzNGI3NzE0NzdiZmExYjY0NzhmMWIzOTRjYzQ1MzhiNTQxMzRmMyByZWxlYXNlMjYtbWFpbnQKKzY3NTc0IGIzOGVhYjhjOTkwNGRhN2YyYmRmNzE2YmNiMDE0YjUyZjc4NGNmN2YgbGVnYWN5LXRydW5rCis2NzU3NSAyMGNkOGNmNjEzNzNkOTM1N2QzZWVmOWQzNjRkOGU3NzNmNTBlYzg0IGxlZ2FjeS10cnVuaworNjc1NzYgYzQ5ZDZkN2MxODFlMWYyZjRiOWNkNmVlYmI5ZDRkN2Y3M2I1NTg5YyBsZWdhY3ktdHJ1bmsKKzY3NTc4IDEwMGU0MTYwYWRmYmEyOWYzYmMwMjkyYjQwNjBmY2UwMWNiY2Q3ZDkgcHkzaworNjc1NzkgOTRiNGY4OGU1ZjZiZTQ0NDViNWU0Y2RkMDg0MTBjNzY2NTA0YzFlNCBsZWdhY3ktdHJ1bmsKKzY3NTgwIDAwNzk2NDgwOTgwM2ZmM2NkN2VmMGZhNWU5MjhkMTY3YjAzMjE5ZjEgbGVnYWN5LXRydW5rCis2NzU4MSA5MmNiNmU1ZWI0M2NlNjFmMjU4YTBlMDNjOTgyNjcwNzlkZmMzZGUwIGxlZ2FjeS10cnVuaworNjc1ODMgYTNhYjk1MzQ1YjUyYjI0YzJhOTc1ZWRkMzBiNTgyNDYxNTY4NzI5YiBsZWdhY3ktdHJ1bmsKKzY3NTg0IDA1NTA0NTgyY2VkNjdlZDNmMjgwMjRkOWI2NmM2OWJiZjI1NGNmY2YgbGVnYWN5LXRydW5rCis2NzU4NSBjMDYxODNiMmQwNmY0OTA0MzRkZWVkZDk3MjUxN2FlNGJhMzNjNmY2IHB5M2sKKzY3NTg2IDA5OGRiZDk3MzE0NzdjNWM2NDZiMWY5MmU1YzZkN2I4M2U3MGQ5MDUgcHkzaworNjc1ODcgZmYyMjYzZGUwZDZmNGFiNWJiYzk1NmFjYWE4MWQ2YWU2YTUxZTMwOCBsZWdhY3ktdHJ1bmsKKzY3NTg4IDdhOTJhMTY0ZmMxMmYzYzRkZDAwMDc3NzQyNTJiNmVhYzZmNDI1OWQgcHkzaworNjc1ODkgZGUzMDk0YmIxNDIxZDdkNjdiN2YxZTA0Y2JjMGY0OTdmZjgwZTA0NCByZWxlYXNlMzAtbWFpbnQKKzY3NTkwIDU3YjVjNDYzOWE1ZDIzZjRlY2Y1ZWMxNDNmNDdkYjg2ZWM3ZjYxYWQgbGVnYWN5LXRydW5rCis2NzU5MSBjMDMwMWI1NDMwZDUyNGIzM2MzNDQ0MzI4Zjc1ZjgzMGU2MzMxYWUzIGxlZ2FjeS10cnVuaworNjc1OTIgMjBhMWNjYWRkY2FlZWU3NzYwOGFmNmJhNTBmMDI4YWM3ZmNkMTE0ZiByZWxlYXNlMjYtbWFpbnQKKzY3NTkzIGJiYjEwMWE1ZjhjY2RlNWRlYzU3ZDUzOTAyYjliZmM4NDllMTliZDkgcHkzaworNjc1OTQgNjUxZGZiMzQwNWQyMThmNGJjMTYwNDBiMmQwNmQ5ZjEzZGNhMGZmNSBweTNrCis2NzU5NSA2MjRiOWVhZWRiODBmMDlhYWNiYmZhYTg3Mzg5MDY0MmQxNTZiZDlmIHB5M2sKKzY3NTk2IDI1ZjIyMmJlZmVjNGJkYWVlYjNhNWJjOTVmNTBhODlmYzRhYmNkNTggcHkzaworNjc1OTcgN2YwODIwZDczMjk5MzdhNTA0Mzk3MzE2M2Q1YWVlNzYyMjQ5OGZlOCBsZWdhY3ktdHJ1bmsKKzY3NjAwIDRjOTg0NGNmMmEzZjc4NGUwM2JhMjFhNTYyMTUyM2RlYzMzYzU3MzkgcmVsZWFzZTMwLW1haW50Cis2NzYwMSAxZjJhM2IxM2U4NmQ3YzRiYTg3MDczZTAxOGU2MGNmZDQ3NTNmYjJlIGxlZ2FjeS10cnVuaworNjc2MDIgYWJhMmNlMTYzYjcxOGQxMWFhM2NjNzhiMDc2MmMwODY1MzU0MmM5MiByZWxlYXNlMzAtbWFpbnQKKzY3NjAzIGIwMWRhMjZjNGJmOTQwMGQ3ZTExMDE0NGVmMTc4YmY5NjhmYTY2NTggcHkzaworNjc2MDUgODMyM2YyZGY1NjE3NDc0NmRhNGE1NGNjNmFjNjUzM2JiZTMxOGE3NyBweTNrCis2NzYwNiAyYzc4ZjgxNWUxOTJhYmZmNmUxNDIzNTdmMDQzM2E4N2IxNjA2YTRjIHB5M2sKKzY3NjA3IGFjNDJhOGY3NWY5MjViNzZiOTdmOWJlMGI1YWI3NzRiYmJmODBlNzIgcHkzaworNjc2MDggYTkwNjgyMDNhZmQ1YzAwM2E0MGU1NTQ4MTg2MmM4MDI4MDg2ZjA3ZSBsZWdhY3ktdHJ1bmsKKzY3NjA5IDdjM2FmMzIwMGUzNGI3MjU3NzFiYWM3NTA1MzQ2MzU0NGI2NTk0YzMgcHkzaworNjc2MTAgNjdjZTc0NWE3NDdhODg0NDE2NDRkNjYzY2E5NmY4ODg4OWUzZTQ0YyBweTNrCis2NzYxMSBiYThmZTNhNDBhNWJmNzNkNDUzMjQ2NDJiZDNmNTU2YzY4YWY3MTAwIHB5M2sKKzY3NjEyIDYxOTYzNTQxY2JmNWJkOWZiZjc1MmEyNjYxODk1ZjgxZmM0MTcwYjEgcHkzaworNjc2MTMgZTAwNzNiNzY1MGNjM2NhZTliNzExY2NhMWMwNTVhM2Y0Y2M1NmVlZCByZWxlYXNlMjYtbWFpbnQKKzY3NjE0IGRkNWUxYTA0MmRiYTRmYmEzYzk0MGY3NTVhYTJmN2FmOTM2NmJhOTYgbGVnYWN5LXRydW5rCis2NzYxNSAwYmUxMDM5MTM0N2I5Y2RkMGVmZWM1NzJhZGFmNjZkOTQxOTZjNmQyIHJlbGVhc2UzMC1tYWludAorNjc2MTYgYjEyZDZmNjA2NjE4YWJmZWZkYTQ1N2JjY2NkZjllZjdjNjliOTQ1OSBweTNrCis2NzYxNyBjZTM2Mzg4NzI3YTc4Yjc0NGUyM2RjNzM1NWUzMTNlN2VlOWMzZGRjIHB5M2sKKzY3NjE4IDUyYWQ4YTcyNDcyZTg0NjZjYzM2ZTU3MTc1Y2IxNWVkZDdkNmQ0MjYgcHkzaworNjc2MTkgMTM0OGRjMjQ0Y2EzNGI3YjY1MWI3OTEyZmQ2NmRhMzI1MTA4NjM1OCBsZWdhY3ktdHJ1bmsKKzY3NjIwIDNkZTcyMGNkMTc2NmE1MmUzYWNjYjBiYWVmYTJkYjMxYzAwYjZhZjAgcHkzaworNjc2MjIgNmRhYjI1ODc1MmMxOGIwNGE4N2M2MmI1Yjg4YzllZDlmZjE3MThiYyByZWxlYXNlMjYtbWFpbnQKKzY3NjIzIDE2OTNmZDk0ZDgyOWQxZjEwNzc3MWMzNGQ4OTNiMTExZjhiODVmNjEgcmVsZWFzZTMwLW1haW50Cis2NzYyNCA0YjlhZDNlNzQ4M2UzNWQwMThiNmMzNTFhYjNjMzQ3NTczNWFmMjUwIHJlbGVhc2UzMC1tYWludAorNjc2MjUgZWZmNGFhYjk1ODQ3OTVhMTEwYjIyZDkyMjBjODc3NDI0YmNkNzdiNyByZWxlYXNlMzAtbWFpbnQKKzY3NjI2IGU5ZjkzZTJmOGZiY2E4ZmY5ODU0ZjIwNjc3Y2MxNzk0NzNjYjc4ZmQgcmVsZWFzZTMwLW1haW50Cis2NzYyNyBiMTRmNTg3ZjUxMGU2OTgyMDFhZDAwMDE1MzIyMzliYzgzMmVkYWJlIHJlbGVhc2UzMC1tYWludAorNjc2MjggMGZlNDlhZWMyNTdjYmE0ZWI1NGJkMDM2MTc4ZmEyMDU5MTBjMjU2ZiBsZWdhY3ktdHJ1bmsKKzY3NjI5IDZhYTA5ODVhYmJhOGM2ODRlYzYwOTUxMTM5Yzg1OTgzY2IzNGRhMTIgcmVsZWFzZTI2LW1haW50Cis2NzYzMSA3ODc0Mzc3MTQyZjY0YzFhZDNiNGYwNzU0NDkwMjdjYjU5NDBiYWVlIGxlZ2FjeS10cnVuaworNjc2MzIgNWQwZTkzZjAzOThhM2NmNGMwZmFkNGY5MzJkZDMyN2VkNDlmNGJjZCBweTNrCis2NzYzMyBhZTk4NjgxMDU4YjI0N2NhMzBiNWI0YTQ1ZDU0M2ZmNjhlMTc1NmZmIHJlbGVhc2UyNi1tYWludAorNjc2MzQgZWVjOTI1MmIzZDQ1NDgwMThiYWJkMTkyNzMyMGE2Njk1NDJiMGRiNCByZWxlYXNlMjYtbWFpbnQKKzY3NjM1IGRhYmVkNjlkOGEyYWIyY2QyOGE3MjhhOGRhZDQxNzZhYWFiZjk1ZmUgcHkzaworNjc2MzYgMTcwYTk3NjhlN2FlZWY5NGZlODM4ZGJhNWRiODliOGVkNTI3MjlhZCBweTNrCis2NzYzNyAxNTgwN2UyNjJlYmYwZmE1OGQzOWExMDAxNDdlNjZjZWEyN2YwY2ZlIHB5M2sKKzY3NjM4IGI4YmU5ZDFmMGQ0NTVkMzhhNjhiNzJmNjlkOTVmNTgyOGUxYzE4ZjcgcHkzaworNjc2MzkgMjFhN2U4YzExNzA3MjYyZDExMmM4NWZjYjA4YjFmNjE4NGZkZWMxYSBweTNrCis2NzY0MCAwZDNkZWJjYjhkNDQ5MTQ3MDRkMzNjZGQ0ZTdhOGVlMmZmMGQ4YTAzIHB5M2sKKzY3NjQxIDYwZWU5MDFiNzM1Mjk4ZTgyYWFiODMyZDNkMjgwZGQxNmUwMjliNGQgcHkzaworNjc2NDIgMDI0YTk4OTdjNjUxMGFjZDY2ZjAzYmVhODNkNWFiNmU2OTA3ZmIyMyBweTNrCis2NzY0MyA5MmM3MzQ4M2MxZjdhNWMyMDhmNjJjM2I1YjRiNWYwYjNkZWIzMjM3IHJlbGVhc2UzMC1tYWludAorNjc2NDQgYzdhYmZhYjRkY2RiOTg5ZWM1MjVlY2QzY2E4ZmUyZmViZGE2YjkwOCByZWxlYXNlMzAtbWFpbnQKKzY3NjQ1IDkxNzAwZDIxMjFjODJkM2E4NTUyMTBkNzNlYmU5NGRiNzkxYzU4MjYgcmVsZWFzZTMwLW1haW50Cis2NzY0NiA2M2VlNmEwZjczNTg5OTU0YzcwZWM5MWIwNmViZjlhNDM1ZjhiN2M0IHJlbGVhc2UzMC1tYWludAorNjc2NDcgYTg2Y2RmNDliODIxNDQ2MjNkM2M0ZWRjMDUyOThmZDc4NWZmMzk0OSByZWxlYXNlMzAtbWFpbnQKKzY3NjQ4IDAwOWI0NjZjYzZjYTk0NTJhOGU0ZjZmNzI1MTRkYjcwNzk5YTdkNWYgcmVsZWFzZTMwLW1haW50Cis2NzY0OSBlMDdiYzM3OTg5ODEyNWVmMGE1MjNiYWFlMDRhNDY0MDVlZGNjMmEwIHJlbGVhc2UzMC1tYWludAorNjc2NTAgODIwYzExMmNjMmE4NjVmN2ZiY2M2OTM1OWIyYzExZjhjMGY0N2NkZSBweTNrCis2NzY1MSA3MjUxOTJjNjRjMjg0OTI5NzA4YTQ4OGU1OTI3YTFiZTUxZGM0ODVmIHJlbGVhc2UzMC1tYWludAorNjc2NTMgYzhhYTMxNTRkYjBlMzYyYzg0M2ViOGU2MjhhNTRjMTZmMzRiZWUwMCBweTNrCis2NzY1NCBhOWUzMDI1MGVkMjA2N2ZmZTlhMmI3MzY0ZTIzNThlZTM1N2FjODU5IGxlZ2FjeS10cnVuaworNjc2NTUgOWUxMWM5MmRhNDc2Y2VkNWM4NzM5ZjNhMjEwOGMzYWMzMTVhNzkzYiBweTNrCis2NzY1OCBmNGIxNmMwMmQxZjU5ZTYzZGU1ODZjZTBmZThiOTkzYTBhOThlOGRjIGxlZ2FjeS10cnVuaworNjc2NTkgZGNhNTdjYjBjMjAwMWIwZTNlOTMwNWNmZTE3OGRlYmZmYWJhMGU0OSBsZWdhY3ktdHJ1bmsKKzY3NjYwIDk5ZGQwZDAwNzI1YTU5NWY5ZGRlNWQyYzk2MzFmNmZjNzRjZjk4NzYgcmVsZWFzZTI2LW1haW50Cis2NzY2MSBkY2FjODg1ZDAwZjFkYTlhZjgyYjBjN2I2ODkwNjUzY2FhNmI4ZDM4IHB5M2sKKzY3NjYyIDQ2M2JmYTA3MzA4MTAwYTE5ODY2MTFkZjk0MzQwOWU0MjY5MGZiNGYgcHkzaworNjc2NjMgOGI5ZDA4ZGM4NTAwNDhiMzE2NzQ1MmVkNWQ4MmY0YTAzMDQwYzRmNSBweTNrLWlzc3VlMTcxNworNjc2NjQgMjZhMDlkMzg2NjRhMDFjZjU3NjVhZWQyY2Y0MDI5NTg4OTJiNTIwMSBweTNrLWlzc3VlMTcxNworNjc2NjUgZDA0MGM0MzVhZGU4Yzk4ZGRmNGM1ZjQyZGMyZDhlOTgwOTRmNWIzMSBweTNrLWlzc3VlMTcxNworNjc2NjYgZGM2OTZkZWIyY2YyNmRhMjQwOThkOTY0MGVjN2U5Y2Q3OWRhZmM1NyBsZWdhY3ktdHJ1bmsKKzY3NjY3IDgzZDY0MmEzNDM5YjNlOTlkN2ZkMjg5MjUzNGY3MDMyODU5MWY0MGQgcmVsZWFzZTMwLW1haW50Cis2NzY2OCAzZGFjOTkyODE5NGI3YWI0MmQxMzFmMTU0NWIyMzQ1NmI1ZmZkZTZhIHB5M2staXNzdWUxNzE3Cis2NzY2OSAwOTNlNGZhNTBkODRiNjRkNzJiMjhiZDc2MWU0OTgwODdiY2JhZWJkIHB5M2staXNzdWUxNzE3Cis2NzY3MCAwNWNhZjQ0MGNlOGYwMGIxOTdmOTAzYWNhYzA5ZGEyOGY4N2MxZDY1IHB5M2staXNzdWUxNzE3Cis2NzY3MSAzOGU2MTE2ODQ1NGIyNTZhZmFlOGZmZjFmOTdhZjk3ZWUzMmQwMzY3IHB5M2staXNzdWUxNzE3Cis2NzY3MiBiNzlkMWQ3NmYxOTVhNzFkYmYzNjNhMzY0ZGQ1ODdiMjE4YjU1NzJkIHB5M2staXNzdWUxNzE3Cis2NzY3NiA2MWNiNmM0YWIyMGRiNzQ2ZDM3MTQ3MWQ0ODkzZWIyYmZkZTg4MWJkIGxlZ2FjeS10cnVuaworNjc2NzcgYWQ2NDc3MTY2OTZjNDg4ZGU0YjlmMjFhMzU0N2U0OTE4NjU0NTllNiBsZWdhY3ktdHJ1bmsKKzY3NjgwIGQ0NzBiOWE3ZTllMTg5NmRjMTlkNDZiZjBjMTBkNGUzMmE3YThkNzAgcHkzay1pc3N1ZTE3MTcKKzY3NjgxIDlmYTBhNjVlY2UyM2EyOTFlY2UwOTAxOTdmNTA2NWFmZTMyMDk4ZjQgbGVnYWN5LXRydW5rCis2NzY4MiA0MGY3NTY2MTU1NGRiODA3NDA2NWU5MWM5YzRlZGMxYWNiZDZiYTE0IHB5M2sKKzY3NjgzIGQ5ZTgyOGU4M2QxMjVkZWY3NjIzNWMzZDk4ZDVmNzNhYmVmOGRmNjYgcHkzaworNjc2ODQgNjk0ZDA0ZWQyYjQzZGFjNjU3YWJmNWNjZTgxN2ZmMzVmMDM4N2E5ZiByZWxlYXNlMjUtbWFpbnQKKzY3Njg1IDYyYzg5Y2JmYjUxMWI4NzI1MTY5YjM1ZTQxZjRhYzBjZmQ5YjM3NWUgbGVnYWN5LXRydW5rCis2NzY4NiA5OGFiZTljZGU3Y2U3NzcxYjU2ZjE5NWEyZTRkNzlkMWRlOGE2MWY1IHJlbGVhc2UyNS1tYWludAorNjc2ODcgYTZkZGQ5NDk4M2VhM2QzOGExYzE2NDNiYjEyOWQwN2E1OTY3ZGJkMiByZWxlYXNlMjUtbWFpbnQKKzY3Njg4IDlhMTBkNDQwNGJkMDAyY2Y1MzRhYTFmOTRjYjcyOTc5NWVmMmVkYjEgbGVnYWN5LXRydW5rCis2NzY4OSA0ODIzOWY2MjA5YjA2NGRiZTllMDBiZmI5OTBiMzBiZDc1ODA3NTU4IHB5M2sKKzY3NjkwIDI2NTE4ZDQxYTE4NjhjNDk1YzQ3M2JhNTExMWQ0NTYwMzZkNDk4ZGQgcmVsZWFzZTMwLW1haW50Cis2NzY5MSA1OTY3MGI3Yjc3YTZiNTMwNzc1ZGRjN2Q0MzBjOGU5YTZjNGI0NjBhIHJlbGVhc2UyNi1tYWludAorNjc2OTIgNGFmNWUyYTYwOWFiMzU4ZmM5MDA4ODViZTIxNDk0Y2M5MGEwNWQ1ZSBsZWdhY3ktdHJ1bmsKKzY3NjkzIGIwODlhNTc3N2Q4MDZlNzE3MzkyOGQyNWEzZWMyODFlYWZkNWZiYTMgcmVsZWFzZTI1LW1haW50Cis2NzY5NCBhZTgxOTc1MTAzYjA4OWMyYTAxZWM4MDYwZjhkNGQyYWRiNmRjYTZiIGxlZ2FjeS10cnVuaworNjc2OTUgMjJhYTdkZDBlYTgxYjkxOGE2ZGY2N2U3NGQ2YmYwZTU1YzhhMGZkOCBweTNrCis2NzY5NiAyZjhjMzE3ZGZmMTdlN2Y2YTkyYTgxMzJiZWI0MTcwNWFlZmM2MTdhIHJlbGVhc2UyNi1tYWludAorNjc2OTcgYWJmODE1YjgwYjVkNTU3YTA1MzM2MGIwMzJlNDNkZDEwYWZmYjRlNyBweTNrCis2NzY5OCBmYjI0NTZhMzZhODNhODg1M2UyZTI3NGE4ZjVkNzNlYmJlNjgwOWUyIHJlbGVhc2UzMC1tYWludAorNjc2OTkgZTM1NDY4YmM0ZGY0MTFkZGQzYjhkN2YyZTM3NWJhOGYzMGIyZjllMSByZWxlYXNlMjUtbWFpbnQKKzY3NzAwIDIxZGU3YTkxNDZmNzRhMGM3OGEzM2VjZTBhOGNjOWMwNTBiNGQxMGEgcmVsZWFzZTMwLW1haW50Cis2NzcwMSAwMWMwMjNkOTIxOGViZDk5MzZkYzI2YTQ5YjU3NGQ0NWZkMGI1MWUxIHJlbGVhc2UyNi1tYWludAorNjc3MDIgNzE2Nzk3NTY0NjllOTAxOWQyZWE1MTZkNjcyNGZkOWEyOTkxMzg0MCBweTNrCis2NzcwMyA5YzMxYTk4NzQ0Nzg4YmY2ZmVhM2E2MzU4MTdkODc4N2YyMTUxMzg3IHB5M2sKKzY3NzA0IGU0ZTBmZjdkZGM4NWVjMWUxNTYxOTc2Yjk3ODhlYjVjMTVhMWZmZWEgcmVsZWFzZTMwLW1haW50Cis2NzcwNyAwZGYwZmRmYzhlMWIyYzAzYjEwZTBlMWM4M2ZiOTljNjBmYmM5MDgyIGxlZ2FjeS10cnVuaworNjc3MDggYTI1MjUxNTRlNDRmMjQwZTkwMzU2YWIyYTMxM2ZiNmJmYTFkMTY4NSBweTNrCis2NzcwOSA3NzZhNmNhZmMyMWEzNDgxOTU5MzEzMThlNTc3Y2NjMjZmOTUxOTQyIHJlbGVhc2UyNi1tYWludAorNjc3MTAgMjBhODRlMDYzMDUyNTcyMzJmZjc4NmVmOTI0YmIwM2UwMWZhZTMwOCByZWxlYXNlMzAtbWFpbnQKKzY3NzExIGQ5MWU2Mjg2Mjc2NDUxYmQ3YjJiYzRjOWJhZmZiOGU2YTU2MzcxMzQgcHkzaworNjc3MTIgMjZlNzg5NDIxNjVlMTBmYTY2NjI5MDAzYWI3Y2QwZWFhMGI4YmRlOSByZWxlYXNlMzAtbWFpbnQKKzY3NzEzIDNlMWM0NDlkMTFlMGVhZTAwMmEyZTFlYTRjYjMwYTNiMTg5MTdmMGYgcHkzaworNjc3MTQgZGY2NjQ5OTUxNDEwZWM4M2Q4ZWNkMjY5OTBhYzE4YTJlNDMzZjQzOSByZWxlYXNlMzAtbWFpbnQKKzY3NzE1IDMwMGI5NWZhN2I0ZDNmOWIxZDQ3MTc0MGI0NzNlMThjNjE0YWY4YzEgcHkzaworNjc3MTcgYjQ1NTJlMmZmZDVhNDE4NDUyZDJjMTBjMjU4OGQ4NjY3ZGY0ZjE0ZiBsZWdhY3ktdHJ1bmsKKzY3NzE4IGY5Yjk1Mjk0YWM4NTc3YTg0NjFhOWRlMWE2MjU2MWVlZGU1ODI5YjQgcmVsZWFzZTI2LW1haW50Cis2NzcxOSA1ODU1ZTNlMGU4NWIxNDljNmE4MTFmZjVhM2Y2OTg5Y2RjZGI4MDhmIHB5M2sKKzY3NzIwIGZkZWM1NzY2MTFiZGZhNjM3NWMyNTJjMjNlMDdkOTc5OWRiYjEzZjQgcmVsZWFzZTMwLW1haW50Cis2NzcyMSAzM2ExZTEwMDhlNTQwZmJlNjY1OTgwODllYjk4MThjZTc3MTgyZDJlIHJlbGVhc2UzMC1tYWludAorNjc3MjIgZWVlZjcxZGQzY2NlMDJmOGM2Njk1ODlmMWZkNDk5MDNmMzQ2ZjlhNyByZWxlYXNlMjYtbWFpbnQKKzY3NzI0IDQ2NDZjMzM1MzFkYjMwM2Y5YmJhMTEzOTBhY2RlNjQ2NGJmMGY2YzcgcHkzaworNjc3MjUgMjQ1ZTc4N2I5MGZjMTBlYThmZWQ4MGUzODk1MjkzMDZkZjMxZWMwZiBsZWdhY3ktdHJ1bmsKKzY3NzI2IDYxZDA2NDA5YTY2MDY5M2I0NzhhNjUxNjM0ODhhYWUwYzJiMTE4MDQgcmVsZWFzZTI0LW1haW50Cis2NzcyNyAzM2NkMDY0OTE4NTg1M2VlZjdjMGFhZjFlYzE4N2U4ZGE5OGMwMDViIHJlbGVhc2UyNC1tYWludAorNjc3MjggYTZjM2M3MTVlMmI3MDc0MGM0YjZiNGY3ZGM2ZjQ3YjE2YTdlNTkwNSByZWxlYXNlMjQtbWFpbnQKKzY3NzI5IGZiNWY4YWZmMjNmZDFjY2MxZTYxMmZmYTYzMThhNTg0ZGMzMzZmYjYgcmVsZWFzZTI0LW1haW50Cis2NzczMSAwYjdkY2RiNWNhM2FhYzg5ZTA1M2I2NzkyYTQxYmE5NTI2MzlkNjBiIHJlbGVhc2UyNS1tYWludAorNjc3MzIgMmUyMWNlYTQzNjcwNzFjMjY0OTI1MDM3YzZhMTM3OTJmOGJiNWI4YiByZWxlYXNlMjUtbWFpbnQKKzY3NzMzIDRkMjQyMjk4OTk4MWFlYmNmYzYwMTVhNjcxMjFjMDNhNzYzNjU0MzUgcmVsZWFzZTI1LW1haW50Cis2NzczNCA5Y2FhMWU1ZGQ4MmJkZDAyZTU5NTZjZTJlMzUwOTVkMThjMjE0NDNhIHJlbGVhc2UyNS1tYWludAorNjc3MzUgMWYxYTExNzc2Nzc0MDMzMWU4YjE4MGU1MzAzMWU0M2U4ZTMzZTZiNCByZWxlYXNlMjUtbWFpbnQKKzY3NzM2IDhkOTAyYzUxM2JhMGY4NTlmNTc0MmEyZWU0YWFlZGJjZWIzMjBlYzggcmVsZWFzZTI1LW1haW50Cis2NzczNyA3NmYxODllYTU1MDlmMWIyNDk3YTVkNWQ4Njc3MWU4NTBlMDExNzVkIHJlbGVhc2UyNS1tYWludAorNjc3MzggM2EzMzJiZjA2ZGEwNjllZmE3ODdkZTQ3YmE4Y2VmYWRkMDI1ZmEwNCByZWxlYXNlMjUtbWFpbnQKKzY3NzM5IGU2ZGJhZGFiMDFkOGE4NTAxZjg1YjAzMmNhZjM2M2QzMGI0MmMzNGYgcmVsZWFzZTI1LW1haW50Cis2Nzc0MCA1ZjRmNmI3ZGE4Y2JjYTU3NGZlYmFkOTNkNDM1OGZkZGJhMWVjYWIzIHJlbGVhc2UyNS1tYWludAorNjc3NDEgMTJkZDJjZjVlMGM4MDAyNjUwNWE4M2Q4MTY3MzAxNTU3NDE0NzM0MCByZWxlYXNlMjUtbWFpbnQKKzY3NzQyIDk1MzBkMzM0ZDI2MjQyMTllN2VlMWFlY2FmMzM1MzJlOTEwMjY2YmMgcmVsZWFzZTI1LW1haW50Cis2Nzc0MyA1ODQ2OGZjZGUwNmU5YmY1M2JhNThkNWM0ZjQyZTg5ZTc5YjlhMzUxIHJlbGVhc2UyNS1tYWludAorNjc3NDQgODhjMDhhNjNjYjc0MTU3MGNjMjUwOTZjZWU5MTQ0MWY5YWI2M2YwMyByZWxlYXNlMjQtbWFpbnQKKzY3NzQ1IDZlODBlYzQxMzA5NzNkZTU1ZjUwODczOGEwOWFjOWZjYjMwZDAwNGMgcmVsZWFzZTI1LW1haW50Cis2Nzc0NiBiYjFkOWFlODAyYzMxNTJkMGUzMGIwZGYzZjgzMDk1MDc1OGYxZjBjIGxlZ2FjeS10cnVuaworNjc3NDcgNzQwY2U5YTUyM2ZmYzRhY2M5MTEyMDAyYmM5OTIzNGQ4NmNkNDNlMyBweTNrCis2Nzc0OCBhMDkwYWFiNTc1YzZlZjZjMzIyZDQ5NDc2NzA0ZTI4ZGQ0NWVmOGViIGxlZ2FjeS10cnVuaworNjc3NDkgOWM0MjhkYzNkNmZiNzc4MmUxODA1NzRhYmIzYjM2NTdmMjI4M2FjNCBweTNrCis2Nzc1MCBiNWVmY2EzMDRkMmFmOTFlMWNkMGU2ZTZmYTllMTEwYjBlMDcwMDBkIGxlZ2FjeS10cnVuaworNjc3NTEgZjIwZWI4MDk1MzVlOTFjMGIxNDQxNmNjNTQ0NzM1N2NmY2JiZTk1YyBsZWdhY3ktdHJ1bmsKKzY3NzUyIDQyNjRjZjAwYTc1YzBmZTIwNjJlZDg0NjI3ZjA0ZTQ2ZjM4NzgxOGYgcmVsZWFzZTI2LW1haW50Cis2Nzc1MyBkZDFiOGRhMDFkMDJkMThiZDNkZjdjM2NlZTIyNzU2Mjg4N2M4ODNiIHB5M2sKKzY3NzU0IDI1MjkyN2EyZjMyZDZmZTBmZDBjY2YzOWM1YzczOTJhNzgxN2I1MjMgcmVsZWFzZTMwLW1haW50Cis2Nzc1NSBjYzcyNzIzOWU1MWIxNjQ3MjBmZWU2MjQzZDMxNjU2ZjZkYmYxZWU0IHB5M2sKKzY3NzU5IGViMDcwMDljODY2MDU4MTFlNjkzNWFiYmZlOTgxODkwODYwYTc0ZDMgcHkzaworNjc3NjAgMThmOTZmNjg4M2FmNWQ1MDkyN2U2Yjk3ZDQ2MzMyN2VmMDAyODU4YSByZWxlYXNlMzAtbWFpbnQKKzY3NzYxIDcwMzNiMjg2ODVhMTNiZjQ1NTQ0NWE0MThjOWIwYzViOTY0MDA1YWMgbGVnYWN5LXRydW5rCis2Nzc2MiBiMDk1MTc4YzA0OTI4YTM0NmMwMmI4YTQ3NDA0NzA0Yjc4MmJiNjcxIGxlZ2FjeS10cnVuaworNjc3NjMgMThiY2UyZjJhN2M1NmJhZDRjYjM2NGY2ZjFiMGRjNjdjYzc2MWRhOSBweTNrCis2Nzc2NCBkMTU3NDZhYmY2Yzc4M2M2MjJhZmU0YmQyMzk5MDAyZGM1Mzg3YzI0IHJlbGVhc2UyNi1tYWludAorNjc3NzcgNTc1Zjk3M2ZmMjQ0MzNlMTUyZTg4YTQzNGM0YzhhNjc0NTI0ZDI1MCBsZWdhY3ktdHJ1bmsKKzY3Nzc5IDcyYTdhYzIxOGVhMzI4M2NkMWQ0YjEzYjhlZmQzMmY5YmFmYWIyZDcgbGVnYWN5LXRydW5rCis2Nzc4MCA5NmFiMDhlZDk1YTQwMmFkN2Y5ZmJkNmFkYTFjNDIxN2IwOTgxNjFkIHB5M2sKKzY3NzgxIDRkYjY2YzIwY2E2OGU1YTE4YTI2NjZkNWRmYTZkNjlkODc1MGJhNmIgcHkzaworNjc3ODIgZWE5YzYwMjZhZTdlYTI0NjJjZjNhZmNlZWJiNTU4NTc2OTFiODAwMSBweTNrCis2Nzc4MyBhZDk4MmMyNmMzZGQ1ZjRkNzc5YTY1OTFhOWU3NDZiN2M1Y2U4NjQ3IHB5M2sKKzY3Nzg0IGUzNmJlMWVjNzI5NjVjMDBlNmIwYTZmYTA3ZDMwOGM3YWEzZmZlNGYgbGVnYWN5LXRydW5rCis2Nzc4NSA5ZTlmY2E5NGQyODYyMTY4ZjE0MDY5OGZhN2NiNzI0MTA3ZDY3NmFkIGxlZ2FjeS10cnVuaworNjc3ODYgMzMzNmU0Yjc3YTA0MTJlYWU4N2FhMzJmYTNmMGZjNDIwZmVhZjU4YSBweTNrCis2Nzc4NyBkYzZmOTc0ZmI3ZDRmODMyNDM1ZDA2MTljMzU3NzRmODdmMjc1NWUwIGxlZ2FjeS10cnVuaworNjc3ODggMWFmMmI4YjBhZDg4Y2I5NDc5Y2I0N2RhYmNhZGI1ZjUyNmM3MjhiNiBsZWdhY3ktdHJ1bmsKKzY3Nzg5IGRhY2FhMWY0NDE5ZDcwM2M2ODY1ODZjMmFkOWU3NjdlOGUyZTc2NTMgcHkzaworNjc3OTAgYWI1MWMxNTA5YmMwNGE0NmJmOWE1NDMyOWNhMWNiZGFhMjk4YmNmMSBsZWdhY3ktdHJ1bmsKKzY3NzkxIGVkZDcyNDM3Y2VjM2YzNTdiMjBlYmEwZjQwMDEzZjdlN2U5MTZkMmIgcmVsZWFzZTI2LW1haW50Cis2Nzc5MiA3ZGFiODgwNzBiYzdkZmFkMDg5NTA3MDRlMjkyZDdkMjE1YTc1ODViIHB5M2sKKzY3NzkzIGViMjg3NmFlMDQ3Njk2MGZlNDc2NTRlMmU5MGYzMmIyMzIxN2I1OTMgcmVsZWFzZTMwLW1haW50Cis2Nzc5NCAyMGYxNWMwZjIxZjg4YTlhZjg4NWI3YzA1YzJmMDgwYmU3MzA5NGI3IHB5M2sKKzY3Nzk1IDQ4MDU3NDVkNTU5OTM3N2JmOGI5YzM1YjYzNDVjMGNiY2M1NGE4YmMgcmVsZWFzZTMwLW1haW50Cis2Nzc5NiAyOTk2ODM5NWY5MjA1MzY4OTU4MGRiYTY5YmRkYWVjYWJmZDc1YzdhIHJlbGVhc2UyNi1tYWludAorNjc3OTcgMTRjZDU4ODU0NGZhMWIxYzlhMzU5NWIzMmI4MWExOGUzZmFhNjFkZSBsZWdhY3ktdHJ1bmsKKzY3Nzk4IGQ1MGRhZDJiMjc1MDQyYWRlYWYzMDlhOTU2YjNhZThiMjQ3MDAxMjQgcHkzaworNjc4MDEgOTU0MWEyZWNjNGZiYmNlZTRmYzhlNjI4NjdlNGY4ZTgwYWZhZDA2ZiByZWxlYXNlMjYtbWFpbnQKKzY3ODAyIGI3ZDlhZGM0YzM0Mzc5NmJhZTNjODc4MGFhYjgyOGVjODM3NGIxZTcgbGVnYWN5LXRydW5rCis2NzgwMyAyMmZmOWE0NjI5ODc1NWRlNTg3YjU5NmE5YTRjN2NlMzM0MWJhOTk2IHB5M2sKKzY3ODA0IGExNzViMTliNGJmMmNlOTg0MTBlNjFmMjc5OWYyZGVhYTdmNDdmNjkgcmVsZWFzZTMwLW1haW50Cis2NzgwNiA4YzQyNGYxMTZmYjhkMGVkNzVkN2E5YjJlNGMyNmViN2ZiYzc4Yzg5IGxlZ2FjeS10cnVuaworNjc4MDcgMjFkMzM1N2RjYmVjNDFmYzZmZTAwYzA0OTg1MTE4YWM4OTBmYjEzNiByZWxlYXNlMjYtbWFpbnQKKzY3ODEwIGE0M2E2ZGYxOGJhNGJjNjg5YzIyMThkZDA0NjAwMTcxYTJjOGM3NmMgcHkzaworNjc4MTEgYWVmMDczMGRmOWJhMzI3YThlMTVkMzcyYWU3MzdkZmI2ZWM0MmU2ZiByZWxlYXNlMzAtbWFpbnQKKzY3ODEzIDY4OTg3ZTkzMTE5M2ZhZjY5ZDJiYWJkMTA0MDU3MDY4NzU0MjhiM2YgcmVsZWFzZTI0LW1haW50Cis2NzgxNCAwNzQwN2RlMTgzOTQ4ODNlNGZkZDQ2Y2M5Y2Y0ZDlkMTZkY2FmNDUxIHB5M2sKKzY3ODE1IGQwNmIwNGM1N2I1MzYxODAxOGY3MWJiZWFkOTUwOWNiZTBjMzU1MDggcmVsZWFzZTMwLW1haW50Cis2NzgxOCA5NGU3OWQ3OGRmZjBkZmI1YzUzZjQ5ODQyYzdkZjY1YWQ1Yjc5ZTY2IGxlZ2FjeS10cnVuaworNjc4MjIgZjBkYjA2ZjQ5YTRlMzBlNDk2NjYyNTFmNjQ4Y2U5NWU3MDllMTU2OSBsZWdhY3ktdHJ1bmsKKzY3ODIzIDMzNjY4NjQ4MTQ0NjYwMDBmNzhhZDk3NWI4YzdkZWJiOGEyMzhlNjcgcHkzaworNjc4MjQgOTJlMjE2NTJmMmY0ZDMyZGJiY2Y2YzVhYjM5ZGQ0YmMwMTI2ZGMyNyBweTNrCis2NzgyNSBjYmJlMjU4ODY2NDg3YTQwNjBlZGZhNTJjOGQzOTYwYTFhYzY1NDJkIHJlbGVhc2UyNS1tYWludAorNjc4MzIgZmM5NzI5YzgwYjc5MWE3Y2JjZTdhNmI5YzQ2OWFhY2E1MjI4YTg4NCBsZWdhY3ktdHJ1bmsKKzY3ODM0IDE4OWI0NjJlZTlkNGYyNWJmYzJkMDMwYjY5MTg0YTA5MDhkNzcyMjQgcHkzaworNjc4MzkgMmVlNDY1MzkyN2Y3MmY5YmIzZmYxNGIzMDgzZDRhMjAzZDY4NGRmYyBweTNrCis2Nzg0MCBkYWY2ZDNhZjQwYzRiOTM5ZGQxZGNmMTVhNzc3OTVmY2Y2NzM2ZjdjIHB5M2sKKzY3ODQxIDAwMWEyNTE1ZDU3YjAxODhhNGFjNDViZTlhOGM2ZjRjN2VhZjI0ZmUgcHkzaworNjc4NDIgYWViZjcxMjRkZDMyMmE4ZmI1NTk0ZDQ2ZTlhNjUxZGJlNWI2YTkxZiByZWxlYXNlMzAtbWFpbnQKKzY3ODQzIDgyZTZmZTM3MDc4MjlmNjZmNGQ0ZmQwYzhhMzVhMDNkYzUzMGRjYmEgcHkzaworNjc4NDQgMjRiODBiNzk3OGVjMjE5NGM0ZmM3ZTExMDBhYTQwYjFhZmUxMWY3MyBsZWdhY3ktdHJ1bmsKKzY3ODQ1IDU2YjdlYmYxMmVhM2FkZmQ5MDMyNDYwNmUwZGIxN2NjZjY5NDgzNTggcmVsZWFzZTI2LW1haW50Cis2Nzg0NiA0N2VjYmUyZDNlZWZiYzUzYzc1YmJjMWE2ZWRlNzNkY2UzNDk0ZDk2IHB5M2sKKzY3ODQ3IGJmMjBjMzg0YmU1NjM5YWVhMDUwZTgwMmFjZTg0MTNjMGM4Y2JiM2UgcmVsZWFzZTMwLW1haW50Cis2Nzg0OCA2ZmE1Zjk2OWVmZTY0N2EyM2Y4ZjJhMWI0NjIyZmQ1NWMzMmViOGZjIGxlZ2FjeS10cnVuaworNjc4NDkgNWU4MzkyOWY3ZWViNjFkNmUwMDliYjFmNDY3OTYyMzgxZWVkNWVmYSBsZWdhY3ktdHJ1bmsKKzY3ODUwIDlhMTg5MDk4MjQ4OWU1NDY5OTcyNDAwYzYzNzlmNGIyOTE5OTE5ZjQgbGVnYWN5LXRydW5rCis2Nzg1MSAwZGI5MDdhNzA3MjM2MDlhYjFhODcwNWRhN2YwYjczOWY2MTZkZTA3IHB5M2sKKzY3ODUyIGYzZjFmMTQ2MmM4MjUzNmJiMjM3OTZlNzBjODU1MjIxNDRlZTI0ZGIgcmVsZWFzZTI0LW1haW50Cis2Nzg1MyA0OGYyNzM3MzM3OTU2ZWUxNWUzOTEwZDc4M2YyZWY3NDI0OWIwNjM5IHJlbGVhc2UyNC1tYWludAorNjc4NTQgNjA4ODU2YTdlNTY4Yjg2ZTUxNjNlYTZhODdlYjAxNjcyODhiYzY2OCByZWxlYXNlMjUtbWFpbnQKKzY3ODU1IDNjYzA1NmQyMWMyZjQ0MzVhNTM0ZDIzMzQ1YmFkOWMwYTlkOWIzY2IgcmVsZWFzZTI1LW1haW50Cis2Nzg1NiBiNTYyMzEyMjQ3MjhhYmYyY2IzZWFhM2I0N2FmZDc4MDlmODVkYjkzIHJlbGVhc2UyNS1tYWludAorNjc4NTcgNDk2ZGZmNDdiYzdlZjZmYzFhNmUxNzQyMjQ3NTk5ZjJjOWQ4ZGJiMyBsZWdhY3ktdHJ1bmsKKzY3ODU4IDliZGViMGJlMWRhZDRkYzhiMGYxOWQ2MWM2NmRmODk5ZTYzZTlkZmQgcHkzaworNjc4NTkgMWM5NGU3OThjODViMWE2MTM5NDg4MjdhMDA5YzZhYmJjMzBjZjRmOCBsZWdhY3ktdHJ1bmsKKzY3ODYwIDQyOGY2YzRlODQ0NjIxMGRjMTM5NWE2ZjAxYWNjZTVkOGI2NTY4ZTcgcHkzaworNjc4NjEgZDAyODJhMjkyYjBhYThjMjUyNTFjY2U0MGM5ZDc4N2QyOGY2MGNiMyByZWxlYXNlMzAtbWFpbnQKKzY3ODYyIDlmYjJhMjNlYWM0MzVhMmJkMGQ2ZjI5NGE1YmYwNWI5ZDQ4YTYzZDcgbGVnYWN5LXRydW5rCis2Nzg2MyAwNjQ3OTQ4YmU4NDBlZmQzYmU4OWFlMDg4ZGFhMjVhNTVlNDlhMWJiIGxlZ2FjeS10cnVuaworNjc4NjQgNjcwMjA0Y2YyM2UyMjU2ZDJiZGNkNDIyMjFmN2EwYWM0ZmNiNTZiZiBsZWdhY3ktdHJ1bmsKKzY3ODY1IGE3NjU2MThjN2U5NDRmM2UwNzBhNjUyNGRmZmFjOGVlNmE0M2EyZTMgcHkzaworNjc4NjYgNDYyNzljZWJlYTljZjE0M2NjYjkwYzQ5MzczMzY1Y2VhZTBhNzcxZiByZWxlYXNlMjQtbWFpbnQKKzY3ODY3IDc3M2FmMTg2MDhlM2E2MmE0MDllOTMzZGI0ODA4ZjAzYmFlMGQxZWUgcmVsZWFzZTI1LW1haW50Cis2Nzg2OCBlZGIyZWVmYjY4NTZmNmZiMGYzMTE5ZDU4YmQ5MjQ0ODllMDExNDE0IHJlbGVhc2UyNi1tYWludAorNjc4NjkgNzhmYzA5NmU1MDg1Mjk4ZmQwMTFhNTMxZDY1MmRlNDk3YjlmMjMyNSBweTNrLWlzc3VlMTcxNworNjc4NzAgN2ZlNzJhZTE5YWIyOTBhMzRjNDgzMTNkYjBlMTBlYWZhMWVlNjM4NiBweTNrLWlzc3VlMTcxNworNjc4NzEgNDViZWE1ODQ2OTRlMzUwY2YyYjkxMjQxNWJkYzY4MWE1YWQyMjE2MiBweTNrCis2Nzg3MiBlZTljOWNjMDI4Y2UxNTkxOTU3ZTdjOGQ3MTAxNmUzZDJiZmZlZWY1IHB5M2staXNzdWUxNzE3Cis2Nzg3MyBhZDI0NmNiNGY2NjJlMjExYzQ3MDFmZTNiOWZkY2I2MzljOTk0MDgwIHJlbGVhc2UzMC1tYWludAorNjc4NzQgNmUzZTU4MmZlM2YzODhlZDhiMDI3Y2FiNWU2Y2NiNGQ2ZTU3MmFhNyBweTNrLWlzc3VlMTcxNworNjc4NzUgMGMwYjlhYmI1ODQyNmRkOGE2N2Q4MGQ0NmM1OTdmYmQ0ZmY3MWJjOCBweTNrLWlzc3VlMTcxNworNjc4NzYgOGJiOWE4NTQ2MzliNjkwNWUwMzlkZWY4M2EzYmE1YTcyZGFkMTExYiBweTNrLWlzc3VlMTcxNworNjc4NzcgZmI5OTNmMDkzY2JmNDNiZGQxYzJiYmM0ZDYxNzUzNDM4YWJjZmJjNyBweTNrLWlzc3VlMTcxNworNjc4NzggYTY1NGYxZTFiZTIzMWZkMzNiODkwOTE1ZWE1MzY4ODViZDdjN2NhMCBweTNrLWlzc3VlMTcxNworNjc4NzkgMGRjYTJiNDU3Nzc1ZDQ3MjVkZDQ4MjAyZjVmNWY2N2RhODhmNzA5ZCBweTNrLWlzc3VlMTcxNworNjc4ODAgNTg5ZWRmNjE1YWRiNzI2MmRmOWNhM2JhNzNmYWU1ZDMxNzMxOGE2NiBsZWdhY3ktdHJ1bmsKKzY3ODgxIGE3YjM1N2Y5ZThhNDhlYWQ2MmVkNjFhZjlhOGM1OGM2Y2Y5ZTcyOTcgcHkzaworNjc4ODIgYzRmZmZhMDk3MmUzNjhlMGQ3Mzk5NWJmYzg2OThjZjZhOWNiMzNkOCBsZWdhY3ktdHJ1bmsKKzY3ODg0IDFkOTYxZmU1NGE2ZjlkM2MxOTQxMDY3YTEzMjcyNmJmZjU1ZTFkYzMgcHkzaworNjc4ODUgZjMzZGNmN2U2ZTFjM2VkOTQ1ZWJiOWI5YmIyYzgzZjgxNzcyNjhhMiBsZWdhY3ktdHJ1bmsKKzY3ODg2IDAxYjgwNzUzNzkxNTY1MWJjMTQzYmQxMDMyMzcxNTQwMWMwOGE4ZTggcHkzaworNjc4ODcgZTg3YTI1NjExODhiNTMzNTIzMWZkNmViYWJjN2IzMmExYmZmOWIxMCBweTNrCis2Nzg4OCAxYWRmYWJjYmUwNzMxN2ZhZDVkZmZkYWRlZWI1NjBiMGFkNmJiODE0IHJlbGVhc2UzMC1tYWludAorNjc4ODkgM2FiMTAyZDljZjU2MDZhNzQ5NjgzMzZjMTkzYjExMWIyNjdhYjBjMyBsZWdhY3ktdHJ1bmsKKzY3ODkwIGFmNTZlM2YxNGViNzRiMzBkMzk3M2Q1YmRjZTEyMjA3ZWIxNDg3YTEgbGVnYWN5LXRydW5rCis2Nzg5MSA1Mjk0YjIxNGUxYmU5OGU3OTc5YmJkZjk4MTM1MzQ2MGM2ZjY5YmRmIGxlZ2FjeS10cnVuaworNjc4OTIgNGZkYTRmNTQ1Zjc5MDY5MDEzMzI1MTM1NmFkOTJkODJiODUzNGJiYyBsZWdhY3ktdHJ1bmsKKzY3ODkzIDExNjY3NjEwZTlmNTZhNzNlOGI2ODdmMDk5ZGVlMTY3YTY3MWY5OTggcmVsZWFzZTI2LW1haW50Cis2Nzg5NCA1MDJmNjFkMWZiYWY0YjUxZWMwM2RlZWI3OTg1YzVmOGYxNTNlOTI4IHB5M2staXNzdWUxNzE3Cis2Nzg5NSAxYmY3MjdlMmIwOGZkZTRlMGNhYjg2NTM4MDE2NjM0ODE5YjIwYmYzIGxlZ2FjeS10cnVuaworNjc4OTYgZTQ2NzUxMTNkMTBlZmE3MzljNWQ4YWMzMmUzMmI0ZWRiYTUzZTAzZiByZWxlYXNlMjYtbWFpbnQKKzY3ODk4IGRlN2JiYzRkMGIxZDE3MjVmMjI5MjEyMGU0Mzc5N2U0NGU2OTMyNjAgbGVnYWN5LXRydW5rCis2NzkwMiBkNzlmZGQ4NDIwZjM2ZWM4NWRiZjY0MmZhYjcwZDlhYTBkMjM5Y2ExIGxlZ2FjeS10cnVuaworNjc5MDMgYzNiOTc1OTlkN2ExOTc0ZDFmMjg4NWU5N2Q2MTQ4MTVkYTAzN2IxOCBweTNrCis2NzkwNCAwMzc5OWJiNDQ3NzIyODNkODEwZTYyMWUzOWVlZWViOWUzOGMwN2EyIGxlZ2FjeS10cnVuaworNjc5MDUgYmQzYzVkZTRjYzU0MWJmMDlkYjUxMzlhNjdlNDc3NTdiNTBlMmMyYiBsZWdhY3ktdHJ1bmsKKzY3OTA2IDI0MTAyN2IyNGI0NWQ5NDMwYWMxZTgxOTE0MTMxNTQ0NDNiOWQ5ZjUgbGVnYWN5LXRydW5rCis2NzkwNyA5NGMwNTQ2NjMwNmUyMWYzMjA2MjNiMDFkMGJmMjlmMjNhZTk1YWU3IGxlZ2FjeS10cnVuaworNjc5MDggNGJkZWNhYTRlY2FiMmI2YzQ1NjFkYzRlNjY1NjM2NTk3NmQ3NDNjMSBsZWdhY3ktdHJ1bmsKKzY3OTA5IDNhMjU5YTFlMWQ5YzVlMDkxOTg3YTFlZjk0NjNlOWQ2Y2U1MDU4M2YgcmVsZWFzZTI2LW1haW50Cis2NzkxMCBhYzg4YjM0MzIwNjYwYjBkOTVlMDg4Mjc3MDdhNzI4MDFlNTkxNWZlIHB5M2sKKzY3OTExIDM5NjUzMTRiYjkyMmMyNzY1YzU3YmM1MTAxMDAwOWRlOTdhMmI2M2QgcmVsZWFzZTMwLW1haW50Cis2NzkxMiAzMTMyZWQxMmVjMTAwNmMzN2JiYzIzZWRjZjUyYmJmNzg0YzVjNWUzIGxlZ2FjeS10cnVuaworNjc5MTMgMDVlMDEwNTE1YzRiYzU3MTAyMzBkYzQ2NDI3NTk1NDgzYTZjYjUyZSByZWxlYXNlMjUtbWFpbnQKKzY3OTE0IDBmOWE3ZWRiOGU1OGM4ODFlM2Q1NjUwMjI0NTAzOTk0ZTY4ZDI5MWMgcmVsZWFzZTI1LW1haW50Cis2NzkxNSBhYTQ1YTE3NzNmNmUwY2U0YTQ3ODdkZjVlMmU1Zjg0NmZkYjE0NGVlIHJlbGVhc2UyNS1tYWludAorNjc5MTYgYTBhNmQ5OTA5MzEyYWQ5YzFkODQ0YWY2NmU5YzkxOTMxYjkzODUyYSByZWxlYXNlMjUtbWFpbnQKKzY3OTE3IGM3NGZkNzUxODdkOTA0ODkxZTIwNDdmNzdiNTQzMjllY2VjZjM1MWEgcmVsZWFzZTI1LW1haW50Cis2NzkxOCA3OTI5NTY0MWZjZjBiZTVkN2M1MjZmMmZmZmMyMzhmNmFmZDFlNDVkIGxlZ2FjeS10cnVuaworNjc5MjAgODc1MTI4OGRkZDk2MWM2Mzg4YWJmYjE0NTE5ZTNiYmI0YzRjNzc0OSBsZWdhY3ktdHJ1bmsKKzY3OTIxIDEwMDk3YmQ2NTU2NGYwZGJkY2QwZmQxNjhlNmRlZWUyZDY5NzMzZTMgbGVnYWN5LXRydW5rCis2NzkyMyAwNjlkOTVkZWVhOTE1NGUyYTMyMDUxMGU5NGJiN2Y3MTRjNjYyNDY4IGxlZ2FjeS10cnVuaworNjc5MjQgZWZkNDAwM2VlOGVhNWFhMzQ1MDI3NjBhN2VhMjk2MDQ3MTAyOTQ5OCBsZWdhY3ktdHJ1bmsKKzY3OTI1IDUwMjc5MjYzODAxYjVjZmQyNGRlOGI5ZWE4NDI5NDcwZTM4YWVmNTggcHkzaworNjc5MjYgZjZjZDFhN2EzMWJiODY0Nzc1YmE0ODNlOTY0ZGZkNGMzN2UwODc0MCBsZWdhY3ktdHJ1bmsKKzY3OTI3IDExMmJhM2RmODUxZDJmZjYzOTBlYTJlNGE4MWMxODE1ODhlZWE0ZTIgbGVnYWN5LXRydW5rCis2NzkyOSAwYzg1MmMxMTZlMjM1ZGYwNWUxYmRjYmRhZTI1MDViNTg0OGJjMjRlIHB5M2sKKzY3OTMwIDkyYmMxNGU4YjM3ZTZhYzNkNDVlMDhhNGIwYzlhNTZiYjQ3ZWRhYmQgbGVnYWN5LXRydW5rCis2NzkzMSBjM2I0M2NiNjcwM2M2MmY2NjcwY2ZiZTU2ZThjMTY5NzQ5NGNmMWRkIHB5M2sKKzY3OTMyIGY4NTlkODI0MzY5ZWE5ZmIwNWVmZWRiMjg3OTJjMjIzMDhhNzhmMWEgbGVnYWN5LXRydW5rCis2NzkzMyBhZGI5YjU0N2M3ZmU4M2E1OGY1NzZhZTQ1NzMyMTg0NjA4Yzg5ZTdmIHB5M2sKKzY3OTM0IGY2YWU3Y2M5ZTJlODVkNzc2YTE0NDc1ZWIxMGE4Yjc1YTQ0ZDkwNzIgbGVnYWN5LXRydW5rCis2NzkzNSA2OTlmZGQ4MjE3ZjNiYTgyZDI5MmFkYTAyMWRiMjFkZGVkNjI4ZGQwIGxlZ2FjeS10cnVuaworNjc5MzYgZDI3MDI0NzU1NTkzYjhmNzkyMTBjM2I5YmMzMTY1ZWE4NmVmNmY5NSByZWxlYXNlMjYtbWFpbnQKKzY3OTM3IDMwM2FkNDVhOTY3ZmM1MWVlNzY1MTQwOWVkNGExNjc2YmRkNmUzNzIgcHkzaworNjc5MzggNjY1YzRhYzQ3MDczZTczZjg5ZGQ4MzIwMWZkOWQ2OGJiYWMzYzNjOCBweTNrCis2NzkzOSBkYjUwZGMwMDYxZWRlYjNiNWMwNjJkMDFjZTE3MzljNzRhOWUyYzJmIHB5M2sKKzY3OTQwIDJlNTMyNjJjNTVlYTY3ZWNhZWEyZGUzYWJkMjdhNjczOGQ3ZTc1ZjggcHkzaworNjc5NDEgMTEzNzUxYTg5OTBjOTQ4NzJkOWI3ZGE3NWIxZmE0NzhmMTQ5OWNjNCBweTNrCis2Nzk0MiA0MDhhOWZmNGY4YjJjODFlMzZiNmUzOTMzNTEyYmQ4ZmQ3YzllYzQ4IHB5M2sKKzY3OTQzIDdiMWQwY2VhOTg3MDY0ODI1MDdkZDAzMDdhNmI4MmUxOTVlZjNiZWUgbGVnYWN5LXRydW5rCis2Nzk0NCBmYjE1MGZjZjE2NWQwZmE2M2EyZjM0ZTE3ZmM2MWY4YTRiNmI2NWE4IHJlbGVhc2UyNi1tYWludAorNjc5NDUgNGJkZjllMzQyMjkxYTY0ZTVkZjllNzhmM2QzOTM5NDA1YWM2MjVjYSBweTNrCis2Nzk0NiA5NGY5OTZiYzY0YjNiZjg0ODZmMmI1NjcxM2EyNDlmODdiYWIwZWZjIGxlZ2FjeS10cnVuaworNjc5NDcgZmVjNzJjOWIyNzFkODk2NDUyNTRjYjZiMDVlNTI5MTBkZTk0MWE3OSBweTNrCis2Nzk0OCBhZDc0NDdhMTY1YmJmYWI1YzAyNjJmYWZkMTNiNzk1MDY1OTIzMGEwIHB5M2sKKzY3OTQ5IDFlMTIxNDQxMDM3NWFhZGVlMWNlNjMwZDRhOWI5NmNmZjVlMDljYjMgcHkzaworNjc5NTAgZDI4MWViZjhlYTMwZjQ2OTU0YzEyYThjOGJjNmE0ZWE3Nzc5NzY3MCBweTNrCis2Nzk1MSBlNjczNjMyZTE4ODU2NTNjMGZlNmE0ZTExY2U1NjFlY2QzN2U4ZTlkIHJlbGVhc2UyNi1tYWludAorNjc5NTIgNDFkN2Q4ZjA4NTJiMjg0NzljZDViZWE0ZGRkZDE0ODg5OGU4N2YyYyBsZWdhY3ktdHJ1bmsKKzY3OTUzIGUyYmJiYzA2ZDkyYzgyNjFmZjNhYzdiYTVhOWY1NTBhZTY2MjQ3YmMgbGVnYWN5LXRydW5rCis2Nzk1NCA5M2RhOWYxNGU1YjU4YmRhNWYyMjkzMzMzMjc0MzQwYzVkZTY1Y2FiIGxlZ2FjeS10cnVuaworNjc5NTUgYWZmNmU5ZGRkZDlmODI5ZDY1ZTRlYmYzYmFjOTYzZDEwMjFlNzFiYSBsZWdhY3ktdHJ1bmsKKzY3OTU2IDM5OTFmMzdlYmNhMzFjY2M3NzEzZDYyMDZlYjhlZDFjMDk4NTg0ZTEgcHkzaworNjc5NTcgNzViNGUzMjM0MGE4YWIxMGIxYmNiNjA1ZjU1NDdjNDkyZmRlY2UwZSBsZWdhY3ktdHJ1bmsKKzY3OTU4IDFiODg5MzJkZWZkYjI4YjRkNzk5YjJlNzhiN2M5ZjFlNGQzMWViZjEgbGVnYWN5LXRydW5rCis2Nzk1OSBiY2RmZGMzNjk1NzA4NTBhMjNhN2ZiMTE0ZmE1YzQxYzc4NjQ1NWYzIHB5M2sKKzY3OTYwIGEyOGY5ZTc1MGI2NDgzM2VmYzkzZWJmNjk5ZGY2MmUxNjI4ZDM1ZmEgbGVnYWN5LXRydW5rCis2Nzk2MSBlOWEwZGU0OGI3NDc4NGQwNTAzNzE0ODExNTg2NjEwZDkwOWNiOTM1IGxlZ2FjeS10cnVuaworNjc5NjIgMDI0MzBlNDRkNTBlY2RlZWJkMWZhZTA5ZGFhZWQ5MDE1OTE5ODdmYiBweTNrCis2Nzk2MyBmYmZhMWQ2NzI0ZGU4YzIxYTAyMDBkNmUwY2YzNmI4MDllY2YzNWE2IGxlZ2FjeS10cnVuaworNjc5NjQgMWVmYTEzMDRkZmIzMjUwOTVhZjI1MTQ1NGRhZTNiM2I2M2U3MzRiNiBweTNrCis2Nzk2NSBhOWU1YWM0ZjA5MWNkNWRjM2Y2N2E4YWUwYTA0ZDJjZDkwNWIxODA3IGxlZ2FjeS10cnVuaworNjc5NjYgYTY0OTg4NGM3OWE4MTQ2OGE2YmIzYmNjNTQyNDMwYTBhYmEyNDA2ZiBweTNrCis2Nzk2NyBjYjM1MjRiNjQwN2Y2ZTM4Y2VmNTk1NzI1OGRhZDcwYjhlNzkyYzQyIGxlZ2FjeS10cnVuaworNjc5NjggZWE4N2NjMDY4YzU2ZjQ4YTA5NTk1OWNmODQ1ZGY1YjliMTRkYzUyMSBweTNrCis2Nzk2OSA4YmZiNDY2NDE0YWM5YjU3NDY3NzQwMWVjNWYyODExNDEyM2E5ODAzIHB5M2sKKzY3OTcwIDAyN2E2ZjNhYzg3NDc3YzVlYzk0MzY2NDIxNDE5NzQxY2RmMDYzYWYgbGVnYWN5LXRydW5rCis2Nzk3MSA1ZWMzZTNkNTRhYTY1YWYyNjM4MDRmZTUyMTU1NzgyNzU0OTUwOGEyIGxlZ2FjeS10cnVuaworNjc5NzIgYTRhODlkM2U0MWFmNTljNGI1NGNlYTE4N2E3OGIyOTZjYzcyZTAzOSBweTNrCis2Nzk3MyBkYjBkZGNlMjhkMGY4MjczNGZhNmQ2ODk0MGZkZWI3ZmVkMzU5YWMzIGxlZ2FjeS10cnVuaworNjc5NzQgN2EwMTE2ODBlMTUxYmEyZTIzZTIxN2YxYzAzMTI4OTQ3ZTJhMTNkNSBweTNrCis2Nzk3NSA0NDIwNzhmMDc5YWEwMjUxMWE3YzI0YTg4Y2UxNmU5YzViM2RmYmExIHJlbGVhc2UzMC1tYWludAorNjc5NzYgOWRiM2QzZDM5Y2MzZTc1NzVhOTJiYWMxNDE1ZGU5NTg4MjAyNGQ1MCBsZWdhY3ktdHJ1bmsKKzY3OTc3IDFlMGQyMDVmZThkNzBlNWY5ZjFkNjEzMGVjNjMwYWJhZmE3OTUyNzEgcmVsZWFzZTI2LW1haW50Cis2Nzk3OCA2YTA1NjZhNTEyMTg0YmQ1NTc5ZmM0M2NlMGRmZDAxODcwYmJkMzkxIGxlZ2FjeS10cnVuaworNjc5NzkgMzQxYmY3NmViNmViNzJiNTI4NjVkNDM0YWZjYzZmMjAyNWUyZDI2YiBsZWdhY3ktdHJ1bmsKKzY3OTgwIDBlYTRiZDU5YTQwZDY2YzcxMzUxNjliNGUwYjA2NjhmZjc3NzFjNWMgbGVnYWN5LXRydW5rCis2Nzk4MSBlNzcyMDYxMmE3OTY5ODU5MDkyZjMzNWM1YzQ3NDdmNDU4MzMzNjhiIHB5M2sKKzY3OTgyIDY0MWQyNzkwM2JjNTc0OWFlMGY3YjI3MWZiOTU3YmZmOTQ5ZjQ5ZTggbGVnYWN5LXRydW5rCis2Nzk4MyBiZGVkNWJkNjBlOTU0ZGE2NTM1Y2IyYTI2NTQ0Yzk1YjE0ZTYyNTk4IHB5M2sKKzY3OTg1IDdjNzYyNGEzM2Y4YjMyMzM0NGI5MTA0YWFiYTkzOTI3OGE0MDZlMjggbGVnYWN5LXRydW5rCis2Nzk4NiAzNzU1NDNiOTgyNDQ2MDI5ZWQzYzc0ZDlkZjk5YTNmMjU2NjBmMzA1IHB5M2staXNzdWUxNzE3Cis2Nzk4NyA3M2RjYjhiNDIxZjgwZDE5NWM2YTI3ODMzMDBhY2U5Y2Q1MWVjZTQzIHJlbGVhc2UyNi1tYWludAorNjc5ODggMmYxNWQ1OWRmYjgwNDg4MDE4YWJlOWIzZGUzMTIzN2NjZDcwODA5MiBsZWdhY3ktdHJ1bmsKKzY3OTg5IDQ1N2VjODg0YWYwNDVjMzVlOWQ2OWU5MWM0MDc2ZWZjODk3MzA5OGIgcmVsZWFzZTI2LW1haW50Cis2Nzk5MCBlMmViYWMwNjI0MzIyMTNjZTQyZjg1MTJjYjc1YzliMzdmNDEyZmU1IGxlZ2FjeS10cnVuaworNjc5OTUgNmZiN2Q4ZjQyNzNmMmIwNzUwMjExYTI3ZGIyYTBmYzU0YmJjMGM3ZiBsZWdhY3ktdHJ1bmsKKzY4MDA2IDJhZDY4ZGQwYWM5MGY3YTQyOTc0YjZkMjQ1ZTk4MWNkNWJiZDUxZGEgbGVnYWN5LXRydW5rCis2ODAwNyA4N2Y1NDMyYjllZGM4ZDlhNTFlNzIwMGVlNmE3ZGRmMWEzOTFjYzZkIHJlbGVhc2UyNi1tYWludAorNjgwMDggYjk1ZGRlOTU5OTZhOWIzYTE0N2RiYmRjYWMyNGI0NWVlZmNiMGI1NCBweTNrCis2ODAwOSA4N2Y4NmNjZTQzYjE1MzViZmJhZGFhMTkyYmNjZWIzMjUzODZkZmY1IHJlbGVhc2UzMC1tYWludAorNjgwMTAgMzgzNTdlMWQyMWU2YWI5ODI5ZWExMTQxZTU4MWM4Y2RhMmMxNjIyZiBsZWdhY3ktdHJ1bmsKKzY4MDExIGI5ZWZkZDhmOGIzMDkxZWZjODc0MjM3ZDRlYzU3MzM2OGJjNzg0MmYgcmVsZWFzZTI2LW1haW50Cis2ODAxMiA5ZjgzNjMwODg1MzZhNzI3ODE1NmYwNTk3OTgyODEwMzY3MTJmMzM4IHB5M2sKKzY4MDEzIGExYWJmZTAyNzA3NGM5OTRlNmU0YzY2MjEzOGY2Yzc4ZjI4NjMyMDAgcmVsZWFzZTMwLW1haW50Cis2ODAxNCA4OWEzZjVjOWI1MDMyMjRjZWE3MTA1MDhjYzJlOTE1NDU1ZmQ5MTUxIGxlZ2FjeS10cnVuaworNjgwMTUgNzFlNzMyYzkzMjM0NDVhMjBkMzMzMzRjZjA2MWI0YWE3Y2M4NmIxMSBweTNrCis2ODAxNiA3MGRlMmUwOTFlNTgyNmMwZGY5YjFiNmJiYmQyYzg1ZTk0ODYyZmNlIGxlZ2FjeS10cnVuaworNjgwMTcgMThkODE3YTdhMzlmYTlmOGFkZTNkNDAyNDllMjMxMTdkMzBkNTVmMCBweTNrCis2ODAxOCAzNGM3M2E0NjNiMzU1YThiMTIxNjFjYWJlYTM0NzJjYzRhMDIwYzAxIGxlZ2FjeS10cnVuaworNjgwMTkgMjkzMmIzN2YxZjA0NDIwNWNlZGFjZjNmNGY3YTk5OGI3MjFiZGRhOSByZWxlYXNlMjYtbWFpbnQKKzY4MDIwIDQ0ZWE5ZWFjOGM1YjUyNTIyYzRiMGRlODA0NGE3Y2Y3ZTYwMTJhMmIgcHkzaworNjgwMjEgN2Y1YWE3ZTU0YWQ1YTEyNDI3M2FmY2E4NjA3NjcyNTljYmMyZDY0OSByZWxlYXNlMzAtbWFpbnQKKzY4MDIyIGY3YTNmMTQxNjFlMTc1NzdjZmU1MjE2N2RhOTE0NzFhMzFmOWZjNWUgcHkzaworNjgwMjMgYWUxZTExNDIzNzI5NWQ5ZmYxYzE1MjdiNDBmMjVjNzZlMmEwZWNkNCByZWxlYXNlMzAtbWFpbnQKKzY4MDI3IDFhZWE4M2UwYWU5ZjAyZWJjOTM3NWVmYTBkNzY5MGRhYmQyYjg0MWMgcHkzaworNjgwMzAgYmMxYjM3NDM5NWY0MDAwMWE5MmQ4YWFkNDE0ODYxM2JiOTQwNDFmYSBsZWdhY3ktdHJ1bmsKKzY4MDMxIDNkNDQ3YjdiMTM2MzRmZjM0YzBiOWM3ZGUzNDFjYTllODVhZTNjZGIgcmVsZWFzZTMwLW1haW50Cis2ODAzMyBmMTQ2MmQ5MjRhOWMyMWVlOTgwNGRhNmIwYTI5NzgxYzAzNjQ4NTQwIGxlZ2FjeS10cnVuaworNjgwMzUgYWQyMGI2OWIxOGI3MGIxODI3MTU2NmE4ZWJiNTM0NTEzMzljODM5YiByZWxlYXNlMjYtbWFpbnQKKzY4MDM2IDljMDZmYjdkMTI2MDJlYzdkNmNkZWI2ODAxYTY2MGJiNGU4ZGU2ZjcgcHkzaworNjgwMzcgOGZhNjExYmJiMDc3ZmY3MTA5Mjc1OWJkNThjNjNmMTgxOTk4MTRhZCByZWxlYXNlMzAtbWFpbnQKKzY4MDUxIDdhYWVmNGQ1Zjg4MGU3ODYzZmQ2MDYyZTJlMzFmZWRjZDRlMWU0ZjQgbGVnYWN5LXRydW5rCis2ODA1MiBlNzgyZjk3MTE2ZGMxY2YxMjgyMTQ1ZWFiZGJlMmViNWQ0NTk0NGYxIHJlbGVhc2UyNi1tYWludAorNjgwNTcgZjczZmM0NDE3NDRmMDY1N2Q4MDczMzhkYjExZTllZTg2M2I0NjhkYSBsZWdhY3ktdHJ1bmsKKzY4MDU4IDYxOGQzMzk3Zjg4OGNlNTQzMjUxZjgyOGNmMmI2NGJlNGE2NDFjZTUgcHkzaworNjgwNTkgMjhhZWNiZjFlODMyYjA1ZjY3OTRkYWM3ZTFjNWU5YTZjNDNmYTJlMSBweTNrCis2ODA2MCA0M2FhY2JlNjQ3Y2IzZjQ5YTU3ZTA1MjFlZjY0N2FiZDE3NjEwYTE3IHJlbGVhc2UzMC1tYWludAorNjgwNjEgNzI5OTk5OTI5ZWY0YjViZDZhYjFkMTUzMDRjYTE0ZjM1NTczYmUyNyBsZWdhY3ktdHJ1bmsKKzY4MDYyIDExNTRkMDI0NWI2NjEzOGI0ZDNkMzc1ZDUxZmNkYTdkZjI0OWU1NzMgcHkzaworNjgwNjQgYWZhYjMxOTI1MmU3OTIzZGY0MThkMGI5ZjNhY2ExYWRhYzQwY2FjYSBweTNrCis2ODA3NCBmYTZmYzU1MjZmNzFmMTIzNDE2NDY5NjA2M2RjMzQ1OGNkNTkwMmFjIHB5M2sKKzY4MDc1IDJjODQ0Y2ZjMzc1YTMxYzIyODZlMzgyMjllOWFiM2FkNjhjYmNmMjUgcHkzaworNjgwNzYgYzMzOGJlZTIxMTczOTcwNTY3MDZlMGViNzhjOWRiNGM1NmEwNDEyZiByZWxlYXNlMzAtbWFpbnQKKzY4MDgwIDc0MzE2MzhlN2RkOGZhY2M0NWY5YjNjZGNmYjVjZDU2NmM2OGExMjQgcmVsZWFzZTMwLW1haW50Cis2ODA4MSA4YTQ4MzQzOWNiNTVmZWIzZmU5M2NmM2YwNTcyNTkzYzUyYzliMTI1IGxlZ2FjeS10cnVuaworNjgwODIgZDg5NzVmMjRhZjhiNThkZjljZWRlZjdkZjQzZjZiYjg5Y2RjNzlhNSByZWxlYXNlMjYtbWFpbnQKKzY4MDgzIDdkNTUwY2I1MzY5ZTA1YWU2YzdhMTc0NjdiOGEwZDhlMjhjOGUxZTIgcHkzaworNjgwODQgM2UxOGI0NTlkNGM4ODQxZGU3OTAzODk3NTExOTA0N2RlNmMwODY1YyByZWxlYXNlMzAtbWFpbnQKKzY4MDg5IGI3NWQ3NjkxNTFiYWE4ZjBhMTE0OWRhYThjNDMxYzc0NzYzZDJlZTIgbGVnYWN5LXRydW5rCis2ODA5MCAwMmZjZDljNWZlZmJmOTgwZmMwMTY4YmJlYTZjNjgxNGFiMTQ1N2JlIHB5M2sKKzY4MDkxIGVmNjQ5Y2U5Yjc4MzlhMDc0N2M0MTA4Nzc2MzllNTdjYTkyNjcwNTUgcHkzaworNjgwOTIgMDZmNGMzN2Q2NWY5Njg5YWE1YzIzODBmOTBlMmZlNjU0Y2MyYmViZCBsZWdhY3ktdHJ1bmsKKzY4MDkzIDE1YTY2MjYwODVmNGE1MTNlZTQyNGM3OGU1YzgyYWVhM2M1MTJjYjMgcHkzaworNjgwOTQgNmQxNjNjMmFlZjU2YjhkYWFhMjRlZDQ4ZGFlYjZmN2JhNWYwM2Q1OSBweTNrCis2ODA5NSAzODUzYzE1NTMyYzRlZGUzM2RkNjlhNzU3ZjIxYzVmMjBjOGNkMzA3IHJlbGVhc2UyNi1tYWludAorNjgwOTYgMDIyZDk5OWM0ZDFhOTRiMTdiNGFjODFmMGVkZjc3Yjk2ZWUzMGY0YiByZWxlYXNlMzAtbWFpbnQKKzY4MDk3IDljMmFjNzg2NjZkNDU3ODMyNTBmZjYzYmNmYzAwMGNiYzc4NTczNjggbGVnYWN5LXRydW5rCis2ODA5OCBkY2JlOTliMGNlODMyMjc3MTM2Y2E1MjUyNDY4OTAyODA0MzE4YWRkIHJlbGVhc2UyNi1tYWludAorNjgwOTkgMWM1ZDk0MjEyOGI2ODgwNTdmZjk1ZjUzNGY4YWU3OThiZDczMDY1MSBsZWdhY3ktdHJ1bmsKKzY4MTAwIGM0MzIyNjg3NWJkNDEwNzliMjU5ODBiNjRkNmEzY2YzY2ZhM2ExYjYgcmVsZWFzZTI2LW1haW50Cis2ODEwMSA3ZTFhOTViMjZhNWNhNmNiZDQyOTdiNjVmYTQ5OTAyM2Q2NDljYjg0IHB5M2sKKzY4MTAyIDVjYzA3M2Q2NjFmN2I2ZDMzYjJjM2VjNTQwNmQ2ODhhMjUxZmRmZWEgcmVsZWFzZTMwLW1haW50Cis2ODEwMyA1MDc0ODMwZTliOTk0NjQxZjE1NWZhODk1YmVmOWFjY2FiMWQxYzNlIHB5M2sKKzY4MTA0IDcyMzlmYmNkY2Q0ZmJhNjViMWNhMzRjYTM5ZTY5NzMxMWQyZWU1Y2UgcmVsZWFzZTMwLW1haW50Cis2ODExMiAxM2RhZjk5ZGIwMzU3NzBhNDI5ODcxYzQzMzY3MGY5NGRmZWMyNjZkIGxlZ2FjeS10cnVuaworNjgxMTMgYmY2ZjJkZmMzMTBiYTE0ZDk5MzU2YTEwYWM3MTk0YjIyODUxYzgxZiBweTNrCis2ODExNCBkMzJhNjY5Zjk2ZGE5OTNlMDkzZTU4OGQyZGUzYmEwZTU1MDBlMTYyIHJlbGVhc2UzMC1tYWludAorNjgxMTUgOTJhZDk2NTQ0MjUyNTgwNGE3ZGM2Nzc3YzUwMDU2ZDExMWU4Nzk3NCBsZWdhY3ktdHJ1bmsKKzY4MTE2IDU5ZjNiZjJhMzI4ZDQ0ODQyYzZjMjk5M2YwNjg5NzFlNzUxYzYzZTkgbGVnYWN5LXRydW5rCis2ODExNyA5MjdmNWQ5MDg3ZjVhMTVlNWE0OTRhYzlkYWYzODZjZmM2OTVmZTllIGxlZ2FjeS10cnVuaworNjgxMTggMzk0ZTM4OWU4OWYwOWE2ZWYzOGEwYjRhNTg2MjMwNjRjYjQyYTExNSBsZWdhY3ktdHJ1bmsKKzY4MTE5IDIwZWRiN2U1MTU5ZjRkYzJmOTM1MWRhZmQwYzBiZDkwZDczMzAxOTEgbGVnYWN5LXRydW5rCis2ODEyMCBkMWU1MzZjNmZhMmNiMjA1ZjRhZGUzYTcwODAxYTMxZmYyZjM1NjAxIGxlZ2FjeS10cnVuaworNjgxMjEgNjgzYjNmOGIxMmI0NGEyMzc4OWYyYzRiNzE4NDliYjk1NDdiODhjNSBsZWdhY3ktdHJ1bmsKKzY4MTIzIGYzNTQwM2EwMTFiOTRjNThhOWNiNjU4YzAxYTNlNjc2ZGExOGU3NDEgbGVnYWN5LXRydW5rCis2ODEyNCAxYzRlNjc4YTFkM2IxZWRmYjEzNzJiMWNjYTlkMWVjOTVjY2E4MWExIGxlZ2FjeS10cnVuaworNjgxMjUgMWI4MmYyYjgyZmQ5MjExYWQ1MjZmM2Y4ZThmYTkzNzU0NGIyODljMiBsZWdhY3ktdHJ1bmsKKzY4MTI2IGU1ZGJmMzhiMWRhYzFhNzFjODllZGZhNDExZDRhNDFjOTQ0NzAyYWQgbGVnYWN5LXRydW5rCis2ODEyNyAzNmU5NzkzZWJiNWQ0ODNjNDgwZTIzM2M5NThkOTc4ODk5YTNkOTkxIGxlZ2FjeS10cnVuaworNjgxMjggMDk5YjQ4ZmU5MjJhMGRmMjY3ZDM5ODQ0OGZjOGNmNGM2ZmNkYzZmYiBsZWdhY3ktdHJ1bmsKKzY4MTI5IGNhYjg1MDFmOGFlNmIzM2IyOTVkMmZjMGI5ZDRlMGNlOTE2NWM2OTcgcHkzaworNjgxMzAgODQ2M2ZmODYxYTI2ZDg0ZDcyOTljZmRhMDYwMjJjM2U1MzQ5MWI4MiByZWxlYXNlMzAtbWFpbnQKKzY4MTMxIDQzNmU2MzE3YzdiNGI5MTM0MDMzZDFjMjUwNTA5M2Y3MDk4MjQwZmMgcmVsZWFzZTI2LW1haW50Cis2ODEzMiA0ZmJmNTJjOTliNmVkNDM0ZGIyNDBjN2EwOTU0ODA1N2MyMzk4NDM1IHB5M2sKKzY4MTMzIGM3YTQ1Y2JhMDc4NWQ2Y2E1NmIzMzIxMjM2OTBhZjMxNmVhMjY2MGEgbGVnYWN5LXRydW5rCis2ODEzNCAwZTViMjRhZGU0YTIxNzZjZTBjNTE1YzRiZWM1ODYwNDM2MmZjM2RlIGxlZ2FjeS10cnVuaworNjgxMzUgZGYzOTIzYzM2ZWM1OWY3ZDIzOGY3YWM4ODRlMDhlOWQyYmEwOGZlMCByZWxlYXNlMjYtbWFpbnQKKzY4MTM2IDA2ZTFmN2Q5ZGE4M2RlNTQyYWQ5NGE0NjZiZGQ4Njg3MzI3NzhhYzggcHkzaworNjgxMzcgOWRkMmUyNTdhYzdjMjJlNWY0YjQ3MzI3ODM4YjJlMDA5NThmMDA4YSBweTNrCis2ODEzOCBiYjMxMjIzYWJmYWE4YzVhZDYyZDI5NTg0YmE4YWU5ZDBmOTJkN2NlIHB5M2sKKzY4MTM5IDlmNjA0ZDMzYTQyZjcwYmU4ZTA0YTQxNmU0MmUwOWNiNGE0NzExNWEgcHkzaworNjgxNDAgMmIxM2QyMDJhNDdkNzM4NmFjYTQ0MDI0NDQzODhjNzAwNjllMmUxMyBweTNrCis2ODE0MSBhZDRlNTJkMTU0ZjRhMjk4ODM2ZDc1N2VmNDIwMGY3MTY3YWQyYjg3IGxlZ2FjeS10cnVuaworNjgxNDIgNWM2ZmVkNzNiNmE5MTgyYTk4NThhMWE4OTdjYmQ3ZDVhMTgxNGU5MCBsZWdhY3ktdHJ1bmsKKzY4MTQzIDJkZWJiZTY0NDVlMGZkOTFiY2EyMmZlNDYzMGU4Mzc0MWYxOTA0NzIgcHkzaworNjgxNDQgNDgwMTk2OWRhZGVlM2NmZDdmMmRlNjRhY2UzMWFkZGUxYzU1Yzk4NyByZWxlYXNlMzAtbWFpbnQKKzY4MTQ1IDYwOTdmOTdiMGQyMjA3M2JhMGUzMjA5ZTY4M2M4ZDUwNGE0MWI3MjMgbGVnYWN5LXRydW5rCis2ODE0NiA0MGZhODY4OTgxY2NkOGY3ZTZmMGJlMzk4N2UxMzU1YzZiMmQxMDU4IGxlZ2FjeS10cnVuaworNjgxNDcgY2IzNDc5Y2E4MWFjY2FlYTg0OGY0ZGRmNzNmYmIxOTViNTZiNjNiNiByZWxlYXNlMjYtbWFpbnQKKzY4MTQ4IGJmMTczNGM2YjZlZDIyM2NmMWQxYzkyMTJmZDVkM2UzYWUxNDkzMjIgbGVnYWN5LXRydW5rCis2ODE0OSA4NGNiMDFjNTY0OGIxNzRkMDdkYjM1NmI1YmQwMDRkODMyOTgyMDEzIGxlZ2FjeS10cnVuaworNjgxNTAgMjUzZTFjNzNmZGU2OWNhZWI3ODQyMGEyMTk3OGQ0MjU1MGM0ZGEyYSBsZWdhY3ktdHJ1bmsKKzY4MTUxIDVjNGY2MzljOTIwMDg5ODYyYzJmMWYwYzY1NTIwYjhhZjQ3MTU1MGEgcmVsZWFzZTI2LW1haW50Cis2ODE1MiAwOGRiYTdmOTcwMzAxOWE4OTAyZTdlY2ExOGZkNTE1ZWQxZmJkNzEyIHB5M2sKKzY4MTUzIDJmMDFmOTk1ZjcwNDEyYjcwMjNkNWIxOTEzZDBiMjg4NTkzODgzODkgbGVnYWN5LXRydW5rCis2ODE1NCAzNGQ1MWMzMGE0ZjRiZjFjOTIzNGRlZWFjMmZjNGY3NTAzZjM4MjYyIHJlbGVhc2UyNi1tYWludAorNjgxNTUgOTRjZmJmOTNkNzFiNGM2MTI1YTYxOGY2OGIxM2RlZjEyNGJmZWY5OCBweTNrCis2ODE1NiAxZGNiMTkyMTZiNjRkNjIwYTgwYWM0ZWMwYjNiODA1ZTI3MjlkNGUxIGxlZ2FjeS10cnVuaworNjgxNTcgZTdhZWU3Yzk5ZDNiNzdjMGE3YjE4ZTRjN2E4MTFlZDcyMjBmMDA4NSBweTNrLWlzc3VlMTcxNworNjgxNTggNzUzOTU0ZDE2ZWQyMTYwMTJjNDlkMzA3YjNhOWMwZjc2NmExMjM4OCBsZWdhY3ktdHJ1bmsKKzY4MTU5IDI2OTZhMzliY2YwYjA1Nzk4YzJkMjY1ZjU3MjE3YTU1YWY0ZmY5ZTcgbGVnYWN5LXRydW5rCis2ODE2MCBjNTBiMTE4ZWFmMzQ3Nzk0YjRmMjRmOWU5NDIwNWQ1ZDYwNTIyMzQ2IGxlZ2FjeS10cnVuaworNjgxNjEgMzU1YmMxMjJjMTQ1NjVjZTIwY2RjOTg5NWRkMDQwMzYyNjY2ZDBiMSBsZWdhY3ktdHJ1bmsKKzY4MTYyIGRlN2QxNjdiOWZmMTBkYWYyYmVmMzBhNzc0NTZmN2Y3M2E5OGU2NDcgbGVnYWN5LXRydW5rCis2ODE2MyA2OWEyNDBlNWYwMWRjZmY2ZjM4NGI1M2RiMmMwYzk5YTI1YjhlZmFmIGxlZ2FjeS10cnVuaworNjgxNjQgZTBjNjZiYmI0OGRhODNlYzc1MTQ3ODFiZmMyYjFmZGQ2YTdjMWIxZCByZWxlYXNlMzAtbWFpbnQKKzY4MTY1IDQwMGNmY2FhOGQ0NmVlODVjMTFjYjYxYjA4YTVjZWIwNjZjOThlNGYgcHkzaworNjgxNjYgY2E4NmFiZTE1OTI2MzlhNzZlMGJhNWU5YjQ3M2Q1ZTJhYzgwNjFjNiBsZWdhY3ktdHJ1bmsKKzY4MTY3IGZmMTA2NDUzMjU0YTFkZDlmZTkwNWI1ODU0MGIzNmFmMjMyZTAyZDcgbGVnYWN5LXRydW5rCis2ODE2OCBhNTQ5YzkyNzA3NzY3M2VhZGU5NTRlNzkxODJlZGI3YTdjOWYyYTZjIHB5M2sKKzY4MTY5IGFiYmNlNDhiOWFlNDBhNjlhY2M2ZTQyNDFiYzk0ZDBhMjI0NDM2M2YgcHkzaworNjgxNzAgYmNmNDZmMzNiZDkwNTE2ZDczYWE3YTQ5YjAwMTRkODJlOGQ1MDc2MyBweTNrCis2ODE3MSA4ZWRkZDY2NWU5YjlmYjZhZmVkZGM0YmIxMWJlNmE4M2IyY2Y4OTIwIGxlZ2FjeS10cnVuaworNjgxNzIgNjM2YTBhYzk2MDdiN2EzYTQwY2EwZmNiZjMwNDQxYmMxMGU2MDI4MCBsZWdhY3ktdHJ1bmsKKzY4MTczIDEyOTdiYjcxZGM2NGIxNmMyMDgyZTZiN2NhZTAwYTNhOWRhOTE3YmEgbGVnYWN5LXRydW5rCis2ODE3NCA2OGM5ZjhiNjU4NGQ0YjFlZTFlMmZmMDFhMGY4YTdlMTRjMjBmZmE1IGxlZ2FjeS10cnVuaworNjgxNzUgMjAzODRlYmZjNzE2ZjJlMGE5ZjRhOTBiNmM3ZmVmZDMzZGNlNDRmYyBweTNrCis2ODE3NiAwNTg4YTk4NzkzY2QwODc1ZjBlNDVkMWY4ZTMwYWY4NmJlYTNhZTY0IGxlZ2FjeS10cnVuaworNjgxNzcgZWIzNThkYWUwY2NhZDhhNWE1N2VjN2RlMzZjOGJmMTNlOTRkOGRjZiByZWxlYXNlMjYtbWFpbnQKKzY4MTc4IDBjOTcyODM3MmQwOThhZjRjZTRmODk5MThiMTM5MjI5NjY5M2MzYjUgcHkzaworNjgxNzkgMDA1MmQyM2QzOWY2MTVjNzYzZTczNWM0ZTYyYTgyODM0NTY3ZGZiNSBsZWdhY3ktdHJ1bmsKKzY4MTgwIDBlMzhjNzBiOTc3NmVhN2FjMWRiYWRjNTY5NTU4MzE0Zjc3YjU2NWUgcmVsZWFzZTMwLW1haW50Cis2ODE4MSA5MzAxMzM5NzlkN2EyOTFhZDAxYzUyM2U0OGZlNDEzZWUwMDA2NWQ0IHB5M2sKKzY4MTgyIGFkOTIxMDRkNTA2MDdlN2E3MzNjOTVjZmU1NjRlZGUyMmMwMTk0Y2YgbGVnYWN5LXRydW5rCis2ODE4MyA5NGZmM2RlMWUxYTQ1YmViZmZiNWM1NzhkZDcwZWQ1ODE0NDkyZTA4IHJlbGVhc2UyNi1tYWludAorNjgxODQgNWUxNjQ5ODhiZDUxYWVhZWVkMzgwMTdhNzUwNjkxMmE0NTNmYzMxYSBweTNrCis2ODE4NSBkMzY3YmU1NDNmNmNlOGFmNDA3NjRiMTlkZTc1NmJjODdhNjFjZDA0IHJlbGVhc2UzMC1tYWludAorNjgxODYgNDQwYWRkNTE2Y2YxZTFiNzEzZmU4MDY5OGJmZWRlMjg3ZGNjYzE1MSByZWxlYXNlMjYtbWFpbnQKKzY4MTg3IDM2ZDAyNzAzNzgxMjMzMzI3ODhmYmIyMjNkNmQ1OGFjM2FlOTA0NjUgcmVsZWFzZTI2LW1haW50Cis2ODE4OCBjNDVmZWQwM2Y3NDc1YzJkMmJhYzVjZTQ2NmExZWIzMThmZGNkNDIzIHJlbGVhc2UyNi1tYWludAorNjgxODkgZmM5NGM5YzQyYzZjODAwMDYzNWE1NWZjNDZhYTcyMGQ4YTQ1YTFmYiByZWxlYXNlMzAtbWFpbnQKKzY4MTkwIGZhNTVmYTQ1NTZmMDk5MTRjZGE0MWVjNDY3MzdiMGRlZDFiMTNmMjkgcmVsZWFzZTI2LW1haW50Cis2ODE5MSBjMjcyZmNhYzI0YTRhMjViNWNhNzU0ZDhmZjc0MjcyMDE1YjA3NWI2IGxlZ2FjeS10cnVuaworNjgxOTIgZjJhNWQ3ODI4YjgzZTcyMDBiNjQ2ODIyYTQ2MzY4ZTk2YTU5MGY3NSByZWxlYXNlMjYtbWFpbnQKKzY4MTkzIDczODg2NjA5MjZhYTE0OWViYWIxYmFlMmM3YzljYmY0YzU3MGNlNjggcHkzaworNjgxOTQgMTM0ZDE3M2I5MzUwYjJmZTQ1M2QxODNiYWYyZjc1ZjRmNjc0MGI2OCByZWxlYXNlMzAtbWFpbnQKKzY4MTk1IDQyN2Q4Yjc2NWE2YTAwYjAwNjc2Nzc4MDkwNzk1N2E0YzIyZDUxZGIgbGVnYWN5LXRydW5rCis2ODE5NiBhNzg4ZDRmMTBiOTc4M2NlOTNiYWZiMmY1ZWEzOWJhNDYyYWZlODE2IGxlZ2FjeS10cnVuaworNjgxOTcgYjk5MWZlNWY2MzdhODVmZWFiOGFhMDA3ZTQxOWUwOGQ1MDk5ZWMwMyBsZWdhY3ktdHJ1bmsKKzY4MTk4IDhlNzcyODY3NmY3ZTg1YWFlYmIxZDg0ODIzYTA0NWJkYjg4MjRhMDIgcHkzaworNjgxOTkgYTkyZjcxZDQ2ZGM0YzFjMzI5MDZjM2IxMDQ5MjllNGY5MWI2MDJmZCByZWxlYXNlMjYtbWFpbnQKKzY4MjAwIDI5ZjY0MDc3YzQyZjg4ZDFiMGQ1NDVkYTk0OTU5Nzg5YWMxOTc4YTQgcHkzaworNjgyMDEgNzkzNDcyM2Y3ZGM0ZmJkYTE1MjU1MzhiZjk2ODY4OWI4ZTg2YTE2ZSByZWxlYXNlMzAtbWFpbnQKKzY4MjAyIDI2MDQ1ZWQwYzI2ZTJjY2UxZDZmNWIxYzVmZGIyOTI3MDhmNjkxY2UgcmVsZWFzZTMwLW1haW50Cis2ODIwMyBlY2YxYmI3YmFlYjFlYzc2Zjg5ODgwNTUwNTY0OGZjMDMzODg0NWExIGxlZ2FjeS10cnVuaworNjgyMDQgNGQxYTY4YmQ4MDc2YzBjNmUzNDY1ZjYyN2UzMjlmMWY5NjllZThkMSBweTNrCis2ODIwNSAyNTNmOWU2ZTllMDc5OTc1NDRhOTU0MTUwYTAyZGFkNGNjZTA3NDgzIHB5M2sKKzY4MjA2IDEwY2M1M2U3MWIyMTIzZDU0NzlkOGYwY2QzNmZjNzY0Y2UwYmVlNWIgcHkzaworNjgyMDcgOWE0MjVlYjBmN2VhNTRhYjRlNDgwY2RkM2MyMzdmOTNiMDYxNGY1ZiByZWxlYXNlMzAtbWFpbnQKKzY4MjA4IDdhNmUzYmM2MGJhNmRlMTI3YmNlZTk0NGIxMzE2M2Y4Mzk0MDY2MzggbGVnYWN5LXRydW5rCis2ODIwOSBlNzhkY2Q4N2Q3MzNmNmY3YjI0YWIxYTY1OWU2NTA5NDRlYmNlZmRmIGxlZ2FjeS10cnVuaworNjgyMTAgYWE0Njc4N2I5M2NjNjUxYThkZjIzNzI3YWIxMGM0ZTFjN2EzNGM0ZiBsZWdhY3ktdHJ1bmsKKzY4MjExIDEwNDAwNWQwN2VhNTE5MGUzZDIyMDZlMjY3NmUwZDc1MmFhMmU3NTEgcHkzaworNjgyMTIgODQ1ZmE3ZDM2NjQyMDkwYzI0MTkwZDQ0MmViODdlOTJhMWVkMzA4NSBweTNrCis2ODIxMyBkZTI3NzEwNzBkODUyYjJjODNjMzZmZDhlNzlkNmRmNTNmMGE4NjY1IHJlbGVhc2UzMC1tYWludAorNjgyMTQgNmU0ZDZkMzkwNWE3OWRmMWFlNzNmNzJkYmQ1MjEzNWIxMGZmYmQ5ZiBsZWdhY3ktdHJ1bmsKKzY4MjE1IDYwODU0YmRiY2YxZTVhZjc5MGM4OGEzMWIzNmM5NTM1OWYxM2Y1NTUgbGVnYWN5LXRydW5rCis2ODIxNiBiMDY2ZmJiNmE4YmMyOWZhYmQxZWY4Yjc2NjlmNzc1Y2RmOTU5OGNiIHB5M2sKKzY4MjE3IGM3NTcyMGMzZTE2ZWUwMjgzZWIxZDU4MmE0MzFkMjIzMGFjYzYyYTAgbGVnYWN5LXRydW5rCis2ODIxOCA2ZWZjMWRlMzQ1ZjVjOTE3N2U0MDVkYWM3ZjY3NWIxZWI3OWUxZDIzIGxlZ2FjeS10cnVuaworNjgyMTkgZmIwOTgyYzMyMTdlNDU4MDQ3NzJhYzZiZGYzM2ZhZjA1ZjgzZmIzZCBsZWdhY3ktdHJ1bmsKKzY4MjIwIGM1MjE3N2YzNjg1Mjc2NDBlN2YyMjk5YmNjZDU5ODQxMGRmMjYxOWMgbGVnYWN5LXRydW5rCis2ODIyMSA3ZmI0MzFmYTQ5NDYwMTg1Yjk0N2I1ZDg1ZmZjMDA3NDc2NzA3MGMyIGxlZ2FjeS10cnVuaworNjgyMjIgOTg5MzE0ZDdjYzVlZmIyZGZjZWZiNTZjMmNlYzI0YmI5NGNhYjUzOSBsZWdhY3ktdHJ1bmsKKzY4MjIzIGM5MTg0ZjUwNzM0ZmJiOTc0YmUzODJmMTJjOTJhZGI4MTQ1ODFjZTEgcHkzaworNjgyMjQgNWFiMzA2M2NhZjRjMDg4Nzg4NDQ3NmY4N2FkY2UyZjQyMzMxMTkyNiBweTNrCis2ODIyNSA1ZjI0NzVmZTUyMzk5NTMzY2UwZGU0YmMyMzlmM2VlZTZjMjIzNDQ2IHB5M2sKKzY4MjI2IGMzZDNiNzYwZDhiZmIwZWY1MzFhMzY0YWNkNjcxN2RkMjg4YjNlMWIgcHkzaworNjgyMjcgMGUwNWI2Y2E2YWZkM2JhN2M1OTFmYTQ0NDgwZjg0NDU2NzE3ZmRjZCBweTNrCis2ODIyOCBlNDc5Yjg2ZGExMWRlNjRhZWQ4ZWM4OTRkMWZkODkwMzYzMmVmMzM4IHB5M2sKKzY4MjI5IDgzZWZjMjQ2N2ZhZjM0N2I3NjZiMzkzYzFmMTQ4OTI2MzJlYmU5OGEgcHkzaworNjgyMzAgMDcyZGVkZWU3N2ZhNmRkNDg0NTY5NjdhZjU3MGY2OWFhOThjOWIyOSByZWxlYXNlMzAtbWFpbnQKKzY4MjMxIGNkZDVmYTA1YzE0ZDAwOTUzNjcwZWZkOGI2MjRlNDBiZGU4OTk5YWYgbGVnYWN5LXRydW5rCis2ODIzMiAyNGEwOTM3ZDc2MjQzNGJiM2NlZGIwODQxYmYxOTFiMGQzYjg5NTc3IGxlZ2FjeS10cnVuaworNjgyMzMgYWVlNTVjYTA0YzhmYTMwMWY4MmU1Y2ZhNWYyNDE0Mjk3ZWE5NWFjZiBweTNrCis2ODIzNCBlZTljZWQ5Mjg0M2E3YTU5OTIyN2RkOGU2YjAxM2EzMGFjM2ExMTY5IHJlbGVhc2UyNi1tYWludAorNjgyMzUgNzEzYTNhMzhmOTc1Y2ExYzQzOWQ3MmE5NWI1MTg2NWVkYjAyNzBiNSByZWxlYXNlMjYtbWFpbnQKKzY4MjM2IGY4ODVjNzZmMWU5NTUxMjI2ZDgyZWQ5MjM1NDk3NjliNzcyZGMyZDUgcmVsZWFzZTI2LW1haW50Cis2ODIzNyBkZGI3M2E0ZGZjMjA0ZDUzOWI0MGRkOGI2YjlkY2QxOTFmNTljOGZmIHB5M2sKKzY4MjM4IDZkZjNkMDhiODllNDUwZGFkMTRhOWEyMDg5OTdiZWVmYmZmZmNiNjEgbGVnYWN5LXRydW5rCis2ODIzOSAyMWQ3ZTllODc1OTFjNzI5NTM1ZmI3MTVkMjA2OTZmYWRmMWQxNzhmIHJlbGVhc2UzMC1tYWludAorNjgyNDAgYjU2MzlkMjQ1YWQ1MzU0NzlkNzE1YTIzM2JiMDNkNjBhOWUwNDRlZiBsZWdhY3ktdHJ1bmsKKzY4MjQxIDczZGVkOTRmYjhiZWFiMzk4ODE4N2RkODFhMzEzNmM2N2NjOWM3NTQgcHkzaworNjgyNDIgOTFjZjllZDQ2YjcyMzJlMzU1ZTBjZDk5NWI4ZTM5NDcwNWNmODc4OSBweTNrCis2ODI0MyBkM2M3ZTlkOWFkYTdjMDcyM2IzYjAwYzgyNjUzNTY2N2U0MzJkMWQ3IGxlZ2FjeS10cnVuaworNjgyNDQgNmM4ZWQ2Njc0MzI4OTJmMjczYzc4ZTg2NTVlM2Y2N2FiMWFmODEzZCByZWxlYXNlMzAtbWFpbnQKKzY4MjQ1IGFmMjBkZDE5Y2MwZDk5ODA3ZjNiYWYwZWIzNDVmOWFlYjk1MmFhMGUgcHkzaworNjgyNDYgOTFhOTIzMzk3MzQ3ODM4ZTlmMmEwMGQxYjkwY2U3MTU4YThhMGY2ZiBweTNrCis2ODI0NyBkMDkxNDMwMGUxMmViYzVhOGVlMGY0ZGQ0YTc1Y2RiYzVhNmFmMmY5IHB5M2sKKzY4MjQ4IDhhYTE5NTMwZjlmMjI4ZjllODNkYjI1NjMzOTJkYmNjYTI4ZDgyNzQgcHkzaworNjgyNDkgNDUwZWNiYjU2YzdiNTBlYjkyYThjZTZmOWM2MjUxZTcyN2I2ODMwNCBweTNrCis2ODI1MCAyODMyMWRiZGZkYzBjMDZiZDM4ZTNhMWIzOGEwZDY0NDYwMjM0MGY5IHJlbGVhc2UzMC1tYWludAorNjgyNTEgOTYxODgwMzFiMWI1OTc2YmI3ZWEwZTY4OWU2NGMwM2Y5NGJmNzJmMSByZWxlYXNlMzAtbWFpbnQKKzY4MjUyIDQyMjlhNGIxNGYxZDg5M2MzNGI3YTFkMTk2NzQyNDRjNjI4YzM5MDggcmVsZWFzZTMwLW1haW50Cis2ODI1MyA3ODI1NzhjOTJlMWQzYWJjMTIxMGNmNmU3ZGYwM2UwOTVmNjZhMzkyIHJlbGVhc2UzMC1tYWludAorNjgyNTQgNWViZjgyNjg5ZDM2YjRlNWU5MzQ4OWU4YTY2NTcxODNmNjliYzk3YyByZWxlYXNlMzAtbWFpbnQKKzY4MjU1IGZkNGRhODU1ZDYwM2Y1ZjdmNTg1NDMzZTFkNTQzMWEyOTJlODUyZjAgcmVsZWFzZTMwLW1haW50Cis2ODI1NiBjOWU1YzFmYTI4NWU4M2FkNWM5NWRlNmIwY2JiNjU4Mjg3MzRmNDA2IHJlbGVhc2UzMC1tYWludAorNjgyNTcgZTgwYzgwNmNlMDJiNDY0NDBmYjMyY2MwMTMyOTQ4MzliMTg1ZTAzMyByZWxlYXNlMzAtbWFpbnQKKzY4MjU4IDQ0Mzg3ZjFhMjhhMjBiNDY2OWUwNWYyMGZmMzc4OGVkZDc0Yjc1Y2MgcmVsZWFzZTMwLW1haW50Cis2ODI1OSA5MWYyZmJhMDJhNTAyMjI4OWY3ZGU5NmIyYTYyZTFkMjI4NDgwZmQxIHJlbGVhc2UzMC1tYWludAorNjgyNjAgODFjNDliYTdiY2NmNzc3OTY2MjJkMTkzNTk3NDIyY2VlMjJjNGU1NCByZWxlYXNlMzAtbWFpbnQKKzY4MjYxIGZhZGY3OGY1ZjhhZDM2ZWRlNjM1ZTZiYTU0ZmM0ODllOTEzNWUyODkgcmVsZWFzZTMwLW1haW50Cis2ODI2MiBkYjQ2NDQyNmEzNjUzNzIxNzlmYmQ3OGJkMGNjOWVjZDdiOGQyNmUzIHJlbGVhc2UzMC1tYWludAorNjgyNjMgMjRiMThlODdkNjY0ODkxOTA4NTI0MTVhMTc3MzAzYTI1MTQ1NjE4ZCByZWxlYXNlMzAtbWFpbnQKKzY4MjY0IDE1NDgzNjFiZmQyZjNiYjZmODVlZWY1Yzc2NDM3ZmQxZDhjZjA1M2UgcmVsZWFzZTMwLW1haW50Cis2ODI2NSBiYWRiNDcxZGJhZWJlMDFhODVjYzQwMGQ3YzNkNDA0OTI0ZTFkZjMwIHJlbGVhc2UzMC1tYWludAorNjgyNjYgMjc5YTUxMDA2ODg1MDBlZGI3MmRlYjk3ZTI3Mjg4NjE3MTczMTU5YyByZWxlYXNlMzAtbWFpbnQKKzY4MjY3IDA0N2RmMGE1ZjE3NDM2MDRjNjY1ZjI0YTI1MTkzNjBhNWFmY2JhOTcgcmVsZWFzZTMwLW1haW50Cis2ODI2OCA1YTViMGIyZDAxYjkzZWM5ZmJhNTUxZTBmMDc1YmMxNTIxOTY2NjQ2IHJlbGVhc2UzMC1tYWludAorNjgyNjkgYmQwZTM2MWJkNjQyMTUxYjdiMjEyMmE1Y2NjMzM4Mzk1ZDk3NmEzMiByZWxlYXNlMzAtbWFpbnQKKzY4MjcwIGZiZjdmNTNmNDg4OGQyOTJmOGIxZWU0MTExMmNiN2NlYzcxYWE4NTEgcmVsZWFzZTMwLW1haW50Cis2ODI3MSA2ZjMwYjk3MTQ4YjY1OWMwNmRlMzQxYTQ2MDRlOGQxNzcyNDEzZTNlIHJlbGVhc2UzMC1tYWludAorNjgyNzIgODUxYzJmMDRmOTVkNWFlYmE0OTBmNzBkY2EzOWMwYzdhZmZhYmFmYSByZWxlYXNlMzAtbWFpbnQKKzY4MjczIGI5NmQ2MTY4OGI4N2NmMDNlNDA0ZjAzZWE1NDEyZWI1ZThkN2RhZjUgcmVsZWFzZTMwLW1haW50Cis2ODI3NCBhNmVlMmZmNGRlNGQ4NzNmZjI1ZjgxNTcxYTI2YzJkZjcwOGJmMGVmIHJlbGVhc2UzMC1tYWludAorNjgyNzUgOTNjZjNhNmVhZDYzOThjZWFjZDQ1NTNkOTc1MjY5NzRlZTJhZTFkNSByZWxlYXNlMzAtbWFpbnQKKzY4Mjc2IDA1YmY3MDAyZWM5NDI2NTEyMDczYTU4MzQxYWM4ZTcxNmViMjVlZjkgbGVnYWN5LXRydW5rCis2ODI3NyBhZmFjMGNhYmMzYWQyMDcyMzUwNmIxYmMxNjE2ZjliNTgxZDkzZmIzIHJlbGVhc2UzMC1tYWludAorNjgyNzggZWE3ZTMwN2RkZDUxYWYzNTRmMTg1M2NiYjJhNDE4YzcxMGRkMzNkMiByZWxlYXNlMzAtbWFpbnQKKzY4Mjc5IDdhYzFmNmJlOGFkNTU1MmIzNTc3NjM1ZTY4YTU3ODlkMWE1ZTM2ZDcgcmVsZWFzZTI2LW1haW50Cis2ODI4MCBmYjkwNTg5MGQwNDlhYTMzYTQ1ZWVkY2M0NjY5MzM0NTgzZGYyN2VkIHJlbGVhc2UzMC1tYWludAorNjgyODEgOGIyYzFhMGE5YTJiODEzOGU0MDVlMTZkZTU5YTViYWY4ODc3Zjk3NSByZWxlYXNlMzAtbWFpbnQKKzY4MjgyIDIyYjExYzIyY2VmODQ1OTc5OWRkMmI2NmExMWYwNTNmM2M3NDdkZGQgcmVsZWFzZTMwLW1haW50Cis2ODI4MyAzYjA4Njc0YjliNDgzZjc3YzI3MDY5MjRlNmZmN2Y5ZTI5OWRlNGY4IHJlbGVhc2UzMC1tYWludAorNjgyODQgMWVhNTAxM2Q5ZGFlMGYxMjE1NDM5MmM1MzdlZDgxYzcwMzNhNzE0MSByZWxlYXNlMzAtbWFpbnQKKzY4Mjg1IDllYzk5ZmRmODA0ZjE4MzQ3ODE1YmRjZDgwNmIwMjRjZjZkZjQ2OTcgcHkzaworNjgyODYgOTQwM2RlZmI2OWZiMTliZjliZGI0MjUxZjU1ZjExZTNhZmY0ZmZjZCByZWxlYXNlMzAtbWFpbnQKKzY4Mjg3IDFjYThjNjg1OWEwNzg1NDgzNWQ5YWI3Y2NlNDZjYjE1NzQ1YTU0MWEgcmVsZWFzZTMwLW1haW50Cis2ODI4OCBiYWVkYjA2OWU0MjU2YmFiMzQ5NjNiOWQ3ZDQ3NDY0MmVkMGI0YWVjIGxlZ2FjeS10cnVuaworNjgyODkgNTM2Nzk4NTk4YWYwODhkM2E0MDkwMzA0OWZlOWYyNWUxZWRjOGQ5ZCBsZWdhY3ktdHJ1bmsKKzY4MjkwIGQ0MWE4Njg3NTMzMmE3NmE0MGEzY2UwYjUwZmQ3YjYyMGNkOGM3NTcgbGVnYWN5LXRydW5rCis2ODI5MSA1NGE1YWZmYjZhZjAxODU4Njg0NWViNzYzZTVlZjM1NGVhM2NjNThiIGxlZ2FjeS10cnVuaworNjgyOTIgZjRlZTAwMDZlZTM5MmY0ZWU2NTBjY2UzOGQzYjI3NTc1NzNmNzRmMCBsZWdhY3ktdHJ1bmsKKzY4MjkzIGRhMzRmMDI2NjRlZGM5ZDUyMTgyMGM3Zjg1ZDc3NjA5YWMwZTkyYTUgbGVnYWN5LXRydW5rCis2ODI5NCAwNTdjYjQ2ZGRhYWQ3YTllNzIzOTY4OTQ5NTkzNWI3NGQ3Njg5MGY0IHJlbGVhc2UyNi1tYWludAorNjgyOTYgZjg1NDM3M2E2NmU1NWJmZDNhMjI1YTM0OTA3ZWE3NzQyOTc2MmU5YiBsZWdhY3ktdHJ1bmsKKzY4Mjk5IDNhNTQwZWQ3OTVkM2IwNjhmODQ2MmYwNTcwYTkwY2E5MjVjNGUxMDkgbGVnYWN5LXRydW5rCis2ODMwMCBmYWM5MzUwYjQzN2RjOWRkMWM4ZmU3NTllMTNjM2Y0NmVlZWUxYTg2IHB5M2sKKzY4MzAxIDExNDZiN2IwZDUxOGIzYzc5ZTU2MzFjYzZmMTVmMmNiZTJmNmVhYTAgcHkzaworNjgzMDIgNTg0YjI2M2I5OGRhNjRhNGI3N2JiOTYzZDU2ODY5ZjU0ZDQ4M2E0MyBsZWdhY3ktdHJ1bmsKKzY4MzAzIDlkNTA2M2I0MTFlODc5NTZiNDNmNzNlNjMwMTM4ZDBlOWU1MGNjZmMgcHkzaworNjgzMDQgZTE4ZjMyMmI5MzFlNzkwNjQyMTUxYmI0NGU0YWMzMDk2OGMxZjkzYyBsZWdhY3ktdHJ1bmsKKzY4MzA1IDZlNGRkZTJlOTVmN2QzYzQwZDE5N2Y5ZTBlZmYxNDFlYzhiNGVmZTMgcHkzaworNjgzMDkgMTNmMTg1N2RkOWJmNWRhOGU0ZWZlZmJhOGExZmM0ZjgzNTI4ZGE1NCBweTNrCis2ODMxMCBjMjVlNWI2MjBhNGNmMjQ4MTc3M2Y4ZTI3NjVhMTA3MWE1OGY0ZjliIHJlbGVhc2UzMC1tYWludAorNjgzMTEgOTJjZDM1NTFmYTEzMWI3OTljN2ExZjRmODU2MjM3YzQ1N2NiM2IwZCBsZWdhY3ktdHJ1bmsKKzY4MzEyIGJjOWY4MGRkYmJlMjVmNTJmOGE3OGNkMGZhNzA3NWI3NzllNDVlMTMgbGVnYWN5LXRydW5rCis2ODMxNCAyY2FmZTk4OTExN2EzM2RlNzkyZDkzNjIwNmMxODcxNGU4NjI2YjVkIGxlZ2FjeS10cnVuaworNjgzMTUgNDc0NzQ1YjdhMTJhNmNhOWVlNjUyZTc5YTAyMGMzZmNlZTI4ZjM4OCBweTNrCis2ODMxNiA0MGJhMmExMjUzZmE0YmQ0ZTE0NmIwNTBkZmE0ZmQwMDMxYzBkZTkzIHB5M2sKKzY4MzE3IDA5YTQ5OGViMTgyMDU1ZGVjNmI0Zjg2ZjQzZWJiYTVkYjViMzViOTcgbGVnYWN5LXRydW5rCis2ODMxOCBmZDBiYjY4YWQ1YzhiYzFjZjg1MjM4OGYzM2MzODg0OTE3YmMzZDk4IGxlZ2FjeS10cnVuaworNjgzMTkgOWRlMjFlNjE1NTc3ZThmYzRiMGZiOGIwNjQyYzhhZjUzMzkxNDhkMyBsZWdhY3ktdHJ1bmsKKzY4MzIwIDJiZTQ5MGFiZjMzMzNjMjAxMzk1M2U0MzRlNDU2NzFhNTdlNTQ3YmYgcmVsZWFzZTI2LW1haW50Cis2ODMyMSA1NDM2ZTUzNGRhNmU0YTM3OGY5YzhhNzNhZGZkMjM5ZDYyMTIwZDczIHB5M2sKKzY4MzIyIGRkYWVjNDdlNmRkOTlhNmUxYjVmZTM0MmEwNGVmNWYxMGM4ZTk5Y2UgcmVsZWFzZTMwLW1haW50Cis2ODMyMyA2YTZmMTM4ZDQxNjJjZjAwYmQ0NzJlNTIyMDU5MzhmZDc3NmJhYmY1IHB5M2sKKzY4MzI1IDE1YzRjOWUzMzBlOTIwZmI2YjI1MDEzMDA0YTgwOTNkMzdjYzllZTkgbGVnYWN5LXRydW5rCis2ODMyNiA4Njg1ZTU4NTVhNDc5NzM5ODg2NjAzNTcwOTAyMTVjNzk5N2RmNzg3IGxlZ2FjeS10cnVuaworNjgzMjcgZTE3MWNkNTNhYzRiNmVkNzU3ODc3N2Q0NmUxYjk5YmRlMGUzYzcxMSBweTNrCis2ODMzOCA3NThkOGZiN2JkOTkwODk3NTI4OTQzNTkxZjk1M2NjMmM2ZmEzZjEwIGxlZ2FjeS10cnVuaworNjgzMzkgOTE3NDg5NTk3MmNiMDkxYzEzMDhkZTU0NWFiZGY4NmMwMTY1MjJmNCByZWxlYXNlMjYtbWFpbnQKKzY4MzQxIDZkOWIwMzMxZDA3M2EzZWVmNTZlYjUxNWIxOTZjMDg0NjIwMDBkZTkgcHkzaworNjgzNDIgMjU1ZTY0YTEzNzU1MWRiNWFiNjg2MDZlYWZiNWEzMmI0YTVkNmU1ZCBweTNrCis2ODM0MyA2NGY5MWZmMjRmZTZjMjQ4MDFjOTFkZjEzNWY5ZmI2OWNjZDBjMTQwIHJlbGVhc2UyNi1tYWludAorNjgzNDQgNzI3ZWUxNjY1MjE5ZGRjN2RmMjZmZTNkYTk5MWEwNGExMmM4ZmZmZCBsZWdhY3ktdHJ1bmsKKzY4MzQ1IGU0YWNmMDc5YjUwOGRjMDEyNTFmNGRjNDQ5ZDliOGZjMjY2YWVjYWIgcmVsZWFzZTMwLW1haW50Cis2ODM1OSA0NWFlZjUzZjVjNzFhYzRiM2NiODkwZDQxYzFiOTc0NzBjYTg5MjgwIHB5M2sKKzY4MzYwIGZjMDAwMDY4MmJmZTdjMGVkNGRmYzMwMzdlODAwYjIwYzFlNWIwMmEgbGVnYWN5LXRydW5rCis2ODM2MSBiZTliMTViZjY4MjgzMWNhZmMzOTVhYjM4MjZiYjZkNDEwOTFjNmY3IGxlZ2FjeS10cnVuaworNjgzNjIgNjE3MTk5NzY5YmQzODRiNTE4NGJjNDZhMjg2NGU3MThmOThhMjNmNiByZWxlYXNlMjYtbWFpbnQKKzY4MzYzIDJmZjk5MTBmMTUyNmM4OTM0NzIwNGRiZDk3MjM5YmFlMGU2MWNkMmQgcHkzaworNjgzNjQgZTk4N2UwZGY4ZjQ4ZjQxMDA1OTJhNjY3YTQyMzIyZWViNmZlNjQ1NSByZWxlYXNlMzAtbWFpbnQKKzY4MzczIDg5MzNkZWJiOTMwOGViNzA0OGQ3NTc1Y2Y0YzM0MDYwMmJjZThkNmQgbGVnYWN5LXRydW5rCis2ODM3NCBhNGFmNWU2ZjZiMTdjMzkyNDZhNzllNmQ0ZmU0MGVlMTNlNzhmZTY5IHJlbGVhc2UyNi1tYWludAorNjgzNzUgODFkMjM2ODRmNjk0ZGUxMTE0M2FjZjJhZmI5MTIyNzgxMzlmZWU1NCBweTNrCis2ODM3NiAwMjc2YjhmZGRkYTdkNWQ1OTRmYjIwYzY3YWM4M2NkYTVhNDkwYjg2IHJlbGVhc2UzMC1tYWludAorNjgzNzggOGE1YTk1OTExMDBkZTcxNzRmYWE3OGYzNDM3MTZlNTc4NWNmNDI1YyBsZWdhY3ktdHJ1bmsKKzY4Mzc5IGZlZDJhZTFlNTBjMmZkNTVmOTczMzE0OWY1ZjkxOWJhYTY4MTU5NDIgcHkzaworNjgzODEgZjBlMGMzNTM2ZTIyNzI1MmEwNDNlOTE5ZDkzM2QyZjU2NzAyMzExYSBsZWdhY3ktdHJ1bmsKKzY4Mzg4IDQ0ZjE0ZmQ0ZDljMjczMTM5MmZiOGQyZTUyY2FjZTJiNTZlODBkNDggbGVnYWN5LXRydW5rCis2ODM5MyA1YWM4ZjBiNWE1OWJmY2M1N2RlOWQzZWE5NDZhYzk3ZTNhZjBjYWUwIGxlZ2FjeS10cnVuaworNjgzOTQgMGI4ZDJjZjNmNTViNDJiM2I4ODY2NDk4ZWQ0OWIzOTQ4Y2QyZmFkZiByZWxlYXNlMjYtbWFpbnQKKzY4Mzk1IDc2ZmExZGUyNzQyYTk4YTEyN2YxMjYzOGZhNzNmMTkyNmFjOWJhODYgbGVnYWN5LXRydW5rCis2ODQwMSBhMjI5Y2EzYTEyYWUyYzQ2ZGE4ZGFkMTc5NGViN2U1YzgzMWJlZjkzIHB5M2sKKzY4NDAyIGU2YTI5NzkwZDc1YWUwYmE3Y2VmZTM3ZGUzNjc4NGFmM2E1ZGRkYzIgcmVsZWFzZTMwLW1haW50Cis2ODQwOSBhZGM0MzBjMTZiNTdiNmE3NmI3ZGNjYzk3NzUxOWRkNWY5NmE1YWFkIHB5M2sKKzY4NDEwIGZmZmQxMGMxMmExYjc3MjM5ZmI2YmUyZTc2ZTJmZDcxZDFkYzJlMTMgcmVsZWFzZTMwLW1haW50Cis2ODQxMSBmOWY1ZDkwNDdhMDU0MWZhMTZmZmI1ZWMzNjQwNWYwYWRhNTc4YWM3IHB5M2sKKzY4NDE1IGEzZjMyOWYyM2IyMzZlMzMxNTMxODY0ZDU5MWFkMzI2YmZjNzk4NjQgbGVnYWN5LXRydW5rCis2ODQxNiBlYTQzMTk0M2E4ZGU1MjYxN2JjNWE1NWE1NzYyZWQ3YTA5ZjgzZDQ1IHJlbGVhc2UyNi1tYWludAorNjg0MTcgNTg5ZjY4NDRkOGUwZWMzYWFlZjE5ZDJjOWI2MjY5ZDIyYjEyNjQ0MyBweTNrCis2ODQxOCAzNjhkZjAwNjA3NDBjNzI2MDE3MjMyOGNiMzIyNjAwOGNjMjZmOTlkIHJlbGVhc2UzMC1tYWludAorNjg0MjMgZWQzZmRiZjEwNzc1NTZmMmQwMmVkZmZjNWZhNTUxNWYxNGNhZDgwNyBsZWdhY3ktdHJ1bmsKKzY4NDI0IGVkZWI5MDM4YzQwNWIxMTQ3MDRjMzVhNDgxMTQ5OTNkMTZmZjM0MWIgbGVnYWN5LXRydW5rCis2ODQyNSBkOTdhYTk0M2JlYmI1NWQzNThjYjJhYzA2MjlhZTljOTI4MzJmMmUzIGxlZ2FjeS10cnVuaworNjg0MjYgZDhiNjRjNjc2YmNiMWRlNWY2MjU0ZmQzYzFhMzY1MzhiYzcwMmVkYiBsZWdhY3ktdHJ1bmsKKzY4NDI3IDVmMjkyZGViZDI0YzM1NGQyNWI4NjNlODc5N2ExMTcxMDE0NTk1ZGIgcHkzaworNjg0MjggZTQ5NmZkYjkyN2ZhNjJkMDQ4M2EzMzk1ZGUxZWU1NzhmN2MwNzViNSByZWxlYXNlMjYtbWFpbnQKKzY4NDI5IDVjNjI0NGQyMTdmZjExYjk3M2RjOGQ1YjRkMGJiMDhlN2Q5Y2VkNDggbGVnYWN5LXRydW5rCis2ODQzMCA2OWEyYTRkYmQ5YjRmNGRhNGY0MDZkNWFhZGM0NjY2ZGJjMjJhZmRlIGxlZ2FjeS10cnVuaworNjg0MzEgNzJmZTUxZDZmODAwYmNlNzdjYzZjNDRjODkxZjM3MDEwYmIzYzFiYSByZWxlYXNlMzAtbWFpbnQKKzY4NDMyIGVmM2ExZWNkNDY2M2ZlNjU0ZTI5MmVhMDMxZTFmNzZmOGE1ODhlYWMgbGVnYWN5LXRydW5rCis2ODQzMyBlM2MyMTI3OTk3MDZlNjZmYWM3M2M3OWJhMGY0YTNlZDMwMTYwY2Y5IHB5M2sKKzY4NDM0IDQ4MGZjZGQ4MjAxNjIwOWRkNzI5OWFmNTMwZTRjM2RmZWI0ZmFhYzMgcHkzaworNjg0MzUgMzY2ODZkNGQ3ZTcyNzViYzI0NjFmMTAxOWY1NjIxMjA2MmFiM2QzMiBsZWdhY3ktdHJ1bmsKKzY4NDM2IDNiOTMzNTg1NTQ3MTk2YWVjMDQwMTA2NjEwYThkNTgxNjZjMTMwMmYgcHkzaworNjg0MzcgMGE2NmUxZGMzMGYyMjM1Njk4MzdhN2QxZWU5YTI4YTc0MmZkNTI2OCByZWxlYXNlMjYtbWFpbnQKKzY4NDM4IGM3YzM0NGI2M2VjY2ViZjYzMjczZmM4ZTJhYTdiNWE4MWQ5MWVlZDkgcHkzaworNjg0MzkgN2I4NmQ2Y2FjMmIxODVlMWM1NjAxZTc3ZGFlMWUwODE2YjA3NDE0YSBsZWdhY3ktdHJ1bmsKKzY4NDQwIGYxMjdiY2IwYWE3MTIyNWZmYjRjNWFiZDc2YTgzZmY4Y2RmMjQ1ZjcgcHkzaworNjg0NDEgOWYwNDFiYTNlNGM5MWZjMzNmM2NhMzkyZjdmMTI3MmEwODhkYzU2MiByZWxlYXNlMjYtbWFpbnQKKzY4NDQyIDlkMDkzZWY4OWM1NjA3NWJlZjBkYzBiZDUyZjBjNmI4ODdlOGQzNWIgcmVsZWFzZTMwLW1haW50Cis2ODQ0MyBjZTM3MzMxMzlmYWM4MDNlZmE4NGE0NGRiZWIzM2IyMzNiNjE0YTljIHB5M2sKKzY4NDQ0IGM5NGYwMjc5ZmVkZTk3N2IyNDc5NTYzZGNkNzA5NjY3NzE1NDUxYTQgcmVsZWFzZTMwLW1haW50Cis2ODQ0NSBjY2Q5NWIxYWFkZTlkNGM5OGRhYzkwNWM3MzNhNThmMmU0ZWJhYzA5IHB5M2sKKzY4NDUwIGI3M2JkNWE3NGEyNzg4MzdiYzJhMDIyOTdjZjg0MjNlZjEzNDNhMzkgbGVnYWN5LXRydW5rCis2ODQ1MSBiYzMwZTM5NWFhMTRhZGVmMDAyM2QxMDIwM2UxNTM2ZDMyMGNlY2RlIHB5M2sKKzY4NDUyIGI5OGZlOGRjOGFjZDZhMTA0NTBiZDlkM2FmODY0MWQzZWFjZjA0MjEgcmVsZWFzZTMwLW1haW50Cis2ODQ1MyAzODg2ZTRjODhmYTU5NmQ5MGUyNDgwYjNlMTI4NWUzMmEwMDViZWUwIHB5M2sKKzY4NDU0IDhjNDlmZjBjZTE3YWYzNmVlOGQwYjg5NGEwMjIyZDI4NDgyNDNmMTEgcHkzaworNjg0NTUgZmRjY2E4NzkzZWI5ZjdlMjUxMTgxMGZiMmUxMDBjZWU2MDQxNzk4NSBsZWdhY3ktdHJ1bmsKKzY4NDU2IDliMjc2Y2UzNTY5N2IyNTZhOWNiZTNhZjlmOTE1MGE4YTRlYzUxYTYgcmVsZWFzZTMwLW1haW50Cis2ODQ1NyBjYTA5OGZjMThlYzYwOTgwMzRiZTJlNGYxNGU0ZjI3ODc4ZDliZTZhIGxlZ2FjeS10cnVuaworNjg0NTggMDdiYmMyZTIwYWE0YjUwMmZhMWQ3NjY0NWEyZWUzZmUyZDg5MzJhNSBsZWdhY3ktdHJ1bmsKKzY4NDU5IGYxY2E1ZGQ1OWFjYTgyNjRlYjhiYzZiOTVlMjA5OTcxODFjMzliNjAgbGVnYWN5LXRydW5rCis2ODQ2MCBjOGY3OTNlMTU5YmJiYmU5NzVlN2QwZGE0NmQ5Yjg4OGEwMDQ5YmU0IGxlZ2FjeS10cnVuaworNjg0NjEgZTZmNTVjOWVjM2QwMTRhZmU5NGMwOGI3Nzc4MTYzZDZkZjI0ZWQ3ZSBsZWdhY3ktdHJ1bmsKKzY4NDYyIDc5Mjc2MzE2Yjk0YjM4ZjNkZWVhYThiMDM3MDEzYjkzY2I2MGE1ZWIgbGVnYWN5LXRydW5rCis2ODQ2MyA2MmNhMmNjY2RiNmZjMjBlYTMzM2FmNTg3NGRiZmZjOGM4NTA2OTBlIHB5M2sKKzY4NDY0IDljMmJkNjQ3YjY0NjRlYjY2NWRkYzAyMjhlNTcwMTExYTY1NTdiNTggcmVsZWFzZTMwLW1haW50Cis2ODQ2NSA1ZDBlYWMwMWEyODVkOThlYTM4MmRhOTcwMjViNjY1YWFmM2MzMDNkIHB5M2sKKzY4NDY2IGJjNjcwYThkZjQ0YmIyYTM4YTI0MWE0MjNlOWYyYjE3MjM2ZGQ5NmIgcmVsZWFzZTMwLW1haW50Cis2ODQ2NyA5MWUzODUxYzhjYzdjYTIyNDNhOTQ1ODUxZGM1ZTU2YWIzNjZhMGExIHB5M2sKKzY4NDY4IGUwMGIzMjQ3NDliMDRlMjk2MzVjYmIxY2FmNmYwMjQ5MTIyZjBjNDQgbGVnYWN5LXRydW5rCis2ODQ2OSA4YWY1MWNmZGQ1ZTkwYzEwNTExMzFjNTBhMTJkZDU1N2M3ZGYyYTQ1IGxlZ2FjeS10cnVuaworNjg0NzAgMWUwNzBiODNjZmE5NGI3MGE1M2U0YzJiMDFiOTc5MDY3OTFkOWU1OSBsZWdhY3ktdHJ1bmsKKzY4NDcxIDkzN2Y1MDBlMGYwNmQwODA3ZmU0ZTA1ZTFkMGI3ZTNmMmE3Y2RhYmUgcmVsZWFzZTI2LW1haW50Cis2ODQ3MiBkNDQ4M2ZlY2Q2ODczYzBlY2M0MDc0ZDQzMGRmMzZlZDhmNGFmZmFiIHJlbGVhc2UyNi1tYWludAorNjg0NzMgYzM0ZDcyMWMyZGM3MjQ2MjliMmFiNTFiZjEwNTUyMzNkNjUwMjQ1NiByZWxlYXNlMjYtbWFpbnQKKzY4NDc0IDYzOGUzMDllY2M5OGFlODFhMGFkYjdkNTc2NTBiZDAzOTBlODVjNmUgcHkzaworNjg0NzUgYTBmZjkwMDdjMmFhM2U3ODhiYzkzNDAyZDU1NDg4ZWVlMDZiZmM1OSBweTNrCis2ODQ3NiA1MzAyZjgwNjUzN2E3YmJjMWY2ZGZiYmQxNTFjMTZmMzAwNzc0M2UxIGxlZ2FjeS10cnVuaworNjg0NzcgZDMyNmE2NzNjYjY2MDVkZjRlYWZjMWQxZjQ4OGVjMzRhZmVhZDBhMSBweTNrCis2ODQ3OCA1YzZjYmI3YTYyYjA3NmJlYjUxZmQ1MjU4MzJmMTVhOTdiOWJiOWRhIHJlbGVhc2UzMC1tYWludAorNjg0NzkgZmE5MjI5ODVhZjczMjE3ZWI4YWQ4MWZkZDkwNjRhMmFmMzdlMTNjZiBweTNrCis2ODQ4MCBkYmUzOWViZDMwMjU0ZmVmMzUxMjJkMzhmOTBiNGM2YWFlNTJlOGRlIGxlZ2FjeS10cnVuaworNjg0ODEgY2RjMmZlMWJlOGE1ZTIwZDg5M2Q2ZWUwNjZmZTIzNWZiMmIxMzE4NiBsZWdhY3ktdHJ1bmsKKzY4NDgyIDJkNDcxZmQ4OGFmZmIyOTQ4OTI4ZGRkYWEyMWQxN2EwYTUxNzQzNzkgcHkzaworNjg0ODMgOGU2MjNiNzhhY2JmNmMwZDY2MWU0NjMwYTVmYjg3MDI1MGNiMTI4YyBweTNrCis2ODQ4NCA1ZDVkOTA3NGY0Y2FkNDU3MDJmNGE2ZmJkNTBiYWVjNDViY2U2Mjg4IGxlZ2FjeS10cnVuaworNjg0ODUgOTljNDQxNjQwZjcwYzcxMDRmNzg0NDBmNzllZjJmOTQ0MjRmZDhkNSBsZWdhY3ktdHJ1bmsKKzY4NDg2IDE1YTA1NmUwZjg5ZmVmMjY0YWIyMDlhYTFiMGU3ZTViYjBjMmQ1MDEgcHkzaworNjg0ODcgNzQ0NGY1NjRlMjdkMWU5ZjY1OWIzZjhhNDRmMDU3YzdmNDY2MTdjMiBsZWdhY3ktdHJ1bmsKKzY4NDg4IDhkY2FiMjQzOTdhOGQyZjAwNzA3ZTBmNGNlZTc3MmVmZWI4NjJlZDIgcHkzaworNjg0ODkgMjkzYWM0NGQ3ZmYwZGY2NmU0YTQwMWQxMTYzNzBiMjA5MDBjMjBhOCBweTNrCis2ODQ5MCAzYjViZTBlZTMyZWFjOTc5OTFiNjdhYzU2ODc5YjQ1YmFmZWI0OThmIHJlbGVhc2UyNi1tYWludAorNjg0OTEgZTk1YzNhZWI0Yzg1ODM4ZGEyYWEyMDlmNmRjNzAyNTE4NDNhNWMxZiBweTNrCis2ODQ5MiBlZjRiZDc3MDhhZDdiM2RjMjg5YzczM2UyM2E1ZmE2M2U2NjcxNDgwIHJlbGVhc2UzMC1tYWludAorNjg0OTMgNDBjYThiMjEyMjA4MWRlNTNmNTIzNWI2ZjUxMjE0NWNmYjM2ZWQwYiBsZWdhY3ktdHJ1bmsKKzY4NDk1IDEyOGUyMGRhODllYjQxZmNmNGI2ZTYxMmM5MDg5MjRiZWVjMGViZTUgbGVnYWN5LXRydW5rCis2ODQ5NiA1ODYxZjZlMTA4NjA3NTNkMGU3OTlhMjQ1Nzc3ZjgxMzhlMGYyMjAwIGxlZ2FjeS10cnVuaworNjg0OTcgOTU1NzZkOGFmNzk4OWUzNDM1YmY5NTAzMDdkODJjYjg5ZjI5NDMwMyBweTNrCis2ODQ5OCAwMjQ0OGNjZjQxZTAxYTU5MDM4NjBkMDRiYTVlNzc4ODk3NTMxMTQ2IGxlZ2FjeS10cnVuaworNjg0OTkgOGUwM2RhYWFmYzc0MWRiODk4ODZiODE5NDEwNDc0YTg0NmQzN2JhMiBsZWdhY3ktdHJ1bmsKKzY4NTAwIGQ4N2NiZmM2YzVjNjc3MTQzMTVkYzk3MGQzZjc4ZWQ5M2YwNzA0M2YgcHkzaworNjg1MDEgYmJmNDY0MjEwOTg0MDQ1YmExNTE5YTIyYWU2ZTA3NThjYjk2NWRmMCBsZWdhY3ktdHJ1bmsKKzY4NTAyIGVhZjdjZWI4YWI0NTRhM2YwM2JmNTEzNjdlOGRhNGU0M2NkMDk4MmUgcHkzaworNjg1MDggOWUxODFlZWRjOTVjYTJiYjlhNTA0NGExNTc2ODYwMDc3MjIwZTIxMyBweTNrCis2ODUwOSAwNDk2OTYzZmNmZTlmYjY0Yzk0NThjMjFkMzU2MzU5MzIyMzYxZDExIHJlbGVhc2UzMC1tYWludAorNjg1MTEgNGQzNTBmMmIxZjJlODM4MGNjNWU4NWRkN2FiNjcyNWY0YTNhZDAzOCBweTNrCis2ODUxMiAxOWRmZmRlYzU1NDdhYjk0MmQ0Y2NkY2MwOWQxNWI2YWVkNmQ2ODRkIGxlZ2FjeS10cnVuaworNjg1MTMgMGYxZTRhYjk1NjU1MTcxZmY2MTBhZmIzYzg2ZDJlZjVlY2ZjMzQxOCByZWxlYXNlMzAtbWFpbnQKKzY4NTE0IDQ0ZTBjNjlhNTMwNDgxZDdjNzgyYzZhMGYyNTc4MTNkNTI4NGQwMGYgbGVnYWN5LXRydW5rCis2ODUxNSA0M2VkYzY1ODFlNDRkZmM0ODJjYWI0MThlM2FkZGNlNGFlOWY5OGMxIGxlZ2FjeS10cnVuaworNjg1MTYgOTNiMmE5MTNkOGFjZmQwNzNiZTZhNWY4ZDY5NDAxNzdkMjZjMjJiZCBweTNrCis2ODUyMSBhYjA4NmFmZGNmMGNmN2UwZjQ0NWY2ZjI0ODhkYjhkM2Y4NjQ0ZmJiIGxlZ2FjeS10cnVuaworNjg1MjIgMmQ4OTc3MmNjMjU2ODhhNmZmY2Q0MjI1OGExNmJiMDZiMjExNDk2NSByZWxlYXNlMjYtbWFpbnQKKzY4NTIzIDI5MzVjZWRlNTk0ZTM3N2ZlYzFiZmFkZjY4NzE0MjgwNTdmODY5MTggbGVnYWN5LXRydW5rCis2ODUyNCA3NTY2MWJmOGNiMmM2NzNjMzY3MTM5NzBjODgyYjlmMDFkOGQxNzYyIHJlbGVhc2UyNi1tYWludAorNjg1MjUgOTVhNGY1MzA4YmUyNGNkZWFhMThiOTY4MzRkNzNhNmY0Mjc3OWViOCBweTNrCis2ODUyNiBkYzQyYWRmODg3YjU3NWYwNDIyZTNlMGU1YzFmZmZlYTIxZWY3NGE0IHJlbGVhc2UzMC1tYWludAorNjg1MjcgZDg0MWZmNjdjYzYxYjhhMjU1OGZhNzVhM2UwY2UwNDI4NDFiMzY4MyBsZWdhY3ktdHJ1bmsKKzY4NTI4IDcwNDQzYWU3NmIxMDVjODE5YzA1NzRhODVkOWZlODM5NTU1MTAxZWIgcHkzaworNjg1MjkgOTJiZDAxNDE1OTA2OTdiNTkzMjFjMzdiNmI0MTA1N2YyODQwNTY2NCBweTNrCis2ODUzMCAyZmZkZjhkZDNlOGI1MDY0YTI5NWU0MjU5ZjI1OTQ4ZDIyNGYwMWRlIHJlbGVhc2UzMC1tYWludAorNjg1MzIgZDA5ZDZmZTMxYjYxOTk4N2Y3OWZhOTQyNDNjOTAzMzRlZjJkMWU1ZSBsZWdhY3ktdHJ1bmsKKzY4NTMzIDI3ZGI4MmE1Y2RhOTE5ZGNjYTIxZjRjZmM2ZDQ3OTZhOWE1ZTYyODcgcHkzaworNjg1MzQgYjdmYmUzN2ViODkwNGRmOWNiZjk5ODVhNWRjZGIzZTJiMjgyNGViZSBsZWdhY3ktdHJ1bmsKKzY4NTM1IDQ5MWVjNDExZTVjOGZmMzZmZDE4MTQwYjJlM2ZhMGRmNDYzMDgxMmYgbGVnYWN5LXRydW5rCis2ODUzNiA3NTQzZjEyODIwNzM2OTRhNDY0NGQxNTc0YmJmOTA1NDljMzgxMDA3IGxlZ2FjeS10cnVuaworNjg1MzcgMGYxYjNmMzExYWUwMTAyZDJmOTQ4NmJiNTJkOWRlMzI4NTlmZWI4NiBweTNrCis2ODUzOCA2ZWVhODBiZGNiZjVlOGY2MTY4ODA0ZjJiMGQyZjBhYjJiMGIxNzA3IHB5M2sKKzY4NTM5IDVmNGMyZGU5NTA5MWI1MmMwNmNjZWZkOTI1ZGQxMzhiYzNjYmEzMzUgcHkzaworNjg1NDAgYWQ5NjkxMzUwYzkzMWRmNjE0Nzk1ZTAxMjA1ZTg0OWIyZjc4NDkyZSBsZWdhY3ktdHJ1bmsKKzY4NTQxIGU4MTU0YmQzMjJjYjU2NjEyYzI0MWY4MmM2NDdlNTE5OWViN2JkZGMgcHkzaworNjg1NDIgODU0MDI2ODA0MGZmMDQzZjAwODJmNDcyYTZiMmVlMGZlM2MwYjMyNCBsZWdhY3ktdHJ1bmsKKzY4NTQzIDJiMjcwN2ZmOGJiN2E5ZjI1YzVjYzBmZjg0MDVjNmU5ZDU1MzhmYzggcHkzaworNjg1NDQgZTQwY2U4ZmZlNjMyZDE2YzZmNjNiNzRiYTYyNTI4YzI3NzVhZWUzNCBsZWdhY3ktdHJ1bmsKKzY4NTQ1IDM4ZTE4YTg4NGYzZmVlNjVkMTIwOWNjN2IwZmU5ODY1N2Q5ZTI5ZjYgbGVnYWN5LXRydW5rCis2ODU0NiA4N2FkY2NlNDhkZWZlNjRmNTRmOGViNDBlMWE0Y2UwMTg2N2Y1NmI5IGxlZ2FjeS10cnVuaworNjg1NDcgYmJjZDQ2MzRhZTczM2IyZDg0MWQxN2FhOGVmNDc0MjJkNzAxMjcxNSBsZWdhY3ktdHJ1bmsKKzY4NTUyIGJjOTJiYjIwODE5ZmM5Y2I1NTZjYWJiNzU3ZjdlYmFmMDg4YzgwMDMgbGVnYWN5LXRydW5rCis2ODU1MyBmNTViODU1MzIzOTI3YmQ1ZTUwMjllZjk2ZGEyMGY3NmFlNjA2MDllIHB5M2sKKzY4NTU2IDg3MWExZmY0NmZhNjljM2RkNmVhNTQ4MzMyMTUyODNlYTQ0NjdkOGIgcmVsZWFzZTMwLW1haW50Cis2ODU1OSA1OTM0NjEyZDUwNzA1YjA0OWE4YjliMzc5NzAxYTYzNzU4ZjVlYWZhIGxlZ2FjeS10cnVuaworNjg1NjAgZTk3NDhkYjQ3NjM1N2NjNjE0MmZiOWMxZDAyNjMxYmUyODNkOWFmZCBsZWdhY3ktdHJ1bmsKKzY4NTYxIGM5OWNlMDE2NDY5OWMzZDRmNmI1OGRkMGFhMmE3YTU1MWMxODJkZDkgcHkzaworNjg1NjIgZjQ1OTk3ZDlhYzU1NTYxOGFkZDFjMGM2NmNhOWU3OTE5MWE3YzM0OSBsZWdhY3ktdHJ1bmsKKzY4NTYzIDEyYTc4N2I0NGRiNTQ0OWYwMGYwMTM1NTFjNjMzNzZmOGI3YzMzM2UgbGVnYWN5LXRydW5rCis2ODU2NCAyYzAzYzc1ODBhYTM4YmQzNmYzMjZjMDQ4MDgwYWQ2YjQ3M2Y4YzY5IHB5M2sKKzY4NTY1IGJhMTUyMWYyNDc0OTA0MzQ2MjU1YzUzODJjZTZmY2JlMjExMTU0NDggbGVnYWN5LXRydW5rCis2ODU2NiBlMzAxMTQxZTkxYjEwNDY3ZWQxZTA3ZGM0YjM0MzA2MjE0ZDFlNjI3IGxlZ2FjeS10cnVuaworNjg1NjcgZTVmOTk2Y2RhMzIxNmU0YjAxMWRiNWUwMjNkMmVjMWE3YmIxODMzMiBsZWdhY3ktdHJ1bmsKKzY4NTY4IGExOWQ1OTZkMzUwMGNmYTYwNTUzNGM0MWFiMWFjYzU2MzRlOTM0ODUgbGVnYWN5LXRydW5rCis2ODU2OSAyYTgyYmQyOWVjMTg4ODU4ZDllOGY2YWE5NWVkMmJhY2E0ZDUyNGRiIGxlZ2FjeS10cnVuaworNjg1NzAgNDU0YjY5NmMxZDczMGUyYzY2ZTI1N2RjYzdkNGZiMjBjMTFlZTQxZSBsZWdhY3ktdHJ1bmsKKzY4NTcxIGM3NzZiNmQ4MTRjMjNlOGJhYmM3YTJlZjI2MTIxMmU5MWJkZWMxNGIgbGVnYWN5LXRydW5rCis2ODU3MiA1OWIxMjEyYTRkYmYzZmUwMTMyMmYyZWM4NjlhY2YwN2FmZDJmNjAzIGxlZ2FjeS10cnVuaworNjg1NzUgYmU4ZTk1OGRlZTk0Y2VkNGFlNmM1NDcwMDY5NGU0OWY0NzY3ZThkNiBsZWdhY3ktdHJ1bmsKKzY4NTc5IDA4YWM0NDA0MDhjOWQzMmE2ZWY0M2QzYjBhZjAyZDJjYWNjZGFhMDYgbGVnYWN5LXRydW5rCis2ODU4MCA5YTVkMTQ1ZjE5YTUxMmI2YjU4M2VkZWM4OTYwZTQyY2MwNWY1ODk0IGxlZ2FjeS10cnVuaworNjg1ODEgNDM5OWUzZjEwYjE5YjBhMTcwYThjYjJjMTNhYzRjNjUyY2EyNmIzNiBweTNrCis2ODU4MiA2ZTMzYWVhZWU3N2RkMzk2ODA1N2E4ODg1MDgwNzk5M2M1ZGRkNjRmIGxlZ2FjeS10cnVuaworNjg1ODMgZjU3MTg0NGJlZjVjOWE4ZTgwNzcwZGIzNGFhNjYyNjZkNDg1MzkzYiByZWxlYXNlMzAtbWFpbnQKKzY4NTg0IGEzNDk0YTViMDQ5NTY0NmNlYzk3YjUxNjk1Y2VkYzFlM2NmMmM0YWIgbGVnYWN5LXRydW5rCis2ODU4NSAwMmFiMTYxNDIzYTU4NmQyNGQwZjBkNjM2ZGIzOGZmY2MxMmNkOTAyIHB5M2sKKzY4NTg2IDQxM2NjYTNlYmU4MmUwMjE3ZWIyOTViOGJmYmNkNTM3MzU2MjdkYjAgcHkzaworNjg1ODcgMDIyOTA1NWM4YmUwNmYxMDFkM2RkYTczYTA4ZTdiZGIwZjlhYmU2NSBweTNrCis2ODU4OCAwOTQzMzQ0YTUyNjFiYzc2MDgzN2JmYjg2ZTJiYTZlYmYxNThmNWEzIHJlbGVhc2UzMC1tYWludAorNjg1ODkgMDhmM2ZlNjkxNTFhYzZkMDQ0OTM2ODEyYzdiNTcwZDQ4ZGU5OWU0ZSBsZWdhY3ktdHJ1bmsKKzY4NTkwIGZhYjUwMTI3N2JjMmMzYzMyOWMwYzY0ZjMyYzg3NWIwNmEyNTg0OGYgcHkzaworNjg1OTEgZGRhMzEwN2Y2YmM3YTdiYjYwMDAxNDYzODBiMjBhMTQyZDNiMjM0MyBweTNrCis2ODU5MiBhODU4YjYxZGIzMjRkN2VkM2M2ZWY0OWI3MThkN2RjMzc5MjhkYTgwIGxlZ2FjeS10cnVuaworNjg1OTMgZTQ2YTA2YTI2NGIzMmRkYjRhNmViMTI2ODkyMjUyMWVjMmMzNDBhMyBweTNrCis2ODU5NCAwZmRjZTM5OWRjZGUwYTIzYzgxNzkxY2U2N2EzODFkYTFiMzM0YTAyIHJlbGVhc2UyNi1tYWludAorNjg1OTYgNjVjMTkzOGZiOWZmZjI3OGFjYzRjZTY1MmExZDU0OGFiNTE2Zjk5OCBsZWdhY3ktdHJ1bmsKKzY4NTk3IGJjZjY2NjNjNWMwNDhiYTlhMTdhYzRlYjdiM2VkMjY3MWYxMDBjNDcgbGVnYWN5LXRydW5rCis2ODU5OSAyZDQ1M2IyMjFiZWNkN2U0ZWFhZDBlZTNjMmZiYjE3ODc1ODc3ODFhIHJlbGVhc2UyNi1tYWludAorNjg2MDAgMGVmMWU2NjRhNGE0NWEyOTBkYWEyOWZiOGQ4ZWM2MTcyNTkyYjlhOSByZWxlYXNlMjYtbWFpbnQKKzY4NjAxIGUxMWM5OWUxZTZlN2VjODAxNjJjYzg4MTBmZDc4MDNmZTczOGZjNTEgcmVsZWFzZTI2LW1haW50Cis2ODYwMiAyZDVhOWM3ZTliNGUzMGI5ZGIxOTFhNjM0Yzk3OWJiZGY2NWRlMWE3IHJlbGVhc2UyNi1tYWludAorNjg2MDMgNDgzMmEwYjEyODdiN2M2Yjc5YzQ2NjM5MDViMTYzNzUxNWE5OTdjMyBsZWdhY3ktdHJ1bmsKKzY4NjA0IGQyY2MyNmJkYTZhOTM1ZTg4YTczMWYyNDY0OWYyOTZkOWZmMDQzZWMgbGVnYWN5LXRydW5rCis2ODYwNSAwNDEzMWM3MDJkMTcyNjA2NmQ0NjExYzJmNDdiN2I3YTVhMzJmZDY2IGxlZ2FjeS10cnVuaworNjg2MDYgMGUwNWUwNzhiY2VkMzMyNmFjYTk3NzA4OGRkOTM5YWRiMGIxMjc4ZSBweTNrCis2ODYwNyA4ZGY4MTk0MWRlMDVjZDU5Yjk2ODczOTAxZWY4ZGZhMmIwYjExMzBhIGxlZ2FjeS10cnVuaworNjg2MDkgY2ZmNGZjNTJjNzA4ZmQzYzAxMzAyNThmNmE0NWUxMTNiZjQxZGFkMSB0bGVlLWFzdC1vcHRpbWl6ZQorNjg2MTAgNjZiODFhY2FjYmMwNTI4M2YyZmU2MTIxYzBlZTRmOGUyNjhiNzBiOCBsZWdhY3ktdHJ1bmsKKzY4NjExIDMzNzhlYWZkMjdkZjU5YTU3MGZhYTVlYWYzMmMxNGYyMDFjNjQyZWUgbGVnYWN5LXRydW5rCis2ODYxMiBhZTVlZDE1Nzc0YjRmNTdhZDlhNzJhMmExZjFiYzc0YWM3MzA2MDU4IGxlZ2FjeS10cnVuaworNjg2MTMgZWJmZTkxN2QwZWVhMmQ3NWZiZDZkNDM4NWUzYzEyY2I5MzgwMzU5OSBsZWdhY3ktdHJ1bmsKKzY4NjE0IGQwMDg2YzE3NmU4MjRlMWQzZWIzOThhYmI4NjllZDgwMTIyNGZjNmEgcmVsZWFzZTI2LW1haW50Cis2ODYxNSBiMTdlYzRjNGE3YzM4NTAwYWViZGE5MzA3YmQ2OTZjMGIxZjIzODkzIHB5M2sKKzY4NjE2IGJiODZmMmVkMThhYWIwZTJjMjQwYjMxNWI1NGYzODI4NjZhNDIzMjkgcmVsZWFzZTMwLW1haW50Cis2ODYxOCBiZTU5YTIzYjdjMDQxNWFlYzFkODQwMzRmNmVmZDI0MmIxNTY1MWI4IGxlZ2FjeS10cnVuaworNjg2MTkgZTgzYWI5NWU5Yzg3YmRiOTM4ODI4ZTI1OTlmNzgyM2YxNzg1N2UwZCBweTNrCis2ODYyMCA0MjdlNDNkMGUwMzFjZjVjMGJjYzVlNjQzOWU0NGQwMDU4MzUxZmUyIHJlbGVhc2UzMC1tYWludAorNjg2MjEgNmRkZTBkZjNiYjRlY2I3Y2MyYWM5NWM1MGFkMmVlZWRmMTI2ZTgxZCBsZWdhY3ktdHJ1bmsKKzY4NjIyIDY1YmViZTRhMWFhM2Y5MWY1MTNlYzdjNWZiYjlkNjZmMjQ3MWJkYmQgbGVnYWN5LXRydW5rCis2ODYyMyA4ODRjZDNmMTliMjBlYzZmOTUzZjUyOTM2MjQ0YzE3MTA2ZmZkYTRkIGxlZ2FjeS10cnVuaworNjg2MjQgMjY4MGE0YmVhZWExODY5YTA0Njk3ZWEyMDFiNTBiYzJjMjM3ZjA5MSBsZWdhY3ktdHJ1bmsKKzY4NjI4IGFkYjIzNjllYjdiYmQwNjJmNDE5ZTkzMjFjMDVkYjE3MDRlNTk1YTkgbGVnYWN5LXRydW5rCis2ODYyOSAxMmE1YjY3ZDU2N2QyMjFlOWQ0NTEzODM1ZjlmYTY4ZjdiYmM5MGUxIHB5M2sKKzY4NjMwIGM2OTk1ZGFlOThhNjljODNmM2Y0ODFmNDk2MDZmYmExNzNjZDJhODUgcHkzaworNjg2MzEgYTA0YjFjNzE2N2JhZGRkZmE4MmU5Mjc2ZjIxZWI3MjczM2ZjZjY0NCByZWxlYXNlMzAtbWFpbnQKKzY4NjMzIDhiZTE1OWQ2ZmQ0MDQzY2M2ZjYxY2FkZmM2YTM0ZDFkYjExYmM5ZWIgbGVnYWN5LXRydW5rCis2ODYzOCAyY2M0MmVmZGQzZmVkZTUxY2JkZjcxOTYxNDdiMzI3ZDRiZjc2NTM4IHB5M2sKKzY4NjM5IGMxMGY2ZjExNmFmMGMxYThmZDEzNjY0NmFiMDUwM2IwNThkNTI0YWUgcmVsZWFzZTMwLW1haW50Cis2ODY0MyA3NDlhNmI4NTMzNzZiNjk1ZDY2ZGFmMjUxOWEyMzExNDk1MTdlNmQ2IHB5M2sKKzY4NjQ3IDBiMWE4ZjU2MTE3YWM3OWY4MTE5ZDEyMDgyZWQ0ZmZkMDJlMTAyZjMgcHkzaworNjg2NDggY2IyOTA0ODJhMWE3Zjk4OWQ0ZDllM2QyMmY5ODRkNGVjZGYwN2M2YiBsZWdhY3ktdHJ1bmsKKzY4NjQ5IDFlMmQ3ZjA3NTMyNmE4YWJmMzM3MGRiZWY5NDc2NzY1MDY1NjA3NjIgbGVnYWN5LXRydW5rCis2ODY1MCAxYjgxNzcyY2Q1OWQ3ODk5NzMzMTQyMzBlOGZmZTBkNWNjMTUzMTc5IHB5M2sKKzY4NjUxIGRmM2ZhNDBmZGJlZGEzYTk3OWVmMDAyZWVjYzNjNzE1MGJlYzE5NTkgcHkzaworNjg2NTIgN2JjOGUyZWVkNjkwYmMwNDcxZGExOGUwNmIwNzY5ZTNjMjA0Zjg2OSBweTNrCis2ODY1MyA1N2VkZjgzNWRlYTM2NjEzMzZiNGI0NzlkOTdkNDhmZWYyZGFjYzg2IHB5M2sKKzY4NjYxIGRjMzFiZTUwYzQwNTM0YzQ4YTAyNzdmMzIzZDhjOTcyMmRiOTE3ZDUgbGVnYWN5LXRydW5rCis2ODY2MiAxYWFkN2QyZTg5NDU5NDg1ODM5NWViOTZmOWY3MTI3Y2U1OWVkMWVjIHB5M2sKKzY4NjYzIDQ4NmUyNTc5Yzk3OGI5ZDI4MDk0YjY3Nzk5ZWJmMzNjZjE0OGJiNzYgcmVsZWFzZTI2LW1haW50Cis2ODY2NCA4ZGZlM2M0YWJkNWIxMTY2MGUwNTZmOTBiNjdjMjdmY2JhMjg1ZDczIHJlbGVhc2UzMC1tYWludAorNjg2NjUgMjdiYTgwM2JkZWE5MDU3MWJlZjFiN2IzYTBiOGM0NzJkZjhjZGJjNyBsZWdhY3ktdHJ1bmsKKzY4NjY2IGFmMDJiNmU0MjE0MmIzNDZhMjA2OTYyMTFjOTFiNWU4NjJjZTY4N2UgcmVsZWFzZTMwLW1haW50Cis2ODY2NyBlMTU4YzcwNTExZmVhZGI5ZmU1NTM3YTdmZGY3YTQzM2UyMDk3NWYzIGxlZ2FjeS10cnVuaworNjg2NjkgZTU2YzVmM2I2ZTE4ZmE2OTYxOGIzMTEyMjczYThlYzI0MjNlZDg5ZiBweTNrCis2ODY3MiA0M2UwYjFlZTFjMWI5MjdkZmZkNzAyNzg4NzRmOTEyZmFlZTk3YmNjIHJlbGVhc2UzMC1tYWludAorNjg2NzUgYTYwYjg2YTczZTIwNDI2YmQyODBmZmJkYWU3MmIwOTdhYjU3MDY3ZSBweTNrCis2ODY3NiAzNWJmOGY3YThlZGNjMmQ0OTFjZWVlNThkYjgxYmVkNDgyMGRhZDlkIGxlZ2FjeS10cnVuaworNjg2NzcgZGIyMWQxMjFiYTUzZjVkMzMyYjg2MzVjMzY2MDc3ODBkNmRhNzE2MSBweTNrCis2ODY3OCBiYjljNjUyNGZkY2E0NTkxOTE1YjFkOTdjYTgzZjZjNDU4MTBjMDk2IGxlZ2FjeS10cnVuaworNjg2NzkgNTYyMDUyYTAzNDc2Zjk3N2IyNzYwODU1NDg0OWRkNDJhZTU5M2M2MiBpby1jCis2ODY4MCBhMDI5YzU3OTBlNDFmYzJjN2MwYjExMDQ3MmVhYzU3ZDNhNDY5ZDBkIGlvLWMKKzY4NjgxIGQ3MjIwZmViN2QwYjg4MGI1NDFiNDRlY2Y4YWM2MjQ5ZjU5Y2Q1ZGEgcmVsZWFzZTMwLW1haW50Cis2ODY4MiBmMzk2OWY0ZjQ5ZTM2N2E3NGZiZTJkODZmMTAzZjUyMzE2MDc5YzY1IGlvLWMKKzY4NjgzIGIzYzE5YjY3NmY1ODY4M2JmNDQyMjhkYmFhODBlOTQyOGY1ZWU1OWQgaW8tYworNjg2ODQgNjI2ODI0ODcyMGQ2NjRjYTFkNjQ0Nzg5ZGY2ZmY0ZDQ1ZDE5MTU5ZSBpby1jCis2ODY4NSAzYzU1NTFhOTRjN2M5OTg4YTkyYjUzNGM4NTc2NzViYWQ3M2VlN2ZlIGlvLWMKKzY4Njg2IGQ5NmY1M2Y2NzdkYmVkMGM3ZTBmYTE0ZTlkZDY3NDlmYTVhZDEwMzkgcHkzaworNjg2ODcgOGFiNzBlYzJhZjViYzMwOGFkNzZkY2Y5YjVhZDA0YTNlM2U4MTNhYSBpby1jCis2ODY4OCAwZGRjMjFkZjk3OTliOWM2M2FhZDNkNGM1ZTQ3ZGE1YThkZDNiZjVmIGlvLWMKKzY4Njg5IGFlZDBjNzk4MDllNDlmMGZiYzdlZmQ5Y2YzMWEwZDNlODk1YTgyYjYgaW8tYworNjg2OTAgNzUwMDlkNDg2M2M5ZDM0MzQ1YzcxNzQxOTIxNzY1MWNjZmFhMWEwOCBweTNrCis2ODY5MSAyOWVkZjI2YjljMjNlZmRkZjBkM2YwYTdhZTEwZmI0M2Q3MjllNWFjIHB5M2sKKzY4NjkyIDk5ZjNjMzRkNzMyOGUyYzFhYTJkM2U0ZTJjN2VjOGRiOWRkZWEwMmMgcmVsZWFzZTMwLW1haW50Cis2ODY5MyA4ZWExN2YyN2RhNjdkMjQxYzBkYTRmYjJkYWQ0ZGEwOGE1NzEwM2UxIGlvLWMKKzY4Njk1IDUwNzg3NGY2NTVhY2JhNDI3ZjE0YWM5MWMyMDVhYzA4MWYyYTg1YjAgcHkzaworNjg2OTYgMzNjNGY0MjNhZWJmMjEyNzdjNzM3YTYxMmQyYmUwOGMzNzlmMmIyNyBweTNrCis2ODY5NyBmYTY1MWExYzM0Y2M2OGE4NjE4NmY5MTJiNDgyZDc1M2NjZmJlNTQxIHJlbGVhc2UzMC1tYWludAorNjg2OTggYWFjNTFiNzBjNzRjYjJiMGYwOGQ1NDhmNDExYjEyMzY2ZTc0OGRmNyBweTNrCis2ODY5OSBlMzUwNDMzNWY0ODBhNzFjM2I4YWMzZWM1NTJkNzFhNGUzMGExODY4IHJlbGVhc2UzMC1tYWludAorNjg3MDAgNDI4ODU0NmE0MjM4YzJlNDhkZGJkYjRkZjM1ZWYzMzJiYjZlMTFiZSBweTNrCis2ODcwMSA2ZTk3ZDcxZDYxYzI1Y2IxYjM5OGU1YmJmNTVjZDNiMWE3NDgyNDRkIHB5M2sKKzY4NzAyIDFjZTFiZmJlNzA1MWRlMTdjZGNjNzI2MjAwOTJjNmI1NTZmZWE1NTcgcHkzaworNjg3MDMgOWM3ZjE5OGY5YjI1MjBmOTA1NDRlZmJmZjI0YjY2MzZiN2FjNWRjMyByZWxlYXNlMzAtbWFpbnQKKzY4NzA0IDIwYmQxMTc4ZmM2NDJkNjk1NjBiNDU3YWMwMjk2YjdjZTZiNzFhMWYgaW8tYworNjg3MDUgYjljYjM2NDY1ZGQyYTA3ZDFmMDk3ZDdjMzc3MzRiZjI3YTNiNjE4MSBsZWdhY3ktdHJ1bmsKKzY4NzA2IDEwYzM4YmM2NzM3ZGViNGUyZGI4NDRjOTNmODg5MTY1ZmQwN2Q2ZDMgbGVnYWN5LXRydW5rCis2ODcwNyBlNTU0YjhiYmRlZWFhOTIyZDAwNGQzNDExNWNmM2VkN2JlZjU3YTg4IHB5M2sKKzY4NzA4IGI0YmFhNzI1Mjg0YTZkMjhiOWU0YzAwZTBkMjA3YTViMGY0YmRlZDkgbGVnYWN5LXRydW5rCis2ODcwOSAwOTk2MjcxZTIxZDhjNGM5M2UyMDg0MDM4OWMzOGIxZWVmNzYzYzRkIHB5M2sKKzY4NzEwIDllMmFkNDQwMTk2YmYyNDQwYTA0N2NkM2RlYWY5MWI4YjkyNDQ4Y2YgcmVsZWFzZTMwLW1haW50Cis2ODcxMSBlOTFmNjRmNWQ5NTU4MjFhOGYxOTVmMWE1MGM1NDcwMWVkZTdlY2Q1IHJlbGVhc2UyNi1tYWludAorNjg3MTIgYzg2MzQ3YWM2NjYzNTIyMWJjNTgyNmYxYmNlMjg5NmQ1MjMxNzE5OSBweTNrCis2ODcxNiA0MDhjOGRjZjAyNDhhMTY5MTdlZDg1YmY2NjEwNWM4MjBiN2MxNjAyIHB5M2sKKzY4NzE3IDQ0NDI0OTU3ZWFkZjY3MDUzNzQyYmRjZGY2ODJmN2Q3YTEzZmY1ZDkgcHkzaworNjg3MTggMTg5ZDUwODMwMjk3MDU1MjViYjRmOWI4ZWZlYzIzMDczMDMwOGExZiBsZWdhY3ktdHJ1bmsKKzY4NzE5IDhmMzJiYTUyYjIwZDg5MzU5OGJiZGNiODQwOTBlOGNkMDg3YzgzNmMgcHkzaworNjg3MjAgZDJkYzZkMDQzYzIxZGE5NzA4YTA5NzdlY2IzY2U3MzgwMWU0YmM4ZiBsZWdhY3ktdHJ1bmsKKzY4NzIxIGJiZGEzMWRkOTc5NzViZGQzNWMzMTRjODFjYjQzOGEyMzdjYmZmMDMgbGVnYWN5LXRydW5rCis2ODcyMiA5YmJiOWFjMDYxYzBkNDhmZDQ4OWExM2IzYzc4Y2E2NjY1YTM3MWY1IGxlZ2FjeS10cnVuaworNjg3MjMgODMyNWViMDQxOTIxMGMyYjY3N2UwN2M2ZDk5ZDVmMWRjOWQ3MzMzZSByZWxlYXNlMzAtbWFpbnQKKzY4NzI0IGY2YWVmYmJkNzA0NWU5ZGNiYjg1NDQ2OTJkYmZhMTQ3ODg1MjU1ZWYgbGVnYWN5LXRydW5rCis2ODcyNSAxMWNiZjM5YzMxNmY3Zjc0NWIyNmEwMGI2ZWM5MzAwZjYzZGJhYzVlIGxlZ2FjeS10cnVuaworNjg3MjYgZDcxNTgzODYwNjM0NjcwYjgzYzMzMzM4ZjY1MmUyY2FjYTBjNzBhZCBsZWdhY3ktdHJ1bmsKKzY4NzI3IGU3ZDZlNWY1MTllZjI1ODExYjlhMDg2ZTJjMWE3YzExMTU3ODQ4Y2UgbGVnYWN5LXRydW5rCis2ODcyOCA4ZGM0NzliNjNlMDM2NzNiMjg0MjY1ZDA2YzI3NzMzMzQ1YTcxNTlhIHB5M2sKKzY4NzI5IGE4MTk5MjdjMmExMzk4YzhkZjEwMDM3ZjkzNWRlNjk3ZDYxYTk1MjkgcHkzaworNjg3MzAgZjNiYTVmOTlkYTUwZDBiMzYzZDc5YTBiN2ZlMjUxYWY5ODRmNzBkNSBweTNrCis2ODczMSBiOTJlNjk1ZDU2MWU1YTgxMDc4MzhhMWZjY2YyMmI5ODEzOTEwMjczIHJlbGVhc2UzMC1tYWludAorNjg3MzIgNzU4Nzc5OWNhZTFjYjBkMzE4NTEwYTk4OGU5Mzk5ZTcxYTliNzYzYiBweTNrCis2ODczMyA3ZTVjZmJhNTRlMzQ4MDFjZmZmMWZjZDY2N2JlY2RmNjJjODA0ZDAyIHJlbGVhc2UzMC1tYWludAorNjg3MzQgNmE3NmFiZDYxNmRlZGIxNjQxOTkwMGU5NmNjNTFjZTk2OTQzNDU2NyByZWxlYXNlMjYtbWFpbnQKKzY4NzM1IGFlM2ExMDYzMDZhODA4YjM4NGViYzYyNjIzOTgyMjBjOTcwZjYxM2MgcmVsZWFzZTMwLW1haW50Cis2ODczNiA1MGY1YzI5ZmNlMjZkMzFjYjg0ZDZiNDdhYWE2YTRmNWNmNGExN2IzIHB5M2sKKzY4NzM3IGMxYzQ0YTBhYjQzOGU2YWIyNzg3Nzk0ZTc4YmE0ZjFlOTk4Yzk3OWEgbGVnYWN5LXRydW5rCis2ODczOCBjNTEzYzY5MTE4ZGNhNjE0NDIxZjE5M2JjY2ExMWE3OWE4MDhmODA5IHJlbGVhc2UzMC1tYWludAorNjg3MzkgNWI0OGQ2MDAwOTE2NzYyNjgxNmU5NTk0ZDRjNTYzMTVkYjUxN2ZjZCBsZWdhY3ktdHJ1bmsKKzY4NzQwIDllY2JkOWExMDFkODM3ZDE1NzMxNDI2ZmM4YjExZDg4OTdkYjljMDggcHkzaworNjg3NDEgNDlkOTcwOGQ3ZWEzOWFlYTE2Njc3MGU2ZGMzM2RhMWUzYWViYTg0MyBpby1jCis2ODc0MiBjOWU1YzJjYTYyYzNlMmMzZTljZjg0MTA1NGE0MDQzNDgyNDc3Y2I5IGlvLWMKKzY4NzQzIDlmNjI3NGZkN2E5ZGY3YzM3YTgyMGJiZjI2YjRlMjUwYWVkMTUyYjMgaW8tYworNjg3NDQgZTE0ZWM2ZDE4YWI4MWY1MjNlYWYzZDM1YWZmOThlNjI4YzAzMmFiYyBweTNrCis2ODc0NSAxZWMzNWJlZWQyZDAxNGRjZjYxMWFjYzAwNjJjNzQ4NWU1ODdhMTRjIGlvLWMKKzY4NzQ2IDlmNDVmYTI3YjgzOGFlMGI2OWY3MDI1ODI0MjUyNWFhNzQ5NGQ5MmYgcHkzaworNjg3NDcgYmFkMzZmNDkyMDgxZTdkZDFiMzkzZGRlYmJlM2M2YWRiMDczZmNkYiBpby1jCis2ODc0OCA1ODFkODYwMmYzZjc0MmY0MDMxMjgzNjA1ODcwYWU4MjJiZTk3M2EyIHJlbGVhc2UzMC1tYWludAorNjg3NDkgMWIyMjllN2Q4MThiZDUyNzQ3OTQwMTU3Y2YwNzFjMzZkZThiOTg3MSBweTNrCis2ODc1MCAwNzg4ZDQ1YmY3YTQ3ZTk0NzBkMjdiYTFjNTAzZWJjOWViYjc2MGQ1IGxlZ2FjeS10cnVuaworNjg3NTEgZmI3ZjIzMWNjZDNlYzc3NzFjZWYxMWVkZGRjZGQzZDRmMmE0YzQ5YSBweTNrCis2ODc1MiA1OWRlMDY1NDcyMzJhNDkyOGMzYmRiZjU2ODE1NzBkMGIxNzFlMDc3IGlvLWMKKzY4NzUzIDU5ZWYzMTViZjAwZWZjZmE1MjRkNDI1ZTA4YjAwZjNkNzA0OGFmNDEgaW8tYworNjg3NTQgNjU4MThjZmQ0ODI2NWZkMjIxM2QxMWVjOTc3Mzc3NDJiZWQ0MWRjZSBpby1jCis2ODc1NSBhOTkxYmU2YTExMWQ4Njg0ZmZlY2Q5YmM0ZjUyNjdiMDg4YzFmZDM3IGxlZ2FjeS10cnVuaworNjg3NTYgMWMxNmVkYTMxMDllNTQ1NGY0M2MwNDRiNGUzOTUzZjE4M2I1M2MwZiBpby1jCis2ODc1NyAxZmFlZDdjZWQyNDI0NThlN2Y2ZDVhYWI3N2I3YzFkOWJlMzk2NzNjIGlvLWMKKzY4NzU4IDY1ZWY0NjI5MjFmNzM5MjZkYjczOWZmY2ZlMWVkNTBlNDM3OWY1NWIgaW8tYworNjg3NTkgZTEwOGM5ODA2Y2MzZjIxMDJlZjM4OGE1ZjRlNmJmNThmMzhiY2E4OSByZWxlYXNlMzAtbWFpbnQKKzY4NzYwIGE2NjExNjE1Yzc2YmFmZjVjOTEwYWJiMGViYzdhZDM2MTlkNTgyMmIgbGVnYWN5LXRydW5rCis2ODc2MSA2MTE0NjFhOGM3ODUxYmQwNTUwYjI4OGNlOWFiMDgzNWY3NDgzOTVkIHB5M2sKKzY4NzYyIDFjMTdkNWNiMTVkZDU5OGFjNmNhNDlhOWM0ZDNmY2FhZjMxZTAxYWEgcHkzaworNjg3NjMgMzkxODdiM2UxMmUwNTEyOWIzNzhmNTEyYjQyMjQwZTg1NDQyYjQxZCBsZWdhY3ktdHJ1bmsKKzY4NzY0IDA2MWM1MTI5NWQzMjZkZGE0NWVkOTA3YjI0Y2FkZTA2Y2U1Y2IwNDMgbGVnYWN5LXRydW5rCis2ODc2NSAxODQ0MWI4ZjcwMDBjMDUxZDkzYzAzOWYyNGM3NWRhNzIxMTA3MTcxIHJlbGVhc2UyNi1tYWludAorNjg3NjYgZTdjMTAwYWY4MWVjMjhiZWZhNTMyNDQ3ODBiYWNkZGI3N2U3NjE3NSBsZWdhY3ktdHJ1bmsKKzY4NzY3IDM1MmYyOWRiNWViZjYwYjg3ODA2OGQ2ZDg5MWJmY2MyM2I4YjFhZDYgcHkzaworNjg3NjggOTVlOGQ4NTU5NGJjOTJkMGY0ODZjYWQ2MDJkMDQxMmM3YjE0NTQ3ZSBsZWdhY3ktdHJ1bmsKKzY4NzY5IGZhZTk2YmM5MTk2ODQ3OTVlOWExMGMxZWNiMDVhNzk1M2Q4NzExMjAgcHkzaworNjg3NzAgYmEzNGRlYTVkMThjM2YzYTBjZTYyOWM3ZmRiYmRlZDFkNWI1ODhkMCBweTNrCis2ODc3MSA0ODhlOGU2ZjFjZGM2MzNkMjExYmFmMGNiYjM5MWY2NzA3MDg1NTY1IHJlbGVhc2UzMC1tYWludAorNjg3NzIgNmVkZDI5YTM0MzU0OGYyMmQxNmY5MjhiZDdkMDY5NWEyMzM4ZGFmZCBsZWdhY3ktdHJ1bmsKKzY4NzczIDdjZmI1OWUzOTc4MjYwOTA0MmE1Mjg1Nzc0N2I3YzY4OTEwZTA0MmMgbGVnYWN5LXRydW5rCis2ODc3NCBhZWIyYmRlMjAzYWFjZDlmMDM5ZWNiNzNmMzM4NGFmYTJmMWY3NjM3IHJlbGVhc2UyNi1tYWludAorNjg3NzYgYWFmOTZlZmM2MWU1NDJkYjMyNmEyZjY2YmQ2YmRjODIwZmNkYjliZCBsZWdhY3ktdHJ1bmsKKzY4Nzc3IDAxNWVhN2IyMTk1MGEzODNjOWEzNjA3YTE4ZTE1MTM0NzE1MDZmZGMgbGVnYWN5LXRydW5rCis2ODc3OCBhMmY1ODIwNGU2ODBiODdhZTM0ZjkyOGIxYTQwZTMwMzAyMDQ5YTVjIHB5M2sKKzY4Nzc5IGZhMTJjOGU1YWU4YWNiYTg2NmVlNzY1OGQxMmJmN2U2NWYwOTQ4ZjQgbGVnYWN5LXRydW5rCis2ODc4MCA3NWJjZWMwMTFlZWY2ZDJkYTVhNjZiNjk1NDI0YmIzYjI3YzQxOWMyIHB5M2sKKzY4NzgxIDYxMWQ5NTcwYjRjYWIyNGY2ZTFkOTk1YjJlNjAwNTMyMmNiMGEzYjIgcmVsZWFzZTMwLW1haW50Cis2ODc4MiAxOWZhNmY5YWI1YjUwMDczYWIzMmRmNmYzNTJiNmFkNjEyYWE2ZDE1IHB5M2sKKzY4NzgzIGNhYTc5ZDIzODkxNzJhZWFmNDg5MDM0YmYwNzY0ODEyYTBkNDBjMTUgcmVsZWFzZTI2LW1haW50Cis2ODc4NCBhZjM2YmExMjNjMWQyYWNmYTI0NzQ4YjUxOTk0NjdiYmMwNmU0ZDhhIHJlbGVhc2UzMC1tYWludAorNjg3ODUgYzNhMGVlNTFkODY3ODEzMGM1MDkwNjRjZGZlZTdjMzAxMGM4M2YxMCBsZWdhY3ktdHJ1bmsKKzY4Nzg2IDJmNTRlZWZkMDA3M2ExN2EzNmQ5YzQ3ODE3MTMzNDBmNThkZDc5NDEgcHkzaworNjg3ODcgNjA2N2ExZTYyODlhMTM1N2M3Zjk5MTNiZGViY2ExZTNmOGVkY2ZkZSBsZWdhY3ktdHJ1bmsKKzY4Nzg4IDUzN2U4ZDcyODQyNDY5NDljNTlkOGEwMTc0OGU3NjU1OTA4MGZjMDMgcHkzaworNjg3ODkgMTkxYjdiM2RkZjRmYTRjZGJhNWEzMzFiN2NkM2E1MWE2MDA4ZGNjMCBsZWdhY3ktdHJ1bmsKKzY4NzkwIDM4MDIxYjhlMTRhYWIxMjc2ZjA3MmMxMGVkOWMyMjcwN2FjOTFiODkgcHkzaworNjg3OTEgYTYzZjdjZjM3OTNhYmZlMGFjNjdhMzMwYjc1ZjYwYjM4OTcwN2NkNyBweTNrCis2ODc5MiAzOTA2NjhlMjA2MjhlNDBjODMyZDRjMjVmYWZiMzYwNmE0NTkyYWE2IGxlZ2FjeS10cnVuaworNjg3OTMgOGQ2NmI4MmExMGEzMDg4YzYwYWRmODQ2NDA5ZmE3YWY2MzU2NWVlZSBsZWdhY3ktdHJ1bmsKKzY4Nzk0IDZhNmI1OTA5MTJmZTZmMzIyNzY3MzlhMTU4MjRjMTcwY2IyMDViYzYgcHkzaworNjg3OTUgNWRkODc5ODY3Y2RlMjAyNjBmMzkwYmJlOTgzMmUzMWRjNjIzOGJmZiBweTNrCis2ODc5NiA1YzNiZjMxZDA0ZmQ2YThkNzE5NjkzZjFmODJmZjc1YjI2NWJhNmJjIHJlbGVhc2UzMC1tYWludAorNjg3OTcgZmUyODcxYWFiOWQ5ODg0OGQzZTIwNjk5OTRkMzFhYjBhODIxZDJhNiBsZWdhY3ktdHJ1bmsKKzY4Nzk4IDIzNDRjZWY3ZmY0NDQ3NDU0ZDk2MWE4NTQ4YmMxN2I2ODVkY2FlMDIgcHkzaworNjg3OTkgNWEwNDFkOWE1MWNkNjZmYmVjNTIzNDUzNWJjOTQ1MWRkMWFhZDgyOCBweTNrCis2ODgwMCBjYzlkZTE5N2RmN2UxMTkxZDE2ZjYxZDM5YTk4ODA5MTY2NGM1YjIyIHJlbGVhc2UzMC1tYWludAorNjg4MDEgY2MwNzhhNTc1ZWVkMzA3Y2Q4OTAzM2M3MzExOWI2ZDczMmJjMWQzYyBsZWdhY3ktdHJ1bmsKKzY4ODAyIDFhNjRkMmY1NmI3OThmZjYwMzk2YTYxMjNkYWEyODAyODUyMjkzNTAgcHkzaworNjg4MDMgYTgzMjY3YWQyZmQyNzIwNTRjMWFmZDRmOWYwYzJjZmRiY2UxMGFjMyBsZWdhY3ktdHJ1bmsKKzY4ODA0IGZiNzFjMTU2MjBlZTZmOTk5ZDk1YjMyYzA4ZDY4MzQ5ODY1NjgwOTMgcHkzaworNjg4MDUgZGJjMTRhY2RkZTM3ZjE4ODk3YWIxMzJiODcxYzljNjRlODRjMGU0ZiBsZWdhY3ktdHJ1bmsKKzY4ODA2IDFmMTQ4NDI0ODhmMDhmYWI4ZmNiODQ1YTI0ZGQ3YTFmMTY3N2M0OWQgcHkzaworNjg4MDcgNjFmMWNiMTZlN2I0MmU3OTZlZmEzMGNjMzA5NjY3YzI0YmM1NmNkOCBsZWdhY3ktdHJ1bmsKKzY4ODA4IDM2ZTI2NmIyZTQ2MDk4ZWJjMzFkMGM4NDkyOGI2MDYxMWQ2MGZmZDggcHkzaworNjg4MDkgYzdiYjMzMjA3NDk1YThjYjFjNzJiZmM3YmJhYjEwMDQwNWEzY2NkNiBweTNrCis2ODgxMCBkZDU2MjQ0MzliZTUwOGZkNDQyZWE0NDU2NGU3NmU4YzBjMTRjZjZlIHB5M2sKKzY4ODExIDczMzM4OGFjZjBiNjVjYjc5YmZjYTY0MmM5M2FjMjZiNzJkYzdjYjIgbGVnYWN5LXRydW5rCis2ODgxMiBmMTM1Mjc0ODRiYTNhYjQ0ZjZhMWMzNDUyMGUyNmYxZGMxZTM4M2MzIGlvLWMKKzY4ODEzIDQyNGE1MDliZWJmZWEyMDMwZjhlNTZiMGMzOTJkNjA4OTJhMzVkMTIgbGVnYWN5LXRydW5rCis2ODgxNCBkMWRlMDc3NDQ3YWE0ZjM0YTMxY2RjZjAwMTkzNDE3NjkyOTNiYTJmIHB5M2sKKzY4ODE1IDMyYTIyZmExM2I5OWM3OTYwMzBlNTgyMTBlZmExNDNkNDQzMDY5ZWQgcHkzaworNjg4MTYgYjIwZTIxOGQ2ZjAwZjc4OGJjYTRkNWE4NTRiNmY0MzlkZjY1MDYwMiBpby1jCis2ODgxNyA1YTg4MGJkYTZhNmI3ODVmNDU1MjRkYTdiMDY3ZjM0MWE1ZjgyZDFjIGlvLWMKKzY4ODE4IGE1N2QxMGQ2YmM4OTMxZjAwMDIwNjE3NmQ1MDVhYTBmMmNhMTllYTUgcmVsZWFzZTMwLW1haW50Cis2ODgxOSBhYjBiMzg1YWVmYzNlOWI2MDQxMjJjM2M1ZDk4MTg2ODNjMWJiZjA1IHB5M2sKKzY4ODIwIDlmMjk0ZWIzODE5MGU2NDM0ZDU1MzU1MTI5NDRlYzRhZDJkNjUwMzYgaW8tYworNjg4MjEgYzc3NTIwN2NlZGFkNzk0MDU2MDk1NjQ5YTZmMGI3MjAwNGMxYzRlNiBpby1jCis2ODgyMiA1MzkwMWU2NjkxYzM4MjQ4ZjExZDRjYjVjZTk5MmE1ZGQ0ZTMyZWFkIGlvLWMKKzY4ODIzIDBlNzlkNWEzNzIzMzgyMDM2M2Y2YWI5MzNmNzc0MWM3ZThjNGUxNTMgaW8tYworNjg4MjQgYzk0Zjk4YzU3NTNmOTcwYjVmMTEyNmU4NjNjODhiMjQwMzY0ZTFjYyBpby1jCis2ODgyNSA3ZWQ5YmVlZDg3MTU1MzMxOTI1Y2EwOWFmNzZmMzM1YWMwOTJlYzM3IGlvLWMKKzY4ODI2IDc2NmRlNDk2YTQyZDdmMGQxYTc0MmE4Yjg4NDYwOWY3ZTRhMTRkNGQgbGVnYWN5LXRydW5rCis2ODgyNyA3YzMwYWIwMTM0YTFmZTYzNDZmYWJmYTFjNzBmN2NkMzc4M2YxYmFkIHJlbGVhc2UyNi1tYWludAorNjg4MjggMmIzZWNkZTE3NmZlNTAxNzkzYzU1MDUwMjgwNWFkNzQzNjk1OGVlYSBpby1jCis2ODgyOSAyNTJmODI0YmI4MGIzYWMyMTcwOWZjOWQ3NWU5NTlmZGIwY2Q2NTExIGxlZ2FjeS10cnVuaworNjg4MzAgY2M1YjQ2MGZmMWFiMTI0ZjIyYzNlMmQ4YWU2OGIzMTUxNDJlNDlmMiByZWxlYXNlMjYtbWFpbnQKKzY4ODMxIDEyZTljNWY3MjY1OTA0OWViZjAzMjYwMmUzMDQ4Yzk5YTIyYjFkMTUgbGVnYWN5LXRydW5rCis2ODgzMiAzNWZiNGEyNjBhMjUzZDhmNzUwOGZhNjA2YjMzODJiN2QzOTNiNTI1IHB5M2sKKzY4ODMzIDY2OTI4ZGFkODFjYTE0OWI1MTBmMTNmNGNjYzU4NjBiMmYwMWQ1ZWYgcHkzaworNjg4MzQgNzEwNmZmNTZlOWQ4YmRmNjk2ZDZhMThkZDg4OGNmODE3MzhjMTM2ZCByZWxlYXNlMzAtbWFpbnQKKzY4ODM1IGI4OGNjN2UyYmZiNGMzMTNkNTBiYmFiZTI5NDBhMDhiNzRlNjA4N2QgbGVnYWN5LXRydW5rCis2ODgzNiAwYWQ4YzU2YTdhNzBkMGNiMDkxNDA1ZmJkMmYzNTg2YWE0YTdhYjI0IHB5M2sKKzY4ODM3IDc2MmY5ZjE4OWUyZTg2Mjc4ODQ1YjUxMmYyYTNlYTJkNGMxODIwNWMgcmVsZWFzZTI2LW1haW50Cis2ODgzOCBmMGM5NTUzNzhjYTNjNTFlZmZjYWFlNTMxMDc3NTUyOTgzZDM3MjIzIHJlbGVhc2UzMC1tYWludAorNjg4MzkgZDI3NDA2MjgxNmZmNjU4YzhkMmEzNDc2MzBkZjJjNGU3M2VmNGYxOCBsZWdhY3ktdHJ1bmsKKzY4ODQwIDBlYzM1NDcwM2QwMWNhYTRiZmQ4MTJmY2Y0NDgzMTQ0NGFmMWRhYzcgbGVnYWN5LXRydW5rCis2ODg0MSBhOTlkZWNlZGY3MmQyMjBhNTYwZjJkODI3NDFiZTA1NWNhYWFlNDdhIHB5M2sKKzY4ODQyIDg3NjNjZjJmN2UwYzU1ZmZkODAxNTMyMmY4YzIyMjE1MzI2NTQ2YzAgbGVnYWN5LXRydW5rCis2ODg0MyA4YmYyMDRhZjk2OTEwZTY0Yjg3ZTllMThjZmU2NTZiZDgxMTFmZTlkIGxlZ2FjeS10cnVuaworNjg4NDQgNzMwMGQ2ZmJkOTE0ZGJkNzRkYWRkNTgwZTY2ZjMwMTY0MTczZGM0MyBweTNrCis2ODg0NSBjYmU1NDY1MWUzYjk4NTM3ODRlOWVhMzRmNGNkNDY0MDJmZTBlNThlIGxlZ2FjeS10cnVuaworNjg4NDYgM2Y2MWY4MGU5MTMwZDE3NTM4YTZmMmE3Y2EyMzBiNjY4YWNjNDgxZCBweTNrCis2ODg0NyA0MDkyYTQwMmVkM2U3NTVhMjA0OTk3MmNiNDcyZTRmODk4YzZjMThlIHB5M2sKKzY4ODQ4IGVjNzBiMzkzZTE3M2Y4NGRkMGU5ZTE0ODY3YmViN2Q3OWI2MzIzZTQgcHkzaworNjg4NTAgM2M1YThhMzQ3OTkwN2YwZDM4MzAwNDdhOGZmZmUyM2EwNTk4ZWExZiBsZWdhY3ktdHJ1bmsKKzY4ODUxIDA1M2YzZTgyNjYwMTZlYzlhMGY0MmY3MzJlYTJkMmJiOTk2NzVjNzcgcHkzaworNjg4NTMgM2YxM2M2NWFlYzA1NmIzZmU1NDY2MTA0MGQ0NDM2NDEzNTBkZWM3YiBsZWdhY3ktdHJ1bmsKKzY4ODU0IGY1ZDdkMDYwOTExYWUxOTM4MzM0MmM2NThiZTc1MDQ5NTJkN2UyOGUgcHkzaworNjg4NTUgYjQwZTRiNTI5ZjY5YmFkODk5ZGZiZjQ5MDEwYTdiYjU5NTI4MjI5ZSBweTNrCis2ODg1NiBlYzZmMjk2MDhiZjA5ZmQ0NDlkZTZlYmUxNDQ3MzM4YjFkMDFhODVmIHJlbGVhc2UzMC1tYWludAorNjg4NTcgOGFlZDc4OGJmY2M4M2M3NTFkYmFmY2Q2NDI3MTBlOGFiMzZmM2JhYyBweTNrCis2ODg1OCAxZjBhM2FjOGJmODVkZTQ0MDRmZjRkYmI4MDc4MjE4MDhjYzYzZjcxIHJlbGVhc2UzMC1tYWludAorNjg4NTkgZGUyZGMwOWUxZjdlNjYxMWRmNDJhODYzZmU1ODQ5YzM0MmFkY2E2YyBsZWdhY3ktdHJ1bmsKKzY4ODYwIDI3MzVmYWM2YjBkNGQzZmYyZTAwZjJlMmZjZTIxN2EyZjE5YWZkYmQgcHkzaworNjg4NjEgZTRjODZkYzE4MWU5YTIwNDRlMDQ1MGY2MjQwNzNlODM2OTM4ZTk0MyBweTNrCis2ODg2MiBiMGI2MjFmMmFmNWRkZmM1MmZhZDM5ZWIwMGI4YjQyMDk3Y2VhN2I5IGxlZ2FjeS10cnVuaworNjg4NjMgNzJiY2YwYTBjYjMxZDQxYTM3YjNhOTc0ZTQwZWUzZjhkNTA0ZGQ4OSBweTNrCis2ODg2NCAwOTQwYTRmMjUwNmU3NzgyNDYwNjBjYjgzZGZiYzk0MDQ3YWQ0OWY5IHB5M2sKKzY4ODY1IGRkNjM4YjdlNzQ3ZTNmYTU1ZTZhNWE2YmVhNWE3YWU4OGU0YWU3MTYgcHkzaworNjg4NjYgMDljMTcxMjdhNGM5OTIwMWZjNTdiYmZkZWNmYmE0ODM2Yzc4ZjE1OSBweTNrCis2ODg2NyBjOTU0NDUwZjdhYmZjYzI1MWNkOTAyYjJhNGY0NDQzYzIzOWFmOGMwIHB5M2sKKzY4ODY4IDA0Yzk1ZmMzNzY1ZmVkN2M1OGE4ZjQzMjk3NTU1OTY3M2NjYjE3YzYgcHkzaworNjg4NjkgYWNlNzViMDZhNmY3NGRjNTk2Y2E4ZjRhZTQ2M2EyZGU5MzlmYzBmYyBweTNrCis2ODg3MCBhZWFhMjM3ZWJhZDdmNzk1YjcyY2IwYzg4OWZmOWY3ZTkyZmE1MGE5IHB5M2sKKzY4ODcyIDNiZjc3ZWExZGIzZTIzZGViOTQzMDMwNzE0YzY5NGVjNTkxZjU2ZGMgcHkzaworNjg4NzMgYTgyM2M5ZjNhNDUyYmMyMTkxODRmZDZiOWI1MGFiM2Y0ZTUyYmY4ZCBweTNrCis2ODg3NCBiMGQ1OTNkNDEyMTIwYzdhZjE1ODk1NWJmZTIwZGJiNzJmMDBlNmM1IGxlZ2FjeS10cnVuaworNjg4NzUgODU3ZDY2MzQxZmY5NDA4MjkzOGYxZDk4YmYyZDgzZmQzMmMxZjMwNyBweTNrCis2ODg3NiAwOGU5YmVkNmExZjg1ZjllNTY0NjVkZDg2NmEzYjE2MmYyMzcwOTZiIGlvLWMKKzY4ODc3IDFhZjRmYTE4YmNjMjA2NWFlNDFjOGYzZDcwNWM3MjE1ODZkYzcxY2EgaW8tYworNjg4NzggNTJmZjA1NzlhNDFmMTlhZjQ4YWE0NDJiMzdmZjQwYjk3ZmY2NjNhZiBweTNrCis2ODg4MSBhNGYyNWMzODBmOTZiN2YzZmYyMDY5NTI4ZGQ4ZTg0ZmUyY2MxOGQ2IGxlZ2FjeS10cnVuaworNjg4ODIgNWM3MzEyY2U1ZGJkMDYyZTg4MjA2MjUyNTEyNGFhMDM5ODI3MjE0NCBweTNrCis2ODg4MyAwNDhlYjVhODM0M2JlMDljYTc0M2FiZmM0ZmMyNTdiYzk3ZDU0OTJmIHB5M2sKKzY4ODg0IGJkNzRlODY2ZjljYWY4MTdjN2VkYTA5OTlhYTZjNDExNGMyMGMzYzggbGVnYWN5LXRydW5rCis2ODg4NSBmYzM4ZjJlY2QyYWMyNzczZGY4ZjY2ZWEwNzMwMzQzMWY0Nzg1N2E3IGxlZ2FjeS10cnVuaworNjg4ODYgNmY3NjFlNTcxNGUwOTE5ZDRhMjc2N2FkOTA2YzU5MTQyYjQxNmVhNiByZWxlYXNlMjYtbWFpbnQKKzY4ODg3IGNlZjBmY2M5MTU1OWViYjVkMTYwZWM5MTkxZGNiOWU5MDI2YzFiNWQgcHkzaworNjg4ODggYzliOWE1MDQxZWY1MjFmNTZiMWRkNGQ3YzM4OTczYTQ2ZmU2NGUxYiByZWxlYXNlMzAtbWFpbnQKKzY4ODg5IDU0MDYxMWFlNjFiODZmYWRhYTMzOTQ0YmZhODJkNzcxMzMwYzhmZWIgcHkzaworNjg4OTAgNGVhYzk5NDE1MzhjNWJkZWM4ZDI5ODg1NjgyMGRmMTRiZTIzZmMyYSBsZWdhY3ktdHJ1bmsKKzY4ODkxIGRiMGZmZWVlNmU1MDcwMzY5ODVjNjJiZmQwODkyM2YyOGNhOTI0OWQgcmVsZWFzZTI2LW1haW50Cis2ODg5MiAyNTAzNGM4MzI4YzdjZjdhZDUxYTRlODEyNTExNjIwYWNiYTQxN2VmIGxlZ2FjeS10cnVuaworNjg4OTMgZjFhZjQwODA0YWRlOTNiOWIzYjVhMmQxNWMwMGIzNzEwZDAyODgzZiBsZWdhY3ktdHJ1bmsKKzY4ODk0IDUxMzJhMTNmMTY5YTM0MTRiZWY3NWNmNDUwYWVhMzNiMjkyNzJiMjQgcmVsZWFzZTI2LW1haW50Cis2ODg5NSAyN2QyZmExOTA4NGE1ODJlNDY4NjNlNjdmMGUyNzFkY2EyYzNlNTJhIHB5M2sKKzY4ODk2IDdlZTZmYTA2MDJiZTkyNzEyYjA0ZGUyZGYzZjJhYzMyZGRjM2VkN2QgcmVsZWFzZTMwLW1haW50Cis2ODg5NyBhMWE1Mjg3M2Y5ZmNmMDY1Y2I4MzhiNGVjMThmMjJkNTZmOTE1Y2QzIGxlZ2FjeS10cnVuaworNjg4OTggZmViNGEwOTJiODcxYzY3ZWNkZjRjM2ZkMDY4ODIwZDU5OWYxYzZhMyBweTNrCis2ODg5OSBhNmE2MzY5Y2ZiY2NkYWRmOGE2ZTU5NGY1ZTNkNWFhODc0ZmZkNzZkIHJlbGVhc2UyNi1tYWludAorNjg5MDAgOTlmMGIwMjY1NTE2YjI0Mzk2ZDMzNjQ2ZmQ5NWEyMTFiM2Y0MDM2ZCBweTNrCis2ODkwMSA1OWQ1ZTcwZjM0OTQyMzBkYmQwMTcxYzc1YTM2MDgzOWU2OTc3OTUzIHJlbGVhc2UzMC1tYWludAorNjg5MDIgNTc4ZGQ3OGZiNTU3MzUyZGE4OTg0MjgyNGNmOWFhMTZmMzI0NWFhNCByZWxlYXNlMzAtbWFpbnQKKzY4OTAzIDZkNTUxNzk3NWZkMjQ1NzM0YWU1ZjJmZjk5NWUzOTczOWVhMzk5OGEgbGVnYWN5LXRydW5rCis2ODkwNCA4NDNjMTc4NjhiNTJiNGY0OGVhZmU0ODU2YjhhM2E3ZTA0MjVmYWU3IHJlbGVhc2UzMC1tYWludAorNjg5MDYgODYzY2U2YzAzNjE3OWY0Yzc0ZmE5ZjcwYmNiOGU3MTg1NjViOTBhMiBsZWdhY3ktdHJ1bmsKKzY4OTA3IDAxMzk2NDg1MjZkOWE4ZmNmN2MxMzgzMDhjN2IwZTI0MzAwYmVmNDUgcmVsZWFzZTI2LW1haW50Cis2ODkwOCA5YTQ1ZTJjYWQ2YTFmM2YxYjRmZTMyMGJkNTg5ZGJiM2E4ZjJlMzc3IHB5M2sKKzY4OTA5IGY3ZjNkODQxZGEyYzZjMWZhNmUwMDE3ZDU5MjU3MjA2Y2JmNTA5NjQgcmVsZWFzZTMwLW1haW50Cis2ODkxNSBmNWJlNmNhZWFkMDNkODkwY2I1MWJkZGY5ZDIyYWFjMjQzZTZkZTBkIGxlZ2FjeS10cnVuaworNjg5MTYgNGU4ZjI4YjNlYTBhOGVmYTAzNTczMDczZTA3NGRjNTg1YTUzODEwNiBweTNrCis2ODkxOCBlYTU3NjdlYmQ5MDMyYWQ4YThiYjQ4YWU5MTU4ZDk4MDA1N2VlYjA2IHB5M2sKKzY4OTE5IGMyNmYxYWYyNmJmYzIyYWY5YTA5NTMzYjllOTFjYjkzM2VmZGY3MWYgcHkzaworNjg5MjAgYzRjNGU0YjFkYzFhZTYzMWVmOTg1OTFhOGYyMTUyYzA1NTBiNWNmMCBsZWdhY3ktdHJ1bmsKKzY4OTIxIDk5YzEwZDY0N2YzMjZmNjM2MThiMmQ4YzkxZTE5Y2ZiYTdjOTExNjAgcmVsZWFzZTI2LW1haW50Cis2ODkyMiBmZDhhZjQ2ZDM2MTU0M2M3NGY1Njc1OGVmNmQwMTJkZWEzMmM2NDUzIHB5M2sKKzY4OTIzIDJjN2QzNTY5ODgyZGUzNWNlZWEzNWRhYTk2ZWIwODRhOWEzMjVhMTIgcmVsZWFzZTMwLW1haW50Cis2ODkyNCBkODZlMjMzMThiNDE1ZGZhZGQzYjIxM2NjODk2OTUyODc3ODlhZWU4IHB5M2sKKzY4OTI1IDU1MTI1N2M4MDU4YWYwM2E3NDZiMGMwNTFmNzQ5YjMxODM1NTM2YjMgbGVnYWN5LXRydW5rCis2ODkyNiBlM2NlZWI3ZWI5MDEwZWU3ZmRkZTRhMTM1OTRhYmU5ZDJlZTg5MDAxIHB5M2sKKzY4OTI3IDIxY2Y5NmNjMjIxNjNhOTU2OTM4YzYxMDZjYjg1ZWJiZDQzNjNhNjMgbGVnYWN5LXRydW5rCis2ODkyOCAyODE5YTQ3MDZjODExMmY0YmE2YzYyYTdlMzczMTMxZmE5MmRhYThiIHB5M2sKKzY4OTI5IDdkNWZhNTIzNDFlMjMyMzAwY2I3YjkzMDg1N2IwOTk3MmUyNWY5MGEgbGVnYWN5LXRydW5rCis2ODkzMCA3NWQwZjYxOGUxZGVjNWFmOGRkODgyZDk3ZmFiNzc5M2EyYWE4NDhjIHJlbGVhc2UyNi1tYWludAorNjg5MzEgNTBmNDBmMmMzN2RkYTU3ZjRjMzg0YTFiOGJkZTA5NmE5YWJlMDhkNSBweTNrCis2ODkzMiBjYzgxMzBhZmIwMzkxMjJiOTQxMzUxMTM0ZDQ0Yzg3ZDYxYTMyNWYzIHJlbGVhc2UzMC1tYWludAorNjg5MzMgN2E1NzU5ZTg1NjM5NGZkNDczYmRmOWM1YTg0MGY1YzczMTgyMjgzOCBsZWdhY3ktdHJ1bmsKKzY4OTM0IDQ3MWJlMmM2NDU3ZWVhMzUyNTI4MDhiOTEyODU2MWExZDJkYzQ2MTkgcmVsZWFzZTI2LW1haW50Cis2ODkzNSAwMTEzMjE5NWY1NjI1MTU4ZTc4ZjI2YTFjNzdhZmI5MWRiMWIzOGJmIHB5M2sKKzY4OTM2IDMzNjlhNWFjYWY3OTgzNjVhZjRjNzgxMTg1NzYxYTQ1NTE5NWVmYTIgcmVsZWFzZTMwLW1haW50Cis2ODkzNyBjOWZlYTM1Yjg3M2VhMWE3ODM2MjNjMWVjNjM5Y2E4YTFkYjYwMzBlIHB5M2sKKzY4OTM4IDEwZjRhMTYwNDM4ODkxY2ZkMGU1M2ZkNWNhZTM2NTk3NzcxODI5Y2UgcHkzay1pc3N1ZTE3MTcKKzY4OTQwIGUwZDljNjU5ZjdhNmMwZTI3ODkxMzY0YjlkMGYzNzE0ZTkzZDJiNTUgcHkzay1pc3N1ZTE3MTcKKzY4OTQxIDE0YWNlMjA1NDQ3YmJlMjM4ZWFkNjQ1OGEzMzAxOGFmZWY4NGVjYjIgbGVnYWN5LXRydW5rCis2ODk0MiBlNDcwNWZmNjI2ZjA4YjQ5NGRkODJjMGY3MTRlZjg4NThiNWNhODA0IGxlZ2FjeS10cnVuaworNjg5NDMgYTUyMjkyMzdlYjUwY2JmMzY4ZjkwMDYyZjkwN2Y2N2U1OGVjZmY0ZCBsZWdhY3ktdHJ1bmsKKzY4OTQ1IDRlODJmYjFhZWIwMjIyYTBmOGM0ODBjNTJmODg4OTg3OTIyNzQ4MTMgbGVnYWN5LXRydW5rCis2ODk0NiA2YTkxYjNhZGNhZDZlNjA3MmE0MTdhYTAwZTcyYzk0Nzc4NDYwN2IyIHJlbGVhc2UyNi1tYWludAorNjg5NDcgYzg1MWVkMGNmNjVmYmM2ZWIzOGVkYTIwOTVkYzhjZjg3MzljMDQxZSBsZWdhY3ktdHJ1bmsKKzY4OTQ4IDA5NmI0ODg0MzhlOTI0ZWM4OWU3YzI4NDc1YzQ1ZTMwMjAyZmZlNWQgcmVsZWFzZTI2LW1haW50Cis2ODk0OSBjMTU1Y2IzOGY3NmQwZTY4MDU1OGY4Y2QwMTA4Y2Y3ZjU4OGQ2NWJiIHB5M2sKKzY4OTUwIDQ1YTUyNzZlNWRjYzY1ZWJlMmQ3ZDZkMzQ4Y2MyZWY4OTllZjQ1NjAgcmVsZWFzZTMwLW1haW50Cis2ODk1MSAyMWZiMTAxNDI5NGNjNjdlMjY3M2NhZGFkYzZiNmNiZjZiMDkyMzg1IGxlZ2FjeS10cnVuaworNjg5NTMgYjRhY2UyYjZjMjhmMGY0MjE1MTI4Yzc2ZjVhYjk3MTQ1Y2ExMGQzYiBsZWdhY3ktdHJ1bmsKKzY4OTU0IGZiOWQyZDJhNDM1OTU2NzIwYjY3ODBkZDRhOWRlMjczMWMzN2NhOTIgcHkzaworNjg5NTUgZGZhY2VjOGJhNmRiNGU5NjEyMjQ4ZWQ4ZWZlZjc4NzY5NWRjYWU2NSByZWxlYXNlMjYtbWFpbnQKKzY4OTU2IGI5NGU5ZWQzNTU5YzI3MzQxMzNkZDhjMGYxNDhkMjM1YWJjMTZhYzIgcHkzaworNjg5NTcgYzRkMzFmOTc5OTBlOTVjMjkwMDhkNTU4YjY1YjBlNTQ2MDQ3OWMwOSBweTNrCis2ODk1OCAwNGEzM2M0N2FiYjVmMTE3NzNiMGI5MGU5MzgyMmViMTVlNzY5MjJmIHJlbGVhc2UyNi1tYWludAorNjg5NTkgNTIwMzc5NGM3ZWEyMTQ3MmRmNmNkZjExNmQ5MTE4ZDU1YjU4MDRhZSByZWxlYXNlMzAtbWFpbnQKKzY4OTYwIDM1YzY5MzdjMDEyNzVjMWUwMjI2YWY2ZjhhYzZjZWZmMGI3YzQxZmEgcHkzaworNjg5NjEgYWQxZGIwYWU5OGM2YTg3OWE5ZWI4YWEzYWViNTA2ODM3MTMxYTE3YSBweTNrCis2ODk2MiAxYzUwYTE3YzBmMjFjOTYyNzkxNWIxNjU5M2QyMjQ3MmE5OWRiMWE2IHJlbGVhc2UzMC1tYWludAorNjg5NjMgNjk2MDUyM2ZhZGMxZTRiZmI0NGE2Njc3YWQzZDBlYmFhMWE4ZjEzZSBweTNrCis2ODk2NCBkNTEzMDI0ZjUxNzc1YmFhNWU4MDI4NzhhOTNjMDM2NTA4OGYyODdkIGxlZ2FjeS10cnVuaworNjg5NjUgYjg4NTA2MDZkOTIxYTBhZTgzODlkZDc2MWEwYWVmNjMzODAzMDcyMSBweTNrCis2ODk2NiAwMmUxYzVjZTZhNjlmOTZlYzE4MTNkZjAyY2IwY2Q1MTJhZGE1Y2NhIHJlbGVhc2UzMC1tYWludAorNjg5NjcgMzZmYmFmNzUzOGNlYzI1YmRhODBjMzhlMDcxNmEzODJmMjZmYTAwMiByZWxlYXNlMjYtbWFpbnQKKzY4OTY4IGQ0MjM3NGQwYWE1ODRiYTlmYTk0MDY4YzU0ZWZkNDIyMjczOGNiOGUgcmVsZWFzZTI2LW1haW50Cis2ODk2OSBkMzYyZGE5OGQwZGU4NTZhNjRhMDZiZmNjMWJmNzBhZjZjMTcyYWMwIHB5M2sKKzY4OTcwIGIwNDg5NmNhYTI5YmU5YmJlZWI4NzQwM2EyMDA5NmNjOTE5MzU0ZTEgcmVsZWFzZTMwLW1haW50Cis2ODk3MyBjOTRhMjM3YmY0OTcwMDBjNzlmMzFjODkwMWFmMTM0NDc5MDAwOTdkIGxlZ2FjeS10cnVuaworNjg5NzQgMjAwODI5MjU1YTZhN2ZhN2FiNTJkMDM3ZTI0NzE4YjZkY2RjNzFhYiBsZWdhY3ktdHJ1bmsKKzY4OTc1IDJlYTc1ZjYwZDllNWQxZGE0ZWE5N2MwNzU3YWQyNGViZDFjMmNkMjYgbGVnYWN5LXRydW5rCis2ODk3NiBjYThlYTUyYjQ1YzMzOGFmZTc4OWRlMDUyMjg5MTQxMWU4N2I0MzY0IHJlbGVhc2UyNi1tYWludAorNjg5NzcgOThmMjIzZWNlOGYyNzI5NzBmNTk5YWY1NThiMTYzNjhhOWU1YTU5ZCBweTNrCis2ODk3OCAwNjg3ZDQ0N2RlNjFmZjhkYWM5NmI5NjVmNmI0YzZjNzFmYjM0MGY0IGxlZ2FjeS10cnVuaworNjg5NzkgZTE5ODgwN2M1NTg2N2IyNzQ0ZGNiNmNlMzFhOGY2M2ZkMzRhOGEzMSByZWxlYXNlMjYtbWFpbnQKKzY4OTgwIDg1N2RmNmMwOWUxMmY5Y2MxNTU4YThmMzdiM2JjZDY5NDIwZTZhMzAgcHkzaworNjg5ODEgOTRjMmRjNWY0NDZkNjc2YWNlZTU0ZjlmMzE4ZWQ3YmRkNmJmNWE5YyBweTNrCis2ODk4MiAxNGMzYWI5YmQ3MDYxZjYxMGMyMGJiOGQ0ZGMxMjkzMDU3YTFkMTgyIHJlbGVhc2UzMC1tYWludAorNjg5ODMgYzIzZTQwZDFhYmJjOGQ5MWVjNDZhMWE0YjhmOWM0N2YyOTY5ODM0ZiByZWxlYXNlMzAtbWFpbnQKKzY4OTg0IDgwMjUwNjY0NTY2NjRkZGM0OTljOGQ2OGRiYTlkMmY0MzEwZWFiYzcgcmVsZWFzZTI2LW1haW50Cis2ODk4NSAyY2IwYzUyZDc3OWZjMjNiZTBmYzJiYWRmNDI5YzY3ZmQ1M2M5YTA5IGxlZ2FjeS10cnVuaworNjg5ODYgZjU3MjkxNzE4M2ZhMmVjYzJhZjRlNzc3YTI2ZTkxY2ZlNTk1ZmMyYSBweTNrCis2ODk4NyBmMTM4ZmJlMjk0NWU1NTg5YjBhMmQ0MmRmODI1MDc1MTVmZGUyMzIxIHJlbGVhc2UzMC1tYWludAorNjg5OTEgZjA4NWFhYTQ2ZDg3NDhmZDU4ZGVlZDA3NmNiZDkzMDcwNWUxZTE2MyBweTNrCis2ODk5MiBmZmU3MzJkYWRiMGQ4ZDk4NDFkODk3YjljNzJhMWUwN2EzZTI1OWJiIHB5M2sKKzY4OTkzIDI1OWZhOGY2NGE5N2U2MjQ0N2Q2ZTgxODM0ZTlmNTFjYWMyYjMwOWUgcHkzaworNjg5OTUgNDQ1MTIzMTFmMmJjODIwMDcwYjgwNWQ2MmQ0NGI4MDllMTJkOGE3YSBweTNrCis2ODk5NiA5NmQyOTZjNzhmYmE4NjZhYTlmNjhlNzc3ZWY2OGQyZDc4YTZiMzdkIHB5M2sKKzY4OTk3IDU2NzliYjliNTE5MGM5MWFjMWFiMTI4MWQxYjU0NDBjMTkxMTZmZTYgcHkzaworNjg5OTggNmMwYmI1NDhhOTQ2YzdiN2U5NWViYjc4YzFkNWE4MjZmNzUwYjQ0NyBsZWdhY3ktdHJ1bmsKKzY4OTk5IDc3MjBlMzYzYzFjOGNlZDc3OGYwM2Y2ZDM2MjBmNzNjMzYxZjAzOTQgcHkzaworNjkwMDAgODRkNjQ4Y2RkYzMzNDYwYWQ3ZTJiNjIyMDMyOTE3YWMwYjRjZDIwMSBweTNrCis2OTAwMSBiN2NlNjc1ZmViYjkwM2NhYWEwYTA1NzhkOTllMjQzMTdkMWNhZjQzIGxlZ2FjeS10cnVuaworNjkwMDIgZjExYTQxMDk1NzI2Zjk5MzVhZGU0Nzc5YzlhOTQwN2ZmZThlMGI2ZSBweTNrCis2OTAwMyAzMzI5MWUxZTg3ZWM3NDNmODViYjdhMWY1NmFlMTQyNGYxOGYyNjlkIGxlZ2FjeS10cnVuaworNjkwMDQgNDAwNTAxMWQzYTA5ZWNhOTllMTEyODUxOTExMjJlY2M1NWYxMjVhYiBweTNrCis2OTAwNSA3ZTgzM2NkZWIyNDE3NDU4NmE1MWQwOWQxNzMwMGQ4NjQ4YTI0YTgyIHB5M2sKKzY5MDA2IDRiODdmMzE5NzhiN2UyMTc2YzY4ZGI2OGQ5NWVjMDVjZTQ3YTA5MjkgcmVsZWFzZTMwLW1haW50Cis2OTAwNyA0OGI3MDM3ZmYyMGU4NWI2ODhlMGJiNzQ1YTdlMGI5MGRkZDRlNDI5IHB5M2sKKzY5MDA4IDdmMGU0ZTQyN2VhM2Q3MGFlOGRhZDRjZmQ3ODY1NWY3Y2I1MjM1MTAgcmVsZWFzZTMwLW1haW50Cis2OTAwOSA5OGE4NTVjOTdmZjIxNGZhYWJhMGNjYzMwMjg5NDg2YTM4NDI3MDdiIHJlbGVhc2UyNi1tYWludAorNjkwMTAgZDE3MGZkZjRiZGZiNDUyMmE2NDQzM2QzOGY5OWU0ODQ2NTRiMTJlMiBsZWdhY3ktdHJ1bmsKKzY5MDExIDE0NjMxYzYyN2UwMzc0MmQ4ZTlkODFlNjIxNzYwOGJlZjE3ODIyYzggcHkzaworNjkwMTIgM2U0Yzg3MmQwMjQ2N2E1NzE2YTVmYjRkMmJkOWI5NzZkYmU5MDExZSBsZWdhY3ktdHJ1bmsKKzY5MDEzIDM0MDI3ZThkMDQ0ZjAzYzg4OWFjZDk4ZDkzNTljODhmMjRkMzNhNzcgcHkzaworNjkwMTQgYTI4NzY1ZmQzMmYwMGE1ODdmODJhNmJiYzVkYmE1MGFiMGE3OTc5NSBsZWdhY3ktdHJ1bmsKKzY5MDE1IDdlZDljY2MwYjUxOTdlNzMxYjg5ODMwZDU0ZTIwMGE3MzIyYWQxMzUgcHkzaworNjkwMTYgOGNkM2NlZDFlZDI5OTlkZTYwYzljOTY3M2E4ZDFkMDljN2MyNzc1NCByZWxlYXNlMzAtbWFpbnQKKzY5MDE3IGU3MThkMjk4NzRkNzVjN2Y2NTdhNjg2YzlmN2Y5MmM5Mzc4YmVhYmUgcmVsZWFzZTI2LW1haW50Cis2OTAxOCAyMjU0Y2QzMjAwZjA2MDJkYTFmNjc2YWE0NmQ0OTg5Y2JjM2M5YjNlIGxlZ2FjeS10cnVuaworNjkwMTkgNTMyNDRjNGVlZjIyM2UxZWU5MTJkNTBmY2I2ZjQzNjkxOWQzOGM4MSBweTNrCis2OTAyMCA1NDdiN2ExN2MzNzk5ZTc3MjA1ZTExMzljMjBjNDAyZDA2NTI3ODdkIHB5M2sKKzY5MDIxIGE2YjAyNTIzYjkwMzVmNWNjMTQ5MDZkY2Y1ZDRlZDQ0YmExNTlhMGMgcmVsZWFzZTMwLW1haW50Cis2OTAyMiAxYjMyMGZmYzBkYjhjYWU4MzA4OGI5OTU0ZjNmNzY0NjJiOWM3ODY1IHB5M2sKKzY5MDIzIDlhNGZkYmNmMmQ5ZjJhYzc1YmJhOGQ0ZDk5MzA3ZDNkM2YzODg2OWQgbGVnYWN5LXRydW5rCis2OTAyNCBmYzUxMDI2YWJkZTZjNmQ2NWFlYzA1YTdmOGRhOGU3OWUwNzZjZDM1IHB5M2sKKzY5MDI1IDc0YWE0M2RkODc1ZGQ5ZTVkNzk4YzQ2MGQ0YjRhNDhjMGY1NTExOTUgcHkzaworNjkwMjYgYWRiZDc3YTkwYmRlYjVhYzFkY2EzZDAwN2M4ZGZkNTQ4NmU5NzY5NyByZWxlYXNlMzAtbWFpbnQKKzY5MDMxIGM1YTUyYWVjMmRkZjkxZTEzZTBlN2YzMDkxMDJmMjllMWQwYjMwZjUgcHkzay1pc3N1ZTE3MTcKKzY5MDMyIGI2ZGU2OTEyZmUxNDZiYTZiZWQyMDU4ZGY1NmVjNTU4ZjkwZWFjNmEgcHkzaworNjkwMzMgZDJjMDY3ZjlmOThiOTVkMjE5Y2Y0NDgwZmNlNTMzYTcwNWNjNTBhZCByZWxlYXNlMzAtbWFpbnQKKzY5MDM0IDVmZWI5NzZiMThhYWM4Y2U5MWY2ZWJhYTkwMTQzOTY0Zjk0MDE5MGMgcHkzay1pc3N1ZTE3MTcKKzY5MDM1IGJlYTZiN2EwYjlhMjJmODk1MTk0ZDI2Mzg0YTQ2NzZjZDI5Zjk0ODkgcHkzaworNjkwMzYgMmE2ZTBiYzRiYzAzMTlhZmE0ZTY4NzFhNTE5NGJkY2JlNTNkZjM3ZiBpby1jCis2OTAzNyAyMzFjNGU0OTBiMWY1OWY3NGRhNWU5Mzg0YThjMGFmNGUxZTRiMjZiIGlvLWMKKzY5MDM4IDYyY2E4MWRkMmFlODg3Mjk2ZGVjNTcxM2FkM2UwYzUwMWYzN2I0NTUgbGVnYWN5LXRydW5rCis2OTAzOSBiNjc0NzA2ZjNiMTBlZGUyYzZlNTQyZDQ0MjkyYWQ4Y2VkOTg4MGE1IGxlZ2FjeS10cnVuaworNjkwNDAgMTQzNGQxYmM2NjdmNzI4Mjk2ZDY2Mzc1YTJlMTc1NmYxMDQxYjU3ZiByZWxlYXNlMjYtbWFpbnQKKzY5MDQxIGFiMTE0NjU1MTI1NTIzMWFhYTg3NmM4NDZhYWRmZWZlMzgyYjJlYzYgcHkzaworNjkwNDMgMDUyMmNmZWU4NzlhMTFkMzNkNGMxZDlmMGYwM2IyNzE0ODQ5MmVlZCByZWxlYXNlMzAtbWFpbnQKKzY5MDQ0IDg0MDAyODIyNmVkNTNlYjZmM2I1NGU0ZmQxYjUwZDgwOTBiNzVjNWUgaW8tYworNjkwNDUgMDRjYTU3YmI3MTA4MzkzOTM5NGQzMzBkMzM4YzY1MWIwZjJmYjA1OCBweTNrLWlzc3VlMTcxNworNjkwNDYgNGFiNTA4YTVjZDdlZDBhMzUyMTgzNTY5NmZmMmI1OTYzMDViNmIwMCBweTNrLWlzc3VlMTcxNworNjkwNTAgYzEwMWY3OGFlZDhiNTFiMzg1MjRhODhmNzQ5YzNlODgyMzdhYmIzZCBsZWdhY3ktdHJ1bmsKKzY5MDUxIGM5MDkzZDQxNTkwZWVhMjI0M2M5YjBlYzk0MzI1OGJkZjQ4ODlmNDggcHkzaworNjkwNTMgZjA2ZDkwMDI3Mjk5NDg2NGIyNWZhNTc3YjM3Njg3M2RjZGMxMjI0MyBsZWdhY3ktdHJ1bmsKKzY5MDU1IGQ2OTAxMjlkN2RhYzI1NTYyZTljZGVmOWQ1ZmE5MDgxNmVhMzVmMWIgcHkzaworNjkwNTYgZmQ0YmViZjlkZGRlZTdhYzk3Nzc3ZWFlNzgxZjgwZGFkOWJjY2Q4OCByZWxlYXNlMjYtbWFpbnQKKzY5MDU3IDM5NzU3MjVhODViNTE4NGFiNzI1NWZlZjdiM2QxY2ZhODJlN2RiM2EgcmVsZWFzZTMwLW1haW50Cis2OTA1OCA4ZDYwM2U0OTM4NDZmODdiMGFjMDI2NjFjNzIyZWY0YWI3Y2E4ZWEyIHB5M2staXNzdWUxNzE3Cis2OTA1OSBiZmY5OWE4MTgyNGE3MDk2NGQyZDFlZDI3NGE5MjVhYmRkODFjYWVkIHB5M2staXNzdWUxNzE3Cis2OTA2MCBjYTRkYmU0YWU2MjlmNDMxNDI1OWNlODhjNDE4YzA5YTg1MWQ3MmIzIGxlZ2FjeS10cnVuaworNjkwNjEgOTQ2MzQwZmIxMTRiNTMwZjM0ZTFlNGRmODQxYTEyOThhODMzODIxMSBsZWdhY3ktdHJ1bmsKKzY5MDYyIDE4ODRkMDg4ZTBhY2NlY2Y4YjEzYmEzODM3NWI5OTFlNmY0NDc5ZDIgbGVnYWN5LXRydW5rCis2OTA2MyAwYThhN2M0NTdmMWJiZjliZWM5NmI5OTg4ZGNjYjEwY2Q4MDUwYzI0IGxlZ2FjeS10cnVuaworNjkwNjQgNWZjNjA3YjZlNDJkN2I3OWE3NmYzN2UxNzljNjFmNDA5NjIyNzkwNyBweTNrCis2OTA2NSA3M2JhMGY0ZGIwZDU5MTBkY2YyMjg2MWRmYTAxMWI3N2NjYjRjNmNlIHJlbGVhc2UzMC1tYWludAorNjkwNjYgZDhjNTIyZDYwMGU0ZTNlNDk2MDZhNjE0NjJhODk1MjkwNTM3YjFjZSByZWxlYXNlMjYtbWFpbnQKKzY5MDY3IDQ0NDdiYzFmNWE1MTIxNGY2MGY2ODk2M2E5ZTlmODljZThhYzdlNWEgcmVsZWFzZTMwLW1haW50Cis2OTA2OCA5NzQyZThhNGRjYTFmMGNjMzliNjUwODMwMzlkMTVhNDIxNWEzOTBiIHB5M2sKKzY5MDY5IDljMWYwNmIyNzNmNzJjNTYyM2U5MWYwOTQxN2YxZTJjZTBkOWJkNTMgcmVsZWFzZTMwLW1haW50Cis2OTA3MCA5NDQwNDY4MDgzNTkzYzUyMmRiOTg0ZTk5YWQyZmYxMDk0ODRjMGYxIGxlZ2FjeS10cnVuaworNjkwNzEgOWM1YWVmOWYxZmE3MjdlNzlhMmJiMjI1NDRhNjRjZDAwMGM0NzYyNiByZWxlYXNlMjYtbWFpbnQKKzY5MDcyIGYwYTFiZjI0OTAxMDVlZGQ4ODY1YWIzYWVkMTQ1NTg4MDM3ZTlhN2IgcHkzaworNjkwNzMgMDFiOWM1ZDk5ZWJlMjM0NDIxZDZkYTAwNjgxZGZiZjA2ZTAxYjQ4NCByZWxlYXNlMzAtbWFpbnQKKzY5MDc0IDUxOWIyMWY4OTFlYmQ1YWE4Yjk5YmQyNmIwMWQxNjc2ODMzOGRjODkgbGVnYWN5LXRydW5rCis2OTA3NSBiYjYzOTE1ODI5NmU3NjU2MjZhMjgxYzVlYjM3OTA2NjQyMzM3NWU3IHB5M2sKKzY5MDc2IGQ4NzdkYmZkNGJmOTM5ZTEyOTU2ZWZjYzgwMDQyOTIwYzRkNWVkN2EgcmVsZWFzZTI2LW1haW50Cis2OTA3NyBiZWRjNjg0Njg0NGRiZjBmNTkxNGE0NDI4NWM5YmZhN2U2NTQ2M2NjIHJlbGVhc2UzMC1tYWludAorNjkwNzggMjM4NGMwNGVkYmI2MGJiNmNkZDI5ZTczNzQzMWFjOWYzMjZiYjBlOSBsZWdhY3ktdHJ1bmsKKzY5MDc5IGEzMzA0MTkwZDhhYWFhOTE1MDg3Y2M1YjRmY2E2OTFhMjU3MjZlNjggbGVnYWN5LXRydW5rCis2OTA4MCA5YTlkMjZlODQyYjMzMTVhNjdiMTc3MzYxMmI2MGQzOWMxNDQ5MDRiIGxlZ2FjeS10cnVuaworNjkwODEgMzIyODkyOWVjYjZkODQ4MzM3OWQyOWY2ZDBkMjI2OWU0N2M3YzAyNyBweTNrCis2OTA4MiBkNjZlMWFiYjNhOThjZmQ2YzdiYjg2MDU5NDY1OTdmYjIzYTdiZDhiIHB5M2sKKzY5MDgzIDdhZDk5NmVlMzMzNDFkZjA2ODFmMzQ5OTAzZWMwMTMzZTZhYmIwNWEgbGVnYWN5LXRydW5rCis2OTA4NCA3MjViMjA4NzMwYTU5MzQ5MTRmOTdhZDczOTcwMDBkNDM2NDE2MzQ4IHJlbGVhc2UyNi1tYWludAorNjkwODUgMDdmZjI4MWJlMDJjNTU3NmFhYzQwZDYwNDQxZjAyNWRhN2Y4MTIzZCBsZWdhY3ktdHJ1bmsKKzY5MDg2IDRmNjA3YzNhZThlMmQxNzNmMmFhODNhYjA4Mzk2MDA2NDAxYWI4YTQgcHkzaworNjkwODcgN2NiMzUxYzljZjQwMjQ3ZTI2OTM3MmU3YWE4OTQxMDU0ZjUwMWQ5MCBsZWdhY3ktdHJ1bmsKKzY5MDg4IDRiODk3NmVhNjk2NjBhOGIyNDQ0NWU3NzUwZDU0MGU3OTY3ZjgwODYgcHkzaworNjkwODkgOWViODRmYzQzNmZjMWIzYTVhNGM2YWJiYjQzZTBmNmNmMDM0ZjhiZCBweTNrCis2OTA5MCA0YWJjZjlkMWI5MzgwZmJhMDE2ZTg4YTQ5MDQ4ZDhhNzY0ZTZjZDBkIHJlbGVhc2UyNi1tYWludAorNjkwOTEgMTRlNWI2ZTgzNjgwMGY4MmE5OTc3ZTQxMWViMWYwNThkN2NlMGFhNCByZWxlYXNlMzAtbWFpbnQKKzY5MDkyIDBiNjY3ZTM5M2ViMzQ4NzAxZmJjMWFhZjYxMDc1NTcyNWY0Yjk2Y2EgcHkzaworNjkwOTMgOTY5MzQ2ZGJmMzFlMjA0YzYxNmRmNmNmMDc2MGRmNjIwYjY4YjVhNCByZWxlYXNlMzAtbWFpbnQKKzY5MDk0IGRhYWU4YzMyNGJlMWI5MTkxM2Y1NGNmZGNhZTY5N2M0NTNlZWUyNzIgbGVnYWN5LXRydW5rCis2OTA5NSBkMTYyOWE5NTljYjg1MDQ2OWY2YmNkMWNkYzNjOWJhMzNhNjVhNjZlIHJlbGVhc2UyNi1tYWludAorNjkwOTYgNDYzZjZjMTJmMWQ0YzI1MTEzZjYwZTNiNzA5YzlkZjM4MTgzNTI3NCBweTNrCis2OTA5NyBkODU3MTQ1NzRjOGE1MDM1YjBkOTQwYjRlYzY1ODk0YWU3NzVkYjJiIHJlbGVhc2UzMC1tYWludAorNjkwOTggYmNiNmFkMWNiNTVkZmEzMmE0MjQyZDZlMzhjOWFjNWNkZWMyZjFlYyBweTNrCis2OTA5OSBhZjk0ZWYzOGI1YzBmMjdiY2U5NWQwOTEwNDU0ODU4MDY2MDM4ZjVkIHJlbGVhc2UzMC1tYWludAorNjkxMDAgM2MyOTBiYzIxZDJjM2RhYjk1ZmNhNmE5OWNlNzlkY2QyZjA0MzQ3OCBsZWdhY3ktdHJ1bmsKKzY5MTAxIGU0OGM1OTE0ZGE4MThmYzkxMTc2N2FlN2JhNjRkYjgxYTk2YTM0MTYgcHkzaworNjkxMDIgZTJkY2FkNTZlNDBlMDMxNzQ5ZTdkMzgwMDhkN2JjN2NjNTI5NmEwMSByZWxlYXNlMjYtbWFpbnQKKzY5MTAzIDVkMGVhZWI0MTM0ZDdlYzlkMzc4N2JiYTNlOTI3ZDNkODhlYzY2YzMgcmVsZWFzZTMwLW1haW50Cis2OTEwNCA0YTRhNzQzN2M1ZTFjZjY2YWQ0ZmYyNTY2ZWU4NTg3MTNmN2MzMzk0IGlvLWMKKzY5MTA1IDkxZWQzZWNlMGM3NmEyYjI0NWIwNzRjZjYxZmJjNjVkNTg2YTc4YjkgcHkzaworNjkxMDYgZmM1ODZiMzgxOTg3M2U2M2Y5NzVmM2E2MjJiNTQzZGQ0MmJmMzE5NyBsZWdhY3ktdHJ1bmsKKzY5MTA3IGMyNjI4YmZlNmE2ODQ4ZjI4N2UxYzkyYzY0MmE2ODY3MTNmZjFhNmQgcmVsZWFzZTI2LW1haW50Cis2OTEwOCBjMzc4YzRmNGE3OTY5ZTFmZDA1NTk3N2FmOWNjM2I3ODdhNDE3ZDRiIHB5M2sKKzY5MTA5IDIwZjRhZmNkM2IyN2VlNjMwMGM4ZmY5MTkyMGMwZGUyYjYwZjFiMmMgcmVsZWFzZTMwLW1haW50Cis2OTExMCBiODhkMzc3MDExZjUwZGE5ZDM0Yjk4N2NmNDM2ZmQ3NDk5YjViZDRkIHB5M2sKKzY5MTExIGI0OGI1ZGRhZGE4OTQ4ZThjOTUzMjU5NmM4N2UwYmZjYjViYThjMjAgcHkzaworNjkxMTIgNmEyODk2ZDkyM2UzYTJjMjZiOTI2ZTkzYzgyNjA2NTY2M2Y5ZTkyYyBsZWdhY3ktdHJ1bmsKKzY5MTEzIDRhYjM4MWFlYTY1ODAyMGJmMmQ0NmM0NTRmMmE3Yjg1MzY2NzdlZGUgbGVnYWN5LXRydW5rCis2OTExNCBlMjI3MDU0ZDQ5NmRmZTg0ZWM3NDNiMWJlOWUyYWI4OTk2YTAyNzBkIHB5M2sKKzY5MTE1IGEwMzhlOGZiNjdjMjEwZWNlMThjYWJhNjcyM2I3ODdiMzE0MGYyOGMgaW8tYworNjkxMTYgN2I3OTY4ODYyNmU0ZWYwZGJjOTFkNjJjYWU0MjZkYTY1ZDU4Y2ZhNiBweTNrCis2OTExNyA5ODY3Yzg0OTUzMGJiYmYyNjdiYzgwOWZlYjMxNjNiMDU4YzAxMWU3IHB5M2sKKzY5MTE4IDhjMmM3MmNmMmEwY2ZiNjJmYjMwM2NhNjNmNWVlZmE1YzZmZjk3MWYgcHkzaworNjkxMTkgNjE3ODc1MzMzOTVjMGRhYWRhYWFkNTU3YmViNGYyMDc4ZmU4YWE2MSByZWxlYXNlMzAtbWFpbnQKKzY5MTIwIGU2N2RjNGRiOTY0Yzg5YTY3NjRkNDgzYmFhNDc0ZjVlZDQ0MzMzMWYgcHkzaworNjkxMjEgM2MyYjM1YTEwNTkzYmQ2OGNmOGZmNzlkZDZmMzFmNWE3MmE0M2YxZSByZWxlYXNlMzAtbWFpbnQKKzY5MTI0IDM1OTM5NGI2M2EyMzg4YWMyN2MwOThjZWVmMmY0OGJlYTIwNjE1MzIgcmVsZWFzZTMwLW1haW50Cis2OTEyNSA3ZmMwYWQxMWIwYWYwNzRiMDU0YTExYzA2YzM2Y2RhMWFhYzJjOTg4IHB5M2staXNzdWUxNzE3Cis2OTEyNiAzNzhiYzE4ZDIzNTA5YmJmMTljOGY3YTViNWFlODFjODUyNWFlM2E4IHB5M2staXNzdWUxNzE3Cis2OTEyNyAyMzk0NGYxZDUzZmRmYjljZDAwMGRiYThhYjcyNmMzYWM0MmZmODkyIHB5M2staXNzdWUxNzE3Cis2OTEyOSA0YzllYTY0N2VhZjQyMWRlNTc2OTJkMGVmMzYxN2QzZWUyMDkyZDY4IGxlZ2FjeS10cnVuaworNjkxMzAgYzVlMjgyODViNzRkMDEyMzIxYjU2YzdiN2EzZjllZmJkM2M2ZWM3YiBsZWdhY3ktdHJ1bmsKKzY5MTMxIDc1NDAzMTRmZjI2N2I0ZDVlZTAzY2Q1MzlmMmEwMmViZGRjMDY3YTUgbGVnYWN5LXRydW5rCis2OTEzMiAwMmE5MGRjMGMyOWE4YWY2NWIwYjJiOTExNmU2YzQwYjRiYTY0NjVhIHB5M2sKKzY5MTMzIGRmMDkwNTk3YWZhYWYwZjc3OGI1YzNiNjFhNzUxZmQyZjc5NTFmYzcgcHkzaworNjkxMzQgYmU1NzM1NGRkYjExNDQ2MjMwYWNiYjRiMTlhZmU1NzEyOTFhZTQxNSBsZWdhY3ktdHJ1bmsKKzY5MTM1IGRjZmQ0MzY1NjdjZWY5NDg3ZGQ5MGE1NDdhN2ViYTNmMWZkYTQ2OWQgcmVsZWFzZTI2LW1haW50Cis2OTEzNiA0MzE3MWY1NTdhZjgwZmVhMGM4ZTBhMmEzNjlkMWQ3ZDBiZDg1MTM3IHB5M2sKKzY5MTM3IGMwNmZhYTgxOTZiM2EwN2U2NmE3MGY3ZDhlMmJlMTA3MTgxYjE0ZWQgcmVsZWFzZTMwLW1haW50Cis2OTEzOCAxYzBhNWE5ODI3ZmE5N2Y2ZTFiOTUxZjYwNjA3NTlmOWM0YWFiOTY0IHB5M2sKKzY5MTM5IDVmNmQyMjVlM2MxZGFjMDlhYmI3M2VmNTg4ZTYzNDhhOGY0MTQyMjYgbGVnYWN5LXRydW5rCis2OTE0MCA5NDI2ZWViN2Y0ZTZhNTFjY2RjMGQwZDM2MGYyODI4ZWI3OGQ5NjUyIGxlZ2FjeS10cnVuaworNjkxNDEgOWQzYzJjZTg2ZjQyOGUyMWZjNGViMTgzYWEyMzhiZWUyNjcwOTM3NiBsZWdhY3ktdHJ1bmsKKzY5MTQzIDBjYWEwMDJmNWYzZDI1OGU0ZDVkNDJhMWQ4YjcxODQzZjllNDcwY2UgbGVnYWN5LXRydW5rCis2OTE0NiAxMGRhZWUzYTM2MDk3OGI5MzkzNjBjODEzMTVlNGI4Y2Q3NjVmNjYyIGxlZ2FjeS10cnVuaworNjkxNDkgY2Q1ZGI0M2RiYjY1YjkxNzAyMTIwMWIzNjk0YjFhN2ZjZjc0NjI0MyBsZWdhY3ktdHJ1bmsKKzY5MTUwIDE3ZDQwMWFkNmEyMTU5ZmY4YzBhNzRiOGY2OGFkNjc5ZmRiNWUyN2QgcHkzaworNjkxNTEgYmMyZDk0ZmQ5MTBjMGM4MzUwODkzMWY3ZTg0ZWE2NWQxMmRiNjlhNiBweTNrCis2OTE1MiAxZjI5MjJiYTVhMmExMDE4OTVmMjk1YTkzMzk0NGU1Mjc5ODczM2VlIHJlbGVhc2UyNi1tYWludAorNjkxNTMgNGMyMDU4MzUwODMzOGNmOTBhNDk1ZDRlYzkxZTM3ODJmNDM0YTg5NiByZWxlYXNlMzAtbWFpbnQKKzY5MTU0IGFhMDdhMTIzMTk0YTBiNzg5YzYzY2I0N2Y3ODg2NmJmYzJhYTE3ZTMgbGVnYWN5LXRydW5rCis2OTE1NSA3Mzk4MWJjZGE1YTJiYmNhYTU4YWY0YjRkYjcwMGVmNWRjODU2NTMxIGxlZ2FjeS10cnVuaworNjkxNTYgZWIyNjA3YTY1MTZlNjdiY2E0NTA4YTJkYWVkNjM4MWY3YjY3MTI1ZCBsZWdhY3ktdHJ1bmsKKzY5MTU3IGJjOTJkODNlNTUwODI4NzdkZmZlNTIwMjM4NjQyYTJkZTQ1YjJiYjAgbGVnYWN5LXRydW5rCis2OTE1OCA4NjcyYjBmNjU3NWQzYjFjYzZhZWNmMTAzOGI4OTk5YzczZTY2NDE2IGxlZ2FjeS10cnVuaworNjkxNTkgOWEyNDRhZmExYTlhMTgyZjRhODdkOTU3YjQwODNmZGQ3Mjc5NTE3OSBsZWdhY3ktdHJ1bmsKKzY5MTYwIGI0Nzc5NThkZjk3OGVkMWFjY2Q0MWVjMjEzYjYyZDYxMTk1ZTdhNDMgcmVsZWFzZTI2LW1haW50Cis2OTE2MSBmZWI5OTM0MzA3YjliNzg5NWViZjQxYTQyN2YwNjQ1ZGJmMmY3ODRkIGxlZ2FjeS10cnVuaworNjkxNjIgMTQ4NDIxNzJiMTUyMmY5YmEwYmZkNGRhNTFhMjkwYmEzNzc1MzdlZSByZWxlYXNlMjYtbWFpbnQKKzY5MTYzIGI4Y2U5NzljZGRjZTIwNmM3MWMwNjg3ZjQ3ZWQ3NzJhYzI1NzEwMzUgcmVsZWFzZTMwLW1haW50Cis2OTE2NCAzOTU0YzliOTBiNTI3YTExMDJlZGU3ZTZlODNjNWZhYzVlNjI1ODIzIHB5M2sKKzY5MTY1IDA2YmJjYjc5MmYwNGUwYTM0ZDcyNTQxYmE1MjdiMDIyMjJjM2ZlZDcgcHkzaworNjkxNjYgOGQzZjdkZDliNmNjZTA1M2RiZWEwMDZkY2EwODQ0M2Y3MTExMjRhNyBweTNrCis2OTE2NyA1MGJkMmMxOGVmZjA2NTI5NWMwOWI4ZDQ0OTlkYzU1ZWRhNjg3OGE0IHB5M2sKKzY5MTY4IDgxNTU4OWQ2MmE5YWUyMDFhOTA0NTRkYzY4YjEyOTE1NDY4MzAyOWYgcHkzaworNjkxNjkgZDI2ZDk3OGQwMDY2NDg2OGMwY2NiOGZlOTZlYzA1NDM4MWMwNDZkNCBsZWdhY3ktdHJ1bmsKKzY5MTcwIDRiMzI0NmM4M2UzZjJjY2FjNzQxNTYxY2JhNWE0N2RmMjJkOWRmNjAgcHkzaworNjkxNzEgNDI3ZjRhNzRmNTM4YWJmNDY3MzFjZDg1ZThhZGQ5ZmVmZDRkMjc0YiBweTNrCis2OTE3MiBkODVlZjI2ZWZkMTAzNzZiYjIxMzVlMWUxOGE3Y2YwNmJkZjBmNzJkIHB5M2sKKzY5MTczIDEzNGZiY2UxMTFlOWI5YzJkODFlZTA0OGQ4OGEzMTlmODI4NTlhMGQgcHkzaworNjkxNzQgZGVlZGRkYzdlMGI0ZDkxZTNlOWQ2MTE1OGJlMjkwOTQ4NDUyZTgzMCBweTNrCis2OTE3NiAzODZlYjRiNWNiYjNhYzYxZmI1ZThiNzA3YzNkZWZlNjFkZjc1ZWMzIHB5M2sKKzY5MTc3IGZiYjE3Y2FiNTcxNmUzOTM3ZDM1MGZkNDcyYjY3NDIxYjkzMGM0YWYgcHkzaworNjkxNzggNmJjZjg0ZDYzNzk3NTJiZTg2ZDFmOWIzNDk5MzhlN2Q3ZjVjMGQxNSBweTNrCis2OTE3OSA3NjY0MDVjMDRiZGMyOTQ0NTMzYzRkYTY4MjA4NmIxZjYwZjZjZGFmIHB5M2sKKzY5MTgxIDdjOTFmNDc5YmQwZDkxMGJmOWQ0YzM0NDkzZDBhNDFlMDhiODhmYzYgcHkzaworNjkxODIgZTk2NzVkNzJlM2UzYjk0MDNkZTQwYzJkMTExM2YxNTEwZGQyMTZmYyByZWxlYXNlMzAtbWFpbnQKKzY5MTgzIGU2NjMwNzVmZDFhZTRhOTk4MDBlNjc1MDc4Y2FmMmJhNmY3OTAzNzYgcHkzay1pc3N1ZTE3MTcKKzY5MTg0IDljYTM0YzE4ZTFiZDNhMWVmMWEzMTg1NDYzNTk5YjgxN2VjMjhlNzkgcHkzaworNjkxODUgMDE2MmNkNGY1NWJlMzFkMWJlZDJhZmY1YTdkYzY5M2RkOWY5YTA4OCByZWxlYXNlMzAtbWFpbnQKKzY5MTg2IGYwMDg5NDEzYzEyZmQ0M2U4MmM1NWU5YTk1MTJjMTZhYmMzOWI5ZWYgcHkzay1pc3N1ZTE3MTcKKzY5MTg4IGJhOTRkN2MwOTVlODBmODliZTI5YjIyMzNkYmYzM2FjODViOTc4NzggcHkzaworNjkxODkgNDEwZGZkNDIzZWYxMmIzYzM0N2Y0ZGU5Y2U3M2E1ZjU4YTZmODIwZSByZWxlYXNlMzAtbWFpbnQKKzY5MTkwIGUyZGIxNTE5NmE1NGI1MzkwMjk0NjI4MDYzMWQ5OWY1ZjNhNTY2MGUgcHkzaworNjkxOTEgMjM1ODI5OTU2NGVhODA0OWY4YmNhMWFhMTU2ZjFlMGQ0NmFhNWY2MyByZWxlYXNlMzAtbWFpbnQKKzY5MTkyIGU5NDU3ODI0Nzc3NDBjOGZjMTlhOWRmZDAwODVjZTMzY2IxZDkwYjggcHkzaworNjkxOTMgZmRhZTRlNzQ5ZDJiMzgwOWYwNTc5ODQxZmE1OTcwMzYxN2FiYzdkNyByZWxlYXNlMzAtbWFpbnQKKzY5MTk0IDU3ZDdkNmMyYjExYmNjNTQ5NWY3ZTg5YzlkYzU0ZmEzZTJkY2ZiMDkgaW8tYworNjkxOTUgNDdkNzQ3MTI0YTNlMGM0YmM3MDg5YmQ3MDZlYjJlNTFkNDdiZTJlZCBsZWdhY3ktdHJ1bmsKKzY5MTk2IGFlZjI5YTllZDQ5MTg0NzJjZjJiNDczZTBmOTNkMThmMjA2YmFhODcgcmVsZWFzZTI2LW1haW50Cis2OTE5NyA4YzQ0MTBkMDY3ZWU3YTE5YzdiNmM2N2Y4OGIzOGFlMWFiMzI5M2MzIHB5M2sKKzY5MTk4IGFlMDI2ZDI1OWQ0MTExMzhlNTBmMDcxNDc3MTljY2IxOWE5NmFlM2YgcHkzaworNjkyMDAgOTIzNjM1MWI1MjlhNGNiZGJhOGI4NTZiN2E2ZDUyOGQxZmFiNWFlZiBsZWdhY3ktdHJ1bmsKKzY5MjAxIGMwODNjMjc0ZjlhZmVjY2FkODJiOGI0N2IzMDY3MzAyYjk3YmJjNTIgcmVsZWFzZTI2LW1haW50Cis2OTIwMiAyYzE5MjcyZDhlNTY1ODZlMTk3YTJiMTQ0ZTcwYTk5YThiOTE1OTExIHB5M2sKKzY5MjAzIDZlNWNhOThhMzBhYzM4NTMxMDVkZDFlYjcwNTViMzk2MjY2OGM2NjAgcmVsZWFzZTMwLW1haW50Cis2OTIwNSAwMWIzYWNkMTA5ZGJiNTYyNDgyNzRmNzUxNGZjMjAwYWJhZTcwM2YwIGxlZ2FjeS10cnVuaworNjkyMDYgMmFkZjllZDZiYTdlODk3NGU3NzI4ZWExOTlhODI5YjkxNDE1N2NhZSByZWxlYXNlMjYtbWFpbnQKKzY5MjA3IGZmNjgzYTkyODQxOTM0MGQ1YTAzMTgzZTU2NzFiN2M1MzUxNDBiNjYgcHkzaworNjkyMDggODdhOTg1YTFiNWM5ZDBkYzI2YTE3ZmQyZGRiZjk4ZTZiZmUxMGE4NCByZWxlYXNlMzAtbWFpbnQKKzY5MjA5IDA1MDc0Yzg4MzczODQ3YTNiZWM0ZjNkZTA4ZTIzY2UwN2FjMzUxNjUgcHkzaworNjkyMTAgNjMzODZhZTc3Zjc5M2Y4MWY3MGE3NTg5OGViZDc2YTEyNjc3MTMyNSBweTNrCis2OTIxMSBmYTc5ZjEyMmExYjI1ZjNlNDMyMTM3Y2NlMWJmNDJlOGIxNzg4NDE5IGxlZ2FjeS10cnVuaworNjkyMTIgN2I3YTYzOWI5NjBmNWMyZDNjYjgzNzAyMTk4NWY1NjY0YzhkNjZlYiBsZWdhY3ktdHJ1bmsKKzY5MjEzIDBjMzIwZjhlN2UyMDM0NTg3MzIyZjhjOWJmZjZlM2QzMzVkZGFlMDIgcHkzaworNjkyMTQgZGViZDE0YzQ4OWI5MjE5YTU0OGZjMzIwMDJmNGE0ZWU4M2QyYTQxZCBweTNrCis2OTIxNSA4N2ZiYmYyMmFkZjM3YmE3OGNmOGNlYjEyNDM3MjcyN2ViMmYxMTRlIHJlbGVhc2UzMC1tYWludAorNjkyMTYgNWM3MDJhN2Q0YzQwOWFmY2MyMzFkOTNhZGU0OWZkZTc1MjE2MjA4YSBweTNrLWlzc3VlMTcxNworNjkyMTcgNDBmZjgzZTAyMzk1MzFlYzM4ZjZlYmQxOTRkOGQ3ZjYyNWQ2ZTlmNCBsZWdhY3ktdHJ1bmsKKzY5MjE4IDkwODIxYzdhZDg3NGY4OTMzNDc5ZDk5Mjk2YzQ4NDU0MTRmZDY4MTEgcHkzaworNjkyMTkgOTkxM2M0NzE1MjYxMDY3NDI2NTBjNjhiOTlmNGRhYWY0YWJiMGY0MiBsZWdhY3ktdHJ1bmsKKzY5MjIwIGZhZTE3NThhMjM0NjUxODcwMmUxZjk2NmM4ZDUzNjhhNmE1MDY5ZDQgcmVsZWFzZTI2LW1haW50Cis2OTIyMSA2MzBhNDM0NTFkMDRhYTBhNGRhMTQ1YTdlYmM4MTQyY2U2MjYxMzBhIHJlbGVhc2UzMC1tYWludAorNjkyMjIgYTk1MzQzOTFmZmY5ZjFjYmUwMTViYmVkZGQ5Nzg5NGIwMzYzYzg0YyBweTNrCis2OTIyMyAzNjJkOTZkYmU5MmM1NDEwMmYxMmYwNmQyOWQzZTFhMmE2YmNlMWM1IHJlbGVhc2UzMC1tYWludAorNjkyMjQgNzg2YzEyNzg1NzJjYzZmMzc4YjU4ZWUxMGRiMDEyYmZkOTU4ZjAxMCBweTNrCis2OTIyNSBjMjFkOGNkY2NhZTEwZTcyYzYxZTFlN2U1OTI5OWFmMDNhYmUzMmYzIHJlbGVhc2UzMC1tYWludAorNjkyMjYgMTQ3OWRiMmVmOWNkNTNiNWVmMTkwMTQ0YzRlNDcyZTE1ZDlhYWI1YiBweTNrLWlzc3VlMTcxNworNjkyMjcgNmM4ZWRkZjI0MDM1ZDM0Y2M5YzJkNmM5ZjJiMTdlMTRmYjI4OTI4YiBsZWdhY3ktdHJ1bmsKKzY5MjI4IGNhNzFhNDRkNTQzMjIyOWI4NzAzZmUyYzgyYzIxMzAxNzU2ZDI1Y2YgcmVsZWFzZTI2LW1haW50Cis2OTIyOSA2MjUxYjlkMzIxYWY4ZDk1ZmI0MjJhN2Y3ZDc0NWU2NWE3MmIwOTU3IHB5M2sKKzY5MjMwIDc0NDM4ZmMxMWQwNWRjZGE5N2EwOWMxMmY2MGEyZDk1OWY4MzY5MzcgcmVsZWFzZTMwLW1haW50Cis2OTIzMyBmNWQxNDM0ZjRkM2Y5N2UzYzM2ODJhNWM1NzEyZmQxNWExZTY2Y2Y2IHB5M2sKKzY5MjM0IDk4ZjRjOTA2ODc3NTA3MTBmYjRlMWE2Yzk2MmMwNDI1YTcxNDEwYmQgcHkzaworNjkyMzYgYzgyMDcyNTI2NWFiMTkwOTBiY2FkMTYxN2E5YmU4YWI2OGMyZWNkZiByZWxlYXNlMzAtbWFpbnQKKzY5MjM3IGQzZTZmMjYwMjMwMGNhZWE3NjVkNGEwNTEzMzc4ZjYyZDJkM2I2YWEgbGVnYWN5LXRydW5rCis2OTIzOCAzODgwYTE1OTIxMzdlNjhiODkxYzg0ODE3NmExOWUxNjY0ZjJlMmE2IHJlbGVhc2UyNi1tYWludAorNjkyMzkgNjc2NTQxMDZlZTc5NTc0YTZmNGE4OGQ4YzViNGU2YWZlM2JjZDhjYiBweTNrCis2OTI0MCA3MzU0ZjFhZmFlY2I0NWIxNDFhMDQwOTI5OGU3OTZmZjI2ZGIxMTBhIGxlZ2FjeS10cnVuaworNjkyNDEgN2JhNDFjMDkxN2ZmN2IxMDQwNmVmNGJjOThhNjRiMDk2MGU4MWI5NSByZWxlYXNlMjYtbWFpbnQKKzY5MjQyIDVjMjU0Nzk1YWEwN2E3MjcxOGNjMDZjODZmNjExNjhmYjE2ZDUxMzcgbGVnYWN5LXRydW5rCis2OTI0MyBhZWE5MGY1ZjM5OGJkZWMwYzNjYTM2ZTE3NjAxMjNjMmJiYTQyYjlkIHJlbGVhc2UyNi1tYWludAorNjkyNDQgYTFhNzFkNTE1ZGQyZmQ5ZjliNTBkOWEyZGZjZjQzMDVjODJkYzk5YyByZWxlYXNlMjYtbWFpbnQKKzY5MjQ1IDBmM2FhYmFlNGNjNjQ2NTk5MjI5Y2RhOWI1ZmRkNjE4NGYzYjAyNzcgcmVsZWFzZTMwLW1haW50Cis2OTI0NiA1YjcxMzA0NWVhOTA2ZTBmZTIxYmJmMWExNjRlMzE4OTM5YTA3MjFmIHB5M2sKKzY5MjQ3IGYzNzcyNzc0ODJhYjU4NjA4MDI3MjM1MDRjOTY0MWM4Y2M2NmJiYTUgcHkzaworNjkyNDggZjM1MWZiN2VhMTc5NmFjMDk0YWFlYWI0NmIwYzg3YTA1NmYwOTFkYyByZWxlYXNlMzAtbWFpbnQKKzY5MjQ5IDg1N2EzZjlkYTkxNTMxNTllNTIxNmZmZWJhNTNmZDdiMWJmMWQxMjcgcHkzaworNjkyNTEgYzUxM2U3MjhlMjRjYmY1NjY4ZDhkOGJhMDE2MWFkYzAzZTgyYzE3ZSBweTNrCis2OTI1MiBlMjBmNWE2ODRhZWZhNTg4YjQ1MGIzMzBhNGI2YTFhMmNiNjVlYmI5IGxlZ2FjeS10cnVuaworNjkyNTMgZWM2OWRiMjRkZTE5MGE3ZTkyMjQzZDA3NmQwMTgwMzViOGNmMmJhNCBsZWdhY3ktdHJ1bmsKKzY5MjU0IDhiMDg4MmM2N2I2Y2ZlMWYwODUyYzYyZTBhMWMyZGJhNGZhNDE4YzAgcHkzaworNjkyNTUgZTVhYmFmYWUzNjA0NWM1ZWJiY2Y0MjcxN2UzYTdhMDE2MjQwYTFlOSByZWxlYXNlMjYtbWFpbnQKKzY5MjU3IDc1NTIxYzEyMzYxM2FjYWJiN2VkZjJjYzRjNGY2MjkzNjUyNWZiYmYgbGVnYWN5LXRydW5rCis2OTI1OSA1ZjMzNTRjNTJlOGI4YWFhZTRhMTc0NDQ0MmViYjMwNTllYTI0NzA3IHB5M2sKKzY5MjYwIGU5NzA3Y2MzNjg5ZDM4ZGJhYWQwMGU0OTQ3ZTMxY2I1OTJkM2VhYWUgbGVnYWN5LXRydW5rCis2OTI2MSA4YzAxOTg3NzRlZDZkYWJlZjNmZTVhY2FjMzI5YTlkNWE0NTkzOThlIHB5M2sKKzY5MjYyIDFlN2EwNmE3ZjVlNzhiMDc1MWNkOTQ1NjM5MzVkNWQ3NTY4Yjc5NjMgbGVnYWN5LXRydW5rCis2OTI2OCBiNTg2Y2EzYTMwNjIyNTJhYTk4YTYyNDU3MWZiNzBlYTg4OTBmMDY4IGxlZ2FjeS10cnVuaworNjkyNzEgNDg0NWFiZjU3MmYxNDZiODRmYmE2MjEzYTE0MTFjZWRmOTc2NTMxMyBsZWdhY3ktdHJ1bmsKKzY5MjcyIGVjNjM0ZTU3YmM1ODYyMzY3YzBmOGJlODkyMTA0Yjc5Mjc0OTBiNTcgbGVnYWN5LXRydW5rCis2OTI3MyBmNzQ1Mjg3NzZjMTE1ZjQzZWExM2VmMDJkZjNhNGViMjM2YzJkZTE2IGxlZ2FjeS10cnVuaworNjkyNzQgMjQ1NjZlNDk5N2FlMmY2NzVlNmJjOGZhNTAwNDEyNjhhYTgxZDdlNiBweTNrCis2OTI3NSBjZTA0ZTM2ZjJhNTU5OTI5NmI0NzRjZGJhNzEyYjlmMjZkMmQ4OTg1IHJlbGVhc2UyNi1tYWludAorNjkyNzYgMmI2MDNmNzIzMjYwNWRmMzU3ZmYwMDU1YTdlNTMwMzU1NDBhNTI5YSBsZWdhY3ktdHJ1bmsKKzY5Mjc3IDQ3M2ViMzcwZGUyY2ZkNjZhYmZiZmY2MWZmNTc3Y2YwZmNjYzc2MTYgcmVsZWFzZTI2LW1haW50Cis2OTI3OCBjOTFiNzZkOGVjMGE5NzE2NWU1OGM5NjBkNmE3OWI5MWVlOTMzY2ZiIHJlbGVhc2UzMC1tYWludAorNjkyNzkgYWEyZWIwZjI0MmZmZDk1ODhiY2M0NzEyODI2MzIwOGM3ZWRlNjQzZiBweTNrCis2OTI4MCA4ZTE1ZGYzNzI2ZTEyMDlhMDFiMTNmMTJlZmU4YmIzOTU3ZTdiZTlkIHB5M2sKKzY5MjgxIDUzZDY0NDVjNmM1YThkOTg2MDNlN2MzZDMzMzg4OWU5YWFmNTRhOTEgcHkzaworNjkyODIgYjQ2MTg1ZDdlOTVhN2EwYzMzMWYyNzY4MzRmZjVjYjU2YzAyMDY1MCBweTNrCis2OTI4MyAzNzhhYmIyODFlMzE1Y2QwODQwMGRiZjI0ZjVmMjk2YzUxMmU0ZDdiIHB5M2sKKzY5Mjg0IDhiMThiMzg5MGUzMTYwOTRjZGQwMWJhYzcyMDIxOTU0Mjc0NWE0YzkgcHkzaworNjkyODUgZTIxNGJkZDU1MmZjMjZmNGY2YjJjMGNhYzYzNGY4ODJiNjg4ZDYxMCBsZWdhY3ktdHJ1bmsKKzY5Mjg2IDVhOTQyNDg5M2I1ZmQxZDZlYzU4OTQzZGQyMWY1YWM0NjhiNGQ4ZDMgcmVsZWFzZTI2LW1haW50Cis2OTI4NyAyMzMzYTU3ZmViOTg1MDJkZTBiMGFiZjIwYmJkMTNlM2UwMWQ5MDM1IHB5M2sKKzY5Mjg4IDFiMjMzYzgzZjJhOWI4MWFjZjBlZjJmZDQ4MjlmNjQzZjVlODM5ZTkgbGVnYWN5LXRydW5rCis2OTI4OSBjYTQyMzAwOGZhNGFlNjUwZmMyZGQwYjNhMzU1ZTg3Yzc2YmEzNjRhIGxlZ2FjeS10cnVuaworNjkyOTAgOTIxN2IzYTQ3NTI4NjI4MGYwNjFhN2FmMTlmNDY3ZDc0OWEyMGQ0NiBweTNrCis2OTI5MSA0NDUyZWIwNTdjYzRjZGFlZDRmOWU4MTU2Yjc0MWIxNzJmNTgwZmI3IHB5M2sKKzY5MjkyIDNmMjc3YjU2NWY3NmVjNjhkMjdmY2RlOGE3ODY3ZDY4ZjhkMzQwZGUgcHkzaworNjkyOTMgOGFhNzFjMTlkY2I4MDhjYTgxYzZjMmMzZDFiNGExNzU0OGZkOWJmNSBsZWdhY3ktdHJ1bmsKKzY5Mjk0IDE4ZDM3MjllMmJhYzAxMmMyN2ZiN2IzMWVhNzU3MDFjYTk2ZTgyMDMgcHkzaworNjkyOTUgYjEyNmNlNzA3YTM0NmU4MDNmNzM3ZGNiY2I4NDg3NDc4NTliOWRlZSBsZWdhY3ktdHJ1bmsKKzY5Mjk2IDUyZjc4YmIyNmJmNTBmMzRlNmMyYmJmMDA1ZWIzNDViZGUwZTc0NjkgcHkzaworNjkyOTcgZWVhYTI1OTA2OWEzM2JmOTIwNWJjYjBlMjNjZDA5YWE5ZTE4Y2ZiNSBsZWdhY3ktdHJ1bmsKKzY5Mjk4IDhmODkxMGYzYjY1MWMyODNlZGE0NzlmYWVmYTM5NmZkYmExNjNjZjUgbGVnYWN5LXRydW5rCis2OTI5OSA4Yzg4MGJiYmU2ODVjMjIwMTYzZDE2YmQxZDIwZGYzYjgyNDg5Mjk4IGxlZ2FjeS10cnVuaworNjkzMDAgMGM5ZDU5OTgzNGI4YjRjYzRjZWVhMWMwNTRlZmFkMTkxNjg2YWY4NyBsZWdhY3ktdHJ1bmsKKzY5MzAxIDQ1Nzk1N2E3ZDZiYTliYWY5YWNiMjA4Y2FhMGUyMjY3NGEzZGE1MWMgbGVnYWN5LXRydW5rCis2OTMwMiBmNDAxMmU3ODI2MGM1ZDkwNDRmMDE4NzljODc1ODk2ZDcxZWQ4YmIwIGxlZ2FjeS10cnVuaworNjkzMDMgYmYzYjhlMzAyMTNmNmFmZWU0MDA3NTk5YjYwMGE4ODRkZjVmOWE1OCBsZWdhY3ktdHJ1bmsKKzY5MzA0IGYwZTVmODU4OWEwYzNkNDY2M2NmMjUxOWI1MGJhZGU0Y2U4ZjdmNzUgbGVnYWN5LXRydW5rCis2OTMwNSA5MGE0YzY2NmY3N2E4NTczMjkxNTNlMDc4M2FiZTExNWViZDc0YjgwIGxlZ2FjeS10cnVuaworNjkzMDYgNDFjNzFhZDQ3Zjg5M2QzMmRmMDBmMjA2YjhkMmIxNTQxMDQ4NWYwYSBweTNrCis2OTMwNyAzMjFmMjdhNDE0ZTg1NGFkZWY1MGY0ZWQ4ZmMwNDRjY2Q2MGJmNTEyIHB5M2sKKzY5MzA4IDc2MjM5Nzk4YTYwODQ5ZDllYzM3YmI1ZTNlZTU2MjE1YTNhYjBiZmUgcHkzaworNjkzMTMgM2ZjMjVhZTE4OWU5NjhhNTA3NmZiOWFmMTIxYzgzNTZmNWZjNjgzYSBweTNrCis2OTMxNSBlMDVjNmJlNmFmMTAwYTg5N2I5M2I3NGEzNzNmMDcwY2U1YjY3N2RjIGxlZ2FjeS10cnVuaworNjkzMTYgNDY2ZWI5Nzg0ZThiYTkwOGFhNGI2MmU5ZDUwNDAxOTczODU5Zjk3YSBsZWdhY3ktdHJ1bmsKKzY5MzE3IGVmM2M2ZDliNGZlY2E2NzdiOTQ2ZDQ1MzgzZGYzMzRlY2NmYTMwN2QgcmVsZWFzZTI2LW1haW50Cis2OTMxOCA5OTdiMjYzMmM5Yjc1YTFjYjY4MjBkZTJhOGQxMjZjMTliOGEzYzVkIHB5M2sKKzY5MzE5IGZkZTAzZTc1YmMxMDBhZGRiYTNkOGU4OTI1NTExNWI2ZTQ0YzU2MDQgcmVsZWFzZTMwLW1haW50Cis2OTMyMCBkYzg1Y2E0MTIwNzlmNzgzYWRhYjIzMzVkODFkM2Q0ODBlYmE3MjYwIHB5M2sKKzY5MzIxIGU1NDI1YWY2MGYzMDQxNjE1MDcyMDMzYTkyZDM1MzBmZjIwMWI3MDIgcHkzaworNjkzMjIgYTE4OTNjNjkxODc5NGQwZjRiMjcxZWQ5ZTJiZmZjNzk2MTYwOWZhZCBsZWdhY3ktdHJ1bmsKKzY5MzIzIGU2YTE0Njg4NTgwZWY0ZGQ2MjdlY2JhNmI0MDc2NTI0MTk0ZDZhMzUgcHkzaworNjkzMjQgNTBkODk0MzZhZWFiNzNkZWViMGJhMzdmZGRmNjAwYjRjNjRiYjg2MyBsZWdhY3ktdHJ1bmsKKzY5MzI1IDE2NzEwMDQ4MzlmOGJmZmUyOWViMDdlYjhlMWYxMWNlMjFlYjk4ZTYgcmVsZWFzZTI2LW1haW50Cis2OTMyNiA3ZTFhMzg1ODQ3YTk4ZGI4ZjUzNWRlZjI4NjA2NDg5YmU1NjVlNjE2IHB5M2sKKzY5MzI4IDM3NDMxY2QxMmJmMjc0YWRjNjk4YmFlZTNmZTcwMWNiYTllYjRjNzQgcmVsZWFzZTMwLW1haW50Cis2OTMzMCAyMWMzZTM1MzE1MDQ2MzYxYTAwYzdjZTNmZDUzMjkyZmJhMGZhNTAxIGxlZ2FjeS10cnVuaworNjkzMzEgZTIzOWU5NzdiYjMyYTJkM2E2MTYyMGY2MDUyNDViZDVkMjdiOTljMSBsZWdhY3ktdHJ1bmsKKzY5MzMyIGEzZWE2NWJmZTM3MDZhNDZlODU4OWIzNTFiYTA0MzllOTFjZTVhMGYgbGVnYWN5LXRydW5rCis2OTMzMyBmNzhkN2ViYjk2ZGE4NGM2Mjg1MWM1Y2IyOGMxMGZhMzFkNjI2N2JlIHJlbGVhc2UyNi1tYWludAorNjkzMzQgYzUwMjJiMTA2NGVhNjZlZTM1MDdlZTBhNmFiMWEzMDk1ZmM5ZDg2NyByZWxlYXNlMjYtbWFpbnQKKzY5MzM1IGU0MzlmOTcyMmE3MzQ5ZGZmZTVjZmIwNzI4MmIxOGNhYzQ4OGUyMjkgcHkzaworNjkzMzYgNTQwZmJlNWM4MTYzZjQ5OGY2ODA5NDJlYTZkNmZlYTZlMmNkMDg3YiBweTNrCis2OTMzNyA3YjhmYTI2NTI4NjY5MTA3ZDFiZjM0MzEzY2M2YWI4NTk4NmQ5Mzg0IHJlbGVhc2UyNi1tYWludAorNjkzMzggZGI4ZWZjOTQwMTZmNGRkY2MzYzIwOTY3MmUyMGVlNTkxZWM2YWRhMyByZWxlYXNlMzAtbWFpbnQKKzY5MzM5IGQxODU1MDI5OGFmODc3MzAwZjM0NTExM2ZkNmZhMmEzNGNlNzQ5ODggcmVsZWFzZTMwLW1haW50Cis2OTM0MiBmZGVjYjkxODI2MDQwZGZhNzY5N2NjNjJlZmRhNzFlNjY4ZTAwYzJmIGxlZ2FjeS10cnVuaworNjkzNDMgMTNmMTM1MmEzZjg3NDNlMzljNjJhMGJkYjZkMTUwZDUwOGQ0ZDA4NyByZWxlYXNlMjYtbWFpbnQKKzY5MzQ0IDIwNzA5NzY5MTk3Mjc0YWIwMjJkYTU4MDcxOTc2N2U2OWNkZDE0YjUgcHkzaworNjkzNDUgOWM0NmQxMDkwMDdlNmM4ZjJkOTk3OTYyMWQ4OWRkNjUxMzc5NTJhNiByZWxlYXNlMzAtbWFpbnQKKzY5MzQ2IDRjYzQ5ZDk3OGVjMjNhYTU1ZmJhYTMwYWFmZjgzZWVlZjM0ZDc0NDAgcHkzaworNjkzNDcgYmJjMWM2ODE1M2FiZGViMmU5NzRjYzBkZjI3ODNkMGE5MDU4ZGFiMyByZWxlYXNlMzAtbWFpbnQKKzY5MzQ4IDBmNzUxMTUzMzA3ZjQ2OWUzZGMwYTgyMDlmNmZhNGNiNWMyZjMwOGYgbGVnYWN5LXRydW5rCis2OTM0OSBjNGM2MTJkOTVhOWI2ZDk2MzYwNDkyNjdlZDE1ZmM2Yzk2YWNlN2YyIHB5M2sKKzY5MzUwIDdlMjhhMmIwYzFiMWYxOWI1M2U4MzRmOGM3MjNiMTM4YzFiZTY2ZWQgcHkzaworNjkzNTIgYTAwZTVkY2VhMTZjOGUwNDg4NDVmOTFjMzkyOTc5MjAzN2NjMDcxOCBweTNrCis2OTM1MyA3YTA1MjU2MTM2NDQ3ZTBlNWVjMTI1ODE0M2Q2OTIzMWJkYmRjMjVkIHJlbGVhc2UzMC1tYWludAorNjkzNTQgZjk4MWUwNTU3YzM1MDdjYjQ2ZjVjOTk5YTg2NjhmM2RmZjBjOWE2MiBweTNrCis2OTM1NSAwNWQxY2IwNTNkNDdlNGZjYWQ4MTAyNTQ3MTFlOTllZjFmODEzMmVkIHJlbGVhc2UzMC1tYWludAorNjkzNTYgY2M4MjUzMTE2Mjc1ODBiMTAxNGEzMGJkYjg1ZjdjZTllYzZmN2YxNCBsZWdhY3ktdHJ1bmsKKzY5MzU3IGYzODc4MzRjZTVkY2QzNGU3MTMxNjI2ZDYzZTI1YWI0YTg2OTViZmQgcmVsZWFzZTI2LW1haW50Cis2OTM1OCA1NGU0MDljMmY0OGQ2YTEyNjBiMTQ4NWFkZDkwZWE4NzA5NWU4NTAzIHB5M2sKKzY5MzU5IGZiNDUxMTFmMjQ0ZWI1ZTlhYzYyMzhlMjA0NjRkODNlOGI3YTZkNzUgcmVsZWFzZTMwLW1haW50Cis2OTM2MCAxODNhNmMyOWJmOWMxOGRmNTliYjgxMmU4NzY2YmFlOWIyOGU2MDBlIGxlZ2FjeS10cnVuaworNjkzNjEgNmY0MDc2OGQwOTA5ZDY5YTQ2MmU1NGU0NjFlM2FhOGU0OWQ3ZDU1MiByZWxlYXNlMjYtbWFpbnQKKzY5MzYyIGI0ODIwZmNlZGEyNDFiMjVkN2Y5MTYwZjI5ZGZkZjI1NTBmMDgxMzMgcHkzaworNjkzNjMgZGI0NmY4MmQwYTFkMWRlNDM2ZDJmMWIwNGYyZjBiNmNlNDVkOWU3YiByZWxlYXNlMzAtbWFpbnQKKzY5MzY0IDQzMjdkZmE2ODExOGY5OWIxYjk3ODAzNzIwY2Q5NDkyYTUwNDdiYzAgbGVnYWN5LXRydW5rCis2OTM2NSAxODIxMGFmZDAwNWE3MTA4NDViYjQ2NTAzODIyODViZTc2MDI3NzIzIGxlZ2FjeS10cnVuaworNjkzNjYgYzlhZmZiYTA2OWVhZTU5NTQzNjVlZTQxOTY1NDVmZDgwOWJkOWQ2ZiBsZWdhY3ktdHJ1bmsKKzY5MzY3IDI4ZTQzMGYxNGMwZGNmNDMzNzYyMWJhYzdhMjhmZDNlNDEyZjFiNzEgcmVsZWFzZTI2LW1haW50Cis2OTM2OCAxOWRiMzc5YmFjZjgzMzc3MjgyYjIxNDdiMjdkODIzNzM2N2U0YjI1IHB5M2sKKzY5MzY5IGYyZGYxMGJhNjA1NDg1ZjNkMDYyOGQyNTQ0NDAyZmMzNGExN2IxOWEgcmVsZWFzZTMwLW1haW50Cis2OTM3MCA5NmZlNDVkZTdmMjZmZWZhNjVkNThlZGMxMjgyZGIzYzVhNGVmNTc5IHB5M2sKKzY5MzcxIDFjZTAzNmI4ODA5MzY0MDFlYTE1OWJhZWRmYzI5MjNiZTUxNjc2MzggcmVsZWFzZTMwLW1haW50Cis2OTM3MiBkMWU1NDA3ZDU1MDliYWQ4Y2YxNzY1NzNmOTU5ODEzOGMwOTk5Y2Q0IHB5M2sKKzY5MzczIDQyZmFhODA1NGMzZGNiYTJiMTY5OGQxYWE4YTY1YWI3MDMwZTY4MjUgbGVnYWN5LXRydW5rCis2OTM3NCBiYWE4OGU5ZTk3NjZjYThkOTI0NjVhMTMwODBkNDVkNWM1ZGJjYjc4IGxlZ2FjeS10cnVuaworNjkzNzUgMmE0MGQ5ODFjNjUyYTJjM2NlZmE3Yjg0YThiZTM3YzkwZmFkOTljMCBweTNrCis2OTM3NiBkNDYxM2U5NzA0OThhNGFiNWU2Y2E2YTQ4YjY1NjE1MzVhYjViMDY5IGxlZ2FjeS10cnVuaworNjkzNzcgOTg1NmM0ZmFhYzA0ODFiZDcwNGZlMzI2MTBkYWQ5ODA3MzI0ZjNlYSBsZWdhY3ktdHJ1bmsKKzY5Mzc4IGI0ZTE1NGM4YTM4YTU1YjdjOTIyNzc4Njg1ZDJmMGQ0YjU3NzU4Y2YgcmVsZWFzZTI2LW1haW50Cis2OTM3OSBkMmRlNWRhMGY1NjM0ZmI4M2ZkODY4MDg1YjhjNTMzOTMyMzU3ZGEwIHB5M2sKKzY5MzgwIDU4YjdkYzljOTU1N2I3YmQ5MmQ0OTdkZjEwMTY1ODVhZjgxZWQzOWIgcHkzaworNjkzODEgYzAyODk1YTNlZDZkNTdmM2Y4NmI0NGMwNmJlNzBiZTI3YzZmNDgyNiByZWxlYXNlMzAtbWFpbnQKKzY5MzgyIGUxN2IzN2MzNWM3YmIyNDA1MWRjOTViNWI0OWNjMmM2NjMwYzlkYjAgcmVsZWFzZTMwLW1haW50Cis2OTM4MyAwM2FkZGQxNGU2ZjJjMzFjZTdmOTVjODMyMzhiMmU0NGQ1ZGE3NDk0IHJlbGVhc2UzMC1tYWludAorNjkzODQgODE5NzE2NmFhMTliN2RjMzNlNDdjOTBjMzgwZTY2MmM5NjRmNGJlZSByZWxlYXNlMjYtbWFpbnQKKzY5Mzg1IGE3MTMyZGI2OTA5MjE4ZjAyMWUwM2YwMTQ1OTJiNmI2NzUzZTFhMzUgbGVnYWN5LXRydW5rCis2OTM4NiA3YWQxYWI5OTA2ZWU1YWFkOGRmZjg0OGVmZTliZTE3MjIyN2FlZDk0IHJlbGVhc2UyNi1tYWludAorNjkzODcgYjA5MWJmODM0MjI2YTM5YTAyOTJkZDBkNGVjYzVhZTkyYjQzZjk0NCBweTNrCis2OTM4OCA2ZTkzZGQ1NzhjYjg2NjBmZmUwYTE4YmMxM2IwODhkYTc5ZjBlZTcwIHJlbGVhc2UzMC1tYWludAorNjkzODkgMDE1MWM1MTRkZjU2OWVmMWIxODUyZDRmZGE3ZTEzYzczY2I0ODVhZCBsZWdhY3ktdHJ1bmsKKzY5MzkwIDIwN2QwZWE5NTNkZjE4NTUwY2ZkNzBkYTAwOGJhNTUxZTQ4ODI5ZmMgcmVsZWFzZTI2LW1haW50Cis2OTM5MSAwYjM4MWI0MjNjZGY3MjM5Y2MxYjE4NzcxMzQ1NDNiM2ZkYzMxYWY1IHJlbGVhc2UzMC1tYWludAorNjkzOTIgNjZlY2ExM2VkZTE4M2MyZTI4MGRkOGFhNmJiZWQzODgyNjM2ZjkyYSBweTNrCis2OTM5MyA4MTE1NDY3NzBkMjBmNjBjZDQ0ZjgyNzkxYjQ1Mzk4MjU2MGEzNDAwIHJlbGVhc2UzMC1tYWludAorNjkzOTQgNDgwOWFmYTg1YTliNmJlOWJhNjMwMjkyNGRlMDViOWU3YWRmZWZiZCBsZWdhY3ktdHJ1bmsKKzY5Mzk1IDdhMTM1NmQyYWVlZjMzYjg2MWJmYjY3MDJjYzExYTg4MmU1ZDBjNjIgcHkzaworNjkzOTYgYWI2MGJkYzcwNzEwNmI5OGUxYjU2Yjc1NThkOWUzN2IzZDhkYjE1ZSBweTNrCis2OTM5NyA2NmRhNTI4MzMzNGYwNjFiMWQzODA1YTZkZDdhMjIyMzM5NGVkMjNiIHB5M2sKKzY5Mzk4IDM4OTYxMzNjOTVjYmE4ZmNkMDBiNDgxMmQ5NDc1ODMzODdlYTQzYTYgcHkzaworNjkzOTkgNWNkYzVmMGMxMzRjOGU2NDU3ZjQ0ODAxOTA2YzQyNzFjYjk2NTBhOCBweTNrCis2OTQwMCAzMjk1NzkwYTY1YmU3ZmNhNzlhODk4ZGJiZDk2OTAwNTNjODExNThhIHB5M2sKKzY5NDAxIGJjNThhNjFmODE3YmY5MjhmYjg2N2FkYTEyNzZhMTljMzM2NThhYjUgcHkzaworNjk0MDIgNDNkM2E5NWVkNjYyMTk3MjAwMWZkYjAzYzVmN2U5NjRiODJiYjFhNSBweTNrCis2OTQwMyBlZWYzOWI0Mzk2ZmZlNDYxZjY1NmUzNGExNzgxZjgxZDk1MjljNDFmIHB5M2sKKzY5NDA0IDJmMWVmZmYwNjZiMzg4MmQ3MDMxYzA3ZTE2Yzk2NTY0YzliZjgyMWUgbGVnYWN5LXRydW5rCis2OTQwNSAwMjUwNzg4MjdiNTQwODZjNzE0ZThiNzJkYjNiY2RmMzJkYmU4ZTM1IHJlbGVhc2UyNi1tYWludAorNjk0MDYgOGNkOGUyMzY4ODIyMTFlNGJhODYzOTY5OGIxMTc5MGVkMTE0YjRhOSBweTNrCis2OTQwNyA5MmZhMzliOWFmMTNjODM2MWQ1MjQ3OWJlMjY5Zjk0NmZiZWI1NzRkIHB5M2sKKzY5NDA4IDg3MzE3YTg4OWRiMDQ0YTY0MTY2ZjhmNjRmYTIzOWZiNjZhYzE4NzcgcmVsZWFzZTMwLW1haW50Cis2OTQwOSA2OWIyNmU5OTBlYjg2MTBmZDBhZWY5MDViNGE4NjUxOGEwYmE2ZDljIGxlZ2FjeS10cnVuaworNjk0MTAgOTllMjY0ZmUyMzgzMGIzYzZhMjM1ZWNhZDZiNWM0ODZiOGRmZTg3MyBsZWdhY3ktdHJ1bmsKKzY5NDExIGMyMWZiNWVmYzYzOGRhMjVlZjQxODZlYTFkYmU0NTVhYTJhOTQxMzAgcHkzaworNjk0MTIgOTAxY2IyMDdiMWQzMTdlNjhlMTgxODUyNzdjM2U4MzMzZThhNTE3NSByZWxlYXNlMzAtbWFpbnQKKzY5NDEzIDQ5NGRhMmM3MTkwMmQzYjZhMjkyZjRlOTk1MzgwN2ZkZjVkNTI4NzAgbGVnYWN5LXRydW5rCis2OTQxNCA5ODk5YWZlMGZmOGMxOGNmZDkzZWNkZGZjMTIwYTg2ZjgwOWUxNWQwIGxlZ2FjeS10cnVuaworNjk0MTUgMGFiMzY3OTZkZDc5NTg5MGM4YmM2NDA2NzM4MmZiNTNmNDNjZDgzOSBsZWdhY3ktdHJ1bmsKKzY5NDE2IDMyMGNkNzFlMmM1NjJjYWQ3M2E3ZDljYzBkYmZlZmUwNDU0ZWI1MzEgcHkzaworNjk0MTcgMTAwYWU2YThiYzJkYjM5NjdjZTY4YzUzZGM5ZTlmMTg4MDRkMGNiMyBsZWdhY3ktdHJ1bmsKKzY5NDE4IGNjYzcxODhmZGQyOGZjM2QyMjA3N2NlMGIwNGE2NzVkOWQ5NDYxY2IgcHkzaworNjk0MTkgNWNjZTk5YWExZjU4YWM3YjkyMTNlM2Y1MjI1MmVkNmI4NDhkZGY0MiBsZWdhY3ktdHJ1bmsKKzY5NDIwIDU3MDhhMWUwMTY0NTkwZTYwOTQxYzQwM2JhYjIxMzYxMmNlN2IyNmMgbGVnYWN5LXRydW5rCis2OTQyMSAyZDM1NGY0ZDc3YmNiYzZjNzVhNzQwZDhmYjUwZjhjODdlNzRiNmY0IHB5M2sKKzY5NDIyIDE3NThkZWQ0NGI0ZTBmYmI0NzFlNjEzZjc2OTBhMmVjNmYzMThlNzUgcmVsZWFzZTI2LW1haW50Cis2OTQyMyBmODVlY2Q3NTY0MTE0YTIwMjAxNGE5ZjQ1YWE0ODI4MjQyNjdlYTNhIHJlbGVhc2UzMC1tYWludAorNjk0MjUgMTE3ZTE1MmU1MTNhNjUwY2RiMTg0MjQ5NWVkM2JkN2MyYmE2MjdhOCBsZWdhY3ktdHJ1bmsKKzY5NDI2IDc0ZDE5NmM1NDJmNzhhYjhhOTQ5Y2U2Zjg3NjJjMDE4MmZhMzc1Y2MgcHkzaworNjk0MjcgMWNjNjFjNzliOWNlYWZhZjJiMGUzZTczOWM0ZDY3MWYzMmYzZDhhMiByZWxlYXNlMjYtbWFpbnQKKzY5NDI4IGU4ZmExMGM2NmQxODNlMGU5YjdiN2I2M2RiNmI5NGM2MjY0NTEyNTIgcmVsZWFzZTMwLW1haW50Cis2OTQyOSA1MDFiMWYwMzVmMjk5MGI4MmM2ZmI2Zjg1ZjYyYTg3OTBlMmFjZjAyIHB5M2sKKzY5NDMxIDBlZDIyZjFhZWQwNDYzOTQwODBlOWVhYWViNTZlZDhlMWVhMzE2OGQgcHkzaworNjk0MzIgN2JmYTY0NDkyZDAwMTYwYTRlMGY3NzIyNzI2Njc1YmJjMTFjZWM4NCByZWxlYXNlMzAtbWFpbnQKKzY5NDMzIGM1OTM1Yzc0OTdmYjYzMWY0MWQ2NTY2ZDAzZGQ4MGY5YjJkYWU2NzAgbGVnYWN5LXRydW5rCis2OTQzNCA0YzdlZDQwZGI4MWVhYmFmYTkzMGQ0NmQ2M2RmNzcxYzQ4NTg2MmQ0IHB5M2sKKzY5NDM1IDBlYjQwNWQwMWUwODNkM2UwNjZlODgxZWZlMzMxZTljYzA4NzVmOTMgbGVnYWN5LXRydW5rCis2OTQzNiBiYmI4MzUwZGRiZDI1OWQxNmZjN2ViYTA2OWE3ZTQ4NTBhYTBkYTA3IGxlZ2FjeS10cnVuaworNjk0MzcgNTg0OWE0ZjkwNGEyYTAzMjU4ZmQ4Y2JmYzJlZDRiNGJkNDM0YjgxYyByZWxlYXNlMjYtbWFpbnQKKzY5NDM4IDk0NWNiOTViMzViZjU1Y2FiNWViYjA0YThmZTlmNmEyMzQ1OGVlMDQgcHkzaworNjk0MzkgNDMxM2I0ZDRiZGM3M2QxNmJmZTU5OTI4M2YyMTRiNGI3ZjMyZDk2NCByZWxlYXNlMzAtbWFpbnQKKzY5NDQwIDIyNGQwZWZjYmY2Yzk0OGQyNzEyYzljOTQwZjJlYjZhMzQwNGJiMjUgcHkzaworNjk0NDEgZmQ3NGIwYzA2OTI3YzkwNDkyMzIyMjFiN2U3OTc5YWM2NDBkM2Q2NyByZWxlYXNlMzAtbWFpbnQKKzY5NDQyIGMzMzJmN2I0NTY0NzIzY2EwMzFjOGM0ZTM0YTBlN2ZjYmI1MDY3MDcgbGVnYWN5LXRydW5rCis2OTQ0MyA5OTRmZTRkZjRhZjcwZjU3YTIwOGMxODE4NTAyMzI3NTQ0Mjg0NTk4IGxlZ2FjeS10cnVuaworNjk0NDQgNjU1MGRiNDkyZjI4OGE3NzJjYTZiMjU5NDZlMzIxN2FiYmRjZmMyMSBweTNrCis2OTQ0NyBlNDkwMTNmMWQ4MzE0M2IxYTJiMjE0MWFmNDZlZDE3ZWFmNTllNzM2IGxlZ2FjeS10cnVuaworNjk0NDggYzE3ZjkyODFhODU2YjFkYTk5NTFlNGFiNDg1ZmE4MjgxMjQ5NTQyNiByZWxlYXNlMjYtbWFpbnQKKzY5NDQ5IDRlYTEyMjk3MzkxNDNlODUyNjFkYzcxNTIwNzIxYWQ5MTEyZGIxNzggcmVsZWFzZTI2LW1haW50Cis2OTQ1MCAzNmJjOGQwZTAxYmY3MzUxMTQ2NjQyMzE1OTdmODZjNDY3ZDczOGM2IGlvLWMKKzY5NDUxIDhjZmExMDhlN2JkYzNiOWM1NDBhYzQ2OTBmOWNiYTBmMjgwODY0NWQgcHkzaworNjk0NTIgZGEwMDcwY2Y0NjU0NGYyZDhmZGVjYzZjNzQwOWYxNjYwOTJkNGE0MSByZWxlYXNlMzAtbWFpbnQKKzY5NDU5IGU0MjNkMDdmMDhhZjBhN2M1M2ExYTk3MmI4YTZlNDQzZDA2NGFmZTAgbGVnYWN5LXRydW5rCis2OTQ2MCBkY2ZmYzcyMzgxZTczNGYzZGE3ZTRmMTM5ZWM3OWUyODlkNzIyMmMyIGxlZ2FjeS10cnVuaworNjk0NjEgN2JiZGNlNWM5MjUwNTI2MTUzNmYxMWNjNzkxMDFiZTJlZTE2MzJkYyBsZWdhY3ktdHJ1bmsKKzY5NDYyIGU0NTUyNTE5NTMxN2QzOTk0ZWIyYjY2MTNjZDg2ZGNkYWRkY2I4NGEgcmVsZWFzZTI2LW1haW50Cis2OTQ2MyA0NzI0NWFlMzIxMWJhNjllZDRkZmRjOWU3YzE3MGZjMjc3N2Q1YTJiIHB5M2sKKzY5NDY0IDY2M2NlNzRkNTE3NTdkNDYzNWIxNDhlNjQ5ZWM0N2E3MWQ0YWQ3MjggcmVsZWFzZTMwLW1haW50Cis2OTQ2NSBmOWYyZWQ3OWIwMGZjMmJmMTU4MzAyZjZjYzI0OTUwODUwNDUyMTAxIHB5M2sKKzY5NDY2IDE1NGU3YzQ3NGFhZDA0N2M5YmRjNWFjYWY5ZTU1ZGRmZTc1ZDQxY2IgbGVnYWN5LXRydW5rCis2OTQ2NyA2NzQ1YmRhYTliNDliNTkzNmRkZDg0MzAxMDhhYTJkZDcwMTI4ZWY0IGxlZ2FjeS10cnVuaworNjk0NjkgYWM2MjQzMmZiMzQxZDdlY2ZkMDk3ZDJhZmU5ZWIxZDZkYjA0ODQ4ZCByZWxlYXNlMjYtbWFpbnQKKzY5NDcwIGJkZGU0NGFmOTc0NDA2ZjM0ZTZiMTUwZDJkMTEwOGE2NDEzYTcyZGEgbGVnYWN5LXRydW5rCis2OTQ3MSAxYTdkZDlkMmU3ZWMzZTEwOWQxNTQ1M2QzYTU0ZDY0MjRkOGVhOGM3IHB5M2sKKzY5NDcyIDYyYTFlZDZlNjM2YWMxZTU2YTA1M2NmMDI4Y2YwOWU1NWJmNjM3ODggcmVsZWFzZTMwLW1haW50Cis2OTQ3MyBmYmJiYzI1OWI1Y2U4OGRhMjkyMzBjMGVlYzk1MDM2OTU5N2M3ZTgwIGxlZ2FjeS10cnVuaworNjk0NzQgZDdjNGQwNzFkYWZhZjE5YWM1YzJiMzFmNWE2MzM0OWI2OWQ2MzY2MyBsZWdhY3ktdHJ1bmsKKzY5NDc1IDI5ODgwNmY2NGRmYTM2NDZkOTMxMDU2YmUwNWQyN2EyNzc0ODg5M2EgcHkzaworNjk0NzYgNGU3YmE2N2NmYTA1MzczOWY3YzZlMDJjOTE2ZTY1ZTA4YWIzNjczOSBweTNrCis2OTQ3NyA4NzIxYzIxM2I2ZjQ0ZDBlNDk3MzcwZTdkNGY3MmUyMjQyNWNiNDJiIHB5M2sKKzY5NDc4IDg3ODIwZmM2NWQ3Yzk4OTkwN2RkNWRiZDNlNDNmOTZkMGY5Nzc2MjcgcmVsZWFzZTMwLW1haW50Cis2OTQ3OSBhOTBjOTI5OGRiYjQ4OGM5Y2MwYWEzMmRjZGU4ODRiYTA1Mzg3YmZiIHJlbGVhc2UyNi1tYWludAorNjk0ODAgYmVlZjg4MThhNjZjMjFiZTU4MTI3OGFjNjEzYWYxMjE0ZjgxZWUyYiBsZWdhY3ktdHJ1bmsKKzY5NDgxIDU4NGM0N2Q4YzkzZjFhNzU0ZmFjZDI3NmIzOWExMDgwNzFkMmUwNGEgbGVnYWN5LXRydW5rCis2OTQ4MiA1ZTdkN2ZkMWRhNWE3ZmFlYjVlNGJlYWMyYWJhZWYxNjRmMjZhMDA4IHB5M2sKKzY5NDgzIGFjOWVmNzQzMWM4ZjEzNGMyMDcyYmQ1ZmZlNzQ1YzkxNzhlZDAyMjUgcHkzaworNjk0ODQgZTc1OWRhOTNkZjY0N2YyNTJmYzQ1YzIxMTQyNjU0OTdkYTYwMmZjOSBweTNrCis2OTQ4NSBjNjFmMjRmZjA1NWU0MGQxMzMzY2M5MzhiOGMwYWM3YjA0ZGU0ZDIwIGxlZ2FjeS10cnVuaworNjk0ODYgMTMwN2E2NmEzOGY4ZDQ4N2YxNjRjMmFhNzdmZjI2YjlhZDU5MDIyYSByZWxlYXNlMjYtbWFpbnQKKzY5NDg3IDhhMjhkOTlmNzg0ZDc3YWM0MWZjNzFlM2I4YTJhNGI5ZTM1NGM2YTEgcHkzaworNjk0ODggMzQyM2Y2NDdiNTRhNjVjMmNjMWNkYzg3ODAyOTU0M2U2YWFiN2U2MyByZWxlYXNlMzAtbWFpbnQKKzY5NDg5IGRhYjgwNjM1MDM2ZTg4MjI4Mjc3NTViN2EyYzFmZDYzMmUzMDhmMzYgbGVnYWN5LXRydW5rCis2OTQ5MCAyYWU3NzBlZTYyODQxNzAxOGM0NzA4Y2NhYzhjY2E2NDYyZDIzNjdkIGxlZ2FjeS10cnVuaworNjk0OTEgMzg2NDIzODViMWUwYWYxNDMwYTgwMWNlYzEwZjczNWVhODNhNGM5YSBweTNrCis2OTQ5MiA2MzE2ZjM3NmI4MTRiYjFkZTNlMTIyZTBlMWVhZDQxYzExMDNiY2Q2IHJlbGVhc2UzMC1tYWludAorNjk0OTMgYmRiMWNhOWFiY2UzNjJkODhmODliYjE1NGY4NGJmMjlhYmRlOWUxZCByZWxlYXNlMjYtbWFpbnQKKzY5NDk0IDFmZWMwYmI1MDlhMmI1ZTQ4MmJkODcxNDE4MmViNjVhZjgxZTgxYmIgbGVnYWN5LXRydW5rCis2OTQ5NSAwNDE1NDE3Y2ZkNDgzYjk5ZmRkNDBiZjE2OTY0NGI2NWYzODNiNmQ1IGxlZ2FjeS10cnVuaworNjk0OTYgZjBjNzQwMmNjMDAwNjkzYTdjZDIzNDk2MzkzYmY1ZjJlZjRhOThhZSByZWxlYXNlMjYtbWFpbnQKKzY5NDk3IDA4ZTBmMDNiYTgxNzI4YzFlOGM1ZTNkYTJlM2QyNDRjY2U2MjRlOTUgcHkzaworNjk0OTggMjA2MDlmYzEzYTEzNTc1NGJiYzgxMTQ5N2Q0YTNmMzdkZWZiMjY0NiBsZWdhY3ktdHJ1bmsKKzY5NDk5IGEwMDc0NTQ4MDEyMGRmOTA3NzcwMDFiNDc1ZDhkZDRhNmQwYzBkZDIgcHkzaworNjk1MDAgMDU4ZGNhNzNlZTMwMjk1MWZlMGZkMmExODg5YmFmZDg0MDZjMjk1MCBsZWdhY3ktdHJ1bmsKKzY5NTAxIDk0ZDlkNTI1NDAxYzE2M2VmZGUwODljNjVlYzRjZjcyODU4MjMxOTAgcHkzaworNjk1MDIgN2Q2Y2RmMzM1YTU3MDI5MGFiMDhjMzIwYzI0ZjE4OTU4ODc0YjhjMyByZWxlYXNlMjYtbWFpbnQKKzY5NTAzIGZmYjljZjk0YzlmMTM5OWZiNjgyYTIyYzNlZDdmZjA5MDY5YzhmZTEgcmVsZWFzZTMwLW1haW50Cis2OTUwNCBmMzU4YmEzZDFlNTM2MzcyN2RjZjVlMjU3NjEyMDhmNjJlMWUzOTg3IHJlbGVhc2UzMC1tYWludAorNjk1MDUgOTViYjc3MzllMzg2Y2JiODkyNTViM2MxNGE5ZmZjMzk2ODFmODdmMiBsZWdhY3ktdHJ1bmsKKzY5NTA2IGQzZTg4Zjc3OGNkYzE2NWFkZTc3ZGFjMDYxOTVkNWM2YmU4NzhkMmEgcmVsZWFzZTI2LW1haW50Cis2OTUwNyA2ZGJlM2Y5YTA0MGNiOGU0ZTRkNjAzNTA3OWEzZGY1ZGUwYmExOTMxIHB5M2sKKzY5NTA4IDk3MmU4NjE3ZGZkYTZkODVhODI3MjdhNzY0MWYwMTMyZDFlY2VjMmEgcmVsZWFzZTMwLW1haW50Cis2OTUwOSA4MzUxNWJkMjg2MjZkNDI5NWZjYTMzZmYyNDAzMGUwODhkZTQ3ODM0IGxlZ2FjeS10cnVuaworNjk1MTAgNzJlZTQyY2M5NTMwZjNmNmY2ZmRkY2MwYzFlNGUwM2VlYWFlZjE2MSByZWxlYXNlMjYtbWFpbnQKKzY5NTExIDUxOTZlYWZjYmQ3MmM2MmVmYjIxM2I0YmZiM2YxNjFjZmY0ODhlYzcgcmVsZWFzZTMwLW1haW50Cis2OTUxMiAyOGJmNDU3ZmIzNGQwYjljMjcyNWRkMzFmY2NkZTgzZDI3ZGZjNDA3IHB5M2sKKzY5NTEzIGFmNDY5ZGMxNWZhN2JiZDk0ZGMxNWY3N2M4NmVhYzNhNTU5MzdkMTYgcHkzaworNjk1MTQgN2JiM2Q1MTViNjc3ZWFmMmRmZDJiZjYyMTc1MDBjZTJhZjBkZTVkOCByZWxlYXNlMzAtbWFpbnQKKzY5NTE1IDljMGE0ZmJiNTZiOTBhZDM3NDM3NDEwNDBhZDAwY2Q4NTEwNDA4ZmYgcHkzaworNjk1MTYgZGJkZDk0Y2QwN2ZiNDZhYzA1MjUyYjY1MWFiYzE5ZGJlMzMyMmY0NCBsZWdhY3ktdHJ1bmsKKzY5NTE3IDdkODk3MDY0YTZlZmI2ZDY3MjNmOWU5NWIyNDUwYjYzZmNlNTFiNWIgcHkzaworNjk1MTggNGQ5YjUyZmNiNWRmOWQ5OWQxNDJkNDQ1MWM5OTljMjk0MGVmNjk0MCByZWxlYXNlMzAtbWFpbnQKKzY5NTE5IGVkY2Y5OTZmMDdlOThmZmExODY0NmJjOTEwMmRkMzQzZWU3MTNlMjggbGVnYWN5LXRydW5rCis2OTUyMCAyOWE5ZTg1ZjMwYmY3Zjg3MTg1OWNkODUzZGU3YjYwMzQ4MTM5OWRiIGxlZ2FjeS10cnVuaworNjk1MjEgZDY5NzY5YjRmZDIwYTQ1ODIyNDk3NzIzNTQ0ZTliODk2ZTI3MWJiMyBsZWdhY3ktdHJ1bmsKKzY5NTIyIGNiZDUzZmY0OTU1NzBiOGE2NWEzOGE1NzU4NmQwZTgzMjI3ZDRkOTggbGVnYWN5LXRydW5rCis2OTUyMyBiMGRiMTA5MDg5Yzk2OGVkYjY4N2I0NmI4M2U0NDVhOWRhYjhhYTc0IHB5M2sKKzY5NTI0IDJhYzAyZGFlZjJlZTM4ZTk4ZjFhODA5ODI5OGJmODM3NDA0N2QzOTUgcHkzaworNjk1MjUgNDM1ODVkYmY2MWQ1N2ExODllODczMGNjNGQxYjVlZDFjYTZmMGM1MyBsZWdhY3ktdHJ1bmsKKzY5NTI2IGNiODE5MGExYmZhYjljNTM5ZjhlZmM5MzIzOGYyOTYwZDBhYTZjMjggcHkzaworNjk1MjcgMmJmNWVkNjcxZDAyYzExNjJiNjhkNmZkYmM1OWNhNzNiZDE4NDU5ZiByZWxlYXNlMjYtbWFpbnQKKzY5NTI4IGRmNjliY2NkZDM2M2JmMjc0MjA0MWViNTk0ZTA3YTY1NDZmMjdiOTAgbGVnYWN5LXRydW5rCis2OTUyOSA3ZDI5YzZlOGJhMDU1ODA3NTEzOWRmOGE4ZGYyZGIwNWFjZDVkMjlkIHB5M2sKKzY5NTMwIDA5OWU5NjA2NzZiOWYwNjRkMTlmMDQ2MWE4NDE1M2IzOWYwZDJiYzMgbGVnYWN5LXRydW5rCis2OTUzMSAxYWUzNGE0OGI3MzkyMDA4Yzc3ZGVlYzQ4OWQ4MzMxMmUwMWE5NjA2IHB5M2sKKzY5NTMyIDk2NzdkZDBiMDllNmI2MjdmN2E0Njc4MDAyZjc5NjdjYTNlNTYwZWMgcHkzaworNjk1MzMgN2ZhOGI3YTJmNTBhMjE1ZTQ3NjE2ZjJkZDg1Y2Q3YTQxNjhjMmQ1ZSByZWxlYXNlMzAtbWFpbnQKKzY5NTM0IDIxNzQyNWVhMjc2OWMyODE1NWMwOGY1ZWYzMDBjMDJhYjQzZjc3YmYgcHkzaworNjk1MzUgOTJkZGJhNTc3OWY5NDk0OGFiMzQ0NGIxNGI4MjE4NTYxNmM1N2I4MCByZWxlYXNlMzAtbWFpbnQKKzY5NTM2IDg2MTAwOGRlZWQ5N2EzZmQ4NzhjMTNlYmI5NzFiNzA1ZTQ2ZGQ1ZGMgcHkzaworNjk1MzcgNWI1MDExOTZmYzM4M2ZjMzIzYWY0MGZmODA4NmVkOWM1NzJmOWJmNiByZWxlYXNlMzAtbWFpbnQKKzY5NTM4IDY1OWQ4ODkwNGY1ZmIzM2U3MDYzZTgxZTE3Zjk4Mzc3MGZiYTUwNWMgcHkzaworNjk1MzkgMDhjYzU3NGFmNGY2MDllYzIyNzQ5YzlkMmNiMjk2Mjc1ZTI1MjE5MiByZWxlYXNlMzAtbWFpbnQKKzY5NTQwIDE4OTY5NmM0NmMwZTdmNGZhMjUxMDFmNDY3MWU0N2NkMjM3NDMwMTAgcHkzaworNjk1NDEgY2FiNGUyZTQ4NGEyYmU2MDhhZTJhMzZjN2I5YTFkM2JiZWFhODNlZSByZWxlYXNlMzAtbWFpbnQKKzY5NTQyIDgzYmQyZDE3NGNjOGQwMmU3MjVmMDcxNmZiNTM0MWYxM2ZhMjNmMTggcHkzaworNjk1NDMgMjdjNTg5ZjA5YTIxNzRmZjkyYzZhYzU2NTdjYWM3NDI2Mzg4ZTJhNiByZWxlYXNlMzAtbWFpbnQKKzY5NTQ0IDk3MWJiNDdmZjcwYjYxMTIxOTIzMTBmYTViOGVlZTNhZjk0NDNlN2EgcHkzaworNjk1NDUgYWNkYjMyMzQxZDg3YTMxNzk3OWZjNjkzODI5ODA3ZTY5YTNjNjA3ZSByZWxlYXNlMzAtbWFpbnQKKzY5NTQ2IGEwZDhjNjE2ZjM0MDVjYjk0MTJhOTJmOTc3YzIzODJlMWY2NzM1YWIgbGVnYWN5LXRydW5rCis2OTU0NyBjMDliNTAxNTE2YmQwY2M3NjIwYWZjMjBjY2Y2NDhlNTcxMDdkNWQ5IHB5M2sKKzY5NTQ4IDVkMjg0MDUwODBlZGZmMzkyYzc1NDIzYTVmYmQ2M2UxODZkNDg0MzQgcmVsZWFzZTMwLW1haW50Cis2OTU0OSAzMTY0NWVhZDRjMzViYjQzYmVlMmMxYWQwYmE5NmNlMzA3MDEyOTRjIHJlbGVhc2UyNi1tYWludAorNjk1NTAgOWE5MzJmOTJmMzk0OTk3YWIzNWQ4YmY5MmZmYzkwMDRkNmY1N2YzNCByZWxlYXNlMzAtbWFpbnQKKzY5NTUxIDY2NDFkODI4ZDc2MmQ2NTFjNWY5Y2EyYmJhMTcyOGZkZGNlNWQ1NmYgbGVnYWN5LXRydW5rCis2OTU1MiAxMzMyOGYxMWFkMjk1NjYxYjg5NDk2ZjVhZGNkNTFiZWUzNTc4ZGNhIHJlbGVhc2UyNi1tYWludAorNjk1NTMgM2VmNWEwYzVlNmI1N2ZkOTU5M2NjNThiM2I2YTUwYWMwYWJjMDRmYSBweTNrCis2OTU1NCBlMzc1MDcxZjk1MGVjNzU3ZWM5OTlkZjdkYzk1NWMxZGMyNjkzNGE1IHJlbGVhc2UzMC1tYWludAorNjk1NTUgY2UyOWZhZWQ3ZjY5ZTIwZDNiYzFlMmE5ODQxN2U3NjcwNzVlYmNhNyByZWxlYXNlMzAtbWFpbnQKKzY5NTU2IGU1MDJlMmJmMzVlODZkYmZhM2I1ODhlZjI4ODhlYmVhYTAwMzdlNzAgcmVsZWFzZTMwLW1haW50Cis2OTU1NyBjZDQyZTg1Y2FmZTdlZDZjNWMyZGI2NTgyNjc2YzE1YTY4ZTljN2JmIHJlbGVhc2UzMC1tYWludAorNjk1NTggMDdmOWUwMDQ4YjBiZGRmMTI4NmE4ZjFhYzg4YzJiOTMyY2Y2YzUwZCByZWxlYXNlMzAtbWFpbnQKKzY5NTU5IGUyZWEwZjgzZjAzOTQyYmQ4ZDEzZjhkNGEyOWIzNTdjODRmNWM0YzUgcHkzaworNjk1NjAgNjQ4ZTA3ZGQwODI1OGY2MGYwYTU5MzU1NjZmYzFjNGJkZTQ5MTUwNiBweTNrCis2OTU2MSAxZTdhYzE0ZTQ5Mzg3ZWI2NDQyMTFjMDU3NzNmMWI3MzA4OGIwM2NhIGxlZ2FjeS10cnVuaworNjk1NjIgZTZhOGExNjQyMzNhNDNiNTlkNDU1OTUzN2IxYjllODA4MTRmODNkOCBsZWdhY3ktdHJ1bmsKKzY5NTYzIDhkMzZhYjA5M2Q0NTZjMjRkMThlZGEzYmNkMDMyZWM1M2YyZTlhM2UgcmVsZWFzZTI2LW1haW50Cis2OTU2NCA0N2E3OWQ3ZWVlZGM5MDZkZmYzMGE0MDcwOGJjNGQ5Y2ZmMWExZWZjIHJlbGVhc2UyNi1tYWludAorNjk1NjUgM2JkNGFlMjZiMzY0OTdlZjhhOWJhMDQzYmNjOTE5Y2I3MWUzNjMzMiBweTNrCis2OTU2NiBiZDJiNzc5ZjVmMzEyMzQyNzc2YzA4ZjAxOTEwNTA3Yjg0MzQ1ZTQxIGxlZ2FjeS10cnVuaworNjk1NjcgMjEwMjc3NGU3YTJkOTNhMDNiNzgxNTU4ZGFiYzQ4NTE2MDQ3MDNlOCByZWxlYXNlMjYtbWFpbnQKKzY5NTY4IGI4ZjEwYzZmYWQ1Mjg1NDE0OGYyYWY3NWNmNGJlY2M0YTI2NTZjNmMgcHkzaworNjk1NjkgNzJmNmYxNzAxZWUxYWE0YjAzOWZjYzEzZDE2N2Q4MTk5ZmY4MzE2MyByZWxlYXNlMzAtbWFpbnQKKzY5NTcwIDdmNGExMTVhYWU2ZDk1NGRhMGI0NThkNzRjYmI3NDUzZTViZTM1ZjAgbGVnYWN5LXRydW5rCis2OTU3MSBhNDFlOGZmNjUxOGMyMDM1OWRiZGEyZjQxMjJkNzlmZjA5OTUxMDEzIHB5M2sKKzY5NTcyIDUyODUxYjlkOTc1OTAxMWRlZjg1OTk1ZTQ2ODQ2OWExNDkwMDgxNzcgcHkzaworNjk1NzMgMDk0NmNmZDY4NTc5OTk5ODdhNmIzOGE3NWYwZjY1NGEyNmM2M2FjYyBsZWdhY3ktdHJ1bmsKKzY5NTc0IDY4YjhhZjQ5NGJlMjgwZmUwY2I0NTc2MGVkNzg4ZDA2MjY4Y2E1Y2EgcHkzaworNjk1NzUgY2ExZDk5ZDlkNjkxZWRkYjM0ZjZkZWU1NzFlYTkwNjU2YWVjZDc5NCBweTNrCis2OTU3NiBjMDE0YTNiMWFkMzE1NWIxMmUzYTFkZGY2ZWI1YWI3NTE3MTliY2RjIGxlZ2FjeS10cnVuaworNjk1NzcgYTgzZjEwZWRiNmZmMTU5MjhhZmY2M2ZjOTNjZDdhNTJkNWM0OWRjNCBweTNrCis2OTU3OCBiZjQxOWNmZDdiMGFiOTRiMDg5OGYxZDg5N2IzZWI5MWIzNjQyZjcwIGxlZ2FjeS10cnVuaworNjk1NzkgNTEyYzVhNWRlMDBiODBiMjg5NjAwMDQxMjY0NjIzZGViNWM4OTRiZiBsZWdhY3ktdHJ1bmsKKzY5NTgwIDY5ZmRmODg4ZjExM2E3NmNjYjM0ZDY3MmI1OWZkZTU1MzFmOWRiNjMgbGVnYWN5LXRydW5rCis2OTU4MSBlYzMwYjFmY2MxYjNkZmY4N2JjNzMzN2NkNTdmOTRlZDgzODliNmYxIHB5M2sKKzY5NTgyIDVhNzJlZWQxZWIxYTc5NWY5OWQzOWZlOTZkMzk5ZDQxYTZjYzE1MzQgbGVnYWN5LXRydW5rCis2OTU4MyAwOGRmNGY1NTgzZmY1MmMyODRhN2JjZGExZDE4NjJhMTNiMWZhYmI5IGxlZ2FjeS10cnVuaworNjk1ODQgZmYwOTZkNmE5MjIyYmNiOTIzZDBiZGRkMGJjNGYxOWFhZmIyMTNjZSBweTNrCis2OTU4NSBjNmZmNDdiM2ViOTlmYmQyYjI0MmIwNmNiZWI2NzRiY2IzNmNjOTgyIGxlZ2FjeS10cnVuaworNjk1ODYgYTkzYjE5YTJmOGQ5MzQ5MThhOWQ2NTgwZmNmNzQwYTYzYmFiZDQ2ZCByZWxlYXNlMjYtbWFpbnQKKzY5NTg3IDQyODM4YjRkNmFhMWI3NjQyYTUwMzI0Yzk1ZTUyOTgzYzA3YTA1YTggcHkzaworNjk1ODggYWUxNmUyYjg2ZmViNTIyM2NhNzA4YWQzZmNhNTcyNTE4ZmZkZjkyMCByZWxlYXNlMzAtbWFpbnQKKzY5NTg5IDAyYzNlYjFjYTBkNWYwZDRlY2YwNzJkMTdiMmYzNTdmNGMyYmE5NzEgbGVnYWN5LXRydW5rCis2OTU5MSAwNTkwYzBiNzZlNjQ2MWU1YmNhNjYzNjhjMmJmNzNhZjcxYTc3YmNjIGxlZ2FjeS10cnVuaworNjk1OTIgODdhYjZiYzIxMzQ1YmFkMDg1NjYwYThkMGNjYTE4YzRiZTI5NDU0NiBweTNrCis2OTU5MyBkZmNmNjkwYTY3YzhlOTA5OTU3NWI1OTk3NjA5YTc3OGIwNmYyYjg1IGxlZ2FjeS10cnVuaworNjk1OTQgZDM2NjNmMDlkNzY0NWEzYzM2MGVkYWRmNzA4MTc3MTI2M2E3N2ZhMSBsZWdhY3ktdHJ1bmsKKzY5NTk1IDUxMjA3MGRhNzQzM2RkMzc4YmUyMmZkY2JmOGNmY2QyZTk4OWVmNDkgcmVsZWFzZTI2LW1haW50Cis2OTU5NiA2MTM1ZmY3MjQzZGQ3OTZlMjNjYzM1NWE1YmNhODgxMjUxYjE0MzE3IHB5M2sKKzY5NTk3IDhjYjhlY2NkNjYzMzljOTYzZWE2NDZjZTZlZjFlODE2NTgxMDRhZmQgcmVsZWFzZTMwLW1haW50Cis2OTU5OCA4ZGMyOGExMjZiMmM4MDFlZWEwMGNmMzhjN2MwMWY4MzZmZTdiZTJlIGxlZ2FjeS10cnVuaworNjk1OTkgOWM3NTgwNmJlYzY0YWY5MWU2ZThhYjk2MmQzNzZiZWQ0ZDc5NmRmYyByZWxlYXNlMjYtbWFpbnQKKzY5NjAwIDQwZWQ1NzgzZTI0YTJkYTVmNTRhMDU0ODFmMmQ2ODEwMDI0MGYyYTIgcHkzaworNjk2MDEgNjE2MTM4ZWVmMjI0YmNkMDZjODMzNDhhMjliNWI2ODBjZWFhMjJhMiByZWxlYXNlMzAtbWFpbnQKKzY5NjAyIGU1Y2EwYmRiMzkwZmQ3ODE1MzJmMjE3ZTRjMjA3YmM1MWFkNDNhNTIgbGVnYWN5LXRydW5rCis2OTYwMyBlOTFiMDRkYjZkMTk2ODBiMmViZTY4NWU0MTBhNmZlNGJkMmMyOTIxIHB5M2sKKzY5NjA0IGM1NjA3Y2Y3NjgwMTI3NWQ1NGIwNDY4NDNkMDRjN2U0NmNjOWY0NmUgbGVnYWN5LXRydW5rCis2OTYwNiA5Y2M3Njc1OGVlMDljMDc1MTMzY2I0Y2I0OTg2NGJiMjYzNTM4NDAwIHJlbGVhc2UzMC1tYWludAorNjk2MDcgMmEyNjNkNjZkNjU5NzgwMDE1ZjFlMzUzYmQxNjAxMzdkOTc3MmVlOCBweTNrCis2OTYwOCBmNDNmODY3ZDVlYjYwYTRkMzIzZTNjMmVhY2QwZmYwN2FjMmI2ZjRiIHJlbGVhc2UzMC1tYWludAorNjk2MDkgZTU1MjI4NzViOThjMjZhNjI1Zjc1NTM5MGM2ZjcyM2Q2M2YzMDAxZiBsZWdhY3ktdHJ1bmsKKzY5NjEwIDk0OThlN2Q1YjI2NTk5ZmU2YWY2ZTJlZDcwNzFlNDkyOTBhZTJiMDQgbGVnYWN5LXRydW5rCis2OTYxMSA2YTdhMGUxZTI3YmMwNDQ4ZGUzODlhMThlMWE3NzMxMTA4ZGRhMmViIHJlbGVhc2UyNi1tYWludAorNjk2MTIgNzFhNjhkY2NhMDQ0ZTMyZWZlZGUwYzJhMGExOGNmZGZlZjVkNGFmMCByZWxlYXNlMjYtbWFpbnQKKzY5NjEzIGUxM2VkNDg0NDIyZTgxNTVmYjI2NWI5Y2M4ZmIwZjlkN2NmMGY3NmYgcHkzaworNjk2MTQgYmI5OWVkYTM4YzFiODJlZWJjN2EyY2MyNDZhOWY5MDBkMjU5MmZiZiBweTNrCis2OTYxNSAzY2VhNDA1MWRjZGI2YzBlNmNiNGUzZWU3YmRmMWE3YzhhODhmNTExIHJlbGVhc2UzMC1tYWludAorNjk2MTcgZDQwODM4YzVhNDIwNmZlOWIzZDU3OGI4YmRiYzQ2YTFiNTM1NjQ3ZSBsZWdhY3ktdHJ1bmsKKzY5NjE4IDk2OTM3OGVhNGM3NzcxYzdmNTExMzFkY2EyOGZmYjA1MTNiMzgxODEgcHkzaworNjk2MTkgOWQ3YTEzMWRjYjc4OTVhMDJmMGMzNzY5NzQ1OWZkYWJjN2M0M2EyOSBsZWdhY3ktdHJ1bmsKKzY5NjIwIDU1Njk5MGJiNGYwYWNhYzdkYzk5ZWZjOTg3OTRmZWFjMDMzZWYyNTMgbGVnYWN5LXRydW5rCis2OTYyMSAxNWQ4YjJkYjJiZTQ1N2E0NjZkNzE5ZDYxNWE3YWEyNjcyOGYwZTQ2IHJlbGVhc2UyNi1tYWludAorNjk2MjUgZjY3YjQ4YTE1MTNlYmJhYWY2YjdjNmExNTY2NjA5ZGQwNDk3NGFkNiBpby1jCis2OTYyNiA4YWU1YjBjNWMyNGQyYWU3ZTJhYTViODM1M2MwODU1N2M2NDZlNDFlIGlvLWMKKzY5NjI3IGMxN2NkOWJlYzNkODUwZTQwNzkzOWMzMjg2ZDAyYTQ5ZTg2MjI3MTkgaW8tYworNjk2MjggYWRlNDU1MTFiNTY1YjFlYmM5NTM2M2YzYzk2MDlkNDZlYzk2YTAwNCBpby1jCis2OTYyOSA3NzMwNmFkOTMwYTMzNGViYzNlN2VlNGU3ODRjNzdjMTQ2Mzk5YTVkIGlvLWMKKzY5NjMwIDVmZDNhZDU0OTkxN2NiNDM5MjZkOTdhMWE3NjMxNzI1MzI4NGIxMjMgcHkzaworNjk2MzEgZWYyY2JhODBjOTc1YmI1ZDk5MTFjOWI5YmJkNTgxOTg2ZDYxNDE3YyBweTNrCis2OTYzMyAzZjdlMDczZGFkN2I1ZjQ3ZDEzYTVjZTAxZWIwYTg2Y2JiNzRhNmQ0IGxlZ2FjeS10cnVuaworNjk2MzQgYjU1YTNiNWQ3MDA4ODI5OWRhMDljOWNjZWY0MmRmMWJhZjc5OGQxZSBsZWdhY3ktdHJ1bmsKKzY5NjM1IGI4YzQ2NjRhNjUzOTE2ZTIxNjQ5N2JjY2E2YWQ0OTBhNDFlN2YxMzEgcHkzaworNjk2MzYgNWYyMjU3Yjc3YWIwOTkxZGQ4MDdiMjlhNjdmZWI5NzRiYWE0NGYwZSBpby1jCis2OTYzNyA3OWMyMzExZjMzY2MxZTJmYTFkZWQ0OWVjYzIwOGU5N2EzZDU3MjNkIHB5M2sKKzY5NjM4IDNmNDc1NzQ1YTNjMzA1ODk4OWVkYmY2YTVjYTI1MjY5YmMxOGZhYjQgaW8tYworNjk2MzkgYWY3ZDc4MGY3YTBiZTRiYTA0YmM3ZjU1Mzg0YWQ2NTY1OTBhNjJhNCBsZWdhY3ktdHJ1bmsKKzY5NjQwIDY1ZTA3NTVlOWJiYzlkN2ZkNDAwMDk0MGZjYTRmMGVlYjFhNmZiMDkgcHkzaworNjk2NDEgYWFkZWYyMTg4Y2ViNmZiNmJhMDRlYjk1NzRhZDc3ZmQwODhmNzJkMyBpby1jCis2OTY0MiAyYzRhMzMxY2QzMmE4ZDc3YjNkNmEyYzY0MmYxNGMxNGRiMzBkMDQ5IGlvLWMKKzY5NjQzIDk0ODc5NGFjNWE1MmJlMjcwZmNhZDQ4YWQ0YmJlYjA2OGQyNDJiMmQgcHkzaworNjk2NDQgOGM2ZDY4OGU0ZjE2MTA5YmM1Y2JhNjk5N2M1MDk5OTAwMTUyNjEzNiBpby1jCis2OTY0NSA5NWQ3NzVkOWFiNDdjNzdlZGRiOGIxMDkxMzliNzU2ZTQxMWFiMTc3IGlvLWMKKzY5NjQ2IDRmZTI4ODVkMDY1NDkzYjUxYzUwZWI1ZWUwNWIwM2RkMTc2MTdjZDUgaW8tYworNjk2NDcgNDBjOTU0MWU2MWZjODk2NWZmMTkwMmZjYmNmYzE3ODg4ZGIzZDYyZCBpby1jCis2OTY0OCA5OGRkMjA1N2UwODhiYjRmMjIwZWI0Y2RkZTM1OGNkMDJhMTBjYzlkIGlvLWMKKzY5NjQ5IDkxYTNjY2U2OGU5YjQ2MTBlZWMwOWI1N2ZjZGEwYmQ2MmI0ZmQ2ZTIgaW8tYworNjk2NTAgZDljMWQ5YjEzMzc0ODMwZGE5YjE3OTE4MWI2MGRkYWUwM2I4MTMwMyBpby1jCis2OTY1MSBkYjNjYWUxMjhkOTFlYWU1ZTRmMThjMWNlYjFhM2ZiNWE1NmFlZTNlIGlvLWMKKzY5NjUyIDE5MjAxNDg3NzlkNDQ2YmI4ZTk2YWM0ODk2MjczZmVhYjgzYzI2ZTAgaW8tYworNjk2NTMgOWY1MzlkOGNkOTA0MmEzYzM5OTk2YWNhNTNhMGI3MzZkYTk5ZWYwNCBpby1jCis2OTY1NCAyOGNhMWRmNTQ1ZTIzNjY3M2U1ZmE1NjM3ZTZhMzc1ZmNjZTFlYTNiIGlvLWMKKzY5NjU2IDI0MDZjN2RkOTg4NDEwODY1ODJkOTRiMTk2NWM2YzBiMWUwMDUxYjQgaW8tYworNjk2NTcgYTI2ZGIzMTQ0YWU3MTMwNDUyMzgxODQ0MzNhNmVkZDViZjM5YzQ4ZCBpby1jCis2OTY1OCA0YjEyMWJiY2M5MmFmYTAxOGVkMDg0ZGU3YWIxNGQyMWI5YWUxMWRjIGlvLWMKKzY5NjU5IGYzYWY0OTkyYjgwYjgzZDlhMGQ5NGYxZGM2M2U0NGI1ZGUxNzIwYzUgaW8tYworNjk2NjAgNmRhMzBlM2FiYzBkZDAwZDljZWFkOTIzNmMxNWVlZmE5ZWYzYjllZiBpby1jCis2OTY2MSAyYzcxOTAyYjM3NzQ3ZDY5NzU4MzBkOTNkZWNiY2NjMzZmZjM3OGMwIGlvLWMKKzY5NjYyIGY0YzQ5Y2Y2MDFhMmNkYzZlMTQzY2Q1MGU3MGYzNDE5Y2Q4YTJiM2YgcHkzaworNjk2NjQgYTQ1MGM4NmZjMmJjMDQ2ODU1Yjg2MmE4OWQ0NjUxY2UzNmY2OTAyNyBweTNrCis2OTY2NSBjNTcyNTRhOWMxYTMyMzAyMzUxYzU0MTRkOTBlOWRjYzA5N2I1NmFmIHJlbGVhc2UzMC1tYWludAorNjk2NjYgMDc2YzQ3OTEzMTM0OWQ0NzVhZDdmOTU0ZmUwNTFjYjVjYWQzYzE3OCBsZWdhY3ktdHJ1bmsKKzY5NjY3IDk4NTc1ZjlhNGVkMzg1ODIwNmY4NjFhN2FkNWMwNDk0MDI5NjA0OWIgcHkzaworNjk2NjggYTVjNjIxNWE0NWFmMDllMTc4ODI2ZjE5Y2ExYmE1ZjM0NzMwMmU1ZiByZWxlYXNlMjYtbWFpbnQKKzY5NjY5IDBlNTVhY2QxYTQyNjY5ZDJkYWEyMGZjYjZjYjc0YjgzMGRmOTA5MDggcmVsZWFzZTMwLW1haW50Cis2OTY3MSBlODczZjgwODQ2NGEzMzYzNzY5YzcxM2E1ZjYwMGZkOTBhNjg2OTkyIGlvLWMKKzY5NjcyIDZhMTE4Y2M0ZjNiNzhlMTk5MzA1OGE2NjFiMTYyNGY1MDY0MjIwYjYgbGVnYWN5LXRydW5rCis2OTY3NCA1MWRiMTgwODRlY2JhYWQ1MDg0N2E2OWI2YjdiZWY4YzNhNTU5Njk5IHB5M2sKKzY5Njc1IGIzOWQ1NDA1OGEyYmJmNzk1MTdiOTg2NDBjNGNmYWYzZmFmNDQ2NTIgcHkzaworNjk2NzYgNjI3ZGI1OTAzMWJlYjAxMjYyZTcxMjViOTY2ZWZkNzlmYTgyMjhhNiBweTNrCis2OTY3NyA0ZDYxZmJiYjQ1ZDc0MTc0YWU2YjRlMWNkZGEyMDBiZmY5ZjAwOGQ5IGlvLWMKKzY5NjgyIGRmN2M2YmQxYjYwOTJiODU2NmIxZWMxZDExMDAzYjFmZWY4OTNiMjQgcHkzaworNjk2ODMgNWRjYWEyZTFiYzg2OWE2ZDY3OGI2ZTgyM2NlYzg2YjczNTllNGQ5ZSByZWxlYXNlMzAtbWFpbnQKKzY5Njg1IDBlYmJjZjU5ODhkYmMxODNlYmVhN2MwY2QzMjNkYjM3NDYxYTNlYjkgbGVnYWN5LXRydW5rCis2OTY4NiAwMDNlMDA3OTdlOTEwMGIxNTBkYWE2MDg0ZDRiZDI2MzQ0YzBjOTRmIHB5M2sKKzY5Njg3IDg2YjYwZDA1MDYyYmE4ZGJlMzA0MWRkMDc3MTlmZWU2OGUzMWFiZDIgcHkzaworNjk2ODggMjdkNDNkNjZiZDA5Y2VlYzFlY2JiMzFjNTY2NDhlYmVhNGVhMTZlZiBsZWdhY3ktdHJ1bmsKKzY5Njg5IDE1NDk0OGUyZmQxYzU3ZjE5NDI2NzVmNGEyYmI5ZWFjMmY5NGVlYmUgbGVnYWN5LXRydW5rCis2OTY5MCAwOTIzNTg4OWM1NGQxNGU2YTY2OGM2OWE3ZTY1NWZiMTE0NGNmOTQzIGxlZ2FjeS10cnVuaworNjk2OTEgZjMwODk1M2M3MDFmYzRmNjE4OTljZmVlOTg1MjdkYWRjZDBlMTg2YSBweTNrCis2OTY5MiA5ODJmOWUyOTI1YTQ1YzU0MDY0OGRkMWI4OWI1ZWI5MjQ2ODk5NGRiIGxlZ2FjeS10cnVuaworNjk2OTMgYWI0ZGEyZWRiMjg4ZGVhNTgwZGJlNzk5YzEzYTI4YWQ5ZmQ2YjljZSBsZWdhY3ktdHJ1bmsKKzY5Njk0IGU3OGJhODgwMGUyY2UwMWVhYzQwODRlOWFlZDQ2NTQ1ZjFhMjlmYzggcmVsZWFzZTI2LW1haW50Cis2OTY5NSA1MjI3ZjhjNDE4M2VmNTFlYjRmYzRkNTRkMWEwMTYxZjRhMTI5OGQwIHJlbGVhc2UyNi1tYWludAorNjk2OTYgNTRjZjY4ZmM3MzEyN2VlMTM3ZjAxYmRmMjE5YmNjNDAzM2YyNWFiOSBweTNrCis2OTY5NyAyOWIxNDliYzMxMzAxNjI5ZTg2OTE2YWE5NjcwMjc5NWNmMmYxYWIyIHB5M2sKKzY5Njk4IDI3MzI2ODUyMmU1ZWU5Mjg3MDgxNTliNjExMDM0MDUwOGM5ZWUxZDIgcmVsZWFzZTMwLW1haW50Cis2OTY5OSAwYzg3NDc5OWExOTBkNTA0ZDFkMDMzZmM2ODk2MmJkNDcxNmJmY2UzIHJlbGVhc2UzMC1tYWludAorNjk3MDAgNzEwMTc3MmVhZTgwNWZlZjkxMTIwOWNiN2UyOTAwMDQ1Yzc0YTRhNCBsZWdhY3ktdHJ1bmsKKzY5NzAxIGY1MDVlYmE3MjZjODY1M2M3Zjc1NDc2ZGM3NzZhYjVjMTlhZjk3ZmEgcmVsZWFzZTI2LW1haW50Cis2OTcwMiBkYmEyZmFmMDk5MDY0OTU1ZGQ3ZTVhOGVhYzNmOTYxN2M2ZTdiOTM4IHB5M2sKKzY5NzAzIDAxZDNiNjg2MzM4N2RiYjU5NmVhZjBmYWU0ZmE1NDdmODU3MWNiOWIgbGVnYWN5LXRydW5rCis2OTcwNCAwN2ZhZDMwMTAyNWYwMTllZTMyNjE3NDVkZmNiZDU2OTA4N2NlZWYzIGxlZ2FjeS10cnVuaworNjk3MDYgZGQyMjEwYjJkYzIyY2JlZDRhMDMyZjBlZWI0Y2U1ZjI4MmI2YjZlMSBweTNrCis2OTcwNyAxNDdmY2ViYWNiNWJiMGQxODkwYjYxOWZkYTFlZjdlM2E3ZTFjMzA5IHB5M2sKKzY5NzA4IDE5ZTc2ODVkOWI5NDZmMjU4NDdiMDhhOGNhOTE0N2FhNmIyOGMwYzkgcHkzaworNjk3MDkgNDRmZDJjYzllOWNjNzQ2NzliMmM2NWIzMTQyNjQzMjg0ZmY2NjU1NCBsZWdhY3ktdHJ1bmsKKzY5NzEwIDI3MjY4ZWYwNDcwOGQ4ZTNjMzBhNGQ2NmZjNzFhNjFlNWJmMDI0ZTUgbGVnYWN5LXRydW5rCis2OTcxMSBkNzcyNjc4MjUzNmQ5NTAxNmE2YTc1YjZlMTViODAwNGMwYzNmOGY4IHJlbGVhc2UyNi1tYWludAorNjk3MTIgMjU3Yzk4ZmE1NWQ3NmNlYTliYWFiMzE0OGIxOTU2ZGJjMjRkMmY4OCBweTNrCis2OTcxMyBlNTQ4ZGYzNjE4OGVmNzM1Mjg0OGMxZGNjYWY4YWYyNjQzYjg2ZmM3IHJlbGVhc2UzMC1tYWludAorNjk3MTQgMGM2YzA1NzJjMjQ3M2MwZDI2N2NmYjNkNDliZjU2ZGMwNWE4NTNiZiBsZWdhY3ktdHJ1bmsKKzY5NzE1IGQ5ODJiOTViZTNlMjE4MGQ1NTVmYThmOWJmYmJmNmExNmFmOTA4YmYgbGVnYWN5LXRydW5rCis2OTcxNiA3OThhMTZhYmY1NDYwODg2MTBmZTUwYjlkNGQzMGEyMWU5MDNhZGRjIGxlZ2FjeS10cnVuaworNjk3MTcgZDY3NDBhOTZhNzBhZGFjMTZhNzYzZTA3YTY3NTZiNGU4OWI2ZWRhOCBsZWdhY3ktdHJ1bmsKKzY5NzE4IDlhZDY2MmE0M2ViMzUwZTQ3YTdjYTZlZmE2NzVhYjc5MDA3ZGU5MzcgbGVnYWN5LXRydW5rCis2OTcyMSA4NTQwN2QwNDc3ODIwOTgyNjMwNWFkZjUyNjZlOWQ4NjJkOWRiZjNiIHJlbGVhc2UyNi1tYWludAorNjk3MjIgMDllNjMyMTRmMGJmODY1MDZmOWNiZjUyN2NiNjM2NDg2MDA4YTQxYSBweTNrCis2OTcyMyBmYjg2MDZlMDg2ZWE4NDQ1ZjY5ZmQ2NjIwN2Q4M2RlOGJhOTY4MGIxIHB5M2sKKzY5NzI0IDkyZTQyYjFiMGE2ZWVjMGYxMTc3Njg5YjNjMDE2YWUwOGJkMDNkMGEgbGVnYWN5LXRydW5rCis2OTcyNSBkNzg2MGJiMGIxNWEwYmZkMTM1MmFiNjZjOWVhM2Q4ZWMyMDllYmZkIHJlbGVhc2UyNi1tYWludAorNjk3MjYgNjA1ZmZjMDUyYjQxOTVlMzM0MDE5YzYwZmE1ZDU4NWFlMjMwNDI5MSBweTNrCis2OTcyNyAyMDVhMmI0YzFmYTU0NjU1ODQ0MWExODM4MzcwMDhkZTc3NGEyYmNkIHJlbGVhc2UzMC1tYWludAorNjk3MjggMWZmNGI0MWE1N2MxMjZkMGY5NDY2YzAwNDQzYWM0OGUyYzliNjVlYiBsZWdhY3ktdHJ1bmsKKzY5NzI5IGU3ZTU0NGNkMmMyYjk0NjJhOTI0ZDFhYTIxZDhlN2Q0OGRjZjM3YmIgbGVnYWN5LXRydW5rCis2OTczMCA2ZWE3ZDM3MTRiZGY3OGYyODQ1NDM5ZDVmZDVkYWU1Mjk3NDMyOGUzIGxlZ2FjeS10cnVuaworNjk3MzEgNTUxOWI5ZGNjOWI2YjY0NDdhZjAyMDNkYWYwMjNmNDk2ZDAwYzgzYSBsZWdhY3ktdHJ1bmsKKzY5NzM0IDM5ZjA5YzllZDVhNWIzZWQ2YzNmMTE5NTUzZjg5OGIyNzNhY2I2ZGYgcmVsZWFzZTI2LW1haW50Cis2OTczNiAyODc4YmY4MTVkYTFlOGJhYzhiY2Q3NDc0ZTUzODQ1YzU1Njk3NjNkIHB5M2sKKzY5NzM3IGNiMGFkZTMzNTU1MTU2MGMxNTY4OWUyODAyOGM4ODExY2QxNTAzOWUgcmVsZWFzZTMwLW1haW50Cis2OTczOSA3MmQxM2VjZjRmY2E3NWZiMjU2YWI3MjNkMjNkMjY0NzBmOTMzOTU4IGxlZ2FjeS10cnVuaworNjk3NDAgNzZkNzdhZTk3YjM4ZmY2MDczZWVjZWVhYWRkYTNlYzlhYjYzZWJiNCBweTNrCis2OTc0MSA3NTU5YTAzY2JkMzBhYjc1MWI3NGZkYzdlZDQ5ODhmZjc1MTE5NmU5IHJlbGVhc2UyNi1tYWludAorNjk3NDMgOWJmZjEzMGQ3OTJkZWE0NzFmMmVhOWNmMWU2MGFkNzI5ZWMxZTM5NSBsZWdhY3ktdHJ1bmsKKzY5NzQ0IGVlNzAxMTg2Mzk0MzI2N2RmYzUwZWQ1NTVhZjZiZjJlZjBiNGE5YzQgcmVsZWFzZTI2LW1haW50Cis2OTc0NSA4YTI5MjU0M2U4NzE5OTc0MTA2YjQxYjc5MDcyNDVhNmZmYWE3NTYwIHB5M2sKKzY5NzQ2IGIyZmYyMWJiYjljNTQwNDQ3NjZiM2Y4YzM4NGY4NGYyZjBkOTE4YzcgcmVsZWFzZTI2LW1haW50Cis2OTc0NyA3YzdiODA1ZDBkMGE4ZGFmN2ZmNGY2NThkZTBjN2EyMTVmOWZkYWJiIHB5M2sKKzY5NzQ4IDc0OGRmZTliYjg1N2ZjMWVmYTcwMjE1YTA4NTk0MzI4N2UyYjY1YzAgbGVnYWN5LXRydW5rCis2OTc0OSA4NWZlODg3NjE0Y2U0NDIwZTkwMWNmMTE2ZjY4OWQ4MTYzMTZjYzMyIHB5M2sKKzY5NzUwIGUyNjBkNmRhZjc4NDhkODQwMGQ3ZDM5NWVkNmYwNTE5MTUwZjE3ZTQgcHkzaworNjk3NTEgZDI1ZmMwMjA5Mjk1NTAzNmE3MDM2ZmIxNTdjOWVjOGM2MTk2ZTU5NiBsZWdhY3ktdHJ1bmsKKzY5NzUyIDNkYmRiYzVlNmQ4NWFkNWVhMTNhNTEwNGVlNWFhMmFjYTA0NDdiYjMgcHkzaworNjk3NTMgMDNmMDdkOGYwNmU0NmMwM2FiZjJkYjk4Y2Q4NzU4ZWIzNWNmZDA2ZSBweTNrCis2OTc1NCAzM2Q1ZDdkYWE4Yzc0NjlmMTNjYzkyZWUwZmRjNWQyN2M4Njg5NGE2IHB5M2sKKzY5NzU1IDQ5N2VhYjc5YjFiZThlOTE3MjVhM2UzMWNkNDdhNTkwMTg0ZjRiOWMgcHkzaworNjk3NTYgYTk3NzRiNjFlNTJkM2Q4ZDZhYzUzOTIxODU1ZTcxN2QxYTk0MDViZCByZWxlYXNlMzAtbWFpbnQKKzY5NzU3IDMwMjI2M2UzYzhmMWQyYzU1YzdkMWEyMWU0YzY4YWZlNDlkNTczMTIgbGVnYWN5LXRydW5rCis2OTc1OCBkNDdjMjU4YTFlMWNlZmJlYjVkNWMzOTlmZDk2ODY3YmQyYTdlNGNlIHJlbGVhc2UyNi1tYWludAorNjk3NTkgYWI0MGM3NjEzOWFiNGQ3N2M5MjBlZjk5ZTUxNmIwZTdiZTY3ZTBkMCBweTNrCis2OTc2MCAyZjUyNTc0OTRhMmUwZmViMjZhMjI0MmE1YjU3MWUzM2FmOGE5ZGMxIHJlbGVhc2UzMC1tYWludAorNjk3NjEgNTU5ZTRmYzMxYzhhNzNiNWY2NGYzMmQwODNmNWNkZjlhOWEzNWU1MCBsZWdhY3ktdHJ1bmsKKzY5NzYyIGVhNDdjZWY2NzgzN2IwZWVkNWM1OWI0NzliM2Q5NmE5YzYwMWM5ZmIgcmVsZWFzZTI2LW1haW50Cis2OTc2MyA5MDAxZDljOGY3MWUwNTE3YTNlZTNjMzIxMTIzNGVkOGZkOTdhMzkzIHB5M2sKKzY5NzY0IGQ2NzNkYTkxNTkxNGQ3YzU5MTM0NGM5MzM4YWQ5YmJkZDQ3MmEyMmYgcmVsZWFzZTMwLW1haW50Cis2OTc2NSA5ODAwYWIyMzZjMDlkNDU1Y2Q2MmFjYjcxYTAzODIwNGUzYWRkN2U1IGxlZ2FjeS10cnVuaworNjk3NjYgZjBlYWM0NTJhNmNhZmQxOGZhMDg5MTJiMjdjODFmMmQ1ODY1MzliNCByZWxlYXNlMjYtbWFpbnQKKzY5NzY3IGJkNDY3MTc5MmQ1MDE2ZTVlODE0NzY4YWZiNTczNTZhNmRmNzA0MzYgcmVsZWFzZTMwLW1haW50Cis2OTc2OCA0MzQyYzBhMmYyZGM5Y2FkNDQ4YjE2ZDVkOTI4NWZhYjBlMTczMjIyIHB5M2sKKzY5NzY5IDg0NjhiNTJmNWVlMmMzNzdjZGJlMjczMTViMWYwOTUxMWI2YWE3NTYgbGVnYWN5LXRydW5rCis2OTc3MCAwMGY3YmUwMmFlMWYxYzJkMDA5M2JkM2NmMzNjYmIwZTQ5YjU0M2Y1IGxlZ2FjeS10cnVuaworNjk3NzEgNzhlMzExZjI3N2E3MDI3ZTFkYjUwMmY5MjE2NmY0ZjVkNGFlMjEyMiBweTNrCis2OTc3MiA4YzEzZjQzMGUxNjA2YTA4NTRlNmMzZWY0YTFjNWQwMzBiZGNhYjU0IGxlZ2FjeS10cnVuaworNjk3NzMgODMzZGRmZWMwYmM0NTZiZTA0ODhhNWU5ZmMxYzY4MDU1ODZhMGY5NSBweTNrCis2OTc3NiBjMDJjMmE5MDhjYjA5OGYxZjhmZGQzZmM4MDMzZjViODBhNzIxZmJlIGxlZ2FjeS10cnVuaworNjk3NzcgNDM4NTkyODkwZTJiN2VmNTkyOWEwMWVlYTA5MGQ5MWVjM2VjYzQ2ZCBsZWdhY3ktdHJ1bmsKKzY5NzkzIDI3OTMzNzUzYTM4N2Y5MWE4MmM5NGVjZmZiMzQ4NWE5MTI5ZTQ4ZmMgcHkzaworNjk3OTQgNjdlZWQ4MWJhNzRmYTZhMzBhODA2ZTQ0NTZkN2Y3NWIyYzBmZWY2ZSBweTNrCis2OTc5NSA5ODE1ZGE0M2ExY2VmYTQ2ZDBhMWQ4MTE3MDk3YmI4Mzk4OTY2ZmFmIGxlZ2FjeS10cnVuaworNjk3OTYgYzFiZjAzN2ZlZWZlMDZiMWVjZTkwMDk4MTFjNWM0MDVjOWEyYzMxZSByZWxlYXNlMzAtbWFpbnQKKzY5Nzk3IDYyNGI1NWQwZDZiNzJkYjExM2Y0MDUwNmM3NjI3ZDIzNWRkMDY3YTIgcHkzaworNjk3OTggMmYzYWZhY2Y5ZjBiNzJjY2Q2MDg3YjgyODk4YjFmNWU3YTQyODkyYSBweTNrCis2OTc5OSAxNDA4ZmVlYzAwODQ5YWVlMDU4NmY5YWZkMmIxMGRkMjkxNjY0MTY0IHJlbGVhc2UzMC1tYWludAorNjk4MDAgZGI4ZGIzMWZkYjRjNDdjMDFmZTBmNGRkNzViNmEwOTRhZGZmMzhjNSBweTNrCis2OTgwMSAwYjk4ZTM3OTFiOWVjODcyMGNhNzgyYmQ1YWNjNDU1MDUwYzUyMTZkIHJlbGVhc2UzMC1tYWludAorNjk4MDMgNWExNzg4OGM1MTUxM2U5NWRhODExNmEwN2UyY2ZiZDcxZDcwYjdkMSBsZWdhY3ktdHJ1bmsKKzY5ODA0IGVmMTljYTAxM2UxNmVlMTUxZDgzOWE5MmY0YjgzMWYxMjlmNDU3NzQgbGVnYWN5LXRydW5rCis2OTgwNSAwODI0MDkzMTRiMDA3YTg4YjNlMDdhNmRkMTc2NDkyYjhlYzNmNDc0IGxlZ2FjeS10cnVuaworNjk4MDYgNjVhM2Y1NTVmYWI3M2RhNGU3NGViNDViZjYxMmIwYTdjNjQ1YmUyNSBsZWdhY3ktdHJ1bmsKKzY5ODA3IDE2NGJhN2ZmYTBlZWU1NDRiNGMzZTEzNDc2OGJjMjgxMDFjODZmYzMgcmVsZWFzZTI2LW1haW50Cis2OTgwOCA5MjUwYzhjNjFhOTEwOTVhOTVlZjU2ZDNjYzIxNjhmNWRlNmU0YTlkIHB5M2sKKzY5ODA5IDRkM2JhYWMyZTFhMjBkYjUyYjE3NzliYTVmMWNmMzhkNTYwOGFjNmQgcmVsZWFzZTMwLW1haW50Cis2OTgxMSAwODQ4ZWJiOGY5Yzg4YzkyNzBkZTY3MmZhMTU2YTQ2YjRlNmNkZGQ4IGxlZ2FjeS10cnVuaworNjk4MTIgYzZlZDViZmUzOTY5YTM4YjRjMDdmNzE4M2NhZjMwYWJkZmY3ZmI1NiBpby1jCis2OTgxMyBlMDhlNDA5OGE0ZTc5YjQxN2M1NWVlM2QxMzczY2RjYmJiNzUxMzUxIGlvLWMKKzY5ODE0IDQwODJlZGE4YjQ2NjNiMTQ1MTZjZTY5NjBjMDUyMzkyYzZhOTc5ZTcgaW8tYworNjk4MTUgN2Y4M2FmZjY4YzE2NmNkODRlMzJlZWMxNmY2MmRlOTViN2JlNTE3NyBpby1jCis2OTgxNiAxYWFjNzUyMDQzN2E2ZmQ0YTc1NzQ5OTA3ZTY3Zjc3ZjZiNjI5OTE2IGxlZ2FjeS10cnVuaworNjk4MTcgYzA1YzMwZmMxMThiZTEwMDllZWZhYmJmNDQ1NDI3ODQ2NmIyYTYyYSBpby1jCis2OTgxOCA2Y2U5NmNlNGQ5YWZlNDE1NmQ2MTAyMDQxODNkMjE4M2QyYmZkNmQ2IHJlbGVhc2UyNi1tYWludAorNjk4MTkgNWY1OTVhYzhhZWZjMzk2MmY5ZWMwMjVmMzA0ZTkwOGRiM2I3MTI4ZSBweTNrCis2OTgyMCBlMDgxNWZlZTI0ZjZlMzgwYjI2MjNlZjY1MWYxZDQ3NWZhYTc4ZTIwIHJlbGVhc2UzMC1tYWludAorNjk4MjEgNjdiY2ZmMjkzYTIxYWQ1ZmViNTc1MWMzODdhMDc4NTc0NDJhOWRmZSBweTNrCis2OTgyMiAzN2U0ZGY5ZmRhYTZkNDAwMDU3YmVlZmUwMmFhMzBiYjNmMjgwZWE0IHJlbGVhc2UzMC1tYWludAorNjk4MjcgYWRiMTEzM2Q4OTJhYjZmYzJmNDJjN2M5ZjZjMDk4ZmE0N2VhNjRjZCBpby1jCis2OTgyOCBjNjE4MmNjN2U2ZDcwZTAzMzFjNDExMTVhMmIwMWYzY2VkY2I1NGNmIGlvLWMKKzY5ODI5IDcwMmMzYjk4MDNlOGM3NTNkNzFmYjcyYzcwYzgwNDkyMTllMDBjNGIgaW8tYworNjk4MzAgNmZkODkwYjIwZDYzZmM3YWQ4YjBkNWM5MDM3MTVlZmMzNGM1OTcwYSBpby1jCis2OTgzMSBkY2MxNjFlMWFmN2VjZTI3YWQ1MzNjYzRjZWY2MmY5NGU5NmQyNDBmIHB5M2sKKzY5ODMyIDQxZTM4YTYxYmM0YjQ5MTY3ZjJkNTliZjFhNTY3ZWFkOGRmYjYwMDQgcHkzaworNjk4MzMgYTFmYWZmNzRmZjg5ZTJkYWFjMDQ4ODkwMTU0ZjE4ZGJiYWFlYzk4OSBweTNrCis2OTgzNCA3MTQ5YjdlZWYxNTNkN2IzN2UyZTQ1YWQ1MzAxMTAyZTUyZTBmMjE2IHB5M2sKKzY5ODM1IDc0YTJmZjQwNTE4YWU2NjUzYjE4ODZjYjczYTQ3MTlhYWRiNjE3NzkgcHkzaworNjk4MzYgZWU3MDI5NzEwYzA1MGRiMjI2ZDNiZjg0NDIwYTljMzljOTY5MzRkNiBweTNrCis2OTgzNyAzZTI3ZDYwNmQ2MjVmOGU5MTdmYzVlMWY1NjU5YjBiZGVjZTdlZTdiIGxlZ2FjeS10cnVuaworNjk4MzggMzI2ZjZmYWNjMWFhNGY0MzZiNzNkOGNjMGQzMWJjNjg4MGRhMjE4MCBsZWdhY3ktdHJ1bmsKKzY5ODM5IGE1YmE5YzE3ZjhiOWQ1MGUwOWMwZjE0YWQwNjYwYWRmYzRhNWY2ZTEgaW8tYworNjk4NDAgOWU2ZmJhNWFjY2U0NmJmODQ3MTFiZmRmYWVmYmI3N2ExYTVkNGU0MyBsZWdhY3ktdHJ1bmsKKzY5ODQxIGMyNzJlMzE1ZGQ4NzIwNmE5ZDk3NmMxMDRiZjE2MWQ3NmMxN2YyMmMgaW8tYworNjk4NDIgOTU1NzZiZjNhZDczNTg5NjkzODQ5OWE1ZjZhYTA2YjJjNjA2MDQwNyBpby1jCis2OTg0MyAzNzZkODA4ZTFjMDVmYWFhZDllNTAwMmVlNWFmMDI5ZTQzZmJhOTVjIGlvLWMKKzY5ODQ0IDUxNDQ1YjA0MDk4NjE3NjI2NGQ1MGZmYjY3ODJmZjdhZTM0MzA0MGEgaW8tYworNjk4NDUgM2YwMjNmYjgzZjJiOWI5YTFiNGE4NDg5ZTVkNmNlMDcwNGUxZTQyMCBpby1jCis2OTg0NiBhZjliNmM0MzgwNGUxZTljNDkzMzJjYTY2MzQzNjNkMDhhZTJmMmFjIGxlZ2FjeS10cnVuaworNjk4NDcgZDA2YTNlYmYzMDZmYTk0NWU0M2Y1OWRmMDYzNzA1YTNmNGMzZGNjZCBweTNrCis2OTg0OCA2YmE1NTg4ZWY2NDU4N2YyMmE0ZTQxYzhlNjNkOGMxOTBiMDQ4NmFkIGlvLWMKKzY5ODQ5IGVjNDkwOTMyZDkxY2I1MmRiMTJjZTM2MzNkNzM0NzE4OTg3MzIxMjYgcHkzaworNjk4NTAgYzI5NTJjMmI1YTRhZTY4ZTczMzI3OWM2YWZiODRmYzQyY2FlOTc5NCBpby1jCis2OTg1MSBhYTI5ZDA5NjcxMDU4OWU2NzZlYTgyMWUxMGNhYmYyZDZkNzk3NjA5IHB5M2sKKzY5ODUyIDk5ODhlOWYwMDQwOGY2NTkyMjc5YWU2ZDY3NDIxODgzMWM0MjhiZDkgaW8tYworNjk4NTMgOGE4MjVhMTdjYjI3MzU4MmJmZmY5NGMwNWNkYzVlZTkzODg3ZGU2MCBweTNrCis2OTg1NCA3YWU4YTg3Mjg0MjFmZTVmMzI0ODBjMTFlODRjY2VjOGI2MDUxODc5IGlvLWMKKzY5ODU1IDk2YWJiNDM5ZTJkMDdkMGNiYWE4N2FkN2I1YjZiMTVhY2MwMzdjNjcgbGVnYWN5LXRydW5rCis2OTg1NiA2YTViZWUxODkzYWQ4MzZjMTEyMDQwOGEyOWVhNWU3NDFiMDJkZDkxIHB5M2sKKzY5ODU3IDkxODI2NGZmMDJlMWMwOWVhYzQ5NDQ3YzM0Yzc1ZWZhMWRmNjJiNGMgcHkzaworNjk4NTggNWJlMjRhNTZmMDkxOGFkZGM2ZmU1MjIyMjg1ODI5ZmVmNzI4OTMzMiBweTNrCis2OTg1OSA3NjU3MTk4NmEyZjQyMDgyNjYzNzZiZjBlYjI0YTI5MWNhZmVjMDQ1IHJlbGVhc2UzMC1tYWludAorNjk4NjAgOGU3YTRhNzc0MTM4NDI2ZGQ3ZDA0ZDMyZDg3YTE1MWJhZGYyODZhNSBpby1jCis2OTg2MSBlY2Q4ZWY0ZTc5ZTZiNzFiMTFiY2IyMzRhM2EzNjZlY2U3Y2FkNjBiIGxlZ2FjeS10cnVuaworNjk4NjIgYzMzMDRhNGI2NGVhMWE3ZTU1OGMyMmVkMzFkY2VmZTVjNWVjOTM3OSByZWxlYXNlMjYtbWFpbnQKKzY5ODYzIDg0NjBlNWVlMDZjMzkxNWRlNzgyNTgxMjMxYWZlNzY1MzQ1ODFjN2IgcHkzaworNjk4NjQgM2NhMWZiNjIyZjVhNGI4YTc1N2YwODkxNTNjMDk4ZDE5NGE2NDY0MyByZWxlYXNlMzAtbWFpbnQKKzY5ODY1IDAwMmRhY2E2NmY5ZjZiZGZiOWQxOTcyZmNhN2VkOThjNGJjN2NkNmYgaW8tYworNjk4NjYgZWQ1Y2Q5MDRmMjAwN2M1Y2VlNTY5OTM2NjQzNWIxNWI1MjEzNWVmMSBpby1jCis2OTg2OCA1ZmZkOTMyODBhNzFiNDA3YWM4NTQ5ZTE3Mzc3NzQ0ZjFkMmQ0MWNjIGlvLWMKKzY5ODY5IGEwZWRhMWUyMjhiOGY4ZjM1NGE0MGRmZjc3NzgyMjUxOTc3NGE1Y2EgcHkzaworNjk4NzAgMGFiOGJlZjY3MWEzZGY1OThhMDA4OTU4NGNlY2ExMTQ4Y2U3ODhhYiBsZWdhY3ktdHJ1bmsKKzY5ODcxIGMyMDFjOGNmM2NiNDBjMjY2YjhjZDY2NGI0NzE1YmE0ZjhmMGJiYWMgbGVnYWN5LXRydW5rCis2OTg3MiA1YjVkY2NjNTBlMTJjNDY0YjE5MDRjMjk0NDM2ZWQ5ZDA0NDBlODFmIGlvLWMKKzY5ODczIDQ5OTE0YjNlM2FhODEwMGY1MTA1YTc1NjAwNDIxZmM0ZDFjYmE2ZTYgaW8tYworNjk4NzQgYjM1MTVlZDI4MTM1MDQxNjBjNmE3MzNkMDU4NjEwODUxNDhhN2M5NiBsZWdhY3ktdHJ1bmsKKzY5ODc1IGQzNjI5NjY3Mzk3NGEwMjJkYTc5NjE3NzM3Mjk4NmEyMjQ2NGQxODYgcmVsZWFzZTI2LW1haW50Cis2OTg3NiBlODljN2VkMWNmZmY0ODBmZTVkNDM0MTIxZDlkNTNkZWM3ZDY2MDQ3IHB5M2sKKzY5ODc3IGFhMzAyMTY5OWM1OWFiODBhOWE5ZGNkMDU3MjY1OTBjOGJjMDY3YmQgcmVsZWFzZTMwLW1haW50Cis2OTg3OCBjZDJlZTgxOTA5NTdjOTQ3MDBmOTM1N2ZlOGFlYjllNjVhYmExNjFkIGxlZ2FjeS10cnVuaworNjk4NzkgMzM5ZjVjMWVmMGVkZjQzMzJhYWQ5ZGIxMWJlZmY2MzU4NDNmZjc4MSByZWxlYXNlMjYtbWFpbnQKKzY5ODgwIDBhNWMyNmQwYmU1NDBkY2MwMmQzOTZlODc0NTE4Y2MzYmExMTg1ODcgcHkzaworNjk4ODEgNjIwZTc0MmNkZjY4YTc0NWIwNjAxODc1YmVlYWY3ZjZlYjEyMDI5MSBsZWdhY3ktdHJ1bmsKKzY5ODgyIDBlZmZkYTU0ODE5ZTJjNDY3YmQ5YjI2YmNkNjkwYWExZGJkNWVjZTggcmVsZWFzZTI2LW1haW50Cis2OTg4MyBlNWU1Y2EwNDkxYjg0MDgyNWEwMmZkNmVmY2QzMDgwMzZiOWRiMzYwIHB5M2sKKzY5ODg0IDEzYTFjYmYxMWEyMWVhZDE3ZmYyNGVhOGIxZTZhMzQ5MDA5ZjU5YWEgcmVsZWFzZTMwLW1haW50Cis2OTg4NSBkMjJkNmU5Zjc5MWMyY2Y3MzY2ODdjNTA5YTM4YjEwNzkxYjVmNTc2IGlvLWMKKzY5ODg4IGNlMGE5NWFmNmIxZDQxYmJjMjkwN2QzYTQ4ZDE3OTEwNWY3MWJjMTUgaW8tYworNjk4ODkgMjcyYWM2NTRmZDFhZjIwMDc0ZThjN2U4MDc0ZTgwOWM2ODVlNDVhZiBsZWdhY3ktdHJ1bmsKKzY5ODkwIGZiN2JlNDVhOTQ0MThlZjYxY2E3MDM2OGRjNWQwOTc3YTJkNDRjZWMgcHkzaworNjk4OTEgM2RmOGJlMDM2MzI0M2UwYThlZWVlOGZkOWEwMWIzMGQ1NGM2OWI5OCBpby1jCis2OTg5MiA5ZjZjYjA0MzdiZTgyMzQzZWZjYmY5ODY4NWM0YTdhNWYzMzg5MjcyIGlvLWMKKzY5ODkzIDQ0NDk2Y2QwYmM3ODAzZTQ4NTE4YzM1NmM5OWFhMWU3OGQ1NWQ2MzUgaW8tYworNjk4OTQgZGIxNGVjYTAxNjM1MDZkY2ZhZmFiMzFiZGE4NzUyMDRkYmMwOWI2YyBweTNrCis2OTg5NSBiNjFmMzNhZjM3NGJjYTcyYjhiNGZlZWYwYzUxMTgxZTVkNWJkZjZiIHB5M2sKKzY5ODk2IDhhNGRjMDA4OGU4NjI2YjU2Y2RmOWZkNzVkYTAyM2E2ZWZjODQxNmMgbGVnYWN5LXRydW5rCis2OTg5NyAzMjE5YjM0YTMzMjA2MTI4OTRmYWE0YzlmMjk1YzE2NzcyNjc4NjUxIHB5M2sKKzY5ODk4IGEzNjY2ODhhOGYwZDNjOWUyZGU0NzE2YjAwODBmMzIyNDcxYjcyNmQgcmVsZWFzZTI2LW1haW50Cis2OTg5OSBjOGQwNmRmZDRjMzlmNWM5NmUwZGE3ODk5MTY4OTA5YmU2MjM4OTVjIHJlbGVhc2UzMC1tYWludAorNjk5MDAgNWJkYjljNjQyY2NjZDE2MmU4ZjM5NzFkZTQyZjg3YmE2ZmVjMTY0NiByZWxlYXNlMjYtbWFpbnQKKzY5OTAxIDNlNzczM2NmMjc5ZTM0ZGE1ZmFjOTMwYjRhOGMwMDFlMmE0MzRlZGQgbGVnYWN5LXRydW5rCis2OTkwMiAyYmYxMzM3YzNhNjA1ZGNhMDQwZjkxNmVlM2Y0M2U2NTg3MmUyZTE0IGxlZ2FjeS10cnVuaworNjk5MDMgMWYxZTIyZWY1NTYwOWFlMTU4Nzk5NzY1ODg2NjVmN2QyODAxOGIxMCByZWxlYXNlMjYtbWFpbnQKKzY5OTA0IDVjODU5YWVhNDZiOWM3ZGNhNTVkNDFjYTE0ZWUwMDE3NTdhNTg3MTkgcHkzaworNjk5MDUgMGE1OThkYmVkNjc5MjY2ZjYzZjE5NmQ5MzBiYjk5MWYzMGIxNjZmOSBsZWdhY3ktdHJ1bmsKKzY5OTA2IDAxNzRiOTM2NjljZDQ4ODllNTc3YzFjMGFmOGI5MjM0NjBkY2IwOTggcmVsZWFzZTI2LW1haW50Cis2OTkwNyAxNmNjYTMwY2YzZWI4M2IxZTI2MDVmMzI5NGQxNmYyZTc3MjYwMzhkIGxlZ2FjeS10cnVuaworNjk5MDggYTBmZWNiZTczNjE2ZjYyODNlM2RlMGY2OTk5MmJiNzhjM2NiNDNjNiBsZWdhY3ktdHJ1bmsKKzY5OTA5IDA1MDQwODdhMjcyMzZiMzc4NTAyMDkwMjU3YzY2M2E2ZDAyMmI3ODYgcHkzaworNjk5MTAgYzFmMDI2ZTA4NzVlMDQ5YjA4YzI3NWRlOTU1ZGY2NjZmNjdhOGVjYiByZWxlYXNlMzAtbWFpbnQKKzY5OTExIDlmZTUzMTU2NTQzY2Y1MmY4MmIxNmZkMzc5YTI3MDc1OTRmNWYzNzMgaW8tYworNjk5MTIgZjllYWQyZTFhMDNjZmQ4YzIzYzg4ZWFjNGNjNWU0MTNiYzU4NjQwMyByZWxlYXNlMjYtbWFpbnQKKzY5OTEzIGJjM2IwNzNhZDE0NmQ1OTE1OWNkNDc3MzRmNjQxYjY4ZjYyMzY5NTcgaW8tYworNjk5MTQgYTUyZTE0NTQ1NTYxNGU3ZmNiNjczMTgxODk2ODlmYTkzZWU0Y2ViZiBpby1jCis2OTkxNSA2NmNlODBlOGU1Mzc5OGU4MTk5NjYwMjYzYzljNmM0OGUwZjc4ZGNlIGlvLWMKKzY5OTE2IGVmM2E2YzE2ODM3NGM0OGRjMDEzYThjNDEwZGNmZmU0OGQ2M2ZhMTIgaW8tYworNjk5MTcgODM2NjRlN2Y3MDhhYjM5N2NkZGJiOTZkNzVmZWFlMWUwNmU5OTM2ZiByZWxlYXNlMzAtbWFpbnQKKzY5OTE4IDk0OTQxYjA1OTgwMGUzNDZiMTU3MWJjYzE0OWE0OGVjZWRkMTMxZGQgcmVsZWFzZTI2LW1haW50Cis2OTkyNCBmYTc0NzY2MGQ0ZDQxNjhjZDViMjNiYmM3MDk4YjA1M2VkYjViMThlIGxlZ2FjeS10cnVuaworNjk5MjYgMDRmM2NmMzJhYTc3ZjgzNjA5MDZlMTIxNTZkYjdmNGYwZDZkODE4MyBweTNrCis2OTkyNyA1Yzc0ZTQwZDE5MjZlNWE2ZTg0ODM3OTA4MzM5ZTkzYTgzNDBjNjgxIGxlZ2FjeS10cnVuaworNjk5MjkgYjFlNjBiNDdlMTYwMTdhNmExZmMyYjBmNzg2ZDEzNzA5NjkxZmViNiByZWxlYXNlMzAtbWFpbnQKKzY5OTMwIDU2MTc0NzEwMzdiYzdhZjVjY2JhNmI2OThiNmY3MDQ3MGJlY2M3MDQgcHkzaworNjk5MzEgODNmYTI3NDgzZmRjOTM5MWJjNDBjN2QzYzZmNWU2NDc5ZGYyNDFmYSByZWxlYXNlMzAtbWFpbnQKKzY5OTMyIDU5NTJkNDExODlhZDFhZjExMTEzZmM4ODAwYWU3NjJkOTI1NjIzYmMgcmVsZWFzZTI2LW1haW50Cis2OTkzMyA5MDQxMmRmZGFiYTMwNmEyNDk0ZGJhMDQ0YzYzZTFiZjc0ZmVkYTg0IHJlbGVhc2UzMC1tYWludAorNjk5MzQgMTJjNjllZjQzZGRlODMyYWMwZDdmMjJiYzMxMzY4ODc4ODgwYmFkYiBweTNrCis2OTkzNSBjMGI5YmMyNWNlYmJlMzk5N2FiM2I4NTQ1YzU5ZTAwMTEyOWUyNmZhIHB5M2sKKzY5OTM2IGJjNzBlYzk3ZTM5ZmFmNTc2NjlmZDAxY2Y3YzkzYzcxYjc1OGVhZjcgcmVsZWFzZTMwLW1haW50Cis2OTkzNyA5YzI1YTA3OTAwMjJjMDYxNzViYTZmNWJkYjgwN2VjYTQ2YmUyOWQ2IGxlZ2FjeS10cnVuaworNjk5MzggZmFmOTY4MjEyZjMxZDZhMDdhYmZmN2ZkNzRkM2U3MDBjYzMxNzk4MSByZWxlYXNlMjYtbWFpbnQKKzY5OTM5IDU3NGZlZjUzYTdlM2RlNDllMjkxODk1NzcxMjU4ZDE3MTA4ZWNhZGUgcmVsZWFzZTMwLW1haW50Cis2OTk0NiA0NWI0NGJkMzJmNDE2NWQxNjljMzFiZTk2MjZiYzY5YmE4YzRmNDczIGxlZ2FjeS10cnVuaworNjk5NDcgYThiYjgyZjVmZDY0N2FkNzBjM2IwMjg2NTBmOWI2Yzg4Yzg4ZTBhZCBsZWdhY3ktdHJ1bmsKKzY5OTQ4IDJmNmIzNGY2N2VmMDIwMTY1OWVmZGFkNTdmNzkxYmYxM2IzMDAyODAgcHkzaworNjk5NDkgMmUyNTc3MWQ3MjAyMTYxZjI1NDBmOTMxYmYwNTgxMDhmZTg1NjUyMSBweTNrCis2OTk1MSA2MGQwOWE3MTY1NTY4MGJkNzZjMjE1MWM4YWExYzM4MGM2NTBhMzI2IHB5M2sKKzY5OTUyIDFkMjQ3Mzk1MTFjOWM5MjlmZWZiY2YwMjZhOWJhYjg4Y2M2NTdhODIgbGVnYWN5LXRydW5rCis2OTk1MyBiOGM0YTM3OTNkMGY1MTJhN2YwZDlhMjhjYzAxMmZlY2JhZWRiOTE5IGxlZ2FjeS10cnVuaworNjk5NTQgYTdmZGY2OWNhZTEzNWMwYWM0OWNmYmNhMTA3MDA3ZGZjMGFkMTg1YiByZWxlYXNlMjYtbWFpbnQKKzY5OTU1IDQ2Y2JlNjdiOTY2MWY3MTE5ZGM2ODliMGI0YTMxYjI3ZDMwOWIxYWUgbGVnYWN5LXRydW5rCis2OTk1NiBkYzMxNWRmN2U4MDg2MzI3OTVjODE4MmVkYzQ5YjI4OWQ0ODAzMzE0IHJlbGVhc2UyNi1tYWludAorNjk5NTcgNjU3NjJhMDZiODhmM2NmMzAzMTM1OGFiMWUwM2Q2ZDEzY2M3OGI2MiBweTNrCis2OTk1OCAzMzdiZDUwOTQ1NWExOTcxODcwMzc1YTU5NWU1MDMyMTY0NWFiZjZkIHJlbGVhc2UzMC1tYWludAorNjk5NTkgMTc3YmExMjJiYjFiMDJjM2EzMzJiMzE1ZDliNTliZTU1NTYxZDc5ZSBsZWdhY3ktdHJ1bmsKKzY5OTYwIDI5YjEyYTg5YjJhMDZjODA1YjE1NzI1NTgwODA4Mzk3OGYxNDkwMDcgcmVsZWFzZTI2LW1haW50Cis2OTk2MSA2NDNkOGQ0ZmM4ZWJjYzY5MTU1ZDM0MTYzNTdhYWRjYTljMDUzMzg4IHB5M2sKKzY5OTYyIDA4YTI5NmE4OGMzZTBiMzRiMTYxZTliOTUwODZhMTgxNzk1YWVmZmIgaW8tYworNjk5NjMgOGUwY2ViOWY1YzJhNzNmMzRmZDI1OTYzN2EyZjg3ZWI4MmM5MjY0YSBpby1jCis2OTk3NCA0MjFhMDM2OWYyMzk0YTRhNDc2M2FjMjViNTI0ZjdiYTBlYmU4NjVjIGxlZ2FjeS10cnVuaworNjk5NzUgYWMyNjc2NWZiMWJiOGIwNDYxZWY1YjU4YThlNDQwZGM4ZDUyMTIxYSBweTNrCis2OTk3NiA3MDJmMTg5OTE2MWUxOTQxZDM1MDQ1YTBjN2Y0MWFkM2JlZmRkMDdkIGxlZ2FjeS10cnVuaworNjk5NzcgNjkyYzhhOTg4MDI2NGIyZTZmY2YxMDIyYTdlZGFlMjIyMGUwNDcwNCBweTNrCis2OTk3OCAwMmVlY2RiMTczNTgwNzljZTA3MzZmMmVlZGU3MzRjMmRhZmVhYTVhIHJlbGVhc2UzMC1tYWludAorNjk5NzkgZjdiMDMwMTAxNjJjNDExN2Q3ZDdjY2FlZWZmNGU1ZDMxZmM0ZmNhMCByZWxlYXNlMjYtbWFpbnQKKzY5OTgxIDBlZTNiOWE3ZjIwOTdlOWRhNzc2N2Y5ZDc1ZTRiZWUzNzdhYTc0NDYgbGVnYWN5LXRydW5rCis2OTk4MiBkNzhiMjhhMzUyNGM1YWFlNmFhNWJlM2Q1YmU4YTg4MTMzOTBiMTc0IHB5M2sKKzY5OTgzIGMwN2Q3ZmQyNzQ2OTkwZTAyNzc5YmRiZTQ4NmU0YzA5OTY1NjhmZTcgbGVnYWN5LXRydW5rCis2OTk4NCA4ODczODU0YmI1ZjkwNzJlNWI3M2I2Mzc4NzQ0OGQ0MGNlNjcyOWRhIHJlbGVhc2UyNi1tYWludAorNjk5ODUgYzgwMDQ4MjE1ZGU1ODAwYjA2ZDM0ZmJmZjIzNmE5ZDlkMDkwMDA3OSByZWxlYXNlMzAtbWFpbnQKKzY5OTg2IDA1MmZiNTFmOGRjZjNiNzkyNTg5ZjlkODBjNjc1NmI5YzYxZDcwNWQgcHkzaworNjk5ODcgM2VjZDQ4NDc1NmIwMjNiM2ZhODAyNDc4NDBjN2IzODUzMzBhNjRhYiBsZWdhY3ktdHJ1bmsKKzY5OTg5IGU4NzJmNTg3ZjE5MDFhNzQyOGU5ZWFlYjliZjkyNTU3ZDhlNmUzM2UgcHkzaworNjk5OTAgZTk5YjU2ZGE0MzJhZjZkMWQ1NmIzMjE3Nzg0ZTkwYjdkMmE4YWZhZSBweTNrCis2OTk5MSAzMjNhNWE4ZDEwZmM4NjAwMmI5MzExZjVhZTc4ZTM4OTFlMGUzNGE1IHJlbGVhc2UzMC1tYWludAorNjk5OTQgNjk4MTc1ZmU4YjNkZTk5MGQzYjZiNzJjY2M1ZWEwMjQ5MjY2NjRjZCBsZWdhY3ktdHJ1bmsKKzY5OTk1IDNmNzNiN2FmMTMxYzE1ZDI5N2JkMjYzMWQwNDZlNTcyOTM2MzNmY2EgcHkzaworNjk5OTYgMzcyMmNlNDU4MzE4OTQ3YTlmMjViZDg4OTliZWIyMDZjZGRlNjU2YiBweTNrCis2OTk5NyBhMWIzZDAyMTY4MjBhOWQ2MjgxODcwNTA0NmM3ODJhODFiZmJmNjg4IHJlbGVhc2UzMC1tYWludAorNjk5OTggNjMyNjY2NjkxZDNkNDgwODMwNTNjNmQ4YzA3YTkxNTFlNDgyZWI5MSBsZWdhY3ktdHJ1bmsKKzY5OTk5IDU4YmJlYjMzZjU4MzMzMWM2NjA4YWZmYTYzMmE3MzFkMWE5YmYwODggbGVnYWN5LXRydW5rCis3MDAwMCA3MTJhYTViYjdiNDhkNWQ3Y2VjM2EwYzk0MDdmZTI3ZWQzZmVmZmVjIGxlZ2FjeS10cnVuaworNzAwMDEgODYyMjg5NDdiNjVkMWY5MDZmODhkMjMzZjNmMGI1OGRhMmY3ZTg0YSBweTNrCis3MDAwMiAxNDlkYzRiYzhlY2EwMzEyMzA4NzYwMWNlMGJmY2E4NThkZDk1MjFlIGxlZ2FjeS10cnVuaworNzAwMDMgOGI0ZGExZjQ5Mzg0NWNhMDc4MjMxMDIyYTkxY2JjOTFmNWNhOWM5MCBsZWdhY3ktdHJ1bmsKKzcwMDA0IGYxNzA3MjllMzAzODJkOWMwMjU5ZWZiNzExN2U1MWJmYzZlZjczN2YgcmVsZWFzZTI2LW1haW50Cis3MDAwNSBmMmU2YTVlYTEwZmUwYTA5NjhhYmIwODgyNTg5N2I0NzUyY2RjNWUzIHB5M2sKKzcwMDA2IDM2OTVjYWZlZjU4ZDkzNDRlYTI5Y2E1Njk3ZGFlZTBjMDkwNzVkYTEgcmVsZWFzZTMwLW1haW50Cis3MDAwNyBiN2IyMzg4N2ZiZGU2ODE1MGU3NTRkODdhNjI2NGM5NTRlNmNhMjBlIGxlZ2FjeS10cnVuaworNzAwMDggZWMxZjhlYjRkYTU5NGY1ZWQ5NDA3OTRiNDgxNjdlZDM2MDUyY2ZhNiByZWxlYXNlMjYtbWFpbnQKKzcwMDA5IGU5ZDAzZjZiMGQ1OTA1NmZhOTU0NmExZTI3NTVhMjEyMjU3ZmZhY2EgcHkzaworNzAwMTAgMjI4Zjg5YWU1NWIxMDA4MjdiYzA5MDU5YmZkMzY2NjA2NTQxMjRlYSByZWxlYXNlMzAtbWFpbnQKKzcwMDExIDJiNjBiNDY1MTNkMjYzZjkyMDVmYmY0Y2Y5ODg1NjdkN2U4ZTgyYzEgbGVnYWN5LXRydW5rCis3MDAxNSBjNGYyN2U1NDZjZjUxNzVlNTJkYzM2NTdiZmRjNWZmMmY3MTM5MjBjIHB5M2sKKzcwMDE2IDEwNWE1MzE3ZTY4ZTEyOTA5OWZmOWU5NDFlMjBkZTJmZjM5MmY2ZGUgbGVnYWN5LXRydW5rCis3MDAxNyA4YjY4OTY4ODc5YzcwZGYxMGEwMmUwMmUzYmE2NjkzY2NkMzM4NmQyIGxlZ2FjeS10cnVuaworNzAwMTggMTY3M2Q5NTczMTFhMGJiNGE5MzNkNmJhNGFjZmJiMWI5OTBlZGZhMiByZWxlYXNlMjYtbWFpbnQKKzcwMDE5IDRmZDgwZTY2YjEwNzIyZjNkNDBmMzc3NDUzYTJmMTY0ZDc2MWFjNGUgcHkzaworNzAwMjAgZGIxZGJmMDU3MTQ3YTRhOTk2NDk5YzdiMWIwNzNmOTE4MzFmZjlkOCByZWxlYXNlMzAtbWFpbnQKKzcwMDIyIDg2NmY3NDdjMTk2ZjEzNzRkOWRmZjA1NWVkOGRmZGIzMWUyOTNkMWEgbGVnYWN5LXRydW5rCis3MDAyMyA4MDAzYTJmYjYyNWJhMTAzODdkYzkxMWU1OWEwZjYzYTI5NzY3ZmNjIGxlZ2FjeS10cnVuaworNzAwMjQgNWRhYzA4MWU3MzBkMDgwNWNhNTQ4ZDk1ZDgwODg0OWY2M2M1ZDA4MCBweTNrCis3MDAyNSBlYjAzZTVhZTcxMDlhNjk3NGNjMjE4YWRkN2ZiNTdhMmEyZDdmYTg4IGxlZ2FjeS10cnVuaworNzAwMjYgODM5OTgzNTk1MzM4MjkyYTM0MGQ0NjAzNmI0NTg5ZWUwZjc5ZGVlYyBsZWdhY3ktdHJ1bmsKKzcwMDI3IDFmODQ3MDZlODE2YzJlNzBlY2Y2MDI2Yjg2ZDc1NGIxNmQ4MjkzMjcgcHkzaworNzAwMjggMWYwZGU0OTRiYzEzMTA3NmQ0NTRlMzFlM2NmNDdlYjI2M2I3MjIyOCBweTNrCis3MDAyOSA5YjYyY2I2NTM4OTIyNzY1YTgyNGM5Y2I0NWM3MTlhZmU1OTdiZjQ1IHB5M2sKKzcwMDMwIGE1ZjAzNzE4NTBmZjU0ZjQ1ZjJhMjc5ZTYyMDVkM2RiNWUyNWNmMTggcmVsZWFzZTMwLW1haW50Cis3MDAzMyBiMzA2YzcyZmZkNzAxMGVkMWE2Yzc2N2Y5ZjRkMWU4YjQ0Yzc0ZTAwIGlvLWMKKzcwMDM1IGQxNTU2YjgxOTVmMjhhZDQ1NzIzNmU5OTkzMDViODAyMzdmN2QyMGQgaW8tYworNzAwMzcgZTA5NDJjNjc1MzcyOGI3NGJmNmNjYWE5ZjFmZWQwZTkwYzMyMTk1MSBweTNrCis3MDAzOCBiNzFkZjQ0ZDViYmYwYTZhYmNhMTIwOGNiY2FiZmNlYjM4ODAxYTA1IGlvLWMKKzcwMDQxIGZjODNjYTFhYzExMDg4MTNlMWFmZWM0ZGIwMmRjMjMxMjljNmY5ODMgaW8tYworNzAwNDIgMzVjMWQ1MjYwN2M4NGY5ZjcyMTY2OWU2MzExZmE0Yzg4ZTZjOGYxMiBpby1jCis3MDA0MyBkMjQ1MzNmYjNmNDdhMTlmZDA0ZGNhYjM2ZjZiMjE5ZjAyZTAwNzNhIGlvLWMKKzcwMDQ0IGY3NWZiOWY0NzFkMDliMjVjZGRiMGM1ODVkNjVlMmVmM2VmMGNhNzYgaW8tYworNzAwNDUgMzE0N2IzYjc4ZGNmN2ViMzA1NjI2ODQ5ZmQzYjI1NTlmNTg1NTllOCBpby1jCis3MDA0NiBhMjY1ZjU5OTYxZjY2YTNkZWJjNDMzZDE0ZTUzMjlhYjEwNTNiZWQ5IGlvLWMKKzcwMDQ3IGM4NGRjYWM3ZTY5YTE4NTBlODVmZGM2ZjdkZmMwMTM5ZDc2MGJjMDAgaW8tYworNzAwNDggZjMzOWRhODM4NThkOTkxMDQ0NDRjMDA3YWM5Y2YzN2ZlN2NkMTFkZiBpby1jCis3MDA0OSA3ODlmZjhiZDE5MGE1YjgwMTVkNTE3MjI1OWI4NmUwYTExM2Q5YmRlIGxlZ2FjeS10cnVuaworNzAwNTAgYmU1YTljODRmNmJjY2E3ZWM0OWFkNmQzMjgwZWEyNTFkMDUxOThjMiByZWxlYXNlMjYtbWFpbnQKKzcwMDUxIDIwNjAzODEyMWFkZWM5NzU1MzU3YjM1MGZiZjgwMjNhYjNjYzhjOTcgcHkzaworNzAwNTIgOWRlNWQ2MmFkNDAyMjhlZjYyZTI3ZWNhZThhZTc0YTQyZDQzMWM2ZSBsZWdhY3ktdHJ1bmsKKzcwMDUzIGJhNmMzMDZjZjJjZWU3NzFmY2MxNDI5NTQxZWNmYjUwNzY0NmM4YWMgcHkzaworNzAwNTQgOTAwMzdmOTdkODcwN2JjZmRkZjgwODNlZTUxMmM1MGVjZWQwNmE4NSByZWxlYXNlMjYtbWFpbnQKKzcwMDU1IDc1OWRiYWNlNTFkMmVkMWJlZGI2NDA1NGFmZTJjYmE2YTFjY2MwMjQgcmVsZWFzZTMwLW1haW50Cis3MDA1NiAyOWQ2NTJlM2YyZDMyYWI5Y2Y4M2JiZTQ0ZTZhYmZiOTlmMjAyODZhIGxlZ2FjeS10cnVuaworNzAwNTcgMGU2ZmFmMjdiNTMxZjI3M2UxNzIyNmM3OGU4NDAzNmJhYmI1MjlmOCBweTNrCis3MDA1OCBjNjRkNGE4YWUyYjJlY2I4MDlhYzZkODVmNGU1YzM4NmExN2VhMzEyIHJlbGVhc2UzMC1tYWludAorNzAwNTkgMmEwZjg0YWM0OWYwOTAzYzMxZGQ1NTlhYWUwNDVmODQzYzYyZWYzYSByZWxlYXNlMjYtbWFpbnQKKzcwMDYxIDY3MjQyNWJlMzg4YTY5MjFkYzhhNzZhYmY4M2Q0MTkyY2ExZjY1ZDggbGVnYWN5LXRydW5rCis3MDA2MiA0ZTE1NTYwMTI1ODQ1ODNhMTg2ODliYzViNzg3MDZiMjY2N2MzZmNlIGxlZ2FjeS10cnVuaworNzAwNjMgNzllNjZjMTFkYzgwY2EyYTBhZDgwYjA1ZWE3NTQ5M2UxOTI2ZGRlMiBweTNrCis3MDA2NCBhZTIyNjMxYTc4N2M0OWI5ZjQ5ZTE1MmQ4OWVhZmJmNWFlZTA4ZTcxIHJlbGVhc2UzMC1tYWludAorNzAwNjUgNjc2NTY3ZTJhNzExOTIxMjZmMDM0MmRjYTVmY2E3YmI4NzA2MDY2NiByZWxlYXNlMjYtbWFpbnQKKzcwMDY3IGQxYTMxNGUwZWZmNzIwMDM1ZmJkNDUyMjBjZGY5YThlN2RhMzU3YWEgaW8tYworNzAwNjggNjAxMWMwOTJlMjEzNDZlZTdiMzViNjY0ZmM1MzM3YjYxOTc2Zjg1MSBpby1jCis3MDA2OSA3ZmFjYTY5NThkYWMwMmRhYjkwMzgzY2M3MGQ0NzY5YWY3N2Q0MzYwIGlvLWMKKzcwMDcwIDBhZDNkZTIxNmU4M2U0M2ZmZWE1ZmE3ZTYzMGZjNmNjNzI0NjVhYzggaW8tYworNzAwNzEgZWY4ZmU5MDg4Njk2OGIxZWI0NjhjYjkxZWJhZTEwM2Y3NzNmYTE3ZiBsZWdhY3ktdHJ1bmsKKzcwMDcyIDc1ZmY2NjliZjk5NmRlYTlmMGUzYmNiODZhNTQ0MzZkYmNmM2YyZGYgcHkzaworNzAwNzMgYjQyMTQ0MWVlNjc5YzVlOGMzYjEyNzRlNWYxMjExYzY4YzY1MTQ1NiByZWxlYXNlMzAtbWFpbnQKKzcwMDc0IGU0Mjg3ZDhjOTc0MTdhZTUyNjBiY2M5MjViYWFhNDcwM2JkN2E1NWIgaW8tYworNzAwNzUgOWYzMDAzNjEyNGY2NzhhMDM2ZTBhMDFjMDM4YTdkMThkYmQ3ZGVmYyBpby1jCis3MDA3NiBlMWNlNjY2ZDc0MDVhNjM3ZTQwODVhMTE3NGRiMTJmNzcxNjBjZjFjIHB5M2sKKzcwMDc3IGZjMmE2ZjZkMzZhY2E1MWU1YzI2MjVhY2U1MjkzODZmNDFlOTk4OGMgcHkzaworNzAwNzggZDcwNzczYzlhZGFkMmQxYTc5MGEyYjQ0MzA0ZDE1NWNiNTY0MDc3MCBsZWdhY3ktdHJ1bmsKKzcwMDc5IDVkZjY2ZGZhNmY2NGFjNjZiMjNhOTdiMmQxMmZjZTllZjdiMWFiMTcgcHkzaworNzAwODAgMmE0NTgxMDZhZmJmZTM1Yjk2ZjM4MGExMzAyZDAwZGUwMDUxYTA3MiByZWxlYXNlMjYtbWFpbnQKKzcwMDgxIDJjNTkwM2EwMmIzNjNhMzhlM2M4MDQ5OGU2Yjk4YzIwMjliYTE1NzkgbGVnYWN5LXRydW5rCis3MDA4MiA2MTJmYzZlZTY4Zjc0NTE4NTk5OWVmN2FjMDM3MzQzZThhZGU1ZTJkIHJlbGVhc2UyNi1tYWludAorNzAwODMgYjc2MzJkZjExMjFmYjcyMzVmZmIzM2Q0ZTBhMTg2ZDFhNjU0N2M2YiByZWxlYXNlMzAtbWFpbnQKKzcwMDg0IDZmZDIzMTkxN2VmN2MyMzFlMzhiNGIzNGFlNjRmYzRlNGJlM2VkZGEgcHkzaworNzAwODYgYTZjMjRhYWNlOGNiZDc0MTMyZTZkYzUzNThlZjY1NzI4ZjJmYmVjNiBsZWdhY3ktdHJ1bmsKKzcwMDg3IDJjZWIyYTc2ODgwZDVmZjMxNDBiOTVmYzExMjBjYTY5ODY1Nzc0ODYgcmVsZWFzZTI2LW1haW50Cis3MDA4OCBhZGM5YmI0NGVjNDcxMDFkZjE5OGRhYWM3ZTBiMzJkMTQ0YWJjZTk3IGxlZ2FjeS10cnVuaworNzAwODkgOTkxOWMxZjQ3OTVlZjg1MTljYjc0YmE5OGU1N2Q2M2EwMjE4ZjcxNyBweTNrCis3MDA5MCA4ZjVkOGYyN2M2ZmNkYzlkYjUwNTA5Mjc3NzcwMTZjZjVkNGVhMTJjIGxlZ2FjeS10cnVuaworNzAwOTEgZGNkM2JjMmUyMzc3M2MwMGQ4ZGNkYjQ3ZmM2NWI5ODgzM2U1YmFjNSBweTNrCis3MDA5MiA2MGZjZmQxMzdhNzI5MmNmMmZlYmRiNjY2NWZhNWQ0MzdlNWMzODJmIHJlbGVhc2UyNi1tYWludAorNzAwOTMgMDhhNGEzZjljNTBlOWMwMTU1ZDk4NmI0ZjVmMGQ3ZjljNGEzNGI4NyByZWxlYXNlMzAtbWFpbnQKKzcwMDk0IDBiOTdmZmI4MTFhMDEyMTJhNzU0ODQ0MGJlOWMzMjU5NDg0MWIwOTUgbGVnYWN5LXRydW5rCis3MDA5NSAxOWMxYTFjZWIxMjk1NTllYzM2NGE0ZjU4Njg4OTIwZDllZmE5ZjM4IHJlbGVhc2UyNi1tYWludAorNzAwOTYgYzJhOGE1MmI4MTFkYzhjNWQ5ODhiN2FjNjc2ZDkxYmJjNDIyNTFjNCBweTNrCis3MDA5NyBkZTExM2I2ZDI2ZDMyNzQwMWMzODc4MmNjY2M4YTUzZjhlYzhmNDFiIHJlbGVhc2UzMC1tYWludAorNzAwOTggZDVmMTM0YTNhODE2YzcwOTMxZjE1NmMyNzA3OWI3MGEzMmZhYjk2ZiBweTNrCis3MDA5OSA4ZTAzYmZlN2VmMzMxYTlhMzk0NDI4YzdmM2I4NDI4MzAzYTMwNzViIHB5M2sKKzcwMTAxIGM5MTBmNmUzYmIyODcxOTgxY2JhMzhiNDI1OTAyOTQ2NzFkODBjMjMgcHkzaworNzAxMDIgY2E4N2M0NzA3YmZkZGQ4NzM5MGVhMTgwZWMzYmQyMDc2MGJjOWFhNSBweTNrCis3MDEwNCA4NWFjYTQzZGFiYzQ5MzAzMmNjOTQyNDU1NjI0Y2Q0YjhiN2YyYTM5IHB5M2sKKzcwMTA1IGQ1MTNjZTI5MWZiZDIyZmE4NmJiMWE4YjFlODY5MTM1ZTUyNzhiYzggcHkzaworNzAxMDYgZGIyOWEzZmJjYmEwZmRmZmQ5NWFlYTk4NGZhY2IwMjQ5NjFlZTYyYyBweTNrCis3MDEwNyA4NzExNWM3MjcxMDJiNDIwNTYyY2RiZThhODc0YWRjMDRjNjE1NWJmIGxlZ2FjeS10cnVuaworNzAxMDggMmQ2OWQwZDNhOWNhNWUzZjA2NDkxNTg2NTA0YmIxODA3Mjk4MjExYSByZWxlYXNlMjYtbWFpbnQKKzcwMTA5IDljNTZlYjE3ZjMzNGZjZjk1OGY0NmYwYWQ2YzQ5NmUxM2UzM2U4YTEgcHkzaworNzAxMTAgNGRhNWYwZGVkMzYyMmUxMmUxNmI5YWI4ZmE2NGFjOTgwMGNjNjljNSByZWxlYXNlMzAtbWFpbnQKKzcwMTExIDExNmQ5MGVmMzE2NDk0OTQ5OTQyNWJiOGMzNTYwNzE0NWUyZjcyYTUgcHkzaworNzAxMTIgMzc0YTlhZTVkZDBmNDJhNGM0NDZjY2Y1ZDI5OWI4ODgzMmJmNjkzNiBpby1jCis3MDExMyA4ZmUyOTg4Y2Y1NTA5MmM4MzJhODBkZWJiZmNlZWQ4MGM5ZjM4YTY1IHB5M2sKKzcwMTE0IDdiMTc0MWQ2ODA5ZTg5NjNiNWE4ODg4YTcyOGNhMWJmZWY2OTljMzQgcHkzaworNzAxMTUgMDQ1ODczMGViMDM4Yjk3ZmY2MjhjYzY1ZGM2NDFhNWM3MjZiMDUwNCBpby1jCis3MDExNiAxN2VhMThkZmNhYTU1ZDJmYTZjZTQ1ODAwOTc2YWIxMzMzMTFkMDk3IHB5M2sKKzcwMTE3IGQzNDJhNzI1YjJkNTg5OGJlMzViNzU1NDhlZmM5MTAxYjdjNWVmZmYgcHkzaworNzAxMTggMDM4MzIzNTZjMDk2NzQ0OGUxODk4MTYyODk4MjY4ZTEwOTVmODc1MyBweTNrCis3MDExOSA2YzA4YmZlNzhmZmZlYjJiNjU0N2FmNDg1OTJhM2MwM2U4Y2FjYWYwIGxlZ2FjeS10cnVuaworNzAxMjAgNGE0ZGE5NjhkZTJhOThjODc1NmY5ZWEyYTk0OWZkMzVmMDMzZjdmZiBsZWdhY3ktdHJ1bmsKKzcwMTIxIDBjNjM1NTc0YjEzOWUwY2NkYTI4MzI5Mzg5MjkwN2Y1MWFmYjgxNjQgbGVnYWN5LXRydW5rCis3MDEyMiA2YjFiMmU3YTA2ZTk3ZDU5ZjRjZTNlYjZlZTI2ZDRmYWEyODg1ZmQ4IGxlZ2FjeS10cnVuaworNzAxMjMgYjM3M2I5OTYyYzM1YWMyZDQwNDUxYjM4ODRhYzJhMmE3YzNhNGE5NyBsZWdhY3ktdHJ1bmsKKzcwMTI0IDRkMDc4ZDUyMmYyNTk3NTJkN2E2MTcyN2FjOGNjYzgwYjlkODcyZGQgcHkzaworNzAxMjUgZmQwOGU5NDQ5YTQzODgzZDRkNGQwYzY1MDA3M2JjNjZiYWJkNDU4ZiBweTNrCis3MDEyNiA4ZjdiZTQ4NzdhNjA2ZjAwYTk1YTVmZDUzOTE1OWYzMWMyMzk3ZDM2IGxlZ2FjeS10cnVuaworNzAxMjcgZThhZjRlMjRmMDhmOGQ0ZDZmNWZjYWZhMjI3Y2JlNzdlYjUzZDU1OCBweTNrCis3MDEyOCAyNTk2ZGRkYmQwNTdiN2RmMDJmNWYwNzM5Mjg1ZTAyNjc0ODgxMTEwIHB5M2sKKzcwMTI5IDVhZDg4YjkxOTMxOGE1NDUzNTM4ZjdiZjliYjdlMmRmODYyM2RhNTkgcHkzaworNzAxMzAgMGE2MDliYTU0ZjVjNjU5NDVjNGY5OWY4NjRlN2JmZTkxMTE5M2ExYyBweTNrCis3MDEzMSA5ODI1MDI4MjZmNzg5ODc2NmUyOWRkZTYwNWNlMzQxYjM5MTA1Yjk1IGxlZ2FjeS10cnVuaworNzAxMzIgYWU3MWRmOTM5NGRhYzhiY2QwMjE1ZTA2MDRlNjYwYTdmYTU0ZWQzNiBsZWdhY3ktdHJ1bmsKKzcwMTMzIDExNzcyNTg2YmM0Mzk3ZWQ2ODVlZjRjZWFlYWJjZThlNmYyMjE4ZDAgaW8tYworNzAxMzQgNzM4ZmFkMzhhNGJmZTViNjJjYWM4MTg3OTEzOWMwYWY4OWEzOTliNiBweTNrCis3MDEzNSA1YjRlOGY0ZTljYmQ2MmU5OGQ1Y2RkNGRjZmQ2ZjgxOTRkNTcxZjFlIGlvLWMKKzcwMTM2IDYxZDIwZTkxOWE5ZTY2Zjk1MzM1MmI0YWYyZWI2ZjIyZTZjMjU1YzIgbGVnYWN5LXRydW5rCis3MDEzNyA4MDIzM2RmMjRmOGNhZDVhYjJlZWJlZDQyNGEyMWRlNTk0NjRhYWUyIGxlZ2FjeS10cnVuaworNzAxMzggOTIwYTQxZDU4MWI1OWVlZjM0Mzc2ZDBiYTc1YTdlZGJkYmY1OGY1YiBweTNrCis3MDEzOSBlNjczZjkzOTI0MDJkNzU1NDc3NjdiZTQyYmI2Yjc1NGU1OTdkNGI2IHB5M2sKKzcwMTQwIGM5NmUxYWI0ZGFiM2FhMDUzODdjNWI5OTg3N2VmYzc5ZGI4NTM5MzIgaW8tYworNzAxNDEgMzhhYTZmMzZjZTRmYzEwMWMxYzA5Yzc4NmJmY2VlMjAzODY0MGUzNiBweTNrCis3MDE0MiBkNzcxNzJlYjZmZTc4OWQzM2I5MTVjM2VhMmRmZGUzODgxMGE5YjhlIHB5M2sKKzcwMTQzIDNiODg1YjkyYWY2Y2RjZDQxODI0Zjk2NTkyYTA1NzlkODlmYmYzOTggcHkzaworNzAxNDQgNzdlZmJiM2MzMTEwYzAyOTc3NGY3ZmQ3Y2VjZWYzY2Y5OGQ3YTI3ZCBweTNrCis3MDE0NSAwMWY4M2JiNGExYzRkMmJmOTc2Y2UxMjY0ZTVmOGUzYzU1ZDU2ZGE1IGxlZ2FjeS10cnVuaworNzAxNDYgZjYzMmE0ZTZlZTMxNDJjZmRhYjcyMGFiNThlMzYyY2FmNDNkNGM1ZCByZWxlYXNlMzAtbWFpbnQKKzcwMTQ3IDcxMTE4NDVjMmY1ZTNhMjJlNTE5MGQyODRmNjA4ZmJjZTVkNTIzYjcgcmVsZWFzZTI2LW1haW50Cis3MDE0OCA3ZDY5MDcwYTNkNzgzZGViMGYxMjQwMWUwZTU4Y2I2MDJlYWY4ZTFmIHB5M2sKKzcwMTQ5IDc3ODU5OWNlODFhMTRjNjhhNmM3ZGJkOTViYjBlNzhmNmEzOGM3ODkgbGVnYWN5LXRydW5rCis3MDE1MCA4YTNkYWRjY2QyMDc1M2FhYTQ4NTdkZWYyMzYzMzgzZjIyZGRmOTEwIHB5M2sKKzcwMTUxIDcxZGFlMjJlMTgxZDk4M2UyOTRjYWNmOGIyOGM3OWJiNjBkYjkwNDMgcHkzaworNzAxNTIgMzA0OWFjMTdlMjU2YmIzMGI3OWYxMTM0YTM3YjY1N2UzMGQzYjc4YiBweTNrCis3MDE1MyA1OGRiNGRlYjdhYjE2ZDc3ZGEwOWIyMDU0NDI1YjFlZWI4NDFkZGE5IGxlZ2FjeS10cnVuaworNzAxNTQgZWJlMTA4MTBlYmVkZWNiZmZlYzc5NjhjZWVmOTFlZGZjOTY2ODUzMSBweTNrCis3MDE1NSAwMTU5YWMyYmM3ODdjNDk5ODM1ZGQ3ODQzMGQzNzYyNjAwNzcyYmM1IHB5M2sKKzcwMTU2IGUzN2JiMzAyNTVmMzExNzM2MDM5OWNjNDBiYWJjYTdmNzJhN2UzZWMgcHkzaworNzAxNTcgNDU2M2U2MTIwNTQ0YzA3ODFmOGVmNDliNmYwMTQ4YzI1YjU2ODUyMyBweTNrCis3MDE1OCAxOTRmZDQwMTkyMmU2MDdkYjkxMTc4Yzc2OTYzNjk3MGI5ZDI2ZmEzIHJlbGVhc2UzMC1tYWludAorNzAxNTkgZjg2NzBhN2RhMjI5NmIwMGJlOWE1ZDdhNzk2ODU5MTIxMmNkYThiZSBweTNrCis3MDE2MCA3NjhhZWVhMmJjMGZkYmEzNzNkMDUxZTNmNDk2OTNlMjBjZmJkY2YxIHB5M2sKKzcwMTYxIDU1ZjNiODgxY2VkMjYzNzFjNjk1ZmUwYzU1OTc2YmUyZGIwM2JlZDggcHkzaworNzAxNjIgMGE1MzNkYzFkZWIyMjc3MjQ5ZTFhY2I0YmM0MTM0YWE3ZjViODQ4NCBweTNrCis3MDE2MyA3NmE1NzliNmJhZGU5NWQxZWExOTRkNGY1OGE4MjgyMDdmZmJkZTk1IHB5M2sKKzcwMTY2IDBjMDI4Njg1YjQ0YzNiYjRhMTBiMTYxMmVjMGIwODkwNjA1ZmJjOWMgbGVnYWN5LXRydW5rCis3MDE2NyAyNDAyMzFhYzc5Y2ZkMDE3MWQwODc1ODI2ZjA2YzI3MmY3YzFjMGRkIGxlZ2FjeS10cnVuaworNzAxNjggZWIyYzM1ZGQyMjVhYjM0NDM5ODJkOTI2N2VjODA2Yjk0ODU3ZWJhMCByZWxlYXNlMjYtbWFpbnQKKzcwMTY5IGZhOWNjNGQ0MTg1ZjdmZDJjOWQxMjQ5ZGYwN2YzZGViYWEzNWMxYmQgbGVnYWN5LXRydW5rCis3MDE3MCBjZTJiNzU5ZGM3ZjM1ZjE2ZmI2ZDI0ZTgzNDdhMWE5YWZiYmMyNzZhIHJlbGVhc2UyNi1tYWludAorNzAxNzEgNGQwZDYxNWQzNzg0YzJkMTg0N2M0MzVkNDIyMTc4YzczYTA0Yzk2YSBsZWdhY3ktdHJ1bmsKKzcwMTcyIDI2MjljNDdmYTZiY2U0ZjQ4N2NjMzg3ODA3YWZhYWExMjhiMGIxZDkgbGVnYWN5LXRydW5rCis3MDE3MyBjOGE4ZWM4N2ZmMWYyZjNlMzI3MjJjMTAwZTQzNTczZGE0M2JhNzMxIHJlbGVhc2UyNi1tYWludAorNzAxNzQgNDFlNDA3Mjg2NjEwNWQ3OTQ5OTBmYjg1Mzk2M2U0NDUxMTkxOGMyNyBweTNrCis3MDE3NSAzMGVlYWRjNDY1MjBmYmU0NjZhZjY0ZmYzN2MxNTYyM2IzYmY1Y2IxIHJlbGVhc2UzMC1tYWludAorNzAxNzYgMzllOWEyMGI3ZDdmNTA1NGViZWQ5Y2IyNDQ5YTYxZjVhYmY2ZGVlZSBsZWdhY3ktdHJ1bmsKKzcwMTc3IGRjM2QyNDgyNGI2MDI3YTdjZjM3NTdhMmY2Yjg5OWYyZTRiNGJmMzMgcmVsZWFzZTI2LW1haW50Cis3MDE3OCAyNzYyNDRmZmNhZWVlMWNmYTQ2MmFhNTBmZWZkZGZmNWY2NmJlODhmIGxlZ2FjeS10cnVuaworNzAxNzkgNWYyNDVjNzAwYmJiMTUwYTVhYWI1MmNhNGJmZGJlMTZiNWNkNmFjZSBweTNrCis3MDE4MCA0YjU0MzFmYjJlOTIwMjFkYjhkNDI4NjRlMjEwOWIwNjI5YTMxNzk0IHJlbGVhc2UzMC1tYWludAorNzAxODEgZmJjNzc1OTc2M2IyYzhjMGJkNjczN2ExZDM0Y2ExYjEwOTcwZWMxZSBweTNrCis3MDE4MiBlZWFhODdmYzNiZmQwY2I3NWM3N2U5ZmUzMjYxNTA0ZmIxMjZmOTAwIHJlbGVhc2UzMC1tYWludAorNzAxODMgNzU3OTI5MjhmY2U4OWJjYTFlOGM1MDFkY2E3NzM3MGE0ZWY5YTFmMSBsZWdhY3ktdHJ1bmsKKzcwMTg0IDMzZTlhMTQ1ZmQzODM1N2VkNDJhNTJlYmY1MGNiMmU5OWE2M2Q4NjAgcHkzaworNzAxODUgOTliNjhkN2Q3YTg5MmYyOTlhMjA2NDFiZGM3MzQ3YjAyODczODQ5OCBweTNrCis3MDE4NiBmZGRlZTU0NTYwMTNhYzAxZTVmZjU5ZmI2ZWY1ZWY5MDkxZWFlOTk4IHB5M2sKKzcwMTg3IDFmYzFjNDFkMTM2ZjRiY2Q4OTZmYTBjYWM1YjIzMzc3NWVlYzZkNWQgcHkzaworNzAxODggZjQ4YWY3N2VlODRlMjA4MjhiZDUzYjY2YTJhYjBmNTdjZjRkMWZmMyBsZWdhY3ktdHJ1bmsKKzcwMTg5IDc5ZWEwNjY3NjA0YjM3MjJmMmQyY2QxNmEwZjA5OTYxZmY3ODAyZDggbGVnYWN5LXRydW5rCis3MDE5MCBjZGQzZjYwZDk5NzRmNDQ3NjljZjc5ZGM1OTc0YTk4YmFkMzE2ZGFjIHJlbGVhc2UyNi1tYWludAorNzAxOTEgMjc1YmJlZTE0NmFiMDViZjQ4N2YwOWI0YWNiMzQxOWM2YWYzMzc5MSBweTNrCis3MDE5MiBhOGI5YWEwMjg4OTliZTk1OTBiYTBiMGY4MzdlMjE0ZmJjNGE5MDYxIHJlbGVhc2UzMC1tYWludAorNzAxOTMgOWNkMzU1YTc5ODQ1NmY4MDgzN2JkODRiNDMzMjg4NGZlM2ZkNWY4MiBsZWdhY3ktdHJ1bmsKKzcwMTk0IGQwMWRjODQ3YjU4NjIxYzJlNTQ1ZDljYzc0NDMyMTlmOThkMTY4NjMgcmVsZWFzZTI2LW1haW50Cis3MDE5NSA3YjI3OTY3OGE2YTFkYjQ0YTA3OGE4M2I0NDVmOWRmMzE3MjA0NzU0IHB5M2sKKzcwMTk2IDI2OTg0NDUwYzdlOWE4MTg5YThiZWYwNzEwZTk3OTU0ZDAwYzA5YzQgcmVsZWFzZTMwLW1haW50Cis3MDE5NyBhZmVmYjc3MTY0YWQzYmYyZGMxNzRlMDdmNmQwYTllMTk0YjcwNzgyIGxlZ2FjeS10cnVuaworNzAxOTggNzc1ODI5Y2YwMGQyYWJlYzRiNGNkYjU2MTk1MjMxNDcyMGRjNGNhOCBweTNrCis3MDE5OSA4ZGJkMWI5NmZhNmI2OTBmZDdkYzM5MTVkMTBiZTJiNWY3OTE3NWQ5IHJlbGVhc2UyNS1tYWludAorNzAyMDAgYzc3MjM2MjZlNGUxMDY4MDgzN2E2M2NlMjRjMDgwZGYyZTNmNDRjNSByZWxlYXNlMjUtbWFpbnQKKzcwMjAxIDFmOWRlNTM5ODNjMTU1MTMxODBlMTM0Njc1NzJlNDY1YTFlM2JkNjggcHkzaworNzAyMDIgYmViYzRlZWY5ZTg5M2M0MDE5MmM4YWVhMmVkYzg5NjZhMTc5ZDFkNSBweTNrCis3MDIwMyA5ZmE3OTQ5NjQxZDMwMDliYjYxOTg1YWJlY2ZlOTJiM2FiNDdmMDY3IHB5M2sKKzcwMjA0IDRhM2I0NGMyMWI0ZjNkYTdjODJkNWI1MzIxZmE1NmEzMTg2ZmE4ZGYgcmVsZWFzZTMwLW1haW50Cis3MDIwNSAzYjlmNWZhOGJjY2Q5MWQyZDNkMjFhNGM3ZTE2M2JjMDNjYTU4MDQ5IHB5M2sKKzcwMjA3IGNhYmIwZGRjYjg4ZTRhN2UzMTBlZmE0NmU0N2RkMTIyMzUzMmFkNjcgcmVsZWFzZTMwLW1haW50Cis3MDIwOCAwZjZmNzg3ZjEwM2IyOGI0MzIzNTg2ZDE3MzQ0NjE0MzYyODMxMTM2IHB5M2sKKzcwMjA5IGFlZjVjZmU3MzM1OGQ0OGZmZGFkOTIyYjMxYjAwYzBhZjg3Mjg2ZTcgcHkzaworNzAyMTAgZjViODFiZTU5MTU5NDZlM2Y5MjI0ZDZkOWJiNmFiYWM5NWVkZjdhZSBweTNrCis3MDIxMSA5MGE2NjkxNWNhOTE5NzAwYTI0OTk1YTY2MGM2NjA5ZWY3NmYyZmVjIHB5M2sKKzcwMjEyIDQ2NTBlY2RmY2ZiNjQyMzdkMjljMjI5MjQzODMyZDRiZTgxMjlkZDMgbGVnYWN5LXRydW5rCis3MDIxMyAyYjJiNTFmMzA0MDc5OTc3ZmExODk1ZTcyMzBjOGI3ZGMwYjAyMTM2IHJlbGVhc2UyNi1tYWludAorNzAyMTQgZmNjNjIxMWUwZDcxMDVlM2Y3YmI5M2NhN2ExNmYxOTc3YWI0MTVhOCBweTNrCis3MDIxNSA2ZjBkMjExM2RkMjIyNjAwZWY5MGZlNDQ1OGVkYzJmZGY4YzAxZjk1IHJlbGVhc2UzMC1tYWludAorNzAyMTYgYTk5ZmE3NjcxM2ZjNjY4OWNlYzA2NTQ1NjkyMzJjZDVjMjk5ZGIzZiBweTNrCis3MDIxNyBiYmJjOTc0NmM3MGRjNDA2YjllMDhlZTNhNzA1NTJmOGNjZDFkOGMyIHJlbGVhc2UzMC1tYWludAorNzAyMTggNDMzZTExNmMzMzVkYmIyZWNjODYzMDUwNTlhOTY4Yzg5MjYyMDRkMSBsZWdhY3ktdHJ1bmsKKzcwMjE5IDExNDg1MGY3M2UzYTVlYmU3MTVlMjVmZjJlMWExNTdhOTU2NWRiNWYgbGVnYWN5LXRydW5rCis3MDIyMCA0ZTc0NDkzNDhjMWE0ZDVkZTExMzZkODRiZDE4YjVjNTI3ZWU5MjlkIHJlbGVhc2UyNi1tYWludAorNzAyMjEgMDNjODBlMDc0MmMzNDQwOGIwMWY1MTk1YzM0ZTkyNjc5NzhiNGJlMyBweTNrCis3MDIyMiAxMDY2Nzc2ZTI4MjAzNjI0Y2MxOTJkMTM3Mjk5NzliOGJlMjY1Y2E0IHJlbGVhc2UzMC1tYWludAorNzAyMjMgYzc5ZWM2M2U2YzA4ZWQzZTk0NmEzNDJkYmUxMjY5NDhkNTAzMDM2NCBsZWdhY3ktdHJ1bmsKKzcwMjI0IGI5Y2Q2OTM5MjY2NjdkMTg2NGQ5ZTJlNzdiY2JkMTAzOTdlZDZjMmEgcmVsZWFzZTI2LW1haW50Cis3MDIyNSA2ZGJiMmMxYzA5MDA5ZDY2MjIwZWU2ZDIwMzkyMGFjNjMwZDdkYjBlIHB5M2sKKzcwMjI2IGY1MTQ1YWJkNGJhMjZiMTBhOThjZDYyMTM4NjhmNGQzZWUzZmE1MjYgcmVsZWFzZTMwLW1haW50Cis3MDIyNyBlOWU0NmFkZTYxYzc4Njg0OTdkM2ZmMjg3ZjUwNGNhZTM3NmYwMWQyIHB5M2sKKzcwMjI4IGE1ZTMyYzA2ZTE0YjEyODdjOGVjNjkyNDZhNTk3ZDVhNmZhYWZhY2YgcmVsZWFzZTMwLW1haW50Cis3MDIyOSBhODlmZGJiMjNhNGE3ODU2YzdjNmQyMjNmODhiZmYwYWY5YTFhM2QwIHB5M2sKKzcwMjMwIGJjMWNlMzY4OTg2ZTQ1YjFmYWY5NmY5Mzk5NWRmNDZiY2Q3NWU3YjggcHkzaworNzAyMzEgMzZkN2ZhYTVmZjk2MTRlNjI3ZGYwYmRkNWM2N2M4ZGJmMTc1ODA0NSBweTNrCis3MDIzMiBhYmE0NDA0ZjVkOWZmNTE5ZWVkOWJmMzBhMGU3MTZmMTYxMDk1MmI1IHB5M2sKKzcwMjMzIGJmYzJmYTRjODQ0NDliNjFkOWRiMWEzN2ZiNmI3NzQzYmE1ODczMDQgcHkzaworNzAyMzQgZjdiMDZhOTY1OWI4NTMwNWE4MWFiMzA1OGJkZGZiZWRkNTRkOGZjOSBweTNrCis3MDIzNSA0MzcwNDRlNjJkM2QzYmQ0OTQ2NTI0MzBhNTBmNjk5N2FjMDg5YTFjIGxlZ2FjeS10cnVuaworNzAyNDQgOWYyZjg2ZGY1YjI2NDhjYTY5YTFiNzU5YWZkNzhmOWM5ZDYyODg2MiBsZWdhY3ktdHJ1bmsKKzcwMjQ1IDU2OTgzY2ZkZjVkNGUyZThkOThkYWUyYTA4Y2ExNWRjMzY4NzNkZDYgcHkzaworNzAyNDYgZGNlMjhjNmI5ZTg1YTI4ZDhkYTJjOWUwYThkNmE5NzAwYjA5MTAzOSBweTNrCis3MDI0NyAyMDMzZDQ1YTViOTk2ODFlMTQwZGZhM2M0MTRhNDk0MTA0MmFjYThlIHB5M2sKKzcwMjQ4IDg5NWY2OGVjYjA1NWMzZjE1NjY1NjAwYTUzMTk0NWMwN2M1NGNlZmQgcHkzaworNzAyNDkgODM2ZTRkYWRmNmQyY2M2NWI4ZDBmNDU2ZTk0MmIxMTUxMzQ5MmZiMSBweTNrCis3MDI1MSAxMDQ1ZmQ2M2ZhNzMzNWZmOTE1YzU2ZGI4NTQ1YTZjOGU0M2ViMjFkIHB5M2sKKzcwMjUyIGNmMDkzYTc2MzA1MzNjZmJkYTQ3OGNmZWU3NTJiMWVlNTM2MWUyNmIgcHkzaworNzAyNTMgNjUzNzFkZjQxYWNhNjI0MWVlODgxMzA1NGIwYjdlNmM0NTk4NzFmYyBweTNrCis3MDI1NCA1NTQwNzQ5YTI5YmI4NzMwNmFjNWY5M2Y4OGM5NjRhYWUzMjE1MDJlIHB5M2sKKzcwMjU1IDcwZGVjYjU4MGRkOTFmMGNhNzNkZjEyYTZlMDQ2OTZlYzRhNDI2NWYgcHkzaworNzAyNTYgYzA2ZjAyYTVlOTYyN2IxOTA4NWY2NjNlNTE4OTg4NGY1MDU3NTI0NiBweTNrCis3MDI1OSBiYzAyZGUyNzg3NDkwM2FiZDkzMGE0NDE2Y2VmMDA2ZTJjMzliMTFhIHB5M2sKKzcwMjYwIGI5YmQyZTNmNzliYThhNjU4NTI5OTY2MmE1NDdkMDU2ZmVlYTZiMGYgcHkzaworNzAyNjEgNTk4MjUzZGIxZjVkMTEyYzM4MjNlODRlMGJkZDMyNWJhYTVhYmQ2MiBsZWdhY3ktdHJ1bmsKKzcwMjYyIDRkN2Y2M2FjOWQyNDY1ODg4YWVkZWM0NjA5ZTY2OTA3ZmE1ZTIxYjIgcHkzaworNzAyNjMgYjFlY2ZmNWUyNzA0MDQyMmMzNmE2OTk4MjI1NzA0NjkyZTkxYmFkZiByZWxlYXNlMjYtbWFpbnQKKzcwMjY0IDUwMzk3NmNlMzM3M2U1ODliYzEwYmNhMDM4MjYwZTdjNDkxZDE0MjEgcmVsZWFzZTMwLW1haW50Cis3MDI2NSBmNDY3ZDQ3ZjZkZTUyYWRmNjNmZDRkMWQyMTVhYjJhYWJmNmVjNjRmIHB5M2sKKzcwMjY2IDdmY2I3ODVlYzBmNTI3ZDQ4YjIwZGNiMThkYTVlYTkxZDJjZWY1MGYgcmVsZWFzZTMwLW1haW50Cis3MDI2NyA5N2FjODNlNDUyNzA2MWI5MWNhMGM3ZGZkYTc2NTYwNDhkMzcyYTMwIGxlZ2FjeS10cnVuaworNzAyNjggNTQ1N2U0NmQ5ZGZkNDYyOWE2ODE1NTdkMDY5YzNhYWEzNjcxZDE4NSByZWxlYXNlMjYtbWFpbnQKKzcwMjY5IGMxNTQyM2Y5ZmFjMzUwZjM5MjhhMTY5YjhmMDA1ZTczNTBjNDE5MjAgcHkzaworNzAyNzAgM2U2NzZiZjI4MzEwM2VlMDE2ZjdjOTgxODM3ZTY5YjZkYWU0MjM1NyByZWxlYXNlMzAtbWFpbnQKKzcwMjcxIDYzNDU2ZDJiZjVhMDg5MTdjOTExYzM5NjFhNDYxNTZlNzI5YjYxMGQgbGVnYWN5LXRydW5rCis3MDI3MiA1YzkxYTZlMTg1NjRmMDRmMzM0ZDZiMTZlNzBkYWY3ZjM5NjI2MzI4IHJlbGVhc2UyNi1tYWludAorNzAyNzMgYmNmYjdkNjc5MTYxNTliY2ZhNDU3NTJhNDRmNmViY2EzYzEwN2YxNSBsZWdhY3ktdHJ1bmsKKzcwMjc0IDdmNzA3NDkyOGM2ODE0MmQ4MDUyNjc0NWI5YTU1ZjdiNTc5MGVkODMgcHkzaworNzAyNzUgMWE4MzkxY2M0YjQ0Y2Q2NmVhOTg0MjU1YTFiMGJhMWE1MzFkOTNhOCBsZWdhY3ktdHJ1bmsKKzcwMjgwIDc5ZmUwN2UxMzM4OGVjN2E4NDhjYTIyZTQzZjU1ZTUyNzllNmIzYWQgcHkzaworNzAyODEgNDI1NTNlMzVmOGU0YjQ5NjY1YjliMDRlMWVlODY4NGVlOTA3M2UwZSBsZWdhY3ktdHJ1bmsKKzcwMjgyIDNiNDM1NzdlMTk3MWM4YzEzODBhZjBjYjJhMTdiMzlhZGY5YzdhNDIgcHkzaworNzAyODMgN2NiZDQ0YzIwM2NmOTVjYWE3NjA0YmZmYzU0NWMyZWViOWI3MTA3YSBweTNrCis3MDI4NCA4ZWQzY2JhYzE2YmY1NjUzZmE0MmMzMjI4Yjc5YWE5YzRkN2RhOWZjIHJlbGVhc2UzMC1tYWludAorNzAyODUgZGFiNDU5NzFjNTY4ODQxZDIzODUwODc2YWY0MWY0MTBlODgyMGMwZSByZWxlYXNlMzAtbWFpbnQKKzcwMjg2IGY4MDRiOGEyNTExNWU3YjIxZWEzMTQwM2YzZmEwMzY5MGFmN2E0M2IgbGVnYWN5LXRydW5rCis3MDI4NyBhZTMwMDZjN2Q1YjAxOTljNTZmODBlNjRlNDZlNzFhYjdkNWRjYmZkIHB5M2sKKzcwMjg4IDg5ZDhhZjI1OTM1MzI3NGU3NzAxMDE5YmRhOTUxMDZjZjE5NjEwMzggcmVsZWFzZTMwLW1haW50Cis3MDI4OSA1NjNiNGY4ODNlZDg4YjE2NjI3ODdjYjkxMDVkMGM0MjM3YWVkYzlkIHJlbGVhc2UyNi1tYWludAorNzAyOTAgNTRjZmFjYWM2ZDBhMTU1ZDE4ZWQ4ZmM2M2FlODQ3YzQzZDc3NDEzZiBsZWdhY3ktdHJ1bmsKKzcwMjkxIDAzMDgwZmEwOGRmZTdjY2RmMTViY2UxNWI0YzcwYmRjMTQ2ZGZjMzAgcHkzaworNzAyOTIgNWJjOWY2Y2M1NjFlMDQxN2E0MzM4NDlmNDUwYWVhM2Q4Nzg1NzljMyBsZWdhY3ktdHJ1bmsKKzcwMjkzIDRmZGRjZDRlOGViNTE5ODYzY2EwYTY0YTMzNGQzNTExMmIyZWI1NjcgbGVnYWN5LXRydW5rCis3MDI5NCBhZmQ3MTE4YzhjY2ZiNDBjYTU2ZTdkM2YxMTViMGI0Y2FkYmM0NjFlIHB5M2sKKzcwMjk1IGRjYmZmZTkxOGE2ZjhlYzZlZDdmYTE1OGFkOWNiYzI0YWI1YWUwZjIgbGVnYWN5LXRydW5rCis3MDI5NiBhYjdhNzIxNWU0NjM2OTUwZjBhY2Q4OTk5YTNjNzU5NTNmYjE4MWZlIGxlZ2FjeS10cnVuaworNzAyOTcgYzVlMjNiOWNlZGNjOTk3NDAzNzY4MDQzZjRkYjZmNTQ5MGE0MTc1NiBweTNrCis3MDI5OCBiMDkxMWI1YTAwMmVkODQxYjZjZjI1Y2Q4MDRlOWU4NDJhMDU4YzBlIGxlZ2FjeS10cnVuaworNzAyOTkgMjE4NTBkNmQ1YjRkNDBhOTZlYzI4ODg2MDRhY2QzOTk4MWI4ZmVlOCBweTNrCis3MDMwMCAwMzgyOTAxYzZlYmQyNzk0NjExNzM2YWZlY2Y4YTdhMTM4Y2Y1OTFkIGxlZ2FjeS10cnVuaworNzAzMDEgM2MwNGQzNGMwNDk3MTdjZThiY2RlOWMzYjY3ZDkzNTU1ZGM0MzQzOSByZWxlYXNlMjYtbWFpbnQKKzcwMzAyIDQzMjJlNmRkMmE2YzllZDY0ODJlMTk5YzRhYzMzNjgwZTNkODM3MDYgcmVsZWFzZTI2LW1haW50Cis3MDMwMyAwYzdkYWM3ZTJmYjA4MTEyYzM3MDE3NWQxZjc5MzBhNWUyODJkZDYyIHB5M2sKKzcwMzA1IGE2MGZhY2M5ZjdjZjU1NWIyNTRjMGNmNzU4MmZjNTA4OWQzMDU3M2YgbGVnYWN5LXRydW5rCis3MDMwNiBmNTFhMjhiMTA0MjY1MTQ1MTBlMzNlNWJkZmM1MDJhYjBiZWYzNjlkIHB5M2sKKzcwMzA3IGNiY2IyMTQxYWVlNTllODRiOTdkZjlmYThlZGFmOTgzNTFjNzAzZDEgcHkzaworNzAzMDggM2VjZjZjM2NjODFlMGViN2ZkZjQ1ZjQ1NjU5N2EzZGZjM2QzYjM3ZSBsZWdhY3ktdHJ1bmsKKzcwMzA5IDhiMGI5ZWU1OGY2N2I4MWFhYmVkY2FlMzEyZGY2NTg5MTY5ODg1YTIgcmVsZWFzZTI2LW1haW50Cis3MDMxMCA0OGZlNjIzMTcxYTQwZDUzYzZmMjYxNjQ1ZDE1MWY3ZjU0NzkzNWUyIHB5M2sKKzcwMzExIDg3NTg4MWZmNjlhNGQ1NDhhY2M5NmNjZTcxZGRhYjNjODUwZjJmZTggcmVsZWFzZTMwLW1haW50Cis3MDMxNSBiZWI3ODgyOTFjN2ExNmE2ZjM3OWVkOGVhMjAwMGMwOGVlODYyZWI1IGxlZ2FjeS10cnVuaworNzAzMTYgNWRmYzQ1YmRhOTZkMDk1MGNlMjRkOWU2Y2E5ODYyMTU1MTEyYWVkZCBweTNrCis3MDMxNyAzNDAwY2IxMGQ5Y2Y3ZDQ2MWVlZjNkMWE4YWYwOGZhYmY2N2U3ZGUzIHB5M2sKKzcwMzE4IDFlYjU3YmRkZmIzOGJlOWQ2OTk4ZmVlMGM5OTVlNDcyMGRiZjk4M2MgcmVsZWFzZTMwLW1haW50Cis3MDMxOSAxZDhlNGJjZWNmMmFhYTk0MTNhNjMwYWQ1NzEwOTNhMGJiMzg0ZWI0IGxlZ2FjeS10cnVuaworNzAzMjAgYmY2N2U1YTg5M2Y4ZWMwYjU0NmRhMjcxMTUxMGE4NjAzMjU1ZmE2YyByZWxlYXNlMjYtbWFpbnQKKzcwMzMxIDZiMDI0ZmY1YjU4ZjZiMmQyZjQ3MGUxYmRiMmY3NTViYTBhNGNmZDcgcHkzaworNzAzMzIgMmU4ZTg5N2ExMjQ0N2YxYzJhZjQzYmZlNDZhOTJjMDA3ZTE4ZTZhOSBweTNrCis3MDMzMyAxYThiYmM1ZmIzZWZjMjVjY2JlYTc4NDA3MjkxNGZhMzZhZWE4ZDJjIHB5M2sKKzcwMzM1IGYxODhkZDY4NjIwZTZhNGFkYjE4NWFkNzFhZTFhMDMyYTY4Y2UyOTggcHkzaworNzAzMzYgMDRhNWI2NDM4NTI2NGU5NjM4YzNlM2I0NDNlOWMwYzhmYjcwYTk0NSBweTNrCis3MDM0MiAwZTg4NTgyYWEzY2U3MDRhMjA3ZDI2MzIzOGE3ZWU2N2M2NzlmOTM4IGxlZ2FjeS10cnVuaworNzAzNDMgZTVlNjRhMGM0YWEyYzMxZTUzN2ZkMTM5ZjllZmRhZmJhZWFhZThjOCBweTNrCis3MDM0NCBiMzYzZTI5NzU2ZmYyNTg2M2M5ODk3MWQ5YmJmNWEwYmU5NjI4OTllIHB5M2sKKzcwMzQ2IDQ4MDQ4M2MzZDkzZTMxMzhmNzFlMDdhNWFjZWE3OGI5ZGY4NDRlMjMgcmVsZWFzZTI2LW1haW50Cis3MDM0NyAyMjc0N2U4NzRmNDZiOTA1MDZjNmRiZDYzZjdkYzU2ZGVmNjMxMzFmIHJlbGVhc2UzMC1tYWludAorNzAzNDggNjMyYWE1Njg0NzRjOTg0ZjEyNmY5MGM5M2RlMDM5YWNlNGRkODhhOSByZWxlYXNlMjYtbWFpbnQKKzcwMzQ5IDhiMTI4ZTA1ZWM3NDU1OWQ4MjE1MGE2ODVkYWU3YTU4YjE0ODA4NTEgcHkzaworNzAzNTAgNzkwY2I5OGY4YjRmYmYwNWQ4ODJmNTM0ZGYyMDAyYzQ5ZWQ2ZTYyOSByZWxlYXNlMzAtbWFpbnQKKzcwMzUyIGE1OTk0NzViNjljMzAwODAxYmI5YTE4MmUxZjRjZWJkYmRjOGM4MTcgcHkzaworNzAzNTMgMWY4ZDExY2Q0Njg0MjAxOWE5MmI0ZWUxOTQyOWZhODJjYTY4YjFjOCByZWxlYXNlMzAtbWFpbnQKKzcwMzU2IDg2MWNkNDZlZWFlZTdmNTM2YTQyNzYzOWJkYWQyMDdkZmQ4NTJhZmMgbGVnYWN5LXRydW5rCis3MDM1NyBhNGM5YjBiMGE4ZTRiZDc0NzI4OGZmYTE2NjZjOGE3ZWNhNjJhZmE2IHB5M2sKKzcwMzU4IDMxNjU5ZjkzNzYxM2NmNjYzZWFmYzA3MjEwYTI2OGIwNDY1ZDgzYzMgcmVsZWFzZTI2LW1haW50Cis3MDM1OSBmMjdjYWFjYjc0MjY3OWU1MGRkOTA2NzliYTdmNzdmNjlkYzFmMDYwIHJlbGVhc2UzMC1tYWludAorNzAzNjQgM2YxOGQ2MDlhYzFiZDg3MjE5ZGVmYTQ4ZmViYmY4YWYxNTg1ZDcyNiBsZWdhY3ktdHJ1bmsKKzcwMzY1IGM1ZmViMDU4ZmZjNGE2MWQ1OTdiOGVlMDhmMzU5OWJhMjI0MTE0ZDcgcmVsZWFzZTI2LW1haW50Cis3MDM2NiAxYzBhMGY3YjRmNzZmOWQ1OGQxNjc0NWYyNGFlZmY2YjA5MmQzYjU0IHB5M2sKKzcwMzY3IDczNzdhNGQ5NWE0NGNhMTM4MGMzNzVlNGI5Y2ZkNDc1MTZjZjUxYzUgcmVsZWFzZTMwLW1haW50Cis3MDM2OCAxZjk2ZDczM2E3NDM5MGU2MTYyYzNkM2RiY2FhMGJiZjE5NzMyMGI1IGxlZ2FjeS10cnVuaworNzAzNjkgNGUxYTE1NzZmMWU1Y2Y1NjhjMGEzMDYyYTk0ODIyOWQ0ZTlhNDFjNSByZWxlYXNlMjYtbWFpbnQKKzcwMzcwIGMxZGM4N2JkODgzYzllN2ViOTc2ZTAyYTZmODI3NDFmMTk1MWU3ZTkgcHkzaworNzAzNzIgMGIxOWJhMzE4MDcxYjFkZTFkNWEyYWFmYmU3NGY2ODY3MjYzZjIyMiBweTNrCis3MDM3MyA2MmY5ZGFkNjI4ZGVmYzE5MzI0YjIwNzBiMzZkNTMyZGNkODNmMzhlIHB5M2sKKzcwMzc1IDY5Y2Q2MTViNzZmYmQ0NjZkNjc3NGZkZjY2MDdmNGE4Y2VhM2VjODAgcHkzaworNzAzNzYgZThmZDc5NzYzYmNjY2ViOGMyZjY3ZDY3YzE3ZGZjNWYyMDc3MWY3NiBweTNrCis3MDM3NyA3MGY1ZjkxMTNhZTExZWM4MGRjMzNkODg5MzQ3Y2M5NzcwYTA2M2M4IHB5M2sKKzcwMzc4IGJlYWYwMGM5OGI3MWU2MzEzYzZjNWNkMDMxMWY0YmRlNThlMDQ2MzggbGVnYWN5LXRydW5rCis3MDM3OSAzN2Q3NmI1YTgyN2JhM2EyNWNiNjI3MzU0MTY0MzVlNjM0ZWE0MzUxIHJlbGVhc2UyNi1tYWludAorNzAzODAgNGU5MjdmYWYzMGVhZWVjMWE0YmMyYWFiMGQwNjQ4ZDNkNTQyMGYzZiBweTNrCis3MDM4MSBlZjdlNDdlYjJiNjk3NWQ1YjVjMmZhYjdjN2MwMjM2OTVmYzczYjM4IHJlbGVhc2UzMC1tYWludAorNzAzODUgNDQyYmRmZTkzYjI5MjFhOWNhOWJhNTFjYjQ5YmU5NjVjMmMwYTdhYSBsZWdhY3ktdHJ1bmsKKzcwMzg2IDIzYTM5Njk3ZmQ2N2U4NTg0MTc3MmRhZGIxNmMyZWIyMjIyZjM4N2YgbGVnYWN5LXRydW5rCis3MDM4NyAxYmUwOWM1YzY4ZTk4YjRmN2M4Zjg5Yzg5OTJlOWU0YTAwNTQwYjY0IGxlZ2FjeS10cnVuaworNzAzODkgZGU3ZTQ3MTZkOWNiYTk3ZWJhYTU2MjdlZTdjYzRhYTMzNmI3NjgyNyBsZWdhY3ktdHJ1bmsKKzcwMzkwIDY4NTUxYjJhNWZhYTI4MDNlNDNmYzNjZGNiMTlkNmQyNmZkNGVkY2IgbGVnYWN5LXRydW5rCis3MDM5MiAyZmU1YmFmODk1Njk1ODFkODVkMjNhMDU2OGJiYjRlYTZhNTZlMTRjIGxlZ2FjeS10cnVuaworNzAzOTMgMGQxOWUxMTY4M2ZmZWI3NWU0ZWQ5NWEzOTRkMDgzODhjZDI5Y2Y5MSBsZWdhY3ktdHJ1bmsKKzcwMzk1IDRlOTRlYWI2YzdhMmQwZGVkMTA2MDFmY2E2NjY1MzM4OGFiYTJjNDEgbGVnYWN5LXRydW5rCis3MDM5NyAxMmViZGE4ZmI2YjMwMGFmMjdhNmI0ZThlNzEyY2Q3M2M4ZDI4MTllIGxlZ2FjeS10cnVuaworNzAzOTggMGJlMWMxZjEyN2UwNDA3NzljZjNiZTQ4YWU5ZDc3NmNlYTdiZGU0NyBweTNrCis3MDQwMCA2YmYwZjNhYjAyNzlhYzEzNzFlMDBkNjcwZDk5MGZmNzE1N2JkMDhhIGxlZ2FjeS10cnVuaworNzA0MDUgZTRkOTg0NGFiYTI1MDFhOWI3OGVlNDQ0YzE0ZjAwYzYwMDQ4MjlhOCBsZWdhY3ktdHJ1bmsKKzcwNDA2IGNiYTYwOTM4MzA3ODFjYjlhYmQxZWM2MGFlMmQzODNiZmQzZDRlZmEgbGVnYWN5LXRydW5rCis3MDQxOCBjY2VkZWYyOGZlMDQyMDIzNzJlOTQ2NTY5ZGJiMWFiNDZjODhiYWZhIGxlZ2FjeS10cnVuaworNzA0MjQgYTMxOTNjMDQxNDk2ZGVjZGZiNmQ5MjI5N2IzMjc1MGY4ODRkMDg2NyBweTNrCis3MDQzMCA2YjczOGI2ZjdmYzY3OGI1NDEyN2M4YzBiMmFlZWRhY2RkNWI1NGJmIGxlZ2FjeS10cnVuaworNzA0MzEgZmQ0YzgzOTI4MDgwOWFjYWE1ZDliOWY5Y2U0MjgxMGUyNTZiZTlhNCByZWxlYXNlMjYtbWFpbnQKKzcwNDMyIDM5ZjRmYTUxYWNmYjgwN2I4OWUzNDQyZWMxYmE5ODhkYjMyNzY3ODcgcHkzaworNzA0MzMgYzM1N2Q3OTI2NGY4Y2JmNGY1ZDcwMmIwOWVkOTNiNDQ4M2FhYzk5NyByZWxlYXNlMzAtbWFpbnQKKzcwNDM0IDdjM2ZlMWE0YTJjZTM0ODhiZWRhZjUwYTAwZTI1NjM4NDJiNTdkOWYgcHkzaworNzA0MzUgMTU3MjQ3ZWI3OTNkYmJlNjc1NmFmMDNhYjNiOTA3NTYxNzlmZTJmYSByZWxlYXNlMzAtbWFpbnQKKzcwNDM4IDE3MWVkNmZmYzg2YzY0Yzk2OTZlN2FjZjgwOTFlOTM2Njc5MDAxMTYgbGVnYWN5LXRydW5rCis3MDQzOSA1ZGVlOTNhOTc1NThlMTgxZTdlMjhhNmZiYTljZmFlZjI4Mjc3ZmQwIGxlZ2FjeS10cnVuaworNzA0NDAgMTJlMTRlNmYxZjJkYjFlZDc1YzVlMzQ4NGZiMWY2MmM5ODBiMmQzMiBweTNrCis3MDQ0MSBhZDRhNzJiMDhkM2U0MTBlN2U1M2JiZDVlYWJmZmIxNTM0N2NiOTE4IHJlbGVhc2UzMC1tYWludAorNzA0NDIgY2FjMjA3MzczYTM0Zjc0YzZkZDE2ZTgwOGUxZmIwMjU2NTYyODMwMiByZWxlYXNlMjYtbWFpbnQKKzcwNDQzIGQ5NWU1YWRkM2NhNGNjZTMyOTA4ZmI3MDFmZDhkZGMwY2EzYzg3YzYgbGVnYWN5LXRydW5rCis3MDQ0NCAyZDk0YzhmZWQzNzZmNzZiOGZlOTZlMjg3NDg2ZjAxMTA4ODM4MGJiIGxlZ2FjeS10cnVuaworNzA0NDUgZmNkZmZkODVhOGJkM2ViZTBlYThiOWJjMDgxNDBkNTMzNGRlMzRlOCBweTNrCis3MDQ0NiAyMDdhNGMyN2E5MTZhZDlkMGEyYjRhMjQyOGRlZmFmNmNiZWQ4ZDlkIHJlbGVhc2UyNi1tYWludAorNzA0NDcgYTUyNzQwNWE5YzEwNjEwODMyNDkyZjZhOWViODljNzM4MjAzNjAxMiByZWxlYXNlMzAtbWFpbnQKKzcwNDQ4IGMzNDBlM2Y0OWJmMzY0OWU3N2FjYTYyYmY2YmZlYTAyMWYyMDFkMTAgbGVnYWN5LXRydW5rCis3MDQ0OSA1OGIyODZlMTVlYmNlNGNkZjk5Y2Q0MDJkYzU3MTA4OGJjNzk4NTI3IHJlbGVhc2UyNi1tYWludAorNzA0NTAgNTkzODBiMzkwYzQwNjI0OWEwNDg2NDljYjJjNmYwYjRlNDAxYjEzOCBweTNrCis3MDQ1MSA2ZmU2NDAxZGE1MWY5Y2FjYmFmMDY2ZmIyNThhZjY2YTNiNTQ0OGU4IHJlbGVhc2UzMC1tYWludAorNzA0NTIgNzk2NDJiNTg4MWUwYTZiMjIyZDc5NmQxNjA0MmVmNGI4ZDk0NDkyZCBweTNrCis3MDQ1MyBkYTQ4NDBiMmJhMDYxMmY3NGMwMmUzZDI1MjZjNGM3MzQxYTRjMjllIHJlbGVhc2UzMC1tYWludAorNzA0NTQgYzczZGQyNWMwMWMxMjA0MTA3MGUxMTAyYmQ3MzBlOTc5MDQxYzdiYiBsZWdhY3ktdHJ1bmsKKzcwNDU1IDZiYTVlZTVhMjIwOTQzYTMwNzIzNzc2YjA2MmU2ZjdkNjJlNjk4NjggcmVsZWFzZTI2LW1haW50Cis3MDQ1NiA3ZDhmZDc5NTVkMTU1NzQwN2IxNGY0NmVmMTI0NTMzMWY1ODJmN2M0IHB5M2sKKzcwNDU3IDNlZTI1OTQ2OWJhODI4MDQ2OGQ3MzY3Nzk2NjJhNzQ0YWQ4MDE2Y2UgbGVnYWN5LXRydW5rCis3MDQ1OCA3YjUzNjBmYTNlMTlmMjkwNmJmNGVkMDM1ZmMyYThiMzYwZGJhZDE1IHJlbGVhc2UyNi1tYWludAorNzA0NTkgYmI1ZGUyNGEzNDNmNjk3MTViMjRmOTk0MWE4MGVlZDllODQyZTg4YyBweTNrCis3MDQ2MCA5ZjQ2MjhiNDY1NWIwYmU5ODIwMTVkNmZlZmRiYzA3ZDA5YTYwYjdiIHJlbGVhc2UzMC1tYWludAorNzA0NjEgZmZlNGI5YTEwMzVjZDM2ODkxNDZhNDkxMGMzYzJjYTJjMjVlNzcyZiBweTNrCis3MDQ2MiAzNzAzMTdmYjk1MTU1NjE4MzhkZTVkNjUwZDk0Nzc3NDMyZjczMzVmIHJlbGVhc2UzMC1tYWludAorNzA0NjMgZDJiNzg4N2Y4YzlhZWMxMDFjYjlmYWMxNzZjYmY2YjdkZDY2NGM2OSBsZWdhY3ktdHJ1bmsKKzcwNDY0IDkyZmVmY2RkYmZlODQwMTUxYTlkZTFhNTI5MmQ4MGY1MDYzODBhNTEgbGVnYWN5LXRydW5rCis3MDQ2NSBmYjgwYjI4MWUwNWFhMGFhZmViNGYwZjg0NDVhZDcwMjNmMTFkYTYzIHJlbGVhc2UyNi1tYWludAorNzA0NjYgN2NmYmJmMmQyOTRlNTEyYTM3Y2ExNzUxOTQ0ZjlkZWNhM2FmYTU3ZiBsZWdhY3ktdHJ1bmsKKzcwNDY4IGUyYzFjYmRhMmE5NTcyNWExMTJjYWE0MzliNDk2ODBmMWE1MzhiOGMgbGVnYWN5LXRydW5rCis3MDQ3MCAxZjczZTA5ODRkNTU5ZTdkYTcyOTVkYzMwYzI3NzYzYmVjODhjMWM0IGxlZ2FjeS10cnVuaworNzA0NzEgYTExYTY3NmZlNmMwNWFhYmUyOTU0MmMwMDIxOWJiYmVlZWFkOTBmYyBsZWdhY3ktdHJ1bmsKKzcwNDcyIGVhZDNkZTQ4YWFkZDc5NmZjYjVkM2ZmNmI3MDMzOTVkMzAzMmMxZTEgbGVnYWN5LXRydW5rCis3MDQ3MyA4ZmQxNzIxYzMyYzQ3NWMzNGIxOTZiMmMwMjgxOWNkYzgxZDZkMjU1IGxlZ2FjeS10cnVuaworNzA0NzQgMTEwMGE1MDZlZGNmMDUxMDY5MjY4ZmJhNzM4ZTBjNjgyZDJlZmQzNSBweTNrCis3MDQ3NSAyOTBjNzUxM2UxMjUzNzVhZTM5NjhmODk0NmVhY2JiMWUyZjI1YjFkIGxlZ2FjeS10cnVuaworNzA0NzYgNDIyZTJlNjc2M2U5YTE3ZWY2YTBjMjM4NjNmNDk4ODhmODhjODYwYyBweTNrCis3MDQ3NyA0ZmRiMTBkYmM3MzY3NmM2MGJiOGQyYTAyMTQxMzFjZjhhZDU0ZDU2IGxlZ2FjeS10cnVuaworNzA0NzggNjY0NjliNjVkNTQ4NDQ0Y2JmOGMxOWU1ZTRjZDQyNmE2MzZhNDk1YiBweTNrCis3MDQ3OSA5YjM1OGVhZTUzMmE2MjFmNTI0NTU2OGUyYmM5Y2ZiZmE2MjAzMTdlIGxlZ2FjeS10cnVuaworNzA0ODAgZDFjMGY1NTA0MGJhZDUyNGIxNmY2MTY4MGEyZTA2YTU3N2UwNmFhMCBweTNrCis3MDQ4MSBlN2NmNDY5ZDBlMTI4M2I3MmJmYzNmNzY2NmY3YTUzNTAyY2E1OTQwIHJlbGVhc2UyNi1tYWludAorNzA0ODIgNWEwMmYwY2YzYzM4MWVkNWNjZDE4YThkZDhjZWQ2YjhjOGY4MGI4OCBweTNrCis3MDQ4MyAzOTU5ZDUwNGI1NGMzNTM4OGRlOGVmMjUyYTk2ZjhlNWQ4YWEwY2E4IHJlbGVhc2UzMC1tYWludAorNzA0ODUgNzg3ZjI1YjEyN2VlNjFkMGE3YTdmNWRkZmE5ZmVlOGVjMWMwZWVlNSBsZWdhY3ktdHJ1bmsKKzcwNDg2IDczZmRjMDc2ODFlMzdmMGI5NDk4YWE3NTA5M2ViYjJiZDM0YmVjZjMgcmVsZWFzZTI2LW1haW50Cis3MDQ4NyA1MDU3N2FlMmMwYzBjNTM5MzMxY2Q1N2UzZDBhMWFjZDIwYzU1YWViIHJlbGVhc2UzMC1tYWludAorNzA0ODggMjI3MzdlOTVmNmY3NTU0NDJhNTAxOTY1YTMzMjdhOGMwNzA3ZjdhYSBweTNrCis3MDQ4OSA2YzBjMTVhMmVkMmQzZmU5NDhhNDY2ZGYxNDA2ODgwNjg1Yzk0MzU3IGxlZ2FjeS10cnVuaworNzA0OTAgYTQ3MGQwYTAyNTZlNzQyZjJjOWY3YTc1Mjk1OTAxMjdkZGVjZmZhMCByZWxlYXNlMjYtbWFpbnQKKzcwNDkxIGQ5MmE2ZGVjOGJmZWQ3NTIxOWU2NWVlZTYzYzdmMTllMzk4MDRjMGYgcHkzaworNzA0OTIgYmM2ODFlNTNmOTRlMDZhZGQwMmRhMGY0MjZhMjg2M2U2YTlkYTU0YSByZWxlYXNlMzAtbWFpbnQKKzcwNDkzIGM1Yjc5NThmNDI5MjA2ZTA5NWVlOGMxNjAzOGRmOWI3OTdhOGE2OGUgcmVsZWFzZTI2LW1haW50Cis3MDQ5NCAyYTNhZjIxMWYwZTExZmE3NDM3NWYyNDkxZDZkOWE3MDQzOGUxMTcyIHB5M2sKKzcwNDk1IGM3YjJjYzgzNThmNjY1NmUyYzdlYjUwMjhjODQ0NDVjM2FiMzI5MWYgcHkzaworNzA0OTcgNWNhY2U3NWJjYjA1NmNjNjI3MjZmMDFmNDY3NmJlZTQxZDc1MTAwNiBweTNrCis3MDQ5OCA1YWE2M2RkZDE1MTM0NTRhNzdmNDE0NjFlZWUwMDE0ODdkMmY4Y2Y5IHJlbGVhc2UzMC1tYWludAorNzA0OTkgYjg0NmQ3MDljYjc2MzI3MDFiMDE1MmQ1OGMxYTRiODY4ZWExNDY2MyBsZWdhY3ktdHJ1bmsKKzcwNTAwIDAyOTI4MTIxMzM4ZDkzMWU0MDIxNTk3M2FkY2Q2MzY4YmViZmU2ZTYgcHkzaworNzA1MDEgNWM1ODIzNjY3ZGRkNWNlZWRlOTQzNWYyMDk5ODFiOTUxNjIyZjA5MiByZWxlYXNlMzAtbWFpbnQKKzcwNTAyIGI4OTM0ZGQ5MjY3ZGUwM2JkNzZmOTkxODZiOGQ3NWExZDZmNjM4OTcgcmVsZWFzZTI2LW1haW50Cis3MDUwMyAyZDZmZjVjZDI2MDAxMjQ2YTE4ZjU2NzViZWE2MGZlNmU3ZjJlNmFkIHB5M2sKKzcwNTA0IGYyNzc3ZWE5NTRjYTI1YmVmMWMyZTkxNGY4ZmIxM2JiOWFkNDdjNjEgcmVsZWFzZTMwLW1haW50Cis3MDUwNiA1YjFmMDJkYzY5YTM5MTkwNWU3MGIwMzc3N2I4NWIzZjg4NTg1MjQyIHB5M2sKKzcwNTA3IDNhYjJlNTJkOGQxOTY5YzE0M2FmMDBmMTZiMWMwYzJiYzA0ZGQ2MTYgcHkzaworNzA1MDggZTQxZjVhODlmNWMwNmU5OWJmNjQ2ZjYyNzY3YmVhMDAxNmQ0NjI3OCBweTNrCis3MDUwOSBjNjY4OGU5MTU2YjU5MTdlZWQ4NjU1MzE2N2ZhYmQwZDIwMmJlNTVkIHJlbGVhc2UzMC1tYWludAorNzA1MTAgMThkNjU2NTEyMzVlNDg5MTMyZDFiODQ4NjJlNWZkMTUxNzViYWIwOSBweTNrCis3MDUxOCBmYjIxZWFiYTk0ZjY4OWVlZDI3Yzk5Y2RhYTkxYjkzMDA3YTkxOTk3IGxlZ2FjeS10cnVuaworNzA1MTkgZDFiMGJkNDhiYTE1NjM4MWI3OWY5ZjFlNDRjZDM4NmNkNDdiYWE4MCByZWxlYXNlMjYtbWFpbnQKKzcwNTIwIGM4N2U1ODI2MmQ1YmNiM2VkMjM1NDI5ZTEzNzJhMDYwNTEzNWNmMzEgcHkzaworNzA1MjEgZWZkMTdjYjU4MjNhOThmZWE2MDE2OTEyNjVkOTdhNDNjMTQxNDg1MSBsZWdhY3ktdHJ1bmsKKzcwNTIyIDc1MmYyZTNlNDc1NzdmYjAzMDNlZjAwODk2ZjU4NDdmMWUyMmY4YTQgcmVsZWFzZTI2LW1haW50Cis3MDUyMyA0NDVkNDA0MjcwZWFhYmYxOGJmNjMwZjliMTBkMzIxMTc1MTY1MzdkIGxlZ2FjeS10cnVuaworNzA1MjQgODU2ZWQ0MTg3NjhjMTkwNjhhYTcxYTIwNDAwMDlkMTJhOGYzNTQxZCByZWxlYXNlMjYtbWFpbnQKKzcwNTI1IDA5NWQ4NzRhMzA1NDlmYWJmZWRmZWEyZWQxMjY5YjQ1NTQ2ZmNkM2YgcHkzaworNzA1MjYgNDM1YjhiYTFhOTAyMzQ0YTUxZTRjMGUzOGJkMzM2NWFlYzliYWRkNSByZWxlYXNlMzAtbWFpbnQKKzcwNTI3IGRkOWZkZGIwNzIwZGFmOWIyY2I5NTc5MmJkN2Q3ZDY0NThkODMxN2YgcmVsZWFzZTI1LW1haW50Cis3MDUyOCA2Y2I4NDMwNzVlNjkxMWYyZGNiYTg2ZjEwMTJlODMxMDYzODFmYTUwIHJlbGVhc2UyNi1tYWludAorNzA1MjkgNWY4YzhjOTE4ZjliMDI5YjRlOTdjNzJhY2U2MzM0NDIyYzJkYmJmMyByZWxlYXNlMzAtbWFpbnQKKzcwNTMwIGFiMzg5ODc3ZjE1MmY0Yzg5YmUyMDViOGQ0MWZhN2QyNTRkZGFhMDggcmVsZWFzZTI1LW1haW50Cis3MDUzMSAxZjcyYWM5MDk0MDhkYzQxNDIwNjE3ZTE0ZDFlOWUyYTE3MTdmNjk3IGxlZ2FjeS10cnVuaworNzA1MzIgNDQyNmU0OTIyNjRmMDdhZGE1MTZlNTczODcwNzBkYWZmMGU2MWMxMyBweTNrCis3MDUzMyAxMTllM2ZjNmNkZjM1ODFkODk1ZjNiOGIyNWY0NjNhNWI4NjE2YjUzIGxlZ2FjeS10cnVuaworNzA1MzQgYjE2MjdlN2U2NzhkN2Q5NTk2ZDVjZGI1NGE1YTk5ZDlhN2EzNjMxMiBweTNrCis3MDUzNSA4ODk3NGNhNTAwM2ZmOWRhY2Y2MTBiYWY5YjQzMDc4ZjI4MmNiNTZkIHB5M2sKKzcwNTM2IDA1YWU5Y2NmZjUxNDRjNzU4NTA1YzA4MzYzZjEwNDY2MjE0OTFhYzQgcHkzaworNzA1MzcgODdjYjk1MDU5MWJlZTFiOGFjYzRmMmQ2ZDI2ZThjOGQxNWM1NTkwOCByZWxlYXNlMzAtbWFpbnQKKzcwNTM4IDY4N2U3NTFjMjg4ZTZmYTU0ZjhjZDAzM2E4NzIwMWNjZGI3NWVkNzAgbGVnYWN5LXRydW5rCis3MDUzOSAxM2Y4ODdlNWZhMGQ3NTAyNTVmZWZhNmM1MWY1YWIyZjNhNzNiNDg4IHB5M2sKKzcwNTQyIGE1NGVmMThhYjBkODlkY2QxZjg3MzRmNTRiZTQ0OTZiZDFlMmVkZmEgbGVnYWN5LXRydW5rCis3MDU0MyBlZGQ0MzAyY2NlYWZlZWU4YjNjMGUxYTEyM2FjMGNiZDE0ZmM3MzAwIHJlbGVhc2UyNi1tYWludAorNzA1NDQgYTFkZGI0ZGU4NWE1MzY4MTk1OGI3MDcyMmMyZDNhOTI2YjAxYTNkYyBsZWdhY3ktdHJ1bmsKKzcwNTQ1IDYwZDA2Yzk4YTYwNWIxMTAyNTlkMDU1NjI0ZGMyYjYyZDNlZTg2MTIgcHkzaworNzA1NDYgMGU0OThhOWZkZTNjMjI5M2Y4OGI5ZTFjZTk3M2Q2YjdmYTdmYTNkZiBsZWdhY3ktdHJ1bmsKKzcwNTQ3IGExZDE2ZDk4YWE0MGRhZjBlYWM0NDllZDEzOWQ1OWUwZjYwMzhjZDIgcHkzaworNzA1NDggYzcwOTEwYWM0OTJkNzk4NDYyYjY4M2FiOTY2NTc3OWI2OGRmMTEwZCByZWxlYXNlMzAtbWFpbnQKKzcwNTQ5IDk0YmQwNjY2ZmZhNzkzM2Y1MWY5YzIwZGUxYjg2YTgzNDUyNzE1NGEgcHkzaworNzA1NTAgYjM3OTEzMDllNjkwNGM3M2I5MGM1MDQyNDMwODI1MTY0YzE3MjcyYiBsZWdhY3ktdHJ1bmsKKzcwNTUxIDY3ZmI5MDMyZDQzYTQ3YmRhZjk5YzYzOGU5MTYyNjAwZDgyOGNkMzUgcHkzaworNzA1NTIgZjZlZGM2ODZiZGU3NTMzYTkwMDMxODNlMjdlNDkxYTQyZjhhYTVhYyBsZWdhY3ktdHJ1bmsKKzcwNTUzIDdlZGQxNDNjZDRlNDJmMzk4NTEzZmJlOWQyNzRiZWQ3MGI1ZjE2MTYgbGVnYWN5LXRydW5rCis3MDU1NCBkY2EzZDY3Mjc1OGUzY2RjNTNkNGVlYmIxYzkxNmE2NTg3MWRmYWNkIGxlZ2FjeS10cnVuaworNzA1NTUgZTRhYTUzMGU1NzYwYjhhY2ZiODQwYzcyZjg5NzM4M2VmNjgxOGJhOCBsZWdhY3ktdHJ1bmsKKzcwNTU2IDEwODQ1ZTE1ZWQ5YjFiNjAxODExZmJiYzZiNjdmNzFhOGIzMDI2M2QgcHkzaworNzA1NTcgZDc0NzYxMmY4YTJmZWU5OGEzNTU0MjY4NzJkMDEyYTI4MTBhMzZmMCBweTNrCis3MDU1OCA2OGFjMjU1MmY0NGUxOWY1ZjU4NjA1MGZlMDkwOTljY2ZiNDA5MDRkIGxlZ2FjeS10cnVuaworNzA1NTkgNmQ1YzhhNTA2OWIwZmZmYzlmMmMwOTFlODY0N2NmOTVjOTA2ODQ4OCBweTNrCis3MDU2MCBhZWRhOTJmMWFiOWI1NzAzYmJjMjc2ZTk3NGUzNDk4YjRiMDc0MGNkIHJlbGVhc2UzMC1tYWludAorNzA1NjEgNTVmMTUwOWM0NWI2N2YwY2M1Yzg1OGRjNTY1ZWMxMzNhMDIxNmRlZCBsZWdhY3ktdHJ1bmsKKzcwNTYyIDU4Njk0Yzc2ZDc2ZDgxNWY4YTRiNmY4YTZiMjA4ODUzZjAxZGE5NTggbGVnYWN5LXRydW5rCis3MDU2MyAwMDI3YzA4M2EwZDRiNDA0Y2VjNzU4ZWM4Y2ZiZjQyM2MwYjE4ZGFlIGxlZ2FjeS10cnVuaworNzA1NjQgZWMzZTI5ZjE2MGRmZDEwMTI2ZWExOGJkNGU5OWU3NGQ1MjNkYmFlMCBsZWdhY3ktdHJ1bmsKKzcwNTY1IDcwMWY2OGY4YjdjZjc1M2Y5NDYwMTQxMjNiMTc1Mzk2MGU0NWM3NWUgcmVsZWFzZTI2LW1haW50Cis3MDU2NiBhMmY2YjJiMzgyYjRjMTFjZDFhZjA4YTJmOGI4YTgxZmNlMWE1NjM3IHB5M2sKKzcwNTY3IDk4NmFjY2UyNjY0MTBiZGFiN2JhZTM2N2FmOWU1MmVhNGE1MGNlOTYgcmVsZWFzZTMwLW1haW50Cis3MDU2OCBmMGE1MDc0MTRlOGNjNzg2Nzc3YjZiYWNhNGZjMGVhMmRmY2I2ZWM2IGxlZ2FjeS10cnVuaworNzA1NjkgMjNjMTJhYzdmMzE3MzZjNjY3NGQyMWI4NGMxZDMzOGYxNDNhZjY5MCBsZWdhY3ktdHJ1bmsKKzcwNTcwIDZlZGI3NDIxNjM4YzBiMjFjYjBhYWQ1YzUwMzkyYzY3NDA0ZGMxZTYgbGVnYWN5LXRydW5rCis3MDU3MSAxMmFkYjgxOTc2NDc5YzQwMzE2NDc1MzI5MGVhYTFhOGUzYzU3YjIxIGxlZ2FjeS10cnVuaworNzA1NzIgYThhOGNmOWIyODE4M2Q0NGQ3MDM3MjhjOGFkNDM3NDA2NDk2ODZkMyBweTNrCis3MDU3MyA5YjU5OWI2MDEyZmE1NGRmNzJhOGYxODM0ZGQ1YjVhMjA3NTkxY2E4IHB5M2sKKzcwNTc0IGQyMTM0MTMzYmYwYzk5NTI0ODM2OTlkMGQyNzdhMTFmOTQ5Y2NmMzUgbGVnYWN5LXRydW5rCis3MDU3NSA4MjBmMzQ3NWIwOGQ3ZjJjNzQxMjI2MzY5ZWY3OTgyMThhNDE5N2VmIHB5M2sKKzcwNTc2IDExZDU0YzdlMDg5Yjg4NTEwOGFhMmI5ZWI5Yzk1OTM1OTgwMjgzYjggcmVsZWFzZTMwLW1haW50Cis3MDU3NyBhOGRhOGFjZGExMjg2N2Q0NzRhZTk0MzI5NDBkNTM0NDhlMDZjNjVlIHB5M2sKKzcwNTc4IGE5NTE1ZjI5YjM4Yzg3MzJmZDNiNTY2OWVhZjE2NmQ5Y2VkM2UxOTQgbGVnYWN5LXRydW5rCis3MDU3OSAyNDk0ZmZkNjBlYWU5OWQwZTU2YjYxMDk3ODJjNmIyNzAxN2M2YjUwIHB5M2sKKzcwNTgwIDYwYjk3ZmM4ZjA2ZGEzNmE0OTE2NzRjYTQ4YjM4Nzk1MjIzMjQyYzMgcHkzaworNzA1ODEgMDA2YzgxZjliMGU4MGVkNjBlMWQwOTI3YWU1Zjg0MWYzZTc5OTRhNyBweTNrCis3MDU4MiAyY2M5MDBiZDZiYjAxNjJjZDBmMmI5MzY3MGQ2N2ZjNWIwYmI5MzYzIHB5M2sKKzcwNTgzIGJhNDI0MDE2ZGI3NDY5NjAzZDU3ZmUxMzVjOTdjNzBiODhiOTFmYjcgbXVsdGlwcm9jZXNzaW5nLWF1dG9jb25mCis3MDU4NCA3OTJhN2Y5MzlmZGRlYWMxYTFjZWRjMTZlYWY4MTVhMzAwYmEzMjY3IG11bHRpcHJvY2Vzc2luZy1hdXRvY29uZgorNzA1ODUgM2FkYjM5NzRlNzc3YzA5MDcyNDQ5ZDFmMzZmMDllYTI2NGRiMGFmNiBtdWx0aXByb2Nlc3NpbmctYXV0b2NvbmYKKzcwNTg2IDhhZDI1MWRhNDc0Mjc0ZjE3YWIwOTNiZGY1NThhMmE5MzMzNDE3NmMgbXVsdGlwcm9jZXNzaW5nLWF1dG9jb25mCis3MDU4NyBmZGM4MDZjNzdjZDZlNDIxNWY1ZjZkMTBiZjVmZjVkM2JkYjlmMTFhIHB5M2sKKzcwNTg4IDNkZjdmMTE4ZTUwNDIyZjZhMzhkNDgxZWRjYjI1NGNhYmYwMmUxMWUgbGVnYWN5LXRydW5rCis3MDU4OSBlZmZmYzdlYWFkNmQzM2U3NGU1NzNkYzc3MTVhNjE4NDI2YWRkOTQyIGxlZ2FjeS10cnVuaworNzA1OTAgNWQ2YzBmYzg3YTcxOGViMzY0M2ZmZjE3M2JkZTczYjJkZWNmNjYzYiBsZWdhY3ktdHJ1bmsKKzcwNTkxIDA2MGVhOTc1ZDU5NzEyOTc2MTQwYjQ3MmViMDc1MTYzNzVhNGQ3MzYgcHkzaworNzA1OTIgNDFlMzQ0ZTU3MWExNjAyMzYxM2FmMTAzMzlhNGFjMjcyYjA0NTM3MSBtdWx0aXByb2Nlc3NpbmctYXV0b2NvbmYKKzcwNTkzIDczZjRlOGFkZmViZmQ4ZDI1ZGEwMWRkN2RmM2NiNDQxNDQ0MTAwZWEgbXVsdGlwcm9jZXNzaW5nLWF1dG9jb25mCis3MDU5NCA3ZDBlM2E4YzJlOWUxYjE2Y2QwM2I2ODgwYTM2YjUxYzU5YzliODJmIGxlZ2FjeS10cnVuaworNzA1OTUgOWY4OTc2NTY1ZjgyNmVlMGU5YTdlMjRkOGQ5NWY2ODE0ZDdiNDFlNiBsZWdhY3ktdHJ1bmsKKzcwNTk2IDhjZDYxN2MzZTc0YjAyOGVkMzcyMTcyMWU5MThlMjMwYjc4NTA4ZDEgcmVsZWFzZTI2LW1haW50Cis3MDU5OCBlZTBmNzUxYjgwMjAwM2M1M2FkNTdhMGFkNTY3Yjk1ZDhlMmNmOWExIGxlZ2FjeS10cnVuaworNzA1OTkgMWZiZWMyOWY4OWU4ZDAyYzUxNWZjNDVmMjdlOTAzZDgwZmM4MzQxNyBsZWdhY3ktdHJ1bmsKKzcwNjAwIGE2NzZkMzZjMDdkZDUzOTlkYjBhMWJjYWRlYTE3ODk3MDU2ZjA4OGYgcHkzaworNzA2MDEgZjVkNjcwZmNkYmU5NmJjN2Y0MjFiOGI0MjhhMjllN2Y5N2MyY2IzYSBsZWdhY3ktdHJ1bmsKKzcwNjAyIGYyNzcwNGY0NWQ0YWYzMzEzNDMzYzJmZDhkM2MxYmU5NGRlZGExYTAgcHkzaworNzA2MDMgOGI1YTgwZjUzMzE3Zjg5OWU3OTkxMmRkMTBkNDM3MWE2YTBmOTcyOSBweTNrCis3MDYwNCBiNmY4NjEzMjFiNDVjZjBmZGFhNGRhNWVhMGQwZDc0MDE0ZjdmOTBiIHB5M2sKKzcwNjA1IDNmZGM0YWEzNmQ3NjcwNzhhZDhkMmIzNmVjMDFjZWIzNjBhNjMwMzYgbGVnYWN5LXRydW5rCis3MDYwNiA2MWVmNjU5YWI3OTlkZjYyMzdkZTI3MDk4YzVmZmRjY2U2OGYzODY5IHB5M2sKKzcwNjA3IDMzODI5Yzc5MWJmNjIyNzBjNmU4MmJmMjNlNGRjM2Q0ZmM5MjgxZDUgcHkzaworNzA2MDggYTEwZDk5NTEzZjllOWVlM2EwNTdlZjI4Y2Y0Zjg4YjFkZDI0Nzg0NCBweTNrCis3MDYwOSBjYzEzY2MyMjRmZjU2OGJlMTFiNmNmNmE2YjNkYjFhYTU2ZTBlYmE3IHB5M2sKKzcwNjEwIDA3YjZmY2RmN2Y5NDk5NGU5ZWFlNmI0YWM4Yjg1ZjdkMDU2NjA5MzYgcHkzaworNzA2MTEgMWUyMzM1OTYyYmFkODU0NmExZTExZmY5ZGQ4ZmEwYzA2MTE0ZDRjMSBsZWdhY3ktdHJ1bmsKKzcwNjEyIDc4ZmVkYzM0MmE2YjEwN2RiYzFiNzIyMDgyY2Y3OWZhZDcwZjJlODkgbGVnYWN5LXRydW5rCis3MDYxMyAwYTA1MmEyODczYjI0MTlkZjY5ZDg4NzI4NDY5MDQ4NmYxODdkOTZhIGxlZ2FjeS10cnVuaworNzA2MTQgMDA3ZTljODZmYjU1YjVlMDg4NGI2Y2E1YTE4M2QyNzU4NTZjMWE1ZSBsZWdhY3ktdHJ1bmsKKzcwNjE1IDRmZTc2MjQ5YTkwOTA3MGVkZDFlOWY1ZDIzODJlNTA4MWFjMjAxNTYgbGVnYWN5LXRydW5rCis3MDYxNiA1NTcyOTBmZmE3ODQ3NjhlN2E5NDNlNzk1YTg0YTViYzZkNTIxYWNiIGxlZ2FjeS10cnVuaworNzA2MTcgOWNjZjgyZTY1MzMyOGYxZDgzOTQ0M2Y4Y2ZjZmY4ZjlkYjAwMmQwYyBsZWdhY3ktdHJ1bmsKKzcwNjE4IGU2MDA5YjljZDkwODRmZmNhZmUwYjI1MzhiNjkzMGUzNjk5ZmVhYTYgbGVnYWN5LXRydW5rCis3MDYxOSAxNGNjOTJhZTk0YzkwNGQwYWNlMzEzYTlkYzkzYjgwMDM3NWUwNTU5IGxlZ2FjeS10cnVuaworNzA2MjAgMjI4Y2ZiNmUyOTAwYzE0NDZjYTA2MmY1ODgyZjEwZTBjZjRhZWMwMSBsZWdhY3ktdHJ1bmsKKzcwNjIxIDc2YmYzNDFhYzIwMjM3YjI0ODllZDYyZmJmNzE3YWRkNTNiZDdhZDggbGVnYWN5LXRydW5rCis3MDYyMiA1MDIzODQ5NGYwZjA1ZGVkNTMyYjUzNTkyY2RkODZkZThmOTEzN2QzIHB5M2sKKzcwNjIzIDcwNTU0NWVjMzI0M2Q0MjcyNTRjZmUxN2NhYTcyMjhmYzZmNjhmY2YgbGVnYWN5LXRydW5rCis3MDYyNCBmMjZjMWNkNmM5ODUwMDVmZWQxNTlkN2UxNDYxZWIxM2UwYWMwODg5IGxlZ2FjeS10cnVuaworNzA2MjUgZWRmNjI3MjYxYzdiNTU4YjBmOWMxZjFkYzU1NmQ5ZDA4MmY1YzY2YiBweTNrCis3MDYyNiBkYWRiZTAxNGJkYTRlMjc1MGUyZWRmMjVkYjEwMjQxZGI4NWE0ZWU0IGxlZ2FjeS10cnVuaworNzA2MjcgZDIyNzU4NGMxYzdkOGU3MDY0N2I5Njg4YmQ0MzA3ZTcyZjQxZThiOCBsZWdhY3ktdHJ1bmsKKzcwNjI4IGRhZjY2MWQwNTQ0MmE3YWRkODhhMzM2ZWM1YjZhZjcwZDgwOTA3MDEgcHkzaworNzA2MjkgY2EwMmJkOGM5NmYyOThiZjlhMmE3MGM4NTMyYmQ0NjhkMDM3NWE4YiByZWxlYXNlMzAtbWFpbnQKKzcwNjMwIDQ3NTgwODY5OGVhZmFhYjYwZDc1OTBlMjgwOGI3ZTAzN2Y4OTNjY2EgcmVsZWFzZTMwLW1haW50Cis3MDYzMSA3NWUzZmUzYzA3MjY3MGQwNmI4YTFiODQ2ODQxN2Q4MjAyZmE2ZjhkIHB5M2sKKzcwNjMzIGVlNGEwMDZkMDE3MWVjMTQ0YWU4YTY5NDEwZWE4ODRiOGQ4ODA2ZjUgcHkzaworNzA2MzQgMTBhODRjNjM4ZWRhMTI5NTY4ZTYyNmNiYzVmZTBiZmUxN2I3ZDg2OCBweTNrCis3MDYzNSA4ZDY5MThhZjIzMmJhZjdlOGU4ZDIwMjE4NmFiM2ZiYzc1ZWI4MjU2IHB5M2sKKzcwNjM4IDhiNjkxNjkwYmFiZDcwODA3NjRlNGFmMzZkNmM2YTkxOTM2Zjk4MjYgcHkzaworNzA2MzkgOWFiNzU0MTEwNDMxNWZhZWFjOTk1ZDM0ODU0M2U0NzE5NTMxN2QwMiBweTNrCis3MDY0MCA0MjY1ZDZjN2MwNzQzY2QyOTkzZmI3YTk2MWRhNWYzODc5NDAwNzA5IHB5M2sKKzcwNjQxIGZiYWQ0MmM0NWM5Y2I2YzQxZjkwZDVlNWI1YmUzOWQ3ZGM2ZjU3ODggbGVnYWN5LXRydW5rCis3MDY0MiA3YWZmOGE3NjZlMjUwNmRhNzZhYTM2NzQ1ZmVmOWFmMGM0Y2I4MTg3IGxlZ2FjeS10cnVuaworNzA2NDMgYTcyNmY3OTI4NTYxODU0MmRiYTZkN2Q0NjBhOWEyZmExYmUxODk5YiBweTNrCis3MDY0NyA5ZGY1ZDA2OTQ5MjFhNjJkODBiMTgzNWIxMTMxY2Q1MTViMDNmNGM2IGxlZ2FjeS10cnVuaworNzA2NDggYjczY2RhYzZhMGMzOGM4NWE4NjQ2NGEyYWJlOTBmNzAwODI3YjlkZiBsZWdhY3ktdHJ1bmsKKzcwNjQ5IGJiOTBlYzY3ZjMxNDg1NzI2N2ZlNTQ2OTEyMDJkYjAwNWM0MTA1ZWMgcHkzaworNzA2NTAgZGE0NTZmNDJlYmU3ZTdhOGVhOTExMjRlNzk1ZThhZjVlYjljZWIwMCBsZWdhY3ktdHJ1bmsKKzcwNjUxIDNhZGQ0MDBlNDE5ZmYwMzIxZWU5ODVmODMzNGFmYmQ5MWM0ZDRkM2EgbGVnYWN5LXRydW5rCis3MDY1MiAxZjVkYjk0MzdkYjg4YzVlY2Q3ZmZmYzJkN2Q3NjJkY2JiZTU3YTAzIGxlZ2FjeS10cnVuaworNzA2NTMgNDk4M2ZkMTk1MDM2NmJjYTllYzkzNjViY2ZjNjJmNGI1YWUxYjM1NyBweTNrCis3MDY1NCBiZGZjNGIzYTkzNDcxOTUxYzgxMTMyODA1MzI4OGVkYjgzNjM0ZDdlIHJlbGVhc2UyNi1tYWludAorNzA2NTUgMzkxODcxZjZjMTY0MmJkNjhhZDQ4MWQ3ZjM4ZDQyYWYwYWQ0ZGRjYyBweTNrCis3MDY1NiA1ZWYxYzFkNzRjNTEyMjdhZDc2MGI5M2YxNmNhNWE2ZmIyMzc5ODc4IGxlZ2FjeS10cnVuaworNzA2NTggOTc2YjA3OTk5NTg5OWI3OWIwNTViZTRkMTg2ODhhMGFlNGM2NDQ4ZSBweTNrCis3MDY2MCAzNzQ5Yjg4ZGJiNjEyNzVmNWI0ZWIzODg1ZDQ0YzJkODNmZmJkNTNhIGxlZ2FjeS10cnVuaworNzA2NjEgNTVkNTQyM2JhOTg3Y2VjZTY0MjY0NjUzODUxMWZkMmViNjA5NDZlOCBsZWdhY3ktdHJ1bmsKKzcwNjYyIGQ0ZTc0NzBiZDY2MDQyYzJhYjk0Y2MxNWVhMzk0ZWYzZjQ2MzBiMDIgcHkzaworNzA2NjMgMTUwZjU2OGQxYmEyZDAwYjQ0NmJiMmM0YTNjYzc5Yjg3ZTJlMTA2YyBweTNrCis3MDY2NCAzYTZkMjdkODA4MjI5NWUyZTUwMTg2N2MzMTJlMzM2YWYwYzEzMTEyIHB5M2sKKzcwNjY1IDFiNzI3M2FlZDM2Y2VkMGJmN2E2YjA3OGM5MTE2Nzc4YWY2YzVkNTMgcmVsZWFzZTMwLW1haW50Cis3MDY2NiBkMDU5MzkyNjNhMGU1MTVhMDAyZWUzZGQ5NGZkYjlmMTMyNDA3NTljIHB5M2sKKzcwNjY3IGI3OTQzMTljMTI1ZWI0NWNhZDAzMGRlYWJjMjlhOTc2NTRhZjYwM2QgcmVsZWFzZTMwLW1haW50Cis3MDY2OCBkNTVlMDViMDZlNGEyYjBlN2ZkMGZlNjNiNzg5ZWFmNGIyNjY0OWJkIGxlZ2FjeS10cnVuaworNzA2NjkgN2FkZDQyM2FmOTcxMDk4ZjM5NmUzYTliODM0NjNjZjJhYzAyMGNlNCBsZWdhY3ktdHJ1bmsKKzcwNjcxIDM2YjM1OTJmMzAyM2I4NzQyMTVjMTBkNTZmZDNmZTFjYTQ0OGFiODMgbGVnYWN5LXRydW5rCis3MDY3MiA5MTM0YTIwOTEwMTNjNWZhMzk5NjM1YTQ2NmJjMzcwNjk0YTc3YzU5IGxlZ2FjeS10cnVuaworNzA2NzMgZTMxNGI5NmZiNWFkMzYyOTJmY2FkOWM2YTU3NjdjYTAwNzMzYzI2YSBweTNrCis3MDY3NCBlOTg5MTU5OGE0MzM0NjRjMjc0OTJiY2M3MDBhNDYxMzBiNmM2OTI3IGxlZ2FjeS10cnVuaworNzA2NzUgZWY2MTJiZTc3MWVkY2VmYjVlZjQ5ZGE4NDhjZWEyMWUwNGU3MGM4ZiBweTNrCis3MDY3NiAwMDEyODhhNjhlOGIwNzQ4NGJiNGY1ZTFhMzdhZTMwMWY0NmYxNmMzIHB5M2sKKzcwNjc3IDQ2YTQ1ZWNjYzlmNzAxZmFjYWI2MzBlMzc3NjYyZWU0ZDYxZWZkYzcgcmVsZWFzZTMwLW1haW50Cis3MDY3OCAwMTk4MTViYzM3ZWFmMTJkOWQ4YTQ3ODJjNDYxNTc3YjMyMGQwNTEyIGxlZ2FjeS10cnVuaworNzA2NzkgNDIzYzk0NzdkNmVmZTZlYzgwNzhjOTUyM2ZhMWI5OTA1ZjAzNTBkNyByZWxlYXNlMjYtbWFpbnQKKzcwNjgwIDAyZjI5NGEyODIwNmZiMGNmNzllNzE3YWZkNTJkMmZlMDA2YTIxMzEgcHkzaworNzA2ODEgZjQ5YTk3YTk3OWViMDkwOGUwM2E4MjM3OThjMTFlNjNmN2UwMjE2OSByZWxlYXNlMzAtbWFpbnQKKzcwNjgyIDFhZmIzNjVmMjQ0ODIyMjdlOWIzZmM4NTMwNjU4MjFjYzUyNWMwMWEgbGVnYWN5LXRydW5rCis3MDY4MyA2ZTU5MWQ0ZGM2Yzk2ZmI0ZjA1NDBjOTk4Yzc4Mzk5NjZmMzg1ODdhIHJlbGVhc2UyNi1tYWludAorNzA2ODQgZjA1YjZkOWFkYmU2NDc3NTc2NGFiODY0OTg4OGZmZDFmZjU0NjlkYSBsZWdhY3ktdHJ1bmsKKzcwNjg1IGJhZmFkNjFjZjMwMjYyZDc3MmRkNjUxMDM1MDQxODUxOWNiZjJhOWQgcmVsZWFzZTI2LW1haW50Cis3MDY4NiBlNTA4NGQ1MTQ4MDllZjAxYzYyZDQyOWY3NDdjMzgyMTNjYzliZDQwIHB5M2sKKzcwNjg3IGIwYzVkZjhjODRhMzQ0MDRkNTEzNDZkOTRiNTUzYmUxODkxYWE3MTUgcmVsZWFzZTMwLW1haW50Cis3MDY4OCBmMTcxYmFjOWY5NjFkMWQ3MTM3ZmQ0ZTBmZmNhNGQzMWFiNmMwMGM2IHB5M2sKKzcwNjg5IDk4MDdjMjZjYmM5OWZhMWUwMTU1ZGY5NTgyMDdmODY5M2VkNDIzODkgcmVsZWFzZTMwLW1haW50Cis3MDY5MCBhM2I4ZDE5MWVjNjgxMmVlYjViZDJmNjk2OTJjZjU4MmVmYTMxNmQ5IHB5M2sKKzcwNjkxIDA1MDdhYWI1ZmIxMTlmNTkwZTI5MDBhMzQ2M2YyNzY0OGMwMWVhZTUgbGVnYWN5LXRydW5rCis3MDY5MiBiYWVlOTA1MjExMTBkYTI1NWI4YWNlMDJlOGYzN2Y5ZDNmNTM5MDQwIHB5M2sKKzcwNjkzIGJlZjAwY2E0M2VmYWU2ZDliZGMyYmM4ZTNmMjQ1ZmI0NzMwOWYzYzMgcmVsZWFzZTMwLW1haW50Cis3MDY5NCA5MmJjMWRkYmM1NzI0ZjRlMWZlZGFiMGZjYTFjOTZlNGVhMDlmMTE0IHB5M2sKKzcwNjk1IDk3NWIyMDM5OWM4ZDAyOWNiZWRiYmUxN2IyZWJkOTViZjJlNGY5NTUgcHkzaworNzA2OTYgN2I1ZmJiZTdiMDA5YzRmMmJkZGZjOGIwZDg0NmEzNmFhNjdkZGFkMiBweTNrCis3MDY5NyA2ZTFjNGEyOTYzZTRjNDFkNjMyZjI2NDkzNzBlYTJhNjdiNTI2N2YxIGxlZ2FjeS10cnVuaworNzA2OTggOWMyM2M1NGU2YjE1OTY3NDZiYTM4YTU2ZTU3Zjc0ZTUyOTcxODlmOCBsZWdhY3ktdHJ1bmsKKzcwNzAwIDZhZDliMDFmOTVmOTk5MWE2ZTQwNDExYmY5ODRlNTU5Nzc2OWNlMjkgbGVnYWN5LXRydW5rCis3MDcwMSA3MWI2OWE4NzNkMjEzMTY3MDgyYzEzZDQ1ZTJkZjlhNmVmNWM0YzQ1IGxlZ2FjeS10cnVuaworNzA3MDIgNjg1ZjE3OTFmYmM1OWE5NzQxNTk3ODliM2VlOWUyOGMzOWYxMGEwNSBsZWdhY3ktdHJ1bmsKKzcwNzAzIGE3YWU3M2EzNzgwNTk0ZjMzN2ExNTIxOThkNDljMGZiZjlkYmYxYzEgbGVnYWN5LXRydW5rCis3MDcwNCAyZDgzNjQ5YTk0Yjc1YWM2NDU0ZjUyMWY0MDViMWUwZDk0YjBkNjA0IGxlZ2FjeS10cnVuaworNzA3MDYgZmNlOGYyMzg0NTJlMWNhZDlmNTgwYzRlOTdkYzE1MTE5OGEwMWI2MSBsZWdhY3ktdHJ1bmsKKzcwNzA3IDExYzMzNWE5NmY2MGYxZDljZGMyYWI4ZjI2MDFkMGI0MTNhZjg5MzQgcHkzaworNzA3MDggOWU0YmI5NDFhMWVhNTVjNTBhMGZkYjdmOTQ5YzgxODcwOTlhZGRmYiByZWxlYXNlMzAtbWFpbnQKKzcwNzA5IDAwNTcxMzk0MWExOTNhMDY5Mjg5MTZhMDQ2Zjc1ZDE1NWQ3OWY2MDUgcHkzaworNzA3MTAgY2MwMmM5YzI5MGE5NDg0YmI5MjY5YWVmYTk3MTQyOWU1MTI0NGE4YiByZWxlYXNlMjYtbWFpbnQKKzcwNzExIGI5ZDZmZGYwZmJiMzYxZjk4YTkzYTIwNzQ5OTE4OTUyMWU3ZjgzMTUgbGVnYWN5LXRydW5rCis3MDcxMiA4NGU5OWVmYzY3YjJiMWEwZmFjYmZjY2JiYjNmOWQwMzg2MmNmMDc3IGxlZ2FjeS10cnVuaworNzA3MTMgZjVjMmJjYjA5NDdiOGFhNTZmOTYzOTZmNmUxYzhiZjBhNDBjYjNiNCBsZWdhY3ktdHJ1bmsKKzcwNzE0IDE0Y2FlMTE2MDY5ZDNjZjVkYzc4N2I5YjBmMmQ2YTUyZTc4OTlkMmUgbGVnYWN5LXRydW5rCis3MDcxNSAxYjdjY2NhMzRmMmZhNjhmYzljNWVjODM1ZmY1MmY5MGI1NDA5ZjEzIHJlbGVhc2UyNi1tYWludAorNzA3MTYgYWFhZjMyNjk0ODc2YTc2OWIwOTA4MWU4YjQ1NzkwMzcwZDcxYTEyNyBsZWdhY3ktdHJ1bmsKKzcwNzE3IDk2NTIzMGIzMzc5ZjFiODI1YzJmMDA5YTYwNzgxNDA3OGJkYzg2M2EgbGVnYWN5LXRydW5rCis3MDcxOCBiOWM0OTllOWY3NGRhOTViOWQ4MzFlNDkxZDhhODA5YTViYTNhMmNmIHB5M2sKKzcwNzE5IGI0YTRmNGI2MDhhYmIxZDBkZjA1YWE3ODcwZjQzNzI1OGMwMjk5NDAgbGVnYWN5LXRydW5rCis3MDcyMCBhYzE2NGI1NGM4YThhM2MxNmM0MzU1Mjc1NTUwNmE0NGRlYjM1ODA0IHJlbGVhc2UyNi1tYWludAorNzA3MjEgYjRhZDU5NDhlMTk3YjI2YjQ5NjRhOGMxNTFlZmVlZGM1MmUyYjRhYiByZWxlYXNlMjYtbWFpbnQKKzcwNzIyIDEwMTRmMGFiZGI1NzIxMDNjZjc5N2UyMzE2ZTZiZDA1ZmNiODdlNzAgcmVsZWFzZTI2LW1haW50Cis3MDcyMyA0MmU4N2ZmOWY2NWRiZDI2NzRlOWY3MjliMDBiZWIxNTkzYjY0MTFlIGxlZ2FjeS10cnVuaworNzA3MjQgZWI1NTJhNTkwOWZiOGQyMTc2ZGM1OWRiMmViNGViNjdlNWE2ZTNhOSBweTNrCis3MDcyNSAzOWI2MmIyY2IyYzc2MDIzZTBkMzkwMGJhZTVlZjU2NGYzNzI1MGIwIHB5M2sKKzcwNzI3IDhkZjRlMGMwNmU5NDAyNjNhMjg0ZWY5Zjg4ZTRiZmQyYmQ5NWI4NWQgbGVnYWN5LXRydW5rCis3MDcyOCAyZDM4ZGUwMDJiYmViYmYwOTdiOTY1YmFjM2FmNjk4OWNlNWQxYzFhIHJlbGVhc2UyNi1tYWludAorNzA3MjkgMDhiZjMxODQ4YTQyMmFjMTkxNmM2MGU0MTI2NDliNTdiMTYzMTNkNyBweTNrCis3MDczMCAyYmZmOTEyMWJlMGY2NGM5ZTQ3OGM2M2JlODQ4ZmY1MzVlZmMxYmQ1IGxlZ2FjeS10cnVuaworNzA3MzEgMTc1YmE3NmU5YzJiNzRiMjhjZDBjMjkwNjhhMjM4ZTkzYzMzY2NlMSByZWxlYXNlMjYtbWFpbnQKKzcwNzMyIDk4NjU1OWRhNTRkZTE0MTA0YTRhZTBkMWMwNzg0Mzc0YzM4MTJlZmQgcHkzaworNzA3MzMgODFhYTQwYWIzNDZkOTYxNmIwMjgzNThmMmZkZTc4OTQwNmVmZWE0ZCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwNzM0IGYyYzkwZmQwNWQ2NmRjOWM3OGQxMWMwNjA5NGQyYTdkN2NjYzllNmUgbGVnYWN5LXRydW5rCis3MDczNSAxNGUyNzUwZTI1MDZlNTY2YjUzMjI5MzdjN2VlNTdjMmRiMmRjYmEzIGxlZ2FjeS10cnVuaworNzA3MzYgMzk1MjM0NjFlZjdlMjQ3MDM1ZThmM2ViMDM4OGUwNGM4YjRmNTEwMyBweTNrCis3MDczNyA5NzRjMmJlZjI4MDBmMGFkZTRhNThkMmVjYmE5MDU2YjY4ZWYwOGQ1IGxlZ2FjeS10cnVuaworNzA3MzggNTczMDg1MDE1YWE4OTM0Njc0OWQyNDU2ZjM5ODFiZTllMzIzNThiZCByZWxlYXNlMjYtbWFpbnQKKzcwNzM5IDg1N2JlNWQ5NTEyMDhjYWUwYTEwN2Q5YWQxYjBjMDY4Mjg5MzRlNDQgcHkzaworNzA3NDAgMzc2YjgyMWRiNDI4YjhmNzVkNWUyYzQxYWU5ZGE5NzA2ZjA5NTY3MyBweTNrCis3MDc0MSBkZDk3ZDNjM2ZjNjYxOGY0M2ZiYWE3OTI1MDc0YTlmNTM5Mzk4YmRmIGxlZ2FjeS10cnVuaworNzA3NDIgM2I1YmNiOTNiZDExOWRiODZkMzdmMWZkNGYyMGRlOTJjMjE1YjgyMCBweTNrCis3MDc0MyAwZTM4Yjk0MWQ5ZTQ5MGJlYjZhMzAyZjJkNjcyZmRlMmM1OGEyZDNkIHJlbGVhc2UyNi1tYWludAorNzA3NDQgNTRhMTA3NjM4Mzg5NTU4M2I5ZDFkMTkwMjk1ZGExY2ZjNGU3NDYyOSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwNzQ1IDJlNWUwMDFkN2QzNmFkM2I0NTIxNGM5NTU0ZjNkYTQ1NjYxMzcxMTYgcHkzaworNzA3NDYgOTk4MjljOTA4MDU4MTI3ODNlZDNiODE4OGRlN2I0MjAxMGU0MGEwOCBsZWdhY3ktdHJ1bmsKKzcwNzQ3IDEwYTYzYjkzMGNiYWUxNGYwMDM0NDk0YjBkMWQzMjMxZTIyODNhNTIgbGVnYWN5LXRydW5rCis3MDc0OCAyNjhiOGViMzFmNDkzNmUyZWZhZGM0ODcxMGZlOTJlMGNjODJiMTljIHJlbGVhc2UyNi1tYWludAorNzA3NDkgNTJjMzZlNDUwYTQ4YWM1Y2E2NWI2Mzg3ZDVkOTI1Y2FhZjE3YmY2ZCBweTNrCis3MDc1MCA3NTcxYWFjM2UwYzIwYTM3M2EyNWZiZjU2YzU0ZjU3NTQxNjZlOGYxIHB5M2sKKzcwNzUxIGI4ZTg3ZWRmMmY2NjI4NzJmYjU2ZTMwNmEyNDE4NWFiNWUwNzk1OTAgcHkzaworNzA3NTIgZWNhOTM5MDIyYjgzMmUzN2I3ZDY4ZjBkNjM2MTQzMTkwMDQ4N2I3ZCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwNzUzIGMzNzFjMDkyNGYzNTNjOWE5MTY2NDQyZmViMzkwZjg4ODY1N2Q3YzkgcHkzaworNzA3NTQgZGU2M2NiYzU2MWI2OGU2YWM4YmE2ZmE5NTY0M2FhZjMwZDBiM2I2NCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwNzU1IDQ1YTcxNzQ1MDk2MWM2OGM5OGRhODE1N2EzOTljZjhkMGVkMTVlZTUgcHkzaworNzA3NTYgNzgwZDY0MDFlZWQ2ZDVmZmFhNTA5MGFjYWZmZWQ4ZjYxNDMzNjgwMSByZWxlYXNlMzAtbWFpbnQKKzcwNzU3IDJmZjg5ZjBmMWQxOTAyYjgxNzEyNjViZDYwZTRiMGE2YzUyMDA3Y2UgbGVnYWN5LXRydW5rCis3MDc1OCBmY2ZjMmM5OTRhNGFhMGU3NGQ5NDBkOGFhMDBlNTU4NTRjZGU1ZTE2IGxlZ2FjeS10cnVuaworNzA3NTkgODM0YTNhOTZkM2FiNDgzYmFhYWIxYTk1ZDBlMmM5ZWZlODYyYzk2ZiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwNzYwIGU5ZmYwZWZjZmZhOTA4YWQ4Y2YwN2NiMzVkN2I1OTg5OTNkYWMwYTAgcHkzaworNzA3NjEgMWU3OGIzZGNjYTQyYWYzY2ZkN2ZlMWRlM2QyNWExMjc4YTYyYjFjNSByZWxlYXNlMjYtbWFpbnQKKzcwNzYyIDgwMjcxY2UwOWE2NmZiZDk5YjgzM2Y3NThiMDFhNmJkNGM1NzM3ZDkgcHkzaworNzA3NjMgOTRiYTJmYWQ5Mzc4YTY0M2E0YWM2M2UwMTA3YjNhNDYxMjYzZmZlMCByZWxlYXNlMzAtbWFpbnQKKzcwNzY0IDgwZWM1MGQxMzg1N2YyODk0MjZlMzdjNmM5NTQ4YmYyOGMyZDBjN2UgbGVnYWN5LXRydW5rCis3MDc2NSA0MjM5ZmE1NjI3MzVhYjExNTRiODhiZWY3N2U5MDg3ODZmMjMwZjUxIGxlZ2FjeS10cnVuaworNzA3NjYgNTZhMDlkZDBlMGYzMzAxNDdlM2YxOWEzNGNjNmY1NThjOGQxM2I4OSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwNzY3IGY2YjA1MDVhMjJiMzlkOTY0NzIyZDM2MWY4ZmU3YzQ2ZjYxMDY1NGUgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MDc2OCA0M2ViYTc4OTE1OGZkY2EzOWIxMWYzMjJlZDE3N2Q4ZTgzNWM1NmExIGxlZ2FjeS10cnVuaworNzA3NjkgMmYyMjI3MWNmOTI0OThiODJiZGZlNTJmOWMyMzE2M2IzZTE5ZDRiNyBsZWdhY3ktdHJ1bmsKKzcwNzcwIGEyODg3MTA5ZjM0MDY4ZWQwZmMwNmE1NGQ1ZTgwZTlkMWZiNWYzZGMgbGVnYWN5LXRydW5rCis3MDc3MSAwYWZiNWQ4OTQ2NjE2NGZkZDhlOWFiNjA3MzVmNmUwOTg4OWI4NDRhIGxlZ2FjeS10cnVuaworNzA3NzIgNWRlYjI3MDQyZTVhNzllMjQ3ZTNhZGM5MWNjNjBiNmIzNGViMDA3NiBsZWdhY3ktdHJ1bmsKKzcwNzczIDNmODFkOTk0NWU4MmEwZTk4MWJiYTEzOWJiZmJmMjNjZTNkYzkyYjIgbGVnYWN5LXRydW5rCis3MDc3NCA5ZDE3OGNiNTQ2NmEwZDc0MmNhOGE2NjE3NWVmZjE4YjJjM2NkNWE0IHB5M2sKKzcwNzc1IGY0YzVlM2E2NGJlMjNhNGVjYWZkYmNkOGY2Yzc4YTA3MzY5MjMzZjggbGVnYWN5LXRydW5rCis3MDc3NiA1ZWNlMDc4NWRmODEzZDU1Y2NhYWFkYTQ3ODg0NWI1ZjE1ZDRmYTkyIGxlZ2FjeS10cnVuaworNzA3NzcgZTAxMjRmNTQwZWU1NjQ4ZWE5MDMyM2NjNzE0NGFjYTkxMWYxODVhZSBsZWdhY3ktdHJ1bmsKKzcwNzc4IDg5NzZlYzJjZGZlNWRiN2U4NWI0NmUyMGE3NmZlODYyMTA2ZjliOTYgbGVnYWN5LXRydW5rCis3MDc3OSBlNGVmY2IyOTkwZTI1ZWI1ZWMwZTM5NzE3ZGNiNWU0NmFlZDUxOGY1IGxlZ2FjeS10cnVuaworNzA3ODAgOTcwNDk2ZGIxNGJjZGI5MTdiYzI5NjMxODgwZTI2NDUxMWFhOTYyYSBweTNrCis3MDc4MSBkY2FjMDQ1OTIzMDI4NDg0M2RhZjIzYmJlNWFkYjU4OWE1ZTUwZmM2IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzA3ODIgMGQ2MmNjNWI0OGQ1Y2VjZTQ5NzQ2ZjYxN2E5Mjg4ZTZmNWZkNDcxZCBweTNrCis3MDc4MyBlYTRjNWMzYmM3YWJiOGMzMGM1MjQ5ZThmYzAxNGI0ZDcxMmY1NTM5IGxlZ2FjeS10cnVuaworNzA3ODQgMTFhNDU2NDc3ZTgyNTg3MzNmMzI1ODlmN2EyYjRmZWRjNmNmYjhjZiByZWxlYXNlMjYtbWFpbnQKKzcwNzg1IDgwM2QwMjczY2JmN2MwOTA1NjkwZTY1YjEyNjUzY2RjNWY0ZGIyZjIgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MDc4NiA3NWVjMTJiMjQ0NDhlMmI0ZGMxY2Q1NWRmNGJiMDYxMTU2MjAyNjNmIHB5M2sKKzcwNzg3IDg5ZGVhM2RmNGNiNTc1MGJhZjdlZmE1MWQzZGY3NzY4YWMwYmVmMTYgcHkzaworNzA3ODggYzY5OTU0NzA1M2E5OGMxOTdiOWEzMTYwZDExM2IwYzE1ZWMzMTBjZiBsZWdhY3ktdHJ1bmsKKzcwNzg5IDEwNGNjZDA2NDYxYTg4OWEzNmU0YjQzMDlhYThjMzQ2NjA1NWUwZDcgbGVnYWN5LXRydW5rCis3MDc5MCBmMjhlNmY3ODIxYjMxYjc0NmUyZjZjYjNmZDk3Y2QyODJmNDI0ZGU4IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzA3OTEgYzFhM2NlYzBhY2Q0MjdmMzE4YTFmZDMwMjUyM2M1MTBiNmM5MjhkZSBweTNrCis3MDc5MiA3MmJiYjBmOGIwOWE3MjE0YmZkMDExOWIxYzM5ZTQyZjViZDQyYzgwIGxlZ2FjeS10cnVuaworNzA3OTMgMjZiMWFkMDlkMWE3MjM3ZjJhMGRiNTJiMmFmYjlmYzhiMzU5NGY3MiByZWxlYXNlMjYtbWFpbnQKKzcwNzk0IGVlMjIyYzRkMTI5YTJmNjg1YjhiOTI2NGYyYTRmYTI5ZDMwNjBlYWIgcHkzaworNzA3OTUgNTIxOTVmY2FiMTkzZDY5NDdlM2JjZWQyMTlmM2ZmZTkxMzQ0MGUzOSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwNzk2IDM4MDkzY2JlZDZhNmRjNjM3OGQ0YzZkNjY4MWQ1NGUyNzAwMjU5M2MgcHkzaworNzA3OTcgZDEyYjAyYWJlNmRjYjQ3YWIyYTE5NGMxNjdlZDIxNjVhOGViY2NhYiBweTNrCis3MDc5OCAyMzFkNjFjNDNlOWNkZmRkNzY0NWVhNDNmZTU1ZTAyZWJhZTYyMmUyIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzA3OTkgM2RhOWRjMGM2NWM2YjFmMGFkNDJmMDZlYjgyNjc3MDFhZTQ2MjM0NyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwODAwIGE5MWNmMGRlZmJkNjc2NjhlNGMzN2Y2ZWMxODRiZjAxYmJlMjY0ZDkgbGVnYWN5LXRydW5rCis3MDgwMSBkNGY4NjY3MzliYjI0YzM0MTJlZDc0ZDM1MWFlMmE2YWIxYzE0MDMwIGxlZ2FjeS10cnVuaworNzA4MDIgOTYyZWJhNjIyOTlmYjg4ODg3ZWQwOGZhNzRhMTQ2ODk0ZTAwZTk1ZCBsZWdhY3ktdHJ1bmsKKzcwODAzIDIzNTYyMjYxNzQ5NzFlYjgxZjdhZTA2MzJlOGE5MDIyZmVmYmU2MmUgcmVsZWFzZTI2LW1haW50Cis3MDgwNCBlY2Y4NDI0ZDc0MjIwYjQwMDY5ZmI5NWJjZjk5N2JhYjdiZDdkMWQzIHJlbGVhc2UyNi1tYWludAorNzA4MDUgZDI0NzVkODA2OWFjZGM2Zjg3MjdjZTNmODU2MGE2Y2I3YjgwZGJmOCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwODA2IGU0Nzc4ZWE4ZTRiMjhkNTQ2YzkzN2NlMDIxMTYyMjk1MmNiZDQ3MmQgcHkzaworNzA4MDcgNmY0NjBiN2FjZjhmNGJjYTcxMGE5MDg1ODdhYzM3ZTIwODQ2YzI2NSBsZWdhY3ktdHJ1bmsKKzcwODA4IGM5OGE3MWU5OTE2MmFjYzg2YTJlNDBhMmIwMzhjODE0YmViYmNkNDAgcHkzaworNzA4MDkgMDdkNjUxNzFhODAwNjkxMWM3OTczNDVhMzUyMWQxNTc1MzllZTQ5YiBsZWdhY3ktdHJ1bmsKKzcwODEwIDRhZGFiNzI0MzMzOTk1YmExN2IzNTdiZDY1ZmZhZDg3NGM4ZTIxMDAgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MDgxMSBlZWQ0YzdmYTNlMDU4NzQyZGIxODFjOWMxNjFkMDMxNjMzOGZhZDM3IHJlbGVhc2UzMC1tYWludAorNzA4MTIgODk5YWEyZDE4OTg0N2I3ZjVjOTU4YThhZTFjOTdiMmRkNGIyMzNhMyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwODEzIDY5MTA3OTJmY2Q0YjY0NTllM2ZjMjRlZjEzM2M2ZDMzOGU5ZTYxOWYgcmVsZWFzZTI2LW1haW50Cis3MDgxNCA0ZWViMTRhOWM1ZDJkNzFjNTEyZDNjN2ZkMmFmMGQ4MWRiOTNkMjA0IHJlbGVhc2UyNi1tYWludAorNzA4MTUgOWVjZWI2MTgyNzRhNTIxZmM1NWMwYjVkMWZjOGUxMTFiOTFiZjZkNiBweTNrCis3MDgxNiA5MzJhMWU1MTRjMTYyMzRmY2NiNDIzZGY3YWIzYzJmMWEwMzA4ZDA0IHB5M2sKKzcwODE3IDIxYzE1OTRhYzM2OWZhMDlhYjdlZjlkMzhjZjMyZjg3OTJhODBmOTUgcHkzaworNzA4MTggYzJiMDE0YjU1YmFjMjQxZTFmODI5MjYyNDYyZWIwNGQxZDBiNTcxOSBweTNrCis3MDgxOSAyMjQyYzJlNmM3M2FjNmQ2OTEwNDZjY2NlN2UwM2IwZTY4ZmZjNjMxIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzA4MjAgMDVmOTBjZWNiMmEyOWUwZGUwNTRjZDljNjg0NGQ2ZjZjZTY4MTRjZSByZWxlYXNlMjYtbWFpbnQKKzcwODIxIDY2OTRmM2ExYjZlNzI3OWVlOGJjNjc0NGZjMDNhOTFkNzI0ZDg5N2EgbGVnYWN5LXRydW5rCis3MDgyMiAyMzQ1MWIwOWYxNWI5MjNhODFkYWI4ZDA4YThkNmE2YWI5YmIxZWY5IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzA4MjMgMmI0MzYzMTBmYzhiYjA1ODk5YzZmNDRhNGZjZDljMmNmMDkyMTU0ZCBweTNrCis3MDgyNCA0NDM2MzkxZDJhOWYyNGJlODIxMDdlNzIxMjJkMDJiOGM4NDMxNDY4IGxlZ2FjeS10cnVuaworNzA4MjUgYWE3Y2YzMjgzZDZlMDYyNmQwZTlmMDhkZWFmMzk2ZGUwOWM4MmViZiBsZWdhY3ktdHJ1bmsKKzcwODI2IDQ4NTdjY2E0NWFhNTQzMDgwODA3NDZlMTdjMDM2MGY2ZDdmOTkwY2UgcHkzaworNzA4MjcgMzk4ZWM5NDAyNzdmNjQ3NmNkYmMyZTJhM2U2NjBjNzg0NDMwZDc2MCBweTNrCis3MDgyOCBlMTI5NDQ2ZGZiZjlhMWMyZDNhYzkyMjU3NzgxOTBhODIwZGYzYWI3IGxlZ2FjeS10cnVuaworNzA4MjkgNTE0MjlhMTk2Yzc1YWUyM2EzMjg4M2JkZWIxM2M5NmFjNzkxOWVhMiBweTNrCis3MDgzMCBhZTYwZTRjMjBhZTMzZjg0NjQ2MmVkNTJiYjNjNDllZjNlODRjMDIwIGxlZ2FjeS10cnVuaworNzA4MzEgZDhjZWIyNmM2NmM0OGMyZGZkZDUxODNmMDI5ZjNlNjk1ZmY3MjE3YyByZWxlYXNlMzAtbWFpbnQKKzcwODMyIGRhZmQ5ODJkZmNmNGEwZTIzYWQ1NzM2ZjNiNjAwYmY1OTcxYjI4OGMgbGVnYWN5LXRydW5rCis3MDgzMyA1MzRmYWY5MTg3ZTg0MDBhMGFhNTNlMGFjNmJhM2YxMDgwYTRlYTE3IHB5M2sKKzcwODM0IDM3NTI4NzMyN2NlOWVmYzcwMzMxM2EwNmVlY2M5ZjQ3MDEwNTUxNDggcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MDgzNSBkMTg2ZDM1M2NjODE3MGZhZTFhZTcwMjM2MTVkY2I5NTM2NWRkYjczIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzA4MzYgYjk4NTIzYmUwYTE1NzA5ZmFiOTMxMDcwZjViYzBlZDY0MTY1ZWY0YiBsZWdhY3ktdHJ1bmsKKzcwODM3IDExZDZlNTM4YTI3OWI0YTI4Nzg0ZGE4ZWQyYWNkNWUwYWVjNjI1YmMgbGVnYWN5LXRydW5rCis3MDgzOCBhM2IyYTk3MDZmYzM2ZTIyYzE4NTQyYTE4MjBmZGI1YmNkYmZjMGUzIGxlZ2FjeS10cnVuaworNzA4MzkgNmE2ZGQ4YWIzZjIyODdlZDY3MDE5YjYyYmNiYTBmM2IxMjUyMDdlNSBweTNrCis3MDg0MCBhMzk4YTJmNzVkNDQ0ZmY1ZDEzNGRjYWEyYjY4ZjhlNDliMjlkNWRmIHB5M2sKKzcwODQxIDFkMWViMTQ5YjMyMzcxYjExMmVjYzhkMmQyOTdkZWMzNGUwNWI0MDQgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MDg0MiA3MDcyOWU3MzUzZGIwMzU0ODRmMWZlOWQ1YjUwN2RjODI3NWU2MjVjIGxlZ2FjeS10cnVuaworNzA4NDMgMmQ4MGMyNzk3NTAxMmRmMjk5MGJkYmYxNzlhNTA2ZWJiNjU3ZGYyOSBweTNrCis3MDg0NCBkYjUwMTg3YjRjMGNiOTE1YjZlNTNmYjA0MzBmNWFiMDY2NjY0YTZmIGxlZ2FjeS10cnVuaworNzA4NDUgNjI1OWY4MGRjMjRkNjA4NDRiNjcyYTk4ZTVkMTIwOGU2YzAyZTQ5NiBweTNrCis3MDg0NiA4NDAwMzJkOWVmZDYyY2FiN2Y4ZjI1NTlhNTdlYzk0Mjk4MjdmNmI1IHB5M2sKKzcwODQ5IDg3MTcxMjgzZDAyZjhkZGYzMTY3NDRmMGRlOTNlMjdlNWY4NjE5ZDAgbGVnYWN5LXRydW5rCis3MDg1MCA2ZGRiZGZkYjdhODZkOWFkODBlOGZlNWY4NTg5MDE4MDc4MWE1NTUxIHJlbGVhc2UyNi1tYWludAorNzA4NTEgZDQ5NWExMWM3NmU5ODg1ZWFiNGQ4YjM4NzYxN2M1OWUxNDNlZTAyNyBsZWdhY3ktdHJ1bmsKKzcwODUyIDc2NjNjNDljOWJmNmRjYzdhZjM5OTc5ODM4ZTM5MTRiYmEwYmQ0NmIgbGVnYWN5LXRydW5rCis3MDg1MyAwOGM4NmY0NWFjOTE1NWM1Y2VkNzdlY2NlN2E2NjkwMzM0ZWNiNjMxIHB5M2sKKzcwODU0IGZlYTc0ZDliMmE1ZjMyNjE3Zjk5MDcyYTA3NDUxNTJjZDIwOGY2YzQgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MDg1NSA2MTU0OGIzZTRjYTgzZWYxN2M4M2JhMmEyM2E4Y2Y0ZDU0YTAxYjQwIGxlZ2FjeS10cnVuaworNzA4NTYgNzY0MWEzZjBiMmVjMzVlY2I4NzBiYmRhNjVkZWYyMmQ5ZjgzMjk1YyBsZWdhY3ktdHJ1bmsKKzcwODU3IGU1ZDhmMGMwZDYzNDA2MTMyNWQxNTRhYWY4ZTE3ZWYwZjJkM2M5ZWEgbGVnYWN5LXRydW5rCis3MDg1OCBhMDIwZTY5ODM4YmE3MmFlODg1NzEzZDMyYzA1MjczNjRhNTQzYjVhIGxlZ2FjeS10cnVuaworNzA4NTkgZDAyNzU1NzRjN2NmZTNhZTdkZGY5NTRiYzQzZDBkZmNhY2E3Yjc5YiByZWxlYXNlMjYtbWFpbnQKKzcwODYwIDNkNTk4MTc1MDY4Y2JiMmM4YTQwM2ViMDRhNjE2MzY3NjgzYjA2Y2MgcHkzaworNzA4NjEgZWYyODE2YzU2YWMyZWU2NzI5MTEyZmQ5YjVkNzc1MWJkYmM5NTc5NyBweTNrCis3MDg2MiA4ZjUxZGQwOWYzZjIzYzdmYWRlOThkMjZkZDJkOWFhNjlkYjAwYzk1IHB5M2sKKzcwODYzIDE1MTZmYTIyM2ZjMTRiNDI5MmYwNjFkODI0ODRmYjdlNTllYjE2NTYgcHkzaworNzA4NjQgNTEwZWQwNTdiOTVmYTg2YzYwNWY0OGE4NThiNjZhZjgzNTE4OWRmMiBsZWdhY3ktdHJ1bmsKKzcwODY1IDU0NmM1MDIxZjAyNzhlMzMwZGQ1NjNjNDg2ZTVlYTczYjEwYjIwOTYgcHkzaworNzA4NjYgZTE2MDdmNmQ5YmU4NzU3OThhMjU3YTAyYWQxNDEzYWM0NTA0MDZkYSBsZWdhY3ktdHJ1bmsKKzcwODY3IGU3MGE2YzQ2YjNhYjQwZjMzYmVlMzllYTcwOGJlNjJhMGM2ZWNkN2IgbGVnYWN5LXRydW5rCis3MDg2OCBmNGI5MDAxNWVmMDA5OTIyNjhhNjllNGM5YzE0NmIxZjBiYzM4ZWI1IGxlZ2FjeS10cnVuaworNzA4NjkgZDNlMzFiZDU0MzBhYjY5YWFlZDY1NDM4NmMxZDQxZWY0ZDU0YmU0NyBsZWdhY3ktdHJ1bmsKKzcwODcwIDAyZGIyZDM0MDEzMzRiMzVjZWI5NzI0OGMxYzFkYmFjZmExOTc4ZmMgbGVnYWN5LXRydW5rCis3MDg3MSA1M2MxYjVmNjY5NjUyZmZkMTUyODBkOTVmMDIyZjcwY2EwMGI3MjE2IGxlZ2FjeS10cnVuaworNzA4NzIgZTZiM2U2OTZkYmNlOGQ0NGMzZjU4ZjkxYTkyNTViYmI0MjEwMTY4NyBsZWdhY3ktdHJ1bmsKKzcwODczIDYwOTZlYTgxZGUwYjdhOTM4ZjQyNjBhMjE5YWUwYjQyYjkxOThlNjkgbGVnYWN5LXRydW5rCis3MDg3NCA2OGI3ZTgyMTdjN2U1MDQ2MTkzYTExZTc0NjUxZGU4NjUyYjhjMzU2IGxlZ2FjeS10cnVuaworNzA4NzUgNDViYTQ3NWQ0ZTk4YzcyNTY2NzBmMDFjNTdlNDZiOTNlZGQ3N2QzNyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcwODc2IGIyYWRiN2ViZGI1NGYyNzkwYjBkMDcyNDE0YjE4NmM5ODkzMjAxMjggbGVnYWN5LXRydW5rCis3MDg3NyAxMTI2NjlkZmYwNGFiYWYzNTFmMjUyMjViMGYyYzUxNzYzZjA0MTlmIGxlZ2FjeS10cnVuaworNzA4NzggYWI5YjdkNWRiOTM1OGZiM2RkYjdhNmRmYjJhNmQ0ZDBhY2YzNTU4MiBsZWdhY3ktdHJ1bmsKKzcwODc5IDNhZWE3NWEzNDMzNzNmZDk2OTAyZWU3NjczNGFlMzI2ZGUwZTYzNDggbGVnYWN5LXRydW5rCis3MDg4MCAwYzE3ZjdiZWUyYTA2OTBkZTY1ZDg5ZDk5NDllYTVhY2RhYzYyYjJiIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzA4ODEgZDljOGQxYTVkZGVlMjM1NTg5NTc1OWU3MjEyYTBlYjE3NWUzZGQ4MCByZWxlYXNlMjYtbWFpbnQKKzcwODgyIDlmOGQ2ZGU4OTAzNTIxYWI2OTJkMTRmYWQwNDEwYjU3ZGRkZjMxOGUgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MDg4MyBiNWFhOGFhNzhjMGYxYzExNDMwNjQ3MDY0MjhjMWJlYjUwZDVkNTlkIGxlZ2FjeS10cnVuaworNzA4ODQgYTUzMDFlZGFhNzA0Y2IzMGNiNjYyMzY2ZDZiZTM3NWVhZDA5YTg4NyBweTNrCis3MDg4NSAxZDdhNzcyYjNiMTgzN2JlOTBiZDA3M2QxMTFiYzIwMTNjOGYwNmQ1IGxlZ2FjeS10cnVuaworNzA4ODYgMmI5YzkxNjY4Nzc3NGY2YTMzZTc2ZWIyZWFmY2MxMTY1ZmNhOTUxOSBsZWdhY3ktdHJ1bmsKKzcwODg3IDA5YjcwZDU4ODhiZmI0YTIxNTBlMzZjOGJlNGRlOTA1NDVhZTExZmYgcmVsZWFzZTMwLW1haW50Cis3MDg4OCBlZmFhNjdiYjNmMDZmYThlNDE2YTYzY2Y1NTc3YjI5YTgzYzI3MGIzIGxlZ2FjeS10cnVuaworNzA4ODkgY2IwOTY5MDcxZjJhZDk0YzlmNTg0N2M3MDA5MDdjYWZmMjc1NmQ3MCBsZWdhY3ktdHJ1bmsKKzcwODkwIDk2MDllZDdkZWFmODkwNTMwNzE4YTBlYTdhYmRjMDE2ZmI2NzExZmUgbGVnYWN5LXRydW5rCis3MDg5MSAwN2M1YzBkOWU3MDAwYWNkMWZlNDE5ODg0Y2JlMjQxYzZhM2RhMzcyIGxlZ2FjeS10cnVuaworNzA4OTIgMjFiMjdlMTE1ZGQyNTAwYjYzNmM0YzhjZTQyNjIxYzk1YjZkN2Y4OSBsZWdhY3ktdHJ1bmsKKzcwODkzIGZiZDQwNTQ4MTMwZGU3Y2I2MGMyNjIwMjkzZTFhMWY5MWU0YjA3ZDQgbGVnYWN5LXRydW5rCis3MDg5NCA1NzQ0NDY4ZTYwOWJkYmY1OGRmMTY2NjJmMTRiOTQ2MDYyMzBkMmI2IGxlZ2FjeS10cnVuaworNzA4OTUgODBmZjg1ZDg3ZjY3NWJkY2E2Y2I4OTVlMzExMjE2YTUxMjU4OTFjZSByZWxlYXNlMjYtbWFpbnQKKzcwODk2IGY2ZDljMjA4OTE3MDc0MTcyMmFjYzliMzY3ZTkzNzFjYzRlMjc0YmMgbGVnYWN5LXRydW5rCis3MDg5NyA1ODdmY2ZiZTA4YjYzODk4N2E5YTBmYWY4ZTQwNzA5ZjFkMDAzNTJjIGxlZ2FjeS10cnVuaworNzA4OTggNjY0MDk5NmYwNGU3NDcxYmY0ZDY3ZjhlOWM3ZjJkYjA2Y2Q1ZTFkMyBweTNrCis3MDg5OSAzYmY5YWU0Mzc2MDZjNGEyYzZiMzJjYTZlOTkzZjM3MDQ3ZWViNjYzIHJlbGVhc2UzMC1tYWludAorNzA5MDAgMjFiYTBiM2ZlODE5ZmQ2YzM3ZTc4MjEyNjk4MGE0NDNjOGUzM2EwYSByZWxlYXNlMjYtbWFpbnQKKzcwOTAxIDBkMDgzZmIwNjY1ZGY5N2IwMzIxMWM0NDhhNjk5NmI5NDdkYTE1ZmEgbGVnYWN5LXRydW5rCis3MDkwMiBmYTkyNDNiZjUyNTY4NjYyMmIzZDYyOTYxMjFiZWJiZjFjNTAyY2IyIGxlZ2FjeS10cnVuaworNzA5MDMgZTUyODZiZTI0ZWQ1MTA2YWNjODRhMzVmNjZlZDY5ZTY0ZDg4MDZkZCBsZWdhY3ktdHJ1bmsKKzcwOTA0IDdkZjI0NDExMGRkNWZhMTc5NWU4YjNhYTY4N2ExMmQ3YTI1NWNmY2YgbGVnYWN5LXRydW5rCis3MDkwNSBiNjU3OTc4ZDU2YWQ2ZTIxM2M3OGM0NzM4NGM5OWVjNDFlMDJmZDFkIGxlZ2FjeS10cnVuaworNzA5MDYgNWYzZmUxZjI2YjM2ZDA5ZDhmMGQzODM2MWY3NmNlODk2ZDI0NDRkMyBsZWdhY3ktdHJ1bmsKKzcwOTA3IDE4MzliODU1M2EyZGJkY2FlOWVhZWI4MDljMTRlMDhlOWE1MDZhYzIgbGVnYWN5LXRydW5rCis3MDkwOCA1Y2Y3NDEzN2MwZjg2MDhjZGE5ODg0YjMxNDI0OTkwYWIwMjc0NTQ0IGxlZ2FjeS10cnVuaworNzA5MDkgZTI4MThiOWY5NjRiZTgyYThlNjU3NjZlY2UzNTgwZTM1NzA0NWE2ZiByZWxlYXNlMjYtbWFpbnQKKzcwOTEwIDU4NTZmYWUwMDllODZkNTYzY2EzNTEwYmY0NWFlZTYxZTk0MjEwZTQgbGVnYWN5LXRydW5rCis3MDkxMSAxZTA1MzQzMTlhM2VlN2U2NzUxNGY0ZGI4ZDc1Mzg1MGMwMWM3NzhhIHJlbGVhc2UyNi1tYWludAorNzA5MTIgOWI5NmJkMDkwOTA4YTY3OTM4YjE3NTdhYjJlZjU5YWVhYmUzNGVmYiBsZWdhY3ktdHJ1bmsKKzcwOTEzIDExMTM1MjExMmFmYThlZjJiOGI4MjJjYTc2M2MxYzYwMDg4YzZmY2IgcHkzaworNzA5MTQgZjdiMTFiZjAxYTEyNjRkMjIyMzY3MjE4OWJiZGE1MWI2OTMwMmZlMSBweTNrCis3MDkxNSA2OTY0NmY5Y2Q3MGI1MTE4NWY3NTJmNzNjYTVjYmFkODRmZWU2Mjk4IGxlZ2FjeS10cnVuaworNzA5MTYgZmEzYjJlZDIwZDg1NzI4ZjIzY2QwNzFjYzFjMmJmODlmN2ZlZGM2ZSByZWxlYXNlMzAtbWFpbnQKKzcwOTE3IDkxNGE1ZGVkMWJlM2M5ZjZmNjBlZmI2ODdlZmIwY2MwNWVmZWJkMjcgcHkzaworNzA5MTggZmZhMTNhZmYyOWRiMWRjMDA3NjNkOGM2MDI3ODlhNGQyOTI1ZjlkYSBsZWdhY3ktdHJ1bmsKKzcwOTE5IDg4NDNhODQyN2E4YzgyYWYxMTg2OWI3NWVhNWY3Y2Y4MTYwMDM3NDkgcmVsZWFzZTMwLW1haW50Cis3MDkyMCA4MmFkZWRmZDIzMjRmNGIzOTBkOTUzYjJlOTc0NGY5YThmNGVmZGQ1IGxlZ2FjeS10cnVuaworNzA5MjEgZjc1OGRkMmE4OTY4OWJjMjAwNjRhY2JhNjc3YzNhMDYwYTNkMDFlMyBweTNrCis3MDkyMiA5ODFhOWIzZDk3ZjNhZmUyZDcyYWY2ODlhOTBhNjNlZTZjNWM3ZTI5IGxlZ2FjeS10cnVuaworNzA5MjMgZDNmNWE5ZjA0MWQ4NDBjZmYxNDgxNGQ1ZTUyMWUzYzk1OWQ1YzFkNyByZWxlYXNlMjYtbWFpbnQKKzcwOTI0IDMwZDg3NGIxYzRhNzIzNDNlZjY0NzhlYmExMTZmYzE0ZDA5MjQ4ZDMgcHkzaworNzA5MjUgMDAyZmE5MjA1YWFlMWFiZDg0MzVkMTNmMmE0NzNmYjdhODI4MjExOSBweTNrCis3MDkyNiA3YTc3ZTRiZWFlNjY1ZDgwNzMzYmJhNzIzZGRlNTViODVhN2FiYTQyIHJlbGVhc2UzMC1tYWludAorNzA5MjcgNzY1NTE0MmY1MjI0MTRhYjkyOWU5MWQzOWMyNTA2ZGZkODE1ZDc0YyBsZWdhY3ktdHJ1bmsKKzcwOTI4IGI0MDI2YWM3ODExNDY1MzU3NTJhYThmNzk3M2M0MGIxNDdkOWEyNmEgcHkzaworNzA5MjkgZjg0MzQwODg2OTM2Y2IyZTg1Y2NmOWY0ZmU2YjJkNWE4ODBlZWU3MCBweTNrCis3MDkzMCA1NzA0NGEzNjUyZDhiNDJlMDgyZWE5YTBiZjUxNDMwZWEyNTljMmFlIGxlZ2FjeS10cnVuaworNzA5MzEgMTg0Y2E2MjkzMjE4Zjk2ZjQyYTY3MjkxNDk2NzAzMTRiYTAxOGE5MiBsZWdhY3ktdHJ1bmsKKzcwOTMyIDA0ZDQxODhmYjQxMTYwNWU5NWJhNDBlZmVhMTFjY2Q4NDU0ZGQ2MzUgcHkzaworNzA5MzMgMWFjMTE5M2E2MWQyZjVmN2QyODRhZTljMDA5OTgxYzQ4M2Q3NTA2ZSBsZWdhY3ktdHJ1bmsKKzcwOTM0IGU1NTVmZDhjNGI2ZWU3OWVmMDM0MmExNjY1NTU3Y2UwNDM3YmQ0Y2IgbGVnYWN5LXRydW5rCis3MDkzNSBkODUwOTBhNDgwYmE0YWIwYmE0YWZhNDVjYzVkZmJiYzNlMGM3YmRlIHB5M2sKKzcwOTM2IDUxM2Q5NmJmMGQ3MDM1MjZkMjFjNTI2MWI0ZjI0MjAwNTVhYzI2MjMgbGVnYWN5LXRydW5rCis3MDkzNyAxYmE2NWE5MWU1NmJlOWNiZmIxNjRmNDZjNzM5MzFmYTdjZDhkMzFiIHB5M2sKKzcwOTM4IDc5YTQyMDYxNzY0MTNjZGFmOGRjMWEzMWYyNTVmZjdjZmZjOWJkYzMgcHkzaworNzA5MzkgY2MyYzcxMzNkYTRmNWY0NzYyYjgyYjU2NWFiMzhiZDdjMjg2ZmQ0NCBsZWdhY3ktdHJ1bmsKKzcwOTQwIDc2MjM1NTgwYWEzZDQ3YzA0NGI3YzljMjNmZTdmNDc1ODM4NzQ4ZTEgbGVnYWN5LXRydW5rCis3MDk0MSBmZmE4MWJkMmVjNzJkNjdkYzYzMTM5NTU3ZDVjYzU5MDU3M2NjODA2IHB5M2sKKzcwOTQyIGFjZmMxOGNkY2RmYjc3MmJlNDZmZDdjNzY3YWVjNzJiODk0MmE0ZmUgcHkzaworNzA5NDMgMDgyYjI1MGQ1ZWU1MGZkYjkxNGU5OTE5NGQ3MTdkMzFiMGU5OTUxZSBweTNrCis3MDk0NCBmYTdjMzc2NWQxMGZmNGMzZWZjYTkxYWIyMWY3YjhkMGEwZmU5NDVhIGxlZ2FjeS10cnVuaworNzA5NDUgMDUzMGFhZGZmNjk2ZDFiNjZjNjY3Y2JkMTliMTBkMmNjMjU5MGVjNSBweTNrCis3MDk0OCA3MzQ3ZDkxNmYxM2FlNGNlMTkyMzQ2NDFjZjFjYzRkNTMzZDUxNDJiIHB5M2sKKzcwOTUwIGRhNzQ0OGViY2U4YjExODY1Nzc4MjhiMjE0NTlmYWNmNDRlNTlhMjUgcmVsZWFzZTI2LW1haW50Cis3MDk1MSBkYzUzZjM3MGNhOWQ3NDc1M2E5NTAwNTU3ZThkYzNiZTAyZjVlYmM1IGxlZ2FjeS10cnVuaworNzA5NTIgMTkxOTBlMDU4ZDU5NDMwNWYwOTE0NDBkY2Y0N2IxM2U1OWMxZmRlNiBweTNrCis3MDk1MyA5N2ZkMGQ3NmFlOWNlN2IxZjU0ZWJjOGVjNDg2Zjc3NjdlOGMyNTEzIGxlZ2FjeS10cnVuaworNzA5NTQgMDI3YTNhZGMwZDhmNTYyMDAwZjI0NmEwNzRiY2MxOGQ2YzEzOGIzZSBsZWdhY3ktdHJ1bmsKKzcwOTU1IGFiZjZkYWQ3ZDY0ZmUyODM4NTI3YTBmNDYyOGY4NzRmZTllODI3YWQgcHkzaworNzA5NTYgNzZkNjFjMTI2MjNjZjkxZTc4NTVkNmMwN2FjY2UxY2QxYzI3ODMwNyBsZWdhY3ktdHJ1bmsKKzcwOTU3IDQ2ZjFjZTc2MTk5ZWI0NTE5OWZkZTEzNDg5MTI2NTAyNWNhY2I3NjIgcHkzaworNzA5NTggZGY1Y2IzODM2YjI4MmFlYjJlMmFlMzYxMTFkYmY4ZTRjZGU5ZGI3MyBsZWdhY3ktdHJ1bmsKKzcwOTU5IGNlMGUyOGRjY2JjMjI4YWJiOWU4YTE3NDYyNjA2ZjNhNzdiZTYyMTcgcHkzaworNzA5NjAgOGI1MWQ5NjM2MGIwM2M1YzY1MjFiNTBiZTBkYzljYTQ5NGE3ZDVhOCBsZWdhY3ktdHJ1bmsKKzcwOTYxIGMzZjA3YjY3N2FmYTY3NDkzNmQxZWEzNDhhNjkxMTFiMWMwNmRkMTggcmVsZWFzZTI2LW1haW50Cis3MDk2MiBlOWZjNTIyYWFlOWE3MzljNTM3MzFjMjJiYjliZGRkM2UwM2JiM2ZiIGxlZ2FjeS10cnVuaworNzA5NjMgMzQ1NjY3MWE3MmJjMTY2YjUxMTgyMzNlNzAwNjQxNmU4YTBhOTNjMCBsZWdhY3ktdHJ1bmsKKzcwOTY0IDE4YmQzY2Y1Mjg3ZmYwMDg5ZGRjNzZhOThjZDQyODU3YTJlMDU0ODEgbGVnYWN5LXRydW5rCis3MDk2NSBiNWQyM2ZhOWI4YTQ4NDdmMjM5YjdhYjQ5Y2UxNjM0OWU3NDEwN2ZhIGxlZ2FjeS10cnVuaworNzA5NjYgMjg3ZGYzYTA5ZjM1MzBlMzU1YjdjNmU3MmQ1NDUxM2FkN2Q3ZGUzMSBweTNrCis3MDk2OCBlOGVmMTNjOTg1OTcwOWM1ZDViNjMyNzNiZTgyNjljM2EwZDdjM2ExIGxlZ2FjeS10cnVuaworNzA5NjkgMmU0ZGJiMzk1NDE3Y2I2ZDQwM2Q0NWViN2VlNDgwNDJmYTdiMWI3MyBsZWdhY3ktdHJ1bmsKKzcwOTcwIGMzMzdmMjAyOGQ4Yzc3ZTA3NmVlNzBmNTI1OWE0MWEwM2VjYzQ0NWEgcmVsZWFzZTI2LW1haW50Cis3MDk3MSAxNmMxNDQyNjIzNzQ2MjIyYjAzMGZhOGJhMDZhZGNkNmEzYjZlMWQ0IHJlbGVhc2UyNi1tYWludAorNzA5NzMgY2UzYjVjYWY0NTIyYzhhMTk4MDJhZjFlMWRmNTE2YmU3OGQ2ODliMCByZWxlYXNlMzAtbWFpbnQKKzcwOTc0IDhkZmY0MDY0MDNiZTJmZjdlNDBiYzYyY2U3Y2IyZTU1NmQ3NDVmMTIgcHkzaworNzA5NzUgYjgxNGIwYzM1MzQ3MWNmYjRiNzQ3MjA4MzJhNDVmZTU2YWYzMGI5YyBsZWdhY3ktdHJ1bmsKKzcwOTc2IDJkOTVjMDE0MTIxNGY4NGU0ODViMDJjOGVjZmM0ZWY5YTZmNzkwYjAgcHkzaworNzA5NzggY2VmOGI4MjU5YWM5OGViOTc5ZmYwY2JhMjE2MTU2NGNkNDkxMDE2NiBweTNrCis3MDk3OSA3ZTJiYmI0ZGJmODc1OWUxNTQxZDc1YzNiNDAzODhhODI1MTM4MzYzIGxlZ2FjeS10cnVuaworNzA5ODAgYTczMzczY2NjY2MyMWUwZGYyNTNhZWVkYzM1NDEzZDI4NzM1OWQxYiBsZWdhY3ktdHJ1bmsKKzcwOTgxIDQyZGE3MTU0YjI3MGJiZDk3OTI5YjMxZGFhOTc0Mzc0ZGQzYjdlMGQgbGVnYWN5LXRydW5rCis3MDk4MiA2NzU0MTVjNWI5MTI1NzkzOGRhZTBlZTJjYWM2OWM3OGIzYTRhMjBmIHB5M2sKKzcwOTgzIDZiNmFjNmFjNTU2NmE4NDU3NGM1ODI3NjM1MGQ5MmM1YWRmMWI0NzYgcHkzaworNzA5ODQgZDdmNDc4YzY4MWI5ZTMwNWU4ZmZhMzI4ZGY2OGE4NGQ2YWMwYzA5NCBweTNrCis3MDk4NSBmOGFhOGQzZDY2MDc4ZTliYTAwMGI5M2EzYWViYmE4OTc1OTM3ZjNmIHJlbGVhc2UyNi1tYWludAorNzA5ODYgZTllODdkMWEzODljNTNkMGJiNzUxOGFjOTc0MjM3YzhhMDlkZjBkZSBsZWdhY3ktdHJ1bmsKKzcwOTg3IGYxNWU3YTkzMTMzNGQ1MDBlNTdjZDUzNDgyZDFlMDFiMTA1NzAyZjcgcHkzaworNzA5ODggYWZmY2YwNzA1NDM5YTViNmQ2YmJiMzI0OTc5ZmE3NzYzOGFmYmNhMSBweTNrCis3MDk4OSBmOTQyODkzZmE0ZDhkOTJiNjRiNmUxZmE4NzY3MTU2YzQ0YjNkMzllIHJlbGVhc2UyNi1tYWludAorNzA5OTAgZGEyYzZkZDI2ZTg4ZGFkMDIyNDVjYWI2MjE3MDk0ZDk3NWVlNGQ0YiByZWxlYXNlMzAtbWFpbnQKKzcwOTkyIDllNTc5YmFiNzZmMWM1NzJhNTIwNjFhYWU3MGUyMDQ2YTc1MmNkYTIgbGVnYWN5LXRydW5rCis3MDk5MyA1MTAyYmJmNGFiNzQ5NWM1OTE4YjI3M2YxY2ZhMDFkYTRiNjZlYmYwIGxlZ2FjeS10cnVuaworNzA5OTQgOTg1NmI1YmUyNmM0Y2FiZDkxYzNhMTdlZmUzZWJjMjgwYzBhNjc1NCBsZWdhY3ktdHJ1bmsKKzcwOTk1IDNiMzRjOTM3NDk1NTJiMDMyMzMxMGY1ZTFkYTNhNzc1ZjRlOWFlMmEgbGVnYWN5LXRydW5rCis3MDk5NiA5ZWQ5ZDIwNDEzMDY2NTQ0MWM4ZmVlM2E3ZjRlMGFhYTBhNDAyNTk1IHB5M2sKKzcwOTk3IDgzZjllM2QxMGVkYzQ4OGZjNzhlMTFlZDYxMjIzNWVmODFlOWU3N2MgbGVnYWN5LXRydW5rCis3MDk5OCBlM2ExOTY5ZmRiZTVlMGFmZTk5MGJhODQxNDBhYzRmNjRhMzcwMzg2IGxlZ2FjeS10cnVuaworNzEwMDAgMWUxZGFkYmJkZDAxYjk3OTM5MjQ2MzdjNGQyYmIzOGZhOTY5ZTUzYSBweTNrCis3MTAwMSBjZjczZmI1Y2MzYWM5ZDgzYmVjZGE0Y2ZlMzliMmQzN2ViMmU3MzJkIGxlZ2FjeS10cnVuaworNzEwMDIgYjQzZjE0YzEwM2JiYzNhYWQxODMzMzM1ZDFhYWEyNzQ3NmM0YTFlMyBweTNrCis3MTAwNCAyZGZjMzM3MTc0OTM4Zjg1NWI1YjMwODU0NWMzNzYxZjNhY2E3NzFiIGxlZ2FjeS10cnVuaworNzEwMDUgNzU1YmIxZjliMGU1ODZmZmYxNDc1ODEwZjEzYWY3NTRmZDQ5ODc5NCBweTNrCis3MTAwNiAxYjhkNjhkYWU1NzIxMjU1MzMzOWQ1Zjk3OGUzZDRkMzhiZDkyYzQxIGxlZ2FjeS10cnVuaworNzEwMDcgZWI2MjIxN2JiYjUzNzM3YmU3NGM3MGFiNzMxM2IyM2MxOGQwYTdkNyBweTNrCis3MTAwOCA4NTAzYTNkMDI1NGQ4ZjY0NzBiZWEzNzIwNDBiZmZjODlkZTk4ZGVlIGxlZ2FjeS10cnVuaworNzEwMDkgZDM0M2U4MDJiMjc2MGFhNzAwY2YyZmY3ZjE3Y2FjMzZjZTU0MDQ3NyBsZWdhY3ktdHJ1bmsKKzcxMDEwIDA4MGZkZmM0M2Y5NDE4Njg2NDdkMzkyNzBkMDEwOTY1MGQ0YmJhNDggbGVnYWN5LXRydW5rCis3MTAxMSAzNmYyNWJmYjNhMWJjY2RkNDQzZDcyOGYzMmE1NzU3ZmE3N2JmMGUyIGxlZ2FjeS10cnVuaworNzEwMTIgYzVhN2ViZWM1OTg0N2FmZDU2ZDQ2OWI0NjcyZmU0Njc1NDYzNWQ5ZSBweTNrCis3MTAxMyBhNzNkNzMyNjMxMWRkOGM5NTA3MTU2NmJhYTEzNTYwNTg4MDg0ZTAzIHB5M2sKKzcxMDE0IGYzOTA0NjQ2MzlmYmU4NTgwMTFiMGM2NjBiM2I2MDc1NDBkMTM5NjYgbGVnYWN5LXRydW5rCis3MTAxNSA0NzViYTQzY2NjYjFlNTIyZDNiOTU1NjhmMTQxNTkwNzM3YzliNGRmIHB5M2sKKzcxMDE2IGMwMTM4YjJkNGVlZGM5OTA1MDBiYmJmZTFjZmU0ZDU0ZGNhODUxZTggcHkzaworNzEwMTcgOTI2ZmQyMTdlMmRjYTEyNTMxMDRhMDE2ZTA1MTg5YjU5NmI0ZWI1OSBweTNrCis3MTAxOCAzM2ViMTY5N2MzODJkZTg1ODNhOWJlZmY2MTBkM2NiNTUxYjhhOWYxIHB5M2sKKzcxMDE5IDM1YzNlMWQ3Y2ZkZjYxNDcxNzMxMThjNDQwYWY1YjgyZGM2YTllMmMgbGVnYWN5LXRydW5rCis3MTAyMCBiYzE1YjQ4M2QzODQ2ZGEwZDllYTMwNmI3NGI3YmMxZDhkOGU4OTdkIHB5M2sKKzcxMDIxIGEwZTIxMWIwNGIyZTBjODRkMDI1NDZjMWQ1OTQ1MWNjMWYyZGE0YWEgcHkzaworNzEwMjIgMTA4NmQ3ZWU4YjBiM2ZlZmQ3MDc4ZTI1ZDM1ZjliYWEyMTRjOWQ3OCBsZWdhY3ktdHJ1bmsKKzcxMDIzIGI5ODQ0NTYxOTZhZjI2OWQxM2Y1YTk0N2UzODI4YjRmMDI4NzVmZjIgbGVnYWN5LXRydW5rCis3MTAyNCA3ZTg2ZmEyNTVmYzIyNWNkNzIwYjE2ZjhhYjYyZWQyNGIyMjAyYmMyIGxlZ2FjeS10cnVuaworNzEwMjUgOTA2OTBlYjg1MzgwYmQzYjhjMjEzMDRmODBiYzM2MjQ5MzU1ZGUyOSByZWxlYXNlMzAtbWFpbnQKKzcxMDI2IGY2MzRjNTQ1NWI0ZjNhYjUwNTFiMjYzZDU2MzIyZWMwZTMyZTIwOWEgbGVnYWN5LXRydW5rCis3MTAyNyAzZTFhODA1MjVmMThhMDExMWVhODE2NGM1NjNkNDU3MmFjMzc2Y2ZjIHB5M2sKKzcxMDI4IDk1MzU1M2FlOGI4NGZmMGVmOTgzZDhjMjBmYmQwMmFjODkxZThhNmMgcmVsZWFzZTI2LW1haW50Cis3MTAyOSBjMzM5NTkzOTI5NTNiMDFhZmU2MjE5MzNjYjk5YWYxZWUwNGY5ZDBkIGxlZ2FjeS10cnVuaworNzEwMzAgMzdmZmVhYzNhMWE2OGQ2ZmY1N2I3NmQwMzE1YWE4MGE3OGM3NjU5OCBweTNrCis3MTAzMSAxZWYzZGE2YzQzNGNmYjIyOTdiMmQyYWEyNzMwYTU5NjhkZmU3OTM4IGxlZ2FjeS10cnVuaworNzEwMzIgMWI1MGY3OGNkZGNiYjg3MWE0MzI4Mjk5M2I0M2U2YjMyYmZhNDlkYSBsZWdhY3ktdHJ1bmsKKzcxMDMzIGZkNWVlM2QwZjU1MjhmNjU2ZDY4NmE2OTY1MTQ4YWY4OWJlOTcyMmEgbGVnYWN5LXRydW5rCis3MTAzNCA1NGUwOTNiZDg4N2VhNzRkMzAzYTViNzEyNjU2Y2ViNmVlODdlNmQ0IHB5M2sKKzcxMDM2IDIzYTJlMTU4NGMwMmFmMmVmNGY5MjMzZTk3YjQ1Mzk3YTE1MjAwOGYgbGVnYWN5LXRydW5rCis3MTAzNyA4ZDg0ZjIyMGZmMjc3MDhlMDc1N2M5NWQ5ZTk1MjQwNDA3Nzc0ODM0IGxlZ2FjeS10cnVuaworNzEwMzggNWYxNzlmNmYwN2UwZmY4MzQ4NTQ4MDg3YWFhMWIwZmU1NTA1ZmY3NSBweTNrCis3MTAzOSBmY2JlMWFkMjRkNDEwZWQ3ZDgzMWRlNDhkZDliZjIwZGVjNWY4ZjI3IHJlbGVhc2UyNi1tYWludAorNzEwNDAgMGJjNjJkN2RiZjU0OTJmNDIwNGQ2NjJlNjBjMGQwYzY2YTRkNjI0NiByZWxlYXNlMzAtbWFpbnQKKzcxMDQxIDcxZjYxMjlkZGFkNDY2Zjk2M2RhOGMwZDQyOWUzMDg2MGFlMjZhNDIgbGVnYWN5LXRydW5rCis3MTA0MiA1MzkxNmFhY2NmMmNjMjNjODY1NzQ5MjAxYjJiMDkxMzY1YTg1Y2JlIHB5M2sKKzcxMDQzIDFhYmY5ZTMwYzE5ZjlmMjJlZTI4ZmUyMWViNTM1YzUzYTRjMjNjNGUgbGVnYWN5LXRydW5rCis3MTA0NSBhY2RkMTFlMzlmMGIwMjI1NzQxYWUwMmZkMjQxYTRkOWI5ZDZmMDQ5IHB5M2sKKzcxMDQ2IGM1ODk0ODNhNzJhY2E1NTRjZGFlOWNmMjU0OTljYzIwMmI0ZTUwY2QgbGVnYWN5LXRydW5rCis3MTA0NyAzNTgwZDNjMDcyYWU1MDMyYjEzYWRhMzg0ZTY5YTlkYmFmZjM1MjMwIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEwNDggYTMzYmM4MTgzZTRjMTc2ODI2OWI1NGEyNWU1ZTY2MzkxNDk2Y2YyOSByZWxlYXNlMjYtbWFpbnQKKzcxMDQ5IDJlMjIzODY4ODMyYTgxZmZmOWY3M2IwZDMxZTQzZTFlODBlMjZlN2YgcmVsZWFzZTI2LW1haW50Cis3MTA1MyA3NTlmNDNjOTc4ODc4YWY5MTUwNzU2Yjg2ZTI0ZDNhYWIzZjg4Yjg4IHB5M2sKKzcxMDU0IDk0ODlhOWU3YWZkNDM4MzI2NDRiNjUxMTQwNTY4YWIwMzYzNjA2M2IgcHkzaworNzEwNTYgYzgwMWE2N2NlMjkyZTZjYmI4NGI4Njg4YThhY2U2YTlkZGQyYzMzZCBsZWdhY3ktdHJ1bmsKKzcxMDU3IGY4MTQyNDk3MmFkMTE4NzdjZDEyYzc0NzE1MGQ1Mzc4MmRkZTgzY2EgcHkzaworNzEwNTggNTRiMmNkMjFhYjQ2Y2U0ZWRiMWI2NzlhNTJmYmFmMmIzMzRmYmI0MyBsZWdhY3ktdHJ1bmsKKzcxMDU5IDdmYTBmODFkNjA3ZTcxYWU2ZmYyYjk5MGY4MDJlNmQ3YTM1Y2ZmMGYgbGVnYWN5LXRydW5rCis3MTA2MCBjZGQ1NDcxNDc1NjY3ZmMwOTg1Y2UzNTI5YzEwYzU4YTc0Y2EwYTYzIHJlbGVhc2UyNi1tYWludAorNzEwNjEgZDFjNTM2N2Q1N2Q2NTU2MThjMDEwMWUyY2RlZDUwZTliMzJjNTdiNCBweTNrCis3MTA2MiBlMDJjNWI0ZTRlOTJlZGM5MGEwMzYxZjkyODQwYjQxYmUyNjYzMWE2IHJlbGVhc2UzMC1tYWludAorNzEwNjMgOThjMzQ0OWRhMzY5M2JkMmZiZTIyY2JhZGVjYWVhOWE0YTcyOTZhNyBweTNrCis3MTA2NCAxYjQ4MzkxMWIyZTY2OGUwNDBjMzM0MTRjZjljMTNlODRhMzJhOWEzIHB5M2sKKzcxMDY1IGJlZDUyNGVjMDg1MGNlYjZkNDc3ZmM4MWIyN2Y3MTIzN2JmMThkYzggcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTA2NiA2NjQ2NGRiMzgyYjE0ZDViYzA0NmQxMGY4ZTM0N2Q0NGU3ZjcyZmExIHB5M2sKKzcxMDY3IDliNTM1Y2U5OWQyZGFhN2JkMjFhM2E5YjUzMDEyZGI0ZDMxMTdjOGQgcHkzaworNzEwNjggZDI4ZWEyZWU3MDcwZDM2MDUwNTA1ODAxMzE4Yzk5OWQ4ZWMxOTEyYiByZWxlYXNlMzAtbWFpbnQKKzcxMDY5IDY3MmZkN2E0MWQzNWYyYmQ4YThmMWExODJiYmVjOGUwNmI0M2ZhMTAgcmVsZWFzZTMwLW1haW50Cis3MTA3MCA3NWVmZDc1NzQzNGI4NWY4NWM1ZTdmMjI1ZmUwY2YxYWMzN2FiZjYzIGxlZ2FjeS10cnVuaworNzEwNzEgYjNkNWY2ODVkMjdhY2NhNWVhNjY5ODQyMjk5MjE3Njc5YTQ2MDYxMSBweTNrCis3MTA3MiBjYmUxOTEzMGIyZWI2MzExMzY2NmU4N2I2NTQ2NTU5ZTE0MzgxZGU1IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEwNzMgMjBlN2FhNDJkNmZlNGQ5ODE3M2MxOTczNWMyMjU0OTlhZDZjZDViMiBsZWdhY3ktdHJ1bmsKKzcxMDc0IGYxM2VlOGFjNmQ1NDUyNzc1MWQyODFiMzk4YTFiNTk4NWRjNDE3ZTggcHkzaworNzEwNzUgZjNjNGZmMjE0YjExZWM2ZjEyMzljZmI2ZDAxNTU0MGJjMDlkZjhjYyBsZWdhY3ktdHJ1bmsKKzcxMDc2IDVjMzdhYjA3YTdkYzM0MTk4ODI2ZWNmZjM1YTc0YWU5Mzg0MGRmMjMgcHkzaworNzEwNzcgOWJlMmUxNmE3MWRmNWI2NTU4NDM0NGZiMTFhMTJjNWMxODY4ZGQyNSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMDc4IDM5YmU5YWM4OWJlOThmZmNjMjlmOGUyYmViYzFkNGE1MTU0ZDZjZTYgbGVnYWN5LXRydW5rCis3MTA3OSBmNjIwMmIzZWY4ZWE5OGU0ZTBiZTJiYmFmZWJmMTQzZDgzOTA0ZDVkIHB5M2sKKzcxMDgwIDE4M2Q2MDcyZTFlNWRmOTNmOGNmZjM5MGIxZjg0N2IzZDY5YTA4YTYgcmVsZWFzZTI2LW1haW50Cis3MTA4MSAxYmY2NzEyMTdhYmYzY2Y3OWY3ZWViYTJjMTYyYmU0ZWM1OGM4MzY1IHJlbGVhc2UzMC1tYWludAorNzEwODIgZGNiMzY4ZmI2YWRiZmFlNWFlOGM5YzMzMThhMjZkZTVlNWNmMjliZCBsZWdhY3ktdHJ1bmsKKzcxMDgzIDk4Njg2ZjMwN2RlNDI2YzYwOWZjZGUwZDkxOGYzMzMxNTJkYjM2ZDIgcmVsZWFzZTI2LW1haW50Cis3MTA4NCBjYmZiZmYyMzNlZjVjMTdjZjZkZWE5ZTQ4YjE0YmRjYzY5ZjQ1NTgwIHB5M2sKKzcxMDg1IDJhMjdmOWFkYThlMzNlNDc5NDgxMWYxYzcyNzQzOTY2YTI4MjQwODggcmVsZWFzZTI2LW1haW50Cis3MTA4NiBjYWMyMDljZjVlNGNjNzM5MDIzMzllODcwMzE3YzU5Zjk1NTgyMDk1IHJlbGVhc2UzMC1tYWludAorNzEwODcgYWU0ODJlNTJhMTZiYzA4OWU5MTVlZWMwYjBiMzE5NGQ1ZmIzYzRjZiBweTNrCis3MTA4OCA0ZTVmZThiNmQxMDFjOGYzNjFkNjRiNzAxOGQxNWQ2ZDA3ZjcxZDFhIHB5M2sKKzcxMDg5IGI0MWMyOWRlYmRmNjlhNzkwOTI2Y2QyOTljMzA3NTYzZmE1MjMzZGQgcHkzaworNzEwOTAgNjk2NjJiYzNhOWY2YjZkMzIwODcxYmU5YzkwNmZmNjQzZTJiZjViOCBweTNrCis3MTA5MSA2NDNmNDRhZDM4N2ZiNDY0MzBiMDY1YWZhODY2NWU2OTYwZWUyNjAxIHB5M2sKKzcxMDkyIDhhMjZmOTYyMGIyMTE4ZDdiYjI0MmUwMGUxMDg3NTU3NzliZmM3YWIgcHkzaworNzEwOTMgNDc1N2RkYWE4OTdkZWM5M2YyZjVhM2QxYjg5OWRkMTdjMjA1NDEwZiBweTNrCis3MTA5NCA2ODk0MzQ0NTRjYjhlNTMxMjg4YzUyZTg4MzhhZTRkNGJlYWJlZTY1IGxlZ2FjeS10cnVuaworNzEwOTUgYTk4MDkxMDY2ZTAxYjIwNjM4ODE0N2ZjNWZjZTA2ZTQ1Y2I5YTAyZSBweTNrCis3MTA5NiAyODA5NmVkNzMxNTNlZDY5Njg3MGJhZGVjYjBkODI5ZTBkZDc0Yzg2IHB5M2sKKzcxMDk3IGMyZjllMTM1NDJhYjJhYzJmOTVkMGYwZGE2OWIzNTAxZmZiODdmMzMgcmVsZWFzZTMwLW1haW50Cis3MTEwMSAxNWM4ZTlkZDE5OTY3ZmQwMTExNzE3ZmNjYzY4ZmEyMjM1NWQzNzE3IGxlZ2FjeS10cnVuaworNzExMDIgNWY1NTg3ZjNjNGQ1NWFiYzIzZDFlZGM2YTJlNGY5ZDAyZWVhMGU5OSBsZWdhY3ktdHJ1bmsKKzcxMTAzIDQ0OTU0ZTZhMTM1MzIzYjQ0MDE3MDFmNGNhZjRhZGNhYTkyYTE1NDYgbGVnYWN5LXRydW5rCis3MTEwNCBmYWEzNDczZTQ1MzQ0ODRiYzIzZmRiZTAyMTYxOTkzOWIxN2NhNWE3IHJlbGVhc2UyNi1tYWludAorNzExMDUgYzNjNmI3Mzc0YmRhMmVkOGQ3MWNhOWNmMzMyYjg4NGU3OWRhZDViMiByZWxlYXNlMjYtbWFpbnQKKzcxMTA2IGQxOWQ4OTAxMzhmMWVjYjFmODQ5MmNmMzY5YzA1YTVhN2YxMzg3MjkgbGVnYWN5LXRydW5rCis3MTEwNyAyZGYxNTE3ZDg2OGM5YWYwNzBhODU1NTI5MmU4MjQ2NTUxOTBiYjY5IHB5M2sKKzcxMTA4IDdiZjYwZDdiMDllOWEyMDYyZDI1NTYwODc5YWRiNzViNWM4OGNiM2UgcHkzaworNzExMDkgYjRmMTU3ZjhlNGE3Yjk4YjUwMjk1ZGY1MGJmYjY5OWEyN2EwYmVlNCBweTNrCis3MTExMCAxZmRiNTY1OWVlMDg5NjgyYzFkZDVmZmQzODRjYjNkMmFhYzRjNjYyIHB5M2sKKzcxMTEyIDA1NWIzMDI3ZDU2OGI5NjM5NDEzMjE2YzcyNjYxODA0ZDdkYjZiMjQgcHkzaworNzExMTMgNmNmMTZlYThhMTZkZTZiNzM0N2UzZWI1ZDdiNjQxZGVlNWQzZjA4MCBweTNrCis3MTExNCBiNGRlZmRkN2Y0MzFiNTE2OWMwNjZkMzU5NzVkYjM1MGNlZDEzYWZlIHB5M2sKKzcxMTE1IGZhMmFhYzQzNGQwNjM2NTZjNzdlOWE1M2ExNjU3Mjk2MDc3MjBhZjkgcHkzaworNzExMTYgZmI3Yjc3MjdhNzMxYWM2MDlkODM0YmZkNDIyZjUxNTVmMmQ3YmEwYSBweTNrCis3MTExNyA1MTc0Y2NmYjAxYjgyMTM5NTI5NDg3YjA2YTA2ODQ5MDBkYzE5YzZlIHJlbGVhc2UzMC1tYWludAorNzExMTggNDkyNTE5NmEyZmQ4YmQ1MjJjMGQwOTViNDExZTU3ZTAzOTA2NWM0ZiBweTNrCis3MTExOSBmMTIxYmQ5NTZhZTA1MTA5ZjM1ZjdiZTMzYTM4ZmMyOTY2NmY2NWY5IGxlZ2FjeS10cnVuaworNzExMjAgOTA0MTllMWI0NjU2YjU4ZmJkNjljZDI0N2Y5NTgwNTdmZTBjY2EwNSByZWxlYXNlMzAtbWFpbnQKKzcxMTIxIDhiNTNiOTY5YjYyODFkODAxN2M0MDhkM2M2Mzk2MGVhYjE2ZDYwODIgcmVsZWFzZTI2LW1haW50Cis3MTEyMiA1NDdhMjM4YTJhYzQ5MjU4MWQzOTU3MDM2ZjMyM2RmZjk3OTkwYzI2IHB5M2sKKzcxMTIzIDE0NmE4ZmRkYmJhMjc3ODc3OTQwZjVhMzkzZDE4Njc2NmRkYWJjNDggbGVnYWN5LXRydW5rCis3MTEyNCBiMzg3Y2E3ZDBmZTYyY2ZlZGJhNTQ4YzM0Mzk1MThiMGVmNTc5YjIxIHJlbGVhc2UyNi1tYWludAorNzExMjUgYTFiZWIxNmNmMjM2OTRkOGUyZDBmNGMzZDBkZWY0OGNmN2YwMTI3YiBweTNrCis3MTEyNiBiYzA4NGE5NzMxOGI5MzM0MzcxZjNmY2M4ODg2OTU4ZTVhZTllMDZmIGxlZ2FjeS10cnVuaworNzExMjcgNWY2NmRlYWQxMTc1YTA4ZDg0YmNkY2M3NmFjNGMxM2Y3ZTlkMjU2MiBsZWdhY3ktdHJ1bmsKKzcxMTI4IGM0Y2FjYmM5YjNmZDI0NDIzZmU5YzY2OTk3M2I0YzIxOGU3NTljNDkgcHkzaworNzExMjkgYTgwZTJlYTM4OWUzMGIzZjA3NzMzMmIyYmM0ZDA3YmNkMWQ0ZTAxOSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMTMwIDU0NDdlMWY3ZGJmZjRjYjY4NjU5ZDBmOGUyOWYyMGE0MzRlNjc4OTEgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTEzMSAyNDc0ZmE5YzM4NTU5MzIxNjJjYWYzMmY0M2UzZGYxZGMxNDFjMGUzIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzExMzIgN2Q4N2U3YzA2YjU5ZDA0NDA5YWNhYTIwODdhZjllNDAyMWRhZGYwMSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMTMzIDQ4YTAyZDVmNWQ0MjhkMmRiOWRiZTA4NWNmMWRhMTJmM2Y0NTE5NmQgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTEzNCAyNGYxYTk4OTJkNDljYmU5NTkxN2U3NWMxNTQ5YTE3NTM1OTJlNzU4IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzExMzUgNDIyMjQ4ZTZiNzNiOTBkM2Y3NWRiNjYzODRkMjlmMjllNzZiZTExYiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMTM2IDgxNzViYzAzMTM0ZTMyYjhhYjAzZGY4NDc0NWY1ODlhNGVkMmFjNTEgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTEzNyA2NjFiZDU1ODM2MzIxMGMxZGYzOGVkMGIwMzMxYWNhZmQ5MWU4ZGJkIHB5M2sKKzcxMTM4IGUyNTQyYTdkNGFjZmNmNzZmZDZkNWE5NDY0ZThkY2EwMzk0NTk2YmUgcHkzaworNzExMzkgYzllNDhlMDA4YmI1MzZhNDZhN2Y5NjQ2MTYwMGZmMjUwMTMyMjYyYyBweTNrCis3MTE0MCA2ODMwMGRhMTJkZmUwZGM4YmRhMTliMGRkYjA1NjZhZTdjZDlkMjkwIHB5M2sKKzcxMTQxIDk0MTUwMTc1MTk2OTEyZGE3ODE0ZGZhYTA2MTU0NmUwMTk1M2RlY2UgcHkzaworNzExNDIgNjAxOWZiMWRhOWUxMTM1MGI1YjhmNjhiNjVjNmViYzg3NGE5YTEwYyBweTNrCis3MTE0MyBjYThjZWJhNzM3MTQ3ZmNkZjMwYjAyNjU2NzVjOTllZTQzYTE0ZTFiIHB5M2sKKzcxMTQ0IGQ2MzhlY2RlMzU3MjU5NDRiZGU1NzkyMzk3YmI4MjE0ODkxZjY3NzggcHkzaworNzExNDUgNzRjZjIwYTYxYmVjYjY3MjYwYzNhMzlmYTBhZTM3ZWE1ZGMyMTBjNiByZWxlYXNlMjYtbWFpbnQKKzcxMTQ2IDcxNmFjY2Q0YjYwM2U5MjY0ODMzMGM2ZjljNDFlMDM0ZmYyYWU0ZWYgcHkzaworNzExNDcgOTNlOTI0MDljYjQ2OGU5NmQzOWU4OGM1YWJkYjUwMTliZjdhMWIwYiBweTNrCis3MTE0OCBkMzZhZmQwNThkOGJiNmNlNTBkNDI1N2ZjOGVmYjE3Mzk3NjNhYTU2IHB5M2sKKzcxMTQ5IGY2NWYwMTE4MzMxYzI5MTgwNTU3NzEwNjM1MmUzZjUzZDc4MTc2Y2YgbGVnYWN5LXRydW5rCis3MTE1MCBlNzQ1Y2VmOGY0MDc1YmM5MzcyMzc3ZmMxZjFhYzlmZWJiZTJkMjRhIGxlZ2FjeS10cnVuaworNzExNTEgNjFiNTExZDA1ZWU5NDcyMjQ3YzYyMzQ3NTVmOTI5OGYzZjZmMTZhYyBweTNrCis3MTE1MiA2MzQ1MDJiZThkY2NiZGU1NGE0NTdlOGM5MjZlNjZlMzQ0MTg3ZjAzIGxlZ2FjeS10cnVuaworNzExNTMgY2I1OGM5NzM5ODVjOWMyZWQxYjlhNTA0ZGE2MWY5ZjRkMDljYzU1YyByZWxlYXNlMjYtbWFpbnQKKzcxMTU0IDczYTdlNmFiYTdiMjEyZjBlOTEwMzVjZjFkZWIzYjU0ZjM3ZmY5NmQgcHkzaworNzExNTUgMzczNDZkZjJiODg0ZmRlZjM3Nzc0NGZlODU2NDRjMGU3YWNiZTY4MyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMTU2IDhjN2M1YTM1OGRiOTVlNDFlZTFmMGJhNjZiYjE1OWIzZWNjOWUzY2UgcHkzaworNzExNTcgMTc3ODQxODVhZDkzNTI1MWZlZjYzZGM2Mjg2ZDA1MjdmNDVhNDA2NyBweTNrCis3MTE1OCBlNjU2OGIzYzJhZTc1YjY3NDQ1NTIxMDhmMjdjNDE0ODAwNTI4MDQ5IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzExNTkgMmY1MmEzZDE4NWEzMGQ3ZmY5Y2YyYWFlMWVjNWY0MGIyYjQ3ZmRjNyBsZWdhY3ktdHJ1bmsKKzcxMTYwIDNlZjk3NTZmZmRhY2RhMjE1NGNmNDBlMTU2NjAyOTZkNjI1MTQ5M2IgcmVsZWFzZTI2LW1haW50Cis3MTE2MSBiZDc0YzRlZDAzYTQ2ZWUxMzZmNDVhNGU1OWFlNGI1OTI0M2Y2YTAyIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzExNjIgMWRmMzdmMDk3NDdjNGE5Yzc3N2UxMzk5N2JlZDNkMzViN2UxY2ViZiBweTNrCis3MTE2MyA3MTM1NWRkZjM3M2VkOWQ3YzlmMzMyYWYzMzhlODgzZjU0ZTNmNTkwIGxlZ2FjeS10cnVuaworNzExNjQgYThmMTdjZDgyZDg5ZjAyMTI0OTkzNmY4MTY5OTBiMjI0ZmUyZDYyZSByZWxlYXNlMjYtbWFpbnQKKzcxMTY1IGFhODkzMDY3MmFhNGQ4MjNhMjVmZjc4MzI3MTE4Mzg1ODg0MjAxOTYgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTE2NiAxZjgwNzllY2QzNzAwYzg2NWFiMjAxZTQ3MjFiM2RiYjJjM2QzMDYxIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzExNjcgNzNiMDE2ZWM1YjhmYTc4YWM1ODYxMzkyYmEwM2RiMjE2YWJhYmViYyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMTY4IDM0NzZhZDc1OTBiNzgwYzhjNWMxNjE0NDQ3NWMwODE0MzZhODAwYmEgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTE2OSBjNTBjMDc5YjA5ZWI2NzE2NjE5MzUyMWQ5OTIwYzQ5MTA4Y2RjZTA1IHB5M2sKKzcxMTcwIDI4ZTMwYTVjNjM5ZDdmMGRjZTYxNjBhMmY3ZGFmYTVjY2U0YTYzOGIgcHkzaworNzExNzEgYWRiZGU1YzNiNWZlNGRmNDBjN2Y5ZmY2M2QxN2YxMTM4M2IzZWY2NiBweTNrCis3MTE3MiA0NThlYmU0ZjVhNTg4ZjY4NjFkMjQyOGZjMmRiOTNkNjgwYWQ4YWY0IHB5M2sKKzcxMTczIDdlZTFjZWZhNmQ2MmI5MjlhMWM1ZTRhYjM2ZGY5OWQ1ZWI5MTNjZDIgcHkzaworNzExNzQgNThhN2M1MDk0NTIzMDk3ZjYyNzA3YzJkZDg3NzcwZWNkZGMwYTkwNCBweTNrCis3MTE3NSBhM2JiZGQ5M2IzODlhNjY1MjQwYzUyYzBmODNjNzRmZDhmMDkzNTlkIGxlZ2FjeS10cnVuaworNzExNzYgZDdjOTc1NWI2MTc3MzMwMDQwYTI2NTEzYjBmZmIzNGI4ODM3YWIxYSBweTNrCis3MTE3NyBjYjQ3ODE1MjQ3MDQ5NmRlYmNiOTUzZGZkNzg4MWY1MzhlNzdjODU4IHB5M2sKKzcxMTc4IDJhYWRjMWFmYzlhMTk0ZDBhMGNmNzExNWQxMGQxMWI3ZDNkYWJjOTcgcHkzaworNzExNzkgNTM0Nzc0MGQ0ZDVkZDRlYjMxOThmZmYyNzYyN2QyNjZmYzMxZWFmOCBsZWdhY3ktdHJ1bmsKKzcxMTgwIGQyZTE1NjI5ZmMyOTdhMDA3MTdmYmY4NGMyNzNiZTIxMWIwOGZmMWIgcHkzaworNzExODEgN2MyYTA0ZTIxOGYyMWI5M2QwYzdkNTc2Y2U2ZTI2ZmU3NWJhNjRiMyByZWxlYXNlMjYtbWFpbnQKKzcxMTgyIDQ2YjZiODQxNWRlZTc2Y2ZhYWMxNTM2YjMzZGI3YjllNWM3ZGE5YjYgcmVsZWFzZTMwLW1haW50Cis3MTE4MyBiMTRlOWVjOWQ5OWY1ZWNjMWI2MWEzMmNjN2JjYzllYjY0NDlkNTQ4IHB5M2sKKzcxMTg0IDlhOTEyYTU3MTY0ZjY1YmI1MTNhYmU5ZTIzOGE1MzQ0NTRlOGVlMDYgcHkzaworNzExODUgNjhhOWU2ZTM4YWZhOGRkOTJhYTUxYmM0YzcwY2VjYzU3MDEwZGQ3ZSBweTNrCis3MTE4NiBjMTdlZjE0YmRmNDFjYWEzZWFkNDZjOTYyOTZiMDA3N2EyNzljNzVkIHB5M2sKKzcxMTg3IDM1NjMwYzNlZGQzM2M4MDkwYjU0NzdhNzljMjg4M2I5OWUyNzNmYTQgcHkzaworNzExODggZmY3OTMzZjQ0YzQxNjJmNTk0NGEwOGRlN2FlNzkyYzUxOWZlYTgzYSBweTNrCis3MTE4OSBhYWNmNTA5NGExYjU4MGZlY2VjZTRhNjE0ZTc0MzVjMDYxY2QzODk3IHB5M2sKKzcxMTkwIDFkNzkzZWUxNWI2ZjZlOGQ4ZDEzOTI0ZTkxYTg3YWUzODUxNWVkZWMgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTE5MSA0OWFlZjQxNDFiOTNmMjg3NTNmN2NhYTU1ZThiNGVmODcyOWQ1NTcwIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzExOTIgNWJjOGNmM2Q5MGIzNTUzMTI4MzM1N2FiMDYyYWRhYjdmYWIwZGU1YSBweTNrCis3MTE5MyBhMDE0ZGM0N2I1NTJlYjdlMzcyYjc0MWZlOGRlYmVlZDU1MWE1YzliIHB5M2sKKzcxMTk0IGVlNDMwZTUwNzVkYjJhZGY4MTI0ZTZiOTQ5MTZhODljYTQxZDMxNzEgcHkzaworNzExOTUgOWVmN2JmNGQ4NTkwODYzOTkyOGJiMTVmODg3YTRiMTIzOGFhMzk3MSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMTk2IDZkZTg2MzZjZDgxNzMxZTk0MzUwOTM4ZGY2YTY2OWMwMTc0MDNjZjggcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTE5NyBiNGVmNTAyZmNjYTAyODdlY2M3OTQ1ZDIyOTU0Y2NkYzEyMjY2MDZmIHB5M2sKKzcxMTk5IGJkYzU3NDc4MjkxOWQ3OGMxMTUyMGQ0Mzc3NDQyNTYxYjAzYjU3ODMgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTIwMCBlMDJiZGQ2MDg1ZmZiZWI1YjZkMjk5MDZjZmE0NjY3ODZiOTI2YmNmIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEyMDEgNzYxMDQ4YTBhOGQ5OWI5NjcwZGViZDU4NjNiNGNmZjNlMmQxN2QzNiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMjAyIDMyNzI2M2ZkMmU2NjYzYTExY2Y2YjM0ZWU0NmMxYWFiYzdkNGY0YjYgcHkzaworNzEyMDMgMTliMGRiMTM1NGY3MGU3NmI5YTU3YzkwYmMwNmU3NzE5YWU0NzA1MCBsZWdhY3ktdHJ1bmsKKzcxMjA0IGQ5MDAyNDYyMDU2ODdlOTFkMTQxNTMxN2JjZDlkMmQyM2QwNDYwNDggcmVsZWFzZTI2LW1haW50Cis3MTIwNSBmZGNmY2E3MTViZjNkYWQwZGU4YmI0NjQ0NjM5OTA5NDU5ZjcyOGZiIHB5M2sKKzcxMjA2IGU2ZTVhMGU0MzU0MzQ2YjUzZDk3YjdmYTg4Mzg1NzQyOGQ1YWU1NmYgbGVnYWN5LXRydW5rCis3MTIwNyAwZmUzOGJiZDk3M2NkZjFiM2NhNWIzZDBkMzViNzMzNjMyOWY5MDQ0IHB5M2sKKzcxMjA4IGRlNWYxODYzOWE2Y2UxZmMzOWYzNjZiMGZiNzU2NTU2N2JhYjQ3MDcgbGVnYWN5LXRydW5rCis3MTIwOSA3OGYzMTBiOTYxYzAyZmNiYzcyM2IwZGIwNjYzOGYxZDUyYTJmNTllIHB5M2sKKzcxMjEwIDkzODRiNDNkNDI2ZmVlNWZhNGQ1NWRlNTZlNTI1ZDM4ZmQ4YTk0NzAgbGVnYWN5LXRydW5rCis3MTIxMSBhZGRkNzUzYmE0ZDk2YjczNjZiZDM4YmE1OTc1ZGZiYjkzN2ZkYmZhIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEyMTIgMThmMWM1NmNhNmZkYmYwZDMwZThhNGI0OGFjMzQ0ZDljYzIwM2E1MSBsZWdhY3ktdHJ1bmsKKzcxMjEzIDBmNzcwOGIwMTI4YzA3YWVhNDQ1NTc3OTQzZDIzYzM3YTM1MjVkZmQgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTIxNCAxZWYwMmVmNDhjNDI0YmZjODlmMzU0Y2M4Zjg5NTkyMjkyZmUwMGE1IGxlZ2FjeS10cnVuaworNzEyMTUgNWU4ZGU2YzNlMDAyNzUyNjIzMjY2NWQzYjRiMTBkMWUyZDQxMTVkNCBsZWdhY3ktdHJ1bmsKKzcxMjE2IGU0MjFhOTJiMjUyMDc4ZGE3ZmE2MGFmNTBkNjk4M2NmYWFkZTkxODMgbGVnYWN5LXRydW5rCis3MTIxNyAwMDA2YjJhZGM3ZTQwNzgzOWI4NjZkY2Q4MmNhZmY4NjEzNDg3ZTk1IGxlZ2FjeS10cnVuaworNzEyMTggNTg3YTJhZWQzOWYyZWQzZGE0MTA0NmJkZjMzODY1YjdkYjczNmU5MiByZWxlYXNlMjYtbWFpbnQKKzcxMjE5IGViODQ1MzA1NzdhNTNhMjk5Y2VlNmE3NGE1MDljNjMyNmVjZmZhY2QgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTIyMCBmNWNiM2IzM2I3OTQxYTcwNGEyOWYxZmM2MjU1MzE3ZjFmMTUyMzIyIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEyMjEgZjU1MGUyNDYzMDYyOTkzYWU5Y2JhYmQ1ZThmNTZjNTZjYzI4M2QyYiBsZWdhY3ktdHJ1bmsKKzcxMjIyIDJiYmI2MGMwMGViNzI1NzgyMjQwYzM4MGRkMmY2OTdjMTViMzMyMWEgbGVnYWN5LXRydW5rCis3MTIyMyAwMWY0ZTg4MDNlY2RlMDA2MTQwZjQ3NjgwNzY3NDZkMmRhODFhMDQzIHB5M2sKKzcxMjI0IDk4ZjQyMzkyODM1YjY5YWVkNWZiZjgwM2Y3YjlmMzUzMjgzMjI5MDIgcHkzaworNzEyMjUgYTdjNzRlMDlkZTNkZjBhZTAwMTZjNWQyZmNiN2MyNjE2ZTA3MGQwNyBsZWdhY3ktdHJ1bmsKKzcxMjI2IDE1MmUwOGRmYzFhZjVlNTdhNGUzMjJjNDhhNDk0OGM0ZTcwNTE5ODkgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTIyNyA1OGQxNzE3ODBmZDg5NTQ1MzljYjU2MWY0MjBjYjE5MWE3ODVjZTlhIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEyMjggNWNiZGI1MTU3ZmE3NmM1MDA3YjRmNmU3MzVhYzdjZjZhNDA2ZTA2YyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMjI5IGJmZmE3NzY5NjkyNmRjZjU5MWMxZmUzNzJlMDA5ZmJmMjg5MWRiYjIgbGVnYWN5LXRydW5rCis3MTIzMCBlYjMyYTE1MzdkZDdmOGI5ZWZkMzdkNjNkZWNlMzQyZmY5NDEyOTI2IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEyMzEgZjFjZWMzNzY5OGZlOGQwNDE5NDU1YWIxZDQxMDBjMTAwNDE4ODUyOSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMjMyIDY2MzU0YmRkZGNmNzZkZDRmMzE4OGIyNGUxMDQwNGY4ZTcyYjY1MDYgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTIzMyAxY2JlYWJmODg4YTE0NjQyYzFjMTBkNjgyOGEzMWM3OTk4Mzc2NWQ2IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEyMzQgZWI5NDUxN2RmYmQ2ZDdhZmIwZWJiOTgyYmZjMTM0NDhhZDE3ZDA4YyBsZWdhY3ktdHJ1bmsKKzcxMjM1IDg1YzVjZTZkN2Y5YzdjYjA5YjYyMTRmNDA0OGQ5NjczNmFmZjEyNzQgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTIzNiBlZDc4MzNkNDgyYzgxZjJlNzdmZjhjNGU5ZDVkOTJlYmIwMjQyZDk5IHJlbGVhc2UzMC1tYWludAorNzEyMzcgOTc2YjMwNWFhZGQyOWUwZTJmZjkwMmY5ZTM3ZWQ1NDgwNDUxN2M0YSBsZWdhY3ktdHJ1bmsKKzcxMjM4IDZlYWY5NzcyMWQzZDhhZDFmMTEwY2Y5YzVjMWVkMTE4MDJiODdmNWIgbGVnYWN5LXRydW5rCis3MTIzOSAzN2Q2YWY2Zjg1YWFjNGRkOGQ0NDdkOWVlMWUxNDJlODdhMGVkOTNmIHB5M2sKKzcxMjQwIDhjNjFlN2NhYTA2Y2Y3ODBhNDU4NzUyNjc4Mjk5ZWQzN2ZkYTUzYmEgbGVnYWN5LXRydW5rCis3MTI0MSBkYTFlNTQ4M2FjYTAxMzZhNWI1ZDhkZGViOTA5MTdhZTRmOGY5NDFlIGxlZ2FjeS10cnVuaworNzEyNDIgM2JiYzY4NDQ5Zjk0ZTdlYmMyYTExYmMwOGY0NmEzNDAxMjcwMWE4YyBweTNrCis3MTI0MyAxM2VmMTE5MGVkYTlkNjRlMTViZGU4MWIyOTdmMzc1MTI3OWNiN2Q3IGxlZ2FjeS10cnVuaworNzEyNDQgMjRlZDVkODUxNzIwY2VlMGUwMmFkNWEyYWQ3NjdhMzE0ZWNhN2JhMSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMjQ1IDhjZTllZGM4ODk2OWI4ZDhlMWZkMzE4MzY3NzU1NDczNTFiOWI3ZDIgcmVsZWFzZTMwLW1haW50Cis3MTI0NiBiOTA4N2I2NDVjZWZiYzQzYmMzOWM3YzIwYTAzNzg2NmFjZmI1YWEwIHJlbGVhc2UzMC1tYWludAorNzEyNDcgNzYxMmFhODliZjA2MGVjZDJjYjVjN2NjNjRhYTdkMjdjOGJmNjZhMCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMjQ4IGE3ZTViOWQ5MGIxMjVmY2U2ZWQ3ZDBjMGIzYjNkY2VkNGM3ZTA4YzEgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTI0OSA4ZDIyODczZTliMjZkMWQ1OWNmMGQzNzU4MWZiNWIxNWI2ODIwZWUxIGxlZ2FjeS10cnVuaworNzEyNTAgNDNjODg5ZmVkYTQwYjExNzYyMzk5NzcxMWQ2M2ExZjJmZWNhOGJjNCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMjUxIGJkMTMzNmEzYTY4NjNhZTI3NTFjYTI2NDc3Y2EzYWRmNjNkZDI4MjggbGVnYWN5LXRydW5rCis3MTI1MyBiMmM2OGRmOTQ0NjM5ZGQ0MzRhZDNiMzhjMzQ0Y2FiODExOGM5MjU2IGxlZ2FjeS10cnVuaworNzEyNTQgZTc0MDgzMzAxYTM2ZTA4NzU1YzQ5YWVjOGFmMTZmYmUwNTViODdlNSBweTNrCis3MTI1NSBhMTZhMDQ1Njk3OGY3ZWY3ZTk4YjMyY2E3NjcyZjY5N2UyOGM1YTFiIGxlZ2FjeS10cnVuaworNzEyNTYgY2ZkNzEzNjk0MWEwOTk5MjNmODkwYzJiMTg1ZmVmM2RhOTg4MDdkNSByZWxlYXNlMjYtbWFpbnQKKzcxMjU3IGVjYjIxMDNiYTAyNzlmZjU3Y2Y0MmFkMzQyNDdmMjc2MTgyMDVlOTMgcmVsZWFzZTMwLW1haW50Cis3MTI1OSA3YjRlZjBiODdkZGNmZjkzMTM1Y2MxMDM0NDE0NzUwOThkNTVlMTAwIHB5M2sKKzcxMjYxIDc5MmJiODg1MDI5ZmJmYjI4NWZjOWQzOTY1OWYzZDJlOWJhODk3MjkgcHkzaworNzEyNjIgNGQ5NzYxMWQxY2NhNDhhMTRmZmExYjY5Mzg5NTY2NDMyYzgzOWY5ZSBweTNrCis3MTI2MyA2NzJiMGMwNDFiYTYzODRhZDg0YjNiYzNjNjY5YmQzODlhMmRlNGUyIGxlZ2FjeS10cnVuaworNzEyNjQgYzllY2Q0NWE1ZWEyZjEwM2EzNGU0OGNkZWEwOTE4YzFlOWJhYjg4NyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMjY1IDE0ZTAwZjBmNzhiNzRjZjQxMDRmNzVjOWZhMGMyMDFmZjc5NWQ2YjEgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTI2NiAyZDAwZmYzZDJmNWEzYzVjY2E4MzU4ZmQ1MWJiM2I1MDFlZmU4ZmRkIGxlZ2FjeS10cnVuaworNzEyNjcgYTE0ZGViOTQ4MGY0ZDMyMGRhZDJjNjIzM2FjZmQ0NDc4NGRlYzY0ZSBweTNrCis3MTI2OCBmOGM1NzZmYWE5YWQxM2U5YWE2NjA2M2I4YjhkZjkwY2U1Yjg1MzljIGxlZ2FjeS10cnVuaworNzEyNjkgNTRkNWYyOTg2YWY0MmNkZDc4YmI3MjZhZjBmYzA3OTc4MTc2OWFkZiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMjcwIGZiMmVhOGJiM2EzM2RjNzZmZDg1NDE0MmRmODgxNzQwNmI0NjNlNDIgcmVsZWFzZTI2LW1haW50Cis3MTI3MSBiMDQyOWM3ZmE3MWFhZWQ1Y2M5MzI2OTZlMDkzZDVhNTI0NmMxMjgxIGxlZ2FjeS10cnVuaworNzEyNzIgNGFjYmJiM2U2NWUyYjA1ODIxZDQzNjg5ZWUzYWY1YmE1NzMwNDM0MSByZWxlYXNlMjYtbWFpbnQKKzcxMjczIDI1MWJmZDJkOTk2YTJkZmY4Y2MxMzI2NGFhODViZmFlNThiMTg0NjIgcmVsZWFzZTI2LW1haW50Cis3MTI3NCBkMzg4N2RmZTY2MWY5MzYyYzNlMmNmYzEzNDMyNDIyZTYwZTE0NTk3IHB5M2sKKzcxMjc1IDM4ODlkOTUyODYwMWUzYmUxOGE2MmI4NDg2MzZhNjBiMmQ0NTBjNTggcmVsZWFzZTI2LW1haW50Cis3MTI3NiA5NjlhZDEwYThhNzI1NzBiODFjNTg0YTVhNGExM2JiYzRhOTBlMjJlIHJlbGVhc2UyNi1tYWludAorNzEyNzcgZDA4ODQzNmFjMzZiMTBhOWYzM2NlZTkxOGY4MThkMTdkMGNjNDliMSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMjc4IDgyMzdkZTYzMmQ2ZjY4MTVhMzY4ODJmOTY0NTNlNGE5YmUyZDgxYTAgcmVsZWFzZTI2LW1haW50Cis3MTI3OSA4YjUzMTUwMTM0ZjVkYjE0ZDIyM2RlMGEyM2I5ZmRmMDVhNzU2NTJmIHJlbGVhc2UyNi1tYWludAorNzEyODAgOWE0YjE5MzMwYWE5MzFhYmQzNTg2MWZjZmVlNjI0ZmY0ZTBjNDQxMiBsZWdhY3ktdHJ1bmsKKzcxMjgxIDdlNzgxM2FkYTJkMTgxYzQ3MjQ5Yjc5YTkzZmRlZjMzZjhmYTBkMGIgcmVsZWFzZTI2LW1haW50Cis3MTI4MiBmM2IyNmE3MjllODJmOGZmZmIxNzRkNDkzYzY5YzZlOTlhYjg5MDU4IHJlbGVhc2UyNi1tYWludAorNzEyODMgZjY3YTRmMWYyMzBkNzQwZmRlY2JhNTNiMzU5NGY4ZmRmOTMyNDA5ZiByZWxlYXNlMjYtbWFpbnQKKzcxMjg0IDkzNGQ5YzNjYmE0MTg0Yjc0MDI2OTM4ZTY3ZjRlNzg5N2M2NjI3YmMgcHkzaworNzEyODUgYjY5MzQ5ZDRiOWU4ODMxNmI3NWRjODI4NjQ3NTY0ZDQ5ZjQ2YjcwNSByZWxlYXNlMzAtbWFpbnQKKzcxMjg2IGQ2ZGU2ODQ0ZmQ3MTQxYjM2YzY0NmQwNjBiODk3NzU1NjY4Y2YyZjcgbGVnYWN5LXRydW5rCis3MTI4NyAyNGZhN2RkZDRkY2NlNDhiMWRlZGYxMGQ2N2VhZDMwYzVkOWMzZmNlIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEyODggMWQ4Y2I3NmU3MTliN2UwNTA4NDI5MWIyYzhkMmNjMjE1YzkxYmU0OSByZWxlYXNlMjYtbWFpbnQKKzcxMjg5IGIzNmIwMGFlMjlmZmJmNmU1NTNiYzY0NDI3MGUzYTcyZjZjODVjZWEgcHkzaworNzEyOTAgYjMzYmRkMjQxNDAyMzU4OWM2ZWZjYWRhNWVlMjI1NDA1M2MxZjUxYiByZWxlYXNlMjYtbWFpbnQKKzcxMjkxIDQzM2RlM2Q1OTYwNzhkMWFlNTVhZDI1OTc0ZjA4N2FiMDgyYjVhOTAgbGVnYWN5LXRydW5rCis3MTI5MiAwYzZiMTZhMmY5MWI3NWVmMjE3MGEzNmJkNTlmMmE3Zjg2MjVlNmRlIHJlbGVhc2UyNi1tYWludAorNzEyOTMgNTQ4Y2EzNDM1N2NkYWU1YzdmMTk1NTJiMWE2Y2YyYmM3YzlhZGRkNyBweTNrCis3MTI5NCBkYTBjMWY3NGNhMjAwYmM4YTFmYmFmMDFhMmVkNGIyNjBkYmMyOTk4IHJlbGVhc2UzMC1tYWludAorNzEyOTUgNGI4ODFiNGE5MGU5NWVlZDdmZDQ1MjZjOTlhZmIxZmIyMTUxMGU5MyBsZWdhY3ktdHJ1bmsKKzcxMjk2IDM2NGJkMDAyYjdmODY3OWZlYzEzYmI1MWYxMjgzMDJkYzBiMGIxZjUgcmVsZWFzZTI2LW1haW50Cis3MTI5NyA1YTdhMzNjOTRkMDAxYzhiZGM3Yzg4NjZmYmQyYTUzNTk2NDQ2NzJmIHB5M2sKKzcxMjk4IGVjMmU0YjVhMGU5MGRjNGQ2MGRjMDI0MWYwOTEyZWVkMjMxMTg0NTMgcmVsZWFzZTMwLW1haW50Cis3MTI5OSBkMzZhNGY5MjAzNzgzZmE5OWFkZjhlYzM5NzNhNWI2ZDBiYWE0YmIyIGxlZ2FjeS10cnVuaworNzEzMDAgNDE0YTMxMTgxZTlkYzM4MDFjYjczZmE3MGUxNzc2ZGRjMTAwMmYxMyBsZWdhY3ktdHJ1bmsKKzcxMzAxIDczNjAwNTE1OTk5YmNhMGYxZGUwNDk2NDM5MjUwNmQ2NTlhNTNiYTcgcmVsZWFzZTI2LW1haW50Cis3MTMwMiBlMzYzOTU4ZmNkNzBhNDNhZDA3YjM5ZGY5OTk1NTJkMGZhMWNlZmMxIGxlZ2FjeS10cnVuaworNzEzMDMgYzZjNDM5ODI5M2JkNjgyYjM1NWYxMDUwYmIxNmJiM2UxOGM4YjQwZiBsZWdhY3ktdHJ1bmsKKzcxMzA0IDk4NjIwMWFjYTY4YjQzNDRiZmJhMzlkZjhjZjk0MTQ3NDQ4ZmUzZTcgcmVsZWFzZTI2LW1haW50Cis3MTMwNSAyMDc5ZWRkNTI4NTg3NDJjYWQ5MWIxOTMxOWNjZjIxZDZiODc3NDk1IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzMDYgZWZjN2UxM2E3NTQyMzI1YmIzZjczMDlmYmViYjI0ZWM1NDg3ZDc1NyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzA3IGI0ODgxZjhlYzcwNmY4MTIxM2JmYmNlYzFkOGZkNzFiM2IwNDQwNWMgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTMwOCA4NTkyNjc3ZWIzNTJjZjg1YzYwNTViOWRiZmQ5MDU3ZTdlYjY3ZmIwIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzMDkgMDY2ZmEwYmE4MjkwMGZiYzI0OTg3MmYyYWU3NGExOWRkYjk3ZmZkNCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzEwIDdjMGZmMGRlNjI5NTZmMTc3N2VjNzMxNjY1NjI4ZDQzNjE4NDI3ZjEgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTMxMSA5OTY4N2Q1MWJlMGExNDI3MWZhNjJhOWNmNzJkZDc1ZjI5MTFmZGI4IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzMTIgZTAxMjk4NmJlNGY0ZTUyZjlhYzE2OGRhZmVmNWQ4NDU0OWFlZGE0MSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzEzIDUyNmRiMjhmMTAwZDIxMjViYjgzNTU1MzRlNThiMjZhYmVhNzMyNWYgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTMxNCAzMGI1MGNiZTVjNWU1ZmM4ZjllOWYwZWQwYTJhMTEwNmNjMWQwMjYzIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzMTUgZjdmNzAxMzllZjU3MGRmYjNjNjQ5N2I2MTM2YTFmOWViOTVkOWIwNCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzE2IGNlZTFhODZjNjljMTVlNjQ5YzFkNzU1OWI5MzQwMjU5ZjY0MmY5YmMgcHkzaworNzEzMTcgMDI2MzU0NjAyNjFlOWFmMWE5MzdjOWY2MGNmMGQ1YmFlOGJiMWViYSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzE4IDk4NjQ1MmI1MjZhMWRmNmNlMGE4MzNmNDAzMTVjYjAxZTBkNmMzMDMgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTMxOSAwNmZhODdmM2VjMzYyNzFmZDA0NzQwZjMxODlhMDA5ZWZkYTljODVhIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzMjAgNTU2MGEwNjhjMDU3OTVmYTA1MDA1MjE3YmZiMzg5NWZlNzFhOGZjMyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzIxIGU0ZWViMGRhZjYyNTQ2Y2ZkMzc2NzM3N2ViNjJhYzcxZDBlZWYzMDYgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTMyMiA0NWZkMjI3MGFlMWI4YzFkMDg5NDk5YTJhZDkyMTFjNTY3ZjI4ODFjIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzMjMgYzVlMGM2ZjY1NmU2MzY4NWUxYTk4NjBjNmJlZTFlNmMwOTI2MzkyZiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzI0IDA3NmM3MjIxMTU2MTExOTY1OTY0MGEwMjY3ZTY2MTlkZTNmNmVjMDEgcmVsZWFzZTMwLW1haW50Cis3MTMyNSBiOTg0OWVmYjI3NTQ1YzY4M2Q0MjRkYmQ4NjQ2ZTA0MmZlYjhjYjg3IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzMjYgOGQ2OTc2M2EyMzE3YjU0MDYxOGZjZmIwYWEwY2I3Y2I1ZmRlZjQ2OCBweTNrCis3MTMyNyBkMzQ3MGJjNmQxOTE4ZGE5Nzg1NzZmOWY1ZDhlZTE4N2Q0NzllOTUyIHJlbGVhc2UzMC1tYWludAorNzEzMjggNGE2N2Q2OTE0NzI1ODUxNTA3MzQ1ODBiOWI4NjVlNWQwYTcxN2U3YyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzI5IGQ4MTk4NTE4MmEzNmQ2MDg2MGFkNGVlNjQzMmQ0Yzc2M2I0MDQ4MzAgbGVnYWN5LXRydW5rCis3MTMzMCA5MjBiMDc5MDk2MDAzZDRmNzRkNmU3MzFlZDhlOWQzZTdhZTkxZmFmIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzMzEgNWIwMWZlNTEzZjkyODY0ZmY1YmQ2OTE3ZThmMDgwNjM4ODAyN2Y0ZSByZWxlYXNlMjYtbWFpbnQKKzcxMzMyIDU1NDllOGZmMjhkMmNlYzdhM2IyN2JlMTY1NTIzYWNkM2U3MWNkMDQgcHkzaworNzEzMzMgZjY2NDA2ZjI2MDQ0MWYzMGY4NmFjNmEzZjJkMjRkYzJmMDBkYmFkZiBweTNrCis3MTMzNCBhMGVkZDkxZTljNmYzMTI2MmJiM2ZhMTI0MjRhMDU4ODYzNGQxODc1IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzMzUgZjgyNGRjNjAxMDZmMTA4ZjJjNjU5YjJkMGVkZGNhMDg1ZWRjOTA5NSBsZWdhY3ktdHJ1bmsKKzcxMzM2IDYwOTNmZGM1ZWU5NjJkZTBjZWU5ZmJiMjY2YjJkODY1ZjliYWI4YTkgcHkzaworNzEzMzcgN2EzOWY3ZTQyYmQ5N2NmZjI2YmM5MTMzNTM1OWE1NDcwYWU0ZTcyMCBweTNrCis3MTMzOSBmMzkxZGY5M2M5YWJkNDlmN2QwMjBkZDUyZDQxNzM1Y2I1MjI0NWVkIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzNDEgMzc0NGVmYTQ1NjY4MWVhODQ3ZDgzYzNlNzU2NjVjODdkYzk5OWM1MyBweTNrCis3MTM0MiA5NzY4ZGE4NmNmOGUzMmFmNjE3OTVmMmI3NDgyM2Q1MGYxOTdhYTU2IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzNDMgMjhiYWU1Y2E1MjE4ZDA0YjJhYzQ4NTJmOGIzODY2NGMzMzEwODNjMCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzQ1IDY5MTE0YTM1NmNmMGRhNzJlYmY0M2Q0NTVjMTU4MWQyNDliOGI2ZmMgcmVsZWFzZTI2LW1haW50Cis3MTM0NiA4ZmJiOTkzNmQ0ZGEyYjE3ODI5Mzk3ODAwODY2YjdkZjllYWNmYmY5IHJlbGVhc2UyNi1tYWludAorNzEzNDcgNmZjZDEwZWE5OThhOTI2ZDUzN2MwNjQ1NjBlYjBkNDRmNmU3OTM5NyBweTNrCis3MTM0OCBkYTczYzQzZTY5MWVkZjg3NWQxYTcyMjNmOTFhYWQ3ZTgxY2I0ZTI5IHB5M2sKKzcxMzQ5IDcxNmY1OTU4YjVmMGRhMGE2MWZkMjcxODAwMzJmZmNlZWI2OTg1ODAgcHkzaworNzEzNTAgNmY0YTA4OGQzNTlkNmNlNmY5Nzk4OWY4NDM2MDcxOTYwMWMwZWM3YyBweTNrCis3MTM1MSBjMzdiYjFiN2E0N2E4NDNlMjBkODBmY2U2ZTg2NzdhMzRhZGVlMzA4IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzEzNTIgNDliMjQ5MjJlYjJkZGY1N2Y5MzMyMWZhNTcxNDQ5ODBhMzI1ZGE3MiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzUzIDY3NGIyMDAwMjI0Y2M4OWU3Y2JjMWFlNGQxMGVkNTg5MjYzMmIzMjkgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTM1NCAzMTU4MjQ4NWZiZmNkMTUzNDcxZjBkODkyZDlmZmFkMmMzNTUwMzczIHB5M2sKKzcxMzU1IDE1MzkxN2MwMDFiZWZhZmQyNmFkMzdlYzI1MTE5YTcwN2UxMTk4YjAgcHkzaworNzEzNTYgZjkyNTMzOTI1ZWE2NjI3MDVhYmEwYjA3YmQ2NTMyYzA4MTdmNDMwYSBweTNrCis3MTM1NyA5NDgzMjQ1NWUzN2Q1OTBjY2FkNzg0MDE5ZGJlODFhNmMyNDQ0YjM4IHB5M2sKKzcxMzU4IDc1ZGVmN2VkOWQ1ZmM2M2Y5MDVhYmIyZGQ4MDM5YTdhYmM0YjU3ODcgcmVsZWFzZTI2LW1haW50Cis3MTM1OSBjMzljMWMyOTc4Zjk0ZjViNGY4NDJjOTZhYTQ1MzhlMTE0MjM1OWVlIHJlbGVhc2UzMC1tYWludAorNzEzNjAgMmIwODMxNDZhY2Y1YzI2Njg4NDZkNTZmN2E0YWJmZjMyZjAzOWIxNyByZWxlYXNlMzAtbWFpbnQKKzcxMzYxIGI1MGYxMWI4Y2FkN2Y0MWVhZWNkZTEzNDkxNDRhMDRkNDI0ODk0ODkgbGVnYWN5LXRydW5rCis3MTM2MiA5MGQzMjM4MWEzNDBmYmU0MjVjZTBkNzE5YmZjNGQyOTIyZWI5YmU0IHJlbGVhc2UyNi1tYWludAorNzEzNjMgMDFmMWFlODM2MzFhZTgyYmQ4NTk4YTExYzE3ZTNmOWIzZjU2YzM4YSByZWxlYXNlMjYtbWFpbnQKKzcxMzY0IDI3NWMwYmE3NDg1ODllOGE2N2YxZDZhMWEyYjI3NWEzNmJhMzNlM2YgcmVsZWFzZTI2LW1haW50Cis3MTM2NSA1ZThjM2U3NDUxZmZiNzljZTExOGZjMjk3ZDg2ZWMzZGMwMTBjZjk5IGxlZ2FjeS10cnVuaworNzEzNjYgOWFiNTI0MTcwZjY4MmYzMzJiYTBiYmE4MTU2NWE4MmExZTgwMWFkOCByZWxlYXNlMjYtbWFpbnQKKzcxMzY3IGZjZTNhZDRiMjNkNjBjMzVlZmZkNWJhYmU5ZmMyZDRhN2ZjZTc1OTAgbGVnYWN5LXRydW5rCis3MTM2OCA1Y2UyM2NmYjk4YzdmNWZiZGY2MjA3MDc2ZWRlNmIxYzEzZGU2N2QxIHB5M2sKKzcxMzY5IGM4NDIwMTE4OTM4NzNlYWYwYjg3Nzc4MmQ0NDg1MTkxZjc0MjUxNTYgcmVsZWFzZTMwLW1haW50Cis3MTM3MCBlMjMyNTJhOGZmNTkyNmZjZmMxZGVmODc5NDlkY2RlNmVhNDE1OGU0IGxlZ2FjeS10cnVuaworNzEzNzEgNWE0OTQ2MjNjZjNhODE0YjllMmUwYmI3NjY4MzViNGFlYjNkODQyNSByZWxlYXNlMjYtbWFpbnQKKzcxMzcyIDZjNDZkNmRiMmZkNmE5ZmIxYjU3ODBkMzQ3MzI3Y2U0MWZjMTdjYmEgcHkzaworNzEzNzMgZDE2Y2FkYTk2MzcwMTkwNzM4MDUxZmM1NzMyYmY5M2NhYTIxYmJlZiByZWxlYXNlMjYtbWFpbnQKKzcxMzc0IGJhM2E5ZWJjZTgxZTdjMmNhYWYyYWJmZTYxMWI3Yzk5ZjBkNDVjMzIgcHkzaworNzEzNzUgMzc5OTcwMzA5NDc1NTY0ZjlhNmQ4OTMxYWVlN2Y5MGU2YjUxNTcwNSByZWxlYXNlMzAtbWFpbnQKKzcxMzc2IGJjNzliZWY1NWFhODA2ZTgzMTU0ZDY0OWEyMmRmODFkMDBiMGU5ODAgcHkzaworNzEzNzcgNDFlNzIwMmU5ZjkzMDQ2ZGZkNTNmYjNjYmRhNzU3ZGE2YmQ2OTdkYyBsZWdhY3ktdHJ1bmsKKzcxMzc4IDI0OGFkZmNiYjcxNTQ0YzZhNTczNTBmZTc4YTZjYzFmZWE1N2QwYzYgcHkzaworNzEzNzkgZGIxOGU3OGI5MmQ4NmEwMzFmMGJiMGNmMTkwYjg4Zjk4NmFjODEyZSBweTNrCis3MTM4MCAwYTFjZGExZTdjMWM3OTY4NzMxY2NmYmQyMTg5ZjAzZDFlZjI4OGUyIGxlZ2FjeS10cnVuaworNzEzODEgZDA0NDkwYmVlMmVkNDhkMmI5ZGI2Nzk5Yzg0MjU4ZDAyYzAxZTFmYSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxMzgyIDA5MTcwNmUxNDA1NjA3YTc2MzNjODcxNzBmODgwMTllOTRmZTRmNTcgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTM4MyBhZTVmNTE1NmI4ODI2NmFkZTRhYTgzODg0ZDQ5MDRiZDJmYzBkNTE2IHB5M2sKKzcxMzg0IGY3MTA1NTUwNTNiZjJmOGY2MmUwMzYwNWNiZTA4MjBhYTgxMTlmYzYgcHkzaworNzEzODUgMTA5OTQxMDE1NzAzMzA3NGI3ZWJhYjllNWE4NDAwMjNhNzc3NzlkNyBsZWdhY3ktdHJ1bmsKKzcxMzg2IDI1MWVmOTlkZmI0YzQwMWE4NGU4OTBjOTkwY2QyMDFiZmRjM2E0ODkgcHkzaworNzEzODcgNzRkOWY3NWQ5ZGMxZmNmZDBmNDRmZGRkYzc1ODQ2MDc0YjZhYTJkYSBweTNrCis3MTM4OCAxOWY3ZDNhYmU3Y2RlMjdmZmExNDYyYjk4NTIyOTc3YWIyNDA4ODRkIHB5M2sKKzcxMzg5IGRmMGVkOWViNzljMzY1NDVmMWNmMTMyYjEyYzAxZGQyNTZiY2U0NzUgbGVnYWN5LXRydW5rCis3MTM5MCBmZDE4MGJmNDcyMjdmZDZhNmUzNDViNGZhYWNiYTQ1ZTEyZDdjMjRlIHB5M2sKKzcxMzkxIGE5OGM1MDkwODRlYjM1NjJjYzY2Y2ZiZDYzZmU4MjVhZWE0ODVhN2MgcHkzaworNzEzOTIgN2I4OTYyZjY1OTE4YjNlNDk1OTdjMjM3NmI0Y2JmMzE2MjI4ZjI3NCBsZWdhY3ktdHJ1bmsKKzcxMzkzIDYxZTM3ZWZmYWUzYWVhZjMwZTg3ODQ2MTU0ZDE4YzViNWZkMWM5OTYgcHkzaworNzEzOTQgZmQxNmU1NzkwOTZlM2EzOTBmZGZmYTAxZDYwNzYxODUzN2MzMDBiMiBweTNrCis3MTM5NSAwYmMwNTI0ZDE3Y2ViYzIyMWE5MDljNWYzNjc0MDA3YmZkZmJkMDJmIGxlZ2FjeS10cnVuaworNzEzOTYgMDIyMjRjYjIxZDdjYjk1ZWI0NTFjMzMyNWNkZWI2M2M4ZmRhNjRmNiBsZWdhY3ktdHJ1bmsKKzcxMzk3IGIxNDA0YTg2OGQ4ZjQ4ZWQ1N2ViYzU5NzgyYWE1YTQxYmQ1Zjk3NzQgbGVnYWN5LXRydW5rCis3MTM5OCA1YThlYmFiYTFhMDllZmRmZTY0MzJkZGM4ZmM3MjUxN2Q5MDgxYWJjIGxlZ2FjeS10cnVuaworNzEzOTkgYWZmMmIxNWNjYzY4NDlhZDFjNjM2ZGEwMTNmZmI4ODU1MTgzZTI5ZCBweTNrCis3MTQwMCA2N2Q5ZDYxNjBjMTM0Y2RkOGZkOGVkNzJjMWNmZmJlZTg0OWQ5ZTEwIHB5M2sKKzcxNDAxIGQzNWM2NDg2YWQ5NGE2ODU5NjAzNzc2ZmU2ZmMzNThjNDIxMTJjZWUgcHkzaworNzE0MDIgNjNiNTc1MTNiMWJkZDQwMTIwYTMzNDlhZjM3ZWJiNWY5YTJiYzcxMCBweTNrCis3MTQwMyBkOTA4OGVmZDU1OGJkMGIzNThkYjE3Y2Y1OWVhZDk3NWU0NzdiNzQ5IHB5M2sKKzcxNDA0IDE4MDUzY2Y2MTE1YTUyYTc3MDA0YjUxNThkNTExMDhkODkyZjNjNjkgcHkzaworNzE0MDUgYzIzMzY5NTdjNTM1NGRjMGIyMzg2MGZlNTFjMzViODI0MGIzMWQxMCBsZWdhY3ktdHJ1bmsKKzcxNDA2IDMwODY0MjdiMDcwOTIyZGM0YWZmOWFlYTA2ODdkYzVkY2JkNjM3ZjIgbGVnYWN5LXRydW5rCis3MTQwNyAxY2M5NDk5N2NmYTdlZGM1ZmE5OTE0NThmODFhNDgxMDBiMjc5YWYxIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE0MDggOWE3MzE3Y2U2ZGI5OTRhYWUyMGFiZWE4ZTZjYTg1YTkzZWI3Mjc1MSBsZWdhY3ktdHJ1bmsKKzcxNDA5IDUzNjc2MWMyYjZhNGEyMGQ1NDc5M2FlMTUwMzI2YzBmMmE3YTJhNTMgbGVnYWN5LXRydW5rCis3MTQxMyA0MGVmZjNiMTgyZTRkMmZmOTFiYzMwZmJkNDE5NWM4ODYwMjYyNWUwIGxlZ2FjeS10cnVuaworNzE0MTQgZGZhOTFkZmVkMGIwNTQ5NmMyMTZkMzgyMGMwZTJhZTMwYjQ0NmY4MSBsZWdhY3ktdHJ1bmsKKzcxNDE1IGE3ODhmYWNlZTZlZjRkNzgzN2QwMmQwYmFkNzdmNWRhYWU2NjkzZTIgcHkzaworNzE0MTYgNWFkMjA0MzEyYmNjMzA2YjQ4MTJkYTlmNTg3ZTM3NjgxZDIyYjA4NCBweTNrCis3MTQxNyAyYmEzM2MzNGRjMWE3OTY0NmE3MjZkNjNiMTEzODYwMjEyNTJlMTYzIHJlbGVhc2UzMC1tYWludAorNzE0MTggMDdjM2FjMzBkYTg3MDQ0MTliZDU2YTBmYTMwNWU1OGRkNzI1NmFkZSByZWxlYXNlMjYtbWFpbnQKKzcxNDE5IGFkZTVjMjcxOThkYmVmMGM5NjI5MmE3MDU3ZjZmYWI5NDc1OGE3YTcgbGVnYWN5LXRydW5rCis3MTQyMCBiYzk0YjgzMjNiMzliMjliZDM3NTM2NWViMjViNzg5Yjg2NGRhNGNiIHB5M2sKKzcxNDIxIGY3MGIzYjVmNTM4MGNlNTQ1ODQ5ZGU1YWZiMDQ3ZTEyMjRjNGJkMzYgcHkzaworNzE0MjIgNzllNTdjODY2YjVmNGUyZmMxZGU4MGM0NWE3ZmFhMGNmYzk4ZjJkNyByZWxlYXNlMjYtbWFpbnQKKzcxNDIzIGI0YjI1MTFlMDNjNzUzMGE5YTM0ZDUwNTU2NjUwZGZlNzIzZmU0MWUgcmVsZWFzZTMwLW1haW50Cis3MTQyNCBkMzYxMGUzMzkyY2Y0OWEzNWIyNDE3ZTdmNzhiZjBmNTBmYzJlYWI2IGxlZ2FjeS10cnVuaworNzE0MjUgMDk1MDNjZTY2ZmYxMjNhY2YwMmU3MzI5MzQ3NzBmN2JmNWRiNGY5NCBsZWdhY3ktdHJ1bmsKKzcxNDI4IDhhNDU2M2QzYjVlODg5NWI5OGNiMWQ3ODRkY2ViMmY1ZWVhNDUwNWUgbGVnYWN5LXRydW5rCis3MTQyOSBhMjFjODQ4YWQ2MWVjNDQ4Njk0ODc2NWZlODc3NmUwOWVhNmFlZmM2IGxlZ2FjeS10cnVuaworNzE0MzAgNDBlYjk5ZTg5MzVjNjRkZTRmN2Q1OTA3OWY1N2M4NDA1MTBhNjZhZCBsZWdhY3ktdHJ1bmsKKzcxNDMxIGE2ZmYxN2E0MmFkMzFjN2E5N2Y1N2YwMDRmM2MyNWI4MjljYzIyMDggcHkzaworNzE0MzIgMTA2MzQ4MWEzNmY4YTJhMmEyYTQ1ZDE0YTk0MTUxMjJiOGY1MGYyNSByZWxlYXNlMjYtbWFpbnQKKzcxNDMzIGE0YmM4MGY1ZDZhMGY2YmNjNTE5YmYyYmUwZGYwODExYzVhY2VhMjggcmVsZWFzZTMwLW1haW50Cis3MTQzNCBjYmFhMWJjMzUwYmEyMDU5OGJlZDNjOWFkYzM5MWJhMmUwYzIyZDJhIHB5M2sKKzcxNDM1IDVmMzVjNTNhM2FkN2I4ZTEwZWYxZDNhODFlN2MzODlhNDdiMzhjZjIgbGVnYWN5LXRydW5rCis3MTQzNiBmOTY4OWQxNTBiYjlmZDgyYzMzMjE2YjYzYjg0NjY1YzI5ODJkMGY3IHB5M2sKKzcxNDM3IDBiOWU2ODk3MWExZTJmOTIwYTA5NTc4OGI4NGRjNTgyYTYyYWRkOGUgcHkzaworNzE0MzggOWVhOTU3NGRhYTViZjY5NGNhNTc3MTQ2NTdhYmZjNDY5ZDExNDU4MiByZWxlYXNlMzAtbWFpbnQKKzcxNDM5IDRhN2RiNDEyZmRkMmFmOGUyZjAxOWFmNTBhNmMzY2IxOWZmZTkwMTkgcmVsZWFzZTI2LW1haW50Cis3MTQ0MCBhYTliMGE2ZDdhZGRkNmExMTA1NzllNTRmYWRmOTliNzVjMDZiNzczIHJlbGVhc2UyNi1tYWludAorNzE0NDEgMDg5YzcyMTA3ZDdiMWM2MTI1MmE4MzAxMmMzMDk0YjBmMGE4MTFkZSBsZWdhY3ktdHJ1bmsKKzcxNDQyIDkxNjk0M2NmNTI0MzZmNzc0M2NlMzkwMDQ4YmNiMGEyNGRjMTVlM2MgcHkzaworNzE0NDMgZGJiOWI3MTc2ZWVmMGM2ZTA2NTU1YWFmZWFmYmEzMGZiZGVhMTc0ZCBsZWdhY3ktdHJ1bmsKKzcxNDQ0IDlkOTJlZWJiN2MzMDUwM2RjMDA2Yjc5ODRlYmEyM2IwODY3NmU0ZDggcHkzaworNzE0NDUgYjYxNGE1MWY0NDIzNmE2ZjhhZGZmMDk3MDZmZDUxMDFmMzE2ZTIzYSBweTNrCis3MTQ0NiA2YmY0MjZlNTUxZDU3MmUwYzJjZTUxZmE5Y2YyYWI5OTQxOWZmMDg0IHB5M2sKKzcxNDQ3IDAzMjc1MDRhNGY2YTFhZTQ3NDEwMzE4YzQ4NjE5YmE0Yzc4NDUwN2QgcmVsZWFzZTI2LW1haW50Cis3MTQ0OCA0Y2RkZWYxNDQ0MjgyNDRjZjBmOGUwZTJjZTRjZjQ2ZmM2ODcwOWI0IGxlZ2FjeS10cnVuaworNzE0NDkgMzIzNjZiM2UwY2E5OTA3MjUyNjc5ZGE3Njk3NTE5NGMzZjhmMmJiOCByZWxlYXNlMjYtbWFpbnQKKzcxNDUwIDBjMTFjMzQxOGQ4OWQ0ODZkM2VkMTk4YzgwZTI5MDY3NjA2NDMzYjQgcmVsZWFzZTI2LW1haW50Cis3MTQ1MSA5YTg5OTk5NzczNjM5OTRlM2E5ODY4ZDM0YWIxMzI4NjFlZGVhYTUzIHB5M2sKKzcxNDUyIGI5MTI1MTVmZTljZTIyZWE3YWI5MGNmOWQ4N2I1ZjkwZDY3MmU3NjAgcmVsZWFzZTMwLW1haW50Cis3MTQ1MyAyNzk3ZTVlNjAwOGYwZmU0YmFjMjNhZGU3YjZjNGZlNmVlODE0MGQyIHJlbGVhc2UzMC1tYWludAorNzE0NTQgMTVkNjA3NWMwODViMWUwM2IyODNmMDc3ZDg3NTZkODUzMjMzYmI4MCBweTNrCis3MTQ1NSBjOTUwMjZjMmYyYmEwYzNlMWUwZDY1NmRiMDdjYTIyZDYwNzU5MmI0IHJlbGVhc2UzMC1tYWludAorNzE0NTYgZjBmNjA4OTJjYmExYzkzODAyYzcxNTA1ZjEwNGIwZTQyNTU0ODhjMyByZWxlYXNlMjYtbWFpbnQKKzcxNDU3IDA2YjY0MTc4YTMwZDBmY2IwODY0Y2FlNGRkZGY1ZmE2MjM0OTdmNzIgcHkzaworNzE0NTggMGJlNjNjNzUwNDFhZGY3YzQ2NDc1NDE5ZjU4MzAxYmQxZjYyNjAzZiByZWxlYXNlMzAtbWFpbnQKKzcxNDU5IDFhOGJkZTE4ZDM1MzUzOTkzZGY3YTJhNWNiNWNlZmQzNGQ4ZGVjNzUgcmVsZWFzZTI2LW1haW50Cis3MTQ2MCA3OGE5NzM5ZGFmYTQxM2ZjMjNjYjhlM2RmNTQyYjY0ZWUzOWFkYzdmIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE0NjEgZjcyNDk3NGI4ZDg5YjMzNWE5NGI0NmM4N2ZjZTgyM2RiMDMyM2ZkNyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNDYyIDdlMjI5Y2EwYjkyYTVlODYyYjQ2NzA3MjY1YmIxYWEyMWFlNTc3Y2MgbGVnYWN5LXRydW5rCis3MTQ2MyBkOTM5MjBhMjVkYTRjOGM2YzJlNTc1Y2M5ODFmOWYzNTAzNmIxYWI1IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE0NjQgOGYxM2E0MTRkODQzMjk1OGU1ZDcxNmIzMTI5MjRiN2FiYjc1Yjg4OSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNDY1IGZiNDFmZTY3ZTA2MWEyOWM0NDgwOWVlZTdlNjg3Y2NlNmRmODlkZmUgbGVnYWN5LXRydW5rCis3MTQ2NiAxYzUyYjE0NTRmMWUyMDJmYWExY2ZkY2E4MWVjMmZlN2UzZmY1M2M2IHJlbGVhc2UyNi1tYWludAorNzE0NjcgNDQxMTIyNGNiODA2ODhiNDFiZWY3ZjA1MjVjOGI2M2YzZjY1ZDY1YiBsZWdhY3ktdHJ1bmsKKzcxNDY4IDJhMDNjZDA0ZDhmNDA4NjFiMjBjNmNjNzJmYWI3Mjg5Y2Q0MjkxNjAgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTQ2OSBmNjUyZmUxNjQ5ZWQ4ZjM4NWJiNDY2Nzc1MjBjNmNiODMyOTU2ZWYyIHB5M2sKKzcxNDcwIGYzOWQzMzc1MjU4MjE1NWM2Y2E3MWFlMjNiMWUxNDQyOWRjY2YzZmQgcmVsZWFzZTI2LW1haW50Cis3MTQ3MSA4YjJjZGZkNWFhYjZmYzMzZTBhMGE0NjgyMjE1ZWQzMWQzNjUyMzQ3IHB5M2sKKzcxNDcyIGVmMzU5MmU5ZTAxZTVkNTlmZWU2MGUyYzNkOTg1OTk2M2FlMmNlOTkgcmVsZWFzZTMwLW1haW50Cis3MTQ3MyBlYzIzOWNmYTNlNjE3ODU4MDRlZTQ2NDU4NTkzYmYxZmUwZjg0NTQxIGxlZ2FjeS10cnVuaworNzE0NzQgYmYyZWVkODY1YThhNGMzNTkyMGI2Njc2MDI4NDU5ZTA5MjgyM2MxMSByZWxlYXNlMjYtbWFpbnQKKzcxNDc1IDRhMzVjOGE1YmU0NmZlOWNjYTU2MmYyMDE3NGZkZmI5NjEwY2Q1YmIgcHkzaworNzE0NzYgMDAwM2I1YjRmMGMwMzQ5YzQ1NTUwNWZlYjkwZmQ5ODIyNWIxMzZhZiByZWxlYXNlMzAtbWFpbnQKKzcxNDc3IDYzMjg5YjgyYzg0OTAzMDEwYTgzMDk1MTdmZDc4N2VhZDY3YTA0ZWUgcmVsZWFzZTMwLW1haW50Cis3MTQ3OCA5MDM1NjliMTMyYzI0Nzg4MDVhZjA0MTE2MzViY2NiYjI1ZGVlOWQ4IGxlZ2FjeS10cnVuaworNzE0NzkgMmUzOGM2MTdmZDNlY2NlYmMxZWIzNDcyNWM3ZmJhYzkyODhhN2RlNyByZWxlYXNlMjYtbWFpbnQKKzcxNDgwIDM0NTVmZDc4NDY3ZTY1ODM3YjczYThkOGE1MDA2MWJkYjAxNzE4ZGMgcHkzaworNzE0ODEgMzczMjdkMTkxMmE4MTQ2ODYzMTgwYjQ4NDQ5OTc5MDQ3M2YwNjMzNyByZWxlYXNlMzAtbWFpbnQKKzcxNDgyIDUyODJjNjZkODk3MjViZDQ3NjViMzVmYmFmZjJkMWIwOTM0YWJkMjIgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTQ4MyAyZjljN2I5MGE3OTU4MGE4ZTRiMTRlN2MxYTlmZDYwOTRhYWFlYzU2IHB5M2sKKzcxNDg0IGYzNzZhM2NhMTdkMzdmOWEzMmE1YTY4Y2IyZmZlZjQ3ZmQwOGZiOTUgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTQ4NSAyZDM3MjA5ODg1ZTI3ZWI5ZDQ5N2VkM2U5YzM0ZWNjZGVlM2E3OTdmIGxlZ2FjeS10cnVuaworNzE0ODYgODg2MTI5ODU4NmMxMGYxYzViZTU5NDYwOWJiZTdhOTEwOTk3N2Y5OCBsZWdhY3ktdHJ1bmsKKzcxNDg3IGQwYjc0NDMwM2I4NGUzMjU0YmIwNTllNDg5YjA3MjMzNzQ1OWZlMzQgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTQ4OCBjOTQ5ZGRjNDk0ZWI4NjZhZWQ2ODI2Yzc0ODVkZGVmODFkMzA4YmU5IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE0ODkgMjk3MDUwYWI3YWNhNDc2OTY5NWEyZjNlZjJjZDQ2ZTdiMzVlNjU3NCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNDkwIGYzNDI4MWRiNDdlNjFhYmJhOWRhMzM5YzZkYjE1MmU3MDZkN2QzMzggbGVnYWN5LXRydW5rCis3MTQ5MSAzNjI5OTgyODY2MzVkMDRmYTdmM2ZmNWE5MTA5N2FlNWI2YmQ0M2JiIHB5M2sKKzcxNDkyIDRhZjMxMTQwZGUyOWRhYWZhNGU5MTFhOWQ0ODBjZTNiZmFkZmNiMDkgbGVnYWN5LXRydW5rCis3MTQ5MyAxOTg5MzQ5Mzc5YjVhYzVkN2MzNTlmNjkwN2Q4NWQwYmMxNmE4ZmFiIHB5M2sKKzcxNDk0IGQ1ZGRkMzQyMWM5YWU2OGM0YjIzMTQ5M2NmMTdmMzQyMjJlMmQwMzEgbGVnYWN5LXRydW5rCis3MTQ5NSA3ZTk3OGNhNDI5MzBhOTA2YjBjY2JmM2MyMzdkNzhkNmU2MzgxNGVlIHB5M2sKKzcxNDk2IDNiMWI2MTQyNjkwYWEzYjMzZDViMGUyMmY1NDU2OWIzYzdmMTRlNDEgcHkzaworNzE0OTcgMDM3ZjVmN2U3YWIxZTZkYTA2ZjMzYmUyZjgyMDlhZmMzMjY1ZTI3ZiBweTNrCis3MTQ5OCBmZTVkMDdiZWI1ZDM3Zjg3N2Q3NGJiMWU0N2QyMDczMzk5MzNjNWZiIGxlZ2FjeS10cnVuaworNzE0OTkgYmI4MTY0ZGIxYmRhNjdmNmM0YzRiYzM3YzIxZTNmODhhODllYTJlNiByZWxlYXNlMjYtbWFpbnQKKzcxNTAwIDQ4NDg1NjA0ZWQ0ODdiMWRkNDNhZDAzMDgyNTc2Y2U1YTM1MmE5N2UgcHkzaworNzE1MDEgY2FkZjk1NWJjMThiZDE1ZTI4NTk3Y2FmNzljNjA2NDJkY2M3YzY5MiBweTNrCis3MTUwMiBmMjIxZmNlM2Q2YmEzOGNmZDhjODhmMDQyNjhlOGE0NmJhZTFkN2NiIHB5M2sKKzcxNTAzIDAyMWQ4YzgyZjI4NDQ3ZmU0NzhkNDIxMDg1MWYzMDNiOTg2ZmUxYjIgbGVnYWN5LXRydW5rCis3MTUwNCA5M2Q0Zjk4MjYxNWYyNjRlMGRmOTYzMTRlNTU0YjE1MTFmNjBmMzFhIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE1MDUgZDIzZTg0ZTQxOGNlOGQ3M2ExMWExODNlZGJmOWQxMGNjZmNmYjMyMSBweTNrCis3MTUwNiA0ZTA4YjE4ZTM4ZmJlMTRmZDM0YjFkZjhlNTgwMWNmNGRiNTc5Mjc3IHB5M2sKKzcxNTA3IGFkM2YzZDMwNDk2M2NkZmIyMjhkMWRmYzcyMWE1YTBmZDQwNjZiYzYgbGVnYWN5LXRydW5rCis3MTUwOCAyMWVmNDc1OGNhY2Q0MzBmYWU4YTIwZTU0NWU5NjJmMWNmYmZlYzZkIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE1MDkgYTgyNDQzMTI1MmUwZjI2MWQ1MjM5MWE0ODAyMWIwMDc1YTMzNTEwYiBsZWdhY3ktdHJ1bmsKKzcxNTEwIDI5M2RjNWYwOGU5OTBlM2QzNjViOWUyNTE2OGVhM2Y3ZDg4YTA0OTUgcmVsZWFzZTI2LW1haW50Cis3MTUxMSBlMDcyM2NjZWU3NGRmMTFkYjc5NjdjOGVhNWJkMmU2NTFhODkyMWE4IHB5M2sKKzcxNTEyIGE0OGZjZWIwZjBiM2ZmZDBiZmI5ZWRhOGQ1ZjM3N2Y1N2MyMTAxYTggcmVsZWFzZTMwLW1haW50Cis3MTUxMyA3NTRhM2Y3M2ZmMDdmYTU2ZGVmMzBlOTVlZWJkZDk3YjljZmJkMmE5IGxlZ2FjeS10cnVuaworNzE1MTQgM2IyNTkxMWM2YTRlYTZhOGUwNmFlNmFmMzZlOTA3ZGNhMDAyMmNlZiByZWxlYXNlMjYtbWFpbnQKKzcxNTE1IDE2ODQ4MmVhZmI1NjFkYjg3OTc0NWVlOWI0ZTk5NzU1YzJlYmNmNjAgcHkzaworNzE1MTYgZTJiOWIyYmM3MGIwZWNmZjBiMjY5ZGIyOTBlYjNhNGNkODA1OTkzOSByZWxlYXNlMzAtbWFpbnQKKzcxNTE3IDcxM2VmNjhlN2ZmZDAwYTUyNmVlNzBmYjA0MGRlNjI2ZTY4MThhZWUgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTUxOCA0Y2ExNDcxYmQxY2QzNjg2MDk5NTMyZDUxMWM3ZjI1YjE2ZTVkNDYzIHB5M2sKKzcxNTE5IGY0ZDU1M2VjOWRkYzk3ZTcyMzM5ODI3YmQxODcyNmY3YzRkOGU4ODAgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTUyMCBkN2M1N2UxNmI3M2M1ZjNkZmZmNjNlYTg4NzQ5YzFkOGRhMTcyYmEyIHB5M2sKKzcxNTIxIDQ0MDdlNGQwNzA4NDIxZGU4M2E2ZjBiNDZhNTBjODdjMjcxYjU2Y2UgcHkzaworNzE1MjIgMWNiM2JjY2U4MzE2N2NkZDJlYTBiZDExYjY4NTE3MGMyZTcxZWIwYyByZWxlYXNlMzAtbWFpbnQKKzcxNTIzIDI2MDY5ZDNiNjg5MTlhZGQ5NTExOTQzZGM2M2E3YzRjYmNlN2IyNmUgbGVnYWN5LXRydW5rCis3MTUyNCA0NjE2N2FkM2FiOTNmYTg0NzA1MDVhZGYxMWMzMmIzMmI2YmExMjgyIHJlbGVhc2UyNi1tYWludAorNzE1MjUgYzkxNmY4NTRmYWViMmI4NWUzYmZmOGRiOTExZmMzZTNmYmE5OGM3ZCBweTNrCis3MTUyNiA4ODY3YTViNjBhOTEzMzQ2YTlhYjkwYWExNDRlMjk1ODU1OTJjMGMxIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE1MjcgNjUwNmNjMzNlYmFkYzE5NGJhODdmOWNkZTRmZmM0ZWUzYTExZWExNCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNTI4IDUzNmYxODBmNjZhNzc2MWM1NWZlODU3Mjk1NGI5MDk3MThkNGExMGEgbGVnYWN5LXRydW5rCis3MTUyOSAxNDA5MjhjNmNmNTFmMDEzZjgwYTg2YjY5NmZmNzBhYmI4NDIwYzZkIHJlbGVhc2UyNi1tYWludAorNzE1MzAgOGM4MmI3YzUxYmRkZTMwYTVhZjRjNGQwMDVlMWRiOTJmY2EwMDkxYiBweTNrCis3MTUzMSA0MjcyOWVkZGJiNmMwYjAzMmU5ZmJkZWIxNjJhYWM2ZjczYjY1OGFlIHJlbGVhc2UzMC1tYWludAorNzE1MzIgZDBhNzNjZjQ2MTgwZDQxMmE3NTQ1NzZjMGJiMWZjZDFjMDM4OWRiMSByZWxlYXNlMzAtbWFpbnQKKzcxNTMzIDA5ODg4NWM2YjEwMWQwODU3OGFmZWVhZjI0MzA4YWJjMmM4MzdiNWUgbGVnYWN5LXRydW5rCis3MTUzNCBiYmI2M2M3MWE5ODMxOTE0MzQxNjA1NTZlZTcyZmY4MWYzOTUzZDgwIHJlbGVhc2UyNi1tYWludAorNzE1MzUgOTNhMmQ4MGNkMzRkMDM4MDE0ZDJhN2JmZTMwZmFkMzg0ODhhYzMwZCBweTNrCis3MTUzNiA2NmRhNTE0ZTNmYTM5NTI5MDBhOWZiODk2ZDY0YWQ2ZmFhNjQ0MTg1IHJlbGVhc2UzMC1tYWludAorNzE1MzcgYTI0OTJiNGU1MDVkZjNmYzMzN2FkMjVmZjY4YzkyODc4MzI3NmM1YyBsZWdhY3ktdHJ1bmsKKzcxNTM4IDgzMjI4YmJlNTkwNjc4ODE0ZTRlNDRmZjI0MTM1NGY5NjAyODc4N2YgcmVsZWFzZTI2LW1haW50Cis3MTUzOSA3ZTMxOWVlZmFiOGM4ZWY4NGU1NGQyNGU5MDc4NmJjYTFlMGExMWY5IGxlZ2FjeS10cnVuaworNzE1NDAgNDgwZjdlYzNiODY5NjA4ZmZkYjg4MjJjZGNjZWU1YTJiNWNhMzk1ZCBsZWdhY3ktdHJ1bmsKKzcxNTQxIDJlZWM1N2FiYzUyMzhmMzk3YjJlN2Y3M2ZhZTM4ZTM4ZDM5ZDE3YTggcHkzaworNzE1NDIgZTllMmFlM2JmYmMxNDA0MzMwYzFjNDUzMjk4NjZiZmYxNTkzNDdmOCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNTQzIDhiYzRiYzg3Yzg4NTllNTg5MTdkMzc5OGIwNDY5NTU4Njc4YWRmMGMgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTU0NCBhZTc0MTQyMDg5ZDJiYmZmMjY5M2U0YjBiZTVkZDBiMjE1MzY1Nzg1IGxlZ2FjeS10cnVuaworNzE1NDUgZGEwZjdmYzc4N2Q4MjZkOGNkZjdmYzIzZjc2MmQ0N2FlZDU2N2U0YiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNTQ2IGJjNWM1ZDdhMmExNDc5YTA1NzZkMzc5ODg5OTI2Y2ZhZjRjYWMxMDEgbGVnYWN5LXRydW5rCis3MTU0NyA3ZDQ0OTk3MTFhN2Q1YWRiMmMzOTY3ZTA1M2ZiMmMyOTIzZmNiYmIwIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE1NDggNjIyYWJmNmFjOTdmYWIzOTBkMzJhMzE4OTkxYTJiMTllYjQ1MzgzZCBsZWdhY3ktdHJ1bmsKKzcxNTQ5IDEyYThkMTk0NzE2NzkxNGFkMDM5YjRlMWY0MDhlMTBhMjVkYzYxNWIgcmVsZWFzZTI2LW1haW50Cis3MTU1MCA1NDcyNzg5NjUxZTE2MTEwMjI4ZWU2MWRjY2Q5Y2QwZTk0MGQxYTVhIHB5M2sKKzcxNTUxIGM3NDBmZWZhZTFiYWIwZTkxZDFmMGJiZTU3MjMyNDRjNjdjY2RkN2EgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTU1MiA0NjA3ZjU0ZTc2OTM2Yjg3ZGFjNzg4YjRjN2JlZjhiMTkwOTMyYjZkIHJlbGVhc2UzMC1tYWludAorNzE1NTMgYWI3NWRhMjY2ZTU3YzU1ZTc3NzAyNGZiYjg0YTZhMzAwOGRjNDgzNSBsZWdhY3ktdHJ1bmsKKzcxNTU0IDM3NzA2NTJlYjBlNTA5OGJmMWM0MjYwNDExOTEwYzRjOTNlYjUzMjEgbGVnYWN5LXRydW5rCis3MTU1NSA5ZTNjOTc2ZGE1ZjQwNTI3ZDM5ZTcxNGQyMWNlY2I3ZWNlMmMyZGExIGxlZ2FjeS10cnVuaworNzE1NTYgNWVmMThmMGY0MzEwOTFkMDVjMmI0YjI2MWUwOWExODA1OWQ4NWZlMCBweTNrCis3MTU1NyA2ZjhmYzZiMTY3ZWE4YjAxMDgxNDg1OTQzMzhiNjc2NDliMDk0YWYyIHJlbGVhc2UzMC1tYWludAorNzE1NTggZTQ5Y2Q0ZjQ3Zjc2MjBiMDI3ZTk2YmMyODAyYTY2OGIwNjc1N2ZiMiByZWxlYXNlMjYtbWFpbnQKKzcxNTU5IDk1MTMyY2MyMmVlNWFiN2I4ZGFlYzYxNjJlYjMyZDgyNjMyZDMwODcgcHkzaworNzE1NjAgZmJjMzdmYmQ5NDE1ZmY1ZDQ0ZTcyYzVmMTFmNThjMTRkOGVkNTQxMyBsZWdhY3ktdHJ1bmsKKzcxNTYyIDBlNDY5ZGE2N2Q2M2E1ZjQ4YjVmZTFmNGMwYzk2YTY1NGMxZmU2YWUgcmVsZWFzZTI2LW1haW50Cis3MTU2MyA5OTBmMjU3OWVhZmVjOTUwNWViMDMzYWIzMWI5ZjhiMzQzMTJjZTM4IGxlZ2FjeS10cnVuaworNzE1NjQgMWRjNTNlMGExNDdhNzA0MzZiZDk2MzZmNjFhY2U4ZTg2NGM2MjhmZCBsZWdhY3ktdHJ1bmsKKzcxNTY1IDUzMDk4ZjI3MGJiZGEwM2Y3MmViYTA4ZTY1NjdlZTNmNTE3NzlmNmYgcHkzaworNzE1NjYgOTNkMmJlZmNhMGE1NGZlZTc2YTk5MDc3MzUxNjkwYWU3ZDE4NTdjZSByZWxlYXNlMjYtbWFpbnQKKzcxNTY3IGFhYzcwYTNiYTI1MGYzYTQ2YTJjOTEyZDkwOGNmZjljYzRlM2VjNjQgcmVsZWFzZTMwLW1haW50Cis3MTU2OCA3NGE0YTI3ZWEyOTFjYjFmZTY5Y2VhZWEwMDYzYjZiNzMwNGFlZmY3IHB5M2sKKzcxNTY5IDhhMTczMDU3ZDkwMzFjNTJmOGUxNmQ4MjU1Zjc4YjYyNTJjZjdhOGIgbGVnYWN5LXRydW5rCis3MTU3MCAzYmE2NWVlNDFmZTdlYThkZmRkMzkzODUzY2Q5MzkyNDk4MWMyNzIwIHJlbGVhc2UyNi1tYWludAorNzE1NzEgOGVlZTk0Yzc0ZTljOTg3YzkyZTI3OGMwZjJiMGVlZGFmNmUwYTRlOSBweTNrCis3MTU3MiA1NmFjM2Q1MDk1MmM4NzdkMDFhMDVmMzc0NDFjYWZjZjk1MjA5YjgwIGxlZ2FjeS10cnVuaworNzE1NzMgNzc0ZjdiY2FkMjJjNjlmNjdkMzFlNTMwNTE5NTMzMTExOWIxYTI5ZSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNTc1IDlmZDY2YTIxYWJkMTk2N2QzZjA4NDE0ZDE5OWE2ODVjOWFhMDQwNGQgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTU3NiAyOGVhNTRhNmJiNjQ2MjU5ZWE2M2RmYWNlMzVmOTEyMWVjZGVmODU4IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE1NzcgYzY2ZDRlMzA2ZmI2ODUyMTI0Mjk3MTUyYTJjZGE3ZTMzZmJiMDRmMiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNTc4IGE0Y2M0NmNhYjZhNzQzMTJiYWNhNzIwOGQ3ZjQ4ZGNiNjU0OTg1MjYgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTU3OSBjOGZiMzk4ZWNhMjM3MzM2NDdkZGZjZTQwZTZhZjQ4ODRhYzJiYzhiIGxlZ2FjeS10cnVuaworNzE1ODAgNTdiOGRjNGE4ODg4ZmY5MTMzNmEzMzc2YWU5YWRjYzkzYTE5NWM4ZCBweTNrCis3MTU4MSBjY2YwZTY0MDk1MzZkOGMyYzg2YjZkMDUxMDgzMzFjNTA2OTJhOTdjIHB5M2sKKzcxNTgyIDU4Yjc0OTY3YTU0MjVjYjcxZDExZTQ2NjIxOGQxYjQxMGQ5YmM4NjggcmVsZWFzZTMwLW1haW50Cis3MTU4MyBjOTdlNDVlOTA1OTllNjVhODVlMDhmYjM0ODQ5OWQ4NDQ4MzYyMzgwIHJlbGVhc2UzMC1tYWludAorNzE1ODQgMTc3ZTEwNzMwNTJjODU5YmVlMTdlZDI1ZDQ0NTYzMDcwNzExOTgzOSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNTg1IDQ3MDM5NjVkYTJjZWE5ZmY4NDNjMjBmMTc1MWUzM2RjN2ZiYzRhZGUgbGVnYWN5LXRydW5rCis3MTU4NiBlMDlhNjcxYTU5MGI3YmE1ZTI3NjQ2NDA3OWYyYmZiYTNmNDE5YzQ2IHJlbGVhc2UyNi1tYWludAorNzE1ODcgZTAzYmE1ZjZmNDk0MDYwM2UwNzU5YWYzNmZlMTJkMTk4YTRmMzM1MiBweTNrCis3MTU4OCA4NWJjMjUzN2U4M2UzZDk2MjQ1Zjk2ZGJlNmJkNzFhN2Q3N2QzZTQzIHJlbGVhc2UzMC1tYWludAorNzE1ODkgN2JhYTY4ZDY2YzhmYzc5OTg0MzM1MGZkMDA4NGI1MzNlZWQzNjQwMCBsZWdhY3ktdHJ1bmsKKzcxNTkwIDcxZjQ4YWRhZDg5MjNlN2Q5ZTc5MWQ2YjM2ZGYxYzM1ZDZiMzdlM2UgcHkzaworNzE1OTEgNjA1MTM4MDg1NzdmMzIzOTRmMjk3ZThjYzJlYTNjN2NjNmQzNTkwYSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNTk1IDA5Njc2N2IxODQ1MDE4NjU4ZjRhM2ZkZDNlZjM0NjI2NTc3NTIzOTEgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTU5NiBlN2RiZmQwMjNmZjUyMWVlZjkzY2QzM2U2MTM0ZGI2OWYwNjM2MTQ2IHJlbGVhc2UzMC1tYWludAorNzE1OTcgNzk0NTI1ZWQ2NGZkNDIzYmM1Y2ExMzFlNzBiYTE0Y2E5MTBhYmE4NSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNTk4IGRhZDNkMmI5YTg3NTNmNDVmMTk2YjcwMDY0NGNmOWVmYzI2YmNkOGUgcHkzaworNzE1OTkgYzE3YzViYTliYjZjYzdiZjc2YTI1MzM0MGNkYWVkZmRhNGRiMDMzYSBweTNrCis3MTYwMCA0ZmViYTA5YTgyNmJhOTllNWI0ODI3MDdiM2Q5NjQzZWJhMzQxNTZmIHJlbGVhc2UyNi1tYWludAorNzE2MDEgNjk4ZmEwMjRlN2QyMzlmM2FkYjdhMDNmNzdlMzU3ODdlNmYwNDk5MyByZWxlYXNlMjYtbWFpbnQKKzcxNjAyIDZkOTVkOTc5M2ZjZjUwMDAyMDczOTQ1ZTRhZWIwZDNlZjE1MGZhNWUgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTYwMyAyZmQwODgzMGE5M2YxMzI4MTkwNTA1ZGQ4YzE5NjczNTMyZDUwYjdhIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE2MDQgNTQyODNiNGExNjU3ZmNmYjZmZDQ3YWQ0M2VkNzNkMDVmZDNkN2RiOSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNjA1IGFkM2FjY2RlMGVlN2E3YmM1ZTA4OTI3N2RkZTk3MThkODExZTY4NTQgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTYwNiAwYjdlNDE0MTgzNDMzMjY2YmU3ZTY5YmQzNjQ3MjlmNDUzMmFmOGFmIHB5M2sKKzcxNjA3IGZkN2YzNmVhZDBjODE3MGJmZWE2M2Q5ZjU3MDFlZmJjMWZmMmVkMTAgbGVnYWN5LXRydW5rCis3MTYwOCA5ZGY1ZGRjMTk4YTgwMGJlYTI0YTIwNmE5NmY3NDFlYTA0ZDIwMDZlIHB5M2sKKzcxNjExIDE2NzA0YjE1ZGYzZWJlN2Q1M2Q1ZGEwNjJlZDFiNDNlZTAwMjFhMDEgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTYxMiBjMjQzYjEwYWI3MzA1NTI1ZTUwZjg1MzFhMmM5YThkMWZiMWFmYTkyIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE2MTMgMjk3MjliOTA4YTgyMGRjYWMzMGY4YzBmMDY0NDI5OTVmYzU1MzBjZiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNjE0IGI4ZjQxZGI4ZjZhZGEwOGE1N2UxZjM3NzIyZGY4ODJhY2QwMTNlOTggcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTYxNSBhYmVmY2EyZmQ5MmUyMWQzYzM3NjVhNmQ3YTJhYThiOTY5OWIxNWVjIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE2MTYgYTc0ZTEwMTkxODU0ZDIxYTA2MTU4ZjM0NjY0MTRmMzYxYzJkZjIwYiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNjE4IDQwODc2MWNhM2Q5NjYzYjZlYWQ1OGQ3N2I5NGY5N2NkMDBkZWI5OTkgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTYxOSA2MTlkY2FjOGQzODkwOTY1YjQ0NzcyZGNmNzdhN2M1MjNjYjRkMThlIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE2MjAgMmNhMjA5ZjNhYWEyOTQxNTFiYjM3Y2U3ZmZjODUwNzgwZjVjOTk5NCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNjIxIDEyYmRiMzk3MmUyYTdhYTVjZmMyY2FkMzYyN2MyNjhiYjc0NzI2NTIgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTYyMiBkODgxYjA2ZGNhMzg4YWZiZWVkOTE4MTdmOWExNTU1Mzg4YWY4Y2I0IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE2MjMgNjczNDBmZDZhYzhhM2JhODg4NDFlZjM5ZWVkMDkzNTE0MDc1MzY2MiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNjI0IDJkNjExNmVlZjJiMzY3YjNmOTJiODc4ODkxODlkNzhiNmVhOGI3NWYgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTYyNSBjZTY3ZTc4M2E2ZWQyM2Q4NjM2MmY1OGQ0Njc5NDYzMzM1ZTQ0ZDkzIHJlbGVhc2UyNi1tYWludAorNzE2MjYgMDdkMjM5ZWVhYTYyZWY5MWI1OTRiYTU0Y2E5YWY0Zjc5MGM4NWNlMyBweTNrCis3MTYyNyA1YjEwOGViYmZjMDgzZTdmZDMxZjczMTYzNTk0Mjc4MTlkOGQ4YmQ5IGxlZ2FjeS10cnVuaworNzE2MjggNDQxOWUwNjIxOWNhYjg5MmNkNTY5MTAzNDNjMGYyZTY5MjQwYzM1NCBweTNrCis3MTYyOSBkZjI2MzhiOWJlZTJlZGMwZjYzNmY0ZTMxZTA1MzY5MDAxOTI0MzRhIHJlbGVhc2UzMC1tYWludAorNzE2MzAgNmJjZGMxMzFmNTNjYmUzMTA4NzYxMDhmOTk4NmM1NjU0ZDkxOGUwYSByZWxlYXNlMjYtbWFpbnQKKzcxNjMxIDQ2MjgyMTdiMDEzYzQwNGZmZjBmNmZiMjRkZWJiYzAxZDk2ZWVjNDIgbGVnYWN5LXRydW5rCis3MTYzMiA3YTY5ZmZjNGY0YWUzNjZjNWUyNTMwNjY5YWRlZjYyZjM1N2E4MjJkIHJlbGVhc2UyNi1tYWludAorNzE2MzMgMjBjZjdmOGE1NDA1MmZhMDJhMmM3ZWE5YmNkYmUxMDQxYTIyNzEzZCBweTNrCis3MTYzNCBmMzI1ZWRmZTBjM2FjYmMwYmI5ZmQzNDBhYTUwMGMwYmQxYjA3ZmZiIHJlbGVhc2UzMC1tYWludAorNzE2MzUgYzU0Yjc4NGE1NmQ1NWFkZGI5NGVjMmRmZjUwMmQ1NzE5NGEyMTFlNCByZWxlYXNlMjYtbWFpbnQKKzcxNjM2IDVmZjkwMzMyZjkxMGUzYjdkNmIyODA2OTYxMDgyMGU3YjE3MTRjN2UgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTYzNyBlZWJlNWY3ZGFmMWU3OGIwNDlmMzZhY2FjNzBlNTIzMDQzMjZjZWIxIHJlbGVhc2UyNi1tYWludAorNzE2MzggNDNlZjc0YmZjNTY5NjE5YTkyZTgxYzAwZTkxYTNkYmFiNDU3ZjEyZCBweTNrCis3MTYzOSBhYzkzYzNkOGUxOTIwNWI4N2Q4Yzc3YTY4NmUyMjQ2NzkwZGFhZmRjIHJlbGVhc2UyNi1tYWludAorNzE2NDAgNDhiNWZhZDljZTFiMjg0YmE3NWYyZTFkNjViODBkYzczMDY0ZmUyMyBsZWdhY3ktdHJ1bmsKKzcxNjQxIDc3ZjkwOWFjM2UxMDIyOTY4ZDYwNTFhZGZhNzRhM2Q4YWQzOTAyZjQgbGVnYWN5LXRydW5rCis3MTY0MiBkM2YwMjA0MDBmZjI3ZWZhMzNhZWM2ODJhOTk3NmY3ZGQwNTdhYjI1IHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE2NDMgYzUyNGJmZWU3MDNhZTUyYzhhNzQzMjA1ZTJiNjc0ZmRlNjI3ZGMyNSBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNjQ0IDNhMTFhMmFkOGY3YjgwOGU2MGM4NjhhM2M2ZDZiYjJlMmJlNWY0NGMgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTY0NSBhNjc5MGEzYjgwYzNhMjQwYjNjYTljYWUzMmRiYmE1MDZlZGQxZTRkIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE2NDYgY2U0ZjdmNDg5YmQzNjFhYzg5NjY0ZTlmNTk5NzFhOGI2N2M0YWRlMiBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNjQ3IDQ1MDBhZGMzMWJlM2I4YWVjMDVkM2ExMDUwYzFjMTkxNzZlMTRlYjYgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTY0OCBlZGViYzg5M2IwMmNlMGZiMjcxNDNiMTAxZGI0YzFlNGZmZDdlNzgzIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE2NDkgZGI3MzA0YmZiZjdkYzNjZjcwNjJkNjVkMjI2NWYyOTkxOTliMWVkNyBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNjUwIGEyOGFmNTVjNmU1OGYwMmE4ZGQxZGZkZmM3MzE2MmVhZmI1M2NhY2EgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTY1MSA1ZDQ3MjljNDcwMzM1OGQ0ZmRhNzY4MWI0NDIyZmYyMTk4YjQ4MmJmIGxlZ2FjeS10cnVuaworNzE2NTIgNzNiYjQ5NDUxOGRkNmQzOTA1YzgzNTY4YmExYjliZjNmYTg3NzE5NCBweTNrCis3MTY1MyAxZjVmOTkyODAxZjlmNjljMmFmOTA2YTljMmI5MmJhM2Y2NmMxNzU0IGxlZ2FjeS10cnVuaworNzE2NTQgOGY2NTM1NjcyOTFmMGJiYmEzZmIzN2UyNGE0ZGZlMGFjYzljYmU5NyByZWxlYXNlMzAtbWFpbnQKKzcxNjU1IGYwYTE2ZTFkZWVhMTNkODhiYmFlMThhZmY0ODM3Y2MxY2U3Y2YxZjkgcmVsZWFzZTI2LW1haW50Cis3MTY1NiA5NzViZTFlYjNlYmYzN2RiNWMxYzBhYTQzZDE5MTBhMjgyNjY0Zjg2IHB5M2sKKzcxNjU3IDczYmZjYjM5ODg4NjJhYjgzYmY1MDdkMTVmNzUyZjg5MjlmYTdkMGUgbGVnYWN5LXRydW5rCis3MTY1OCBjZjE5MGZmMmE3MmM0YzQ3NjJmZjc4MzYwNmIxNzRiODVlOWIwN2QxIHJlbGVhc2UyNi1tYWludAorNzE2NTkgYTYzYjQ2YWRlMmI3YjYxYzdkMDYxNTFjNzM3ZDRlODdjYTFmNDkxYSByZWxlYXNlMzAtbWFpbnQKKzcxNjYwIDkyZjdhNDYwZmY4MjhkZGFiZWU3ODAzMzlkNDE2YWQ5M2M3YTQ0NjcgcmVsZWFzZTI2LW1haW50Cis3MTY2MSBmMDIyMjhkMWY5MDgwYzJiZWY5ZmNkNWE3YmRlNzRlMTQyZDQ0M2FlIHJlbGVhc2UyNi1tYWludAorNzE2NjIgODlkZWI2YmM4MmU0YmY4NTA0YTliYzEzZjllNmQ3NjUxN2JmZjdjMiBsZWdhY3ktdHJ1bmsKKzcxNjYzIDk3YWU3YTcwOWMxZDQxMWE1MTI3NmZjNzhhN2YxOWYyYWU5OTJlNGYgcHkzaworNzE2NjQgODY2YThiZWVjMDY1NTA5ZTE2NmI0YjBjZDYxNGM0ZDAyMzMwNjlhNiByZWxlYXNlMzAtbWFpbnQKKzcxNjY1IGI2NTNlYWIxM2I3MzI4NmU5NzVkYWQ5MmE5YmU3NjhiMWE0M2VhNzUgcHkzaworNzE2NjYgMDdjNmIwODg5NjhiMjA1OWRjMmRjOGQ2ZTgzY2M4YjYzZWRjZjcxZiByZWxlYXNlMzAtbWFpbnQKKzcxNjY3IDA3YzExMTQ2OTVlOTlmMmY1YjFiMWVlNTkyNDY3NjNmMTkyNzQyNGMgcHkzaworNzE2NjggZDg0YWQ5NzNjZGUyNWY2NjVjM2YyNmI2YTY2ZjdjNTUyZDIyZWRmNyBweTNrCis3MTY2OSBjYzU1NjU0MTVhZGE0MTdkY2EzNzcyNDcyYTRjOTYyMDQ5ZjBkZDNlIHB5M2sKKzcxNjcwIDk3M2Y0ZDdhYTg3Y2ZmZGFhNjhhMjhjY2Y2YzExMDZmNzUyM2RmNzMgcHkzaworNzE2NzEgMGNmNzc5OWZhMTkwMmE3YzAyMDE2NWI5NjEyMjYxOWU1YWI4MGE1YSBweTNrCis3MTY3MiAwMGUwNTcxMzZmYzY3N2Q1NDNmZWMwNjk5MTYzNGYyMjhjOWFhYjFmIHB5M2sKKzcxNjczIDBlZjVjZWRkYjFjM2RiYTQxYmQzMmI1NjRkODBjZWYyZWI2MmNmZmYgcHkzaworNzE2NzQgYzYwYzFkMzlhOTUxNjUxYzBiYTBjMmE1MGU0MmVhNjc4ZjVlNWYyOCBsZWdhY3ktdHJ1bmsKKzcxNjc1IDk4YTUwYTQ5ZGM4NjUwYmM5NTdkZjIyMDI4NzkwY2MzMjI3Y2Q3YjkgcmVsZWFzZTI2LW1haW50Cis3MTY3NiAyMTI0OTViMDQxMGMzM2VmZTRlMTAzNjJhNzBhMzY5ZDkxMjlmNmVjIHJlbGVhc2UyNi1tYWludAorNzE2NzcgOWVhYjA1NzNkODQ1NDgxN2I2ZTMyMjYyYWYzZTZhYzEyN2VkNTgxOSBweTNrCis3MTY3OCA4ZTUxZmFlOWJiNzU0MjlkNGQ0MzI1NjJiNTk3ZDJlMzkyYTBjYjBkIHJlbGVhc2UzMC1tYWludAorNzE2NzkgODJhMmVmNTk2M2UwZjA5NWNmY2MzYjY5ODAzODMxZDE4NmE2OGE0MiByZWxlYXNlMzAtbWFpbnQKKzcxNjgwIGRiMjkyZWJhN2VjMWFhYjE2ZjU0YzQ1ZjEwMGY3NDUyYWNmNmFmMmEgcHkzay1zaG9ydC1mbG9hdC1yZXByCis3MTY4MSBjNzQyOTIwYzQ1Zjc3MWM0Yjc2YTJjN2UzNDlhOTI2MDQ5ZjQ4M2VlIHB5M2stc2hvcnQtZmxvYXQtcmVwcgorNzE2ODIgNjg3NGQ3MDU0NjA0MzI1N2JiY2YxMzI2NTgxNjNhOTI3ZDdlZGFlNCBweTNrLXNob3J0LWZsb2F0LXJlcHIKKzcxNjgzIDkwOGM2Mzk4MGVlY2UwNmNiM2I2NDMxOWU0OTYxODE0ZWYxZGNlMGIgcmVsZWFzZTMwLW1haW50Cis3MTY4NCBhYjA2YTM4YjU5MGNjNDk3OGQ3ZDEyMzk3MWM0MTU0NjI4MWRkMTlhIHB5M2sKKzcxNjg1IGE3MDliYjVkZmFmNTExNjU1MDBlZWVmNmIxNWJjYzcxMjI1MDgwMTIgcmVsZWFzZTMwLW1haW50Cis3MTY4NyA5ODYyZDUyNzJkODU3YWE3ODQ0MDEyYjI4OGUxZGZkMjlhMGYwMjNmIHB5M2sKKzcxNjg4IDY2ZmRjZmE5NDAwYjAxZWNkZDQzNzNmZDk2N2UzZWQzMDM1OGM0Y2YgcHkzaworNzE2ODkgZmU5OWE1NjJiNzA4NWIyODQzNmI4NTlhYzkxOWI1NGUyMGE0MmQ0MSBweTNrCis3MTY5MCAyNjk1MWU1OTU4OTMxYjhkMjkzMmUwOGU2ZDc1ZTk5ODJiMmFhOTFlIHB5M2sKKzcxNjkxIDhkOGYyZjk4YTc1MmE3NjVkZGIwNWE1N2U0NDM4ZTQ3Y2Q0YWY5NDkgcHkzaworNzE2OTIgMTM5MTZiYjJlZmYwN2NjNDM3ZTdkYzcwNTQwNTEwZjhkOWJlZmNkMCBweTNrCis3MTY5MyAzZTMxOGM0YWY5NjFjM2EwOTY5M2Q3ZDk3N2ZjMzE2NDdjYjkzNDkxIHB5M2sKKzcxNjk0IDI0OWQ1MDBhNzc5YTg3Yzg4YTNjZjc5MmQ3ZGM2NTMwNWI5ODk3NTUgcmVsZWFzZTMwLW1haW50Cis3MTY5NiAwMmNiNDIwZDg2MmU2OWFlMjBkODYwZDMyZmQ2OWEzMjM1NmJhOTgwIGxlZ2FjeS10cnVuaworNzE2OTcgODU4YjlkMDhlMzRiNGVkZWU0YThlMzY5ZjI4MDY2MzBmYzg5YTA1YyBweTNrCis3MTY5OCBjODRjNzU1MjViYjM1YWVmMmYwZGVmMmU4Yjc5ZDBjMDI3NmUwOTBlIHB5M2sKKzcxNjk5IGQ4OTVhNDJkZmM5ODkyZGE2YjA0OGYwY2YyNDhkMjZiOGIzZDIxNmUgcmVsZWFzZTMwLW1haW50Cis3MTcwMCBkNmRhNjQ2MzU0ZDIxZTcxZGQ2NWE0OWUwZmJjZTc2MDhhZDBkZWFiIHJlbGVhc2UzMC1tYWludAorNzE3MDEgZDQzZDY0MjUyZDM2MTFkOTY3YmE3OWM3MDgzYmYwNjQ0Mjk0N2VhZiBweTNrCis3MTcwMiAyZWQwZDdlMWQxNzczNTc4OGI0NDZjYTE5NWU3MThjNTgzZjg2NzRhIHJlbGVhc2UzMC1tYWludAorNzE3MDMgZmUxNTUyNmViZThiZjY4Nzk4NWRlYjMyMGYzYjI5ZjlhY2Q1MGE4MiBweTNrCis3MTcwNCBjNWM4NjgwZWUwYjFjMWZhNGNmZTc0YTVlYTRkMDFlY2UxZjgxNDg2IHB5M2sKKzcxNzA1IGFkNWM3ZWFjY2VhMTEyNTJlZjg0MmU3OTA3NWZkNDg1ZDExNDBmMjUgbGVnYWN5LXRydW5rCis3MTcwNiA4MjA5YjZjMzJlNjEyYmM0NTdkZDYyZmY1NWIxOGIyNjJlNjBiYmFiIHB5M2sKKzcxNzA3IDhhOGRjN2Y4NTQzZTg3Y2Y2NjFmODcwNTgyOGJmZGNiZjYwMjYzMzggcmVsZWFzZTI2LW1haW50Cis3MTcwOCAzNDEyMTU2ZmI4ZWY2YTcxZmM0M2E4MmFmMWMwZTFkNjU2ZWY0MGNiIHJlbGVhc2UzMC1tYWludAorNzE3MDkgNzlhNmM2M2FjNWIwZDIwZWNlOWFiOWVjMDhkOWJjYmY3N2MyZjRhMiByZWxlYXNlMzAtbWFpbnQKKzcxNzEwIDk2ZDgyZmFjZDg5MGU5ZjZkOGU4MjI5NzNhOWUzMzdkY2ZhYzg3NGYgbGVnYWN5LXRydW5rCis3MTcxMSA2YTdmYTA0ZDgxMTFlNDgxM2IzNDc1YjkxNzE0ZThiMGY1YzU4NzcxIHB5M2sKKzcxNzEyIDU2ODg3YTJhOTBhZWY2MzkzMDE1ZmEzMzJjZDgxZDQ5YWRkMzdiMDggcmVsZWFzZTI2LW1haW50Cis3MTcxMyBmYjA4ZjYwYWI1MTExN2M4ZDQ2YjljYjdhOTJiZWMyNDRhNGUyOGE2IHB5M2sKKzcxNzE0IDRmYTQ3Njg2YzBkNzBmZGVjMzAxMjc0MDk0NDg1ODk4MTZlNTJiZGIgcHkzaworNzE3MTUgOTMyMjM2MDNjOTkyMjA2YjhmZDk4MjU3YTI3NTVmMGFmZmQzNWZhOSBsZWdhY3ktdHJ1bmsKKzcxNzE2IDRkOTk4MjA3Y2ZjM2U5Y2MzMjgxZTBhMWVmOTkyZWI0OTk2MmJhMDQgcmVsZWFzZTI2LW1haW50Cis3MTcxNyA3MmE3MDAwYTg2MDk0MmM1MDk2Y2ZhOGU1ZGRkMWYzZDA3YzBjZTA1IHB5M2sKKzcxNzE4IGE0ZjExN2U5MjBmZGE2MGUwZmVjNmY4YjM3MjNkZjY4YjBmZTBhMGYgcHkzaworNzE3MTkgYzRlOWE4NzVjOWE1NGZiNzJjY2I5YTYzMGZlMzdjMTQ1Y2E2NzdlNyBsZWdhY3ktdHJ1bmsKKzcxNzIwIGRkYTE0YWZhMTJiODViMGQ3YTBjNTZkMDljOTQ0ZWUyODNiMmY2MGUgcHkzaworNzE3MjEgOTc1NWQ4ZGQzMzY2YWNjZDI0NjIxZjQ5NDczZDdhMzYxYTBiYmZhNyBsZWdhY3ktdHJ1bmsKKzcxNzIyIDc3OTBiODVlNzAwOWJlN2FkMjFhMTVjZjlmOGU0N2U0ODVmYzdjOGMgbGVnYWN5LXRydW5rCis3MTcyMyAyODY0NWE5NjEwMDQyNDA2YTY1ZTk1OWM5ZjUwMDkxNGVlOGY2ZTc3IHB5M2sKKzcxNzI0IGMyNzdjZjQxOTNkMTFjNzY5OTk0ZmQyZmQ2ODVhY2VlMDhkZDYwZTUgcHkzaworNzE3MjUgM2U4ZGM1OWQ2NGRlNDQ0MDM2NDVjMmVkYzQ0ZDY2ZTc5NjI5NmZmNiBsZWdhY3ktdHJ1bmsKKzcxNzI2IDMyOWNiMDJmMThlNmYyMmU0ZTdlZDUwM2ZjZjg0YzdiYjQ2MDc0MmIgcmVsZWFzZTI2LW1haW50Cis3MTcyNyA2ZWMzZGYzNzVmNWE4MjY2NzYzZjQ3OTYyYTgzMDAxMzMzZDFiNzNlIHB5M2sKKzcxNzI4IGNmMjFlOWQyOTA2MmYxNmE3NTgyZjAxMWE5NzRmMmZlNWJiM2JhMzIgcmVsZWFzZTMwLW1haW50Cis3MTcyOSA3MmZmNDRjMDUyOTViOTU1YzQ2M2NlYTJlMmE0ZTJhNTgzZGNiMzhjIGxlZ2FjeS10cnVuaworNzE3MzAgYTZkMzI0MTM2ZTAxNDViMjk1OGY5YWFjZTIxNTU4NjdiYTJkMTc3ZiByZWxlYXNlMzAtbWFpbnQKKzcxNzMxIGE4MmI1M2RiYzY1NjU1ZGFhZTE1ZDUyYzRkZWI3YzVjOTA2NzgyOTAgcHkzaworNzE3MzIgMWJjZDU1ZGIzNWRlZDYxODlmZWI4YzVhNTg3YjlhOTkwNzlmMWI1ZiByZWxlYXNlMzAtbWFpbnQKKzcxNzMzIGNmNjIyMmNhMGJjYzA2ZDYzYzU1NjlmY2YyMjMxYWUwNDNiZDc3OTQgcHkzaworNzE3MzQgNTg5MTVmYzU3NmFhY2UzZWNhM2YwMzFhZWM4NTk4NDE2MjZmOGYwYSBsZWdhY3ktdHJ1bmsKKzcxNzM1IGFkYzc3YTVkNmE5NjI2ZTY5NDI5MGU3ZjhhMGZlNDA1YTg1ZTcyMTMgcmVsZWFzZTI2LW1haW50Cis3MTczNiBkNzRiOWE4ZTY2ZjYwMzZjMTZiNDRkM2NmMzczNmQ5YTQzYzAyZmI1IHB5M2sKKzcxNzM3IGQ5OTUwM2I2ZjIzOGFlYzI2MjgzOTZlZmFlNWM0OTZhMzM0ZjQzY2YgcHkzaworNzE3MzggNzU1NzcxNmI2YjFjYjk0YmU5NzQ5YjBhYWM3YTRlMGUyMDNlMWI5ZSBsZWdhY3ktdHJ1bmsKKzcxNzM5IDQ4YmY0MmMyZmY3YTgwMzhhYjkwMzRkNGYxZGUzYmQzNWI4YjBiMTcgbGVnYWN5LXRydW5rCis3MTc0MCA3ZDJjODIyMjY5Yzc0Y2Y0NDg0ZTAxYjY2MTE5M2YxNWFhOGE3Y2ZlIGxlZ2FjeS10cnVuaworNzE3NDEgNDFhNzVkZDlkZjc4ZjQ1N2RlYThmZmQ0MjAyMWZhYzc3ZTExMDYwMCBweTNrCis3MTc0MiBiN2I4ZmJkMDEwY2E5YjAyNTA2ZTY1MjE4M2Y2NzhiM2JlMzgzNmU0IHB5M2sKKzcxNzQzIGQ1MGQ0ZjA5Y2RmN2Q3NTJkNzRmMGI4NmZmYTFiMzJhYmQ1NzVmMzIgbGVnYWN5LXRydW5rCis3MTc0NCBiN2M0MTJkMWE1Y2M0NmI4ZTY5MzdlMTdlM2EyZjA1YzE5NDkwYTllIHJlbGVhc2UyNi1tYWludAorNzE3NDUgNjA3MjllZTg0ODIyNTg0NjI3ZWRjZjNlZjhiMWE2NDdjMDAyMmVmMSBweTNrCis3MTc0NiBlMmM3ODVmZjBhNTBmZjA1NWFmMmVkZWQwODFlMjk3NzljNzE2OGQ4IHJlbGVhc2UzMC1tYWludAorNzE3NDcgNDRlZjhhNzNhOGI3YmNjYzI5MjgyMjdjZTIzY2M2NTJkNjJhMzdmZiBweTNrCis3MTc0OCAxNzM3YWExNTEzMTA4Njc4M2Y3ODM0ZWI5ZmIwZWIyZDEwZWE3N2MwIHJlbGVhc2UzMC1tYWludAorNzE3NDkgM2YyOTIwYWE5MTBjYjM5NDMwZTgzZmVlNDYxZTJhZDUzMTM0MGQ2NSByZWxlYXNlMzAtbWFpbnQKKzcxNzUwIDEzODA3NzAzYWZkMGY1ODM0OWUzODIzOGM4MjQyZjA4NGI3Y2QzYWQgbGVnYWN5LXRydW5rCis3MTc1MSAwMzk3NmExMDg3MDA4M2RjOTVjOTc5ZTdjNjE1YWFiZGE0NDYyYjJmIHJlbGVhc2UyNi1tYWludAorNzE3NTIgMGIzYjhlZDM2MjI0NjQwOTVlNWNjNDdlMjI1NTExYzc2ZDM0NWRkNyBweTNrCis3MTc1MyAyYjE3Yzk5Njg5ODFiMjFjZmRmNjEwNGU0NTUyZDE0MGQ1ZjdlNDg4IHJlbGVhc2UzMC1tYWludAorNzE3NTQgNDUyN2MxNTJkYWE5MzljMmVlNWU0YTZiMWU1MDVkNTAwZmNmOTc1YiBweTNrCis3MTc1NSAyMjc5NjdmZTQ0YTQyNmM5NDQ0MjE1NThjOTFiMDdkZjM1ODVkM2U0IHJlbGVhc2UzMC1tYWludAorNzE3NTYgNDJiZjU2ZTM0ODI1OTZiYTUwNzJiMWU1YjY1NmMwODg5NzdiYTZmNiByZWxlYXNlMjYtbWFpbnQKKzcxNzU3IDg1MzNjZmMyNDIwYWRjMTM2NmE5NDA0MjBjMTdmZGRhNzc0NzM2MzEgcHkzaworNzE3NTggMDRmZmU2YjYxNzA5MTA2NzJmMDVmZGEyYzEzZWZkYTVkNjI0YzBlMCBsZWdhY3ktdHJ1bmsKKzcxNzU5IGNkYjYwMTQ0MWQwNDU1MjFkOGVkMGEyMjk2YjcyNzEzZjc5NWFkZGIgbGVnYWN5LXRydW5rCis3MTc2MCBhMmQ0MjMxMDE0MmJlODEzOGVhNjIyZGRhZmYzNGU4MGQyNWY5NWJlIHJlbGVhc2UyNi1tYWludAorNzE3NjEgZTQyMDIwYTUyMjBhZTk5YjRhZmZlMGVlYjU2ZjYzNTU5YzExMGE3YSBweTNrCis3MTc2MiAwNTM3NWMyZTA3NDI0MDA2YTU1ZjE5YzUzZmFhMGRlMGY1YTdiMTg2IHB5M2sKKzcxNzYzIDgwOTFlMDU2NmZlMzIwZjJjNWY4MTM0MTY1YzIwYzU4Y2RjODNiYWIgcmVsZWFzZTMwLW1haW50Cis3MTc2NCAzNzA5M2U5NGFmYzc3OGM5MGI0YmE3NTAzYjhiMGNhN2VmZmNhNmY2IHJlbGVhc2UzMC1tYWludAorNzE3NjUgOTZlZWQ3Mzg3Y2VhMzg5MGViNTliNmM1MTFjZDE3NmQ2NTg3ZTM0ZSByZWxlYXNlMjYtbWFpbnQKKzcxNzY2IDg3ZmI3MjEzMmQ2YmRmYTExNTcxOTY3YWJiNGI3Mjg5ZDM2MDAzZTEgbGVnYWN5LXRydW5rCis3MTc2NyAxMzc4MWIwZjc0NWE2MTg5MGU0ZDA5ZTZiMjRlYTJmOTdiODdkNTdkIHJlbGVhc2UyNi1tYWludAorNzE3NjggYWE1NDRhNTQ3NTNiYThmNjgyMGU3NzIxMzQ4YTY2NmQ3ZDM5MTU4MyBweTNrCis3MTc2OSBiZDE4OGZmMzQyYTRjNjg5MWUyYzBlNzI5N2UyZTNmNDcyMWVkMzgyIHJlbGVhc2UzMC1tYWludAorNzE3NzAgNzNhYTM3NTZjMGIyNmIwMTEzOTI2NTgyNDRiNzRmNWMxMzQxZmU4ZSByZWxlYXNlMjYtbWFpbnQKKzcxNzcxIDQ1NWY0MGQxNzM4ZThjMDY5MjZhOWI3YWU0OTc2MmNhNTAwNWY5M2MgbGVnYWN5LXRydW5rCis3MTc3MiA4ZjI4Y2U3YjhlNjlhMTQxNTE5NWI0YzA1YmVmMzlmNGNmOGQ1ZjA5IGxlZ2FjeS10cnVuaworNzE3NzMgNDEyOTNmYTZmMGRkNDNhNjhmODk4NjU2OWRhYTQ1ZmNkOTNlMTVhZiBweTNrCis3MTc3NCBkMGIxMzM2M2FhMjE0NTZhZTAwYTc3ODBkZTM1YmQ0ZmRkYWExZmE1IHJlbGVhc2UyNi1tYWludAorNzE3NzUgMjdhYzhjODc0MWNkNTkyYjkwZGVmZWI4YTA5NzEwY2U2ZmQ0YTg1NyByZWxlYXNlMzAtbWFpbnQKKzcxNzc2IGNlZTFmYzA3NjM0NDNiNGU4N2JmMWE3M2EzNDhhODJjNzZiZjgzZjYgbGVnYWN5LXRydW5rCis3MTc3NyA5Y2VhZTI4YWIyNzA0MDExYTFlOTBiODM4NjU0NjdjOWJiNjE3NTcxIHJlbGVhc2UyNi1tYWludAorNzE3NzggZGVkNDY3MzUyNTUzNzlhZDhhNDRmYTRjOGNiZmY5ZTNlZjBkMDE5NCBweTNrCis3MTc3OSA5M2M5MjlhMmZhYzdkNzIyOWVmYzJhZTc0N2FkMGI3NTE3MTkyZThiIHB5M2sKKzcxNzgwIGM4YTc1NzEwYWIyNTAxNzMwZGNhMzAzZTdhMjRmNGY4ODMwZGZmNzEgbGVnYWN5LXRydW5rCis3MTc4MSA3MmM5OGI0YmYwYjU2ODE5MmMzN2I1MGY1ZjQ5ZDgyYjc3M2M5NzY2IHB5M2sKKzcxNzgyIDY5NmRkMjI4MTg0MTU2MWVmZjRlYzA3MmQ3YTE3ZmNjZDNjZjZjZDcgcHkzaworNzE3ODMgZWQzZjUxZjJhYmZiYjcyOWNhYzYxMTJiNGFjMDUzYjEwMDZkYWNhYyBweTNrCis3MTc4NCBhNjhlMmRjNWY1MTQ0ZDIyZDg4OWRhYjczYjQwOTYzODU0Zjk2YTlkIHJlbGVhc2UzMC1tYWludAorNzE3ODUgZGU2M2I3ZTg1MDBkYzJmOTA4NTRjZDM1OTMzNDY4MDE1YzgxYjlmMSBsZWdhY3ktdHJ1bmsKKzcxNzg2IGY0NGQ0MmExMWI5YjQzYTNjZDg5MDRjMjk3MmQ5OTFiMDJhOGFmZjcgbGVnYWN5LXRydW5rCis3MTc4NyA3NzMzNmQ4MmFiOTUwYjY4YjllNWMyYThmODU5YzExMDA3NDZhZjIyIGxlZ2FjeS10cnVuaworNzE3ODggYzMwNjgxYzY2YjNmZWYyNjU0YjUyNGRjMjc2NjNmNDI1Mzk4YzgwYSBsZWdhY3ktdHJ1bmsKKzcxNzg5IGMyZTRhN2FkMDVmMmI0NzU5Njg1ZDdiZmZmZjA2ZjQyZTQyZTdhNTYgcmVsZWFzZTI2LW1haW50Cis3MTc5MCA0MTRiYThlZmM4MDQ2YWU0YWVlZTUxNjA2N2JhODc5ODhmNTI0NDIyIHB5M2sKKzcxNzkxIDJiMDU3ZDJiOThlYjA3NGYyYzExZjJjMWUzN2U4NmQ5NTBkNTBjNWEgcmVsZWFzZTMwLW1haW50Cis3MTc5MiBiMGZlYTNhZTNiNmVmNTYyMGQ5NjgzMjQ3OTgwZmM0ZTliMzZjZDRkIHB5M2sKKzcxNzk0IGY5ZjIzZjM2YzM2Y2E4ZjQxZDBlYzVlNzdhOWQ5ZDQ1ZmIxY2E2ZTUgbGVnYWN5LXRydW5rCis3MTc5NSA3OGJmZDQ0ODE3NjMzMWM4YjIzZjNmN2Y5OWZhMDFkMjk1MTJjMjYzIHJlbGVhc2UyNi1tYWludAorNzE3OTYgYzVlMGQ5YmVlYmY5MjMwODUzMDY3MDE1YWM5MTcxNTcyMWM4MTlhOSBsZWdhY3ktdHJ1bmsKKzcxNzk3IDYxOGQyZTNhY2E2MmViZGExZmU4MjZjMzkyNDVjOWY2ZmMxNDg4ZTYgcmVsZWFzZTI2LW1haW50Cis3MTc5OCA2MTE1MThkNjgwZGVjMjRhYmQyYmRmZWQ2YWY0MDQ3MmJiNDI3YWY5IHB5M2sKKzcxNzk5IGU5NTk1Y2I1Yzc4NjBiYWViYTAzYjU1MjBkYmI2ODE5NzA4MTE2NWUgbGVnYWN5LXRydW5rCis3MTgwMCAzMzBkYjk1NGU1OTM0ZTA5YjJiYjY0OTI3NmQ2NTc3ZmE1ZTU2ZDIwIHJlbGVhc2UyNi1tYWludAorNzE4MDEgYjVkZjA5NGQ4OTQxZDJkYTQ4OTZlYzllODA4NmY0YTk5YjYwMzRhOSBweTNrCis3MTgwMiA0NGE4YTUyNWVjZWI4MDY3Zjg0MjExZWMwOGY0ZTczNDg2NTk4ZWFiIGxlZ2FjeS10cnVuaworNzE4MDMgNmY0MmRlNzJjMmRjZTg4Y2ExMGQ2M2E1ODQwNjk2NmJkZDFlY2MyYyByZWxlYXNlMzAtbWFpbnQKKzcxODA0IDUxM2RjNmZhNjFjMGI3MGE2YjVkZjFmYzY1MGFjNWU4NzIzZmFlMjIgcHkzaworNzE4MDUgYzZlOGM2NTcxNTg4NzZmN2YyMTM5OGIyY2I0NTNhNTdkMjUxZGUwNCByZWxlYXNlMzAtbWFpbnQKKzcxODA2IDliZjRiM2ViMDQ0NzI2OTkxMzUzOGU2N2Q0Y2UxMzEwM2ZkNDNkNjggcHkzaworNzE4MDcgMjRkODFmY2IwZTMzMzVmMmUyYTRlMmVhNDJkNTg5NDBlMWQ1MTc2MSByZWxlYXNlMzAtbWFpbnQKKzcxODA4IDg1NTk3ZTU1NjY4Y2QwYzkzOGIyZTZiZjQ5MWEzMTMxNDNlOGM4OTUgbGVnYWN5LXRydW5rCis3MTgwOSAxZjFlY2E2ODE2NzVhMzllNWExMzIyMGJlZjNmYzAzNWMyM2M3MDk0IHJlbGVhc2UyNi1tYWludAorNzE4MTAgMWExMjkxMzg0OTI4OTMyZGY1M2I3MjJkZTA2YTBiMDU0MzIzNmJkMiBweTNrCis3MTgxMiAyZDA5YmNmNzAzOTU1NTg0NWU0NDJhNWM1ODgxNWMzYmJiN2YyZGEzIGxlZ2FjeS10cnVuaworNzE4MTQgMTcwMDU1ZDdiNDk0MmIyM2I2OWJiMmY4MzZhN2U5NmYyOTNmNWVkNiBsZWdhY3ktdHJ1bmsKKzcxODE1IGZmOWVkY2IzNjg3OGVlODYxZTkzY2FkN2JhY2U5ZmY2YWUyY2E1M2UgbGVnYWN5LXRydW5rCis3MTgxNiA2MjkyYmQyNjMyZTJiZGQ3ZDU4ZGVmMDdhZjliN2MyNGUxNTYxOWEwIGxlZ2FjeS10cnVuaworNzE4MTcgNDFiYzMzZWUxNzMwNGZhNmIxZWJiNjNhNDJiMTVjOGM2NTFmN2RlZSBsZWdhY3ktdHJ1bmsKKzcxODE4IDMzMDExNTEzNzQxNDc1Y2RkNzIwNmRkM2I1YmY4OTlkZWMxOTY0NzIgcHkzaworNzE4MTkgZDI5NTI1NGQ4NGI3ZjY1ZmU3ZjYxYTdhN2Q1YmJhNWUxMDdhOWQ1ZiByZWxlYXNlMzAtbWFpbnQKKzcxODIwIDViYmQyZTZkNjEyNjIwZTRmZWVlMzEyMGUxZDA3ZTU5MDVjNjM3MzkgcHkzaworNzE4MjEgYTdjNGEzN2M5ZGYwNzcxNjhkNzNlYWNhZTY4ZGNiMWE4NTBiNTA0MSByZWxlYXNlMzAtbWFpbnQKKzcxODIyIDgyOTViN2IyOTRiZDYyZGJiZWRkM2ZjMWQyZGEzMzM5ZGNmY2UzODkgcHkzaworNzE4MjMgODMwMGIyNzRmZGQzY2NmOGQyMTgxMTU3YzJhODgwNzlhYzE0OWVkOSBweTNrCis3MTgyNCAzMzMxMmI5MTA3NzM0MDFkZDUzNTRiZDljZGU3NjhiNTI3ODIwOGI1IGxlZ2FjeS10cnVuaworNzE4MjUgZmRlMDE1YTJjOGIzZWJlMjQ5NmI0NTZhMWRiZjE5OGNmNWUwNTkwOCByZWxlYXNlMjYtbWFpbnQKKzcxODI2IDMyYjI0NzMwMGZmOWQzMjM5MTkxYzE4YzNlNTQ5MGQ5ZDFiYTQ2ZjcgcHkzaworNzE4MjcgMDc2MWVlMjhiNmVkNjI0MDJhZjBlYmY1NmI1ZjU2NmIzMWI1YTUwZiBsZWdhY3ktdHJ1bmsKKzcxODI4IGQ1NTczMjBkZTg1NmNiYjIxMzk0ZDdlY2E1MTNiYWNlNWYzMjZkZDUgcmVsZWFzZTI2LW1haW50Cis3MTgyOSAwNmRiMWQ5ZDI1NWZmN2M3ZDQ1ZDQ2M2E1YjYzNmYwN2JiOGE2YTIyIHB5M2sKKzcxODMwIDFmYzliNjUwODcyMzIyOTI1MzY0NDAzZDkyYzY0OGYwOTJhZWUwYTYgcHkzaworNzE4MzEgZWM4NDJjYzYxMGU2ZjE0ZjNlMTJhMjVkMmYwZDQ5M2NlYzRmN2UyOCByZWxlYXNlMzAtbWFpbnQKKzcxODMyIDExNDA1OWMyNjc5NGYxYWQ3YzQyZTFjMTU5NjZlOTg1OTdhNDY2ZjggbGVnYWN5LXRydW5rCis3MTgzMyBhMWE2ZjVkMmIzZGNiNWU1MjM5YThlNDRlYTRjYTFiNzM0MmQwNjMyIHJlbGVhc2UyNi1tYWludAorNzE4MzQgNTlhMWZiOTM5NTc3NGNlYjNiNzhhM2YwYWE1ZTU5NjllODM3OTczYiBweTNrCis3MTgzNSA0NmEzMmQ0NDYzYzgzYTZmYmQwMjdlYjU0MzJlYjJjZWJmNzQ0ODU4IHJlbGVhc2UzMC1tYWludAorNzE4MzcgMTMzYzY2MDI3ZjMzZTRjMmY2MzExMzg5NWRjYjg5ZjFkOWYzODBkZCBsZWdhY3ktdHJ1bmsKKzcxODM4IDMyMjI2Nzc2Zjg2NjEzNDY4Mjg5MjI4Y2QwMjAxMmYxMWM1MDExZWIgbGVnYWN5LXRydW5rCis3MTgzOSA1NGI0NDg5ZjFjMjg0ZDYxMjc1NzBjZDdjNmMyNzc3MjkzZDljYmQ0IHB5M2sKKzcxODQwIGZhNGYxOGVkZTI2MGJhNzkyMzlmZmRmY2YzNWRiMDQzOGQ3ZGE4NmEgcmVsZWFzZTI2LW1haW50Cis3MTg0MSBhNjVlM2MwNzI2MGU5ZWIwNzgxZDU1YWRkZDE0ODcwMjhjOWNiMTE5IHJlbGVhc2UzMC1tYWludAorNzE4NDIgMTE2Nzg3ZjliOWZjZGJmODEyMTczOThjMTFhNTRhNTgyNTA2ZTJhNyBsZWdhY3ktdHJ1bmsKKzcxODQzIDYzY2I1YzkxY2UyMTQ4YzVkMDVmY2RhMmE3Mjc2OGFlM2RiODZhOTAgcHkzaworNzE4NDQgZmY3YjRlNTgyYzQ5MDgzZjcxYjQyYjlkNzE0NmRiYTIyNTJjYjAxMSBweTNrCis3MTg0NSBkODgwMmIwNTU0NzQzMDI5ZTE1NDg2NjFhY2NjMzkyZDBhMzcyZGQ5IHJlbGVhc2UzMC1tYWludAorNzE4NDYgNDNlNDZlNGUwMmYwMzYwYjMzZDczZjBhODYwMTkwNGUzOGE1NWFlYiBweTNrCis3MTg0NyBmYmIxZGYyNTQxYzM2YTA5Y2U5YmU1NzdjYWI2MDkzNDJhZDMzNmYwIGxlZ2FjeS10cnVuaworNzE4NDggOTY5MWU3MzQ1OTY0ZGExOWRmNTJmYTg4OTI3NjJmMGZjM2FjYTNkNiBweTNrCis3MTg0OSAwOTY4OTIxMmIzZWIyODE5NGFhODExODY5Yzc4NjAwMGJmMjA0NWZjIHJlbGVhc2UzMC1tYWludAorNzE4NTAgMmVmNTRlOGE0NGRkNDg5OWVkOTFkYTVlZTZkYmUzZDA5NDNlMDk3NSBweTNrCis3MTg1MSAwMGE5Mjc4MTVkY2Q2MmQ0Njk0OGJjNDhjM2ZkYTIzZjVhMGE0MTk4IHJlbGVhc2UyNi1tYWludAorNzE4NTMgZDUxZTRmNjJiYzhjMDQ1NThkMjA4YWY5Y2Q0MzA0NTE5M2UyOGRiYSBsZWdhY3ktdHJ1bmsKKzcxODU0IDAyZjNmODVlMzkzNmI4YzAwMDhlYWRlMzMzNmM3MTBiYzRlNjE2ZWYgcHkzaworNzE4NTUgYzYyY2MyYTU3NjRiNjM0MjJlYjVkMjZiMzQ1ZWY5MTAxOTZlMWQzNCBweTNrCis3MTg1NiBiNWUyYmNiYmZhNzQwMmMyNjk0ODRkZTc4NjdkOTA5YzFkZDlhYzczIHJlbGVhc2UzMC1tYWludAorNzE4NTcgMGY1NWUwOWMxNmI1NjgwNjBhYzFiMmJhMDM2NWNmZTU1ZmZjZWZkMyBweTNrCis3MTg1OCAyOThmMjhhZmYxOGQyMzk0MGI5OWNmYjgwODI2YTIzMWQyNDAxN2RjIHB5M2sKKzcxODU5IGIyZmNiM2YyMjRkZTJmZTNhZjA3YjJjNDdhNTk2YWQwM2JjZWZiMzQgcmVsZWFzZTMwLW1haW50Cis3MTg2MCAzMTg5NTE4OTBhYmI1N2MzOTUzMDQ2MjliZDUxYjIxNTE2MjZiYmZlIGxlZ2FjeS10cnVuaworNzE4NjEgNjQyOTEwYTAxZDdmMzkwMGYwMGQ0YzNkNGMyMmZiM2ZmZmZlNzE0OSByZWxlYXNlMjYtbWFpbnQKKzcxODYyIDJlMzcxOTBmOGVhN2Q0OWNhY2I4OTZhODdkMjc3ZWI3YTdjM2JlOGIgcHkzaworNzE4NjMgZmRiMmJlNDcxYTNmZGJkMDM2OGQwYzAwNjRlMjRkYzM4OTVhYTUwYSByZWxlYXNlMzAtbWFpbnQKKzcxODY5IDVmZDBkYTJhOTc3OGUxNjhmZjVjNzRjYjQ5ZjVlNTdjZWVhOTRjNjcgbGVnYWN5LXRydW5rCis3MTg3MCBhMzRkOTQ1YzA3ZWRiM2VjYmU4ZjdmMDA1MGM4YTRlM2RlNDAzN2JkIHB5M2sKKzcxODcxIDgwZGE1MjQ2NmZlODdkZTViNjMzMzU5NTE1MGM0NTA1OWYzMzhjMmMgcmVsZWFzZTI2LW1haW50Cis3MTg3MiBhNWVjNTdlODVmNjVjMThjYzMwMzY1YmUyMzBmNjQzNTYyMzJhNGExIHJlbGVhc2UzMC1tYWludAorNzE4NzMgOWY5NDEyMTkyNDAyZDlmNTkxNzczZDY4NDdhNWY1OTkwODNkZGMwZCBsZWdhY3ktdHJ1bmsKKzcxODc0IDk1NTZlOTNmMmFiYjQ5OWI2ZjM4MzllZmVmYWYxZWU4NzM4NmNhYTYgbGVnYWN5LXRydW5rCis3MTg3NSA1YTQ2YTgyMjA2ZTdiYmYzOTg0NWFmNTI5ZWUzNWMwZGUxOTY4MGM3IGxlZ2FjeS10cnVuaworNzE4NzYgYjM2NmE0OTZkNDk5ZWIxOTE3NzBiYmVkNmNjZDAxOTM3ODViMGI3YSByZWxlYXNlMjYtbWFpbnQKKzcxODc4IDg4YTc4ODdkN2ZkNGFmOTZjMzg4YjMyMzE3M2FkYzkzOGI5N2E4MDAgbGVnYWN5LXRydW5rCis3MTg3OSBjZTQ3ZGVlMWI1NDQyM2NhY2EyYjg0NTA1OTAwMDAyZmE3Mzk5YWVjIHB5M2sKKzcxODgwIGM1NzEwOGRlZjNlM2JlOTk3YjQ2NGQ1NTA3NGUyYzJiNjRjOGMxMTIgcmVsZWFzZTI2LW1haW50Cis3MTg4MSBkMzUzMzdmNjUwMTU5OTljY2MzMzE5MGIzOWJiNTVmNjQ1NWUxODJlIHB5M2sKKzcxODgyIGFkMGMyNjk3MmIyMjIxNzU5ZDI3YzE1MjNkMzA5ZGRiYjA2OWU2ZmUgbGVnYWN5LXRydW5rCis3MTg4NCBhZDAzYmI1ZDBmN2RiYmM1Y2ZjNTU0ODNhMTA3YjI0N2I1MjZmNmJhIGxlZ2FjeS10cnVuaworNzE4ODUgNmRjOTgwNWNiMGZhOTc3OWFkYTliZjZmZmU1NWFmZTBkMGRmYzA4MyByZWxlYXNlMzAtbWFpbnQKKzcxODg2IDNjYzVmYzMzMzJmNmFiY2NiOTkzMTFiNTE5NzMzNWZlOGU3M2ZkMmYgcHkzaworNzE4ODcgODA2YmM0NjUxYjlkZTM1ZWU2MGZlNjZjNDM0MWJhM2JkMWY2NmJjYiByZWxlYXNlMjYtbWFpbnQKKzcxODg4IGNhZGI2OWUxZGM5YTYyZmNiNDc0YzMxNTZmMzhmYTg3MTQ3NTM5MmEgcmVsZWFzZTMwLW1haW50Cis3MTg4OSAxODM3ZThlMjI5Mjc3NzExMTUzYzRhZTAyZTBhZDRkMzM3YWJiMDgyIHJlbGVhc2UzMC1tYWludAorNzE4OTAgMDVkZTg2NDA3N2JhOWI4M2U4OWNmOTU4NzNlZGU3NTE3NTQ5NjdlMCBsZWdhY3ktdHJ1bmsKKzcxODkxIDU4N2M4ZTM5MTdjNmE4MjVmMjkwOGY1OWY4NTg2NTMwNzY3MmEyYWYgcmVsZWFzZTI2LW1haW50Cis3MTg5MiBkM2ZlNmU5NjQ4NGM5N2NkNGUwMDc0MWEzNzdmMjVjNDJiNmQ1NTZjIHJlbGVhc2UzMC1tYWludAorNzE4OTMgZWFiZTZjZjk3MzRjODMyYjI5NmFmOGQzM2E5NjJlN2RhN2I0NjE2NiBsZWdhY3ktdHJ1bmsKKzcxODk0IGEyZWY0ZGQ1NWNmMjU2MTk0YmY4Y2RmNGNmNTk5YWFlMzQ2MmZkNmYgbGVnYWN5LXRydW5rCis3MTg5NSBmMDhmNzc2MDgyZWNjYjNhN2UzYzEzOGQwZGZhMDFmYzViZmMzNjI3IHJlbGVhc2UyNi1tYWludAorNzE4OTYgZmYyOWU5NjZhYmI2NWE5MjA2MmI4OWUyNjhmNDc1Njg2NDA4MmYwYyBweTNrCis3MTg5NyAyZjhlNTM1ZjlhOWJmYTQ0MWE3MzFiMzhjYTYwNDUzM2M1OTI3MGRhIHJlbGVhc2UzMC1tYWludAorNzE4OTggYmI4NzZhMTMzYmRmM2E3YTlkZDU4YzI3ZjhkNzcyNjAzODgxZmFhNCBsZWdhY3ktdHJ1bmsKKzcxODk5IDY3NmRhYTFlZjIyMzcxMjllMzY4MGUwNDI2MjJiYWZmZTIwZDJjMzEgbGVnYWN5LXRydW5rCis3MTkwMCAzMDVmZmFkZjgzMTViM2I1OGQzMzYwMWE1OGNkM2JhN2QzNmE3ZTRlIGxlZ2FjeS10cnVuaworNzE5MDEgZGRjYzJhNmZkZTNhZTNiOTczNjEzNDRlMjUwYjk5ZTVlOGFmYmUwNCBsZWdhY3ktdHJ1bmsKKzcxOTAyIGM3NTZmMzBiYzQyYTdlNjRjMDRjNTZmODdiNzgwNTFkZTQ3MDllNGQgbGVnYWN5LXRydW5rCis3MTkwMyA4NTI0NmU0ZTE0MjgzZTZlMTlmMzQyYzA1ZDA4YWNlMDgyYmEzMDM3IGxlZ2FjeS10cnVuaworNzE5MDQgMTQ2N2NiYzIyM2U2MDA3OTkyNGU3MjFhY2VkODYzNzlhMmViOTJiMiBsZWdhY3ktdHJ1bmsKKzcxOTA2IDI0ODBlYTc1MDY4ZmEyMWU0ZDExYTNiM2IxZWY5YzZlMTZiMjRkYjYgbGVnYWN5LXRydW5rCis3MTkwNyA3MWI3YjQ5MjE1MTIxZjU4ZDA5MWNlZTZlNTcwZmUwMTUwNWE2NGFlIHB5M2sKKzcxOTA4IDRhZjA2YjJiYzNjYzI1ZWE2ZDNmYmIyZjdhZWJkYjA1YTBiZGQ4YzMgcmVsZWFzZTI2LW1haW50Cis3MTkwOSBjNmJmNTJlMTUzYjRhM2QyM2ExMmU1MTYwOTI2Mjc1MjBmNGQ2YzgxIHJlbGVhc2UyNi1tYWludAorNzE5MTAgODVjYzk1MTJiNjBjNTM3ODE2OWExMzIzZGQ1OTFkOTUxODM1ODQ2MSBsZWdhY3ktdHJ1bmsKKzcxOTExIDdjZDIzYjJlYWE5M2JlZGUyNThlNjRhYmU3N2M4OGYyMjY4MTlmOWEgcmVsZWFzZTI2LW1haW50Cis3MTkxMiAwODNjZWEwZjI3YTJjMjEzYTc0NTEzZTM5ZGMyMWY5ZTM1YWU0OGFmIHB5M2sKKzcxOTEzIDAwNmE0MGI1ZTBjM2I1ZjllZjJlYWY0ZGI5ODE3M2MxNDAxM2IwYTQgcmVsZWFzZTMwLW1haW50Cis3MTkxNCAxNzlmNDU5M2JkM2VkMDgxZmIzZTc3MGMzMzI3YTQxYjQzOGVjYjI1IGxlZ2FjeS10cnVuaworNzE5MTUgM2QwN2M5YjIzOTUxNDJiMDJhNTQyNDc5MTM5MGZjYzQ4MDhkYzJmNSBsZWdhY3ktdHJ1bmsKKzcxOTE2IGY4ODMwNmM4MjY1ZTNkZGMwYjI5OGViYTI1YTU1NDgxNTM3NmRhZGEgbGVnYWN5LXRydW5rCis3MTkxNyA2MmIzMTg1MzU5ZTM2NWEzNzhjZmJkNjlhOGM2N2U4Y2VhZTFhNGQ1IGxlZ2FjeS10cnVuaworNzE5MTggM2I0OWQzMGNhNTQxM2JjMDljNzM4YWE3Y2Y2ODQzMDEzZjZkYzA3NyBsZWdhY3ktdHJ1bmsKKzcxOTE5IDJlMjk3YjFlYzkzNTYwZjEzMjBhY2RkZTk3ZmEyMGI4MzdkYmZiMjEgbGVnYWN5LXRydW5rCis3MTkyMCA2OTRkYWY4Y2RmOTkzOGJmMmJlYThjMGIzNzg3NmQyYWMyMzIxMWJmIGxlZ2FjeS10cnVuaworNzE5MjEgNjI1NWE3MmE0YzFlOWVhYmI5YjBlNGVhMzBiOTc5ZDA1NTRhYWI3NSBsZWdhY3ktdHJ1bmsKKzcxOTIyIDhmYmEyNTg0ZjM4YmVhMjMzNWZkYTA4ZGRmMTQ2MmMyMmUyYmZmYjYgbGVnYWN5LXRydW5rCis3MTkyMyA2MzI4NjI0MmRkOWRiMTQ0NWU0ZjkyMzA1Mjk5YWI0NzAyMWU2NmViIGxlZ2FjeS10cnVuaworNzE5MjQgY2EyZjFlMzRmNTYyZDFiMjkxNmNhNWIwYmFhN2MxYmZhYTU5NGYyNCBweTNrCis3MTkyNSA3YmIxYTRjZDVlZTViODZjNmNmZDJmZGUxNWM5NzdiNmM0YjM4OTkxIGxlZ2FjeS10cnVuaworNzE5MjYgZWRkOGYwZDUyYjM4ZTJlNTBjZDYwMjMwMTlhMWQ1ZDVjNjdmYjZiZSBsZWdhY3ktdHJ1bmsKKzcxOTI3IDQ1NmIyYTA2ZDAxNzAwZjcwNjVkYmExODU1MDQ5ZDhmNmMwYzZlMmEgbGVnYWN5LXRydW5rCis3MTkyOCBjN2VhODI2ZmFkNzczNDdlZTg1MmVlOTRmMzJhNzA4ZWRjYzgyNmY1IGxlZ2FjeS10cnVuaworNzE5MjkgMjVjMjBhNzdmMzczM2Q5NDAwZDkxYjM1YzA3OGQwZjA5ODhiYTM3YSBsZWdhY3ktdHJ1bmsKKzcxOTMwIDBhZDQxNTA5NGEwNTA2MThkODU4Mzc5ZDI2M2VkZDZkMzgzNTc2MWQgcHkzaworNzE5MzEgMTI3OTE4MTI3ODhkZmU5ZWE1YzUzZjRiMDIxODM1MmM0OGEyMzcyYyBsZWdhY3ktdHJ1bmsKKzcxOTMyIGVjYWNhNzE3N2Y2Njk2MWM2OTQxMmU1MGZhOTMwOGFlNmJiNGNlNDIgbGVnYWN5LXRydW5rCis3MTkzMyA0ZTVhZDU2NmJmYmI1YTkzOWIyNGViMzI0MGJjNDAwZGEzMjM5N2Y2IGxlZ2FjeS10cnVuaworNzE5MzQgYTA3YTliNzU5ZjI3YzI1NmZmM2MzNWM1YzNiMDhiYzk0ZjRjZGQzOSBsZWdhY3ktdHJ1bmsKKzcxOTM1IDljOTg2MDUwNzI2NTA0ODNlODI0YmZjNjgwZjM4NTMyNGNjZWZjOTYgcHkzaworNzE5MzYgZjExNDJkZTQzZTdkZWE4ZmRmMzcyZWZiYzBlYjE3OTAzMTc3YWViMyBweTNrCis3MTkzNyA4MWFlYjhiYzY1OWQ1NzBmNjM2MTdkMWI4MGFhMjdlZTI5YWVlMjA4IGxlZ2FjeS10cnVuaworNzE5MzggNjk0N2JjM2RkNDMzMjE2NDJmYzI4YTU1Y2NlNzFkNGY4ZTYzMmM5NiBsZWdhY3ktdHJ1bmsKKzcxOTM5IDMwYjAzZTFkZWE4YmI3MTIwODc4MWMyMGMyYWU0NjFhMWY0NTIyNzQgcmVsZWFzZTI2LW1haW50Cis3MTk0MCAyY2RkYWY4ZDNjM2UwYzk5MzEwN2UzOTQ1NjcwYWI5M2U1NTRmYzAxIHB5M2sKKzcxOTQxIGEzZDQ4YjJlOTU3ZGU5NzFjMDk1NWY5ZWIzMTE4NDI1MjUxZjgwYjEgcmVsZWFzZTMwLW1haW50Cis3MTk0MiBlZjBhYzQyNjk5MzQwYjVkODg3MTViZWY2OTE1NmU0NWYzNDRhYWMxIHJlbGVhc2UzMC1tYWludAorNzE5NDMgOTMzMjk3ZWJhYzdiYWMyMGY5YWE2MmY5YTIzY2JjMDIwYjhiNzA5MyBweTNrCis3MTk0NCA3NTAxMGNhZTA0NzkwMDc2ODgyYWYyNzliOGI0NDVmYjkzYzMzNzgwIHJlbGVhc2UzMC1tYWludAorNzE5NDcgNzJiZDQ1MGQ1MzlmMTU3ZTY3ZWI2ZTFiN2RkZTFlZjYzZTNiNDhhOCBsZWdhY3ktdHJ1bmsKKzcxOTQ4IGM5MmU5M2E1NDI5OGE4MzA0ZjFlY2UxNTRmNGQxNTlhNmFjMmM1Y2EgcmVsZWFzZTI2LW1haW50Cis3MTk0OSA4ZmRjZGYwYjUwODBlYTkyZTVhZWQ5NWQ4M2ZiYTFkMjA5ZGJjM2YyIHB5M2sKKzcxOTUwIDkxMjQzODY1NWY5MzA0MDQ4YmY4Y2I4Y2VkOTMzYWY1ZDIzYzc2Y2EgcmVsZWFzZTMwLW1haW50Cis3MTk1MiBhM2EyNDZkYTE0NGI3ZDM2YmIyYmI3ZWNmY2FhNjQyMDJlODEzMDM4IHB5M2sKKzcxOTUzIDlkYTFjZmNkMmFjZjdmNjdkMjkxMDI5NDY3ZDgxODU1M2UyYjIyODggcmVsZWFzZTMwLW1haW50Cis3MTk1NCAxMzM4MTlhZTgwZmE4YWNlMTgxNTYzYTlhMmZjMTNiNzhjMTJiYWM0IHB5M2sKKzcxOTU1IDFjMmQxMWE3ZWIyM2Y0MTIzNGVmMTQyMzJhNzVkNTBiZWYzNGFiNzIgbGVnYWN5LXRydW5rCis3MTk1NiAxNzI5MTNlMTcwMTllZDI5NjAxNTc4NGZiNjdmZmNkNzg2M2NkNDI3IGxlZ2FjeS10cnVuaworNzE5NTcgNzNiNTAyZjU3NjkwNTljMDk0NWRlMzhlMDIwNDg4MmIyMjhkM2VkOCBsZWdhY3ktdHJ1bmsKKzcxOTU4IDAwNjk0ZTBjMmU2YjJlYjMxY2JmYjE1Y2ViNDU3NDFkMjJlMzRlNTMgbGVnYWN5LXRydW5rCis3MTk1OSA1OWM0MTE0Mzc5YjM0YTdiOWNlY2ZhY2Q2MDg5MzhhYTgyNjdlNzBkIGxlZ2FjeS10cnVuaworNzE5NjAgNjQxMTBjMGFkNTMwNWU3YjcyNWZiOWI3YWYzMDJmOWRhZWRhN2VmNyBsZWdhY3ktdHJ1bmsKKzcxOTYxIGRiMDMwMTZiZjY1MzlmNDZkZDA0NjU0YjY3ZjZlOWQ0YTMxODEzMzAgbGVnYWN5LXRydW5rCis3MTk2MiBhMTVjMjhiZmJiMzhjODZiYmI2N2FmMzNkZTYzZTY1NjU2NDIxYTg3IGxlZ2FjeS10cnVuaworNzE5NjMgNzU5NjMzNzJiNzE0OWQ5NjYxNGFlZjA5NDY2OWZmYTQwY2FjNmNhMSBsZWdhY3ktdHJ1bmsKKzcxOTY0IDU5YTFiMDJkZTkwNjcxMjBmMmQ0NDA0YWI5MTQxNmY5YWFkMTA4ZTcgcmVsZWFzZTI2LW1haW50Cis3MTk2NSA3ODM1YWRhM2NkYTJjNmFiZDZiOGY1MGJlYjVkMTE0ZjAzNTg3ZDM4IHB5M2sKKzcxOTY2IDFhNWQxZDFjOTQ3OGE5NGQzOTg4NzQ4OWQ3YzhjYmUyMWI4YTc1Y2UgcmVsZWFzZTMwLW1haW50Cis3MTk2NyBmNzY1NzIxMDhkZDdhNDUyODA2ZWM1MWJmYjE3N2NlNGNiYzY5M2JiIHB5M2sKKzcxOTY4IGI0NWEzMjM1NWQzNzhjY2M4ODQxNGVmNzYzYmMwZWYxYWZkZWE1OWQgcmVsZWFzZTMwLW1haW50Cis3MTk2OSAwMWMzMzYzYTM1N2Y5ZmY3MTY4YjFkYzYyM2RjYzI3NmQ5YjE0ZTBlIGxlZ2FjeS10cnVuaworNzE5NzAgNDYzM2Y4NTM3YmI3N2M3ZjUxYzRlM2RkNjQ1ZDIxODY3YjJmYmZlZCByZWxlYXNlMjYtbWFpbnQKKzcxOTcxIDM5MTIwY2M3ZTMyMWVlODA4NjA5ZDUxODQyNTdmZmU2ZGQwOGJhMTcgcHkzaworNzE5NzIgZmI0YmIwYTM4NTZlMWIwNDkyMjA2YWQ5MTQwOTkyNDQ4N2QxMmZiYSBsZWdhY3ktdHJ1bmsKKzcxOTczIDM1NWJlYjBiZDAyYmVhMzg3ZGNiMzk3MmEwNzg2ZGVkNTZhNDc1NmEgcmVsZWFzZTI2LW1haW50Cis3MTk3NCA3MjM3NzMwNDI1ZmIzNzNmZDJiZGVhYzU0NzkxYWNmMGNkM2ExMTU1IHB5M2sKKzcxOTc1IDk1MWE2MmI4NmRlOGI5OWNlNDZkZWZiNjc5MDc3MWE0NWNhMTRhMmIgcmVsZWFzZTMwLW1haW50Cis3MTk3NiBiZmI0N2JjMWQwNTExNDQxOGFkN2FkOGE2MDZhZWFiNzhkZjNhOGYxIGxlZ2FjeS10cnVuaworNzE5NzcgZjdlY2NmNzY5YzFhZTJkZjlmNThmMGVlZTI4ODMyYWM2ODNhOTU2MSByZWxlYXNlMjYtbWFpbnQKKzcxOTc4IDc4NWVhMjk5ZmUyMzZkYjYxMzNmNDk4NzM1Y2MzODI0ODhkMmZiZTQgcHkzaworNzE5NzkgMzE2MmViMDljMmMzZGRhN2RlMmUyNDE2ZjAyOWNmMzJmMWM2M2UxNyBweTNrCis3MTk4MCAwMjFjMzlhMzdlZGY3NjE1ZGFjZjRkYTQwMjI0MWEzZTQyYTg1ZGNmIHJlbGVhc2UzMC1tYWludAorNzE5ODEgNTRlZTZmZDE4MWYyY2E3MzM1NTUyM2E1ZmU2NTQ4ZmFmYWM4YzQ1MSBweTNrCis3MTk4MyA5ZjYwZWRiYTVhZWFiZmZiNzAzNWY5MWUyOGUzYWFiMjQyMWI0OGRiIHB5M2sKKzcxOTg0IGFiZGMxNzY0ZDhlNWExYWQwMWM3ZWM4MzJlN2RhODAzNDUyNWJjMGMgbGVnYWN5LXRydW5rCis3MTk4NSAwNjg4ZThiMjQ2MzI2YTA2ODA2MWUyMTYzNWE2ZDk2ZDJmOTBlZDUzIHJlbGVhc2UyNi1tYWludAorNzE5ODYgMGIxNjc0ZjI3YjcwZmEwNGM4NTEzYzY4MmFlNDc0NzZjZDg2OWIxOCBweTNrCis3MTk4NyA1ZDRmYzE2NmEzZDQ2MTQwNjgzMDBiZWExNGE0NGVlNzAyOWIxOGM3IHB5M2sKKzcxOTg4IDQ1NmU1ODQzMDIwMjA2YzdkN2Y1M2E3Njg3MjI1ODNjYzI3NWZiZGQgcmVsZWFzZTMwLW1haW50Cis3MTk4OSBkZTFkMGY3MWUyMDliNTJiMGQyNjUyNGVhOGYyN2I4NDQxOWY0NThkIHB5M2sKKzcxOTkwIGVjYzNlYjE1NjQ4ODhjODRhNmUyNTE0ODY3ZGFlNDU1ZjY0NTYyNDIgcmVsZWFzZTMwLW1haW50Cis3MTk5MSAzODNlMzJhYjYwN2M0YWMxYmUzNzZmOWNjMzAzNGJiNTM4OGEzZTc5IHB5M2sKKzcxOTkyIGUwZDQ1ZDMyZmI4MjQ0MjY4OGY3Mzg5ZjQ2N2Y0MGJhMzRhZjcyYTAgcHkzaworNzE5OTMgMzVkNzNhOTg4MDM5ZmQxMzM2ZWYwNzk2ZWZkZDhiODc3YWRlZWMxMCByZWxlYXNlMzAtbWFpbnQKKzcxOTk0IGNhZjJiOTFlZjA2YTU5Y2Y4NDRhOWRmMjVmYTRlMTBjZDMzY2U2YjYgcHkzaworNzE5OTUgZDJjZmQzZDNiYzU0OGY0Zjk1YWY3OWVkMzEyOTE2ZjkwY2ZmNzQwMSBsZWdhY3ktdHJ1bmsKKzcxOTk2IGM0MmI3ZGQxNTUwNWNlOTgxNjFjOWVkM2RmY2JkZjA1ZDBhOWE4YzggcHkzaworNzE5OTggZDMxYmU4YzljOGEyOWJmOTFjZTc0M2I2MzIxYTUyNDQ3ZDhlMjZmZCBweTNrCis3MTk5OSAxZmNhMWM5MzI2OTYyNTE3M2VmMzk2MjZmY2IxOGM1MmI1OGNmMGE4IHB5M2sKKzcyMDAwIGZiODk5ODMzNTNhZDNjM2NmOGZkYTFhYzIwNGI0YzllZjlmNzQ0ZGUgcHkzaworNzIwMDEgZDA1OTRlN2E0NWQ2MzY5MzcyZDllNWJiOGE1YmIzYTk0YTdhNzNjMCBweTNrCis3MjAwMiA5OGFhNjMxZGFjMmJjZDAxZGM2ZDIyZmZjZTA3ZTEzNmU3YTdjNzViIHB5M2sKKzcyMDAzIDU1M2NhZjZiYWU0N2UxMGFkYTk0NWY1NDg1NzhkY2MwODIyZmVmMDAgcHkzaworNzIwMDQgOTczZDI0ZjQ0YjA3ZjYwODg2MWZhNjU0NTMzNWRlNDQzYTEwNzcyOCBsZWdhY3ktdHJ1bmsKKzcyMDA1IDI5M2FkYTFkYmZkYWRlMjQ1M2RhYWYyMDYxN2JlNzFmNWEwN2I0NmEgcmVsZWFzZTI2LW1haW50Cis3MjAwNiAxNzU0MGExNjQ3OTc5OTU2NTg2MDVkMGUwNDQwMWJkZGViYmNkNjAyIHB5M2sKKzcyMDA3IGQwNTEzNGE0ZjAyY2U1OTI4OGU5NjYxYjQzOGQ3NjZlZTE4YTI3ZDQgbGVnYWN5LXRydW5rCis3MjAwOCBmNTIxNTlmODczMzJiYmJmMjE4ZjFhNGM3ZmIwMWYwNzQ4OWUzMjk0IGxlZ2FjeS10cnVuaworNzIwMDkgNTc4MTI5NDRjOTYxYjc4OTQ0NWE2ZGVmNTJmMzJhODM5Yjc0YmQ0NSBsZWdhY3ktdHJ1bmsKKzcyMDEwIGNjMGRmZjJiZjFjMmU2ZDUzZmM0NmU2MDE2ZmYyMTM0OWQ4MWE1MDggbGVnYWN5LXRydW5rCis3MjAxMSBiZjdmMzQwNzM0MThiZWRhMzZmN2NmNWIxMjYyN2RhYmEzZWVkODNiIHB5M2sKKzcyMDEyIDExYTU0NTJlMzMwNWU2MDc0YzVkZjJiY2MyZmM3MjgzMGViYWM4ZDEgcHkzaworNzIwMTMgOWI0NTFmYTU4NTAzYTUzNDBiOTdhOTQ4MWI1ZWI4MmI1OWUzMWUzMiBweTNrCis3MjAxNCBkMzdhNGM1ZDZkMmI1MzhiMWYxMzQ2ZDY4MThmNzI0YzY1MmMzYWRhIHB5M2sKKzcyMDE1IDM2MmI0YWUyMTI5YTRmMjJiMGMxOWE3Y2JlYjY4ZTRkNzczMjk3YjkgcHkzaworNzIwMTYgODA2OGFiNTE2MzJkNjEzMWU2MzNkZTViZmM0YjZlN2M0MzJiNjliOSBweTNrCis3MjAxNyA3NDMyMTFiNjBjOTQ2N2YxOGE0NGJkMGM5NWJhMTk1NjdmYWQzNzVhIHB5M2sKKzcyMDE4IGNlN2MzNTNhMWU5NmJkYTA4YzBhOTE0MTNhNmYwYjc4ZjYyZGExMTcgcHkzaworNzIwMTkgN2ZhYThhN2Y4NjNlMWNmZGUxYjkwZTcxMTczZmUyN2QzMWJiZmViNSBweTNrCis3MjAyMCA5ODg4OWVmMTU3OTU4ODRmNDJkNjhiNGIwZmEwYjViNGNhN2JiZjQwIHB5M2sKKzcyMDIxIGU0OGY4NjBhNWNhYzIwYjU4ZTk4MThhNGZjOGE1ZjI4YzFiZDkxNWQgcHkzaworNzIwMjIgNmJiZGExODUxNzMyZTE1NTBjZTYyZDcxYTE3MTAyZmZiMTUxODY0OSBweTNrCis3MjAyMyAyMTgwMDA4ZDAyZWVhMmMzYTc0NWYwZWY0MGFjYmE0OTk2MTgyNmNmIHB5M2sKKzcyMDI0IGVhNGUxOTJkOTQxNDdiNDhhNTE3ZjU0NjMwZWFkODUxYTgwMDczOTYgcHkzaworNzIwMjUgNGFiYzRjYTQ0NjFmZGJlZDAxNDExYTljY2ZlNmNmZWNmNzE4N2U3MiBweTNrCis3MjAyNiBkNTgwMTc1OTk3Y2Q1MDljYTgyMDE4ZDljYTFkZDBmODlmZjEwMzU3IHB5M2sKKzcyMDI3IGY5NDNkODI0YzhjMzVkZDc2MmRjM2EzMDkwYjEyZWM2NzMwZmFhNGIgcHkzaworNzIwMjggZjJkNzEwZTQ3OWUyZWRhNzIxZjMxNjg3NGIzMGZmNjA3M2FkODA4OSBweTNrCis3MjAyOSA3MWEyYWFkNWJhZDY1NWZlNGUxNmJiZjk3MzY1MzY3Yzg4NTMxY2ZmIHB5M2sKKzcyMDMwIDI5MzU0YzQ5NTBlNDk0NjgzYzdhODQ3NzgzNTY3MDBhODJmNDJkODMgcHkzaworNzIwMzEgMDFkMGJkOTUwY2NkMTM0NDUzZGUxZDE4YWNmZjljYTY0ODhmNTUyOCBweTNrCis3MjAzMiA0MWZhMWExMDYzNzNhZGIyNWQzODhkODE5ZTViMThiYzhhOTBhMTY4IHB5M2sKKzcyMDMzIGMyNWU1YTk1NTRmNTMwOTA2NmFhZmViYjVlZjQ4ZmUyN2MzZWIzNjIgcHkzaworNzIwMzQgOTc1MDY2NzJhZmUzZmI1MjQyYzU4ODNhODg0NjYxMDZiYjRkYmE5MiBweTNrCis3MjAzNSAyY2UyNmM0Njc5Y2I5NzU4M2IyM2ZlMzJjMmIyOTJlNmVkODYwY2EzIHB5M2sKKzcyMDM2IGM2YzRjMDYzZDg3NDBlZjI1MjAxZmE5M2E4NTIyZTgyM2NlOTkxNDEgbGVnYWN5LXRydW5rCis3MjAzNyA5ZTA5NzgzY2UyMjg4ZGVmYWQxMDJmZDQyMjIyYWNkM2Y4OGQ1Y2ZiIGxlZ2FjeS10cnVuaworNzIwMzggNWQ3NTIwM2M4NzEzOTJjZWZiNmEzM2ZhMDA1MjI2OTE5Y2ExZmY4MyBsZWdhY3ktdHJ1bmsKKzcyMDM5IGI0ZWJiMzAwZTYxMTljMGZiZmM3MWNjNjY3YjFlZGUzODdmNjU4YjAgcHkzaworNzIwNDAgNGJkZDg0N2I1N2MyN2EyNWEyZWRkNjdkZjRkYTY0YzQyZTRiMGRkYSBsZWdhY3ktdHJ1bmsKKzcyMDQxIDFmOTViYTRkMWVjYjE4NTk4NjIxNWMxOGZiZmZkOGNhYzE4ZDVjZTYgcmVsZWFzZTI2LW1haW50Cis3MjA0MiAxYTQ1MWZmNjU4M2M1NDhmOGIwNjY0NzEzNTJlNDQ1MTY2N2I0NWRlIHB5M2sKKzcyMDQzIDc4ZGZiYWY2M2IxN2M5Mzk4YTE0MjJjMjFjMjk4ZDNhODQyNDVlMGMgcmVsZWFzZTMwLW1haW50Cis3MjA0NCA0YjRiNTlmMjc4YmYzMzhjYjI1MzIyNmRkNGJkODBlMmVkNGIyYjcyIHB5M2sKKzcyMDQ1IGIwY2NmMmFjZmExZTY5MDgwODllZmRiOWNiMDYyMTZiMjk1NDdhNWYgbGVnYWN5LXRydW5rCis3MjA0NiA1NDI3OTE2MzM4OWQ0NWY0N2VjNWI5MjdhYTY5ZWM3ODk2M2M0ZDhhIHB5M2sKKzcyMDQ3IDg0NTM3ZGVmNDU1MDUwMTk2MTFkZjkzZDVhNTk3ZThmZmI0YzY3MWIgcmVsZWFzZTMwLW1haW50Cis3MjA0OCA3YzM5NTc0YWQwMzc1NDE2YTJhYWFhYTQyNjRhZTUwZDg0ZTBhZWYwIHJlbGVhc2UyNi1tYWludAorNzIwNDkgNzhmZDE1ZTA1MjU4NDA3MGNhMmNlMmQyZDFiOWUwOTk0MGY1NzlmMSBweTNrCis3MjA1MCBlNTZmZGJhNjFlOTc1ZjExODQ5MzE2ODBiNzhmMjJjYTlkNzE2Y2ZmIHB5M2sKKzcyMDUxIDM4NTIyZWEyYWRkMGE4NzYyNmUzMTdkOWNjMmNkMzY4NGRhNWJiN2EgcmVsZWFzZTMwLW1haW50Cis3MjA1MiAxYzA2MGQ1YzQ3Y2YwYWVkYWM3YzdlNGYyYWE1MGQ3ZGVhNDU4OGE1IGxlZ2FjeS10cnVuaworNzIwNTMgMmIzOTQ1ZDc1NWE3ZmU2MWI3OGY1ZGUyZTA5M2I2MjllN2VkMDUzYyBsZWdhY3ktdHJ1bmsKKzcyMDU0IDAxOTI0NGY0YjBkMGQwZTVkOTMyZjZlNTQwMWIxMWU0ZGM4MTNjNmQgbGVnYWN5LXRydW5rCis3MjA1NSA0MjNmOGY5YjA3YjE0YTg1NDRjNWZmMzMwOWE2ZDI4OWRjZGEyODRhIHB5M2sKKzcyMDU2IGQ5Yjk0MjJiNDA5Yzg5ODQwMWY5ODBmZGM4ZjM0YmM5MThiMWE4ZjggbGVnYWN5LXRydW5rCis3MjA1NyA5N2NmZjU5M2EyNTdlOWQ1YmE1ODFmNTlkZTRhMTZmZDdiMmZhOTM5IHJlbGVhc2UyNi1tYWludAorNzIwNTggNmYxNTg4ZmI3NTk1ZTFiMjBmZTZkNmY1Yzc4NTZlNTQ4MTBiMzg1MiBweTNrCis3MjA1OSBiMGFlOWZmYzc3NzlmZDc1MDNkYzRmYmQ0MjExNWU4YzMwNjkzZjVlIHJlbGVhc2UzMC1tYWludAorNzIwNjAgMzI0NjBiMDRlN2I2ZTBkNTA3NzI5MmE3NjVjZWE1Yjg5NTEzYWQxZCBsZWdhY3ktdHJ1bmsKKzcyMDYyIDdiMjA2ZTJjMDA5MmM0YjJiYjgxZmYzOTg0MTNkNDQ4OTA5YjhmZDMgcHkzaworNzIwNjMgNGFmMmJkYzliMWI3MzU1Nzk1ZjY5NzcyZGE0Y2I4MzBjZmJkZTIyYyByZWxlYXNlMjYtbWFpbnQKKzcyMDY0IGNhYmNlZjdlNmYyNTZjZDE4MjU4YTUxYjU1MDZmMjQ5OWE4NjE5NjggcmVsZWFzZTMwLW1haW50Cis3MjA2NSAxZWM0YmYzZGRkYTZmNWVkMjkzYTliOWJkZGQ5M2Y1NzY5Y2Y0ZWVkIHJlbGVhc2UyNi1tYWludAorNzIwNjYgZGNiYzIyMDNiZGYzNjI3NmIyYzhkMDcxNjk1MjlkZWVmZDcwNzgyMyByZWxlYXNlMjYtbWFpbnQKKzcyMDY3IGQ2NWRiMTY5ZTNhZDcxNTE2ZTA0YThlZWM3YmJmZTNjZTZiYjdmMmYgcmVsZWFzZTI2LW1haW50Cis3MjA2OCAzZjE1YTA2ZDAwNDczYWM5NDYzMmEzOGYxMjQ0ZWI0YmY5ZmI0ZGZkIHJlbGVhc2UyNi1tYWludAorNzIwNjkgYmYwNTIyMmMwNzQwMGUyMWI2MmRlOTEwZWM2YWE4YWRlYjZjZmRlOCByZWxlYXNlMjYtbWFpbnQKKzcyMDcwIGY3YTM5ZTYxOWUwYTFmNjJmODU1MGM1MzA0NDZmMjZiYjU1NjUwMjIgcmVsZWFzZTI2LW1haW50Cis3MjA3MSAwMmQ2ZjNhNjk3N2Y3OGI1ODg1ZTFlMmQ0NDk4MTEwMWMwNzVmZmNkIHJlbGVhc2UyNi1tYWludAorNzIwNzIgZjI0NjcxNTI4OTgwZTdjMzQzMjcwOGUxNTI4MWMyM2I5M2JkZmM3ZSByZWxlYXNlMjYtbWFpbnQKKzcyMDczIDcxNGY5NWVhNmI4ZjZjOGM3OGVlNGI4OTdiZDkwZTIwZTBiNjNmN2IgcmVsZWFzZTI2LW1haW50Cis3MjA3NCAzNmViNTM3YWJiMTc5MzYyZjRhZmUzYjRlMTY4Y2VhYjcwYzU3NzgzIHJlbGVhc2UyNi1tYWludAorNzIwNzUgNTAzZjBmNDFmMzVmOTFhZjQyNTRhMGE0YTg4OThiZGVhMGViZGJmYyByZWxlYXNlMjYtbWFpbnQKKzcyMDc2IGIyOGRkZWJiZDgzNTU3NTk4OWNlNDUzNTMyMWY0MTFiMjAyYzRiYTEgcmVsZWFzZTI2LW1haW50Cis3MjA3NyA2ZjEwZDUyNWUzYjg0YjUzMDJhNDdiNWFhYjc0MDY5NjczYzdiY2I4IHJlbGVhc2UyNi1tYWludAorNzIwNzggMzE2NmRlZDZiYzRhMjZjMmQxOWEwODk0Njg5MTExYzI3NTNhODgzNiByZWxlYXNlMjYtbWFpbnQKKzcyMDc5IDlkYzM0ZWYyMjczNTM4MjdhNDM3YWIxNDRhOWNhZTk5N2FhZTkyZDUgbGVnYWN5LXRydW5rCis3MjA4MCA5MDAwZjk2NmNjYmJiZjAzNTg1ZmJkNGU0MzJiYzljZGIwMDAzMjZiIHJlbGVhc2UyNi1tYWludAorNzIwODEgZTI4NDNiNjQxNzVlY2Q2OTRmMGRlNzhmMWUxOGQyNDNlMWNhZWY4NSBsZWdhY3ktdHJ1bmsKKzcyMDgyIGM4Zjk0MDA3YjFjNDZlMGUxOWUzZTAzYTIzNzVjY2RhMTU2ZmUzNGYgcHkzaworNzIwODMgMjMyZDIyNTBkNzAzNTVkZmQzMDMxZGU1MDhkMThjODdmYjcxOTAyYiByZWxlYXNlMjYtbWFpbnQKKzcyMDg0IDAyNWJhMTJjN2RhNTQxODgwOGYwNGY3ZmY3ZDRjYjc0MzBiMGMzMWQgcmVsZWFzZTMwLW1haW50Cis3MjA4NSA3NDU5MDIzZmY4NjFhZTVmYWNmYTU2MjFjNjkwZDVkNDBhMTgwMWYwIGxlZ2FjeS10cnVuaworNzIwODYgN2ZkYTVhZjJhZjdkMTBjNjZkZDY2NGQ4NjlhNmJhMzJhZjMyZjJkNiBweTNrCis3MjA4NyBhMzhkNmNkOWFhNjM2OWNmZmUzMmYwZjMyYzI2NzdhMWQ1YWE2MTUxIHB5M2sKKzcyMDg5IDE0NjlmYjFhZWE5MjRkZGNmYzhmNmQ3MjliMDQzYTNjY2ZmZjZiYzkgcHkzaworNzIwOTEgM2I0Y2VhNDNmOWU2Mzk5MmMyMWRkOTFmZjhhOTIwMDFiMzYyYTc2YSByZWxlYXNlMzAtbWFpbnQKKzcyMDkzIDgxN2Q4YjI4Y2Q2YjNlMjYzMzY2ZDZmNTJjYzZhYjQ0YTYxOTMyNjMgcmVsZWFzZTI2LW1haW50Cis3MjA5NCA5YzJhYzFlZjNhNmZlNGQ3ZjM3YTMyNTE2YzZmZjJlODBhOWZhMTc1IGxlZ2FjeS10cnVuaworNzIwOTUgYjQwODk0MmZiNDM1Mzk4ZTlhMjFiMjY4MmQxMzM0NzQwYTkwZGQ1MCByZWxlYXNlMjYtbWFpbnQKKzcyMDk2IDY5YmVhMjZlYzg3Yjk5MzdlNTY1ODdmNDUxNmRhYTVkNTExODEwYjEgcHkzaworNzIwOTcgY2VhNjQxZmY0NTM0YzM5MGRiYTQzMjkwMmJjYTNiNGM0NmZjMmQ2ZSByZWxlYXNlMzAtbWFpbnQKKzcyMDk4IDNkZmJhYzc5OWNmNTFjOTFiYTA5ZDYyYTBiODczNzRlNDgxMjFiN2IgcHkzaworNzIwOTkgMDIwNjg4NzdjMTkwYjNkNzc5YWFjNmYzYjRkMDUyMGQ2NjQ1M2UyNSByZWxlYXNlMzAtbWFpbnQKKzcyMTAwIDRlZjdmOTNkNjFhMWE4ZDcwNWY2ZTg4YmI1ZWU1ZGMzY2RhMDcxOTUgbGVnYWN5LXRydW5rCis3MjEwMSA4NjE3ZTgxMDE2YjZiMGMxYzg5ZGM5NDNjYmM3ZjA0NjczODg3NmIxIGxlZ2FjeS10cnVuaworNzIxMDIgNWY4MWM0NWJkZjZkMTAxODA4MDZhNDNiNjFjOTUzODQ2NjU4ZjI1NCBweTNrCis3MjEwMyBiYTYzOGQzYTQ5ZDE1ZjVkZjY5OGE1ZGNmZTRhODExMWFiMTY3MzM2IHJlbGVhc2UyNi1tYWludAorNzIxMDQgZTk1Yzg3OGFjNzlhZTdkNzk5OTYzNTdkNDdlMTdhMDRmZWE4NWNjYSBweTNrCis3MjEwNSA3MzcwMmFiZTFjYjk3MTg0ODNiNTAzM2M0YTM3ZmY1YWYxZDg3ZjE2IHJlbGVhc2UzMC1tYWludAorNzIxMDYgYjg2MzNjNzg5M2ZlZjQwMmVkNDY2OWJlMzU3YzQ4NDMyYjAxM2Q4NSByZWxlYXNlMzAtbWFpbnQKKzcyMTA3IDJlZjJjYjU3NzNmZTJlNGVhZWFkY2RiNDE4YmVkZDg2NTY5OWU1MjAgbGVnYWN5LXRydW5rCis3MjEwOSAzNzU5ODM5YjlmYTU0OGJjZTBkNDAwYmNlYTJlZjkxZmFiODEwMGRlIHB5M2sKKzcyMTEwIDIxODAzMDc1YjQxMTE1NzgwNmQ3NTdmZjQ5ZWQ5MzhjMGQxYjgzMjQgcmVsZWFzZTMwLW1haW50Cis3MjExMSBhZTdmODJiYmYxNmM4ZTZkZjNhZDMwMzJmODA0N2ViZDE4ZGJhNTA2IGxlZ2FjeS10cnVuaworNzIxMTQgYTM4MTRkYzk5YjgwZDFjMjNkOWNkZWM4Y2Q1ZjA5N2M2MWYzODQ4OSBsZWdhY3ktdHJ1bmsKKzcyMTE1IDNkNmJjNDI2NDZiNTFlMGMyZjNiZDMyMjAwOGYwNjgwNTVjYzI0ZTcgbGVnYWN5LXRydW5rCis3MjExNiBjODU1ZGY3YzZiYjU5MTA1MGJjOGEwMjMxODNlNTc1YTUzNWFkNDU5IHJlbGVhc2UyNi1tYWludAorNzIxMTcgY2NmNzg1M2IwNzkzMjQ0YmZmYzU0MmY4ZDRlYTI3NjZjMzUzMmNjMyBsZWdhY3ktdHJ1bmsKKzcyMTE4IDY0N2EwNDBkZjRkMTFjZDQ3MTk5OTkwZDNhMmIyYzJhMzFjZjZkNmYgcHkzaworNzIxMTkgYTNmY2NjZWU4OTU3YTBlNmExYTRkNTdiYmFiMzc3NGM1MzkxMzI3ZCBsZWdhY3ktdHJ1bmsKKzcyMTIwIDQyZWY3NmY1NDRmYmYyMWI2ZTYzNDAzMDU5ZTYzMjAwNTQzZjNkZjkgcmVsZWFzZTI2LW1haW50Cis3MjEyMSBmZTA2MjE4NzYyNGNiZTczYzMxNzdkNmQwMzFkNjgyN2UwMGZlMjk4IHB5M2sKKzcyMTIyIDc2MTdmYTcxNjRkZTZkYzcxNDBhYjllOWFkOGIwYzE4NmMxNjMxYjAgcmVsZWFzZTMwLW1haW50Cis3MjEyMyBjY2ViYmFkNWY4ZGZmZTlmZDhkYmYxYzY5NTllMjI4YWM2YWZjYzMxIHB5M2sKKzcyMTI0IDkzZmU2MTFjYmQzYWExMmYxZmRmZTBlMjEzYzUyNTMyODJjZjUwNDEgcmVsZWFzZTMwLW1haW50Cis3MjEyNSBiMzljYjI5MjE5NDU3M2QxYmI0MGEzOGYxY2ZmNjcyZjFkNGY4MTU2IHB5M2sKKzcyMTI2IDQ3NjIzOTRmYzI2YzUyYzE5YjkzMDBmODA0ODhkMjM2YjE1ZWZlYWEgbGVnYWN5LXRydW5rCis3MjEyNyA1ZDk3NzFkN2NjNDZjN2YyOGI0NjBjMTZjZWQwMWVjNDgyZGJkN2IxIGxlZ2FjeS10cnVuaworNzIxMjggOGE4NTlhYzdlNWI4MWUxOWJlY2NhZTA2ZGQ0ZmM5NWYzNDU1OWQyMiByZWxlYXNlMjYtbWFpbnQKKzcyMTI5IGUyNzQ0OWRlNjFkYjY0OGM1NDc3MGE2Yzg4MGMwMzI2NGFjMGFjNzIgcHkzaworNzIxMzAgZTg5NDQzM2M2NDY0MGYxOTc4N2MwNmRjYTVhN2E5NjE2NDAxZDIyZCBweTNrCis3MjEzMSAyN2M2YjYzZDFkYjM1NWY2ODc3MTc1ZDNkYzE3NmM5MGE3ZGY0MDFmIGxlZ2FjeS10cnVuaworNzIxMzIgNDExMzc0YzVhYTQyMjc4ZDMwZjE2YTA3MjExYmFkYWViNWY1ZjIyNSBsZWdhY3ktdHJ1bmsKKzcyMTMzIDk0Y2RmZDA3ZDRmNDhkNzI4NTI0OGM3YzAzYmUwZTQ4ZDVmNGJhNzMgbGVnYWN5LXRydW5rCis3MjEzNCA3OWRjOGQ1ODhlYjMwNjZjMjk4YmY0NzllOTA3YTg1N2FhZWM1OTY2IGxlZ2FjeS10cnVuaworNzIxMzUgZDY4MmM5MzQ2ODQ4MDg4MzI4MjU4NDI0NjM2NDRjMmM5MmI2ZjBhMiBsZWdhY3ktdHJ1bmsKKzcyMTM2IDBmMmIzMzU2NjhlZWJjOGZkYTlhM2IxMjA4NjBiYTAzMTU4ZTg4MzIgcHkzaworNzIxMzcgMzRlN2MxYjE0NDk1MDFhMTgzZTFkOGIxYTE4ZGRlODViYjk4Zjg1OSBsZWdhY3ktdHJ1bmsKKzcyMTM4IGExZWZhZjAxNTEwMDE3NDcwYmZjZGFlYTgxNDFjYzE0Y2VmNThmYmEgcmVsZWFzZTI2LW1haW50Cis3MjEzOSA0MGQzNDMxZGIyNDA4NTVjNDNmYjVhYmRhOGUxZjI4Nzc2YjExYmI0IHB5M2sKKzcyMTQwIDJjZGUwZDAwM2ZmYzAzZTgwMTBhMWE2ZGExZmVmZDcxNDBjZmQ4ZGUgcHkzaworNzIxNDEgZDY2ODhlZDA0MGNmMzZiNGNjMjE2ZjY0YzM1ODE3NzVhY2JjNjg4YSByZWxlYXNlMzAtbWFpbnQKKzcyMTQ0IGM0YTFjNDg4NDA1NmQ0OWI4ZDgxZWFhZWE4NWRlZjc5ODRkM2FlMmYgcHkzaworNzIxNDkgYWJjODBmOGIwZGZkYzFmZmRkNWM4ZDFmZjAwZDI3NGZkMzc1YWI0MSBsZWdhY3ktdHJ1bmsKKzcyMTUzIGVkOGMxMzk1ZDAzMzBjZGY3NDZhMmI1ZWVmMjYxYzQ3YTViN2MwZjQgcGVwLTAzODMKKzcyMTU1IDI5NjU2YTAzY2NlMmZhNGMxMDRkODA4MjlmMWRjYmRhODRmMDI5NDQgbGVnYWN5LXRydW5rCis3MjE1NiBiYzYwZGUyMzIyMDMxY2VkNWI0Nzg5OTFmN2IyYTA1NzMzZTI3M2UzIHB5M2sKKzcyMTU3IDRiODZlNTNmOTAwNmY2MTcyYTliOWNkMjZkMjQ0NmM3OTM0ODFjZjYgcGVwLTAzODMKKzcyMTU4IGJkYWI3Y2NkYzdiNDg2NDExY2Q0ODQ2OGIyZmVhZWI5YTE5ZjEzODggcGVwLTAzODMKKzcyMTU5IGU3YTllMmZkNzEzZjAyNDE3MGE4NDUxNmQzNmE5NTUyNWNkZDZkNjQgbGVnYWN5LXRydW5rCis3MjE2MCAwOTM1ZTI0YzgxYzA4ZDVkZGI3NjI3MzQwMzMzMmQ5MDYxYjNkMjYwIHB5M2sKKzcyMTYxIGUwOGU4MGU3NjhjMTFmMDk0ZjFiNDA3MDczOTUzNDIxYmY2YTE4NzMgcHkzaworNzIxNjIgYTgwYjNiYjRkMWIwZGIyNjU2ODc2YjFlM2YwMzRjZTExMDM0MjFmMyByZWxlYXNlMzAtbWFpbnQKKzcyMTY0IDU0YzdiYTNkZGZjNjU2ZWYxZGQzOWJlZmE0NzNiYjM0NzgxNjFkZTYgcGVwLTAzODMKKzcyMTY1IDYwZDBmMzczYTg5NDZhMjBhMGQwMjhiODA0ZGJjZTRkNWQyNWJmZjkgcHkzaworNzIxNjYgYWViOTE0MTkzYjQ1YTYwYTFkN2RkNGYxYWEzMTdkMTgyODk0MmU1OSByZWxlYXNlMzAtbWFpbnQKKzcyMTY3IDg1NTQyNzE1YTI0OTBiZDYxYjRlNWQ2MDMxOGM0ZjYxNDQ1ZTQ2YzcgbGVnYWN5LXRydW5rCis3MjE2OCA2MzQ4MGI5MmE1ZTEyNWY4ZDliZjAzMTY3ZDkzYTVhMjg4YzEwNmIyIHJlbGVhc2UyNi1tYWludAorNzIxNzAgOTZjMDRlNmE2ZDg4MmQzNmM1MjA3NTRhMTdhZmQxYmRmODliNGMxNiBwZXAtMDM4MworNzIxNzEgY2M2OWQzZGZmODdhMjIyYWE3NWVhNDQ5ZjRjZGMyZTRiZWQ1Mzg2YSBwZXAtMDM4MworNzIxNzIgNWM1NWI5YzgwODQ2YTRkMWZhMzE0NmVlZDI2ZTkxMmIyNGQyYWQ1MSBweTNrCis3MjE3MyA5NjNmMGY1MTk3MDk1NWVjNzQ0MjMwMWY5YTBjOTljMDc5OTg5MjY3IGxlZ2FjeS10cnVuaworNzIxNzQgOTg2NTFlNGY2NWZlNTlhYTA3NTljZDU5YTA4MDZiNTQ3OTY2OTY1YiByZWxlYXNlMzAtbWFpbnQKKzcyMTc1IGJjMDRjZWJjYTdlNmI0Mjk4M2NlN2Y4ZDAxZTg4NzZkOTJhY2IxMWIgcHkzaworNzIxNzYgODlkNWVmODJjMDA2NzcwY2YzYmY2OGFmMjRjZGQ0NTJmZWYxNzhhYiBweTNrCis3MjE3NyAwMWFlZDQ4MTk2YjAyOGViOTFhOGQ3ODc4ODA1MGU4Y2FhYmEyN2RmIHB5M2sKKzcyMTc4IDQwOTQ0OGQ0NTVlM2U0MjYwZWFmYzljNzExMWM2Y2U1YzFlZTg0NjYgbGVnYWN5LXRydW5rCis3MjE3OSA5NjBlZjAwZDUyMTQxNzc5ZDgyNDlkZmFkYmIzNjdlMmY5OGFjYTlkIHB5M2sKKzcyMTgwIGIxOGJkMWE0OTRjNzFmMDU1OTYyNTQ0MWQ2OWIwNDYzOWU4MjFiYTUgbGVnYWN5LXRydW5rCis3MjE4MSAyMjgwMzY1ZWFhNzJjMTA3NDZkNzQzYmY3MWQwYjg0NjRlMTU2ZTg1IHB5M2sKKzcyMTgyIDk1MDYxZGEwNmNiODQ1Yjc5MDNmNGJiNTk0YzZhZGQ4ZjAwNWZiNDMgcmVsZWFzZTI2LW1haW50Cis3MjE4MyA4OTYzY2Q4NThhZDYxMDZhNjNjNTMwN2ZlZTAzOWVhNDNiMTNkOWQ5IGxlZ2FjeS10cnVuaworNzIxODQgOGZiMTljYTYyZTcwZGZjNWY5Njc5ZWVjN2I3NTNlZDY5MTc5MTlhYiBsZWdhY3ktdHJ1bmsKKzcyMTg1IDEzNTVkYWMyMzhmZWNhZWI4MjczMWMxNmYyNzFhMmEwMzEzMDM2OGUgcHkzaworNzIxODYgMGQ4MTdlOGVkM2ViZjlkZjdhYmFmZmEwOTJhYmFiNTU0MjE0YmY4NyBweTNrCis3MjE4NyA0MmQyOGU1ZGM3Y2IxNGM5NDUwYzJmNjJhMWRiNmI1ZjQxMTA3NzVjIHB5M2sKKzcyMTg4IGViODExNWFiZmY1ZTU1MjE1NGZkZjBmYTEwNjYxYjg1MzUwNTFmY2UgcGVwLTAzODMKKzcyMTg5IDIzYmM0YjM5MWMxMDIyOWI2OTQxOGExNDBjNmY0M2YxODk0MTU2ZjYgbGVnYWN5LXRydW5rCis3MjE5MCAwYzhiZmRkYmZjYTI2NjY3NWYzYmUxY2Q0MzdjMDFjMmJiZWFkZjE5IHJlbGVhc2UyNi1tYWludAorNzIxOTEgOWQ4NDBhNThhMGQ1ZDFiNmFiYzhmZTJjNWE2MjBiODdiM2MzMWZjNiBsZWdhY3ktdHJ1bmsKKzcyMTkyIDUxMWEzN2VmMWE0MTBmZjRkMjVmNzQ4MTk0ZGRiM2JjNjIzZWJlMGQgcHkzaworNzIxOTMgMDUxMDE5ZjBkZDlmZTM5YTVhZDhjMzQxZjhmMTMzNDhhZDE4MTA0NSByZWxlYXNlMzAtbWFpbnQKKzcyMTk0IGY2ODZhY2VkMDJhM2U0ZDQzYzM0OGM2M2FkNmQyNzgzMmNiYzVkZjcgcHkzaworNzIxOTUgZTE5Y2MzZWJiNThhMGJlNjI0NGE0MzdhZDQwODRjY2RmYzI0NjFkNiBweTNrCis3MjE5NiAyMDZjY2Y5YWEwMjVmMDE2NDVmYzFiZjkxZDdhY2I3MmVjNzc3MGM4IHB5M2sKKzcyMTk3IGU2MmJjNTdhNjJlYWJhMGFhYmU4NjQyYzczYThlZmJkMDJkNTk1ZDYgbGVnYWN5LXRydW5rCis3MjE5OCAwMmI2MTUzODlkM2VmNTA2YWNkNTAzOWUwYjc3Mjg2YWVhYjA3OTU3IGxlZ2FjeS10cnVuaworNzIxOTkgZDdiNTFlYmY2ZGU0MjQzNjlmZjVkNTYzNmExNWI0OWNlOTE2NjBhYSBsZWdhY3ktdHJ1bmsKKzcyMjAwIDFiNzFhNTcwZjU0ZWFjZmQ4NjAyYjQxNjk0MWRiNDlkMDE2NzYyNjIgbGVnYWN5LXRydW5rCis3MjIwMSAxYTg0OWVlNWYwOGNjODY0MTY4MjFiOGNiYTE3MjkzMGFlNTg0Yjg4IHB5M2sKKzcyMjAyIDVhYWYyNGVjNDNkYzEwYWZhNGFlNzU2YzU2OTkwNmEwNTdjNWQyMWUgbGVnYWN5LXRydW5rCis3MjIwMyA5MDNlODBmM2U4MTE4ZWYyN2M4MWFjYjRlODk1NmIwNjE0NDg0YTg5IHB5M2sKKzcyMjA0IDExYjFmYzk5MjFiZDBlMDNkMTE0N2Y2ZWU4YmRjNzBiM2UyODQ2MGUgcHkzaworNzIyMDUgZjI3N2E4NDA3MWYxNGVlMjg1N2I0ZmExYTQxZjhmNGUxYWMxMjE5OCByZWxlYXNlMjYtbWFpbnQKKzcyMjA2IDIxYmRhNjExZjBlNDAwZDc1MGU1OWZkODZmNmQzMmEwYmIzNDg4N2EgcmVsZWFzZTMwLW1haW50Cis3MjIwNyBlYzNmYzY0NjMxZDk5ZWVmYTFlZjAxOTRkZWYxOGU4NTQ2OTRjNzQ2IHB5M2sKKzcyMjA4IDUyYTc3ZWYwNjljZGJhM2ExMmZlNzc2M2UzNzk0MDdlMzhlOWRiMzMgcHkzaworNzIyMDkgNjYyMDBhNzZkZTI2NjJiNDcxNTY1YzgzNWY5Njk2MWNlZTM4N2MzMCByZWxlYXNlMzAtbWFpbnQKKzcyMjEwIDliNTVlOWI5OWE0MzZiZGEzNTdkY2M5MjJmOTg1YjRkNDZjNWFjNmYgbGVnYWN5LXRydW5rCis3MjIxMSA1ZmU5MDRmZmM2YjgyM2M0ZjliMjE2YjhhOGYwNzUzN2UzMTE1OTUwIHB5M2sKKzcyMjEyIGJlM2MwN2FkZGU5NWRhNDM1ZWZiZDZiNDEyN2I0OGI0OTkzNjVhNDUgcHkzaworNzIyMTMgZTBjZWRlN2Y1MjFiNDM5ZmU5ODEwODViNmJjMjA4MjAzYzg4MTc4YyBsZWdhY3ktdHJ1bmsKKzcyMjE0IGE4OTMxOTQxNTVhMjI1MjNmYjc0Yzg2OTg0YjI2NWY2YWVjMTZhZDEgcGVwLTAzODMKKzcyMjE1IDRmNjVlZTFmNDg0OGY2OWJmNGU3YzkyNjQ2NGMzZDMxMzEzNDkzODggcGVwLTAzODMKKzcyMjE2IDU4NzA1MDgyZTdjODVjYjc1ZjY0ZDZhZWMxZWE5MmY5OGRkZDQxMGUgcGVwLTAzODMKKzcyMjE3IDUyYTg5ZDcyM2I2YmMxMmQ4MzczZmYxN2YyNWNlNTI5YjFlNjM1MWYgcHkzaworNzIyMTggMGVjYzViOTA2NDc3OTUyMzVkNmRmOWU3NGYzOGE5MDNjZDEzZTIxNSBweTNrCis3MjIxOSA3YmNlMDUyZjBlN2I3MWU0ZWY2M2MyYmQ0OGFkZTc2NjMzMWU3ZjY0IGxlZ2FjeS10cnVuaworNzIyMjAgYzVmMTRkYmVhNDNmYmNjY2ZhYjdjZGI3OTE5OTRkMTIwNDIyMDUxMSBweTNrCis3MjIyMSBiMDZmMTFmM2I2NWIwZDg4NTllZGU4Y2VjYTA0ZmYyNmRjZWZhMDEyIGxlZ2FjeS10cnVuaworNzIyMjIgYmE0NWUxMjY1NzRkYTFkNmJmNjFkNGJlNzEwOWM5YWY0MzkzN2I4YyBweTNrCis3MjIyMyBlNTQxNDFkNjNlMDE4NzRiYTJiODkwMDI1ZDgyMGRhYmUwYjdmMjcxIGxlZ2FjeS10cnVuaworNzIyMjQgNjRkOWE5ZTdmNjhlY2Q0MjBhMjk0YTkyZjlmZmUyNTFhNmRhMTRmZiBweTNrCis3MjIyNSAzMDNiN2VlOGU3ZmVmMmJhZjNlYWMxYmZjNGM4MmIyNDc0NTQxMWVlIGxlZ2FjeS10cnVuaworNzIyMjYgMDAxYWM1OWMxZTY3MmNlM2RhNjRiYzFjODRlM2NhZDM0YmJlMmZjYSBsZWdhY3ktdHJ1bmsKKzcyMjI3IDlmZWYxZjE2NTdjOGE3NTUxNGMzZDI4Y2QzNjFhZjQwNWVkNDFmODYgbGVnYWN5LXRydW5rCis3MjIyOCAzNThhYjFmZmFhODA4NGVhNzczYjFhYTkxYzNhOGQ3Mzg5MGU3ODY5IHB5M2sKKzcyMjI5IGFlZTJiMTBkYmFiOTM4ZWMyYWE1NGQxODA3MWJkYzZhZDA4ZGJlNDYgcHkzaworNzIyMzAgN2ZmZDk2MjVjOTFjZmQ3OTg0MzY1MWQ1YTJiMDk5MzQwZWVhZjM3NSBwZXAtMDM4MworNzIyMzEgMDAwNjNhZGYwNTU4NDU2NThiN2RiMjAxZTQ2YmFlMzIyOWMyYzllMiBwZXAtMDM4MworNzIyMzIgMDcwOWM2ZDM2OWRlNjcwN2NjNjlhODdiNTNkZDM5OWFhYzRmMzk1MSBwZXAtMDM4MworNzIyMzUgNzY0ZWFlNTIwODgwOGY1ZjA0YTMyNmFlMGIwNzYxMDIwYjNiZmVmNCBwZXAtMDM4MworNzIyMzYgOWIxMDdhNzk3ZGY4OWUwODYzZDdkM2Y3N2RkMTlkNjBmNmRlNjUwMyBwZXAtMDM4MworNzIyMzcgZDZiM2I3NGJkYTBlNWFlY2JmM2Y2NDU4ZTQ5NThjMjNhMzJmM2YwOCBsZWdhY3ktdHJ1bmsKKzcyMjM4IDUyNmIwZGMwOTEzODIxY2Q3MDc4MTRkMGU3NjRjOWZlNmYzMGEwMzkgcHkzaworNzIyMzkgZjc4MDE2OTk4MTVjMTI0M2ZmOTllYTgxN2Q2M2VhNDI2ZDVjMDZhYyBweTNrCis3MjI0MCA2ODc3YTFmNGEwOTI3ZmVjNjVlMWJhM2VkOGU2MzE1ODY1Yjg2YjYyIHBlcC0wMzgzCis3MjI0MSBhZTI0ZGU0OGFkYzQxZDExOTZlOGJhMWI0YjI0MmYzMWUyZWFmMjE2IGxlZ2FjeS10cnVuaworNzIyNDIgYmQ2ZDI1N2E5MTMwZjc4NmNjNWM2ZjJmNzJiNWEyNzI4NTJkOTdhNSBweTNrCis3MjI0MyA4N2ZjMTE2MmQ5ZjRiNjk0MDljOWIyYzk1MTQ3NjgzYTM4NmY5YzNhIHBlcC0wMzgzCis3MjI0NCBhYmY1NzRlOWYxZDNkNTlkNzk3NWUxZWY1ZjVmNGI5NDZhZjM0MDAzIHBlcC0wMzgzCis3MjI0NSAzOTQ0NjJlYWI2NWRiMDUyNzRhNmY2NjQ0NWFjODE4Mjg2YWY5YTk5IHJlbGVhc2UzMC1tYWludAorNzIyNDYgYTY3NzgzZDgxMmY2ZTZjZDM3NzRmYjE0YmMxYjFmNmU3MGU0NDdjNiBsZWdhY3ktdHJ1bmsKKzcyMjQ3IDMzMjcwYWQ2YWRlZjgyZjYwNTNiYzNiYzhlODk5ZjU5NWY2NzVmZGEgcGVwLTAzODMKKzcyMjQ4IDEzYTgyYTcxMGYxOWI0Mzk4MDBhOGM5ZTQ5OWY5NDFhN2ZkZjU4YmMgcHkzaworNzIyNDkgZjcwZTkxZjVmYzljZmYyNDhiNmMyZTE2YWJmOWI5NGU0NGY3ZmMxOCByZWxlYXNlMzAtbWFpbnQKKzcyMjUwIDYzZGRjZTlmYWY0YTk4N2ViNGE4Zjg5MjgxZTJkMGU3Zjk1YjcxYzcgbGVnYWN5LXRydW5rCis3MjI1MSA0YTc2ZDZkMjk3Y2ViZTVlM2IwOWExMjlhNWEzOTg3OWYwODRkNzIyIHJlbGVhc2UyNi1tYWludAorNzIyNTIgZmI1MjFmOTk2ZGUxM2JkYTc1MWRkOGE5ZTcxMmM3NmI1YzI2NDE0MiBweTNrCis3MjI1MyAxZjAwYmMxZDExNWEwYmY0MGZhMDJkOWI1MDYwODgzMDA3MzExYTY1IGxlZ2FjeS10cnVuaworNzIyNTQgNWIyOGRlYmExY2Q2YjdhMDEzYjY1ZWFhYThhM2I5ZWQ3M2M3NWU0MSByZWxlYXNlMjYtbWFpbnQKKzcyMjU1IGUyYjU1M2Q3MjA1ZjM5YmViMTA1ZGRmZDg3ZjBkMmQzZjg0YjNjMTQgcHkzaworNzIyNTYgYThiNWE1YjlhNDlhYWQyMTgzOTFiYTJhYzM4YmFhYzFmYTMxNDgwZSByZWxlYXNlMzAtbWFpbnQKKzcyMjU3IDRmODY3ZjE0OTRkNTVlOWMxZjAwOTE4MDM1MDc0ZDdhNTY3YjRjMmEgbGVnYWN5LXRydW5rCis3MjI1OCBjNmY5OWQ0YzgxMjJlMTJjYjRjYjdjODZlNjZlZWY4OTVkNGZiYTY0IHJlbGVhc2UyNi1tYWludAorNzIyNTkgMGI3ZWVmZTdiNmQxN2Q4ZjRjYTJhODFlMWYyZjA5OGRhYWNjN2Q1MSBweTNrCis3MjI2MCAxYzI3ZWNiZWQ4YzQxYTcxMjllYjRhM2E4ODI5NTczOTQ4NTg2ZjdjIGxlZ2FjeS10cnVuaworNzIyNjEgY2U5NDcyMDBiNzY4OGE5Mzg0ZDNmZTljNDcxNTRhMGU3YzI0MDRiOCByZWxlYXNlMzAtbWFpbnQKKzcyMjYyIDE4YTVhZTk2YWU1YzlhM2ZkZTFkZmJmNjgwYjNiNTE5MzMxODIxNzkgcmVsZWFzZTI2LW1haW50Cis3MjI2MyBlNGFmOTcxYjkxODQ1NjA5ODEyZjkxMTYzZjhkNDBiZjA3YTJhYjQ5IGxlZ2FjeS10cnVuaworNzIyNjQgNWFkZTBkZTc0YjVhOTEzYTBhNzE4ZDRiMWIyYjQ1MjZiYjlhZTc1OCByZWxlYXNlMjYtbWFpbnQKKzcyMjY1IGQ3YmJkZTkzNmQ2MjkwNWFkYTcyOTU2YTlkOTZlNzAwYWM0ZjViZjUgcHkzaworNzIyNjYgODM0NmQzYzdjNGUyM2I4OWU4Y2E3ODMyMGI1YzRhYzFiZWFhOGIxYiByZWxlYXNlMzAtbWFpbnQKKzcyMjY3IGU0ZmY0MjczNDkzYmQwNDhiZTBkYzlmNzliODk2MzgzYjhkOGE4NTYgbGVnYWN5LXRydW5rCis3MjI2OCA0Y2Q0MzdkZmFjZTg5ODMyYmU4YTIxMmJlODY1M2NkMTAwZTJjZTViIHB5M2sKKzcyMjY5IDY2Zjc1MDA4YzNhODcyNTAyOTM2ODJkOGViMjJmOWQxZTllOTJlNTUgbGVnYWN5LXRydW5rCis3MjI3MCBkOGQ2N2FhNzU1MjUyMDFkOGM4OWFjOTYwMGZiYTViODQzNTNmNjI4IHB5M2sKKzcyMjcxIGU2ODY4NWNmMzY1MWQ5OTg3NjZjYzQxYTFmZjA2ZWJmNTdhMjE2ZmEgcGVwLTAzODMKKzcyMjcyIGRiMjgzOTBjYTYxNzI2MDY1MWY5NmQ4MzQyYTI3YjBkMDM5YzMyZWIgcGVwLTAzODMKKzcyMjczIGQ2Y2JhZWE5NzU2OThlYmY3OTU4NGU2ZDZhOGI1OWUwYWI1ODE2YWQgbGVnYWN5LXRydW5rCis3MjI3NCAyY2Q5YWVlNmY2MjQ2MDMyODg1ZjU1NDYxMjM3NGI2OWYwMjI2NjhmIHB5M2sKKzcyMjc1IGJjMWQxOTY4MzZhNGZiYThiYzExNmVkZTNlMTBhOTEyNzQ4NjZiZjcgcmVsZWFzZTI2LW1haW50Cis3MjI3NiAzY2I1YjdkNTYzMDk4MWNmMjQ2NzkxYjMxZmQwNWY0ZTY4ZmIwMzA5IHJlbGVhc2UzMC1tYWludAorNzIyNzcgNjkyMzFjZWZkODBkM2ZhZmViMmQ1NGI4NTJmZDIzYjk3YzZhZTY2YSByZWxlYXNlMzAtbWFpbnQKKzcyMjc4IGFkMTJkOGY0MTRjNzM2MWE5ODVlMmYxODA0MDFjZTlmMWViNTQ3NmQgbGVnYWN5LXRydW5rCis3MjI3OSAzMDg4ZDJlYmY3YmU1ZWEzZDEzMGQ4YWY4MTIzNDdkNmU0Mzc2YzViIHJlbGVhc2UyNi1tYWludAorNzIyODAgZmU1NGYzOTQ1OTljMjUzNTg4MTkwZDk2MTg2MTA3M2NjYWI1ZDg2MiBweTNrCis3MjI4MSA3M2FmOTAyMDZjYmUzMjRiOTk2M2FlNTY4ODhjY2RmZGEyOTFiNzgwIHJlbGVhc2UzMC1tYWludAorNzIyODIgNWNiODVlZmY4YzAzNWFlYWEwNDA5ZjNjNTkxMzc3ODJmZTJmYjhkMCBweTNrCis3MjI4MyAxMmQ4ZmQ0OTk3MjJjMmRjZTRiYmIxYjc5NDY5OWMwMWMxNzA3NTE3IGxlZ2FjeS10cnVuaworNzIyODQgNTM4YTdkNTgzMDY0NWQwYTc2MTRiNGYwYzZkNGM3MDlmNjk0ODUzMiBsZWdhY3ktdHJ1bmsKKzcyMjg1IDliOTU5MDAwN2U4MjQ5ODFiNWRhNDhhOTBjNTg4NzI2NWJlZjRiMWQgcHkzaworNzIyODYgMTAwMzgxYzVlNzNhYmI3ZjBjYjg3NjlhYzQyZDcxYTNkMGM4MWFmZiBweTNrCis3MjI4NyA0NzkxMjE2YmZjMWViZGI5ZTg2OTUzYzk3MTU0NzVlYTRjNWYyZDM3IHB5M2sKKzcyMjg4IDc1ZDQxZjQ2MDg1MjEwOTE3YmMzYTRlZjA4OGJiM2EzNjYyYzU0MDkgbGVnYWN5LXRydW5rCis3MjI4OSA4MmZmZGZiYzQyZTU2OTY0OWRjZDRjYTljODcyYmY3MjY1MWI4Y2Q3IHB5M2sKKzcyMjkwIGY3MjI4OTJiNjBhZTNiZWFmZGM3ZjYxMDRhODJlZTRlYjdkYzBiODcgbGVnYWN5LXRydW5rCis3MjI5MSBiZDQ5MWI1YTg4MDg2OThiNjU4NWVmMWYyNzU0MGE3YTYxNmRkYzEzIHB5M2sKKzcyMjkyIDVjY2VjNGIzNjY0NmQxMTdhZmI3YmU2ZTM4OTc1MjgyNjQ1ODIzODMgbGVnYWN5LXRydW5rCis3MjI5MyAzMTBkYWE5OWQ2MDczZDMzZmNmMDdiMTRjZDIxNzcxZTk4YmMzMjcyIHB5M2sKKzcyMjk0IGMyZDEwN2UwNzgzOTc0NTJjZTg2ZTVlMTQwMTRlNDJmODM5ZWFjMzEgcHkzaworNzIyOTUgNTM5OWJlN2EzOWJhMzcxN2JkODAxZDVjNmE0OTc4MmQ1OGM5Nzk1YSBsZWdhY3ktdHJ1bmsKKzcyMjk2IDc1NzQzYWFlZTUwNDBjMGIzYmJkMjE2ZWJmZTg3NzhjMjU4MjQzMzAgcHkzaworNzIyOTcgZDM3NDdiMGEyZjM2MWFhNGQ3MGM0MGY4ZGI4MThiMGFmZTU2YWM2ZSByZWxlYXNlMjYtbWFpbnQKKzcyMjk4IDNiMDlmMzMyZjFmYTNiNDIxYjFmM2UyMTdiYzc4M2UxZTZjNDVhMmMgcHkzaworNzIyOTkgYjMzMTljMDg0ZDI1NzFjMzAzODMxMDE3NWVkMzljYzVjY2U5NzVhYSBsZWdhY3ktdHJ1bmsKKzcyMzAwIGRkOTM4YTJjYzJmMGM3NGE3MDdiZmY1OTNlZmJiYWIzM2MzNWIzYTIgcHkzaworNzIzMDEgNWJlY2M4NjU0ODEyMjA4MmMxYzkxOTNlMmE4NmVmODUwMmZjNTAzYiBweTNrCis3MjMwMiBiYmE3ZWU5ZGFlZTA2NDU4OWM5NzMxNTY4Mzc3YzQxYWRjN2FiZDU2IHJlbGVhc2UyNi1tYWludAorNzIzMDMgNjM5YTc5ZmE2YTIzOGE2NTJjOTQ4ZjE0MDA2NzMyOTA3OTExNzE0YyBsZWdhY3ktdHJ1bmsKKzcyMzA0IGFlYjQwNTBjZDQzMTg1MjYyZmM4OWViN2NjZjY5ZTJhYjk2MWFhOWMgcmVsZWFzZTMwLW1haW50Cis3MjMwNSA0ZmNmYzUzZmNjNzRiZDZjZTk5NWZjZGVjNTM5MDVkMDgxODZjMmVmIHJlbGVhc2UyNi1tYWludAorNzIzMDYgMjQxNmYxNjZkZTRiMDBlMmFiN2IwMGJiZWY2NTExNDk3ZjZlOTM0ZiBsZWdhY3ktdHJ1bmsKKzcyMzA3IGIxZWE1ZjczMTNmZGU1NGQzMWY1Mzg1ZjFlYTY3MWQxMWVmYjk5MDggcHkzaworNzIzMDggMGJmNWJiMmYzYzA4OTg2ZGMwNjBkMGFhNGZiNzA4MzNiMWJlYTk2MSByZWxlYXNlMzAtbWFpbnQKKzcyMzA5IDY2NjgyZmMxNzJlOTBlOThlOGExNDc0YWUxNWYwZjFlZGZlZTc1NWEgcHkzaworNzIzMTAgNzMyMWQ0NTEwYjQxYmFiY2UzZjljMmE0NzQ4ODY4YmQyYmU0ZDQwMiBwZXAtMDM4MworNzIzMTEgNGRkNWE2YTkzZTcwODhjMDNiMmFjMTYwN2RiOWIzNTZiYjk0NTE2NyBwZXAtMDM4MworNzIzMTIgNmUxMGI3MGE0MTEwMzc2MDI5NGQxMzAwYzllYmJlMjgxMDY4NTZkNCBwZXAtMDM4MworNzIzMTMgYWMyMDlmMTMyYjE3YjI4NDAxNGQ0YTEwY2Y5N2JhNzdkZThiN2NiNyBweTNrCis3MjMxNCA0ZTU4MzRiMzIyYzEwYTJjZjAxMGYzZDQ0ZTRiZWQ4NmM0ZTU5MGIzIGxlZ2FjeS10cnVuaworNzIzMTUgMmUwNDRjOWY0YjQwNWY3OTYyODA4YmUwOTMzMTE1NWViY2U3OWUyMCBweTNrCis3MjMxNiBiMDBjZTZmMGZhM2E5Y2ZiOTM3YzZhZGExZGJhNjhlMmI0NmZmMTdhIHB5M2sKKzcyMzE3IDFlODJiZWY2OGY0ZGZlODdkNmVkMjg5MGM3ZTExMmRhNWVjMDVhYTYgcHkzaworNzIzMTggNWRmZDIyOTA2MzQxMWZmNjFjMzcxZDY2YTNjZGI4YmYzZWZmMWI2NCBweTNrCis3MjMxOSBkZDQ4OWY0NzU3YmU4MjY5YmU5NmViYWNhMzZlYjAzMTQ1ZmI3ZTBlIGxlZ2FjeS10cnVuaworNzIzMjAgYWY4Zjg0MzI1Nzk3M2YxOGI5ODgwNDQyMTVlNDc0NmZlZDFmN2RhZiBsZWdhY3ktdHJ1bmsKKzcyMzIxIGIxMmE0NGVlZjQwYjZjNTkyNzA2ZWMzZjViNjYzNzA5MmU3NmM5MzUgcHkzaworNzIzMjIgYzQ5YmMzMzAzMjdjZjI5ZWNlNWExMGRlYWFjMjUyYmZjMTZjNTYxNiBsZWdhY3ktdHJ1bmsKKzcyMzIzIDU4NTc0Mjg4YTViZmVhOWRlYWM2MTA3ZTMzYjI3ZDcyYTY2MmRjY2MgcHkzaworNzIzMjQgNGM2MzY3MDYzOWVjNzBiNWFhNmI2NGU1ZGJiZmJlOWJhZWNmNDNhMyBsZWdhY3ktdHJ1bmsKKzcyMzI1IDU4YWEwYWQ3NzI1M2Q3NzU0YzY4ZTlhOTYxMDBmM2I3N2IxZmVlNWUgcHkzaworNzIzMjYgNTg3OGNhNzg0YTg0OTZlNGQ1ZjRjZDViZmZjMDg4MjhhMDhmODU0YyBsZWdhY3ktdHJ1bmsKKzcyMzI3IDMzYmJkZDNlZWE0M2Q5ZmNlY2U1ZWY0YzdkZjdlMzljZjdlOTA0ZWMgcHkzaworNzIzMjggOWY4NTMyYTBmMWFiY2M0NjFiNjAwMDlmYjE1NTFmZDdkMjgyZWY4MSBsZWdhY3ktdHJ1bmsKKzcyMzI5IGVjNWYwM2QxZTgxOTg5MzEzZjBhYzE3N2MyZmJjYWQxMjQ0ZmI1YjggcHkzaworNzIzMzAgZjZiZmZiOWU4MzRmOTllNjA4MDY2OGQxOWU3MDE1OThlMDQ5MWEyZCBweTNrCis3MjMzMSAxNjdjZDM3OGI1YmQ4YjM3ZTY3NjZiM2RhNWRjMGQ4MjlhYzM4NjNhIHB5M2sKKzcyMzMyIDJjYzExNjkzYTE4MGVkNzQxNzg0MzA5ZGRlYTc2NGE0OTQ0YzllMzUgcmVsZWFzZTMwLW1haW50Cis3MjMzMyBjNjM3NmQzZmE5Njg3ODE3YjJhNDFiZjU2OWVkYzA1NDljZTZiYTkyIHB5M2sKKzcyMzM0IGQxN2NjNzJmZmU4MDc2NzFkNDk2MGQ1MWJhZTA1MjFmY2RhMGM4ZDMgcmVsZWFzZTMwLW1haW50Cis3MjMzNSA5ZjZiOGNlMjAyM2YwYzI0NGZiMWExMjFmZGQ1NzQzZjdhMTBjNGY4IGxlZ2FjeS10cnVuaworNzIzMzYgMjE1YjdiNjZlNjJkZjI4NWUxNWQ5MTdhYjJkZjI5OGM0YmQzNzdkNiBweTNrCis3MjMzNyA0ZjNlZGI2YWY4YzFiYmQzYjM4NTUyNWM2ZDAwY2Q1Mzg0NzVkNGNhIHJlbGVhc2UyNi1tYWludAorNzIzMzggOTc2MDM1MzY2MDY1N2FhYTIxZDJjZDM3Y2M5YjFmMDUwMGExYjY4MiByZWxlYXNlMzAtbWFpbnQKKzcyMzM5IGNhNDUwYjI4MjdlZjM4MDliMzQ5N2ZlYWMxOGMwMmZhZDQ4YmY0M2UgcHkzaworNzIzNDAgZDg2MDFlOGIzYWJlOTFlYmEwN2QzMjVmMTczNDc3NDdjZDI5OWQ5NSBweTNrCis3MjM0MSBhN2M5OWUzNGUyMzllMjE3MmE2N2M4MDc1Mjc3MWZiZDcwYzk2ZmVhIHB5M2sKKzcyMzQyIDhlOGI5NTkwOTE3YWQ5NGM1YjgyYzYzOTU3MzhhMTQ3MDdhMTMyZWYgcmVsZWFzZTMwLW1haW50Cis3MjM0MyA3ZWE3ODcwZGQ5NjZkMjIxNmQ1MTQ0ZDczYmFkNTE1ZGMwM2Y0MDliIGxlZ2FjeS10cnVuaworNzIzNDQgZWEyYTkwMDgyYzgzNzUyODM5MjUxMTBkZDliOWZjZjE0NTYzZmY1MSBsZWdhY3ktdHJ1bmsKKzcyMzQ1IDZkNjRjZDY5ZjM4NDRhNTVlZGI3MzRiM2JhYzViZWUwY2ZhY2NmN2YgcmVsZWFzZTI2LW1haW50Cis3MjM0NiA5ODc0MjFkM2Y4YWU0MGI2ZDkwNWZjY2IyZjc3ZmM1ZmU1NWQ5Njc0IHB5M2sKKzcyMzQ3IGIwMzc1NTY3ZmFlODBhNDZjYWM4YzEyNWZkNTg5NmMzNDIyODdmNDUgcmVsZWFzZTMwLW1haW50Cis3MjM0OCAxZDhmMjRkNDBjMmM2OGZiOWIzZWM0NDFjYjE3NTA0NmM5YzgwMjFhIGxlZ2FjeS10cnVuaworNzIzNDkgNGQ1ZjA2NjU3NWVkNTBkOTAxOTYxYTMzMTNhMzhiMGY5ZDdhYjAwOSByZWxlYXNlMjYtbWFpbnQKKzcyMzUwIGI5NzdhZjE5YzZmMDEzN2ZlNDdhNzU2MWEzYmMyMTFjYWM4ZjhkZTcgcHkzaworNzIzNTEgYmJlMmFhNDMxNjkyMzIzNjA1ZmRlMWFiZTRjMjM0OTc1ZWQzY2NlNyBweTNrCis3MjM1MiA1ODFiNTY0ZDhmYzNiMmZlNjdjY2QzYWUwYzI1NTIyMDQwODFlYzgwIGxlZ2FjeS10cnVuaworNzIzNTMgYTg1ZTY3NTZkZWQyY2ZlN2UyYjE4Y2RkY2Q0OThjOWMxNmQ2ZWU2OCByZWxlYXNlMjYtbWFpbnQKKzcyMzU0IGUwMTc5ZjA4ZDM0ZjIyMDMxNDNlOTQyOWU2ZmJhYzUyYzY2YjY3OGQgcHkzaworNzIzNTUgZDNmZmIzNzAyYzNhZjYzZmE1MGVhMDZmYTUzMjY0MjJhM2VjNmJjZCByZWxlYXNlMzAtbWFpbnQKKzcyMzU3IDhmN2NmNWNiMjFiYjU4M2FiNGU1YWVkYjJmNDIzMDRiMGViNGZjNDIgbGVnYWN5LXRydW5rCis3MjM1OCAwMjZkMzkwZWVjYzE5NmFkMDUxNGNjMTg3MTBmNTg3NTJkMDJlOWI5IHB5M2sKKzcyMzU5IDE1ZDNiZGU3MGQ4N2IwMDBlY2NlOTQ5N2MzNTg5ZDRlY2U3MzdlNDcgcHkzaworNzIzNjAgZjBmYjRkZGZmMWFiZGFhYTMzNTZmZDZkMzNhY2EzOTAwNzNlOWRlYSByZWxlYXNlMzAtbWFpbnQKKzcyMzYxIGFlNjg1MDg2OWQ1MmY0ZjZlYzc4MmFiMzRjYzgwOGY1ZTY4MjI2ZWEgbGVnYWN5LXRydW5rCis3MjM2MiAyNTkyYzZhOWRkZDZjNDRlY2Q5NTllZmQ2YzI3OTUyZWVlOTNkNjU2IHB5M2sKKzcyMzYzIDkxMWRmODJiYzI1ZGZiNjJmYWVmNmVhMWI5ZDBjZjcwNDE3YmI5N2MgcHkzaworNzIzNjQgNWI5MDIxYzE5NTEyYmIyZTNhM2JkMDEzMjUyZDI4ZjkyOGY4MzUzMyBweTNrCis3MjM2NSA1NGRjNTc3N2JkZmJmZTYzNjlkODNmNzI3OGIyODQ2YzM4YTg4NmI5IHB5M2sKKzcyMzY2IDdiYWY0Y2MxM2JjZmY2OGJiNWI0ZmI5ODgyZDJkZmJlZGY3NWRkNzkgcHkzaworNzIzNjcgM2I1YzQwMGM5ZGNkNDUxMDM1ZDg3YzQyMzA2ODZiYmJmZGU1ZGQ2NSBsZWdhY3ktdHJ1bmsKKzcyMzY4IGZiMTBiODhhZmQ0MDFlODEyMTJhNWNhY2U0YjE2OGUxODY3MTNiNzMgbGVnYWN5LXRydW5rCis3MjM2OSA1YjRiMDllOGYzMmJhOWNiZTVlMWFiNzdiNzc0NTgxODY3NjI3NDQ0IHB5M2sKKzcyMzcwIGEyMzAzYTc0YTc2MTBjOGUyYzZhNjNkZDIxOWVlYmI4NmJmMmEyZmQgcHkzaworNzIzNzEgYjY2NmU3MmY2MDJmYTg1MjhkODMwMGFkYjRhMDgxNTk2N2QzOWFmZCBweTNrCis3MjM3MiA5ODk1NDgzZTk2MDEzYTUyY2ZmMmQ4MTk3ZmM1NGU4ODY5N2E5YWQ4IHB5M2sKKzcyMzczIDljNGQ5MjlmNDA1OTk0MTcxOTFjM2Y0NWM1YzMzYmJiZTZjOGQ3ZTAgcHkzaworNzIzNzQgNGIxYTlhZmZlMzRjZDRmOTIxMmRlN2I1MjNhZDdhMGE5Mzg4MjJiZSBweTNrCis3MjM3NSBlYjNhZmJkNmFhYTk2ZWY2NzYwMmJiYzAwZTk2MTZlZWRlNDgwMDA4IGxlZ2FjeS10cnVuaworNzIzNzYgNGYxNzM4NGFlOGNiZmU0NjhjMDExMmVkN2U4MjRhOWY2Zjg5YWM1MSBweTNrCis3MjM3NyAwZjZhNzg1Y2YyODZlM2QxZDgzYTVlN2M0MjRmMjc5YWZiMWU2ODgyIGxlZ2FjeS10cnVuaworNzIzNzggNTU2ZDExMzE0YWQ1Y2Y5MTM4MmM0ZmY5MmFiMWRiZDVjZGJhNjAwZiByZWxlYXNlMjYtbWFpbnQKKzcyMzc5IDU3ZTliMWIwODM4ZTUyZGU5NDBjZDA0NzEzNGVhODQ0NzBjNWJkMmQgcHkzaworNzIzODAgYTgxNWFjY2Q4OWU0MGIzNDFhNWQ2MGY1ZDAyMDE5M2FhODFiNGM4NCByZWxlYXNlMzAtbWFpbnQKKzcyMzgxIDg1Nzc1ZDEwMGEzMmM1OWYyY2JkMmExMmNlZjM2YzBiNDEwZTRmZTcgcmVsZWFzZTI2LW1haW50Cis3MjM4MiBlNjIwNzAxYTNlYzg2NDBhZmM2YTQzMjMwYTU1ODFlYjEzYzI0NDM3IGxlZ2FjeS10cnVuaworNzIzODMgYWVjNjJlOWNjNmU4ZWVmYTZhMWUxYmNjZGIzMzQ2YzdmYTVhYzBkMiByZWxlYXNlMjYtbWFpbnQKKzcyMzg1IGJjYmI5NGQ2OTJlZmQ3MTI5NjJkNGVhOWJjMjI0NWEyZWQyY2M3MDggcHkzaworNzIzODcgMjkwMjViNTMwMDQ2Njg1MDBkMDg5YmRhNTlmODg5MmM2NDQ0NmIwOCBweTNrCis3MjM4OCBjYWMyYTVmNGI5ZmFlMTI4NGI5OWNmZGU0MDllYTg3Y2Q3OWZmM2RmIGxlZ2FjeS10cnVuaworNzIzODkgYzZlZmU1OGVlZjY2NTdlZTRiOWYyODk5NDllZmUxYzY2Y2JkOGJkOCByZWxlYXNlMjYtbWFpbnQKKzcyMzkwIGYxYTNkZTlkZjQyNWRiNGMzZjFiNjc5MTMxMDQ4NDdjYTliOGQ3YzMgcHkzaworNzIzOTEgZmI3ZDEyMTk2YzM1YzJiNWY1ZGFhYmNjZDQyOWNlZWNlOTUxYzY3MiByZWxlYXNlMzAtbWFpbnQKKzcyMzkyIDM1NTk3ZDNkYmQwODIwMmNjODg3MWQxZWMxM2QxODA0N2JhZTQ1ODAgbGVnYWN5LXRydW5rCis3MjM5MyAwMzg4YTQyNzI1OThlMzg2NGU5NTU5ZTkxMWI2YWFmMDA3MDMwMWRhIHJlbGVhc2UyNi1tYWludAorNzIzOTQgMGM1MjZkMTg5NTI3MmI5YTUyNTdmODJhMWMxNGI4NzM3MjExZjUzYyBweTNrCis3MjM5NSBhZGM4ZWM3ZjdkMjMwMTlmMDI5YTc3NWYyMTQyNmI1M2JlMGVlZWJkIHJlbGVhc2UzMC1tYWludAorNzIzOTYgZGYzZjVkYjUyOGYwMGIzNzFmNzE2MWE1YmRjMGQ2ZmFjODE5M2Y4ZCBweTNrCis3MjM5NyA3Y2I2ZGYwMDY5OWY0YjM0ZDcxOWJmNmM4ZmNiNDIzZmQ3ODg0NDI5IHB5M2sKKzcyMzk4IDA0YmRjOTQ0NzE4YWY5ZWVmZjE3OThiZGQ1ZDE2NzRlY2M5YTE0M2MgcHkzaworNzIzOTkgOWM2NTQwNDA0MDBkZWZhNGMyOWJiZTYzZTA0NzBmNTM3Y2UxZGM0YyBsZWdhY3ktdHJ1bmsKKzcyNDAwIDBiOWQ3Y2NlZDkzNzFkN2ZiNGM4NTNmNWRhMzMyZjY0YjgxMTBhMjUgcHkzaworNzI0MDEgMDM0ZTBmY2Q2OTRlODgxYTU4YWU0ZjFjYWM5OWVkZmE3NDAxMWI2OCByZWxlYXNlMjYtbWFpbnQKKzcyNDAyIGVjZTdlN2E4MDA0M2MxNTgyNTExNGI0M2E4ODM2NDNmN2MwZmE3MTQgcmVsZWFzZTMwLW1haW50Cis3MjQwMyBjNTJlNTU1YzkxOGQ5YmJjNGZhNjAyYWY5NTczN2EzMGIxOTYwOTc2IHJlbGVhc2UzMC1tYWludAorNzI0MDQgN2RjYTI1MDM0M2VhNDFjOTYzOThlYjY4YWVlNGZjYmQ1YWQ4ZjdmNiBsZWdhY3ktdHJ1bmsKKzcyNDA1IDRhODQ3MDA2NjRkOTI2MjFhZmU4YjQxZDhhMzFmZjhlMDU2YTJmMzkgcmVsZWFzZTI2LW1haW50Cis3MjQwNiA0NjM0MmZmYTI5NjM1M2YzNTA3ZWU3OTQwMWY3YzEwNzg5MjY0ZTJmIGxlZ2FjeS10cnVuaworNzI0MDcgYzBhZDIzYWUyYTNlMWNjZTQ1OTIwMDZkOWEwYjY2YTg2YzlhZTM3NyByZWxlYXNlMjYtbWFpbnQKKzcyNDA4IDYzYjIzYmQzOTA0ZGU3MTY5YzYyY2YwZWJhMzc3OTM1NzVlODhmNjkgcHkzaworNzI0MDkgY2E1NTdmODUwZWVlNjRjZDNmMmZiMTEwYTA4YjU4NGM4NjRhMjhmYyByZWxlYXNlMzAtbWFpbnQKKzcyNDEwIDdhNjdiNjQ3YjllNzc3NzllY2ViMjBhMzQ4MTkyMmU5ZTA5ODNhZGMgcHkzaworNzI0MTIgYjYzMDIwNzk3Zjk2NzhhZGFmNGQyYzNlMjY1NzRhOWVlZjJlZjAyOCBweTNrCis3MjQxNCBhNjI5OTI0MWZiZDliY2M2MDU5N2Q1NDZjMDZkNDQzZmM2NjI3MmU2IHB5M2sKKzcyNDE1IDNhYWFiYjMxMDJlOGU3NTlhODk5NzE5ODEzZWRhNTk5MzY5ODE2OTUgbGVnYWN5LXRydW5rCis3MjQxNiAzNzZmZTE1ODYyNzYwMDA3YjA3NGNkNGVjM2NmNmU3ZTU1ZDE0MzhkIHJlbGVhc2UyNi1tYWludAorNzI0MTcgMjA1ODY5MGE1M2UxMmNlMmUyYzcxMDMwNWMzYmI0MGVhYWJiMzE4OSBweTNrCis3MjQxOCA2NWQ4ZGI1YmViMjAxMjIxOWNiZmYxNzM5ZTQ0NzE3ZGVjOTE0NGI2IGxlZ2FjeS10cnVuaworNzI0MTkgMmEwZmFjYTNkZWVlNTk4M2E1MGRlMTQxMTI2ZmQzMzNjMTliYWUxMiBsZWdhY3ktdHJ1bmsKKzcyNDIxIDc3MTQyOTg1YzY0MTBhNTM1MDRkZjc3NDIxYjY1Y2FkMWY2MDExZTAgcHkzaworNzI0MjIgYTdjYWYyOWQxNDA2MzNjNDUzY2E3ODI3ODJjZjk4MzA3MmE1NDVmZiBsZWdhY3ktdHJ1bmsKKzcyNDIzIGZhYzUxYTAyMmJmNTA5MzA0MDNlZjlhNmYxZmFjYjJjOTg0YjA4NDAgcHkzaworNzI0MjUgODViOWRmNTI1ZTEwNzBmNjM4YWU1NDBkODljODE1ZTA1ZDJhMGU5NyBsZWdhY3ktdHJ1bmsKKzcyNDI2IDIzOGNhZmNjMjUxNWY1ZGIwM2QwYTUxNjhlYmUwZTc2ZmFmNDFhNjcgbGVnYWN5LXRydW5rCis3MjQyNyA2MmJlNWFjOTg5ZjRmODZjMDRiMjQ4OWZiOTRhNzliZmM2NTNmODU2IHB5M2sKKzcyNDI4IGE4MTkwZTg4MWZkZmYyYWY2M2NlMjNjYzkwOTUwNDAxMjc1NjA1NTQgcmVsZWFzZTMwLW1haW50Cis3MjQyOSA3YTNiZDE3OWIxODBkY2MxODk1ZDI4OTdlMmFlMTNiOWYxNDQ1MjQxIHJlbGVhc2UyNi1tYWludAorNzI0MzQgNmM4YjM4MGRiNzI3ZmMyMjFjMjI2ODdlM2JiZDFkZjM0OGE3NjRjYyBsZWdhY3ktdHJ1bmsKKzcyNDM1IGU3ZmUyMTdjZTAxNTdkZDgxNDRlYWFmN2Y2MzMyZWQwNzAyNTE1NzUgcHkzaworNzI0MzYgZjg3NTgzNTNjNmMyMDJiNmM1NmI2ZWU3YzA0ZDM1ZDgyM2E0MGZhYiByZWxlYXNlMjYtbWFpbnQKKzcyNDM3IDU3MGQzZTU4ZWVhOTU4YjIxYTAzZjM4ODRjMjdlNzQyYTBhYWEwMjkgcmVsZWFzZTMwLW1haW50Cis3MjQzOCAwZWYyNDJmMjdkNzY5OTc3YTI2Y2YxMjdmODkxZjEzZTgxZWIyNDZkIHB5M2sKKzcyNDM5IGQ3ODAzN2MxNjIyNTAwNzI4ZjE0YzRjOWY0NjQ0YmMxMDY4YjkzODkgbGVnYWN5LXRydW5rCis3MjQ0MCA1NTAyZmYyZmJkZDYzZDI3ZmVhNjkyYWRiMDAyZDEyNmVkOTVmZjNmIHJlbGVhc2UyNi1tYWludAorNzI0NDEgYzY5MzAwM2IxNWUyMWQwNDUwZjc2ZTMzMTMzMGVlMmMwNDdkYTYxZiBweTNrCis3MjQ0MiBhYWM0MDU1ZDA2NmEwM2UzOTRmZDMxNTI3NGZjMjJiMTc4ZDQ4ZmY0IHJlbGVhc2UzMC1tYWludAorNzI0NDMgNGMzYTg0ZTU0ZDA4MjY4MTZhOTAzZWIzMzdjYjMwMDc5M2QxZDhkOCBsZWdhY3ktdHJ1bmsKKzcyNDQ0IDBkNWUyYTkyODZhMmE0Yjg1M2VjZTM1MTMzYjJjMzNiMzc0NTE1YTYgcHkzaworNzI0NDUgOTE0M2QyMGQ4YjI2MzlkMzg2YzFmZjY4ODY4YTEyNjYzNTkwNTYyNCBsZWdhY3ktdHJ1bmsKKzcyNDQ2IDE5OGI2OGFlMmMyZGY1MzczYTA3N2RmMmVhMDZhYTcwMWIyMzhiNmQgcHkzaworNzI0NDcgZjVmNTA3YjU1ZDQ2NTc5NTE1ZTRlNTA1Y2NkY2M1MzIyYWZkNjczZCByZWxlYXNlMzAtbWFpbnQKKzcyNDQ4IDhmM2RhNzEzNGNhNWYwN2EzNjVjYjAyZTY1Zjg3MzNiNjE2ZGJkOWIgcmVsZWFzZTI2LW1haW50Cis3MjQ0OSBlNTY3MTJlMTg2ZjlkZjhjNWI2MWVkYjA0YzZjMDQ3YTFhZGZjMTg4IHJlbGVhc2UyNi1tYWludAorNzI0NTAgMmRmMmQxZjA5ZDU4NWQ3MmY0MmRjZmIxNmRhODM4NTlmYTE1ZjNjMyBweTNrCis3MjQ1MSA2YTcxNTcyN2YxOWY3NTVjM2I0NTM4ODYwMDg4YzlhYzdmYWIwYzBlIGxlZ2FjeS10cnVuaworNzI0NTIgNDdiM2ZlZWE0ZTFhNTFjMjAxOWQ5NmY5YTJiMjU1MjEwNzFhZDUyNyByZWxlYXNlMjYtbWFpbnQKKzcyNDUzIGMxNDJlNDUzODk0MWU2M2RkMGIyNDdiYzhmYzM3YWE2MGY5NzhmNzkgcmVsZWFzZTMwLW1haW50Cis3MjQ1NCAxMWFkNjU0NTgwOWFjN2JmYzUxOTFhZmM3Yzk1NDUxN2FkNDRlZjY2IGxlZ2FjeS10cnVuaworNzI0NTUgYjNiMTU1NTgzZTA1NWQzOTgxN2RkYjg4ZmQ3OTUzMDUyNTg4NDdkZiBweTNrCis3MjQ1NiAxN2Y3Nzc0Zjc0ZGRlYjZiNDQwYmUxNDM5OTViMDViY2UwZGM4OWJmIHJlbGVhc2UyNi1tYWludAorNzI0NTcgMWNkMWIyMTQ1MmQzOTUyNjY4NTlmNmM1ZWRlYzdkNjZhOGQyMjYxYiByZWxlYXNlMzAtbWFpbnQKKzcyNDU4IGEwMTVhMjk4NTQzZGRlYjE4YzI3ZTg3MzU2ZDQzN2JmMGEyZWU2YjAgbGVnYWN5LXRydW5rCis3MjQ1OSAwNDZiZDJhNDEzMjJmYWVhZGE3ZDhmYzdjYzlkZmRkM2JmYmIzOGQzIHB5M2sKKzcyNDYwIGEzNmZhMmNlNjFiMWYzY2I2ODQ2ZjU3MmY1NDc5ZTNmNWE5ZjA5NDAgcmVsZWFzZTI2LW1haW50Cis3MjQ2MSAxZWNkY2ExMWViOWVjMjg2NDAzNjM0NGM4NWE5YjU2NmZiOGZlYzM5IGxlZ2FjeS10cnVuaworNzI0NjIgMjk5M2YwNDllMmM5NTMzM2U2ZDcyOTIyMjQ2MzYwZTc0MjcyMDdmMiBweTNrCis3MjQ2MyA1NDIwZGFlMzU1ZjczYzYzNTAxY2Y5YTcyNjVjZWE3NmRiODFkMWJlIHB5M2sKKzcyNDY0IDM3NDk3YTc3OTNiMmZmNzNiMDgxYWM2MDZjOWZkYjEzNTIwOTFkZjYgbGVnYWN5LXRydW5rCis3MjQ2NSBmMWZmODdiOWI0MzczYjJiNGM4Y2Q0MGE4MjIwZjNkMjc0ZmViYmI3IHB5M2sKKzcyNDY2IDIzODUwMjQ2MDc5NWJjNjBmZTc5NzM0YzAxYTUxMzMyOGQwYTI2OWQgcHkzaworNzI0NjcgNjZlY2M4OTZiN2U3M2EwNTRiMTY2M2E4YWYxOTJhZDZmMzAyYzllNCBsZWdhY3ktdHJ1bmsKKzcyNDY4IDljN2JjYjdlNzQ4YzE2MjQ3ZGU0OTRlNzIxYmE0MmUxZTc5M2U3MmYgbGVnYWN5LXRydW5rCis3MjQ2OSBhNmU2YTU3Y2NjYzI5YTRlNTVlOTM5MjRkZmY4NDQzODBlOWFjMmM5IGxlZ2FjeS10cnVuaworNzI0NzAgNTI4MGY3NTViNDhhMTRiNDFhMjg0YTY3M2ExYjdmZDcwODZjZTM2YiBweTNrCis3MjQ3MSA2OTRlZTIwYzhjNzQzYmViNjlhYTE3MTRlNWJmNjMxZDhkZjhiZGMxIHB5M2sKKzcyNDcyIGJhNGU2YTNhZjU2NGVkNzBmZWJlODdjOWY3NjUzYjVlYzkxNmNjY2QgcmVsZWFzZTMwLW1haW50Cis3MjQ3MyA1ZWE1NDYzNTcyMjZkZGFkZjQxNWRlMzVhY2QyN2ZkNjNjNDVlOTJhIHJlbGVhc2UzMC1tYWludAorNzI0NzQgMTcxMjUyM2Y5MzZjNTBjZTUwY2E3YmQ3Mjc4ZWMzYzdiZDY1YWZiMCBsZWdhY3ktdHJ1bmsKKzcyNDc1IDVmMjE1NzQ3OTc0OTVkNTYwNmJhNTg5MGYzMDMyZDIzNzJkNDA1YmQgcHkzaworNzI0NzYgZDRlZmM3MzM4NzA2YmM0YmFlOTc1NDY3YzVkYjIyOTY0MTA3MjMwMyBsZWdhY3ktdHJ1bmsKKzcyNDc3IDdhOWUwODFlY2U0YzNkYTFjNDYwYTQ3ODhmMmNlODk5NjhkODdhZDkgcHkzaworNzI0NzggY2I3YmU2M2I5MWQ4NWVhOGFlZmVlMTY1ZTk3ZmRmZTRlODczYzZhOCBweTNrCis3MjQ3OSAwZGFlN2ZlZmVkNDQwNWM4NDJlNGQxZDMyZWRmNDJjMTUzYjc0NjI1IGxlZ2FjeS10cnVuaworNzI0ODAgOGI5ODk3ZDE1Y2ZjODBjZWU2ZTgwMTYwZmQ1NGEyZDNlZGE1ODdhMSBweTNrCis3MjQ4MSAyMDg2OWQ5NzhiOGI0MzA5YTkyYjI3YmE3OWI2NzNmOGQ4NmIxMWU0IHJlbGVhc2UyNi1tYWludAorNzI0ODIgYjg2N2NlMzc1ZTk4Y2QwZDIzM2Q2NzQ1ZDY4MWZmMjkyZGFkZDVmOCBweTNrCis3MjQ4MyBmNDk1MDA5NmU3ZDdiNDc3ODg5NjQwYmJmYWJiMGQ0NGJjOWUwNjNkIHJlbGVhc2UzMC1tYWludAorNzI0ODQgMDY3YTYzOWQ1Zjc2NTkyMmIzYzRhZjhkNDI3OGYxZjMwMDIxZTdhMCBweTNrCis3MjQ4NSAwNzIyZjIwNGQyNmUwNDViZWVmZWRiOTYwZGUwYjllNTU3NzQ1ZjVmIHB5M2sKKzcyNDg2IGY5MTdhYWU3NDFkNWU2MWZmZmRlMWU5NmRiMjI5YWE0YWIxYjkyN2QgcmVsZWFzZTMwLW1haW50Cis3MjQ4NyBhMTcxMDQ4ZGFmNzZmNDI1Nzc3MDgwYTNiNjllMjJmZmQwYjA2NTY1IGxlZ2FjeS10cnVuaworNzI0ODggOWVmNjgzZDQxYzliMjIyOTdiY2M0YjA1Yzk2NWQ2ZmFiYzNlNzMyYiBsZWdhY3ktdHJ1bmsKKzcyNDg5IDUxMGZmYzVkYjIzMjU4OWM3NjkzYTRlYWM4ODIxZDM1ZmNmZGJjY2YgbGVnYWN5LXRydW5rCis3MjQ5MCA0NDZhMTVhMWJlZThmZDA2OTQ0MDhjZmM0NDZjMTBhNjdkNTBkMDFmIHB5M2sKKzcyNDk0IDExOWU0MzIzNDAwZDAxYzgyMmViMWUwYzc1ZmE1ZWYwZTZiY2I2MTUgbGVnYWN5LXRydW5rCis3MjQ5NSA3Mzk4NmE5Y2ExZDYzZGZiNTk1NGY2OTg5ZThmY2U2NmM1YjBlMzhmIGxlZ2FjeS10cnVuaworNzI0OTYgMWQ3OTQ4Y2I1NDMwMDBhZjNkMWZmMTQ2MDYzN2FhNjM2YjU0M2E4OCBweTNrCis3MjQ5NyBjY2ZkYTE0ZDE1NTQ4MWY0ZTQ4NzBlZWIyYWU3NWZmNDc2NjIzMGQ4IGxlZ2FjeS10cnVuaworNzI0OTggZDY2NjAzZGQzYjJkNzE4YWJlMWY3NjY3NzM3Y2UwYjY1Yjg2YTMyMSByZWxlYXNlMjYtbWFpbnQKKzcyNTAwIGY5ZDllZWM2YmU2NzAxNzg0N2ZkN2Q3YzI3N2ZjNGQzOGJhZjcyMGQgbGVnYWN5LXRydW5rCis3MjUwMSA5ZjcxM2Y2MDVmNjBlZmQ1ZjQ0YjViYzVmMWQzNzA5OGM2MjA5NmNlIHJlbGVhc2UyNi1tYWludAorNzI1MDIgMzZmYzA3OTg0MTdmMTRlNmQ2YzNjNDM1NDU3MTdhOTg1ZDQ5OTM1YiBweTNrCis3MjUwMyA5OWRkMjllMjRiZGUzZDRlZTVkMDY5ZjBkYzk2NjRjYWM3NDdjM2M1IHJlbGVhc2UzMC1tYWludAorNzI1MDQgOTYyYjRmZjc2Y2NhMjEzNDU3NTMzYzhhZDc2MTU0YmJhYzA1NmI0ZCBweTNrCis3MjUwNSA5MjA3ZDQyOTIwM2ExYzVhOTY1MmQ4Mzk5ODlhNTQ0MGZiNmU4YzZlIHJlbGVhc2UzMC1tYWludAorNzI1MDYgMDcyYThhN2NlOTczY2RkZTQ2NGU4OTUwZjQxNGRiNTMyMDVkODI1MyBsZWdhY3ktdHJ1bmsKKzcyNTA3IGViNmViNDlkYmFlOWVjN2RjZjIyMWU0NmI3ZTgyN2UwZDZkOGMyYzUgcmVsZWFzZTI2LW1haW50Cis3MjUwOCBmOTBiM2VlYzdjMzI3OGM1ZjkwZGFhZjM4ODYzMmMxNTJiMGJjMWM2IGxlZ2FjeS10cnVuaworNzI1MDkgNWRkM2IzOGEwOTc3OGE2NjczY2JmYzZlMDhmN2I4NmU1MTRiMmMxYiBsZWdhY3ktdHJ1bmsKKzcyNTEwIGI3OTIwZTE4MzQyMjhmNWVmNzg0YmJiMmE2ZmNkMzI0MmEyZTFiOTUgbGVnYWN5LXRydW5rCis3MjUxMSBhZmQ2MmViMTY5MmVmMWFjYmFiZWIxYzlhMDU5ZjFjZDYzMGM5MThhIHB5M2sKKzcyNTEyIDMwZWRkN2Y2MTAxYmQ5YTdmNmRhOTNmMmJhZDA4NzIzOThmM2E3OTcgbGVnYWN5LXRydW5rCis3MjUxMyAzMjdlMjNhNmE2MTAyMGFlMGUxYWY2ODVjZTg3NzM1N2JiZDdjNjQxIHB5M2sKKzcyNTE0IDI2MWY1OTQwMTRjNjIyNWEzZTk1YzY1MTU3MGM2NmViNjhmYTE2NGEgcHkzaworNzI1MTUgMWIxNWE1N2UxZjAyZjRiYmUwMTM1YTI1YThiZGUyMTE1ZmE5MWUyMiBweTNrCis3MjUxNiBkMmIxNzYxNjFhYmYwYjM2NmNlZmM2ZTM3NmY1ZjQyMjQyZDg4YzRhIGxlZ2FjeS10cnVuaworNzI1MTcgNzJhNTAzOTRjMmRkZTgzOWI3MzZjYzA5NGYwZGVkNTI0MWZiYzk2YSBsZWdhY3ktdHJ1bmsKKzcyNTE4IGFhNDFjOGM5NjA1NTAwNmYwNzNmYmZiNzk1MTlhZTk4MDllYWQ0YTQgbGVnYWN5LXRydW5rCis3MjUxOSAyYjQwNjUzODg2NmQ5MDkxNzZkZjJlOTk2MDZhZmY0OTgwZDA4MWUzIHB5M2sKKzcyNTIwIDI5YjUxOGYyOTZkZTAzZThlNDcyNzhjOTQ2NDI1NDIyOWY4NGExYTggcHkzaworNzI1MjEgMDU2YWE3NjlkYTg5MWExMGYyZTc2NDVkZmQzMDAyNjY5MjdiNjYzMCBweTNrCis3MjUyMiA1NzAyZDJkYWQwZjllYzhlZTBlNzViZTBkMjQ3NGEyMzg0ZDZhYjBiIHB5M2sKKzcyNTI0IDEzMTE3NzI4ZDA4NmRhNDI1OWQ0NWYzOTE2NGQ5ODM1NDZhY2RiY2QgcHkzaworNzI1MjUgYTdjNTNmYWQxM2JjMzZkMjIwMmNiNjExMmMwMGJmM2NiODkzOGNlYyBsZWdhY3ktdHJ1bmsKKzcyNTI2IDNlODRkNjAxMjZiN2UwMjljMDgyZDA5MWQ4Y2M0OTc3NGM4ZDc5OTcgbGVnYWN5LXRydW5rCis3MjUyOCBmYmNkYWUzZTBjYTFiZWMxMGY0ZGVkZDk5YjM1MmM0YjNiY2JlZmY4IHB5M2sKKzcyNTI5IDdjMjliZmJmZDM1MjQ0ZDA0YzQzOTQ1ODUxNTFjMDE5NzgzNzQ4YzEgcHkzaworNzI1MzAgNDFjMDllMTQyYmQwMDZlMjA5ZmZmMTQ0OTBiNTEzYTE3N2VmZjkwYiBweTNrCis3MjUzMSBlOTFhNzdhNDgyZWJlNGUxZGE5NWU1ZGQ1NGQ5ZGU5ODRjNzkyMGFkIGxlZ2FjeS10cnVuaworNzI1MzIgMzVlOTgwM2EyZjRlNDVlNDRkZTk4YTVmMzk3MDJiN2VjZWIzNDAyMiByZWxlYXNlMjYtbWFpbnQKKzcyNTMzIDA1MDc0MmJiNjBkNWIxNzM3NGExOWQ1YWFkZDJjYWMwMTJkMzFhMDcgcHkzaworNzI1MzQgOWU2N2MyZjk5OWM5Y2NjNjNkNzcxNGU2NzIwZmI1YmU3MTUzYjM3YyByZWxlYXNlMzAtbWFpbnQKKzcyNTM1IGM2MGNkYTM0MThiNTRmNjUwOGNhZjIxN2NiYTM2YTU4NTU1NjZlOGUgbGVnYWN5LXRydW5rCis3MjUzNiA4YTA0Nzc3YjU5Y2JkMGFlODUzYjFmNmQwNjJjZjM2OWJiZDdlMjBjIHJlbGVhc2UyNi1tYWludAorNzI1MzcgNTIyNGEyNThkNWJiMDRlMjA3OWIzMzAzYjFkNTJkNGZjM2VlZjQ2MyBweTNrCis3MjUzOCA5YTZmNWUwNTMxYTYzMTg2MzA0ZDJhMmZjNjkxYjM3NWYzM2U5ZmI3IHJlbGVhc2UzMC1tYWludAorNzI1MzkgMWJlYzY0YjhkZDE3NmFhOTUzNmZjZjUxY2EzZmE2NTViZjJhYTllYSBsZWdhY3ktdHJ1bmsKKzcyNTQwIGFjNDg5NDY5MzQxMWQ0MTdlZWEyZTUzNmRjY2I2Yzc4NTFiYzBmMzEgcmVsZWFzZTI2LW1haW50Cis3MjU0MSA4ODhkYWEwMDNmYzNjZTM1OGJmZjdkMmY2ZThlNTYxNzc4NTU1OTU0IHB5M2sKKzcyNTQyIDg2YTNjOWE5YzZkZTQxYWFiN2I4MWRkYWY4NDZkNjlkMzQ4NzA3OTggcmVsZWFzZTMwLW1haW50Cis3MjU0MyAxN2M1M2ZhMzc4OTAxNjcxMGRjYTFkYzIyMzcyY2QyY2UwMDg5MGMyIGxlZ2FjeS10cnVuaworNzI1NDQgODgwM2FlMGRmM2YzYTU1NmU0Mjk3ZjUxNjZjMWE2NzZkNzQyNDg0MiByZWxlYXNlMjYtbWFpbnQKKzcyNTQ1IDI0MWRhYTI1OWFmOTZjM2U5MjE3NzY2ZDEyZjdkMjhkNTdiMmIzNWUgcHkzaworNzI1NDYgMjgxZDJlMjNiZGIyZDNmYzI1OTcxZmY5MDc1NDhmMDRmN2M0ZWFkZiByZWxlYXNlMzAtbWFpbnQKKzcyNTQ3IDE5MjdlOGQ3OTE0Nzc5NTdkMTk5NzlhNTIwZTU0OWUxMmUzMTY5MDQgbGVnYWN5LXRydW5rCis3MjU0OCA0YWUwMWEyNDE2NTBkNTY0OGY4M2RlOGYxNDcwZTNmNzVkYmI5YzcwIHJlbGVhc2UyNi1tYWludAorNzI1NDkgZjk4MjI4OWY5M2NmYjhlMzQ4MGI3NTJhZTI2OTliYWViOThkZTc5ZSBweTNrCis3MjU1MCBiZGNkMDVhODFhY2JhMGVlMzg4YmU4MGUzNTI2YTdkNDc3MmQ5ZTljIHJlbGVhc2UzMC1tYWludAorNzI1NTEgNjMwZTY4MTEwMGUwOGU0OTJhODUwMjljY2E4N2FkY2JiMGQ5YTZjMiBsZWdhY3ktdHJ1bmsKKzcyNTUyIGQ2NWQ3MTg5ZGUzMmNkM2VhNTYzZTQ2MzU1YmUxNGIyODc1ZDFlZWYgbGVnYWN5LXRydW5rCis3MjU1MyBjNzQ3MWM5MTFhZDI0ZWUzZGFmMWU2OTlhMzI3NDI5NmFkMjFiNDQ3IHB5M2sKKzcyNTU0IGVhMmU0MjVkMWY2MDBjYjFiZmE3ZWI1MzY2NDAzMTg0MzYxMDcyYTkgcmVsZWFzZTI2LW1haW50Cis3MjU1NSBkMDJiMGU3MDczNzdkM2VjNjYxYTY5Mzc0M2NjNGE0ZDgyY2QwOWY1IHJlbGVhc2UzMC1tYWludAorNzI1NTYgNmU3YzdmNDI0NDM2YjY3ODgyYjc0YjkzOWM4Y2IwZmU5ZWRmMjE0MyBweTNrCis3MjU1NyAzNDE2NzIxNDgwYjIxYzVmOTYyYTM2YmM5OTIyMTFhNzJlZGIxYjZmIHB5M2sKKzcyNTU4IDRlYmNkMDE0ZjNkMDZhMDcxZGY2MTQ0NDhlNzc1OWZiZmE0NTMxNjQgbGVnYWN5LXRydW5rCis3MjU1OSAwNDk1YmM0N2NkMDg2YTk3YmNkYzg4NDM1ZTYzNjA2Mjk4MmVlNjhlIHB5M2sKKzcyNTYwIDRiNDE3NDNmNjUyN2NiYzhmMzE0NGZiODU1M2EzODMyOTM5M2I1NDkgbGVnYWN5LXRydW5rCis3MjU2MSA2MWM1YmRiMjk0Zjk1MTg1YTlkZWZjZTVhNWQwZjNiNjg4NTY2Mjk4IHJlbGVhc2UyNi1tYWludAorNzI1NjIgZjIwMDkzNzE5YzBlZmYxMDU2Yzg2NTJiYzIwNjllNTdiZjRlZWQ5NyBweTNrCis3MjU2NCAxMTlmNDIzMmFmNDYxODBhNjQ4Njk3M2M2OWJjYWI2ZWQ0MzJkMTQwIGxlZ2FjeS10cnVuaworNzI1NjUgOTQxNGMyYjE5MjNlZGVhOGQzNWNjNzk1MGM0MzVlNGRmNDYzMmFlNiBweTNrCis3MjU2NiAzNWM2ZDQwN2QzYzllZDQwYjAyM2RlMGE0M2E4YjhmM2U1YjUyYTNhIHJlbGVhc2UyNi1tYWludAorNzI1NjcgZTllZGNhZjQyNTQ3M2Q5ZjFhYTYzZDg0M2Y1NWQ4MjcxZDA4NWUyMCByZWxlYXNlMzAtbWFpbnQKKzcyNTY4IGMyZTJiNDdhODdjMTQ3YjQ0YmI3YzVjY2MwMjVkOTZiMjc1NWI3ODcgcHkzaworNzI1NjkgOGE3ZTg0YWU0NmM1ZGQ4NTZmMzkxOWE3ZTQ3MWZkYzYzYWM4MjYxYiByZWxlYXNlMzAtbWFpbnQKKzcyNTcwIGNjZmNhMjU4Nzg4NTNlOTE3Y2YzMTczZDVkM2MxYTA1MDQ5NmYyYTEgbGVnYWN5LXRydW5rCis3MjU3MSAyMjI3N2RmZmM1NzFjYWU3ZmJkODFhNTM1ODU0M2I0MWMwZGNiOTQxIGxlZ2FjeS10cnVuaworNzI1NzIgODkzMDU0OGFmNzM0ZTAyNmYyNmJkNGMwYTEyOGE0ZGJmOGY4NjhjNiBsZWdhY3ktdHJ1bmsKKzcyNTczIDg0NjE2ZWJmMmI0ZmMwODdiODg3NmQwOGY1NGZkOGRhODRhMTgzYTQgcmVsZWFzZTI2LW1haW50Cis3MjU3NCA1ZDBmNWM1NzEzNTc5N2U5Nzg1YmFiZGQ0MGIxZmM4M2VjZDVmNDIzIHB5M2sKKzcyNTc1IGEyNmFmODVhYjg5NTBiNWYyYzcxMDg0ZTZmY2UxY2VkNDEyYzlkMGEgcmVsZWFzZTMwLW1haW50Cis3MjU3NiA1OWNiOWMwNzRlMDk3YWM3YzJiN2ViNDRjMjJmMjcxZTNiMmE4NTQ2IHB5M2sKKzcyNTc3IDk0MmYyZDZkNWM1Y2MzYzZkMmQyZWM1YzA3MWI1YjE4NDljYzMzOTMgbGVnYWN5LXRydW5rCis3MjU3OCBiZDgwZmI4MzZiOWU5ZmQ4NThhZDViYmQ1MGE0ZWU3Mzk5YjVkNGJiIHJlbGVhc2UyNi1tYWludAorNzI1NzkgNTQ2MDQ2ODhiM2U5N2JkMzBmMzA2ZTdkM2E3MjljYjA5NDk0MjVlMSBweTNrCis3MjU4MCAxMzU3MzAzNDExNDg3YzU5ZGM0NjViYWRlZGI2YWQ3YmZjNWMxYjdhIHJlbGVhc2UzMC1tYWludAorNzI1ODEgMjU4MjE5NjQ2ZTNhZGI5ZGVjMjAwYjRhNzgzZDM3YzI3OGE4ZmQ4MSByZWxlYXNlMzAtbWFpbnQKKzcyNTgyIGRmZTU4NjVlNWY5ODA5Y2M1ZTRiYWY3MTM3NTA1ZTY0MWE5NjM5NWMgbGVnYWN5LXRydW5rCis3MjU4MyBiZWFjMGI0MWNmYjE0ZmVjMTAyNjQ4MTNiZGZlYTRhNjBhNWQyOTkyIGxlZ2FjeS10cnVuaworNzI1ODQgZWZlMTJhYThlZjE5Y2QxNTFhNjAwZDFiNDNiNjE0M2ViNTMwOTQxOSBweTNrCis3MjU4NSBlODIwOWFiNDk2OTE0ZTI4MzgwNDUyNDZiMDA5YjQ5ZmMwZDc5YmIyIGxlZ2FjeS10cnVuaworNzI1ODYgMTVhOGY0ZjJiYzg0ODQ1ZTIzOWUzMGU1ZjExYjZhZTc4NDJkZjdlMSByZWxlYXNlMjYtbWFpbnQKKzcyNTg3IDkyNGRiYjdmYzZjNTdmYjA2MWI4YWE2NDc1MjFiNTU5NTU3ZGEyYTggcHkzaworNzI1ODggYjYzODU3MDM3MDNlMWNjNzgxZDM1Y2RlZTQ4OTc4YzFlNGFiMDliZiByZWxlYXNlMzAtbWFpbnQKKzcyNTg5IDVmY2UxNGUxZDcwMzJjMmNlZTMzMDNlOTViMThiNzk5YzBlOWQyZTkgcHkzaworNzI1OTAgNzhmYjdmOGNkMzQ5MjJkZjE1NzFlMmFlOTA1YzY0YWE3YWI2NWUyZSBweTNrCis3MjU5MSBjMmM4ZDBkZGYxODc3YTliYWU0ZTcyNWIxZTc1NWYyYzM5ZTU5Y2FmIHJlbGVhc2UzMC1tYWludAorNzI1OTIgZDg1YmQ0OTlmM2Y0ZWNlN2EwZDJjMDcwM2NiOWE2ZGE3NTg4OWVmNSBweTNrCis3MjU5MyBkMjIxMjRjNjQ0ZmZhNGI4NDUwM2M4NjZhYzA0NDRmZTdjYWU4MGJhIGxlZ2FjeS10cnVuaworNzI1OTQgNzM1ZWQxNzhkZmFlNTI1YmVjMTk0OTIxOGVkMjg0YThkZTcxMmZjOCByZWxlYXNlMjYtbWFpbnQKKzcyNTk1IDJjMWQ4ZjJkMzgzOThmZjI5NWE2ODJiN2ZmZDY1OThkNmM1MDhmZGYgcHkzaworNzI1OTYgMDU0NjgwNWIzMDIyYTA2NWY4MjUxNzBlMzM4N2ZmOTcyOWVlNDZlOCByZWxlYXNlMzAtbWFpbnQKKzcyNTk3IDY0MTk4MjhlZjY1YWM0ODEzY2MxMDU5MDc5NzJlZDg0MDdhYzQzODAgbGVnYWN5LXRydW5rCis3MjU5OCA0ZWJlNmIyNjBjNTViYmMwMzQyNGY2NzRkZjNhZmIzNWQ2MWFjNDllIHJlbGVhc2UyNi1tYWludAorNzI1OTkgMTllOTU5NjI2MTA5ZjMyNDU4M2E3YjJmYzU3YTk4NWJhZWQyNDdkOCBweTNrCis3MjYwMCAyZDZmZjRhOTQ5NTNjZjk0MzVjY2NkZDY2ZDU3ZGU4MTk4ZDBjYmUwIHJlbGVhc2UzMC1tYWludAorNzI2MDEgYmJiOTExZjdjMGMyOWYzY2FjMjdmYjIzZjMwZGQyZGQ1MDc5NDViMiBsZWdhY3ktdHJ1bmsKKzcyNjAyIGY1MGVkZDRiYjQ4ZjgzYjg4MjhmOGVkZTdjODYwYTg4OGE0YWU5YjMgcmVsZWFzZTI2LW1haW50Cis3MjYwMyA2ODhkOTRlODZjYTI4OGRkNDViYWQzNDk2NDU1ZjI4N2RiOGQ4MzYxIHB5M2sKKzcyNjA0IDM1YmE2NWYxY2M4MTc5NjM1ZGYwNjAwNTdlMjQ1MzQyZTdjMjAwYjMgcmVsZWFzZTMwLW1haW50Cis3MjYwNSAzNDdlNTllYTFhNzFkYTY4MWRiZmU2YjQzODllMjE3NTQ2NzIzNmY1IGxlZ2FjeS10cnVuaworNzI2MDYgMzE5NTI0NTI0ODViZmEyYjQ2MGE0NWNkZDI3YTRlOWJiNmRjMzIxOCByZWxlYXNlMjYtbWFpbnQKKzcyNjA3IGU5YTdhZWU4ZTgwMDQxZTEwZDI0NjEzODUwZGYwZDYxZmM4YWVkNjggcHkzaworNzI2MDggYmQyZjdlMTNmZDczZWRmZDA0ZWQ3ZjVjZjVlMzA2MjMxMDRhNTM1MiByZWxlYXNlMzAtbWFpbnQKKzcyNjA5IDAyMzE4NzZmMzEwNDNkMTg4NjEzODAyYWI2NTZmZmVmYjQyYmE1MjEgcHkzaworNzI2MTAgYzUxODA4MjY5MjE0ZDIyMzA4MGRiNjRkNWJlYWRlYTYxZTQ1YTExOSBsZWdhY3ktdHJ1bmsKKzcyNjExIDkxMzc3ZGE1NGVkZTk1ODRhZWMwNGMxOTU1OWJmNmRjYjEzMmJhYzEgcmVsZWFzZTI2LW1haW50Cis3MjYxMiA4ODJkOTc5NTQ1MjYwYWI1NjA4NGY3YTA3N2FhNWJiZGVmZmRiZjA3IGxlZ2FjeS10cnVuaworNzI2MTMgOGY2ZTkxMjM3MDI3NDIyODAzYWRiN2Q1ZDlkYjg5MGZmNTkzOTRkNyByZWxlYXNlMjYtbWFpbnQKKzcyNjE0IDMyM2UxZDg0OGI1ZmZmYWY3MjE3Yzc1NTUwNjgxOGNhYzVkMDhjYmIgcHkzaworNzI2MTUgOGM3Y2MxNmRjNzljNDhlZDc1Y2I3ZmJmMjRhMzlmZTBjNTgzYjMxNyByZWxlYXNlMzAtbWFpbnQKKzcyNjE2IGE2YzRjZGZkYTlkNmQ1MDc5NTZkNzJjMTI1ZWYwZDI3ZDQ2Y2IxYmEgbGVnYWN5LXRydW5rCis3MjYxOCBiZjY5OTAyNjQ1OGU0OTAyNGE5OGEwNmYyMGM4NjIwY2U1NWFiMzkwIGxlZ2FjeS10cnVuaworNzI2MTkgZGRlZTRkMDVmYTE3ZWExZGE3MWNjMTY4NmNhMzYxYTZjNDkxYzdlYyByZWxlYXNlMjYtbWFpbnQKKzcyNjIwIDc4MTRiZTY5NjdiOGJhMDg4NTgxZmRjYTA5ZThlOGExYzA5NjYzNTEgcHkzaworNzI2MjEgYmVjYTZkN2NjYzkwNzcxZWNkZTk5NjE3NTc1Yzg4MzA2NjNhODg4YiByZWxlYXNlMzAtbWFpbnQKKzcyNjIyIDNhNWY2YjYzMzQ5OTM0OTQ2OTYwMjdiNzc0ZWU5OGE4MzYwMGJlM2EgcHkzaworNzI2MjMgYTY5ZTdjYzA0OWJiNWVjOTllNzg0ZTkzOTk2ZGVmMTRlMjgzMTlmNCByZWxlYXNlMzAtbWFpbnQKKzcyNjI0IDY3YmFmMmMxNzM2OWY4NGY2ZTZjMzg1OWQ5NDM5MTAyNzgyOTI4ZWQgbGVnYWN5LXRydW5rCis3MjYyNSBiMDVkNDc5ZDFjYjBhZGZhYmE4OWU4NTExOGFmZTE2MzBhZWE5NTY5IHJlbGVhc2UyNi1tYWludAorNzI2MjYgMzkxZGI4MGQxYWY0Y2YyNmNiYmIzYTljOGI0MzA2MDFiNzVmNTgwMCBweTNrCis3MjYyNyAzN2Y5MGYyZjQwMzQ5YThjZjBlZmZiNmFlODBkMTI0Y2EyZmQ4NGIxIHJlbGVhc2UzMC1tYWludAorNzI2MjggMWQwNDhjOWY0M2RjNjZhMDJiNjJjODdjNzIyYzk4ZDg1MGI4Zjk1MiBweTNrCis3MjYyOSBhYTc3ZmQ4NjI2YmE5Nzc3MTBjNzIzNjY4NjcyNWRmOTQ1Nzc2NTUyIHB5M2sKKzcyNjMwIGU5NjIxMjk2NjVkODA0NDc1YjJiZjExNjU2OWEzOWU1M2YzZjhkM2IgbGVnYWN5LXRydW5rCis3MjYzMSA5MGE4MTAyZDdlZmJkNjkwMGRkMTNhYjgwNmY2OTZiNWNjN2ZhZTA3IHB5M2sKKzcyNjMyIGM3MmQ0ZmNlMzAwMDU5N2RjMTI1OTEyMzA1ZGZhYTYxMzgwMWRkZjIgcmVsZWFzZTI2LW1haW50Cis3MjYzMyA2ZDY5MTQxNzdmNjAyNjZiNWRhMDQ0NzMzOThkNmMwNzU0YWRiOWNhIHB5M2sKKzcyNjM0IDkxMDMwOTI3NjM3Njc0ZGY1YjEzMjE5N2M4NmVjMGFhNmY0ZmY0ZWEgcmVsZWFzZTMwLW1haW50Cis3MjYzNSAwN2I1ZjIwZDAyNWE4N2Y3OTNiNmEzMTJmOTQ3MDdkZmFkNzFhOGFiIHB5M2sKKzcyNjM2IDM4ZTM1NDYwOWNmMmQ1NjYyZmZjODhjMDU5MjVjYmI3NTEyZDIwNDYgbGVnYWN5LXRydW5rCis3MjYzNyAyYTdjZTEzY2VhMjUwODNmOTk2MmVhZTFiYTc1MDlkZmQ3NTBiZWVlIHJlbGVhc2UyNi1tYWludAorNzI2MzggZTY5MTIwYmU2NWM0NTI3OTA5ZDlhMWYwMjkxMDQ5N2YxZDE0MDdjMiBweTNrCis3MjYzOSAwZmNmMmFjZGU0NzM2ZDJhZGUwOGY2N2YyZGUzNDNmNjlhYTlhNzI4IHJlbGVhc2UzMC1tYWludAorNzI2NDAgZTRkOTM3Zjc4OWExMTMxNGZlMWJkMmU4YjBlYWRmYzMxNGIwM2I3ZCBsZWdhY3ktdHJ1bmsKKzcyNjQxIDczZDliOTczNTQyNDhhOTBhODgyZjU0MWZmNzIxMTY1YzA4MTFhNDQgcmVsZWFzZTI2LW1haW50Cis3MjY0MiAzYzRiMWI0NTAxYzFiNGQ4NzIzMmI0YjRhODdiNDVhNTExNzVkNTFiIHJlbGVhc2UyNi1tYWludAorNzI2NDMgNmJlNTg1NGU1ZGY3YWFiYWQ2MjQ4NWE3MzE3YTc5MTA5MGMyOTE0NyBweTNrCis3MjY0NCA3ZTNkN2I1MjI0YjFlYWI2YWVhZDIyM2UwMjQxOTg5MjNhM2M0ZTk1IHB5M2sKKzcyNjQ1IDkxZWE4ZmNkNDU3ZTVjMTQyMzRiOTY4OGQ4OTZjNDQxZGMxMTAxMGYgbGVnYWN5LXRydW5rCis3MjY0NiBhYjMwYjIzN2I2MDAwOWI3MjdmOGNhYmM4Y2IyM2I1NGY5MmYwOGNjIHJlbGVhc2UzMC1tYWludAorNzI2NDggMTdkMTk0NjU0MGQ0Nzg3MTk2MDJlYTU0YmI2ODhmYWYwMTU0YzI4ZSBweTNrCis3MjY0OSBlZTIxNTY0OWZhZTA2MDhjYzRlOTI1ZjMzYTQ5MjhmZGVmMWMyYjQwIHB5M2sKKzcyNjU0IGZiMDE5NzE5NDlhNTU0NTUwMjBkNGVhMDM3MGYyNDYwOWQ3OGRmMTMgbGVnYWN5LXRydW5rCis3MjY1NSBlNDUxODZlZGFjOTE5YWRiYWE3NjQ5OTg3Y2YzM2VhMDExY2IzMWE4IGxlZ2FjeS10cnVuaworNzI2NTYgZjc2ZjIzYWYyMjk1YWU1MzY4NThmY2I1YTQzNWY0NTA2NzMyMzE5NiBweTNrCis3MjY1NyA5ZDUwMzcwNzQ0NGU0MTg3OGI1ZjZiODMzY2U2MzY0Mjc4NTc1NzZjIHB5M2sKKzcyNjU4IGI2MDBlNTEwM2M2M2UyM2ViZDZiODY5YjY5ODU1OGY0ZTA1YjAzZTQgbGVnYWN5LXRydW5rCis3MjY1OSBiMzNiNDI0OWIxODU4NTIyMDhjZDg1YTExZjk2MTU4ODVmOGQ2ZTYzIHB5M2sKKzcyNjYwIGUzZGZjZDFmZTIxMGQ2NTVlNjk2ZWM4MWYzYTQ4ZDQ2ZTBjZmE1NTkgcHkzaworNzI2NjEgYTdjMzRmNzI4ZjBlOGFkMTM5YWFmNTM1YTUyNmQ5ZjAxZjBmYzA2NyBsZWdhY3ktdHJ1bmsKKzcyNjYyIDkzZWQ2OGI5OTllNzU3Y2VlOTgyODI1NTMzNmFlNGQ1ZGQyY2VlZjEgbGVnYWN5LXRydW5rCis3MjY2MyA4OGQ5NjViZTg2MTcyNWRmZjIxNTM2MmIwYjAwMjhhMGJkYWU5OTBjIHJlbGVhc2UyNi1tYWludAorNzI2NjQgZDkwMmYzNDk0NDk5NjA4YzJlYzA0MzQ2ZGM0NjZmNzIxMGU0NjFlYyBweTNrCis3MjY2NSBkZDkxNThmYjA4Njc4M2Y0OGY5MWRjOTE2OWI0MmFjODE5ZTU3NDNkIHB5M2sKKzcyNjY2IDliYjJhMTM3MWRkYzQwMDUxOGYyMGRhNjcxZTU3ODY3NzUyMzQzMWIgcHkzaworNzI2NjcgZTVmMjg4NzZhZTZjOTNiYWU5ZTg3MGViNGQ2ODEzYjQ0N2I1YWU4ZCBweTNrCis3MjY2OCAwZDhkYjgxYTc4NmM2OGFjZjFhZmUzN2ExZWQ4ZGE3N2NkODc3NzczIHB5M2sKKzcyNjY5IGM0MGYxODdhZjZkZGJjZjc5OGExNzRhMmMzOGNiNjRkYzYwNzE4ZmUgbGVnYWN5LXRydW5rCis3MjY3MCA4NWZiNGMyMjlhOWNlYzIxYzgxMzU0NmUyOTg2NjYyZDY5OTBlNGUyIHB5M2sKKzcyNjcxIGI0MjYxZGE0ZWE1MGMzNzZmNDA4NDZmZTVlZTk2MjYxMDhiOThmMGEgbGVnYWN5LXRydW5rCis3MjY3MiBjZDRhNzgyN2VkYjY4YTU2OWQwZGM2YTVlNjI2MzRmZjZhZTg1ZjViIHB5M2sKKzcyNjczIDE4YjJmMmNkMDc0MWY0YTIzZDNkMGU5MjNhZmQ5YTQ2NjM1NGI2M2IgcHkzaworNzI2NzQgOTYxMDk0NzA1MzcwMjkwY2M1ZmQ3ODM4OWY4MjU2MDEwZDlhMWMzMSBweTNrCis3MjY3NSA5MGUyYmZlNGY2MGU3YTI1MjQyZDJiNWIyODE3YTg4YjkyNzU5ODY1IGxlZ2FjeS10cnVuaworNzI2NzYgMzRiNjBiNzM2YWQzM2Q1NDgzNjY1ZTlkMDM5ZDdiMTU2YzIxMjI4MyBsZWdhY3ktdHJ1bmsKKzcyNjc3IDJjYTExOGNhYWU3MTZhN2M3NmQ5ZjBiOGRhZWY4YTY1ZTAxNzNmZGEgbGVnYWN5LXRydW5rCis3MjY3OCA3OTA5OTJiZWRkNjFkMWU3YWZjMTJmZGNlYzg1YjY0YmZlMGQ1YjlkIGxlZ2FjeS10cnVuaworNzI2NzkgOGU4ZTg3YzFlY2I3ZWM1N2RlMTUwM2MxZDRlMDgxMTk5N2Q3MmZjNiBsZWdhY3ktdHJ1bmsKKzcyNjgxIGQ1MTRhOGI3YWU3OGFlMmFiYWM1MGQ3ZTIzMzdlZjdmYTZhMmQyZGQgbGVnYWN5LXRydW5rCis3MjY4MiA0M2ZjNDVkM2NiMjE2YjVlNTQ4NjU4MTNlOTk1ZWFhYTE5YzE3YTliIHJlbGVhc2UyNi1tYWludAorNzI2ODMgYWM2NjBlYTM1ZjUyNWRhMzYyYzFiYjYwZmYyYzUwYzU1MWE5YzRkMiBweTNrCis3MjY4NCBjM2Q0ZDkzYzg5ZTI1N2VlNmNhMDM5NmFiMTdlOGRmMzk4NWQ4YTQ5IHJlbGVhc2UzMC1tYWludAorNzI2ODYgZjFiZjUzODc4NmI3YzllYmI1YzIxYTUxN2UwZGNkZWJjODljZDlmYiBsZWdhY3ktdHJ1bmsKKzcyNjg3IDk4OGNhOThkOTE5NjJiZmIwMmZlYmE2NGFhNjFiMDQzY2I5MWM3ODggcmVsZWFzZTI2LW1haW50Cis3MjY4OCBjYTc4NDdkM2M0NTE5NGYwYjg5NGNmNDQ1NGIzZmYzZWJjNGI1OTlmIHB5M2sKKzcyNjg5IDFmOGFjY2QxZjQyYWQwMDRlZmJjMmQyNWNhODVmNDhlNzgyYmE3MGYgbGVnYWN5LXRydW5rCis3MjY5MCBhZTAwNjM4NmVjMzkzYjI2MzRmM2E2NmZmNjM0ZTAyZGI3NjljNTMyIGxlZ2FjeS10cnVuaworNzI2OTEgZjlmOTk3YzFmZDgxM2M3NTMwYTU1NmFmNjYwYzE2NzdmN2U3ZGZmNyBweTNrCis3MjY5MiA2OTU2N2EwNWQ1ZTY1NzM2ZGMzMDRiYjc5NTdkOTkzODRkY2EzOWZiIGxlZ2FjeS10cnVuaworNzI2OTMgM2FhNmE4NjNmZjA2OTFlNThjZGIyNTkyYjJjNDA1MjJlOTlkZWI4NyBsZWdhY3ktdHJ1bmsKKzcyNjk0IDFjYjgwNGEyZTAzODc5Njk3YTJkNGFhODk5MmIwZGY0MmVkYmRlNjggbGVnYWN5LXRydW5rCis3MjY5NSBhMTk4ZThkMzZlYzNiNTc4MDFjZjI5MzIyZTM2MzUwNDdkNWU1ZmY5IHB5M2sKKzcyNjk2IGE1MzU5NjA5NDQ0NDEzODZlNDQ0N2Q4MGU4N2UxZTY0OTI0ZTAzMjEgbGVnYWN5LXRydW5rCis3MjY5NyA4M2RkMmIyNTJhMjc2NDZjOGFhMTU2Yzk0OGIxMTZiOTRmMzI4Mjk2IHB5M2sKKzcyNjk4IGQ2NGQ0N2VlNTRhMTgxNjhmZDkyZjJlYjQxMzM4ZWMyYzAwYmU2YWMgbGVnYWN5LXRydW5rCis3MjY5OSBkY2RhNDQ4Y2E2NmU4NzI2YjY2OGY2ZWU0MDZjYjRlN2NjZjIxYmQzIGxlZ2FjeS10cnVuaworNzI3MDAgMGUzYWNlOWY3NTE2ZGI0ZmY1ZGY5M2I5MDNmNjFkZDI4MzExZjU4YyByZWxlYXNlMjYtbWFpbnQKKzcyNzAxIDc3Y2ZlZjU5NmQzMzUwYjU5NzAyZGYxZDQ1MzJlM2JkNzEwMmM1OTMgcHkzaworNzI3MDIgOTAxYjRmZmZlYTFmODBkZWNhYjcyNGUzNDMyNjg5ZmM3NTI2N2YxMCByZWxlYXNlMzAtbWFpbnQKKzcyNzAzIDliOTJkMmI4NmJhYWVmMjExNGUwOGY4ODBlNWRlOTQ3YTkyNzgwMjEgbGVnYWN5LXRydW5rCis3MjcwNCBkMjczMmVhOTliYTA4ODgzZjU4Y2MyYjRjY2I1YjY5YWM3NjNjNTIwIHB5M2sKKzcyNzA1IGU4ZjFhMDA3NzcxYWE5MGI4ZjA5MmM5NTEyMDMyYzRlZjAyMTUwNTAgcHkzaworNzI3MDYgYjIyYjJkYWFlYjQ0ZjM5ZTliMzI3NGNjZjA5YTExZTlkZTNkYjAwNCBweTNrCis3MjcwNyBkODQxZjk3MjQzYjU3NGFkODUzM2U2OTQwODc5MDk4OGUyYjZhZmMwIHB5M2sKKzcyNzA4IGI1MmI5MmYzMWZhODg5YzFhNTQ4YWVlZTFiY2YwYzc2YWQ4YWVhM2QgbGVnYWN5LXRydW5rCis3MjcwOSBmNDNmYzExOTNjMmFiMzg4NDc1NjlkZWE1OWQ2NzAwOTBlOTE0ZDU5IHB5M2sKKzcyNzEwIGU5YzA4ZmZhOTg5NTEzNWE4ZTFkOTMyMTAzN2E2MTUzYTY5NTAyZTEgbGVnYWN5LXRydW5rCis3MjcxMSAxMGNhMTFlNTk4ZTY5M2NmMzcyNjgyNGNjNzA4MjNjYjBiMDY4MmM2IHB5M2sKKzcyNzEyIGM1Yjk4MmFmMjA5ZDdiYzM4YjM2YzkwMmQ3OGFiM2NjOTBiMjJiMGUgbGVnYWN5LXRydW5rCis3MjcxMyBmZThkM2ZkNjZkMjY0ZWMyMDkyM2FmOWRiZDg4Y2Y2ZmQ5YmFjNzA4IGxlZ2FjeS10cnVuaworNzI3MTQgYjZiNDU0YjA2YTdiMzVjYTExYTBhMjY1MTY3ODZiNmI1MzlkZjcxZSByZWxlYXNlMjYtbWFpbnQKKzcyNzE1IGZjNzkzNWRlOGU4YWRhOGM2Yzk0ZDM1Mzk2OGU1YTc1YWJkNjE1MTUgcHkzaworNzI3MTYgZDQwNzI5NzU1ZWRmY2MyNzJlZWNhZDNmMDE5MDAyMzQ4OGZhMzhkOCByZWxlYXNlMzAtbWFpbnQKKzcyNzE3IDM1YmNlODBhMjVmODk5ODZhZWJjYTE0NzgyZjI0ZjM1NWI5NTQ3NTcgcmVsZWFzZTMwLW1haW50Cis3MjcxOCA5OWI0MDA4NjE1NDNlYTQ0MjE2N2NmOTZmOTJlMmM4ZmMyZWE5YTQyIGxlZ2FjeS10cnVuaworNzI3MTkgYWRiYzY2MmZmNGMxZDI4YWJiZDA1MjFkYjU3MmEwZmMxYmExN2Y1ZSBweTNrCis3MjcyMCAwZThjOGIwZDg2NjllNDlkNTgxYjU4NDIwYjNlMjhjYWJjZDcwM2M0IHJlbGVhc2UzMC1tYWludAorNzI3MjEgZjI1MzgxODNkMjYyMWZhMDA5YWUyY2RkNzJkMjgxMWIzMzNlOTFkNSBsZWdhY3ktdHJ1bmsKKzcyNzIyIDlkODFlMmM0MzhkYjk3MWI1Y2IwOWE5MDVlZWIxYWYzYTE2YThmZTggcmVsZWFzZTI2LW1haW50Cis3MjcyMyBlMjIxNzM2MWViMzdhN2JjODRmMTcxMjZlZGM4ZjZlZmFkODJjMGVkIHB5M2sKKzcyNzI0IDEwOGU5MGI4OTIzZWEyZWE5NWNlMGNiMTg4OGNiZWM5ZDEzMjZlNWUgcmVsZWFzZTI2LW1haW50Cis3MjcyNSA4MDZlZjNhMWY4NThkMTQyNmJkYzMwYjQ5M2QyNDlkZDlhNmI0YzI5IHB5M2sKKzcyNzI2IDM2NzhiMmQzNjBjNjk4NTQ4OWQ1MDYxMTk2OWIzYmM4MTU2MTEwODggcmVsZWFzZTMwLW1haW50Cis3MjcyNyBkZjM4MjY0NzJlM2JmOTFjZGVkN2I5NDBlZDJjNWI4ZTg2ZGIyOWFiIGxlZ2FjeS10cnVuaworNzI3MjggZjBiMDlkMDUzOWMwOTk1NzRmODU0MjU5NWJkMTkxOTBjZGFlYjA5YSByZWxlYXNlMjYtbWFpbnQKKzcyNzI5IDU2YWRmODY0ZjM4MDhkZDIyOGJjYTg0YTlhOTg5ZGY5NmU2MWRmNjEgcHkzaworNzI3MzAgOGZmZWFmNjQ5OTcwOGVkNmY3NmNiMDM0Y2RhMzhjMjIzZjQwMjk1NSBsZWdhY3ktdHJ1bmsKKzcyNzMxIGMwMDliMmIzNDgxZjljZmM1ZWQ2MjE5OWE1OWUwMDQ0NGJjM2NmMmQgcmVsZWFzZTI2LW1haW50Cis3MjczMiA4NzgzMDQ2MWFiNDI5NzJjODFmMzZlMjZlOTBhZGI2YWRlZTkyZDRlIHB5M2sKKzcyNzMzIDc2YTlmOWNiNDM4ZjUwOTNmM2ViMDYxYWQ2YmNkM2JkY2FmMDljNjMgcmVsZWFzZTMwLW1haW50Cis3MjczNCA3MTE2ZGUzZGJlOTgzYTZkZjM5NTI3YzBlYjIyYjUwMWM2NGMzMGU3IHJlbGVhc2UzMC1tYWludAorNzI3MzUgZjY1ZGUzNmYxODVjNWNkNTAzZmQ2MDI0ZDMxNDc1Y2ZhODc3OWYyOCBweTNrCis3MjczNiAxNzhmNzBmYzQ3OGQ3OTZiNmE5YTllZTI3YzhjY2NhMzMyMTMxY2U5IGxlZ2FjeS10cnVuaworNzI3MzcgM2JmZGI4ZDcyNTYwZmNmYjJkYzdhMGEyMzk1OTM0NGEwNDE2ZThhOSByZWxlYXNlMjYtbWFpbnQKKzcyNzM4IGZiNTlhNTI2NGFlMjVjOTUwODhiNTViMzQ3Njg4YWZlYmJhMzg3ZDAgcHkzaworNzI3MzkgODFjNTc5MDBhMTgyNWE4MDNhOGZkOGJhMDUzZjA2YjhlZTM4YmQyOCByZWxlYXNlMzAtbWFpbnQKKzcyNzQwIGZiYjMzMzkwYjI1NDliMmY0ZTA1MDk1YzY2ZThiMWU4ODdmMTdiZmMgcHkzaworNzI3NDEgOTA0YTFiZDM1ZTAwODkyYjU0Yzg3MGY0NGVlMjJhOWU1ZmYwMjU0MCBweTNrCis3Mjc0MiBkMTQzZWI2MjRjZjVlMmZiZmI5YzJkM2ZiZTJmZjAyMTRjYTMxYzE0IHB5M2sKKzcyNzQzIDc0YjY3NDhiNjNmNWZjYWIxZjMwZGI3N2ZjNmZkMDQ1NjNhOWZiMjIgcHkzaworNzI3NDQgZDA5OTRhNDJiNTk3NWIyNjBlNzViODAxMzA0ODdhOGE3YzFhNjUxMCBweTNrCis3Mjc0NSA0MWE2OTI2MjdlZWIzYzUzMzgwNDdmMTQ3YTE5Y2Y3Njk3YWFmZGVmIGxlZ2FjeS10cnVuaworNzI3NDYgN2NiMGE0NTQ3ZjBhMGY4MzJiZjY2ZTczNmMzZThlYjZhMzJjN2UzZSBsZWdhY3ktdHJ1bmsKKzcyNzQ3IDBmZmM5NTU4N2Q3YzQ1NjAzNDA1YWJiYzg5NzA0NTFjOWYxNWJjNDggcmVsZWFzZTI2LW1haW50Cis3Mjc0OCAxN2QwNzhjNWQ2NWI1MjI5OWYxMWJjYzg2ZjU0MDZhOTU0YTRlYjk1IHB5M2sKKzcyNzUwIDU4ZDNjNDU0YmMzNzI0MzhiN2EyODE2NTZiNzM2N2ZiYWExNjhkNjMgbGVnYWN5LXRydW5rCis3Mjc1MSBmOTM1Yjk1OTgwMzk4ZDBkMWFmNDI1ZjEyMWZlYmUxMWZjZGJhYWVhIHB5M2sKKzcyNzU1IGE3YWQxNjk2ODY2YjRkZDk2OTJmMWQ0NTExYjhkMDY3OWNiY2MwN2YgcmVsZWFzZTMwLW1haW50Cis3Mjc1NyAyYjdjYjQyZGRlMTE2N2YwNTc3NTcwNTg4NDU5OGM0ZjA2OTZiZjBmIHB5M2sKKzcyNzU4IGUzYmI2YjYyYmQwZjUwNzVkNTdjOWUzMWMxNGUyYmY0YmY2MWI2MzUgbGVnYWN5LXRydW5rCis3Mjc1OSBkNDczZmJhNGVjNjc1N2IwODU0MDM4MjRhZjFkMGM2ZjkwNDc2MTczIHJlbGVhc2UyNi1tYWludAorNzI3NjAgOTRkMjgzZDNkMDBiZjc0YjcxNzUwNzQwYTI5ZDVmYzM0NDYxMDkxMiBweTNrCis3Mjc2MSA2YTM1OWZkMjQ2NjkzZjQ5YWY2NDBiMGMzYTIzZDY2NTFhYzc1MTVlIHJlbGVhc2UyNi1tYWludAorNzI3NjIgMTcwZGRmOTYwZmRkZDhkOTM5MjA1Nzk0MTg5OTc5NWY1Njg3NDcyOSByZWxlYXNlMzAtbWFpbnQKKzcyNzYzIDcxZWM0ZmM2ODNhZjkyNjM0YmMzMDk3MDgzOTBiYTkxOGNkNjA5MzggcmVsZWFzZTMwLW1haW50Cis3Mjc2NCAxNDNhZWNjODBiNmI2ZDViMDM0MzU2YzlkN2FkNmYwMGYyNWZjMjNkIGxlZ2FjeS10cnVuaworNzI3NjUgMmQwNmEzMmExMmUzNzA2ZmUwYjVkMzFjMDY1Y2ExNDEyNDkwZTMzOCByZWxlYXNlMjYtbWFpbnQKKzcyNzY2IDczN2IzZDRhY2JiOWZiNzAxN2FlNDJmZThjMDYzZjdhMmRmZDllZjQgcHkzaworNzI3NjcgNjhkY2U2NTUwNmQ5ZmFhYjAyNmQzZDRkNmRmOTU1ODhiM2U4OTJkMSByZWxlYXNlMzAtbWFpbnQKKzcyNzY4IDhkMjYxYjc2ZGE0NmJmOTRiNjBlZjFmMzBlMTIzMGVlYWYxMzE4YTIgbGVnYWN5LXRydW5rCis3Mjc2OSBjZWU4MGQwNmY3Y2U5YzQ2MzhhZGZiMWFlZjViOGNlMWMwOTZiOGRmIHJlbGVhc2UyNi1tYWludAorNzI3NzAgOWEwN2U5ZDYwOTNhZGE0MmUxMWQ0OGQwMjdjNjA5NjlkZWNiNzFjZSBweTNrCis3Mjc3MSA3ZmY3YmVmMzI5MTE2OTQ0MzFjMTc3MGI1ZmI3ZDY1OTc0YTViNWY1IHJlbGVhc2UzMC1tYWludAorNzI3NzIgMDBlYmJmMWNlOTM2MDI2ODAyOWEyYWYyNzk5ZjZiYTEzZWVlNmYyZSBweTNrCis3Mjc3MyBhZTIwZjFlYmVjMjFjY2VhMzg5MzhhNmJmNjgxNWUwMGIwYjJjZTUzIHJlbGVhc2UzMC1tYWludAorNzI3NzQgZGFjYWQ0MjgzNmRkNjAwYzc4OTRjMGY0OGFhNTBkMDJjZjI1Nzk4MSBsZWdhY3ktdHJ1bmsKKzcyNzc1IGMxMzY4ODdkYjdlZmY0Y2IwMWZjM2UxZTM0ZGM1ZTk5ZDg2NWI3YzkgcmVsZWFzZTI2LW1haW50Cis3Mjc3NiBkODM1MGQwNDRjZjIyOGNkNmY5ZjdjZGI3NjcyMzFkMzEyMzMxNDExIGxlZ2FjeS10cnVuaworNzI3NzcgNjM5NTM0N2MwMjc2MjZhZDNmZDdiNWQzNTA3NzllOTU4NzI1MTJlOCBsZWdhY3ktdHJ1bmsKKzcyNzc4IDk0NWM2NTc0NDdkMjFlNjY3OGQ4NDU2NTBjMDllMWNlZmRkMWMyMjQgcHkzaworNzI3NzkgOGYxNzM2M2I5M2U2ZWQxYzRhN2NiMjZmMWI2NjNkMjJkYTI5MWY5ZiBweTNrCis3Mjc4MSA4ODNhY2U3ZWE0NDY2NjQwZWExZTdmNmU2MzQxZWI2YWRlZTk1NjMyIGxlZ2FjeS10cnVuaworNzI3ODIgMjkwMWIxM2ZiZDdlNjJlNGY2YjIyOGJmOGNhMmEyYjgzODQyYzVkOSByZWxlYXNlMjYtbWFpbnQKKzcyNzgzIDkzOTRhODJkOGRlMTY5NWYyZTE5OGI0Y2EwMzM2MjMwOTdkOGM0ZjUgcHkzaworNzI3ODQgNjllOTQzNGU0NTBhZGViZGNhMmE3OTE2MmVmNDM1MTMyMjk3NDcyNSByZWxlYXNlMzAtbWFpbnQKKzcyNzg1IGY3NjUwYTBlOTBhZGI1ZjZjODRmZjQyYTEwYzRhMjFkYmM0YTE4YjcgcHkzaworNzI3ODYgNzRiZGIwZTUyMTJiZGYyMjE2ZDUxNGEzNzdlYjY0Njg1OTExZWY5YSBsZWdhY3ktdHJ1bmsKKzcyNzg3IDc2YzQ0MTRkMTBhNmMxYzE2MmU0NTQ1YTNjMGU1YzRjNTIxODExNjMgbGVnYWN5LXRydW5rCis3Mjc4OCA2ZmQwMDllYzIyNGE3MzlmOGZkMWRkY2MxNTU5YWMxMGZhZjUwYzQxIHB5M2sKKzcyNzg5IGFiMjNmZjIwNDdhYTBkOGE5YTk1ZDY0NzQ0ZDY4NmUyMDFkYjExN2EgbGVnYWN5LXRydW5rCis3Mjc5MCBjN2ZkNzQxYzcyZWJlYmRmNGMyYTQ3YzljN2VkMWYwYTM2MmU1NTc5IHB5M2sKKzcyNzkxIDA1NjI4M2E1YzVkYTAwMmVkZGExZmI2ZmY2ZGIwZTA2YWM3M2U1ZmUgbGVnYWN5LXRydW5rCis3Mjc5MiBmMjc1ZDZhMGExZDE3Nzk3M2U0MTQwYWJhMDMxMTk0MDZjOGYxMWU5IGxlZ2FjeS10cnVuaworNzI3OTMgNmZhYjhiZDE1ZDcxMGQ4NTE3N2ZmN2YxYmUyYTgzZjViYzAyOGNmMyBweTNrCis3Mjc5NCBhNTJjZWNhYmZmZDRjMzI4MDAxMDQzZTU5NGI4MzFjMzRiYTQ0NGNlIGxlZ2FjeS10cnVuaworNzI3OTUgYmRkZjExZTYyMjAwMDJhOTJmNjU2MDA3MGI5Nzg1N2RlZGI2ODM0YyBweTNrCis3Mjc5NiA0Y2VlZWZiODU1NWU2MzlhYTlmODg3ZTQxYzE0ZWMwZjIxYzJjNmJmIGxlZ2FjeS10cnVuaworNzI3OTcgYWQ3NzIyNjExMWIyNjMwYWRiMzY1NWIzZDVlMTYzMTQwYjE3MjYyYiByZWxlYXNlMjYtbWFpbnQKKzcyNzk4IDA4M2JhMjQ5MDVhZDkxOTc4MjhmMjRhNTYxZmRkZjYzMWNjZDBmYjUgcmVsZWFzZTMwLW1haW50Cis3Mjc5OSA0ZmE0Y2E0NTAzYzhkZjYxZTc5YmUwNGQzNTBiYWQzOTY5Mjg2ZjZmIGxlZ2FjeS10cnVuaworNzI4MDAgN2UyYTZjMWRjOWQyMjM2M2Y5MWI5MmNhZWE0ZjNkZDU4YmRjZTk2MCBweTNrCis3MjgwMSA2ZTQwYWRkM2VlMDJhN2FlY2MzMDc2MWVhODU3NjQ5ZWU5NzgzN2QwIGxlZ2FjeS10cnVuaworNzI4MDIgMDIzYTM0MjhmMWFlZjY4ZDQ3ZmFjNzIxZDJhOTg1NDBiOTg3OWU4MiBsZWdhY3ktdHJ1bmsKKzcyODAzIDY3MGZhMGMwZmY5YWYyZTY3MTFmZmRmN2RlM2M4MDcyNjFhZGU4NDQgcHkzaworNzI4MDQgODkyMTMwNGI1ZjkyMmE0MTViZGI3YTBkZDI0YjBiOTcwMmE4NmRjMSByZWxlYXNlMzAtbWFpbnQKKzcyODA1IGQyY2NkODllOGU2Yjk1MTNkMmU4YzY0OWVkNjZlOTJhOGI4MDI2OWIgbGVnYWN5LXRydW5rCis3MjgwNiAzNzllNjNiY2JkMDQ0OGY2YTIwNjcxZWM2OWUzODI0ZGQ0ZWY4YWViIHB5M2sKKzcyODA3IDkzZjRhOWFkMjZmNjhkMzNiZjgxYjgyYTA5MzRmNjQxMThmYzE0YmYgcmVsZWFzZTI2LW1haW50Cis3MjgwOCBiMzMyNmZlNjMyZTVhNzkzZTE5NmQ5MTRlZDM4MGMyYTZiNTQ2MDYwIHJlbGVhc2UyNi1tYWludAorNzI4MDkgMmQ2ZmZmOWZlOGFiNzM2ZmYyMWE1OGFhZjllNmZlNTliZTBhOGQ0YyBweTNrCis3MjgxMCA0NTAxYjYzOGZjM2YyOTQwZDMyYmViNmFmNjYxNWZiMWI3Nzc4ZmE3IHB5M2sKKzcyODExIDlkNjQ1N2YzYTNlZGY0NWEwZTJjOTQ5ZWZiMGZkNDhkZjUzNjVlZGMgcmVsZWFzZTMwLW1haW50Cis3MjgxMiBlYjliMWFjM2Q5ZDg3MDQ2ZmVmY2U1NjY4Y2YzMGExOWFlMjNlMWQ4IGxlZ2FjeS10cnVuaworNzI4MTMgY2MwNTU3MzU2MDE0YmQ1ZWJkN2YyYTc1MWQ3M2U5ZjY5YzEyNTRlYiBsZWdhY3ktdHJ1bmsKKzcyODE0IGQ2MWFiMDQ0ZmRmNGQxODBiNTRlNDE4ZDc0OTk3MWI4NDFlMDEwZWEgcHkzaworNzI4MTUgNjA0NDQ0NTAyZWEwMjc3ZjM4ODAzNTg0MjA1ZTVkOThmNTI3ZGMxZCByZWxlYXNlMzAtbWFpbnQKKzcyODE2IDJjMzViODE2YWMwZGFhZGFiOWMwYzA4MjBhZWI2MWRhNDFkOTUwNzUgcmVsZWFzZTI2LW1haW50Cis3MjgxNyAxYjYyYmZmZDJlZjJlMGQ1ZmUyYmZhNDI4Y2NlOGJkNjg2ODNlOWMyIGxlZ2FjeS10cnVuaworNzI4MTggNDJkYmJlZTY2YzMyMmFjNjQ1OTBmNTFjMjRkNmNmOGQ5OWIyYzQ0NiByZWxlYXNlMjYtbWFpbnQKKzcyODE5IDRmYmNlNmQzZmU4NjFkZTdjZDVhNzYwYzk1MDc0YjE5YzhiN2JiZmMgcHkzaworNzI4MjAgZmFlM2E3N2QyMDMyMTkxOTdjMGM2ZTkyYzk1OTY0ZWM4YjRmZDBhZCBsZWdhY3ktdHJ1bmsKKzcyODIxIGI2NmRhZmI0MDY0OTQzMzVlOGIzM2VlNWIxMjRjNTIwMDY5YjNmZGUgcHkzaworNzI4MjIgNjA3NGZiNDExNjIxNmQxMjNlN2FlZTk2Nzg2ODY2ODUzYzBiMWU2OCBsZWdhY3ktdHJ1bmsKKzcyODIzIGM4M2ExNzJlZTkzMWU1NzljMzcyYzhiOTY5MGEyZjBmNzA3ZjJhMjIgbGVnYWN5LXRydW5rCis3MjgyNCBkZmU4OGQyMDIxODBlZGQ5ZmY1OWI0NTNmNWJmZWUxM2RmNjI0N2ZlIGxlZ2FjeS10cnVuaworNzI4MjUgYWFiMTE3ZTZiYjE2YzI3YTJiMTAxYTU4YTBmMmVlNzFiM2MyN2FhMCByZWxlYXNlMjYtbWFpbnQKKzcyODI2IGM0MDgwNzQ3M2EzNzlkNDFiM2IzNWZiM2E5OTA2OTY0ODY2MGFiYmYgbGVnYWN5LXRydW5rCis3MjgyNyA4NDBhMDlkZTY4YzNkMTQ1OGRkZmU1NDkyNDE2ZmU1ZTViMTVhNzMyIGxlZ2FjeS10cnVuaworNzI4MjggZjIyN2ZmMzRlMzNkNDhmMjM0MWU1M2RkMTUzOTliOWM3N2NhOTkyZSBsZWdhY3ktdHJ1bmsKKzcyODI5IDM1NDA0NWJiNzMyNjE1ODliZGUzNTNkMTczZjAyY2I5NDM0ODI2MGUgcHkzaworNzI4MzAgNzNkYzcyODQ5ODUzZDE0YTE1NjA3YTRiYmRjM2YxOWNhY2Q0OGI2ZCBsZWdhY3ktdHJ1bmsKKzcyODMxIGRjNDdmN2M2NWQzMDhhZDk0YTA3OGU4NTY2ZjMxYjEzNDkwMDgwNTIgcHkzaworNzI4MzIgNjM2NGU5MTFlNGNiMzYxZmVkNTQ0OWJhNDI5Y2NhYjhiZjczNTg2NSBweTNrCis3MjgzMyAyNTljODY1NWM1OTIzMDNhNTRlMDI3YjAxMjhkNjViMzU2MWQ3Nzk3IGxlZ2FjeS10cnVuaworNzI4MzUgOTg3YmI3MzRlMzc2YzE4N2Q4MWI1MTBmNDk3MmM1NjMzZDk5NWFiYyBsZWdhY3ktdHJ1bmsKKzcyODM2IGU1ZGQyNDI5YWNiMzNlYWEwZGJmNmMxOWFhYmYzYWI2ODQ3ODVmM2UgcHkzaworNzI4MzcgOGJlZDZlNmJiOTg0MmIxZDM2MmQ0ZWZhZjAyNmIyMTQ3NWU4ZWU5YiByZWxlYXNlMjYtbWFpbnQKKzcyODM4IGQwZWE3OGU5MjRhNjkxYWE0ODhkMTg1ZWZmNDcwODNmMjEwMTg0MGYgbGVnYWN5LXRydW5rCis3MjgzOSAwNGE0YjdkZjJkNGQzMGY2OTE2ZTNmMGY2ZjMwODMxYzMxZDUyZGRiIGxlZ2FjeS10cnVuaworNzI4NDAgYzhlMWQ3ZjIyNTJjNGYwYzQ4ODRhMjQ1NzA5OWQ1OTI2ZjNjNDBkMiByZWxlYXNlMjYtbWFpbnQKKzcyODQxIGYyNDU0ZDcxMjk4YWNkNTlmM2NhMjQ5YjA1NGVmYzZlNWQwYWFlODQgcHkzaworNzI4NDIgYWIxYjVhYzM0NGQ3OThjODE0MjM2YjQ0MDY5OWUzMDk1Yjc1NDI4YyByZWxlYXNlMzAtbWFpbnQKKzcyODQzIGViMjBjOTUwMDZjNzYzYzNmYTJlYzljNzdhNWNhOWYyMjc3ZGZhN2YgcmVsZWFzZTMwLW1haW50Cis3Mjg0NCAyNTNlY2FlNjQ3OGE0YzU3OTVhYmRlNWY4Yjk1MjE5MWEzYWQ4NzE3IHB5M2sKKzcyODQ1IDQzNWJjYTA3ODFlM2RiYjgwNjU2NDMzNjY5YWY5ODQzYzE1NGZjNGEgcmVsZWFzZTMwLW1haW50Cis3Mjg0OCA3M2Y2MjczMWIxZTZlNGU5ZDQ1Y2M3MzczYjBiYzY0ZGE4N2FiZmQxIGxlZ2FjeS10cnVuaworNzI4NDkgZDJkMDI4ZjY1YzdjNjIxNGY0YjNlZDVmZGFlMjdjNDAyMzAxNzFjYiByZWxlYXNlMjYtbWFpbnQKKzcyODUwIDJiY2FjMDhjZmM2ZGJkOTY2ZDY2OTljNzQ0ZTAyOGZkNWViODk0OGYgcHkzaworNzI4NTEgZTk2NTczZTdjNTE4N2RlOGE3ZjgzNDFkMDY5NWYzMmMwYTViNGY1MSByZWxlYXNlMzAtbWFpbnQKKzcyODUyIGMwOGJiYjg0MDYyZTAxNTVkNDUyYzhkNzBiZjMzNzc1NTc5MWM4Y2MgbGVnYWN5LXRydW5rCis3Mjg1MyAzZTdiYzc0OTM0YTFjNzA3NjY2MjQ4NzcyODM0ZDgxZTNiNjgyOGE2IHJlbGVhc2UyNi1tYWludAorNzI4NTQgZDVjNTgyZjQ2YmM5NGM4YzQ3MDI1MDEyYTBlMTM5ZmUxNmIwOTA2MCBweTNrCis3Mjg1NSA3Y2MwZmIwNzY4NDcxYTg0YzY5NTg0NTVmN2EwOGY1NmMzNGU0ODdjIGxlZ2FjeS10cnVuaworNzI4NTYgMWI2ODlkNTc4ODhkNTVlNTExNGJmNGI0NjMwMjZmMDFkYjYzZjFjYiBweTNrCis3Mjg1NyBlMDY0NTRjMmNjMGJmZmFlY2I0MjFlODMyZmMxYmE4ODM1YjA1MDdiIHB5M2sKKzcyODU4IGIxZTM1MWNjNTliNzQ3NWEyNmQwYTllMTE3MTllYTQ0ZDAwOWRjOWMgcmVsZWFzZTI2LW1haW50Cis3Mjg1OSA1NGJiZmQ0MWJlNjY4ZGZjMjNjMDgzNTEwMjExYWNjZGE3ZTU0MTMzIGxlZ2FjeS10cnVuaworNzI4NjAgOWZkMWQ1NGY2MTdjZjBmN2RjMDQ1MDgzNjk2YjM3YjUxMWM5MjA1NyByZWxlYXNlMjYtbWFpbnQKKzcyODYxIGRkYzlhMTZmYmVhOGRiOWFmZGE1MmQ4NWY1N2FmMGFmZDM1M2RlNGUgcHkzaworNzI4NjIgZTc4ZTBiZGJiYWM0ODE3NjhkYTAyNThhY2MxOGU3MzRiYzRkMmExZSBweTNrCis3Mjg2MyAwYTc4ZWZmYjVlMGI1MjA0M2YyYjQ3OGI1MmNiOTU4ZTkzODQxMDA4IHB5M2sKKzcyODY0IGJmMjg0MzA4ODU2NzE3ZGIwNGQ5ZGU1ZGZhNDQyYzFmYjQwZjlkYmUgcHkzaworNzI4NjUgZjlkMjYwOGUyNGU4YTM3YjRiN2ZjZmI3ZTY4MmU0NjBkZjFlNjdiYyBweTNrCis3Mjg2NiA5OTdlZjY4YmZhMTUxNzkwZDdlMTgzZmJjZTdmNDFhOTE5MDI5NmQ0IHB5M2sKKzcyODY4IDMzYTdjYjIwZjU1OGNhNTNjNTA4MTBmNTQxMGFiOWNkOTlmYzQ1Y2EgcHkzaworNzI4NjkgMjUyZDgxYTRmNjlkMmVjYjY0YWFmOWUyY2NhMzJmODE2MTU3ZDIyNiBweTNrCis3Mjg3MCA4NDYyNzdhNDIyNDkxMDQ1NTgzZDE3NWM0ZWZkODkwZTRlNTJiNDcxIHB5M2sKKzcyODcxIDE1MDk4NmFiM2RiMjg0Y2ZkMzhkNjdhMWFjZTJmMDRjMjc4MGJhZTQgbGVnYWN5LXRydW5rCis3Mjg3MiBiMjc4YjRiZGZmMWUyMjM5NWM1MGVkYTRmM2U0Nzg2NzU1OTUwNzY5IGxlZ2FjeS10cnVuaworNzI4NzMgZTE3YzE4YTZjYWVjNDc1ZGM2MzhlOTE0NjUzOGUxYzc0ZWU4MDRmMiByZWxlYXNlMjYtbWFpbnQKKzcyODc0IDg5NjMxZjYyNzgxMGU4ZDYyMjFlNzdiZmNjZDUzNTA1NTZlZWZkOTkgcHkzaworNzI4NzUgYmQyZmIxYmUxMzBlZjRmYmYzNmI4N2U4YjQ5MDZmODRlMDUxNjAzMSByZWxlYXNlMzAtbWFpbnQKKzcyODc2IGRiYTc2N2JjMzE1NWZkMmJhNDM2ODdmZmNkNzQ2ZTllOTZkYmJjZmMgbGVnYWN5LXRydW5rCis3Mjg3NyBmOTlmM2Q4YzUxZDU4ZmJmMGY0YzBkMzExOGUzNTZkYWVlYjNlMWViIHJlbGVhc2UzMC1tYWludAorNzI4NzggZDljZTNlNzQwNjc2NTU2OThiYTA2Nzc5NWU2YWE3OWJjZDdhNjU1MSBsZWdhY3ktdHJ1bmsKKzcyODc5IGRkZGY0MjRiZDY2OTY4YzA1OTVkNDJlZjQ0NGZjNWY2NGQ1YmUxM2QgbGVnYWN5LXRydW5rCis3Mjg4MCBlN2I0YTQ0M2Y3NjRhZWZiZGUxZjFhYmYzNGFmYWRkZWZjNjJjZGYzIGxlZ2FjeS10cnVuaworNzI4ODEgNjFiYmU1YzkwNTFiZmVmMmMzOWFjODIzOWI3NDE1MDEyNWUyNzcwYyBweTNrCis3Mjg4MiBhNTgwYTJlZTMxMjg0Mzg2N2U0NmQyNDkwNGQzZjJmZGI5OTA5MzE4IGxlZ2FjeS10cnVuaworNzI4ODMgNjI1YTAwNmEyNTNiOGYxNjQxZGU4ODA2NzE0NTZkOTI2YTg0MzFmNyByZWxlYXNlMjYtbWFpbnQKKzcyODg0IDk4OTc4ZTRmZDYwZmExY2M3NjIxNDk1ODgxMjdjMzlmYTZmOTQ0ZTggcHkzaworNzI4ODUgODMzZTQ2YzE0OTliZDc4MTJhMTNhMzY2MzY2ZDU5YzFlNzQ5YzgxMSBweTNrCis3Mjg4NiA0OGI3NWViMDI0MzRjYTYzMTQ2OGUxMTM3ZmJhYWRjNDkxNmQxOTBjIHJlbGVhc2UyNi1tYWludAorNzI4ODcgMzQyOGFjZDMxZTQ1NjQyNTcwNmNlZDhjYmRlZGM3YTE0ODEwOTU4NCBsZWdhY3ktdHJ1bmsKKzcyODg4IDFlMmMzZTdmZTYzY2Y0N2I0MmRhOGQ5NGM3MzI5MWM4MzI3YWY3MTQgcmVsZWFzZTI2LW1haW50Cis3Mjg4OSAzZDMwNWRlY2U1Njc0ZGM2ZGQzNDI5NTE4ZDNiNTkzMGRjMjE5ZWUwIHB5M2sKKzcyODkwIDVkYzMzZjQ2N2ZmNDZmMmY2MzA3ZGE1ZTNhMjYxMGM0Y2NiN2ZiNzYgbGVnYWN5LXRydW5rCis3Mjg5MSA5Yzc0NGRmY2Y0ZGU3NjVlNzcyM2I3NTViZjkyYjUzN2IwZDBkMWU3IGxlZ2FjeS10cnVuaworNzI4OTIgYjVlMDAwZDAzYjJjNGY5MjZmYzgyYmJkMWEwNGVmYzlhZTQwM2FkYiBweTNrCis3Mjg5MyAzYmUzN2VjNDNjMWJiMzg1ZmE1YmZkNjAyODc1MTRjZWM2MTcxYjQzIGxlZ2FjeS10cnVuaworNzI4OTQgZTY3YjFkMDcxZWQ2MWY1ZmRmYjgwMzZjZjcwYTNiYTM0OWQwZTJhMCByZWxlYXNlMjYtbWFpbnQKKzcyODk1IDUzOGY0ZTc3NGMxOGUyN2Y2NWVjMjIxMWE0NjYyZDNjZTE0ZjRkOWQgcHkzaworNzI4OTYgMWY0Mzc1NjE5YzljM2Q5YzIyNDc1NDczMjdjNWM3NDc5Nzg4MWIxNyByZWxlYXNlMzAtbWFpbnQKKzcyODk3IGIwNWY4NGFkOGVjYjBjM2UwZDllZmYxZTNiMDdhMTA1OTMwNjhlMWMgcmVsZWFzZTI2LW1haW50Cis3Mjg5OCBmOGNhZGZiNGExYTIzNzM4M2UyNjQxYzY1NjE4ODJhYTNlNzBiZGIxIGxlZ2FjeS10cnVuaworNzI4OTkgODAyNDE3NWUzY2M2OTk5YjFhYjZhYTlmYTJiMDYyMzEyZmMwZDkyZiBweTNrCis3MjkwMCBiZmU0MDI4NTkzZTExMThlMTVkN2FjZTVjYzMwZjhiYTE1NjdhZTAwIGxlZ2FjeS10cnVuaworNzI5MDEgMDQ2ODhhYTU2NGM4NWVmMmJiNjUwZWNiNDVkOTJlN2E2NjA3NTAzZSBweTNrCis3MjkwMiA1NjU0MTNlZTljMWIzNmQ2N2ZmNjNiNmZmNmQ4ZjExNWY2ZmU0OGJhIHB5M2sKKzcyOTAzIGQ3NTA3OWRlMmU0NmU0MDBiMjI4ZWU5OThmZTM5YjhmM2NjYTEzZWEgbGVnYWN5LXRydW5rCis3MjkwNCA3MzkxZDg4YjNkODJjZDE4MjdhODQ1NDgxMTY1MDQzNWM3MjY1OTFiIHB5M2sKKzcyOTA1IGI5Yzc4ZmI2ZDcxZGJkMTY2MmIxMmRjMTVlNDYxMmQxZDA2ZWVmYTAgbGVnYWN5LXRydW5rCis3MjkwNiBlYjBjZDgzYzg0YWJmZjM0NzQ0N2I2YWRjYmYxNTM1MzBlOTYxMTIxIHB5M2sKKzcyOTA3IDBjNjE3YjdhNzI3YWUwYWFhYWM5ZWRlNmIyOTJiNjFmMWVhNTM1NDUgbGVnYWN5LXRydW5rCis3MjkwOCBkYjIxMjg2OWQ4MTQ2Y2RhYjkwYWNlYTAwZTlmZWI0OGVjMjAzMTZlIHB5M2sKKzcyOTA5IGM3NDk2N2ZlYjAyMWFhN2E5OGY5MmFhNmZhZjI0ZjBkM2I1MzFkMjEgbGVnYWN5LXRydW5rCis3MjkxMCA1YWIyZjZjYTY1YWFmYTAwOGI3NjVlYzE0NmY3ZTQ1YmI3ZDI4ZDA5IHB5M2sKKzcyOTEyIDE0NTM3NmRmM2FkNzI4ZjcwNTJmZGQ4YjZlYmE2MDBhODMxN2ZlY2UgbGVnYWN5LXRydW5rCis3MjkxMyBmMjliZTcxMGMxNzRkMWMzNDM3NzcxZDE2OTg2NTE5MTg3MDI5Y2NlIHB5M2sKKzcyOTE4IDM5ZDNhNzVmYTgyMTg0MTAyZjM0Njg1ZDViNjM5YzhkZjdhMTRlMWUgcHkzaworNzI5MTkgNWFlYTYwM2IyMzA4OTNlMmNhODc4NzE2M2Q0MzU3ZDEwOTNiYzJhYyBweTNrCis3MjkyMCAwZDc0NjFjMDYzZTc5ZWRiYmJiYzM4MWFiYjJkYzcxODY0ODc3ZjI4IGxlZ2FjeS10cnVuaworNzI5MjEgMTQ4MGZhM2ZjYWI0MDExNDUxZTU5OWVkNjJmNzEyNTM2NTZiMjAwZCBsZWdhY3ktdHJ1bmsKKzcyOTIyIDVkZDFmNmIxNDkzOTFmYTdmYzNhMWZhZmQzM2JlMDkyZmY2MmU1NGMgcHkzaworNzI5MjMgZGFkZDg5NzBiMzAzNzU2YmM3Mzc2ZjYzNTE2M2NiNDQ0OTQ3NmU3NSBsZWdhY3ktdHJ1bmsKKzcyOTI0IDE2NzU5ZjYyZWIyMjZjZDcwMWUwMWNhMWQ3NWE1MGY0NmI1N2I3YjcgbGVnYWN5LXRydW5rCis3MjkyNSAyODdjZTMwZDA4YjU0NDA4NDZlNjEzNjkwZWVhNWZlZDk0Mjk1ZDRjIHB5M2sKKzcyOTI2IDY5OWRhNmM0NjdkYzM4Yzc3YjMyNWFjMTIwZGJkZjA1NDNmMmQyZDYgcHkzaworNzI5MjcgMzU1NDA0ZWExMTQzZmVhNzkzY2Y1Mjk4YmRhNTY5ZmQ0MWNiMWI0ZiBweTNrCis3MjkyOCA0ZDY3NDUyOTIyZjkzZmU3YmU0ZGVhOTExOTBiODVlOGI3YjY1MjgyIHB5M2sKKzcyOTI5IDg0YTYwZTcxMDU1MzA4M2NiNDRhNmQ4OTExMTE0ZDE1OTBhOTRlOTkgcHkzaworNzI5MzAgYWFjMjZkZThiNWQwZTRkNmUxZjJhNjE1NGZjMmU5ODcxOTAwZGJkMiBsZWdhY3ktdHJ1bmsKKzcyOTMxIGQzZGFhZDBlN2Y2ZjU3ODdjZjdmZWM4NGE2Y2QwMjYwYjFlMjM5YzMgcmVsZWFzZTI2LW1haW50Cis3MjkzMiBjZGZkMDE3Y2VlOTA4YzhmYzM1MzkxZmRmYWU2ODYxNjdkOThmZWUxIGxlZ2FjeS10cnVuaworNzI5MzMgM2I2MTI1NjlkNTM2MWY3MTdjMTgzOTFlODBmMmU2YTBlOTc5YmJmNyByZWxlYXNlMjYtbWFpbnQKKzcyOTM0IDk4M2QyNTY5MWI2OGQ4MGY4ODVjOTE3YTRkZWFhZTlhYTQyNDdkMjYgcHkzaworNzI5MzUgYTI3YTczOWNlZjdmODc5YWJlOGFkMTI2M2Y5OTJiODNhNWFjOWQ5NiByZWxlYXNlMjYtbWFpbnQKKzcyOTM2IDAyNTgzNTFkZmE2MDQ0OTJmNDVhMTc3ODU3MmY0N2RiMGE0M2MyNmQgcmVsZWFzZTI2LW1haW50Cis3MjkzNyBhY2MwNzg2NmIyMzMwM2ZkZWU2NWU4ZGYwY2I0ZGVhMzc1NDU3MWNlIHJlbGVhc2UyNi1tYWludAorNzI5MzggMzQyNTdhNzczZWMwZGNkMzY5ZGJiMzNhMmQ2ZjEzNjdlNDMzNzIxZCByZWxlYXNlMjYtbWFpbnQKKzcyOTM5IDY1NjQ2MzgyZTRlMDNkZTllZjE1YmU4YzhhMDU3NTg2MzNiN2E5MGQgcmVsZWFzZTI2LW1haW50Cis3Mjk0MCBiYTMwNWZlOGU4MzEyMDM0NzQ0OWZiMzU5NDQ0NTEwMmViZWJlOTI1IGxlZ2FjeS10cnVuaworNzI5NDEgMWNjYjZkNjI1NzE3MzA1M2MzMWY4NjFiODNmYmIyMzgyOWJjMjY3MCBweTNrCis3Mjk0MiA5MDEyZmY3ZDc1YTIxNjVkMWJlODFmMTYyMWZlOTZhMmMxZmI4NmZjIHB5M2sKKzcyOTQzIDI3MjFiZTdiZTM2NTdhNDI3ZTE4ZmFmOGI4MDUwZjc2NTE5YzcyNTMgcHkzaworNzI5NDUgMjllNWMwMTY1ZTEzNTE2YWEyOTczM2NhZjkwNjNhZDAwNWNmMjA0OCBweTNrCis3Mjk0NiA4ODMwNWQ3MzlhZTUyNmUzYzc5YTg1YjI4YmEyYTllZGNlYjI2MGFlIGxlZ2FjeS10cnVuaworNzI5NDcgZDcxZmE2YzQ2OGNjOGIxZDg3YzEyNmM0YjRjNmRhMTE0YzQwMDllZSBweTNrCis3Mjk0OCBmZGYzZWI3ODIyZTQ1NmJkNTIxNDVkOTVlZmZjMzU2Mzk3Njk4YTEwIHB5M2sKKzcyOTQ5IGE0ZGQ5MjE3ZWExMzFjZjFmMzc2NWI0MGU0NDNiYThkNjNjNWMyMTUgcHkzaworNzI5NTIgNDdkZDI5MGQyZDc0NWI0NDM2NDY2ZDVjOWRkNGE5MjNiNGZjNmU4YyBweTNrCis3Mjk1MyAwZTc2MTAyZjQ3OGI1Nzc1ZDQ0ZGY5YTY1MGU4YTFlOTZkN2M0YzM3IHB5M2sKKzcyOTU0IGYxM2JjZDkyMmY3NjAyOWNkNTYyN2U4N2VjNzMxYzkyZjk4MzE5ZmUgcmVsZWFzZTMwLW1haW50Cis3Mjk1NSAzZjc5ZWNhYjVlNTI5NzQyNDkwNDllNGFjYzcwMDRmOWZkNTUyZTNhIHJlbGVhc2UyNi1tYWludAorNzI5NTYgMjNhMzczYzhlYzFiMzg4YjcwMzc2MWZmNDkyY2Q0Y2VlNzYxNDgyYiBsZWdhY3ktdHJ1bmsKKzcyOTU3IGJhNjM3NmRmZjZjNGY4MTE1YjI5YmM0NzMzZGE5MTMyNmNiY2JhNWMgbGVnYWN5LXRydW5rCis3Mjk1OCA3YjRiOTIxZjMzMzU2NzczNjQxMzUxMzBkOWRlNTBkZWY0ZjE3YmRjIGxlZ2FjeS10cnVuaworNzI5NTkgNmFiOTM0NzAwMTFiYjk0ZmRkNWVmMGU3NDFhNTY3MDhlZTRjMGYwYiBweTNrCis3Mjk2MCA0ODYwZjc0OTNiOTE0NzlmNjQzZTVhNzg2NTM3YmY1Nzk3ODA4NmM4IHB5M2sKKzcyOTYxIDFjMDc4YmJjYTIzM2Q3NjEwNjQ4MmIzNzRmMGJlYzI0MDY2NjRjODIgcHkzaworNzI5NjIgMWQwOTZkMWI5OGZkMTNlMDI3ZWRiNWY5YmJiMGM2Nzc3YzIxZjc0MSBweTNrCis3Mjk2MyAyMmZkOTY3NTE4ZWVjMDMxZjNiYzdjNzdiNzRhNDI3OGVjN2VjOWY0IHB5M2sKKzcyOTY0IGI2MWU2YWQ1YWU3MGU5ZjUyYzQ2NGU3OTcwOGNlNDEyNDE5NjA2NTYgcHkzaworNzI5NjUgOGNiMzQ5ODczY2RhZTJiZDc4ZGJhM2M3OTM4MjIzOGNkNGI5NTI2YyBweTNrCis3Mjk2NiAxNTRjYTM3N2Y1M2M3YjUwZTVjNjc5MjFjNDQyNWM4OGE2ZTQzMzM5IGxlZ2FjeS10cnVuaworNzI5NjcgOWI4YjYwYmMwZjViNzMxODJmM2M2NjYwYmZhZjkyYWQzNzNlYmQ2NyByZWxlYXNlMjYtbWFpbnQKKzcyOTY4IGFmNGZkMjM2NTRjZWIzZjQxOWVjZTZmMDNhOWZiOWQ1NmRkMDRlNzYgcHkzaworNzI5NjkgNGM3N2Y5ZTFhMTlkY2U4MTk2ZmQ4MTAzYzJhYzBkNWI1ZWJmZTljYiBweTNrCis3Mjk3MCA4MzdhZGI3NmEwZTFhYzBiYzIxNDdkMjA3ZGE1MzdkZDE5ZDc1YzI3IHJlbGVhc2UzMC1tYWludAorNzI5NzEgMTM5MjFmNTI2ODQ4MzBhM2I4MTRhNjlmOTk4MTFiMDU5ZGM4Y2EwOSBsZWdhY3ktdHJ1bmsKKzcyOTcyIGU2ZTNhMGU5MWJlYWMzZDEyN2I1ZWYyMWYxNGYwMDRiNGJlNzUxMzIgbGVnYWN5LXRydW5rCis3Mjk3MyA4MjFmN2Q0MmJmNzQyMmEwZmRlNjgzYmU3YmVhYmJmNzg2N2IyYzYwIGxlZ2FjeS10cnVuaworNzI5NzQgZmM0ZTI0NDNmNTA5NjRlOTY0NjI2Yzc2OWNhZDMwOGMzZmUzNzZjNCByZWxlYXNlMjYtbWFpbnQKKzcyOTc1IDYwMzg3MDIyOGRhYzU0ZTFhOTZjNDlkZTNkNWJjMDc1ZTgyMDk5NDUgcHkzaworNzI5NzYgNjBkNDliM2ZkM2JmZDJiNzYzNDQzMDZhMTBiNzE5MDUyZmMyYTA1OCByZWxlYXNlMjYtbWFpbnQKKzcyOTc3IDEwMjlkOWFhZDQ5MWM4ZjgyNmM5NjY3NzgxZDEyNjJlYTNjZjVmMmQgcHkzaworNzI5NzggMWQzYjFiZTZhOGIyNmJmMjQ5OWQyY2U2NDQ3ZDI0NmMxZDQzN2VkZSByZWxlYXNlMzAtbWFpbnQKKzcyOTc5IDcwZmI4NDg4NzBhY2Q0MTRhY2M1N2MxOGY0YTg1ZWY0OWRjMzdkYmUgbGVnYWN5LXRydW5rCis3Mjk4MCBhNmI3M2Q4MGZiZTI3NWE5ZjYzYTdkN2ZjZTdjMDA3NzBmMzk2ZWM4IHB5M2sKKzcyOTgxIDExYTU0ZGFiZmIxY2Q1ZDMzNzhjNDNmYzc5ODRkYjVhMDA2ZGVhNTIgbGVnYWN5LXRydW5rCis3Mjk4MiA4YjI5OTY1MmIxZTg1ZjdkMTJlODRlYTFmMzBiODI5YmYwYTIxNTkzIHJlbGVhc2UyNi1tYWludAorNzI5ODMgOWRkZmE2ZTA1ZmIwZGExMTk5NDM0MjFhMTJiOWRjMjg5MGE4NTM5MCBweTNrCis3Mjk4NCBhYzBiODVmNjgyOTdiZDMwZjFlNTBlMjllN2FiZWJiZDM1NmFkN2Y2IHB5M2sKKzcyOTg1IDViMjEwMGU0NmQzYjQ4YTAyZjA0YzBkZGIxYWY3NDg1MmQzZTI0YTQgcmVsZWFzZTMwLW1haW50Cis3Mjk4NiA2MDU2Yzk2YzJkMzI3NTU4NzBhNjg1ZGU5YjcxMWYxNzRhYzI4MTQxIGxlZ2FjeS10cnVuaworNzI5ODcgZWQwYTlkNjg0MDIyNjlhODkyYzA0MTc3MTIzNmI0ZmY2YzQyNzY4OSByZWxlYXNlMjYtbWFpbnQKKzcyOTg4IDk5NjczNzkyNzBhMDk0MTNhMzViOGViMmZiOWZiMjRiZDFlODQ4NzMgcHkzaworNzI5ODkgY2U5OWU4ZTIyYjFlYWMwOTYwNzNmZDM3MTc1OTUyNzU3ZTZjMDUzOSByZWxlYXNlMzAtbWFpbnQKKzcyOTkwIGIwMDQwNDk0YjRhNjlhYWM5NmNhOTE2OWQyYzBmZTc1YzgyNGIxNjggcHkzaworNzI5OTEgZjU1ZDhkZWQyZDA1ZTVhY2VjYmY2MWFjNDNkMjM5NDk5YWFiODc4MyByZWxlYXNlMzAtbWFpbnQKKzcyOTkyIGI3MjZmZmQ0OTUyNDUwZDIyYmY5OGI5NGY1ZDVmMTIyYzU3NWU1NzggbGVnYWN5LXRydW5rCis3Mjk5MyBlOTBiMDY3ZDgzZjI1MTY0YWI2NGU5NTY1ZjkyZTQ3M2ExZGFlYWE0IHJlbGVhc2UyNi1tYWludAorNzI5OTUgM2ViNTIyZGMzMzM3ZGVhMjFmMjc0ZWQzZDlmYjNmODJjMzE4NGVhZiBweTNrCis3Mjk5NiA0MDM1MzgzMzk0ZWNmYWE2YTcyNTBjZmU4NmQ2YjJiNWQ0MTgyM2NiIHB5M2sKKzcyOTk3IGJjMjUxNjgxMGNjNDExM2MxMGQ4MmYyODM3Y2EzY2M1NmQ3MTVmMDAgcHkzaworNzI5OTggYTBhMjVkZWVjZGIyMzZlMzU1MWE3Yjk3NjZjY2NhY2VhYTIxOTA0MyBweTNrCis3Mjk5OSA2MThlNDZhNjlmMjc4ZjA0MjAzNjlkYWRkOGI3YzQ5NWFhMTE1MWM4IHB5M2sKKzczMDAwIDJkM2MyY2YxYjUxZTM0Y2M4NzcyZDcxYmQ3MTk2MjMwNzgzMjFjYzEgcHkzaworNzMwMDEgODhiZDg3NjBiMzQyZWM4N2I3YWJmMDg1MDQ4MzEzNzQyMzk2NWJhYyBsZWdhY3ktdHJ1bmsKKzczMDAyIDI2MGM4ZWQzZjVkZjk3YTY1MzVmNzQ1ZmQxNmU0OGQ2ZjZhOTIwYmYgbGVnYWN5LXRydW5rCis3MzAwNCAxZDhmMjRiZjQzOTk2MzM2MGZjYzEzNjg5MzJlZmI5YzE3OWYwNGU4IGxlZ2FjeS10cnVuaworNzMwMDUgZjNjODcxYmRlYTU3MWQ2ZDY5Y2Q4ZDQzNzVjMTg2NTZmYzc0NGZjMCBweTNrCis3MzAwNiBkNzVhYjE2NDEzZGE0MmMxNDdiZWE4YTI0NzVlYzQzNzVjYjRmNWFhIGxlZ2FjeS10cnVuaworNzMwMDggMWZhMTM3OTQyMDg1ZGZkMWYyMTNjYWY1ZGMwMDA5ODNlNzhiNGY2YyBsZWdhY3ktdHJ1bmsKKzczMDA5IDc3YjkxMjRmMWM4YzE0ZDhlNzZjMjhiOWFkYmExZGE3YWVkN2QyYzggcmVsZWFzZTI2LW1haW50Cis3MzAxMCBkMzljMTkwMzE2ZTc2OWQ5Y2ZkNjA1MDVmMDY0Y2QwODJiNTZiZmU2IHB5M2sKKzczMDExIDQ5YzBiMGNhNTExM2I5MzM4MzE4NjEzZjY4MTIyMTY2MDllYmU0Y2IgcmVsZWFzZTMwLW1haW50Cis3MzAxMiBjNWQzNDk1ODJlOWNhZTdiMDNmNTQxNjk2N2ViOGZlNzYxZDM1NDdjIHJlbGVhc2UyNi1tYWludAorNzMwMTMgYjY3YWJkNTFiMjcwNGMwYWNiYjBmNzI4NDJlOWQ5NTMyMmU2ZTAxYSByZWxlYXNlMzAtbWFpbnQKKzczMDE0IDExZGUzNWRhMjgxYzE3NTVlZTk3MzlhMWY4YWE5YzdmZDQ4ZWM3MGMgcHkzaworNzMwMTUgMjhkNjQxOTJhYjVhMmNmNzJhOWJkNmJkOTEzOTAwNzUxOGNkYzI0NyBweTNrCis3MzAxNiA5YzE3ZTM2NjkzMzZhY2E3MGVlNWI5Zjg5NWNkYzZhZTZlMjZhODgxIGxlZ2FjeS10cnVuaworNzMwMTcgNzZmMWJlOWQyODE4MmJmNDliMzFlMjg0NmVkYTJkMWU1MjE2MTUyZSByZWxlYXNlMjYtbWFpbnQKKzczMDE4IDEzNGQxMmMyZTc0NTAwZThmYTJiZGJiNGJmNTAwOGQ1NjBiZjViYzEgcHkzaworNzMwMTkgMjM1NmU5ODVlY2U4MzVmMWJkZTNmYzg3ZTQyZDA5ODJjMzZkNmVkYyByZWxlYXNlMzAtbWFpbnQKKzczMDIwIGVjNWQyMjhhODNlZmNhMjFmNTdhZDc1NWUxZjA0M2ZkYjA0ZDczZmEgcHkzaworNzMwMjEgYTVhODljNjBkMzJlNGVlZmY0NjY5MDY4ZTQ0M2FiYTUwNmRhMmNiZSBweTNrCis3MzAyMiA2NDc1MDA2NWVjZDRkMWMyOTNiZTEyMmEyZWUxNTA0NjExNDg1NGM1IGxlZ2FjeS10cnVuaworNzMwMjMgMjVhMzE1NWRhYzc2YzUxNjM5NzRjOWVhZjljNmI3NjFiY2NkNTY1YiByZWxlYXNlMjYtbWFpbnQKKzczMDI0IDlhNGNlMWU3MWFkODE2NTE2MjEwOWZiZDFiMjc2ODk5NTY4ODkzYjIgcHkzaworNzMwMjUgNGVkMmVlMGIyMjkwYTA2NDZhZDgxOWZkOGNiOGU4MTMzY2YyOGU1NiByZWxlYXNlMzAtbWFpbnQKKzczMDI2IGU0NzQ1ODM4ZjY1NWI1Zjk1MWIzNTRlYTEzYjQ3MDkwYjlmNGRiYTYgbGVnYWN5LXRydW5rCis3MzAyNyA3YTEzNDcxZjRlOWJkMWRjZTUyY2FmODU1NTYyZmQ3OGRiMDdhNmNkIGxlZ2FjeS10cnVuaworNzMwMjggMTQ2YTM5YjI1ODQ1ODVmN2I5MjRhYWVlOTBmZmYxZGE0Yjc5ODljOSBweTNrCis3MzAyOSBjOGZlMzAzY2VkYTQ1MTU4YzcxZmU3OWRjNGU5M2E3YWRlNjEyNTY1IGxlZ2FjeS10cnVuaworNzMwMzAgNmUyYThiZGFhNTQwMjA4Y2QzOTA2YmU4OGRkM2I3ODUzMjQ0MDM3YSByZWxlYXNlMzAtbWFpbnQKKzczMDMxIGIyZWNkMmJkZjE5NTJiOTE0MTg1ZDgzZjhjZGIzMDE3YWRkMTRhM2MgbGVnYWN5LXRydW5rCis3MzAzMiA2ZDRjNDdmZWM0NDlkYWJkNWZmMjMxMDdiZWY4ZTIzY2FjN2Q2MmRmIHB5M2sKKzczMDM1IDFhNTIxYzA2YTcwZGI1MTZhMjVkNjJiZmRjZWQyNzcxNjFlMTYzMDkgcHkzaworNzMwNDIgNmQ2YjRkMzc4MWYyNzU4NGM1MDUyMjZjMDhiYmFmYTJjMjJkNDVlNiBsZWdhY3ktdHJ1bmsKKzczMDQzIDY5Y2Q4MGY4ZTEzM2EyNDAyMjAzZmY2M2Q2MmFiZDViMWIzYTFmYTAgcHkzaworNzMwNDQgZjVkM2ZmMDNkZDViY2RkNTUwZjFhMmY1ZGE3MjIwNTIyZDI1MTY5MiBweTNrCis3MzA0NSA1YmI1ZTkzNDM1YjA0ZTExODExMDgwMGU4N2RmNjUwNTc3NjVmNThjIGxlZ2FjeS10cnVuaworNzMwNDYgNDMxY2E1Mzk5YTI0NDg2YzBmZjhjOGQ0NTY5ODQwM2Y0YjdkN2E3YiBsZWdhY3ktdHJ1bmsKKzczMDQ3IGM2MmI2NTIyNTFkODk5YzEzODdkNTU0Njg1ZTY3ZmQ3YWJhNmI4MWUgbGVnYWN5LXRydW5rCis3MzA0OCA4ZDJmMzljMjFlOWU1MmYyYzUwM2M0ZGZkMDg1ZGYxYTJiNjRjYjEwIGxlZ2FjeS10cnVuaworNzMwNDkgYjAxYWVmZjcyYjY1MmE3ZjE5OTg3MTYxOWJkNGMwM2IxNTY1YjM4MSBsZWdhY3ktdHJ1bmsKKzczMDUzIDU1M2M4MTUxYzljNmUwMjVhNjcyZDUzZmJjNDE0NjRmMGEzNmNiZWUgdGtfYW5kX2lkbGVfbWFpbnRlbmFuY2UKKzczMDU0IDQ5NWNmM2MyNWViMTQzYjAyMmY2ZjI5OTM4OTUyMDM5ZTk5OWI2NTAgcHkzaworNzMwNTUgMjM0NjJiMzgxNzFkNjllY2ZhMDljYjA1MWVhNjU1M2I1ZDI0NTRmZCB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMwNTYgNDM1M2ZkMDg0M2NiMzFiMzU2YWRjNTBmOTNkMjIwZTJlNzI1NWVmMiBweTNrCis3MzA1NyAzZmZiYTZhZDMxOWMyZWFlZjUyZWE5NDIyMDQwZjU4MDY3ZmQxZjQ3IHB5M2sKKzczMDU4IGNhOWJlOGZjMDI1ZGMyNzczY2RjNDNjNWZlMjQ1OGJjMjY0M2NjOTUgcHkzaworNzMwNjAgZTQ3NWNjNzFmMTg4YTRhNTlmYjQxMGJiNWYyOTRhYTM5MDhlZDMzNCBsZWdhY3ktdHJ1bmsKKzczMDYxIDkxNjJjZGYzNGRmYmY0NTYyYmNhZWI1OWRiMzg4MTU0NjY3MWI0MWYgcHkzaworNzMwNjIgYjQwNDMwNzkyMmM2ZThjNTA4ZGQwNzQ2OTE5MGI4ZjVhMTUwMWQ1ZiBweTNrCis3MzA2MyA0OTQ4NWY5OGEzMDgzYmMxYzE4MjQ2ZDI2MmFlNTU3NDc0ZGJiMmQ0IHB5M2sKKzczMDY0IGEyNTNmZWE4NWFmMTVjYTk5ZTAzM2EwMDU0YTNkMTllNjlkOTI0OWEgbGVnYWN5LXRydW5rCis3MzA2NSBmYTJmOTE3OTA2ZTczYjdkMWRkNjc4NGRjYTZmZmQ5NWExYjgyZmY5IGxlZ2FjeS10cnVuaworNzMwNjYgNGU5NmQ3ZGFmNzlmNGM1YjQ0NjJlZjdiZjRkNGY2ZWU3Mjc4M2VhYiBweTNrCis3MzA2NyAxMTQzNTRiMWUwZTU3ZDhkYzY0Mjk3ZTcwMDA3NmI3NjIwNjY5MTgwIHJlbGVhc2UyNi1tYWludAorNzMwNjggNzU2NjIxODE5ZjVhNTFmNDE0NmFjN2M1ZjhlMDA0ZDhmZGQzYmFkOCBsZWdhY3ktdHJ1bmsKKzczMDY5IDVkZWM3MjQ3YjI0OTZlYjg1YzhhZTA5YmJhOTk5MmU5MDhmODI2MDkgbGVnYWN5LXRydW5rCis3MzA3MCBiZjBiZDZlYTFjNzJlNTUwZTgwOTRiYjk1MzBkMWEyZjYxZTA2YTg3IHB5M2sKKzczMDcxIDFiNDNlNmYyZDMyOGE5NzFmODA5NGRiMzJjZTk4OTViNGZiZWI3NDEgbGVnYWN5LXRydW5rCis3MzA3MiBkNzRiOGVkZDdhOGNmMDQwNjA0N2Y4ZmZmMGExNTI5MzQxNTM1Yjg5IGxlZ2FjeS10cnVuaworNzMwNzMgZWYwNzg1Y2ZhNmFmNTFiNjJjNDc2ZjJiOTdhYWI3MWY1M2EzYTExNiBsZWdhY3ktdHJ1bmsKKzczMDc0IGJiYjBiNGY4YjVlMTFhZjUxNjc2N2E4ZjkwMjUwZTc0MjEyOWIxM2YgbGVnYWN5LXRydW5rCis3MzA3NSA4MWJhZjc2ZDA3OTc3M2Q2NzQ3Y2U1MDgzYmJkZjcyZTc0NDA0YWZmIHB5M2sKKzczMDc2IDUxOWY4MGIxZjVlM2E2NDNkNDNlZWMxNTE3ZWZkMGIyNmMwNWEyZTcgbGVnYWN5LXRydW5rCis3MzA3NyAwNzA1MzBlOWYxOGYyOTg0MjI0ZjUzNzQyZDU0NDhkOGI0YmQxYTkwIGxlZ2FjeS10cnVuaworNzMwNzggYzNhMjY1NTZkZDE0YWQyYjU5NDgxN2FjNDliZDY5ZmZlMTlkMjQwMSByZWxlYXNlMjYtbWFpbnQKKzczMDc5IGYxNGI1MDVkMzlmNGFlOGE5YjU1MDkyM2UwMTc4MmYyZDk1NjcwYTcgcHkzaworNzMwODAgZjUxZWFhZWQ2YzcxYTYwZDYxM2ZmYmNjN2ExZjM1ZTEwYjdhOGM5OSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMwODEgMmFmZjcwMGUwY2E5MThjMGQzYjRhYmU2NzZmYjE4OGY5Y2FkMTZlYiByZWxlYXNlMzAtbWFpbnQKKzczMDgyIGE2YTc0YjlhN2NkMzcyYjAzMjM4MTZhMzYxMjU3N2JiNDA3NjhkZWYgdGtfYW5kX2lkbGVfbWFpbnRlbmFuY2UKKzczMDgzIDVkYjA1NTZlZDEyMjM1YmJmZTFkZWEzNGZlNGZjZDE0NmJlNTE4OGMgbGVnYWN5LXRydW5rCis3MzA4NCA3Yjc3MmVkNTM2Yzc2OWNlOWNlMDIxMjY2YjU1YzYwNzkyNmRlYmU2IHB5M2sKKzczMDg1IDc1ZTEyYzVlNGVhZmJhMWEzNGIyNGYwN2U3ZTAzYjY0ZDY0MzFjNzMgdGtfYW5kX2lkbGVfbWFpbnRlbmFuY2UKKzczMDg2IDUyZDI1OGViMDE3NmZhZjQxZGY2NjczYmRlNTI2NTlmY2EyYWM1YmUgcHkzaworNzMwODcgYjRkZDQyODNmZjgyMGRkYTIzZGZkMTRjNzdlNjNlMDVkM2M2OTM4MiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMwODggMWUyYzAzNzFjZTU3MzdkYTQ2ZGIwYjQ3YjFlYmZmOThiYWMzMTIxMSBweTNrCis3MzA4OSBmNTE3ZjJlNGZiM2JiNTZjYjY3NDk5N2Q5Y2Q0Y2E4OGUxZWFkNzMwIGxlZ2FjeS10cnVuaworNzMwOTAgNTBmMzEzMDhiNTBhZWQ2NTE0ZjY1MGRmMjRhZDQyMTcyOWFhOWQ2MyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMwOTQgNDIxMTgxMGRjNzljZTdhZDdlMTk0ZTcwYTg5MDczNWJlZjNkMWQ4NSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMwOTUgNTdhMmQyNzEzZjE5NTNhMGNhNTQyODkyN2UxYmM0N2NkMjY2YzY0YyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMwOTcgNTI4YzA5M2FiOTg2ZDIwN2Y4NGVmNjkwYTc1N2M0OGE1ZjQ3MDM0YyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMwOTggNzU3YTdjMGY2NzllM2JhZjM5NWUwNjk1YTk4NTZhMmUyNzlhNTA4YiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMxMDEgNjAwMTY5YWU1NjgxZDNhOTU4YTk5MDZlYjYxYWFhN2NjZGZhYmUyZCBsZWdhY3ktdHJ1bmsKKzczMTAyIGZiNzllZTQ1Nzc1NDI4MDlhMDc4MThlNDIwNThmYmFlN2JmMmZjMzcgcHkzaworNzMxMDMgN2M0NDQwNTM4YWJiMjQyZjk1YjA0NDM2NDM4ZDkwZWU4MzI3ZDI1YyBweTNrCis3MzEwNCA4NTY3ZGYzYTQzYjYxMjMwZjBlODBmOGMwZjBlMDk3NGY3OTVlNWMwIHJlbGVhc2UyNi1tYWludAorNzMxMDUgYzA1MWJhNjE3ZjA0NjE5OTBhY2FlMjJkMDE2YjYzN2QyMDdmZjRmNCByZWxlYXNlMzAtbWFpbnQKKzczMTA2IDY4NDZmOTVmOGUwNzdhOWFkNDU4NzVlM2FmZjk0NzgxMmZjYmE5YzAgcHkzaworNzMxMDcgMThiM2Q1YjM3ZDgzZmJlNjI2YTE1ZmEzMjMyNTU4MzJjMjliNTUwZCBweTNrCis3MzEwOCBjNjc4NTRmMWNmNzkzMTVlNzI0ODg0MDFiMTIyNGE1ZGQ4MTc2YTc4IHB5M2sKKzczMTA5IDQ0Mjc4NTlkODE3YTcyYzMzMmM0ZTA4MDg3ODg2NGFiN2Y1ZDZmNDkgbGVnYWN5LXRydW5rCis3MzExMCA4YzEzMDY3MWM4NDI1MzI3ZmJlYmNhZjM2MGUwMjkxOTg3YjNlYjExIHB5M2sKKzczMTExIDkzOGNjMTZlN2Y4ZGViZDllNzkzNDlmMWNhNjU1ZTY2OTUyZmUwYzkgcHkzaworNzMxMTIgMzUyMmMyYjBkNTFkNDdkZTNjZjZkNjVkOWE1MWY2MGQ3MDk0ZmJjYSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMxMTMgYmJmOGYyNWViMzc3YjIwMTUyMTJiMjAzMjhjNWEyZDljNTk3MzNjNSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMxMTQgYzM3YWU1NjJlZjgyMmRkNTU2MGFmZjE0MzMxZDI4YjA5NWNiZDAxMyBsZWdhY3ktdHJ1bmsKKzczMTE1IDFkZmNjNTNlODM2YTBlNjAyOTA0MmIxY2QxYzE0YTNlOGU5NjU0ODYgcHkzaworNzMxMTYgZDBlOTYwNzliNmFjYTlhOWI1YmE1OWI0OGNmMGZhNzJmZWVlMDQzNyBweTNrCis3MzExNyBhOGQ5Y2M5MzI2NzU2MTdhNTQwNWM1ZDBhYWFhOWEzNDU1NjE4NTIyIHB5M2sKKzczMTE4IDUyMjk1ZWJjY2EzMTI0NGQwMWQ0NWY2MGYyN2U2NDc3NjdiY2UwZDIgcmVsZWFzZTI2LW1haW50Cis3MzExOSBhNTYzYmNmMWE2MmQyZjY5YzQ4ZDI5YjM5NDdmNDVlNTU1YmM1MzE2IHJlbGVhc2UyNi1tYWludAorNzMxMjAgZTI1ZmMzNzc2NzA0NzAyMjNkNjYwN2RjYWFiMjMzNDliYmQ3ZDFjMCByZWxlYXNlMzAtbWFpbnQKKzczMTIxIGQ1MDcxZDlmNzQwOGJkYjg4ZDU3YmM1ZWM3MmQ3NmIyMTA0ZjM2MjggbGVnYWN5LXRydW5rCis3MzEyMiA1ZjhkZWM4NDZmNDZkZTliODE0N2I5OTEzZjA5ZjdhZDJmYjNhNmVlIHJlbGVhc2UyNi1tYWludAorNzMxMjMgNTQyOTUyN2UzYTI4OGZkMjFhNWQ2MWVjNGVhNGU2YWY1NTc2Njk3YiBweTNrCis3MzEyNCA0OTkzZTExMGZkNzc4NTg0OGI4YTM2YWI0NTFmZDE3OTdkMDZhMjE3IHJlbGVhc2UzMC1tYWludAorNzMxMjUgY2VkMzgwYjQwMDA0MzYyYTdhOWFjNTM4MGJmNDkwMGNkMDNhYTZjMyBweTNrCis3MzEyNiBiZjRjZmU1MWI0YjUyMTc0NTI1MWY2ZGVlNzFiNzdkNjdlMDRlMDJkIHB5M2sKKzczMTI3IDYyNTQyYmI4ODczYTFiMzdmN2E4YjBmNDhjMDQ1NzExZDkyNjE1NmIgcHkzaworNzMxMjggMmMwMGJkYWFkN2E5ZmZmZTFhN2Y5NTczYmVhZGVkZDNlMTZjM2JlNSBweTNrCis3MzEyOSA4Yzg1MDQ3MTViOGEzODc5ZDU0YjAzZDQ0YmY3OTYyYjc3NDA0MThlIGxlZ2FjeS10cnVuaworNzMxMzAgZGI4OGE2N2UzOGVlYTFhMzFmYjNlMDg5ZWQ4ZGVkMGU1YzBmMzgyYyByZWxlYXNlMjYtbWFpbnQKKzczMTMxIDI5OTA0NDBhMjBmNDJhMTA3ZDA0Y2IzMjE5MTk0NmM0MTc5ZGM4NWYgcHkzaworNzMxMzIgN2ZhODMyOTI3YjkxYzg2NDE0NDYxZDg5NGM0OWZhYmJiMjgzOTg1ZSByZWxlYXNlMzAtbWFpbnQKKzczMTMzIDdkNDc3NTU2ODBkNzg0MzNiNzI3MTg3OTE2YjY5NDBjMDVhNjliOWQgdGtfYW5kX2lkbGVfbWFpbnRlbmFuY2UKKzczMTM0IGUxM2E0ZjYyYjZjYWNjZGFkYWJhNjk5ZmRmYjYzYjVmOTg0YWI1M2UgdGtfYW5kX2lkbGVfbWFpbnRlbmFuY2UKKzczMTM1IDEyODE0N2RjYmMxZDUxMTM3OTUzYjY0NTgzYmY3MzE2YzgxNmI4NTcgbGVnYWN5LXRydW5rCis3MzEzNiAzZDEyZmI5Y2VkOTI2Y2FlNzVkYTY0YWNlYmUzZWM5NTM1OTE1NGMwIHB5M2sKKzczMTM3IGY4YjVhMTUzMmJlYzU2MDQ0YzllZTE1OGRiMDg2MzFiZDdmYmQzNWUgcHkzaworNzMxMzggZjBmODRhZjE1OTU3YmM4M2M2ZTNlNWI4MTI3NTMxOTZiMDQyMmFlMiBsZWdhY3ktdHJ1bmsKKzczMTM5IGJhODIyMjgzOTkzOGRiMDY5NDJmMDQxOWIwZmJkNjc0Y2ZmMTQwOWMgcmVsZWFzZTI2LW1haW50Cis3MzE0MCA3MjM0YTgzYThiMTlmZDhmMTU1MGVkMDVhMDdjMWQyMDg0MTA5MjY4IHB5M2sKKzczMTQxIDA0NDljYmU5YWM5ZDZiNTk1NTAxYzNhZTdjMWI1ZTkzMWYyM2Q3NDkgcmVsZWFzZTMwLW1haW50Cis3MzE0MiAxZTcyYTU0MGMxYWE2Nzg3MzY1ZDBhZGI2M2NhOWYwZDkxNmFkNTRhIHB5M2sKKzczMTQzIDYyMWE1OWJiMzQwNDViYWJiMmRmMjkzMzAwODMyN2FlNWFmYTcwYjIgcHkzaworNzMxNDQgODg1YjBhOTJiNTA2MjYyZmM3ZDk4Yjk2M2MwZDgwNzAzMjdiZDVhMCByZWxlYXNlMzAtbWFpbnQKKzczMTQ1IGU4MGUyNWU2YTE4N2I0YzVkNWM0NWFlNGYwMzNiNzJlY2EzNGE0NWQgbGVnYWN5LXRydW5rCis3MzE0NiA5MDQ4OWYyNjdiMzAwZGE0ZDk1ZGY0YjVhNzFlZTk0YmY5MjI4MmVjIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3MzE0NyA0MjgzYmM4YzkzMDY1MWNhMzEyODAxODMxNGJlZmVmNTZiMzYyOTk3IGxlZ2FjeS10cnVuaworNzMxNDggYjJmOTYyMzg1OTY5YTIwOGMyYzFjY2NmMGI1Zjg0ZWQ3OTJmZmY3YyByZWxlYXNlMjYtbWFpbnQKKzczMTQ5IDVlNGQwNzA1NjVlNzI4YzkzMjRlNjM4ZTI5Yzc2NWM2N2EwZWUxYjggcHkzaworNzMxNTAgZjYzMmUwMmMyNjQyZThhMTdmZmIxYjViOTk4NjAwMGE1ZTA0OTdmOCByZWxlYXNlMzAtbWFpbnQKKzczMTUxIGI3YjczNTI5OTRjODg0MDUwZWI1NzE3NjFhZDNjNmRmZWEyNmJiMmIgbGVnYWN5LXRydW5rCis3MzE1MiBjZmU1NzdhYTE1NmFjYzRlZDA0OTZhZjExMzJiZDA4OTc0YjExYWJiIHJlbGVhc2UyNi1tYWludAorNzMxNTcgMmY3ZDlhYmQ2NTViYWI5ZDIyYjRhZmZmMWEwMzlhZWFlNDYwNDE4YiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMxNTkgMzJhNDlkMTA4MDFlZDFlY2JkNTBhMzUzMTdjOTY1M2Q3ZDM0MDY0NSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMxNjAgY2YxOWNjMDZiMDkzMDhkZDA2ZjZiMzAxMGE0Mjk1ZmVlOTlhZTZhOCBweTNrCis3MzE2MSAzM2E4YmE5MjVjOTIwOWY4NWMwMDBhNjBmOTQxNTRhODE4NWZhNmIzIHB5M2sKKzczMTYyIDUxZmVjYmI3ZmM4NzI2NWZlMGMyYzdkNzI1NDAzNTkzOWFkNjNkZjQgcHkzaworNzMxNjMgNGEyNzcxZjZiOWRkNzg1MDQ2M2ZkZDEyZTViODIzZWUyNjQ1ZTRjNSBsZWdhY3ktdHJ1bmsKKzczMTY0IDJmYmM3MDM5MzgyZDFjNThmMjgwNjZjZjhiZTZjZjMzYjI3NDE2MmIgcHkzaworNzMxNjUgMmQ1MDBkN2IyMGJlNjg2YzYyYmRjOGFmMWVjMDliMDRlNzJiM2M4NyBweTNrCis3MzE2NiA5OGQ4YjhiNzQ5ZjQ3NDY1ZTBkYzMyYjFkYTFlZTFiOTMxNjM5MjQwIGxlZ2FjeS10cnVuaworNzMxNjcgMTZlNDVkOGI3OTU3ZTdlZTAwMzM0NTRmMzBlMmQxYzU4MjM4YTczNyByZWxlYXNlMjYtbWFpbnQKKzczMTY4IGZjYjI1ODBjMWFiM2U4YjMyOWFhOTRkNmE0YzgxOTYxY2VmZjk2Y2UgcHkzaworNzMxNjkgZTFhNDY2MDJiOWQ3MmFiMDY2NTI1OGQyMjM2M2M1YjY1NWIwMWIyNyByZWxlYXNlMzAtbWFpbnQKKzczMTcwIDFhMDI5YjdjOTc3MDUyNzdkNzg5ZjdjZTM4Yjc4NjRlZjQzOTIyYzEgbGVnYWN5LXRydW5rCis3MzE3MSA2NWY1NjFhM2UyOTFiODBlN2FkMzE4MTg0YzMyNzBlZDA1OTJmNDAzIHJlbGVhc2UyNi1tYWludAorNzMxNzIgYWU1ODVjZDVjYTU0YjNmYjQ3YTg1NmJiMTYyM2QzMTlkMmVlMTU2YiBweTNrCis3MzE3MyA2MjU0NGM5NDZlZGEyYWYxZDQzODRhNTBmNDI3MDMxZDQ2MjhiZmQ0IHJlbGVhc2UzMC1tYWludAorNzMxNzQgYjhiMzJmZGNjMjhkNDFlMzgzNGVlYjNhMmQ0MDJiNGQ3M2M2NzFiOCBsZWdhY3ktdHJ1bmsKKzczMTc1IDljMmUwN2E4ZDIzMDJkM2Y2OWVlMDM2NDY2Y2E0ODkwN2U0OGY3YjYgcmVsZWFzZTI2LW1haW50Cis3MzE3NiA3YzBlNzllNzFjY2RjNWIzZGI3YTAxY2U2Yzk0NmRiMzIwZDA5NzI4IHB5M2sKKzczMTc3IDAzMGEzZmU0YjYwNDUyMWUwZWEwMTAxZmZkOTY1MzFjOTEyM2NmNzEgcHkzaworNzMxNzggYjAxY2NhYzMwNDczNTA5ZTBjMDJhZTQwYTEwYmE2Yzc0YmM5MjM2NSBweTNrCis3MzE4MiBlODZiY2NlYmMwNzU4NmU4NGY4Yzk2ODBjMzEyM2IwOWM0MmQ1MTZjIGxlZ2FjeS10cnVuaworNzMxODMgYmZhYWYyZjRiMmU1YmQ1YjA3MTk5MWM4MTI0M2YxZWY3ZDcxYjQ2NyBweTNrCis3MzE4NCBiYzc0YjJmNjExNTk1ODkwYzFjNGQwMjgyZTZiZDdjMDhhYmYzMzQwIGxlZ2FjeS10cnVuaworNzMxODUgYTI5ODQyZTVlMTM4YzM3NTFiN2I1Y2FjYWZkOTEwOTYyODFiNTNkMyBweTNrCis3MzE4NiA1YTMyZjNkMDYxNThjM2U0ZTAyMzhhNzZlNTE2Y2FkYjNmNTg5M2E2IGxlZ2FjeS10cnVuaworNzMxODcgMTRhNGI2ZmIwMGZlYmE4MTg5OThhOWEyOWMzYjdjMzFmNjIzMDEyMSBweTNrCis3MzE4OCBhYmQxM2FjZmY1ZGJlMmJhOTRmYzAzZGI5YTg5YWI2YWU0Mzk1NDQ1IHJlbGVhc2UzMC1tYWludAorNzMxOTAgNDQzOWIyMmNmNmVhZmRlNzkzYzEzY2Y5ODhkMWI4NjA5ZjhlYjYyOCBsZWdhY3ktdHJ1bmsKKzczMTkxIDI4Nzg4NzE5OGUyZmE3MjRmZjQ2YzhhMmI2NjU2MmMzODlhNTJkYjkgcHkzaworNzMxOTQgMGM5NGM1Y2E1NWQ1N2Y1MzE3MjVmYWZkMzMwZTFhMWRkZjY0ODA0MiBweTNrCis3MzE5NSBmNDhhMDUyMTQyODFjMDgzMzE5YjAwYzc5ZWZjNTI0NzMzN2ViODljIHB5M2sKKzczMTk2IGQwNDM3OGY5ZmRiNDU2YjcxMDQyYjZkNjlmNWJjODE0NDQzZTRiNDYgbGVnYWN5LXRydW5rCis3MzE5NyA3ZGYyOTI5YTNkMDZmYzQ4NTJhNTUyNDc3MGFlMTM3MTExYmZjZWQxIGxlZ2FjeS10cnVuaworNzMxOTggYjc4MmZkMDVhODA2NDI1MmU1ZTYwOGFiMDcxNzhhODA1N2EyMjI0NSByZWxlYXNlMjYtbWFpbnQKKzczMTk5IDBkOGVkOWU1NThmMjhlMzJiODU4ZGM0NmU4MTFlYTJlMWQzMmIyYTEgcHkzaworNzMyMDAgYWZmOTdlNTBhMjA2MGE3N2I0ZWViMDg5NjYzODEzMGY1MzMxOWVlZiByZWxlYXNlMzAtbWFpbnQKKzczMjAxIDk3YTBhODU4OTAxNGQ3ZWQyYTYyMDFmYjAwYTk1N2QzODk4ZDI1YjcgbGVnYWN5LXRydW5rCis3MzIwMiAwMGQ1NzcyYzg2ODY2MjUyNDZjMmEzOWZhNDYzZjBmN2Q5YTc0ODM0IHB5M2sKKzczMjAzIDVlY2RiODI5NDM0Zjk4NjNiOWFkYjNjMzk4NmUwZTBiMTRhNGNlZGUgcHkzaworNzMyMDQgMThkODIzZThiNjAyY2VkZTY3ZTI4NjJmNDNiMWZkOWRkOGQzYjFhMSBweTNrCis3MzIwNiBkNWJmMDhjODYxYTY0MjVlOGYwZGFiYzAyNjE0MjQyMjlmN2ZlMzhmIGxlZ2FjeS10cnVuaworNzMyMDggM2Y2MjExNDBlZmM0YTJlMjNlOWFiNTBhNWYwYTBhZmJkOTI4MjI3ZiBweTNrCis3MzIxMCA4ZmE0Y2NhOWEyMmNlNDkzMDYzZGZiMTc0MTA3MTQ2OWJjN2JjZmMwIHB5M2sKKzczMjExIDAzMWI5NjNmMmJjMjc2ZDVmZTAwNTI0ZGY5ZDQ0OGViODdmMjQzOGIgcHkzaworNzMyMTIgODQzMTc4Y2YwODk5ZDdjOWZlNmU4NGNmOTg4YTA4NjAyODk3NGU3MyBsZWdhY3ktdHJ1bmsKKzczMjEzIDBlMDU0YzY1NzA2MjQwMmQzNzhhYjQ1ZGQwZDk1NTRlZjIyNzZiNDcgbGVnYWN5LXRydW5rCis3MzIxNCBlOWIwZGI1NTNkMDFmYTgwZjM5NDRmODM2MzA1YTU1Njk2NWYwY2ExIHB5M2sKKzczMjE1IDNjNDE1NzM0OTBjYjg1Yzc3YTJlOWQ4OWE2OTFhZDhiYjMyNWI1NzkgbGVnYWN5LXRydW5rCis3MzIxNiA1MGJlYTUzMzlmMTgyMmM5ZGY5ZThhMWYzZjc3ZWUzNzkwNDlkYTViIHB5M2sKKzczMjE3IDc0MjQ2MTI5YmQyMjMzYWNhYWRlOTIzZDkxZDY1NWZjNGEwMDNlZWUgbGVnYWN5LXRydW5rCis3MzIxOCBkZGI1MGMzYjg2ZjJlM2QxYmVjM2Q1NTJiMjRjMjI3ZDRhZjRlNTZlIHB5M2sKKzczMjIzIDBiMDc1MzE2NzNhY2QyYjQ1YWQ1ZDFhNzA5YTRhMzE1ZTYwNmMxOTAgcHkzaworNzMyMjQgYTA3ZWE4MmE1YmIwY2M4MTkzOGVkODU4NDIxOGYyYmY4NTA2OTRkYSBsZWdhY3ktdHJ1bmsKKzczMjI3IDM5Y2IwMWIwZmM2NDhmMzFmYWUxMTUzYmNjYWI2NDJkMDk0NTlhYWUgcmVsZWFzZTI2LW1haW50Cis3MzIyOCA2ODZjMTViODY3NDg5OGNjZTk5MjUwZjc3NWMyMGZmOWYxMmJkZWExIHB5M2sKKzczMjI5IGVlZjVkMWNlNmY0YjcwZDliY2YyMzQzOGZmY2Q5Yzk2OWY3MTk4M2IgcmVsZWFzZTMwLW1haW50Cis3MzIzMCBkNDUyNjk5NTZlZmZlMjJkYWNkNWVjZGYxZDQ2YTA1ZTUxMGRjNzY1IHB5M2sKKzczMjMyIGVkNmVkM2M4MzlmNWJjOTNhYWFkM2VjMDQ3ZDBmNGJkMTRkNzQ5YzMgbGVnYWN5LXRydW5rCis3MzIzMyAzYTc4NGIyMTcyMjA5ZjNjOTI0NDA2YjFhY2Q5NDFlN2MzMTRlMjNmIHB5M2sKKzczMjM2IDA4MDVlYTIxMTEyMjBlNDBiZTQxZDk2MjY4OGEyYzI2MDliZjZmODIgcHkzaworNzMyMzcgZDk5MjI4MjljMjA0MzQ4MjZjOWIwMjMyOTVhNWQxMDA0NWU1MTMxNyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMyMzggMDNiZWFkNzI5NDdlZjliNWFmZGM1NGYxODNhZmIxNmRlMWM0NmVlNiBsZWdhY3ktdHJ1bmsKKzczMjQwIDgxMGMyNWYxOWNkOTRiMmI5MDMwMzQ1M2RkY2ZjZTRmYzU4Y2I2YzkgbGVnYWN5LXRydW5rCis3MzI0MSBlYmViNGQ2N2RiYWU5NjY5NzA3ZGIzMjhmYzg3ZTAyMzExYjhkYzQxIHB5M2sKKzczMjQyIGMyY2VjNTZkMGI4YTExNWFjMjNkNDU2ODgyMTY4YmYyMTZhMzk2NTggcmVsZWFzZTI2LW1haW50Cis3MzI0MyBjZWVmMGE3OGJmODc5ZjMwMTc0NGViNWJmMjQ0N2UzYzM1OTRiZDQxIGxlZ2FjeS10cnVuaworNzMyNDUgMDk0ZmQzMzVhNDcxMDIwNDViMGQ3N2RjYTAyOTlmNjcyYTIwY2I3NiByZWxlYXNlMjYtbWFpbnQKKzczMjQ2IGVmNzQzMTJkNzIxNTVmNzE4MGQyOGViMDEzMzYwMTg4MzJkYzQ5ZWMgcHkzaworNzMyNDcgZTRhN2M0OGRlNjAzYmRkMGUwMGMxMDI4MzA3YmU0ZDNjMjBhNWM4ZCBsZWdhY3ktdHJ1bmsKKzczMjQ4IGFlOWI1ZDRmMTIyOWFkNmMyZTQyZjA3NjU0ZWY1OGIwYThkOTZhNzEgdGtfYW5kX2lkbGVfbWFpbnRlbmFuY2UKKzczMjUwIDYwMjU1OWZhNTI5N2Q1MTkxYzI0NjI3ZjAxMWNiMzY3ODAxY2FkZjEgbGVnYWN5LXRydW5rCis3MzI1MSBkYTMzYmVkNWQ4YzQ4NjI5ZDIwZTcwMGNjNzcyMjFkNWUyY2YzNGYyIHB5M2sKKzczMjUyIDExMmUxYmI1N2U3YjJkZmE1N2YwMTY1NzMyNjQxM2VlMTMwOWZmYmQgbGVnYWN5LXRydW5rCis3MzI1MyA5YzA5MTU0NGUxZGYyNzhlZWE3NGRlZThmMTQ5ODZkNjQ1NTJlMjE0IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3MzI1NCA1NzhiYWY3ZDMxMTQ3MzIwMWI5MjRjY2I2MDMyNjFkNzM3ODA5MmY2IHB5M2sKKzczMjU3IDgxYTViMWVjOTEwNWFhYjdiY2MzY2EwNjBiNmExMTA1YTgxMjFjMzEgbGVnYWN5LXRydW5rCis3MzI1OCAxMjg1M2RiM2VlYTM3Y2VkNTYyMDFiOGRmMGFiNmRlMjlhMTYxZTcyIGxlZ2FjeS10cnVuaworNzMyNTkgMWY4ZDk4NzIwYWNjYzk5OWQwMTlkN2EzZDcwMTYxYjQ5OWIwMmVmMiBweTNrCis3MzI2MCA4ODg4YTZmZTlkZDdmMjkwZDkzZjZlODc4YTkwZmI0ODJkNGUyODgwIGxlZ2FjeS10cnVuaworNzMyNjEgOTU0N2Y0YmJkNWE0NWY4NTk4MTBjOWU5MDEyNjNmYzliMzk1OGI5MiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMyNjIgMzJlMzQ0ODNlNmRiNzIzM2VlNGU0MTgzNzRjZTQ0NTg0ZGM0YmRjMiBweTNrCis3MzI2MyBjZTg5NTkyYTkzYTQzNmUyYTFhNWU4N2FlZGYxOTdmZjg4NGNlNzllIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3MzI2NCAzMTdhMTc1ODQwNTgwMzdjOGJmNTYzYTA3Y2RjNmYyM2NiOGYxZjc2IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3MzI2NSA3ODdmMjdlZDcyYzI4ZDNjN2I1MTU4ODRjMWYzYzRmNDU1MGQ5OGQ3IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3MzI2NiAxOWQ4YTNhNGUxNDk2MDJlNWQ5ZmY2MjE3ZTE0YTIzMGFkYWVhZDE3IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3MzI2NyA3ZWU1Nzk5YTdiNTE5NTYxMmUyZTYzZTQ3ZDUxNDA2ZjNmZWZiN2JkIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3MzI2OCAzZDgzNTdjY2Y1ODMxZWZkOWY2MzU5NGRhOWQ0MGY4ZjUzM2FhMmI1IHB5M2sKKzczMjY5IGZhZmI5OTFiZWE2YjFiMDc5N2U1ODNlMmFhYmQ1YjJiNjFkZmEwNjcgcHkzaworNzMyNzAgNzgzZDQwNDRkYzJkZjkyOWE1OGNkODQwNjFlMTY0MzE1MmM0OGNhYyBsZWdhY3ktdHJ1bmsKKzczMjcxIDBlYmU4ODlmMTA2ZmU5ZGZlMDcyMTU5NjQzNDRlNmU1Mjc1YTRiOTAgcHkzaworNzMyNzIgZGE2ODcxYjlkODg0YzRlODdhMjg3MDViNmJlNDdkZmFhNTVlNjA2OCBsZWdhY3ktdHJ1bmsKKzczMjczIDY2YTViYjNkOGE4ZDgyZDhmOTFkYzA0YTBjMWY2NzI2NGU5N2EzMTkgcHkzaworNzMyNzQgZDY3OWI2MDkwN2Y3Njk4YjBjMGE5YzEzYzM4OWI5ZGFhYzI1MGNhMSBweTNrCis3MzI3NSAzZTJiOGRlNGIxNmNjODJkYWE3MDljMjExZTQ0YjI3ZWViYTAzZGIzIGxlZ2FjeS10cnVuaworNzMyNzYgMDZmNWY0MjZiODQ5MTE4NmQ1ZTg0MmY4MWRmNjg3NTY1ZWEyOGRkZCB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMyNzcgODg5YjVmZDhkYTMwOWE1NWNkYWQyNjU2YWY0NzFiZmE2OGM1ZmQ4MSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzMyNzggODUxNjM2YjYyYWQ5NWFiN2NjZWRiZjQ1NjQxOGVjZjc0OWNhNGFiNCBsZWdhY3ktdHJ1bmsKKzczMjc5IGQ5NDVlNmRlNTIyN2I2YmJiMmJmN2FlNDcwMTAxMDdiOGJlNjRlYjYgbGVnYWN5LXRydW5rCis3MzI4MCBkNzlmZGUxMDQxYmRjMGFmNzRmOTA4YTc0ODY4MWZhOTEwNjkyZTgyIGxlZ2FjeS10cnVuaworNzMyODEgMDU0ZWE0N2Q2Y2M3MzgzNmQzN2VlOTc0NTdkNWFmMDcxYjg5MzU2OSBsZWdhY3ktdHJ1bmsKKzczMjgyIDBhYmY1NjJiMWU2Y2Y2ZTg4ZWZlZThkYTgxNzFjYmNhMzQxYzE2YTggbGVnYWN5LXRydW5rCis3MzI4MyBmN2M5ZTczNDIwODQwMDgyZDI3NmYzN2VmNjA0MGE4ZDAzMDVhOWIxIHB5M2sKKzczMjg0IDZiZmI1OTUyMTEzNjQ3ZDM2NTNkOGQzMmYyMDFhZmMwYzUwMTllODcgcHkzaworNzMyODUgZjAwMTlmZjZiM2U1YjMzNGJlZDBkMDE3OGI5NzliMjZjODUwZTgxMiBweTNrCis3MzI4NiAxZWYxNDIxYTYxMjI1NTMwYjQyN2VkNTE2N2ExYWFjNWE2M2Q3Yzc4IGxlZ2FjeS10cnVuaworNzMyODcgZWY2NWNjNDAyYzkyMzE2MmFiNTQyZjdhMzA4MTI0MjkyNWIwY2VlNiBweTNrCis3MzI4OCBjZjhmZmFiNDkwMDMzNWE3N2VhZDUyOWQ2YWY2NjFlZGU0NWYxNWU0IHB5M2sKKzczMjg5IDk4NTUyMTMxZjY0MWJjM2IzMTQ0ZWZjODc5YTQ3OTI4ZGE4NGNlNjcgcHkzaworNzMyOTAgNTVkZDllZDIzZWVhZWNmMjgwYWFiNWY5NWQwYWMzMmJmMDZmNmY4MCBweTNrCis3MzI5MSA4ZjkyODc5MjU0N2NhZjRlNjAzYmI4ZmE5MTgzNzI1NmY1ZjgyMDdmIHB5M2sKKzczMjkzIDI3ZTA4OWNhYjcyOWExZGZmNDkxNzRlMmE4OTdiOGUxN2UyOTAwMmYgcHkzaworNzMyOTQgYjUwNGQ2ZDM0ZmNkNzA4MGYxNjdkOTM4NGU0MjBhMmNlOTdkNTNlYSBsZWdhY3ktdHJ1bmsKKzczMjk1IDdhZDJmMjJmMTNlNmEwMGM0OGRiNzBmNWM3YzU5NTk3MjQ2MDA5MjYgcHkzaworNzMyOTYgNjk4NTU3Y2M1ZGM1MDdmOGIyMjU4MjczYmY1NjNmN2EzZmZjZjkyYSBsZWdhY3ktdHJ1bmsKKzczMjk3IGMwMTdkMTkxNjczMTQxNzM2YjVjNzA3YjRkY2JhZDYxN2U3ZDNjNmMgcHkzaworNzMyOTkgY2E1MTk5NjA5OWZkZDI0NzQ0OGY2M2I3NWEzYmM5NjRkZDgzMzM2MyBsZWdhY3ktdHJ1bmsKKzczMzAwIDI3OTVkNmZiMjFlMjYyZDljNzAyZjQzMjI0OWY5MmJhMDg1NmU2YWYgcHkzaworNzMzMDEgNTQxODlkNWE2Njc0Nzk3NDQ1ZDdjYzU5MTcyMGIxYzg5NmQyZTkyNiBweTNrCis3MzMwMiAyNTVkYjcwYmIzMTZhYzBlMmZlYWQzOTEzY2MxNDAwYWNmMWUxMTZlIHB5M2sKKzczMzAzIGNlYjI2MmQ0NGQ3NDY0MTQ2ZDYzYjg0YmU0NDRhYzJlMjY1OTM1MWEgbGVnYWN5LXRydW5rCis3MzMwNCA3MWNiNjAyOWU4OTI3OTUwZTc1ZDRmYWMwNzBhYTg4MGY1OTdmNjRhIHB5M2sKKzczMzA1IDFjN2ViNWI2MjI5ZGRmNTI5MTJkNzFjYzQ5MmE3NjVhMjZmNDJhYTEgbGVnYWN5LXRydW5rCis3MzMwNiAzNWM1YzFlMDdhNDRjZjMwNzVkMzYyMjY5ZmI5MDY1ODA1NzUyOWEwIHJlbGVhc2UyNi1tYWludAorNzMzMDcgZmQwYWQxMTVlMjM4MjlhYjk2YzhjMmU2ZjE5YTU2YzU5OTc2MzdiYSBweTNrCis3MzMwOCA4NmIzMmUxZmQ5OWYwYzdmODFlOTU1MzYyMzk5ZjkxNjMyNzQwMGQ1IGxlZ2FjeS10cnVuaworNzMzMTIgMWI4NjAyYzM4ZmQwYzdhYWE3ODY5NGI3OGJkMWJiOWFkOTUyM2Q4YSBsZWdhY3ktdHJ1bmsKKzczMzEzIGM0YTgxY2UzYzg5MzI3MDIwYzc2YjNhZDUxN2U4ZmZhZmVjYTlhZjUgbGVnYWN5LXRydW5rCis3MzMxNCBlYTMwYWFjYjMxODE2MzdlOGY5ZTAwOWNjYWQyNTQ0ZTBhNGY0OWQxIGxlZ2FjeS10cnVuaworNzMzMTUgODc1MzRiZmQxYmU4YjdiZGQyMGM5MGM4MjFmYWNhYTZiODkwN2VhZiByZWxlYXNlMjYtbWFpbnQKKzczMzE2IGQyZDU0ZGM4ZTQwMGZhYTYxNDBiYmQwZTE2NTYzZjVhN2E0ZDNiZjUgcHkzaworNzMzMTcgNTE3N2I2NzgwY2I3NDJmMDIzMWQ1MGFiYWY4Y2MxYmY5MDFlYTYwYiBsZWdhY3ktdHJ1bmsKKzczMzE4IGI5NmM5ZDhkNWY5ODVkYjZlMzhiYjY5ZWFjYjU2YWY2ZmZiOGI3N2MgbGVnYWN5LXRydW5rCis3MzMxOSA3NjBhODg2NmFlZmZhMjQxMGE3MzRmMjMwNTk2NmQyMWNkODdlZGUxIHB5M2sKKzczMzIwIGFiM2EyMTMzNmE4NGQ2Yjc4OGQ1NGQ1MWRlNGIwMWJiNzg2OTRiMWUgcHkzaworNzMzMjEgNDQ2MDMwZjMxMGE5NTE1YzdhMTZkODlmNjIyYzJkOGIzZjc2YTE1MyBsZWdhY3ktdHJ1bmsKKzczMzIyIDkxZDRjNTE0ZTc4YzAyOTkxZTVjZmViNmRlOGI1Mzk0MTZhZTI2NDYgcHkzaworNzMzMjMgZjU4Mjg3NDJiNDZmZWQyNDc4ZDFiYzRjODRiMDQxM2VhNzYzNjRjMCByZWxlYXNlMzAtbWFpbnQKKzczMzI0IGQ0OWQ0OGYzMzVjOTAwOWJhYmQwY2M2ZDc3OWMxZWU4ZTExNDhkMDMgbGVnYWN5LXRydW5rCis3MzMyNSA5MTQ1ZjU4Zjc0OTk5YTczMzBiMWIwNTljN2NiMzQxMDY2ODYxZGU2IGxlZ2FjeS10cnVuaworNzMzMjYgZmE2N2JmNjc0YWYzNjNlNDQ2NDU1ZjhkYTRkYjQyYTY1ZWM1YmNjMiBsZWdhY3ktdHJ1bmsKKzczMzI3IGVjODQ1YzRlM2Q3MzZiNmE5MGRjNjVjZGZkMjc3N2E5YzRmM2RkMWUgcHkzaworNzMzMjggYjhkMTYwYWQxYzkyNTYzNjU0ODBmNDM5NmE1MGM1ODFkNmVlMWViNyBsZWdhY3ktdHJ1bmsKKzczMzI5IDY2Mjk3YTA3NGQ4YmU5YzA0NTE3NzkyYjlkZWYxZGMwMTZmZmQ0OGUgcmVsZWFzZTMwLW1haW50Cis3MzMzMCAwNDgwNzAwNTUzYWIyM2ZjZWU4NWY2Mzc5ZjUwNWIwZjBjOWQ3MTJhIHB5M2sKKzczMzMxIDc0NGU5ODRmMTg0MWFhMDVmNTA5NGNmZjAyNjE3ODI2YWFlYTJmYjkgbGVnYWN5LXRydW5rCis3MzMzMiA0ZmQzYTRhZWVlNDczZTcxMDczODI3YjRiYjRlNGE4ZTM0YjAwNGM5IHB5M2sKKzczMzMzIDEzYTk4NzRkOGY0NzZhNDJkYjNmNTVmMDBiNzNmMjdiNmU3ZDlkYjggcHkzaworNzMzMzQgYjYwOTVkYzhmMzVjMDcwYzQ3ZTgyMjE4YjFkM2FmNzNkMzBjMjU2NSBsZWdhY3ktdHJ1bmsKKzczMzM1IDRhY2Q5MzZjZjZiNmY5NzI3MjYwYmE1YjQ1MmIxNzM3ZGY3MDU3YWEgbGVnYWN5LXRydW5rCis3MzMzNiBlZGYzZGRhYTM0NmJmZDEyYjA1NjZmOGJmYjg0N2UwNzkyMjgyYmU5IGxlZ2FjeS10cnVuaworNzMzMzcgMDNkMzhhMmFiYzQ2YTk4YmIyZWMzNDZiOTVmZGI5OTY1NzY4NWRlMSByZWxlYXNlMjYtbWFpbnQKKzczMzM4IDY1N2E4YWUwYmJjOTQ2Nzg4NGU0OTA2NWFiNDcxMjMyMzkyYzk4NDMgcHkzaworNzMzMzkgZjQxYjI4NWYyYjU5YWNmZThjNmVhNjEwM2NkNTAyNjcyNGJmYzE1OSByZWxlYXNlMzAtbWFpbnQKKzczMzQwIDI3MTlhODhjMjI5NGY0MDRkMWRjMmIyMDZmNGFhMjBiMWE3MTgyMGEgbGVnYWN5LXRydW5rCis3MzM0MSA2NTc5M2FjYzAwOTUwMDJmYTBmNjIyYWMxZDkyMmI1Y2NhZmQ2MWRkIGxlZ2FjeS10cnVuaworNzMzNDIgMGFkZjBmYTc5OTNiY2VhNDBiMWM0ZGY1ZjU2NjAwOTgyZmZkMDBhZiByZWxlYXNlMjYtbWFpbnQKKzczMzQzIDhiM2FlM2EzODI1MDc2MTQ4N2U5ZDZiOTFlOTE2YmFlODRlMDQwMGUgcHkzaworNzMzNDQgZjYzMTQ3NWEyNjQyYjNiMzhiNDc1ZGRjNWIzMTU1YmUxMzZmYzgzYiByZWxlYXNlMzAtbWFpbnQKKzczMzQ1IGI0NjM1ZGEzMTA5OTkyMjg4OTM3NDY0MGE2ZDUxYWYzZjFjOGI3YTEgbGVnYWN5LXRydW5rCis3MzM0NiA4MGVmM2I3YTRlMGRmNDVhMWRlMjBjNDg2NWFmNWYyNWQ2Y2JhYWFhIHJlbGVhc2UyNi1tYWludAorNzMzNDcgNDc1NWY4OThiOWZlMGQ0OWMxZDY1NjVjZDZmNTQwNmZiMTFhZjliNSBweTNrCis3MzM0OCAwZGU2NmZjZWYwZmE4OTcyZTk0M2YxZDcwZWQxNGUzOGYxZDI5MTlmIGxlZ2FjeS10cnVuaworNzMzNDkgZWM1OTE3Zjc3YWMwZTY4OGZmMjYzOTk2OWZmOGEyMjI0NTgwZjE2YyByZWxlYXNlMjYtbWFpbnQKKzczMzUwIGEyZjIzNzZlMWQyMDFhMjg4ZDY1MTk3NjRjOTI2ZDY1MDRiMDhhMmYgbGVnYWN5LXRydW5rCis3MzM1MSA2MDAzNmU1MGNkMTg2NzU1NDdkOTVhODMwMmU3NzJkODM1ZmE1NjMwIHB5M2sKKzczMzUyIDAwMzFiYTIxMzkwYTFiM2FlZjhjOTk5NDJiOGRiNGJmOTkwM2I1MzEgcmVsZWFzZTMwLW1haW50Cis3MzM1MyAxMTI4ODIzOTc5ZGRlOTQzMjViYzMyYTI1Y2I2MWI3NzhhM2JhODYwIGxlZ2FjeS10cnVuaworNzMzNTQgMGQ5YmQ5MWViODVjYjVjNGU0NGExOGYyOWMyZjJiNjVmMzhmN2JhZCBsZWdhY3ktdHJ1bmsKKzczMzU1IDIwOWE1MzllYmZmODA2YzI5YzYzMjc5ZTA2YmNhYzA4YWZmMDE3YzkgcmVsZWFzZTI2LW1haW50Cis3MzM1NiAzMjQ0ZmM0NzczZjU3NzI1ZWYzZGFlZjBkZGJkNzkwOTIwYjY0NzY1IHB5M2sKKzczMzU3IGJiNjNmZDk3OWZjZDBhODE0NDdhNjcwZWYxZWQ1MjA5MTllODAyYjAgcmVsZWFzZTI2LW1haW50Cis3MzM1OCA1YTM5ODVlNWRhZTNiNTczMDM2ZTllYTVlYTNlMzc1MmIyZDkxMTIzIHJlbGVhc2UzMC1tYWludAorNzMzNTkgMTQwMTgyYWNjZDFmNTgxN2VhMTk2ZGU5NDI3MDBlYjIwZDFlYjkyNyBweTNrCis3MzM2MCA0MTc5YTNlNjYxMjMxZjkzY2M1NTAyNzZlNTFkOWU5MDg1NDRhMGQ4IHB5M2sKKzczMzYxIDk2YTBjM2Y2ZWY4YmVhMjcyODk1NWM5ZTVmMGE3YjUzNjc4OGYwYmMgbGVnYWN5LXRydW5rCis3MzM2MiAwMjc0NDQ4MTBlM2YzOWNiMzU4ZTYxMTQ0ODE0YzUwOTVmNTQwMzEyIGxlZ2FjeS10cnVuaworNzMzNjMgYTFlMDY4MWFjYjM2ZjFiN2E3ODczYTQzNDA4ZTYyOWM4N2M3ZmM5NiBsZWdhY3ktdHJ1bmsKKzczMzY0IDQxZTZjZjY4NWVkMTZiMjlkZTc4OWE4NjFiZGVjYzg4NTgzNzFjOTUgcHkzaworNzMzNjYgMjAxNzBiZDBhZjI1NGRlZDk3YTFmZDczM2VhY2UxZTA1MmI1ZDhmMiByZWxlYXNlMzAtbWFpbnQKKzczMzY3IDcyODg5YTBiOGYzMjJhNzM4ZjE2ZGVmODg1NmM1ZmRjNjVjYjdkZjUgbGVnYWN5LXRydW5rCis3MzM2OCA5ZWU5ZTdhYThhYmMyNDQyNTg1ZDlkN2E5ZmEyOThiZDIwNzZlMTc2IHJlbGVhc2UyNi1tYWludAorNzMzNjkgZTIwNDFjNWM2MDA2M2Y5M2RlZDBjMTc3YjMwMTk0NjliYTczMTQ1YyBweTNrCis3MzM3MCA3NzAwNDA4ZjY1ZmM0MWZmZjYzNTYxNjE4MGQ3NTQyYjE3NGE4OTc5IGxlZ2FjeS10cnVuaworNzMzNzEgZDY2Y2FmZDZiYzIxYjA5OGQ4ZjcyMGRlZmY0NzE1YmQ2NTQzODU1ZiByZWxlYXNlMzAtbWFpbnQKKzczMzcyIDVlYTg1MDdkOWJlMTJhMGY2NTY3NGFmNmJiMGMxODgyMjA5NGQ2ZWQgbGVnYWN5LXRydW5rCis3MzM3MyA2MGEwYWYzMmE2NjNlMmFkMjY1ODc2NjBkYjQyOGEyNTc3OTUyNzE5IHJlbGVhc2UyNi1tYWludAorNzMzNzQgMTJiZjg3Y2QyNzQzMGUwYWRmNzM2OGZmYjk2NTY3Mjk1ZGI2NGVkNSBweTNrCis3MzM3NSA0ZjhhNDRiNTFkMGMxZWFkNGRjNTNmZTg1MGE4YjkyNTEwOWQ3OGVmIHB5M2sKKzczMzc2IDUzMDZiODRkNGZjZWVjNjlmYTc2ODE4MDNlNTMwMGRiZGU4OGY3NTAgbGVnYWN5LXRydW5rCis3MzM3NyA2MzcwZDcxZTNjYTMyNzE4NjJhNTkyNjMwODdmY2RjZWFiY2M3YmU1IHB5M2sKKzczMzc4IDU1ZDIyYjAyNDQ2NGRiMjVhNWNjNTBkNjRkMTE1ZmQyNjhjNzVjMTYgcHkzaworNzMzODAgMGUxYjNjMjRkM2UyN2E2NmYyZThkNzhlZTc1NDUxNWMzNWYxMzQ1YyBweTNrCis3MzM4MSA5ZjNhMjU3NDNmMDNmYjUwYTlmMTBiNGRmNmYyZTE3MmZlYWUyMzI2IHJlbGVhc2UzMC1tYWludAorNzMzODIgYmExMDI1NDBlYTM3Mzg4YWMwOTU1ZTlkOGE1MmQ4ZmVlMDhmZmE3ZiBsZWdhY3ktdHJ1bmsKKzczMzgzIDdjZjg5ZWQ5MGY5ZDA2NGFlNGExZDJjODk4NGQyMDk4MGQ0ZjgzYTkgcmVsZWFzZTI2LW1haW50Cis3MzM4NCBkYWU5YmU2Mzc5YjNlNTg0MTg3ZGE4NmRlZTI2NzkwM2JhNWM0ZTEzIHB5M2sKKzczMzg1IGZjYmNkOTMxMzM4Yjg5MzllOTI1ZDYxZjJkZWU1OWY4YmQwYTFkNDkgcHkzaworNzMzODcgYzk0OTRjODg3ODhmNWI4NTJiZDJlZjlmNzE4ZWNhYzZhYWMyODJmNSBweTNrCis3MzM4OSBmNTc2ODA3NDhlY2JkNjk1NWM3Njk1MTBkN2Q3NDhhZTdiODQzZDZiIHB5M2sKKzczMzkwIDY1MjU1MWFlNDc2NzAyZjM2YWYyNWQ2OWYzZGY2OGFmMTYyNjA0YTYgbGVnYWN5LXRydW5rCis3MzM5MSAwN2UyZWUyZmQzNmQzMmZiYzRmNWRiZWY0MGMzNzNjZDVlYzI5NDNjIHB5M2sKKzczMzkyIDY0OTJiNmVjZTU5ODdhYmU0YzFmNDA2NmZiYTc3NGQ2YTMwMmJmODEgcHkzaworNzMzOTMgZjM0NzU0YTc0NWFlMmEyYTg0NTc4OTMwNzU3MzZlMGUxNzk2YjRlNSBsZWdhY3ktdHJ1bmsKKzczMzk0IDc2MGE3MTBlYjZjMTU2NTRhOTlhNTI4MmNhOThhYjlhNzNiYzdiYTkgbGVnYWN5LXRydW5rCis3MzM5NSAwMTdiNGI2NDRmYWYyNDUzMTNhNGE1Nzc4Yzg1NGUxYTdmMmI4OWE2IGxlZ2FjeS10cnVuaworNzMzOTYgY2RmMjUyYzg3NDMzNmIwNWMxYWE0NTlmNDg3OTViMjQ2ZThkNDVlMyBsZWdhY3ktdHJ1bmsKKzczMzk3IDI0YzhkMWFhYmFkZTMxOTkzNWJkM2I3ZjA1ZDY0NWNiODkwZmU4MDEgbGVnYWN5LXRydW5rCis3MzM5OCA5MjFlNTY5ZDEyMTU3N2Y1YjAzNzQ2N2M5MjQ0NGY0ODVmZjk2Y2E0IGxlZ2FjeS10cnVuaworNzMzOTkgZDgzMzhhOWExZTNhODgxMDBkZTQzMzM2ZjhmYzZkNDU5M2EyNjFkMiByZWxlYXNlMjYtbWFpbnQKKzczNDAwIGViNjFjY2E1ZjU0ZGUzYWFhZGM0ODI2NWZmMmQ0OTk4OGM2NmI2MTUgbGVnYWN5LXRydW5rCis3MzQwMSBiZWU0NmZmMGU1NzgzNWFmMzQ4ZjEzMWY2MjY5ZjZiYjIzMDFkOWI1IGxlZ2FjeS10cnVuaworNzM0MDIgNDUzZmU0ODg0MmQwYjEwODQ1YWNiMzVmZTU5MDNlZDc1Yzk1OGUxNCBsZWdhY3ktdHJ1bmsKKzczNDAzIDc1YzRkM2JjNmNjODg0MDM3N2Y5OGQxMzBjNjFmMGQ0OGY4NTFhYWQgcmVsZWFzZTMwLW1haW50Cis3MzQwNCAwYzM1N2UzZmMzZDAxN2M2NmE5NDAxN2NkYTc1ZGUzNjg2Y2M0MzljIGxlZ2FjeS10cnVuaworNzM0MDUgNzg4ZTEzOTdjZTc3NzQ1OGZiMGRjOGYzYTBlOTZiNThiZTRhOGNmMCBsZWdhY3ktdHJ1bmsKKzczNDA2IGI0MzM5OGVhNTQ5ZGU0NDBlNjI4NTNjNThlMGI4ODNlNjNlZDkzYmQgcmVsZWFzZTI2LW1haW50Cis3MzQwNyA0N2UzMzY1ZTIxNzdlODhhMGE5OWRlMTJhMzJmNDQ1OTVhYmM1YzNjIHJlbGVhc2UzMC1tYWludAorNzM0MDggMDMyYzJlNWUwNjE0ZjM3MGU4MGY5NmE1MzA0NDY5YjQ2NWQxNDkyZSBweTNrCis3MzQwOSAwNGNjZWMwNDQxYjJhNjM5NGFiOTRkNmE2NDA1MjRkMDE0MWVjOTZiIGxlZ2FjeS10cnVuaworNzM0MTAgMDNhODQ4ZDFjYjY4Mjc2YTg4YTA2ZmI3NjczYmMxYWRkNGE1M2IwOSBweTNrCis3MzQxMSAyNWVkYzVmNzJhNzJlYTNjOTNkNjYzY2VmNzVmYjk4NTA0NGVmZTljIHB5M2sKKzczNDEyIDBiODdlNDM4ZTFiNTNlM2Y4MTJjYWQ5NjNhN2ZkYjY1ZDE5OGJhMmYgcHkzaworNzM0MTMgMTllNWRmY2UwZmJiMDI5NWJkOTA1ZGM1NzQ0YmNhYzUwZjZlZWQ4NCBweTNrCis3MzQxNSAyNmY4YWU2ZjAzN2Q2YjVlMjNjMjBlNDVlYjc2NmE5MWFkZDFmZTg2IGxlZ2FjeS10cnVuaworNzM0MTYgYTc2NGRiNjQwMjg0MmJjNzYxODRhMWZlY2EzMjc4MjY4YWYwNTJkOSBweTNrCis3MzQxNyA5MTI0MjMxMzU0ODM4MTYwNmVjYmQ3N2M2ZWI4ZDU0MTZmNTgwY2Y0IGxlZ2FjeS10cnVuaworNzM0MTggMjIxMjc0MGY0NTQ0NjliZTgxMTg3NWI5NTI3MTVlZGEyZjI4NDM4MSBsZWdhY3ktdHJ1bmsKKzczNDE5IGNiNjY0NzNjYmJmODhkOWYwMTg1NzFhYmFlYjE3YmE5ZTY0ODBlYTAgbGVnYWN5LXRydW5rCis3MzQyMCAzZWI4NTEwODA4YzlkMGU0MzMwYjQ0ZTQ3YWE5YjFiNTM0Zjc4ZWEwIGxlZ2FjeS10cnVuaworNzM0MjEgNDBjOGMzNTQ5MmYxNGEyODk3NjU0ZmVhZDc0MTRkM2NjMTczODkzNSBsZWdhY3ktdHJ1bmsKKzczNDIyIDI0N2Y4ZDI2OGQ1OGM0MWEyNDQ2MmIzZGQ3NzNhNjY0MjQ4Y2I1YzUgbGVnYWN5LXRydW5rCis3MzQyMyBmMTE4YWFiNjUwZGQzZTljMjRmYWZjYzMyMzIzMjAwZTdlMTViMDY1IGxlZ2FjeS10cnVuaworNzM0MjQgMGJlMzc3ZTYwODAxYjZhZmViMzI5ZjJmNDcwMDliZWYwYTYzZDBjYiBweTNrCis3MzQyNSAwMTUxMDI5ZGUxZDkxNzQwYzRlMTVmZTcxNzQ3ZGEyYzBmZmQzMDNmIGxlZ2FjeS10cnVuaworNzM0MjYgM2M4ZjRmN2U0YTYyZWIxZDBlMGEzYTkxODE2MTE4MWViY2MwOTA5OCByZWxlYXNlMjYtbWFpbnQKKzczNDI3IGU0MTE5YzkwYmYyOTUzOGQwMDJiYWY5ZGU5ZmRhZDU3M2Q4MWQ0N2IgcHkzaworNzM0MjggOTAzZWZiZjUxMWI0ZmVlMTc5NDlhYjI0ZmRmNGViOTgxZTk4ZmZkMiByZWxlYXNlMzAtbWFpbnQKKzczNDI5IDkwMDBhMDgxMTU5OTQxYmZlN2FmZWYyNWYyYTRlZGE1ZmUxMmFjMDEgcHkzaworNzM0MzAgNDY1OGZjYWFmYzczMjg4M2ZhOTczNzA4MjQxMDUyOGY3OWZjZWY1ZCBweTNrCis3MzQzMSBiNjM0ZDBlYzhkMzUxNTgzMDdlODBiNzEzZTc1ZWQwYmRkODlmMmJmIHB5M2sKKzczNDMyIDMxMTEwNzQ0M2NjMTM2YjBjM2I1MGU1N2ZiMTdlMTUyYzZkMjViZTMgbGVnYWN5LXRydW5rCis3MzQzMyBkOGFhNDg1NDg1YTZjZjhhYTBjNDczZDUxMDAwYjZmZTVjYzZhNzNiIGxlZ2FjeS10cnVuaworNzM0MzQgZTE4MzE4Zjk4NWVkMmUxY2VkNjZmMGE2MjBlNzlmN2QyMzAzNGQwZiBweTNrCis3MzQzNSAxYjNhMTkwMzdmNzY0MTM1ZDE0YjgyMWNhZTE3OGYwYTQ1NDNiZTcyIGxlZ2FjeS10cnVuaworNzM0MzYgNDM3M2YwZTRlYjIxMzJiOTFkZTk3OWE1ZDAxYzc5NjFkZDY5NTk0YiBsZWdhY3ktdHJ1bmsKKzczNDM3IGM3YWM3MGE5NDRiNTAxZDkxZjA3ZjdkNDg5MmRmMDIzZDBjZDMyMTcgcmVsZWFzZTI2LW1haW50Cis3MzQzOSA0YTUwZjBiZGM4MDYzYTdhNjk5NmE1MDYyYjk0MWM0ZjYxNDEyZWEwIGxlZ2FjeS10cnVuaworNzM0NDEgMjAzNDNhYTJhM2ViNzkzZDE0ZmQxNGI4ZjgwMGI5Y2YzYzgwY2ZiNyBsZWdhY3ktdHJ1bmsKKzczNDQyIGNiNWFlNDQwMWViZmRjNjkzMjkyMWM3OWE3NzdiYjllMzJhMzg4ODkgcmVsZWFzZTI2LW1haW50Cis3MzQ0MyA5ODE0ZDdmNjU5YTAwZWRmYTc3MWI5MjdiOWI5YjFjNjYyMTU0ZGEwIHB5M2sKKzczNDQ0IDI3N2ZkMDY0YjUzMDFhNjBhNmUwOGJjMjRiNTc1Mzc4NzA1Nzc0NGEgcmVsZWFzZTMwLW1haW50Cis3MzQ0NSAwNzZkYjRkZTAzN2FiMTAxZWQwZTdiZjFmZjdkMjhlZjFkYmNiM2MxIGxlZ2FjeS10cnVuaworNzM0NDYgYWQyYTU5NjAxMjZkYTIxZWQ2N2QxODVkNDZlOWQwZWEwYWViYWNlZCByZWxlYXNlMjYtbWFpbnQKKzczNDQ3IDQ1YzA1ZmRkOWIzMmE4ZjY1ZDg4ZjdlNTZhMDg2YWZhZTMyM2JmYTggbGVnYWN5LXRydW5rCis3MzQ0OCAzM2ZlZmRlNzkzYjBjYzRlZmFiMjI2NmJiZGI3MzZjZGM4NjhmMTk1IGxlZ2FjeS10cnVuaworNzM0NDkgZWVhNGQyMzdjMTZkNzUxMTEzOWNiMTJhZWVkNjVhNzVlYjFlMmEwNCBweTNrCis3MzQ1MCA4NjU1MDZmMzZlNTg4ZGRlNTMwMjU1MjBjNjhlYTU2Zjk1ZTM1ODk2IHB5M2sKKzczNDUxIDk4MmY3YmEwZTE0YTI3ZjZhMGZmY2JiYWVmMGNkYzA5ZjdlZGFhYzEgbGVnYWN5LXRydW5rCis3MzQ1MiAzOTAyZTRmNzRlZTI4MTdhMjFiNmQwM2U5OTc4NzBlNGI3M2ZlNTVlIHJlbGVhc2UyNi1tYWludAorNzM0NTMgZjAxOTVkYWFkZmZiYjI1OGY2OTRhZDg3YjNlNTU5ZDdiNmE1YWY5YyBweTNrCis3MzQ1NCAwOWU1Zjg4YzliZGJlZDQ2YWVjNGU5NGMwM2ZlNDRkY2FjZWVkMGZhIHB5M2sKKzczNDU1IGM1NjgyY2UyMzQ2NzU5YjhjYTAzYTNjMDE1ZGVhMmM0ZDI1MTIyNzIgcmVsZWFzZTMwLW1haW50Cis3MzQ1NiA2YjY3MDFiYTEyMTFlYTVmODgyZjc2Y2UxMWExMzAyZGEwOGFlMGUyIHB5M2sKKzczNDU3IDRjNmNkYmExYjBiYjNjYTAzNGM3NTc4MDMwYmUwYWI5ZDAxOTk5ZjEgbGVnYWN5LXRydW5rCis3MzQ1OCBjMzg3ZGE4MzdjNGEyM2ZmYmU3N2FhNWFjYzEyZGJkODdlNTc5YTZmIHB5M2sKKzczNDU5IGMxOTg2YmI0MzAwYjcyMmJmYWJhYWJmODBiNTM1ZDlmMWUwNDg5NmUgbGVnYWN5LXRydW5rCis3MzQ2MCA2ZjMwNTRhZmExYTBkOGFiMTBmOWI2MGU0YzFiNjk3NjEyZTYxMjg4IGxlZ2FjeS10cnVuaworNzM0NjEgYTVmMzFiMzBjN2MzY2NkMjljYmViNTAwMGNkODlkMmQyODA5NGJkYyBsZWdhY3ktdHJ1bmsKKzczNDYyIGIwY2IzY2JkZmM0N2FiOWI0YWE4MjA4NmI2M2MxYmY0ZTRlNjM3ZDcgbGVnYWN5LXRydW5rCis3MzQ2MyAyMmM3OTM0MWU1ODBjYTJjM2M1YjBjNDZlZDI3NmJkMWU5ODAwN2U2IGxlZ2FjeS10cnVuaworNzM0NjQgZDExZGJjZjg0M2RmOGMwNGNkZGU4NGMyZTk4YTQ1ZGMxNDhkZTdkYSBweTNrCis3MzQ2NSAzMzQ4OTExN2RhOWM1NjA5YzZkODUwNjgwNTY5OTk3MmM2Mjg2Nzk2IGxlZ2FjeS10cnVuaworNzM0NjYgZDRjNjZmZjEyOWMyYzgzMzA1ODcyNWIwYWJiNjI2MmI1NDM0ODM5ZSBweTNrCis3MzQ2NyBhZDZmNmMyNjE4N2Y5NDRhODkzYWUwMGViZjFkMDhiMTUxZTZjMTk1IHJlbGVhc2UyNi1tYWludAorNzM0NjggN2VkYzM3ODgzZThhMWQ2ZDNlMTVjOTZjNjkzNThhYzUxNjY5NTc1ZiByZWxlYXNlMzAtbWFpbnQKKzczNDY5IDMxNWQ3YWU0MmVhNzAyNTM1Mjc1NjJjMTlhZDIzM2VjYzUxMmY0YTEgcHkzaworNzM0NzAgYTc1ZTE4ZDgxNjZhYzJhZmZhMTFmM2Q1NmQxNDM0MGFhNGUyODI1MSBweTNrCis3MzQ3MSBhMjMwZjhkOWI0MTkyOGM1MmNmOGIyM2VmNmUwYmJhMjQ3ODY1NGVhIGxlZ2FjeS10cnVuaworNzM0NzIgMzcyMjNlZjRkNDcwZDQ3MTdkMDQ0MGY5NDcxZGY3YzVmM2RiNDYzNiBsZWdhY3ktdHJ1bmsKKzczNDczIDk4YTY2ZmEwMWUwYTRkMGE4NjA1MWI1MjBhNGU3NWM4YTY5ZDAxMjYgcHkzaworNzM0NzQgYjgxODkzZDM3ZTdhOWU5NTkwMGM4MjRjOWRlN2JiMGIzOTY2NWI5MCBweTNrCis3MzQ4MCBkY2M5NjJiNGQ4ZmY5MzBkZTBhMzU0ODlkMzRiY2RkYTRkZDYyNGQyIGxlZ2FjeS10cnVuaworNzM0ODEgZTI1YTRkMjdjMzhiNjA2NjA2ZjdjZmYxMjAxZDQ1MzM0NDJiZWEwYyByZWxlYXNlMjYtbWFpbnQKKzczNDgyIDVmYWZjYjMyZjA2MjI3Y2Q5ZjU3ODNhZTg2ZTY1OWIyYTc5ZDQ0YjcgcHkzaworNzM0ODUgZTdkMzhjNDA4MzYxOWIzY2RlM2UwYjZiN2MxZTAzOTUzMjA5ZmYyYyBsZWdhY3ktdHJ1bmsKKzczNDg2IDZkZDUwN2I5NTJjZjkwNDVlNWUwNGJmZWUzODc0NDc0MGU0ZmYyNTkgbGVnYWN5LXRydW5rCis3MzQ4NyAwNzI0OTg4OWE3NzNmMTg0NGUzNzBkYzEyODcwMDNmOGYwNzhkYTM1IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3MzQ4OCBlMWMyMzBmMDJmZWI5ZmRlY2U3OGMwZDkwMzgyZDA3ZGY3MTFiNTU2IGxlZ2FjeS10cnVuaworNzM0ODkgOTEzYzliZjk4ZDYwOTAxNmEwMWVjNjcwN2VkNzNkNDdlOGRiNjNjOCBsZWdhY3ktdHJ1bmsKKzczNDkwIDdkMjQ1YTQyM2U5NmM2N2M2Y2I0MGE5OTI0ODY5Mzg0NTkxOGE4YjEgbGVnYWN5LXRydW5rCis3MzQ5MSAwMWQxMDcwNWE3MWIxYTIxNGYzMmNmN2QwNGE1YjJhNDY4MWMxNGY1IHJlbGVhc2UyNi1tYWludAorNzM0OTIgM2U0NTQwYjdmZWM5ZjFhZTRmMGE1ODIyZTc1MWE2NjYxNjZmZTgxYiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzM0OTMgZjMyM2MyODBkZjU4NmE0OTJkYzUzNzUyNjdkNjM1MjZhNDdkYmExNSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzM0OTUgZDY2MjI3ODlhZDI3NTYyMGZhZGNlMDM2NWViOTgxZjVhNjE3ZWRiMiBsZWdhY3ktdHJ1bmsKKzczNDk2IDQwYWZiNjU1MzZkYTI2YjE3Y2M5ZTg2ZjA3ZjFmZmQwYjJiYTQ3YmQgbGVnYWN5LXRydW5rCis3MzQ5NyBhOTUwYTQ0MzRmOGJiZmE3NTgwNTVkMDBiZTQ4NDc2ZTE1MDQyYWQ2IHB5M2sKKzczNDk4IGQzYjQ0Y2U1NDNhZTQ0NTE1ZWI0ZjFkOTVlZTg5ZjBlZTM1NjUxMjcgcHkzaworNzM0OTkgMTFjMTZiZTRkMjFjMjEzY2UyMmNiNTYyOTU5ZTNjZmQ5NWJiZDI1NyBsZWdhY3ktdHJ1bmsKKzczNTAwIGU0OGJhOWNlODgzNjI0NWViNjViZDdmNjkxZjJlODJlM2E3MzBhMzggcHkzaworNzM1MDEgODcwMDA4OWVjY2Q0ZDNlMmM4MTE3NGM1NzUzNjEwYTYxNTAzMzJlMyBsZWdhY3ktdHJ1bmsKKzczNTAyIDkxNzQ5N2UyNTA5Y2Q2NmZiYjZkYTE4Y2JiNDM4NzRiMTBjNjZhNmMgbGVnYWN5LXRydW5rCis3MzUwMyBjNGZiMDcxMjE0N2ZkMmU1YWQ5NzgxOWM0YjJmN2RhZDFhOTg4NTE0IHB5M2sKKzczNTA1IGFjYzU4YjU5M2JiYzFiYmJlYmMyOTgwZGY5NzQ2ODQyZjkzMmRmNWQgcHkzaworNzM1MDYgYmM2MWQyMzFhNjUyNmJjOTY3YzVmZjNiN2UzOWQ1MmMxMzAwM2VlZiBweTNrCis3MzUwOSBlMzNiNjU2MjcxODhiZmMwYjMyNzM0MTE5NTJlZWRjMTE1NzM1N2NmIGxlZ2FjeS10cnVuaworNzM1MTAgNWNiNGU1MWE0NDA4NTEyN2NhYWJiMTk0YzFhNDQ0YjVjMTc0ZTQ4NiBweTNrCis3MzUxMSA4YWQ3ZmM4MDlmNjg0ZjliN2YxYzU0NTRmYmUzNWVhNmE4ZDlkNjVjIGxlZ2FjeS10cnVuaworNzM1MTMgMzg2OTIyYjYyOWMzOTA1NGUwOTJkZTJmMTU3YTJmMGUxY2M0OGM4ZSBsZWdhY3ktdHJ1bmsKKzczNTE0IDUxNGZjOTM2NmYyZGJiZjI0MmU4OWYxYjVkYTc2ODFiMDc4NWViOWQgbGVnYWN5LXRydW5rCis3MzUxNSAxNzMyYTU0YTAyNzI1ODgyYjJlZWYwZDI2YjJhN2RiOWI1OGQ5OTg1IHB5M2sKKzczNTE4IGRjMzgxN2E4ZjU1MmViNjhmNGFkNjBiMjZhM2E5Nzk3NGE0Y2YwNzUgbGVnYWN5LXRydW5rCis3MzUxOSA4MGQwZjIwMmI5ZWYyYTYzZjFiNDRjMTE0NzZkYWJhMjM5OWNiNGYwIGxlZ2FjeS10cnVuaworNzM1MjAgNDU1MDZiZTQ0NTE0NjYyMTlmMWM4MjE2MjU0OTI5MGI2ZmQ1MjRjNyBweTNrCis3MzUyNCBkZmQ5YjllNzFiMmViMmI2ZDg0MWFjODIzMTg2Y2MwOTlhM2MzMzQzIHJlbGVhc2UyNi1tYWludAorNzM1MjYgZGJmZTBhYmNkODkzYTI2M2ExMjdmM2UyOTYyNTgwNDNmZjg4ZWY4MiByZWxlYXNlMzAtbWFpbnQKKzczNTI5IGM5NDU5NGU2ZWRiNzMyODM5ZjFlNTJiZTg3OTJiNjcwMjc3NmI1ZmIgbGVnYWN5LXRydW5rCis3MzUzMCBlNzM3MTM1M2EzMDIwZWQxN2M0NWQzMzFlZDM5YjFiYmExM2M2MDMyIHJlbGVhc2UyNi1tYWludAorNzM1MzEgYjRkMGMwMjBlMzU3NzBmZTk0MTA3NjYzMDE3ZTA1YjhkY2ZhYmZiNCBweTNrCis3MzUzMiBmNjVhZGFkMzk4OGQ0YWE3MzA3Y2I0MjQ5NzBmODliMTBhNTU5NzI5IGxlZ2FjeS10cnVuaworNzM1MzMgYTZhMWE2MWY3MmJmODNlOWU0NDk2OGVhMDBlYjFjZWUwNjBlYjJmNCBweTNrCis3MzUzNCAwN2Y3MTFkODdmZmRiYWJjMWViZjc4MDkyZDRmNzZlMDI1MTM4MGUxIGxlZ2FjeS10cnVuaworNzM1MzUgZDE2Mjk0Njk3NjU4ZWNjYThhMTRjYTdiODdmYmViZGM3ZDhiYmYwZCBweTNrCis3MzUzNiBhZDYwNzM3OGE0ZWZkZDMyODU5OWM1OWY0YjgxYjJmMmE4ZWMyMGY4IGxlZ2FjeS10cnVuaworNzM1MzcgOTVlNTc5MWZjM2M5MmQ3ZGI3NTRkNGZmMzEzNTdjOTI4OTU3NDI4ZSBsZWdhY3ktdHJ1bmsKKzczNTM4IDdhMTMxNWE5OTJmMGI2ZWMwYTJhZDQ1Y2E3NjA3OThhN2ZmZGM5ZjcgcHkzaworNzM1MzkgY2IzZDMyMzQzOGQ5MjI1ZTM3MzgwMDBjY2E0ZjdmNjI0NWE5MjY4YiBweTNrCis3MzU0MCBiZGM5NzU5NGU1MDk4YThmNmQ5MWI5ZjU0MzQxNDVlZjE4ZjJlZDkzIGxlZ2FjeS10cnVuaworNzM1NDEgYjkyYjg5MmM0MzYwMzc1MjRkOTM5YWY4MWRjYTZmYTBkZjdiM2EyNSBweTNrCis3MzU0MiA2YTMxYzRlMGRmYzEyYTlhYWE4ODM5ZDViNTc1NzE2Y2M4NDhjN2ZjIHB5M2sKKzczNTQ0IDJhZWVkNGVjYWQ1Yjg3ZDg1NGU1MTQxZTcwZjkxZTQ1Njc3Njk4MDIgbGVnYWN5LXRydW5rCis3MzU0NSBmNmNiMjkzMjAyMmNhZjRkY2Q2OWQ1ZDIwZGEyMDllODI4NDFlMWU5IHB5M2sKKzczNTQ2IGEyMGEzNzdjYzMyN2E4MmRlNzkzMDBmOGMwNDM3OWQzYmE5MTBjNWUgbGVnYWN5LXRydW5rCis3MzU0NyA4YTk3NmNkNTdjYTY1MTE0MmMyYjUzN2ZiOWNiNWM3Y2NjOTAyNGIxIHB5M2sKKzczNTQ4IGYzMThhZGZlMjI2NGFlNmFhMmY2YWFmNmVmNDA3MzM5NzhhYTFiYTAgcHkzaworNzM1NDkgZjRkODRjNGYyODliZGE5ZGM1ZWY0MmQzYzZiZTViMWExOTU0ZDA3MiByZWxlYXNlMzAtbWFpbnQKKzczNTUxIDc5YTYzMGRhOGYwMGUwNjU5OWY2YTFiMWI4YzM3Y2NiYTA2NjIyYTYgcHkzaworNzM1NTIgNTViMzAzZDVkZDU1MTVlMThjOTJmNmZkMzdmYWQwOGJmYTBhYTdjYyBweTNrCis3MzU1NCAzZmUyZDFkMzdjZjFmMDYzNDIzZTgzNmQyYmRlMjBmZjFhNDliOTg5IGxlZ2FjeS10cnVuaworNzM1NTUgNDQ4Njk5MTU2ZGZlYTM1Yzk2N2VjODM5YWVlNDA0YTk2ZWQxOTUyMSBweTNrCis3MzU1NiBhMWE2ZTZkYmRkNmE3MmYwNjZhNzIwZThmZjI4Mjk5ZGNmYWE2NzJjIHB5M2sKKzczNTU3IDI3MzU4OTNjMzg3NDc0NDM0NzZkMzk5M2M5NDI1MDllZjJhN2RmNmEgbGVnYWN5LXRydW5rCis3MzU1OCBhOTM3ZjA0MDk1OTI4MWViYWFiMzQzNzU4ZjVjZThiNDVhNmIyYmY4IHB5M2sKKzczNTU5IDUyYzg2ODczNjgzZWFlOWNlOTliNGVhYWI3NmVjOGQxYTdkZWNjZDggcmVsZWFzZTI2LW1haW50Cis3MzU2MCBlNjkwYjczNmFmNDc4MTM3NmM5OWU1ZTFiYzVhZmI3NDUxYWVlYzkzIHB5M2sKKzczNTYxIGE1Nzk5MmE2M2NhYTA3ZTg4MWNjMmM3ZmFmNzFkMWI5OGI2NjViYTggcmVsZWFzZTI2LW1haW50Cis3MzU2MiBjZjljZWI2ZjVhM2E3YWY2NWJkNDdhNDI4ZDRhYmU1N2ExNmM1YjMwIHB5M2sKKzczNTYzIDg4ODJmOGZlODIzYzY0YjM1NzQ0OGMyMjlhMmJmMDRiOTJkOTI5ZjkgbGVnYWN5LXRydW5rCis3MzU2NCBhNjY2MTM0ZTZjMGMyMzRiMDk2ZjI5YzRjY2ZjMGZmNzk0Y2NiNTEyIGxlZ2FjeS10cnVuaworNzM1NjUgMGZmMGEzOTZmZGE4MzdiMzFhMjA1NGFhODMwNDJiYjAxZWJlMDRmYiBsZWdhY3ktdHJ1bmsKKzczNTY2IDAxNzBjOTYxZjI5MDU0YWY1M2I4N2U4OTI2MTlmMjQyN2E3ZDNlMDAgcHkzaworNzM1NjcgMjUzZGM3YmU1ZDFhYmI0YzE3OTVjZWM4NDVhMTZjMjgyNzgxODQzYyByZWxlYXNlMzAtbWFpbnQKKzczNTY4IGQwNDg3NzM5MWU4MDdjZmY2NjhmZTllNmY0OGI0YzkxMTA4YzIzZWMgcmVsZWFzZTI2LW1haW50Cis3MzU3MSAxNTBlM2ZlYmRmMTc4NWU0OGRkZTQxMGZkNjdlMDNhMWRiZWVkM2ZhIHB5M2sKKzczNTcyIDEyZTk2MGNjMzdkNjFlZDZkMDc3MTRiNWZiYTBjZDhmYWU1MzM1ZjMgcHkzaworNzM1NzMgYTY5YTAzMWFjMTQwMmRlZGU4YjFlZjgwMDk2NDM2YmNhNmQzNzFmMyBweTNrCis3MzU3NCA3YzllMWM5ZWM1ZGZmODIwYTNlMjYxY2Y5MmM0Yjk1ZTU2ODdkZDI0IHB5M2sKKzczNTc1IDRhY2NjOGEzZjlhZmU4NmZjZDQ2NmMyNjlkMGYyZWMxMDUxNjU1NjQgbGVnYWN5LXRydW5rCis3MzU3NiA4MzFiZWVlMjJhOWZjYWNhMTllMzg5YWQxMDU5NzM2ZWMzOWQyMjE2IGxlZ2FjeS10cnVuaworNzM1NzcgOWQwMGZkMDA4N2ZmOTE2NWRkOWZmOWZkZDZmOWQxNjlhNmI3YjExNiBsZWdhY3ktdHJ1bmsKKzczNTc4IGMzZDVkM2M4ZTQ5YmE4YjJkOTkzNDdlMWVmYjNkODdkYjE1MjYwNDMgcmVsZWFzZTI2LW1haW50Cis3MzU3OSAyNWQ4NWU0NDg2YWNmMTAzMzFkNDM2NWRmYzQ4NDJjOTNjZjUxODM0IHJlbGVhc2UzMS1tYWludAorNzM1ODAgYTI0ZjA5NjA2YjgzMjY5OGUyNmFmYjMzZDY0Mzk3NTUxZmQxNzY5MyBweTNrCis3MzU4MSA3N2ZiN2QzYzZkZGU3YTRmNTdjNzA0YmRmZjJiMTBhNTUxOTM2YWI5IHB5M2sKKzczNTgyIDk2MDMzNDQzNTg1NThjYzY1ZjczODZiODY4NGIwZjNhZjk5NWM4YWUgcHkzaworNzM1ODMgNWY0OWVhOGY1OTA4Y2ZkY2U0OGIxYjM0MWNmNGY4MTI2ZGQyZjU3NiByZWxlYXNlMzEtbWFpbnQKKzczNTg0IGI2NzYxNTk0NTY4MTU0NzZlNzliYTkyNzNiMjRkZWM5MDc5NWEyZjYgcmVsZWFzZTMxLW1haW50Cis3MzU4NSA0ZDQ3NmY2ZjFiZTNiMjE1ZGIxZDFkMjA4NzQzOGZkOGExMjY4MTE3IHB5M2sKKzczNTg2IDZkYzg4NGIyZGVhN2FhYzIzODYwODQyNWNjYzU3OTcwNTVmM2ExOTkgcmVsZWFzZTMxLW1haW50Cis3MzU4NyA0NmNmMmU1YTU3ZDRmN2IwOTBiNmU4N2FiZDRiY2E3ZTZjMTQ4OTgwIHJlbGVhc2UzMS1tYWludAorNzM1ODggZGM3NDU2Mzk3OGRmNDk1NGMzYTZlNjk1ZTMwYmU3MjI1MTgwNzkyMCByZWxlYXNlMzEtbWFpbnQKKzczNTg5IDE2NTFlMmYzNmFmMTJhZWFlZGYyMjhlMzNmM2Q5ZGEzYjI2YjI3NzEgcmVsZWFzZTMxLW1haW50Cis3MzU5MCAwNzBlMWUxNWM1MTYxZWI4ODNiNmYzMWRkOGJmNGZhMTE4ODUxZDhlIHB5M2sKKzczNTkxIDJkYTA1ZjgwZDM2NWFlOWY1NWY3NTMxN2VmZjNjZTU4ZDQ5NTIxMmYgcmVsZWFzZTMxLW1haW50Cis3MzU5MiAxZDNiZGRmYTg1MDkwY2M1NjBjNGY5ODdhMjM4NjVhMzg2ZjFiNTRlIHB5M2sKKzczNTkzIDU4ZjJiMjdjOTFhMTRjYjk3NWM5MDA3MjEzYTdjM2Q1ZDJlNzNlYWYgcHkzaworNzM1OTQgZTI1MjJlNGQyZGM4YmYyZjgyNDUyYTg1ZTgyZjMyODJiZTJjYTY2NyBweTNrCis3MzU5NSA1YjNkMGJmYzhkMjg5MWJjNDEwZGQyYTE2OWYyNGRhY2Q5MzI2ZTkxIGxlZ2FjeS10cnVuaworNzM1OTYgMWY2MDU4M2I2Mjg3Y2YxY2FjZTIwZGE0OThlZTFhNTc5NzRhYmIwOSBsZWdhY3ktdHJ1bmsKKzczNTk3IDNhYWYyZTA2NWRiMDU0MDE4MDM3MDVlZDRiZmEzZmQyZjkwMzBkZjggcHkzaworNzM1OTggZjRlZWEwZDIxNjVkYWRjZjFlOGExMTRlMzJhMmE3NzI3MWMyNTMzOCBsZWdhY3ktdHJ1bmsKKzczNTk5IDFmNGY0ZDllYzc5MzA3YWRhMWFlZDNmMTRlMGNjY2ZhODBkYjdiODYgcmVsZWFzZTI2LW1haW50Cis3MzYwMCBjNTM1NzgzNmMwNzlkNzZmZWY4YjgyMDdiNTE1MGQ0MzQyZDFiMjU4IHB5M2sKKzczNjAxIGFjNzhlZWViNDZjMjk1ZjBiNjViOWNiODc2M2U4Y2Q0ZjYwYjU0NGMgcmVsZWFzZTMwLW1haW50Cis3MzYwMiAxMGEyMjljOGJlYWRiOTc2ZWYxYzFiNzE4N2U5MGNmMDIwZTlkNzEzIHJlbGVhc2UzMS1tYWludAorNzM2MDMgNTU4ZWQ3MmQ0ZDMzYmJjMzg2MDE2NTlhYjYzMGJhNTNiNGJlYWUyNiBsZWdhY3ktdHJ1bmsKKzczNjA0IGM0MWZlMTMzZDg4NzMzMDUyZWFlNjliNzE5YjlmNjExM2JlY2Y4YjYgcHkzaworNzM2MDUgMDhkMDU4NTYyMTRhMzU4MWNiN2FlNmUxMzI2NTVlMWRmZDE5YWU2YSBsZWdhY3ktdHJ1bmsKKzczNjA2IDExN2U4NWNiZjE2OWI0YjgwNGIxYzA0YjVkODAwNDlkMDlkMThkODkgbGVnYWN5LXRydW5rCis3MzYwNyA1NGVkMjc5MWJiMTViOGM3MmUwNTMxOTllMTVlMDAxZDA4Y2MwZDc4IHB5M2sKKzczNjA4IGVlMjUzZWI2ZjA4YzA0OTIwZmIyMjVjNmZiOTJkNjdiN2IyM2I3MzEgcmVsZWFzZTMxLW1haW50Cis3MzYwOSA2ZThkNjMzNDRkM2UzMGQ5N2M4MTBhNmFkMzNjZTkyYjBkZTE5NmIyIHB5M2sKKzczNjEwIDRhMjI1ZGU4OTIzMzYyN2M4NTFlMjMyMjMzYjA3MjM3NzdhNmU0MGYgcmVsZWFzZTMxLW1haW50Cis3MzYxMSA1NDRjNWJhZDE2MDc3ZmFkZGUwOWZiZTVjMDUzYTcwZGI2NTI2OWUxIHB5M2sKKzczNjEyIDI2MDJiNTZhZDAyZGM2ODIwNzI5MTU3ODk0ODI1NDk5ZTA5MjhkYzkgcHkzaworNzM2MTMgYjU1YTc4YjM5YmQ1ZWQ2ZmJjOWUyMzQ2YzZhZTBmZjY2Yjc0MTAwMCBweTNrCis3MzYxNCBkZTg2NmY0N2QzOGE4NTdkNzg0MmRiYTBlYWFiNmUxY2NiZjg5NmZhIGxlZ2FjeS10cnVuaworNzM2MTUgMzY4NDc4ODU5ZmUzYWFmOWMyNjMzM2RmMzM5OGUzOGVhYmNmZmI1MyBsZWdhY3ktdHJ1bmsKKzczNjE2IGFhOTUwZjc5NjJmZGM2YTUzNmZlMzJkNzE4MTJiNGIzODIyZDE4ZGUgcHkzaworNzM2MTcgMGMzMTllMDNkOWExMGE5ZWVjYWQyYTNjNjhkYzFlMDNlNjBhYzE1NSBweTNrCis3MzYxOCBjOWU2NWU0OTM2NWRjMzhiZDY3ODkwNDRlNTE1NjUwYTJmNTY5N2JlIHB5M2sKKzczNjE5IGNiNjAwZTAzNDM3ZDY0MGUxZTE4ODUzZDRmZjJkNzY2MDJjYmY1OTkgcmVsZWFzZTMxLW1haW50Cis3MzYyMCA2NTQ0MDc3NDZiZTBhOGYzN2E3OGZiMDkxNzYxOGFkYTk2MWY5NDE3IHB5M2sKKzczNjIxIDkxMDliNDIyYzEzOGZjNGJlYzIyMjBmZDMzZTJmYjJmYTZhMmJiY2EgcHkzaworNzM2MjIgMjIyODkxNmFiNDc4OGY5YWU5ZWJiZDI5NzUwNjM1MmQxZjI5NmQ3YyBweTNrCis3MzYyMyAxZTU1ODlhMTdjZjA3ZWQ5NWU5NDNkYjk0N2QzNGYzMzU1ZTZkNzM4IHB5M2sKKzczNjI0IDdjMjg3ZDMwMDIzYzM1NTkwMGEyMmM3ODAwYTNhOTY5NGJkZGExMTIgcHkzaworNzM2MjUgZjk0YzA5YWE0NDQ0M2JhZmRlYTE5OTYwM2VhYzIwOTQ2NzE5MzA5YiByZWxlYXNlMzEtbWFpbnQKKzczNjI2IDA3MDRmMTViNDY4MjcxYjYwOWNhNGE0YTAwMWMyNDM3NTc1MDI5MTQgcHkzaworNzM2MjcgNDExODg0ZDAxZjhiMGY5NmFkNGQ4MTExODlhNGZiYTNhZWY0MmFkZiBsZWdhY3ktdHJ1bmsKKzczNjI4IDRkYjRhZjBjZjgyYzViOGEwNmNmYjU2MmNmZjBkMDk4NmE3MzllMjQgcHkzaworNzM2MjkgNWM3MDJhNGQ3NWU0NDVkNTJmNmQ3Y2YzMDhmNmNjZjA2MjhkYjM5MSBweTNrCis3MzYzMiA2NzZlNzRjMjBjNmVhM2Q2NTg2YjQ3YjRlMWRmNGQ2Y2ExYmQzNzkzIHB5M2sKKzczNjMzIDBjYzIxYzk3NTFmMTQ3NWQ1NGUwOGU3ZTkxNjAzNDhjNjA1Yjg0MTIgcmVsZWFzZTMxLW1haW50Cis3MzYzNCBkYjkxYTA0NTMwNTBjMjhkMTU0ZDQ2ZGQ1NmUyNjVkMWJkZTI2YzgzIHJlbGVhc2UzMC1tYWludAorNzM2MzUgYjMyZDEzNmYzZTIwMDRlNzllNGQ2ZGFiYmEyMWZmZWRkMDVlYzBmMyBweTNrCis3MzYzNiAxYTk4NDcyMzQwZmEwZDg4YWUzMTE4YzBiMWNjYWI3YjJjZWE5NGE4IHB5M2sKKzczNjM3IGUzMDI1YTRjMGFkNzg1MzNmYTUyNTk4Y2JjZGRmYjYzNGVhNzEwOGUgcmVsZWFzZTMxLW1haW50Cis3MzYzOCBmZmQ3Y2Y1YzcyODVmODlkM2EwZjJmZmRkYjBhNmFmY2ZiYjcwMzcwIGxlZ2FjeS10cnVuaworNzM2MzkgNTJjNDhkZWRlNWY3N2Y1YjYwNTg4OGZkODhjMzQ1OTQ2YjI0YzZmOCBweTNrCis3MzY0MCBhYjkxZmE1ZDBjNWNjMjIyNTU5ZTU1MmI2NzM4ZWEzMjRiMWM4ZTZlIHB5M2sKKzczNjQxIGQ5NGIzZWQ1ZDUzNjVjNDc0MzE4OTZmODM3OTQ2NDYxZTRjOWMzMzcgcmVsZWFzZTMxLW1haW50Cis3MzY0MiBhNTExZmU1MTY2ZmQ3NzhkYWI2NjcwMDIwOTQ3OWM0ZWI5ZTM5ZDdiIHB5M2sKKzczNjQzIGQ3NDk2Y2MxMGRmZWVlYTA3MTlkMDYxOWU0MDk1NWM4YmYyMTc4NmMgcmVsZWFzZTMxLW1haW50Cis3MzY0NCAwZjdkYzU3MDRjNTkwNjU5NGVhNmVkYjg5MTVkY2I1MTdhYmQ4MGUzIHJlbGVhc2UzMC1tYWludAorNzM2NDUgZjQ3Y2UxMWUwNzJiNjE1NTc4NWZhMjc4ODEyNzBiMDlmZjc4ZTMyYSBweTNrCis3MzY0NiA2NmNjNTA4OTA4OTRjMTNlYjE5NjllNzY1MDhmNDE1ZjQxNTRiNTQwIHB5M2sKKzczNjQ3IDU2M2NjNGRjYzcwMzI5MGI3MGE5MmFkMGU0ZjQ4NDBkMmM0YjE3ZmQgcHkzaworNzM2NDggNTI4NDBiZTQyNTMwZjc2MzA3ZGM0MjhjZDliNWIzOTJmNjc5ZmM4MCBweTNrCis3MzY0OSBhMzdiYjU5ZDRiNTNhOTI4NmVjN2Y0NjNhZTNjMmYwZmJkN2QxZmFiIHB5M2sKKzczNjUwIDA5YzQ0YzkzMzk0MmI0NDg4YTYwOTM0MGJkYTdkMTNjMjgyYjVlYmYgcHkzaworNzM2NTEgNDM2OTgyMjQxNGMzYWJiYzA3MzA0NGRkYWM0NDc5YWI3NjdiYjI4ZiBweTNrCis3MzY1MiAwMDgwMDI4ZjVjYTAwMTIzZWYxMjQwMjE5MDc1ZDMyYjIxYzI1NGRiIHJlbGVhc2UzMC1tYWludAorNzM2NTMgYTkyNTJiODg0N2YwN2Q3NjYzMWQxNTQ2MTdhMDBhYjIyYTIyMjY4NCBsZWdhY3ktdHJ1bmsKKzczNjU0IGRjZjcxMjFlZGIyZTg1ZDAwZGUwMTYyODk0ZDJjYWJlNWZhYjNlODQgcmVsZWFzZTI2LW1haW50Cis3MzY1NSBmZGMyMTBhOGEzMjhlMjVjZWExNDEzZjhkNTEwMTQyNWMzMmU4NTcyIHB5M2sKKzczNjU2IDNmNDY2OGI0OWYxMWUzOWJkY2E5YjM3ZWY1YTY4M2ZmMmFkNTFkYjYgcHkzaworNzM2NTcgNTIwZjEzMTBhZTYxMzkwMjQ4ZDNlY2ZkYjYwMWQ2ODdmMmZhNzc1ZSBweTNrCis3MzY1OCA1MjdiYWRlMzA0M2IyM2E3N2I3ZDYxMDUzZDExZmVkODM1MmUyOTA1IHB5M2sKKzczNjU5IGQ1MTAxN2RjYmEyNDdmODk1MWZhYmEzNjkwODBkNDVkNDhiZDI3N2UgcmVsZWFzZTMxLW1haW50Cis3MzY2MCBmM2RhZmZkNGNiMjhjNjI4ZTJmOWY1ODVmYzdlMTc0MWFiMzRiNmQxIGxlZ2FjeS10cnVuaworNzM2NjEgOTgyOWI0MjM5OWU1NmQ5YjJhZDQwNGMzYTdlZDU0ZjI4OWJmMzdlZSBweTNrCis3MzY2MiA1MDg4MDY0ZDYxNzA2NTg2ZjY4YWM1MWNmYzA5OTJkNmNjNDVhZDMzIHJlbGVhc2UzMS1tYWludAorNzM2NjMgNzA0ODk0ODY0NmIwODdlZjAzYmE0NTFlYWRhZTI5YTg5ODZlMzlmMSBweTNrCis3MzY2NCBjNDVlMzMxMjM4YWU3OTZhZWIwYWY4ZjM3MGRjNmJkYjAzMjc1YzUwIHB5M2sKKzczNjY1IDE2NGQ2NGIzOWFjMDZjMDE4N2JmOTZiN2MzMWM5MDg2NDI1MGE5ODUgbGVnYWN5LXRydW5rCis3MzY2NiA3ZWNjMDc1ZDE3MWY3YTIxYzVkNDIwNjM1YjIwMTY0OWFhNmMyMTY5IHB5M2sKKzczNjY3IDM4MGFmOWU4MGMyZThlZmQ4YmY2Yjk5YjhjNmJkYWZlZmZhOWFiM2YgcmVsZWFzZTMxLW1haW50Cis3MzY2OSBhNjY0YTQ0NDNhMzk0ODQ1MGFkYjRlZDRmNjA1NjEzYjE5NjJhMzc2IGxlZ2FjeS10cnVuaworNzM2NzAgNjVhZGJhOTVkN2UwZTczZjJjN2VlN2YzOTY1ZGU2OGFiY2M0OTU2ZCByZWxlYXNlMjYtbWFpbnQKKzczNjcxIDBkMDU1YTA2MmNjZTFlMDIxODM3Mzc1ZmY1ZDU2OGQxOGE0MjYzYzQgcHkzaworNzM2NzIgMjk3ZmRlYWY1ODIyMjUwMDkzMDI5MzA2NDA4MWU3Y2Y1M2RhYjgzNSByZWxlYXNlMzEtbWFpbnQKKzczNjczIGRiNmQyY2UzODMwYWY2ZDZhNDVjYjY0MDQzMTlmODAyMzk2NmY0NTIgcHkzaworNzM2NzQgOTQ2M2ExMDI1MTVmM2QzOTkyYzNkZmZkOTA0OTJmNjRhNTU3MzE1YiByZWxlYXNlMzEtbWFpbnQKKzczNjc1IDRlMzU1NjQ1M2ZiY2NiNjhkZjA5ODk4MDdiOWE5MzE5NmU3OTQ3MmQgbGVnYWN5LXRydW5rCis3MzY3NiBhNzlmNzRkNmY1YjM5NTA4NmNhMzIzOWM2ZTg1MTUyMzAzZWU4ZWE3IHB5M2sKKzczNjc3IDZlN2ExNmE2NDQyZjZjODQzYjZlYTk5ZjA0NDhlMWMxNzkzZTZkZjggbGVnYWN5LXRydW5rCis3MzY3OCA4ZjIzYmQxMDkyZmMyNGYwMzZiOTE4MmMyZjU5YjY3YTVhODc5Njg5IHB5M2sKKzczNjc5IDFiOGEwMWRjN2Y0NWE0YzhkMjQwNTJlMTVlMDg0YTliMmU5NTcxNzYgbGVnYWN5LXRydW5rCis3MzY4MCA2Mjk2NzQ0NDhkODRmYmJmMmQ5YzI0MjAxNTAxYTg0YzVhMmY5YTk5IHB5M2sKKzczNjgxIDIxMGE1MWVmZGM4MjY3MGQ5MGRlNGM2ODVjYTZmZTg1NjVmNjU1MzMgbGVnYWN5LXRydW5rCis3MzY4MiBhMjc1ODNjODM2YjIyOGYzMzJkNDM0YTQ2ZTcxZTkzMWNlNGUxODNjIHJlbGVhc2UyNi1tYWludAorNzM2ODMgZTBkMjdiNzZhMmU4ZDE0NGUzMTgzYWM0OTA0NzVkNTQzMzAwOWY2NSBsZWdhY3ktdHJ1bmsKKzczNjg0IDc5YzJlZDYxYTAyNTNkMzk5NGQxODk2MmE2MDc5NDhkNzEyODZjN2IgcHkzaworNzM2ODUgNTEzOWU4YjBmMjFjNzMyMzgxZDg4OTlhZWRlNmNiMTkwYmJmZmZiMCByZWxlYXNlMzEtbWFpbnQKKzczNjg2IDcwZWRhMDJjN2E5OGUzMWJkODM0YzQ3ZWQ4YzQ1N2VhY2I0NjMwOGUgbGVnYWN5LXRydW5rCis3MzY4NyBlNzhiOTliMDQ4YmFhODdjNzhjY2YyZmQ2Mjg2MzY0OTA1NDFiZTRlIHB5M2sKKzczNjg4IDNkY2M4ZmM0MzU0ZWZiZTkyNTY5MjZiZjY4NGI3OGE4YWY3MjY4ZGQgbGVnYWN5LXRydW5rCis3MzY4OSAzOTE1ZGVkMmQ2MGYxZmE2Zjc5ZjE1ODA3NGE4NmRlMWZlNjc0MzdiIHB5M2sKKzczNjkwIDY4MTAyZTdlMWViN2QzMzY3YmQ4ZDlkMTcyNTYxNzdlYzY2NjRlNDMgcmVsZWFzZTI2LW1haW50Cis3MzY5MSA0ODdkNmYwMTg0MmE5M2ZkYzMxYmRhZTcwY2JhOWNkMTUwOWE0ZmI0IHJlbGVhc2UzMC1tYWludAorNzM2OTIgNTE0Y2FlNjJjY2RhNWYwNzM2ZTQ1NDk1MWE5MGZlODdjNDYzMGZjZSByZWxlYXNlMzEtbWFpbnQKKzczNjkzIDU5MTc4NWNlZGNjOGE1ZTdjZDJmZTMxZWE1OTFiMjc1MzEyNzk1NmYgbGVnYWN5LXRydW5rCis3MzY5NCAzZDU0Y2JmZDM4MDk5ZWQ0OGZjYzZkNTBiNGZjOWEzOGM5ZDcyMTY4IGxlZ2FjeS10cnVuaworNzM2OTUgN2UzOTIwMjhhMDllZGEwMmZjYTg2OTllNTQzZGM5YmFhZDRlNjQ2NyBweTNrCis3MzY5NiA5MzIwMzNjMzA0ZWY3MjA1NDk3NzkyMDg3ZWEzNjljMzFhZGJlM2EyIHJlbGVhc2UzMS1tYWludAorNzM2OTcgZDJiMWY1ZWYyYWUzZDJkZWEwM2JhNjg2Mjk1ZDQzM2M4OTNmNmYxNCBsZWdhY3ktdHJ1bmsKKzczNjk4IDAxZTEyNWQzMTlkNDgxODAzZDA2Yzc3MDMxOTQ0ODZkZWZkMTQ2MTcgcHkzaworNzM2OTkgMjlmYWM4ODQ4NDg5ZmQ2NmJiZDc3ZDAyOTQxYjNlNGYzODBjZDZhMyByZWxlYXNlMzEtbWFpbnQKKzczNzAwIGQzZDZjY2M5YWJiNDEzNzg0ZWU0YTQzZTdkZGFkODVlZTQwOGNhMzMgcHkzaworNzM3MDEgYzA2NWYzM2Q5YzljZjliNmFhMDcwMTQ0ZjExMTJmYzk1YjZlYjY4NiBsZWdhY3ktdHJ1bmsKKzczNzAyIDViNjYzOTA3NWM0NzljZThmYzBjNWM0YTViZmNlMmExZmU5MmIyMTAgcHkzaworNzM3MDMgMzJmNzExMjBlYTU1MDQ0ZjgzMjFlZmYwYjM3ODUyZjcxYTI1ODI2NyByZWxlYXNlMzEtbWFpbnQKKzczNzA0IDBhZTEyMDJlNTM2MjBlNTk0Yzg0N2Y2OTUzNDcyOGM1ZWFiOWJiN2YgbGVnYWN5LXRydW5rCis3MzcwNSA0M2ZlY2MzOTQzN2IzMmNlMzFjMmNiNGM1MGU0NmU5MjcwOTdlNTgzIGxlZ2FjeS10cnVuaworNzM3MDYgMDhiNzYyOTM0NDg4YTI1ODVjZjFhODhhOTY2YjE5M2MxNWU4YmQ5ZSBsZWdhY3ktdHJ1bmsKKzczNzA3IDg0OGM4NmY0YmVkNjA2MGJlZWUxYWJkMjRiMGI3MmFlZWY0MGRlZjQgbGVnYWN5LXRydW5rCis3MzcwOCA3MGFkZjBmNjhmYmNhMWNlNzc4ZjNkYzAxMDFkOWRlM2RkNjNjOGQ3IGxlZ2FjeS10cnVuaworNzM3MTAgMmZhZjJmYTJhNDIzNTU3M2E1YTI2OWFmMmVlZDk1ZTkwNTM0NDY4OSBsZWdhY3ktdHJ1bmsKKzczNzExIDk5ZDUyZDhhZDAyNjZlZjZhNDBjYTEzMDUzMTI1ZWNhMjcyY2Y4MmYgcHkzaworNzM3MTIgNGY5MGRkYzZjM2I2NGFjODE4ODA3YjNiOGJkNjUzODBkMzQ3ZDM3MSBsZWdhY3ktdHJ1bmsKKzczNzEzIDM4MzY5OTg0NWM5OWIxYjkzNzE3MDYzMjE2ZmM5MjdmNGNkMWM5ZjUgbGVnYWN5LXRydW5rCis3MzcxNCA2NzY4YjIzNTBjNTc2YTY2ZDIyZDM3YmEyOGE5ZGYyMjZmZTczYTk0IGxlZ2FjeS10cnVuaworNzM3MTUgYWRmNjZiNTIwMjJkYWQ1ODVhNTRiZDZmNDFmNWMwNjFjMDg2MWRjMiBweTNrCis3MzcxNiAzZTAwMWVlYjgzODFiOTM2MWEzNDU2MGUyMGNmNjQ1NGQzMzUxNGMxIHB5M2sKKzczNzE3IGU4OGNkNDJmZjI4MmRiYzZjZWIyZTJhOGUxNTNhYzUyZTIyNmVhOGEgbGVnYWN5LXRydW5rCis3MzcxOCBjNDBkNmZlZDZiNmJhNTVlMmNmZmM5YTU5MmI1OWY5Mjg4ZWQzMTZjIHB5M2sKKzczNzE5IGRkNDcwYjcxMjkwMTQ3MzU2ZTYwYTJhOTMzNzNmODkyYjA2NTQxOTMgcHkzaworNzM3MjAgNmQ1MDc1ZWNjMTRjMGEzMzk2NWY2Nzc1Mzk0NjFiZDFhZTUzZTU1ZCBsZWdhY3ktdHJ1bmsKKzczNzIxIDFjNzY5MmQyNTA5ZmEwMTBkNWUxNGQwN2QzZjBiZDczZWU2MmY4ZmYgcHkzaworNzM3MjMgZjJiNjViZDY3ZGYyNWRhOTdhMmEzNGM0MGYyMGQ2OTVhNzcxN2E3NyBweTNrCis3MzcyNCBlZDJhMzM2MjA0ZDZhYzNhYTE3ZmU5MDZlOGJmYjg1MDJmYTg4ZGFmIHB5M2sKKzczNzI1IDU1MDJmMjU1YzI3Y2VhNTQxMzM2MTBhOWE4ZjY5MjMyNjAwZTI2M2QgbGVnYWN5LXRydW5rCis3MzcyNiA3NjU0ZmE4NTdiMDNjMmFiNjdiOWQ0OTk2YzQ0ODAyMDI0OGQ0YmY5IHJlbGVhc2UzMS1tYWludAorNzM3MjcgOTIzMGMzYTgwZGNhZDM4ZTViMmNjNjVlN2YwN2FmNjdkODUzMDQ2NSBweTNrCis3MzcyOCA3MmFkMTE5N2YwZmY5N2E4M2ZjNDc1ZTYzNzdmNmVmMDE2MjZiM2JmIHJlbGVhc2UzMS1tYWludAorNzM3MjkgNGI2Mjc5NjFiNDQ3MzYzOWY5NGZmYTJiMzZjYjBhZThkZmZlN2YyOSBweTNrCis3MzczMCBhMDdmZDQ3ZGY3NmIzMjY1ZWFlY2M5OGNiOTRmYjAzYjBlZjc0ODBmIHB5M2sKKzczNzMxIGUzZmEyZGRiYjNhMzE1MDkwMTBjZjM1NjliY2E1MzVmOGYyYTg3NzQgcHkzaworNzM3MzIgN2U0MjgzMzYyZDI3N2ZhYWMzZTA2ZWQ1ZWEwOTk5ZTI3ZGYwYzUwNyBweTNrCis3MzczMyBlODA4NTk0NjFkZThjZDBjNGFiOTRlZmZkZjZjY2YzYzE4MjIzZDM5IHB5M2sKKzczNzM0IGIxNjhkY2NlZTYwMjY0NGFhMjc2NjcwODhmNzA5ZWIwZjc0YmQ1ZGQgcHkzaworNzM3MzUgYzI0MjcwZjU0NWI4ZmE2ZmI2ZWE3MGU2MTg0ZTYwYTM2MmIzNDE4ZCBweTNrCis3MzczNiA0M2YyMjVjN2I3N2VjNDczNTg1MGZhOTE3YmRhZGMyMzE1YzY4MTIzIHB5M2sKKzczNzM3IDljZDc5ZGVlNWJjZTRiZWZlOTEzYWM5ZjgwOGM1Y2IxOGMwN2M3ZmUgcHkzaworNzM3MzggZTBlZDYyN2VhNjc5NDg1NDYzMzUyYTBmMDY5OGFjNjk1MDMxMTcxOSBsZWdhY3ktdHJ1bmsKKzczNzM5IGYwZWVhZGRhZjgzYTRhOGZhMGFkNTViOGE0N2JiOGU0MzE4OTE5MTQgcHkzaworNzM3NDAgMTUxYjdkNTM2YjVjNDViYjIzNDVmZDc5ZmZlNzhkMmFkODc3NTM0MSBweTNrCis3Mzc0MiAzNjZjOGE0ZTVhNDZhMGExYzcxYjJkZTk0ZjIwOTI0Mzk1MzVlMWRiIHB5M2sKKzczNzQ0IDc0ZmM0NzZmZTcyODMzZDBmMTU0OGY5YzZhZGVmN2U5NWRiODJiZmYgbGVnYWN5LXRydW5rCis3Mzc0NiBmMmE1MjZjYzNmMmFmMjY3NTA3NDExMThmZTU4N2VlOTc5NGE3NzNhIHB5M2sKKzczNzQ3IDY1MTgxMTRmYjA2MzgxZjk1NzJiMGNjOGU3MjYwYTI0ZWMwZGUwOGUgcHkzaworNzM3NDggMGM2ZmQ1NTYxNDlkYjJmNjc2Nzg2ZDQ2MzA5ODEwYTc2NTQzMDdlMCByZWxlYXNlMzEtbWFpbnQKKzczNzQ5IGNjNDNlOTIzZWY5NjE3ZGVjNWExMGM3Y2JkMGUzMWU3ZmJjYjY2MTggcHkzaworNzM3NTAgNjIxMGRlZGQyY2Y3OTU0OTNhYzJlMjI4OTk2NWFmNmI4ZGQ3MzBlOSBsZWdhY3ktdHJ1bmsKKzczNzU2IDliZGRiYTZlNzY0ZTZkNDU1YzE1NTdiYzdjM2UzMzRiNTZjOTM0ZTYgbGVnYWN5LXRydW5rCis3Mzc1NyA0NjYzMTYzZTY0NDk0MmUyYjk0NjlmZWE1MDgzYjIxNmExMzY0OTFmIGxlZ2FjeS10cnVuaworNzM3NTggNWM4OWI5MjczZTYxMTJmZTdmY2ZiNzZjNDgxNmZlMjM1MTQyNDQ3ZSByZWxlYXNlMjYtbWFpbnQKKzczNzU5IGNhNTNmODZmZTY3ZGIyYzhlMjFkMTA5ODBlYWEzN2MzMjYzNzljYmQgcHkzaworNzM3NjAgNmNjMTg1ZjQyYmY2NmFiNTdjZjQxYmMzODc2ZmY2Nzk0NDdhYzM4ZSByZWxlYXNlMzAtbWFpbnQKKzczNzYxIDNiZGU4MWU3YzlmNDAzY2U4NjFhMGFjMWI1NDUxMDEyMTk1NzkyZTEgcmVsZWFzZTMxLW1haW50Cis3Mzc2MiA1ZDc0OWJkZGE5NzljYWQzYTcwNzEzNzkwN2EwOWZhNGZlMTlmNmJjIGxlZ2FjeS10cnVuaworNzM3NjMgMmE4ZGFmYzg0NTI4Yzc4ZTcwZTIyNTM5YWE3ZTNmNTVlOGUwYzIwNyByZWxlYXNlMjYtbWFpbnQKKzczNzY0IDdkNTE0OTE1NTE1ZTVjNmQwM2VlMjJjMDAwNzc2NTRjMWM2MmQyMjQgcHkzaworNzM3NjUgZGE2OTgwNzk5NjM5OTA4ZjRhZGUxMjBkYTg1OTk3NzRlOWFkNDdkZSByZWxlYXNlMzAtbWFpbnQKKzczNzY2IDFkNDhjNzAxZjA3YzYxNDZmZmNlNzE4NzNiOWNlNmNiZDZjOTM1MDYgcmVsZWFzZTMxLW1haW50Cis3Mzc2NyBlZGNmZTNiOGY3MzYxNjcxOTQ1Mzc2NzNjMjI3ZmE0NDc5NmM5M2I5IGxlZ2FjeS10cnVuaworNzM3NjggZjE0OWY1N2Y3N2Q2ZmU4MDA3ODIzMTkwMGYzMWIyNTA3NjcxNDRhOCBweTNrCis3Mzc2OSBlNWM4MjkwYzc5NDliZDYwMGJmZjYyNjExODY2YmM0OGE0Zjg3ZTI0IHJlbGVhc2UzMS1tYWludAorNzM3NzAgNzRjMGE3ODExNGFlNGUyMzBkYTJlOGI0ZjJhM2UxNzA4YWFjZDEzOCByZWxlYXNlMjYtbWFpbnQKKzczNzczIDU2YzY2NGI5MTU0NWI4MTgxM2ZiYjVjODUwNWE5Y2Q0Zjk4ZjI3MzMgbGVnYWN5LXRydW5rCis3Mzc3NCBmZWE1NzE2NGJkNzkxY2VkNDUyZTVmMzI3NGIwNWQ3MTEwYjZkMDhiIGxlZ2FjeS10cnVuaworNzM3NzUgN2RjMGQyYzRiNTIwMjMwNmIyZWIxY2FiYWNkOTI4ZGVhOGU0NTEwZCByZWxlYXNlMjYtbWFpbnQKKzczNzc2IDA2NTNjMWEwY2IxZTEyNjRkNWUzOGY5NWMxZjA3MzI4MDEzNjhkODMgbGVnYWN5LXRydW5rCis3Mzc3NyAxNzgzODgzZTc2ZDc3OTkzMmFmZjdmMDQ5MWNkMzZlMWQ0NzI2MDk3IHB5M2sKKzczNzc4IGVhNDRhMTY1YjljZTU0NmQyMWE5ZGNlYzk2M2VlNjZiMmM3OTdjZWYgbGVnYWN5LXRydW5rCis3Mzc3OSBmNjVkNjI0NzM0NjViMTU0YzU3MDEzNmI0NjhhYTNmYzEyZmI2ZjBlIHJlbGVhc2UyNi1tYWludAorNzM3ODAgNDY2YTcxZmM2MjVjMWU2ZDMxODJlNDEyMzdiODIwM2M5NGQ3ZTA3NyBweTNrCis3Mzc4MSBmYjU0MmVkOTFlN2Y1NWI4MDdmYWU2MWUzNjZmZWZjZDFlNGI0MDM5IGxlZ2FjeS10cnVuaworNzM3ODIgMjYyNTVmMjlhN2U0OWQzNzcyOWQ3OWUxYWVjYzEyOGI2NmQyNWQ0ZiBweTNrCis3Mzc4MyBjYzZiOTFjM2Q3MTliNjljYjc3YjBmNDA0OTA2Y2M0Y2NlNmNhNDAyIHB5M2sKKzczNzg0IGVhOTMzYzI0YWQxMDMzZDg2MTM0NzMwYzc5YzkzMDI4YThhN2YyODYgcHkzaworNzM3ODUgNjVlNDFiY2JjMjVkNGQwNmM0MDBmMzQzZmUxZGEzMTMwMmM3OTdmNiByZWxlYXNlMzEtbWFpbnQKKzczNzg2IDdiNzU4ZjgwODMzMDViMzMwMjc4NjJiNGEwYTExNzNiOWY4MDMyMWIgbGVnYWN5LXRydW5rCis3Mzc4OCA1MjJhZDllZWQ1NThlNzhhYmYwZWNjMjgxYzRiYWEwNDQ1YWM0OGI0IHB5M2sKKzczNzg5IDU2YTI3NjM5NmUxNWY5Yzc5NTNhMzNjY2EzMTM4ZjBhNTcwMDUxMmYgcmVsZWFzZTMxLW1haW50Cis3Mzc5MCA4NTY3N2EyYzc4NTVkMjIxNDM0ZDRiMGE1MzAxYmJjZTg3NTJiYTQzIGxlZ2FjeS10cnVuaworNzM3OTEgZWVlYjM1ZjI4ODEyY2U1ZTg0YzBiOTg2YjhiYTgyZGVkZDJkY2I0NCByZWxlYXNlMjYtbWFpbnQKKzczNzkyIDg5Njg2NzczYTYxOWE3NzBjZDhmMWUwNDAxODY3ZDBkZjM4N2IwYTQgcHkzaworNzM3OTMgZDhjODNjYzBkM2ZkOGM1NGM3YzU3MjdhZGM4MmEwNjI4NzczMGY2NSByZWxlYXNlMzEtbWFpbnQKKzczODAxIGE1MDE1NzNjMjNmMmE1Nzg2NjE4N2NiNzFhZjYxMTY5NDkwYzc3NTMgbGVnYWN5LXRydW5rCis3MzgwMiA0MjdmYjYzM2M0Y2NlYWY2NjYzMTk3ZjQ1ZmYxNzg0NzA0ZTE4NmNiIHJlbGVhc2UyNi1tYWludAorNzM4MDMgNDZhOWIxOGExYTE3NmUxMTMyMTNlYWM0YjE0MWRhODQxOTZiMTg5ZiBweTNrCis3MzgwNCA4Nzc2M2M5N2Y2OGVhM2YwNGEwOTA4OTcwYTRhNDZmNjRjMDUxYmQ2IHJlbGVhc2UzMS1tYWludAorNzM4MDUgODU0YzA5NDhiMDhkMDQxOGQ2ZTFlNjc2OGVkNDgxZjUwZmRmMzdmYSBweTNrCis3MzgwNyA1OWM2NmFkZTNjMjY4MjJhYTg4ZjlmMDJkMTVkZDBmZTU4MDk4NTNhIHB5M2sKKzczODA4IGZjNmFkZmZmOWE5ZWZkNTI3MTEzYWVmOTlhMDJjNjU0NDUwMzMwYjEgcmVsZWFzZTMxLW1haW50Cis3MzgwOSAxYzUyOTIxOGJhOTY0NDQwMDIzOGY5NjNmMWEwODQ0N2NmOGFiYmEyIHB5M2sKKzczODEwIDNhMjE0NjIyYzk0M2NhNGE4ZDAwZDA0NzM4YjE5Mjk1Nzk4OTE3ZjQgcmVsZWFzZTMxLW1haW50Cis3MzgxMiBmNmZhNWZiMDEwYmY3ZmNhZDY5YjE2MjRmNTJhODc3ZjI1Yjc4MmIzIGxlZ2FjeS10cnVuaworNzM4MTMgMGE0NmUwZTNmYzA3NDg1M2Q4MmM1ZTUwNjRhNDI3ZGFiOWI0NGQ5YSByZWxlYXNlMjYtbWFpbnQKKzczODE0IDdiMGU3OTdmNmIyYzg2ZWMzMGQzZTZiNjE3MTgxNDUwZjdjODZjMmQgbGVnYWN5LXRydW5rCis3MzgxNSBiMmM3NzY4NTdkYzRjODczZmY1OWVmYzdmYzg5ZTUzOTkyZDJiZDUzIGxlZ2FjeS10cnVuaworNzM4MTYgODg0MmY0ZTJmYjFiNzRkYjA2OGRmMDdmZTU5ODRmNzdjYWY2NGVjYiByZWxlYXNlMjYtbWFpbnQKKzczODE3IGRmYjk4NWE4ZGU2ZjY1Yzk2M2VlNGM1N2ExYzBlOWZmNzA2ZThiYWYgcHkzaworNzM4MTggOWM5ZmU5YWFmYmE2ZDZkMDhkZGZmZDA0ZTc3ZTdkNGNjYzlkZGEzNiBsZWdhY3ktdHJ1bmsKKzczODE5IDAxYWY3YjUyZTBkYjU5ZTM1MmYxYzhlMGQ1ZDdlZWRiY2QzMTQ1ODMgbGVnYWN5LXRydW5rCis3MzgyMCBjN2RhMGRjNmViMGM2YzQ0MGIyYTIxYTVkMTlkMjU5NzBiNzQzZmUyIHB5M2sKKzczODIxIDhhN2MyMDY2YTliMmU2MTRkNTIzMzk0NjNhNDA1OGVlZTk4NDk4OWUgbGVnYWN5LXRydW5rCis3MzgyMiA0NjE3ODgzYWMxZjMzZmNlYzQwZmI3YThkYjcyZjViOWU2Y2U2MDM2IGxlZ2FjeS10cnVuaworNzM4MjMgYzJmNDI3MGJlMzYyOTJkNTRmN2U1MzlkNmM5NWI1MWM3OTQzMjJkYiBweTNrCis3MzgyNCAwZTM5MWJmM2ViOWRmOWNhYjhhODY2MjU1YTkxMTBlNGRhMGJiYTkxIGxlZ2FjeS10cnVuaworNzM4MjUgOTgwOGUzOGZkZTcyYjZiMzJiYmJlNjFhZjQ2ZDU0MDU3YzY0NWIyNyBsZWdhY3ktdHJ1bmsKKzczODI2IDU0MGZkNDYxNjNkMWM5YmU0YzViMDFiYzA0NzNkYWI1YTUzYmU5ZTEgbGVnYWN5LXRydW5rCis3MzgyNyA1MmFhYTc3YTVkYmZjN2ZjYTQ5MWZhYmQ4OTFlMGFmOWQxOTNkYzM5IGxlZ2FjeS10cnVuaworNzM4MjggMDhiNThjYmVjZTc5ZWVkZjk2OGIzZDBiNTMwMGZkMTQ2NmI1Y2FiYyBweTNrCis3MzgyOSAwNDkxMjI3ZTU0MGVjZTU5ZjZmYmNlODA3MjEzMDc4Y2I1N2M1OTE4IHJlbGVhc2UzMS1tYWludAorNzM4MzAgODNjZTMzMmEyODM0ZjliZjg0N2RkNzQzZTZjYzg4YTRiMWU1ZThmYyByZWxlYXNlMzEtbWFpbnQKKzczODMxIGY4ODI2OTZmZDEzNGY3NzE3NzRiYjMzYmIzMzg3YWZmZDRhYjZmOTkgcmVsZWFzZTI2LW1haW50Cis3MzgzMiAwNmIzNjBhMzNkNTcxMWUzMTBmMTkyNmQ0YTY1YjE1MGJhNGQyMmM5IHB5M2sKKzczODMzIDdiOWFkOWFhYTkwMjRjMTRmNmY1YjQ0MzQ1OWNiMTFhMjcyMWRhZmMgcHkzaworNzM4MzQgZDExZDg5OWFhYjFkODBlNGFiMjc1OGZlZmQ1YWI5MzYwYTgzNjZlNSBsZWdhY3ktdHJ1bmsKKzczODM1IDdkZDhkYmQyNzAzMzM4M2VhMWI3MjRiMTgwYzg5NDQxNTNkNGVhNzEgcHkzaworNzM4MzYgODY4ZmYzN2Y1YTgwMTI0NzY3ODFlOWI1MDRhZjhkY2ZlNzEwMmI3ZSByZWxlYXNlMzEtbWFpbnQKKzczODM3IDFkZWE3ZWQ2ODY3ZDdjN2QwODUwMmNhMjA5Y2ZlMTY0ZjRlYTIwNzggcmVsZWFzZTI2LW1haW50Cis3MzgzOCA3ODk4N2JjZjFhYmZiMDgzNTRjMjQyODhhYmYxYzM4MDFhNjA5NmY2IHB5M2sKKzczODM5IDdmZjE0MDVjY2I2NGJiNTFjNGUxOWMxOTgyMzcyNTUyMmE4NDFlZTQgbGVnYWN5LXRydW5rCis3Mzg0MSA0NGZjZGJiNjIwMzhiMTE1ZjNlOTcxZmZlOWY2NGNlZWUwMDRjMTJmIGxlZ2FjeS10cnVuaworNzM4NDMgZjc0MmMwODc1Mjg4N2QzODhkMDAzMDU0NDQ0OTQ0YmU0ZWY3MDM2OCBweTNrCis3Mzg0NCA0ZmY0YWE4ZDY1ODMyOTkyMDc2ODMwODNkZDYxNjJkNDBlODJmYjRlIHB5M2sKKzczODQ1IGMyMzM2MTViMzRhYWI4ZTUwNTdhMmU4OGNkZGNiNDAwMTdiYjUzNjIgcHkzaworNzM4NDYgNDY2Y2E5NmJlMTgyNDAwOWEwZDRiN2EzM2EwZmFkYTdhOGJmZDExMCBsZWdhY3ktdHJ1bmsKKzczODQ3IDc3ZWJlYWNjMTA3YTgwNjBlOWYxMjJiNTJlYWU5YzAzOWE4MTQ2YWUgbGVnYWN5LXRydW5rCis3Mzg1MCA4ZTgxNTc0NDVhNTU2NTcyNGYyNzY2MWUxZTRlZDJiMzUxOTcyZGM2IHB5M2sKKzczODUxIGFiNDM0ZjBkY2IxNWQ5ODRlOWU2MzMzZTM2OTk5OGQ4MWZkOTM1M2UgcHkzaworNzM4NTIgYTc2YjM0Y2ZjODk3YzEwMjZmN2JmMDBjZjkyNDNiMTE3NWE0ZGEzMCBweTNrCis3Mzg1MyBhNDBhMjI2NjFlNTA0ODdkMmE3Mzg3OTkzNTQwZWJhYzA4NGE2MGQ3IHB5M2sKKzczODU0IGM2ZjEzOTM0ZjRjNjY5YjQwM2U0ODJkM2MzYWJjMzU3MGE0OTAzMjMgbGVnYWN5LXRydW5rCis3Mzg1NSAxMGE2Y2EyYzBjY2IyNzI3YTI1ODZmYThmNDcxZTNhZDYzNzkxODQ5IHB5M2sKKzczODU2IDI2ZjYwZmQ0N2FkM2ZhNGQ0MjQ4MjdhMjNkMDIzZmEwYTMxNGU2ZmQgcHkzaworNzM4NTcgODVkYjZhNTQzYjNlNDRiYWYwZTYxNjhjMjNjZjE2YThlNTM5NmY3MyBweTNrCis3Mzg1OCAxZmMzN2ZlY2FmOGYzM2Y3NzczMGViODhhMzkyMjIwZjIxZjQyN2FiIGxlZ2FjeS10cnVuaworNzM4NTkgMjQ0NDZkYzg3ZjczZTdkZjA3ZTJmZGI2NTdhMWUxMzA1MWFhNjg4ZSByZWxlYXNlMjYtbWFpbnQKKzczODYwIDA1MjJlNTcxY2U3NDk0ZmE3Zjc1YjBiNmQ2YWJiNzM0MzM2NGVjOWUgcHkzaworNzM4NjIgN2JiNzc1OGU2ZDY0YjhmOTBmZjI1N2NiNzY4ZjczZTNjNWE1NzJjYSBweTNrCis3Mzg2MyA0MjYzOTRkYmJjZWUyMmY4NzExZGU2OWJkYjNlNmQzYmQzOWNhZWZiIGxlZ2FjeS10cnVuaworNzM4NjQgYjQ2YWJjMmYyYTFmYmFjYWVjMDNlOTI5OTljNmZjMTA2YTA2OWM0NSBsZWdhY3ktdHJ1bmsKKzczODY1IGQxZWRhNzBiMzgzZTllZWJkMzlhMGUyMThiZTBhMTQyNGE3MWRhM2YgcmVsZWFzZTI2LW1haW50Cis3Mzg2NiBjMjNhOGYxY2ZhYjhmYWNhMWJjMTA2M2U4YjQ4MTAxOWFjMGE5MDA2IHB5M2sKKzczODY3IDQ5ZmYyMzQyMDkxOWI0MWVjMGI4Nzk0MDI0NmZiMDllODM5ODQyMjUgcmVsZWFzZTMxLW1haW50Cis3Mzg2OCA3NDljZjA2Y2QwNzA5OWE2MGUzZmI1MDAyOGQwY2QxOGMzNWEwNGE1IHB5M2sKKzczODY5IDU5Y2Y1ZjgwOGMyNGE5OTllMzc1MGM4ZGNhYjY4OTQzMWFiMTdkYmUgcmVsZWFzZTMxLW1haW50Cis3Mzg3MCBlOWZjODk0N2M0OWE1NTYzOGE5ZWE0YzNlMzI2YzljZGQ0YWZkMGVjIGxlZ2FjeS10cnVuaworNzM4NzEgMzhkNmU0ZTUxYWYwODk1MWIwZTk2Zjg5NjA3OWU1MGRjZDZiYWQ2OCBsZWdhY3ktdHJ1bmsKKzczODcyIDFjZWY3ZTcxNjI0NzhiOGY4NmZkZmVmOWFjZGRjNGEwNzVmYWZlNzEgcHkzaworNzM4NzMgMzA2MzcxNGZmOWYzMWMwZmFiNmExODE3YTJmODYwZGE2ZDA4ZmMwMCBsZWdhY3ktdHJ1bmsKKzczODc0IDYzOGVhMTM0YWE4MmQ3MmEyYWMyMGJhZjIxOGUwZjRmOWU4MjBiZmUgcHkzaworNzM4NzUgZGU1OGY2MTM4NmMzYjQ5ZTU1ZmMzZGM5YWE0ZThiMjI3NjI1MDUzZiByZWxlYXNlMjYtbWFpbnQKKzczODc2IDQxNjgxMzhjMzcxZTVkMzUxMDRmN2I3NTYwNTc1MjRmMGQ5NGYwYmQgcmVsZWFzZTMxLW1haW50Cis3Mzg3NyA0ZWE4MTMwZWUwOWU4NGI0NDQxNjkxN2RhMTJjMWQ2YzE1MDI4NTk1IGxlZ2FjeS10cnVuaworNzM4NzggODEwMDJjNzYwMGJkNWQzMjAxOWVjODYxMjk5MDhiNTNjODFmMzk4NyBweTNrCis3Mzg3OSBhZGZkNmI3M2QzNjQ3NDFiNGQ4OTc5YTEwNjRmNDM4YTNmNDFkZWJkIGxlZ2FjeS10cnVuaworNzM4ODAgODgwYjUwYmNhMWIxOTIyZjdkMmI0ZTFlYjQ1MzA5Yjg2ZGIzYjlmNCBsZWdhY3ktdHJ1bmsKKzczODgxIDk5ZTMwYWY0MTE2OWYwNWE3NTYxNTJiZjkzMGFmZjhkNmNiNjVlOGYgcmVsZWFzZTI2LW1haW50Cis3Mzg4MiBlZTE1NmVjNWVmYmY5NmQwMGQ1NDYwZWZhOTdjYTAwMDlhYmY0ZWU1IHB5M2sKKzczODgzIDFmNDhjYmQ0MzIyNmQyNmVkNTYxZjc0ODE1YjE4MWFiODU1OWJkZWQgcmVsZWFzZTMxLW1haW50Cis3Mzg4NCA3ZmEyMWJkYzM0OGI0ZjZhMWI3YTgyMmY1N2I1MTQ3ODMzYTU5Yjk0IGxlZ2FjeS10cnVuaworNzM4ODUgMWZkODM5YjgzMzBhMWI2NDUyYTA3Yzg0ZjAxNmYzYTUwNjFkMmFhNSByZWxlYXNlMjYtbWFpbnQKKzczODg2IGRlNmM0OGQ3M2I3MTZlZWFmM2JjYTdjYzBhNTMyMTlhM2I3ZDUxZjUgcHkzaworNzM4ODcgZmEwODBjNGY1MzlhOWVhOThiOWVhNDA2NGY3OTk3OTZiOWQyN2Q5NSByZWxlYXNlMjYtbWFpbnQKKzczODg4IDg5N2JkZWQ4MDAyMDZhNmY1NTIzZDIxOTBjNWFjMWJmMDAwYTNkODAgbGVnYWN5LXRydW5rCis3Mzg4OSA4YTg0NGE1YjE2ZGJiZjk5MzIzNDQwYmM4MzMzNmJlM2RmMTRjOTMyIHJlbGVhc2UyNi1tYWludAorNzM4OTAgODYwYTA2OWQxMjZjOWJhZjYwYWExMDVmMWM1OTVlNGZjMGFkMWY5MyBweTNrCis3Mzg5MSBiM2ZiNWU2YjdlODJkNjNmYmM2N2E3ZTFjMjg5ZGYyYzA2NmQzNDZkIGxlZ2FjeS10cnVuaworNzM4OTIgZjAyZTQ3MTIxOGI3NzkxZDQwOWQ1M2Q3MWJhYzMwZWY1NGY1N2M1NCByZWxlYXNlMjYtbWFpbnQKKzczODkzIDhiZWYzYTI2N2UxZWU4NGYzZjdhNmUzYzdlNGI4YTZlZTJkYzdhYmYgcHkzaworNzM4OTQgZDliMTliMzdmODFhZWNiODMxYWYwZjk4MzE1NGFjNDllODc4NTliMSBweTNrCis3Mzg5NSAyN2I1MTYyNjMyNjkxNmU3NDc2YTE0MmFjZjgwYzA3YzZhOWFkM2JiIGxlZ2FjeS10cnVuaworNzM4OTYgZDYxYzRkY2Y2MTg5OGRiYjcyNWQ5MTI2MDVhMDEwMDljN2VhOWEzNyBweTNrCis3Mzg5NyBkNTk5MjU0YzIwM2JjNjk3YjZiYWJjYjAyY2VkZTdkYzUwZWRlOTRiIHJlbGVhc2UzMS1tYWludAorNzM4OTggYmEwNDU5ZjJjMGNiNDAwNWNkZGIwNDA2ZDgyNDA0OWRkZTJlNWY5YyByZWxlYXNlMjYtbWFpbnQKKzczODk5IGJlNzM2YjQ5MGFiMmM4YmNkNTkyYWFjYjMyZjJjYzI3YjlkZTU3N2YgbGVnYWN5LXRydW5rCis3MzkwMCA0NjhhNDBhZGY1NmY1ZTNmNDU1MDcxZGYyY2IxZTdlM2E3OWFhMDQzIGxlZ2FjeS10cnVuaworNzM5MDEgYzkyYjkzNzc1NTY5MGI5NDRlODY5YTE2MjEwN2FiMmU2YjQzMWY3NiBsZWdhY3ktdHJ1bmsKKzczOTAyIDlhZmVhZTBiYWJmOWM0ZjY1OGZiM2UzYjcyMmQ1NGYyNDk0MWIxNzAgcmVsZWFzZTI2LW1haW50Cis3MzkwMyAxM2M1Y2Y0ODk3OTdjNDViNmJhZDg4YjZhNGQzNTA1MmQyYzJkODVhIHB5M2sKKzczOTA0IDgyOTA1MTkxOTllYzJmYjdhMDllYzdkOGE4NmMxODAyNGQxMDMxOGMgcmVsZWFzZTMxLW1haW50Cis3MzkwNSA0ZjFiMmE0NTdlODNjZTEzNGEzNjBlZTZjYzYwOTI4MmJhZjhkODY1IGxlZ2FjeS10cnVuaworNzM5MDYgMGYwNjViNDhhY2Y5NTEyOWQyNzc3ZTJkMmE3YWMxNzcyNzMzNDA5YyBsZWdhY3ktdHJ1bmsKKzczOTA3IDVmNDUzNTIyNTgxOWJlZTE0OTUzMzc5OTAzZWY1NTUwOGUyNzYzZjYgbGVnYWN5LXRydW5rCis3MzkwOCA1ZDliMzIzMDE4MTU0MjM4OGYwYzYwNTY3ZWUyODQ5NmJiZjJiMzc4IGxlZ2FjeS10cnVuaworNzM5MDkgZGEyYzE0N2U5MjlkMGExZDBiMWIwNjgxMzgwMTgzMjllMjZmOWM4NyBweTNrCis3MzkxMCA1YTI4YTk1ZGVjMTkzMDVlN2ViMGZmNjE0YmNkOTkwMGQ2Zjc3YWFlIHJlbGVhc2UyNi1tYWludAorNzM5MTEgOGE3N2VkZTRlMTc1YThjNjRkMmY3ZTA1YzFlNGY4MWYwMzJlNzI5NCBweTNrCis3MzkxMiA0YWUxZTk2ZTkzNzc0YzA3ZWU0NDFlYTU0Y2FhMmJmM2I3OTk3MjNkIHJlbGVhc2UyNi1tYWludAorNzM5MTMgYzQ3ZWY0ZTEwN2RmOTA4YzcxOGU5YjUxNGZiZDFhZGEzMDZmNjg5NyBweTNrCis3MzkxNCBiNTNlNDJlNTBjNDE1MzJjOGM5MDQzMGFhODc5NmRkODk0MWI0MWQ3IHJlbGVhc2UyNi1tYWludAorNzM5MTUgMzg5OGQ1MjBmMTA3ZmY0MDFkN2QwYmJkZTM0NDY5ODM2NGU3MDMzMyByZWxlYXNlMzEtbWFpbnQKKzczOTE2IDU2MDkzNTJmZWExMjBlNTlkMjE4ZTUwZjY1NGI0ZjVhMmUzYWZkYjggbGVnYWN5LXRydW5rCis3MzkxNyBlODlmYWFhZmEzZWVhMjQ5OWUyYzdkMDIxZDNhYWZlOGM0ZmRmMDU5IHB5M2sKKzczOTE4IDBiMmFiYTdhYzFmYWY2MDA0ZDhhOTViN2RjMjFiMWU5MzA2NWE0MDMgcHkzaworNzM5MTkgYWVkYzIyMGNjOWJmODkxMTIyOWJmZWFkNDcyYTE0MTNjY2M4ZDVmZSBweTNrCis3MzkyMCAwMTEzN2UzYjllYmU4ZjhkNWFjZDA1OWEyMTcwZWM4YWFhYmMzNjJjIHJlbGVhc2UzMS1tYWludAorNzM5MjEgODc3YmQ3ZDUwZDg5N2Y0ZTZmZmE4MmIwZjliODNiYmJhNzczY2ZmNCBsZWdhY3ktdHJ1bmsKKzczOTIyIDZmMGU1OWZhYjYyY2ZmMjU3ZWE3N2FmNTIyNjU3NTMxNTgxNDY5MmQgcmVsZWFzZTI2LW1haW50Cis3MzkyMyA2MjY0MTMyNzI0NjQ5YmE0NjU2NDMyNjg4ZTVkN2MyMmFhYWJkNzNlIHB5M2sKKzczOTI0IGQwYjNhZjU2NWVhYTVhOTBlYWQ0Yjk1ZDRhNTM0ZmViNTY4NmRmMmMgcmVsZWFzZTMxLW1haW50Cis3MzkyNSBlNTNkMDMxZTU0ZDQ3NWM0MDY3MGUwNDE3ODdmOGEzMzIzMThjMzI1IGxlZ2FjeS10cnVuaworNzM5MjYgMDNiODY2MDZjZTBhMmE3OGJjNWU1OTFlMDllMzFmMzYzOWZhZWFmMiBsZWdhY3ktdHJ1bmsKKzczOTI3IDliNWQyODE4ZTJkMGU3MDI3NzljODQxZjg0NWJhYzVlNjJhYTEwODIgcmVsZWFzZTI2LW1haW50Cis3MzkyOCAxMzkzNDdiMDBjMThmNzljMDE2OTY5ZWQxY2Y4MzY4ZmM3NGNlZGEyIHB5M2sKKzczOTI5IDJmZDc0YzUwMjYwMDM2OTExMWRmZTAyYjFhMzY5ZmEyZGQ3OGNlOGQgcmVsZWFzZTMxLW1haW50Cis3MzkzMCAxNGNkMTlmZWFmMjBkODU5MGU1ZDZkN2NiZTJhZGRhOTdhYTMwMzFkIGxlZ2FjeS10cnVuaworNzM5MzEgY2RkZDUxNjRkYjAzY2E3NGUwYjNhZGEwNDJjNjI3NTM2ZmY0YTNhYiBsZWdhY3ktdHJ1bmsKKzczOTMyIGIxYzYzNzJhODA5MmMzZWI4NzFjNzk1YWEyNmEwZTIzNTE3NzRmODEgbGVnYWN5LXRydW5rCis3MzkzMyAyMjE3MThlNzU3YmFmYWQwNWJmZWU1MmJkMzlmMzc5ZDhlNjA5MjE4IGxlZ2FjeS10cnVuaworNzM5MzQgZmVhYWE3Y2MwMmQxMjJjZjAwYmUxOWI5Yzk0YTcyN2U3OTk1YTY1NSBweTNrCis3MzkzNSBlNTM2YTNiM2E4ZDBlNWIwYTczMTI1ZjJhZjM2NjExYzRkMTJkYmU3IHJlbGVhc2UzMS1tYWludAorNzM5MzYgZTIwMGVlOWNjYzRiZWQ2MTI2YmYyZGQ2Y2U2M2EzYTVkYjhjNTkyZCBweTNrCis3MzkzNyBhY2FhMGM4N2Q0MDFmMzU5M2MzYzdkMTAzOTkwMTRhYzczODljYWE5IGxlZ2FjeS10cnVuaworNzM5MzggN2IyNDY5NDVmYzhjYjBkYjU2ZjYyZDBlNmY0ZjQ4NzJjMmRhZjU0OSBsZWdhY3ktdHJ1bmsKKzczOTM5IGIyOGRhZGQyMGQ5YjdiNDllZDA2YzY5ODBkOWFjNjBhYTI0ZDJmNWIgbGVnYWN5LXRydW5rCis3Mzk0MCA1OWMzNGE5MWM1NGQ5ZmQwYzQ5ODdiYjUxM2VlMzQ2ZDFlMmI1ZDQ3IGxlZ2FjeS10cnVuaworNzM5NDEgODQxYTFlNjhiNGVkY2NjYjIxODRmYmNiMjFjNWYzZmMzOThlMDk3MSBweTNrCis3Mzk0MiA2N2Y1ZTAxZDVhNmE3MWUyNTc4NzZkZmUwNWM1YjE2ODVjNjdlZDg0IHB5M2sKKzczOTQzIDgwNjYxNjA4ZDRlMjA1N2NjZGM0NzQ3ZDEyMThiZDEzNWU1MDFkOWMgcHkzaworNzM5NDQgNGM1ZTA3NWY1NDczZGE1NjNjZDllYTQ2NTY3MjJhZjdkYmI5OTJlNSBsZWdhY3ktdHJ1bmsKKzczOTQ1IGYzYmYwODMyOWYwNzk2NmI1Y2UwOWY0MmZmMjA1NjAyZGY2YmZhNzcgbGVnYWN5LXRydW5rCis3Mzk0NiA4MjJhMDJiNzFiYmViMmMzN2I3YjljOGI0NjE0MDg1YTdmYjIzOGQxIGxlZ2FjeS10cnVuaworNzM5NDcgYzY0ZjlkYzNjNmE0OTg1YjM5NDVkNDc5NzQwMjNkMzRhNDM3YjQ3NCByZWxlYXNlMjYtbWFpbnQKKzczOTQ4IDU3YjM1OTFmMGNiMjMyYTQ3ZjI1ODdhOTcwZjMxNzE1ZGY2ZWRkOWUgcHkzaworNzM5NDkgNTZjY2VmMzQyMGU3ODEzMzM2MDliOTE1NjMwZjg3M2E4YjcxOGU0NCByZWxlYXNlMzEtbWFpbnQKKzczOTUwIGQyN2ZkYzcwMzc5YzI2YTEwOWFjNjZlZWZmZWI2MzFmNjk0ZjBiZGUgcHkzaworNzM5NTEgMGI1MGU2ODQxYTgxYmRiZThlODk2YTVjNDliYTA3NWQ5MDAxMDVjNCBsZWdhY3ktdHJ1bmsKKzczOTUyIDg2ODIwMjI1YTRkNWFmYjc2MmRlOWFmZDAzNjI5OWQ4MDA4NTAyNjYgbGVnYWN5LXRydW5rCis3Mzk1MyBhMWI3OTc3OGYyMmUzZTI0Y2EzMmM1NTljOGYxYTAyZjVhNzIwMTdhIHJlbGVhc2UyNi1tYWludAorNzM5NTQgM2RhZGYzNDUzZDA1NTA5ZDY4YzRlMzU4NDA2MjZkMTRkYTc3MGRiOCBsZWdhY3ktdHJ1bmsKKzczOTU1IDkzYjQ4YWI5MGVhZDBlNWM1ZjZhYTZiYzc2MmYzMWMyZmNmOGIyZWQgcmVsZWFzZTI2LW1haW50Cis3Mzk1NiAxMDI4YTk5MWI2OGVjM2U2YzZjZGFmMzgyMDk3ZTA0NWYxYmE0OTU5IHB5M2sKKzczOTYxIDBjODEyODcwYTk3NWVjMGI4Njk2N2YxZTlkNGRlNDVhOTFkNzRjMDEgcHkzaworNzM5NjIgMjYzMGMwNzViNTdjYjM1N2NhYTM5MjRjMDA4OGU0MGI2MjE4OTRlOSBsZWdhY3ktdHJ1bmsKKzczOTYzIDQ5M2M3Zjk1MGEyYjliNWJhODE1ZGQ1OTVmYzM1Y2EzOTJjZmUwMTUgbGVnYWN5LXRydW5rCis3Mzk3MCA4NDhhNWFjOTI0YjliNTAwOGIwMDVmNDg4YzUxMzUyYmNlODZhYmM5IGxlZ2FjeS10cnVuaworNzM5NzEgMmEzOThlZGViMDhkOTUzYzQzNjI0Njc2ZjkwMzI3YjBlYTE1ZTBlZSByZWxlYXNlMjYtbWFpbnQKKzczOTc1IGQwZjIyNTg2NWJlNjU2M2NiODMwYjBkMmEwNDRkNGRhNjcyNTA2MjMgcHkzaworNzM5NzYgMzE4NzYzZWNjNGIzMDQzYTYxMTk2ZTE4MjdiN2U5N2VjZWM3MzYxNSByZWxlYXNlMzEtbWFpbnQKKzczOTc4IDU3ZTlmMmQzNjdhODFkMzViZDdiMmQwYTYwYTI2MWFmYWU5MzI0MGYgcHkzaworNzM5NzkgYWNkYTY5MmE4NDdmY2U5ZTk1Mjc3NjViNjEwM2FiYzU5ZDQ1NDE0YyBsZWdhY3ktdHJ1bmsKKzczOTgwIGYzYjljNTBhN2FhZDVjMDBmMGQ1YjMyNDc0OGIxYzA0NWMwOTkyZjUgcHkzaworNzM5ODIgODhhY2MxMGNhYTZlMTFmYmNlOWFmN2Y0OTVjMTQ1ZmVmOGYyYWI2MyByZWxlYXNlMzEtbWFpbnQKKzczOTgzIDViZTA0ZTIzMTdlOGQxMmE4YmUyODI1NzJlZTc3ZDIwYWEwZGVhMGYgcHkzaworNzM5ODUgMDEwYTQ4ZTk0MjIzNzIyN2YwNzMzMzE1ZTIxMTMxNjdkYmE1NzEyYSBsZWdhY3ktdHJ1bmsKKzczOTg2IGQwNzZlNjVhOTBkNmMxOTM4NWE5NWZlNzljZWQ4NWIzZTU0ZTg5MmEgbGVnYWN5LXRydW5rCis3Mzk4NyAyYjY3Y2I5MjViYjE5ZTg2OTlmNDk2ZTQwOGZhY2Q0MTI4YmNhNTFkIHB5M2sKKzczOTg4IDk1MDdlNGI5Yjk4ODU4ODUyOWQ3NTM5NmI5MjBjYTYwYWNkM2EzNzUgbGVnYWN5LXRydW5rCis3Mzk4OSBiNzRlMzkyNjI4MTUxM2EyMDkyMDE2ZGQ0ZWY2NmE2ZjM2NDkwZjkwIGxlZ2FjeS10cnVuaworNzM5OTAgYjFkMzRkZmZmZTJkZTAxZWM4MGQ1MTQzNWY1MDU4MzU5OGVkNDdhOSBsZWdhY3ktdHJ1bmsKKzczOTkxIGUxNzJhODg2NTBjZjlhZTU3MTZkZGJkMWU3ZmViNjRmYmU1Mzk1YmIgbGVnYWN5LXRydW5rCis3Mzk5MiBiZDc0ZTJjOTczNDg5YTg2ZjFkZDg3YzQzNzRlMDQyMjA4MTEwOTdkIHB5M2sKKzczOTkzIDRkMmI1MzI1ZWU0OGU4NWRjMjJiOTI4ZGM0NWRhZjgzMzczZTcxOWMgcHkzaworNzM5OTQgZGFhYmNiZjI0MTVkZDBhMzg5MzllMTJmNGMxZWIxZjhkN2UyZWM1NCBsZWdhY3ktdHJ1bmsKKzczOTk1IDMyZDQ4NjYyYWE1ZjM2MzA1Mjg2ZTM0YmI1YzM0ZDYyN2U4YTU1MDMgbGVnYWN5LXRydW5rCis3Mzk5NiA4ZWJiOTBkYzNiMDQ1MGIzOWJkOGE5YmQwYjI4NWVmYjBhZTA5OTFhIHB5M2sKKzczOTk3IDdiZWM2YjQwNzRmNTg0NzFlMzQxN2VhZGU1NTJjZDk1OTQzZTE1YTMgcmVsZWFzZTI2LW1haW50Cis3Mzk5OCA3MzdhNmIzMzc1MDU2M2MwMmY3NTA2MTMwZTJlMDVhNDZkMTNlOWFmIGxlZ2FjeS10cnVuaworNzM5OTkgNmQ5NjI1ZGQ5MmU3ZWJjNWFjZjU5NDE0OTJjZjUxZjFjMGI4NTdiNCBweTNrCis3NDAwMCA0MWViMTEyOTAxNDJlNzYzNTYyZjI4NTM0YzM0OWIxOWU1NWM3NTE0IGxlZ2FjeS10cnVuaworNzQwMDEgYWEyMmU3ZjMyNTE3ODJhN2NlNmY2MGY0NTQ2MDlhODg3N2ZmNTdiZiBsZWdhY3ktdHJ1bmsKKzc0MDAyIDcyYzVlMTczYWFjNWE2ODFjOTU3NzBjZmY4NzkyMzAyYzNiYzM1YzQgbGVnYWN5LXRydW5rCis3NDAwMyBlZjFiMTE5ODMzOGJmYWQ3MDQ4NzhmMDVlOTQyN2NmYzc1ZTdkMzFhIHB5M2sKKzc0MDA0IDEyNDM5YTAzMzk4OGE0ZWUyMTgxMWI0NjRjNzczOGQxY2ZmOTA3ODQgcHkzaworNzQwMDUgMjllN2E0ZGQ0MTdjYTI1NWZmZDg5Nzc3NDAxMjhhMGZlNTgzZTU3YSBsZWdhY3ktdHJ1bmsKKzc0MDA2IDBlZDQwNWMwNWNjMzA0YmZmNTdkODRmZTdhNWY0MmI4M2ZkMjJmOTggbGVnYWN5LXRydW5rCis3NDAwNyA5OGJiYjk2MzQ2NzJhNTgxZGZjOTkwZjdjY2QxMmNjMDdhOWVmMWM1IGxlZ2FjeS10cnVuaworNzQwMDggMjA3M2E5ODljMDE5MjZiMTMzZmYyMjI2YTgwZGVmMTc0ZTQyZTk1ZiBsZWdhY3ktdHJ1bmsKKzc0MDA5IDhjNjYwNmIzMmNiMWM5MGYzNTBlNjViMzgxMDM0NjBhZDFkNWJkODQgcHkzaworNzQwMTAgODdiMzEyMWNlNTgwZWYyMTNkY2FhMmJjMmNlYzk0MTk5ODA4OGZhZSBweTNrCis3NDAxMSA5MzkwNmIzOWZmZWNjNGIxNTA2ZmZjNzhmZWQ2MzhkMGFkNWQ4Nzc2IGxlZ2FjeS10cnVuaworNzQwMTIgYTUwZWI1OTZhNmQzZDFjMmU3NDAzNmZjNGNhYmQ1OGY0NzFiNmY2NCBweTNrCis3NDAxMyBlZGM3MTRmZmU2Y2NjM2EzM2I4OTRlY2ZiNWRjOTQ1NDcwMGZjYzFiIHB5M2sKKzc0MDE0IDNhMzE2MjQzYmQ2YzZmNWY2MzUxMTRhZjA5MWE1NzJhZDhkOGRkYjYgbGVnYWN5LXRydW5rCis3NDAxNSBhODkyMjcyM2E5MmQwMDFmMjQzYzQ2YTljYWI4OGRlNzE1NzYzMGQxIHB5M2sKKzc0MDE2IDczZGNkMTgzZmFlMmQ2ZDY4OGE0NTkzNjcxNTJhMjZiMDExYmJjNzAgcHkzaworNzQwMTcgZDEzNDBhNTBhMWIzMDc2YTVkNWE5MjA1YTZmNjA3Y2MwM2JlZmM3YiBweTNrCis3NDAxOCBiZDQzMWEwZTY4Mjc0OWY0MmQ4ZTk5YWU0NWMwZTQ2ODlmNDIwMGVkIHB5M2sKKzc0MDE5IDFmZDBmNTY5N2I0MGRiYzFiZmUyZTQxMTY1ZjMzYjViNDMyNDVlZGQgbGVnYWN5LXRydW5rCis3NDAyMCA2OWEwNGRiZDVmMGEyN2Q5NTA2OGQxY2Q2ZWNiODI3MzExNWU1NTQ5IGxlZ2FjeS10cnVuaworNzQwMjEgZGMwODRmNDAwM2JiYmY2ODBiYzdmODQwODg3MzFhNzg0YzEzNjIxOSBsZWdhY3ktdHJ1bmsKKzc0MDIyIDk4MjcxNDY4YWIwN2ExODlmNjc4Mzk0YmQzOWJiOGRmZjI0ZTQ1MDAgbGVnYWN5LXRydW5rCis3NDAyMyAzMzcwZDYwOGU1YWE0ODU2MzhjZTljMjBiOGI4MWE5ZGM3NTg4Y2I5IGxlZ2FjeS10cnVuaworNzQwMjQgMzg2NDUyYjJkOWQ1NzMzNzg0NjQ5YTk3ODM2Y2YwNDEzNjVkMzkxOSBsZWdhY3ktdHJ1bmsKKzc0MDI1IDA3NzUwYzU1ZmQ1NWZiODA1MTQ2MTM4N2IyNmJlMzUzMDAwY2E2NzAgcmVsZWFzZTI2LW1haW50Cis3NDAyNiA5YjE3ZDU0Njk4MjFiM2Y4ZTFlMWQzMmVlYjY2YjhiMWRjMTY5Y2JlIHB5M2sKKzc0MDI3IGY5NzhkZGRiOWI3MWZkODhiZGNjZTBkZTY4ZjljYWQ2Nzk0MGU4ZWMgcmVsZWFzZTMxLW1haW50Cis3NDAyOCBhYjYzYTI2MmExMTNiOTU0ZWIxOWM3Y2UyOTI1OTM0N2RkMTgyNjU3IGxlZ2FjeS10cnVuaworNzQwMjkgN2YxNTQ3ZjY2Y2NmMzBjMWUxYmYwMGU3N2VhODhkNDAyMGRkY2RkMCBsZWdhY3ktdHJ1bmsKKzc0MDMwIGZjOGZiOGVmZjIwZWM4NjM4MDhlN2M2NmU2ZDYzNDMyMGRhMzFmZDkgcHkzaworNzQwMzEgZTgzMGU4M2YwZjVhZTRiYjg2OTk4OGM0MmY4YjljYjVlNGMxMDNlNCBsZWdhY3ktdHJ1bmsKKzc0MDMyIDBjYTgwYTJjNzdmZmRlODg1NDM2NzIyODk4NzFiM2U4NDA3NGEwNWYgbGVnYWN5LXRydW5rCis3NDAzMyBjZmEwMDRjMWZkOTVkNzYyYTAzMThiNTE0YzRiMjI5MzY3YWQ0MTUxIGxlZ2FjeS10cnVuaworNzQwMzQgYjE2YWU2OWQ2NDg0YTcwNTIzYjYxOWJiYmQyNGU2NjMyMGYxYzYwYSBweTNrCis3NDAzNSBlNjIxZTNlMzE5NmVhNDFmZGMzMWIzYjIwYjE4Y2M4YTcyMWY3MTkwIHB5M2sKKzc0MDM2IGNiM2FhOGJjZDdiMDJkOGEwMWU3NmJkNjlhNWY0ZDI0ZTFiNGI3ZmEgcHkzaworNzQwMzcgZGNlNDdjMTBkM2ZhZTFmZWYyZmMyZmY1MDgwNDgyNzU1MzYxYjU4MCBweTNrCis3NDAzOCBkMjA3OWQ1YWRjZmFhNDRhMWVmNTFkYjVkNjcyZmUzMDZkMWY2YjczIGxlZ2FjeS10cnVuaworNzQwMzkgN2Y2ZDAzYjU5ODY1YzMxNzBiMzEwOGZmM2IzYTRmMjZkOWNlMjdkYiBsZWdhY3ktdHJ1bmsKKzc0MDQwIDJkYWI4ZDYzZWI1NTU2ODNlYmQ0OWMxODBhMmNjM2FmYjc4OWIxODUgbGVnYWN5LXRydW5rCis3NDA0MSA5ZTc1MjllZjQ0ZDQzNWQxOThkZGMyNjI3OTg2ZDUzNTMwZWZkOWU0IHB5M2sKKzc0MDQyIDEyYTEzZTUzOGExMWQ5OTRmOGZkNTZkY2YyZDE3YmM0NmZiMmYzMjEgbGVnYWN5LXRydW5rCis3NDA0MyAxMzBmMTkxMWQxNDY1YjQ2MDQ0ZTliOTAxNjYxYmMzMmRkZTU3ZWQzIHJlbGVhc2UyNi1tYWludAorNzQwNDQgMjdlNzBkODFhZDU3NWViZTIzMWE3NjRiZGJlMWQ0YmYzYzg5YzFmMSBsZWdhY3ktdHJ1bmsKKzc0MDQ1IGI3YjgyNmY2NWU3NWRiZWNmNWE0NDdjOGQ5NjJjZTVlYTEzODMzNGIgcHkzaworNzQwNDYgOTA2ZWQxMTljYjE5YjQyY2FkMjQ3ZTQ1NzI0ODk0YTVlYzZkZDg2YiBweTNrCis3NDA0NyA4NTExYzdjMGQzZWZmYmNiZmViM2Y2Y2QwOWNlY2NjOGFlNjljNWZiIHJlbGVhc2UzMS1tYWludAorNzQwNDggMDFhYmNkMzczMDE0NWY5M2RmM2IyZmQxOGRkZTEzNDdlNDg5ODQ5YiBsZWdhY3ktdHJ1bmsKKzc0MDQ5IDEwN2U0ZmI5MzYwNWZkODkwMTUxNzZmZWY1N2YwY2U1MWNiZDc0ZjEgcHkzaworNzQwNTAgMWVjNWMyNjZkMzkwZGY2MWZhODkyMDFjYTQxYWNlZWE2YmMwYjZhMiBweTNrCis3NDA1MSBhMjliYWJiNTQ4ODRiNTE2ZGFlNjE2MThhYzRjNGM1YTM2ZDI3ZDU4IGxlZ2FjeS10cnVuaworNzQwNTIgNWQ3ZDg1MjQwNDI2MzJkM2Q5MTZhYjM1ZWU0M2Q2MTEwM2Y5ZmMyYiBsZWdhY3ktdHJ1bmsKKzc0MDUzIDU5MzkyMTgwYmY0NDVlY2UxYjhlM2FiYWVlNzRlNGJiMDFkODc2MWUgcHkzaworNzQwNTQgYjQyODdmZjE2NGU1YmM5MzkxNDk5NjQ4Mzc1YTM1NGViZDcyOTM0MiBweTNrCis3NDA1NSA3MjRkZmVhYjNlOWI5MTU5MGFhZGUxOGNlODc5YjM4MDM3ZDc0MTdlIHB5M2sKKzc0MDU2IDJmY2RmOTY3Nzk3ZGU2NTQ2OWU5YWJmYjhjMjQ3ZGI1OTcyODJiMzggcHkzaworNzQwNTcgMWM1N2RlYmY5N2JjMjc0ZDE2ZmEyMmVlOWZmOTgzZmJkOTJhMDAyMyBweTNrCis3NDA1OCBjMDc1Yjk3NGMzNWNhNGQxMmZjOTE4ZjRiZDJmZGNhNDA3NjdlODAwIHB5M2sKKzc0MDU5IGEwNjE2OWE4NzJiMzQ4OWNiYzRiNWRhYTAxMGU1NDNmZTVlM2Y0OWIgcHkzaworNzQwNjAgMWRiOTdjZTRhODUwYTBjZTFjMmRkNDU3M2Q4ZGRlNWVjZTdlOGRkYSBweTNrCis3NDA2MSAyMGNjMGVhYTg5MjY0NjdlYmFiZjdkZDdlM2JkNGRmYzE1NTJjZjc3IHB5M2sKKzc0MDYyIDc2M2U1MTI5NjVmYTc4MDI0YWNiOTFjOTdjYzhiYTc3MzkwZDY0YjAgcHkzaworNzQwNjMgZWE4ZmY4ZDYyOTI4YTNjYmM0NDZkMGUyNDJmZmNhZTgzNTlkOWVmNSBweTNrCis3NDA2NCA4YWE4MGI3MTVjNTFjNzZlNzRmOTMzZjRhYTkwMzViNjJjYjc3NmI5IHB5M2sKKzc0MDY2IDM2YTdlOTZlOTBmYjNhMjY1MjA1YTUzN2U2NzZkNmMwNWI5MmY1OGUgcHkzaworNzQwNjcgZGI1YjNkMzE4NjQ5MzNiOWFjM2M1ZGYyMzNlMGM4NjdkODMzNTBhMyBsZWdhY3ktdHJ1bmsKKzc0MDY4IGZlMmIwMjZkZGYyMWNkMWU1ZTdkNmZhODRlMmUxMjNhYTk5ZjgxMTIgcHkzaworNzQwNjkgZTIzOTFkMzYwYWMyNDc5MTljNDU3NTNiOTFmMzljNTgxMzc4YmM0YiBsZWdhY3ktdHJ1bmsKKzc0MDcwIGJjZGI3YjE4N2ZhYTA1NDNjYzRkYTE2ZTc5ODg0NWRmMzU3NmZhYWYgcHkzaworNzQwNzEgYWIyNGZmNjQ2ZGE4OGY1NWM0M2JlNWM0NTNkZWQ4ZDdlNzhiMzRhNCBweTNrCis3NDA3MiA2ZTA3NWVlNDhkNGJhZWEyMmZlYmYxY2EyNzQ3MjBlMmE0Yzg4MWFkIGxlZ2FjeS10cnVuaworNzQwNzMgYmE3MzhhZjE0ZGZjZDQxYjMyZDU3YzUyNjYzZGM1MjY3MDA4YmFhNyBweTNrCis3NDA3NCA1OGI1MTJlZGZkYmI0MWFkMGZhYmY3ZWVmOGM2ZWE4MDhiYWEwNzNkIGxlZ2FjeS10cnVuaworNzQwNzUgMjU5MTM4YTk4OGE1MjcwYTFkODcxOGRjOTIxZjhhNWZmNGE2ZTRjZSBsZWdhY3ktdHJ1bmsKKzc0MDc2IDVlZTJlOTY1ZGE2ZWRlMTMzYzIxMDExNTUyMDllYzAzMWZjMDdhMjkgcHkzaworNzQwNzcgMGFhNTMyMTE3YTRiYjY5ZjA3YzYzYWU0N2M1ZWE0MzAzY2EzYjc4MSBsZWdhY3ktdHJ1bmsKKzc0MDc4IGIwNTEwNTViNTlmMTk0MmNjYTNiNjE1NjQ3MmQ4MTA3ZDc3OTMyMzIgcHkzaworNzQwNzkgYTE5ZWI5NjM3ZmY3ZWRmZmExNWE2ZGQ2OTA2YThiNDZkM2ZmZmEyNCByZWxlYXNlMzEtbWFpbnQKKzc0MDgwIDlkYzVhYTYyYmU3MmZmODdiZjhmOTk5MzU2ZTIyZTVlMWI5MTkwZjAgbGVnYWN5LXRydW5rCis3NDA4MSA2NmJhYmU2MzEwMzdmNzQ2Nzc3MWFlOTRmYjQ3YjE0MDYyMmY3NjBiIHJlbGVhc2UyNi1tYWludAorNzQwODIgZGUxZDUyMDY5ZDJkZmNiNzI2Yzk4NTJkYTc3NGFhNjU3MTBkZGM2OSBweTNrCis3NDA4MyAzNzU1NjNjNmQzMjQ0YTE5ZDc4OWNjMDZiOTVlNTM4Y2VkMjc1YjdjIGxlZ2FjeS10cnVuaworNzQwODQgNTRiMWY4MDI0YmM4M2MzNjM0ODA0ZGRmNWE4OTBkOTI1NmU1OTJkZCBweTNrCis3NDA4NSBmMjA3MDU4NzVlODA2NTA5NzUyYTZlNTMyYzRkNzFhNDc1YzQyZGE1IHJlbGVhc2UyNi1tYWludAorNzQwODYgYzcwNDIxMjcxOTZhNTE1ZmFlZjI5ZTJlMDRjY2VkMjc1MjlkYzZjOCByZWxlYXNlMzEtbWFpbnQKKzc0MDg3IDRmMTc4ZTU5NTgxMzEyZTc4ZGUxN2U0NzYxMGYyODRjOWYyZjZiYjYgcHkzaworNzQwODggZWUwYjlhOTMxYzk0YTQ5NjQ0N2E3ZTM3OGIwOWRhOGViZjlkNGEwOCByZWxlYXNlMzEtbWFpbnQKKzc0MDg5IGMzMzZiMzAzOGQwNTQ2NDJhZTQ3N2EyNjM3MTNlNDFlMzMzYjhjYjAgbGVnYWN5LXRydW5rCis3NDA5MCA0NjEyYTJhY2RmMmY2MDdkNzQzMmIzZGVlYzI5MzdkYjU1MDBkZjczIHB5M2sKKzc0MDkxIDYyMzZhZGIzNjYxODFkNjI1YmEzZGM2YjY1NmY0OTBhMzA5MTk4NDEgcmVsZWFzZTI2LW1haW50Cis3NDA5MiBkNjBiNTU5ZWVhZDlmMjk3NDg3OWRmNTk0ZGMxODljN2I1OGQ2Y2M2IHJlbGVhc2UzMS1tYWludAorNzQwOTMgMzY2MzZmYTU0ZjMzMzM5YWNiNzY1YmE2ODBlNjM1YjAxZDY0YmQ2NiByZWxlYXNlMjYtbWFpbnQKKzc0MDk0IDZhZDI1NjEyNDA4MDQzYTBkYWJlOWNmZDdjOTY4MGU3M2I3ZDBkMzkgcHkzaworNzQwOTUgZjMxMTM5NTQ4N2M5NzBmMmVhODUyYWE5YWU3MDUxYmEwMDg2MDM5MiBsZWdhY3ktdHJ1bmsKKzc0MDk2IGVjMWYzMmI3MmFiZTgxMzI2Nzk0ODUzMDM0N2JmNzcyOTEzN2VmYmEgcHkzaworNzQwOTcgYWY5NzdlOTRlMmZkZDRlM2M3NGVlNTNmMmVkZTY0YzI5OTZmYWVkNyBweTNrCis3NDA5OCAzYTYxM2UwMGY2NmQzNDhiYzNjYWUyMmFiMmI2NTgxYjE5Zjg0OTI4IGxlZ2FjeS10cnVuaworNzQwOTkgZTYyOTU3YTBlZTE0MjM3ZDAzOWZjYTYyMjgwMTE2NzRjZmNlMjY1YiBweTNrCis3NDEwMCBlZWFkNzgwN2RmN2NjMDc4ZmNlYTk5YzVmYmU5YzFlNmExODRlY2VmIGxlZ2FjeS10cnVuaworNzQxMDEgYzBhY2FlMTliNDg3Njc2YTc2MTc3MDg4MGI3YTM5NmJkY2RkYWMzZiBweTNrCis3NDEwMiBlYWY0YTAwNDg0YmRiZDgzZWQwMjEyZDBlNGE0N2NmZmU3YTRhZmEyIHB5M2sKKzc0MTAzIGFlMmMwNTZjNDZkMzQ0NzAzZTJkOWJkNTNiZWYyNTBhMWQ4Yjg0ZTUgcHkzaworNzQxMDQgODFjOGIzMDQxNjNlM2FkYWQ4ZjVjZDI4ZThhZDYyODdkOGRiYWRhNCByZWxlYXNlMzEtbWFpbnQKKzc0MTA1IDBhZjk0MDdjODhkMmU2ZWYxYjQxMTUwN2NmMzI0NzdlZDg5ZjhiZDMgcmVsZWFzZTMxLW1haW50Cis3NDEwNiA1Y2Y2OGQzYjY1MzI0ODk5ZjVmYzQwZDBmZjQ5M2E0OTIwZGQ1NDdiIHB5M2sKKzc0MTA3IGE2NDBiYjNiOWMyYmI2YmQyYjcwYWRkNzY4ZWQzZGUyZjIxYzMzMTMgcHkzaworNzQxMDggZjUwMjkwNzk3ZmI1MGE1MzBkODdiY2RkZDcyNzk2OGVmNjcxMDQ3ZSByZWxlYXNlMzEtbWFpbnQKKzc0MTA5IGZlNzk4OGE1NzBkZmYyMTNlMDA3ZDUyNjgzNDMxZGJkNTk5OTFhZGEgcmVsZWFzZTMxLW1haW50Cis3NDExMCBkZmFmNmRlMmM4Y2U3YTM0NGVhODdmODhlZjcxYTJkYjkwY2VlNjVlIHB5M2sKKzc0MTExIGQ4MjZhMGNjMmMwZTBlNjFmNzlhYjMyZTE2NjFlMTIzZGZiY2YyZWEgbGVnYWN5LXRydW5rCis3NDExMiBkMWQ4MjU0YzRlZDVjNmY4ODljY2Q0OTRlZmU1NTRjMmE3MzBhYzI0IHJlbGVhc2UyNi1tYWludAorNzQxMTQgNzMyZjcyY2JhZjdkODRjY2NmNjEzZDVhZTkwOGVlYjExZGNlZjMzMyBsZWdhY3ktdHJ1bmsKKzc0MTE1IDBhY2YyNDkwMTVjYTRjYjNkMDk1ODEzM2Y5MmNiZDU5ZDdjOTUwZGQgcHkzaworNzQxMTcgMDFiNzYzY2ViNDA4NzNlODkzNGY3N2Q4MzlkZjVlMzllNjU0MTRiYyBsZWdhY3ktdHJ1bmsKKzc0MTE4IGFhY2RjNzM1ZjE5YjE4NWMyZmQyMTE3MDFjMWE0NjNkNjdlN2NmYjEgcHkzaworNzQxMTkgN2JmOGZjMjAwMzdhMWNiMjFiMDNkMWRmMDg4NjM1MmE4OWViMjFiOSBsZWdhY3ktdHJ1bmsKKzc0MTIwIDg2MGU3MTJlMzJlMGRmZjhiZjMwZGZlZDJkYTNmYWJiNjY5YWJiOTQgcHkzaworNzQxMjMgMDFlMmU5YWRkMDcwZmI0MjIzNWJhOGZmYmFmZDI4MTQyZTUxY2E1ZCBsZWdhY3ktdHJ1bmsKKzc0MTI0IDM4MzJjZjAzNjg3YmIzOTUwYTVjMjVhZjkxZTNhOTA2MzBlODJlNDcgcHkzaworNzQxMjUgY2M5ZmVmY2RkNTMzYzRiNzNhN2YzNDJhODBiYWU2MjNmNWY0NWYyZCBweTNrCis3NDEyNiBjZmFiMTFkZDNlNzNlNTg2ZjAxNDM5MzRiMjIwNDM0OTllN2Y0MmZlIHB5M2sKKzc0MTI4IDYzZmQxN2JhOTg3NTMwNjI5NzhiYTExYzU5YWVlOWMxMjJiNzA2OTUgcHkzaworNzQxMjkgMmNmOWQxOGQzZGY1NGM5ZmM3YjE4ODcyOGRiZDFkMzE4Yzg5NTQxZiBweTNrCis3NDEzMCAwYjFmMWQ3YjJlNmRmZDA1OTZjZTQ0MjlhODFmNzYyYzZjN2UyNTY5IHB5M2sKKzc0MTMxIDNjNDQ5MGFkMDFjZjA3NmRhMDQ5NjJmMjkyNjgxY2I0NDNjYjBmODMgcHkzaworNzQxMzIgNzk3MThlZTAzOTg2MjlhYzQxYzAzMmQ3YzA5ZDgwM2Q3OGUxNjRlMSBweTNrCis3NDEzMyBlYmM5ODU2YTliZGIyNjAxZjQzMWQ2M2FhOTg4ZTJjNjk3YmNjMWI3IHB5M2sKKzc0MTM0IDU2MTM2NGEzNGIwYzQ2ZDEzNDRmZTI5ZjgwYWQyYmNlZmJmMDZiMDIgbGVnYWN5LXRydW5rCis3NDEzNSAwYTIwZWRmM2Y3ZGI4OWViOGRlZjY3NjhmYTk1MzM4ODY2MjAxYjE2IHB5M2sKKzc0MTM2IDZmODczNjczNzk5NGRjMTE5YTk4MzQ1ZTk2ZDZlMmVmMGFlYmUwNDAgcmVsZWFzZTMxLW1haW50Cis3NDEzNyA5ZmY1YmQxNjAxNmI0MDdjNjc5NzRiYTI2ZWEwMGUwODVkMzkwYWUwIHJlbGVhc2UzMS1tYWludAorNzQxMzggMjFlNTgzMWNiYWU4YWJiYzMzOWFlMjhkMTU2YmFhOWNiNDRjYzdlZiByZWxlYXNlMzEtbWFpbnQKKzc0MTM5IDM4MTVhYmVkOTI3OWI4ZDgxMWM4NGJjNGY1ZThhYjE5OWE2YjY1ZTQgbGVnYWN5LXRydW5rCis3NDE0MCBjMjhlNjFjNWJkZjgyOWZjMGZkNDdhNGNkYmE4ZWU5N2I2OTg2ZWE3IHB5M2sKKzc0MTQxIDk0OTljMjMyZWRiNzNmYjcwMjY5Zjk1NzIxMDZiNDRiOWY0NWY1ODcgcmVsZWFzZTMxLW1haW50Cis3NDE0MiA0ZGY3MDUwMGRiZTM0ZDU3OGI4MGNjMTU2MDg0ZjMxMTQ1ZmY1ZGRiIHJlbGVhc2UyNi1tYWludAorNzQxNDMgMDNmNWM2N2RmMThlMmI2YzU0ZDgyNTIxYjhmYzY1ZjYyZmMzYzMwNiByZWxlYXNlMzEtbWFpbnQKKzc0MTQ0IDhkNmVhZDJhY2NhMDA0ZjU3MDU3YTAxNTIwNjcxNzEyNTU4YTYzMWUgcmVsZWFzZTI2LW1haW50Cis3NDE0NSBmZGE5MDYyZWJmYTRjODcxZTljYTdjNzhmNTBjMDE1ZTQyMjFlOWRmIHJlbGVhc2UyNi1tYWludAorNzQxNDYgY2RjNzQ5ZDljMDIxYjk3ZWM2N2VjNzQxOTBmZDFlMGY1ZWU3NjI4ZCByZWxlYXNlMjYtbWFpbnQKKzc0MTQ3IDdkY2U0MDRmYzhlYjViMzNjMzA2YjU4NTk3MzFhYzk1NjRjZjI4NTMgbGVnYWN5LXRydW5rCis3NDE0OCAzNjEyYTRlY2E1ZDUxY2NhYjFlZmM3OGYyZjZiMGIzNzgyZGZmZWJhIGxlZ2FjeS10cnVuaworNzQxNDkgYjQwZWViOGY2OWNhN2JiNjQ1OTJjNjlmYWZmZGViMTJiZTA3YzZjMCBweTNrCis3NDE1MCBjMzBmYThjNWUzMjQ2Zjk2YzA5YWM5ZTgwZWQzZTNhMTExMjc3MjZiIGxlZ2FjeS10cnVuaworNzQxNTEgZTQwNTA2ZWRjYjNlMTU3YTA5ZWU3MjBkMDI3NDcxNTMxMDc0ODM3ZSBweTNrCis3NDE1MiA2YmIwMTg4N2Y0NzU2NzY3NjExZjI4MTM5ZTVmNjgyNDRlOTMzNzFlIGxlZ2FjeS10cnVuaworNzQxNTMgMjRhMmFjZjEyOTFjOTQxMzcyMmYzMWEzYTU2NTE3ZGIwMDFmN2JkMyBweTNrCis3NDE1NCBhYmZkNWY3OGY0NjZhZTE3MDMwMDg1OGQ2ZDM3ZDliNmFkOWQwNWM5IHB5M2sKKzc0MTU1IGQ3NDdkNTJmOWE2NjkwNmU1MmMxN2NlMzM0OTUxZDE4ZWUxNjE5NWMgcHkzaworNzQxNTYgZjc5MDQzMzY5NjI1ZmY5ZjZmMjhiMjRkMzE2MDViYmZhNDhkNGUxZCBweTNrCis3NDE1NyBkNjgyY2E4ODhlMjc5NGIxN2E1NmYxOWFlYTJlZjNjZTQwNzY5YzQ2IHB5M2sKKzc0MTU4IDUzODg1MGIzODkzMTA5MDcxYzUxNDgwYTg0ODhjNTIyOTAxYzI3YjQgcHkzaworNzQxNTkgYjdhYWJiYTg0ZWUxYTBhOTlhZGIwMjgzZGQ2Yzc5ZTAyMWI3ZjRlOSBweTNrCis3NDE2MCA1OWU1ZjI5OWRhYTAyMGM1Y2JlZWUyNDU4NDI3ZWM0NjNhOTJkYzAwIHB5M2sKKzc0MTYxIGVjODVhNTFkZTljZjQ4ZTkwMjhlOTUyMTc5ZTRlODAzOTY1Mjg5NDQgcHkzaworNzQxNjIgZGY1YTcwODYwNzgxMGJmMDk2Mzg1MzcxOTk4Y2I5NGY4NWVlOTJkYyBweTNrCis3NDE2MyBjYzlhMWEzZTNmYjgxZTQzMjg2YzRjM2NiODBiYzhmZDkzZDY1YWNjIGxlZ2FjeS10cnVuaworNzQxNjQgMWVjYjA3ZTExYTJkY2M2MWZlM2U1MjMxYzQyMzNjZmM5ZjgyY2FhMSBweTNrCis3NDE2NSA5YzIxMTFjZmQ5NzQzNmRiMmEyMjRmZjMxZGI4MDBhM2JiOWM2ZTY0IHJlbGVhc2UzMS1tYWludAorNzQxNjYgMDc2MzQ2MGIwYjM4MWRmZWQ2MWRmMmMwNzgwZDU4NjhlN2Y0MWU0MCByZWxlYXNlMjYtbWFpbnQKKzc0MTY3IDE0ODBmYWUzYjcwM2ZjZDdkMDA0ZDZlOTgyYmFjM2IwODBkMDEwMDcgbGVnYWN5LXRydW5rCis3NDE2OCA3NGFhZWI5YzM1ZmJkMTE0ZWEyMWIzYWJkYmU5OWFmY2YzNjFhYTZjIHJlbGVhc2UyNi1tYWludAorNzQxNjkgY2I0NmEwZDc4OWM2NzBmNTRhOGQ5MGY0MDFjMjgxYTQxNDg2M2JlMSBweTNrCis3NDE3MCAyNWNmNzc1YTcxNTE5ZmZmNjA2MGI5NTdlNTliMjFiZDU5ODhhNWE2IHJlbGVhc2UzMS1tYWludAorNzQxNzEgMDNjZjRjYjRhMTUwMWQ1YTM2OWJjZmIyZGM0NDkyOGRlNDRmZjFlYSBweTNrCis3NDE3MiA5MDhiMzk3NjRjNzM4ZDcxNWM5YWJjZmFmMGJmNjhlNDNmOGI3Zjg5IHJlbGVhc2UzMS1tYWludAorNzQxNzMgMTMyN2FmNTZlYTQ5YWI4NWIxYjIzNTI5NTBhODYzMThjNWVmY2ZjMSBsZWdhY3ktdHJ1bmsKKzc0MTc0IGU2NTBhOWQ2NGFiNWM2ZTI4YmRmOGU0NjliOGVmZTRlMGEwMDlmZjIgcHkzaworNzQxNzUgOTRmYzQzM2M0MzczNDZhYjYyODA0MjFmZGZiM2VjOGI1ZWE1MDRmMiBsZWdhY3ktdHJ1bmsKKzc0MTc2IGEwZWFjYjVmOWQ4YWEzNTJhNmU2MmViYTI2NzhlZWU0MmI4MzQwZTIgcmVsZWFzZTI2LW1haW50Cis3NDE3NyBkZjE3NDQzMTk0NjZjOGNiZjg3NGU4ZWM5YmQ3YmUzYzY1M2Q1MDFjIHB5M2sKKzc0MTc4IDI2MGZiNDIxYWMwN2ExNDA4OTUwODBlMzYyMGI1ZGY4YzhmZmYzZDYgcmVsZWFzZTMxLW1haW50Cis3NDE3OSA5ZGRhMDJhZmE4ZWQwMDdjN2ExMzg3MjY0MGY0Mjg3N2M1YzRmODExIGxlZ2FjeS10cnVuaworNzQxODAgMDI1YTY0MjhhNzY0ZjVlNDUwOTE5MmI3ODI3YzJlMWI4NTIzOTEyYiBweTNrCis3NDE4MSBiOTY0MDY1NTEyYjE1NTdhZGRhZmEyYjVmNGI5OTliYmU4OGY3ZDBkIHB5M2sKKzc0MTgyIGIxMWE3NTI0ZTU1OGYxY2EzZjIyZDgwZGY5YTNjNTRmZGU1M2Y0NDMgcHkzaworNzQxODMgMjA3NTQxYzk4NzQ0MmQ2YmJiZjlmNmRmNGY4ZDA1NjQ5ODFmMDNhNSBweTNrCis3NDE4NCA3NDIyZDc4OWZkY2E5YjJlOTFiYzBjNTg5ZmNiY2E4MWFiOGMwNDA0IGxlZ2FjeS10cnVuaworNzQxODUgOTc3NjAyYjNlMTQwZGNiZGEzOTE5MTk2YjdjYTFlMWUxNjUzZTM3YiBsZWdhY3ktdHJ1bmsKKzc0MTg2IGVjYTAyMDdiYjc3ZjA5MWE5OTQ1ODQ2Yzg5NmFiNDI2MjdiNGI2YTUgcHkzaworNzQxODcgMmU5NDcyNDU5NThiMDFjOWUzMmJiZTJiZjRjOWYxMTljNjk5ODI5MCBsZWdhY3ktdHJ1bmsKKzc0MTg4IDYwNTIzNDE4ZjhjOGU5NTUxNzkyZjNlZTFjNDc0NTZlZTE0YTM0ZjAgbGVnYWN5LXRydW5rCis3NDE4OSAyZmIxMDU3N2M2MjFlMjlmZmI5NWU0NTJiYzViMjU4MjE0MmU5NzUyIGxlZ2FjeS10cnVuaworNzQxOTAgODY4YjRlNjM5YjVhYjFiOGU3MWE2YWQ4MmMzMmMwZjVjNmE4NzllNSByZWxlYXNlMjYtbWFpbnQKKzc0MTkxIGI3N2JiNTMyMTEwODg5MWVmMjY0Nzc0ODMxYzg4NDZiMjE2YzI0NTggcHkzaworNzQxOTIgYzAwYjA4ODQyZDdmZDRiZDMxMzhiNDk3ZTY5MjAxMmQ5Nzg1MjI0MiBsZWdhY3ktdHJ1bmsKKzc0MTkzIGU5OTAxM2E5ZDJmOWNhNGUwYzM2M2RjMGFkZjQwNmFlNTZhYzQyYjEgbGVnYWN5LXRydW5rCis3NDE5NCBkOThiOGE2ZWMyYjg0YzViNzgwMTE3MzQ2MDRlYTU2YzRkZDRmMTY4IGxlZ2FjeS10cnVuaworNzQxOTUgNjFhMDY1YjMwMDFkODdkNTZiMzliYzA3YWVkYzJkMTc5YmMxOWIzOSBweTNrCis3NDE5NiA3NTk2MjJkMGFlMjg0NzU2YTRhZGZlOGEyM2M0OWVmYjhlYTA1MDNlIHB5M2sKKzc0MTk3IGNmZmIxZTk2M2RkOGEwNzcyMjExYzA3NTRkYmFkZjc3MjAxZjZmMmUgbGVnYWN5LXRydW5rCis3NDE5OCBkMWVjOTVhZTBhYzI4NDZiZDhjOTZlMmM1OGM2Y2YzYzU4NThkZTk1IHB5M2sKKzc0MTk5IGExNGMwOGY4ZTc3YjVmOGQ5ZmQxM2VkOGFlNjVlNzQzNGJkMzg5MDQgcHkzaworNzQyMDAgN2Q0NjA4MDA2Y2ZhYzM3Y2M5MDg0OWExMmFlNWU4NDlmZTI0YjYxZSBsZWdhY3ktdHJ1bmsKKzc0MjAxIDZjN2I0YjQ3MDgyNzc1YWI3YmQ3NmU0OWMxNDEzZjRjNzBjMzk4NTcgbGVnYWN5LXRydW5rCis3NDIwMiA0YjEyMTZmNGZjYjViMGMyMjExMDYwNzg4YmFlOWUxYTk0ZDcwMWExIHB5M2sKKzc0MjAzIDBmNTdiMzBhMTUyZjQ2MTkxZGE2YzI4ZjllYjY2MzFkZWY3N2Y4MGQgcmVsZWFzZTI2LW1haW50Cis3NDIwNCA1MTEyYTU2ZGY5NzdhMWMxZjlmOTg0NDBiMzI1OTU4ZGJjYjRkY2MzIHJlbGVhc2UzMS1tYWludAorNzQyMDUgNzI0YTEwMTFlODk3YTdiOWYzMmFlMjdkNDEwMWE4OTc4ZTVkMzE2MiBsZWdhY3ktdHJ1bmsKKzc0MjA2IDBiODkzYzZlYWQ0YzczNmZlOWQ4YzI4NzJiYzYzOWJmMDEyY2RiMDMgcmVsZWFzZTMxLW1haW50Cis3NDIwNyAxYmRlODQ1NTIyMmMzNDg5YTZmM2IyOGE0YWQ5N2ZhOGNmMDM1ZjQyIGxlZ2FjeS10cnVuaworNzQyMDggYTU1NjM0Y2U4MTE4MzhkZTgwY2VmNDExYWMwODY4YmU5NGU4MTMwMiByZWxlYXNlMzAtbWFpbnQKKzc0MjA5IGJiZDFkOTBkMTU4YWJkZGQ1NTE5MDNhZTc0NzhhNTdjOWY3YTg0YjIgbGVnYWN5LXRydW5rCis3NDIxMCA0MmRiMWNmMzlhZmRiYWM1MGMyODUxYzUyNTNiYTIyN2MyM2QyMzQ3IGxlZ2FjeS10cnVuaworNzQyMTEgNjc4OWQ4NDA2MjFmNGQwZGNjNmU1NTRkOTk2Y2VlOWQxZDc1OGJkOSBweTNrCis3NDIxMiAyZjhhMzYyZTM3M2Q5NTBjYzliODBlZjA0NWY1MGFkYzFlMWYxZjUwIHB5M2sKKzc0MjEzIDE1YjYxZjMyN2Q1MDk1ZGJhOGI1Y2IyZGJlMGMxNWNmOTJmM2U0OGQgcHkzaworNzQyMTQgOWJmMjA2ODU3ZDdlNzljZTJkOWY1MGIxMjEwZDIzNTUyNzgxMjQzMCBweTNrCis3NDIxNSBjMTA3NzNiYmFmYTAzNTkzZTZiNjAyZDU1ZTFiNTFlYzRjYzA2OTA5IHJlbGVhc2UyNi1tYWludAorNzQyMTYgYjcxZWViOTA3MDkzN2I1NjJmMjcyMzNlZWQ1M2U4MDY1NjI0ODk5ZSBsZWdhY3ktdHJ1bmsKKzc0MjE3IDBmMDE2M2Y4YzViNTZjZmQyZmZmNWE5ZjliYzgzNzRlMmUzNjViOTkgcHkzaworNzQyMTggODllYmU0MzI0NGFlYmY2YmMzY2JmMWU3NzMxNTc1MmFmYzBiN2FmYiByZWxlYXNlMjYtbWFpbnQKKzc0MjE5IDBkMjAzY2EzYWM3OGVkZjA0NTllY2I0Y2I1NTIyOTBiZmI3ODk1OTkgbGVnYWN5LXRydW5rCis3NDIyMCBhOWI1MDdlY2RhNGM5ZDI3MmIzMzM4NzE4Y2YzNjIxZGNlNGZhNGQwIHJlbGVhc2UyNi1tYWludAorNzQyMjEgOGMyMWZmZmIwNmM0NjE0YWNhYmI3OTExZTdhNjBkNGQ5NzllYWQ3OSBweTNrCis3NDIyMiBmYzQ2OWFmNmViNzAyNmJlOGRhYzhjN2EyY2MxOTI1NDM2Y2NmYzIyIHB5M2sKKzc0MjIzIDA2Yjg2YTZlMjhmMWExNDM1N2VkNDc1OGE3MWNkZTQxYWQzYmU5MDkgcmVsZWFzZTMxLW1haW50Cis3NDIyNCA3NGRjN2JiNGY0NjQzYjNkNmZlODAyMjdhNTlhZjJmNjliMjJkY2JjIHB5M2sKKzc0MjI1IDYwN2NkMTE5ZmU0Yjk3OGEzZDlmNTFmNTI4N2UzMjAxNDUyOGJjYTcgbGVnYWN5LXRydW5rCis3NDIyNiAxMzI2ZWY4NmYzZTQwZDMyNmY2Y2NmNWUyZjI3N2NjNWFmZDliNGY5IHB5M2sKKzc0MjI3IGIzNGNhZTc4NmNiMDNlNDY3MjQyYmY1NDhjZWJmZGM0NjBlYjc1YzEgcmVsZWFzZTMxLW1haW50Cis3NDIyOCBjODUzYTNkMmExOWQzNTkyZGYyMjkxMDIzYzk5MTlmY2FhOGZlODBjIGxlZ2FjeS10cnVuaworNzQyMjkgNzIxMmUzZTBjZDE3NTA3MDc1MjI0ZmYwMDViNjkyNzNiMzVmYjliYSByZWxlYXNlMjYtbWFpbnQKKzc0MjMwIDBmOGI1NmVmMGY3ZjRkZTE5NzBlYjRkMDg3ODhhMWEyM2RkZGE4ZjEgbGVnYWN5LXRydW5rCis3NDIzMSA3ZmQ5YWRjODEyODAwYzEzNWRmMGQyNmI0NTMzY2E4ODdhNDc1MTM2IHJlbGVhc2UyNi1tYWludAorNzQyMzIgNDQzMTgyMTBiMDNjNzBhYmVkMmVkNzY1MTE2NzhmMzg5NGI2NTI1YSBweTNrCis3NDIzMyAwMWY4NDhlYTExMGFlM2Q1OTBjNGIyZjMwZmFmZmQzMWY5MzVlMGViIHJlbGVhc2UzMS1tYWludAorNzQyMzQgZGE5OGNiZWJkYWNiYTI5ZDA2NjQ4ZTliM2E3YWY0M2Y1YjViNTE4NSBsZWdhY3ktdHJ1bmsKKzc0MjM1IGJiMGI3ZDBlNTUwZDgwYTg3OTgyNzZkZGNkZjA5ZTFiNDE1NWUzYWUgcmVsZWFzZTI2LW1haW50Cis3NDIzNiAwN2RiZGYwM2U4ZjUwMzA3Mjk4YTJmMTUxMGNhMmM3NzFkZWMwYjllIHB5M2sKKzc0MjM3IDNkNDUzNjdjYzYyYWE3ZmZiOTkyMmE0NjkwYjUyYWRhMzY2OGFhMTMgcHkzaworNzQyMzggYWRmNDg0ZGY2Nzk0OGU0OGIxNjI1NmJlMWVkN2U3ZDQxOGYwYWU1NyByZWxlYXNlMzEtbWFpbnQKKzc0MjM5IGFhOWZmNDdiZDFjOGVlNTY1NDliMTVlN2FlYjhmNTBhOWZiOWZkMTIgbGVnYWN5LXRydW5rCis3NDI0MCA1NmIyZGE5M2FkOWM4MjMyZGU1YWEwYjk1ZWIzMmYyNzFlMzkwNTg1IGxlZ2FjeS10cnVuaworNzQyNDEgODlhZDIwYTMyYTI2MDMxMDc4NjM1ZWI2N2RmMGE0NzNkMWY0M2Q0NSByZWxlYXNlMjYtbWFpbnQKKzc0MjQyIGJjZDM5ZWZmZDMxZTM3ODZmZGI2YjM2NTg3ZWEyMWZhMjAyYjk2YzEgcHkzaworNzQyNDMgODg5OGYyOGU2ZDJjMWE5NTRhNjVhNmIwZjA0NDRhNzZhMWM5NTVmNCBsZWdhY3ktdHJ1bmsKKzc0MjQ0IDU3MmMxODdkZjYxMmUyNzZhMjczZjY3Yzk1Zjg4MDNmZGEzMGQyOWIgcHkzaworNzQyNDUgMWRmZDZmNDA3MzM2Y2EwMjczM2FlNDUyOTIyOGI5M2FkYWZiMGM4ZCBsZWdhY3ktdHJ1bmsKKzc0MjQ2IDVlMDU4ODkwOTZjZDA4MGU3MTIyMDIzNmZmMzU3MDg4YTFjMGNhZTUgcHkzaworNzQyNDcgOGEwMTdkM2NiOTI4YWU3MmVhMDEwYjkzYTY0MjkwOGE0MTlmMzdlMCBweTNrCis3NDI0OCA5ZmZmZDNlZGI2Njg5ZmRhZDI1NTQ0Mjc5MmJmYjBjOGZiZDI1MDE0IHJlbGVhc2UyNi1tYWludAorNzQyNDkgYTVkMDI1YWQyMWM4ZWExNGZhZDM4MGFkMDJiOTMyZTMyMjlhZThlNCBweTNrCis3NDI1MCBmMzU3ZTI2MDNkOTNiZWIxNWZhY2M1N2EzZjdmY2JmYjQ0NGQzY2I4IHJlbGVhc2UzMS1tYWludAorNzQyNTEgNjBiMzFmMGRiMDE2Mzg0NmFlMmEyYTZmNjc5ZTU2YWIyOTJlZTRiNiByZWxlYXNlMzEtbWFpbnQKKzc0MjUyIGVlMjU0NTllOWI5MWZhY2FjNDc2ZDQ3ZDFiNmNiMjY1YzEyZDQyYmYgbGVnYWN5LXRydW5rCis3NDI1MyAzZWQxNTkzZGQxNzQ3MjAyNzZiYTcxMjU4YzEwM2JjYzU1ZDZkMTJmIGxlZ2FjeS10cnVuaworNzQyNTQgMTU2ODNjMGVhZjI4NjMyZDYyN2VhMGE1MjBiZmY2MWVhOGI3ODI4YSBweTNrCis3NDI1NSA2NGFmNDE2MGNmMWViOWY5M2RkYWM4NzY3M2NhMDA0NWVlYmU4MTE2IHJlbGVhc2UzMC1tYWludAorNzQyNTYgZmExNGY4MTMyMmNlMDcxODc4ZjNkNmNkMjViNjAwNDMzZjBjN2U1NiBsZWdhY3ktdHJ1bmsKKzc0MjU3IDFkZjI4MWM5ZTE4MjFmYzljNTBkZWM4N2Y4ZjFjNzM5YTc3ODVlZGYgcHkzaworNzQyNTggMTM3NTk5YWNiOGJhYTMxODAwNzYyYzdmZDUxZmM3YzQwYmNjNDNmMyBsZWdhY3ktdHJ1bmsKKzc0MjU5IDkzODgzZjM3ODdiNTc5Yjk3ODExNDIxODIwYjgzOWJjOTI4YjVmZWIgbGVnYWN5LXRydW5rCis3NDI2MCA0ZmU1ODAxYmY3MTIxN2JhNDc2ODg0MTZlMjFmODg4ZGNiNzFhM2EzIGxlZ2FjeS10cnVuaworNzQyNjEgNWJlNGMwOWU0YTY2NjI4ZTQ5OGNhM2E1MzhkZDZlYTE3N2E2OTA1MyBsZWdhY3ktdHJ1bmsKKzc0MjYyIDdhYTBkNmZhNjM1OWYxNzhhMzRmNjEzZjdkMzQyNTU3ZjdhNzc2ZDMgcHkzaworNzQyNjMgZDI5ZDFkOGUyY2Q2MzY5ZjEyMTRjYjYwNmYxZjYyZmYzZGFhNjE5ZSBweTNrCis3NDI2NCAzZTBjZTk0YzJlMWUwZjEwNDE3OTQwZGZlM2M4YTEyM2Q1Yjc1ODM3IHB5M2sKKzc0MjY1IGJkMDNkNmQyZWZiMDk1MGRjMzc3NzlhYzM3NmE5ZGQzNDMxYTc3MTcgbGVnYWN5LXRydW5rCis3NDI2NiA0ZDQ0ZjJhMzhlNTFlZjIwODIxNDg3ZmY4MTc5NzE0NTZmYzdkOWRjIHJlbGVhc2UyNi1tYWludAorNzQyNjcgMDUzNTc0MWI1N2JiMjBiNmQ2NDc1YjNkZGQ1Y2UyOGZmYTM4OGRkYiBweTNrCis3NDI2OCA2NTA1MGU4MjZhOTZkYjU2MDVlZDdkYjMyYjM0MDYwN2IxOGMyZjVlIHJlbGVhc2UzMS1tYWludAorNzQyNjkgMTZmYTU3MDYyOWUzZjQ0Y2NjYjc5MGQyZjA3M2NiZGNjNGVhNDk4YSBsZWdhY3ktdHJ1bmsKKzc0MjcwIDE5NjExYTI5YzhkZTdlODExMjEwMjc0NGMxNGYzN2JkYjFjYTYzMmQgcmVsZWFzZTI2LW1haW50Cis3NDI3MSA1NWUwMmZhN2ExMWMwZWE5OWEwNGRkNjAzYTM3NDYxNTY3MjFkZWRiIHB5M2sKKzc0MjcyIDA0MTIxNjE1OTU1YTI4YzA1MzZkZThjZDQ3MGIyZTdlZDdlOTQxYmUgcmVsZWFzZTMxLW1haW50Cis3NDI3MyAyYzdlMDc2YjRjYTlkODI4ZTNhMzE1N2U1YWZjYzVmYTNkMTY0YzQ5IHJlbGVhc2UyNi1tYWludAorNzQyNzcgM2FmM2ZiMTY4NjM4M2FmMWVhZjE0YjRmMTYwMWYwOTZkZTY4YTE2MCBsZWdhY3ktdHJ1bmsKKzc0Mjc4IDgzYjQ2YTU5ODhiMGViNTEwZGU0MjM4ODk3ZDQ5OGU3NzFlMTY4MTMgcHkzaworNzQyNzkgNzQ2YTgxOGJkZDM1MmI2YTk0ODU5MzMyNTc1YTEwZTJiNDE2YjRhMSBweTNrCis3NDI4MCA4ODI1NWNiNDUzNGRhZDVlNGU2NWJlMjk4OTgwOGRlMDQwMTlmNDcyIHJlbGVhc2UzMS1tYWludAorNzQyODEgN2MyM2YwYmNjYTg1Y2VjNTgzMDE2MTQyOWZkZmJjNWEzNWJhZDNjNSBsZWdhY3ktdHJ1bmsKKzc0MjgyIDhiNDhiMjgyZWJhOTM5NjBjMDRjYmM0YTVlZGY2MDI0ZWExZTc5YTYgcmVsZWFzZTI2LW1haW50Cis3NDI4MyA0YWUwNGUwZjY4NTAzOGU0ZDY5ZGQ5NmMyZjYxOTczODkxYWUzMWZjIHB5M2sKKzc0Mjg0IDc5Nzg5ZTg5ZmY3ODQ4NWEzZmQ3YzVmOGE2MGFjNjYzZmExOWRlZjggcmVsZWFzZTMxLW1haW50Cis3NDI4NSBkMjUzNzMyNjY3Mjk3NjM3NjhjMjUyZGE5OTE3YzNhZjJkOTA1NjM3IGxlZ2FjeS10cnVuaworNzQyODYgZjQyZTA3YWIzMjZlYzVhZDg5NjliZjU0N2M5ODc5NTRmN2Y5NWJlNSByZWxlYXNlMjYtbWFpbnQKKzc0Mjg3IDQ2ZjliZTI1MDkxMmY2MTM1ZDBlMDc0OGIwOTk4N2UzMGY2MTMxODEgcHkzaworNzQyODggY2ZiZWZkY2MyNmRiMmY1MmYyOTg3MGQwNmM5YTMwMGYyZGYwYTJjNiByZWxlYXNlMzEtbWFpbnQKKzc0Mjg5IGUxYWM1NGJiMDhlZDI5YzI5MzM1MWVlNTY1ZGUwZmUzZTA5ODQxZDcgcHkzaworNzQyOTAgMDhlY2E2ZThiMGJlZmJiMWM4ZGQzOTAwMzRjNDBmYmRmMjU2M2M0NSByZWxlYXNlMzEtbWFpbnQKKzc0MjkxIDQ2ZTQ2YTBlNjIyZTYwMmYwZTI5NGNlNWY1NmE1NWI0MmJhNGM3YjEgbGVnYWN5LXRydW5rCis3NDI5MiAwMDI5NDZiNTJmYzNlN2U3NjMyNDA2NmQ2NTUwZmRlYjQwNGJkMmYxIHJlbGVhc2UyNi1tYWludAorNzQyOTMgZDk5Y2FkZjBlNWYwYzk2MTQ3MjkxMjAzZjkwZWE0NDdjODZiM2JkNyBweTNrCis3NDI5NCBjZmE3ZTk0M2ZmYzNmZjAxOTRmNDc5ZGUzMGUwYTcxNjE3ZGFkYTYzIHJlbGVhc2UzMS1tYWludAorNzQyOTcgNTAyY2UyOGZlYmFhYjc0Y2QyNjQ1NWE5ZGEyNTVjNmUxYjQ0MjUwMiBweTNrCis3NDI5OCBmYTZmZDFlZDczNzg4M2E5N2MyYjg2ZTVmNGMwYWUzNDY2MWI1YTM5IHJlbGVhc2UzMS1tYWludAorNzQyOTkgZGQ0ZGE3NWViYzk3MTVkYjkzMzkyM2NmNTg3OTRmY2U1ZWZiZWU5MCByZWxlYXNlMjYtbWFpbnQKKzc0MzAwIDI3MWQzODJkY2FiZGZmYzJlZWYyNGMzYjVmYzlmZTVhOTgwYTU1ZDcgbGVnYWN5LXRydW5rCis3NDMwMSA2NThkZTg0MzgxZDdmMzdjNGYyZTdkYTU2ZTFjZDAyYzQzYzdmZDZkIHJlbGVhc2UzMS1tYWludAorNzQzMDIgNTM0NWUzYmM5ZTQxNjJiZmY1ZGQ4YTUyMDg1ZDNjZTExYTQwN2ZhNiBweTNrCis3NDMwMyBhMGUxZDYyN2I3MTgzNTU1MGRiNDIyODUzOWY5NjIwYzAxODJmMGU5IGxlZ2FjeS10cnVuaworNzQzMDQgMzQyNzdkYTM4ZTM4OGI3OWQ4ODQxN2IxYjg5N2MxZjVmYmRkZjU5MSByZWxlYXNlMjYtbWFpbnQKKzc0MzA1IGNkOWZhODFlYTQ4MDEzODk5MTgwYzlkZGFiMWNiNmM4YWFhNGMzMjYgcHkzaworNzQzMDYgODg0OGM0OWVkNWY1Nzc0NzQ4OWE0MGU0M2YzZTAxMjQ3ZTRjMmUyNiByZWxlYXNlMzEtbWFpbnQKKzc0MzA3IDJmYWU4MDk0NTBjZDExZjcxMGE2ZjdhNWUxZGQ5NjJhNWVmMjVkNGEgbGVnYWN5LXRydW5rCis3NDMwOCA2YTA1ZWM0OTNjZTllM2YxOGM2OWVkYzIzMDRjNzM1MjViOTY1YjVhIHJlbGVhc2UyNi1tYWludAorNzQzMDkgZTgwMjViODVhYjE4MjdjNjUwMzRjOWZjZjU4YTRiNzRmYmY2OThlNSBweTNrCis3NDMxMCAzZmYxNzI1ZjgzN2VhZTE2NmUwZDljNDdjMzQyNWEyNmRiZTMzMDU4IHJlbGVhc2UzMS1tYWludAorNzQzMTEgNWRlMTljNTAxMWNhOTM2NzQxMDkzNjY1ODlmNzhiYTc5ZWFkMjQxMCBweTNrCis3NDMxMiA1ZDg3NWZhZGY2M2Y1MzU4YzczYzY5YTljNTNkNmViODkyNjMxMzFkIGxlZ2FjeS10cnVuaworNzQzMTMgYjE3NzUxODdhYTMwZTczNzJlMTgzNzQ2NzljYTQwYjhhOTE2Y2FkMyBweTNrCis3NDMxNCAwODM4NmM3OWUzNGYwZmNkYzI3NDM5Y2JlMzE5ZDBjMzM4YjRjNzg0IHJlbGVhc2UyNi1tYWludAorNzQzMTUgZWIyMjQ0MjE5NDE5OTkyNWVlN2Y2MDZlMzk5NGM4M2RlOThiNTZhMSByZWxlYXNlMzEtbWFpbnQKKzc0MzE2IDlhNDNmYWM4NzYwYzJmOTNmOTcyYzAzNGM0ZTEwZDk0MTg2ZTJkYTMgcHkzaworNzQzMTcgYzhmNGMxMzJkNmRiMDRlOWE0M2U4MTc0Yzk1YzM3N2RlODkxOWY1NyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQzMTggNjQyNDg1ZGJmZmJhYTEwMzBmM2IxOTk4YmM4YzYwZjdjMDY3MWZiZiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQzMTkgYmQxYmNjZDhlMzQ0YjlmZGQ0M2NlMTM2NmE1NjJkMDgyNjNiZGE3MyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQzMjAgYmE4MDJjMGI1MzhhNzk2OTIzNzY2YjNlYWE4OTNhNmRjMTI4ODY0YyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQzMjEgZmNlYTdiYTRiMDM0ZGNiMjQ0MDgxNGVmYjliOGQwYmY4Y2I4MWJlMyBsZWdhY3ktdHJ1bmsKKzc0MzIyIDc1OTQyYmM3NGY3MTIzMTMzMmZjZTZiNmYyMzJlNTI0NGVmNTcwMDAgdGtfYW5kX2lkbGVfbWFpbnRlbmFuY2UKKzc0MzIzIDBjNGVlNjJkZjBlMTkwYmU2ZTBmMjhlYzE4NTMwYTkxZDkzNzE1OWYgbGVnYWN5LXRydW5rCis3NDMyNCAxOTJlMzQ0NGI4ODhmYTQ1MzFmNGYwODllOTMxYTE4NDNlN2NkOTlhIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDMyNSBlNTczM2Q1OGZkYjE1YTc4MDRhYzY5YTRlMTE5YTlhMWU0Mzc1NmE5IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDMyNiA1YTEzMGI3NTg1YjFjZTVjNTE1MjUxZDM4NmJlZmU1MDcwMTQ3NWJjIGxlZ2FjeS10cnVuaworNzQzMjcgNjVkMTY4MmRjZDVlMGU1OGIwZGFiMmMxNTFmMzlhNGJhNGQzNDNkNyByZWxlYXNlMjYtbWFpbnQKKzc0MzI4IDFiZTNkNDI3YWNhMjQ0NjZhMGJiMTBhYmNmNTJjNTllZGFjMmVkNDUgbGVnYWN5LXRydW5rCis3NDMyOSAwNmNlOWQ4NDY4YzJmMDY2OWU5ZTZiMGIxODRmODUxYWM2NWRlMzVjIHJlbGVhc2UyNi1tYWludAorNzQzMzAgN2YzZjZiNTVlNDdhMjhjN2ZjZTRkZjE1OWY5ODU2Y2IyMGU0YThhMiBweTNrCis3NDMzMSA5ZmRmMTgyZjE5YTkxM2QxMzkzNThiN2IyYmZjYmYxNzRlOWJiNmRiIHJlbGVhc2UzMS1tYWludAorNzQzMzIgOTNhOTZkNmRmZmI1ZTkzMmRhZTBjNTUwNmIwOWQ4ODcwOTNjNTY0ZiBsZWdhY3ktdHJ1bmsKKzc0MzMzIDdiNjZjZDAyZDYwYmE4MDFhNTA5ODc4YmZkYzI0YjY1N2U0NjE2NGUgbGVnYWN5LXRydW5rCis3NDMzNCAzMTU5NzI2ZDBlNjU5Y2M2ODViY2Y4ZmVhZjkyZGY0ZWIyYjkyOGYzIHB5M2sKKzc0MzM1IDRmMjA0ZWI3NmUwN2EyNmE2NjdmOTMwMmNkNDNmNGJlMDMzMDQwYTUgcHkzaworNzQzMzYgMmY2NDFlMzM3YzlmOTZhOTI5ZDQzYjg1NTk0NDJmZWYxZDRlOGEyMyBsZWdhY3ktdHJ1bmsKKzc0MzM3IDAwZmQ2Mjk3ZWJlN2IwZGY4ZTFhMDhiNmZiOTA4YjY3MmY1MmZjOTAgcmVsZWFzZTI2LW1haW50Cis3NDMzOCBmMTM2MDJhODRkYWFhZmQ2ZjJjMjE4MDY0MDc1OGUzZDUxZTU1NWI0IHB5M2sKKzc0MzM5IDMwODg3OWVjOTAyMzRkZTM1YzVjYmYwMTA4NGEwMDg0OTg1ODUxMDEgcmVsZWFzZTMxLW1haW50Cis3NDM0MCAxOWU3Yzk5NmU2N2FlYmU0ODNmYzQyMTZlNTQ1OThmYTk0YTQ3MjM3IHB5M2sKKzc0MzQxIGVmYTg4MTFiMjUwYTNjNjU5ZjVhYTU2MGQ5M2M0YTU3M2EyZjQ4MjAgcmVsZWFzZTMxLW1haW50Cis3NDM0OCA4NWMwZDhkODNjYmZmYjYyYWI4Mzg2MjUyMDI5YjZlOTkwMzQ1MmY5IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM0OSBiMDAyZTkyYTM2Zjc3NDY4ZjhmNjY4YmUxMGNmMDNlNTRhMDBlZWU4IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM1MCA0MTJhODVjZTU4NDRhZDhkNmU5MDJiN2MwYTIyYjE2MTgwZTZjNTBlIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM1MSA5NGQ4YzM0MWZiNDJmMjI0MGVjOTEyNjBjZWE4NWE4NzNhOThkNDYyIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM1MiBjZDIwYTllZDg0ZTVhM2JmMTBkZmI0NjgyMjEyYzQzMDg3NTM1ZmU3IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM1MyAxMTI4NmI0NTNmY2ZmYjM5NTU3MzQyMTNjYTQxOGE2YjNkOWIwMjE3IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM1NCBlNGE2NzQ0Y2U0YTlkN2FmOTU3MzY2MDcwNTcxODUxMDU4MDYwYjI3IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM1NSBjYTZlOTA0NzBkOTZmZDNhY2MyNmYyNWVkMTg1ZDBhYzEzMzRkMWFhIGxlZ2FjeS10cnVuaworNzQzNTYgMzYxYTAzYWQzYzM3M2JjNWM3NTdmNmZlYzIxZjkyZjFlYTVkMjU1NSBweTNrCis3NDM1NyBiYmVhOTgxNDhlMTI2NjEwNDUxZTEzYjU0NGE2NGJiOTQ0M2Y0M2IzIHB5M2sKKzc0MzU4IDVjOGIyMjM4YTJmNTI0YzhkNzQ0NzE1MTVlMWUyZGIzOGMwMDY3ZDMgcmVsZWFzZTMxLW1haW50Cis3NDM2MCBlNWFlYmQwMzhmMGMyYWQyNWU1ZDZkMTU5MGQ2ZGE4Mzg2MGMzMzJiIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM2MSAyYzY0ZTliZmIxYjY2NjVlNmJlYmY0YWI0MjZmNDE4NDVlMjVjZGQyIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM2MiBiMDEzYjNjOGM5YzdmNWQ5ZWUzMGY1YjdhZDFmYjcyZjE4YWRmNzNiIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM2MyBjMTllNzkwZDk0MmY3OTA5ZDY2YWNiYThlMjk2MDY3YzMyY2UwMDkwIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM2NCAwMDI1ZTA3MmZlOTdhZDc5MmI3ZTVkYzFkNzFjYTZlM2QwYmY3ZDAxIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDM2NSAxMjNjOTVmZTA0YjYwODMwNTNkNjE4NmI0YTM1ODliM2U1NGU3MGJhIGxlZ2FjeS10cnVuaworNzQzNjYgZWY1NjUzNWY1MzU2MTgwOGU1MzE4MWU0M2Q3OWM3MDBkZTE5MmZjMiBweTNrCis3NDM2NyA0YTFhYjJkNzAzODU5YTRiOGM5ODA4MjVkNDUxMjIzOTBhNWJkMDkxIHJlbGVhc2UzMS1tYWludAorNzQzNjggOTg0OTg1ZWEyNGM0ZGNlMjk0OTZkNDQ5Mzg4MDE4NWU4NjhhYjU5MiBweTNrCis3NDM2OSA0YTliODU5MTY0OWZiZDZlNDQ0MWVlZGNiMGI2OGMyYjRhYzQ2MTc1IHJlbGVhc2UzMS1tYWludAorNzQzNzAgZTAwYjUwYTNkNDk5ZDVlMWQ0YTA0ZDAzYjBjNTIzOTA4M2RmZmEyZiByZWxlYXNlMzEtbWFpbnQKKzc0MzcxIDdiNDk1YzhmMmEyNDBlYTgwNzUwNGM1OGRjZGUxNzI4ODM0MTgxZTUgcmVsZWFzZTMxLW1haW50Cis3NDM3MiAxYWNkMDI3N2QyMjUzMGU1YzEyYjk5OTI1ZWZkMDlhNGNkN2YyOGI2IHJlbGVhc2UzMS1tYWludAorNzQzNzMgYTQ5MmIyYmM5NTFiNDM0ZTU3NTk5MTg5MzFlOGVjNjc4NzI1ODA4MCByZWxlYXNlMzEtbWFpbnQKKzc0Mzc0IDUwOTVhNTI3NmQ4YzI2NjcwY2IxMGUzNjU3YTg0ZWZlMjAyNGFhMzcgcmVsZWFzZTMxLW1haW50Cis3NDM3NSA1ZmJhYzA5YzBlOTFkYjJmYWI2NDRjOWUwZWI4NTdhYWRiODNmNWMzIHJlbGVhc2UzMS1tYWludAorNzQzNzYgNThjMTBjZjA0NjE2N2UxMDAxYWE1ZThlMDNjZDA4MTk3ZDkzMmViYyByZWxlYXNlMzEtbWFpbnQKKzc0Mzc3IGRhZDBhNTRmNWE1ODNlYjkzZDkzNGEzZDg2M2NlMGZkOWNiNGU0MGYgcmVsZWFzZTMxLW1haW50Cis3NDM3OCA1OWI2Yjg1NTdhMzMyOWYwYzYyMjBiNWZlOWUyZmZjMmJlMzBhZGYxIHJlbGVhc2UzMS1tYWludAorNzQzNzkgMTdlNzE0ODUyODdmNzFmMTZiMGU1MjQ1YTY1MDE5YWVhY2Q0NDVmOSByZWxlYXNlMzEtbWFpbnQKKzc0MzgwIDU0NmFhMTM0ZDc3MzdhMzA3MWVjNGFhYjU2ZmI1MTM5YjI2YjUyM2QgcmVsZWFzZTMxLW1haW50Cis3NDM4MSA3NzBhOTNjN2FiZmY3N2E3NzQwNDczZDhiYjQyZTUwZmViM2JiZDMwIHJlbGVhc2UzMS1tYWludAorNzQzODIgYzRkNmI3N2MzNDY4MTU0ZjZjZjE0NjkwMTU5OGNmMzdmMTczYzI4MiByZWxlYXNlMzEtbWFpbnQKKzc0MzgzIDEwOTQwYmNlZGM5OWU0Nzg1NWYzY2IzZTU5M2U2OTQxZDllYjVhNmEgcmVsZWFzZTMxLW1haW50Cis3NDM4NCAwYmIyMzIwNzhiOGNiODE1ZjA5ODM5MGMxYzExNzQ1OWQ3ODI2NzYxIHJlbGVhc2UzMS1tYWludAorNzQzODUgZDdmM2NkZjJiMDdmNzg5YTFhY2E2N2RiNjUzYmE5Y2NmODU0NmMwMCByZWxlYXNlMzEtbWFpbnQKKzc0Mzg2IDBmN2E2ZWIxODIyMzE3NGQ2NDY2NDNiNTZiOGIxNjY4MjlkOTE5NTIgcmVsZWFzZTMxLW1haW50Cis3NDM4NyA3ZWU3ZmRjZWEwZDcxNmZhOWFiZjNkMTg5NTVjNTFjYTgxNGJlMDE1IHJlbGVhc2UzMS1tYWludAorNzQzODggZWZlODA4YTVmNTllODg5N2I1NTYzOWI4ODVlZGFlODlmOTk4MzNhZSByZWxlYXNlMzEtbWFpbnQKKzc0Mzg5IDc0M2ZhMjgyZDc0ODEzODQ5OTAwNDQ4ZmFmMDZjZTdkM2Y3YTI0NWIgcmVsZWFzZTMxLW1haW50Cis3NDM5MCBjZTY2NDIyMThmZmVjMWE4Y2M2OTE0YzMwM2U2N2Q0NzQ5YTc5NjM1IHJlbGVhc2UzMS1tYWludAorNzQzOTEgMzRlYTU4OGFjM2M1ODgzY2E2MTNmNDYzZmY5NWViZjFmZTg4Y2YxYSByZWxlYXNlMzEtbWFpbnQKKzc0MzkyIDk0YzI4YmE2NTZiZTA3ZDQzZTNhMDZkM2M0MzhlNTAzOGQ1YjZhNzQgcmVsZWFzZTMxLW1haW50Cis3NDM5MyA2ODBhZDhlZWQzM2IyN2Q5MGExNjM0MjJlYzc0MzMwNjU4ZDYyMTM4IHJlbGVhc2UzMS1tYWludAorNzQzOTQgMTJmZWM3M2NiOGU1M2Q5NjA5MWEzYzM0YmRmYjEyMWFmYjQ4ZjE3MSByZWxlYXNlMzEtbWFpbnQKKzc0Mzk1IDZlMmJhMjM3NjgzM2I2YmYxYzg1YmZhNmQ0N2NiYWVkZDQzODQ4MzIgcmVsZWFzZTMxLW1haW50Cis3NDM5NiA3ZTUxNDE3MDQ2YWI4NzEwYjgwMGYyYzFiN2M5ZjMyMDZlZDkzZmY1IHJlbGVhc2UzMS1tYWludAorNzQzOTcgZmY2ZWVhMDE3YTdmNDY0MTg0MmIxZmYyODllNWVlOTMyNjY1NWFjMCByZWxlYXNlMzEtbWFpbnQKKzc0Mzk4IDU0MTRmZjczODllZTk4MWVkNzJlODA0ODMxNjViYjRlMGMzZmQ1Y2MgcHkzaworNzQzOTkgODdmZGYyNzk1YTdjZDQ0MzY4NDNhZTFkZDQwNzMyNjRjMDNhYjI1MSByZWxlYXNlMzEtbWFpbnQKKzc0NDAwIDlkNDA1ODZhNmFmY2RlMDFlZmNmYjZmYTk1NjM0Y2MwMGRhY2NlZjUgcmVsZWFzZTMxLW1haW50Cis3NDQwMSBmNzI0MzE5OWQwYjFjY2IxMmRlYWY2NThkNWRlMWIxNWNmMzc5MjIyIHJlbGVhc2UzMS1tYWludAorNzQ0MDIgNGQzOGU1MWU3Y2RjOWE5Nzk0M2Y2Nzg1M2ZjMjllMTEwZDE5M2I3ZCByZWxlYXNlMzEtbWFpbnQKKzc0NDAzIDAwNTBiNTcxMWZhYTZiN2I4ZWJhZWVlYzdkNzYxZGY1ZDNjYTQ4MmQgcHkzaworNzQ0MDQgZTA1MzIyZWZjYTg1N2E5ZjUxYzBhNGM1ODFlNmEwYzI4ZmRiNjMzOCBsZWdhY3ktdHJ1bmsKKzc0NDA1IGJlMzQ1MzFjNmQwYjc0OWY4NTk5Zjg1ZWQwMzRkZThlY2QwYTMyOTQgcHkzaworNzQ0MDYgNTZlOGMyMmRmNzFmMzE2Njk3NjVkMjJjNDM5MmQwZWRlYzY4ZTY2NiByZWxlYXNlMzEtbWFpbnQKKzc0NDA3IDkxZTQwZWI0MTk1NmEwNDVkMTAyMTI3MWZlNWNmMjRmNTIxN2QxN2YgcmVsZWFzZTMxLW1haW50Cis3NDQwOCBhMjY3YzYwNDQ2NWYzNzRkNjM4OTRiOTU3ODUxOTM2NGI0MjJjNThlIHJlbGVhc2UzMS1tYWludAorNzQ0MDkgMDE0ODQxN2UxMzAxZDg5M2Q4ZDQ1MTNlNTE3MGMyZTMyOTRkOWRiZCByZWxlYXNlMzEtbWFpbnQKKzc0NDEwIGJlMzQzYWY0OTA5OTk1MzU1MjI1MDZlYzNkNDNlNDJmOWJkZTk2MTMgcmVsZWFzZTMxLW1haW50Cis3NDQxMSBhZjExMGE0OGQxNTQ3ZmFhNmU0ZGUyNTBlNWE2ODE5ZGE2ODcwNGJlIGxlZ2FjeS10cnVuaworNzQ0MTIgNzg1ZWMzNDQ3NmJhZmE1ODU2NmU3NzY3NDNlOGE5OWZmMTQ3ODdhYyBweTNrCis3NDQxMyBlM2Q1MTMxOWI5ZDBlYzgzN2NjMTM3NmRjNTcxOTgwZmNkNzRhNjgwIHJlbGVhc2UzMS1tYWludAorNzQ0MTQgMTIyNGFhM2ZiNmEwZDQ2NzY4MWFjYjBhYjdkZDcwZGY3M2NkMjNiNiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0MTUgN2M4ZjQ4MTE2MGMyMmUwNzEyYjVlY2EzMWZlOGYxOTgwZGM1YjU1ZCB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0MTcgZjJhMTJmNTI1OWU3ZWRkMjIzYzc1MGUwNWVmNTYxNjJkNmE1MzQ1ZSByZWxlYXNlMzEtbWFpbnQKKzc0NDE4IGY4ZGI0OTNkZDg0ZmI4MzBkOWFjYjQwY2IzNDRhZTYwZmYyOWUzYjkgcmVsZWFzZTMxLW1haW50Cis3NDQyMCBmYWY4YTEwMDk5MGQ2NmNkNTEwMWQ0ODdiYmY5YWU4MDdkMDJlMjNiIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQyMSAzYTM1ZTMzYjA3MWJkNGVkMjc2YTFhMGQ5ZDAwNTYwMmYzYTJiNDFkIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQyMiA5YmM5NTg4ZWI2NGMxOTEwNjgyM2FmYTVmN2YyNjY5YWJjYWM1YjhiIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQyMyAzODFjNmY5Yjc0YWVhZTZjYzNmYTVkZmFhOWI2OGMwOTNjZWU0NWYwIHJlbGVhc2UzMS1tYWludAorNzQ0MjQgNDk2MjkxMDM3NTgyMDk2NjJlYjM5NjM3ODRjMWNjMDQ1NWVmODE4NCB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0MjUgZmI1ODU3ZjkwM2ZlOTM3NWFiZGEzM2FjMDU0Nzc5ZDFjYTgzZWU0YyByZWxlYXNlMzEtbWFpbnQKKzc0NDI2IGZiZjhiNzkxY2U4MTFiNDkwM2M0MjBiNTVmODhjZDUwOTQyNjJmODIgbGVnYWN5LXRydW5rCis3NDQyNyAzNWVmYjEwNTRlYzZjZWNhNzIwMTdhNTg3MjYzY2I2YTkyNTczNDBiIHJlbGVhc2UzMS1tYWludAorNzQ0MjggYTFhZDE5MmY4ZGY1NjQzNzM5MGMyYWQ4OGNkMTMyZDk2MGIwNjIwZCByZWxlYXNlMzEtbWFpbnQKKzc0NDI5IDk3NTIyZTI3YjA1ZDBjODIzOGRkNzRmNTU3Zjk0YzM1YTZiMjZjZDUgbGVnYWN5LXRydW5rCis3NDQzMCA5YTZiZWIxYTkzOTc1NzNkZGY5ZDhkOThiZDE2NGFjNWNjMjQ4ODYxIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQzMSBlZWFmZDg3MTY0MTBhNmM0ZGMzYjc5OGEzM2UzZDU3NGEzNjdlMDQ1IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQzMiA2YWMxNDc4ZDliMGU2NjE5OGY5ZmM2Nzk3NTIwYjlhZjk1NTkyZmRiIHJlbGVhc2UyNi1tYWludAorNzQ0MzMgNTE1MmI1MzY2MTJlNDg3OGZkMDBkNTc2N2E1YTcyMWE0Nzc4YzMxNyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0MzQgMDFkYjQxMGYyZjIwN2ZmMDA1ZTU5YTdiOTNkM2JiMTAyMzhkMWE3ZiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0MzUgODk5MjdmNWU4M2Q2Zjc5NDUxMjY5MjU2YTM1YzVkMTljMjk3OGNhOSBweTNrCis3NDQzNiBkNWE2MmRkOTA3ODk4ODc4MDNiOTUwMTcwY2RkMzY3ODQ2ODY1YzJmIHJlbGVhc2UzMS1tYWludAorNzQ0MzcgYTVlNmYzZmYyZTJmNjQ3OTlmOGMwNmMwZGI4ZjE3ZTI3ZmI0OWQwMCB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0MzggNDlhNDI4NjY5Nzg4ZDY3OGQ1MjZjNjY3ZjZmZjM5YTY2NjE2YjY2MiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0MzkgNDI3NTlhNmVlOThhYzVkMzZhYzIwNmQxMDhjNTEwMzI5M2QzOGFmNyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0NDAgMWZjODkwMTRiZDgzZGIwOGI1ZTVhOWJlOGQ3MDg1Y2JiMWIwMDFjOSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0NDEgZmUyODY0NWE2MTIyNmY4MDU1MjE4MzdmNTgyNGI4Y2YyZDc0NmU2NyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0NDIgYmViMTJiYjc3OTFiZjc3OTMzYTI3N2YyNzRkZTc0Nzg5M2Q5NmU1OSByZWxlYXNlMjYtbWFpbnQKKzc0NDQzIDFmYjdlMmY3ZjBiYjRlMjRjYmVhOGEzZDYzNzUzMDdiZTk2Njg1YWQgcHkzaworNzQ0NDQgNWVhM2Q0Njc1NjRhNTJhMWU5MTgzYjZlY2RiMjhiNmM1MDJiZDAwNiByZWxlYXNlMzEtbWFpbnQKKzc0NDQ1IDUxZTVhNDE0YjNjMjQ3ZjJmNzVhNTM4MGRhMWZiYzg5MDJhMTVjYzUgbGVnYWN5LXRydW5rCis3NDQ0NiBhMGY4MGRjMDlkZmUyMjg5ZjhjNDUyMTYzZDY3YWYyOGEyZDc5MTdlIGxlZ2FjeS10cnVuaworNzQ0NDcgYzZkMzI3NjZlOTRjODBiNDZhMmM2ODNkNjZmMjY2NGRmN2YxNmM4OSBsZWdhY3ktdHJ1bmsKKzc0NDQ4IGI3YTU3MWQ0YWFhN2UxZjRhNGJiNmY3YTUwNzgyOGRhZmE3OTkzZjEgbGVnYWN5LXRydW5rCis3NDQ0OSBhZTgxN2ZhNGU2MDU2NmVhY2I0Mjg2N2Y5NDJmOWJiY2UyNzEzYTFlIGxlZ2FjeS10cnVuaworNzQ0NTAgZTRhODNlOTE1MjFhMzY5ZGM4ZDgyNzYzYjM1YjQ4ODhjMTM4MDAxNyBweTNrCis3NDQ1MSBkNzI0Y2E4YzU4MjM0N2IzYTEwNDA3ZmQ0NmM1MmVmMmI3ZGRiMzE0IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQ1MiA0MWIwMWJiOTA2ZTM5NjljZGZhYWM2NTIwZWE1OGE0YWVkNGJkZWY4IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQ1MyBkNzE0MGJiYzY0NzNiZTQ5YjdiNjI5ODE2ZTZmOTlhNjc4MjNhNTQ5IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQ1NCBkNDRlM2FhNDJhNWJjNzgxNzI2MzdmYWM2ODU2MGI0NjgzMDg5NWUwIHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQ1NSAwMDIwODcxODdiMmZmNjcwZmMwNzEzNjc2MGFiMGQ5MzdhNGQ0ODM0IHRrX2FuZF9pZGxlX21haW50ZW5hbmNlCis3NDQ1NiBmOTFjMWQyODgzNDM0ODk1NjZkYWE3ZDdhZGU1ZDJkMjZjZWU2ODJiIHJlbGVhc2UyNi1tYWludAorNzQ0NTcgMTEzYzBiODZmZDc0OWE3ZmNiZjg2YWM5OWM2MDYxOGM2NGZlOWY0ZSBsZWdhY3ktdHJ1bmsKKzc0NDU4IGJjMWM0MDMwNTRlMWM3N2ZhNzIwZWE3ODk2Y2Q5N2EzNzg0NTcyZjkgcmVsZWFzZTI2LW1haW50Cis3NDQ1OSAzMDk2M2NmYjY5ZmQ4MjBiYjgwZDZkM2U1ZjhiNDQ0ZDI3ODUyZWU5IHB5M2sKKzc0NDYwIDRjNTFjNGJmZmIyMWE3MGY5MWU3ZjkxMGUzMTlkYjBiNzM2OGFmYTAgcmVsZWFzZTMxLW1haW50Cis3NDQ2MSA2NDNjNmM3Njg0YjE2NWM4ZjI2ODk4YTBiMjI0MTFkYTM4ZGMxMzI2IHB5M2sKKzc0NDYyIDIyNzdlYmNlZGE0M2E2YzE4NWEzZWRhOTgxMDE3ZmI4ZmU3MDU0NDkgcmVsZWFzZTI2LW1haW50Cis3NDQ2MyAxMzc3YThjMjY3OTIyNTc2NDExZTNlYjllYTMzZDk2OTNkNDk1MTFlIGxlZ2FjeS10cnVuaworNzQ0NjQgMWUyODc3MDI2NDM1ZWJkYjNhZWMyZGNiYWZjZmQ5YzdmNmVmMDI0MyBsZWdhY3ktdHJ1bmsKKzc0NDY1IDAwNTMwMjg3YmRiNTExMzFlOTU2NmU2ZTYwZDlkZWFjYTJiNWJkNzggbGVnYWN5LXRydW5rCis3NDQ2NiAzODQzMzRkOGI5ODc1YmU2MjgxMjkwYzk0YjI1ZmQzYjAxOWUxMGYyIHB5M2sKKzc0NDY3IDBmY2Y0MGExNDBlNWVkYmMwOTc2NTU2ZDMyMGI4NGY2YzU5NzI2YmMgbGVnYWN5LXRydW5rCis3NDQ2OCAxOWZjMGQwNWZhN2E0OWJkNWQzZGVlOTg3YzQwZmMyYWRhN2FlMmRmIHB5M2sKKzc0NDY5IGZiN2Q1ZWU5MDhhNTAyYTk2NTBiYmZkN2U0ZWZjZWRkOTMxNmQzMzYgcHkzaworNzQ0NzAgNmFjMmE2NGU4MjZiZTQ1NDQ4NjJmMjM5MWJmMzE5NGRlYzZlZTBhMCByZWxlYXNlMzEtbWFpbnQKKzc0NDcxIDEyMjdlN2NjMWQ5YjE4Y2RlODgyMmI0MjU1ZmUyNTc4MWZjNDVhMDggbGVnYWN5LXRydW5rCis3NDQ3MiBjNjMwYmYwNWNlMzhkZmUyZTcyMDkwNTY0YTRiNjUzMzQ0MjhjNjljIGxlZ2FjeS10cnVuaworNzQ0NzMgYmVjMzQwNWUwNzNmMzQyZjk4ODEyYmYwNzYzZDgwNTE3ZTdkZmNhNSBweTNrCis3NDQ3NCA2YWZhNWJiZGMzNzU0YjY0NjVmODQ4MjdlOGYzOWY0ZDAxOGI1Y2Q0IHB5M2sKKzc0NDc1IGQ3ZTFkMzk3OGRkNjAwNTNiZThmMDc1MzI1MDY5NTBiZmVmMjlkOWUgbGVnYWN5LXRydW5rCis3NDQ3NiBlNTIwMDllMjIwMTdkNTFhNDBjZGU4ZWI4MDE4NTYwN2MzN2E3ODM4IHB5M2sKKzc0NDc3IDZkYTZlZGZhNjI5NmMyYmQwYTlmY2UyMzc1ZjIwNDRhYmY1ZWNiZjkgbGVnYWN5LXRydW5rCis3NDQ3OCA0OTVlZWZmM2I5ZmYwZGJiZjljNGY0MDljMThhNTM5Y2MzZjE4N2Y5IHB5M2sKKzc0NDc5IDc0NmYxMGUwNjI0ZTlmM2U0NzkyOTg5MWViZDg2NTljNDgzNDg1M2UgbGVnYWN5LXRydW5rCis3NDQ4MCA4YjljMGY1NzNhYjI5YzQxYzZjNWZkY2NhODJhMWZlMGZmNTM1NWFmIHJlbGVhc2UzMS1tYWludAorNzQ0ODEgNWVmNmJjMDA1MjBhYjAxOGQ4N2FhOTdiM2U3MDM3MDEzNDJiZjgxOSByZWxlYXNlMzEtbWFpbnQKKzc0NDgyIGRhMjFiNDgwZmYwNTIzNTU2YmM3OGU5OWVmNzkyMTMxZGU1NzUxNjEgcHkzaworNzQ0ODMgZGVmZmU2YWE0M2QxMTRlOGJmNWVlMTM5MGY4ZDhlOTIxZDM0YzgyMiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0ODQgMzRjNmY2ZDI2OTc2ZDNhNjlmZTQ2ZmJhOWNlMWU3NGQzNDA0NWNkMyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0ODUgNDI4NjMyYTU5MGFkYWNlM2I4N2E0NzBhZWI1ZTMzNjFiODZjZWE2YiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0ODYgNzg3NWRlYWM0MTBjOWMzYmY0MDQxZGU3ZDlkZmNiYWY4N2VkMDRhNiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0ODcgZjZlMTdhZWI5MmFiYzg4ZTBkNTRiY2UzOGQxNmM4NjUwYjlkOTMwNSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ0ODggNDJiMjU2Nzk0ZTZjNTEyMTliZmZkZjFmMTA0YjIwZGRhZGJjZTU5ZCBsZWdhY3ktdHJ1bmsKKzc0NDg5IDRkMDg4MThiNmM0YTFkODg3M2IwZDgzYWQ2YmNiM2YyNGExNTFlNTkgcHkzaworNzQ0OTAgMjE3YmNiODYwM2FhZDE1YzkzNzU0OGY1Zjc4ZDQxY2I2MTVlMjcxYiBsZWdhY3ktdHJ1bmsKKzc0NDkxIDBiMDdjMDNhNWYzYzM2ODQ0MDE1MDc1MDQxZjBhMGI0ZDEwYTFhZGMgdGtfYW5kX2lkbGVfbWFpbnRlbmFuY2UKKzc0NDkyIDRlYWMxMzJmYWM5NGI4NGYyYmI0MTMzN2FiYTJmYjliZWY0N2I0ZTUgbGVnYWN5LXRydW5rCis3NDQ5MyAzODRmOTY1ZTEyY2RmMWQ4ODlhYWYwZTk4MjQyMDdiNTA5YTMzOGE4IGxlZ2FjeS10cnVuaworNzQ0OTQgNmIwODhkY2YyNWY4Yzg5YmFhODhkOTAxNmI4ZGU4ZWZkNTE5NTQzOSBweTNrCis3NDQ5NSAyYWFmN2QxNDFiZDBmZWQ5NmY5YTI3YmQ5Nzg0YjY5ODcwODY0NjMxIGxlZ2FjeS10cnVuaworNzQ0OTYgMjgyMWU1ZTc2ZTgyOTFjMjc4ZmE4ZDlkMDVmOWNkNmRlMThmYWU5MCBweTNrCis3NDQ5NyBiNTYzYWIwMTcxZDkyMzhiMWRjOGU1YmQ5NTM4YWEwMzI1YmNjOTJlIHJlbGVhc2UyNi1tYWludAorNzQ0OTggZTNhMGQ0YjBkN2FhMDIwOTJjMzdjMjk0NDM3NTRlZGI5OTlhNzVlNyByZWxlYXNlMjYtbWFpbnQKKzc0NDk5IGM4N2FhY2NjNzBiNjE4MDAwMjdmMjlmYWVmM2FiOGI5MDU0MzM5MDIgcmVsZWFzZTMxLW1haW50Cis3NDUwMCBkNDI4YmMxODRlMWZiZGMwOWFjODQ4YWMwMjc5YzBmZDc3NDJlMDE0IHJlbGVhc2UzMS1tYWludAorNzQ1MDEgZWIxMDA5OTM2NmVhNTIyNjA0MGE2NDBhZDlhNGFlY2JhYjRlZTIyNiBsZWdhY3ktdHJ1bmsKKzc0NTAyIDI0Yzk1M2YzZjhkYWYyYzk1OTQ3YmI4MDM3ZGJiYjA0NGFjMzBjMjMgcmVsZWFzZTI2LW1haW50Cis3NDUwMyBhZTJmNzVhYTNmYWE5NDQ0MWFmOTJhNjhmOWMzNjJjNmFkYzA2Y2Q4IGxlZ2FjeS10cnVuaworNzQ1MDQgOTUxNjYzYzAzMGI0OGM4Y2FiZTI3NWNiZmYwOTE5YjYzNThhMTgzMSBweTNrCis3NDUwNSAzYmYwM2FkNGE2YTA2Zjg1ZjQ2Njc1MjM5NmQ3MGZkYzZhMWFlZTlhIHJlbGVhc2UyNi1tYWludAorNzQ1MDYgZDg3NDA2NDZhMDMxY2NjZGFjNmIzNGRjMzc5MDMzNjJmODIwNzIyNiByZWxlYXNlMzEtbWFpbnQKKzc0NTA3IDczZjQzMmNkODJkZThjNzBlOGU5NzgzNjQzYTM4NzM0MmExY2Q3ZDYgbGVnYWN5LXRydW5rCis3NDUwOCBhZDkzMDA2N2MxMjRmYmNjY2M5MmY0M2M0NTVhYzEzY2ZlOGFiNzYwIGxlZ2FjeS10cnVuaworNzQ1MDkgMzdmMmYzNjdhZDhiYmM1NzVjNTU2NjcwZmIyNzFkMzI4ZTQzNGU4MCBsZWdhY3ktdHJ1bmsKKzc0NTEwIGNkMTgxYTZmNGRkNzM3NTExYTI4MDgxOTZkY2FjZjRhZTQzNjFiMDkgbGVnYWN5LXRydW5rCis3NDUxMSBmODAxMmZkZGE2ZDNkZTBlNTExMzI5OWNkOWFmZGRmMjRkZWNjZDY5IGxlZ2FjeS10cnVuaworNzQ1MTIgZjc0NjZhYzFkZDcyNWY3Zjg1YjNmYjQ4M2JlM2MxMTBhMTk0Mzc2YiBweTNrCis3NDUxMyAyY2ZiZGU4Y2JmODg2MTg3MzUwNzFhNTQ3ZWQ2YmZjNWJkMDRjZTFlIGxlZ2FjeS10cnVuaworNzQ1MTQgMDMxZTQzMTY0Yjc2OGQxOWU3NTY4NGY0ZTI4Y2U5YmM5Y2IzNThmYSByZWxlYXNlMjYtbWFpbnQKKzc0NTE1IGUwMWExOTkwNzE3MTExODc1YzQ2MzE5MDM2MDc3OTAzMzE4ZmJkNDggcmVsZWFzZTMwLW1haW50Cis3NDUxNiBmNWU3MDExZmJmZjEyMDVmOWI0NWViODc1NTY4NzE3MTNlODFlNjUwIHJlbGVhc2UzMS1tYWludAorNzQ1MTcgNjUwZGYwZWMwYzEyZjZmMThiNWEyMGI5ZjNhOWI5NmIxYzk4NzQ5ZSBsZWdhY3ktdHJ1bmsKKzc0NTE4IDNhYmJkNzIwOWJlODUwMDVkYmMzY2VhNDcyMTI1Y2U4MDRkNWVlOWUgcHkzaworNzQ1MTkgY2QwYzhhYzljYjQ5NDMxN2Y2MjBiYzE3ZWM2YTRlOWQzZmYwZDZjOSBsZWdhY3ktdHJ1bmsKKzc0NTIxIGZlZmQ5ZWI3YTgyMmRjZmUyOGJjNjE2NWRiYjlhMGE4ZWVmNDhlYmUgcHkzaworNzQ1MjIgYzdjZDI3ZjY2NWQxZGRjNzcyZGMwZDQzYjE4YWNlYjhmMGExODQxNyBsZWdhY3ktdHJ1bmsKKzc0NTIzIGU0NzFkNmQzMjcyNGFhNmUyMzA1MWZmOTU2MTYzMGNiMjhjYTRhYTQgbGVnYWN5LXRydW5rCis3NDUyNCBlMjFjNGM1MjdlNjYxZWExYTk0YjAzMGVlODNiMmYwNTZjNzA5NWRlIGxlZ2FjeS10cnVuaworNzQ1MjYgOTc0NTUzZmI1OWRjYjMzY2I1MjgwZjY0ZmM4YWY2MjIwZjU2OTI5OCBsZWdhY3ktdHJ1bmsKKzc0NTI3IDAyZDQwODlmMzFkZGNjYzc3ZTFiOWUyNTA0MGJlNDQ4MmJiNmRhODAgcmVsZWFzZTI2LW1haW50Cis3NDUyOCAzOGI5N2MzZTk4YmRhYTU2YWE4N2JkNTBkMTc1ZWNjOGY0NTEyNjA1IHB5M2sKKzc0NTI5IDg2ZWY3NGM0YWQ5NzdiMzMwNTIyNjczZmJiM2E4OTRiNWU0MTQ2ZGYgcHkzaworNzQ1MzAgMGU1NWZjY2IxOWVjNTVkMzAzZGY0MmRmNGY0NmZiYjAxYWI4NjMzNiByZWxlYXNlMzEtbWFpbnQKKzc0NTMxIDQ4NzFmODFkNzEzMjAwNGMzZjhkMzM4YTFjYTBiZTNkMGM4NTgxNTYgbGVnYWN5LXRydW5rCis3NDUzMiA1OTRlMTk3ZWQ2M2Q1MmVmYzk5YWQ2N2NjYmM4YThkZTZjNGU3YjhkIHB5M2sKKzc0NTMzIGYzNDA4NzYwZDQ2ZTVjNWFhNjkyZThjZmQ5M2VhMGY5NDYzNzNjMWQgbGVnYWN5LXRydW5rCis3NDUzNCBiYzE2NzA5MmM5OGNiOGVjMTE1OTg4ZWMwYWFiN2IwOGIxMmYzZjZjIHJlbGVhc2UyNi1tYWludAorNzQ1MzUgMTNmMTlmYjkzZjhlY2Q3YWJjZTIyNjBjMDFmYTU2NTM3YmQyODMwZCBweTNrCis3NDUzNiBhODg5NDFlMmJmMjczZDI5Y2Y4NDRhMGQyOTYyY2RhYmYxZjliOGM2IHJlbGVhc2UzMS1tYWludAorNzQ1MzcgMTU0NWNmNzM3MmFmOTY4MTc1MzkyMGQxYWM1MmRmZTc4Zjc5ZmRmYyBsZWdhY3ktdHJ1bmsKKzc0NTM4IDVkN2Y2MGJmZmU4ZmM1YzY0N2IwNGVlNTRlYmRjZmVkNGFkMzkwMmIgcmVsZWFzZTI2LW1haW50Cis3NDUzOSBjNGQ1ODFlNzA5Y2E1NGFmMzUxMjZiYTBhM2U3ZWExMWQ5MzM0ZDc5IHJlbGVhc2UyNi1tYWludAorNzQ1NDAgY2ZhN2FlNzE3YTkwYjZjOWYxZjVlYWE5YjJiNTY3Y2UzNWMzNjc1ZSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ1NDEgYzQwM2I2NmQ5MmIwZmEyM2JhOTI5MzljNjQxOTlhNzcyNGNiYjgyMiB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ1NDIgOWEwOTY5YjZmOGU1ZTYzMjZkMmI1ZGQzNDNjYjY1ZDVkYzZkMjczYSBsZWdhY3ktdHJ1bmsKKzc0NTQzIGM0ZDhjYmFmZDhjODkwNjFmYjkyNGNmOGNhYzc5OWUxYTUwN2RiZTYgbGVnYWN5LXRydW5rCis3NDU0NCA2NzVhM2MxODI0ZjQwNTkxMDhhMTA0ZTk1ZmZjNjAxZTJkMTZkNmNkIGxlZ2FjeS10cnVuaworNzQ1NDUgMDkxODMxMmEyZDdiOWFiMTgyYTFiNDQ1Yjk5NTNlOGM0OTMwNTJiOCBsZWdhY3ktdHJ1bmsKKzc0NTQ2IGZmY2ZjOTkwZTRjYTE5Y2E3ODdkNGU0NjQ0MmFiNmRjNTNiYzZmOWMgbGVnYWN5LXRydW5rCis3NDU0NyA5MmUzODU4Y2NhNzBhZTZjYTRhNjU3YTA0MmVhY2M1YTRlNjViNGQyIGxlZ2FjeS10cnVuaworNzQ1NDggZWM4ZDI1ZTA1MDBhODhjNzgyZDZlMDA0YTIwZmY2MWQwNWE4ZDVhMCBsZWdhY3ktdHJ1bmsKKzc0NTQ5IGRiODZkM2NjMWU2YjkxNWYyOGQ3YTE1MTkwNjE2MmI0OWQ5MWYwYzMgbGVnYWN5LXRydW5rCis3NDU1MCBiNjAxMzRlZTVlYjQ1YzNmYmU2NTEyM2E0MmEyZDZlMGYzZWQwMjAwIGxlZ2FjeS10cnVuaworNzQ1NTEgZjc1ZjI3OWJjZDM0MDQ5ZDQyYzUxMTQzMjI1MWFkOTM0NDg1MTgwYyBweTNrCis3NDU1MiBkOTFhZmYyMDZkZmRlMDMwYmU5NmE1Y2FkNzQ3NWZkMTVkMDU5MjFkIHJlbGVhc2UzMS1tYWludAorNzQ1NTMgZDAzZTUyOGVmOTQ2YWE3YzRlOTM0N2EyZmEzNmNkMDljYjFjMWM0NSBsZWdhY3ktdHJ1bmsKKzc0NTU0IDQ4ZGY0MDdiNjA2ODI3NzA1ZGIyYzg2ZTE3MGEwNzIwMTRiNjlmNjIgbGVnYWN5LXRydW5rCis3NDU1NSAxNGM1ZmFiM2VjYmY0NjZjNGU2NGMxZDhlOTZjMzAzZjJkOTBlMjA1IGxlZ2FjeS10cnVuaworNzQ1NTYgODAwNThkZmU0NjlkOWM3N2ViYjJhMDNhYTU1ZTVkMGQxNjdjMmI0MiBsZWdhY3ktdHJ1bmsKKzc0NTU4IGFlMDBhM2E4MDQ3MzkzMzg4Njk1MjFjY2IxNGU5Yzk0YTBkN2Q5OGMgbGVnYWN5LXRydW5rCis3NDU1OSAwZDliNTU2YTQzNzgwNjliODI0YzRmZDg0YTQ1YjAxZDczMzZlYjI0IHB5M2sKKzc0NTYwIDczNTMyMmFhNzFkMWFlNmUyNTFhMDlhY2JjNjE5MjEzOGIwYWI2ZDYgcHkzaworNzQ1NjEgYjY1ZWJlZDA2ZWIwNDU5ZGExNzRkNTcyZjMxMGQ3NGJhZWFkYTcxMSBweTNrCis3NDU2MiBiODlmNTgyZWU3OGE4YjgwYTQ1NjVkNTJmMjNlZmExNjdjOTkxYmFmIHB5M2sKKzc0NTYzIGUyMTMwM2NhYzEyMDVjNDU5M2QyNjllODIwNTI5OTVmZjdkZDQ4YjAgcHkzaworNzQ1NjQgZjI5YjU5YTQ5MjQ2MWUzMWUxYzczNDAyZjY4NTE0MzEyMzIxYWEzMCBsZWdhY3ktdHJ1bmsKKzc0NTY1IDFmMWI0YzAzZTg5MmFhMDQ1ODhkYjVhYjkwNWYzYjkyYjY3NTI0NmUgcmVsZWFzZTI2LW1haW50Cis3NDU2NiBkMjEwNzdlNjM5ZmRkMWJkNGVhZjA1YmEwM2E1Mzk5YTcxOGNjYmEyIHB5M2sKKzc0NTY3IDA5NGE2ZjE1ODY0MTc0MjAxYWFhNzM3ODQ0YzE5YmI4ZmFmMjk3ZDIgcmVsZWFzZTMxLW1haW50Cis3NDU2OSBiNmJmMmE1ZjQ5ZGRkZDBiNzdlZjlkM2QwMzEwMjZkMjNjZmU3YTVhIGxlZ2FjeS10cnVuaworNzQ1NzAgMDI5NTBkNTgwODA4YmExZWVjNTU2ZTUwMzQxMDI2OWQ0ZDA5MzFlNCBsZWdhY3ktdHJ1bmsKKzc0NTcxIDVmOWUxMzA2NmQzNjY3NGEyMzYyNjI4NjE4YjMwMTMwNzcyOTYxZGYgbGVnYWN5LXRydW5rCis3NDU3MiAzM2NlNGM1YmMyZTU2MGNjYmE0NDZlMmY1YTFhZTg0YWYyNTczMTIxIHJlbGVhc2UyNi1tYWludAorNzQ1NzMgOWE3OGUzZDkwNjE3MWM3MjE4YTFhMTZkZjk3MmEzMDUzNmI4M2ZiMyBweTNrCis3NDU3NCA0NzRhOGUwNmU5NjYxYTAyYTUyZDliNzgwNDg0NGM3MTBkYzBlMzQ3IHJlbGVhc2UzMS1tYWludAorNzQ1NzUgNjA2ZTk3Y2FlYjc3MzZmNWJhYWVkY2Y1ZGYxZmFjZTEyNzMyZDk4NSBsZWdhY3ktdHJ1bmsKKzc0NTc2IGJmYjIzMzc0NTFlOWFjNWJlZDFkNzZiYjY3OGY5NjM2MTFhNTI5NDUgcmVsZWFzZTI2LW1haW50Cis3NDU3NyA2ZGVjYTczYmQ1MTJkZmNjMzhjMTQ1YjQ2MWE2MzljZGIzYTkzMTZlIHB5M2sKKzc0NTc4IDA0OGE5MTM4MWJkODBhZTFjMGM5YTFkZmZkMTMyMzk5MWNlNzIzMmYgbGVnYWN5LXRydW5rCis3NDU3OSA3ZGUyMDdkZDQ3Mzk5MjY0OTE0NjI1Nzc0NjgxMWIxN2M3MjI3ZjgxIHJlbGVhc2UyNi1tYWludAorNzQ1ODAgYTRlYmFiODQ1ZjcyNDFlZjQyM2M3NDM0NTI2NDU1NzIxYTA5YTVlOCBweTNrCis3NDU4MSBkNDAzN2ZiODU2ZDIxMDhhYWU4OWY5ZjQwMmY4NjFlNDNkY2E4ZmVkIGxlZ2FjeS10cnVuaworNzQ1ODIgMWI5MTI3ODcxNzIzMjA1ODk1MGE3ZmFhYTFiMTg2NzA0MTBkNzhmOCBweTNrCis3NDU4MyBlOWJhYTJkZThiYjRlY2RiYjAwNTVjM2U1MDNkOWQxYjhiZTIxN2ZlIHJlbGVhc2UzMS1tYWludAorNzQ1ODQgZTRjMmNiZDNiZjkzODMzY2YwN2NiZTExOWVjMjI2ZDNkZjZkNzQ5MyBweTNrCis3NDU4NSA2OGM5MmVkOGQ5NjA0ZDMwYTUzMjA3MWNhZjE3OGYyZjg2ZGUzN2M5IHB5M2sKKzc0NTg2IGQ4MjgwMzY0YzU4MTRmODQxNWU1YTM0YTVkYWM3YmI3MGUwZTczOGUgcmVsZWFzZTMxLW1haW50Cis3NDU4NyAxZjc3MmY4ZmVjOTIyYmY1NDdjNmI5ZGY1ZjllMzY0OWQzMDkwNzU2IHB5M2sKKzc0NTg4IDZmYThhODExOGRmMGMzZmRiY2RkN2Y0YjZiMWMwMjAwOTE5ZTU5N2YgbGVnYWN5LXRydW5rCis3NDU4OSBhZWRjNGVjMmZlMjQwMDc3NzcxYjExYTFmY2E3YTMyMGNjYmNmZmIwIHB5M2sKKzc0NTkwIGI0ZmM4Y2JmZTFlZTkxZjBjNGVmODg1NzI2YjdhMWI4NjQ5OTBkYWUgbGVnYWN5LXRydW5rCis3NDU5MSAwODA5MGI1ZTk2YzJmY2U3NzIwZTc2M2RlNjI0MzhhNWFiYjFlMWQ2IHB5M2sKKzc0NTkyIDY5NjE2ZTIyODcyOGUzZDljYTVlYTcyODY3Y2I1NzMxZWZmNmNmMzggcHkzaworNzQ1OTMgNThlNjMxOTdkNGVhYjMxMThkZmI4OWQzZDUxNjhjYjUwMjc4NDIyOSBweTNrCis3NDU5NCAzNjhiZmMxOGE3YTEzOWFiOTVkNjZhZTJmZDA1YzVmYmE1NTRhZThjIHB5M2sKKzc0NTk1IGJmNTAwZDg4NTc5NjZhYWY1ODdiM2EyYzUzZDY3YmNjYTc4NDZiZTkgcHkzaworNzQ1OTYgNTYwMDA4ZDA5OGRkYzcxOWUyMDMzMWM0ZWQ2M2EyOTQxNDIxYjcyNyBweTNrCis3NDU5NyA4NmZhNDNjNmQ1N2M2NjFmYjhjNDBlYTU2NDlmY2FiNjdjNDM3NzgxIHB5M2sKKzc0NTk4IDgwMWFhNTJiMTIxNzA1OThmNzg4ZmM0ZWMzMDA4MjRmYWI1MTFjYjMgcHkzaworNzQ1OTkgOTlkYzIyZWYxZGYwNDg4MGI4YmZmM2FhNTY5MTQwNTdiN2YzMDY1YiBweTNrCis3NDYwMCAzOWJjYmYzMTZkYmE2N2I3OTAwN2YzZDQyNzFkYTE0N2M2OGYzYTc0IHJlbGVhc2UyNi1tYWludAorNzQ2MDEgOTQyNDlkMTQyNWEzZmRiNjc0Y2ExZGMzZWRjMjU2MzcwZjljMjIyNCBweTNrCis3NDYwMiAwMjcwMDdiNDNmMTY1NjBkZjJiODQzMTFkYTc5M2IwYzc3NDU5YTQ1IHB5M2sKKzc0NjAzIDc4Yjg2ZjhiZjVjNDU5YzE3NWRlYWY4NWZjNGU2M2QzZmZhMmE5MDAgbGVnYWN5LXRydW5rCis3NDYwNCA0M2E2NjY3NjhmNDc0YjU2MWZjNjRiZmFmNzJlYmNlZjMzNjg1OWIwIGxlZ2FjeS10cnVuaworNzQ2MDUgMzVhMTYyM2MxMDIzOTA4OGIwMjZjOTUxNjE5OWEwNGJkMjAyNjMwNSBweTNrCis3NDYwNiBlODE0NTNiYjA3ODkzZjdlNjRhNjQ5NjRmMTg1MjUwM2JmM2EwOWYzIHJlbGVhc2UzMS1tYWludAorNzQ2MDcgMDVhZDllYzYzMDg3NzQ5MzYzOTk2ODhkZmExMjIzZDE2MTg3NWQ2MyByZWxlYXNlMjYtbWFpbnQKKzc0NjA4IGFjZjIxNWJiZTcwMmUwNTU3MGQ0Y2MyY2MzZDQ4NzhkZTNmNzcyMDkgbGVnYWN5LXRydW5rCis3NDYwOSAxMWI0NTUzNWExYjNlNjE5Y2U2ZGI3ZmFhZjI2OThkOWYyM2I4NWQyIHB5M2sKKzc0NjExIDg0OTkyOGQ3NWQ2ZTM5ODhlMWM4NWM5YWI2YjQ2Nzc0OWNlNGRkMzYgcHkzaworNzQ2MTMgMDdjMjM4MDZjY2M2YzJlZGJlMDZjYjQyOTNmN2YxZTk1NTZjODdhZSBweTNrCis3NDYxNCBiYTViMjY4M2MwNjQwYzYwMTMyYjU4OWY0ZTE1MGRkODc0MDlhYzNmIGxlZ2FjeS10cnVuaworNzQ2MTUgZTViNDYzYTYxZWUyNjllYThjZjA5NDM2NDcyMjBkOTM2YTk3NjEwZiBweTNrCis3NDYxNiBlZDdkYmM5MjJkMDVjOWY0NWUxN2Y3MDk3ODc4MzFhNjczODM3Yjc5IGxlZ2FjeS10cnVuaworNzQ2MTcgZTE1N2NlYjU0YTQzOGIxMTY1OThlOTRmZGE0MTRhY2JjZDI4YTQzYiBsZWdhY3ktdHJ1bmsKKzc0NjE4IGI3NGE3YTNlNDFjNTcyZGYzOTgwNzJmNWZmNDllNTgxYzYxMjc4MTEgbGVnYWN5LXRydW5rCis3NDYxOSBkNTEyY2JiODVhZTAwMWQzOTZjOGQ5ZGQ0NjUxYmFjNzY2MzcyOGVjIHB5M2sKKzc0NjIwIDgxOGJhODk4NTI4MTA0MzVlMTY4MzU5MjQxZDIxZmJjZTMzMWUwMjUgcHkzaworNzQ2MjEgNjZmNDhiYzk0ODE0ODc1MWJhYTc4MzU1ZmE3NjIwMDM4ZTJhMTgzOCBsZWdhY3ktdHJ1bmsKKzc0NjIyIGFjNzU1YzU2NjEzNmQ1MTMwNzYxMzJmY2IzMDhhZGU1YTY5OGM1NmIgcHkzaworNzQ2MjMgMDA4ODg0NGQwMTA5YTRmN2I3M2Y3ZTcyOWJhYzk0YjdiZGVmY2NjYSBweTNrCis3NDYyNCBhZmJiMmIyZmY2Zjc4MTBkOTVlYTc0NDhhZGYxMmQ3OGE1OTkxNThhIHJlbGVhc2UzMS1tYWludAorNzQ2MjUgNWQyYjY2ZTAxOTY4YTNmYWFlM2YxYTI0NWI3NDM3ZjIwZmMxOGM3YSBsZWdhY3ktdHJ1bmsKKzc0NjI3IGZkOGE1ODkwMDhhYzIwZTQ1MTg3NWUxNThlOTk4ODczMzU4NDY0ZDUgcHkzaworNzQ2MjggYTQ3YWExMTBmY2FjZjg0YWVkNDRkMjg5ZmYyMjY1YTM3OTk2YzQzNyBweTNrCis3NDYyOSA2YjgyYmEzMDRhN2VkZTg3NmEwYjc3ZWE3ZmVjM2UyMGRhMWIzYWM1IHB5M2sKKzc0NjMwIDEwNmVlNGViNTk3MDVkY2VmZjNmYjRiYzRlMjJlOTVhYmVhYTg5OTIgcHkzaworNzQ2MzEgOWZmYThmODg3NzUwOTQ4N2VlMjU4YTJkY2NkZTJlZjk0YmY0ZDk3YSBsZWdhY3ktdHJ1bmsKKzc0NjMyIGUwY2VmMDIzMzAyMDNlNDZiMjE4MTk2MDVmZDYxYjQ2M2FiZGIwZjIgbGVnYWN5LXRydW5rCis3NDYzMyBiYjkwMDUxYjQzNGMwM2VlNzMzYmZiYmI5NmRmMDhmNjg1YTVhOWVhIGxlZ2FjeS10cnVuaworNzQ2MzQgNjM3MWUyZDBkZWEwMDkxNmY4YWY4NWRhMWQ2NzRlYjgyOWYyMDhjZSBweTNrCis3NDYzNSBkNTVjOWEwNjMyNThhZTc5M2I2NDY3ODM3MWQyNDQ0NWVlMmEzMWRmIGxlZ2FjeS10cnVuaworNzQ2MzYgZWI2NzNhNDAxYjlkNTUwODYxYjUwMmFmNDJhOTFjNjA0NTZmZmI1MiBsZWdhY3ktdHJ1bmsKKzc0NjM3IDk1ZTU3MzhjYjMwOTgxODE4YTViYzgzZmJkZTdjNTQ4YThjMDQ3ZDYgbGVnYWN5LXRydW5rCis3NDYzOCA3NmFlYmM1ZWE0NWNiYWQzNjE1ZGY1ZmQwMGExZmRkNDQzZWFjN2YzIHB5M2sKKzc0NjM5IDNiOWU3NTMxMWU0MzBhMzY2Zjk5YjgwZjdiOWY5YmQyZDk2YmQ0MzggcHkzaworNzQ2NDAgY2U3ZTAwMzg5OTZmNGI0ZjgzOWQ5YzViNDkwODBmNmI5ZDg1NWNiZiBsZWdhY3ktdHJ1bmsKKzc0NjQxIDFmMDNmMjkyMGM2MTcxZTg3NTU4OTE1NWU0YzExYTJhZTliNzlhNGYgcHkzaworNzQ2NDIgNzdhYjkzY2EwNjVlMzY3YWYxZjE0OTE5NWU3Yzk2ODA2OTQxZGE4ZiByZWxlYXNlMzEtbWFpbnQKKzc0NjQzIDdkMzllMjEzYjc1NjM2N2Y4YTFjODJhZDI3NzBjMzcwZjdlNTYzYjMgbGVnYWN5LXRydW5rCis3NDY0NCA2MWRiYzFkMWI4MDRkNjI4NGY2ZmI0MjNlMTFjMjU3ZjAzMTcwZDA1IGxlZ2FjeS10cnVuaworNzQ2NDUgYTA3ZjMwZDdkMGYxY2VmMDg1NTEzYWE0YzIxODYyZDlmMzg3ZDAyMiBweTNrCis3NDY0NiAyNWIxM2Y3ODJmZmU4NDhhMWQzZTAyMTM1OTRmMzk3YzEyMjM3NDk5IHB5M2sKKzc0NjQ3IGM1MTcyMWQ2NDQ1MWE0OTJiMmZiOGNkODk0ZDY1NzFmZmI4YWJkMWEgbGVnYWN5LXRydW5rCis3NDY0OCA2M2I2YTkxYWQ5ZDk3ZGM4ODhlZDkwZGFlNjRmNjUwYTM5NDlkNWQ1IHB5M2sKKzc0NjQ5IDE3ZTgzZjAxNjllODFmZjFkYWUzMDg5YWMxY2VlZWY5YjA5YWRjMzEgcHkzaworNzQ2NTAgNjc1OGJmMjAwMmRhYjdjMTY3YjRhNzc5MmI4YjBkOTkxN2NjMzkwZCBsZWdhY3ktdHJ1bmsKKzc0NjUxIDhhOGUzYzE2NjhhMDk5NzQ0MWUzMWFkYzcxY2M3ZmQzODg3M2Q5ODEgcHkzaworNzQ2NTIgMTUwMWExMzYwY2U0ZTQ4NTc1YmU0N2M0ZjA1ZjdmYWRmZTFiZTAwOCBsZWdhY3ktdHJ1bmsKKzc0NjUzIDIwYmZjMWQzNTk4OWMwNDUwOTc1NjY5ZDZmMThjMzAwZjE5NDZjMTcgbGVnYWN5LXRydW5rCis3NDY1NCBjMjE2NWJlMDAxNzFhNjgzOTQzYjVhNGVhZmZmNTMwN2MxZThhZjY4IHB5M2sKKzc0NjU1IDc3ZGIyNWM3NTI2YTEyOWU0YzJjZTA0OTcwZDllNmFlNmJjNTU4YTggbGVnYWN5LXRydW5rCis3NDY1NiBlODQ0MTg1MDc5MGY4NmRkODEyZjRhMzIwZDc0Y2E2MWRiOWM1YjhkIGxlZ2FjeS10cnVuaworNzQ2NTcgNzU4MzdjZmU5ZmZiZjlhZmFkY2U2OTY1Mzk0MDQzZjZlMzE1MjdlYSByZWxlYXNlMjYtbWFpbnQKKzc0NjU4IGQ1NjdkOTYzY2IzNzA0YThjMzhkNzg5ZjE1MzAzMzY1ZDc3YTAyYTAgcHkzaworNzQ2NTkgMGY2ZGMyZTZmMDkxZTQxMjI3MWQ1OTQwNTJlMjcwNjQyMGVkMzJiNSBweTNrCis3NDY2MCAzYjBiMzcwMTRhYWViMTc5YzcxYjZlN2JjYmZlMWIxMzU2ODZiMzNjIHJlbGVhc2UyNi1tYWludAorNzQ2NjEgNGRkYzA1OThkZjc5ZjYzMDVhNzI1YTMwM2E5OGE0MmU0ZjNjNGQ3OSBweTNrCis3NDY2MiAyNjZkN2RjM2Q2NTUxMDNjYTRhNmI2ZjA0MDc1YmE4YWQ5NDE2ZmUxIHJlbGVhc2UzMS1tYWludAorNzQ2NjMgZmZiYjhmZmYzNTIwZWY4YTBiMWYxMzgxM2U0NTBiMTMyN2NhNzE2MSByZWxlYXNlMzEtbWFpbnQKKzc0NjY0IDZmN2U3MTkyZmViYjBmZDE5YTgxNjIxZTM4ZDRlMDE3YWU4YzhjNGEgcHkzaworNzQ2NjUgNzgzNzA1YjA0MjU4MGUzMTAwNTg4ZGY1ZTNiZWJiMTk2ZDFhM2M2OSByZWxlYXNlMzEtbWFpbnQKKzc0NjY2IGQxOTExNDQ5MjI4NjAwYmE2ZjlkYzM4YjBjMjgyNWFhYTExN2I1MDIgbGVnYWN5LXRydW5rCis3NDY2NyAxZDQzODEyYWFkYjYxODg3MTcwMTIwYzBlYjY4NTljOGY2YzJiNGRlIGxlZ2FjeS10cnVuaworNzQ2NjggM2M3YzliODFlMzYxNDQ0NTFkYWU0NzQyY2Y3YTdiN2Q0YmIxNzM3YyByZWxlYXNlMjYtbWFpbnQKKzc0NjY5IDYyMzE0N2EyYjViMWFiNDM3N2NjMTdjZTNiMTg0ZGNiYzFkMmMwYjcgcHkzaworNzQ2NzAgZGM2MmRkMzMyNmVkMGJlMjNmMjA2NzkwYTY0Y2RjMzIzZjlkNTI5NyByZWxlYXNlMzEtbWFpbnQKKzc0NjcxIDkwNjQ5MGFiNmFmZmI0ZWVkZGMzOWM5NTJkNTMzZjczZjdkODg0ZWUgbGVnYWN5LXRydW5rCis3NDY3MiAzNDQ5NmJlZDkzNjVmNWRkNWJiOTc5OWVjZDA5MDcyZDkzMzU1ZWI1IGxlZ2FjeS10cnVuaworNzQ2NzMgNWQ5NzYxZTQ0NTU1ODdmNWE3MzE4MTFhMjZmODhhOGZkMzdlODFiNiBsZWdhY3ktdHJ1bmsKKzc0Njc0IGQ2MjdiMGZmMWQxN2U1ZWU0Yjg2N2FhNjY3MzRiOTI5OTZlNTM5NjIgcmVsZWFzZTI2LW1haW50Cis3NDY3NSAxOTdjMmFlNTFjYzYxMmE5NTZkM2E0Y2VkN2ZlZDU0NTBjYzIyNzY4IHB5M2sKKzc0Njc2IDFmNGYzNDJiZmUyZTgxZGU3OGE5MzlkMzM0N2Y5ODBlZTQ3OGFiMmMgcmVsZWFzZTMxLW1haW50Cis3NDY3NyAyMGI5YWYxZjAwYzg3NTNjYTg4ZWJiNzJiMDMyYjRjMjhjZTlkYWQxIGxlZ2FjeS10cnVuaworNzQ2NzggOTU5MDBkYmQ1ZGQzM2Y1MjEyNjFhNTVkYTZlYzVjN2RhMTk3MjFiNyByZWxlYXNlMjYtbWFpbnQKKzc0Njc5IGExNTJjY2NhNTM4OTYyZWVlNDgyNTVmNTc3YmJjMmY0OTEzNmFmMTQgcHkzaworNzQ2ODAgNGYwOTg4MGJlYmJiYTZjYjNkMjMxMmEzNzFlOGFjNTE4OGFlOGQxZCByZWxlYXNlMzEtbWFpbnQKKzc0NjgxIDg5OWJiY2JhZjlhNmVhODUxNWM4YmZiMTJhMDFkNjA4OWNkZjk5MzAgcmVsZWFzZTI2LW1haW50Cis3NDY4MiBkYjE1YzdhZjAxNGZhMDg3MjU1NjM2MzlmZmYyYTE4MTRmN2FiMTFlIHB5M2sKKzc0NjgzIDBjNDk0ZTU3ODdkZjZiZDBkMDk3MTUzNWQ2YjJmNGRmY2NlYzVjZDEgcmVsZWFzZTMxLW1haW50Cis3NDY4NCAzNGE3YTkxNTgzNzIzYjU4ZjkzOTIyMzBhZDZmYzE2OTU3NGJlYjQ2IGxlZ2FjeS10cnVuaworNzQ2ODUgN2U3NjlmZGRlNDM5ZmZjODA1ZDQxM2NlY2JhNTllOGJlYmRmMmNlNiByZWxlYXNlMjYtbWFpbnQKKzc0Njg2IDllN2I3ODMyZmQ0NTEyNzhhN2VmYzk3MjI4OGIxZWM1MTIxYWIzMDIgcmVsZWFzZTI2LW1haW50Cis3NDY4NyA5MmYxNmM4Nzg4OWRhMGY0MmRlM2VhYmE2NmZiZjNkMGZlMjFjYzc5IHB5M2sKKzc0Njg4IDY1NzJkMmVmYzhiMjlhYWFmMjgwZDg0Y2QzNWFjMjdkZTQ0MGE2MDQgcmVsZWFzZTMxLW1haW50Cis3NDY4OSBjNjY0NTVhNDE2ZWM3YmZkOTM0MDEwMmM4MTcxZmYxN2ZmYmJlOGZkIGxlZ2FjeS10cnVuaworNzQ2OTAgNTNjNGVmZDE3MGMwNTE3ZjE2MWE1YjA3ODM4NmY3OTMwMzEyNmJlZiByZWxlYXNlMjYtbWFpbnQKKzc0NjkxIDc1MDAwOTZiZjFhMDdlYjA2NGM1ODhkODdjMjRjZmIwZmY1Njk4NDQgcHkzaworNzQ2OTIgODY5MDFjYWU2YjY0ODNmOWEyZDU2ZWEzZWUzNDA2YTc1YjMyNzk0NSByZWxlYXNlMzEtbWFpbnQKKzc0NjkzIGQzMGEzZDU3NzE2NGViY2RhODJhZDJiYWY4NjkzMDUwMDg4YTVmNmQgbGVnYWN5LXRydW5rCis3NDY5NCBhNzBlNzJlZmMyYWQ2OWNkYjk4YTM2ZmRjZTIzMzgwMzcxMDExMzZhIHJlbGVhc2UyNi1tYWludAorNzQ2OTUgNWUxMTA4NTQ1ZTc4NzRhNDljMTc3NDNkZTNkYTQ3NGJkMmM1Zjg4YyB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ2OTYgZWQyYzVlMDA3NDExZDA5NmQ5MzgzNGExZWFlZGM2MTE2YmIyYWUyNSBweTNrCis3NDY5NyA0ODAzZTc2ZjIwYzU2ZmU5ZTk5YzliNWJiNDI5ODhhZTU1MjcwYmZmIHJlbGVhc2UzMS1tYWludAorNzQ2OTggNzkwYzAxOWY2NDAzODg3MzAzMDkwODJiZmY1NWRjNzczNWQyYWY0OSB0a19hbmRfaWRsZV9tYWludGVuYW5jZQorNzQ2OTkgZGM3MjE3Y2I3M2I3YjNiZjI3MGNmZjNhODBjYzQ0YmZmN2Y3YjdiYSBsZWdhY3ktdHJ1bmsKKzc0NzAxIGY2NDU3MGQwZjcxZDlkYmQ3MDA1MDY0YTM0NjQ0Nzg1NjRlMGM2NWYgbGVnYWN5LXRydW5rCis3NDcwMiAzN2Y1ZDE3ODViYjNmZThjMjczOTY1ZWZiMzAzYzhiNzYyNmJjZmM5IGxlZ2FjeS10cnVuaworNzQ3MDMgMzAwZGEzY2NmOWZjM2Y3MTRmMWQ1OTgxNWFmYjY0MWIxODY0MzI5YSBweTNrCis3NDcwNCAwZjczMzNhY2E0NTUzMjMxMGM2ZjU3ODM0MjMwZDA0M2VkYTJjZWQ3IGxlZ2FjeS10cnVuaworNzQ3MDUgZTg5NWVmODJjMDg2Y2NiODNiZDE2NTQzNGJkY2U0YzkwNjAyNTA4MCByZWxlYXNlMjYtbWFpbnQKKzc0NzA2IDhhOGQ0NjdjODljY2VhMDRiMTdkODI3ZWQ4OGRhMjY4ZDkzOGI0ZjEgcHkzaworNzQ3MDcgMGRkMGIwZGU1ZTMxZjAxYjY0N2M5NzI0MmE5OTI5OWJmM2YyZTE3YSByZWxlYXNlMzEtbWFpbnQKKzc0NzA4IGQ0MTAyNDU5MzkzMWY2OWFhNzY3MzQ4Y2JiNTRlOWFjNWU0NWI3YWMgbGVnYWN5LXRydW5rCis3NDcwOSA1ZjVlYTc0N2UzMWExYWZkOWRlZWI1ZjNkNGE2YmNkYTZjMjRmNmRkIHB5M2sKKzc0NzEwIGNlYjc1ODE5NTM3NzE2YzVhYTdlNTNlYzk3YTQ4ZDA0ZDdlZjNhYzMgcmVsZWFzZTMxLW1haW50Cis3NDcxMSA2NmEyZGUwZDQyOGU2NWRiNGU2NTc4ZDA4NDRmMDE0OWFhNGI4ZThmIHJlbGVhc2UyNi1tYWludAorNzQ3MTIgNmZlOWRmYjEzOWMzMWM3NTQyODBhMTMwMTEwZmM0ZmM2M2MxM2ZkNSByZWxlYXNlMjYtbWFpbnQKKzc0NzEzIDFkMWQyZGI0NTZkODZlMjY3YzA1NDBlMmRkOGY2ZDUyYWEwOGFhMmIgcHkzaworNzQ3MTQgZGU2MjdjZmVlZDE0NjZjN2M5MjFlYjI0YzI2NDdkOTc4Yzk2YTllMyByZWxlYXNlMzEtbWFpbnQKKzc0NzE1IGZkMzRmZmM4ZjgwNDJmM2U3NmI4ZDI5MTgwNDMwOGRmZjUyYjgyN2MgbGVnYWN5LXRydW5rCis3NDcxNyA5MWRjNjMyMjcyMmRmOGIyYWM4Y2MyZDU0ODE1YzkwZjlkOGE3OTllIHJlbGVhc2UyNi1tYWludAorNzQ3MTggZmM5YTAwNzk5Nzk1YzRkMDQzYmFmZGQ4MzAwMzUxMjgxZmIzMGQ0NiByZWxlYXNlMjYtbWFpbnQKKzc0NzE5IGUyZmEwNjA1MDhkYTA1M2M1NzQzZTJkNTE3NzJjMzlmYTU2OTAyMjcgcmVsZWFzZTMxLW1haW50Cis3NDcyMCBkZDZhOWJjMzk5NDYzZjA2MmVkYzgwNzExOWVmMDA0ZGQ0ZGUzNDQxIHJlbGVhc2UzMS1tYWludAorNzQ3MjEgZTA0MDlmMDM4MjJmYjMwZjdkZmE4NTk4MzQ5OTRhMTkyODEwN2RiMCBsZWdhY3ktdHJ1bmsKKzc0NzIzIDQwZmQ4ZmQ5NmQ5NmNkYTFjZTdjODI2NWQwNzU5NmZmMzA4ODY0NjUgbGVnYWN5LXRydW5rCis3NDcyNCAzMmU4NWQ1MGM1MmRiY2I0M2E5NzFiZmRkODdiYTNjZjU5MzU1MzZiIHJlbGVhc2UyNi1tYWludAorNzQ3MjUgMGJjNzU5ZjZkZWQ1YzhmYmVhYTRlOTAwOWExZWIyMTNmZmI4ZDhiNSBweTNrCis3NDcyNiBlMDE3OGI4YWVhZjA3OThmYjZjNDM2NGJhYmY1ZjMzYzM0YjhhYTE2IHJlbGVhc2UzMS1tYWludAorNzQ3MjcgOTMxYWY2NjExYWU5Y2U0NTRlNzFjNWZlMmJmNWFjNmQzMDE1ZTQxMCBsZWdhY3ktdHJ1bmsKKzc0NzI4IDY3ZGU0MmNhMGEyNmE3MDQxYmY0MjZmYWRhNzY2ZDY3MTlmYjlkZjkgbGVnYWN5LXRydW5rCis3NDcyOSA0YjYzOWY1YjdkM2ViZWUwYTBhZWU0MWFjODJkZGY0NWMwZDYwNzRhIHJlbGVhc2UyNi1tYWludAorNzQ3MzAgNmZhOTQ2ZDA3NWY0YWMzNDcwOTg3YmQwMTE4YjI3YmM2YTMwMjgyYyBweTNrCis3NDczMSBkNWZjNTE4OTE5OTdkYWVmOThjMzA1MGFkNjVlNWYzMzUxMmI1ZWQyIHJlbGVhc2UzMS1tYWludAorNzQ3MzIgZTFlZmNhNjFlZTRlZDlmOTM1NjkyMTU2ZGFlMzRkM2JkNTdhZjc0NiByZWxlYXNlMjYtbWFpbnQKKzc0NzMzIDVkZWM4YTEyZTQ1NWFlOThlNzAyYTFkOTEzOWQzNzJmN2ExMzI2NmYgbGVnYWN5LXRydW5rCis3NDczNCA4ZjZjZjM5Yzk2ZGQ2MjM2MDMwMTBkMzg1ZGMzNjM1Njg4NDdkMTM4IGxlZ2FjeS10cnVuaworNzQ3MzUgMDBkNmNiNjI1NjY3ZjM3MTRiNGFkYjc0YWE4YmZlMmI5MTJjMDg1OCByZWxlYXNlMjYtbWFpbnQKKzc0NzM3IGFiN2ZkNGJjMzgyOGY4Y2UwNzY5NTg3MTM5ODJhYWVjOGI2NmQ3ZTUgbGVnYWN5LXRydW5rCis3NDczOCAyNWE2MTdjYTgzZTIzOTI1NDc0MDc0OTQzNjM5MTRiMTY0ZDg0MjBlIHB5M2sKKzc0NzM5IDVkMTUyOTZhMmE0ZTFjNzViZDVlYzdjOWNmZDU0NjhhYzA2YjFlOGMgbGVnYWN5LXRydW5rCis3NDc0MCA4MzVmYzg1NzdkYzc5MGUyZWU0NWVjNTI5OGEzM2YyZThjMTk0ZWIyIHB5M2sKKzc0NzQxIDdmMmE4Nzk0Mzk5YTFlNjBjNDA5ZjM3NDVlNDVjNWJjMmYzYTM5OTQgcHkzaworNzQ3NDIgMGY2ZGIwMDJiM2ExZmVjOTk4OTMyZDA2ZWRhNTc2ZjE0ZTZjN2QyZCByZWxlYXNlMzEtbWFpbnQKKzc0NzQzIDk1ODBiYmJiNTUyZTEzYTAxMTBkMmM4YjZkMWI1MmU1MWRiNjFmYTcgcHkzaworNzQ3NDQgNmFmZmQ2ZGRhMjI5ZDE0NmM4NjIzODcxYWQ0ZjQ5OGNjOTJkNDU2OSBweTNrCis3NDc0NSA3ZTZmNjE0YTZhZDE4YzJjZjJhY2ExYmQ5NWE3NGNhMTY3NzJlNmIzIHB5M2sKKzc0NzQ2IGQ0ZTNhZjM0M2UzMjBhOTI5OTk5ZjEzNmRmZWUzNjk4MTkxYWI5NTkgcHkzaworNzQ3NDcgM2ZiMWMxZmJlMjZjYWVmNGQ0ZDU0NGQ0MjNhYzk2MzM3MDNhYWQ1NCByZWxlYXNlMzEtbWFpbnQKKzc0NzQ4IDYyMjUwMjFiZGMzNmIxODA5YzRhOGU0MmYwNTEzZDM3M2E5MjE3ODcgcHkzaworNzQ3NDkgOTJkYWE5YzQxZDU2MWRkMDFkZGU2NDY2YzAyNWRjZmRhODVkYjhhYSBweTNrCis3NDc1MCBlY2QyMjg1MGQyMDFjYTRiZjI3NzQxMmQ2N2QxMTU5Y2M5MmEwMTE3IGxlZ2FjeS10cnVuaworNzQ3NTEgNTFiYWFkMjhmZTdhMTQxZWQ0ZDgwMTRmYWIxMmEzOTFkOWNjY2QzNSBweTNrCis3NDc1MiA2YmYyNTM5ZDNiYWE0MjFlMTliNjg0MDFlNmRjNjYyYjQ3MGQyZDQyIHJlbGVhc2UyNi1tYWludAorNzQ3NTMgZDlhNjY5MDVmMDNlOTVjMjA4ODJiN2VjNGY4YTIxMTU1NGQ0ZWExMCByZWxlYXNlMzEtbWFpbnQKKzc0NzU0IDM5YmUzZWY4MmQyMzM2ZTMyNzNmMGQ1MmQwNjNjMzBmMWQ3NzU4NDcgbGVnYWN5LXRydW5rCis3NDc1NSA1MTExZDMyOTk3NDE2MGM5ZGMzNWRiNWFkYmEyZGUwNmI0NDE5ODc5IHB5M2sKKzc0NzU2IDNkZjk5MTRlZmM4NGUzOTM4YzI4NGMxYWFhYzhkYzkzNTA4MmFjNTYgcmVsZWFzZTMxLW1haW50Cis3NDc1NyAyYzllYzRlN2Q4YzIxMGI3NzI3NmE1OGE2YThmYjgzNjM0ZjBjMmVhIGxlZ2FjeS10cnVuaworNzQ3NTggZmFkMDI1MTMyNGQ3YWExNDczMDhkZTRmNDgxMzg1ZGMwNWUzM2U0YyByZWxlYXNlMjYtbWFpbnQKKzc0NzU5IGZmZjU5YjBhZGQ5OGE1NjE1NzRlNzY0MGYzMzEwN2Q4MWVmMzMxZGQgcHkzaworNzQ3NjAgMDc4MWFjZmRjOTQ1ZDkxZWJjZDNhMDkyN2Q3Yzg0ODM2MzY0OTU0ZiBweTNrCis3NDc2MSA4YmM0YzhjYWM3ZDcyMmZiYjZkZDFkOTllZTVjMzM5ZTQyMzU0OTc0IHJlbGVhc2UzMS1tYWludAorNzQ3NjIgN2Q5Y2M0YmNkNzc2MGU1NDFmZTRiY2M4NDA5YjkxZmE2ODJhZDkxZiBweTNrCis3NDc2MyBkMGJkYjE5MzBkNDllNGUyYTkzODM5NTA5M2VhODA0ZjgwYjAyYzcyIHB5M2sKKzc0NzY0IGRkMDI3OTE2NjZlMDViODA0ZDQ3ZmNhNDE3YTA2OGQxNDg1NjhlODggcHkzaworNzQ3NjUgMjI5MzBhZjRkZGY3MzRmYzliYTViZWY4MTNhNjQ1N2FjYjVhZWNkMSBweTNrCis3NDc2NiA5MTE5NDY3YWE4NGU4MjhlMzQ5NzZiYWE3MWNkZGU1NTQ3MzkwZjRmIHJlbGVhc2UzMS1tYWludAorNzQ3NjcgZjNhMzAwODNmZDk2NGZjMjUyN2FkNGMwZWQ1MTU5M2MyY2NhNWM2ZiByZWxlYXNlMzEtbWFpbnQKKzc0NzY4IDNjNTdkMjZiNDBjNDY3YmE2NmRhZTYyMDcwMTE5MjBhY2UyYjc4NGIgcmVsZWFzZTMxLW1haW50Cis3NDc2OSA2NTk0MDY2ZTUwNDE2OTQxODM3NWRkOTA4MjExN2M0NTlkNmM4NDcyIGxlZ2FjeS10cnVuaworNzQ3NzAgZjQ0ZjQ2ZmU4ZGE1MmUzODBjYjEwOWE4M2ZjNWNkZWNjNTdhNzA4MSByZWxlYXNlMjYtbWFpbnQKKzc0NzcxIGQ3YWU4YjA3MzllNDdhZTY0ZDg3NTIxNzMzOGIxZDhkM2FhMGFlZjUgcHkzaworNzQ3NzIgMzE2OTIxY2M5MDRhNWRiMmU1NTlhNzM2NGQ3ZDMwZDU0MzY2ODMyOSByZWxlYXNlMzEtbWFpbnQKKzc0NzczIDBjMGE2Y2ZkNGJlMjIwYzg1MDhhZDE5YzllYzRjYjZlYzhkYjBiODMgbGVnYWN5LXRydW5rCis3NDc3NCBhYWE2YjcyNGE0ZmNlNDYxMmVjODI4YjNkNGQwNTk5ZTYyN2VlMjNiIHJlbGVhc2UyNi1tYWludAorNzQ3NzUgNDNkYTUzZTUwMmUxNWRjNDRhZGEzZTNkZjg3Yjg2NGEzZDQzNTNjOCBweTNrCis3NDc3NiA4MzkzYTkwMjE2YjM4NmM0M2RmNDIyMTBjZTViNzFjZGFkOTA5NGQ3IHJlbGVhc2UzMS1tYWludAorNzQ3NzcgYmI1ZmMxNWIwMzRjZTNhOTQxYmE5YzhmNjVkNzI4NjhhMjA3YWQwMyByZWxlYXNlMzEtbWFpbnQKKzc0Nzc4IDFhMzlhNGRkMjc3YzQ5NzQ3YjAwMDRjZGI0MTAyZmRmNTBkZGU3MTMgcmVsZWFzZTI2LW1haW50Cis3NDc3OSA5YWNlODYyOTliYjhiZjRiZTE1OTcyYjQ1ZjQxZDkzZWFiYWY5MjM5IGxlZ2FjeS10cnVuaworNzQ3ODAgZThkNjgxYzQ0OGQ3MmRkYTY0YTJmNzk4ZDIyZWZlNGQ4MWE0YmVhZiBsZWdhY3ktdHJ1bmsKKzc0NzgxIGFlZmYzMzE5YzQxOGI0MDdiZDZjOTc0ZDJhMzA2YWFmYzk0MTI3MWUgbGVnYWN5LXRydW5rCis3NDc4MiA3MTVlNjk3MjUzZjI0YWM1YmI2ZTU4OWI4Y2VmNjQ4NmU3NjI3NWVkIGxlZ2FjeS10cnVuaworNzQ3ODMgOWYxZDZkMWRiYjAwODBjNmU1NWM3MzRkOGE4NDBjYmVmOWNkY2NjYiBsZWdhY3ktdHJ1bmsKKzc0Nzg0IDFhMWFmOWZiZDgzMTc5OWIxNjM2N2FlMGU0ZTBiMTY3NzIwNDFhZjYgbGVnYWN5LXRydW5rCis3NDc4NSAyNTEzYWZmNDQ1YzJjOWVjMTU2MzQ4MGZkMWRiNzFhNDgxOGU2YWE0IGxlZ2FjeS10cnVuaworNzQ3ODYgNzY0M2UyNzMwNDM3NjRlNmUwNjQ1MDQzYTFmYTZkZTk2NTljOTc3ZCBsZWdhY3ktdHJ1bmsKKzc0Nzg3IDk1ODRiOGUyMmY3NmZiYTgyY2YxZWY4MzEwNDBhNjI1NGM2NWNjZTcgbGVnYWN5LXRydW5rCis3NDc4OCA2ZDQ1ZmJjODViZGYzZmRiNDIwZGU1NWEwMTNkNThiYTc1YzA0MGZiIHB5M2sKKzc0Nzg5IDliMmE0MmZiZDA0YjQyZGFlYTVhYmRiYzA5ZmEwNGQyOGE1YjYyNWUgcmVsZWFzZTMxLW1haW50Cis3NDc5MCBjMDRhN2MzNjU1ZmMwZGI3Y2U0ODlhNmJjN2EzMjc1MTY5MGJhZDhjIHJlbGVhc2UyNi1tYWludAorNzQ3OTEgNjg1NTk1MWFmZjE5OWUyOGQ4NTAwNWE2YmI4MGZmMDcyNzQ5ZjNhYiBsZWdhY3ktdHJ1bmsKKzc0NzkyIGNmNGUwODE1ODQ2YzU4NGM5MDlhNjRmZmZmMDdmNDZmNzQ1Y2EzN2EgcHkzaworNzQ3OTMgM2FmZjU5NzkxMGM0MWI5ZjJhZjBiZWE1ODIwZjAxYTg0ZTQxNjA1OSBsZWdhY3ktdHJ1bmsKKzc0Nzk0IDhjNzc3MWRjZTA0NzRhODdmMmU2YjdhNDUyMTUyY2E1MjJjMmQ1NzggcHkzaworNzQ3OTUgZDliNWI3ZGQ4MmEyMjI0YmRiNTJjYWFhNGMzOGE5MTcwYzkxMDU2OSBsZWdhY3ktdHJ1bmsKKzc0Nzk2IDFmMWY2YmZkNGRmYjA0NDQ3YmZhOWU0YzU1MTJkMzQ0ZGRiYjdiMmUgcmVsZWFzZTMxLW1haW50Cis3NDc5NyA0YWIzYjVlYWU4OTc5ODIyODRlZWI4ZjI3NjRhYTliZmQ3MzcxMGU3IHJlbGVhc2UyNi1tYWludAorNzQ3OTggOWFkNmQ3MmJjZGE1YjU0N2JmYjUyYjVmZTExYzg3NWFjZjFlOGU0ZSBsZWdhY3ktdHJ1bmsKKzc0Nzk5IDIxZTkwN2EzODM2ZjNjOWUzNzRlMWMzYWIxNGYyYWFmYTc1NTIyMWEgbGVnYWN5LXRydW5rCis3NDgwMCA3ODQ3YjQwOWI3OWMxY2I3NDVjMmJjMzdhNDg0NDI2ZTdjYzg2YjEyIHJlbGVhc2UyNi1tYWludAorNzQ4MDEgNGNjY2YzY2UxNWEwOWM2MjdkYTZkNDNhNTA3OTFiNWVmNDkyZDM5MCByZWxlYXNlMjYtbWFpbnQKKzc0ODAyIGRhODUzZTk4M2YwODI0ZjNmYjVjN2M5NmYxZTNiMDEzYTNiOTkyM2UgcHkzaworNzQ4MDMgMmQ1NzVmMTZiY2VjZDlmNmUwODM3ODRiMzM3YmMyM2FkMmRlMzcxNSByZWxlYXNlMzEtbWFpbnQKKzc0ODA0IDg1MGRhZmQ0YTI0NTNkNTI0NjEwMTgzMTc3ZTk2YmZiZDdlYjQzYmIgcHkzaworNzQ4MDUgNGU3ZjZiYzgxMGIzNjBkOWU4NTc0ODNlODQzY2MyZGEzNGJjOGU4NyByZWxlYXNlMzEtbWFpbnQKKzc0ODA2IGJkNDIwMzg4ZTZiMWRhMTg5ODVhODc0MzYwNjhmMzhiMmRkYTZiNzAgbGVnYWN5LXRydW5rCis3NDgwNyBhNmRmMDc0ZDJlMDkzZmJiMGIyYTViMjNiOGI1NmNmYTI2YmJlZTg1IHJlbGVhc2UyNi1tYWludAorNzQ4MDggOTQ2MjQwNGRmNGUxMGNmZGExZWJmZGZjNmFmYWM2ODA0ZTQzNzc3OSBweTNrCis3NDgwOSBhYjRhODdmZWYxYWU2ZTRhODRlN2Q4MDRjY2Y5MWQyY2NjM2RjYmE5IHJlbGVhc2UzMS1tYWludAorNzQ4MTAgYTMzZjk2YjQzZjI0YWNiMjE2M2M2YzVjZjYzNWE1Yjc0Mjk1ZDQyNyBweTNrCis3NDgxMSA0MTAyYjVmMmEyZjFlM2NlNjRmZDBiYzY1N2Y4MDdiYmZiYzBhYmZlIGxlZ2FjeS10cnVuaworNzQ4MTIgODUxOWUyOGIyODRmNzk0YWI2ZjYyMDZkYjdhYWMxMWQ3ZDM2YzQxMCBsZWdhY3ktdHJ1bmsKKzc0ODEzIGEyYmFiMmQyMzc0NmI1NTJjOWY4ZjhiYzJjZTc1MDhhMjU3MmExNTEgcHkzaworNzQ4MTQgNTYwYzA1NGEwMWFhMmZmZTEyZmZjZmJiN2EzM2RkMDczZjQ3NDgxMyByZWxlYXNlMzEtbWFpbnQKKzc0ODE1IDdkNGMzYzA4M2YzNjE5N2YyZjM4ZGUzNDYxZWRhNThiYWVjYTAwNjIgcHkzaworNzQ4MTYgODg1ZGExNDZmZWE1YTNkZmEzNWQ5Yjg1MmViNDY5NzY5NWZiN2MzMCByZWxlYXNlMzEtbWFpbnQKKzc0ODE3IDUwN2JhOTdhMmVlZWYzMzk0NTVjYmVjNjk3YzgwNmI5NmI3YjhlNzIgbGVnYWN5LXRydW5rCis3NDgxOCBiYjZhZGU1MWEwYjYyMzhkMTM1YzRhNjBiYjYyYmIyNGIxNTEyYWQ1IGxlZ2FjeS10cnVuaworNzQ4MTkgMmViZThjODFhZmYwNjkyOGM3YmVhMzg0N2EzYTc0ZDNjMGY5OTJlZSBsZWdhY3ktdHJ1bmsKKzc0ODIwIGMyZGUzMjg2NmQwZTNkNjQwYWJlOTJiMzQ3Y2E4NTQxMTM5MWQ0N2MgbGVnYWN5LXRydW5rCis3NDgyMSBjMDE3YTQ1MGY0YTU3NjhmYjUwNjMxYTUxOTQxMDMzYzI0NDJmMTVkIHB5M2sKKzc0ODIyIGQ0YzI3ZGE0NmRjYTBmNzk5YmE0NWU0YzBlOGZiNGY1NjE2Y2ZmMWMgbGVnYWN5LXRydW5rCis3NDgyMyA3NDJjZTU4YTMxNzFiYzEyZWU0NjAzNTA2YWU5ZWRjMTZlOWQ0NzM5IGxlZ2FjeS10cnVuaworNzQ4MjQgM2UxOTNkMGIxYWJhODlkNGJkYWFkNGMzNjIwZjg3MjQ1NmY4Nzk3MyBsZWdhY3ktdHJ1bmsKKzc0ODI1IDMzODVlNjE4MjExMjk0OWE3MmQ0YjQ5NWFiYjA3YjcwZmJhNGQwNGUgbGVnYWN5LXRydW5rCis3NDgyNiA0ZTYxZDdiZDFiMzY0NmJhM2ZhMjkwOWU0YzE2MmUxOTMzOWRkYzZmIHB5M2sKKzc0ODI3IDk2YjY0NTc1MmMzMzQ3NWIzOTY2ZGM1MjUxMmJlZGY4MzJiNmE2MGUgcmVsZWFzZTI2LW1haW50Cis3NDgyOCAyNmRmMGI4NTZiY2JjNDgwM2Y2YTA1N2QzMThkMjRhZjQ1MDczN2M2IHB5M2sKKzc0ODI5IDRjYmRhYjYwMWI4N2ZmMzhiNGVmZDJiYzM4ZTYwMjQ0MGQ0ZWQ4NDMgcHkzaworNzQ4MzAgNGI2NGRiMzZmMDliOGZkZGMyNjI2NmYwN2E3NTQ4OTc2NzQ5YzhjMCBweTNrCis3NDgzMSAzMWMyMzZjNTNiMDI0NTdlNGY5Y2ExN2ZiOGRlZGQ0ZDViYjM5Yjc1IHB5M2sKKzc0ODMyIGYxMzkxNDQyYmQwYjVkODgzMzdhMGQ1ZmQwMTY1MGIyZmQwN2JkYjAgbGVnYWN5LXRydW5rCis3NDgzMyA5YjAwM2JiY2E1ZGJmNWM4MmM1NTVhZDViMmU5OWMyMDZmNTJjOTFhIHB5M2sKKzc0ODM0IGQ4MDcyMjA2ZmRjNjFlYTY5MjliNjUzMGY5OTFlMzVlMzAxZWJlMDYgcHkzaworNzQ4MzUgYjZlMzllZWExYmJmNmVmM2ZiMzE1NWNmMGE0ZDUxM2NkN2M3ZTlhMCBweTNrCis3NDgzNiBmYTkxMjcwYjYwODdiMGZkZjM5M2NjMDg1YmU4ZGM4ZTYwOTliNzBmIHJlbGVhc2UzMS1tYWludAorNzQ4MzcgYmU0ZDQyMDA5ZjdlNWJjYjdiZWVlYjM0MDIzZTY2YzAzMzA1NDg4MCByZWxlYXNlMzEtbWFpbnQKKzc0ODM4IDMyNDQ4ZjhhNmM2MzZmMzlhNjE3OTg1ZDEzN2E1NmFkYjlhYzM0NzggbGVnYWN5LXRydW5rCis3NDgzOSA3YTNlZDFiNDM0MTA5NzUzYTU3ZGU4MmQ3YTljMzNiMjdlNjk0ZDc4IGxlZ2FjeS10cnVuaworNzQ4NDAgMzM0YzYwZjUxMjU5NGM4Mzc2ZmMzMGY1MjllMDM5N2ExODgwZTZkMiBweTNrCis3NDg0MSBiMGQwM2ZhMDczZWM1ZDE2N2EwMTY0N2ZmZjM2MjUzOTYyZDE3ODRmIGxlZ2FjeS10cnVuaworNzQ4NDIgMWFkOWYyYmRhMjBhMjZjNzQzMjYxZTNhYTAyZWVlYWIwNzU4M2I3NSByZWxlYXNlMjYtbWFpbnQKKzc0ODQzIDNhY2QzMWVhZGJiODgwNzA0NWNkYTA5NmI3ZjQxNDE2NGM2YTNkMTEgbGVnYWN5LXRydW5rCis3NDg0NCA2NjFjOGE5Mzg5MmZmN2MxMGRkZTAxZjBkOGE1ZWI2MWVjY2ZlYzQwIHJlbGVhc2UyNi1tYWludAorNzQ4NDUgMGYwOWQzOGY4NTJlODQ3YTg2YTU3YmQxYzJlYmY4NDI5OTg0MjYzMyBsZWdhY3ktdHJ1bmsKKzc0ODQ2IDc4ZmY5YTc0Y2I0ZTliN2RhYTE2MTE2ZWQwNjYwNjYxYmMzMDhhYzAgcHkzaworNzQ4NDcgMWIxODk2N2ZiZDQwODEwNjkxZWE1ODI4YzhlMDE3ZDE5NDQyYmEwNCByZWxlYXNlMzEtbWFpbnQKKzc0ODQ4IDhhYjMwNDAzNDAyMWE1NzcwZjczMGYxMTdlOGY2ZTg1NzVmYTBmZjUgcmVsZWFzZTI2LW1haW50Cis3NDg0OSBmYWI5OWU4ZDI4YzMyNzViZWQyNTMwMGQ2YmJmOWQzZDhiNGRjMzhkIGxlZ2FjeS10cnVuaworNzQ4NTAgYWUxYjFjZjQ3YzBjYTFmMzM1ZWM3YWMzODYzZWQwZjA5ODEyZmY2OSByZWxlYXNlMjYtbWFpbnQKKzc0ODUxIDFlMDlkYzY4YzhmMzYzOGJmNmNiZDgzMTU2NWZmMjBiYWQ0ZDRlYmMgcHkzaworNzQ4NTIgMmU5ODU4YzBkMzY0ZDFjZTRiZGYwMDI4YmE0ZWE2ODYxZGM5NGZlMSByZWxlYXNlMzEtbWFpbnQKKzc0ODUzIGEyY2JiOTQyMWExMTQzYWM1YWYwMzI3ODUyNWQ3ZDE2M2E4N2NkNTIgbGVnYWN5LXRydW5rCis3NDg1NCA5MDY5ZTUyYzBiZWRjMjUzMzJmMDIyOTk1M2M4NWM1MGFkMzYzZDEyIHJlbGVhc2UyNi1tYWludAorNzQ4NTUgYzhjYjllZjBjZDBhMDRkOWJkMDBkMDEwYzZhOTRiZjg5NjI4MTUxNyBweTNrCis3NDg1NiA0NjYyNWJjYTBjZmI1NmY0OWVmZWNiZGI4OWU5MzYxYTQ0MTNjODVmIHB5M2sKKzc0ODU3IDc2ZTA4YjkxZDk4ZTBhZGI3NDA4N2M2ZjdlNWRhOTBlMmZmZjE4YjQgcmVsZWFzZTMxLW1haW50Cis3NDg1OCBjZGFlYjI1MWQ0ODhiZTM2NDUxNDNkNDc2ZmU5MzBhMDAzMzY5MWUwIHB5M2sKKzc0ODU5IDE3M2JlZDBlMDRjNDg5NjUyZTU3MmZhOWUwM2VjZGJlZDRiODI2NDcgcmVsZWFzZTMxLW1haW50Cis3NDg2MCA3N2I5NmE1NDI0YTJjNjUyZjc1ZGZhM2UzN2I2NzQ3M2I4ODJkMzE4IGxlZ2FjeS10cnVuaworNzQ4NjEgN2M0ZDUyODYwMTMxYjZkYTljYmU0OWUxYjFkYjk4ZmY3MWFjMGJjZSBsZWdhY3ktdHJ1bmsKKzc0ODYyIDlhMTA5NzE0MDNhNWFkMGQ0OWMxN2ZjNzExM2YyNDk1ZmM4YzdjZjggbGVnYWN5LXRydW5rCis3NDg2MyA3ZjcyNjExNWJhMjlhMGU2MDQ2MTQ4MzAyOGEyNTVmMTJhMDY4ZTA4IGxlZ2FjeS10cnVuaworNzQ4NjQgMTcyYjJkMzZkYTc3Y2QyODMxMzY4MmU2ZjJmZDlkMWNlODRkZmNkYSBweTNrCis3NDg2NSA0MmY4ODA4M2RkYmRmM2UxOGY1MWIzMDRmMDFiZTkzNjhmMzg4ZjY5IGxlZ2FjeS10cnVuaworNzQ4NjggNWZlZDVlOGVhOWNjMzMzMjY3ZmM3ZDY4ODJiYjQ3NWVkOTQ5ZjJhOCBsZWdhY3ktdHJ1bmsKKzc0ODY5IDM4YTUyYjY3MjQyOTI2MDMwZDBiZDQ5MTQzODc5MDRkNzUwNzU1YzIgbGVnYWN5LXRydW5rCis3NDg3MCAwZmYzN2UyMDAyOTJjOTM2YmY2OTQ0YTRhYzliY2QwNWQ5NGYzZDU4IHJlbGVhc2UyNi1tYWludAorNzQ4NzEgMTJmMTQ1ZDc1NTEzZWI5ODZhYTc4ZjA0OTM2MTM3YmU3NjY5ZDgzNyBweTNrCis3NDg3MiBhOTgwOWYzYjE2NGZmYTZmMGQ4ZWYzMGZjYTYxOGQyMDI4M2MyNWIxIHJlbGVhc2UzMS1tYWludAorNzQ4NzMgOGMzYjJkZGE0NzAzNjBlNTIyNTFkMzY1ZmUxNzRiNjMwZThiOWJmNCBsZWdhY3ktdHJ1bmsKKzc0ODc0IGRjOTIyYTg5Y2NmMTBjMzhmZDZkYTVhMGRiYWQ3YjQwMDI5NGViM2UgcmVsZWFzZTI2LW1haW50Cis3NDg3NSAwYTU4MGRjN2FmMTM3NjQwNDU1M2ZmNzUzZjE2MGE1YTc3NjUxNTVlIHB5M2sKKzc0ODc2IDZmNGI4NTJiODJmMTc1MDdjNTlhZWFhZGQyOTk3YjU2Y2U0NzlmODUgbGVnYWN5LXRydW5rCis3NDg3NyA5YWNiOGViNzJhOTJmYTVmNTMxODdiNjJmOWEzMjk5YWRlYjFlMGIyIGxlZ2FjeS10cnVuaworNzQ4NzggY2E5MjBjMTZiMjA1N2U4ZTQ1NTIxMTEwMjM5NmIyOTNkZGFkMjJlMCBsZWdhY3ktdHJ1bmsKKzc0ODc5IGUwZDVjMGMzODA4Y2UxOGQwZjkxMmRhMTNlZDA3ZjcyMTRmZGU3MzAgcHkzaworNzQ4ODAgYTI3YWJkMzUzZWQxY2ExMzRjODk3M2NjNmU0ZDRhYzBkYTk1YjBjZSByZWxlYXNlMzEtbWFpbnQKKzc0ODgxIGIxYjYxNWE5MTFmMDMxZjBiYTRkM2NkOTk5OGIzNjhmZjYxOGJkNTYgcHkzaworNzQ4ODIgZTQ5NzRlOTVmYTY0OWVlZjY4NWZlMjgwMjVjZGFmZTc4ZjkxODNhNyBweTNrCis3NDg4MyBiMzk4YWZlZmQzNjk2N2EyYmZiMWY4Y2U5MWI5YmU4MDFkNjY3YzdkIHB5M2sKKzc0ODg0IGJhMjI4ZTVjM2RhZjc5NmM4Njc4ODA5ZDYxZmJlMWMzNjZlNmY2YmUgcHkzaworNzQ4ODUgOWNlZWI2MDJkZGEzYjliNmUyNjQ2OTk2YWQ2YzcxMjFkZWEwMWExMiBweTNrCis3NDg4NiAwZTQ0ZGNjMGIyMGQzOWQ3MTkzYzY1M2FmMjA4NDE1Y2UxMzdkZjZjIGxlZ2FjeS10cnVuaworNzQ4ODcgMmVhMWZjMjY4NTQyNTJjN2NkMjIzYTk3YTM4YTMxZDY2NDBhOWVlZCByZWxlYXNlMjYtbWFpbnQKKzc0ODg4IGQzZWU3MzhmZGNkYjE3Y2ZjMzZkNGIyOTRlYzljYmQxMDg1ZjgwZGIgcHkzaworNzQ4ODkgMDcyZTNlMzBiNTBjYzIxZGIyMmNmMzU5Mjc3ZTczZjE4MjcyOWUyNSBweTNrCis3NDg5MCA1NDdkNDFiMWRlOTczODFiZTUzMTJmZjJjYzYyYjZhZWJmZGM5YzkyIHJlbGVhc2UzMS1tYWludAorNzQ4OTEgMWM1NDZjZjNlYjEwZDZkNmVjYzQzMjEzZDZhNGQ4MjQ2YTcyMTIyMyBweTNrCis3NDg5MiBkNjAxZmUzN2ZjNTRjZTAxOGYzNzZiNDNiYzg3YTJmNjBiNDA4ZjJjIHB5M2sKKzc0ODkzIGZkMmY0YWU5M2QwMTI3ZWRmYzU5MzY5OTg4MDE3ZjFkZDc1NzMyMWYgcHkzaworNzQ4OTQgYjYzYzcxODA2MThlMzQ4YTQyN2NkYzUyMmVhOTlhOTQ2YWU3M2VjZCBweTNrCis3NDg5NSA5OTNlZTM5ZThiY2ZlZmE5ZGE1ZTA5NWM3ZGJkYzZiNTg0YWQyNGVhIHB5M2sKKzc0ODk2IGJhZTlmNDgyM2I4ZTExYjU0NjQ4NDc3MmU3NWViZTNkZjUzYzllZjkgbGVnYWN5LXRydW5rCis3NDg5NyA1YTFlODc5ODMyZmUzM2M3NzE2NTZhYjYxMDI5ZmIwMGZlMDA0MzBmIHB5M2sKKzc0ODk4IDk4MTc5MTVlYmRlYmM1MWE4MTljOTRiNTcwMGRjNDE1NzQyYjk2Y2EgcmVsZWFzZTMxLW1haW50Cis3NDg5OSBkZTMzNTdjMjYwYjYwN2NhY2YzNmU3OTU1ZTUxZjAzNWFhZWI0ZDRmIHJlbGVhc2UzMS1tYWludAorNzQ5MDAgZGEwNGIxNTJhNmZlM2Y2NmZiOTQ1MzhjZjhmNTQ0YWI5YjdjYmY2ZiBweTNrCis3NDkwMSBiMzI2ZTdkNjY0MTM0YTgzZWRmYWUwZDdjNmQ0NGU0MDIyZGU1YTU4IGxlZ2FjeS10cnVuaworNzQ5MDIgN2E1YzExOWI4NjY5MDJmNjIwNjJjZmEzMjMwNmY2YzlmZmRlMjdkNyByZWxlYXNlMjYtbWFpbnQKKzc0OTAzIDg0ZjFjOTViNGU5NzQ4ZjlhNTQ5OTNjYTY2OWVmMmVlNTdkODhhMjMgbGVnYWN5LXRydW5rCis3NDkwNCA2ZmNhMzUzNTJmN2I3ODE2NGJmMmIzMzhjMjE2MWQ1ZjU2YzhlNjljIHJlbGVhc2UyNi1tYWludAorNzQ5MDUgNGYxNWExMzFhYjA3MTk1Y2NjYzgzNTM4NzNjZDY5N2M2MmMwYTAwMCBweTNrCis3NDkwNiBjNzZmODQzODM4YTVmYTA1NzVkZGZiNDgxNzljOGI0MmQzYjNhNjI4IHB5M2sKKzc0OTA3IDMyODlmZmMwNWNjNzg0NDk0NTEzZTJlZTdlNjBhZmEwNTIxNTkzYTMgcHkzaworNzQ5MDggYjM1ZGQxYjYyNDhlMzkzOTY4NTliOTA0MDk5NGFiMmQyNTRlYmIwYSBsZWdhY3ktdHJ1bmsKKzc0OTA5IGE0NDJjMjUwNGE1N2UxYjViNzE3Yjc4ODU2MWYwYjI2OWYzOWVmYWEgcmVsZWFzZTMxLW1haW50Cis3NDkxMCAzN2U5NjI0NmJkYTFjNjQ5MjY5MjFiZTIzMjUyMjUwNmYyYjZjNDg3IHB5M2sKKzc0OTExIGRhODE4NjE2ODRlODkzYTY0NGY3M2M3MTUwOTJkODA4MDc4ZjkyYzMgcmVsZWFzZTMxLW1haW50Cis3NDkxMiAxZDJlNmM0NDFhNTNmMDE1Zjg2OTEyYjNkMjA0ZDQ5NjBiYThmNWExIGxlZ2FjeS10cnVuaworNzQ5MTMgNzdlMDdhZjZmODdhM2M4NDU1ODE0Mjg0MDA0YjU1Y2IyYmMzODdmNSBsZWdhY3ktdHJ1bmsKKzc0OTE0IGQ0ZTAzNmM2YzYwZDRhNDAwZGY2ODYyYmUwYjFmZmUyZTRlMzMxYzYgcHkzaworNzQ5MTUgODVlZjFjMDRkOGRkZjVjZWE4YWE5NmY3NzBjMTIwZDUzZjdlZDc1YyByZWxlYXNlMjYtbWFpbnQKKzc0OTE2IDUxNzQ4ZGZjYjQ0NGM3MDA0NGU1NGI5MTBmOWNiMzE1OGI0NzI2ZDMgcmVsZWFzZTMxLW1haW50Cis3NDkxNyA5OTMxZTE3N2RhODEzOGViMDliODI4YmI5YjRkYThkYTUwMWJlNTg0IGxlZ2FjeS10cnVuaworNzQ5MTggMzc1MzhiNTUwZjY4NWFmMzgxYzM0YWUzNjk1ZjBhYmIwYTZjNDA2NCBweTNrCis3NDkxOSBmZDE4Nzc0NTMwNjA2MjUyNzM3ZDM5NGJjNTdiMjUwZmJhMWRjMTZjIHJlbGVhc2UyNi1tYWludAorNzQ5MjAgZDFkM2EwN2EwZWQ3ZjQ5ZjBmNjExM2UwMmU2ZmYzZDA4YzQyMDgxMSByZWxlYXNlMzEtbWFpbnQKKzc0OTIxIDNjODNhM2NhY2Q3Nzk4NWJlODM1NWQzY2JlZWFmZGRkYzAwMDE1YWUgbGVnYWN5LXRydW5rCis3NDkyMiAwNDNmZGRhNzA2YTM3NmZjZmMzMjUzODU5MjgzMjkyMDlkOGQ0MjIyIHB5M2sKKzc0OTIzIDgyMmEyOWY3NjYwYjUxN2ZlZDY3ZGMwNGI1YTBkODdiZTY4NDM2N2QgcmVsZWFzZTMxLW1haW50Cis3NDkyNCBiNGNhNTk0ODQ5MTQzZDY1NjNlYzcxNWIzZDk5YzU0YjE2NGZlY2E1IHJlbGVhc2UyNi1tYWludAorNzQ5MjUgZjI1NTVhZDVmZTA5ZWEwMDBjNjBhYWMyOWRiNWI0MzIyYzZhYWUyZSBsZWdhY3ktdHJ1bmsKKzc0OTI2IDIyMTFhZDNlN2JiZWQ0YjkzODY4Yjg1ZDdiYWZhZjg0NTdlN2Q3MmMgcmVsZWFzZTI2LW1haW50Cis3NDkyNyBiMGU1MTA1ZmY5N2JiOWNjNGYyYWI5YTI5ZjZmZjUxNDRlYWE5ZDg2IHB5M2sKKzc0OTI4IDdiMmJkMzliMjFjZDFjNmJhZDU5ZDIwNGIxNjlmYmRiMmE5MmI2NGEgcmVsZWFzZTMxLW1haW50Cis3NDkyOSBmNjRjMGViOGNjNjIwOWY0YzI0YmZmNWMzM2ZiYWQyMGQ3ODM2OTQyIGxlZ2FjeS10cnVuaworNzQ5MzAgZmRhMjkyZjMxNjMyNDIyYzY1ZGRjMWVlNzI1NDIzMzRmNjQzYmY0MyBsZWdhY3ktdHJ1bmsKKzc0OTMxIGYxMmNlN2FkYmQzMDAwOTBkNDJiOGEzMjEzZmM2NGVmMDQ4NTY3YWIgcHkzaworNzQ5MzIgNjE2YTY2OWM5MDIzZmU3NDczYTc1YjA5NzkzYzI3NTllNmE5ZDRiOSBweTNrCis3NDkzMyBiNGJiNGJiODY4OTI4OTk2NTNjOWMxNjI3NTAyMjFkOGM5ODdhOWY4IGxlZ2FjeS10cnVuaworNzQ5MzQgZGU2NTkwODk3M2QwMjQzOTFlZDljMWVkY2VmZjlkNDM3MzJiNmI3MSBweTNrCis3NDkzNSAxYjdiZGFlMDIxNzk0NzBlZWIyMmIxODc0MWVmNjUzN2YyYWQzMzdkIHB5M2sKKzc0OTM2IGNjMzI5YmIxOWRhNWYxYTlmYzM4NTM2MjhjZmNhMWU0NjNlYWVhMTUgbGVnYWN5LXRydW5rCis3NDkzNyAyNDNmYWYwZjVmNWU0MzEwMzVlYjQzMjRkNGViNmQyMGJjODJjYzY1IGxlZ2FjeS10cnVuaworNzQ5MzggYTJiMmNjMGZhN2FkNGQwZjQ5NGE0MDBlZmQxZjFiZTY4NzQ0YTIwNCBweTNrCis3NDkzOSBjZjc1YzBkMmUzYzc2YjEyZDg5M2M2OTRmOWJmMWExNTA5YWJhY2QxIHB5M2sKKzc0OTQwIGM1YjE1MDAxNzJmODljZjc1NWEyMTMzYTIyMzgwNjQwMDUxM2YwMWMgcHkzaworNzQ5NDEgODMxNTI1ZjE1YzU3MDI5MTIyYTEyYWEzY2Q2NGNiMWQyNGJmZDk1YSBweTNrCis3NDk0MiAwNzUyMTM5ZjNkYTFkM2FjZTcyN2YxMGM5MTlkZjRmMWQ3MDA0MDJiIHB5M2sKKzc0OTQzIDZhMjc4ZTRkOWY2MThkYjJkMmJiNTc0OGVkNTY1MTMzMjcwNDFjYWYgbGVnYWN5LXRydW5rCis3NDk0NCAzMGNjNGYwNzMyOTJlZWEyNmQxZjEzMTVmYjExNDM2MTQxZWRiNWJjIHB5M2sKKzc0OTQ1IDU4YmE4NWMwZDRiMGIwZmU5YTBmODJhODBjOWY1ODZkYzdiYjliNTAgcmVsZWFzZTI2LW1haW50Cis3NDk0NiA0NTE0NWFlYjYzMzEwYjIzMjIzZjNkYzIyNDRlNWJjZWFiNWVmNjI5IGxlZ2FjeS10cnVuaworNzQ5NDcgMDAwNzAyNGU5ZTIzNDhlNzgzNTdmOWY4ZTU2NzhlNDZlNTZjMWEzZSByZWxlYXNlMjYtbWFpbnQKKzc0OTQ4IDRjNzM0OWI5ZDE1OWE3YWRhMzUwMWViYzE5MWE4ODFkNmRjNGEzZWUgbGVnYWN5LXRydW5rCis3NDk0OSAxZWI0MjQyNTczNDVjZGI3NmJlYmMxNDkzNmQzNDE3N2QxZDk1ZjZjIHB5M2sKKzc0OTUwIDFiMTgzNmNmY2YyNjJhOTA4MTg5YWQ0YzUyOWVhNmE0NjcxN2JjOTYgcmVsZWFzZTI2LW1haW50Cis3NDk1MSA4MGEzOGY4OTNiN2YzZjA4ZTY0OTI3Mzk4ZGY1ZTJkZWQ0OWE3ZmJiIHJlbGVhc2UzMS1tYWludAorNzQ5NTIgYTA5ZGE1NmU0Nzk2OWVmYWUxM2JhZGU5ODNlZDA1OTg0MWJmNGUzOSBsZWdhY3ktdHJ1bmsKKzc0OTUzIDM5YjQ2MzA3OTdmYWNlN2Y0YzA0YWFhNzhkNzBkYmFjMjNjYWFmYjUgbGVnYWN5LXRydW5rCis3NDk1NCA2NzkxYzJiMWE3ZGM5ODhkZjE2MGEwODI2ZjhjYjNjNjA0NmQ0M2QzIGxlZ2FjeS10cnVuaworNzQ5NTUgNDE2YjY0NTUwN2QwYTg0Mzk4OWRmYTY1MmJiYWQ4ZGJhMWRkMTYyNyBsZWdhY3ktdHJ1bmsKKzc0OTU2IDhjY2MyM2FmZWEzZDE4OTY5OThmMmMyM2Q5MmE1ODA2MmQxYjRkMGEgcHkzaworNzQ5NTcgZWE2OTdjZGU2ODgyMzRmN2IyYmM1ZTBmZDUyMGQ3MDJhNzJlZTAzZCByZWxlYXNlMzEtbWFpbnQKKzc0OTU4IGY1NGQzMWU1ZmQ0ZDZmMDBiZDk1OWMxYTRkY2I3YmY2NGVmMjQyNjQgbGVnYWN5LXRydW5rCis3NDk1OSAyYzVhNzc1MGI3MWQ4MjFkMDkwMTRlMzljZmYyMmFlYzA2MTFlN2ZmIHJlbGVhc2UyNi1tYWludAorNzQ5NjAgYmQ4NGY0MmMzNjMzOTU4YjlkNTJjYTEzYTMyZjUzY2VhZjhhMTVlZSBweTNrCis3NDk2MSA1MjJiZTM2YjI5Y2QyMTQ4MWI4ZGIyNTY1YzYwNGM5ZjViOTQ1ZGUzIHJlbGVhc2UzMS1tYWludAorNzQ5NjIgMmRkZGRjNjQxYTk4NzNmMDJmYTlmODNmMWU2ZmEyMmY3ZWQyZTBjYiBsZWdhY3ktdHJ1bmsKKzc0OTYzIDI3MTdkODVhYmEyZTZiYzNlNzMwOTE1NmVhMzMzMTBjNmEwZDE1ODMgcmVsZWFzZTI2LW1haW50Cis3NDk2NCBlNTYxZjEwYzdiMzExOTI4YmU3NjA5MWJhZTI2ZTAzY2JjZTVjMjU3IGxlZ2FjeS10cnVuaworNzQ5NjUgZDEzMTk1NjUzM2JmMWNkOWNhODgzN2UxNmYxZmU1NDFiNGUxMzJlNSByZWxlYXNlMjYtbWFpbnQKKzc0OTY2IDY5ZWUxNTAxYjEwMjY5YzNmN2VkMzFhMDM5MmNiMTgzOWE3YWZmODUgbGVnYWN5LXRydW5rCis3NDk2NyA0MzZjYTc3NWYyNmNhYTg4NDllNGY5YmRmN2I5MjAzM2E3MWFmZDhiIHJlbGVhc2UyNi1tYWludAorNzQ5NjggMjI1NDhjN2VhZjM3NWJkNzZlM2M3MDVmMTBhMGQzZTE0YzllZDk4MCBweTNrCis3NDk2OSBiM2QyNWU2ZjY2ZjEyZGU1NjQ5NzQ1NmM1Y2EyM2JhZDQzMTljOWJmIHJlbGVhc2UzMS1tYWludAorNzQ5NzAgYjBhMmZiYTAwNDU4NjExOTA4YThkYmJjNmE4MmQzMWYwZGI3MjEyYSBsZWdhY3ktdHJ1bmsKKzc0OTcxIDFjNTBkYzIxMzMxMmRjNjQ1NzMzNzkzNWQyNzk1ZDlmZGYzYjZhZGMgcHkzaworNzQ5NzIgZDhjMjQ4YTU5MzEwNTBhMWY5NzVjM2ZmOWI3NjQ5ODJmNzQzMDg5ZCBsZWdhY3ktdHJ1bmsKKzc0OTczIDk4MTA0YWI4NTlmYTk2N2I1YWI0YjVhYzlkZTRkOTBiODFhOThiNWQgcmVsZWFzZTI2LW1haW50Cis3NDk3NCA4MDZjNjM2Mzg1ZmNjZGJhYmI1ODY4ODE0ZDFhZDIyODRiYzNlMTc0IHB5M2sKKzc0OTc1IDdlMzk4NWZhZjlhOGFjZmUwMjdiMGQ4Yjg5M2VhYTc4MGEzOTFiN2YgcmVsZWFzZTMxLW1haW50Cis3NDk3NiA3YTNmZGQ5M2I1NjY0ZGEyNTE0ZmZiM2E0OTVjNWQxMDFkOWQyMmIzIHJlbGVhc2UyNi1tYWludAorNzQ5NzcgMWRiNmVlOWQ3YmU3YTFkNmM1MzNhYTA3YmEyNWIwOTg1YzZlN2Y1YyByZWxlYXNlMjYtbWFpbnQKKzc0OTc4IGRiOTdjMDQyY2MxZWQ1Yjk1ZGE4ODQ0YTM5NTA3ZTRjY2UxMzI4ZGIgbGVnYWN5LXRydW5rCis3NDk3OSBjYjM0MjhiMWY0YWYyOWIyNWI0OGQyOTc2NTVhZTJlYTg0MGJjYjdhIHB5M2sKKzc0OTgwIDMzOTNmZmMwZGU0NGU2YTNjYmNiYmQyY2E3M2Q3OTRiNWZhM2Y1YzYgcmVsZWFzZTMxLW1haW50Cis3NDk4MSA5MjM0MzA1ZDM3NDAzODdhNzMyNmQzNDlhNDdlMzU2MTA4OTA3MjI5IGxlZ2FjeS10cnVuaworNzQ5ODIgNmQ4YjU0YjIxYjg3N2VmZmNjYjJiMTU1NDI5NDg0YjFjMzkyZDdlNSByZWxlYXNlMjYtbWFpbnQKKzc0OTgzIDI3M2MyMzQ4MDBjMTg0MWQzMGJiZTdiNjQ4NTFiN2QwYjdiOGMxMGEgcmVsZWFzZTI2LW1haW50Cis3NDk4NCBjYzNkOGFmZjQ1OTU2MGNhNDRmODg1NTMxZTNlNzVhMjM3ZGUwYTYzIGxlZ2FjeS10cnVuaworNzQ5ODUgYzU5NDllMTJjNjkyOWVkOGRiNjFiNGY1MGFlZGQ2ZWM0N2UyYzhkNCByZWxlYXNlMjYtbWFpbnQKKzc0OTg2IDljOTE2NWJkMjkzYWUyNDk4NjYxYmM3MDU2OWZjYTBhMjU2MTk5N2QgcHkzaworNzQ5ODcgYzYzZjg5MjNlMjRmNjhiNmVmM2JlYTJkNWU1ODAyMTE3ZjRiZjk5MiByZWxlYXNlMzEtbWFpbnQKKzc0OTg4IDJkZjhiZWRlYzZkMzMzOGMzN2RmNzYzMGM1NWI5ODdmZTNlZjNkOWMgbGVnYWN5LXRydW5rCis3NDk4OSBhOWNlMTU4OWQ2OTRkMjk4NjU1OWI1YmRkZTk3NTc1MDg5Y2Y2YjRiIHJlbGVhc2UyNi1tYWludAorNzQ5OTAgN2M0MzQ2ODdiNDI5Mzk2ZTE3YWE1ZTIxMWRjMmJiOTM3NmQxNjJiMyBweTNrCis3NDk5MSA0MDA4YTAxMzdkZTdiMGQ2ODAyMWFhZTg4NDY3YmU4MWU3MjVlYTA5IHJlbGVhc2UzMS1tYWludAorNzQ5OTIgZDYyN2M1ODkyZmQ1NDhlZjQ2M2JmNTEwMzFhM2M3NWUxMjUzMGNhZiBsZWdhY3ktdHJ1bmsKKzc0OTkzIDVjODcwMGNjOWQxNmVkMjZiOTRjNGZhZTViZjEzZDk3MDBlNDYyYTQgcmVsZWFzZTI2LW1haW50Cis3NDk5NCA3YTc2NDJhYjExYjM5MjdjZDIyYTQ3ZWY5ZTMyMmY5M2FjYzlmNzRhIGxlZ2FjeS10cnVuaworNzQ5OTUgNjI3YjM0OWRmMGU4ZTI3OTE3ZWM0ZmU3ZTEzNDUwOTdjMDYyNDFmMyByZWxlYXNlMjYtbWFpbnQKKzc0OTk2IDAxOGYyZWFlMjUyNmZlMjRkZGQ0OWQzZDQwZjFiNmY4N2I2MWViMTQgcHkzaworNzQ5OTcgZjhlNjk2ZTRjZmYxZDgwNGI0Y2U2YTA2NTI3OTdjYzMwZGVkYmI3NSBsZWdhY3ktdHJ1bmsKKzc0OTk4IGFmN2ExMjAwZmIzZjM1ZjAxZDQyMGZhZjc1YjNmNWIzNmU1MDIxM2QgcmVsZWFzZTI2LW1haW50Cis3NDk5OSA0YjgzZWE2ZmM1YmRlMjE2MjczM2UxNTk3NTdkMDQ0Y2NkYTcyZTFiIHB5M2sKKzc1MDAwIDNhM2UxNDVkNTUyYzVjOWIwMjkzYTJhN2YxZWEzODMwN2RkZjMwNTUgcmVsZWFzZTMxLW1haW50Cis3NTAwMSAxZmZlNmZiMTlhMThkZDA5ODliYWNhODU1NzVhMjU5YzU0NWFmYzMwIHJlbGVhc2UzMS1tYWludAorNzUwMDIgNzQzNWQ1OTFhMzI1ODNhZTEyNjFhYjlkZWRlMWE0NGQ1MjNmODFmMiByZWxlYXNlMzEtbWFpbnQKKzc1MDAzIGI3NzdlMGYwYjU3Y2EyMTE5MDhkMzQzNjMwODJlN2U0NTMxZDU4MjQgbGVnYWN5LXRydW5rCis3NTAwNCA1ZjYzYjUxNDI3MjUyMGZiOTcwMGM2MmZlNWIyODYxOThmYzI1MDZlIHJlbGVhc2UyNi1tYWludAorNzUwMDUgYjczNGQ2YjUxODUyOTRjNWM4NDMwZTJiZTI5YWRlM2I1ZDVkOTk1MyBweTNrCis3NTAwNiAzNTdjNzVkNTljZTk5NGJkNjY0NDgwZjAzMTQ3YzY2NTU4MjExNzY2IHJlbGVhc2UzMS1tYWludAorNzUwMDcgZjczY2RhZTE5N2M0ZDFlMmEwOGE0YjMzMzViYWNlYWE2NDQyMzZiMyBsZWdhY3ktdHJ1bmsKKzc1MDA4IDc4ZTAwZWI0NWRiYjQwZDhhZjRlYThlZWQ5MGQzMzZkZDgzNWU5ZDkgcmVsZWFzZTI2LW1haW50Cis3NTAwOSAxZjVmNzg4MThjNTFlODM0ZDI4YmUwNDg3YzlhYWYzMGYwMjQxMTYzIHB5M2sKKzc1MDEwIDgyZDc5N2ZmOWFhM2MzOGJmN2YyOTY4YTM5YjYxY2Y1YTEyZjBhYjUgcmVsZWFzZTMxLW1haW50Cis3NTAxMSA0Y2U0ZGE4NDdkOTNmMDUwM2QyOTA0ZDIzNzY5NTVkMTdmNDM2YTdkIGxlZ2FjeS10cnVuaworNzUwMTIgYzIzOTJhNzk3MTVkNjFkNmEyMTBhYzYyYTk0Y2RmOWM5MWFjMzBlNyBweTNrCis3NTAxMyA1NzRhNTMyZmI0MGIxODZlOGU3YmEzZmE1NzY2ZmJmNTliODFiMmJiIHB5M2sKKzc1MDE0IGFmZGEwODc3NjNhZjFlZGVkOWUxMjc4NDBjMTc0NDU4Mjk0ODUyMTAgcmVsZWFzZTMxLW1haW50Cis3NTAxNSA3NzE5MWYzYTFkMjdkZGM3MDE0OTU5YjdjMmMxNzdjMGE3MTdiYTVkIGxlZ2FjeS10cnVuaworNzUwMTYgNWI4YjE4YjAwZDRjZmYwNWVjZjNlMDg0MjFjNGYzMzg1MDZhNWZjOCBweTNrCis3NTAxNyA1NTU3YmM4Y2JmNjVmOTk0Y2U2MTUyMzhjOTBkNTRhYzdlNmYzNmM1IGxlZ2FjeS10cnVuaworNzUwMTggMDZjZTI3YTgyZTk5ZTdmZTNlZDg0YzQ1NjEzMTJkNGU2YzUxYjE5MyByZWxlYXNlMjYtbWFpbnQKKzc1MDE5IGNhZGJmYzczYTNiMGQ2NjJmMWE2NDBkZDEyOWM4MjNhYmJjYjIzNzYgbGVnYWN5LXRydW5rCis3NTAyMCA5YzZhOTgzY2Y2YTkzZTVjZTdmZmU5YTUzZmYxZTQ1YThlYzMyY2ZiIGxlZ2FjeS10cnVuaworNzUwMjEgMmFlOTNlYWM0MjBlMmFiOWE5YzZjZjk0Y2M5YzZiNWZjOGM2N2JlMiBweTNrCis3NTAyMiA0Y2ExMTVmMzNiNmI4Zjk2ODMzYWRjMzk5YTE0YjllMGNkNDMyMjcyIGxlZ2FjeS10cnVuaworNzUwMjMgNGFhN2RlNjYxMzdmY2MzZjM2ZGIxZDA1ZTg3N2ZlNDg1MGZmMDJmYSByZWxlYXNlMjYtbWFpbnQKKzc1MDI0IDMyMjhiYWZiZTZjOTM4NjU4YjllODRiMzU0NDYwMGFkZGU3MmFhMzkgbGVnYWN5LXRydW5rCis3NTAyNSAyZDM0YTc0ZjAwMTcyMDZmZThkNzBjYTcwN2UzZjM1MTIzMmU4YTMzIHJlbGVhc2UyNi1tYWludAorNzUwMjYgY2FlMDUzYzlmOWNhY2U0YmZlYThlYzUyZDkyZGM4OGM0MjcxNTYyMSBweTNrCis3NTAyNyBiMTlhOGFkZDExMmY4ODJkNWNmMDkzMjkzM2RkMTVmMDNmNDU3YWUwIHJlbGVhc2UzMS1tYWludAorNzUwMjggZDU5OWEzZjJlNzJkNmUwYzQzZTU3YTNhOGRiZDM2Mjc3YWIxNzA4NiBweTNrCis3NTAyOSAxZDBkNmY3NDM3OGM2YjUyYzdiYTc0NTM3NzgyMDExZmQ2NmQzMjJlIHJlbGVhc2UzMS1tYWludAorNzUwMzAgNjAwZWQyZGQ3NjcyODkxOTc3ZGQ4NGI5OTQyMDVhMWFlNDUxNDg3YSBweTNrCis3NTAzMSA5Y2FjOGJhNmY0YTlkYzU5ZWNlOGYyYWUyYmYxZjMwM2UyMmY3NGYyIHJlbGVhc2UzMS1tYWludAorNzUwMzIgYzI0ZjAwMDE4MmY0NTU1Y2Q1OWViODZhODAxNTlmNmZmZmNmNDNkNCBsZWdhY3ktdHJ1bmsKKzc1MDMzIDY4ODk5ZGMxMTdlYjM1ZmQzOTZiZmI0YjBkMDdiM2RiNmU2MGI2NjMgcmVsZWFzZTI2LW1haW50Cis3NTAzOCA1ODRkYjAzZTUyNDgwN2E0ZTc5ZTUwM2I5YjMzZWYzNmFjOTYwYjM5IHJlbGVhc2UyNi1tYWludAorNzUwMzkgYjRhYjQ5ZTI4MzA1MTAzYzkyNTFkZjQzYzMyNjY5NjlhM2QxMjVhMyBsZWdhY3ktdHJ1bmsKKzc1MDQwIDlkYWY4ODQwYTQ3M2UwOGU1NDcwNDUyYTc4MDRhZGE3NWE0M2JhMGQgcmVsZWFzZTI2LW1haW50Cis3NTA0MSA1M2E2YjM5ZWU0YjY2ZDk0M2MzNzVkYzI1ODIyZGI3NTEzMjY0YTU3IHB5M2sKKzc1MDQyIDNmZDdmMTIyNTU2YTk2MWE1YTlkZjVjN2UxNzFiY2JiNjc5ZjgyYWMgcmVsZWFzZTMxLW1haW50Cis3NTA0MyA3ZjdjZmFhMzgzMmUzZTI1YTNkYWZkOGUwNmMwN2RjYzY1Nzk3OGJkIHJlbGVhc2UzMS1tYWludAorNzUwNDUgMWQwZjQxNmQ0YmE2NDJmMzVlOGIwMTIwNzEyNmI0MGZjYmU4MjQxMSBweTNrCis3NTA0NiA4OTY2NzBkNDFjOWY3NGIzMWE4MjI3NDIxOTMwNzExYmQ0OWVlMTBmIHJlbGVhc2UzMS1tYWludAorNzUwNDcgZjlhNzBmMjI1NjI1MGU3MWFhMzBiYTMzM2RmNzZmOGMzMDEwYzE5YiBsZWdhY3ktdHJ1bmsKKzc1MDQ4IDc4NWVjY2MwMjVhYzZlOWZkZDA3MzdkMTM3MGYzYzJhMDZmNzA0NzYgcmVsZWFzZTI2LW1haW50Cis3NTA0OSA2NTZkMWQ0MGZlY2JmYzU1OWM1ZjdkYTgxMGQ4ZDhlMzRkMDkxMjcxIHB5M2sKKzc1MDUwIDU5MmJiODI1OWM1NDI3ODA0NWEzYWMxNThlNzJkNTliNTdiZDkzZWEgcmVsZWFzZTMxLW1haW50Cis3NTA1MSAwZjRlOTVmZjg1OWQyY2FjNjAwODRkMzU1ZDczMGQ2YjFiNmU2NTc5IHB5M2sKKzc1MDUyIDI4ZTJjZTAwZjU0NWJmNGU1N2E3YWVhYWM0NGQzY2RjODk1OWI0ZmMgcmVsZWFzZTMxLW1haW50Cis3NTA1NCAzZGVmOTUyYjUxNWMyYjQ1OGQ5NGQyMDRmZjhhZWNmNTE4MmU2MDU3IGxlZ2FjeS10cnVuaworNzUwNTUgMzU2N2U4NzE1N2Q4MzYzMWExNjNhOTFhYjM0ODNjNzc0ZjgzYTFhMSBsZWdhY3ktdHJ1bmsKKzc1MDU2IGUwNzNmYzg4ZGM4OTQ3ZjIxMDE2ZWQwZDU4MTljNjExNTA3Y2VjMzggcmVsZWFzZTI2LW1haW50Cis3NTA1NyA4ZWE5MjFjN2QxMGZhMTIzNzBmNTk5NzE3NTRmNTJjOWE4MjIzNmJkIHB5M2sKKzc1MDU4IGEwNzU2OGM3YTgyYWNhNTI3YWYwYWI5NjNhYTE2OWQwMTFiMzhlMmEgcmVsZWFzZTMxLW1haW50Cis3NTA1OSA1MGIxOGFlOGNlYzQ0OTI3ZTRhZWE5OTNkZGQ2NGIwYTExMGM2MTI3IHB5M2sKKzc1MDYwIDE0OWJlZDIxNzM1ZTA3NGFlMzFjZmFjZjdlZGE5ZmJjMzQxNTlkZmEgcmVsZWFzZTMxLW1haW50Cis3NTA2MSAxYjlmMTRlNWU5ZTUwN2Q3OGU2YjVkODA4YjVlNWExNDYwNTYzZjMwIHB5M2sKKzc1MDYyIDhjYzgyZGM2YmJiMDIzZjFlYzc4NGIyYzAxNDcyMmFlZjVhZmE4OTggcHkzaworNzUwNjMgMjY0NGY1NGUzNjc2M2UzODY2NWQxOTRhMjNmN2MzMWNkOTA2NDMzYiByZWxlYXNlMzEtbWFpbnQKKzc1MDY0IGJhODQxYmEwMGQwNjIyMmQwOWJlZGVjYTE3NmM4YzMzOWUyNmRmODQgcHkzaworNzUwNjUgNzgxZWY5NWNiNzgxODc2Y2ZlMTRiZWQ1ZjdhOTU2NTZmYmJhN2NhMCByZWxlYXNlMzEtbWFpbnQKKzc1MDY2IDJiZmFkZGIxOWMzYTFjNjViYmFmZGQ2MGRlZTFmZjdjYTUyOTg2YWIgbGVnYWN5LXRydW5rCis3NTA2NyAwMGE1Y2YzNzQzMTQ2MjQwMWExZDc2MjdkYjRjM2U2ZTVjYjMxNGVmIHB5M2sKKzc1MDY4IDg1ZTFkZGRlNTY5ZTI2M2FjNDg1YzAxYmNiN2ZkMmU5NTg1NWNiNGYgbGVnYWN5LXRydW5rCis3NTA2OSBlOTkwMjRlZGRmYjQ1YzYzM2I5YjlhOTU3OGVlYTNmOWY3OWYyYTA3IHJlbGVhc2UyNi1tYWludAorNzUwNzAgODlmYTI2NDE3MTVkMzQ5YTk0Mjk1YzI2YmExYTc5NzA0NmIyYmI0MSBsZWdhY3ktdHJ1bmsKKzc1MDcxIGFjYmZjNjliNTVmM2UwZDY0ODA3Y2VkOWM2NmRmYjQ5MGQzOTZkZGQgcmVsZWFzZTI2LW1haW50Cis3NTA3MiAwNzZiMjMzMzUyNjM3ZTIyYzk1MWE4YWJlMGNlMjBiNzY3NzQxZDNjIHB5M2sKKzc1MDczIGJmOWJlZjcwZjdlOGFjNjI5MWQ2ODViMTA3MDA2YjUwYTQ2Y2IwNDUgcmVsZWFzZTMxLW1haW50Cis3NTA3NCAyMDA2YTJmNDgxMmQ3NjdmNjllZjdjZmMwZjk2ODU5MGVjMTMxOWNhIHB5M2sKKzc1MDc1IGYzYzU5NTIxNGFiYzQwMDYxZDgyN2MxMmQ2M2RiNWVmODliOTdhZWIgcmVsZWFzZTMxLW1haW50Cis3NTA3NiA3MzkxNDM2ZDhhNzQ4OWQ0NjFiMjc4YWM5NWVlZmQ0Mzk1YzcyMjdjIGxlZ2FjeS10cnVuaworNzUwNzggZGQ0NTY0OTY5MDljZDRjY2FlZjNkN2Y2NjYzYzAzZTU5NTcyNWFkMSBweTNrCis3NTA3OSBiMDUwZWE3YmFmNDBkZWJjOTRhYzFkNjMzM2JiYWMxMTQxYTE4OGUwIHB5M2sKKzc1MDgwIDdlZTE0MGI3ZWY5M2JhZmRhY2E4ZGZiNTM0MjY2NjUxNDE2MTFhYzkgcHkzaworNzUwODIgMDQ1M2QxOGM2M2E0ZTg1ODE3NmU5MzM5MjNkZDRmNTI4YzRhZGI0MiBweTNrCis3NTA4MyBkNjg4OWRhMDY1MmM3Zjg2YmIzODM3YWU0MzQzOTQ1NTc2YzQ1NGFiIHJlbGVhc2UyNi1tYWludAorNzUwODQgNTQ2MTAxYTY2NzdjODRlMzM5N2ZiNmJhNDJhZjVlYzU4NGFjZjAxMCBsZWdhY3ktdHJ1bmsKKzc1MDg1IGIwZTk2MTliMzFkOGQwYTFkODcyNzI2MWI0ZDUzNmEzZDkwOGQ0M2EgcmVsZWFzZTI2LW1haW50Cis3NTA4NiBmY2IzMWJlMjEzNmQ2NGQwNDZhNTQ4OTE3M2I5MmY3YmFjNjFhZWU3IHB5M2sKKzc1MDg3IGMwZDk1NjI1ZjE3ZGU3OGZkZDc0NjU4Y2M2MmQ5YTAzYTQ4YjVlYWIgcmVsZWFzZTI2LW1haW50Cis3NTA4OSAxYTY1ZGRkN2Q5ZTE1MWRmMTNlN2YyN2I3ZDExNGM5MzRlNTkzMTZmIHJlbGVhc2UyNi1tYWludAorNzUwOTAgZjNmYTM5NjdmNDQ2NDFmNTg5YTBkYjYxOWNkMzg5NzQ0ZWUwOTUwYSBweTNrCis3NTA5MSAzZGVjM2I3N2I3ODc1YmMzNzFhZWFmNGQwMTA5ZGY4Zjk5ZWFjODI1IGxlZ2FjeS10cnVuaworNzUwOTIgYTA0MTA4NGMxZmRkNjYyNzBkODYwYmUxZTMyMzg0M2M1MGMzMzg1OCByZWxlYXNlMjYtbWFpbnQKKzc1MDkzIDkxMGRhNTQ1ZTE3YmM1ZjFhNDQxMGJjMjllYTc4OTJmYzNhYTc5ZjcgcHkzaworNzUwOTQgN2QwMjZmNzA2NDUwZDk4MDNkNGZiYWRjMDEwZGY1ODE2MmIyYWIwYyByZWxlYXNlMzEtbWFpbnQKKzc1MDk1IGJiOGI3NzBjZTg5MGU5MWJkZmYzZTU2Mjg3Mjc4ZWRhYWY2ZDViZWEgbGVnYWN5LXRydW5rCis3NTA5OCBmMDRhMWYyMDIzZWNiNjg4MWJmMTVkNjkxMzY3MGI2ZWRhMTg3MGEyIGxlZ2FjeS10cnVuaworNzUxMDAgZGViYjI0NWViYjQwMThkMThiODNjZDA3MTAyNGI0NDRkYTA0OTk4YyBweTNrCis3NTEwMiBjNzY2NzRjMmQ3NGQwMzlmOTE2ZmQ1N2I3MDNkZGViZDQ1ZjJkOGEyIGxlZ2FjeS10cnVuaworNzUxMDMgZTk1MjE4NjA1MzAwZWQwNjRkYzhlNTlkNzRkZGJiYzFkM2Y4ZGE5NiBsZWdhY3ktdHJ1bmsKKzc1MTA0IGFiNDllMGFjOGM4ZjEzMWUyYzNkNWNiN2FkN2Q1OWRiNDA3MjYxYmIgbGVnYWN5LXRydW5rCis3NTEwNSBiNmFmZjdhNTk4MDMwMDlkOGZmYzlmYjBhY2I1NmQ5ODZkYWY5ZTE3IHB5M2sKKzc1MTA2IDk0NTcyOTQ5YzFjYTRiZGUxMzM4MTc4YTg5Yjc4NWMyYzhlMTVhOWUgbGVnYWN5LXRydW5rCis3NTEwNyBkMTA4ZmU3N2MwNmMyNTZjZWVhZTg5MmNhZDMyZjIyZjE5ZWY2MGZlIHB5M2sKKzc1MTA4IDcwMTNlMzY1MTFhOGNlZGVmYjgxZWI5ZTViMjE3ODEwZWRkYTE4NTggcHkzaworNzUxMDkgODkyNzcxOGMxOThmZjdiN2E5ZjY1Y2E2NzY5NTE3NTQ2ZWE3Mzk0NyBweTNrCis3NTExMCAzYWI0NjRmZDVlMDFhNWRkZGE2ZWJhNjg3Yjg4ZGI1MmE4OTU4NjEwIGxlZ2FjeS10cnVuaworNzUxMTEgNTIzMWVjNTEyYzdhZmQwNGExZTU2Njg4ODMxODllMzYxOTkxOWRhOCBsZWdhY3ktdHJ1bmsKKzc1MTEyIGNmOTBhYTU3YjIwYmMzNjc1MjE2OTU4YTExYWQzZTRiNGQ5NDEyODMgcmVsZWFzZTI2LW1haW50Cis3NTExMyA5OWUzNmY0N2NhMGY3NjZmNDExMDFiM2MwYmIyYmJhY2Y2NjMyYWIyIHB5M2sKKzc1MTE0IDRlYzkxNWE1YmI0ZTBjZmM4MDhmZmZjYWZlYTAxZDE1ZjczNjVhMWMgcmVsZWFzZTMxLW1haW50Cis3NTExNSA3ZjY5NWRkNjRmOTAxZDMyZjJlZDVlNTY1YjgxMjI5YWViMDFmOTQzIGxlZ2FjeS10cnVuaworNzUxMTYgNTZiNTMwMDI5YmFjZjZhYjI4ZTg1YTAwZDIwMDRjZmMzNmE0MmJhOSByZWxlYXNlMjYtbWFpbnQKKzc1MTE3IGI1MGRkMTdkZmUyNjJhNDcyNWY0YWUzZTZlNDcwYTFmZDQwMGQzNWUgbGVnYWN5LXRydW5rCis3NTExOCA1MGMzMGE4Mjg0ZmJiNGNlNGNhYjIwYjk0NDI0MjEzODdlYTIxNzdlIHB5M2sKKzc1MTE5IDQ3YjgyZmJkYzJiYjFlMDBmMDM2OTY3ZTUxMjRiMGE0YmRkNzk0ZDkgcHkzaworNzUxMjAgMjAxMjRlYjg4MTFiYmZjODU2YzJhOGNhNjJmMmE5M2U2ZjIzMzc4NyByZWxlYXNlMjYtbWFpbnQKKzc1MTIxIGI5ODViY2RiOGI5MTRiM2NhZDRlNzRmYjQwMDk1MzA5ZDBhYmViYjggcmVsZWFzZTMxLW1haW50Cis3NTEyMiA4MjUwMjE4MjU0NjM5MGVhYWFiY2U5MjY3ZjNhMDcyYzdhMzk0MTYzIHJlbGVhc2UyNi1tYWludAorNzUxMjMgZWViZjNkNTFkM2E0NmYzNTgyZWQ0N2IzMmFmNWQwZWNkYmNkMDc1MSBsZWdhY3ktdHJ1bmsKKzc1MTI0IGVlOWE1NTFhODc1ZWQ0ZmU2ZDVjZTRiYjliNGNiZGY1YjRmNjRiYTQgcmVsZWFzZTI2LW1haW50Cis3NTEyNSBjNjNlMDYzODdiOGZjZGY2YTFlMjhlYjY0MjY0YTZjNjZlMzg2ZjRjIHB5M2sKKzc1MTI2IDc0YjE4YTI2N2NkNzUyYWRhM2IzZGI0ZWZkZmUyZDUyY2U3ZTUxZTYgcmVsZWFzZTMxLW1haW50Cis3NTEyNyBlZGQ5YTVlM2NhZmI2ZjA5NmUxYTI2NjAzYmY3MjcwYmEyNzQ4NjdmIHJlbGVhc2UyNS1tYWludAorNzUxMjggMzU3N2FmNTEyZGY1NzMwMzNmNWI4ZTE4ZmU4MzQ3YWQyNjM2ZGYxOSBweTNrCis3NTEyOSBmMjZiODAyYzAwM2U1YzAwMzU0MDc0NmU4NDFiN2ZiMjdkMDg4ZDc4IGxlZ2FjeS10cnVuaworNzUxMzAgYThkMGU3NjRlMzRiMWNhMmVkY2I0NWZlMWM3YWFhYzM0Yzc3MzBmNSByZWxlYXNlMjYtbWFpbnQKKzc1MTMxIGU1YjgxMjEyZmRmZDcxNzY5ZjQxMmZhZmQ1NGJhYTg4M2IzOGJlODQgbGVnYWN5LXRydW5rCis3NTEzMiA5ODY3MDljMjQ1MzE4OTQwNzAxZDFiZmExNzYzMThmNWZkOThiNmJkIHJlbGVhc2UyNi1tYWludAorNzUxMzMgNGQ3NDczNDQ5NWNmZDY2ODdkMTE5MzViOTEyMzZkODllNzU5YjI4MSBweTNrCis3NTEzNCBlMGYyMzQxMTZhYjE0OTgzNTY5Mjk0ZWZjYWYzZDEzYTBkYjI1MjgxIGxlZ2FjeS10cnVuaworNzUxMzUgMmUyYzE0MmJiZWFhOTlhYzE3M2M4ZDg0Y2Q2MWJiNTFmYjFkZDZjNiByZWxlYXNlMjYtbWFpbnQKKzc1MTM2IDE4NDM4ODZiMmIxZDg2MGIwOGNmOTZiZjhlMzQ2MmI4ODY1NjFkYTYgcmVsZWFzZTI2LW1haW50Cis3NTEzNyAxZjczNjFjNzQyMzRjNWNjYzI0NGJiMDE1MjY3Mjk2MDAxY2VjOWIxIHB5M2sKKzc1MTM4IGU3MmE3M2FkN2UyOTRjYmVmZmExZjVjNWI5MGE4ODY3OWVlZjYyZDMgcmVsZWFzZTI2LW1haW50Cis3NTEzOSA4ZTliZGM2YTEwMGZhMDg2YmQ0NjZmYmE2ZjJhYzYyYzMwYmIyOTJkIGxlZ2FjeS10cnVuaworNzUxNDAgMTlhNGE2MjNkOGI3MDQ0YzJiMWI5ZTI1MWIyYzhiMDhhNDI0MjRmYyByZWxlYXNlMzEtbWFpbnQKKzc1MTQxIDkxZjlkZjUzNjdjMWE1ZjFjNjE0NmNmODRlOTZkYjM5MTcxZjVhNzAgbGVnYWN5LXRydW5rCis3NTE0MiBhMTdjZDlmY2RkNDY5ZWQxZjM4NTA5MmNkODA4MTQ2YmYxZjIwNjBiIHJlbGVhc2UzMS1tYWludAorNzUxNDMgMWVhMDNmODZlMDgxM2RkODBlNTlmMGE2NzU1MmIyZjVhOGQxMTU1NyBsZWdhY3ktdHJ1bmsKKzc1MTQ0IDdlMTg1NjE2N2M0YTgyZWMxNzU0MDI5OGNjODI1ODNlNThlNzQwMDIgcmVsZWFzZTI2LW1haW50Cis3NTE0NSBiYTE5NjYyZWIyMjFiODNlNjM4MThlZTRiMTNhMTQyZjMzMTRkMjgzIHB5M2sKKzc1MTQ2IDA4ZTU5MDc2ZDg2YjJjYWUwZGZlMjdjZjU1OTBmYjkzZTgxNjBhNTAgcmVsZWFzZTMxLW1haW50Cis3NTE0NyBmOTliY2E2YWIwZGNjODVlNzhhNGZjMDk1OTNjN2NiMzI0MTFiM2FmIGxlZ2FjeS10cnVuaworNzUxNDggZGFkNzQ1M2QwZDA4NjJiYjczMDI1NTM3ODhmODViNGUxYzMxMzYzNyByZWxlYXNlMjYtbWFpbnQKKzc1MTQ5IGRmNThmZjJkZTA5YmEyMTg1YzIxMTlmMjY0YjYzOGU5NzljN2QyNTMgbGVnYWN5LXRydW5rCis3NTE1MCA2NzE2YzVmOGM2MGQ1Y2U1NDYwMzRhNTRhODM0MzI4NTM1ODUzOTA1IHJlbGVhc2UyNi1tYWludAorNzUxNTEgMTg3MzU0MmMwMDAwMGM0YjdjZTJjNzk5MmQxZjJkODdmODY2MjMyYSByZWxlYXNlMjYtbWFpbnQKKzc1MTUyIDBlZmZkYjM5YzQ3YjdhMDdiMTk5N2E1ZGJiNWJlZTY2NzY2MTNlM2YgcmVsZWFzZTI2LW1haW50Cis3NTE1NCA3YmNhZjA2NGUyNDA1Njc0ZDhiNTZlMGI0ZWNiZjE4NjUwMjI1OTk5IHJlbGVhc2UyNi1tYWludAorNzUxNTUgNWFjYWU0NmFmODQzZmE4YzNhZDkxMjcxYTQxYjBkMGJkZTMyZGRjNyByZWxlYXNlMjYtbWFpbnQKKzc1MTU2IGQ5MTIwOWQ4MjUxZGU2MDUzMGMwNjZhNTZmNDQ5NzQxMmViNDU0ZjggcmVsZWFzZTI2LW1haW50Cis3NTE1NyA1ZjI0NWRhNzJhZWJiNGQyNzdmZWE0NGIzYmUwYmM0MzU1ZTA1MjYzIGxlZ2FjeS10cnVuaworNzUxNTggMWMwMTZmMGU5NGJhYzFmNjQyOTBmOWIyY2Q4NjkxZGRmMWUyZWVmNCBweTNrCis3NTE2MCAxNmM5ODVkYWFlYjA5ZDY1M2I2NGNmZWI3NmQ0ODRmODk5NDdjZjUyIHJlbGVhc2UzMS1tYWludAorNzUxNjEgZTdlNDUyNDQ5YTVlYWM5YThhY2NiYmZjYTc1NTAxODNkMWIzMzkzZiBweTNrCis3NTE2MiA3MDNkZTU1ZTAwYjg1ZDY3ZWUwNGQ3MzhhZDE0Mzk1MzE5MDRmMjEyIHJlbGVhc2UzMS1tYWludAorNzUxNjMgMDg0NTgwYTM0OWI3MTEzNzg2NTc2MjE1ZmJmZjRiNWNiOTFkNzY4NSBweTNrCis3NTE2NCAzMzliODIzMjFmOGVmNjM5YTFjYjQ4ZjQwM2I2NTBjYjIxZTVjZWZkIGxlZ2FjeS10cnVuaworNzUxNjUgM2UyODgxNmFhMGEyMzI1YTcyN2VmNjFiYmExNWNiNTg5YjUzODJjYyBsZWdhY3ktdHJ1bmsKKzc1MTY2IDgwN2IwZDU5NzMxNGIyZjQ0YjU1ZjcxMDlmMjA0YmVlMDBkNzQ1MTcgbGVnYWN5LXRydW5rCis3NTE2NyA5MjE3YmQwY2MzZmNkNTAzODAzNDJjMzMxM2EyMjEwMzRlOWE4YTg1IHB5M2sKKzc1MTY4IDEwNjQ1NTUyMzdlMjE4Y2ZkMzlmMDk2ZTAzMTgxM2MwMTdjYmQ1MjcgcHkzaworNzUxNjkgZTFkNjk1MWJmMzlkN2RmY2RhNjBhYWZjZmZmZWFlZWI4YjA1NjlmYiByZWxlYXNlMzEtbWFpbnQKKzc1MTcwIDVlYzE1ZGExZmM0MjIwNWExZTEzZTE5YzBmMzdiNDViOTBlMzA3YTIgcmVsZWFzZTMxLW1haW50Cis3NTE3MSAxMTdiMzA4YmUzMjE0MzZiNmJhOTE5YTkwMTFjODMzOGM4NDc3NDUwIGxlZ2FjeS10cnVuaworNzUxNzIgY2UyMTRlZTQxMTY0OTI4YTMwYjY2ZGRlZmI0ZTFhMDhhOWU4YmI0YSByZWxlYXNlMjYtbWFpbnQKKzc1MTczIDE3MDBhNzg5NzNjZDgxNDZiMGI4MmVjZTE5MWZkMWYzNTZmZDM5NDEgcHkzaworNzUxNzQgMmM3YjFkNWM4YjY1YjFjZWMxZTI5ZWJjMzI1Nzk0YzMzMzQyNTcwZiBweTNrCis3NTE3NSBkYzM1MDBkMzllZjE0ODk5MTgxYjMwMGY2ZmI1ZTQ2MGI3MmJhODM2IGxlZ2FjeS10cnVuaworNzUxNzYgZmU4YjliNzNkOWFmMGQ0ZDZmNGNkMjk2M2QzODljZGUwYzZhNzc0MSByZWxlYXNlMzEtbWFpbnQKKzc1MTc3IGUzMDRkOWYzNGQxNTI4NzA1MzBiMmQ4MTA5ODRiNzM4YmE3MGFjOGQgcHkzaworNzUxNzggZmU5NjRiM2M5NjYyYzc3MmVlNDBjMzc4NzRlYzZkNTY1ZDI2NTYxYyByZWxlYXNlMzEtbWFpbnQKKzc1MTc5IDlmMTk4YjBmMzY3ZmJhMDRkYWMzNjFiYTBhM2E1ZTRiYzMxYzI2YzMgcmVsZWFzZTMxLW1haW50Cis3NTE4MCBlNmE1ZWJlNWFlZGQ4ZWUzMDJiZDQyM2NkNGNkYjJhOTI2ZTg2ZjM0IGxlZ2FjeS10cnVuaworNzUxODEgNzgzZTZjYzJhYjYyMzUxOTZiOTI3MDUwYjZhYTliNWNjOTIxMmRjOSBsZWdhY3ktdHJ1bmsKKzc1MTgzIDAwYzMzOTZkN2E4YzRhYjRjMmM4NDFkNjEwMTNhMDczYWU5MjFkMGYgcmVsZWFzZTI2LW1haW50Cis3NTE4NCA4ZTdhNjkyNzg3OTgxNTg4NzMyZjY1MGFjMmZjYWE1MDM3MmEwYzJhIHJlbGVhc2UyNi1tYWludAorNzUxODcgYzg1MGNlOTc3YmI5ODJkNzI1MWQzZjdmYTQ3MzBiZTRjZmI1ZjZhMiByZWxlYXNlMjYtbWFpbnQKKzc1MTkxIDRjNTk5ODNiYjA1Nzk2NjU3MDYxNmMyYzNmZDIwOTU0YzI2ZjljNmIgcmVsZWFzZTI2LW1haW50Cis3NTE5MiBjMmM5MGQxZjNjMzNlYzY5NzI0ZTY5ZjgzMmQ0YzM0YTVjZjZmMTA1IGxlZ2FjeS10cnVuaworNzUxOTMgNzI5MDE0MGNkMzMwMjcwNDQ0NDBhNjNiMWQ1NmI4MjBhOWQwNjAwOSByZWxlYXNlMjYtbWFpbnQKKzc1MTk0IGM0MTE5Mjg2ZmFhNzVkN2RlOWUyMWQxMDc3YzZjM2E3ZWM2YmRiZTUgcHkzaworNzUxOTUgOWIxZWI1ZTc1ZTE1OWU3ZTdlZDNlM2Y5ODUzNjY5OTQ4M2YwNjhkNCByZWxlYXNlMzEtbWFpbnQKKzc1MTk2IDdkN2Y5NzgzYzg2ZGIxNDkzZjM1NjA0Mzg5NWQ4OGRhOTgzYzdlMmYgbGVnYWN5LXRydW5rCis3NTE5NyA2NzQwOWJjOTlmYTJiY2YwMDAxNDBjYTAzZmE5ZjVkNGVhYTUyMTMzIHJlbGVhc2UyNi1tYWludAorNzUxOTggNzdlZTIyMDY4NmNjNTAyYmIwMjk1OWI5MTQ2Y2EwYzgzOTU3OGIzMCBweTNrCis3NTE5OSAyNzVkNjBmOTNkM2M1ZjYxOTA4ZThkN2QzNWZlYTkyMDEyNzQzMWEwIHJlbGVhc2UyNi1tYWludAorNzUyMDIgNDMxMzUwZjIxZDg3ZTlkOGVjNzBjNmY1YWM2NWMzMjNmYmFlNzBhZiByZWxlYXNlMjYtbWFpbnQKKzc1MjAzIDkxMzBmZTljNThiZjk3ZGY4ZDQzZmQyMzM2NGFmMDU2YmYyYTcwYjEgcmVsZWFzZTI2LW1haW50Cis3NTIwNCBmYzc0ZDUxYTY3OTc0MWE5ZDUzNmMwYWE1ZDQ4OGU3YTM0ZmY5NDdhIHJlbGVhc2UyNi1tYWludAorNzUyMDUgZDQxMzYwOTBhYzM0ZjkxZWRhMTFlN2UzNGQ5MzNjZjYwNGFmNTcwNCBsZWdhY3ktdHJ1bmsKKzc1MjA2IDI1Y2ZiNzBiY2Q1ZTlkZDA4Y2YwZTU5MGRmNDU3NjU1ZjEzZjkzNGEgcmVsZWFzZTI2LW1haW50Cis3NTIwNyAzZWUwNGVhOWNjNmUyZjczMWY3NTEzZjJhNWRlNzI3ODg4YTBiZTkyIHB5M2sKKzc1MjA4IDk0NmNlY2FmNjRjMWYxZDA3N2Y2NmMwMjBmNjUzN2Y4NzNjNzk5MzMgcmVsZWFzZTMxLW1haW50Cis3NTIwOSA1Mzg0YzhlZTRhMjZjZTAxZTc3MDRhZjM5ZGI4YWYzZmU3ZjJmYmQ3IGxlZ2FjeS10cnVuaworNzUyMTAgMzliOTk5NGU4NjY5M2IzNTFkMmMzZWY5YWMyYWY1ZjJiYzZmY2EwMyBweTNrCis3NTIxMSAyOGZiY2M3OWMyMGE5M2M2YTY1Mjk5MGMxZmUzNDQwZGIzOTJlMzU4IHJlbGVhc2UyNi1tYWludAorNzUyMTIgNmQwZGZlM2ExM2NhMThhYjM0YjUzZGQ2M2Y0MmQ1MjkwMmRhOTBhMyBweTNrCis3NTIxNCA4NDlmYjI3YzU1OTQ2NjI0NGJlMmMzODNmYThhZWQxNmQ2NWNmNDRhIHB5M2sKKzc1MjE1IDUyMjdlYWJkYmI2NDc1ODYwOGI1MWI4ZTQxOGUwNTkzOGQzMWNmNDUgcmVsZWFzZTMxLW1haW50Cis3NTIxNiA1M2YxN2NjN2JmZjY3YzZjMGM4ZWUzNjA5YjFkMzgwNzExNmI5MzQ2IHB5M2sKKzc1MjE3IGQ1NDkzNjZkZDIxOGIzMjQwYzNhYmFmM2Q4ZWQ0OTc2YzE5MWFkMmMgcmVsZWFzZTMxLW1haW50Cis3NTIxOCAxNTBjZGFlYTU4ZWM2OTE2YWM1MTlkMDkzMzdiM2QzZTZkYmNiMjQ3IHJlbGVhc2UzMS1tYWludAorNzUyMjAgNmNmZjY4MmEzMDk4MWZlMjAzMzUzODE2NDQ2ZDA2Nzk4YThiNWUxOCBweTNrCis3NTIyMSA1YzBhNzgwMDIxNWE2NzQzYmYxN2JmY2M0Yjc5MmUxOTYwNzNkZWJlIHJlbGVhc2UzMS1tYWludAorNzUyMjMgY2NlYjYyZWIxY2YxODMyYjI3NjJiZGZlYWY3YzlmMWVjNWFjODYyNCBsZWdhY3ktdHJ1bmsKKzc1MjI0IDQ1ZmNlMzEwZDQ3OTJjYzNmOWFkMzM2MTE4NjUyZTg2NjUwZjQxNjcgcHkzaworNzUyMjYgNGY0OWJkMmU3YzU4ZDI5ODQ5ZDIzN2ZhZTY4MGZkODY0ZDA0M2JjYSByZWxlYXNlMzEtbWFpbnQKKzc1MjI4IDIxOGNkZDZjNjg0Mjg1ZDgyYjhiMDgzYTQ4MDI4NTc0YWJhMTM4MTYgcmVsZWFzZTI2LW1haW50Cis3NTIyOSBkNWQ4Y2I5OGViMmFlZWEwOWQ5ODUzMGFhY2Q1OTU0ODUwNjUyZmNlIHJlbGVhc2UyNi1tYWludAorNzUyMzAgZjQwNTZmOGZlZWMyNmJkMjkyNTM2ZGY2MThlZmFhZDgwOTUzNTJlZSBsZWdhY3ktdHJ1bmsKKzc1MjMxIDQxYmI1ZTJkYzk0N2FjM2Y3YzRhZjk0NmMwMWExNGUwYjBhZDA2N2IgcHkzaworNzUyMzIgYzliZDYyZWZlNmNlNTUyNGUxNzRkMTA2M2QxNjViOGM5YmUwYjM2MyByZWxlYXNlMzEtbWFpbnQKKzc1MjMzIGJlYzJlNDQ1ZTIyNGI2NWEwZGYxMjFkNjFmOTk5ZTgwZDRiMzEyMGMgcHkzaworNzUyMzQgNWJjZTNhNTliZmQyYzVlZmM3YmE4ZmM3MWJmNzllY2VmZDE0YzlhYiByZWxlYXNlMzEtbWFpbnQKKzc1MjM2IGJiMmExMjNjZGQ3YmIyYWY1ODAxOTIxZDgzNTMzYjBjNDhiMWUwNDkgbGVnYWN5LXRydW5rCis3NTIzNyAzMjFjMjIwN2Q1ZjhmYTk0NWI1MjkxN2Q0YTg0NTliYmUxMDc3NDJkIHJlbGVhc2UyNi1tYWludAorNzUyMzggOTE5YTI3ZGRiNGEzMjExODZiMTMzNDVhMzU4OTIyMzJlOWIxYjZjMSBweTNrCis3NTIzOSAwNTM4OTAxNGJmNDQ0OWNkYTA2MjVjZTJhNGIyNjRlYjBhOTcwZWZmIHJlbGVhc2UzMS1tYWludAorNzUyNDAgYTJjYWJiMzYyNTdmM2JjMDEzMDVmOTVkOGMwMzJkMzUzYjYzYzYwMSByZWxlYXNlMjYtbWFpbnQKKzc1MjQxIGMyMTlmNzI2MWQ5ODYzNTYzMTE2ZDU0NDdkYzY3NzZmM2ZlOGFhY2UgcHkzaworNzUyNDIgOTIyYzExMjJjOTI1YjZhZTU2MmYxOGZlNzIwYTk5MDdhMWRkNGM4NCBweTNrCis3NTI0MyA4ZGJiMGZjMzk5OGFkMDg5MDQyNDE1NTI0YjdlY2VjMjlmNWYwZDgzIHB5M2sKKzc1MjQ0IGM4Mjc3MTBiY2RmZGIyZjYxYzQxOGVjNzQ0YmMzYmM5ZWNiYjU0ODYgcHkzaworNzUyNDUgMTM4YzdmYzE5YjVkNmVlYzRmYzM0MGNiNjRkZjk2OGYwMDBjOWUzNyBweTNrCis3NTI0NiAyYjdlMGVhYWM2NGVkZDQwMDBhM2Y2YzQ0ZDM5YTY0NTVkOThlYzdhIHB5M2sKKzc1MjQ3IDJlNGQ3YTQwYzJkZDdlMTMzYjcxYTk4Nzk3NDc5OTZhN2I5ZGUyM2QgcmVsZWFzZTMxLW1haW50Cis3NTI0OCBiMGI5ZTU5MjhkYTk5ZGRkYTJiNzVjNzRjNGM2NmNkZTgyZDIwOTY3IHB5M2sKKzc1MjQ5IDZiMjNiMGViYTQwNTE2NWEwYjFhMmRjOWI2N2RkNzhmNmM1ZDAzMWMgcmVsZWFzZTMxLW1haW50Cis3NTI1MCA3YWE0YTQyMTE1MmY5MjRlMTFmMTA3MjFjYTMxMDFiYjI4ZTVmNDg2IHJlbGVhc2UyNi1tYWludAorNzUyNTEgMzhiZTI2MzkwMzU1MDA0YjYxYTVjMDIwZDY3MzQzOTA2Mzg5MjRhNyByZWxlYXNlMjYtbWFpbnQKKzc1MjUyIDQ5MDE5MGNiNGE1NzcyMjg2NzMzNDZkZDY1ZTE5NzVlNjk2ODk1OTEgcmVsZWFzZTI2LW1haW50Cis3NTI1MyAyNzhjZjVjOGYxZmE5N2MyNjY4YzkzOTEyZjMzNjg0ZWRjODQ0MGRlIHJlbGVhc2UyNi1tYWludAorNzUyNTQgZDUyNTBkYTAwNWNhNzM5ZjJlYTg2OGYzY2QyODkwMDM5NmZiMDRiMCByZWxlYXNlMjYtbWFpbnQKKzc1MjU1IDk3NGMwM2M5ODg4NDgwNmNmZDM4NGMyNmRiNjA3ZmU1YmEyYmNkYjEgbGVnYWN5LXRydW5rCis3NTI1NiAyOWMwMTk2YjFiZGQ3YjUxNzYwYzEyNmZiM2E3MDg3MGE3MjU4YzI4IHJlbGVhc2UyNi1tYWludAorNzUyNTcgYTAxZjQxM2VhMDhiNmQ5MTdiNTdmN2EwYzBmMDJkNDc4ZGNjMmI5NiBwZXAzNzAKKzc1MjU4IGI0ZDFiZTcxMDJiMzFiMDExMzdjZjE3MjdiODU4YjQyNjE2Y2JmYWMgbGVnYWN5LXRydW5rCis3NTI1OSBmN2VlYTYyYjA4YjA1YTNiOTJhOWRmN2FlY2QxZGFkN2YyNDg3YTg3IHB5M2sKKzc1MjYwIGVlOTAyMDE2MjQzYTI5ZTc3ZGQyZTZkYWFkNTFmZDNiYzEyYTJmNTggbGVnYWN5LXRydW5rCis3NTI2MSA5ODdlNTk2Y2Y1NzM3M2U5ZmMzMTE2YWYxMzRhNzJhNzFkOGNmYmEzIGxlZ2FjeS10cnVuaworNzUyNjIgMWM3ZjJiOWExNjc4MmMwNmM1MTA1NGQ3NTdiOGE3NTAwNjgzODMzMiBsZWdhY3ktdHJ1bmsKKzc1MjYzIDJmYTlmZmU2ZDE0NTFkN2ZlZGVkZmQzOGIxMjQwYjVkMWYwMGY5ZWUgbGVnYWN5LXRydW5rCis3NTI2NCBkMmY5NTkxMTU0Mjg2ZTU0ZjIxMjQzY2QzMmI3YzAzZDlmZTQ2YzgzIGxlZ2FjeS10cnVuaworNzUyNjUgYTEyZTcwMWQ5N2NhYzc4N2YxNWU1ZjQ5MzNiMWE4ZjU2ZDRiOWZkNyBsZWdhY3ktdHJ1bmsKKzc1MjY2IGE0NTk1MDcyNmJkZmJhZGJlZTE1NWVkYjgwNWQ3MzNlMjAzY2ZiMWYgbGVnYWN5LXRydW5rCis3NTI2NyBhNmU3ZWQ1MmRmOWIzMTdlNmFjODgwYTJiNmExYjZmMTlhZDM2MjQ2IGxlZ2FjeS10cnVuaworNzUyNjggYzlkOWI3ZDA5NDIyZjdhNmE5MjAyMTA4MWY4MDAzYTliZmVjZTI4YyBsZWdhY3ktdHJ1bmsKKzc1MjY5IGE0YTMyNGMyYTAwYzc4MDg0ZWFkZGQwMDNiNjU2ZTM2NmM2ODA0NjcgcmVsZWFzZTI2LW1haW50Cis3NTI3MCAyNWFhOTBhNjg2NWI2MzEzMzk2MmRkNjQ2MjZjNTNjN2I2ZmQ0N2Q1IHJlbGVhc2UyNi1tYWludAorNzUyNzEgNDMzZjcyN2U1ZTgyM2YwMGQxMDIzYjQzOTAyZWJiMzhmYzJmOTIyZCByZWxlYXNlMjYtbWFpbnQKKzc1MjcyIGE5ODY0NDE3Mjg2YjkzZDVjYjU2OTQ3MWEyOTgxNjE1MTdkNWQ0MWMgbGVnYWN5LXRydW5rCis3NTI3MyA1ZTNmNmU4ZDZhZTU5NTU5N2M2NGQ1Y2FlYTA3OTQyNTRmYzRiMzViIGxlZ2FjeS10cnVuaworNzUyNzQgNmM5MWQxODAzMTgyNjgxNmE5OTExOWEzOWZjYzRmNGY0ZTY5ZTdkYSBweTNrCis3NTI3NSBjNWEzZDQzMTQ2NzY5ZGEzNjc3MDhjMTFiYzRjNDczOGM5OWUxZGM5IGxlZ2FjeS10cnVuaworNzUyNzYgMzI5NjkzNTI5OWNlNjI3ZDc5MjEwYzYxZjU2OTZiZTZlMDY4OTk3NyBweTNrCis3NTI3NyBkYzA0N2Q5YWJmN2I2Y2Y5MGZkYzEyYmRlODYxN2I5YTAwYmU4ZjBiIHJlbGVhc2UzMS1tYWludAorNzUyNzkgNjE1NWI5NTlmZjcyYmRmNWVmM2NhMGYwZjE5Y2U0NjY2MmE5OTk0YSBweTNrCis3NTI4MCBmOTliM2ZjMDFmYzA2ODk2YzM5MjkyYjQ5NWIwYmJkZmJhMDYxMDFiIHJlbGVhc2UzMS1tYWludAorNzUyODEgYzQ1Y2UyODVmNTUyYjk2M2U0Mjg2MTUyNWZkMTJiYzBjY2YwYTlkOCBsZWdhY3ktdHJ1bmsKKzc1MjgyIGI3ODUyMWFlN2E2MjQ1ZTQ4YmQ1Yzg4MmRiZTU5ZjM3ZjU1OGIwODcgcmVsZWFzZTI2LW1haW50Cis3NTI4MyBlNzU5Y2EyNTcwMWQ5YTY2N2RkYjg3MmJiYTViNTc3N2U3NjZlZjdkIGxlZ2FjeS10cnVuaworNzUyODQgMjQ5YjBiZTc5N2E4MmUyZWRmNjNjNzgzMGU1ZmEzNjcwYmM1NzJmYiBweTNrCis3NTI4NSBkZDk0ZjFkOGM5YTVjYTQ0Njk2MzQ5MDY3MDE3ZmJiZjIzYjFkODM3IHJlbGVhc2UzMS1tYWludAorNzUyODYgNDhhYjJlNjJkZThiYzZiZDM2NWFjMWEwMTQzMTE5YTY1YWIwNjE3OCBsZWdhY3ktdHJ1bmsKKzc1Mjg3IGVmNzM0NjQ0OGI2MDBkZmNlZWI1NGFmMTAwM2QwZjdlMDI1NGQxZjggcHkzaworNzUyODggMzA3MmY5NDBmMzVhMzZiNmQ0OWY1ZTI0ZWYxZmRkNTViODg5YTFiYiByZWxlYXNlMzEtbWFpbnQKKzc1Mjg5IDk2YWZmMmMyYTlhMWQ1YjcyZTBmNGYxZDBjMWVkNzk1OGQwNzhjNWYgbGVnYWN5LXRydW5rCis3NTI5MCBjYjQ5ZjJlYjA0NTc5Zjg3YWZiZWNhNzA5ZDA2ZTc2YmNmMmEwNjM1IHB5M2sKKzc1MjkxIDlmNjMxYTNiYjU0OTNmYWQ5OTgxNzkyOWQ4OTk4MTNmODBiMGViZDAgcmVsZWFzZTMxLW1haW50Cis3NTI5MiBkNzkwMjAyYzE1MWRiMGM2ZmI0MzUyOTg4ZmQ4MTdjZmVmZjU0YmE4IGxlZ2FjeS10cnVuaworNzUyOTMgYWJiYzc5NzU3NWM0MjM3MGE5ZWNlMWJjZGI0NTA2MWM4ZWQxNTVkMiBsZWdhY3ktdHJ1bmsKKzc1Mjk0IGViMGMzOWY2MmRlMTljYzdjMjQ3ZDY0NDkwOThjYzlmZTBiNTQ4NTAgcmVsZWFzZTMxLW1haW50Cis3NTI5NiA1NDU4YzIwYWEwY2Y4Mzk1YmY0ZGI0OWIxYzE5Njg1N2RmZTM1MDk3IHB5M2sKKzc1Mjk3IDk0NmUzYWYwMGIwYjhmMTNiNjhmOTdkODdhZjViMmUzZWI3NmQ1MWQgcHkzaworNzUyOTggMmM2MGU5NDYwNjJlYzBhZmFhMjFkM2JlYTdiNzI0M2Y2MzU5NmJiYiBweTNrCis3NTI5OSAyNWU1MWM1YjA2OTZlODVjNDkwMWI2OTZlZDdhMjQ1ZGM2NmFhOTZiIHB5M2sKKzc1MzAwIDg5NmE0ZmIxM2YzNWM5MWRmZmIwNTRkZjg1ZWVhODJkZTNlOWRlNzUgbGVnYWN5LXRydW5rCis3NTMwMSAxZWM4YzdmYjg4MDdiNWFmY2Y2YzUzNjU0MGE2OGE1ODE1NTg4OThiIGxlZ2FjeS10cnVuaworNzUzMDIgMTJjZDk0ZDM5ODc0NjQ4ZWIwZjNjZmI1MzdjZWRmYzBkZDAwZjIzMSByZWxlYXNlMzEtbWFpbnQKKzc1MzA0IDU3ZWUwNzkzZTQ2MjdiODBjZTEyYjZmZjQwMzRmZWE3YWRjNDVkNzUgbGVnYWN5LXRydW5rCis3NTMwNSA2ODQ5NjBmYjFjYmY2NGU4NTc5NzljYzJhOTY4NWYwNjcxNmJjMTE5IGxlZ2FjeS10cnVuaworNzUzMDYgYWI0MjAzM2ZkZmRiZTVhYjRlMTI2ZWU1ZTFhODA4MWVjMWNlMDIzMSBweTNrCis3NTMwNyA5MWFhMDQ0MTAxMzkwY2VkMzk4YWFkNjFlNzEwMDFhMDY3MGQxNTlhIHB5M2sKKzc1MzA4IDI4MzY5MzllN2M1NDdmZmVkNDA2NDZlMTIyZmYzYWJkMGViMjM2MmIgcmVsZWFzZTMxLW1haW50Cis3NTMwOSAyOTkwOGYyYmM5M2ZkOGNkZWMzNTc0Y2U0NzBhNWFkMDFlZjA1N2JiIHB5M2sKKzc1MzEwIDZkMDkyYTUxZTE4N2U0NTIyZDZiZGU4MzU4NDljYzI2MTUwZjZmMGUgbGVnYWN5LXRydW5rCis3NTMxMCA0ZjkxMzEyZDZlYzJhYjM1ZTdhYjgyMmE4M2RhMDA5MjMwZjEyNGFhIHB5M2sKKzc1MzExIGI1ZWE0NzczYWZmMTAyMWEzNTYxMWJlYTIxZDBlNGJhOTY3NGUzNTUgcHkzaworNzUzMTIgYTJmMDJhMTI1ZmViMGI5NjlkODM4NjRhMGU5NDdmNzlhOTgxNDNhOCBsZWdhY3ktdHJ1bmsKKzc1MzEzIDMyYzM1ZjliMjQ1Yzg3YzBjMDc5Zjg0MWI5ZDdjNWQ1YzZmY2E4YzMgbGVnYWN5LXRydW5rCis3NTMxNCBkNzNmMjIxNWVmYzE5ZjkyMzcyNjhmOGI0NzMzOGQ1OGEzOWM4MGUwIHB5M2sKKzc1MzE1IDMzYjA0MTM1MDAzNDJhZjcwYzI4YjljZDM1NDkwYzFhNTRiZDU3YzMgbGVnYWN5LXRydW5rCis3NTMxNiBlZjMxYjA0ZGU1MDU2MmZmYzQ1MGE2YTFkNDBlMGFlZWY4OGQ3NmFhIHB5M2sKKzc1MzE3IDM5MzFjNzhhZjExNzViM2M3NDI0ZjMzMTNkZjAwY2I5ZjA1ZWRjZWQgcHkzaworNzUzMTggZmY4Yzg2YTI0YjE1OGZiYWUxY2Y0NTQ4NTVmZjU4Yzg2ZjAzNDE0YSBsZWdhY3ktdHJ1bmsKKzc1MzE5IDM1NjE5Y2ZjZDBiNWJmNWE0MzAwMWY2MjEzZmIyZDJmMzM4ZDg0NTggcHkzaworNzUzMjAgMjIwZjdkZWZmYmFmYjU3NjAyYmE3MzVmNDMzYjJlZDA3MDEzM2ZiZCBweTNrCis3NTMyMSA0MmE2YTIyNDk0NzRjYTZiMjBjMTEwNGFhZTg2YmEwNzhkNWYyNTdmIGxlZ2FjeS10cnVuaworNzUzMjIgMzQ5OTlhMWFlYTliMjYxNzYxM2ZjMGViYzE1OWJmMjExZDYwZjdmYiBsZWdhY3ktdHJ1bmsKKzc1MzIzIGJmYTYwZGY3NjkyOTBhMTIzZTM2YmNlZTQyZDBiZjA1YTM1NDE0MWQgcHkzaworNzUzMjQgNDQzMTQ5ZmIzNTc0OGY1Y2RjZmJhODk5YTk3MjZkZjI5MWRmNWQwZSBweTNrCis3NTMyNSA2NTg3ZWE2ZDNlNzg0NWRlZjlhMjNjNTJhMjEyNWI0ODJhYjc1MDhmIGxlZ2FjeS10cnVuaworNzUzMjYgZjMyZmVkYTY1Yzg1NmFlNGFkMjU4NGRkOGMwNzc3NGZkZWUwODJjZCBweTNrCis3NTMyNyA0NTgxNTNkNWQ4MmQ2ZjcxYzdmZThkYjQyMTZlYThlNDhmNjllYjI2IGxlZ2FjeS10cnVuaworNzUzMjggMjE2OGI5ZDQ5ZTNiMTkwOGIyYzEyZmFkYTg1ZGQ1NDZmYWNjM2MyNiBweTNrCis3NTMyOSA1NTk3YmE3MGEzMzZjODY1ZjA2YThhMTkwMmQzMjE2OTczNzlkODA0IGxlZ2FjeS10cnVuaworNzUzMzAgZjc2ZTJlNjM3NzMwMTg5YTRjZjE2MDhlZjRmNDdmMWEyNWY5N2Q3NyBweTNrCis3NTMzMyAyNGU5MmNlZjI2NjQ2MzU5ZmUwMjYxM2M2MDMxY2I5YzFhYzU3Y2JkIGxlZ2FjeS10cnVuaworNzUzMzQgYjk0MmM3MDZlMzM4MTIyOGMyYWY3OWNkYjlhOGIyNTUwMDEyNWY0NCBweTNrCis3NTMzNSA2OTZhY2ViNzYzNWI5OTk2NTU3OGNhNTdhOThmZjRmM2I4ZDNmZjhjIHJlbGVhc2UyNi1tYWludAorNzUzMzYgODY3NjMzMzMwYTkzOGU3NDYzOTk3Zjk1NDI4MDM3ZTMwZDdiYTNjNiByZWxlYXNlMzEtbWFpbnQKKzc1MzM3IDYxOTRmZDc1NDMyMzk4ZjhlNWViZTg5MjFhMDI2YjkwMmViYWYyZjIgbGVnYWN5LXRydW5rCis3NTMzOCA4NmI2ODRjOTY5NDI0YjJlYWU2ZjlkNjUxYTRkMGEzNTE3ZmMzZThlIHB5M2sKKzc1MzM5IDMxMzBiN2U4MTJiMDRlYWYzOTg4NDA2M2Q1Y2Y1ZjUzZTNjMTgzMzUgbGVnYWN5LXRydW5rCis3NTM0MCA4OWI0YmIwYWE1YWNmODM4NjI5ZTYxMDkzZjNlMzYzNGIzY2ExZWFkIHB5M2sKKzc1MzQxIDRkZDA5MDEwMGVjYWZiNWI2OTI4OTQxZDBjMTZlZTNiMTZmZjAwMGMgcHkzaworNzUzNDIgM2VkNjU3MTZkN2FkMjQyYzk5OTZjYjZhMDFmNDg2MGI3MDI3YmVmMiBsZWdhY3ktdHJ1bmsKKzc1MzQzIDVjMzY1YWFiMTBkMWNlMzBmZTc0NTA2NzBlYmQ1NmFlOTgwZWI0ZGMgcHkzaworNzUzNDQgYzEwNWI5OGU2NDlkZTlhNDU4NDNlODM2MzM1ZTIwNjkzMzAxZDg4YyBsZWdhY3ktdHJ1bmsKKzc1MzQ1IDBhZDdmOWM5NTJiMDhjYTEyODkwYjRhZDRiMDM0MzhhYTg3MTlkYjcgcHkzaworNzUzNDYgNGJhMjdkMThkZDkyZGFhZmI3M2IxN2Y5ZmY1OTU1NDc4NTY0NDdjYiBsZWdhY3ktdHJ1bmsKKzc1MzQ3IGJkZThhMzk2MjI4YzJhYWMyMWU0MzljYjJjYjEwNzk4ZThhNDJmNTkgcHkzaworNzUzNDggYTE1YzdkNTBiM2NiNjRlMDE2ZWQyM2UzOGI3ZjEzMmZhY2Q5MzQ5NSBsZWdhY3ktdHJ1bmsKKzc1MzQ5IDM5N2UwMmUwYmU5MzE0YjU0MjEwM2ZkNTZkNDk4YTJhMDRlMzZiMTMgcHkzaworNzUzNTAgY2EwMThlMmJiODY1NGI5YjU5NGY2YTdhNGE0NzFhMjA0MmY2MzNiYiBsZWdhY3ktdHJ1bmsKKzc1MzUxIDUyZDY5NzNjYmQ5NGViMzM0NGIwMzczYzJkNmJhMzEzZWIxYmRhZWIgbGVnYWN5LXRydW5rCis3NTM1MiA1M2M4M2ExMzJlMWVhMjFiYjZjNjZhZTk0YmY0NDI3NDc5ODAyYTMzIHB5M2sKKzc1MzUzIDY5OGUwZTY5Yzc2NTdiMjY5YzBlNGYxMjg2MDdkZWFiYzk0MzU4YTUgcHkzaworNzUzNTQgNmE1ZTBjOTEzYzdjZWJhYWM4ZmE0MTdmMzU2ODc0MDM4NTllODA2NCBsZWdhY3ktdHJ1bmsKKzc1MzU1IDkyMDQwOGU2MDMwMzIxMzM3YjkxM2ExYzM5ZmIxYmVjZGEzMmZkNzAgcHkzaworNzUzNTYgZTQ2MTljZjllNjJjYmUxMjhmOWVhYWIyYzFjZDRjOTkyNWY2YzVkMyBsZWdhY3ktdHJ1bmsKKzc1MzU3IDhlZTQ1MTc5YzUwMzk4N2IwM2IwN2YxYTUxYjdjZjk3MGE5YzU3ZDcgcHkzaworNzUzNTggYTVkN2I1Mjc3OTUxOTNjYzZhYWM2YzFkOTFlYjcwOGVmYmY2NDNjNCBsZWdhY3ktdHJ1bmsKKzc1MzU5IDE1MjFhNjU3YTg1YWQ5YjU2MDE4OTc3YzU1OWIwMDQ4YWM0MTI1YTcgcHkzaworNzUzNjIgMjA1Yjk2ZWZiNzkwMGExMjhlNzMwYzNjNmM4OTJmZTljYjE3ODQyNiBweTNrCis3NTM2MyAzMjAwOGQyM2Y2Y2I0OGExZWRhMGIyN2YxYjFhZjY4OGIwZWE3N2ZkIGxlZ2FjeS10cnVuaworNzUzNjUgOWY3NjUxMThkOWI5NzEzOWQ2ZTY4M2Y4YmY2NjM1N2I4NTg5ZGEyZCBsZWdhY3ktdHJ1bmsKKzc1MzY3IDIyMDA4ZDkzNGU2Mzc1OTJjNDcyN2NiYTkyZjE2NmExOTMyZDg3YTEgbGVnYWN5LXRydW5rCis3NTM2OSA0M2FkNTU0NjE1YjZkMjAwYzYyZmVkNzU2NGVmNjgzNTE0Nzk3M2UwIHB5M2sKKzc1MzcwIDA1MDc0OGNlNWFkOWVhZTI0MjgyZWFhYjY3YzY4YmRhZDgzZGRlMzYgbGVnYWN5LXRydW5rCis3NTM3MSA0YjVkMzk4ZWI4NjY2NDMzZGVmZGY4ZDdhMjM3YzI2YzgyZjhlODM0IGxlZ2FjeS10cnVuaworNzUzNzIgOWEyYzM3YzMyYjdlNzE4MGE3MzE1ZGFhOGNjNDhiZjU5MzcyMGQyZiBsZWdhY3ktdHJ1bmsKKzc1MzczIGNkZGI2MjBmMGNkYTBhZTE0YjMxMWI4MzQ3OGRmZDU1NWY1MGJlYTAgcHkzaworNzUzNzQgMTY4ODQ3OTU1MzI0OTRiZDZlZTAxNzgxNmFkNmQ0OGM2ZTdmNDk4OSBweTNrCis3NTM3NiAzOTIyZTczNGM5YmI3MzJmOWY0ZTRkZjk4Y2U3OWJjNTJmMTgwYjg5IGxlZ2FjeS10cnVuaworNzUzOTAgZjU5ZGE5YzkzNDI1YTlmOWNmNjE3Yzg3Y2FjMDQ4NThhYTVhZWU5ZSByZWxlYXNlMjYtbWFpbnQKKzc1MzkxIDk1YTY5NjQwZWJkM2JkMTc5N2ZhOGJhMmFhMmY3MDFhNzI3NTE3ZDEgbGVnYWN5LXRydW5rCis3NTM5MiA5ZDE3YmI0ZjExNzBmYWIyMTBmNzg3ODgyMzNiMjIxOGY1Njg0MmRhIGxlZ2FjeS10cnVuaworNzUzOTMgMjA5ZTM4MjU0YWU4Yjg3OGQzNDUzNTRmZWYwZGUyOWU5ZTIxMjU3OCBweTNrCis3NTM5NCA5YmQ2YTdhZWUxM2NhODBlODU2OTc5ZWUzOTc5ZmFkMjNjNWU2MTYwIGxlZ2FjeS10cnVuaworNzUzOTUgMmE3NTgzNzE4ZDI1M2ZkNWEwZGEyNmNmOTgwNTgwZjM2NTg5ZDJlZiByZWxlYXNlMjYtbWFpbnQKKzc1Mzk2IDdmZThhODMxM2E1YjJlN2UyMzQyMmVmYWNmOTY3NmZiMzVlYmQ2NGQgbGVnYWN5LXRydW5rCis3NTM5NyBlOGUxMDM0ODhmYjM3ZTMwYjlkZmY4ZjRhODFmNjA3NmMxMjQ2Y2E0IHB5M2sKKzc1NDAwIGJkYmRhN2E5NGMzMzNlMDM2NWRmNjE5MmMzOTQwYTczOTA3ZDg0Y2UgbGVnYWN5LXRydW5rCis3NTQwMSA3NzU2MWNkMzlmZDM5N2JkM2ZhY2UzMmVlZTVhOTZjYmI5NDM2ZTY2IHJlbGVhc2UzMS1tYWludAorNzU0MDIgMDM4NTQ3MzJhNmMyOGU3MzlkNTU0NmYyNGI5YWE3MmUxZTAwNWJkZSBsZWdhY3ktdHJ1bmsKKzc1NDAzIDE4MzQ3NGJiMDIxMzhkYTg4YzNiNDk2YzUyYTdiMWIwYTA1ZGE0Y2EgbGVnYWN5LXRydW5rCis3NTQwNCA2MzUwOGVjNzY4NDBhYTY0ODIwOTg3NTcxYTc4OTVlYWRkMTBjZjBiIHB5M2sKKzc1NDA1IGRjNzVkMTdkZDMwNGE1MDZiZDE1N2U1YzJhNGVhZWZmMzE3Y2FjZTAgbGVnYWN5LXRydW5rCis3NTQwNiA2N2JiMTdjMmU4Njg1MjE5ZmFiM2M3YmZiMjAwYzA2ZTRkZDg1MGMyIHJlbGVhc2UzMS1tYWludAorNzU0MDcgMjQ3ZDVhNWVhZmE1MzQzOTc1Yjk5ZjNlZTk4ZmE0YzFkOTQ1ODE2OCBsZWdhY3ktdHJ1bmsKKzc1NDA4IDU4ZTU3NjMxYmU4Y2I2MzhlZDMxZTRiNDIyOWEwMzZlNDc3YTkyOGQgbGVnYWN5LXRydW5rCis3NTQwOSAzODZhNGQ3YzNjOTljZmE0OTI0M2MzOGM4NWZhNDQ0OWJmZjc4ZDY4IGxlZ2FjeS10cnVuaworNzU0MTAgY2RjZDgwNWVlZTg1ZDY1MDU3MzAyMTEyMmUwNjI1ZmI2ZmY3MjJhMiBsZWdhY3ktdHJ1bmsKKzc1NDExIGU4NTMyY2M4YTE0ZTQ5NzRmOGEzZjI3NGMyYzNlYzdjM2IwNGI5ODkgbGVnYWN5LXRydW5rCis3NTQxMiA5ZTcxOGQ4ZjcxZThmMDE0YTY3NzZiYTJjMWNhYjU3NmQ4ZTcwYjY2IGxlZ2FjeS10cnVuaworNzU0MTMgNGVlMzQzYzRiYzQ5ZDA3ZTNlZTY2NWIxMmM2MDIzNTk5N2M1ZjYwMiBsZWdhY3ktdHJ1bmsKKzc1NDE1IDZkNTBjNGMxYThiMzQ2ZmUwMzY0ZjIzN2ZjMjgwY2FiMWFhYTI3OGQgbGVnYWN5LXRydW5rCis3NTQxNiA1ZGZjNThmMzliOWY1NDIxOTBlNjlkNzBjYTIyN2NkZmVjYzM4YjQ1IHB5M2sKKzc1NDE3IGJmOGM5YmY3MTE1YzkzYTIzMGY5ZmI5ZjMzOGY0OTliMmE1ZGNjMWMgbGVnYWN5LXRydW5rCis3NTQxOCBkMjQyOThkZjJhNjYyMDZiZDAzODU4ZDkzZTczNGMwNmE1MTUwNWFiIGxlZ2FjeS10cnVuaworNzU0MTkgOTMzNTBhY2I1NDI1YmE0ZjAwYjVjZDgwOGM3YzYwNGVlN2E1MDI4MSBsZWdhY3ktdHJ1bmsKKzc1NDIwIDY0ZTE5YTY4OTg4NjE3ZWY1NDVmZDQ1MTgwZDBmODg3MmVhZTE0ZTEgbGVnYWN5LXRydW5rCis3NTQyMSBmZTM4ZDNjMTc4ODhjOGMwZWJlYTEzYjhhYWUxZjFmY2RlMmQyMDdiIGxlZ2FjeS10cnVuaworNzU0MjIgMTZkYjJhOTMyMjQ4OWMzOWViZjJiMDVkN2I2MDZmMzk0ZmIwYWE2NyBweTNrCis3NTQyMyA1MGI3ZjU2ODE0ZjllM2VhM2M2MTBiMWZlYjI2YTU3ZWQxMDNkOTFiIGxlZ2FjeS10cnVuaworNzU0MjQgZDBmMDA1ZTZmYWRkMDY0ZDc1MDMwYTlhZGJhZmIxMmU3YTI2Y2E3ZCBsZWdhY3ktdHJ1bmsKKzc1NDI1IDkwNDRmNjRiMTBhZTA2YjhjMDFhZjNjZDQ3ODZmMmVlMjc0MTQ2NDggcmVsZWFzZTI2LW1haW50Cis3NTQyOSBmYTYxODhjNDdiNjNmYzUyNWQ4MzljODc5NWIyNWQyZjM1NzZhZDAwIGxlZ2FjeS10cnVuaworNzU0MzAgNDViNjI3MjUzNzdhNjEyODU5N2RiY2ZkYzZkOWZmNWU3NGNkZTE2MSBsZWdhY3ktdHJ1bmsKKzc1NDMxIGE0YjE5MjJhMzA3NDkyMTg0YWE0NDY5NGQ5MjhjYjUxYzEyNGQ5MGUgbGVnYWN5LXRydW5rCis3NTQzMiBlMDBjNzg4NjliM2NkMzU2OGQxNzdlYWQyNzEwOWJmMTE4NTJkNmNlIGxlZ2FjeS10cnVuaworNzU0MzMgOTgzZWVmYmY2NjQ5MzQwZTc3ZGIyNTIwMGVjMTk3MjM0MzZiNzM5YyBsZWdhY3ktdHJ1bmsKKzc1NDM0IGU0YTBiODczOWU1YjhhYjdiZjllNGZhNmViZmZmZGE3M2Y0NjdhM2MgbGVnYWN5LXRydW5rCis3NTQzNSAzYjM3YjhkZDc2ZDc1MDI1ZjE0MTI0N2VmNGQ5NTNmY2I2MjE5ZmIxIHB5M2sKKzc1NDM2IGVjNTA4Yzg5YWQzNjgyMDc4Y2U0M2MwN2RkNjVkZDJkZGRkNGM0NzIgbGVnYWN5LXRydW5rCis3NTQzNyAyMGQwOTU0OWI4MmMwYjk5Yjc3MGMxMTQ4MDJkN2Q4Yjg5ZDI1YTkzIGxlZ2FjeS10cnVuaworNzU0MzggMTYxN2MxMTU1NmFmYTI4YzFiY2FiNTQ4MjQ5MGE1ZjNmMWRmYjBkYiBsZWdhY3ktdHJ1bmsKKzc1NDM5IDdlNTg0OTQyMDRjOGY2ZTQzZGRlYjA5YTk2NzQ4YWVjNDc4NDNjMzYgcHkzaworNzU0NDAgMjc1NGQ2NDE4MGQxZGM1NTdkYWIyOTc5YTc5MjU4YTg3MGQ0ZDYwMiBsZWdhY3ktdHJ1bmsKKzc1NDQxIDNiYzZmYjNjMGNjZDA5YTA1MDc0ZmJhMmZhNGU3YjMzNDIxZmQ4NzkgcHkzaworNzU0NDUgZDllNDhhYjYyNTYyYzE0ZjAzYjI1MmJiMTE5Y2YzYjhkODI2YWYzNSBsZWdhY3ktdHJ1bmsKKzc1NDQ1IGQ5NjMwNTE3YzcwYzE5NTA0MjJhYzdlMTIyZmUxMzg5ZmYxYzFmMTUgcHkzaworNzU0NDYgN2ZhMTRiZThhZDczY2IzNTc1NzY2NWQ4MTM4MWUxNzMwZDRkMWM1NiBsZWdhY3ktdHJ1bmsKKzc1NDQ3IDhkZmE4NDNjODM1MDFhMGU1ZGI5ZGFmM2M3NDEyYmY2OGUwOGY0ZWIgcmVsZWFzZTI2LW1haW50Cis3NTQ0OCAyNGQzMjFmZDNkMWEyMGIxNDc0NjQ4ZWIxYjNkNGJkZjIyNDVhMjVkIHB5M2sKKzc1NDUwIDllNDJjYzE5MmE0NDY1OWY0ODJiODc3MGFhYmYzZDJkN2VmNDhiODcgbGVnYWN5LXRydW5rCis3NTQ1MSA3NjAwNDM2ZGIyYTliODY5YjlmMDMwZjRiNjhlMGY3YzhlOTFkNGZjIHB5M2sKKzc1NDUyIDI2YjExZTZmZTVlMzFjNjdlYmZmODhjZmU2OWM0ZGUwYWU4M2M4Y2UgcmVsZWFzZTMxLW1haW50Cis3NTQ1MyAzNjU4YzBhOTU4OTIyYWY5MjZmMzk5NzY3NGZiMWZjN2M3NTdkODFkIGxlZ2FjeS10cnVuaworNzU0NTQgNjI0ZjgxYjVlYzI0Zjc3M2JiMDFmMDc5NDY1ZDhkYzdhYmU1YmNkNyBsZWdhY3ktdHJ1bmsKKzc1NDU1IDdkNzFjNTFmYzMwOGMxYjI2NTNiOWYyM2QzN2M0MWU0NTlhMTc1NDQgcHkzaworNzU0NTYgNWVhNmNkMjgzOWNjN2MxMDI3NmU5YTI3NWMxNmY1MDJkOTlhNzUzNCBsZWdhY3ktdHJ1bmsKKzc1NDU3IDljMDZjNzMwOTc2NTY2YzRlZDlhOTExMWI5ZWFkZmI3YTkwOGIwZjEgbGVnYWN5LXRydW5rCis3NTQ1OCA1Mjk5NTc5ZjU3OWE4NTRhZmI4ZTA3MTczMzIzMDRkY2E3ZTI2YzY5IGxlZ2FjeS10cnVuaworNzU0NTkgNGMxZmY3YjI0ODJlZTE4YTRlOThmMDAzYmNmNTllODY5MjU3NDg5NiBsZWdhY3ktdHJ1bmsKKzc1NDYxIGExMDg4YmI0ZmNmOGE2ZDIxMzQ2N2VmODE4NDA4ZGIwYmQ4MTk3OGYgbGVnYWN5LXRydW5rCis3NTQ2MiAyMDQ4ZDA0ZGVhYjQyYzU1NWI4MzViYTdiNDE5ZDRhMjhkOWMxOTJjIGxlZ2FjeS10cnVuaworNzU0NjMgODE0MzNhNjc2YThiYWZlMWZlMzY1ZjlkYzM4MGIyMmFmZDViOWIwYyBsZWdhY3ktdHJ1bmsKKzc1NDY1IGI4MThhN2E3MGE0Nzc4MTFhMWYxMGE0M2JiY2ZmZTQ0ZWQ1NWM3NGIgbGVnYWN5LXRydW5rCis3NTQ2NiA5ZjA1M2U1NTBjOTc3NjhiMGZhZGY4Mjk1YjAyNDZkM2Q0MzE2NjI2IGxlZ2FjeS10cnVuaworNzU0NjcgOTkzMjA3ZGNlMzk1NWI0MDhmNmE2YTI1MTU4NTE5ZDYwOTg5NDViYiBsZWdhY3ktdHJ1bmsKKzc1NDY4IDAwNzUwNWNjMWUyYzczNTZmNjRhZDVlZmY0ZGFlNmI1NGQ5ZDI4OTUgbGVnYWN5LXRydW5rCis3NTQ3MCBhYzNjNjMyZTFjMTNjMzFjNjYwYjc5MjIzZmY3M2U5OTNjNTBmMDgzIGxlZ2FjeS10cnVuaworNzU0NzEgZTZkZWIxNWM1YWU2YTA2ZmMxZDQ2YTkxYjMyNzQ3ZjdkZjY2MWJlZiBweTNrCis3NTQ3MiAzNTRmYTU2MWFhZGY2Y2RhMTA1NjhjYTU5OGUzYTQxMDdjZTNjYjcyIHB5M2sKKzc1NDczIDQ5ZTNkNGFjNjljNmY5ODBjMzUzNTViMDA1YzgxNzQ4ZjIzOWRlZWMgcmVsZWFzZTMxLW1haW50Cis3NTQ3NCA4YTZiNjE0ODRhOTg0YjhhOGZkMTg5NzA3YWFiZmFiNTdkNjlkMDRlIGxlZ2FjeS10cnVuaworNzU0NzUgYzM3Y2E5YWNkMWY5YWFjYjllZWIzODBmMTc5MmM0NjNkZmE5NmEzMSByZWxlYXNlMjYtbWFpbnQKKzc1NDc2IDMwYmI0YzM1NTU5ZDYxNjUxZTc1MWU3MTgyNTc0NGNmY2NiNzVkNTEgcHkzaworNzU0NzcgZDA3OTg3N2RhMzM1ZTYzODI4Zjk3Nzk0NjUzZTgxMTNhY2I1MzkyYiByZWxlYXNlMzEtbWFpbnQKKzc1NDc4IDg0YzE2ODA4YmEyYzgxZGEyZWViY2MwYmNkYWUyN2RjNTgwMzcwZDggbGVnYWN5LXRydW5rCis3NTQ3OSBkOTQ0NDAwMTE0ZTUwMGQ1YzYyOWE1ZmVlZWYzM2JiNTgyYzU4NTc5IHJlbGVhc2UyNi1tYWludAorNzU0ODAgYWE1M2EyZDRlZjJmY2JlOWIzOGEwNTFiNmI3OGFlN2E2Nzg5NGY2MSByZWxlYXNlMjYtbWFpbnQKKzc1NDgxIDVlN2M1Yzk0YzU3MjFhMTZiOTdjMjNjY2RhMzAxNDc4MjBmMDE4NTUgbGVnYWN5LXRydW5rCis3NTQ4MiAzNDljMDMzNzg5NmEyNzJmNjA2ZjkwZWU2NmUwNmE4NjAyNjE3NzdmIGxlZ2FjeS10cnVuaworNzU0ODMgZWQ3ZGVjMTM2NDMwZmU1NWI2NWI5YmZiNzM4YjczZjdhMTg0NzEyZSByZWxlYXNlMjYtbWFpbnQKKzc1NDg0IDc3N2JkNWRkMWQ5YWM1NDFhMmEzYTkzN2ZiYTkyNjhjOWJmMmUzYTUgbGVnYWN5LXRydW5rCis3NTQ4NSBlNjdlYjk2NjAwNDE3OWZlYmRiZjk4NzQxYWFmM2U4ZGYyMTAyYWFjIGxlZ2FjeS10cnVuaworNzU0ODYgNzdlY2M1ZTRmNjY0YzcxNDI0ZTRkNTFhYTVmMTM2M2ExNjA5MmNiMSBsZWdhY3ktdHJ1bmsKKzc1NDg3IDI5MjhmMWU4YjM4NTgxNTQyM2FkMmU4OWI1ZDhjOTAxNzEwNTIwNjAgcHkzaworNzU0ODggY2I1M2IxZmE3MjA2ZjJmNTIwNTA1Mjc5ZDVkODU1NDRlYjZiZmMzZCBweTNrCis3NTQ4OSAzZGJjNjIwN2NiZjZkZTRmZmE1MWNhMGI5Yzk3ZGIxMmRlMDM4NjM1IGxlZ2FjeS10cnVuaworNzU0OTAgODkzYzJhNGM5NTQ0NDU1Zjc5ODcxODgwMWU5Zjg3YTIxZGVmMDQ5NiByZWxlYXNlMjYtbWFpbnQKKzc1NDkxIGRlMmQ5OWFhNDZlYWZmNDgzYTlmNWNhYjI5MDI3MWExZGU0ZTU2NjYgcHkzaworNzU0OTIgMmI2MzU5NzA5MTg4YjExYjY5ZjMxN2ViMGVkZDNjZGQ0YjAxZTk2MiByZWxlYXNlMzEtbWFpbnQKKzc1NDkzIDA5OGJhM2E2MzczMGNhNmQ3NjRiYmFkZjU5ZjBjZmE3NGJjNjEwMDEgcHkzaworNzU0OTQgNTM5NzAwMmY3ZTVlOGZiOTE4MTIxZDBkMGY2MDM3NDcyNWNmN2M4ZiByZWxlYXNlMzEtbWFpbnQKKzc1NDk1IDBmOWU4ZDNlY2FjMzhjNTc2MDcwZjU1NTUyOWE3OWY2OTIyYzFkNTggcHkzaworNzU0OTYgMmM2MGFjNGVkNjVmNjkwMGI4NGFiYWFjYzlhOTI0M2JlNDM0YmFlMiBweTNrCis3NTQ5NyBlYTFmZGFmYmU0ZmUyNDU4YWMxNzI4N2UwZDZjNzA5ZWQwMGZjZTVjIHJlbGVhc2UyNi1tYWludAorNzU0OTggYmZlNzU2ZWIwOWZhYWQwNWU3YWQwYTlhNWEwOGRjNjdiZTEzZmJhZiByZWxlYXNlMjYtbWFpbnQKKzc1NDk5IGEwZTQxZGZiOTcyYjUxODc4MzM5Y2ZhYjFmMTc0OWQ5MDViZjVlZDcgbGVnYWN5LXRydW5rCis3NTUwMCAzODY0MTRiODQ2ZWJjY2RjYzc4NGVkNWQ3NzAxMzBjY2U2NTIzZGRlIHB5M2sKKzc1NTAxIDI1ZWY2ZjQ4MThhMDU3ODk0YmQ5ZDc3MGZmOTc0ODk3YzA4NTY0MTcgbGVnYWN5LXRydW5rCis3NTUwMyAwNjk5OTI1Mzk4N2JiNTM4NWU3MTk3MmU1MGFkYTY1MTAzNDNmOTE1IGxlZ2FjeS10cnVuaworNzU1MDQgMmE2ODUzYTEzYTJmNzk3ZDliODQyZmMyNjA5ODE3MmRlNzA4YTQ0YyBweTNrCis3NTUwNSAzY2NkMWQ2ZjA1YTZiNWM3MGM1YTVkOThmNGYzYzRhMTE4NjYwYjE0IHJlbGVhc2UzMS1tYWludAorNzU1MDYgZDE2NjZjYzdiYzc0ZjNhZDlmZTRmY2YxZjBiOGU0OTFlOWRiYTUyYSBsZWdhY3ktdHJ1bmsKKzc1NTA3IGQ4OWU0YTRlMGIyMDdmZGI0MGM2Zjk5Mjc1ODNjYWRiOTU0MDZmMTEgcmVsZWFzZTI2LW1haW50Cis3NTUwOCBlZDk5MDI2ZTA3ZmNkZGU4ODZjN2ExYzQwN2FmYTk5ZTMwODVkN2Q3IHB5M2sKKzc1NTEwIDc5Y2IwN2ZhMzZlYzEwZTAwM2M2YTA1NjNhOTFjZWVkY2MxOGFjMmYgbGVnYWN5LXRydW5rCis3NTUxMSA2NzQ5YzhhZGM0OTg1N2NkZGMyMWVlZDZjN2RlZjA2ZWI4YzZhNzYyIHJlbGVhc2UyNi1tYWludAorNzU1MTIgZTY0NGVlNGU3NmM3YmNmN2FjMWY0ZTU1NTdjMTY1NGZjMDAzZTNkYSBweTNrCis3NTUxMyBmNDI2M2E5YmQ4YWRkYTczYWQ0YTU0NWIyMWFkNTZiMzE5MzhjMDBhIHB5M2sKKzc1NTE0IDk4MjVlYzIyOGVmYjEyY2IyYmY2NzgxM2I2OTc4Y2YyNjE0YjUxZWYgcmVsZWFzZTMxLW1haW50Cis3NTUxNSAzNzE5MzdiYTZmYTYyY2IwYmM4ZjU3NzZjZTY5ZDg2YzE0ZjY4NzhiIHJlbGVhc2UyNi1tYWludAorNzU1MTYgZDhhN2IzMTRmYzUwNTAxMjUzOWZiZGU1ZDFkNWNhMzhkNTI4Y2UyOSByZWxlYXNlMjYtbWFpbnQKKzc1NTE3IDcxODgwMDI5ZmU3NTYyYTQzODBlMjBjYTlkZTFiYTMyMzg5ZjFkMTkgcmVsZWFzZTI2LW1haW50Cis3NTUxOCBmMzA2NjdjZDQwNDNjNDNiODllMDM0ODkwZThiMDQ2NjhjZTQwZjc4IGxlZ2FjeS10cnVuaworNzU1MTkgMTYwZjE2YTkxZWU3Mzg1YTUwYjM2YTEzZjFhYmQyNTgzYjM4MjVjNiBweTNrCis3NTUyMCBiZDZkZWU2YTc4YzM5NWVjNjE3ZWI0MWYyNmJiYWQxMGE2ZTg3ZmFkIHJlbGVhc2UyNi1tYWludAorNzU1MjEgNDIzMDNjOGNhYjMxNWViZTcwYTliYzRjOGIxMTFjNzFlNDcyNmJmZCByZWxlYXNlMzEtbWFpbnQKKzc1NTIyIDRhOTU0MmFjY2QxMzM0NWU3NWUwYmZmZDk3ZGY1NWNmZTE4NWE2NTAgcHkzaworNzU1MjMgNjcwZTIyMmFmZDQ4MTdkMzhhZTFiYjhlOTY0OTZkNzRkMjQ5NDU2NCByZWxlYXNlMzEtbWFpbnQKKzc1NTI0IDNkYWFjZDk4OTI1ZDc4Njc3NzgwOTUyMTdkZmE3YTcxNzU2ZGEzYjUgbGVnYWN5LXRydW5rCis3NTUyNSA3MzI3MmJkOTRkN2IwM2ExOTk3OGFkZTg0ZmJmMDA4OTcxYmM2ODE5IHB5M2sKKzc1NTI2IDM0MTgyZjk4NTg5YjhjOWEyMzkwYjkwNmEzNmY3MzZiNzAwNGE3OTMgcHkzaworNzU1MjcgZjc0MDMwYmE2NjEwODhmNmUyOTIwNzlhMDc5OGNhOWQ5NmIyNGIyYSByZWxlYXNlMzEtbWFpbnQKKzc1NTI4IDkwYzEwZGNiMjkxMzM5MjIyMThhN2UxZDZkMjllMjQ4OTYxODcwNzYgbGVnYWN5LXRydW5rCis3NTUyOSA0M2QwYjQ3MTA2ZGY4YjhlZWRlZDg1NzlmMWY2NDdjZDhkMTAzZjk3IGxlZ2FjeS10cnVuaworNzU1MzAgNTU0MWU0MmUxYzgxMWQxZGJlNDZlMzkzZTM3MjNhMGE2NGM0ZDlmYSBweTNrCis3NTUzMSA4NTY4NWU3ZDcyYzcxODRiYzZiNzM5YTU4MmQwZWE4Y2ZlMWIxYmU5IGxlZ2FjeS10cnVuaworNzU1MzIgNTQwMzFlY2U0M2EzM2FjYTE2ZGMwOWYzMmExMjQ3N2UzZWE2YjU2YiBsZWdhY3ktdHJ1bmsKKzc1NTMzIGNhZjNjOTNkMDE5MzZhNGIyZTQ3YWU2MmU4NWU3OGNmNTlhYTU1ZjIgcHkzaworNzU1MzQgZTZjNGRiYjVkYjAyZTUwOGE0OWU3OTdmYWY5MzQ2MzYwNTAzMTkwYyByZWxlYXNlMzEtbWFpbnQKKzc1NTM1IDdhZDZlNzhhOWM3ZGNkYjE1NmRlZGEyY2M0NTVhMjY4YzgyNWY2ZTMgcHkzaworNzU1MzYgY2VjN2Y0YzU4NTQ0MTQyOTBmNzU2ZTU2MDQzNzc5OWFmNzc2YjkwZiByZWxlYXNlMzEtbWFpbnQKKzc1NTM3IGVkZjIyNjM3YmQ5MDhkMzdjOTc0MDg1OTE2ZDZiNzk2NjRlNzFlMWYgcHkzaworNzU1MzggMmYxNGIwZjQ1NTFhZjJhMjkwMDczN2VjMWI0OWVkMTY0YTVkYmQ0OCBweTNrCis3NTUzOSA5MWVlODFmMWE1MjQyYjY2ZTViYzlmNWU1MjYwMDBmNjIzYmVmOWM2IHB5M2sKKzc1NTQxIDdhZTZkNWU0Zjc5ODM1ZTdiNDA3ZjhhNzJkMDhhZjMyN2MyM2QyNjggcmVsZWFzZTMxLW1haW50Cis3NTU0MiA5NWJkNzBkNWQ3MTVjZjA4ZGI1MzFkNWU3YzcyMGE5NWNkZmQ3ZGQ5IHB5M2sKKzc1NTUxIGJkYzM5MDcyMWY5NzVjOGQ5ZjYxMGUzYWY4NTQwOTQwNjliN2VhYmMgbGVnYWN5LXRydW5rCis3NTU1NiBhMjE5OTg4OTNiMWRlNDY2M2RiZWYxYjhkOWQwN2UyOTU3ZTQ4MDMwIHB5M2sKKzc1NTU3IDk0MWYxYmU0MjNhYTE4ODcxZWJkOWY1MWFkYTFlMzZlZjFkZDAwOTIgcmVsZWFzZTMxLW1haW50Cis3NTU2MSAxYjYwMmEyZDgxZWY1MThiN2UyODcyNDJhMTY3MmI1NmUxZGM4MGNmIGxlZ2FjeS10cnVuaworNzU1NjIgNmU0YTQ5MGU3MTQ3MTNlYzA0YTdlNDU4MTNjNTBjMDY4NWQ4ZGY0ZCBweTNrCis3NTU2MyAyNjAwNzM5NTYwN2U4OWRjM2Y5OTYxMTA5ODQ4YzBjMzBiM2RmMWFhIHJlbGVhc2UzMS1tYWludAorNzU1NzAgMTIwNzljM2Q0Yjc3OWNjY2ZiZjJlM2FkMzA1YjE5M2NlMzdlZWE5NSBsZWdhY3ktdHJ1bmsKKzc1NTcxIGJmNzYyNDEyMGVjN2ZlMWFhZTA4NmJkYTBiZTIzODk2MGVlM2VkOGEgcHkzaworNzU1NzIgMDI5OTk1MTM5MWUzNmFkMjMxNWRkNDBmNWY0ZjU4NDNhZjczZjQxOSBsZWdhY3ktdHJ1bmsKKzc1NTczIGIzYmVmZTBmMmI4ZGRjMmRlNDdiZjMzZmEzOTU4ZGQ2Y2MzOTBmMmQgcHkzaworNzU1NzQgM2NmZDIwY2Q2NDU5ZjVjYzQyZmNiYTFmMDYyYzg0YjdmMzIwNzZlNSBsZWdhY3ktdHJ1bmsKKzc1NTc2IDE3Y2U5NGFlZTcwNDZhYjkwZjI4MTRiZjM2NzQ5YzQ3YTljYzNkMTIgcHkzaworNzU1NzcgMWU3MDM1ZmE2MTU0YzZmNjVmMDYwZjZkOWE1MmMzYjEyOTQ1ODhlOSBweTNrCis3NTU3OCAyOWIzZTEyNmMwYzI0NjcyZjdmNDM4YTE0OGVjNWMzODY4MTMzMGViIHJlbGVhc2UzMS1tYWludAorNzU1ODAgMWI5NDQ0OTdlODFlMWRiZmRmMjU4MjBkNWU1YzcwODkxOTk1MDU1ZiBsZWdhY3ktdHJ1bmsKKzc1NTgxIDhjMWI2MWU3NDYzYTQxZjdmMWQ3ZTZjNjg5MDQwYmFjMjc1YzI1NTAgcHkzaworNzU1ODQgNWQ4YjJkNmRjZDYyMjlkZWEyYzRiNTdmMThkYzRiOTUyNzYwNzM3NSByZWxlYXNlMjYtbWFpbnQKKzc1NTg2IDcxNmVjM2VkM2ZjZjhmYWY1ZTNkYjhiYTVhZjE5MzkxMjAxNGFjMTMgbGVnYWN5LXRydW5rCis3NTU4NiA0MTRlMDNjMTQ4MTU5ZjQ5YmQ2ZGViZmU1Y2E4YmJjZDhmZGUwNzk3IHB5M2sKKzc1NTg5IGViZTE5YzRjNzFmNTcwNmM5N2UyYmE3YjgzYWE4M2U3ODcyZTZhOTYgbGVnYWN5LXRydW5rCis3NTU5MCBhOWJhNjM3ZDRkY2QzNzU2NTRjNGJjMjAxNGMzOTA0ZTIyMTlkYTY5IGxlZ2FjeS10cnVuaworNzU1OTEgOTc4MzQ5YzA3NGNlMDgyOGJmNTVjMDFhMmFhMWU2MDQzMzYwMjA1NyBsZWdhY3ktdHJ1bmsKKzc1NTkyIGZlODVlZjI3ZGM0NzkxZTY2ZGY1NGM5ZDE3MDk1NDU3NTY0YjZiYjAgbGVnYWN5LXRydW5rCis3NTU5MyA1ZGUxYWMyNDJiZmI1NjNmNDQ1ZjczNmI1NjQ4ZDc1ZjhhYTE3Y2VjIGxlZ2FjeS10cnVuaworNzU1OTQgNThiZGExMjA1YWNkOWQ4OTFjMzRlMzg5ODU3YzRmYjJiYWM3MDA3YSBsZWdhY3ktdHJ1bmsKKzc1NTk1IDBiYTliMjE3MTgxZWQ4YzU2MDU4M2M5OGY5MGU5YzZhZTJlZDJkNDMgbGVnYWN5LXRydW5rCis3NTU5NiAzYzI2YzZiNGRiNTAwYjdjY2FmNDBmMTFiZTUwZjhmYjRkODNiMzc4IGxlZ2FjeS10cnVuaworNzU2MDAgMDdlZjU5NzY2YjAyNmUwMzIxNDk4ZTYzMjRhMDE4MTU0ZjJiYWZlMSBsZWdhY3ktdHJ1bmsKKzc1NjAxIDI3ZWFhYzA3YzVkNmE4OWExYTYxYTA3Njc2NTQzZWU4MGRkYTZlZGQgcHkzaworNzU2MDIgZjU1NTY4YjM5OTI1NmMyNzMxODM3OGExZGVjZDcyOTRmNzIzNThiMCBsZWdhY3ktdHJ1bmsKKzc1NjAzIDA2NTM0ODY5MzViNjQxNjhkZTM0NGQwYTUyMDY4NmEwMWJkODA5Y2IgbGVnYWN5LXRydW5rCis3NTYwNCBiYWNkNGQ0MjI1NmI2Njc4Zjg1ODEwOWQ0ZmI3MTFiYzQzMzAwZTdmIGxlZ2FjeS10cnVuaworNzU2MDUgNzJhNWZjNzkwZDAxZmMyMzIyODZiZWM3Nzg2YzdmZGE4NzZkZGQ3NCBsZWdhY3ktdHJ1bmsKKzc1NjA2IDhhNThhN2VjOTJkYzU2ZDY5ZmQ4OWI1YTVhNGEyNzhkYjUzNTIxM2YgbGVnYWN5LXRydW5rCis3NTYwNyA0Y2ZhZjZhZWM1ZWJjNTU5OTA1ZjI5YzY0ZThmN2I1M2ZiM2QzYTE1IGxlZ2FjeS10cnVuaworNzU2MDkgYzQzODhlN2U3N2U5ZjY2ZjY0MTIwNjAxY2Y2MGU3Nzg0MWNiMmE0MiBweTNrCis3NTYxMCA1NjlhMGQxNzBmYWM3MjAzNDUyMmRiNjhlNDk1NGFlOWQ1Yzg0ZDczIGxlZ2FjeS10cnVuaworNzU2MTEgMWI4ODgzNDMwMTM5MTFmZGZiNmUzNTU3OWYwYTEyYzQ5ZTdjN2FkMSBsZWdhY3ktdHJ1bmsKKzc1NjEyIGExN2I1OGE0ODZmNDBiNTg1MWM2NDk2ZTMwMjUyY2Y5M2M1MzE1Y2QgbGVnYWN5LXRydW5rCis3NTYxMyA5ZmZhMTUxMzA5ODQ2NTMxNWU3Yzk3NTVmNjYxZmM1ZDdmZmU5NWZlIGxlZ2FjeS10cnVuaworNzU2MTUgNjgyNzljMTMzZmQ5OTIyZDQ2MTc2MDY2MWZmMDI5ZDI5Mjc5NzA2OCBweTNrCis3NTYxNiAzMjFlNjM1YzlhYjgyNmE4YWZhNWYzZjQ2OGQwNTY0NTY1MzkyMjVjIGxlZ2FjeS10cnVuaworNzU2MTcgZjNiN2JkNmU3YWRkOWZhNzE3ZjExMWM4ZTM2OTI0OTFmMmFkYTRlNCBsZWdhY3ktdHJ1bmsKKzc1NjIwIGRiMjFjM2MwMDlkYjM5M2NlMjdkOTczN2ExMTgxYTI2MDg5YjZkMjkgbGVnYWN5LXRydW5rCis3NTYyMSAzYzA2NjQ0ODBmN2ExNjBiZTNhNDAzZDdjYTE3NDRmNDQxOWFlNTI3IHJlbGVhc2UyNi1tYWludAorNzU2MjIgODgxOTU4ZGEyMTlhN2EzNGQ4MDE3ZGYxMTMxYzQyZDJjMTY1ZGQxNyBweTNrCis3NTYyMyA2ZDI3MmZkMWNkZDFlN2I0NWNkYmQyODQ3OGQxOWY5ZGU1ZTA3MGUyIGxlZ2FjeS10cnVuaworNzU2MjQgOTJkZGUyODIxNTNkZWY1NGI0NjQ5ZDBkNDc4MjM5YmM3NGY4OTEyMyBsZWdhY3ktdHJ1bmsKKzc1NjI1IDllYjc5ZTk0MjA0ZDI2NWM4OWY0NzkzOGY5MWZlNTgzNzQwNGFmYjggcHkzaworNzU2MjYgNjIwMDg1YWI0OTViNDE2NDg0MWEzMWUzNzkxYmVmZjEyMDVkODM3YiByZWxlYXNlMzEtbWFpbnQKKzc1NjI3IGIxMWYwMmNiMTEyNDRmN2QyZjU1ZWVhMTVjZGE1YTZmNjNlNjk5YmMgbGVnYWN5LXRydW5rCis3NTYzMyA5ZGYzMzkzNzE3MWY2NTE2Y2I1MDcxMWMzNDUzYmI5NDdmZTNjYmVmIGxlZ2FjeS10cnVuaworNzU2MzQgZjA5MTQ0NGRlZWEwMTA0MGZmMmY4M2I4ZTBiZjAxNmViZDk1NmIyZSBweTNrCis3NTYzNSA5NmQ2YzE0NmNmYTkxNzYxYTg1YmYzNjQyMzU2Y2QzMWIxYTg2NWIxIHJlbGVhc2UzMS1tYWludAorNzU2NDAgZjM4ZGFiZjI0MGNiYWVjNDE1M2Y0YzQ3ZGE1ZTg5YmZlMjI5N2M2ZSBsZWdhY3ktdHJ1bmsKKzc1NjQxIDM1YmI0MzM4NjczNDRmZTMyN2JlNzEzZmFkODBmYTcwNGQwYmUzOWEgcHkzaworNzU2NDIgMTYxZDMzMmFmYzg4NGQ3YTc0NzI0YmNiNGQ5MDQ0MGIxMzY3MzE4OSByZWxlYXNlMzEtbWFpbnQKKzc1NjQ3IDgwZjIyOTNmZDY2YWM4NTFiNmE0ODVlNzgwMTQ4N2E2ZGRiYzY2N2QgbGVnYWN5LXRydW5rCis3NTY0OCAxMGU3MjkzOWQyY2Y5MTY2ZGI1ZDhhMzA3YWY5OGYxZDJjM2RkNWI5IGxlZ2FjeS10cnVuaworNzU2NDkgOWE5MWQ0NTJhMGY4OGY3ZTg2NWZhNjJhMjdhYmVkMmVhNjQ3NDVlZiBweTNrCis3NTY1MCAyZjMwN2M3YWRiOGZjNWIxMDc3NTI3MjFmZmVjNDIyMTQxNThmMDAzIGxlZ2FjeS10cnVuaworNzU2NTEgMjE0NmJiZGY0ZWQ3ZGEzOGI5ZDJkMGUwMmI2MTVkMDZhYzEzM2FhNCBsZWdhY3ktdHJ1bmsKKzc1NjUyIDBjOWNmYzdmMWU5NWI3N2Y1YzhjODc1Y2JiZjM2YWNlYjg0NDg5NWQgcHkzaworNzU2NTMgZWI5MjVhZGJhOGY5MDE0YzRjMjFlM2I0ZjRjNTkyYzkwZDVmOGQ0YiBsZWdhY3ktdHJ1bmsKKzc1NjU0IDI2NDYwOWZiZGE0ODE1NjM3YjU4YWM0NWI5YjQ0ZWQ0MDFjMTRlNzQgbGVnYWN5LXRydW5rCis3NTY1NSBhZTAyYjE2ODE2MmNlOGY0ZGRlYTIxNDBhMTYyNDk4YzIzYjEwZDQ0IGxlZ2FjeS10cnVuaworNzU2NTYgYzcwNDc1MGU2ZjNlNWIwNTA2ZTE3NGNkMmZhNGE2YzlmYjQ5N2EyNCBweTNrCis3NTY1NyA2ZDI5Y2U5ZGNhOTAyZGEzZjIxZWNiMDc1MWYyMTQ2MTZkNWZiYjFjIGxlZ2FjeS10cnVuaworNzU2NTggMmFiMDhjOTE5NjQ4MjRjZjA1YWM5NWM4NWJhZGQzOWNhZTdmY2M3MiBsZWdhY3ktdHJ1bmsKKzc1NjU5IDI0ZDQzYTkxNDJkMjVhZjBlYjIwMjNkNDAwMjlmOTFiOTNmNTdkZTQgbGVnYWN5LXRydW5rCis3NTY2MCBkYWJlMWY5MmNhMjc0Mzc3NzlhMTgzNzgzN2NmM2ViNzQwY2RlMmI0IGxlZ2FjeS10cnVuaworNzU2NjEgNzIwNjZlNWI5NDIxN2UxMzg2YTk4NTY1OGYzNzg0ZTkwYWM0MWMyZSBweTNrCis3NTY2MiBjYmUzOTNmYTQ0Zjk2Mjg4NzdiMzMwZTcyZTdjMjQ5MzhjMTI0ZWE5IHB5M2sKKzc1NjYzIDU2N2IwZjM0YjFlYjEzZTMyMzJmNzEzZWFhMmU5NmU4ZmZiZjdjYjIgcmVsZWFzZTMxLW1haW50Cis3NTY2NCAwNmU2NjM2NjE4ZDcyMWI4M2Q0NDFkY2ZhNjljZmQ3YzI5NTE1MjdlIGxlZ2FjeS10cnVuaworNzU2NjUgY2M4OGE3MDM0MjhkMDExZjJiYTg0ZmUzZTM5YzU2ZmE1Y2ZjMDk1NyBweTNrCis3NTY2NiBhYWNlZTk3NDlkMTU0MzVhOTcxYzc5NDZiZmQwYzA3ZTgzYmU1MDJiIGxlZ2FjeS10cnVuaworNzU2NjcgOTJmMGExY2E0ZTk4Njg0M2QzY2IxNjcyZjZiNTUxMjIxMzY4OTkxNyBweTNrCis3NTY2OCAwYzM4NDA4YWQ4MTllMGU0YjI0NzFiMzNkYWM2ZTYyNjZlYzA0NGYzIHB5M2sKKzc1NjY5IGIyYzhiOTg0MjUwYWFmOTE3OWMzMTExOTYyMmZkYmM3YmQzOTdkZGUgbGVnYWN5LXRydW5rCis3NTY3MCA0ZDY1ZjEyMmIyYjNiN2Y0ZmFkYWU0ZTBlNTE4MzNiMDExODE5MzNhIGxlZ2FjeS10cnVuaworNzU2NzEgZGFkMjJhMWVkMjhiMmY2ZjViNTcxYzg3ZDZkNzlmY2M3YWViYjRhNCBsZWdhY3ktdHJ1bmsKKzc1NjcyIDVjZjMyNDMzMTViNWJiOGE4YjdlMDNhNzRlMzk4NWJkYzIwODE2YTUgbGVnYWN5LXRydW5rCis3NTY3MyBmMDIxOTkxZWNmOGQ2YjMxZTBmZmQ5ZjA2NTI5ZTE3M2EzMjIyNmJkIHB5M2sKKzc1Njc1IGVkZjM1YzNhNDhhYjhiMjRhMmI1NzYwYTE2Yzc3ZWEwNGVkNzJiOTggbGVnYWN5LXRydW5rCis3NTY3NiA0M2Q0N2NiNjY4OGNmZGUwOTk1MDk2Yzk2ZDQzM2U0YzgzMmY1YzkzIHB5M2sKKzc1Njc3IGNiNzIxYzMxOTVmYzc0ZGY3MzJkMjkyYzQ5NTdiYmRjN2RhY2IyOWMgcmVsZWFzZTI2LW1haW50Cis3NTY3OCAxNGI1NWE0ZTg3MjVhYzhjMzM0NDNlNjY2MjBiZDNkYTgyNGE2OTY0IHB5M2sKKzc1NjgwIGI1NGRhNWNhYWIzNjUwNTAxMTY2YTEzOTZkNzcwMWJmMmY4YjY2NzUgcHkzaworNzU2ODIgMGMxMjM4Y2FiZTkyMTVlYmNkZGE1ZTFlOTdlMjVhYTAwNjg2ZjA5MCBweTNrCis3NTY4NCBmNWM1NjNhN2RlNzVkMzkyY2IyNGU5MmIxNTE3NjM4NDllZTYwM2YwIHB5M2sKKzc1Njg2IDZjYTY0MmQ0ZjQyZmQ1Zjg3MDU0NjY4ZTFjMTBjN2FiMDgwNWEzNDcgcHkzaworNzU2ODcgYzcxYmE1ZDFmMTdkMjJmMTY4NzVjZmVmMTkyN2IzZTZmYWUzZGQ4ZSBweTNrCis3NTY5NiBkM2Y2ZmJlYmVhYzkwM2Q1Mzk3ZTA5MTE5NDM3NGViMTFiMTEyMTE5IGxlZ2FjeS10cnVuaworNzU2OTcgZmJlNmIyNjViZDFhMDk1M2I2ODdmMjcyOWU4NGQxNDEzNTFiODEwMyBsZWdhY3ktdHJ1bmsKKzc1Njk4IDQ4MzRhNDI4NTQxMWI5MTIzOTc3NDcyZmQ2MDRmYjUwNTFlZWZhNjcgcHkzaworNzU2OTkgYTM1M2UxMDhjN2U0MjM5ZDRhMzk2NDhmNWQ4Mjc1MTFkYzU0Mjk2NCByZWxlYXNlMjYtbWFpbnQKKzc1NzAwIDk3NzM2Yzc4OTBhNmI1MzZhY2JhNDgwMmVkNjkwMjcwYTU4YzRjOWYgcmVsZWFzZTMxLW1haW50Cis3NTcwMSBkZDQ2NmFjMTkyYmU5ZGVmZDkwZWJmMzZlOGYxYjFiNGE4NjllNWU0IHJlbGVhc2UzMS1tYWludAorNzU3MDIgOGFjOTA3MDE1NjA1OTU1ZTNjOTA2NDIxODgzNzhlMzkzMWU2ODQ0MSByZWxlYXNlMzEtbWFpbnQKKzc1NzAzIGY4ZTY1Y2EzZmQzOWNkMGIzZTE5ZDk2MTBmNDk1ZTVmNTYyN2FkMjggcHkzaworNzU3MDQgY2I5YzU3ZTJlYmQzNDc5MzBmMDIwOWY0YzI5YjQzMDEyMTEyODE2NCBweTNrCis3NTcwNSBhM2NiODEyZDgwZjkwNzZjNWIzYTAzNGEyODhmOTMxYWEwMzZmYTBmIHJlbGVhc2UzMS1tYWludAorNzU3MDYgODgwM2MzZDYxZGEyNzVjNzFjYWJlOWU5ZDAyNzRkYWM5OTAyZTJjMCByZWxlYXNlMjYtbWFpbnQKKzc1NzA3IGVjNGExYjRlY2IzMTQwODg0NGFmODRjNjcyMjRmZDUwMWI1M2I0ODEgcmVsZWFzZTI2LW1haW50Cis3NTcwOCBiNTE5NjA4YTk3MDFmMDEwOGU3YTE2MTgzY2RkZDVlZjMxZDM1YmNlIHJlbGVhc2UzMS1tYWludAorNzU3MDkgN2I2MDM2ODBiZjI5NWEyMDAyNDRkMGE0ZDYzZTU4NGU3MmYzMjFlMCBweTNrCis3NTcxMCBkM2NmOGViODcyNzRhNmM2NGYxNjJjNzk0ZjRkNWJlMWFjZGYxNWM2IHB5M2sKKzc1NzExIDc2YzY2NjkwZDFlZWE1Mzc2ZTkyODg5MTkwM2ZiNWFjZmEyNjhiN2IgbGVnYWN5LXRydW5rCis3NTcxMiA4ZWZmNzU5ZDA4MGY5ZGIxZDdiZDdiZjM4YTY4YTVhYTg4M2Y2MzE1IHB5M2sKKzc1NzEzIDk3MTM5M2Y2MGJkODc0ZGM0ODE2NWJiZDdhZDQ4NjI0NzAwNTAyMGQgcmVsZWFzZTMxLW1haW50Cis3NTcxNCA2ZTRkODk2OGUyNDY5NmJkYTkyOGY5NDVmMzA0ZDU1Y2UxYTUwZWVlIGxlZ2FjeS10cnVuaworNzU3MTUgN2RjNTdiOTkxZDgzYmRkZDJjNWY1MmFkNmQ2MDhlNzVmYWM4ZjVjYSBweTNrCis3NTcxNiBmNTk4ODQzZjM2OTViY2NjMWY4YzMwOWM5ZWNkNjMxZWZhMDg4YWEzIHB5M2sKKzc1NzE3IDA5NWFmOTllNmI2NDBmNTI3Nzg0NTg3YWI2YjlkZTJhOWY5ODFlZDAgbGVnYWN5LXRydW5rCis3NTcxOCAzOGE1NzU0YjMwMzc3MWQ4MTVkNDNmNTBiM2UyNzhhODc1MjBmNTA2IGxlZ2FjeS10cnVuaworNzU3MTkgZjRjN2ZkODVmMjMyNDA5NjRhNDEzNDJlOWM2ODE1ZjkwMTA2YzA3NyBweTNrCis3NTcyMCAzOGZkYTNhNDJjMGIzZjU4ZjZhNzZjYzEyMTRiN2VmOTBlNTA5ZWM5IGxlZ2FjeS10cnVuaworNzU3MjEgZGE5NmIzZmVhZjUyNWI3NjFmY2E2NGYyOWYxZGE0OWQ0YWJjM2VmYiBweTNrCis3NTcyMiA3NDQ3MmRhMDlmNmNkZGViODUxOWY3NmU2N2NkOGE1YjQxMTU3MzdlIGxlZ2FjeS10cnVuaworNzU3MjMgYjU1YzJlZWUzNDhiNTYzNjYxZDYxMGM5Y2JkYjc2NGYyZDY0NzRmZSBweTNrCis3NTcyNSBmM2JmOTJjZDExOTE3NGMzOWMwYTY4N2U3ZmNmNTQyMWZhYzI4YWQwIGxlZ2FjeS10cnVuaworNzU3MjYgNDUwMTA1ZGQ5Y2E3NDUzZGMzYzBhN2QyMjA2OTJiODc4YzI3YWMzNiBweTNrCis3NTcyNyA2ZGEwYWU2ODBmYjYwMmRjZmE2OWM0YjYwMzY3OWFlNjkyZmY2YmE4IHJlbGVhc2UzMS1tYWludAorNzU3MjggMDNlMWRiZTJmNGQ1OWM4Mzg5ZWE0NTI0ODVkY2Y4MGE2YWViZTU0MyBsZWdhY3ktdHJ1bmsKKzc1NzI5IGI1MDQxNzU2ZmQ5MTQzYzgwNWJkNWJiNWU5NWQxYWFhMzI0NTQ1NTggcHkzaworNzU3MzAgNDFiZTJjNjk2MTliMmM2YzY3MTAyZWM3YmE4YWZmZTU4M2IxOGYxZCBsZWdhY3ktdHJ1bmsKKzc1NzMxIGM1NjQxOWNiZGQ0ODY0MzcxOWNkMzM5OTEwYjdlMDhjOGQyNGVhYjEgbGVnYWN5LXRydW5rCis3NTczMiA2ZDIzOTZlYTdiMDNiNDRiNzQ3ZmIxYzQyNWZkOTAzMTk4OWNhMmUzIHB5M2sKKzc1NzMzIGU1NWZmYjg3Y2I3MDJjYzVmMzU2OWIwODg3NTZjNjA2MGEwNjUwYTggcHkzaworNzU3MzcgNGNiZWE5ZTc4MzU2ODE4MTMxYWZhODc0YmMyYWNmOTYwMDBjMWQwOCBweTNrCis3NTczOCA1YThlODE1OTRmMGYxNjFlMzgzYjgzNzIwMjlhMThiOTUzYjEzNjQzIHB5M2sKKzc1NzM5IDBiMWEwODgwMTJjNzRhMjE3YzZkOTcyNmVkYzM1ZTBiMjk2OTc4YzMgbGVnYWN5LXRydW5rCis3NTc0MCA4NzU1MDA2ZWRmOTczZGNhYjU2YTI0ZThhOGUzYjIwYmYyMmYxMjYwIHB5M2sKKzc1NzQxIDg5NmY5NDU0MWY3MmVmMzViYWUxNTFkMzAxZjE3NWZmN2MzM2ZmZDggcHkzaworNzU3NDIgNDIyNTJkNmQxMDMwYTJjMmYyNGI3ZTg3NTQ1ZDY3Y2I0M2EwODA4MSBsZWdhY3ktdHJ1bmsKKzc1NzQzIGE3NzgxNzFjOTNkZTVlYzY5YjFjMzhmNTgwZDg3MjA4ZjgzNGY1MGYgbGVnYWN5LXRydW5rCis3NTc0NCBiZTU0YjQwNDg3OWU2NWFlOTUxNmY5YmM4MDY4MDc3ZTMzMzA3NjRhIHB5M2sKKzc1NzQ1IDkxYTBjM2M2MDIwOTRlNTFhYWZiOTM5MjAxNDIzNzc5Y2FlYmNiNWUgbGVnYWN5LXRydW5rCis3NTc0NiA1NWQ4YTkxMTdkZTc4MGZmOWI5YWVjMmI5ZjhlYmJlNzczYTFjZmYwIHB5M2sKKzc1NzQ3IDE5YTgzMmI4NDY0YTJlZjkwMTNmODkwN2NjMzQxNmJkYmJhMGM0MDMgcmVsZWFzZTI2LW1haW50Cis3NTc0OCA0MTY5ZDNjZWNiOWRjZDI3Mjk2OWM0NzUwMjUyOTJiYTQ2MDkxMDA4IHJlbGVhc2UyNi1tYWludAorNzU3NDkgMmFiYzNiNGJjZTdjZjU2YTVlYTRlYjlmZjhkNDIzMjdjYTY5MzE4MyByZWxlYXNlMjYtbWFpbnQKKzc1NzUwIDE3YWNkZDY1OWVlOWU1MGYwZGM5YTI4ZmY5NGExOWEwZDc4MGNlMjkgcmVsZWFzZTI2LW1haW50Cis3NTc1MSBhMGVmNGVmNWZjODg3NWFiZjc1MzQ0MjY3YzI2MzY3YzM4MjVjYjM5IHJlbGVhc2UyNi1tYWludAorNzU3NTIgZjljZmVhMjAxNWIyMGE2MTQ5N2ZlZjBmNTBjYjk0YjkyMWUyYzc2OCByZWxlYXNlMzEtbWFpbnQKKzc1NzUzIDgxNzgxZDFlMmZiOWNkMjgxNGU5Zjg4MWUxYWVkNmIwODQ1YTA1YTIgcmVsZWFzZTI2LW1haW50Cis3NTc1NCBjMWMwYTBjN2Y3YmMzMDI0ZjU4OTVmYzg2MzZkODM4NmQzMjM3ZDY1IHJlbGVhc2UyNi1tYWludAorNzU3NTUgNTI0NTI2NzQ1ZjJlOTk0N2U1MGM1ZTQzMmQyZDRlY2NjZDY0YmQ4YiByZWxlYXNlMjYtbWFpbnQKKzc1NzU2IGZhYzRlM2ZkNzQ3YWNmMmM5MTcwOGJhYzlhMmQwYjQ3YWY3MzAxYmEgcmVsZWFzZTI2LW1haW50Cis3NTc1NyAyNTBiYzgyNDJlN2VhYmZlNDVmZGQ4MGI2MzI3NjdkODIzOTFkNzMwIHJlbGVhc2UyNi1tYWludAorNzU3NTggM2Q1NDA0Njk1ODViZTgzYjhjMDFiMDQ2YTQ3OGUxYTM3NTBiODk5NiByZWxlYXNlMjYtbWFpbnQKKzc1NzU5IDgzMDlhZDZhZTRjMGU3ODhhMjQzY2M0NDI5MTQ0YmU2OTUzZmVhNzUgcmVsZWFzZTI2LW1haW50Cis3NTc2MCBjN2RjYzIyM2Y5MjVkMzk0NjFiMWU4NzljZDc2NDczODZhNDljMDk3IHJlbGVhc2UyNi1tYWludAorNzU3NjEgMzU1Mzk1NDM4N2ZhNWIyNjY1ZGMxZjg3YWQ0NmI5MzJjODBjYTk1MCByZWxlYXNlMjYtbWFpbnQKKzc1NzYyIDI2ZWM4ZGJkNmY2OTdlZWYzZGQ4N2YxODczODU0Mzg2YTkyMmRjMzggcmVsZWFzZTI2LW1haW50Cis3NTc2MyBiNzE4ZjMxODhjNzZmZGMzOWIyMzlmMjI0YzRkYWE1OWE0MDQ1ODM5IHJlbGVhc2UyNi1tYWludAorNzU3NjQgNDdlMmMxNGIxNTAzMzUwM2QxMzc4OTgyMDhkZDgyNWEzYjZkY2FlYSByZWxlYXNlMjYtbWFpbnQKKzc1NzY1IGNjYmY3ZWJlZjQ3NTEyNzJmYzFiZGNmNTQwYjdmMzc1NjMzN2M0NGYgcmVsZWFzZTI2LW1haW50Cis3NTc2NiBjNzYzN2I2NmIzNGJiZTM3YTJmZGU3NmU0NmM3OTU0ZDkyNzMyYjk2IHJlbGVhc2UyNi1tYWludAorNzU3NjcgMGRkNWQzNjcyMTM0ZDhlNWEyYjExNjE3ZTVlZmJiNGE1N2I2MjEyOCByZWxlYXNlMjYtbWFpbnQKKzc1NzY4IGYwMGNjZjhlMTM1ZTEwYTNhMjVjYmQ4Yjc2NjU3NTFmZDdjNzZmYWYgcmVsZWFzZTI2LW1haW50Cis3NTc2OSBlM2U1M2I4OWMxNzg0Mjk1MzMxMWU5ZjI3YTY0YmY0YTI0MzZhNTFjIHJlbGVhc2UyNi1tYWludAorNzU3NzAgNmQ0MmYxZWVmNDVkOWRiZTc2NTE1NjMxMGI3OTI2NDFmOGQxYTgwMiByZWxlYXNlMjYtbWFpbnQKKzc1NzcxIGJiODE4ODczNmEyOWI0YTY0MTQwZjExNTc0M2ZhNzI3NWNkM2Y1YjEgcmVsZWFzZTI2LW1haW50Cis3NTc3MiA3ODZhYmFiYTQ2MmQxZTc0ZDY4M2I1ZjM2ZjgxMjZkYjYzZjRiNjBiIHJlbGVhc2UyNi1tYWludAorNzU3NzMgYzg2MzBmNzMwOTA3MThlYjI2ZDFlNjdhOGEyMDdhMTM3NGRhYTI0NiByZWxlYXNlMjYtbWFpbnQKKzc1Nzc0IDEzMTQ3MjdjMDlhZTdhNjkzNTRjOTc1YTk0ZTk2NzBmMzA4YzdmN2MgcmVsZWFzZTI2LW1haW50Cis3NTc3NSAwOTZiNDJjY2IyNThmNWM2M2QwZGZmZjA5NjU1OWM1ZDkyYWVlMDA3IHJlbGVhc2UyNi1tYWludAorNzU3NzYgOGFkZjhlZjdhNGRiYWFjOGEwYzgwYmUzYzA1YjRlMWM1MzRiNjkyZCByZWxlYXNlMjYtbWFpbnQKKzc1Nzc3IDA3ZTNjMGI0MWQ1MDAzY2M1YTg1NmE3OTI3NDNiMDlmYzA2NjhiZGQgcmVsZWFzZTI2LW1haW50Cis3NTc3OCA2OGY3Mjg4ZDE1NWNlM2MxN2ZlMjNmZjdmYTAxYmNmODA5NjVhZGZhIHJlbGVhc2UyNi1tYWludAorNzU3NzkgMGQ1MWE1ZDU2YjVhMjIxNTlkYzZkMGJmYjVmOWQ4MzI5ZmY3ZjkzNCByZWxlYXNlMjYtbWFpbnQKKzc1NzgwIGExYjA5MzZiMDI3Y2YzZjA2YTllNGU1OTA2ODljNGRhNmNjNjkyY2EgcmVsZWFzZTI2LW1haW50Cis3NTc4MSA1ZDkzYzc1NDA1N2NmMjY2NzVjMGY0YzY0MzEyMjQzZjgwMDgxNmI4IHJlbGVhc2UyNi1tYWludAorNzU3ODIgMTI3ZDYyMzM5NmFiOTNhYzk3YTA1YjFkZTQxMDkwYzkzY2M2MGQyYyByZWxlYXNlMjYtbWFpbnQKKzc1NzgzIGZhYjY2MGMyZWY4ODg3YmNjOGIzOWZiMDgwZGVmNDhhZmM1ZDIyMTIgcmVsZWFzZTI2LW1haW50Cis3NTc4NCA2NmRlNzExMTIzMGFiNDVkNDkzNmZiMzI4NTRiOTlkNTRjZjkzNjgxIHJlbGVhc2UyNi1tYWludAorNzU3ODUgNmIwNWQ0OGNjYTI4NzIwNjMyMDMzNjkxMmJmNjQ0Njg1NTEwNjc5NiByZWxlYXNlMjYtbWFpbnQKKzc1Nzg2IDNlMTVhMDdhMzJmYWY5ZDQwNGNmMjJlNmM0NjgwZTE2MzU4OGRhYjAgcmVsZWFzZTI2LW1haW50Cis3NTc4NyA5YjI0ZDAxMDEzM2YwYTYxMmYyOWMzYzM2MjE0ZGZmZGE1MmYxNmJhIHJlbGVhc2UyNi1tYWludAorNzU3ODggODVhYTcwNmY3MTI2ZDIxMTQwNjk5OTEwZjg3N2YwOTM5MTcxMjUxMSByZWxlYXNlMjYtbWFpbnQKKzc1Nzg5IDQ4NTIxMjMzYmQ2ZThkNGQ5ZTI0NzA2NmUxZmZiNGQyOGM1Zjk4NGQgcmVsZWFzZTI2LW1haW50Cis3NTc5MCBjNGM0MjliMDhhNTc1OTkyMmIxMmM1ODc5ODRlZWU0Y2JjMzBkZDBmIHJlbGVhc2UyNi1tYWludAorNzU3OTEgZWYzMTk0NzQ5Mzc3MDAwMzhmNGExNGY4NjgxMTQ2NDBkZTE3MGI4ZCByZWxlYXNlMjYtbWFpbnQKKzc1NzkyIGI3Yjg5NzBjZDVhNTc2NDA0ZDRlODIwMzA0MDYwNTU3OGEzOThmNTAgcmVsZWFzZTI2LW1haW50Cis3NTc5MyAyODg1MjUwYmE1ZjQ5ZjU1ZGZhZTdjOTA5ODk3NGE5ODBmMWFjYmJhIHJlbGVhc2UyNi1tYWludAorNzU3OTQgNDAyZGFkYzdiNGE4NjI0MjNlZWUxMWI0NTliMjYxZTczOTM1MTRiNyByZWxlYXNlMjYtbWFpbnQKKzc1Nzk1IDFkNjhiMWRjNDEwOTM2ZmI4NzIxZTg4ZTg0NjcxMzZkNzI1MzMyMDAgbGVnYWN5LXRydW5rCis3NTc5NiA4ZDllZjVhNzliYzdhNTkzMThkNTJhZmE0NGI1N2E5ZTUzOGQ2ZDk1IHJlbGVhc2UyNi1tYWludAorNzU3OTcgMzAzNTljMzNiNmY2NzdmMGM0YzU0ODY1NzMyNzM5ODc3NDM0M2M1ZSBweTNrCis3NTc5OCA5N2Q3Y2QzNjVkZDUzNDRmNTFhNTkwZDlmMjUyMjlmYjFkNjkyYTVkIHJlbGVhc2UyNi1tYWludAorNzU3OTkgNTk4YjliZWU3NGVjODgyYzJmYjIxMDI1ZGViNzIzY2UwMThlYjcwMSByZWxlYXNlMjYtbWFpbnQKKzc1ODAwIDcyODQ1MDdiYWRiMmEwOTc1ZjE4ZDc4YTFmODRmOGQ4MmNlZGM1MzkgcmVsZWFzZTI2LW1haW50Cis3NTgwMSA4MWI2M2FiNmQ0NWZiNGIzZjA3ZDYzMDU4ZDY2YjA2ZDNjMDdmYmM4IHJlbGVhc2UyNi1tYWludAorNzU4MDIgNWIyOTUzMzA4MzBhMDk2ODY0Zjk3ZGFjZjFkNTNkYjQ4NDg0NTIzZCByZWxlYXNlMjYtbWFpbnQKKzc1ODAzIGU5NDA4Y2IzZTI3NGUxNTAyNTMwZWMzNWI3NzA0NTZjMWFmNWZhYWQgcmVsZWFzZTI2LW1haW50Cis3NTgwNCBiZDc3NmUwMTk5M2FjYjkxYTAwODlkZmE4NGRkMDcwMWFhNmNkOTQ0IHJlbGVhc2UyNi1tYWludAorNzU4MDUgOWVkODk5MWE5MTQxYzY0MDkwZGMyNWM5NjE5Yjc4MDUwMzM5Yjc2MiByZWxlYXNlMjYtbWFpbnQKKzc1ODA2IDY3MGNhYTk3NzVmNjBhYjNkZTU2NjIyZmZmY2U5MDlmNWQyMjk5ZDIgcmVsZWFzZTI2LW1haW50Cis3NTgwNyA3NjRhZTJlYzRhNzA2MzFiMjM0MDYwYWViNTQzYzBjYzFlNWI4NmU5IHJlbGVhc2UzMS1tYWludAorNzU4MDggYTA1ZTFhNTczNjNkNzVhMTE3ZTJlMDY1OGM1MGI3YmE1YTA3MTY2ZiByZWxlYXNlMzEtbWFpbnQKKzc1ODA5IGJlNTM0OGIwNTRiNGY1YzBhMWQ4MjZjMDdlZWM1OTdlNzU4NmQzYTggcmVsZWFzZTI2LW1haW50Cis3NTgxMCAwMGU0NWQyMWYyNWJmODVhNDdiYmM0YjIyMTBmY2Q3ZGI2MWNjNjc5IHJlbGVhc2UyNi1tYWludAorNzU4MTEgMWMzMmI5NWZlNTc4ZTcwYmY1NDUyYjA3MWRjYjliYWE2YTI0ZTI3YyByZWxlYXNlMjYtbWFpbnQKKzc1ODEyIGI5N2U4Y2ViZThlZGE1ZDFiYzI0YzI4ZWRhYzFlYzRiMjQwMWU0MTUgcmVsZWFzZTMxLW1haW50Cis3NTgxMyBlNTBiYTJhODE5NzM2NzI5MTI3ZmY5N2M2MzgzNmU2YTQ1MGQxMGY4IHJlbGVhc2UyNi1tYWludAorNzU4MTQgZTRiY2ZlMmU2ZDU3NmMwZTdiMjEwZWY2ZDNlOTNlOTMyYjIyY2YzNiByZWxlYXNlMzEtbWFpbnQKKzc1ODE1IDA5N2MzNjBiNGJhNTlhMWM5YzE0MDg3YTFiNjhlYmM4ZWE4ZTYxOTYgcmVsZWFzZTI2LW1haW50Cis3NTgxNiA2MDRkYjlhODNkMTg3N2UzYzZhYWEwMTk2NGZhNWJhOTkyYzc1MzM4IHJlbGVhc2UzMS1tYWludAorNzU4MTcgZWYwODI1M2YyOTBiYWJmMTFiMTRjODBhODE4M2ViMWE5OGQzMzdiNSByZWxlYXNlMzEtbWFpbnQKKzc1ODE4IDNhOTkyMjkyY2NkODVmMTZmNGM2NzkwNjc5NzhhNmZkYzZlNDczMDkgbGVnYWN5LXRydW5rCis3NTgxOSAyNWJjM2Q2OWU4YWZlMzAxNTZkYzVkZGEzNDY5M2JiZTNjYmY3YWYxIHJlbGVhc2UyNi1tYWludAorNzU4MjAgMTlmNzZmYWJhOTY1NGRkZmRkM2M1NjI4NWE5YjdlN2FjMjBjZTM1YyBweTNrCis3NTgyMSA4NjUzMWRlNzU4OTRmMWZhMjI0ZTczNGJhMGU5NTRkZTZlMjljNzQxIHJlbGVhc2UzMS1tYWludAorNzU4MjIgNTk1MDVlN2U3MDczMmExZWIyOWNkMTc5YmJiNzJiMzUyMDI1NWI4NCByZWxlYXNlMjYtbWFpbnQKKzc1ODIzIGU0NzMxZmQyN2Q5MTY4MDUxNDgyMzJjZTU2ODljZDkxZDRiOTYyZTkgcmVsZWFzZTI2LW1haW50Cis3NTgyNCBlOTlhZGZjOTJkYzJlZjU3MzExNTIzZTQ0Yzg3YjZiMTI1MTliY2Q5IGxlZ2FjeS10cnVuaworNzU4MjUgMzU5NjJiNTQxNTk1N2VkZDMwNmY4NmZjOTA5ZmM4ZDc1YzY0MmEzNSByZWxlYXNlMzEtbWFpbnQKKzc1ODI2IDQyZmQ3ODU1MzQ3ZTg1OTFhNDFkYTNmNDkxZTBiMDBhMDM0ZGUzODYgbGVnYWN5LXRydW5rCis3NTgyNyA2MzJkZGIyNzUzMjFkZTI1YWY3YmZhYzBiNzM4YTlkZTA5OWQ5Y2IyIHJlbGVhc2UzMS1tYWludAorNzU4MjggZjhmYTM2ODBjNWQzNTU4MjI1MmRlYzE5MjY5NjhjODhiZjBmNmIwYiByZWxlYXNlMjYtbWFpbnQKKzc1ODI5IDYyOWQ0NWJhNDZkNzljZjMwZjQwNTYxYjQ4ZmNhNGE0N2JjNTUzMDEgcmVsZWFzZTI2LW1haW50Cis3NTgzMCBlMWJiYzYyMzJmMjlkMGEzODkxMjM5NTE1NTMxNjFkM2ZlNzg1ZmVkIHJlbGVhc2UzMS1tYWludAorNzU4MzEgZjhlZDg0NDBjZGI0NWZhMWIzZjRkM2ZiZTZiNTA2OTcwM2FiNmEzMiByZWxlYXNlMzEtbWFpbnQKKzc1ODMyIDEwNzUxNzk0NTFiNTYzYjc1OTExMWZkOGQyNDMzNmNiNWMzN2FlNWUgcmVsZWFzZTI2LW1haW50Cis3NTgzMyBhZTk0ZjY4NTUzMTAwYzA4NmM3NzJiNDRiMDMyYTRhZjA4NDc3NzlkIHJlbGVhc2UzMS1tYWludAorNzU4MzQgYjQwZmE4MjZlMWNmMGQ4YzNhN2U3ZTdiYmM1ZjM0NzBiZDFkZTg1OCBweTNrCis3NTgzNSA1ODBhYzE1MTE2NTIzYzFkZGFiMTI1ZDkyZTliN2ZmNDBkNzAzNDEzIHJlbGVhc2UzMS1tYWludAorNzU4MzYgOGE3NzRhZmU5OTAwOTBiOTlhOTE1MTQ1YmIzZjQ3OWNmODY0MDY0NCBweTNrCis3NTgzNyBjN2ZmMmZjZDJiNmJmMGU3ZTk2ZjY1Yjc3NDYxMjA1MTBlZmNlODkzIHJlbGVhc2UyNi1tYWludAorNzU4MzggMjY5ZjFkOWM4NmNkMjI2YTI4OGZkMjc5MWE0YmU2NTFhMGU4YmViNiBsZWdhY3ktdHJ1bmsKKzc1ODM5IDhmYjhmZDNiNjdjZjY0Mzg4NzE2ZDc2ZDNmMmI4YTcwZTM2MWJkNDMgcHkzaworNzU4NDAgOTM2YWFhMTI0OTJjNzA2YjMxZjBjYTExNDcwM2Q1YzZkY2I5NWZjOSByZWxlYXNlMjYtbWFpbnQKKzc1ODQyIGIzMWZjYmFiMDUyMGM0ODNjNTBhNTZkMTVlNTVlYjYzOWY1Y2I3MmIgbGVnYWN5LXRydW5rCis3NTg0MyA5NTVkOGZhMTJhZDU0YjVhY2I4NjAwYWYzMDIyMzhhNDg5ZTc4YTllIHB5M2sKKzc1ODQ0IDVjNTQxNGE4YzdjMjQ3MTY5YmJlNTY3NGMwMjViNjc2OGI2ZDllMjIgbGVnYWN5LXRydW5rCis3NTg0NSBlMWQ0MTI0ODkxMDdiNTMwYTY3NTdhNjRiNTcyYjU1OGIwMzkxNmM5IHB5M2sKKzc1ODQ2IDE0MGQ4OGQxYjE3OThmYjJmN2M4NWMyNGZhMzgwODY4Y2EzMTY2MWIgbGVnYWN5LXRydW5rCis3NTg0NyBlMjU5YjM0YTBiODgxNDQyNzkzNzc3NDA2MDFlNmFlYzk4N2M0NDEzIHB5M2sKKzc1ODQ4IDExZmMxNjBkNTNjNGRjYTUxZjViN2E1NTJjYzkxZWRmMWU5MjU4NjUgcmVsZWFzZTI2LW1haW50Cis3NTg0OSA0M2JmZjY5MDNhYTVhMzU0YmMwNzg1YjgyYzc1MmU2NTEyNzVjYzZhIGxlZ2FjeS10cnVuaworNzU4NTAgZDdjYzBlYjNmMjM0Zjg0MGM2ZjA5ZjkwNGNhODA5ZGRlNDgyNjRmNiBweTNrCis3NTg1MSA1ZjYxYmQzYWE0MjdiMjJkYzg5MDczNmU1MzcwMjkyMjYwMDlhZTRmIGxlZ2FjeS10cnVuaworNzU4NTIgZTRiZmJlOWI3NGM4OTI5MmU0ODllZDM0MmVlMDUyMWVlMmM1MTI1NyBweTNrCis3NTg1MyBkOWQ2OTA2MGY1ZTRiZGMzYzExZGVmYzBhNjZkZGU2Y2EwZGQ4M2VkIHJlbGVhc2UzMS1tYWludAorNzU4NTQgMWJkYTQ2MDJmOTM5YTJmM2QxMjE3Yzk2N2M3OWQ2YjEwNDQ2ZTJlNyByZWxlYXNlMjYtbWFpbnQKKzc1ODU1IDVjODg3Nzk0NzNiOTI5NjM4NGQ0OWQxZWMzMjA5Y2FmZDBlYTM1MTggbGVnYWN5LXRydW5rCis3NTg1NiBhZjc4ZmRhNTdhZjg2NGY5ZThlNWQxNmQwMjU5ODkzMDM3OWYzNzJlIHB5M2sKKzc1ODU3IDAyMWQzYTM4YmQzNmE0YTA3ODQyYTdhYTgwNGJkMDdjMjg3NzJiMTYgcmVsZWFzZTMxLW1haW50Cis3NTg1OCAwMjlkNjk2NTliNWY5OTU0OGZmNGU4YzcyZTA5YmEyNThiYzliNzdhIHJlbGVhc2UzMS1tYWludAorNzU4NTkgY2VmNWNiMjcwZmRmN2M5NjZjNjJhNTEyODUyZjczNGYwNzk3NmE0ZCByZWxlYXNlMzEtbWFpbnQKKzc1ODYwIDBkZjQ3YjFiMzBiOGEwNzk4MTk5NWNiYjNkNmNiNGQ3YzdlY2I2ZmMgbGVnYWN5LXRydW5rCis3NTg2MSA4MTQxZWM4MWFkMmQzODg4ZjIzOTliYmM2ZThjMDdiY2NjOGI1YTcwIHB5M2sKKzc1ODYyIDcwZWI2YTEzYWJjZDY4NTY2MDVjZmJjYjI2NGE2ZmFjYjM0MDVlNmMgcmVsZWFzZTMxLW1haW50Cis3NTg2MyBiMDg1ZmQwNjExZGUwZTgxZjFlN2RlMTFjYzc0NGY1MzRiNGRlYWJhIHJlbGVhc2UzMS1tYWludAorNzU4NjQgMmYxYzUyZDlmZWVjYWRhMjRiNzI1ZjMyYWI0M2YxODRiNTgzNmIzNyByZWxlYXNlMzEtbWFpbnQKKzc1ODY2IDk4OTllY2E5Yzg1N2Q5MWQ1MmViNzAzZDQ3ZDJiNWM0ODg2ZTViMmQgbGVnYWN5LXRydW5rCis3NTg2NyAxODUyMDRkNTQxZmU1NmUzMTY4ZTUxYzEyYWFjMDg2YWEwNjk1OTgzIGxlZ2FjeS10cnVuaworNzU4NjggNDExYjZhY2JjZjEyZTc2MjcyODk1M2EwNGQ1YWEzNTE3OTAxY2FjNiBsZWdhY3ktdHJ1bmsKKzc1ODY5IGI0YmFlYzFlNmEwYzMzOGFmZTFkYTRjOTAzMzRmYzIzODc0NjY3MGUgcHkzaworNzU4NzAgZjVjNzJhY2E2YjYwYTNiMDU2ZDIxMWEyMGNlMTg2OWYyOWI4YzU5ZiBweTNrCis3NTg3MSAzYWU0ZDM2Njc5MjBmYzM0YWFmMzk1NmExMTJlZGUzOTY5ZTY3OTRlIGxlZ2FjeS10cnVuaworNzU4NzIgZmIxYmZhOWNhYmYzM2JjNmU0ODRjZDY1M2MxYTA3ZWRmNDM5MWE4MCByZWxlYXNlMjYtbWFpbnQKKzc1ODczIDQ1YTI3Zjk2MWFhMWRmNGU5N2U3NmMzYmM2MDA0MWY0MGQyNDc4OTUgcHkzaworNzU4NzQgMjA0ZjMzZDQyNzYyYjI0MTM1OGIyMTZlNjlmM2RhNTRkZmRiYTgzMyBsZWdhY3ktdHJ1bmsKKzc1ODc1IDM5NTlmYTEwOTcxOGVjMzdmMGYxMDM0M2UzYTgxZjczZmQ4ZjMxZTQgcmVsZWFzZTMxLW1haW50Cis3NTg3NiBjOTI2OGZlYTgxMDQ5MTI3ZWM1MzYxNDNkOWYxNjc2MGFmNmIzYjM4IHB5M2sKKzc1ODc3IGJlYzI2NmY2ZDUwODFlMjU5NWNjYWVmOWEwYTVjZWFiOWI2MzZiYjUgcHkzaworNzU4NzggYjZjYzAxMzRhZjMxNDBlMTE2ZGIxNTA0MzZjM2IzYzIzMDNmNTM1NyByZWxlYXNlMzEtbWFpbnQKKzc1ODc5IDIxYTNmODNkOTlhYmY3ZDdhOWVhNjFlMTI3ZTBiZGRjZWRkMDJhNWEgbGVnYWN5LXRydW5rCis3NTg4MCAxMjhkYWY2Njk5Y2NhMjhkMzMzN2VmYjRkODVjNTZlMzY0OTY0ODVlIHJlbGVhc2UyNi1tYWludAorNzU4ODEgMzkyN2UwZTEzODI0MTI2ZTczMTI0M2VkZjc3ZGNjM2VjM2FmZjdiYSBweTNrCis3NTg4MiAxNThiMjExZTZmYThjMWM4OGI2ZjEyNjQyNjQ4MWM4MmYxZmU5NDA3IHJlbGVhc2UzMS1tYWludAorNzU4ODMgZjEwMTA0MDUxMzM5YjhhYjY3NzE1YzRmNTFiZmY4NjQxMDNmYTlhOCBsZWdhY3ktdHJ1bmsKKzc1ODg0IDQ0ZjY0NDcyZTkyMjFiN2VjMzk2YTM5OWJlNmY1MTU4Y2UwYTEyMDQgcmVsZWFzZTI2LW1haW50Cis3NTg4NSAxMjQzODlmNGViYWRjMzljNThjNDAxZTI4ZTU2MThjNGMwZTI2ODRkIHB5M2sKKzc1ODg2IDY5MGM1NjVjMTVhOWUxZmYyMmNmMWY4NzJhMjc5ZWQ5YTJlNjdlNDAgcmVsZWFzZTMxLW1haW50Cis3NTg4NyA2OTQ5Y2U3OGMwNjU1ODFlODNjYzBhNzI1NjlhOWQ2MmVhN2U1ZDRiIGxlZ2FjeS10cnVuaworNzU4ODggN2U2NmZmZGJjYmVmZmJmNmE0MmZlODk5YTVkZGZiZjY5NTg5YTZiMCByZWxlYXNlMjYtbWFpbnQKKzc1ODg5IGQwZDdlMTViNDk1MzVhMDA5MGNkZmRlNjY2YTMwNjBhZWVmZDJjNmQgcHkzaworNzU4OTAgNWU0ZDFiNGY2MmZhMWQwODc4NWZiYjhkMWI1ODA4NGRlNzlmZjk3OSBweTNrCis3NTg5MSBhZDYxMTI5YzQ0MjIyNTY5MmRjMjUwYjRkYmE2NmQ5ZGY2MzAzYWQxIHJlbGVhc2UzMS1tYWludAorNzU4OTIgZTFkY2E5NzJmYTM1ZDMxYTU0NmNiNzA4ZjY2N2E4ZGFmN2E2YzIzYyByZWxlYXNlMzEtbWFpbnQKKzc1ODkzIGZjNWE3NzE4NDMzYTg1NDRmMWVlNTMzMDY5MzUwODQ1YWQ3OWM1MmQgbGVnYWN5LXRydW5rCis3NTg5NCA2NGFkMzY1MDc5NDQ2NmU4NGNjYzUyMmIzZGM5MDE2ODJiZGUzZWVjIHJlbGVhc2UyNi1tYWludAorNzU4OTUgMTc3NzlhOTRlODI1MDg2YjY2MzFjZmViN2YzMDNkZmE5N2NmZjZhMyBweTNrCis3NTg5NiAwZjI5YWEyZDQ4NDRmNzE3NDc5ZmI5ODJiMDQxZTliNWI1MmMyMzQ2IHJlbGVhc2UzMS1tYWludAorNzU4OTcgNzE1NzRmZTQ5NTc2N2IxMTg3NDE3ZjcwNmM2NmM3ZjI3MTE0OWQyMiByZWxlYXNlMjYtbWFpbnQKKzc1ODk4IDAzZDc2YmRmOTM2MmFhNTQyZjM5ZDAwNTg2YmRhMTNkNzA3NzgxNjMgcmVsZWFzZTI2LW1haW50Cis3NTg5OSA5ZTI0ZmQ2YTU1ZjA4ZWE1NzI3MWIzYTA1YjY0NmViNWI4MzQ0NGNlIHJlbGVhc2UyNi1tYWludAorNzU5MDAgMDQ0YTY4YmMwZDJlZmI5NjIzZTI2YjM2MGI3Y2ZlZGMxMmU5ZTE4YyByZWxlYXNlMjYtbWFpbnQKKzc1OTAxIGMxODIyNDk4OGJiMWM4NmY4NDQ1ZjdjMDdiMjg2YzJmZGRmMTU2ZjUgbGVnYWN5LXRydW5rCis3NTkwMiBjZDlmNzJmYmE1M2IwMzE1MDM1NzQyNzkwNjgxZmFiZmE2MzJmZThkIHJlbGVhc2UyNi1tYWludAorNzU5MDMgZWY2YWI1ZDBhMDA2YTliYzFkY2QwMzI0ZmE3OTllNzM4YzhhMGRmYiBweTNrCis3NTkwNCA1MmIyN2MwODE2ODY4YTgwNTVmNjI1MmRmMzVkMTYzNTY1ZDc1OWQzIHJlbGVhc2UzMS1tYWludAorNzU5MDUgYWFmYTY2YzU3NDQ0ZTNiMjVjYWZlZDAxYmIwZjdhYTljOWI4M2I3ZSBsZWdhY3ktdHJ1bmsKKzc1OTA2IDFlOWVlYzczNDQ3ZjI4YTBkMGViNmUxYTMxNDA2NDNmZTRiMTJhOGEgcmVsZWFzZTI2LW1haW50Cis3NTkwNyA5MGM3MTQ2ZGRmNDIxOWY5NDMzNDNkMTEyMDEyMGM4MWYxYWUyMGU3IHB5M2sKKzc1OTA4IDc2ZDA0MjE0MzhhYzM2ZjRhNWMzOWFmZDJlNjhkM2NhOTIxNWFmN2QgcmVsZWFzZTMxLW1haW50Cis3NTkwOSBlN2NlMjUxYjNiZmI2ZDRkMTY1YjI2MGVhMTZkYzBmZTMyMDFhNGQ1IGxlZ2FjeS10cnVuaworNzU5MTAgZTc1MGI5MGJkOTgyYjMzNTJhYzg4N2M3NDg3MjBkOTZhYzczMWFiZCByZWxlYXNlMjYtbWFpbnQKKzc1OTExIDQ0ZGUzYTQwMjQwMTQ1OThlNGY0YTBiZDViYjkyNjRhMTcyZGE0MjMgcHkzaworNzU5MTIgYTFkZWM1N2JlYTVkYzI2MDUxN2Y2M2I3ZTliNWQ3N2YyYzYwYTdiOSByZWxlYXNlMzEtbWFpbnQKKzc1OTEzIDJhOTYxZDdmMjAyOGJiMzUxODNmZDY2YjQ1MjRhMmQ0NDViNWI3ZDEgbGVnYWN5LXRydW5rCis3NTkxNCA4NGI4YTJiOGU5YWU1MWUwMDk2MmVjZmNkMzI5NWMzNWEwMDUwNWFiIHB5M2sKKzc1OTE1IGI2YmUzMDAyZDNjYTJlYzdkNGYyMTY0NzZmYjdmNzUyZGY1YTEyYWMgcmVsZWFzZTI2LW1haW50Cis3NTkyMCAyMTQ3YzJlYmNlZDg1OTNkNjZiZThkZGNkNTdjYmNkYzlkYTk5NmJlIGxlZ2FjeS10cnVuaworNzU5MjEgMjBlMjFjMTU1YzA1NjJmNjRmYTczYWQzMjM3MzcwYjk3ZjBjMGQyMSByZWxlYXNlMjYtbWFpbnQKKzc1OTIyIDA2NjY4NWY2OTgzYWQ0MGVkYjJhYWE1MWUzMzZkMzQxNjRkYmI5NzAgcHkzaworNzU5MjMgYTc5NTUyOWIwOWM5NjZhMjdlZmE0MWYyNzYxODJhNDlkMzQxZTMzZiByZWxlYXNlMzEtbWFpbnQKKzc1OTI3IDllODJmMTdiMmM4ZGEyMzAzZjlkY2MxNGQzNWRmM2I2YzVlN2FkYmUgcmVsZWFzZTMxLW1haW50Cis3NTkyOCBkYjRkZmRjNzQwMjlhZDk4NDY1MmMxMzUyMDYxZjFkMDIwZTdkZWQ2IHB5M2sKKzc1OTI5IDg0MDJlNDc3ZWI0ODdkZDRkMDI5MTM5Yzk5MjJjNmYxZTBlMjFiNDAgbGVnYWN5LXRydW5rCis3NTkyOSBlMzU4YWYyNTY5Yjk4YzEzYTQ3ODg2NjBkY2JlN2FmNTdiMmE1MTg2IHJlbGVhc2UyNi1tYWludAorNzU5MjkgNDQ4OTA5YTk0MGMwNGRhMDNiMzlmNThkM2VhZjc0OTIzMzZmY2I4MyBweTNrCis3NTkzMCBmMzJkYzg0YTg3NmNjNTk5MWI2N2Y5YjhlNzhkZjZjYTk0MDE5MTFmIHJlbGVhc2UzMS1tYWludAorNzU5MzEgODQ0MTgwYjdlNmZmMGUwZmE4NzI1MmI0M2YyNDMzN2Y4OTQwZmRjMiBsZWdhY3ktdHJ1bmsKKzc1OTMyIGM3MTVmODI1NTVhNGM5MzQ5NmVhODJiOTRjMWI3ZmM4MWRiMTdlODggcHkzaworNzU5MzMgZTgwOTk4MjYyOWM0ZDgzZGY3MjA3YjY2Y2E2Njk5MGM3OGMyNzVjNSByZWxlYXNlMjYtbWFpbnQKKzc1OTM0IDAzMmQ5NzQ5MDQ3ZDdlMTNkZTYzNTJhYzYwOTQ0ZTZjYjVkZWVjODkgcmVsZWFzZTI2LW1haW50Cis3NTkzNSBiNTcxYzY2ODUyMjlmM2MwODE4MzQ5YWVmYjY0OGNhMDgwNjQyZGVkIGxlZ2FjeS10cnVuaworNzU5MzYgM2NmZWNiYzdhZTk1YTdmNjI5ODA5MmNkMjg3MGQyN2ZmMjQ5OTFjYyByZWxlYXNlMjYtbWFpbnQKKzc1OTM3IDhjZmY5NDkzMjNjOWU2NmJjMThkY2U5MjRlNDljNGJkYTc3MWY5OTMgcHkzaworNzU5MzggYjAwOWEzODc2OTliMzJkMWM0NGFjYTJjYjkyZGVmYWExZGU0Yzg0ZCByZWxlYXNlMzEtbWFpbnQKKzc1OTM5IDU1ZTUwOGUyNTM1YzlhMzM0ODI4ZjIwNDU0NmFmZTkzZjE3NTMwYjIgbGVnYWN5LXRydW5rCis3NTk0MCBmZmM3ZDllYTI0ZDkwMjJmZjZlNzZkYmFjYzcwYzIyNjM3ZDcyZWU0IHJlbGVhc2UyNi1tYWludAorNzU5NDEgYWFhMmIwN2MyYzQyNThiNDE0NzBkNTNmYzg2ODUzNDRlY2I5NmQxZSBweTNrCis3NTk0MiAwNWZkNDhkYzJhZGE5YmYwYmYxOTUxNjM5M2UxMjQxZjk2MGFiMDAyIHJlbGVhc2UzMS1tYWludAorNzU5NDMgMTVmMTg3MjQwN2JlMjY0NmExMDFmZGI0ZDRjMTRiOTc0NmY2MmM0MiBsZWdhY3ktdHJ1bmsKKzc1OTQ0IDYzZWIyODgzOTI2YjJkNWI4MDI0YjUyMDQ2MTJkYTNmMGRmYzU2ZWEgbGVnYWN5LXRydW5rCis3NTk0NSBkNWEzNGVmMmZjYTdjMzIxMTc0Y2MwYTM0Yjk0ZDY5MjhjNjAxYjJmIGxlZ2FjeS10cnVuaworNzU5NDYgNTNlMzgwMDVkNTA3YzRiYTdlYjZjY2ZmMzlmYmRmZDExNDhiYTJlMyByZWxlYXNlMjYtbWFpbnQKKzc1OTQ3IGViZGRjZWQyYzljNGQ0ODQ1ZDA5MDA2MTY1ZWJkZWI4NTk2ZDY2OTMgcHkzaworNzU5NDggMGVkNGJmNDMwZDRlNWVlMGE3YjhhYmIxYmM1MThlZmY4MWIwYjlkNyByZWxlYXNlMzEtbWFpbnQKKzc1OTUyIGM2ZDYyMzQwYWViZjBjMzE5MGY1OTYzMjNkNGQwMjMzZTJkZWZiYjUgbGVnYWN5LXRydW5rCis3NTk1MyBlNjY1ZDIxNzBlODUyYjE5ZDYwOWIyMmZlYTk0MzAyZTYzZmRhNjJhIGxlZ2FjeS10cnVuaworNzU5NTQgNWY1ZTNjN2RhOGNiNDVmZTc0YTFjYzEzN2Q0ZDE3OWY0NzZiNDM3ZiBsZWdhY3ktdHJ1bmsKKzc1OTU1IDdlMDIzNzFhYTUwNjAyZjA5ODE1NGNhNTk4MzVjMDY3OWI5ODY1OTUgbGVnYWN5LXRydW5rCis3NTk1NiA0MTFmMjUyYTI5NGE0ZmUyMTg2NjE2YzdiMjQ3ZjdjMzNjODAwM2I0IGxlZ2FjeS10cnVuaworNzU5NTcgOWRkYmQ2OTgxNWNhN2EwOTZjNzQxZjg2NWRjNzQ0NDlmZDcxYzI4MSBsZWdhY3ktdHJ1bmsKKzc1OTU4IDI5ZmU1ZTdiZDZlZTE5MDBhODUzMTAxYmZjMmEyZTEwZTUxZjIzM2QgbGVnYWN5LXRydW5rCis3NTk1OSA2Y2Y4NGU1YTZkZDdlNTU1ODhmNTNkN2M2NzI4YTRjNTE2ZTMyNDNkIHB5M2sKKzc1OTYwIGUxMWQyNDY3ZDEyNjc5N2I5ZjNkZWE3OGUyNDE4MGZiOTIwMTBhNTQgbGVnYWN5LXRydW5rCis3NTk2MSA3MTNlMjFhNTQ3MWVkNzYzNjQyYzg1NjBmYmRhMzk4ZDUwY2M0MGQ2IHB5M2sKKzc1OTYyIGFjYWZhNTE0MmJmOTE4ZjQ2MGY3MWE3N2I4NjlhZDAyZGVhMWJlYzAgbGVnYWN5LXRydW5rCis3NTk2MyBjMTQ2OTI1MjM0ZjAzYWMwOWM0ZjBlYjUxMzM1YmY2YTA3YjQwMTQ4IGxlZ2FjeS10cnVuaworNzU5NjQgYTE4M2M4MmI2Mjg5NDdjZmUzOTg3ZmRjNTk0NTllNmMwMzAwNDY4ZSBweTNrCis3NTk2NSBlODdhNjY5OGEzMDVhNjQ1MDEyNzY3MDlhNmNmOWU0MjRkMmE4YTA2IHB5M2sKKzc1OTY2IGZkMjE4YWIwZTIyZWZlNTNiODMxNGRjYmE5YThjM2EyYmY5ZGQ3YzcgcHkzaworNzU5NjcgMzM4NjFjYTFmYjJiMTE4MTYwMjNjZDNkNzNhOTlhM2U1MzdmNWE0MyBsZWdhY3ktdHJ1bmsKKzc1OTY4IDA1NjQ3MDQ2OGZlMjllMThlZjFlMmE0NzNmNGEyMjQ5ZTBiZTk1ZjMgcHkzaworNzU5NjkgZDU2YjEwMzQ5MGE1NWIwMDNiY2FkNjYyZjQ4N2Q3OTQwMTc4YmQ5OSBsZWdhY3ktdHJ1bmsKKzc1OTcwIGJmOTNlNGRmN2JmYjFlNjMyNDkyNTgzNjRmYTI4MGFlNzFhYmVlZGUgcHkzaworNzU5NzEgOGQzNmRlYjM1NmYxOWY0YjhjODAzZWY5MDNhOWU5NzFlOWU0MmQxZCBsZWdhY3ktdHJ1bmsKKzc1OTc0IDdjODY5OTNiMTNjOWZkNzRkNDIxYTc0Y2I4MzM0ODNmZjI1NjE4OGQgbGVnYWN5LXRydW5rCis3NTk3NSBiNGU5MzM5YjQ5OWQ1NTI1YWM1ZWQ1NDA5OWZmZjllMjQwN2FkZDg3IHJlbGVhc2UyNi1tYWludAorNzU5NzYgZmNmOGE0ODY3OTIwNjNkZTY1YjAyYTE0N2MzOWM1MDY1ZGRlYjNmMyBweTNrCis3NTk3NyA2Y2I1MzI0OGU1YmU0YjA2YjM1YmZkMWQzM2RlYTlmNTQyOTI0ZGFiIHB5M2sKKzc1OTc4IDZhNmYzMmIwZmFiZDBkOGVkMzNmY2MxNTM3ZjY1ZjRhMGM0NmMyNWMgcmVsZWFzZTMxLW1haW50Cis3NTk3OSBiYWIzZTNjZDc2ZjFkNTI0NTExNmUyN2NjMDc5MWU3NWYyZGM5MjFkIGxlZ2FjeS10cnVuaworNzU5ODAgMTdkYzBiNTNiNDhlZGIxYWUxYzA4OThlNTFkZGI0MWJhYTFhYWE2ZCByZWxlYXNlMjYtbWFpbnQKKzc1OTgxIDE4MmZlMGFmNjA0ZTM1YWY2YjFiNjIzM2Q3NzYzYmZhZDYwYWYxM2YgcHkzaworNzU5ODIgZjU5NDMxM2I5MzY0NWFiMjRmODEyZjA3Nzk3ZTk0ZGEzYjllYTkzMyBsZWdhY3ktdHJ1bmsKKzc1OTgzIGZiNDk4YTBkZTBiOTVhYjYxYWYzZGMxMjE5MGMxNGY3ZjljNjBhMzQgcmVsZWFzZTI2LW1haW50Cis3NTk4NCA1YTk5MDAzYzliODNkODQyZjFiOTk1OWYzMzI2OGJmYzZlYTgwYTY4IHB5M2sKKzc1OTg1IDI2NGE3MzVhOGFmNzc2Nzk3ZGNiZDFiMDdmYTcyNGNmZDU1OWM5OGEgcmVsZWFzZTMxLW1haW50Cis3NTk4NiBlOWI4Nzc1NmFkM2IzYzI5ZTg5YjJjOTI5M2QyOTZiNGMwNmQ0ZjMwIGxlZ2FjeS10cnVuaworNzU5ODcgN2VjZDNlM2M5NTY0MjcxMGQ5MDFmMjU4NmU3MDhkMzExZWE1OTFhZiByZWxlYXNlMjYtbWFpbnQKKzc1OTg4IDhkNjc3MjVjYmI0ZTM1ZDhkODUwYTM0YTQ1NThiOTVjODU5NjQ1YzEgcHkzaworNzU5ODkgNzA0OWIyYzg2ZjA2MTBkMTE0OWFlMzM5YjIxNjVjOWI3ZDY1ZWY5NiByZWxlYXNlMzEtbWFpbnQKKzc1OTkxIDRjYmMzZmU5MzY3MWQ5MTViMDY5OWM1ZGU3MzFiNzRmNzIxMDkxNzkgbGVnYWN5LXRydW5rCis3NTk5MiA4OWU5ZDA1ODQ4OTAzZTU2YjNjMTUzOTE5NjBjNTg5MDBlYzJlZjI1IHB5M2sKKzc1OTkzIGFiMzg2OTBmZTAxY2Y5MzViYWZiZDIxMzE4ZDRiNGY0YWYyMmJmOGUgcmVsZWFzZTI2LW1haW50Cis3NTk5NSA3MWIzYWE4YTczMjBmZTQwY2MyMGQ4Yjc0MDcwYTNlYWNlZDJiYjg0IGxlZ2FjeS10cnVuaworNzU5OTYgMzcyNDZiNGMzY2NlMzllZTU4MjFkYWY3MDFhZTRmZjJiNjVkYzA5MCByZWxlYXNlMjYtbWFpbnQKKzc1OTk3IDE4MmNkMDRlMjlkYjExODdkOTY2Nzk5MmE1OGQ3NzgxMDZjNTNlZGIgcHkzaworNzU5OTggNDcxNzgwNGJiNTdkYzc1MGJkNTcwY2UzNjFjNTVmMjlkZDA5N2Q4ZSByZWxlYXNlMzEtbWFpbnQKKzc1OTk5IDlmM2Y4M2RmNjk3NWJlNmYwY2NiMDlhNzU0Y2I5MDgwMmRjYTlhYzggbGVnYWN5LXRydW5rCis3NjAwMCA4NDZmMjZhZDU4MDAwMjNiNmRlYTc2NmJjN2JjYWVmYzhiNmJlMzRmIGxlZ2FjeS10cnVuaworNzYwMDEgMjkxMzg2NGRkYmU5NTg5ZWEyOTZjZDNhMGQ5YTI0M2UzMTg3ZTE3YSBsZWdhY3ktdHJ1bmsKKzc2MDAyIDQyYmIzZTM2MTNmNmM5MGExYjU3NjVjYWVlYjBjMWQ5ZjYyYmVjYmIgcHkzaworNzYwMDMgZjgzYjQ4OTYyNzM5OTNhYjdmMTE0YWYwOGZjZTdlZWQ1MDljZTFkYSBsZWdhY3ktdHJ1bmsKKzc2MDA0IDAyZjVjNjAwODMyN2FmZTU1NTY1NjgzMDFhOWI1OGU3ZjlkODU4YmQgcmVsZWFzZTI2LW1haW50Cis3NjAwNyAyMTFlN2I1Yjk5OWMxYTNkOTFkNjM5YTA1N2I1YmMzOTg3NjdlYjZlIGxlZ2FjeS10cnVuaworNzYwMDggNzAwMDJmMjdkMjgxZWY2YmVkZTgxZDZiMDQ1ZjY3ZGU4ZjhjZTQ2MiBweTNrCis3NjAxMCA0MDI2OTZhYzRmOTgyY2ZiMjdlYmI4ZmZkNDVmNTAyOTNhYTY3ZTYwIHB5M2sKKzc2MDExIGIwZTRlZmI4M2Q2MGM3N2YyOTk4NDAxOGI4NjNhN2ZhZTIyYzc4OWUgcmVsZWFzZTMxLW1haW50Cis3NjAxMiBmZjhlMzU5ZTI4MDg0MzI1OGQzYjJlYWNhYWQyOTQ2YmVkNGM3NzgzIGxlZ2FjeS10cnVuaworNzYwMTMgNmI0YzczMjBiYTNhMTdmMjQyMmJkZGM0MzY2MjQwOWVlMzkwZjY1MCBweTNrCis3NjAxNCBiNjkwMTc3NjIyMDhhYWE2ZjJlODkzY2NkODk1MDE4MTY1ZTk1MTA5IHJlbGVhc2UyNi1tYWludAorNzYwMTUgNTkyNTkwMGVkZjE2ZjBjOTRiNWJjMTg5YWQxYWFjOGMzZTcwOGM4MSByZWxlYXNlMjYtbWFpbnQKKzc2MDE2IDc1N2I5N2M2MTY5MWUyOTIzMDk2NWY1N2I5Y2EyYzM4YTlmZjQ5OTkgbGVnYWN5LXRydW5rCis3NjAxNyA1Yjk1ZTRlYWM3YThiOThhOWE2OGIxM2FmZTk2ZWNjZTY5ZDk4YzUwIHB5M2sKKzc2MDE4IGVkMTY2ZmY3ZDk1MjM4MWM0NWRmMjFkMGMzNTE5MWMzMzBiMzg1ZWIgcmVsZWFzZTI2LW1haW50Cis3NjAxOSAxMGZlMjBmZDZmYjNkOGM4YWRhN2ZmZjYyZjIwNjY5YjgwZGYyM2MyIHJlbGVhc2UzMS1tYWludAorNzYwMjAgNGRiODQwNDVhN2YwMDcxYTBhODJhMGYxZjQ4MDgzOTQ3MzRiNWNkZiBweTNrCis3NjAyMSBkYTZhZDk4ZDVkYWVmMzA4YTNlNDBhZWNiNWQ5NTRhZTE5ZTE4NzI1IHJlbGVhc2UyNi1tYWludAorNzYwMjIgYzc4YTAwYTFkNmRiMTgzMGExODU3NGNmMTg3YjFmOGI4MjhiNTE1YyByZWxlYXNlMjYtbWFpbnQKKzc2MDIzIDkzYzdmNjUwOTM3ZjdlOTU3OGE2MTRjN2FhY2Y3Y2E1NGI1OGE1ZmYgcmVsZWFzZTI2LW1haW50Cis3NjAyNCA5MDEyNTliYzBiNjJlYTAxOWZmYTZhNTA5MGI2NDZkMDdiY2RiMzNlIHJlbGVhc2UzMS1tYWludAorNzYwMjUgYjdlNzYyNzdmNTQ1MjY3YWY4MGRiMGQ5ZjU3ZDlhYjNhZTNiYTIxNyBsZWdhY3ktdHJ1bmsKKzc2MDI2IDFhYTZiNjhlODUyMzA0MTdjM2E3OWMyZjAzYTQ0Y2RmMTUzOTA0OWQgcHkzaworNzYwMjcgNjU4ZWI1OGQyZTY4Yjc1NDA4MzU0MzJmNjYzNDY2ODlkOTFlNTBhZCByZWxlYXNlMzEtbWFpbnQKKzc2MDI4IGM3ODVhZmE2Zjk1YzU2NDlkMGY2NTNhNWQ4ZTQ3OGJjZDU4MmQ5ZjkgbGVnYWN5LXRydW5rCis3NjAyOSAzMDM5YTRhZDdlMzlhMTFhY2I3NmRmOGNhMTVmZmEwODM0ODlmZDZkIGxlZ2FjeS10cnVuaworNzYwMzAgZGRjMTQxZDllZjFiMWJmMzFiODUyMWViY2MyZmU0M2Q5MGYwN2I3MyBweTNrCis3NjAzMSAzODcxOWI4ZTBjOWY3MGUyZjI5MTJlZmU0Y2Y3NDIyYTg3ZWYyMGQ2IHB5M2sKKzc2MDMyIDM4ZWI2YThhZGMyNDJiMDI0NGIwYTIxZmZiYTk0YTRmZjI4NzczNDQgcHkzaworNzYwMzMgOGNhNGQ3NzY4MGM2ZDI0MjE0Njk5NTdmZmMyMTlkNGMwMWIxNTY0YyBsZWdhY3ktdHJ1bmsKKzc2MDM0IDUxYjk5NzNmNzYxZWM0MDBjNzQ2ZGVhMzNmNmY1YjkyZTUzNzhkMzcgbGVnYWN5LXRydW5rCis3NjAzNSA1NzU0MmI1MDJkMzIyM2E2YjUxZTI4MzkzMWEzODljYmY3MzFhNjllIHJlbGVhc2UyNi1tYWludAorNzYwMzYgM2JmNzYxZGY4MDJhYWRkYWI5MGIyZWIwMTcwY2QzMDhlZTIyYjFiZiBweTNrCis3NjAzNyBhMDFlNmNlZjEyNTZjOTEzOWM5NjMxNzZmMDEyYTA4ZTIzODczZTgzIGxlZ2FjeS10cnVuaworNzYwMzggMzQ0YzQ3ZGYzNjNmOGI5YzI4YTA2MDI5MjU1OTYzMzJhMzZiZDY0ZCByZWxlYXNlMjYtbWFpbnQKKzc2MDM5IDQ1ODBmZTA3MTllNzAyZDIxNjEzZTQxNmY0ZDZhNWI1MDUxN2I0ZjEgcmVsZWFzZTMxLW1haW50Cis3NjA0MCBmZDA1NDI3MTZhODA1NTFmYTJkODkwNWYzNDIzOWIyOWJmY2YwZTk4IHB5M2sKKzc2MDQxIGI1OTFmYzg3MjFmMmZkYzUwNTg2NjFjOTlmMzY2ZTUzOTQ1MzI1OTMgcmVsZWFzZTMxLW1haW50Cis3NjA0MiA2ZGM0ZmFhNDVjYmQwODkwMTBkZjVhOWNjMzBjOTE2YjA3ZjgzZDY1IGxlZ2FjeS10cnVuaworNzYwNDMgMjhmZWY3MjY0NGI3YzY0NDRjZTViMjlkYjhhMGIzNWMwZWZjZGI2NiBweTNrCis3NjA0NCA0YTg0NTllMzI5MTkyMzJiZWVjZjUzMDNiZjJjMzYyNWFjN2Q3MjQwIHJlbGVhc2UyNi1tYWludAorNzYwNDUgNmU0ODlkM2Q3M2I4ODA0OTE1MzdhZWFmNGFlZmFlZmE2MmU4MTYwMyByZWxlYXNlMzEtbWFpbnQKKzc2MDQ2IDFlMWJlMWEzOWE3OTJlZjc2MGQ2OTI0YmMwMWU2M2M3Y2NiMDljZjEgcmVsZWFzZTI2LW1haW50Cis3NjA0NyBmMDEzMDJlNmFjZDU0NDYxMzU1NjliNzUzNDI5NWNkMzQ4NDE3ZDk4IGxlZ2FjeS10cnVuaworNzYwNDggNWQ2ZWQwODgzYmY1NzljM2Y4NTNmMTI0YTY0MTQ4YmYzM2U2Mzg3MyBweTNrCis3NjA0OSBhNWU0NzNlOTViY2VhZDVjNWRiM2Q3NmZmZGUxYzUyYTI0NTQ0YmJhIHJlbGVhc2UyNi1tYWludAorNzYwNTAgNDUzZjU0NzhhNjkxZGQxZGY5ZDViNGYwZjBlYWUxODlkZTZlMzExMyBsZWdhY3ktdHJ1bmsKKzc2MDUxIGI5MTkzNzBmMTgyMGZkYmExNTU4YjlhNzM5ZWNjY2I3NmMyZWI2ZWEgbGVnYWN5LXRydW5rCis3NjA1MiA2OThkZTUwMTc5OWQ5OTM1YWMyZDY4NmI2MzA4MDk3N2M4NmQwYzBiIGxlZ2FjeS10cnVuaworNzYwNTMgZDJkOGNhYmI5ZTNhOTIzYWIxMDM3YjBkZThjY2Y2YjllZDQ3YzYzMCBsZWdhY3ktdHJ1bmsKKzc2MDU0IDk2YTg1M2ZhZTgzYjIzNzRjODBiOWUwNDQyYWUzMTU5MjNmNzA5ZGUgbGVnYWN5LXRydW5rCis3NjA1NSAxNDAyYzc1Mjc1NjU1ZmRhM2ExOGY5NjI2NjM0ZTY0MmVkYzVlYjBjIHB5M2sKKzc2MDU2IDhhMGQzYzY5YWUyMWFkYmRhNGMwODZiYzg1NDU2NjJiOTU0YzU1ODkgcmVsZWFzZTMxLW1haW50Cis3NjA1NyA4OGEzNjQ2ZWYzMmMyYTc4MmJiNDE5YmMxZmM0NmE4Zjg2ODQ3ODVjIGxlZ2FjeS10cnVuaworNzYwNTggZTYwOGY1OGQ1ZDE4YjYxZDQyZDQwNTU0MjZiNmUzMTYzYjI3YjY5NSBsZWdhY3ktdHJ1bmsKKzc2MDYyIDk0ZTFiMTRlYzgwNGI4YWM5MjkwYjIwNTI4NjU4Mzc0ZGZmY2M1MzAgbGVnYWN5LXRydW5rCis3NjA2MyA5NTljNjhkMWQyOGEwYTBjNzJlZmEwZWRiZDc3NWJiZWEwMmY3NmUyIHB5M2sKKzc2MDY0IDNjZmQ2OTU2NGU4ZjA3NmZkNmJkODU5NGE3YjFlZDA4MDJiMmI5NDUgbGVnYWN5LXRydW5rCis3NjA2NiBmMjk2MGYxMTZlNzdhMmViYWQ1MTAzN2UyMmEwOWI3YTdhMzBjMmEwIGxlZ2FjeS10cnVuaworNzYwNjcgYmVlODk5NGIxM2RlZGI4MTcwMzk5YmNiMjRhMDY4NjAwNTQ5Yjg2OCBsZWdhY3ktdHJ1bmsKKzc2MDY4IGEzZjIxY2VlNjRkMWYxMjhhNjM1YmQxYzJjNGQ2MjdiMzBlNTAxZTggcHkzaworNzYwNjkgYTgwODZiMzE0Y2QwN2U2YzNlYjkyMDliMmQzNWYxZjNjNGU0NzgzZiByZWxlYXNlMzEtbWFpbnQKKzc2MDcxIDIwMWE0MTllOWUwNjYwYmU0NDhiZjEyNjdjOWJjOGQxZTE3YTc1MTAgbGVnYWN5LXRydW5rCis3NjA3MiA2NWIxMTIxYTI0NzNmZDIxZTYyZTliNGJjOWIxM2MxNjI2NGNjYTBhIHB5M2sKKzc2MDczIDZjMTNiZjM1ZDE2NjExNzRhYmVlZThlZjBjYWIwMTViMTg2OTIwYzkgcmVsZWFzZTI2LW1haW50Cis3NjA3NCAzMjAxZmFiMzUyMjBmNzg1Mjk5ZGQ4MjhlNTYxNDg4YjQ2NzI5Y2M3IHJlbGVhc2UyNi1tYWludAorNzYwNzUgYzkwMDhhM2U3ZjdmZDIzNDhiOTVhNDhhNDJhNjVjOTViMGJmNzUzMSBsZWdhY3ktdHJ1bmsKKzc2MDc2IDY4NWEyNGE2Zjk4Njg0N2YyNDIwY2ExNTY2MjI0MGYyNzIzMzRiMzEgcHkzaworNzYwNzcgMzJjN2Q5ODEwM2JhZWMxYTM3MWNmY2UyMTk4NmY3NDdiNDAzYWJkOCByZWxlYXNlMjYtbWFpbnQKKzc2MDc4IGI0MTFjZTU4NGI3ZmYwNDFhOWEzZGZhNmUzNTkxODE1MzBlMTZmYzEgcmVsZWFzZTMxLW1haW50Cis3NjA4MCA2MmRjZDlmZGQ3YjM0ZWU2NzJhNzIxODY0YmM2MDZlMjQ2OTM5MDNjIHJlbGVhc2UyNi1tYWludAorNzYwODEgYmIzN2M3YzI2ZmE0ODY1MTUyNzBmYzA0YWQ1ZGMwNWNmMzMwM2U2YSByZWxlYXNlMjYtbWFpbnQKKzc2MDgyIDE5YTU3M2M0NGFlMTFjMmJjMmRhNTEzYjMwNGMyN2I4MWQ5YzNjYjcgbGVnYWN5LXRydW5rCis3NjA4MyA5MmNjN2VkODNlOWMwMWExODNlODRiZjM1M2FhNjViMjc2MGI5YzcyIHJlbGVhc2UyNi1tYWludAorNzYwODQgN2ZkOTBlNWEwYWQ1ZjliMzMyMDQ1ZDMwZGI1MWJmZWNhNmViNDFmOSBweTNrCis3NjA4NSBmZTgwOGQ2NjQ4M2Q3YjVlOWRkY2IwNjZlOGMxZWFkODNmNDkwODVlIHJlbGVhc2UzMS1tYWludAorNzYwODYgOGM4MDdiM2E5MDUyMzIyNzA1NzJjNWIxZjliZTMzOWVkZmE5ZDEyZCBsZWdhY3ktdHJ1bmsKKzc2MDg3IDU5ZTlhZGNhNzcxYjM0YWFmNDQ3OTNhNDA3YjllYmNjYmNlYTIxMWMgcmVsZWFzZTI2LW1haW50Cis3NjA4OCAxZGY5MGUyMmJiNzA2MWU0ZTc3MjZhZGVmOWFlOGMxM2M2OGU1NWYwIHB5M2sKKzc2MDg5IDlhZjJlOTQ0MzlkMWI0NDZmMTA2NTc4YzdhNWZmMzIyMTI3MWY3ZDggcmVsZWFzZTMxLW1haW50Cis3NjA5MCAxZThhMzNmNjE4ZmIwNjNmNzRjYTZiNmM3YTk0Y2NhNzY0YjExNzJiIHB5M2sKKzc2MDkxIGZmYWY2NjVkMmQzZTVkNTZhZWRlMGJjOTkzMDdlMGRmYzE3OTA2MjUgcmVsZWFzZTMxLW1haW50Cis3NjA5MyA0MmZhM2UwOWI2ZTc5ZDMxZjhmZTFmMzk0N2U5MmI3ZDEzM2I2ZGYxIHJlbGVhc2UyNi1tYWludAorNzYwOTQgMzM2NGFjYmFhMTUzY2VjZmUzY2JiMzFmNjFjZmU0ZDcxNDlhZTcwNiBweTNrCis3NjA5NSBlZGE5NzljOThhN2ZiZTAzZDY3ZDBjNmRkYjcyZTMwMjQzNDJmZWM0IGxlZ2FjeS10cnVuaworNzYwOTYgYzk0ZTNiZjgzOTJiYTAzNTNiYTUxZTk5YmVmYWY2MTk2MjYwNDQ0OCByZWxlYXNlMjYtbWFpbnQKKzc2MDk3IDFmMTc1ODg0OGM2Y2IzODBkYzQxYzQyMGEzN2RmMzI2MDg4ZmVhNGYgcHkzaworNzYxMDAgZjk1YjVmYWExM2NmNWY0ZjZmOTk0ZjdhN2Q0YjU1OTk1OGU4ZDhjNyByZWxlYXNlMjYtbWFpbnQKKzc2MTAxIDUxODY5ODE0YmE5YThmOWRkYjc0M2Q3MGU2OTE0MmViMmZiMjcwZTYgbGVnYWN5LXRydW5rCis3NjEwMiBlYTczOGZmMTgwMTY2M2JhMzJlMzM0NTBiOTI0MTAyMmFhYjQxYjdkIHJlbGVhc2UyNi1tYWludAorNzYxMDMgNjA1ZDJmNGM3NTM5NDlkMmI5YTM4ZmQ1NzQwZTY5ZDMzZjlhMDg4MiBweTNrCis3NjEwNCBjOGJmYzRkYWZmM2Q4ZjQ4ZjM0YzYxNDhjYWU2OWFjMDU5M2NhOTIxIHJlbGVhc2UzMS1tYWludAorNzYxMDUgZjVkNjg2MDRjNmI5NTJhOGUxNmMwYjlhYTIyOWRjOTBiZDc5MjUyNyBsZWdhY3ktdHJ1bmsKKzc2MTA2IGQxNjE0NDI2OWQ1NThkNjcxZjI1YWNlNzE0YjkwNDhmZTk0NGEyMmMgdGFyZWtfc3lzY29uZmlnCis3NjEwNyAyOThmNmIzNDEyNWQzNThlM2Q4NTZlMmExNTdmYmNjZGNiMDk2NTYxIHRhcmVrX3N5c2NvbmZpZworNzYxMDggMDY4Zjk0MzBjYzI0MGIwOTVlMjUyOTNlMjJlMjE5Y2E3MDc3OWEyYyBsZWdhY3ktdHJ1bmsKKzc2MTExIGY4OWE5M2E3NzhhODFkMDY4ZGM4OTI2MWQ0ZTdmYTIyYzliZDU4MTEgcHkzaworNzYxMTMgZDNhODEwNTE2NjNiNmI1NmI4Y2RjNzRlYzQyMjAyMGIwMmQ5YjRkZCBweTNrCis3NjExNCA0NDQ5ODljZTVmNzcxNDhjYmVhNDI4YjM0OThlZjFkYTZjNjA4ZmNiIHB5M2sKKzc2MTE1IDkzYzc1Mjg3NTAzM2NjNWRkZWIzMWZhNTIxNjlhODA0ZjVlZGY0ZDAgcmVsZWFzZTMxLW1haW50Cis3NjExNiA2M2M5ZTYzZTBkZTNmMDJhYjZmMWQwMzI2YjRkODlkMDYyNmNkMDlkIGxlZ2FjeS10cnVuaworNzYxMTcgZmQ3ODI4MDUxODY1NTFhOThlMTA1MTI4YzUxNWVhZmRmMGQ2ZjUyOCBsZWdhY3ktdHJ1bmsKKzc2MTE4IDJlYmFkM2RmY2RlMzc2MjdlZTEyOTU1MmRiY2I1YTQzZjI4YzBjZjggcmVsZWFzZTI2LW1haW50Cis3NjExOSAwY2I5NDM5MDBlNTMxZTRmYTJlMjI0ZjQwMWQ1NGMwYmU0YmUwYWJiIHB5M2sKKzc2MTIwIDRlYTBhODBlZDc2YTYzOTJjMWM1NWZlMmY5MDM0ZjYyYTUxYjI5YzYgcmVsZWFzZTMxLW1haW50Cis3NjEyMSBhMWM5NGYwNzYxZDQxM2JhZDZmMTA4ZTA2NWQ3YmM4MjlmMjI5NDIyIHJlbGVhc2UyNi1tYWludAorNzYxMjQgMzVkZGZiNDQ3MTY4ZDA2ZjQ0NjJhMzlkYWE5OTVjOTdkYzg0MGRhZCBweTNrCis3NjEyNiBkM2E3NjM2MzkyYWY1NTRkMWVlZjYyNWU0NmJmZmM2MWU5ZTMzNzkxIGxlZ2FjeS10cnVuaworNzYxMjkgZTNmZjM5NzZiYmFjZWY3NTIzYTU4MzNiMTI5NDgxYjVjOTY3YmRmMiBsZWdhY3ktdHJ1bmsKKzc2MTMyIDg1NTJhMjY3NzJlNmZjMWJkODFiNjYwNmZjNjI4NjQyNDAwMTk0NmQgbGVnYWN5LXRydW5rCis3NjEzMyA2ZGIyMjBhZjhjYTNmZWM5MDQ2NzljZTc1ZTljMWYyMDRiNzFiOGVjIHB5M2sKKzc2MTM2IGQzNDZmZmI4Y2ZkNzQzMzE5Y2RhODVmY2NlMzU2N2IwNzdiOTUxY2IgcmVsZWFzZTMxLW1haW50Cis3NjEzNyBjZDM2MGFjNThjZDJlYTA2YzZhOTBiMjMzYTYxNzdjMmY2ZTE5OTNjIGxlZ2FjeS10cnVuaworNzYxMzggZTBkZGVkYTBkOWMzM2Y4NDI1MTAyNGEwNTY5N2Q4MmI4ZWFmMDgxMyBweTNrCis3NjEzOSA5MzA5ZGFhZjMyZDE4MDcwMjZlYzM2NmU1YzBkZDMyNzdiZTM0Njk4IGxlZ2FjeS10cnVuaworNzYxNDAgODE4YjBiMjg3YWE0MjQ0YjdjYTdjN2Y1YjY4M2JiOTg3MzI2YjBkOCBsZWdhY3ktdHJ1bmsKKzc2MTQxIDQyZDRjZjgyN2I5ZTg5YzgzZmNhZTNhYjRlNzYxYmUyYzAzZWRhNDUgbGVnYWN5LXRydW5rCis3NjE0MiA5MmJkYzNjN2Q1YTQzZWYzZDlhZjhjMTI4YjJjNWY2OTY3ODNmZmUyIHB5M2sKKzc2MTQzIDFhMzA4NjBiY2EwMzdmODQxMDk0YjIyOWMzMjVmYzllMzJjYjhkYTIgbGVnYWN5LXRydW5rCis3NjE0NiAyN2UxMjBmOTIwOGIzYWE4YzBjODkxYTVkYTNmMWY5ZGZhMjg0NTg5IHB5M2sKKzc2MTQ3IGUyNTI4OGJiNmZhZjE3YWU4MjQwZTViOTRkODViYTFkNjgyNGUwOTMgcmVsZWFzZTMxLW1haW50Cis3NjE0OCA2ZjVmNDgxZDYxOWMyY2RiYmViYzM1ZTliOWQ4YWEzYTgxZmQzNDgxIGxlZ2FjeS10cnVuaworNzYxNDkgMDRjZjk1Y2Y5NDk2ZmZmNTBiMWYyZWYzNjY4Y2E3OTIyZmE4MjU1ZCBweTNrCis3NjE1MCAzYTBlNjkwMDEyMTU0M2E0YmY1MTY0OGQ3YmQzYmQxNWZjOTFkN2ZjIHJlbGVhc2UyNi1tYWludAorNzYxNTEgMzgxYTYyZjFlNjM1ZjJjMDIxNDRkZDkxZDRmOTNhNDk5MDVkNDI5MiByZWxlYXNlMzEtbWFpbnQKKzc2MTU0IDYzNzcwYTVhMGM3OWRmMmI0ZDIzZjc0ZDkwN2JkZWQ4NTU2NzkyODYgbGVnYWN5LXRydW5rCis3NjE1NSAyZTRlNDc3MjE5YzU3M2Y1Y2FiMGYzNDlkOWFlN2QzM2FlZTRlNmU0IHB5M2sKKzc2MTU2IGRjZDY4ODdiOGEyNzc0N2RhOGI0MjczNmUzY2ExYWQ1ZjRhNzQxZTQgcHkzaworNzYxNTcgOTc5ZWIxYmJmNmU2ZTQ2ZGEyNzA5NTZlOTQzMWUyODc5ODE2ZGUzZiByZWxlYXNlMzEtbWFpbnQKKzc2MTU4IGQ2MWIyNGM4NzY3NDQ3NTY5NTRmZmQwMDllMTliMmM0MmMzMWRiZGUgcHkzaworNzYxNTkgNDg5ODllY2ZmODA0N2JiZTQ0MGU3YTE0NzMxMWI0MzkxNzE5YmVlOCByZWxlYXNlMzEtbWFpbnQKKzc2MTYyIDY5ZDYxYWY1YTk1ODkzNjQ2ZWQyNTY2MmY3NGFmMGExMWYwYjMwZTUgbGVnYWN5LXRydW5rCis3NjE2MyBkOTcwNTllOWU4NTJlYWMyYjg1NjNhY2RkM2JmYTE4NGVlOGNjYjk3IGxlZ2FjeS10cnVuaworNzYxNjQgZjE5MDMxNWYxODVlYTdhYmU0ZmMzYzE1ZWIyNGUxN2UwNjA0ZWI3NiByZWxlYXNlMjYtbWFpbnQKKzc2MTY1IGVkMTFiMzE1ZDM2YTM4ODdmMTY0MDA1MDcyMzdkYTNlMjBjMTYzZTggcHkzaworNzYxNjYgMTQ0N2Q3NWRlZjhiMjU3ODEwZjIwOGE2MDg1MjVhNDUyZWFkMjY3MyByZWxlYXNlMzEtbWFpbnQKKzc2MTY4IGM3NmQ1ZmJlYjY5MTkzMzljZDJiZDU5YTIyM2UyOTdkZGUxZjBkNzggbGVnYWN5LXRydW5rCis3NjE2OSAyNjdhNDE4ZWJiYzliNjRhMGIzNWY4N2JhZWM5OGU3MTVhOTc0MmQ1IHJlbGVhc2UyNi1tYWludAorNzYxNzAgYTdhYzRkYmRlNWRiNjIwYmEyMDBmZGM4Y2NkY2RiNzVmZDkyNDk5MiBweTNrCis3NjE3MSA2NjdkOTc3OWNhZDZhZmY2NjA0NzlhM2YxMjU3MDA4ZDI1YTIyZjBhIHJlbGVhc2UzMS1tYWludAorNzYxNzIgZmJmNDFiMTEyNGQ4ZWNhZjFlN2Q4ZDdlZDA1Y2I0NDNjZWZkMjhkYiBsZWdhY3ktdHJ1bmsKKzc2MTczIGVkOGIyOTY5MTE5ZTI2YWU2ODI2OTY0NmRiYjQxYzkzZmI2NGE5Y2QgcHkzaworNzYxNzQgMGViNTZhOGU2MjYyZjNiOWQyMGFlMzk1MDM1MzUyNDU3ZDIyYzdhNCByZWxlYXNlMjYtbWFpbnQKKzc2MTc1IGZlMzM1NjJkMWY5NWEwZmRjYjk4MDEwMmI5ODQ5ODU4ZDI0Y2I1NDcgcmVsZWFzZTMxLW1haW50Cis3NjE3NiAyZDM5NGQyZDJkMzdkN2RhYTFjNmI4MTM2MzM5YmNkMDQ0MTNiNzc1IGxlZ2FjeS10cnVuaworNzYxNzcgMDUwYTY1YTNkZjUzOGIyODc5YTNlOGY4YzBkMWUyZGRhMDE4NmE1OCBweTNrCis3NjE3OCBiZmNhYjFiYTBmNTFjYjNjZTUxODk4NWIzMTUxNTQ4YzBkMzNlOTdkIHJlbGVhc2UzMS1tYWludAorNzYxNzkgYmNhMDI3YjZkZjUzM2Q2ZGMzYWIzMTNhNmFjZWY0ZjA5MGI1MTliZCByZWxlYXNlMjYtbWFpbnQKKzc2MTgyIGZiZmNjZTExMjRhZTI3MGE0NmM0YThiM2JiYTUzZjIwNWY4OTEyMzUgbGVnYWN5LXRydW5rCis3NjE4MyA1MjE0MDczOGQ2YzNiNWVlZDZhNDJkNjFhMDNlNDQzNDU3N2Y1ZTFmIHJlbGVhc2UyNi1tYWludAorNzYxODQgOGJmYjMyYjVmZTZkNGQyZjk2NGRkOWRmZmU3MmY1ZjY0MmY3NzM0ZiByZWxlYXNlMjYtbWFpbnQKKzc2MTg1IGRkOWY4NWE1ZjEzNDdjZmIxNjIyNjg0ZjBlYTYyNDYzZWM4OWMxNDkgcHkzaworNzYxODYgOTIxOWE5NjJhZDFjMzA3YWUxYzc4ZWZlOTJjZDM3ZGIwNmQyNjE0OSByZWxlYXNlMzEtbWFpbnQKKzc2MTg3IGZmZjU1ODI4NmFhZTNmZTM2YWQyYzY5Mzc0N2ZmM2MyYjg0M2Q5NDkgcmVsZWFzZTMxLW1haW50Cis3NjE4OCAyM2NjNzU5Y2ZhZTM1ODI1MjdmM2I1MmVkODJmMjVjYzE2NTZhZmRiIHB5M2sKKzc2MTg5IDZkOTFhYWFkZGRkMDgxZGU3M2U0ZjI5YjZlNzM0MzdhYzRkYjdiYjMgcHkzaworNzYxOTAgODY3ZDJmMjczNWI4OTA1NTc2MDFiOTQyNTc4NDY1ZDgzNjYzZGVhZCBsZWdhY3ktdHJ1bmsKKzc2MTk0IGNhMDIxN2M1MmE4YmYzODRiMzQzZGFiMmYzODMwYzVkYzc5ODBhNTkgbGVnYWN5LXRydW5rCis3NjE5NSBmZGQ2NDg0ZjEyMTBkNjBjMTY4ZTIzNzY2YmQzNDJkZThhNjZmMjE3IHB5M2sKKzc2MTk2IGNiNTkwNTgwNmRlOGRjODc3Mjg4MmY5MjRjNWVjOTExYjYzZTI2YWYgbGVnYWN5LXRydW5rCis3NjE5NyA5N2MzMTg3MTQwNzBmNmYxN2RmN2U2ODVlNmY3ZWFiNmNiMmE0M2UzIHB5M2sKKzc2MTk4IGZlNmI5YmFiZTRiZTkxNmY0ODQ5MDVlNTNmMWYyNWEwNWNhYzBmZGUgcHkzaworNzYxOTkgOTc2Y2M1MDRkOTlmMjgzODViNWQyYWZkODFiYjNkMjg1NWM5Mzc1ZSBsZWdhY3ktdHJ1bmsKKzc2MjAwIDEwNzY0ZmZlNzU0M2NlOWJjMTJmNjNhYzQxZDQ1ZTk2NjEzOTI5ZWEgcHkzaworNzYyMDEgYjFhNzc1YWEwNzEwZDQ5NjFlYWVkMTM4NTA0ZTc0YjBlODdjN2IwZCBweTNrCis3NjIwMiA0ZWJkZDJlMGFhYWRlNzUzZGMzNGUwZTcxMjc2NTY3Y2NhZjU4OTUxIHB5M2sKKzc2MjA4IDU0YjhkNzgwYzliOTllMGJiNTcyZDQ5YzZmN2RhZDdmNmYxMDY1MDAgbGVnYWN5LXRydW5rCis3NjIwOSAyOTUwZDk3NzEzOTU5ZTcwY2Y1ZTk1Yzg5NjAxYjBiNmNlOGYxODc5IHJlbGVhc2UyNi1tYWludAorNzYyMTAgMTJlMGM5ZWEzMDRlZWViNTY4MWI3ODU0ODc5MjlmNTY0Y2VlMWE1ZSBweTNrCis3NjIxMSBjODVlYjU5NDY2MTQ1NjViZDNmOWYyOGZmZTBlNWUzZmEzZjk0OWM3IHJlbGVhc2UzMS1tYWludAorNzYyMTIgNzk1ZWY0NjM0OWU1MDFjYmM5MzRmOTE1MDQ2OWYxZjYxYmExYzBiZiBsZWdhY3ktdHJ1bmsKKzc2MjEzIDIxNDg4NTFmMDgyYTE5MDBhNjBjNzNmYjU3MmMyYzE3MmVlZDhjMTcgcmVsZWFzZTI2LW1haW50Cis3NjIxNCAyNTdjYjYxYmY0MWI1NjdiYzI5MzAwMTBiMzkzY2EwODRhYTUxMzU3IGxlZ2FjeS10cnVuaworNzYyMTUgY2U5ZjU1YWQ1NDZlMTRhNTQ3OGQzMjBiNTY3OGU0YjcyYjE2ZDhhNCByZWxlYXNlMjYtbWFpbnQKKzc2MjE2IGM3MTdmZTk5MzA4NWNkYWExZmJjOTRlY2E5YTZjZWI4MjJlYmVkMDAgcHkzaworNzYyMTcgMzNiZTgyZmEyNzdhYzlhMWVhNTAwZTljYzViM2E2YTE0NjlkMzg0OSBsZWdhY3ktdHJ1bmsKKzc2MjE4IDQzZjMyZGIxYmY0NmZiNmUwNGM2ZGFkM2U1ZDA0MDYxYzU5MGE1YjggcmVsZWFzZTI2LW1haW50Cis3NjIxOSA4MTE2NmQ3YjQxNGM4YWYyNzhkNzlhMTBiZjI4OGYzOWMwODE0YWVhIHB5M2sKKzc2MjIwIDEzOGMxZjc0ODA0ZDY4YzZmNTYxYWExMmIwY2Q5ZGU0NWM2OTNhNDIgcmVsZWFzZTMxLW1haW50Cis3NjIyMSAxYzI3ODg4YTk1NWZlOWM2ZDkxZTExMWU1ZjQ4YTI0ZmM3ZThmYmZlIHB5M2sKKzc2MjIzIGQ0NGZlYTIzZmQ1N2ZkNWI3MmYyMjU0YTEzMjJjNGEyMzQ0ZGZlYWMgbGVnYWN5LXRydW5rCis3NjIyNCA5NGNkMTg1ZjUzYjQ3NjEzNmUxNDIzNTBkNzdjMGNlZGU2ZWMwZTliIGxlZ2FjeS10cnVuaworNzYyMjUgNTcwNzdkZjAyZjlhY2JjNzkzMGYzYzIxZDZmM2Q5MzZiYzI2MzAyNyByZWxlYXNlMjYtbWFpbnQKKzc2MjI2IDVjMGQ0YjNlY2Q2NWQxOGYyMWE4MDIwYTkwNzQ1ZWRjNTNjMzdhNzAgcHkzaworNzYyMjcgNGYxYzdiN2JmY2JkYTQwM2FhZGMzNzE0Y2YyMTY4NzFmNzg0MjU3ZCByZWxlYXNlMzEtbWFpbnQKKzc2MjI4IGNkMDQzNmMzNGVmNDZkZTBmNDRmMDU5M2RiNDBiMThhZTE1ZjllMzkgcmVsZWFzZTMxLW1haW50Cis3NjIyOSBmOWE1MGNlZGU2YTkyMmIwNjdkNmQ2Y2U5NjgwMjYyZjQyNTJhMWQ4IHB5M2sKKzc2MjMwIDg5ZjQyOTM4ZDVjY2I3MzNjMzM2YTRkNTE0MTYzZjQxZmZlNDI4YzIgbGVnYWN5LXRydW5rCis3NjIzMSAxMjhkZDZkZTEzNGNhODljMmM3OThjZmJkMzFjZjJkNGI2YTY5ZWYyIGxlZ2FjeS10cnVuaworNzYyMzIgYjJkOTBjMWM2MzdkYzU3Zjk3NTgyMTg4ZDRmMmQ1NWVhNzJkODZjZSBweTNrCis3NjIzMyA3NjNkMmZmNzhhZTdlOGM0NTI5YTYxZjNlNGNiNjU1YzExYjQ1MTQ1IHB5M2sKKzc2MjM0IDdjZWI1ZWI0NjJjNTAzZjk2ZjBmYjllMTEyMTJjYWNlMjM2NTkzYzQgcHkzaworNzYyMzUgYjM1NGMxYjZiNDc2N2MzN2I0YzM4MzYyNTViN2FmYzAyZGE3ZjUzNCBweTNrCis3NjIzNiBhMDk1MWYxMWJlM2Q3NmU2ZGE5OTk1NDM1YWZjZTU0OTVmMTAxNTMxIHJlbGVhc2UzMS1tYWludAorNzYyMzcgYjdmNzNiMDJkNmQyNDhjZWQ4MmI2ZTExN2I1YTcwMTQ2MjIxMWIyMSBweTNrCis3NjIzOCBiMjE4ODM2NTczZmFjZTg3ZjRmN2M3NDM2YzlkNmU1NzI2ZjQ3ODZkIHB5M2sKKzc2MjM5IDk4NTc5ZTk1MmI1NGFmOTdkMGE4YzZkMzMxMDgwMDhiNTEyMzk1NDEgcHkzaworNzYyNDAgNjg1NTI3YWU0MzdkZjkyYThmNGNhNDMwZTFlYzMxODc4MjNiNjgxOSBweTNrCis3NjI0MSAzNTdlMzk3MDA0ODk3ODNlN2EwZGNmNDY4N2FkMTVhMTQ5Yjg2OWFkIHJlbGVhc2UzMS1tYWludAorNzYyNDIgOGU2YjQ3OGE3MDUzZWViM2ZmZmIzNDMzMzhlMDgyOGVhMzZiZWY3MyBweTNrCis3NjI0MyA2NWUyMzA4NWUzY2FkZGRiY2QwNWMwNDI1NmUwMTQ0ZjJhNTM0MWM1IGxlZ2FjeS10cnVuaworNzYyNDQgMzIzMzViYTNhYTBiYjE2MjYxYzAxNzVlZDZkMzA3YWZhYWFiOWVhOCBweTNrCis3NjI0NSAxOTZmMmFiOTc3MThjYmRiNmI5ZTFlYjM2NWFmMWZmZmViYTdjNjE0IGxlZ2FjeS10cnVuaworNzYyNDYgYjgxNDVkNmRiN2Q0M2Q3MDFkNTUxMDZmY2VmODRjZTA5ZGJiOGU3ZiByZWxlYXNlMjYtbWFpbnQKKzc2MjQ3IGM2MTNjNzI0ZTMxNTlhZjg2MTE5M2NmNDNjYmRjMTcyZDliOWU3ODggcHkzaworNzYyNDggOTBmMWY1NzMyMTg1OWQwYzY1ZmFkNDY1NzkwNjQyYTEzOTVjODRlMCByZWxlYXNlMzEtbWFpbnQKKzc2MjQ5IDVjOTA1MDQ4MTMwOWQ4YjY4MTM0ZWMyYWI0YWI3YmU1YWYyMDgyZGMgbGVnYWN5LXRydW5rCis3NjI1MSAyNzdiODlkNWIzMjA5NzQ4MDIwNTJmYTFkY2NkYWE3MGMxZTg2YWZmIHB5M2sKKzc2MjUzIGExZGY1MjRmY2JjNjIyYjA3OWNmOWE4ZjIxOWIzOGFjMmNiZWYwZTAgcHkzaworNzYyNTUgZjAwMTNhZGU5YzFhZDM2ZmMxMDRkMDk5YzM0ODU0OGIzZDdkNTM1YSBsZWdhY3ktdHJ1bmsKKzc2MjU2IGFhNjRhNTBhZDQ5MDVlNzkzY2Y1YjY3ZjU4YmRlZmI2MWYyMWExNzUgcHkzaworNzYyNTcgYTJjYjdkMjcyMWEzZTRlNGU4YTJkZDlkYTVhZDJhM2YwNjdlMWE5ZCByZWxlYXNlMjYtbWFpbnQKKzc2MjU4IDIwN2E0NjI2MTNmM2YzZTI3NTE2ODYxMGFlNGRjNjk3YjljN2NkOTkgcmVsZWFzZTMxLW1haW50Cis3NjI1OSAzZjJhNzZmYTI0OTZiMmExNWMyZGU2MTEzNGEyNjU5ZDY5MDk5YmZkIGxlZ2FjeS10cnVuaworNzYyNjAgYzFjMWYyOGFjYjA1MzI3OTE5OWJlM2I1OWI2M2QwMzBkZDNlMGY5MCBsZWdhY3ktdHJ1bmsKKzc2MjYxIGIyYWIwOGM5M2EwMjgyOWY2NGRiOGM0Y2Y1MmQ2ZTcwZTM2YjEzYzEgcHkzaworNzYyNjIgOTJmOTE3MDQzOTE5OTlmZDMwNzJkN2Q3MjE3ZDU5YTU2YjM0OGFlMyByZWxlYXNlMjYtbWFpbnQKKzc2MjYzIGJlYzU4OWI0NGFhZTdhNmMzMThkNjRmNjM5NWZlYmQ3OWViYjkxMzIgcmVsZWFzZTMxLW1haW50Cis3NjI2NCA1NTUwNDU1NDE3OTRlODNmZTU3NjBjNWM0NzhiYmExODI2NjM5MjdmIHB5M2sKKzc2MjY1IDNkYjFmYzNjZWZkMGY4NjNmN2JlNTU5NjZlOWQxM2QxYzM2YzNjM2MgbGVnYWN5LXRydW5rCis3NjI2NiA5NGYyNzA1ZGVmNWNmNjU2NjgzZWIzODZjMTAzNWVlYzU2OWU1OGMyIHB5M2sKKzc2MjY3IDdkNGFiOGNkMDAyMzk1NTQzMjg2Mjg0ZTA0NWY1Njc2MWJkNWQ0ZTcgcmVsZWFzZTI2LW1haW50Cis3NjI2OCA1NmU3MDFmODI0NWU1NjM2YTBmZmY5ZDlkZjlkYWM4ZTU0ZjdlNzJkIHB5M2sKKzc2MjY5IGZhNjAyNzBhYjc5YWU1YzhkZGRjODUyYTkzNDg2ZGU5ZjRkMTg4ZTQgcmVsZWFzZTI2LW1haW50Cis3NjI3MCAxMjU3YTU5N2M4ZmFkYTA1N2Q2MTQ2ZGIyNjkxYWVjY2NiZjE2MDkxIHB5M2sKKzc2MjcxIDNkOTAyZDY3YWY5Y2EwOTJiMmQ3NDNjN2FhZDM1YTU4MzFiNjZkNWIgcmVsZWFzZTMxLW1haW50Cis3NjI3MiA3OWVhNGIxZWYwNGYyN2RlNTdhNzU0OTViYjIxOTkzOWFhYjM0MTQ3IHB5M2sKKzc2MjczIDdkNmJhZDVjMmQ2NGUwNmIyZTI3ZWU4N2RkZWI2YzMwMDUwNDVlZTYgcmVsZWFzZTMxLW1haW50Cis3NjI3NiAxYTNkMzk2ZDFiNmZjYmY1NDJiZTU5Mjc0NGU0OGEzODljOGE4MWJlIGxlZ2FjeS10cnVuaworNzYyNzcgNTNlZThlY2MxOGE1MjJhODIyM2NhY2RmNTE1YjhjYWJlOWQyOGIzMiBsZWdhY3ktdHJ1bmsKKzc2Mjc4IGJiNGZkYTIyZTY1NzgwOGJlMDRmZjY1OTQxOGY0ZTJmZWI1NjdjZTUgcmVsZWFzZTI2LW1haW50Cis3NjI3OSBjNzc3ZTRiNDU1MDA0ZTI4MjZkMDI5ZTAyYmJjYmIwYjgzMDdlYThkIHB5M2sKKzc2MjgwIDg3Njg4ZmY2YWNjYzRkZDZjZTQ1MGQ3MmQ2MmQ1YmY2ZTExNDY2ZjcgcHkzaworNzYyODEgMDVhODljODY2M2NjNzJlODQ1ZmVjZDQ2OGRhY2JiOTEwZDJhOGY0OSByZWxlYXNlMzEtbWFpbnQKKzc2MjgyIDA1YzRlYjAwODljNWYxZTUxMmJjMDA0MWE4NDRiMWU1NTM1ZjYwZTkgbGVnYWN5LXRydW5rCis3NjI4MyAzYjBiMTliNTNkMzJiZjU1OTg1NTc2YjdlN2Y2ZjYyNGZmOTM4NWVlIHJlbGVhc2UyNi1tYWludAorNzYyODQgNTk1ZWMxZDkwYjJmZWZjNjQxMDBjODE3MzQ5ZmJiMzg4ZjBmYTE3NSBweTNrCis3NjI4NSBmYjdmYzgzMDI3MjFkMDA4ZDA3NWFkZDczNWZjMGFmYzhjMTMyNDNiIHJlbGVhc2UzMS1tYWludAorNzYyODYgNDA4ODFkYjMxNjg5MzM5MmRjMmU3ZWQxOGE0YTFjNTEwNTliMzJlOCBsZWdhY3ktdHJ1bmsKKzc2Mjg3IDZhN2ZjMmU4NTY1ZjczYTdmNDZjOTM2MmMzOGVmYTMzOWE3ODZmZGYgcmVsZWFzZTI2LW1haW50Cis3NjI4OCA1OTA0YWJiN2VlZjdiM2M4ZWNjOTJiNjlkNWIwYTIzM2VhOGFjNzcyIGxlZ2FjeS10cnVuaworNzYyODkgNDlhNWYxY2IxYjI1NDcwYWQxYTkyNGViYzI3NjFhZDVjYWQ1MTQyMCByZWxlYXNlMjYtbWFpbnQKKzc2MjkwIGY2NDBmNTVlODg3Mzg1Nzg5ZjQ5ZDJlMjc2ZGYwMWYzYjY3MjRhNmIgcHkzaworNzYyOTEgNWIwNWI1ZTlhOGU5Yjc0MmE4Y2M4ZGQ2ZmMwNWEyYTk2Y2RkNDk0MyByZWxlYXNlMzEtbWFpbnQKKzc2MjkyIDM3MGQyMThhMDFiYzMyZDlmYjc5NjQ5OTYyZDI3M2Y3YTZhOTE0MzQgcHkzaworNzYyOTMgMmFhNjJmY2UwYmY4NjUzNjFlYWE4ZWRmMWRjMTI5OWIxZjMxODM1YyBweTNrCis3NjI5NCBiMmEzOTBjNWRlNWY4OTMxZDFjOGUzZGE0ZjNkYzUwMzYyZjYzODljIHJlbGVhc2UzMS1tYWludAorNzYyOTUgNjJiOGRlOTgzYjI2NDJiODc5NDI5ZGVlOWUyNDhhMzIxNjZjZDYwZCBsZWdhY3ktdHJ1bmsKKzc2Mjk2IGMyMTdlMDMzMWQ0YjJlM2E4ZDU0ZjI2MzdmYWNkMGQxMDBmNjljOTkgcmVsZWFzZTI2LW1haW50Cis3NjI5NyBjNDU4ZjgxM2E3MDk0YmZmMDU4MGMzOGFiOWFlOWEwYmJiOGQ3MmQ2IHB5M2sKKzc2Mjk4IDNlYmY5MDdkYjAyOGUxMmJhN2MxNzNmZTIyN2JmOWFiOWU2MDYxMGQgcHkzaworNzYyOTkgOTUwNWFmZTg4MjNmOTRjMDc5MWI0ZTdhMjMwODZiYWFkMDU3NDEwOSByZWxlYXNlMzEtbWFpbnQKKzc2MzAwIDA2OWI2NmNmYWQzZmQ5ZjY1ZGU3MDg0MjdmZDIxODc2ZjVlYWMwY2QgbGVnYWN5LXRydW5rCis3NjMwMSA3ODUyMzFjMWM1NWE5MTkxNTY3YmI3MzM4NGQwYWZlZmE1OWE0MDJiIHB5M2sKKzc2MzAyIDJlY2M1OTM2YjFmMjMzM2Y4M2QzMzJkZWY4MzE3MjlkMjExZjM0MzAgcmVsZWFzZTI2LW1haW50Cis3NjMwMyBmMTM1ZmRiNzNkODg1NDM3YjdjYjU5ZDRjODU3NWMzZjg3YjM3OTFkIHJlbGVhc2UzMS1tYWludAorNzYzMDQgYzUwOTk4MThlMGQ0ZTU5MGNkZTM3YTY3ZmM5NTMyZDEyYWQ2ZTBlMSBweTNrCis3NjMwNSBhYmFmMzcyNGJlNzExNzg2ZTIxNjBiYWZhYzY4OGI0NTdlZGNhOWRkIHJlbGVhc2UzMS1tYWludAorNzYzMDYgYWZiMzM0OGIzNzE1NjIzMmYyMDE1OWI5Yjc0NmZlOGYwMTRiNzdlYyBsZWdhY3ktdHJ1bmsKKzc2MzA3IDE1MDYxMGNhZTgwNDkyOWRjOGQ1MzBkNDc5YzAyZGRiOTBlMDFkODMgcHkzaworNzYzMDggNTEwMjg3MDlhYmMzMjdjZjc3NTZmZmM0MGFmMGU0NDM2MDI1MDA0OSBsZWdhY3ktdHJ1bmsKKzc2MzA5IDgzNjY0MjI0MDQ2NGFiZDRhOGUwMWZiMGVjYzM2ZGYxNTQ0YjEwZjYgbGVnYWN5LXRydW5rCis3NjMxMCAyM2MxMzhjNGVjMDVlYzEyMmY4YTUxY2IwYTYyNjU1ZTY2YmI2ZDZjIHB5M2sKKzc2MzExIDE1NGZiMjcwYTgyMGYzY2QwMDI5ZWJjNDFhNmE2NDNhNjUxOGI5ZjEgcmVsZWFzZTMxLW1haW50Cis3NjMxMiBlYjFjMDNhMzdhMDI5NWQ1YWE2ZGUzZTE5NmY0NWJhYTUwMjVkYWU2IGxlZ2FjeS10cnVuaworNzYzMTMgYzA4NDIzZDcwYjlmMjFhNzExNjM5NzNiMDlkNTQ1MGI5MWFlN2EzYiByZWxlYXNlMjYtbWFpbnQKKzc2MzE0IGRmNTM2NGZjMGU1YzlkNDkwMGI3NjBlN2E0YjBjZWNkYzBjNWNkODEgcHkzaworNzYzMTUgMjViNjQwZDIzNGY5NTU1YzNiZDE1MWUyOGU0OTdiNGI4MmFhMGRhNiByZWxlYXNlMzEtbWFpbnQKKzc2MzE2IDI1MGUxZjQ3NTU2OGFhMmU2Y2UyNjYxMjRhZjhhYTJlNTE2NGU1ZmUgdGFyZWtfc3lzY29uZmlnCis3NjMxNyA2NjRmNjMwMTk0MGY4MzJlNjNmNWFmNjIzYjEzNzA2Njc0NWQ2NTk4IHRhcmVrX3N5c2NvbmZpZworNzYzMTggNjE1NDUyOTBjYjUxNDQ5NjU3NmIyZjU1ZjE3ODI0MDFmYzM3YmEyYSBweTNrCis3NjMxOSBlYjIzNWViNDVkMzI5YmQzNjM0MGRjMmM0Nzc0NTRhNmYzZDViNjk1IHB5M2sKKzc2MzIwIGYxMTEyYzI3MDBiMWU2NTExMmE5ZmM1YjU4OTI5ZjczYjIzOWJjOTUgcmVsZWFzZTMxLW1haW50Cis3NjMyMSA0MDFkMjIzNzA1Yjc3ODFmYzg5ZDgxNmYzNzc3MmQxMjc0N2QxMWJkIGxlZ2FjeS10cnVuaworNzYzMjIgMWUwM2ZlNWExMWI0MmYyZDBjNWI2ODdhODk2ZTgzNDU2NTRjZTlmYSBsZWdhY3ktdHJ1bmsKKzc2MzIzIDk2NzBmZTZlNmQxNGRjYWFhM2YwMDk3NDU4MmU4MjhmMjk3MzkzNDggcmVsZWFzZTI2LW1haW50Cis3NjMyNCBmZDQxN2NkNjQzNDE4NWFiNjBkNzA5NTQ5MTQzOWEwZGQyNjNjYTJlIHB5M2sKKzc2MzI1IGY2MjkzMGQwZmE3MmQyNTU0MDQ1ZDc1NmE4MzY3MjgwZjZmZDk3MWUgcmVsZWFzZTMxLW1haW50Cis3NjMyNiBjODQ3YzY4NGMyYzVlYTA5MmI2NjAyYzA2ZjU2YjdkYjFkYmJhZDQzIGxlZ2FjeS10cnVuaworNzYzMjcgZDNiM2E4YTgwOTBmYTE5ZGFiODUzNTVmNWNmNTdjZWNjMTEyYWIxYyByZWxlYXNlMjYtbWFpbnQKKzc2MzI4IGFjNzY4YzhlMTNhY2E4OGFkNmI1NzdlOGEyZjA4ZmQxMTQ2NzRmM2YgcHkzaworNzYzMjkgMmQzY2RhNmI4Yzk1MjIxM2YzN2YwY2Y5YTU5ODdkNzljN2Q3MDc4MyByZWxlYXNlMzEtbWFpbnQKKzc2MzMwIGY2ODBjMWZiNzgwNGY4MzIyNWZkZDBiYjY1NzQyYWJmMmVhOWNkNGYgbGVnYWN5LXRydW5rCis3NjMzMSBkMTI3Njc5ZWNmYWE2ZGU0OTU0NThjZjNlODYzMzhkMmFhZDFkMTlmIHJlbGVhc2UyNi1tYWludAorNzYzMzIgOWQ5MzQyY2JmOTM1M2U0ZTU5MjE5NjNiNGZlMGNlNmNiODAwNDAwMiBweTNrCis3NjMzMyBjZWIzYjM2ZGQ2ODFlY2MwODI0ZWI2ODAxNzNkYjA1MzhjN2M1OGZkIGxlZ2FjeS10cnVuaworNzYzMzQgYzVhMTIyY2IxMjg4YTZjNDdhOTY2ZmUxZGFkZjM5YTNkY2M4NWE0MSByZWxlYXNlMjYtbWFpbnQKKzc2MzM1IDQzOTFhMjJhYjFmMDRhOTM4NjhjZWM1ZDcyNmMxMGY1OGFlZjU0M2YgcHkzaworNzYzMzcgNGFhNGMxOWRmYWVkZWNmN2Q0MWIzYzRkMDBlOWNhNjUxZDA4NjdjNyBsZWdhY3ktdHJ1bmsKKzc2MzM4IGFkZjkyNzRkM2VkYzQxM2ZjMjZkZjA3ZDNlZjI4YTUzNmZmMzQ5ZWEgcHkzaworNzYzNDEgZjkzYjJhNjhkZmI0MjA3NGZmNmQzNzllNmY2MzhkNDhhMWE4MDFmYyBweTNrCis3NjM1MCAzNDliOTdmZjRjMmI3ODMyNGZhZjNkNDczOGU2ZWFmZmIzN2UwOTY2IGxlZ2FjeS10cnVuaworNzYzNTEgNzE4M2Q2YjkzMGJhOTEyNGFjZjhiNDEwY2UxMGQyZDFjOGM0ZTBiMCBweTNrCis3NjM1MyAyNjI4MjE2YmM2NmQ0NzZmNzc2OTNkODJjNzIxNDYwMGYyMGE5ODgyIHJlbGVhc2UyNi1tYWludAorNzYzNTggYTc3YTJkN2NlZDdkZDdjMmUzY2VjODAwNzdlZWExMDI4NmQxYjkwZiBsZWdhY3ktdHJ1bmsKKzc2MzU5IDE4NGViOTBiMmUzZDc1ZmI5MWM0MGY5MjE0ZWU2NzAzNzI5YTE5ZjggcmVsZWFzZTI2LW1haW50Cis3NjM2MCBkNmMyMTA2Nzc5YjkwY2UyY2IwOTQ2NzZkMmIxMjVjOTJjNzFjZTRiIHB5M2sKKzc2MzYxIDNjNjIwMzFiMjUwNmRlY2Q1N2U3NWMzNTFlY2U5NzIyNjViMDkxMjMgcmVsZWFzZTMxLW1haW50Cis3NjM2MiAzZDJiMDZhYTdiMzZmYTBjNjRiNjNjNzRjM2Q5ZDAwMDYyM2NiMzI4IGxlZ2FjeS10cnVuaworNzYzNjMgZjAxNDhkOTJkYjdmZjUwNjMzMzczYzM4MGYwYjAxNmI2YTFmODdiMSByZWxlYXNlMjYtbWFpbnQKKzc2MzY0IGVkYTU2ZDA3NzViYWNkN2RiMmZjNjYxOTU5OTI3NmFjNmFjMDYwMmYgcHkzaworNzYzNjUgMjRhYjkxZmIyNWFiZjA3ZWRhYWE0MzUxZDk5ZDUwMGY0N2JkNjRlMiByZWxlYXNlMzEtbWFpbnQKKzc2MzY2IDNkMThjZDFkMDRhNDQ2OGYxODFmMjA4NzZmNGI3NTQ2ODZhYjMwZmYgbGVnYWN5LXRydW5rCis3NjM2NyA0ZWQxMzJkNmJiNzAwMTIzOGYyYzEzMDcxNTkyYmFjMzcxMDA3ZTJiIGxlZ2FjeS10cnVuaworNzYzNjggNmUzY2MzYWRmMWRjNDQwYTNiMmRjMThiMjYzNjNiYWM3NTMwYjg0MSBweTNrCis3NjM2OSBhN2Y2MTk0Yjc4Y2M5MmQyODA4OGM3YTRjMTliM2IwZTc2Y2ExNzBjIHB5M2sKKzc2MzcwIGVkNTRhMWE5MTRiNGM2NjA1MzAwZTJiZTBhMjZjNTVkZjVhZjdkZjEgcmVsZWFzZTI2LW1haW50Cis3NjM3MSA1ZWYzNGIyOTc2NmNmMWEyNzYzMTdmODljYmQyNGQyMmJhN2JkZWVmIHJlbGVhc2UyNi1tYWludAorNzYzNzIgMmM1YzY2ODdmMWM4ZWI1NDBmMGYwYTc5NmUzY2ZjZGYwMGYxYWE3ZiByZWxlYXNlMzAtbWFpbnQKKzc2MzczIDkyZTA2Y2RiZWFiOWI2ODQyNWVjMmY5YzUyMjU3N2E2MDRlZDc0ZDEgbGVnYWN5LXRydW5rCis3NjM3NCA1MGQzNTUzMjRjNTA2MzI3ZGRhZGM3MzYyZWMwMTFlZmNjMjBlYzA3IHJlbGVhc2UyNi1tYWludAorNzYzNzUgYjk2Zjc4Y2U4MzgzMzkzYmMxZGJmNDQxMGM0YWQ0YmU4ZjA3ODBlMSBweTNrCis3NjM3NiAzMzNkZGEzMWJkNzMzMWVlNjExN2MyMTkyNGY3YWNmNmI3ZTBkZTMxIGxlZ2FjeS10cnVuaworNzYzNzcgNDFkMjljMTdmZDQwNWQ2YWUxMzJkMGJlM2I5ZTJiYjQxOTRmYjMyZCBsZWdhY3ktdHJ1bmsKKzc2Mzc4IDQ2MzNlZDIzNzk3MGQ3NDZmODRiOTFmYzAwZGUyNTY0N2E5ZDM2NmUgcmVsZWFzZTI2LW1haW50Cis3NjM3OSAxZTUzNGQ3OTUwZjgwZTg5MzM3MTY4N2VhNWViYWFjMDFjMTdiYjMxIGxlZ2FjeS10cnVuaworNzYzODAgOWVkMDJkZjcyYmQ2MmYzZTcxMmZkZWI0MzcwZjdiZWVkZTM2NDE2NiBsZWdhY3ktdHJ1bmsKKzc2MzgxIGQ4YmNjOWRlMTYwNTRjNzllODQwZjNmNjhlYjdhYWIzNjcxYjU4MGEgbGVnYWN5LXRydW5rCis3NjM4MiAwYmNjMTJjNDYwMTVhNDg4ODU1N2NkYWM5ZTFkMjBlMjQ1ZjdjNGFhIGxlZ2FjeS10cnVuaworNzYzODMgMDVhZjA0OTAwYjZiOTFlMmVkMDBkYzQzNTlmNTBmYWNkYTAzN2E5ZCBweTNrCis3NjM4NCA3MTVjMGJhYThiMmM4Yzc4YWNkNWFkYmIyN2YzMjUzYzE3NGM4YzRlIHJlbGVhc2UyNi1tYWludAorNzYzODUgNWU1Yzk3YjljODI3OWY2MmM4MzgwODM2MmI3ZGQzMTFkOTU0ZTIyYyBweTNrCis3NjM4NiBhMzQ1YmI1MGVjMGY4OGM1ZGE4ZDMxYjAxMjgyOTQ3OGZjOWZmMjk5IHJlbGVhc2UyNi1tYWludAorNzYzODcgZDgwMTlkMWQ1NmYzMzRmNTJlOTZiNzgxYmJjNGFiYzQ3MjE0YjE5NyByZWxlYXNlMzEtbWFpbnQKKzc2Mzg4IGVkNTkwNzc4MzhhZGU5OTI3YWY2ZDQ5MjA3NTNjMTA2ZDkwYmYwODUgcmVsZWFzZTMxLW1haW50Cis3NjM4OSBiMzFhMzNjMzZmMDg3NGNhMTcxNjhhMTRlYTY3ZDVlNzRhYTZkMDRhIHJlbGVhc2UzMS1tYWludAorNzYzOTAgYjhhMGIzMzNlNDY5ZTFhODk4ZjMxNDNhMDc4ZTE3MWE4OTA3ZmYzMSBweTNrCis3NjM5MSA4ZDA2ZTQ1MGJjOThjYjZhNGY3M2JhOWNmYWYyZGE5NzhjNmY3M2MzIHB5M2sKKzc2MzkyIGYxNTI2NjcyMDBhZTkwNDI0Y2YyZmRjYjVkYTBiODY2MDRjOGM1NTEgbGVnYWN5LXRydW5rCis3NjM5MyBhNzkwZjg0ZmJhZmEyODE4ZWU2ZDk4YTE2YTFjNTA2NTBiNmU4MmMwIHJlbGVhc2UzMS1tYWludAorNzYzOTQgZjczZDEzN2NmYmQwNDZmN2E0YWRhNjEwZWM1ODUyMjRiNzQ5M2JiNyByZWxlYXNlMjYtbWFpbnQKKzc2Mzk1IDg3OTNmZjhmNDgyNjFkOTE0NmQ0ODgwY2M0ZjVlZDc2MWQxYmYyMzMgbGVnYWN5LXRydW5rCis3NjM5NiAxNjZmN2EzYjczZmM2MGM2MzZkNjYyYWFiYTAyZWY5ZjNkYTc0YjNhIHB5M2sKKzc2Mzk3IDQyYWFlZGFlZmJjYjY1ZTBiOTU2OWU3NzVmNmM1MmJkYzBmNjBlMDUgcmVsZWFzZTMxLW1haW50Cis3NjM5OCBkNTc3OWUxNTlkZGIxYThkYTIxYzdjYjc2YzdhNThmZmRkNmMwYmJjIHJlbGVhc2UyNi1tYWludAorNzYzOTkgYzBkZmE5YmQ1YzdmODIzM2I4MjY1ZDkyZTQ4ZDM0YjFjZjE2Y2NhZSBsZWdhY3ktdHJ1bmsKKzc2NDAwIDRiNmI0OTQzZDY5YTQwYjBiNDlhOTJjM2VkYjNkYWUxNDExNzNlMmEgcmVsZWFzZTI2LW1haW50Cis3NjQwMSBmNTdmMGM2YWFlOWQ4MmQ4M2JjY2ZkOTE0YzU0MDY2M2Q0MWZhNDE3IHB5M2sKKzc2NDAyIGFiNWI3ZTBhOTEzMWFkYmMzZmFhZmZiOGRiN2Q4OGIwMDI1ZTA1YWYgcmVsZWFzZTMxLW1haW50Cis3NjQwMyBjMDc5ZmNiZmM3NjE3YjZiOTgxZWM2Y2ZlZGZmNDllOGNlNmViZTMzIGxlZ2FjeS10cnVuaworNzY0MDQgNWI1NDMyNWVmNmY1NzYzMTM4YWNlZGE5NTExMmYxYjMyZmQ0MmUwNiByZWxlYXNlMjYtbWFpbnQKKzc2NDA1IDM5OTg5YzY2ZGIxNzhhMjE4YjU5MTNmODU3MzM4ZWMyNzlmZTI5NzUgcHkzaworNzY0MDYgYTkyZWYxMzZkOWQwY2ZmOTE2YjgzYWE1MWNkZTI1OTM4NDI4YmM3NyByZWxlYXNlMzEtbWFpbnQKKzc2NDA3IDRmYWU4MTY4YzQzYjEzMTg4ZTMwYzQxMTA4ZDA1MzdiMjg0YTdlYmUgbGVnYWN5LXRydW5rCis3NjQwOCBiOTZhZTNkOGFkZmQxMDhhYjM3ZThiMDIxMjcwODNkODYwZTFiOTM1IHJlbGVhc2UyNi1tYWludAorNzY0MDkgMmRkNzk0MmRjZmQ1MzkwYTY2ZjkzMTU0OGFmOGI3MDM1NWIyNGMzYSBweTNrCis3NjQxMCAyNGQxZTA2YzYyOWMxYTg2MGY5ZGM1ZjVlMjIzYjE4YjFkZjhmODMzIHJlbGVhc2UzMS1tYWludAorNzY0MTEgNjdjMGY5MmNlNTVjNzdiYTJlNmNmN2VhZGE0NGZhYjVmNThiZGZlYiBsZWdhY3ktdHJ1bmsKKzc2NDEyIGE0ZDlhM2RiYzUzM2ZiMmVmMmUxZmQ3MGM1YTJlNjQzNmYzMjRhMDggcmVsZWFzZTI2LW1haW50Cis3NjQxMyA5OGFiM2FkYjA0NWNlMjZlYTZkZjY5ZDQxNmY5NWIwNDQwMDBjODkzIHB5M2sKKzc2NDE0IDIyNTRjN2RhOTc3ODgwNDYzMzBlZDkxZDQ0YzkwZGFlZTg3YjNmOTcgcHkzaworNzY0MTUgODIzODA4MTZlN2RiM2IyNjQ3MWMwNjgwNjUxYmFhOWM4Mzk4NmQ1NCByZWxlYXNlMzEtbWFpbnQKKzc2NDE2IGVkMzBiY2ZmYTE0NjcyZjBlMzM0OWZjMDc3Y2U1OWRlNzdiMDk2MGEgbGVnYWN5LXRydW5rCis3NjQxNyA2YWE1MjhjNTAxMjg0YzVmN2MyZDE1YjJhMzk2NDIxMjE3YjczNDdlIGxlZ2FjeS10cnVuaworNzY0MTggNDc1YmY4YjU4NGE5MjNiMDQ4ZjIzODcyZjNjZTlkYmI2ZGNmMjE4NCBweTNrCis3NjQxOSBmOWYzOTUwYjVlYzc1NjUyMDcxZTUxNzk5MjM0ODBiYzFkMWM5MTAwIHJlbGVhc2UyNi1tYWludAorNzY0MjAgMWMzNTI3NTBlYmYyM2Y5NTE2Njg2MzZmODE1Mzc4ZGUzODNkYTQ2NyBsZWdhY3ktdHJ1bmsKKzc2NDIxIGYyZGE0ODhiNGI3YjM5MzU2ZTM0MDY3YmQyZWZkYjU0NzU3ZTJhNDcgcHkzaworNzY0MjIgY2Q1YjE1YzI5YTM5NmVlOTljZDBiYmY4NDRiYTM1MzRiMzNmZWI4NSByZWxlYXNlMjYtbWFpbnQKKzc2NDIzIDZlMzcwMDEzZjNhMGE1OWE3OTk0OGI2MzNiMmVlNWJmMjhjYWUzYjUgbGVnYWN5LXRydW5rCis3NjQyNCAxMzcxMTVlMzk1ZDhkZGZiNTdlZmQ0MjA0YWY0ZTExNmFkYmQ2ZjgwIGxlZ2FjeS10cnVuaworNzY0MjUgMThhZjBjZTBhNThiZDhiNmJiYzcyYTI4MGExY2RjYjk4OWVhMGYwYyBweTNrCis3NjQyNiBlYWViZTI0NjAzNzdjNTViYWMyMDc4OTVhZTU5YmQyNmFhMDA1NjY0IHJlbGVhc2UyNi1tYWludAorNzY0MjcgZmQ2ZTJhYmFlMTRlNDJmNTJmZjY4NWZiMmQ2NTA0NDM1YzEyNGYzMSByZWxlYXNlMzEtbWFpbnQKKzc2NDI4IGUyYjJjZWVmYTgyYWNmZGI1YTk4Yjk0MGEzZDA0MDAzMDljYmFmZWIgbGVnYWN5LXRydW5rCis3NjQyOSBlODNlM2RiNjJmYzc4ZDRlM2ZkYWE4ZjM2NWRlN2MzMzI3YzRkNzJlIGxlZ2FjeS10cnVuaworNzY0MzAgZTNjOTk0YzI5YTIyOTI3YTI5ODY5Y2I0MDViYWE2NWMwMmM1YTFmYiBsZWdhY3ktdHJ1bmsKKzc2NDMxIGI4MWQ2MDExMGY4NmY3NzgxMjI5ZTVkMDNiZDAxMDIzMWEwNmJlMjYgbGVnYWN5LXRydW5rCis3NjQzMiAyZTNlYzNiYjRiZTdjYmZkMmE2ZGViZTEwMjZhZjJmYTUzMjczNTZlIGxlZ2FjeS10cnVuaworNzY0MzMgMWQ5MjNlYmI0NzYwMGY4YTMxYzY4OGIxZWZiNjNmZGVhM2MyZmUzZSBsZWdhY3ktdHJ1bmsKKzc2NDM0IDdhNWNiNGRlY2Y2ZjI4ZThhNWYwOWQ5MTRhY2JlMWQyODdhNWNjYTggbGVnYWN5LXRydW5rCis3NjQzNSBiOGJkNTM2MDg0MWJhYTVkZTViOWZjMTE4ZGNkMzIzMGM1ZjhlNjY1IHB5M2sKKzc2NDM2IDVhZWVlZTBlYWU1ZmNmNTM2YmUzM2Q4NjcwZmFiMjQ2Yzk4MjgxNjUgcmVsZWFzZTI2LW1haW50Cis3NjQzNyA2MzliYTAzNmMyMDk0OGM0ODhlYjdmOTQzN2EyM2Y2YzdmMTJiY2M0IHJlbGVhc2UzMS1tYWludAorNzY0MzggYWY4OGIxZDI1YmYyOGViYzk1NTFlOTUxODAxOWM2YWUxMDBkZTQ2MCBsZWdhY3ktdHJ1bmsKKzc2NDM5IDUxM2M0YjE1NzVmMjY3MDJiYzMxZmVmZTcwNDFmZjQ1YWQ5MTg2MTEgcHkzaworNzY0NDAgNGM4NzA4YTc5MWU2MDMyZTAyOGNkOTU0YjQ0MDQ5NDdmNjg5NmM0MSBweTNrCis3NjQ0MSA0ZDU1NmMyNzkyNmE2MWM3MzI3NjdhZWYyMDIzMmIyZTI5YWYxNzAzIHJlbGVhc2UzMS1tYWludAorNzY0NDIgZGNiY2M4YzE0MTc5MzUwMDc3NzU0ZDczMmUwNmNlZDRjMTY0MmY1YSB0YXJla19zeXNjb25maWcKKzc2NDQzIDRlMjcwZWFiNDUyZGYzMDgxNDBhOWI1ZDc2YzA1NjkzZjUwMTY3NGEgbGVnYWN5LXRydW5rCis3NjQ0NCBkNmY4NTUyZmNlNzlmYWZkNGFhMWUzYzg2ZTg1NmNjZDAyYjMwMWYxIHB5M2sKKzc2NDQ1IGJjNzY0M2E3YTVlN2IyODdmZjNjOTg3NjM3MmNiNmRiODA2ZDI4YjYgcmVsZWFzZTI2LW1haW50Cis3NjQ0NiAwZWViM2EzZTc5ZWY4ODhmNzJhOGJhN2EzMTBjODk3ZDdlMmRlZjExIHJlbGVhc2UzMS1tYWludAorNzY0NDggZWM1MmM0MTliODI0ZTFjNWUwOGYzYTliZDQ3ODJjZTA2OTM5ZWQyYiBweTNrCis3NjQ0OSAzNzNkNDJmMjZlOTY2YTdkYTgwNDkxOTZlMzRkMzVhMzYyODY4YzkxIHJlbGVhc2UzMS1tYWludAorNzY0NTIgZGUwNzg4MGE1M2ZmYTc5MDRiMzNlMzNkYTA2NWYzNWVmMjEwMWIyNyBsZWdhY3ktdHJ1bmsKKzc2NDUzIGQ2Y2UxOGFkODQ2NzE2OWUxODJlYTdlMjE1ZDkwOWI0MGU4ZjM2MmQgcHkzaworNzY0NTQgNTZmMTkwODFkN2JjZTk3ZWNkMmFjMGE1ZjgyZTMxNzRmZWY0OTU3ZSByZWxlYXNlMjYtbWFpbnQKKzc2NDU1IGUxZDczMjUyN2M3ZTM0NDU3Yjc5ZGYwNzA2MDRjYjhjYTc5ZTRlM2EgcmVsZWFzZTMxLW1haW50Cis3NjQ1NiAyNDhjNGZhNWZlMGM5ODc5NWE4MzYxY2JiMzg1M2ZhZjJjZGM4ZjQ0IGxlZ2FjeS10cnVuaworNzY0NTcgMDg2OWUxYWI1NzJlMzdjMzM1NDlhMmJkNzcyMTNmNjQ3YmI0MzNmOCByZWxlYXNlMjYtbWFpbnQKKzc2NDU4IGM0OGZkNjNjMmY2MWEwOGIwMjJkMjdhMzNmZDEyODQwNjFjNTBmYWYgcHkzaworNzY0NTkgMDk4NDA5OWE5NDMxM2IyZWZlYmQ1MTBhYmE1MTBhMTZiNTA2NDI3NiByZWxlYXNlMzEtbWFpbnQKKzc2NDYwIDcwNDIxNGI5Y2I3NmM3NzNkMTA5NWU3NTAxYzk2ZjU2NjE5NzQ4ZDUgbGVnYWN5LXRydW5rCis3NjQ2MSAyNjM5ZWE3YjkyZWQwNGM2OTZlNGQ3NTBkMjEzMWZlOWI5MWRhZWZlIHJlbGVhc2UyNi1tYWludAorNzY0NjIgYWRhNWY2ZWVlMWNiMTIxZDQzNzJiYTJkMzliZGNiN2M4YjRhMWU2MyBweTNrCis3NjQ2MyBjMmVjY2E1ZmY2NTkzY2RiMDliNDBjNDE1MjQ1OTI3YjE0ZTk1MjVmIHJlbGVhc2UzMS1tYWludAorNzY0NjQgZjU1NGRmZmY3NDUwNTc2NTZmNWNhNzMyMGQ4N2Y2ZGUzNmI1MjU1YiBsZWdhY3ktdHJ1bmsKKzc2NDY1IDgwOGY5YzBkNGFjNDAwY2JmNWIyMDM5YzAzN2IxY2E0Y2E0ZjVmY2QgbGVnYWN5LXRydW5rCis3NjQ2NiA1Y2Q5NWU1Nzc3MmM4MGM3ZmJiNzVlYWU1YmVmNzhiYzc0NjE4ZGMwIHJlbGVhc2UyNi1tYWludAorNzY0NjcgYzhkNjlhMDZiMzNiYmY2MTY0OWE5MGQzNjc3MjFiNWNlNzQ2MmNmZCBweTNrCis3NjQ2OCA4MThjZDQwZGY4NjVmMjY3ODMxMzBkNTAzYTJiNjUwNTUyMTU3Njc5IHJlbGVhc2UyNi1tYWludAorNzY0NjkgYWE5NjI3YzQxMjIyY2FhMmE0YTJmYjZjMWQwODgwNzIxZTYzMzM3ZiBweTNrCis3NjQ3MCAzYTJiMTQ5YWU2NmU4MTVmMDgzZjIzNmMwMzJjYjk5NDM1MDE5MDg5IHJlbGVhc2UzMS1tYWludAorNzY0NzEgZjAxN2EzNDg2NGUyYmE1MzcwMjk4NjlkN2E4OWY0N2Q2YjRhYTlhOCBsZWdhY3ktdHJ1bmsKKzc2NDcyIGE3ZWIxYWU0ZTkxOTA0YmJlNDlmYzNjNGVhZjRlMWUwZmY1NTI2ZDUgbGVnYWN5LXRydW5rCis3NjQ3MyAzMDE3ZDgyZjA3NWFjZGIxMTRhNmM5ZWIwZTUxNjM4MmFlMjQ1NTY3IHJlbGVhc2UyNi1tYWludAorNzY0NzQgMDhhMGM5NTg4ZjEzZjBmNTg1Yzc5ZDExZjIwNjZlMTY1YmE0MmY5ZiBweTNrCis3NjQ4MyBiOWI2ODNlZWRlZTExNjc5MGMwMWQ3NWI1NTYxYmZmMDEwMmU4MGM2IGxlZ2FjeS10cnVuaworNzY0ODQgNTExNmVmNzc5YTgwMWYxY2RiMTJhYjJlNzhlZjZlMjc0OTk1MGUxMyByZWxlYXNlMjYtbWFpbnQKKzc2NDg1IDM1N2FkOTBiODExNGNmNDBmNzJiYzg4OGNlZWM3YTY0ZmE4NjdjZWIgcHkzaworNzY0ODYgYjdmYmVmMDc3ZWFlMTNjYjUwYmZhZTg4YWJjOTQ2ZmNhZjk5NDdmNCByZWxlYXNlMzEtbWFpbnQKKzc2NDg3IDM5NDhiNGM3MjlkN2FlOTRhZDc1ZjY0MWZjNDNmYzc0YjY2OWViZTAgbGVnYWN5LXRydW5rCis3NjQ4OCA1MTZjNjIyYTRmOWUxMzgyYzI2ZDM3NjdiMTcwOWY4ZWYzODMwMWUxIHB5M2sKKzc2NDg5IDMzN2ViYjgyOWI4Y2EyZTM3NzIxNDFhODRhM2U3ODRjOTI1ZjNiNjggbGVnYWN5LXRydW5rCis3NjQ5MCA5ZGNhMzg0NzQ4NTQ5Yzg2ZDg0NmQxZTVlZDMzMGE2MDlhZTU2ZWU4IHJlbGVhc2UyNi1tYWludAorNzY0OTEgNTM1ZTA4Y2U0M2Y1NzljYzZlOTY0ZTdiZWU4MGJhNGZmNzFkNTRkNyBweTNrCis3NjQ5MiA1OGIxMTkxZTQ1MWZhMDAzZmUzMzlhZTM5NDU1MjNjMGVkYWJlZDI2IHJlbGVhc2UzMS1tYWludAorNzY0OTMgNmYwNDhiMWU1MjgwNjIzMjNmOWU1MWI5MGY2OGY2NDk3OTI3YTBiOCByZWxlYXNlMzEtbWFpbnQKKzc2NDk0IDc2NTkwOWZjN2RlYzk2ZTNlZTRlMTE4Mzk5ODE2NjA1Zjc4NTdhOTggcmVsZWFzZTMxLW1haW50Cis3NjQ5NSBmYmVmNWZjY2IwYzg4ZjljZmJkMDc1NzY1MTA1ZTI0MzU5MzVjMDJiIGxlZ2FjeS10cnVuaworNzY0OTYgODNkOTRlNzJmMDFjZmZhMGIyNjFkZDU1Y2Y5YWE0NDRlZDhmYTgxYSByZWxlYXNlMjYtbWFpbnQKKzc2NDk3IGZiNzk5NGIyOTEwMTczYTRjN2FlMTQyMTFiMDdiMDlhZGNhYTliZjIgcHkzaworNzY0OTggMTdlNTkwYmU0YzVhYTJhNjY4ZWU0OTFhMzdhYjE5ODRmNGFlY2NlNCBsZWdhY3ktdHJ1bmsKKzc2NDk5IGNiM2VhYzQyMWNmOTZlZjhlMTgzNzRhMWUyMmYyMThjYTJhMjI5ZmMgbGVnYWN5LXRydW5rCis3NjUwMCBiNTFmZGE3NTRmNWE1ZTMxNzA0YjNmZTMxM2M5YWZhNzdmODIyZmRjIHJlbGVhc2UyNi1tYWludAorNzY1MDEgOWU3OWE2YWZhM2Y1MzEwMGI2YWE0MWE4YWQ2ODFlM2ZmMDFjYzM2OSBweTNrCis3NjUwMiAyY2QxZmIxMDQyMzM0ODFhMTBlNTcwZjc2OTdjYWI4NDM4OTg3OWY0IGxlZ2FjeS10cnVuaworNzY1MDMgOTAyODI4MDRjZDUwMTY3ZWEwYzI4YjQ5YmZiYzkxNDA2OTNkOGM5OSBweTNrCis3NjUwNCBhZDUxNjllMDVkYzNiMzhhNjk4ZmQ2Mzk0ZWFjYWZjMDE1MDc3NGZjIHJlbGVhc2UyNi1tYWludAorNzY1MDUgMDE4YjIwYjAzOWE4NTRiNWExNmVjZjgwZmI3MzVjN2YxODlmYmMxYiByZWxlYXNlMzEtbWFpbnQKKzc2NTA3IDVlYTIyNmQzMmY2ZDc3ZTU4MTk3ZTU2YjNlM2E1ZDZjNmQ5OGM5ZGUgbGVnYWN5LXRydW5rCis3NjUwOCAxZDE1N2UyY2U5NDkzZjQ4MzQ4NmZhZDI5MTMxZTY3ODk0OGYwY2JhIGxlZ2FjeS10cnVuaworNzY1MDkgODVjZDkzNTI1NTY4N2QzYjgwM2Y0OTg2NTg0NDM0NTM2MmM1NzIzNCBsZWdhY3ktdHJ1bmsKKzc2NTEzIGM3NzMyZjg4OWM0NTQ4YWU3MGNmOWJkMTg4ZTMzYWJiOGZkZDNiNzggcHkzaworNzY1MTQgMDIyY2QwZjNjNTU4ZWRkZTE2OWY2YmE1NjJjN2QxNDE1MzU2Y2I0MyBweTNrCis3NjUxNSAwZGI2NzE1M2QyNWYxNGMzZTk3YzdkOGJmMTA5NmI4OTFiZTA2ODk3IHB5M2sKKzc2NTE2IDEzODZkMGU5ZTBmYzdhNGQ2MTdkODBiMGJkYWIxYjQwZGU2M2Q0NzYgcHkzaworNzY1MTcgNDFiZDMxMjM4NjRkODlkMzUxMWJiYjc3NWU1ZmU0MmZmYTNlZWU2ZSBsZWdhY3ktdHJ1bmsKKzc2NTE4IGU1YmMzODJjY2Y3NWIxZWQ4YTMwY2E3ZmI1ZDI0ODhkMjMxNjMzNjEgcHkzaworNzY1MTkgNTA4NjU0Y2VlMTM3YThlZDE1ODE1YWU3MzBlZGY4MGExOGNhMDQxMCByZWxlYXNlMzEtbWFpbnQKKzc2NTIwIGU2MTMzZDE1NGY5ODE5YzY0OWQ4ZWFkYmNiZmU0MmU0OGNmMjFlMDUgcHkzaworNzY1MjEgZmVhNTMyNThhYjdlYmVlZDEwOGRjOTcxZWE5MzYyYWFlNGZmYWVlOCByZWxlYXNlMjYtbWFpbnQKKzc2NTIyIGRmODZjNDIwZTk3YTBjYzE1N2M2ODdlOGYzYjgyYWMyYzA1ZWQ3ZGUgbGVnYWN5LXRydW5rCis3NjUyMyA4NWUxZTEzYjQ5OGE3MmMwMzJkODBkOTJmNmE5ZmU1NGVjNjhmOGJhIHJlbGVhc2UzMS1tYWludAorNzY1MjQgMmQzODhkMWE4M2Y0MmUyNDQ2YWVmOGU4Y2MxZmU0ZjI0NDY5YWQ5NyBweTNrCis3NjUyNSBhMWQxNjZhYjE4YzQ0YmE2MzYzYWNjYjllZjJmZmE0ZjA0NGYzOGMwIHB5M2sKKzc2NTI5IGE2OTgxZjRhNzRhMWQ4NjZjMDliNTllZTdjYTA2MDNjOTRlYzBhZmYgbGVnYWN5LXRydW5rCis3NjUzMCBhODU0NzFjNDc1MTQ4ZGYwNjc3YTkxMjE5ZjE2NmM4YjhkMjE1ZDc3IHB5M2sKKzc2NTMxIDYxZTZjZTcxODUwMDg5YzBkNDgyOTY4ZDFhYTE3YjI4ODI0YTIxMjMgbGVnYWN5LXRydW5rCis3NjUzMiAzZjcxZWJlOTFmOTA1NTA1YzllNTBlNjU2YjY5MDU4ODVmMDhhM2M2IHB5M2sKKzc2NTM0IGM1NDU4YmEzODlkNzY1OWY4ZTkxMjE0NWY4YzQ0Y2UwN2Y1NjU1Y2EgbGVnYWN5LXRydW5rCis3NjUzNSA3Yjc0YWJiODAzNTY4ZGJlN2Y1MzA4ZjkzM2FiMmM5NDM5ZDVkNWE3IGxlZ2FjeS10cnVuaworNzY1MzYgNzQyMzBlNWFiMzczOTA1NTljOWE0MmYyMmUzMTU3ZmY3MmY4OGZiMyBweTNrCis3NjUzOCA0NTIxZjU5OThlN2M2MmU5NDEzNjAzOTk4MzlmZTgzZTlmY2NhZDEyIGxlZ2FjeS10cnVuaworNzY1NDYgYThhYjYzZmQzMDk4OTdjMDAzNWQyYzM3M2MzNmYwMTg3YjEwODMzOCBsZWdhY3ktdHJ1bmsKKzc2NTQ3IGM5MzY5MDkyZmVmY2Q0NDViOWM1NjNkZWZmYTJjMWRmMGE2MGU0MjcgcHkzaworNzY1NDggMTM3NDhmM2RkYzdiNTQ5YjRlYjZkNjZhNjU5OTUyMWQ2NjQ0ZjE5YiBsZWdhY3ktdHJ1bmsKKzc2NTQ5IGM3ZDdkNWNhODQ0NjRmMmFjZDdjMDRkYWQxZmY1NDg5YTVmZjkxMzUgcHkzaworNzY1NTAgOTg4ZGIwYmJlZTNhM2UwYTk0NjY2ZWNkOTA0MTBkNWM5NDk2Yzc3ZSBsZWdhY3ktdHJ1bmsKKzc2NTUxIDY3MjFkMzNmM2NkMWYzYWM2ZGQxNmJmMjQ4Y2JhZTcyN2ZiNzdiZDEgbGVnYWN5LXRydW5rCis3NjU1MSA1MzY2OWNiZjBlZDJhOWIyNDk3MzNlZjA2OWRlMTRiMzdiNzE1ZWI4IHJlbGVhc2UyNi1tYWludAorNzY1NTEgNzI2ZDEyZGJhMWY2MGUzZGIxNGZmMjQ0MDRmMzE2Y2I4MGE1OGQ3ZiBweTNrCis3NjU1MiA0ZWY3YjNlMmQ2YThiMGIwYTliN2M4YzJlOThmMzQ0OWU2ZTAzZDJmIHB5M2sKKzc2NTU0IDUyN2I3YzA3NTg0OWZiZjY0NTg3YTU0NmMzNDI3MmQ5OWI2ZTRjMDYgcmVsZWFzZTI1LW1haW50Cis3NjU1NSA1NzRkZDhhY2E5MTRlNDQzYjY2NzVlZTdiNWI2ZGU5MDg4NWYxOTM0IHJlbGVhc2UyNC1tYWludAorNzY1NTYgNmU3NDAzYWQ1MzM1ZWE0ZDEyZDI2ZTFhZWMwMjc1M2FiZTY1YmNlMSBsZWdhY3ktdHJ1bmsKKzc2NTU3IGZkZTUxMzBiZjZjZGJkMzJjOWY0YWE4ZjUzZTIwYWJiYWIyMGYzODMgcHkzaworNzY1NTggMzM5ODY2NDg2MzBiYzRjMDlmMDFmZGExNzRkMWJjMDI0NjFkNjgyYiBsZWdhY3ktdHJ1bmsKKzc2NTU5IDE4MDI0ZDI5ODY5Y2IxZjVkNWUwOTAxZWMyMGFiYmI0N2JlZDZmOGQgbGVnYWN5LXRydW5rCis3NjU2MCBjNGMzZmQ1OTNiMGFjMjk2ZDM4NTJhYTZjNGUwYTVkMjg3ZmE0YmQ1IHB5M2sKKzc2NTYxIDI5N2RmNzdiYTM5NjQ3MDY5NmZhNWViMjdmN2ZhYjE4M2MxODc3OTEgbGVnYWN5LXRydW5rCis3NjU2MiA2OTZkOTYxNWEyMzgzYjk1M2JhYTY3NmQyMjQxMTRkYmE4YjM3ZWY1IHJlbGVhc2UyNi1tYWludAorNzY1NjMgNWI2MDdjZDhjNzFiYjU4ZGEzZmM4Nzk2ZTc3YjEwM2MyMGNmYjgzZCBweTNrCis3NjU2NCAzZDExNTc4MmZlMWJiMDRmMTFhODNlMzRkMGFlNDczNDNlMjdhN2QwIHJlbGVhc2UzMS1tYWludAorNzY1NjUgMGMxOWJlNDUwZTY3YTAxZWM0YTJkNmYxMjNmN2E0YzdiMGU1OGVmOSByZWxlYXNlMjYtbWFpbnQKKzc2NTY2IGNiODM2MzAxZGI2MDU3ZWRkY2U0MjliMzIwYTBkNDQ0NzBjOTczYmEgcHkzaworNzY1NjcgM2Q3N2Q3YzE2YzkwOTc5NmM3ZjJhZjM3ZWIxZWZiZGY4ODY5NzUyMCByZWxlYXNlMzEtbWFpbnQKKzc2NTY4IDE0ZWU3NWI4NmE1ZjA0MWQ1MzFiY2I0MWU2Mjk0N2JkZWVjZmM3ZDEgbGVnYWN5LXRydW5rCis3NjU2OSA5MzZiNmYwNjU1OTM4YmVjMDQyN2MzOWEyZjI4NjczOTYzM2Q4ODA3IHJlbGVhc2UyNi1tYWludAorNzY1NzAgOWZkOGU5NWI0ZmNlMTdkYjM1NWVmZmMxMTlkMjcxOGNjMjE4MDQzYiBweTNrCis3NjU3MSA4M2M3MDJjMTdlMDIxOGRmOTY1OTJlYjI3YTk3YThiYTYzYzc0N2UwIGxlZ2FjeS10cnVuaworNzY1NzIgOTE2YTNkMzUwNzQxYzdmNmNmZTg4NjA4ODJiNDA5MjliZGFkMWIwYSBweTNrCis3NjU3MyAxNDljMWE3ZTcyYzE1NDcyZjI5YjkyODBkY2Y3OGZjOTU1MzI0YmExIHB5M2sKKzc2NTc0IDRiZWQ3OTZlZTBkNzg2OWFkMmZmMDAxMTdlZWQxY2Q5OGIzYTE3ZGUgcmVsZWFzZTMxLW1haW50Cis3NjU3NSBlMDZjM2Y2MmZjYzk4YzAxMjZhMjJhMGZkZjFiYjY2ZTJhMTVkOTVjIGxlZ2FjeS10cnVuaworNzY1NzYgODMzNTJlZDkyMjlhM2Y2MzBhMjM4MTIzMDdjOGE5NDdlNWZkYTlmNSByZWxlYXNlMjYtbWFpbnQKKzc2NTc3IGIwZmM1NGM1ZDIzNGY3YTQ5MGY5NTUwNDlhZjg3NTA1ZTI3YjI5MjcgcHkzaworNzY1NzggZjJlMWFjNzUwZjExODUzNGVkMDI4NTkxM2VmMzVkMGMxNTU4OTY0OCByZWxlYXNlMzEtbWFpbnQKKzc2NTgzIDkzMGFlZGVkOTAwZGM5ZDdhNzM5OWEzZGQ2ZjIxMzg3ZmM5YWFmNTIgbGVnYWN5LXRydW5rCis3NjU4NCA5ZmI2ZDU0MTRkZDg4MmU4Mzk5NjU0ZWUwZTAwM2Q3YTExYWNjOTY4IHJlbGVhc2UyNi1tYWludAorNzY1ODUgMGVhZjVjOWVkZDcyOGYyN2M5ODgyMzljYmMyMmM5MjM5OTIzZDhhYiBweTNrCis3NjU4NiA5MTVhMDQ0YmU4MzRjYWQyZGQ0YzQ1YjEyZmNkYzg1YTUzOGQ3ZDE3IHB5M2sKKzc2NTg3IGU4ZDU1MGE4OWYwYmExMWE2NTM1ZGI3MWE4ZjMzNGRjZGI0NWEwZGYgcmVsZWFzZTMxLW1haW50Cis3NjU4OCBhOTQ5MjU1ZDQ1MGZiYTE2NmRkMGVhY2FhNGE4ZTA1ZTlkYzc2ZTQ3IGxlZ2FjeS10cnVuaworNzY1ODkgNmNkNDVmNWNhYjU4YTczYzk0MzZiMTY3Mjk0ODFjNGQ1NTA5ZjFiMyByZWxlYXNlMjYtbWFpbnQKKzc2NTkwIGU5NjA2OWExMzI3ZjkzNmI1ZTc4MWY0OTQyMWY0MGYxNTk0ZjY2MTkgcHkzaworNzY1OTEgMjE4YTdlYjQwZDI2ZTM4MzRhMDI1OWE4MTljMThhOGUyNjNjOGZkMyBsZWdhY3ktdHJ1bmsKKzc2NTkyIGQ1MTAxMmZlMDliMzQyNjIwNmQwMjNhZTM4NzU0YzU0YTY1NzU1MWUgcmVsZWFzZTMxLW1haW50Cis3NjU5MyA2YmRlZGUxOGZjODBkZjZkNmI2ZjhiN2E5MGU3NWUwNjViMjljZGRiIHB5M2sKKzc2NTk0IDllNTFhMTQ5OThhMmE2MDFiYmNhMzUzNTkyODc4Mjk1MTdhNjI5OTQgcmVsZWFzZTMxLW1haW50Cis3NjU5NSBmMzdmNmI5YjIyNGIwNzkwNWVkOGUyOGU1ZGJmNGNmNjgwMjIxOWUyIHB5M2sKKzc2NTk2IDc0YWM4YzEyN2E2ZmYxNmVhMDFhZTExZWVhMDg5ZDdmODM1NmFkMDcgcmVsZWFzZTMxLW1haW50Cis3NjU5OSAxZmYyYzNlZGMxM2NlODcyZmIxYmNmNmY2MGQ1ZDIzNzE2ZTU2OGYwIHJlbGVhc2UyNi1tYWludAorNzY2MDAgMjgxNjY1MGQ3Njg4YzMwMzg0ZjczZTk4MTUzZTg3OTZmODgwNGNhYSBsZWdhY3ktdHJ1bmsKKzc2NjAxIDg0ZTNkMzZkYTRjMjcwYzZlZjM2ZDM5OGQyODQ4OWM0N2M4NWQ4MmEgdGFyZWtfc3lzY29uZmlnCis3NjYwMiAwY2Y5OTE1OGZhNjM2MDAxNzI3ZmY4NWRiYzAzZmRhMWMwMzUyOWIzIGxlZ2FjeS10cnVuaworNzY2MDMgMzE1ZTZhZTY0YmVmN2FjZDg1MzllMDg0ZTdmNjg1ZTRkY2M2YjUwMCBsZWdhY3ktdHJ1bmsKKzc2NjA0IGZmMmFlZmM5Nzg4MWYyNTg0NDM1ZmExMTVmYjhjNjM1ODQ2YzFjMzggcmVsZWFzZTI2LW1haW50Cis3NjYwNSBlMzIwZjg4YTY1YzlhY2IzODlmNmI4NGRiOTk5MDkzOGUxY2VkMDVjIGxlZ2FjeS10cnVuaworNzY2MDYgZGRhYjNkYTk0NzNkYjU4NzYyNTNjMGIxN2Y4MmQ1NjAyYzVkYjA2NyByZWxlYXNlMjYtbWFpbnQKKzc2NjA3IDg4OTZjNDg0NzQyM2Q1OGJkYzFiZGQzM2MxYjQyZTFiZGVjNmZhYTYgcHkzaworNzY2MDggMGE2MTM3OTQ0ZTYxYTA3NjdkYzZhNWRmZGZjYmVjNzRmY2E4YTdhNCByZWxlYXNlMzEtbWFpbnQKKzc2NjA5IDY1MzZhMWNkNDdjZDNlZTgxZjU3NWUzOTc0Zjc4NjgzNWE2M2NmN2MgcHkzaworNzY2MjMgZDk5ZWY0NjRlZjMzZmVmNjMwY2E4NzJmZjdmODdmNDUzOTcyZTgyZSBsZWdhY3ktdHJ1bmsKKzc2NjI0IDRkN2NkZjdhNmM3NWRiNWY3N2FmOGJlZmEwMTRlMmZiNTRlZjBlNzggcHkzaworNzY2MjUgMWIyYWZjYzNjY2YzOGE4M2I3MTUzYWJhOGFlZTNjZmYwMGNmOTFiZCBsZWdhY3ktdHJ1bmsKKzc2NjI2IDVkMmM5ZDg4NzdkZGI5YTNhZWIxNTEzZGU2YTUxZGQ0ZjY4NWEwNWIgcHkzaworNzY2MjcgMjgwMzY5Njc3NjAyYzZiZTY5MzZmMDhjNDQ0ZjEyNTg3ZTZiYzg0ZSByZWxlYXNlMzEtbWFpbnQKKzc2NjI4IGNmOWM2NDlkY2M0ZjRmMjE5MTRhYTUwNDA5NDJiODhkODBkZDUxOWIgbGVnYWN5LXRydW5rCis3NjYyOSA4ZjZlZWU0MmY4MTBkY2Q2MzBjYzRjY2JmNjM5MWI0ZGM1ZmNjNWMwIGxlZ2FjeS10cnVuaworNzY2MzAgY2JiNmU5MmMxYTBkZDI1NDE5YjQzNTM5ZjA4MTMxYWQwM2VmNmU3MyByZWxlYXNlMjYtbWFpbnQKKzc2NjMxIGQ5Mzk4YmRkNDEzYTAzMjUzMmE1ZjQzNGJhYmY1Nzk5MDg4M2E5ZDggcHkzaworNzY2MzIgMGZmNDcwMzRjNjkxY2FiM2MyN2I4YjY1NTk4ZmUyODQzZGE0YmE5NSBsZWdhY3ktdHJ1bmsKKzc2NjMzIGQ2OGE2MDA1MmM2NjUwNjVkNzU2MDJlN2MxMTcxZGIzYWViNDI1MzYgcmVsZWFzZTI2LW1haW50Cis3NjYzNCBiNDA1MTJjZWMyZDZjOWYwMzdkMzdlY2JlYjc2N2UzYWViMzNmYjNiIHB5M2sKKzc2NjM1IGFjZmQ1NjE1YjUyYzE0YzgyY2ExNDhjOGUxMDZkYzI0OGY5ZTU4ZDUgcmVsZWFzZTMxLW1haW50Cis3NjYzNiBhNTRjMTk4MDJhY2NjYWZhOThkMWY1Njg0YTg1M2JkOGM2ZmQyNGFlIGxlZ2FjeS10cnVuaworNzY2MzcgZTlkYWMzZWZmMzE3NDNiNTE1MmQ4NzRlMDllODU0YWFkY2E3YTFlNyBweTNrCis3NjY0MCBkN2NjOTAxN2FjNGM2NjAxOTVlMTU0MzMyMjdiZGExNDFlZTAwMTZkIGxlZ2FjeS10cnVuaworNzY2NDEgMGFmODE4MWRhNWNlNTE1MTYxOGNhOWY1ODM3MWIyMzBkZGNiOWViNiBweTNrCis3NjY0MiAyNjJhMmNlYWYwNWYxY2RkNmVlODc2ZDUyZTg4YmEyYjUwNWUyYTdlIGxlZ2FjeS10cnVuaworNzY2NDMgMTVhYzMxOTFmOWJlMDVhNDViZmUwN2U3YmQ2MjVjYTBjNmZlNDI4MyBweTNrCis3NjY0NCA4MTgwOTI1Yzc1YmE1MTljYjQ1NTE5NWNkNDk5Zjc5Yjk0MDRiNDJkIGxlZ2FjeS10cnVuaworNzY2NDUgYjc5ZDA0MjBjMjA0MGQ4MmQ3ZTg2NjdhOTc2NTgyMzcxNjU0ZWJmNSBweTNrCis3NjY0NiA1YzY4MWVjYzk5NjdjNDFkZjllNzdlY2M1NDQ5NzUyMDU3ZjdkMWM1IHB5M2sKKzc2NjQ3IGI2MGYyYjJiOWMwNDU0ZDM0MWVhYmUzNTE2MzJiZTRhYWU0MGE3ZDAgcmVsZWFzZTMxLW1haW50Cis3NjY0OCA3NWUxYjhjMDVmNDNkNGFlNDJkNGFlMGY0OTFmNjU0NWNhY2ExYzQzIGxlZ2FjeS10cnVuaworNzY2NDkgOTE3MDU4ZWVhNDQwMjQ5OWNmZjI2NDgxN2Q1M2RhN2ZlMjEyMGU0MiByZWxlYXNlMjYtbWFpbnQKKzc2NjUwIGZkZjdkMGVjOWQwNDFiNDUxYzViMTYwMWQwOGNiMGVhMmYwNTdlZGUgcHkzaworNzY2NTEgYjVjZDNkMmVjMDI3NmQyNDkwMzgyNjViMGI0ZDY4MTY5MGQ2NTY0MSBsZWdhY3ktdHJ1bmsKKzc2NjUyIDk2OTU0ZTdkZDliNmUyMWM2OGU1NTUwOGY4M2FkMDNmOTY2NGIyNjYgcmVsZWFzZTI2LW1haW50Cis3NjY1MyAxMTQzNGI2MmQ4Y2Q4MDYyZmVkYTE1OGNmZjM0ODBiODRiOTNlYzg5IHB5M2sKKzc2NjQ3IGVmOWY0MzJlNGQzOWRjZDk0MjJjYWFiMzkxOWE2ZWZjNDEzZGUyYWIgcmVsZWFzZTMxLW1haW50Cis3NjY1NSAxZmExODU0MDMxYWEyYTQ2Mjk2NjYzODE1OTQ2NDc1ODZiODc4OWNkIGxlZ2FjeS10cnVuaworNzY2NTYgZjA0MmRiNDM0NjM4MzkyYzkzOTc2NTQ0ZGE4YjdmMzVlYzdkZWE2ZSBweTNrCis3NjY0NyBkMDBlYzI2MGQ2MmFhOWM5YjFjNDA0MWIwM2UzNzZjNWMwMjQzNjgwIHJlbGVhc2UzMS1tYWludAorNzY2NTggYjhlMjkyMzY5ZWE4YjgyY2YxOWU1YzI2NTJlMzg5ZWM2NGFjYmRiYSByZWxlYXNlMzEtbWFpbnQKKzc2NjU5IGQzMWIzMzUwYWFkYmU2MzBlMGEyNjI3YzEyYjNjMGViZDM2ZjViN2UgbGVnYWN5LXRydW5rCis3NjY2MCAxZWUxZmE3YmVjZjJhZDIzZWUyOWIyMWI0MTU3M2JjNDgzZjA3MjQzIHJlbGVhc2UyNi1tYWludAorNzY2NjEgNTk4ZGU4ZTZjNDhiMzQ2YzJlNmZlODM1NjVmYjQ0NzIwMzNmZDMwNSBweTNrCis3NjY2MiA5ZGY0ZDViNTI2MDljZmU0ZGI1YTBjZDc0YmEyM2VlYjQ3ODMwMzRiIHJlbGVhc2UzMS1tYWludAorNzY2NjMgNzMzMTM4ODU4MTU3NGU3ZWJiMzUwYjRjYjI2ZjU3MTMxMjFkNzQ5ZSBweTNrCis3NjY2NCAzZWM2YjUxY2RiZGRiYjcxNjNmM2E5ZDZmZTM2NDE4MjY5YTNlODUxIHJlbGVhc2UzMS1tYWludAorNzY2NjUgMDQwYzM4ZWQyMjUxNWY5NzM0Mjg3MTVhNWYxNDQzZDc1YTg3NmNmYyBsZWdhY3ktdHJ1bmsKKzc2NjY2IGQ1ODdhNGU1YmE1YTU5NDkxZTI1MDA5ZmIzOTFlYzJhOTYzMDczN2MgcmVsZWFzZTI2LW1haW50Cis3NjY2NyA3M2E5MTI1NzAzYzMyYWMyNDYxM2ZjOGY4ZDYxOGJiMWFjMGM3ZGE0IHB5M2sKKzc2NjY4IDU1YzgzMmJkMzIzMzNhMWFmMDAxNzk2ZTljNDU0MDgxZGRkMGIzZmYgbGVnYWN5LXRydW5rCis3NjY2OSBkMzA4MDI5ZTlhZDIyYjViOGZhNDg5MTE0NDY0NzMxMDA0Nzc2M2JjIHJlbGVhc2UyNi1tYWludAorNzY2NzAgMGZlODk4NzVlZGVmMzQ3NmRjMjRhZmUyOWViNTNiMDYwZmIxMDAxMyBweTNrCis3NjY3MSAwMTQ4Zjc2ZDZmY2RmZDlmMjUxOTZhYWEwMzE0YWE4YTczZDFkZmE1IHJlbGVhc2UzMS1tYWludAorNzY2NzIgNmJiNjNiZTcyOTljYjYzY2JlNDIwZDMwOWNiNGNmYmUzMWI0NDIyMyBsZWdhY3ktdHJ1bmsKKzc2NjczIDRkNzQ0NWNhMzA1MTRlZmY5NWNhOTI2NGJjYzZjMzVmN2VjZTU5YWYgbGVnYWN5LXRydW5rCis3NjY3NCBiNDEwN2ViMDBiNDI3MWZiNzNhOWUxYjczNmQ0ZjIzNDYwOTUwNzc4IGxlZ2FjeS10cnVuaworNzY2NzUgYjllOWQ1NDBjOTBkMzEyOTZiNDViMmJmZDFiNTc5MTQ2ODBhYjZiNiBsZWdhY3ktdHJ1bmsKKzc2Njc2IDM2YTBkZDIxYzViNDNkOWFlODY5Y2MzYTU2ZDQwNzdhMDJkYTliOGUgbGVnYWN5LXRydW5rCis3NjY3NyBlMTlkZTk0MzNhNGJmZThjZmEzODZjMWJiODVlMDc0ZWI5ZDA0YzUzIHB5M2sKKzc2Njc5IDI1NTMyYzk5MzJkZmZhN2Q5MmU0Mzc3YjUxZDc1YjZmOWI3ZmU1MzIgbGVnYWN5LXRydW5rCis3NjY4MCBlYWIxMjNkYzEwN2Y2NGRjMmZlMTFmMjczZGVmNzhiMTg0NDRkNDU0IHB5M2sKKzc2NjgxIDFjOTJmYmIzYmFmMjZhYzVmYmVhNWY0NzU0M2FiODc1OWEyZGQyMjUgcHkzaworNzY2ODIgYWQxNDU1NTgyMjZiODdhZWM3MDJmMDk0OGFlNjExOGEzMmZmZDQzNiByZWxlYXNlMzEtbWFpbnQKKzc2NjgzIDY4NTY1ODE3YzE3Zjk1YmU0NDFhYzdjOTA2MmZjNTViMTIyODEyMGMgcmVsZWFzZTMxLW1haW50Cis3NjY4NCA2YTQ4YTA5MWMwZDM4NmM5NDZhYTk0ZjA2ZDZiZGRkOGI5ZDdmNmFiIGxlZ2FjeS10cnVuaworNzY2ODUgMWMyZWNkNTlkNjVhZjk5ZDc1MDQ1MzZlNmJmODE1OTdjZWExMmUzNiByZWxlYXNlMjYtbWFpbnQKKzc2Njg2IDllNzUxNjAxZjUzODI3ZTBlYTdlMzEzMDNmNWY2YWZjNjM5NDBmMGMgcHkzaworNzY2ODcgNTY4NjE4YjVmNmZkNWQ0NTVjZDA4ZGY0YTJiNGRkYTA3ZjI3ZGRmNiByZWxlYXNlMzEtbWFpbnQKKzc2Njg4IGE2YjFlNjk1OTM4MmUzNWY0MGMxOTE1OTdlZDNkYmM4MjgxNDA2YWEgcHkzaworNzY2ODkgZWVhODAzZDIzNWQzNDFjYzViYWFiMGE4N2RmYzdmNzAxMzg4ZTVkMyBsZWdhY3ktdHJ1bmsKKzc2NjkwIGJlMWNiYzE1ZDlmNTFjY2NmYWNjZmE3MDE2NDI2YTc3NjZhYzFlODggbGVnYWN5LXRydW5rCis3NjY5MCBmOWJkYmNjOGQxZThlNmVjOGM0NTgwOWYyYmQ0MDM4ZGJhNDYyYmEyIHB5M2sKKzc2NjkxIDYwN2Y1MThiZDNjZmI4MGIwZmQ2YWM3NDc2YmU1YTE1ODM5ZDA2OTUgbGVnYWN5LXRydW5rCis3NjY5MSBiYWM4ZWEyYjZkYTM1ODg0ZWFlOWFmYzEyOWI3ZWEyYzE5NmViZGY5IHB5M2sKKzc2NjkyIDg5ZjZhNzU0NjJiMjdlZGIxNTEyMGE4ODBmYjZhMDA5NTMwZjdjYzIgbGVnYWN5LXRydW5rCis3NjY5MyA2ZWY0YmNjNGE0NTAyMTY2YjZjODM0YjJiNmIyOWExZWUzMTE1Yzc2IHB5M2sKKzc2Njk0IDU2ZmNlMTg4YzZiZTA3ZWZmOTQ4YmE1NjVjMTMzNmY1Y2IwM2VlYjAgcGVwLTAzODMKKzc2Njk1IGMwZjhlNGEyM2RkZjRiOTQ5NTI0YTg1NWQzYmEzMjJiOGIzNjIwZGEgcGVwLTAzODMKKzc2Njk2IDY4NTUyMmM2ZjMwZmJlMWIxNjUzZmEzYzQyZDdjZGJkNWQxOGVhMjUgcGVwLTAzODQKKzc2Njk3IDljNTk3YjBhNmE5YjcxZjg4MDNmNjRlMzc4YmRhZjRkNDc3MGZjYWYgbGVnYWN5LXRydW5rCis3NjY5OCAzNWYzYTE5YzQyNjVhNzZjODJhOWJmZmYwYzlmZTdmYmE1YjQ4MjY2IHB5M2sKKzc2Njk5IGY1YTQ0N2IzZjI2ZWJmNDk1YmQ1NzFjZjdlOGY1OWE3OTkwNTk2ODEgcmVsZWFzZTMxLW1haW50Cis3NjcwMSA0NTA4MTg2MWVmNzRhZmY4NjhmMDFlNjliYTZhOGJhZmM3NDU3YTFlIGxlZ2FjeS10cnVuaworNzY3MDIgMjVhZWRlNjJmYzE3MmE2Njk4ZWMwMzY2MmQ0MjhjODJjODFmMmRkMiBsZWdhY3ktdHJ1bmsKKzc2NzAzIDI3NTA5NzNlMzg5M2M0M2JhOGIxY2I0YTA1ZGUwZTNiYzNlMDRiM2QgcmVsZWFzZTI2LW1haW50Cis3NjcwNCA5ODg3OWM4ZDUzZjE2NWRjOGM4MDBkOGQ4NGNkZmUxNjAzZjlkYjVmIGxlZ2FjeS10cnVuaworNzY3MDUgNTFjNWM5MTJlYzNlYjQyZTE2OWIwNThmZDU0MmFmYzgxZjg1ODM1NiByZWxlYXNlMjYtbWFpbnQKKzc2NzA2IGQ5YjRmNmVhM2UzOTc1YjNiNDlkODVlZmU2NDY4Y2JmNGZhNjhkMTggcHkzaworNzY3MDcgNzY0N2IxNGVmZTcxZmE5MzY1ZmI0MmUwOTFjZWFlYTlhODM0MmE0NyByZWxlYXNlMzEtbWFpbnQKKzc2NzA4IGRiMjhhZWIyZmI3YTdiYmEyMmM2YjZjNmUxODkyOTMwNjIyOTNlYzUgbGVnYWN5LXRydW5rCis3NjcwOSA0MDc0Njk1NmIzNzkyYjM1Nzg1M2MyMzQ4MjIyZjJiNzEyZmFkOWE5IHJlbGVhc2UyNi1tYWludAorNzY3MTAgNjgzZDVjOTdlNDc2ZGU0OTlmZWNmODZmOTA0YjQ4NjVjNDkyZmFlYiBweTNrCis3NjcxMSA2ZWZiNDZjMmIzYzNhZGRhZTJhNWIzNGI5MDhiYmJlYmFkOGI4OGZlIHJlbGVhc2UzMS1tYWludAorNzY3MTIgMjRmZmIwYTNhZTRiYTkzNDY4N2RmY2M3MGUwMDM0NzQ0MWNmNzdiZSBsZWdhY3ktdHJ1bmsKKzc2NzEzIDQwYzM2MmE1OGU3ZjBhYTEwNDc1YWQxNmZiZTM4ZWNmNjUyNWUwMWUgcHkzaworNzY3MTQgY2YwYzY5YmUwMTFhNTg3Y2MxY2E3N2RjNTQwNzcwMzkyNzNiZjFlZSByZWxlYXNlMzEtbWFpbnQKKzc2NzE1IDgzYTc2MTkzOTk3NTMzYTI3NGQzYjkzMGI3NTg2ODBmMzEyNzdkODIgcmVsZWFzZTI2LW1haW50Cis3NjcxNiA4M2MyYmYzMTkxZDg1YTQ4YTAxYTg0ZTg2MTg0MjllYTZmN2NlMjRjIGxlZ2FjeS10cnVuaworNzY3MTcgNWI4NjgzYTk1ZWFlYzY1ZjAzOWU3OGNkMTY1MzJkZTlkMDUzZDYzZCBweTNrCis3NjcxOCBlNzI4YWU4OWFlNjlkODhjODVkMzA5Njk0YmQwNTZmYzJiZDNmNjZhIGxlZ2FjeS10cnVuaworNzY3MTkgNWU4Yjc0NDlmOTYxNWMzMDdkNWZiMjFjYjZmMWYxMmQ2MGIyYWZiNCBweTNrCis3NjcyMCA2YzY0MjU1NjM5MTgyODI4YjY2MGZhYTEzZWIwMjE3YzQwZmQ4NzE2IGxlZ2FjeS10cnVuaworNzY3MjEgMmM1MmQ0ZDNlNTRhZWQ1YzQ3NmJhMTlmZTQ3MDJiOWJhYjkzNjg5ZCBweTNrCis3NjcyMyBlNjM0NzAzOGRmOTc2ZmNjNDNhMDhkNzBlN2E4YWNmMmVmNWUzZWEwIHB5M2sKKzc2NzI0IGNjYzU0MDZjYjM4MWRmYjk1NWY2YmZkZTJiN2JmMDgwNWY2NTY1MmMgcmVsZWFzZTMxLW1haW50Cis3NjcyNSA3MzhiMzliMTJkYzhmMDUwNTVkYmFjNDNjOWU3MDQ1MjMzZWI5YTY1IHB5M2sKKzc2NzI2IGVmZWFiZWU2ZTA2MWFjNDk5M2E0MWNiNzdhMDVhZTY1MzZkMzdmMDIgbGVnYWN5LXRydW5rCis3NjcyNyA3NTBlNzVkOTMwMjE1NTUwZGRmY2E3YTI2NTFjNTg4OTczYWZkZTBlIGxlZ2FjeS10cnVuaworNzY3MjggMGE3NmFiM2E2NzNjNmZkNmUyMGM5MzQ1YjEzMTAwYTc3YzA4MzM0MCBweTNrCis3NjcyOSA4MTYzMDNhMDc3NjI3NzhmZDEyZTVkMDkwZmRkZjliNDYxZDY1OGMxIHB5M2sKKzc2NzMwIDI3M2VmMDlmZTgwNDhlMGQ0Mjk5MTJjMWQwZDE3MzBhMzMyMTdmMmIgcHkzaworNzY3MzEgOGI4YWVlMjFkODVlNmE5MmRlMWYwZDMzZWNmZTE5ZDE5ZjI4YTg1ZSBweTNrCis3NjczMiA4OTc0YWI2ODViYWUwNjQwZTBjZDU2MWZkZWJjZmM1NDAzZDVlNjI0IHB5M2sKKzc2NzMzIDE2NjkxYmM4YjE4OTRjNDg0ZDcyYjhmYTQ4MGNjODZkN2IxODllNTggbGVnYWN5LXRydW5rCis3NjczNCBiYzcxNmQ4ZjQzNDVkNmE0MzlmMjY2ZjY4M2M1YTI0ODRlOTgzOTYxIHJlbGVhc2UzMS1tYWludAorNzY3MzUgYjVhNGFjYmVhYWExNjFhZWYyNTAyNTA3ZTZlOWI1MzNlYzZkMzFjNCByZWxlYXNlMjYtbWFpbnQKKzc2NzM2IDU3YWU1ZDQ0ZTczMWZiYzI0NGE0ZDVlODVjZmQwZGIwODNhOWFlODIgbGVnYWN5LXRydW5rCis3NjczNyA4Mjc2ZDAwZDMxMDBmNWFmNjYxNWM1MjFjMTlkMjZmMTZjNjdjMzE4IGxlZ2FjeS10cnVuaworNzY3MzggOGI2Njg5YzBlNWE2ZTZjNThiOWZmNTNkZDgzZWE2ZWQxNWNkYmQxMCBsZWdhY3ktdHJ1bmsKKzc2NzM5IGIyN2Q5NDYzODllNzY3ZTY0NjcxZTVhNTA2ZWUwMmJkMzBhZjM1ODggcmVsZWFzZTI2LW1haW50Cis3Njc0MCA2MzE2OWNiOWU0OWEwMWYxMWM2NGE4NTM2NTg1ZmY2YTk2MDg0MTVhIGxlZ2FjeS10cnVuaworNzY3NDEgOTJmN2M0ZWU2YWFkZmM4Y2YxMzA0NzEwNjEyYzc3MGI0ZTI2YTRhMCBweTNrCis3Njc0MiA3NTJlODYwOGUxMzFiNzFkYTJmZDFmYWI5Zjc0ZGNjMmZkNjBlMWU1IHJlbGVhc2UyNi1tYWludAorNzY3NDMgYTQ0MDljZjZiNTU2NGE2YmUzZGI0ZjQ5ZTBmZDIyYTQxYWMyN2JlMiByZWxlYXNlMzEtbWFpbnQKKzc2NzQ2IDkyMTFhNWQ3ZDBiNDI0Njg2MTVlNzI3MjRlMzQ3OGQ5ZjY0ZGVjNDQgbGVnYWN5LXRydW5rCis3Njc0NyAzNzRkNGU5YWFiMDUyYjVmZjljNTc4NjAwZjk2Y2Y0ZGU2ODhjOWNkIHJlbGVhc2UyNi1tYWludAorNzY3NDggNmY5YWQwNDE4ZjcwZjE5Njc5OWFhMDMyMGI0OTE1ZTM1MmM1ZGU2NyBweTNrCis3Njc0OSA0ZWUyMjY4OTBiNTk5MDlkNzhjMDk3MDlkYzI5MjcxOWMxYjczZTI4IHJlbGVhc2UzMS1tYWludAorNzY3NTAgZDI4ZmJhYzM3ZTIwMmY1N2ZjMTgyNzRkZTZjMzgxNzQ3ODlhZDAyMSBsZWdhY3ktdHJ1bmsKKzc2NzUxIGUyOWE0NTMzMWRlYThiNTQ4YjNlZDM2MmVlNzhlYTE4NzAzMGExMmMgcmVsZWFzZTI2LW1haW50Cis3Njc1MiA2NmZiMWUyNzYyZDM0MjNkN2YzYTk2YTdiYjhkNTFhNzg2OGQ2YmU1IHB5M2sKKzc2NzUzIDc1NjJlMzc2ZDliNTUxZTdhM2Q1MGY4MzcwNjc5ZTcwMGRlZWRjMTYgcmVsZWFzZTMxLW1haW50Cis3Njc1NCBhZTkzOTYyNjA4MzU5ZWRiYzI5MzFkOGNiMWRjNDc3OTk4ZmM0OGU4IGxlZ2FjeS10cnVuaworNzY3NTQgYTZiZjA3ZmZmNmZjYmZlOGQ0OTA1MTg2NzZkOGJiZjcyYWJiMjJmNiByZWxlYXNlMjQtbWFpbnQKKzc2NzU0IDBjZDdhYzhjNmJiM2JiY2RlMDJkZDcwYmE5ZTJjOTU5ZGVkNmU3MjkgcmVsZWFzZTI2LW1haW50Cis3Njc1NCAxOWI0ZTFmNjQ0M2UxOTk5MzMwYmJhMzBiZmZlMDU5NGVjZGIxMzViIHJlbGVhc2UyNS1tYWludAorNzY3NTQgOWI2YjFjMWMxYjMzMGYxMjE5MTQ0YmM1NGI5YzNjNjczODI4ZmU0MCBweTNrCis3Njc1NSBjYjIyZWFlZTg2YzkwYzBmYTMyMjlmZGRiZTBiNTE2MGQ0ZGU5Mjg1IGxlZ2FjeS10cnVuaworNzY3NTYgOWI4M2JmZWZjNWU3ZjZmYWVlNDg1M2FmOWNmNGEyOWZhZTMxNmRlNiByZWxlYXNlMjQtbWFpbnQKKzc2NzU2IGJiYWI2MDJkYTExNDlhNjk3MmI3NTY2N2Y5MTUwYzQxMzkzNWMzYzAgcmVsZWFzZTI2LW1haW50Cis3Njc1NiBlNzAwNGRhMjlmNTEyZGRiNDYzYmQ0NzFlN2RhZTE3ODdhN2Q5NTQxIHJlbGVhc2UyNS1tYWludAorNzY3NTYgMzc4YmI3MDViZTkwNGJiMmRkOGRjYTRiN2Y0MjRmZGY1MmVhNjU5MSBweTNrCis3Njc1NyA3Y2I3M2U3YzE3NmQzMGNkN2I3MzlkOWNhOWJlMmU0NjU5YzAxMDBkIHB5M2sKKzc2NzU4IDE2Y2QyMWJhMjY4YTQ5NjlkZmFjYzY3MjA0MmE0ZTkxNjkyZDRmNzEgcmVsZWFzZTMxLW1haW50Cis3Njc1OSBhZWU4ZWI3ZjVmMDIxZTYyOGEyMGI1N2NjNTFmYzdkN2JlNGVjZDk1IHJlbGVhc2UyNi1tYWludAorNzY3NjEgMjU2ZTlmMDBkMDYxZWY4ZDU0NjRlNzBjYTkxZThlNjRjM2Q4M2VlYyByZWxlYXNlMjYtbWFpbnQKKzc2NzYyIDRkNTFhYTU3MmU4YzlhYmU5ZjllNmI5NjVmYjZmNDMyYTk3ZWMyNDYgcmVsZWFzZTMxLW1haW50Cis3Njc2MyAyZmZkMTlhMjI0ZDQxZmE0NjMwZTQ0M2VhZGI1NGE4NGFmN2ViZWFiIGxlZ2FjeS10cnVuaworNzY3NjQgZDk3ODU5MDljM2E3MmI3NTZkZWYyNjk2ZDgxZjE2MGQ0YmMxM2MwOCBweTNrCis3Njc2NSA3OWUwZGJiNmM0Yjg4Yzg2NDE3ZmU2OTlkZGZmY2I3N2Q3YThkN2EyIHJlbGVhc2UzMS1tYWludAorNzY3NjYgODY5MGE3ZWZmODJhMWUzZDhhZDU3ZDBkMGQ3YzFiODViODYzOWQ4MCByZWxlYXNlMjYtbWFpbnQKKzc2NzcwIGFkOTE3YjhmZDY0Y2Y2MDE0NzIxM2NkODc4ZWU1ZWUzZTE4OGI4ZGYgcHkzaworNzY3NzEgYjdlYzRhZmNmYzNmMGJkZjg4MGIzNWIxYmYzNTNlOWQyMjg0ZjYzNyBweTNrCis3Njc3MiA3M2E2YjliMDU0M2Y0YzgwMTMxNTI1MmYwZTIwOTE3ZTAxMzE0M2ViIHJlbGVhc2UzMS1tYWludAorNzY3NzMgODA0ODU2OWViNTNmNWY3MWUxMjVlODI3YThjY2IxNDQ1NDEzYzhhZiBweTNrCis3Njc3NCAyMGI3ZGViNTNkNGU1OGIyOTRkNjhmOWU2ZDhlNWY1ZTZlYWU5YzMwIGxlZ2FjeS10cnVuaworNzY3NzUgMmI5MzRkNDY2OTkzZGQxYjcxYzhjYWEzMDk0MTJmODc5M2RhZWU3NSByZWxlYXNlMjYtbWFpbnQKKzc2Nzc2IDA4N2ZlNWZhMTEzYzFmZDEwZDliNTQ3NzliYjNhYThhYTkwYzY0NzMgcHkzaworNzY3NzcgZDhjNWUzODUxNWI2Y2RjNTIzMDk1NWNiMTkwMDI5MjA1Y2ZiY2ExNSBweTNrCis3Njc3OCAxNTU4ZGM2OWFhY2YyNmQ4NjBlYjdlZmM2Y2Y2MzM2NmM5ZTU3YjU4IHJlbGVhc2UzMS1tYWludAorNzY3NzkgYTc2OWE5YjM0ZmJjMmM1YWNhMmFjNzlkYzZjZWZjMDBjNWRjMmQ4YSBweTNrCis3Njc4MCA0OTM3ODBlYTM1Y2Y4MjFhYTdhODM0ZDI1MDYxYzExNWJkOGQ1YTY0IGxlZ2FjeS10cnVuaworNzY3ODEgZWQyYjY4ODNmYzk2NzM0YjFiYzE1MzdmMzMyZWNmMGNjZjFjNjM5OSByZWxlYXNlMjYtbWFpbnQKKzc2NzgyIDQ2YzIyOTc0MmM2NDIxM2ZmMGQ4YjRkNzRkMGEyOTRmZDlkNDdhNTggcHkzaworNzY3ODMgOGM0N2Q3ZDJhMDIzYjUxOTEyY2U5ZjJkZGQ0YzgzY2FjNzNkZDk4MiByZWxlYXNlMzEtbWFpbnQKKzc2Nzg1IDExNDIzNzE5YmFiYjQwNDVlOGUwY2U0YWRjZjQ2MmNjYTNhY2NkNWMgbGVnYWN5LXRydW5rCis3Njc4NiA0NjQ4NTFiZjIyZmRlYjUwMDc3ZTE0YTBhZTI4ZjNmZWMzNTJkZDEwIHJlbGVhc2UyNi1tYWludAorNzY3ODcgMmZkY2Q3M2MzMmFhYmI5MjZlNTA5ZmYzMjEyMDgzYWMwN2VlZjdjYSBweTNrCis3Njc4OCA1NDgzMzVjYjAwN2IxZmU4NzRmZWVlMGYyNGRjMzE0ZjE2OWU4Njg4IHB5M2sKKzc2Nzg5IDRhOWU0M2EzYjk4NTMzYWE3MDUwYzEyNGQzOTg3MGIwYTgxYWNkNWEgcHkzaworNzY3OTAgYzkxNWZmNTkxYTJmMzM0MWQ4YzgyYmFhYmJkYTBjZTZjZDQyNGNkYyByZWxlYXNlMzEtbWFpbnQKKzc2NzkxIDE2Y2VkZGU5YWYwMDkwNGM0NTBlMmQwYjlhYmIzYjFhYTgyYjE1MDMgbGVnYWN5LXRydW5rCis3Njc5MiBjNzA4N2VhMWMyMWRkZDNhM2VkNjExZTFiOTQ1Yzg5MzI5MGFmNzA5IHJlbGVhc2UyNi1tYWludAorNzY3OTMgZTdjOTRjYjcyNjc4OTkxYmFiN2JhNTI1YzBiOGRiYjAzNTkxMzY1OSBweTNrCis3Njc5NCBjYjI2Mjk5ZTBlNTI3Yjg4ZDVkM2Q0OTY5NWVjNDM4ODZiNjUwZWJhIGxlZ2FjeS10cnVuaworNzY3OTUgYzJlOTRlZjBkN2U1ODU3NzJmZWI2Zjg1ZGIzMmNkNmEzOWM3MTQwNCBweTNrCis3Njc5NiAwZGJlY2NkN2UwZTZmYWVkZDFmZDJiNjY3ZTcxZWVlMGRiNjJjM2IwIHJlbGVhc2UyNi1tYWludAorNzY3OTcgNDJlMzExYTQ3NmU4MGIxMDRiZjE2NTE0MTY1ZWFlNTAzMmYwMjdjYyBweTNrCis3Njc5OCAyMTVkZGZmMTk5YzFiNjdjZTc4MmVjNzQ2ZTE5MTY0NmY4OWQxNTRkIGxlZ2FjeS10cnVuaworNzY3OTkgMjdjNjNkNjUyNjIwOWE3YjgyYjgwMzUwZTNkZjk1YWI4NGVjNjczNiBsZWdhY3ktdHJ1bmsKKzc2ODAwIDEzOTJlMzZhZjFiMjZhMjNiMDdlMGMxY2Q5YWZiNjJjYjdiMmU2ZGMgcHkzaworNzY4MDEgNjA1Mjc1MWEwNGM4MjMyNzJhZWEzZWYxOWJkYWE4M2E2ZDFkYzAxMiByZWxlYXNlMjYtbWFpbnQKKzc2ODAyIGE3NGUwNGZjOTNlYjlkY2ZjZDMzMDI1OTkzMGQwY2M2ODU3YzQ1NzUgcmVsZWFzZTMxLW1haW50Cis3NjgwMyA2NTRjNjg1MzY5NzUxNDY1MjRhYmE0YzVlYWU5NWQxYjQyZGM2Y2UxIHJlbGVhc2UyNi1tYWludAorNzY4MDQgN2NjZDIyOGI4OTVjYzlmMDhkYjU1YzJlMGRjNGI5Zjc4YWI3NTBiMSBsZWdhY3ktdHJ1bmsKKzc2ODA1IDU0Zjg0NTU4YWQyYjJmNjcxMTA3NzQ2NDMxZmVkMmNmMGEwZDZkMDkgbGVnYWN5LXRydW5rCis3NjgwNiAyNGE4YTI5YzhhNGEwNDZlNjQ0ZjNmYTNmYjA2YzNhMjJjMTRkOWE1IHB5M2sKKzc2ODA3IDNhN2Q1NDA0M2FiYThlZjk4MDQ2OWRmMjkzMTQ4MWI0OWU2NmU5MWYgbGVnYWN5LXRydW5rCis3NjgwOCAxMjA2M2E3YjZhMmEyOWVkYmJkODhlNjgzMTUwMDM2OWM2YjQ4ZDFmIHB5M2sKKzc2ODA5IDM1ZGY2Nzc5ODljYjk1NTEwNGEyYjEwYmJmMTg4ZTM5Njk1YjI4ODggcmVsZWFzZTMxLW1haW50Cis3NjgxMCBmYzcwYzhkNzQzZGI3MmU2YTlkMmI4ZjQ4NWZmZTgxY2M4MDMyZGI1IHB5M2sKKzc2ODExIDYyMTA2YjZmNTU5NmM4OTNjNzZhNDg3N2M5YzRhZTRlOWEyNGI3MjggcmVsZWFzZTMxLW1haW50Cis3NjgxMiA3YzQyMTI0NGU2ZWE4ZjBkMzIzYmQwMzU1ZjRmNWQ5NTkyYWQ1ZDVhIHB5M2sKKzc2ODEzIDUzNmU0NmVkMTBhY2Y0MzYyMDA3YWYwY2YyMDhmNmYxZGJmODNjNjYgbGVnYWN5LXRydW5rCis3NjgxNCBiM2EzNjQxOTJjMGFkOTdjOGMzMDA2NDI4OGVjMDFlMzA3N2U2YWE0IHJlbGVhc2UzMS1tYWludAorNzY4MTUgYmM5MzQwOThjYWExMDFlMTgxOTk5NWUzNzFlMjU3YTMyYTczY2EyYiBweTNrCis3NjgxNiAwNTZmZmI4ZTE3YjNmNTRmMDk2MDZhM2ZmMDM3NjJhNzNjNWQyMjYxIHJlbGVhc2UyNi1tYWludAorNzY4MTcgZGQ1MzkxZDRiYjY4MGQ0Zjg0NDljODBkMmNkOWRhOTk4MDI2ZmU2MSByZWxlYXNlMzEtbWFpbnQKKzc2ODE4IDZiMjg1MjIxOTdkYjEwZTQ0ZDhjZTk2M2Q5OGUzODA4N2MxOTczMDggcmVsZWFzZTMxLW1haW50Cis3NjgxOSA5ZjM1N2M5NmYyNDZlODg0MDU0Mjc4NmRjZjBlNGZjYTBhNjVlNDFmIGxlZ2FjeS10cnVuaworNzY4MjAgNzJlZjNkYjVjNmIzN2IyODE0N2MxNjBkMDRkNTgxNGEzNzZmZGE2YSBweTNrCis3NjgyMSBlNWYyMDEzYjI5YTE5N2UxY2Y4YjNhZGYzZjEwNjllYjIzNWE1ZjI4IHJlbGVhc2UzMS1tYWludAorNzY4MjIgNmUxMzFlMDcxMzEwNWQwOWJhZDM0NGI4YzE1ZmVjYTcwOTA0NjhkYSBsZWdhY3ktdHJ1bmsKKzc2ODIzIGRhMWZjZTU0MDg4NWUxZDc1YWQ2YWNjYTQ3NTYyMjRlMjRkZDE4ZmMgcHkzaworNzY4MjQgNDBmM2I4YjgzY2M2YTNlOWNiYTVlYjRkZDM2YmI1ODI3M2U0MDY3NSBsZWdhY3ktdHJ1bmsKKzc2ODI1IDc3MDVhYzIxOGM4NzBiNTE1ZjNhNDBjYWI5NDg3OGNhNWVmM2QzOGIgcHkzaworNzY4MjYgYzBjODYxZDM4YzRmZGFlZjZiYWQ4ZWM0YTEwNDg0NTk0NTIxMWQ0MSBsZWdhY3ktdHJ1bmsKKzc2ODI3IDM1NDY3NzliMjFjNzA4M2U1Mjg0ZDQ5N2FhNWQ5OWYzYWNkZWI2YjIgcmVsZWFzZTI2LW1haW50Cis3NjgyOCA2ODI0OWVkODgwOWU4MTMzYzgzYTQ2Y2JlOTdkZGExMmFiNGE0YTcwIHB5M2sKKzc2ODI5IGJjNTVmNWQ1MGRlYzg3MGE5NDY1NzBkODIzYzY2YTAxM2M2NTk0MDMgcmVsZWFzZTMxLW1haW50Cis3NjgzMCA1MTAzZjY4Y2NhNjkwOTVlNzBjZDczNjQyYjAyZDhkNDFiNzMxZGMyIGxlZ2FjeS10cnVuaworNzY4MzEgMmI4ZjQ4NWIwZDAzOTdlMTI1MDJhM2M5MzA2MzIzNzBiYTdjZmY2NiBsZWdhY3ktdHJ1bmsKKzc2ODMyIDc2YmQ1YmRjZWNjZGZkOTY2ZWMyYjhiMGMzNjc2ZjFiMTA1YmY2MWEgcHkzaworNzY4MzMgZDJlMTQ2NTNhNDNjOTk1YzdmNjIyYzQxNTg1ZGVlZmVjODI5M2VlMiByZWxlYXNlMjYtbWFpbnQKKzc2ODM0IGQ4OTlmMjhkYmI4ZTk3YzIxMDk2MmY4MDBmOTM5NjQwNjI1YzM1OTIgcHkzaworNzY4MzUgMGVlZWE3NjU2YzIyZjAzMGVkMDFkNWYwM2NkZWE5NjIwZjI4ZDY1ZSByZWxlYXNlMzEtbWFpbnQKKzc2ODM2IDQ5YzY4YTJiMDU4NTJjNTQ5MTVjYWJjOTI3ZWE4M2M0NzRkZWEzZGYgcHkzaworNzY4MzcgYmMwYTZlNGNlMWIwYmJmMWUzOGQ2NmQzOTAyYTE1YjdiY2IyYWViYSByZWxlYXNlMjYtbWFpbnQKKzc2ODM4IDkxOWUyMTQyNzI2ZWZlMmJhMGJkMTU1NDQwNDc4ODBkMmE3YjdhMDAgcmVsZWFzZTMxLW1haW50Cis3Njg0MCBmYTRmMjNiMTgyZGU2NzkxYWJmZjg3YTU2MzQzN2IzNjYwMDI2ZTJmIGxlZ2FjeS10cnVuaworNzY4NDIgMTU5MmU4OTUxYjJiZDM1NDQ0NGI5ODgwZTIzNmM3MjA0YmRlYzhmMiByZWxlYXNlMjYtbWFpbnQKKzc2ODQzIDMyOWVmMjk0Y2MyZGI1NmQ0MmQ4MmQ4MjA5YzcxNmIyMDY2NGY3OGIgcHkzaworNzY4NDQgZTljZWJiZTlkZTVjMzFhZjkzMGMwYzFmOGNiNjhkYTYyYTRkMTk3MSByZWxlYXNlMzEtbWFpbnQKKzc2ODQ1IDk2MGU5ZTg0Y2E1OTc1NWM2YjVkZGFkMmU2OWRlMzcwMjE0Njc0YzEgcHkzaworNzY4NDYgN2MzYzAwZTc2YzI0ODhiNjZlOWRjMjE1M2RlNzQ4MTJhYTczNmQzZSByZWxlYXNlMzEtbWFpbnQKKzc2ODQ3IDY2NjQwZmM2MDdjYTA2MzU1ODhkNjA1MmY5YmNhNjUwOWNiYjcyMTIgbGVnYWN5LXRydW5rCis3Njg0OCBkODYyMDAwZjFiMDE1NTNmOTdlMjY3NmRjNjA0MzA4MzhlMGFhZjcwIHJlbGVhc2UyNi1tYWludAorNzY4NDkgMjRiNjg1MzE4NjMzYjNhM2UyOTM0ZWIxMGVkMmE4YTM4ZGEzYWI5OCBsZWdhY3ktdHJ1bmsKKzc2ODUwIGU1MGU0OWQ2MWZlYTVmMzQzOTBiMmI5OTdmODQ5YmZhY2NiMjJjOWIgcHkzaworNzY4NTEgYTliNmYyN2QxZTI5MGVjOTdjYzE1ZDU5ZTFmNTRiYzZjZWNhYzNkMSBsZWdhY3ktdHJ1bmsKKzc2ODUyIGMyZTRjZmJiMzk4Y2I4NWYxMWIzM2ZjZWY0ODVjODUzYjE4NTgxNmIgbGVnYWN5LXRydW5rCis3Njg1MyA5NDI4MjNkZGQ4MThmYzM4OTJiMTg4MGNhMzczYTBlNDM2ZmQ5MGQyIHJlbGVhc2UyNi1tYWludAorNzY4NTQgOTdhYmQ3YWFiYWRjMjhlMjg4MzRkYjYzZWY0OGUzMWZhNWFiMGEyZiByZWxlYXNlMjYtbWFpbnQKKzc2ODU1IDdlYjA1MGMwZTY1NDY3YzBkMWVmYTA5MTM5OTM4ZWRmOWIwMGFiNDkgcHkzaworNzY4NTYgMmJkMGYzOTE1OTM4NDBjNzYxYWJhYjk5Zjk2MDE5OGY3ZjRkZDI2NiBsZWdhY3ktdHJ1bmsKKzc2ODU3IDlmZTE1YzFmOTljYzliMGM5ZjJlY2FiMGYxNzIzNjBjNjk3ZDNhODggcHkzaworNzY4NTggNGZjYmUwZWE5YjMxNzgxMzg1YzU3NjU0NzQ4NzlkNWIyZjMxYTU4MyByZWxlYXNlMjYtbWFpbnQKKzc2ODU5IGJmNjljM2YyYjc3OGU0MDNjNDVlNTQ4M2FmNmI0YjlmZDU2YWU4M2YgcmVsZWFzZTMxLW1haW50Cis3Njg2MSBiMjA2YWQ4Y2Y1YmYyZTQ0NzVlNTZmMWZjODlmNzczZTZiYTQ5OTljIGxlZ2FjeS10cnVuaworNzY4NjIgMjJhMWVhOTBmYWE2MTc3Mzc2Njk5YTQ0NDYzOGRmZGM3NmIxODhjNyByZWxlYXNlMjYtbWFpbnQKKzc2ODYzIGI0NWNhMTFiOWEzZWM3NDhlYTRkYzBiNzU0ZmI1ZjkyNDA5NDRkMjEgcHkzaworNzY4NjQgNTRhNTAyZGIzYjhjZTBkOTNkY2ZhNmYzNjg5N2JjMWI0NzY3OTI4YSByZWxlYXNlMzEtbWFpbnQKKzc2ODY1IGIzNTZlZDk1NjRlNjhjMmMyMjBkOGUyMGFhN2QxYzY0YjZhNzE1MmQgbGVnYWN5LXRydW5rCis3Njg2NiAwYTFjMzljNWYxYjljOWU0MzEwMGJlMmNlYmIyNDZhYzJmMzBhMjczIHJlbGVhc2UyNi1tYWludAorNzY4NjcgYjE4OTY2MjBjMjk2ZDJiZjJjYWY4Yzc3MzRlZWE3ZmE0YmY0ZTJhNSBweTNrCis3Njg2OCBiMTNmNzE1MzlhYWMwMGE2ZGNhNGI4MWQ5YzZkYmVhMmMxN2VjM2NkIHJlbGVhc2UzMS1tYWludAorNzY4NjkgNjJhZmNmYTNmZTE4OGI3YjdhNDhmMzU4NTZjYWY2MWQ3NTVjMDg1OCBsZWdhY3ktdHJ1bmsKKzc2ODcwIGJiNjY0ZDIxOTM5YjY4OGRmYWZkNDBiNDk5NmM1NmEyYmEwYWMzNDkgdGFyZWtfc3lzY29uZmlnCis3Njg3NCBlMjZlZThkZGQyOWQxM2M3MDlhMTdiYWRlOTBjOTY5NDU4NTRkNDY4IHJlbGVhc2UyNi1tYWludAorNzY4NzUgNTFkMzdlZjQzZTFlOWRlNTgxM2M0ZjM4YjYyNGQzNTBmMGFhMGE1OSBweTNrCis3Njg3NiAwZDM5ZGFiMDU2MjJlN2IxZTMxYWNmM2I1YjcwODlmYTQ3ZGFlMGMyIHJlbGVhc2UzMS1tYWludAorNzY4NzcgMDE5NDkxYjI2YjM2Y2ZlNzAxOGJmNGQyMTNhNTIxZDkwY2NhODU4NiByZWxlYXNlMjYtbWFpbnQKKzc2ODc4IGQzNTBhZmMzMzdkYzY0YzQ3Y2ZhYzc4OTQ1ZmQ4OTI4Y2FlMjljYTYgbGVnYWN5LXRydW5rCis3Njg3OSAxZTgxNjRiNWYzNmRiYWYyYTU5ZTljMGYyYjFjYzFhZjhhYjM3MjIwIHB5M2sKKzc2ODgwIGU1ZGY5YTFkYWI2YTA4M2I1NWU2MGFiMTY4MzFjNGRiODE4ZDI0ZWIgcmVsZWFzZTI2LW1haW50Cis3Njg4MSA2NGY1ZjM3NWQwNzNlYzYyOWE4M2UzZDlhNDg4ZTRhMmRiMDJmYWY0IHJlbGVhc2UzMS1tYWludAorNzY4ODIgNzY1MjMzNDZlMjBkNzZkNWE5ZjM0NDA0Y2I3OWUzNmU3ZWIxMDg2ZCBsZWdhY3ktdHJ1bmsKKzc2ODgzIGQxMDZiYTYxMjZhMThlYzBiOTEwZGIzZmYwZTUzMDY2ZjVjNDk5YzAgbGVnYWN5LXRydW5rCis3Njg4NCA3MjM0NjBiOTBhZGQxNGFjMDA0YjQ1NTQzZWViNTIxOTEwMzdmZDYyIHB5M2sKKzc2ODg1IDBlZWM2MzNlZjBlMzIwZTI3NzkzZDhjYjQ2NGQ4M2RjNjVmMWJjOWIgcHkzaworNzY4ODYgOTYxM2VjNDFhZWFhYTA1NjYyMmZkOTVhZmIxNjFlZjc0MTllMjk3ZSBsZWdhY3ktdHJ1bmsKKzc2ODg3IGEzNDlkYmVhYmFlZTVhMmZkNjFmZDYwYWI4NjY3ZjQ0OTdkMTIzOTMgcHkzaworNzY4ODggNWIzNzU4ZWU0MzU2NmY5OTNiYjhlYjA3NGI3ZTA1ZmJjMmZjMjI2NyBweTNrCis3Njg4OSAzNjIxOGI2ODFkOWVkYjE2N2UzMTg3ZjI3YTExODRjOTExYzE4MjVjIHB5M2sKKzc2ODkwIGRkZDFkYjVkMmZlMDBlNjg5YmMxNTZmYzczYjBjZDg3OGE1MWJkYTYgcHkzaworNzY4OTEgMjYyMTMwZDcwMzA2Y2JjYmMxMjhhNDA0MjQyYmY4YTBkOWM2OTNiNiBsZWdhY3ktdHJ1bmsKKzc2ODkyIGI4Y2E2MWQ2ZTI2MjNhNWNmMDJlMDgzNWIyMTlmOTc5NzFjODM0ZjIgbGVnYWN5LXRydW5rCis3Njg5MyAyZDc1ZGE2NWQyOTBlNWRlNWQ5NDA2OWI1MDE4ZjE4ZWM3NDczZTdmIHB5M2sKKzc2ODk0IGFlZWYyZjI3ZjlmMGNmNmM5YTU0MWVlMjk3YzBiYTQyNDdlYjE3NDcgcmVsZWFzZTMxLW1haW50Cis3Njg5NSA3YmFhNTViNmU4YzkxODhkMDI4OTQzYjk4NjFmZmM4ZjJjNWI0ZDhhIHB5M2sKKzc2ODk2IDEwMTMyMDg5OTA0MTdmNGVlMGJhMGExN2VmMTJiNzA1YTM1MmIyYzcgbGVnYWN5LXRydW5rCis3Njg5NyA2ZDQ3YjI0OTQ3MTM3ZDFlMWJhMTg2OTI3ZTA0MWI3YWUzZmFiMzA1IHJlbGVhc2UyNi1tYWludAorNzY4OTggNzdlMjMxMzEzNWRkOWJhMDE4YmE2OWU2OGFiZGE5M2M2MDNiZWY2NyBsZWdhY3ktdHJ1bmsKKzc2ODk5IDliODQ3MDk4Y2JmOTMwNmYzNGNiMGJmZWYwZTkxZGViZGM2MzU0MDkgcmVsZWFzZTI2LW1haW50Cis3NjkwMCAxOGViMDA5MTRhZWU1YmFjYTk4Y2QyODQ1ZWVjYjU1ODFkODY4ODFlIHB5M2sKKzc2OTAxIDZmOWMwNzQ2ZjFlMjA1MDY4YTgzNmE5NGFiMDNiMmU1NjE5OWY1ZmIgcmVsZWFzZTMxLW1haW50Cis3NjkwMiBhMDg4NDBjZTg4ZDM0YzFmMDM3OWRmYTlhMmY4NTkxM2E5YTA4YTlkIHB5M2sKKzc2OTAzIGVkNGQ1Y2Q0N2VlOTYxMDIwN2M0YzBkNWU5MTY3MzQyMTRhYjU0NjQgcmVsZWFzZTMxLW1haW50Cis3NjkwNCBmN2Y1ZTFkMjdlMDYzMDJlNTUzMmZlMWRiYzFiOWFjMWE0OGYwNGNlIGxlZ2FjeS10cnVuaworNzY5MDUgODk5OTY3NTVjZjM5ZTcwYmM0NmU3NGM4NTM4OTYzZWI5NzBjMzNmOCByZWxlYXNlMjYtbWFpbnQKKzc2OTA2IGE0NmRkOGRhM2MzMDgyN2MxMTAxOGZlMGE2MTBkOTg2ODFiMDliZjAgcHkzaworNzY5MDcgZTIzZjVlYzkzMzE1ODU3ZDcyMjliN2JkMmQ2YjFiNDk3MDI4NjVmMiByZWxlYXNlMzEtbWFpbnQKKzc2OTA4IDEwOTcwZjY0YmEzMzFiMTg5YmQ4ZTk1NDJmOTU5MTMyM2RkMDZjZjMgbGVnYWN5LXRydW5rCis3NjkwOSA3MGNjMjg4ZjkxOWUxN2VhNjAyMzYzOWE5NTMyMmU3NDY2M2JhZDZkIHJlbGVhc2UyNi1tYWludAorNzY5MTAgNzI0YTBkYTg1YzQyY2FlNzkwODZiZDc4NDlkNmU4OWZmZDkxODAyMiBweTNrCis3NjkxMSBkYzFhYWRmOWZhNGEzYzZjZTI0NjAwZTdkZDZiZGQ2Mjc1MzliNGI5IHJlbGVhc2UzMS1tYWludAorNzY5MTIgOWM5NTc1MmVkZTEyNTNhOTMyMGZkY2RjNzdlMTRlZWQzZWFmOTU3NSBsZWdhY3ktdHJ1bmsKKzc2OTEzIDUzMWIxMWE2YTEyNTVjZGVhZjRkYTA0YjRjNmVhZGRiOTc1NWZjZDIgcHkzaworNzY5MTQgZWJlYjJlNzc2M2Y1YTNhNTgzYmU1ZTc4YjUwYjA4YzE3NWU0Y2UyMyBweTNrCis3NjkxNSBlZDEzMTJjZGI5YjIwYTk5ZjA0MzE3ZTVjMWQ5MTBmNzcxNjc5ODE5IHJlbGVhc2UzMS1tYWludAorNzY5MTYgNWNjYzVkNDA2OGMxYWVlMjYyODY2NGE0MzQ4NDc5NGUyMDRlZTQ4YiBsZWdhY3ktdHJ1bmsKKzc2OTE3IDUzZjIxZjA4YWYwZDQ0Yzc3NGQ0Y2Y4MjFjZTIxNjNlMDJlOGQzYTUgcHkzaworNzY5MTggZDUxNTBiMjkzNGZhNjBkMzc0MWJmNTM2MWNhNTI5MjA2ODcyN2ExOCByZWxlYXNlMjYtbWFpbnQKKzc2OTE5IDZmNjAwZTkyYTBmNTI3ZGE2ZTVmN2IyYTc5NzhiM2FkOGQxMmZlNDMgcmVsZWFzZTMxLW1haW50Cis3NjkyMCA4OTZiZjQ5NjI4YWJmZDNiMGZkODg1YzQ3YjgxZDYwMjk1YmZkOGNkIGxlZ2FjeS10cnVuaworNzY5MjEgY2NhMDk3ZWEyN2I5YzFkODY4M2ZlNDJiYjdhMjNiNTJkMTRlMjljOSBweTNrCis3NjkyMiBlOWRhODEyZjRmZmY0MzE0NDIyOWUxNDRmZWQ4MTlkZWU2NjU2N2JhIHB5M2sKKzc2OTIzIDIwODlkOWMxYWUxM2UxYjNiYTBkNzQ4MzZjOWZlZTkzOTVhNjk3OTcgcHkzaworNzY5MjQgOWU0YzkwMWYwMDkzY2ZmMDRjN2M2OGVkZmYzZjE1ZjUyNWRiMjFlNSBsZWdhY3ktdHJ1bmsKKzc2OTI1IGQ4OTBjOGZmYWQwMmY3YzAzZjIyODA4ZTU5OGZiMWZkYmZjNTc0NjUgbGVnYWN5LXRydW5rCis3NjkyNiBjOWE1YjNhNDYwZmY2M2ZkNzUwZTI2NGM1OTY4Y2RiNjdlZGYyYjA2IHB5M2sKKzc2OTI3IDY1MGIzMjY0MDNjZDI2YmY1ZjJlNzk1MzA4OTE5ZjA4MDhmNjZjOTkgbGVnYWN5LXRydW5rCis3NjkyOCAxZjhiMzYzMjAyMThiODQ0NTJlNDQzMDAwZDg3YTcyMjk4Y2M1OGJlIHB5M2sKKzc2OTI5IDc4NGJkYzdiMTlhYWYzYTFjY2ZlYmU5M2MyZDcwNzc1YTNjMmM2MDMgcmVsZWFzZTI2LW1haW50Cis3NjkzMCA3OTQxYTlmODY1YzIyODNjM2MzYzEyZTczMDIxMzA5MWFlY2M3ZGMxIGxlZ2FjeS10cnVuaworNzY5MzEgNmQ3NDY0ZGJiNzE0YjE0ZWE3YzJlMTNiYzI4YTU3YTM4ZGFiODBkMiBweTNrCis3NjkzMiAzOTE0OWQyMjVlYzdhMTUyM2NlMmE4NTUwMjkwYzM4MGU5ZmU1N2VlIHJlbGVhc2UyNi1tYWludAorNzY5MzMgMDIwNTRhZmEzNjJmMWIzNjRhODk1NmZkMWI1NmFiMWM1NzY2YWEwOCByZWxlYXNlMzEtbWFpbnQKKzc2OTM0IDA0NTg4ZWZmMjVhMTkwOTU4YTM1NzMxNGE4NzNhNjBiZDVjZTE0ODkgbGVnYWN5LXRydW5rCis3NjkzNSAxYzJiM2Y3OTVkMWIyM2UyMTliMDRkYTRhYzgyZjc4YjNhZGQ4YmVhIGxlZ2FjeS10cnVuaworNzY5MzYgMWRhYWMyY2VlZGJmMjVjMjZjYThkMDY3MzljMzM1ZjY4OTk1ODA0NCByZWxlYXNlMjYtbWFpbnQKKzc2OTM3IGNiMDVjY2Q3NTk5NmJjYzAxNjVlMDBlODQyMjFiMmVlOWIxZDM3ZWQgcHkzaworNzY5MzggNTgxMzM3MTQxODljYWE4NTg0M2JmZWU1NGUzMDA4NDg3Y2Q1MTdmZSByZWxlYXNlMzEtbWFpbnQKKzc2OTM5IDY2MzBlMzZhZjljMzliMDYyNGNhYzE1NGRjYTIzYTU2ZjljZTMyYmUgbGVnYWN5LXRydW5rCis3Njk0MCA1NTAwNTNiYWFmZmE3OWQ0YzQ1ZTcyNzg3YmVmNWM1ODhhNjQ4ZTE4IHJlbGVhc2UyNi1tYWludAorNzY5NDEgNGFjZTA4YWFjMzc2MzljMzY1NTA4M2YxZmUzZmZiNTRiZmM4NzI2NCBsZWdhY3ktdHJ1bmsKKzc2OTQyIGQ4NTYyMDAyZjhlNWMxYjZiY2RhNjFiYjkzODk0YjM0NDFmYjQ1NWIgcmVsZWFzZTI2LW1haW50Cis3Njk0MyA0NjU4MDk0MTZhODJmMGJmMWU5MDhiOGUwZDBmYWVjZjEzMzFlZWFhIHB5M2sKKzc2OTQ0IDRkNDMwZTU1YWQ3YzU4YWRlYTQ5ZmQzYzRmYTZmM2NhYzBiMGY4ZWEgcmVsZWFzZTMxLW1haW50Cis3Njk0NSA2YzFiMjA2NWQzNWNiM2JjZmUxY2VjZDBiMTJmN2EwN2NjOWQxOWVlIGxlZ2FjeS10cnVuaworNzY5NDYgYmYyZWZmNjBlYWUyYmFhMTc3ZDkxZTdjOGFmY2JkNDZkNWRkZGRlYSByZWxlYXNlMjYtbWFpbnQKKzc2OTQ3IDk5YzBhYjNjZDFmOTU2OTgwN2U3N2ExODIxMTczZWIxZDQyMzE1NmUgcHkzaworNzY5NDggNzk3MTdiN2QzNzlkYmZmZWJiNjc2NjhjYjk5MDIxODk5YTg3MTExMCBsZWdhY3ktdHJ1bmsKKzc2OTQ5IGIxZDcyZDg5NDYyMTdiMTEzMTgyOThkNTU0MzQwZWFkMTNkMjAwNTUgcmVsZWFzZTI2LW1haW50Cis3Njk1MCAwOGRmMWM5ZWE2NDNiNTVjY2FjNjQxMDRiYjg0YTIyM2JkYTMyM2JlIHB5M2sKKzc2OTUxIGQwMjVmNDk4NzMxOTFhMDM0MjU4YTAyNmZhOTc5ZWUwZDdjZGI2MmMgcmVsZWFzZTMxLW1haW50Cis3Njk1MiAwOTZiMWQ5OTc4NTM4YmIyYzg4NjBhNDM3YjA2N2ZmYzc4ZTJiMjExIGxlZ2FjeS10cnVuaworNzY5NTMgMTc3MjE5NTQwNWU3ZWE3NTdlNDllMGZmNTY0NjBiM2U5MjdlOGVmMyByZWxlYXNlMjYtbWFpbnQKKzc2OTU0IGVhNWU1NGJkNjI3NGMzMzQ4NjlmYzUxYTE1Y2NmZGUwNTQ4ZjJlMmQgcHkzaworNzY5NTUgODZiNWRmMDQ2MzRjMDY2ZTMzNmQxZjczZTM3M2NiMGViY2YwYjhkNyByZWxlYXNlMzEtbWFpbnQKKzc2OTU2IDNlMmI3OTY1YWRhOTk3YmVhZTQwMmFjMGY1NWRlMWI0MjNlZjk3NDAgbGVnYWN5LXRydW5rCis3Njk1NyAwZWUyYWU3NWNlOGY0OGI3OWJiYjNmNzhiOWE0NDkzMDk2ZjQ0ODBmIHJlbGVhc2UyNi1tYWludAorNzY5NTggMzlhYjFhMzZiMjA5ODY2YTI1MWQwZGVjMjgzYjhiZDFlMTk2OWQ3NSBweTNrCis3Njk1OSAwOWMxNzFmYTU5MzVhMWUwOGZkMjJjMTJhMDAxZGFiYTZkMjE1NjI4IHJlbGVhc2UzMS1tYWludAorNzY5NjMgMjhkZTgzZjE3ZDA4OWU0NTQ3ZGE2MzYxMzhlMjg1NDQ1YjZkZTZhYSBsZWdhY3ktdHJ1bmsKKzc2OTY0IGE3YzRjNzE3YTljNzg4MWFjYjMwMjUyM2UwMDAwNTkzNTA3NTQyZjIgcmVsZWFzZTI2LW1haW50Cis3Njk2NSA0OGE5OWNmODE4YzkyZGVmNjA4M2M4YWFiOThhYWI2ZGIxYzhjYzRmIHB5M2sKKzc2OTY3IDdiMmVhYTM0Yjg2YjM2NzA3OGY3ODY4NmU2MDQ1NWNhM2QxMDAwOGEgbGVnYWN5LXRydW5rCis3Njk2OCA2ZDA5ZTNmZGY4NDBjYmQ4MWI4ODk3NjhiZGRkM2YwNTMyYzE1MDUxIGxlZ2FjeS10cnVuaworNzY5NjkgNzYxM2RlZjA5OWQwYmMwYWY0MmI2Y2RiNzg4MDZjYmM5YzdiM2Q5MiByZWxlYXNlMjYtbWFpbnQKKzc2OTcwIDgwNzE5NTliYzMwNmM1MWU0NjU2NjZjMjZhMmU2NWMwOThjMDI5NDMgcHkzaworNzY5NzEgNTBmMzA0NmQ0ZmEwMDI1OGZmMjZkNWU0ZmEyMzJjODJhMzg4Y2M1ZSBweTNrCis3Njk3MiA4Yzg2Y2Q4MGFlMjYxYTBiNzliNTQyY2MyYjY2MTk2ODM4NzkxZDZkIHJlbGVhc2UzMS1tYWludAorNzY5NzMgMTNlNjJjZjAyYmMzYTEwODIyMjhjODA3ODMzZDBkNThmODk1Yjc5NyBsZWdhY3ktdHJ1bmsKKzc2OTc0IDA5YzRmMWI5NDM5YzlkZTdlNWRkOTUyOWE3YjhiNGNiMjdkNDZhYjggcmVsZWFzZTI2LW1haW50Cis3Njk3NSBkNzYxMGVjOTViY2UyOGNkZjgxN2FjMGNhOGFmZjUxODUwMTY5OTkwIHB5M2sKKzc2OTc2IDc1NTliNzBmOTg5OTM4ZDFmYjFjYzEwMWVjMDYwYzQ0YjNhMWNjYTkgcmVsZWFzZTMxLW1haW50Cis3Njk3OCA3ZjVjYmMyOGY0MzMzYzliNDNhMzY4ZWNlZmU1Y2I1NzUyNjRhNDI5IGxlZ2FjeS10cnVuaworNzY5NzkgZTczMDAxYWZjNTZmMDZkY2Y1YTY1MWVkMGFhYjFkOThhOTVmYzg3YiByZWxlYXNlMjYtbWFpbnQKKzc2OTgwIDk3NTFkZGNjMTg4MjgzYWI4MmY4NWE5NTk1NjVhYTQ2OTYzOThlNzcgcHkzaworNzY5ODEgMzdhMDU5OGQzMzJmNzUzOGIwZDNiNDY5OTM1NTE0ZjFjMDFlNjFhYiByZWxlYXNlMzEtbWFpbnQKKzc2OTgyIDJlNDg0MTkwY2ViNWExOTk0ODAzM2FiNmZmMDFmMWM2NzdmNzljMjkgbGVnYWN5LXRydW5rCis3Njk4MyAxYTI1YjQyMGVjMDBjYzRmOTZkZmNiZWFiNjExYWY2MmNiZmQ3OWM5IHB5M2sKKzc2OTg0IDYwNmE0NWRiZDEwY2U1ZTNlNWM2YzdkYTJiYTJhZDg0ZjVhMmJkOTMgbGVnYWN5LXRydW5rCis3Njk4NSAzNTI0OWU5NTYzYWFmMTkwZDMwYzU1ZmRhYTNiM2VjZTY1YjQ0YzdlIHJlbGVhc2UyNi1tYWludAorNzY5ODYgZGIxOTdiMjhlMDQ1NDQzYjVhZmM2OTg3NmUwNGYzODkzYjM2NGZiZSBweTNrCis3Njk4NyAyMGZjZWJkMGNiNWRkODZmZTU1YmFkMjkwNjIzMTRlZmNkYTNhODM5IHJlbGVhc2UzMS1tYWludAorNzY5ODggYWVkMzIxODc2NDkwOWVlM2ExZjdjNzRlNWZhMmUzZjEwOGNmNWMxNSByZWxlYXNlMjYtbWFpbnQKKzc2OTg5IDRkM2I5YjRjYWZmMDZiMzVlNWUyMGYxNzNlODZkMjY4Yzg5ZDhlYmYgbGVnYWN5LXRydW5rCis3Njk5MCA0NDJkMmI5ZDgxZTA5OGYxODE3Mzg4MDBkZTdkNGM2YTVkYjMyMzk0IGxlZ2FjeS10cnVuaworNzY5OTEgZjMxMTUwZDg0N2MzZmU0M2I0MTg2YTQ3MjY3MjEyYTY0N2QyMjllMyBsZWdhY3ktdHJ1bmsKKzc2OTkyIGJlNzg4NjYwYTkzOTMzOGY2MTAxNGYxNmM0MjIxNDExZjEzNjQ3NTkgcmVsZWFzZTI2LW1haW50Cis3Njk5MyAwN2EyODMwOGNlYmIwNjk0MTNjYmVmMGIwZDI2NmQ1Y2YxZmZhYzJjIHB5M2sKKzc2OTk0IDY1ZGUwYmVlMGZmMmVjYmFlNjVhODZhZjcyNGI2YWJhOWJiMjIzN2YgcHkzaworNzY5OTUgYjk5MjdlZWUyYTY5ZmE4MjI1YzdiOWYyN2UzMWZkMDhhNzg5YTQ3NiByZWxlYXNlMzEtbWFpbnQKKzc2OTk2IDMwYmVkYmMyOTc2MzUyMzI1NTFhYmYxODI2ODBjMWIwZDRiZWU2N2YgbGVnYWN5LXRydW5rCis3Njk5NyA2YzgxMzAxNTJlODhhMjAxZTUwNjVjY2JmZWY0OGFhOTI2NWFhNjBiIHJlbGVhc2UyNi1tYWludAorNzY5OTggY2Y3NGQ5YWY4OTVhNjk0YmYwY2ZlYzJlODg1ZDJmN2U0MDdhY2MzYiBsZWdhY3ktdHJ1bmsKKzc2OTk5IDE1MjA2OTc5MjAyMDFiMDI4OWQ4MWRmYmJiYTFjODQ4MmM0NjJiN2EgcHkzaworNzcwMDAgOWRjNTczYjZmOGY1ZmE3ZjRjN2M2YzY2ZGVlY2UzNDM0MGRkZmQzYiByZWxlYXNlMjYtbWFpbnQKKzc3MDAxIDUzZTMyMTI1OTU1NmU1YzBhNWNlOWI3ZWNmZDhiZWE2ZmZjOTFmNGEgbGVnYWN5LXRydW5rCis3NzAwMiAwNzJjM2QwZjA1MWU5YjhiYzA1NmY4Mjg0MGM4OWYyNzZhZmQxNGZkIHB5M2sKKzc3MDAzIGRmMjYxMDkzYjMxY2Y0ZGRkYzgxMDZhNWZlOGM5ZjA5NzYyYTJlN2IgcHkzaworNzcwMDQgYmQyODc0NWM2ZmU3MGQ3Mjc4ODYyZWE3ZGY4NGJiMThjYzhmOTM2NyByZWxlYXNlMzEtbWFpbnQKKzc3MDA3IGJhNzRkNTg3NzRiNzBmNmE2Yzg3NjY2NjYxMjdjZjE3OWIzMDU1OGQgbGVnYWN5LXRydW5rCis3NzAwOCAxOGE4YjJiZmM5YzJlYmM4YWI0ZDRiZDAyMTZhZTg4YTZiYjYyZjFkIHJlbGVhc2UyNi1tYWludAorNzcwMDkgNDI5YTNlMzhlNDZiZjVkNzg1NzNmN2EzYzM4ZWUzZTY2N2QwNzRlOSBweTNrCis3NzAxMiA5M2Q1Y2RmMWM0NTczZTg2YTQ5MzJkZjdjNGViYTI5ZDc2NWJmNzU2IHB5M2sKKzc3MDEzIDNhNzM2YWQ2NjFmYjY0M2MzODNhYWY3YmE1NDE4YmNlMDNkM2Q5NGMgcmVsZWFzZTI2LW1haW50Cis3NzAxNCAyNTE4NjBkYjM0OTNmMzhjYjgwN2Y5N2ZmYWZlZTBhODMxYjJlMzNhIGxlZ2FjeS10cnVuaworNzcwMTUgMjQwMDZjYTU2MmQ1YWI5NWNmZWQ1ODU3Njg0OTQ0YzJlNzY0OWE4YiByZWxlYXNlMjYtbWFpbnQKKzc3MDE2IDRhYTBkODE2ZWU1YmEwNWQzNWMzMmQxODI4N2Q5ZTNhODVjZmMxMzggcHkzaworNzcwMTcgODAyMWI5MGI1NmVkYmI3ZjQ4Y2FlNDJlMzQ2NzAzNDUyNzM0YmQzZCByZWxlYXNlMzEtbWFpbnQKKzc3MDE4IDFjNGU4OTUyMTg0N2UwMDM4MjIzOWIyYWZjOTNjMjk4ODhjZjliYTEgbGVnYWN5LXRydW5rCis3NzAxOSAxM2UyZjhhNzQ5YzQ2NDIwYTliMGEwZTU5Yzk1ODg1ZTA5NTdhNDkzIHJlbGVhc2UyNi1tYWludAorNzcwMjAgODg2Mjc1ZmZhZmQ2YjNjNjU2MzhmNmRiZTljMDZhNjc0YjI5ODUyNyBweTNrCis3NzAyMSBlNzU3ZmE3Nzk2MDFmNTA1M2U0MDJiOWJhYjMyYTU4OTYwYWYxN2FmIHJlbGVhc2UzMS1tYWludAorNzcwMjIgZGYyY2ZjZjlhMDczOGUxZWE4NDE3NTJlNTAwYTQ3OTQ5ZGI2ODFjNiBsZWdhY3ktdHJ1bmsKKzc3MDIzIDFmODZlMGU0Njk2OWZhNDIyMzEzZGM1M2ZjMTIxOGQ5OGNmNzExNWMgcmVsZWFzZTI2LW1haW50Cis3NzAyNCA1NTk0MjUzMzMxNzg3ZTEyMDQyMDlkNGNiNTQyNjMwODZlYmVkN2M5IHB5M2sKKzc3MDI1IGQxZjFhMDU5MTU0YmE5ZjEyMzA4MTRiYTdjMTdjYTNmMTI5NDRkMDUgcmVsZWFzZTMxLW1haW50Cis3NzAyNiBjYTI0ZWExYTJhZTJlZDg3MjYyNWFhYzQ0OTkzYjQ0MTg1ZDY5MTVlIGxlZ2FjeS10cnVuaworNzcwMjcgMWRmNzNiZjM4YzU1Yjg1N2RiODAyMTFiYTQxZmE4YjRlMzcxMjc0NiByZWxlYXNlMjYtbWFpbnQKKzc3MDI4IDM1ZGU1N2Y1MTU5OTU3MzQ5NGNmN2EyZDhlNzI3NWI2NmE3NmJmZDkgcHkzaworNzcwMjkgNzFlNmEwZGZhZmM4NDcxNmY0NjdlOWUzMzIxOTRjNzUzMzllOWVmZCByZWxlYXNlMzEtbWFpbnQKKzc3MDMwIDlkYTBjZjJkZmZjYzllYTU4YzUyMDE5NzE0MTA5Y2FkZTE2NmQ1OWIgbGVnYWN5LXRydW5rCis3NzAzMSBhYWViNjViYWIzYzA1MWZiNWJiOGQ0OGUzYmVlMjQzN2M5YWFjNjVkIGxlZ2FjeS10cnVuaworNzcwMzIgOTRlOTU3Y2ZkYTM4M2FmOThmOGQxODg1MmExNmNjMGY1YzBlMjBjOSBweTNrCis3NzAzMyA0NjM3MWIyOGZkZDExODUxY2U1MDE1MDE0NDA3YTUzNGY4NjJhNzkxIGxlZ2FjeS10cnVuaworNzcwMzQgYmM1ZWM1MGM1MGY5ZWFiMzMzNDU3NDAxY2Q1M2YzNmU2MTEyNDA4NyByZWxlYXNlMjYtbWFpbnQKKzc3MDM1IDNjNDEyNDQ3ZWZiMjAzMGI0NjY1ODViNjNiNDU5YzU2YjkzMmUyNDYgcHkzaworNzcwMzYgZTdkY2M3NDg1ZDBiZDgxYzU4ZjgxMDdhMDRmZDdjYzRkNDAxYTExYyByZWxlYXNlMzEtbWFpbnQKKzc3MDM3IDA4NTU4MTg4NGU2ZjYzMjJlYWNkMTRiNzVjYjkwMDZmODUzNmI5NDMgbGVnYWN5LXRydW5rCis3NzAzOCA4NzBhNDZjOGE2NzA1ZGIyOGNkOWM4ZmE2MDc1YjgyOGI3YWRjZDE0IGxlZ2FjeS10cnVuaworNzcwMzkgMGVmOTRkYTc1YmZkYTZkNzNlODgyNzc5YmMxMzVkODU1ODczY2EyZCBweTNrCis3NzA0MCA0MjdjMjE0M2UyYzliYTFmODdjOTYyMTc3NTE0NzliN2Y3ZWM0OWJkIHJlbGVhc2UyNi1tYWludAorNzcwNDEgODQyNjM0Mjc2ZDAxMWRjYjFmNDJmMGNhM2I0NjNiZjFhZjE5NWIyZCBsZWdhY3ktdHJ1bmsKKzc3MDQyIDNiODZiMjNjNThmZTQ0MGJiMGQ4OGMyN2UyNDMzNjMyOGQzODk2NTcgcmVsZWFzZTI2LW1haW50Cis3NzA0MyA3MjYzMjNmZDg3Y2E1MGM2MDg5NGU4NTc3NTJhYmYxZTZiZTEyMGU4IHB5M2sKKzc3MDQ0IDM0MzRlNmIxMWE5MjE4ZWU4ZWFlZWM3YjViYTRkNTIxNWIzNWMzY2EgcmVsZWFzZTMxLW1haW50Cis3NzA0NSA4NjM4N2I4YjlhZjhiOWQ1ZmY2M2FiMzhhMzk4ZjNlZmZkMDc1MzA5IGxlZ2FjeS10cnVuaworNzcwNDYgOTQyNGI4NGEyZWM5NTJhMzBiOTQzMDJmZThjNzdhNDkyYjQ2ZGMyMiByZWxlYXNlMjYtbWFpbnQKKzc3MDQ3IGY1NjBlMWE3NzQ0ZWZhZDYyYjk4MmI5Njk3MzVjODcxNjM5YzVmYjUgcHkzaworNzcwNDggOTYyOGViN2U5OGRmYjc4MDEwYTY3MDNhMDk0NmUwMWRkMDFiNGMxMyByZWxlYXNlMzEtbWFpbnQKKzc3MDQ5IGRiNzk2NTY3MTA5Y2I0ZWNlZmUyOTY0ODc2YjJmZjI2Yjg0OTVmN2IgcHkzaworNzcwNTAgNmNhMWI5Yjc4YzNmZDc5YmI3MWY3MWY2OTA4YTFjYTlkYTYxOWE1YiBsZWdhY3ktdHJ1bmsKKzc3MDUxIGU1YzRjOTcxMjY2MWFmM2UyZTgwNTI4MmRkZDlmNjU1YzkwMGRlYjEgcmVsZWFzZTI2LW1haW50Cis3NzA1MiA0OWRmM2NmOTE5ZjdkYmNlZmZkMjViOGMxODk4NzQyZjM4MjEzZThlIHB5M2sKKzc3MDUzIDIxMDYxMTJmNWIwNzYzOGVjYjRiOGY5ZWE1YTBjZTRkY2I1YzI4OTEgcmVsZWFzZTMxLW1haW50Cis3NzA1NyA1ZGM1ZDZjNmY2NDE3ODk4MzZjZTU5ZDRmNTNjZTdmMzYwYjFlNGYzIHB5M2sKKzc3MDU4IDY0Njc2NDk5NDEyMDA5M2QwMDZhNjJlYjUwZDlhODMwMjZiMDdhYzAgbGVnYWN5LXRydW5rCis3NzA1OSAxNTEyOWM4MGIyZmVkN2M1MDA0MjRjNjAxNDRkNWM3YTFmN2QwNjkxIHJlbGVhc2UyNi1tYWludAorNzcwNjAgNjg4MTFkZmU3MDZjZTk0ZDMxZTQxZWEwNTRjMTY5Y2RkZWU0ODgyNSBweTNrCis3NzA2MSBlMzcyYTgwNTZjOWQ1MzdkNmZkNDk0MWFmNTEwNjU0MjAxODdjMmUxIHJlbGVhc2UzMS1tYWludAorNzcwNjIgYzRlNjA5ODg4MzRkZjBmZDQzN2FlMzQyMmRhMGNhYjRhY2Q2ZmNlMCBsZWdhY3ktdHJ1bmsKKzc3MDYzIGFhYTVhYjdiOTQyYThlNDQ1M2YxMzEwZGNhZGQ5YzVlNTdiMDA2YmYgcHkzaworNzcwNjQgNTYwYjg3NjY5MTlkNWQxNWM0NDJhMTJjOTk5NzlkZmI1MWEyZjgyYSByZWxlYXNlMjYtbWFpbnQKKzc3MDY1IDIyOTA3OGU0NzAxMGM4YzhhN2JjZDA3OWM4ZDA0ZjdlOGEwMzkxNmEgcmVsZWFzZTMxLW1haW50Cis3NzA2NiBlYjBiYmFiYTAzNjFiNzQ2ZmJhOTcwZWRiNTg5OTU3MmM5YjBmN2YxIGxlZ2FjeS10cnVuaworNzcwNjcgZGQ2NzI2Yzk3OGM2NjY5OGY0ZDY5MDUzOGQ4Mjk2MmQ2NmUyYWVjYiBweTNrCis3NzA2OCA5NTcyODkwMjljMDUzNGU1ZGUyNGZjYTkyNzJjYWY4MGZjMjYyNDg4IHJlbGVhc2UyNi1tYWludAorNzcwNjkgODVlNzgxZjU5OWJjOGE5NGY1NjdiMWEzNjQwNGZjZGFkZmIyNzExYSByZWxlYXNlMzEtbWFpbnQKKzc3MDcwIDhlODJmYjA0M2FlODc4NTllOWRjYjVmZTAwYTcwMGRjODUxMWQxOTEgbGVnYWN5LXRydW5rCis3NzA3MSBhZDdlNDE0MWEzZWI4M2Y4NmM2YzU2OTA0MGRlMzUzYjE3NTQ0NGQ1IGxlZ2FjeS10cnVuaworNzcwNzIgNzMzNjViYjI2ZmQ2NTBjYzA0NjBjZjM1ZDcxZmQwYjZiMTg4ZWZjNCBweTNrCis3NzA3MyAxZTM3MTgwZWVjYWVhNDQzZjE0OGY0YjM3OTBiYjYxNGJkNWNjM2ZhIHJlbGVhc2UyNi1tYWludAorNzcwNzQgNWE5MzcxMDE3ZWRmOWExYTUwMTNmZjhhMDFkMGE5YWVmM2VkZWEwZSByZWxlYXNlMzEtbWFpbnQKKzc3MDgxIDUyNWY2N2JlZWI4OWM3ZmEyMGNhZmM5ZTg3MTg2ZWUwMDExMjY3YWEgbGVnYWN5LXRydW5rCis3NzA4MiAzMDc0MWVmNjU2MTczOGRmNzBjYmUyNzU5ODc1MGRlNDA0ZWNlMGJhIHB5M2sKKzc3MDgzIDU3NDMzYjgzM2IyYThkZjM0MTE0NWVkMGUzMjlkOTljNjNjNTFmZjEgcHkzaworNzcwODQgY2JlMWJiZTU0NGM5ZTQ2YmRhMTU3OGYzNjBiMTczMTVhY2M5NDMwNiBsZWdhY3ktdHJ1bmsKKzc3MDg1IGExMWE4ZTUzYzQ5NWNlOGJjNzcxMjM1NWRiZGY1NmQ4ZjVjYzQ2N2MgcHkzaworNzcwODYgZmUwNDU5ZGM5ODg5ZjkzNzZlNmRlMWE1MTQxMzNjOTA1MjkzOGUzMCBsZWdhY3ktdHJ1bmsKKzc3MDg3IGZmZDgwMGVmNDZlYTA1NGU5MmVmYjQ5MDZjZDI3ZjE0MzE2M2U4ZjYgcHkzaworNzcwODggY2YzOWM1ZTQ2MmY5NGJjZTU4MTViMmQ2OGIwYmFiNTNhZGY1YmFlMiBsZWdhY3ktdHJ1bmsKKzc3MDg5IGMxOTcyZWVmMzU3OTVjZTJkNGExMzEwNDIxNzNmMjg3YTExZTNlMGQgcHkzaworNzcwOTAgYzE0YTAxNGFmOTU0ZWJhY2YwNDBjNjljNjRhNzA1MWMxNjNlYmVjYSByZWxlYXNlMzEtbWFpbnQKKzc3MDkxIDVlODRhYmZkZmVhYmQ3NWE1MTVjNDY4YTE4YzNlMjE2ODgxZTFiMGMgcmVsZWFzZTI2LW1haW50Cis3NzA5MiA5YjRiNDNhOGM5MTMwNTk1NTBmY2Y4NmU1Yzg3YjhlYmQwODBkNGMyIGxlZ2FjeS10cnVuaworNzcwOTYgMzc0MTkxZTEwYTQ1YmU2ZDU2ODIzYWNhMTc2ODljZGIyZmFmYWRhMyBsZWdhY3ktdHJ1bmsKKzc3MTAyIDVjOGM0ZDJmOGI3MTIwZDFkZWE4Yjk1MWM5Y2EwZGI5MDg0YzM3NjEgbGVnYWN5LXRydW5rCis3NzEwMyBmNzY0ZTQxMjZhMjMxYmEwYjdjYzY4YjViZTQ4ZDEwNTdhZWY3ZGRmIHB5M2sKKzc3MTA0IDNiNDZmMmQzYjc1ZDAyZjM1NmMxYWZiZWNhM2ZiNWNhZmQ2N2E3ZDIgbGVnYWN5LXRydW5rCis3NzEwNSBlYzhiYjE1MTRkNjcxYTYzYmQ3YzczY2IzNWRlYmRjOTYwMGVmM2ZhIHB5M2sKKzc3MTA2IDE1ZWFjNzY1Y2MzNWQ5NGQxY2E5ODc0NjA0MjEyYjUwZTZkODVlYWQgcHkzaworNzcxMDcgMDQ5ODAyNzcxMmJmNDJjMzBkNzJiOWM2OGVkOTM1YmVkZWE1MmY3MSByZWxlYXNlMzEtbWFpbnQKKzc3MTA4IDNhZWE1N2RjMjFhOWIxZDNiODYxNDhhZjUwZGNkZWI4NzgwMWRjZTYgbGVnYWN5LXRydW5rCis3NzEwOSAzOGY1OTNhODNjZmM4NDIzZjQ4MGQ4ZDZiOWExMzZkOGRlOWZhNzcxIGxlZ2FjeS10cnVuaworNzcxMTAgOGFkMzM5OTIyMDJhZWEzYTZhMDE3ODJlMDIxMzEzNTI1OTNlMzBhMiBweTNrCis3NzExMSBhYmU1MDA4YjkzZTlhNGM3MzJlYzUzMTRkYWRkNjU4NjIzNGI0MTI3IGxlZ2FjeS10cnVuaworNzcxMTIgNjFhNzcwZjdiOTUxYjNmOTIwN2U3ZDY2Yzk4ZTRjOTAwY2JhOWUyZiByZWxlYXNlMzEtbWFpbnQKKzc3MTEzIDU3NDU2ZjE2OTQyZDk5MDBlOTQ1MzY2MDZkYTgyZGViYWRkYzU5NGIgcHkzaworNzcxMTQgNzBkNzQ3M2FmY2ZlZjY3Yjk2NjJkYTJjMWNjNTRjMWNhNDJlN2ZmMCByZWxlYXNlMjYtbWFpbnQKKzc3MTE1IDcyMzNiYzM0ZmQ0NGUyODhmYmU2ZTE1ZmRkNzM3ZjllNTI5MjFjN2YgbGVnYWN5LXRydW5rCis3NzExNiBlNDg0ZmRhNDYyYTYwYjcwMDYxMGRhYjg1OTgwYjgyNmU3YWVlYWE4IGxlZ2FjeS10cnVuaworNzcxMTcgYmQ2YjAzZmI3MWEwNjQ2NjliMGE4ZDIyZTA2ODU2ZjhiOGMzNzJmMCBweTNrCis3NzExOCAyNTllZDVjYjkzZWFjZGZjNDkxMGJhMTNhMjQxZTMyYWY1NzY2MTI2IHJlbGVhc2UyNi1tYWludAorNzcxMTkgZWFmYTA1M2FmMDU3MGRiMDdhYjc0NTVkNTlmMmFlNGRhNzc1NTNkZSByZWxlYXNlMzEtbWFpbnQKKzc3MTIwIGViZDA2MTgzOGZiMTc0NTVmOTg1ZmJjNTZkMzMwZTZlNTgxOTBmMzMgbGVnYWN5LXRydW5rCis3NzEyMSA1ZTBhOTQ3MTYwMWY2MzQ5M2JiZmRhZTk4NGJjNDc3NWViNTU4MjdmIHB5M2sKKzc3MTIyIDhjNjBhOTU1ZDAyYzBhMmQyNDk4NmI3Y2M1MjhkN2RkODVjZjU1ZGYgbGVnYWN5LXRydW5rCis3NzEyNCBlM2Y1OTE0ZDliYjNmZWE3Zjg5YzU1YzVmZDMxYTZkYTcwNThkNjZlIHB5M2sKKzc3MTI1IDIzZjQ2NzE1MTc1NmE3YzgzZTg3MzVmMTEzMTM3YWYxMmRhZjBlYTYgcmVsZWFzZTI2LW1haW50Cis3NzEyNiBjNTAyZWMyNDM0NTg4YjhiY2U4MDk5NmM1YmIxYzAyNzNlNjk5MWU5IGxlZ2FjeS10cnVuaworNzcxMjcgNzkwZThmY2Y1MTc5NWYzMmFhNThkZjllMmY1ZjkxNzY5ZDZhZWI1NSBsZWdhY3ktdHJ1bmsKKzc3MTI4IDZmZGUxMWY0ZDg0MjY2NmYzMTllYjg4NzNlZDQ1YzA3OTVlY2RlMWYgbGVnYWN5LXRydW5rCis3NzEyOSBmYjY3MWRmMGY1Y2M5NjZhODE3MzUzZWY5MzdjYWI2NTFjZTk1YjI2IHB5M2sKKzc3MTMwIGU1M2U1NTI1MmJhODRiY2UwZTliZjEzM2UwYmJlZDA2MTFkNTRkZmUgbGVnYWN5LXRydW5rCis3NzEzMSA5MmE1OGI4MDEyMjA2NzMzNDk3N2E1OTBjZjgxZDMwY2EzMWJiMDQ2IHJlbGVhc2UyNi1tYWludAorNzcxMzIgMTlmMjM1OTk0NGViNDM1ZDFiNmU1Mjc2NDU5NjI1ODViMTUwMjUzOCBweTNrCis3NzEzMyAyNDRiOTc5ZDU0NGMxMjQ4NDY0MDE4NmU5YTc0MzUwNzkxNDBlMDA1IHJlbGVhc2UyNi1tYWludAorNzcxMzQgZDRhYzNhODAwMGM3NTE4OGQwMjlkNzUxMzljN2I1MjBlN2U5NGIzYyByZWxlYXNlMzEtbWFpbnQKKzc3MTM1IGE3ZjZhNTNkYWExMmQxYjVjNjU2ZmJlMzdiOWQyNWRkYjUxOTNjZjAgcmVsZWFzZTMxLW1haW50Cis3NzEzNiA0ZjA5ODhlOGZjYjE1NmRkZWJjNDQ5ZWQ0MTFhNTMyMDk1ZTgxNzYxIGxlZ2FjeS10cnVuaworNzcxMzkgYWM1ZmQ4OTA5OTk4ZmVkOWY2MjhmNWM1Y2NhMjlhZDZjYjAzMzE3ZCBsZWdhY3ktdHJ1bmsKKzc3MTQwIDM4NTdjZDRkNWIzNTk3M2I1YjkzMzIyM2I5ZTI2YWMyZThjNDdjNTYgbGVnYWN5LXRydW5rCis3NzE0MSAyYWEwZDlmMDFkNDc1M2I1NjUwOWNmNWUwOWIwYmQ1OTZlYzczOWFkIHJlbGVhc2UyNi1tYWludAorNzcxNDIgNjI0OGI3ZmRlYzBkYmI1OWY5ZDdhNDQzNzE2NDczNzA1ZTViMDRkYSBweTNrCis3NzE0NSBhZDYwOWQwZjUxNTA5NzQyYTE0MmZlZWFhYWFlMGFlOTMzYWU1MzMyIGxlZ2FjeS10cnVuaworNzcxNDYgNzQwZGJhZTJlMzBjZmZkMDEyMDRkODNiMjQzYzdjZWI5ZmM2ZGI5NyBweTNrCis3NzE0NyAxNzRhMjhjOWZiNDA3MDI1MGYxZGUxMTRhNjkwMTlkNWFmNDYwZDkzIHJlbGVhc2UzMS1tYWludAorNzcxNDggNWFkNWExZDYxMmU1ZDE0OGM3ZWY1Njk3ZTEyNjJiNDQzYjA2MzdjMiByZWxlYXNlMjYtbWFpbnQKKzc3MTQ5IDljYjI3NWRiNGQ2ZDU4NGMxOTJlZWRjZTI2MTVhMWU1Zjg4ZDUwZjYgcHkzaworNzcxNTAgMDBmZTY4OWYyYjc4ZDU1YzUzNjIwZjkwYTVjZTJkODY4NWYzMjkyOCByZWxlYXNlMzEtbWFpbnQKKzc3MTUxIDhkOWM5MzQwYjEyZTE2YzhjMzU1NTBhYTM1Yzk0N2I4ZmUzZjIzNGEgbGVnYWN5LXRydW5rCis3NzE1MiA3MzYxZWUyZGRmZGI3YTQ0MGViNTNhYzI0YTUzYmY2MTRjODNlOTg3IGxlZ2FjeS10cnVuaworNzcxNTUgZGI2Mjk3N2M1NzEzZjkwYTdjZTdjODA5Y2MwN2RkODA3MWY1M2E0MiBsZWdhY3ktdHJ1bmsKKzc3MTU3IGFlMTljMjg3ZTljMGY4NTU2YTFlYTRhMmU3MjQxYjQxM2I1NjQ5NTUgbGVnYWN5LXRydW5rCis3NzE1OSA5NmEyMzcxYjExNGI5ZGNhY2VjMmIxMTRjYTM3NDMyNWJkMmRhN2FmIHJlbGVhc2UyNi1tYWludAorNzcxNjAgODFjZjI0ZTVjZTkyOGU5YzkwM2E5ZTYzYWI2NDNhYzI4MDU5YmE3ZiBsZWdhY3ktdHJ1bmsKKzc3MTYxIDZjMTlhNmE2OTdhNjExZDRjYTZkMTMxYjUwMmFhZTA5ZTYwZGZlMDMgcHkzaworNzcxNjIgNDZmNGI3YjViNGRkZTQ3ZWE5YjVhYmRlYjNhNjA5OTE2YTQ0MzY1YiByZWxlYXNlMzEtbWFpbnQKKzc3MTYzIDhkYzZkZmE0MWZkNTY1Y2VhYzc2MWZlZjFjMGI3ODViNWViZGQ1ZTIgcHkzaworNzcxNjQgMjUyODU4MmQ2OGY2YmY2OTY2NDJiYjVjZTdkYmNiNjU5ZjcwMGYzMiByZWxlYXNlMzEtbWFpbnQKKzc3MTY1IDM2YWVkOWUzNjQyZGM0ZDMzNjc4ZTdhZjU2ZTJkYjQxMjA2ODgzYzMgcmVsZWFzZTI2LW1haW50Cis3NzE2NyBlZmE1OTc2MzMwMTBlZmUzYzhiMzZhMDQxNWNmODkxODk4NzdhNDljIHB5M2sKKzc3MTY4IDk4MGM3OWZiZDRjNWRmNDVjYzJmMTNmYzkyYjIxNWZiZTg2NTM4OWIgcHkzaworNzcxNjkgOGZlZTJhYjUzZTcxNmFjZWM5ZmQ5NzZmODg4YTZiYmI3MGFhOTAzZSBsZWdhY3ktdHJ1bmsKKzc3MTcwIDIyOGJiYTJkMWYzZjc1MDg2ZjcxMmFkZTcxZTMwODQzZjQ3OTEyYzEgcHkzaworNzcxNzEgZTA3ODU3OTk4NGE0ZTRmYzEzODI5YTc1ZTM2MjUwYjUwY2YwMmNmZCByZWxlYXNlMzEtbWFpbnQKKzc3MTcyIGIzZDM3ZWI5NjMyMjM1NDYzMjYzMzI5ZjU0YzFkOWVhMjNlOTdlMmUgcHkzaworNzcxNzMgNGQ2ZDk1MmZlMjg4MTE4MzM0NzIwZTExOGM0Mzk0MGI0NTI2NzM2NCBweTNrCis3NzE3NCBkNTJhNzE3OWVlY2VlMmVkNWM4NmY1OWU2MDlkNGIyZDU1NjUzZDIzIHB5M2sKKzc3MTc2IDQ0M2Y3MWRkNWNmMDJhYmQ5NTE0NzM0YjUzNzIzNzc3MWUxMjU1ZTggcHkzaworNzcxNzcgYTkyZjBhMGFmZTU2NzQ5OWQ4YWMyZGUyYWJiMGVlMGExZmM0ZDVmMCByZWxlYXNlMzEtbWFpbnQKKzc3MTc4IDM4NGE3YTM3MDlkYzhmOWUwZWQ4YTY4MmZlNmQxZjI3MmUwM2VmNzggbGVnYWN5LXRydW5rCis3NzE3OSBiZjk3YWNmOGVjYjE4NzBjMWRmOGMwOWRkZjlmNmMyOThiMGQ5NTY0IHB5M2sKKzc3MTgwIDdjNjMwOTMxY2M4MzFjN2U2Yjc0NDQ5YmUwZTVkNjFiYTk0YjZlZGEgbGVnYWN5LXRydW5rCis3NzE4MSAyMzZkY2YxNzFiNzQ2ZjIyM2QyZWQwNGU0ZGQ4N2I5MTc5NjYyNTM1IGxlZ2FjeS10cnVuaworNzcxODIgMWU5MmZlNTkzOTE2ZGMwY2UzNjMzMGViMDQ1YjY5ZDViMDI1NzA0ZCByZWxlYXNlMjYtbWFpbnQKKzc3MTgzIGRiYWE0ZWVlYWViOGQyNmZhOWQxZDA2NzIzMGI1YWFmZDY4YTBkYWQgcHkzaworNzcxODQgNWFmYTE2OTE0Mjk1ZTVmN2Q2ZDQ4NWFmMTllYjkzMDg0Mzk2ZjJhMiBweTNrCis3NzE4NSAyNWFhNDNlNDMwMmJmNWRiM2MzOTJlZWFjZWI3MmUzMmFmNjkzOThjIGxlZ2FjeS10cnVuaworNzcxODYgN2Q2YmZmNzIyMTk1MGZlOGQyMmQwYmMyMmY2YTkyYWIzMzAxYjBkMSBsZWdhY3ktdHJ1bmsKKzc3MTg3IDg1NmE0NWMwYjZjNDFjNjU4ODZiNzBjNzJlMzEyNGZjOWRkMDY5NWYgbGVnYWN5LXRydW5rCis3NzE4OCA1YjQ3MTg0N2Y2ZWE2ZWM3MzdlM2JjYjkxZGYyMDBiNTAyODNkNjA3IGxlZ2FjeS10cnVuaworNzcxODkgYWI0MGI5MzZiZDFjMTQzMTc4NjQ4OTk5NzgwZGFlYWEyZWUyMzRkYiBsZWdhY3ktdHJ1bmsKKzc3MTkwIGU2MmJlMDg0NzhiY2RhYjY4NDhlYzk3YTBjMWZkNWUxYjFlNjI5MjQgcHkzaworNzcxOTEgMTY2NmVlOGRhZjliMTI0OTMwMWFmZWNmMDY4YWI1ZGQxM2NiODVjNiByZWxlYXNlMjYtbWFpbnQKKzc3MTkyIDUzMTAwZGIzNTEyODRmN2I1MGViNzZkMWQwOTM4YjUzMjgxZDZiNGUgcmVsZWFzZTMxLW1haW50Cis3NzE5MyA4NGIwMGU2YmQ2OWIyMWZlM2Y0YjRmMjIwMTYzZDhiZmQ3NDZhMWYyIGxlZ2FjeS10cnVuaworNzcxOTQgNjIxMmVkYzIyY2JkZjhjZTlhZGRiMjU0ZmU2YjczYjFmMDdlODAxMiByZWxlYXNlMjYtbWFpbnQKKzc3MTk1IGJhYmZjMDYxMjEyYzE3NDNmMzExNWFmZGEzMTc3MWFlYTFjODA5ZTggcmVsZWFzZTI2LW1haW50Cis3NzE5NiBkOGU2NGE4NDQ3M2NkZDU0YTljMTMxZDI2N2MwYmIzMjU1N2MzMTJmIHB5M2sKKzc3MTk3IDNlMjJjN2U5ZjMwN2NiMWM5M2Y1MzhkYWUxOTg1YmY2ZmMyNjg5N2IgcmVsZWFzZTMxLW1haW50Cis3NzE5OCBlNDU1M2I2MDdiNDNkZmMxN2NiMzRjMzgyNDQ2MTIwNzcwMzg5NGFmIGxlZ2FjeS10cnVuaworNzcxOTkgNDJjZmI3MjdmZjQ4NWE3OGZiNTM5MjFhYjA4ZGZjOWE0NmE5YWFlYSByZWxlYXNlMjYtbWFpbnQKKzc3MjAwIGUyMjYxYjYxZGYwNjYwNWIyYmQ1YjQ5MmZkZDUxNjZlZDEyNDE3MjEgcHkzaworNzcyMDEgNzFiYjg0MmI3OWFiMmUzMGE2MGVjNDhiYjc1NmE3M2Q2ZmQ3NDlmZiBweTNrCis3NzIwMiAyMTJhNzIyODY0YTFhZTg3NzRmNTJhOTI2ZmQ5MTFjNTZhMTgwN2FjIHJlbGVhc2UzMS1tYWludAorNzcyMDMgMGJlNDViNWNmMGQ2M2RjMzI0YmY3NTQ5YzViM2FlMTI0NmE5ODA3ZSBsZWdhY3ktdHJ1bmsKKzc3MjA0IGZjZTY2MTEyNDFkMTA5MmNhMWI3ZDZlMzM1NGE2Zjg4MDIyNWRiNjggbGVnYWN5LXRydW5rCis3NzIwNSAxZDBmZGU1OWRkZWE4ZmE0ZjFkMGI2ZmYzYTJmMDE0NmY1OGZhMGI5IHJlbGVhc2UyNi1tYWludAorNzcyMDYgNjhhNzU0YWJjZmI2OGIzYjAzMWNhNjlhZDRiOGI4ODI2NzJlYTZhYiBweTNrCis3NzIwNyBjMDI2YjkxMGE1ZTQ4NjVlZTJmMmE4Yzk1NzIwYjY0NDQ3MmU5YTE5IHB5M2sKKzc3MjA4IGZjNzVhOTk4YWRiZmVhNzQ3NTM5OTQzNzkxOTZjMmIyZjgyZTRhM2MgcmVsZWFzZTMxLW1haW50Cis3NzIwOSBhZGI5MjFmMDRiODc3NTc0MDNmYWI4YmIyOWIzMmRiYTUyYzg4ZWYzIGxlZ2FjeS10cnVuaworNzcyMTAgZmYyYWJiOTRjNjhlYmY1MmUyYTU5YmZlNzQ0M2FkM2NlMzExODNiZSB0YXJla19zeXNjb25maWcKKzc3MjExIDlhNTViMTE3M2QyMDA2YzQ2ODRiZTE5MjZlMWZmNDJkMDc4NDNmMDUgdGFyZWtfc3lzY29uZmlnCis3NzIxMiBmMDI4ODEzMzIzNDJhMWE3NmYwMzcxYjAwMTU0MWEyMjI5OWVhMDFiIGxlZ2FjeS10cnVuaworNzcyMTMgYmFhNzBkNDFjOWJkYjViZWQwZDc0ZGMwOTlkNjEwMzg3MWRmMjM5NCBsZWdhY3ktdHJ1bmsKKzc3MjE0IDk0MThmNGIwMTA0NTFmN2I0ZDFmZDAyYjVlYjAwZmI3ZjkzNDJjNzAgbGVnYWN5LXRydW5rCis3NzIxNSBjMzUwNzVmMmE4ZjMwZTVhZmRjM2JlZWY5ZWZmZDYwYWE3MWVhZGM5IGxlZ2FjeS10cnVuaworNzcyMTYgYjBkZDZjMjFkY2JmNDQ4M2IxYjA1ZWI1YWIwNGE5YTU0ZGMwM2IyMSBweTNrCis3NzIxNyA0ZmZiOTMzODkyNTY4Nzg3YWYxMzUxODY5NjZlNGRiZTNlOGQyNzY3IHJlbGVhc2UzMS1tYWludAorNzcyMTggMmRlMjRiYjMzY2M1N2M1MGNmYTY0YzA1NDIwOTdhNTNhZWUyZDcxZSBsZWdhY3ktdHJ1bmsKKzc3MjE5IDEzOTRhNDAzZGM4OWU1YjQyYWI0NDJmNjI3NjE2MWM5ZGFlZWMxODMgcmVsZWFzZTI2LW1haW50Cis3NzIyMCA3OGNhNjljZmM4OTc4YjczOTk5ZjNjMTQ0NTY0YTg5MmExNjg0NzA5IHB5M2sKKzc3MjIxIGYwOWViOTJlZDBhYjJhZjU1MWE2N2IxZWZiMjEyZjFlZjEyMzMyMTggcmVsZWFzZTMxLW1haW50Cis3NzIyMiBhYzUyOGE4YTM2Y2Y1YzUzNDJjODNjNzY5NGU2ZjNiNDQ4NDQ4ZGMzIGxlZ2FjeS10cnVuaworNzcyMjMgNzQ3YjAxYTA1MzAwNjg3NmMzOTg5YWEwMjU4NWJiMTdmODFjMzAyYSByZWxlYXNlMjYtbWFpbnQKKzc3MjI0IGE3MjhmYTQ4MWFkNDM4ODc0YWU2M2UxYTZkN2NhZWFjYjU5Y2JkNzUgcHkzaworNzcyMjYgYjVjMWNmZGM2OGI5MjlmNDQ5YTVlNWVhNjZjYjBmYzg2OTYzZThiMyBsZWdhY3ktdHJ1bmsKKzc3MjI3IDZjOGMwNDBjMTQ0M2I3NTJhMmM2NDgzYzUyY2YwOTMyYzYyODEzNDEgbGVnYWN5LXRydW5rCis3NzIyOCAxOGJkMWM2N2Y1ZTJkNGJmODExNjE1NWU2NTVlODdiN2E4ODdjMDIzIHB5M2sKKzc3MjI5IGI4ZTM4ZDBhNTJkN2UxMjc4OGIwOTJkYmIzNTk0ODQxZjhjOTJmNTYgbGVnYWN5LXRydW5rCis3NzIzMCA2ZDE3MDI1Yzg0YzE0ZTRhOGYzMWViNDNjY2FkN2UxZmMzNTA2YzA3IGxlZ2FjeS10cnVuaworNzcyMzEgZmM4N2EyZmM0N2E1OTVlYWJiNTZmNWQxMTlkNTgwMDgyNDZmYjAyMiByZWxlYXNlMjYtbWFpbnQKKzc3MjMyIGJkMjRlMWU5MGY3Y2MyNjZmZjhiMzM5ZTk1MmNmNjkyMDliODVlZTggcHkzaworNzcyMzMgYWRjOWNkYzAyZGYxMDA5Yzg4NzM0NmUyN2RhZTQ0MTU0OTRhZTE1OSByZWxlYXNlMzEtbWFpbnQKKzc3MjM0IDI3Yzk0NmZmNzZhM2E5MmM5OTA5YmE4YzM5NGY1YjI0M2M2OGQyZTIgbGVnYWN5LXRydW5rCis3NzIzNSA1OGE1YmI5NzFlOTUyYjdhNWU2OTI0ODE1NzdiOWFjZjI2ZGI1NDM2IHJlbGVhc2UyNi1tYWludAorNzcyMzYgYzJmYjA3NzQyNDQ1Y2Y4OGZmZWFkMWY0MjQ5NGE2MDY2YTEyMWU5ZCBweTNrCis3NzIzNyA0NmQ2MGU1ZmYxMDNlOTVjNDUxYTE0NDU0ZWUwOTM3YmM1YTAyZjQzIHB5M2sKKzc3MjM4IDM5MGQ2NzRlZDRjNzMyNDc4NjM4OTljMzBjZjcyODcyMWQwNGMxYzAgcmVsZWFzZTMxLW1haW50Cis3NzI0MSBkZGY2MWNkNzc1ZTAxOWQ0YmYzY2E5NzM4MTRkMmI1ZjFjNWMzYTBmIGxlZ2FjeS10cnVuaworNzcyNDIgNjI2M2E2ZmJmN2Q5MzQzZjg1Y2YyNTRlMGNlM2UyMDRjOWVmMzVjMSBsZWdhY3ktdHJ1bmsKKzc3MjQzIDJkNWFiNGQwOGM4ODUwYjRmYTdmYmQzMWE5MDhjMTYwZDEzN2FmODMgcHkzaworNzcyNDQgYTMyNjYxYjMzNGY2NzY4MzgzOWEzZWYzN2RmNjk0ODM0YTgyYWQ4YSByZWxlYXNlMjYtbWFpbnQKKzc3MjQ1IDMxMzI2NWQ0ZTAzMjgxMmVmYzc4MDNlYmI1YjM3NmE2ODFhMzdhNTkgcmVsZWFzZTMxLW1haW50Cis3NzI0NiBhMTAzNWNiNGE5MjVmYzgyMTc5ZTQ2ZDQxN2VhYmU5ZjkwZWNjNTQyIHB5M2sKKzc3MjQ3IGY1ZTQ5NmE4NDE3ZjMxNWM0YTNiZTQxOGY2NTU3YTdlOGMxNjQyYWEgbGVnYWN5LXRydW5rCis3NzI0OCBhNmFjZTMwY2I5MTIyNGE5NWEyODE4NWVlZmZlYTEzMjNkN2RmNDI4IHB5M2sKKzc3MjQ5IDRhY2Q4ZmFlYTJkOTMzYjQ5NzcwMzkxNGMyYWFiYjVkMDhmMDg1NTAgbGVnYWN5LXRydW5rCis3NzI1MCBjYzk3YTk2ZTRhMDkwODI2NzU2NzVmMjA4YjQ2ZGIwMWJjMzQ3ZDgwIHB5M2sKKzc3MjUxIDkyNjExODQxNzk3OTJhODgwMWU1NGI1ZmMyMTI4NGY4YTRkN2JlYmUgbGVnYWN5LXRydW5rCis3NzI1MiBmZjViYzJmYTM4ZDY2ZWVjOWVkZGI4MDIxZmRjYzA0Nzg4N2NkZjVkIGxlZ2FjeS10cnVuaworNzcyNTMgYmUyN2VhMmIzNjc5ZjA0YTc0YzZjMGU2YjZmN2JkNDZhNDM2YzQ0MiBweTNrCis3NzI1NCBlYjk1ZmQ5NWU2NWVkZWJiOThhYjgwYTA2Njk1MDliZGJlMjAyNTdlIGxlZ2FjeS10cnVuaworNzcyNTUgNTdiOTk2YzNkOGZmYjM4ZGM5YjJmNzkwODc4MzljY2QwNTFmOWNkZCBweTNrCis3NzI1NiBlOTgxMmI4MTZmZmRiMTc5NWMzMGZlNWIyZWE4MWE4NTQzNjZlOTllIGxlZ2FjeS10cnVuaworNzcyNTcgOTFhNTdjYzAwMjBlNGFhYzZmZjkzZDMyZDIxNjJmOWEyYjA4MjM5OCBsZWdhY3ktdHJ1bmsKKzc3MjU4IDJhMjM5OTUzNDU5MTdjYTcyNmQyZjE2MjkxYjFjNzkwYmNkMzQzNGIgcHkzaworNzcyNTkgMzg1NmM3NjRlMWY1MmMyMDRlZDgxMzU3MmUxYmZiNzgzMDU1NmRkZCBweTNrCis3NzI2MCBmZTExN2U1ZDEzYTFmY2FlZTZhMGI3ZWE4YWE2NDdiOWE1OWZhMzdmIGxlZ2FjeS10cnVuaworNzcyNjEgYWJiZGMzMWVhNzkwN2IwNTRkMDFjNjdmMDZhNTMxNmQwMzRlOGU2NyBweTNrCis3NzI2MiBmZDkxNzQ0YjFjYWFiNDlkMGZiN2I0YjAzOGQ4OGVlOTk2MzQyODU0IGxlZ2FjeS10cnVuaworNzcyNjMgNzJlM2U4NWJhYzhiMGRjMDI5YzVjNTQ1NmE2YmMyNDZhNGJhYzY2YiBsZWdhY3ktdHJ1bmsKKzc3MjY0IGExOWFkMjk5MDk1ZjI3ZGIwMmE1YWZmNDg4ZDNkZDY4YTc1MzhhMWYgbGVnYWN5LXRydW5rCis3NzI2NSBiMDM4NmZlNjUwYzc1OTYwZmQzOTY5YzA4MzZlMzZhOWU1MThmNDBhIHB5M2sKKzc3MjY2IDhjNGE3MDdjMGJkOGVlYzY5OWEwZTAyNGNiZjZkMGNkYTM0Y2Y5MWMgbGVnYWN5LXRydW5rCis3NzI2NyBjM2FkY2ZhYzA3NzIyODYyYjYyMmExZWQ5MzgxNDUyMmE5MmU1ZDM3IGxlZ2FjeS10cnVuaworNzcyNjggYTBmY2U5NjY1ZjQ0YWQ5ZjEzYmNmZjNmODE1NjNkMWIxNjk5NjNlZCByZWxlYXNlMjYtbWFpbnQKKzc3MjY5IDI0MDJmMjkxZTgwMTliYWViOWJhOTA4YTk2ZGI1MTU2NDFjNDUzMjIgcHkzaworNzcyNzAgZTU0NDM0ZDJlMmE3ZDM3ZTI0YjI0NDU3OTU3NWNiNWRmM2M4ZmIwMyByZWxlYXNlMzEtbWFpbnQKKzc3MjcxIGY2ZTM0MDAxNGY5Njk2OWRmNmZkZjU5NzM5M2ViNTU3Nzg1OGU0ODUgbGVnYWN5LXRydW5rCis3NzI3MiBlYjkyNGZhZDkyNzIwNjIwZDk0ODYyYTZjYmNlNTc1OTQ0ZTVlNGY4IHJlbGVhc2UyNi1tYWludAorNzcyNzMgMDNiZmUzMmVmODQ5Y2E4NjNkNjg0MDM4MTBkZjZkNjY0NTljOTk2MiBweTNrCis3NzI3NCAzNTFmYzQyNTBjMWIwYzdhNjU5OWQ4MjVlYWQ3ZmY2NWEyZGU0OTdkIHJlbGVhc2UzMS1tYWludAorNzcyNzUgMGY4YTU4NzkyNTYzYzMzNTRiYTFlYjM4ZGE5OTU2NTNmY2U5YTA2OCBsZWdhY3ktdHJ1bmsKKzc3Mjc2IDliOWFkYzQyYzczYTJhZWJiMTQ4Y2U0ZmNjNGFmNmY5N2NiOGZkOWIgcHkzaworNzcyNzcgOWMxZjMwNmZiMGRmYTU4NDhiNTMwMzdkYWIzZjQ0NDBkNWQ5NTZkNyByZWxlYXNlMjYtbWFpbnQKKzc3Mjc4IDc0NGUzOTFlNDJmZGYxNjAwZTVkNTA3ZjQ1NTRkYzExOTg2NWFmM2IgcmVsZWFzZTMxLW1haW50Cis3NzI3OSA1MTc0OWI2ZDYyZDNlYjJhNDAwZjhjMzM1YjY2N2RlOWY2ZjJlYjk2IGxlZ2FjeS10cnVuaworNzcyODAgOTBmMWU5MmRiNmYyMjU1OGUzZWM0YzMyOTFhMjFmOWNjNjU3Y2YyZCByZWxlYXNlMjYtbWFpbnQKKzc3MjgxIGI1NTg1MDA3MGE1NTE4ZTM3MTJhMWZjYTc5YjY4NWI3YmZmYjIzOTEgcHkzaworNzcyODIgMjM0YmVhYWZkMGM2ZGQyYTA0ZjMyNjE4ZDYzYWFiZDQxMzdkMjhhMCByZWxlYXNlMzEtbWFpbnQKKzc3MjgzIDA2Yzk2OGViNGI0MDNjMjg1NTMyNTBkMjQxMmMxZDZjNDI3MGZmZGUgcHkzaworNzcyODQgN2JjZTcyNmVjNDQwYjE2ZGMxZTk4ZTA5NTJlZjk0N2U0ODQ4YzMxMSBsZWdhY3ktdHJ1bmsKKzc3Mjg1IDM5MTE1MjRhZmMyZDZmMWZlODIyNmY0ZmZmMDIzNjVjZDM1YTYxNDcgcHkzaworNzcyODYgYzcyNjUyMTQ1YjIzNWQ3MzcyYzg4Y2NlMzBhNzNhMTM3OGI5YmMxOSBsZWdhY3ktdHJ1bmsKKzc3Mjg3IGVjYzhhNDU4OTRjOTQxZmEyYWYxYzZiNjI0YTgwNjk1M2ZhOGYzOWMgcHkzaworNzcyODggYzg1N2I1NjY5OWI1NzJkNmFiNjhiZDhkNWI0MjYwYzdkNTg4YTU0ZSBsZWdhY3ktdHJ1bmsKKzc3Mjg5IGM1ODAyYWI5ZTM0ZTcxNTRmNGNkNTBiNjc1NGJkMGE3YmYxZmNhYmYgcHkzaworNzcyOTAgZmM4MzNlZGJhNzY5OWZiYmNjZWFkOGZiODQ1NWY1NTM0ZjRjZDVlZSBsZWdhY3ktdHJ1bmsKKzc3MjkxIDJjYmRhYjI0OTg1ODk3MGQ4NDIzYjhiNzkyNDdmMWM1OTYyYjMxMWUgcHkzaworNzcyOTIgNGJjMjZhODBlNzM3ZWEzZDNkNTU2YmU5MzY2NDQ5OGZmNWI2NTY2YyBsZWdhY3ktdHJ1bmsKKzc3MjkzIGY3ZTA5YmEwY2I1NWEzZjNiOTYyMjljYmIzMTJjYjJmZTE1NWNiZjUgbGVnYWN5LXRydW5rCis3NzI5NCA2MDQ5ZmU0MDIyZmZhNDY3YzBmMDU0NjgxYTdmNjMxYWIzNWNjZTAzIHB5M2sKKzc3Mjk1IGQzOTlmNmRjOWVlNDgzOWYzZWQzNzM0ZmQ4NjAwMzZmMTMxMjdlZGIgcHkzaworNzcyOTYgMGZmMmRhYTgzZDBkN2Q1M2ViMzlkN2VlZDJjYjdiNDY1ZWRlYmI5NyBweTNrCis3NzI5NyBlZmJhYzdkM2EzNjg1MDQ0ZmI1YzJkODczOTk5NjI5ZTI3NTU5NTFmIHB5M2sKKzc3Mjk4IDBmY2VmOWQzOTU5NDAxYjE4NGFkYzJhOTEyYTIxYjZmOTY4MThjYjUgbGVnYWN5LXRydW5rCis3NzI5OSA1OWM0NzE0MTg3MTg1ZjA5MWQ4MDgxNTcwODM2NjdmNzEzYzBlY2Q1IHB5M2sKKzc3MzAwIDJmNjc2MjU4ODZmNjAwMzU1N2ViN2Y5YThkNDgxOTZlNDc5NjdiZmYgcHkzaworNzczMDEgZDU3MjkxZjVlNjY4MTFjMWIxOTk1NDA2MTJjY2ZmOTMyOTg2Njc4OCByZWxlYXNlMzEtbWFpbnQKKzc3MzAyIDhjYTM3Nzg1MzMyMWUzZWQ2YTcxNDFjYmJmNTc3M2QyZWY3YWRiZWQgbGVnYWN5LXRydW5rCis3NzMwMyA0ZmI4ZWFmMTRmMDljYjE5ZjdmNzk0NTMyNDVmYWVkY2Y4OTlhNTk2IHJlbGVhc2UyNi1tYWludAorNzczMDQgZTFmMTMxM2NlNmRhMThmNzJmOTA0MGU1ZTY5NjZmMjg1OGY0MTkwOSBweTNrCis3NzMwNSA3MGY2ZmEzMDg0ZTY3ZGQ4ODI4ODY3YzA2NjQyMTBjYmUxNDc0NDUyIHJlbGVhc2UzMS1tYWludAorNzczMDYgYWZmNWRlNWNjNDQxMGZkOGQxMmVmYWJhNjc5MTVhMjYxOTZiYTQ3MiBsZWdhY3ktdHJ1bmsKKzc3MzA3IDBmZTI1ZTA3Yjc3YjNjY2FkMWIzNzliZGJmOGQ1M2VkZDZjMTM1MzYgcmVsZWFzZTI2LW1haW50Cis3NzMwOCAzMTc1MmNhMDA3Y2YyZjNlNDBiNTNjMmYwN2NmZmMwMjExYjAxYjAwIHB5M2sKKzc3MzA5IGZhMmIyN2ZhNTQxOWU4MWY5ZmM1NGRkOGQ0MGVkY2U5ZDVmMWMyMmIgcmVsZWFzZTMxLW1haW50Cis3NzMxMCA0NDJlMTcwYjU2YzNmN2Y0OWZkYWVmMzBhMTE5YWRjOTU2YTM0MDcyIGxlZ2FjeS10cnVuaworNzczMTEgZTYyMmIyY2ZlZjEyZDZmZjE5Mzg2NWRhNGI5YmQzZmJkNGVjYmUwMiBsZWdhY3ktdHJ1bmsKKzc3MzEyIDc3NjY0N2UzZmIwN2RkMjRjNGI4Y2Y5YmQzOTNkMjkxM2ZlNDQzZjYgcHkzaworNzczMTMgYjA1NzQzY2U1ZTk0MzJmZjU2NzU5MzBhM2FlZmM3YmI5YzI2Zjk3YyBsZWdhY3ktdHJ1bmsKKzc3MzE0IDRhYWIwMjk1NGRlMWQ5ZGNkZDQyMTQxMDI2NmUyN2Y4NTNhNTRkNzcgcHkzaworNzczMTUgMjJlMGZjMjBlOTExMzNkODczY2U4NWQ4ZWFkMjZmZjM4MmMyM2IyMSByZWxlYXNlMzEtbWFpbnQKKzc3MzE2IDJjZGJhNTE2N2RmMWExNTU4ODQ1NDg2NTUyYjVkYjM3YjgxYjNiYzggcHkzaworNzczMTcgYTJkNmQzNDU0NzBlOTRhMzgwNjg1YWIwNTdjZTJhZGUxNTkwOGI3OCBsZWdhY3ktdHJ1bmsKKzc3MzE5IDNlY2VlZjM3ODA2NWE1NWE5N2Q2YjJkMjJkNWM2NzVjYjgwYTNiMTAgcmVsZWFzZTI2LW1haW50Cis3NzMyMiBmOWQyYzM0MjZlMTQ4YzUxMTVhMzMyODZmZmEzYTAxNmE1ZGY3MzNjIHB5M2stY2RlY2ltYWwKKzc3MzIzIGQ2YmEzN2UzMjc3NjM3MDY3ZGQ4MmE1OGNkNTcxZmE0MWRkNTI1ODUgcHkzay1jZGVjaW1hbAorNzczMjQgODgyYzllNzExYTJkMDU5M2Y0Y2JkNWZkM2MwOTY1MDg0MTE2Y2VmNCBsZWdhY3ktdHJ1bmsKKzc3MzI1IDg2YmY0NDBiZjliZjM1N2FjZGNiNDMwNzYzZDFkY2U3ZWY3YmQzNzAgcmVsZWFzZTI2LW1haW50Cis3NzMyNiA2MTNiOThkMGQ4OGJlMDJmN2Q1NDdlMjA4MjNkZTM4NDUyYWU4MDE0IHB5M2sKKzc3MzI3IDA3YTc0OWYwNjZhMTE3MWYzNWIzNjRlODIyZmQyOGM5M2U0NGYxMTMgcmVsZWFzZTMxLW1haW50Cis3NzMyOCBhMTkwMTcxMWIyMjViNDAzOWJjYThlZjE1OTdhZTJiZGVhODdhOTNjIHB5M2stY2RlY2ltYWwKKzc3MzI5IDMwNzA2NmYwMmFjNTJhNDIzM2Q3Yjc5OGJlNTI1MWUwMTdiZmE1OWMgcHkzay1jZGVjaW1hbAorNzczMzEgZjU2MGE4MTdiZmNiNTEyNTIwNDYyODU5NjYzNzA4ZWJhYzQ2ZjQzZCBsZWdhY3ktdHJ1bmsKKzc3MzMyIDhlODJkZDU1MjJmMDM5Yzc4Zjg2YzAxNjFkZmYzMzkzZjlmODY4NmIgbGVnYWN5LXRydW5rCis3NzMzMyBhOGZiZjI5NGQyMmU1YzVmZDk4NGY1ZDFjYzY4MjNhNmM0YmQ2MDk2IGxlZ2FjeS10cnVuaworNzczMzQgOTllN2MxYjhiMWUxZWUxOTgzOTdiMjNlNGNjMDExNjIyMzcxNjZlMyByZWxlYXNlMjYtbWFpbnQKKzc3MzM1IGIzYmI4YjNlNWU0ZWJhNWU2OGFhMjI5Y2Y5ZTM1ZDIzZWE3NmFjNDIgcmVsZWFzZTMxLW1haW50Cis3NzMzNiAwZmE5ZWU0ZWFiODg3NDNmNTgwMjBlMzkyNjY4Mjk0ZDRjZTNhODBjIHJlbGVhc2UyNi1tYWludAorNzczMzcgNmFkNTNmNjcwNTZhODQyMDc0N2JjMWE5YTJmOWQyZDFjOWM0NTk3NSBsZWdhY3ktdHJ1bmsKKzc3MzM4IDI1YzFlNTdjYTFiM2UxODk3ZDhmYzNhMmZiNzg2YzdmY2JhOTRiYzkgbGVnYWN5LXRydW5rCis3NzMzOSA2MTQ0Y2Q0ZDQyMWJhMzI2ZGNhYWE4NGZhNmNiMjVjMTRjNWFjZjI5IGxlZ2FjeS10cnVuaworNzczNDAgYzYxODEzN2YzZmQzYjdkNDk1YjE5ZDk5ZjE0MjExYzJiN2RlOGQ5NSByZWxlYXNlMjYtbWFpbnQKKzc3MzQxIDdiMTI1NDU3MzY1NjRiYzk5NzA3NTYzODI5YWMwNWJmOGEwODljZjEgcHkzaworNzczNDIgODcxNjEwNjllZWYyM2ZjZWUyN2E1YWUzYzRmNjcxODBkZTE3MTRjNyBweTNrLWNkZWNpbWFsCis3NzM0NCAzMTViNThjYjEzYTYzN2M5ZGY1MTBhNjdhNGI5Y2Y3YTk2MzJkYWEzIHB5M2stY2RlY2ltYWwKKzc3MzQ1IGQ4OGUzZjU5OGFhNDEyY2YzYzNkN2I3NzgzNTBkYjhhNzJkZDA5ZjYgcHkzay1jZGVjaW1hbAorNzczNDYgZGU3M2I4NThkZTExZDIxMzljYzRmNjRmZGRjYTQ4NmFkMjE2ZmJiNCBweTNrLWNkZWNpbWFsCis3NzM0NyBmZTVlYzk4ZGU5ZGExZTczMDlkZjU0MDdiNzEyMDJkNWIxZjk4MDZkIHB5M2stY2RlY2ltYWwKKzc3MzQ4IGI4MjY5NDEwNzE1MWMyOGE1ZTFjYzQwNmQ4MTcwZTA4NDg4NWJjYzUgcHkzay1jZGVjaW1hbAorNzczNDkgMjI0NTg4NGM4NmU2MTU3MWJkMjdkYjcwODNjMGY1OGM5ODYyMDk5ZCBweTNrLWNkZWNpbWFsCis3NzM1MCBlMTNkMDcyNDNjNzNhMGM4MmMwOGFkYjAxZDRkODZmOTY1YTU5OTg0IHB5M2stY2RlY2ltYWwKKzc3MzUxIDc0MGE3ODdkYzU5YTBiMjNmNGNjZDZmNmZjYjYxZWM2YzlmNzFiZDMgcHkzay1jZGVjaW1hbAorNzczNTIgMTU5MDRkNWI5OGRiNDc2MDBhNWI4OTkzZGVmYTk3ZDAxYWYyNDE1MiBsZWdhY3ktdHJ1bmsKKzc3MzUzIDIyYTMyOTJjZjY3MjJjN2QwZWRmNDRlYWZkNWFiODM0ZjJlMzY2MTAgbGVnYWN5LXRydW5rCis3NzM1NCBlMGI3ZTgxYWNmNmYzMzI1Yzk3MTk2ODkyYjk0Njk3MDhiNjU4Mjk5IGxlZ2FjeS10cnVuaworNzczNTUgODkwM2VhNmE5ZTY0NzkxNTY3NDU1YTRmYWFhZjRlYWIzMGM5MWUyZiBweTNrCis3NzM1NiBkMzk0MjBhMjdlNjQ2MDhjNjA3NzY5NWYxNDJiMWQ2YTJkYTA1ZGE5IHJlbGVhc2UzMS1tYWludAorNzczNTcgYWZlNmRkZTgwYWJiMzlkNjE4NjRiYWEwNzRmNTA4NWNkMjA0YzdhMyByZWxlYXNlMjYtbWFpbnQKKzc3MzU4IDUxOGFjYjEyZjM1N2ViYTAwZGRhYzFlODlhNjFjZjg0Y2VmZWY3OTUgcHkzay1jZGVjaW1hbAorNzczNTkgYTY0Y2ZlZjFkYTA3NTM3ZjM2NzE0ZmUzMWQwZGZiNDIxMTE1YThlNCBsZWdhY3ktdHJ1bmsKKzc3MzYwIGYyMWYyYzkzMzI5ZWIwODc4ODhkNThlZmViZjRjOWQ2MmI5Y2JmYTcgbGVnYWN5LXRydW5rCis3NzM2MiAxMGI2Njc4ZjVjMDRiM2I2MDViNTQ4ZmViYmY2OGFhNjY3ZGNmYTQxIGxlZ2FjeS10cnVuaworNzczNjMgMzVmZTIwNjlhYjFkOWVhODRmZGE4YzdkNTIwNTNiZjZkNzkzNmFmYSBweTNrCis3NzM2NCA1OWUxYjAzMDZjMGU4NmI0Y2RmNGM3ODU5NGViYTIwYTViNTk4NzM0IHJlbGVhc2UyNi1tYWludAorNzczNjUgODRjYWFjNzFkNzliZDNlOWVlN2U3NGU1Y2NiYjhhM2M4ZDUxMmRiMiBweTNrCis3NzM2NiBiMGVkMzVjOTlkYzZkOWEwM2YyZDFiMjM5M2MwMmUxNzFlMGUyNjE3IHJlbGVhc2UzMS1tYWludAorNzczNjcgN2E2NzUxNWJmOGUzMDhiNjg0ZjA4YmVmODA3NTU2YzM5NzcxMzUzZSByZWxlYXNlMjYtbWFpbnQKKzc3MzY4IDdjYWY1NGNlNTI5ZTdkMjFiM2NjNGY0ZWIwMTJmZDQ5YmZmMzM2Y2YgbGVnYWN5LXRydW5rCis3NzM2OSAwZGQxYWEzMzI2NWYzOGMyNDY2ZGM3NWY5YjIwNzFhMmZkZmI3ZDU2IGxlZ2FjeS10cnVuaworNzczNzAgOWU4ZDc3NTBlNDcwYjhlMDI5N2E4MDk2Yzc3ZTUxMWZhZWU0OTFjOCBsZWdhY3ktdHJ1bmsKKzc3MzcxIGJiNzI3MDMwMDA0N2Y0NDM4NjUxOGVjM2E1YzE2M2I2ZWIwM2RkZTAgbGVnYWN5LXRydW5rCis3NzM3MiAwYzdlYWQwMzRhMDNhOTJlZDVkNWQ3NzliMjY4ZjUzMmQ0ZmY5ZWUyIHJlbGVhc2UyNi1tYWludAorNzczNzMgZGEzZmQ3YTc3OWFjZDI3ODA3ZGZiNDk0YzVlY2YyZjgyOGE0NjhlZiBweTNrCis3NzM3NCBmM2ZlNTc5ZThmMTQ3YWYxNTkzYjI5NjA0MzEzYTBmYWEyMTE4YjdjIGxlZ2FjeS10cnVuaworNzczNzUgZjVjZWJmMTFkNWUwODk1MTgyODA3ZjhkODA5N2I4ZWNkNTI5MzllMCBweTNrCis3NzM3NiBhYzQ5MzFhYjAzNjllNjNkZGUwYmZmZWQyZTE1ZWQ3MzAxYzQ3NzkyIHJlbGVhc2UyNi1tYWludAorNzczNzcgNjE1MDI3MTBmY2U5ZjM2OTM0ZTk3MTAxN2M1Y2EwMzUzZTE5MGI5ZiBsZWdhY3ktdHJ1bmsKKzc3Mzc4IDFiZGExZjZiODVkNGFlMGFjOTc5ZDRiMDcwOWU1M2RjZmVjNjIyZGMgcmVsZWFzZTI2LW1haW50Cis3NzM3OSBkODQ2ODIwOGU4ODI0NjA5ZTRkNDg4MGQ2MzZhMWFjYTY0MTU4MjI0IHJlbGVhc2UyNi1tYWludAorNzczODAgYTFmYjU3NTUzMWIxMDM0Yjg4NjUyMjVlODgzYjExMjc4Nzg1NDU4YSBweTNrCis3NzM4MSBiNzc0OTVjNzdhZTQwN2EyZTE0NGU2MjljMzlmNTU0ZGQ0MTM1ODZiIHJlbGVhc2UzMS1tYWludAorNzczODIgYWVlNWExZjMyYjAwYmY2MDFmNWM2MmJlNmNhNjRlN2I3YzViNGQ4OCBsZWdhY3ktdHJ1bmsKKzc3MzgzIDQ0MWJmY2Q1NWYyZDliN2EzNGI5ZGI3N2Q1NWUzMzY5NGViNzVkMDEgcHkzaworNzczODQgYWRjODVlYmM3MjcxY2MyMmUyNGU4MTY3ODJiYjJiOGQ3ZmEzYTZiMyBsZWdhY3ktdHJ1bmsKKzc3Mzg1IGIzODZlNTNkZjkwNjkyYzZhMjZhOWUzYjU3MGM0MmNlZmE5ZWYxMzEgbGVnYWN5LXRydW5rCis3NzM4NiBlNTdjZmM1MjY2NTZmNjZkM2ZjM2VhMGJhN2M5MjI3NmM0ZGY5YmM1IGxlZ2FjeS10cnVuaworNzczODcgNWFiMmJjMmY2ZGI4MTVlZTUxNDRmODg4ODRkZjlmNDA1ZDVhMWFiMiBweTNrCis3NzM4OCBhZjFlZDE5NzE3ZWYzOWM5MzIyNzBiMmZiZDQ4MzQwZDA0MjU2YjQ1IHB5M2sKKzc3Mzg5IDg5YTlkZDhjNjI4ZDRjMDU0MWMxOTg4MWIwNWQyMzY0Mjg0ZTZhMzMgcHkzaworNzczOTAgYWFkZmMzMWIzZjE0MWYzODlmZWU0YzVlZmFjZTM1ZWYwYTc0OTBmMiByZWxlYXNlMzEtbWFpbnQKKzc3MzkxIDQ2NzVmMTFmYjEyNWQ2OWU5MGJiZjhiNDE0ODU2NjM3NjJmYjM1YjggbGVnYWN5LXRydW5rCis3NzM5MiBiNDA3ZThiZWNhNGE0N2U0MGJhNGFhNmZhNDIwMWJkMmRmZDZkY2Q5IHJlbGVhc2UyNi1tYWludAorNzczOTMgZjJkNTQwOTZkYzhjMjgzOTM5MDgxYzZhYTgwZGRlNmZiNGY4ZDgzYiBweTNrCis3NzM5NCBmOWMwYzQxMWY4MGNjZDE2NjI4YmU0MGQxNzljYzllOTY1NTUyODU2IHB5M2sKKzc3Mzk1IGFiODhkYWE0ZDJjZTJjMWYzZGQ2NGZkMGM0MDk3ZWNlZjAxY2E3MzYgcHkzaworNzczOTYgYTdhYjFhYmRlYjkyMGE1NGM3Mzk5OGM3NzZkODFkOWVmMmU2MjZkYSBweTNrCis3NzM5NyBjMWJlYzJkYjFmY2Q3MzVlNzAyYWZjZDNmNTVmYmYwYjBlZjc5ZTFjIHJlbGVhc2UzMS1tYWludAorNzczOTggN2UyYWY0ZTU3MDM5ZmJiNjcxYjRiNmY5NzE0MjBiYmMxM2M0ZmI0NCBweTNrCis3NzM5OSA2N2Y3YTBlOWUyMzMyNDM5YzcwMzJhYzRmOWY0NzVkNjhlZTYyY2YzIHB5M2sKKzc3NDAwIGMyZmRmMjUzMjlmZjMwY2Y4ZDY4YzBjMGU3Y2Y0NzlkN2IyMDM3NDUgbGVnYWN5LXRydW5rCis3NzQwMSAyY2ZmM2JjZTQwOTY3MjgzNzhiMDFhNzczODkyNGQ5NmQzZmVhNTYwIGxlZ2FjeS10cnVuaworNzc0MDIgMWYxNzc4MThmMWQwYTczNGZjNjE0MjJjM2JmMjI4OWEyNDg2NjUxMyBsZWdhY3ktdHJ1bmsKKzc3NDAzIDc1NTBiNGI5MDVjNzA3Y2ZkYmY0N2ZiNjVkNTMwODZhN2QwNDg5MmEgbGVnYWN5LXRydW5rCis3NzQwNCAzZmE2NzA3ZGY5OGNjMDRjOTI0NjJmOTI5NjIzNTQxNDdjZDVmODRmIHJlbGVhc2UyNi1tYWludAorNzc0MDUgNzhjM2ViNWMwNWZiMjg2MzM1NWI5ODAxNTM5NWZiNjY5NDFiZjA2YiBweTNrCis3NzQwNiBlN2ZhMzk1OTkzNTU0MWE5Y2IxYzUyZTJiYmZhZWIzMTkxZjRmYmJiIHJlbGVhc2UzMS1tYWludAorNzc0MDcgMzM5OGE4Yjc0MzNkMDYyNmU3NjBmOWZlYThhMWFiNzdjMDdhYzQwMyBweTNrCis3NzQwOCA0MDVjOWI2MzllMDU1MTc4Mzk3ZjRhMmM2NjRjZGI1Nzc3ZGIzZWQxIHB5M2sKKzc3NDA5IGZiZjQ5ODdlNTE0YTI3MjgzZjE5MmNmNzU2NTQ5ZDYwYzQ3YWQ5NzMgcmVsZWFzZTMxLW1haW50Cis3NzQxMCAzZTE3MTIyMjFmYTY4NjdmNWRiZTMxMzEzMGQ4ZWI0YzA5MTE0ZWVlIGxlZ2FjeS10cnVuaworNzc0MTEgYTY2NjY3NzA0YWIwZTZlODFmYzY5Yzk0YjAyNGIyY2E4OGUxMGIyYSBsZWdhY3ktdHJ1bmsKKzc3NDEyIDk3YTQwNDE3OWU1OWQ0OGU4MGQxMmI5MTFmOTYzNjdhYmRjZjk3MmEgbGVnYWN5LXRydW5rCis3NzQxMyAyNTQyNTU3YTEyYmQ3MGNkMjdjZWJmMjY0MmVkODAwMmI1MmQ1YTM2IHJlbGVhc2UyNi1tYWludAorNzc0MTQgNzFmMjQ5MWQ4ZjJmNGE1N2E4MzA1MTZiZmNjNGFhZTgyNzcxZTE4ZiBweTNrCis3NzQxNSA2OGZhOTUzYjVlNzZiMTQxZmQ3NTc1ZmYyZmEzZTVkNWJiZTJmMGVkIHJlbGVhc2UzMS1tYWludAorNzc0MTYgY2MzMmQ1N2UwNmIwNDE3NjFiYWJjNTljOTIwYWVlMzM2Nzk2NTliOSByZWxlYXNlMjYtbWFpbnQKKzc3NDE3IGYwMDEwOWUxNmVhYjkwODMwMGZlOGZlOTAzZjIwYzlkNDM4ZmQzYzYgcHkzaworNzc0MTggZGQzMWIxYzAzM2IyYjBhYWIwMjcwZWE5Y2Y0ZTkxZDg2NWY3OWNjNSByZWxlYXNlMzEtbWFpbnQKKzc3NDIwIGRjZTc0YTg3MzBmNTdjZWJjMDczZTQ0NWFiZGUyMjNlYzBiN2NjYjcgbGVnYWN5LXRydW5rCis3NzQyMSAzM2U0MDI5MDljZjI5YmEwZWYzZDE4MzE1OTM5N2JlYTE2ZDNmOTBhIGxlZ2FjeS10cnVuaworNzc0MjIgZWRmZWQwZTMyY2VkZjNiODRjNmU5OTkwNTI0ODZhNzUwYTNmNWJlZSBsZWdhY3ktdHJ1bmsKKzc3NDIzIDhhNWFjOWZmNTA1N2YwZTY2ZjY1Njg1YzRlZTUzNjI3NWRiOTUxYzMgbGVnYWN5LXRydW5rCis3NzQyNCAyZjkzNmI3ODMxYjY3Y2ZlN2NmZDcwNDg4NWMzY2Q1ZjNiNTM5Mjk1IGxlZ2FjeS10cnVuaworNzc0MjUgOGEzMjA2OTRlNTNiNWZjNzk1NjY1ZTYzMjYwYzJjMTA3Y2NmZmYyOCByZWxlYXNlMjYtbWFpbnQKKzc3NDI2IDA1ZmI3MWYwMjUzZDhkYTIyYTUzZGI0YmY5MDcwNmY3MmYwMjdiMTYgbGVnYWN5LXRydW5rCis3NzQyNyA4ZjVjZDNlYjdjNzM0Y2Y2NmVmYzVlNmY4MGUwZTQ2ODY3MGQ3ZTkzIHB5M2sKKzc3NDI4IGQ5ODA1YTk2MzUxYzA2MDFhYWRmMDMzOGUwMDI2OTUwYjQyZWVkMTkgbGVnYWN5LXRydW5rCis3NzQyOSBiNGNlMGM4YjBiY2ZmZTg5ZTRlMjI4MzczY2NjMzY2MTk0YWZjZTRiIHB5M2sKKzc3NDMwIDljODUyYTMxZTg3Y2UwMWY2ZmMwMmE5ZTBjYTVlODY3ZmUzY2MyYzUgcmVsZWFzZTMxLW1haW50Cis3NzQzMSAzZWVjMmU5ZDY0OTNmNTVhMGQyZjkyMmFkMzY3ZTIyOTE2ZDg2MTYxIGxlZ2FjeS10cnVuaworNzc0MzIgMjM1YzgyNjQzNDc0Yzg5NzMwMGQzNDg1ODBhZTNmMjQ5OTkwZmFjNSByZWxlYXNlMjYtbWFpbnQKKzc3NDMzIDMyZWFiNDQzYTk2YjEzNTFkMGY0YjE5YjUyN2E2MmFkNjBlMjU3MmQgcHkzaworNzc0MzQgM2ViMjlhYzdiMjBhNjRjOTFjYzc0NTI3ZTAzOWJkYWU1YWNmODk0ZiByZWxlYXNlMzEtbWFpbnQKKzc3NDM2IGYyMzU4ZDMzZjEwOWRkZGQ1ZGY4MzM5OTJhZTIzMGVjMWYyNTI2MWIgcmVsZWFzZTI2LW1haW50Cis3NzQzNyBlZmE1ODY3ZDhhMTRkMTljYjkzZDdmMzU0MTY5YzM3Y2ZjMWU4ZGU0IHB5M2sKKzc3NDM4IGUzMGZjYjk1NmI1ZmNmMjJiMWRiNjBjZGZmY2M3MTY3MGU5MmUyYWUgbGVnYWN5LXRydW5rCis3NzQzOSA0MWNlYTY2YTI0MjZhNTQ2MGUxNTFlMjEwNzU5ZWQwNjc0Y2FlMzBjIHJlbGVhc2UyNi1tYWludAorNzc0NDAgOWY5MGRiMjc2MGQ5YjgxZWJhMTdjMjIzOGI4NjYzZjI3Y2RiNmQ5MSBweTNrCis3NzQ0MSBkMDhkODZlYWQzNzVhMjJkYmI4MzAyMDExNmIwZDBkMDRmY2FjZGI2IHB5M2sKKzc3NDQyIDhmZDEyZWE2M2M2YWM2ZTJkNWQ2Mzk3NDAxYThjZTNhNzc4NDVkNzggbGVnYWN5LXRydW5rCis3NzQ0MyAyZjU0ZjdlOWMyYjE5YjYyYjU5NTQ0YzQ0MTRlN2JhOWZmMjk4NmZjIHJlbGVhc2UyNi1tYWludAorNzc0NDQgN2NlMjI1OGRlZThhNTg5YzY0NjI4YzY2YTAyMTUyNzE2NTUwZmRjYyBweTNrCis3NzQ0NSA3ZDdiNTc2NWI0NmY3YzRlMTIyMTI2MGQwZGY0OTk0MTZkMzU0YjhhIGxlZ2FjeS10cnVuaworNzc0NDYgMWNjYThkOGY5ZWU1MGU2YmM2NjZiZjZhNDAwNzNkZWU1YmVmZjYxZiByZWxlYXNlMjYtbWFpbnQKKzc3NDQ3IGM1ZGJlZmJjOTMyMTJjYjc1ZTJlODlhYTQ4MDE1ZjMxZjZhNDFiZTEgcHkzaworNzc0NDggMjNmMjFmNDgyMjk0ODU1ZWFiOWFiZDdjNmYwYWUxMTUzM2FjYWQ3NyBsZWdhY3ktdHJ1bmsKKzc3NDQ5IGI3NjQ5NzMzYTM1NDVlNDFhYzgxYmZkNzQwMmQ1MzQ2ZDZkMjU4YTggcHkzaworNzc0NTAgMmE5ZjY2ZGY0ZGM0Njc5MzYzZjVkMzM1OWEzNTk1ZmFiODA3ZWYxNCBsZWdhY3ktdHJ1bmsKKzc3NDUxIGI0ZjMwMWNlYTExNTZhNGNiZjllOGM2MDY4ZTExMjFiMzdiNTQ5MjggbGVnYWN5LXRydW5rCis3NzQ1MiBjMzJkM2IwOGZjZGMxNTU5ODc2YjZiYmIzMDA0MzM2NzY2NTA4MzljIHB5M2sKKzc3NDUzIGJlMzJmNjExMTgzYjkwM2Y0NjUzN2Q2NTQxMmRhOTE0ZTljZDU0YmYgcmVsZWFzZTMxLW1haW50Cis3NzQ1NCBmNWZkMDFiYTQ3YmUwYjdlODgyMjk0NTQ0MmQxNmJkYzI2NzI4NTVjIHJlbGVhc2UyNi1tYWludAorNzc0NTUgYjgwZDI5NjI5NzhjOGNmMTlkMmU1YmQ2YzU5ZmViMGYzZWRhYjViYSBsZWdhY3ktdHJ1bmsKKzc3NDU2IDJhOWNmZTJjZTU5YjQwYmM5OTk3NjNjMGY1ZmJlMGU5NWZhNGFlMjEgcmVsZWFzZTI2LW1haW50Cis3NzQ1NyA2NjJkZmZjMWIzNGQzZjYwZDVmNjE2MDc5N2RlZTA1NDNjMTg0ODhlIHB5M2sKKzc3NDU4IDdiNWY1YWY0ZjVhY2IyZGVmY2E4ZWUzNzEwNzZiODVmM2ZlYjA1MDAgcmVsZWFzZTMxLW1haW50Cis3NzQ1OSBhNmJmNjhlNmU4MjRjNzkwMTg2YTI4NjQ1YjU3NGE0M2YwMGM0OGJmIHB5M2sKKzc3NDYwIDNjMGE0MzNiMjZlMWZjYTFmNDg1ZDYwNjlhNGE3NDA2NGM4NTA2ZGUgcmVsZWFzZTMxLW1haW50Cis3NzQ2MSA2NmYxZDRhNGM3OTk0ZjkzYjJiNDEyYjU3Nzk3YmQ1MDg3OTljYWExIGxlZ2FjeS10cnVuaworNzc0NjIgNWNhMTk0OGE4ZmQ2OTMyMjJlNDc1ZDBiZTlkYmI0NTk2NGVlOWYzZSBweTNrCis3NzQ2MyBkNTEzNTg2NDVlNjA2Mzc1OTkzMTYxODAxNGYwMzZmZjNjZDFmY2U2IGxlZ2FjeS10cnVuaworNzc0NjQgODUzN2MzNzM2ZTk5Njc3ZWM1YjI0NzVmZjIxOTVlMmFkMmU0MjQ0ZCBweTNrCis3NzQ2NSBkMWZkMGEzNGJiMzY4MjkwMDA1ZmU2NTYzNGU1Yzg5N2JmMmNiNjZlIHB5M2sKKzc3NDY2IGJhZDFhZTNmZDA2MDczYTI5ZmQyYzRmY2VjNzg5NWVlODJkZmE2MzYgbGVnYWN5LXRydW5rCis3NzQ2NyAzMTI1MGMzNDgzM2E0NDIyZmFhN2EwNzkyZjk0YmEyYzM3MTgyNmEyIGxlZ2FjeS10cnVuaworNzc0NjggMTViMDY2OGYwZGM1OTdmZTY0ZDFhMmU0YTkwMjc0MTk5OTAwYzVhMSBweTNrCis3NzQ2OSA2MjJmNzliYmE1MjMxYTgzYzZlOGMwYmY4OTAwODRiM2QyMWJiZjgxIGxlZ2FjeS10cnVuaworNzc0NzAgOTIyNWVhNjc3YzRiMjcxMzc5MDAxYzQ5N2MwMTc5MjcxNTA2ZDNiZSBsZWdhY3ktdHJ1bmsKKzc3NDcxIGU1ZTU1ZmZlOWY3MzhiMDhkM2U4MTk2YjIyZjRjZmVhYjI1YmExZjkgcHkzaworNzc0NzIgYjIxZWZjMGNmZThiYmU1NTIwOTc4MjgwNzQ4M2E1Mjg3ODE5NGIwNyBsZWdhY3ktdHJ1bmsKKzc3NDczIDhlMjdkM2I4ZDJlYzQ1OTY4ZjBhZDZjMDdiNmNhMzQ1N2RhMmQxN2MgbGVnYWN5LXRydW5rCis3NzQ3NCBhYjkwNWY3NGJmMTE3YTFhNjhkMDdlODViNjIwMGI3YmFhMTA1NDE3IHB5M2sKKzc3NDc1IGM1YjZhNWI4M2FiNWRjNjcyNzA3M2YxYTIwODY3ODBiZTQ0Y2JlOTYgbGVnYWN5LXRydW5rCis3NzQ3NiA5ZmM3ZjI5N2QxMzJiOWE1YTEyOTMxZTFhYjc1MTFmMmMxZTQ2OWZjIHB5M2sKKzc3NDc3IDU3MTAyMjgzYWI1ZWNmNTUzMzlkMGY4YTkyNjhkZmNiNjgwNWNkZjcgbGVnYWN5LXRydW5rCis3NzQ3OCBjNWEwYTVkNmFjYjA3YmE5YzIzODYwNGIyMzhhY2FjOGYzNWU0MGYwIGxlZ2FjeS10cnVuaworNzc0NzkgNGY0ZjAwMWM4MWY1NTllMzRmYWVjZDAxOTU3YzljYjg4YjJkYmQwMiBweTNrCis3NzQ4MCA0NzhhYmM3YmNhYWFkY2EzMzYzMzM2ZjM4ZjJiZjY4MDc0OGI1OWQ0IHJlbGVhc2UzMS1tYWludAorNzc0ODEgMGY5NzRiYjIzOGVkYWEzZjFjMmQxZWJmZmM0ZGU0MDVhNGJkZmNhZCBsZWdhY3ktdHJ1bmsKKzc3NDgyIGM3ZjMzZDUyMTZmOWM0MGMyMmEwMTk3Y2RkODg5OTVkMDg3NTIyODYgbGVnYWN5LXRydW5rCis3NzQ4MyBiMzlhMDIxOWY3MjdlOTNiNGQ2OTFjMTcyODNkZTI1ZmJkNGM0YTdlIGxlZ2FjeS10cnVuaworNzc0ODQgMTAzMDY3ODBlNWMwY2Y1ZGRmNzM0NWNmY2I3MmMzMTZjYjhmZTQ4OCBsZWdhY3ktdHJ1bmsKKzc3NDg1IDIwMWI0NjFhMTJiZGZiMWM4MmRjNzAwMTA0NGQwZGY1MGEyNjUwODIgcHkzaworNzc0ODYgZThmODQ2MWQ2ZDFkZjUxZjE2OGY5YWJhZDRkMjI4YzdkMzk5NDNlOCBsZWdhY3ktdHJ1bmsKKzc3NDg3IGM0MzBlNjY0ZTYwNWJmZTBkNjJlMjQwNGRkMjcxZmJhYWEwZTFjZTcgbGVnYWN5LXRydW5rCis3NzQ4OCAwM2ZhNjFhMzdlMmQ1MmQwMDFiZTkwNzI2NmI2YThhMzgyNjlkZGVlIHJlbGVhc2UyNi1tYWludAorNzc0OTAgYWYxODA5ODEzZGU5NmQ2NDMxZjFhYTllNDllYTdmYzQ1ZmYyMzU1YyBsZWdhY3ktdHJ1bmsKKzc3NDkxIDc2ZmI3ZGJkNzM4ODQyMzJlMzBhZTFjYTAwOWExNmM0Yjg2MjViZTkgbGVnYWN5LXRydW5rCis3NzQ5MiA5MjM4NGQ3ZjQyNWE1OThlZGZmMjkyODIxYTk0ZTUxYjZhNjRmNWRiIGxlZ2FjeS10cnVuaworNzc0OTMgMTY4MmI5NjJlOGRlZTFjOGY1OWViOTUxZGFkMjhkZTY3ZDdlZTQxZSBsZWdhY3ktdHJ1bmsKKzc3NDk0IGNlMTFjMTI3MGI2OTA2Zjk0MjhhNjVmOTNjMzE1YTdmZTA4Yzc0YmMgcHkzaworNzc0OTUgZDc1OGViMmM4MjhlODZhNjIxOGVjYjFmYzE0ZWZjNmE5MWU4YmRlMCByZWxlYXNlMjYtbWFpbnQKKzc3NDk2IDliYWIzZDdhYjRmNTFiNzNlOTY0NjY1MWQ1MTEwNTRmMzA3YTY1MTMgcmVsZWFzZTMxLW1haW50Cis3NzQ5NyBiM2Y1MGQ2Y2I2NDA2YmEyYmMzMjk2NDIyZGE0ODYxMzIwNWY5OWNhIGxlZ2FjeS10cnVuaworNzc0OTggZDE0MGY0OTAxYTQyMzgwNmU5ZmFiZWU3NmZjZDA4NzdjYjViZTFhNyBweTNrCis3NzQ5OSA5ZTczYmU1ZmE4MGY4NmNjNWMwMjk5NmEyMDAyMTBiMTVhM2NjYWUzIGxlZ2FjeS10cnVuaworNzc1MDAgMzU0NjllNzlmZjgwNDZmZTJhMTNjODJmNjE5OTFkNmNmZTgwNGRmNiByZWxlYXNlMjYtbWFpbnQKKzc3NTAxIGViODRmNzIxN2M2NWQ5Mjc4ZTRjZjBjNjYwMWZjYjg1ODkwODBlNmEgcHkzaworNzc1MDIgODA0MTNjMTgyYTI4YjY4MDBlNzM5NzEyMjViMTJhNTdhNDMwY2YzMSByZWxlYXNlMzEtbWFpbnQKKzc3NTAzIDY1N2YxNjU4Mjk0MzczOWI5MDZmNjZmN2VmYWQ0MDE0NDkyYzhiMWMgcmVsZWFzZTI1LW1haW50Cis3NzUwNCBjNzZkNDFlNzQ0YzIzMTkwMzAwODk1MzZjYmJmNWU1NWJhM2IxNjYzIHJlbGVhc2UyNS1tYWludAorNzc1MDUgZDNiZWExNjY5ZjJkODkzZjI4ZDc1MTdjYzRkZDJkNDU3NTQzN2ExMCBsZWdhY3ktdHJ1bmsKKzc3NTA2IGVlZjJlYmMwODFkZWUwMDZmNmUzNzFiYzk4MDI1YzA3NzQ1MmUzZGUgbGVnYWN5LXRydW5rCis3NzUwNyBiZTBiZjBiYmQ5NGFmZmVjNTQxNjRmMDY1Y2U0MmMzZTZlZTI4ZTMxIHJlbGVhc2UyNi1tYWludAorNzc1MDggYjMwNDhhNTJlM2M4NWFjODMyMzViN2I5ZDUxNWYxNTQyZWIyMjIwYSBweTNrCis3NzUwOSAzYWFlZjJlZGZkYjM1NWRlNThiZGQyZTExZTg0ODIxZmJjYjJiYmUyIHJlbGVhc2UzMS1tYWludAorNzc1MTAgMWY4NGRkYWZiNmEzOTJjNGIwMDExMzU1NmZlMDdkNjkyYTc3MjE4MCBsZWdhY3ktdHJ1bmsKKzc3NTExIDc4NjEwYjQ4YzM5NmMxNjRmMzVhNzM1ZjA0ZDU2N2QxM2ZiOTVmMjggbGVnYWN5LXRydW5rCis3NzUxMiBlZjBkMDRkZTRhNDNmOWUwYzg0MGQ1MDIxYzZjNmVkY2JmMjM2YWJiIHJlbGVhc2UyNi1tYWludAorNzc1MTMgMDgyZDBlYWY4ZGRhZGM5Yzc5NThkOGVmMDlhNzc1YmIzMjc1NjA3MiBsZWdhY3ktdHJ1bmsKKzc3NTE0IDc2MDc2NjU5YjIyNDllMDQ0MTdmYjhlOTQyYWUzOTJmZTc2MmExNzQgcmVsZWFzZTI2LW1haW50Cis3NzUxNSBmNDdkMTk5ZWU2Njk3ZjBmNjA0NjNiYmIwYmQ3ZmZkMjY3MzI1MWE0IGxlZ2FjeS10cnVuaworNzc1MTYgMjAwNmZkODE2ZDIyNTIwMmMwNDZiYmZhNjI4NGFiZGFmYjUzYjYwMyBweTNrCis3NzUxNyA5MDA2MjQ1YjE5YWZmOWNmZmMwMDAxYTYwZjlmOWEwZTJhOWRiZTRlIGxlZ2FjeS10cnVuaworNzc1MTggNDI4OGM0MGM4NDQwNzViM2NkZTE3ZDg0ZWE3MGRmYmNiYzNjMzM5MiByZWxlYXNlMjYtbWFpbnQKKzc3NTE5IDU2NzNkYzNiNjQzMmU0YzkwYzk4NWI1MWU0Y2FiMzg0YmIwNTUxYTUgbGVnYWN5LXRydW5rCis3NzUyMCBlYWZhYmFkNWU2MDFlZWQ1NTUxMjA3ZTk3YWYxYWIwZmFiNjA1M2VmIHB5M2sKKzc3NTIxIDE4OWE1YWJiMjMyM2UxY2YzNWY5OGI5MTU0YmIyNjhiMTA0YmIxN2EgcHkzaworNzc1MjIgMzJkNmE5NGNkMGZhMzlmZTU4OGNiYzdjZTE5ZTljOTk5NTJmZGE1MCByZWxlYXNlMzEtbWFpbnQKKzc3NTIzIGExNmIyNGIyNWFjMzFhN2JmODk1YmE3YmI4NGJjYzk2YTk5NTU3N2QgcHkzaworNzc1MjQgMGZhYjNjMmRkMzE0Y2ZhZjgzMWI2ZWMxMGI5Zjg4OWY3Yzg0MWYxMyByZWxlYXNlMzEtbWFpbnQKKzc3NTI1IDI2OWMwOTkyMWJiMmZhNDdiYWVkNDFmMTBhZmQ0Nzk1N2VkN2U5MjkgbGVnYWN5LXRydW5rCis3NzUyNiAwODk1MDQwYWRlZmY1MjYyYjRhMGUxYmI1NDkyNGYzMzc1ODA1ZDI4IHJlbGVhc2UyNi1tYWludAorNzc1MjcgZjIyMTgzZTY4ODVjOTk0YzdjNjk5MmJkZWY5ZTU3NjlkMDVmMzk1MSByZWxlYXNlMjYtbWFpbnQKKzc3NTI4IDExYWQ0MmE3ODZhMjEzOTY0ZmEzNmI5ZDUxMjVlMjM0ZDE2NDc0NTYgbGVnYWN5LXRydW5rCis3NzUyOSBkMTQ5M2NkOTEzMDA2ZDUzYWQwNjY0ZTlmZjhlYmMyOGVhMGUwN2RhIHB5M2sKKzc3NTMwIDhlMTc5YTBmY2I1ZWI4YjU0NDE5YjBlNjRiZGQ1YWFlM2MwMGZjMzMgbGVnYWN5LXRydW5rCis3NzUzMiBjYTAwYWNjOWMzMDRlYjdhOWZmYTQ4NWY2MTg5ZTBhODc4YjEwYzE4IHJlbGVhc2UyNi1tYWludAorNzc1MzMgNWMzMmYzYjY1ZDIxNmZiMzRkZDc5NGEzYjAxNTcwYzRmYTUzZDQ4YyBsZWdhY3ktdHJ1bmsKKzc3NTM0IDE3NGJkYWIwMjRlYjgzNTAwMzk1MTQxN2RiMjAxNWQxZjU2NWYzNTggcmVsZWFzZTMxLW1haW50Cis3NzUzNSA2MzUxZDNkNTNkZWQzNzgwZGRiZjNlYjQ2YWU5MWUwMjNjYjM2OTBmIHB5M2sKKzc3NTM3IGQ4MWU0ODg0NmI0ZWJmOGEyZjhmMjE1YjI2NDJkYjU2NzE2Mjk0MjAgcmVsZWFzZTMxLW1haW50Cis3NzUzOCAyOWExNDEwY2Q3ZGM4MmM1MTAwN2JhNTkyOGIxZGJmNTA3ODQzOTJiIHJlbGVhc2UyNi1tYWludAorNzc1MzkgMWVhN2ZiZDk5Mjk0NTQzODk1NTNjYzMxNDE4ZmMwMTdhYTZlNjhmNiBweTNrCis3NzU0MiBiNWVlNDc4MjFmNGJkODdjY2MxYmQ5NzNjN2ZjOGJmMmRiMjZmNjg1IHB5M2sKKzc3NTQzIGVkOGIwZWUxYzUzMTFjZWZhZGQxMmI2ZTM1N2ZjY2UyMDNkNDEyNzcgcHkzaworNzc1NDQgYTZjYzQyMTJjZDU3ZTMwZDM1YTFkZWUwNTllYjgyYmRhOTlkMWQ3YSBsZWdhY3ktdHJ1bmsKKzc3NTQ2IGE0YTNlNjg4NDQ2ZTRlZTI1MWI4ZWEyZmE2OTk5NjNkMGYwODY1ZDIgcmVsZWFzZTMxLW1haW50Cis3NzU0NyBlMzUzZjVkNzlmNGNjOTM0ZjJmNjgxNzcxOGVmZDIwM2QxYTA0YjI5IHJlbGVhc2UyNi1tYWludAorNzc1NDggODFiMzE0NTA2MWQ5OGNlYzRjMmZmZjI0Zjg0Mjk4YzFkMzc1ODUyMiBsZWdhY3ktdHJ1bmsKKzc3NTQ5IGZiNzNhYTI0NTAxNGFiOTY1ZWUxNjlkMTY1YzNlZTM1ZDhiZDQ5MTkgcHkzaworNzc1NTAgNTM2NmQ1NzVlMmNkMWQyNGJhYWYzZDlkZjNiYmVhOGQ4OGE4MTM5OSBsZWdhY3ktdHJ1bmsKKzc3NTUxIDYwZTA2OWM1OGEzNWRjMjJjZThlYjJhNTNiZjk0NjMzMWQzZDE5OTAgcHkzaworNzc1NTIgN2FlY2ZhNDQzMmRmM2E4ZGVhZTk2NTE4NzJjMDNjOGFlZjEwYTk1ZSByZWxlYXNlMzEtbWFpbnQKKzc3NTU1IDcwN2Q4Y2E1ZWEwYjAyM2IwYjNlNTFlY2E0OTkzZGRmYWQ5NDk5YzEgcmVsZWFzZTI2LW1haW50Cis3NzU1NyA5M2ZhMTBiZWYxZTIyZmY5NTliZjcwOGRhNzk4ZDdkNGM2MTNlNGUzIHJlbGVhc2UzMS1tYWludAorNzc1NTkgOTJhNjJkZmZhNDA0OWNjNzg0MDExNDJkYTEzYjE5OGNiZmE3ZjZjNSByZWxlYXNlMjYtbWFpbnQKKzc3NTYxIDM1ZjdlMjMwOTdkODMwYTZkY2VkN2E0MGFmMmE4OGE0ODNlMWUxZjkgbGVnYWN5LXRydW5rCis3NzU2NiA5MzA0NjRmMzIyMDQ2NTNhZmNiNDQwNzlkMGIwYjg3OTQ5ZmNhZDkzIGxlZ2FjeS10cnVuaworNzc1NjcgMjNmMTJjYmYxMjJjMTMxNDdhMDQ4OWY4NzllYzE4MTRhYzc5YjgxNiByZWxlYXNlMjYtbWFpbnQKKzc3NTY4IDFhZTMzNzljMDIwOGY2ZWM4ZjRjYTI0ZTk1ZjhjM2RmZGY4MTM5ZjggcHkzaworNzc1NjkgYTMwNjgwYmNiNzU4OWNiZWZkNmFjYmFhYmUyNjU1MjA1OGJhMzA1MiByZWxlYXNlMzEtbWFpbnQKKzc3NTcwIDQ1NDdhOWJmZjdjNzdlNzczNzBkYmNjYmIxYTg2MGI2NjEwODE2ZmQgbGVnYWN5LXRydW5rCis3NzU3MSA2NmU1N2ViNTk5NTEwODE4Mjc2NGFjNGQ0NTZjOTM0YTY4MDUwZTcxIHB5M2sKKzc3NTcyIGE5ZmIyMDM3MDhjNDExOTc2MDQ5YjQ2MTBhODc5YzcxMDk4MjRiNjYgcmVsZWFzZTMxLW1haW50Cis3NzU3MyAxY2VmZmIzYzhjYjJlNTVjOWM4NDEyOGEwY2NhYmY4ODljNzZmMDI5IGxlZ2FjeS10cnVuaworNzc1NzQgM2JkNmRmMTFkMWQ2YzI2YTI0ZGRhZTE3NDA3NWQwZjBjMGQyYTdmOSByZWxlYXNlMjYtbWFpbnQKKzc3NTc1IGRmMDIwMDc5ZTI4ODlkNDBhZTIyYzg1NTg0ZjE4NDllYjMwYTlkYzkgbGVnYWN5LXRydW5rCis3NzU3NiA4Zjc5NzFiODIwYTQzNWIxMDVlMWU0NzFmMDFhZjBkNjRmYzU3ZjFiIHB5M2sKKzc3NTc3IGZiMzM3Y2I0NmI5ZGU4NWZmZDUyYTZiYjBkZDdiYTU0OTkxMjAzMmYgcmVsZWFzZTMxLW1haW50Cis3NzU3OCA3MzIyYzU2OTEyOTRkNGRjMjU3NjVkOGFlYmJjMzAxOGYyNjY2ZjI3IGxlZ2FjeS10cnVuaworNzc1NzkgYjk4ODhjMTMzOWRmNTIwYmFlY2M5YjhjOGE0MWJmZjA2NjIwYjk2OSBweTNrCis3NzU4MCA2ZWMxNGJjNmFiMGM5YjU2NWQ0OTgxMTY0MDAzNzkxMDlmNzgzMzdhIHJlbGVhc2UzMS1tYWludAorNzc1ODEgODAwNTU5YzlkNTA0YmZlYTFiNDk2ZmE0MTQ1ZDRlMGVmNWE0YWEzZSBsZWdhY3ktdHJ1bmsKKzc3NTgyIGQ2MGI3YjJjNGExZjUxNzRkODlmYmNhODZlNmNlMDFiNDkxYmQzYTUgcmVsZWFzZTI2LW1haW50Cis3NzU4MyBhMTE3Y2I5MjZkMjA3ZTA5YWUyOTMxMTFmMGM1OWVhMTUxNjcyM2E3IHB5M2sKKzc3NTg0IDhlOTY3NzAwN2ExZThjM2MzNGMxN2FiODUyYThmN2I4NjllNzdkOGQgcmVsZWFzZTMxLW1haW50Cis3NzU4NSAwYzhjYmRiYWZhYWRkYTdhZTdlZTE5YmI1ZWNjNTRkOWIxZDRlMjkxIGxlZ2FjeS10cnVuaworNzc1ODYgYzI0NzUyNmQ1YTViMDM0MmNkYjgzYmNiYmJiYzViOGU4NzkyMGQ2YiByZWxlYXNlMzEtbWFpbnQKKzc3NTg3IGE0ODVmY2RmZTg1OTYwMzg5Y2E5NTVhN2U1NjY3N2NhNmNjN2RmYTUgbGVnYWN5LXRydW5rCis3NzU4OCAzYjQ5ZWY2YjA5ZmZhMGE5NThhMjgxZDM2MmYyNzVmZjFlOWU1ZWZmIGxlZ2FjeS10cnVuaworNzc1ODkgNWM5YzUzYTcyMWE1NTRiZmIwMjVmMTRiMGRkNjUyMjNjYWJmNGZiMiBsZWdhY3ktdHJ1bmsKKzc3NTkwIDNlNjI5NDcxODUwYWZlODM5OWY3YTc0YTgyZTUzNjFlOWYzYTkzZTIgcHkzaworNzc1OTEgNjAzNmQ3ODY5YmQxZjg0MTE2ZGRlMTM1Y2MyMjM0NGVjY2VlOTVhYiByZWxlYXNlMzEtbWFpbnQKKzc3NTkyIGJiMTBmM2ZmYWUwMjgxZDM2OWFjMmI3NDgyMDdiMjk2YTM2NDY4MmUgcmVsZWFzZTI2LW1haW50Cis3NzU5MyAzYWFkY2UzOWQzNDUyZDliOTZlYTM5ZjNmZDRkNWRhZjhlYmM5MmVhIGxlZ2FjeS10cnVuaworNzc1OTUgZmVhY2FhNmU0MGI4NGI3MDQ4MThmZTYxMmY4ZTRlODhjMWIxZGZiYyBsZWdhY3ktdHJ1bmsKKzc3NTk2IGE5ZDUxOGZhZGE1OTk1NjVlY2M4MWQ1ZmZlZTU1ZTExNTVhZjA4OWQgcmVsZWFzZTI2LW1haW50Cis3NzU5NyAxMjFkZWVkNTk2OGVlNjhlNDFlOGQ0ZjI5ZWUxODEzZTZiYjA2YmE1IHB5M2sKKzc3NTk4IGQ1OWY3NmQ2Yjc5NTc3ZGMxYTNkYzFjMjhmMGY4MTAwZWJhNDUxZTEgcmVsZWFzZTMxLW1haW50Cis3NzU5OSBlYzE5MjY0M2FkY2JhMjlhNmViZGFlNGRjMzdiMzE4NzdiNDViZDhlIGxlZ2FjeS10cnVuaworNzc2MDAgODZhMzVlNTliNmIxOTU4NWU0YzRhMmEwN2YwNTU1ZjVmMGQ3YjZlZCBsZWdhY3ktdHJ1bmsKKzc3NjAxIDllNTliZTFkMGMzNzEwYmIxZWFmMjM0YTg4MTg2ODU2ZWM0M2JiMjEgbGVnYWN5LXRydW5rCis3NzYwMiAyZGVmMWRmZGYxZjYzOThiZDBkOTVmMTIzNTE3MTFkMzkyZjU5Y2QxIHB5M2sKKzc3NjAzIDE2Y2RjMTVlNWQ3NWJiMWIzMDY4NDFiOGI5ZWMyNzBjMjBmODA0ZmIgbGVnYWN5LXRydW5rCis3NzYwNCBmNmE2MjZmMzQ4NDBmYTBjM2Y1ZWJhZDhiODYwMjg4MGI2YmRjNzcwIHB5M2sKKzc3NjA3IGRmNGQyMTU4ZmEwNDg2MWQ1ZjFmNDMxMTVkY2NiZTg0Njk0YWEwMTAgbGVnYWN5LXRydW5rCis3NzYwOCA3NWJmYTVkYTFiZWI1MjUyN2Q3NGJlMGM5MWNlMDMwMjYyNjY3NzU5IGxlZ2FjeS10cnVuaworNzc2MDkgZjgwZTZiZDRmZDRlNmE3Y2M0YTYxNWVjMTYzYTlhNzAyMDc2YTMzMSBsZWdhY3ktdHJ1bmsKKzc3NjE0IGJhYzgyMWRmZmVhODA0ZjFlZjkxNmYzMGRkYzVmNTZkZGM2ZTI3YzAgbGVnYWN5LXRydW5rCis3NzYxNSA1ZGJiYzQzYzU5MWI5MmQ3MjViN2Q5MTAxNjFmNTY3MDM4MTgzYWQ5IGxlZ2FjeS10cnVuaworNzc2MTYgODg2MzIwZjFiYTgyYTA1YTJkN2RiMDFmMmQ5MDE2ZjA3MDkwZmI3YiBsZWdhY3ktdHJ1bmsKKzc3NjIyIDczZmVjZDRlN2ZlYzM0ZTkzODgzMjA0MDQxNjFlYzZiN2Q4NDRmNjkgcHkzay1jZGVjaW1hbAorNzc2MjMgMjY1ZWIyNTBlNGE1ODE3NTg4MmViYTI1ZWI5Mjc1MjI0MTc2ZjYzYSBweTNrLWNkZWNpbWFsCis3NzYyNCA5YzU2M2E0ZjNmOWEyNDRiNGFjZmExYTg5YzZhMjU4OTVmMmU4M2M0IHB5M2stY2RlY2ltYWwKKzc3NjI1IDQ2NGEyMzY3NjU0MDk4MmFmMDA5ZTBmODFjMTI3ZWM3ZDQwYTA2YTAgcHkzay1jZGVjaW1hbAorNzc2MjYgODc1MjViZDQ5YTlkNjE1NDNkMDViMWZiZTk0MGEzZTBjOGFiYzk3ZiBweTNrLWNkZWNpbWFsCis3NzYyNyBkNjZjNmViYmM2MTc0MGYwZGI1NmViYWRiMzBlMDA4YzJkNDNhMGU0IHB5M2stY2RlY2ltYWwKKzc3NjI4IDgwYjA3OGQwNTU3NzM2NjE5YTkxZWJmNTNhMzdiZDVlOWFkNDYyMzkgcHkzay1jZGVjaW1hbAorNzc2MjkgZDgyOGNjOTFjMDliNTA4MDcxMWQyZGM1NDMwYTQyNmE0ZGYyMWQxYiBweTNrLWNkZWNpbWFsCis3NzYzMCAxM2JiOWE5N2UxYzUwMjRiNTg0YjBiMTQzMTExNDA1MmY3YTYzN2VlIHB5M2stY2RlY2ltYWwKKzc3NjMxIDUxNzEyYzQyYzVmYjFmNzZiYzFhMjg5NzhhYmFjMzY2OWRhZThkMzMgcHkzay1jZGVjaW1hbAorNzc2MzIgY2VjMTQwZjcyZDAzZmJlZmQyYTQzYWRkMDVkNTM0YTM5MWRmMDM0YiBweTNrLWNkZWNpbWFsCis3NzYzMyBjMWRjZTk1OTZlNzcxYjliNDIxOTdmZGJiMjU5N2FlYjQwYWM5MTI4IHB5M2stY2RlY2ltYWwKKzc3NjM0IDA0ZGVhMDA2MDI1N2JmYTI3ZTJkMWJkMjQ3MzAwNmI4MDRjNzhhNGMgcHkzay1jZGVjaW1hbAorNzc2MzUgNDBhM2JlNzhiYzk5YmQwOTdhOWIxNTkzMzZhZmRiZDM3YzI2MmZiZiBweTNrLWNkZWNpbWFsCis3NzYzNiA3M2UzZWU0NjNjOTQ4NzcwZDhlMTZlMzk3NDBmNGEzMTRhYWIzY2E5IHB5M2stY2RlY2ltYWwKKzc3NjM3IDAwMmY3YWIzNWUxN2QwNmVlNTlkZTI4NDdkMzhjMGRkYjU1MTcyYTEgcHkzay1jZGVjaW1hbAorNzc2MzggM2RmOWI0MGZmNGZjZTk2YjgxYWQyMjE0MjVjZTM4M2FhNGVkMWU4MyBweTNrLWNkZWNpbWFsCis3NzYzOSBmNjQ2YWFhOTFiMGU3Y2QyODRjODY4ZjY5NTdkODFjNTAzYTliZDY1IHB5M2stY2RlY2ltYWwKKzc3NjQwIGZmMzU2M2JiYmI4MDM5YmFlYjU2MzU3OGIzM2YyMDAzZWZkMTRjMTEgcHkzay1jZGVjaW1hbAorNzc2NDEgOWNmMjBiZDE1MTZiOWM5NWZkZTM0ZjNiYmQwYWM2MzllMTkxYjgwNSBweTNrLWNkZWNpbWFsCis3NzY0MiBlZWY3NmM4MTJiY2JkY2FmODlkMzIzNDM4MDUyODZkMjQzOTg0ZDBiIHB5M2stY2RlY2ltYWwKKzc3NjQzIGMxNGM5NDUzMTI3MzdiY2JmYzZmNzU3OGZiYjRjNTk4OTc4NWI4ZmUgcHkzay1jZGVjaW1hbAorNzc2NDQgYjQ3MWUwN2EyMzc1YzZhMjg3MmNiY2UzMTg5MzU2MWVmYjExN2RkMSBweTNrLWNkZWNpbWFsCis3NzY0NSBiNGFmMjE0NTY3OGI4ZTkyY2UyNjYxMDNmMThmYmU1NjFhMThiODk0IHB5M2stY2RlY2ltYWwKKzc3NjQ2IDY5NGFmZjE2Nzc3ZjgwNGZiYzBhZjdjZDkxYjgxZDQxM2Y5MTg0MzYgcHkzay1jZGVjaW1hbAorNzc2NDcgN2QxOTk2NzI3ZDA4NGQ4N2I2MmMxZmVkYjhjZjAyOGE3NmRiNjc5OCBweTNrLWNkZWNpbWFsCis3NzY0OCBkYmMwMGZlMzc3NzE5ZDQ0YWRmMzZiMDJhMTZjY2Y2NDE1YmE4Y2RlIHB5M2stY2RlY2ltYWwKKzc3NjQ5IDFjYWJkZjI4OTM4ZWU0ZWYwZGY5MWMwZDExNDFjNzEzZmM4Nzg3YmUgcHkzay1jZGVjaW1hbAorNzc2NTAgMGJkMmIwNzIwODMyOTg1YzhjMTQ0ODEwMTgwNDFjYmQ5MzBiNGU0ZCBweTNrLWNkZWNpbWFsCis3NzY1MSA5MzFlYzU1ODkyNzE2NGIwNzVkNDgxMWIzODY1NjEzYWYzNmMwYmY0IHB5M2stY2RlY2ltYWwKKzc3NjUyIDBiYWMzZGI0ZDVlMjhjNzhhYzNjNjM2ZWQxOGVhZTcyNjllMTgwN2UgcHkzay1jZGVjaW1hbAorNzc2NTMgNjMyNjNjY2RiMDgxYWEyYWJlNmU0MDA3ZDYyNGRlYTU2ZDE4MTczZiBweTNrLWNkZWNpbWFsCis3NzY1NCA2ZDg5NmU0MjRhM2RhNDM2ZTgzOTUwOWY4NmM2MjBkMGJkM2FmZTFkIHB5M2stY2RlY2ltYWwKKzc3NjU1IGIyMjE0ZWUyNzk4Nzk0ODFmYzZjM2I4NGNjNzU4Mjk3NDVjYjc3NDYgcHkzay1jZGVjaW1hbAorNzc2NTYgMDgxM2U4OWQwMTkzZjY3OTkzZjg2NTdmNWJmMjJkMTg1ZWMxOTkwNCBweTNrLWNkZWNpbWFsCis3NzY1NyA0YWQwM2Y3MWQxZTEzY2Q1MzBkZWM5ZjRlODhjZGUxNDdmMGM1NmU3IHB5M2stY2RlY2ltYWwKKzc3NjU4IDU3N2MwOTlhZGE4ODE3MDE5Nzc4MzdkZTU5MGFjNmYzY2UwZjEyYTQgcHkzay1jZGVjaW1hbAorNzc2NTkgZjA0MDg2MzdiZTc3ZjI5OTc5ZTg3NzFiN2MwMjMzODAxZmI0MTQxMyBweTNrLWNkZWNpbWFsCis3NzY2MCBiMTk4YjBlMjFkNjJjYzY4ZDZlYWNhOGMzNTVlOTgwNzZmZTBmNmQwIHB5M2stY2RlY2ltYWwKKzc3NjYxIGQ0MmE4NTQ2M2Y5Y2Y0MjhlMjRkZDQ1ZjEzMzA4MGYzZDc3ODgyZTcgcHkzay1jZGVjaW1hbAorNzc2NjIgNWVlYzNiMTFlNDFlMTkzN2RhMDkwODQ0M2Q5ZjI3NjAwMzAwM2RlMyBweTNrLWNkZWNpbWFsCis3NzY2MyBlMDNiOWJkY2Q0MDVlOGQ5NGJjMWEzN2VlMDk5NjdiNTJlNWIzNTg0IGxlZ2FjeS10cnVuaworNzc2NjQgYWU2ZmIwNWI0YzE5ZGU2MzM3Zjg3Yzk0ODYxODVkMjMyYmFkYTY2MCBweTNrLWNkZWNpbWFsCis3NzY2NSA3ODJhNDBmZjNmMGRjMjJjYjY2NTRkODNjZTFiOWFkOTEwZjQ3NTgyIHJlbGVhc2UyNS1tYWludAorNzc2NjYgZjM0ZjhhZTc2NDZlNzA2MzlhZTQyOWE1MTcyYzVhNmFmZjlkZWNlYSByZWxlYXNlMjUtbWFpbnQKKzc3NjY3IDRmOTViNDM1MjE3OWM4MmQ4Mzk3ZTUzOWU0YmUwZGJhZDJmODMzYzUgbGVnYWN5LXRydW5rCis3NzY2OCAwNTllMWZkNzg2NWNmZTdiNWVhMTc5ZWYyN2U5NGMxMGZlNTllYmNjIHB5M2stY2RlY2ltYWwKKzc3NjY5IGZlZTdhODhiMDZkMWZlYzk1OWQ3M2RiM2VkOGRjZmExNWIyMTgxZjIgcmVsZWFzZTI2LW1haW50Cis3NzY3MCBmMzhjMTE5NmQ5ZmYxN2U0ZjM4ZDJkMTVhNDBmYTZiYzgxNzRkY2Q2IHB5M2sKKzc3NjcxIGYxYWNkMDE3MjVlMDE4NjUxZDBiYTgyZWQ3NWMxNWViODA1ZWJlMDEgcmVsZWFzZTMxLW1haW50Cis3NzY3MiBmYmU2ZWNiOTFjNGJlNTk1OTg0YzE3NDY0YjY5NDhhNTRlM2JiNjIyIGxlZ2FjeS10cnVuaworNzc2NzMgMjJjZGVjN2Y0NGM1MmYyYmM2YThiMmIzM2MzMjJkNWRhMzIwYjk0NCByZWxlYXNlMjYtbWFpbnQKKzc3Njc0IGNhYTY0ZGM0NGQxNmVmYzJhOGJlNjExM2E2YzMwZjY0MWMzMTAzZDcgcHkzaworNzc2NzUgZjU2ODM4M2FjYzlmODAyOTBkMGJjM2UwZDc0M2IxMDczMTJmYzZkOSBsZWdhY3ktdHJ1bmsKKzc3Njc2IGE5OTZkNjZmYWVkMGNhMmRkZGI2YjZlNjQwNzZiNzQ1N2I1ZWM0ZjYgcmVsZWFzZTI2LW1haW50Cis3NzY3NyA1YzIzNjcwNGRhZjE1YTkwODNhNWQ2ZGIzODRlMDQ0MGNiNjIyZDlkIHB5M2sKKzc3Njc4IGI2MzZjYzcyZDJkZTczYjNmMTlmMTlmNzFlYTM3ODk5ZDQwNTBiNTggcmVsZWFzZTMxLW1haW50Cis3NzY3OSBmODUzOWI0OTdkNGFhMTMyYTY1MTVhMjNkMDhmMzE4YTZmY2QyNjcwIGxlZ2FjeS10cnVuaworNzc2ODAgOWUxMjRlNjQwMmJjNzIxZDdhYzBjOGFjZmU0NTBiNmI5YjlmNDJkYiBsZWdhY3ktdHJ1bmsKKzc3NjgxIGVkNDAyN2U2NjYwMDZlNzM4NjgyMDVhYTU5MjkxNTAwOGUyNzEyMjcgcmVsZWFzZTI2LW1haW50Cis3NzY4MiAxZjcxNWEzNzdlZDA5ZDI1ZTVhZGM3Mzk2Nzg3YWZiNTNjZDcwZTU2IHB5M2sKKzc3NjgzIDRjZmRjOGI3ZmIzYWYyNmY3NThkNTg5NDAwOTJiYWM3NTc4NTEwN2IgcmVsZWFzZTMxLW1haW50Cis3NzY4NCBmNmZjZWMyOGFmOWU0NTk2NDZkZTMxZTVhM2FjMWU1MmJjZTc2ZTA2IHJlbGVhc2UyNi1tYWludAorNzc2ODUgZmU0ODg0YjA0MWI5M2Q4Mjc1MWI4NTMzYzMyMjU4ZTBmNmFlZGY1ZCBweTNrLWNkZWNpbWFsCis3NzY4NiBkMGQwNTc5ZGQxZDEzY2YzMjdmZGQ0MGZiYzA3ZmEyZTFmZWEwZjlhIHB5M2stY2RlY2ltYWwKKzc3Njg3IDRlNjk5ZDdjMzJlY2Y4YmEwMjRjOTNiZjVkMDZmZTZlNDc3NDc0N2EgcHkzay1jZGVjaW1hbAorNzc2ODggMmNmNDFkOGY3ODdhYTEwOTk1OTA4YTUwOWNjZGRlOWVmODUzMTQxNyBweTNrLWNkZWNpbWFsCis3NzY4OSBhZGM5OGJmMTUzZWMwNGJhYjdkZDBlYWNhOTYzZjg3MzhmZjBjOGI3IHB5M2stY2RlY2ltYWwKKzc3NjkwIDAxY2U3YTg1OGRhZGIyM2E1MjM4NDhkYjkzMDNmZWVhNWI5OGQ3N2UgcHkzay1jZGVjaW1hbAorNzc2OTEgNmI3NjE4MTdiNzE3NDFhYTJmMDQ1NjgxZTQ3ODQ3Yjc0YmY4YzU3NiBsZWdhY3ktdHJ1bmsKKzc3NjkyIDMxY2RlNmU2M2MwM2Q4YjM5Y2M2Mzg2ZGE1YThiNDUzYTQyODg0YzYgcHkzay1jZGVjaW1hbAorNzc2OTMgNjA3ZTI1MjVjMDUwN2Q1MzI5MTc2MWI5YTA5MzY5NTlkZDJjZmYyZCBweTNrLWNkZWNpbWFsCis3NzY5NCAwZWM2MDM1MzY1NmUwNDEzMzg2ZWY4ZjEwNWZjN2EzN2Q2Y2E2ZTBlIHB5M2stY2RlY2ltYWwKKzc3Njk1IGNlYzJmMjgxMTE4MjM3ZjUxNzA5ZTlhZTMzM2RhNDdiMjc4NzhlYWMgcHkzay1jZGVjaW1hbAorNzc2OTYgZDBlNGJkNzZjNjkyNzQzNmU2ODYyYjMxNGJjMWU1OGEwNTI4Y2I4MCBweTNrLWNkZWNpbWFsCis3NzY5NyBkM2I4M2ZkYmM4MWE0NDE4N2FlNzY5MGQyYjVhNzUzZjU5MTY3ZTg4IGxlZ2FjeS10cnVuaworNzc2OTggN2E5ZjM2Y2M2ZGYxMWFlZDI3NGNjOTllZTEwMzdmZWVlM2Y0MWI1ZCBsZWdhY3ktdHJ1bmsKKzc3Njk5IGE2NzhmZTFjOWM4YmU5MzYxNDFkMjE5MDE4NWNjNzAwN2ViM2EyZjQgcmVsZWFzZTI2LW1haW50Cis3NzcwMCA2ODAwNjY2M2E4NTIzMmI5NmVhZjViOWE5MWFmNWIzNDI1NTI0ZTU1IHB5M2sKKzc3NzAxIDc4N2M2ODBmMWZlODhjZjg1Njg0N2E1ZmI1NTQwMjQyM2M1YzM3NmYgcmVsZWFzZTMxLW1haW50Cis3NzcwMiBmNjY5Y2YxMDBlYmJlZDNmZWM4NTM3M2JiNjlmY2FhNGU3NTVjYzhjIGxlZ2FjeS10cnVuaworNzc3MDMgOTcwNWVmM2ZkYjIyNzgxN2U1ZTgwNWVjNjkyYTY4N2U5YWNkOTkwMCBsZWdhY3ktdHJ1bmsKKzc3NzA0IGZhNjllODkxZWRmNGU3Y2RmZGJkM2QzODc2NTk2NTU1YzU4MzYzNWQgbGVnYWN5LXRydW5rCis3NzcwNSBhYzZlOTYwYTAxNGQ4MmFlMmQ2OWZiYTBmN2MxZDQ5MDk5MDEwMzEzIHJlbGVhc2UyNi1tYWludAorNzc3MDYgMmRkNjRjMjQ4NTRjOTEwZDEyNzY0YzhiNmVlMGE5ODc2MTMxODZkYSBsZWdhY3ktdHJ1bmsKKzc3NzA3IGJiMWMzM2VmZmY5MzI5M2ZlYTE5YzQwZDFhNDVhM2M2MWI1MTVmZWMgcmVsZWFzZTI2LW1haW50Cis3NzcwOCAzMDFlZDY5ZWRkYzRlYWNjYzFhYjgyMTYwM2Y3YWE4ODU3ZTQ4NzE5IHB5M2sKKzc3NzA5IDkwMjIzZTM0NThlYjMzOWRmMDIzNmU0NDU2NDJjMDNjYWNjZjkyZDQgcmVsZWFzZTMxLW1haW50Cis3NzcxMCAxZWE2Y2ViYmQ4MThmN2Q1NzEyZjJlMWMzNWY1OWIwM2U1OTMzMjJiIHB5M2stY2RlY2ltYWwKKzc3NzExIGYwZjIyMWUxYTdjMDMwZjdmN2RkOTViYzc5ZTgzZTc5YmQwNGVkN2MgcHkzaworNzc3MTIgYmFkNWUwM2UyNDQ1ZTNlNTQ2NjI3NjAxYjI5YTYyNTY2MjE0OWQ3MyBsZWdhY3ktdHJ1bmsKKzc3NzEzIGQ3N2M5NDdmZjdkYjVhZWVmMjE0M2NhOWFlYzM1OTZhYjY1YTQwODcgbGVnYWN5LXRydW5rCis3NzcxNCBiNDBhNWE1NjhlNzZlNDRiMGQ2NjUxMTlhYmI1MzUyY2RiMzBhZGEyIGxlZ2FjeS10cnVuaworNzc3MTUgMTc4OTE1NjZhNDc4YzQyNDk0YTA0ZDgwOGQ2NGE0NTE0OGFjYWY4NyBsZWdhY3ktdHJ1bmsKKzc3NzE2IDVhYjMwMTJmOTBiNzRjODA1NDYwZDA4M2QwZTEzMDE3ZDM1YTk5NDIgcHkzaworNzc3MTcgODA3ZDgzZjU3YmM4ODM5ZDU3NWE0ZjJmNWYxNWUwYzljMTNhOWIzMiBsZWdhY3ktdHJ1bmsKKzc3NzE4IDVkYjgyYTU3ZGRkMDY2YmU2ZTQ1Y2ZiNjI3ZGJkMDZlNWE3NWY2NTggcmVsZWFzZTI2LW1haW50Cis3NzcxOSAzOTQ3ZmRjYTJmNDBkZmZjMWUwM2E4OWQzYjg0ODk5MDQyY2RlNzQxIHJlbGVhc2UyNi1tYWludAorNzc3MjAgZmZjNGE0NGJmZGI5OGYzZjlkNzBlMzIxZmU2YWUwZDM3YjlhZDUyOSBweTNrCis3NzcyMSA4NzY1NmU4M2RjMTk2ODMyMTZiNDU2YzRmNWI1ZDgxOTgxNWZlNjliIHJlbGVhc2UyNi1tYWludAorNzc3MjIgYmUxMmQzNjIxNTE5NTUzZTIwOTQ3MmU0NDBhMjYyY2JjM2M3MDlhZiBweTNrCis3NzcyMyA4YzNkMmE3MWVkMDE1ZWVjMTFlODhmMmQ0YTFhMjEyYWJmYTFlNWNkIHJlbGVhc2UzMS1tYWludAorNzc3MjQgMmQ3MjM5Y2FkNzEzMmJlNWJkYjNkYjJiYzY4YWE3NThkYzUxMzdkYiByZWxlYXNlMjYtbWFpbnQKKzc3NzI1IDFkYzkxZTlkZDVjMTNhNGJjMmQzYmI3ZDRiNTg5NmFiMjY0ZjIzMjUgcmVsZWFzZTI1LW1haW50Cis3NzcyNiAyMzI1MzNmNzFhYmQ2ZjZkYTk5Y2RlMzEyZjI5ZjRiODAzNDZjZGFjIHJlbGVhc2UyNS1tYWludAorNzc3MjcgNmZmY2RhZmEwMTE4OTk0NDg1YTE3NGNlNDEyODMxNDFiODM0MTIxYiBsZWdhY3ktdHJ1bmsKKzc3NzI4IDcxYWNkNDQ4MmU2NTViN2QxYTEzNzY0MzcxYjdlNTkwZWE0NDc3YzIgcHkzaworNzc3MjkgZGFiMzRiNjBhNzJlMWFhMjM0NDBkNmNjMmQ0MjMwNDFiYTAzMGZkNSBsZWdhY3ktdHJ1bmsKKzc3NzMwIGU5OGVlOTQ1ZTI2MjczMDQ3OTgzYjM2NjBhZTBiOTIyNzExODZmZDEgcmVsZWFzZTI2LW1haW50Cis3NzczMSBjMTBhY2U1Yjc2Y2U5NTRkMGM0MjViZWIxYTZkYzJiMmJmMjZlMzU3IHB5M2sKKzc3NzMyIGZmYjk0OTIwZWZmM2FiOTdiMmUwZWI0NjQ4N2MyMjU1YzZkZGZjZTEgcmVsZWFzZTMxLW1haW50Cis3NzczMyA2OGQxYzgxZmZmMmVhNDM4MjYzYWNiMWE0NDIyZjhjODVmZDBmYzYzIGxlZ2FjeS10cnVuaworNzc3MzQgZWFiNmNkZTJhMzFjODQ1YWY5NWEzODI2Y2E1ODVmNTdkMDhlMTQ4NSByZWxlYXNlMjYtbWFpbnQKKzc3NzM1IDVjMWQ3YTNiYTI5YzE2ZWVjNzg3NTQyMWEwZGRkYjJlN2U2YjMwMTkgbGVnYWN5LXRydW5rCis3NzczNiBhMjU2NzkxYWExOWQwZjhmZTFhZTNkNGYyN2ViODFhNTE5MWMwMjU3IHJlbGVhc2UyNi1tYWludAorNzc3MzcgMGNjZTYwYjY4ZTQ2NWMwOTE0NGI0MGQ0NzkxZTJmYTkyOWM5NTlkMiBweTNrCis3NzczOCA2YTA1NzBlZTIzNjZlZDZkZTY1MWQ4NTExN2Y1ZGM3MTcwYjMxYTc5IHJlbGVhc2UzMS1tYWludAorNzc3MzkgNjdmZjA0MDc0MjcwMzIxMTk4MWZjNmUzNzkxZTJhMWI2YmVjMGI2MSBsZWdhY3ktdHJ1bmsKKzc3NzQwIGZiZmU1ZTQyMzQ5ZjZhM2UwMmQ2OWJlZDhmZmY5NWM5NmY3NDA4ZjQgbGVnYWN5LXRydW5rCis3Nzc0MSAyNDE4YTBhOWE5YTkyNWM3ZGI5OTQxMmZhYjVjY2UyM2FlN2NkOTEwIGxlZ2FjeS10cnVuaworNzc3NDMgNWU4OTMwZjM3MGQ1NDU3ZTMwNDk5OWRiNzg5MTNlMGNhNTZjZTdiMiBsZWdhY3ktdHJ1bmsKKzc3NzQ0IGZmNjYzMjRmNTJhMTI0MjJkM2RmYjliOGM0OWI2YjkxMjEzOWU1MDEgcmVsZWFzZTI2LW1haW50Cis3Nzc0NSAwODM1N2Q5ODc4MmI5ZDNlOWFhZTZkNzcwOTI2MmM1YjUzZTIyNjUxIHB5M2sKKzc3NzQ2IDIzNTkzM2Q0ZGE4ZWRlMDkzYzNkYzdkMTg4NGY4YTEyNTMzMjU3NjkgcmVsZWFzZTMxLW1haW50Cis3Nzc0NyA2OTg1YzBlODViNGJjOGFjZDU1MjY2MzcxZTJlZmJjMjZjZjU2ZTA5IHJlbGVhc2UyNi1tYWludAorNzc3NDggNzhjMGFjMDdhYTllYjI3NmU2NTkyY2ZjZTU1Yzg1MWQ2YTYxMzdhNiByZWxlYXNlMzEtbWFpbnQKKzc3NzQ5IDhkZDQ5YTg2YWRhYTU0ODMxZmE5OWYxNjViYTU5NjFhMGFjNjJiYTQgbGVnYWN5LXRydW5rCis3Nzc1MCA3NzIzODk1MGM2ZGQ0MDVmNzI2YjEyMzdlZmI3NWUzYjk0MWZkNWEyIHB5M2sKKzc3NzUxIDFmMTY1YzQ0MDMwNjRiNDFlZTY3ZTlhYjdmMzY1NmQ3M2VjODdjMjcgcmVsZWFzZTI2LW1haW50Cis3Nzc1MiA2MjA4ODM2ZmVkZjk5YTU0NjI4NDZiODM1ODg3NmJhYmY5YjkzNjA3IGxlZ2FjeS10cnVuaworNzc3NTMgM2UwZmVkMjVjMGFlNTljN2QwNzA2ZDM0YzBmN2FkZjAyYjMyMDI2MCByZWxlYXNlMjYtbWFpbnQKKzc3NzU1IDIyYWVhMTMxYjZhZmMxOTE5Y2Q3NzUwMWY1YWVjNzY5NmJhZTc4NGEgbGVnYWN5LXRydW5rCis3Nzc1NiAyYmRlNmQ0YTEwZWRlZGZhNWY2ZTBmN2RhNzFmNjYzNTk5ZTNhYTFkIGxlZ2FjeS10cnVuaworNzc3NTcgNzQxMTg3YmZjNjEwMmVlNTEyNDcwY2JkZGVjNGRjMTk1YTQ4M2JjOSByZWxlYXNlMjYtbWFpbnQKKzc3NzU5IDU4MjY2ZjFhMmU3ZjNlMzYxNmUxMTNiMDc2ZDk5Mjc2ZTZmNzAyYzcgbGVnYWN5LXRydW5rCis3Nzc2MCBiMjViNzhjZTc5OGRjODdlY2M3Y2MwMThlYzkyMDhmY2Q2NWRiNzBlIHJlbGVhc2UyNi1tYWludAorNzc3NjEgZjlmZDE3OTVmY2Y3NGUxM2Q5MDkyYjZhNzljMDM0NGY2ODgwOTYxZiBsZWdhY3ktdHJ1bmsKKzc3NzYyIDEwYWQ3ZDhlNWQxNzE1YTU0NWNlMTlkYjM1ZjYxOThmMjg5MTBkY2YgcmVsZWFzZTI2LW1haW50Cis3Nzc2MyBiYzJiODhiZWFlNDVkYThkOTdlZDU4NWNmZTFlNjM5NDZhNzE5OWQ1IGxlZ2FjeS10cnVuaworNzc3NjQgOTA3ZmYxM2JkNGUyZTE0NTYzNjMwNmRjMDY0MTJmMjZjNDgwMDM1MCByZWxlYXNlMjYtbWFpbnQKKzc3NzY1IDczNzljZjcwZmQ2MDNhZjVmOGVjYzc3OTUwZDEyNzJjNGM0YmE0N2QgcHkzaworNzc3NjYgODIzMmIxMGUzNGUxMzg4YmRhZWEzMjhjYTNjMTdkNDRhZjI0OTJiNyByZWxlYXNlMzEtbWFpbnQKKzc3NzY3IDkyZTZlOGQ5MDRhMjllZGVjMzBiMDliODlkNGM5NWIyYzAyNDJjZjkgbGVnYWN5LXRydW5rCis3Nzc2OCAzYzBjZDdhN2RiOGVlMzAxNzFjYzRiZDA0Zjc3MzMyOWMzZDk1OGZjIHJlbGVhc2UyNi1tYWludAorNzc3NjkgODA1NjIwNTFiYjcwYWI1NzEwNjUyMTE4OWQ1ODNjMWVmMmRkOGFjYiBweTNrCis3Nzc3MCBkODE1ZGQyZmI1YmY5MTg2MjczNGRhNTU1ZDRiNTUxNjY0YTcxNWY2IHJlbGVhc2UzMS1tYWludAorNzc3NzEgMjc0NmMyMTdkZDllMGE4NGNkYTU3YzkzMWU0ZDNhMTUyY2E1ZmMxMiBsZWdhY3ktdHJ1bmsKKzc3NzcyIGZkZTk3MTllMjA1NmY0M2FlYTU2MzYyYjFjMDE0MjI3YjAxMGRkMTQgcmVsZWFzZTI2LW1haW50Cis3Nzc3MyBkZjMzNTk5MTg1MTdkMjE2MmEzYjk2YmQ3Mzc2NjE4N2NjY2NiNzQ2IHB5M2sKKzc3Nzc0IDBkZGY4ZDk2OTBlNWFlN2QxZDI0YmRlZGNhODZhMGY5YTZjMzBlY2YgcmVsZWFzZTMxLW1haW50Cis3Nzc3NSA2NzI2YWViODY3YjkwMDIwY2FkYmNiOTA4ZjQ5ODQxOGYyNjA1YzVjIGxlZ2FjeS10cnVuaworNzc3NzYgNDk4MzExZmQ4ODIyY2U3OWFjZGU0OTg0MDA1NTVhNzJhYWU3ZjNhZCByZWxlYXNlMjYtbWFpbnQKKzc3Nzc3IDM0ZTJkNTE2MmNlOTNjMjEyMzIxZjg3YmJhNWM4NTAzYzk1ODNiNWMgcHkzaworNzc3NzggYWZkMjBkM2Q4NWRjODhmNDZjYmNiNDdjYjI0MmY0YTMxNGExYTEwOSByZWxlYXNlMzEtbWFpbnQKKzc3Nzc5IDc1ZDI0YjI0NTJhNTliMzU2ZjRjZGY0ZGMwMDMyNmY4ZThiYWUxZGMgcHkzaworNzc3ODAgMTIwNTQ2MzQ2ZjkzOTc5NDYwNDg5MTRjZDNhYmYyNTEzZWUyMTI4OSByZWxlYXNlMzEtbWFpbnQKKzc3NzgxIDc0OGUyODJlMDkxY2U0M2Y2YTI3NTRmN2RiOGRkMzA5OGRkMTI2M2QgcHkzaworNzc3ODIgMWRkODIzMmQ0ZWNiOTgxYzQ1NDZkOGFkNmNiMTI1NTBkYjY4MTgwNyBweTNrCis3Nzc4MyBkNGUyMmZkNTI4ZTJhMmUyNjUxNzlhMTQxZDY3OTM1ZjZhZGJkZWZjIHJlbGVhc2UzMS1tYWludAorNzc3ODQgZjZmOWVlODNlY2JmM2M0NzVmYTQ1NzkxMzJhODBlMWM1NDA1ZjM5YiBsZWdhY3ktdHJ1bmsKKzc3Nzg1IGRjNzE0N2QxYjdkOTRkYmYyOTkzYTBjOGFjMmUxYTE2NGY1ZDNmNWMgcmVsZWFzZTI2LW1haW50Cis3Nzc4NiA5NmQ1YzcwMzE0NDA1MjkzNTE4Njk4NTE5ZjkwMDI5NzczOGQ3ZDI0IHB5M2sKKzc3Nzg3IGUyMGUwMmZjMTQ0N2ZjNzMyZWU1NzdkMWE1YjNmZDUyYjY4YWFlNTggcmVsZWFzZTMxLW1haW50Cis3Nzc4OCBhZDdhNjE1NzRiZDY4OWU2MDY4MzczZWVkOTUxODdhODVjODE2N2U1IGxlZ2FjeS10cnVuaworNzc3ODkgOTU3NWNlMGRiMjA0N2MxYzU2NmFhNmU5ODlkOTYxMjZhMmJlOWIxNSBsZWdhY3ktdHJ1bmsKKzc3NzkwIGE4YTRiYzY5YmVhMTIyNTBkZmY1MmZmZGEwZDk5YzE2YjJiZmNiZmUgcmVsZWFzZTI2LW1haW50Cis3Nzc5MSBlNjYwY2I1MmJmMDA2MGRjYzcxYjBhNTlmN2E4ODBmM2VhMTAxZWI4IHB5M2sKKzc3NzkyIDJiZmVlZjYyOTkzNjI4MDQ0MWIyYmU2MzM5NDVmZWRlMTU5OTFiOWMgcHkzaworNzc3OTMgMjAwNzA4ODBlYTQ4MzM0YjFmY2UxNDc5MDYwMmQ0Nzk5M2UwOTU5NiByZWxlYXNlMzEtbWFpbnQKKzc3Nzk0IGRlYmU2MTY3M2E4YjEwNWJlYmIyMThiMDc1MWI3OGZjZDdiZDY4YzQgbGVnYWN5LXRydW5rCis3Nzc5NSA3YTM2Y2EwNDc0MmRhOWIyOGM2NGMxZjIzZmU1OTQ0OWEyYmY1OWZiIHB5M2sKKzc3Nzk2IGY5ODlmNGYzMDI0NTIyN2Q5YTE5NDE1ZmY1MDgwMTc3NmU5OWFhNDggbGVnYWN5LXRydW5rCis3Nzc5NyA0ZjhiMmExNzNjOGRjNWMzYTRlZGRkMDYwZDQ1NGUzYTZlNzhmNWIwIHB5M2sKKzc3Nzk4IDFhMDA4MWI4NWMwNDg5NWRhZTI3ZTJmZjc5Mzk3YWZlNTE0ZDIyYWQgbGVnYWN5LXRydW5rCis3Nzc5OSAwMTFkOTY3YzFhMDQ5NjZiMGRlZjJkM2I3ZjQ5MDA1OGExYzlhYjg3IHJlbGVhc2UyNi1tYWludAorNzc4MDAgZjQxZDM1M2ViNjYwMjY2ZGZmNWFjNmNlNzc0NTc4MWNiNWZmMGM5MCBweTNrCis3NzgwMSA2YTQ3OTJjYmY0YzlmMzY5YTVlNGFjOGJlNWZkZTg3YWY5YzFlZjRlIHJlbGVhc2UzMS1tYWludAorNzc4MDIgMGJkNjE2ZGZjOTc3ODVhMzExNmQ4N2E3ZjU4YzAxNTQ4YTZmOWVjYyByZWxlYXNlMjYtbWFpbnQKKzc3ODAzIDdmYjc2NDRhMGJjNjhhNzU4OTg1NWY1OWEzNzVhYjVjOWY1ZTAyYTAgcHkzaworNzc4MDQgM2YzNmM5ZTZhNWFmN2YyNDQ1NjUwYTk3ODczZTUyNzgwM2MzMzg2NSByZWxlYXNlMzEtbWFpbnQKKzc3ODA1IDFhYmMyMTkxYmVhZjQ5NGM5M2E2YmFmZjMyNTRkOWQxYmQxM2NmMjIgcmVsZWFzZTI0LW1haW50Cis3NzgwNiBhNWU2OGFiNzg5NWJkODFjNjdmZDAwMTRkZjc1MjEyZTdmMjM1NWRjIGxlZ2FjeS10cnVuaworNzc4MDcgNjcxMGE0M2YxOTNmMGY4NDgwZDgzMWM5ZGU1ZmU3YzY4NGE2MmIxZSByZWxlYXNlMjYtbWFpbnQKKzc3ODA4IDRjZjVhZTcwY2IxMTllYjJiNGFiZWMyZWRkMjhjMDkwMDI3YWU0NTUgcHkzaworNzc4MDkgZjYwNjQ3NGEyMTBkMWNlOGFjM2M5MWU0YjhmZGY1OGZhYmM5ZWI2MCBsZWdhY3ktdHJ1bmsKKzc3ODEwIDI0NWYzNjI4MjExMzZjNzkwZjYwZGFjNzNiY2I2YzJmOWM5M2MyMzYgcHkzaworNzc4MTEgNjU4ZWI1YWU0NjE1ODEyNjAyNmRkY2E5ZGJhZTZmMWE0NTA4YmFiNSBsZWdhY3ktdHJ1bmsKKzc3ODEyIDgyYWQ3ODcxMWVkYjUyOWQzZWE1YjM4Y2JjNDYxNjQ4ZDRhY2NmYmEgbGVnYWN5LXRydW5rCis3NzgxMyAzMjE4NzBiNWQwMzBhZDA2NWM1ZDIwY2UxOWI4ZGFkNDY1ZjhjNTE0IHB5M2sKKzc3ODE0IGYyZjU5ZDdiNDYxNDYwY2EwNWU2MGI0MDE4OGFiZTBjNTBjYTJhZjcgcmVsZWFzZTI2LW1haW50Cis3NzgxNSA1NDcyNWUyZThhZGQwZTkxNDFlNmQ2MzE5MGJjNDZjNGYwNGMwYWY3IGxlZ2FjeS10cnVuaworNzc4MTggNWFhOTAyNDhhOTlmOGZhZWM3OWNlMTlkODkzNTQ5NDY3Yzg0MjZhYSBweTNrCis3NzgxOSAzOGI5MGZlMzQ2MjM3ZTlhOTNjMGJlZGQ3YjQ2MTEyMTE2NzY2ZDMyIHB5M2sKKzc3ODIwIDBkNGIwNTg5ZmJjNzIzMzI1ODAwZTZjYzQ0NTg3MzI3ZGZlNGM0ZTUgcmVsZWFzZTMxLW1haW50Cis3NzgyMSBjNTc5OThlM2JlMzNhZjkyZDFhMWI4ZDJhZGEzY2E5NGQ0N2UyNDM3IGxlZ2FjeS10cnVuaworNzc4MjIgM2NlODYwYjllNzMyMzdhNDJmOWQ4NTJmMTkxZGNmZWFlNzExZDJkYiByZWxlYXNlMjYtbWFpbnQKKzc3ODIzIDJiMDhkZTlhMWZhMDEyMDBmOTA5Y2U0MGYzYjMyMGM1MmJhZmM2Y2QgcHkzaworNzc4MjQgNmRlNjQ4OTZjNmY4ODE4MWUyMzkzMTdmYzRiYjIzNGFhZDU5MmJkOCByZWxlYXNlMzEtbWFpbnQKKzc3ODI1IDJkYWI0NzYwNmFiNjNjZGE4MmVmOWQzZjIyMWFjZjAxNWUxY2M2NGMgcHkzaworNzc4MjYgM2I2NTA2ODA4N2M2MmY1MDgyZjIzNjE0ZWZhNzg2ZDYwZWQ2ZmY4OCByZWxlYXNlMjYtbWFpbnQKKzc3ODI3IDIwZjBkYTMxZmEyY2Q3OWIzZDAxODkzMjBlYjc2YTVmYmI1MDJlMzQgcmVsZWFzZTMxLW1haW50Cis3NzgyOCA4NzkxMDFhMGI1Nzk3MDI1MWU5ZmQzNTE3OWRkM2MxNzY4NTJlODIxIGxlZ2FjeS10cnVuaworNzc4MzAgMjc1Y2Q5ZmUwNGYxYmY5NmQ1MWU4ODdhNDMwZWU5ZWMwMTczNTg5MCByZWxlYXNlMjYtbWFpbnQKKzc3ODMxIGRkZTIwYWU2N2Y5ZjMzYWIwOTBiOWY0NWIyMmNiN2I3OGRlODUzODYgcHkzaworNzc4MzIgOGVmMjUyM2MzYTVjNTcyMTAyM2MyOGEyYzdlYWFjYjI4MWFmNjIwMSByZWxlYXNlMzEtbWFpbnQKKzc3ODMzIGEyYzkxNzM3ODQxMWUyM2VhOTkxMGJiOGRmYjZmZTQzNmVmNjk4NTAgcmVsZWFzZTMxLW1haW50Cis3NzgzNCA2MDg1M2MxYWM1NjJkMjU5ODkwZGRmNDcyNThiNTVmZDRkYzFiZjgxIGxlZ2FjeS10cnVuaworNzc4MzUgZWJmNGYyMjZhZWVmOWRlYmZlNmJkNTQ4OGIzYWQ4ZjJhMjE3MTc3OSBweTNrCis3NzgzNiBkMDE0NjIzZWNmNzIwYzJkZjQ1MDhlYzFhYzI1Yzc1ZWUwYjgxNDYzIGxlZ2FjeS10cnVuaworNzc4MzcgZjIwZjhmYzZjZmFlMzQ0MWQwMTllOGJiZjQ2MTNiMDkxNDcyMTA3NCByZWxlYXNlMjYtbWFpbnQKKzc3ODM4IGQ2ZmIzNzhkNzY1YWY5MTVlM2ZiMGYyMTdmZTlkYmQyMTBiM2E5MjAgcHkzaworNzc4MzkgMTA5ZWMwNmJiY2YxYjgwNTExZjQ0NzE3OGE3YmE5NGFmNDUyODk2ZiByZWxlYXNlMzEtbWFpbnQKKzc3ODQwIGUwYWQxZjNjOTFhZjIyY2NhZTlkZDM2MDJhODlkZGRiNTE4YWMzOGQgcHkzaworNzc4NDEgYmZjMTNjZTYyZmFiMGRiNDJkMmU1OThjYzg3YzBmOTAyMjVhOGZhOCBsZWdhY3ktdHJ1bmsKKzc3ODQyIDYyOTVlMTYzMDNhNzE4M2Q2YzUzZWQxYmJlNjM3ZmFjNzgwMmVmMGUgbGVnYWN5LXRydW5rCis3Nzg0MyA1ODkzZWY5YTliODRiZjg4YjBhMWRmODk0OTZjZDMxODc2ZGU0MGMzIHB5M2sKKzc3ODQ0IGVmYzIwMzBjZTZiMTZkODhlYzM4YTEyMzFmMGExYjc0NGY4ODdjNzcgcmVsZWFzZTI2LW1haW50Cis3Nzg0NSA3NDUwZTAzYTUwMWRiYjliZjdjMWMyOGRhOGE5YTcyZmRmMDM3MmUyIHJlbGVhc2UzMS1tYWludAorNzc4NDYgODZiOGY0Y2I5MjNhYzMzOGQ4NDhiZWUwNzUyMWNlYWI1MzZkNDZjNiBsZWdhY3ktdHJ1bmsKKzc3ODQ3IGMwYzc2ZDQ4Y2QyYjhlYzE5ODJmYzk0MmY5ODQ5MDkwZDI3ZjFmZWMgcmVsZWFzZTI2LW1haW50Cis3Nzg0OCA1YzQ3Y2QxNzM2YzE2MmEwZDVhYjFjMzFkMjA1MzE4ODFhZjExMjdiIHB5M2sKKzc3ODQ5IGQzNGQzYjhmOWRlZTRlMTdhYjM5ZGVmZTU1NDhiZWU2NzBkZGZjOGQgcmVsZWFzZTMxLW1haW50Cis3Nzg1MCAzOTMzMmMwYWY4NTY1ZWE5NGJiMzk5MGNjZjVjNjU0YWUyMDI0NWMzIGxlZ2FjeS10cnVuaworNzc4NTEgODI0ZTVlY2Y5MDIyNWI1OWYzNjJkNjc5MWQ5ZWM0MmFlMjhjNWUxMSBsZWdhY3ktdHJ1bmsKKzc3ODUyIDkzNGQ0OTU4YTQxNTFhZmU1OTg2MzZhMGFjYjkyMDdhODcxNTdkYWMgcHkzaworNzc4NTMgZDc5YWE1YjY2OTcxYzlmMWMyOTBhZGUxNDMwZjUwMTVlYTM5YmM4ZSByZWxlYXNlMjYtbWFpbnQKKzc3ODU0IDAxOWY1MmFlMGZlOGNjYjlmYmNiZDRkM2E0OWM4OTM1ZTA4NWM4N2YgcmVsZWFzZTMxLW1haW50Cis3Nzg1NyAyYmY3MzU3ZDEyMmMyNmMxMzE5OGVkYjk4OGUxYTRmNTIyZjUzNGUxIHB5M2sKKzc3ODU4IGQyMWIwNWZmOTIwYWZhZjAyM2RhNjUyZWNmYTlkNGNkNmJlMDFlMWIgbGVnYWN5LXRydW5rCis3Nzg1OSA1YTdkN2VlYjg4YzExMzI1YTVkZDUzYzQ4MWU3NzI4Nzk5M2FlODc5IHB5M2sKKzc3ODYwIDA5MGZjMzljZTVlYzM1ZGQ1YTQyZjM2MWIwN2ZlZWU2MDcxODQ3OGEgcmVsZWFzZTMxLW1haW50Cis3Nzg2MSA5NzZlYzQ1ZDkwOTBhZjg0ZDkwZDQ4MmZhYTU0MTc1YTRlYWMwOGFmIHB5M2sKKzc3ODYyIDY5MDhiYTQ0NWQyYjM1YzM5MGQ4MTdmMjNlNzY5NDhjZDQ1MWM1ZWMgcHkzaworNzc4NjMgZjU2MjA3YjkzNmNjMzU5NDg1YjRhOGRlNmFlYTUxYzQ0MDBkNjQzMiByZWxlYXNlMzEtbWFpbnQKKzc3ODY0IGU5NTY1NzBiYzNiOWYwNGQ5Zjk1NDViYTdjZDM3ODk2ZmU3Y2MwMTggcmVsZWFzZTI2LW1haW50Cis3Nzg2NSBmYzVlYzdlMDQxNzczY2ZiNTJmMjM4MGI5YTRiMTU5NWJjMjdkN2RhIHJlbGVhc2UyNi1tYWludAorNzc4NjYgZmUwODZhYmI0YWViZTllNjA5MDhhNTVjZjUyMGVhMGRhNzJmNDBjMiBsZWdhY3ktdHJ1bmsKKzc3ODY3IDY4YzU2YzRiODYzMWNiZDljODc3MjczNDQ5YTVmNmVlMmQ2MWU5MTcgbGVnYWN5LXRydW5rCis3Nzg3MSBmMGJjNmQ4YWEyMWUwMjUzYzJkMmRkZWNmMDFlYjA4YWM3OTQxZmNhIGxlZ2FjeS10cnVuaworNzc4NzIgNzA5OGE0NmYwYjc1ZTVhYWNmYWY4MWQ2NWQ3MmUzNjEzYjAyMzUzMiByZWxlYXNlMjUtbWFpbnQKKzc3ODczIDM4YzljY2NiYmU1YTRhY2Q0MDA1MTU3YWNhMWY2Y2U4NTk0MjFmMGUgcmVsZWFzZTI1LW1haW50Cis3Nzg3NCBhMjA0Nzc0ZDljNzBiZGRjMmNmYjgwNzU3NWFkNWM0NmJiOGFhODc0IHJlbGVhc2UyNS1tYWludAorNzc4NzUgMmRkYmU2MmE2ODIwZmE1ZDdiNzIzNjU1ODI0OGM0NmIwOGU0NzA0MCBsZWdhY3ktdHJ1bmsKKzc3ODc2IDZlNmI1OTQxM2ExMzg5OWI3NWRmYjFiMGM5YTk3YjI4ZWM3NjIwZDcgcmVsZWFzZTI2LW1haW50Cis3Nzg3NyA1NjZkNWM5NTdjMTk3NTk3MjM1MzdhMzc5OTg3MDExYTFmNjk4ZDQ3IHB5M2sKKzc3ODc4IGNlMGQ0ZGM0ODhkMjkwNWRjYTE5MWZkM2VjNzQwZDUzNmMyMTdkYWYgcmVsZWFzZTMxLW1haW50Cis3Nzg3OSBmNjI4NDJjMjViZDgzM2ZkNjYxNzI4NmQwZjNjYjRhZGUxOTZmYzQyIGxlZ2FjeS10cnVuaworNzc4ODAgNmIzM2VhOTQ4ODk2NjE4MTFlMDlmNjI4MmY5OGZjYzRjZmZhMzcxMiByZWxlYXNlMjYtbWFpbnQKKzc3ODgxIGZkNTgwMWI4Mzg4ZDE1NzIyYTA0N2ZjZWQ0OGViN2UwNzBlNWU5MWEgcHkzaworNzc4ODIgOTgxYTM5ZjM1OTE0ZDQwYzJiNjRlNGMyMzBjYzU2YjcyY2FjMWM1NyByZWxlYXNlMzEtbWFpbnQKKzc3ODgzIDY5YmZmYTNjNzgyZTMyNTg5NGVmNTVmY2VhNjhmNTVlYTgwNThjMDggcHkzaworNzc4ODQgMWU0N2JkNmJiZWQ1NGY4NDRkZGQyYWMyY2Y5ZjBjMTJlZWEyZjUzOSBweTNrCis3Nzg4NSBhNzNiOTJkMWU5ZmQ1ODJlNzVhYTA2YjVmMzg0Zjg4OWFmYzE4NWM1IGxlZ2FjeS10cnVuaworNzc4ODYgMDUwOGVhZDE4ZDZmNWEwOTJlOWQ5NTBjNzJjMTQ2NzA1NTA5ZWVmMyBsZWdhY3ktdHJ1bmsKKzc3ODg3IDU2YTIyMDgyNzIwOWNiYjMzZDIwZDQ0NTEzNzk4YmMyOTgzY2EwYzUgbGVnYWN5LXRydW5rCis3Nzg4OCAxNTlkYTlhNDJmZWYxYzZhYjAyYjkyZmJjYzA2MzViZTAyNTQzNDRjIHB5M2sKKzc3ODg5IGJjYmI5MDQ4ZjQ4MDM3M2FmOWM4YjdiMzRjMWUzZmRlOTgxZTZjYTQgbGVnYWN5LXRydW5rCis3Nzg5MCA3NzEzMGYyZmU5NDRlNGFjZDEwZjAzNWI2Nzk0YTQyZDEyYjFlYTkxIGxlZ2FjeS10cnVuaworNzc4OTEgZWY1NjM5YzcxOTY0MzVjZTBiZTdlNGUzMTFmZDE1M2M1YmQ1YjMzZSByZWxlYXNlMjYtbWFpbnQKKzc3ODkyIDI0NjY1YTlkODgxYWRlMjU2OTdhNzRjNGQxOThkYTdlZGY0Nzg3NDQgbGVnYWN5LXRydW5rCis3Nzg5MyA3NWJiMmYxNjkxYzBlYTk4YjE3NmU2MzJmYjkwMTE0YjNiZmEzYzRmIHJlbGVhc2UyNi1tYWludAorNzc4OTQgMzhlMzA3ZmI4Mzk4NTZhYzk3MGVmYmMyYzcwY2ZmYTY3Yjg0ZDYxNyBweTNrCis3Nzg5NSAzMTFkYjdhNjhhODI5MzZkMTM0YWRkNzQ3NzY4MmRhZjdkZDMxYzcyIHB5M2sKKzc3ODk2IGM3ZTMyYjRlMzg3NGJiYmNlMDQ4Mzg4ZDVlZjM5YWRmY2IxMjI0NzUgcHkzaworNzc4OTcgZDg4N2RiNTAxYTIyMTFhYTM0ZDcxZTFiZjcwYTFmZjNlYTkzYTM1MSByZWxlYXNlMzEtbWFpbnQKKzc3ODk4IGZkMjRkZWRiYTU5ZWE1ZjBlMDEzY2QwOWM1ZTEwYTQ3MGI5NjZkMDUgbGVnYWN5LXRydW5rCis3Nzg5OSBiMmRiZjExZTJhYzRjZWYwNDVkMDNlYWM0NGU5YWIzMDU2OTQ5NWQ4IHJlbGVhc2UyNi1tYWludAorNzc5MDAgODYwNGU5YTI1N2NjOGZjYTg1MGRkYjYyZGI2NjYzNTk2M2FiYzllMiBweTNrCis3NzkwMSBjN2RjYmQ2NWMyMTM1MjNlMzQzNmQ1NmQ5ODdkZjA4Nzg1YWM0YzNhIHJlbGVhc2UzMS1tYWludAorNzc5MDIgYzk3OTU3ZjVjZGY5MjQ1YTJlOTQ4ODRhN2ZlMzYzMGYwOWU2ZjIwYSBsZWdhY3ktdHJ1bmsKKzc3OTEwIGFmNDk4YWIyYWZiNGE1ZDE2YWQ1ODZhOGE4YzI5NWQzNjk3Y2YwMjYgbGVnYWN5LXRydW5rCis3NzkxMSA2NTJlMGI3NDg4NWFjNzc4MTgyMGIwNzVkZGJmZTI4YjRkMmFjNDUwIGxlZ2FjeS10cnVuaworNzc5MTIgZDA1MTc3OWM1YmJkNmRhZDhmNDRlOWNmZTkzMGU4ZGY1MmVjNTRhYiBsZWdhY3ktdHJ1bmsKKzc3OTEzIDViYWRlYmRiNDM4Y2VmNzU1YmMwZDQ0NGI1NmE1ZDMyNjliZjg2N2UgbGVnYWN5LXRydW5rCis3NzkxNCA0Y2JmZjAxMzlmNWI4MDg5ZjhhMGE4Y2Q3MjFlNTNhOGQ3OGNmMTliIGxlZ2FjeS10cnVuaworNzc5MTUgNTI1YjZjNWQ1YjEyY2NmYTY2ZWY0MWZkZTY1MjBlY2IzZWQ4MjVhNyByZWxlYXNlMjYtbWFpbnQKKzc3OTE2IGMzN2Y5OWI1NGQ3Y2Y0NTNlOTJmNjM5NzljZWVhNDRiMGE4YWNhMTkgbGVnYWN5LXRydW5rCis3NzkxNyBjNzcwM2I2NDk1MTZiNzMwMzYwYmFiNGMxNjQzZDczZDVhMzNjOTNjIHJlbGVhc2UyNi1tYWludAorNzc5MTggY2QwMGE5NDE4NmM5MzQ5NzdhNTNhZmM0M2EyMTZmOTNhMjg2NzQ4MCBweTNrCis3NzkxOSBmM2YwOGVlODNjNTU4NjM4YWRkNGFjMjM1MzkyNDg1YjcyMTIwNzc2IGxlZ2FjeS10cnVuaworNzc5MjAgZGYyYjlhNmQyOGFlZjg1YjlhMmU1NjI2NGE4MzgwNmEzNjBhYTA2MiByZWxlYXNlMzEtbWFpbnQKKzc3OTIxIDk5MmNhZTI0NmEwYzdmYTdkYWRiMzFjOTY5NjlmMzk1ZmIxNmRlODMgbGVnYWN5LXRydW5rCis3NzkyMiA3Y2IxNGI1MjJmODFjYmM2YjBlOTk3OTMxY2YwZDdkZjk2MDVhZTRkIGxlZ2FjeS10cnVuaworNzc5MjMgNmZkMmI4MTQ3ZjJhMzdlNWFhY2FhNDA1OGRmNjQ0NjU2MGFiZDEyNCBweTNrCis3NzkyNCAwMGQ3ODM4ZWFmM2FkMzZlNzk5ZWY2MzMzNDNhMmMyMWQxMTlkYTRmIHJlbGVhc2UzMS1tYWludAorNzc5MjUgZDMxMjdmNmRlMTZjMDg3ZDkxZmZkZGFjZjFlNGZiN2E3MWFlZjNlMyBweTNrCis3NzkyNiA3Y2QxODJiZWU2MzBjMzM1MDMyZDljNDk2MTI4MDVjYmQyZGFkNTZmIHB5M2sKKzc3OTI3IDA4Y2Y0YjM1MzFjOTQ2NDhlMGVkODE2OWYwOGIzNmI3Yjc1MzAwMTIgcmVsZWFzZTMxLW1haW50Cis3NzkyOCAzODA5NDI4OTJkYzBlMGViYTM5ZWY0M2U5M2ZkMjU5ZGUzMmExM2E3IHB5M2sKKzc3OTI5IGI3ZmVjZTE1YmE1ZmI5ODc0ODU0ZGZmMzhkN2MwNTBhMzg5NTA5MTYgcmVsZWFzZTMxLW1haW50Cis3NzkzMCBiODg4ZGI3NjQ1YWE4Y2ZmMjdlZTY3ODcwMTNjMzcwOTBiNzRiNjVhIGxlZ2FjeS10cnVuaworNzc5MzEgZWI5ODdjOWRmMzc4ZmM0NmI5ODczYWEzMzk1Y2VkMzA5Y2Q1NTQ5NCByZWxlYXNlMjYtbWFpbnQKKzc3OTMyIGE4N2ZjZTAzYTM0ZGQyMDQ0OTc4YWFhMDZkOTE0YzcwMjY3MzIwZDggcHkzaworNzc5MzMgOTY3YmZkMzY5NzM2Njk3MzExM2UwNzAyYjBiZWM2NTg5MjFkMmVkMyByZWxlYXNlMzEtbWFpbnQKKzc3OTM0IDliMzUxY2I5ZWY5ODMzOTU0ZWQ0MGZkOTcxZDdkOTE3Nzk2ZDVmMWEgcHkzaworNzc5MzUgZWY4MTc4NDc3NTY3ZjdjMDRhOWNiMjdjZjdjNmFiMDRlN2I0NjIxMyBweTNrCis3NzkzNiBjY2M2ZTVkNWEzYjM4NzkwZDUyNzdmNzRhNTNjNGI5MmNmZWZmNmE3IGxlZ2FjeS10cnVuaworNzc5MzcgOTkzZjcwM2E2MWJhZTA4ZTkxMGNhN2E3Yjg2YTUyMDE4OGQwOGQ0NCBweTNrCis3NzkzOCAyYjFkNjY1ZTY2Mjg0Njg2YzA1Mjk5ZTAyYTcwZWUxMDI3OWFjOTg0IHJlbGVhc2UzMS1tYWludAorNzc5MzkgZGFiYjc3MzQ4NTAxYWExNmQyNmE2YzBiMDk5NmFjODA0MTlhY2U2YyBweTNrCis3Nzk0MCA1NGQwMjViMmY0NWE5ZjNlMTdlMDM2YzQ4NjY2ZWMwZGQzZTRkZTYzIHB5M2sKKzc3OTQxIDcyZWNmZmZlOWYwMjU2NmFjNzZiOWUwY2E0NjZlMTVhZmFhYzk0MTAgcHkzaworNzc5NDIgZmYwNDA4ODBkMWJlOTg0OTJhZGViZjc1OGFmOTdhZjk3YTJkMGZhNyBsZWdhY3ktdHJ1bmsKKzc3OTQzIDQ1ODdiMDYyYjhkMDY1Y2I3OTA2ZGQ0M2Q1MGQ4ODE5ODVkZGI3YTQgbGVnYWN5LXRydW5rCis3Nzk0NCBjZTRiODRjMDJlNWE3NTU2Yzg0ZmY5YzZlOGY4YjVmMWEzNDFkZTVkIGxlZ2FjeS10cnVuaworNzc5NDUgMzIzNDRjNWNmOTMyZWEzMjY4ODJhY2MxMWNmYmRjZGU1YzE2MzBjMSByZWxlYXNlMjYtbWFpbnQKKzc3OTQ2IDc0NDJkYjU0NzY0NWUyMGUzNGEwY2FjZWUzMmY3NDkzOGRjMzcxYzQgcHkzaworNzc5NDcgMGQ3ZTVlZGM0NTI2ODA4NzE5MjNjZWY3ODU1YjY5MTMxODEyMjk3MCByZWxlYXNlMzEtbWFpbnQKKzc3OTQ4IDhkODA1YzZjMmRiMzdiZTY3OWM1ZmMxMmNjYjQzZjI3NzIwNjQ3N2YgcHkzaworNzc5NDkgMzljOGI0NzgyNGM1MDkxNTQ2ODliYzYzOWE1ZGEzZGJmZTViODQzYSBsZWdhY3ktdHJ1bmsKKzc3OTUwIDFjN2ZlYWMwZDZkNjM4OGJjNmI2ZGEyZTFlY2I3NTU0ZTkwMWNjZjMgcHkzaworNzc5NTEgOGEyZWI3NzYxMjMwOTcwYWRhYWNkMTA5M2MyZDhhOTgzNzIxY2QxYiByZWxlYXNlMzEtbWFpbnQKKzc3OTUyIDRhZThiOWNhNDBmZmU3YWNhNzIwOWY2YWI0MDJkMjBmNGU3MmIxMzYgbGVnYWN5LXRydW5rCis3Nzk1NCBkNzVmODg3ZGE3NzJmODFlY2Q0NjJjYTZkNjcyNzYyZjEwZjFkMTBmIHJlbGVhc2UyNi1tYWludAorNzc5NTUgYTY0YTAxMzRlNjZjZTA4OWM1ZTE0MjI1MDk0ZDc3YTBhNTUzZDgzNSByZWxlYXNlMjYtbWFpbnQKKzc3OTU2IGE3YTc3MGJjZTkzZDI1ZjE0MGNlNjFlMjgzNjVkZmJlYmZjOWQ5N2UgbGVnYWN5LXRydW5rCis3Nzk1NyAzMGU0MjQ2ZWU4MDMyODUwOTE0ZDMxMmVhMjAwN2IwN2JjM2YyMjg1IGxlZ2FjeS10cnVuaworNzc5NTggZmJhMWM3OGYxMDRlOWMzOTc5Mzc5OWQ2ODViNGZmYmVkMjFhODU2YiBweTNrCis3Nzk1OSAzYzE4OGVkOGU1MjFlZTM3YzQxNGUxMzVmMGVjZmQyZDY5MDJjMmRhIGxlZ2FjeS10cnVuaworNzc5NjAgNzAzYTA0ZTI5Y2U2MzQyM2UxNmRhMWFmNDZmZTI1ZmVlMDJiZjBlOCBsZWdhY3ktdHJ1bmsKKzc3OTYxIGM3MjU0ZThiYzFkYmQxZmQ0MTc4MTUyYWM1YWU4MTUxN2ZiMGJjN2MgcmVsZWFzZTI2LW1haW50Cis3Nzk2MiAwYzJiMDg5ODY0M2UyOTZkMWVmZmY2MjNjYjU2NzY0MzUyZGVlZDFhIHB5M2sKKzc3OTYzIDUxNGI1NmVmZDg5YTI0MzlkODQ4ZGYyYTIzZGY0YzJhMmE2MTk1NzAgcmVsZWFzZTMxLW1haW50Cis3Nzk2NSBlZWI4YTk5Y2EwYzVhMmY4ZjE5M2U0NzcwZGFmMzZjM2UxY2ViNTkyIHB5M2sKKzc3OTY2IDJmODI5Mzk2YTU0ZTM3YmVkY2E5MjRiZGQwMDFhMGViNTViYzIxYjkgcmVsZWFzZTMxLW1haW50Cis3Nzk2NyBmNDQxNDIyZjZmNTU3NGM5NWNjNjA5ZjNlNmQ4M2U1YmRjZGQ4YWQ2IGxlZ2FjeS10cnVuaworNzc5NjggM2MwMjAzNDk5YWU1MzVjNWU1NTdkY2YxYzE0MDQ0NjA1OTgyMWM5NCBsZWdhY3ktdHJ1bmsKKzc3OTY5IGJiNmY4M2I5YmE0OWUwMmYyMGNjOWUwNWJmZWNiM2RkZDQxNjNkMTcgbGVnYWN5LXRydW5rCis3Nzk3MCA1NGU5NzU1ODJjNjU0YTg4NDY1NmU5ZTYwM2MyMWU4YTA3NGJiYzNkIGxlZ2FjeS10cnVuaworNzc5NzEgNDUxZWQzMmNmYzUwNjI0MjMzYjg5NTNlOGMxZTkwNTMyMWU2NThlMyByZWxlYXNlMjYtbWFpbnQKKzc3OTcyIDM3ZjYyNjRkMWFhMzM5ODkxYjM2ZDY4MTY0YjY2MWJiNWEzNDNiM2MgcHkzaworNzc5NzMgNGFhYjE0YWY1ZTJkZjcyMDVlMGI4M2NlMTg1MDYyMTE4NzgxNGM0NCBsZWdhY3ktdHJ1bmsKKzc3OTc0IDMyZTBmMWFhMzRiY2Y3MzEyMGNlYTVjNDFiNGQ2N2Y2NWUyMjczYWMgcmVsZWFzZTMxLW1haW50Cis3Nzk3NSA3ODEzYzQwOTQyZTk5NGE5NGEzYmI2NTYwY2U1YjBlZTc1MWNhMzM2IHJlbGVhc2UyNi1tYWludAorNzc5NzYgZWUwOGZiODM1YmYxMmFhODUzMDA5YTdiNzhiNTU0YmZhZmQ1ZTcxYiBweTNrCis3Nzk3NyAxNTE1MGNkOGZkMzY1MzQ5ZmM0YTRhODU1NTc1N2M4ZmJiNzI2ZDJkIHJlbGVhc2UzMS1tYWludAorNzc5NzkgMzA0Y2U4ZmNjMzJhMWY4MzA4MmZiZGY0NWQ2NTg3N2FlZTNlNjk0NSBsZWdhY3ktdHJ1bmsKKzc3OTgwIGRlNWZhOTI1ZGZlYTYxNTEzMjg3YjA2OTkzM2ViYTZmNTI3ZDM2ODQgbGVnYWN5LXRydW5rCis3Nzk4MSA4MWYyZWNkM2IxM2U4ZmRmMmM4MTczNzlkMDcxMDZiZjg3MGZlNzBjIHB5M2sKKzc3OTgyIGMxYTdjOTQ5YzExMDBkOGZhZGRlNTA1Y2RiNDY2ZmY5ZWRmMzk1MGQgcHkzaworNzc5ODMgNzZjZjYwZTJkMDA1Nzk2ZjYwMDJiNTgwN2Q0YjgxMDljOTRlOTIzMyBsZWdhY3ktdHJ1bmsKKzc3OTg0IGNmYTg3ZDQ2NmMwNDQ4MDNlMjA5MWI3ODZiZjQxMWZhN2E2YTk2M2QgcHkzaworNzc5ODUgYjVhZDIxOTBkY2U4YzBmNmVkZTliZmZmMGJjOGE2OTc2OTQ2YjVmYSBsZWdhY3ktdHJ1bmsKKzc3OTg2IGUxYmRlYmQxMzY4NTllZWRhMWFiOTM4YTBlYTBhYTZjZmQwNzQ0OGEgbGVnYWN5LXRydW5rCis3Nzk4NyA0MjZjYzVmMmFkMjQyMGEwYmI0OTYzMTAxNGQxZGZlMjgzNjBhNTBlIHB5M2sKKzc3OTg4IDU1NTA1ODQyZTk3MzllYTBlM2VlYjgyNjk4ZjAxMTdhYzVmMjczMjIgcmVsZWFzZTMxLW1haW50Cis3Nzk4OSA3YzkzMzY4MzAxMGRjYjI5YThlM2Y3ODIxMWIyNDczZWJkN2EyNDdiIGxlZ2FjeS10cnVuaworNzc5OTAgZWI1NTBlODM5NDYwOTc4ZjAwNjdlZmQ3Y2IxNmUyNDQ3NmZjZmUwMiByZWxlYXNlMjYtbWFpbnQKKzc3OTkxIDUxM2M0YTI2MDBhOGJlMDc2MzZkOGM5NDVjNTFhY2NiNDg1YTk4MzIgcHkzaworNzc5OTIgNWU1MTgzNWY4NTk1MTJlZDJjMjQ4YmMxMTM3MmYyZjEwMzExOTg5ZiBsZWdhY3ktdHJ1bmsKKzc3OTkzIDFjZjE2Y2U0MTVlYWUwNmU0NjE2OTkwYTZmNmIwNDNhZTRjZDI4OTcgcmVsZWFzZTI2LW1haW50Cis3Nzk5NCBiMTFiODAzMDI2OGRkYzNhMGVjMDQ3MDllNGRhMzJjM2JhNmZkZTExIHB5M2sKKzc3OTk1IDk3OWMzYjYyNTA4Mzk3YWM5ODc1ZTQ4MzdhYzM2NDc4ZTIyMTdjMDMgcHkzaworNzc5OTYgMTFiN2M4MTA4MTZiZWY0ODkyODdkYmYyNTM4YzEyNzBlZmJjN2I1ZSByZWxlYXNlMzEtbWFpbnQKKzc3OTk3IDMyYTM2MGIxM2ZhMzIwNmFlYjQ0NGZiNzk4OTIzNTc1Y2U0ZmQ3ZmEgbGVnYWN5LXRydW5rCis3Nzk5OCBjZDMxYTlkNjdlYjEzOWY1MzA2MWM0ODYwZjBiNWZkYTEyMjFjNzk4IHB5M2sKKzc3OTk5IDI3NDE2Y2U2MmFjNmIxMTQwYmZjMTUyZjA5OTg5YTg3ZDlkOGQ4NTYgbGVnYWN5LXRydW5rCis3ODAwMCBjMDNjOTNhYzgxNTFjMzMyMTdlMWZmZTAxYzViZWU0YmFiMGNlZDFlIHB5M2sKKzc4MDAxIDJhNzBjNzJiODdjN2YxMmY5ZDA5ZWFiODMyMTc4M2JkOTI2NjE0MjIgbGVnYWN5LXRydW5rCis3ODAwMiBlZGVhNDhiMTIwZTMzOWJlYjVkYmEyZjRhZWI5NTE5ZmY2N2IyY2RkIHB5M2sKKzc4MDAzIDNkZDkyMWExOTBiOGUxYzYwZjVjYjY2NjFiZjY4OTE0ZTdkMzQyYmMgbGVnYWN5LXRydW5rCis3ODAwNCA0MmFjOGNiMTNlZDBkZjgwM2VmMzdjYjNmYzcyNDg1MDNhMTBjN2I1IHB5M2sKKzc4MDA1IGExM2U4ZDFkMzc5OGM1MDE4MzNmZTZhNjYxNWJiNGU3M2I2YjgyOTkgbGVnYWN5LXRydW5rCis3ODAwNiBmZjBmY2Q1MTU0ZDMzMTY2N2Q1YTg1NjNkNGY5NWU5ODc3MmQzNjZhIHB5M2sKKzc4MDA3IGU5ZGJiY2Q0YWQ0MGFhN2Y4NjhjM2Y2YjExNWI3NjI1ZmU3OGFjZDYgbGVnYWN5LXRydW5rCis3ODAwOCA5NGQxNDgwYmM1NjMwNDFjMjJkMTVkNTQ4ODEwNmJjNWExNzhmMjEyIHB5M2sKKzc4MDA5IDc4ZTc5OTJmMjg1NzlmYTVkMzI1YzhjZWI3N2Y5MjVjODBlYjkxYTQgbGVnYWN5LXRydW5rCis3ODAxMCAwZDhmMjBlNDZjMWZhMTk0NzQ2YTJhMzMzNzBjNGU3ZmY0NTQ4YTJhIGxlZ2FjeS10cnVuaworNzgwMTEgNzhjODhiMDc3ODQzMWE3MGEyYzJiNjljZGMxYjM1MTJmYTY2NWVjYiBweTNrCis3ODAxMiA4ZTU5ZjlmNzg4ZjViMDRlNjA1NjUxZWViNzFhZGRlMTUyNTE2ZmZlIHJlbGVhc2UyNi1tYWludAorNzgwMTMgZmFiMzgwNjc0OTU5NmYzMTFhZjk0NTcyNjFmOTUzZTJkMzY1OWE4MyByZWxlYXNlMjYtbWFpbnQKKzc4MDE0IDJiOGY0NThiYmNmNThlOGQ3MWFmNmZiNGNjYWQ0YjQ2NWNlMTIxN2IgbGVnYWN5LXRydW5rCis3ODAxNSAxM2Y2OTVhYjkxMTFjYzY5ZGYxMDEzMTEyZTJiYWEzZDRiMjAwMjQ4IHJlbGVhc2UyNi1tYWludAorNzgwMTYgMGViNDIyNjI0ZGI1ZWZhM2JmODJhODgzYmQ1OGM3NzQwMzA4NmM4ZiBweTNrCis3ODAxNyA5Y2VlMDg3OTE1YWExZGIyZDg0MzdhMzY4Zjg5M2YwNTQ3Mjg2ZTFjIHJlbGVhc2UzMS1tYWludAorNzgwMTggNTBiZDljZDJlZDQ4MTQzYjdiODlkNDQzODczNjcyNjRkOTJjNTYwMCBsZWdhY3ktdHJ1bmsKKzc4MDE5IDcxZTA4OTI2NWIyODUzY2NiYjNmNTI0MDk5YjM3YmU4NzQwMzYzOWMgbGVnYWN5LXRydW5rCis3ODAyMCA0MTgwNTU3YjdhOWJiOWRkNTM0MWExOGFmMTk5Zjg0M2YxOTllNDZlIGxlZ2FjeS10cnVuaworNzgwMjEgZmU4MzJjNWQzMDY2YjE2MzI3ZDNkMmQyNTM2ODUzZWU1ZDE1ZGE1YiBsZWdhY3ktdHJ1bmsKKzc4MDIyIDVlOWFiNGMyNWI5MTRhOGI2Njg5MDgwOTY4MGY4OWVlY2YzZWU3NjggbGVnYWN5LXRydW5rCis3ODAyMyA4MmNlM2EwODU3MWM5NTI3YWZiNTg5OTMwZDA4N2UyYTQ0YmFiMTk2IHB5M2sKKzc4MDI0IDQwMDJmMWM0NmI4NjljZTM3ZDMwZGM2OWVlOGM1MGM5OGI5ZjYyN2EgbGVnYWN5LXRydW5rCis3ODAyNSA2M2IzYTY1YWZmNTJhOGUyZWZmODlkMjNlYTdmOTMzNTBiNmFhYzNmIHB5M2sKKzc4MDI2IGFkNjgzY2VkZmJiM2E5YzI5MjZhNmYyNmQ0MGQ0ZmYzYWE1YTIzOTAgcmVsZWFzZTI2LW1haW50Cis3ODAyNyAyMjJiNmQ4MGU3NjkyNDAwMWYyZjM4ZGZhMDM3MGZmOThhN2MxZjljIHJlbGVhc2UyNi1tYWludAorNzgwMjggZGQyMjMwYThjNDFkYTExN2UxNTZhYWMwOTU4Y2JkNDFjYThkOGRkOCBsZWdhY3ktdHJ1bmsKKzc4MDI5IGNhY2YyMDdmYmRlZDQzYzRiNDA2YzQyMGIyMWExYjliMTk0NTVjMGMgbGVnYWN5LXRydW5rCis3ODAzMCBlOWNiM2ZkMzQxZTk4MmU1MzMyNTI3YmQ5MTk5ODQ3MzU3N2Q3Y2ZhIGxlZ2FjeS10cnVuaworNzgwMzEgODdkOGI5NWY1Njc1NjA2MTUwY2UyZTZmZWMzNTk1OWEyMDZhMWM0ZSBsZWdhY3ktdHJ1bmsKKzc4MDMyIGQ3ZDQ4YTMwYWRmMzAzNGI4Yjg2Nzg2MjM1MTAwMzY2Y2YwN2M2MzAgbGVnYWN5LXRydW5rCis3ODAzMyA2MDlmYTE4YjI0YmZjYzZhYjg0YjllZTEzYjUwNDkyZTRkMmJhMTZkIGxlZ2FjeS10cnVuaworNzgwMzQgODFiMjMwNmU2YmYzMWJlM2RmNDFmZGRkYzA1YjdlZDYyYjUxZWE2OCBweTNrCis3ODAzNSBmMmM5MWJmNWI3Yjk2NjFlNjYwZjI4OTIzM2U4NGNiM2M4Y2JiZTY5IGxlZ2FjeS10cnVuaworNzgwMzYgNmNhOWQ5NmYxNDBlOTA0Mjk1MTRiYWNlMGE5NDk1NzAxYjA3NzFmZCBsZWdhY3ktdHJ1bmsKKzc4MDM3IGNjMzY3YzA3NzI0NThkM2VkYzA4MTY5NTA1MjUyM2ZlMjg5OGQxMWIgbGVnYWN5LXRydW5rCis3ODAzOCBlZjhmMWMyY2I1MWY5MGI1YmE2YWQ2OTdkNjY3ZDBkMWM1NGU0ODBhIGxlZ2FjeS10cnVuaworNzgwMzkgZTRhZTc5ZDUzZTIzN2EzNWU5NTdkMmU1NWQ1OWNiZjVkZWY3OGY4MyBsZWdhY3ktdHJ1bmsKKzc4MDQwIDg3Mzg3NTY1N2FkMGYzZjIyYmUyODQ5MTQxNjA2MGQwMjYzNTRiYjYgbGVnYWN5LXRydW5rCis3ODA0MSAyYmE3Njc3YmZhOTUxNDhiYzQ2ZTZkOGE0NGNjZmM2MGI0YWQ5YWQ3IGxlZ2FjeS10cnVuaworNzgwNDIgNzM0NjU3YjRiM2U1Y2Y4MDVhNmZhYTRjNDliZmYzYmI0MTI5Yzg5MiBsZWdhY3ktdHJ1bmsKKzc4MDQzIDAzYmFmNmRmMzJkMjY4ZTMxOWQwYmMxYzk4YWI5YzdmNGVkYWM0MzQgbGVnYWN5LXRydW5rCis3ODA0NCA1NTE0NGNhZTAyYmFiMWQ1MTM3ODczZjg5N2E1ZTg4ZWJlMjJmMzM5IHJlbGVhc2UyNi1tYWludAorNzgwNDUgMGI0MmUxYWE0YThiYmIzMGY1MDgxNDg0ZmY5MmQwYmQ5NDU0MDlkYiBweTNrCis3ODA0NiAyMjM1ODcwMGE0ZDBiYmI0NzcwNjU0ZmI1MTQzY2U1NWJiOWUzNzk3IGxlZ2FjeS10cnVuaworNzgwNDcgYTJhYjI2YzVmMDhiNWE0OGI3Mzc2ZWEyODBlN2YyYWE4YThkMTJlNyByZWxlYXNlMzEtbWFpbnQKKzc4MDQ4IDIxYTQ3MWMzNDRlM2EwNTlmYWRiYzlkZGYwZTFkYjA2YzAyNzQ0NDYgbGVnYWN5LXRydW5rCis3ODA0OSBiN2E1ZGYxNDA4NjllN2FkNjZhNjRhZTcyZmQ4MzI5NTFkY2UxYTIxIGxlZ2FjeS10cnVuaworNzgwNTAgYzU4ZWQyNTU0ZjVjODczNmJkMDEyMWExZGJlMDhlNTE0YjYwMzZiZCBsZWdhY3ktdHJ1bmsKKzc4MDUxIGVkZTBmMDVkYzZjMDgxNmYzNTc0NDIyZGMyZDNkODhlZWQ0OGVhMGUgbGVnYWN5LXRydW5rCis3ODA1MiBhNjZlYjhhNjNkNWI2YTg1OWNlYmRlZTQwYTA2ODAzNTI3Yjg5ZjFkIGxlZ2FjeS10cnVuaworNzgwNTMgMTAxMDFjZjg5ZDIwNGE4ZTdmNzQzODdhZjE3YzY0N2MwM2EwMTY5MCBsZWdhY3ktdHJ1bmsKKzc4MDU0IDdjMjRmZWZjMmNkNGIxYzM1YmUzNzVkNDQ5MGI1YTVkZDZiYTAxMzkgbGVnYWN5LXRydW5rCis3ODA1NSA2YjgyYTIzMjM1MDEyYTc0YTM3ZjA4Zjg0YjY2MjQxZTk4M2Y4NDBlIGxlZ2FjeS10cnVuaworNzgwNTYgZjRjNTFhZTE2N2M1NTJkNTM2MGNlNDFlODk4NGY0NWM0NjBlM2YwMiBsZWdhY3ktdHJ1bmsKKzc4MDU3IDgyMTRkNGZjMzIzNDM2NWI3NmQ2ZDNjNmNiNTc4ZDgzODNhMzk3YzAgcmVsZWFzZTI2LW1haW50Cis3ODA1OCBmZGVjMzBhZWI5M2YzYWYzN2JjZWNhZGJhNDIxYjgzN2UxZTA4YzIwIHB5M2sKKzc4MDU5IDUyYmI0MDMyODYzZTE2MjE3ZGEyNmEzMmQ5Nzc3Y2Y5NzViOTAzOGEgbGVnYWN5LXRydW5rCis3ODA2MCA5MzdlYjBmZTFmOWMxYzMzZTMyNjJhODJkYTIwZDM0MDJjNTk0ZWY4IHJlbGVhc2UzMS1tYWludAorNzgwNjEgM2QzNzUzMDExMTVkYjNjMDFiMTFiNDY1MWYyZWFkOGFjYTM2ZmUyYiBsZWdhY3ktdHJ1bmsKKzc4MDYyIDZhNmZjMGMwOTFjZGVmYzY1ZTk3NzM3ZGQ5NWZjMTkyZWQxYjUyNTcgcmVsZWFzZTI2LW1haW50Cis3ODA2MyA0YWNiYmI1YTQ4ZmNkMDFjY2MzYzgzOGQwYTU5Njg3ZDI0YTM3NmI3IHB5M2sKKzc4MDY0IGI0N2JjY2EwMDE1YWM2MGQ1MjI0OWE3OTBmM2EwYWU3NmM2NDk5MzQgcmVsZWFzZTMxLW1haW50Cis3ODA2NSBkZTUzYmFhNWFjN2RlOGIzMWI0YjZkNDI1MTQ5YWJhNjQ4ZDhiNDQ4IHJlbGVhc2UyNi1tYWludAorNzgwNjYgMzc3NmMzMWMwZTgyMDhiYTcwNTNjZDAzZWRhOTAyOWRhMjg5YmZmNCBweTNrCis3ODA2NyBjOTY0NTdkZjQwZTBkOWNhYmEzMDk3ZmE5NzU3OGY0NGZmYjdlNTU5IHJlbGVhc2UyNi1tYWludAorNzgwNjggNGU0MGEyOTExNzUwOTMxYWUwMzNmNzI3MzVlY2Y3MTkyYTViZTJhYyByZWxlYXNlMzEtbWFpbnQKKzc4MDY5IDEwZjE5ZDFjM2I3NzE4YmY5ZjU4NzMyYWFhMTQ3YThlM2E0NjdjNjYgcmVsZWFzZTI2LW1haW50Cis3ODA3MCA3OWMwMjJkNzcyMTNjMjRhMjJjZDBjZGUxM2YzZDVjMDBmMWEwMTM3IHJlbGVhc2UyNi1tYWludAorNzgwNzEgY2E2N2MzN2NkMjZkYzAwYjg4ZTBmYzJhYTlmOTE5N2U1ZTZkZDQ4NSByZWxlYXNlMjYtbWFpbnQKKzc4MDcyIDE5N2YyNDNkZGFiNTNlODg4OTBhNWJmYjQxZjI5NmQ5MjdkODI1MGYgcmVsZWFzZTI2LW1haW50Cis3ODA3MyBiMGM3NDNjN2Q3ZWVhZjBiNGM0YjFhMDUzMjY3NTljNzI1OGY2OTIxIHB5M2sKKzc4MDc0IDdkMDdkYTJiN2RjYWI3M2YwYmUzNjY0ODYxMzAyNDFhZjg3MzZiY2UgcmVsZWFzZTMxLW1haW50Cis3ODA3NSBiNmRmNzVjMTdlMDJkYzA5MDYxYmM1Yjk2Njk3ODRjODdmMGUzMjM1IGxlZ2FjeS10cnVuaworNzgwNzYgNTY5NDQ0NGZkNWQyZTlmZTdlNmNmMWUzNWU3NDY0NGE5YTc3YmFkMSBsZWdhY3ktdHJ1bmsKKzc4MDc3IDUzZjgzZjIwMmE2ZDY4NDY5OGQxNGRkM2I3NGM4OTQwMWY5NmNkZTMgbGVnYWN5LXRydW5rCis3ODA3OCA5MTg5ODAzZjgzNDA3ODYzZDQ2OWE2OWRmMDM5NzNhYjMzNzM4OTViIGxlZ2FjeS10cnVuaworNzgwNzkgYjExNmZmYmNkMWIwNzExOWExNjQxNjdlNThjNTI5YTZhNWZkMGQ5NCBsZWdhY3ktdHJ1bmsKKzc4MDgwIGQ1MzBhNzJiNDZmYzgyYjljODhhMDYyNGI4ZjljMjNhZjNhMWYzZjMgbGVnYWN5LXRydW5rCis3ODA4MSA4N2NkODkzY2I4YmEyNmQyNTM5OWFlM2EyYmY5M2M5ODA0YWU3MGY3IGxlZ2FjeS10cnVuaworNzgwODIgMjE4MDRkYzdhZmY0YjQxOWIwZWVkZWIzZmQwMDY1YjA2Yjg3Y2ZlMCBsZWdhY3ktdHJ1bmsKKzc4MDgzIGRmZDQ2YTVkYjg3MmJlYmZkZjVjMTVhNjU4NWY0NmI2MzMzZjcwNjcgcmVsZWFzZTI2LW1haW50Cis3ODA4NCAwY2ZlODM2YzRhOGQwNjEwNGIyMGUzYzc0ZGNiOTEyOGE5YzI5YWJkIHJlbGVhc2UyNi1tYWludAorNzgwODUgNmE4OTJjZWRmM2E0M2FmMjUwM2UwOGViN2UyMWI1MzUwODZjNDc2YiBsZWdhY3ktdHJ1bmsKKzc4MDg2IDg2YTg0YmUzM2U2YWE4NmMzYzdkZTJlMTZmYmVlZmMzMzg2NjA0ZDAgbGVnYWN5LXRydW5rCis3ODA4NyAxYmU3MTE0NDczZWI1YTlmZTcxOGRkNGQ5ZWM0ZDdlMDExYmQyOWE2IHB5M2sKKzc4MDg4IGJkNWVlMTNmZGRhMWVjZDgwNTk1NGM2MWM0ZmY3M2IwNmRiNDNlYTYgbGVnYWN5LXRydW5rCis3ODA4OSA1N2ZmNzcwMmVjNzRlN2I4ZmJiMzA1Y2RmMDE3YzRkM2I2NjYwYTM5IHJlbGVhc2UyNi1tYWludAorNzgwOTAgMGNmOTdhZDJmZDFmNjFhOGRmNWI1YWEyNmNiOWEyMWE5N2E5OTBhMyBweTNrCis3ODA5MSA2NDAwNGE5ODYyZTQ3MjFkNTg2ODQxYjYwMjM3ZTAzODkwNGUxZjlmIGxlZ2FjeS10cnVuaworNzgwOTIgODBlMDIxZmUzNGVkN2IzYjkwNDlmMmQ0OTk3NDUwYzU3ODJhNjFmNyByZWxlYXNlMzEtbWFpbnQKKzc4MDkzIDcwZTExNWMzNGY5NzA4YTQyMWYxYzhjZjQxNmRmMjYwY2EyNTc0ZjQgbGVnYWN5LXRydW5rCis3ODA5NCAzZDk0YjFlNzc5YzU4MjkyYjU2M2ZmNmExMTQ4NWZmYjQ5Y2YzOWIyIGxlZ2FjeS10cnVuaworNzgwOTUgYjgzNGM4ZWU4ZTdjOTJkZGI0NDBhZWRjYmM4NmQ5ZmRiNDIxOTA0OSBweTNrCis3ODA5NiBmMTA4ZjYyNzU4NTU1Njc0NzQ3YmZiOWUyMTU0NjRkNjg0YmM4NmJjIHJlbGVhc2UyNi1tYWludAorNzgwOTcgYTI4MDg0NGI2OGY0ODU1NGNmODYwYzY0ODdkOWIwNTUzNjI3ODFjNCBsZWdhY3ktdHJ1bmsKKzc4MDk4IGZhY2E5N2M1ZjAzODA0NjExNjQ2M2I2MzFiNjZkYTBjNzg0MTA2Y2YgcHkzaworNzgwOTkgMTNmY2FhNzkzMjRiYjg1MTRlMmMzYmE4Y2IxYTEyYWI1NWM0NGQ5YyBsZWdhY3ktdHJ1bmsKKzc4MTAwIDNmMzkwZjQ4YjExMzE0ZWRhNDZlY2Y0ZjRkNDZhZGY4MDljYWM2MjEgcHkzaworNzgxMDEgYzhjMGFhMWZkNGE2ZDUyOWUwMzA3NzU2YmQ3ZDI0MTQ2OGQyMGJkOSBsZWdhY3ktdHJ1bmsKKzc4MTAyIGM4NmQ5M2FlY2Q3YTI1MDJkOWI3NTYzNzViZDVmMDdlMTY5Yjc1ZTUgbGVnYWN5LXRydW5rCis3ODEwMyBkODRkYWNkYjJkMTI1MjQ5ODBhNjkxZTU0ODIyMmM3MmI4Y2IzYmY2IGxlZ2FjeS10cnVuaworNzgxMDQgNjAwYWI5Y2VlNDAzNTBlNjNmYzA0MmNlMmNjNmQ2MWQ1Y2U3MmU4YiBsZWdhY3ktdHJ1bmsKKzc4MTA1IDRiY2Y5NjgyOWQxYTNkODk3ZjQxZTdkYTVlNTZlMTFjNDgxMTM2MGUgbGVnYWN5LXRydW5rCis3ODEwNiA5MzY3NmFlOTdjNjhiNTNlNmEwOTY4YzM0MTU5OWEwYWZlMzVjZmZhIGxlZ2FjeS10cnVuaworNzgxMDcgNDg0ZGExM2YxMjUzNTNjN2M4NDllNmQwZjMxMmMxZThiZmY0ZWQ0NSBsZWdhY3ktdHJ1bmsKKzc4MTA4IGRiZjAzZWI3YzEyZWQ0MjBjZTY4ZDQ3YTljMTdlMTdmZTRjODRjYjggbGVnYWN5LXRydW5rCis3ODEwOSBhOThiMTM2MDhkMjNhNDVkYjA2MjZlYTI5OTdiYmI4Njk4MzNhYTU1IGxlZ2FjeS10cnVuaworNzgxMTAgZTdlODliNDU4MzQxOGI5NDFkNTI5OWNmODg5ZDkyN2UxYWMxOTA4ZiBweTNrCis3ODExMSAzN2U4OWRlYmVmNmEzZGU0OTcwZmE0YjM5NmRmMzgwNjNmZGZkYzg4IHJlbGVhc2UzMS1tYWludAorNzgxMTIgNzU4OTYwNWRhZWQxMDQyYWY5OTMyNTE0Y2NkOGRmYjk3YzlkYWEyZiBsZWdhY3ktdHJ1bmsKKzc4MTEzIGE5MWZmYzk2NDRlYjllNmYyNjg3MjE0YTc1YTQwN2FhNjhjOTlhYTAgbGVnYWN5LXRydW5rCis3ODExNCA0N2ZhNTRkYWIzOGNhNzBiZDYzYTQ1YWQ5ZGIwOTM4YzczNWM1NjBmIGxlZ2FjeS10cnVuaworNzgxMTUgNGUwZGI0NDU2NGIxNzNkMDlmOGE3YTVjMDEyOGE0NDFjYmNhZWI0MCBsZWdhY3ktdHJ1bmsKKzc4MTE2IGY0OGM0NzFhYzhjOWUwZTk4YmJhMTY4ZjEzYTMxNzY0ZjY2NzgyMWIgbGVnYWN5LXRydW5rCis3ODExNyA5NmMyNjcwM2I0OTBhNGI1Nzk3YzIzMjUzNDg0MzE2NzBmZWY0OGExIGxlZ2FjeS10cnVuaworNzgxMTggOGJlOGQ1ZGI5NmEyNWNhZDhlOWMyNjRhNjNkZWNkNmY5ZjNjN2Q4NCBweTNrCis3ODExOSA1OWUxNjJiOWYyMjU0M2Y3NDhiNTgyZTFlMjI2ZjQ2YTlkNzViYzMxIGxlZ2FjeS10cnVuaworNzgxMjAgM2VlZjM5ZTdiNzRmMzIyOTRjODFlNjFkZWM4YWQxNzM2OGQ4MTA4NyBweTNrCis3ODEyMSBlNWM1NjQ2NTkyMDM3MzZiMTM0Mzg4OWU1YzJkYTAxMjRkZTAzODgwIHB5M2sKKzc4MTIzIGVhOGNjMTM5NTFiMGJiYTVjNDgyMGNjZDNhYmZjMTNlYjliNTNkZmQgcHkzaworNzgxMjQgNmE2ZWRkYjQ1OTk2N2IxMDAwZTY0NzA5ZDBkMmYyYzdhZTQ1YWE5ZSByZWxlYXNlMzEtbWFpbnQKKzc4MTI1IDI2NTI4NTkxMjE3Y2YzNzNlMzU2ZDU4MGZmYjE3ZjQxZWRkMDE0MzIgbGVnYWN5LXRydW5rCis3ODEyNiBiZGJlMTM3OWYzZWFmN2YyZmRjOTZjNjFmMTA4YjJmMzFhNTk5MWU0IHB5M2sKKzc4MTMwIDBiZWI3YzgyOTRjN2Y0MzljMjQzOGQyMGQ1OGM1MzMxOWYxY2VmODUgbGVnYWN5LXRydW5rCis3ODEzMSAwYWY2OTlmMDllZTNlMmNkMDViNDhiZDhkYzNkZGVmNzRkN2M1ZTEwIGxlZ2FjeS10cnVuaworNzgxMzIgNjFkMTcwMWQ5YzY2MmVjYjM5NDQyODQzMjQxM2YxYTkxODc4NWM5NiBsZWdhY3ktdHJ1bmsKKzc4MTMzIDExNjU5NTk0Zjk4MjI1ZWVlMzUxMDQ0ZjE3MjE1OTYxYjBkYTA3NmIgcHkzaworNzgxMzQgYzUyOWU1MWY4Mzc3NThkYmQ1YTE5ZmFkODczNjVhNDFlNzIwYzAwNCBweTNrCis3ODEzNSA1ZGNlY2FjMWM4ZDY3NWVjMDE4MzRmMzg0OWY3NDQ0YjdkNGNiYzk3IHB5M2sKKzc4MTM2IGQxZTJmNzk0ZDAyMDY0MjVmZDlmNzdhYzVlZTBiMjQ2MDBiMjJjOTQgbGVnYWN5LXRydW5rCis3ODEzNyAxNzJmZGIxZDczMzdhZGI0YmM4YzEwZjQ3OTUyNWU4YTFkNjNkZDAzIGxlZ2FjeS10cnVuaworNzgxMzggYzJiZGJkOTM1YjVlNTBjYjY3YjBjN2JiYjJhNDgxYjM5NmJlNTE1ZSByZWxlYXNlMjYtbWFpbnQKKzc4MTM5IGE3MWRlYTg5ODc3ZDg5NmY2NjA5MGY3ZDFmYmY4MjY0ZmU0N2QzMWMgcHkzaworNzgxNDAgNjg3Y2E0YjM3NGY0Yzc1NjhiNDA5NjIxOTIyYzllMmY2ZTNkNjYyOCByZWxlYXNlMzEtbWFpbnQKKzc4MTQxIGM0NWRjYmRjYWI4NzM2MmRhYzZiNGQ3Y2MyNjA5ODhiZGE4YjRlNmEgbGVnYWN5LXRydW5rCis3ODE0MiBiZmQ0Nzk4YjFmNzdlMDBkYjZhNzlkODEzYzZiNzYzMzk1NjZjNzRiIGxlZ2FjeS10cnVuaworNzgxNDMgMTRlZTNkNGM3YmQ1Yzg1NGUzYjY2M2M0ZGJiMDNmNDE0NzRjNjA5NSByZWxlYXNlMjYtbWFpbnQKKzc4MTQ0IDgzYzhkZmI1NDQyMTIwZWJlMWQ5OGNiOGZhMTI4MTIzOTM0ZWE1ZDEgcHkzaworNzgxNDUgZmIwOTgwZTFhNGNlNDJmNmMzNDM0NGVkNWMyNGQxOTg0M2UzYzNiMiBweTNrCis3ODE0NiA1ZWZmYmQ1NTIxZTNmNmVmNTdhNTEyNmQzMzJkNzQwN2VkMGRiNTY2IHJlbGVhc2UzMS1tYWludAorNzgxNDcgMjM2YWI0OGVkZDBjZWE0OTg4OGQzOTgwODY5YjllNDI1ZGU1YmM1MiByZWxlYXNlMjYtbWFpbnQKKzc4MTQ4IDJiOWIyMWI4MzBkOTI0NjAzNWRkOGQ2Mzc0ODRjMDVjZThiYTg2ZTQgbGVnYWN5LXRydW5rCis3ODE0OSA0NzEyMzkxNWVhMjBkOTBkZmZhMzc3ZmJhZjQ2ZjBlODMwY2E3ZDY4IHB5M2sKKzc4MTUwIDNiZDY1YjM0NmJmY2ExNjc3OGViNjE4MDk0YTMxM2Y4OTI4ZGU2OTggbGVnYWN5LXRydW5rCis3ODE1MSA2YWU1MGMyYzBhYjlmM2I4MTQ4ODUwNDNlNTI0NGRjNTI3OGU5YjRlIHJlbGVhc2UyNi1tYWludAorNzgxNTIgZjE1NmI1ZTczYjBkMWExMzM5MzVmMTVmNzllYmM5MTRhZmE2MDQ4MCBweTNrCis3ODE1MyA4Y2YwN2E2NWQ2Zjg1NThmOWNiNDc1MWI2YzU0MTU1ZDY1NDc2MzExIHJlbGVhc2UzMS1tYWludAorNzgxNTQgODJhYTk2OGE5NTA0YTZiMzUyMzU3ZjgzOTcxMWRiMmU0MmYwMGIyNSBsZWdhY3ktdHJ1bmsKKzc4MTU1IDMzNDUyZDk1MzAxZjE2MDczNzVlZTNlMzY4YWM0YzcxZWJiZWUwNzUgcmVsZWFzZTI2LW1haW50Cis3ODE1NiA1OTAyOTQ0OTVlNWYyZDMwNjE2MDhjMTU0NzA1YzRiNTU5N2VkZGU4IHB5M2sKKzc4MTU3IDM3ODhhYjI4Y2NhZDcwZTZlNDg4OTM1YjhjMTQzNmU4MGE0ZjZlMGMgcmVsZWFzZTMxLW1haW50Cis3ODE1OCA1NmZlMTY2OThlZTgyODhhYTEwNDFlM2ExNzVkMDJkZjlhM2UzOTAyIGxlZ2FjeS10cnVuaworNzgxNTkgN2IxNjJjNmE5MzQ0ZmMwMmRkOTY1MjRlNjVlNWU5ZTllMTk3YWNlOSBweTNrCis3ODE2MCA2ZjY5YjhmYzJiYTNlZjY4YTcwZDViNWMyYmU5ODZlOWQxMmU3NDY4IHB5M2sKKzc4MTYxIDEyMThhMmEyMjUzY2NhMzQzYWE3YzAxMmVlMGE5MDY1MTk3NzVlNDQgcmVsZWFzZTMxLW1haW50Cis3ODE2MiA2OTRjOTdhMmNkZGMxNmRiMzFlZTMyY2MyZWNkNTRjYWI0ZDc5ZTVmIGxlZ2FjeS10cnVuaworNzgxNjMgMjI5NmM1ZTZhZDBkZTY2YmM2NDM1ZTc3NGZmMWU5MGJlMGNiN2QxYSByZWxlYXNlMjYtbWFpbnQKKzc4MTY0IDgxMjk0NjJjYWEzMDdhNTg5MWM2OGY3MGJmMjRkOGFhMzI0ZGU5M2IgcHkzaworNzgxNjUgNTM3YjY2N2FkNDUwMDNjOGQ2NjdkNmYwYzgwNzgyZTJmNmE1MWE4YSByZWxlYXNlMzEtbWFpbnQKKzc4MTY2IGIxYzlkNmJjZjNkNGM4NDJjMDY5NzBjYjgxOWEwNzI2YTViM2I2NmQgbGVnYWN5LXRydW5rCis3ODE2NyA2YWNiOWFmYzc1Y2RlNGFjZDg2MDhmM2EzN2MyMTk0ZWZkM2Q1MGY5IHB5M2sKKzc4MTY4IDMzNDdiNGVlYWI0MDRlN2Q5MzMwN2QzOThmZmNkZjg2NjZjZTFiZWYgcmVsZWFzZTI2LW1haW50Cis3ODE2OSAyNjNhOGY5MDU3OGQwNmZkZjc1MWI3M2ExOGZhZDM3YzU5YjJhZDQyIHJlbGVhc2UzMS1tYWludAorNzgxNzIgZDQzNzQwMjQ3NTAzMzJiZDA5YTE3ZjE0YWY3YTkzNTQ5MjQ4ZGFhMiBweTNrCis3ODE3MyAzMmE0ZWUyNDgwNjk0MzRlMDhmODVmYTMwOTJmZGVjYTA2NThhOGIyIHB5M2sKKzc4MTc0IDQxNTc5MjAwN2ZmOWVlYjM3ZTY4MzA1NjhiN2JkZTQ5NjhhNDExNjEgcmVsZWFzZTMxLW1haW50Cis3ODE3NiA4YzRjMzkxY2FhZWJmNTc2MTczNDRmOWNmZDI1YTM0N2I1YjM5OThiIGxlZ2FjeS10cnVuaworNzgxNzcgYTMzNzVhMGZmZTJlNDU5MDQzZWUyMTUxNjM0OTkxMDk3MmZlOGUxOCByZWxlYXNlMjYtbWFpbnQKKzc4MTc4IDcwZjQ1NmJmNzYzODdkNDk5MDJkMzlhZmZmMjI5YTA0NDhkMDQ0MTggcHkzaworNzgxNzkgZTBlYjk3NzNhZjgxODM0ZDNkNTk4YTM2MTM0MjU4MjlkMWE1NzQyNiByZWxlYXNlMzEtbWFpbnQKKzc4MTgwIGE3OTZmMjhhY2VlMmU3NWRiMTk3YzAyNGIzMDMwYjc0YzVlYjgzYTIgcHkzaworNzgxODEgNjhiZTQ0NDI4OTA5ZWQzNGM3ZmY2MjBmOTJiZWM4NDU1NTkwOTAxMSByZWxlYXNlMzEtbWFpbnQKKzc4MTgyIGRjMTMwNGYwNDVhNjBlNTI0NjQ5NjA3MGE3Zjc2MGI1NTIxMzBiOTEgbGVnYWN5LXRydW5rCis3ODE4MyBhMGVmY2Y5YjZlZGQ1NDJlNmU1ZTY3YWZjYTFkYmQ0ZGZlZjc4NTRiIGxlZ2FjeS10cnVuaworNzgxODQgMjAyMmVkZThjYTBjNjFmNDRmZGY0NGMwMTZlYjAyNzg1ZjMxNDJmYSBsZWdhY3ktdHJ1bmsKKzc4MTg1IDkwMWZjYWFlNTI3NWNkODQ0ZWM1Yjc4N2RjYzk2MTAxN2M3OTkxOTcgcHkzaworNzgxODYgODc1NmMzZGU2ZDI0YjhlMjI5ZTQ5M2UwYzE2ZTVlNDNiMmEwYTZjNSByZWxlYXNlMjYtbWFpbnQKKzc4MTg3IGQyOTFiODMwNDJmYjZjOThlMWE0YzQwYmQyYjU1ZDgyOThjYmRiOWMgcmVsZWFzZTMxLW1haW50Cis3ODE4OCAzMWY1OGQ5YzcwMTZlYzhmOTZkMDY1MTlmZjc4ZDdkNDhmNGZlYmJiIGxlZ2FjeS10cnVuaworNzgxODkgNWU2ZWRiNGU3NmY1ODM3MDExMGM2MDBhMDAzOTFkMTJmNGE1ODU4OCBsZWdhY3ktdHJ1bmsKKzc4MTkwIDZiMjliOWY5NjgwNTk5Y2I2NTYxZTBmNzkwOTMxMTM0YTY0ZmZlZWIgcmVsZWFzZTI2LW1haW50Cis3ODE5MSBlZjc0NzY0YTYzMjA5ODM2MTA0MzFiMzE2MTRiNWEzZTY0NTNlOGRmIHJlbGVhc2UyNi1tYWludAorNzgxOTIgM2JhYWJkMWQ2OGEyODZmNDMzYWRkYjQyMmQ1ZmYzMGQwYTZiMGVhNyBweTNrCis3ODE5MyAwMjkzMTgyNDY5YTc3MzRkZDMyZTQ4ZDhhYmYzZTRjYjRkODU5YTI0IHJlbGVhc2UzMS1tYWludAorNzgxOTQgNDExYjMyOTkzOGRjNGNhZDc4MTQxMzgwZjI0MzhhYzUxNDdiMWZiNSBsZWdhY3ktdHJ1bmsKKzc4MTk1IDE3MjVmYmFiZTczYmQ0MDVhMDg1MjBhYzc3ODM5OGY2Nzk0NDM0NzEgcmVsZWFzZTI2LW1haW50Cis3ODE5NiA3YWU0M2MwNTExNmQzZjkzNmEzYzIyZWY4YTQ0M2Y5NGYyOTFhMGQ3IHB5M2sKKzc4MTk3IDYzNzRlMTg1OTM0NjQxN2Q1MjUwOTg2Nzc4YWQ2ZTQ1NGUyYzI5YTQgcmVsZWFzZTMxLW1haW50Cis3ODE5OCBiNjQxYzFhYTY0M2UxOTI4Y2E5MDRiZDA3ZjMxNDA0MTY2YTE2Y2YyIGxlZ2FjeS10cnVuaworNzgxOTkgNDY1YzA0N2VmMzExYzBjYzQwZjBlN2QzYmFhNTJlYTAzNzczOWM4ZSByZWxlYXNlMjYtbWFpbnQKKzc4MjAwIDc3ZDg1OTAyNjkxOWNlNGFiZThlMjM2ZGEzZWZkODhjYjk4Y2JhOGEgcHkzaworNzgyMDEgNGY2YzFiODI3N2ViNDM2ZWNiYmRhNTA4MDY0OGY3ZTIyNjA5YmI4YyByZWxlYXNlMzEtbWFpbnQKKzc4MjAyIDdhNTZmMmNhZTNlY2Q3ZGEyNzYyZmQ4ODk2MjgyZDViN2E5NjlkNjAgbGVnYWN5LXRydW5rCis3ODIwMyAxNWIwNDlmYWMxOTFhNDA2NWNiMDg2YzhjNzc5NTc3ZjkxOTU1ZmI2IHJlbGVhc2UyNi1tYWludAorNzgyMDQgZDRmYmI3ZTUzYzkyOTJiOTRkZmE4MmY1ZTRkMjM1ZDllN2E5OWQzMSBweTNrCis3ODIwNSBiNzMyNmY5YjU5OWI3MGYzNTFlNzlhYzEzNGIwMjFiNGY4ODBhYjI4IHJlbGVhc2UzMS1tYWludAorNzgyMDYgZWJmZDBlYWViZTI3MTE4ZjI5YTRmN2FiZTc4ODhjNDIwZTJlNDU5MSBsZWdhY3ktdHJ1bmsKKzc4MjA3IGJmYjNlODRmODVmZmY1OWVmMzRjODk1ZTJiZDkyMTgyNWM0NWExNjIgbGVnYWN5LXRydW5rCis3ODIwOCBlZWNmMWJlZjA1MmQzZGE1MTEyM2QyODViODNkMThiNGM0MWE1ZTE3IHJlbGVhc2UyNi1tYWludAorNzgyMDkgNThiMzBkYmNmOTljNDhkNmI4NWU3NTMzYmUwYmQwYTA2NzIzYTc0NCBweTNrCis3ODIxMCBhNjcxZWUzYmJjYjQ5OGU3NDk0NjNlZjRkODkzN2I3NzQ2OGNkODE5IHJlbGVhc2UzMS1tYWludAorNzgyMTEgMGRiZTI5MzBlZTNmMGRkMjU5MGQ1MGIzMzRiZDMxMDhhMDU1OWYzZCBsZWdhY3ktdHJ1bmsKKzc4MjEyIGEyNzI0NDRmMGVmMGM5MDIyZjM3ZWM4NmZkNDU3ZWZmNWM2MmRkOGIgcHkzaworNzgyMTMgMjI1MzU1N2Q2ZmEyZmU2MTEyZTgzYzIzNWQ0OTA5NWM3OTAyYjk1MiBsZWdhY3ktdHJ1bmsKKzc4MjE0IDRjMGJlMzdiNDZiMDM2OGMwM2I0ZDdiZWJlYmM4Y2I2NzZjMGFlOTEgcHkzaworNzgyMTUgZGZjNjdhZDRkY2VlNTdiNjY2MjdjYjBmOGQ4ZGQ0MTFhNjQyZGRiNSBsZWdhY3ktdHJ1bmsKKzc4MjE2IDhmMDJjNTRhYzJhYzhhNzBmZTcxMmQ5MGNiZTMwYmZjNzU0NzBiMmEgbGVnYWN5LXRydW5rCis3ODIxNyBlM2QwNzEyMzNiZWZjMGFlMTUzNjJiNzUzN2QzYzEwZjlmYzhmNDljIGxlZ2FjeS10cnVuaworNzgyMTggZWExYWRjNjgzNWNjZDE5MmZkMzg5YWM5NDZlOWNiMTVhYzcxNjM3NSBsZWdhY3ktdHJ1bmsKKzc4MjE5IGYyMjVkNWU2ZTBlNTBiMGNmY2ZlMjA4NDhlNWY2YWFhMDVkZjIzY2EgcHkzaworNzgyMjAgOTNlM2U2YzUxNTEzNzU3ZWI4MTUzMzg4MTdlYWQ1NWM0MTAyMDc4ZiBweTNrCis3ODIyMSA5YTU4MWMwMjEwZjJlZjc3NzdiYWUyOGZlZjM2NzlhMjEwY2JlNjM2IHJlbGVhc2UyNi1tYWludAorNzgyMjIgNDFjNWU4ZWZlYWEzYzU4YzkyNTlhMWRiM2E3OWYwZTdhNjkyNTgyYSByZWxlYXNlMzEtbWFpbnQKKzc4MjIzIGZiOGMwMzg4ZTM4NWU0ZWQ5Yzg0MzBlMzJiYzA5YThjZTJiZjA1NzEgcmVsZWFzZTMxLW1haW50Cis3ODIyNCA5OTJmZDA1NDdmZjhkNTdkODRmMzhlYTVhNjQwZTgyNmFiNWU5NjA4IHJlbGVhc2UyNi1tYWludAorNzgyMjUgMjg2YWYzMDhjMWJiYWFhODhhMTE1ZTA4Mzg5NDRhYzY3NzVkZDBjZiBweTNrCis3ODIyNiA4YTllZjJjZjc5NGZlNmU2Y2I3MGJmYjgyYTZmNzQ2ZjZlYjkzNmZjIHJlbGVhc2UzMS1tYWludAorNzgyMjcgNTk3ZDZkMzYyZGRlNDBkODBmYjcxN2RiMzM4Nzk5NTIzODUwNTcwOSBsZWdhY3ktdHJ1bmsKKzc4MjI5IDVhYTlmODNkZDAwZDlmZTJkNGMyNDRkMjlhZWIwZTkwMDc5MDE5NzkgbGVnYWN5LXRydW5rCis3ODIzMCA3MmY0NmNiZmE1N2FhZDIyMzdiNmYyOGZiOGVjYTViN2Q4MmVkZjI2IHB5M2sKKzc4MjMxIDVlNjE0ZWFhYTUwNTFhYjk0ZWIyYTEzMWIzN2Q2ZWEwZjliYzg3NjMgcHkzaworNzgyMzIgNmU3NGQzZTUxZDMzZTlmNzkxYTYxZmRkNGU1ZWYwMzc5MzJmMzI1NCBsZWdhY3ktdHJ1bmsKKzc4MjMzIDRmYzhiNmZlNGFmODY3YTJiYWZkYzRjODc0MGJkZmMyM2IzMGJhZjMgcHkzaworNzgyMzQgN2RhN2Y5YmZkYWFjMDE3ODlkN2QzNDVhN2VhMzA0ODY5ZDZhMDBjMiBsZWdhY3ktdHJ1bmsKKzc4MjM1IGM0ODVlNTVhYWY5NjVmNTQ2NTk2OWE2MDdkY2YwZGFkMTY3OGEzMWUgcmVsZWFzZTI2LW1haW50Cis3ODIzNiA4YjE2ZjE0MDgyNDllOWFlMmY5OWE2NTE4ODBlYjhiMWNhNjRlZjI0IHB5M2sKKzc4MjM3IGY3MjVjZjEyMzM0Yjk3YzAxMTI5YmI5OGY5NWFlZTkzMmQ2M2M5OTkgcmVsZWFzZTMxLW1haW50Cis3ODIzOCAwOTA2YzZmNjQ4NDc0NDlhN2EzYTUwMzBmZjlkYTA3NTk3YzE3ZDM5IHB5M2sKKzc4MjM5IDQ3NGVjNTY4NWEyZGYwZWVjZjczYjcwOThjNWEyN2JjZTM4YzcyYmIgcHkzaworNzgyNDAgM2M3MDQ0NjFlYWRhMDljYjllMzdmOGI0OWI5NjYwN2VkMTA1NzdlMSByZWxlYXNlMzEtbWFpbnQKKzc4MjQxIGY5ODE3ZWM4YjU0YzA0YjM2M2Y0Mjk1ZWVjZjhkNDg4YmQxZTAwNDUgcHkzaworNzgyNDIgNjc0YzI3ZDg3ZWE5OTIxYjViZDBmZjUzYTk3YWUxMjUzMTQxZjJlNCBweTNrCis3ODI0MyAxYmYwNDNlZGI4ZDU3NGZhZWU1OTZiMzAzOTdmOWFkODc1MjljYzQ1IHB5M2sKKzc4MjQ0IDUyODIzODIwZGNlMTNlOGQxZjI5OWNmNTA4MWIzNDgzNTdjMTkzMDEgcmVsZWFzZTMxLW1haW50Cis3ODI0NSBlNzQyM2JlZDBlYzQzZTJhNDRmZmFjMDkyNTE2MWY2MjJkYzMxNTQ1IGxlZ2FjeS10cnVuaworNzgyNDYgOGQ4NzFlMGZhNzAxODYyMjBiNDQ4YTE1NjRmYTIzMmRmYTZjNGFiZSBsZWdhY3ktdHJ1bmsKKzc4MjQ3IGVhZjhhOTNjZGJmZjRjYTg2M2U2Mjc0Y2ZlMjgyNmNiYmI0YWEzMDIgbGVnYWN5LXRydW5rCis3ODI0OCA3YWI2Mzg4NGQ2OGI2ZjU3ZjY3MzU0NTNiMDc2NGNiZGNlZjA3NDNjIHJlbGVhc2UyNi1tYWludAorNzgyNDkgM2E3MTMyZjY1NjIzMTM2ODEwODRiODkyMzVhODdiYTk5ODM5MjBhYSBsZWdhY3ktdHJ1bmsKKzc4MjUwIGFjYjI3Yjk3OTIzYTNhN2VhNDI5M2ZmOWI5MDMzYzgxYmNmNWM1N2IgcHkzaworNzgyNTMgZGU0Y2E4ODE0ZTBkODgzMTdmNGM3YTNmMDI4MjAyMzgwYzMyZGY2NyBweTNrLWNkZWNpbWFsCis3ODI1NCA1NTdlNDU3OTk3YTgxNjRjZTI3NjE3MGI3ZjJmZDdhMWFkYTg3N2I1IHB5M2stY2RlY2ltYWwKKzc4MjU1IGJhNDA3YzNkODIwY2Q4NTZkYzNhY2U3NmM5MDdmNjA0OGJjMjQ0OTUgcHkzay1jZGVjaW1hbAorNzgyNTYgODY3MjcwZDNjYTg5ODkwNGMyNTM5M2VmOWQwN2FkNDhjMjRiZWM0NiBweTNrLWNkZWNpbWFsCis3ODI1NyBhYzVjMmNmZWE0MmY2ZDA2N2MwMTFiNGUxZTgwYTJiOTdhNTVhOTMwIHB5M2stY2RlY2ltYWwKKzc4MjU4IDlmY2MwMzBhOGU3MDFiODExNWFmODQxYmFiOWZlOGZlNjc3OWIzMWYgcHkzay1jZGVjaW1hbAorNzgyNTkgM2U3ZGQyMDY4NWQ4ODVhOGE3YTY0ODhhMDE1ZjhhMmYzNGRjMmMxNSBweTNrLWNkZWNpbWFsCis3ODI2MCBmNjdiY2Q0ZWNiZWVmZDU2YTVhNDEzMWFiZWFlOGI4MDA1ODA4MGNmIHB5M2stY2RlY2ltYWwKKzc4MjYxIDY2Zjk3NTBiYzZmZjM2MWRjZWQ2ZGM3N2NhNDlhYzc1MGQyYWJmNzMgcHkzay1jZGVjaW1hbAorNzgyNjIgZmJjMTU5NTMxYmUxY2M1YzA2YzNlYTlmNjhjMjkwZDg1YTcyM2ZhNSBweTNrLWNkZWNpbWFsCis3ODI2MyAxMjliYmM2NjM5YmQ4N2YwOTY5Y2NmNTc4NTNhYmQwYTljNDZhM2E4IHB5M2stY2RlY2ltYWwKKzc4MjY0IGJhZGQ0ZTcwNTczM2FiZjQzNTQ5YWVjMzY1MzRmOWJiZjA4ZmM4YzkgcHkzay1jZGVjaW1hbAorNzgyNjUgNDIwOWMzOThjOTI5N2FhNTViOWIwZWFhOTBhOTg4ZjVkMDcwN2U5YiBweTNrLWNkZWNpbWFsCis3ODI2NiBlMGUzZjYzNDE1NzA0NmY5MDFjYjI5MjFlMDNhZDgzODUzZmM4MGFmIHB5M2stY2RlY2ltYWwKKzc4MjY4IDNjMTJiZGY2Y2M2ZDE3ZjNiMDg3ZTk2NDQwMmJhOGE4ZWQzNjRhOTggbGVnYWN5LXRydW5rCis3ODI2OSBhYjIxYTA0ODFkNzI2NGU2MTUxNDk5MDY2YmI1NmRkMDM5YzY4MmJlIHJlbGVhc2UyNi1tYWludAorNzgyNzAgZDMyZDAzZDQxOTQ3Njg3YjBkMjZmOGU1N2I5MzhmODYyZTU0MjdhYSBweTNrCis3ODI3MSBiOTgzNzc5ZjIxMjFiODU0NTExYTk1MGYyNzQ3NmIyZWRhNDljYWZlIHJlbGVhc2UzMS1tYWludAorNzgyNzIgZGNkYTk4NWM2NDAzNDI4MDhjZTdkYjA3NmFjYWIyYmUxOTVjNmYyMiBsZWdhY3ktdHJ1bmsKKzc4MjczIGFmMDBmNzBhMWZmMTA0NGMyN2NlZDFmOWUxZDBhZDRhMmY3Y2E2NWMgcmVsZWFzZTI2LW1haW50Cis3ODI3NCBkYjg2YmYzOWNjYWE2OGYzYmYzZjllNzFjMTc2MjhjMmZmYzMwZDIzIGxlZ2FjeS10cnVuaworNzgyNzUgZDNhZTA0MWU3YjhjMjZlZDk1ZDRhNzcyZWY5Y2M4N2NlNzhiNjE1MyByZWxlYXNlMjYtbWFpbnQKKzc4Mjc2IDM3OTBmM2VkYTFjNTZiOGFjNmZiZWNlNDc3OTMxMTMyMTllMDk1ZGEgcHkzaworNzgyNzcgMzkwYjBlNzA3ZjU0YjVkYzA5YWMxNzE0NzQzYjZjMGQzMzAwN2IwNCByZWxlYXNlMzEtbWFpbnQKKzc4Mjc5IDFiMjQyZmIzM2JlNzEyM2NhYTY1MDBlM2Y4Y2I4M2UyMTkxNmQzZDQgcmVsZWFzZTI2LW1haW50Cis3ODI4MCBjOGVhNzU1OThmZDZkMmU0MGMyMzQ5Y2EwODYyMjY0NDc1MTgwODk1IGxlZ2FjeS10cnVuaworNzgyODEgYjkyMmUxZWJlMzgwMjI2OTE5ZjQxNDU1Mzg3OTU3M2Y5ZDZmMDZkZSBsZWdhY3ktdHJ1bmsKKzc4MjgyIDBlZDE5Mzc2OWE1ZjFlZGJmNTU3MTkwMDUwZWUyMzZlMDFmMGQzZDggcmVsZWFzZTI2LW1haW50Cis3ODI4MyAwMzQwODA0YWQ3MTNlMDQ4NjRiYjlhYzE1ZGJjMmQ3NjgwMGNlNmRhIHB5M2sKKzc4Mjg0IDRmMzA0NDUyYmJmNjlhYWZlMDZhOWI2ZmI5OWIyYmQ0YjAzYTRhMDQgcmVsZWFzZTMxLW1haW50Cis3ODI4NSA4MGI2MTJjZDk0YTRlN2RlMWRlMjk5MGEwYmYyZjE0Mzc4MDQ4YTBjIHJlbGVhc2UyNi1tYWludAorNzgyODYgNTAzM2E0Mjk1Yzk2YWViNzJhMDNjMzg1NzI0OTMwNTU2MmUwMmY0MyBweTNrCis3ODI4NyBlMTQ0YzYzZTFmYTYxMTI0ZTM3NzFmMmY1NTU5NzgzMGU5YjEyOGIzIGxlZ2FjeS10cnVuaworNzgyODggMGQzYzk3MWViMjA2OTc1OWJiNzI2Nzk5ZmNlOGI2ZjM0NWEyMGUyNSBsZWdhY3ktdHJ1bmsKKzc4Mjg5IDIwYjg1N2JiMTBiODA4NWQ5MmNmNTE5MzJlODA2ZDViZWQ5NDYzYTEgcHkzaworNzgyOTAgYjc0OWE3OWE1MWNjYjRjYmE3MmQ0NzYxZTUzODVmNTRlMTNiZDhhNCBweTNrCis3ODI5MSAwZDJkNjYwNjEzMDNiZDViNWQwOWI2MjgyNGVjODhiNjVhOWM0NmQwIHJlbGVhc2UzMS1tYWludAorNzgyOTIgMTcyMGVlMDgzZWVlZjY0ZmMwOWFkM2VkYjk3MDlmMjM1MWMzZmQ5NyByZWxlYXNlMjYtbWFpbnQKKzc4MjkzIDZkNmJlNjVkMzg4MWZiNjIxYzYwODQwZWFkNGFlNTE0MGE3NDU1ZjkgcHkzay1jZGVjaW1hbAorNzgyOTYgOTZhNGFhMWYzMWMxMzY5MTAzNGYxNDZjMzQ5NGI5MDhlNWNkZjExMCBsZWdhY3ktdHJ1bmsKKzc4Mjk3IGFiNmZkOWU0NTQzNjIwNDIxY2Q5MzVkODhlNDYyYmVmYWJiYWZmYTcgbGVnYWN5LXRydW5rCis3ODI5OSA1ODFlMjFkN2ExOTI4NTdhNTVlODBiNGEyYzUzOGViNmU0MTc4NDgzIGxlZ2FjeS10cnVuaworNzgzMDAgY2MwZTY5YzhmMGMyMzcyOWY0NDM4ZjJlNDQwYTgyYTc2YjcwMmM5YSByZWxlYXNlMjYtbWFpbnQKKzc4MzAxIGY4ZGRmY2VkMmEzNDdhN2M3ODlhNmM4Y2M3MWI0OGUwYTFmZDZiYTUgcHkzaworNzgzMDIgMDM2OWJiYWE1ZDJkZmJmOWFhMWY3NWRlNTc0NjRmODAxMDA5MjQ4OCByZWxlYXNlMzEtbWFpbnQKKzc4MzAzIDNkZTliYWNhZDk1YmMyYmE0YzJkMTFhNTg2ZmE0NTdjZDJiNDUxNjAgbGVnYWN5LXRydW5rCis3ODMwNCA4Yjc0NTVlMDFhMTExNTBkN2M3MWJiNmE5MTVmOTc3NGU3NTNhNWQ1IHJlbGVhc2UyNi1tYWludAorNzgzMDUgZjg2MTJkNDEwZTJjNDE4YjI4ZWExOGRkZTdkZmE3NjgyY2JiNDU5NyBweTNrCis3ODMwNiBmMGFjZjIxMzhhOTY2YTdlM2VlN2Q5NmJjMDI1YTE5ZmMwODMyYzIwIHB5M2sKKzc4MzA3IDIwNDU0ZmIwYmU2ZWY3NzQ0ZGJlMWRhODEwOTg2OGVkOGM1Y2Y0MTUgcmVsZWFzZTMxLW1haW50Cis3ODMwOCBjMjU0ZTU0YWM4NTY0NmZkZGY5OTlkYTg5NTU3OTRlYWYzODY5YmY3IGxlZ2FjeS10cnVuaworNzgzMDkgYzFhNGYyN2FlOGZlODM2Njg4ZDdhZWU5MzA3OWUzMDcxZTU0MTQ0MiBweTNrCis3ODMxMCAxNWQ4ZWQ5NDhmYjU2MTFiNGFmNmVkMGQ1OWYxYzU3MTkyYmVjMWRhIHJlbGVhc2UzMS1tYWludAorNzgzMTEgOWVjZTNkZDFlOTAxMGQzMjZmYjkwNzI4ZGQ0MWYyMjM4Mjc1Nzg4ZSBweTNrCis3ODMxMiA1MGY4YmY2MTcwNmE0NjBhYmI2N2M1YTQwZDdkYmZiZjk4YjdjYjZmIGxlZ2FjeS10cnVuaworNzgzMTMgYzQ1ZWMzYjExYmJhOWVkODI0YWU3ZWI4YjM5ZWU3Y2FkYTU5NDcwYyByZWxlYXNlMjYtbWFpbnQKKzc4MzE0IDUyMjdhNTVlZDcxNDJiZDk5NTMxY2ZlZDZiMGQ4YWEzMGU4MmEyZDggcHkzaworNzgzMTUgYWU2NWM3ZDM1ZjI3YWEyYjhiODE3MDA2YTc3NGFlNjIyNWEyOGNiZCByZWxlYXNlMzEtbWFpbnQKKzc4MzE2IDM4ZjczMjgyZjAzODMwYjAyYjU0M2NmNzllMmZhMDI1Nzg2MGQ2ODYgcHkzaworNzgzMTcgNWQ3NzQxZTFlNjcyODZlMTM4ODFkNjhlODMyMDAzMGNkMmU0ZTQ2MSByZWxlYXNlMzEtbWFpbnQKKzc4MzE4IDIzMTE1MDE1ZTViOTZlNzQxYTg2MWJhNTJkODAwNDgxNmE4MTQ1ZGIgbGVnYWN5LXRydW5rCis3ODMxOSAzMWM3ZGVmOWJmNTFlNzhiY2FlYjBlMzUzMDE1NDc1ODc0YTc5MjUxIGxlZ2FjeS10cnVuaworNzgzMjAgMTMyZDQyMzQ4MjE2YzczZWRjZjY0NzRlMWFhOTFhOWFmYTM3OGYxOSBweTNrCis3ODMyMSAyZWIxMzY1OGY1NzNhOWJiNmVlZDA0NzQwMTQ5MjQxNjhkZTExMTZlIHJlbGVhc2UyNi1tYWludAorNzgzMjIgOGYyZDEwMDE0YzA4NDY0ZjkwNmEyZDkxNTQ1MTcyOWIyOWM1ZGExMyBweTNrCis3ODMyMyA3YTBjMzBlN2U0Y2FmMDQ2OWRlNWZjNTZmZTRhZGUyY2U1OTM4Yjk4IHJlbGVhc2UzMS1tYWludAorNzgzMjQgZDdjMzM3N2Y4YTdiNjc0MmY3NjAwZTMyNGY4NGZiYzE4NDlkMTRkYSByZWxlYXNlMjYtbWFpbnQKKzc4MzI1IGM4OGI2NjAyZjgyZDc1ZjZmMGRjMjI4YTQyNjRlNGFkZjlkOTg1ZWUgcHkzaworNzgzMjYgYTYwOGZjMzc4ZDkyMjFkNDQyMGExNWRlZDg3ZDNiNjAyNWM5ZTZjNiByZWxlYXNlMzEtbWFpbnQKKzc4MzI3IDQ5MDJlYTAyNTYzMDc5OTViYzk5ZDU0ZDEwNGNmMjIwMjUxYzhiYjQgbGVnYWN5LXRydW5rCis3ODMyOCA1MzJkYTg2OTczY2Q0YTFkOTZkMWVlZjUxN2YxZWQzOTNiZDdmYmQzIGxlZ2FjeS10cnVuaworNzgzMjkgZmY4NGUwODkzY2IxYWI2ZjdmNmQ0NDczNTViYjI4ZDdhZTI0OWE0ZSBsZWdhY3ktdHJ1bmsKKzc4MzMwIDk3OWFjMTdlYzgyM2QwNmY2NTRlZGNmMTJhZGJkYzUwNDk1OTFmZDIgcmVsZWFzZTI2LW1haW50Cis3ODMzMSA0MGNiMjIzM2Y3MjZmMWM2MGZjMjNlMTI3MzBlMGNkZjNiODVkOTEwIGxlZ2FjeS10cnVuaworNzgzMzIgZmQ5NDg4ODU0MDg4NzczY2M0NDI3ZTkzMjA5NDM3ZTIxNDFjMDcwNSBsZWdhY3ktdHJ1bmsKKzc4MzMzIDVjNDQ2NmIxNmQ2ZDU3NmUzMTUzZjNjZDQzZjRiNDA0OGQxNDAyMGYgcHkzaworNzgzMzQgNzNjZDgzNzA2YmM0NTQyZDM3ODhjMDJlNWY1OGJjNWI1ZmY5NGI5ZSByZWxlYXNlMzEtbWFpbnQKKzc4MzM1IDMzNTdiOGViYjI1OTVjMzM1MjRjNTRmOThlOTBkNmNiNzg2OWRkYTMgcHkzaworNzgzMzYgZWEwMmVjZTMyM2ZlMGU4NDQ0MTYzOTY3ZjkwMjI0ZTBkZTA4Yzc5NiBsZWdhY3ktdHJ1bmsKKzc4MzM3IGVmNzMyYzNkYjYzZGM1OWY4NDZjNWQ0ZjY1ODM0YWI0Y2Q5MzIyNDYgcHkzaworNzgzMzggYmQxM2VlZWRjM2IwM2NjMDM1YzM5NjUzYTE3ZWI4NGExNzMxZmQ1ZCBsZWdhY3ktdHJ1bmsKKzc4MzM5IDA0N2YxOTk3N2M0Mjg0MzZjMmFkY2VlOTJlODhlOTc3YzM3YzcxMjUgbGVnYWN5LXRydW5rCis3ODM0MCBiODNmOTcxNmYxMzViODY3Zjg5NzI0NTRlMDcxNmU1MjQxZmM5OTZjIHB5M2sKKzc4MzQxIGQyODhlNTQ5MWJjYWFiYzAxNmNkZjVjYjRhY2NmMTZiMTk4NjEzMDQgcmVsZWFzZTMxLW1haW50Cis3ODM0MiA3ZmIwMTNmZjAxNGYxOTVlODUxZGI1ODk3OTBkNTYzZmE1OWU1YjU5IHJlbGVhc2UyNi1tYWludAorNzgzNDMgNWZjYjBlMGJlODllOWIxMDEyMTMxZTdiNWQwOThlM2FmMjY5YjE0OCBsZWdhY3ktdHJ1bmsKKzc4MzQ0IDg3ZjFiOGZmYzI4ZDc1ZGUxNjUzNjA4MmVkOTNlYjViNjRhNjQ3YTMgcmVsZWFzZTI2LW1haW50Cis3ODM0NSA3N2Q4NzdkMGJmMDZkOTNlZDQzNTNiMzkyOTk0NDNlMDU1YWYxMDFmIGxlZ2FjeS10cnVuaworNzgzNDYgMzFjYjYxZTBmMmJjMDA4NjZlY2Q2MTgyMDE3NDBiNTg5NzljYTk3MCBsZWdhY3ktdHJ1bmsKKzc4MzQ3IDliNTgwNmEwMDhlNzE0ZWMyZWVkNjNjZGNiNjg3ZjdmZmExYzY2ZjQgcHkzaworNzgzNDggOWQ1NWIxN2EzYzY0N2FmMjUxNmRhYjg3NTI2M2E1NGEyY2JlMmEwZiBsZWdhY3ktdHJ1bmsKKzc4MzQ5IDE1Mjg2ZDlmMWE4ZTM4MDMyNWM3MDlhZmJlYjUyZDE0NWYyNzhiZmUgbGVnYWN5LXRydW5rCis3ODM1MCA4YzBlNDg5NmRiZmM1MjQ1NjI1OTBhMDMxM2NlZjM1N2MyODcyNDNmIHB5M2sKKzc4MzUxIGE0YzQ1ZjhlNzBhYWUxZjM5OTMzMDQwMzgwMzAxNDJiY2Q2MjQwOGYgbGVnYWN5LXRydW5rCis3ODM1MiA4ZThjNDVhYjQ0ZGNmN2Y3ZWE3MjgyZmE5NjIxNmYwMDZlMWJhNWY3IHJlbGVhc2UzMS1tYWludAorNzgzNTMgNTc2N2Q5MjQ5ZjU4OTIzZTMzMzM1Njc1ODUxZDdkZjkxYTg3MzU0OCByZWxlYXNlMzEtbWFpbnQKKzc4MzU0IDBiZDE3MzZlMzI5NzNkNjYxODA2NmQ1MmQwYTAzNDJiNzY3ZDlmMGEgbGVnYWN5LXRydW5rCis3ODM1NSBmYzRiMDA1Y2JkMjhmNDIzMDlmMDU1YWZhYWUyM2UzYzc2MDBhZDgzIHJlbGVhc2UyNi1tYWludAorNzgzNTYgZmMyODZmZTQ2NjEyMzMwY2IyYTRhYWZkODJkNzJjNjQ0MzRmMzRkNiByZWxlYXNlMjYtbWFpbnQKKzc4MzU3IGE1ZmFhYWI5OTVjNDJjOWE2MzMxNDYzNTM0ZGQ0MTk1NzFlZTdjZTQgcHkzaworNzgzNTggYjRjNmI3Njk0ZjBjMmVjODMxOTlmYTQ5OWE1M2ZlYTk4MzJlYzM2MyByZWxlYXNlMzEtbWFpbnQKKzc4MzU5IGFjMzZlYzhiYWU2YzY1MDY4ODYwNmI5MmRmNDQxMWQ3MmMwNTIyOTUgbGVnYWN5LXRydW5rCis3ODM2MCA0NjBjZTllODQ4MzgzZTVmNGZmZTY4MmUyYzE0YjJkMWUwNWFjNjM1IGxlZ2FjeS10cnVuaworNzgzNjEgNGExMTgxZWM0MDM2NGZmYTU0YTc5Njc2NTQzZWY4ZTlhZWU1ODUzMSByZWxlYXNlMjYtbWFpbnQKKzc4MzYyIGExZDA3OGI4ODI0NzJhNDI0OTE2NDBjYTUzYmY0ZDlkNmI5YWIyY2EgcHkzaworNzgzNjMgMTM5YzEwNDhmMzFiZDUwMGE4ODYxZjgzNDhiNDE4Y2JjMjIyZjM2OSByZWxlYXNlMzEtbWFpbnQKKzc4MzY0IGI1MmUzZmYwYTRjOGIyM2ViNjhjYjc0ZTUwNGJhYzI5OTRlMWU1OGUgbGVnYWN5LXRydW5rCis3ODM2NSA4YzkzMGU0ZDUxYmQyOTBlMjAxN2M0OTJiYWQxNmZmN2E5OWYxNTg2IHJlbGVhc2UyNi1tYWludAorNzgzNjYgZGY1NmJhMWNiMGFmMjgyNThhOGI4ODlhNzVlZGE3MGQ4NzM1ZTMzZiBweTNrCis3ODM2NyA5MjY3MGNjMWE2YmM0MDJkZDExYWQ1MTAyYWNkMTgyOGZjMTg2YTgyIGxlZ2FjeS10cnVuaworNzgzNjggZmVjNTVmNTI3NzVjZTc3NTE4NTNlMjQ2ZDIxZTM0MDQ5NWY5YjEwOCByZWxlYXNlMjYtbWFpbnQKKzc4MzY5IGJmOGQ5ZjAzNTljMTIyNjAzZWI2NzkzZmI1NjM4YWQyOTg3NmZmZWEgcHkzaworNzgzNzAgMjQzY2M4MGQ0YTA2N2I0OTM0OTFmYTlmMzEyN2I3OTkyOWEwNjMzMiByZWxlYXNlMzEtbWFpbnQKKzc4MzcxIDc2YWM3YTFkNzFiNzVlYWU2ZWE3NTE1ZWI4NzY5MTI1ZGE0OWEzODcgcmVsZWFzZTMxLW1haW50Cis3ODM3MiA4YTU2YjgyYzEyODQ1MjkxMWQ1YmRiMDNiYWVlZTcxMTE0OWZmOTU5IGxlZ2FjeS10cnVuaworNzgzNzMgZGEzNzNkYWMyNDE1ZTMyYmMyNWZlM2M5ZmMzZWYxYTIzNDljMjU3YiBsZWdhY3ktdHJ1bmsKKzc4Mzc0IDg5YmMyOGYyMDAyMWZiNDYwMmE0ZGVjNzM0NTBmMzlhNWUwNjc5ZjkgcmVsZWFzZTI2LW1haW50Cis3ODM3NSA4NjkwZDA4ZDk1M2Y5N2U1NThjZjE3YWZiZTk0MzQ3MmE2MGNlNGIwIHB5M2sKKzc4Mzc2IDBmNTRkNDMyNzM0Yzc2NjU4ODM4Yzg1YWUwMmM4MjM1MWFiOGUyMDMgcmVsZWFzZTMxLW1haW50Cis3ODM3NyAxZGQxZWFkYTQ2YzJkNzBkZWFkNGVmZjIzNDIzMGFjNzE5YmQ1ODllIGxlZ2FjeS10cnVuaworNzgzNzggYmQ0YzkxNmYwZWZhNWQxZWY2N2QzNzJlODI0OTNmYjQ1NjlhZTFmZCBsZWdhY3ktdHJ1bmsKKzc4Mzc5IDllMWNhMWMxMTkwMjFjNDgxMmJlNDE4NzE2Yjc3YmNlMmVkYmM5ZGYgbGVnYWN5LXRydW5rCis3ODM4MCBiMTc4MTRiZTA1ZjFjMWY1YTY3MjU4ZDFmM2Y4NTMzNjJkMDg1NDA0IGxlZ2FjeS10cnVuaworNzgzODEgZTJhNDQ0NWIwZTdjMzAwZDBhNzIwMmVhOTYxNGIzNTk5NGEzNGRmYyByZWxlYXNlMjYtbWFpbnQKKzc4MzgyIDlmZDgwM2FiZTE0MWM5NDY4YjhmYTY3ZWMzYjkzYTg0ZDc4MjVjYjYgcHkzaworNzgzODMgYjkwOGE0MGYwMDIwNTA5MTMyYzFkNGJhZjE0YjJkNzA2YjM3Mzc1MSByZWxlYXNlMzEtbWFpbnQKKzc4Mzg0IGRkYTUxNjVhMjM3NGU3ZDg2NjE4Y2Q3NzE0NDg4MjE4YTlkOGRkYjYgbGVnYWN5LXRydW5rCis3ODM4NSAyODc0NTBiMmQ3YTc4ZDVkMGQzMzIzNzI5NDY5NDBmZDk2YzFiYjQwIGxlZ2FjeS10cnVuaworNzgzODYgZWE2OGQ3NTUyOWIxMWNmY2RjMTdlNzNiMGFlYTg5MDRmZjBkYWM0YiBsZWdhY3ktdHJ1bmsKKzc4Mzg4IDc3ZGU3YjFiY2Q1OWRhN2U2NzY4ZGQ4MDRiNDlmYmEzNGMwZGVkOTIgcHkzaworNzgzODkgYWIxMDc5M2E0NmE3MDFjMmU4M2IzYzAzNGJmZjk4NTQ5NjQ4MjU0OCBweTNrCis3ODM5MCAxMjQ5NzA3MmY5ZGFjZTIwY2U3YjJiYjVjY2YwODk0NzNmNjM5YTMwIHJlbGVhc2UzMS1tYWludAorNzgzOTEgZmNmMjEyYTkzZGQ0MmYwNGYzZTBmZDdjMmM5NTBhZDdhNjRjZjViNyByZWxlYXNlMjYtbWFpbnQKKzc4MzkyIDMyYjIxMDYxZWU5ZmZmMjU0YzMyMjI0Y2I2ZjJjNTlkNWRjZmU3MzQgbGVnYWN5LXRydW5rCis3ODM5MyBkZjU3MTljMjk4ZGIyZDhmYmJiOTE5MzYwZWJlN2RhYjI3NGM5ZGZlIGxlZ2FjeS10cnVuaworNzgzOTQgNzc4MDQ4MmE2NGRhNjlmNjE2NmY5YmNkN2I5NDg3YTAyY2ExMTcxYyByZWxlYXNlMjYtbWFpbnQKKzc4Mzk1IDQ0ZWU0ZjI3MWQ3YWViZjhhZjIwZjBiZDg5ZjQ3MTk2NzU2Mzg5MWIgcHkzaworNzgzOTcgNzk4ZTBkMGM3MjQ2ZGRiMjA3YzI3NWQyZGE5YTVkM2U1ODhhMWEzYSBweTNrCis3ODM5OSA0MTBjMWM4MGQ2NjNhYjNiOWRlOTkzZmM2MjJmMjRjMmM2Yzg2NTA2IGxlZ2FjeS10cnVuaworNzg0MDAgOGQzZmYyZmJiZTRiNGE0OWExYjNlZWQxOWViNWI1NDBmYTcwM2Q3NCBweTNrCis3ODQwMSA2OTZmNzY3ZTc3ZmY4Yjk5YzI2MjY1Mzk3Zjg3MTczM2JjZmYwNGRhIHJlbGVhc2UzMS1tYWludAorNzg0MDIgNjc4MjU2ZTgwZmM2MDFkM2IzNmVjNjMxMjZjMjFmNzZjMzQxOWNkMiByZWxlYXNlMjYtbWFpbnQKKzc4NDAzIGU4NTQxMmY1NDRjODNlMjMzZjJhYmE5MDlkNDdkNTRiYWRkOTg1YTkgbGVnYWN5LXRydW5rCis3ODQwNCA5NTRiOGUyNzY2NzQ2MzIxZWY3NGM2YjMxMTBlNWYzNTZlZGI2NmE1IHJlbGVhc2UyNi1tYWludAorNzg0MDUgZTgwMzI3Y2I2ODQ2ODFkNGY1YzQ2NjAwYWZhMzg0OTZmODEzNGM3ZSBweTNrCis3ODQwNiAxMDdjNGM2ZWM2NDk1MWZhODg3MGU1OTAxYjA2NDJlOGJkMTFmMTcyIHJlbGVhc2UzMS1tYWludAorNzg0MDggYTVmNmRkMTg5MjgyZjAxZGE2NDlmZDdhOWZjOTIyMjFiNGE2ZGFhMCBsZWdhY3ktdHJ1bmsKKzc4NDA5IGE5YTQzODEwMGY4ZDRiMmNhYjgwNWUzNzNhNDQzNTcyMjQxZDIzMjggcmVsZWFzZTI2LW1haW50Cis3ODQxMCBhOTk0NWFmY2M0ZWQ0ZDcyYmNiZGU2YmQ5YzFlZWEwZDhlNjRjM2NmIHB5M2sKKzc4NDExIDE3NzE5ZDM5NWYxZTZkZTQ3ZjBmODdhODlmMWUwNmE0MmY3NDMxNjAgcmVsZWFzZTMxLW1haW50Cis3ODQxMiBjNDY1ZDIxNDM4NzRkY2FmNWZjOWU1YjcyOGIwYzVjMDc3YzQ5N2M0IGxlZ2FjeS10cnVuaworNzg0MTMgMDc5NWRkN2IyYzlkMWIyNDAxMmM5YmNkN2UzNjI4ODU0Mzg0NTk1ZSByZWxlYXNlMjYtbWFpbnQKKzc4NDE0IDgyMGVhZjkzODgwNDViY2QzMjM5ZWNmNGI5NDA1NDMyYjc0ZjdlMTUgcHkzaworNzg0MTUgNGY3NTAzYWVlYTg1ZmM4NWMwNTNiNTgyYWYxOGI0OGNlODA5NDIzNiBsZWdhY3ktdHJ1bmsKKzc4NDE2IDllYmJjYjdhMzk4OTcwY2M5ZGRhNWJkOWNlOGEwOTlhYTBkMjJiMWMgbGVnYWN5LXRydW5rCis3ODQxNyA0NTIxMmEyNDdlZDRkNWQ0YWM0OTAwMDYzYzY4MjViZTVlMmM0YjY0IGxlZ2FjeS10cnVuaworNzg0MTggMmI4MmIxNmE2Mzc1NmM0Njk1YWM5YzY2ZTg3YzNlM2IyMjI1ZTBhNiBsZWdhY3ktdHJ1bmsKKzc4NDE5IDVhYzM0OWMzMjJmZDNmZmM3NTdmYzY0YTRhYjY4YzNjYzg1MTk4OWQgcmVsZWFzZTI2LW1haW50Cis3ODQyMCA1OWVjZWExMzc2OWIzOTg4MDNiMmViOGExN2Q2Y2ZmOTc4MDRmMWU0IHB5M2sKKzc4NDIxIGM4ZWY5MDZiMTFiODgzMjAxN2E1NWEyMzcyODBhNzM2MDhhOGUyOTkgcmVsZWFzZTMxLW1haW50Cis3ODQyMiA1NmY0ZDZjNTE0NTAxNmU1YTVmZjJkYzlhMGY3N2E5NzA1OWI4YjZjIGxlZ2FjeS10cnVuaworNzg0MjMgOTIyNWI0ZjhjYjFlNzNjODExNWFjNWRkYmNmN2I1MzA2ZmFmYjNkNSByZWxlYXNlMjYtbWFpbnQKKzc4NDI0IGFmNTg3YjRiNTkwOTE5NGYzM2UxMmU2MzI5ZTI4MjczYmU3OWY2NmQgbGVnYWN5LXRydW5rCis3ODQyNSBjMGZhMTQ1MzcwZTQxZjQxMDI4NDk1MTExODk5ZGIzNDVjNzFlMmIzIHJlbGVhc2UyNi1tYWludAorNzg0MjYgM2Q0ZGIxZjViM2IxNTVkNWJmNzQ3ZjFkZDJmNTg4MDQxY2U4NDViMCBweTNrCis3ODQyNyBlNzA5ZjZmNmY0NWNhOWNkOWZkZTJmYjlmZTU4YmI3MzYxNGQ3MWJjIHB5M2sKKzc4NDI4IDVmOTkzOWFmMmY3MWFjZmRjZWZlNTZjNmI0MjBkZTNhMDI2MGZlZWUgcmVsZWFzZTMxLW1haW50Cis3ODQyOSBhZjllNmVkYmIwZmY3OTZhYmZhNTU2MjhiZDg3YWMwNzFmYTcyNTg4IHJlbGVhc2UzMS1tYWludAorNzg0MzAgZTQ3YTY0ZjljYzc3YmZlYWNlZjAwNjNkNjFhNDU2ZjRlNmI4OTc0MCBsZWdhY3ktdHJ1bmsKKzc4NDMxIDMxODEyNTVlMjhjOTlmOTZkODMzM2Q1NzA2ZDZlZGI2Y2Q3N2NkMTggbGVnYWN5LXRydW5rCis3ODQzMiBjOTUwZmFjNzQxMWJhNjQwYzkzYTFkNGIwYzZiMjQzN2RiOTEzYjU0IHJlbGVhc2UyNi1tYWludAorNzg0MzMgMjg3ODhmNzJkOGMwZmU1ZGE1Yzk2NTU3ZmM5NWFmNjBlOTE2MjA5ZiBweTNrCis3ODQzNCA5NGUyYjY5MDI5Njk2ZDBhMGEwMjA5OWQ4ODI5MDRmNjA1ZjkwOGE5IHJlbGVhc2UzMS1tYWludAorNzg0MzUgYjdkZTdjNWFmYTA0MjkzYzcxOTNhNTAzYTFlNzRkMmExMmIyMWE4MiBweTNrCis3ODQzNiAxOWNmNTI2YmVmYTQ2OWI1OWNiZmNmOWFmMWEwMGMxZTYxMzFmOTA4IHJlbGVhc2UzMS1tYWludAorNzg0MzcgMTIyMjFiNmNjOGNkYzdkMDg4YWNlZjRmY2Q4NWRjMTM2MzRlY2FkNyBweTNrCis3ODQzOCBmNWVhMTI2NGI3YWUxNzg3ZjNhMGE5MjAxMGUyYTFlMGJlMGY5YjVhIHJlbGVhc2UzMS1tYWludAorNzg0NDAgMzgzZjQwOTc1Yzc1YzNjMzFjZWU5YjQxYzMzYTg2ZTBjZDE1YzA2NiBsZWdhY3ktdHJ1bmsKKzc4NDQxIGJkODM1N2E5MWQzZTYzOTI2MWJhMWQxMWQyMmI4NDA4MmEwODBmMDggcmVsZWFzZTI2LW1haW50Cis3ODQ0MiA4NWJmODQ0NjlhMzJjOWRlNDZlNDlmYzlmZDM4NGRmMGI4YjNlMDE0IHB5M2sKKzc4NDQzIDIxODMyNzdjYmFiMTg3NjZkN2FiMTMzOGYyNjQyODkyYWM3ZDNlMTggcmVsZWFzZTMxLW1haW50Cis3ODQ0NCBhY2NhYjRiYWI2MzRjZDYxYzZjMzA4NjY1Mzg5ZWY1ZDVjMGI1YzVkIGxlZ2FjeS10cnVuaworNzg0NDUgZWNmZTljZmFhMzM0NzMxMTM0YTk1N2FlNTczNTA3MDJiZmRiYzE3OCByZWxlYXNlMjYtbWFpbnQKKzc4NDQ2IDg5YTUwYTExODIwMTkxMmRlN2U2ODdkNzkyNzQwZDFjYjk4ODUzNjggcHkzaworNzg0NDcgNWYwNGUwY2Q4MTcxNzkwM2I2MzAyNjNkMDY2N2JkZDEzMWJjNmU1YSByZWxlYXNlMzEtbWFpbnQKKzc4NDQ5IDZjMTRjMjc5MjViOWU1ODNkNzdlOWI0NDFkNDAyYTFlMTQ1Y2E4ODQgbGVnYWN5LXRydW5rCis3ODQ1MCBhYWNjMGQ0OGQ0NGQ3ZTEwNWI2Y2Y4ODYzNmMyZGZiMDcwOWMwZDE3IHJlbGVhc2UyNi1tYWludAorNzg0NTEgODU1M2Q0MmM5NGIxYTlmY2FlY2Q3NWYwYTRiMzc5OGUxNDE0YWI1NSBweTNrCis3ODQ1NCAxYTYyZjQ4OWE2OGEwYTkzNjYyOThkY2RkNzI1NTY4YTE5NmIwNTc4IGxlZ2FjeS10cnVuaworNzg0NTUgNDc4MGUwMzc3ZTEwZjY4ZDFiMzhmZDUyNTBhNDkyOGIyMzg4NTA2ZCBweTNrCis3ODQ1NiBlMWJjMDAyMmIyM2IyZDkxMGEyM2I4NWYzZjY2YmNhMmZkNjg0ZTEwIHB5M2sKKzc4NDU3IDk1YjNiYjZiOWZhYWI5YzQ4Zjc3ZTU5OGQxNjBlNDM1YzU0YjdjM2MgbGVnYWN5LXRydW5rCis3ODQ1OCAzYWI3NDA5NDA1ZmEzYTNiOTJiZGRiN2ViMTcxMmJiMjM1MmJhZjMyIHJlbGVhc2UyNi1tYWludAorNzg0NTkgYzEyYjk1NTM1MDk0ODgzOWU2NzIwZWNkMDk5ZDgwZWRlZjVhMTIyOCBweTNrCis3ODQ2MCAwODNjOGU1MzU0YWRiMzNiNzk2M2JkMDM5NDZmNDY3YzIzZTZjYTc4IHJlbGVhc2UzMS1tYWludAorNzg0NjEgN2UzYzQ3MzU0ZGEzNDI2ZTdiY2ZmMjNmMGJkYzJhZmVmNWQxZDJkYiBsZWdhY3ktdHJ1bmsKKzc4NDYyIDdkMzQzZDViZmIzZjFjZGZjODM5NjczY2JmMjUzMDEwNTAzMWFlZjIgcHkzaworNzg0NjMgYWQyZjVlYWNkMmEwMzZkNGU4NGFiNDA5ZDI5ODRjYTUzOTNlOWI5YSBsZWdhY3ktdHJ1bmsKKzc4NDY0IDlhYzM1MjE1YWY0YThjOTdjMmJlMmQ5NzQzMWM3OGJhOTIxYjcxMTggcHkzaworNzg0NjUgM2RjZGNhMDA3MDk1NTY2ZTQyNjYxNzYzNzc3MWQ4MmM3OWM0MzliZCBsZWdhY3ktdHJ1bmsKKzc4NDY2IDI1MmYxZTIzZTk4NjAzMTY4NGRjODI2YzBiMzQyZTM2YzMyZTU0M2UgcmVsZWFzZTI2LW1haW50Cis3ODQ2NyA4YjIwNDhiY2EzM2MxZDQzZTE5YWI0YzdmMTYzN2UwZGU3NjZiNzY2IGxlZ2FjeS10cnVuaworNzg0NjggNTM1ZTIxNTVhZjFhODJlMTAzNGFjODE1MDliMDI1MWQ0ZjNiOWQxNCBsZWdhY3ktdHJ1bmsKKzc4NDY5IGRjMWNkOGVkZmE0NjU3MmUxZTY5MTA0Y2MxODE2MDMxMzIxZmRmYTYgcHkzaworNzg0NzAgNjA0M2QwYmQ4YmY3MGE1NzRkODI3ZTY1NGVjNjQ1ZWQ1ZGI1NDk5NSBweTNrCis3ODQ3MSA2MmJhYmY0NTYwMDViNjdjZGRlZDYyMDgyZGU3NWE3MWU3MTQ3NWQwIHJlbGVhc2UyNi1tYWludAorNzg0NzIgOTQ4NmZmNDAyYWNjMzg4MTk0ZDI4NzVkNGZhZjBkZjI2ZTVmM2FhYyByZWxlYXNlMjYtbWFpbnQKKzc4NDczIDMzM2ZlOGQ3OTMyOThiYzE2ZGNiYzE2YjA4ZjVjMTRjY2JiYmE0MDEgcHkzaworNzg0NzQgNzg3NGQxM2M5YWE3NjdhNzg4MTBiNDBkYTUzYmZmMjI1ZDY0NTA5YiByZWxlYXNlMzEtbWFpbnQKKzc4NDc1IDhlNjQ2MTVhNGM4NjM1ZmFlZDRjNzRjNWRiY2M0YWU3YjEyZTIxNjcgcmVsZWFzZTMxLW1haW50Cis3ODQ3NiAyZjJkMjI1Nzc3NDI4MDZiZTYxNmY5NmE2NzQwNTU4ZWM5MTdlOTRkIHB5M2sKKzc4NDc3IDVlMmE1ODQzMDdiYTk4N2M4YzExMTI0MmQ2OWM3ZmM2YjU0ZDk3MzYgcmVsZWFzZTMxLW1haW50Cis3ODQ3OCAyMzFjODhlZTg4ODVjMTAzMGU5NjA2ZjI3NjE4OGFhZDI2NTVhZDE3IHB5M2sKKzc4NDc5IDMyNzBiYTFiZWM3NmEzODliMDczYzMxMTllZjg0NDgwYWI1OTVhYzAgcmVsZWFzZTI2LW1haW50Cis3ODQ4MCAyYjY4ZTMxNDJkMTdlODMzZjYxNmYxNTE3OTljNTNlYzk1ZTI2MWQ0IHB5M2sKKzc4NDgxIDU2ZjUzN2JlZGFmZWQ5ZmY3ZGE4NWE3YTkzYTQ4OGQ1MzY4OGI4NzAgcHkzaworNzg0ODIgNDA3MGY0Y2Y4Yzc3MmNkNTM5ZTJiNjdlMWY2NDEyYzQyMmYyNzY1ZSBsZWdhY3ktdHJ1bmsKKzc4NDgzIDQwNjZiNDVkMjhhYjI4YmQ2ZTI1ZGY2OTNjNWEzY2ZhMmM5MTgzNDkgcmVsZWFzZTI2LW1haW50Cis3ODQ4NCBlNTQwMzIzZDg3YThiMjAyMmEzZTVkYzZlNzdkODE4MDc4NTExZjcyIHB5M2sKKzc4NDg1IDBkNTkwZTVlODQwYzYzNWIyYjVmZTcwMWZiYTI5ZDE2NDAyZmFmZjkgcmVsZWFzZTMxLW1haW50Cis3ODQ4NiBhYmE5ZjY1NDFhZDY5ODNiNTA0OWM3Mzk1OGYwOGM1MDAzZDEyMGRhIGxlZ2FjeS10cnVuaworNzg0ODcgMmEwYWM5YmRlOTlhZmQwMjdjM2Q3YzJhZGM4Njk4YzY0NzEyNTEyYyBweTNrCis3ODQ4OCBkMGMyYjljMmJhYmIwZWQ5NjY4OTdkYmMxMDU4ZGMzYzA1MGMyYWQ1IGxlZ2FjeS10cnVuaworNzg0ODkgMGI0ODQ2NDg5MDU1YWNlNGZiNjczNzgyYTg5ZjJkZDQyNTM1MTViZSBsZWdhY3ktdHJ1bmsKKzc4NDkwIGYxMzljYTAzNGMzYjc1MDM4MDRlYTU2YTA1Y2U5NzgzZmFmMzFjYjcgcmVsZWFzZTI2LW1haW50Cis3ODQ5MSBiZjE0NmYxMDNlZTY3M2YyYzI3ODdhNDdiYTMwNWM2NDcyZjRlMDdmIHB5M2sKKzc4NDkyIDAxOTRkOGE2YjFlZmZjNDIwNjY2NDc3ZWJlNzA1YzQ1ZTlhZGE1MzIgcmVsZWFzZTMxLW1haW50Cis3ODQ5MyBhZTA5YWIyNjg2ZWQwNDk0NjEyZDQ4YmU4YjA1YTgyZDAwYWRiYzI2IHB5M2sKKzc4NDk0IDg5MWU3OWQ3NzBkODhlNjdiMDRiNzZiNWE0OGMwNDk0MTE0NjI4YTkgcmVsZWFzZTI2LW1haW50Cis3ODQ5NSA4MTUwOTJhNWU1YzEyOTgzYTgzNmE2NzYxNGNhYTBmYjUwOWQ0Nzg2IHJlbGVhc2UzMS1tYWludAorNzg0OTYgZDYyYmRkODRkZjBhM2JkYTVlZTIzYTk5MjE4YmU1ZTYwNTFjNTU3YSBsZWdhY3ktdHJ1bmsKKzc4NDk3IDc3NTkzN2EzNGY5NjYyYjM4ODU0N2YxN2ExMzY3YzlkOWJkYjgxN2YgbGVnYWN5LXRydW5rCis3ODQ5OCA4NjQwMmZhMGM1Yjg4ZWNmOWVjMDUzNDgzMmEyZjE4NjVhNWY3YmZiIHJlbGVhc2UyNi1tYWludAorNzg0OTkgNTYwZjNmNGVlOWE3ZDgxOWU3YTYzY2RkY2YzOTk4ZWY5N2ExOTc1MSBweTNrCis3ODUwMCA1NjIwNWY1NDdiNzQ2MDU5YzU3ODdiMDM1NDk3MzliMzAyNzQxYWZjIHB5M2sKKzc4NTAyIDg4NzEzYzBlZDAxMDI1YTgwNDU0NGZhZTEyMDJlOGQ5ZjY3MWIxNDcgcmVsZWFzZTMxLW1haW50Cis3ODUwNSA4MWQ2ODMzYzYyNzhiZWZkMDEyMzBmNWY4ZjUyNDJmODE1MWZhYjQzIHB5M2sKKzc4NTA2IDg4ZjE0N2QyNjM3MjYxZjYzMzc1M2RiMDhmNjJlYzIxYzM3Y2RkNzIgcHkzaworNzg1MDcgYTllMWYxZDM0Yzk2NzFiYmVlMTVhY2U0YzkxMmIwM2M1MjI1ODQyOSByZWxlYXNlMzEtbWFpbnQKKzc4NTA4IDY3OWY1MmI4YWVmNGM2ZDJmNjlkMjliMGQ0YTA0ZmZhNGE2ZDllMzMgbGVnYWN5LXRydW5rCis3ODUwOSA4MWRjYzBjODQ1ZGZiNjY4ZWFjMDE4OGM1YzFmNjk3NzIzMTYwMjFjIGxlZ2FjeS10cnVuaworNzg1MTAgMDFjNThjZWY4MmQ0OGE5YThhYjE2MjdlY2Y3MjE2NDMwN2UxOTdjOCBweTNrCis3ODUxMSA1ZDlmM2FmYmM0ZTRiYzBjNTEzZWU2YTE1MTY3MzhmNTNlNGExM2IzIGxlZ2FjeS10cnVuaworNzg1MTIgMTNmZjlmZGI4NDMxYjcyOTNmMzFiZGE0YjgxN2M2YjM3M2U2ZDc5MyByZWxlYXNlMjYtbWFpbnQKKzc4NTEzIGYzNzg2M2E3ZWQ2NzdhODcxMzJlNzliOGQwNjAwMDgxZDBiMTM0ZmEgcHkzaworNzg1MTQgMjA4MGFiODgwYTgwZWQwYmFmZWNmMDEyNzk4YjVmMDE2Y2U1MWI5MSByZWxlYXNlMzEtbWFpbnQKKzc4NTE1IDc5OWJjNDk2NGExZDkzMDJkNmNhNzQxYTUxMjE4NTZjMzFkZDM1ZGMgbGVnYWN5LXRydW5rCis3ODUxNiA3NTA4MDI3NTkyMWI4ZTg2YjU0NTk3NzY1MTkyM2I2OWRhOTg0YTQ2IGxlZ2FjeS10cnVuaworNzg1MTcgZWFiZmE3NzhiMDc2YjYwZTg1NWEyMDZlMTExZGVlNDM0NTYwODJkOSBsZWdhY3ktdHJ1bmsKKzc4NTE4IDJjZGVjODQ4Yjc0YzYxNDAxMjZkMTQ3YWVhY2RhY2YyY2IwYzhhM2MgcmVsZWFzZTI2LW1haW50Cis3ODUxOSA5OGU5YzRmZmQzNDNhZjFjZWM1MDQ2ZGQwZTg1ZGNkMTdlYzg5ZTkyIHB5M2sKKzc4NTIwIDllODExM2U3NmFkYmYwMTQ1NGNkYWYwYmMzNTQzNjU0YWI4YjdlOTMgcmVsZWFzZTMxLW1haW50Cis3ODUyMSA4ZTNkMDNiODA5MGJjYjIxZGFjZWNkMWQ5ZmZiM2U1MjA4MGI0M2YzIHJlbGVhc2UzMS1tYWludAorNzg1MjIgMWM2ZmM3MGY0OWQxYWJlZWY5MTY0OGQ0MjlhZTQ4NTYzZWEyYzBkNCBsZWdhY3ktdHJ1bmsKKzc4NTIzIDZlNjY0YmNjOTU4ZDYwZjIxZTc4ZGNmMTBmODQwZmQzNWM3MzEwMTggbGVnYWN5LXRydW5rCis3ODUyNCA1NTc3ODg1NWNkMjVhOWFlOGZiNjY3NWU5ZjhjMjkyN2RiOTg5ZjVkIHB5M2sKKzc4NTI1IDEyNDY5ZjIwNjU2YmVlMDU3OTUxMGU4N2NmZWI5ZWU0ODM3ZjY5M2QgcmVsZWFzZTI2LW1haW50Cis3ODUyNiAxZjE1ODIzOGZhNzY0ZDcwMGFjOWZjZGU3NDhiMGVhNGE3YjM0ZjMwIHJlbGVhc2UzMS1tYWludAorNzg1MjcgNGFmYzUwZDE1NTQ0NWQwMWQyYzkzZDZjYTg2Y2VmYzYzOWI3MDJmMyBsZWdhY3ktdHJ1bmsKKzc4NTI4IGUxYjcwYzZkZjllNzczZGZkNzAyOTFiOGRkNWVjMWMxMGNjZjQzMWEgbGVnYWN5LXRydW5rCis3ODUyOSA5YjRlMGNkNzgxN2FkYTFlMmYzMTMzNDk3ZTdkMjAxZDZkOGRjZTFlIHB5M2sKKzc4NTMwIDM3MGUxYTFjMjM4NjlkZjgxOWQzMWI0NGFhOWYzMmRmMjI4NDhmOTggcHkzaworNzg1MzEgMDc3ZjJiOGIzZTU3MjkwOTMzZGQ5MmJjZTRiNTBmMDMyMDI3NjI0NyBsZWdhY3ktdHJ1bmsKKzc4NTMyIDg1NGIzNGEwNjg5NmZkNmU0N2ExNmU4ZGUzZTRjMjhmMGMzMzQ0OWEgbGVnYWN5LXRydW5rCis3ODUzMyA5MjRjYTI5NWIxNDYwMDAyNjMwYjBhMzdkMWYwMmU4M2EwMjc5YmI2IHB5M2sKKzc4NTM0IGQxYzYyODgyYzczYmQwZGM0ZmYyYTE1NjQxZGNkMzAzMDI3ZDllODggcmVsZWFzZTMxLW1haW50Cis3ODUzNSBmNTNmZTMzZTAzZWExYjQ5YmY3Njk2YmEyNGM5ZTMzYWRiY2U2YjA1IHJlbGVhc2UyNi1tYWludAorNzg1MzYgYzQ1ODA1YmEzMjNmN2ZhYTlhYTE3MDIzODdiMGUxZTQyM2Q4MTJlNCBsZWdhY3ktdHJ1bmsKKzc4NTM3IDk0MWUxYmYwNGY1NTMyZTEyZjBmZmM5MDI3ZGJmMGYzYjUyNmU2YzcgcmVsZWFzZTI2LW1haW50Cis3ODUzOCBmMDI4M2JiNjIzNjE0YWQ5NTJhZmFhN2NlY2QzYzlmNmIyM2EzMDc0IHB5M2sKKzc4NTM5IDc4M2YwOWIwODcwNmVhMzBlMjBjNWYwZTQ2MzY2YTJiMjM4ODE3MmYgcmVsZWFzZTMxLW1haW50Cis3ODU0MCAwMjY1Y2RjOGQ1YmIwY2ViYjRkOTFjYzQ5MzI2NzQ4NGUxYTc0NGMyIHJlbGVhc2UyNi1tYWludAorNzg1NDEgOGQ0OGY5YjU5Njg5YmE0Njk4MjY1NTdhOGRkZDk4NmJkNGNkZTNmNSBweTNrCis3ODU0MiA5YjcyMjc3ZDZiMzBhN2MwOGM5ZDZkMGI2YmQyZjljMTQyNTEzODBlIHJlbGVhc2UzMS1tYWludAorNzg1NDMgZDVmNTBhZTRmMWY3OGUxOTlmMTM3MzkxYWRmNDhjN2VmMmJiODM4YiByZWxlYXNlMjYtbWFpbnQKKzc4NTQ0IGY1YmFjNDczNzA2OWE0MTNlODkyZDdhNTEwNzg5NWRjMWQ2YjFkYjIgbGVnYWN5LXRydW5rCis3ODU0NSA2ZmFmYjY0ZWMzMjgwOGQyMzlkZDVkMGM1MGY1NmU2ZDQ3NzcyMzkxIHB5M2sKKzc4NTQ2IDU4OTAwNGIyMmY1NGMxMzQ3ZTdmZWMzNTZhN2RmMzEwZjQ1YWE0ZWMgbGVnYWN5LXRydW5rCis3ODU0NyBhZmY2OTJiZGI2ZGIxMDc5NzgzMzE5MWYzNmFmMzJmODMyNTgxY2MxIHJlbGVhc2UyNi1tYWludAorNzg1NDggODg3ZGU1ZGZkOTYwMTVhZDQ0MDI5Y2ExZWJmYjQ0NGViMDVlNTJhOSBweTNrCis3ODU0OSBkYzg0NmEyMTFjNjU4YWFhZTBmMDkwOGUzYzI4YTc0MTBhZjAxY2M3IHJlbGVhc2UzMS1tYWludAorNzg1NTAgNDZhZTE2NGIxNWJhOTFkYzY0OTFlOTFhODY4YjJkMjcxYzMzMTdjNiBsZWdhY3ktdHJ1bmsKKzc4NTUxIDRlMzA0MzEwOTc0OWYyOTU3NDY2OGU0NDY1ZTQ5YmNjYmI5N2JmN2IgcmVsZWFzZTI2LW1haW50Cis3ODU1MiA1OGMzNTQ5NWE5MzQzODdkMDY0ZWRmNTk2MzRhZDczY2I4ZmUyOGU0IHB5M2sKKzc4NTU0IDRiYzViMDQxZDNhYTZiYmUwOTAxZGYyMjY3ZTU4Yjg4ODg3NzdjOTUgcmVsZWFzZTI2LW1haW50Cis3ODU1NSA0MGE0MDZlZWRjYWM5MmUxMWE5MjM1OWRkNjc0ZGZjYWM1NzkyYWU5IHJlbGVhc2UzMS1tYWludAorNzg1NTYgZDU2MTVlZWU1NjNlNTY0MDUzN2RlOThkMmJiYmExYzc0MGFlODZmMCBweTNrCis3ODU1NyBjZGY1OTYwNGExNzQ0ZDZiNTNiYjcyOWU5OTQ2NzYyZmVjOWM5ZTM1IHJlbGVhc2UzMS1tYWludAorNzg1NTggOGI3YjVjOWU2N2Y0ZDY3MDNhNzg3MTRlNTQ0OThmODhhYjMzMWY4NCBsZWdhY3ktdHJ1bmsKKzc4NTU5IDkxMjdkNzA3MzBjNWIwZDYxZjAzN2ExMDFmM2FjMDZmNzAyM2Q4ODIgbGVnYWN5LXRydW5rCis3ODU2MCAwNDU5MGVjNmYzN2RkZjY1NzUwMjk1MDg5NzY2ZDkyOWIzMTc1Yzg3IHJlbGVhc2UyNi1tYWludAorNzg1NjEgNDM4NjgwYmU1NDcyYjdhYzIyZTY3NjY0Nzg4NTMyZmFhNzM1Mzc0ZiBsZWdhY3ktdHJ1bmsKKzc4NTYyIDM5YTUwM2M4ODAwMmE4ZjYxZWM3MDJmY2U1NmI2NTNkODhmM2U1OTUgbGVnYWN5LXRydW5rCis3ODU2MyBmYmRlMTFkMWMxZjViM2I3OWZkNTNjNzBiM2Y5Njk3MmE3ZTkzODQwIGxlZ2FjeS10cnVuaworNzg1NjQgOTM0MjM5YjI2OGFkYzM1N2JjMDk1NDU1MzRlZjM4MGZhZmJmODQ2YyByZWxlYXNlMjYtbWFpbnQKKzc4NTY1IGM4YjI2Mjc2YzU4Nzc5ODViNGIyNDUwYThjNTRhN2UyODgxMmY1ZjkgcmVsZWFzZTI2LW1haW50Cis3ODU2NiA4OWY0MmI2ODFjZTU1NzczMjdmODA0MTAzMmY2MTQ2OGEzM2MxNmU1IGxlZ2FjeS10cnVuaworNzg1NjcgNjlhMTAzZWZhZThkNGViNjk0MjE5YjhiNTJhNzI4MTQyMGY4ODFmYiByZWxlYXNlMjYtbWFpbnQKKzc4NTY4IGY5OWU3YWU3MTJiMGIyNGYzZWVjZDRjYzUxMjFmYjIyOGUzYmRiNGMgcHkzaworNzg1NjkgODQ5OGYwZDlmMDI2MzYyZTlhZTExNTQ1MTZjZWE3MjhhOTFlYjlmZSByZWxlYXNlMzEtbWFpbnQKKzc4NTcwIGFjYTE4ODk3MGM0N2QwNmViMzA2NzcyNjFkOWI0MWQxMDAyM2M5MWEgcmVsZWFzZTI2LW1haW50Cis3ODU3MSAyYzliZjIxOGNlMjk4NzhmNDcxODQ1ODk5YmVjM2M3ZGNmNzBjYTRiIHJlbGVhc2UyNi1tYWludAorNzg1NzIgYzlmNjhlNDJhYjc5NmEzYmFiNGY4Y2YzY2M2OWNlMTA1MDNjYjk5MCByZWxlYXNlMjYtbWFpbnQKKzc4NTczIDExMTAxM2RkNWE4YWEwZWUwZTI1MTdjZmI2MmVhYjliODA4NzRkNDggcmVsZWFzZTI2LW1haW50Cis3ODU3NCA0ZjE4OTQ1ZmI4YjE3ZmRiYzQ0YmZjODI3ODc2NGM4NmVjZjU5ZWYzIGxlZ2FjeS10cnVuaworNzg1NzYgODNlZjY3NTI2MDExYWZmNGZkOTRiMTAzOGUwMzYxZjQ3Yjg4MjgwYSBsZWdhY3ktdHJ1bmsKKzc4NTc3IGY5MjNmZTU1YTQwYzNiNzVlOTUwYmE0MjRjZDJhMmY3MjVkM2EyNmIgcHkzaworNzg1NzggNzU1ZDdhM2E2YmI3NTZlM2E2MjNjMjk1YWM5MjczMmMzNTU3NTYzOSByZWxlYXNlMjYtbWFpbnQKKzc4NTc5IDM4YjAyZGQyZDQ1OWJhYzY2MTA4YjNiMTdmODBjY2U0NDM0Y2YwYWMgcmVsZWFzZTMxLW1haW50Cis3ODU4MCA0NzI4YWEyYzhhMTI4NDVhMjhkMzc4ZGVlOThkYmFhYTllMjIxNTdiIGxlZ2FjeS10cnVuaworNzg1ODEgN2E4OWUxZWM0ZjAwNWNlMGUxMzllMjNjMWQ1N2YyMjE1OTM5MDk5NiBsZWdhY3ktdHJ1bmsKKzc4NTgyIDZkNWMzMWYyNGEyMWIyZDg0ZjZhOGM2MWRiNGY3MmEyMjg2NzRjM2MgbGVnYWN5LXRydW5rCis3ODU4MyA2Yjk2OGUyZjA1ZGRiMGQ5MDMxYWI1ZGI1NDA1NTNiYzJhOTAxZDc3IHB5M2sKKzc4NTg1IDFhY2I2NDNiMmNmNDQ1YTAwOWNkYjdhNTVhZDEzZmM1Mjk1ZGVhZTkgbGVnYWN5LXRydW5rCis3ODU4NiBlNjRjNGI0M2ViM2MyNzY4OTI0MjI1MjgzYzNkNjkyNDNiZmU2YzAxIGxlZ2FjeS10cnVuaworNzg1ODcgNGNhODNjNWI4NTUxYmZlY2JiOGMwNzBjZDRlYTc1OWI4Yzg2Zjg1ZSBsZWdhY3ktdHJ1bmsKKzc4NTg4IDg0MDFkZTY1ZTEyYTIxOGMwNGI0NjM4MDA1MTZlODQ5OTE4NmYzOTEgbGVnYWN5LXRydW5rCis3ODU4OSBkYWJkZWVjNGY5YzFkMzMxOTU0Njc4ZjJmZWRmNjU5ZmU0YjFlYTNiIGxlZ2FjeS10cnVuaworNzg1OTAgODJlZGEzNDVhNWY2ZTEzZDljZWI2MDhlODJkYTQyM2Q5NjE0MGIxMSBsZWdhY3ktdHJ1bmsKKzc4NTkxIDRiN2I2OTUzY2QwNjQ5NzBmNTA2N2NmY2NmOTNjM2E0OGIxMDA2MWYgbGVnYWN5LXRydW5rCis3ODU5MiAxMzdhMjFmY2QzODUwYWI5NTk4NjM0YzhlZjBjYzBhNWZlZTYxNGJmIGxlZ2FjeS10cnVuaworNzg1OTMgODNlN2VlMTg1MTYyM2NjYWUzNmMyNDI5Y2E5OTBkYjQwYmE0NzgyMCBsZWdhY3ktdHJ1bmsKKzc4NTk0IDk3MGZiNGE4ZTY1NGFjOWJmNzlkNDkzYzBlNmVkYzFiNjAyOWM1NTkgbGVnYWN5LXRydW5rCis3ODU5NSAxMmJjYjY5OTM4YjNjMDEyNzc3YzI0NTA1NTVkYmJiY2E0YjE3OGI1IHB5M2sKKzc4NTk2IGMzMWE3YzBjNjM5OTg1NWU5Zjg0YTg2MTdhOGQ5OWIzMGJmYjdiMDcgbGVnYWN5LXRydW5rCis3ODU5NyA1YzY3YzFlZjhhZDNmNDRmNmQ2NmEyNGI3MWYxM2Q2ZGExMWNiZTYwIHJlbGVhc2UyNi1tYWludAorNzg1OTggMDFkNmExNGFiYTY1MTc2ZmIwOTY4ZmYyYjMzOGYxYzFhN2Q2MDRmOSBweTNrCis3ODU5OSA5NTFjOTdlMjg3OGQ3MWQ4MjQyNWMxOWMwNDMzOWQ0ZjhlMGQ5ZTJhIHJlbGVhc2UzMS1tYWludAorNzg2MDAgOGQ3MjE0N2Y0NDJjZjlkNWEyZjc3NDZhYmE5YzQyYjA3NDdiNzE2ZSBsZWdhY3ktdHJ1bmsKKzc4NjAxIGViYTk0MmU3Nzg5NTdhMTE2MTRhNDM2NmU0MjMxZGYwMDkzNTk3OTAgbGVnYWN5LXRydW5rCis3ODYwMiBiMzBmOGNlODIxNjc3ZDkzMGY3MDRkZTUxMWE5ZDZiYzdiYTE0ZWViIHB5M2sKKzc4NjAzIGIwNDQ0MDVkNjJlNTVjMWU1NTAyYmNlMzFhNmZhY2E1ZjgzY2ZjMjIgbGVnYWN5LXRydW5rCis3ODYwNCBmNTQxMTEyNTI0NWVlMjczZjczMTY1OWNlNTM1ZDRkNTAwNWMxNGJkIGxlZ2FjeS10cnVuaworNzg2MDUgMmQyNDE3NjVlNjMxNzRmNzk5MzRjM2E1ZjFlMWQzOTBjZjRkYjY2ZCBweTNrCis3ODYwNiBhYWI1Yjc2YWEwNTk3ZDgxNDk5N2Y4ZmI5ZmRiYjZmNWRmMWIxN2E0IGxlZ2FjeS10cnVuaworNzg2MDcgNjgxNTk3ZDBjNThkZjEwNzBlYWQyMjhlZWUwMTY5NWQwMTBlNDdlOCBweTNrCis3ODYwOCBkNGExODhkYWMyMjI4NTY5MGY5ZWM1OTc1Mjk2ZjRhYzUxZmUyMDc0IHB5M2sKKzc4NjA5IDY1Mzc3NjFjMzEwMTgzZjA0MzljY2VjODYwMzY5MGE5ZWZjOWI0MzkgcmVsZWFzZTMxLW1haW50Cis3ODYxMCA3ZWVjNjIzOGUxNWFjNGU3ZmEyMjNhYjFmYjRjYzBiZmFjYzJkYTk0IGxlZ2FjeS10cnVuaworNzg2MTEgMDg2ODQ2MzgxZThmM2Q2ZmIwZTBlMTljNjY3ODJhOGU4ZDQ3YWEzNCBweTNrCis3ODYxMiAxZTRjNGIyMzVhODlkZDc1NGYwNTM0MTg1N2I3YzVlOGE5YzAwYzUyIHJlbGVhc2UzMS1tYWludAorNzg2MTMgMjVjMGY0ZDdhZTU2OWU0M2ZiNGIzYTYyMGViOWU4NzUyZmRhMjJjOSBsZWdhY3ktdHJ1bmsKKzc4NjE0IDM4Y2VmOGRlYWUyMmVmMDE3MzNlYjcxZGRmYWZhNjYwOGI5NWMyNWEgbGVnYWN5LXRydW5rCis3ODYxNSA1ODRlYzdhNzI1NWIyNDBlOWY1N2ZjNDA1NmYwZTczMzYyY2ViMDQ2IHB5M2sKKzc4NjE2IGJkOWM3OTkzZWU3NWUzNjU5ZDljNjNmNDA4YjFmNDNhNzc5NmYxNjQgcHkzaworNzg2MTkgYmZmMDUwNDUwMjgzZWM3NWM2Y2UwYWIwOTU2MjA0YmM2MGE0YzYwZSByZWxlYXNlMjYtbWFpbnQKKzc4NjIwIGI4NzUwYzcyYjliYzQ3ZmNiNmJhZTExYTBjNjM2ZWUyNGUzZWY3ZjMgbGVnYWN5LXRydW5rCis3ODYyMSA2ODdkODUxN2EwYzM4Y2ZhMmU2NjYwNmZjYjI0OGU1ZTU2Y2ZkZmUyIHJlbGVhc2UyNi1tYWludAorNzg2MjIgMjlmYWM0YjFhNTFlNzYzZDNmMDcyOTQzOTIxY2YwYWMzZjI4ZTUyYSBweTNrCis3ODYyMyA4YWNlMmVhZDU1MjM3YjFlNzJjNmYzNGQ4ODQzZjk4ZTA2MDk3ZjA4IGxlZ2FjeS10cnVuaworNzg2MjQgNGI0MTNkZmEyN2Y5OTJhN2JlMjMyMTgzNGM2OWNkZWUwYTFkNjk5MyByZWxlYXNlMzEtbWFpbnQKKzc4NjI1IGM1M2NjNmJkNmI2MTMwODA2MDcxMDk1MDk0NDY3YmMzNmU2YzNmMmYgcmVsZWFzZTI2LW1haW50Cis3ODYyNiBjNGZjYTc3OGI1NzNhNTI2NjJkNmEwMzY3NDFjNTcyNTI1MTQ1MzFkIHB5M2sKKzc4NjI3IGI5OTk5ODQ1M2Q1MjNhZTEwZWJiYTNkZmIxZDRhOWRmNzUwMGQ0NmMgcmVsZWFzZTI2LW1haW50Cis3ODYyOCBkZTA2YjU5YWE0M2M3ZjlhYTU4ZDFhY2VkOGQ2ZDZhY2VkNDg5NmI4IHJlbGVhc2UzMS1tYWludAorNzg2MjkgNWJiMjk1YTk0YjBmN2QwNGQ0YTI3ODM0YmJjYWUyMGNiMTg1Mzc5YyByZWxlYXNlMjYtbWFpbnQKKzc4NjMwIGMzNTlkNWFjZGM0YjViNDA3YzgwZDU4ZDFjMmIwMmQwZjI0NTU5ZGUgcmVsZWFzZTI2LW1haW50Cis3ODYzMiA2ZjFlMmZmZDdiZGU4OWUwYWJmM2Y5ZGJjOTI3ZDYwNWNkMzhmOWUxIHB5M2sKKzc4NjMzIGRmYTc0OTExNDBkOTRjNmUxZTJlMzQwMzQ5ZDUyY2IwYzcwOTI3NjIgcmVsZWFzZTMxLW1haW50Cis3ODYzNCBkZjAyNzBiZWY5NzE4ZjRiMjA0MzZkM2Q0MjdjODQ2ZmE2ZDNmMGZkIGxlZ2FjeS10cnVuaworNzg2MzUgODY3ODUzNDI0MmEwOTM4ZGExN2E2ZGEyMjRkZGY4MmU4NzVmYTA2MyBsZWdhY3ktdHJ1bmsKKzc4NjM2IGJmZWE2YzIwMmVkZTU3Njc3YWNiNTNkNTRjZTc4MWIwMTlkOTVjYjMgcHkzaworNzg2MzcgNjBlN2U2ZDNlNDVhODkwN2JlOTFhODA3MDVlYTFhYzQ5OTJjY2M4NSByZWxlYXNlMzEtbWFpbnQKKzc4NjM4IDdmNTAwNjQxYzA2YTFkOTRjNzM1MGJiOTkyOWQ1NTU1OTM3ODc2ZGYgbGVnYWN5LXRydW5rCis3ODYzOSBkZDg1MjczOTk1ODIzYWE2MmI4Y2RhMGU4MzI0OTE3YThhYjQyMDYzIHB5M2sKKzc4NjQwIGQ3YTYyYzE2NTA1YjEyY2NjMjY3ODQ2MGQ0OWI2ZWI3ZTQ3MDgzNzQgcmVsZWFzZTMxLW1haW50Cis3ODY0MSBkNWZiZGEwM2M2MDMzY2UxYWVhMDQ1YzE1ZWQyMDYwZmYzOWVlZjNkIGxlZ2FjeS10cnVuaworNzg2NDIgOTk0NGU1MTA0YTU1OTcwMzk5MDNmMzhmOGQ1NDkzZGZjNWRhYjc1YiBweTNrCis3ODY0MyA3NTk1OTIxYTE0NzQ4MmYyMTA2MGFjMWI1MTk1NjAyOTU4Yzk4MzIyIHJlbGVhc2UzMS1tYWludAorNzg2NDQgNDYxZDljZDE5NWI3M2IzMDY2NzI2ODhmMjMwMmFiMTJiYTBhZjcwYSBsZWdhY3ktdHJ1bmsKKzc4NjQ1IDc3OTAwZTdkZWFhNTg3MDA1ZGYxMmYyZWZlNDg0YjA2YWY3ZWU1ZDAgcHkzaworNzg2NDYgMjYyNjlkZmMyMmFiNDdlNDExNGVkN2RkZjQxMjBhMzM4NWYxN2YzOCBsZWdhY3ktdHJ1bmsKKzc4NjQ3IDBiMjdjM2YxOGNiMzg2ZjU2MjQ3N2YzNGZmYjZmOGZlNDAxMDg5ZjAgcHkzaworNzg2NDggZmQ4ZmRkMzg4OTYzYTk2MjFkOGRiNWZkMDY4ZmQwNmE1MjI4ZTFhZiByZWxlYXNlMzEtbWFpbnQKKzc4NjQ5IDMwMmRiYzZjNDgwNzFlZGQ0NGQ3ZTVmYWQzNmEwMzUzNmRhMjZiNDkgcHkzaworNzg2NTAgYjZjYWIyMWQ4MGI5NWI2N2EwNWYzMDllMWM1YmRiZmViYTlkMjlkZiByZWxlYXNlMzEtbWFpbnQKKzc4NjUxIGEzYzAwNTY2YzJkNTljMmRmOTFlN2NkNDc3ZDA0ZDBmNDUwMTZjYjUgcmVsZWFzZTI2LW1haW50Cis3ODY1MiA4NDEzMGMyMjY1ZGNhNmY5MjA3MmM4YTYxMzI4MjlkYWIyZmVjZTZlIGxlZ2FjeS10cnVuaworNzg2NTMgMjk1ZDU5ZmE2ZTYyZTFkMmM1MTkxOGFmM2Q5N2Q3OGU3Mjc5M2Y5YSBsZWdhY3ktdHJ1bmsKKzc4NjU0IGRiNGRhMWVkZjM0ZjVhMjUxZjVkMDQxNGJjNGIwNDllMGQxOWMwMTkgcHkzaworNzg2NTUgNmZhY2JjMTgzYTRhMWZmN2NjNmNhYTViZWZhNTE0ZmRlMjU5YmYwNyBweTNrCis3ODY1NiA5ODdiYTM3YTU0OTQzYWQ0Mzk1MzgzMGM2OWIwNjFhYzZiOTEzZDQxIGxlZ2FjeS10cnVuaworNzg2NTcgZWVhMTVmYjAyNDRlMmViNTYxM2I5OTIxZTE0NGQ3ZWJlNDk4OTA5YSBweTNrCis3ODY1OCA5NTFmZWMxOTZlZGM3MGE5ZGFkYzQ2NGIzOGRkZTYzM2RjZTdiZTk2IHJlbGVhc2UzMS1tYWludAorNzg2NTkgZjgzNWUyODI3ZDFhYTYzMDNiNzA0Yzc4ZmRhYTkwMGE5ZmU5NGNkMSByZWxlYXNlMjYtbWFpbnQKKzc4NjYwIDAyYWVmYzQyNTdkZTc2ZjYzZWUwYjZjMzE2OTdlYTBkNjhiMDJkZTYgbGVnYWN5LXRydW5rCis3ODY2MSBjZThiZTY0YjM0YThhNmQxM2Y0NGM1ZWIyNjUyMTQ2NTRmZmMzMjU0IGxlZ2FjeS10cnVuaworNzg2NjIgZDhiMmZhODg3ODhiMWY2YjNkNzNkZWNiMmI2MzA1YWM2NTFkYzc1YSBsZWdhY3ktdHJ1bmsKKzc4NjYzIDA0OTU1ZTdlYjU5NzA2ZmI4NjIzMDI1ZjYwNDBkMTUwNTBmZDFlYWUgcHkzaworNzg2NjQgMzE5ZTYyMTVjNTZjYjk5NWViZjhhYzViOTk5OWJjZTJlYmQ1ZTkyOCBweTNrCis3ODY2NSA0ZGYzM2U4M2YyNmYxMGI1N2I1NzQxMjlmYzdiMjMzOWZmZDA5YTg5IHJlbGVhc2UzMS1tYWludAorNzg2NjYgYWQyMmJjMjJkZGRjYmVmMzYxOTE2OTZhMDA0MjljN2E2MDhkNTAxYSBsZWdhY3ktdHJ1bmsKKzc4NjY3IDM1NzRjNWZlMjA3YzQ2NjEzMzc2ODljZTUwNGRkOTFhOTYzNGFiYmUgbGVnYWN5LXRydW5rCis3ODY2OCA2OWIyYWJiOTUzNDg3N2RkZDY1MjYyZmFhYzBmZTVmMjY4NDBmMDU0IHJlbGVhc2UyNi1tYWludAorNzg2NjkgODFkYzE3MmJmZGFiZGNmMzQ1NjFiODhmY2UyNWM5OTRhZTIwNzYwNyByZWxlYXNlMjYtbWFpbnQKKzc4NjcwIDc1NTcxNWIzY2YyM2EzZTkwNzI5MGNiZTcwYjE3OTFhZmNlMTAzY2MgcHkzaworNzg2NzEgNDVjNGI2ZDZlMmE1MzRjZTdiYzYyZmE1Y2JkYmEyNjNiODFiZjkzMyBsZWdhY3ktdHJ1bmsKKzc4NjcyIDAyMWNiNGY0NTU5YTVmYWFjNGJmMWE2ZTliYjRlYjhiODRkN2M0MmIgcHkzaworNzg2NzMgNWI4MTllYzRlMjA1ZmMwZmQ5ZDEyZDQ2ZGYwNDljMDU0OTdhYjFlZCBsZWdhY3ktdHJ1bmsKKzc4Njc0IDQzMmY4YmE2NzM4MTgxMmI0N2JkOGEwYWZmNjVhMDZkYjA3Y2QwNDAgcHkzaworNzg2NzUgZmVmNGUyNTNlODhhZjM1YzEyYjdiZDI0ODczZTYwM2JjZmRkN2I2NiBsZWdhY3ktdHJ1bmsKKzc4Njc2IDBmY2EzOTdkNTBmN2ZlNjQ0NzQ2Mjc2NDc0YTc2NDFkNzAyYjkzYzUgcHkzaworNzg2NzggN2I0OGViYWFkYjYwMDBjZmI1NDZmNmFhNzI4ZTk0NDU1NzRlOGRmMCBsZWdhY3ktdHJ1bmsKKzc4NjgwIDdlOTZiMGJjYmEyN2VkNzlkOTk0NjMzZTAzOTU5ZWNmNWEwZjI3ZGQgbGVnYWN5LXRydW5rCis3ODY4MiAwMTk3NTk5MTZhOWJhN2EyNGM5MWQwYWI3MDNkODQ2NmUzMmIyODdlIGxlZ2FjeS10cnVuaworNzg2ODMgZTUwMzAzM2UzMTQzNmI5NDljYWRlNDc4OWQyZGEzNmRjZTFhYTJhZSBsZWdhY3ktdHJ1bmsKKzc4Njg0IDgyNDQ2M2M0NDg5ODQ0MDU4ZDdiY2NkMWU3ZjFiNjExZWE2NTlmYmYgcHkzaworNzg2ODUgN2NkN2ZmNmIwYWRiMjg5MTI1ODJjZTA5ZmVlYWVjMmZhOGFhOGRhMyByZWxlYXNlMjYtbWFpbnQKKzc4Njg2IDhiODY0YWE3OGU5MjUxN2EzZGY0MDlmNmVkNmRkZTRkNGU1ZmJkZjMgcmVsZWFzZTMxLW1haW50Cis3ODY4NyBhZTdmMjZkMjRlMWRjZjc0OTdmZTI5YjdkZjhiZDU3MWVkMjlhYzdlIHB5M2sKKzc4Njg4IDA0ZDNhZTUyZmY3MzAyYTM4NzliYmJiM2I2ZjQyMWQ5NDA1NWNjNWIgbGVnYWN5LXRydW5rCis3ODY4OSAzMjYxOTk5NmEwMTQ4YzRkNzk2MzE2ODgxYzNiOTkwZjdmMTk0NzM3IHB5M2sKKzc4NjkwIGMyZDlkNTBmMzdjNTliNjMzYjRjYjhhOTU5MDRhYjc5NGNlNTJjNjIgbGVnYWN5LXRydW5rCis3ODY5MSA5MWZiMzk0YzA0ZDYzZDk5ZmVlMmFjZGY4YzcyNmZmYjIzNzRjNWFjIHB5M2sKKzc4NjkyIDgxNDc3MTkyY2Y3YTk5YTIyOWY5NjM4N2I5NmI3ZmEwYjU5ZWVmOTEgcHkzaworNzg2OTMgY2VkNWYxZjQxNGIwMGM2NTQ3ZDMzN2QyZGY0NjBiMDAwZTEyNjc3MCByZWxlYXNlMzEtbWFpbnQKKzc4Njk0IGZkMTU1YTM2OGY1YmQ0NjVkNjUzMTMxNzcyMDVjMDJmNjZhMWQwOWQgbGVnYWN5LXRydW5rCis3ODY5NSA4MTc1MjJlMzUyZDY2ZjZkNTQ4YjhiMjBlMDEzNjZhYTI4MDllZDg1IHB5M2sKKzc4Njk2IDE5ZjMwYjQyMmNhM2ZkMTdiYTk0NDgyNzk3NzViMGViMWZjZTlmODYgcHkzaworNzg2OTcgNTA0ODA4M2U5OWZmY2U0MzA5M2E3ZWRmMmY1NzhiM2Y2MmVhZTBhNSBweTNrCis3ODY5OCAzMDAzYzE2NTZlMmFkZWViNWZhZjViYjIwMjBjYTY1MmMzMzNiZDNiIHB5M2sKKzc4Njk5IGJmNTg2YjI3NzZmNjdjYzhlY2QzZjllZGM2MTRhNTg5ZmIwNWVkY2YgcmVsZWFzZTI2LW1haW50Cis3ODcwMCBlY2NhNzAzYmMwZGY0ZGI0NWViYzk1NmM4ZDczMjE4NjZhODUzYWNmIHJlbGVhc2UzMS1tYWludAorNzg3MDEgMzE5N2VjYzA5NDRhMTdmNTU5NDMwYmQzYTQxY2E0OGM5OTdiNzI1MyBsZWdhY3ktdHJ1bmsKKzc4NzAyIGQ5ZTZmMzE4NTY4ZmM5MzYzYTM0NmY3NjBhMDM3MDk3MDVkOWI0YTUgcHkzaworNzg3MDMgY2M3MGY2OGU5YzExMTNjOTdmYTRiMDY3MjFiM2M0NzdlMzBlNmNmYyBsZWdhY3ktdHJ1bmsKKzc4NzA0IDQ1NGVmZjg0MGJkNDIyYWYwOWYwZWIyNTA5N2M1MDEwYjUwODM1ZTQgbGVnYWN5LXRydW5rCis3ODcwNSA4ZGM0MGM2Mzc2MWM4ZmRjYjU1OTRlNTM1ZGY0MWUxNDU0ODdkMWZhIHB5M2sKKzc4NzA2IDI1ZTlkZGJjZTEwYWJlNGZiZWUzODk3NzRmMzQyNzA0M2ZmODdlNDEgbGVnYWN5LXRydW5rCis3ODcwNyAyYjUwOGFhMmE0MzZiYzU1YjI0NzU0NTdlNDI4M2Y2NGVmM2ZlNmFlIGxlZ2FjeS10cnVuaworNzg3MDggMmQ1Y2EyODA1ZWE1ZjFiY2Q3NzQ4ZTZhOTc0M2M0NmM0YjcyM2M3MSBweTNrCis3ODcwOSAzMmFjNDI4Y2QxOGIzNDJlNGQ5YjZiYjk3ODllY2I3OGFkY2UxOWNmIGxlZ2FjeS10cnVuaworNzg3MTAgMjE1NjM4ZmNmMDliYTA4NjMyMGQ4MWNjNjVmNzUwYmI3YjE2NmMwZiBsZWdhY3ktdHJ1bmsKKzc4NzExIDVkNWJjYTZlY2IxNTE4NDI5M2Y1MzQ0MGYwZDk1YjgyMmEyY2I2ZjIgcHkzaworNzg3MTIgNWMzMTc2Nzc1ZTg3MzBjYjNkN2MzMDQyOThlYTM4NWI2ZGMzYzdmOSBsZWdhY3ktdHJ1bmsKKzc4NzEzIDRhMTE5ZDg0ZDBiNTc1NzQzYjAxNzdiY2Y5ODZlYTFiMDg1YzZjOTggbGVnYWN5LXRydW5rCis3ODcxNCBiNjhhOWE4YzJjMWY0OWYyYzAxOGMxNjExZTk1YjI3ZGQyZjg4OTMxIHJlbGVhc2UyNi1tYWludAorNzg3MTUgNjc0MzA4NzVjMWEwMzYzMWFlZWMxNDA4ZGE5NzA3ODVkZTBhZjdmOCBweTNrCis3ODcxNiBhYTQ4NTI2NDUxZDE3MDU2ZTEwM2YxMTU0MjhhNWRkMTdkMGIxMGE4IHJlbGVhc2UzMS1tYWludAorNzg3MTcgNWFhM2JmYzQ4Y2JkZWJiOGVlNWJlOTgzMGJlZjhmMjcxYmExNTZkNSBsZWdhY3ktdHJ1bmsKKzc4NzE4IGJiMDhhM2VjMTU0ZGE3Mzc2NWUxMTQ2NjU4NzAxYWMyMTU3ZWJhZmMgbGVnYWN5LXRydW5rCis3ODcxOSA1YjE3NjQzNzQ1NDVhM2YyZGYxNzM1ZjE5YTE4YTdiMGVkNGNlNDdmIGxlZ2FjeS10cnVuaworNzg3MjAgOTY2ZWIxYjllOWRiYzNkYmY4ZGNlMDM0NWIzOThkMWRmNjQ3Njg0MiBsZWdhY3ktdHJ1bmsKKzc4NzIxIDc0NDRkMzQ4ZDc3MWYwZjk4MWMzODAzNmFjYWUyZDZkYzg4MWE2NzUgbGVnYWN5LXRydW5rCis3ODcyMiA0OGE2YzI2MjEyMjY1YzUzYjZkZmZiN2JhYzU0ZTA5NGM1ZmZiMDYyIGxlZ2FjeS10cnVuaworNzg3MjMgNDg2YzFjOWVlMDA2YzA2N2FlZjRmYjRkMDdhOGVmYmVmOTRlN2UxNiBweTNrCis3ODcyNCBlZmU1MjhlZTk1OGE2YjIxZDVkNTg1NjQ3NDFiYTNlNTFjYWIwY2NiIHB5M2sKKzc4NzI1IDI0YzZhNTgzYTg2NmFjOGQyMDVkYTNkMTA1Y2M3YmMyOTEyNzM0YzcgcHkzaworNzg3MjYgNGM1YzViNDY2OGI0YTZhZDQ4YjY4YjcwMDM5ZTcxMTliNzBhNjQ1YyBsZWdhY3ktdHJ1bmsKKzc4NzI3IGYzNjJjZDRiZDJjNTFjNmNjMDU0OTI1MjY2NjkyN2U1YzIxZDQ4Y2QgcHkzaworNzg3MjggMTIwZDZjY2YyNmIwNGU5OTQ2OGMxNjRhMTg0YTA4ZTAyZjJjNmZhNCBsZWdhY3ktdHJ1bmsKKzc4NzI5IDkyNThmNDA1YTdhYzQ2NmI0ODU3MmFkYTAyM2Q4ZGM5ZTRkYjg3NjMgcHkzaworNzg3MzAgOTdjYTliMTRhNjYwN2JlYzdiZmJjNjllMGI1Nzk4NTYxNTY2YjY0MiByZWxlYXNlMzEtbWFpbnQKKzc4NzMxIGQwYmJiZjNjNTVmNWUwMTVjMzlhMTA1MWQwYmM0NWFlM2NjOWVjNWIgbGVnYWN5LXRydW5rCis3ODczMiBiZGY2ZDc2OGE4Y2M1ZjhmYWQwNzVjOGQzODNkMmVkMDA1OTdkZmI0IGxlZ2FjeS10cnVuaworNzg3MzMgYzJjZjZjNzE3MGM1MTUyYjA1MjgyYjhiMzY1OWNkOTUyNjkzNDE0ZCBweTNrCis3ODczNCBlYmRjMmFhNzMwYzBiZDFjMjczNzFjMzJlNzRlNWNhMDM4ODIzODVlIGxlZ2FjeS10cnVuaworNzg3MzUgYTA3ZjcwZmM4MmExMTAyZjFiYjVkYWQyZTMxODNmZGU0NjMzZjNiMSBsZWdhY3ktdHJ1bmsKKzc4NzM2IGU4YzExODkxNTc2MmU3NzE5ZjU2OTM4YWJlZTRmZTBlYzA1NmY2MzkgbGVnYWN5LXRydW5rCis3ODczNyA1YTk2MzFiOWRkMjI3NjE3YjYzYjJmNzZjMDcwMDNhYTJjMDhhNTg1IHJlbGVhc2UzMS1tYWludAorNzg3MzggZDJlMTAyN2VkZGU4NGEwMjg1M2ZjZjk3OTBmMzExZjEwZjQ2Y2YwYSBsZWdhY3ktdHJ1bmsKKzc4NzM5IGRjZmJjMzRiMmUzYzZhYjc5OWU2ZjZhOTVkNTIyYzhmMTNmOTJiYTIgcHkzaworNzg3NDAgZjllYTkxN2FmZjEzZjJhYWVlMzI1ZDgzODdiY2I3YTViY2NiZjIyZCBsZWdhY3ktdHJ1bmsKKzc4NzQxIDE0OWI4Yjg3NTE0ZDEwNDE2YjU5ODg4NGRiNWY3NDY1MWY2MjViMzggcmVsZWFzZTMxLW1haW50Cis3ODc0MiAyMTI0Nzg2NDBiMWMyNjM1MzVmZDBjYmZhNmQ3ZDVkZmE4ODRmN2M1IHJlbGVhc2UzMS1tYWludAorNzg3NDMgMTZhMjZkNDM3NGU0NmJmYzk3N2VlZTQxZTA4MDRlYjVmODBkNjBiYiBsZWdhY3ktdHJ1bmsKKzc4NzQ0IDRmYTk2YTkxMzgwODcxYjY4ZTFiODRlN2E4NzU3OGU3YTExOGJlNzMgcmVsZWFzZTMxLW1haW50Cis3ODc0NSBhZDI1NmE2YzY1OTkwYzhhMzUzODdiMGQzYzkyYWMwZmY5YzIxMDhmIHB5M2sKKzc4NzQ2IDMxN2QwYzQzYWIyYjZiYzg2NDQzNWI0NWZmNjUwYzVlMzc1ZGYwMmIgbGVnYWN5LXRydW5rCis3ODc0NyBmNzM1NjExMjdmNTdlM2UyMzg3M2U5YTVlMDQxYTJiY2RiMTU1ZDE4IHB5M2sKKzc4NzQ4IGU2ZDE0MTU4NzU4ZTE4YjYzYWY1MmJkMGI1OTE2NzJiMjUyNDJlMjQgcmVsZWFzZTI2LW1haW50Cis3ODc0OSAwODAyYmM5NzNiMzI0ZGEyNTFiY2ZmYzEzYWQzYTliZjUwZmZhNjA5IGxlZ2FjeS10cnVuaworNzg3NTAgY2U5NzNiNWM3NzlmMDMwNGFkM2FhMjBlNWU2MzIyMzQ1YWJmZTVkMSBweTNrCis3ODc1MSBjMTZiMzdiMTg5MWIwMGMwNjU3OTE0MjFlMWQwMzU3ZTBhMjBkNjYwIGxlZ2FjeS10cnVuaworNzg3NTIgZWU4ODAyODE1YmFkMmI3ZmY5ZjU2MGY5MGFmY2VjM2U1ZGY3M2E5MCBweTNrCis3ODc1MyBjZGUyNjg3ZTM3YzE2NTA5MjY3ZjgzNTM2OTcxODkyYjE0Yzc0ZmMyIHJlbGVhc2UzMS1tYWludAorNzg3NTQgNGYwMjE3OTQ5M2MyNWQxZmNiZDE5NTVjMGIwN2E0ZWIwZTdhODlmMSByZWxlYXNlMjYtbWFpbnQKKzc4NzU1IDI5OTBiZDNhZTg4MzhhNzZlZmYxOWRmOTFkMGZmN2M0MGNkZTgyZGMgbGVnYWN5LXRydW5rCis3ODc1NiA0OWEwYTk1MGQyMTliMjJiOWY1ZjlkY2EwMjc1Zjk0NGNmYWNjNzMzIHB5M2sKKzc4NzU3IGUyZDQxMDc5ZDA1OTY3ZTViYjZhNmY4N2NiOTczMDU4ODliYTVmYTkgbGVnYWN5LXRydW5rCis3ODc1OCBlMjNjYmEwM2NjNGIzM2Q5ZTEzZjU4ZDAyMWJjYmNmODAxOGFiMmJmIGxlZ2FjeS10cnVuaworNzg3NTkgMjc0MjJkMTczMWU5ZTQ2OTY0OGY2OTY2MTI3MzAzMTEyOGVjYTczNiBsZWdhY3ktdHJ1bmsKKzc4NzYwIDE3NGIwODc5YjdkMGVjYWNiMjZiNzUzZmI2YTlhNWY5NTk5OWQ2MTEgbGVnYWN5LXRydW5rCis3ODc2MSA3MWU0YWIyMTM0NmQ0MWU1MDQxMTI4NTgyNDk3YTcyNzhjYjM0ZmZiIGxlZ2FjeS10cnVuaworNzg3NjIgY2ZiNDQyZDcwMmNkNDcxYTY1MDJhOWQyZmI2NmU4YWExZWY2NzY0NSBsZWdhY3ktdHJ1bmsKKzc4NzYzIDBhMjczY2ExMGZhNWU0ZGZlNjU2MTg0OWRkODE5OTM2ODc5MmM1MmEgcHkzaworNzg3NjQgNGE2YmU4NjRjNmI4OWIxN2M2MzY4ZDk4MzU3MGFjOTJkNDExMzg2YSBsZWdhY3ktdHJ1bmsKKzc4NzY1IDg1Yzk1ZmQ1ZDdlM2EwNDRhMjA0MGNkMTU1ODUxYWFhZjY4NGZjZGQgcHkzaworNzg3NjYgZWRhYWZjYTg3NDMxYzdjZGZjMTU5OTAyYzg0YTM4Y2ZhMTY0M2I2ZCBweTNrCis3ODc2NyBhYjdjODdlZDVjYWRkMDRiYTkzZTc4ZTI1Y2M3YzEyODU3YjAxZWUzIGxlZ2FjeS10cnVuaworNzg3NjggZGExOTg5NDk0NmUxZjYxMmMxZWM0MDQ1NjgwNDIxNmQwOTY3NWU1MiByZWxlYXNlMzEtbWFpbnQKKzc4NzY5IGU0NWZmMDI3NDgyZmU0ODc5M2RkN2ZlMmIxNTdlNDZkMjc1ODg2NmEgbGVnYWN5LXRydW5rCis3ODc3MCA4ZjJjMzYwZDAyMTRiNTA0NTA4Mjc2N2Y2Mzg0YTk1OGViYTMwZjEzIGxlZ2FjeS10cnVuaworNzg3NzEgNWIxZGEzMmM5ZDRlMmQ0YjBkODdkOTc3MzdiYjA0MGM4ZTBkMjIyOCBsZWdhY3ktdHJ1bmsKKzc4NzcyIGM3NTIwNjRmYzI2MjcyMTQ5ZTJiZWEwNzU4N2M1ZjQzYjRmMTBjNWUgbGVnYWN5LXRydW5rCis3ODc3MyAzN2E4NDI0OWFhMDQ3NzdiMTYwNGFlZGIxNDdkOThlYjYyZTExOThjIGxlZ2FjeS10cnVuaworNzg3NzQgODVlYTQ1NGExM2RjZGExMzYzZGZhNjE2YTk1YWUzZGJiMWQ3MjNmNiBsZWdhY3ktdHJ1bmsKKzc4Nzc1IDEzMWMyMTA4ZDJiMWFmOTg3ZWQ4N2IyY2U0N2ExN2EyOTk2OGFjMGIgbGVnYWN5LXRydW5rCis3ODc3NiA0NjYwMzg3YjliMzUyMzMxNjhiOGY3ZGQwOGRlZTY3MTE5MGIwMzJiIGxlZ2FjeS10cnVuaworNzg3NzcgNDFhZWYwNjJkNTI5MzFmNWM2ZTQzMzg5YWQwYmUyYzczMzVkMmZlYyBsZWdhY3ktdHJ1bmsKKzc4Nzc4IGRhNzE0NjRkMmNmZjIxOGU1MGY2MDFiNDcyMGZiOTU3NzM3ODI1MmMgbGVnYWN5LXRydW5rCis3ODc3OSA1NzViMTJiMTk4YTE2NDRhOTkxYWUzYmU3MzczMDFkMmE1N2E1ZmJiIGxlZ2FjeS10cnVuaworNzg3ODAgMGY0NjhlMmQ5M2QwYWQxZDA2MjI3YmQxMTZhYWFmNmM3YTIwNzdlMCBweTNrCis3ODc4MSBjNjc2ZmYwZDg0OTVmNTc4NzdjNGI0NjZiYTYyZDAzZDQ4OGFhNTgxIHJlbGVhc2UyNi1tYWludAorNzg3ODIgYzZlZDMzMDM1ZDY5MmFmMDU2MmNhZDliMDViZWFmMjk0NWE0MmQ0NCBweTNrCis3ODc4MyBkYTNjNWVmZTQyNTJkZDIzMzAwNTUwZjA5OTY0NTk4MTgzMzAxYWYyIHJlbGVhc2UzMS1tYWludAorNzg3ODQgYjBiODBlYzJlM2EwZmUwYjc1ZGQ0OTBkY2Y0M2JiMzM5ZDEzNmIzZCBsZWdhY3ktdHJ1bmsKKzc4Nzg1IDM5ZDcwNDc4MDdkNTI5NWE2ZDQ4YWQ5NDM0ODM4ZjBkYjM3ZGZkNzcgcmVsZWFzZTI2LW1haW50Cis3ODc4NiA0NDVmODAxY2EyZDBiNDI5MWM1MmFjZDc5Mjc0Yzk4YThhMzYyNWExIHB5M2sKKzc4Nzg3IDU1ZjZhM2Q1YzE3Nzk1NzM3YWQ2OTRiNjQwMjg5MTI3MDNlYzFjZGQgbGVnYWN5LXRydW5rCis3ODc4OCA2NjcxOTMyYmQ4YjhiZmQyMDgxNDY1ZGRiNjdhNjhlYTc1ZjMxN2VlIGxlZ2FjeS10cnVuaworNzg3ODkgYTNmNjE3ODM1NGY1ZGMxYzA3NTQzNjhiMWI3NDk4MGZiNTRjN2E4OSBsZWdhY3ktdHJ1bmsKKzc4NzkwIDk2ZTAwMTFlYTBhNDRjYTZhOTc0YmFkYjQzMTViMDc5MjJkYzQ2N2IgbGVnYWN5LXRydW5rCis3ODc5MSAyYWM0ZjRmN2UzOTExNjFjYTAyMTM3NjZjM2VlOTM2ZjRiYzNmMWVmIGxlZ2FjeS10cnVuaworNzg3OTIgYTJmMWMxNWNhZTZjNDA1ZTIxZTg0MTVmZmI4MzU2MzkzNjJhNjkzZCBweTNrCis3ODc5MyA3MzNjY2MzZjNhNjgwNWIxMWJmNWQ2MzhiZGNlMGQ4ZTIxMzkwYzhiIHB5M2sKKzc4Nzk0IDE0NjE2ZGY5MjQwNzlkMTE1MmRhZWJlYmY0ODMxNGQyNDc4YjQxZDYgbGVnYWN5LXRydW5rCis3ODc5NSBjZGZkZWZlYzk5YWJjZGExNGRjZGFhN2Y0MTUxZTgwNWY4MDE2M2MyIHB5M2sKKzc4Nzk2IDY4ZTA1MDc2MzJhOTFmNzkwMDZiYjY4YzQzY2Y4ODc3ZWY3NDQ5ZGMgcHkzaworNzg3OTcgYWM4MDg4NGRkY2MzMjY2OTQ4MzM5NzQ2YWI2NWFjMDU0YzMwMTI1YSBweTNrCis3ODc5OCAwMjRjNTNhODY1MjFmOTBjMDA0MjEyY2Y3NzQ5MDE3MDFhYjY2ZGZmIHB5M2sKKzc4Nzk5IGIzZTY2NzNiNmFlNGQxZTA4ODJlYWRmZjcyNTZjZTY1NDNkY2Y1OTUgcHkzaworNzg4MDAgZDkyODc4YmJhN2JiZjcwZmVjYjNiYWUzNzRmNzJhYWE5MDRmY2YwMSBsZWdhY3ktdHJ1bmsKKzc4ODAxIDg5NWNmZWJkZTE3MjdiYTdkNTc5OGNjZWFiMmViMGZjOThiNmYxZGUgcHkzaworNzg4MDIgYzU1N2E1NGFkNmQxZjg3ZmFlZTA0NWUwOGI5YmU5NGVmZGIzNGM3NiBsZWdhY3ktdHJ1bmsKKzc4ODAzIDFjZGEzZDc3NzdhZTdlM2Q1NWFhMGY1NjFkNDIyZDJkMmM0NThjYzMgcHkzaworNzg4MDQgYzg3MDM5NmI2YWUxYTExYTk1YTQ1NzlkNGM5NTdlN2EwOTE3N2Q0YSBweTNrCis3ODgwNSA1OWExNTczYjgzYWM0NmIxOGUxODRjN2NiNjk2ODNhYmU1ZjE2OGEyIHJlbGVhc2UyNi1tYWludAorNzg4MDYgZjEyNjgyYWY1NTdiNjFhYTdlMDM5NGYxMzQyNjU1YjVmYjE0YmFiYiBsZWdhY3ktdHJ1bmsKKzc4ODA3IDJhNGU5MmVmZjMwYTc0MmE3ZWE0NTlmODg0MWZiNWMzMjBiMmM0OGQgcHkzaworNzg4MDggZTQyMTU1YzQ3NDk0YWZmZGM2NWI3YzMwMTllODU1ZTAyYmE0N2EwMyBweTNrCis3ODgwOSA4OGQyNjVkZTdkYWUyMDZkMGNkYmJiMjM2OWNjZDZkOTJjZGU2M2E5IHJlbGVhc2UzMS1tYWludAorNzg4MTAgMmVlZjliMGViZDVjZGY5NTg0ZmQ3MWQ3NmNmMThjMDc4NGZiYzYyMyBsZWdhY3ktdHJ1bmsKKzc4ODExIDU2Njc5YWZhZjA3ZGIyYWQ4NjBhODcwMDY1YmVmYjNhN2VkMGU4ZDYgbGVnYWN5LXRydW5rCis3ODgxMiAxZjVkYTU1ZWU3ZDdmMDAyNjY4MzkwMzMzN2FlZmUzZTE0MjNkMGY2IGxlZ2FjeS10cnVuaworNzg4MTMgZTI3NjJmNDk1MzkzNWU1MWEwN2VjOWQ2NWRkNWZkMjg3YmFlNGQ2ZCByZWxlYXNlMjYtbWFpbnQKKzc4ODE0IGJiZjJlZGQ3NTJiNjMyZjA4OTY5NzM5NzNkNDA1NTUxNmY1ZTMzNDcgbGVnYWN5LXRydW5rCis3ODgxNSAyNjlhMTJhNTAxMjNmM2JkOTRjYTRhOWUyZTIzYTAwMzA2MTRmOGRkIGxlZ2FjeS10cnVuaworNzg4MTYgM2M4ZTIwMDA0M2Q2OWU4OWU5YmE2ZWI5ZWFjNTI0MmJlMTM1MjkwMCByZWxlYXNlMjYtbWFpbnQKKzc4ODE3IDU1ZjRkZTVlMzc4YTg5ZWI5Mjg4Yzc4NjlhYWY3OWMxYjZmMjk3MTQgbGVnYWN5LXRydW5rCis3ODgxOCA2NTMzNDMwM2ZkZDNmYTI2NmNkNmIwZDc5NTMyYmVhNzFlZjJjNmI5IHB5M2sKKzc4ODE5IDZkOWJlMWE5N2MxNzIyZTZhOTFkNmIyMTUwMmYxZWE1MGY5ZjUyMTIgbGVnYWN5LXRydW5rCis3ODgyMCBkZmIyMzljNTAwODkyZmVjOTU3N2Q0M2JjODEyNGM1M2U4NGM0ZjQ4IHJlbGVhc2UyNi1tYWludAorNzg4MjEgOWRkMWVjYjVhMjRjMWI0NDIyNzUzMzlhMDJkNTdmYmZiY2M2YThiMiBweTNrCis3ODgyMiBmYTQ2MzA5MTY2OTkwNDYzNTdhNWFjMTY4ODRmM2ZjNDdiZDBlYWE2IHJlbGVhc2UyNi1tYWludAorNzg4MjMgMDE3YWFmZTgzMjZmYWM2ZWExOGRjNzI1ZDM4MTI4ZTlkZTg2NTc4OSByZWxlYXNlMjYtbWFpbnQKKzc4ODI0IDUzMGI3MWNkM2IyOTYxMmU5OGQ2YmUxMDgxZmY2ODNlNTMwYzFiMWYgcHkzay1qaXQKKzc4ODI1IGJjMGNjNjc3MWNhYTc4OTI0MDI5NmQ3NjNlZmYyMTA1Mzc0N2FmNGIgcmVsZWFzZTMxLW1haW50Cis3ODgyNiA0NDY4NjY2ZDAxYzRiYTUxYTY3MjkwMWZjOTcxMGVmY2RlNjJmMmNjIGxlZ2FjeS10cnVuaworNzg4MjcgNTU1MWZlNjY2NzBjMjQ0ZDBkNDUwYWY5ZjBjZmNhYmQ2YjZmY2FhZCBsZWdhY3ktdHJ1bmsKKzc4ODI4IGFkYmIzN2QzZDBlNTAzZDFiMDdiZjY2M2I5MGY3OGU5MmM4ZmUxNmQgbGVnYWN5LXRydW5rCis3ODgyOSAxMzVjZDgwNjRkNmZiODVlODQ5ZjdiYTNjMzlkYTUxODNkZWEzYmE1IHB5M2sKKzc4ODMwIDViNGE2NmQ2MDFjM2E0NDYzMDIzNGVkZDg0M2Q2ZjE5Zjg4Nzg4YzIgbGVnYWN5LXRydW5rCis3ODgzMSAwNTNlZjZlODNjZWQ3YzVkMzg4ZTQwZDViMDVjNmQ4NjMyYzkzMDkyIHB5M2sKKzc4ODMyIGFkOGY2M2Q5ZGNkODAzNDhkMWJlNzhiNmJjZmU2OTVhNTE3ZmE2MjAgbGVnYWN5LXRydW5rCis3ODgzMyA2ZTM3ZTEyNzU4MWI0YzEwMzBjOWMwODc0ODk1MzYzNmFiMDM1NzhiIGxlZ2FjeS10cnVuaworNzg4MzQgYTExMTAyNGEwYmNiNmM3MmQ0MzAxMzZhMjMxMDc3NTNmY2E4NDBhYyBweTNrCis3ODgzNSA4YjI0NmU4NTYwZGI1ZDAxYWU4MWY5OWZlOWRjZWFhMWYzNmQ5NGQzIGxlZ2FjeS10cnVuaworNzg4MzYgZTUzNjdkNjdhN2Y4YWJiNzg2ZjI5NTBlODU4YWRhMDg5MTEwZTU5ZiBsZWdhY3ktdHJ1bmsKKzc4ODM3IGI4ZWRlMGZlZTYxYTEzOWZiZmY3OTE3YTI4NzRiMDY5ODg3ZGQ4OWUgbGVnYWN5LXRydW5rCis3ODgzOCA4MzFlMzBjMGZkNzMwNjg1YWNlMjUzNGFiYjFlYTZmY2JjYmFlNjdmIGxlZ2FjeS10cnVuaworNzg4MzkgOTAzZDNlNjMzYTkyNTdjOTNkODMxZmNkOTBmMjZlYTQ0ZDM3M2NhYyBsZWdhY3ktdHJ1bmsKKzc4ODQxIDA2YWQzMmMwMzQ4NjRiNmFkODk0Y2RlMDExZjliMzIyOWZmYWE0YjkgbGVnYWN5LXRydW5rCis3ODg0MiA5MzQ3Mzc5YmQ1ZmI5N2QzZTYzZTdlNDM5ZjNkOGQxNDAzZjk2NjBkIGxlZ2FjeS10cnVuaworNzg4NDMgYjYyZjc2YWQ0MzBlMjgwMjJlYjc2OWY3NTQyODg0NTMzN2M2YzM2MyBweTNrCis3ODg0NCA0ZGQwOGE1Y2NhOGFkOWM0YTY2NTQ2ZjIxMjJkODBhMmMxYmUzNmJlIGxlZ2FjeS10cnVuaworNzg4NDUgMjAxNjBiNDYxY2QzYWViMzA0NmZhZjk5ZThmZDRhYWEzNTU2NTVlYyBweTNrCis3ODg0NiBlZjQ4ZTQ4ZjA2NmU5OTkxNTczNTY4MmIyOWE1YjEyM2IzNGNmZDIzIGxlZ2FjeS10cnVuaworNzg4NDcgM2VkOTU0OTBiYTlkM2RjNzI4YzBhOWJlZjU1ZjM1Yjc3NjRhMzc4MCBsZWdhY3ktdHJ1bmsKKzc4ODQ4IDZlYTBhNThlZDgzNzY5MDRkYjk5MWJlODU4NmNmZWEwOTU4ODEwMTcgcHkzaworNzg4NDkgNDkxMmNmM2IwMTkwYjM2ZGFlNWI0YWNhNzcwNjI3NzcwNjVkZTE2OSBweTNrCis3ODg1MCBmY2ZlMzI0NjYzYTYxNzE3YTQ5YjU4MmQ0NWU0MTcyMmU1YmM3MzQ5IHB5M2sKKzc4ODUxIDVjNWRlOGFjYjMzYzFhNTExNjkzMGVhODYzOWRmOGMwMjdkNjQzYzkgcHkzaworNzg4NTIgOWMyZDkxOTAxNGQwN2FhZGJlNjE0YjEzODg3MjhhMDc1ZjQ3MzYxZSBweTNrCis3ODg1MyBhNTY2ZTUzZjEwNmQ2MGZlYWJhY2E5MDQ1MjlhZTZiN2Q1ZDBhNzg5IGxlZ2FjeS10cnVuaworNzg4NTUgMTM1YWE3ZWRmNzkyYjgzNzQ5YWZhMzk0NWYzMmE3NGM4NzQ1ODc0NyBsZWdhY3ktdHJ1bmsKKzc4ODU5IDUzOTRkODFjNDUxM2JhYjg3YzJhMzJkODFkNGJlMzZjYTQ3Yjg5ODQgbGVnYWN5LXRydW5rCis3ODg2MCA2MmQ3ZjA0OTcwM2I0ODMwNTc4YmExMGQ3ZGQ1MDRmYjUzZTk4N2ZiIGxlZ2FjeS10cnVuaworNzg4NjEgOTAyN2IxNWY5YmI3NjJhNTc0ZWJmMWQ4YWRmYTQwOTU3ZTYzNzMxMCBweTNrCis3ODg2MiA5OTQ4NzE0NTMyZjkyMTE1YTAwNTQwMjk5ZGU5YjE0ZWNlNGUzNGYxIHB5M2sKKzc4ODYzIGRkNDhlM2YzMmRlNTU0ZjNlYTYzMzM1NGI5ZDZkNmRiZGYwZWJhNGEgcHkzaworNzg4NjggMjM2ZmIwYWY0NDA0OTcwOTY4M2FiYjUxZGYyMDVkOTYwNzUxZDFiZCBweTNrCis3ODg2OSBiMDU2YmM3NjdhZTFlYjE4ZjkyODVhY2IyZDE1YWU5NjEwZjc4ZDIwIHB5M2sKKzc4ODcwIDI2YjE5ODA5ZDgyZThmMzdhNjI1YjE5NDk0OGRlNWVlYzJkMGY0MjcgbGVnYWN5LXRydW5rCis3ODg3MSA2OWI3MWMzMzg5OTI1YjEzNjU4OGIwMDkxMjIxM2QyOTA3N2RjNTM1IHB5M2sKKzc4ODcyIDQyMjYxYzZjYTU2NDMwMWYyZGVmY2JmODEwODU3ZWRhY2IzZmI0YmUgcHkzaworNzg4NzMgMWJjYjQ2NTQ3MmJlNTlhODM2Y2EzNjQ0YzJmYjY3NjVlM2Y2ZjA2YyBweTNrCis3ODg3NSBmNDlkMjRiNDQ1NmVjOWU5NDFhMjg1M2M0MDIzZjEwMmQzZmZjNTQ0IHB5M2sKKzc4ODc2IDA2ZmRjNWUwYzJjMjQzYzgzYzViZTlhNDZmY2RjYjg5MjJkYmFhNTcgcHkzaworNzg4NzcgYzlkZDgyM2MxNDZkMWI2ZjIyZmZjODMxZGU4ZTBkNjY0MzExYjE4ZiByZWxlYXNlMjYtbWFpbnQKKzc4ODgwIGFjNzU0ZmFlYjYzZTg4ZjVlMTFkZDJlZDAxNWUwNGJkNWYyYmY0NzYgbGVnYWN5LXRydW5rCis3ODg4MSA4MmEyMzA0NzE5NGJmZDA1ODZjM2JkNjYwZGU5MWE1MTllY2Y0NjJmIHJlbGVhc2UyNi1tYWludAorNzg4ODIgMDdhZGIwOTQ0MGVmODk2NjUyNDhlNTY1OGE5NDJhOWUxMTFmOGY4YyBweTNrCis3ODg4MyA2YWUwOTBmZDk5ZmUzYjEzMzIwNzI0YjMzNTlkNzdhNTY0OTFiZDBjIHJlbGVhc2UzMS1tYWludAorNzg4ODQgMjczZWI1YzFiOWI5NzM1YWU2M2Y1ZjhhMGIwMzZkOGEzYWFlYTEwZiBweTNrCis3ODg4NSA5MDBmY2FjYzY0MDM0YTE3NGNhOTRjNzEyNmVjNDVkMGM1MzQ1OTQzIHJlbGVhc2UzMS1tYWludAorNzg4ODYgMWUwMWVmOTc1ODk5OWY2ZmNmZmYwMTQ0N2ZhMGRiNzNhNzcxNGJkYSBsZWdhY3ktdHJ1bmsKKzc4ODg3IDc2ZjA3Y2NkN2RiNWM3NWVlYzJmYTZiYmM5M2RlNTVhYmM1NjFmYjEgbGVnYWN5LXRydW5rCis3ODg4OCA2NzI2NDYzNjQ2ZmI0MDg4ZWYzMjMzNzZjZmNmNDQzMjFmOWY3NTIzIHB5M2sKKzc4ODg5IDk4MDgwOGRlMzBjOTFlZjM1OTUyOGY1NzI0NDMyYmQ3YWI5NmYwNDIgcmVsZWFzZTI2LW1haW50Cis3ODg5MCBlNDc0Mzg2ZmY5NmU4ODU5YTk5MmUzOTJjYTMwMjBlZGQ5NDhhM2MwIHJlbGVhc2UzMS1tYWludAorNzg4OTEgZjgwOGIxNmNjZmQ2YWRlMzFhZDUzNGNmN2E1MDdmOGYwMjBjZWZlOSBweTNrCis3ODg5MiBkNmYyMDRkNDA2OTVlYmVmNjEzYWQ0ZmRlZDdmMWQzNGQ2YWEzMWU1IHJlbGVhc2UzMS1tYWludAorNzg4OTMgYzFmYjA3YTU3YzhkNjc5YTMyN2I4N2JlNzE0Mjk4NmMyN2M2MmRkMiBweTNrCis3ODg5NCBjMjFiM2UzMmVkN2I4ZTJlNmE1NDE0NmViNjEzNDVjYzFhOTBhMjdkIHB5M2sKKzc4ODk1IDVkY2MzNjE5ZDZkMWRhODNhMDhkZDQwM2JjNWQzNzY0OTRjOGJlNTEgbGVnYWN5LXRydW5rCis3ODg5NiA2NzM1M2ZiNDA1ZWM5MmJlMTA4ZDU5YjI1MmY3ZGM0YzAxMTA3YjgzIHB5M2sKKzc4ODk3IDIyYzg3NzBmOTkyMzk2YjNjZGExYmVlY2I0MWRkOWZlZDg0NmU4ZjQgcmVsZWFzZTMxLW1haW50Cis3ODg5OCAxZWUyNDUyY2U5NDI2NjE2ZTUyMjYwMTMzMjUwZTQxYjlmNzA4OWUyIGxlZ2FjeS10cnVuaworNzg4OTkgZjQwYTgwODUyNDgwMzViMTcxYjNkNmM3MzM4MGUyYzM3YzhiYzNjMCBweTNrCis3ODkwMCBlMTBkNjFjYTM2OGVkZmFkZmM2ZGI1MDMzZjRjN2ZkZGRhMWFhZWQwIGxlZ2FjeS10cnVuaworNzg5MDEgNzdjNWM5MGJlZWYwMjhkOGM5OGQ0MzA5ZmYwMmI2YzAzNmUxNzA0ZSBweTNrCis3ODkwMiBmNjU5NzdkY2YyMWFjYWQwM2UxZTY0YjQ1NDZjZWY0MjhmODllMmU0IHB5M2sKKzc4OTAzIDRmYmYzZTcwOGZjNDAxYjcxNWY4OTBlMWViOWJiZjdjOWNiM2I3ZDcgcmVsZWFzZTMxLW1haW50Cis3ODkwNCBiM2VlNWZlZDhkYTQ4MTA0ZmQ3OWVhMGNmOTg0ZjJmYTgwYjA3MDhhIHJlbGVhc2UzMS1tYWludAorNzg5MDUgODAyODM3MDk3MTkxNzY5MjZlODQyZmIxMmEyMmQ0NjM1Nzk3MWNiNSByZWxlYXNlMjYtbWFpbnQKKzc4OTA2IDkwZGFhMDdhNDNiZmU5NDdiZDVjMjQxNzM1ZTkzYzdhODQ1ZTEyOWYgcmVsZWFzZTMxLW1haW50Cis3ODkwNyA1YTE2YmY2ZGE5ODkyZjg1ZGFjYjEzNjViNjIzYjhmMDhiNjdkYzVkIHJlbGVhc2UyNi1tYWludAorNzg5MDggZjI1NWE0NmIzMTVhZjYyOTVkOTUxNzQ3ZDA1NzIzNTc1NDZjNjc5OCBsZWdhY3ktdHJ1bmsKKzc4OTEwIGRhOTRmMTY2NmRhMThkMTdjMmE4YzU3YjU2ZTA0Mjg1OTc3NjFmYWQgbGVnYWN5LXRydW5rCis3ODkxMSA1NWVjZGI3OWM2NjAyZGQ2ZTRmZWZiZmMwNGJiZDliNjE5YWRiNGU1IHB5M2sKKzc4OTEyIGIxYjIyYzYwMjIyYjQwMDJlYTcwZTNmN2MwY2NlOTUyODYxNmRlNWUgcmVsZWFzZTMxLW1haW50Cis3ODkxMyA0NjA4MjNjNjc1Zjg5MzhiYjFmNTRhZTllNzVjMzU4M2Q1MTdjNWEwIHJlbGVhc2UyNi1tYWludAorNzg5MTQgNDNjYTY3YmQ3MDBhNjk4MTAzYTY1MmJhMjE1MGMzZmNkZWQzYTM4MCByZWxlYXNlMjYtbWFpbnQKKzc4OTE1IGFkMDE3ZDFiODA3MmUwZmE4OGQ2N2I2M2VhZGE0MzA2M2NlMGY4MGIgcHkzaworNzg5MTYgNWE2ZTg5NzA2NGQ2YmIxOTIwODU5MWQ4ZDUwMzRhM2UwZTJjNjFkYiByZWxlYXNlMzEtbWFpbnQKKzc4OTE3IDZkNWFiZmY3ZmMzMTM5OGIxZGZjNmViZGMxMWNiZmYxN2UzZWY2MTAgbGVnYWN5LXRydW5rCis3ODkxOCBkMWVkZjI4MjQwMDgyNWYxZDE0YjFjOGZlNzJhZWVkY2NlM2Q0YjUwIHB5M2sKKzc4OTE5IDI3YWE0NmQwMjE0YWJjMDA2NDQxMDBhMzk4ZjFmNWI3MWQwMzZlYzAgbGVnYWN5LXRydW5rCis3ODkyMCBhN2I1OGYxZThhZjA4NWQ4NzQ1ZGI4N2M2ZDFjYjRjYTYxOTRkYTY0IHB5M2sKKzc4OTIxIGI4NzhhMGFkNGQ4YzZiNGNiNjVkYTgyYzY1ZDc1YTkyOTBjMWI2ZTcgbGVnYWN5LXRydW5rCis3ODkyMiA1MWQyNmYzMWJjZTk1NTJiNjIyY2NmNWUwZGVmZjU4MjJlNWM3MWQ2IGxlZ2FjeS10cnVuaworNzg5MjMgZTFkNTFjZDMxNWQwODUzNDE2YjZhMmRjZGRiYTVmMjVlYzI0OTdmZCByZWxlYXNlMjYtbWFpbnQKKzc4OTI0IDMyYzVhZDI5NjYzY2RlMzc0MmNhZDEwOWJmMGUwYTJlZDM0N2I5OGUgcHkzaworNzg5MjUgMTllOTY2MGQ5YWE1MTJmZTM0NmJhNDI0ZjUzNTU3ZjkxNjgzZWM5ZCByZWxlYXNlMzEtbWFpbnQKKzc4OTI2IGU4MDhmYzU0OGNkNjY1YzlhNjE0MmU1MDgyODdiNmFhYzQyNDE3MjkgbGVnYWN5LXRydW5rCis3ODkyNyAwMDI2ZTQ0MzYyZTU3ZDA0ZTU0ODViNGJhM2RhMWM0NmNmZmZiNzI1IHB5M2sKKzc4OTI5IDY3NzRlOGM2YzM5ZjM4NGNlNTdiOGY4NTBkZGI2NWRlMjc3MTE2YzUgcHkzaworNzg5MzAgODU5Mjk2YTcwOTJmMGNiYjZmMWMxMmJlMTJkY2MzZWZhY2NhZDRmZSBweTNrCis3ODkzMSBlMGExNzcwZGY1Mjc4NjEyZWRlYzQzM2I0MTE1ZWI4OGFlMTE2NDgxIHJlbGVhc2UyNi1tYWludAorNzg5MzIgNzI4ZWYwMDcyZGFmMjJkODlmM2M4MzE4ZmZiOGQ4NGJmYzJkODNjZCBsZWdhY3ktdHJ1bmsKKzc4OTMzIDI5MDlhNGNiMWJhNzJmMTNjZDUwMzk4NDM3NGUxYTcwOTQxMDI1ODAgcHkzaworNzg5MzQgYWRjMzkwZTY2ODkwNDAxZDc2MWYxNzc0ZmMwOGI1Njc3ZGVhYjk1YyBsZWdhY3ktdHJ1bmsKKzc4OTM1IGNjMTMyMTIxMmU3MzQ2MGNiYjFlNWU5ZDkwNzAwZjlmOTYxYTM5ODAgcmVsZWFzZTI2LW1haW50Cis3ODkzNiBkNmUyN2ZhMjJmNDJhMjY2YzY2ZWViNjM4ZDA1NmNjMDJlYTFmODFiIHJlbGVhc2UyNi1tYWludAorNzg5MzcgNWZlNWEyNmUzMTY5ZTg5Y2RhOTU4MGJiZjg5ZjM3ZmY5OWFkNjc1OCBsZWdhY3ktdHJ1bmsKKzc4OTM4IGQzOTA1YTlmNDBmNDA1OWQyZDViOTdiMjU3N2Q1MTJjN2ZmZWJjMzcgcHkzaworNzg5MzkgMGI0NTdmMTQ5NzYxZGI2YWFmNzBjMjhkZTI1MDViMGVmMjRlNTMwZiBsZWdhY3ktdHJ1bmsKKzc4OTQwIDFhODEwY2UxM2RiZDdjNDNiYzdiNzMyMzM3OWNjNDVlMWI3NTIzZjkgcHkzaworNzg5NDEgOTY5NjkzMmFkODI3NWU3M2ZhOTdjNTA4MGE2ZWFiMTFlNmNhZTNhOCBweTNrCis3ODk0MiA3YTE4YzI3NjI4ODYxNjU0MzA5YWRkYTQ0M2FhYzhiMjc2Mzg3YmU1IHB5M2sKKzc4OTQzIGQzMGViNDIyYzU2NGJmNjFhMGMzZDgwZDA4MjIxZjlhYTIwNDIxNjAgcHkzaworNzg5NDQgNDYxYjg5Yjk1NTVkMGNhOTMyYzU5ZjQyMTNkMWUyODUzOThiMjIzOSBsZWdhY3ktdHJ1bmsKKzc4OTQ1IGYwOTdmMmJhMjMyOTM3MjczMzNhNmZiOThlNWFjNWMzY2MxNGU2MGMgcHkzaworNzg5NDYgNzY4NzIyYjJhZTBhNTk4NDA3OTBkZTE1MDI1ZGQ1NzdiYTIzM2JjNyBweTNrCis3ODk0NyAzNzJkMWRlODZkZTlmODYzMGRlNjg4NmM5NzkyZTYwMzhiYzU1OThjIHB5M2sKKzc4OTQ4IDNkNjgwOTQ5Zjc1NWQ4NmJhOWFlNzEyMzRiNTMxODUwMjQwYjdhYTYgcHkzaworNzg5NDkgZjEyNzBlMDBmNTg3ODc2YzNjYWYxYWVhNTY5N2YwYzQ0MzA0MjgxYiBsZWdhY3ktdHJ1bmsKKzc4OTUwIGRmOGY4MWRmODU5NWNlNWY5NGQ0YjUzYjRkOTFmNjgxMjlmNjQ1NDYgcHkzaworNzg5NTEgMzA4Y2ZmN2RmNjRmMTc0ZWRlODY5YTM2YWJiOTBlMGYyNDM1Nzk3OSByZWxlYXNlMzEtbWFpbnQKKzc4OTUyIDQwM2QwYTI3YmQ1NmVlNTUzNjRjN2NmZmM0YWI4MGYwYjQwOTM5ZWEgbGVnYWN5LXRydW5rCis3ODk1NCBlN2YxMWY0NGQ1MTQ1NWY0MmNmMmU4NzhkZGMxNGQ4ZDUzOTY5Y2I0IGxlZ2FjeS10cnVuaworNzg5NTUgNzdjNzFmMjU4ZGY3Y2E3NWY4NWI0OTg3YjUzNTk3NzI2Mzg0YTVmZiBweTNrCis3ODk1NiA1Yjc1NGU4ODI4NTdjZmQxYjMzNDVmNDMxMmRkODgyNTlhM2NhOGUyIHB5M2sKKzc4OTU3IGI5M2NmYWZjZGNhZDdjMzNjYjk1MzY4OGQwZTExMTU2YWQzMGViYjEgcHkzaworNzg5NTggOWNmNzAyYzkxYTllOGFlZjg0OTNmM2E1ZjUwZjc0NWI2ODVmYjBiYyBweTNrCis3ODk1OSBlN2I1ZmM4NjQ2YWJmYTkwMWU3MmEzM2FjMzk4YWY5ZWQ1MmVkNzY5IHB5M2sKKzc4OTYwIGM4Y2NiNGUwYzZmZWE3ZDNkMDMzZDJlN2JkNDY1OTg4ZjJlNWRmNDYgcHkzaworNzg5NjEgYzQ1ZjIxNzA1ZWNiNzllMzQxYmZiNGMzOTNmMWM1NzUyM2I1MzZiMiBweTNrCis3ODk2MiA4YTkwOWU2ZDJjYWZhNzkzZWZlNDdiYjQxNjIzNTUwMDM3YTNhYTY3IGxlZ2FjeS10cnVuaworNzg5NjMgYzE2ZTA3NTVmY2Q3ZDA3OGQ0NjUxNDk0NjU2NmIwYjk0MmUxYzk2MSBweTNrCis3ODk2NCBiNTcwYzViOWIyZWYzNTQ4NDM2N2U1NjE0NTMwMTkwOTlkYjRiYWMzIGxlZ2FjeS10cnVuaworNzg5NjUgNTllMjIzYTA1NjgwZmEyOTFiZmQzM2UzMTMxYzY3NDE5NzVhMDIxMyBweTNrCis3ODk2NiBkMzYwZjM3YTRiNTk1ZmI5YTM0NTMwNTc1ZDFmZTQ1ZTk2ZDc2Mjg4IGxlZ2FjeS10cnVuaworNzg5NjcgOGYxOTkzYjg2NmY3OTAyMTQ4MDFjMGNjMTgxZDRiMzBhYjdiOGMyOCBweTNrCis3ODk2OCBlZWZkNTIxZjE5Y2UwNWYzOWY3NGIwMmM3MTkyYjZiZjJhODBjYjBjIGxlZ2FjeS10cnVuaworNzg5NjkgYmIwNmFhOTE4MzgyMWQ0NTIyN2IzODJmOTcyODBhZTBhOTZiMDJkMyBsZWdhY3ktdHJ1bmsKKzc4OTcwIDA4YzU0NzNiZWRjYzM5M2VmZTU0ZjJlY2E1MWUxMWE4YWMxMTE5OGYgbGVnYWN5LXRydW5rCis3ODk3MSBlMWRlMDgwYzQ1NTZkMzk1MDAwNGI2NDM0NThiYWE0YzA5ODlhZWExIGxlZ2FjeS10cnVuaworNzg5NzIgYjc0ZjFiYjg4ZTYwOTRmMzMzYjgyYzc4YzZkNWE2YmRhMjJiMWQ0MyBsZWdhY3ktdHJ1bmsKKzc4OTczIGFkYjVlOTI4YmRlMjBmNzJlNjU2MWUwZTBmZmUwYmNkMmZlOTc1NWEgcHkzaworNzg5NzQgMzhmMmY1MjYyYjIwM2FkNTZmMTA5ODBkNmE3NWI0YWIwODUwYWU2NCBsZWdhY3ktdHJ1bmsKKzc4OTc1IDM3YWQ0MGEyOGQzYmY0MGI5YzcwMjBiZTRkZTk0OTYxYmFhYThlMjIgcHkzaworNzg5NzYgOTVmMjFiMmMyMTZjMDhmZGQ5NmIxZmI2NTA5YjBkY2IxZDg2NDBlZSBsZWdhY3ktdHJ1bmsKKzc4OTc3IDhlMzhiN2JlZjcwMDA0MmZmNmNlM2ZhMGFmOTU4YjUyZTAxOGVjNDEgcHkzaworNzg5NzggZGIzNzlhOTBiNDZlNDA0MDJkNDUwYjA0ZmIwZGFjYjZmYzY5MDU2MSBweTNrCis3ODk3OSA3M2U0MmMwZjVjOTllNTIxZmRiZjFlODA5OWM3MGZjM2ZjYjkwMjE4IGxlZ2FjeS10cnVuaworNzg5ODAgYjg5MDBhMWQ5ODM1MzA4OGM1MTBhYjE2MTI2NWRhZjQ0ZjU3NGY5MyBweTNrCis3ODk4MSBhMmRiYTZmZTNmYmU1YTg4Y2FhMjI0NjRhZjUzNjc3YzJiMzEwMDY4IHJlbGVhc2UzMS1tYWludAorNzg5ODIgOGFhNTUzMGU4NDA3M2Q4OGZiYWViZDMxNzdlODIxYWVjYzc4Mzk3MiBsZWdhY3ktdHJ1bmsKKzc4OTgzIGVlYjliZjE1MjViYWM4YWFkZGMzNTAwY2NlNDQ3Yzg4YTE4ODI5NmEgbGVnYWN5LXRydW5rCis3ODk4NSBjMTliNGJmYjgwNmFhOGMxNTE1ZDgzN2YxZDljNDgxZDE4NTFjYzEyIGxlZ2FjeS10cnVuaworNzg5ODYgYzRkZDMwYjVkMDdlYWNmYjNlYWVkNDQ3ZTg1YTllMTE1YzY3N2RjZiBsZWdhY3ktdHJ1bmsKKzc4OTg3IDU5OTMxMTc5YzVlMmM1ODIzZDE2MmQyNzYwYjdiYzI4NThhN2Q0YTcgcHkzaworNzg5ODggNzk4NDVlM2Q1Y2FjMjFlNWVhMzY2ZDhkYzZhMTE0OGJjY2ZkM2UyYiBsZWdhY3ktdHJ1bmsKKzc4OTg5IDlmZmM4ZjA1MTVjZGVjNjA4NGZlNWVlMmE4MWQzNzVmMDY4ZGE2ODEgcHkzaworNzg5OTAgOTIzYzg3MzljYTg2MTc0ZmVmOTI0OGQ2NTBlODQwMTczMjJhN2I2MiByZWxlYXNlMzEtbWFpbnQKKzc4OTkxIDg1Mjc5OWJiM2ZiMTNjYzFiYTc1YjQ4MTUxMzc1ZjcxMzYzMTUwYjUgcHkzaworNzg5OTIgNDI1NzJlMzQ3MTA4YTJkMWRkNzUzOTVhNjcwNjM2MjhiNDdmNmNkOSBweTNrCis3ODk5MyBiNDUzM2I1ODBmYzllYzFhM2RhNTU1ZjVhZDgzOGQ2NDhmMTNmNzFlIHB5M2sKKzc4OTk0IDc0NTE0MDAwZjgzNzVkNjQ3OTk5ZTU2ZDYzMDIzZmZlMjhmOWVlNTEgcHkzaworNzg5OTUgNjYxY2EwYjA1YTMxZTc1NWJjMzFlYjBiYTIyNzU0MTY5MjRmYWY1MyBweTNrLWppdAorNzg5OTYgYmY0YTRhY2VmYjJmODcwOGIzODkyNjc2OTRkNzlmYjQxYzBmNWUzZCBsZWdhY3ktdHJ1bmsKKzc4OTk3IGM5NjZlNmZkNjE3OGIxM2RkNDM3ZTZjNThkYmViNmM1OGVjOThlNDQgcHkzaworNzg5OTggOTViMjY5Yzg2OGRhYzk0NWIxYWNkZGVhNmI0NDNlZWU3MjRhZmQyNCBweTNrLWppdAorNzkwMDkgYWE2MzI5NDNiOGJkZGFkMTEyZWE3MGEwZTVlYjQ5NmE1Njk0YmUyNSBweTNrCis3OTAxMCA5N2I2NjJiMTBmZjgzOTBlNDE5MTc0Y2NhYWJhZTY0NmUxOWJlNzhlIHB5M2staml0Cis3OTAxMSAyZTE2Yzk2MzQwMWRlMDNiMDY5ZWM3OTNjZTAyYTIxYTcyNjY3YjRiIHB5M2staml0Cis3OTAxMiBiYzY1Yjg2ZmFlOTQ2MmU3ZDhhNmJlOGY5M2QxMWJkNmVkYzdmMGQ1IHB5M2staml0Cis3OTAxMyAxOTBlYWRhZWFiYzUyYWQ3ZGZkMjUzMGQ3NTY2ZDFlOWE2MzdiNTJlIGxlZ2FjeS10cnVuaworNzkwMTQgMGYwODA5NjFlY2VmMTMxYjA0ZjIzODJmNDlhNjhhMDBiYjZiOGY3MiBweTNrCis3OTAxNSAzYmUzYWMwMTliZGIwNGU0MzkwZDE5NjE3OGI3ODhkMWFkNWQzNzJlIHB5M2staml0Cis3OTAxNiAyMDY0YmY2MmEzOWY3ODY4YjNjMzc0MGE5NGQwNTIzYWYxMjk1ZjIzIGxlZ2FjeS10cnVuaworNzkwMTcgYmFjNzJmMTFhOThjNTZjMzYwNzhlMmVkZTMyYjA1MWE1ODA4N2U1MyBweTNrCis3OTAxOCAzMGYyODMwMzllMGU5OWE3NTdkMDgwMzAzZTAyODhiMWFjNDVhMTVjIGxlZ2FjeS10cnVuaworNzkwMTkgNDQwN2FjNGM2MzYwYmU0MWYwYmVhZTc5MDNjYjQ5NmYyYmU5NTEwYyBweTNrCis3OTAyMCA1OGUzYmMyMWMyZGQ3MDFlYjQyYTU3NWM3ZTBhYjA1NjFmZDM5MzBmIHB5M2sKKzc5MDIxIDcwNjU1OWQzYWM1OTA4ZWNhYTdkNDcwZDg1NjE2NjVkZTFjZDliYWYgcHkzay1qaXQKKzc5MDIyIDY5YzBkNWVhMmUxZTNjM2I0NzBlOGU0NmUzZDc4ZjAzZjgyM2E2YzMgcHkzaworNzkwMjMgNWI4ODhmNTkwZmUyNGNiMjM0ZTEyNmZjNGNmYmRjYTEyN2NjN2JmMSBsZWdhY3ktdHJ1bmsKKzc5MDI0IDU4Mjc4MGVkZDBlODhhM2JjNjUzMzY2OWUwNTBlNTcwNDZlMzJkN2MgbGVnYWN5LXRydW5rCis3OTAyNSA4MDM4YWYxZTIwNjU1ZWI2MzNjZTY4YjQxOTBjYWFjNmY0MTQ4ZGNlIHB5M2sKKzc5MDI2IDhhNDY5M2Q1MTdmZWNmMWEzYzg0OTE1NzA3NzI0MDYzNjkwYmU5OWQgbGVnYWN5LXRydW5rCis3OTAyNyA3ZjE2MmEzMDk0OTc4NWQ4YmUxMDE5M2Q4NjM4NGQ3ZDNlNmQwZDliIGxlZ2FjeS10cnVuaworNzkwMjggMzQ2NTgyZjg1ZmFmODg0N2Y1YjJmNWIxZDkxYTgyZTVmZDY4MzU0ZSBweTNrLWppdAorNzkwMjkgMTBiNzYwNmE5M2VkMDM5MWEyMzM1NWVjMzQwM2Y4ZWRmYzNkMWRlYSBweTNrLWppdAorNzkwMzAgOWI0NjI1NzAwMjUxYjc0MDA2Y2YyNDVhYmNkZjZkMDJkODhjZWIxZiBsZWdhY3ktdHJ1bmsKKzc5MDMxIDdkZjNlMTNkM2U1MDllMGYyYjA5OThjYzdhYzk5YmQ2NzE2N2NjYTcgbGVnYWN5LXRydW5rCis3OTAzMiA3NDA5YjVhN2M4MWE2ZjA2MmZlNzM2NzQ4MWQwZjU2MTgzMGE3ZGVhIGxlZ2FjeS10cnVuaworNzkwMzMgODBkYzRkMTMxZDg1ZGQzMzEyMGY5ZWFhZWQ4MzlmNTFhYjY4ZDI4MyBweTNrCis3OTAzNCBiODc5MjA5YzIwMmZkMzMzODgxMDJhNGUzNDk4NmE1MjVkZjZkNGExIGxlZ2FjeS10cnVuaworNzkwMzUgNTI0NzllMDQ1NGU5MGNmY2VjOTNlMzMyYTI5NDRiMDY2ZWIzZjE5OCBweTNrCis3OTAzNiAwYWMxOTE5MGE3MTBmYTc3MzRjZGZjNmY0YzNkNjNiNGYzN2ZiMTQ2IHB5M2sKKzc5MDM3IGUzYmUxZjFhZDYxZWUxMTUyZWUyM2ViOWZjZjY0MTJmODkzZjNhOGEgcHkzay1qaXQKKzc5MDM4IDUzMWQzMDIzYjQ4YjdjZWQwMzQ4ZmQxMDYzYmU4MjAyZDg5MjBhZWMgbGVnYWN5LXRydW5rCis3OTAzOSA0MzVmYTIxNWQzM2YwOGE2OGI2OWQ4NWQzMDFmMjcxMDJkMDNmMmI2IGxlZ2FjeS10cnVuaworNzkwNDAgZDYyY2ExZWFjY2I5ZGFiZjdjZDE1NGM1N2QzNjlhNzYxNjZlODgxNiBweTNrCis3OTA0MSBlYTI3OGQ5YzBiMmFhMzNmMzQ4ODBhYzgyZGYxYjIyYmI0OWMxYzZkIHB5M2sKKzc5MDQyIGIxYWU0ZjgzNzdmYjZlMzFlNTBkYTU0YWYyZWM0YzE5NDYzY2Q5NWUgcHkzay1qaXQKKzc5MDQzIGY3MjIwY2ExMTM2M2M5YzdjYTMwMzhhNTg2Yjc3MjE0NWIxN2RiM2IgcHkzay1qaXQKKzc5MDQ0IDg1NTVhNGNiN2M0Y2I2MzY4NGY0NDk0ZGJkZGQ2ZThkOWIzNjE2MzggbGVnYWN5LXRydW5rCis3OTA0NSAxNWJkYjk0YzgwNTVjZGU5YTAxZmI3NzAyYTI2MzU2YTdmNjRkODBlIHB5M2sKKzc5MDQ2IGJmZTllZTAyZjRjMDdlMWNiNzE2ZTAyZDc4YTMwMDdmMmJhNWFjNDkgcHkzay1qaXQKKzc5MDQ3IGExYjZhNTRlMmI2YTUxYzUzNTdkNDMwMjFmOWNiYWUzYTFiY2U0NzcgbGVnYWN5LXRydW5rCis3OTA0OCBkOWVjNGM4Y2U2OTU0MmM1ZmE2M2VlZDAwYWE3NTdhOWVkMzhmMGZjIHB5M2sKKzc5MDQ5IDc2ZjllM2I2YzU4NGU0OGMxZDhjOWY0MjEwOWFhNjM0YWIzNzU1NGYgbGVnYWN5LXRydW5rCis3OTA1MCA0ODVmZTIwZGFiMTIxY2I0NjkxNGRmM2FmYTVhNTMwM2I0OTYxNzRiIHB5M2sKKzc5MDUxIDQyOTQ2MmQ0Y2EwYzIwMGM1ZDIyM2JhYjE3NjZlMjkwNGQ5N2NmNzkgbGVnYWN5LXRydW5rCis3OTA1MiA0NjE4M2JmNGYxNDM2OTA1YTk1YjkxYTg4ZjBmOWI5ODNiMzgyNDdjIHB5M2sKKzc5MDUzIDQ2NTY4NDZhODliMjY3NWEyNzUzY2RlNzFkYjMxNDBjNTg2N2FjZjggcmVsZWFzZTMxLW1haW50Cis3OTA1NCAyY2ZhNDQ5NzE4OGZlZjQ1NTBiNGQ1YWMwY2NlN2JhM2U2NWFjNzRmIHJlbGVhc2UzMS1tYWludAorNzkwNTUgZDFkYmU1ZGYxNzkxZjI5MTg2Yzc1ODE3OGZhNzBjZTNiOGNkZTRkNSBsZWdhY3ktdHJ1bmsKKzc5MDU2IDg3MTI1ZDc2NDdkNjg1YjEzYWY3NjY4NWIzYzdkNGFjYzIxZTZmMWYgbGVnYWN5LXRydW5rCis3OTA1NyBkN2I5ZTI5NDFlMTQ1ZDdkZGRiYTEzNDhiZWJjNzAzMTYwMjIwNjJiIHB5M2sKKzc5MDU4IDI1ZGU3MTY3YTA1NThmOWEzNjAwMjM4NzY0MDM5ODM2MDQxZjYwNDEgcmVsZWFzZTMxLW1haW50Cis3OTA1OSAzNDRjYjZhNGVmN2RhZDdiZTQ3MTM4NWM1ZDlmMzE1YjMxZTczMDFlIGxlZ2FjeS10cnVuaworNzkwNjAgMjJmNTg5YThlM2FiOThlNmFhYWQ2NjNmNTEwZmU2YjA0ZDE4MWU3ZiBsZWdhY3ktdHJ1bmsKKzc5MDYxIDNmNGM3YzRlZWY2MmFmODIzYjIyY2I2YTNhOWNlNWNiYzBmNzc0NTEgcHkzaworNzkwNjIgMDM4NTJlYjA4ZGIxNjE0Njg4Y2E2YjcxNTBhNjE1OGEyOGU2MmQ4ZSBweTNrCis3OTA2MyA5OWFmNGI0NGU3ZTQ5MDM5MDgxN2E1OTdhNTQyNTQ2ZDc0OWU2OThlIHJlbGVhc2UyNi1tYWludAorNzkwNjQgMTZhYWIwMmVkOTljNjdlYzI2MmI5N2EyOThmMzI3YTIyMmM1OTJmMyByZWxlYXNlMjYtbWFpbnQKKzc5MDY1IGE1ZGIwZGYzMjM4MjA5NDNkNjk0YTYwZDkyMzVmYjE5ZDU2ZDQxZWUgcHkzaworNzkwNjYgNzJhODA5ZDE2NWY0MzZjYzkwOGRiMTdkOTlmOWZmYTBhMzZkZWVhMCBweTNrCis3OTA2NyAxNWI4N2VhMTQxM2Q2ZTgwMjBkM2NjNWQ2MDc2ZDM0YjJlNmIzYTUxIHB5M2sKKzc5MDY4IGUxNWE4YTQ3NjQ5NGJiOTQyYWQ4ZDQyYTMxZjUxYjExMzc4NjMwNDMgcHkzaworNzkwNjkgNGYwOWQ1YjE0NzVmZmFjMzU2NjAzMWYwNjdkNzg3ZGZjYTZhMmFiOCBweTNrCis3OTA3MCAzN2IxYjkwZGU1YzE1NWQ5M2IzYTAyODVlMjNmZjExNDdiZTljNGMwIGxlZ2FjeS10cnVuaworNzkwNzEgZWVhNzJiODFhMjNjNjVjY2JmNjA1Yjg2ZGE5ZGRjMDJmNDFlYTQxNSBweTNrCis3OTA3MiA5NmVmZWJkYTRlYTJjOTZkMzFlYjY2ODVhOWRlY2Q2YTFiYTY3YzMxIHB5M2staml0Cis3OTA3MyBmYmMzZjE2OTFhZDg5ZDVjNDgzOGEyNjUzZmRjYTkxNmY2YWYyZmUwIGxlZ2FjeS10cnVuaworNzkwNzQgMGIxZTUyMjgwN2YyYzdiMWRkMTcxYTcwOGZmMTNhYzMyMTEwOWI0ZiBweTNrCis3OTA3NSA5MTAzODU1YjgyNmJkNDc3NzI0NDkwNjY2NDA3M2Q5ODk5ZTI0NWFmIHB5M2sKKzc5MDc2IGI4YjQ5YzgyM2ZlNDQ1YmU4ZDhiZTIyYTM1YWYxNzMyMDk4Y2NiNWYgcmVsZWFzZTMxLW1haW50Cis3OTA3OCBhMGE2N2MyZmI3ZmY2ZTQwMzk5MGUwYTliMjFhMWU0ZGEwODg3NWEyIGxlZ2FjeS10cnVuaworNzkwNzkgOGZhMTI4NGNlMDBlNTkwMDI3YTQ0ZTVlMmY0NjA4MWRhNDEyZGI3NSBweTNrLWppdAorNzkwODAgZGQxMmY3ODhhNTQ0ZGY2NmYwOTE5MDg3ZjcxZTVkMzY3OTlkOWZlNSBweTNrCis3OTA4MSA0NzFkMDdkMmEyM2Y1ZWY3ZWQyOGJhYTkyNDk2ZTM1ZmY4MGMzODg0IHB5M2staml0Cis3OTA4MiBhMjQxZTQxNTg4ODIzZTcxMWJmMWQzOTc5ZmEyZjQ2YmZmZDVjMDc5IGxlZ2FjeS10cnVuaworNzkwODMgZDk0NDExNDAzMDkzYmIwYmM3ZDgyOWU2OWU3Mzc1NDE4N2QyNDZjZCBweTNrCis3OTA4NCA3N2Y4NTNmZTNjZjI2MTQzZGVhNTk4MjNlOGZmZmE1MDVkMTQ2ZWU1IGxlZ2FjeS10cnVuaworNzkwODYgNTBlMDZiNmFiOTU2NWRmNjdhMmVlYjBmMmE3MzVlYWNkNzUxNjkzYSBsZWdhY3ktdHJ1bmsKKzc5MDg3IGQxYzNhYmM4ZTBjMjljNjBjNzZlNjc0OWI4MmQ0MTlmOTZiZTg1NzQgcHkzaworNzkwODggNzkxYmEyMDFiYWE5Nzc2YmZjMjhjMDAyNDIzMTAyZTU3NjUwYTUzOCBweTNrCis3OTA5MiA0Mjg1ZWEzM2E1ZGZlNTIxZmJjMDFmNmFhMTcxNDdhMDExMDBiMDVhIHB5M2sKKzc5MDkzIGI5ZmZhOWZkMTAxYjViOWM0OWMwMzgyYzY1MjQxNGJiOWUzYWE4ZjIgcHkzaworNzkwOTQgOGEyOGJlNDVjMjQyM2NiYzEwNTAxNGUxYjM4Y2E5YzU4ZDYyZjY2MiBweTNrCis3OTA5NSA1ZmJkOWM2Mzg5Yzc1M2FlMmMxMzAzOTU5ZjA5MmI2YWM1NzhiMGQ5IHB5M2sKKzc5MDk2IDRiMzU2YzFiMjVmNjZkOTA5YmFjMzJjMGQxNzAzYzgxY2I5ZTZlNjMgbGVnYWN5LXRydW5rCis3OTA5NyAwMGRhYThiNzM2Y2M3ZmM1YjgzMWFjZmJlOGZjYWU5ZmU0NGU2ZTU1IHB5M2sKKzc5MDk4IGI2Mzg3ZjQzY2RkYmQ5YzNjZGRhYjhhMGZlNDc5YjRjY2YwMDE0OWYgbGVnYWN5LXRydW5rCis3OTA5OSA5MTQzMWIwNTg0NzhlYzE4NTg2N2M3NWM4ODA2ZDFlNzA1YWFjMjE4IHB5M2sKKzc5MTAwIDA3Yzc2NjRmMjFhMTg5OTE5NjUxNGM4NTEzYzAzN2MwZDYyNWNmNzcgbGVnYWN5LXRydW5rCis3OTEwMSAyNTEyYzJhZDVkZTcwNWJiNjE0YWRkMmZlNjAyMjgwNjA1NmFiZDQyIGxlZ2FjeS10cnVuaworNzkxMDIgNDU4N2UxZjc0ZWQ4NWQxMjhlNTI4ZTc3ZDMxYzYzYTQ4MGI1ZDM3NiBweTNrCis3OTEwMyAyYjFiMDM3OTcxOGI0OWQ3NzJhYWQxNjM1YzdhNjRiOTQ4YjFkNzBkIHB5M2sKKzc5MTA0IDYzMGNlNjJjOTQ2ZWY0N2FjNDQyZmVmY2JkMGE2NzNmMGU1MTExZjYgYnJhbmNoX2xpYmZmaS0zXzBfMTAtd2luCis3OTEwNSA4M2E3Njg5ZjFiYjVkMzMyYWRhOTU0M2JkYWY1NTBjZmU1NDAyNjhkIGxlZ2FjeS10cnVuaworNzkxMDYgOTk2YTMxOTIwZDQ4YzA5MDc4MWE1NzJlMGU5NDFlMDY5M2ViOTg3MSBsZWdhY3ktdHJ1bmsKKzc5MTA3IDE4Zjk0ZTIzY2E4MGE2NzQ3ZTU5YWZkMzMwNWU5NWI2ZGM0NjI3MTEgcHkzaworNzkxMDggM2Y5MDUzNTk4Y2EwZDU3YjczZmU5MWNmZDQwMzRmYzM4YTIxMDFlYSBweTNrCis3OTEwOSBhOGUzOTc3OWZlZGYyNGU3YjYwNjE0OGY1OTA4ZjZmMzYwNzUzNzJkIHB5M2sKKzc5MTEwIDJkNjgzYjhlM2Y1MDJmODYwZDE5MDlmM2M2NGEwYjFjOTM0NjlmY2QgcHkzaworNzkxMTEgNDc0MWY2ZGQ3YzY5YTBiMjk0MTEwM2JkYzU3NjY2YTE0OThiMjc2OSBweTNrCis3OTExMiAyMjQ1OTFiYTZhMTg0Zjk0ZGMyMWRlYWI1ZmY3NDU1YmEyMTA2NWYzIHB5M2sKKzc5MTEzIDFlMGQxOGU5ZjhjMWJjODliMjY4N2M0YTljZDgyMmNiOWJiNzdmMmMgcHkzaworNzkxMTQgMGYwMGRhNjkwNGE2NTc4MTUxYWVlMjAyYWU5YWZiZGVkYmE3ZDVjZSBweTNrLWppdAorNzkxMTUgOWFiMDdhYmUyMzBkYjk4YjE4ZDQ2ZmUyYWUwYWUyOGQ3Zjk0YjZhNCBicmFuY2hfbGliZmZpLTNfMF8xMC13aW4KKzc5MTE2IGU0MzIzM2Q4MDA2NGY1ODNkY2JhODFmNWU5NzZmMTIxMjRjMjlmN2IgcHkzaworNzkxMTcgMDJlMjE1NzZkYTAzNzczOTBiNGJhOWQwZWM1MmU4MWEyNWQwYmQ3ZSByZWxlYXNlMzEtbWFpbnQKKzc5MTE4IGMzYzdhM2JlNDBiMzU2NmUzMWIxMjk1YWRiNGIzZjAyZjAxNTVlZTcgcHkzay1qaXQKKzc5MTE5IGFjYzNlMzU4M2ZhYzk4OGEyNDJmOTg1ZDU1NDVkODYxYTNkMmUwYmMgcHkzaworNzkxMjAgOWZmMTAzNWY2MjM2NWViZjBkOGVjNTY0NzMzMmVmZjM1ODY4ZGI0NSByZWxlYXNlMzEtbWFpbnQKKzc5MTIxIDNkMzhjMDAzMmNlYWE5NWZiZGZhYTkzOWZhODMwMTE1MzRjZjJkMjcgcmVsZWFzZTMxLW1haW50Cis3OTEyMiBmMGVmYWFiMDQzODE5YWI1ZmY3ZDAxZjZmYmQ0MDM2NjdlYzVmOGMyIHJlbGVhc2UyNi1tYWludAorNzkxMjMgZmU0MTE1NjkyZjc2YzEwNmM4OWI2YTIzM2NhNzQ3ZWNlZTFmMmRmMyBsZWdhY3ktdHJ1bmsKKzc5MTI0IDlhY2I3YzE1NjA3NTgxOTdlZjUyZThkMWZiNTllYzA4ZmU4ZDFmZDYgcHkzaworNzkxMjUgYTVmNzk2ZmI2MWExMDI2NGRhYzJmYjIyZGU2YzZkOGRjNTA5NDAwMCBsZWdhY3ktdHJ1bmsKKzc5MTI2IDcwNjk1N2Q2ZWNkZmY1MGE3ODliMzBlOGIyOTgwYTdlMGI0YWM4MjUgcHkzaworNzkxMjcgMTNmZjg1YjEwZGIwZTU3MzQwZTc3Yzk5NGVhYTk5YWU3YzU4M2ZlMyBsZWdhY3ktdHJ1bmsKKzc5MTI4IDc0YmIwZjYyYjMyZTdjNzJlNmIwZmNhMDg4ZTUzMmExZmI0ODY3N2YgcHkzaworNzkxMjkgMTA5YzRlNjJlYzIzNTc3MmYzZGFmYTRmYzI0MjdjMjQ1N2I2ZDcxYyByZWxlYXNlMjYtbWFpbnQKKzc5MTMwIDVhNTVhMzI2MTE2NDRkYTljY2FkNDNhYTYzMzgxOWZkNTBiMzYyNTIgcmVsZWFzZTI2LW1haW50Cis3OTEzMSAwZTNjMTBiY2RiYTQxZDI3YjIzZGZjOTlhMWE5OTZiN2IxNzEyYTU4IHJlbGVhc2UyNi1tYWludAorNzkxMzIgYTY4MmI3MDg3YWNiYjNmOWZlNTM4ZWQ4OTViN2RhZmJmODZhYTY2OCBsZWdhY3ktdHJ1bmsKKzc5MTM2IDE4MDM3NGJmMmQ1MjlkZjM0NTQ0OGZiYjkwNmUwZDZmOWFhMDAwYjggcHkzaworNzkxMzggMzdjOWFiN2Q0OGYxZjQ3NGZiYTliZmYxZTNjZDY5MTBlODA0N2Y0MiBsZWdhY3ktdHJ1bmsKKzc5MTM5IDY2NTFlZmI3NWQ5ZWEyYTliNmZmNTdmM2FjZGM4YWViZDg3ZTJkOWQgbGVnYWN5LXRydW5rCis3OTE0MCBlMDc2ZTU1ODM0ZDlmMjExMzJhYWZlNjk2ZTUxNzVmYTNhMjhjOTViIHB5M2sKKzc5MTQxIGU1MjNiYzFjMzAzNDQ0NWZjOGJmNTdmOWMyOTUwYzEyMWQyNTg1YmMgcHkzaworNzkxNDIgZTg2NzIwMDNhZTg0ZmYxMmE1ODg0ZmIxMmZjZmFmZTk1OWE3MTU3NyByZWxlYXNlMjYtbWFpbnQKKzc5MTQzIDg1Y2JlNDRiMzkyNWY4MzJhZGEwNzAzOTZhOTE2NmY2MDcwMjExOTggcHkzaworNzkxNDQgNjM1ODY1OTJhM2EwNjk1NGUwOTYwOGU1NzdmN2RhY2I3ZjkxODUzNSBweTNrCis3OTE0NSBhNjEyYzhiNjFiNGFhODRhN2Y4ZWYzNDBiYThhNTNjYzU4NTUyMjM0IHB5M2sKKzc5MTQ2IGY3N2Y4NTAxZGE3ZmFiOTQ0NDk3NGExZGY1MTlmZDY4Nzk3YmEwYWMgcmVsZWFzZTMxLW1haW50Cis3OTE0NyA5NjBlZmEzMjdjNWQ5YzE4ZGY5OTU0MzdiMGFjNTUwY2I4OWM5Zjg1IHJlbGVhc2UzMS1tYWludAorNzkxNDggN2M5MjY4MTQ2OWY3YmI0NTUzMWEzMWQ1NTg5NmRkMTMxY2JjN2M3YiByZWxlYXNlMzEtbWFpbnQKKzc5MTQ5IDM1MmQ2MWE2OWY1OTViYTQ4OWU5ZTdlMGI0ZWE4ZDY0MjdhYTIzOTcgcHkzaworNzkxNTAgZWRhZDk0OGI0ZDY2ZmFiMzFiMDIzNGE0MTgxMmMzOTQ0ZTA2YjBmOSBweTNrCis3OTE1MSA1NTRlMGY0MzVkMDhhYmI3MDQxNWZhYmU3NWUxODI2OGU5YTYxZmRjIHB5M2sKKzc5MTUyIDYyMjNjM2ZkNjFmMDlkNzMwZmI4MGIwNmQzNTZmN2U4MTQzMDlmNGMgcHkzaworNzkxNTMgOGE5MjBhODkwOWEwOGJlMzkwYzQyODI3MDU4OWMyYWVlNTI2NGJhZSBweTNrCis3OTE1NCBhZTllMTM3NDExZjFmMzhmMjcyNDU1NGUxOWY1YWJiODI3MjYyN2VlIHB5M2sKKzc5MTU1IGQ4NzAwYjRmMWI5ZjUxNTI1MDZjNmRhZTdhMzUxNTViZjk0YWZiZTggcHkzaworNzkxNTYgNGY3MTliZTdjODc1ODVmNWIxNTc4MDNmZGIwMDA0ZDBlZjBkZWM1NSBsZWdhY3ktdHJ1bmsKKzc5MTU3IGU2MTkwNDdhMmYzNjYwOGVhOTZmZTk0MzI1ZWUyMmUxZjgyYjJjZGYgcHkzaworNzkxNTggYTlhODA3YjdjZDQzOWZjOTdlNDQwNjBlMmY0N2Y4MTAzNDMxMTJmOSBweTNrCis3OTE1OSAwZTA2MzJjNTQzZTQxNDRmMjJmMzFkNWI5MDhmY2RiYWU5NGVjZjMzIGxlZ2FjeS10cnVuaworNzkxNjAgNzExZDUxNzM3ZWU2YmU5ZjZlY2FmNGFmYjZiMDU5MmU1ZjVjNzQwMSBsZWdhY3ktdHJ1bmsKKzc5MTYxIGRiYzU4MDRlODI4NTg1YzQyMTAzNDM0ODllYmY4MjFmMjhkMWE5NzIgcHkzaworNzkxNjIgNmI2ZmZkNTI2ZTNiZTRlZDk5OTIxY2NiOTRkNmUzYzA4Y2E4N2I2MCByZWxlYXNlMjYtbWFpbnQKKzc5MTYzIGE3Yjg5ZjJhYzFkYTZhNWUyNDVlNzkzZTBhY2I3YWU5OGE4ODg2YjAgbGVnYWN5LXRydW5rCis3OTE2NCBkY2I5ZjQyNzA0NDFhZjdlZGIwYmFkZGY2ZDc1OTFiMDhkNThmNzljIGxlZ2FjeS10cnVuaworNzkxNjUgYzhjODQwMTYyODA0OWY5N2Q4YTZkZGZmNDZiZDMwMDNmODJmODA2YSBsZWdhY3ktdHJ1bmsKKzc5MTY2IDdkZGNmN2QyODM2YWFjMzJhNTMzZjEwNjMxYWU4MWEyZjc4Y2U5YTkgcHkzaworNzkxNjcgMzU2NjM2NmI4OWNmMTU5OTQzMDVlOWQxNzY3OTcwMzYyYjU5ZGQ5MSByZWxlYXNlMzEtbWFpbnQKKzc5MTY4IDRiZDFhYzExMzJjZGZkNTA1OWY3OGVmZmQ0NTM5ZDc1NGE4MmIzZWEgbGVnYWN5LXRydW5rCis3OTE2OSBmMDc2NmNmZjdmNTk2OGVhYjM4Yjg5ODA0MmVlODk3ODJiMmQ5YTBmIGxlZ2FjeS10cnVuaworNzkxNzAgZjg1N2Q0ZWQwNzc0NzU5MzY4N2RjMzY1Y2Q5OWU4ZjdlOWJiYTFjZSBweTNrCis3OTE3MSAxMGJkMWQwZjYyZGUyZGM4ODU5NjYzMWFjYzljNGZmNmJmMjM2ZjY5IHB5M2sKKzc5MTcyIGVhNGU2ODkyOGZmNTZiNmY1NDM5MmNiYTBlM2M0NTY0Y2FmZDQxN2MgbGVnYWN5LXRydW5rCis3OTE3MyAxYWU0NzRjOWMzNGU2YmM4MTVmYjc3NjVhYWEzNmY1YzY2MDNmNThiIGxlZ2FjeS10cnVuaworNzkxNzQgMmM5ZTBhYjNmMGM3ZWZkOTFmY2ZjMzdjMjA5ZTc5NDNiNDM0MDYxMSByZWxlYXNlMjYtbWFpbnQKKzc5MTc1IDZhMTI1NGUyMGM4OTY3YmU5MzhlOWVhOGI5MzhlMmI5MzI5NDJhOTYgcHkzaworNzkxNzYgY2IwZTM3MjZkOTFkYWIwNWY0NWQxMzAzMjc2ZjU0OWI1NGFjODcwZCBsZWdhY3ktdHJ1bmsKKzc5MTc3IDMxZjBkOWZjZGI0NWMxN2U3ZDBiYTY5NzE2ZmM3YzcxYzY4ODhjZjAgcHkzaworNzkxNzggYWM5NjJiYzQxZTg1ZmM5MzNiZjc2YmE3NjE2N2NlOTIwZmI1MDU5ZCBsZWdhY3ktdHJ1bmsKKzc5MTc5IGJjNWUwZDJlMTc5ZDAwODZlYjFjMTY5ZDI0MTQ0MTgzZjI5YTYxMTMgbGVnYWN5LXRydW5rCis3OTE4MCA0NTVlZjcwMTViYTgwMmRhMDhlZTc5NjE3YjU2ZDEwOWEwMmRkNDUzIHB5M2sKKzc5MTgxIDk1MGMxMDMwZjgxNjQwN2YxYjRiMDMxNDMwOGNkNzQwMzU5MTgxYmIgbGVnYWN5LXRydW5rCis3OTE4MiA1NzVlYzc3M2RkYTQwY2Y4ODNiNmYyZWZmMWFjN2VlNzM5ZjEwMTkwIHB5M2sKKzc5MTgzIDI4ODZmNmFhNWVmNjE5YTRiZDE2NWU3YTMzODU3YjY5NDhiMDc4MmIgcHkzaworNzkxODQgNDE0MDQ0ZGJmMzQzOTQzMTZhNDMwOGYwZTBjNTU1NGYyZGM1ZTFhOCBsZWdhY3ktdHJ1bmsKKzc5MTg1IGQ0ZmEyZWFhYjVmYThhNTZjMDNiM2YwMmU0Y2QyMTc1Zjg5ZTUxOWEgbGVnYWN5LXRydW5rCis3OTE4NiBjMTFmMWNlY2JlYjM1YTE4NmUyNmU2ZWJiYjVhM2ZjZTYzMDE0NmQ5IHB5M2sKKzc5MTg3IGMzYjljMzMzMzAxYzdiN2Y2ZjUzMDNjNjhjOTk1M2UyMGM5MWVlZTEgbGVnYWN5LXRydW5rCis3OTE4OCBlODIzZTI3YzIyNWVhYTA2MTczOWE2MjA3YjExMzljYjMxOTk4Mjg2IGxlZ2FjeS10cnVuaworNzkxODkgZGQ2OGUwNGVlMmU4NjIzNDk2ODY2NzA0OWFhMTUwNzBkZjIzNzg0MyBsZWdhY3ktdHJ1bmsKKzc5MTkwIDYyMDkxMmY4MzA4MjZlOTVlYzAwMDhiZDQ4NjhlMzhhMjY4ZTk0OTcgcmVsZWFzZTI2LW1haW50Cis3OTE5MSA5OGU0MTY2MDU3NGMzZGVkM2FmNjBhOGQ3ZWJjMzlhMDczMDNjZmY2IGxlZ2FjeS10cnVuaworNzkxOTIgZGVmYWFkMjAxN2I1Y2MwODllNzRmYjhmNGI5MTExOGNlMWE5NTk0YiBsZWdhY3ktdHJ1bmsKKzc5MTkzIGZjZWY0ZGEzMWUyNDViZDAzMDUyMDNmYzAxNjBhZDA2ZmZhMzk3ZmYgcHkzaworNzkxOTQgMjJjNmEyNzY0Y2FiNWZmODBhMjc5ZjQ2ZWNjNjgwODhmOWMzNzM4OCBsZWdhY3ktdHJ1bmsKKzc5MTk1IDYzZjNhOTRmNWU5ZDUwNTg1ZjQwOTkwNmI0NDJjMjY3Zjk5MjY4NmEgbGVnYWN5LXRydW5rCis3OTE5NiA0NGZmYjgwOTJlZDYyOTAzMzBjNTQwZWMxODIzMTA3YTI4ZWY2NDRjIHB5M2sKKzc5MTk3IGIyNWQxMDI0ZjM5NDY4ZTQzOWI5NGM2Zjc4ODcwN2VlNDgwYWJiYzAgcmVsZWFzZTI2LW1haW50Cis3OTE5OCBjNmY2YmU1MzE3YWQzNjE5NmJhMGYxMGQ4ZTIyZWFmOWQ2N2VlNTViIHJlbGVhc2UyNi1tYWludAorNzkxOTkgOGU0MWYxNzk0ZDQ0OTViOGNiMjI0NmU1OGY4MDNjYjBlNGFiMGViOSByZWxlYXNlMjYtbWFpbnQKKzc5MjAwIDBmYjZkMzQyMDE2ZGQ1YzhhMjZiZGYyOGRiODdjZjU0M2M1ODZlYmUgcmVsZWFzZTI2LW1haW50Cis3OTIwMSA4ZjEyMDJjYTg4OGU5NWJiMjVmOWRmNzRiMTViZGMyYmJiZDU3MmY5IHJlbGVhc2UyNi1tYWludAorNzkyMDIgMTJlMjA3NWRiYmUwZTFmMzVjMDA3OGVhZDczZjU5Y2M4OThiYzY0ZSByZWxlYXNlMjYtbWFpbnQKKzc5MjAzIDU4MTI2M2FmNTgyMGZkMWQ2NGFiN2UyYjQ1MTc0NTE2NTgzNzA3NDIgcmVsZWFzZTI2LW1haW50Cis3OTIwNCA4ZDhjOWJmMmEwNGUyN2Y1NmM2YTNhZTY5YTE5ZTRkNDQ5ODliYzlmIHJlbGVhc2UyNi1tYWludAorNzkyMDUgNjQzYmY5ZmYyMjhmZTQ4MGQ4MGNiMjJhMjkyMGY1YmExNGEyNzI2YSBsZWdhY3ktdHJ1bmsKKzc5MjA2IGI5ZTI3ZGU4NWU0YmM4NjgyODk5ZDA4ZjNiNGYyMTNhNjcxZDUyYTcgcmVsZWFzZTI2LW1haW50Cis3OTIwNyBlMDYyZGQzNTcxNDE5MmEzMThlOWM1MjEwZTM5NTdhY2MzNThmMmZlIGxlZ2FjeS10cnVuaworNzkyMDggMDlhYTg3MmY3OWZjNWYzZjllNzhiODZlMmE3YTZjMGE1MWZmYTdlZCBsZWdhY3ktdHJ1bmsKKzc5MjA5IGVjODRmYmNkZjdjYmI1MTk0MTRjNDMzNDNkMDY0MWMxNWYzODI5MjMgcHkzaworNzkyMTAgOTNmNzIwZTk1MThhZGJkZGE2ODBmYjNlNWRmOTk1Nzc5NzYxNGRkOSByZWxlYXNlMjYtbWFpbnQKKzc5MjExIGVkYzkyYmNlNGQ2ZTJkOTNhYmY0NTFiYjk0NTZjZTlmM2JlYjQ4ZmYgcmVsZWFzZTI2LW1haW50Cis3OTIxMiBjZjU4YjczMzIyZjhjNGIwYmM0MjY1MWE1MDkwNjlhZmEwN2NmYWQzIGxlZ2FjeS10cnVuaworNzkyMTMgMzhlOWI5ZGEwMTY0MmViYjQ2OGJiY2UwMjNjYjI0ZmQ4YTRmMmNlNyByZWxlYXNlMjYtbWFpbnQKKzc5MjE0IDc1OTg1MTdiMTIxODA3ZmFiMDUwMDQ1NzU5ZTVmZTcwYzA4OTQyNzYgcmVsZWFzZTI2LW1haW50Cis3OTIxNSA2NGEwMmIxMzNlNzIzYTk0NjY5ODQwODM3NTQyZTI2NjkyNTM0NjZiIHJlbGVhc2UzMS1tYWludAorNzkyMTYgOWVhYmJhNmRlZDA5NjJiMWE4ZTFlOTUzMjQyMWQ0MzZhNWJmMjA1ZSByZWxlYXNlMjYtbWFpbnQKKzc5MjE3IDQ1ZDIyODRjYzA2M2RlNWM5M2RkNDMzYmQ1YzI3NTkyZTM3MTg3ZmYgcmVsZWFzZTI2LW1haW50Cis3OTIxOCA3Njc4MTEzODVmYTZmZGY3ODZkNmVmZGZhZmE3NWZiMmRkNzY0MTAyIGxlZ2FjeS10cnVuaworNzkyMTkgZGI5NjFiYTM3Y2ZlNDQ0NjljNjhlNTIyZmZmYmU5NTFlZmE2YjIzYyBsZWdhY3ktdHJ1bmsKKzc5MjIwIGVmMWYzODhmNDgzZmI4NTAwMTZhNjAwM2RjZjEwYWFiN2ZjOWUwN2MgcmVsZWFzZTI2LW1haW50Cis3OTIyMSBjNjk0NjE4ZGFiNTQzYzJmODcwYzFhMjYwMTYxZTFkMTcwMjBlMGEwIHB5M2sKKzc5MjIyIGM5MmNhOGJhMWQ5NzUwZjY1OTcwNzJhOGY1OWQxYWJlNmI3Y2Q2NzIgcmVsZWFzZTMxLW1haW50Cis3OTIyMyBkMTM5OGZmMDFhMDc0YjRjMDE5NDc4NzZhNjZkYzA5OGYyODQzZmZlIHJlbGVhc2UyNi1tYWludAorNzkyMjQgYWMyMzE0YjVmOTYyODgyNTU2OTI2ZjVlOTE3OWQ3MWIxNmU2MDUxNCByZWxlYXNlMjYtbWFpbnQKKzc5MjI1IDUzZGJkODk2YzZjNjkyZjQyNGMxNjUyMmYwYWI5OTg0MjQ1MzM0MjcgcmVsZWFzZTI2LW1haW50Cis3OTIyNiAxYmY0OGE1ZGRlYWQ1MzYzMzU0MTlhZTE1ZmJjZDJmZDhmMTZiZTlmIGxlZ2FjeS10cnVuaworNzkyMjcgZjk2YzgyOTNkZDdmODhkODdiZTgyM2YwNDM5NmUzMjZmM2I1NzlhZiByZWxlYXNlMjYtbWFpbnQKKzc5MjI4IGRiOTRhZWRlYjBlMDRhYTExYmU0ZjFkNTYxN2QxNjExZjhiZmU1NzYgbGVnYWN5LXRydW5rCis3OTIyOSA5ZjYxODc1MDA2NGVlY2RhZWQ4NmE1OGQ5ZGZlMWUzYThhYTc1ZDk1IHJlbGVhc2UyNi1tYWludAorNzkyMzAgMGQxY2RkMTRjOWZhMTk2MThiZWE1ZjZjZGFkMjc5OWFhOTc5OGZiMyBsZWdhY3ktdHJ1bmsKKzc5MjMxIGEwYjZmMjg3MTFlNWVlODNlNGFhM2EzYTU2ZGU1ZTY3NTU5NGFjNmQgcmVsZWFzZTI2LW1haW50Cis3OTIzMiAwYzM0NDgyN2UwNDhmMjY5MzcyZmU2MjNiMGQ0NWU5YmQ5NjUxMjU2IGxlZ2FjeS10cnVuaworNzkyMzMgYzdhNjE1NDQ2MGZiZGE5ZWRiN2U5YTc3MDgzYzA4NTlmNjFhMjljZSBsZWdhY3ktdHJ1bmsKKzc5MjM0IDkyZjI1NjE3NDE1NDFhNDE4MWIwY2QwY2JhM2M0YWY4MmE3MjExYjAgcmVsZWFzZTMxLW1haW50Cis3OTIzNSA2NTFhOGU1YzQ2MGZhOWQyMGI4M2RlYTMwZTQxYThkM2ViMzYzMTExIGxlZ2FjeS10cnVuaworNzkyMzYgYzA3M2YzYzMyNzZlZjNkZjRmYWFiOGJjOTNjZmI4OTFmZmE5YmMwMiByZWxlYXNlMzEtbWFpbnQKKzc5MjM3IGRiYWQxYzA2NjhjOWY4Y2ZkODM0YzhmMzkxYjJiNjYyZjJkOTM5NDkgbGVnYWN5LXRydW5rCis3OTIzOCA3ZTNiNDkwODc3Y2VjZGJhNjg3ODQ1OGI2YmU0MDcyYWFkNmFlZGUwIHJlbGVhc2UzMS1tYWludAorNzkyMzkgZWM2YTk5NWVjZmJmODI0YjcyYmY2MWExZWQxZWNlOTQ0YzUwNjE1YSBweTNrCis3OTI0MCA5NzE0ZjhhNzdiMTYwZmI2MWVhMzY5ZGQ1MGYyNDNjN2UzZDZhN2Q5IHJlbGVhc2UzMS1tYWludAorNzkyNDEgYmFjOGEwNDI3MGZjZjE2M2FhYjIwNGM5MjRkZTg0MzY4Mjc3YzhiNyByZWxlYXNlMzEtbWFpbnQKKzc5MjQyIDQ4ZjQwYTE3ODVjYWFmMmYzYWVhNDdlODVkYTU0N2MxZmJkYjg5NTYgcHkzaworNzkyNDMgNDFiMjI1MDY3ZjRkMTI4NzY1MzAyMGNkZmNhM2FiNWZiMmE1NGEwNyBweTNrCis3OTI0NCBkMGJkZDA5ODU2Mzc0ODY2YWRlNTUwZDhlOTQ5NDg1YzU2YzEzMWNmIHB5M2sKKzc5MjQ1IDM4MzNjZjMzY2E2MTc0OTcxMjVlYTllZjJmNjE2YzljYTU2OGQyMDggcHkzaworNzkyNDYgNDI5M2MzMzY2OGRmN2Q2MjZlMzRmNmIwODg2MGMzOGZkY2ZiNTAxYiByZWxlYXNlMzEtbWFpbnQKKzc5MjQ3IGMyZDJlMjZiY2Y3ZmQyNWZlOTFhNDNmMWNiODc4MzQyNWJmMDAwMmEgcmVsZWFzZTMxLW1haW50Cis3OTI0OCA2N2YzZjdlNTM2NmJjN2UzYjljMTU2YjFmYTdkMzlhNDcwMTQwYjg2IHJlbGVhc2UyNi1tYWludAorNzkyNDkgYTM2NmQ2MzFhNjI5YTRhY2E2MDdmZjQzYTFhOTU0ZDZmM2FjY2JjMiByZWxlYXNlMzEtbWFpbnQKKzc5MjUwIGUxNmEyN2I1NTJhNmUzNDRlNWM0MDM0ZDMxODk2YmQ3YmRjZWUwNzMgcmVsZWFzZTMxLW1haW50Cis3OTI1MSBmYmFjZjk3MmZhNDRlNjk1NmE5NGVmYTVjYTJlMjMyZTU3ZjQxMGJhIHB5M2sKKzc5MjUyIDdlNmQ3MTUxZmRlODc0Y2E2ZDFiM2MwMzEyZWY4OWNlNTBlNjM0ZjkgcHkzaworNzkyNTMgMmQyZjIzODcyZDkwYTEwMDMwY2NiZGU1ZmQwZWJkMGZkY2MxNzFiZiBweTNrCis3OTI1NSBjNTNmNmEzZDJkM2IwYmU0MTdjM2E1NWU5ZTczOTExNGFhYjNjODY3IHB5M2sKKzc5MjU2IDEzYTQ0ODAxMmE4NGU3ZDMxZTI4MWFkZTBmOTUwYzVjY2UxMmY5ZGUgcHkzaworNzkyNTcgODI2ZDA1NDY5MGNiOGRhNmE1ODNjOGJhZDU1NWViNzdhNDlhNzQwOSBweTNrCis3OTI1OCBkOWI4ZjI3M2FiOGRhNmQxNjBjODI5ZjhhODNhMGQwMjA2YTEyZWVjIHB5M2sKKzc5MjU5IDkwMjE3YTg2NjQyZDA3YmFlMDI2NTlhYjNkMjE3YWJlOTk2YzMyM2UgcHkzaworNzkyNjAgN2Y4MTZmNmI1ZDBiMDk0MDc0MTcxMGM2YTBlZGJmM2U0YTE4OTU0MSBweTNrCis3OTI2MSA1YzA5MmQ0YjQ5OWNmMjc4Y2ZlZDM1NjZjYWY0OTU4ZmZjNTY2MGQ1IHJlbGVhc2UzMS1tYWludAorNzkyNjIgODFkYzAyMjk4NjE0YmExNmQ1MjFlYmZmMWI1MmVlZjQ1OTg3ZmYyZSBweTNrCis3OTI2MyAyODU4Y2FlNTQwZTQxMWI4MjAxNzRiOTk0ODk4ZmRhMTVlMTI1NzkwIGxlZ2FjeS10cnVuaworNzkyNjQgZjkwOTczOTYyZWFmMWM0MWM0NGVjNGE3N2VmZjRkZDVjMDU1MjM5OSBweTNrCis3OTI2NSA4NGNjMTNhMTQ0ZmZiZDUyMjhhNTA2MDY2MWQyYTFhZmFkOWY5ODU1IGxlZ2FjeS10cnVuaworNzkyNjYgYjRkOGZhNGQwMDQ5YzNhZDYwM2M3ZjYxNDg4ODgzNjdhODM5OGYyZCBsZWdhY3ktdHJ1bmsKKzc5MjY3IDY1N2QwMmE1MDNmYTVkNTYzZjA2YTFhODY0YWM5MWFhZjA4ZDc3MzcgcHkzaworNzkyNjggZWIwZmY3MTNhNWU5YzE0ZWM4OTdlMGI2ZGFlMjcxYzE2YjQzN2JkNyBsZWdhY3ktdHJ1bmsKKzc5MjY5IDM3YzBlMjhkMWFkNGVmZTMxMDAwNGQzZTljM2QwYWJkMTQyZDM0ZmIgcHkzaworNzkyNzAgMDE2MTk2NDY0OWMzOGE2NGRhNjA3OTI3ZWYzOGUzMDBlMmZmYWE0MiBsZWdhY3ktdHJ1bmsKKzc5MjcxIDIyOWYyNTJiY2U3NzM2ZTY2NDdjMzg2NTYyM2U1NjA5ODgxNjM0Y2UgcHkzaworNzkyNzIgMTA2YmVlM2YxZmU1MTYzNmUxMWE2YzYwOTNlODVmMmQyZTdmYzdmYSByZWxlYXNlMzEtbWFpbnQKKzc5MjczIDhjM2IxMjBmMjU5NjJkZWMwYTZkNmU5M2ExMTQ2YzE2MTI5ZjE5OTQgcHkzaworNzkyNzQgM2RjNjg4MmE3MjdkNzNhNjZkOWU0ZDYyZWJhNmJiODc3MGQyYjY3OCBsZWdhY3ktdHJ1bmsKKzc5Mjc1IDc2OTgxZWU1MGI0ODJmZWIzN2RjODNmOTY5ODUzMDcwMjIxYjE1MzEgcHkzaworNzkyNzYgMmQ2MTc4NDgwY2M3MTI2YTdlY2M0YTI2N2I3YzYyYTNlNGQzMTU5ZiBweTNrCis3OTI3NyAzNmU5ZjM4ZThhM2MyZWVmMmVmMjZhY2MzZTQ1N2IyMGNlODVhODBlIHJlbGVhc2UzMS1tYWludAorNzkyNzggNTJjZjdlNjVkYWQxNGJhYjI2MWM4MDA4MzkzZTllMWU0ODAyZGRiMiBsZWdhY3ktdHJ1bmsKKzc5Mjc5IDViM2E2MDFlZDIwNWI1YjQwM2ZjMzUyMTgwOTlhMzgxZGRjYWYyZTAgbGVnYWN5LXRydW5rCis3OTI4MCAyYjYxZWVkMjhmYWU0ZTkxZDBiOWE3OTY1ZTYxODE2Mjc0MWI0M2RkIGxlZ2FjeS10cnVuaworNzkyODEgN2FkNTYyM2Y0MTMyMWRiNDViNTUzN2Q1MDJmYmEyNDIyMzZkYjY4YiBweTNrCis3OTI4MiA4NDQwNWMyMmU0YzdmZmQ5ODkxNTVkOGY2OGZiMDMxZWViYjUzY2EzIHJlbGVhc2UzMS1tYWludAorNzkyODMgNjE1MWQwOWNlMDM5NDkzMTEzZGNmOWVkMWVjMDkxMGY5N2NlOGRkYiByZWxlYXNlMjYtbWFpbnQKKzc5Mjg0IDE1ZGU1MzkwNzA3ZGE0NDY5NDAxMzE2NTc5NGJmOTNkZmFhYjc1NDIgbGVnYWN5LXRydW5rCis3OTI4NSA5NmEyNDFkNGEwYWIxNzEyNjE5NTFmNDA3MzhlZjE1Mzg1ZmZjMDhkIGxlZ2FjeS10cnVuaworNzkyODYgZTJhOTY5M2I1NTVlZDY4NTEyYzU3NDVmM2ZiZGQ2YWVmMTg5ZDI3YiBsZWdhY3ktdHJ1bmsKKzc5Mjg3IDVmNWQ0NzM2ZGU3NGFkNmRmZTIxZTZhMTI0NjUwZTJkOTBkODJiZmIgcHkzaworNzkyODggMjI0YjcwZDNkMWQ0NGU1NjAwYTgwNTJlODYwMzBlNDUwMTA2MjBmYSBsZWdhY3ktdHJ1bmsKKzc5Mjg5IGM5Mzc1MjFlZDcwOTJhODFmNzJkZjJlOGVmY2UyYjRmNDQwMzc0MjggcHkzaworNzkyOTAgOWZiZTIzNzBkYzAyMTdhOGQzOGMwOTk3MmY2OWI3N2U3NGY5ODQ2NyByZWxlYXNlMzEtbWFpbnQKKzc5MjkxIDdmNDM1YzM4NWRhMjVjNGY1Y2M4OWMzM2IxNzQ4ZmIzYjViZGVmYmQgcmVsZWFzZTI2LW1haW50Cis3OTI5MiAwMWI1NzUxNWYxOTU2ODQwN2JhNDJlZDgyMTJiZWRjOWVhNTNhMjY5IGxlZ2FjeS10cnVuaworNzkyOTMgODA2YThjYWZjOTk3N2FmN2Y1YjY3NjNjNWVlYzMyOGE0MTFjOGUzOCBsZWdhY3ktdHJ1bmsKKzc5Mjk0IDZkZjc5OWEyYzI0ZTRhMjQ2ZTJmODczNmVhM2QyMmE0NWJkODFjOGMgbGVnYWN5LXRydW5rCis3OTI5NSBjZmM1NzcwMmFmN2ZkOTViOWEyNTljNjNjNzQ1MTVlMTNiNTIzYWYxIGxlZ2FjeS10cnVuaworNzkyOTYgNzY3YjA4MzE2NTllMDI3YTY5YzY2NDVhNTE1MGIwMzg1YmYxMWIxZiBsZWdhY3ktdHJ1bmsKKzc5Mjk3IGYwMDE0NTU0MTY2ZjkzYzNiZDc2OTc3MzBhZmQyZDU4OWRkNjg2ZTYgbGVnYWN5LXRydW5rCis3OTI5OCBiNzg3MmIwZThhYjI0MWUzNzlkZDQ5NTc3NjY4ZmUxNjAzMThhZWY2IHB5M2sKKzc5Mjk5IDczY2FhMzYxZjljZGUxNGJjMmE4MTE1MzhjOTY2NjU3M2IzY2M0MjQgbGVnYWN5LXRydW5rCis3OTMwMCBlM2ZkZmRiMWE4ZmY4ZmM2YWQ2MjhmMGU5ODQyYzg4OWE5NjY5ZGJjIHJlbGVhc2UyNi1tYWludAorNzkzMDEgMmUwZDU4YWRhZGJlMGViNDM4YTZkNWIxYmYxMTBmMGZkN2NmMDQwZSBweTNrCis3OTMwMiAxZGMxODQxMmE3ZWU1ZjAzN2RkMWIwYmVmZTU1NGE0YmExN2NhOWRlIHJlbGVhc2UzMS1tYWludAorNzkzMDMgM2M0ZGZlODZlYzJiNjQ4MjRhZWJiMTVkZDcyNGNmNzNmZmEwZDIwYiBweTNrLWppdAorNzkzMDYgMGExMjNjZGVkMmM5NzNiN2IxZmE5YTFmZjhmNTJiYWQzMWU2YTI3NyBsZWdhY3ktdHJ1bmsKKzc5MzA3IDgwYmVlYzhmYjc0MDNmMjA2OWIyMGNhMjA5YjYzNDY5NmU0YjU0ZDQgbGVnYWN5LXRydW5rCis3OTMwOCA1YjY3OWMyNDllM2MxY2Q2NzBlYmQ1NTBlNzcxMWE1ODY5MTc3YTgxIHJlbGVhc2UyNi1tYWludAorNzkzMTAgNDc3ZDM2ZTVkOTEzOTVlMTNkNDMwYjY4ZDgzZTg1NDc4MDdhMGZmMSBsZWdhY3ktdHJ1bmsKKzc5MzExIDhmMDE2YTgwMTY0MmY5ZjkzZTgyY2NhZTcwN2UzYmJjY2E2MzVlYzYgbGVnYWN5LXRydW5rCis3OTMxMiBlMDBkZDA3MDU2YWFmMzk3MmRhYzdjZjJiZGYyODZkMDJlN2U3ZWMxIHJlbGVhc2UyNi1tYWludAorNzkzMTQgMGY0MmYzNGMxNmU4MmIxMGMzMzNjZGRiMmU4MDY3Nzk4NWZjNjM3MCBsZWdhY3ktdHJ1bmsKKzc5MzE1IDY1ZmY1MjZlMDVlYmJkNTUyNGZkYTY5YWQ0MmJhMDI3NmU0YjBjY2IgcHkzaworNzkzMTYgY2Q5ODQ4Y2YxODQ3YWRiMWNjYjk4NTEyYzU2MjA4ZmY5MGY4NDNjNyBsZWdhY3ktdHJ1bmsKKzc5MzE3IDMyNDRlZmI2ZDg4Zjg4YWFmMWJkZjZkMTZlZThjYjI0ZWVkN2M5MTEgcHkzaworNzkzMTggNTQzNTg4MDcxM2E3ODNmYTVhNjZhM2YxMmU0YWQ4ODdlNGViZjE2NyByZWxlYXNlMzEtbWFpbnQKKzc5MzE5IDE3ODE2OTU4ODZkY2U4ODdhYTcwZDc0MmU3NGNhMTk0YzMzYTNmNWIgcHkzaworNzkzMjAgNjg0Y2Q3MzgxNTM1YTVhMjA5MWE4YzQ2OTVkZDIwN2IyYzViZDcwYiBsZWdhY3ktdHJ1bmsKKzc5MzIxIDhlOTliNjAwMGYwZGZlMzNkMWQ5ZTUyMzJiOGFiZDlhOWYyMjdhMjYgcHkzaworNzkzMjIgYTlkYjUxY2YxZmJjNGRlZGQzNmZhZGY5NjU3MmRkMzFkNmE4ODg2NCByZWxlYXNlMjYtbWFpbnQKKzc5MzIzIGY0MjhmNjZmN2U5YmI2NmQwOTA4M2NjZWNiNzFmMDc3OThhOTkxMDAgcmVsZWFzZTMxLW1haW50Cis3OTMyNSAxMmVlNDY0MzVkMDE3MWZhMDkwYjg3NTFmMDk3M2EyZDJmN2QzZTNmIGxlZ2FjeS10cnVuaworNzkzMjYgZmIzZGE1NmQ1NDhmMGQyODgyYTMwN2Q0NDNmOGUxNDdiZmQ3MGExYyByZWxlYXNlMjYtbWFpbnQKKzc5MzI3IDkyYzkzMjQ2MjViNmE1YTAwMWMwYzg2M2U2YTgyOWYzNzgyZGYyMjIgcHkzaworNzkzMjggOGU3NmU0NmMxOTk0NzU3ODkwNmQ3ZjQ0ZjY3NDExYTdmOTRkODkzOSByZWxlYXNlMzEtbWFpbnQKKzc5MzI5IGIwMWVmZjRlZmZkN2VmYTQyNTgzZDRlMDAzZTMzZjgyYTllZmU4ZTIgbGVnYWN5LXRydW5rCis3OTMzMCBmYTVlMjk5Y2UwOTFjNjc2ZjBjZDJhYTc2YTQ5NDRhZmY2MGU3MDMzIHJlbGVhc2UyNi1tYWludAorNzkzMzEgYTcwMjY0OGM4ZjQxMDQ5M2MyYWY0MDZkMDExMzliMmUyZGMxYmRmOCByZWxlYXNlMjYtbWFpbnQKKzc5MzMyIDNiYTIzN2EzMjZjMjdiOWNiZWNjMzA0ZGZmYzU0NzU4MzMwZWJkNjEgcmVsZWFzZTMxLW1haW50Cis3OTMzMyA1NmRkNWQ1MDcwYTVhNDU0MWM3ZTU5ZWFkZDJmYTVhZGIzODk4MWFjIHB5M2sKKzc5MzM0IGIwZWI5ZjZmMmQxMGIxZjMyOTViNjhlMzQ0MWVhNmJjMzIwNDJhN2QgbGVnYWN5LXRydW5rCis3OTMzNSBmMjBlOGI5MWY2ZThkYTk5MmIxZjFhNzdjZjU3NDNlNzQ3NGU3M2I5IHJlbGVhc2UzMS1tYWludAorNzkzMzYgMTAyNjIzZDY4NDNmYzQ5MWQxZGZlZTE2ZjI3ZjE5OTFmN2U4OTE5MiByZWxlYXNlMjYtbWFpbnQKKzc5MzM3IDZlMWRhZDg1MzAwN2EyYTM0ZWJiZjJlZjUwZTIzZjg3NmFkMWQyNDIgcmVsZWFzZTI2LW1haW50Cis3OTMzOCA2NjU5NWQ0ODRlYThkNWZjNzc2NDA2MWQ4MjgzZjA1YTEwMDM3ZmI4IHJlbGVhc2UyNi1tYWludAorNzkzMzkgNDk4NmNmMGE5MWI4ZTljYmNmNGZlZTZiNDk1MjcxY2RkZDAzYWM1YSByZWxlYXNlMjYtbWFpbnQKKzc5MzQwIGU5Yjk1OGU4MzkxYmQyZTM0ODRhOGFjYjE3MWE5YjZiMjQ1MDEzNDQgcmVsZWFzZTI2LW1haW50Cis3OTM0MSAxNTU2ZTY5N2IyZDcwYjFhMzYwNGUyNjJiMTM4MWQ5YjJmOTkzOGQ0IHJlbGVhc2UyNi1tYWludAorNzkzNDIgZjg0ZjgzOTYzYTc4YWQ2NDM0Mzg2YjE2OTViYzQ0YjUxMzQ5OTk5OSByZWxlYXNlMjYtbWFpbnQKKzc5MzQzIDI3Zjk3MjQ0Njk4ZWRhMDYwOTI1Mzk0Y2VlZTEzYzU1ZDNkYTU3YWUgcmVsZWFzZTI2LW1haW50Cis3OTM0NCBiMjE0Y2E4ZWI2YmQwYWJlNWYxMWUwM2U1ZjVmNWUxNTRlODYyYjY5IGxlZ2FjeS10cnVuaworNzkzNDUgNTJkODQ1ODMxYWU4NjRlMDBkNTJkMmI5MDVlZTI1MzdiMGZmMTcyOCByZWxlYXNlMjYtbWFpbnQKKzc5MzQ2IDI4OTAwNmRjNDZlZTI0YjQ2NjJiYTE0YWY5ZjE4OWU3MjNjMDBlYjcgbGVnYWN5LXRydW5rCis3OTM0NyA4MWI3NTA5MjQwOTE2ZWRjNjI3ZTcxMjNkMWQ2ZjU1MzgxMDI3MTBiIHJlbGVhc2UzMS1tYWludAorNzkzNDggOTg4ZTA0NTdlMzEzMzk2Y2Q1MTQ1OGEwYmM0ZGZkYTViMjk2NTVlNSByZWxlYXNlMjYtbWFpbnQKKzc5MzQ5IDcyMDExODEzNjBmZGYyN2QwZDE1YzQzNTRiNzU1MjRhMjRjZmI3NmMgbGVnYWN5LXRydW5rCis3OTM1MCAzN2RhOWJjNDYxNzQyZmM0ZTQwNjhkODY3M2FjZjljZmI2Mjk1NTljIGxlZ2FjeS10cnVuaworNzkzNTEgY2M4ZTM2OTYyYmFjZTZjNTM5ZjIyNWMxMTA4NWU4MzE5NjU0MDNiNiBsZWdhY3ktdHJ1bmsKKzc5MzUyIDk3NjI4NDg0OWU5ZDgxNDEwY2UwNjRiMTllZTFmZDViZmNiZDZlNDcgcHkzaworNzkzNTMgZDYwYmZiMWI5YzA1MmU3M2U4NDAzN2UxYThiZmJkOWExODFkMjM2MyByZWxlYXNlMjYtbWFpbnQKKzc5MzU0IGU5MWEwODZiNDE3ODNlNzM3NGNkNTg1OWJiOTg2ZDlkODQ5YmI3YTQgcmVsZWFzZTMxLW1haW50Cis3OTM1NSA1YWFjYzc2ODBkM2Y3MmJmZjJjNjI1NWU3ZTVjOWJkMTIxZDg2OWQ3IHB5M2staml0Cis3OTM1NiA0NDY5NjQ4MmFjNDJhYmNlNmI4ZThhNDk0NWE5ZTZkODcwZmViODQ0IHB5M2staml0Cis3OTM1OCAxZTc0MWViMzBiMTcwNGEzNTM2ZDg2NzE4YTRjMTY2ZmQ0ZjQ2NmMyIGxlZ2FjeS10cnVuaworNzkzNTkgNjU3ZTdkMjEzMDUyODljYzQwMWJkZTJlOWJjZDc0NGFlY2ZhYzMyYiByZWxlYXNlMjYtbWFpbnQKKzc5MzYwIDUwNWNmZjEyNWEwM2M2OTk3YTg1ODcyMDhmZWY5YjAwNzVkMTZmMzQgcHkzaworNzkzNjEgMDMxNmU2YTI4YTU1MzU4NzFiM2FiN2M1MzU5ZmM2YmU3YWQzMGZkYiByZWxlYXNlMzEtbWFpbnQKKzc5MzYyIGRlODRhNmQwZTY5NzBjMGU4OTBjY2Q1NzlhYjZlYjFmNzQ4ZjEyYTIgbGVnYWN5LXRydW5rCis3OTM2MyA0YmM4Zjk2NTNlOGUyYmQ3M2E3MGQxOWFhZjkyMmU5MDVhNDAyOTBjIHJlbGVhc2UyNi1tYWludAorNzkzNjQgNTk5M2RhNmQyNDA5NTE1MWEzMTYxMjRmY2E3NzRkNWI1ZTcyNTY1MSBweTNrCis3OTM2NSAxOTU3YzI4OTQyOTI1YmI4ZGVmZmJhZWJhMDQyNzY1NmJkNjY0OWVmIHJlbGVhc2UzMS1tYWludAorNzkzNjYgMDNlYWI5OThiMDdhMTVhMjY3OGRhNGQwODdhODY2MWZlMTI1MzBhZCBweTNrLWppdAorNzkzNjcgNjJmYjA4NmEzOTc1ODJhMjA2ZmZlMDcwNWE1OGJkYWIwYzcwN2IyNiBweTNrLWppdAorNzkzNjggY2QwY2E1NmI3ODgwZThjNDVmYTQ5NjY3MDUxZGQ2ZGM3OWM5NTU4ZSBweTNrCis3OTM2OSAyM2RhNTY2MDdiMzNmYWVmOTAyZTJhOTQyMzNjM2RiZjRiMDcyZGZjIHJlbGVhc2UzMS1tYWludAorNzkzNzMgZDhmODU1MzMzZmI0OGI5ODY1MjMxMTliZGVkNDdiNDk0M2M2ZTcxNiBsZWdhY3ktdHJ1bmsKKzc5Mzc0IGQyZGVhYTcwZmFkYjQ1Y2M0MDE3NDljZGY2OTRiMTMyYWQyMWNiNmYgbGVnYWN5LXRydW5rCis3OTM3NSAwYWJmYTI2MDdmNTRlYjg2NTdlMzJkZjUzMjk0MTVmZDhlMmQ2ZmMzIHB5M2sKKzc5Mzc2IDkzNGNiZTczNjgwMzcyY2UyODU1YTI5OGY3MjRlMTgyMjQ3OGVjZWUgbGVnYWN5LXRydW5rCis3OTM3OCA1MzJkNzE0MjBmNDYxNTU4NTI0NGFlZGJkOTNiYzU1N2IwOTBjNWZmIGxlZ2FjeS10cnVuaworNzkzNzkgMjI5ZWE4Y2NjNTUzMDc1YzY0NDdmYWMyNjlkZGIzNjZlMTcwNjRiZCBsZWdhY3ktdHJ1bmsKKzc5MzgwIDgzZmE0Zjg5OTU2ODgyZjVlYjA3Y2E2NTI2ODk3MGRmNGI4MjAxYTYgcHkzaworNzkzODEgMTc5YzY0NzM4NjMzMGIxOGJkMjM2Njc1YTllZDIwYmZhMTM5NzZiNSBsZWdhY3ktdHJ1bmsKKzc5MzgyIDYyMzg1ZDliN2RhMDQzOGM4MjY2ZmEyNWUwOTA0NDcxYmMxMjc3ZjQgbGVnYWN5LXRydW5rCis3OTM4NCA3NDMwZmE3ZWVhOGNiOWY5MDA0MTNlOTU0NjVkMDFiNTI1ZmFkMWQxIGxlZ2FjeS10cnVuaworNzkzODUgNGNlYjVkYzM1Y2M2NWE2NGZhOTRiY2ExYzczZTY0NWY0YTU5NThhMyBsZWdhY3ktdHJ1bmsKKzc5Mzg2IGNhYzY2MWRiNzc5NWYxOWM2YmYwYjdmMWZlZTc3ZTk1OGQ2ZThjOTkgcHkzaworNzkzODcgNDk2ZDc2MzYwNzYzOTQ1YjZlMTJjOTgxYjljNTQwNGQzMWY1NGFlNiBsZWdhY3ktdHJ1bmsKKzc5Mzg4IDJlMDgxM2Q2NzM4ZGJmNGNhZTZhYjlkYzNlYTYzNjVkMjU1YmI3YTMgbGVnYWN5LXRydW5rCis3OTM4OSA3MjUxZTczN2E1ZDhjYWJkNmRiZjcyNGExNGI5ZjM3YTFjNzM4ODVlIHB5M2sKKzc5MzkwIDljYWFhZmQ1OTlkNjUzNDNiMTRmMDNlYjNmZTE1YjA0YzEzOTg4ZGQgcmVsZWFzZTI2LW1haW50Cis3OTM5MSBjM2MzNGY4NDc5OThhMDA2NjU3NzYwZDA3NmZjOGJlODI2ODhlN2U3IHJlbGVhc2UzMS1tYWludAorNzkzOTIgNGI4ZGVjYjQ1NzJjZDcwMmU4Yjc4MDI1ODI5MzM5OTE4MTIxNzNjNCBsZWdhY3ktdHJ1bmsKKzc5MzkzIGU4YjA4ZDc3M2U3ODVmODcyZDI1Y2NjMDg2ZDRkMWE0ODBjZDE1ZDEgcHkzaworNzkzOTQgMDMwOTYyMDkyMzczZTk1NDI5NWU5MGMxOWFkZGI3ODU1YzBlOTY3OCByZWxlYXNlMzEtbWFpbnQKKzc5Mzk1IDI0OGE3YWRlNDQ0ZmJlZjU0ZjE1YjhjNDU4NjVjNjcxMzAwNWIwMWMgbGVnYWN5LXRydW5rCis3OTM5NiBlZDlhM2RiYzMxMmU5YjBhNTJiNmY4MmU3MjBjZGFkNTMxMDBjZjc5IHJlbGVhc2UyNi1tYWludAorNzkzOTcgZDExZmJjNzk2NDk5YTMzOGQwNDAyYjg4OWE5MDRkYTk1NDEzOGMzOSBsZWdhY3ktdHJ1bmsKKzc5Mzk4IGQ2ODkzYzcwZGY2YTQ3ZDE4MWFjNTdjM2I2ODZlNTU4NGRkNWJjMDAgcHkzaworNzkzOTkgZWIxYjY0NjhlOTc3NDZmNjMwOTdmMmY4MDZhM2M5ZTk5YmUzY2Q2YyByZWxlYXNlMzEtbWFpbnQKKzc5NDAwIDVkNTQ2OTJiNmRjM2UzZTNlOWQ0YzA5NjhjZjIyZjUwODM3MTE2M2YgcHkzaworNzk0MDEgMDlhN2ExOWU3Y2I5YjA5MzhmMDJlMDk3ZWY1N2M0MTczNTA3ZTgxYiBweTNrCis3OTQwMiAzYjRlOWZhOWMxZThkYzFhMzFhNDRjODllNzU2ODZjYzcyMzcxMTlkIGxlZ2FjeS10cnVuaworNzk0MDMgNWY5YTcwNjRkNjJhYTAwNTkzNjAzMDE0NTNkODkxMjM1ODY1MGFiMCBsZWdhY3ktdHJ1bmsKKzc5NDA0IDRlZjY1ZTIzOTZhZTlhNWVlYWM0NGVkNzQyNTVlZGI5NzY3ZGEwOWYgcmVsZWFzZTMxLW1haW50Cis3OTQwNSA0Zjg0MWRmOGM5NzY2ZjkzNWU5OTM3NGMzYjRiODBlNzA2N2UxNmQ0IHJlbGVhc2UyNi1tYWludAorNzk0MDYgZTVkZDlmOTg2NDQwYzg4MmZiZjRjMGU5OWU3MTdhNThlZjJkOGZjZiBsZWdhY3ktdHJ1bmsKKzc5NDA3IDBkZmQ2MjA3NmRlZDQxZTIwOWY1ODM0MWE2NDA3NmY1NWUxNDdlMjkgcHkzaworNzk0MDggZTFhODRmMjIxNTM3ZDNiMzY3NTM4MmY5N2NlMWRhZWI0MjU1YzliMiBsZWdhY3ktdHJ1bmsKKzc5NDA5IDFhYTY4NDY3MmNlNmZhNjZiNDQzOTk1MDQzODFmOWUzMjY1MjE1MGYgcHkzaworNzk0MTAgZTE4ZDM4MjAxMjgwNTc3ZTE0MmY0ODEzNzAyM2U5OWQzNzdlZjJiYyBsZWdhY3ktdHJ1bmsKKzc5NDExIGM5OWMzNzljZWQyZmMwNWYyOTcyN2JhMjZmOGEwMjhmY2RmZTJhMWEgcHkzaworNzk0MTIgZDZjYTljZDFiNDExZTY1MTEwMTFhNWQ5MWU3MzgyYmI3ZTFhOTBjOCBsZWdhY3ktdHJ1bmsKKzc5NDEzIDczMjkzMTJmY2JkN2E1MjRkYWIwM2JiYWJiYjU2ZmRiOTcwZTc4YTggbGVnYWN5LXRydW5rCis3OTQxNCBmY2MxMDgzM2ExYzliNWE1ZjBlZGE5M2NhOTllYzdjZmQ4NTE4NjE0IHB5M2sKKzc5NDIwIGUyNzcwYmYzMmRjZjY4Mzk3ZDJjNWNiZmQ2YTU2OWMxNzk5MDZhNmYgcHkzaworNzk0MjEgOTM4Mjg0Y2RhMTViZjU4MTIyMjAzZWVkZjdkOTAxN2Q0N2UyNDIzMyByZWxlYXNlMzEtbWFpbnQKKzc5NDI0IDE0NDMyNzI0ZDBmZTdmYWFiYTA5OTIzYzdjZTIyYWY5MzFlMDRhMGMgYnJhbmNoX2xpYmZmaS0zXzBfMTAtd2luCis3OTQyNSBlNmI5ZWY0OWUzM2Y5ZjNiMTFmNjQ3NzlkN2U2OGQ0ODkzODk1NzE5IGxlZ2FjeS10cnVuaworNzk0MjYgZTBiOGVjYTIyNTI5MzU5NjllMmRiNDdlZjEwY2YzOTEwY2Q5ZGViZSBsZWdhY3ktdHJ1bmsKKzc5NDI3IDM4ZTQxMDA1MGRjN2MxNWQ1ZTA0YjBmZjI4ZGY3MWQ1NDNjZWYyNjMgbGVnYWN5LXRydW5rCis3OTQyOCAxNmE3ZDMyNjA1YmI4MzJkYTBiMTA1MjQ4ZDRlN2IzMjkyZDRlNWI1IGxlZ2FjeS10cnVuaworNzk0MjkgMWEwZTIxNzA2M2I3NTQyOGM3YWQyMGQwMTg4Njk4ZGIwNWYxNDAwMSBweTNrCis3OTQzMCA4NzAxNTgxZmI0NTUwNjM3MzdjOWIxMGVhYTYzNWM0NDMxNDc3YTlhIGxlZ2FjeS10cnVuaworNzk0MzEgMTg4Zjg2MDc1OWMxNDA0ODgzOTYwZDNjN2ZmOWEzYWExMWFjYzQ5ZiByZWxlYXNlMjYtbWFpbnQKKzc5NDMyIGQ4MTg3ZWQ5NDMyNTYwZTM3M2M0YWM5MjUyZDcwMGVmMDMzYTJjNjEgbGVnYWN5LXRydW5rCis3OTQzMyBiOTA3MjJkM2FlZmEwYmViZWQ2NmZkNmI3ZTVjNGRkNGJkOTc3MjgwIGxlZ2FjeS10cnVuaworNzk0MzQgODI2MzdlNjY4Y2ExY2NiNmI0MWMwYTAyZTFkNDA0NDZmNjM2NTY3ZCBweTNrCis3OTQzNSAwMzBkNmJmMWQ5OTU2Zjc3MGY5ODFjZDJmYmM2ZDc2NTJjNzYxYzRiIHJlbGVhc2UzMS1tYWludAorNzk0MzYgOTVhNzhhMmQ3MDBkODBjYjgwNzM5NDM2OGEzN2E4ZWQ5YWQ1NGQyZiBsZWdhY3ktdHJ1bmsKKzc5NDM3IDk0MjFmNjdiNmMyYTE0NjBiNWFhYjNhMDQwM2U2OTQ0ZDVmMmQ1NzIgbGVnYWN5LXRydW5rCis3OTQ0MiAyMGJhZjYzYjA5NGNkMGJkNjcyOWU0MTYwNmJlM2MxYmE3OWJlOGM1IGxlZ2FjeS10cnVuaworNzk0NDMgMmVjYjhlOTk2MGZjM2E4NzFiNzU0MjI2NjA4YzAzMmY3NjQyMDMyOSBsZWdhY3ktdHJ1bmsKKzc5NDQ4IGM4ZWNhYmJlODAxNjk5OTA0YjExNTAyNzc2YTI0MTQ5NDkxODViYjMgbGVnYWN5LXRydW5rCis3OTQ0OSBlNDA3ZWJhOGUzOGQ0NDlmODE4MzI5M2JlMjk1MmFkMmJkZmY2M2ZkIHB5M2sKKzc5NDUwIGFjYjFkYzY2OGE5N2JiOGU0MzA5ZjZiMTljM2Y1ZTkxZGVkMDYyOTIgbGVnYWN5LXRydW5rCis3OTQ1MSA0YmJhZmRmNGQ1YzFiZWJiMmEyMDYzYzEwYzEzZmRjODA0NDgwZTg4IHJlbGVhc2UyNi1tYWludAorNzk0NTIgNjYwYjlmMjRlZGFjOGUzNzE1OTQ5ZTc2NDY5ZThkNTZjMzcwZTMyZSBweTNrCis3OTQ1MyA1MjZiYjA4MmMwNTUyNWM5M2ZmZjExYjEyOTk4ZGVkNDUzYjJiMGFkIHJlbGVhc2UzMS1tYWludAorNzk0NTQgNTY0MTY5MTUxNTEwY2ZlOTFmYmUwYjg3ZGIyMTcyZDM3MTQxOTdiMSBweTNrCis3OTQ1NSBlNWZlMmY2MjU5ODNjYzZmM2YzMWJkYzk4ZjMxYmFjYjE2MjY0N2I0IGxlZ2FjeS10cnVuaworNzk0NTYgMGY2YTBiMWRiNGUyYjFlYzBiN2M5NDk1YWYxZWVhMTYzMmNmYzkzMiBweTNrCis3OTQ1NyBiMjI3ZGI5YTAwMjk3NDRiYmNmYjEyMjA4ZWIwNzg2NzBmOTExMTAwIGxlZ2FjeS10cnVuaworNzk0NTggOGM1YzVlODZmYjIyN2E2MjdiNjhlMGMwNzc4MzllZTExNjlkYTgwNCBweTNrCis3OTQ1OSAwZTdhZTUzYjRlNzkwMjRjY2FlNmEzM2RhYWM5N2IyNjkxNTdiNzk1IHJlbGVhc2UyNi1tYWludAorNzk0NjAgZTgxMWFhMDk0ZjE5NDI5NTdlNDhkYjY4OWYyNzE4YjIyM2E5Zjk3NiByZWxlYXNlMzEtbWFpbnQKKzc5NDYxIDkxNzBhYTk0NGYyOTMzNDViZDZmOGRhNzZjN2FhMDE5Y2E0ZGViNWUgcHkzaworNzk0NjIgZTExODNhMTM3ZDhjYThmNGQ3YjE1YTc1MWQ1ZDY4MWE0MWY0Y2RlNCBweTNrCis3OTQ2MyBhYjMwN2Y3ZGVmYTFlYzc5ZDNiNmE2ZDk5N2E1NjU4M2UyMDM4MTJiIHB5M2sKKzc5NDY0IDIyOTQ2ZDAwZWVjY2VmN2U0NmM3NGRlZWMzZTY1ODhhYTY0MjkwODcgbGVnYWN5LXRydW5rCis3OTQ2NSBmOTZhZDgwMDcxMmVlNjFmNGFhMTI5MGM1OTYzODEyY2I2ZTkxZGM0IHB5M2sKKzc5NDY2IDg2YjcxZjQwZThhYWUyNzA0ZDA4ZjVlNmU3Y2I3MmNhYjBmNGQ5YmMgcHkzaworNzk0NjcgNzFhNDVlY2M0ZGM5MTFlZDAzYmEyNzZiMzIwZjNkZDdhM2YwZTJiMSBweTNrCis3OTQ2OCAzMDllMmQzZThkY2MyMWFlNzBkMzQ4ZjViMDUwZmU4ZjZkOWI2YWMyIGxlZ2FjeS10cnVuaworNzk0NjkgOGU2YTE2MTU3ZmFmMWJkZjU0NGI0NTY3NTQ4ZTJlZGEzZDllZmE5ZCBweTNrCis3OTQ3MSBhMmFhNmRkZmU4ZTI5NThhY2E2ZTYyMzA0ZjU4MDE0YTNhOTIyZjMzIGxlZ2FjeS10cnVuaworNzk0NzIgZGI1YTNhMjc3YzBiNTgwZWJmNTFmYzRhMzE5MjAxZDA2ZDBjNTlhMSBweTNrCis3OTQ3MyBiYjJjYTFiNjMzMjFhNzhiNDEzMzQ3YWQ4ZjRjYWJlMGU0Y2U5NGEwIHB5M2sKKzc5NDc0IDQwZjc4N2IxNTFhYzZjMDUzNWE3MzU2ZTFmZDI2NDUxZTYzMjI2MzYgcHkzaworNzk0NzUgMmI2MzIxOTE1ZTkyYjYxYTZjODY5ZTc5NzQwOGQ1NmVhZDlkNjNhMiByZWxlYXNlMjYtbWFpbnQKKzc5NDc2IDBiYzA0NTI1YWY2MzhiZDAwNGIxMTA0NTVjZmQ1MzJkNjMzYmQxNDQgcmVsZWFzZTI2LW1haW50Cis3OTQ3NyA2MDAwOTYzMmVkMTE5ZjdiZGYzOTk4NWU2NzJiZDVjYTU5ZDZlYzgwIHJlbGVhc2UzMS1tYWludAorNzk0NzggOGVlMmJmODIxZjYyNjcxM2Y5OGJiNDlkN2JiNWQxMDQ0MzkxZThhZCByZWxlYXNlMzEtbWFpbnQKKzc5NDc5IGU2M2Q0Njc4ZmNhNzNmMjRkNDJlMTQ3MmZiYjZlYWE1NjkxOGVkOTcgcmVsZWFzZTMxLW1haW50Cis3OTQ4MCBiYjhiZDMzNThiY2EwMmNlNWE3MDFiYmI2YTdiNjQ4MWNhMDJlODJhIGxlZ2FjeS10cnVuaworNzk0ODEgYmVhNzVmZjY1MTE0NmRhYWQwMDJkNDFkODc4OTc2NzU2ZTUyYmRiYyBsZWdhY3ktdHJ1bmsKKzc5NDgyIGQ0OTM1MjQyNmRlNTEzMzNkMzdlNjY1MTQxOGNkZmIzMDAwOWVhNmMgcmVsZWFzZTI2LW1haW50Cis3OTQ4MyAyMTNhMGFlMmRiNjViMmUyNTE5OWUwMTA1YjQyZTA4MDgxOWJjNzYxIGxlZ2FjeS10cnVuaworNzk0ODQgMmEzMTBhNDQ4YTBhN2UyMDE0NWMyYmNkODkxZGI4Njg3YjMwYWEyYyBweTNrCis3OTQ4NSA1MWIyYWY5YzQ2OWViNGE5NTM2Y2QwOWRiMGIyODFkMTU5NGFiYTA5IHJlbGVhc2UzMS1tYWludAorNzk0ODYgMmQwNmM2YzdlNzMyN2RlYmRjZjZmYWNlMWZkZDA5NWNlZWQ4OGZkZSByZWxlYXNlMzAtbWFpbnQKKzc5NDkwIGJiYjM0MDUwMWYyOWZjMGYzMzY2MDQxMzdmMTUzOWEzZjAxNmQzMmYgcmVsZWFzZTMxLW1haW50Cis3OTQ5MSA5YjlmZDI5OTA3MmQ4ZmNjMzg0Njc1ZDg5YmY4NTRiYTVhMmE2NmE3IGJyYW5jaF9saWJmZmktM18wXzEwLXdpbgorNzk0OTIgYzNjODJkODA0MGQ2ZjRlZjY2M2JiZDkwYTVlNjVlODhkYTExZWZjZSByZWxlYXNlMjYtbWFpbnQKKzc5NDkzIDA0Y2MwNzViZGRmNWJiOTk2M2VmNTIwNTQyYWY3Nzk3YzJmYjUxN2MgbGVnYWN5LXRydW5rCis3OTQ5NCA2NmU3NTdkOGVhOTM0Y2VlYzFkNmI3MDc5NTk0ZTYwZjM0MWRlZGE1IGxlZ2FjeS10cnVuaworNzk0OTUgNzczOWFlZWZkYmMwMTQ0YzY5ZGI5NzZmOTJhOTNlMTAzOWE3OTZhMiByZWxlYXNlMjYtbWFpbnQKKzc5NDk2IGM5NmQyNzg2NzdhZjNjZDA4ZDhiZGMwYzQ4ZDY2MmNmY2RjODAzZTMgbGVnYWN5LXRydW5rCis3OTQ5NyAzMzI5YzA1ZTZlMzE5Mzc5Yjg4YWM0OTA5MWU0MDVkNzdjMTU3MjBjIGxlZ2FjeS10cnVuaworNzk0OTggZTRlNGJiZDM5YTIxM2NjZThjYmVkNzlhNzRhOWIyZTMwNzRhY2MzMCBsZWdhY3ktdHJ1bmsKKzc5NDk5IDQwYTJlN2FjOGE0N2UyMmEwMTU2Mzc1ZTlhNmI2MjU4Yjk3OGJlYzcgcHkzaworNzk1MDAgYTE0YTIwNWFiMWZiODQ5MDFkNWJlNmUxZmNkNjUxMWE0Y2Q4ZGM2MiBsZWdhY3ktdHJ1bmsKKzc5NTAxIGJjNjgxNGMzNGQ1ZjIwZTNlOTVhNDkwZTVkYTRhNmYzY2FlN2Q1ZjUgcHkzaworNzk1MDIgZjY5NzY5YWIwZWI4MTY2NzM1ZTU1ZDYzNmQ2OTE4OWM0N2Y5MzJmMiBsZWdhY3ktdHJ1bmsKKzc5NTAzIDVlMGZmNjUyODRmYTIwODliMDRlMzZjNjFiMjFhMjIzNzM2YzIxZTkgcHkzaworNzk1MDQgMWQwMDI3ZDM0YTUxZTIxYzk5MjI4NGViMzE1NDZiNzVkOTFiZmZjOSBsZWdhY3ktdHJ1bmsKKzc5NTA1IDEzNjE4Nzc1ODVmMmM0OTFlYmIwZTA3ZTZhMDU0MGM5MmMxNjVhNjMgcHkzaworNzk1MDYgYmYzYzQ4ZjI0MTdjNDQ3MTNkNDM0ODA5OGMwYWUxYTc4ODYxYTY5OCBweTNrCis3OTUwNyBkZGQ1NTA5NTFiODNmYjE3MGIwMWRlN2Y4OGYxYjczM2QxYTg1YTYyIHB5M2sKKzc5NTA4IDRkZDZlYjZiZTgyZmQ1MmYwYmU3NjhmZDM2ZTc4NTIxZTg0YzFhOGIgcHkzaworNzk1MDkgNjMyNjljNDE4NWM1MmU2OWQ2NTdmMmNiMGFjNDVjZjFjNDAxMzMwZiBsZWdhY3ktdHJ1bmsKKzc5NTEwIDBjMDI1ODRjNGU1MzRmZTdmMzg1YzE4MWY0NjMwMGYyZDA5NjM1Y2YgcmVsZWFzZTMxLW1haW50Cis3OTUxMSBhNjA5NTRlYjUxOGI5ODQ5YTkyNzMyNDQ4MDJkYjIxZTEyMzM1YzUyIGxlZ2FjeS10cnVuaworNzk1MTIgOTY1MWM4NGM1MjBkOWU4YmE1ZGM5MzM0NWU1ZWZlYTRlNmM5ZTU4MSByZWxlYXNlMzEtbWFpbnQKKzc5NTE0IDYwZjkxMjRmZGVhYzA1MTA4OWRlZDgwZTFlODE4NGUyOWJhMmVmOTUgcmVsZWFzZTI2LW1haW50Cis3OTUxNSA0MTlmZjcwMjQ0NzgzODllMGZmNTA4NmViZTRmNWE0NmFjMWVjOTU5IGxlZ2FjeS10cnVuaworNzk1MTggMzRkODIyMTk2ZDhiZDBkNmFiZDA4NjE4Yjk1ZDIxMjU3ZDIwNjA1NiBsZWdhY3ktdHJ1bmsKKzc5NTE5IGVmNmViYzA2YTc4NmRjMDBhMzg5MWY3OTQxZmVkZjA3OGQyMzkyNTYgcmVsZWFzZTI2LW1haW50Cis3OTUyMCBmZmU3Yzc5MWI1Yjk0ODc4ZjRhYWUzZTBkNzcxNzliNGUxNzIwNmM5IHB5M2sKKzc5NTIxIDEzMjMyMTJkYTE1NDAwNGFmZTcyODczY2E2ZjA0NmZhNWE1YWU5NGMgcmVsZWFzZTMxLW1haW50Cis3OTUyMiA1ZTllYWRjNzZlODdlZjdiZTZkMmFhYzQxZWFjYzU2ZmZjNDVmYzA3IGxlZ2FjeS10cnVuaworNzk1MjMgY2FkMTI2NDI4ZjQ4ZDc4Yjk3ZGE3NzFmYWI1ZDRiNzYyZDg5Yzg4YSByZWxlYXNlMjYtbWFpbnQKKzc5NTI0IDU3ZDhkN2YzMTdmNTAxYjQxNTVhOTk0NTIxMjFhMzI4Y2RlYTk1NmEgcmVsZWFzZTI2LW1haW50Cis3OTUyNSBmZDVjMGVhMjg3MGJhYzRiMGQxYzkyOTlmMDJjYmU3NWM0YWQwN2Q3IHB5M2sKKzc5NTI2IGU0Zjk2OTAxMmU2ODNjYWUyZWQ4OTE4MmM2ZTUxM2I4MWY0YjgyYjkgcmVsZWFzZTMxLW1haW50Cis3OTUyNyBkNTdjZjFhYTJkZDRkMDBjM2MzNzBhZTNkYzU5N2E4ZDAwNjMyNGM1IHJlbGVhc2UzMS1tYWludAorNzk1MjggOTllNTIzMTMyYWVhNDNkNzhhNzY0ZTEwNGM5MWM2MDc3OTQxYjQ1MCBsZWdhY3ktdHJ1bmsKKzc5NTI5IDg3YmMwZjEwODcwMjEzOTEwNzI5ZTUxYjMzMDk0YjJhYTA5YjAyOTQgbGVnYWN5LXRydW5rCis3OTUzMCBhMmU2Mjc4MjdiZjM1MDlhYjRhNjc4MWJmZmI2ZTNlODUyNzMwMTEwIHJlbGVhc2UyNi1tYWludAorNzk1MzEgMDFlOGIxM2ZhOTlhNTY1ZGM1YTllZTI1OWYwMTIzOGNlNjQ2MTY3MiBweTNrCis3OTUzMiBlY2I5YTY2MDliYjFjNTQ1MDliYjhjOGYxZjc3YTM4NjIyZjE3OGY1IHJlbGVhc2UzMS1tYWludAorNzk1MzMgNTkyMGY5YTVlMjJkOGQzM2MxMTI0NGI4MTVmZTIyMjhiNTMwZjkyNiBsZWdhY3ktdHJ1bmsKKzc5NTM0IDgzMjAyMmY2M2JjYmQ2NzU1NDA4ODE4ZDhhNjFiNmZhODY0YjMzYTIgbGVnYWN5LXRydW5rCis3OTUzNSA3YjhiYTAxOWNkMTViNTIwOTg3YTM4MTU5ZTNkYmVhZGE0Y2U4YzAyIGxlZ2FjeS10cnVuaworNzk1MzYgNGZjYWFkM2Y2NjliMjNmNmJlM2E3MDYxOTg1OGNhN2U4ZmJlNWNkNyBweTNrCis3OTUzNyA1NzBlYWUxNDgxZWI2MDExZmMwOWZjMmJjMzdlYzQ0ZWNhYzJhOGEzIGxlZ2FjeS10cnVuaworNzk1MzggYzM2ZjIzZGE4OGMxYWE1NDNmZDZjNDZhY2U2YTk2MjliZTNlNWIyZCBweTNrCis3OTUzOSAzNzQ4YmNhNGQ4Njk4YWIwN2M3NjA4NDEyNDFjYjE3ZDBkMDJiNzhjIGxlZ2FjeS10cnVuaworNzk1NDAgMjVhN2NlMDIzMDZjZGYxZDNjMTJiOWZmMjg3OTk1Yjk2ZWRiZWE0ZCBsZWdhY3ktdHJ1bmsKKzc5NTQxIGQwMGYyZWEyNWQyMGE0MWYyNDZkNjY4MGY1ZjMxYzdjN2QzMjNiZWYgbGVnYWN5LXRydW5rCis3OTU0MiA3YjY3YzM0MjkxN2NjZTY5MTA0N2E3YTUwMGJjMDFjYjg3YmVkZjQyIGxlZ2FjeS10cnVuaworNzk1NDMgMTNhODExMmVjYTUyZmMzY2Y0YzhkZTZiOWMzMTljZTllODEyMTNhYSBsZWdhY3ktdHJ1bmsKKzc5NTQ0IGE0ZGFkMjE4YzZlMzQ1Njg1ZDc1YTcyYTQxYTk3YzNiMjU1Y2I0N2IgcmVsZWFzZTI2LW1haW50Cis3OTU0NSAxZTJjOWZlYTdjYmUwMTBhNmRkYmViZjljMzE2M2RmMWNlNGFjMzg2IHB5M2sKKzc5NTQ2IDVjYzgyY2NlNDUyMTVmYzdlN2Y4YTMxZGZjOTJmM2EwZDA0ZWFiNjcgcmVsZWFzZTMxLW1haW50Cis3OTU0NyBjNzk2NWJkNWQyMDA0ZTJjN2YzMzI5ZGMyODRiNmM1NDgwMTMyMzY0IHJlbGVhc2UyNi1tYWludAorNzk1NDggNmRlM2RlM2FiNzFmNzUzNmE4YTEwOGZkNjVhYTQxOWQwN2M1MmJlNCBsZWdhY3ktdHJ1bmsKKzc5NTQ5IDg4MmQ2ODFkNTBhMDA0ZWVjNDQ2YTgyNzQwNzM3ODI0MTFkMzFhNTcgbGVnYWN5LXRydW5rCis3OTU1MCA1NGIwYTZmNzVlZDU3OTUwNmQ2YmEwYzg1MWM5ZDgwNmEzOTFhMzRjIHB5M2stY2RlY2ltYWwKKzc5NTUxIDc4ZTIwOTc3OTJiZWVhZDFjODJjOTQ5OWUxMzkwOWVhOTI1MWIyZmQgcHkzay1jZGVjaW1hbAorNzk1NTIgZmQ4ZmVmNmFmZWZkOGNkYmZkNGFjMjU1MjJjODg1YTcwMDg1ODkxMSBweTNrLWNkZWNpbWFsCis3OTU1MyBlOTVmODc1NWZmMWUzZjY2MzRmMmJlN2MyYTU1YzE5ZTNiMmU3YWQwIHB5M2sKKzc5NTU0IGI0ZGVhZWFiOTZlNzhkM2RjZTIzNTYzOTNkNTc5N2ViOTFiNmQ1ZGYgcmVsZWFzZTMxLW1haW50Cis3OTU1NSA2ZGY2YzE5ZmJhZTM1OGM0NTgxOGYzM2U4MzBhNjJlYjMzMjEzZjIzIGxlZ2FjeS10cnVuaworNzk1NTYgMDRlNzc1YjMzZTllMmEzN2VjNWIyMzU1NGE1ZDMxNDk4OGE3YjcxMyBweTNrCis3OTU1NyA5NjIwMWY0ODhjYzNjZTI4NGZlMDBiZjlhYjJmMGQzNzNkZWQyZjUxIGxlZ2FjeS10cnVuaworNzk1NTggYTQwNGUzNzAyZjc5ZjI4YzAyYzM5NmVjNTZhZTYxM2ZiYjhmOWYwNCBsZWdhY3ktdHJ1bmsKKzc5NTYwIGM4YTYwMWU3NDRjZjY4ODMwZGQ2NDMwZjYyMzdiY2FhNmU1NzFkMTYgcmVsZWFzZTI2LW1haW50Cis3OTU2MyBmMTcxNzEyODgwYzhlYmQyZjQ1MDYzODE2NTNlYTk2ODViZTYyOTI1IHB5M2staml0Cis3OTU2NCA2ZDM0MTVjMTViOGJmOTIwOGJjNDgwODRlMzc0MTljOWEwZTdhZjAwIHJlbGVhc2UzMS1tYWludAorNzk1NjUgMWJlYTU0MDRlMDg3YzBlNWZiNTM4MDcwMWJhOTRiOWNhOGZiZGJmMSBweTNrCis3OTU2OCA1MTJiODAyNTA3ODliNzcyOGMxNWViMDE4M2ZmMjdlYTViNzE0OTA4IHJlbGVhc2UyNi1tYWludAorNzk1NjkgMjQ3OGMzOGZlZmY3NDlmOGU2YWY1ODM2ZDZhN2I0N2E2NzVmMzdhNCBsZWdhY3ktdHJ1bmsKKzc5NTcwIDViYWQ4MThkMTRmMjg3M2YzOTM5ZmE3YjM2ZmY2OGFmMTVkM2JkMjUgcmVsZWFzZTMxLW1haW50Cis3OTU3MSAzZjQ0ODI1MjZmNTVhMjY4Nzg3YTAxZDI3OGIzNWY0ODY5Y2RjYzdmIHB5M2sKKzc5NTcyIDM4ODA2ZGYwNWQwOWQ2ZGVmOGM2NDc3ODRiOGE5MzQ5Mzg0ODliMTQgcmVsZWFzZTMxLW1haW50Cis3OTU3MyA0ZDlkOTc2MGM4OGJlZjZkNzAyMzM3N2U0YzI0ZGQwY2Q2NzQ4ODZlIHB5M2sKKzc5NTc0IDQxNWM0YmI0NWZlNjg3NzRmNGIwOGQ1ODZlODc4NzE1ZjQzOTRkZjUgcmVsZWFzZTI2LW1haW50Cis3OTU3NSBiNjQ3MzE1NGE3MGJjMzMxNWVlNWE3M2JhNzZlMGU0YWY0MjQxOGQyIGxlZ2FjeS10cnVuaworNzk1NzYgZWFiMzYxNjE3ZjZhN2QwNDE5ZGE0OGM5MTMxNjJjYzMyMjAxZjU0YiBsZWdhY3ktdHJ1bmsKKzc5NTc3IGJhYzRiMjg5Zjc5YWFkNTMwNmM4NDY2NjgxM2U2NzYyM2Y4MDYyNzcgbGVnYWN5LXRydW5rCis3OTU3OCBlYjlmZGE5MGRhNmVkODRkNTQ3Y2I5YzU5YzYzMWQ2N2UzMjcyNGIxIGxlZ2FjeS10cnVuaworNzk1NzkgZjM4OTE5YmIyNmNjNzExOWZkNWE4OWRjMjdjM2Q2NWY2ODk4ZGZjZiBsZWdhY3ktdHJ1bmsKKzc5NTgwIDdhNGEwYzY5ZTNhNWYyM2ZmMjdiZmQ3MjNjYjc4YTExYmYzMzcxODcgbGVnYWN5LXRydW5rCis3OTU4MSBiNTdkYTRhNGEzZWQ5NWViZDFlYWE2Njg2ZWQ0ZTNhOTJlMzMyZDA5IHB5M2sKKzc5NTgyIGU4MWNhODhkNDc4Y2M1NTgzMjE5ZTNmYTYzYjI5MzUzZDNlNmIzYjUgbGVnYWN5LXRydW5rCis3OTU4MyAxMzA2MDMzZDhhZDJhYjcxOWFjODM5YzE0YzgyMmY2OTM1MDY1YWM3IGxlZ2FjeS10cnVuaworNzk1ODUgZTM1ZmViOTk1YmQ5NmM0NTBiMmEwZDNjY2MyYzQwYzU0ZWVmYjIyOSBsZWdhY3ktdHJ1bmsKKzc5NTg2IGM1YjIwNjQ1ZTkzMzUwYzc0MmI4ODc1ZWVmZGRiZTBjMjdmYWYxY2EgbGVnYWN5LXRydW5rCis3OTU4NyBmNzc1NTZmZWJlYzgyMGNmMjAzNTYxY2ViZjNkOTNhN2VkMjA5OWQ3IGxlZ2FjeS10cnVuaworNzk1ODggYWU3Y2Y1NzhkZTVhZGRlMDAzOTZmNWQ1Y2IzOTY5MDU3YWVjMTgyYyBsZWdhY3ktdHJ1bmsKKzc5NTg5IDE3ZjA4ZDY1Y2MwZDgxZGQ0NzQyZDViZjlkNmJmN2U1NWZiNGQ3MDAgbGVnYWN5LXRydW5rCis3OTU5MCA1N2Y0Yzk5MDgyZGY1NjA5NzE2M2RkZmIwN2E3YzBlYjlhNzQ4MDVjIGxlZ2FjeS10cnVuaworNzk1OTEgNDhmZDY5YzJhMmI0OTRmMmIxMGIwOWQ4NWMzYzY3YjYxZTAzMTUwMCBweTNrCis3OTU5MiAxZGYzNGZhNDkxYmRhMDRiMDIyYjU2YzJmYWNhNWQ2MjY2MjViMTUzIGxlZ2FjeS10cnVuaworNzk1OTMgZDc3ZTM4NDYwZTNjYTdkNmIyYzhkZWI5MGUyYmQ4OWY5NDcyMzQ3ZCBweTNrCis3OTU5NCA0YjU1Y2VhNTUwNjc3NmZhZDg4Y2VkMzgwMTUzMDA3NWMzYmMxMmIwIHB5M2sKKzc5NTk1IDUxNDlkNDg0ZDU2YWM4MWRiNzVkZDFmMzU4ZWE1NDk1NTg4ZmI4ZTUgcHkzay1jZGVjaW1hbAorNzk1OTYgMjA0OTdkODVlMDExMmVjM2U0YzgxZmViMTU0ZjNiMzI5MDFmZTcxZSBsZWdhY3ktdHJ1bmsKKzc5NTk3IDNmMWQ2ZWQ0ODBkZDgxYjA0MzNiNDcxYmQ0YTcwYTE0NGZiOTQ1YTMgcHkzay1jZGVjaW1hbAorNzk1OTggZTgwNTJhNjBiYmI3YjZlZjMyZjBiNzA0ZWE3ZDQyNjQ3ZDVmOTBiNSByZWxlYXNlMjYtbWFpbnQKKzc5NTk5IGNmYmE1OWMzODM0MTVjMjkyYTU2NDEwMzQxY2I1NzE0NmRlZWFiMWYgcHkzay1jZGVjaW1hbAorNzk2MDAgODcwZmY2MjIwYTBiOTliMDQyMGMzY2UxYjY2ZmUzMjk5N2QzOGIzMCBweTNrCis3OTYwMSAyNzc4NTgzYmUyMWQ2MmNlZWE4NGYzZTA4ODViNWQ3NTBkN2MyMWFhIHJlbGVhc2UyNi1tYWludAorNzk2MDIgZDExMDFhYTk4NGMwNzViYzdkYzZlZTI5ZGM3MDdhZWFiOTIxYjA3MiBweTNrCis3OTYwMyA0YWMwNWQxZjYwYzE4MDY4YjY0ODQ2MTkzNGVhMDEzOTY0N2JlODkyIGxlZ2FjeS10cnVuaworNzk2MDQgNjZkYjAzYTcwNzY3OWM2OWE3ZTcwMDZjYzQyMzVmN2JiMmQ4ODk5ZCBweTNrCis3OTYwNSA2OTkyNDY3YmI4YjU5YzYzMTBkNGI1MTg4OWE1YWQ2MDkwMzg0MThjIHB5M2sKKzc5NjA2IDQzYTgzN2QyNzI4YTEzNDFmMDQ2ZjAxOTFmYWY3OGU0NzJkN2I1ODQgbGVnYWN5LXRydW5rCis3OTYwNyAxZmY4ZGQ2N2JlODIyN2E3NzAwZjg4MmQxYzE1YmIyNWExMTdjNTY1IGxlZ2FjeS10cnVuaworNzk2MDggMmY1ZGMyZmEwZTU2YTI1MTAxYjMwYWZkZmNmNGMwNTM4MzY4YjNkYSBsZWdhY3ktdHJ1bmsKKzc5NjA5IGNjYTRiNzJmNDUwYjY0Nzg2NzJhODhkZWQ5OWVhMzIxNDhiOGY2ZjYgbGVnYWN5LXRydW5rCis3OTYxMCAyNTVhNDAxYzE5YjA1YWFlNmE2MmZhNTAyOTIxMjkyM2UyZTc3N2ViIHB5M2sKKzc5NjExIGVmZWJiN2JjYWU4YjE2NGIwMjUxMDUzYzkyOWIyMGQ3YmI1NTQ1YWEgcHkzaworNzk2MTIgYjQ3OTZlZmNhNzE2NGZmZmNjMmNhMjE4NDA4MTM3NWIwM2I3YmQ5MiByZWxlYXNlMjYtbWFpbnQKKzc5NjEzIGExZGFiZjRlODg2NjU2MWJiNTc1N2YzYWJjNjRmZjA4Yzg4NmViNTYgcHkzaworNzk2MTQgN2RjOGI4OGJiMTVhNDFlNGI2NmViOGU5ZTIzZjM4NmE3NWIwNDYyOCByZWxlYXNlMjYtbWFpbnQKKzc5NjE1IDhkNzMxN2M5MjRjZWY4MjQyNjllZWRkMjFlNTY4MzgzNDExNTgwOWUgcHkzaworNzk2MTYgZWVlYTM0MDE0YzgwMjY4NmQ1NmJlMTgyNDkwMWIwYjg0ZTZkMjk1MyBsZWdhY3ktdHJ1bmsKKzc5NjE3IDI3OGU3ZWNjMGY3N2VmMGRlNjIzYTEzYjMzM2U0NjZkMDY2NDI2NDIgbGVnYWN5LXRydW5rCis3OTYxOCA5ZDUwYmNkM2YwYzljYTg1Yjc4MmUzNDhlNGQ3Yzk2ODVlZWM2NmYwIGxlZ2FjeS10cnVuaworNzk2MTkgN2M5MjM4MDg1YTVjZTBhMjZlMjEwYTM1NTIzOTZiMGQ1MWRlMDllZiByZWxlYXNlMjYtbWFpbnQKKzc5NjIwIDM3N2IyNmQ4NzZlMGRmZTdhZTU5MWVjNmVkNmRlM2YwZWZlNGFjZDIgbGVnYWN5LXRydW5rCis3OTYyMSA1M2FmY2RjOWFlMGFiYzY5MTBjMzVjMjUxMDJmOGJjMTc1Y2U4ZjM3IHB5M2sKKzc5NjIyIGY3NmMzZGVjODU4YjdiOWM4NTEwMzdmZWQ4N2FhMWQzYmI5OWY1YWUgbGVnYWN5LXRydW5rCis3OTYyMyA3MGI3ZTRhN2Y3Y2UyMGIyZTc3MTEzMzYzYjc5ZTljYWE3NTM1MGY3IGxlZ2FjeS10cnVuaworNzk2MjQgYWFiNjQyODNkMDBhMWZlNmU0NDM5OTRiMmMzOTEwNDdiOWY0MWQ5MiBsZWdhY3ktdHJ1bmsKKzc5NjI1IDg0ZWNiMzVhMDZiZGRmNmNhMTg2YzY5MmE1NTg3OGUzNjdhZTNlZmIgbGVnYWN5LXRydW5rCis3OTYyNiAxYjVkNWU3NGY3MzhmNDFhNDc0OGRiY2Q3MTc2M2E2MzcxNmYwMDA3IGxlZ2FjeS10cnVuaworNzk2MjcgZjBiYjEwY2UwNWM3NzI2NjcwYzUxM2VjZTQ0MDE1ZjBhMjQzMTg5NyByZWxlYXNlMjYtbWFpbnQKKzc5NjI4IGFlYTMxOWVhMjZhOGU5MDMyM2UzYzUxNzgzMmVhZGU2MTNhNGY3N2UgcHkzaworNzk2MjkgZmZhMGFhNzBjNzQ2ODNmNDUwYjhmYzY5ZGRlNGYzYjFjYjNhMWVhOSBsZWdhY3ktdHJ1bmsKKzc5NjMwIDc2NTk0M2MxMTE1Yjk1YmZkYTNjODI4ZDViMGRlMWQ2OThhMGYwNTEgbGVnYWN5LXRydW5rCis3OTYzMSBjMzRkZGNhMzY3ODZjMWM0ZDcxODVlZTMxYjllYzc1OWE5NjkwNTQ5IHB5M2sKKzc5NjMyIDU0NjJjNWE5MWY4ZGNiOWRjOGY0M2Y1MWUyODhiNGJkM2IxNjcwZGIgbGVnYWN5LXRydW5rCis3OTYzMyAwYWI4OWU4YmRlZGM1NzY2ZGUyMTdjYTI0N2U4NjMwZTIwMGE2NTJhIGxlZ2FjeS10cnVuaworNzk2MzQgYTdlOWY4ZTM1NTNmN2NhNTY5NzMxYzBhNDc2MmNkNmE1ZDBkYzFmMyBsZWdhY3ktdHJ1bmsKKzc5NjM1IGQ0Nzk5ZWU2NGMyM2IxYzU4NGIyMjQyNzlkZGUxZjM3ZDBmNzdlMGQgbGVnYWN5LXRydW5rCis3OTYzNiA0ODc3YzExNTkxNTNmNWVmZDk5ZGNjYzVhYjhkMmY3N2IzZTRhNDhkIGxlZ2FjeS10cnVuaworNzk2MzcgNGVkMDRhMzljMGE5MWI5M2Q1NmFmNmViZjUxMWYzNGUwZDc1OTA2MiBsZWdhY3ktdHJ1bmsKKzc5NjM4IDU0OTY1MDNiOGIxYWJkNzJmMDNkNDg2NThmMDYyMmM5ZDI0YjZjOGEgcmVsZWFzZTMxLW1haW50Cis3OTYzOSA4NmY2OTk3NjYwMTYyY2JkZGEwMTkyYzNlYzA5NzkwODcyNGE2OWYxIGxlZ2FjeS10cnVuaworNzk2NDAgZDM4NTg5NThkZmY1M2U2MjQzNTIyMWFiMTk1ODdkNTMwZTk4MmUzMSBsZWdhY3ktdHJ1bmsKKzc5NjQxIGI1MjlhMTQyY2M0OWU2ZjMxMGFiNzQ2MmZkMmZmMjI2MWI1YjRjNDAgcHkzaworNzk2NDIgZDMzNGE3YTU2ODQ0OThjZTdlZTk1OWE0ODAwYjYwMzAxOTgxMjYzZiBsZWdhY3ktdHJ1bmsKKzc5NjQzIGViY2ViNzc5NjdkZTg2MzQ4YTEyZmFlMDAzOTQ2ZGUyOTkwYzkxNjUgbGVnYWN5LXRydW5rCis3OTY0NCA2ZDQ4MzVhODFiNjMyYWQwMjBmNmIwYjhkNDhiNjFhZGRiZmQwM2FlIGxlZ2FjeS10cnVuaworNzk2NDUgZmE2NDFkNjA1NDY4ODRmZDljMDYyMTE5ZmFiN2RhZWI3NGMwMGQ3MiBweTNrCis3OTY0NiA2NmI2MGE2ZTgxOTg0NmY2YmUwZWE2NzkxNTlmYTBiZDZjNWQ3NmQyIHJlbGVhc2UyNi1tYWludAorNzk2NDcgYTg4ZTBmNmFiOTQ1YTE2NjkzMTNhNGEyMGFiODVhMTNjNmU5OTVlYyByZWxlYXNlMzEtbWFpbnQKKzc5NjQ4IDg5ZTg3YmE4YWI0ZTBiMGY1MzE2NGRkYjIxYjNkZjFkNGQ4MTFjZmIgbGVnYWN5LXRydW5rCis3OTY0OSA2ZmU1ZGMxNzVjMjY0ZGYyYWIxMjI1Mzg3YWJkOTBlZmU1YTliODkyIGxlZ2FjeS10cnVuaworNzk2NTAgZmRkMDEzNzQzMmY4NTM3MzlmNDE1Zjc4NTBkYmNiOWM1ZjgyOTZlOSBsZWdhY3ktdHJ1bmsKKzc5NjUxIDVlYmNhNjIyODkwMzZiMzdiY2I3ZmQ0ZTA4YjQ4OTdkYTEyMTU0NjcgbGVnYWN5LXRydW5rCis3OTY1MiA1MGIyYzBmZTVlMjdiMzljMjM0YzE5ZjJlMzNmOWUyYTM4NzAyNjI3IGxlZ2FjeS10cnVuaworNzk2NTMgMTU0ZGNmYTMyYjIwMWFlY2RhYjc2ZjVmY2VjM2M4ZDhlYTYyY2IzYyByZWxlYXNlMjYtbWFpbnQKKzc5NjU0IGE3MDdjYTI2MDM0MWI1ZjZmMjgwYTcyNTRlYTZhODg0MThkNmZlNWMgbGVnYWN5LXRydW5rCis3OTY1NSA2MjllN2IzYzhiMmQ5NzZkYzcwZjY0ZTNjN2FlMWI5NzU0MjQyNTFhIHJlbGVhc2UyNi1tYWludAorNzk2NTYgZWE0YzZjMDY4OTUwMDlkMGUwM2Y5NzNhMDI3MDYyNmY4M2JjZWNhZSBweTNrCis3OTY1NyA2NThiMzllNjZkZWZlZDZmNmRlZjdjNmUzMzIxZTIyZTIyMWNjMTJkIHB5M2sKKzc5NjU4IGQ1ZjJjNzQyNWI0YTk0N2VlODUxYmZkNTRjMjkyYmY5YzhlYzZkZDIgcmVsZWFzZTMxLW1haW50Cis3OTY1OSA0NGQzMmE2YzllMzU3YTMzYWM2MjYzOWE3OTkzMDE3OTM0NTBkMDQ1IHJlbGVhc2UzMS1tYWludAorNzk2NjAgZGE3YjAwMDZhNzk5N2U3N2I1ZDc4ZmYzYzgzZWM4ZTU2NjhlOWJlZCBsZWdhY3ktdHJ1bmsKKzc5NjYxIGFkOTRhZjkxMjljY2EzZGRkZTYyNjg4MjU4NDQzMzk3ZGEyMmUxMmIgbGVnYWN5LXRydW5rCis3OTY2MiA3Y2E2YTM0MzFmOWUyN2NhMTE0ZmY3YzQzYjMwYzRlYzE4ZjNmODU5IHB5M2sKKzc5NjYzIGU0N2E2ZmY1YjUyMGYwZDFlNTNkODBjNGQzZWVhMDk1ZTBiNzM4MmIgcmVsZWFzZTI2LW1haW50Cis3OTY2NCAyODExYmU5NWM4Yzg0NDhhZWVjOTliNmU4NmNkMjZmZWM1MDc4ZGJjIHJlbGVhc2UyNi1tYWludAorNzk2NjUgYzU0ZGQzZWVlZDU2YjNmMmNlZTBlZGE0MjZmM2JkZGYxNzg3MTFiNCBweTNrCis3OTY2NiA4YzhiZGMxMWU5Yjk5MjljNTUxMTdjYjg4OTFjZDVkZGExZWUxOGI3IHJlbGVhc2UzMS1tYWludAorNzk2NjcgMWQ0ODRjNGRiZjYwNGNkYmQ3MWQ4ZDdjZjRkMDYxOWU3ZmZiNDM3YSByZWxlYXNlMjYtbWFpbnQKKzc5NjY4IDUwNzgyMjBiZDFlYTYzMjBiYzI3OWZlMTU5N2U5NzFkZjM4MjljOTAgcHkzaworNzk2NjkgMzM0ZDQ1NjJjODc1YTkwMjE1NzlkNGVjYWU1NjdiMzkwNjFmNmQxNiByZWxlYXNlMzEtbWFpbnQKKzc5NjcwIGNmODAzNzcxODRmZmFhNjg2NDQzMWUzNTQwYzljZWI2YjFlYWEwMzEgcHkzaworNzk2NzEgYzJiMjE3ZmU0ZWQ0NTQ4MWViNjkyZWNlYmE4OTIyYmZkZGU4YjUwNiByZWxlYXNlMzEtbWFpbnQKKzc5NjcyIGMwYjYyOTliOTNlZWJlODY2YmRkYmE4Nzc0ZDJiY2Y4ZWJlZmNiNzIgcmVsZWFzZTI2LW1haW50Cis3OTY3MyBiMWMwMGM3ZDNjODU1ZDUxNzI2NDc2ZGZhNTZmMDRiMjg2OGE2ZjFkIGxlZ2FjeS10cnVuaworNzk2NzQgMDU0MGE5NjI4Njk4OGE0ZGFhNzM0MTJiOWQzNzc3MDE2ODdiYWZkMSBsZWdhY3ktdHJ1bmsKKzc5Njc1IGNmMzRmYzFlODQxM2UxN2M5N2ZiZTlkMzAzZDQ1YjM5ZjM0OGFjYzMgcmVsZWFzZTI2LW1haW50Cis3OTY3NiBiMTk0MWNmZmZhNWM4NTE2MWZhMjIwMzBiOWUwMTJkM2RmNTA0M2FmIHB5M2sKKzc5Njc3IGQzMWUyNjlhYWNkZWJkMDgyNDkzNzA1ODVlOGJiZGNmODNlYjI1ZTAgcmVsZWFzZTMxLW1haW50Cis3OTY3OCBhNjY1NDVkYjNiMDY5OGE5OTE3NzU0YjZhM2ZhNWZmYTU0MDAxYzAxIGxlZ2FjeS10cnVuaworNzk2NzkgZWIwNDljM2MwODNmYzgyMTQzNjQzYTAyYmYyNDEyMmViNzc4N2RkNCBsZWdhY3ktdHJ1bmsKKzc5NjgwIDI3NDUxYTk2NzY1MDBkMDc0NjdmODdiOWNiMmE4YThmZDlkODczMTIgcmVsZWFzZTI2LW1haW50Cis3OTY4MSA1M2VlMzhlNjM4YmY5MGU5ODNlOGFmOTMzNmNhN2I2YjU1NGYwN2VlIHB5M2sKKzc5NjgyIDNiMWQwYTNhZGZmZmFlNzQ5ZGNlMjg4YTE3OTJlZDk3ZWVmOGNjOGUgcmVsZWFzZTMxLW1haW50Cis3OTY4MyBiZDUxMjFiZjY5OTZkMGMzZTllMTViNzdlMTQxMmY3MTQxMDQ4MzA1IHB5M2sKKzc5Njg0IGJhNDgyZjQ4ODdmN2Q2ODAyYzJlODE2NzE3ZjE5YjM1MDRlOTBmMjYgcmVsZWFzZTMxLW1haW50Cis3OTY4NSBhNTg0ZjI0MzE4MGQ1MmE2ZDZjMjJjMTAzZTcyZGQ3NzMzZGE3Njc5IGxlZ2FjeS10cnVuaworNzk2ODYgN2QyNzI0ODhiNjNjOWE0MmYyMzhlYjc3MWRkMmY5MjYzNWI3NTIwYyByZWxlYXNlMjYtbWFpbnQKKzc5Njg3IDU4MGYyZjViYTg1ZjM2NTE4MTY4MTNlYzc3MzY5OGIyYjViN2JiNjggcmVsZWFzZTMxLW1haW50Cis3OTY4OCA5YjI0YWEzNmMwNmY4M2UzYmI0MWZkN2Y1NTNkZWQ2YzNmNzQzYWIxIHB5M2sKKzc5Njg5IGQxNTIzNWQyMTM3YzE0ODU4MWQyOTY0OWYyZjI3OTJkOTRkOTVjMDcgcHkzaworNzk2OTAgZWExMGNiNjEzOTBhZWEyMGZiZDk2OGMwMzVkYzUyZjE1MDhlNGRlMiByZWxlYXNlMzEtbWFpbnQKKzc5NjkxIDRhNmUyMDEzNTQ3MDY4ZjA3NzBiN2JjMjY4MmJiZDA2NGI4MGI3YzQgcmVsZWFzZTMxLW1haW50Cis3OTY5MiBjNjY5OTViZWZlNDI0MjFiNTZlOTBhZjM0N2E0ZWQ0MTU5Yzc0OWIwIHJlbGVhc2UyNi1tYWludAorNzk2OTMgYjYyYTY4MjExN2UwMGYzODUyOTBhNWU0ZGFjYjg1ZWRmZWVhNDk1OCBsZWdhY3ktdHJ1bmsKKzc5Njk0IDM1MjdkNjU3OWVjMjkwZmQ5MGQ5YjRmYzQ3ZTZhNzI3NTFmZTQ1YjIgcHkzaworNzk2OTUgZDVhYmQ4ZGZkNGY0YmFhMGFiZmJjOGU2MmRlOTUzMTRkNWFmOTcxMiBsZWdhY3ktdHJ1bmsKKzc5Njk2IDA2YTQ2Zjk1MTk0ZWYxNDE1MWNlY2M2NTYxYmQ5YTY5NDkzY2JjZjUgcHkzaworNzk2OTcgOGFiOTYwYjYxMWE2ZjFiOTFiZWM4OGFiMzFiOTBmZmYyODYxMjQzMiBsZWdhY3ktdHJ1bmsKKzc5Njk4IDM5ZWZkM2ZjNTllZmE3ZjA4YzA4OWRkMjA0MTg0ZmI0MjQwNTJiZjYgbGVnYWN5LXRydW5rCis3OTY5OSA4NzY2NjM3NmQ4YjA1MDQyNmFlZjk1MzU0MzU4OGM3YThmNDNkNGRhIGxlZ2FjeS10cnVuaworNzk3MDAgNDBiYzhiMWNhOTMyOTg5ZjdhMWY3N2IyYTJiMWY3YjU3NmJkYWY4OSByZWxlYXNlMjYtbWFpbnQKKzc5NzAxIDNhMGY1MjViNTliNTk3NDhjMTQwMmY0NDNhMTA4MjkxZmMwZjBmOTggcHkzaworNzk3MDIgODZiZjM4ZWEzMTIzNmUzYmVhZTA5MDY5YTg3NWNiODAyMDk5OWM3NiByZWxlYXNlMzEtbWFpbnQKKzc5NzAzIGFhMTIxYTM5YTk1NjcwZTQ4NjI2YTBhNzdiZDg2ZGNhYTQ3YTQzMTEgcHkzaworNzk3MDQgZGEzNGQxZjQzY2IwMDA1ZmZmOWQ4ZWQ3NmExZDE3YTRmNTU3MTYwMyBsZWdhY3ktdHJ1bmsKKzc5NzA1IDdlYjkwN2M4NTRiNDJhZDlkYmJiMTgyNTZiOGY0YTQ4ODlmYjRmZDQgcHkzaworNzk3MDYgYzIxYmM4MGM4M2Y2MmZkZDE2MTllMDExN2M1Y2MxYjUyNmY2ZGZmMyBsZWdhY3ktdHJ1bmsKKzc5NzA3IGIyNjI1YWNjMjQ4NGU1MGViNjAyMzViZGE0NWZlOWE4NzU0ZGEwMmIgbGVnYWN5LXRydW5rCis3OTcwOCAyZTU1OWMwYWQ4YzM0MjhmZjI2YzJmZjJlZWQ3MjgzNTI3MWE1ODZmIHB5M2sKKzc5NzA5IDYxOTkwZjc2MzQ4NTkzMGU3OTNlYjljZmM5ZDk4NzI2ODkyM2Q1OWUgcmVsZWFzZTI2LW1haW50Cis3OTcxMCBlMTQ2MTMxMjRjYzE0Mjg4ODQwN2U3MDlmNmIyMzIzNGRmMDFjZDdkIGxlZ2FjeS10cnVuaworNzk3MTEgNjYxNThlNGZkMDIyN2U0MDVlNmEyYjlmYjVkOGNmZDA2OTQwY2FkYyBsZWdhY3ktdHJ1bmsKKzc5NzEyIGExODQyMjdjZmI5NDNhMGMwZDAyNTIwYWFhMDlhODk1YmNmN2UzMzcgbGVnYWN5LXRydW5rCis3OTcxMyBjNzNhNjU4ZGE2ZmFjMzQ0MDMyZGM0MjgyYjQ5OTgzOWM0NDY3OTRjIGxlZ2FjeS10cnVuaworNzk3MTQgZTI5YTJlMDNlNzM5ZTY2NjllZGM2YWE5ZGM2OTUxYjRkN2VjZmFjMSBsZWdhY3ktdHJ1bmsKKzc5NzE1IDNmNzg2NGMxY2YzZjYxNTQzZDRkMTdhNzg1YzI1OGZjM2NkZGUyMTYgcHkzaworNzk3MTYgMzQ1YjZhYjMyZDY1NGY0NjY0ZTgwMjZhZDA2NGYwMzg4ODgxOTkwMyBsZWdhY3ktdHJ1bmsKKzc5NzE3IDgyYzIwMzRiODA5NWY4NDQwMzQ5MWY5ZWZjYTJmYmUzNjFiMDMwNzIgbGVnYWN5LXRydW5rCis3OTcxOCBlZTM0MjVkMWM2ODhjZmQ4MTVjYzU1YzY0M2Y4ZjYwM2ExZmEwMmU0IGxlZ2FjeS10cnVuaworNzk3MTkgNGQ4NGUzZmEzMzNhMjFmODlkZjc0NzYxMWFlNDEzODEzNGE5ZjZlOCBsZWdhY3ktdHJ1bmsKKzc5NzIwIDliNTAwYTJjODU5ZDA2ZmI2NzE0M2RhYjEyYmU4ZjQ5ZTI0NDNhNTEgcHkzaworNzk3MjEgYzhmOTU1MDAzYjJjMWM1YTM3NmIzY2U3MTkzZWNlNWUzMTIxZTYwNSBweTNrCis3OTcyMiA2YTI0ZGVmY2MwMGIyY2I5ODA1YTgyZjdkNzUzZDE1OGRhMmFlMGMyIGxlZ2FjeS10cnVuaworNzk3MjMgOTY1ZWM2MzU2ZDVkODQ0NDIwZGYwNDZiNmY2NWZhY2NhMTdjMzUyYiBsZWdhY3ktdHJ1bmsKKzc5NzI0IDgxYzJmNTkyZTgwODEwYTg0NjYxYmYyYjg2MTlmMzAzMjYyMmEzOTAgcHkzaworNzk3MjUgM2M0YzBhNzE2YTE4YTQ4ZmQ1M2YwZDQyYTkwMzk4ZWI0OTM4YjMxOCBsZWdhY3ktdHJ1bmsKKzc5NzI2IDBjZmFiZWQ0NjY2OWNlOWQwYTg0YTYxYWQ0YjFjOTc5MWI4NTI3NjAgcHkzaworNzk3MjggZGE5MzlhYjJiZmUyNzc3YTgwOTQxZjMwNmNhN2M1OThjMjc3MWVjNCBweTNrCis3OTcyOSAzOTkyMTAyNjNlNzEwYzA3YThmMWMwMThmNzQ1YTk3NTdiMWVlOTAyIHB5M2sKKzc5NzMwIGViNDE2NzY3MjE2M2M4ZTMxZTA0MTNkMjM4OTY5ZTBkOWE3ZTNkOTAgbGVnYWN5LXRydW5rCis3OTczMSAwZDU2N2NlNWVjZTRhNDMxZGZkMWI1YjRmYjgyNWFiNmEyN2NlNmM4IHB5M2sKKzc5NzMyIDM5NWEyN2E0NGE5ZTQyNDZkOGZjYmU0NzU1NTRkNTQxODE3OWIxNTUgcmVsZWFzZTMxLW1haW50Cis3OTczMyBkNTg2MmQxMmQ5MmFiNGQ0NGVhOWMzMGI2MDg4OGZiZmMxMTY1Y2JmIGxlZ2FjeS10cnVuaworNzk3MzQgZjljMzY4ZmUxYWNmMzA4ZTMyNGFiZDcwYjdjODc4MTI0YmM3N2YxNCByZWxlYXNlMjYtbWFpbnQKKzc5NzM1IDY3NzdjZmFiNTE1MmUyY2RmZmVjYmZjNjliYTkyZmZlNmRkZDkwNGEgbGVnYWN5LXRydW5rCis3OTczNiA5ZWU5N2E0YWIxNWMwYzliN2NjOTUxNDU3ZjU0ZjA0NWY4YTNkZWE3IHJlbGVhc2UyNi1tYWludAorNzk3MzcgMmRhNTEzYjQ3MmNiZTUwZGU0ZjY0OGIzNDM2MWY4MTkyYjgzMjBjNSBweTNrCis3OTczOCBhOGRkZTAyNWE2Zjk5ZjAxZjBiNzhhMWRlZmFkMWZlNTc4YjI0Y2RkIHJlbGVhc2UzMS1tYWludAorNzk3MzkgMGRlZjI4ZGI3Nzk5N2VlYzM0MDQ3OGU5YTg5ZjQ2NWFkNDFjMTAzZCBweTNrCis3OTc0MCA0NjBmNDFiZDBlMzRhY2VlNjQ1YzQ0MWJiN2I1NTgwYmVhZWFhZWM3IGxlZ2FjeS10cnVuaworNzk3NDEgNTcxNWRlMmE0MDUxMDUxZTJhZTE4NzIyODE3MzFiYTdiNmQ4YzE5MSByZWxlYXNlMjYtbWFpbnQKKzc5NzQyIDU4ZGM0ZjMxNmZmNjQ2Y2RjMzE4NmY3NmJjMDg0NWQzMzA0YmQ5OTYgcHkzaworNzk3NDMgODFmZTFkNDVhZTc3ZmE0MmM5MzEwNDU0ZGVlZDk0MmZlOWNkMmVhMSByZWxlYXNlMzEtbWFpbnQKKzc5NzQ0IDVjYThlNDE1MDRiNmY5Mjc5YTZkNWU2NGIwZDFiZjIwY2Q1OTAyMGUgbGVnYWN5LXRydW5rCis3OTc0NSBjMzk5ZTkzYmYwZTQ1ZGMyYjcxYWIxZjQ5MzQ3MGEwYTM1ODQ3NWZjIGxlZ2FjeS10cnVuaworNzk3NDYgNzI0MDliMjMxOTY3MzNhMzQzZjdmNjY2MzJmYjc4YzMwOGM2MGI3MCBweTNrCis3OTc0NyBjMWI4N2UxM2U5ZDNmZjE1YzRlMWZiNTIyZjE1MDE3ZmNiNTI5ZTI5IHB5M2stY2RlY2ltYWwKKzc5NzUwIDFlNmYyNjgwMTZlNDczOTRhZTFhYjVhYjE3OTcyNDAwNjY0ZDU0N2IgbGVnYWN5LXRydW5rCis3OTc1MSBlYzFhNTQxMmZmOTBkZWFlM2VkZmViNDE0ZmU4MWYxMmYxZDkzNmM2IGxlZ2FjeS10cnVuaworNzk3NTIgN2FjM2Q4OGUzNWMyMTBmZjJlMjFhZDNkNDNiZDBiZDIxNjRkODhlYiBweTNrCis3OTc1MyA4ZTA2NDE3ODU1MDc0NTNmMTY0ZDEyOTFkNjkxMTVkNTExNzZmZDJhIHJlbGVhc2UyNi1tYWludAorNzk3NTQgZGM2MzQxMWEwMTA0ZWJhNDJiZjZmMjljNGVjY2UyNjVmZWE1OGVjZiByZWxlYXNlMzEtbWFpbnQKKzc5NzU1IDVkZGEzZjMyYTJjZTJkZDAxZmI2YzM2ODE5OTExNjViZjAwOTllZTAgbGVnYWN5LXRydW5rCis3OTc1NiA4YWEyOTZmYTZkNmM1M2EwNzRhM2IzMDBiZGUyZDUwYmY2YzAwMWExIGxlZ2FjeS10cnVuaworNzk3NTcgNDVkZDliZjM2MWVjMDMxNWYxODk3YjczNWQ0Zjc3YzU1NDRlNjQ4YyBweTNrCis3OTc1OCA5MzA3ZGVlZWU0MTJhMjIzZjE0ZjU4MzEyODI0MGZmYzUzODA3NWIyIHJlbGVhc2UyNi1tYWludAorNzk3NTkgZjQxNmYyYzJjMDk5ZTg0NzUzN2Y1ODkzZDhhYjcyNDA1ZDBhZGFhMSByZWxlYXNlMzEtbWFpbnQKKzc5NzYwIGI2YzZmNDJjZGRkZTVkZjRkZWRhZjViZGZjMGY2MGJmMjVlZGQ0YmQgbGVnYWN5LXRydW5rCis3OTc2MSAwMjI1ZDI5ZjBiZDk4ZTMzNTAxM2UxNmMxNDU2OWQzZDc5ZWE2ZjkxIGxlZ2FjeS10cnVuaworNzk3NjIgYWNjOTAwZGMxODRiYTliMGM2MmY1ODJmOGY3Y2VkY2E3NmUyMmVjZSBsZWdhY3ktdHJ1bmsKKzc5NzYzIDBlY2U5OGI4NTNkNTEwNDFkNTliZjBmYTEyYzNmMWNiYTgzOGFmZjQgbGVnYWN5LXRydW5rCis3OTc2NCBhNjYxYzk2YjhkMTBlY2Y3YjhiOTlkNWQ3YzllNjhmODg2ZDZmZjVlIHB5M2sKKzc5NzY1IGZiMmQ2NGE0ZDg3MmMzMmM1MzdlNzZjNTY4OTI1ZWMxNzZkMzQzYjEgcHkzaworNzk3NjYgYjY5ZGNmNjM1MDJjNGRmMjQyZjk5MTMyZmU2ZGRlNDU3ODEyZTQzZSByZWxlYXNlMjYtbWFpbnQKKzc5NzY3IGMwNGE2MjIyY2M3ZGQ1OWRmMjc1YjJjOTI0YjRiOTdmN2Y4ZGZlM2UgcmVsZWFzZTMxLW1haW50Cis3OTc2OCBhOTAzYmIzNWVmNGY1MzU3NTBlMDcyYjc5MGI5ZWFmNGRmOGRjNjk5IGxlZ2FjeS10cnVuaworNzk3NjkgYzU0Y2ZlODI4Yjg0YTNjZDBhMTA1ZTFhZTA3OTM5MmI0NmJhZjRhZCBsZWdhY3ktdHJ1bmsKKzc5NzcwIDgwMDQzNTdkNWJjYzAzNzJlNTIxODZmYmEyZWNjNGEyOWNlMzJiYzYgcHkzaworNzk3NzEgNzE3NzlmNGEyMDc4Mjk0YjU4ZGYyNzYzNzYxOGFlMmU3MjZhNDk2ZCBweTNrCis3OTc3MiAzM2EwMmU0YWM0YzJmMWU3ZTk3YmRlNDUxMDk1YTc0ZTJiMGEzMmI2IHJlbGVhc2UyNi1tYWludAorNzk3NzMgODkzYzc0ZDU0N2VlNzM4MDYyYjY2ZDVlM2JmMzIzN2RlYWFlZGU3NiBweTNrCis3OTc3NCAxYWJmMzdkYjI1N2Q5ODhkYmY2MDM2MTA3YjE3YzA1MTM0ODg1YmJjIGxlZ2FjeS10cnVuaworNzk3NzUgMjNkYmM4YTNiOTdhOTk5OTZhN2ZiMDY4M2Q4Nzk2NWM4ZDRmMGZjNiByZWxlYXNlMjYtbWFpbnQKKzc5Nzc2IDYwY2E4OTgzZGQzYjFlMjVmZjM0MzA3OGMzNmIxYjJhOWJhYTNhMmIgcmVsZWFzZTMxLW1haW50Cis3OTc3NyA1MzUyMjA0YzhlODhjNWJkMWZlN2E5YWUwMTc1YWE2NWVhYmNmZDJiIGxlZ2FjeS10cnVuaworNzk3NzggZTY4MTVlMWI3NTAyYzY0MDllNGZkN2QwZWFlMDIzNzAxMWU3NDdhOSBsZWdhY3ktdHJ1bmsKKzc5Nzc5IDFjYzRkMmRiNWNkNmJkYjNiNDZjZmI0YzA4NDFkMDAyMTExMGZkYTYgbGVnYWN5LXRydW5rCis3OTc4MCBjZmU1ZmEzNGRiNDY2NjRjNGZlOTgzMGIxNDVkYmQzMTFhZGJhNzI0IHB5M2sKKzc5NzgxIGM0MGZiZmZmNmQ3YWJjODhkMjBhMDE2ZWIyY2IwM2ExNTk0YzgxMDEgbGVnYWN5LXRydW5rCis3OTc4MiA3ZjY5MTgxYjY1MmMwYTliZmI1N2Y2ZDk0ZjJkZjYzMjE1YTY4ZWVmIHJlbGVhc2UyNi1tYWludAorNzk3ODMgMDJiZDJmNjBiYTVkOGQ1MmYzNjgyMjA2ZmUyMjVjNGQ3NGQ2ZWNiMiBweTNrCis3OTc4NCAyNzNjZGEyYjAwNTM4MTJiYWVmZDIyMzViMmZlODZhNWZkZjM4MjMwIHJlbGVhc2UzMS1tYWludAorNzk3ODUgZmRjYmViOWYzNzRjNzE1ZTZmZmYxYzgzYmFjNGNkYWIwNTQ1Njk2OSByZWxlYXNlMzEtbWFpbnQKKzc5Nzg2IDk3ZTk1YzlkMjZkYWJmMjE0ZjhiYzRkNDc4MzIxOWZlZjlhNWQ2ZmIgbGVnYWN5LXRydW5rCis3OTc4NyBlNGJkYzI5NmZjOGU0MjdiMDU3MjYzYzZhN2Q5ZWJiMWYzZmM5OGVhIHJlbGVhc2UyNi1tYWludAorNzk3ODggZTk0ZDQ0NmM2ZDBlZjkzOWM5OWUyYTRjOGIzOWRmYThhNDNiOWE3NSBsZWdhY3ktdHJ1bmsKKzc5Nzg5IDcyYzBlMTVjMDNiMjRhMjMzYWFmNGY3YWQwZGFkOWUxNWQ4MTZhMTIgcmVsZWFzZTI2LW1haW50Cis3OTc5MCAyNGNiNDExMmI3MzExMzA5YTIwNmVlOWNiZGU1ZDBmYzA0OTkzZWJhIHB5M2sKKzc5NzkxIDMyYThiNTIwZDc2N2Q3YzljNDc0MWI5OWRkNWJmNjNmYzZmYTUyOWUgcmVsZWFzZTMxLW1haW50Cis3OTc5MiAyOGI4MjM5ODNmY2U5ZDczOWIwZDE3ZGJhOTRmODVkZWE0ZmQwMjAxIGxlZ2FjeS10cnVuaworNzk3OTMgNmJlZTQzZWE3YzAwZTNhYWMzMzFjNjNmMTlhZTYwNWI2NTI5MTBhZSBsZWdhY3ktdHJ1bmsKKzc5Nzk0IGY4N2QyYjFiYTQyOTBjMzAzODIyOTY2MjZjMGNmZDE5YzAxZTk5YTUgbGVnYWN5LXRydW5rCis3OTc5NSBjMmIwOTNkNjgwY2YzMjMxMzRiNDlhMmRhZmUxNWMzMDYwYWExMTcxIGxlZ2FjeS10cnVuaworNzk3OTYgMmQwY2UzMDc4MDliNGQwNjNjY2Q0OWE5NDI3MTUzYTYxYzE4OGU1NyByZWxlYXNlMjYtbWFpbnQKKzc5Nzk3IDExZGUyYzI4ZDFhMDkxMDY1Nzc2ZGNlYzFlZmVkY2FkYTZhNDYwODYgbGVnYWN5LXRydW5rCis3OTc5OCA3MDg4ZDE4MzQ3Nzg0ZjI5MDg2MWYyYTlmZTFlNjBlYjY4OGVkYzNkIHJlbGVhc2UyNi1tYWludAorNzk3OTkgOWVjNTk4YjQ3ZGE0ZGJjNzBlOWM4MWI3MmZmNTA4YTY2MWYxYzU3NSBweTNrCis3OTgwMCBhN2I1M2FkN2FkOTcyNmNlMjU2NTkzN2VlMjFmNDFhZGE5Y2EwZGU4IHJlbGVhc2UzMS1tYWludAorNzk4MDEgMGE1M2MyNTRhMTkzN2RjMDdhMmRmYjdlNjUwZTc1YmUxZGEzMWZmOCBsZWdhY3ktdHJ1bmsKKzc5ODAyIGU3N2IyZmYyNGRkYjE0Zjk1ODZhZjdiNjY2OTkxZTIzMjczOGRkYTIgcmVsZWFzZTI2LW1haW50Cis3OTgwMyA3ZjJkN2JmYjA1NjcwNmNmMzc4MTJmOTkxOGFjMjRjY2Y2ZTkxMmQzIGxlZ2FjeS10cnVuaworNzk4MDQgYWNlNzExNTUwYjU5N2VjYWZhZjI3MWE5M2UyNDk4M2M3MDQ5MzUzMCBsZWdhY3ktdHJ1bmsKKzc5ODA1IDlkZTU2MzBmYzYxYmEwMDljODFiNTFiMWZiNWE5ODk4MmMzODdlMTUgcHkzaworNzk4MDYgOGY0NWQzN2M1NWExNDJiZjYzZjNlMWNiNWMyMmZmNDM1N2Q5NjUxMCByZWxlYXNlMjYtbWFpbnQKKzc5ODA3IDU4NmUxY2U5ZjI0M2M4NGE1ZjViMzcxZGM3ODI4YjZkZTEwNjJkODIgcmVsZWFzZTMxLW1haW50Cis3OTgwOCAzYzlmMDg4N2VlM2Y5YWVhOWZiNTIyMDViZjlmMDc0OGU1MjQ2OWM3IGxlZ2FjeS10cnVuaworNzk4MDkgNWRhYTc0YmNmNmExNTkwOTJhZGExMDRkNjA1MTJmOWY1YTU3ZTUyZiBsZWdhY3ktdHJ1bmsKKzc5ODEwIDNjZTY2YzY5MjJhYmFkYmEzZDg5ZWM0MTE1ODZjM2VjZWMwZDRlZWIgcHkzaworNzk4MTEgOWZkODg1MmVjZGQ0YzIwMmU5MTE5MDllYzFlZTFmY2FkNGUzOGM5MiBsZWdhY3ktdHJ1bmsKKzc5ODEyIDY2NDE3Mzk4NGYyZDNhMjFmYWE0Yzk3NjhiZTA2MzI3NDY1MWUxN2UgbGVnYWN5LXRydW5rCis3OTgxMyA5ZTVlOWQ4ZmE4NDc0ZmQxYjVmYjliYTAwMWQwNjE2Y2MwNzc4YThiIHB5M2sKKzc5ODE0IDI1YzI4NTJiZmQxNWI1NDI5MTJlMTc1OTJlZWEyMDIwZmJmYzE2ZjkgcHkzaworNzk4MTUgMWFkY2Y0YTQ2ODU2MDZlNWJmYjVhMjZjZTM4YzU0ZDUwYTZhOWI2NyBweTNrLWppdAorNzk4MTYgYzViZTUzN2I1YmE5MDlkOTk1YmY0MDFlMTM1NDFmNjllMjhkNTM5YyBweTNrLWppdAorNzk4MTcgOTIyMDc5ZjcyNGE2MjBjMjNhOTA0MmYzNGU3ZGZkMmFkZjJjMzJlNyBsZWdhY3ktdHJ1bmsKKzc5ODE4IDk0MjYyZDBlMDY0YTVlYTg4ZjMzN2Y1MGUwY2Y5MmVkMmZjOTAzZDkgbGVnYWN5LXRydW5rCis3OTgxOSBlZWVhNzhkZjhhM2M3MmY0NzM2N2E5NDA2ZjUxYzA5NmQ2MDEwMDA5IHB5M2sKKzc5ODIwIDk2MDA2MjVjMTVhZmE5YzBhNDIwYjg4MTE0NzIxYjRiYTI5YTFlOWUgbGVnYWN5LXRydW5rCis3OTgyMSBjMTAwMjRhYmQxMThmZmNhZmNjN2RkZmUyNjhmMTc3YmQxODIwNzVjIHJlbGVhc2UzMS1tYWludAorNzk4MjIgMmZmYjIyNGM2MWY2YzdkMGJiMmI4NmNmNDUyMGZmMmJiNWIxMTBmYyBsZWdhY3ktdHJ1bmsKKzc5ODIzIDI2YzZkZTE4Y2QzMGI1ZGIwYzQ3OTU2MjhmMmIzM2QwNzNlZWE5MDEgcHkzaworNzk4MjQgMzY3YWM0OGJmMDg1YTVhM2IzYmExYjNjYzE2YTkzYjdhM2VjYWU0NSByZWxlYXNlMjYtbWFpbnQKKzc5ODI1IGEwYzA4M2UxZDMxZmRkMmY5M2QzYTQ2YmZhNDc1OGU0NWJmMWQzOTYgcmVsZWFzZTMxLW1haW50Cis3OTgyNiA5NWJmOTdkY2M1OTE5MjYwMjM4NGZmOWQ5ZmQzMmJiOWFkYTU1Mzk0IGxlZ2FjeS10cnVuaworNzk4MjcgNzI3NDYxZDY2ZDEwMjI0ZGM3OTBmMzAzOTEyMTNmNmQzNDk5NjE5ZSByZWxlYXNlMjYtbWFpbnQKKzc5ODI4IDdkODlkMGRhZTk4ZTU1NzE4ZWJiNGE0NjExMzBkMDRhNmVlYzJjYzcgbGVnYWN5LXRydW5rCis3OTgyOSBhNjVhOTRiMDA5MDJlYzIyY2JlZjhhY2M4YTIxNDdiNWNhMGU2N2U2IHB5M2sKKzc5ODMwIDM3NzVhNGZkMTFjMmE3M2NmYTE5YzA2ZjUxYTkzNGJiMjE2ZjZiMTkgcmVsZWFzZTI2LW1haW50Cis3OTgzMSBkNDg4MDFiODYzODAxZjcwZmY1NWQwYThkZWQ5ZTA3ZDI4ZTE5MTMzIHB5M2sKKzc5ODMyIDJiOTNlMzE2NTk2MWUxYTkyMzBkYzNhZGQ5NGExYTUxMmMzOTliZjQgcmVsZWFzZTMxLW1haW50Cis3OTgzMyA1NzZiMGU4NzM2YzdmZWE3NGE3ZmNjMzZiZGMzMTZiOTMzOWFkOWQwIGxlZ2FjeS10cnVuaworNzk4MzQgZjFlYTAzZTM3ZmY2ZWNiN2YxMjQwMTFkNDdjODQ2N2ZmNjk1MGVmNSByZWxlYXNlMjYtbWFpbnQKKzc5ODM1IDdjNzZhN2I0MTE2MDM1Yzk2YzljY2ViM2M1ZGUyNDE2MGY2ODY4NDQgcHkzaworNzk4MzYgNmZlYjVhZGQ3NjJhYzZlMTk1MTRhMWI0YjYxOGFiYTEwNmJjNDQwOSByZWxlYXNlMzEtbWFpbnQKKzc5ODM3IGI2NmZjODhmYTk2ZDFiYjc2NjIzODNhMjRjOWZjNjY0ODk4ZThiM2MgbGVnYWN5LXRydW5rCis3OTgzOCA2NGZkZjY2ZjY5YjBiNzhiNTRjMmFiMmRmZGMzMzNiMzE2YjcwYjY5IHJlbGVhc2UzMS1tYWludAorNzk4MzkgNzc3NGQ2MGE4OWE5MjhlNWM2MTFjOTdkMGYxNzA4Y2RlNWY1MWNhMyBweTNrCis3OTg0MCA2OTZjYjU0OTZhMGI4NmQyZGM5MDJmYTcxMDRkYWQ5N2I4M2VjNmUyIHJlbGVhc2UzMS1tYWludAorNzk4NDEgYzY3MzM5ZTM3MWE5YjI1ZDFkMzkzYjM1MWJkZjQ0ZjE0OGEwNTEyNyBweTNrCis3OTg0MyBjOGNmYjFkMDc0MjljYTExMWEyOTNiZjUyMmM1NGRlZmJjOTQ1NjZiIGxlZ2FjeS10cnVuaworNzk4NDQgYjg4ODQyZjY1MzRkZTQ4ZTE2YzEzZWExY2IwMTY2OWZmODE0NTlkYiBsZWdhY3ktdHJ1bmsKKzc5ODQ1IGI2MTA4ZjcyMGY2OTgzM2EzNGNiNjg5YmZhYmYxMmMxOGIwYTdjYTcgcHkzaworNzk4NDYgZjE5NGEzY2VlZmFhYzAwZDFkMjFlNzE5MTA0NWI4ZWEwNjI3Y2U2NiByZWxlYXNlMjYtbWFpbnQKKzc5ODQ3IDJmMjg4MzJkYzM2YzNiMDFhODdjZTIyNmE4NjYxNjM2YzhmMjRiNDEgcmVsZWFzZTMxLW1haW50Cis3OTg0OCBhNzNkNjA0NTFiNDkwYzZhMWE3MmZmYjFiZTc0ZmViMmY5YWEyYTU4IGxlZ2FjeS10cnVuaworNzk4NDkgMjBhNTliYWRhZmExYzIyMTRjYTZjYjliZWFhYThhZTAyMGRiNGVkOCBweTNrCis3OTg1MCAzY2U0YWFjMjA5MzU3NzYwMzVmMDdhMzIyYWM1ZTg0ZDg3MDY0ODA4IHJlbGVhc2UyNi1tYWludAorNzk4NTEgZDUxYTJjN2NjODExYTEyYTg1MjRlMzE0NjUwYTRiMThkOTYwY2NjNiByZWxlYXNlMzEtbWFpbnQKKzc5ODUyIDViMGYxZDViZDU1YTk3YzAwNmJlZDEzMDE1NDc3ZGVjYjI1OTBiMzYgbGVnYWN5LXRydW5rCis3OTg1MyBiYmNjNTRhY2JkOGEyZDkwNTRhN2NiNzcxOTBjZWE1YzM1YTEwNTJlIHB5M2sKKzc5ODU0IDMzMjdkZjMyYzExN2NhYzJiMWYyNTU1MTRiNWY1ODViMDMzNDY3OTYgcmVsZWFzZTI2LW1haW50Cis3OTg1NSA2M2FmNDk2YjE0OTM5NDczZmU2NjcwZDFhMzJkZGVlODA0NjVkOWJhIHJlbGVhc2UzMS1tYWludAorNzk4NTYgZjRlYzQwNzNiZDJlNTk2ODBkMWU1NTk2NmYwYzMwNGE3NGRkNTE5ZiBsZWdhY3ktdHJ1bmsKKzc5ODU3IGNlOTc5YjY0YjIzYTc5MGJhNDE2ZTI2NDUyMmFhMzk2NWRkMjBlYzggcHkzaworNzk4NTggYTMxZjgwZDVkMWExNmViZjRkNzcxODU0MjFjYTAzM2M3NzFlMzYzMCBsZWdhY3ktdHJ1bmsKKzc5ODU5IDAxYzFhYTNhNDlhN2NkMWY1NWY0MmM3ZTYwYTVmNzJiNmFlZGM1YzEgcmVsZWFzZTI2LW1haW50Cis3OTg2MCA1NjliODU5YWRlMjA3NzMwMmU2ZDU5YmZlYjAxYmU4ZTBjZmFiNDY2IHB5M2sKKzc5ODYxIDgyNzNmODk5NGE4ODgwYWYzYTg3MWI0ZjMyZGYzN2E4ZmE1YjhhY2QgcmVsZWFzZTMxLW1haW50Cis3OTg2MiA5YzQ4YWI3MjhjZTBkNGYzMTU3YjhkYTlhZDEyODc2YWYyMTEwZTU4IGxlZ2FjeS10cnVuaworNzk4NjMgMmI0ZmNmYzM1ZjEyMjNlMGE1NjM0YTA1MjIxZWMwOGUxZjI1NjUyZiBweTNrLWppdAorNzk4NjQgNzEyOTcwYjAxOWY3MGNiMjExYzcwMzk5ZGQxMGY1ZTA3NzEzMDBhNCBweTNrCis3OTg2NSA2YzFhZGU5ZWExZTQ0NTRkNmYzYTE2MjNhZDk0Nzk2ODNiOGVhNjg0IHB5M2staml0Cis3OTg2NiA5YmE4YzZlNTJmYTBkZGZiN2Y0M2FiMmY4MDAzZGMyMzkxMTAzZjQ2IGxlZ2FjeS10cnVuaworNzk4NjcgYmUwNDRiOGMzNDNhMzVmNTkzNTYxODM2NTkzMjgyYjhkMWEzOTdhOSBsZWdhY3ktdHJ1bmsKKzc5ODY4IGJhNWVjNzU2MDkzMzM3ZTMxMTQ0YmIyMWMxYWNmNmMwNmVmMTUzZTEgcHkzaworNzk4NjkgZWVjMmRiMDlhNmMxMjM5MWYzYjI1ZTI5OTU0NGE0N2M1MDc0ZGM2MCByZWxlYXNlMjYtbWFpbnQKKzc5ODcwIDgxZDkwY2VlZTNiZGZhN2ZkNWM2ZDIxNTk4YjdlZTg1OWMzMTg3NGYgcmVsZWFzZTMxLW1haW50Cis3OTg3MSA4OTJkYjE4Yzc4MTU0ODIwYjQxZjAwZGIwY2Q0MDU1NDY2OWJlZjQ2IGxlZ2FjeS10cnVuaworNzk4NzIgMWE2ZjNkMzZiYmQ5NjFiMDQ2NDk2NzEzZjdlNTY5MGFhODg4YTU0NiByZWxlYXNlMjYtbWFpbnQKKzc5ODczIDgyYWYxMTNlMDIwYjk3YWY3NzQ1MGQ4MWI5ODU0YTY3NzQ2NTU3NzEgcHkzaworNzk4NzQgZTNjZjk3N2UyZTY0NjdlNTlkZWUyMTdjNzU5ZTBiNzlhMjVhNzczMiByZWxlYXNlMzEtbWFpbnQKKzc5ODc1IDhkOGY3ZTA4MmVmNmE4NGNlMTIwNDA4NzA3YThjNjc2NGU0ZDA4OWIgbGVnYWN5LXRydW5rCis3OTg3NiA5Y2U1MzE2MWMzYTlkZGRhZjIzMjBiZjRhNWM3Y2E5M2RhOTFhODk1IGxlZ2FjeS10cnVuaworNzk4NzcgZmI2Y2Q4YWQ4ZjY5ZTZiMGEwMWY2ZTEzZTc1OTg0ZmE2YmI2ZTQ3ZSBsZWdhY3ktdHJ1bmsKKzc5ODc4IGMwOTU3ZGFkYTVjMjdkZjYyZjQzZmJlOGEwNzQ5ZDdhN2YyZWU0ZDAgbGVnYWN5LXRydW5rCis3OTg3OSBkNzk1OTliMjFlODExNWNmOTY3YTMyZTkzNjFlMGZiZDZkMGNkMmVmIGxlZ2FjeS10cnVuaworNzk4ODAgYzllNGUxMmU5Y2I2ZTA2ZDU3M2Q5ZTc2ZTQ4OTUyMmE2ZDA2ODgwNCBsZWdhY3ktdHJ1bmsKKzc5ODgxIGYzNjlkYjBkNTg0NTY1OTQyNTdjMzMwMzgwMTI0NjdhYmU3YTBhODAgcHkzaworNzk4ODIgMTBmMWU2M2IyYjM3NDgzODEwYzU0MTk2OWM5MWE5NzBmNTUyNTU0YyBweTNrCis3OTg4MyBiNjE5YWJjZTAyNjk3NzZiMWEzMmQwNmY2Y2U5N2I1NGYwNzZiOTJiIHJlbGVhc2UyNi1tYWludAorNzk4ODQgODVlZDc0MGJlMzIzZDcxZmJjOTBmMWVlZThjMzEzMmViNzk2OTQ0YyBweTNrCis3OTg4NSBkMGE3NGI2NTA1ZDNjN2RlNTA5OWE2OTUyNTU0OGViM2IwYjE3MThhIGxlZ2FjeS10cnVuaworNzk4ODYgMWM5YmVmZGU4Mzg1ZTgzNzgxZDc1N2UyMzVkMmE1YTUyY2QzOTQ0ZiBweTNrCis3OTg4NyA3ZTU1YjIxYzY2NThiNWUzYTA4NDQxNjFhNmVjMGNiYTNlYzJlZWM4IHJlbGVhc2UyNi1tYWludAorNzk4ODggZGRiNzMyNDM5NjdiYjJhYzQ4YzhmODdlMmYxMDdmMDA0ZTU4MzAyZSBsZWdhY3ktdHJ1bmsKKzc5ODg5IGU4YWE5YTdkYWYwMzI4NWEyNjgzYzliYzk2OTI2MTI4YzE3NjdkZWYgcmVsZWFzZTMxLW1haW50Cis3OTg5MCAyMGRhZDIwMDU4ZTQyOTc4NTkwYWI3YWU1ODNjZTBkNTBkOWVlM2FjIGxlZ2FjeS10cnVuaworNzk4OTEgYThlOTBjZWNjNjllMTU4MjdhOWM1Mzg2NTZjZjk2ZDc2MWMwNjk0MSByZWxlYXNlMzEtbWFpbnQKKzc5ODkyIGMzMWM0M2Q2YWQ3OTI5ODllMWQzYzkzYTMxODVjMDNhZmY3N2ZiNjUgbGVnYWN5LXRydW5rCis3OTg5NCA3YjAwNDU0YmJmZTBhNjE2MGI5NmE4MGVlMDQyOTRmY2JiMzBkOWQwIGxlZ2FjeS10cnVuaworNzk4OTUgMjVjM2IzYWJmM2U3YzhiNTNkOTU4MGEzOGM5Nzc1OWI3MmRhZjBkNyBsZWdhY3ktdHJ1bmsKKzc5ODk2IGNiMGI4NDAwZTdjNGY5Y2M1OTYzZGVkZjY3ZWE2MDQ0NTUzYmQ3ZjAgbGVnYWN5LXRydW5rCis3OTg5NyAzOGIyNDI0Zjg1ZThhYzBkODNkMzA5MWRjZmJjNjlkNWRlZTJlODA1IHJlbGVhc2UyNi1tYWludAorNzk4OTggYTM5YmYzOGYyZTBjMTc3NTg2OTM2ZjJhZWJiNTM3NzViZmE4NmFjZCBsZWdhY3ktdHJ1bmsKKzc5ODk5IDJlOGQyZDdjNDNjMGI1OGVjZmI4NjhkYzM3NDM1YmM3ZWQyNTE5M2UgbGVnYWN5LXRydW5rCis3OTkwMCA3M2U1ZTNlYWRkODkzZTAwOTg1ZmY4Y2IwNzkxOGI5N2Y2NTBhNzE2IGxlZ2FjeS10cnVuaworNzk5MDEgYWMwNzhhOGMzZTFhZjA5ZDNlZWFkY2M5MWY0MDA4Y2NjZTM0NDYxMiBweTNrCis3OTkwMiA3NjYwYzUzZDU3MTlmZTczNGVlM2Y5ZTMxNTk1MTdiM2MxNTFkMDIyIGxlZ2FjeS10cnVuaworNzk5MDMgODIyN2I2NGU4ZDc4OGUyMmQ4Y2FiMThhMTg4ZjQxZDRmMjZkMmE5YSBsZWdhY3ktdHJ1bmsKKzc5OTA0IGI4OTk4MTI4ZGUwOGI1NGYxNmM1OTcxNmIwOWU0Yzk3NzZjNjI4MWUgcHkzay1jZGVjaW1hbAorNzk5MDUgZTI0NDRmMjg3OWI0MzViNzg3YjMwNDg0NjBlNzQ0MmYyZmU3N2I0ZCBweTNrLWNkZWNpbWFsCis3OTkwNiA4ZTVjNzFjNzZlOGZhMTJmMjkyZWFiYThjNDliZDg2ZGVhOGNlOTdmIHB5M2sKKzc5OTA3IDZmMTk1OWY2NmQ2OTBhMzczMWMxYTg3YmNjOGE2MzE0MDE5NThhYWMgbGVnYWN5LXRydW5rCis3OTkwOCAyNGNlNGEwMDg5YmUzMjljMWNmOTlmNTNiYjVjZDMwY2FjMzcwMjcyIGxlZ2FjeS10cnVuaworNzk5MDkgN2NiZmYwYjFlYjVkMTg3YTYyYjIyMjVkYjM0OGNiNmJkNDliNzM0MSBweTNrLWNkZWNpbWFsCis3OTkxMCBhMTYyOGJkOTdiYjY4NTRmOTM1YTQyYmY4MmQyZjkzNjI0MWZhNzM0IGxlZ2FjeS10cnVuaworNzk5MTIgYTc5MmI5Y2IwZDdhYWJhMWRkZTAwMTQ3M2RlNjlhYmM5ZDFlNDI3OSBweTNrCis3OTkxMyAyNGQ3ZjU1NDAwZDNhMWFiOTQ4MDhmZjg1NGZhNTllMWU5ZWM5YTdhIHJlbGVhc2UyNi1tYWludAorNzk5MTQgODM3ZjNiYjE1NzVmYjg4ZmNkMTk4ZTQ3YTU2MGVlMTU3MzdkYTE0ZCByZWxlYXNlMzEtbWFpbnQKKzc5OTE1IDQ5OTE5YjMxZmYyMDA3NjZjZjI5NmEwNThlODc4MTEyMjg3ODY3ZjcgbGVnYWN5LXRydW5rCis3OTkxOCAzNWE5ZGEwMzk2NjMwMzFlMGVlMjU3Y2ExMWM5Zjc5YWQ4NzRmMmM2IGxlZ2FjeS10cnVuaworNzk5MTkgYTVlZDAzNzczZTRkZWI3NWNlYzdhZDVkOWM3N2UyOTZlNzA1M2M3OCByZWxlYXNlMjYtbWFpbnQKKzc5OTIwIGE1YjdkY2I5YWY4ZmEyODU3ZDI5ZDc3ZTY5YWFkZDIzNmM5ZGNiOGYgbGVnYWN5LXRydW5rCis3OTkyMSAzZWMxOTMxZmQyNTY0YjU5ODg0Y2I3ZWY1YmI5NjRkMTU3NGZjOThhIHJlbGVhc2UzMS1tYWludAorNzk5MjIgNDY0ZjY2OTYyMGZhZDY1MTc1MjgzNGUzYWU1YWQzYjczMWU0MmY4NiBweTNrCis3OTkyMyA1ZTAzOGZkMmMxNDMyODVmYjQ4ZjhiZGZiN2FkODU5ZmNlMDZhYmQxIGxlZ2FjeS10cnVuaworNzk5MjQgYzAwYjA3MThmZDUzM2E3MjBlOTFiNjBiNTE3NjA2MGViYzY3Y2E0NyBsZWdhY3ktdHJ1bmsKKzc5OTI1IDdhNGQwMjZiNjM5MDAyNDM0ZjViZjk5NTU2YzY3ZDgzMjkwM2E0YTYgbGVnYWN5LXRydW5rCis3OTkyNiBlZDI2MTYzMDcwZjU4YzFlZTg3YzQzNDFmYzdiYTVkN2RlYmVlMDhlIGxlZ2FjeS10cnVuaworNzk5MjcgM2FlNzA3OGQ0Mjc4YjJlN2U1ZGI4N2NmZDQ5MGNiZGE2ZDg4MTIzMSBsZWdhY3ktdHJ1bmsKKzc5OTI4IDYxNTUwYTEzMDJiMDdhNzMxNDM2YTg0YjJkODZlYjJiYWIzYjJmYjAgbGVnYWN5LXRydW5rCis3OTkyOSA0Y2MxNzU4ZGNkZjc4YzI3MmY2OTlkMWVlNDkyNmVhZjUyMzY4ZjZmIGxlZ2FjeS10cnVuaworNzk5MzAgMmJhZjFjZWU3MWYyYjY3MDg0YWJjZTE3NWQ2NmYwNWQ5NWY5ZGEwNSBsZWdhY3ktdHJ1bmsKKzc5OTMxIDgwNTUxMjMyOWM3NTM0YzQzNGZhZTAzYTA4Nzc2ZGE1ZjRlMDY4MzggcHkzaworNzk5MzIgNTVmZDRlOTg3YjIwZTA3MGIyYTIyOWRmOWIwMmYwNTgxYWFiZWJiOSBsZWdhY3ktdHJ1bmsKKzc5OTMzIDhjNmU0YjdhZDE1OGJlYTI5ODc3MjdkZWJiOWRhMWVlMmI3ODdmNjkgcHkzaworNzk5MzQgMDU5MmU3ODQxNzc3NzRmOTk5ZmJkYWFjZjFiNDFmNGQ2OGQxM2MxMyBsZWdhY3ktdHJ1bmsKKzc5OTM1IDk3YjU4OGVlNjJmMGZiNDYzZDY1ZmJlZGQxNTdmZjJkOTU2ZTc5NzAgbGVnYWN5LXRydW5rCis3OTkzNiBmMzRjYjUwMWY4ZjdlMzI2MzRjNzkzMTQxZmFkYWM0YTgwYTU3YWM3IGxlZ2FjeS10cnVuaworNzk5MzcgNTcwZDlhYzg0ZDc3N2E5OTRkZmUxZGZlZTA4Y2I5MTVkOTliNjc3YyBsZWdhY3ktdHJ1bmsKKzc5OTM4IDczMDFkYTQ5MWQ1YmI1YjQ2YmM4NTA4ZDlhM2FjZjFhZmExYTE0NzUgbGVnYWN5LXRydW5rCis3OTkzOSAzNDgwOWNmZDg2MDE2ODUyZWI5OWVjNjc4MzMwNWExN2EwODVlZjlmIGxlZ2FjeS10cnVuaworNzk5NDAgNWY4NzgyYWEwZjhjMjhhMzRiYzdiMDA5OGFkNmFlYjkwMzI0ZjM0NiByZWxlYXNlMjYtbWFpbnQKKzc5OTQxIDQ0MTY4MjI0YWM2MTA4MDdhYWUyODgzNmU4NGNkNGJlZmUxZmFlNGUgbGVnYWN5LXRydW5rCis3OTk0MiA4Zjg5ZWY5MDkwMDliNTFhNTQ2ODUzMDFkZGE1N2NhNDZiMDEzZTViIGxlZ2FjeS10cnVuaworNzk5NDMgZDAwN2Y1ZTVlMWYwMTlhMjgwMWMxNTYyMWYzNmZkMDk3ZGM2N2UxYSBsZWdhY3ktdHJ1bmsKKzc5OTQ0IGNmN2M5YmEyZGU2ZTk0MzRiZDVjNjk0YmFiNDdmMDM3MjczYzAxNDQgbGVnYWN5LXRydW5rCis3OTk0NSA0ZmVjMmU1ZTMzOThhY2JkOTQ0ODdjOWMxMzdjZDcwNDJmZThkOTViIGxlZ2FjeS10cnVuaworNzk5NDYgZTBlMzU1YWU5OWIyNjI2ZWM2MDM5Mjg1ZmEyYWQ0ZmE0N2I4NmQwYSBweTNrCis3OTk0NyAwMDYxZTllMzI5YzA1NmEwMDM0N2RlZDliZjM0MmM2ZTg3ODgxYTU3IGxlZ2FjeS10cnVuaworNzk5NDggNzkxMjM2NmI0OGQ4YjA2ZDE3ZjhjNDVjNDkzYjgwN2M3NGI2NjVkMyBweTNrCis3OTk0OSA5OTI2ZTEyYmY0ODUwNjRkMWViYWM4NDVmOWI2NzM3NzM3ZTU0YmMzIGxlZ2FjeS10cnVuaworNzk5NTAgZTE1OTNlMWU2NTJlZWM4N2I1NTQ1NDNhNjE2YzNiYTdjZTU1ZjFlOSByZWxlYXNlMjYtbWFpbnQKKzc5OTUxIDY5YzM3MjAzZmZjMWQ3OTA2MTc1OGM4MWNmMmJiNDAxOGFhNTJkNTYgbGVnYWN5LXRydW5rCis3OTk1MiBmMjQ0ZmVlOTg5YTk4MWNlYmQwYWRkZGEyMWMzNTBiMTdlZmI5NzZhIGxlZ2FjeS10cnVuaworNzk5NTMgODRhYWQ2NzA0NjBlNTA3NzlkZTIxMDk3NGQyODYzZWI2NDk2MTY3OCBweTNrCis3OTk1NCA5MDI4MDMzZTZmY2MzZDQ4MjcxMGMzMTUwMjFhMGMxNzM0N2E2ZTkzIGxlZ2FjeS10cnVuaworNzk5NTUgZjQ3MDU3NjM3ODdiNTg5ZDBjZWJmNjkwYWIzYTM1YThmMWRmNjgzMiBweTNrCis3OTk1NiBhNjVmOTFiYmMyZmIyOTViOWFmMDlkZWUwNDc5ODdkYmQ0OWI3YjE3IHB5M2sKKzc5OTU3IDMwYzgwMDIyODc0ZTdjOTA1NGU0MzAxMDFmMWFkYjdjYmUxMzgzNjIgcHkzaworNzk5NTggNjZhZDI2N2E3M2JmNjJhMGM5MWE0NzY3MzEwOTU4YWI1NTEzNjk4ZCBweTNrCis3OTk1OSBkMzk5NTUyMTZjMDdhMmNmZDllZjQyYWNlNzRlYzkxMzg1YzNhZDRhIHJlbGVhc2UyNi1tYWludAorNzk5NjAgYzJlMWRlM2YxMWZjMWIyNzZhYmQyMjU3NTQ5MTgzNTMzYWE3ODMwYyBweTNrCis3OTk2MSAwMjdkNTc1YzY4OWMxMDIwOWI0MmZhYTBiYjdhMjFhMmViMjUyMDkzIHJlbGVhc2UzMS1tYWludAorNzk5NjIgYjRhMTU1ZTRkMzEyOTJkYzBhMjhlZjE4ZGE4NDIxMzlkY2I1Yjk2MiBsZWdhY3ktdHJ1bmsKKzc5OTYzIDhlZDk5NmRjMGU1MjA5YmFhNmNlNTZkYjE4MzkwODZkMDBhZWE1ZWUgbGVnYWN5LXRydW5rCis3OTk2NCA5ZjljYjFjNTdmMmE3ZGNkMzcxYmE4NzMyYjdiZDNlYWRmMDhjNTVkIHB5M2sKKzc5OTY1IGM0MTQ3ODQ3M2VhZWFlNTJmZDhlOTQ2NGE3NDE0YTJkMmRmZTRiMWQgcHkzaworNzk5NjYgYTg0ZGRkOGRlOWQxZGJhMDJiM2IxYzkzNDVjNzcyMTk2ZTQ5OGUwNiBweTNrCis3OTk2NyBkZDQzZTBjOTMxNzVjYTY0YjFlYmIwZGFkNzAwMTA2OTJjODk2ZTExIHB5M2sKKzc5OTY4IDRhZDk1MmE2YWY5NTcxZDE0N2QwYWRjMGU2ZjMxNjg2YWY1ODZjYjUgcHkzaworNzk5NjkgYjRmNjBkZjMxYjE0MTJlZWYzNjE0OWVlNGRjNTZiZjc2ZjhkMTI5YiBweTNrCis3OTk3MCBlMzUxNTc5MTM3ZjNlNDI0YzBiNzBhODEzZjVkNGVhMmQ4MTNkYjNlIHB5M2sKKzc5OTcxIGZkM2NhZWE5MmNkOWY5MWVjOGRiYTQ3YTRmNzAxN2FjODVjOTIwNjAgcHkzaworNzk5NzIgY2I2ZjJjODlmNDM3MmNjMzY2ZDM2ZDc2ODE2OTJlMmFlNzg4ZTc2NyBweTNrCis3OTk3MyAwOTNlMmI3MTU2NDU3NDkxOTE3N2RkYThkOThmNWUxZjlhNTJmOTExIHB5M2sKKzc5OTc0IGQ2NTQzNzQ5MjQyNjE5NzA4MjI0OTg0NWZmOGYxMzkxMGJkODg4MzAgcHkzaworNzk5NzUgZjVjNGZjMGQzMzczMzZkYzM2YTU0MmRmZTExNDc3NzY4YTFlNGUwMCBweTNrCis3OTk3NiAxYTYyYmVlZDhkMTVlZjhkYWVmNDU5ZmY4NzE1ZTEyNmQ3ZGIwZTIyIHB5M2sKKzc5OTc3IDNiNjg4ZGExOGY1M2UzOTUxYTFjNmRlZTllMGFlZmYzNDQ4NjY4OGYgbGVnYWN5LXRydW5rCis3OTk3OCA3NWY5MjA5ZjNmYjk5MGY5OTA3OTkyZjg0YmIzM2U5OGQ0NGYxMmUzIHB5M2sKKzc5OTc5IGFjMDYxZWYxNDg3ZTQ3YjY5N2IzYmEyMjM5NDM5ODZmZDdmYzQ0YTcgbGVnYWN5LXRydW5rCis3OTk4MCA5ZGUyNjFjZjViYzI5OTZjNjk1MmQ2ZmE4MzhmNjJmZDY4Yjg3YmIxIHB5M2sKKzc5OTgxIGFmYmJjOTgzZTBiZDA0MTI5NTRhNWM1YmMzYjI5MDZiYjE5MWNjZDEgcHkzaworNzk5ODIgZDAzZjVhY2I0Yjg3ZWY2ZTVmMTgzZGY1ODRlNjE1MzlhZjYyYmE3ZSBsZWdhY3ktdHJ1bmsKKzc5OTgzIDYxMGI2ODVlMDUyNWJkNmM0MTc0MGZkMDg5NjdmYTkxYjFlNGJjZWMgcHkzaworNzk5ODQgYTI5MjkxY2U0ZmNlM2MxZDg0MmRmMzJkODlkMDFmNjUzMjI3MzBhNSByZWxlYXNlMjYtbWFpbnQKKzc5OTg1IGVkZWIwN2M0MTFhZjI5NDc1YzBmNDUyMjIwM2ViYTg1ZmEzM2Y5OTggcmVsZWFzZTMxLW1haW50Cis3OTk4NiBlNDc1Yjc3MWRkNGMwZjk4ZDE0ZmMzMTY4MGU2ZjZjMmYyYTdjZGRhIGxlZ2FjeS10cnVuaworNzk5ODcgMmFlNWY2MGUyN2M5OTU2ZGFlZGM2MDExMDJlNDQ0YTRlMWRiNjM4OCBsZWdhY3ktdHJ1bmsKKzc5OTg4IDU2ODBiYTJkYzljMjZlZWNlYjY0NzAzZTRjZjlhMDhhODIwYzMyZjggbGVnYWN5LXRydW5rCis3OTk4OSBiYWUzNzkwM2Y3OTc1ZDY3NzhjYTNjNTI0ZWFiMWZkYjY0OTk5MzUzIHJlbGVhc2UyNi1tYWludAorNzk5OTAgYWQyZmYxYzM2YjFhYzE2Y2U4Zjg0YWE5MjY1MGZiNGNhNWI1OWFhNyBweTNrCis3OTk5MSBkZTUxNTE0MGI1ZmJlNGM0YjBjYmVhOWIzMDg2NDM5YmI3Y2Q1NmY4IHJlbGVhc2UzMS1tYWludAorNzk5OTIgZmVkYjFmOTMyMmRmM2MzZmExMTBhZDc5YzNkNGUzYWEyNmIyNjE1MCBweTNrCis3OTk5MyA4MWQwZWE2ZDJkYTM3YTMzOTFlODE5ZTZmNjdiYzRhOGE4YzJhZjYyIHJlbGVhc2UzMS1tYWludAorNzk5OTQgZTY5NzJmMWM5ZDZkMDE2NzE1YzljNDFiZjhjZTBkZmU5OWY4YzQ1MSBsZWdhY3ktdHJ1bmsKKzc5OTk1IDYzMTQ0ZjE0NTRkMjAwZjkxN2IxMTBmMWVmNGQ4YTBkY2JiM2NkYTUgbGVnYWN5LXRydW5rCis3OTk5NiA0MmU2MDU3Y2YyOGZkN2M5M2UzMTg4ZWYwODQxMzFkZGRhNWRhNGQ4IHB5M2sKKzc5OTk3IDg2MGZjZWRhMmQ4OTQwYjU0MDc3NjE4OGRlZWM0ZWU3OWJhM2M0ODAgcHkzaworNzk5OTggNGYxMmRjYjljZTZmMTE3N2Q5N2ZkMmQyN2YyODMxMjM4YjZlN2YwNyByZWxlYXNlMzEtbWFpbnQKKzc5OTk5IDgxMDU5MzkwODUyNzc3NDA0NzAwZDUyNTU4MzM0YjAzNjZhMDg3NWUgcHkzaworODAwMDAgOThhMTVmYzM4YjhiZjMxZTdmNzhmN2Q3ZmEzN2NlYTllOTdjZjBjYSBsZWdhY3ktdHJ1bmsKKzgwMDAxIDExNjNjZDhjMzk1NmRiMzIzMWU5YTEzNGUwOTE2MmUzYzQ5YjM4YTIgcmVsZWFzZTI2LW1haW50Cis4MDAwMiA5MWViY2ZmNWJiMjRjMGM4YjQ0NzkzODVkZjYxM2ZjMDVmOWZlMmZlIHB5M2sKKzgwMDAzIDU1NzY2NTRlNGI5MWE1NWM5Y2Y5MDMwMDg1ODBkNmE5ZDFiZmJiOGQgcmVsZWFzZTMxLW1haW50Cis4MDAwNCA3MTNmMWY2YmYzMzliZWY3ZmYzNDRkMWExYWE2NTIyYTc3Yjc5YTE3IGxlZ2FjeS10cnVuaworODAwMDUgOWQxMDM5MDQ4NDk4YTg4ZWJlMTU1NzYwMmQwNTYyYWExMzc2ZjJiZiByZWxlYXNlMjYtbWFpbnQKKzgwMDA2IGI4MWQ4M2E4OTlmMzY3OWZkYWQ3ODU1Y2UxNjA3NmIwYjU1ZDkxMzggcHkzaworODAwMDcgNTdiYmZjZThiMjc4ODhmNzY1NzI4NDliYWJlZGU5NjJlYjlkNTg3OSByZWxlYXNlMzEtbWFpbnQKKzgwMDA4IGEyZjViM2IxOWViMjdlZTkxZjYwNTMwYmIwNzM1MzBjOWE2M2M4NDkgcHkzaworODAwMDkgMTk1MDcwZTg1Y2UxNTIwN2U3NjEyMGU4NTNhMDBkZjE3ODA2NDJlNSBsZWdhY3ktdHJ1bmsKKzgwMDEwIGYxYzAzNmRlMTliN2QxNjU1MzE4Zjk2YTI2ZTE3MGI0NmUxYjIxNzUgcHkzaworODAwMTEgODk3NTJjMDNmMzQyY2U2NDcxZGI2MTM1OGNlOWI5NWQxNzhkZGE0ZSByZWxlYXNlMjYtbWFpbnQKKzgwMDEyIDc3YzQ5ZTczNTI0OTc5YWFkNDBjZTAzMTAyOTc0MTVjNDliMjNkNDIgcmVsZWFzZTMxLW1haW50Cis4MDAxMyBkNDUwN2Y2MTUzMWRjYTRhODY1M2Q4MmViZGU0ZGI0NWJmYTNmZGY3IGxlZ2FjeS10cnVuaworODAwMTQgYjUzNmE4YTk2ZmE5YTJkNzcyMWQ1MWMyZDVjMWRlNjQwZDU4OGQ0OCBsZWdhY3ktdHJ1bmsKKzgwMDE1IDA5MTU4ODk0YTNiMDVmMmIzZWVlZTMwMjQ5YWZjODMwMGE2YTMyODIgbGVnYWN5LXRydW5rCis4MDAxNiBkNDg2NzA1ODkyYWI2ZTFiNjJiYzBlY2YwOTIzNTA2NDIwMWI0NWViIHB5M2sKKzgwMDE3IDBhMWNhMGQ3NDRhNDI2OWM1MzZlYzg2MzAzZWRmOGQzNmJiYmM1ZjggbGVnYWN5LXRydW5rCis4MDAxOSAxYTkwZmUzN2I1OWQ3MzZjMzRjOTkyZjk0OWJhZjIzZjk1ZDJlOWYzIHB5M2sKKzgwMDIwIDYwYTdlNThhMTBkYWRiZjRlNjViOTdlYjQzMThhNzg0YzY1OTk5NzQgcHkzaworODAwMjEgNTIzNzcyMzVkMDU1MjExMGNmZDMwNDJhMTQ2NGM2MDJhNzY2MTVjYiByZWxlYXNlMzEtbWFpbnQKKzgwMDIyIDYzYjU4MTI0YTU1NGEzNmYxYTdjM2MwM2ZkNTZkNDA0N2E1MWRhYTggbGVnYWN5LXRydW5rCis4MDAyMyA3YTM5MGViNTBkZjEzNDMyMzJiNjc1ZjBiMDdiNzY5MjlkMjZkMGI0IHB5M2sKKzgwMDI0IDY1MWVkZmQyZGIzODg4MmY4NWQ4ODkwZDU4Y2I5MDRkZTVhN2JmOWYgbGVnYWN5LXRydW5rCis4MDAyNiA1ZThlNmU3ZWVkYjIxNGM1MTIxZjc5OWE3MGYwOTU0YWI3MWMwOTI1IGxlZ2FjeS10cnVuaworODAwMjcgYThiZWI2MTQ5MjJmOTAyYzk2NDkzODhlZTYwNDQ2NmYwZWFiMjM4ZiBweTNrCis4MDAyOCAyNTE3MzIwOTI2MDEzNTRmMmZjOWUyYWExMTQ0N2JiZDllYjViNzk3IHJlbGVhc2UzMS1tYWludAorODAwMjkgMDE1ZThmN2Y1MjY0ZjRkMTExNDJkMjZkNTdhMDYyZmIyZDBlZjQzZiByZWxlYXNlMjYtbWFpbnQKKzgwMDMwIDQ3YTU3ZGY2OTg5NmZjZjBmNTc3OGQ0MzRlY2ZhOGUyZWQxYWQ0MTYgbGVnYWN5LXRydW5rCis4MDAzMSA3OTk0MjY5YWQzYTFmYTc4ZGE0OWM2MDA1M2Q1NzcxNTdiOGIyNGU2IHB5M2sKKzgwMDMyIGI4ZjI5N2NkZmFkZWYxZmRlNGU2YzgwOTFlY2I5ZGVhOGY3MjI2ZGMgcmVsZWFzZTMxLW1haW50Cis4MDAzMyBkZjJlOWU4ZDQyOGVjZmRiMzlkZTNiYWVhZmU2NjAzYzM0MzJkNjRmIHB5M2staXNzdWU0OTcwCis4MDAzNCBiOTJiNTdmZmIzMWUxNjhlZjUyMTdhZTE5ZmFkMjQyNTY1OGFkOTA3IHB5M2staXNzdWU0OTcwCis4MDAzNSA3Njk4ZDFhMTBiMDFjMDIzY2RlNjQ0ZjI5NzcyY2RiZTNmMzA2ZDA2IGxlZ2FjeS10cnVuaworODAwMzYgN2JjZWU3MTcwZDdiYzM3MjBkOTM3OTQyY2EwMzdjMDFkZmM4MGE1MSBweTNrCis4MDAzNyA2ZmZlNmY4Y2EwOTE2NDYzODQyOWFiM2ZlMmUxNDQwNzM5ZWFmMzc3IHB5M2staXNzdWU0OTcwCis4MDAzOCBhNWM4ODZlYTRmNmYzMTljYzM4M2Q4ZDlkNzA2MTkyZGJmYTVmMWI2IHJlbGVhc2UyNi1tYWludAorODAwMzkgZDZkZWUzYWQyNTliNTZiZWRjN2U4MjNkYTAwM2ZlMjk2Y2MyMTZiMSByZWxlYXNlMzEtbWFpbnQKKzgwMDQwIGQ0ZTIxMDMyM2Y3MTM3NDAyNjZjODY1ZmJlYzc2YTM3MzAxYjczNjkgcHkzaworODAwNDEgMzQxYTZiZGNjZDJlNzJhMzg4Y2U3NmI1ZjRkMmFlY2VmOTdjYjMxMiByZWxlYXNlMzEtbWFpbnQKKzgwMDQyIGE5MjEzZjkxYWIxNjk4MThiN2Y5NWQxYTg5MzE4MjMxOGMxZDQzMzEgcHkzay1pc3N1ZTQ5NzAKKzgwMDQzIDA4MjRmMjY4NjFiYWJjM2YyMTJhOWQzNmIyNzEzMDYxZTU4OWYyZGYgcHkzay1pc3N1ZTQ5NzAKKzgwMDQ0IDcwMmI2Yzk5ZTc1N2M3MTA2NDFkNDg4MDUwM2UzZDIxZTYxYzg3NTAgcHkzaworODAwNDUgN2UwY2U1ZjYzYTNiY2E0OWFkMzExZmU4MTExMDM1YWNlNmM4NzljNyBweTNrLWlzc3VlNDk3MAorODAwNDYgYjRjNjUzNDMyY2I2NzRjNjY5MjI2ZjczNWFkMDk0ZDUxYzQ3NDRhNSByZWxlYXNlMzEtbWFpbnQKKzgwMDQ3IDFkZDRlZmRlZmZmMTU4NzYzYjU3NmE3NTRjMmNiZGQzZmM3MTk3ZGQgcHkzay1pc3N1ZTQ5NzAKKzgwMDQ4IGI5NWJhMGNjMWI3ZTUxMTkzZThhZWUyODRhNWEzN2FkMGRiNmI2NzQgcHkzay1pc3N1ZTQ5NzAKKzgwMDQ5IDVjOTlmZGI3ZGE3Mzc1ZDMwNjA5MjNmYjFlNGJlYTAxNWQ0MGRkNTMgcHkzay1pc3N1ZTQ5NzAKKzgwMDUwIGNiODc0NWZhNjU4ODQyOTFkMjBlNTU4ZmYwZDJhNzMzNDdmMTdlOTkgcHkzay1pc3N1ZTQ5NzAKKzgwMDUxIDM2YjAwNWJjMDg4ZmY1MmFhYWFjZmU2YzE5N2JjMTYxOGU4NjRmYWEgcHkzay1pc3N1ZTQ5NzAKKzgwMDUyIGYxYTJmM2I2YmZjNjQ4NTNmNzFiYmM4MjNlYTNmY2ZmMDgyNzZmMzMgcHkzay1pc3N1ZTQ5NzAKKzgwMDU0IDViNmZlN2QzNTk4YmNlMjJhYzUxMmM4NDMzZjRlZGNjNGJkNThkNmQgcHkzay1pc3N1ZTQ5NzAKKzgwMDU1IGU5ODRmOWUxNTY2NmNlNmQzMmVlYTEzYzExMDNmMGU5MjVkNTIxZjYgcHkzay1pc3N1ZTQ5NzAKKzgwMDU2IDUxN2NjNGQ1OWUxMmUyNDE4NThiOTE5NmVmYjZiZjQyZmE1NTY0NjYgcHkzay1pc3N1ZTQ5NzAKKzgwMDU3IDk5ZTljOGQ2OTBhYjk0ODA3MTNjYTc1ZGIwOWQ0MmZkNjg4NTFjOTUgcHkzay1pc3N1ZTQ5NzAKKzgwMDU4IDI4NTUzNTY0ZjFjNjZhNDYwNzJiZTdmMDdlNzRkYjUxNjdlZTkwYTUgcHkzay1pc3N1ZTQ5NzAKKzgwMDU5IGZkN2ExM2YwZWJiZGRjNDBhODZiODMwYThmZTQzMjVmNjNlZmM0NjMgcHkzay1pc3N1ZTQ5NzAKKzgwMDYwIDg2OTNmYzA2YWM4ZWM4ZTFkY2ZiMjg1NmI3YzBjNWJkNjI1OTQzNDggbGVnYWN5LXRydW5rCis4MDA2MSA3MzViZWQ2YzhlMzYxZDg0NzE4ZjFiNmU5NjViYWYzMzI2MWU2Nzg3IHB5M2sKKzgwMDYyIDY0OTNhZTcyNzkxZDM3YmNmMTdjMDJhMzllNDU4MDkyODM1M2NjZGEgbGVnYWN5LXRydW5rCis4MDA2MyA0NTBjNjkyMTA1ODFlOTRjZWQ4OGExYWJhZjlhMmEzZTc3MjM0Y2Q1IHJlbGVhc2UyNi1tYWludAorODAwNjQgNmJiZjA3YTNlMDFiNWMwODI1YThkMTg4YzMyNmVlOTc0NzY5OGZjMiBsZWdhY3ktdHJ1bmsKKzgwMDY1IGJhZTc5NzY1MTYwZDIyMGQ2MTI5NmZlMTY5Mzk3NzMyNDc2MzcyMWMgbGVnYWN5LXRydW5rCis4MDA2NiA2MmQxMTc4NTIwNGY0MDg1NmYyYzNlY2ZmMjhhNWVlNWE3ZDkwZTkyIHB5M2sKKzgwMDY3IDM2NGYxYWMzMjI2NGVmN2Q0NGRhYTUxOTllMDAwMDg1ZDZlMjNjNjkgbGVnYWN5LXRydW5rCis4MDA2OCAyMTI2N2JmMDcyMGUwMTY2MWI3M2UxMGI4MTc0MDlhNmI3ZTZmZWJlIGxlZ2FjeS10cnVuaworODAwNjkgZmE5MzAwZmNiMDA0MDg3ZTI4ZTA3NTM1NGM2YzA1N2RjNGM1ZjcyYiBsZWdhY3ktdHJ1bmsKKzgwMDcwIDYxMDJkODY4NmFhZWRhNzlmNjBkN2EwNjRhMTQ5ZWMzOTY2MDNkZmQgbGVnYWN5LXRydW5rCis4MDA3MSAwMWQxZmQ3NzVkMTZiNTY5ZjJjZmJmMGIxOTY0Yjc2ZDVkZDY1YjJkIHB5M2sKKzgwMDcyIDIyMTYzZDhjYWYzZTMzY2JlNWRhOWNmZjY3ZGQyYmIzNmQyMjJhZDIgcHkzay1pc3N1ZTQ5NzAKKzgwMDczIDkwNjljYTUxZTYxNDgyODM2YTUzNjc4NTMyYzYxM2VjZTE2MDRhMzkgcHkzay1pc3N1ZTQ5NzAKKzgwMDc0IGQ0NDNkODVmNjJjMTc3ZDY1MTE4ZGQ4ODJmNDA5MTQ2NmRmZDJlOWQgcHkzay1pc3N1ZTQ5NzAKKzgwMDc1IGNhMTFjODMwZjVjYzlkYWNkZmQ1OTNhMDBmMTQ0NmZhOGZmNWFlNmMgcHkzaworODAwNzYgYjEyNzZmY2RjM2JkNzUwMjBiMDI0MDUxYjhiMGY2NjU1Y2Y5NmFjZSBweTNrLWlzc3VlNDk3MAorODAwNzggY2RiY2E3YzM0MzFkMjZmMTg1NjhiOGQ3MjJkZDJlZmIxYTE3ZmNlNSBweTNrCis4MDA3OSBkMzUxZTE1ZmVlMjhmMDlkZGQ5NjY4MTA2ZmU5YWVhYmJjZDMwZTdiIHJlbGVhc2UzMS1tYWludAorODAwODAgYjQwNDM2YmNmNGIyYjQ2ZDUzNjNjMTQ5M2RkMTU4ODJhZDlkYmZlMSBsZWdhY3ktdHJ1bmsKKzgwMDgxIGM1YTRkOWQ3MmY5ODIxOTIzNmUyNTkxZTI4NTMxM2UxN2YxMjdkY2EgbGVnYWN5LXRydW5rCis4MDA4MiA3ZTg2ZjQ0MjEyZDY1NWE1NGIyNTRkNzA4ZWU0MjBhNjBjYTFjMDczIGxlZ2FjeS10cnVuaworODAwODMgMTRmMzEwYTZlNDkyODZjN2FlZjk1NzQxYjJjZDlkYzg2YzU3MmYyNSBweTNrCis4MDA4NCA0ODVlMzRlYzFhMWE4Yjk2MzZlYzhlZTRlMjZkOTg4NDQzNGNhODQ0IGxlZ2FjeS10cnVuaworODAwODUgNzY0OTQ2Mzk5MzUyZGYwY2NiNzlhZDdjODJmZjkzYzAyNGZmM2E1ZSBsZWdhY3ktdHJ1bmsKKzgwMDg2IDQyMjk2NjJlZGU4NzJkYmVjMDI3ZDViYzI1NDI5ZGI5YWY3MmI1ZjMgbGVnYWN5LXRydW5rCis4MDA4OCAzYTQ0NzNiZWVhZjUyMzk1ZWRkNTUyYzY3ZGQ5ODMzMjAyYzg5MjBiIGxlZ2FjeS10cnVuaworODAwODkgZjRiZDNiMmNiMDAwZWIzMjU3OWFiMDE0NzQwM2MzNWFkZTdmMjU2ZiBzaWduYWxmZC1pc3N1ZTg0MDcKKzgwMDkwIDVlODUxYjI5ZWQ5NWIxODdkMjQxZjJhMGU4MDQyYWZmNDU2NjEyMzAgc2lnbmFsZmQtaXNzdWU4NDA3Cis4MDA5MSBjMWQxZjAwMGI0MDRlNjUxZGVmZGFiZGI2ZTZkOTc4YzAyZTlhOTU5IHNpZ25hbGZkLWlzc3VlODQwNworODAwOTIgNzNkNzhmZWY5MWQ3MGZhMmZlMjZlYzc5MTMwODY3MmUzZDZhYjA5ZCBweTNrCis4MDA5MyA1ZmE0MDJhNDZmNWE3ZjdlMzYwNjhiNTMyNmNmZjBiZjc2MTk5NjZjIHJlbGVhc2UzMS1tYWludAorODAwOTggMzI0MDE2NzE4NjIxODA4N2Y1MDAzZmQ1MDc3YjE1ZWFhYmQ0MzMyMiBsZWdhY3ktdHJ1bmsKKzgwMTAwIGY5OGJkODVhZWJiMGY1MzcxODc1OGQ1MWU5M2NjY2Y3MmJiZTM5MGYgcHkzay1qaXQKKzgwMTAxIDdiOWUzMjhmNzUzMzIxZDBiOTdmZTc0YmNlYTNlNGE3NjdlMTg5OTIgbGVnYWN5LXRydW5rCis4MDEwMiA1MWI4NTUxNmQ3ZjkzYTgzZDIzYTRiMDg0NGM5MjA4NzA4ZTViMjNkIHB5M2sKKzgwMTAzIDM1YWI1Y2JkN2U3OTBjMDIzZTU4OTI1OTAzYmY1NTY1ZjVmMjEyYjYgcmVsZWFzZTMxLW1haW50Cis4MDEwNCA4MjBiN2UwYTZmMzhiMWI1NDE0Y2UwYjkyZWYxODRmZDQyZDc0NTU5IHJlbGVhc2UzMS1tYWludAorODAxMDUgMTM3YjQyNGUyZjc4NGJkOWRiODQ1NjU1YTcyZDU0MDUwMWMzMDEyMCBweTNrCis4MDEwNiA4MTI5Nzk3NWQyNTNlOWNmMzdiZTRmZmJkMGRiNGRjYWIzZDA2YjU1IHB5M2sKKzgwMTA3IGFmYjI1YzJkMDU2MTk0Y2RmY2VkOGU0ZjBlNDkxMTk0ZWZmY2JhY2QgcmVsZWFzZTMxLW1haW50Cis4MDEwOCAwMDU1MTBhYzA5OTViNmZmYWMyMDgwMDE5NzIxNDAyYWJiNzBkYjZlIHB5M2sKKzgwMTA5IDg3ZDEyMGI5ZWZmMmFlMzZmYjQyYmY2ZWE3NjYxNDEyMjE0ZTc2NmEgcHkzaworODAxMTAgNTQ3ZjMwYTBkNGIxZWQ2NTY4ZTI1ZGVjOTYzZjM2MmVmMzNmYzk3MyByZWxlYXNlMzEtbWFpbnQKKzgwMTExIDRjYmIwZmRlYmY3MzdjYWRiNDBhY2VmOTJlYmIwMmQ3NjcwNTM1NDAgcHkzaworODAxMTIgOTUxNzhlMTdlOTYxMGNkODA0MTM4NmJhMGNjZTgwMjhiYjdmMTRiZiBweTNrCis4MDExMyBiZGFhMjg5ZDlmMTk5ZDhlMWU2Zjk0ZTNmNjM1NzdjODJiMzQ3ZmMxIHJlbGVhc2UzMS1tYWludAorODAxMTQgMDQ0MmU3YTQxOGNlYmZjMzk0N2Q3ZDNmNTk3Y2UxMzhjZDNkMWNmMiBweTNrCis4MDExNSAxMTY0MGMxYTQ2Mjg4YTg2ZTBlNDgwNDMwZDA0NWE2NThjMGY2OGEzIHB5M2sKKzgwMTE2IDE1YjA5Y2NmYWM3Y2ZkZWVmNmM0NWM0YzljNDQ4NGEwYjM0Y2I3NWQgcHkzaworODAxMTcgNjMzNWNmMzQ1YWZhZTgxM2IyYzViMGY1MDQwMjA1NmRiODFjZTIzMiByZWxlYXNlMzEtbWFpbnQKKzgwMTE4IDQ0YTc1MDdmNmRiNTQyN2Y1N2RiOTU1ZWRhMGExNzFhMmI3NjI1ZGIgcmVsZWFzZTMxLW1haW50Cis4MDExOSBjYzEwYTE1Mjc1MjFkMTA2YjhlYTNhOTc5ZDRmYTIzOTcyZWYwZjUwIHJlbGVhc2UzMS1tYWludAorODAxMjAgNDVhZWRjYWU5YzQ3OWMyMDY2NjA0YWRhNjljZTg2NmQ4MzY0NGFlMCBsZWdhY3ktdHJ1bmsKKzgwMTIxIDhhYjViYmFlNWVmZTllODQ5ZjA4ODVjYzE0MzQxZjNkNjFiMzI3NDUgbGVnYWN5LXRydW5rCis4MDEyMiA4MWJiZDU2NzBlYzM5ZWM3MjcyMWNlZjUzMGJiZGQ2ZmE1ZDllMTc5IHB5M2sKKzgwMTIzIDYzYjgxNWNjNmY0YjFmZDliMDE4ZTJiOTIyYWVlMDNiZGQ1NWY1ZDYgbGVnYWN5LXRydW5rCis4MDEyNCAzNjk2ZDE3YTEwYjNhNDUyODFlZDBhZDkyMDJjNzc5ZTY2MWY0MTJmIGxlZ2FjeS10cnVuaworODAxMjUgYTc0OTFkNDdkNDU0NmZkYzJiZjhlMDZlZjQzYmRmMDk4OWNhMjE4MiBweTNrCis4MDEyNiBjZTYyNGNjYTIwMmFlOTE0ZjI4ODlmNzkzOWJiNGNmODJkYWVhM2NiIGxlZ2FjeS10cnVuaworODAxMjcgNDYwYTk4NGE5ZWQ1NzA3ZDJmYTM0N2E3YmI2NGQ1NDk0NjI3ODdhYSByZWxlYXNlMjYtbWFpbnQKKzgwMTI4IDc3MzQwOGNhNWVlNjMzZmZkYWMwYzlmZGYwMDFiYjRlYjdlZGFhNGUgcHkzaworODAxMjkgNzg0YTAyMjY2NGUzYTJjMTliMjUzNjc5ZDQzNjIxOWQ3NDdiZDJiNiBsZWdhY3ktdHJ1bmsKKzgwMTMwIDBhMDFhM2VhMTQwYTk3ZTA0ODJkYTNmOGJmNGY4Mzg3NWZmYWNiODMgcHkzaworODAxMzEgNjhmZDcwYTllNzdhZmRjZTdlZTljNjczMjA2ZjI0MWE2ZTQyMjllNyByZWxlYXNlMjYtbWFpbnQKKzgwMTMzIDVlMWRiYzNhZTc2Nzk3Yjc3NzYwODcwNTFiNzNjMzhmNTM3MjgxM2YgcmVsZWFzZTMxLW1haW50Cis4MDEzNCAxYTMzMDRjZTlhMmU3YWZhNmFkZTNkY2UwYTBkMTlhYjM3ZTAyNGQxIHJlbGVhc2UzMS1tYWludAorODAxMzUgZGM3NjViY2EyNGFkZDg0ZmI1ZGU1OTUwMTFlY2Y5Y2U4N2NhOWFjNiBweTNrCis4MDEzNiBlNTM5MGZlZGNiNmIxNjJjM2RkY2FlMjE5ZjVjNzUwMzIxNjRhNGMyIHJlbGVhc2UzMS1tYWludAorODAxMzcgN2I2OWU2MzBkMjM3NzkwYjU2ODVmOWYyMDgzMDRmOGY0Nzk3NDI2MyBweTNrCis4MDEzOCBjNTMyYWZiMGZhODkyODAyZTEzZmZjZmZlOWI1NDNkNGU0ODE2OWUxIHB5M2sKKzgwMTQwIDA0NmY5N2VkNTY3OTRlZmRlNzUyZDhkYjgzYTI3NTg0YWU0NmIzOGEgcHkzaworODAxNDEgMGUzNmNjMGQ2YWIwMjAzMzY5OTIxMzk1YWExMTYyZTIyZDZlZWRmYiBweTNrCis4MDE0MiA3MzRkZDJlZGExY2M0Y2E0YmE2MDEzYWY1ZjY5NjRhNzVhYzgzZGQ3IHB5M2staml0Cis4MDE0MyA3MzIxYzdkNjQyYWRkYTk5NTgzMzI3Yzc2YjBlNDZmNzljZDJkMWMwIHB5M2sKKzgwMTQ0IDI1ZTM1ZTM4MzhjNzc1OWZkN2Y3YzY4YjI3Y2RiMWVhNGUwZTg5YzUgbGVnYWN5LXRydW5rCis4MDE0NiA3YjA2NTY5MjljZGI5MjQ1MjUwYmI0Y2QzMDU0MWQ4MDczZjIxZDYwIGxlZ2FjeS10cnVuaworODAxNDcgMjkzOGJmODk5ODYzODk1YTRkMmEyYzg5YzRiYmJkN2U3NzI4ZTc3MSByZWxlYXNlMjYtbWFpbnQKKzgwMTQ4IDRmMTIyMGYzZTJjN2RiOGEyNjc1MWE0NGJhMGFiMWM0MDkxNmMxMzIgcHkzaworODAxNDkgNGQwMjA4NjYxYjFmNzM4N2E0YzlkNGQ1YzJlMTc4ZmY1MDFiNThmOSByZWxlYXNlMzEtbWFpbnQKKzgwMTUwIDM4NGRkNDQ5YTRlZTg4MmViOTAwYWNlOGNkZWQzMzdlYzYwYWI4ZjkgbGVnYWN5LXRydW5rCis4MDE1MSA3NDYyZTc1MmYwZmEyOGJhYmRjOTA5OTUxODhmOTgwNjA0NDBhMDEwIGxlZ2FjeS10cnVuaworODAxNTIgMzNkNDc5YTM4NjY2YWM1OTVmM2RkYmIxZDEyM2MyMzE5MDE5MDAxMyBsZWdhY3ktdHJ1bmsKKzgwMTUzIGYyZTJiMTk2ZGI5MjJjMjc4ZDc1MDEwMjVkMmU3MzRkZmJiNzQzZDEgcHkzaworODAxNTQgZTVmNmRlMThiNzE1NmU1YzE0MjhjMDA2ZDUyMGI3Mzg5OGFiNmUzMSBweTNrCis4MDE1NSBjYzM4MmYzOWIzOThjZjk5ODFmMTgwODJkZTNjZmRlZDNjNzkyN2YyIGxlZ2FjeS10cnVuaworODAxNTYgZDdkNWM3NjU0NWZiMzdmNWMwNWVkNDBkY2NiOTdmNGJmNTcxOGFmYSBsZWdhY3ktdHJ1bmsKKzgwMTU3IGJhYzk5MjI5ZGEyZGNhOTRiNjNjZmViYWJkNmZlOTFlNGE5MmRlN2YgcHkzaworODAxNTggOWFjZTU1YjI5ZjdlOWNlMGJiNmQyM2IzNDUyNmEwZTVkNTdiMjU3NSBweTNrCis4MDE1OSBlYjMwZTY2MmZkNmFjMTI3NzNiYTMzZWViYzI5YmExMDkwNzU4NmZmIHB5M2sKKzgwMTYwIGY3MzA3MTJkOTdiOGRkYzJiNjJlNjM2MWQ4ZDFlZTNmMjRlYWE3MTQgcmVsZWFzZTMxLW1haW50Cis4MDE2MSBkNDE5ZTczNzMzNzAyMTY1YmM1MzZmZWFlMDMxN2RiN2IxZjZlOTkyIHB5M2sKKzgwMTYyIDMxNmJlYzNmMThlYzkxNTEwZGNlMzc3MDEzNzBkYmE0YzI2YTMzYjEgcmVsZWFzZTMxLW1haW50Cis4MDE2MyAwZjM3YWZiOGE5ZjJjMGU5ZjU1MDZhM2RkOTlhYzUwNGQxYTdlM2JhIHB5M2sKKzgwMTY0IGQzZWFiNDU5NzM5NTFiOGMwNmVmMDJiOWU4MmUwMGUxNDU2YmQ3NWIgcmVsZWFzZTMxLW1haW50Cis4MDE2NiA3YzkwYWMxOTRlNDA4MmQ2MDMzMjhjMWRjZTk2ZDdhYTgwMDhiMmI0IGxlZ2FjeS10cnVuaworODAxNjcgZTA4N2I1ZDNkMTkxYzIxMDU4N2M3MzBjOTkyNTA1ZDk5OTQzMjZjMSBweTNrCis4MDE2OCBlYTQyYWY5NjhkOWQwNTVhMmM5ODQ5NWUyY2U1ODBkZmRkMmE4ZmIxIHJlbGVhc2UyNi1tYWludAorODAxNjkgOGVmYmNjZTA3NTdkZjYwNDdjMTg5NmZiYTE0NDM3ZmU1M2Q4N2Q0MSByZWxlYXNlMjYtbWFpbnQKKzgwMTcwIDdlMjcwZGNmNGJkNTkwYmI5ZjUwNDk4YjJmZWUyMDM1M2Y2NDgyODIgcHkzaworODAxNzEgMGMwZDgxOWVkYjlkY2Y2OTdjY2YyMzA4YTFiZWU1YmM1YTgxNDg1NiBsZWdhY3ktdHJ1bmsKKzgwMTcyIGEwN2Y2MDgyNWUxYWI5YTFiZjEwMjg5MWRmOGQwZDhkYjcwYjkzZDIgbGVnYWN5LXRydW5rCis4MDE3MyBhN2U2OWE1ZjIzMzc4NDYxMGUwNzg3OWM1NTRiMDliNWQxMTZmN2Q2IHJlbGVhc2UyNi1tYWludAorODAxNzQgNmNiZTg2NDU3MTdkM2U5OWRkMmE1NjgzMWI0ZGI5N2FjNzZjMWM3YSByZWxlYXNlMjYtbWFpbnQKKzgwMTc1IDY1NGUxY2M5YjRmZjU2YThmNWU1YTQ5YjJiN2JlYzc4YWM1Y2ZhZTAgcmVsZWFzZTMxLW1haW50Cis4MDE3NiBmYThhMDNkZmMyZDFjYjZjNjM2ZWI2MTJmYzcwMjU1YmRhYzlhYzhjIHB5M2sKKzgwMTc3IDEzZDg2ZmM2OTk0MDgxYmVhOTExNmMwYjgzOTZiZWRmMDhmNjAyMjMgcmVsZWFzZTMxLW1haW50Cis4MDE3OCAyZjU0NzU2YWViMTE2NmM3ZjBiMTg1MDA5YzRlMTNjYjBhNzQ5YmFhIGxlZ2FjeS10cnVuaworODAxNzkgMjI3MzdhOTliZjhjNDQ0YmM0YWZmM2ZiYjk0NjkyMmE4ZmQ3NThkNiBsZWdhY3ktdHJ1bmsKKzgwMTgwIDZjYjFjNDgwNGY5YzhiMWVjZjcyOTU1YzU0NWU2ZTRkOGNjNjFmN2UgcmVsZWFzZTI2LW1haW50Cis4MDE4MSBmZTZiNmMxODliYjQxNTNkNWNhYmEwZDE1ZGM3NTI2YmM1NGQ3Zjg5IHB5M2sKKzgwMTgyIDFmM2QyZTYxMmI0NGFiNzdlMTgxYjQxMzAxOTI5OTlkMzgwYjc1NmUgcHkzaworODAxODMgZmIzZTQwMGMyY2RhNDA4NTkyNDk1YjkyYWQ2MzBmMjdmYTI4NDNhOCByZWxlYXNlMzEtbWFpbnQKKzgwMTg0IDQ1MDVlYjU3YjRjYTdkZjgwMTk0MGRkMGNlOTcyZGZkYzFiYTkxNjQgcmVsZWFzZTI2LW1haW50Cis4MDE4NSBiZWRkNmVlMDNlNjA0ZTc1NjljNmY4MGQ2ODZjMjQ0YjI2MjM2ZTYxIHB5M2sKKzgwMTg2IGY3NjJjNmE1NGJmY2M3NmM2YzUyZTk2OWE3MGZlYzU1MjIyY2E0YjUgcmVsZWFzZTMxLW1haW50Cis4MDE4NyBhOTZmZDBlODc0YjQ5OGE0ZTY0ODI3ZTBhMWRlNjJlMmIwNTdhMmIzIGxlZ2FjeS10cnVuaworODAxODggYmNhNTc0Mzc2MTI3MmRkMWVhYjMyNTg2MWJkZGMwZWFkYjNiOTQyNSByZWxlYXNlMjYtbWFpbnQKKzgwMTg5IDcyNjdlMGFjZTMzYzE3NDI1MGE3ZmM1NmZjNjk1NGZmYTVlMWFhYWIgbGVnYWN5LXRydW5rCis4MDE5MCAwNDNmMTQzMDRkZWQwNDczNTcwMmMxZTQ5MjMyZDlhMjM2OGRmNDhhIHB5M2sKKzgwMTkxIDJjZmIxMGE2YzJiNWQ3MGI1M2ZkNzVkNmFmMDQxNDU2Y2U3MzViMzkgcHkzaworODAxOTIgOWQzNWFmZDg4MjFmMDA3NWE4YjQzN2Y5NjQzYjMzOGZkZGUwZGE2YyByZWxlYXNlMzEtbWFpbnQKKzgwMTkzIGE1MmNiOTkxZjU0YzFiMjc1Y2I5ODIyY2I2MDg5MjI3ZTU1ZGVhMjggcmVsZWFzZTI2LW1haW50Cis4MDE5NCA3NjY0OWVkNDVjNjM3YmFmOTRlNDkxNDExNDlkNzZmODdhZDU5ODEyIGxlZ2FjeS10cnVuaworODAxOTUgMDY0NGNhM2ZlMzBhMDRlZjY2YzMwYmQ0Nzc1Mjg2OWZlOTlhYjE3OSBweTNrCis4MDE5NiA0Nzc0ZDU5ZWVmN2IzNzYyMTNjOGVmOTE5ZjE0MWYwZmIxMWUzY2JmIHB5M2sKKzgwMTk3IDI4ZmMzMTY4OGI3YzEwMzFmMjU2YTE3NGRhNzBjZjBhMTI3ZGE3ZTEgcmVsZWFzZTMxLW1haW50Cis4MDE5OCA5YWFjMWQzZDg3M2QxODBlYjQ0ZGQ5YWU2MDU4ZTcwODg4MjkyZjVkIHB5M2sKKzgwMTk5IDQ4NWMzZjA5YTA5YjQ4ZjhhM2U5OTkyMjYwNjg3ZWYwNmE1YzI3ZjMgcmVsZWFzZTMxLW1haW50Cis4MDIwMCA5Mzg2ZTNkZDU3MDBjNzA4MWMxYzcwMzFhMDBjMjY0ZjYxOWVjYmI3IHB5M2sKKzgwMjAxIDE4YTE5NTYzM2I1OTllZGMxZjEwYzY2MWRjZGU3NDQ3MzgyZDQ0ZjIgcmVsZWFzZTMxLW1haW50Cis4MDIwMiA4ZjVjNDgwZjZkNmY1OTUxNWY4ZjgwYWRiNmRmMWJkZGMyYzNkNzg2IGxlZ2FjeS10cnVuaworODAyMDMgY2Y1NzU2ZWM2ZWQ3ZDdmNDJiNGY1OGNhYzI0OTEwNzQ3ZmJhODFjNSByZWxlYXNlMjYtbWFpbnQKKzgwMjA0IGFhNzA3ZjEzYzQwMjhhMjc0MTAxYWRmZTU0MmM4NDQ3ZTM0MDJhN2YgcmVsZWFzZTMxLW1haW50Cis4MDIwNSBhNzI3Nzk2NzJmMTU5ZjMxYzAxOWIyMjU5NmJlMDAyODMyNDk1Y2FhIHB5M2sKKzgwMjA2IGNmODA2OThmMjc1NjgyOGFhYTRkYTM5YzM5MjE5ZWVlYmYyZmQ3ZDUgcHkzaworODAyMDcgYjg3NTAyMWNkOTkzNzAyMTAwZDRkOWY2ZTJmYTQ1MWY0MTQ5Mzk5OSBweTNrCis4MDIwOCAyZGViNzhiYzVkMzg1OTIxMzI3M2ZkYTg3YWVlNzgxY2NjNDUxOTAxIHJlbGVhc2UyNi1tYWludAorODAyMDkgNmUyZTJiNjI2ODVlZDdhOWMwNzBjYzZmMzUyOTUxNzY2MTRhYzkxMCByZWxlYXNlMjYtbWFpbnQKKzgwMjEwIDQxZTJmMDU0ZDUzOTAxY2E4MjM5MzA5ZTVlNjFmN2UyYTMzMGZhZDYgcmVsZWFzZTI2LW1haW50Cis4MDIxMSA3YTU2NGQ3NGZkNGE4YTM3ODkxOWRlNWI1YWNmZDk5MWM2YTQwZmE2IHB5M2sKKzgwMjEyIDc4OTYxMmNkMDk3MDVmZDI3MWQ1NzJhYTU0MjQ3OWYzNGU3OTg2NDEgcHkzaworODAyMTMgODM2ODJlN2Q1OWE2NDQzOTFlNjBiODM0Zjg5MjJhYjQ1NThiN2U1MSByZWxlYXNlMjYtbWFpbnQKKzgwMjE0IGNlNjA1ZTk1MDAwODA2Y2UyNzU0NDQyYjIwM2I4NzkwNWMxNTFmNTAgcmVsZWFzZTI2LW1haW50Cis4MDIxNSA0MDkyZTQ1NjZkYjNmZjI2MTljMjAyMjY3NDJmMmU5MzgyMmNlMjgyIGxlZ2FjeS10cnVuaworODAyMTYgN2Y5MjYzMmY5MTJkNmM3YTM0NjFiNjUxNTYzY2MwNDY4NWE1MWY0ZSByZWxlYXNlMjYtbWFpbnQKKzgwMjE3IGI1MTRmODMxMWYyODU1ZDVkNWU1NmI4ZTA0YzNmOWQ4ZWRjYTZjNGYgcHkzaworODAyMTggYmNmYjZiYWRmZjg4NDFiYzBlNGNjMDBkMmE2MTk5YmRlZmU5MjcyYyBsZWdhY3ktdHJ1bmsKKzgwMjE5IDcxODYwY2RiNDg4NjkxZTYwMTQ3ZDM5N2YxMDY5NDczZDU1MWM3NGUgcHkzaworODAyMjAgMWYwMmI0M2UwOTA4OTI0N2NiZGFiZDAzNjUwNDZkMjI2ZWQxNDU4YiByZWxlYXNlMzEtbWFpbnQKKzgwMjIxIDJmMzExZGFiMDY5NzM1ODBiMzU1ODJlMTRhMjc1YTViY2U3NGE4MmIgbGVnYWN5LXRydW5rCis4MDIyMiA5OGIyY2QxMGFiMDVmMDFkMmE2Y2VlMmE3N2VmZTY3NzExMDM4ZjQzIHJlbGVhc2UyNi1tYWludAorODAyMjMgZjc3ZTM3YWZjODcwYTQzOGNkYzcwMzI3YzA0MTA0YjFhNmJlNWNlYiByZWxlYXNlMjYtbWFpbnQKKzgwMjI0IDdhZDZlYTk3ZDQ0MDIzMTU4NjcwMWEwNWE4MTEwYTY0NTViYTk3M2MgcHkzaworODAyMjUgMzAxZmJlOGJmYWQxODU5ZTE3NWNmMDFlMDdlYzg5ZjY0YWMwYTAxNSByZWxlYXNlMzEtbWFpbnQKKzgwMjI2IDMyMjg1MzEzODk2Yzg0MDEwMmY5ZTMxY2VlNGYxMzFjMWQzYjU5YmIgbGVnYWN5LXRydW5rCis4MDIyNyA3ZmVmODc5NmY3NzcwNDJkN2I4MmI1ZDgzZDU3ZWI5NmM5M2ExMzA0IHJlbGVhc2UyNi1tYWludAorODAyMjggMzliNTYxYzUzZTlhZDdiYmY2MWMwYThhY2IwOGM5YTUzZDM2ZGM2ZSBweTNrCis4MDIyOSBjMTNmODI1ZmRlYWI3NmIyNDkwZDc0MjQ1MDk0N2ViMGZhNjk4YzZmIHJlbGVhc2UzMS1tYWludAorODAyMzAgYmUxN2JkYTVhNjU4ZTJhYjFiOTk1YTM2Y2QyZmIwZTljMTBkMWFmYSBweTNrCis4MDIzMSAzNTk5NTRjZjBjY2RhOWQwZTJmYzA2MDg1ZWQ4MGY2NjU5YTAwZTIxIHJlbGVhc2UzMS1tYWludAorODAyMzIgNTkyN2ZkZjVkNDhjNWFlZWUxN2EyODJkMGM1Y2JiMjMxYTMyZDJkMiBsZWdhY3ktdHJ1bmsKKzgwMjMzIDhjOTgyOGMxNTA0MDlmMjdmMTFlYTNmMjBiNjU5NzNjYzY1NzFjNGIgcHkzaworODAyMzQgYmY4ZDU0MDJhYmZmMjlmNTQ2Y2QyMzUyZjJmZDg5NjI4MTk5YjFlMSByZWxlYXNlMjYtbWFpbnQKKzgwMjM1IDFmYjYwODE0MjA0MDRmNWRhZWI3NTlkNmVjZGM2ZmYxOGRkYzU4MTAgcmVsZWFzZTMxLW1haW50Cis4MDIzNiA1ZjVlZTk0ZjE5MjYzZGY3ZTU2MDk4YmM3M2MyYjUzMDA2ZGUzYjdjIGxlZ2FjeS10cnVuaworODAyMzcgYzIzN2JmM2QwNDNjYWFkMGJiYzUwMDkxMzc0YmU5NDVhZDI4YTUzNyByZWxlYXNlMjYtbWFpbnQKKzgwMjM4IGVmNzNhYzcxZTI5NTAyZjZkY2VmZjNhMzY5NDE3Yjk0ZGJlNWVhYTQgbGVnYWN5LXRydW5rCis4MDIzOSBlMGZjYTNlN2NlYjk0YmRjNTc0MTFmNjcxMzllNzU5YTM5MWVhNmIxIHJlbGVhc2UyNi1tYWludAorODAyNDAgNjIwM2Y0NzE2NTg1ZjJlZTU4Y2ZjZjU1N2NiOGM2ZTkzOThjNzE2NyBweTNrCis4MDI0MSA4ZDA4ZmRjOTdhYTRjNTMzY2VmYThiMDg0ZGQ2OGM2M2Q4ZWMxNWU1IHJlbGVhc2UzMS1tYWludAorODAyNDIgZGM3M2VlMmE4YjllYzZiMGJiNTc4YTBlMDY4ZDFiZTlmZDE3ZDMyMyBsZWdhY3ktdHJ1bmsKKzgwMjQzIDcyNWJlOGY5NDE4YjgzZTQyNGUzY2M0NTNjZmNlYjk4MGViNWRiMDggbGVnYWN5LXRydW5rCis4MDI0NCA4MmRlMGI0ODhmMmRkNzMxY2Q2MDA1NTkwMmI3ZTVjYWQ2ZDZkZTg1IHB5M2sKKzgwMjQ1IGIwMTgzMTlhNjE1YjM1MjMwYzZlYzUwNGI5ZTk0Mjg0MjllNDcyMzYgcmVsZWFzZTMxLW1haW50Cis4MDI0NiBmMjczMmNjYzEyYjQ3MGQ0OTRmMmE4ZWQ5MTU3NDdmZjI2YmRiMmExIHB5M2sKKzgwMjQ3IDM5NzM4OTgwNTZiNjBmY2I2YTgwMjIxY2UyNGFmZjcwZjQ1ZTNhMDAgcmVsZWFzZTMxLW1haW50Cis4MDI0OCA3NjM4MjIzZjJlMDJlOTUxMjM3OGFmODgwYTY2ZDA1MDQ1OWFkY2M5IHB5M2sKKzgwMjQ5IDhkZTI4NWNhZGIyNDAzMzA1ZDJhYWFjYjAxYWE2MzgxZjExMTQyMWIgcmVsZWFzZTMxLW1haW50Cis4MDI1MCBhZTI3ODE5MjJhNmRlNTcxNWY5NTI0ZTc4YmMwZmJmMDJmY2U3NmQzIHJlbGVhc2UzMS1tYWludAorODAyNTEgY2VhMzhlZjYwNzAwZWYxYjhhZjdkMmJjZGI2MGE5ZWUzZjY4MjA3NSBweTNrCis4MDI1MiA4Mjc2M2IyMDBhNzkzNzk1NjA4Zjg3MDc4NzkxNWI0ZDQ3ZjgxZjJmIHJlbGVhc2UzMS1tYWludAorODAyNTMgZGE4NzA0OTkzMDAxNmZiNTIwNzU0NDY2MzBiMzk4OTdjMTM4MGQ5ZiBweTNrCis4MDI1NCBiYjhmZTc5ZGM1Y2IzNTJmYTRhYTMwYTg0N2MzZWM1MmIzYjM1MTA2IHJlbGVhc2UyNi1tYWludAorODAyNTUgN2QzNDMyYjA3ZWExYTYyZGZhODI3YzMzNTA4NDM0OTllZTBkMmYxOCByZWxlYXNlMzEtbWFpbnQKKzgwMjU2IGJlMTBmNGZhYWYxMmNhMTQwYjZmMWY4OTNiMjlkYjNiZjhjZDRiNjYgcHkzaworODAyNTcgYzJmZGRkYjJiNGE1NWFmZmY1YTIzNWRkYTEyMjAwNmVjYzE0YjczMCByZWxlYXNlMzEtbWFpbnQKKzgwMjU4IDQwYTNhNjMzYzU2NDg0ZmQ2OGYxNTBkYzdhMGQxMWMzODRjZmRiZDMgcmVsZWFzZTI2LW1haW50Cis4MDI1OSAzODc0MjhmYTY5ZmNkYjBlNTJkMDExZWIzMmY5NThmYTEyMWVjYzUyIHB5M2sKKzgwMjYwIGU3NzNlMjRiMTRlNmJmZTc1NWYzMWY1MzM4YTNlYmZlZmY1ZGVmYjAgcmVsZWFzZTMxLW1haW50Cis4MDI2MSA3Y2ZhNzk3NWFiMGUxOWUwMjM2M2NlMDU5YmYxYmE0NzA1MmVmZGE0IHB5M2sKKzgwMjYyIDdjYTEyNzJmNDNhMzRhZTNhYWMzODI5NmE5NmFhMjA3Mzg4ZDQxYzYgcmVsZWFzZTMxLW1haW50Cis4MDI2MyA3M2E2MTY1ZDAwMmJkNDY0NGU2OTM1MmJlNzQyZDVmZDRkM2IzNDg3IHB5M2sKKzgwMjY0IGQwNzEyMDFmMjYxMmQ2N2VmMzA3MjgwY2MyMzY3NmQzZDI0OGUwODIgcmVsZWFzZTMxLW1haW50Cis4MDI2NSA2ZWNhN2ZiZDUzOWVkZjEwZmJiMDkzY2Y3MjRjYjQ1MDE4Y2JkNTFkIGxlZ2FjeS10cnVuaworODAyNjYgYWUyNzJkMjEyYTlkYWNhZmQ2ZDkxNGQ0OTNmZTBmMDZkZWNkOGMzMCBweTNrCis4MDI2NyA0ZTVjNmIyOWQ5Mjk1ZmU3MTk3ZjAxOWNiY2U3YzMyNTYxMzVkZWU5IHJlbGVhc2UyNi1tYWludAorODAyNjkgMWZkMjcwOWVkM2ZkYjllMDEzMTc0Mjc0OThjZjU2NDUyMmMwYWZmNSByZWxlYXNlMzEtbWFpbnQKKzgwMjcwIGY4OGVhMWI0ZmRiZTdjOTY5OThhYjJmNzg3OWEzMjYxMDViZjY4YjMgbGVnYWN5LXRydW5rCis4MDI3MSBlMzE3ZTg0ZThhMWFhMWE5ZGI5OGQ0MjM0MWEwYTIyM2FhNGUzMDMxIHJlbGVhc2UyNi1tYWludAorODAyNzIgMDcwMzVkZTA1ZDRiZDRmY2IwMjgyNTJjMTJiMjBlNDMxYjE3NTRjMCBweTNrCis4MDI3MyAwZjAxYmQ2MjA4NGVmYTZhNWVlMWE4YTQxNTUwZWU2YzY3MzlmNzY1IHB5M2sKKzgwMjc0IDZkYTcxN2JmZTQyNTc4NGVlZjE0ZjZiNTNmNWNlMTg5OGE3NjUxZDAgbGVnYWN5LXRydW5rCis4MDI3NSA1MDZmYWRkYzhhOWU3MmY4OTNiZjVjZGJiY2Y0MmU4Nzg1N2Q0ODMyIHB5M2sKKzgwMjc2IDU3ZDA5Nzk1MDk2ODczNmI0NDk0ZmMyNGNhNWFkNzIzYzcxNzNiMzIgcHkzaworODAyNzcgN2M4ZWIyYmE5MTI5OGI5ZWY2ODA0MjkzOWY3NGRhNTUzZTQ5MTA3ZCBsZWdhY3ktdHJ1bmsKKzgwMjc4IGQxZDIwOWYyYzgwMzlkODdjMDZkZTBlNTkxODEwMTFlODc2MmFmZmYgcHkzaworODAyNzkgZDdmZWZmYTc4ZmEwMTY3NDk1ZmRiNWY0ODAyMDZlNmY4ZjYxMTUwMCBsZWdhY3ktdHJ1bmsKKzgwMjgwIGQwOWY4NDI1OGU1MjJkZGY3YzI3MWVjNDhkNTNkZWZlNGM1MzkyYmUgcHkzaworODAyODEgYTIyZjJhZTg1NjQ1MjUxODVlNDhmZmRlMjMwM2IyOTNjNDZiNjAwOSByZWxlYXNlMjYtbWFpbnQKKzgwMjgyIDRkZGNhN2ZkMzYzOTE5MDA4ZWU1NmJkZjg1ZDY5ZmEyZTM4MjdjMmUgbGVnYWN5LXRydW5rCis4MDI4NiBiZDQ1ZTAxMTA5OTAxNGVhZWJhNmEzN2JkY2M0OGRjNjdhNmY0ZjZlIHB5M2sKKzgwMjg3IDI1OWVmZTViOTYxYjFkY2ZmZDQzNDFkYWQxYThiZjA0ZmM4OTdjYzkgcmVsZWFzZTMxLW1haW50Cis4MDI4OCA4NmQwOGNiNmJhNWMxYTRkZjM3MTQxMzUyMjVlMmQ2M2M0ODk5YWZmIGxlZ2FjeS10cnVuaworODAyODkgMTlhOWE0NTdhNDdhYzYwMzE1OWQxNjNhNDQzY2MyZjAzNDk4MWVmOSBweTNrCis4MDI5MCA4YjM2ZjcxNzUyMzg2YjlkNjc1ZmQ1MWRjMjg4ZDhmMTBlMmRjYjkyIHB5M2sKKzgwMjkxIGFmMjdjNWE5ZmViODE0ODZjZTUxMGMxMWMyYjZhZDA4MDVkZDllZjggcHkzaworODAyOTIgOGIzNDQ1ZGZhNzE4ZWNmMTdlOTg2MzhiOGM5MDViMDFiMzU1ZjcxMiByZWxlYXNlMzEtbWFpbnQKKzgwMjkzIGYzNGZiMTUxMGNiYzUwNTU2YmY5YzNiOTliN2M5NTBkZTE5ZmVkZDggcHkzaworODAyOTQgY2NlMGE1YjIwMTVlMjQ5ZTE3MjkxYmIxYmRiZTRlNWUxNGJkNTBhNyByZWxlYXNlMzEtbWFpbnQKKzgwMjk1IGY0MDQ3YjVhMGY1NGJkNTNmNTU4ZGFiY2YxZjgwYzI4OGFkZjU5NGEgcmVsZWFzZTI2LW1haW50Cis4MDI5NiA0NzNhMGY2Nzg4MDYxMjYyYTNjMTk4OGE1NzllMWE4NzkyMjRlZjE4IHB5M2sKKzgwMjk3IGQ5NWFjZTUyOGQ2NTcyNmUyNjIxZTE0NTI1ODRhMTQ4ZDg2ODg5NGMgcmVsZWFzZTMxLW1haW50Cis4MDI5OCBmNWFmYWRiNzQ1ZGExYTMxZDMwZmM5NzlmNDljYWNjMzEzNjI4N2ZjIGxlZ2FjeS10cnVuaworODAyOTkgMWI0M2VlMWVlM2Q4ODUyNWQxYWI4YmJjNzBiOTg1M2E3YWE3YmQ5ZiBweTNrCis4MDMwMCBhMmE0ZDlkYzc4ODRmNGVmNDlhOTY2YWQwZTg3ZDZlYWNiZDQxYjBlIHB5M2sKKzgwMzAxIDcwMzljNjA0NGFiNjUzNGZhYjE3NWZkZGFmNGM5NmZmOTg5ZTM0MmMgbGVnYWN5LXRydW5rCis4MDMwMiA5YjkyZTc2NzExMzU4NTcxOGJkYmQ3MDQ1YmU3NWMwNTNiMWE1YjZkIHB5M2sKKzgwMzAzIDhlMmE3ODg0OTI5ZGEyZDFmNzk2MjU2N2RkOTE3YTgxNzIwMWE4N2IgcHkzaworODAzMDQgOTVjY2FmYzE0NDc1ODE2MTVjN2E3ZjYyZmI3OWY0NWU2OWJmNWI1ZCBweTNrLWNkZWNpbWFsCis4MDMwNSA4YTkxY2IzNmUwOTRjY2M4OTdhMzg4NzViYTMzNDA3YWM3OGUyZGQ0IHB5M2stY2RlY2ltYWwKKzgwMzA2IDJkYjA2ZmFlOGMyZWFkNjU0ZmI5ZjY2ZDZlMGExMDA5ZTBmMjgxYTYgbGVnYWN5LXRydW5rCis4MDMwNyA5NDI1NDIzMWFhNmFmOTk0N2Y1ODFmZWFhMzIzMDMzMDMyZTUxZTgxIHJlbGVhc2UyNi1tYWludAorODAzMDggODE5ZDgxMzQ3NTIyOGU3MmMwNzQyZGM1ZmFiNzc5MDBhNWRmYWZiYSByZWxlYXNlMjYtbWFpbnQKKzgwMzA5IGMyOTA1YjBlZjFkMjRkNGNkOWU3ZTM3MWMwODNlYjlhYzViNzRiYzkgcHkzaworODAzMTAgMGE3YTI1YmJiMzRmNzJiNGViNmNiMDM2NTc0NGFmMzVkYmY0YzhiNiByZWxlYXNlMzEtbWFpbnQKKzgwMzExIDZkODM2YjEwZTM3MDk4NmU5MDE4MDhmMzdlNTdhNzI3M2EwNTg2MGUgcHkzaworODAzMTIgYTU1ODI3YjBlYzNiYjk1MzQ1MzczYmU2MzZiZGE0OTQ0YjRlZmJmMyBweTNrCis4MDMxNCBjOTFmYjUwNmYwOGRmMDk0NWNiZjk4Yzk1YWVjMjk5MTA1OGUxYjVjIGxlZ2FjeS10cnVuaworODAzMTUgYzFkOGEwMDU1ZmRhNmU0MGEzZjZmNzIzZTBkNzYwZWJlNDAxNTU1YyBsZWdhY3ktdHJ1bmsKKzgwMzE2IDlkODZmMDcwMWQ5Yzk4ODdmNjY3OGM5YWUwMGE2OWQ3MjRiZTg5NWQgcmVsZWFzZTI2LW1haW50Cis4MDMxNyBmMzZhMGViZWIxNjM5MTU3ZmQ3OWZmNzZiYmI4NDdlOTVhOGEwY2YwIHB5M2sKKzgwMzE4IGEwYjhhZjFiZTU2MGJkYWQ2MDc1ZWM0ZWEwM2NlM2YyMDE3OTE2Y2QgcmVsZWFzZTMxLW1haW50Cis4MDMyMCA5YmEwMzc4M2VjZTNjYjQ1ZGFkZmM0ZWMyN2JiOGMzNzhkYWRkMDhkIGxlZ2FjeS10cnVuaworODAzMjEgOGU0MjQ3NDExNzU0MjQyYzM2NDFmZWZhMTI3OTU0ZTVkNzY1NjQ1NSBweTNrCis4MDMyMiA4YTViMmQwNjI5OGQ3ZjcwZWI0M2JlOGI4MjI3OTM1NjliY2JlNGFjIGxlZ2FjeS10cnVuaworODAzMjMgYTNjZTI3NWJmMDk1NzNiNjIxNTRlZDExNmJmZWNiNzgyZTQxNmU1NyBweTNrCis4MDMyNCA4ODhjNzVhMWJlNTUyMTliZjM3MDM4YzUxMmU2MmZhZDY5ZjdiNTIwIHB5M2sKKzgwMzI1IDc2OGNlMTA3OTlmMmQ4NTNjNGU0ZjAxNjE2NzFiYzdmNzgwY2RmNmEgbGVnYWN5LXRydW5rCis4MDMyNiA5MmE2MzNhMzBhY2I2Y2ExMjUyNjdjMjg3ZmNlMmUzY2NkNGJkNWZlIHB5M2sKKzgwMzI3IDY3YjgxYzMyODRmOWIwODVmMmY2NmEyMmM4ZDEwYzhiN2I1MjQwNDkgcHkzaworODAzMjggMWMxMDViMzcwNzQ2MDUzMDUyZTAyNDkxNWNiMDA0YzFkYWVjOTMyMyBweTNrCis4MDMyOSBlMDkxZDk3ZDUwZDU4MzA0ZGJlNDUwMjQ5YzM3N2Q2OWVjMDBhOThiIHB5M2sKKzgwMzMwIDA3Mzc5ZmU3NWM1NzA3ZmRmMDZkNjVlZjNlNDg1NTQ2NjJjMmNlMDAgcmVsZWFzZTI2LW1haW50Cis4MDMzMSA1N2FhMzEwMTJjYTUxY2MzZGE4MzVjYjg5ZWY2M2Q0MTNmNzFmYmEwIHB5M2sKKzgwMzMyIDkyNjY5OTY1Yzk5NzE5NGMyY2Q5OWQxMWI1YzYzY2QwZTkzNGFiYjAgcmVsZWFzZTMxLW1haW50Cis4MDMzMyBiMTljNjE2ZDViNGFkOGVmMTA4MzI4ODM0MmNlOWI3Y2U1YmE4ZDkyIHB5M2sKKzgwMzM0IDdkNDlmMDIxYzg0MjA5M2IwY2Q4MmYxZDQ1OTZhOGU4MGNhMWQ3N2EgcHkzaworODAzMzUgOWY0ZjY3MGIxNDhjYmE2MTY0Y2I1MGFjMDQ0MDMyZWY2ZmRhZWRmYSBweTNrCis4MDMzNiAyYjA5ZDgyMWJjZTFlODk3YjlmNjA5NzY3Mzk0MzEzNjA4M2E0NzIzIGxlZ2FjeS10cnVuaworODAzMzcgY2FkNGUwOWYwMmExMzMwN2RiMDNkODk5MTYwODc1YjE5MmI4Yjk1NSBweTNrCis4MDMzOCA0YjAxZTgwZDZjMWZmNjhmZmQ2MWNkZDU0ODQ3M2M0NmFmNDc2MWE5IHJlbGVhc2UyNi1tYWludAorODAzMzkgYjM4NzVkMWIzODQ3MzkzM2U4MGIwMjQ4N2E4MzViYThiYzY4MzEyMCByZWxlYXNlMzEtbWFpbnQKKzgwMzQwIDE4NmJjM2I4MGY1NzEyMjlhZDUzZWVmMDk5MDQyNDI1YjZlN2QzZjIgcmVsZWFzZTI2LW1haW50Cis4MDM0MSA5NGI2NDk0MGRhYzQ2NGM3YzNjNjMxOTg0ZTJhMWViNGUwMWI2ZTg0IHJlbGVhc2UzMS1tYWludAorODAzNDIgNTRmMTUwMjAyODhhNDZjNmZlNjMwODZjMzM5MDQ3NzU0ZmYyMDZkNCBweTNrCis4MDM0MyAyMzQwOTU5NTEzNzA3MWNhZDNlNzFkYjMzYmNlODc3OWYwN2JiZWMzIHB5M2sKKzgwMzQ0IDVjNjI1YTA0OGY5YTU2YmIzYjI5NmM0NmMxZjViMDA4ZjFhNzk5ZWEgcHkzay1jZGVjaW1hbAorODAzNDYgMTA0ZThjODAxZTVkMzgxOWM0ZTFjODc4ZGZhMmU5YWZmNTUyYmY2MSBweTNrCis4MDM0NyBjNDQ5ODE3ZjRiNTRkZDQ5NGRkM2M0YTM1NTNmYzlhYjFhYjA2ZTUxIHJlbGVhc2UzMS1tYWludAorODAzNDggNmI3ZTIwMDAwZjk3NjY3N2E2NzViOTBkMzM2ZmIxMThkY2U2YTEyMSBweTNrLWNkZWNpbWFsCis4MDM0OSAzZjI3NzNhZTg0NDhhZDIyOTE3NGUzOWFkMzNmM2Y3YzlkNTlkOWFkIHB5M2sKKzgwMzUwIDU0NzgwMDQyZDFlN2Q3NDM1NjdlNzdiNmJkYzI4MzUyZjBiY2U3NmEgbGVnYWN5LXRydW5rCis4MDM1MSA4YzA1MTdmNTBjNGU5NDkyMDM1MGU4ZGFjOGY1YTUyYzZiMjVkZjhhIHJlbGVhc2UzMS1tYWludAorODAzNTIgZGUzOTQ1MTAxYTZlMDBiNjFjNTE5MTgxZjRhMDdhMDc5ZDQzYjkyNCByZWxlYXNlMjYtbWFpbnQKKzgwMzUzIDdmYzI0YjRlNWZlZGM4ZTRiODA0NjMyYzIyMmIxMjNhYmVlODkwM2YgcHkzaworODAzNTQgODg5OWY0MDgwNDNjNDc3NTUwMTJjYjJhMmU2Yzk2NGNhYWI0MzJlMCByZWxlYXNlMzEtbWFpbnQKKzgwMzU1IDNkNzM3ZjJhYjkwMTQwZDAwODM5Y2Y0MTA5Y2VhMThjYjliY2Y0MDUgbGVnYWN5LXRydW5rCis4MDM1NiAyYzNkN2JkNzE2MzY0OGEwOTMwYjhiMTk1NjQ4Zjc1MGE3ZWQ5YzQ3IHB5M2stY2RlY2ltYWwKKzgwMzU3IDczNmNmNzUxZmY0ZjVhNTczZTJjMTEzZGMyZTM1ZDEzYThiNDA2ZDEgbGVnYWN5LXRydW5rCis4MDM1OCAwZTY0YmEzMjI5MmJhNTdmMmIyYWU4Y2VmNTRmZTc2ZjNkMzIwOWE2IHJlbGVhc2UyNi1tYWludAorODAzNTkgYjNkMjBkNDQ2NjM4OTgyZTVmNjgzZTEwZGRmMDM0NmY5MjBkOGM2OCBweTNrCis4MDM2MCBkYjcxNmE3NGI1MTdmYzVkOTJmMjVjMzA0ZjIxMWY5MGU3MjdmODE5IHJlbGVhc2UzMS1tYWludAorODAzNjEgZGQxOGNjY2I1NWIwOGQ5ZTk5Y2IzYjBmODNkMWM3ODcyMjA4NmU5MiBweTNrCis4MDM2MiA5ZGM4NjRlZjY0MjVkNWVlODJmODQyNjliOGM3OWM0NjJkMWJhYzY2IGxlZ2FjeS10cnVuaworODAzNjMgOTE3ZDZhNzRmZDRmM2E0ODRiNDE5YjI5NjIxZDUxODdmMzZmOWQxNSByZWxlYXNlMzEtbWFpbnQKKzgwMzY0IDg3Yzk4ZmI3NzhiNGZkMDJjZmNkZWFhMDJiMWM1ZjNiOThlNTUyZjQgcHkzaworODAzNjUgNWI3MjZjNjAxZTIyMTYxYTZhMGNiNjNkNzg1NGVjMmQ1MzhkYzkyZSByZWxlYXNlMjYtbWFpbnQKKzgwMzY2IDNhOGE2MTg0ZjQwYTU0ZWQ3ZWQ5OGQ5MGE4Y2M4ZmE0ZTNjMzE4OTcgcHkzaworODAzNjcgMjY5MDJkOWJlMDMzYzZjMDJhODk1NzRkMDc3YmE0NzFkZjljNGQ3YyByZWxlYXNlMzEtbWFpbnQKKzgwMzY4IGMwMTNhNzE4MjliZjIzZmM3NzEzZWI4OWFmMTY5YmNjMWFjN2ZmNTYgcHkzaworODAzNjkgNGFkOTA0NjAyNDYxYmEwY2M5MTQ0N2ExZTNkYTcxYTIwODdlN2I3YSBweTNrCis4MDM3MCA1OWFkMjQ0ZmUyOTQyOTAwNTI3OTA1ZTIxZTM2Yzk2NTU0NDA5MTcxIHB5M2sKKzgwMzcxIDg3ZDk4ODIzNWM1MThlNzJmZWMxZmE4YWEwNjFjMzFjYmJmNmFiMDMgcmVsZWFzZTMxLW1haW50Cis4MDM3MiAzMWQyOGYwNGI4MjM1NTk2YmRiMjc0YzdjYmNiMTc3NjE1ZWNkNTRjIHJlbGVhc2UzMS1tYWludAorODAzNzMgODhjN2RkM2Q3NTc5YjZjYjhiOGZiYTYyNTIxY2M1NmUzNzA1MzUxYiBweTNrLWNkZWNpbWFsCis4MDM3NCA2NmM5YTk1OWMwN2VmZTE2MDRhZGYxYmFhNjUzOTgwYmViNzQyMjE3IGxlZ2FjeS10cnVuaworODAzNzUgYjY2ZmE3NzcwYmJkZmNmY2RjYjE3MzE4ODkxN2IxNTgzODg4OThhOCBsZWdhY3ktdHJ1bmsKKzgwMzc2IDk2MTkwYjViM2Y2ZGI4OGVlMzRjNDFmNzRhMDg1NTM3NTI3MjhkMDkgcHkzay1jZGVjaW1hbAorODAzNzcgNTg5NjNhNzY1NDcxZDdmMThmYTNjNjMwYjY1Njk4NmQyZTlmYzY2ZiBhc3luY29yZS10ZXN0cy1pc3N1ZTg0OTAKKzgwMzc4IGY2MzJhMzg2MWQxMjU1YjZhNDAzM2JiNzI5NDdiZmM3NTQ4N2IwNzYgcmVsZWFzZTI2LW1haW50Cis4MDM3OSBiNDVkZGEwYjUzOGZhYWJlMWY1NTRmOGI3MmY2MjQwYzUzOTA4ZWFjIHB5M2sKKzgwMzgwIDRiN2YzYWUyMmM4ZmRmOGY5MzIzMGZlMDgxMzI3ZDcyNWIyYTRkNDMgcmVsZWFzZTMxLW1haW50Cis4MDM4MSBjNGI1MzQzMzczNWEyZjg4NWY3Y2RiM2U4MWJkZjVlMjU2ZjRjZTA0IHJlbGVhc2UzMS1tYWludAorODAzODIgZDJmYWQ0MjEwZGQ1ZmI1YjQyODg4ZDRjYjdlYmM2YWY4OTBiZmFmYiBweTNrCis4MDM4MyAxNDliYWRmNzNiY2FkMTYzMjhlMTE2N2MxOWUxMDk1ZWEzOGQxYzAwIHJlbGVhc2UzMS1tYWludAorODAzODQgMmZlNDczOGVlYjIzNjE5ZTk4Y2U4ZjAwMDE0ZTI0YjllZGRlMjdhYiBweTNrCis4MDM4NSBiMDVkMDI1YmMwZGY2YWMwYmM3NWEyZTBiZWQ4MTEzZTM1ZGFiYzYyIHJlbGVhc2UzMS1tYWludAorODAzODYgYmExMmY5MjEzNGJhNDkxOTVlMDFlNTQ2ZjlhN2VjNjFiZTIyYWI2NSBhc3luY29yZS10ZXN0cy1pc3N1ZTg0OTAKKzgwMzg4IGE4ZTA5M2EyNDA5NDkyNDliMTRkMGMxMzkzYTMwNjJiZjk5MDNiYWQgbGVnYWN5LXRydW5rCis4MDM4OSBlZGM3ZjMzMDUxMDUwZTRmMzc2YTg4YjFmMWQxMjdiYmM3MWIzNzU0IHJlbGVhc2UyNi1tYWludAorODAzOTAgNDczODAxYWU5ZThlZDc4OTMwNTNhYTFkNDMxNWUyNWRiYjA1ODRmMyBweTNrCis4MDM5MSA1NDUyNmVlYzhiYzZlNjQ3MDY2MWU4YmNkOGIyNTZkODkyZGIyZjJlIHJlbGVhc2UzMS1tYWludAorODAzOTIgYzlhMzJlZGQyYmE3Yzg5NDI2MTU2YWU1ODI2NTQ2YzFhY2QyNDgwNCBsZWdhY3ktdHJ1bmsKKzgwMzkzIDhkZDEyNDEyMzgwMTBjODUwNmRkNzFkMDI5Mjg5NTg1NmYyMWU0ZDggcHkzay1qaXQKKzgwMzk0IDFkMThkNzNmMjliNTNkMTc5YTY1MDllOWRmMTY5MTMxNmQzMDU1NjEgcHkzaworODAzOTUgOTIyOGM2YWM2Y2M2NzhlM2I4NmU2Mjk3Mzc5OTlhYzQ0YzkwZWFiZSBweTNrLWNkZWNpbWFsCis4MDM5NiA1YTUyNGM2ZDRlODM1MjM0Njk5NDE1OTg2NDkxODllZmI0NDZhMWY5IGxlZ2FjeS10cnVuaworODAzOTcgM2RkNjA2MzUzYWI0M2I5NjAzYzE1MGZlYjFlZWRiZmZjNjI4Y2E2ZCBsZWdhY3ktdHJ1bmsKKzgwMzk4IDA1MmQ0ODUxNWM3NjJmZTc3YzMzN2Q0ODg3MjM3MTNkNDI1NWJiZmIgcHkzay1jZGVjaW1hbAorODAzOTkgYjRlZDE3MjdkZjc0Y2MwY2MzYzBhMWMyNjU4ODk3N2E5MGY2ZjNjZSBweTNrLWNkZWNpbWFsCis4MDQwMSA1NjI5Njc4ODFkYzUyNWRlYmMyYTAxYmZhNDdkM2NlM2NmMGRiZWIzIHB5M2sKKzgwNDAyIGU2NTY0ZGEwMTcxOGE1YjI1ZmQ0OTcxOWVmYzhmNzI4NjJiZmMyMDMgcHkzaworODA0MDMgZDJjNTEyZDBlY2I2MmEzNDhjMmU5YjIzNjczM2RjY2FlMjNjZTgyZiByZWxlYXNlMzEtbWFpbnQKKzgwNDA0IDg2ZmFkYWViY2Y2NmQzYTAxMDc3MDI2OWYzZDJhYThkYWJkYjFmZjYgcHkzaworODA0MDUgYzZiNGY0ZjJiOWE4YjcwNDA2YjdlMDkzNDg1YzU3NTVmMWRlZTc0ZSByZWxlYXNlMzEtbWFpbnQKKzgwNDA4IDIyNTgyNTBjMWZiYjNlN2MxNWYyYjM1NTc5NTI3Y2ZkMmFhOTgzMmUgcHkzaworODA0MDkgZDQyNmJiZmQ1YmQ3OTJlYjkxODNmNTNiNzM4NzQ0N2RhN2U2MzM2NiBweTNrCis4MDQxMCBmZmY4MWQ3MjYyOGUzZmZhMTBiNWY4NDAyZTViMDAxYzJmYzNiOWIxIHJlbGVhc2UzMS1tYWludAorODA0MTEgZTc2MDZjMTU0MWY4YjQ5ZjIwYmEwOTU4ZWVjMDNiN2UwNjMyNDRlOSBsZWdhY3ktdHJ1bmsKKzgwNDEyIGEwNTllYTk2NmI4Y2ZkMTU3OGYyZTM0ZTExMDM1MGI4MTNiNjNiNzMgbGVnYWN5LXRydW5rCis4MDQxMyA4NDI4ZWFhMmQzYWQxMDFjYTNiMjRmYzVlNGZmNmIxYjIyMGRlNDFmIHB5M2sKKzgwNDE0IDgxZWYxZTg0NTJmYjA1OWQ5MTVhYjc1MWFkNTA1M2E5ZWUzMzkzZWEgcmVsZWFzZTMxLW1haW50Cis4MDQxNSA2MTJlODZhYjA1ZjEzMWI2YTAwMjk3ODhhNzNkNjk1Zjk4MTA1MGNhIGFzeW5jb3JlLXRlc3RzLWlzc3VlODQ5MAorODA0MTYgNTJjZDdlMDQwZmVmMGQxNjJiODc3MDdiNGFmYjdiZTk0ZGU3ZTM1NiBweTNrCis4MDQxNyA2MTBhOGVmYTg4ZGI2NTYxYjM3OGI3MjFmM2Q3ZGY5Yzc4ZDdlZjc5IHJlbGVhc2UzMS1tYWludAorODA0MTkgMGVjMTZkODMxOTkwNTg0ZmIzMjdlMGE4ODU5YzgyNDZjMDM3NDcyZSByZWxlYXNlMjYtbWFpbnQKKzgwNDIwIGZjOTc3ODRlNWNjMjFmMjllNTY2YjYxY2IxMzBjNzg3Y2IxNTBlNzIgcmVsZWFzZTMxLW1haW50Cis4MDQyMSBkYzhjOGQ1NDUwNGUxODQzNTczODBhY2YxNWVjNTg3YTMxYWIyY2MwIHB5M2sKKzgwNDIyIDY3YTYwNDgyOWM5NzBjN2JiNjFhYTQ5ODQyMTJhNDE2NWZiZGQ0OGIgcmVsZWFzZTMxLW1haW50Cis4MDQyMyAyYzMxZGFjNjk0ZmYwNDNjOGE3YzhjZTUxMzcwNDUxMWUwMmY3ODlmIGxlZ2FjeS10cnVuaworODA0MjQgZTc5YTZjODAyOTM0MTg5ZjY5YTc3M2ZiYjQzNWQyY2RhZjVlMjUzZiBweTNrCis4MDQyNSA3NGU0OWZiNWJhMTJiMmUzYWMzOWI4ZWI0Njg5YzQyMzFmZGNjNTdmIHJlbGVhc2UyNi1tYWludAorODA0MjYgODFhYTAwMjg0YmQyMTE5MDBjZWYwYzkwNjlmNjUxZjcyNWY1YjRiYSBweTNrCis4MDQyNyA1NGU1YWIyOWIzMGJmZjQzNjBmMmJmOTc1YjkxMDc0ZmYzZTU2MGFkIHJlbGVhc2UzMS1tYWludAorODA0MjggZDdjNzgzZWY0NTQ4NmZlYjg0Nzg5MGI0NzY3YTQ1NGE2MmM4NGM1YiBsZWdhY3ktdHJ1bmsKKzgwNDI5IDc2OTE4OTllMTg1ZjI3NzEzNjBlNmY2N2RiYzZlOThjNzkwMDMwOGIgcHkzaworODA0MzAgOTVjNWUwOTRiMzgwNjRkNTRlM2NlZTYyNDQ5MTYwZDdiMGI5ZTEwZiByZWxlYXNlMzEtbWFpbnQKKzgwNDMxIDA2OGEyZTcxNTdhY2VjYmQ2YzMxOTJiMjA4YWQ0Y2IwZmMxN2FjOWIgcmVsZWFzZTI2LW1haW50Cis4MDQzMiBjYTBjYmFjN2I4OTgxY2RmMGFhMzExYWM2ZTk4OGRkNWUzYjdmZDA4IGxlZ2FjeS10cnVuaworODA0MzMgNTg3ZGYwZDc0Nzg1MzNhOGQwOWZkOGJjZDA1NTMzYjlkYWYzMDRhNSBsZWdhY3ktdHJ1bmsKKzgwNDM0IDY3MmFkZmM1ZGI0Nzk5YmJjNzQ4MzY1YmQ4MjQ1Y2YwZjFkNDM2MGUgbGVnYWN5LXRydW5rCis4MDQzNSA2NWQ2YzdiYzVkNWE0NjQ3YjdiNmMwYzQ0NmEzZDA2Mjg0MzNhYzA3IHJlbGVhc2UyNi1tYWludAorODA0MzYgODA4MTBkODIzMThmZDA3M2E0OWYyMDQ2MDgxYThmZjg5YzA2NGI2ZSBweTNrCis4MDQzNyBkODFlZmYxMThkODE4ZWY2MWY4MjNkOWFjOTY1YWNhODMzMDI4ODA5IHJlbGVhc2UzMS1tYWludAorODA0MzggNWU2OTUxOWM0ZTM3ZGIyZTE4YjYwNDQ0Njc2NjY2M2E5NTg1MGU1NSByZWxlYXNlMjYtbWFpbnQKKzgwNDM5IDNiODM0MWQwNTIxNmVjODhmOTU4YTZkNmNiODc3NTlkYWYwZTViYzcgbGVnYWN5LXRydW5rCis4MDQ0MCAyYTc2OGVhMDYwMjMwZTVjODRhODE0ZThiMTk2Yjc4OWFlMjQ5NzAwIHJlbGVhc2UyNi1tYWludAorODA0NDEgNjQ0NjFmNjhhMTBlMDFhYmZhYjFmNTJkNzMzYzkyNzVlYmJjZjg2MSBweTNrCis4MDQ0MiA5MWY5MTY4YWFkZDBlMzNmNDgyYmM5NTNiNjFiNTNmMzkxYzI0YWEzIHJlbGVhc2UzMS1tYWludAorODA0NDMgZjRmZTUzZjg2NjI3NTY1MmVjMTg2NjFhOWMzYmNjZDEyMjg5OGFlZCBsZWdhY3ktdHJ1bmsKKzgwNDQ0IGU5ZDg4OGMwOGJmOGExNmE2N2NkNDFmNWZjODNkMGI4ZTBlNjc3MTUgcHkzaworODA0NDUgYzM5YWNiYjYzZWMzZjUxYzlkY2YzYWUwMTljYTE3MzJiN2M2MzVkMCBsZWdhY3ktdHJ1bmsKKzgwNDQ2IDI0ZmY4NzQwZTQ4MTBiYzc2MjVlYThmNjk3MTJhNDhlMDExNzE1NjQgcmVsZWFzZTI2LW1haW50Cis4MDQ0NyAzYTlhMjJkN2IyMmU4MTI2ZWMzY2JlOTUxNDI4Y2YwNTI5OTAwNTE5IHB5M2sKKzgwNDQ4IDdiZDM4NDcyZWEyMTIyNTEwM2VmNGYxMTg3YzIwNDk2YzI5MDdmY2UgcmVsZWFzZTMxLW1haW50Cis4MDQ0OSBlNGMxZWJjYjQ2MDQ4ZTE3ZmNmMzdhOWE2ZGFiOGFiZTJiMDIwMjUwIHB5M2sKKzgwNDUwIDc5MTI4ZWZlOGE5OTNhMWM2N2E1NTcxMDc0MmJjMGQ2YWIzNzI4MzIgcHkzaworODA0NTEgYTA5ZDdmNDE0Y2QxNWMxNjI3ZDYxMTI2MzlhZWEyMmYzZTY1ZTA2MSBsZWdhY3ktdHJ1bmsKKzgwNDUyIDc2YTA1MmVlZGVlNjdmNDE5NWMxYmVkMjNmOGFlODllNzg5ZWNlYzggbGVnYWN5LXRydW5rCis4MDQ1MyBjZTQ5MTZjYTA2ZGQwMzdjYTEyMjAxZTU4YjkzNmZkZGZkNDE3YTcyIHJlbGVhc2UyNi1tYWludAorODA0NTQgYTUxYWQ4ZjA5YjZmN2YxNmYxNDkxMzQ0NTNjNDM2YTY4NTZjNGNmZSBweTNrCis4MDQ1NSA1ZWQzNGYzZjZjMzU1MWMyNTI1YmE5MTI2NzllMzI1OGM2OTg5ODU1IHJlbGVhc2UzMS1tYWludAorODA0NTYgYTkxOTYxMTlkMzM1YjJlMGMyMWNmMzE2NWEwMDhlMGFiZWU2MDc3OSBweTNrCis4MDQ1NyAwZmY4YWRkZTYwOWNmOWUxNzdlOGQ1MGFiYmYwMjFlNmE0ZjFjNTE1IHJlbGVhc2UzMS1tYWludAorODA0NTggNmFmZjliMGEyODhkNWY0NTUwNDQyMDZhMjU2ODIxYWU5MjQ0MGM0NiBsZWdhY3ktdHJ1bmsKKzgwNDU5IDdlMjIyOTg3NzQ1OWZlMzUyMjU4M2NlMjhmOTIyZmQ5ZDc2Nzk1MjkgcHkzaworODA0NjAgZDVlY2U0OGUxNjA2ZGZlZTYyYjA2OThlNzJmMjI3MDYwMDQ4OTI5ZiBsZWdhY3ktdHJ1bmsKKzgwNDYxIDkyMGYzNDEwNmMzNDRjNmY5MmUwN2U4MzU1OWQ0NWI1NzdlYmY2MDMgbGVnYWN5LXRydW5rCis4MDQ2MiA0Njk4OWNjYzY1Mjk1OWNkZmZmN2MxY2U2N2Y5M2JiY2NmYmYwMDZmIHJlbGVhc2UyNi1tYWludAorODA0NjMgMGY4N2JlNjMzM2RhMzcwMDhmZTExMmI2NzZhYTdlYzY2ODFjYzJmZiBweTNrCis4MDQ2NCBkMDUzYmIzZDc4NDJjYmExZmM0NTIzMDJjOTMzNjBhYWQ3ZjM5OWZlIHJlbGVhc2UzMS1tYWludAorODA0NjUgZWFmNTYyZjU4MDdkZTE5MWQ0MTE3M2E4YTUxYjc1MzY1MWFlMTZmMyBsZWdhY3ktdHJ1bmsKKzgwNDY2IDA2MzIyYWJhODRmYWY1NzdiMjI1ZTZlYzc0ZGYzNjExNzU4Nzg3NDQgbGVnYWN5LXRydW5rCis4MDQ2NyA5ODA4ZGI5Nzk4NTQxMTQ5MGE1MTU2MDA2NmFhNWE2YzBmZDllNjE5IGxlZ2FjeS10cnVuaworODA0NjggYmViY2MyMjRjN2MyYzNiZTcyOTc3ODhjZjM0NDVmZWYyM2Y1ZDgwYiBsZWdhY3ktdHJ1bmsKKzgwNDY5IDVlMmQ2MTc1MWQ5ODA5ZjMyNTVhYmQ1MDYxYTM1Y2ZmZjBhNDgxZmEgbGVnYWN5LXRydW5rCis4MDQ3MCAwMzYzYzY5N2UwZGEzMDgwOGM4MDkxYWFlYTRmMzFmZDMyYWUxZjU3IGxlZ2FjeS10cnVuaworODA0NzEgYzJmZmQyMGQ2Y2Y4OTZlOWZjMGE2NGNjYzIwY2U5ZGQ5N2RmODk0YSByZWxlYXNlMjYtbWFpbnQKKzgwNDcyIGVkZTE2YTI3OTJiNGM4NTk3MzNmZTM3YTk0ZDg5OWY3MGYyYzBkZTEgcHkzaworODA0NzMgMDNmMzFmN2U3NjI3NmFkYjkzMjQ0NzhhNTAzZDUxMDRiNGU2YzEyYSByZWxlYXNlMzEtbWFpbnQKKzgwNDc0IGQyM2Y2MjZhNzM3OTkxYWEyNDhiYjE1MDBjZTRiZTdmYzg5Yzg4ZWEgcHkzaworODA0NzUgZmUwYzQ3ZGQ1Zjg0ZjE0MGE2NzdiN2FmMGE5OTY4NDQ2ZTBiMTVmZSBweTNrCis4MDQ3NiA2ZmIzODQ3ZDM5ZWYzOWEwNTc4NTJmYzFjYzFhMmI1MmQ5ZmM0OTEwIGxlZ2FjeS10cnVuaworODA0NzcgYzM2YzgzNmZmNDY1MTI2NWNlMzRhZWJjZWQ3YzYzOTAxYmM4ZTZiZSBweTNrCis4MDQ3OCBiOWYyMTAyYWQ1ZjAyNjg1ZjZjZTZmM2Q0YTdmNGQ0NDhiMmYzMTM3IHB5M2sKKzgwNDc5IGVkZmQwZTFiOTc1NGQ3ZTVkNTkyMTdjNzRlMDJmNjVlNDQ1ODMwNWYgcHkzaworODA0ODAgNWFjMGFhZTI4ZjRjMDIyZGUyYTdiYmZlOWVkZDUxOTNmMTc4NTgyZSBsZWdhY3ktdHJ1bmsKKzgwNDgxIDk2Y2E1MGNiMjYxMzU5M2FmYjIzZDdlYTgxYjFkNTlhMTU2YmYwODggcHkzaworODA0ODIgZDgwNGRkOTU3MzdjM2FmM2UxZThkZTZiYzU3YWYwMjcxZTMyODU2MSByZWxlYXNlMjYtbWFpbnQKKzgwNDgzIGMxZmI3ZDVlZTQzNzNiOTRhOTExY2QzZGIwODRkMjRmZDBhZDg4OWMgcHkzaworODA0ODQgNWYxOTYyMjIwNzkyODgwOWNiYjY0NzI3NzM2NTFhMDNkMDJhOTU2NiBsZWdhY3ktdHJ1bmsKKzgwNDg1IGU5ODI2NmM1MWEwZTA4ZTFhZWRjMTFkZThkNWU4NGQyNTJiNDc4ZWYgcHkzaworODA0ODYgZWE0M2Y3ZjZlODRjZjk1ZjdjOTQ1N2JjYmExMWU4MzNiYWJkYTRjNCByZWxlYXNlMjYtbWFpbnQKKzgwNDg3IGY1MjNlNDBkZjljNTY4ZjdiZDc0MWNiZmM2ZDk3ZjFlZWRmMDljNjQgcHkzaworODA0ODggYzAyMTQ0YjFjOThjYTBhMWYyNTc2YmQ0ZGU4ZWZiNjY3OGM2NjdjOCByZWxlYXNlMjYtbWFpbnQKKzgwNDg5IDY1NDhjMjM2NzZhNjg3YWEyZGVjYTNmZjFmZWRlM2EyODU1OTk1ZTQgcHkzaworODA0OTAgZWYwYTg5ODFjMzcwMzFjMGQ1ZjQwODU3YTk5YzJlZjk1YmRlNWYwMiByZWxlYXNlMzEtbWFpbnQKKzgwNDkxIDkxNjUyMzJlNmQxYWU0NGM3MDNjNmM3MWM1ODYwMDFlMjMwMmNiMDIgcmVsZWFzZTMxLW1haW50Cis4MDQ5MiA4YzcxNzkxMjU4MDMyNGU3ZmQxMTM1YTliNjI3M2U0MzYwMDQ5ZjRiIGxlZ2FjeS10cnVuaworODA0OTMgMmEwMzBjMWNlOTcyZDU4NzAzNzAzYTk2ZjY0ZDg2MzViYWY2Y2JlMSBweTNrCis4MDQ5NCBiNzE4MjYyNDlmYmUxM2M3YTM0ZGZjMWRhNGU1ZjBlZmFmNzNiYzk0IHJlbGVhc2UzMS1tYWludAorODA0OTUgYWE2ODU0YTZmNmQxZDA4NGFlMGI1ZjdmNjE0NWI4NGJkZWM1YTJmNCByZWxlYXNlMzEtbWFpbnQKKzgwNDk2IGQyYTRlOTZiNTRhNmNmZTU3OWNkNDI1MTM2MGMxMjNhMThmODk0ZTMgbGVnYWN5LXRydW5rCis4MDQ5NyBhYjhmZTk0NzczMjM0M2QyZTQ3N2JhNTY2NWU0ZGRmNGIzYmQyNWNlIHB5M2sKKzgwNTAxIGVmZDcwNTUzYTA5ODkyMzJmZjFmNmI0N2JkZjNiNTNjMDBmNTdjNmYgcHkzaworODA1MDIgYzAzYTNjNmE0NTYyNjBiNmY4YzA1NWQ5ZjQxZDE0YTk1Y2Q4ODg5YyBweTNrCis4MDUwMyBkNjNiYjM1ZGUyZjAwYWEzODNiMGUzYTRiNGM5OWMyMzE4NDk4MjAxIGxlZ2FjeS10cnVuaworODA1MDQgMDQ4ZjZhOTJiZGUzYTZiOGQ3NTNiMGMxYTFjODQ1ZTk0YTg3MzM1MSByZWxlYXNlMjYtbWFpbnQKKzgwNTA1IDEwZGFmNjM0ZTI0ZjQ4MjY5OGFjZjc5NGU3NDZlZGVkMzM5NjY0NWMgcHkzaworODA1MDYgY2YyMDRhNzM3ODNkODVkYmMwNGRiNGJjOGU1OWIxZWFlNDU2N2IzNyByZWxlYXNlMzEtbWFpbnQKKzgwNTA3IDdmYzIxMWRmM2Q1YjIwNTA0YTRkYWIyMmRmOWYxZTY4NWUyMjhhY2IgbGVnYWN5LXRydW5rCis4MDUwOCA4NjAwNzM1MDVhY2EzMjlkNDBiYzlmYTBlYmUxMTQzMGRhYjAzYjlkIHJlbGVhc2UyNi1tYWludAorODA1MDkgM2ZlOGNmNzg3MzUzMDM3NDg0ZjNkNmNkMTBkNmIwYTk1NmZhYTU2ZCBweTNrCis4MDUxMCBiODc3ZDJkMDRjMTQ2NzViMTIwZTg0ZmRiNDcxN2JiYjAwNmQ2MjU5IHJlbGVhc2UzMS1tYWludAorODA1MTIgMzA5MDM1YzIyZGNkY2NmYjZiY2RlYzZiMDYyNWFkNWYzZmIwZjQ4MSBsZWdhY3ktdHJ1bmsKKzgwNTE1IDNiMjQ0ZWIyMGZhMTNiMThmMTUxM2E0YTcwMWJjZmUzZmRmMDk4ODIgcHkzaworODA1MTYgZDU1OTBhOTg3Y2IwNmUwYzIxNDEzNDczNWM5NTg0MjNhNjQ0YzlmYSByZWxlYXNlMzEtbWFpbnQKKzgwNTE3IGRkNDY2NDk0NTQ2ZGRlMzcyNmFjNWQ4NGZjMmQ2ZGQ0ZDRkZWEwMjkgcHkzaworODA1MTggMTFjOWFkYWVmOTZiMGJjMzYxYWQ5NWFjNmM4YmQwNzhjNjM5NTBiNCByZWxlYXNlMzEtbWFpbnQKKzgwNTE5IDE1NzFmMDlmNGEyNzc1ZGQzODZhNjRlMDQ0NjYyMWVlMjFkZjczZTcgbGVnYWN5LXRydW5rCis4MDUyMCA3ODRjZmJhYTIyOWYxNjBjZGI2YTBmZmFlOTkzNmY2ZmQ2NDM1YmU4IHB5M2sKKzgwNTIxIDgzYjkzMDM2ZWMzZDdjNjViZGEzOTY3YzM0NDdjNzc2MTM1MTVlN2EgcHkzaworODA1MjIgMThiMmRiYmJjNWIyNTIzNzI1YzAyYThiMWUwMGRkMmUyZmRlYmU3YyBsZWdhY3ktdHJ1bmsKKzgwNTIzIGMwN2QyZTVhY2Y2NWMxZjM2YWVkNjgwNGJlYjUxNzE1MDllNGMwMjggcmVsZWFzZTI2LW1haW50Cis4MDUyNCAyMmRlNmM3MWNkYjQxNTIxNmVkZjdmM2YzMzQ4YjFkYzFjMTZiNTU0IHB5M2sKKzgwNTI1IDQ2YWFlNDA2NzQyZDlmMTYzZmJjYjRiNGMzZGZjMjdkNTEwOGEzNTMgcmVsZWFzZTMxLW1haW50Cis4MDUyNiA3MTIzMDE1MDY3MzBkNzQyMTNmMGQ0ZDQyZDBjODUzODUzMzZlZDAxIGxlZ2FjeS10cnVuaworODA1MjcgNmRhOWVhZmIxZGFhZGJlZGJjMDMwZDE3NWNjZTBhNmIwNDE0NjFhZSByZWxlYXNlMjYtbWFpbnQKKzgwNTI4IGUyNWM3OGE4MmEwODNiOGZiOTk2ZTFlNTE4ZWNiMjU5NmUyNWVmM2MgcHkzaworODA1MjkgZDQ0N2M2MGZiNGQ4ODZjNGNkNzczZThhYzUwMzM4ZjI0NWExNTEwNyBsZWdhY3ktdHJ1bmsKKzgwNTMwIDFlMWIyMzUxY2YxMmZiNDU4MmM5MzdlYTJjN2ZlOTk4YzRlZTljMzYgcmVsZWFzZTMxLW1haW50Cis4MDUzMSBmZmU5OWY1MjJkODYzYmNhOWE0MWJhZDk3NjJmYzJhZTVjNDA0MWM3IHJlbGVhc2UyNi1tYWludAorODA1MzIgZDYyNzA4YWUyNmE1NTM2YzBhMDU3Nzc1MzNlZDIzMzJhYjAyMmZiNCBweTNrCis4MDUzMyBjODY5NDA4ZDRkM2VkZGMxODQwOTY0ZjE3YTIwMzdiZDViYjRjYzY0IHJlbGVhc2UzMS1tYWludAorODA1MzQgNjFhZTY2NGRlNTZiYTA1YTE3NDk2MjU2MDc2YmY5YThlMDAyMjczOCBsZWdhY3ktdHJ1bmsKKzgwNTM1IDk2OWVmNWViODBjNDM1MzI3MzcwNzY0YmE4ZDkwMmQwNTgwZTY5NmEgcmVsZWFzZTI2LW1haW50Cis4MDUzNiBmMTBhMzc4NzhkODQyZDI3MjE5YWVmNmYxYTE1ZTQyNDIxMWJhNmMwIHB5M2sKKzgwNTM3IDcxMTUyY2U3MDFlYTVkNDJmODY3NzViOGZhODVhNDlhMmIwMWFjMTYgcmVsZWFzZTMxLW1haW50Cis4MDUzOCA1YzM4MmJmYzAxNWE2NjRkYjk4ZThmZDE3Njc2MjYwNWZkODJmNDViIHJlbGVhc2UyNi1tYWludAorODA1MzkgNmE5MGRjOTY3ZmVkMDBjMTM3NmI4MDFiZDFkYmVkODJkNjNhYmIzZSByZWxlYXNlMzEtbWFpbnQKKzgwNTQwIDQ0OGVmOTAwMDgxY2UyYzg4NmMzODZmODdjOWY5M2FjYjg1MDRhN2YgbGVnYWN5LXRydW5rCis4MDU0MSBlZWY0Yjk1NGQ2NDQzOTBlNDdmYTliMmMyNWQzY2FjOGRiN2M0ZTNhIHJlbGVhc2UyNi1tYWludAorODA1NDIgY2FmZWY3NDU0ZGY5ZWNhZTY5Y2IxZTM5ZjUzYWMzY2YyZDZhYmZjYyBweTNrCis4MDU0MyAxNjRiM2FjYWQ5ZGFjYTEzZTAwZjlkMDllMmIyOGE3ZWUzZDJkNWRjIHJlbGVhc2UzMS1tYWludAorODA1NDQgYWRjMDc5N2JhOTIxMmYzMWVkZDcxNzJmOTg4Y2FiZDNlMzk0NTc3YSBsZWdhY3ktdHJ1bmsKKzgwNTQ1IDM2OTFkNzViMDYyNjM4NDE2NGVkODMzMjEyNjg3NTQwMjdiNWNlMzAgcHkzaworODA1NDYgNmVjYjNjODNmZTgxYmYwNTYyMWQxZWRlMzQ0NDllNzQyZDM4MzljOCBsZWdhY3ktdHJ1bmsKKzgwNTQ3IDE3Y2MyZjUzMjU2MzEzYWI5ZDUzNDhlMDAyYjg4YjE3ZGQwMTMxZmQgbGVnYWN5LXRydW5rCis4MDU0OCBjY2IxZDVlZjA0ZDZhOTIyY2RmM2M1ODc5YzE1NzQ2MzIzMWE3Zjg5IGxlZ2FjeS10cnVuaworODA1NDkgYWU2ZjU4NjViMzg2MDQxZDFkOGIwZjRhMzQ4YTdkM2I2MGY0ZjEzNiBsZWdhY3ktdHJ1bmsKKzgwNTUwIDFhYjI0OTQxYzk5NmFmZTk3MDllZTQ3NGNiMjFkMTFmOGVhZDY4ZGEgcHkzaworODA1NTEgM2I2OTc5MDU1ZjVhZTE4OTQ3NTNiNTE5NTc0OThhZjNjYThhMzVmMSBweTNrCis4MDU1MiA2ZDlkODU0NTg2MWVlYTRiNGY5M2U2MTIzOGVhYmE5NDljMmE4NjVhIGxlZ2FjeS10cnVuaworODA1NTMgMTM3OTE2NTQzZWZhZTc4ODI2YTUzZjBkNDMyOTkyMTc5NzRhNWNiYiBsZWdhY3ktdHJ1bmsKKzgwNTU0IGM3YTU4MjJiZjI5NDg3MzYzOGUyNzkxZmQ1NDMzMTg2MWQzMTAxYTkgbGVnYWN5LXRydW5rCis4MDU1NSAwN2NlNWFmMzE3ZWUyYjNiZTI5NmM4MWY0MTM2NGRiOWZkNzExOGQzIGxlZ2FjeS10cnVuaworODA1NTYgZmIxMGVmMGVmYTIzNTUyYmU3ZWZkYjkzMjc5NjBjNmU2MGVlNWQ3NyBsZWdhY3ktdHJ1bmsKKzgwNTU3IGZkM2FiZjgyYWM5NjA1Y2EyOGFjYzhhMDUxZmQzMzIzZmUyZDJlODMgbGVnYWN5LXRydW5rCis4MDU1OCAzMTZiNTcwMTdkMGYyNTc0YzIwMGI5ZmQwNDcxOGJjZWFhYjJmZmY2IHJlbGVhc2UyNi1tYWludAorODA1NTkgOGM2NDY5NjdiYTZiN2YzOTQ4NDFlNjMwNmY2NzQ1OGNmZjMyYjk3ZSBweTNrCis4MDU2MCA4Mjc5MjBjNTQ2YWY1ODA0ZjY1N2NiMmQzMmNkZjlhMGQ0YzhhOWM5IHJlbGVhc2UzMS1tYWludAorODA1NjEgNGE2OWQzMmExN2I5MDc2ZTcyNjA4N2M3MmQzOTE2YzU0MmQxMzM1MiBsZWdhY3ktdHJ1bmsKKzgwNTYyIDQ1NzIxYjljYTIyMDQxNDQ1NDVlNzkwNTBjNmVlMGE5ZTBhZDBkMTMgcHkzaworODA1NjMgODFkNzAzM2Q5NWEzNWU0M2E4MDExYmU4NzEzN2M2MjRkNGE5YWEyMSByZWxlYXNlMjYtbWFpbnQKKzgwNTY0IGI4OGFhMTNjZWFmMjU0MWE0NmFkMTQ4NzQ5ODc0NWZlOGUzZjYzMzYgbGVnYWN5LXRydW5rCis4MDU2NSA5NjdmN2JjMmRjYzg2MzU0MWYxMmQ3NmEzYWUzYjkwNGJjZDcyYTEwIGxlZ2FjeS10cnVuaworODA1NjYgODJkNDg3MjQxMzA2N2I5NjA0NDkzMWY1NGQ2MjBlNTIyYjdkNTA0MCBsZWdhY3ktdHJ1bmsKKzgwNTY3IGIwZjM0MmFiNTA5NTE4YTZjMDI1NmFiMWQ1NjA4M2ViODZjMjRlZTMgcmVsZWFzZTMxLW1haW50Cis4MDU2OCBmMDkwYmQ3MmFjZDgyYTYxMDQxMTlhZjYwZWEwOGY0ODk3MDczZmEwIGxlZ2FjeS10cnVuaworODA1NjkgMGRjMjExNWY2YmJlYWRmMDg3MjIyZDNiNTkyZGMzZTdhZDJlZTlkMiBsZWdhY3ktdHJ1bmsKKzgwNTcwIGJhZWZkN2I0MjVmMTc4MWNiNTE5ZWMzOTU5NzUyOGIyMGI2OGM2ZWEgbGVnYWN5LXRydW5rCis4MDU3MSAzYTA0ODQyMDAwMzQzOGY1NzZkMjA4NzhiMjIwOTZlYjIyZDQxNjUxIGxlZ2FjeS10cnVuaworODA1NzQgZTg0YTRjZGU3OWM3Y2EwYjYxM2IyYjQ3MzQ2ODhiOWY1MWQwYjcwNCBsZWdhY3ktdHJ1bmsKKzgwNTc1IGVjNzcxNWVhMmM3NTEyYmVkYzIyMzQ1NTI2OGMwMjc3NmYyYmI0ZDAgcmVsZWFzZTI2LW1haW50Cis4MDU3NiA2NWJlMWU2NzhlNjNlMjY4YzdmNmQwMzQxMjkwNzhjZmI2YjU3YTk1IHB5M2sKKzgwNTc3IGQ3NGVkN2UyMWU2MjkxYTlmZmVjOWEwYWQxOThhMjFiMDhkZWU0MDggcmVsZWFzZTMxLW1haW50Cis4MDU3OCA1MWUzMGI5MTZmYzQ5N2NmZWJhZWNlYTVkNjllYTdjZDdiODE5YmM4IGxlZ2FjeS10cnVuaworODA1NzkgMjIwZDQ3NjdmYTk3ODFiYmQ1Njk3OWVhZDE3ODMyM2RlZGRhMjE4OSBsZWdhY3ktdHJ1bmsKKzgwNTgwIDBiNWM0OGM3NjIyNDNlN2ZhYzU5NTdhMWJlYWQ3ZmJjYzU3NGE5YjUgbGVnYWN5LXRydW5rCis4MDU4MSBjOWU0MGNlZGM4YmMyNWZlZmNkOTZmMWJhZDhiYzc5ODc3MWY2NzM1IGxlZ2FjeS10cnVuaworODA1ODIgZmYxYTU5M2Y4ZDIzYzFmNzc4ODJjZGRhM2NlZWNkNDQxNTUyMTdmMyBweTNrCis4MDU4MyA1NzU0OGNjZTFlYTA1YWI2MTQ0NGE2N2Q0ZTNjNDg4ODdiZjhkZTQ2IGxlZ2FjeS10cnVuaworODA1ODQgMWUxY2M2NzJlYmRkMjc2NWYzYThmZDlmODFhYWU4ZDc5MGEyNTNlYSByZWxlYXNlMjYtbWFpbnQKKzgwNTg1IDA0YTE4ZTU5Y2MyYzQwNGQwMmQ0M2YwMzAyOTM0NGQyNTgzNDFmODMgcHkzaworODA1ODYgY2Q4OGY1ZmUyZDA2NTIzMDBkOTM4M2JlODZlMjg4NGM4ZGZkYTQ2MyByZWxlYXNlMzEtbWFpbnQKKzgwNTg3IGZkN2VjNjA3ZTEwMWE1OTQzYzJkNDlhMTcxOThlZjRhMzlmYzhlNzAgcHkzaworODA1ODggNjk1MGVhYjUxZmZlNjE3ZGEwMTM0Mjg3YzNhOGM1ZDA1MzBkOTMxYyByZWxlYXNlMzEtbWFpbnQKKzgwNTg5IGE0Mzc3NjU1M2FiNTMwNzgzY2I0Y2RjMTY3NzllZmNkNWU4ZjRiY2UgcHkzaworODA1OTAgMDVmZTEzN2I3ZWZmMDM1Njg2OGM1OTAwYzNhZDEwMzg0ODNlNDhmYSByZWxlYXNlMzEtbWFpbnQKKzgwNTkxIDcyMTY5MmVkNGE3Y2E5OWU5ZDk5ZGRlN2ExMWQ3Mzk3NmM5ODdiZTEgbGVnYWN5LXRydW5rCis4MDU5MiA5N2NlNmNlNmEyODk0OGJjNmY0NTVjODgzYmI2ZjZhMzU3MTFmNWY4IGxlZ2FjeS10cnVuaworODA1OTMgMGY2NWZiZTY2ZTNhM2JmOWE2OGFjNDg5MzY4YzYxOTYwODdhYzc0NCByZWxlYXNlMjYtbWFpbnQKKzgwNTk0IDU5YjJhZGI1MmIxNmIxODkzMjM0NjRkMjBmMjdkM2JmYzc1MzRjOTAgcHkzaworODA1OTUgZTdmMDVkYjVmM2IwMzI3NDQ2OGM4ZmVhZmJjNjYyMjJjMjNiYmIzNCByZWxlYXNlMzEtbWFpbnQKKzgwNTk2IDgwN2ZjYWM0ZjE3YjUzYTQ2YTYzYTFiMjNjMDUyMWEyZmRkZGM4OTUgbGVnYWN5LXRydW5rCis4MDU5NyBlYTgzYTYxZjY0MzBlMWE1ZTNiN2E2MGZlMzdmZTg4ZjVmMDIzOGQxIHJlbGVhc2UyNi1tYWludAorODA1OTggMGYzZjhiOWViNmZmOGRiMWRhOTc2MGM4OGVhZjM5ZDIyN2E4YzdiOSBweTNrCis4MDU5OSAxZDJiMzIyYzQ2YmUzNDVkMGZmYTdiMWI4ZTJjNzg0ODBmZTkzNmIwIHJlbGVhc2UzMS1tYWludAorODA2MDAgNDkzYmI0NTg1ZTM4MGYwOTkwYTVhMDUxNDczMmU4ZTg0OWM1YjZmNSBweTNrCis4MDYwMSBkOWFmYTVkMTIxZWE3YjY4OTU3OWIzMjZmOWNiYWEyYmE3YTViMDhmIHJlbGVhc2UzMS1tYWludAorODA2MDIgOTRlM2U5ODlhZTIzZjdkYzRiNzcyN2ExNzExN2I3OGViOTFkZGM1MiByZWxlYXNlMjYtbWFpbnQKKzgwNjAzIDE4NWRlMzFjOGE2YzlhOTQ2ZWIyOThkNDkyYjk1MTEwMmVjZmQ3NzYgcHkzaworODA2MDQgMDA3MzE5YTljODg4Y2ZkNjUwMGQzOTcxNWU0MmVmYjI5Y2UwZWQ2YSByZWxlYXNlMzEtbWFpbnQKKzgwNjA1IDVmODgzMDkzNWQ3NDQ0OTQyNmM4ZTQzM2EwMDk0M2JhN2JiODU2Y2QgbGVnYWN5LXRydW5rCis4MDYwNiA1OTNhMjI1NTAyNzU3ZDM5ZjU1ODNhNTE3YjdmYjAzNTlmNzE2ODViIGxlZ2FjeS10cnVuaworODA2MDcgMmQ1YzM0NWYzNGI5OWNjODczYWI4ZDliZDVmYjVjZDE3YzQwNjI4MSBsZWdhY3ktdHJ1bmsKKzgwNjA4IDAxYmRkNTNmNzQ4OTllZDhhNDE3MzY5NWExN2IzOThlNGUxMDg4ZjIgbGVnYWN5LXRydW5rCis4MDYwOSA4NDAwOTEzZmNjNTU1ZDY2NGEyZGYxNzE4NWRlZGEzYTcyM2I5YzdjIGxlZ2FjeS10cnVuaworODA2MTAgMzQzMWUxMzM5MTNjOWNmODRlOWM3NmYwN2Y2N2ZlNThiNWRkMWEwZCBsZWdhY3ktdHJ1bmsKKzgwNjExIDQ4NmZlODJiYWZiODRmNzg1ZmY4NTJiZDBjMTVmZTVkNjIxZjgwNjQgcmVsZWFzZTI2LW1haW50Cis4MDYxMiA3NzgxMjFiMjM4OGIzZDE1ZmQ3OTgyMjk4MDM5ZWYyOGJjZmFjMTYxIHB5M2sKKzgwNjEzIGU5MThiODRlZjk2OGNjODkwNTVmZjIyYWNjMDFiZjdmOTgyYzY1MjggcmVsZWFzZTMxLW1haW50Cis4MDYxNCA0YjU3MDE5MTUwYThiM2RjZWZjZWE3YzI2YjI1NTQ0ZTlhYjAyOTNhIHB5M2sKKzgwNjE1IDc3ZGRiOGQzYzQzMzU0ZDVlM2E5MDNjMDZmMDhjNTZlZTdlMTJkYmIgcmVsZWFzZTMxLW1haW50Cis4MDYxNiA0ZDk2MzRiODQ0OWJiOGQ0ODQzYTExMTgyNDIwMjM1YmRkYTJhZDU2IGxlZ2FjeS10cnVuaworODA2MTcgNmNkYTYwMWY0YzU4NTZmYTYyMjVhYmMxOWM3YWI3OTgwOGVhMDM1NCByZWxlYXNlMjYtbWFpbnQKKzgwNjE4IDllNTA1NzIwMTVhZDViMTkxNTU3NjhjYTc4ZWYwNTFkNDY4MTk1Y2UgcHkzaworODA2MTkgNDA1MjM3YjExMTA0MjUzODQxMDg1Yzc1M2M1YTM1ODY2NTVmYTQ2ZCByZWxlYXNlMzEtbWFpbnQKKzgwNjIwIGVjNmU5ZTBlMzE2ZDI4OWNkNTlkMjQwYjQ4MmY1YTczODRjYWI5OWUgbGVnYWN5LXRydW5rCis4MDYyMyA0N2ZjNmZlNWU0NTRmY2QxOGQ5NjM3YWMzZGM3OGFlODg3OTY1MTgwIHJlbGVhc2UyNi1tYWludAorODA2MjQgZmM4MjJhZjExYmJjNjhiNjgxYWFhYWM5ZDRmMDU0MGRkOGM0NDM3NyBweTNrCis4MDYyNSBkNjZkYjFiMjJkMTA5ODk0OTZhOTFiYzdjYjIwYTAxOTczZjBiNDY3IHJlbGVhc2UzMS1tYWludAorODA2MjYgNGRkZmI1ZGQ0YmI3OTRiYTYwZTg1NmVlYmMwYzg0ZTQ1YzQxOTZjYyBweTNrCis4MDYyNyBjNDgyYjQxYWU4NTU0ZmE0YzM3YzExMzM1YjNlMDhkMjIxYzY2MTlkIGxlZ2FjeS10cnVuaworODA2MjggMDZlMDExMGIwODIwOGI5MWNkYjRhM2ViMTIyMGE1ZTYwNmI5MjRlYSByZWxlYXNlMjYtbWFpbnQKKzgwNjI5IGY2MjcwMDI3ZTQ5OWYxOTZiMDBkNWM5ODM2ZThiZmJkZWM0YjNmYzYgcHkzaworODA2MzAgYWNlMzQ1Mzc3ODAwMGNjMDNkYjU2NWNmMjU0YTI4NTM0MGRhZjNmOCByZWxlYXNlMzEtbWFpbnQKKzgwNjMxIGM5MDg4MTkyN2JhZGE2ZDkwOWFjNWQ0ZmQyNWY1YWFkNzE3ODZlYjIgbGVnYWN5LXRydW5rCis4MDYzMiBiNmIzZTRmNzc3Yzk2ZTZiMzVhNzcyMjk0ZWM1OGFhMTQzZWQ5YzgwIHJlbGVhc2UyNi1tYWludAorODA2MzMgOWNjNjkzZjlhNWRlMDNkN2E2YWZkNGJlYTYzMWNjY2Q0M2Q4NmQyYSBweTNrCis4MDYzNCBmMzJiOGEzYWU5ZDYwMjk0ZTMxMGViZGQyODg0NGFkZjc2ZmY0NTkzIHJlbGVhc2UzMS1tYWludAorODA2NDAgMzZhNDE3OTgxMGYwYjY3MGZlNDc4MGM4OTE5ZDQ5MTQwZjIyMGNmYSBweTNrCis4MDY0MSA2OTkwNDliM2M3ZDcxM2YzODlmOGZiZDgzN2E5YzJmOGJkNWEyZGIxIHJlbGVhc2UzMS1tYWludAorODA2NDIgMmQyYTg1OGZlM2UxOTRjZjlkMDkzZmMzN2NiNTVjMTUwNGM5N2JmOSBsZWdhY3ktdHJ1bmsKKzgwNjQzIDdlMzYxYTZhMmFjODIyZTc1MTM5NjE4YjUyZjA3MWUzN2RhY2Q4YmIgbGVnYWN5LXRydW5rCis4MDY0NCBmZTVhMDA2YWY1MmJkZTcyY2YyODQwMWRmMjMxMjI1ZWU3ZmZjMWFjIGxlZ2FjeS10cnVuaworODA2NDUgOWZjZWNlNDA1ZTI5NTExZGI0OGNmNGY2ZDdmNDc3NWFmNDBiMjA5ZSBsZWdhY3ktdHJ1bmsKKzgwNjQ2IDVhNDg4NjViYmMxZTZiMDNjZDY5NTM0ZWZlNmE5NGQwZTFiYzcxOGUgbGVnYWN5LXRydW5rCis4MDY0NyBjMmUwYjkzZjg2OWY0MWNjNWE0NTU2Y2ZmMWYwYTVkOTk4NWJjZGM2IGxlZ2FjeS10cnVuaworODA2NDggYmZkMjU0MWQ4ZWM1YTM1MDk4MDIyOWExNDk2OGU2OTg0ZGYwNmEyNCBweTNrCis4MDY0OSAxMDIwNmNiMjNjODAyMWJmYjkzMzEzNmNhNzU5NjlkODRmNDcyODgwIGxlZ2FjeS10cnVuaworODA2NTAgNjIxZDJlOTg0ZDE4NzZkMDhkZGU2YmIwYjE4ODM3M2JkMmNlNmE2OSByZWxlYXNlMjYtbWFpbnQKKzgwNjUxIDJkM2FiYThjZjZhMzQ4YzY3YTI4OGJhNWIwZDE1NTYxMWIyMjNlYzcgbGVnYWN5LXRydW5rCis4MDY1MiAyYmRiOGViZmM0YTk1MjNkNTk1MWNkYzFiZTc1MDU3NTE5NWNkZjFiIGxlZ2FjeS10cnVuaworODA2NTMgMWI4OTQ1OTQ0OTBmYmUzOWYwZjJlNmQ2ZmQ1Zjg3MDllY2JiNjU4YiBsZWdhY3ktdHJ1bmsKKzgwNjU0IDdhMzVlMGI4YWUwOGM1YjUyNzQ0OGMxNTVhMDM2ZDY2YmQ1NTM2YmQgcmVsZWFzZTI2LW1haW50Cis4MDY1NSBlNDdhZWE4NmY3MTQzMzRlZmFhMTIwNGVkMTE1ZWEyYmYzZWVkZDNjIHB5M2sKKzgwNjU2IDA5MWQ5NzdjNGQzNzQzY2Q5NDdjMjExMDFkN2EyMGI0ZjI3MTVmZWEgcmVsZWFzZTMxLW1haW50Cis4MDY1NyBiYzYyMzBjNjZjMTQxZTBhYmJlMjExMzAwYzcwOTY3ZmQ0YzJmYzJmIGxlZ2FjeS10cnVuaworODA2NTggMDBhYzQ2ODhjZGNkMGYzZDMzZTI2OGYyMTIzNGNkNTA0N2MzYzk0OSByZWxlYXNlMjYtbWFpbnQKKzgwNjU5IDdhOWQxNzJhMTVlOTA5ZTFkNDNmNGIwNmM5NTg1NThlZGE1MGIxMjYgcHkzaworODA2NjAgYWY4MTA0MzFiZGFjOWYzMmE1ZDVjNWY1NTI2YWQzNGU1YjI2MDlhMSByZWxlYXNlMzEtbWFpbnQKKzgwNjYxIDU5MWRlNmM5ZmZlOTQ3NDhmNTRiZjE3NTNmYjE0OWZjZTk2YjExMGIgcHkzaworODA2NjIgNTFjZDUzZDNmNjAwYmZjNTU0NTQwOWMzNjcxNGU4Y2VmZDg1ZGUyOSByZWxlYXNlMzEtbWFpbnQKKzgwNjYzIDc3NDIzMDA3ODkyNmVmN2Y2ZTQzZDExOTFjMzI1MTg4NzNlOWI0Y2UgcHkzaworODA2NjQgYjI1ZTRiYTRhZjYxNmU5MzNhOTBlZjk3Njk1OTE0N2Y0YjE4MDI2MiByZWxlYXNlMzEtbWFpbnQKKzgwNjY1IDhmYzk4N2NhYzkxM2YyY2RhZDQ4MjRmYWE0NmRkMTk4Y2E1YWE0MzggbGVnYWN5LXRydW5rCis4MDY2NiAzZTQ1MTM5NDdjNTdiZjNiZGUxNzEzZTY3NjJkZTMzZGZhZjlhYjljIHB5M2sKKzgwNjY5IDNjNGNkN2RkZjFkMDE3NDY2NGIwZTg2MDU4MzdhMDU1NTU3YTE3MzMgbGVnYWN5LXRydW5rCis4MDY3MCAzZWI2ZWFkOTlhNjFhZDEyODBlMjg1ODQ0NDUyZjJhNTg1NDE1MWIyIHJlbGVhc2UyNi1tYWludAorODA2NzEgYzkwNjBjMWMxZjkwNTQyNjhkYmM4MjBkMjQ1OGIyMjk5NmMxOGI5ZCBweTNrCis4MDY3MiA4ZTM0ZDU5YmFkZjk4ZjdkNjJmYmM5Yjk0MmE4YjVkMjNhYWIxZWFlIHJlbGVhc2UzMS1tYWludAorODA2NzQgYWI2NDIzNzlkZGMwMjk0NTZhMmFjODAxZTBhNGVlMWYzOTY2MWRmMiBsZWdhY3ktdHJ1bmsKKzgwNjc1IGFiZmM3ZWQzNTVlNGUxMTJlZmJmMzE1YTQxZGI5Y2RjOTcwMDk1NDUgbGVnYWN5LXRydW5rCis4MDY3NiA1YjZhN2YyYTA1YzZkMTZkMjU5MTQ5Y2UzOWI0ZTMwMDI1MmQ2YTFjIHJlbGVhc2UyNi1tYWludAorODA2NzcgNTVlMGVjY2M3ZjQ2ZjM0N2RmNDAwZjNhNDgyMjFlNjcyN2E0ZTcwMiBweTNrCis4MDY3OCA1MmEzYWI1ZThlOGNmNjU5ZDcwMDliMWFkZTYxMmM2YmM2ZWYzNjZjIHJlbGVhc2UzMS1tYWludAorODA2ODEgM2ViYWMwZTQ2MGUwMzllMzk4NGM2OTQwODM3ZGY1N2Q2ZmMxNGJmZSBsZWdhY3ktdHJ1bmsKKzgwNjgyIDI0NWU0MzNkNjBlYjVkYzUzZTExZDNmMWJmNWY4YTg0ZjQ0NWIxNWQgcmVsZWFzZTI2LW1haW50Cis4MDY4MyAxOTMwNGQ4MjNjODc0N2MwOTdhNDVhMTA3MDBiYzAwNTdiNzg5NjNkIHB5M2sKKzgwNjg0IDgyZGEyOTBmZjcyMjNlNmJiYWQxNjNjNTY5ODJjNmVkZGU2MjE4MmQgbGVnYWN5LXRydW5rCis4MDY4NSAyZGI0YjMwMGE0MjA4NTY0MmM1NWQ4NzVmYjliZTI2MGRjMWM4ZmFkIGxlZ2FjeS10cnVuaworODA2ODYgNThiZTNhZjEzMGUyNmE5ZWI5NGUzNDg3YmY1NTVhMDA3N2U2NGFhNCBsZWdhY3ktdHJ1bmsKKzgwNjg3IGY4OWJhMTBmOTczNDk1OTllNzBiYjkwYzJhNzFmZjljYTk5YzJmOWYgc2lnbmFsZmQtaXNzdWU4NDA3Cis4MDY4OCBlMjhmZWRmMzYzNTk2OTRkMzA5ODc2NGQzMDc5ZDcyODk4MTIzNmZhIHB5M2sKKzgwNjg5IDIxMzU1ZGFhZjIzYTQ2ZGI5NzZjMjkxNDI4NmZiNjgzNzFhMDhmMTkgcmVsZWFzZTMxLW1haW50Cis4MDY5MCA3YjMwN2EzMDI3NDQ3NThkMjBlMjAyMjEwMmZiMDM0NjVhMjczYzgwIGxlZ2FjeS10cnVuaworODA2OTEgZjBlMjFhYzc5NWY0NzVjMzg5NjhkMzU2ZTA3ODJjMGI0OGFmZDE1NyByZWxlYXNlMjYtbWFpbnQKKzgwNjkyIGZkYTFkZGFlMDQ5YzY3NmVhMTQ0NmVlNWNiZDhkYjg4ZDQwZjA0ZDkgcHkzaworODA2OTMgNDY4NTcwOWZhYjNlMTM3NzA2NTExNzBhZWJkMWYwZWRhNTM0ZmY5MiByZWxlYXNlMzEtbWFpbnQKKzgwNjk0IDlmNGNhMDA2MTBlMzM4YjEwYzRjYWQ0OThlZjY3YjIwOTE3MWE0YWUgcHkzaworODA2OTUgZmQyNmViOWZiMGY5MmE0YTM5YTk0MmExYjQ3YjM0M2Y4ZjY2NDFiZCBsZWdhY3ktdHJ1bmsKKzgwNjk2IDk0YjUyZTVjYmUyOTQzYmViNGRhNTYxMzI4NmNlOWQwZDgwYjA5YWQgcmVsZWFzZTI2LW1haW50Cis4MDY5NyBhYmYyMjAxZGMzN2NiZWYxYzA0MThhZjk2MDcxZjRmYTAzZTNlZTZhIHB5M2sKKzgwNjk4IDIxMzY5ZDE4OWQ5ZTQ3OWY0MzBmMzYyODk1M2MyOGVjMDYzMDNmNGUgbGVnYWN5LXRydW5rCis4MDY5OSA3ZDk4ZTBlYTlkYjM1NGUzMDkzY2U1ZTc3MzU1NTY5OTc4YjE1MmY3IHB5M2sKKzgwNzAwIGQ5NWRmMjYyMmY5ZjViNzc0Nzk3ODhmOGRhYmI2MDIzNTk0MDRjNzggbGVnYWN5LXRydW5rCis4MDcwMSBiMWRkNzcxNTQ1ZTIxMjdlM2Q5ZmQ3MDQxOGRmNDhhY2UxM2MzN2U0IHJlbGVhc2UyNi1tYWludAorODA3MDIgNDMxMjY3NjI2YTAzNWNlNGU5Mjg5OGE2YjQ0YzM2MmRjNWRlMWY1ZiByZWxlYXNlMzEtbWFpbnQKKzgwNzAzIGNmMDM2MWMwMjU1MWQwOWUyYTBmYzY1NmJmMjVhNTgyZDczZmM5MWEgcHkzaworODA3MDQgYjNjM2IxMjQ2MGQ0ODExMDkxZWYwY2QxNGE4MTJlOGNmYzhkYmYyYSBsZWdhY3ktdHJ1bmsKKzgwNzA1IDhiNzUzMjk5MjQ2NDJlYjk5ZTA1NjA0MTdkYmQyMjE3ZmZiZTZkZDQgcHkzaworODA3MDYgYzYyYjFkMDI1NTFhZTI4NjQxNmE2M2E5NGE1NjNlN2Q2ZjdmNjMzZCByZWxlYXNlMjYtbWFpbnQKKzgwNzA3IGE3NzQ2N2JjYWRlMGI3ODNhOTgxNTBiYTA2MTVjOTNlYTE5MTZlMTggcmVsZWFzZTMxLW1haW50Cis4MDcwOCAwM2MzMjA5MmQyNjY4MjgxYzJiYWNiZGIwODQwMjViMzI3ZjM0NWMwIGxlZ2FjeS10cnVuaworODA3MDkgNjJiOWE3NDMxMDQ3ZjZlOTlkMDcyOTY0YjQ0YWMzYjExMGJhOTM4MyBweTNrCis4MDcxMCBkMDYyYjhlNzkwNTIxZTEzZjdmOTNhOTZmMjczZjdmYjc2NWI1YzhiIGxlZ2FjeS10cnVuaworODA3MTEgYjdmY2IyYWY4Y2I0MDhkZTY3YWJlODUxZTAwMDhkMzk2Njk2NDA3ZCByZWxlYXNlMzEtbWFpbnQKKzgwNzEyIDU2ZDgzMWU2ZjUwODgxYWRkZGU4NTI0YzdiYmEwMDI2MmI2MDA5OTkgbGVnYWN5LXRydW5rCis4MDcxMyA0NzY3YzY2NmIyNWIwOGIzYmY1OWI0ZGExZmU3Njc0MWE1NzM2MjdmIHJlbGVhc2UyNi1tYWludAorODA3MTQgNWQ0YTU2NTU1NzVmMmM0YzZkYTRlZTZhY2FmMDNiOTJhMzFmMTliYiBweTNrCis4MDcxNSAzZWQyOGYyODQ2NmY2MDZhMTZhZDI0Zjg4ODFmNjU5NzQwZGZlMGM3IHJlbGVhc2UzMS1tYWludAorODA3MTYgZjk5MmNlZDMyYzIwNTc4YTI5MzAxY2ZmZTIzMjY4MzVjZDgzMGViMiBsZWdhY3ktdHJ1bmsKKzgwNzE3IGQ5MmZmNzA4MWIyMDM5ZDZjYzg1NTljMWIyMzNiMGJlZTE1Yzc0OWQgcmVsZWFzZTI2LW1haW50Cis4MDcxOCBmMDI1NWVmNGRiZWJkMWYyMzhlZDU5MWJmMDc2ZGMzYTk0OWE3YmMzIHB5M2sKKzgwNzE5IDdhYWY1OWQ4ZWYwYmZiYjRhZGJkOWE0ZmMzNGMzMzI1ZmNjNjI0OWIgcmVsZWFzZTMxLW1haW50Cis4MDcyMCA5YjQzOGJiMDZkNGQ2MjNlMmUyMzU4YzU2Nzc2YmIyOTBhZjYyZjExIGxlZ2FjeS10cnVuaworODA3MjEgZmUzYmYzOTlhMTljMTI2NzM3ZWI0NTgyNGE5MjQ1N2EyYWY4YzllOCByZWxlYXNlMjYtbWFpbnQKKzgwNzIyIDgxY2VmNWI3NGYxYTdhZTU5ODM3ZTJiOWM3OGUwZTAzNDE1NzkxNTkgcHkzaworODA3MjMgY2EwMWFiZDhhZDg3MTZmYzM3MTYyYzQwYTI4YThhOGI4NDU1ZGM3ZSByZWxlYXNlMzEtbWFpbnQKKzgwNzI0IDRmZDNhYjVmYTcxZDYwNmFlN2UyODAzMTI5Mjk4ZGU3YmVhZjMyZjAgcHkzaworODA3MjYgNjg1MGFhNzg2YzE4NzY3ZTdhM2QyNGQzZTkyZDM2ZDljNTViOGU5MyBweTNrCis4MDcyNyA1MTJkNjFhNjkyZTRlYjM3ZWQ1NzNmYjdjMDkxMDdiMTU4NGE0NzE5IHB5M2sKKzgwNzI4IDEzOGJiNWM5MzA3NDdmYWViNjRlNDgzZTM3ZjIwNWQ0YTRkYzQ2NWQgcHkzaworODA3MjkgMThjYzA1ZTgyNzUyMjcxZTY2NGI1M2ZiZTYwNDUxNmQ1NDViZGE5YyByZWxlYXNlMzEtbWFpbnQKKzgwNzMwIGU5OTEwZDE5MzIxNDZlMGE1MzkyMTM0ZGYwNjQwYjI4NmVjOTEzNTIgcHkzay1qaXQKKzgwNzMxIDE4MWNkMTQ5MmNiMGM3NWJhOTdkYjMyMDE5ZmJiODEzNzMxMzhhMjEgbGVnYWN5LXRydW5rCis4MDczMiBhMTE4OTA1MjcyMjk5ZmI1ZTZhMjAwNzM0OWEwYWFmNzA0NjY0ZDFkIGxlZ2FjeS10cnVuaworODA3MzMgMDJlMTg3YmFhZjUxNGQ3Yjk2MmMzYTA0ZTRhYzMxOWE5NzdlY2Q1MSBsZWdhY3ktdHJ1bmsKKzgwNzM0IDBjZjgwYjcwZjgzOGEwMzgxYTMyY2Y3YjU1ZjM2NDg0NWQwMzRkYzcgbGVnYWN5LXRydW5rCis4MDczNSA5ODJlZWM5YThjMjg4NTNhZmQ1ZTRkOGY5ODk0MDcwZThkNThmZWM3IGxlZ2FjeS10cnVuaworODA3MzYgZWI0NzBiODVlNjdhZmE2NWZhM2JkMzAwMjM3OWYxNDFkM2RlZGFjNiBsZWdhY3ktdHJ1bmsKKzgwNzM3IDdlZTU2MmNjZWE4MDJjMTM2OTg3ZjFiMmY5MGE5OWQyZDk5NDQ5N2EgbGVnYWN5LXRydW5rCis4MDczOCA2MzY1OTFmNGMyMTYyYTkxMDAwMzJmZjAwYWZmNDg5ZGRjMWMyNmQ4IGxlZ2FjeS10cnVuaworODA3MzkgODE0MjQ1M2RiODBjYTAwMWI1MTc4ZGZkNjNjZDNjZWQ2MzVjMWQ4MiBsZWdhY3ktdHJ1bmsKKzgwNzQwIDdjNjJlNzJkODU2YjI5MjMyN2ViZDI4OWEwMmFlZmUwZjc5YzcwYmEgcHkzaworODA3NDEgZjY1NjllMzRiZDI4MWFhMWUyMWViMTE3OTM4MjVjZDEyMzRlNDA5YiBsZWdhY3ktdHJ1bmsKKzgwNzQyIDc2OTVmNmE3ZTNhM2I2NDI2MmY3MmY5OWU1MzM4Mzc0ZjdiNjMxM2MgbGVnYWN5LXRydW5rCis4MDc0MyA2NmZiY2EyODdhMDExODQyYzEwMWI2NjJmMjQ5MjQyYTZiZGYxNTQwIGxlZ2FjeS10cnVuaworODA3NDQgM2M3NjgzZDZhM2M0NzEzNjRlMjk4MzY1NmUyZTg1NTJlNTg3YjIzZiBsZWdhY3ktdHJ1bmsKKzgwNzQ1IDg1ZDY5M2U1ZjIyOTNiYjQxYTE1MmYxMjQxZTE1MjViMzMyNWFmZGYgbGVnYWN5LXRydW5rCis4MDc0NiA1NWE1OTNjYzMyODAzYmM3NGRiYmZhZjNjNjlhNDE1MWFkNjYwODg4IGxlZ2FjeS10cnVuaworODA3NDcgY2QzM2Q2Y2QyMTAxOTU2NDMzOTUyYWZkMzJjMjZkNWI3YmIzZDg4MSBsZWdhY3ktdHJ1bmsKKzgwNzQ4IGUwZWUwOTUxZTk1M2YxNTFjZjNmYzA4YzdhMDlmNzUyNDVkNTUzOTIgbGVnYWN5LXRydW5rCis4MDc0OSA1ZWMxNTVlYzdkYjI3MGE0ZTUwZWZiYTg5YjA1Y2Q4MWQyYzI1NDlkIGxlZ2FjeS10cnVuaworODA3NTAgZDE3NmFhNDczMjg3NTY3OGY0ZGVlZDQ4YzhkMDVhMGY1NzExOGViZCBweTNrCis4MDc1MSBhNTE1MzdlNzA0YTliNDQ0ZTZjZTU5ODRjODAyY2M4OTViYzZlZTE2IHB5M2sKKzgwNzUyIGI3NjBmNmZmODllYWIyN2EyNGNiNTBlNWJmZWM1ZTRlYjRjOTllYzkgbGVnYWN5LXRydW5rCis4MDc1MyBjMGVhMDc5MjU0MDAyODRmZjQ5YzFlZTcxNGU5ZGMyNTNhZjU2YTllIGxlZ2FjeS10cnVuaworODA3NTQgZWNjMzJlMmY0NjU2NmU1ZGVjOWY2OWI0ODIyNTMyZjUxOTQwMGIxYyByZWxlYXNlMjYtbWFpbnQKKzgwNzU1IDE4MzM0ZjIzZjY4NmZjMjU4OTY0MDI0ZDcwYjljMTQ2NjdlN2U2NTAgcHkzaworODA3NTYgMTE0Mzk3MmYwNGJiZDU3Nzg4MGYxYzNiYjIwMmMwMTQ0MTIzMWM2ZSByZWxlYXNlMzEtbWFpbnQKKzgwNzU3IDFiNGI1MDZhYTA0Mjc2OWY5MGFmYTExYTFmMzQ2NmYwNDU0MzZkZmEgcHkzaworODA3NTggZjU1MGVkODkzOThmNThlNTFhZDk1ZTJlNTI0ZTc5MmZjN2RhYzRjZSBsZWdhY3ktdHJ1bmsKKzgwNzU5IDZmNDY2OGI5N2Q2ODQwMzU0MzliZGYzOGY1OTE5NDM3NGJjMWUxNjIgbGVnYWN5LXRydW5rCis4MDc2MCBjNzQyOTlkZTgwMWFiYTM1YjM2MjA5NDk1MjA3Y2RkODUzOTg4NjEzIHB5M2sKKzgwNzYxIGYzODRlMTFjMWJiNWY2OGE4NzdkOGE5NTNkN2VkN2IzZGU5ZmUzNDMgbGVnYWN5LXRydW5rCis4MDc2MiAzOTA3ZDUyNjQ4YTBmMjU2MTMzNWU3MGViODEwOGU4N2Q4MDgxMWIyIGxlZ2FjeS10cnVuaworODA3NjMgYWRjMmViZGE3NjM2YWFmYmRjNzUwMWNiMDc2Yzc3Njk1ODgzN2EzYiByZWxlYXNlMjYtbWFpbnQKKzgwNzY0IDBhNGNhODkyYTU5ZTVlOTI5ODE5MTNmNzY4MDU5ZTgwNWFlOTA2MTYgcHkzaworODA3NjUgOWJhNmZjZWM0ZjE0OWUxN2EyMjEyNzU0ZTVjOTM5NGI2MTRlMDcyYSByZWxlYXNlMzEtbWFpbnQKKzgwNzY2IGQ5MjI4MDUxNzMwNTM3MWMwNTJiZjEyZTRkYjY3Y2FkZDdlMGQyN2MgbGVnYWN5LXRydW5rCis4MDc2NyA4YzliNzg1YjE4NDlkMDZiM2Q3YWRkZGM0NTAxODhkNmQyZjZhNjNiIHB5M2sKKzgwNzcxIGQ0OWYxMzEwZTIzZjkwMmFkOGFlMzdlOGQ1NzUwNDdlNGQ2MDdjM2UgcHkzaworODA3NzIgNmU0YmZjZjIwODBjNzE2MTY2YWNlNDdhYmIyZGRmOTQ0ZGM5OTU2YiBweTNrCis4MDc3MyBjZjQ4NTM1MTMyZTBkYzA3ZWQwZTNiN2IwMmIyNTI3NDlhN2UyYzcyIHB5M2sKKzgwNzc0IGUwMTA1ZmQ1MjAzMjkxN2UzMDA1OTVmMzYwNWU1YWZkNWQzMmY2OTYgcmVsZWFzZTMxLW1haW50Cis4MDc3NSBkNzRhYzdjY2E2MDc3MGExMTJkYWEzZDJlNzg2NWIzMzA2YWM2NzhiIHB5M2sKKzgwNzc2IDEzNGE2M2FmMjJhOWE1OGE4NjU2YzI4MWU3M2VhN2Y5MWEyYTU5NmYgcmVsZWFzZTMxLW1haW50Cis4MDc3NyBiYjUxZTRiYmZmOGMyOGIyMjNjZGUwMTE4ZTI5NTAwYTQwZjJhNjQ0IGxlZ2FjeS10cnVuaworODA3NzggZGQ2MGRlMmZhZTNjZjZkM2FkYTJjNmQ4NTEyOTQ0NDYwY2E4OTgxNyBweTNrCis4MDc3OSA0MzgwZTA0MzQzZWU5ODVhN2E5OWEwNjk3ZjI2ODYwZDQ4YTdiNTg0IHJlbGVhc2UyNi1tYWludAorODA3ODEgYjdhZTNhNmIxZDg0YjI3NDBhNzI2NDNhN2ZkNmIzYTVhYjdkYzllZSBweTNrCis4MDc4MiBmNDQxMWEzY2RmMTM5YmFjNzc5ZTJiZWRkMWQ3NjcwMTlmODEyZjc4IGxlZ2FjeS10cnVuaworODA3ODMgMzFhMzJlNGUwMjU2ZmY5YjEzYjE1NGM4YjVhYWZhNGZiMDFkODMwYyBweTNrCis4MDc4NCBkYzY4NTIwOTg4YTdmOWI5NmEyNTAwNDNiN2VkZjY4OWJjMGQyY2I3IGxlZ2FjeS10cnVuaworODA3ODUgODEzZGFlZTk0ZjczODNmMWVhMTM0YTFmZDFlZTU3ZmQ1ODFlOThmYiByZWxlYXNlMjYtbWFpbnQKKzgwNzg2IGZiYjVjZDM0NWI0MmU5MWRjMjNmZDM5NjcxZjM4YjFlZWEyNmI2Y2EgcHkzaworODA3ODcgN2IyOTk0MDRlNzgxMGNkNmI5NjY5OTI4ZGYyNDk0Y2ZiN2Q5N2U1YSBsZWdhY3ktdHJ1bmsKKzgwNzg4IGYwNWEyOTg5Mzc5ZWM5YTZiMzM1M2MyNmU4Mzg3MGQ4NzI0YjljODcgcmVsZWFzZTMxLW1haW50Cis4MDc4OSA2ZGI5YmE0MmU0Njg3MjM4MGUwOWJmNzU0YTBhNWU2ODYxYzkwYjQ0IGxlZ2FjeS10cnVuaworODA3OTAgMzUyMjFjMDE1OGI1YTcyZmQxNGYyM2M2ZTU5MGE1MmU5OTRkMjIxMSBweTNrCis4MDc5MSBjY2FkZTU3NzI2NzQ2NDM3NTc3ODhkZTQzZGFkMjk1YTVkNWUwMWRkIHJlbGVhc2UyNi1tYWludAorODA3OTIgNTBhNGVjMzczNjFkMDBkZTQwYjE4OGZkN2Q4N2JjODliMjcwOTVmZSByZWxlYXNlMzEtbWFpbnQKKzgwNzkzIGI2MDhlMmVkOWY3NTg5MWJiZmRmNDc1MmFkMDNjOGM0ZTYzZjY5MTEgbGVnYWN5LXRydW5rCis4MDc5NCA0YjY4ZDZjOGNkNTJjNGUwNmY3YTdkNThlNWNiNTc0YzJlNjllN2E1IGxlZ2FjeS10cnVuaworODA3OTUgMzU5MzJhMjRiZTg1MDljZDliNjI3YjdlZDhlNmUwYTUzZDExMTA5YSBweTNrCis4MDc5NiBkNGFhMzU5MDc4MDg3NjJkZWQwOThmOGUxZTQ4NWVmYmRjZGZlMTU5IGxlZ2FjeS10cnVuaworODA3OTcgNjI3ZjExNDQwYjg5ZTYyMjViYjQ4Nzk4ZTkwZjJlODkzMGMwMGI1MiByZWxlYXNlMjYtbWFpbnQKKzgwNzk4IDc0ODNlY2I2MjFlMGY2MGJkODgxYzdlMDM1MTg0NTk5YTQ5YWQ3ZWIgcHkzaworODA3OTkgOGVlODBjMmY5OTI2NzljN2JlZWJkMmIyMDE1NDFhMWFiNGI3NmFlYiByZWxlYXNlMzEtbWFpbnQKKzgwODAwIDU3NWU5MzhhOGNhNTI1YjIzZTgwY2ZkODM4MGJiNWRjNTU4NDY1NmQgbGVnYWN5LXRydW5rCis4MDgwMSAxODlhMmRlM2UwMzQ1ZjA0NGU1ODA0MDI3ODhiYWYyOGQzYjlhODgwIHJlbGVhc2UyNi1tYWludAorODA4MDIgMzNhYzEwOWRlMGNjMmQyMDA0YTRiMDlhNGY0YjZkNmQ0NWI5ZjM2NSBsZWdhY3ktdHJ1bmsKKzgwODAzIDgwZDA1NjMwMjYzYWRkMjU4ZWUzYTc1ZTJmYTM4MDJjNTc4OWRhMTcgcHkzaworODA4MDQgZjY3ODViY2U1NGI1MzMyZGU1ZTU2Zjc5MTYzMmM1NjkzMDllNzg2YiBsZWdhY3ktdHJ1bmsKKzgwODA1IDFmNzUwNmYyMzc3MTZmYTA4NWEyYTRhYmViYzBjNGFhM2YwNDU5ZGQgcHkzaworODA4MDYgOTBmNGI2MmQ0NzU5ZDA0OGE1Mzg3NjQyNjcyYzU1MWI3NTNjMTBlZiBweTNrCis4MDgwNyA2ODk5MTM5MzAxYzllODdjMzkwYzBlZWMyNzMwM2ZmMDQzOGJjZjE5IGxlZ2FjeS10cnVuaworODA4MDggM2I1OGYyNDQxY2M4N2ZkZDZiNmNhNmI1ZjMyNDVlN2IyNDRkZjg1NyBsZWdhY3ktdHJ1bmsKKzgwODA5IDk0NTM4YjA0NGNiZWZhYjBlOTQ2N2UyYmQ3MTkzYTU2YTc3ZDkzZmIgbGVnYWN5LXRydW5rCis4MDgxMCBmOTVjMjU5YjgwYjNjZTVhZDU1OWY5Zjg0NmUxNzYyYmM2NTM4MDMxIGxlZ2FjeS10cnVuaworODA4MTEgN2JlODEyOWVlMGZkMjFkZDE4OTkwNTBhNDk5NTE4OTVkOTllZTA0NCBsZWdhY3ktdHJ1bmsKKzgwODEyIDQ3YTI3MDBjMDBiNDlkODY1ZDFjZDI5NGQ5NmM5MjIzM2Y5MDBjZjEgbGVnYWN5LXRydW5rCis4MDgxMyA1Y2VhMjcyNzVhZjEyNTgyYjA3OGMzMzk2YjMyM2U2YzhhN2RjMmM2IGxlZ2FjeS10cnVuaworODA4MTQgMmQ4ZmE3NGY5MjYzZTQwMDEyOWRiNTNjNDE0MjRlMDk1ODVjYWU5NiBsZWdhY3ktdHJ1bmsKKzgwODE1IGZmZjQzOWYwODlmZTU1YWI1NGI4YzczOTRmZTIxYjk0MDU5ZjQ2MzIgbGVnYWN5LXRydW5rCis4MDgxNiA2ZmI2ZmE4MDIyMjFlN2Y1ODRhM2RiZjZiOWQyNGNkODE4NThlMTBiIGxlZ2FjeS10cnVuaworODA4MTcgODQ1YzZkODAwMzAyNDQ2Y2E4M2I4NGYwYjBjYjUwNzgwZTcxNjYwNSBsZWdhY3ktdHJ1bmsKKzgwODE4IDc3Yjc4NjA3NjAwZTUyNGQyZTg2N2RkNTRkOGI2NDU1MGY0YmExMmEgbGVnYWN5LXRydW5rCis4MDgxOSAzZmU0YzM0Zjc4YzAyOWY3OGU4ZTMzMzlkY2YxY2M4OTA5MjUyM2ZmIGxlZ2FjeS10cnVuaworODA4MjAgOTVjNDAwYjlkNzRjYTM3YTZmYzcyN2M5MDhmYTAwYjMyYTgwN2NiZiBsZWdhY3ktdHJ1bmsKKzgwODIxIDBkMTQ4MjdiY2MwZGZhOWVlMjBkMzJkODhjNDUxZDg5Yzg5Y2VkOTMgbGVnYWN5LXRydW5rCis4MDgyMiA4ZTNiNWZiYzFlNDFiZjFiM2Y3MDZhNDM5YWNhNjY1MzVmYjQ3OTk3IGxlZ2FjeS10cnVuaworODA4MjMgMDM3OGY2ZTM0NmYwMzI1OTg3MDY3NzUwNmE3ZWRhYTJiYmE0OWRmMiBsZWdhY3ktdHJ1bmsKKzgwODI0IDg4NDY2ZWYxZjBjZGU2ODE4MDhiZDMyMzc2NGI0NDliYmFhOWNlYWQgcHkzaworODA4MjUgOGJmMzQ1OTRiNjZmMzE1M2I5ODBlODZiODQ5MDk4MTE4MDBiOWQ5MSByZWxlYXNlMzEtbWFpbnQKKzgwODI2IGYzMzA5MDQyYTBiMzFiZWUxNmMyM2Q5OTMzNTI5N2I5YjZlZGJjZWIgbGVnYWN5LXRydW5rCis4MDgyNyAwM2JhNjBkMWU0OTJhMzk4NDU1NzAxMDZlMjkyYjNmNWNiNGU3ZTU0IHJlbGVhc2UyNi1tYWludAorODA4MjggOTQ0OTM4YWJiMjZjZTA2MDlmMDQzMGQ4NDM2NmUzM2Q5M2QxMmNjZSBweTNrCis4MDgyOSBmNGNlYjRhZTAyNDdkYmEzMjYyMjgxMWY3MzViYmFlNzczMGExMDQyIHJlbGVhc2UzMS1tYWludAorODA4MzAgMjZiODFjNGU1ZmJhNDdlNGM2NjgwM2MzYTg5NjU5NTU2NDllNDI1MSBsZWdhY3ktdHJ1bmsKKzgwODMxIGYwZmE5NDRiMTVjMGNmMWY4NzA2MGRhZjNmOTI3N2IyMDJlNThlYjYgcmVsZWFzZTI2LW1haW50Cis4MDgzMiA5YmVhMzdhODUwODg0Y2RkMjI3OTFjOTRhMDQwZjJmZGMzZDJkYmEwIGxlZ2FjeS10cnVuaworODA4MzMgYzQyNDI5OWIzODg0YjQwYzc2YTkwZmI3YjU3N2YwN2Y2YTIzMGNjMSBweTNrCis4MDgzNCA4YjVkZGUyYzMxZmIzZjY2NjA1ZjNjOTU2YzkxYmY0NDBmNmFhYmEzIHB5M2sKKzgwODM1IDc4ZTdmYzAxYzUxYWM1ODM1ZjRkNTNiM2YxZTExNmMyYzI5ZDgyNDAgcmVsZWFzZTMxLW1haW50Cis4MDgzNiA1ZGNhMGEzZmI5OTNjNDA1ZWUzYTVhZGEyZmJmMzk3MmQwMGUyZTUyIHB5M2sKKzgwODM3IGUzZTQ2NmY1M2Y5ZWYwYTE0MjJkZTY2NzlkZGE0ZTI3NzIwMzEzNzEgbGVnYWN5LXRydW5rCis4MDgzOCA5OTVlYjk2Y2FlNjg2YmVmMzU3NzhmMGU0Yjk1YWFmMjk3ODVhMjVmIHJlbGVhc2UyNi1tYWludAorODA4MzkgYjMwM2MzNTI1NGRlNDEzMTdkOWM4NzA0NDgxY2IzODc3YTFhNzZjMiBsZWdhY3ktdHJ1bmsKKzgwODQwIDY1NThkOTZhZGUwM2FkMzM4NmI5NWYyNDRiMmRlYjhjNWRkNWRhNjAgcHkzaworODA4NDEgMmYzMTMwMDhhNDFkNDVmMmE2ZWNmZjY0YWM2MzJiZDVlNWEyZGU4NCByZWxlYXNlMzEtbWFpbnQKKzgwODQyIDYzZDViOWQzOGIxNzZmYTRiMTM1N2EwMTFkZDYzY2Y5NmIyNDAxZjcgcHkzaworODA4NDMgOGFmZDZmMjhhY2E5ZDIyYWU5YmVlNjJhNTI5MDczYTZiNWIyZTI5OCBsZWdhY3ktdHJ1bmsKKzgwODQ0IGYxMWQ0ZDJiNDRiNjdkNGExYTcyNDA5MTZkZjM5MjM1OGEwZTA2MzUgbGVnYWN5LXRydW5rCis4MDg0NSBlMTE0NmIyNWY3NzMyMjQ4NjQzM2M4NzY3ZGRlMjNhYmVmMGExZmUwIGxlZ2FjeS10cnVuaworODA4NDYgMWNmYjIyOTg0NGE3OGM1NDIyMjYyN2YxNzlkNmRlMzE0MzE3NTEwOCBweTNrCis4MDg0NyBlNTAzYmI4YjNmNjE1YjM2ZjM3MjcyYWQ3M2UwOTg4MWIzNTM5MzU1IHJlbGVhc2UyNi1tYWludAorODA4NDggZGMyYWFjNjI0ZmY4ZjliNjM2YmVlZmQzNDEwYmMwYzI3MzFiM2RlNSByZWxlYXNlMzEtbWFpbnQKKzgwODQ5IDAxNmRiYWIzNTFmMmUxM2U2ZDBjNmY2MzJlZTIyYWM3OTM3NDlmMTAgbGVnYWN5LXRydW5rCis4MDg1MCA4NWNjM2VkYzdkNDZlNDI2NDRiY2U4YmI1NzQxZGEyNmRhMzU2MTI2IHJlbGVhc2UyNi1tYWludAorODA4NTEgYWE3ZTZiOWNhYjZkNDkyZGM2ZjcwZjhhMTQyNWZlODYxNmJiMWE4NSBweTNrCis4MDg1MiBlMjE4MDNjNGYxZWVmNWY4OTI2YmVmNmU2NWU0OWVjZjE4M2I2NTcyIGxlZ2FjeS10cnVuaworODA4NTMgZDJhNDQwMDU3OGE1YzczZWQ2ZTdlNmYzYWYyMjMyZmQ2MGU5N2EzNSByZWxlYXNlMzEtbWFpbnQKKzgwODU0IDg5NDJlOTYyODZkYzY0MTc3ZWViMmVjZDIzM2VmMTc1NWZiY2RhMGMgbGVnYWN5LXRydW5rCis4MDg1NSA4YjY0MTU5NzkyYmJiMWY3MTY4YjE2YmEwZWRjNjUwY2Y0ZDBhMzU0IHB5M2sKKzgwODU2IDViNTVkYzk1NTRmY2JkNzdlMDdkMWJlYjYzZmZkMTkxZTEyZjZlNDAgcmVsZWFzZTMxLW1haW50Cis4MDg1NyAwZWQxZWJlNWJjMmZjOTNjZjBmMDIxMzIwMmUxNDM2YjFmNjYzNjJiIGxlZ2FjeS10cnVuaworODA4NTggZTRhMGJhMjUxYzRhNGZkZDA1ODVlZDQ2YmE3ZjgyZGE4ZTRkMWQwNiByZWxlYXNlMjYtbWFpbnQKKzgwODU5IGI5MmVmOGViY2NiOTc2MGI0YWU0OTZmZTU5N2VmOGNhMDEwOGY1YWYgcHkzaworODA4NjAgMzlhMmJlNDEyN2RkNDQyMjVjYWUyNTg4ZDc0ODIwZWUxYjY3ZGIxZSByZWxlYXNlMzEtbWFpbnQKKzgwODYxIDNjYmNjMjc0NTk3MjkyZDFjNDRjNzdhNGQwMTMyOGI4Mjg2MjA4ZDMgc2lnbmFsZmQtaXNzdWU4NDA3Cis4MDg2MiA5OTY1ZWY4MjVjN2Y3YjJkODU5MGRjYTMyNmQ2YjQ5ZWIyODU2ZDBiIHNpZ25hbGZkLWlzc3VlODQwNworODA4NjMgMmQ4YTNiYjhmYjYwOGE3M2EyNzBiZTU1YjFjOGRhMzQ2Zjc3ZGU3MCBzaWduYWxmZC1pc3N1ZTg0MDcKKzgwODY0IDNkYTY3Mzg4Yjk2YTM3ZDE2MWU1YTU1YTc5MDdiOTRmNjQ2M2QyYjUgc2lnbmFsZmQtaXNzdWU4NDA3Cis4MDg2NiA2MjU0YzAyOGM2M2QyNDAwZWZkMWE5MzM2M2FmNjZiYWI3NTA1NGQzIGxlZ2FjeS10cnVuaworODA4NjcgZWE3MDAxYzNmMDAwZmY2OTEzNzk0MzRiNWNlMDA1NGU5Y2FlY2EwZCByZWxlYXNlMjYtbWFpbnQKKzgwODY4IDIxNjZiNjNiNmZkZjg2ZjZiOWZkMThmODMyMjFhYzYxZTA3YTA1ZjggcmVsZWFzZTMxLW1haW50Cis4MDg2OSBiNGIzMjJiMmU5OGI5OTAxNjk0YmJlZDllNjJjZDY1NWYzNGUyY2JjIGxlZ2FjeS10cnVuaworODA4NzAgMzQ2YzRjMmUzODZlNzQzNWM1ZGFkZGU2MTIyYTUzYTJjNjU2MTBiMSBsZWdhY3ktdHJ1bmsKKzgwODcxIGNlYmUyODU3MDAwNjkwZWYyMWIyNWU0MmMyMGE0NTdhMDIzMzE4NTIgcHkzaworODA4NzIgNGNkY2ZmMGU5YTM2ZWQ4ZGVhYTI3NjUzZGFjMGM5YzBjMmU5ZjEzNiBsZWdhY3ktdHJ1bmsKKzgwODczIDZiMjdhOTVjMmM1MjI4MTRhNmU5MWYzYTNiMmNhZTQwZmYyNzNjMTUgbGVnYWN5LXRydW5rCis4MDg3NCBlNGU1NDg2ZWNjYmUwZTYzNzJiNDhkMzE0MDk4ZTdhYjI3ZjI4YTM0IGxlZ2FjeS10cnVuaworODA4NzUgY2M5MjUwMmRlNGM5NTExNDRiMmNlN2JmZjQ0OTJkOTY5MjQ1MzI4ZCBsZWdhY3ktdHJ1bmsKKzgwODc2IDNiNDkwOTYzZjkyYzg3NDg2M2NjMTcxMmZmYzEzMTE4N2JmZjE4MWQgcHkzaworODA4NzcgMjk3ZTIzMzI4YzZjNjk1ODBiYTgxOGI3ODViMDZkMDFkYzdjZjgzZCBzaWduYWxmZC1pc3N1ZTg0MDcKKzgwODc4IDU0ZWZhZjZkMmY4OTJhOTVhNjc4MjE2ZTIxODRiNzBjNDRiOWUxYzggcmVsZWFzZTI2LW1haW50Cis4MDg3OSAwYTgzOTY5YjZmMzVkYjE2ZWIyYjZjODkyOWU0NGFhZWM2N2RkMzQ1IHJlbGVhc2UzMS1tYWludAorODA4ODAgOWFmOTYwZmJhY2NjNWU0ZTUxYTc2YjhlMzU0ZTNhMGNjYzljZGM1MCBsZWdhY3ktdHJ1bmsKKzgwODgxIDUzZjliODQ4ODJhMDU2OTU0MDdkNWFiZWU0Mjc2YTlmNjdlNWVjYWUgcHkzaworODA4ODIgYWIwYjI4NTVjOWU0MjkxM2EyZDVlMTZiYzY3YWMzOWUwMDVkYTU2OCBsZWdhY3ktdHJ1bmsKKzgwODgzIGFkZTgyOTNiYTQ4N2ExOTRiNDY4MTVhNGM3ZGFlZjU3MDc3MjBkNzAgcHkzaworODA4ODQgMmQzYWUxMmFkMDkzNjhkYzcwNTk5YmQzMjBjOTMzNWVlNDEyODJlNiBweTNrLWppdAorODA4ODUgN2U1YmRmNTlhNDg3MTM2MGU1YzA0ZGIxYTE2MGNjN2EwOTk3OTliOCBweTNrCis4MDg4NiA2OTNmNzRjNDJlNWVmOWRiM2E2YzI5N2QyOWU0OGY0MzBkYjMxMjFiIHJlbGVhc2UzMS1tYWludAorODA4ODcgOWQ3NmFmOTVjMTY2ZGE5MjdjZDhiMjM5ZmEwZGZkYjkwNjIyOWY1ZiBweTNrCis4MDg4OCA4YWQxYzc0ZDU5MDk3MzE1NTQwMWE2YTE0NmQ3ZjdjNzIxYWJmZDg5IHB5M2sKKzgwODg5IDJhYTYwNTE2OGYxMTJlMTAzNjk5NjFkNmNkODNkY2M3MGFiMWQyOWEgcHkzaworODA4OTAgZjE4MmUwOTIyZGM3NDc2ZjM2NWQ3ZGJkMWQ1NDEwYjUzMTg5NDQ2YyBweTNrCis4MDg5MSBmNDIzMDc2NWRkYmIxNzhkZjU4MDQ0MjQyYWQ3ZjAwYjE5MDE2NWVhIHB5M2sKKzgwODkyIDU0OGZhOGVkYjdmMGZiNzk4MzkyMjAwNWI4ODliZjYyYjQ0YzI0MTUgcHkzaworODA4OTMgNWFiNGI0ZWZjZjYxZjM3ZDUyZTE2M2IzYmUyMjg1OGVlZGI5ZDQ3NSBweTNrCis4MDg5NCBhMWM5YTkxMjYwZDkxYTNhZjVkODAwYzY2N2VjZTAzMjE3M2NiMTExIGxlZ2FjeS10cnVuaworODA4OTUgYTQ5MjU2YjIyNjk1N2EzMDkzZjE3ZWJkZTc2OTczNjcxYjMxNTU0NCBhc3luY29yZS10ZXN0cy1pc3N1ZTg0OTAKKzgwODk2IGIwYjdiYTI2YmU2YzE5MTc4MTIxMGEwMzI0OWUxZjQ4MzQ0OGM1MjQgbGVnYWN5LXRydW5rCis4MDg5NyA1ZmIzOTc3ZmIzNDFlMzdiYzk5NDc0YzUxOWNlNzJkZjQzMDVmNDE3IHB5M2sKKzgwODk4IDgzYzVmMjdhZjU3YzkyY2UwNDM3ZDY5MDRkMDY3ZDk4ZTNmZWRmZGQgcmVsZWFzZTI2LW1haW50Cis4MDg5OSBjYTc3ZWQ3Mzk4MjcwMTlmMjJlMTNkMDQ5Mzc0YzlhYzAzNzIwZjk1IHJlbGVhc2UzMS1tYWludAorODA5MDAgMGIwOTcxZGFmNThjMDA3MDcyNDkwNWQ4MzUzOTlhN2Y1MDE3OGZhNCBweTNrCis4MDkwMSBkNjE1MTQ4ODcyNmY4YWU3NjQ2NTAzMzBhZmY0NmZlNmU0YWViZmYxIHJlbGVhc2UzMS1tYWludAorODA5MDIgNTI2MDEwNGRiOTlkNzQzNDA2YjE1NTY1YTJjZTViYjQ4ZTA2MDYzYyBweTNrCis4MDkwMyAwNjllN2VmYTY0NWI1MTA3NjVlZTUwYjc2Zjc3M2RmYjc3YTQzODdlIHJlbGVhc2UzMS1tYWludAorODA5MDQgNTk4MWIyZGExMzFhMTI3MzQwNGRhZDJlYTdjZGQxODU5MDEwMjVmZiBweTNrCis4MDkwNSA0MjdjNzUwMGIyYjcwYzlmYzlmNTI0NjVlY2NjZTRiYTI5NGM1YWJlIHB5M2sKKzgwOTA2IDI0NTllZTZhYzdjN2FhZTAyZTA4ZTYwOTEwYWVjY2U2MTRjNGE5MzUgcmVsZWFzZTMxLW1haW50Cis4MDkwNyAxNjMyMTgzNDE1NmEwNDBlODI3MDY4YTExZDI4NmUyMDhhNDg3ZjU4IGxlZ2FjeS10cnVuaworODA5MDggNWM5MDk0NzkyZDFhY2NmNDA5ZWFlNDg3NmRiOTlhNzZjOGYzYzE3MCBsZWdhY3ktdHJ1bmsKKzgwOTA5IDQ5MGQxYzIwMzZlOTYzNTYxZTY4YzU1ODQ5OTExYjg5MGQxZmE0NjYgcmVsZWFzZTI2LW1haW50Cis4MDkxMCBmZTdlNTZmOTg2Y2Q0NTBmZTI0YzUzNGZkZTE4ZDE0NTA0MTJkY2YzIHB5M2sKKzgwOTExIGUzYTNlZDYxNGM3ZTA5ZTMzMjZhN2IyMDY4NDhmZWQ2YzA5NzA0NGIgcmVsZWFzZTMxLW1haW50Cis4MDkxMiA2MWM0Y2E5NGEzNjY4MjhkMmRkYjY1YWM1NDZjODFjNDAyODliMjlhIHNpZ2ludGVycnVwdC1yZXNldC1pc3N1ZTgzNTQKKzgwOTEzIGUwNDZhZGIxMDQ3OTdmNDNkNDY1NzgzMmY1YzdlNWM5NjdhNGRiNDggc2lnaW50ZXJydXB0LXJlc2V0LWlzc3VlODM1NAorODA5MTQgZTI5OTQyZWEyZmRmODQxZjE0ZTlhN2ExNzMxNzM0MzRmOTliOTQ0YiBzaWduYWxmZC1pc3N1ZTg0MDcKKzgwOTE1IDE5YmVlOGVhNDhkOGFiNTdiNTI5NzM0NDMxYWI4MTAzZGVkZjZkYjUgbGVnYWN5LXRydW5rCis4MDkxNiBkMDJiMzE3M2MzYzViOTIxMGMyYzEyZTg2MTdhODhhYzQ2MTc4NmU4IGxlZ2FjeS10cnVuaworODA5MTcgMzUzMjhmMDY5MjFjZTljZjU5MDA2YTM0N2ZhYzUzZjlkMWEyM2Y2MSByZWxlYXNlMjYtbWFpbnQKKzgwOTE4IDVhMzhlN2UxNmJmOGNiOTE4ODRkM2UyOGJjYmRlZjBkMzJkNjExNTIgbGVnYWN5LXRydW5rCis4MDkxOSBmYWNjNjkxNzU5YTFjMzE5NjliNWJiNDMzNWFmZGMwMWJkZDJiMmZmIHB5M2sKKzgwOTIwIDc5NjdiYzdiMDE4ZDRhZTYxODVjYmE4YWUyMTUwY2I4YTBhMjM1YWUgbGVnYWN5LXRydW5rCis4MDkyMSA5ZGFiZmMxOWQxYWM0ZmY4ZjRlYzljZTE0ZmE5ZDBlYWEyOGI2Mjg3IHB5M2sKKzgwOTIzIGY3MzdkNmNiYjA0NTYxZmEzOTI3ZGQ1MmU5NzE4OGNjMjI4MjNhNmIgcHkzaworODA5MjQgZjUwZDVjYTQ2OTBjYjY3OTkyNDJhY2Q0MjQyZGZlYmY3ZjM5NGZjOSByZWxlYXNlMzEtbWFpbnQKKzgwOTI1IDcxYWEwOThhMDgyZTI2MjM5ZTlmYzFkNzk1NmE4NTExNWRkZDM0MGYgcHkzaworODA5MjYgYjYwMjY3NmNhZGNkODViNWE5ODI3NDIzNmM0MGI2YzQ4M2E5MGYxMiBsZWdhY3ktdHJ1bmsKKzgwOTI3IGYxODk4MTkwNDUwNzlmOGFjMjBmMmU4NmQ5MjFlZjVlMzc4Y2NlMmYgcmVsZWFzZTI2LW1haW50Cis4MDkyOCBiY2IwY2Y5MjQ2OTNiZjA1YmVkMjQzYTZmNThlNjMyYzcwOWYyOGRlIHB5M2sKKzgwOTI5IDM2ODM3MWZhN2Y1YzM2N2Q0NDU4ZTJhMTRiNjdiZTJhZjIyYWQ4OTkgcmVsZWFzZTMxLW1haW50Cis4MDkzMCA4Mzk5NTM1ODBiNmRmY2M1ZTIyOWRkOTc1NWZmODZhNDE0MmE5YTBjIGFzeW5jb3JlLXRlc3RzLWlzc3VlODQ5MAorODA5MzEgNjU0NjFhNzA1NDk2N2Q4OTJhNTRlYmMyYTA4MDFjOTg4ZTBhZTdlZSByZWxlYXNlMzEtbWFpbnQKKzgwOTMyIDI2ZWRhYjk4OWQyZjg4NTU0ZmI4NjI0ZTZiOWY2YWE2ZDI1ODEzYmYgbGVnYWN5LXRydW5rCis4MDkzMyBmNThiOWRlY2UyNWViOGJkZTk5NDIxYjRmZTMxMThiNWJiMmYwOTg5IHB5M2sKKzgwOTM0IDlmZTU2MmEyZjBlMzE0NWQ4M2EyYjUwNDJmOGU5YjQ0YWYzYmJjOTUgbGVnYWN5LXRydW5rCis4MDkzNSBlOTJmYjk1ZjIzMTc4MmUwNzFiODQxY2Q1YzQ2ODRkZGJjZmI4ZGI4IHJlbGVhc2UyNi1tYWludAorODA5MzYgYjRmYWY5OWM2NDJmNzUxMDY0ZGYxNjA5YmJjYzRhNzk2ZDU3YmUwOCBweTNrCis4MDkzOCA4MjU4OTM3ZTEzOWMyMjYzZDc3YThhZTkxYmU5YTVjOThlOGM0OWQ3IHB5M2sKKzgwOTM5IDQ4ZDc5NTkxNjdkZWY3ZGJlOWE5ZjU2MTNlMzBmMGE1OTQ2MjRkMWMgbGVnYWN5LXRydW5rCis4MDk0MCAyM2JkNjFjN2RiYmNkNTU2OTg2YjMzYTQ0YjQwOTJkOTk1NzRhYjE3IHB5M2sKKzgwOTQxIGM3ZDA2Nzg5NTJkM2RiOGM3OTFmNjcyZmI2ODM1NTg3ZTI1MGVkMmEgc2lnaW50ZXJydXB0LXJlc2V0LWlzc3VlODM1NAorODA5NDIgMGUzOTgyYWUyODFkODIzNzVkNzJhYTIzOGRhOTdmYWYyMzM4MTVjNiBzaWdpbnRlcnJ1cHQtcmVzZXQtaXNzdWU4MzU0Cis4MDk0MyBjODY3ZDk5MWU5MWYwZDIyNDUxY2RkMzNhMjZjYzY1YmMzOTM1OWZhIHNpZ2ludGVycnVwdC1yZXNldC1pc3N1ZTgzNTQKKzgwOTQ0IGQ2ZGEzODE5NzdjZTUxNmU0YjQxNjdkNGM2YjJjMDcxZjhlZjE3NGEgc2lnaW50ZXJydXB0LXJlc2V0LWlzc3VlODM1NAorODA5NDUgYTkwMzcyMjQ5ZmQzNWRmNjY2NDM3MmFkMzBkMDA3Y2M1YWRiMzIxNiBzaWdpbnRlcnJ1cHQtcmVzZXQtaXNzdWU4MzU0Cis4MDk0NiBjYmRkMDEzZGFmNmQ2MTRkYzIyZjQ5YmM0Mzc3NWYzYzkyZjgwNDFlIGxlZ2FjeS10cnVuaworODA5NDcgZTJiY2NkMzcyY2Q2M2JiYzZlNGNkMzk0YzJiMjk5Mjk1OTM1NTkzYiBweTNrCis4MDk0OCA4NWFjMjdmYTkxM2ZiYWFlMmU3YTAwMDYxY2EwZmIyMDYzODE3MjQ0IHB5M2sKKzgwOTQ5IDA3YTQ3YTUxNDU0ODdhYjc3ODRiYTkxMzg3YmM5YmY5MmQ1MDQwNmIgcHkzaworODA5NTAgYTc3NDM3YmRlMzFhZjMxYzdlNGI5Yjc5MmM0ZmVhZWFkYjM4MGYxMyBweTNrCis4MDk1MSAxYWJiM2QzZTNlOGRmNTJmNmZkYWVlOGE0NWQxNzc3MmM1ODMwMmUxIGxlZ2FjeS10cnVuaworODA5NTIgY2JhMWQyMWVhYjNkMmNkZTgyZGI5MTY2NDkzNGYwNTQwOTlhNGQwYyBsZWdhY3ktdHJ1bmsKKzgwOTUzIDc0YWUwZWI5MzJkZWFkYWYzZTJlM2U1NTQyZDYwZWE3NGFiZmU1NWQgbGVnYWN5LXRydW5rCis4MDk1NCA1M2Q3NjIzMGZhMTg2ZjU2YmQ3YThmY2YxNWY4YWU3NTRhZmJiNTU0IHJlbGVhc2UyNi1tYWludAorODA5NTUgN2U2ZjFlODBiM2M2NTY3ZTcwYTBkNjdkOGVjZDJhYWU3ZDY5YjVjNSBweTNrCis4MDk1NiA0NjQ0Y2ZmMjUyNWJlMGRlN2UxM2IzOWI0MDI5ODc3NzUxZDI0NGFlIHJlbGVhc2UzMS1tYWludAorODA5NTcgZjg1MWU3YjZlMGQ1YzVkMGE5MTk2YzFmNTRiOWYzOTFmMjJkNzA3YSBsZWdhY3ktdHJ1bmsKKzgwOTU4IGJlZGU4NTA3ZjBhY2Q0YzhhY2ZmYWFkYzQyMGNmMGM1ZjNhNWE5NTggcmVsZWFzZTI2LW1haW50Cis4MDk1OSBkYjEzMzZjYzg1MWMyYTg1ZGIwY2YxYjYyNDNkYTk3MTcxZWU3Y2VlIHB5M2sKKzgwOTYwIDMyNGY4OTg4NmExY2I2ZGEzMmJlMjE5MWQxZDEyYmRjZGVkNWZlZDcgcmVsZWFzZTMxLW1haW50Cis4MDk2MSBkMDZlZjMwYTQ0MWVkYjViYWQ1N2QyYWNmOTBkNGViYWQyYmY0ZDQwIGxlZ2FjeS10cnVuaworODA5NjIgYjdhMGYwMjFmZjdkOTczNTg3ODhmZDQ2OTJhNzVkMzIwMjdjN2ZhYyBweTNrCis4MDk2MyBjMTQyM2IwYTkzMjkzNjc2NDUzNDhkZDliMzg1MzY5MWM4MTdjYmY4IGxlZ2FjeS10cnVuaworODA5NjQgNGY3ZTUwODlmYzk3YWU3YWY4M2ZlZTkyZWRmODAzYTVkZDk5YWMyMyBsZWdhY3ktdHJ1bmsKKzgwOTY1IGFmZTI1OTIzNTRkOTdiYzUxYWU0ZDk3MTcxNDNkYjE1MzRlODEyNGMgbGVnYWN5LXRydW5rCis4MDk2NiA0YTk0MGQ5OWVjODRiMWIyYWJiYWFhMGM5MjQ0MjdhMzJiMDNkZjVjIGxlZ2FjeS10cnVuaworODA5NjcgOTMwMzk1YjJkZTkwMzZiMGU3MjdkODI0MDEwZWY1ZjVhMmY3ZmU3MyBsZWdhY3ktdHJ1bmsKKzgwOTY4IDNmYWU3Y2I0OTIwOTViMTI5MWU2MTI5MDA1MTg0YmJmZmU1MWE1MzggcHkzaworODA5NjkgYzVmZGU0YTQyY2IwYTVlMTU3YTZjMWNmZmZiNzUwNDdmNWQ5Mjg2YSBsZWdhY3ktdHJ1bmsKKzgwOTcwIGY2MTRkYmVjMmY0Zjc5MmQ3ZDI3ZDc4Y2M1NzJmZGQ5MzFkMTBlMGMgbGVnYWN5LXRydW5rCis4MDk3MSAyMjdmYTdkYjUwZGVkMDNhODU0NjdiMDE1M2RiMTFlMjMyMzVmNjExIHB5M2sKKzgwOTcyIDBkOTczMmY2MDc3NjkyOTM0ZGNkNDg5MDgwNTVkMWM5OTM3MDMxNmQgcmVsZWFzZTMxLW1haW50Cis4MDk3MyBiMTBjM2EyNGQyZjlkYjhmZDQxZDhjY2Q1NDQzNGRjYTMzODU0NDU2IHB5M2sKKzgwOTc0IDYzZDZmNWZlZGJmMzE0NTY1YjI5Yzc4YjQwYzhhZDMyM2EwYjA5N2YgbGVnYWN5LXRydW5rCis4MDk3NSAxN2QyMWU5ZTYzMjAxMzNmYzJlOTIyNjA1ODMwYmE0OGU4OGJkMWNmIHB5M2sKKzgwOTc2IGI5NGMxMzNkYjQ1MTY2MmJhZDI5MzBlMTZlNTM0MzVlMTc0YjQyNzEgbGVnYWN5LXRydW5rCis4MDk3NyAwMjcwMTUxMWI3NTk2YzAwMThlZDQ1ZDcxNmUyNWIzMTAxZDlmNGU4IGxlZ2FjeS10cnVuaworODA5NzggMzNjYjViOTkyZDM5MmVhZjA0M2VlYmM4NmQ5NjA1NjVjZjZkOTQyNyBzaWdpbnRlcnJ1cHQtcmVzZXQtaXNzdWU4MzU0Cis4MDk3OSBiN2YwMmM2NzBiZDdjNGY4NmIyNzllMDUxM2EyMmNkN2E0ZjNmMjI5IHB5M2sKKzgwOTgwIDcwM2Y4YjExYjI1MGJkZjM3NDRjZjdmOTkyNjUwM2RkMjAyOTVhYWEgbGVnYWN5LXRydW5rCis4MDk4MSA5ZjQ2N2M2MmQ5NTQwOGU0MTJjOThjMmIwMjJlYzdjMmQyMzcyODIzIHB5M2sKKzgwOTgyIDI4NTIyMGYyNGNjOGYzYTNlZTUyNjFkNzMwZTQ0MGZiM2NiOTg0MjAgbGVnYWN5LXRydW5rCis4MDk4MyA0Nzg0NzFjY2Y3ZmQxOWVjNjNhOTAzMWYyNWU2YWNkZTU5ZTZmZjE0IHB5M2sKKzgwOTg0IGJlMWFkZjNjOGEzMzJjNWFmMmIzODRhNDc5YmZiMjNkNzRmM2ZhZWIgcmVsZWFzZTMxLW1haW50Cis4MDk4NSBlMjYzYWMyYmU0ZmQ0MjA2ODI4NGQwODg0ZmI2M2NkNDQ4ZDVjZThjIGxlZ2FjeS10cnVuaworODA5ODYgMmY3YWI5MjIxMjFhNDBiNzFjYWQ2ZGE4YzZiNTRlYTI2YWIzY2M0OCBsZWdhY3ktdHJ1bmsKKzgwOTg3IDMyOTNkYTgzZGYxZTMwODZiODJlMDdhZTM1MDVhNjI3ZWEzZTBiZjAgbGVnYWN5LXRydW5rCis4MDk4OCBlNDM1ODg4Yjg4MjVlNTdmMjY2NzFlNGY2NDdmYWM1NTQwZjc0NGE2IHJlbGVhc2UzMS1tYWludAorODA5ODkgY2FmYjYyMjVkZWQ4NmU2ZDIxZWUzOThiYTg5NmJjZjZmZjRlYjEzMCBweTNrCis4MDk5MCA3NDMzNTVlM2VmNGFiMTFiYzJkMzUxYzA2YzgxMDVlMTc5MDYwZjA3IGxlZ2FjeS10cnVuaworODA5OTEgOGZmOGYwYTUyNmRkMDdiNzQyOWNlZmE1NjIzNDY2ZjEwNThkMGIzNSBsZWdhY3ktdHJ1bmsKKzgwOTkyIGYyY2IzYWY1NTYyZmJkOTA0YmI2MTUyYjY5ZjE0MWMzNjgwMWExOTIgcHkzaworODA5OTMgZGNjZGZiZTU3N2JhNTcyZDY2NDYwNzlmYzY3NzQ1ZTRkNjMzMzk1NCBweTNrCis4MDk5NCAyNGVjNzI1OTQxOTY1YTkxZmUzMTIxZDQzNTc2ZWVlNTA0NTM2MjMxIHJlbGVhc2UyNi1tYWludAorODA5OTUgMzFiOTQxMmNhZDAxYmQwM2ZjNWYyNzc1ZjFhMTAyM2NlYTIxMzk2OCByZWxlYXNlMzEtbWFpbnQKKzgwOTk2IGYyMTk0ZTY4ODgxZWJmNDM3NjE5YWMwYmY5NTA5ZjQ3OGZhZDdhMGUgbGVnYWN5LXRydW5rCis4MDk5NyBkNmRmNzQ5NzgwYzU0NzkzYzc1ZjQ0MzcxNDkxYzZiMGJiNDVmZDAzIGxlZ2FjeS10cnVuaworODA5OTggNmJiOTg5MWQ0Mjc1YmQ0MmE2OWIzZDkwM2QxM2I2ODc1NDNjOTE1ZCBsZWdhY3ktdHJ1bmsKKzgwOTk5IDg4Y2Y1NzZmOWNlZWEyNWYxZjc5ZmJiMjlkODBiYmZhY2ZmZDJlNmUgcHkzaworODEwMDAgZjBmNDExOGM3NmU5OTBmNmZhYTNhM2E2YzNkZGUxNTE2NTdiZGI1NyBsZWdhY3ktdHJ1bmsKKzgxMDAxIGYxOTFkNWY4MGViMDQxYmFkZTU1NDI2MTdmZTU3NWJkOWRjZjU0M2IgcHkzaworODEwMDIgYmVkMDQ0OTIzOThkZWQ2MDYzNmY1YTIxYTg2ODk4NTlhY2ZmYmIyYyBsZWdhY3ktdHJ1bmsKKzgxMDAzIDY2M2IzOWQ0YTdlZjdkNjc4N2IyZWJiZWE4MDBiMTlkZjJhMTcxM2IgcHkzaworODEwMDQgNGRhN2ZiYTMzNzBmY2EwZTg5OTQxODlmMTI4YzVmYjRlZTY4Y2RlOSBsZWdhY3ktdHJ1bmsKKzgxMDA1IGZjYjIxZDJjZWI3M2IyOTMzOTE0NTA3NWZmNDhjY2M0MWExYjZmY2UgcHkzaworODEwMDYgYWI5YWU1Njc2YWRhZTcyNTFmNWRhMTJkYjk2ZTRkNzQ0ZTE5MDA2OSBweTNrCis4MTAwNyA0MzVhODM1NWRhYjZiZWZjNDcxNDFkYzIxNmMxMGRiMGYyYjFlY2E2IGxlZ2FjeS10cnVuaworODEwMDggNmZhOGUxMzgxYjQ5OTNiMTUzNjBmMWQ4ZThkMjVmOWU4NDk2MDRlOSBsZWdhY3ktdHJ1bmsKKzgxMDA5IDExN2I0YjgxYjg2NDAyZmYyOTlkNzg4ZjYzMmJlOWZjNGEwNjRiYjEgcHkzaworODEwMTAgMmU5YmM2MWMxYzFlYzcxODhjZmRlNmE4MTc5MjE2OGNlMWMwNGIyMSBweTNrCis4MTAxMSBmYjcxOTA0OTA0NGZjYzhhZDc5MTNkMmZmMzQ2NzBmNTgwNDNlZDhjIHJlbGVhc2UyNi1tYWludAorODEwMTIgMmM5ZTA5NWQ1MmYwMGRkNjNiM2E5ZDc3MTcyNDNlOWQ0OGVmNGQ4MSBsZWdhY3ktdHJ1bmsKKzgxMDEzIDUwZmEzZjRjODI5YjM0MWI2YWFiMDAyOTQ1ZmE5ZDRiMmM1OTk3MTMgbGVnYWN5LXRydW5rCis4MTAxNCBkZDFjOGZmMmU5OTAzMDgxNzQwMDljYzVlZGNjMGNlOTJjNzU5YjhiIHB5M2sKKzgxMDE1IDExMzliNWQ5OTZiMDA0MTQ5MmIwYzA0Zjc4ZmY2MGU4NDE5ZDZmODUgcmVsZWFzZTMxLW1haW50Cis4MTAxNiBiOTY2ZDU4MzVkM2IxMTBhZTM1MWVlYWE5ZDFiMzUyM2Y2MjNlZDU4IHB5M2sKKzgxMDE3IGQzMTVhNzlmMWVjY2VlNTQ1MmNiYjE1YTQ3OTJkMjY4NmIyNThmYmMgcHkzaworODEwMTggNjc3NTExZWRmMDVjNzgzYTllYzkzZTNjMWYwZmVkYjhhMDQxM2RhNSByZWxlYXNlMzEtbWFpbnQKKzgxMDE5IDAzNzUzMzE2ZjgxZjdiMTM3ZmQ1ODlmYjZjYTE1MDEyMzI2OWMyMTQgcHkzaworODEwMjAgNmEyZDBjYzdkNjA0OWNhNGUwMWZkNWZiZmVkMDEyYWRmZWQwM2M1ZiBsZWdhY3ktdHJ1bmsKKzgxMDIxIDMwM2RiMjI2MTE1ZGQ2Y2RmMDkxYjAyYmEyNzIyOWU3MjA2ODQ4M2YgcHkzaworODEwMjIgNzI0ZTg3NWIxOTQxYzU3ZjFiMjFkNzQ2OWMwZjlhNTY1OGFiZDUyYSBsZWdhY3ktdHJ1bmsKKzgxMDIzIDIyOTRiY2Y0MGU1MTk1N2QxODBkYTFmNTRkNjNjNmNlMmM5ZTllNjQgcHkzaworODEwMjQgM2RjMjVkMDI0YTUxYzM0YjVmZmM0NjQyMDk0YzBhNTljMWM4MjFlZiBweTNrCis4MTAyNSBmOGMxOWM1ZjVkZDI0ODNhMDE0NWQ2OTEyYjlhYzI4ZTMzZjNmNmJlIHJlbGVhc2UzMS1tYWludAorODEwMjYgZDY5OGZiMDU2YTQ1OWM5YTJlNDBjYzI2NDRhNDQxN2M5NjFhNGY3OCBsZWdhY3ktdHJ1bmsKKzgxMDI3IGI2ZTAzY2E4YTIwNmRlZjMzMTYyOTkwOGQ4NTE5OTkyNDA5YTk4ZGEgcmVsZWFzZTI2LW1haW50Cis4MTAyOCAxOWFhYzg0YWMxZGFkZWJhZjhiN2Q2YTExMGI4Yjg1ZGFlOGZhOWI3IHB5M2sKKzgxMDI5IGZkMjUwMzAyMjNiMDcwMjcwMDJlN2Q2NTk1NmU0ODAzY2M3MDZiN2EgbGVnYWN5LXRydW5rCis4MTAzMCA4NGJhZjYyNThjM2JmMzg1Mzk3NTJiYjNjOTBlMWUwZWQ3ZGJlMTUxIGxlZ2FjeS10cnVuaworODEwMzEgZTM4MzM1ZDRkZjkxZGU2NDI3YzlhMjFiNTQxZmNlNGY4MmQ5NTY1YyByZWxlYXNlMjYtbWFpbnQKKzgxMDMyIGNhYjE0YmUwYWRhMTU5ZGE5ZjdkOTRjNWVlN2M1NmU2MWUxNTdiYzYgcHkzaworODEwMzMgZjE5NzQwN2JkYmEyZjdkNjQ0OTIyZWY3OTM4OGQ1YzhiNGFjODU4YSByZWxlYXNlMzEtbWFpbnQKKzgxMDM1IDVlYTBmNTg1OGI3MjJhMTJhN2U5YTkxNTkyOGIxNTNmZjQ4MWFiNjcgbGVnYWN5LXRydW5rCis4MTAzNiBiYzBjZWE1ODQ0Nzg0N2YyM2QxYjQyNjA0ZmRiYzUwMzQyMDY3N2ZjIGxlZ2FjeS10cnVuaworODEwMzcgNWNhZDEwYjI3N2E0NzgzMTM3ZTgyODZiYjMxNDNiYTk5MGU1ZGQzNiBsZWdhY3ktdHJ1bmsKKzgxMDM4IDY5Y2U2YzkzN2Q2ZWM5ZWU0Zjg3YTg2OGQ2ODUwYWYxNWQ4NzY4NzkgbGVnYWN5LXRydW5rCis4MTAzOSA0M2QwMTY5ZGY5NDNmYTAzMzVlN2NmZmYxMjBmNzVlZmFkNTMwMGQ5IGxlZ2FjeS10cnVuaworODEwNDAgMzEzZjg1NTg2ZWY4ZWI4MzU0YTAxZDE1NDQ5OWUwNDM3MjcxMWZkMiBsZWdhY3ktdHJ1bmsKKzgxMDQxIDY3ZGMwYTk4YjhmNmZjOTI1ZGQ3M2U3N2MwMDE5ZDFkYTc1NzVjY2IgcHkzaworODEwNDIgZmM0NmU0MzcyMjdkNjI5MWQxMWY4OWZkNTAxMjk0MWQzOGE1MzE1MCBsZWdhY3ktdHJ1bmsKKzgxMDQzIDVlYjBlNTQ1MTYxMjQ3Y2ZlNmZlZDIwN2JjY2UxZTNkN2U0M2YyODIgbGVnYWN5LXRydW5rCis4MTA0NCBmYjE5ZWM1Nzg4NTMzMzljNjAwMGE0ZWY4YTYyZWY4Y2FjY2RjYWMyIHB5M2sKKzgxMDQ1IDQ4OGRiZTI2MmY2ODFkNGExOGU5MTgyMTZiZWQzNzY1MTE1ZjI4ODMgbGVnYWN5LXRydW5rCis4MTA0NiA3ZjVhNTcxYjFlY2I4YTI4ODA3MmQ4ZWRlN2I5MGFlNDFhNTQwNmJlIHJlbGVhc2UyNi1tYWludAorODEwNDcgMjBhZTgzODIxZWYwNTM3MjkyZGYxZjBhYjlkY2EwMTQ0ZjkwZGE1ZiBweTNrCis4MTA0OCA4YzQ5OWNiMzcyM2E0YjA5ZTUzYzJmM2JkYTIzOGFkNWZkN2U2NmRlIHJlbGVhc2UzMS1tYWludAorODEwNDkgNzM2ZDZjZTliNjBiYWE5MzRkZDRiYWQ4Y2Q0ZjRkNTM3ZWUyMDU0YSBsZWdhY3ktdHJ1bmsKKzgxMDUzIDk0NTczOGUxODcyNjM5MTRmZWI0MzlmMjJhZDAwNWJiNGZmOTdmNWEgbGVnYWN5LXRydW5rCis4MTA1NSA2YThkZmZmNmQyNDFiNTAwMTJiOTA3NTM4MDY1OWRiNTMzYWZkOTRmIGxlZ2FjeS10cnVuaworODEwNTYgZTY0Nzk4YjM2ZWE0ZGVmMDZhNjcyYWY3NzE0YWI5NDVhOGEyZDRhMSBweTNrCis4MTA1NyBkYTZjZjhmM2Q4YzJlYzg2ZDI1OTgyOGYzYjI3NjY5NTJjYTg3YWJlIHB5M2sKKzgxMDU4IGYwMjViNmIwZmUwZjZmOWJkYWRiM2ZmZGJhZTRhNzVmMDcxY2E3MGQgcmVsZWFzZTMxLW1haW50Cis4MTA1OSAzMTQ4ZDcwNTI4YjYwNjcxNjVjNzA2NzRlYWU5NzNjMzdjOWFmMzg1IGxlZ2FjeS10cnVuaworODEwNjAgZTc2MjllZmM1NWQwMDdlNTI0N2Y2OWQwNDczYThlYWU5YTQyNjQ2NSByZWxlYXNlMjYtbWFpbnQKKzgxMDYxIDBmODUwN2Y1NDk0MjllMGMyYTQ3MmM5NzdlMjU3OTM2NDMyMDI5MDQgcHkzaworODEwNjIgYmJlOWY5OGEwYzAyMGNlZGU2NjdmZWEzZDkxODZmZThmN2NlZDg3ZSBweTNrLWppdAorODEwNjMgODI5YTg2ZTExYmQ3ZTE0ZTkwZGJkNjRiNGI3YzMxODQ4MzNmZmUzYSBweTNrCis4MTA2NCBmMTM1OGFhMzNhNmUyMzRmZDE3NWQ0YzY3NzkwYTdlOWYwNmFkODdkIHB5M2sKKzgxMDY1IGNiZmQyN2RiOGRjMjc4MDdmNjk5N2JjY2Q4NWJhMjg3ZjM0NWFiZWYgbGVnYWN5LXRydW5rCis4MTA2NiBmYzllMjE1OTY5ZDgzNmEyYWYzMGUxOTYxZThhNjM3MDBiOGFjY2UyIGxlZ2FjeS10cnVuaworODEwNjcgNWFiMDQ0Mzg1NmNhYjhhMmU1MzQ0NzA0NjY1ZGJmZjgxZGI0Njc3YiBsZWdhY3ktdHJ1bmsKKzgxMDY4IGQ2MDRmYWI3NDlkZDc0MDNiZDhkNDIzYWYzMjNjZTYzODBlNzRiMmIgcHkzay1qaXQKKzgxMDY5IGM3NTUxMmE4NWZkMWFlYzNiYTMzZWU3ZTYxNjNjYWI0N2EyMjZhZjMgcHkzay1qaXQKKzgxMDcwIGI2NmViYjc3NzU2OGIwZTllMjBhYTU3OWJjMWQ3MmVmNmYwYTM0MjUgbGVnYWN5LXRydW5rCis4MTA3MSBiYTBmZTAyNGU4OWZkNGNhNTU1NmUzMTVkOWQ5NTVkZTQ4NGFhNjc4IHB5M2sKKzgxMDcyIDQ1NDA4Y2I0YjcyMzJiOWYyNGQ5Y2NjYjIzNDEwNDFkNDM5YjEzNTggbGVnYWN5LXRydW5rCis4MTA3MyA2NDlkNjcxMGE4MWZmNzU2ODUzMDY0ZGMzOWFjZmFkOGFiMzM3MzliIGxlZ2FjeS10cnVuaworODEwNzQgZjgwZTkzNTgyYjdmZTZkZTgzM2VlM2M0ZmJjZDRkZWYxODc1NmE2ZSBweTNrCis4MTA3NSAwMDIyMGViZWVkMGE4ZjI0YjRjZDdkMDM1NjM1YWJhZDRmMGFiZjY2IHB5M2sKKzgxMDc2IDhhYzBmMGRiNWY1OTc1ZmVjYTdlZTQ3YmNlMTE4YWE4ZDMzMTllOWYgcHkzaworODEwNzcgZjE1ZDZmMWEyZmEzMGVkODNkN2MyMzVlNmQ3NjNjMzc0YWY0NGNmYyBsZWdhY3ktdHJ1bmsKKzgxMDc4IDFmNjlmMjgxOWQzMTM1N2Q0ZWRlYmIyNjdlZTNlZmI0NDllZjM5NDIgcHkzaworODEwNzkgYzBkZDMzYTVhZGJlNmM1YTJhMDgyNjQzMjFkMzliODA4MmNiZjBhOSBsZWdhY3ktdHJ1bmsKKzgxMDgwIDBhYzExZGI1ZmM5NmU0NzA1MzlkMmVjYzVlMmNmZWQ1OWNlYzI4NDggcmVsZWFzZTI2LW1haW50Cis4MTA4MSAwMTE5NDBiYWVmYjBiZTkxMzU4MjAxMjA2Y2Y0NjI2NDgyZjkyMTE1IHB5M2sKKzgxMDgyIGZiNjJlM2E5ZDg4NmZmYmFhMWM0NzNmYjg4MTUwMjlhMDg4NTMzNzAgcmVsZWFzZTMxLW1haW50Cis4MTA4MyA5YzMyMWFhZWVmMTI2MDg2YTM4MjdjMjNlMzQ2ZjVlYzMwZmYyNjU2IHB5M2sKKzgxMDg0IDgxYTNhMzIyNmNmNWRkNDViNGQ3MmIxOWE4ZGYzMWFlYTI2M2QxNDMgcHkzaworODEwODUgOWRmZWQ4ZGQxYzZkOTg5NTQzYTQyNGM0MDhiYjk5NmJhN2VjOGM4MSBweTNrCis4MTA4NiAzNTNmNDBlZWQxYmM2ZDRlY2Q3ZmYwZTI1Nzg1YWU2ZmRmMTQ5YmUwIHB5M2staml0Cis4MTA4NyA0ZmQ3ZmVhNTllNWIyYmNmMzcwYTY1Mjk5YzE0YjZiYjQyY2Q5N2Q2IGxlZ2FjeS10cnVuaworODEwODggM2U2Y2E0YjAzYzc5YTRkNGY1NmVhZjY5MGFkYmZhMjhhMTk0OTMyMCBsZWdhY3ktdHJ1bmsKKzgxMDg5IDgxMWZjNjMxOTBhN2NkMWE3MmQ3ZmY1ZTdiODE2YWRiZDRkZjgyMGYgcmVsZWFzZTI2LW1haW50Cis4MTA5MCBkZmY2ZmMzODg4YzYyZTk4ZTljNGNlMDFlNTc1OTkwN2UwNDdlNmZiIHB5M2sKKzgxMDkxIDg2ODAxZDFkOTAzODZiYWIwNmFlZWE5NzJiZGZjOGEyZDEzN2Y1YTcgcmVsZWFzZTMxLW1haW50Cis4MTA5MiAzMGY0YmJiYWRlMGI3MTE3YjUzNzkxYzg1MDVjYmIxZGQ1ZjIzMGUyIHB5M2staml0Cis4MTA5MyA0OTU5YjZmNWJjODZjZGM1MDdkOGRhNjQxMDk4NjNhZjliZWMyYzg2IHB5M2staml0Cis4MTA5NCA1ZTM5MzRhMzFjOGRjMDI4ODViYmQ4YTI5OGY0YjFiZGMxOGY0Y2Q4IGxlZ2FjeS10cnVuaworODEwOTUgYWYyZjg0ZTY2MjUzN2MzOWY1MGI4YmFiODRjZmQwN2JkNzhhOWY1ZiByZWxlYXNlMjYtbWFpbnQKKzgxMDk2IDU0ZGMxMDk4OGYxNTRjMGRlZmU2YWFmNjYzMzFlNjliNzhjYTc4ZTEgcHkzaworODEwOTcgZWY0ZGUwNTNkNTc3Zjg1ZmU4YWZmOThjNzNmOGM0NjZlMzhlZDAwYSByZWxlYXNlMzEtbWFpbnQKKzgxMDk4IDNhOGNhNjdhZTQzMTFiMDQ5ZDFmOTk4YzU2OTAwODE0MWJlZThjZTUgbGVnYWN5LXRydW5rCis4MTA5OSAyYTcwYzgwMzQ5YjBlZDBhMDJlYjAwYjc3NTYxMjliMTAxYzJiZjQzIHJlbGVhc2UyNi1tYWludAorODExMDAgNDhkOTY2NGM0N2EzZjU4NzMxMzE2OGYxNTc4YjRmMjliOTkxOWY5MiBweTNrCis4MTEwMSA0YjEwZWY4YTAyNGNlZmEzMzA3N2UxYzM0ODRjMmU1OWEzZjA1Y2QyIHJlbGVhc2UzMS1tYWludAorODExMDIgMjFhODFjN2FhNGJjNTBmNzhhMzAwNzgxMzFlYmE4YThlZWUxMzgyMCBsZWdhY3ktdHJ1bmsKKzgxMTAzIGI5ZDRhZGY4YjE3ZTlmZjBhYmJkNTcxZDc5MzI1MjVmZmQxNWI4ZTQgcHkzaworODExMDQgNGI4OTYzY2Y4MGIyODZkNjhlNTE4ZWE2NDYwYjdmYzQyZWIzNjU1NSBsZWdhY3ktdHJ1bmsKKzgxMTA1IGI3NjA0ZWEyZjQ3ZTdmNWUwN2FlOWYxNzA2MGFhMTBmN2NiZjQ3YTQgbGVnYWN5LXRydW5rCis4MTEwNiA3M2YzYjg4NTE3NWRiMzdlMDFhMDk2MTU3NDcyZGFhMmRkNjA2ZmY2IGxlZ2FjeS10cnVuaworODExMDcgNzczNzE0ZTVlYWFlYzk2MzAxZDFjZDliZWIyNmExZjM5ZDBjYTIwYiBweTNrCis4MTEwOCAyZGRjZDMwNTMzZjcyZmQ2MDc2Nzg0ZjY5YWEwOGExODg1OWZkZWEwIGxlZ2FjeS10cnVuaworODExMDkgNmY0Nzk2MGI1NjQ3ODlkY2Y4ZTgxODNhNTI1NjI2ZTg2NWFiYThjYyBweTNrCis4MTExMCBlZmFmNjJjMmNmNzU5OWI0OGNmM2RhZWYyODc3NGIzNjQyMzZjODdkIHB5M2staml0Cis4MTExMiA1ZGViZWNiNDgyODJkYWEwNDg4Y2I3MTAwZWFiMjU3ODNmZGFjODNjIHB5M2stY2RlY2ltYWwKKzgxMTE0IGI2NDY0MDE0Y2FhMDc2NzZiY2Y5Y2MzYmMwODNlMTJkODViYjc3YjcgbGVnYWN5LXRydW5rCis4MTExNSBlMTgzNmE3YjZiNmU3NjljOTY4MzIxMTM1NmI5YWY1NzRjZjIzNmY4IGxlZ2FjeS10cnVuaworODExMTYgMWIzZWJlZDhiNmM2NTJhNWU2YmFkODRlY2Q4ODllM2MyNWFkMjM5MiBweTNrCis4MTExNyAwMTNkNzZhYTg5NTFjMmM0ODYyZTdkMWE0YzRlMmYxOWY1Mjc3MTgyIHJlbGVhc2UyNi1tYWludAorODExMTggMzMwMjczZWM2MDI4MzlhYmViNzgyNDMxMGY0YjI1ZDA2NDFhNjQzNiByZWxlYXNlMzEtbWFpbnQKKzgxMTIyIGMxYmE4ODE2YjE4N2U5MzU2NWY3MjhjYzQ1ODZiMzljYTgyZjljYWIgcHkzay1qaXQKKzgxMTI1IDllYzdhY2YwYTAwNTg3MGZlODg5NmUwM2Q5MmI4ODk1ZDc2YzBjOGUgbGVnYWN5LXRydW5rCis4MTEyNiBiNTU0ZWVhMjYxMGNjOGQ3MDJlNjMzMjM3NDQxMDZmNGQ1MzMxNzdhIGxlZ2FjeS10cnVuaworODExMjcgOTFmNDYyYjkwNGIxZmQyODY4ZGUxMjZkMzc4OGVhNjViOTM0NTU4YSBweTNrCis4MTEyOCAzNGE2ODZmYmZmZWI5ZTVhNjViMzNhOTEwMmU1Mzg0Zjc5MWNiMjFiIHJlbGVhc2UyNi1tYWludAorODExMjkgMTAzNWE4ZmQ3ZGZiOTU3MTFjNzU0NThmMzAwZDAyMDYzZmQ0M2RjMyByZWxlYXNlMzEtbWFpbnQKKzgxMTMwIDA2YzZkM2E2N2MxN2IxZjg3OWJmYzE2YTRlOGZhZGU1ODQ0ZTY2NDAgbGVnYWN5LXRydW5rCis4MTEzMSAyYzI5Y2Q1NjY4Yzc3Mjg1MmU2M2ZiYWQxNmQyNTFhZjdiYjQ3Y2RlIHJlbGVhc2UyNi1tYWludAorODExMzIgZTU1NjMyYWE2OGU5NzQyZWQ0ZWVkOWZkZGQyNWQ5MWYwODVlZjNiNiBweTNrCis4MTEzMyA5MGE5YTM0ZTVlYjUyM2MzZWFlMmZjNjBlMTRkNjA3ODNmMzlmZjMyIHJlbGVhc2UzMS1tYWludAorODExMzQgODQxMGY4M2ZkMTU5ZjZlZTUwODcwYmU5ZjI0MjQxZDg3ZDkyOTVjMyBweTNrCis4MTEzNSA2OGJjMzU3NzVkMzEzNDAxNzU4MTIzMTE2MGVjMGQxYmJlMzhmYzA2IGxlZ2FjeS10cnVuaworODExMzYgYzgwNmVkZjhkNzM0MGVmZjFiMmZiNjc1NDM4ZmRiZDFmMWJhZjM0NCBweTNrCis4MTEzNyBlYmE0OTQ3OGFhZDk2NTE3NmFhMGZhMzE1NDY2MzgxZThiNTFlNTkwIGxlZ2FjeS10cnVuaworODExMzggNDMxYTE1MWUxMDJkNTI2Y2U4MmNlZDUzNGZiY2IyZTg1NTBhODFmOSBweTNrCis4MTEzOSA1MzYxZjZkZDEzOTk2MzljN2ZmYTEwYjM4YjU2MzViZmRkYjZmYmZmIHJlbGVhc2UyNi1tYWludAorODExNDAgZWU1OTZkYTg2MmY4MjdlNmU5OWM4NWYzYjlhYzRkZjQyMjJjMGFiOCBsZWdhY3ktdHJ1bmsKKzgxMTQxIDZjYmQ0YmNhMDk3YTBhZmQzOWM4YjVkMGY3ODRkZjVkNDY5NDNjODggbGVnYWN5LXRydW5rCis4MTE0MiAxNjk4YzU1YjJhZjk0YmNlNTQwODU0YjA4NzUzZTVjYjNjMzFkNWNkIHB5M2sKKzgxMTQ0IDkzNzkwODQ3MTc0YTc0N2FkNGMzZmUzZTdmZWQzNTdmODYwMWUyMTkgcHkzay1qaXQKKzgxMTQ1IDA2MzY0ZGFkOGRkZDE1YTRmMDQxZTdhNmU3ZWNlMWQwZDJmNTA1ZGIgbGVnYWN5LXRydW5rCis4MTE0NiBlNGYyNjk2MTVhMjVjY2UzMTIwMjYzMDUzZjEwNjZhODFlMjBmMTZmIHB5M2sKKzgxMTQ3IGIzODZlYjgzNDc1ZjQ5ZjY3YWYzZGM3Y2VjZDhkZjQyZjg5MTMzYjYgcmVsZWFzZTI2LW1haW50Cis4MTE0OCBkYTNmYTg4MWE4MDAzOTA1MjBiZmZlNjk5ZGIxNDRhM2Q2YWM4ZTYxIHB5M2staml0Cis4MTE0OSBlMDk2YWFlNTM1YjliNWJhOTNhN2NiNzMxYzI4M2NiZjFiZmI0YjVmIGxlZ2FjeS10cnVuaworODExNTAgMmZhNzNiMjliMzA1OTc1MDdiNmZkMDY4ZGYzMmZhYzI4YTMzOGI1NCBsZWdhY3ktdHJ1bmsKKzgxMTUxIGNiOWUwOWYzZmE4ZWVjM2M5YTQ1YmE0NmVmYmQzZDhkNzIwNDJkZDAgbGVnYWN5LXRydW5rCis4MTE1MiAzMWNmMWIxMjUzMGE5ZDBhZWUzYzI1ZGM4MzI5OWRjOTgwZjc0MmViIGxlZ2FjeS10cnVuaworODExNTMgYWU0YmI2NzAxMDc4ZTBlM2JjNDU3ODRiOTA0YTRlMDZlNTY0NGI2MyBweTNrCis4MTE1NCBjYTQ5NmJmYWNkMWJlNWI3ZTA1NDNhMGFmOGE0ZWYxOWYwNzZlNzFkIGxlZ2FjeS10cnVuaworODExNTUgY2NmMWNhNzNjMGU5Nzg5ZTVlNjg0ODM5YzY0ZjRkMTU4YjNkMGE1MyBweTNrCis4MTE1NiA5ZTViNzNlYTZhN2NlMWZhMWM3NjQ1NzRiZDg0MjFlZjNlMWZiMTViIHB5M2sKKzgxMTU3IDlmNjJmNTg2NWI0NDFlYjgwOTkwYTcyMTI5ODNhOTMyYTQzYzFmOTEgcmVsZWFzZTMxLW1haW50Cis4MTE1OCAyNjIyNzk2YWVjYTk0ZWEyZmI2NGVmM2UxMTg0NTVlMDU3N2M4OGYxIHJlbGVhc2UyNi1tYWludAorODExNTkgNThhNTZhYmEwZWIyYzJlMjRiNTNlYTlhNTFkNmZmNWU0YTM4MzJhZiByZWxlYXNlMzEtbWFpbnQKKzgxMTYwIGE2YTY3YjczNGQ4YjM2MDNiYzYyNTU5MzcxZThjNGUxN2ZmNWUyY2EgcmVsZWFzZTMxLW1haW50Cis4MTE2MyA3NDJmMTliNDcwMjA0Yjg1YmZkYjM0ZjhmOGMwMWJlMDNlNzk2NDEyIGxlZ2FjeS10cnVuaworODExNjQgMGNiMGZhZDUxNGYzNzUyMWM2NmEzYTc5YTVjN2YwMDg1NzhmYjU3ZCByZWxlYXNlMjYtbWFpbnQKKzgxMTY1IDNiMjQ3YWY2Y2VlNzkyZGNjYzQ0NmVjNmM1NGI1YjIwZTEwZDk5ZDIgcHkzaworODExNjYgMjUyZmU1YzRjZDUzZjg2ZGQ2OWFiNGIyMTE5YTUxN2RmZWI5OWE5YyBsZWdhY3ktdHJ1bmsKKzgxMTY3IGVhZjgxYTEzMGFkNmM0NDk5Y2UyZDA4Y2Q0MWYzMWVlYTBkZTU2NTYgcmVsZWFzZTI2LW1haW50Cis4MTE2OCA5ZWUyMjhkMDg5ZWRkMjhmODZhY2VmYzhjMDljNTUwZmVmMTFjYzMwIHB5M2sKKzgxMTY5IDJiMGFmNjlhZWY5N2QyMjhlY2Y3MmMyYThkMzE3N2IxNGYwYTU4ZDggcmVsZWFzZTMxLW1haW50Cis4MTE3MCBhYjMxYjAwOWExZWUyOTM0YjBiNmU4ZjE1Y2I3YjZkODgxNGE1NzU3IHB5M2sKKzgxMTcxIDljMWEyYmQ1MTUyOGMzYTdkNTUyYzAwNTIzZTM1ZGIyYzg4MGI4MDMgcmVsZWFzZTMxLW1haW50Cis4MTE3MyAzMDlkOWNmODQ4MDg1MGU0ZjhlYWIzOWVmOTlhMjkzODdmY2Y1OGJjIHJlbGVhc2UzMS1tYWludAorODExNzQgNTlmZjdkODEyYWUzNDJmNjUxNGUwM2QxN2Q0NTFhY2FjNDgzOWQzMCBweTNrLWppdAorODExNzUgMjM2OWQ0ZjE4OWU0MmM2Nzc0NDE1NTAzOWJmMDk3NDM5MDViMzRmMiByZWxlYXNlMzEtbWFpbnQKKzgxMTc2IDExNGM0YTQyZmMxZDAzMDczYTNkZmVhMWUzMzQ5YWE5YzgyMDkyN2MgcHkzay1qaXQKKzgxMTc3IGE4MTRlN2U3MjkwMGZhZjQ4ZmQ4OGYxMDcxYTJkYTU1YjRiNmVkZTUgcHkzay1qaXQKKzgxMTc4IGZkZTliNDM1NDVmYmFmODNjMTE2YTk2MWU1NDI5YTZhNjAwMDk3MmQgcHkzay1qaXQKKzgxMTc5IGU2YmZlOTNiNjViYmRhMjQzZjUzMzJkMGZkOWMyY2JmNzQzNDQ2NTggbGVnYWN5LXRydW5rCis4MTE4MCAwZDAyOGQzNTkwZGEwM2Q4OTU3ZjhhNTNjYmJlYjg4M2VlZThmYmU5IHJlbGVhc2UyNi1tYWludAorODExODEgZmE5MDJmOGUwZGIwZWRmODBhNjZiZjM3YWY0NmExYjc4YjUzODM0YiBweTNrCis4MTE4MiAwZTM3YTk1Y2RjZmI1YzczZjc3NmRmMDhkNzVmZTUyM2IzYjkxZmZjIHJlbGVhc2UzMS1tYWludAorODExODMgNzcyMDM2YTZmN2VmMDI4NzljM2M1ZWYyN2ZjZTZkNDcwZGM1YjQxNSBweTNrCis4MTE4NCAzNjNlZmZiNWY3MjdmODg2NGQ0MGQxN2U5NDQ0MTIxYzBhYWZhMzRjIHJlbGVhc2UzMS1tYWludAorODExODUgZWRlZjg4ZjZmMWFiNjExMjc1NzE2ODZlY2ZkMzkwYzAwNzM0NzM1NSBsZWdhY3ktdHJ1bmsKKzgxMTg2IDA1YTJhYjI3MWI2NWY0ODM2ZDk2MzI0YzIyYWRmMDY3M2QzZGM4N2UgcmVsZWFzZTI2LW1haW50Cis4MTE4NyA5OGMxNjEwNDAwMDJjNTI5MzhiYWFhOGFmNjBmNzhhYmU4MmU4ZDk5IHJlbGVhc2UyNi1tYWludAorODExODggZDk3MmQwNTJlZTIyMTdhYjM4ZGYwODUxNTUyZTBlYTM2YjI1M2RiOCBweTNrCis4MTE4OSBjNGUxMWIwYzdlZTUxODNiZGRjMjJjMmFjYTRmYTdmNzc2Y2NjMzIyIHJlbGVhc2UzMS1tYWludAorODExOTAgNDdiNGRhODZiOWI5ZjVkMGYyODhkMGM0MjgzMDJlMGFjZjUxNDE5MCBweTNrCis4MTE5MSBlYTU2ODVkOTk0MGEzYjk5NThiM2UwNDc1MmEwODE1NTgxNGZhMzIzIHJlbGVhc2UzMS1tYWludAorODExOTIgYmI5YWUxMjYzM2E5OWE4NGFiMGRjY2ViMTVlNjVhNTk3MDExMzYzOCBweTNrCis4MTE5MyBmM2VhN2NkNzM1ZWNlNzQxNjIyYTg5MTI3M2EzYzBhOTg4MmJlODNlIHJlbGVhc2UzMS1tYWludAorODExOTQgYjViYTdlYTQyNDZiMmNlNmYxMmY4MzdiOWQxNTkxNzE5NTk1M2UyNyBweTNrCis4MTE5NSBlOTA5NjAxZTAyMTk5ZDI0MDU4NzZiOWUxNWZjNWY4MGU3YTI3Mjk3IHJlbGVhc2UzMS1tYWludAorODExOTYgMWUxNDliNTBhY2E2MThiMzdjYzk5Yjc4N2RkZTMzYTQwNTU2NDI0YSBweTNrCis4MTE5NyA5MzExOTE4YzA2NDlkYzk4NjkzMDMzMzg1MTdmYjM3YmM5ZTY3MjVmIHB5M2sKKzgxMTk4IDA0MmU2YTM5NmE4NjQ0NzJlMmVjMDJhYTVhOThhNGM5NGRjNzA4ODYgcHkzaworODExOTkgZGNmNDcxMTcxNThmMDEyODE5OTg4MmY1MzRmNTljMTg2ZDViN2Q3OCBweTNrCis4MTIwMCBkMmU2NzU0Y2JiZDVlNzQ0NzY3N2RiYWVkYTQ4MGZmNTUwNmUzZmU5IGxlZ2FjeS10cnVuaworODEyMDEgZTRkZWRmNTRjNDFlMjQxMjg5OWJhN2IwMTcwY2RmYmYzYzM5NWQ5NSBweTNrCis4MTIwMiA5YWRlM2U2MjM3MTBmMDQ4ZGU5ZWJjZWZkNzVkMDY5ZmU1OGQ5YTZjIHJlbGVhc2UzMS1tYWludAorODEyMDMgZWYwZjYzNGFkNWZhZmQ3YjU2ODlmOWZkYTNkMzcwNDk0YmY5MDgzMyByZWxlYXNlMjYtbWFpbnQKKzgxMjA0IDk5MzgzZjFiYzE3YzhmNTE1NWE2MDhhZjE0ODcxZWZhNzcwZjYxMGYgcHkzaworODEyMDUgYTBhNTM1OWY4ZDEzNjlmMmY1YWQzZDNhM2U2ODg1OGI4ZDdmMDBlMCBsZWdhY3ktdHJ1bmsKKzgxMjA2IDE4Njg5MGQ3ZmU3MjQzNjFhYThhMzViODAyY2FiMDFlZTk3YWNmZTkgcmVsZWFzZTI2LW1haW50Cis4MTIwNyBjYzliODI4MGUzZjVmZDBhZmQ4YjM4OWY3OTE5MmE3NTIzODIxMGMzIHB5M2sKKzgxMjA4IDc5NzBjNDk5MDE0NDI3YzQ2MmNkNTQyZDQzODQ4YTg2ZjNmMDA0N2MgcmVsZWFzZTMxLW1haW50Cis4MTIwOSA1NDY4ZjNhZWU0YWUxYjExMjBjMWNkZjRhMzIwOTliYjE5OGI1Y2Q2IHB5M2sKKzgxMjEwIGY1OWYzYzczNzM0ZGIzNjU2MDAyY2Q3OGVlOTc0MDcyZjdjMmU1NWQgbGVnYWN5LXRydW5rCis4MTIxMSA3NzlkYmM1MGYxZjg4ZGVmNzI5MzNlM2JjMDk1MWVmYjIyNjc2NjRmIHB5M2sKKzgxMjEyIDkyZDFjODgxOTA3MWZjMmIxYTgyOTAwZTQ4Njk2OGIyYmNiMTc3N2YgcHkzay1jZGVjaW1hbAorODEyMTMgNDY1MmZlMGMzYjg5NzRhZmQwODY5MDE1ZTljZGEzMjAwYWNiZjJjNSBsZWdhY3ktdHJ1bmsKKzgxMjE0IGVjMTk5MTllMjdjZmU2OTA0ZDdjNjk0ODBjYmVkYTNhZDcyMjE5ZjEgcHkzaworODEyMTUgN2YwNTNlMjViMzM1MmQ0YTZjOGQ1ZjNlZTMzOWZjYzVkYjRjYTNlMSBweTNrCis4MTIxNiAzNzhiMWNkODQ3MmVlZmIxZGQwYTA2NjhhMWFlOTI5NzYzMWRkMTQxIHJlbGVhc2UyNi1tYWludAorODEyMTcgOWU0Mzg1ZGIzNzBlZDg3YmJhYjI4MGRiNmQ3ODQxODkzODZiZmYyMiByZWxlYXNlMzEtbWFpbnQKKzgxMjE4IDY5OTBjNmRiN2MzOTk0Yzg4NDRkNDZlNjYyNDA0MGY4MDc4ZWVjNjggcHkzaworODEyMTkgNGM5NThlNDg5M2JhNjlmODE5YTZiZWU3MmYxMzE2YzAwYWE3ZmU0MSBweTNrCis4MTIyMCAxZDRkYmZhOGVkNGYyYWY1YmRkZTBlNGE2NDQyNDdjMmE1MzdkYzZhIGxlZ2FjeS10cnVuaworODEyMjEgY2YyNmYwMTE0OTZlZDJiZTNkOGJmMmIzMDQ3MmE0NGIwZmViMTQ0ZiByZWxlYXNlMjYtbWFpbnQKKzgxMjIyIDgwMDIxNDhjMWExYjdkYTBmOTBjOWM3YjU3ZWE0YTEzMjhmZjA1M2QgcHkzaworODEyMjMgY2E5ZDJmMGE4YjhhY2FhMTFiNWM5ZDQ2OTcyMDY2YzJiNGZjMjI0NiByZWxlYXNlMzEtbWFpbnQKKzgxMjI0IGYzNmUwZTJkYWY0MzJlNmZjMzk0YTIyZWFiM2Q4MGQ4ZTM5YmI0MjAgbGVnYWN5LXRydW5rCis4MTIyNSBmMzUwYWNiY2U3OTBmMWU0YzJjN2JhZDFiYmYxYWZlNDU4YWFlZTc4IHJlbGVhc2UyNi1tYWludAorODEyMjYgZjVjNjQ1NWMxNDNjNjc1NDczYTlhN2U3NTcwMmI0ODQyYzE1ZmZjNCBweTNrCis4MTIyNyA2ODg2ZWU5Y2I3MmM5MDhkYWQ5YmM3YjM2MmMwZDZkMTI0NWIyM2I2IHJlbGVhc2UzMS1tYWludAorODEyMjggZDA4ZGE0NTQ0ZTMxMjE0OGRjMWMzMWJhODNiMDY1Yjc4NDA4NDM1NSByZWxlYXNlMzEtbWFpbnQKKzgxMjI5IGVmMjJkYzA2NWUwZTExYjQzYjlhZmVmMTk5OGI0YzMzM2IxMzBkMTUgbGVnYWN5LXRydW5rCis4MTIzMCBlNTc2NTBhNGNhODFhNjQ3MGUzZGZhZTA0MWZkY2MzZDI3YmM2ODkyIHJlbGVhc2UyNi1tYWludAorODEyMzEgOTY3ODI2ZGQ1ZmM2YzEzMTg0YTg2YmMyMmJjYTM4YThkY2Q2MmVmMSBweTNrCis4MTIzMiA4NDRiZDdiODQyMWI3M2MzYWJjMWI5ZDYxMDI0ODMyNWZhYWI0YmExIHJlbGVhc2UzMS1tYWludAorODEyMzMgNGJiMDNjYzFkNDIxZjZjZTU4ODM2NWFmOTc5OTg1NDIxZWYyZmRiOCBweTNrCis4MTIzNCBiMjlhYjRlNzY3MzYyZWI0ZGNhNzYxNzJkMGE3MmJhMDJmODgzYmFiIHB5M2sKKzgxMjM1IDJjYTQ2MjZkOWM5MzAzNDhlNjUyMmU3MjM1NDYyYmJiY2RhMTMxOGMgcHkzaworODEyMzYgZTIwYTY3N2FmMDAwNDgxOWNmMDg0YzI0M2ExNzk5MDIwNmEyMGFiOSBweTNrCis4MTIzNyAwOGFiYmRjOTliZTY4ZGU3NDJjOWRkNjUwMmQxMjVjYjNhN2Y0ZjkzIHB5M2sKKzgxMjM4IGI0Y2ZjYTVjNDI4ZTUyMTQ3YWViMDA2NDVjMDRjMjg0MThiZGI1ZWUgcmVsZWFzZTMxLW1haW50Cis4MTIzOSBhMDllYjNkNTlmZjdmNjFlZjBjYTY0MWRiMmYzZWE4ODQ2ZDEzMGM3IHB5M2sKKzgxMjQwIGY4Mzc2MTIwMDdkYzlhYjc3NzcwNzkxODUzNzAzN2EzY2RkMTRlYjMgcmVsZWFzZTMxLW1haW50Cis4MTI0MSA4YTAwNzlkOGQxY2VmNDM5M2RjY2JmNzA5NDE5NDhjOWRkN2Q3Y2RkIGxlZ2FjeS10cnVuaworODEyNDIgN2E3YWU0NzZkZjRmZTA0MjUwNWJlOWQ4YTY1NzE0YmFiNjI5YjMwNiBweTNrCis4MTI0MyBjMTc3ODNhZWRjYjg4YWJhZjlkM2EzM2MxMWYzZjBlN2FiYmNiNTRjIHJlbGVhc2UyNi1tYWludAorODEyNDQgOGI2NDAxYWUxMjYyNzgxMjRkNjBhNzcyMTE5NTVmMjlhMDhmYmYyNCByZWxlYXNlMzEtbWFpbnQKKzgxMjQ1IDNmMWE2YjBiNzkwYzdkYzU4NWU0M2RhYjYyODUwZTE5YzIwYjJlMGEgbGVnYWN5LXRydW5rCis4MTI0NiA0ZDI3ZTg4MDcyNGFiZDFlMThiYjQ2NTYxMTA3ZDcyMTBiNmQ1MzNmIHB5M2sKKzgxMjQ3IGJjMDBlNDYzYTk1YmY1ZWRkYTI2MGI1YWU1Njc2YTcxM2M4MWM2MDMgcHkzaworODEyNDggYTMzYmVlMTRhYmM1MWIyMDkzMjdjMGE5NTdkZmQ2YjhiZDJiMDIzOSByZWxlYXNlMzEtbWFpbnQKKzgxMjQ5IGRkZGQxYmM3ZTgzOTE3MGUyNjdiOGJmNDY5NjIzZWQxM2E1NDQ4Y2IgcHkzaworODEyNTAgODk0YzhlNDIwNzRhOTNiMWVlMDVjNmRlZmY5OTM3MzlhYmU5OTgyYiBweTNrCis4MTI1MSA1NTY5NjFmNGYxNmRhNzEyYzgzZDM4OTJiMGYxZmE2OGVjMmJhOTRjIHB5M2sKKzgxMjUyIGYzZjk1ZWQ4Mjc0NGRiMDJlNWExMjQyOWU3MWU3Zjk3NzgyZGMyZGYgcHkzaworODEyNTMgMzFjZWUyY2Y3YzM3NmFhMzNlYzEyOTA1OTAxODg2NTkyZWJlYzkwOCBweTNrCis4MTI1NCBjYTgxNjQ2ZGQyOWNiZTcyYzYyZDRiNTEyNmEwNjg3NjQ2OThhNzIxIHJlbGVhc2UzMS1tYWludAorODEyNTUgZDI5Mzk5MTAwOTczODIwMjM5NzA3NTQ2N2ZlOTRlMDhhMGYwZTgyNiBsZWdhY3ktdHJ1bmsKKzgxMjU2IGQxMmI2NWE3OTgyNGYwMGM4ZWY1NTUwZGFjOGI2MWYzMjNkZmUwNGEgcmVsZWFzZTI2LW1haW50Cis4MTI1NyBjODZlZWI3MzMzMTZiYTM0ZWZmYjgwYTdkMmUzMTVlNGU1YmFlYmMwIHB5M2sKKzgxMjU4IDkzYTI1MTY5ODdlMDAyMjExODdhOGExOWUwOTk0NmMxZWIzYzc2ZDEgcHkzaworODEyNTkgMGIwNGM1Y2E1NzdkMTZkNDc3MzQxMWIzZWVjODJkNTZkMDhjNjU1YiBsZWdhY3ktdHJ1bmsKKzgxMjYwIDc2NjQzYzI4NmI5ZjA1MTk2ZGIwM2Q4ODUxNzk2ZmFkYjcyMTEzNjAgcmVsZWFzZTMxLW1haW50Cis4MTI2MSBiNWYyYzQ0MjFhMzE4NmJlZWU0NTYxMDc2NjIzOTNiNjk1Y2NjMTc5IGxlZ2FjeS10cnVuaworODEyNjIgMDk5MzI2NTM1NjFiOWRlNDdkZmYyNGJmNDk2MzkyYTc0MzA1NzIyZCByZWxlYXNlMjYtbWFpbnQKKzgxMjYzIGVjNTk1ZmYyNTdlMDY0MDFhNTIzYjA0MmE3MDk5ZDIwZDM5NzZkNmMgcHkzaworODEyNjQgZmY0YTk2OGNhN2JiZTc2ZTcyOTYyOWUzNWQ5MGM4YTM5ODQ2ZGJlZSByZWxlYXNlMzEtbWFpbnQKKzgxMjY1IGM5ODFmMGM4Njc4YjQ5ODc1Zjk2Zjc1MmE3ZGZlNTk5Mjc2MDRjOWYgbGVnYWN5LXRydW5rCis4MTI2NiAzOWViOTFhNWY5ZGNhODM2YmYyYWViYTEzZjlkODEyYmE2MTlhZDQ0IHB5M2sKKzgxMjY3IGQ2Y2IyZjEwZTY1ZWY4NzM0OTI4ZmM2YWNhNjBlYTc4MTk0NGI2NTkgcHkzaworODEyNjggYjlhMGYyNmZhMmM5NjMzN2QxMTk3YmQwNjg1ZTE5NGE3MzE0MDFkNCByZWxlYXNlMzEtbWFpbnQKKzgxMjY5IDdmNjRmYWQxNzdkZDZjNmNiOWMxNGU0M2FhOGIyZGEyNmU5MmM2OWQgcHkzaworODEyNzAgZjAxYWIxYjEzZDBhZTc3YTMyNDA3ZTE4ZTAzOGE1NGEyMjRiYTYwMCBweTNrCis4MTI3MSA4NDAzZjUwNmQ5ZTU0YTQ3NzhiZWFkYmQ4NDM4YmJlZWE5NjM5ZmU4IHB5M2sKKzgxMjcyIGRlN2M4NTgwZjllYmU2NjAzMjA5Njg0OWU3MjYwMjRhZDQ2NGViMDEgcHkzaworODEyNzMgYmYxNGI5NjM4YzczYTVlOWE4ZTAyMzJhYjQxN2U4MWRjN2Y4YWM1MCBweTNrCis4MTI3NCA1ZGJkMmMyOWIwZTk2ZWJlMDNkNmI4ZTE4MjJkYTUyYTVhMTFiNzM4IHJlbGVhc2UzMS1tYWludAorODEyNzUgZjBmY2Q2OTE4N2NkMjZkMDc3NmM5NDQ5Y2JiZTJjZjIyYjljNGFlYyBsZWdhY3ktdHJ1bmsKKzgxMjc2IGRlYzg4NzAyYzliYzczNmQzMzQ1YThhNzE0MGE5YTYzNGViYTRjYjcgcHkzaworODEyNzcgMTc1N2JiZWJmNzVhZGIxNjFmMGRjYWI5Mjk4Y2MwYzYwYzkzNDM4ZiByZWxlYXNlMjYtbWFpbnQKKzgxMjc4IDgyZGJmOTNmNzYwZjRlODgwMWViNjVmYmFkMjMzZTA5MTkzNzI5NTIgcmVsZWFzZTMxLW1haW50Cis4MTI3OSBlNzQ2Njg1NDQ1ZGVlYjEwMzViOWI1NThjZWVjMDU3OWY2YWQ5MzU4IGxlZ2FjeS10cnVuaworODEyODAgNjY2NjA3Y2U0YWRhOWRiY2I5NGY1ZGNkMmI3MWZlMDM1ZjZjMWQ1YyByZWxlYXNlMjYtbWFpbnQKKzgxMjgxIDQ1NWQzZmJiMTRlY2I3NWFjYzI2ZGUwNGMzODgwZTg1NmE0NDA5MTkgcHkzaworODEyODIgODcxYmZhMWZkYTU5MGQxMmI3M2M1ZmY3ZmMzZWI5MjhmNzBhYmU1NSByZWxlYXNlMzEtbWFpbnQKKzgxMjgzIGYxZTM3YThmYjJkMTJiODk5YTZhMDE2NDBiNTZhMTVmZWNlOWYzMjMgcHkzaworODEyODQgMWU1MmJlZDg3N2MxNzdmNjQ1ODgzYjA2YjFmMjNjMDlmYzFlZmJjZCByZWxlYXNlMzEtbWFpbnQKKzgxMjg1IDhkYTA4OGQ2YTk1YjJmMWVkNzhlM2M5MzVlYjcxNDU2MGJmNjEyYWMgbGVnYWN5LXRydW5rCis4MTI4NiA2YjM4OTI2YTVmY2RjNGViN2FhNzM3ZTBmYmVmOTJkOTc2MGU0YWY5IGxlZ2FjeS10cnVuaworODEyODcgODBkYzU3MDE3N2M2NjhhNjJiMTI2MjU2OTE3NjMxNWVhZGZkOGYzZSByZWxlYXNlMjYtbWFpbnQKKzgxMjg4IDE5NzUxMWM0Yjc1YTk3YTNjMDRhNjdiMWFlOTQzZjc3NjY4MjIxYzIgcHkzaworODEyODkgZWQwYTY5ZDY2YzExMzUwOGI3NmZmZjBiNWEzMjQ4OWZjNWZiOTliOCByZWxlYXNlMzEtbWFpbnQKKzgxMjkwIGJlYzgxOGE3NjkwMmEyZjRlYmZlYzg1NTJlOTNiY2JjOTNhODMzYWYgcHkzaworODEyOTEgY2Y3NGVjM2UxZjgyNjgyODMyY2VlNmYyMTQ1ZjJmMTE5MmZmNDk1MCBweTNrCis4MTI5MiA2MTNiNjNmNThiZWJmMjk4NGNmZWUyZDQ5MWUzZDRjMzE4ZjNhOGZjIHB5M2sKKzgxMjkzIDg1OWI4MzhlY2YzZGI2NWVmY2I3ZGQ5MWU3NzY3Y2JlMTg0YWE0OTAgcHkzay1qaXQKKzgxMjk0IGQ3ZDgwNDZmN2E1MmZmNjQ0OWM0YjhiZTQ3NTYxZmVkY2Y2Y2ZiZWYgbGVnYWN5LXRydW5rCis4MTI5NSBlOGVkYWJkNTQxOWIzZTM0NmI3OTU3NDhhYWI3MjdkNWY2N2RhYzViIHNzbG9wdHMtNDg3MAorODEyOTYgYjc1ZTYyZmNhZTgxYTcyNzNiMWQ3MmVlNjAzMmI3ZmQ5YTk1YWZkOSBzc2xvcHRzLTQ4NzAKKzgxMjk3IDI4NTkwZDViNmI4YjA4NjdlODU4NjY4M2RjYTAyMDYzMzhiN2IwMzMgc3Nsb3B0cy00ODcwCis4MTI5OCBmMjQ3MTQ2ZjhhOTU5ZWZjNzIyOWM3MGMxNGViNDdjN2Y3NWY1Y2U0IHJlbGVhc2UyNi1tYWludAorODEyOTkgMjZkNzYwNTIwM2RjYzIwNzMwOWM4NjUzMGNjNzk0NmNiZmU4YWI1ZiBweTNrCis4MTMwMCAxNWZhNTlmYzE0OWRiY2NhOTllNDYwNGNmYzViZjljNTI1NWQ0NTc5IHJlbGVhc2UzMS1tYWludAorODEzMDEgNWYzMTM1MGFmYjYwOThhZDdiNWM2YjNlN2I1ZjM4MzIyNTQwNWExNiBzc2xvcHRzLTQ4NzAKKzgxMzAyIDYzOTEwNTVlZmNhMGRiOTYwY2UwNmMwNmQ4YzRiZmM1NDI1MzNjMGQgcmVsZWFzZTI2LW1haW50Cis4MTMwMyAxMDY1ZDFjNTMzMDlhZWM0Y2VhZDU2ZjI5NWZkNWNiOGY0YWRhZTUwIHJlbGVhc2UyNi1tYWludAorODEzMDQgZjE0ZjQyZjMyOTIyZTNlYzk5Zjg3MzY5MTgzMDA2ODhmZjA2MDYwZCByZWxlYXNlMjYtbWFpbnQKKzgxMzA1IGM5ZWQwYzNmNmRjZGQ3YjFkZjY0ZWY2NTllNjlkNjc4ZjI4YjhjYTggcmVsZWFzZTI2LW1haW50Cis4MTMwNiBjOTlmY2EwM2ZhMzc4ZTI3ZWQ4NzQ3NGI1OTA5MzA5OTkyYmMwYmVmIHJlbGVhc2UyNi1tYWludAorODEzMDcgMThmNjJhN2E3ZGJhODIzN2I2YmViNWQ0MDllYTIzODQyZTUwYzViMCByZWxlYXNlMjYtbWFpbnQKKzgxMzA4IGY3NmY4MTA0NGQ0MDgzZDUzYThmOWZhYzY5YzgyNGMwODAwZGQ0NjEgcmVsZWFzZTI2LW1haW50Cis4MTMwOSBlZjcyZjE1ODY0YTk5OGY1MjdjYWY0N2ViOTdmY2JjYWE4NzNiZTA2IHJlbGVhc2UyNi1tYWludAorODEzMTAgMDUyNjk1NzNkMjE3MmYwYzQ0NTVmNjc3Y2FkYjRmNTI5OGIwNjQ0MCByZWxlYXNlMjYtbWFpbnQKKzgxMzExIGMxYzFlOGM4ZGM5Y2QxYWQ3NDcyZjlmOWU3ZjRmMDE2ZjEzNjc5ZWUgcmVsZWFzZTI2LW1haW50Cis4MTMxMiA2ODQxYjJhMTZhNTFkNWE1OTUyMzFkOWEwMGZkMzVmMDEyMmY0MDQxIHJlbGVhc2UyNi1tYWludAorODEzMTMgY2UzODA5YjgzNDczNjgwOWM1YjhmZTliYjYwNmEwZThkZGEyMGFkMiByZWxlYXNlMjYtbWFpbnQKKzgxMzE0IDdmYzQ4YWQxNjA4N2VmM2NjMjYwNTgxNTgxODk1MmNkNzA4NjE4OTQgcHkzaworODEzMTUgN2YxNWE2MDA2MTYyN2RmOWJjNTcxNGMwMjk5Y2Q1NDkzNGQ2MzQ0ZCByZWxlYXNlMjYtbWFpbnQKKzgxMzE2IGFhNzc3ZDQzZjIyZjVlOTQ2MmI1ZWI5ZDMzNjUzMDhlY2E5NmU2YjUgcmVsZWFzZTI2LW1haW50Cis4MTMxNyBjOGQxNjZlYzU0MzAxZGYzNzQyZWU4ZDM4NTg3YmIwYjYwYTM0NzQ4IHJlbGVhc2UyNi1tYWludAorODEzMTggNzVkNzM5NjU1NmZkZTgzMzAxN2ExMDYyYWVlMjhmZWNlZWIzODFkMyBsZWdhY3ktdHJ1bmsKKzgxMzE5IDk0MmIzYzE2OGYxNWRhZjU4YjY0NmI0ODllMTUxODBkMGNlMDBjMjUgcHkzaworODEzMjAgMTUwNGNjNWExNWExYzRlMzNmN2MzYmMwMDM4ZWI4MTg1M2NlYTY3NiBweTNrCis4MTMyMSA4NDY4NjZhYTBlYjY2ZmY3YWY5Y2Q4NmQ2OWI0ZjVhNWJkZTFlN2U5IHB5M2sKKzgxMzIyIDk5OTk5NzRmZjUwNjk1YmQ1ZjAzZmU4NWI5NjNjYzc3MjIxNDYwMGUgcHkzaworODEzMjMgN2JhODUxZDFiNDZlYzRmNDBkMDBlMWM3Yzg1N2Y3YTc5YzUyMjYwNCBweTNrCis4MTMyNCA4OWNlMmY2ZDRiMjQxNzRiZmEyY2RhNjIzNTljYmMwZGIzNTk3ZTE2IHB5M2sKKzgxMzI1IDdkY2QxYTI2OTc5N2JiMGRhM2YwZWRjZjM3ZTMyMjVmYTlhMDg4YzEgcHkzaworODEzMjYgODFkNzhkZDI3M2IwOWYwZDY4Mzc4ODg2OWM2NmVjYjdlMjkyMTJkZCByZWxlYXNlMzEtbWFpbnQKKzgxMzI3IDhiNzY2ZWM2OTY4NWQ0ZjZjZmEzOWQ5M2ZhNzVjZWEyNmJhMjk3ZDggcmVsZWFzZTI2LW1haW50Cis4MTMyOCA5YTIzMzA5ZGZhYTMxOTk0MTVjZjZmNzBkNTQzNGY2YmVlZWM0ZWUwIHJlbGVhc2UyNi1tYWludAorODEzMjkgYjZkMmEyN2MzZTNiNDQyZTQ4MjcyNWI4NTU5Y2YzMzA1Y2Q4ZmIzOCByZWxlYXNlMjYtbWFpbnQKKzgxMzMwIDA4M2Y2ODZhYWYxNWE0ZDk5NTZlYjdlZWZiZWNkODQ0ODJjOTFmN2EgcmVsZWFzZTI2LW1haW50Cis4MTMzMSBmMzdlY2Y0YThmZjEwYWU4ZTAzY2RmZWExYmI1ZGE0NmM5ZTg5MjRlIHJlbGVhc2UyNi1tYWludAorODEzMzIgNzdlYjFmYjU5Yzc4MDdlYThkZWZlYzBhOWRmYzcwZDY3MzBmOGM4NCByZWxlYXNlMjYtbWFpbnQKKzgxMzMzIDNkMGFlOGVmMDA0NDYyOGNlMzlmZTU3YThlYmI2NDlmYWE5ZDBiZWUgcmVsZWFzZTI2LW1haW50Cis4MTMzNCAyOGJiZDMxY2JjYWI2ZDY5NjE5MDIyM2MzM2QzOTM3MTU5NzQyMDNhIHJlbGVhc2UyNi1tYWludAorODEzMzUgZjVhYWU4NWI2ODY0ZTY5NGY1YTA1NWNlZTMwY2M4YzUxMTBiNGQ1ZiByZWxlYXNlMjYtbWFpbnQKKzgxMzM2IDdmMTBhZWNiMDYzMjJiMzNiYjI1ZTBmNTAxOGQ0YmY2YThiZGZhNzcgcmVsZWFzZTI2LW1haW50Cis4MTMzNyBhZTRjOTMxYTcxZjA2OTY5NTc3MjYyYThhNTU4ZmU5MTJhMTVkNTY2IHJlbGVhc2UyNi1tYWludAorODEzMzggMWEzNGRlMDQyOTcyODcwN2JmYjBlODBiZWMyNWVjMDQ0MDc3Zjg2OSByZWxlYXNlMjYtbWFpbnQKKzgxMzM5IGQxZjI2NWNlYTcwYjc0MzZhOWMwNThjZmFlMGEzMjhlMzNlZGUzYzggcmVsZWFzZTI2LW1haW50Cis4MTM0MCBhNzJiYzU0ZWM3MWRmODYxYmFjYzEzODk1MDBiZWNlMGJjNzNkMmM0IHJlbGVhc2UyNi1tYWludAorODEzNDEgNmFlMDczMzI2ZTdmYjgyNDVmODE0NDk4ZGUxZDBjMTA5ZjYxNDU0OSByZWxlYXNlMjYtbWFpbnQKKzgxMzQyIGY0OTBkMTU4MTk4YWRlZWUxNTJiZjhkMjliNGFjODY4YTJmOThiYTUgcmVsZWFzZTI2LW1haW50Cis4MTM0MyBiZjRlODNkZTRlYTUyOThhOGVlODE4NDU5ZTZkY2NlMzkxNGYzOTMzIHJlbGVhc2UyNi1tYWludAorODEzNDQgMDc0MTBhZWU3ZmMwZWFmOGM1YjU5NzlmODU2NzE4OTMxMWRkMjQxMCByZWxlYXNlMjYtbWFpbnQKKzgxMzQ1IDM0ZThiZmViMGI5ODc5ZDExYjdmMzBmZTZmMTExYTlkNTFjZWE5YTcgcmVsZWFzZTI2LW1haW50Cis4MTM0NiA1OTA2YTBmY2M4MjZiNTFmMjhkYzMzZWU3MmZhOThmZjJlYWNlNjFlIHB5M2stY2RlY2ltYWwKKzgxMzQ3IDhmNmU2N2Y2OTNmZjVlMzZjN2U4NDgxNTc2NTE2Njc1NTAzM2QxZTUgcHkzay1jZGVjaW1hbAorODEzNDggNjViNTYxZjM5Njc5M2M0ZDA5YTExNmQ2MTcxNjE0OTI4YTU2YTY3NyBweTNrLWNkZWNpbWFsCis4MTM0OSBlMDIzYWQzZTJjYWNjYjI1Mjc5YTQ0YzFmOTMxYTAxOWMwNzY4ZTY3IHB5M2stY2RlY2ltYWwKKzgxMzUwIDhjNmY5ODE2OTllODI1YWMwZWE1Y2JkYTA3MWVlZGM4ZGJjYjNmNTggbGVnYWN5LXRydW5rCis4MTM1MSA2ODUyNWVmMzZiNjY4YzM1N2UwNWY4ZjZhYTJkMDgxZjQ5ZTNiNmM0IHJlbGVhc2UyNi1tYWludAorODEzNTIgNGJmYjAwY2UxMmI4NTllOTVkMTQyNWQ0NmQ1ZTFkMDM1NGZhZTNlNiBweTNrCis4MTM1MyA0OWQ3ZGU5ZDdiMWFhMDE4MjVjMjAwM2MyNjk3MzY2NjIyODViODUyIHJlbGVhc2UzMS1tYWludAorODEzNTQgMjBhMzU2ZWViMGY3MDEwM2RlYjE1MWI0ZDMzZDI1YTRhYjNlYjBkNyBsZWdhY3ktdHJ1bmsKKzgxMzU1IDIxYmI5M2UwOTg4YzQxYjgxYjAzNThiZDA3N2IwYzU3YWJhNWE3MmMgcmVsZWFzZTI2LW1haW50Cis4MTM1NiA1YmY0YTg2MzNjNThiODU1YjBmOGM3M2UzN2RlNzY2ZTUwYTQ3NzczIHB5M2sKKzgxMzU3IGVhZWE4MDhiN2ZiODY3MWE4ODRkMWZlMmRkMTdhMmNmY2ZmOGM0MmMgcmVsZWFzZTMxLW1haW50Cis4MTM1OCBiN2Y3MWY2MDQzN2I1OTZjNTVhZGFkMDBjMjhhM2E0YjJjNjAwOTgxIHB5M2sKKzgxMzU5IDBjYWZjMjBlNTYzNzYzNDY1Y2MwNmRmMWEwZTRkN2UzZDYyZjZlOTkgcHkzaworODEzNjAgZTY4ZTAyOGQwOTFlODM1NDBkMTk0MGU5NDAxNTQ1YmU1MTllYTg5MSBweTNrCis4MTM2MSBlNWZkZTdhZDFiN2NjNjk0MDIzODMwNjZiNjk0ZmM1MDJhODZjZTBmIHB5M2sKKzgxMzYyIGNjZGIwOWY3OWEwMzg1NTVjYWU0ZTE5MTQyZDc2MWZkMDgyNjNjMTcgcmVsZWFzZTMxLW1haW50Cis4MTM2MyBiYTUwODg4Y2MwMzkxNGZkMDAxNDAxMjg1ZDhkZDA4OGM1YTE3MjY5IHJlbGVhc2UzMS1tYWludAorODEzNjQgZGVlZDVmY2U4MmQ2MDY5ZjA1MWFkMTczNWYyYzZhYmQzOGM3MzJhZSBweTNrCis4MTM2NSBjMWM3NzY3NGRiYzhjMjlkMTdkZGE4OWQ5MTNmNWViMWJiOGNhMjc3IHB5M2sKKzgxMzY2IDI0OGE5MTVlMzVlZjAxNjFkYjdlMmJjMWM4ZWIzYzVkNGVjMDY0YjYgcHkzaworODEzNjcgMjNlZThhYTg1N2VlMzZiOTk3ZDBhZmM3Y2FhMmE4NmI0ZjJhZGQ5ZSBweTNrCis4MTM2OCA4MmE0NDgzZDljNGE5NDI3YTJmNDI0NWQ2MDgxZGYyMjgxYTViNDNlIHB5M2sKKzgxMzY5IDFmM2U3ODEyNjEyYjhiYTEyNmFlMmE4ZWJjZTFiZjdjMjU0MTdiMzAgcmVsZWFzZTMxLW1haW50Cis4MTM3MCA3NDNjMjA3ZGMyYjQyMDU2OTY5YjhmNWRjZWJhOWJjMWExYTI0NDdhIHB5M2sKKzgxMzcxIDAyMWY1ZWM1ZDJkNGZlMzdkMTBmZGYyNTFhM2IxNWE5YjEwZWYzNzMgbGVnYWN5LXRydW5rCis4MTM3MiAxOGRjZDkwM2M1NWUxNWIyNDUzZGE4NGMzNTNkOGEwNjZiYjgwMDM0IHB5M2sKKzgxMzczIGRhOTQxNTA3ZWQ5M2M0NGM0MDNjNjExZjA4MGNkNjc3NTMzMTk5NWQgcmVsZWFzZTMxLW1haW50Cis4MTM3NCBiODRmOGQxYTA1MjJjNmY5Mjk0ZmYyNzkwMjhmN2Q4YmYyMTdmYTA3IHJlbGVhc2UyNi1tYWludAorODEzNzUgNTAzYWZjNjJkNjMyZTE3OGY4NmZjYjYxMTQxNDA0ZTE4MGNiNTliZiBweTNrCis4MTM3NiBmZDcyYWYwMDYwYzg1NDBhZWNkOTU0MGM0OTQ2ZjMyN2U3NjQwOWU3IHJlbGVhc2UzMS1tYWludAorODEzNzcgNWQ2Yjc2ODkwZjE3Zjg4MGZlZGVlMGEwMDRlODJjNjUwN2MyYTNkZCBsZWdhY3ktdHJ1bmsKKzgxMzc4IDEyOTQyN2I1ZTkxNDFhZThkYzYyOGMyZDFmNWYwMjMxNzk2YjkwMjIgcHkzaworODEzNzkgNGQ4M2JhNWQwYWY1YjQ1ODE4MDhmMDgxMDVjOWNmOGIwMWQ2MTQwZCByZWxlYXNlMjYtbWFpbnQKKzgxMzgwIDYyYzBlNWYxNDEzOGY2OTYxMGYyMWFiZTgwZjU5NGUwZGE1YzRiNDAgbGVnYWN5LXRydW5rCis4MTM4MSA1NWUyMzY4ZjcyZjI3NGU2ZTkzMGFhZTUyNGEyYjVmY2ZmMGM3Y2I1IHJlbGVhc2UyNi1tYWludAorODEzODIgZDkzYmQ1MjU0NzNjNWY2ODc4MWJhZTI0N2JiOTU2YzIxNzUxN2E0NiByZWxlYXNlMjYtbWFpbnQKKzgxMzgzIDMyNzFhZjAzNWQwMTc4Y2RjNTVmOWE5YjNkN2U5ZDk5ZDYyY2M4MzQgcmVsZWFzZTMxLW1haW50Cis4MTM4NCBmMmQzYmY5ZGE5YTgxNTRhNmJkZDJjYzk0ODk4MDNlMmRiN2E0NWRhIHJlbGVhc2UzMS1tYWludAorODEzODUgNmZlMjYwYmMwOTg3ZGMyYzNjZGVmNWYwODBiZTBhNzFiOTQ5YThjYiBsZWdhY3ktdHJ1bmsKKzgxMzg2IGIzYjI2NWZiYWFiZGY5ZWFiNDJjNGRhNjA0NDE4YzEwN2M5YTJkODUgcmVsZWFzZTI2LW1haW50Cis4MTM4NyAxZTZiNDM1ZThlYjZhNTI4MWJlYWQ3NjBhMTQ2NjU5MDYxY2E5NTBhIHB5M2sKKzgxMzg4IDlkZDUyMmY3YzBkZTIxY2NjYmQxNjRlZWQ3ZDAyNmVlYTkzMTc5MGIgcmVsZWFzZTMxLW1haW50Cis4MTM5MCA3ZDRlZTBkYzg3NjQ0MDE3ZWZkNTMwNzQ3OWVhOTIwY2QyZGQwMWZmIHB5M2stY2RlY2ltYWwKKzgxMzkxIDRmOWRiMzVhNDA4NjFkYjdmNzc1NTM4NTZkMTExOWI3YTE2Y2U2YmQgcHkzay1jZGVjaW1hbAorODEzOTIgNWVlNDdmMGIyNmIwMmEwN2MzN2RiNTYwMDQ1MDBkY2M0Y2U1ODQ3OSBweTNrCis4MTM5MyAyMjI4YzI1Y2NlM2U3MmZlYjM4NjY4YWMyOGY1YzBjMzJiZTU1Y2I3IHB5M2sKKzgxMzk0IDM3MDMyYjJhNTkyZGIwMjM0YWYxNjYwNGIwMDBkMTY0MzgyMjEwNjkgcmVsZWFzZTMxLW1haW50Cis4MTM5NSAzODcxOWYxMTYxOWJjZDg5MTVmNWQyMmFkNDlhZTFlMGVhNGViMmVjIHJlbGVhc2UyNi1tYWludAorODEzOTYgZTNkYWFjMDY2YjkyZTc4ZTJiZjE4Y2VmZjk0YmZmOGNmYmJhMGFmMyByZWxlYXNlMzEtbWFpbnQKKzgxMzk3IGQ2MDE2ZmE1OGRmNmI1Y2UxZjM3YTU5ZjYxM2Q5NTc2OWY0MzdjMGUgcHkzaworODEzOTggYzI5MTdhYzVkNTI2ZGM0ZDNmNjJiZDYxZDNhYTgwODU4OTQzOTA4MCBsZWdhY3ktdHJ1bmsKKzgxMzk5IDNmMDhkOThjOGZhNWYwNzE2MzM1YzE2ZDQwYmRiM2YzMjk0ZmQyY2MgcmVsZWFzZTI2LW1haW50Cis4MTQwMCA3OTU3NjJiNWUwZDZlNmIzN2VkZThlMWJhN2ZiZjkyM2EwZjZkNDE1IHB5M2sKKzgxNDAxIDlkYjhjNDE0OTIxZjcwMjZkZDM0YmU2MDk4OGQyZTliMzhkODQ4ODUgcmVsZWFzZTMxLW1haW50Cis4MTQwMiBlMTk0MGRkYjNmNTY1YTYzOTRmYTVkNmE3YzYxYTEwNDE1ZTQwYTAwIGxlZ2FjeS10cnVuaworODE0MDMgNDQxNDkxNTcyZmNlM2FkOGRjOTBlMmI1NDhlYzU4ODhkMmM1YzU1ZiBweTNrCis4MTQwNCBiMDcyYjlmYjBmZDJkZWNiZTA0ZjEzYmI0YWFjYjQyYWQwYjhjYjlmIGxlZ2FjeS10cnVuaworODE0MDUgZjEzOGQxYmFjZmM0Mjg4MDY2NDIwMDE0OTliYzcxNmQzM2RiNDA2YiByZWxlYXNlMjYtbWFpbnQKKzgxNDA2IGRlNjFhNjk3MTJkYWQ3YzQ1YWZjYTNmMjcyZDFkZWU0ZmJjMmZjOTkgcHkzaworODE0MDcgNmNhMmU2YjNiZjMxNzc5ZTZlMDU3NjcwNjY4MzhlZmZkYjY1NTM0MyByZWxlYXNlMzEtbWFpbnQKKzgxNDA4IDczNDE2YjFiYmNkNWJjYWFmZjIyN2I1NjY1NDE2YjZmYjMyMjc4NmYgcmVsZWFzZTMxLW1haW50Cis4MTQwOSAzZDY0ZDFhZmU2Nzc5YTczMDRiMGRiZGNlNTJhMWJjMjM4MjQ4NjNhIHJlbGVhc2UyNi1tYWludAorODE0MTAgZTFmNGZjNjNkMmIzZDJiZTRhZjE3ZGY1NTU2YmZhZmI5YTYxN2M3OSBweTNrCis4MTQxMSA1MDZlOWJlODYxMzkzODRlNWVkYjA3YjA4NGY2ZWVhZWEwZDBmZmM0IHJlbGVhc2UyNi1tYWludAorODE0MTIgZTlhMDQyYTI1MTk3MTM4ZjZlMjMwOGY3ZjRiYWY2YTY2YzIyMGI0MCByZWxlYXNlMzEtbWFpbnQKKzgxNDEzIDk0NmNjNWVlMjk1MTEwZjM0NWQ1M2ZmNjJmN2NmOWZlY2Y2NzZkMjggcmVsZWFzZTI2LW1haW50Cis4MTQxNCAwZjA5NjgyOWZjOTBiOGIzNWQ5MzM1ODc3YzBmNTAwYWQxODI4MTQzIGxlZ2FjeS10cnVuaworODE0MTUgZmYzYzY3NjYxM2FkYjE3MGFmODBhMWEzMjU1NjMxMWU4YzFhZDlhMCBsZWdhY3ktdHJ1bmsKKzgxNDE2IDg1NDJiNzdhMjhlYTk2NTg2YzAwODFkNjVhM2M0YzUyYzgwZGJlN2UgcmVsZWFzZTI2LW1haW50Cis4MTQxNyBiMDI1MGZmYTIyNjc3NWRlZmIzNWVkYmUzOTBjODg3YTcwMmJmZTA2IHB5M2sKKzgxNDE4IGZmZjI5ZDNlN2EzOTIxNWIxN2RiODk3MzBhNjEwY2VmMGI2NDEyMGYgcHkzaworODE0MTkgMWIwNDY3NjYxZWY1YTkwZjQxZjg2ZjUyMDBhMjhiNGVjNmIxMzQyZiBsZWdhY3ktdHJ1bmsKKzgxNDIwIGZiZmMzNTM2NDdlM2MxYjM1ZjhmYTI5MWM1MTM0NTdlMGY2MDVkMzMgcmVsZWFzZTI2LW1haW50Cis4MTQyMSAyOWI1NmMzOGEwMzNkY2RhMTBjNzYxZWU0Y2IxMzFkMzNkODkxOWFlIHB5M2sKKzgxNDIyIGFiYzNmNWExY2M1ZThjYWNhZDM1ZDE1YmE1Y2UzY2VjNzNhNWM2Y2EgcmVsZWFzZTMxLW1haW50Cis4MTQyMyAwNmIwOTM3NmNjNWIwNDJjZTBkMTYxYjMwMzQ0YTVkOGNjMzRlNTUzIHJlbGVhc2UzMS1tYWludAorODE0MjQgZWNhOThiZGM4YTE0ZjQwYjIzMmEzODRlMmUxOWJiOWQ5NTJhNzZlMCBweTNrCis4MTQyNSAyM2UzODE5MmFmOTY0ODgzZmRkNmUxYjQ2Yzk2MjQzNGE2ZWQ2NTg4IHJlbGVhc2UyNi1tYWludAorODE0MjYgMzE2M2RhMjJkNTg1MDJhY2M3ZGNiMzJjMDg1ZGUzODAzMDM2Mzk0YiByZWxlYXNlMzEtbWFpbnQKKzgxNDI3IDhiMmQ5ZDEwMWM4NWE0OTY2ZmIyOTM1YTRlNzFhOTllMDkyNDY4NGUgcHkzaworODE0MjggNjk4NWM2YjlkOTc4ZTU3MTNhMzUwMTkwMDkwMTRkYWExNmYxNjNiZCBsZWdhY3ktdHJ1bmsKKzgxNDI5IGIxNGYzOWQwZjIwYTJkYWU1NGY0OTM3YTMzNmEyYTYyNzQ2ODRlZGEgbGVnYWN5LXRydW5rCis4MTQzMCA2YTA4ZWViNGIzMjIzOTI5NzU0YWU3ZWY1MDcxZDZiY2YyYzFmY2Y2IHJlbGVhc2UzMS1tYWludAorODE0MzEgZmViZDljMjg4ZTc2ZjgwYmM5M2FmODIxOTdkOGQ0MTNjYzU3MWMzYyBsZWdhY3ktdHJ1bmsKKzgxNDMyIGYwNWQyOTk2Nzc2ZTBlZjRmMzY4M2ZlMjFmZmE1NGJjY2JjNTE3MzMgbGVnYWN5LXRydW5rCis4MTQzMyAxMWQ1ODUxNjAzM2Y3ZDU0MzI5ZTBhNmU2MTI4ZDFiMmUyZjU0Y2Y0IGxlZ2FjeS10cnVuaworODE0MzQgNWQ2NzQ5NzBhY2Q5YTA2OGNiNzFjNTJiN2I0YTIwZWY4YmJlM2NmYSByZWxlYXNlMjYtbWFpbnQKKzgxNDM1IDQ5NWViZTA0ZDQ3OThjYmMwZjY4NmFkYzg0NzgyNWQ5MjBjY2NjNTMgcHkzaworODE0MzYgNmVmN2NmYjFmOGY0ODMxYzBiMDA1ZWMzMmQ1MmI2ZGU0NGM4Yzg4MCByZWxlYXNlMzEtbWFpbnQKKzgxNDM3IDhjOGQ0MGNlNWNhMTVhNDQ0Y2ZmOWM2ZTEzMTVkNjBmOGJjNjdlMDMgbGVnYWN5LXRydW5rCis4MTQzOCBmMzg5NTYzZmYzNzIzZTYyNjVjYmYwNWQ3ODM3ZDNlYTkxNTQxODQ5IHB5M2sKKzgxNDM5IGUyMGVhZTNiNWZlNDU0MGE3NmEzMDRjYWU5ZDUxZWE0NWM5OTdhOGMgcmVsZWFzZTI2LW1haW50Cis4MTQ0MCBjMGRiZmI2YTdkNTY3MzAzYzdiYmUzOGE0N2Q5ZmUxYjU0MjVhMTFiIGxlZ2FjeS10cnVuaworODE0NDEgM2E2ZTk2MzdjMzNkZDliZTMwNzU5OTFkNWZlM2Y3NjdjYTlhZGNjYiByZWxlYXNlMjYtbWFpbnQKKzgxNDQyIGE5Y2FkNWFlNDA1ZDhkMmE5NWY4Y2FhMWNhYzM5Zjk1YjFmMjk1MGQgcHkzaworODE0NDMgNzJmYTAwYWMzOGJlM2UwZGQ4NmFlNzg2MDgzNzZhOTJjZDhkYTFhNiBsZWdhY3ktdHJ1bmsKKzgxNDQ0IDUyNDk1Y2NmNjFjYzg4ZGVlNzM1ZjJiYzE1ZDY3NDFmZjBjYzNhN2IgcmVsZWFzZTMxLW1haW50Cis4MTQ0NSA5NTQxM2ViZDQwODEzNjM4ODNlMjViMjQxZGY4NDQ5NWIwNzBhOWIyIHJlbGVhc2UyNi1tYWludAorODE0NDYgMmQwYjA5OGY2Y2I3Zjk4NzA0MjdhY2U5MzM0ODM1MzE3NmQ1MTdmNCBweTNrCis4MTQ0NyAxOTRmNDg4YjhhZDFhNzdiNDVlYjg5Y2M0ZThhYzgxNGIwZGNiNWUyIHJlbGVhc2UzMS1tYWludAorODE0NDggMWFjY2E5YzQ1NTYyYjhlZjQ3YWY4Y2FmNjA2NGVlYzY3YzEzNjljMSByZWxlYXNlMzEtbWFpbnQKKzgxNDUwIDBlMjZjYjk3NmM0ZDkwYmJkZDM4YTc5MjI5NzQ2NDc5MGI2ZGRiNDMgbGVnYWN5LXRydW5rCis4MTQ1MSAwZjUyOGVlMTVlZjcyMDYwYjcxMzYxMWNhNDY2MzFkNzQ4ODkxM2FjIHJlbGVhc2UyNi1tYWludAorODE0NTIgMDIyYzkzZWQxYjhlOGY0YmQ2OGE0NGY2N2RhODIzNzkxMjM5NDhmZSBweTNrCis4MTQ1MyA1NWU4MTljYjUzNjEwMzU5MjVjODJkNjRmMzY3NDRhYTk0NDdhNzQ0IHJlbGVhc2UzMS1tYWludAorODE0NTQgYzZkZmMzZGQyZDVkZjRhMWZiMzFkNGE5OWY0ZjFhYjA2MWQ0MzE2NyBsZWdhY3ktdHJ1bmsKKzgxNDU1IDJlYTkwOTIwY2MxMGQzYTE5ODFkM2NiNDFlNjQ0YmE3MzA4YTM5YjUgcHkzaworODE0NTYgMTRkMjNiZGRmNzkzMzM0YWU2OWZmOTMxMzM1OTBlYjdkNDBlOTQ0YiByZWxlYXNlMjYtbWFpbnQKKzgxNDU3IDgxNWJhMzg3MmY4NTA0Nzg2ODgwZjUyMGUyMDBkMTkwYjJmMzA4YzQgcHkzaworODE0NTggODBiZTcyMTg3NjdiNzEyYjc2MDZjNjJiZmFlZTBjYWFlOGZmNzVhNyBweTNrLWppdAorODE0NTkgOTllOWVkMjE0YWFkZTZkYzAzYWI0MzI5Y2NhMzNhMjBmOTdjZjY1MyBsZWdhY3ktdHJ1bmsKKzgxNDYwIDJhMzg5NzM0ZDU3MDIwYjkyNjBmZWE3NjVhN2RlOWNiM2ZmNGExYWEgcmVsZWFzZTI2LW1haW50Cis4MTQ2MSAxYWYyNzM1MGY0MWJjNmZjYTdlNWE0NmYwNDY5MDAzMzU1ZTE5NWQ5IHB5M2sKKzgxNDYyIDg0NmRiY2Y5NzBhYmVhNWM4NWUzMzc0OTM4MTY2ZmY5MDUwNjkxZGQgcmVsZWFzZTMxLW1haW50Cis4MTQ2MyBiNzM5ZDMwMzRlYzc1MTI1ODY2NTE0OWE4MTZkNmNlZjE1MzI5ODJkIGxlZ2FjeS10cnVuaworODE0NjQgOWEwMjM5YzBlYTNiNDFjZGRiOWQwYzkyZWU0MDJiYzdjZmJlY2QxYyByZWxlYXNlMjYtbWFpbnQKKzgxNDY1IDBhNjQ3ZDA4ZTY4NWZhZjBiOTc3ODYwYzczZDZlMmZlOWRhMzVhMDkgbGVnYWN5LXRydW5rCis4MTQ2NiBmMjA1ZDY2MDU2Zjg5ZGQ5Y2ZmNjUyOTIzOTQyZjMxMTY5MTIzNTZjIGxlZ2FjeS10cnVuaworODE0NjcgNzU1YTFiYzU2MzI2ZWUwNWE3YjNkNTBlYjRjMjgzZWY0MTU2ODc5OCByZWxlYXNlMjYtbWFpbnQKKzgxNDY4IGQ2YTg4OTY5NzE3ZjU1YmM4ZGZmNzBjOTBiZWJkN2I4ZDkzMzNlNzMgbGVnYWN5LXRydW5rCis4MTQ2OSA2M2I1NzhkODMzZWU3YWQ5M2UyOGEzZjdjNTc4YTk2ZGIxOGZjNzNjIHJlbGVhc2UyNi1tYWludAorODE0NzAgMzU2YTZmYzllNTc4NWMzZjY3NjU0NjJiMTk5NGY2NzMwMzMxYjU5OCBweTNrCis4MTQ3MSBiZjgyYzFkMDRlMDZjZGFiZmNkYjkyMjgxNWIxNGJkNDEyYmViZDE5IGxlZ2FjeS10cnVuaworODE0NzIgOTcyNmMyMTczODg1ODJlMWFiYmVlNjE2YjEzYWQzMDBjMzMzM2I3ZiBsZWdhY3ktdHJ1bmsKKzgxNDczIGFiMDgyZTM4N2RkNWNlMjk1ODNlY2YxNjc1ZjJjOTUwY2IzN2FlYzggcmVsZWFzZTI2LW1haW50Cis4MTQ3NCA4MzBjZDg5YjAxZThmMDRmNWUxMjNlZmViNjczOTJjNjQ0NDFmNzQ1IHB5M2sKKzgxNDc1IGNkNDkzNjY5MTE2M2ZkYzI5YTQ0NGVhZjI0NDViYTNkNTRlN2YyOWYgcmVsZWFzZTMxLW1haW50Cis4MTQ3NiA2ZmVlMjZjODlmNmU0YjJhNzYyOTA2NmUzMDQ5Mzc0Yzg2YWVkZTUyIHB5M2sKKzgxNDc3IDZkYzllYzg4NTQ2MzkxYzczMTgxOGFiYzY3ZTcxZTdkNjExMDAxOTAgcmVsZWFzZTI2LW1haW50Cis4MTQ3OSBlZTc2ZjBhMDY1YzI0YzlmY2MyOWQ0ZWEzZDJlNzkxNWJkOWI3ODQ3IGxlZ2FjeS10cnVuaworODE0ODAgMWUwNmE2YzMxMjM0MWEzMWZlZGY4NmE3MDJiZjRmMzg4OTE0MmZjNSByZWxlYXNlMzEtbWFpbnQKKzgxNDgxIDY5MjA3ZjgwMWIzMTY2NDU0M2JhNDkxYjZhY2ZiZjAxMmJiNzlhMzMgcHkzaworODE0ODIgNGU0OTUyNjM2MTEzNDViNzg0MGYxZWFiOWUyYmM0N2IzNGY1YjdjYyByZWxlYXNlMjYtbWFpbnQKKzgxNDgzIDU0YjUxYWJiNjk1MTI0ZGNlNzEyNjQwZjA3OWJkMDk3Mjc3ZDhiMWIgcmVsZWFzZTMxLW1haW50Cis4MTQ4NCAxZThjOTIzMTY0NjM0NzRlNmFiYTVmNTY2NzNkMTgyMzUzNWEzYmM0IGxlZ2FjeS10cnVuaworODE0ODUgYjBkZWUzMmExYzZiMDk1ZGZhYTkzN2E5NzNkMzhiNjM3NGEwNDhkMiBweTNrCis4MTQ4NiAwYmM4ZmZlNmJhOWFjODVkZmY4NWUxMjJlMjhkNDc1ZDRiMTQzZTRlIHB5M2sKKzgxNDg3IGEwYTZlOGJmYWFmNzJhMDkzOTFhNTE4YzJiZGQwN2RjYThlNTZjNWUgcmVsZWFzZTI2LW1haW50Cis4MTQ4OCBkY2EzY2IxOWRiZGQ0NzEyNWE3YWE5YTA2MjJhN2Q1MzQ1NjdlMjA2IHJlbGVhc2UyNi1tYWludAorODE0ODkgMjFmYTA5ZjI1MGUzMDA2Y2RjMGJjNTI4NTlkZDUzM2IwMTVlNTc1OSBsZWdhY3ktdHJ1bmsKKzgxNDkwIDQwY2FkNzU5YTM1NTQ3NTVjZGU3OTg4ZmRlMDE1MTYzYjk1MDlmMWEgbGVnYWN5LXRydW5rCis4MTQ5MSA3NzUwNTc5YzM3NWRhMWQ5Mjg4OTQ2OGMwNzBlYmFmMjBjYTIzMzE4IHB5M2sKKzgxNDkyIGU2NGVhMTYxOTgyMGMwYjlhM2ZkNTUwZTQ5MTU5MWMxYzQ4NmUzMjYgbGVnYWN5LXRydW5rCis4MTQ5MyAwMzYwMTdmMmU3NGM2YTQ2ZTQ5ZTI2Yjc2ZTEzODAzZTQ4NGQxMWM5IHB5M2sKKzgxNDk0IDJmMjRhMmVmNzMzMWM2MmVkZjE2MDkyNTIyMWQzNDEzYzc1Y2IzMjYgcmVsZWFzZTI2LW1haW50Cis4MTQ5NSA4YWQ2MTc4MDUzNWVmYjRhZGY4NDBmNzc3ZGY5MDY4ODdkM2IyMmViIHB5M2sKKzgxNDk4IGIwMzhmZGE1OTNmNmQ1OGUxZTk1MzY1ZjFlOWRkMGMzZDM1YTI2YzAgcHkzaworODE0OTkgYzU2ZmI2M2M2NDhmNDk4MzI2OTRjNDExNDk3ZGNjZTJmNmJiYzQxZCBsZWdhY3ktdHJ1bmsKKzgxNTAwIGViZGE2ODAzZjhkNWMzZTFhNzY3ZWNjZTExMWNmNTBmMzM4ZjU2ZDIgbGVnYWN5LXRydW5rCis4MTUwMSA5MGQ2MzE0Njg0ZDQzYmU0NWU1OWIyYjNlOGI2MDc0MWY5MjY5YTVlIGxlZ2FjeS10cnVuaworODE1MDIgZTNiNTMzOGJlMDU4ODkxYmQ5NTJmZmRmNjc5MjE2NmM1Mjg0MjIyNCBsZWdhY3ktdHJ1bmsKKzgxNTAzIDRiZTIxYTA4ZGQ3MDcxNmU2OGNjNjQzNjVjZmYzZWU1ZDNhODM2YzggcmVsZWFzZTI2LW1haW50Cis4MTUwNCBiZjA0ZWFmMWFmNzQ4YTgzYmQ3NDJlZmIwNDkzNDJiYWRmOTJhOTk4IHB5M2sKKzgxNTA1IDYxNDQ3NjBlODM1MGQ0YzNiMDg3ZDlmMTYzOGU1MzMzMDYxNDgzZWQgcmVsZWFzZTMxLW1haW50Cis4MTUwNiA1ODQ5MTkxMTE4MmNlMTNjMjEwN2E5ODk3ZjU3YzAzYjMzOTNhODEwIGxlZ2FjeS10cnVuaworODE1MDggZjkwMzY4Yzg3YjMzZTY4NTI5ZWExMGJmYzcxN2M0ZjRhNGQwZjJiNSBweTNrLWppdAorODE1MDkgYThlYWI2NzAzMjY2NjRjYmFhOGNkYjE4MzQ0N2E4ZjFkZmVmZWNiMyBsZWdhY3ktdHJ1bmsKKzgxNTEwIDY5M2UyYmVmNGVlM2JjODIwNGIzNWQ3NzM3ZWU3NGJmNzJmM2MxYzMgcmVsZWFzZTI2LW1haW50Cis4MTUxMSA3ZjQxZDc1YWQ0MzVkMmQ4MzZkZmM3YzhkYTBkMWMxZDdlMzQ2M2FjIHB5M2sKKzgxNTEyIGI3M2JlYmRmZTUyNTljMmFiN2MzOWE4ZDc3MzUzYjNhMTBjN2YxNmIgbGVnYWN5LXRydW5rCis4MTUxMyA3MDMyODdhOTk5MzkxNzBmYzAzMTJjMzI3ZmI3MjZjM2M2MThlY2I1IHB5M2sKKzgxNTE0IDRlMDA5MTRlYzQ0N2JiYmZmNTc1ODQxYjAxZjUwZTViZWRiZWU5YTIgcHkzaworODE1MTUgNWJjNGZjZjA0MTQzZDZjNWQyOTkyNGIzZGFiNDRlODQwOTQ4NmZlMiByZWxlYXNlMzEtbWFpbnQKKzgxNTE2IGNlMjYxNzIzYjM1NjJiYWJhOGQyODJiNDVhYWRlOGU5ZmM1MWZiZGUgbGVnYWN5LXRydW5rCis4MTUxNyA3ODE5YmE3N2U0NWMwMDA2M2M2YWUzMDk4ZDI3MTEzYzRjMjM1NGQyIGxlZ2FjeS10cnVuaworODE1MTggMjI5N2NkNTdkOTQ1ZjJmYTljNGI2ODc5YjM4YzFjNzYwNGMzOWU5OCBsZWdhY3ktdHJ1bmsKKzgxNTE5IDIyY2FkZjI2NGFlNTIxN2YyMzllNGViMzk2ZDMzY2FlNjg2YmFjYzggcHkzaworODE1MjAgMTMyMTJkNzRjZTAwOGU5MDg0ZTljZjE5ZjMwNDYyOWU5YWZhYzcxNSByZWxlYXNlMjYtbWFpbnQKKzgxNTIxIDU0YjQ4OGNiZDM3ZTM5MTQxYTZmYTE2ODMwYzM1YTY0OWJhNWNiNGYgbGVnYWN5LXRydW5rCis4MTUyMiA3NjFhYzk3MDNhOTZjMTQxZjE3MzMwYTEyNDg4ODg1ZTM0YTJlMmM2IHB5M2sKKzgxNTIzIGU4YTkzOTNhMDc0OGQ1ZDUwNDI5MGUwZDY5OTI0NGEyMDY1OGQ0NjUgcmVsZWFzZTI2LW1haW50Cis4MTUyNCBkMDljOWE5MzdlMTBiZjZhNzEyZmE5Y2E4ZjJhMGRhOWU0NzI5MmJjIHJlbGVhc2UzMS1tYWludAorODE1MjUgOGFjM2Q1Mjc3NDVjNGUzYWE3ZDg5NmY5MTE2MGExOWVjZGYxODkxMCBsZWdhY3ktdHJ1bmsKKzgxNTI2IDQ3MDgwMDgwYWI2MTliNTcxMjQ5ODAyODUxYWFkMmFiM2EzNThjZDAgcHkzaworODE1MjcgNDRmNDIyMmQ5MWJkNzBmMWQwODkxZDcxM2FmNWNjOTUwMmExODY3YSBsZWdhY3ktdHJ1bmsKKzgxNTI4IDZkZmYzZDkyMTJhODY1YzIxMjgzYTE5ZTdiY2QxYTA3YWY4ZmEzMWYgcHkzaworODE1MjkgNTVkYzllZjE1YWIxYTI0NWY0NDMwZDBkMjdhYjUzNmYzZTk5NzdkNyByZWxlYXNlMjYtbWFpbnQKKzgxNTMwIDgyYzI0MjZmN2YzZTlhMDdhZjkyMTQzNGFjM2UzM2Q4NGZmYWZlODQgcmVsZWFzZTMxLW1haW50Cis4MTUzMSBmMTMzN2ZlNmI3Yjc3OWVjMjMwNTExMzRlZjM1NDI5MjdmYWM4ZTQ0IGxlZ2FjeS10cnVuaworODE1MzIgZTRhZjcwMmQ2MWI3ZDNjYWQ3N2IxNTUwNzczYTJmZDI2MjNiOTJjNCBweTNrCis4MTUzMyA0YzJkNmUxYjg5MGVkNmNjNDM2YWM5OTlhYWM1MjZmYjFjZGUyN2RjIHB5M2sKKzgxNTM0IDkzYzVlNjI0MTMwOTY2ODA5MjQ5OGM5MjlkM2E0OTk0NmNmYTliNmEgcmVsZWFzZTMxLW1haW50Cis4MTUzNSAwODBlNTUwOTE2ZWRjZDlhODRhNmNkNWUwMWJkZjE1Y2QyZmE4OWNjIHB5M2sKKzgxNTM2IGY3ODhhZmY1NzJkMTFjOTU5ODI0NWM5N2MyNjRiZjE4YzZlOGQ1OTAgcmVsZWFzZTMxLW1haW50Cis4MTUzNyBiZDVmNWRmN2VkNzg5NGM3YWFiZTlhM2Y0YTZkY2U0ZDQ4NDNkM2QzIGxlZ2FjeS10cnVuaworODE1MzggNmEzYzJmMDk0YmJhZDdjN2JhMjg2MzMwYTFlY2Q0MWYwMTlhM2UwZCBweTNrCis4MTUzOSA4ZGJiZDkwZWVkYTg2ZTdjNmExMjVhZWFkYjg2ZDRlOTFlNzhkYmZhIHJlbGVhc2UyNi1tYWludAorODE1NDAgOWY3OWNiOThkNTVmNDRlZGFhOTkxMzY2NzM4MmY5MjBjNGNjNmM3YyByZWxlYXNlMjYtbWFpbnQKKzgxNTQxIDgxYTU4MGQ5NDdlZjRlOGFjODhmOTZiZTIwMDc3NDg0M2MzYzg5NjggcHkzaworODE1NDIgMTliM2U0ODUzYzc0MzIyYzBkN2E5OGRmYTc4OGQ0ZGRmMGI5YWE2NCByZWxlYXNlMzEtbWFpbnQKKzgxNTQzIDQ5ZDQ5Nzc5MDYwN2Y5MmVhZmE0ZmM3OGI3NWQyZmJjOWY0YWQ4YzggbGVnYWN5LXRydW5rCis4MTU0NCA3MDJkMjYxZjNhMjlhYmRlMWI4NzU1YzJlMzA0ZWY0NmY4MDUzMmE5IHJlbGVhc2UyNi1tYWludAorODE1NDUgOWFlYzZhZDUzYTFiOTc0YWJmMTA0ZjM0ZmExOWZjODQ4ZmQ4ZDZkZiBweTNrCis4MTU0NiA5YjhiMTQwM2Y4ZGRhODU0MDg2MDY0NWM4ZmQxNWQ5NzQ1YTIwMzY4IHJlbGVhc2UzMS1tYWludAorODE1NDcgNGY5ODJlOTRhZTE2YWFiZjIwNGQ1ZGIyMzZhN2RhY2FkZjFhZWUwNiBweTNrCis4MTU0OCA4MzI4YzVjMzI3MmMzNTEwNDIwOWVlMjRhZDQ0YjA5NTQ4MzE1OWRhIHB5M2sKKzgxNTQ5IDYwMjcwM2QwNTYwYWY1M2EwZGZjZWVjZTM5NGE4ZjAwYmNhZTZiMDAgcmVsZWFzZTMxLW1haW50Cis4MTU1MCBmZDk5NDY3YWI0ZDU5NjUwMmVkM2Q2NjdmNTk1YmZkMzMzMzI4MTRkIHB5M2sKKzgxNTUxIDU2YTU0OTM2ZGExZGJkNDkyZTFiNjI2NmU2NzI3ODY1NjUyOTFhZDUgbGVnYWN5LXRydW5rCis4MTU1MiBjNGY3Mzk3NWE0NDBhOTJkZTE4MDg1N2QxZWYwNGVkZjdlZDdhNGNiIHJlbGVhc2UyNi1tYWludAorODE1NTMgZTNhZDFiOGM0NTIxMjhmZDZiZTQwODk5ZTY3NzU5ZTk2MzYyNWUzMyBweTNrCis4MTU1NCA4MTgwYWJiZDA3Y2IyZTYwYWZhYzI1YTM4ZDk2ZWM0N2JiYWU0MThmIHJlbGVhc2UzMS1tYWludAorODE1NTUgNDc0NWUxM2FhOWU0MzY0MjlhNzljYjQ1YTkzN2FhMzc3ZGRiZmM2ZCBsZWdhY3ktdHJ1bmsKKzgxNTU2IDdjZmJmZmE2YTMwYjI4MmJhNGVkNjRlNTc2MWY2OWUzYTU2MDQ2ZjkgcHkzaworODE1NTcgYzQyZmZiM2Q2M2FmYzc4YTE1ZDRlNzBkMmJiMzI2NGUwNmJhYzFhMCBweTNrCis4MTU1OCAzZjRkMmE4MTgxMGM1Y2M3Y2IxM2U1NjFkNzI1YjYzNDljNWUxNjNjIHJlbGVhc2UzMS1tYWludAorODE1NTkgMTMwN2Q5Nzg3ODlmZWZjM2RhYjExMTA2MGI4NGFhM2JkZGU0MWMyZSBsZWdhY3ktdHJ1bmsKKzgxNTYwIDdmMzEyZjYwZmRiMDUxOGQ1NTVkOWM4ZTBlMzliZTY4ZDRiYzA5YTIgcHkzaworODE1NjEgMDE0ODI3MDA0MzRkOGEwOWEzZTM2MjMzYzc3ODkyYjdjZTM2Y2UyMiBsZWdhY3ktdHJ1bmsKKzgxNTYyIDU1NWZmNThjYjdjYjhhN2FlMzQxMjhmNDU2YjJlZjM1M2EwZjQzZTcgbGVnYWN5LXRydW5rCis4MTU2MyBkZGEwZTFhZGQ4YjMxMjZiMTNmNjFjY2FhYzRiMDYzZTBlOTYzYzg0IGxlZ2FjeS10cnVuaworODE1NjQgYzI3ZWFkNTFjN2RjNjMyMzE5YWIzNWEzYzQ5NmYyMTFmNWQxZDYzNiBweTNrCis4MTU2NSBjZmQyMTVkOTQ5OWMzZWExZmU1MzIxOWIyNDliOTUzZTA2YWY2ODNkIHB5M2sKKzgxNTY2IDMxMWEyNTNiNThiNzVkMTBiZDA0ZjMwYzAxZGRhMjMwMGIwNjRiZTIgbGVnYWN5LXRydW5rCis4MTU2NyA5NmE3YTNjYzU4OTdlYjQwOGNjZDQ5NDMzNmMyOTIyODgwZDFhNzFhIGxlZ2FjeS10cnVuaworODE1NjggNmI4OWRlMzZhNzRmYzI5MGZhYWEwYWI4YmQ1MGM0YzU5N2JhYjM5MCBweTNrCis4MTU2OSAwY2NmMGZkYzU5NjY1MmUxMzFiODY4MzVlOGZkYzUzMTM3OGM3NDY3IHJlbGVhc2UyNi1tYWludAorODE1NzAgNGIxNDJmN2IzODEyZDA5OWNiODY0MzA1Y2VhMzYxZWJhOWRkZGZhMSByZWxlYXNlMzEtbWFpbnQKKzgxNTcxIDVjY2M3MWRjYjVkZWE0NDE3ZGI4NWI5NDk4NmQxYjkwMDcwZGIwNWQgbGVnYWN5LXRydW5rCis4MTU3MiBjOWJlY2NiNjNlYTkwOWE0M2MwMzdkZjIyYTMwZjRiZGFhOGMxMmZhIHB5M2sKKzgxNTczIGY1MDFiZTYzODg3OGExNWIyZmNiYzUxMzU5MWY5OWZkNzM4OTJhNjMgcmVsZWFzZTI2LW1haW50Cis4MTU3NCAyNWYyYTBmMGU5ZGViZDMwOGEyMjFiOWJhYWE5NzIyNzVhZTliYWM4IHJlbGVhc2UzMS1tYWludAorODE1NzUgNWNjM2EwYzE0ODAyZWJiYTA1MDYwYWEyNzQ1NDFlMzIzOTEwNmE3OSBweTNrCis4MTU3NiA3ZmU5Yjc5MDA1NGJhZGI4NjU0ZTE4OWE3M2RkMmZkYzBiODU1ODhkIHJlbGVhc2UzMS1tYWludAorODE1NzggOTUyNmE5MDhhMjU4ZGI4NjZiYTY1ZTcyOGNhZjkwMDQyY2JjMDAwZSBsZWdhY3ktdHJ1bmsKKzgxNTc5IDFhNTkyOGIyNTkzYzkwZjc2OGNjMzEzMzRlN2I4YTk3M2M3YjRmY2EgbGVnYWN5LXRydW5rCis4MTU4MCBiZDljYjI0YmE2OGI0MmQ1MzBmYjljNzE5ZjQ2OWViOGQ0YTM1YWMxIHJlbGVhc2UyNi1tYWludAorODE1ODEgNjIxOTQxNTU3ODk4MzZlYzkyNTYxNTU4YjBjMWFlNjQ1ZmUwNDQ1NiBweTNrCis4MTU4MiA3Yzk0Nzc2OGI0MzVkOTM4OTk5NmRkNWFjZjNmOGY4ZTMyZDcyZDY0IGxlZ2FjeS10cnVuaworODE1ODMgZjEyYjAxZTY4ZjY0NGZjMjBkZDk4YjliNDQ5ZGFiMjg2ODEyNDZiNyBweTNrCis4MTU4NCBiNjk3ZTIxZDFlNzg2N2Y5MjJhMjk1ZGM2ZDNmY2JlMzJjYzk3OWZjIGxlZ2FjeS10cnVuaworODE1ODUgZjAwMDc1NGM4OTQzZTE4MDY5MDM0ODgxOWYwNWYwYmJlZWM4ZTE0MiBweTNrCis4MTU4NiA0NDE1NTk5YjcwMTE2ZmU0OTE0OWVjZjY0NGExNmVjMjBjZDc1ZDc4IGxlZ2FjeS10cnVuaworODE1ODcgMmNmYjE4ZjFjMjkzM2NkNTA5YTVhNGE0MGYwYjczNmIwZTJiZjU3MiBsZWdhY3ktdHJ1bmsKKzgxNTg4IDMwOGVkZjExYzdjZmY2ODUyYTYxNDE3YzIwNTQ1MTkxZjMzMzQyNzAgcHkzaworODE1ODkgOWEwNGJkYzQ4MDg5ODNmMmYxN2FhOTU5NmMxNDViOTExYTFiOWQ2MSByZWxlYXNlMzEtbWFpbnQKKzgxNTkwIDg1MmQ1ZWE2MjVlNzQ5NTIzMjU0YWQ4NjBkYTYyNmUyMWM1Zjg5NzQgcHkzaworODE1OTEgNDlhYjVkYmM0ZmFjOWM0M2I0YjQzNDM0MjY4MjFmOGUyYTUyYmFjZSByZWxlYXNlMzEtbWFpbnQKKzgxNTkzIGQ1Yzc5ZDg5YjM5M2FmZTZmNmNmNmZmNmFlZTlhNDgxNzBlMGJhN2QgbGVnYWN5LXRydW5rCis4MTU5NCAyYjU4N2U3ZjAyOTliOWY4ZDYxMTkwYTE5NGEwODc4NTRkYzczMjI3IGxlZ2FjeS10cnVuaworODE1OTUgYjc5OWY4NjJmYjIxOGI0MmJjN2M3NGMyNTJiOTQyMTllYTQ1NTY3MSBweTNrCis4MTU5NiAzMjJiZjRmZjRkM2Q2ZWZhNTQ0OGMyYmE5OWEzOTQyOWNlZmJkNmVjIHJlbGVhc2UyNi1tYWludAorODE1OTcgYTkxNzQ3MzM2ZWFlNjAyNGY2NjM4NjE4MGM3NGMzZTk0ZThkMzdiYiByZWxlYXNlMzEtbWFpbnQKKzgxNTk4IDAzNzJiNGM3YjlmNGY2YTI3ZjNkYWU4NzIxZGQ0ZWQ0MjYzMTkzNjcgbGVnYWN5LXRydW5rCis4MTU5OSAxNjQxOTNhZGU0YmFmMGU3NDY1MzFmZWU2YmFmZTNmZmY2YzRhYTBlIHJlbGVhc2UyNi1tYWludAorODE2MDAgNjNlNzhmY2Y3Zjk0YWNlNjYxYzA3NDdlODk1M2ZjZjIyYjcyNzAyNyBweTNrCis4MTYwMSBhN2E5YjU4ZDFjMTg2NzUyODA3YWNiM2E4M2JhNGJlZjNhNjc5ZjA5IHJlbGVhc2UzMS1tYWludAorODE2MDIgNmU3MWVjYTYyNzhjYjU3NTgzMTkyYjg4YTkwYTdjOWI2OWQxYzhlOSBsZWdhY3ktdHJ1bmsKKzgxNjAzIDVkNDNiOTY2MzZjODg4N2ZjY2NiYTIyOWFmZjRiZjU3OTczYmRiMzAgcmVsZWFzZTI2LW1haW50Cis4MTYwNCAwNDcwZGM2M2QxMmE5ODAzYmVjYjA2MjBiNzg3ZmEzMTk2OTJiZmM3IHB5M2sKKzgxNjA1IDlmYTVlZDRjYTBiYjViNDhjYTBlM2E3Y2ViNWZjZGU5MWE3ZjQ1Y2QgcmVsZWFzZTMxLW1haW50Cis4MTYwNiBlZDc5ZGEzYTU5MWM0YTgwOWI4NjI0ODMwZWNiYWU4ZDZlMzEyOTc0IGxlZ2FjeS10cnVuaworODE2MDcgNmI3YWY1YTI1ZDJlOGQyYTNjMDQ4YzVlZmM2OGY3YjUzOWZmMjZkOSBweTNrCis4MTYwOCAwNWQ2YjI1ZGQxOTcxNWFiODU4N2U4ZTdiN2I4OTY3NTc5NmZiNDliIGxlZ2FjeS10cnVuaworODE2MDkgOWE0YjAyYmFhN2M0MzEzMGU4ZTJiMGJmYWM1NzM1ZGE1ZmVkMzQ3ZCBweTNrCis4MTYxMCAzZWRmYWQyNTQ5YzYxNzhkYTEzNDc0OGM4OTNkN2ZiZTNkZDgxNGM3IGxlZ2FjeS10cnVuaworODE2MTEgNTgzMzc5NTA2MWM1ZDk3MDg1ZTk1OGM3MzQ2ZjFhYzQ3NzU4MGI0ZiBweTNrCis4MTYxMiBlNzY2YzBkODZjZmY5ZDFlNWJhNmUzYTU3Y2NkZDE4MWQwZmJhNTAzIHB5M2sKKzgxNjEzIDY2YjNlZGE2MjgzZmVhYzZhOWE0MDMxZjNlMDNjZDU5NzJlOGI0M2EgcHkzaworODE2MTggMzI0MmEwZDIyZGU2MzhhYjcyZGQ0MTlmOWE0YTJkMmM5ZWQ3NDRmYiByZWxlYXNlMjYtbWFpbnQKKzgxNjE5IGNhYzAwY2JiZTc3MDk0MzM5YmExYWJjMTkzZWRmMWJkMmUyYzkzMGUgcmVsZWFzZTMxLW1haW50Cis4MTYyMCBiMWIzMTc3NTg2NzY1MzJjNjUyZTNmYmMwYmI3MGRlNjE2MzVhOTAxIHJlbGVhc2UzMS1tYWludAorODE2MjEgNzk0NTA0NWMzYTc1OTIwNWUyNWUxNTdhYjYwNzliZTk1MWM3YWI3MCBsZWdhY3ktdHJ1bmsKKzgxNjIyIGM5NjM0NzhiOTA5MmRlY2VmNDEzY2Y2MGE5OTI5MGQ2YTlkMWEzNjMgcmVsZWFzZTI2LW1haW50Cis4MTYyMyA4ZTIxYzY4MzFjN2ZhNmIzZjlkYmRjYmVmNTEzNjE5MTFmMGJkN2E1IHB5M2sKKzgxNjI0IDhhMTNmNzczYTk3NjM5ZTk4ZmM3ZGVhMTdkODU3NjIyZDE2Yjc0YWIgcmVsZWFzZTMxLW1haW50Cis4MTYyNSAzZTY0MjVjMjIxZWNmYzVhNWUwNjAwOGZhM2QzZWEyZTU4YjgyMzgwIHB5M2sKKzgxNjI2IGViYjkxMzBhYjBjNDU4ZmFhMDZlZjUzMTQ5NDlkNjE2N2NmNzViOWIgcmVsZWFzZTI2LW1haW50Cis4MTYyNyA1N2I5MDM1MDM3MmY4YzAyNmY2YzZlNTgwYWVhMGFkYjQ5Mzk4YWM0IHJlbGVhc2UyNi1tYWludAorODE2MjggNzE0NjUzZGQ0YWFkYWQ0NTNjY2FiOWJhY2RlYzExZWUwODNjMzdlMiBweTNrCis4MTYyOSBkYzI3NjhjOTk4ZGUxMjUwYWViZWFmY2ZkY2MyYzM0MzcwYTVkMjJiIHJlbGVhc2UzMS1tYWludAorODE2MzAgNjYxMDlkMGU0ZTZkZjFkZWE0YjdmOThjMGExMWIzYWVhMmYxYTU4NSBweTNrCis4MTYzMSBlYmQ2NWVjNTRkN2U5YmVmNWQ2ZDVhMjhjZDdhMGFjNTIyNjUwMjllIHJlbGVhc2UzMS1tYWludAorODE2MzIgNjJjYTU0MGQ4YjZlNjE1MWFkMTJlOTU5ODIwOWI3MDA0ZjdlOWVkOCBweTNrCis4MTYzMyA5ZjkyY2JhYTUzOWQ2YTQzYzU4MjI5NTgzY2NmYmNhYjNmZWIyZjcxIHJlbGVhc2UzMS1tYWludAorODE2MzQgZjgxMjcxYzE4ZWIwMWFkYzY1OTliOTE2NDhmODFlZmE2MWI0NzhlMCBsZWdhY3ktdHJ1bmsKKzgxNjM1IDUzZWU0NzMyMmRkMmEyYzJhMzQ4MjZiMWM0MzUwNDk2MTc2NzRiYzIgbGVnYWN5LXRydW5rCis4MTYzNiBkNjliMWEyZDliZjBlZjEwNDgxZTM0N2Y4ZjMxZmJmMDk0NmFhN2U0IGxlZ2FjeS10cnVuaworODE2MzcgZDQyNjBkY2FmYzdmYjYyYjUzNzAzYmM0NDgwYWIwYjJiMTRmMmZhZSByZWxlYXNlMjYtbWFpbnQKKzgxNjM4IDljMGMyN2E5YjcxYzc5Y2YyMTE2ZmU2Yzk3MzRmMzhjMmMxYmJhNjAgcHkzaworODE2MzkgMTA5Nzc3MDhkYjJlYWFiM2VjOTU0ZDlmMGMwNzFiYTYzODc0MjRkOSByZWxlYXNlMzEtbWFpbnQKKzgxNjQwIDg5OGViYjI5OTBkZmE1OWYxOWE3ZmM3OWEyMGU2OWJlYmY3YjRiNzkgbGVnYWN5LXRydW5rCis4MTY0MSAyZGU3MTIzM2I2OWIwZDIwMTZlYzZhYjZjYzg1NzE1NjQ1YWVlOTk5IHJlbGVhc2UyNi1tYWludAorODE2NDIgZTRjYmJiYjc4NjNiOTJkYjliYTY3M2Q5ZWNjMWJmNzI5ZTcwMmI0ZCBweTNrCis4MTY0MyBjZmUxMzg2MDBmNjRjNGM3YjE1ZTFlMWFjODBiMjdlY2Y0N2YzNjhiIHJlbGVhc2UzMS1tYWludAorODE2NDQgYTAzYjk1NjgzNTljNTVkZGVjMjk3YTNkZmVjNGVlZTQ5ODFlNDkwMSByZWxlYXNlMjYtbWFpbnQKKzgxNjQ1IDhlMjk0ZGYwZTM4MmE0NmIxYWUwNjJlMWU4MjFjOGI0ZGJjNmYzN2QgbGVnYWN5LXRydW5rCis4MTY0NiA3YjExMjZiNWJlMmQ2ZjBkMTQ1MzAzOTBkMDczYTNlNzFiN2EwMzFlIHJlbGVhc2UyNi1tYWludAorODE2NDcgMzc5ZWUyMTIxNTNlMDNmOGFmMGY2MGNjNmZiNjdkYmM3YWNmNTI2YyBweTNrCis4MTY0OCBkMjBkYjNlZTg0NTc1NWY1ZTY3YjUwY2E2OWViNjY1YzI5N2RmYWVlIHJlbGVhc2UzMS1tYWludAorODE2NDkgYmQ0N2NkMWY5YmMyZThiY2MyNjMwOTgwOWFkZWE1MGIxY2JjMmFiMiBsZWdhY3ktdHJ1bmsKKzgxNjUwIDM0YTYzN2JmZDRiZTc4YjllNDYxZDRmMzMzYzQwY2NlODdlODFmNmUgcHkzaworODE2NTEgZWE0M2I0MDY0NTBmOTRmYzI2YmVlZTU3ZThmMjNjMWY3NjRkYmFmMCBsZWdhY3ktdHJ1bmsKKzgxNjUyIDNiODA3MDkxMzE2OTQ5NmY4YWIzY2UwNTQ5MGE0OTcyNTQyYzc1Y2YgbGVnYWN5LXRydW5rCis4MTY1MyBiNDdjNGNmMjVmMDIyZDc1OTA2MDQxZTMzODZhODgyNjdjOGU3ZTg5IHJlbGVhc2UyNi1tYWludAorODE2NTQgYzNhZGI5MWNhNTg5NDcwOTllYmZkOGYxMTVkMjM1MzkwNDZkNDJhYyBweTNrCis4MTY1NSBkZmY1ZjA5YjVhODYwMTgyZGNmNmNhNzMyZjQxYTU1NTA0NjVlNDUyIHJlbGVhc2UzMS1tYWludAorODE2NTYgOTdlZGYwZWEwM2Y5YjE0ZTJhNDlkNDhhNmFhMTVjYTgwY2YzMzJlNiBweTNrCis4MTY1NyBkZmJkMzQ1ZjUzZjAzYTU4NWU3YzA0MjI2NWQ3MGJkM2M1ZjAyMzQ3IHJlbGVhc2UzMS1tYWludAorODE2NTggNmIwNzI5NGIxMzUyMGUyZGY1NjU2ZDNkMGJkMTI1YzU2N2VkYjJjYiBsZWdhY3ktdHJ1bmsKKzgxNjU5IGRkMzc4Yjg4NWI5NDAzNjU0MGYyYzk1OTUwMWFhZTc0MmU5Zjk1YjQgcmVsZWFzZTI2LW1haW50Cis4MTY2MCBiYjYzZWFlZmM1YTY4ZDc4ZmRkNWFhODIyYjJlNjJjOTRjOGI0YjcyIHB5M2sKKzgxNjYxIDgzM2RlNzk4ODVlNGZjOTJjNjg0MGY4YTEyZjdiZmQ2ZjE5MjUyNWYgcmVsZWFzZTMxLW1haW50Cis4MTY2MiBmNmU5MDE4MjY4NmJjNjE1ZDQ3ZWU4NDk2YzhkOTA5ODExMTNkODc5IGxlZ2FjeS10cnVuaworODE2NjMgMjkxYjBiYjYzZmI3NmJhZDg0MDAzMTFhYzU3NTcyMTg3OGY4ODU5ZSBsZWdhY3ktdHJ1bmsKKzgxNjY0IGVkOTgzYjExNmE3ZGUwMGFkNzFiMmY1NzBjNGNjNzk3NTQ5MGQxMjEgcmVsZWFzZTI2LW1haW50Cis4MTY2NSA4YmJkNGViNGVmYzQxZTNjMzc3N2MzNWIyM2RlYWQxYTM4MzRmZDM3IHB5M2sKKzgxNjY2IGNlYTVlZjY4MmJkZDRjNjgzNTUwYTBiOTJhOWRmZDcwZDdiNWNiNGMgcmVsZWFzZTMxLW1haW50Cis4MTY2NyA5YWY2MDBhNjYxMTU3MDEwODlmYzc1Y2Q2Y2NmMDQ4NWNjNWY4Zjc3IGxlZ2FjeS10cnVuaworODE2NjggYWUxMWY1NmFkNWQ3NDdkYWYyMDcxYjdiZjczMGZiNmQ3NGU5NDk3YiByZWxlYXNlMjYtbWFpbnQKKzgxNjY5IDFiNGMzMDc0MmEyNGEzYzY3OWU4MGI1MjhkOTBlM2UyODJiYjI5Y2IgbGVnYWN5LXRydW5rCis4MTY3MCBiZmJmMmQ2NTBmMjY5MzRkNzI4OTlkZGVkZmM4ZTFmZDMyYTNhMjEzIHB5M2sKKzgxNjcxIDA1MzRjZTAxYmE1MDI5YjNmNTQ2MWJhNTNmYTRlMjI0NmIzNjNmY2MgcmVsZWFzZTMxLW1haW50Cis4MTY3MiA4ODI1YTdlNmE1ZjAxZTY5N2QzNjFlZmE1NDU5ZWIyMWJjNzU5NTZkIGxlZ2FjeS10cnVuaworODE2NzMgMzc5N2VlNTdkM2Q2ZTM4NWJlYTc0MTQ2M2VkNzI2ZjgzYjJiOGY2MSBweTNrCis4MTY3NCAxNmZiZGYxMGQxMDAxOGZjY2RjODNmMTMwNTNkZTY5MTIxYzM0NWZhIHJlbGVhc2UyNi1tYWludAorODE2NzUgM2QxMWJhNzk4OWRmMGI1MDhlYzkwZjZhZDg1MzkwMGI2MzdlMDMxMyBsZWdhY3ktdHJ1bmsKKzgxNjc2IDVlMjhhM2RmZGVlZjNmNGYxYzY3NDI1YWZkNjQ0OGFkYzA5ZWNiZjQgcmVsZWFzZTI2LW1haW50Cis4MTY3NyAyNWI0MTYzZmZlM2ZkMmU2OWQ3NWJlZTgwMjdjNGE0MzBiZTZjMDE1IHJlbGVhc2UzMS1tYWludAorODE2NzggMzhkZGVjY2YwMmE5NDIyN2M1MmVmNGZkN2M5NzkwMGZlNDJjNTMyMCBsZWdhY3ktdHJ1bmsKKzgxNjc5IDExYWNjNTdmNTgwNGNhYmMwYzA4NGRjZmY2NWQwMTA1ZGFlNTM5MjkgbGVnYWN5LXRydW5rCis4MTY4MCA2ZTEyMGQ5MzExMmVjYTQyZjdmNDc5NjUwYmQ4OTBiMzU4NTVlNzNhIGxlZ2FjeS10cnVuaworODE2ODEgNTMyZTllNmFjODI1ZjFjZmIzNmFmNzQ2M2ZkOGI3ZmI4ZDdiNWYxNCBsZWdhY3ktdHJ1bmsKKzgxNjgyIDI2ODAzMTY4Y2U4YTc0NzJkZjVhZGFjOTNhODkwMzhhZWQ4YTkwODIgcHkzaworODE2ODMgY2I0ZmEzZTRiOGQ1NzY4MDE5YTY5NTRmNzM1ZmFiNDViOWQxZGFmNCBsZWdhY3ktdHJ1bmsKKzgxNjg0IGRkNjYzNjgyMTdjMTYyNmUzMWY0YmViZDg0M2JjOWFlZDgzZGExMDggbGVnYWN5LXRydW5rCis4MTY4NSAyMmMwZTIyOGQ1YTdjMTJmNjM0MzYzMWEzMDRhYmQ4YjY5NGJiYjFmIHB5M2sKKzgxNjg2IGJmMjEwM2EyMmUwMDc4ZTZhM2Q0YTVkMmIzYTkxNGJkMzBmOWUzNGUgcmVsZWFzZTMxLW1haW50Cis4MTY4NyAzYjY3ZmEzNTg1ZjA3YzU1MDdlOTE1YjYwMzgxNzVkYmNjNjllZjQ2IGxlZ2FjeS10cnVuaworODE2ODggOWZhNTU5MDI1OWY0NjRiMGQ1NGFkYWE0OTU0ZmE1ODQ5ZDQ4NGYzMiByZWxlYXNlMjYtbWFpbnQKKzgxNjg5IDA3N2QyOTM4NDM5OTE4ZDYzYWNkMDFmNDIxZDNjOTk1ODliYjZkMDYgcHkzaworODE2OTAgN2I1OWIxZjYzM2NiNGUyNjhhMmZkMDhiNjkyNzM3YTNmMTQ4OGJhNSByZWxlYXNlMzEtbWFpbnQKKzgxNjkxIGVhY2JlNzc0ZjAyOWU0ZDg5ZTdmYTQ3N2FjOWI0M2U1MThjNDYwYTIgbGVnYWN5LXRydW5rCis4MTY5MiA0MTk5MDFlNjVkZDIxOWRhNjhlZWYwYmFmYTQ5NjY2N2JmODIzM2NkIGxlZ2FjeS10cnVuaworODE2OTMgODI0NTY4M2U2ZWM2MTBjYmU5MGY3M2E5YTQ4OWEwM2QzNTM4ZTA5NSByZWxlYXNlMjYtbWFpbnQKKzgxNjk0IDEwOWE5OGY5ZmNkZGQzNGJiYTk2ZWRjZjUwNWUyYmM5YWFhODhjY2MgcHkzaworODE2OTUgY2QxOTJkMWZjZDY3NjNiMWMzYzVkMWJhMDdjNzNiODI0NmM2NjA0YyBweTNrCis4MTY5NiA4NDk4OGJiOTFmYmY2Mzk5YjhhYzYyZjJjYmQ4NjBhNDYyNDRlNzdmIHJlbGVhc2UzMS1tYWludAorODE2OTcgYzE2MGFmMDljNWIwMTY1ZWYzZDEyZGQ3NTEzMTlmMDdhMzkxNzg1OSBsZWdhY3ktdHJ1bmsKKzgxNjk4IDJiMjViNTBlYWVhZGQ1NTg5YzU5OTdhYzRiNzI4MjgzYTUzMjIzN2QgcHkzaworODE2OTkgMGM3NzY0YWE2OTRhMTg2YTQxMDVkNDliYTRkOTBkYWY1MDg2MzA5MSBweTNrCis4MTcwMCA0YzBiMmJiZGQ4MmQxNzA0N2E4YzFmNTkyODEwYTZhOGZhYzQ0M2UxIGxlZ2FjeS10cnVuaworODE3MDEgYTgwYzFiOTY0YTZmZTk2ZmI5ZmJiODZkN2RkMDBhZDdlZjU1ZjM2NyBsZWdhY3ktdHJ1bmsKKzgxNzAyIGJiYWY2MDYyZjI0MTQzNmM5YzA4ODAzODE5YTA1NDg1NmY0NzYzYTkgcmVsZWFzZTI2LW1haW50Cis4MTcwMyBmMjE0ZTFiZjAzMWQyOTc3NTlkMjcxZmRmMThjMjZlZjhhMDMzZTczIHB5M2sKKzgxNzA0IDUyZTkyZTc3YjMxMTRkNDdmOTMxNzI3MzMwNDAyZjA4OGNmODAzYmYgcmVsZWFzZTMxLW1haW50Cis4MTcwNSA3MzQ0NDhlODU2YWE3YzZjZWEwMTBiYzE1MWE4YmRlNzViZTM0YWM2IGxlZ2FjeS10cnVuaworODE3MDYgMDkxNzZkMGJkZTM4NDllMGQxZTllMzk5ZjhiMjM5MzNmYWZmODYzNSBsZWdhY3ktdHJ1bmsKKzgxNzA3IGQ3NTQxYTQ5MGNiZDg0MjM1ZGVlN2RlMjFhYmI3NDk2NWIxYzM1ZTIgbGVnYWN5LXRydW5rCis4MTcwOCA5YmI1YzIyZWYxMzQyM2M1ZjIyYzQyNmUxODU5YjFlZjdhOWZkMjVkIHB5M2sKKzgxNzA5IDVjZGYyNjU3NmU4ZWExZmQ0MDQxNzRhOWUzYjc5YTM0NjQyYjVjMmIgbGVnYWN5LXRydW5rCis4MTcxMCAxNDJjYjZmNjBmZDdlOTUxYzUyYzc1MzdkNmRlZTYyMDQ0NWY0ZmZjIGxlZ2FjeS10cnVuaworODE3MTEgMjNlZDgzNzYxNWFhYjQ5ZTEwNWUwOTM2MTAxNjI4M2I2MjYyZmRkMiBweTNrCis4MTcxMiBkZGE5YmVlNWM4NGEwMDBkMDhjMTljOWJhNjBkNzZlZDAxODQ1MTIxIGxlZ2FjeS10cnVuaworODE3MTMgNjA2MTNlODFmYjFlODUyZDEzYmM3ZWE3MjlmZTA3ZTU2NGFiZDY5NiBweTNrCis4MTcxNCA1OTA5ZTFmNzZiZTc0MGQ2MmMyYTA4NDRlMDdhNzBlN2M5MGI4ODJlIHB5M2stY2RlY2ltYWwKKzgxNzE1IDJiNTcwMmQ4OGYyNzVlOGZhMDc5YmY3ZWUyOGZhYjdhZDg0MGEzZjUgcHkzay1jZGVjaW1hbAorODE3MTYgYzg4NjQ4Mjc3MTM4ZjFiYzViNmMwYmM1MGYyOWQ0MDEzNjY5YTJhMSBweTNrLWNkZWNpbWFsCis4MTcxNyA2YjUwMTNmZWE4MWJiZjBlZjU0Nzg4MWJmMDNjMDExZGFiYjE0ZDliIHB5M2stY2RlY2ltYWwKKzgxNzE4IDYxZjU0NmU4NjFjMTJmNzYxN2I5OGZjZmU1OGU1MzZiYzkwMWY0ZjYgcHkzay1jZGVjaW1hbAorODE3MTkgMDgyOWY2MDIwODBiOWRiNzcyZTlmNGMyZDY3MWNmMzhlMmZlM2ZkOSBweTNrLWNkZWNpbWFsCis4MTcyMCA2ZjFmMDVjNzI1YjdjMGY1NzdhMWQ2YmVhM2ZhYmZkMDUyYjk1ZTgyIHB5M2stY2RlY2ltYWwKKzgxNzIxIDFmZDM2NWQzNjk1OTYyZjMxYzlhMmU0NjhlOTNkYTBmMTExMDhhMTAgcHkzay1jZGVjaW1hbAorODE3MjIgYTQwOWE1YWI4M2JiY2IyYzc4ZTVjM2Q5NTdiZTVhYjczODYxNWZkMSBweTNrLWNkZWNpbWFsCis4MTcyMyBhNTYxMDU0MDFkNTI2ZDQyMzdkZDFiZjNmZWE4YmJhZDk0ODllYTA3IHB5M2stY2RlY2ltYWwKKzgxNzI0IDA5YzA1YWQ0NWI1ZjBiZGY3MTg5MWMwYjgwYzk5Y2ZmNzFlNjhlOTcgbGVnYWN5LXRydW5rCis4MTcyNSAwOWMwNmNhMjdmN2Y4NDZjZWQzODM2MGE5YzZiNWVhY2ZhNTJkOTE2IHB5M2sKKzgxNzI2IDQzZTlhM2U2MTc5NmU2ZDhkMDAyZDYxMmMyMzdlMzZkMmY1ODYxY2IgcHkzay1jZGVjaW1hbAorODE3MjcgY2I1MGRiOTQxMmM3MDRjOGU3N2E0NDAxNWQxNGJkYTViYTNlY2M5OCBweTNrLWNkZWNpbWFsCis4MTcyOCBiZTU4ODE0ZTI1ZDc4NTE1MmQ4ZGNiMjhmOWIxNjQyMTgyYmVkMTFlIGxlZ2FjeS10cnVuaworODE3MjkgM2E1NzFmZDhjM2JlYTBiMWEwYWQzMTY5ZTU2YTU3YThmMDY3OTA3ZiBweTNrLWNkZWNpbWFsCis4MTczMCBlYzE3NGY0MmYxNWJkOTBkZGYyZDE1NmFkMTdhZGUwZjNhYzEwZWM1IHB5M2sKKzgxNzMxIDBlM2VjNDE4ODQ1YWRjNzU1NzhjZjlkMWJiN2Q4MmZhMWI1NWNiNTUgcHkzaworODE3MzIgYWE1Y2U4NjE1YzRmYzcwNTI2ZWNkNDkxZGFlZjg1NWFjZWI5MWUyYSBweTNrLWNkZWNpbWFsCis4MTczMyAyZjI4MmY4ZjkzODg0OGQzMjEwZmMzYmIyNTBiNWIxMTZlNmE0YTBjIHB5M2stY2RlY2ltYWwKKzgxNzM0IDc2Y2Y0YWNmN2I0M2YyZDYyNjIzYzU1OTIwMGMxZjg2ZDdlMjhlYjMgcHkzay1jZGVjaW1hbAorODE3MzUgOTg2YmEwZWMyYzU1ZjM1MDU1ZTBjOWFmYTE1OGNlMWZjNjUzMTU4ZCBsZWdhY3ktdHJ1bmsKKzgxNzM2IDhmYTRhNWU1YWY1NTJkZjc4ZDhlNDNlZDgzMGViZTAwYjE5NTZlMWYgbGVnYWN5LXRydW5rCis4MTczNyAwNmJkNGE0NDgzOWQ5NmQ1NDYwYWEyMzQ0MmI2NTg3YjY3MTViMGY0IHB5M2sKKzgxNzM4IDcyZGMwZWYzOTRhY2JiNDY0ZWJmYWNiMGQ1YjE4OGEyNjAwMjRhMTMgcmVsZWFzZTI2LW1haW50Cis4MTczOSBmODZjNmE2ZTE3NDQxNDgyMjM2OGQxZTMyYzViNTBhNjRhYzJjNTIxIGxlZ2FjeS10cnVuaworODE3NDAgNjdjMzNjYjk2MjJkYThlYzQyNjU0NmYwY2Y1NDY5MzQ1NGM4MGMzOCBsZWdhY3ktdHJ1bmsKKzgxNzQxIGUxMmQ4N2M0NTU5MTk4ZTE2ZWM2ZDEyMDAzYTI2OTMxZWJiMTRkYjAgcmVsZWFzZTI2LW1haW50Cis4MTc0MiAxYzMwZjllYjQwYjgyNjA3MmJkOTY2NDc2Zjg4YzU5YTEzZjk2ZGNmIHB5M2sKKzgxNzQzIDkxMjUxN2NjZGIzZmQ2ZmI4NjY0NmVhYjBlNTIwODBlNDgwNjVhNGEgcHkzaworODE3NDQgMzcyMWQ0ZTViMmVlZDM3NDhkZDBkYzI0OWU4OTk0OWEzMGI5Mjg0MyBsZWdhY3ktdHJ1bmsKKzgxNzQ1IDM2NjJkMmI1YWZhYWVkZGI1ZGRkYzZjODg4OTc5MGZmNGY1YWQ3NGQgcmVsZWFzZTI2LW1haW50Cis4MTc0NiBkMGQwNTdiNWQzNjEzMjg1YTgyYjc4ZWU4NzQzODNlYzhjNGVjOTRlIHB5M2sKKzgxNzQ3IDhiODcwMTU1MTI1MzlhMDViZDBjNzg3ZjU5ODY5M2RjYWYzZDAxOWYgbGVnYWN5LXRydW5rCis4MTc0OCBjZTkyMDk4MTFjMGFhY2ZhMTUwM2M4MGVhM2JkZjRiOWZjMjFhYjE1IHB5M2sKKzgxNzQ5IDRhMTE1MjI5ODBiN2I4ZTUzNjgwZWI5Y2Y1ZDkwZDhhNzgyMTdiYjUgbGVnYWN5LXRydW5rCis4MTc1MCBhZjJiZGU3MmNlNjFhMmMzMjczMDg0NjQwMTIzYTQ3ODU3Y2IwNmE2IHJlbGVhc2UyNi1tYWludAorODE3NTEgNWUxYjNiNjM0ZDUzNDY0OTJiN2U3ZGYwZDVmNDhjYjFkYWNiZjJjNCBweTNrCis4MTc1MiA2MTBiYTk5YjhkMGRhM2QwMmJlZjFhYTZmMjcyN2QyMzcyMTk2ZTY5IGxlZ2FjeS10cnVuaworODE3NTMgMmQyYjM4MjRlMzlhNTEwNDMxZDYwZmQwYzdiNDc4YTYyODQ5ZGZmMyBsZWdhY3ktdHJ1bmsKKzgxNzU0IDNkNGYxYzI1OWQyZDBhYjA0MWQ4NTU4M2I3OGFjOGU5M2IxYTk1MmMgcHkzaworODE3NTUgOWMzMDkxMDI0YmM4NDg2ZDYzNDJiMWNlYzA2OGEwMGFhMjQzOThhMSBweTNrCis4MTc1NiBjYTI2M2QyMDA1ZTc2MTFlNWM2NDRhMDg0ODY5Y2FlYjgxYTE0ZWU5IGxlZ2FjeS10cnVuaworODE3NTcgMGE0YjMzZTRlZTIzNjM2NTIyNzQ2ZmEzZDIyOTQwMTdjYTM4YmM2YiBweTNrCis4MTc1OCA1MDMyZjFkNWExZTE1YzE4MzU5MWM0NTE3YzdlNDQ2OGZjOTA0MGI4IGxlZ2FjeS10cnVuaworODE3NTkgYzFjYWVlMzI1NDRmYjc5Zjc0ZmM4ZjBjODYyZGE0ZWRhMTZiNDU0NSBsZWdhY3ktdHJ1bmsKKzgxNzYwIDFkOWI3ZDA1MmJjYzVmNTcyMjEwNGI3MzY4NDhjZjQyYjQ0ZGIzMzIgbGVnYWN5LXRydW5rCis4MTc2MSA3NDJkMzI5ZGZkZmQ5NWNmMDA1M2I1MjQ2MzQzNWFiMjEwYThmNmMwIGxlZ2FjeS10cnVuaworODE3NjIgZGE3YThmZjc2NDk5NzZjYWU0ZjljMWYwZWU3Yjc0OTBkOGQyYjc4MSBweTNrCis4MTc2MyBkNzg3MmRkYjRiOTgwODA4YWY1OGIwMzZkMzNmMTM1NzJkNzhlOTU5IGxlZ2FjeS10cnVuaworODE3NjQgY2RjN2NhOGRiOGQ2YWI0NDk2MGRlY2UyMzRmOTZlZThiMjUxZTc3ZSBsZWdhY3ktdHJ1bmsKKzgxNzY1IGUwZGUzMzc2N2MyOThjZGM5ZjAxNTZjNjk3YzkzYzVmNTI2OWI4NWQgcHkzaworODE3NjYgMTQxMGFjNjBhNzU0MTIxZjkwMGIzZTA2YTk4ZTcxZDc5YjYwMGRjYyBweTNrCis4MTc2NyAzZTBiYzBlMTdmNTYwZWQ0ZDcyZmRmYTliYmY4NDA5ZTRiZjNhZWQ3IGxlZ2FjeS10cnVuaworODE3NjggMjZiYjUzOGVmNmVhNTgzMzMxMzUxMzAwNTFiZDJjMmI3ODdlNzg0NyBweTNrCis4MTc2OSBlMWNhZWQ2OTU0NDgxZmNlNjFkMmNmY2Q2MmQ4ZGNjNWExNjQ3MTE5IGxlZ2FjeS10cnVuaworODE3NzAgNGRmZDkxNzQyZWI5YmJlMjFiMzNhMWQxYmU4Mjc0MThjYmQzMzBlMCBsZWdhY3ktdHJ1bmsKKzgxNzcxIGQxM2RlYzE0NjhiODc0ODljMDZiNDQ1NjRhZjUyZDI4NWE3NDBiYmMgcHkzaworODE3NzIgY2Q4ZWUwMTk5ODlkMTc1NTdmNjZlOGFhNTBiODRhMWE5ZWEyYjIzMCBsZWdhY3ktdHJ1bmsKKzgxNzczIGZkZGEzZjQ2MTQyZTRmOTdiMTQ2NGExYWI1OGU5MDc0NzI1ZDA2ZGEgbGVnYWN5LXRydW5rCis4MTc3NCAwZTdjN2YxOGNkMjRiMDNlY2QyZmNjOGRjMTkwM2EwZDUyNDA1MGYyIGxlZ2FjeS10cnVuaworODE3NzUgMzgxYzVlZWI1MTEwMzhkMDkxZDhlMDgwOGM0Yjg1MDg3ZWQyZjY4NCBsZWdhY3ktdHJ1bmsKKzgxNzc2IDZhMjhlZjI5YjExMDM5NDQzNTFlMmRkYzEzMGFkMGJlMjlmNzcxZmEgbGVnYWN5LXRydW5rCis4MTc3NyA1ODliNjExZDdiNGZhMjhjNzIyN2I0NjQ4MTc0NTI4ZTFmYjJhNTFiIGxlZ2FjeS10cnVuaworODE3NzggMzAxYjc4Y2M5OTliMjliZjFhNGM0YTZkNTk2MTg1NWNjN2VjYWUzNyBweTNrCis4MTc3OSA2OGZkMjI1OTVkYjU3NzYwOTIzOThlZWM0MTUzNTAyZmE0MTQ3NjIzIHB5M2sKKzgxNzgwIGM0ZDRkZGFjZjlhNTk2ODZhMDdiNWFiOGI4OTM4MmViOTA4Y2JiNTUgcHkzaworODE3ODEgODQ5NjUwNTA3MDUyZTZmNDZlNDdkY2UxYmQ3MTMzN2M0NzM1NWIxNSBweTNrCis4MTc4MiA0NzVjYmRlMWVkMTlhN2Y0MGUyNDAyOTRmNDJkYTVhNjcyOWU4MTU4IHB5M2sKKzgxNzgzIDZhMWQ2ZDhjYmM1MjEzYTY0OTQyOTdjMjVhNGI2YjAzNjkyZjY5YjEgcmVsZWFzZTMxLW1haW50Cis4MTc4NCAzMTQzMzk2YTk0ZjFlZTM1ZWI2ZjYyMmVlMmI3YzgwNzM2NDJiMzA3IHB5M2stY2RlY2ltYWwKKzgxNzg1IDQ5NWJiNzNiMWNmMWYzYTU2NjYyZmZlMmZkZTgzZTNmNjNmN2I1NWQgcHkzay1jZGVjaW1hbAorODE3ODYgNDNhM2YyYWNjOTRlYzJlMTYwZTAwOGY1MTlmYWNlOTY2NGFkZDQ0OSBweTNrLWNkZWNpbWFsCis4MTc4NyAzMDM4ZWFjNDJmN2RjN2U0ZGQwODliNTBhN2Q4MTBkMWU0NmZlZGIxIHB5M2stY2RlY2ltYWwKKzgxNzg4IGY2ZGFmNTMwZjg5ZWE2M2RjNmU2MTQwNzI5OGFhNzM3YWU2M2RlYmYgbGVnYWN5LXRydW5rCis4MTc4OSBlZDBjYTM4OTIxYzc2NzUzMTUzNjg5Y2FjNGVmNTQyMzFlNGQ4ODdlIHJlbGVhc2UyNi1tYWludAorODE3OTAgZGY4ZGM4ZDFkNTcxYzZkMDA1MWMxNmU2YTEwZjllYjVlYjY2YTExOSBweTNrCis4MTc5MSA3MzRmZWQ1NjEzYWVmYTk0Y2YzNGI5MGFlOWU1OWE5MGRjZDUwZmM1IHJlbGVhc2UzMS1tYWludAorODE3OTIgOWQ0OWI3NDQwNzhjNjVkZjdhMTY5MmRjMGRlOGU1NGI3ZjYwMmE3YyBweTNrCis4MTc5MyBjZWYzNzRiMTRmNWJlZTUzNTA3MjAyMGE5NDFkNDBmY2JhOWYwN2QzIHJlbGVhc2UzMS1tYWludAorODE3OTQgYzNmMmVkNGQ4ZTY1ZWNlYTQxZGVkYjJhYTUyZDYzZmM1NzQ3NmU1MSBweTNrCis4MTc5NSBjMzJiMDM4ZTAwMjJlNmUzNDNlMzVjYjY3NzI3NmY3YTIyZmJmMGQ4IHJlbGVhc2UzMS1tYWludAorODE3OTYgZWQyNmVhNzg1MzZiYTNiOWI3OWU0NDYyNjNmMTdjZGYxMGMzZDc4OSBweTNrLWNkZWNpbWFsCis4MTc5NyBmZjhlYzk0YmVhZWFkOGU3MjMxNzUzNjAwNjliNmUzMTFmMjFjYzQzIHB5M2stY2RlY2ltYWwKKzgxNzk4IGIxYjdhZjUxODNlMzViY2QzNzlmNmEyYTYzZGY1NWE0YzJlM2Q4MDUgcHkzay1jZGVjaW1hbAorODE3OTkgNzM2ZmEzNmVhODFlMjAyZGI5OTE5ZDIxOWVhMmQ2ZjhmYTFhYWE0NCBweTNrLWNkZWNpbWFsCis4MTgwMCBhMjJkODk4ODg5OTUwMWI2Mzk3NTg3ZWIyZWU5MmZiZTUyOTAyOTYxIHB5M2stY2RlY2ltYWwKKzgxODAxIDZlOGRjYjhlOWU2YmZiOTg1MTMwM2IxZjExNmE1MWQ5ZmQ3MzJiMTggbGVnYWN5LXRydW5rCis4MTgwMiAyZDc0MzBkZWRlYzM4MzYzZWFmMDAzMDg0Y2FlMWRhNjA3YmEwMTA1IHB5M2stY2RlY2ltYWwKKzgxODAzIGZlMmEwZTFlYzk1ZGNmOTAxZjlkNGViZGVmNTJhYmMwNTEwNzE1YjkgcHkzay1jZGVjaW1hbAorODE4MDQgMGVmYTFhZDhiYjc1MDZhYjE1NzIyOTA0MWVkZjNhY2RkMmZjMTZiNyBweTNrLWNkZWNpbWFsCis4MTgwNSBiMTFjYzFmMWE2OThjNTA5YTE1ODg4NjljNmFiYjZjNjEzZTEwNDAwIHB5M2stY2RlY2ltYWwKKzgxODA2IDBkOTM0NzkzNGNjNWI0YTkyYWEyNjU0ZTYwNTYwNDQ3NTVhMDQ5ZWEgcHkzaworODE4MDcgNjAwYzIzMTI3MjA3ZDgyMDY1NzY4ODliNWVhMmI1ZTEwYmM4NmQzYSBweTNrCis4MTgwOCBmZDhmY2NiMmVlOTA4Y2Q0ZmQ3MGJiN2IxYzAwZTAwNzNlYzJhM2I1IHJlbGVhc2UzMS1tYWludAorODE4MDkgMWExMDE2ZmEwNzIzMDBmYTY5NzlmY2MwZmNkMDc4ZGZjZGFiNjJkNSBweTNrCis4MTgxMCBlOTMyZGM4ODg1MTdiMWY4N2YzNmM5MWYzNGI5MzRiYTU3MTQyZDJiIHJlbGVhc2UzMS1tYWludAorODE4MTEgOWNlNTU2M2VlY2ZiNzk0MGRlZTk2OTgyMjBmMDA1NzI1NDNjYmNjZiBweTNrCis4MTgxMiA2MzQyZDE0NjdhNGQ0NDhkMjhmYTczNGFkOGUzMGZhMWMxM2VmYTdhIHJlbGVhc2UzMS1tYWludAorODE4MTMgYTIxNDVhMDZhNzI2OGYyMDMwOTA5YjQxNjdmZGEyYWUzZGI3YWYwNSBsZWdhY3ktdHJ1bmsKKzgxODE0IDk1Y2MxZTZkMDI0Njk0YWE1ZmJiZWY4NzFiNzQ0OWZjMzk1ZjliNmMgcHkzaworODE4MTUgNTM4MTk2Y2Y5MWZmNzgyOTEzNmRlYjMzNDUwNDczYTMyYzBkMjRlYyByZWxlYXNlMjYtbWFpbnQKKzgxODE2IDJmNjFlM2ExNDZiMWNkY2U0MTFiOTU2NzQ0NTA3Yzk0ZmQ1OGJkZjIgcHkzaworODE4MTcgZjVjZTVlMWJiMjNhMjEzNmNkOGZkMDMyOWI4ZmE3NTk5MzExY2UxMSBsZWdhY3ktdHJ1bmsKKzgxODE4IGYyYzRkZDIyY2E2MWEyMTA3NWRhZjgzMjQyNGE2ZWMxMjczMmY0YzEgcHkzaworODE4MTkgODIyMjgwY2VlMDRiNTI3ZjhjMjhhZTdlODVjMjM1YjU1YTcwYmNjZSByZWxlYXNlMjYtbWFpbnQKKzgxODIwIDI2ZmFjNzRlYmFiMzI5ZTFkMWM3YTRkZWJmNjgzMjFhYmFkZjRhYTIgbGVnYWN5LXRydW5rCis4MTgyMSBmZWNkOGZiN2JiZWY1ZGIwNzdlZDc5OTgzYjY3ZDc0NDNkZWY3ZTRlIHB5M2sKKzgxODIyIGI0NGEyZmU1MzFlZjUxZmE3ODUwNjNkMTMwY2Y4NWU5OTliZjEwMmMgcmVsZWFzZTI2LW1haW50Cis4MTgyMyBkMzc5N2U5ZGZkMmMxOTc1ODdjMGQyNjgxNjc3NDlkOTQyYzk1MDNhIHB5M2sKKzgxODI0IGRkZGI5OGVmM2JlNWVmOTA2NmQ1NjEzZTZlMjc2MzA1OGVlZGI3ZWMgbGVnYWN5LXRydW5rCis4MTgyNSBlNWYwYjI3YmMxNzgzNzk4YzY1ZThmYjRlNTcxZjg1ZWYyMTI4NTcxIGxlZ2FjeS10cnVuaworODE4MjYgODI1ZjY1NDQ1YTBhMDFlZjFhNzUwYWVkZmNhNTI1ZTZmNmFkOTZhMyBweTNrCis4MTgyNyA1YzZlNzVhOGQ2MWQ1NWU2M2ZjNzkzMzdlZmRjN2JkODY2ZTU3ZmM5IHB5M2sKKzgxODI4IDNlODYyNTQwMzliOTA5NmZhNDg4NjRlZjEwMWQ5MTU3NTdiMjQ2YzcgcmVsZWFzZTI2LW1haW50Cis4MTgyOSAyNzE4MTU4YzU4ZDAwZmZjNzhiYjRjYWZlOTA2MzkxNmQwMWU4NGE4IHB5M2sKKzgxODMwIGEzNjBlMTE0ODY2YjU1NGQ4ZmYxYjFhZGM1YWM0YzgzOWQzYmNiNDAgcHkzaworODE4MzEgNGY2MTMzMmFmMzVlNjlmYmIxNGVjYjhjNzA1OGEyZGRiMjg0OWU0NSBweTNrCis4MTgzMiBiOTUxODYwNmNkZGNlOTFkMWFlOTcwMzNiYzYxNDVkNTczMzU3ZmZmIHB5M2sKKzgxODMzIGQyMjY0ZjlhYzYxZWNmZDZjZjA4MzMzZjJkYjNmMjczNWYwMDQ0ZmMgcmVsZWFzZTMxLW1haW50Cis4MTgzNCAzNWI0YzM1NmYyNGE2MjgxMmJmODkwZWJlYzZlZWExMzk4OThmMGViIGxlZ2FjeS10cnVuaworODE4MzUgMTE2NmZiN2VmYjA3YTZlNTU0ZTk1YzMzNjY0MTlmZTNkNzZmNWU5ZCBweTNrCis4MTgzNiBkNWVjMjQzY2FhMTIyNGFmYjc2NGMyNDRiZjRjMDQ5Njk5MTE1OWM5IHJlbGVhc2UyNi1tYWludAorODE4MzcgYjVhZjVjOTMxMzViMjRmMzQxNDVkNjZhNzk3NGEwNmYwNDk1Y2ZhOCByZWxlYXNlMzEtbWFpbnQKKzgxODM4IDY1MDlmOWEzY2RlNWFlMjdlMDQ1N2VhMjc3YmY3OTU4Zjg1Y2E3YTQgcHkzaworODE4MzkgOWY3YjhiMzJiMDc0YWE5MWQzMTM1MjEyMGE0NjkxOTgxYTcwOTkwZCByZWxlYXNlMzEtbWFpbnQKKzgxODQwIGEwNmFkNzM4MzU1MjNmMjQ4NmYwMzZiNTAxNjM1YWViNGFiYWE1NjQgcHkzaworODE4NDEgZDI4MWVkNTlmZjBiZTRmMjQwMmY0ZjE2OTUyMTRmNjdjMTA1OTgwNyBweTNrCis4MTg0MiA3Y2NjNTU4MTE0MTMxZjA5YjE2ZWNkZDFlNmRhYmZhZGVkYjU5ZDEyIHJlbGVhc2UzMS1tYWludAorODE4NDMgZDkyNzA4Y2YxYzFmYTMzNjRiNTY0MTA5MzYyNWU3ZWU1NGNmYTJhNiBweTNrCis4MTg0NCBhMjVhZDljNGFjZTAwMThmODUyYmI0Mzc0ZWMxNTVlODgzM2E4OWVhIHB5M2sKKzgxODQ1IGQ0N2ZlNDEzNGU3ZDExYmY0MDM2MTA3YzgyZTY1YjdmMzE2NTI0NzMgcmVsZWFzZTMxLW1haW50Cis4MTg0NiBmODNmMjAxYjEyNzYwODRkYTczY2FlNWVmN2U5ODI4YzRiNDI2OTJjIHJlbGVhc2UzMS1tYWludAorODE4NDcgMTk2NmMxYmM5MDQ4ZTRlZWQxYTIwMTBhNWQwZTIyZjkyNjY5OTNhNCBsZWdhY3ktdHJ1bmsKKzgxODQ4IDI3ZDliY2M3ZTY2MWVjYmQ3ZmE3ZWI5ODVjY2NlZWNiODc4ZDk4NDAgcmVsZWFzZTI2LW1haW50Cis4MTg0OSAyY2ZlMTViM2NkZjU1MmMwNzZjNWI2MTJhYjUxMzk1YTgzMjM1MGQ4IHB5M2sKKzgxODUwIGIyYzE5OTU2MzNiZGM4NWViYzBlZGNjZmE3MGNiM2M5ZGUzYmM5MDAgcmVsZWFzZTMxLW1haW50Cis4MTg1MSBkMzJiMGU4MGZhYWNkMWQwNzcyNTM1NjYzOGU0YTc4MmIzNDk5NWQ2IHB5M2sKKzgxODUyIDZmMzg1NTAzODkxOWI2MjJiOTk0Yjg3MWIyOTU0ZWI4MGVjNzcwZGYgcmVsZWFzZTMxLW1haW50Cis4MTg1MyA4NjRhYzdiM2MzZDZjZWYzY2Y1YTJhNjI4MDZhZjU1NDFjY2Y5NjQwIGxlZ2FjeS10cnVuaworODE4NTQgZDcxMTNjYWNkNDI4YjYxYjVkOGEzZDU5N2Q0NmQ3NTI0NmYwYTI0YyBweTNrCis4MTg1NSA2ZTY4NjZjZWMzN2VhMmMwMDdjYzkyNzYwMzk2ODllNmM5YWJmMjFjIHJlbGVhc2UzMS1tYWludAorODE4NTYgOTZhNTEzMzgyNWQyMzY2ODgxODE3ZDc4YWQ3ZTdkY2MzNjQ2Mzk5MCBweTNrCis4MTg1NyBjNjA0MDJmYzA2NmYxMGMwM2E2NWVjMDg2OGU2MTdlNTAyNGJiOWJiIHB5M2sKKzgxODU4IGI2ZWUyMDViOTQ5OGJkMGZlNzNmYTE5ZjM4MjFlZTNkNjM1M2UxYTAgcmVsZWFzZTMxLW1haW50Cis4MTg1OSBmMWFhZGJlYmM1NzcyOTEyMzEyMjhmZGY2MmU4MzkyMTI3NmZlZDc3IGxlZ2FjeS10cnVuaworODE4NjAgYmEyZjJkMDg1MDRiMDUwMDZmMTc1YjQ1ODE0NjZkMzQ1MDgzMTExMyBsZWdhY3ktdHJ1bmsKKzgxODYxIGMxMTQ1ZTY2OGQ3MjA4NjQ0ODhkZGNlMDAxOTViZGFjNTU5NTczOGEgcmVsZWFzZTI2LW1haW50Cis4MTg2MiA4NjVlMzRjZDdlNWI3NjkyOTdjYWRhZTA3MGMwZjFlMjBkODM5Y2Y4IHB5M2sKKzgxODYzIDMzNzUyMzlkNDM3MGUyZTY2ZDg3ZGI0Njg4M2Q2MjEyYTcyZTYxMTEgcmVsZWFzZTMxLW1haW50Cis4MTg2NCAzMjljMTI5ZTA3YjY4YWYyNjI3OWQ0OGU5Y2NmZDhjOGM4ZWU4ODk4IGxlZ2FjeS10cnVuaworODE4NjUgOGY1OGI5ZTU5NjY4OGQ0MmU2NjdhY2U2NGVjZDNjMGFmODMzZGEzNCBweTNrCis4MTg2NiBhMmVhMWEyMzE4NmIwODc2NzAxNjgwODEzOTYxNWZlNmFlNDkxN2FkIHJlbGVhc2UyNi1tYWludAorODE4NjcgZjMzZTQ2NGE5YTYwYWE5ZjA0OTc4YzZjZjBmNTU3ZmVjMDhkNjBlNyByZWxlYXNlMzEtbWFpbnQKKzgxODY4IDViZjczMzZlYTBhYWQ4OWJkMjQ4MjIwYzI5ODRkOTFkNzUxN2UyZWQgbGVnYWN5LXRydW5rCis4MTg2OSA3N2MwY2E2OWQ1MTg0ZDg5MjJjNWUxN2JjNzU1NTYzYWU2Y2JmNzEwIHB5M2sKKzgxODcwIDE0MjlhYzZiZWJjM2Y4ZDlhN2FkMTcwZDkxMjI3NTI0NTRiZjg2MzcgcmVsZWFzZTMxLW1haW50Cis4MTg3MSBkZGI0N2ZkNjEyYTY3MDFiMzdkNWNmMzU2NGUwZWFiMDBkMzU4NGNhIHB5M2sKKzgxODcyIGUwODcxNjI1NzNhY2M2NzY5MjZmMmU4ZmJkYmIxN2I0ZGQyYmI3NzggcmVsZWFzZTMxLW1haW50Cis4MTg3MyBmZTVlZDcwMjgzZWZlNjA5NDFhN2VhYzM1NDg0MTRlMzM5MWQyMDU4IHB5M2sKKzgxODc0IDhjZmEwZGMzOGFhNzQyYjk4MDM5MTg0YTI2YzUwZmJmYzFlZWJjYmMgcHkzaworODE4NzUgZmY1MGQ0NWUwNjE4MTM1MzJkM2Y2MDc2NDg5N2M2Nzk5ZDhjZmMyYSBweTNrCis4MTg3NiBjZDEwMjQyODFiNzMyYmI4NDhlMDliMWVmMDRlNmU0ZmRiNmIwNjE0IGxlZ2FjeS10cnVuaworODE4NzcgZjI5NDQ3M2Q4NzkzMTVmYjMyNmI3NjhlN2RlNDY4ODEzNTJmM2QxZSBweTNrCis4MTg3OCA3ZjU0MGZlNzc1ZmNjZTM1ZGI3ZDM2ZWI4NjVmNTk2ODRjYmRiNGJkIGxlZ2FjeS10cnVuaworODE4NzkgNWZlNGFkNWI1YWI5ZWI3MmEyZmQ4MzA0YWRmZGE3MmY5ZDJmMmEyZSBweTNrCis4MTg4MCBkYmU3YWU2NjZjZTIyOWQ2OTRlOGE5NjcwOTE3MTg0NjczYjhiMDI4IGxlZ2FjeS10cnVuaworODE4ODEgMGQxNjZlNTc4ODRkZjQxN2RhODE4ZjE3YWYwOThjYjc2NTJlNDc0YSBsZWdhY3ktdHJ1bmsKKzgxODgyIGE4ODcyYjY1MDU3NzZhNjRkMGYyNjhkMDQ3ZmY2ZGVjNGY3NjM3MTMgbGVnYWN5LXRydW5rCis4MTg4MyA3MmY3NzQ5MDM3NzIwMTZjZmM3NDM2ZjE3NGIzYmZjYjQ4YTNlZjZmIHB5M2sKKzgxODg0IDllMTJjNjQ5ZDMxMjc1ZjJjMWM3OTRjMWZhM2I0Yjc5NGJjZDc4ODQgcmVsZWFzZTMxLW1haW50Cis4MTg4NSBhZWI0N2QzMGZiYTRlMzhkYTFlOGYxMjIxZTRkMDYyMDQyMzcxZTFlIHB5M2sKKzgxODg2IDA3Njc2M2M2NjdmOTU2NWI4ZTI4MjkxZWVmYTdjNDdjZTRmYjNjNTQgcmVsZWFzZTMxLW1haW50Cis4MTg4NyA4YzNhMjIyZmE2ZDE1OGY1ZmJhZWJhM2M2M2Y1MzQ5MWQ3MWE2ZWVmIHJlbGVhc2UyNi1tYWludAorODE4ODggNGM5OWRhOGMxZTgwZTdmZWNiM2M4NTczZTY3YjIwZDdjOThlZTg3MCBsZWdhY3ktdHJ1bmsKKzgxODg5IDdlZjQ2YTYxZGM5N2ViNzUyZjQ4MDg2OWRlOGQ3MzE1ZmJhYjNkOTUgbGVnYWN5LXRydW5rCis4MTg5MCAzNDIwZGZjNTU5YmJiODNmNDRmNmJhYjcyYzk5MTRhMTFlODY1NmRlIHJlbGVhc2UyNi1tYWludAorODE4OTEgODMxOWNhMGQ1NDM0OTMxMGM1ZWQ3NjYyZDBkN2JlYzVjZjRmODQ2NiBweTNrCis4MTg5MiA0NDY3YzRjMWQzOGVjZmZmYWVjMGYyMjY1MWM1ODM5ZDk1NzAxZTI1IHJlbGVhc2UzMS1tYWludAorODE4OTMgMjY2ODUzMTFkMzEzMjQxMGE0NzcxZDNiNTNjYzlmMTIwZjFlZDg2ZiBweTNrCis4MTg5NCA0YzNiZTc0Y2E1MDEyN2YwNjM4YjY4ZmRlMThjMDU4NGM0ZTc0ZjUxIHB5M2sKKzgxODk1IDNiYTFiNWI0YzEwODg1MDA4NGMxYmRlNDFjOTc0NGFiZWMzMjcxMWEgcHkzaworODE4OTYgZWJjNGU4OTY5MjRlMmE4YzRlMDA3MzZmMDAyYmI0MDdmZjZmNWM1ZCBweTNrCis4MTg5NyA2YWRjODNkOTk5ZDBlNDUyZDAzNjZiOWE0ZDEwYjc4NmQ2ZGQyYzQyIHB5M2sKKzgxODk4IDZmZjg4ZGNhODEzMzk4N2MxNzgxMWRiMTdmZjA4MDYxN2Y5ZWQyMjggcHkzaworODE4OTkgY2Q1OTZhOGY5MWYzNzg2MThjY2I1MTlhMjgwMWI1OThkNzFlYThhYSBsZWdhY3ktdHJ1bmsKKzgxOTAwIGIwOTFhN2U0Mjg1ZjkzY2I1ZmEzZGYzMDE0YWY2MGQ4MzljODZlMTYgcmVsZWFzZTI2LW1haW50Cis4MTkwMSAyYThlZTExZTNlMThhM2Q0NDcxMmE0OTE1NDZjMjA0ZDhiNzBlZDc5IHB5M2sKKzgxOTAyIDczZDgyYjBiNmRlZTRkYTVjZTlkZDVhODg0ZGNkMmQ2YjVhMmU3MDcgcHkzaworODE5MDMgNTBjMjM5MTc0OTc2MTkzOWVmMmExZTM2YzVhOWEyOTFkMjNiZjFmNyByZWxlYXNlMzEtbWFpbnQKKzgxOTA0IDdkYjdmODQ0MjQxNGZjNGI4N2FlMjlmNmIwMTY3NDJkZTc4NDg4NmQgbGVnYWN5LXRydW5rCis4MTkwNSA5ZGFjNTgxNjNiNzk5OWFjNTMwOTdhNzdmNzlhMjhiYzMyNzE1OWI0IHB5M2sKKzgxOTA2IDY2MTUxOWZlYzNiODY4OGZjNzUwODVhN2IxOWFiMDM0Y2I2ZjM1ODEgbGVnYWN5LXRydW5rCis4MTkwNyA5ODI0NTQ2NGI2NjU0YTA1ZGE4NTQyMjNhYTkxYzJhMmI1NDBhNGZlIGxlZ2FjeS10cnVuaworODE5MDggNzU3NjI2MGQxYjY1NDE1MDA1ODJmMmU5ZDIzYzA3Mjg0YTA3MTAzMiBweTNrCis4MTkwOSAyMmMwNDVkMWJjOGNjZjkzY2YyYTQzMDFiNDBhMTI3MjI0OWQ3NGVmIHJlbGVhc2UyNi1tYWludAorODE5MTAgOGQ1ZGQyMjc2NjgwNTY0ZjczNjUwZTE2NGY3OWY4YWJhMGYzMWQ0YiByZWxlYXNlMzEtbWFpbnQKKzgxOTExIDg4YWVjNTEyNDE4NWRmZTQxODIxZWY4MTU1OTBhN2IyMzMzYjU4Y2IgcHkzaworODE5MTIgNDRkYzk4NTAyYWMzMjNhNWNkYzkxNTdhZGE5NmNiMTk5YTg2Mzg2MyBweTNrCis4MTkxMyBhNjUzZTMwNjEwOGY1MzQzYWNiZTZiODY2NGU2MTAzZmMzYjYyNmM3IHJlbGVhc2UzMS1tYWludAorODE5MTQgYmQ4YTFmZDRjMzE2ZjIwZGVjNTNmZjkxODVhMTZjZDNhYmM5YmFlYiBweTNrCis4MTkxNSBjOGJjMmQ4ZTlhZTFjZmM2YjkwNDFmZWY3MGE3YjcxMDEwMjdmOWUxIHJlbGVhc2UzMS1tYWludAorODE5MTYgZjUyYWVmZGFiMTgyMGU2OGEyZTY1MjNmYzZkZWQwNDgzZDE4ZWQzYyBweTNrCis4MTkxNyAyYjJmNTUzZjFjZTYxMTA1ODQwNGYxYzYzYTIxNWJmYzMwYWY4YWJlIHJlbGVhc2UzMS1tYWludAorODE5MTggZjYwYWFmOTliODM2YmY2ZWVlMTgxNjk5N2M0MDg2NmExZTc2NWQ1NiBweTNrCis4MTkxOSBhMjU1MWIzMGYwNDk2NDk4NTNkNDE4MTg0ZDI5NzZjMmJjMzIwODcwIGxlZ2FjeS10cnVuaworODE5MTkgZmU2YmUwNDI2ZTBkMzUzZGI4NGVjODY5YTViMDJkYmJhNmMzZDRhNSByZWxlYXNlMjYtbWFpbnQKKzgxOTIwIDAxNjdmOTE3MjFhODRjNjE4ZmUyM2E5Y2M1NjRmMDU4YWQyOWIwNDUgcHkzaworODE5MjEgODYyNDU4MjgwOWY5YzcyZDRlMzQ3ZGM1YTVjZjljODMwMmEwYjg4ZSByZWxlYXNlMzEtbWFpbnQKKzgxOTIyIGQ5MjgyMDY1ZjVjOWViYzI0ZmRlYzcwMzM1ZGNlYjA2YjhjZTJhMzcgcmVsZWFzZTMxLW1haW50Cis4MTkyMyAxMzdkYTdjZTVlOGVkMWJiN2FmNGY3NDY2ZjU1OGNjOGExNDU2OTM1IHB5M2sKKzgxOTI0IDcyMTY5ZmZlMzJhMDJjZTFkZWY3NGRmN2EzMDMwYWE2NDQ1ZmE2YzUgcmVsZWFzZTMxLW1haW50Cis4MTkyNSA2ZWFhNzliZTA0NDlmZDA0ZjZkZGE3YjAwYWEyMTg1NzlkOTM0ZWNjIHB5M2sKKzgxOTI2IDEwMzE5MjE3YWY0NDMwZGY0ZmVlZDVjMWU3ZTFlYjYyNmNhNTM2NDIgcmVsZWFzZTMxLW1haW50Cis4MTkyNyAzMDIyOTA0Zjk5NzExYmI5N2UyNzFjOWYwMDAyMWY1Y2ZlY2YyMjg4IHB5M2sKKzgxOTI4IDgxNjlmMzNmMjI2ODhmMjRhMmE0NmI2ZGYzZTljYTQ4YmEwMGM0YjEgcmVsZWFzZTMxLW1haW50Cis4MTkyOSA0NDRjMDI1ZTI5OGRhMzY5NmVmMDkwYjhhNWI0MmFhOGIzNDhhN2ZjIHB5M2sKKzgxOTMwIGU4MGRhYjNlOTA5ZjdiMzNiOTEzY2JiYmRkZDI2NzJlZjE2NTBkODYgcHkzaworODE5MzEgYTEwYTdjZTk3ZjQ1YTdiNDg1YTY0N2Y5MTEwNzE4Mjk4YTdiZWViZiBsZWdhY3ktdHJ1bmsKKzgxOTMyIDg0ZGFiMjliZGVhNzBhMzkyMzE4NDM4YzkxNzY2ZWJlOTQ5YTY5ZGQgbGVnYWN5LXRydW5rCis4MTkzMyBjMmI5MjM4MzRkZWE3NWRlYWU1YTM2OWNjNjNkZThiYWI2MzBmOWNiIGxlZ2FjeS10cnVuaworODE5MzQgNjFkNGNjNjc4MTY1NWRlOTk5YzZiOGU4MTc1NzkzOGRlZDlkYmM5OCByZWxlYXNlMjYtbWFpbnQKKzgxOTM1IDgwMTEwZmQ0MzE5MTE5MjkxOTg2OTU4NjRlOWQ1MzE0ZDMyMjk5MWIgcmVsZWFzZTI2LW1haW50Cis4MTkzNiA2Y2U3ZWJjZjkzNThkZTVmOTU2MzI1MWFlM2JiOWNkOWExNTdjOTYxIHB5M2sKKzgxOTM3IDUyZWIwYzA5M2I2ODg3YjlkZTg2NWFiYzY4YWU1NzVhMDg5ZGZjYTYgcHkzaworODE5MzggYTQ5MGFhMzAzZDhhZGRmYjgzMDIwOTVjN2MwODYwNDcxMTAzNTQ0ZSBweTNrCis4MTkzOSA0ZTlkZDZkODAwNjM4MGRkYmY1ZDllOThiNTU1MzFhZmFiNTQ4YmYzIGxlZ2FjeS10cnVuaworODE5NDAgMzFmMDFjODgxYzQ2MGYzNmMwNjlhYjMzZmI1N2FlZjAyODEwYmNhYSBsZWdhY3ktdHJ1bmsKKzgxOTQxIGFjYTEzYTVkNjE0NGQzOGI2ODYyNmE4ODk5YjZlYTJhNmFiZWI1MTggbGVnYWN5LXRydW5rCis4MTk0MiA0MWVkNThlZDVjOTNiYWMxZDY4ZTU5NjNhNGNjZmE5NjVlOWQyY2FhIGxlZ2FjeS10cnVuaworODE5NDMgOGYyN2I2MWE0MGZhOTkwNTMzMWE3MzAzOWM4ODA1NzBiZmMzNWE3ZiByZWxlYXNlMjYtbWFpbnQKKzgxOTQ0IDYwNmJhZDU4NDM0NDY0ZDMxY2EwMGI5YWU5MzE3OTBhZDAwZjJiNzMgcHkzaworODE5NDUgZGI1NTE2N2ZhNWU3OTg4OGU3N2RiNDc3NGM5NTdlODc5YWQ1ZTI5ZiBsZWdhY3ktdHJ1bmsKKzgxOTQ2IDUxNjAwNDhkNTM2MTcxMTBjMTgzYjNmOGU5MDZiNDExOGVjN2M2NzIgcHkzaworODE5NDcgYmQ4NmJiYTVlZDMzYTAxZWIzMzU5NWJhOWI2YTEzMzk1M2I3Y2Y2MSBweTNrCis4MTk0OCBlNTVmYWQzZDVhZTQ4NGM0MWNkMTcyZThhYTlhODNjMjQ0ZDI3ZDM3IHB5M2sKKzgxOTQ5IDk1NTBlZGExYzA5NjRlNjRjYjZkNzYxZTgzMWY1Y2M0ZmViNTU2YmIgcHkzaworODE5NTAgOWIzMzNiZjA4ZDQ1Zjc1YzBiNjkxYzAwYTgzNWI3ZTgzZmJkZDVlYSBweTNrCis4MTk1MSA0NGNhYzVjNTY1YjdmMDk5OTMzNjc1ZWU5YWM2ODQ0NTA5ZmNjMjMzIHB5M2sKKzgxOTUyIGQwNjU3N2RiNzI3ODUyYzUwYmJhNDI5NmQ5ZDM4MmMwYmQ3MzdkNjQgcHkzaworODE5NTMgNzNlNTM1NGY5MmU3MTQyOGFjYzEzMThiOGU4ZDQ0NzU3OTI0MmU5ZSBsZWdhY3ktdHJ1bmsKKzgxOTU0IGUwYzRkYWRkZmM1NDY5Y2VkMDc3OTBkMWI3NzkwNzU2OWQzZGYwZTYgcHkzaworODE5NTUgYjkwZTMzNWE2MDlhOTc5MWM1ZDk2MDI2Yzg0ZGU1ZjUwNDlmOTkyOSBweTNrCis4MTk1NiA4YmMwYmYyMjAxNGQ4MzFhODQ0YjUwZDI4NWQ5Zjg3YmY2M2RiZDFjIHB5M2sKKzgxOTU3IDBhNTVhZGU2ZDg1NzgxYzM4YzgyMGJmNzZiMjI2NjAzNTk3NjgxZDQgbGVnYWN5LXRydW5rCis4MTk1OCAwYjJlMGI2ODM5YTI3MzViYzhmMjFjOWFmZjkzZDBmZjNmMTEyZDY4IHB5M2sKKzgxOTU5IGIwMGM3MzY1NTVkZTcwZTNjZDJlYWE0N2MwMmFjNDdiMjU2N2M5MGIgcmVsZWFzZTI2LW1haW50Cis4MTk2MCAwZjVkMTE0ZWZmMDE0NDJhM2IyMTBjZGZmZWNjOGNjZTg3MjNmYzBhIHJlbGVhc2UzMS1tYWludAorODE5NjEgZTU4NWIyNDMxYzRhNTQ2OWQ1YjQ5OGI2MmE4MGNlYThkNTdhYjNmNSBweTNrCis4MTk2MiA1Mjk1YjRkYmYzNTVhODRkNjkxMDg0ODdlMTU3NzU3NTU3ZTEwOTcwIHJlbGVhc2UzMS1tYWludAorODE5NjMgYjllY2RjZWMwZmYwZDhiZGMxZjg4ZTQzZGQyNTBkY2JiMjZmMzE2YSBsZWdhY3ktdHJ1bmsKKzgxOTY0IDhmMTM3YTVjNDEzY2EzMTYyN2U5Zjc5ZmRlZTc5ZTMwNTI2NDZhOGQgbGVnYWN5LXRydW5rCis4MTk2NSA3YWM2MTQ4ZTZhN2Y4NGE2YmRlZTRhZTY5NWE3MjJjMzQwMDIwZjM5IHB5M2sKKzgxOTY2IDRlYWMxMzVhMzNhZmQ2OTRkMzcwMzg1MmU0M2RkZWJjZjhhOTZiYTMgcmVsZWFzZTMxLW1haW50Cis4MTk2NyBjZmYwYTkyMzE0MGJlOGVjOGI3ODhmYjhhZmU2ZTZjMTE3Y2EwYTNjIGxlZ2FjeS10cnVuaworODE5NjggZDA2NGU4OTM0ZjRkMGNjZTA0Yzk1Y2E1YTgwZjkwZTU4MWZhNWE0OCBweTNrCis4MTk2OSAyZTUyZmJjYWFhNzNiZGRjMjMxMTgxNTI1MjlkNTEwZTFhYjNjNTQwIGxlZ2FjeS10cnVuaworODE5NzAgMTM4M2I4NGIxN2FjZjc2Y2U1MWY1NzMwMGExNzExOTkyNGI5MzQ1YSBweTNrCis4MTk3MSBmODJkOTZiOWYwM2VkYWFhZGVjYjQ1ZWI0YWUxNTMyN2RkZmMxMjM3IGxlZ2FjeS10cnVuaworODE5NzIgYjA4NGMwYTkzNGE3ZTk2MzgxNzQ5ZDhmNWY3Y2FjYjA2ZTVkYWJmZSBweTNrCis4MTk3MyBiMzJhMjgxNmY2ZTljNzg0NDM5M2JkZjUxMmQ5ODc0Y2UyYmRlYzUzIHB5M2sKKzgxOTc0IDA4NDBhMjgzYWY1ZjlhYjYyZWRhZWNiNzE5ZDhlZmQ4Mzk5MmQ0ZjggcHkzaworODE5NzUgOWNiOTAxNjliMjVhODYzZGY3MmRmOGY1ZjU4ZTc1MjFiYTZlNTAxMiByZWxlYXNlMzEtbWFpbnQKKzgxOTc2IDk5YjgwYzI4OGZhYzQ1ZWVkMGY4MjNlNjcyZWU2Yjc1YzVkNWUyMjUgcHkzay1jZGVjaW1hbAorODE5NzcgOTJiOGI2Nzg0NGUxMDE3ZDY2ZTY5ZjgzZTY3OGE4NmIzYTQ4MDA4OCBweTNrLWNkZWNpbWFsCis4MTk3OCA4NjdiOTc2ZTM0OWRhZDIzOTk3YTg3ODE1NTAwYjEzZGFmZTdlYzFiIHB5M2stY2RlY2ltYWwKKzgxOTc5IDA3MjNlZTE5NTQ3Yjk1NjE1YzA2ZGMxMTU0NTdjNzJjM2IwNWFhNTIgcHkzay1jZGVjaW1hbAorODE5ODAgZDc4YjE1ODA4NzEwYTdkNjc1ZDhiYWY5NDEyMjM4ZTAxZmFjZjEzOSBweTNrLWNkZWNpbWFsCis4MTk4MSBiNzhhOTE4YjdhMGVjNjRiZTg5YzJjOGRhY2RmMGZhOTVhYWMxNmQ1IHB5M2sKKzgxOTg0IDliZTYwYzE4NTAzMmE2NWUyMmE1OTYxODk0ODJiNDc3MjdjN2QwMWUgbGVnYWN5LXRydW5rCis4MTk4OCBlZjVkZTU2ZjI0YzY0Y2RlMDYwNGIzZjcxMTQ1ZjMzN2IyMjI1ZjAxIHB5M2sKKzgxOTg5IDYyM2I3MzgxMTZkMjQyZjBiYmNiZmJkYzVkNTkxNmU3YTMyMGYzM2MgcHkzaworODE5OTAgOTViNWNhMjQ2OGNjNjBhMmNkMjQ2NGIzZTMzNzk5NWQyMWY0NzFjNiBweTNrCis4MTk5MSBhNTdkNTljY2NiOGZhNWNlYjJhM2EyM2QzMTU3OTgxM2UwMWE2MzMxIGxlZ2FjeS10cnVuaworODE5OTIgNmY5YjBjMjQwMTkxZGY3M2MyZjEwNTdiMTk2MjE2YjYwZTkyZGQwZiBsZWdhY3ktdHJ1bmsKKzgxOTkzIDhmM2ZjYzIzOTc4MWI3NjRjMzUxM2IxYWZmYWEwZGY4YjA4ZTMxY2IgcmVsZWFzZTI2LW1haW50Cis4MTk5NCAwZWJjNzJlMzY2YTFkOTZmYjhlOGNjNjk1NWY3Mjg4YTllODRjY2FkIHB5M2sKKzgxOTk1IDdhYzBmNjdlYmJiYTg5NGJjZDliMGI2NWZhOTNhNjM2N2I2ZmI1ODYgcmVsZWFzZTMxLW1haW50Cis4MTk5NiA5MWJiNTcyYjc1NmUwNmQ0NzZkNmJkYTAwYjA0ZmM4ZTk4MDYzMzU2IHJlbGVhc2UzMS1tYWludAorODE5OTcgM2VhNjZlM2ExMjlhNGY5N2IzYjdjNmM0ODVlNzI3ZGQ0NWNjMDQ4OCBweTNrLWNkZWNpbWFsCis4MTk5OSBlNDNhYjUyYjU3YjIzNDM5ZTk4OGVjZjM0YjRkNzVlOGE1MGM1MjNiIHB5M2sKKzgyMDAwIDMyYzRmZmY0NDVhZDJjZmZmMDk3YWM4ZmU0ZjMzOWE1MzI1MGYxODMgcHkzaworODIwMDEgNDlkZDU5OTE1MGNhNzE1YzIxZTBhNzlhYWNhZDY5YzZmZTkxNjQ1YSBweTNrCis4MjAwMiBmYTg5NzczMjRlZDg2NzBhYjBhZTE3ZjU5YzJmMTkzMjU0YWMzNzhhIHJlbGVhc2UzMS1tYWludAorODIwMDMgZjE5YWU1Y2VjOGNlNzlmMTYwNWY5M2JiMWI1ZjU2M2Q4YWI4MGIzYiBweTNrCis4MjAwNCAzNTRiNzUxZTQ2ZDYxY2I3MWY1OTQwYjAwODg2MjQ4YWFlYTc1ZGQ2IHB5M2sKKzgyMDA1IDM1NmQwZWE4ZWEzNDdmMGQ3ZDBhZGFhNzY1MTZhMjVlNmM2Yzk5ZjAgcHkzaworODIwMDYgMjQ2NmFmZWQ2ZjVlY2U2OWUxNTNiYTYzZDcyZWFkN2U4YzBlMzUxMSBweTNrLWNkZWNpbWFsCis4MjAwNyBiODQ4ODczOTg3OWVjOThhNTAxMzNlMTc4ZGU3NGI0MGRmOGUyYzJmIHJlbGVhc2UyNi1tYWludAorODIwMDggODE4NTVjZWRjMTU2ZjU5OGNiNjkzOGQ3ZDhhZTU4NWI1MWUwNzc2OCBweTNrCis4MjAwOSA0OGY1ODU5NzYwZWY0YTNiYjI4NWY2YjdlNmY4M2U3OTE1NDMzNTU2IHJlbGVhc2UzMS1tYWludAorODIwMTAgOGE4N2M1YWZhZGRhYmUzMTU4NjYxMGNkNjk1ZmE0ODFiZTExMDc0ZSByZWxlYXNlMjYtbWFpbnQKKzgyMDExIDU4NDEzNjc2YmVmYjY0YmMzMDk0N2E3ZTkyNGJmYjVlY2EyZDNjNTIgcHkzaworODIwMTIgMjJlYTY5NmFhNzdhYzYzZTUzZDIyYjZjZGQ0NDM0OTFjMzAxNGVlYyByZWxlYXNlMzEtbWFpbnQKKzgyMDEzIDdiYzgxZjg1MzVlYTQxNjA0YjRmZDlhOTc4OTUwODZkY2IzNDczYzcgcmVsZWFzZTI2LW1haW50Cis4MjAxNCBhZGI4YzgxY2MzOWE0NGYxMzAyZjQ4OTI1NmI0NjNiYWNiOWZmNTI3IHB5M2sKKzgyMDE1IDlkYzg0YzQyNGU0MTM2NTdhZjg3ZjM4NzkxNmNkNDc1YjQ2ZWVmMGQgcHkzaworODIwMTYgNDIyYTE4M2UwYmJkY2M3MmE4MDY1ZDM4MWU5NjRiNTc4ZDc4MGMzMyByZWxlYXNlMzEtbWFpbnQKKzgyMDE3IDAwMzBhNzQ3MDY2NjAxMTZiZGIyZDNjYzA1NGU5N2YwZGRlNGJiMmUgcmVsZWFzZTI2LW1haW50Cis4MjAxOCA4NGZlZmJmMWQ2YzA4MGIyYjE1MTMxYzJmODRlYjk0OTYyNTBlNmUzIGxlZ2FjeS10cnVuaworODIwMTkgZTc1MzU2MmNjMDIzYzAzZjFhYWEzNTA4MjRiMDU1Y2NlZTExNGJjOCByZWxlYXNlMzEtbWFpbnQKKzgyMDIwIGM0MWNiNDg0ZjA5MDZjZTBmNmMzNzY1MzlkYTczNmU0MzVlMGMxMmEgcmVsZWFzZTI2LW1haW50Cis4MjAyMSBkMzBmNmM1OWY4MTA3NTc2OTFmNTNhZTBkOWFkOTA3YjU3Mjc5MTcxIHB5M2staml0Cis4MjAyMiBkMzM3N2ViZDNlZTU0ZmZkNzdmYWFiZjI1MTBhNmEyMWMwYTYwMzg2IHB5M2sKKzgyMDIzIGI0MjM3NzAzYTBjYzUxNDExZmVlYWYwNzljYzQ5ZmQzMWRiNjhlNDEgcmVsZWFzZTMxLW1haW50Cis4MjAyNCA4MTEzNWNjZjVmNTVlM2UyMGRmNmZhOWQ1MGUzNzVlNzI3MzlhNWFhIHB5M2stZHRvYQorODIwMjUgNTVlMjRjMjQzZTJmMWE4N2NiOWMwNGFhZjMwNmNhYjM5YjcyNzQ2NiBweTNrLWR0b2EKKzgyMDI2IGM2ODQ1ZTgzMDg2ZjVmODMxNTg5Nzg0ZmQyZDQ5MDljMTljNmFlZjEgbGVnYWN5LXRydW5rCis4MjAyNyBkYTNjNDc5NGQ2ZGQ2YzUxOTk3NmY5ODRlY2ZhNmM5NzZmMmExODZiIHJlbGVhc2UyNi1tYWludAorODIwMjggMzQ2Y2UyNTVhNTJmZWYxZGVlMWM2YWYxYmM0MmQ3ODVkMmNiMDVjNCBweTNrCis4MjAyOSBlNGQ1MDY0MGYwNzc3YzQ3ODZmNjE0M2JiY2Q0N2JjYTAxMDM5NmM4IHJlbGVhc2UzMS1tYWludAorODIwMzAgNzM1NzgyYTI3NWY1MGE4NTRjN2I1MThiNmRjNTkxMmUzNjdkYmZiZSBweTNrLWppdAorODIwMzEgZjM0MTM1NTNmOGY1ZWExYTI2OTJiZGQ3Njg3NTcyOTY2MmY0NGJhNyBweTNrLWR0b2EKKzgyMDMyIDg1NjI3Njk1MmUwODYzOTdhNTA1N2QyNjdkNGI1MjI0ZDNjYTUxOWMgcHkzay1kdG9hCis4MjAzMyBiY2MwYTk5N2YzMjFmY2FlMWQ0ZTE0MTE3NWNlZGY2NTZmYjEzNjcwIHJlbGVhc2UzMS1tYWludAorODIwMzQgNmQzYjA1YTQyOWI1YWNhNWUyZjUwZmM0NDE5YWU2ODBjY2E3N2JlNSBweTNrCis4MjAzNSAyZGQxZmU3MDQ3ZmZkOWZkNzY2YWZiZjVhZmIyMTY4ODYyNGZhOTIwIHB5M2sKKzgyMDM2IDFiMDhhNTQxNTUxYWFkODY3ZWM1OWY4YjRjYWFiMzJlNGZkYWQ5MDEgcmVsZWFzZTMxLW1haW50Cis4MjAzNyAyODNkOTQ3MmRmNGVkM2I3YTViZjgwMDRmNGYxZDZlMWI4MzAwOTVmIHB5M2sKKzgyMDM4IDgwN2NkZWE0NzgxN2JiZTc4MmU3ODY3MTRhMTJkODlmOGQxYWM5MjggcHkzaworODIwMzkgMDE3ZTYwYWU2MDVmNGJlMWUyMTM2NTJhZTAxNTM5MDk1YjVmMmU0NSBsZWdhY3ktdHJ1bmsKKzgyMDQwIGY1ODg5ZjJhYzM5YmIzOGUyMjY5MDUxZDMyNTYwOWQzYmY5OGYzNDUgcmVsZWFzZTI2LW1haW50Cis4MjA0MSAyYmIwYTI3YTNlMzVjNDI3Y2EwZmZiMzcyNTg5MzhhNzFkYjhlNGY4IHB5M2sKKzgyMDQyIDhjYzBlMWM5YmE2ZDYwOWZiOGE1MzViNzNkMDdhMzgyNWNjMWFiZTggcmVsZWFzZTMxLW1haW50Cis4MjA0MyBjYjQ5OTdiNmFhOGJlNjk4YjlmYTg5MzlkMTVhYWUyZjdjYTU2YjNmIHB5M2sKKzgyMDQ0IDJjYzA5ZjA2OTUwYjA0ODI1ZTIzNzZlM2UxMGFmODM1NDU1NTI3N2EgcmVsZWFzZTMxLW1haW50Cis4MjA0NSA0ZDI1NjM5YTNiMTRiZDZiY2UyZDhmYzQ4MGUwMGE2YTFlZGQ5M2VjIHB5M2sKKzgyMDQ2IGIxZDZjY2FkOGVhZDY2NjY0ZjA2YjBiOTc4OWI0ODBkMDdhYWI0ZTIgcmVsZWFzZTMxLW1haW50Cis4MjA0NyA4NGVkMzQ0NmEyOWExYjgzMGY2YmFlN2QwYWYzNjBkNTdhMTljNTIwIGxlZ2FjeS10cnVuaworODIwNDggMTc2NGUwYmU0ODRjNmM4MmY0MDBjOWEyNmIzNWE4MjUzN2Q1ZGE5ZCByZWxlYXNlMjYtbWFpbnQKKzgyMDQ5IDJmZTA4MDJjNDJjNzQ1ZGNlNzJjNWZlMDc4MDVmMWYzMGI2MjMwN2IgcHkzaworODIwNTAgYzJlNzNkODQ0ZDgyMmJkMzJlODRkZGJhYTkzMGQ5YjU4YmI2NmVjOCByZWxlYXNlMzEtbWFpbnQKKzgyMDUxIGM0OGRkYzk2ZjQ1NGFlMjhiNDJmYjg2NTdiYmU1YzU3MTVmZTVkOGMgcHkzaworODIwNTIgNmJmZGNkMjVlZWE3MGRmMDNlM2NiMTMyNmRlOGMzMDBhYTE0ODY1MiByZWxlYXNlMzEtbWFpbnQKKzgyMDUzIDVjMGQ4YzI4NGMzMmRjOGU3YTAyNjkzZjI5MmQ4YmUwZTYxODc1ZDcgcHkzaworODIwNTQgNmE5OTkwZWY0YTZmNWU5NzMyYTM5OGIxZGFiMjdkODMzOTFjMzBjYSByZWxlYXNlMzEtbWFpbnQKKzgyMDU1IDQ2YWI1ZTRkYmE2YmFjN2QxZTdiYjIwZGJjZmUwMDA1ZTI4YTY2M2IgcHkzaworODIwNTYgMWRhNzczM2U4ZjI0NzMxYTBiODhkYmQ2OTA3ODA0Y2EwMmExMWRjMyBsZWdhY3ktdHJ1bmsKKzgyMDU3IGYzZGQ5MzA2NjViZDE3OTM2MzA4ODEzMzA0YTJjNDA4NGM1YmIwOTEgcHkzaworODIwNTggZGExYWFmYTU1YWUwMjM5ZWU1MjZmZWM4NGE0YzQwNDI2NmExMzFjZCByZWxlYXNlMzEtbWFpbnQKKzgyMDU5IDkwN2Y1NjQ0NzZiZTY2OWViZWFlZDQxOGVmZWFkMmViZTYwYmZjYWMgcHkzaworODIwNjAgNTljNjBhNTliMjdhNTdlN2M0ZTE2MmI2YmVkMjY0ZGYwMmM2ZmRiNiByZWxlYXNlMzEtbWFpbnQKKzgyMDYxIDlkNGQ0YWMwYTdiZmU4MTE3NGFmNGQwMTE1ZWNmZDBkNGE2YWMxOTAgcHkzaworODIwNjIgMDc0NDliMzY3OTM1N2RiMmVlYTk2YTgzMDJkZjg3YzAzY2JhNWI1YyByZWxlYXNlMzEtbWFpbnQKKzgyMDYzIGZhODMwMzcxYzcyNDE3NGZiYTFiNTNhMDk5MWYwYTNkNTE4ZDIxMDYgcmVsZWFzZTMxLW1haW50Cis4MjA2OCA0ZDY5YmRiNzFjOWFkNTFjZGM2ODY5NjQ1MjZjMjU2ZGJmMjc4ZDNkIHB5M2sKKzgyMDY5IDQ2MzU2MjY3Y2U4ZmJiNTlkOWIwNjc1Mjg4NTdkYTgxMDJmYWQ1YTYgcmVsZWFzZTMxLW1haW50Cis4MjA3MCBlNWY1MDA4ZmQ1NmQ1MGY0OTgwM2I1ZTVkYjJmODliYjcwYjkyODM3IHB5M2sKKzgyMDcxIGJmOTRlYjhmYWY2MjUzN2ZkNzQ0NmJlNDNkODljOWIyMmIzNTM1ZTYgcHkzaworODIwNzIgZWEyNTEyOWI5NGZlZWM1MDA5ODQ4MmM0ZWZhODI1ZWQ3MWQ1MzY1NiByZWxlYXNlMzEtbWFpbnQKKzgyMDczIDkwY2MyNjY3OThhMjRmYzUwYzE1Yjc2MjFjMWIzNDg0ODkyMDExNjQgcHkzaworODIwNzQgYzU0ZGQ1NzZkZDA1NTQ4MmYxY2MxNzMwNDRjZTdlZDBkNThkNjM2MSByZWxlYXNlMzEtbWFpbnQKKzgyMDc1IGRhNTU4NDYxZDlhOTRiYjdlZTllNzlmY2MyYmMwZTI0ZmU4YWU3MDggbGVnYWN5LXRydW5rCis4MjA3NiBlZjhhMmFiMjZlOWZlZmVmYjM5ZjU3ZjlmYzMyMGFmOGZiOTRjOTgxIHB5M2sKKzgyMDc3IDFmMGUwNzgxZjczZTQ2MWIxYTU5OTBiMTViMWViNTlmODlmMzk4MTkgcmVsZWFzZTI2LW1haW50Cis4MjA3OCA1ZGU1MmViMjUyZGE3MDZkYTNmNjk1NGQ1MGUxZTg0YTdjMTNjMGY5IHJlbGVhc2UzMS1tYWludAorODIwNzkgZGQ3MDA1MTQ1ZjZlNjVmMjM2ZWFiNWYyMDg1ODc5OTNiMmIzZDNjYiBweTNrLWR0b2EKKzgyMDgwIDE4YmNmNmMyZDFlMzdiMjgxODE0ZjQ0NDA1OTRkOGJiN2ViZDM1YTggcHkzay1kdG9hCis4MjA4MSBmNjc2N2RkZTliMjk4OWI4N2ZmMDYzMTY2MGM3YTc5Njg2YTRlMjVjIHB5M2stZHRvYQorODIwODIgYjRhNWE4NjllMWM1OWQ4YWYzNTk5OWEyNjZlOGVkYmM4OGE2NzdmYyBweTNrLWR0b2EKKzgyMDg0IDNhZmM3ZDhhNDQ1YWE1YWM5NWYyMTdjNTM4N2M2Mzc5YjVjNTc1NWQgcHkzaworODIwODUgMGRhNGM3ZDFmM2VmMjMzZTVhMzQzZTY0ZmQ1YzI5NDlkZGQ1NzczZSByZWxlYXNlMzEtbWFpbnQKKzgyMDg2IGI5MDE5ZjBkZDg5ZDNlMTc2OTEyNTJkMTI4ZjEwYTgzNWYxMGJkYWUgcHkzay1kdG9hCis4MjA4NyA0MjliMzI5YTAzZjgzMzRhNjI4Y2FkY2YyZTNhNjMzZDEwMGYyYTQ5IHB5M2stZHRvYQorODIwODggMzQzMDA1YzRhNGUzZjVlMWUxZGEwNjk5OTYyNjcyYWM2ZjcyMjE0NCBweTNrLXNpZ25hbGZkLWlzc3VlODQwNworODIwODkgNDQ2YTk2Njg1OGYxNDgxZTcwNDdiZjAyN2VjMjc2ZTQ1YjcyMmVmYSBweTNrCis4MjA5MCBjNGY1YzczNGRhNmU0YzEzN2FkMDYyNjkzM2EwMDg3NmM1OTg0OGMyIHB5M2sKKzgyMDkxIDVhMjhjNmNiNDc1MjdiOWQ0Nzc5M2ZlYmQ4ZmFlMDhkNzM0OTM1MzUgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMDkyIDA2OTUzNWU1MGE5ZTRmZGQ0ZGYwZGI2YmRlNmZmOTEyNTVmNTljYzUgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMDkzIDQ2NmMxNjJjNzMwYzIwY2Q0ZGM3NmQzNGRkYWFiZTRmMmY5YTY3MzMgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMDk0IDg5YTQyZTA3MTNkZGI5ZWViMDlkZjUwMTMwYjNhYmJjYjk4NDlmZTIgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMDk1IGVkMDc3NDBjNzY2N2FmZjllOWE3MGZhNTUxYzA1MzExZTc5OWM5ZGUgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMDk2IDg4MGJkZTVhYjdjNTQzNDUzMWNkNGQzMjY3OGJjN2U3ZmI0NjAyMGQgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMDk3IGFjNWY1NTM3YzczYjZkZTQ3NTRjZTkxNGUwY2I3ZDE4ZDI5NDBmNWUgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMDk4IDgwZDQ4MDA3NzQzMzllZWI1MmJmNjlhZDZjNzYzYWZlOGY2YmU3NjYgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMDk5IGY3M2ZhMzVmNmYwNWRlNDViNWRhNjgxZGYwOTM1MzNlNGM5NDA2NTQgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTAwIDM1ZjgwMTUyNjI3OGQ0YTRkMjY4YTI2ZGY3YzY4Y2NiMDFmYjQ4ZTkgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTAxIDVjZmUwNWYyYTRlOWM1NmFjMGNhMzYyMDM4NTU1ZDUwMzJjZjlmMmQgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTAyIGNlYzFiNTU4NDUxN2IwOTc1MjdlMzRjODI1OTVkNjk3NDkzMmY1ZDcgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTAzIDgwNjEzZGNmODA5MTBkNmQwYmFlMzk3Mjk1M2UwMDUzNzFjYjE4MDcgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTA0IDQ4M2YzNjJiOGVjMzA0MzgzMmE2MTE3ZjQ0NWE1MDNlODY1YTk3MDAgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTA1IDMwNjMzNmExY2UyOTExNzBhZTM4MDQzNjRlNGZmZTE2ZmZiYmM3YTYgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTA2IGE1NmZhYTZiOGZhMDJmZDY2NDljMTE5ZTY1ZTViZjlmNjdlMThiNmIgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTA3IDE5OTFhOWFhZmY1ZTM5ODUxNTIyN2UyMzU0NTZjNjJlMjA3M2U2M2EgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTA4IGI2MTQ2NDdhMzQwMDUyYjcxNzNlMDEzNDVlMjZkYmE1YWI1NmE4YTkgcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTA5IGViYWMyZWI3MjU1YjY1NTNiMWU3M2Q3ZGQ4YmE1OTlhNjA4NDg4YjggcHkzay1zaWduYWxmZC1pc3N1ZTg0MDcKKzgyMTEyIDkzODk2YTA5NDZjMmVmNTg0YTk3YzUzZGYwNTk0ODg2M2E3MjJiMDcgbGVnYWN5LXRydW5rCis4MjExMyA1Yzg0ZmNjMWQ5MDZlYWVjOWI1ZmQ0MDAzNWQ3YjUxOTIzMTlmMGNjIHB5M2sKKzgyMTE0IDZkOTc0NmNkOTM1YzYwZDdmNTk3NzRmNTJlMjRkODAwOGY4YmVhZTUgcHkzaworODIxMTUgNjU0ZTUzZTc1Y2QyYjAyY2FjMzgwMDcxMTcyMWU3NzFkMGI5ZTU1MyBweTNrCis4MjExNyBlZTM1ZjcxNTY3NjEyYjFlNTk3OGQ1Y2FmMmJlNDA5MjNmYzRlNTdmIGxlZ2FjeS10cnVuaworODIxMTggYzkxNTM4YzFhN2U2YzA3Nzg4MDhkOTk4NThjNTc3MzAyMTE5NDc3MSBweTNrLXNpZ25hbGZkLWlzc3VlODQwNworODIxMTkgNmFjZGRiNWZlOGUyMWJlNmRhYzA4OTU4ZDczMDI1OWJmODg3YTA0MiBweTNrCis4MjEyMCBiZGVmNDU0ZjcyMTJhOGJhYmUwMGRmNmM5ZDkxYzU3NzM5ZWU1M2M4IGxlZ2FjeS10cnVuaworODIxMjEgOTIzNzM1MTM3MDMwZjJjNGM5MDcxMjliMTM3ZDE3ODEzMWJlODQ5NiBweTNrLXNpZ25hbGZkLWlzc3VlODQwNworODIxMjIgM2YwOWNjMzhlOTdlMzBjZTMzNDFkYTM1YTJhMjc5MDg1ZTFhM2Y5YiBweTNrLXNpZ25hbGZkLWlzc3VlODQwNworODIxMjMgOTY1YTQ0YzJiMjk3YjliNmNlMmM4NzQwZWIxODEwM2ZkYTk2ZGRhNCBweTNrLXNpZ25hbGZkLWlzc3VlODQwNworODIxMjQgNTNkM2QwNjhiZjRjNGI5ZTcyMGRlYThlNWYxYTc4YThhMjE4NWNjYSBweTNrLXNpZ25hbGZkLWlzc3VlODQwNworODIxMjUgOTg2M2JjODYzMGEzOWRkNzNhYTZlN2Q2OGJmNWRlZjI2ODM2YmI3NyBweTNrCis4MjEyNiBjZTIxZWI1YzE3YTVmMzAzY2MyNzliMDU0YzQwNGY3ZjcwMjg1YWRhIGxlZ2FjeS10cnVuaworODIxMjcgZDAxNGQxZjY1ODIzMTk1YzExYWZjMzFhMmVhNjdkYjJlYzVmZGU5YSBsZWdhY3ktdHJ1bmsKKzgyMTI4IGRkODgwNTdiMjdiMWNkOWY1YmU5YmRmMWFhNDI1YmFkZGExYjM5ODkgcHkzaworODIxMjkgZjNkNDVjNDQzYjEzNzllMThiZjdkOGI2ODcyZmQyMGE3Mjc2ODcxNyByZWxlYXNlMzEtbWFpbnQKKzgyMTMwIDFhODZkODQ1ZmJjNmYzOTRhZGQ2YTQyMGMyN2Y5OGE4MjUwYmNiNWQgbGVnYWN5LXRydW5rCis4MjEzMSA3M2Y4ZmFjYTI5MGJmZWI2NDBjY2ZiZTQxZWI2ODZjMDI1MjU5ZWY3IHB5M2sKKzgyMTMyIGExMDFkMDczYTVjZDFmYmM0NTRmY2I1YzJmMDU1NWQ1NjY1ZTljZDUgcmVsZWFzZTI2LW1haW50Cis4MjEzMyAxYWY5NTY3NDU4OGQxZDNhZTJjYTg4NWVkMDMyMTYwZjg5NWUyYjgzIHJlbGVhc2UzMS1tYWludAorODIxMzYgNTgxNzM5NWEwNDhlNWZmMTRmYzg1MTQ3NzA2ZWZiZjYwNWY1MDdmYSBsZWdhY3ktdHJ1bmsKKzgyMTM3IDEzZTViMGIyMDcxYTJhNDIwNjdmYjAzZmFjYzkzMTQwOWZhNmJhNTAgbGVnYWN5LXRydW5rCis4MjEzOCA3ZTRjZDcwM2ExOGI3MzMzZTg4N2I1NWM5NTcxMDQwOTIxYzcyOWQ5IHB5M2sKKzgyMTM5IDFmMTBjOTEyYzEyN2ZjMzBkZjlmZTYzMjIxNmNkZmYwNThmOTFkZmMgbGVnYWN5LXRydW5rCis4MjE0MCBkYWE5MTg4OGRhNTJhMzk2NjM1OTRkNDFiMGJmMzc4MTlhMjkyMGI3IHJlbGVhc2UzMS1tYWludAorODIxNDEgZjI2OGMyYWUwODM1ZjQyNGIzYjA3ZGRlOWM5NGNjNTQxN2MzZTAyMiByZWxlYXNlMzEtbWFpbnQKKzgyMTQyIGFmNzUxYTFkNmY0NDk0N2EyNDE0M2FlYzU1YTRhNzA3NzkyMzhhZTggbGVnYWN5LXRydW5rCis4MjE0NiAwY2Q5OWY4YzMwZTEzOTAwMDhhOTVlMTQwYzY0YzI5NjQ4OTA0YjhmIHB5M2sKKzgyMTQ3IDBhZmQ3NjBlN2M3NjUzMWIwZGZkNDFhYjMwMDU1YTE0NDhmMjBkYzQgcmVsZWFzZTMxLW1haW50Cis4MjE0OCAwYjdhY2RiZDAyZWIzNDM4NDI5NjhjNzg1OWMzYjJmMzdjNWFmYTg5IHB5M2sKKzgyMTQ5IDVhMzI1ZTBmMWZkMDEzNTdmODRiNThiNWVlZTE1MzY0YzQzNjdhYjIgbGVnYWN5LXRydW5rCis4MjE1MCA2ZTVkMjFlMjIzZDIyNDg0MTZmNjhlZWQwZDRkYWU5Y2JlYjNlODNhIGxlZ2FjeS10cnVuaworODIxNTIgNTZlZDY4YzIxNWE3MWZmOTdhNDJmZjU5NjhmNTY5NTIyYWIzYzAxMSBweTNrCis4MjE1MyA1ZDMyYjZhZmI1MmVlZWQ5MjY0ZDUyNjA1MjM3ZDYzMTE1NDM3ZWZkIHJlbGVhc2UzMS1tYWludAorODIxNTUgMTA4Zjk0ZDUzZWRiZTJhMWQwYWI4MzBiMDkyYjRiMTc0YzNhYjg5OCBsZWdhY3ktdHJ1bmsKKzgyMTU2IGQ5ZmNiYTRjYzE0NTQ1YTlhODRlNGZkZjc5ZjgwYjAzMzJhNGVhN2IgcHkzaworODIxNTcgZjkxOGQzNWVjNTZiODUyODkwMzk0OWU2MGZiMDMwMTk5N2EwMWE0OCBsZWdhY3ktdHJ1bmsKKzgyMTU4IDM3NmU4MWY5ZWJiMWQzOTFmN2M5YmEwYzZkMTU1NzZkOTc0ZGI5NjEgcmVsZWFzZTI2LW1haW50Cis4MjE1OSA5MDYwNjNjZTcxMTk2NTk1OWM5OWRiNDViZjg1MTBhZDkzZjY3NDg3IHB5M2sKKzgyMTYwIDE4NjM1Y2JkNjZlMGEzM2FkNDI5ZTU1NDFhN2ZmNzA5N2EyZmY0NjggbGVnYWN5LXRydW5rCis4MjE2MSBmNzhmY2IxYjIzZjViOGUwMDEwM2RjMTZlMDgwMmI1MWFlMDA3ZjNjIGxlZ2FjeS10cnVuaworODIxNjIgMWM2OTVjMGFhZmZiNDhjMmQyMjZjNWFhN2YyZTA0NjBmYmM2NTFhYSBweTNrCis4MjE2MyA0ZTI0ZGZlZGY4MGM1MWU1MDA5YWFiOTY0MmFlYTY4ODYxYTY2NDcwIHB5M2sKKzgyMTY0IGExMjA2YTY5ZTc3YTUzYjkwY2JkNjZjYTA0ZDQ5MmFmMmQxZTBhM2QgcmVsZWFzZTMxLW1haW50Cis4MjE2NSA1M2ExNTJiNDAwYTdlNWJjNjNjM2U3MjhkOTgyNDJlYTEyYjFhNmIwIGxlZ2FjeS10cnVuaworODIxNjYgZjE3YTJjMWUyOTE5MjhjNDYzNzE2ZTAwNDcxN2M4ZDY5YjllYjJjMiBweTNrCis4MjE2NyA0ZGQ4Y2ZmNmI3YmViMWY2ZjEwM2M0Y2NlNmUwOGQwNDZiODgwYzE2IGxlZ2FjeS10cnVuaworODIxNjggZDE1YmU4YjVjN2NhZDk2ZDRmYmYzZDA2YmQxYWE5MGQ1MGQ2YWEwZiBweTNrCis4MjE2OSBlOWZiMDQyZTQ2ZmI1MDAwNWY3N2VhMTY0MzNlNGY0MTg1ZWY0MmRjIGxlZ2FjeS10cnVuaworODIxNzAgODgzNmQyNzE2NzBiNmJiODY0ZjFhYjNjNDRkNjUyYTk5MjI2ODM3OSByZWxlYXNlMjYtbWFpbnQKKzgyMTcxIGViOTVhZjBhOTljYmIxYmEwYWJmNWRhNWE0MTk2Zjk1NTZiM2QzNmUgcHkzaworODIxNzIgMjkwN2NlOGJmYmI2MDI3NjE3YjlmYTQwOWZiNjIwNGRiYjhjNjY2ZCByZWxlYXNlMzEtbWFpbnQKKzgyMTc3IGNhNGYyZTk4NjliNjc1MmZjZDljYmFiMTEyYjExZDkyNmQ3N2M2YzkgbGVnYWN5LXRydW5rCis4MjE3OCA0MjZlZjljMzc5MTZmYWZkM2I4YjVkYTQ2Njk3MjEwZTliMjlmNmUyIHJlbGVhc2UyNi1tYWludAorODIxNzkgMDc0ODU5ZWNkYzE4NzMyMmRhOTYyMzY3ZWYwZDdhZWVkYjUxMjcwYSByZWxlYXNlMjYtbWFpbnQKKzgyMTgwIDc2YmM2YjU3NzM3M2NmNTRkZmVkZDFiMTBiMmY3NGQ0OTM1ODNjN2YgcHkzaworODIxODEgYzhkNWQxMjA1ZmU4MzBhNWIxZDZhNDIwNjAxYjYxYmFiZWQwY2ExNiBweTNrCis4MjE4MiAwZTQ2MzdlYTIwZDAwMTNhNTcwZGM5MTIwNjhkYzc0Mzg1MWMzODgwIHJlbGVhc2UzMS1tYWludAorODIxODMgNjZlZjlhNzdjOGFmZDVjYzE4NTJhNjc2MjJhYWUzMmU4MWFlYWMwNSBsZWdhY3ktdHJ1bmsKKzgyMTg0IDNjZjM1MjMxZjdkM2VkMzc1YTFhOTlkZmQ4NWI2ZmYwYmM2NjZhZjYgcHkzaworODIxODUgM2FmZTM2MWVmY2YzOGJmODg2NjVlYTcxMjMxNzQwYWY3YzE3N2Y1YSBweTNrCis4MjE4NiBjZjc5NzQxZjdhMjNmYzU1ZmU1MDM3YTc1YmFjZjNhNGVjMWMyNzdjIHB5M2sKKzgyMTg3IDk1ZDIwMzVhMTY0YjliMDVlMDU0MGQ2NmE4MzY1N2MxNGM1MTE0ZGMgcmVsZWFzZTMxLW1haW50Cis4MjE4OCA1ZjQ1NjkyNDg5ZGExZmQzNTYxZDA2MzljNjgwNGYzZDEwZGE3ZWRmIGxlZ2FjeS10cnVuaworODIxODkgY2IxYWI4ZTkxNTgxMDcwODdlMDFjM2Y5ZWEyZmU4ODVlNTNjM2U3OSBsZWdhY3ktdHJ1bmsKKzgyMTkwIDYxZmM4NGJjNGIxNDYyNjVkMGNjOWJkOTQ0NzM2OTNhZTFkY2UxMjcgcHkzaworODIxOTEgYjE3ZmNkZDM4YTViNDAyYTBhMDExOWJjYjYwYzEyMzcwOTExODI1MyBsZWdhY3ktdHJ1bmsKKzgyMTkyIDBkNDI0NTQxMmQwYjUzM2I1NTk5NWVkYTJhODM0NmYwM2QyODQxMzggcmVsZWFzZTI2LW1haW50Cis4MjE5MyBjNTUxNTdlMDNhYjk0M2Y5OGJiMmE0ZjQ2OTg2ODI1ZWY2YmFmZjgwIHB5M2sKKzgyMTk0IDQ1YmFhNDI5ZmM0OWNjZDk5MTViNmQzMjA0NTUzMTZlYWM5NWEyN2QgcHkzaworODIxOTUgM2Q2ZjBhMjA1MGUyOTI2ZjcwOTNkYTJiMWNlOTUxMjZiZGZjNTU4ZCByZWxlYXNlMzEtbWFpbnQKKzgyMjAwIDVkNTM4ZDFlNzA5OGQ5NmFhMWIxOWFjNTUxMDM2NzdkYTFiYWUwNjYgcHkzaworODIyMDEgYTM5YjUyZWUwYjFkNGQ5MmVhYjYyYWE5OWRmYWVjOTAzYmQ4Zjg0NyByZWxlYXNlMzEtbWFpbnQKKzgyMjAyIDg5Mzk3MDE0MTYwODJhMjliZTUxOTRmMGY1NWQwZjUxNWU2ZjYzNDMgcHkzaworODIyMDMgMzQ3NDRhNzYxNDNhOGU2NTZlMWI2MWE3Yzk0ZjNkM2Q2ODIzM2MxMCByZWxlYXNlMzEtbWFpbnQKKzgyMjA0IDIxZTg2ZGQzMjhmMTU3ZWM1ZmM3MzExZjc1MTlkNWQzYjNkOTcyODEgcHkzaworODIyMDUgYjhiMGExNWY4YTdjYTRlODQzMWJhOWEwYTUzZWIzODRmMmZkMzAyMCByZWxlYXNlMzEtbWFpbnQKKzgyMjA2IGJiNjIyMmE0ZWQyNDI2ZTljN2JlY2M5ODc1ZjFjMDk1YjBlMWZiYjIgcHkzaworODIyMDcgMTNiMmE1OTJjMTg2ODNlMmZkZmUwNDc2YTA4MTNiNWFkMGFiYTAwMCByZWxlYXNlMzEtbWFpbnQKKzgyMjA4IGJjYzBlODI1ZmFhMGNhODBlOTMzYTczODRkZWE4ZmM5NDkyOWMwZTEgcHkzaworODIyMDkgYzRkZDVhODg5ZWNkZmI2ODNmZDk2NTg2ZWVjNmMyZGE1MGIzOTk3NiByZWxlYXNlMzEtbWFpbnQKKzgyMjEwIDQ2YjQ4N2U0YTc1YjhjMzlmMDg4MGZkM2M5Yzg2ODNhNGM2M2U5MjIgbGVnYWN5LXRydW5rCis4MjIxMSA1NzExNWFiMDZiMjc4MDA2MTM2ZGEzOWVmNGRiNzdiNGE5MjViZjM2IHB5M2sKKzgyMjEyIDU5OGU4ZGMxOGI4M2U4OWQ2YjcwMmM5NDI1YTFmZDBhYmI5Y2I5NjIgcmVsZWFzZTI2LW1haW50Cis4MjIxMyBlZjY0MmUyNDA0N2FiNjgxNTY0OGYzYzllMmRjNzliMTExZTdiYTM1IHJlbGVhc2UzMS1tYWludAorODIyMTQgNGUwOTllNTAwNGExZTgyNWNjMjQ0ZjExMzcxMTZhNmE1NzhkNmE1NyBweTNrCis4MjIxNSBkOTZhY2M0MWM1OWYyZjQ3N2Q0YWRhNTFiNGVkYzIyOGQ0ZGRhM2Y4IHJlbGVhc2UzMS1tYWludAorODIyMjAgNjlmZGY2OGUwYjViNDYwNDExNTJiMjFiMGMwOGViOTQ3YTVlMDcxNSBweTNrCis4MjIyMSBiYTU1ODQ0YmY1YzAzMTRiNjk1NTNmMWJiNzM3YjI2ZWI5NDc2YzhjIGxlZ2FjeS10cnVuaworODIyMjIgODNjYTBlYTllZjFmYjIxNmNhZmNmNTBlNWU2YWJiZTBkZjZhNjRkMCByZWxlYXNlMjYtbWFpbnQKKzgyMjIzIDFjNWMxNDZkZTY0MjVkMDBlMDlkMGFjODM1YjlmMGQ5ZDVlNWY4MjMgcHkzaworODIyMjQgMGM4NzQ5MDc2N2JmMWM1MTY3OTI2MzZjYzdhZTIxNzRmODA2YzkwMSByZWxlYXNlMzEtbWFpbnQKKzgyMjI1IGI2NjNjZjZiYmU4YjM3MWNiYzRiMTA2ZDhmYWU5NjE3NDkyNmQ5NTMgbGVnYWN5LXRydW5rCis4MjIyNiAwOWViMzYyNmQyYWFlODExZDZlNDNiMzBlY2VlMzkzM2QzN2E1NzhiIHB5M2sKKzgyMjI3IDNkMzEwOGFjMjJiMmM2ZTU2ODU1MTk3MDZhNjhkYTUwOTIxYjljZjcgbGVnYWN5LXRydW5rCis4MjIyOCAyY2QyMjI1N2E4NmQ3YjgwNjlhNjMwZTRhNjA0ZDA2ZTllNWRjZTlkIHB5M2sKKzgyMjI5IGEzNGZkNmY4MTY1MTc5YmZhMzUyZmRmMWUxYThiYmU4MDA0N2I5ZjAgbGVnYWN5LXRydW5rCis4MjIzMCBlMjQ5OTBkMDU0NGZmZmY5ZjI0YTY3NmFjYTUwYWM1YTlhMTFmMTQxIHB5M2sKKzgyMjMxIGYyMzJjNTY5ZDIyNWQ3YzE0NzBkMjZjNmMwMWE1YWQ3YTVjOGNlYTEgcHkzaworODIyMzIgYzUxYmYzMTUzZjJjYTg5YjQwYTg4YjYwNGIyOGMwYWYxMzRmMzJiYyBweTNrCis4MjIzMyAxYmEwYWIwMmUzYjg1NzA3MzQxYWFmZjEyMjM3ZGVmZDMyN2NiMmY5IGxlZ2FjeS10cnVuaworODIyMzQgY2I2ZDliZDU1OWVmZDNhZDMzNmU1OTQ4NTVjZWExYTlmNDRlZWE4ZCBweTNrCis4MjIzNSBhNDU2YjAwYzNiNzUzYmRkOTY1ZWU3ODU4MTdiYzAwYTU3NWI0NzcwIHJlbGVhc2UzMS1tYWludAorODIyMzYgN2RjY2U2YTI4MWNlMmJmNmE1ZDQ3ZTg5OTlmMGU5MzQyMGNkNzJkZiBsZWdhY3ktdHJ1bmsKKzgyMjM3IDE1MmI0NDY0MmIyYzQxN2ViNmFlMmFiMDI0ZDNmZTZmZmNmZTQzMTggcmVsZWFzZTI2LW1haW50Cis4MjIzOCA0YWZlZjJlNDBiNjMzMjQ5YmQ2MGMzNjU2YjRlZTUzZjY2YWVhMWRlIHB5M2sKKzgyMjM5IDIxNTUyYTQ4ZWJkMTk2OGRiOTE1OGM0OTVmZTQ5YmU1NzcwYTUzMjQgcmVsZWFzZTMxLW1haW50Cis4MjI0MiAyZjZmZWQ2MDYxM2UxMmM4ZTkyMTEzMzQwZWM2YWM1YzFiMGY0N2NhIGxlZ2FjeS10cnVuaworODIyNDMgN2IwNGQ5YTY5OGFlZTY3NmMyYjA1OGRiZTliYTI1NDc2M2YxM2Y1NiByZWxlYXNlMjYtbWFpbnQKKzgyMjQ0IGQxNzEyNzZlZDc2ZGE3MjMzNGI3ODAwNjJmZDJhZmRkMTVlM2QyMjAgcHkzaworODIyNDUgMWRjYWU1MmM0OTVjODQ2YzFjZmNkNmQ4ZGI5ZDExMzJiNDQ1NDk3NCByZWxlYXNlMzEtbWFpbnQKKzgyMjQ2IDI5ZTUwOTc5M2QzYzQ4MThhOGYwYzU3MGJmNjk1ZDkwNTM1NWE0OGIgbGVnYWN5LXRydW5rCis4MjI0NyBhZGFmZWU5NTg5ZTQ0MjlhZGFiMDdmZjJjY2E1MWZmMGJkMzBjYzEyIHB5M2sKKzgyMjQ4IGVkODliMWFhZGM5M2QyZDFkYTc5MDg5MzU1ODkzODNhNDBkNDcyOWYgbGVnYWN5LXRydW5rCis4MjI0OSBjOTEyYjViMjRjOGYyZDFiMjRhNzA3NDVmMzI2YTE4NGM3MDljMzliIHJlbGVhc2UyNi1tYWludAorODIyNTAgMDE0ZTdjMDBkYzI4MDU4MzFmMmVmMjRmMTQ2OTlhZDI1YmUxYzdlNSByZWxlYXNlMjYtbWFpbnQKKzgyMjUxIDM5NmViNjYwZWU5YjQwYmQ5ZWYyNTg1MmY1MDIzMDdlZmU2ZjNiZTAgbGVnYWN5LXRydW5rCis4MjI1MiAzNTJkZGEwNzcwN2JmOTI4ZDNkYjllOWNlNGM4ZDhmMWNiZDhmZDIxIHB5M2sKKzgyMjUzIGEzOWNlYjZjZWRlMzE1ZDgzMzU4MjMzNzdkMmFiMzI1YTIwNDk2YzYgcmVsZWFzZTMxLW1haW50Cis4MjI1NCA0NTZkNmM1ZDI2ZGM2ZTZlNWVmNjU5Njc1MDFhMjBkNjU4YWYzNGNkIHJlbGVhc2UyNi1tYWludAorODIyNTUgN2ZkM2Y2ZWFmNjQ5NWMzMDdkZWI0NTk2ODMzMDg3YzFlYWJjZGMyMyBweTNrCis4MjI1NiA3MDY2ODhmZTQ1OTM1NjczZjk1MzQ0OGI3OGE3YjIyY2ZjYzMxNWY3IHJlbGVhc2UzMS1tYWludAorODIyNTcgNWZiM2YxYTc0NzI2YTZiODNkOWFhYjRkYzA3M2Y4MWZlMTIxNWI3MyByZWxlYXNlMjYtbWFpbnQKKzgyMjU4IGY2ZDVlYTc2OTI3Mjc5NjM0MzE4MzAyOWU0MmY5NjQyNjdmYzAzODAgcmVsZWFzZTMxLW1haW50Cis4MjI1OSBlNDc1Mzg1NWVjMDFiYmU1MTYxNDcyMjdiNTE3ZjdmODY1MWE1OTM1IHB5M2sKKzgyMjYyIDZlYTZkODUxNTBiMTJiODFiNzkzNDhhOTEzOGU0NmE4YTk5ZjhhNDQgcHkzaworODIyNjMgNTQ3ZTY1ZGI0ZDM4ODJlZmViOTkzMzdkY2MyNGZkOWU1ZDJmOTg0OCBweTNrCis4MjI2NCA2YjQ1NDM3N2FmZmVkNThmNzc3ZDUwNjBjZGJkOGFhNTNhYzgzNTI2IGxlZ2FjeS10cnVuaworODIyNjUgODE1Mjg0YzlkNzE5MTU0ZGEzNzkzMjBhMTFhZGE5ZGYwMTE5M2M0YiBsZWdhY3ktdHJ1bmsKKzgyMjY2IDY3NmE0ODBlZmMwOGNiZGE0Y2U4NTdiOTUxNzhlYjg5MjdhYzJmNDMgbGVnYWN5LXRydW5rCis4MjI2NyBmNzliZTc5ODEzMGYyYjFjZmM4NWIyZmJmODkxYWU2ODNkYTZkOGE2IGxlZ2FjeS10cnVuaworODIyNjggZWUxZWQ4MGQ3OTYzMzkxNzk1Y2MyNTE1N2I0ZTMyODYwZGY4MDA2YiByZWxlYXNlMzEtbWFpbnQKKzgyMjY5IDFhM2Q4ZWMwYzVmYThhYjY1ZGVlMTU1NGI0M2Q5ODcwMDY2NTY2YTggcHkzaworODIyNzAgNWIzOGI1MjM0ZGVkYjcyYWRjNzQ2ZDUyNjg0NGFkNzUxZDM2YzAwZiBweTNrCis4MjI3MSAwMjg0MmVjZDhlNWI5NGFkYThiYWMzYmQ2MjI5M2FmYzU3ZWQ3ZjdlIGxlZ2FjeS10cnVuaworODIyNzIgYTNkZDM5ZTM2YzlkZjE5YzYwMGZmNWY4MWE5ZmNkM2QyZDQzZDdiOCBsZWdhY3ktdHJ1bmsKKzgyMjczIGYxMTc0ZTc5ZjdmNDNlNzU5N2Y2YjczYzUxMzNmYTAzMTE0NDlhMDAgcHkzaworODIyNzQgZDNjNzVjMmY0NmJlMjZiYmM2OWVmMDlmYzJmNjgxYWIxYjM0ZjY5MSByZWxlYXNlMjYtbWFpbnQKKzgyMjc1IDAyMDQ0NTczZWVlYzFlYWEzM2MzYWE0NjczMGI4ZjU5ZjQzY2EwNzQgcmVsZWFzZTMxLW1haW50Cis4MjI3NiA2YjAzMTI0OTM3NTU5ZTcwOWI0ZDgyZWExYTdkYThjYjFkOTY3M2RiIGxlZ2FjeS10cnVuaworODIyNzcgYzUwNTYzODI0MDk0NDQ5YTc4MDI5NTRkOTY1NzJhNzk0YWE3YTRiZiByZWxlYXNlMjYtbWFpbnQKKzgyMjc4IGM4OGY3NjAwYmIxN2JhZTcwODU4MTZlMDQ0ZWI0MWMzZDZjN2FkOWIgcHkzaworODIyNzkgZjUwNWRmMDNhN2Q3Y2JmNzM5NjEyZDcyNDdkYWQxOWFhNDE1YTdhNyByZWxlYXNlMzEtbWFpbnQKKzgyMjgwIGIwNGNlZjU1ZmRmNDNjYzZjMjI4YzNhNjE1OWIwMWZjOGRjNjg4YjUgcmVsZWFzZTI2LW1haW50Cis4MjI4MSA3ZDkyODAyOWJjMGU5ZjM2MDY3ZTdjMGQ3ZmI1YjllMzM3N2EzYTg2IHB5M2sKKzgyMjgyIGVlZTI1NzkyODMwMDFhOTgwNDk1NjhmMmVkNGI3N2NkZjFkNDMyYzUgcmVsZWFzZTMxLW1haW50Cis4MjI4MyBkY2Y5YmNkOWExZTA4MTA0N2RkZjNmMDNiMmY5ZTIwZjhiOWYzZmY3IHB5M2sKKzgyMjg0IGExODMyM2ZiYWY5NThmYTQ3YTE1MzAwNDNlMTEwMTJkYzdlMjFmNWIgbGVnYWN5LXRydW5rCis4MjI4NSBkZWVkMTU2ZDMzZDgwNmYwZGRjMzY4YmQ3NDBkOTgxMjBjNTI0Mjc1IHJlbGVhc2UyNi1tYWludAorODIyODYgMGJlMjQzOWJiY2Q4MDE4NWZlY2UyMWZhMzBkM2ViZTk1MWYzMDBiYSBweTNrCis4MjI4NyBlNjQ3NDZlMDJlNDEwMTAwZjI2ZTJiOGExMmUxN2NmMDc1NDhhYjllIHJlbGVhc2UzMS1tYWludAorODIyODggMjgxODI4M2MxNDlhMmY0N2JlMzgwYmQyZDk4OGY2Y2Y0ZDM1MDFiNCBweTNrCis4MjI4OSA5MzNhMzU1NmY1NjMzNTg4ZmIxMmIzNjg4ZDlmMWM3ZjNlZDAyOGM5IHB5M2sKKzgyMjkwIGVjMGZkNWE2YmI0NTZmNzg3ZTA0MjdlYjBiNTFjZWZhYmM3OTE2MjcgcHkzaworODIyOTEgY2I2ZjNhNDQxYWMyZGUxNmUxZWRmZDZkYWNjNjgxZWE0ZjljZjA1NCBweTNrCis4MjI5MiAyZjM1MDFmOGQ0NTZmZGZkNDBjZGEwYmMyOTA3MjlhZGE0M2E2NjkxIHB5M2sKKzgyMjkzIDM1OGQ4NmE1NzJmYjE4OWEyNDM1MDllODY1OTVmZWE0MTc2NmI4YzcgcHkzaworODIyOTQgY2JkNTEzOWU4ZmU0ODk3NWNkYmE5ZDMyNTJjOWQ3M2I2YTg2NGZlNCBweTNrCis4MjI5NSAwODk3M2U2MDhhMmE0NDBmNWU3NWFkNmJkYWQ5NGIzNmU4YmExYzBlIHB5M2sKKzgyMjk2IDA1NTU4ODRlOTg2MjM0YjgzMjA5M2E3MzllZWI3MDYxNDdjMWNiYzIgcHkzaworODIyOTcgODIwZjNiNmNiNTUxMTg3NDk3NzFmZDNjYTlkYjI0NGIyZmNlMmVlOCBweTNrCis4MjI5OCA1MDRjNDk5ZThjOTU4MmQ1YjE3ZGI2NmE3MzFiMjY2MDgyNWUzMjEyIHB5M2sKKzgyMjk5IDlmMjI5NDg3NDkxMGNlZGRiYjFmZTVmYWE2MTczZTUwYWI5ZDEzNTggcHkzaworODIzMDAgOGE3Y2NiOTYxODE0NTkxZjliYjg3ODY0N2Q5NGMxZjU2MDBhMmVkZCBweTNrCis4MjMwMSA4ZGY2MTkyNTkwNTY0ZTY1ZTY3YTY0ZmMwNjFhMmQyM2ZhMjk2OTIyIHB5M2sKKzgyMzAyIDMyNjUxZWU3NzllZDAwY2YxNzIwNzVlMWFlM2ExNTAwOTc3YWEzNGIgcHkzaworODIzMDMgMzY3MGM2NmVlMTQ5YTVjMzgzOTk2YjkyNzMxZDkwNDhjZWJkNWQ1NCBsZWdhY3ktdHJ1bmsKKzgyMzA0IDFkMTc5N2FmNDYyMjBiNTcyMDUyZDEwYTFlYmExNjM0NGY5MGY1MDQgcHkzaworODIzMDUgYWEyNjJjNWIxOGI1MzI2ZGJhMTJjZjJiZTg5MzM4ZDhiYjlkNjhjNCBweTNrCis4MjMwNiA5MzUwNzVkMzM1ZmU4YmU3YmJiOGVlMzc1ZDg2Y2Y1YTI0ZjMzOTlkIHB5M2sKKzgyMzA3IDQ2ZmVjNzdmOTVlOGQxNWVkMDI0NzY5MjZmY2FjYmQ1NjhkNTRhMmUgcHkzaworODIzMDggNmVjODI1YzliM2I1MDFmMmFjMTI4ODMyZGI3M2YyZjRkODRlN2I2ZSBweTNrCis4MjMwOSAyZTM3NjAzY2EwNGRhMjZiNDEzNzE1YmQ4OWRjMmU4NTJiMGY1MmMwIHB5M2sKKzgyMzEwIDRhYTViOTU4OWM0MjEyMDkyMzgyYzFhM2Q5NjdmNGIyMTU1NTE4NDEgcHkzaworODIzMTEgYTg1N2RkNDA3OTY0ODJmYWY0MmI4MTZhYTM5ZGIyODVhZTExZTgxYyBweTNrCis4MjMxMiAyYmMwODAwMGE4NTcyN2UxMGVhOTQ4MzQxZDA0M2E1YWRjYTM5MmVhIHB5M2sKKzgyMzEzIGRkMzBiYzVkMTg0ZTkxNDZhYThlNDViNGZiMjc0Zjg5YTcxZTM5ZjcgcHkzaworODIzMTQgNDg5M2U0MDA5ZjU2NzEyNDhiODZiMGQxOWY3NGM5ODkxYzM4ZGI3YyBweTNrCis4MjMxNSA5ZjY5OWU1MTRhNjJjMjdlNTI4NjgzZmVjZDEwNDliYjMxY2JkNDkwIHB5M2sKKzgyMzE2IGE5Y2VkNDIzZGFjZTc1YTI3MzJhNTgxMDNjYTBmODFkOTBjODI3MGYgcHkzaworODIzMTcgNDdlMjlhNWMzZGRmZmYyNTBkZTM2M2M1MzE5ZGM1OTRhZjk2NGRmYSBsZWdhY3ktdHJ1bmsKKzgyMzE4IDNiZGNkZWNlYTU2MTBlMjZmNzUzNGZhOTYyMTY2ZmE5ZDg5YzcyOTEgcHkzaworODIzMjAgYjA3YjJjOTU0YTgwNzdmNGM5YWQzZmM0ODkzMTRlZDg1NzRmMmNhMSBweTNrCis4MjMyMSBkN2UzNDIzYzlkYTgyMDFiYjRiMmFkM2UyM2U5MjQ0MzBhZDAzYWUzIHB5M2sKKzgyMzIyIGU0MmJlNmU2YWMyZDczNjQyZDNmMDJhOWYzYTFmZWZkZDljMTczMjAgbGVnYWN5LXRydW5rCis4MjMyMyBmZDFhMTEyOTNlNjJlMWNiNGJjMjAxNzliODQ2NDk5ZDk0MGQ1YWNlIHJlbGVhc2UyNi1tYWludAorODIzMjQgOWYwMTg4ZTRmODFhODg2MjcwOTRmZTFiYTNlNjNiOGU0OThmYTIzMCBsZWdhY3ktdHJ1bmsKKzgyMzI1IDIwMDNiNzBhOWJhZGRiNjUxMGU4ZmU5OTE0YjRhOWRkMTE1MjAyMDEgcmVsZWFzZTI2LW1haW50Cis4MjMyNiBlYWM2NGE0NjEwZjEyMjYyYjZiNTViMTQzYjQ4ZGFmNDdlMzA4ZjE2IHB5M2sKKzgyMzI3IGI4ZDM2NWRhMTc5ODk0MWI3NTMxMjVlZDJiYjU4Zjk1MWMzYTJlNGIgcmVsZWFzZTMxLW1haW50Cis4MjMyOCAyOGY5YTAwMGEzNzlkNGM1ZTEwOGFmNTk4ZjExMDNlOGZiZGYwNTE1IHB5M2sKKzgyMzI5IDNjZDE2YWM1MTg3NzE1M2ViMmZkODY1MWNlZDUxMzZmMTBiZmI2MDQgcmVsZWFzZTMxLW1haW50Cis4MjMzMCBjMGE0OWI2YTZmYjExZDg4MDY4MDk2YTg5ZGU5ZDg4MDk1YmNkODU5IGxlZ2FjeS10cnVuaworODIzMzEgZjgxNmI5OTFlNWIzMWNhNzcyMWU4YzI3MTBlOTQ1ZDM3ZGUzOWFmMiBweTNrCis4MjMzMiA4ODI3NjE3YTA3ZGM5MWY2ZTJkNjQzNjg1ZDcyMmM5NDU2YjZkYjI0IGxlZ2FjeS10cnVuaworODIzMzMgZDcxNDExYTBhNDczMTZhZWIzOGMxZWM5YThkMTQwMzY3Y2Y2ZjAxOCBweTNrCis4MjMzNCAyZGNmNDdiNTk0M2Y0ZWU0ZjVkOTMxNjliNjExMGUxZWM1NGE2YTQzIGxlZ2FjeS10cnVuaworODIzMzUgMzdjZTVhZGFlOGI5Yjg4ZTk3NGE1ZDlhOTg2YzljYjBkOTVjZGNmMCByZWxlYXNlMjYtbWFpbnQKKzgyMzM2IDc0NjU3OWE5ZWFkNzA1Y2U3ZmNkZGFkNTg4YzUzYTFhZDczYTA2ZDAgcHkzaworODIzMzcgMjViNzIyMWRkYTY5MWJjNWFiMzRlNWFhZTk1NWU3MTRmOWVkZjFlMCByZWxlYXNlMzEtbWFpbnQKKzgyMzM4IDNjYjNjZTdkY2FiODUwZjhmMTVjZGI3ZGZmYmUyNTdhYzVjMDdjMDAgbGVnYWN5LXRydW5rCis4MjM0MCAwMjkwNGM2ZWU1MDI5NzYxMTNkMmE2YTk0NTEzNGU4N2E2YzM5ZjQ0IGxlZ2FjeS10cnVuaworODIzNDEgMjUyMGI4MThkYTA1MjE5M2Q4ZmEwZjczNTBhODZjYTQzMDM1Nzc3ZCBsZWdhY3ktdHJ1bmsKKzgyMzQyIGM4YmRiMzJiMDRhYWFjYWFiMmM5OTlkZDI1YjcxODQ2NzYxNjM3ODEgcHkzaworODIzNDMgNjhiNjcwZjM2MTRlOTBiNDFkZGZiYmE3ZGMxMjhkNTk1NTgwMjQ5NSBweTNrCis4MjM0NCBjZTAzMjUyNzZkMmFmYWYyNDAzODFiMjJkNDI3OTYxMmRjOTBlYjM5IHJlbGVhc2UzMS1tYWludAorODIzNDUgOWNhOTUyNGQzZTU3OGE0MWFkNTg0MmIyZDUyYzk2N2UwNDM4Mzc1OCBsZWdhY3ktdHJ1bmsKKzgyMzQ2IDY5ZjZkMjEzMDI4MTI0YzczMDk5NWY3ZWI5YzU3NTE0MzkzNmZjYjIgcHkzaworODIzNDcgYjgxN2U3MTY1MTZlZGYwM2JmODYzNWQ3NjQ2MTUyNzlkYjgwYWFkOCBweTNrCis4MjM0OSA5NWY4YjI1ZTUzY2UwOWU0ZWU4MTMxZGIzYjU4NTEzZjU3NDQ1OGI4IHB5M2sKKzgyMzUxIDJjZjRjYTFlZDZkNmNkNmYzYWVkZDA2ZGE3ODVmNzczZTkwZmMwNmIgcHkzaworODIzNTIgYWNkODY0ODg2NWFhYzVlMWYzY2U3Njg3Y2RiNjVhZjM5Njg3NDBhMiByZWxlYXNlMzEtbWFpbnQKKzgyMzU0IGRmYmRiOThjOTJlN2YxYjdmM2Y2ZDc3M2M2YmU1YTdlZDE2MmJiZGIgcHkzaworODIzNTUgMGUxNmRkZDQ0MTU3OGViZGZjY2Q3OTEwMWY1ZWE1ZDIwMTI0ODVhYSByZWxlYXNlMzEtbWFpbnQKKzgyMzU2IDJhOGM2OGJhMDAwYmE0ZjIwNzVkOWY2OTNkYzg5NzEwODE1NjY0NjkgbGVnYWN5LXRydW5rCis4MjM1NyBlYmZiNmJjMDgyZDkyZWQ5YTQ5OTRjMDE0NzkzZGE3NTk4MzU3MThjIHB5M2sKKzgyMzU4IGE0ZTFjNTZiZTUzMmNlNThmNTUwYWZjZGQ0YjBkYWNmYWZhYjUxYzggcHkzaworODIzNTkgMmY5MDUxZmU2YWQ5YzY1MTUyMGY0YTFhNmUzMmZkNDNhZDNjOTFlMyBweTNrCis4MjM2MCBmZTQ0ODI4ZWE3ZWRkZTFkZWI1NzY5MTQ5ZjU0MTllZGQ2ZTI5N2YzIHB5M2sKKzgyMzYxIGM1MTkyOTIzM2UxOTU0OWYxMDQwMjEzZTFlZDU3NjkyNDJhZTY5ODcgcmVsZWFzZTI2LW1haW50Cis4MjM2MyAxNGY5NGMwMWEwMDJhNTgxMTk3ZDNlODg5NGNjMThmY2M1ZGUwMDlmIGxlZ2FjeS10cnVuaworODIzNjQgZjdiNTQzNTI3NzFkMmNmYmI3YzIwODQ5NmRmZjE1ZWM1NTk3ZTNmZiByZWxlYXNlMjYtbWFpbnQKKzgyMzY1IGI3MmMzM2Y0OTZhYzhlMWQ3NTc3MzA2OTVlOTI5ODYyMjA4ZmQ2MzggcHkzaworODIzNjcgNzE5OWZmMzg2ZjllYzdjZjJjOWFiYmNhYTg2MDJiN2MxMDgyN2VmNiBsZWdhY3ktdHJ1bmsKKzgyMzY4IDJmOGQxNzYyNmNkZmY0NGQ1Y2NhMDFlODNhNmJiMzA1YzhhNTc4OGYgbGVnYWN5LXRydW5rCis4MjM2OSAxN2YxN2RjNmQ0OGJjNGViOWY4MGFhMDQ1MTZhNjQ0NzJlZjgyMjAzIHJlbGVhc2UyNi1tYWludAorODIzNzAgMDcxMzFmMDhjM2RlMTk1YzAzODM1OTFjMzQ1YjRhYTMyM2VlMWMwYiBweTNrCis4MjM3MSAyOTY0MjQzNzQ4MzYxNjU2ZDkwMTA2ODY3MDM1ODZiYzk0YTZmMGJmIHB5M2sKKzgyMzczIDllMjkxYWMwN2M1YmNmNTcyNTBmNTNlZDQ1YzZmYTkwZTM2ZmM0NWYgcHkzaworODIzNzQgMGZlOTc5MzI2NDJlNzdiYTdlNDJkNDM1OWRhNzMxZTc3MzkwMjNiMCByZWxlYXNlMzEtbWFpbnQKKzgyMzc1IDUwNzI1OTBiNGRmZGM0ZjAzZTcwMmUwNTNlM2QxYzY3OWRkYzdhOGEgcHkzaworODIzNzYgMjkwYmQwYzE1MGE2NDU4ZDgxNzJhMTQwOTE5N2VmMTQ5OGJmNTY4ZSBweTNrCis4MjM3NyAxNTgxNjZlZjZmMDZkMDE0ZmRlMDg5OTVkZmFlN2M3Zjg1NTYyMmU3IHB5M2sKKzgyMzc4IGE5MmFjNzU3MDExODNhYTE1ZmUyOTQ2NjhhMjRhYzI4ZTE1MDFiYjEgcmVsZWFzZTMxLW1haW50Cis4MjM3OSBiNWRmYTMzOTQ5OWMyODQ0MTRjNjA0NzU2YWY1MWI1OWRkN2M3YTZkIGxlZ2FjeS10cnVuaworODIzODAgYjg4ZGE0Zjc3ZjY4NmM3NWQzNDExMTA3MDRmZjJhNGQzNjRjMTQwZCByZWxlYXNlMjYtbWFpbnQKKzgyMzgxIGZjYWU5NTlhMmZhYjUyZjQwNmU3ZTcyMWI1Y2RhNmY0NmViZTNiOTUgcHkzaworODIzODIgMzIxZWRiYTVmNzk1YmY2YTAwZmVkNmE2YjYxNWJmYzhlMjc1ZTQ1ZCByZWxlYXNlMzEtbWFpbnQKKzgyMzgzIDI1ZmJmMDIzMTAyZDliOTBjNjdlNDhhNDJjNGU0NmYxNmIwMTE2NzYgcHkzaworODIzODQgZTZiYjk5MGFjOWY2ODcwMjA0YmNjNjAyMTAyOGJmYTc2YTZiYzJkOCBweTNrCis4MjM4NiA0ZmNlMjVhYmZkZDgyZmJkMDUxYmIxMjRjNjA3OWQ4YjM4NjNhNjA2IHB5M2sKKzgyMzg3IDE2ZDg4ZWNhM2MzM2ExOWRmMjVkZDY1ZjMyMmRiMjBhMjE4ZjYxYmEgcHkzaworODIzODkgZDM0Y2UwZGU5NDFjYTg5YTRjMzNkNTkzYzU1MWZiZTg2YzllZjBkMiByZWxlYXNlMzEtbWFpbnQKKzgyMzkwIGU2ZjFiM2QxMDQwYTQ3NWEwNDc2NTIxYmFiZjE1ZWU0Mjg5YjMzNDggcmVsZWFzZTMxLW1haW50Cis4MjM5MSAyYmM1NGRhNGI4MmMxYWI0YzI5ZTQ3MGQ3MmE2ZmY2ODliYmZiZTZhIHB5M2sKKzgyMzkyIDMwODQzYmUyZTExYTI2YzM0NTFlMTYwMTRjM2E3NTQxYjg5NTZmOGQgcHkzaworODIzOTMgMDQzZWYwNGY2NGQyMmM3YjY5OTg4MzRkYmE2MDEzZWYyYzY0M2EzOSBweTNrCis4MjM5NCAzMGUxZDhkMDgxMDU3ODBmMzNmMmFjNGZiZjFiYTczYWRjYWE5OWMwIHB5M2sKKzgyMzk5IDlkY2M5M2ZlNzUyODJlZGY4ZDJkODJmN2E0ODExOWI1NzFjZDVhYWUgbGVnYWN5LXRydW5rCis4MjQwMCBjNWFmZTk1NTI3NzkzYzgyODg0NmIzODZhZTQwODNmMGU5MmE5ZWIwIGxlZ2FjeS10cnVuaworODI0MDEgOWY1NDMwZTQ3NzcwMDdlM2U3M2NiNTA1ZTcyYzU0NjU0ZGMzYjhhOCByZWxlYXNlMjYtbWFpbnQKKzgyNDAyIDAxYzk1ODFjN2UzZjQ5NGRjMGYwMzIzY2MxMDU3ZWI4YmMwOWQxYmIgcHkzaworODI0MDMgZTljOGE5NjU4NGQ0MzRlMTA2MjNjZjRlMzBjMWI5ZjBiZmU4NGIwNyBsZWdhY3ktdHJ1bmsKKzgyNDA0IDc2YmMyNTVkMjlmZGY0ZTNiZTcwZTA2ODc3ZmQwNWUzODI3NWJiMWQgbGVnYWN5LXRydW5rCis4MjQwNSBkYjZmZDQwNWU1OTRmZDZjMzI5ODI2MzQ1MDM3MWYxNTlhOGZhODYxIHB5M2sKKzgyNDA2IDgxNmNkODU4ZDMzMWE4ZDUwNjY0MzljYzZlZTg3MzlhZTk3MDFmM2QgcmVsZWFzZTI2LW1haW50Cis4MjQwNyAzZTg3OGUyNjliMDllZTViMWQwNDYxYWVkNGY0ZjdjYzQ4YTczOGIwIHB5M2sKKzgyNDA4IDNhOTNhMDZlNWUzMGNkZmE4OTRiNzU3ZWZlZmIzN2Q3NzI3YWNhYjYgcmVsZWFzZTMxLW1haW50Cis4MjQwOSBiMDQ2MTZiZTdmMTRkNzA2MDQ0N2YwMzNkNDg2NjM0ZDI0NGQ5OTUwIGxlZ2FjeS10cnVuaworODI0MTAgY2U4MTQyMmVlMzViMzEwNThlODgwNGZjY2VkYTg1OTVkZWE5Nzc3MyBweTNrCis4MjQxMyBlMGQ1YTRhNDkxMTJhMjhlMTFkMDc5OTc4OTdhMDc0MTYxODUyMmI4IHB5M2sKKzgyNDE1IDhiOGYzNjk5NDFjMWVkYjQyODkwNmQ1Mjc5YmZlMzM0NmNjM2YwZjggbGVnYWN5LXRydW5rCis4MjQxNiAzMTg1YjA1NWY5Mzc2NmQyYWNmNGZiODNlYTg3MWIwNTRlOWM2ZjhhIHB5M2sKKzgyNDE3IGE4OWEzZDkyZjhhZWFkZmI4MjVjNTQzNjZkYzkyZjNhOTU0OTJlNzQgcHkzaworODI0MTggYTlhMjY3YTgxZGFjNDIzYWQ1OGJkNjQ1YTBlMGRhZDNiZWVkMjZkNyByZWxlYXNlMjYtbWFpbnQKKzgyNDIwIGM1M2UxMzVhMDhiNjkwYTkwNDU3MjdlYzM5NzdiNWQwMGRhMjA5NTUgbGVnYWN5LXRydW5rCis4MjQyMSBhOTI3MTliNDllNWViYWU4NWYwM2JiN2EzYTlhYTdjNzVmZjA4NDAxIHJlbGVhc2UyNi1tYWludAorODI0MjIgZmExMWQyYjRmOThhMmVlYjExNjFlNjdmMzhiZGVlN2E5MDcwYjQ2MyBweTNrCis4MjQyMyAxM2MwNmE2ZjQ2NzY3NmU2ZGQ5MzBlMzVhYzg4Mjg5ZTRiNGRiODMwIHJlbGVhc2UzMS1tYWludAorODI0MjkgNDNmMDZjYTM2YWIzMGQxNjhhMGNmMDdkYmFlYjQzNmRlZWEwOTNmMSBsZWdhY3ktdHJ1bmsKKzgyNDMwIGZlOTU1M2E2Zjc5OGQ3MTE5Mzg2YmU2NmU5MmQ1ZmI0NDBmOGQyY2QgcHkzaworODI0MzEgNmQwZGVkYjNhMjRlYzA3Njc0NDdlMWI5OTliYmUxZmJiNDMyNjZjMSByZWxlYXNlMjYtbWFpbnQKKzgyNDMzIGJhOWNmMGRmMjFiMDA5OTA3MmYxYTNhYzgwNzQzZmU5YmU2YmQwZWQgbGVnYWN5LXRydW5rCis4MjQzNCBmZWY2MzQ4YzJkZDZjZjIxYjUxMzdmMThhOTc1ZTI2MzFmN2U3NzhjIHB5M2sKKzgyNDM3IDRiMGM4ODI3NWYzYjY0MjU4NTM5NDQxMTg0ZTljMzY2OWFmOTg5ZjQgcHkzaworODI0MzggMzUzNzBkNzIzNmM5YzZhZTYyYjY0MjA1MDU4OGQ4MmEwOThjNzZjZiBweTNrCis4MjQzOSAxNzg2NjI4ZWE2ZmY2NDEwZGI5MDNlZjI0ZWYxMjRlZDU4NjZlNzlhIGxlZ2FjeS10cnVuaworODI0NDAgZTE3YjFjYjFiNjFjOWNjNjNmNjBmYzFlYzljMDljNGE3MDA3YjI4NSBweTNrCis4MjQ0MSBmNDMwYTg5MTk2YzlhZmVmM2RlZjc4YTI5NzVkM2E5MmUyNDFlOTU4IGxlZ2FjeS10cnVuaworODI0NDIgMzMwNGRjNTZkZGE0NDA3ZjhjYzY1Mjg4NzA4ZDg4OWFmYjY3YTQ3NSBweTNrCis4MjQ0MyBiM2JmYWJjMDQ0N2M1MThhN2Y4YjZiNTNlZTgwM2U5MWFiMDJhZDIzIHB5M2sKKzgyNDQ0IDM2YWJkNzU1NGJhZDhjY2EyNzY3MzZkZGY0ZjRjM2I2MWQ1ZTI0MmQgcmVsZWFzZTI2LW1haW50Cis4MjQ0NSA4YTY4OWYyOTc5NzBjOTVjNDA2OWNhOWY5MTA2YWY2ZTI2OTk3OTM4IHJlbGVhc2UzMS1tYWludAorODI0NDYgZWY2Nzk4YTk5ZWFkMmViNjcwMzNhOTc4N2I4M2YyOThmMzQ0NGI1NiBsZWdhY3ktdHJ1bmsKKzgyNDQ3IGI1NDBhNjEyZjYwMTcwMTVlYmM1OTVlNjBlMzQ0YWZlYTljNzBiYTcgbGVnYWN5LXRydW5rCis4MjQ0OCA3ZjE0OTZlNDExMjQ3MzhkZWY0YTY3OGZmYmY2ZWFjMWFiNmQ2ZDM1IHB5M2sKKzgyNDQ5IGU4MzRjNWQzYTlhMzNlMzA0NTg2ZjA5MWIxMTlhMTkwNThiYjVkYjcgcmVsZWFzZTI2LW1haW50Cis4MjQ1MCBhZWM0MjIxMTFjZGVhMzU3MzdmMDliOWNmMDNmMzAxYjA3YTZmOGEwIHJlbGVhc2UzMS1tYWludAorODI0NTEgZjFiYTRlNmQ2YzEyMzE3MzQyMWRmYzMwYThhOWE3MDBiMzY5OWE4OSByZWxlYXNlMjYtbWFpbnQKKzgyNDUyIDYxYWQ2ODk0ZWQ2YWE3NmMwYTM5OTdjODVlOWRhOGE5NzcxNWY1YjAgcHkzaworODI0NTMgY2I3ODAwYzY0OTEyM2NjNzQzMGFlMzEyYWE2NjJmYjVhNTlmYWY2ZCByZWxlYXNlMzEtbWFpbnQKKzgyNDU1IGRlMTZhOTE1YmQyYWM3ZDU4N2QyMGMzMzcwNmExNjY1OGMzNTAyMDQgbGVnYWN5LXRydW5rCis4MjQ1NiA1MjliMjE3NTMzOWJmMDYxNTc3OWZmMmNiODRlN2MzOTcwN2EzODhjIHB5M2sKKzgyNDU3IDQzYzA0NzExYWFjYmNiYWI1MjRhZGVjZmVhODRkY2RjNTU5MzI5MDMgbGVnYWN5LXRydW5rCis4MjQ1OCAzMTQ0M2NmNGRlZjJmMmMxYjU2NGM0YjdlODE2ZDRlYjQ4OTZlZTg4IHJlbGVhc2UyNi1tYWludAorODI0NTkgZmExNmFjYjJmZmRkNjE4NWE2M2FkYmRkOWJjZjEzN2FjNjcyZTZkZSBsZWdhY3ktdHJ1bmsKKzgyNDYwIGM3MmZkOGEyYWUwMWQwNjZiMGZhOGU4Y2RjY2JmYWZjYTcxYTM0YjYgcmVsZWFzZTI2LW1haW50Cis4MjQ2MSAxZWIzNmYxNjljOTcyOGZmYzcwMzczOWY0MGJhNGI0YzZmNmJmNmM4IGxlZ2FjeS10cnVuaworODI0NjIgZDNmYTE5OWI0YTE3NDY2ZDlkMzU2ZWFhNmU1MmViZDRlYzM4ZjM5OCBweTNrCis4MjQ2MyA4YmY2ZDhiZWFmZTFkNTRlOGM3MDEzZjY2M2U4Yzg3NjZlYzU5NjIxIHJlbGVhc2UzMS1tYWludAorODI0NjQgZjI3MWUxZDBlOWM0NDI0OTU0YjFjOGY3NmE0YjdiZDdjMmE0ZjZhZSBweTNrCis4MjQ2NSBkODMxZmMwYzI2MzQyYzMzY2Q3NTNiNDAyNGMxNWE3NzY0OThmMzUwIHB5M2sKKzgyNDY2IGI4YjExZDQzNDk0MDYxZDQyZjRmNmExOTEwYmJiNmI4NjM5ZjhjZGMgbGVnYWN5LXRydW5rCis4MjQ2NyBiMGJlODlmNzBmZjliNzZlZGMwZGI0MWNhMjA4ZDkxY2Y2ZjcwYjM2IHB5M2sKKzgyNDY4IDk5MDBhOTk4YjQ2MGNlZDAwYzVmMjQyZDI4ZDJhOGUzZGU5YTY3MWMgcHkzaworODI0NjkgOWRjNWYzODVmNDk0MmM0Nzk1ZGNkNGVjMDZhZTdjM2MxNjIxMTllYiByZWxlYXNlMzEtbWFpbnQKKzgyNDcwIDRkZTEzZmVhZWEwMTgwNWUxNDgxYzgxNTA2ZGFiNzNiNTIzZmExYmEgcmVsZWFzZTI2LW1haW50Cis4MjQ3MSBlYmUxYjNmZjhkMzAyMTgxODVhNDU3ZWIwMTIzOTc1Mzc1YWJhNDY0IHB5M2sKKzgyNDcyIDYxY2I5NDEwYTg0MjRiNTA4NTEzNzE5YTQyZmMyYWU0Y2QwMjFiOGUgcHkzaworODI0NzMgNGQzYjRmMzQxOTJiMjM5ZTg3ZDhiYTA3NzM2NjIwMTU2ODI5Y2M0MSBsZWdhY3ktdHJ1bmsKKzgyNDc0IDMyMzk2ZTgwMDQ4ZjlhODcwNmIxNmFlNjFiZDgyOWQ4OWQzMTlmMDYgbGVnYWN5LXRydW5rCis4MjQ3NSA2OTc1NmNkZjUzN2I0ZmEzN2RjYTlkN2M4ZjBmMzk5MzhhMjQ4ZTBiIGxlZ2FjeS10cnVuaworODI0NzYgOGUyMGZmYzYxOTg2NzNjYWFmZGM3MjAxYWI5YmZmNjgwOTU2ZmE5NyBsZWdhY3ktdHJ1bmsKKzgyNDc3IGNjNGJkNzY2ZmUxMDlhNTcyMWQ2NTFhYWUzNjU2NzA3YjM5MjIwZWIgcmVsZWFzZTI2LW1haW50Cis4MjQ3OCBjNTg1NWRkZGYwZTFmYWJhZTk4MWE3NWVkNGE5MzQ2NTA5MmI4OTljIHB5M2sKKzgyNDc5IDU2MTNkMmUxZDc3OTUyN2VhYjhjNGU4ZWQ3YTI2OGQyZTA4NGIwY2UgcmVsZWFzZTMxLW1haW50Cis4MjQ4MCBhYWU3MzgxYWMwYjJkMGE1YzQ5OGViNTJlMzNkN2M5NzQzNDI3MWM2IHB5M2sKKzgyNDgxIGQ5N2MyNDUyMzMyMTBjNzliYjY0OTk3YmRlOTFhYjQ3OGM5ODY2ODMgcHkzaworODI0ODIgMmFhYjk1N2JmNjFmZWM2NWFhY2JhZGU1YTVlN2ZmNmUyMDlkYjBlOCBsZWdhY3ktdHJ1bmsKKzgyNDgzIDZjZmU3YjkwNDY0OWEwNzNjMjBjODM2NDZjMDQ0ZmRmZGI1NjE3N2IgbGVnYWN5LXRydW5rCis4MjQ4NCA1ZDgzNGZjZGY5ODBjZGZhMWZhZDA0YmJlYzEzYmUzNDg5MzVmOGRmIHB5M2sKKzgyNDg1IDIzM2M4ZGFiOGZmYTlmNzEwNTI5YjA2NzFmYTUwZWZlZmQ1NjQzMGQgcHkzaworODI0ODYgYWM4MjNlNzE2ZDU3MTdlOGNjYzBlMTAyZjE2N2EzZGI4Njc0Y2YxNyByZWxlYXNlMjYtbWFpbnQKKzgyNDg3IGJiMjExYTJkZGFiZDVmMGI4NjJjYjhjZTJiZjc1ODRkNWEwZmY0MDUgcHkzaworODI0ODggNTVlZGY3OWFkODI3N2YzOTljNDdkMDllMzE0NTNlNjJlNDdmNjMyNyBweTNrCis4MjQ4OSBkMzVmOGU1YjQxOTdhOGQ3YTE1MDRmZjQ3NGRmMmY5ZThkMTUxMzAxIGxlZ2FjeS10cnVuaworODI0OTAgNDBmMTliMGJmYTYxYTU2YjQxNDBkMWNmNjVhYzAyZWI2Y2M3ZDEwNSBsZWdhY3ktdHJ1bmsKKzgyNDkxIDZhY2IyNTM1NmQyZjFhNjlkZjE0NDgxZDRmNGQ4NTVhMTk5NDkyN2UgbGVnYWN5LXRydW5rCis4MjQ5MiBiZThlMWE2ZWJmN2FiZTc1YTM4MTRjNDJkMzI5MDNiODliZWNmODg2IGxlZ2FjeS10cnVuaworODI0OTMgNGNhNWQwYWVhNDFkMzYwOWNmNDY2YmZlODM1OTExMmZmZjI1YTc2MyBsZWdhY3ktdHJ1bmsKKzgyNDk0IDhiYjkzMjg4ZGI2ZDY4ZTljMThhODVjYWI5NWVkYjJlMDNkMTUyYjUgcmVsZWFzZTI2LW1haW50Cis4MjQ5NSAyOTExNmIyZmNmZmU5MjgxMzcxNjRlMjc1ODU4ZmIzYzY5MDZkZGQ3IHB5M2sKKzgyNDk2IDcxODQ0MjFmODNiNTY0ZmFiNTlmZTJmYjMwYjQyMjc2NmFhMDJjNDAgcmVsZWFzZTMxLW1haW50Cis4MjQ5NyBiM2I5MTJkNDUzYTU4MmU0MWRmZmZlNzFhOTE0ZTFjZmRlN2JiNGY3IGxlZ2FjeS10cnVuaworODI0OTggOTljODRhNTFmNTc2NWJiZWJiZmY3NTA4ZmFmYzVmNGUwMWE1NDBhZSBsZWdhY3ktdHJ1bmsKKzgyNDk5IDJkNWY1MTUwZGNlMjRkYTdjYjY4NmJlY2NlZTAyYjI5NzU1ODNhMDcgbGVnYWN5LXRydW5rCis4MjUwMCA4MGM4YjQzNDEzMTJhMzM5YTAwZjM3NjMxYzM4NTUwMDc4NzhkN2NkIGxlZ2FjeS10cnVuaworODI1MDEgNTRmZGNjMGY0YmFjZjM3NDg0ZGJiY2NmMmQ3YWVlYzJiYzgyYTcxOCBsZWdhY3ktdHJ1bmsKKzgyNTAyIDIxNDU1OTNkMTA4ZGU2MmViZjc3MDk4N2E0YWMyYTU3ZDI2OGM5ZDEgbGVnYWN5LXRydW5rCis4MjUwMyA3ZjdkODIzNDAyYzY5YWU2MjMyYWUyNjA5M2NkNDgyYTRmMzU3ZjNiIHJlbGVhc2UyNy1tYWludAorODI1MDQgM2Y0NmY4YTlkYjU0OTUxOTMzOWZiOWQ1OThiNGJiMGZjZmRhYmQyMyBsZWdhY3ktdHJ1bmsKKzgyNTA2IDc2ZDkwODQzZGJhNjEzYzUwMTM4MWY1NjM1YjVhZWQ2YWY0NDFkZjYgcmVsZWFzZTI3LW1haW50Cis4MjUwNyAzNmQwMWMwMTdiOWJlZWY5MTdmNWJiZTQ4MDc4NTEyZTBlN2Y0OGQwIHB5M2sKKzgyNTA4IDE5NGI2ZTYyYmU5NTBkMGNjOThlYTVjYmE1ZWMyMzY1NmQwNTBiMzEgcmVsZWFzZTI3LW1haW50Cis4MjUxMCAyNjI1MjlkMWMzMTVjZDE5ZTlkNjVkMTA0MWRiZTdlNDJkYzlmOThhIHB5M2sKKzgyNTExIDJhZWU4MjllZGZlMjgwMjI4YmNmOThhOWJkZmUzYTJkZTFiOWI5ZDYgcmVsZWFzZTMxLW1haW50Cis4MjUxMiBkNzZkMGVlYjIzY2FiODQzYWJjNjM3YWE5NDIzYWYwZjRmZjIxYzY2IHJlbGVhc2UzMS1tYWludAorODI1MTMgOTc2YWE0YThiY2YzMDdhYmI1MmVjMDBlMzMxMmM5YTJiMTJiZTg4ZCByZWxlYXNlMjctbWFpbnQKKzgyNTE0IGU0MmJhZjY3OGQxNDQwMDYyMDIyYWFlOThlODZkNzYzZjJlOWFhNGUgcHkzaworODI1MTUgZmU0NmE4ZGJhZjY4Y2E3NDRkZjZhYWQ5MTY2YzkzZTU4YTY2ZjMxOSBweTNrCis4MjUxNiAxNzg0NTVhMmYxYWE1YmJkOTYwMGEwYWYxZjY1YjI5ZWNkMDJmZDhmIHB5M2sKKzgyNTE3IDMxYTY4NTRmNzgxMzk5MTlmOTIxZTRiYzg2NmE4OTM4NGVlYTcyNGQgcHkzaworODI1MTggMzRkODI3MjQ5Y2UwYmMyOThmYjllM2QyYzBjODJjZjdhNWJhZGMxNyBweTNrCis4MjUxOSBmYTcxNTEyYTc0ZjkxNGQ2OTc2MGU5MDM3YjgwZmIxYWRmYmMzNDZmIHB5M2sKKzgyNTIwIDZjM2M1NDNlZGU4YzQ5N2VlZWY0ZjcyYzBlN2MwMGIyYTkzZGY5NDcgcHkzaworODI1MjEgMjY3NGQzYmRkYjE4MWU4ZTMzYzY3YzBjNzVhYmE3NjVmNWNkMmY4OCBweTNrCis4MjUyMiAzNGYwMTViY2E1NGVkYjMzMzkxNjRmNzYzNzY3YzZhMGE0OGZiZDE5IHB5M2sKKzgyNTIzIDMyNjgyYjI1M2ZmYzgxN2UxNmRhOWE2ZTEyMTVhZjNhZmVjODAxY2IgcHkzaworODI1MjQgNGMzMGE2ZjQwZTY4NGU2Mzg1MzgzZDk3ZmU3Y2I1ZGZkZmQ0ZjEyZSBweTNrCis4MjUyNiA0YjkzNDgwM2NkMzQxNDI0MzE0ZGFkODcwYzJmOGZjMGQ4NmY2MjM1IHB5M2sKKzgyNTI3IDEzNTU3NTk0ZTIwYjdhZDA4NjQ3NDkxMDFiY2NmOGMzNzUyYWU0ODYgcHkzaworODI1MjggYjY3ZjcyMDk5OGE4ODAxYThhZDhiNzRjYmFhODNlMmFmYjA3ODFkNSByZWxlYXNlMzEtbWFpbnQKKzgyNTI5IDBmNjU0OGE4Njc2OGIzMjgxMDYzMjFiODg0ODkzY2VkMzY4NDBhMmYgcmVsZWFzZTI3LW1haW50Cis4MjUzMiBlY2Q3MWI2MTI3ZTQyNjc4ZGMxYTJiMWY1NzFmNjQxY2VkMGEyOGMzIHJlbGVhc2UyNy1tYWludAorODI1MzMgMzQzOTAzMTE4Y2I1YmI2NzFlMTY5YzQ1MWJlYzQ5OWM2ZmE1MGU3NSBweTNrCis4MjUzNCAxMjRhNzZhZTdhNzBlNzU3MGQ5NDIzZWQ3YTY1ZjZkNDk0OWI5YzRmIHJlbGVhc2UyNi1tYWludAorODI1MzUgZjA2OTFiNGEzODNiODJhZWU4NTNhMTNhZjczOTk2NGZhZTg1ZGMzOCBweTNrCis4MjUzNiAzZmNlNmNkYjQ3MzM3NzExNjk1MzgzMTkzYjQ3NGRmOTRlYzdhOGM1IHJlbGVhc2UzMS1tYWludAorODI1MzcgMWVhZjRiYmU0YjFjMWMxOGI5MWNlY2U5ZDk5YzQ2NjhiYTRmM2Q4YiBweTNrCis4MjUzOCA2MWNhY2VjY2Y4MDU4MTM1M2I4NGQ3M2MwZGFhMTA5OTE2YTFhYmUxIHB5M2sKKzgyNTM5IDE4MjgyMDM5YzVjOWMwMDZkYzVmZDVmM2YwNjIxZmExMTBiMzFkOTYgcmVsZWFzZTMxLW1haW50Cis4MjU0MCA5MzkzMjYxOTk2Y2VlMjMwYzY1Mjg1YWRkN2UzMGZhNWY3YTkwNmM2IHB5M2sKKzgyNTQxIDllMzU0ZWEzODJjY2U3Y2IwMGNlZjViZTJiZWRlMGNmOTljMzlmMzEgcHkzaworODI1NDIgNzY3YjRjNTdhZWE0ZDliZDdhNDBmNmZmM2E5YzU2YThjMDk2ZDZkOCBweTNrCis4MjU0MyAzODMwMzllZjI2YTBlMDllNTE2MGY2YTk0ODRjMjdlZDE5MDM0MmI1IHJlbGVhc2UyNy1tYWludAorODI1NDQgM2FlOTEzYTljZGE5MGVhM2UyNWQ5NzlkMjc1NDRmOTI0MTY2MWYwNiByZWxlYXNlMzEtbWFpbnQKKzgyNTQ1IGE2M2Y2YmFiYTZiNTRkZTk4Nzg4OTM0Y2QzOGZkMWQxMTBlZjI5MWMgcmVsZWFzZTI3LW1haW50Cis4MjU0NiBiZTY2MmQxMjQzODU5ZWQ0MzdjMDg2OWI2NmQzYjc5NzlhYmY4MWM5IHJlbGVhc2UyNi1tYWludAorODI1NDcgMzYxNDMxYzRkMzQ0YzQ0YWNmNmU2ZWRjZTA3ZTIwMDQ3NjBiZjU1OCBweTNrCis4MjU0OCA3Y2U2ZTM2NGUxMTgzMDY3ZTdjYTgzNzlmYWQyNjgxZjQ2M2E5MmNhIHJlbGVhc2UyNy1tYWludAorODI1NDkgM2IxNTQ4NjYwOGYwNWJlY2QxNGM3NjA1NGM1ZDk5YmE0NTQ4MjY4YSByZWxlYXNlMzEtbWFpbnQKKzgyNTUwIGIwNzQzZDUyYjZhMzE3YjI5MWY3NTNkNWViYjczNTdhYzFkODUyZjYgcHkzaworODI1NTEgMzQzY2Y1YTA4ZmYwMGYwNzIzN2MxOTA5NWYzNGIxOTRlNzZjNDJjMiBweTNrCis4MjU1MiBjNmYxNmI4Y2I4NThkYjk1OGIxODRiZDZkNDUyMjIxMGE3ZmEwNTZiIHB5M2sKKzgyNTUzIGQyODMwMDkxMjM3Y2VhM2NjMjM1YTZkMDUxZmUwMzJjMzEwMTQwZWMgcHkzaworODI1NTQgNjkyYjc5ODljZDkyMDM2OTA1MGU3NWJiNmFkMGI1NWIzY2JlY2VjZCByZWxlYXNlMzEtbWFpbnQKKzgyNTU1IGZiMzYwYzA3OTA1OTc2YjFkMGU3NzZmY2M2ZDY5YTYyOTE3NDgyYjQgcHkzaworODI1NTYgM2FhMjI0Mjg1ODJhMzhhMjcxYjllYWVlNmMzNGExYzMyN2UxZmYwMCByZWxlYXNlMzEtbWFpbnQKKzgyNTU3IDgzN2UzY2QzZDA4MzQ2MzNkZWIxOWZmM2VkYTllNjE2MWJmNWYxZTkgcHkzaworODI1NTggZDg4MGMxMTQzMTc1NjdiYzg5OWNlZTY4NGU4YjM1N2FmYjNmZGUxOSBweTNrCis4MjU1OSBjMWEyM2E1NDBhMjlkZjYyNmM4ZDU0N2Y4YTgxMGM5NDhkMTZhNTFmIHB5M2sKKzgyNTYwIGZlNTIxN2E4YWZmYmRjMGY0YWM3NjgwNzRkOWFhZjJjYjY2ZTkxMjggcHkzaworODI1NjEgNDZhYmRlMDcxZmZmY2UwMTMyY2QzYzg3NzljYjA5ZjZlYzBkMmE1ZSBweTNrCis4MjU2MyBhMWM0NTYzMTdiN2MzYTIzNjhlNmU4MmIzYTFkNzdlZDBlYzMxZjAyIHJlbGVhc2UyNy1tYWludAorODI1NjcgN2ZmZDJhNDQ5NDJjZjY1NjI3OGQwNGZkOWQyNjdiMWVmNzQ5YWU2NyBweTNrCis4MjU3MCBkY2MyZThiZjY0Y2ZmNjFmZGJjOTg3NzY1OTI2YTRhNTY2YTUzZjM3IHB5M2sKKzgyNTcxIDAxNDUwMTIwYzBkZDE4ZDQ4N2IxZDNiNGQ1ZDhkNDIzMDhmYTY1MzkgcmVsZWFzZTI3LW1haW50Cis4MjU3MiBlMWY0OGViMDE0YzcwNDZhZWUxNmZmOWNlMGNkNTZmNzA2ODE0MjgyIHJlbGVhc2UzMS1tYWludAorODI1NzMgY2Y0ZjdmOThmMTllNzJiYzFjYjZmMWVjYjg0MTRhMTE3N2Q5ZDhmNyBweTNrCis4MjU3NCBlODRkNTE2NDQxNDQ2MGEzNmZmZjc4MGMyN2Y3MzI0ODU5NjEyYjY3IHJlbGVhc2UyNy1tYWludAorODI1NzUgYzgxZmMxZmZlOTQ2NzAzYzc5MWVmYmZjMGZkMWVjMGNjM2M5NmYwMCByZWxlYXNlMzEtbWFpbnQKKzgyNTc2IDcyNjQ4M2Q5N2I1YzA5MzZmODBmZWZjZDg2NzIwM2Y5NWQyN2NmNjcgcHkzaworODI1NzcgYTdjOGI0YTY2NzhiZjEwMjEzMDBlYTcwNmQzZjg5MTA0MmNiMTc3NyBweTNrCis4MjU3OCAzNmQ1ZTJmNWQ2MDA0Mzk1NGExNTVkMDQ2ZTMxOTcyYWU1NWY5YWRjIHB5M2sKKzgyNTc5IDhlZDdkMTExYjJjOTdmZWQ2MGU2YWM0Mjg0MWZlMDUyM2RkMjU0NzYgcmVsZWFzZTMxLW1haW50Cis4MjU4MSA3MDU4NjlkMWJkZjBmZGEyMTFmMDk5YzFkNDI1OTY1MmY0YWQzZjUwIHJlbGVhc2UyNy1tYWludAorODI1ODUgNDAwMWQ0NThmMGIyMGNjN2YzYTE0ZGJkOGNlYWM5YzM3ZTA4Yjc4MyBweTNrCis4MjU4NiBlZTllZTJmOWZlYjljY2ZjMGI2N2JiMTZmMTBmMWMyN2MwMjg5ODA4IHJlbGVhc2UyNy1tYWludAorODI1ODcgOWQ1ZmU5MzYxZGUyMWRlNjhjYmZmMzdiOTYzYzJhYjkyM2M4ZTZlMyBweTNrCis4MjU4OCA2ODBiZjZiOGFiODI0MGE5NmVlZTliNDNjNGYxZTBmMzU1N2I4YjE3IHJlbGVhc2UyNy1tYWludAorODI1ODkgNmVjNTcyMmEwN2E1ZjJhYmU4YTc2Y2ZkNzc5MDM2ZThlYzE2YThiOSBweTNrCis4MjU5MSBiNmZlZTU1ZmFhMWJiYmM4MDg2YjZiOTJmOWY3OGQwN2E5ZTRjNjY5IHB5M2sKKzgyNTkyIDNiNzNmYjgwODA3YWExYmMyZmUwZjk4ZDgxOGJlYTM0MjZkZWFjNGYgcmVsZWFzZTI3LW1haW50Cis4MjU5MyA4N2NkYWZlM2JkNmM3MGEzNjJjYmRmMjllZWU5NGJkMTBmNDEyYmFkIHB5M2sKKzgyNTk0IDhiYmYyNGU1MWNjZmFhZGEzZDcyZjkwYTRmYmNhNDZkNGZmZTJiZjQgcHkzaworODI1OTUgNTA5N2IxYjQ5NjAxMmUxZTM0MGY5ZGI2NjBmZDVlMGZkZjkzODExZCBweTNrCis4MjU5NiBhMDdlZjVlYWI5MGJiMjViMTA0ZTY1ODVkYWEwZjFiNzZmMzMzOTQzIHJlbGVhc2UyNy1tYWludAorODI1OTcgNGQyOTFhZDA3ODkxNDlmYzExZDAxNjI1NWFmYWViOTgwNTc5MGIxZSBweTNrCis4MjU5OCAzZGMyMTkwNzM4NzU3NGU3MzhhYzdmMjNlNDNjYTVjOGUxZDQ5YTFkIHJlbGVhc2UzMS1tYWludAorODI1OTkgOTE0NTdiMjAxNGU0MGI2MTkxNjIwZTllNzUxZWNiMjRhY2NiYzU2OSBweTNrCis4MjYwMCA4NzBiNmI0NTVlZjA1ZDFiNTNhMzMwOTM4ZjgwYmM3NjY1NTkzY2U1IHB5M2sKKzgyNjAxIDFmMjgxNGViNGQxZGQxYjFhNjcxNDMzOGQ4M2ZlMTFhNmU3MzRlYTMgcHkzaworODI2MDIgODY4OTA0NDZhNDdiY2Y1Mjg0YmRmZjNhMmRhMTkxYmUyNjEwNTA1ZCByZWxlYXNlMzEtbWFpbnQKKzgyNjAzIDM5YzdkNTRmMjg0OGMwZDFmYTJlMzAwOGY3NGJlOWY1MDg2ZDllMjYgcmVsZWFzZTI3LW1haW50Cis4MjYwNCAxZjM3ZDA4MmE5YWFmODAzN2UwM2Y2YjMwNWRjNzhlZDEwOWNiZWJiIHB5M2sKKzgyNjA3IGYxYTQxNDdiM2MwMjNjY2VhN2M2ZGY4ZmNjNjEzMGE5ZDM5MDcxNDUgcHkzaworODI2MDggMjM5OWUwNDUxZDBkZWM4NjYwMWYzNGMxZmJiY2UzMWVlMjhhMGFiNyByZWxlYXNlMjctbWFpbnQKKzgyNjA5IGQzNmRjMzdjNjdmODg3MDYzZWRlZmEzNzE0YzA4MGZjZmE5NjQwMGQgcmVsZWFzZTI2LW1haW50Cis4MjYwOSA3NGIwZWI3NjVhNTA0OWIyNTNlMWNjMzUxZGE4ZmYzOWUzMDgyYzY2IHJlbGVhc2UyNy1tYWludAorODI2MDkgMDcyOGIyOTVmNTNiZDZhM2Q3MGY1ZjVjNzI1YTg1NWI4ZjNhZjIyOSBweTNrCis4MjYxMCAyMDJmMzFkNDAzODljZTNmNjU5ZmIxNTYzMDhlODJjZWUwMDM4MDdkIHB5M2sKKzgyNjExIDA2MThjNjIzMWExZjE5MjcxNjU5OWNkNjAyZmY0YmEwMDIyMmZlOWYgcHkzay1kdG9hCis4MjYxMiBlMTJhZWNkYzMzMmM3ODc3OTZkZjI5MzAzY2ZmNjFjZjExZDc1Yjg1IHB5M2stZHRvYQorODI2MTMgNGZlNDkzZDk5ZGNjMWMyMTdiY2M1MjdiMGYzNjNmYmMwMGRlZGRjYyByZWxlYXNlMzEtbWFpbnQKKzgyNjE0IDcwYjAzODhmOWQzZjUyNTY1YTg1ODkwY2FhYzNmYjk0NGUzMGUyYTQgcHkzay1kdG9hCis4MjYxNSAzZWE2ZjY5ZGIyNDI2MTk4MjRiMDhiYTgyMmI3ZmRlZTIwY2QyZjkxIHB5M2sKKzgyNjE3IDU4MTJkZDQ0ODA3YWY5NjUxN2VmMmYzYWY4MTFjMWFkNGQ3YzgzYTMgcHkzaworODI2MTggZDJiMTY4OWEzMzgxZWM2NTJkN2M0ZWM4NTIzYzkyNzZhYjQ4ZGZhZiByZWxlYXNlMzEtbWFpbnQKKzgyNjIwIDA1NjJmMmUwNTI4ZDEyZGJkMmUyNTRhZjA0ZDQyMGJmZDA5OTg2NGQgcmVsZWFzZTI3LW1haW50Cis4MjYyMSA0M2FiYTA5ZTg5NDY5MzZlZDUzZTJiYWI4MmFiNjhkZWI5OGEyMWI4IHJlbGVhc2UzMS1tYWludAorODI2MjMgOTEyYWIyZmI0M2Y1OGIwMTI5ODgzOTM0YWJkYmY0NjdkMDc3MGExYyByZWxlYXNlMjctbWFpbnQKKzgyNjI0IGY2NDFiZDU0NmRlNDEyOGNkNzljZTc5MzIwN2QyMzAwYjRlZjg3MDAgcHkzaworODI2MjUgZTY1NTg0OWU3OWM2YzgyYTlkNDk3Yjc4YzA2YjA0MzFhYjM5MjUxZiBweTNrCis4MjYyNiA4NzU1NWY0NWNkNmJlNTg2N2Q4MmQ5ODI2Njk0ZTJhNGViYmRjN2RhIHB5M2sKKzgyNjI4IDc0YjJjYmRhOWJkYTQ0N2Y5OTc4MzgxMjM1NTkzOTkxNTgxMzcwZDkgcHkzaworODI2MjkgY2NmOGU2MDIwY2YzNGI1ZjVlYzg4ZGQ1ZjI2OGIxMzM3NDZhZjEwZCBweTNrCis4MjYzMCBmNjI2NmM0NTkxNTYzMDZjOWJhYmQ1ZmQ4ZjMyZDc3NmMzZDEwYzBhIHB5M2sKKzgyNjMxIGU3ZGE5NjhlM2U1YTBkYTY0YmFkOWRlZDlmNGFmNWEyMDQ2ODgzNDEgcmVsZWFzZTI3LW1haW50Cis4MjYzMiA1ZjNlMTg2YmVmMGYwODM1M2I3MmFkMzk0MDk5YTFjYjJjNGY2NjVlIHB5M2sKKzgyNjMzIDM0ZTNkYmQ0N2U0ZmEzZWQwYjZmNjU0YTJjZWQ0MTM5Y2Q3YTUzMWMgcHkzaworODI2MzQgOTQ2NDY0ZmQ2OTIxMGQ3MGI0YWM1ZGRmNjc5ZTI3OWZhYWZiNWVlMiByZWxlYXNlMjctbWFpbnQKKzgyNjM1IDU1M2YxMGIwMzdkOWVlMjMzYmQ1MWFjMGM4MzkxOWNjN2E1ZjhjNWIgcmVsZWFzZTI3LW1haW50Cis4MjYzNiAzODRmNzNhMTA0ZTk0ZTEwZDc5ZTljMTkzZTdmZDBlMmYyYzg0ODg0IHB5M2sKKzgyNjM3IDM4MmRjYjBjNjA3M2ExNDY4YmY0NzBiMjJmNzJjZmUwNzRlZTY0OTQgcHkzaworODI2MzggNTVhMDI0ZjUxNTI0YmZkMDM3MTg4ZDYxZjhhZWViYmYyMzIxZjVhNCByZWxlYXNlMzEtbWFpbnQKKzgyNjM5IDhjNmIzZGM2NTJmYjkyMzIyYThkMzRmNmE2MzU0MWIzZTNkMzI2NDkgcmVsZWFzZTMxLW1haW50Cis4MjY0MCBhMDA4MmE3NGQxMjVhMmU4NWY4Y2QwNWE1M2IxNjEwNjZiYWRiNTU2IHJlbGVhc2UyNy1tYWludAorODI2NDIgMDQwNjc5MDg3ZDAzNTJiNTY1MTNjZTUyOTQyM2MyOTIwYzIyNjYxOSBweTNrCis4MjY0NCBjYTA1MzcxY2ZmMTBhMmY5ZDBmMmEwM2I1MTM4NDQ4NDg4Njg3MWEwIHB5M2sKKzgyNjQ1IGY4NDVlZDFkODlkNWJiOGMwMzBhOGExNzEwY2Q4MGI1MWEyYjU4MWIgcmVsZWFzZTMxLW1haW50Cis4MjY0NiBjYTBhMzMwMWE3ZWExYmFhYmFmNWMwMmRjNjUzYjI3ZmI4OWZiMzRhIHB5M2sKKzgyNjQ3IDEwZTZhNTQzMGI3OTQ0YjZiZWJmMTUzZTFkNmZhYTNhNDA1YjgwOTAgcHkzaworODI2NDggYzczMDViYTg0NjE5N2I5MzViZmVkYTA1ZDk0OGVjODVmNjJhMTE5NiByZWxlYXNlMjctbWFpbnQKKzgyNjQ5IGQxNTZmN2IzOWMzYzM0MzIzZmFmOTQ3YjlmYmYyMDM2ZjgxODY1NzEgcHkzaworODI2NTAgNWJjN2RiZDMxZDFiNDk0NmMzOTVkYzYzMjBjZDRlYTFlNjMwZWJjNCBweTNrCis4MjY1MSBiMDQ0NjI1MzIyZTMxNmM2NDg0YTUzMjYxZGZkYjNlYjRhZmUwYWYyIHJlbGVhc2UzMS1tYWludAorODI2NTIgYTYzMThkYWZiOGViNWMyZDgxOWZkNzA4MjJkYmViNWU1ZmY3MGZlZiByZWxlYXNlMjctbWFpbnQKKzgyNjUzIDNkOGE3ZjcwMWNiMWMyNTM3ZjU4MWExNzgwYTEyNmVmZjY1NTJkNjkgcmVsZWFzZTI2LW1haW50Cis4MjY1NCAwOWY1ZmQwMTNjMGJlMmZlN2JiMGY0OTQ2NGFlMzFlNzI2NjM0YTk3IHB5M2sKKzgyNjU1IDk3NTJiODVjMDExOTJmZTgzOGRhZWQwZWZhYmE1MjcwNmQwMjZjNTEgcmVsZWFzZTMxLW1haW50Cis4MjY1NiA2ZWRjM2UyYTdkYTRhYWRhZmFjZTQ1NjliMGZjN2JiYjM1NTQ0M2IyIHJlbGVhc2UyNy1tYWludAorODI2NTcgOTc0ZjhkOGJjMGQ0NGQxNWQ4YjhkZjUzODUyZWJiYThjZTdkODYwYyByZWxlYXNlMjYtbWFpbnQKKzgyNjU4IGM4YmVjZjYwNmEwYWFjMDk2YmY4NWY0OTZkNjhiOTYzODI4Njc0Y2EgcmVsZWFzZTI3LW1haW50Cis4MjY1OSA3MzBiNzI4ZTVhZWZiNTZjY2ZjNGU5YzJjYzkzNGMyYWQ4NjM4MDU5IHB5M2sKKzgyNjYxIDdhMjE2YmMyYmVkNjUwYjk3MDViNjg4YThjMGI2OGUyNzQzY2Q2ZDkgcHkzaworODI2NjIgMzUyOGM0ZTc4MGJmMDdiOGY5MDJhY2U3NTM3MGQ3Njc4NTdjMGZiZiBweTNrCis4MjY2MyBlNGJkYTRhNTIwY2E3NTI5MmExNzE2MGI1NTQ5ZDNkNjM0MDMwY2ViIHB5M2sKKzgyNjY0IGZmMmQxYjJjZGM2OTEzOWYzMmRlNzg0NzEzZDFiZGYwNWQyOGUyMzEgaW1wb3J0X3VuaWNvZGUKKzgyNjY1IGM2N2Y5OGFkYjhmMzYxY2IxOTM2NzZjOGY1MWM5MTU2ZTkyN2FiMGMgaW1wb3J0X3VuaWNvZGUKKzgyNjY2IDViNjMxODUzNzJkMWYzN2FhNzFkNmYxMmJjYjM0NjczNzdjYzk3YzMgaW1wb3J0X3VuaWNvZGUKKzgyNjY3IDE2ZTM0OGYxNjVmODVkMzRkNmViOGI5NzQ5NTQyZjRkY2UxZWZmYjggaW1wb3J0X3VuaWNvZGUKKzgyNjY4IDQ0YmQ0YWQxZjZkNDJmYWIyMDQ0NTA2NDQ4NTAwZDIzNzAzN2VkM2YgaW1wb3J0X3VuaWNvZGUKKzgyNjY5IDViNmYwM2YzOTFkYWZlMjQ2MGEwYTM5OTg1ODNiNTYyOTdkZTczMTEgaW1wb3J0X3VuaWNvZGUKKzgyNjcwIGU5NjI3OWFjNmQxNDY4YTM0ZDFhN2Y0MzI3MDc1MzhlMGI0MjgxNjAgaW1wb3J0X3VuaWNvZGUKKzgyNjcxIGE5N2Y3NTAzZTUwYzQwNTZmZTMwYmE1ZjQzNDkyNTIwY2RkYzIxYzggaW1wb3J0X3VuaWNvZGUKKzgyNjcyIDYwZmM5NDQ2YWEyZTAzNTM3NmRmYTA3MTEzY2VhNmZmZDZjOTMxY2QgaW1wb3J0X3VuaWNvZGUKKzgyNjczIGMzMGQ4NDgwN2M2MmQwOTVlODRkZGE1ZmQzMjc1MGJkYWEzZWIzNzkgaW1wb3J0X3VuaWNvZGUKKzgyNjc0IGRmZTI2MDIzMWM0OWMxNDI5OGFlMTNiNTE0ZGFlMzA1OGY0NjBhYWYgaW1wb3J0X3VuaWNvZGUKKzgyNjc1IDBjZDk0MTZhMWMxZTY3YjdmNDA5ZTZmMzMzYTdkYjYxMjI1ZGIxNTkgaW1wb3J0X3VuaWNvZGUKKzgyNjc2IGY3MzViYjJiMDZkZTE4NTk4ZGMzMDhhMTk0NDgyMTIzYjMyNjUxYWYgaW1wb3J0X3VuaWNvZGUKKzgyNjc3IGJlYmNiNmFiMDlhNTY1YjEzNzZkZTFhNzBiZDg1OWE1NTFhZjZkMmQgaW1wb3J0X3VuaWNvZGUKKzgyNjc4IGM4NzJlNGZhYTFlNzQyMzkxZWJlMDcyNWZjODMzMzZlZGNiODE5NzAgaW1wb3J0X3VuaWNvZGUKKzgyNjc5IDE0ZGE3YzNlOTIyMzJiMTRjMzhkN2YwMGY1MWE3YzcwYzhhMmUwZGIgaW1wb3J0X3VuaWNvZGUKKzgyNjgwIDA5NTJlMmRmM2M0ZDFiOTg0Y2MwZWRkYjc2NWQ5OGIyMmZiMjgyMjQgaW1wb3J0X3VuaWNvZGUKKzgyNjgxIDc2ZjM2Y2ExMDYxZjQ0ZmE1YTdiOTEzYjY5MjQyNGYzNzk0MWFlZTMgaW1wb3J0X3VuaWNvZGUKKzgyNjgyIDIyYjkzODhkN2MwZWY5MGE3ZTY2MTRjZWU0MDRiZjA1ZDU5ZmVhYzAgaW1wb3J0X3VuaWNvZGUKKzgyNjgzIGU0MjMzZTljODQ2MTIyNjUxZGFjODE1YmU4NDIxNzY0MGM3OTJjNzUgaW1wb3J0X3VuaWNvZGUKKzgyNjg0IGU3NjZmN2JjYjJkNTVjMzQ3NzRkYTMyYmU1Y2Y5YjhlY2EzZGEzNjEgaW1wb3J0X3VuaWNvZGUKKzgyNjg1IDVjYTQxZGVlYmQwZmZhMmVlZjg2MzBkZGE3YjhmY2RkMGY0ZTRmNzUgaW1wb3J0X3VuaWNvZGUKKzgyNjg2IDJlOWZjNTMyZDFkMWJkOWJjODFiMDViOTQ5OTBhMDQxMzlkZTJjNWYgaW1wb3J0X3VuaWNvZGUKKzgyNjg3IGUxZDg2Y2YyY2ZlNDRiZTA5NDUzZjFlYTE5OGJlMGI5MTgyYzRlZmEgaW1wb3J0X3VuaWNvZGUKKzgyNjg4IGUwZmI0OWVjOTQ1Y2NhNTcyNDI5NDY3YTA2ODk1MzYzMzU4YmUyMDcgaW1wb3J0X3VuaWNvZGUKKzgyNjg5IGEyYzdmMjA2MGU1YmRiZDg3Y2ZiYWZkNTQ3NzlmYzU5ZjRiNjNjODUgaW1wb3J0X3VuaWNvZGUKKzgyNjkwIDFjMWZkOTVlMTNiNDJlYmVmYmMyNjgxZjAzMTg3NmUyNDQyNTU4ZTEgaW1wb3J0X3VuaWNvZGUKKzgyNjkxIDBhMzBiNTZjYTNhYzlkZTFiMTVjOGEzNjZmZDBkYzE2ZWViMjA5YWQgaW1wb3J0X3VuaWNvZGUKKzgyNjkyIDM2MGUxYTA4ZTUzYjk0ODBhYTVkY2IzOGUwOTllZGRiYzI5NjNmZjIgaW1wb3J0X3VuaWNvZGUKKzgyNjkzIDYwZmJmYWE3ZDkzZGZkYjE5ZDRkYjEzZjkzMmEyYzFkMDUzZWMzNGUgaW1wb3J0X3VuaWNvZGUKKzgyNjk0IDk1MGI0NzU0YmJlMmFiZmMwYzUwMWJiZjFmNjBiOTI1M2E1ODExOTQgaW1wb3J0X3VuaWNvZGUKKzgyNjk1IGZmZWI4NTEyOGM3ZTg0ODMzMTY5NmI2ZTE0YjIzYTRlYTdmOThlYTkgaW1wb3J0X3VuaWNvZGUKKzgyNjk2IDAxZTRlM2QzNzc0ZDYwNDVjMjk5MjM1ODRjMDhmN2U4NDUyMjg0YzUgaW1wb3J0X3VuaWNvZGUKKzgyNjk3IGU4MWVkM2FkMDY5ZDlhYzJlNWVhOWNjZjg5M2E1ODBhZmQ5MDNjODAgaW1wb3J0X3VuaWNvZGUKKzgyNjk4IDFhZGMyM2RjZTk3MTdjNDg0MDEwMGFkMmUzMzkyZTRjNjM2M2JhMzMgaW1wb3J0X3VuaWNvZGUKKzgyNjk5IDE3N2E4MmVjZmY2NzEwNmFiYmM0YzY3NTY1YzBmNTFjYmU2MDAyNTMgaW1wb3J0X3VuaWNvZGUKKzgyNzAwIDgyNDk3ZjFjMWM1NDE1MjgzYWFjYmViYTAzYjNhY2E3MzRmMDc4MDkgaW1wb3J0X3VuaWNvZGUKKzgyNzAxIDkwY2E0NWQ2NTZjMmQ2NTcwNTVhZTU2N2JmZDVjYjAzNTI0OWY4ZDkgaW1wb3J0X3VuaWNvZGUKKzgyNzAyIDMwYmJjMTg2MGZiYjJlN2JkMDY2NjljNDY2YWU3NzQ4NzRhN2ZkNjIgaW1wb3J0X3VuaWNvZGUKKzgyNzAzIDg2NWQxOGFmZGExNTEwOTkzYmNlYjRkYTIwNmEwNTQyNmY2YzViODcgaW1wb3J0X3VuaWNvZGUKKzgyNzA0IDdhZjIyOWVhMmU2NjVhOWVjMWFlYTZmNzcxYzVlMGYwZGZmZWVlZjQgaW1wb3J0X3VuaWNvZGUKKzgyNzA1IGEyOWNjMzg1MDAyOWY1N2U3MjIzMWFhM2QzNmM2YjNhOWNjODQ4YzggaW1wb3J0X3VuaWNvZGUKKzgyNzA2IGE0MjFiNGI0NWFhNjYyMGYyZDFhNDUxZjViMWY4MmY3MGFmNjhlNjQgaW1wb3J0X3VuaWNvZGUKKzgyNzA3IGE3YmI4NGY4NDk4YTFmNmJjNTViY2QxYzJkYTNjNmUxYjA1NTM3MmIgaW1wb3J0X3VuaWNvZGUKKzgyNzA4IGFmN2VjMTY5MTA0N2JjYzMyYTA2MjU3MDhmYjEyZWUzNTkxZmI5ZDggaW1wb3J0X3VuaWNvZGUKKzgyNzA5IDY4YjBlNzJlZjRmMjIxZDBiNWU2YTNiZWE3NTJhNGJjYzg5NjZhZDggaW1wb3J0X3VuaWNvZGUKKzgyNzEwIDhlNzBhNWVjMWFjYTYyOTU0OGU5YzI3ZjExNzMwNWRmOWM4OWNlZTQgaW1wb3J0X3VuaWNvZGUKKzgyNzExIDZkY2E5MzcwMmU2YmQwMmRkYzdlYWI0MmNhMWI5N2I4MTc3MGNmZTggaW1wb3J0X3VuaWNvZGUKKzgyNzEyIDc2YzM1ZDhhMjZhMDEyMGQ4ZDBiNzkzODI0ZjlkODk4ZTBlY2EzZDkgaW1wb3J0X3VuaWNvZGUKKzgyNzEzIGE3Y2Y5MDNiMTdkY2IxZTI1NmY3Mjc3ZWQ1OGU2YzViMjhiZGU0ODAgaW1wb3J0X3VuaWNvZGUKKzgyNzE0IDc4ZTZhNmZiZDM2MjFiZDhmNzEwMzQ5NzMyMWY0ODU3NzFhMjlmOGMgaW1wb3J0X3VuaWNvZGUKKzgyNzE1IGFiMTdiMGMyMmJhMWQyNGUwNTRkYjkzOTRkNTBjZmY3MWI5NjJlMGMgaW1wb3J0X3VuaWNvZGUKKzgyNzE2IDA5NWIyOTcyYzQ0ZjExMjM2YzBlMjkzMDNjMjM3ZDAwNGVkOWM1MGUgaW1wb3J0X3VuaWNvZGUKKzgyNzE3IDM2ZjZlZDA2NTFlMTM0MGViZjgxZTQ5ZDUwYjkyMjBmOWYxZTRjOWEgaW1wb3J0X3VuaWNvZGUKKzgyNzE4IDg1MmU0YTc1ZTE1NjkwNGFlNDdkZjliZjViZWRmZjZkNWM0NmYxNzUgaW1wb3J0X3VuaWNvZGUKKzgyNzE5IGYwZWY4M2Q5MTM1NDViZGUzMDljNGI0YTAwZmRjMDgxMzRiMmNlYTggaW1wb3J0X3VuaWNvZGUKKzgyNzIwIGVjYmE4ZmE1Yzc0M2VlMGEyMzk2NTU5MTY4OTIwMmE1ODlkNjEzNzAgaW1wb3J0X3VuaWNvZGUKKzgyNzIxIDhkY2Y4NDFmMWJkNDA1ZmVjYmVmYjA0NmFkNGI0MjUzMzE4NjUwYjAgaW1wb3J0X3VuaWNvZGUKKzgyNzIyIGJjMGI0YzkxOGRkYjRhN2QzZTg5MmNlNDk4NGNlNzk1MGEwMzA0ZGUgaW1wb3J0X3VuaWNvZGUKKzgyNzIzIDBlNzgyYTZlNmJiNzZlM2VkYTc2YTdhZDJmY2YwOGFiZTVlYWRmNzEgcHkzaworODI3MjQgYzdmMzYxNzAyOGE4Mzk5MTdiNTEyY2E1YmE1N2JmYjg2ZGU4ZDJkMiBweTNrCis4MjcyNSBhMjE3NzI2MmY2YjdlNWE3NDRmNzQyYjQwZGI3N2VkOTEzMDhjZGE1IHJlbGVhc2UyNy1tYWludAorODI3MjYgMDhlZWU4OWFmN2I5OWQxM2EwNTk4ZGY1OTI3NzhlOWE5NjIzMjhhMyByZWxlYXNlMjYtbWFpbnQKKzgyNzI3IDhjNjE0YmM3NjZiNDUzOTlmMzExZGUwYjMyZWFlMjgxODA2YTBhNjEgcmVsZWFzZTI2LW1haW50Cis4MjcyOCAwZDEyMjAxNzVmMjllZDAxZjAwOTY2ZDVjYWE2Y2E5ZDQ3YzI3MmMzIHJlbGVhc2UyNi1tYWludAorODI3MjkgOGFhYWYwMWZjZjAzZWNhNDQxYWI4NGU5ZjM4ZDNiMWUwYTBhZmU2YyByZWxlYXNlMjYtbWFpbnQKKzgyNzMwIGYzYmZkZmYyMTQ2YWE0ZTEwMzIzYTUwZmNjNGE5N2Y5OWNlMzczYjEgcHkzaworODI3MzEgY2ZjZjZmNjNlMGI0YWMwNWI1MmEwOTE1MTBlNWNkNWZlYTZhMWZmNSBweTNrCis4MjczMiA1ODVjNzBkYzFlYWE0ZjdlZWZiZmZiMWE3ZmIzMWQyZTA3Mzg5ZGM3IHJlbGVhc2UyNy1tYWludAorODI3MzMgZGIyOTNmZDc1MjhiOTRjMDE3Y2RjMmMwNmI1NWQzNzM3ZjdhMzY2ZiByZWxlYXNlMzEtbWFpbnQKKzgyNzM0IDUyM2FmZmQ0ZDQ3MjkzNzA5MDdjZWYzNTlkMGM1NDlkZjFjMzkyYjMgcmVsZWFzZTI3LW1haW50Cis4MjczNSA0M2EwZmMxODRhNTgxNzQ5MTJlYWExNGNjZWJmZDdhZjViZmYzZGUyIHB5M2sKKzgyNzM2IDQ3ZDQ5YjQwNjIwM2EwZjJhOTdmMTVlMWUwNjhhMjhmMzc2NDA1NGEgcmVsZWFzZTI3LW1haW50Cis4MjczNyBlMGRlZGQyZGNmYTgxZTAxMWE5NjcxZDVkNmNmZDA3YzBjNGJkNzBiIHB5M2sKKzgyNzM4IDdlOTRjMDNiYjg0ZTE1M2VjMWYxMWU0YTdkYTBjMjQ3MzAxNDZlNGEgcmVsZWFzZTI3LW1haW50Cis4MjczOSAxMGMwNjMwZjFjMTQzYTU2NzUzYzNjNDBmNWYwMGY4ZWYyOWM1ZmQ5IHB5M2sKKzgyNzQwIDA4OWZkNzEwZGNhODg0OTE1OWUzZWNjNTE1M2JhMjc3YWY4NTRkNTMgcmVsZWFzZTI2LW1haW50Cis4Mjc0MSA3ZDlhYjM1ZTQzYmM2NmFmOWM0MmQ5ZWQ3ODhiZGVkMzAyNjc5YTU0IHB5M2sKKzgyNzQyIDgxNWFlN2YzNzMyYmVlYmQxYTZlMWNhMzEyYTZhNWViMzBmMjJmMTQgcmVsZWFzZTI3LW1haW50Cis4Mjc0MyA1YWU3ZGY2YzkzZWQ5OWI0YmIxNTdhY2U4NjU2MGIzYTg5ZDMyZjYzIHB5M2sKKzgyNzQ0IGUzZjgzZjU2ZGQzY2RlOTM2YzdkMTkwZmYzODk4N2YxOWNiODhhZGUgcHkzaworODI3NDUgZTk3Y2RkNWM1ZTRmYzk5MTU2OTJiODFjNjZlZTMzOTJiNDBmNWIwMyBweTNrCis4Mjc0NiA5MmE5ZGM2NjhjOTUyOWYwMThhNjIwYjQ3MDdiYzA5Y2UxODYxNmMwIHB5M2sKKzgyNzQ3IGQ0MWEzMWY1YmY4MmY2MjRhZjIxOWY5NjlhN2U1NmNhNTM1NTk5NTMgcmVsZWFzZTI3LW1haW50Cis4Mjc0OCA0ZWZmOWMzNWM1NGE3YmI5ODU0ZmUxYjYzMTM0YTVlYzUyZTdhYmZlIHB5M2sKKzgyNzQ5IGZiYTllOTFlODhkY2RmMGM3NDkzNDZiZjY2ZDEwNDE0ZTY1OWZmN2QgcHkzaworODI3NTAgYzcwZDUwZDIxZjg1MWE2YTU3MTQwNjk5ZWYyZGE5ZTdiYWIzY2Y1NCBweTNrCis4Mjc1MSBkZTFiOWZjM2UxZTcyMjBmNDMyZjYwN2I1OGE0NjEzZmFhMWU1NjdmIHJlbGVhc2UzMS1tYWludAorODI3NTIgOGVhNjBhZTE0OTY4ZjM2OWEyOWMzNDIyODk1ZDY5NWM1ODUxNzMyMCByZWxlYXNlMzEtbWFpbnQKKzgyNzUzIGJkMTljNzE3OGYyNDJjMzg0MTQxZjYyMmEzMzA3YWNhMDYxYjE3ZGIgcHkzaworODI3NTQgZjQ3ODFhYTgyYjM3NTBiMWQ0ODlkNjBjMzFiNzZhNDljMzllMDNlMiByZWxlYXNlMzEtbWFpbnQKKzgyNzU1IDUwMjViYTA1NTNiNjMyOWViMTU4ZDQzZWMxNmMyNThjNTlmOTI2ZGQgcmVsZWFzZTMxLW1haW50Cis4Mjc1NiA2MzYxM2M0ZjYzMTdmMDZhMDUxNjVhM2U3MjZmNjEwZDM1MTA4MjA2IHJlbGVhc2UzMS1tYWludAorODI3NTcgNGQyMjJlZTJhMWM4NTQ3NmRjMGQ2Y2VkNWY4MmNmOTFjMGEzZjgyNCBweTNrCis4Mjc1OCA3YjU3Mjg5ZWJlMGQ0ZWY5OTFmNTVmZjFjOTdjOTA0MzgzZTUzY2IxIHB5M2sKKzgyNzU5IDk4M2UyYzBiZjhkY2RlY2RhOTliZjkxMjA3NjFmMjg1YTBjM2M5NTAgcHkzaworODI3NjAgMzVjNTlkMTFhZTEzODMyNzkzYjMwOGI0MWM3NGM5OTVlODRmYTk0NSBweTNrCis4Mjc2MSBiY2I3OWUxYWEwMGY3ZjQ0ZDA4YjZjNzg1NjdhNTUxMzgyZjYzMmY5IHB5M2sKKzgyNzYyIDMzZGU5Y2FmNzA5MDAwMDIyYTk3MmJiYmJkYTUwNmIxMmIwM2I4MDkgcHkzaworODI3NjMgMjU0ZWY1MjA1MTI4YWM2ZDYwMjkxYjZlMjlhNWQwMGM1M2FkNjUzYyBweTNrCis4Mjc2NCA5NDM3ODQ3MGFlMWM5MDc4M2YyMmU3ODg1OTg3MThjM2Q0N2E4MGJjIHB5M2sKKzgyNzY1IGZmMWE4MDM3NjQ4YzRiYzljNTQ4NzU4NzQ5NTA3YTcxYTUxNjAwMGEgcmVsZWFzZTI3LW1haW50Cis4Mjc2NiA4YmUyYjllNDg3MTg3YmRjMjg1N2JmYjgyODE0ZGU4NTgxNmZiOGIxIHB5M2sKKzgyNzY3IGFhYzA5MmVhZjlkMTgyZDE1NmJjMmQ3YTIwMGM5MzZmYTI2ZWJjMTcgcHkzaworODI3NjggMGZiZGMzZmEwMjRiZTU4ZThmMWIxZDg4ODdlZjhkOGU4ZDQ1YjAzYiByZWxlYXNlMzEtbWFpbnQKKzgyNzY5IGRhYjI4NmQyYmE4MmZmYWJjOTkyYTJjMTdkNmJjNzgwYzlkNzI5YTcgcmVsZWFzZTI3LW1haW50Cis4Mjc3MCA0OTg2MWRmYjI3MDE4MDIxMTE1ZjBhMjEwM2UyMzYwYzBiMjE0MmFjIHJlbGVhc2UyNi1tYWludAorODI3NzEgZWQzYmM3YTk2ZmZiNGJhMzdkM2I2MDM5MDI2ZWExYTc2MmU2MDBhMiBweTNrCis4Mjc3MiBhY2Q2Y2NjY2U4MzdiOTM1MTYxMDY0NjE2NmU2ZWRhNzM4MWViNzAyIHJlbGVhc2UzMS1tYWludAorODI3NzMgNDI5ZDBjN2NkYjg1NmRjNTliMjNhMTliZWIxODJjMTcxMjc3YWJiMSByZWxlYXNlMjctbWFpbnQKKzgyNzc0IGFjZWY1ZDY2MDgzMzAwOThjNjZmM2UxY2E4NmI0M2U4YjlhZWY0YzkgcmVsZWFzZTI2LW1haW50Cis4Mjc3NSAwM2Y3M2M0NmY4OWM3Y2E3NDJjODllNWVmNGIwM2RmOWNhYTMxMTUzIHJlbGVhc2UyNy1tYWludAorODI3NzYgMDMwMzZhZmNhNTQ5MWEwMTQ0OTcxNjhlMmIyYTk2MjQyZThjZWU3NyByZWxlYXNlMzEtbWFpbnQKKzgyNzc3IDVlNjBjN2RiMGY1MTBlZGJhMzE2ZmRhOWE4ZmM1YmNlZGYyODIzNmUgcHkzaworODI3NzggMjg3NTVlYjUzZjM4OTQ2MGVkYjBiMmUyYTJkNGZlNmQwNjI2Mjc1NiByZWxlYXNlMjctbWFpbnQKKzgyNzgwIGI1OGI0YWE0NjljNGY4MTc4ZjcyZWZiZjJhM2U3NTQxZmM5ZmZjNWYgcHkzaworODI3ODEgMTYzNjEyNGU1ZmZlZWI2Y2MxMTIyOTUxYWI0YTMzM2Y5ZmQ3MTBjMCByZWxlYXNlMzEtbWFpbnQKKzgyNzgyIDdlMDljNjRkNGE2NGNlMGQyNjQ3MWMyNzlkMDVhNDg2YWE0ZmQwNGEgcmVsZWFzZTI3LW1haW50Cis4Mjc4MyBmNzU1ZDFhYjgwNzQ2ZGI2Y2E1MGVhZjEzMGE2OTNmZTQ2MjU1Mzc1IHJlbGVhc2UyNi1tYWludAorODI3ODQgNTBmNGYxMTNiYmMzZjczMWZiZjAzMjEwZDI5YWNiNWNjMTljNTk5NSBweTNrCis4Mjc4NSBhOTllOGFkYWMwODFkZmNhMjViZjM4ZjVjMWIwYTJiMWUzNDMwNWQ1IHB5M2sKKzgyNzg2IDM2N2Q2MWU2YTcwZjA2OGYxNzViNzQ5OTU4YmZhNWYzOWY1OTg2ZDAgcmVsZWFzZTMxLW1haW50Cis4Mjc4NyA1NTUzM2Q1ODI4YjAzMWE2YWFiNjJmOWU4YzgwNTFkNTI1NWM4YWU2IHJlbGVhc2UyNy1tYWludAorODI3ODggZjBkZDAzYmY2YmM1ZmMwNzdkN2E1NTAxM2RhMDYyNTA0MjM1ZDAyMCByZWxlYXNlMjYtbWFpbnQKKzgyNzg5IDVkYjJlMDdjNDQ1MWZjMmIzOTEyMjkwZTcyYjA0ZmY2YjM2NGFlZDggcHkzaworODI3OTAgYmEwZjZlMTdlYjIyM2MwM2JkYTNhNmFlYmZhZTcwODBlMWIzZjJhOCBweTNrCis4Mjc5MSAwYjA3MWUxZWZkNDE0ZjBiZDQxOWQ4NTkyNWJiZTZmOGI3YTdiZDQzIHJlbGVhc2UyNy1tYWludAorODI3OTIgODFkMDU1N2RmNjQ3YmZmNWQ2MzgyZGY0ZDVmYzBiODQ4Y2FlM2I3OSByZWxlYXNlMzEtbWFpbnQKKzgyNzkzIGY5N2JlNTgwZDhjMTZlYjBmOWFiNjE1MDhmNmFlOTE0ZGMzZDE3YTkgcmVsZWFzZTI3LW1haW50Cis4Mjc5NCBiOTE1MTYyNDI3YWI0ZjZlNzQ5NzY5NDY4NTFlMWY5YWZkMmU5ZDU0IHJlbGVhc2UyNy1tYWludAorODI3OTUgNDI0ZTNmY2ZkM2FkMTFlMDUxNzU0NTQ4OThhMDJiMzY4OTBkMjg3OSByZWxlYXNlMzEtbWFpbnQKKzgyNzk2IGNlOTM1ZTcxYmQwN2U1MThlMmM3N2M0MTliMDE4MDBiY2Y5NTYyNWMgcHkzaworODI3OTcgNDcwN2VkZTRkMTRmZjE0ZTcxYjIzNTQ4OTE1MDMwOWQyMDA3ZjgzZCByZWxlYXNlMjYtbWFpbnQKKzgyNzk4IGM4Yjc3ZWZlOGI1NmU5NzM3NzNlZmY3YzEwZjJhMzhiNzhjMGUzZTAgcHkzaworODI3OTkgMGU2ZmJmNTE4ODUzZmViZmZkNzczY2U0ZjAwZGMzMzBjYTAwZmZkYSBweTNrCis4MjgwMCBlZGFiNTAxZjlkZjhlZmUxODIyMjU2YTFhNGZhNTJlM2Y2ZGI1NjY3IHJlbGVhc2UzMS1tYWludAorODI4MDEgMjk3ZjJjMjhmMTgyOTMzOWY0YThiMWYzYzBkMDhiZGM5ZjkxN2M3NyBweTNrCis4MjgwMiBkNWQ1MTJiODY1YTc1ZDNkYjI0NTgyZjcwYTA2OTUwZWUzOWJkNGYyIHJlbGVhc2UyNy1tYWludAorODI4MDMgNTAxMmZmYWUxOGZhYzZiOTJjYzM3ZWExM2YwNTQ2ZDIwZTVjYTQ2YSByZWxlYXNlMjctbWFpbnQKKzgyODA0IDkwYmYwNjMxYmZiOGVlODcwZGVjN2RiOWFhYTQ5ZDZiYmE4ZGQ4MjQgcHkzaworODI4MDUgNGNiMGU4N2MwN2NhMzZhMWYwZGYxNTkwNDRiNTg0NTRjYTliMmU5MSBweTNrCis4MjgwNiA2MTJlMTI2MzE1MTFiMjI0ZDNiNGQxODA0MGVmYTY4MTAzNzA2ZjcyIHB5M2sKKzgyODA3IGQwOTBmNjI1NGM0NTNkY2U3ZDc0ZGZiMDhlNzc2YzllMmZmNTZjOWUgcmVsZWFzZTI3LW1haW50Cis4MjgwOCAzNjVlZWFiNGEzNTAyNjBhZjdlMTA3NjEyYThmMjY2MGZmYWFlMzE5IHJlbGVhc2UzMS1tYWludAorODI4MDkgZmNmYTdiYmUxODVlYWZjMGE5YjE1N2M2MjlmMTI1YTExYmQ4NDNkZiByZWxlYXNlMzEtbWFpbnQKKzgyODEwIDdmNTc3NTM5NWQzMjhiMGMyMGRmMWNhMGM0MTdlNGEyZjUzODJhZWYgaW1wb3J0X3VuaWNvZGUKKzgyODExIGJlMTNmZjM3NTVlOWZhYjcxNjMxY2M4ZTg3NDNlYmM1NDk2ZDcwNGYgaW1wb3J0X3VuaWNvZGUKKzgyODEyIDgxZjBmMGQ1M2QxMDg0ZTYxNzJhZTI2MDNkZTUwN2VlNzg1NmVkMTIgaW1wb3J0X3VuaWNvZGUKKzgyODEzIGQxMzkxNGVjZDM3MGZmYmI0OTgxMmY1ZWZjN2I2YmEzODQ2NThmM2UgaW1wb3J0X3VuaWNvZGUKKzgyODE0IDE4OWZhOTJkMTVkYzU5NzgyOWU3NWYwNGRiMWQ5ODZiZjM2ZDE5YWMgcHkzaworODI4MTUgYjE0MzhkMjZjMTY3Yjg2MjFkZThjMjI4OWU3MDQxZWNiYTFmMjUxYiByZWxlYXNlMjctbWFpbnQKKzgyODE2IGEzNTJiOTE1NmNlZWNiMjc4ODQ5ODU5OTAzY2QwZDVlNGU1ZDg4N2YgcmVsZWFzZTMxLW1haW50Cis4MjgxNyAwZjRiN2MwN2QxYjM3YjUyMTFjN2MyMzVmMTA5MzQyMGViYzZmNGJjIHB5M2sKKzgyODE4IDUzZTdhZThjYTAzOTE0OGNkNGExMjU2NjhkZDcxYzI4ZjM3YzYzMzQgcHkzaworODI4MTkgZWFjY2YxYTFjYjkwM2I0ZGQ2ODIzZTIxMWY4OTkxNDBhOWZjYzAxZiBweTNrCis4MjgyMCA0YzExZTQxNDBjZWQxZmEzODhkNzRkNmFiZDk0ZmVhMDg4NDQzOTk4IHB5M2sKKzgyODIxIDA2YjM4OTFhNjM5NTM0YmI0ZTQzNTJiY2M3MTJmMTUwMGQ4NzFhZGMgcHkzaworODI4MjIgMWNmNDNjNmU2NTY2YjM2MjlmZjMyYzNiMjg3NDdiYmIxZTdmNmJmNiBweTNrCis4MjgyMyAxMTI5ZDRkZmVlZDZmZTFkMWJmZThjMmRjOTFhN2E5YWRjYjAxNzcwIHJlbGVhc2UyNy1tYWludAorODI4MjQgNDMyOTA4ZDUyMWNlZmVlYjk1NzUyZGJjZjRkNjk4ZTBmMGFiZjE2MCByZWxlYXNlMzEtbWFpbnQKKzgyODI1IDMyZDhiMjJiMGU3YzVlNjI5MGQwZjRlN2NjOTQ3MDdlZjVkNjI5YmIgcHkzaworODI4MjYgNWNhMjJhMWJlM2NkMjE2OGUzMTRhNDk3YmZkOThhMjM0ZmI3MjgxNSBpbXBvcnRfdW5pY29kZQorODI4MjcgMTk0Mzg0YjUzODBlNTI0MzhkMmFiYjRhYTA3MzYwYmE1NzQxMDJmNyBpbXBvcnRfdW5pY29kZQorODI4MjggNGRkOTg1MmRhZTliM2U3MGViOTk0MWEwYWZjZDM0YjdkMDYwZWY4MCBweTNrCis4MjgyOSA3Mzc1MTllZjE2MmU2ZWYyNzY2YTZlYmIxNDZiMDdkNGU2Zjg0MDZiIHJlbGVhc2UzMS1tYWludAorODI4MzAgYWIxMDJhMjI2MDM4M2IxMmRjNTczOTRjMDU1NjgzMGM4ZjY1NjQwOCBweTNrCis4MjgzMSAzZjM3ZTNjY2MxMzEzODc4N2VjYjg3YTM2NzFjMjZlMDljOTgyN2QxIHB5M2sKKzgyODMyIDY1NzZmZDRjMGQyZTMxMThkNDk0ZDBlZGYwZWIyNDExNDQ3YjA5ZjIgcHkzaworODI4MzMgNDliODNiZmNmYThmYmJhM2ZmOTZkNmI1MzZjNzM4ZDg2MmU4ZmViMSByZWxlYXNlMzEtbWFpbnQKKzgyODM0IDg0OWY2ZTIyMGFhMGQyMzEwZjhhNjMzMjYwNTAxMTBiYzkxYzQzMTQgcHkzaworODI4MzUgMzBmNjk1ZWM5NDliZDIyNTUzOGQ0OGExZGNjMzdlZTBiZTI4ZGQ5YSBweTNrCis4MjgzNiA4ZTQyYzdhNWRhYjhkOGZiNjRkYTEwZDJhMDBkZTFjNjhiYzQyMjU2IHJlbGVhc2UzMS1tYWludAorODI4MzcgZjViMThmMjY4ZjU3ZDhlOTYwMmVjZWYyNjBjZDA1YTFiMDFkZTI1NSBweTNrCis4MjgzOCAwYmI0ZGFkODE2MTRiNzlmMjI2ZmQzMmVmZjM4Y2ExMDZjZmZhNGNkIHB5M2sKKzgyODM5IDY2NGEyMGY0YTgzNmM3ODIyY2RiNTYxOTUwZWU5MjYyNjcxNDU0YTcgcHkzaworODI4NDAgN2VhYmE0MTNmZGE0YjhmMjU3NjAyYTA1NmY5MmIxNWUxY2EwYzM5NyByZWxlYXNlMjctbWFpbnQKKzgyODQxIDk0ZjUyOTc2NGMzODczYzY1MWVkNDUxODFlODBiMjY4YmIzNWUxODcgcmVsZWFzZTMxLW1haW50Cis4Mjg0MiBmY2Q0MTIzYWVkOTM0NmM2NzlmZjhlOGVhZTYwZDc2NGNiYjNkY2FjIHB5M2sKKzgyODQzIDYwZmRmMTQ3MDMyY2YxNWY5Nzk2OTFkN2I2Mjg0MzMzNGY2MGQ0MjEgcHkzaworODI4NDQgNjRjYWE3NDhhMjhlYWM5MWQ1YTA1NmViZGViYmVmOTA1MGUxODNmNSByZWxlYXNlMzEtbWFpbnQKKzgyODQ1IDRlZjYzOWY0ZDgxMDBiNDI5MGNkNTVhYzk2Mzk5MTExYTJkZGI2NzUgcmVsZWFzZTI3LW1haW50Cis4Mjg0NiAxZjk5ODIzZjRmYWU3OGExZDc1ZTljOTYyYTdhNWJiODYwMTFmYzQ0IHJlbGVhc2UzMS1tYWludAorODI4NDcgNWIzNTIxMzNjNDUyMWM5ZTgyOGIzMmVhMzljMGJjZTlhOWFkNWJiMSByZWxlYXNlMzEtbWFpbnQKKzgyODQ4IGI5ZWRkZjNjMWU5MGExZTY4OWE2MmNjNjJlYmYwNTBiOWFmNGNhYjYgcHkzaworODI4NDkgZWRmZDdlYTQ4ZWRiMjVlZDZmYzkxYjg0MDgwMGUxMTM3MzdlZjkxMyBweTNrCis4Mjg1MCBiNTc0OWRkOGM0MjFiYjFkMDgyNDY1MjY5MmNhZjZhZmE2OGJkMDNjIHB5M2sKKzgyODUxIGRhZWE5NzhhNDhhZTg5NGY3NjMxOWFjZTU1NzQ4MjVmNjJhYTU3ZjMgcmVsZWFzZTMxLW1haW50Cis4Mjg1MiBhZDUxYWI4YjY0YmQwM2U5MTFlMTcyZTk4NTIzOTEzOTc1MGEzMzE5IHJlbGVhc2UyNy1tYWludAorODI4NTMgNGZkNWJhMzVkZjZlNTY5NTE4MGQwMjg5YmE1MTgyMjgxMGU4YzhhOCByZWxlYXNlMjctbWFpbnQKKzgyODU0IDk4YTRlOTZmMWY2NzQwMWNlNmQ5YTYxN2QyYzM0YTQwYzViYjFhYzAgcmVsZWFzZTI3LW1haW50Cis4Mjg1NiAzMWEzZDc2ZjM4MzUxOWZlNmI1NDY4NTRlYTE2YzUyYmE1MDYxNzRlIHB5M2sKKzgyODU3IDJjNzU3OWUwNGFkMjE0NTVmYWZlZmFlZTQyODE4Y2YzYzg5ZjU0YTEgcHkzaworODI4NTggZWY2N2U3NDgxMjQ0Nzc1ZDU4ZGU5NWJiYmNkMjk4Mzc3NTBmYjgwNSByZWxlYXNlMzEtbWFpbnQKKzgyODU5IGFlZGI1M2Q4YzJiOGNkNTQ3MjFhOTY1MmYyNjkzNTg5NTlkNzUwZGMgcmVsZWFzZTMxLW1haW50Cis4Mjg2MCA2N2VkYzQyNGU5N2I4MmNkZWY4NTQ2NzA2OTZiMDk3MTAyMTY1ODgzIHJlbGVhc2UzMS1tYWludAorODI4NjEgZTYwN2ZlMTVmMmQ2OTQyNWY0NThhNmFkOTRlYTU5ZmNmZDg5ZmIzMCBpbXBvcnRfdW5pY29kZQorODI4NjIgMWUzNjdhZmVmZDdlMGU5OTQxMzJlYjRkMTIwNjdlYWE4MDlmOWNjZCBpbXBvcnRfdW5pY29kZQorODI4NjMgYTVmYjcwN2NhYmRlZWJkODZlOTk1MTRkOWQ2NzBkZmU1Njg0NTJjNiBpbXBvcnRfdW5pY29kZQorODI4NjQgZDQ5M2ExYjQ0NTdlOWE5MTFmNTcxMjVkNGQ5MTk0MDhiNTk1YjlkNSBpbXBvcnRfdW5pY29kZQorODI4NjUgMjBiYjZmZDBiZDljMzVmNWI1MDhmNTYxZDliODQ1OWVjNmViMGU0YiBpbXBvcnRfdW5pY29kZQorODI4NjYgMzMxZTM3ZTA1MmNmM2JjNTNiNzViODBhNjczMTY2MTFmYTY5ZWM4OSBpbXBvcnRfdW5pY29kZQorODI4NjcgM2M5YjM4NDRmOTc4ODExMGNlNzAyYzRkYTQwOGRmMzNiZTUxNmYxZiBpbXBvcnRfdW5pY29kZQorODI4NjggMDkxNmU4NTg1YWNiMmQ5ZTdkOTJhMzg5NGIzMGMxY2IyOWRjMjQ1OCBpbXBvcnRfdW5pY29kZQorODI4NjkgN2YwZGFiYjdmZDhkZDYxMjZhNTk0ZGM2ZTg2ZWIwZGUyN2IxNTc1MyBpbXBvcnRfdW5pY29kZQorODI4NzAgNWIxYjdmNTU3NGMwMDFiYjhhODI3Y2ZkZTA0NDA2MGI1MjY0NzJmNiByZWxlYXNlMjctbWFpbnQKKzgyODcxIDg2MzU1MjNlZjVjNjM5NTUwYTc2ZmM0NGIzZmFkYjUyNWRiZjYyZWUgcHkzaworODI4NzIgZDRmNjdiODY0OTI4OGE0YjUwOGFlMjVhZmZlNGFjMDNmNjhiMGZkNSBweTNrCis4Mjg3MyBhZDk1ZTIzMTI5Yzc2Y2IyNmQ5MGI1Mzk4YTAwNDYwZTU2MDFmNDY2IHB5M2sKKzgyODc0IGQzMGI5ZGZmYjg2ZDQxMDc1M2QzZmY4NmFmMzZjYjJlNmQ5ZTJiZmIgcHkzaworODI4NzUgNzcwMjMyOTJmYzYxNGJjYTk1NGNiODE3YmYwZDhmYjcwYWFlOTY0OSByZWxlYXNlMjctbWFpbnQKKzgyODc2IDE4YmRjNDNjZTVlZDI4ZTVkZTFmMzRhYzEyYzFjZmU2ZWQ4ODQyZmEgcmVsZWFzZTI3LW1haW50Cis4Mjg3NyA3ZDdlNjNlYjNiNTMwMTg0NTRkYzQ1M2JlYmEwYWY4NjFjZjY3MjM1IHJlbGVhc2UyNy1tYWludAorODI4NzggNzdkZmUyYTc3NWQxOTk5MGMzZjNiN2NkN2EzNzdlMGQ0NjNhZWVkZCByZWxlYXNlMjYtbWFpbnQKKzgyODc5IGViMDA3NWU2MDcyNWI5ZjEzMjNjY2EzZjkzNzM3ZmM3ZTcxOTJjZjMgcHkzaworODI4ODAgNDEzNjBmODAzOWFiZmIzNDYyNjJlOGE0ZTAyMmRmMjFiYzNhOGY1MyByZWxlYXNlMzEtbWFpbnQKKzgyODgxIGQ3NGRlMDUwYzQ0NWRiZTllY2E4M2E1OTYxYzJhZTU5NDJiNDNjNTEgcHkzaworODI4ODIgNGI0NTY3ODBjOGQ4YWY0MjlhZDlmYzMyMGFlM2U1OGI3MjFmYWZhZSByZWxlYXNlMzEtbWFpbnQKKzgyODgzIDYxNDFjYjJlMjZlMTQ3MDAzOWJjMGI0MjAzNjMyMmQyM2M1NDcyODcgcmVsZWFzZTI3LW1haW50Cis4Mjg4NCAwZjI0MzE0MDEwMjEyNzcxOTYzZTU5ZmE5YTZlYWNkZmU3YjMwMzZkIHJlbGVhc2UyNi1tYWludAorODI4ODUgYzBlMDc1NmUwOTk2NjM0ZWVkNWRjOWNjYWIwMzQzODA1ZGEyZTlkNCBweTNrCis4Mjg4NiAzODA1ZmZlOGZmMzgzMTVlYjZlMjIyNTAwZWRlNDE3ZjZkMzY0OThhIHJlbGVhc2UzMS1tYWludAorODI4ODcgNmM3NjNkNjMxZGJhMDU5NDc2N2UyY2Q3MmY1ZWZjZDA3N2UyOGY3MCBweTNrCis4Mjg4OCAyYjY4YTg0NDE0NTg3MmZmYWZlNTFjMjgzMzk2Y2E2YzFjOTEyODA3IHJlbGVhc2UzMS1tYWludAorODI4ODkgZDRmNjFiMzZjY2U2ZTZlNzAwMjdhOWVjMjVlMGIyNzFiZDY3YzVlNiByZWxlYXNlMjctbWFpbnQKKzgyODkwIDlmMWQ5YWVmMzc0Yzc3ZDk5OWFkZDJkZmYzMjBjZDc5MzMzMTA1ZWIgcHkzaworODI4OTEgMGY4M2NhMTIwNzUyOTBiYjA1ZDM2NGNlMjAxNTU0Mzc3MDhiYThmZiByZWxlYXNlMzEtbWFpbnQKKzgyODkyIDk2NzU3YzY5MGIwNWYyZGY0YmNlOWViNjljNzFmY2E0ZDAxMWEyYzIgcmVsZWFzZTI3LW1haW50Cis4Mjg5MyBjNzA4Yzk0NmZmM2U0M2U3ZGNjZmE5MDc2OGZmODFiOGVkZGRkMzA2IHJlbGVhc2UyNi1tYWludAorODI4OTUgYTFmN2RlYTM2MjE5NmI2YjFhYmM0NDUwYmM3YTc0MGZkNDhkZDAzOCBweTNrCis4Mjg5NiBhMjk3M2U3MDUwNTdhNzFjMDA3Y2M2YzUzZDJmMDY0YjZhZWQ5ZTQ5IHJlbGVhc2UzMS1tYWludAorODI4OTcgMGIyOTFlMmZmMDBmYzkxYTk3ZTgwYjUwNTBlNjZhNWFiYjlkZGU0MiByZWxlYXNlMjctbWFpbnQKKzgyODk4IDYzMzNkM2E3ZTVjNzM5ZTk1NTcxNzlkMTI1MDYzZmQ5ZDk2ODAzMzAgcmVsZWFzZTI2LW1haW50Cis4Mjg5OSA0NjkyNzgxMDI3OTA4N2EzMzhhYzEyNWY0Mzc0NTUwZTgwNDA2NzkzIHB5M2sKKzgyOTAwIDRmZTI4YTQ5MWE2MzA4OTNlYTVhNmM5ZGJhMjhjYmU2YTg4NTE3NTcgcmVsZWFzZTMxLW1haW50Cis4MjkwMSBjNzQ1ZGY5NDYyZTY3N2VkODEyZWU4NmY2MmI4MDIyMzcwZjdlNGJkIGltcG9ydF91bmljb2RlCis4MjkwMiBhZDI2M2NjMzg2YTU0MjIzMmJiMmVlZGNmMzY0NGExMWVhYWEwMTQ4IGltcG9ydF91bmljb2RlCis4MjkwMyBmZWNmZjA0ZDBhYjEzYjBlODljNjNiODcxNmFhY2Q1MmJkZGIxNDU1IGltcG9ydF91bmljb2RlCis4MjkwNCA3Y2RmYWNlMWFiMDk2MjZlZDFlNGFhNmNiNmE1NjVmNmI5M2YwODllIGltcG9ydF91bmljb2RlCis4MjkwNSA3MzBjOGI5MDdkN2RjYzg3OTFlZjZlMzQwMGJiOWI2YTM3NWE4MTEwIGltcG9ydF91bmljb2RlCis4MjkwNiBmZjlkZGMxNjFlZTNkMDY5N2JhMWMxZTk4ZmE2MjhlOTJmZGM4YmRmIGltcG9ydF91bmljb2RlCis4MjkwNyA3YjcxYjZkYzc0NDRlMGExY2NiYzA0ZTM1YjUxZTY1MDM4M2RiNTI3IGltcG9ydF91bmljb2RlCis4MjkwOCA4OWY5N2ExMjEzY2Q5YjA0NzU4NDExN2M4MjhhOGNmYzRjOGU3YjkzIGltcG9ydF91bmljb2RlCis4MjkxMCAyMDI2ZWE0NDI4ODk5YzkzYTdlZTM2MjA3YWQ4OTRjYTBlYjJiMTQ0IHB5M2sKKzgyOTEyIDBiNzUzYTNmZTRiMGUxNzllNDVmOTc4ZTAyZjFmYjQ2ZWFiYTFiMjkgcmVsZWFzZTMxLW1haW50Cis4MjkxMyA1ZmZmYWM5YWM3ZDZjMjY5NTZmNzlkOTEzY2EzNjJmMmU1ZGVjZGYwIGltcG9ydF91bmljb2RlCis4MjkxNSAxZjI3YTA1YzZjMzFkNGExMzE1MmQzYzM5ZjdmNzU5YzdkNDQ2MWFhIHB5M2sKKzgyOTE2IDI0ZjdmYTI1ODFlNmYxZDRkMmUwZmExMWQzNWIyYjU0ZDhhYzJlNDIgcmVsZWFzZTMxLW1haW50Cis4MjkxNyBlNzAzMTk4M2U2ZmRmM2M1NDg1MzdkN2M4ZjljMjE1ZjUwYmY1MzMzIHJlbGVhc2UyNy1tYWludAorODI5MTggZTJlYzVmYmM2Y2YxMzdjYzY0Y2EwYzNhNTliODAwZGQ5NDcwMGE5MiBweTNrCis4MjkxOSBhMGI5NTM3N2FhYWQ4ZDZlOWJkYmUxNDBjMzRmYmRjYWJlOTM0Yzg3IHB5M2sKKzgyOTIwIDdjYmY4YzRlMjcyNzkxZmQ3OGIxMzIzYzNhMWRjZjA0YzU3ZDgwODggcmVsZWFzZTMxLW1haW50Cis4MjkyMSA4NGZmNDE3OTRkM2YyYjQ4ZGEyNmU4ODYyZWVlZmRlMTdmOTMzZGZhIHB5M2sKKzgyOTIyIDNjNzMwMTBiZDBiMGNmN2YyZDgyNWJhOWIyZDJlZTRjYmMzNDU0MGQgcHkzaworODI5MjMgN2EwMGNhNGI5NTkyYjg1YTY1ZWUyMTA1ZDIzODNlMDg3ZDllNDkxYSByZWxlYXNlMzEtbWFpbnQKKzgyOTI0IDAxNzExZjYwZmZmY2ZjZDQyMWZmMTE5YjVlNmUyMmFkNjNiNTZlYWMgcmVsZWFzZTI3LW1haW50Cis4MjkyNSA0YzQ1YTMyYzNjYzk5OGVlNTIyZDI4NGMzNzE0MWQzYzJiMWIzODkyIHJlbGVhc2UyNi1tYWludAorODI5MjYgZWFmMDRhM2Y0NTFhMmRiYjAxZmY0NmQxZDljMGQ5ZDE3YWM2NmY0NCBweTNrLWNkZWNpbWFsCis4MjkyNyBjNzQxYTFmMjI5NzY5OGI5Njc4ZmVjMGUwZjA1YzFlYjMyYjAzMzhkIHB5M2sKKzgyOTI4IGZhOGYzODgzNDI4NzhlMjY5OGI0NWM1N2ZjNGRkZGU3YzJiOTBiYmQgcmVsZWFzZTMxLW1haW50Cis4MjkyOSBlMDViNjQ2ZDZiOTg1MDFmODEzN2U4Y2FkYTM2MzNhMDczMzRjOTdmIHJlbGVhc2UyNy1tYWludAorODI5MzAgYjIyODkzYmUwOGM3MWUxNzNmNjY4Mzg2NjU3OWFhNjk5NWNkZjBlNiByZWxlYXNlMjYtbWFpbnQKKzgyOTMxIGNmNGI4MzNhNDdkZTg1YWVjNDc1ODAwNDRmZTVkNmViYTUyZDY3YzIgcHkzaworODI5MzIgZjI4MzMwODgxZGI0NGU4MDUyM2I3NDA4ZTNmYzFhZTQ1ZWVlNzdkZCByZWxlYXNlMzEtbWFpbnQKKzgyOTMzIDkwNWZhNTcxOTQwMzBlYzU2YjAyYzI5YjM0MWUxYWUwNWEyZGY5ZWMgcmVsZWFzZTI3LW1haW50Cis4MjkzNCAyYTc5YjcyM2FiZGNmOTUyZTEyMzliMGQ5NTQyMDkxODcwMDAzODI3IHB5M2sKKzgyOTM1IDhjNDQwY2Y5MDc3NmQyZDQ3MzhjNzY5YTVkZjVmNTU0OWZjOTdhZTAgcmVsZWFzZTI3LW1haW50Cis4MjkzNiA5ZTYxOWYxNmY2NmFhNDI0YzRmODE2OTk0MjUyMjZiNTZhMGUwZDViIHJlbGVhc2UzMS1tYWludAorODI5MzcgM2M3OGIzY2ZkNDYyY2Y0OGFiYmRiOGM0YWIwZGU2Yjk0ZmRmMWI4YSBweTNrCis4MjkzOCBhYmY2OWQ0MDI4ODNiN2IzZGUyYzNjOWE5MjdlODM1NmYyNGFkZmM1IHJlbGVhc2UzMS1tYWludAorODI5MzkgZDFkODEyNDZiMjI5OTZlM2Y1NjgxN2U2ZDUwNjUxOWFiZDgzNTY2ZSByZWxlYXNlMjctbWFpbnQKKzgyOTQwIDFlMjFkOTRlMDVmNDYyOTM0NmVkMGRlZjJiMzZlNmRiODMxZTZjMGYgcmVsZWFzZTI3LW1haW50Cis4Mjk0MSAyNjgzMzMzNzU1ZjM2MmI2YjU0N2EwMDQyM2JjOTVmYjkxYTc0MDExIHB5M2sKKzgyOTQyIDY4MDM2ZjJiNWFjOGQ5ZjUzODkzMGM1MDJjZWRhYjMwNmU4NmQzZjAgcmVsZWFzZTMxLW1haW50Cis4Mjk0MyBiMWRjNjBiM2M3YWViYzI0NzBiMmNiNGNkMzk5OGY3NDRlOTczZjE0IHB5M2sKKzgyOTQ0IGRiMmRjY2EyNDA2OTQ3MjdiYjA5MWY5NGE3YjkyZjA1MzgxYWQzYTkgcmVsZWFzZTMxLW1haW50Cis4Mjk0NSAxOTE5MTU1OWVjMDJjNWRmYjJmZTlkNzIwYzE1MzRkNmQ3NmY5MzY2IHJlbGVhc2UyNy1tYWludAorODI5NDYgYzE2YjNmNmFjNTExYjYyNDczZDc5YjI0YzM2NDU5ZjBjN2JiZDRkZiByZWxlYXNlMjYtbWFpbnQKKzgyOTQ3IDIxMWUzMThkMjNlZmE4ZjZjZGEyOWYyZDI1MjU4YmMwMWM3NTlmYmMgcHkzaworODI5NDggZGIzYWQ2ZWMwYTRiMTZkOTdlMmMyMWIzMTNmZmU0YzkxNzkyODYyOSByZWxlYXNlMzEtbWFpbnQKKzgyOTQ5IDk3ODY4M2ZkZTgyMDM3NDE3ZDgxODQ0NTIwZjJkODdiMWRhMGViYzcgcHkzaworODI5NTEgNmRjM2QyMjI4M2ZmNTRmYzRiNjFmMGZhOWQyZDRlZWVjNTUyMjU4OSBweTNrCis4Mjk1MiAxNmU4NjJhNWI2ZjI2ZGVkOTg3YzA4N2EzOGJlZTM0NmFiMDkzYzFiIHB5M2sKKzgyOTUzIDRiZjAzMzc3NTg0ZGIwNzY0OWI4ZGUzNWU2ZWQyNmQ1M2E1OWVhOTAgcmVsZWFzZTI3LW1haW50Cis4Mjk1NCA0MWFiMTYxZDQ3YTdiZjQ1ZGM1OGI0Nzk2MTc2ODIwZTJkYWFiNTQxIHB5M2sKKzgyOTU1IDdlNDUxY2U5MGMxYTYyNDRhM2I0ZTliMDE4YTY5MjExZTA5MWQ2NDAgcmVsZWFzZTMxLW1haW50Cis4Mjk1NiAwZDkxODEyZjYyNjA5Njg3ZjBiMjNkYTM5MjJjNTFkNzZiZGU0YTAzIHJlbGVhc2UzMS1tYWludAorODI5NTcgMzFkZjZmOGU5ZjFkNGQwNDlkOWIyYjk2YWU4ZGI4Nzc0N2I5NmM0MCBweTNrCis4Mjk1OCA2N2Y4ZjA1Y2Q0MGRjMGUyNjFlYzJhYmVmMGQ3OGIxNDViNjNiY2Y2IHB5M2sKKzgyOTU5IGNjZDNlNTQ1NjJmYTdhMGQ2NTNjZmU3MDhhMTgwODllYTMyNjI3MDEgcHkzaworODI5NjAgYTRkYWU3ZTJkZjdlNjY2M2YwZDNjZmJiYTNhY2VjODUzZjBiOTU1MiBweTNrCis4Mjk2MSA0ODM1MTA2ZWNlMGM1MzI0YTIwYzYyMjZmNjFkOTljODAzNGQ5ZmZlIHB5M2sKKzgyOTYyIGE2NWM5OWY5NDg5MDA5NWIwY2NhNGEzMDIyNmVlNWMzNzE1NjI0OWMgcHkzaworODI5NjMgYmI3ZmMwOGY3MjNlYzdkYjdmYjFkZjllZjYzNjhjYjc4NmE0MThlYiByZWxlYXNlMzEtbWFpbnQKKzgyOTY0IDJmOTU1YmY5MzAzN2I2ZDY4Y2JiODRiMmQ0YzEzODZkYjgzNDIwMDkgcHkzaworODI5NjUgMjUyMTZhN2UyMzRkNmFhMzg1Y2IzYTI0ZmQyYTEyMzY5MDRjYWE0ZSBweTNrCis4Mjk2NiBkMzU3ODJhYzIxZjg2MWY5Njk5OTZkZDdkZDgxZTZjYjk0MTQ5YzJiIHB5M2sKKzgyOTY3IGI3OTQyOTE1NDgwZjc4YmE1Mzk2YWE5NDk2NDE2MTI5MGU3N2M5MDggcHkzaworODI5NjggYzkwMDIxZmQxZmJmYWZmYmZiZGI0ZjMzZDE0ZjQ3NWRiZTZjMzg5NCByZWxlYXNlMzEtbWFpbnQKKzgyOTY5IGM5NmE3MjJiZTFkYmMxYzRlMGQwYmI0NDZkMDc1NTNlMzRiYjJiZDIgcmVsZWFzZTI3LW1haW50Cis4Mjk3MCBiOWM5ODlhMmZhZDMxMzc3Y2IyNTkwNDllMzdiYjRiNmFlNGM4Y2VkIHJlbGVhc2UyNi1tYWludAorODI5NzEgYWEwYjU2ZGQxNGFmN2I4YjVkNDNhZTBmNGRjNDA0ODNkNjQ2ZWRiYiBweTNrCis4Mjk3MiBhZDY2ZWZmOTgwMGJiYzJjZjI0NjcyNmFhYmRkM2NmNjdiZmZkYmJhIHJlbGVhc2UzMS1tYWludAorODI5NzMgMzU0NTQ2ODQ2YzI5N2FlM2UxMzI5OGM5NTMzNzk0ZDJiZDY5ODVkOSByZWxlYXNlMjctbWFpbnQKKzgyOTc0IDNmZGQ5YjQzMDI0YzYyMWYxMmZjMjY5MmI4YzVjMGNlYjg2Y2EyNGMgcmVsZWFzZTI2LW1haW50Cis4Mjk3NSA3ZjMxM2VkOWU4OGYzMjQzOWEwZTRkM2IxNWM5ZWEzOGExMTYxYWZiIHJlbGVhc2UyNi1tYWludAorODI5NzcgYTExMjE0MDlmOTZiMjBkZWZhYTRmNDc1MTJmMTk0NTBiZWUyNmI0MSByZWxlYXNlMjctbWFpbnQKKzgyOTc4IDczZGRiOGIyYjU3NDdlOGMzMmIzYTE2ZDQyZTVkZjNiNmJiNjUxMDEgcHkzaworODI5NzkgNWNmZjA1OGQ2Y2VkNWMxNTliMWFmZGZhMzg5MjNjNjI3NDU1YjNjZSByZWxlYXNlMzEtbWFpbnQKKzgyOTgwIDNmYTYwNTY4OGQwMzVhNTQ1YjYwMjAxM2JiMGMwYzE2ZTc1ODIxMWIgcmVsZWFzZTI3LW1haW50Cis4Mjk4MSBlMWJjMmM4OTM1ZDIwYTdlOGY3MDJkMTllNzhmMjMwYWFiMmExNGUxIHJlbGVhc2UyNy1tYWludAorODI5ODIgMWM2NmY3MmY2YmM5M2IxZGI0M2MwMzUzZWNjYTQyMDhkMzA0NjRmMyByZWxlYXNlMjYtbWFpbnQKKzgyOTgzIGYyNDE1OTJlY2U0ZWJlNWRlYTkzMDA1Nzc1MDg5ZWY2OTI3MmI5YzcgcHkzaworODI5ODQgNzQyZmRmN2Y2NTQwMDU2MjZmZTc3YzcxYmZjZTViMjllY2M0NjMzZCByZWxlYXNlMjYtbWFpbnQKKzgyOTg1IDg3MmIzNGNiMjY4ODUxNDQyZTQxOTMzODAxZmU2NjQzOWRjNmE0NWMgcHkzaworODI5ODYgYjJmMTM4NWEyMzVlMGQ4OTg2ZTI5NzRkYzBhZTczNDlkYjAwMmIwMSBweTNrLWNkZWNpbWFsCis4Mjk4NyAzMzM3YTI5NTVlMTE5MjdiM2RmYTdhZTg4ZDc0YTk1N2E5MDAwZTFmIHB5M2stY2RlY2ltYWwKKzgyOTg4IDE2OTM0N2Y5ZDRjNGYyNWRiMDdjOWZkODRmZDM3NDk3MWU2YzE0MjMgcHkzay1jZGVjaW1hbAorODI5OTUgOWM3NjZjZDIxMWRiMGVhYTYyN2E1ODFiMTAxMzI4ZDA4ZDhkYTA0MSBweTNrCis4Mjk5NyBhMTRhNzg2OTJjN2ExNTgwZWE3OTk1NTUzNjAyZjYwYmMyZTdkZjc0IHB5M2sKKzgyOTk4IGMwZDhmZTI1ZTI2NmVjODY2MWYzNGY2ZTk3OWQ0Njc0YjAwNTI0ZTcgcHkzay1jZGVjaW1hbAorODI5OTkgMWUyNjFjY2U0MTE2NDVhMzZiNTdjODdmNDg0OGY1ZmUyYmUyNTg3NyByZWxlYXNlMzEtbWFpbnQKKzgzMDAwIDQ1ZWQwY2YyYzM4NmE2ZmJjOTdlNjA2ZjQyMDQzNmFjMjkxOWEwZTIgcmVsZWFzZTI2LW1haW50Cis4MzAwMSBjMTYyMDIyMGE0M2QyOGY3NzAwODIzMDlmODQ1ZjRlMjY3NjUyNGY5IHJlbGVhc2UyNy1tYWludAorODMwMDUgY2JkNmY1ZDI0YWY5MDYxZWEyYWJhYWViZTJiMTEyYzA2NDNiZWE5NiBweTNrCis4MzAwNiA5MDU3ZWEwMTQ0NjE3ZjI4NjQxMGVlZDI4NjI2YzZlNTgzNzM1NWViIHB5M2sKKzgzMDA3IDc1YWY0YTI3YTA3MDk3MWEwM2ViNGRiYzM4YmU3YTZiYjQ2YjFhMWQgcmVsZWFzZTI3LW1haW50Cis4MzAwOCBkMGJhM2I4YjBkNDgyYjExZWZmOTZkODhkYzY4MjM1ZDdkYjc2ODg5IHJlbGVhc2UyNi1tYWludAorODMwMDkgYmZkYjVmMDhjMGY4MWZiNTJjOWVkZWM5NWZiZDBhMTU5YWJiYjQ5NCBweTNrCis4MzAxMCAxNWVkZDVmYmJjYWUxZDNiYzE4ZDA5Njc1OTE3M2Y1ODc3Y2QyOTVhIHJlbGVhc2UzMS1tYWludAorODMwMTEgZmVlNDk5NDYyMGZiZjk4NTFhYzEzZDg3MDZmYzFjMWUxY2JlZjE4MCBweTNrCis4MzAxMiBmNGViMWM2YTM0ZWY0MzBhZDBlYmViMmY2YjFlMWU1Y2IyZDZlNmIwIHJlbGVhc2UzMS1tYWludAorODMwMTMgNzA3OWM2MDc4MTRjYWFiNGMwYjE4M2E2NTNjN2JhNTg2MTBkN2M1MCByZWxlYXNlMjctbWFpbnQKKzgzMDE2IDViNDY4Njg3NzY4Y2Q1MThhYjgyYzY3MTA3ZmUzMDY4YjNjYTZlYTMgcHkzaworODMwMTcgNzA5MjVkM2MwMjc5NDdmNjk5MzY5ODIyM2M4NGExNDJiMzg3MTk4NyByZWxlYXNlMzEtbWFpbnQKKzgzMDE4IDJmMWE4MzZmMGZhYzFhMjNmMGRiNTE5ZjdjOGQxOTU3ODhkNzJkMTQgcmVsZWFzZTI3LW1haW50Cis4MzAyNSAyMGU1NmVjY2RmNTIyNjM4NmFlNDFjZWMzMmVkZjA0NjhiYWIyMjk1IHB5M2sKKzgzMDI2IDRiNDBiZjkxZWJlYjMyNmU1OTc4NDgwNzhlMDU0YWI4MDc5ZmEyYTAgcmVsZWFzZTMxLW1haW50Cis4MzAyNyBiYjY4ZTUzNDU0YjZkNjRjNmQzNjBiMzIzMjBmYzgyNTU5ZTZmYmMyIHJlbGVhc2UyNy1tYWludAorODMwMzAgMzY3NTI5ZGMzNGQxMWYxMjUzNGYyYjMwMzVjYjI5NmFlYjVmYjQzZSBweTNrCis4MzAzMSBlNWNkYjEyNzY4Y2I0YWI5YmE5NDBjNzFjZjE0MzkzMWRkMzBkOTZmIHJlbGVhc2UyNy1tYWludAorODMwMzIgN2I1ZDE1MjdjMGNlOGEzMDkwNjU2ODVlZWFlOTNmZWFjODIwZWMwNyByZWxlYXNlMjYtbWFpbnQKKzgzMDMzIDUyMGJmNGQxY2I2NjUxNmI5MTA3NDZiYThiMTY3NzA1NjcyMGI2NjAgcmVsZWFzZTMxLW1haW50Cis4MzAzNSA0NTQ1ZmY1MDYxYjdhN2EyMjQzYmZjNjFjM2E4M2ExNmYwYmExNDdkIHB5M2sKKzgzMDM3IDlkYmJlNmU3YjY2OGMxNTg0NmQ3YzlmYjM1YTZlMDRiMzY2ZGFjNTUgcmVsZWFzZTMxLW1haW50Cis4MzA0NSAxZjRlZDcxYjY4ZTIyNDZlNWRkNjFlZTVhZjJiOGVhMzMxM2JlNmZjIHJlbGVhc2UyNy1tYWludAorODMwNDYgMzA1OTAyYjNjMWEwMDlmYmNkZTE3NDdhNTNhZGVmZDYxNzc1ZmQ1MyBweTNrCis4MzA1MyAyOWEzZWRhODk5OTUzZGMyYjMxNTY4ZDBlYzY3MjU5OTYxNjBlMzUxIHB5M2sKKzgzMDU0IGVlMDFmNTQ4MWM2ODBjOTBjYzNjZDE2ZDYwZjg4OWQ3Yjc5NjJjMTggcmVsZWFzZTMxLW1haW50Cis4MzA1OSAzZTYwOWJmNDYyZmYzMTFjYzMwNmQwOGU0MTY1OGU4OTViYTY3NDYzIHB5M2sKKzgzMDYyIDFjNDQxZTM5ZGJlNDZkODgwZjdmMTdmYTE2MDg0ZWIwNjcwZjAzNjUgcGVwLTAzODQKKzgzMDYzIDg4NTIwZmI0NWJmMmVkNGEzYjc5YTYzZDQ3ZGMwM2YwM2E2NTQ3MzEgcGVwLTAzODQKKzgzMDY1IDU5MTI0OWQ5ODM4M2FjNjM0MWRkYmMxNzYzOTQzOWQ4ODdkNmNmYmUgcHkzaworODMwNjYgMTZlZGQ0ZmJhNmE1YzJkNmJlMDQwZjFhOTZlYTIyYzVjNzhjN2JlMiBweTNrCis4MzA2NyAyYWQ4ZThjZTQ2YzZiOGY4ZTY5ZjM2OWE5MDYzNDk5NDRmZGQ0NjU1IHB5M2sKKzgzMDY5IDVhNjk4YTE1MmYzMDIzNWQwNDk5NDgzNTRkOTFhYTI1NWQ2MDdlYjEgcmVsZWFzZTMxLW1haW50Cis4MzA3MCA3MjFlNzI4YWMwNjBmMGE0MGJkMDFmOWViYzJiNjQ5NmU3YzliNGJlIHJlbGVhc2UyNy1tYWludAorODMwNzEgNTM1Y2FiMWE4YzAwNDk2ZTNjZjU4NzNkMWYzMTMwNDVhNzE2ZWQ2NiByZWxlYXNlMjctbWFpbnQKKzgzMDcyIDM3ZDg0ODkxYzY3MWEyZDE3YjQ1YWRlNDUyNmFmOTQ4NjE5YTZiN2UgcHkzaworODMwNzMgOGVmOTU3YzM4MWZkYTcyNzA5MWVhZDBlZjQzMTIwMTJmNWYxZjk2YyBweTNrCis4MzA3NCBmYWE1ZjAxN2ZlYTVkODlmOTNiNzU5NjI3ZTZhNDJjNjVhYWY3ZGFmIHJlbGVhc2UzMS1tYWludAorODMwNzUgZTYwZmRiMzQ4YmRjNjExMGFiMGVkNzhlMzAxY2UxZDBmODY0OTg0NyBweTNrCis4MzA3NiBjNDgzZjk0OTc4NzJiNjMyMWE5ZDVhYmVjYTgyZmYzOTQ1MGVlMjhmIHJlbGVhc2UzMS1tYWludAorODMwNzcgYmZmZDM5OWI3NjRjNmRkNjdkODM1MzkzODMwMGRhODJhZGViMjRkZiByZWxlYXNlMjctbWFpbnQKKzgzMDc4IDc2ZTA3OTIyNTA3OWM2ZjUzOTBmM2RjZDk0YWZjMmU2ZmIxMGRhYTYgcHkzaworODMwNzkgOTk2ZWU5ZTAzODE2NzA3NWU3ZTEzNWRhMjk1MThhYzllNWJmOTM3ZiByZWxlYXNlMjctbWFpbnQKKzgzMDgwIDNhOTNmZDJlYmI0MGNlYzJiZjZhMWM1NmI5YWY1Y2NiYWI3NTg3YWMgcHkzaworODMwODEgYzBjZjdkNzAwMWUyMzIwYzJiODI3Yjg2NzUwOTI1ZmM0ZDc5OGY5ZSByZWxlYXNlMzEtbWFpbnQKKzgzMDgyIDVjZTNjMDY0NDhhNzhlZjQ2ZjFlZmUyNWFhMjY5MDA3OTYxYjI3ODEgcmVsZWFzZTI3LW1haW50Cis4MzA4MyBiZGMwNjlhMWE3MjFiMjhhZDIxODQ5MjMyYmQ1NDI2ZGRhODcxNTA2IHJlbGVhc2UyNi1tYWludAorODMwODQgMTgzYzU2MjVlMDBiZGY2OGQwNDg3ZjY3NmViNmNiYWQ5MjAzYmEwZCByZWxlYXNlMzEtbWFpbnQKKzgzMDg1IDFjZTg0YzYxZjNiMTM2MDAxMzlhMTIxNmEzYmYwYTk2NDQ5YTM5NDIgcmVsZWFzZTI3LW1haW50Cis4MzA4NiBlMjY3ZWU5NzYwYmQxNGE4YjQyNzBlMTJhZjk4MmM5NDFmYTdhNjdkIHJlbGVhc2UyNi1tYWludAorODMwODggMTAyNzRhN2JjNTM3NzYxZmRiZjgyNjMwZTFhMzY5NDgxODg4YTg2OSBweTNrCis4MzA4OSBlNjM4M2M4MWRhNDFjYTA1NmI1Y2Y2MTdkMTllZGM5YmIzMzI3ZTFkIHB5M2sKKzgzMDkwIGY1MjNiMzk4NTJlNzQ2MGNmNzdkOTUwZTZmYjQ4NmU5NzI4ZGRkNmQgcHkzaworODMwOTEgMDQ4M2I4ZThiYzU5ZjE3Yzc4MWI1NDk3Yjc5OTdhZjgxYzNjYzYxZiBweTNrCis4MzA5MiAyODU1ZDYzNjMxOTI5ZmY1NTc0ZGIzZjE0ZDlhM2FlNDlmOWRiZjk3IHB5M2sKKzgzMDkzIGVjNDJiNzI4MjY0ZGI2Y2Q0ZDY4MGZmMTRhMGU3MTFkODJhOGNjOWEgcmVsZWFzZTMxLW1haW50Cis4MzA5NCAyNzg2ZDYyY2M3OWMzOGE3YTAxODQ4NzE1ODJjZTUxNDQ2NjcwZWE1IHB5M2sKKzgzMDk1IDc2NGVjOWJiZjAxM2ExZjAxMTBhNzNlMDMzYTdjMGU5NjA0OGZhNGEgcHkzaworODMwOTYgODcyM2MxZGQxZDI1YzFhODRiZDlmMmU4Y2QwNjY1OTEzMGU3MjM0NCBweTNrCis4MzA5NyAxZjhmY2JiNjM5NmJjNjllNmM5MjAwYjU5YmYyNzI2YWZkMGEyNmEwIHJlbGVhc2UzMS1tYWludAorODMwOTggOTdiODQxYjNiMGI0N2JjNjkyMmM5MTBjMWMwNjMwNzE0NjgzNjk0MyByZWxlYXNlMjctbWFpbnQKKzgzMDk5IDA2MGRlMDYwZjAzZmYwYjZkOTZiZWE3YTIxZDVmMjEyZWNhOGMwYTIgcHkzaworODMxMDAgNjg2MTljMzcyZWYwMTNmOWRiZThkYTMxZGUzYWNhNDFmMTM3MmFkYyBweTNrCis4MzEwMSA1ODBjNzg5Yjc4NWQ1ZDczOTYwOTcxMWIxMmZhMzc1N2E4MDE3ZTFhIHB5M2sKKzgzMTAyIDM4M2U4NDYzZjU2YzAwMDRiNTVjYTFiYmNlMTEyNjEyOTkzNDk4NjkgcHkzaworODMxMDMgMGYyYjBmMzc3NjQyNDZlYzE0MjgyM2I2NDYyZDJmMDk4Nzc2YmVjYSBweTNrCis4MzEwNCAyMjdkZWUyNzg2MzhhN2Y3OGUyMTUyYmMyYTcwNWE4ZjAyYzMxYjgwIHJlbGVhc2UzMS1tYWludAorODMxMDUgMzJmYWNiZWRmZDBlYmM0ZWEzNjIyODVkNDYyYWJmMmNkZjIzOTQ5ZCByZWxlYXNlMjctbWFpbnQKKzgzMTA2IDQ4MjcxNzk2MDI1N2EwOTBkMTMwYWFjMjhhNmE3NzUxNzYzMWIyMGYgcHkzaworODMxMDcgZTQzNzk1MzQyNWQ3MDU0MzI3Zjc2ZTI4ZjdlYTQ4YThjYzU1YzcwYiBweTNrCis4MzEwOCBhZjkzNDEzMjRkM2Q4MmUxODM4NmE4MGYwYWZjYTc3NDUwZDNiNTljIHB5M2sKKzgzMTA5IDcxZjFjMGJlOGFhNzc2NTQ4ZWMzMzM0Zjg0YWE2MDBjZjNjMzNkYzkgcHkzaworODMxMTAgZGIzN2FmMDdkNGMyNzEyMDg0YTZmYWNhZTM0ZWIzNGNkYWM3NGMxZiByZWxlYXNlMjYtbWFpbnQKKzgzMTExIGY5OTcwMzkxZWVhYjI4YzJhNmYxYzRlMTRlYTc2YmMyMGM1YWE5OTAgcHkzaworODMxMTIgYWZkYjUzMzIzMDY1OWE0MjdhMzZiMmY2NWIzN2JjZTNiMWY4ZjAwOSBweTNrCis4MzExMyBlNzczODg0NTc3YTUzMzRiNzcxYWNhMjBkNTcxNjcwODdlNDZlZjdkIHJlbGVhc2UzMS1tYWludAorODMxMTQgODk5MzFjODM2ODU3NGE4YjQ2NDJlMjdmYzY0OTcwYTkxNGI1NWNiNiByZWxlYXNlMjctbWFpbnQKKzgzMTE1IDRlZDYwYzRiYzhiNjAxNjliYmI0M2E2ZWY1MjA0ZDc2ZTlhM2JmNWIgcHkzaworODMxMTYgOGZhNDI0YWVjZDBkYjhlNmFlNzEwN2VlOWM2NWJlZmZjYzZjMmQ1ZSBweTNrCis4MzExNyBkYzJhN2MzNDRiYWFmZWExMGJhMGQ5MTBiY2YxMTE0ZmU2YTY0ZmZmIHJlbGVhc2UyNy1tYWludAorODMxMTggOTM1NzgwYzYyYzU5NTc3MDA5ZGFkMDBhNWFmYTFlNzlmOGE2YjUxZCByZWxlYXNlMzEtbWFpbnQKKzgzMTE5IGVkMzI4ZTY3MmFjZTFhM2Q4YTc4OThiYTJjNjI1MGE3Yzk2MDliMzYgcmVsZWFzZTI2LW1haW50Cis4MzEyMCA1YWE3MjY0MTRmOGYwOGQ0NjYwNWE1YzRjY2EwOWY5M2UyYzg3Yjk1IHB5M2sKKzgzMTIxIGIwYWY2M2FhMDllYWNhYmU1NjY5OTRiN2M0YzM1MGRiNDRlMzcxYTkgcmVsZWFzZTMxLW1haW50Cis4MzEyMiA4MDcyZGZkOTdlMWRkZjM3ZmQwY2RmYTk5OTk3ZDM4MThkMDc5MDhiIHJlbGVhc2UyNy1tYWludAorODMxMjMgYzM4NjZjZDkxYWUwMGU1ZGRjMjNmZWNhNzI4MTNhMTkwMTY1MmIxNSByZWxlYXNlMjctbWFpbnQKKzgzMTI0IGZmNjQ0OTY0MzE0MmUyNGNkMmQwYzUwZjM1ZTZhNjAxYzE3OGM5NDEgcmVsZWFzZTI3LW1haW50Cis4MzEyNSAzM2U0YTQ3YTZhZDEwZGI1NTMzMDNjYzJiMzM4ZDE3MTg0OThlODg0IHB5M2sKKzgzMTI2IGQ4OTZmM2Y5NGE0ZGYyMjg4ZjU2ZTYwNzUxNWUwMzNkZDJhNjkxZDcgcmVsZWFzZTI2LW1haW50Cis4MzEyNyA0Y2NiYzI5YzdmMTEzMjlhNzA5NzdkYmJkNWFiMTM3NmI5YWMyM2I2IHB5M2sKKzgzMTI4IDNmMjQ1YmU1OTMzOWJmZmIxYzhkMTZjMWJjOWM0Yjg0ZjQzNjYxMDYgcmVsZWFzZTI2LW1haW50Cis4MzEzMyBhZDVmMjc5M2Y3YWRmMDhmNjVlODgwNTFlMWI1MmFmMDllNGY5NDcwIHB5M2sKKzgzMTM0IGY4MTI2MzY3YTJkZWRkZGEyNmMzNjNlNDdmZTUzYmVmMDlkMjNmZmMgcmVsZWFzZTMxLW1haW50Cis4MzEzNSAzZTY1OTI1ODFkMGY1YTgyMjY0NTY2YmY1ZjViMGNmMWJiODc4MGUzIHJlbGVhc2UyNy1tYWludAorODMxMzYgNTM0M2VhN2MxOTg2MzQ5Yjk3ZDZlZTdkZDZlZjA2MzgwZWRjYmQ3ZCByZWxlYXNlMjYtbWFpbnQKKzgzMTM5IGExNmI1YmJkZjE5YjQyODJhNDU1NGQzOGQ2ZDhjMDM2YTQzYzUxMGQgcHkzaworODMxNDAgOWVjYmE4YTEwMTI1NTFhNjRmOTk1ZTdhZWZlNTg2ODU2NGUwZjRkYSBweTNrCis4MzE0MSAyYzU2ZjRhYjM2ZjI2YTRiM2M4NTA0MWNjNmYxNmE4NTdkZTJkZWExIHB5M2sKKzgzMTQyIDJkZDI5OWU3YTZkYmQzNzE1OTk0MDZlOWY0ZGM0OTA2N2NjMmZlNDQgcmVsZWFzZTI3LW1haW50Cis4MzE0MyBlZjliMzlkZjU5MzY4MDYyYjQ3NzcxZmUzZmIwMDlkMjYzMWJmZGJmIHJlbGVhc2UzMS1tYWludAorODMxNDQgYjE5ZjhhNDkyOWQ1YjNiOGI1NDk2ZmY4Mzg1MTljMmFhMjQ0Mjg2YSByZWxlYXNlMzEtbWFpbnQKKzgzMTQ1IGZkYjBjZmRjY2Y4NTgyNWYyODBhODM1ZTM2M2M5NjAwODQ1ZjhhNDkgcmVsZWFzZTI3LW1haW50Cis4MzE0NiBkODZjMTg1NjhlODk3NTc0YTVhMTJmZTBiMjgwZjYxZDZlZGM1MzEyIHJlbGVhc2UzMS1tYWludAorODMxNDcgZDMzZWJiM2VmMGIxMDdkODc1YTI5NzY4MzNlNGExYWJiMjhhYzhhZiByZWxlYXNlMjYtbWFpbnQKKzgzMTQ4IDkwNGIzYTE2MTZmMzdjMzgyNTlkODM4ODNmMzA1N2RjZWEwMmM5NjMgcmVsZWFzZTMxLW1haW50Cis4MzE0OSA5ZTMwM2Q2NzE1Y2U4OWFhNjZjNTM5MDc5ZGFjYjc5ODI5OWIyMzg0IHB5M2sKKzgzMTUwIDllY2JkZWZjOTg0OWFiOTA5YTAzYmM2MmJlOWRlNWVmYjRiYjYzOWUgcHkzaworODMxNTEgNTEzZTQ5OGIyMjNjMmE2ZDA3MWJlMjlhNzkzZjM2YWVlMjIxMmVjMCBweTNrCis4MzE1MiAxMGNlMDQxNDAwOTY4ODRjMjUxYTI0MTIwYmE1MmEzZmQyYTU0ZmU2IHB5M2sKKzgzMTUzIGZlOGEyY2U5MTRlYThjZGFhYzI3YTU4ZTllZGM5OWIwM2VhZTM2ZmMgcmVsZWFzZTI3LW1haW50Cis4MzE1NCBmZGI3MWQ2YzE4MjI0ZjgxMGUyYzhmYmM0Yzg3Y2YzYWZiNjExZTYzIHB5M2sKKzgzMTU1IGVlY2MwMThhYWMzZWRkZDdiZmM4MDk1NzJmNGU1ODhlZWQ3YmRmNGUgcmVsZWFzZTI3LW1haW50Cis4MzE1NiA1NWY0NWU5MDY3NGQ2YzA1NWVhY2ZmZDhiNzQ0YjgxNjJmMmZiYTFlIHB5M2sKKzgzMTU3IGY2YjkyODA4YjliMzQzNTZlNDMyM2FkYzgwNTBhNWRkOGU2YWM3NTkgcHkzaworODMxNTggNzRiMTZmNDM5ZTA3YmEwNDFhZWViNDNiOGRhMDIwMTc1MzIwMDVkYyByZWxlYXNlMjctbWFpbnQKKzgzMTU5IDRkM2RlMTZkMDJjYzI4OGVmOGNiZDhmNGRmOTRkZGUzOWJmYTlhOGEgcmVsZWFzZTMxLW1haW50Cis4MzE2MCBjM2JlMjBjMzkwYTI3MDk4YjAyYmUzOGNiMTkzNDE0ZDQ5YThlMjZmIHB5M2sKKzgzMTYxIDJjZWQxY2NkMzVlYTQwZWM5OGExNTU2ZTRlZWYwMjE1MWE3MTE1ZGMgcHkzaworODMxNjIgNmE5OWQ5MWJlMGY4YmNiODk4MmIxOWRmMWI1NTNjODY3MjU3YjMxNiBweTNrCis4MzE2MyA3YTQxZTBjNDg4NTUwYzMwM2ZmNjU0MGUxOGM4NDAwMGI4ZTI3NjBmIHB5M2sKKzgzMTY0IGNjYjIxOTljMTZiYTBlZTIxMzRiZGFlMDliNzY2NGUzYjdjMmE0YjEgcmVsZWFzZTI3LW1haW50Cis4MzE2NiBmOWEwMDdhZmQ0MGYzNzJmOGRlYWFkZWI1MjhjMmM5NTJjZjM4MzFmIHB5M2sKKzgzMTY4IDM1YzE0NTYyMzQ4MDJlMTE4MWVjODRhNDczNDBmOGM1YjVkMjdhYzYgcHkzaworODMxNjkgM2U5YjkyY2ZjYWNjNTFmN2I0NDRhMjk1ZTQ4NDY2NTBiMjU0NjAyYiBweTNrCis4MzE3MCAwOTcwNTc3MDA5ZTA1NzE3ZDBjNWMwMzZiNzhlOGM3YjAxM2M1YmU3IHB5M2sKKzgzMTcxIGFkZWZkNWMwMjM1ZGZiMzQxODI5ODdlYTJlOTJmYjRmNmM1NTE3M2IgcHkzaworODMxNzMgYmMwMzQ3NmNlOTAxOWIwM2EyNTczNDViNTdiNGU2YWZmMzRmMDY3YSBweTNrCis4MzE3NCAwYjg0MDk0YjE1MTU4Y2U2NDNhZDQzOTA2YmRkMzQzYmE5OGU5NDY0IHJlbGVhc2UyNy1tYWludAorODMxNzUgMzM1NTM1NmYxYzc0ZDQ0OGJhNWU1MDM2MjZhZTI5NmNkZGI0YTIxYyByZWxlYXNlMjctbWFpbnQKKzgzMTc2IDU1MjI0MzMxNTBlMWQ5OGNiMTVlMGE5YWQ5OTc3MjIzMDVjNWYyZmYgcmVsZWFzZTI3LW1haW50Cis4MzE3NyBmOWI4NjBlZjI0YmFkOTIxMjk4NjUwNDFhMTgwY2YzNjFiY2UxNjY1IHB5M2sKKzgzMTc4IGUxYzNhZGZhNTc0NGRmNzMyZGJmNTE0NDUyZGJjZmI5YjkzZTJiZmEgcmVsZWFzZTMxLW1haW50Cis4MzE3OSBkZmUwMDk1ZmNhYjBmNmY1YzhjYzdjZDc0NzFhNzI1ZDE5NzdhOTZmIHJlbGVhc2UyNy1tYWludAorODMxODEgMmRmNzMzOTUxYmFiNDdjMzU3NzAxNTAxMmY3MjBjMWZjMTU1Yzc3MSBweTNrCis4MzE4MiBmMjE0YWQwOWMzODQyZDEwNTQ0NjAyNjE5YmRiZTg5M2I1YThiNzcyIHB5M2sKKzgzMTgzIGUyZDYyYjVhODczMDExZTZkOWU2ZmExZmY3ZmIwOWQyM2FhNGU1MDAgcHkzaworODMxODQgZTkxOGFmZDM1MDg2ODg0MmQ5NWRhMDI5ZDBiODcyNDMzZTlhYmQ2NyBweTNrCis4MzE4NSBmZDliNDIxY2RiYWY1NWM1NGM3YTE1NGM3ZDBmOTE4Zjk3ZjY5ODExIHJlbGVhc2UzMS1tYWludAorODMxODYgNWI1YmNmNGI5ZmIwMjFhNmUwMTIxZGU0N2IzODU1ZmYwODQ0MzVkYSBweTNrCis4MzE4NyBjM2Y1ODMzZGI4NDMxY2RlZTNhNWIxMjQzN2U2OWU0Yzk3YzViZmJhIHJlbGVhc2UyNy1tYWludAorODMxODggNjg1ZDM5MThmMmE1ZTFiYzk0NDE3YmZiNTk5N2JiNWQyNmYzYmY1ZCBweTNrCis4MzE4OSBiNWYzZjc0MjMzMTg2NzE5NGQwMDhiZDA0YjUxZDNjYzE5ZWQ5Mjk5IHJlbGVhc2UzMS1tYWludAorODMxOTAgMWNkNDU0ZGE0OTI4YjNlY2E2NTI0ZmY3NTNhYTE3NDI5YzRkODJhZSByZWxlYXNlMjctbWFpbnQKKzgzMTkxIDgwMzI1MGY1YzRjMjY4ZjQ0M2JlMjdhY2YzNDVhNTIyMWU4YWM0N2UgcHkzaworODMxOTIgMTZmNWNmYjE2YzZhY2MyOTZjNGFlMjQ3NTUwZWEzNTdjMzgxNmFlNiByZWxlYXNlMjctbWFpbnQKKzgzMTkzIDQzZGMxMjk4OTJhZGRiYTBhZTAxOGM3MmJkNzFkOWY0ZThiYmFhOTMgcmVsZWFzZTMxLW1haW50Cis4MzE5NCBlNGFiMGZiYmJjOTQ2MGVjYjA3MGQ1YjNmNzY5YTc3YWMzYzI5ZjE3IHJlbGVhc2UyNi1tYWludAorODMxOTUgNGE3YjM5NWVkYjY5ZDc2ZGRjMTI3OGNmMTgzZGIyOWMyOWE5Y2RkYSBweTNrCis4MzE5NiA1ZWRjZTE0YjYyODc3MzI2ZjAwYWZkZmNhNDM0YmQyNDk1MWNhYWZmIHB5M2sKKzgzMTk3IGFjN2ViNmVhZWY2ODg3N2NmODIwYWVmZWFmNTgzNmU4MTNjMjNjMTYgcHkzaworODMxOTggNzRmZDdlODBiMWJlNDIzNjg4YTVlNjY0ZTNhMzA4YmQxZGVmMDQ4OCByZWxlYXNlMjctbWFpbnQKKzgzMTk5IDVkNDVjNjUxMzQ4YmUzYjhmMmY1OWJmNjIxOGE2ZjU2MmJjNGM0OGYgcmVsZWFzZTI2LW1haW50Cis4MzIwMCAzMTVjMmI1MjRjNTllOTU5NjExNGM0NWQyZmYwN2Y2OGI2ODlhMmVlIHJlbGVhc2UyNi1tYWludAorODMyMDEgMzA2ODMzZWYxMTlkMWNiNWU5Y2FiNTE1YTkwMTg5NTlkZWNkNjBiOCBweTNrCis4MzIwMiBiYjllZWY4ZDFhYzZhNGZjNThkM2Y1YWQ5NDg1ZWUyYTZlMjJkZGU4IHB5M2sKKzgzMjA0IDhlOGNiMTY4YTA4OWY3NDZhYTE3MDAwNGQ0YjNmOTRkZGI2OGZjZjAgcmVsZWFzZTI3LW1haW50Cis4MzIwNSBlMGJjYjk3MDM0NDJkYWQ4ODRlNDNkOTcxZTVjMzM3ODg0ZWI1YTkwIHJlbGVhc2UyNy1tYWludAorODMyMDYgNmQzMWI2MDM3MmM0ODM3Y2ZmMWM2ZDIyNjE0MTY2OGYyZDkyODZkZiByZWxlYXNlMjctbWFpbnQKKzgzMjA3IDE3NDNkZmVlYjliMDNkNmI3YjU5ODRhM2EwNDk3ZDExOTRlOWUyYWQgcmVsZWFzZTI3LW1haW50Cis4MzIwOCBlYTNiNTM1MTM2ZTdmODUzMjllNGNmZGU1MTM4NzU0OGJhMDE4NDkwIHJlbGVhc2UyNy1tYWludAorODMyMDkgOWJjYmMzNDM3NzhmM2NkYmI5MjgwZDJiZDBlYjhhMzI0ZTNjMmZlNSBweTNrCis4MzIxMCAzMTE5YzRkNzI3NmIxNWVkZDYxODk5ZjhkOGVhYTIxMDIyM2EzMzg1IHJlbGVhc2UzMS1tYWludAorODMyMTEgMGJiNDdjNTFlOTMzZjg2OGVlM2I0YWY4MDY2M2FiOTdkNTRmNDA3MyByZWxlYXNlMjctbWFpbnQKKzgzMjEyIGFhMTlhN2NjMWJmMzUyYmJkZTg2M2Y5YWUxYmM2YWE0NjA1Nzg2YmQgcHkzaworODMyMTMgNzllMzc2ODI0YjM4OGE3NmIyZDcyZDM0NjFiNTExNDlhNjUzZDhhZiBweTNrCis4MzIxNCAwMTMyZTRlZTllN2YyNDFjMDMwYzU2NWJhYTRlNjliYTU5OTYzNGYyIHB5M2sKKzgzMjE1IGQ1NWQyMWMzOTZjNWNkMjE5YmMyMzI0NTlkN2UxZmM1YjMwNTBmZDcgcHkzaworODMyMTYgYmU2ZDAxNGRmOTU2MGE5ZGU1ZGU3NGQ5ZWI0YWQ3NmNhNTM4ZGY3ZCBweTNrCis4MzIxNyA1MTQ2NmQ2NzcyMmUwNjEwMTFiZDEyNjJiMTRkYWRkMTI4NWI5MzAyIHB5M2sKKzgzMjE4IDNkOTk2OTY2ODlmOWIyYWQ5MWJlYjJkMDQ1MmJkNjcxYWQ2Y2QwZTAgcHkzaworODMyMTkgZTJlMzJhODY5ODEwZGY4ZjdjMWFmMTU2ZTkwY2U4MGVkNmUyNjg1NiBweTNrCis4MzIyMCBlNWEyZjUwZmVlNjRlMTIzM2E3MjhkZTY1N2FkZGNmYTg4NDM3ZjNhIHB5M2sKKzgzMjIxIDA3MTYwOTA2MGYwNTVhZjkzNjFhNWVhMzcyMTdhZjNkNmJhZWRkNTIgcmVsZWFzZTI3LW1haW50Cis4MzIyMiA1MmJjMTk0MDVjMGYzMzIzYTNkNWI1MjAwYjkyZTBmMDMzNGZjMjM3IHB5M2sKKzgzMjIzIDA1NGYzMjc5ZTNjY2U5NTYwYjM5NTY0NTFlMDJhYTViMzI4ODMzNjggcHkzaworODMyMjQgZWUzN2JjYjhmMDNlNzIyZWVmOWY3ZWU4OTg0N2Q0NGM0MTc1MGMxZCBweTNrCis4MzIyNSAwNTY0MzYwNjUyOTBmNzJiNWRmN2QzMGI3MGYzZjdlMGZjYTAyYmJmIHJlbGVhc2UzMS1tYWludAorODMyMjYgYTI3NDY4YWY1ZWMyZGI1YmE2NDM0ZDljNzVmNDZiNTU1NzRiMGI0NyBweTNrCis4MzIyNyAwNTQwZTY3ZDc5MjQxZjc5MjU5ZmNkYTEzZDg4ZTRlMmY0OTllMDNkIHB5M2sKKzgzMjI5IGY2ZDNiZjRmYWE5YTdiNTg1N2Q4M2QzYjE1ZjBlZWRlMjFhNDA3MGUgcHkzaworODMyMzAgZjIwZmY5OWEyNDI3NWYyZGZkMzAyNWExZDIzOTVlMjE5ZWJmZjVlYiBweTNrCis4MzIzMSA4MzQ3MTVmYWYxNjVhNTAwYmU5NjFlNGMyMDNhYzRkY2Y5OWY2MTE1IHB5M2sKKzgzMjMyIGM1NWZhZjQ3NDU5ZTJlYjc3M2U3NGNmM2IzYmZmMGM0OThmNjM0OTYgcHkzaworODMyMzQgMTI1MGIwNjhmMzE3MDFkOWFhY2EyYzdmM2VjYThhNmUyNjMxNjYzYiBweTNrCis4MzIzNSA5NGIzOTAzZGUxMDc2YjJiMzI1Njc1ZjU5OWQ1MTg2ZTJlNDM3YjQ4IHB5M2sKKzgzMjM2IDkxY2JiNTVlMjBiZTU0ZmEyNTliZGRkYmNmOTQ0ZDdjY2U2NDg0MGMgcHkzaworODMyMzcgMTYxODliN2RhM2I2MmY0NmY3ZTZiNmE2ZjUyOGZmZGEzZjRlMjAwMiBweTNrCis4MzIzOCBmNDM1YjdiOTg2OTA5N2M3ZGQzNjdiZjAwNmYwZTIyM2VkMmI0Y2JjIHB5M2sKKzgzMjM5IDI5YWI1MzZjZmVmNjdmMjlkNjhhMTVkMTE3ZGNmN2UwZGM3NDFkZmUgcHkzaworODMyNDAgOTAyMTMxYjMxOTIyN2Q4MThhN2UyODRlMTcxNDU1ZTk1MTY3NDA0YyByZWxlYXNlMzEtbWFpbnQKKzgzMjQxIGI3NWNhMjVhMTQwYmFjYzdlZmJlNGIzYzllYjEwNmEzNTBkNzlkZTIgcmVsZWFzZTI3LW1haW50Cis4MzI0MiA4OWQ3OGI2NjdkMDdiZTU0MTIwNTZiMmEwNDY2MGE0ZGFkMTljNDY2IHJlbGVhc2UyNi1tYWludAorODMyNDMgNGFlMGUxM2U5NDY2M2ViNzIzZWRlZmVmODE1ZGVhOTM5ZGExNDVhZSBpbXBvcnRfdW5pY29kZQorODMyNDQgOTcwN2M4NTUxNDhmNjhlNGRkZTEyNmJjMjE1NjEzODIyNDhhMmE1NiBpbXBvcnRfdW5pY29kZQorODMyNDUgOGE3OWNhYTRmNDczMjcxZGVkN2JkMDJjYjdkYTFkN2FkY2Q3MDA1ZCBpbXBvcnRfdW5pY29kZQorODMyNDYgMjdjNmE5NDg4OTQ4ZmRkNTc3N2MzNjZmMjNhMGRkZmFkZmYyOTJjNCBpbXBvcnRfdW5pY29kZQorODMyNDcgYTE1ZTEwZDFjZGMwZGZmNzhlMDg3NDc1NTczZjdkNDc1OWU3N2ZlNyBpbXBvcnRfdW5pY29kZQorODMyNDggOWE3NGM3NWRkODI1MjVmYjFhNDNmZmUwNWQwYWMzYzY0NGNjNjNhOSBpbXBvcnRfdW5pY29kZQorODMyNDkgZWQwOTAxMTZiNzM0ZjdjMzdlMjA2YjlhYzg1NmRlYWY2MjY4NzE5YyBpbXBvcnRfdW5pY29kZQorODMyNTAgNjIxOTk1OTEwOTM5MmUwZTU5NTMxM2ZmMDJlMjEwYjNkMDAxOGUzZiBpbXBvcnRfdW5pY29kZQorODMyNTEgMDk4MzU2ZjVjODQ2MWQzNGRiZTE3YTk0MWEyYzcxNGIwMmViZWY1OCByZWxlYXNlMjctbWFpbnQKKzgzMjUyIDMyNmIxNWQ4YzM0MTM2NTg3NTM5NGE5N2VkOGM5NjE2ODUyMDgwYjYgaW1wb3J0X3VuaWNvZGUKKzgzMjUzIGRlM2ZmZjQyNzJjODRiOGY0MDI0Y2FjNWY5ZTczMzk5ZDVkOWQxMzggaW1wb3J0X3VuaWNvZGUKKzgzMjU0IDgwN2JlZWZhZDUxYzRiZTU2N2QzYWNmZWJkNGM1M2VlN2M1OGU5YTcgaW1wb3J0X3VuaWNvZGUKKzgzMjU1IDA2MzM4MTU3YjRmNzA4M2UwYjhkZDM3NDcwNTY0ZGI0ZmI0MWUzM2MgaW1wb3J0X3VuaWNvZGUKKzgzMjU2IDA0ZTQ5MjVlNWE4Y2Q2Y2E5MTBkMzFhODIyODQwZDU2ZWNmZWU2NWIgaW1wb3J0X3VuaWNvZGUKKzgzMjU3IGRjNWRhMDIxMzZlOTg5ODJjMDJjOGU1MGI1NjZjNWQzNjc3NmE4ZjEgaW1wb3J0X3VuaWNvZGUKKzgzMjU4IGE0ZTBiN2FmNGJhNDRiMDIwNTdlZDg0MTAzMDA2ZGFhYWM1N2VmYTIgaW1wb3J0X3VuaWNvZGUKKzgzMjU5IGE5NjZjM2Q0M2E3ZWFhNjExMjQwZTlmOGM1MTZjODE2YjUyZjQyZGYgcHkzaworODMyNjAgY2IxOGJjOGRkNDY5M2E4NGNmZjRkYTllN2ZjOGI4MTMzNmZjNzVlYiBweTNrCis4MzI2MSAwYTE3NDhlMTNkZTk2ZGM1NTdjNWVhZGMwMTczMjg0NDNlMWMzNTk5IHB5M2sKKzgzMjYyIDBmNmExZTQ3NmQzMTBjYWVmMDQzMDI1YTM0OGU2ZWY4ODczZTJhMzcgcHkzaworODMyNjMgNDg1NTdkYjBlZWVhMThmODkyNTM3MWQ1YTQ1NDUyMDc0NmIzMTU1ZiBweTNrCis4MzI2NCAyNDk3NWFhZDQyNjgwOWE4YjA0YzJjNzdlY2VjNTIyMGQ0ZTZhYmY5IHB5M2sKKzgzMjY1IDcxMTFiNzk3ZWMxMTVmYzM0YTRjZmJlOWQ1ZGRmODI0MTUwYjk0YmYgcHkzaworODMyNjYgYzViZmUxODYwYTVkODBlMGRlZGY3ZjIzYzM3Yjc4NzkwMjc5ZTU5OCBweTNrCis4MzI2NyAyOTQxMjNhZWQ0NmI2NTEwZGUzZTY4OTdmNTFjN2VlMzRhMzZkMWZlIHJlbGVhc2UyNy1tYWludAorODMyNjggOTcwNGI5ZDgxMGU1YjcxZWI3NTk0NjhjZThhODk2MWNlNDQzMzhmYyBweTNrCis4MzI2OSA4NDA2MzNkMzcyYmNkYWVhZWIyZDgyYTBjZTQ4MDk1NGFlOWE3MzJjIHB5M2sKKzgzMjcwIGVmZDk3YTAzOTM3NDlhNWY1ZTg4NmM1ZTdkZDViYTczNWUyMmMzODYgcHkzaworODMyNzEgMDM3NmU2NDM1ZjU3YzEyZDQ1ZTE2ODA1M2JiNjExMmRmYzMxNDhiZCBweTNrCis4MzI3MiAxYzVmNjBmMzgxYjI2NGFjZDZmNzE0NGYwNzc2MzY4N2NkNTMxYjA0IHB5M2sKKzgzMjc0IGFkOThiNTI1YjU4N2M2NmFkNmFmYmU2MjIxMjZjYjQ2ZGFjMjA4ZWQgcHkzaworODMyNzUgNDBkNmE3YzE1ODM2YTJmMTY3NDJhMGU0ZjViNjVlOWEyYzJlNjg3NCBweTNrCis4MzI3NiBhMWUyYWY2NTM3ZGZmZjIyNDFkMDQzNGM2YTY0NjUzYmFkZGZlMDdlIHJlbGVhc2UyNy1tYWludAorODMyNzcgNDM4MGZiMjI2YjExMjcwNWJmNWVkNTNkMzE2Y2Y3MjhhZTA3NzQwOSBweTNrCis4MzI3OCA1NzliMzM5YWIxNWY1NjZiYjVlNDRmZmJhMDBkNTE4OTkzZjY5ZjllIHJlbGVhc2UzMS1tYWludAorODMyNzkgMjk4Yzk2OWY1NjViOTY1YmY3YzFiYjFkOWFiMDczNjY4NWFjYzY2NyByZWxlYXNlMjctbWFpbnQKKzgzMjgxIGE3Y2MwOGI0YmEyNjlkOWE3NGE4YTQ4YmExY2I3ZGRjMjgzMDE5NzAgcHkzaworODMyODIgYWJiYjQ5YWQxZmMzMzMwNjllMjQyNTU4ZWUyYWJhZGIwZGM4MmQzMSByZWxlYXNlMjctbWFpbnQKKzgzMjgzIDM4MTE4MGE4ZjQ0NzEyYmMxMzQ0MDVkNjFlZDI0MWRiMGJmNzY2OTcgcHkzaworODMyODQgOTM0YjA5MGRmZWM4MGVkNGI3Y2U0YjZiMGE3MTc0ZjhmYWZjYzFhNCBweTNrCis4MzI4NSBmZTRiYjdjYjFmZTg3YjJjMTAyZmZmMWIyN2RmZWNiNTIwMjdhMzUwIHB5M2sKKzgzMjg2IDJjOWE4ZTYxMTJiMzk5MjAxMTY4NTQxYmNlZWE1NWRhNWU1NzZiYWIgcHkzaworODMyODcgNDZkMmVjNzhlZjc5NTc2Y2E1YjljNjM1NzRjODEzYjU1OTI5MDg2NCBweTNrCis4MzI4OCBiY2Y5M2UzNzY2ZThlNDAzYmUzMGExODc1NzUwN2Q5NWJmOTk5NzJiIHB5M2sKKzgzMjg5IDc4YTNkYjJmN2UwZjE3MTBlZTkxYjkyYmJhNjJhNWMxY2ZhYjA1NjUgcHkzaworODMyOTAgMjBjYzkzMTc5Njk1ODZkOWZkYmQwMTA0ODZmZDVhYzQ2OTNmYWIwNSBpbXBvcnRfdW5pY29kZQorODMyOTEgYzNiNjczYjk0NjEyM2Y5MzUzMmEwMmI5NTQwMDdjMTgzMzlhZDkxYSBweTNrCis4MzI5MiBiODAzY2MyZDZhNWNiZjc3ZDFhNGFjN2MwN2Q3MGJiMjI0ZjQ5NjU0IHB5M2sKKzgzMjkzIDY3MGQ0Y2JmMTQ2NDUyMmFiNTQwNmVmYzE2MTA3MDNkNzAwN2M5ZTIgcHkzaworODMyOTQgNzg3MWFhZjExMWEyNWQyOTkwMTY5NGMxYjg1YjdlZDNmMjYxN2NjZiBweTNrCis4MzI5NSAxMDAyYzNkYzkwZDFhNWE3YjI5MjA3NjVkNDdhZjI2MjhkMWUzZTJiIGltcG9ydF91bmljb2RlCis4MzI5NiA0NjcwMTk1ODhmY2M3YjIzNmRkM2VmZjk2ZGQ3OTI5ZGIxMjYyYTc2IHB5M2sKKzgzMjk3IDA4Yjk0M2ExYTkzNDRkM2M4MGMwNjI0MzQwMzBiNWYzZWRlODlkM2QgaW1wb3J0X3VuaWNvZGUKKzgzMjk4IGM3ZGM1YzdiN2FmMTk1Zjc0YzY2NmE2MDYwNDA3MjQ0YTllYTViN2MgaW1wb3J0X3VuaWNvZGUKKzgzMjk5IDNlNzQ4NzNmMjFlYTU5YTNiZTIzNzQ5MmUyNTcxYWFjYzAzOTRiY2YgaW1wb3J0X3VuaWNvZGUKKzgzMzAwIDhjZjZkMjY0NDk3NTdmMjRlNzlkYTViYjRkY2YwMjQ5YjBjNjJkZjAgaW1wb3J0X3VuaWNvZGUKKzgzMzAxIDY1ZWUwYmM5NzQ3NWYxMzJkNWY2NzFhNmU0MDk0NWUwOWE0Nzk5YTYgaW1wb3J0X3VuaWNvZGUKKzgzMzAyIGQ2ZWJlZGNkNmVjNGU4ZTU0ODVmMDFkYTY2YjhkNzUwNzgwMzM3ZGQgaW1wb3J0X3VuaWNvZGUKKzgzMzAzIDUxMDVjMTJjMzFiMjdkOWIyODc5MjI4NDkyZDU0NTYyZjQxZWZjNzMgaW1wb3J0X3VuaWNvZGUKKzgzMzA0IDg4MmZkODU1ZjEwMmI0MzkyZWYxM2Q5ZjQwZjY4ODMxOTUwNGU1YTAgaW1wb3J0X3VuaWNvZGUKKzgzMzA1IDg4YWRiNjRhN2FmZDliZTdiZTJjNmMxMjc0NGUwMTI1MDIwMTc0YzkgaW1wb3J0X3VuaWNvZGUKKzgzMzA2IDAwNDk2MTgwMWQxODY1NjI2NmFjNWM1N2JlMjMwNzMxNDY1OWIxY2IgcmVsZWFzZTI3LW1haW50Cis4MzMwNyA4NDVjZWYyZWIxZDdjN2U3MzFjNjUyYjUxOTFmOWRkMjgxZGExN2U3IHB5M2sKKzgzMzA4IDdjNGE3NzYwNDAyNzczMmY2MDA0NzZmODM1ZjRlMmFiNjcxNTQ4NGMgcHkzaworODMzMTIgNjYxZTRiZjg1YzU4ODVkMmRjMDIwYjZhMDhhYjc0YzdmMjViMzExYyByZWxlYXNlMzEtbWFpbnQKKzgzMzEzIGMyZWEwNTE2MWM5MzA5N2M0MjBmNGQ1ZDA4YjI4NGE0YmNjMmQzZDEgcHkzaworODMzMTQgNTg5NDU5MGU5YzhkNWZhYmJiYjcwYjJhMDY2NDkyN2EzMjU0ZDhjOSByZWxlYXNlMjYtbWFpbnQKKzgzMzE1IGMzYjEzNjI2NjUzODhhYzllMDA4ZDlkZDMyNjI4NzBkZDk4NTJiZDYgcHkzaworODMzMTYgMzJkOTRmMzE2ZGE5ODQ3ZmZlMjZiNGNiMjI3NDNjYzI1M2YyM2M0NSBweTNrCis4MzMxNyA3YWE5NzU3NzcyMDIzZGIxNDQ2NDNjZGRkNDg2ZmJiYjQ1NTAzZTEzIHB5M2sKKzgzMzE4IDZiMjNhYTMwMDAzMjFkNzljZDE5OWFkNmU3YzE4YTc5ZTRiNzAzNmEgcHkzaworODMzMTkgZTE3YjE2MDBmNDQwNmI2ZWUxOWYwMmVjZGNjMDhmNGFiODhhMjc2ZCBweTNrCis4MzMyMCA1NTBiMzhjYWY1YzFmYzdiZmFhMDAwMWJlNjc0OGQzOWE0ZDg5MDQwIHB5M2sKKzgzMzIxIDhiNDI2OTNlOTViOGMzNzgzYjUyOWFiYjk4YjNjNWYxYzg3N2QxZDkgcHkzaworODMzMjIgZjU3NGEwNzE4ODZkZDdjNGFjNGViODRkNmYyZTNlYjRhYmU5N2QyMCBweTNrCis4MzMyMyA3OTAzNTNiZWNmOGNlY2I5YzU1MTJiNGU2YTEyNzBmODczYzY3NTgyIHB5M2sKKzgzMzI0IDU3ZWEwMDUxNmVkZWE5NTYxOTMxNDk0YTliMjA0MjQwZjVmMmYzMTcgcHkzaworODMzMjUgNmY4ZGVmZDAxN2Q3MzZlNzA1MzJhMWUwNWU1YjFiOWVhMGE1NGQzOSBweTNrCis4MzMyNiA2ZTEzZWFkMzg5NTYwNDg4MTEyZTZjYjFhYTNkZTA1YTM4MDJjY2YwIHB5M2sKKzgzMzI3IGE0NWIzOGRjZGYxNmNhMDA2N2RhZjI5Njg4MmZkMjJmYWQxYzJhMTYgcHkzaworODMzMjggNzQ1NTFjMGI1MTNiNmM5ODMyMDhiYmJiYWVjM2EyOTExYTZiYWJkZCBweTNrCis4MzMyOSBmYjZhMTM4MDdhYzk1YWUzMWFiNTU5OTBlNWUwNTE5M2VkZWM1ZDJlIHB5M2sKKzgzMzMwIGZjODE1ZjNiMjc4MTI3NGM4ZjhmOWFmMTU0YTkxNGI4OWU4OTk2MTYgcmVsZWFzZTMxLW1haW50Cis4MzMzMiAxYjUwZTYyN2M2M2FjZTVmMDIzODhkYTAyOWIxMDQ2ZDc2Y2E0ODYwIGltcG9ydF91bmljb2RlCis4MzMzMyAxOWZmMzYwMzI3ZTc4MzgyMWFiZWExZjk2OGFkZTAxMmJhNjNlYWQ1IGltcG9ydF91bmljb2RlCis4MzMzNSAwNDNjYWFjNmM4NzU5MzEzYThiZjM3NGQyNmZiMjg0MjBmNzc4NmViIHB5M2sKKzgzMzM2IDI5ZTYwY2U2M2FlNWJlMDZlMWU3ZTNhODYwZDgxMzljOTRhYWNhMTYgcHkzaworODMzMzcgZTQ4NmQxOWYyYjBiODFjM2I5MDYyOWRlNDU0OTk5OGU0NzU0MzUxYSBweTNrCis4MzMzOCA4YTgwMWEzYWNhMzQ5OWExYWEwYzI0MTI4NDE5ZDkzMGFkYzhlOWIyIHB5M2sKKzgzMzM5IDQzZDE0YmJkNmViMTE3ODQyYjdiZjFmNjczYjc0Y2RjZDlmMmMyOTkgcHkzaworODMzNDAgZGVkNThlNDQ5ZGEzMzJlNmY1NjFmM2FiNDZjZTBkMjFiYTNmZGFjNCBpbXBvcnRfdW5pY29kZQorODMzNDEgMTI1ZjU0YTcwYWI4ZmJlOGZmZjUyODliN2E3NWEyNTYwN2QxOTIzOSBweTNrCis4MzM0MiA1OTQ3YjFiYjBmZWNkYzE3ZTUxM2ZjN2Q0ZThkM2MyNzYyOTU1ZGI3IHB5M2sKKzgzMzQzIGIzN2I3ODM0NzU3NDkyZDAwOWI5OWNmMGNhNGQ0MmQyMTUzZDdmYWMgcHkzaworODMzNDUgZmNlNzhhMjA4ZGIyNzBiMDNjYzg5NTU0ODU5ODMxNzYyZmVmNDk2MyBweTNrCis4MzM0OCAwOWNhNDY0OTA3MDdlZjlkZTQzZTVjZDUwOWQzZGU5NGQ3ZmJhOTRjIHB5M2sKKzgzMzQ5IGE2YjcxOGU4MTQ0ODBjZmM2YjMxZTNhZDIzZjBiNjg0ZGVhMWVhMzggcHkzaworODMzNTAgYzU1ODc2YTZmYTNjYzAwMGE5M2FlZmVkZGI2ZTM2ZjVjMDI3MDQ5OCBweTNrCis4MzM1MSBiMTJkZGE2MmU5M2JiOTRhYzBhM2UwODBjNDRiNDYzOGI1ZWQ4OWZjIHB5M2sKKzgzMzUyIGUwMWQyNmEzNDY4OTljOGFjNTc5ZTQ5MDk5ZDdhYjJiZTliZDcxYmUgcHkzaworODMzNTMgNGRhM2M1NzAzNDNiYjExZTA5YjUxNmEzYWIxMzRmYTgwMGYwNzhhYyBweTNrCis4MzM1NCAyNWY2ZDU3MGU3YzE2MTI2MTNmN2YyMTgwNjM0NGE0MTNiMjMxYTA5IHJlbGVhc2UyNy1tYWludAorODMzNTUgYmU2MWM4MDhiNTI4OTZmMmUyYWJmODVhY2I5N2ZkZjJhNjI5NTAxZCBweTNrCis4MzM1NiBlMjUwZTg4NTI0ZDViMDliMmRjYmUyMDIxYzMzNTc5MmU3YjYzYTIxIHB5M2sKKzgzMzU3IDhiZGJkMzJjMmViYmRkNmEwMmJiY2QxZTIzN2ZhMDI2N2QzMmQyY2UgcHkzaworODMzNTggZjljYzA5ZGFjZWRhZGQ0YzUyYjkxZGEyNjBmMzBlNzJmZmIzYTJmOSBweTNrCis4MzM1OSBhYjg5ZDBmNTJhN2YzMGI3YjYwOWU3NGY5NjA3ODQ5NjdmYTdkNmU2IHB5M2sKKzgzMzYwIDllYjRiYTQ1YTZiMjg2YjZjNTYxMmM1MmU1NGExMDIwOTY0MTU2MjIgcHkzaworODMzNjEgZTIzN2IxNWMyYmU5OTQyNDM2MmM1YTk0NTE1NzMwNzg1OThlZDg5OCBweTNrCis4MzM2MiA2ZWM2Njg2MjJkNjRkOWNhMzAzZmUwNTVkYTkyYzhlMzgyMzkxZWZjIHB5M2sKKzgzMzYzIDZlZWVkMzUyNjYzNDI3NDc4MDUyYTcxNGUzMzE4N2EyN2E0N2JkNGEgaW1wb3J0X3VuaWNvZGUKKzgzMzY0IGIyNDg0MWMzMDliZTU0NjgxNTExY2E0NzMwYzQ5OTY2OTYxYjhjN2IgaW1wb3J0X3VuaWNvZGUKKzgzMzY1IDE4YjI3MzRmN2YzOGNjNWVlYjI5NmUwNzBkNDk5YWUzMGI0ZWE5OTEgcmVsZWFzZTI3LW1haW50Cis4MzM2NiAyNjNmYWRhMjU2NWRhMjMzYzIxZDY0ZDVjODVjN2Q0N2E4OGJhNjBlIHB5M2sKKzgzMzY3IDI2NTY1ZWJkNWUzMmVlN2Q0MTY1NTkwYTIxMDJmZTJmMzE3NDM5YjggaW1wb3J0X3VuaWNvZGUKKzgzMzY4IDZmNWJhNzEzMTZlNzE2MWI3N2ZmZmVmYzM5N2JjZTMxYTcxYTI3NTYgcHkzaworODMzNjkgYWY2OTJlZTkwZjY4MzgwNTZlOGZmOWM5MmViMTQ3MzliMWI4YTM1MiBweTNrCis4MzM3MCAyOGYzN2EyYjQ0NGJmMzU0YzdhZTc0YzcyOWYwZTA0MTcyMWFiZGNhIHB5M2sKKzgzMzcxIGUyYTlmNjMzZDYxMjZmYWZmYzc0MjI5ZjVjNTMxM2YwNGRmNzdmYjUgcHkzaworODMzNzIgMWNlOWQ0ZmIxM2MyNjUyMDIwOWJhN2FiNzM5M2Y0OWNkMzY4NjMzNyBweTNrCis4MzM3MyA2NWFmN2JlNjE0YTQ4MThjOGY0NGEzM2E4YjM5MmM0OTcyYjEyNzdiIHB5M2sKKzgzMzc0IDViMjRkMWUxODI2OTlkMTFmYTgzODUzMzk3MjRkNjM5M2NmNDQxODcgcHkzaworODMzNzUgMjFkOGM0MmMwYjEwNzgwMDk2OGQwY2NhZTU5OGViYWYyMTMzODMyZCBweTNrCis4MzM3NiAyODEyYmZkODRiNTAwMGE1YWM1N2ZlMjNlMzM5OTkyMGE4ZDYzZGViIHB5M2sKKzgzMzc3IDM4NzA0M2QyMDgwYjUzZmQ4M2ExOTc5MjE2MjNjNzg2N2E1ZmZkNDMgcmVsZWFzZTI2LW1haW50Cis4MzM3OSBmMjljMzE5ZmY1Njc5YTNmNjQxZTQ4OGYxNjkxNWQ2OTExOWMxOWZhIHJlbGVhc2UyNi1tYWludAorODMzODAgNDYwM2E1YzQ2NzVhNDMyMDI1NTUwODg3OTM5YmYwNmJkNGQ1MTM3OCBweTNrCis4MzM4MSBlODA1NzdkNTZhOGZjNDgzZDAyYmRkNDJlZDk4YzdmOGZkNzAyOTk1IHJlbGVhc2UyNy1tYWludAorODMzODIgZGNiMTZkNzAzNjUzOGExZDM3ZTAwYTgyYTE3MDFiNDYxNDQ4ZmNhOSByZWxlYXNlMjYtbWFpbnQKKzgzMzgzIGVkZGE3NTk2YzgzMTI3OTVmYjI5NWMxMzFmNzcyY2UwOTUxMzNmYzMgcmVsZWFzZTMxLW1haW50Cis4MzM4NCA3OGJjYWZmMGRkMmIwMmFjYmJiN2JjMThhNmZjNTcxYzg4NzZkMjcwIHB5M2sKKzgzMzg1IGRhZDA4NWM4ZGUwOTliMWI2OTc1MDJkMjI5ZTkyYWNkYjhjMDdkMjcgcHkzaworODMzODYgNmRlNzBkNDliOTE2NWFkODVmNjcxZmI1ODFhNDE2NTk4YWFlMmQxYiBweTNrCis4MzM4NyA5NzBiN2NkNTI0NTNiNWVhMzdjZGIzMTJlOGQ3NzBiYTQ3NGZhNWJlIHB5M2sKKzgzMzg4IDczNDQ0MjdlODdkZmNiMzU5ZTg0MjAxYTUyNDEzZjU1M2Q1MWIxOGMgcHkzaworODMzODkgNmJmMjkyZTkwNmMyYzIzZWIxMDRhMGRmNDE0OGFlOWI5NGU3OTM2MyBweTNrCis4MzM5MCAzYzRiZDg2MTMzODNlNGQ2MTUwMzk4ZGEzOTliMzA4NDQ3M2NjNWRlIHB5M2sKKzgzMzkxIDU0MTBlMTE2N2Y3ZDNjNTM1NjQ4NDY4NWYwYmRhNDlhMmM1MzAwMjkgcHkzaworODMzOTIgNmVmMzJkMjA4ZmNjNGY0ZTc1YzlhMmYzMTc1YmFjYTJmNDkwNmUzMiByZWxlYXNlMjctbWFpbnQKKzgzMzkzIDMxZjRjNGI2YzQ0NTAzMzA2ZjNhNDNmMTRjN2EyZmNhNmNhNGFhYTggcHkzaworODMzOTQgYTRhZDEwOTc1Nzc2YzU4ZTlmNWU0NTcxZDcxYzViMjk3NWU3NDFkMyBweTNrCis4MzM5NSA2NmNiMTVjNjJkYjQyZTZkNzUwYWU2ZTljYTZlNzViMmEyOWYxZWY4IHB5M2sKKzgzMzk2IGYyZjc5NjE5ZjZhNDk0NzA1YTgyMDRlMTdlZGY0OWIxNWFhNjIwYTUgcHkzaworODMzOTcgNWVlM2UyNzEyZDdkY2ZiZjdhMjM4ZGUyODNkZDNhYzM4N2ZkMmFjYSBweTNrCis4MzM5OCBjYjIzMWI3OTY5M2U0NmRmZWZlMmFmYjAxNzJhMzgzYTk1OTVkMTQ4IHB5M2sKKzgzMzk5IDZkMzVkNmU1ODU2MjFmZjNlNmYxZDY0Mzg0YjA4NTQwZGRhYjNhNzYgcHkzaworODM0MDAgODk3ZmQ1MTA1MWJiNmYyNmFlYTBiYzllZWExMDVhYzg4ZGUzYmMwMCBweTNrCis4MzQwMSAzOThmYTdiNzc1M2FlMGE2Njg2OWU5NjIyYTZjODY0Yzk4ZDZmMDg3IHJlbGVhc2UzMS1tYWludAorODM0MDIgNTFhYWQ1MDljMjBmMTUxNTk1NTFhZDhiZDM2NjNiMDc3YTk4YzgyOCByZWxlYXNlMjctbWFpbnQKKzgzNDAzIDFmMDI3MWMwMzZlMTY4ZmU0YWIyMDQwYzAxOTI5YWY5ZmU3MTg2NjkgcHkzaworODM0MDQgY2MyZjg2NGJhYzljZWUzYjhjODdhOWIzNDQ0YmU2MTdkZjMyMjJhMyBweTNrCis4MzQwNSAxMzViOTkxZDY1YjYwZTY4NzUxYjA1ZDUzN2I2NjgwZjRmY2I5OTM0IHB5M2sKKzgzNDA2IGNmOTg5YTM0Yzc3ZTMwMzliYTA1NzU1YjUyMDFhODUyM2E2MzdiZTggcHkzaworODM0MDcgODhjM2RiNmY0NzllNDNiOWM4NzhkNTVlNmNmNjNlZGJmOTA5MWY2YSBweTNrCis4MzQwOCAyMjk5M2QyN2ZjOGRlZTRjYmUwYTJmMzkzNTE4MWUxYjIxNjE4Yzk1IHB5M2sKKzgzNDA5IDBiZTU1MDQyMTNkMzgwZjBmYmJjYWI5NDYxZDAzYmUxOGY4NWI4MjcgcmVsZWFzZTMxLW1haW50Cis4MzQxMCBlMzE2NWVlYWE3MDBjNThkMWE2MDI5ZjBkMTkxMDg3MjhkYjgzOGUzIHJlbGVhc2UyNy1tYWludAorODM0MTEgNzQ1OTlkMzk1NGUyOGQ0YzlmNzQ2MTkzZTM1NzhkYjc2NWY3M2M4MSBweTNrCis4MzQxMiAwZmU1NWMyODZlZGZkNDcyNjRjOTdiOGIwMGM5NzA3NmY5MGEwNTgzIHJlbGVhc2UyNy1tYWludAorODM0MTMgNzY2MDVjZmM0Y2YzODNiYzhlYmZmZjMwNjFjYzAzZmFhNjllMWJmOCByZWxlYXNlMzEtbWFpbnQKKzgzNDE0IDYyNWMyMWRkZTEzODBmODFmNTRkNGEyZjI2YzBmZmI4MjYxZDllNDYgcmVsZWFzZTI2LW1haW50Cis4MzQxNSBjODNiYTU1MTUxYjFmMzBkMmNlZDU5ODNiNzRlZDA5NDAyNjUxYTk4IHB5M2sKKzgzNDE2IDMwMjAyYzAwMTQwMTU0ZDUzZDQ1YjNjNzY2NDIyN2Q4Mzk1OGNiMzQgcmVsZWFzZTMxLW1haW50Cis4MzQxNyBlZjc1ZWNkMGUxYTdiMzJhOTU0MGM0MjJlNmMyZjY2M2RhNWM4ZTU1IHB5M2sKKzgzNDE4IGNjMzM1MDhlODBjZDc4MTkyOTdiOWExZGFlN2EzNDExNWZmZWMyYjMgcmVsZWFzZTI3LW1haW50Cis4MzQxOSA3MWZjOTJiODhiMTliODAxZTg5ODliMzhkMWViZTg2YTZhMzcwNTJkIHJlbGVhc2UyNy1tYWludAorODM0MjAgMDFjYmQ5MzIwMjY0NDhhNzUxMDVjZmUwNWRhMDk2ODZlNWJmMzZkYSByZWxlYXNlMjYtbWFpbnQKKzgzNDIxIDg0MzYzYzc0N2MyMTIwYWE0MmI0OGExYmEwNGIxN2UwODkyYmUyYjYgcmVsZWFzZTI3LW1haW50Cis4MzQyMiA5ZWUxOTZhN2Y5YTJhMzJiZTQ0Zjg3NjExZWQ1N2EyZDJjMDY1ODI4IHJlbGVhc2UzMS1tYWludAorODM0MjMgZGJjOGRhODEzNjMwZTYxMGYwZmU1MDg4NTQ2ZmZlZTAyMTY5ZGIyMyByZWxlYXNlMzEtbWFpbnQKKzgzNDI0IDlkZTA3YzU1ZmRkYTI3NjllZGM1Nzk4NWZjOTk3NzY4MmY3MWUwMjMgcmVsZWFzZTI3LW1haW50Cis4MzQyNSBiYzY2ZTE1NjZhMTkyODQ3MmFiZjJhY2UxODg4YjAyMmY5MDMyNzA5IHJlbGVhc2UzMS1tYWludAorODM0MjYgYmY1YzYzMGRhYWY3NTJkMjY4NDMzYmQ4MjNhMjczYTkwNDgxNTE0YiByZWxlYXNlMjctbWFpbnQKKzgzNDI3IDkzYjNhZTYzZDJmMzEzODg0MTdmYmY2NDA5YzQxZjVkOTFmMTM2ZDEgcmVsZWFzZTMxLW1haW50Cis4MzQyOCAxMGMxYjYxNDFkNTM1YzVkZWJiNjBhMTNlZmY1ZDIwOGZhOTUzNzgxIHJlbGVhc2UzMS1tYWludAorODM0MjkgOWYyZmJlZTQyMGRhYzJhMWRjZDMzMjBiMWY4ZmQ3ODk4OWZmYjk2OCByZWxlYXNlMjctbWFpbnQKKzgzNDMwIDBkY2FlNDU1ZWMwNzZkYmQzOGY1ZTlmN2IwNDlkNWNiNTZlYmVkMGIgcmVsZWFzZTMxLW1haW50Cis4MzQzMSBiYTM0Mjc5NjIzMDYzN2E4ZjdlNDMyZjhjY2QxNWM1NTgwM2I4ODNlIHB5M2sKKzgzNDMyIDY2MWUwYjBiNDBiZjFmM2NjOGQwNWM4Y2FiZTVmYTEzNTYwODgwNTYgcmVsZWFzZTI3LW1haW50Cis4MzQzMyAyMGM3MjQ0YmNhNzgwMzc2NWUwZTY3NWE0NmI4MjRiMzFlMjViNGI1IHJlbGVhc2UzMS1tYWludAorODM0MzQgYjQ5MjAxNDg0ZjdmZTVmM2EwNDVkNzNmN2RlYmYzOWEwZjJkYTg3OSByZWxlYXNlMjctbWFpbnQKKzgzNDM1IDkxODAyODQwZjBmNzgzZjFkZDU1NDQ1ZTVkY2MzOTlkNDVkYzNmZDkgcmVsZWFzZTMxLW1haW50Cis4MzQzNiAzNDk5ZWQ2Y2JkMDc3Y2Q1NmM0NmQyNTUzNTUxNzAzMGUyZmFjNjBjIHJlbGVhc2UyNy1tYWludAorODM0MzcgNDkwM2U3NTc3NDU0ODU4YTU3MTRlYzkzOTRiNjFmYzQwODU1ZjUxNCByZWxlYXNlMzEtbWFpbnQKKzgzNDM4IDQ2YjE0YTI5NTBkMDBlYjc2NTM2M2FjMDFhYzg5ZDM5MzU3NDQ5MTggcmVsZWFzZTMxLW1haW50Cis4MzQzOSA0ZjY3OTEwNGNiODZiZGU2NDNjMTliNzMwYzlhMmZjNGQ0NmJlNzg5IHJlbGVhc2UyNy1tYWludAorODM0NDAgNDA0YTlhYzFhOWEyYjdlZTNmYjY1ZTVkYTEwOGMxYTQzYjRkNjM0YiBweTNrCis4MzQ0MSAzYzBmZmUzOTU1N2RlZTU1ZGFkNGVmOGVkZDcyZDk2ZThjOWQwZTFiIHJlbGVhc2UzMS1tYWludAorODM0NDIgYThjZmVmODg0MDhmM2M0NTVjZTQzNGE3OWJiMTNlZTk5M2NiNmQwNCByZWxlYXNlMjctbWFpbnQKKzgzNDQzIDcyMDc5OGExZWU3MTkyMmZhYTczNGFiYTVkY2NkNzdmN2RjMTY3MjAgcmVsZWFzZTI2LW1haW50Cis4MzQ0NCA3NjViZmQ4ZWM5Njg5OGNkNTNkOTQ2N2FmNjk5MjE1NmFhNWE2YjNmIHB5M2sKKzgzNDQ1IDVhZjM2MWFkYWFlOWZkZGJhYzdmNDBiMDhhZTM4ZDJlNGNlMzRjMzggcmVsZWFzZTMxLW1haW50Cis4MzQ0NiA3NWIzZWRkYTNjMmJkOTUzOGRiNjk3ZjM1YmI4MmUxNTNiNWZhYjBjIHJlbGVhc2UyNy1tYWludAorODM0NDcgMTQ2ZmVmMDI0OWY5ZmZjMTBkZjg3OTc2Njg2MDE4M2NmMWVkNWJlNCByZWxlYXNlMzEtbWFpbnQKKzgzNDQ4IDQxNWVhMmMzY2ZlOGE5YzBmMDgzMjIxMmEyY2ZlM2Q1NGVlYzVhZTAgcmVsZWFzZTMxLW1haW50Cis4MzQ0OSA0YTAwMmRhN2ZiZmIzZDk2NjFiNjhiMjJlNGNhMGIzM2ZiZjBlYTRjIHJlbGVhc2UyNy1tYWludAorODM0NTAgM2Q3ODIzZTY4OTdiNzYxMjAwNDUzN2IyNDc2ZjZiMmM3ODIzZDc5ZSByZWxlYXNlMjctbWFpbnQKKzgzNDUxIDJjYTg0MmRjYmUxMWU4NDRmMDFjYTJjYzE0ZWVmNzE3MmFjNTJlMGYgcmVsZWFzZTMxLW1haW50Cis4MzQ1MiA0NzNhODA2OGY2YzU0YTQyNzM1OTNmZGYxMWIwOWFmYmMzODc3YTUxIHJlbGVhc2UyNy1tYWludAorODM0NTMgYmVhYjJmYjI5NmNjZGI2ODEwNjcwNjIwZDJkMWNmNjhiZDNkZDdlZiByZWxlYXNlMzEtbWFpbnQKKzgzNDU0IDAxZDljYTgyZmQ0ZTRlZTMwM2VmZWJkYzhiOGEzODAzZmUzY2VjOWEgcmVsZWFzZTMxLW1haW50Cis4MzQ1NSBhYWQ1NzY2YmYzNmZjNmNjZDk4ZjI3ZGY5MzZmNTAzN2FhOWI4ODlhIHJlbGVhc2UzMS1tYWludAorODM0NTYgYzcwNmY4Njc5ZGZjZTNmNGE1N2NmOTFlN2IxOGY4ZmNiZTIxNzhhZiBweTNrCis4MzQ1NyA4YzEwNDViOTJiNmYxOWQyN2Q3ZDliODA3YTVjZTdhMmEwYWRhNjhhIHJlbGVhc2UyNy1tYWludAorODM0NTggZjA0ZjQyMTM0YTkyMTc0ZmQwMzg2M2U3MDRjZTVkZWQxNDU4MTNjZiByZWxlYXNlMzEtbWFpbnQKKzgzNDU5IDJiYzFmYzJkOGNjMDlkNzM0ZDViOGE0YmU3MmRhMGQ1ZmQ4ZmMzMTIgcmVsZWFzZTI3LW1haW50Cis4MzQ2MCA2OWY4N2Y5ZDMzZTcyMjBiNmJlYjE2OTVmYzgyNWUwNjRiNzI3NmViIHJlbGVhc2UzMS1tYWludAorODM0NjEgYmY2ODIyNWRkMmJjZTZkNWQ5NTcxZDNiOWEzODM4YWY2NTA2YzE2YyByZWxlYXNlMjctbWFpbnQKKzgzNDYyIDllYTVkYjU2N2JkZDhiZmY5MjgwNzY5OWU0MGRhYWIzZDA0ZTM1MTUgcmVsZWFzZTI3LW1haW50Cis4MzQ2MyBjNDMyYWRhYzExNmFkNzE0ODgyYzNiMjZmY2ViMjRiMTZkNDBlYWE5IHJlbGVhc2UzMS1tYWludAorODM0NjQgOTNkMTI0YTgxOTVjYzQ4YTViOWUyY2IzNDhlYWFlMTA5YWRlMDhmYiByZWxlYXNlMjYtbWFpbnQKKzgzNDY1IDlmMWVlY2JjYzM2NjIwZGUxNTgzMzNlODQ1ODg3N2E1YmQ3MTBjY2IgcmVsZWFzZTMxLW1haW50Cis4MzQ2NiAxOThiMmNkM2E2ZDFiODdiOGFjMmI5MzFhMWU4MTdmNWViNDAyMDZjIHJlbGVhc2UyNy1tYWludAorODM0NjcgMzk1ZWNhZTYwMmNiMTAxZTZkZDg2NTVlMDRiNjMzNWZmYjhlOTA0MCByZWxlYXNlMzEtbWFpbnQKKzgzNDY4IDViN2UzNWFhMWYxZDE3M2E4ZmQwZWM1M2RlZWQ1YjMxMzY3ZGE4NzAgcmVsZWFzZTMxLW1haW50Cis4MzQ2OSBjYjUyMjI1NzJmY2Q5M2ViNWIyNmVkNWViODYxOGE4YTk0OWQwOWY5IHJlbGVhc2UyNy1tYWludAorODM0NzAgY2QxMWUxYTFmZDg5YmMxNTZlNDNjMDc3YjMyMWJkOGM0YWI1MTk3ZCByZWxlYXNlMzEtbWFpbnQKKzgzNDcxIGYzNTQxNDY0MmRmZmEzMzViMjdiNzY4NDU0ZjBjYjhmOTU3MjhlNWEgcmVsZWFzZTI3LW1haW50Cis4MzQ3MiAyMjhhMGVmMjNhN2IyZTU0YWE0Mjg3Y2I2NjJkYWIwNGNhOTQwM2I3IHJlbGVhc2UzMS1tYWludAorODM0NzMgOTJmOTY4ZDg3NGI4NmU4MWRlZTZjMWI0OTM1MjA5ZjhlMDUzMDU0ZiByZWxlYXNlMjctbWFpbnQKKzgzNDc0IGY0NmRjZDhhMzExMzVhODMwYTZkYTkyOTg3OWRiMWE5YzNmMjNiZTcgcmVsZWFzZTMxLW1haW50Cis4MzQ3NSAyNzU0NGZiMGY3ZjE0ODU5MDQ5NDQ3MGEzZWFiOGRlMWYyYzM5MDgyIHJlbGVhc2UyNy1tYWludAorODM0NzYgMTMxMmU1OTRlYmU3ODQ4ZTY3NTA3YjBiYzJjNjc0MmQ1MWVlNjUzZCByZWxlYXNlMzEtbWFpbnQKKzgzNDc3IDliZjdhMGY0MmVhYzM5ZjUzOTYyOTE2Njk5NzU0OTYwOWU2ODMyNjIgcmVsZWFzZTI3LW1haW50Cis4MzQ3OCA2YWVhNzA5MjhhNmFjNmQ0OTY2Yzk2ZDQ0YzZhZDUzMTFkZjIzNTBjIHJlbGVhc2UzMS1tYWludAorODM0NzkgMWFiZGJjZmFhMDg5ZDA4MGIxMzZlYmFmZGQ1Njg5NDQ1YTg5ZmU3YSBweTNrCis4MzQ4MCBmMzZhMDQwNzhiZmRiZmViMjY0ZDc5MzMyMTU2ZDAzNWVlMDM4ZTQ1IHJlbGVhc2UyNy1tYWludAorODM0ODEgZWJkNGIyOGY0NmEwZjI5YmJmOWRlNTg3OGM2OGQyNjBiM2MxZDY4NCByZWxlYXNlMzEtbWFpbnQKKzgzNDgyIDBkZDQ4MDAzOGE4ODcyYzg3MmQ3ZWE5MTE4MWRmMzUyYmY0NDRkNDQgcmVsZWFzZTI3LW1haW50Cis4MzQ4MyBkMTViNDNjMjcyZmJiNmQ2NDdkY2JkODE3NjVmOTQyOGFjNTQyNmJkIHJlbGVhc2UyNy1tYWludAorODM0ODQgOTUwMWNkNjQwYzhlODdlMmVjZjExNzY5MjI3MGJjZGE2OGM5NWQ5YiByZWxlYXNlMzEtbWFpbnQKKzgzNDg1IDhmOGJhNGJmYmZhNTA2NDc2NGJjMmZjNDYyZmVmNjViMzFkNDU3ODUgcmVsZWFzZTI2LW1haW50Cis4MzQ4NiA3NDM0MDY3NDliMmQ3MDVjYzM5MWQxNDFlODhkZmRmNTE4NWMxMjYxIHJlbGVhc2UyNy1tYWludAorODM0ODcgZThmYzlhOWUxOTkxYTA3OTk3ODUxNTY0MmNkMzZiYzZhNTJhNmQ3NCByZWxlYXNlMjYtbWFpbnQKKzgzNDg4IGRlNmRlZjc5MzI2YzkzNjY3NmYxZGRhYzUxMWU4YWY4YWIzZjMxMTUgcHkzaworODM0ODkgMmE0YjJmZWM4Mjc3YzdiOGY1ZmI1YzMyMjA4ZTYzMDJjY2MyOTNlNiByZWxlYXNlMjYtbWFpbnQKKzgzNDkwIDJjMjUzZjZlMDJlN2Y5MjU0MDk1YzliZTM3Y2Y4MjllN2UzY2EyMTEgcmVsZWFzZTI2LW1haW50Cis4MzQ5MSAzODgxMjk0OGM1MzIxMTE3N2M5OTkxZDc4Y2U4ODY1MWJkNWZmZGFhIHJlbGVhc2UyNi1tYWludAorODM0OTIgOTdjYjFkZDg1NjZlYjIzNWNjZTY5NzUyZWM3ODU1NjE5NWQ2NmJmZCByZWxlYXNlMjYtbWFpbnQKKzgzNDkzIDVmZDA5ZTQxMGQzNmJmMzYwZWExZTIxNWI0MjQ4NzU2YTY0OTAxZmYgcmVsZWFzZTI2LW1haW50Cis4MzQ5NCBiN2Q1Y2JiZWExODBjZmZkYjQwOGJjOTNkMjBhZTlkMGQxNzY2OGZhIHB5M2sKKzgzNDk1IDYxYWQ4MWE3NzRjNTUwNjNmYjEyOWVjZTlkZjI4NzQ3ZTE5MzgwMDMgcmVsZWFzZTI2LW1haW50Cis4MzQ5NiA5Yzc1YTk0MTg3YzczZjZhNzg5NDU4NjAwMjQwNDBhYzI3YjU3MzJjIHJlbGVhc2UyNi1tYWludAorODM0OTcgMGRiNjVjNjUxMGRhYTU2OGYwZWUxYjM5NmE5MDc5MGMwNTlhYzAxYiByZWxlYXNlMjYtbWFpbnQKKzgzNDk4IDMxNzRkNWJhNDZlMzhmMWI4MDFlYmEwYjYzMzM1MTBjMDUxODc4MDAgcmVsZWFzZTI2LW1haW50Cis4MzQ5OSBiYzEwYTQ0MjcyZGZjN2VmOGZlYTllN2IwNjI5MmEwZjZhNzVlNGUwIHJlbGVhc2UyNy1tYWludAorODM1MDAgZmRiZmNmOWRhMmM3MTBjYmZiY2E4OGVhZWIyMTRmMzM5NzM3MDk2NyByZWxlYXNlMjYtbWFpbnQKKzgzNTAxIDhhZGEzNWU5ZjQ1ZDBmMTM3ZWE1M2MyNDBkZTM3ZjE5ZTQ0MGQ3MWYgcHkzaworODM1MDIgMmMzNjc1MDE2MTQ1MWRkNTAyYzMxMjc5ZDM0M2FkMGQwMjJjMTJiMiByZWxlYXNlMjYtbWFpbnQKKzgzNTAzIGU0OGVmNzEzMWNmYmM3ZjQ0MDQwZDY1MjY4MjU1MzE2MTcxZWZmNmIgcmVsZWFzZTMxLW1haW50Cis4MzUwNCBjOTY2MzEzMjM5MGRjZGM2NmJlNDA5ZWFmYzkwNmQ2YmM2YTY0MmFhIHJlbGVhc2UyNy1tYWludAorODM1MDUgMGFhYzdiODc3MWUxN2ZlM2E4MmI5NzUxNGZiZjg4MzU1MGExOGRhMyByZWxlYXNlMjYtbWFpbnQKKzgzNTA2IDhhMTQ5YTlmOWRhZjY1NzE2NDUwMDZlYjRlMzQzYzY2MDhkNzZjMjIgcHkzaworODM1MDcgMmU5N2FlYmFkZTRkZGJjZjM2ZTM2NDE5Nzg4Y2ZlOGNlYTlkMzlhNCByZWxlYXNlMzEtbWFpbnQKKzgzNTA4IDYzYjIzNDllZjc5MGQ0ZjQ2YjdjMGU0OGZkNzQyZDU0ZTA0MDM2M2EgcmVsZWFzZTI3LW1haW50Cis4MzUwOSA3MmM4ZmFiOTExNmViMDhiYjFjMjgzZjRhOTQyZTI1MGU5MWNmOTRmIHJlbGVhc2UyNy1tYWludAorODM1MTAgZGU5ZjM1M2VlODY1ZDllNTg1YjE2MmQ2M2IxNjUyM2M2MzBhMTc1MyByZWxlYXNlMjYtbWFpbnQKKzgzNTExIDM3ZDNjZDhjMTBmYjQ1MTE5N2U1NGU3YmRlZmNlZDdmZDA1Y2NhMjYgcmVsZWFzZTI2LW1haW50Cis4MzUxMiA3NTFjNmRkNzFiNWVkNTVkNDk1Y2U0MDc1MTQxZTEwOTJmMjAwN2Q4IHJlbGVhc2UyNi1tYWludAorODM1MTMgZWI2Zjk5MjU0MzEzNzM4ZGRjNzhlZjAyOGVlYTdlYmE2NmZhMzEyNCBweTNrCis4MzUxNCAxODVlM2Y3MjY2ZTkwZDc0M2EzOTcxZjVhOGQzN2FmZDBhN2M3YWYyIHJlbGVhc2UyNi1tYWludAorODM1MTUgMzAwODZhYTMzMTIzNTEyYWMzNGVmNGNiOWQ4ZDAwY2RjNTdiODBiMiByZWxlYXNlMjYtbWFpbnQKKzgzNTE2IGQ4ZGJmMjQwMGQ4YTIxYzllNGVhYWI0ODU5OWJhOTg4OTdlODE1ZTUgcHkzaworODM1MTcgOGEyYTgyYmI3MWM4MjI0N2UxZGYwODcyN2IxYjFjNmRjZmM4MWIwOCByZWxlYXNlMjYtbWFpbnQKKzgzNTE4IDJkYzBiNzEzMWM3MjEwODBhZDkxNjljNjk4NDAzZmY3ODQwNmM5MjYgcmVsZWFzZTI2LW1haW50Cis4MzUxOSAwN2M4NGI5ODE0MDE0ODYyZDAzZGE2MDQxYTA2ODA0ZTNkZWQyYzI0IHJlbGVhc2UyNi1tYWludAorODM1MjAgZmQ0YjA3YWI3OTc2OTk2NDAwNjUwMTBkYzNkZWI5ZmE5YjE3YzAxYiByZWxlYXNlMjYtbWFpbnQKKzgzNTIxIDM5ZTE0ZGY3NjVlNDMxYjlhNzhmYTQ3NTNhM2MzNzJkMTk2YTgzM2UgcHkzaworODM1MjIgOTA0ZWY0YmJmZjVlNTY0YmY0MTZkMDY1MGFmOTdlN2U4ZDcwYjI1NCByZWxlYXNlMzEtbWFpbnQKKzgzNTIzIGI2MTQ0ZGFhNDMzOWExOGFiMTBlNmUxZmY2MmQ2NDNlMmNhOTRhNDggcHkzaworODM1MjQgNjFkMzQ4MWViYTc0MWQ3NTcyNzdlMjdiNTc0MmJiYTczMjAzNGI5MSBweTNrCis4MzUyNSA3N2JiYjA1ZDMxMGU2M2RkZTZkZGM1YWM2YTMwNjYwOWUzZGE4YWU0IHB5M2sKKzgzNTI2IDkyNDZhYWRmY2Q3ODljMjNmMTMzOWFkNWEwMWY0YWFkYTY3M2Q1MmMgcHkzaworODM1MjcgZWI3OTA0OTVjNmE0NTAyYzlhMGViMTU2NWNiNjkwZDgyNDRlNTFjZiBweTNrCis4MzUyOCBhMzQ5ZmFkNTA3YTIyNDU4MTVlNTJiZDk3ZmJlZDliYjBjZjgyM2UxIHB5M2sKKzgzNTI5IDE2NDBlZmE3ZmYyOWM5MjRiODg3OGZjZmJkMTljOTQ4ZmExMDY3YTUgcHkzaworODM1MzAgYjA4ZDM1MDYyMDg4NWYwMmZhZjI0OTI1MDcyZmQ3MGU1ODM4ZTM3OSByZWxlYXNlMzEtbWFpbnQKKzgzNTMxIDg1Y2RhZjVmM2NkYzNlMTRjMDgxZTlmMjc5ODc0ODZlODVkOGE3NGUgcHkzaworODM1MzIgYTMxNDljOTMxNjU2NTZlOGY5NTAwNTM1OTkwOGZlMmNiMzU4ZjY0YiByZWxlYXNlMjYtbWFpbnQKKzgzNTMzIDZiYWViYTU0ZmQyNGJkNzFiYWUwMDU1OTBhMWZhYmEwMWJjZDBjNGIgcmVsZWFzZTI3LW1haW50Cis4MzUzNCAzMDY4ZTAwYTMyMDc2OGE1YzAyNDNmYzM0ZjVjNjM4OWNlZGRmNzkwIHJlbGVhc2UzMS1tYWludAorODM1MzUgM2JlMjQ2NGMwYzM5NDZkYzIyODU3ZDJjZTM5YWViYjg1ODhhNzVkNCByZWxlYXNlMjYtbWFpbnQKKzgzNTM2IGQ3ZjMwODVkMWIwM2U0MmZkNzZhODM1ZDA2OWQxZTUzOTZlOTk2OGUgcHkzaworODM1MzcgN2MzYjg0OWQxODFhZTJkOTgxMTU2MjQ5Y2I1ZjVmZWM2MDAwOTA5ZCByZWxlYXNlMjYtbWFpbnQKKzgzNTM4IDUxNmY5ZTM0YWYyMDk2ZGEwOWY2MzkzNWRlOTY4MDRjYzdjZDIyMTIgcHkzaworODM1MzkgY2E2MzJiYWQ2ZDYwY2I0NmE1YmMxMzI4Y2NiNzljYTBmNjA2M2NhYSByZWxlYXNlMjYtbWFpbnQKKzgzNTQwIGRiYTk5ODI4ZDkxYzNlOGVlMTk3N2QxMWM4MjhiZGYyMTM0NWM3YTMgcmVsZWFzZTI2LW1haW50Cis4MzU0MSA2NTM2MTUwZGQ0ZjQyODY1ZDI4NDQ3NzFmYWQyY2QyZjI5YzZjMjA1IHJlbGVhc2UyNi1tYWludAorODM1NDIgNThjMjJkMzBmNzQ5MzY0NzdiYTBiZDZkOWM4NzRkNzdkMzk3MzMxZiBweTNrCis4MzU0MyA2NzI0OTNmZmQ3NTNmOTljZWZhOTY1NzU5NzFkYWI2OTQxYjdmNDhjIHB5M2sKKzgzNTQ0IGNlY2M2ZDJhNWI0OWNiY2M0NGQ5N2EwNWQ3N2FhYjdiNGVmMzFlNjYgcmVsZWFzZTMxLW1haW50Cis4MzU0NSBiNmM1ZmNjY2I2ZGU1ZDU3ZGY5ZDUyODJlNTdhMmE1YzYyM2E5NTYwIHJlbGVhc2UyNy1tYWludAorODM1NDYgNzIwMmM5YTIwNTY2NjI5ZGFkNmQxNjc5NDMzNDhhZjlmOWU5YjgwMCBweTNrCis4MzU0NyAwYmYzNmNkZDgzMzQ1NDI1MTBjNWVkY2ZjYWM2MzkzNDJmZWQ2YjhlIHB5M2sKKzgzNTQ4IDZlM2MyMDkzYmIyMTA4NGMwMWRjYTQyZGZiZjU4YzIzNWQ1ODFlN2MgcHkzaworODM1NDkgZjhjZTY0YTk2Yzg5NjAyYTVmMGI5NWU5MDlhYjhhMmFkZTRiYTNjMyByZWxlYXNlMjYtbWFpbnQKKzgzNTUwIGEyNGM5YTc0MDFmNDUzNTE3ZTM1NmFjMDEwZWQ3MjUxMjgwMTBiYjEgcHkzaworODM1NTEgNjk5ZmNkYWY5OTgxMmNhOTFhYzkyNGI3NWRhNTYzYWE3NWU0ZjQ1OSBweTNrCis4MzU1MiAzMDdlMWNlZTRhNTgxMGY0MGViNGEzNzFhOTljMjgyZmUyNWJlMGU4IHB5M2sKKzgzNTUzIDdmNjhmODU1NDNkNGY5MWE3ZTIyNGE0YjY3MWYxN2ZiN2IyY2M0YTkgcHkzaworODM1NTQgN2YwNzEwODdkODIwZDk5MmRiMTZhN2IxNTAwN2UwYWNjZWQ0M2EwMCBweTNrCis4MzU1NSA2MmQ4Y2ZjY2QxOGI0NGY1NmU5NmM5NzYzMmFiY2QyN2I3NTk4YWIzIHB5M2sKKzgzNTU3IDUxMTAyYWJkZWM1MDIxMmYwNTY3NzEzNDJjYjFhNTU3Y2MxZTRhMmMgcmVsZWFzZTI2LW1haW50Cis4MzU1OCBiNGY2MTQ3MTc4ZTVjMmY3OTI3MmI0MjI0ZTg4Y2UxOWYwNzAwZDk1IHB5M2sKKzgzNTU5IGFmZjhkN2JjYTNmMzMzZmE5OTY1NDZlOWVjNTE5ZjY1ZjVjYmMwZmUgcmVsZWFzZTI2LW1haW50Cis4MzU2MCA0ODc0ZWZkMWY2NTdhMzZmNzcwZDRhYjkwZGNiMzRhYWY2NjQxMGFmIHB5M2sKKzgzNTYxIDdlYmY1ZjkwMTFiMTkwZDJlODM5NDRhNmVkOTU1NzkzY2M4MGZhZjMgcHkzaworODM1NjIgYjRiODlkMWI0MmNkNDQ1YmE1YjE0NmFmMDgzYjk2N2RiYzg2MjAyMSByZWxlYXNlMjYtbWFpbnQKKzgzNTYzIGJiMmRjZjEyMDNjNGM0NzBmNDFhNDhkMmM3NWIxMmIzZDM5ZjA4MzEgcHkzaworODM1NjQgYWMyOWY3MGM2MWRiYTM0NDZjNzViZGUyYjIwN2U4OTY0NzVlMDU1MCByZWxlYXNlMjYtbWFpbnQKKzgzNTY1IDQyZTE5YzE0YjE0OTJhNWM5YTYzMzMzYzVhODkxNmFjZWQ0YjYxNjUgcHkzaworODM1NjYgNDdiYTkwNWE3ZTg3ZGM2MWI3ODg4NTQ5MmFiZDc4Y2Y0MDY5MTQ0ZSBweTNrCis4MzU2NyBkMGJiODBlODFiMzlhNjNjNDYzZDNjNjc0ZTBjYzI2MjAwMzE3YmUxIHJlbGVhc2UyNy1tYWludAorODM1NjggMzdiYTQ3MjMyMDI3YTYwMjk5NGFmMTFiYTU1ZjBlMzQxYmRjY2E5OSByZWxlYXNlMjctbWFpbnQKKzgzNTY5IGZmNmZhYmYyNWNlZjQ5NTdjOTNlNzlhNDJmZTBiY2E2Y2ViZmJkOTQgcHkzaworODM1NzAgZGYzNzhlNDRiYTlhZDNlZjg0ZTAyNWQyZTkwOGRiNTIxOWFlMjVmNiByZWxlYXNlMjYtbWFpbnQKKzgzNTcxIDIzNjM5M2M1NTRmNzE0OTBkZWNjNmYyY2FmZmMzMTM5N2Y1NjBiZWQgcHkzaworODM1NzIgNzk1ODhkNDg2N2JjYjI0NzVkNjI2ODFhNzI0ZTI5NTEzNjkwOTA0YSByZWxlYXNlMjYtbWFpbnQKKzgzNTczIGRjOTQxMzQxODZjODc1M2M2YzBlNTM2YzM5MjY3ZmU1ZmFhMzFjZjkgcmVsZWFzZTI2LW1haW50Cis4MzU3NCA4ODE2ZjRlOWY3MTJjZjNiN2YxOWFiZDE0Yzk2Y2IzYTFlY2RhMjRkIHB5M2sKKzgzNTc1IDcwYTZhNzI3ZWNkNzMyOTM1Mzg1YTViYjlkZmQ4OWEyMzkyMDdiODUgcHkzaworODM1NzYgNjQ5NDc2YzY2M2ZjZjYxMGU1NmRjZDQ1MjIyZGFhYWIwOWY1NWEzOSByZWxlYXNlMjYtbWFpbnQKKzgzNTc3IGNjMzM2NjkyYmFiOTA1NDc1YjljNzVlNWUzYjJmMmExNTA1OTFjOWMgcmVsZWFzZTI2LW1haW50Cis4MzU3OCA5NTk0MDBhZTA1YjA0NmM2MGVkODkzYWZjZmExZTYwYzNhY2RiMmNiIHJlbGVhc2UyNi1tYWludAorODM1NzkgMzE5YzlmOWRjNDU2MTk0NmRjZDViYjQ4YTFkMzM5MDQ4ZmFhMTk5OSByZWxlYXNlMjYtbWFpbnQKKzgzNTgwIDNkMDExYzJlYzIzN2NkOTM1NThlYWJlZjdjMGFmOTI3YjZlMzE2MzMgcHkzaworODM1ODEgM2FmNmNhZTVlMDI2YmJhNzNjZDY0NTZmYmExMmU2YTA3YjJmZTJhOSByZWxlYXNlMjYtbWFpbnQKKzgzNTgyIGQ2YWMzZDA5Yjc5ZDRhNzdlZDc1NzMzZjZiN2IwZDJmYjM3ZjQ0N2QgcmVsZWFzZTI2LW1haW50Cis4MzU4MyBiODVjZjg1YjdlZGJjNTRlNTE1NTkyODY5YzUzYjdjZTFmZjgzOTYwIHJlbGVhc2UyNi1tYWludAorODM1ODQgY2VhNmVkN2EwYWExMWEwZjg0OTc4OTc0MTFjNGJlY2VjM2ZlODkwNiBweTNrCis4MzU4NSA0ZGZiOGE2MWU2OWZkMDM4ZjM4MmU4MGNjNDAxZDdmNzA4MmFjYmQ2IHJlbGVhc2UyNi1tYWludAorODM1ODYgNzZlMWM1ZjMxOTMxZjBmZTA3OWI2ZTQ1MzA5ZDBhYmVhOGFiYjc4OSByZWxlYXNlMjYtbWFpbnQKKzgzNTg3IGU5NzFjMTA0YTVjMjFlM2QzNzQ4MGZiODRkYzI1NzgxM2RmMGViM2IgcmVsZWFzZTI3LW1haW50Cis4MzU4OCBmZDI0OTc1MGNiYWU1YTRlNjAwNDg1OGI5OThhMTgxNGZjYTk5ZDUyIHJlbGVhc2UyNi1tYWludAorODM1ODkgNmY4MWQ2ZjlhNmQxYzRhN2RjZGQzNTgyNTVjZjY0Y2Y0OGM5M2JiZiByZWxlYXNlMjctbWFpbnQKKzgzNTkwIDY3MzBjZjlkNjI3YTVkYWU4MWI0OTc1YWFlMjEzY2EzY2ExODgxZWUgcmVsZWFzZTI3LW1haW50Cis4MzU5MSA3NDQ5ZDA0MjEzYzZlNDFlN2E3NDQzNjk5M2EwMzcyMzYwNDEyOWMwIHJlbGVhc2UyNy1tYWludAorODM1OTIgMjE2MjBkOWIwODQ4MGNlM2FkYzM2NmRhZTY4MmI3OWFjYjc4ZDg2NyByZWxlYXNlMjYtbWFpbnQKKzgzNTkzIDU5NTY3NmU0NjZjMGQ0MzBjMGVhMjEwZTdmZGRkMDdjOGZmYmJlZTAgcmVsZWFzZTI3LW1haW50Cis4MzU5NCBhOWNkMjU1MGZmNDBhY2ViMGQ3NjRmMmQwMjQwOWE2NWRiNThjY2VkIHJlbGVhc2UyNi1tYWludAorODM1OTUgMTNkMmJhY2M1NmE0MTU0NTJkN2YxMDI5YjI1ZGUyMTBkYzg4M2M4MCByZWxlYXNlMjctbWFpbnQKKzgzNTk2IGYzZmVmMjBhNjZkZDA4YmQyYmVkYTEwYTQwNTI4NTJiMDQ1ZjlkMGYgcmVsZWFzZTI2LW1haW50Cis4MzU5NyAyOWQzNGU0ZDBhOWEzNjdhZTgwNDMyODVlZjdlODA0N2MyOGU4Y2RkIHJlbGVhc2UyNi1tYWludAorODM1OTggNjFiNjliZjFlZWJkY2UxMWFmY2IzMGEwN2M4ZDgwMWZjNGJhMjQ5MSByZWxlYXNlMjctbWFpbnQKKzgzNTk5IGYyZDgzYTEzNzAzZmE5ZmMxNTIwMGE4ZDU5NzNiYWU4YzY3ZjM2M2QgcHkzaworODM2MDAgNWM0Y2RmMzNjMTMyNWE3MDU2ZTc4ODBkOWU1NzdjZDZlYTM1YmM3NyByZWxlYXNlMjctbWFpbnQKKzgzNjAxIDEyYzkxZjRiYjQxNDQ5YWJhYzZhZGFmZmMyZDZjOGRkMGJkN2VhNmQgcmVsZWFzZTI2LW1haW50Cis4MzYwMiA2M2ZiOGRiYmZkYTI1ZTQyOTRiOWEzZmJkZTRiZWRjZDJkZDcwYjQ4IHJlbGVhc2UyNi1tYWludAorODM2MDMgNDQzODk2ZjMyNGNlMjBmYTY5NjA2ODc3MDg2YzAzZmNlYjgwMDI5MCByZWxlYXNlMjYtbWFpbnQKKzgzNjA0IGEyZjAxMzAyMWUxZGRiMWJmZjA4NTYzMTE5OTQ1NzRjMTVlMzJlODcgcmVsZWFzZTI2LW1haW50Cis4MzYwNSAzN2QzOTlhYThjMTZmZGE2NzVlOTJjNjQ1Nzc4ZmE1NTE1ZDAyMTc0IHB5M2sKKzgzNjA2IGZkMjBlYmExZjIwMTFkNjMwNDJkMzNiOWE0Y2VlZmRmMjg2YWViYTkgcHkzaworODM2MDcgNDc1MGE4YThiNGNmNDE3NDVmMjNiMDk1YjFlOTBmYjMyZTdhODM3YyBweTNrCis4MzYwOCA2Mzg0MTBhMjkwNDY4MWNiMDgyNjllODY5YmJmZDg3NDE4Y2Y2YWZiIHB5M2sKKzgzNjA5IDdhNDdjNGQzMGY2ZTFiM2Y0NmViZDBiNDRmODcxZDAxNzEwM2Y4OTkgcHkzaworODM2MTAgZDQ4NWM2ODBjNjVmYWM5MzczZDA5MzJlYTljZmZiNmIxNmU2MmNmMiBweTNrCis4MzYxMSA5NTJhOGRlNWNhNjVhMTc3ZDk0ZmZlNGRiYTYzZGM5OTMyMjk5Mzg3IHB5M2sKKzgzNjEyIDU5M2Q2NDE3ZWRmMTA3OWYyYzNlNTM1MDJmNjA1N2U2MjQ0OWVjNmMgcHkzaworODM2MTMgMjAyNDJhZjI0M2QyMGUyMzA3N2NiZDQzNWE4YmFhMjNlN2FhNjFjMSBweTNrCis4MzYxNCAyZDAzZDZjNGM4MjljMjkwZDkwNTE0ZjFmNWZlZTc0YWUyM2Q1Nzk0IHB5M2sKKzgzNjE1IDQ0ODJhNDI4ODVmNzVhNTE2MWRkNmVhY2QwNTIyYTJkODQxZTJhMTggcHkzaworODM2MTYgMjlmMjBlZjEwNzU1YTBhYTI0YTBhMTE0YWY4YzkwMjYzOWU5MzU3NiBweTNrCis4MzYxNyA2MDE1YjZlYzgxZjJjNzcwM2NjMWIyMWRiMjhmMDcwNTA3N2M1MDFjIHB5M2sKKzgzNjE4IDAzMWU2YjM0OGE4ZThhZjlkM2IxM2U0YzM2ZDg1NjQ3MWU1YWM1YjQgcHkzaworODM2MTkgNzYyZDg5ZmFjZWFhYWFjNjk4MTY1YjQ3NTc1OGFhZjZiNTY2YmE4MyByZWxlYXNlMjYtbWFpbnQKKzgzNjIwIDQ1NDBiNmY0MjhkMzYzNDc0ODQ2OGIzNzFmMjJhODcwODk4YTc0NjMgcmVsZWFzZTI2LW1haW50Cis4MzYyMSBkNTc1NTJhYmYxODBlNThkZDI0MGM1ODY1ODU0M2JmNWQ5NjVjNDFiIHJlbGVhc2UyNi1tYWludAorODM2MjIgYjkyZjBjNDlmMGU4ZjljYTY1NjViM2JhYjUxOWRmM2IzMDVmMDMzNiByZWxlYXNlMjYtbWFpbnQKKzgzNjIzIDY4Y2ZjODRlNGRiMWM4NmMyOTQ5OWZjZGQ5Y2RiMzRkZjZhODYwMTcgcmVsZWFzZTI2LW1haW50Cis4MzYyNCA0YzBiMzdkODY5Y2FmODc4NmI4ZTgxMzhlODNlYjE2MGM2MDc0ZjUwIHJlbGVhc2UyNi1tYWludAorODM2MjUgYTY5MzRhMWJmYTNiMGZjNjA1MWUxOTNlYTAwYzVkMTM2NTU3NWJjMSByZWxlYXNlMjYtbWFpbnQKKzgzNjI2IDY1N2FlODc3YzBiZjIwMDA2MGNhZTFiODAwZmUzNTQ4ZDNlNDRmMmEgcmVsZWFzZTI2LW1haW50Cis4MzYyNyA4Yzc5OTA5YTdlZTdhNjFmOTNlN2MxMjc2MzhmY2IzMGQ3YWNkY2M5IHJlbGVhc2UyNi1tYWludAorODM2MjggNGRmNzJmZWIzOWQ5MDU4MWNjZGE1ZmQxMDcwNjM2NjBkYTNhYWM1MiByZWxlYXNlMjYtbWFpbnQKKzgzNjI5IGVmMTE5ZGJiZTg4NzY2MTU1YzhhNGU0YjdkNTk1YzYwZGQxZjNmMTcgcmVsZWFzZTI2LW1haW50Cis4MzYzMCBhODhjYjgwMDUxMTBmNTczZGJiYzkwNmNmMWQxYjhjM2JlOGM5ZDI4IHJlbGVhc2UyNi1tYWludAorODM2MzEgYjFlMDQzZGU5YzVhNTg0MDE0YmNhNTgyNmFjZWZjNWY5M2FkYjk4NyByZWxlYXNlMjYtbWFpbnQKKzgzNjMyIDVjZjY3OWJlM2RmYzRlYThmM2ZmODZkYzI1ZDE3NDBiYmJjZmZiMWMgcmVsZWFzZTI2LW1haW50Cis4MzYzMyA2ZmZmMGZmZmY4NWI0ZWZiZjBkZjMzNTMyMDBkNzllODJhZjMzOWI1IHJlbGVhc2UyNi1tYWludAorODM2MzQgMmFjYTM0NDYwZmRiNDA5Y2Y1YzExYzMyMGIzMTIxNDEwM2Q5ZDRiMCByZWxlYXNlMjYtbWFpbnQKKzgzNjM1IDNlZmI0NTgxNzkwYTMxYzc3ODYyMGQ0OTY0NThjZDVhNGEyNGYzZmEgcmVsZWFzZTI2LW1haW50Cis4MzYzNiA2YTZjMTNhN2YwMzAzOGEwZGM4NGQzYmU2NjE0MjVmZjUwNmY1MzEzIHB5M2sKKzgzNjM3IDMwYTgwMGQ3ZWFjY2FhYTcxODc2MGZiMTIyOGU1Zjg3NDc0N2VjNjcgcmVsZWFzZTI2LW1haW50Cis4MzYzOCBlN2U3YzU2NzE4YWYyNmY1NTYwNjYyZGRjMTAxM2I4N2JmMzQ4MTU5IHJlbGVhc2UyNi1tYWludAorODM2MzkgMTk5NjQ5NDRjYzAxM2U3YzFmNTFkZTdjNzM1MDZiMmRlOWRkNTU1YiByZWxlYXNlMjYtbWFpbnQKKzgzNjQwIDg2ZDExOWU5NGRhM2EwNmJjMDJiZTc2YmM5NzdiNGZlN2M0NjRkMzIgcmVsZWFzZTI2LW1haW50Cis4MzY0MSA2M2YzODM3OWU0ZWRhMGI2NzYxZDUwOGFjY2EzYmU3ZDVhYmNjM2ZhIHJlbGVhc2UyNi1tYWludAorODM2NDIgN2I1ODRhMTNiYzk2NWFiYmJmNjk2MzM4Y2IzY2ZjNzdjNjM5MzFkZSByZWxlYXNlMjYtbWFpbnQKKzgzNjQzIGYzMDYwZTZmYjcxNzU4NWRhNDZmY2I2MmRiMjFlYmU2NzhlMTVjYjMgcmVsZWFzZTI3LW1haW50Cis4MzY0NCAxOGM4YzUwMDQxMDllZDcyOGQ4OGUwODI5ZWU2N2U2NjQ3OTgxNTZmIHB5M2sKKzgzNjQ1IDY5NDU0MTZjOGQwNDVjNjhhZWFmYzg2NDJhYmViN2FhZTBmZTIwYWEgcmVsZWFzZTMxLW1haW50Cis4MzY0NiA1MTc4NTljYjBlOTIwMDIzZDVhYWMwOTMzYjM0NTFiOTBhZTJiYWEyIHJlbGVhc2UyNy1tYWludAorODM2NDcgYzgyYjZlZmZiNjk1MzFhNWYzYzg4ZmNjY2M3YTk5MjUxYmM1ZTZjZiByZWxlYXNlMjYtbWFpbnQKKzgzNjQ4IGNkZjZhM2E1MDQwNzQ2ZDMxMGE1MjRmZGI4NWVjMGZlNWQwZTU4NWIgcmVsZWFzZTI2LW1haW50Cis4MzY0OSAxMjg4YTI1OTMyODc2ZjYzNDVkMjdhYTc4NmExNTk2ODgxZGFhZWU0IHB5M2sKKzgzNjUwIDU3MTA1ZTg3NTYwNGZlZmJhZGUxMzc2NjdiZGM1Mzc1YzRkNTEwNTkgcmVsZWFzZTI2LW1haW50Cis4MzY1MSBlYmM5MDUxN2I4ZDk2YmZmODJhMTdkMDNkNTJiZThiYzA4Nzg3MTg1IHJlbGVhc2UyNi1tYWludAorODM2NTIgZTFlZjUyNjMzMzUwZGY2NDM2NGM3MmI4YjNjNDE0ZDA5NjZiOGQ2OSByZWxlYXNlMjYtbWFpbnQKKzgzNjUzIGY4NjRmZmI4ZjJlZGVmNjg2Yzc3NmU3NTliNzg2MzU1ZDg2OTM0M2YgcmVsZWFzZTI2LW1haW50Cis4MzY1NCBkMjY1ZjkxYzM4N2QyZmE4NDA4ODU5NDJmNGM5NTA3NWZlNjZkNTAzIHJlbGVhc2UyNi1tYWludAorODM2NTUgYTc5MzdkYTYyNTkxYzI1ZThjYTcwMTk0N2E3YTA2YzM5YjUwMGFhMCByZWxlYXNlMjYtbWFpbnQKKzgzNjU2IDQ4YzU5ZTkwNTUzMjUxZTdmNTg0MjBhYmMwYjM3YTU2YzcyZTRkYjggcmVsZWFzZTI2LW1haW50Cis4MzY1NyA3Y2VlMWI5NjA5ZTQ3ZGUwM2ZmMDgxNTQ0NDRmOTExMzBmMmY3YzdhIHJlbGVhc2UyNi1tYWludAorODM2NTggYjIwNjY2NzhkOTM3Y2Y5OTBmZWY1ZTg4MGVlNTgyOTAzYjZjZWIwNiByZWxlYXNlMjYtbWFpbnQKKzgzNjU5IGUyMTBlZDYzYjA0ZTQyMzhjODIxNzE4ZjZmMTU5MDBmMmNmODNjZDMgcHkzaworODM2NjAgM2RjZmUyOWQ5Y2E1NDQ3YzBmODZkNDAyOTZkNjg1MDFlZjhlZjk1YyBweTNrCis4MzY2MSBhM2Y2NDUzODFkNjFjZTJlMWZhZTYyYjQxMDU0MjM1NjMzNjk2YjAyIHJlbGVhc2UyNy1tYWludAorODM2NjIgZjljNGYwOTlhMjRkZGRmNzc0OTU5MTgxZWNmYzg2NGUyMjdlYTNhOSByZWxlYXNlMzEtbWFpbnQKKzgzNjYzIDY2NjAxZmI5MGQzZGY2NDQ4YjA3ZmE4MTRmZjk1MzQxM2ZiNzdmOTggcHkzaworODM2NjQgNzFhZTUyM2ViYTViYWRkZjdiODFhOGJjYThiNzczMGUwNWM2NGViZCByZWxlYXNlMjctbWFpbnQKKzgzNjY1IDQ1ZGJhMjJhNzRmYzlhMzllODE4YmFhMDNjNjQ4ZTZmZjBlNzI0NGUgcmVsZWFzZTMxLW1haW50Cis4MzY2NiA5ZDlhODNiMjUwNDU3ODFmZWJlN2QwYWNmMTE3Mzc3NThmMDBiOWY2IHJlbGVhc2UyNy1tYWludAorODM2NjcgYWYzNjU1ZjJmMjQ4YzNkMzQ0ZjIxZWY3NWEwOGRhNDQwMzJiOTI3NyBweTNrCis4MzY2OCAzM2U5YmUyZmE0ZDIzOTFlNzUwYTNhNmMyYzJhZmU5OGM4NzJkNTVhIHJlbGVhc2UzMS1tYWludAorODM2NjkgNjNlMWQwZGM0NGVlMDdhMTZmNjk2ZWE4NzhjZTRmNTU5MmEyZmUxZSByZWxlYXNlMjctbWFpbnQKKzgzNjcwIDMzZDJmNDI0NTU2MTAzMzZiZTI3YjRhYzAxOWNmMjkxZTM1MDczNGYgcHkzaworODM2NzEgZGMyMGRmOWM5YmE5NWYwYWM2Nzk0ODY3ZmM1MjdjZjI1MGZkNDAyMSByZWxlYXNlMzEtbWFpbnQKKzgzNjcyIDAzYWEwNWViZDliYzViYmU5OTRiNDFjYzdlNGJmY2U2ODAyNzJiYTQgcmVsZWFzZTI3LW1haW50Cis4MzY3MyA3MWM0MzE1ZDQ5ZjI3ZjIxODFmYmE4MWRmYmUyZmNmNjgyYjFjNDNhIHB5M2sKKzgzNjc0IGZmNDQ1NmRkNGE3OGNhNGQzYWEzMTZjNDFkNTgwMDJjZTAyMjJjMDIgcmVsZWFzZTMxLW1haW50Cis4MzY3NSAyODUwYmQ5MTkyNzcwZDRiMWQ2Mjg3ZGM4ZTI5YTczN2U4YWUwMjg0IHB5M2sKKzgzNjc2IDIzYzA4OWRjNWNmZjBlOTA3NDBlNmY5NTgyNWQyZWQ3NzJiZjcxZjcgcmVsZWFzZTI3LW1haW50Cis4MzY3NyBkNmIzMzZkZDY0NTc3NmZlMTBmNDY4OTY5NjZmMGJhZDVlMGNlMjlhIHB5M2sKKzgzNjc4IDlkNjhlNzg0NWU0MjA1MDk1MGY0MzEyNWI5ZmVjOTMxNTEwZDEzYzIgcHkzaworODM2NzkgYzRiYmRhMmQ0YzQ5ODY1ZDI2ZWIzOWY5Y2U4ZDk3NzBiNGI1NzkwYSByZWxlYXNlMzEtbWFpbnQKKzgzNjgwIDA0MjBmNTQ3ZjNiZjI0MTEwNjFjNjgxZDM4MDUyNmNjZmNlODBjM2YgcmVsZWFzZTI3LW1haW50Cis4MzY4MSAzOThhMjVjZDYxMmRkYWFlZDVjZTlmZWMwNDgxOTI1MzUzNDBjZTI5IHB5M2sKKzgzNjgyIDk3MTllNWU4YThhZjkyZWJlOGUxNzQxNWMwOWVhYjBiOTU5MWRmNjUgcmVsZWFzZTMxLW1haW50Cis4MzY4MyBiMzNjODBmN2FiMTc2NmI1Yzc3MDAyOGVlNGVkZjIxODgwN2U5MjNkIHB5M2sKKzgzNjg0IGYyODM4ZWIxYmIxZWY5MGFmOTU3MDdkYWU4NmNkMWQ0YTY0MDZmY2MgcmVsZWFzZTMxLW1haW50Cis4MzY4NSA4YTllOTc2MTI3YWIxMzk3NmY3MTIzZjAyNGQxNzY4YmQwMTY1ZjZjIHJlbGVhc2UyNy1tYWludAorODM2ODYgMzc3NWJmODI5OWIzMTM1NmZiOGM3OWJmMjEzMmNhMjA1MWE1YWNhYiByZWxlYXNlMjYtbWFpbnQKKzgzNjg3IGY0M2Y2ZDE3MzA3NmU5YWI1YTdlNjc1NjUzODdiNGUxNDAzNDlmZTYgcmVsZWFzZTI2LW1haW50Cis4MzY4OCBjZjlmZWEyMmMzYTllMTYxZjljMmFjZTYyNDFjMjQzMmZmNDhiMzNhIHJlbGVhc2UyNi1tYWludAorODM2ODkgZDY4NmYzMDMzMTc0YTkzMDI1ZWJlZjQwNjk4OTI1OTE5MmExZDcyOSByZWxlYXNlMzEtbWFpbnQKKzgzNjkwIDIwZDczZmVjOWY2MjMwMWRkMjQzZGFkYjNmMDNhY2UyOGRhMDY1MGEgcHkzaworODM2OTEgYzFkYzllNzk4NmEyYThlMTA3MGVjN2JlZTc0ODUyMGZlYmVmMzgyZSByZWxlYXNlMjYtbWFpbnQKKzgzNjkyIDVhNzNkZDE1YmUwODRiZTVkODEyMmVmMmE4MmRlZmQ3Y2I2OTc4Y2QgcmVsZWFzZTI2LW1haW50Cis4MzY5NCAyMWE5Yzk0MDExMGQyNjVlM2Q2MzU2YzdmYjg3MzcyODM1YzllMmEwIHJlbGVhc2UzMS1tYWludAorODM2OTUgZmNhM2M5ZmI1YTFiNjNjMjQ1NzE1ODNkMzY2YzhiZDVlMWZjNzY1NCByZWxlYXNlMjctbWFpbnQKKzgzNjk2IGJmNjk1MDk2MjZmZjk1NGExY2NiMjEyNDhlNGM2Nzk1NDAzMjI1NjAgcHkzaworODM2OTcgNmU3OTVlYzM4ZTgwMDgyODUwYzJjOWJhMTYxYmRhODdhNmNlNzQ1NiByZWxlYXNlMzEtbWFpbnQKKzgzNjk4IGFmMzllMjU1ZmVhZDA1NmFkMzAxMmJiYzc2ZDQ2MDQ1MzNiNTA3YTUgcHkzaworODM2OTkgZjBlY2E3NGYwMGUxNGIyZGYyMjU4YTk4MjcwNzZlZDRlYTY5MTZjMCBweTNrCis4MzcwMCAxNDg5ZjM5OWFiYTFlNzFlMDZhMWZmNDM2ZDYxYjYzOTI4NDQwMWFkIHJlbGVhc2UyNy1tYWludAorODM3MDEgZjRjOWY2ZjFmZTc2YTYyZTNhNmIwYjc4NzZjNmM2MmMwMjhlODE5MyBweTNrCis4MzcwMiA5MTViMDI4Yjk1NGQ3NWMzYWQ4M2FhOTI2NGUzM2U4ZjNlMmRlYWQ3IHJlbGVhc2UzMS1tYWludAorODM3MDMgNTgzMzQzNTc4NzMyZTJlYjM0ZDgzZWM5NGMwYWJmMDQ4ZmFlZmYzOCByZWxlYXNlMjctbWFpbnQKKzgzNzA0IGIzZmRkNDQ1ZTAzNzlkNzMxNDQ1ZTUyZGNjZjg1N2ZhOWM5MDI2MGQgcmVsZWFzZTI2LW1haW50Cis4MzcwNSA4OTg5M2EwMDIyNzNlZWM1NTllMjM3ZTdhOWY2ZjY4MDM5NTY3NjgzIHB5M2sKKzgzNzA2IGJhNzM1MzE0NzUwNzc3ODZjZjhmY2NhYmRhMTU2YWRkMmEwZjI4Y2IgcmVsZWFzZTMxLW1haW50Cis4MzcwNyA0YzRkOGFkZTlkYmFhMTZjNTMzYTFmNjkyYWQ4MDJkMGI1Y2Q3ZDk3IHB5M2sKKzgzNzA4IGY1OTg0MjNhNDYyMTY5ZjczMTIwMGRkZGQyNjhmNDE4MTQ1YTM5OGIgcHkzaworODM3MDkgZTY4ODYzNTk3MDYxM2Y1MWIyNTY4NzY1Mzg2M2ViMjQxMDQyOTVmMSBweTNrCis4MzcxMCA3NzE5Y2M3ZWNmNDU0NmFhZDJmMDNiOGE3ZjNkZTdkNWQ2MzcxOGZlIHJlbGVhc2UzMS1tYWludAorODM3MTEgZTVmMTI1OGNmYzU4OTVmMTA2OThmMWJlNGYwODM3ZDkwMGNiNWQwMyByZWxlYXNlMjctbWFpbnQKKzgzNzEyIDZjMTJiMTcxNzkyZTI1MGY4ZTc1YmRmNDBmZGVmNDdlN2YxNWM4ZWQgcHkzaworODM3MTMgNTkzMTExMmVhYmU3N2ZkMTA4N2YxZmM2YWQ3M2QzNDNhM2QyYzc5NCBweTNrCis4MzcxNCA3MTZlNjAxNTcwZGExYzUxOWE0OTI0OGY2MzA0MmYzZTQyYjZiMmFiIHB5M2sKKzgzNzE1IDQ4NWMwNTRjOWFhMTY1MTUwY2M0YTBkZjBjZjQyMTIwYzk3MTQzZTMgcHkzaworODM3MTYgNzA0MmZhNTM5ZTdjODE1NGNiYmMwMGRiYmU5NmU1OGQ4MTllZTRmMSByZWxlYXNlMzEtbWFpbnQKKzgzNzE3IGM1YTI4Mjc5N2Q1ZTM1MmVkZDAzMDhiZjFmNDY4NDNiYzVmMGZlYzAgcmVsZWFzZTI3LW1haW50Cis4MzcxOCAwZTQ1MjlkNzMzYWM0MWExY2QzYzMxZjQ4OTRmYmYyNGI1ZDJjOTA5IHJlbGVhc2UyNi1tYWludAorODM3MTkgNTc2Yjc2NTg0NGFmOTJkYTUzMzZjYTE1ZDQ5NzcxZjk4MTNmNTljOSBweTNrCis4MzcyMCBiMzk4NDZiYzdiYTU1NjdlM2Y0YTdiZGUzYTZhNDM3YjgzZGQ2ZWY2IHJlbGVhc2UyNi1tYWludAorODM3MjEgY2IzNGNkNjMwMDAwMjAwYTM5Y2ZkMjZjZDU5NjE4NWY1ZGIxYTA4MiByZWxlYXNlMjYtbWFpbnQKKzgzNzIyIGZkN2Y3M2UxMjU2ODAwYzcwNzE2YmU2NGE5NTgxNDU3M2Y3OGI4NjAgcHkzaworODM3MjMgODMwNDNjMTUyNTY2ODFlNmVhNWNlODVmZDBlNGMzMjY1Njg1ZmFhMCByZWxlYXNlMzEtbWFpbnQKKzgzNzI0IDlkZTU2YzQzMTdjOTQzZTBhOTBhMzFmMDQ0MTI0MTQzMmMwNWJkMTcgcmVsZWFzZTMxLW1haW50Cis4MzcyNSBiNGE1MzMyZDJiY2FjY2E4MjJlZmM2N2YzMTVlOTIzMmE2NGE5ODA2IHJlbGVhc2UyNy1tYWludAorODM3MjYgMmQ4OGNhNjRhOTBiYzFkMThlNzhhYWVkY2ZiYTMwM2FjOTIwNmRlMiBweTNrCis4MzcyNyA4MjgyMjdhMDA1Mzg5OGJhZTQyN2EzMjI1ZDljOTBiZDI4ZTExNzA1IHB5M2sKKzgzNzI4IDM1ZmVlOTIxMWYzYjU4NWM5ZGE1NTkwZjkzYWExOTJmZGNmMzE1OTYgcmVsZWFzZTI3LW1haW50Cis4MzcyOSA4ZjRmNDY4ZmUyOWUwOGFmYzYxYmQ0ZWE2MTk5ODRiMzZkNmE3NmIxIHB5M2sKKzgzNzMwIDljNzA0NmZkNGQ2NjcyMDk3YmMwNTA5ZDQ3ZmQ2YWIzYzhlYjI2NjMgcmVsZWFzZTMxLW1haW50Cis4MzczMSBjYTdlZDk0MWJjYjkzNDQxM2VkYzRjMzQ2OTNhYTYzNDFkMWFkZGRlIHB5M2sKKzgzNzMyIGNhNmQ2ZWQyM2IyMzhiNzk2NzNiMDRiYTRmNDg2NzRjYTEyYTJlNTkgcHkzaworODM3MzMgOTVmZDRmYzI3YjliYjVlY2M5MjQyNWU4ZjIyNTgzZDM0OGVmMzNmMiByZWxlYXNlMzEtbWFpbnQKKzgzNzM0IDU2YWI5ZTExMWMxYzBmNWI3Mzk5YTc2YTEyMWRhNzc4MjgyYjE0YzkgcmVsZWFzZTI3LW1haW50Cis4MzczNSAzNDc0ZGRmMWViZmU0YTM4NDFiM2U5Y2FlMGMzMzc1YTNjNTkyM2Y5IHB5M2sKKzgzNzM2IGVhZmUwN2Q0MGViNzM1OWUwN2IxOTQwZTljOWZjNjhjMzMyZDk5ZmIgcHkzaworODM3MzcgYzE1YWNkMWU5MTZiMzUwNGY0N2IwMDgxZThmMTE0NmU4ZDVkY2NmNSByZWxlYXNlMjctbWFpbnQKKzgzNzM4IGExODVjYWVkZjMyY2ZlZGRiODQxOGQxZjE5MzFkNzMwMWQyZjk5ZmMgcmVsZWFzZTI2LW1haW50Cis4MzczOSAzNWJkNTdkM2QyMzJjZGJkMzYxZDdkNzkxZmE2YTc0NzljYzkwYzYzIHJlbGVhc2UyNy1tYWludAorODM3NDEgODEwMDAxNzkzOWY0OTljN2Y4NTZhMzU3ODdmNDAyMGVjOWZjMjcyMiBweTNrCis4Mzc0MiA2MzM5YTdiMzI0NWNjYzNlZmFmZTY3MjEzNjU5ZmYyZjMxZTgxYTc3IHB5M2sKKzgzNzQzIDY3NjUyYTdmMGFlZTIzNzg3YTJkYTExMWJhYjkyMTJmM2VlZTAwY2UgcmVsZWFzZTI2LW1haW50Cis4Mzc0NCBjMTY4MDNiYmQ3OTBkNzMyYTk5ODVlOTM4OGM4ODMwZjgzYWUxYWM4IHB5M2sKKzgzNzQ1IDcyZjAwNjcwNGZiZGM4MTQ1MmY0NTcyYWUwMzJjZWFhZjE3MjdkY2EgcHkzaworODM3NDYgMzg0ZDIxODlhOTZhOTAxZjY5YTFlNjYwMWJlNGQ0YzNiNDJiZmFiZiByZWxlYXNlMjctbWFpbnQKKzgzNzQ3IDI5MjI2YzA4ZTU0N2Q4ODgwYTQ0Y2UzOGI1NjFmNjZjNjliNmQ2MzkgcHkzaworODM3NDggYTAzNzM5YWY5ZDM4NWViMmI1ZjkyMWE1NzJmODBjZTc5Mjk1NmQ1ZSByZWxlYXNlMzEtbWFpbnQKKzgzNzQ5IGZjYjdlMzU5MjRlNjM0ZmNlYjMxZDJiODI0NmRkNjliODU4NjdmOTEgcmVsZWFzZTI3LW1haW50Cis4Mzc1MCBiYjJhMzE1ZDZhMDM1MDAyZDEzYTk5MjNhNDJiODNmYWYxZmI5MWE5IHB5M2sKKzgzNzUxIGY4MDZmYjNkMWYyNzc2MzliNzU4NWMyOTkzM2NhOWFjMWFmODFiNmMgcHkzaworODM3NTIgODhjZjlhMGVkMTE4MTNmNTk4NjA5YjQ1YWE3ZDFkOWI5NWJjYWI4YiBweTNrCis4Mzc1MyA2YjI4Yjg4ZjZjNGU4ODVmNGM4ZjEyZmFhZGNjNGUzMjIyMGE1ZjMwIHJlbGVhc2UzMS1tYWludAorODM3NTQgYjkwNmU5ZTVmMmE3ZmE5Mzg0MGI1YzZlNTE0NGQyOWUzZTExY2E1NyByZWxlYXNlMjctbWFpbnQKKzgzNzU1IDc2Zjg0MDJjYTdmMzU0MGVmMDMyNGNmZmViOGExZjhkZDcxNWM3OWMgcHkzaworODM3NTYgZmE2MzE0YjE0MWRjNDJkMjdhNzkwNThkYThlZTc0OTdlM2U3MmY5YiByZWxlYXNlMzEtbWFpbnQKKzgzNzU3IDBmOGE0ZmNmZGQxZTU5NGMzZTA0NGE2ZjU5Njc5Y2U2YTM3Y2MwNmIgcmVsZWFzZTI3LW1haW50Cis4Mzc1OCBiMDYyMjJmMTU1ZmY1ZWQ1YjM1YTY3MGU1ODM1YTUyZmZlMzI3YTMxIHB5M2sKKzgzNzU5IGFkMjkyZmNlNzlmOWVjYjM2MmZmMGZiNDNmZmMxZjc4NGU3MTJjNzUgcHkzaworODM3NjAgMmMxMDUxMGExYWVmYzU1NTVkY2NhMTNmMGE5YmNkZDExMDRiZDMzZCByZWxlYXNlMjctbWFpbnQKKzgzNzYxIGJiMjYwOGY3M2ViN2M2ZDM0ODJmOGQ5NGNjZmQzNzZmMDk3YjQwZjkgcmVsZWFzZTMxLW1haW50Cis4Mzc2MiBmN2JkMjhiM2M2ODM5NGQxZDZjOWMwMzk5OGFiMDUwZmU0NDE1ODRhIHB5M2sKKzgzNzYzIDhjZTY5MDk2OTZkNDJmMTc2MjgxOTk4Yzg0ZTEzMDA1ZGE4ZmFjMzMgcHkzaworODM3NjQgZDE0ZTFlNzI0OGJhM2Y2ZmFlYzkwYTBiNjA2ODIwMGI0MGY1MmQyMyByZWxlYXNlMzEtbWFpbnQKKzgzNzY1IDMwNzVhN2U4NWMxODgxNDM2ZWQ1NjgyMDA0NWMwZjg0NmM5YmY2MDYgcmVsZWFzZTI3LW1haW50Cis4Mzc2NiA3Njg2NGFjNWI2N2QwMTI2M2RlZjgxZDI3MGUyMDY0YjAxMjkwYmI2IHJlbGVhc2UzMS1tYWludAorODM3NjcgMDZiYmRkYTEzMmYzNTQ5NThjYWU3NTg4NTA2NjllNzQ3NDU0MzkyYSBweTNrCis4Mzc2OCA0M2U2YmY4NmMzN2YyYzMwNDhkNGU0MDU2YmY1ZDZlYzc5YjI3ZTBmIHB5M2sKKzgzNzY5IDA4YWVkMDBmYmVjMzM5YTBkN2YzYzFmZjU1MTczOWUzNGEwMmUzNDAgcmVsZWFzZTI3LW1haW50Cis4Mzc3MCAyNjBhYmU5Y2VmYWMyOGEyMzhjMmE4OGNmYThlZmQ5ZDU4MGZiMTQwIHB5M2sKKzgzNzcxIDdiY2Y2MjU1ZGUyZmZmM2QyYjk5MWU1ZjcwMzk3OGVhMGE0OWYwZmMgcHkzaworODM3NzIgMzk0ZTQ4YzUxNmM0YTNiMTIzNjZlYjg3N2I5ZDA4OTJhOGM0NDg3MiByZWxlYXNlMzEtbWFpbnQKKzgzNzczIDQwYjQ4Mzc4MzNhOGI1MzJmZjM3NDU4YTdhYTUyMTJlZmQwNmUwMGMgcmVsZWFzZTI3LW1haW50Cis4Mzc3NCA5ZDFjNjVmODMyM2VmYzJkZWYyMjMzZjY1NTkyM2ZjMGUzNzlmNDZiIHB5M2sKKzgzNzc1IDA2MzI3OWM2ZmMxNjBlMGFkMzkzYmUxYzhmNWMwZDIwNWU4YTJjM2EgcHkzaworODM3NzYgYmNjYzg0ZTA0YTJjYWU3MzA5NGE0ZDNjOGIwZmE4MTRlZWY0OTcyMyBweTNrCis4Mzc3NyBlYzMyMTdhOWU1MjE2ZGZiMmVmM2Q3MmUyMGEwNTNlZjEwYTliMzhkIHB5M2sKKzgzNzc4IDc2MDg1MzJmOTMzYTQ2ZWFmNDJlZjA3YjhkNjQwNzVmYzYzYmI3YTAgcHkzaworODM3NzkgMjc1YWNmY2NjY2NiMDhiNTc1OTNmYzU3Y2ViNDQ0MTllNDM4YmYzOSBweTNrCis4Mzc4MCA5YjgwMmI2YjQzOTUwOWQzYWVlYjc1NGIxYjlkODY3ZjBjODQ2NTU2IHB5M2sKKzgzNzgxIGYyN2IyN2M4MmQ4ZmY0OGJiM2FkYzUwNTUyM2ZhMDU1NzllZWViY2IgcmVsZWFzZTMxLW1haW50Cis4Mzc4MiA3MTc1ZDE4MDVjYzBkZjYwYWVjMWM0NjdmOWRlZjM2NDFmODlkODJiIHJlbGVhc2UyNy1tYWludAorODM3ODMgMGVkNjY1ZThhMTE1NDI5YmZjZjVhZDIzZGI2ZDQ2MjUzOGQ3MWFhOCBweTNrCis4Mzc4NCAyODEzNmFmMDBjY2FiNmQ0N2M5Y2ViYjE1ZWViYWUzZjM5MTY1NjQ0IHB5M2sKKzgzNzg1IDRlMzI1ODg5NDg4OWZiZGFhZWYyYzA1YTQ5ZTIxYzM3MzJmYzJlNzcgcHkzaworODM3ODYgYzZkODkyNmM5OWRmNTg1MGI3MzI1NGZjMGJkNzZiYzRlYzRmZjAxNCByZWxlYXNlMzEtbWFpbnQKKzgzNzg3IDg3ZjMzMzAzODAzNWU3OGMxZjkwOWE5NGYyOTBiNmNmNjBmNjJkM2UgcmVsZWFzZTI3LW1haW50Cis4Mzc5MiBjMWQ3ZjdmZTQ3YTA1NzA3MDdlNTY5NjRiMTFlMDY3MTQ0ZjQzMDIzIHB5M2sKKzgzNzkzIGZiMDZmYWIxNmEzZmU2MDViOTJhMzlmZDAyMTJhOWNjZjgwZmY3NmMgcmVsZWFzZTMxLW1haW50Cis4Mzc5NCBhZThjMjVmOTRhZGY0ZDM1MTlkZGU4ZDE4ODE0NzFlMWM2MTI1Yjg0IHJlbGVhc2UyNy1tYWludAorODM3OTUgZDk1ZmJjNGFlZTdjM2I4ZTYxMjIxYTdjOTlmOTkxODExMTcwNGY0MyBweTNrCis4Mzc5NiA5ZDNiYTBkNjY1YTY1MDhjNDE3YjUzNThkNmVkYjNhOGVkZTFjMGMxIHJlbGVhc2UzMS1tYWludAorODM4MDIgMjRiM2RlZDUxODI1NGMzYWY3YjMzNzJjNzI5MTY4YWFhMDM4YmY0ZSBweTNrCis4MzgwNCA0ZWZlZDYyZWFjM2E4NmMxZWRmNjI0NTUxZGUyNmJmMzE1OTg3YmEzIHB5M2sKKzgzODA1IDYwM2MzNTUwOGIzNjNkYzNiYmU1Y2VlNzdmODE2ZWM4MDQwZGQwODAgcmVsZWFzZTMxLW1haW50Cis4MzgwNiA3MDk5ZWMwYmNiZDJjOTkyOGIyNjA4ZGQxNzk5ZmNjN2YyZjc3MmFhIHJlbGVhc2UyNy1tYWludAorODM4MDcgMTU4MzljYTQzZDk2YTM1ZTNmMTg5ZjE1NmE0NjEyNjlhMmI2ZGM1ZiByZWxlYXNlMzEtbWFpbnQKKzgzODA4IGJiZTIyMjNlMzc1MDZhMDRiNTZiODg4ODU0OTRlZWRjNTJjMjNiYTQgcHkzaworODM4MDkgNGJjZDUzNjE3YTY1NmJlZDczNTBhNjgzOGE0YjYxNmM3MDQyYzg2YyBweTNrCis4MzgxMCAyOGZlZjllN2MzYmI3MzJmMWYxNjA5NjhhMGU2ZDUzOTg4MGE5MDUyIHJlbGVhc2UzMS1tYWludAorODM4MTIgOTI0NzM4YWFiNzBmZGQ2OWRlZDE1MGEyOTZiYzk3NjEzMWI4YmVlNSBweTNrLWR0b2EKKzgzODEzIDhjMjEwZTYxY2E3NzU0MTBmNzJmODRkYTEzZTY4YzYxYzY5YjZhNjkgcHkzay1kdG9hCis4MzgxNCBiZmZkMWUyODU0YjNkMzZiMTUzNTg4ODk3NzAwNzNkNzUxMGYxMTE2IHB5M2stZHRvYQorODM4MTUgYTBiZGNkZDBmMDg2NDM3YzgzMWNmYjE4MjQwN2U4NWE0ZTk3ZGE3MiByZWxlYXNlMjctbWFpbnQKKzgzODE2IGU0MWNhNjY3MmY4MjJlMDk2Y2U2ZTY5ODVkZDIwYzM2YzU1MGNjOGEgcHkzaworODM4MTcgZjRkOTJjNmQ0ZDQyYTUzZDA2MGE3M2U4M2FiZjliM2JmZDBmMTgzOCByZWxlYXNlMzEtbWFpbnQKKzgzODE4IGJmMzM1OWI3ZWQyZWQ1YTdiNzliYzI4NDU2YWUzMGJiNDQyNWYzZGUgcHkzaworODM4MTkgZTYxYTA5NGI0ODE4ZDQ1OTMxN2ZlM2M2MjBiNWNlZGVhZjUyZTlmNyByZWxlYXNlMzEtbWFpbnQKKzgzODIwIDRiMjRiN2E0MjBjOTI3ZmU1MmFmMDJkMzRhYzAwNDlkZTE3NDEyN2QgcmVsZWFzZTI3LW1haW50Cis4MzgyMSAwMTc4NzU2M2UyY2IzNDRmZTkzNDE3M2E0MDdiZTVjOWIyMjc2ZmI0IHB5M2stZHRvYQorODM4MjIgMDM3MGMxMWZkMjFkZjNkNGE5NDRmNzBhYmRmZjMyZGIwMzQ2MjVkZSBweTNrCis4MzgyMyBiNmZlYjY3YTA1ZjFmMTZmYWI3YjNlNTFmYjZjNzVjZTRhZjJkN2JhIHJlbGVhc2UzMS1tYWludAorODM4MjQgZTE2NTYwNTg1ZTM1YzZiMzY0ZTMzZmU2MDMxNGYxMDk5NGI5OTVkMCByZWxlYXNlMjctbWFpbnQKKzgzODI1IDVlYTcwN2QyY2FhODhlOWZmMzFiNjUzNGUxZmZlZTgwYmQ4MmFmNjkgaW1wb3J0X3VuaWNvZGUKKzgzODI2IGJlMTU5ZjNkYjVkNmFlMGRlMzE2MmRiZDI1MGQ3YjY0MjZhZjFiMjggaW1wb3J0X3VuaWNvZGUKKzgzODI4IDEwODZkYWQ1MGM3NDgwOTIwZDgzMGUxZWM1ODU3NmY3NWYzN2E0NTkgcHkzaworODM4MjkgNmIyMTg5ZDhlOGM0NGQyZjQyMjBiYTFjYmNmNTZkY2NlYzYxN2Y5NiBweTNrCis4MzgzMCBiNGY1NDYzOWI3YjE5NWNmOWI3ODA1MTk4N2FiZGIyYmZiYjQ0MTdkIHB5M2sKKzgzODMxIDk4M2YxMTBhMjI0ZTJhNDVlYjU5ODNmOWY3NWYwZGUzOGVmZGViYjEgcmVsZWFzZTMxLW1haW50Cis4MzgzMiBjYzVhMjQ2YjJkYTFiYjgyZThmMTdmNDQ2OGQ2ODEzZGI0OTEwZWIyIHJlbGVhc2UyNy1tYWludAorODM4MzMgNzVlYmU2Y2M4MDgzMzUxYTU1ZmIxZTc2OTNjZmIyZmQ3NTRkOTMzOCBweTNrCis4MzgzNCBjNTJmNWRmNTA0NDg4OTc1ZDlhZDlhMmE5MzBlNjE4NmFjZTQ1M2M2IHB5M2sKKzgzODM1IDg2ODNhZWE0YjcyZWY4ZGM3OTkxYWIzZDhmODQxNTcwODFmZGNjNzkgcHkzaworODM4MzYgZTEzZWE4M2UyZWRiM2RlMjJlNzJkZTUzNzRlMjc2MWVhZmE0NWJjNyByZWxlYXNlMjctbWFpbnQKKzgzODM3IDQwZDExYjgxMzlkYTUwYjA0N2ZlYjJmNWY4MTkwYTk1NjJmNGZkNWYgcHkzaworODM4MzggNTE1ZTBkNzA1NTQzZmU1NzU5N2U3YTI5NDQwZTZlNjlkZTE5OWFmOSBweTNrCis4MzgzOSAwOGUwNWQ0MjRkOTdhNjI5MzAzOGRkNWVhM2ZkODBjYzU0MDAwZDhlIHB5M2sKKzgzODQwIDYwYWM0MWFlN2YzMTIwZDA1NmNkNjBkOWJiMTQ5M2Q0NDM2YjUxNDAgcmVsZWFzZTI3LW1haW50Cis4Mzg0MSBiOWQxOTgwMjE3NDU4OTQyODc2ZTI3NzFlNGZjZmZkMDgzZDI2MjVjIHB5M2sKKzgzODQyIGRmMjU4OTE1ZjUyZmNiNGFhZjM2Y2YwYjU5NmQ3ZDkxNzE5OGY4N2QgcmVsZWFzZTMxLW1haW50Cis4Mzg0MyA1ZTdmMTVmMmMwYmU2Y2NlYjFmMzlhYTM0NWEyYmY4MDYxNGRkOWJjIHJlbGVhc2UyNy1tYWludAorODM4NDUgOGIzNzk2Y2MzMDllOGY5ODA1OWViMmNiNDZmZThjYzY5YmFiNmE4NyBweTNrCis4Mzg0NiBjYzBlZTZiYjVlOWI4NzFlZGZkMTkyOGIwNWE3NzE5ODQ2NDRkNjYwIHB5M2sKKzgzODQ3IGZlZmZjMWEyNTk5YzczZTc1OWMwZTg1MTE2NDU3NDEwOTJiZDRiNGMgcmVsZWFzZTI3LW1haW50Cis4Mzg0OCA3NmJhNDFiNzdmNTM4OTM5NTI4NDlmNzEzNjFlOWQ2YTMyODJjN2M5IHJlbGVhc2UyNy1tYWludAorODM4NDkgNDQ2MTlhNTY2YjZiNjM2MTNmOWJhOWYwYzBkMjAwYjgxZjdhYTA4OCByZWxlYXNlMzEtbWFpbnQKKzgzODUwIGZhODYyMjI2NTYwOTEyMDcxZjY1N2MzZDYyYjc3NGQ5YTk4YTU2NzUgcmVsZWFzZTMxLW1haW50Cis4Mzg1MSA1N2U2MzFmMDg4ZDczNjA1NDMyODQ3YjNhNDRmOTEzMTg4NWYwYjU0IHB5M2sKKzgzODU0IDRjYTQ5N2Y0ODE5Y2ZkYWQ4MjY3MDFiYmE2N2QxZTNlNTFhYzJlN2YgcHkzaworODM4NTUgNzdjNmY2MGExYjI0MGI1MDlkZGNjYjRhMjllMGNhMzZlZTVmZDdmNyByZWxlYXNlMzEtbWFpbnQKKzgzODU2IDU1YzcwZTc5YzY4ODg2N2MxMWQ3Mjg4Y2YwNDQwMmFkNjIzNjU5ZTggcmVsZWFzZTI3LW1haW50Cis4Mzg1OCA1NTM5NzUzM2RhNTE4YTAzYmI0M2M4YTNiMmQ1MzdmMTAyODI4ZjQ0IHJlbGVhc2UyNy1tYWludAorODM4NTkgZWI1YWE5MWYwZTE2ZjZkZGIxNDc0OTkzN2U0MjhiZTdmNjNlZGZlMyBweTNrCis4Mzg2MCA3ZDQ0MjVlMzA4ZjdiODUyNjZlYmIyMDNhOGY0NjIzNmU0ZDU4ZmFkIHB5M2sKKzgzODYxIDFiZDM1MzQxMzZhMDM2NDM1NzNlYTliZDQ0N2Q1YTY5ODU0ODVmNzggcHkzaworODM4NjIgMWFkNTkyMmFlYzQ1M2U0NzAzMTdmMWYwYWYxYTc0MDI3NzlkY2YwZCBweTNrCis4Mzg2MyBkMjI4MDY4MThmZTNhNTNkYjQwM2UyYjIyMTQyZmQ2MTRlZmRjYTZmIHB5M2sKKzgzODY0IGVhM2EyZDFiZGVkMmEwNWI1ZGQwNzMzNWRkZjFiY2QzZmFkM2ZjMjAgcHkzaworODM4NjUgOGQ2YjRmZmMwNTEyYWE0NzE3MThhYzVjMjY5YzU1Mjc1OGU2MGI2ZiBpbXBvcnRfdW5pY29kZQorODM4NjYgMDIxMzUxNTk1ZmFjMzZiMjE3ZmQyMmFlMTY4OWQ2MjcxNWE2ZjhlZiBpbXBvcnRfdW5pY29kZQorODM4NjcgMGRhM2I1OWMzZDM4MDYxN2NiNWI2YmY1NDg1NWFmOTMwZmRkOWMxMiBpbXBvcnRfdW5pY29kZQorODM4NjggZjgxMmI3OTY0MTE5OWEwZTk2ZDkwZWU3ZmY5YzljZjQ5MzM0YjkxYSBpbXBvcnRfdW5pY29kZQorODM4NjkgM2Y4Y2VmODM3ZjA3M2MyYmMzNzc5NzA1MWIyYTVmZGI5NmVmMTRjZCBweTNrCis4Mzg3MCAxMGM5NWMwZjM0ZDM1NWJlOWY1ZDY5N2U5ODc0NTM5YjJjOGM2ZWZkIHB5M2sKKzgzODcxIDUyMzU0Y2IyOTY0NDkyNmExOTU5ZGQyYTJiNDI0MTQ5YWQyOGJiY2YgcHkzaworODM4NzIgOWM0NDViYWQzNWIwODZkMDQxNzMxMzBhNWY5ODRjNWI4MzQ4NWNmNyBweTNrCis4Mzg3MyA3ZjVlMTE1ZDc2ZGZhZDNmNjQ4ODUzY2QyZjE3YWVmYzJhZjRkYjg2IHJlbGVhc2UyNy1tYWludAorODM4NzQgYTEzYmRiMmI4Mzk4ZmJmMTkxZDMyMTJjYzIyMWQ5ODk3YzE5OTRiYyBweTNrCis4Mzg3NSA4Y2UxZGYzNTI4Yjc2ZmNiMmFlZTJiNzBlZTcwZTlhYTllMjk0NDhjIHB5M2sKKzgzODc2IGM3OTk1ZTliYzJlMzZkOWYxYTIxNjcxNTAyYzU3MGNmZmU3M2JkYWEgcHkzaworODM4NzcgOGI5M2NmMzNiOTg3Yzg3NzlkZWNmNTgwMWJhMTVjNTFhZWE5Nzg2ZCBweTNrCis4Mzg3OCA2ODhlZGJiYmU2NTgxNzVlNmI4ZmUzODA1N2U3ZmE3YzYwYmYxOThmIHB5M2sKKzgzODc5IDVlM2M2MWNiNzAxNDFkMzYzMGQzZWUwYmQyMjZkZDgyZjMwZDIwODMgcmVsZWFzZTI3LW1haW50Cis4Mzg4MCA5NDY4ZDEzMDQyODQyNWQyNjUyMTkwODJjNGZlOWVkZmE2ZTkyMDFhIHB5M2sKKzgzODgxIDNhZTk1ZjIwNzYwNjM0NGY0MjNiNTVlZmIyOGI1ODgyN2Y2MWFlYzQgcmVsZWFzZTMxLW1haW50Cis4Mzg4MiA3YjdlYmY1NTg4OTQ4NTQ3MzhjNDE4MzRkMTM0ZTVkMjlkYWY4NzdhIHB5M2sKKzgzODgzIDAwMTUyOWQ2NDdmZTQ5ZGFhZDE0MDFmZjMyMzU1M2ZkNWU4YmQ2NTIgcmVsZWFzZTMxLW1haW50Cis4Mzg4NSAzYTRiZTlkMjVhNWY4MzA2MGNkMjdkODFlOTY3ZGUyNzI4YTI4MDY4IHB5M2sKKzgzODg2IDVhZTM5MGFjNmM2MWQ4YWU5YTZkOTdhNDQ3MGQ4NWE3OTU4NzUzMDMgcHkzaworODM4ODcgNWMwZDVkZTU2ZmRmOWFhYmU4OTUwMTdkODVmZWU2MDFmZTFlNzkyOSBweTNrCis4Mzg4OCBkZTA4MDk3NzJkN2U3MDNlMGQwOTExODY2OWE0MWYxOTFmYzYzZmNlIHB5M2sKKzgzODg5IDhiYTA5Y2RiNmZjNDhiMmFkZjBlYzZiYzc2YzE4MjFlODkzYThjZjcgcHkzaworODM4OTAgNzk1ZWIxMjQwM2I5NDQyMGRiNDg4YzQwMzhmNmRkZWVkMmE0MjY2YSBweTNrCis4Mzg5MSBkZmJiZTdiMzBlOTAxYjM2ZmE0NTE4NDg5YjM5NzY5NzI3YTE2YjhkIHB5M2sKKzgzODkyIGUxNjA3OWM2YTQ4ZjU4M2NkMzY4ZDhmNGYwODA2ZmZjZjc4MTZlZDggcHkzaworODM4OTMgZjE2MjdjZmNjODkwNTBiNmY3NTM2OWE5ZjQzMWQ1NjNkOWRlZGEwYyByZWxlYXNlMjctbWFpbnQKKzgzODk0IGMzOGYzYjk2OWI0YWU1MDQ0NGNkYjViNjZjNzBiZmIzN2U5NzMzNjcgcHkzaworODM4OTUgN2RjMzdhZTE3NWZjZDU3MDdlNzRlNjBhNTFlMDY0Y2ZmOTc0OWQyYyBweTNrCis4Mzg5NyA2ZmIwMzEwMzdmMjliNTBiYjk0ZDE3MDIzMDljZmE3MjMyYjlhYTY2IHB5M2stZHRvYQorODM4OTggMzU1ZDcyNzM3MzY0ZmJkZDg1OTllOGYzMzczYTQ4OGNmNTI3M2JmYyBweTNrLWR0b2EKKzgzOTAwIDcyZDA1MDRlNjQ4OTYwNDI0ZmIyY2I1MWRjYjhkZmI3OTFiZDRiYjggcHkzaworODM5MDEgYzg5YWQ2ZjljZGRjMTgyMjNjZTRjNzE1ODRjZWNhNDkxOTlkMTI5ZSBweTNrCis4MzkwMiA5NTExN2FhYjlhODZkZjcyZDJmMTliYzFkMWZhODY3ZDU0N2EwZmEzIHJlbGVhc2UyNy1tYWludAorODM5MDMgNTAzODhhODNlYzNmN2UwYjJjOTQ2YmMyYjJlNDRmOGM5ODRjYWJiYyByZWxlYXNlMzEtbWFpbnQKKzgzOTA0IDUwZjhmNTI0N2M4MTBhZWI4MDE4ZTRjYTM3YTQ0ZTA1YjY3OTI2YzkgcmVsZWFzZTMxLW1haW50Cis4MzkwNSAwYWU3MDZhNzFhM2E1MGRjMWQxNWI5NWQwZTk1NTRiZDAyMjE3Yjg2IHJlbGVhc2UyNy1tYWludAorODM5MDYgYTU2ZDhhODBiODgzOWU1NTk3ZGZkMzA1YTc2NDIxYTYzODliMzExOSByZWxlYXNlMjctbWFpbnQKKzgzOTA3IDQ2ZDQ4ZDcxNTQ0MmZjYmI4MDJlZWQzOTc1NmZkMzIwOTI5ZmI4MmMgcmVsZWFzZTI3LW1haW50Cis4MzkwOCA2MDA3NmYyOGMwMjNhYzZlYWEyODg1ODIzOWQ4YmY3ZTljYmYzNjBkIHB5M2sKKzgzOTA5IGMyZTFkYjMwZjc1NjJmYWNlNTBkYTFhNTQ4ZGY3ZDU2ZGIwZjcwNGMgcmVsZWFzZTI3LW1haW50Cis4MzkxMCAzMGNjMjdlYjM1NGFjZjUxYzQ2YmRlMmYyNzEwNTE0Y2U2YjhmMWNiIGJidGVzdAorODM5MTEgOTg1MzY1OGE4MzU1YmJmYjhlNDM4ODMyNTViMTIwMTIyMDRlNzk4NCBiYnRlc3QKKzgzOTEzIDI5YWY5YWJjNzZjYWRhMTUzZmFjNzE4NjJmOTAzNGFmMmI0ODUxYWEgcmVsZWFzZTI2LW1haW50Cis4MzkxNCBiMTg5MmI3ZjE5NjZmNGVjOGI5MzA3ZmZjNDk5MTBlNTEzZjE2ZjFkIHJlbGVhc2UyNi1tYWludAorODM5MTUgNGM1MjNlMWVmMTBmMmI3MjFmNjA3NGMyYmZjNjEzNDEyY2QzZWY4MyByZWxlYXNlMjYtbWFpbnQKKzgzOTE2IGMzOTEyYWFjMWI3M2Y2MGY5YjZjZTk3N2JjMGU5ZGRmMjZmOTdmOGQgcmVsZWFzZTI3LW1haW50Cis4MzkxNyA2Y2QyOTJjOWMyOTYwZTgwOTc1MmM1ODAxMWI5YWM0YzYzNWE1ZmMxIHJlbGVhc2UyNy1tYWludAorODM5MTggMzcxNTY5MDdmMzU5Y2I5ZGE1YTg5YTJjOWFlZTY2ODg1MDAzYjE0NCBweTNrCis4MzkxOSAxMDliZGU1ZTQxYjk0NGVmM2FkZTk4YWM2MTQ4ZjZiYzI2ZTRhNThjIHJlbGVhc2UzMS1tYWludAorODM5MjAgYjY1ZGNlNTkwMmEyODQ3YmZjNTM5YTc1ZDQ0MmZkYzQ5ZGY2MGFhYiByZWxlYXNlMjctbWFpbnQKKzgzOTIxIGZmOTYxNGVkZjNhMDU0NmZjNmYxNWI5ZjJjMDU1ODBmZTZiNDM2MjkgcHkzaworODM5MjIgMTRmYjY3ZTdmYTA0NjhjMTA3YjZkMTE4NWQ4NDMwMTM5N2ZiM2MyOCByZWxlYXNlMzEtbWFpbnQKKzgzOTIzIGZhNDg1ZGNlYTYxM2U5MTVhMzllMTQ5MTU4MjRiYmMzMWVmYzMyNTYgcmVsZWFzZTI3LW1haW50Cis4MzkyNCBiY2VhMzVhMmQyZDJiZDk1ZTEwNWQ4ZThiMTJjMWQ1MDQyMWRhMjc0IHJlbGVhc2UyNy1tYWludAorODM5MjUgMTlhZjA4Mjg3Y2M3OTI5M2YxNjE0OTU1OWI4NTE5ODdjYjk0YjFkMCByZWxlYXNlMjctbWFpbnQKKzgzOTI2IGFkNmM4ZTIyODcxMmU0Yzk0MWM5ZmE4Y2E1MjFlZDg0NDUyNjRlNmYgcmVsZWFzZTMxLW1haW50Cis4MzkyNyBjMmRiMjdhYTZiZjI1MDBiYWNiYmM4ZjUzOWM1ZTQwMGYzYzAzNjljIHB5M2sKKzgzOTI4IDEzMjJlZjNjNGE2YzgyOTJlODBkOTlhY2VhZWQ0YTQ2ZGNkYTZhNzcgcmVsZWFzZTI3LW1haW50Cis4MzkyOSBkZWExZDI2OGUzNGVkNjdmMTMyY2Q5YjA1ODFkMWQyYTZiNWJhMzU2IHJlbGVhc2UzMS1tYWludAorODM5MzAgOWUwMDNhMjYyMDkzM2M5ODZiYjVmMTM4MGExYTc4Yjc1MTliZjVmYiByZWxlYXNlMjctbWFpbnQKKzgzOTMxIDRmNzZjZTY5YWVkMGRjMjc0NDRiZDM0NWI5ODA3MTM5NWUzMmI2MWMgcmVsZWFzZTI3LW1haW50Cis4MzkzMiAzOTA5MmY4NmIwYWYzMmRlYTVjMGIwOTUwYjFiYTAyY2VlMzkxMzNlIHB5M2sKKzgzOTMzIGEzODUzYmZhMjUxODE2ZGQ1NzFlNGI2YzVkOGJlMjc4YzE1NWQwNzYgcHkzaworODM5MzQgM2Q2YTAyZjBhMmQ4YTdhZTM3NzdjMDVlYjk4ZTZiMTE0ZDUzNjIwOSBpbXBvcnRfdW5pY29kZQorODM5MzUgN2U1MjVlMTI1YjcxNWUzOWExNjZmM2FiZTdhYWU5YTdkMzRjYjM5MCBpbXBvcnRfdW5pY29kZQorODM5MzYgN2RkNWY1Y2ZhMTc5NDY3Njc5MzU0YjJiNDAwNTc0NDI5MjdjMDk3MSBweTNrCis4MzkzNyAwYTFhZDliMTE0OTYyMjU1ZDIzMDUwZTkwNDEyMmRkZDYzMTY3OTRkIHB5M2sKKzgzOTM4IDJjYjU4MTc0YWE3ZGEwNzJjNTlkNTUzMWI0ZTZjMDliZTU2NGUzYmYgcmVsZWFzZTMxLW1haW50Cis4MzkzOSAyOWUyMGJkYjJiMTFhYjBjZTE0NjczNjY5ZjJhM2JkNWQyMjYxZGY1IHB5M2sKKzgzOTQwIDQwNTU2YWU0MjRiNzM3OWY0ZTRhNjEyZjJjOWRjMjdkOGU5MTgwMDQgcmVsZWFzZTI2LW1haW50Cis4Mzk0MyA2ODk2OWI5ZGMzYjA2MDA1NmNkZGE2ZGJmMDUyOGQzNWYyYzMyOTlkIHB5M2sKKzgzOTQ0IDczNjQ5NDA2NzJmMDA0NDcxM2VlYTQ4YWMzZmM0NzMxN2VhNzExZjkgcHkzaworODM5NDUgOTMwYjI4MDNjNzE2NmIyMjNjZTE3MGZhZWY0YzQ4MWFhNmNjZDY4ZSByZWxlYXNlMzEtbWFpbnQKKzgzOTQ2IGMzZmY2ZTkxMDA2OGIyZmU4NzdkNTBkZTVjOGQwZmJhZWY3Zjg5MDYgcmVsZWFzZTI3LW1haW50Cis4Mzk0NyA1NjA2NmE1ODI1Y2EyMGJjZDUyNzRjNGFkNjliODVlNDAxOTI3NWZjIHB5M2sKKzgzOTQ4IDc2ZDQ2M2M5OTAwNjM5NmRjNDE1MTIzMzgxYTFlYjI4ZjNlYTM2NGEgcHkzaworODM5NDkgOTEwOGU3ZGNkN2Q4MDVlN2JjZDA4ZGIxZGQ2YzYxNWEwNmE3NzZjMCBweTNrCis4Mzk1MCBhMWRlNDYzOTU2NGU1YWYxZDllMmY3NDJkY2JkODU5YzBkNDM4MWMwIHJlbGVhc2UyNy1tYWludAorODM5NTEgZjIyZTk1MDU1MWFkMmI4OWMwNDhjNDVkODBiYTViYjA3YmRmNTgyNiBweTNrCis4Mzk1MiAzZmE4ZjQxYTExMDNjOThjYWYyNjk0YmNhN2VlYTYyMTEwY2M2ZjMxIHJlbGVhc2UzMS1tYWludAorODM5NTMgZDFiMDM1ZTI0MzcyYmUwMTdkZmRkNGRkMjRkMGIxMzZkNDc0OTY1ZiByZWxlYXNlMzEtbWFpbnQKKzgzOTU0IDNkYmJjZDM0ZDQ5NGUyNThiMGM5ZmU1NDBkYjViZjI5OTA1ZTNlYzggcmVsZWFzZTI3LW1haW50Cis4Mzk1NiA4NDk5YWU1ZDk3MTk2YTcyYTViODc0YjNjYmY5MGE4M2RhNGU3MzU5IHJlbGVhc2UzMS1tYWludAorODM5NTcgYWIyZDk0OTMxYjBjMTA1ZmE1M2M2MDIzOWZjYjM5YjgxZGVkNDNjYiByZWxlYXNlMjctbWFpbnQKKzgzOTU4IDU5ZGIzNjNmYTU5NDVjMTc5MDc4NTRiZmQwMDIyY2Q2NGM3YmExODcgcmVsZWFzZTI3LW1haW50Cis4Mzk1OSBmZDQ2MDZlZmM3MDBhYmIyNTc4ZGJmODg2MDIwMTVmZTk5MjVhZmM4IHB5M2sKKzgzOTYwIGY3ZDhhYTEwYzNlZmE3NjhhNzVjMTYwYTA0ODFiYjZmNDRiMGY5OTIgcHkzaworODM5NjEgZWQ2NmIyNDE3MWFmMTJlOGI3NTY1YmY5ZTllMGM1ZjRhZjlhYWE4NyByZWxlYXNlMjctbWFpbnQKKzgzOTYyIDY4YzQ4ZjhhYTU1NTM4MjM0ZmQ1YmE2Y2UzMmJmZTkyNzkzMmYyZGYgcmVsZWFzZTMxLW1haW50Cis4Mzk2NCA1MzQzZjU3MTRmZWVjNTFhZDNjZmUxYTdhNWE2ODQwZTIwYzYyMjc1IHJlbGVhc2UyNi1tYWludAorODM5NjUgYmU4M2QyOTNhMWU5YWY5ZTY3Yzg3MDUyZjJkOWNlOGEwMTFhYmRlYyByZWxlYXNlMjYtbWFpbnQKKzgzOTY2IDAwNTcyMWU1MGUwYmExNGZiMzhiYjI1MDVmMTgxMTE0MTAxZmUyZWEgcHkzaworODM5NjcgNjRiNWM2ZjI5NjAxY2Q4OWU0ZmNkZmE3NzIyODI1MmNkOTZiYTRjMSByZWxlYXNlMjYtbWFpbnQKKzgzOTY4IGNiNDYxYTkxNDRkYjAzNTQzYzY1NTJlZGQwMDNlMmFmOGRjMzRkNjMgcmVsZWFzZTMxLW1haW50Cis4Mzk2OSBkMmI3MjExODViZmEyY2QxMjc0NDQ4ZjJhYjY5NjBlNjJiOTFmYmViIHJlbGVhc2UyNi1tYWludAorODM5NzAgNGE1YWQ5MThmN2FmNDU0NGI5MWYxODczZWRiZjM0YmQxZGMwMDMyMCByZWxlYXNlMjYtbWFpbnQKKzgzOTcxIDg3YjJkYTg0MDI1MmU3YWJhZmM4ZjkyNzYxMWU5ZDZmY2Y1YmI2ZmEgcHkzaworODM5NzIgMDNlODg0ZmFjNGRiYTI1MjkwYjc4YmU2MDQ0NWZmODE0YWRiODQyMyBweTNrCis4Mzk3MyAyZGQ5NjRkYWQxNjg1NGYyNzE1ZWU4NzkxM2YyNTRiZjg3ZGEzODlhIHB5M2sKKzgzOTc0IGE0NDljZTFmMzg1YjczNDUwNmNmMDMyNzk3NWExMjI5NzQ0Yzc0N2YgcHkzaworODM5NzUgYWE4OWNiYjdiYzIxOWJlYTExOGMxNDU0YTVkYWQxYWY5MTNiYzU1MCBweTNrCis4Mzk3NiBmYTJkOTcyMGE2NmNiMTBmNjExMDQxNzE5MTMyMDdkNGRkZmFlYjk0IHB5M2sKKzgzOTc3IGQ2ZjhlODZhMWJlYzIyYzNhZmNiNTM0OGQ3NTM1MTMyMTkyY2FiMTIgcHkzaworODM5NzggNzU1NWIwMDM1YTc3NzQxMWQ4NGQxOTZjOGQyZDE1NmRkOGIwZDZmYSBweTNrCis4Mzk3OSAyN2I1NTNjZGQ4NWI2NDZhYjlkNGNjYjhiNGIxOTdkOTljMTZlMjBjIHB5M2sKKzgzOTgwIGYxZDkyMmQ4MjBjYWFjYWFiNGQ2NzhiZjg2YWQ4YjQwZDNlZTNkZGEgcHkzaworODM5ODEgOTEzYWE4YTQzMDRjNTc0YjJlZDIyMmNiYzNiYzY1NzQ5MzUxMjhjNyBweTNrCis4Mzk4MiAzYTgwZTY3YTBkMzcyNWE4YmU3ZDFjZDNlZWViM2E4NTA2NmI1ZDUzIHB5M2sKKzgzOTgzIGFhOWM4ZTgyYzQzNTc2YmYxNzVmN2FiYWJhN2ExMzQwY2FkN2Q2ZGEgcHkzaworODM5ODQgZDRiNjcwYWE2ZDZiODNkYzY3M2VkYzlhN2Y5MmU0MjQ5NjI1OGMwNiByZWxlYXNlMzEtbWFpbnQKKzgzOTg1IDA2ODI5MWQ0NGZkN2Y4YTFhNWMwZTU0YzViMGMzOGJhMDk1NTc0MzkgcmVsZWFzZTI3LW1haW50Cis4Mzk4NiBlNTRiYWViYmQ2ZmYwMTA0Mzc1MmNiZGRlNTI0ZjdmNDVlMTU3MGJiIHB5M2sKKzgzOTg3IDI5MWM5YWZhYjEyY2UwNWQ4ZGIyYzVmZTdjZTJjOTk1MWZiOGZmYmYgcHkzaworODM5ODggNDc0MmU3YWVhMmY1OWNjZjYyZDgwOTgxYmRlMjU3OTE0MmQzODVjNSBweTNrCis4Mzk4OSA3YmU1OTE2MzMzZGZkYTZmMDc3ZDliMzM0MmQ1YzMxM2U4ZmJiMWQ4IHB5M2sKKzgzOTkwIDUwYzBkYmFlYWEwNDgwMTE2OTdmMzdkZGQ3NGE4YTliNDIxMGE2YjkgcHkzaworODM5OTEgYWI2OTQ2OTcyYjdmZGJiZDQ4ZmY5ZGIwMGUwYzRlMzZhMmZiMDY2MyBweTNrCis4Mzk5MiBkODY4NmM2ZTZiNWViZDZkMzIyZTA0NWYwNzQ1ZThmY2E1OWM4NGU5IHJlbGVhc2UyNi1tYWludAorODM5OTMgM2FmNTk3ZjEyMzJhZjY4YTE1ZDA5YzUzYjBhYjI0M2FmYTYyNWNiYyBweTNrCis4Mzk5NCBkNTRkYTkyNDhlZDlmZmFmNjVmNjUxY2E3MTk4OGNkY2IxMzBjZDgyIHJlbGVhc2UzMS1tYWludAorODM5OTUgNzA2MzRjM2UwMzEwN2ExZGRhZjMyNjFkZGU5MWQyMWU0YzA5OTNkYyByZWxlYXNlMzEtbWFpbnQKKzgzOTk2IGY3NjM5ZGNkZmZjMzZkYmE0ZGIyMTE4YTA0Y2I4YmZmMzEwNWFhMDggcmVsZWFzZTI3LW1haW50Cis4Mzk5NyA5NDIzMmEwYzQ1YWUzNDg2NWUwZTliZWNiNGRjYzE2YTc0YjUxODJlIHJlbGVhc2UyNy1tYWludAorODM5OTggY2JhMmE5NjExMTcwMTQ3NzI4MDUxYzY4MTRkZWM1MjhlMzA0MTlmZCBweTNrCis4Mzk5OSAxYjU1YjcxYzdjMjEwZWFhNGVjNTdmMWZlY2JlOTExOWFhMTk4ZDAwIHB5M2sKKzg0MDAwIGY4YjRlYmU5YzQxYjlkOWQ2ZTg3M2NmMzYxNTlmOGIyOTAxNzQ2NzEgcHkzaworODQwMDEgMzhkMmI2NGFiN2MxNWZiNzViZjc4YmYzNzQ3N2IwY2JmODA3ODc4ZSBweTNrCis4NDAwMiBkNDYwMGVlNWU4MmYwZTk3MTY0ZTMwN2Q3OTU3ZjYzZTg4NmQzMjIzIHJlbGVhc2UzMS1tYWludAorODQwMDMgNDk0YTFiOTU0NTY5NmI1YjcyNmQxZTE2ZjU4ZmMzN2YyZGQyZThhNSByZWxlYXNlMjctbWFpbnQKKzg0MDA0IDk3MTI0OWM3NGU4MDVkOGI3NmZkNzg3OWNlNzczMDVhMzg2MmJlOGQgcmVsZWFzZTI3LW1haW50Cis4NDAwNSA5ODE1NTVlOTk4NmUzMjk0YzQyMTQ2ZTUyMzlhYjk2MGZlN2M3YWU1IHB5M2sKKzg0MDA2IGFlZDRkN2YxMjgyMWQ3MTFhMGMwYzUyYTM4ZDk1YjY5NjExNzVjNDYgcHkzaworODQwMDcgMDYzYzk5ZDgwMzJjNTE4NzUyMzNiYzk4NWViMDg1ZTllOTRjYjhjNiBweTNrCis4NDAwOCA3OTRlYjQwYmVmM2E2NTU0YTg5OWMwNjc1YzllOWY1ZmRlZWU4MWMzIHB5M2sKKzg0MDA5IDJkN2JiYTFjZjNiYzU3NTI5MjNjYWI0MDYwNGUwNjM4ZDQ4ZmVhM2EgcHkzaworODQwMTAgMjkzZTMzMmI4YjRiMDVhNjk3MjJjZTk2MzdjNTkzODczZWQ4Mzk5MyByZWxlYXNlMzEtbWFpbnQKKzg0MDExIDg1YWRmZTU3ODc3YjFjOTU1OTUwOGRmOGRiMmZkMjZkYmIxMTA1NTMgcHkzaworODQwMTIgOTUzMDEwYzBiMTY4N2ZmOWY0NjU5MTZlOGZlZjdmYmRhZWNkOGU0ZSBweTNrCis4NDAxMyBhNjU5MmZjZjc1ZTc3ZWY0NGE2OTZjODRjM2NmYzM2NjY4MmYwZmY4IHB5M2sKKzg0MDE0IGUwMTM4NTA4NjBmYWYxMzViNzc5MWUyMTllNWI4ZjE2YTE2YjhhMjAgcmVsZWFzZTI3LW1haW50Cis4NDAxNSAyYjBkZjllMWY2OWVjOWU2MTQ1Y2EyYjAyY2M4ZWYwZTEwNjliMjE3IHB5M2sKKzg0MDE2IGYxZDE4ZjRkNjE2M2I1OWFmMzJhZmNiMjRkOTZhYjA0NjQzNjFjYjYgcHkzaworODQwMTcgOTRiMjkwYWJiYWZiYWE1M2I0OGExMTk3ZDM0YzMwMTI4MTY2NmE3MiBweTNrCis4NDAxOCBhNGZkMzdhMWJmMzc0MzVkOGY1MDFhNDk3Yzg5OWE5NDlkZWYzYjQ0IHB5M2sKKzg0MDE5IDEyZmU0Yzg4ZjllNjY3NGRhYmFmODA0ZDlkZTJlYzhjOWRmNDIzN2IgcHkzaworODQwMjAgMjc3MTFiMGNkMWYwM2I1NGEzYjc1ZmFhY2I3MjQwZGQ4MjkyMTBjZiBweTNrCis4NDAyMSAyODU0NGQ2NjhlZDBkZmI0NjU3ZjQxM2E4MTM3N2MzYzkzMjZmZWJhIHB5M2sKKzg0MDIyIGVmNzU5NTUxMzhkMjI3NTllNmUzMzc1YmI1ZmMzZjEwMjIwYzE4MzUgcHkzaworODQwMjMgMGFhYzQwYzc3NDQ0MzQyODEzZmIyMGViNDIxZWU1M2MwNzlmODJmOSBweTNrCis4NDAyNCBiN2FiNzdmZDI3YjcwNzMwMzAxMDU0NGEzYzVlM2MzMzNmMGNhYzQ4IHB5M2sKKzg0MDI1IDJjNmQxM2M0MDUxOGJlYTIzNmMxN2NkMzVkMmZmZDkxNzJiOTNjZGUgcHkzaworODQwMjYgYjcyMjBlNDI5YWJiNDc0ODAxMTE0MTZhYjIxODgyMzg1Y2JjYzAwMiBweTNrCis4NDAyNyA5YmQwODI3MDE3NzY3MzY1YjY1NmEwNGY4ZjRjODMzYjAwZTVlOTJmIHJlbGVhc2UzMS1tYWludAorODQwMjggNDViMjRhZGZkMDY0OWYwODhiNzIxYWMxMDIwMjAzMTgzNGRlNTAyMiBweTNrCis4NDAyOSBhYjY3MGU0MTRjMjY5ZTdiNGRiYzk5N2FlNTU1MjJiMzQyZTcwYzAzIHJlbGVhc2UyNy1tYWludAorODQwMzAgZDM2MDMxMWYwZTUyNDc2YWUxN2RiMGQwYjRiNWE1MzIwZjM4Zjg1NyBweTNrCis4NDAzMSA1ZjMzNjUzZTM4MzdlZWUwMDZhMTEzYTAzODkyMDMxZDYzYTJkYjlkIHJlbGVhc2UyNi1tYWludAorODQwMzIgM2E3OWFhMmM0NTQ5ZmUzNTM4M2ViNTNlYTA2NTBlODU4ODFlMGU1MyBweTNrCis4NDAzMyBmMjkyM2ExNzUxZDgyNTQ2YmJmYmMyZDM4NzI0ZjUxZDI4OWVmMDAzIHJlbGVhc2UzMS1tYWludAorODQwMzQgMGU3MjE4MzA2N2VlN2ZlOTgwYjYxZjg2OWI5ZThjN2U3ZTAwOTkzZiByZWxlYXNlMjctbWFpbnQKKzg0MDM1IGM2OGYyNzEzNDJkMDY1ZGYzOTExYjYzNTUxZjU2ODkxZWI1NWNjNWQgcHkzaworODQwMzYgMzdjNDg3OTBkMDhlMGRmOWJjMTRkN2ZhODM0M2E4MjU3MzJiMGJmMyBweTNrCis4NDAzNyA2NTZmZTYyOTJmOWY2ZTliNzZhYTEzNzIyZjI5NTBhNWZkZDUyOWRiIHJlbGVhc2UzMS1tYWludAorODQwMzggYjFmOTkzMzVjNjc3NGU3YjVlNGMxMDlkNGQwYTQzMGNkY2VhZTJkYSBweTNrCis4NDAzOSBhZmFlOTk5NzgyMjY5ZjM0N2VjY2IyZTM0ZDFkZTliZDI5ZDljOTAyIHB5M2sKKzg0MDQwIDFlN2RjZmMwNDA2MTliOGFkYTVkYTllYTI3NTVkMjBkNzU2YjIzYzcgcmVsZWFzZTMxLW1haW50Cis4NDA0MyAzYTFiNWIxYzA2OWIyYTQ2NTMwYTMzM2ZiNTYyZmU2ZDU3ZDQ4NTI1IHB5M2sKKzg0MDQ0IDk1Y2U4ZGEzN2U3ODdmZTVjYmE1ZjdjZGM3ZmM2ZDE5MjY1Yzc2ZTYgcmVsZWFzZTMxLW1haW50Cis4NDA0NSBkOGQwYWJlNjFlODNlN2EwMDhhYjdkYThmNTUwYThiOGU3ZjJhMTg1IHB5M2sKKzg0MDQ2IDA1YmE4ODI5MmQ0YzVkOWNjNjdjMGU3YmE2NDBjMjYwNWY3MDE5ODIgcmVsZWFzZTI3LW1haW50Cis4NDA0NyBkNjY3YmE5M2YwMmFjODg3MTdhMTllNzMwODg3NDg4MjE4YzY2ZjQ0IHB5M2sKKzg0MDQ4IDIwM2IxOGQ1YzYyNmRmYTk2MzkwODEzYmE3NDAyZjk1OTJiNWIxYzMgcmVsZWFzZTI3LW1haW50Cis4NDA0OSA3NTM4MDQ5ZWZkZTg5Y2IxNmI1ZWUzYzZlMTM0ZTA4NDU4NDczN2MzIHJlbGVhc2UzMS1tYWludAorODQwNTAgMzUzNDM1MWM4MzAwMTQxYTMzN2NhNmNkNDVkNzQ1NDlmMDhlMTE5MiBweTNrCis4NDA1MSA4ZGI1YmQ3MDFhYjM2MGZhMDJkMWQ4MzY0NWMwZWZlMDZkNzgzMzkxIHJlbGVhc2UzMS1tYWludAorODQwNTIgMDE1ZjA1MTI5N2M1MjM5YWQzOTM2MGQ2NjQ1NjJjNjBhNTAyMjA1NCByZWxlYXNlMjctbWFpbnQKKzg0MDUzIGMyMzNjODRiZjQwM2I0Y2IwNGNmODJiNTNmZTljMTA4OTkyMmY5ZDggcmVsZWFzZTI3LW1haW50Cis4NDA1NCA4ZDBhYjU1NWExNjAwZGNkMjY3NWMxZDA1NDNkYTVmNzgwNjdjNjJjIHB5M2sKKzg0MDU1IDI2NmYzYTg3N2Y2NGM4Y2U2NjcyMjkxYThlMjAxYmRhN2FmYTZiZmQgcmVsZWFzZTI3LW1haW50Cis4NDA1NiA2ZGZjN2RhMTc5MTQzNDQwMmNjMGI4ZWEwOWNjNjk0YjllOTQ2MDg0IHB5M2sKKzg0MDU3IDJiMzZmMjljMzNmYzZlNDdhM2UxNjY2ZGNhY2Q1NjFkNDEzYTAyZDIgcHkzaworODQwNTggOTRkMWRhZDU1OTU1MzQ3NTVkODAwODFhZjY5YjEyYTAzYzgwYzhmNiBweTNrCis4NDA1OSA2NGZiMGJkNTVkM2NkZDRiZmEzMmFmMGM0MWRlMDcyMGEwMjU3OTQ3IHB5M2sKKzg0MDYwIDhlMDk5MWJhMjlmNDU3M2RhYjMwNjhmNTVlYmQxY2Y1N2MyOGQ3ZDUgcHkzaworODQwNjEgZjg4Y2RkOWE0NGVhNmMxN2UxOWU4ZjU5MjU0YmRlNGJmMmZlOTA1YSByZWxlYXNlMzEtbWFpbnQKKzg0MDYyIDhmMmYwNThiN2Q4OTEyMmMyNzg3NGFmYTA2OWIwNWNlN2ZhZmY5ZDcgcHkzaworODQwNjMgNTY3ZDAwOTIwZWQ2MzY2Y2JiYTc0YjE4ZTk4Yzc2OWE0ZmU3MDIyMCBweTNrCis4NDA2NCA3YTFhZGJlYzBkYjg3NjU3YjgyMmI5YjNiNWQwYzg3YTc4YTRkNTJiIHJlbGVhc2UzMS1tYWludAorODQwNjUgYjlkZDQ2N2QwNTc0MTg5MTYxYTJiMDVmNmZkMTQzZGY1MTIxN2RjOSBweTNrCis4NDA2NiA5OTY2MmRiOWRjNDE5ODZkYWQ0YTA3MWVmNjYwYTEwYWYyMWFmZWFmIHJlbGVhc2UyNy1tYWludAorODQwNjcgODI3YTYzM2U2OGNkM2U0NGQ1NGFlNDk1MmM4YzU3ZjA0ZGVjNmFjNyBweTNrCis4NDA2OCA2ZmIxMDEzZTMwNzlhYTAzZjMxNTkwNzFjMGI4MmEzOWFjZDViNWMzIHB5M2sKKzg0MDY5IDAwODc1Y2MzNGQxNzUxMjdhNjJmNjcwNGE4ZWUxNDM3MDE0NjAxOTMgcHkzaworODQwNzAgOTAyOGYyM2RiNzRiZTQxZWNmZTc3NjExMzMxNGEzZTdhZTAwMDlmOCBweTNrCis4NDA3MiBlNzgzYzdkNWFlMzY0NjQ4YmFjZWMyZDFlYjNmYTUxZmIxMjUzYTAwIHB5M2sKKzg0MDczIDdhNTQ4NDhkNDkyOTQ4Zjc4NzFkZTc5ZDhjYTBmYzdlNmMwYmYxZjggcmVsZWFzZTMxLW1haW50Cis4NDA3NCA5ODY4NmIxMDMxNGU5OGQwMWY5YzgxMDY2NTdjMmM2ZGRiZmIwZWRjIHB5M2sKKzg0MDc1IGRlNDZlNDI1MDQzMWM2YjY0YjE5YmY4ZWE1NDE3YWFjNjllNDc5MjggcmVsZWFzZTMxLW1haW50Cis4NDA3NiAyMGZkZDI0ZGQ5YWFmMjRkM2E0ZTNjMGZhZjQyNzA3OGVlNmQ5ZjU1IHB5M2sKKzg0MDc3IDc5ZDU3MmVhMTdkZjQzMmQyMDM1ZjI5YzNhNGMxNjAzODlmMDkxZTggcmVsZWFzZTMxLW1haW50Cis4NDA3OCA2ZThmNTg3ODg0OWM4ZTZkMzllMDczNjFkNzFhMGQwNzEwZDA0NDJiIHB5M2sKKzg0MDc5IGQxNTg4MDhkYmQ1YTI2OTlhODVjM2I1ZjM2NDExOWNlMzc2MTU2N2MgcmVsZWFzZTMxLW1haW50Cis4NDA4MCA2NzNjNGU4YTAxYzQ3YmJmOTQ1NjcyZWRhODk0Y2MyNzc0ODYxZWNiIHB5M2sKKzg0MDgxIGIwOWY5M2ZlMjlmYmY4MDU3MmJiM2Y0YmY5NjYxNThkMjk0YmY4ODcgcHkzaworODQwODIgYTkyN2E1OWNlZTA2YzU3YzhmOTM5NzVkMDhlMzRhZGFlNjg2YWE4NiBweTNrCis4NDA4MyAxODM5OGY5OWZjNTVmZDI3ZmRjMzYxNDMzZDI1MTRkMGI5NDczMjQ0IHB5M2sKKzg0MDg0IDEzNDI3NmVlZDI4MDg4YTQyNzMzZTM3MWMxMWZhYjBkYzBiYmIyYzEgcHkzaworODQwODUgZTllMGEwMGNjZmIzNTFhYTRiN2MwNDFmNTE3MjM1YzYzNmI0ZTBkZSBweTNrCis4NDA4NiA4NWFlNDQyZmY4YTVkMzUzNTg3MmUwNWY0YWU2ZmI4NzMzYjg0OGEyIHB5M2sKKzg0MDg3IDhjYzhjZTdjMzkwOTQxMWExYmQ2NmY5ZTIwNzM0ZDM4ODM2MjI3NWYgcmVsZWFzZTI3LW1haW50Cis4NDA4OCBmMDk4ZTFjOGJjNTk3NjY4ZTQ1YjcyMGNjZDRmMmNlOGY1MmIyOTJjIHB5M2sKKzg0MDg5IDkyZjc4NzcwODhhZmU0Njk3OWNlOWViMGVjMjE5NjFlYjgwYzQxNTUgcHkzaworODQwOTAgYmYxOGRkNzBjMTgwMzA0NjI2NTgyY2VhMjE4M2JmYWI4YWMxNjBkZiByZWxlYXNlMzEtbWFpbnQKKzg0MDkxIGI0ZDg4ZjllZjNmOTkyMzRkMTUzMmM0NjY1MTExZDc2ZGQ2ZTFjMDMgcmVsZWFzZTI3LW1haW50Cis4NDA5MiA5MWQ0YzdiMWJjMjVmODkyOWYxMmZlZjc5MDViYjVlYjQzNTVkMTRjIHB5M2sKKzg0MDkzIDRiMjNlMjY5YzRkOTlhNjg0YzYwOTZhNjg3ZjZhNTI2MDMzZjc4MzkgcmVsZWFzZTI2LW1haW50Cis4NDA5NCA1ZDliZGY1YWEwN2JmZDQ4ZTc4YjM3YjkyZGE0ZjRkZDUzNDVlNDU1IHB5M2sKKzg0MDk1IGZjODliOGRlZmYxZTFjY2Q1ZGJkOGEyOTNjM2VmOGQxOTA3ODY2MzQgcHkzaworODQwOTYgYWFlM2UwYzUxMGZmZTUwNjgxZWRhN2IxYzU0OTY0YTc4NDAwZmJmMyBweTNrCis4NDA5NyBkNTJmOWM4ZmU1ZDYwOWI0NTY3NGVlZmQyYjBiNjkxMGM2ZDViNWFjIHB5M2sKKzg0MDk4IDcxNWM0NGI2MGVmMzczNmU0M2FmNDY2OWU1M2Q3OGRkMmE5OTliNDYgcHkzaworODQwOTkgYTIzM2JlNjhkMzJlYThjOWYzMDIwNDdmY2Y3N2RjYjVjZmUwZDkzOSBweTNrCis4NDEwMCBlNDQzMmVmYzg4YjlmOGEyNDE2NTJiODU0NjJmNjJmMGEyNjU1M2IyIHJlbGVhc2UyNy1tYWludAorODQxMDEgOTA3ZjczZTIyN2E2YjllMWZlODA0MGZjZjBjNjI4YmY2MTg2OGIxMSByZWxlYXNlMjYtbWFpbnQKKzg0MTAyIDg5OTRkOGQ2MTBkNDQ5OWU4MDUwYjMzMDc3NDc3MWY1MjM5YjM0NzMgcmVsZWFzZTI3LW1haW50Cis4NDEwMyA5ZmU3NGViMDI4YWIwMWY5YzMwMWJmMDI3NDcxZjI1N2RkOTU3YTlmIHJlbGVhc2UyNi1tYWludAorODQxMDQgZGVlMzBjNDY3MzllYmQxYzg5ZmE2NjFlNzVkYmUzM2RkYmI0MmM2NyByZWxlYXNlMzEtbWFpbnQKKzg0MTA1IGRjMzJhN2Q5ZGE4MDI5ZmM0NzkzMTlkODU4ZmE2NTVjZDQzMmY5ZmUgcHkzaworODQxMDYgZTNkZjM0NTQ0ZGI5MDg5ZjM3NmIxOTA2ZThjNGY4MjgzMWU3MjNhYyBweTNrCis4NDEwNyA0MDg1Y2M1NjBlOWVhNTMyODg3MmQyZjRhNDdlYjRlZTgyMWZkZDczIHJlbGVhc2UzMS1tYWludAorODQxMDggNzU2ZjhiMzk4MjMwYjNhOWRlNmNlZGNjOWVmOGQ1Yzc3YzY3NDIyNyByZWxlYXNlMjctbWFpbnQKKzg0MTA5IGJlMGFhMWQxMzg0Y2Y2MmE4NmY4NTU1MDkxOTVlOWRmMWJmOTJiNjkgcHkzaworODQxMTAgMWQ4M2Q5MmVmZmU4MTEwNGFhODBiOGU2Yzk5MDZjNjQwNDM5YjFkYyByZWxlYXNlMjctbWFpbnQKKzg0MTExIGIwODllZDU3NmIxMzI1YjVjZmNiZmY0NTM0MzU5NjNmMGQ1YTdlNTAgcHkzaworODQxMTIgNzdiMDUyYzY0ZWJiYzJlMjc4MWEzNTU2MDA0MWRlNGZlNzRlYmZjMSBweTNrCis4NDExMyA0NzI1MDgyYzI4MmYwM2ZlNWFmZTlkMWE5OGQ0NWIwOWNhOWQ4YmUwIHB5M2sKKzg0MTE0IDE3ZDViMDMwZTg3Nzk5MDJkODJmNzZlZDMyYTY5ZDhkNWU3MTEzMWEgcmVsZWFzZTI2LW1haW50Cis4NDExNSA0ZGYwZDJhMTNhYTE0ZjEzZmJmYTJhOGRkYWU5Y2MxMDI0MWU3ZjA5IHJlbGVhc2UzMS1tYWludAorODQxMTYgNDFjNjA4N2YyZTZkYWU4ZjE0MjkzZjhlYWVlMjNjNTA1ZWUxZmY4ZiByZWxlYXNlMjYtbWFpbnQKKzg0MTE3IDgwNTllNmI2MjQ2MzYwOGY3M2ZlMDg3YjViYzVhYmZkZmQwZjRmMGYgcmVsZWFzZTI2LW1haW50Cis4NDExOCBlMTg5ZGM4ZmQ2NjE1NGVmNDZkOWNkMjI1ODRkNTY2NjliNTQ0Y2EzIHJlbGVhc2UyNi1tYWludAorODQxMTkgOTUyZDY1MGEwYWZkNzY5Y2Q2MmZlNDlkYzBlYWViZGEyN2JkNjE3YiByZWxlYXNlMjYtbWFpbnQKKzg0MTIwIGI2NjJhMzlmMDgyM2VhOTRmMzVlOTUzOGU0NWNjMDI3MGRhZThjNGUgcHkzaworODQxMjEgMGM4YmZkMjg1ZWY5NDI4MTcwZjI3ZDlkMjE4YTlkZDU2ODhiYWM5ZCBweTNrCis4NDEyMiAwNWM0YmFhODc1NDljM2Q1ZTJlZDBmOTQ0ZjE2NzY1YWM5MWQ4MWVkIHB5M2sKKzg0MTIzIDA0OThkNjhkYWQ1ZDM3OTFjMmRkNDZhMDU5N2UyY2U2ZGFjNDljMzcgcHkzaworODQxMjQgYjkxMDU5ZTU5ZDBkYzIyNTNlOGI5N2FkOGU1ZjIzZWY2NDA4ZDA2MyBweTNrCis4NDEyNSA3NDViZDYzOWVkNGRjZDZhY2M4YmFhMmRkZjAzMjM2NWYyNGFlNGFkIHB5M2sKKzg0MTI2IDBhZGE3Y2UyNGRlMmNkNDkxN2E4YjhjNmY2YzNhN2I4MDNkNDQ2YTkgcHkzaworODQxMjcgOTdmNDdlYWMwOWRiNGFkZTg3YWFlYmNiMTQzZDkyMThkNDIxMTI2YSByZWxlYXNlMjctbWFpbnQKKzg0MTI4IDYwYTQ3NzdhNzNhMDYyZmY1NzdiYThkYjYyZDQ4MWVlODA4ZDZjNDYgcmVsZWFzZTMxLW1haW50Cis4NDEyOSAyNzY3OGZmMGNkYTE0NGQxYTAzOTBkYWEzMjMwOGY4ZjAwZmZmZWU0IHB5M2sKKzg0MTMwIDZjYjc3NmU1NzI5NmJhM2YxYzc1NGU1NzVmODVhM2I4ZDkwZDViNzcgcHkzaworODQxMzEgNDU0OGY0YWIxOWNlZTNjNDNmZmE5ZGVjMDExYjA3MDljZWNkZTUwZCBweTNrCis4NDEzMiA3N2JmNTgyOTZjODcwNTlmNmM0NjQ5ZTYyMjgwMzNmNGY5YTU1ZDE1IHB5M2sKKzg0MTMzIGIyYTlhNTljMmQ1NzJiZmEyNDkwODhjNzQ1NjcyMTFlNGNjYmE0OWQgcHkzaworODQxMzQgYTA0OWUyMjBmMDMwOTYwNmQ4NDcwNDA2YjYwNzM0YzYzOWIwZTY5MSBweTNrCis4NDEzNSA2Y2M2NTU0MTZkNjM5YmZlMjgyNjMzYjUwZGRmZWQ4MDAxZDIwNzBlIHJlbGVhc2UyNy1tYWludAorODQxMzYgMjRlMDY4MzNiNWIzYjcyN2RiYjAwMDZjYjUzYmMzZDBlZGQzNWYzMSByZWxlYXNlMzEtbWFpbnQKKzg0MTM3IDlkZDc2MzQyM2E1NjZkZGM2OGEyZDA4ZWQ4MGM1ZjkyNmU5NWQwOGIgcHkzaworODQxMzggNWZjZTAxYTUxYWE1ZTUxNTQ1OWMxZmJjYzMyZmI1MWUzNzViMzU5ZiBweTNrCis4NDEzOSA0YmM5ZGZkOTVjODA3NTZiNjdhMWY1YWYxYTg5OThhYTIzOGJhM2Y1IHB5M2sKKzg0MTQwIDIxMmExNmY5MDZhNjcyNWM4MTg5YjZiNmE5ODVlOWFkZGFhM2QwZGEgcHkzaworODQxNDEgNmZkOTZjMDFiNDM3MTI2ZDkwNjYzMDliOWM0NDU3MWEzNTc0ZjUxZiBweTNrCis4NDE0MiA5OTBhNzY2ZmY5ODMzNTYwZDcwOGYyM2ZmZDY0ZDkwMTZmMmFiMTNkIHB5M2sKKzg0MTQzIGNhMmE4NTllOWJmNjM1MTBjMGVjM2U4YzdhOTA3NjFmODFkZmI1YjMgcHkzaworODQxNDQgY2FlZWJmNzQ5N2MzOGQ1N2Q3MzUxODk0NzE0NzNkOTdhMzJmY2U4NyBweTNrCis4NDE0NSAyN2UxNzYxNjkzM2VmODlmMmMxMThjN2VhODNiZmZlMzdlNTZhYzk5IHB5M2sKKzg0MTQ2IGVlM2RjZGZlMmY4NzM2NWY1YjAzMzk2YTVjYWUzMzVjNmZjODJkMjQgcHkzaworODQxNDcgNzkyNWJiZGZjODA1ZjAxMzc3MzE1NTE5ODFhMjIxZTMzOTA1MmY2OCBweTNrCis4NDE0OCA2ZWQzODEzNTVkMGQ0NDhhMDMxZDQ2YjJlZjUxOTFlZDEwM2RhMTBjIHJlbGVhc2UyNy1tYWludAorODQxNDkgMzVlNjdhZjgwNmU1MDNkNDA2ZDE4NmRkZjI2MWQ3YzM3ZGM3YWY0MSBweTNrCis4NDE1MCBiNjI0Yzc0MTdhZDRlNmU5MWJiYzM5YjcwMzFjM2VlMDlhMmFmNDAzIHB5M2sKKzg0MTUxIDJhNGNlZWJkZmNmYjI1OGVkNmVkYWZiNWFkZDM2Mzc4ZDkwNzAwZDAgcmVsZWFzZTMxLW1haW50Cis4NDE1MiBmZWJhZWExYTY4NzFlZmZkODM3OTQxODBmZTMyNjc5NzMzZWFhOTdkIHJlbGVhc2UyNi1tYWludAorODQxNTMgMzllMWQzODI2ZjRlYTBlZjM5MWNjYjE5ZDNmZDRmODRlOTRiOTAxNCBweTNrCis4NDE1NCBmM2Q1ODM3ZTMxYjc4NmMzYzRiMzY5YTllMzkwMWJhOTViODkxZDFjIHB5M2sKKzg0MTU1IDNmYTBhOTU1MzQwMjRkODk2MDk4MGFkMDc5OThmY2E1NjY4M2JjYmUgcHkzaworODQxNTYgZmRhOWQxZmU3ZjA2Yjc2ZDJiNDU2NTRmMDQ0YWYzOTU0OGExYmUwNCBweTNrCis4NDE1NyA1MWE3Nzg0NjI5YmJhZDg0ZGE4YzJlN2IzMzlkNDJkYmU0YzYwOTExIHB5M2sKKzg0MTU4IDM1YzUzZTdlMjI4MGRjN2E5ODA2YzYwYjg3NWNiZDQ4ZWIyNDIxOGIgcmVsZWFzZTMxLW1haW50Cis4NDE1OSA5YTU0OTQwYTMzMmVlNjkxNzdlZWY3OTU5ZjgyNTJjMTI4MTI4NDBjIHB5M2sKKzg0MTYwIGY3ODMyNzg3OTBjYTYzOTM5MjMzYTEyYjU0NmRhMGNjZjA1ODI3YTggcmVsZWFzZTMxLW1haW50Cis4NDE2MSBhMDE5OTJlMjE5YzA5MDMzOTc2YjY4YmI4M2I0OGZjYTJhNzFmYTJkIHJlbGVhc2UzMS1tYWludAorODQxNjIgMmIzMjMxMmRjYWIxNTA2YWU5ZWJmNzg1Y2E2NWFlYjRkMmVjY2VkNSBweTNrCis4NDE2MyA2ODZiMThiZmZiODY0ZmFlODNiM2FkZTg3MzQ2NTEyMjcxMzU4YTM3IHB5M2sKKzg0MTY0IGZjNzk0YWRkNTU5ZDVhYWI3NDRjZDdkNjQ0ZDI0NDM2MzFhMDBlNTAgcHkzaworODQxNjUgNDk0MzA3OGM5MGM5YWQ0ODVmMjdkZTBlZTZlZDUxYTFhMjlhZGM1MyBweTNrCis4NDE2NiA3MTQwMGNlMGM3MjFkMTU3MDhlMDQ1ZjZlMTY3YWQwNjdhMzhjMmM4IHB5M2sKKzg0MTY3IGJkZDc2YWQzYmM3NmIwMTE2MDBhYjYzYWU4N2I2YzdmOTUxMjhhNjIgcHkzaworODQxNjggZWU3NjVhNjdjMGIxMWIxOTU0MmM1NjM1ZDcxMzFkOTE5OWEyYzc5YyBweTNrCis4NDE3MCAwZWQ3NmM3Yjk4NDc0YmQ2NDVlYzNiMTQ4OWM2MzlkOGE3MGE3ZTBhIHB5M2sKKzg0MTcxIGE4ZDhkZTIzY2I3Nzg1YzQwNzJhZDkxY2U1MTA2MmIwYzg3NGJkNmYgcHkzaworODQxNzIgYzcwOTM1MTQ1OGE2NmFmNjk5N2VkODU0MDJhZjQ1MTI3ZTYwY2QwYyBweTNrCis4NDE3MyBjMTMwZjQzMmYyNGEwMzliZjZiZWZmZGU4MTMwY2NkYjMwMzk3MDExIHB5M2sKKzg0MTc0IGNhNTU3OTQ4YTVjZjY3YjUyMDY0NDU3NjMyZDhkMzliNzE0MDJkY2IgcmVsZWFzZTI3LW1haW50Cis4NDE3NSA2Y2RhNWZkMGEzY2YyM2ZjMzk1ZmFkYTBhY2QwM2ZjOTNjNmVhOWIxIHJlbGVhc2UzMS1tYWludAorODQxNzYgYjg3MTI0NGQ3Zjc5Nzg5MGY3MGQ1NGMwZmJiMmI0NDUzMWE3ODNhZCBweTNrCis4NDE3NyA4Zjk3YzY0YjIzMzM2MjE2MGM0YjczNzU4NDhjM2NlZWY1YmFjMTUwIHB5M2sKKzg0MTc4IDc0OWMyMmZmYTM2ZWM3NTc3YmQ4MTM1Yzg0MTMzYThhM2FkYjU4NWIgcmVsZWFzZTI3LW1haW50Cis4NDE3OSBjMzcwODY2ZjMwYTc1YWE5ZmFjNjI2MzcyOWY4NDQ5ZmM0NzVkNDc2IHB5M2sKKzg0MTgwIGRmOTYxMDY0ZjgxMWNmY2QxOWQ5NDNjNzM0MDRlNzQ4MTdmYWJlZTYgcHkzaworODQxODEgMjNhNTk4YzAxOTExZjIwNDIwNWE0ZWQ3MTQwNmMyZTI3NWViMDUxNyBweTNrCis4NDE4MiA2ODdjYzg1NGNiNGJmZGY5YjQ5OGEzMDUzZGQ1ZTI1OTVlYjdhZjY4IHB5M2sKKzg0MTgzIGU2N2UwN2NiNTE3MWNkODk1Mjk4MjhhYjU3M2ViNTk4MzQ0YmQxYTkgcHkzaworODQxODQgMDVhM2RmZGEwNGZmYzZhMzI1Zjg5NjMxMzhmZTVhMTgxYzllN2U4YiBweTNrCis4NDE4NSA3OTBkNDg3ODg4NzRjNTE4MTIyNDhhOTVhMWVlMWU3NTdkNzdiMjVmIHB5M2sKKzg0MTg2IDgwZjk4YWYxN2RlZjg4M2RhNDM1Yzc3ZWJlODQ0MDc5M2YzMTIyNDMgcHkzaworODQxODcgMjI4ZTZmMDAxYWUxM2IxNDExZDkxYmYxNWM5MjRlYzRkN2U2OWU3MSBweTNrCis4NDE4OCA5YWRlYTk0NTU3NTM5ZTRjYzVjNmJkZmI2NjM3YWVhNWEyZTA0YWUxIHB5M2sKKzg0MTg5IGVhMGRlY2QyYWNmYjYyZDdiMDBkOTE3NTM3ZDQyNzZiNjc2MGFkMGUgcHkzaworODQxOTAgNGY4MzFkNDUxMjVmMGU1OTFiNjdjMmUyZjllZjA4NzkyYWU5MTY4YSByZWxlYXNlMzEtbWFpbnQKKzg0MTkxIDY1ZmUwNTliOTdiZjMzODkyOGIyZWY5OGZhZWE4MDA0OTIzNjdlNjcgcHkzaworODQxOTIgYWMxMmQ5NDhhODk1NzY0MjJlODE2ZWRhZmFmYzFhNWNmOWFjYjQxYSByZWxlYXNlMjctbWFpbnQKKzg0MTkzIGE5ZTc4ZjZmNjk0ZTY1YTk4YTYyNzljNTc5YTc0MzBmMzA3NDNhMmMgcHkzaworODQxOTQgMmNiMjY2M2UzMzY4OTBmNThlNjczMjBkZjg1YjRhN2FkMWRhNTAzZSBweTNrCis4NDE5NSBhYjg0YTBjN2Q2M2M2MGY2Y2Q1NDc0ZWYxZWE0Y2VhNGI4OTFmOTE4IHB5M2sKKzg0MTk2IGY2NzIzZDU1ZGU0YjZjZTcxMTE4Zjk0MjUyZTY5MDgwMWM1MWZhYzAgcmVsZWFzZTMxLW1haW50Cis4NDE5NyBkMGU5ZmViZmEwMGFjNzFhZjA5NjhmOWYyNDA4YjEwYWQyZDljZjk4IHJlbGVhc2UzMS1tYWludAorODQxOTggODU3ODA2MTQ3ZWU3MzQxZDZiNjM0ZGQ3ZGEwOWQzNzYwZTI0ZmE3ZSByZWxlYXNlMjctbWFpbnQKKzg0MTk5IGYyNDMwNTg1OTYzYzU4NDVlZTIxMWYzNGJhYjg3ZjZkMDhiMDAxODggcHkzaworODQyMDAgZjg3MTJhMDdiMGIxMTMyMTZjMThmYmQzOGY5YTI5MDQ1YzAzNjczZiBweTNrCis4NDIwMSAwODJlYWZhMDg4MDI3MjFmYTczNzI1YjhkZjc1MWNmMTg5Njg1N2FkIHB5M2sKKzg0MjAyIGY2NWJiZmJiODIzZmZjMWFmNDBlZDFmZTMwYTc3MTYwNDRkNjEzZjEgcHkzaworODQyMDMgMzhjZTk0N2MyOGZiNDAxNjEzYjE4ZDc0Mjk0ODQ1NDZlY2I3ZjE2OSBweTNrCis4NDIwNCA5MTU1ZGI2NTljMjBmZmYxZjcxZGI3N2I1NGIwN2Y4ODMxOTQxNWQwIHB5M2sKKzg0MjA1IGE0ZWM3YTZhNjg5NWU0ZTQ2Yjg4NGM3NWQ4NTg3NTAwMWQ3ODIwODQgcHkzaworODQyMDYgNWQzY2ExYzAxOGFlNDM0MTBlMDNkMTIwYTg1Y2JmNWJkZTEwMzZmYyBweTNrCis4NDIwNyAwNTJmNDJkMDIyMmZkOWY1OTAzNjdjZGQ2ZGQ3OTU4MmU4YmIzYTY2IHJlbGVhc2UyNy1tYWludAorODQyMDggNjYxNDNjMjM2ODRkYTNiZjU0ZjRjODljZWZkZGU4ZmYwZGQzYjEwOCBweTNrCis4NDIwOSA1ZmQyNmY0NTI2MDAwYWYzZWI5NTRiM2NjYjQwYWEzOWU2NDY2OGU3IHB5M2sKKzg0MjEwIGFmNGE5MWM5NDA3MTdiOTE2ZTQ2OTQ2OWNlMGQ3YWExNTc1NDRkMDkgcHkzaworODQyMTEgODhlODQzY2UxMTYwZTgyMGEzNGYzZTMwOWM2OWZmZDY0OWJiNjI4YiByZWxlYXNlMzEtbWFpbnQKKzg0MjEyIGJhNmZkZThhM2E5OTdkNTZkYWUwMmI3NzViODBlMDRiZTA5ODI4YjEgcmVsZWFzZTI3LW1haW50Cis4NDIxMiA4YzZjNzJiNmYxZWQwYTYxMDU1OWIwZjhjODNjNmIzYmMzNzc1NmZmIHB5M2sKKzg0MjEzIDU0YzljODZhZDEwNGIyN2FhNDY2NGJjYTk4ZGE1NTkyMmE5ZDVlNTkgcmVsZWFzZTMxLW1haW50Cis4NDIxNCBjMThlZWI5NjkxMDJmMjRhZDk2YWRlMzE2YjE0YmJmZGM2M2EzNDY0IHB5M2sKKzg0MjE1IDM4Y2VlYWUwZDFmMDc5NmYwMjE2MGYwMDM2ZjAzZDc1NWNkNjA3OGUgcmVsZWFzZTMxLW1haW50Cis4NDIxNyA1NDlhNDBjYTIwNzRkNzIzODg1NGQzMjkwMjk2YzlhMDMwNTlhYTkzIHJlbGVhc2UyNy1tYWludAorODQyMTggMzUyOGJhN2I0MzA1Y2E3NWJmN2EwNmMxY2QzMWExNmE1ZjE0YzM0OSBweTNrCis4NDIxOSBmMmM3ZTRiMWQ4MDQ1YzEyMzUxOGI3ZDZhZmRkMzA2MTQzMTQ2NWJkIHJlbGVhc2UzMS1tYWludAorODQyMjAgMzlkYWMwYTg4OTZhMjc4NmJhMTVjZTQ0NGNiMjc0ODUwYjM3NDk4YiByZWxlYXNlMzEtbWFpbnQKKzg0MjIxIDMwYTBkY2Y1YTNkOGE1ODFiNWVlMTI0ODQ3MjUwNThmOTY1ODgzZmYgcHkzaworODQyMjIgNWEyOTlkNzg1OTg3ODM2MTY3ZTIwNDZlZTgyOWEyMDEwNGIxYThkNSBweTNrCis4NDIyMyA4N2Q0NjhhZTNjM2MyY2Y3MTRlN2I4YTE4NWE0ZTU1YWU3NTY1ZGJhIHB5M2sKKzg0MjI0IGQ0ZTIwZjlmMTI3YTlmNGZkZTY5ZGRiNDVjNmE3NjQ3OWI5OGZkMTkgcHkzaworODQyMjUgYWI2M2M0NTc4YjFiZDE0NDE0YmVmYzgxMTA0YzM5NzRjNmRmNDdlNCBweTNrCis4NDIyNiA2NWNlOTkyMzY4OTc4NjU4NDY2MzExYzFmYWQ0NmEyMWE5ZmJiMzA0IHB5M2sKKzg0MjI3IGYzZGI1MDRjZGZiMWYzZjU1Mzg3OTFhNTRlYjc4MDQzYzhjYTE3ZDkgcHkzaworODQyMjggODM5N2YyZTAwN2ViYzI0ZTRlYWE0ZDcxYmQ2NGYyMzU3ZTNmM2Y4NiBweTNrCis4NDIyOSBmYTdkMWQ1ZDJhZmI2MDE1YTk3MzBhZmZmMzlmYjdhZGJmYTdmMzMwIHB5M2sKKzg0MjMwIDdkMmJkODk1NWVkYjgzYjA5NDg5MjhlOGI0ZDNmNjUzNTNjYWY5OWMgcmVsZWFzZTI3LW1haW50Cis4NDIzMSAwYzNkNzYzZjM4ZjE0MmE3ODVlYWJlNzcwOGJkODg1OWEzYmYwNzQ1IHB5M2sKKzg0MjMyIDlkNTkxNmFiNjBlMGYzMjQxMTE3YzllYjFjMTIwOTJmNGQzNDE5MzIgcmVsZWFzZTI3LW1haW50Cis4NDIzMyA5OTY2MDRjZGU0MWY1ZmU4MGNkNjg0ZWM5MWNmZDM3ODFlOTkwOTBjIHJlbGVhc2UyNy1tYWludAorODQyMzQgYWJjZjk1NzdkNWRiM2ZjNTU0ZDA0OTczYzUyZGUwZTIxZjkzOTk0NyBweTNrCis4NDIzNSAxZWZlODIzZTFmMTg4NWU3ZDBkMTdiYmM0MmE0Y2Y4YWVkZWI5YTMwIHJlbGVhc2UyNy1tYWludAorODQyMzYgYzRmNWQ5OGVlODdiMDNiMWU4ZjU3MjhhNjkwNGJlYmFmODQ5OWJmYSBweTNrCis4NDIzNyA0OTdhN2UyODRlNGRjOGUwMDM0MWRhMGNlNmY2MGU1NmQwOGJlNWM2IHB5M2sKKzg0MjM4IDJmM2FjODM0YjUzNjM0ZWViYTU4MDhmNTBhNTQzZDA5MGM2MGRiNWYgcHkzaworODQyMzkgYjE4YzgwYzY4NzU0MDBiZmE5YWM1MzE0YjE0OTEyNWVkZmJjNTVmYyBweTNrCis4NDI0MCBkZmQwMjI5NzQ4ZWZkNGMxYTY1YmFkOTFiNzlhZTZlZGJhNDA4ZGFjIHJlbGVhc2UyNy1tYWludAorODQyNDEgOTdhNWZiMWM5NmNlYjNlMTg1ZTQ4NDI0N2I5NTAxZTQ5MTlkNzdkZSByZWxlYXNlMzEtbWFpbnQKKzg0MjQyIDhlMTg0YThiYjAwZTY0OTc0MWEyNDYzYjg5MDdlYzY0NGIzZGZjZjkgcHkzaworODQyNDMgNDYxYTIwYWI0MzNmZWU0YjdiN2MwYzYyNWYxODllY2FmNTBkNmU0OCBweTNrCis4NDI0NCAzMDJmZTI1Y2Q2YjExODhmMmJiZDVmMDQ4ZDVkYjNmODdlMDE3OTU3IHB5M2sKKzg0MjQ1IDEwZGY5Mzg3MmNhNzMwNDIwMjc1YWI1Yjc4Mzg4NTk3MWNiMWRlY2IgcmVsZWFzZTI3LW1haW50Cis4NDI0NiBmNWRlZTMwY2NkMzlmZDUwZDg0OTRkOTA0NTY4YTViNDkzMDhkOWQwIHJlbGVhc2UzMS1tYWludAorODQyNDcgZjlhYjljOTJkYjhkYjI0ZGU2YzVlNWU5NDM1YTEwNDFjZjdlMmY0NiBweTNrCis4NDI0OCBhYWNiMTUyOTFkNTQ2MTBjZTMxYjc1ZjA4NGVmMjk4YjAyZTJjOTc1IHB5M2sKKzg0MjQ5IGEzNGJlMDNmNzA5YTM0OWI2MTFmMjNiOWQ2ZGNkNWExYTAzNjc2NGMgcHkzaworODQyNTIgMDFiMGE2Y2IxM2Q0M2M5ZWEzNWY1MmUwYzRlNTQ5MzUxMTNjODUyYyBweTNrCis4NDI1MyA2ZTBmZTFiODNmZjA5NTZkNWFjNTY1NDA5NzRhYmUzZDg0YThlOWFlIHJlbGVhc2UzMS1tYWludAorODQyNTQgOWM0ZTg1Nzg1ZDRlNGM1ZTk0MDY4Y2QyZTY4ODQyZGNlZjhmMzRlOCByZWxlYXNlMjctbWFpbnQKKzg0MjU1IDAxMzBlNTc0ZjViZTVhMzg3MjdkMzRlZDBjMGI4ZTUzM2YwMTM5MTQgcmVsZWFzZTI3LW1haW50Cis4NDI1NiA3ZmYzZmE0Mjk3MjE4M2E1YmEyMmQ0NWJhOTk5MDRkNGFlYzk1OGVkIHB5M2sKKzg0MjU3IGE1YTU4NzIwNTBlMzAzODRkZjg2Nzk5NzgzN2ExNjM4NWY3ZGE1MzUgcHkzaworODQyNTggYjAxN2E0ZWY3Njk0ZmFlYTkzY2Q0YzBiMDUyOGZlZTBjNzEyNTdiYyBweTNrCis4NDI1OSA0YWNmYTNmZTZhNWViNTJjMTUyYmVhZWRjYzZkN2Q2MmYzZTljZDE1IHJlbGVhc2UyNy1tYWludAorODQyNTkgZTQ5YzUzZjc1MzVjMDhkNTE3NmE4MTgzZjgwOWFlNjc4YzRjYThlYyBweTNrCis4NDI2MCBlODE5MDZlOTJmOTlhZWRlNjY0MGE2NTBmYzc0NTZkZjg3MWVjNzI5IHJlbGVhc2UyNy1tYWludAorODQyNjAgNmFiNjU2NzY1YmNhMzg3Zjc1ZDI2YWI3NGY4ZmFmYmJlOTBiMWY0YSBweTNrCis4NDI2MSAzNTMwNGMyZmU5ZTBiYjg4MTMxYTA1YmEzMGE2OGQwODM5OTUyYzQ1IHB5M2sKKzg0MjYyIGU5MTg0OWNkMDY2ODlkZGUzMTc1ZjEyYmQwMmY5YjQzNmM1NDg0ZjkgcHkzaworODQyNjMgZjJlOTFlMDhjMWM1N2YwYWUwM2FmZjg1ZGI4MzQ3ZjBjMjBkOGQzMSBweTNrCis4NDI2NCAzYWNkODZmOGM1NTI0NzNhYjliNjI2YTk5NDE0Y2I0YjIwYjEyYjAzIHB5M2sKKzg0MjY1IDFjODgzNGYzY2RiOTYzODc3YzcyNDQxYWM5Mjc5NDExODRjNzVmYjMgcHkzaworODQyNjYgNTk0OGU0OGZiZDg4MGNkMTRlZTRkOTg0MjBhY2U5M2Q3ZGMyOWRkZiByZWxlYXNlMjctbWFpbnQKKzg0MjY3IDhmNWZhZjU2OTZlN2FmMmUxMTgxMzdlMTViNGI2NTljYmM5ODgzODQgcHkzaworODQyNjggMDJlMmQ5ZWFiNzMwMTk5YzViYWE5NDYxOTAyYjMwMjZkYzY2ZjVhMCBweTNrCis4NDI2OSA3MTZkM2QxMDJjMGFhMTI2ZDU5MWE1OGQyOTRlMWMwZWU5MjNhYTUxIHJlbGVhc2UzMS1tYWludAorODQyNzAgYTQxMmNlZWVmMGYxZWViYWM3ZmU3ZWVhN2Q4ZDVjNWRhOGRiODVjMiBweTNrCis4NDI3MSBjZjM5OWRlMTJiNTQyN2Q3YWJmYmQ5NDRhMWNjYjNjZDVlNWZkZDQ4IHB5M2sKKzg0Mjc3IDdlMWUzNDNiNzA4YjE4MmY3ODc1YzQ3MDM3NTNmY2Q0YjM2YzI1ODMgcHkzaworODQyNzggYWEyNWI4Njc3Y2MzZjc5ZDRiNTM1NGY4YmNhY2QxY2ExMGZmZDg4NyBweTNrCis4NDI3OSA1MWEyNGE5MTU0MDg1OTNiODlmZDEwY2ZhMzI5YTYyYjM1NGNjYjY3IHB5M2sKKzg0MjgwIGI1MzVjZGU5MzI3MzgzZjgxZGYwMmVlYjBkMDhiZjcxNmJkYzVhOGEgcmVsZWFzZTI3LW1haW50Cis4NDI4MSAxYTA4NTk2MjM4ODJmNzFkZWVmMTZmNThmZGYwMDQ2MjE3NjhlMDgxIHB5M2sKKzg0MjgyIDQyYzcwZjE3YzJmZWRlNjExNjEwODU2OGE3NWIwZWVjMDhiM2M3M2EgcmVsZWFzZTI3LW1haW50Cis4NDI4MiA5ZDRkYzU4NTVjNTE1YjgwNDUyOTNmMWI0MGE2ZGRjOWNiMTE2MzAxIHB5M2sKKzg0MjgzIGJhNTM2YWM3YWI0ZTRkYjAyODk5NmViZTliY2M1MTIxNTlkMmRiZGEgcHkzaworODQyODQgZTc5YmE1NTU5MjJhMTY4N2JiNzE5ZGJmN2RiOTI4NzhjYzgxMmQyOSBweTNrCis4NDI4NSA3NmU5Y2Y4NDU2NzYwMmI5MGE3YzRhNzcwNzY1OGZlYjI0NDRlYWViIHJlbGVhc2UzMS1tYWludAorODQyODYgYjk1ZWMxNzFmNTAzNjQzYzdjOTZkMmNiYTIxNGVjMGEwYmNhOGRkNiByZWxlYXNlMjctbWFpbnQKKzg0Mjg3IGVmYWE0N2U5MmE4ZTg3ZTAzMzMzMjg2OTU4MmVlNDlmMGFmMmUzMmIgcHkzaworODQyODggNzg5NWM0NTUzYmY1NDQ5MDY3YzUwZmVmZDg5MDRjNzc4MmNlMTE3YiBweTNrCis4NDI4OSA5MGJmMjI0MzU1MmQzMzQzYTY1ODM2ZjVjNjU3YzQ5MmY3Mjc1MmJkIHB5M2sKKzg0MjkwIGUyYmNlMWM1OTZiZWIzYTllY2U3YWEzZjhhN2YxYjdiNDcwMGNiNzQgcmVsZWFzZTMxLW1haW50Cis4NDI5MSBlNzE2YWEyMDk0ZmE4ZDk2Y2IzNzVkMDY0MzYxYTY5ZTUzYmM0ZWQ2IHJlbGVhc2UyNy1tYWludAorODQyOTIgOWY4NzcxZTA5MDUyNzdmOGIzYzI3OTkxMTNhMDYyZmRhNDE2NDk5NSByZWxlYXNlMjYtbWFpbnQKKzg0MjkzIDZkYjc4MzViMGE5NWFmYzFkNGYwYWU5ZjE3Mzk0OGI4NTRlN2JhMGUgcmVsZWFzZTI2LW1haW50Cis4NDI5NCAyZGU5ZDQ0NTcwODIxMjNkOTAwOWE3ZjI1ZDBkOTRjY2Y2NWI3MjUzIHB5M2sKKzg0Mjk1IGMxYTgzZjJjNzA4NzU3ZGRkMmNmMmIyMWFiMDlhNTEwNWFkMGZlYzkgcHkzaworODQyOTYgZDRhMWY5MTQyZjdhOWQ0NzdlYTc4NDJmZWQwYWM2M2Y4MjFmNGE4MiByZWxlYXNlMjctbWFpbnQKKzg0Mjk4IGRiMjkzNjBjYWQwZmFjM2E2NDk5M2I5ODg2ZjE0ZGY3YTE3YTJiYzIgcmVsZWFzZTI2LW1haW50Cis4NDI5OSA0YjEyOTZiMjYyY2E0YmVhZmM1YWM1N2NlYzgyNDk3N2M2NDQ4ODU2IHB5M2sKKzg0MzAwIGY5MWYyOWVmNGVlN2I1ZjVlY2ZiYzkwNWUyN2Q5YWZhOWEwMDk5N2QgcmVsZWFzZTI3LW1haW50Cis4NDMwMSBjMWM0ZjhmODUwNzBkYTRkN2I2OWFlMzZlOWUwMTIxYzkwNWUxNWZlIHB5M2sKKzg0MzAyIDhmZTM2ZTJiOGVkMTNjMjIyMmZkMWQ1YjdkN2U5ZGEwOWVhMTk4YTEgcmVsZWFzZTMxLW1haW50Cis4NDMwMyA4MGE0ODE0ZWNmNWQ2NTIxZDYxY2U2MDBiNmFhNWI2ZDY5OGRhMWMyIHB5M2sKKzg0MzA0IGJlNzZiMzdmZTdmZDg0MDlkM2QyZjI3ZjI4MmU5YjQxZWMzZDgxZmMgcHkzaworODQzMDUgNjE4MGY0NTY0NzE0ZGIxMzNlY2ZkMjUzN2EwZDZkZWYzZDhlNjExMiByZWxlYXNlMjctbWFpbnQKKzg0MzA2IGY2NWU5YzE1OGMwNDA2MjNhOTY3YmU1M2IwNGVjNjQyZjQ3NmRhZGUgcHkzaworODQzMDcgODY3Njk5YzliNjNmZjU4NDVlYzAyZjE3NDRlM2U3NmRmZDcxODUxMiBweTNrCis4NDMwOCAxNDg4Y2QxMDNkN2I4MjE0ZjdhMTEwMzAwNzQwZmVmNmZjMzVhZDVlIHB5M2sKKzg0MzA5IDFlMjNjM2IyZTIzMjU5YTkwYTkzYmY0YmNmNTU1NjBjNWQwY2JkZmMgcHkzaworODQzMTAgODdiZGY1M2ZmNGJiZmNhNDI5OTY1MzBhN2YwZTlhODViNTQzMzFjOCBweTNrCis4NDMxMSBmNmIzZTY0Yjc2MjA2NzgwMjg2YmIyNWYzNWI0ZTMwZDZlOTZmM2JmIHJlbGVhc2UyNy1tYWludAorODQzMTIgMDUzZmY2NWJlNTRjYjM2M2M1YTI4NDgxNTZmYTIzY2I3NDI3MDBiOSByZWxlYXNlMzEtbWFpbnQKKzg0MzEzIDJjY2QwNDNhYWQ1YzEwOTBhYzU5NGIzYzk2YTkyNzQxNDcxZTJkYzAgcHkzaworODQzMTQgODcwMzdkODM4MGJmNGEzOWVmMTM3ZjFmNDA4ODQwYjkwZDY5NjNhNiBweTNrCis4NDMxNSAzYWM5YTM3ZTQyOWJhNjI3OTFhZmEyNmJlZmYyYTQ5ZTYwMzM2ODM3IHB5M2sKKzg0MzE2IDk0YzBmOTc5MTdkZGM2OTI4MTc4ZmY3MmQwYzIxZWJhZjA3NWE4ZGUgcHkzaworODQzMTcgMDQ4MmIzMGNhNDY2MjkzZWU4MmNiYzM1NmMyMjVjODU5M2M3NjkwZCBweTNrCis4NDMxOSBhZWZiYTg5OWVhZWViNDI0N2ExYWYyZjJhYmQxMTM5YWRjNzQ1YjQyIHB5M2sKKzg0MzIwIDgzMzAzNDZiNWM1ZmE4YjZmZWI5NGRlYzg0OWZmYTcxMGQxODJhMmMgcHkzaworODQzMjEgZWJmYjk0ZjJjYmMzNTY0Yzg5MmM1ZGM4NmEzOGE4YjA5M2Q1NTI0OSByZWxlYXNlMjctbWFpbnQKKzg0MzIyIDE5MDM3NTQ0NTI0MTk4NmEzYTg0N2M4YTRkNzhlODE0ZWQ1NGEwYWQgcmVsZWFzZTMxLW1haW50Cis4NDMyMyA2NTUyMDU1NjI2OTUwMWUzOWZkYWRiODMwZjI3NGRjZGZlMjZjZThkIHB5M2sKKzg0MzI0IDc5MTVkMjY2ZWUyYjI1ZGNhNDY1ZjcwNDY1MmQzNGUxOTIxYzAxNTIgcmVsZWFzZTI3LW1haW50Cis4NDMyNSBlZDgzZDU0NjMxNWQyZTBhM2FiM2UwNjA1ZmEwNTM2MzZkODlhYzNlIHJlbGVhc2UzMS1tYWludAorODQzMjYgMzI1ZDAxNmMxOWY3MWY4NDc0MzkyZGNkNzA2YjY3ZjlhMjY4NTdhMCBweTNrCis4NDMyNyA5ZDRhZmQ4ZTg2MjExNTRjMWY4ZTY5NWI2MDJmOTRmNWM0MTAzYjdkIHB5M2sKKzg0MzI4IGRlYmMyODQyYjRiMWJmOTRjODQ2MDgxODIyMGU0MTA1MTliYjAyMzEgcGVwLTAzODQKKzg0MzI5IDAxMTJmMDY0Y2VkZmFiMmFmODg3NWE1ODlhMGM1Y2YxYjQ3NzkxOTIgcHkzaworODQzMzAgZDBiNDYwYTQ3ZjdmZmE1OGRmOThkNWM2MTA0MjFlMGU3NTJkMWZmMyBwZXAtMDM4NAorODQzMzEgMDkzYTA5NWFhNzRjNjQ4OTk5NjY0YjhmNjdmMDg5YmVkODg0YjQyZiBwZXAtMDM4NAorODQzMzIgMWFiYTczMzlmYTZjMmI4OGU1MzVlYTFmMWNhZjQ5NTBiODZjZjg4OCBweTNrCis4NDMzMyBjYjFmNWQwNTQ1MTBlNDdhNGNiMzA2OTM2ZjIxYTNiNTVhNjE1MmQ5IHB5M2sKKzg0MzM0IDM0ZGZlZTU5MGEzMDcxYjFlZmZkNDA0YzYxZWIyYzJhYjI1MzExYjAgcGVwLTAzODQKKzg0MzM1IGQ3MTYyMjA3MzE4ZjY3Y2IwOGFiNDhmOTJlODdjNzM5YWI0ODEyOGUgcGVwLTAzODQKKzg0MzM2IDMzYzRjY2FmYzRmNTM4YTEyY2Q2ZGFkMmM3M2I4YzI4YWY1OWU2OGUgcGVwLTAzODQKKzg0MzM3IDlmYWMxOTcwZDM4MDZmMjNiNTgyN2MzZGFjNTJiNTQ2Yzc2YmU3MGMgcHkzaworODQzMzggNzhlNDAzMTZlMDIzNDZhZmM2NzdmOWQzNWFhNDc4OTAxNWExMDM3MSBweTNrCis4NDMzOSBlYWFlMGRmNmQwNjMwZTE1MjQ2NTFiYzBjNmZlZDNmY2NkZjMyYjY4IHB5M2sKKzg0MzQxIDVkYzA2YTA1OTYzMGFkYzM2ZmNlYmFjODFkNTlkM2JmNTJmYzAxNTYgcHkzaworODQzNDQgMDI2NWQ1ZjdiZDA3MjE2NmEyYjgzYWI5NDY5M2M4ODY1YTNkMTc4OSBweTNrCis4NDM0NSA0Yzk3OGNkMzY0MGZjOWU3YzQ0Nzk0Yjk2NGJjNTg0ZjM4YWNmZGY1IHJlbGVhc2UzMS1tYWludAorODQzNDYgYjJlOGRjZDE1MDQwMzQxZmNmNzYxOGQyMWEwNjBlZjUxODQ3NGY2NiByZWxlYXNlMjctbWFpbnQKKzg0MzQ3IDhmNmU0MWMzYTIxOGE5OGYwMDI2ZjUxMzNjMWY5YWVmODcwZjVjZGUgcHkzaworODQzNDggNWM4OWY5NTcxYmE1NDkwZWM0NjUyMWZiNzI5ODBjMTFiMTIxZDNjMyByZWxlYXNlMzEtbWFpbnQKKzg0MzQ5IDNlMjBhYmQ3ZGVmNmUzNjAwOGJhZDVhNDBiYTc5MzBkOWNjOWE0ZWQgcmVsZWFzZTI3LW1haW50Cis4NDM1MCA0YmIzMTdlYjQ5NmEwODc1N2EyYmNmZGM4YjU1YjIzM2Y5ZGQzNTg2IHJlbGVhc2UyNy1tYWludAorODQzNTEgOWNiYTk5MDY4YzU0YWE5ZmU4ZWNjZWZiOGIxYjQ1NmM2YjQwZjViNiBweTNrCis4NDM1MiA5Mjk3OTc0NjA0ZmZkYjMxOWE5ZTZkOWYxMTg0YWUyNGVjNjFiYWY2IHB5M2sKKzg0MzUzIDkxNWRhOWYyZGExOTllOGI1NGE0ZDU0ZGEwZWZiZjgwODg4NWFlMWIgcHkzaworODQzNTUgODBkMmU3ZDFkN2Q1MzRmYTQ2NTkxMmNhYjRhYzQwMWY0MDliNjA2NyBweTNrCis4NDM1NiA5YzUxZjM4MzY1NjMyYTFiN2I3ODVhMjc4ZDUxNGIyODE2ZWEwZjBhIHB5M2sKKzg0MzU3IDcyNjcwNWQwMmFkZDIxZTZkMmMxYmM1NTA3YWYzZDM2YzE0NGNjNDAgcHkzaworODQzNTggZWZlOWY2YzhhMzFkNGZjODBkNTM3MWViZjg4ZDA1Y2VmYjNiMGY1NiByZWxlYXNlMzEtbWFpbnQKKzg0MzU5IDhhZDU5YjUyM2ZkOGEwNjQyNmY1NDBkNWQzNjE3MmJlMWNmNTFlZDUgcHkzaworODQzNjAgZTFkY2RjYjUyMDFkNDg0ZjhhMGU1YWNiMzg1NjFmZjg0ZTM4ZTIzOSBweTNrCis4NDM2MSAyOTQxMDFmNzdjYmVjYTRhMWE3OTE0NzM0ZGYwYmU4NjA2YjRmNjU5IHJlbGVhc2UzMS1tYWludAorODQzNjIgZTZiNDU2ZjkzNDQ3YTEwMDVjYWIxZjQ2Njg1YjUzZmZkM2MyZGY5NiBweTNrCis4NDM2MyAwNDBlZTk0YTkzNTBlYTI0Mzc4MDIwNTBhMjNiMzk4YjIyOTdlYWUxIHB5M2sKKzg0MzY0IGZlNzIxNGJjNmQ2NmIzMzlmZjFmZjMxYTFmYzZiMWU5ZDM3NzliZjkgcHkzaworODQzNjUgYTQ5MmYxYWMwNTc1NDc5ZTZiOGVkYTcwZWQ3MTU3ZDA3ZjAxMzZiOSByZWxlYXNlMzEtbWFpbnQKKzg0MzY2IDUzNzBkODFhNWYyZDJiMzAwNGVjODM1ZTJjYzZjOWNjYjkwNjQ3YjIgcHkzaworODQzNjcgMGE3ODRmNmFjYWU3NjgyNGNhYWEzNDU2YjE2YmNhYTJlNzZmNDdhMiByZWxlYXNlMzEtbWFpbnQKKzg0MzY4IGY5MjA0M2M3ZmY5ODQwZTM4YmQ2MjJhY2ExZDUxYTQ5YTE3NDM0MTQgcmVsZWFzZTI3LW1haW50Cis4NDM2OSBlYTg5M2RiMjNlNzM4YzYwODhjNTA0MTQzN2ZlZTFiNGE1NDkxYTBlIHJlbGVhc2UyNy1tYWludAorODQzNjkgNDc0MzczOGNjYWZlMTdhYzllNWEzY2U2ZDM0MzFkODFkODg3OGIwZSBweTNrCis4NDM3MCA4NDg4MzYwN2UyMWE0YjFhZmVhZTQ4YmU4MTYyNTk2MDQxZjQ5MmMxIHB5M2sKKzg0MzcyIDdiMmQwZDc3ZTRhYzZlNTQ3NzNhZTk4Njk5MGM0MjRmNGQwNjNhNTMgcHkzaworODQzNzMgODAzODkyOTMzM2E5Yzc4MjliNTcwMGQwODVmZTJmMWQxZjkxMWJjNSBweTNrCis4NDM3NCAwOGY3YWUxMGNjNzkyYWVhYjA4ZTk2ZDQyY2VjNTFlOGJjOWZiN2E4IHB5M2sKKzg0Mzc2IGNhOGY4YzZjYzJiMWIyODE3ZTE0NGM3NzBjZmY2MzI5Njk2OTczZmYgcHkzaworODQzNzcgYWMzN2EyOGRkYzhmNDliNGE5YjRhN2VhODY3YmRhNWY4MDlkN2JjYyByZWxlYXNlMzEtbWFpbnQKKzg0Mzc4IDE1NzBmNmU5YTY4NzQ1OWViN2VlZjRlMTlkMjZhNDEyZGFmN2RjODkgcHkzaworODQzNzkgZDUwM2Y3YTQ1NDU2NmI5NDhiYjFjNzZkM2Y1YmFmZTU4YWU0ZmJmNSBweTNrCis4NDM4MCA2MjkzMGNiMDVlZDhiOGExNDRhZTIyZTM1YjBiMDg2ZjkyNTRhZTQ5IHB5M2sKKzg0MzgxIDAzMjY4YmY5YTI1NjRmODRmY2YxYzg1OTI4MzEwMDhlZjcwMzJmYzAgcHkzaworODQzODIgNGYyOTA1ZWE3ODA5NjczZjA0NTJmMzJmOWQxZDJiZTVmOThjMWE4NiByZWxlYXNlMjctbWFpbnQKKzg0MzgzIGEwZTc1NmQ5MmQ2MDA2MTBmOWJiODE5YzVhM2RkODYzMDM3M2JkNGMgcHkzaworODQzODQgOGMyMTYwYjVjODFhZjdhODgyMGVmNjRjOWM2MThiZmIzMzBkNTI4MCBweTNrCis4NDM4NSA5Y2E4M2M2NGY3N2FlMTU1OTI2ZDJmMGE2OTU0ODZlMzJhYmQ4YjI3IHJlbGVhc2UzMS1tYWludAorODQzODYgMmU1NzYxNWU2MWYwZjFhY2E2ZTUxNzg2OGE2YjU1Y2FiMWZhMmM5NiByZWxlYXNlMzEtbWFpbnQKKzg0Mzg3IDlmZDMyNmFmNjJkNDVjOGRjMmFjNjkwMzIyOTJjYWFkYjgxYmYwNWQgcHkzaworODQzODggNDk4MGIzZTllODRhMTgxNDliNmJmYjcwZGM4YzY3MzM4YzEzYTkzOCBweTNrCis4NDM4OSA3ZTlhYmQ1M2I5Mjk4ZTcwZmY2ZTRhY2YwNjhiN2RlMjJmZTBlNjc4IHB5M2sKKzg0MzkwIDI5NzNkYWE0NzI0YjFlZDZhZjNkOWViZmI5NGVjNWE5MjE5NTRjNGYgcmVsZWFzZTMxLW1haW50Cis4NDM5MSBkMjQ4NzBkMDBjNDI1OWY4MGM3NzY0Y2YzOTM2YjIwYjYyMmQ2MmIzIHB5M2sKKzg0MzkyIGIzYjhkMDhmOWQwNmVjZmJkODM2M2I0YmIyODViMGIwNjI1NTA2YTcgcmVsZWFzZTMxLW1haW50Cis4NDM5MyBkYTE5ZDAyYWFhYWEzZDZmYjc4ZTBlOThhM2FiOGZmODk5NTBjN2JkIHJlbGVhc2UyNy1tYWludAorODQzOTQgNWEzMTAxZjU1OGVkZGUzNDNhY2M0NDM5YWRkMGU0MDllNTgyNGI5MSBweTNrCis4NDM5NSA0MTM0OTgxNzQ2OTc2OGY3ZjJjMjhhYjBjZGZmMjU0ZDlmZmYzZTM4IHJlbGVhc2UyNy1tYWludAorODQzOTYgM2QxYzcyNjJhYTE0ZGNjMzg3OGRhNjQyOTE3NWE1YTFkMTg5Mjc5ZiByZWxlYXNlMzEtbWFpbnQKKzg0Mzk3IDk0NDIzMjUyMTYyNGJiNzhjYjEwMWY4M2ZjOWUzMmJiODFhMjE1OTkgcHkzaworODQzOTggZDg1MGMzN2I2NmI2ZjZmZDMwNzVhNTZkMDI5Nzc4ZDJlM2MwNDhkMiByZWxlYXNlMzEtbWFpbnQKKzg0Mzk5IDA2MWUyNzAzMmU2MTkzNjMyZmRjZmE4ZjVkOTIxZGU2MzNiMDY2YWMgcmVsZWFzZTI3LW1haW50Cis4NDQwMCAyZGMxN2RjYzk3MzQ2OWYyOWZmYWYzZTMyZTAzZjllYmVkMTUyZWM3IHB5M2sKKzg0NDAxIGRlNDIwN2M5YjljMTI4ZDgyNjM4ZTZjODg3MDc3ZGU5MGM1MTdlN2MgcHkzaworODQ0MDIgMzA0NWViOTQwNTk3YmMyYzQ0YjI0NWU0ZTc0NmNlYjQ3ZDA3NTFmMiByZWxlYXNlMjctbWFpbnQKKzg0NDAzIGZhOGI1N2Y5ODdjNWYxNWI4NDU5NDYzNWUwN2QyYWFhM2Y5MDM0NTIgcHkzaworODQ0MDQgZDY2ODA3YzUwMzhiZmI2NmY0ZjMzMzU4MGM4YTdmOTZiZTIwNDFlZiByZWxlYXNlMzEtbWFpbnQKKzg0NDA1IDZiYTAzMzIyYmMyMzNiYmRkMjgzNWNhNjY4NWRjODc0OThkMzhmMTEgcHkzaworODQ0MDYgMDYzYjU1NGQzMTUzZjM2ZjZlZTQ3YzZjNDFiNWQwZTAxNTZlZjE2ZiBweTNrCis4NDQwNyA0ZDhhMjVhNGQxZjYwODA1ZDgyNGMxNDA3ZGIwMDYyZWFkNDRhZTZlIHB5M2sKKzg0NDA4IDkyNWU5MTEzZjBhYWVmZjEzYjYzZGVhN2Y4ZTgyZTQwMmRlMmU0NmIgcHkzaworODQ0MDkgN2EzOTViY2VhYzkxYWYzNjBkMzNiNTgzMzk5NDRhMzcxYzg3NzUyOCBweTNrCis4NDQxMCA0NTQ3YjE0OTExNjkwMzdjMGRmNTQyODJmNmE0NTA0M2UzYzNmMDJhIHJlbGVhc2UzMS1tYWludAorODQ0MTEgZmE0ZDc4YjllM2EyYTZiODRiODQ1OGVhZDcyZDU3Zjc0NDExZjE1OSByZWxlYXNlMjctbWFpbnQKKzg0NDEyIDYxOWFmYzgxYzk3MzFlMTVkNWUxZGIyZjhiNTU1M2JiYTJlMzQ2NDcgcmVsZWFzZTI3LW1haW50Cis4NDQxMyBmYTk0OTUzMTZjYTkwMGQxOTE3NjE3NGQxNmJkMDBkNjI3YjdhMWM0IHJlbGVhc2UzMS1tYWludAorODQ0MTQgYTNiNjQxOTI5NmU1ODRiZjdiZGE1MjkwMTJjNTE1ODQ5ZDc5N2Y3MSBweTNrCis4NDQxNSAyNWVkYjZmNDM4YjkyNmQ5OWM5MWQ3ZTkzYWJiMzRhMWQwN2MyNDVmIHB5M2sKKzg0NDE2IDUzOGFlNjIyNGE1ZWI1ZWZlZDk4ZjdhNThmZjk5ZjZkMDljYzEzMDYgaW1wb3J0X3VuaWNvZGUKKzg0NDE3IGQ3OTIxNmZjMjFjZTc1MTE5Y2I5N2ExYjUzZGIxNjZmNDQwYzZkNzEgaW1wb3J0X3VuaWNvZGUKKzg0NDE4IDgyZWFjM2MyYzY5N2RmMGExMGJiMmYwZjY2YTJiNGU3YjI1ODdlODUgaW1wb3J0X3VuaWNvZGUKKzg0NDE5IGVkM2Q4NjFjNDkwY2EyZmM3MDQzZGQ3MTk0MmVjNTRmZTU5MTc2MjcgaW1wb3J0X3VuaWNvZGUKKzg0NDIwIGEzOWJhN2FjYmUyODcwNGEyODIxNTk0OTcyMWJlNjZkZDZmZjkzNWEgaW1wb3J0X3VuaWNvZGUKKzg0NDIxIGU2NjBlN2JkNzk5ZDcwZmNhN2E3MmZhMzRkOGY0Y2Q4MjNlODIxNmIgaW1wb3J0X3VuaWNvZGUKKzg0NDIyIDgwNjQxYzdhNmY0ZjljMjRmZmVmZWNhYzA3Njg0NzE5YTBkYjRhYjEgaW1wb3J0X3VuaWNvZGUKKzg0NDIzIDNkNzg1MmI4NjEyODRkOWM2NzE3YTVlZWI4NTA5NDYwZjU0ZGExNmUgaW1wb3J0X3VuaWNvZGUKKzg0NDI0IGIyMWZkOTRmNGZiMzdiMzM4MTg2MzhmY2NmMTAzMTIwNTlmOTQ3MzUgaW1wb3J0X3VuaWNvZGUKKzg0NDI1IGYwZDBhMDcwZjEyOGYyYjcwZmFmZDhhMzUxN2ZhZWY0ZjRhNWJjMWYgcmVsZWFzZTMxLW1haW50Cis4NDQyNiA5M2Q2YWQ4NTIzNTM0MWRmYzIxN2NkOGU0ZDdhYTdlNjc1MWY0ZTMyIHJlbGVhc2UyNy1tYWludAorODQ0MjcgODIyMTFiMTg1MGQ0ZGEyYmMzZDcwMmYxNmE0ODU4Mjk1ZTQwY2RjMyByZWxlYXNlMjctbWFpbnQKKzg0NDI4IGRjYjJhYTQxY2Q3ODBhMDAzY2Q3ZDEwZWQyZmI1NWI2YjEyNTliMmIgcmVsZWFzZTMxLW1haW50Cis4NDQyOSBhMGQ4ZGUwNGMzYTgyODUyYmI4NzdmYTcwMjRkZjY1MTdiNmI4YmUwIHB5M2sKKzg0NDMwIDFmMDRiMDA3NmZkODE1ZTM5NGQ3YmM0YmY3ZjBmNmFiMGFiODYyZjggcHkzaworODQ0MzEgYTdjYWRkN2IzNGI1MjZmMDI3NTdkMzQ5YWEzNjlkYTUzZmEwNDU1MyBweTNrCis4NDQzMiA0N2I5M2NkYTkxZGY1YjJiZDJjOTdkNzA0ZTAyYTYyNWY4YmM2ZGZhIHB5M2sKKzg0NDM0IDgxYTlhYzczZDYxOTYzMjlmYjIwZWQwOGMwMTRlMWQ5NDk5M2ZmNTUgcHkzaworODQ0MzUgMDI2MGUwNGQyY2ZjODI5ODkyYjgyMTg4NTdlOTZhY2M0OWQyZTYxYiBweTNrCis4NDQzNiAxMWZjNzk4YThiNDMyNzIyZTA5ZjZiYTBiNDc4Mzk2YTk0Y2MxMTE5IHB5M2sKKzg0NDM3IGJkNzQzNWE4NzA4YjYzN2VmMmZhMmI4YmZkNzM1ZDU0ZGJiMDlmZDEgcHkzaworODQ0MzggNTVkYjYwZmNhYjU0MjQyNzBiNWUxNWVmNWY1NWIwYmM2NmY2MWEwZCBweTNrCis4NDQzOSBiOGNmYmJmZTE4MzkwNjdlNzVlMmU3M2UxMDgxYWI0NTU3MzAyYzAyIHB5M2sKKzg0NDQwIGQxYzZiMWFiNWJhNzg1NDA4MTcyNGVhNWQ2ZWM5OGExNzc1YjExMTEgcHkzaworODQ0NDEgOGI5NGYxNWNiNjUwYmExYWFkZWIyNTkyMDBmNzM2Y2IxYTBmNmJhOCByZWxlYXNlMzEtbWFpbnQKKzg0NDQyIDRhZDdlZmQ5MDliY2U5NGJjMmZhMWVlYzMyMzY0MTM0NGQ0MDY2YTYgcmVsZWFzZTI3LW1haW50Cis4NDQ0MyAxNmNlZmRmZWQ2ODIwZDJjNTY0NzYyMTk4ZTE0OGRhYzI5YmRiNGQyIHJlbGVhc2UyNy1tYWludAorODQ0NDQgMTZkOGE0ZTk0ZGQwODcyNDk2MjJhZjliM2RlYTg1ZjU1YzYwNWVjOCBweTNrCis4NDQ0NSAzM2NmYWEzMmM4ZTgwZTc1ZWM1OGJlOWRiMjViMjE4NjJhYzhjZWRmIHJlbGVhc2UyNy1tYWludAorODQ0NDYgOGRiZDMxNmJlYmRmOTg3MjUxZGNhMjJmZTJiNjA0NzRjMDllMmNiMCByZWxlYXNlMjctbWFpbnQKKzg0NDQ3IGQ1NmIzY2FmYjFlNjU1ZWZiODFjODU2ODg0NDllZGIyZTYwOTc5N2QgcHkzaworODQ0NDggYjY1ZDAzNzFhNzMxNThiNGI5NmU2MTdmMjgwODkwM2ZjNTk2MGUyZSBweTNrCis4NDQ0OSBiOGVlODA4NjNkNjNmYWI4MDdmZDdjMzlmNTlhOWNjY2JlYmEzYzU1IHB5M2sKKzg0NDUwIDdkMTc1MmQ2MjA1MGM5YTMzNjBmZTg0OTI2ZWIwOWMzYmNjMmZjOWYgcHkzaworODQ0NTEgNjMzMTY2ZDRmYzEyYWQ5MmE3ZDhjMWM3OWU4ZjNhYjdkMWVmMDRkNCByZWxlYXNlMzEtbWFpbnQKKzg0NDUyIDgzYTZmZmYzZjY4MzM0ZmQ3Y2JkYTRjMzE3ODFjMTAyNTExMzZkNWIgcHkzaworODQ0NTMgMTI3MDQ1MWY0NjA0OWQ3YTlkOTE2NmVjM2JjMDNiZDBiMTk0YWU4MyByZWxlYXNlMzEtbWFpbnQKKzg0NDU0IDM1Njk5ZjM4N2RhNmU3ZDJkNmRkNjc2YjE4YzY0ZWMwYTcyOTI0YTcgcmVsZWFzZTI3LW1haW50Cis4NDQ1NSA5OGYzMzdhNjk1N2MxM2M5MDhlZGEwYjllZDRkNzNlOTUyYjU4Yjg2IHB5M2sKKzg0NDU2IDcyNjQwZTcxMTM0NDE4YTcwMDY1YTc1NjM0YmMxZGU5ODQ3ZGE4NmUgcHkzaworODQ0NTggNWUzM2IyN2M3MWE4NjE3MjE5NzU5MzRlOGJmZTNjMDc1ZGYxNmIzZiBweTNrCis4NDQ1OSAyMDI3NDdkYWUzY2ZhZWI0ZDY4YjA4MTgxMTI0ZTAwMjYzMzQ4MWZmIHB5M2sKKzg0NDYyIGJhODdjYWVlY2I5MTRmN2IxODM2Njc0NDhjOTcwYTY4MzY3NWQ3NzcgcHkzaworODQ0NjMgYjdjYjI3NzczZTcyOTFmNWYwNjQ1MGI2YTAzNTZlMmUyZTZjMDVjMyByZWxlYXNlMzEtbWFpbnQKKzg0NDY0IDcwMDE5YzVjZjM1ZjhlYzdjYjNmZTI5MmMzN2M4ZGUzNjVkODdiOWEgcHkzaworODQ0NjUgOTg4NzE4ZTlmOTNkMTVlMmE5MzdhNmUxYzg2YzBkYjQyZmQ3ZmJjNiByZWxlYXNlMzEtbWFpbnQKKzg0NDY3IDA2ZTVmZDQ5NTllOGExZTQwNDA1ZjBkMmY3YjJjYjUwN2MwOTRlMDcgcHkzaworODQ0NjggMWY0NzIwNmQ1NzdmMDdhY2UzZDIxY2QxNTdhZWE0ZDIwMDhhNjk1NyBweTNrCis4NDQ2OSBmOGJhOTU1OGFkYmY5MTViYTJmOTIzNzAxNDJkMjhiYzViNDM5YjYyIHB5M2sKKzg0NDcwIDNmNzc2NGM0MGMwYmZiOTUyYTk1NWQ3N2M2MGE5NjllMGY2NDZiZTMgcHkzaworODQ0NzEgZGJjOTU3NjJjZjU4NjM1YzY1ZDE3MTVkMTE4ZWI3YjRhNzI2YTUwMiBweTNrCis4NDQ3MiA1MjRiNDQ0YTgwOTUwOTVhNmQ5Y2JhYzFiZTIwZTQ0MGQ1NTUzZGJmIHB5M2sKKzg0NDczIGU5MmFkYTY0MmRiZGZkYjcxN2QzM2M4YWIzOWRiZTc3YTEyMzllZGIgcmVsZWFzZTMxLW1haW50Cis4NDQ3NCA4OTVhZWI0NTk1YzJmNzBlNmFkNTA2MTdiNGZiYjJiYTFiMTk1ZTUwIHJlbGVhc2UyNy1tYWludAorODQ0NzUgNDcyZGNmNTBjYTcxYzg3ZmM4MzFiOTk5N2ZmYjc1NTAyZmJmZjJjMiBweTNrCis4NDQ3NiA1MzMwNWJhZWY1ODhkODU3Y2UxMGIwNjIyYzIxOGUzYzM0YTU1YzdmIHB5M2sKKzg0NDc3IDQwNTJkM2UyODY1YmY4YTFhZjQ3YWI0NzkxN2MwMGM5OTExODFjYWQgcHkzaworODQ0NzggNWU1NWU5NWQ1Yzc3NGI0ZmMyYzEyMzc1MTNmZDY1OWQyMjNkOWY0ZiBweTNrCis4NDQ3OSA2OGZkNDMwODU5YTQ5YzNhODM3ZTFlOGExMTc5NmE1NTExYzhhMjZhIHB5M2sKKzg0NDgwIGVhNmQwODJhOWNmODA4NjdjYzFiMzIwZjFmZjI1YWIxMDE5NzhkZjMgcHkzaworODQ0ODEgNDBlYjU5ZTJmMmQzNTA2ZmRlN2RhNWE3NWY5ZTIyNTkwOGEyNjE4OCBweTNrCis4NDQ4MiBlNWFlMDNlZjdmYzEzYzg1NzJlNjM0NGEzODQ3NDg2MWRhZmVhOTExIHB5M2sKKzg0NDgzIGRlOGQzZDc5MWU2YTdmNDFjYjg1YzNlODA5NmIwYWIwMDc2MmQ2YWUgcHkzaworODQ0ODQgMDMyNTRmYzgzOTAxMTYzZDNjNDkzYzRmNDBjN2QwNTgwZGQ3NjM2OCBweTNrCis4NDQ4NSBlOWNkMTVkNTM5ZTFhM2ZlZGEwMDVjYmI5ZWNiM2ZlZTI5NDVlMjcyIHB5M2sKKzg0NDg2IGIyYjI2MmM1ZGFhODYzMDczYTAwYzJiMGZmNDQ5YTA5MWVlNzIwMTYgcHkzaworODQ0ODcgYjcwZDMzZWVmZDk2MGU0ZDBjMmQ2YzM0OGJlMmQ1NjdmMjU5YjkyZSBweTNrCis4NDQ4OCAwMGM2OTU3Yzc3MTkwYjI5MWJkYmFjM2JhMzRmYzBhZTA5YjcwZTZmIHB5M2sKKzg0NDg5IDkwZWI0Yzk3M2Y1MmFmZjUxYTVmYTlmMTM1MjIzYjY0M2M4OTZjNzYgcHkzaworODQ0OTAgMGFmOTRlZTk5YTQ4NGJkYzI1MjFiM2QyYmE3MTE5NzQxZTU4NzQzMCByZWxlYXNlMzEtbWFpbnQKKzg0NDkxIDkxOTdiYWU2MTlhYTQwYjI1OTgyYTU0NGQ0MmNlMzQ3NDY4MWQ2YTggcmVsZWFzZTI3LW1haW50Cis4NDQ5MiBlZDQ1YTI2ZjY2NjRkYTcxOTg2MjM0YWJkZDU1MGQyNjIxYzcyNmQ3IHB5M2sKKzg0NDkzIDQzMzE5ZTI5MmQ2NGJhMTlhOTI4MDcyN2FmNzgyZGMzNmEwNWEzMGEgcmVsZWFzZTMxLW1haW50Cis4NDQ5NCA1OGI4MTAxZWFjMjM4ZTYwNTNhZDE4MjVhMTk2ZDNiZjY0ODBiNDlhIHJlbGVhc2UyNy1tYWludAorODQ0OTUgMGY2ZWU1OWMyYTc2M2E4MmE3NWFlZGU1OTUxM2I0MTk4OTdhM2VjOCBweTNrCis4NDQ5NiBkYWJjMTE1MTE2YmQ3NDhkMjExZWQ4M2ZmMGI5ZjIxODUwNzllNTVmIHB5M2sKKzg0NDk3IGQyYjhmMTEwMzIxMjRiYmIyNzIzY2Y3MjIyMzU2OWRjNmVmNTA5OTYgcHkzaworODQ0OTggZjk5NGU2ZmQwNjgwNjIxNDI0MjkyNmY2ODNlZDgwM2U2M2UzYzgwZiByZWxlYXNlMzEtbWFpbnQKKzg0NDk5IDhlY2UyOWM4YmJhMjhlZDVhNmUyNDFjNGQwZThiZTRkMTQ3MmRiMDggcmVsZWFzZTI3LW1haW50Cis4NDUwMCAxYjVlZTZlODQ1Y2RmMDE3MzdkODk1NmY5ZTc3ZjM2ZjVjOTI1NzA1IHB5M2sKKzg0NTAxIDcyNTIzMTIxMTI3MzI3YzAyMjA5NmQzMGU3YjI4YTRhNWE4OTQ5NWQgcHkzaworODQ1MDIgY2U1NDZhMWI5ZmVjMWY2MGJlZGIzZjMxNDZkMDZmMDk4ODA1Y2Q3ZCBweTNrCis4NDUwMyBhNDE1Y2Y5NGM3ZGE3ZjM1OGJjNDk1ZWY4YWU1ZDYzMTE2NmM4YjI3IHJlbGVhc2UzMS1tYWludAorODQ1MDQgNTk5N2FlMmVhYjM3MTkxNzg3NGI3M2QyNmEzMTMzYzdjM2EwYjI2MiBweTNrCis4NDUwNSBjM2FkODgzYjk0MGJlNGVlYWI3NTJiMGVhYmRlZjZkZjYwMDljMDA1IHB5M2sKKzg0NTA2IDc4ZWE0NDIyZGY0YzJjOGQ4MTNiZDM3YzU2MDc3MDU5ODBiZjZjYmQgcHkzaworODQ1MDcgMjNjZjU0MTg2ZjU2NTMyMDY5Y2Y4MzkzNzc0OWU4YThjODY5MDRhOSByZWxlYXNlMzEtbWFpbnQKKzg0NTA4IDk4MDgzZjg3NjQ1NTQ3MjYyZDk4MTYyN2M4YjA2NDFjZWRhZmMzNjIgcmVsZWFzZTI3LW1haW50Cis4NDUwOSA5NzIwODM2YWEzY2I4OTMxNTZkNDRjMzc3NjlhZDU3NGM5NTA4N2M3IHB5M2sKKzg0NTEwIDYxYzQ0NzkzMjM4ZDE3MTRlY2QwZjY5ZmRkNTFhOTA4YTI0ZmMyZjAgcHkzaworODQ1MTEgYjMyY2JmYTk2NzM5NGUzMzkyZWM0NGIwMWY1N2E4Mzg1YmJiYmViNyBweTNrCis4NDUxMiBjNzhlYjAxNmQxYzUxNDg2ZGE2MTFmNDA3OTU2NjFmNzE1ZDY3NzVlIHB5M2sKKzg0NTEzIGM0YjM0YjJhNWNjMGVlZWI1NzI1YWFkN2MwMDM3NzdkYzMwMTVkN2QgcHkzaworODQ1MTQgMGIwYmQ4MTAyODkxYmI5M2U2ZWFiZjYwNTUwYjYzYzYwMzc4NTEyNiBweTNrCis4NDUxNSA3YTM0ZGVmMzVkZTc0YmQ3MmZiNjVjMWFlY2UzYzI4Yjg2ZTA1NGNhIHB5M2sKKzg0NTE2IDNjMzY4NDlmMDYzOTdiNWExZjQ2MjA0Y2QzNTQ1NGI5MTFjNjczNWYgcHkzaworODQ1MTcgYThkNTRlODAyM2YyMWE2MmYzYjM2YmEzODJmMDRkYmJkYWMzNTc5YyBweTNrCis4NDUxOCA4YmIxNjJiMDE5MjZmNWFmOThiZjQ5OWJlYTNlNjg4NTFkOGRmODk2IHB5M2sKKzg0NTE5IDI2M2IxMDc3YWI5NzViM2RlZTA5ZTY2MDMyZWM2MGU5ODkzYzAyYzUgcHkzaworODQ1MjAgMGQ4NjE0MDc1NWYwZDQ5NTM5M2U4ZjY2MTAxNTVmZjliZGVlYThmZiBweTNrCis4NDUyMiA1NmRjMmE1YWYyMGExYWVkYmVlZTQ5MDljYWJkNmYwMTVkNTQ3OWYzIHB5M2sKKzg0NTIzIDYyMDk4NzUxZGE2N2I1ZWVmOWJiODViMjE1NzEyMmEyMmRjMDcxNGQgcHkzaworODQ1MjQgMTYxMTkxMjkzMjRkNDFmYWYzNDQ3YTM2OTMwMThmMDUzMjUyZWQ3NSBweTNrCis4NDUyNSA3ZDliNGUwMThjNjJlOTIzZGNlOTUyZWU2OGUwMGVmMmVhYjkxOWMwIHB5M2sKKzg0NTI4IDc4YzRkZGE3Y2RjNjM3MzdmYTI0ODdlMTUyNTFkZjFlOTVhMmI4YzAgcHkzaworODQ1MjkgNTEwNDhmNjI3NmNlODRhM2M5OTE5NTk0MWQwNTBmYmEyYzBlZmVkMyBweTNrCis4NDUzMCBkYzU4OTJmNzNlMDM2ZGY4NDYwY2RlYzAyY2Q3YTFjYmEyYzA1MmVkIHB5M2sKKzg0NTMxIDRmN2I1NmI3ODcyNTI1NjE3YzU2YjdiZmM4NDk3ZjJlMzBkMjFhNzEgcHkzaworODQ1MzIgYTc1ZTk4OTM3NTQyYmM1MzIzNDMyOWQwNmM0MjE1N2U3ZWUwY2M2NiBweTNrCis4NDUzMyBiMGFiODMyZjg5MjEyODE4ODJlNGUyMTdmYzBkMzMwOWEwOGZlNTMzIHB5M2sKKzg0NTM0IDc4MTRkYzlmMzFhMjVjOTM3N2VjNjZjNTNlMzE5YzI1YTY2NDFiNDIgcHkzaworODQ1MzUgN2UwZDg2NmNhODcxNDgyNGNiMmE5ZjhlNTRlZWJjODU5ODM4ZTc2OCBweTNrCis4NDUzNyA3YTdiNTMxYmNiNjRkMTI1ZGQzYmIwMWY0YjcwMzFhNzAwNDU5OGE1IHB5M2sKKzg0NTM4IDc4ODc5NzFkZGE0ODNiY2JmZjIxOWYxZWJhNTlkMzBmMGVlNDlmMWQgcHkzaworODQ1MzkgMjEzOTE2MDI4N2ExMWEyZDA2ZWFhYjE2MjJlYTkzMGUzMTExNTY0ZiBweTNrCis4NDU0MCA1NmQ0MzczY2VjYjczYzhiNDUxMjZiYTdiMDQ1YjNjN2IzZjk0YjBiIHB5M2sKKzg0NTQxIDFkMGQzM2MwNTE1ZWU4YmM2ZmZlNjc0ZDlhMWMyZWY2OWM5MTA1M2IgcHkzaworODQ1NDIgNWM5OWY4YzkwZTY2NDE2NTRhMzNkMzc3ZWYyMGJhMzNkODc4OTE5YSBweTNrCis4NDU0MyBjMzQ4OTI1NzViYzBlNGFmMTExMDA1MTAwMGY5NzZhMWNiNDMxMGNlIHJlbGVhc2UzMS1tYWludAorODQ1NDQgODdhYTYyYmQxNzE1NmU5ZTI4OGFkYzAyMThkNzNhZmFmYzMzMzU3YiBweTNrCis4NDU0NSA4ZWY2OGViZWMwZTFlMmU2YjE2OGZjMTI3ZjY3OGI1Y2E0OTdkODFmIHB5M2sKKzg0NTQ2IDY5Y2IwOWYyNjQyNDBjYTNjMzAzMTc2MGRmM2ExMzRkNjBmMjQ1NTAgcHkzaworODQ1NDcgZTU1OGFjNDI1YTUxODViZjFiNTYwODMxMTYyNGQwOTU2ZWYxMjYyNCBweTNrCis4NDU0OCAwNzEyMjVhZjY0YTNkNzA1NmIwZDUzNDZhMDBkZTk3YWMxMjhlMzY1IHB5M2sKKzg0NTQ5IDY1N2Y3OTUxOTliOWU3ZTM0OTEyN2VmZmMyZmZlMjk3NjM1ZTRmZDMgcHkzaworODQ1NTAgNjMyNGQyMzk2M2E3MTkwNDVjNTM0ZmNiMTEzYTQxZmQ2MmYyN2U5MiBweTNrCis4NDU1MSBkMzg5Mzc0NzFmODk4NGFjOTYwNWE5ZTU3YmFmYjIyYzcxZGM2MTcyIHB5M2sKKzg0NTUyIDM5YWFhMmE3ZmQ0YmY2ZWEyNTY1ZTQzY2QxNTgyYjQxNmIzM2RjZTYgcHkzaworODQ1NTMgMWQzNzRlNWJhMmYxMzJlYjk5YjdkNTVjNmRjNDExY2UyZWU3ZjYwOSBweTNrCis4NDU1NCA0OTQ0MWU4OGNjYzE0YWQ0OGZmYzFjMjFhMzY0ZDExNjFiNzY5NThlIHB5M2sKKzg0NTU1IGQ5MzljODBjNjY2YmQzNzM4YjQwNzc5OWUyNzZkNWZhYzQ4ZjMxMTEgcHkzaworODQ1NTYgMDYyYWI1MTQ3NDg3NDU5N2NlYjY1ZTEzYTM4NDQ3M2E5YTFhNzc3MiBweTNrCis4NDU1NyAwNDdhOWQ3Y2EyNDFkYzFiOGNmZjZiYmFjOGQwOTNmYjhjNDhkY2VmIHJlbGVhc2UzMS1tYWludAorODQ1NTggMmMyYTM4ZTBjZjMwNzY1NTFjYWM4NTc3ZDE2ZGVhZjRiMWI5YTMzMyByZWxlYXNlMjctbWFpbnQKKzg0NTU5IDliZGM1OTAxMjA3YjhjZDgwZjczYzc1ZGM3Y2M1ZWM3YmZiYTQyYTIgcHkzaworODQ1NjAgNGExNDU1ZDM2OGZmNWZmYWRjODE0ZjdlOWQ2YWJmNTVkNzNhMTJiMyByZWxlYXNlMjctbWFpbnQKKzg0NTYxIGY2ZGZkNmM1NjNlMTE1OGE0ODZjNmYzYTY0ZWRkYTUyZTdiOGY4YmUgcHkzaworODQ1NjIgMjE0MDU4MTJmMzEyNzBjZmZhNDYwZDdkYzQzNTU0ZWFiOGNjYWE1ZiBweTNrCis4NDU2MyAwYzBmMWQwZWI3N2U5ODBmNzBmYjQzZWNkODNkODY3MGJkNDU2ODU1IHB5M2sKKzg0NTY0IDU0MTMzODc5NTk1MDcxMTlhMTFmNjk5ZmI2NDg5YjNmZDE5MGVmMzkgcHkzaworODQ1NjUgZWYxNmI0Yjc5ZDU0N2Y2Mjk4OWYyMGE4ZTRjNGU0Yzk4Mzk5NjZlYSBweTNrCis4NDU2NiA2YThiNWE2MThlN2FlZjBjNGY0NmFlMjQ2MzQwMDBiZTZjYWVhY2EyIHB5M2sKKzg0NTY3IGIzMDYxMDViZjgzZGZhMjY1ZWZjMDI1YWNmOGE3ZTIxN2FiOTM5NzYgcHkzaworODQ1NjggMTI0N2ZhNzUxNzcyMWFkY2E3ZTUzNTQxYWIxNzM3MTBlY2E5YWNjYSBweTNrCis4NDU2OSBmYWFhYjVhNjU3ZWI1NDliMjE3ZGRiMGQ0YjJiM2IwMDljMTAxYTI2IHJlbGVhc2UzMS1tYWludAorODQ1NjkgMTY5MmMwYjYwMzE3NjQxNTYyNzNmMjA5Mzc3M2FlNzgzYjk1ODczZSByZWxlYXNlMjctbWFpbnQKKzg0NTY5IGNkOTE4YWM3YmQ1NTRjODk2ZjU5M2I5NmJiNTk1NGQyZmEyY2U0ODQgcHkzaworODQ1NzAgNTRiNzk2NGRkN2E5NWUzMDkwMjEwMjY2NTdmYmVmMGQzN2IzYzI4NiBweTNrCis4NDU3MSA1Njc4NzU5YTgwMDlhNzA3ZDg1NmI1MTkyNjU5ZDNmYWM3YmFjNjBjIHB5M2sKKzg0NTcyIDUzY2Q4ZWNkY2U4YWU2NzFhYjU5NjIzN2ZmNmQyYWY3OTU1NTliMjcgcmVsZWFzZTI3LW1haW50Cis4NDU3MyBiMzJmZGE5ZjcyZmY5NWQxNGQxZTBjYWNlZWEwZTFlNjQ2ZTQ5YmZkIHB5M2sKKzg0NTc0IDY1NjQyZjA4NWM1NWM5NDVhOWJiMDUzMGE0OTBiMjkyMGQ0MThlY2MgcHkzaworODQ1NzUgMTFiYTYzOTdlM2E0ZmU0NzQ3YWUxMTU2YTA3YzE4NmY4ZDEyNzE0YyBweTNrCis4NDU3NiBjMmY4NDE4YTBlMTQ2MTM5MWRmNjEyYzVmZDIzODg3MzIzNDdlMmM2IHB5M2sKKzg0NTc3IGUwN2M0NDgzYWQzYjZmYjE1MTVkNzdjODkwY2MyZDkxMGU4NWQ2NDAgcHkzaworODQ1NzggOWNlZDdmMmYyMGIzZjFkNzNhYzczYzE5ZGMxOTEwNThlNmYyZGRmZCBweTNrCis4NDU3OSA5NGUxZjIzNmM4OGQ3NzkzZjZiYjE3YzRjYzllMzJmMzA1N2QzNDJiIHB5M2sKKzg0NTgwIDZiYTIwYjkwMzlhZTY5OTAyOGY5ODI0MGY5MWEzYTQ4YTA2ODYxNzggcHkzaworODQ1ODEgZTgzYWYxNDFkZmZkYWE4ZjU1YTI3ZWMxNmM0NDAyMzk2ZmE4NThjMyBweTNrCis4NDU4MiAxYTFlNzI1NGQ5NjU1NjdmYTRkMWU2YWMxZGUxNWQyM2Y4YjExOTA4IHB5M2sKKzg0NTgzIGU0ZGUyMTc2Zjk4ZTMwZjRjNGU4YjBhYzdiNWM0MjU5YTBiZmY4ZjAgcmVsZWFzZTI3LW1haW50Cis4NDU4NCA0YWM4YWU3ZTgwMjJjNDRlY2NlNzFlYjkwMWUxZGYzMDY5YTFhZTY5IHB5M2sKKzg0NTg1IGFkZmExZTQ4ODczNGUyY2NlNTcyYjhjMjUxNTQ4ZGRlOTljODYxYTQgcmVsZWFzZTI3LW1haW50Cis4NDU4NiBjMjE5OTE3NWFkYThkZTgxZjJjZTFmYWNhNWJkYTY1ZmM4OTMyMWMxIHJlbGVhc2UzMS1tYWludAorODQ1ODcgNjA5NWVhOWRjZmY0MDA5NTAyMGNlZDgzNTI2NDU5YWU4NTM4YjZjMCBweTNrCis4NDU4OCAxYzIyYzFlNDUzZDRhMWNjZTc4NTM4NGM4Mzc4ZGYxMGQyZTFhMjQ0IHB5M2sKKzg0NTg5IDg0YzI0ZGIxMzY3N2M3NDAyMTBhZjJhNDZjODMzNzRlMWI1YThhOGYgcHkzaworODQ1OTAgM2U1YTg5Mzc2ZGY1NDQwNGZjZjUxZjA5NDU5YjA1NGMwNGQyNTRlYSByZWxlYXNlMzEtbWFpbnQKKzg0NTkxIDc0MzJlNTA4ZWI2NmE5ZTBjOGFkYzQ0NjZlNWEwMjVhNzhmN2NjODcgcmVsZWFzZTI3LW1haW50Cis4NDU5MiA0YTNkZGI4NjJhNzJjYWZkZjVhYTgzMWIwZTVlMGZmMThmODExOGQ1IHB5M2sKKzg0NTkzIDVkZDFlNTk0ZDkxOTVlYjUxMjkwODUxYTAxYTNhOGQxNzkwMTgxMWQgcmVsZWFzZTMxLW1haW50Cis4NDU5NCA0YjY4ZDQ3MzQ4YTRkYWI3ODU0NTYyMjkwODdhMDY2MjQ3NzljNGE2IHJlbGVhc2UyNy1tYWludAorODQ1OTUgNzcwYzNlYzA1Njg1NmI0NDg0YmIzNDYyNzgyMzk0ZTQyZDNjM2E1MCBweTNrCis4NDU5NiA4OWZlNTE3OWFlYzVmMDBjNTgyZjk5MTkzOWFhMDE0OTFmZGZkNzRlIHB5M2sKKzg0NTk3IDkxYzdmNDRlNGJlYTlkY2FmYTE4M2E0MmViY2Q2MDNiMDMyOGVlY2MgcHkzaworODQ1OTggYjJmN2NmOWM2Nzc2MzU5ZjI3NTE2MGZhZDE1M2Q1ODhlMjE3MzE3ZiBweTNrCis4NDU5OSA2M2NlZWYwNDUzZjQwNmFiZDIwZjljNGY1ZjIyMTljN2ViMzg0MmI1IHB5M2sKKzg0NjAwIDI0MDBmNTVlYTMxMjUzMDg4ODg4NWUwY2Y4Y2Y4OWMwMjAyNWZhNjIgcmVsZWFzZTMxLW1haW50Cis4NDYwMSA1ZDczYjAzNjU3M2I3ODdmNTAyMDE1NmE2ZGQwMzVmYTU2ODI4NGVlIHB5M2sKKzg0NjAyIGQ2ZDRiODQ2NGI4Y2Y2ZWIxMDI4NGRlMTVhZjliYmMwMTM2YzEyNmMgcHkzaworODQ2MDMgYWY0MTRiMjlkNDY3ODcxM2MyNGY5M2RiYjFhYTk3Zjk4Nzg4MzUxYSByZWxlYXNlMjctbWFpbnQKKzg0NjA0IGVmMGEwN2Q1NGRjMTdkMzBiODQ5NTA2MjE2ZDQ0MmQyMWZmYWUxYjYgcHkzaworODQ2MDUgNGM2NGU2ODhmNjY1ZWZkNjI1MDQ3MTE0Zjg3NjQ3MDQ3M2Q5MDU0MSByZWxlYXNlMzEtbWFpbnQKKzg0NjA2IGQwMDhmNDA2ZGM5OGM5ZDFjM2I3ZGRkNGQ2NTFjNjllNTE0YzY2NjggcmVsZWFzZTI3LW1haW50Cis4NDYwNyBjMmQ2ZjBjZjkyNmEyZjNlM2ZhMDBhMTY2MTJkOTkwZDNlMWE1YjVkIHB5M2sKKzg0NjA4IDk2MGRlMDEwMDgxYjc2MzEwM2E5NTc0YWQwYTAyZGI4OGQ4MDA1OTkgcHkzaworODQ2MDkgMzg0YWVlNjI3M2U4MDViNjk2ZjAzM2E1ZWZlZGQ0MmQ2OWM4NWYzZCByZWxlYXNlMzEtbWFpbnQKKzg0NjEwIDAzYTZmNzgzOWQ2ZDM1MzJmZWU2YmMzODEzMTE2NjEyM2E3ZjJlYjggcmVsZWFzZTI3LW1haW50Cis4NDYxMSA1NThmMzM4ZTEzMjA4MTE3N2VjNmIwYmUzNWE5NzY3YzQyOTI3YWFjIHB5M2sKKzg0NjEyIGUwNjIzYjZiNDNiNjM3YTMyMTA1YzI5MmY4ZDI0YWZkZTljOGY2OWUgcmVsZWFzZTMxLW1haW50Cis4NDYxMyBiYWYxYTQ4MmI1N2Q3NjZmN2M1ZTY1Nzk1MTU2NTQ1OTRhMTE0YjA3IHJlbGVhc2UyNy1tYWludAorODQ2MTQgODkyM2UxNDkzYTM0NDkzNmVjYjdhOGM5NzMwNzNkZjM1NGY4ZDUxMiBweTNrCis4NDYxNSBkMjdkNGJkNDg4ZGM4Mzk0NjRlZTBjNTJlMDI0ZTZiOGVhMWU0NTU0IHJlbGVhc2UzMS1tYWludAorODQ2MTYgMGZkYTgyYjFiZmJiYzUzOGRhNjY5OWJlNWNjNDJkMTdjN2FjY2Y0ZSByZWxlYXNlMjctbWFpbnQKKzg0NjE3IGQ1MzMxNzEyYjUwOWQ1N2Y0MjVlMWEwZDc0MDRjOTE3NTRjNTllMDAgcHkzaworODQ2MTkgNzlhMTRkMzY4NTQwMWMzNTE5ZDg5MTg1YWRjZWE2ZmIwNzZjY2E1ZiBweTNrCis4NDYyMCBlM2VkZDJmOWJiNmFjMzA2YzE2NGIxYzAzNTc4ZDRhZTYyMGUxMDhmIHB5M2sKKzg0NjIxIGU2MGVmMTc1NjFkY2VjNDI2YjIyMWVhMmIyMmMwOTJjYzFmM2UxMmIgcmVsZWFzZTI3LW1haW50Cis4NDYyMiBhMGI0YjJkZmQ5ZDVhODEzY2M0NTA5Yzc0MDIxYzJlM2QxZWMyMTRmIHJlbGVhc2UyNy1tYWludAorODQ2MjMgODUxNjcyNDk4ZmU1MzRkYjZlNjU1N2JmMTE5NWExNjM2MGJhYzgwZCBweTNrCis4NDYyNCBjNDdmZjNhNTNhNGE1MWFhZTAwNmYzYTdhYjI2ZjNlZjhiMWRiYTY3IHJlbGVhc2UzMS1tYWludAorODQ2MjUgNTc1ODQ0NDI3YTk1Y2ZjMTQxNGZmMDA0NmRhODQ5YWQ2NzMyNGM4NiByZWxlYXNlMjctbWFpbnQKKzg0NjI2IGFhNjZkZjc3MmUyMzc4NDdhMzM5ZTFhM2VkZTQ2ZjkxNWJhODRhYjQgcmVsZWFzZTI3LW1haW50Cis4NDYyNyBmOGY2NmViY2Q1YjFlYjcxYTNjODJhZmIxZWFiNjk5MWVhYzVjNzBkIHJlbGVhc2UyNy1tYWludAorODQ2MjggZGM1OTg2ZDBlNWE0NDMxNmMyNzJjNzgzYWQxYTNhYjRjYWVjZGYzMCByZWxlYXNlMzEtbWFpbnQKKzg0NjI5IGE0Y2ZkNWI1ZGY5NjY5NzUzMWM5ZTg1MzhmOGZlYjY2NzBiMjg0MjUgcHkzaworODQ2MzAgNDViMjNmM2Y3ZjZiOWVjY2Q0NGVkMjM5NTk4NmVlMGZkNDg3M2NhMiByZWxlYXNlMzEtbWFpbnQKKzg0NjMxIDI5N2Y2NmNiMzc2NDRhNDUyNzA4NzQ5YTQwMzY2MmFkOGQ3ODBlMWIgcHkzaworODQ2MzIgYjE4NjVjYTdiNjVjMTQ2Y2UwZmM1YTJiZTRlMWEyYmMzZDkyZTM1NyBweTNrCis4NDYzMyA3YzJlYjViNmNjNThjNjRiYmUwNzExNmQ4Zjk4NWUyZDY5YTdiZTMxIHB5M2sKKzg0NjM0IDg2MjdjM2VjOTcxMTI2ZjQwOTQ3OTFiZThkNTNmMGQ2NTFjYTg3NTMgcHkzaworODQ2MzUgYTJhZWRkYzE5YjY2YjVjMzhlNTIxOWFjMzFiNmU2ZTllMTI3YjhkMSBweTNrCis4NDYzNiBiMWNmM2Y3ZjMwNGNmMDg0ZGY0ZTE5OWUwMjJjZjdkZDdhM2E1MDk4IHB5M2sKKzg0NjM3IDEzMjIyNjZmOTYxMTVhZDUyN2MwNGVlNjExMGExZmJhNWJmM2M3MDEgcmVsZWFzZTI3LW1haW50Cis4NDYzOCA0NDFlOTRjZTQwODcxNmZhZDY3NWRkMDJhMTVhYzNmYjQ4OWI0MWQwIHB5M2sKKzg0NjM5IGNhZjBiNGIwNTY5ZWFkMDcyMjdiNjE0MjA3ZjJjYjhkMjU4NDk4MWEgcHkzaworODQ2NDAgYTU4YmY2NjcyNWY4NmYwYzBmODg0ZGJkYWNiMjcxN2Q1ZWFmYTFmYyBweTNrCis4NDY0MSBmOGM4OTZhZDc4N2Y4ZDA4YjM3MjVlNjRiNzFhZWIwMDUyNmI5ZmQ4IHB5M2sKKzg0NjQyIDJjNTQ3MjEwZjhjOWY5MmFlMWZhZGI3MjcwYzc3YjE2ZWMxYzI0OGEgcHkzaworODQ2NDMgNDYyZTBiZTNiNmM0NmY2ZjdmZTZiOTBhZTkxMTI1NzEyZDM3OGNiMiBweTNrCis4NDY0NCBjODg1NTBjYTBmYWZiNjRhZTU5OWNhZDA2NDA1M2E4ZTZjZjU4ZjRkIHB5M2sKKzg0NjQ1IDYzNjE5YjQyNWVjYWEzOTE0ZmZhNmNlOWQzOWNiMGVlNzFmY2MyMTkgcHkzaworODQ2NDYgZmVhODZjNWUzMzg1ODkwYTUzZTM0MGExNzBkNWExZjg0OWYwZDcxNiBweTNrCis4NDY0NyA3MWIyNjRlMWJiNzE2NDQ3NzkxMWIxOGM1ZDVlNmM2NThmZGYwZThiIHB5M2sKKzg0NjQ4IDk2NTllOGM0MDA3OWIyOWYyNmU1YmRkNDJiNzRlMjE4ZGJkZTdhMWIgcHkzaworODQ2NDkgYmE1NDA5NmI3YTQyODkwZWZhYjliOTE5Y2JkMGI3Njc2NjA0MTBiOCBweTNrCis4NDY1MCAzOGNhNjM1MTgwODVmNTc0ZTQwMTMyMDRjZDUyODM0MTc4NDYwODY3IHB5M2sKKzg0NjUxIGE1MWY0NjdmNWUxZTgwYjAwYTU5NDNiNDM1Njc2NjdiODMzMTdkZGQgcmVsZWFzZTMxLW1haW50Cis4NDY1MiBkMTNjMmY5MGMxNjlhYTc2YTJmMDY3NDQ3OTdjY2Q5OWE5NDQ4Mjg3IHJlbGVhc2UyNy1tYWludAorODQ2NTMgMDI3ZjgxNTc5YjRhMGFjMDFmNTYyZTVkYTY3MjU3YzE0YWE4MjU3OCBweTNrCis4NDY1NCBkNDkyNzE1NGI3N2I4ZjIzNjEwZGYxOWUxNDE2Y2JhYjY5OTM2ODU2IHJlbGVhc2UzMS1tYWludAorODQ2NTUgZmM3NmU4YzYxN2RjNDdjNzc5ZDBjMzk0OTc4YjI4YWIxZTI1MzJmMiBweTNrCis4NDY1NiBhZTQ3MDc5NDljYjI0NjA5MWZiYjYyZTYxOTA0ODNkNjIyNWU2ZjJiIHJlbGVhc2UzMS1tYWludAorODQ2NTcgMWI3ZWE0M2U1Yzc5NjdiNTUzNmU0Y2UzN2NlYzA5YWE1NDZiNTZiOSBweTNrCis4NDY1OCA2ZjE0ZjAyMzU5ZTgwYWIzOGZjZDI3NDVkYmMyN2FkMTZhNDBhMTU1IHB5M2sKKzg0NjU5IDg0MjE3YjJkOGMwYzA2Y2Q2OThmYTYwYzUyNmVlNDQyODdmZDlmMmUgcHkzaworODQ2NjAgYmVlNjgzY2FlNzFmYzc5ZGU5MGY4YjY4NmU0NjZkZWFmNzQ3MTBhMSByZWxlYXNlMzEtbWFpbnQKKzg0NjYxIGYxMjA3ZDlhOWIwN2MxMzZjYzkxMjJjMzFkODIxMmE3YzNkNzAwYzIgcmVsZWFzZTI3LW1haW50Cis4NDY2MiAyZGE1ZWNkMjI0ZmZlN2ZlNzQ5Y2M3YWYzYzBmNDYyOWI5NWUwZTZlIHJlbGVhc2UyNy1tYWludAorODQ2NjMgNWFiYWNkMzUxNDg1MWRhMjc0YTFkYTdhY2VlOGE1YjcxMmIxN2NiYSByZWxlYXNlMjctbWFpbnQKKzg0NjY0IGIzMDQzMzZlMGUzNWI0NzhkNTBkOWMxN2FiYjZiZGUzNGJiNWRlNTUgcHkzaworODQ2NjUgZWRkMDU2YzRhNDBkMjIyNTYwZDY5MTIyZWQ3MWRhODVhZmJiYTU1ZCByZWxlYXNlMjctbWFpbnQKKzg0NjY2IGI4ZTUxMjVlNmZiZDczNmIxNDM5MTM5ZWE0MTAzZWU2ZDRjNDc2ODMgcHkzaworODQ2NjcgNDU3YWE4ZGE0OTBhODc3ZmVhYzA1MmFmMDQ0MzZkNDcxMDA0ZDYyNyByZWxlYXNlMjctbWFpbnQKKzg0NjY4IGMyMGRlOTZhNDM1YWM2MDk1MDRlMjI3OTllMDZlYTk1NmQ2YjE0MjcgcmVsZWFzZTMxLW1haW50Cis4NDY2OSA5ZmFhODBkMDExMWYxZjMyZWViNDczZGE5ZTVkNTFlYjIyOWQyMWZkIHB5M2sKKzg0NjcwIGIzMTRhZGM5YmNkZWVhZGQwMWVhMzMwYjBhYzM3YmYyOTdmODhjNTMgcmVsZWFzZTMxLW1haW50Cis4NDY3MSAyZWVhODlkMDkzZTIxNDIxMDhhYWIwNzQwZjMwNzUwYWQ0NTg4MGVlIHB5M2sKKzg0NjcyIGM2NjY5ZjRiZjhjNTRlZGM1NTNjY2JjYzMxN2M2OGQwYWUzOGE5MGEgcHkzaworODQ2NzMgZDBmOWFmY2IwNjE5ZWViMDhlMjc1ZDU0YmY4MDUzODI4ZjY2YzAzMSBweTNrCis4NDY3NCAzNzhlMTU3YWMwMjVmYzk5YWVlYTk0YjYzMzI0ODlkNWFiNWVkOTk3IHB5M2sKKzg0Njc1IGI0M2Q2M2JmMGY3OGYxMDQ1NDNhNjhmMjk4OTFkZGEzZjdiODRlMzggcmVsZWFzZTMxLW1haW50Cis4NDY3NiAyMWFlNDA0NmU0NzEwMWQ5MmM2M2FkYmY4YzQ3ZWE2NWIxOWNjMTk4IHJlbGVhc2UyNy1tYWludAorODQ2NzcgN2UyY2ViNWQyOGUzMzkzMmZlMjE1NTY3MDg4NTBlNjE3ZjQ1N2YxNyBweTNrCis4NDY3OCAzOTBhY2Y1MTM0ZTk0YWE0YzIyYmQ2YzM4Mzc5ZDIxNWZlNTdlOGU4IHJlbGVhc2UzMS1tYWludAorODQ2NzkgNWM0YmU2M2NhYjRhMjJlMTkwNDhmNWY4YzNlYTIxODRjMmUzMDkxOCBweTNrCis4NDY4MCA5MzM5NzM4Zjg1MDRmODgzNzIwOWZkMmQ1Njk3YjIzNzY0YzQ1MmUyIHB5M2sKKzg0NjgxIDE2YTQyZDVmMjIwOWMzY2ExMzllYjg0ZTI3YTBjMzA0ZjYzMGFlNjcgcHkzaworODQ2ODIgOWYwZDY5Y2FlZDNiMmRlMTY4NThmYzA4ZmM1ODc3ZDc2ZDgyNzBkOCByZWxlYXNlMzEtbWFpbnQKKzg0NjgzIGUyNzAzMGUwY2NlZGE4ZTg4Nzk5ODdiODkzOTdhNjViMjY0NjA2MzggcmVsZWFzZTI3LW1haW50Cis4NDY4NCBjYWVjYjZlYmM4M2MyYTU2YTBmYzhhYzBiZDU2OTQ3YjIzMGQwMDlkIHB5M2sKKzg0Njg1IDI1Y2MyMjZkYzliZDRhYjBlMjRlNDgyNDZhZDczOWZmMDJjNDgyMjEgcHkzaworODQ2ODYgMjUyODk1ZDQ5MTU3MGQ1YTI3NDUyODA5YjU4MjcxN2JlNDA5YjI0ZCBweTNrCis4NDY4NyA5OTlkN2QyMTJmMTc5MmUwNGNkZjNhOGZjNjliMTE4MjU2MzY1MTNmIHB5M2sKKzg0Njg4IDU4MzA3OWRlMzdlMTM5MGE4MjM4ZDMxNDUxNmQyZTZiNTMwZTU0NjUgcHkzaworODQ2ODkgOTI2NTc1MmExYzgzZDlhNTE5ZDFiMTIwODkzODQ3ZWNmNWU2YzQxYyBweTNrCis4NDY5MCBlODI3YjliOGE3YjRhNWVlYTJjY2JhY2JlMGRhMGRhYWE1MDFkNTdhIHB5M2sKKzg0NjkxIDExNjdlMzkzYWE0ZDZhNGVlMGFhMzhjNzYzYzhhNjk5OTAzMTBkMjQgcmVsZWFzZTI3LW1haW50Cis4NDY5MiA2YWNjYzJjNjVjYjg0NzgwMWViN2RjMjQ3MTBlZDM5ZDBhODcyY2E4IHB5M2sKKzg0NjkzIDU2ODQ0YjcxNmNkNzU2MGFjMTAwMmZkNzBjMTYxMmU2MzRjNzZiNGQgcHkzaworODQ2OTQgNTg2YTQxMWNhYzdjNzBmODg4NmM4Yzc1MGNjZjliYjI3NDEyMGM4YiBweTNrCis4NDY5NSA0NzBhNTM2MDU3MGNjMDFlN2U1OWVlNDJkMmIzZDk1OGE4NjAwYTZmIHB5M2sKKzg0Njk2IGE2MDhmZTFlODZmMDA4MjI0NDdhMGRiNTRmNTMxMzk4MjA0MzA2YmQgcHkzaworODQ2OTcgZjMxZTBjN2MwMmUzMzNkNzkyMGUyMzNhNjg2NmY4Mjk5ZjRhMDBiMyBweTNrCis4NDY5OCBlMDgwZjExZmNhMTliMGRkMjBmYTlkMDc4NGJlMWRmYjRjNmIxNGIyIHB5M2sKKzg0Njk5IDE3NjQ3OTZlOWVjYTJkMzU1ZTRkZjdjMGNjZDMyYTZkNTg0OTIxOTUgcHkzaworODQ3MDAgZmU0N2VhODk3MmViZTZiYTNmODhiNjI1NmFjOTFkNzlhNWQ1NzNiMCBweTNrCis4NDcwMSA4ODdlZjM5OTc2ZDM5ZGQ4NWFmZDg0MTEyMWQyMjVlZGIyZTI2MzhhIHB5M2sKKzg0NzAyIGVmYzk5YTIwN2JiZTdkMmQ2MjhlYjY2NjIzNmIxY2JmYWE2NTkzN2QgcmVsZWFzZTMxLW1haW50Cis4NDcwMyAyMGEyMTUzYjBkZGE4OTVkNGIwYTRjMWJhZGEwZGM1NGE2NTNkNWZiIHB5M2sKKzg0NzA0IDFjZmFkNTVkZTViZDY2MGEyY2M3Mjk2ZWQ2MWVkZjNjZDU2ZjEyZTggcHkzaworODQ3MDUgNWM5YzA0YzI5YjJjMGJmYThjZWFlN2JkMzczZjIzYjQyNGRjNmUxNCBweTNrCis4NDcwNiBlYzkyYTlmZDc3ODA2ZjBhNzkxM2JlNzA5Mzg2YmRkNDRmNDI3OWJlIHB5M2sKKzg0NzA3IGY3MmZkMmNkYTM0NDJmNTk1MDQyYzQ0YTQwN2YwZWY3Mjc2Yjk2NzEgcHkzaworODQ3MDggY2I5MTMwN2Y3MDcyZWJhYzk0ZTZhYmUxOTkxODY3MDBhZTgzZmFlMyByZWxlYXNlMjctbWFpbnQKKzg0NzA5IGUwYTdiNjk2ODU1ZjQwYzk0OTMyZTk4N2NhNTQ1MTZjNjhiYzcyMmIgcmVsZWFzZTI3LW1haW50Cis4NDcwOSA1MjFlYjdmZWU2N2E3ODFjYWI1ZWQxZjUzOGRjYWM5N2JhNTc5NGQyIHB5M2sKKzg0NzEwIDFiZTg3NGNlNGVhZWYzMDQ0MjRjZThlY2YzOGE5ZDk3NmIyZmRhZGIgcHkzaworODQ3MTEgN2NmM2JmMDE1MGE0ZDVjNjAyNGNjNzA0NmQzNzdkMGQ1ZTJhOGU1NiBweTNrCis4NDcxMiAwMDQyNTIwOWM0NmVlMjU1N2E3NmFmYjhlYmNkMGQ2YzM2NDlkNmQwIHJlbGVhc2UzMS1tYWludAorODQ3MTMgNmViNGFmYmU3N2U4NTQ4MGMzNzEwODRmMWZiMjg3YTc5N2Q0OGVlYSByZWxlYXNlMjctbWFpbnQKKzg0NzE0IGQ5MDVjOTRmOWFlMWQxYWVkYzYyNzM0MTYxNWYxZWZmOWE5MDc0YTQgcHkzaworODQ3MTUgOGY4MWVkOGFjYmIwMjQ0NGVhNzQxYTY2NWU2NDhhNDNmY2E4YjQ0OCByZWxlYXNlMzEtbWFpbnQKKzg0NzE2IDYwMWEwZGVmZDE1YmIyYjk5MmFmMTQxMGY1Y2M3YTMxZGZmZDAwMDMgcmVsZWFzZTMxLW1haW50Cis4NDcxNyA3YzhmMzQ1OWQ5YWY4YTc2YzMyMTY0NzZiZWViODYzMDUwNjk0NmY3IHB5M2sKKzg0NzE4IDE3YThmNzA0ZjA3ZDg5NDJiNTdiNTJhZDI1NTI2MDE1NmZlNDBjYjcgcmVsZWFzZTMxLW1haW50Cis4NDcxOSBmZDY3MzdhYTg4ZGM0NmRmYTNjZTc5YTQzNjRhNzM1MWU2N2NiNzQyIHB5M2sKKzg0NzIwIDUzMzg1OGEyOTg5YTJmYjhkN2Q2OGEwMWEwMzgzOGVlMDM1YTEyMzIgcmVsZWFzZTMxLW1haW50Cis4NDcyMSBjNGU3MjMzZjU0OGRiZGU4ZmViNjY3M2VhNDM5NTk5YzM5M2UyYmZmIHJlbGVhc2UyNy1tYWludAorODQ3MjIgYjAwNzAwMWZjYTcxMGM1YzA2MGVlMTMzYWFlOGNjZTRjYjg5MDQzZiByZWxlYXNlMjctbWFpbnQKKzg0NzIzIGEzNTEwODYxMDVjNTNjZTE0MzNmNjZkNDdiZDkwM2U1ZjcyNjQ2ZTAgcmVsZWFzZTMxLW1haW50Cis4NDcyNCA1ZjNhNjQ1NjRjNTFhMTI4NjFiMGFlMWYxZGZlYjQxNDg4ZjM2MTkzIHB5M2sKKzg0NzI1IDU2NzE0ZTljNjNlZmI4NGM5YzU3MmRlZTk0NTYwYmExMzgyYWVkNTMgcmVsZWFzZTI3LW1haW50Cis4NDcyNiBjMzViNDJhOGRhM2ZiODZkODcyMTQ4MjA0ZjVkYTQ0ZTUyN2U5NjIzIHB5M2sKKzg0NzI3IGYzYjFlZWExMWNlMTk1YmIzN2MxOTQ2ZTFkOWQ2ZmEyMjEwNmVhYmIgcHkzaworODQ3MjggZjQzMjBlMTI0YjFmYjFmYjcwNWU4YjEzZTFjNDM3ZjBkODZjYzQyOCBweTNrCis4NDcyOSBiMGM5YTgyZTBlYzVhMzM3ZWE2NGYwMjliMmFkMzcyMWIzODFmMGJkIHJlbGVhc2UzMS1tYWludAorODQ3MzAgODUyYmIwNTIxNTZhODEwOWM4MWI1MTBlMDJmYjI5OTQ3MGNlMjBjMyBweTNrCis4NDczMSBlZDQzZWJkYTM1ZjJlNWRmMzk4NjRkYzM5NWI3Y2YzOGEyZjdhMmNmIHB5M2sKKzg0NzMyIDYzOTM5YWZhZjk4NGI0YTc5MGNmZWQ0YzUwN2VjMzgwN2EwNGVjYjcgcmVsZWFzZTMxLW1haW50Cis4NDczMyBlZjZmMDM5NzFmYjM0ODcwY2QxOWMwMjU3OWM5Y2QwNDkxOWUyMDg1IHJlbGVhc2UzMS1tYWludAorODQ3MzUgMzgwOGUzNzlmYzNjZTkzYTc3ODY5NGZhOTNiMjhiMWRiYmM0NDVmYSBweTNrCis4NDczNiAzNzc0ZjRkZWY3NTRmMWY4YTZiNWE5YWQ5MzEwMjk3ODVmMTVjNzJmIHJlbGVhc2UzMS1tYWludAorODQ3MzcgZmI5MGYyZmYxNzY0YjljZTgyNjk5NmVlYThkNmE5ZDllYTcxNjJhNCBweTNrCis4NDczOCA2N2VkNmQ0ZjcwYjFhNjZmYjkyNmZhYWFkNmE3YmIyNWY4YjBiMDYzIHJlbGVhc2UzMS1tYWludAorODQ3MzkgN2FjMGU2MDdjNGQ2NjJhM2JkNjQ3YzUyNzczZWMzN2MwZjM0ODQxOCByZWxlYXNlMjctbWFpbnQKKzg0NzQwIGQyZTU4MTk4OTMzYmU0OGJmMWI5ZmQxYmFlODE4MzExNmRiMjU3NTggcmVsZWFzZTI3LW1haW50Cis4NDc0MSA4ODY5YjFiODU0MzQ4YzQwOTZmY2VhZGNlMzg3N2U3Mzk0NDg5YWJmIHB5M2sKKzg0NzQyIDYzYmRhNzg5ZDczYjYzZjdhYTgzZTczNmUyMzQwOGY3OTFhNmY1NWMgcmVsZWFzZTMxLW1haW50Cis4NDc0MyBmYTk1MTBjNzk2NDgxYTBkOTQ2NTg5ODdkMzQ4MTk3MzRjZjU0Y2IxIHB5M2sKKzg0NzQ0IGI3ZTI0NGYzNGNjODBkMDNiNzUxYTY3MjU1MWE4NDFjMmQ4MmZlODcgcHkzaworODQ3NDUgNzZiOGRhZGEwNmNiZTZhOTMyNTAwYjg2NDk2NjcwM2QyYmUwODQwNiByZWxlYXNlMzEtbWFpbnQKKzg0NzQ2IDRiOWM4NTI2ZWE0Y2I3MGNlNDgwODA4ZjJhNjNiYzUzNDYwYWNlOTYgcmVsZWFzZTI3LW1haW50Cis4NDc0NyA2ZDI4MmI1OGQ5MGFhMmZkMzZhODEzMDk4NjU1OGQ2NzI5OWQ0ZTdjIHB5M2sKKzg0NzQ4IDJiYjRkZDJhZDViNTA3MDdhOGE5ZTE0MjFlMzIyZTQ2MmViOGY1OGMgcHkzaworODQ3NDkgN2FiNTkyMzNlODNmNjliNWIzNzFmZjcxMTg4OTE2MjA5Y2U5NWJhMiBweTNrCis4NDc1MCA5MjEwMjk1MDdhZDdkNDRjNDc1OWM5MDYwYmY5ZjNlM2Q1YzAzZmJjIHB5M2sKKzg0NzUxIGMxYjcwOTA3NmJmNjNhMWQxYjc1MjIyOWE2Nzk1MTVhN2I4NTk0N2MgcHkzaworODQ3NTIgOWNkYmE2ODY0ZWI2MGNhMmE1OTM0NDkxZDE5NWM5NTk4ZDk3MTY1OSBweTNrCis4NDc1MyBhM2VlODc3ZmVkODliNWVkMzdjY2I5OGQzMGM4NWQxZWVkMTEwZjUxIHB5M2sKKzg0NzU0IGIxODZhZmEzNzBlNmQxMDU1ZTUxY2ZiZGMyMTQ2ZTI1M2I2NDY3ZDEgcHkzaworODQ3NTUgY2ZhMTE5YzNlNDNjZmU4NzJkZDU1M2Q1MDUzOGJhNTIwNTI5NTU0MCBweTNrCis4NDc1NiBlZTk2N2YxYzczMWI3ZDAzNmZmMDQzMTVkMDUwMmNiZjg4NjE1MDI0IHB5M2sKKzg0NzU3IDBkZTgxNjQ3NTUzYmEwNGFiNzE0MTczNmU0YWYzMTc1MjBjOTFlNDggcmVsZWFzZTI3LW1haW50Cis4NDc1OCA5MDY0ZmM1N2QzZmE5MDdkMTEwMWZmNjEzMWJiYTUwNDlhYWRlYzZiIHJlbGVhc2UzMS1tYWludAorODQ3NTkgMWU4OWI1ZWUwMmY4NWVmOWIyNzA4Y2E0NDZhOWExNjQxODU2NjYwNiBweTNrCis4NDc2MCA1ODRiMWVkYTExNDE0NzYzYjBhZmFkMGI1YWIzODI5NWMzNjZjOTMwIHB5M2sKKzg0NzYxIDMxNGQ0MTZmNGQyM2UyOGM2NTZkZDU3NzAxZTk5NDMyNmE2YjU1MGIgcmVsZWFzZTMxLW1haW50Cis4NDc2MiBiMWU3NjZjNzlhMzY3NzQ5YzliZTNlYWZiNzIxY2VkNTUyODYyZGI5IHB5M2sKKzg0NzYzIGFkZDY2NDkyNGFlOTkxMWMwNGQ3ZjFmYzM5NTQ4YzdjM2UxYWY2NDYgcHkzaworODQ3NjQgYjBkMjZlOGQ4YTMzMGFhNTY0MjAzN2JiMTg5YTU3NGRlMmM1Y2FiYSByZWxlYXNlMjctbWFpbnQKKzg0NzY1IDJmODM3MDUzOGZmYmIxN2MzYWNhZDllNjRjZGJkMTBlYWVhODNjYzUgcHkzaworODQ3NjYgMjhlNmE0MWM1YmEwYjA0MmRjOGZkYjkwOTg2M2RhNTY4NzJiYmE2MyByZWxlYXNlMjctbWFpbnQKKzg0NzY3IDgyZGI4MGI2MGI4N2JiYWJmM2FkZjU4N2FlNDY1OGRkNzYyMTMxYjYgcmVsZWFzZTMxLW1haW50Cis4NDc2OCBkMGZjMzU3ODc0Njc0Njk0MzJjNDFlZDcyYjgyN2NkNzc3Yzk2NTllIHJlbGVhc2UyNy1tYWludAorODQ3NjkgMWU5MjJkNzFjZTRiZjZhMTg5NzNmNTMzN2Y4NmMzNGVmNzU4YWYxZCByZWxlYXNlMzEtbWFpbnQKKzg0NzcwIGJiYThmYTg4ZDE5YTIxYjkzODI5ZjVlZGMzYTE5NjE2NTg2N2M4NzQgcmVsZWFzZTI3LW1haW50Cis4NDc3MSBhNTlhZTkzODkxMzE5MzY1ODA2YWMwOWM1YzQ3MThiYzE4ZTAxYjIzIHJlbGVhc2UyNy1tYWludAorODQ3NzIgMjc0YTBiZjQ2ODcxZWYzYTU5MWYyYjkzYTMxM2VmYzgyMDY5ZGQzYiByZWxlYXNlMjctbWFpbnQKKzg0NzczIDQ0MTk5YWE4OTMyYjdkMTRkMDNhMGUwMzE4YTliODA1YTkwZGJiZDIgcmVsZWFzZTI3LW1haW50Cis4NDc3NCA1NTdlMjUzN2M5YWUyMzUzOGQ5ZGRiNGVhMWViNDliZGM0NTlkZmU4IHB5M2sKKzg0Nzc2IDMzMGQ3OWZjYjNkM2Q1ODYyOGY4Y2VhYjM1NTgxNTNjOTY1NGE0YWQgcHkzaworODQ3NzcgMGYzYjhmOTI4ZWMxM2Q4ZjkxZWM0OTBlNWI1MjRmZTkwYmE3ZmFhYyByZWxlYXNlMjctbWFpbnQKKzg0Nzc4IDNkMjJlZTY1ZTQwNzVhOWIzNmIzNzFjMmE0MzgxNTMzMWU0NWI0NjggcmVsZWFzZTI3LW1haW50Cis4NDc3OSAyYWQ4ZDdjYmNlYWJiMDE3MjA1OTEyODJmMTM1Nzc1YjQ1ZTViYmU4IHJlbGVhc2UyNy1tYWludAorODQ3ODAgZWExMjFmODczMWE3OGJiNTU1Y2E0MjUwYmFlZDRlZmQwYzhjZjNmMyBweTNrCis4NDc4MSA2ZmYwZWYxZmNiM2NkOThlNTFiMzM1ODc0YTg2ODJhYWU4ZWFhNGRmIHB5M2sKKzg0NzgyIDIwNWZmMmIwMmM3NzEyMGVlMjBiMTc3ZGMzYjc2OGJlNzQ2NDdmNjggcmVsZWFzZTI3LW1haW50Cis4NDc4MyA3ZGJmYzdlZjM5ZjJiNjM2ZDMwYTg3NjQ1MTMxM2Q5NzdjMThkODM5IHJlbGVhc2UzMS1tYWludAorODQ3ODQgNTU3MzU1ZTQ2YmE2MTlkZTUzNzYyZjc1MzBlYmQ0ZWQ3ZjllYTVjZiBweTNrCis4NDc4NSA3N2M4OWM4OWY2MGUxMTIyODlmZTc5YzQzZDk3YmVlMjU3YmJiOWU1IHB5M2sKKzg0Nzg2IDJkMDg0YWQ0NjhkYmQwMGM5ODkwY2E4MTQ5NjAyNzdkZjdlMmUzMzkgcHkzaworODQ3ODcgODIzNGQyNmIxM2MxOWVmNTY5ZDA0ODE4MThiYzBmZDA5NTNmYzk0NCByZWxlYXNlMjctbWFpbnQKKzg0Nzg4IDkxYTAwYjZiMTI4YmVkMGQwNGVjODNlNzk1ZmNhMmUwYjM2ZmE0ZDEgcHkzaworODQ3ODkgZWE4NDgzZjllNTVhYTY2MDkzMzIwYzJmMTQyMmE4NjU0Y2MwMTk4NyBweTNrCis4NDc5MCA5ZjU1ZmFhYTMxOTNhY2M2NzI0MmMzMjJlOWM2MzNlNDc4N2M3NmM2IHB5M2sKKzg0NzkxIGUyZGVjOWMwZDEzY2ZjYWJjMTA3YWM4NGJjNDNkOGZjYzkyYjExMzUgcHkzaworODQ3OTIgY2ZhZjBmN2VlMGMyYzkyZWMzMTA3YmQyYmRkNjI2Y2I1ZTE0N2YxOCBweTNrCis4NDc5MyBhNjBkZWVjYWMyNDI0ZWZkMGEzZWQwNGJjM2E1MDNjMDljOTg5ZDIyIHJlbGVhc2UyNy1tYWludAorODQ3OTQgM2EyOTYzYjZmNDQzZTg1MDE5MDhmYzcxY2YwMDgwM2JhNDU4MTk4OSBweTNrCis4NDc5NSBmYmU1ZDA4YTk4NjYxMzk5YmY2NTcxZTkyZThiYzllNjc3YTdlYTMwIHB5M2sKKzg0Nzk2IDY5ZWQ1ZWNiNTAyNmFkZGNiNTIyMzczZTdhZjVhZmI2ZmM2YTZmMWUgcHkzaworODQ3OTcgNDRlNDNiZWQ2NzRhNTRlNTkxMzg0MTg4MTFlMjQxNDgwYTllZjYxMyBweTNrCis4NDc5OCBlNWYwZmY3ZDdhMDZlZTkwYjNjNmRiOTkzYTlkYTVhZTFjYTgyYzhkIHB5M2sKKzg0Nzk5IDRhNGZiZTAyMjdhYTQ5NTI1ZmJhYTJiNWUzZDVkMDY2ZWFhZjM3YjMgcHkzaworODQ4MDAgMmQ4ZTQwODU5MzUxMmVjYzBkNWQwMTg1MGE4NjEzZTI4N2Q3NDJkOCByZWxlYXNlMjctbWFpbnQKKzg0ODAxIDIwYzQ1Y2RhZDljZjFlOGQ0MWU2YzVjOTIwNzZiOGFjNTEyMWFmOGMgcmVsZWFzZTMxLW1haW50Cis4NDgwMiBiMjc0YTkwYThlMmJkZmUwOWEwYTAwNTQzYzhjMzlkMDMwZWIxMzZiIHJlbGVhc2UyNy1tYWludAorODQ4MDMgYTQyZGI4ZjU0YmExNzA2ZDMxOGFkNzZlNWJiZmU3M2NhNDJlODExZiBweTNrCis4NDgwNCAxMjNmMzUxNGI0NWI1MjdiZjI2MjEwNzU1NzFlNDczNTJkYmIxNTdkIHJlbGVhc2UzMS1tYWludAorODQ4MDUgZGI5ZTYyYzI2NWZmNTBlNTkzY2IyZTQ2N2NkZjY1N2RjMmJlZGUxYiByZWxlYXNlMjctbWFpbnQKKzg0ODA2IDdmOTlhYzUzMDE0YTU0MjgxZjk5YmVkMWM5MmRlMmY0NzIxNTQ4MWEgcmVsZWFzZTI3LW1haW50Cis4NDgwNyAwZTk2ZjlmYTg0YTI0YTY5ZjVhMWNhYTRjODEzNGVmZmNhZmUyZTkzIHB5M2sKKzg0ODA4IGZlNWY5Y2M0MDc2ZWJiNzk2YmU3ZGFmYzljNWJlNDA4YTZlNTA1MmEgcmVsZWFzZTI3LW1haW50Cis4NDgwOSA4MGQxYzc3MzRkZjI1N2U0N2E5YzYxYmI4NGFhMTg4OTQ0N2Q5YTM4IHJlbGVhc2UzMS1tYWludAorODQ4MTAgMGUyOWFlNTFkOWJjNmFlMDNhOTdmMjQ2MTM0ZmFjZjA3Y2MxODU2OSBweTNrCis4NDgxMSA5MDVlZTllM2RhNmRlMDcxYTgxZDU3NWJjYTk2YjhhNTQ5ZTU3YzhlIHJlbGVhc2UzMS1tYWludAorODQ4MTIgZWRlZDBjYWVlNjIxMzMxMDAyZTlhZTU4YmRiZmRkZDAyYzljN2Q3OSByZWxlYXNlMjctbWFpbnQKKzg0ODEzIDUzNDg1M2JhOGNkMzZhYjVmMmNlZWM4YWM3ZTg2NWVkNWE5MWZhZjggcHkzaworODQ4MTQgMmJmMmE3YTRlMTdkNjQ1MmJlNzQwNTY2Njk2YzIwNjdjYjMwOTRmNyBweTNrCis4NDgxNSBkN2FlMWI5ZjEwYWI3YjY4MDMzZDg4NzZlOGQ2MjZiNTExNjNkZTQzIHJlbGVhc2UzMS1tYWludAorODQ4MTYgMmI5ZGVhMmEyZmZmZDYyOTEzMTZjNGFkOGExOWRkOTg2NDhhZDcwYiByZWxlYXNlMjctbWFpbnQKKzg0ODE3IDA3MWJkOGYzNTM1YWMwZGZjZWI0MDRhMjYzODBkNDk3OWJmMTI5ZDggcmVsZWFzZTMxLW1haW50Cis4NDgxOCAzOTc3ZGMzNDlhZTc5NDMwYTA3YjVlOTYwNGQzY2Y1YjFlMzc2NjRiIHB5M2sKKzg0ODE5IDkxNTFkNWZhYWUzZDZhODcyNGE1Yjc1YmQ3MjE2NWJiNjUzOWVmZWQgcHkzaworODQ4MjAgYjgxZThlM2ZhNWJiZTY3NmRiZGEwODRmY2VjOWJhYTBlMDQ4M2U5ZCBweTNrCis4NDgyMSBmNjQzZDUzYzUxYmQ4YjE3MmNlYjE5ODhlYmQ4YTUwNzc0MGJiMTlhIHB5M2sKKzg0ODIyIGU2MzNlM2E2YjI1NTY4ZmEwZWRiMzk1NDEyNzllZDM5ZDkzYjBjMGYgcHkzaworODQ4MjMgYjY5NTFiMDUyMTdiMjFhYWM2ODc3MGIzY2UzZjYyZjc2ZjQ1M2IzYSBweTNrCis4NDgyNCAzNTg0OGEzYjdkOGE1YWZiZDJhZDgyNTBiZjg2NGNjYzM0ZDU1MmNhIHJlbGVhc2UzMS1tYWludAorODQ4MjUgN2VmNWM2YmU3MjMyOTdmZjc3MjZkYzQzZDIwNzQyYWNhNGE4MTM4NiBweTNrCis4NDgyNiA5YWZmYjRkNmU5N2UyZDJlYWVlM2U3NWUwZjQyNTY0ZDE0NWYwYTM3IHB5M2sKKzg0ODI3IGM3NzlkZTY0NDA1YTkwM2Q0MThhZmMzMTdjYTY2NzBlM2YxNzljNmQgcHkzaworODQ4MjggZDg4ZmRmNWM1YjM3NjQyZTE0YjlmZDhmYzM4MGNlNWQzOGU0MGUyZSBweTNrCis4NDgyOSBiZWQ5NTBjYmQwYzAxZTUzMGRiNjkxYzBjNmJmMmJmNzgwNTgzYTQwIHB5M2sKKzg0ODMwIDViMDE4N2MwZDAwMjQ4MTJjZGMyMGYzY2RlODQ3Nzc2YTlhMWI1YjggcHkzaworODQ4MzEgYmNlOTc5M2ZiNTQ1MGVkOTFiNTVhYTQxZGRmZjc5Y2M1ZmVhOWJmMiByZWxlYXNlMjctbWFpbnQKKzg0ODMyIGE5N2QxMmU1NDY1Zjc5NTI5NzRkNGQwZWM4MDliYjBlMDUyODFiZTMgcmVsZWFzZTMxLW1haW50Cis4NDgzMyA2MWRmYzc5NjU3ZDczN2QyYzA3MmNlY2MwZmFlMDJkMWQyMGFlM2ZjIHJlbGVhc2UzMS1tYWludAorODQ4MzQgYzBkMzE2Nzc3M2E5NzMyMzhiYTY4ZDc5OWExYTIwNjA0MTYzMjBhYyByZWxlYXNlMjctbWFpbnQKKzg0ODM1IGJlYjlkMTc2NTAzZTQ2MmE0NTNiYTdmOTdlZjk3MmNlNjM5ZTFhYjMgcmVsZWFzZTI3LW1haW50Cis4NDgzNiBhZDYzZjk2NjkyM2M0MTAzNDE2M2FhYmYwYWZjODBjNzI2NjVmOGQ4IHB5M2sKKzg0ODM3IDNlZGMyNjM4MGU0OTZhYjBmM2I4NmFiYjI3Y2I1ZjY1MDQ4ZWFhZGEgcmVsZWFzZTMxLW1haW50Cis4NDgzOCAxZGViZmY0MmVhNDZkMTEzZWMwMGUwMmUxY2E0MDA2NDI5MWNiYTcyIHB5M2sKKzg0ODM5IGYyZWMwMTE1ZjhiMjAzZTUxZDQ3ODM1YzBjOTNhZTNhMzBlNzc1NmEgcHkzaworODQ4NDAgYTE2YjY3ZDRmMzAzMTZkMTBjYmM0MTMxZjZjM2ZlYWQyODRiZjg1YSBweTNrCis4NDg0MSBiNTc3NGIyN2IzZGJkOWFlZDJmODgxNDg3MDI1ZWZjYTM0OGRjNjkwIHB5M2sKKzg0ODQzIDk4NTA3MmNkMzFkMDNiODJmYmM4YjU0NTk3YTcxZThlNTkxNjBmMjEgcHkzaworODQ4NDQgZDY1N2U4YTYwMTI2NjQ5Y2Y5NTM2YzM2MmM0ZGZlYzg3MzczNWYzNCBweTNrCis4NDg0NiBkMTc3MWI0Y2QwY2JhODMyYWI3YTE0NDczNjY4ODUzODg2NzRlNWM3IHJlbGVhc2UyNy1tYWludAorODQ4NDcgMWJlOTUwZGNiYjFhNWY4MWFlY2YyYmI0ZmVhNGNhNTgzYTFkZDcyYyBweTNrCis4NDg0OCAyMzI0MTY3ZWMwMWQzYWEyMGY2MzUzMWU1YzQzOTY4OTlkZmQ1YzIwIHJlbGVhc2UzMS1tYWludAorODQ4NDkgM2YwMDA0NzM2ZDI4MzljYTQ0NjQ0MGM0YjBlNGMyN2U3N2NhOGY3YyBweTNrCis4NDg1MSBmZDVjNGNmZWQ3Y2QwYzNhZGIwYjM3YTViNjNkYmMzNDA5YmM2NzIxIHB5M2sKKzg0ODUyIGExNzdkZGRlNDVkMWI3NGExNjc3OWViZWU2ZGY0ZWUyMjE2MGZmZDQgcHkzaworODQ4NTYgNTc2MWY4ZTM1MmVjMjFmZGQ2ZTc2M2Q4ZDAyYzA2ZmY1NTgzMGQ4NyBweTNrCis4NDg1NyA2ODlhODEzZjRhZmMwZGQ5ZDk2NmJkMDg3M2M2ZmZkNGU1MGEwNWZhIHB5M2sKKzg0ODU4IGE4ODY5YWY1ZDVkMGNhNjc1MjY5ZWY1MWVmNGJlMTlmMWQ2ZGQ5MjYgcmVsZWFzZTI3LW1haW50Cis4NDg1OCA4MjU4OWE4ODllMDcwZmY3NzcxMWM3ZmNlNjdhNzFlMDI0ZWUwZWEwIHB5M2sKKzg0ODU5IGM0MzhmOTYzNDZlOTBmMWFiZWRmN2IzMTQxYWJkOTcxZWRhNTg5NjMgcmVsZWFzZTI3LW1haW50Cis4NDg1OSBlM2MzYzMwZjE0MDk4MDg4YTRkMWY5OGJlNWFhOGI3ZmQzOWNkOGExIHB5M2sKKzg0ODYwIGZhNDdhZjczYTY5MWUwMDZiZjcxMDVkN2U2NTQxMTM1NDc4MjYxYzEgcmVsZWFzZTI3LW1haW50Cis4NDg2MSBjYTM1NDJhZGVlMGRhZWJjMmNhZDZhNjQ3ZjY5YmNkZTE4ODZkMDQyIHB5M2sKKzg0ODYyIGUwNjQxZGJkYzhmNjJhN2U5YWI2Mzc1NWVhODQ3MzZiNmMxN2IzZjkgcmVsZWFzZTI3LW1haW50Cis4NDg2MyBlMzlhZDVkYzExY2ZlNGQ3NDAwNjNiMTk3ZGE5M2FjNzJjMjhhODE4IHJlbGVhc2UzMS1tYWludAorODQ4NjQgZGM0MjJkYWE1ZGFkZDBiZmM1NDI4Nzg0NDJkYTUxZGRjZTc3NDVjMCBweTNrCis4NDg2NSBhNDMxYzQ4YWQ0MmIxYTE5ODMxYWE1YzFkNDVhNGM4OTk2ZTRhODE3IHB5M2sKKzg0ODY2IGY3N2NiOGQ3NmU5OTE1N2E0MDIwM2E0NGRlYjZmNTFiMjdkYWRkNjIgcHkzaworODQ4NjcgY2QyZWY3NTI4NzM2NWI2ZTlhNTU0Y2UyY2NkNmNkOTI1MTc0OGZkYyBweTNrCis4NDg2OCA5MzhkODQyNTdkMTEwMjYwZGNjMTI2NjY1NmNhODFkN2MwYzZiNDljIHJlbGVhc2UyNy1tYWludAorODQ4NjkgYzg3ZWQ2ZjU4YjgzMDk4ODFmMTE0MjAwZTg3ZTFiNWNkMjVmMjk3MCBweTNrCis4NDg3MCBkZjM5YjBiYzQxMDY3M2I1ODE2ODJjNmVjMWU0OTNiMTc2ZWIyNzk5IHB5M2sKKzg0ODcxIDAwNjQ5MGYwZTcxZmQ2NmVjNTFkM2E0ZDQ0YzIxZjMxNmRiZmFiYjggcHkzaworODQ4NzIgMDFkYmI4Mjc3MTc4ODk2MjVmYWE1MDc4ZjY4MTJlNzdlOWM2NmIzZSByZWxlYXNlMzEtbWFpbnQKKzg0ODczIDE1MTgxNzE3NzUxNDljN2NhZGIxYzUzMzJhYzM0NWRiNDE4NDEyNGEgcmVsZWFzZTI3LW1haW50Cis4NDg3NCBkMDYwNDc0ZTBlMjQ1ODU2NDFkYTQ4ZmZmYWVjOTlmNmJhMWRkMzdmIHB5M2sKKzg0ODc1IDJmMjgwNzI3YTMwN2Y2ZWQ5NmM3MGNmNDg1ZWU1NjE3NjJjMTY4OTcgcHkzaworODQ4NzYgMjg2N2FlOTAyZmEzMTQ3MzY0NjQzZmJhYjgwZjVhNGIyY2I4YjUwMSBweTNrCis4NDg3NyBkMzkwNDAwZDcxZjdiOTZlYzIzMWE0YzFmODI2ODI4NzZmNmEzNjJjIHJlbGVhc2UyNy1tYWludAorODQ4NzggYjQ5YWVlMzg3NzliYzBhOWRiMjY3MTU4Y2RjMzM0ZWJmOTkxZTYwZCBweTNrCis4NDg3OSA0YWEyYTIwYWMzMzViZjA1YTVhZDVmNWUyOWU4Y2QzMDgwZGVjY2Q1IHJlbGVhc2UyNy1tYWludAorODQ4ODAgMjllYWQ1NGMwNWFkODc3YWMxYWY4NWExMGQ4NGY4YWU5ZTI4ZTEzYSByZWxlYXNlMzEtbWFpbnQKKzg0ODgxIDJkYzFkMTg3ZWUwNGFlM2VkM2QxZGFmNzc0OWQxNjE5ZjhjNDAwOTMgcmVsZWFzZTI3LW1haW50Cis4NDg4MiA0NDlkMTA0ZTE4MzYyNzNhZWFlNWQ4Yjc2MGNlMTNlZDY4NWU0MmI0IHB5M2sKKzg0ODgzIDQ5ODFjZjBhOWNhNGNmOWUxNzdlOTNlN2EyNzNjNmM4MmEwNTZlMDQgcHkzaworODQ4ODQgNzc0MjVmMmQ3ZDc2NTk3NTc2NDkwODMzODE1ODlmNTExMzFhOGE2ZSByZWxlYXNlMzEtbWFpbnQKKzg0ODg1IDA0YjQ1ZDQ1MTA1OWY1MGYxZWZhZjMwM2Y2ZDk4N2Q3MzUyOGI2OWYgcmVsZWFzZTI3LW1haW50Cis4NDg4NiA5MjkxYWEzZDhkMzU3MjM3NzUyYjRiNDllM2JjYmU0ZjJlZjI2YzFiIHJlbGVhc2UzMS1tYWludAorODQ4ODcgZjNkY2IzMTRjM2UzMDJlNTU0MjJmODZjNDZlYzc2YTNhZTYwNmExNyBweTNrCis4NDg4OCA3MWI5NTk0MmMzYTQ5Yjg4OTIyZjkxODg4NjMwYjZjYmI4Y2MzNmVkIHB5M2sKKzg0ODg5IDlkYzg0NTIyNDQ4NjEyOTgxMjg5YTI1N2ViY2NjM2ExOTY0MTRhNTYgcHkzaworODQ4OTAgYjY5ODQyYjUwZTI2Mzg4MjhmMWIzNGIzNDZjODVjYTIyODhiM2I3OSByZWxlYXNlMjctbWFpbnQKKzg0ODkxIDY1ZjVlMmMzZjJkZDE5MTk4MGZmYTZkM2ZmYzk5ZGVkZTU3NDUwMmIgcmVsZWFzZTMxLW1haW50Cis4NDg5MiA5MjU4ODk4NmI3OGJkMjhhZGIzZDAyYzk0ODVmZTFmOTlhNDcwODkwIHB5M2sKKzg0ODkzIGU1Mjk0Y2EyN2FiZTJkMTIzMDQwYTNlM2QzOTZjN2RjZTE5OGIzYjQgcHkzaworODQ4OTQgZjdhNzZmYzk3YjIyMGRmMzI1OWM0ZDJlMTMzMDZhOWViMTMyMjRkNiByZWxlYXNlMzEtbWFpbnQKKzg0ODk1IDQ1MTEzOTMyMmExMzExOTVkNzAwMzFiYjMxNDEzMWI5MDdkY2I3ODQgcHkzaworODQ4OTYgY2Q1YjlhNzBhNjg1YmI3MzM5ODMzOWJkZTE4Y2MwODM2OWVhOTZkOCByZWxlYXNlMjctbWFpbnQKKzg0ODk3IDUwMWFlOTRlNWJmNjE1ODQwZGJjZjAyZWNmZDdiZWM2NTIzYjQyMjcgcHkzaworODQ4OTggNDRjODljNTk5M2M4M2ExODk3N2QzNmM4ZGUwYTIxMjQ1OWIxNjQ4NyByZWxlYXNlMjctbWFpbnQKKzg0ODk5IDBhY2U5ZWVmMTIwYmUxZjFmMWE0OTU0MmMwYTIzNzdkMmQ4ZDc2ODYgcHkzaworODQ5MDAgYTQ4ZTAzMWQ4MTc4ZmI4MGNhMGE5ZWMzMzZmY2FhZDE1YTc5YWIwMiByZWxlYXNlMzEtbWFpbnQKKzg0OTAxIDc4NWE5NmZjZDM0MGRmMmQ1OTRmYTUxN2FjNDFlMGFmNGVlYTFlZTUgcmVsZWFzZTI3LW1haW50Cis4NDkwMiBiMjllODU1NjAxNWNiNzMxMGExODU4NzBlNmZjOWFlMjIxMTQyNDE3IHB5M2sKKzg0OTAzIGEwNTQzMzA2MDk0MTE4NmUxOTk0YWFkYjA2ZWFhNjk1ZWQ5ODViYTAgcHkzaworODQ5MDQgNTM0YWY5MWYzODQ1NDA2MmZlMjZkYzcxNzgyZmRlZWQ2M2YzZGNmMCByZWxlYXNlMjctbWFpbnQKKzg0OTA1IDkzM2Q0YjViN2YzZDY4Yjc4NDU1YjkxOWE1YmJkM2ZjNzRmOTYwNWQgcHkzaworODQ5MDYgNzYwNTFlYjA3NDIyYzc4OGYzNWQzMmM5OGEyMjAwNzRlYWQ1ZDdkYyBweTNrCis4NDkwNyA4ZGZiZjY2ZjM2OWNmNWEyZTdhYTU2MmU3ZDg0ODhlMTc5ZTc5MzRiIHB5M2sKKzg0OTA4IGRkMzA4MGI4MGRkYTkxOTQ1NTdkY2YyMzRhNzliOTQxYmE3YmFkMzAgcHkzaworODQ5MDkgNDM3NGIxZWFlYWQxNzc2ZjViOTJkNjhiZDI4NjQ3MjFkODg2NGI5ZSBweTNrCis4NDkxMCAxN2VjOWVkNTAxMzNiOGJhZWRkYTYwZTI4MzIzYzY3NjRkYTE0NjIzIHB5M2sKKzg0OTExIDAzNjU4NTM4MmRlMTliYjk3ZjE1MTBjMDJhNzExNmY1ZjU2YTQwYTcgcHkzaworODQ5MTIgNGY0YmRkZGFjMjViMjNiNjUzMjRiNmRiMzdkODk0N2M5Njc3YmViNCBweTNrCis4NDkxMyA3NmZkNjhiYmExYTg4NWE0NWYwNzQ3MWRhYmJmYWZkNjJkZjgyZTI2IHB5M2sKKzg0OTE0IDhlNDI4YjhlN2Q4MTU4NmUyM2I1ZjkyZjljYTliMThkYWYxNGY0NDkgcHkzaworODQ5MTUgNmM3Nzc1N2QwODgxMTVhMDFjZGQyOTMxZjAwMmQ3MDY4N2EyZTMwMiBweTNrCis4NDkxNiBiNTU3MjUzNTk4YjFmOWNkMzgwMjAzM2IwMWY5ZDdiZTNlNzA0MTg4IHB5M2sKKzg0OTE3IGVjMDI4MDY3MDQ5ZGE2N2M3NTFkMjc5ODU4ZGI3MWQ3YmY2ZDQwZDYgcHkzaworODQ5MTggMmNkZGY4NzhlMzk1NTUzYjZmYWU5Nzk5NzIzOGExZTk1NDVkNGU2MiBweTNrCis4NDkxOSBjZjg4MTcxNDk5YjVhNzg1MGJlZWU3YWViZGE0MmZlZWRjMTU2NDUzIHB5M2sKKzg0OTIwIDNhNGFmYWE5NmFjMzMyM2MwZGM0NTczMTMxOTFmYWIwNGU1NzdlNmIgcHkzaworODQ5MjEgNDg2YzJkNmE3NTQ2NWQwMWY2MTZiYTE2YWM4YTUwZDZhYzdiMjlkNSBweTNrCis4NDkyMiBhODhkZmYyN2JlMWY3YjJlYjA5ZDA5ODA0YmY0ZDlmYTE0OWIyNDk3IHB5M2sKKzg0OTIzIGYzNWJkMDhjMTJhZWYyYzQ2YjRkYjc5YThjZmE3ZmRlOWJhZmMzOTkgcmVsZWFzZTMxLW1haW50Cis4NDkyNCA2YmQyNzZmNWQxYmNlNzk5Njc1ZjhjODExZjFiODI3OTgzZTJiMGQzIHJlbGVhc2UyNy1tYWludAorODQ5MjUgOTZkYjY0MDY3NGNiN2FhYTUzZWYwOTQxZDk2Mjc3ZjU0OTI5YmUyMCBweTNrCis4NDkyNiAzY2FjZTEyODlkZTQ4OGJhY2Y2MjBiYTE0ZWQ0NGM4NzVmNTE5NGI2IHB5M2sKKzg0OTI3IDM4YjBkNWQwZGQzMGU1MGE3MzAzZTRmNDNkNjVlZmRiMWNlZmFhNDUgcHkzaworODQ5MjggMGQwZjFkYjYzNDMxM2YzNjMxM2UxNGI5OWEzYjUyY2I2OGY4ZDg1YiBweTNrCis4NDkyOSAwMGU0Y2UzMWQ0MDQwZDVjMzRiNjU3ZGQxNzljZWE1OTY1NjgyM2QxIHB5M2sKKzg0OTMwIGE2YWY5YzdjOGU2N2U4ZTQ2Yzc5NzgwOWI4MTNjNzY4NTBhYzg4ZTggcHkzaworODQ5MzEgODYxYzM1Y2VmN2FhOWU1MjI2ZDRjYzJlYjFlOWViNTI5YTFjOTg0OCBweTNrCis4NDkzMiAyYzczZTZjZTZhNzU2ODQ2OGM3MzgzNmExYzcyNjNjZWJiMTY2ODIyIHJlbGVhc2UyNy1tYWludAorODQ5MzMgYmYwMTFlMzBmYzA3NjI3YjUyOGFiOGNmMTViODU0ZDQ5NzhhNmRkMSBweTNrCis4NDkzNCA0N2IxMGU0YTUxZDdlOGQ0YzBkZmY3NjRlNDhlYzJmYTc2NzNiYmU3IHJlbGVhc2UzMS1tYWludAorODQ5MzUgMzY0ZDZlZjdjY2FlNGNjMjQxNzdlZTQ1OGQ3ZDNjOTk5YzNkNDdjYSByZWxlYXNlMjctbWFpbnQKKzg0OTM2IGU5MDQyNzk4NDQ0MmNmNWI5ODliZGIzMDRjMGE1ZTMzZmFkMTVlNTcgcHkzaworODQ5MzcgNjAzNjc5ZDg1MzI5MzA4OTJhMmQ4ODdmMDU2ZjA4ODk0N2VlNjg5OSBweTNrCis4NDkzOCA3ZDQ1ZjUzOWRiOTdjODExZjJjNTc1ZjBlNmE0OTExMzdlNDBiYTUxIHB5M2sKKzg0OTM5IGIxZWM0OGI3ZmZkZmZlYjUyYWZkZjJiMjc1ZTg2NTJlZTc2MTMzYTIgcmVsZWFzZTI3LW1haW50Cis4NDk0MCBkOGJiOThlNDJjMmZmY2EzOGU4ZmE3YzY4ZmYzZTE1YWRjZGZjNTQ5IHJlbGVhc2UzMS1tYWludAorODQ5NDEgZjhjZTlmMzU5ZjNhNjRmOTFkZDI1YzZlZjExYTNhODM5NjBmZTVlNiBweTNrCis4NDk0MiBhMGUwY2I4OTNlMzFlMzIwY2FlYzc4MWFiNWVjMmQ3ODZjZWQzYzFkIHJlbGVhc2UyNy1tYWludAorODQ5NDMgMzM1OWQyZTBhOTY3MTcwOWJmZDYwY2UzZDAyNmQ3N2I0NWM1YmJlYSByZWxlYXNlMzEtbWFpbnQKKzg0OTQ0IGU1OWExODgyNThiMzQ4ODM4ZmY3ZDYyNDRjMDhmM2QwYjI1OTNlMzQgcHkzaworODQ5NDUgZDZkNjU1ZmRkZjIyYWNlY2RjNjljMTVjM2ViMzdjMmYyNTU3YjZkOCBweTNrCis4NDk0NiA0ODg5YTgxNmVlYzE2OWQ4YWE5NWRjZDJlYWI3NjMzZjU2MzgwYjE2IHB5M2sKKzg0OTQ3IGIxZjUxMzRiMDA0OWJkNjhlYWQ5OTVkNTg1YzJjYTMxZjNmYzk1YWUgcmVsZWFzZTMxLW1haW50Cis4NDk0OCA0ZWMxMjExNTZlZTllZjQ5MjcwZmY0MWQ1YzgzYzJiYzk4NGI4ZjBlIHJlbGVhc2UyNy1tYWludAorODQ5NDkgYTRlZThhNWM2ODQzNzI0NDVkODYwZWJhZjMwNTAzMzY4ZDU0YmY2MiBweTNrCis4NDk1MCA5YWQ2OWZjNGFlZjc1ZDFjMzAxZjg1ZTQwN2NhZDk4ZDg2NGQ5MGRmIHB5M2sKKzg0OTUxIDhjZWViNTlmNDU1MGFmNTFkYTQ3NDUwOGY2OGU5YTFmYmE3MjMxNjIgcmVsZWFzZTI3LW1haW50Cis4NDk1MiAwOGJkMWEwOGM2MmY3NWU0ZDYzOTNhZWRmNTM1MzE4MDQyN2NlYTVjIHB5M2sKKzg0OTUzIDJiOTMyNzc3NzgzMmEyNDRhZjIxZmY3MmFhZTg1ZDBjOTQwMzBkYjggcHkzaworODQ5NTQgOWUyMjE2NDIwY2Q3OTViMjliMzc4Zjg2NmEzMGE4OTZhYWVmMmE1YyByZWxlYXNlMzEtbWFpbnQKKzg0OTU1IGM1Mzc3MGIxNTQ2ZGFkNGI5Mjk5NTljZTM1M2M3MzIyOTJjOTYxZTMgcmVsZWFzZTI3LW1haW50Cis4NDk1NiBjOWVkYmNlM2ZjYWQ4YzZjZDJkNTQzMTAyYTFiZTcwYmNmYTE1NWM0IHB5M2sKKzg0OTU3IGUxYzhlYjM5MDUwNzAyOGE5MTAyMGQ2YjY5NzYyNDNiNTlhMTAyMmMgcHkzaworODQ5NTggMDVhNWY3MWMxYTc4ZjdkY2Q4ZDk5NDYwMzIxMDAzNGY2MmVhMmIyYyByZWxlYXNlMjctbWFpbnQKKzg0OTU5IDgyMDhhNDMxOTFlMjljOTI0NzAwYTkwODhiOGNjZTFjOTgwMTI5ZDYgcmVsZWFzZTMxLW1haW50Cis4NDk2MCA4YWM3MGIxMmNhNjFmYWUyMTQ4NzQwNjc0M2UxYTMyYjhmNDdmNzY2IHJlbGVhc2UzMS1tYWludAorODQ5NjEgYjNkMGRlYWY1MGU1MjMyYzZkOWJlYzc1YjQwNmQ1YmVkYjJjMzljYyBweTNrCis4NDk2MiBkNWZlMDQwZjRhNDhhMjc4MGZlMzMxMmQ5MzgxOGQ1ODgwMDgzNTgyIHB5M2sKKzg0OTYzIDZiOWY4OGRkYjRjZWU5MTQ5YTFjZmQ1Zjc5MDNmN2I0MTM4OTNmNzggcHkzaworODQ5NjQgZjJjZWVhYWFjOTM4MGI1NDIzZTJjNTNkM2Q5NjUxYTJhZjA1YWYxOSByZWxlYXNlMjctbWFpbnQKKzg0OTY1IGViY2Q4MTE1NThkNjdkNjA0NjdhMjI1MDBjYWYxMmJhZTI0ZGJmNmQgcHkzaworODQ5NjYgMzQ3NGNlZTljNzU4YTg2ZTk0MjdlMzFlMWY1NzM3Y2ZmZDViZmQyMSBweTNrCis4NDk2NyBkNTAwMWQ2Yzc3MzY4ZWZiZGFlZjMzNjI5YjE5MjI1NjMyMWM1MDcyIHB5M2sKKzg0OTY4IGY3MDNhNjQzZTZjZTA3YjhjMTk1OGZlMGE3NGQ4MWY2MjAzMWYxNWYgcHkzaworODQ5NjkgMjI1YTZkMWNmODExZjcwYTc0ODMyMTE4ZGJlNDE2NWE5NDk4M2UwMiBweTNrCis4NDk3MCA5ZWE1MDRkNDVlZWFhN2UxYmY0MjhmOGE2NDI5ZGJiY2FmMDU3OWM3IHB5M2sKKzg0OTcxIDk2ZTdlZTIzMmFiZjExZTJkY2I4M2FjMTdhOGU5NjY0ZTlkOGViMzMgcHkzaworODQ5NzIgZGZkNTU4NGViMWFjYjU5OWJkNDJiZWU0YTgyMjRjYmY5ZTk0YzYxNSByZWxlYXNlMjctbWFpbnQKKzg0OTczIGE2NzZhYzA2ZWFjYzA4N2Q2ODFjZDM3MDY3NzFjYWU4ZTIwODA4NWQgcHkzaworODQ5NzQgZmY5MmNjMzU2YzM1ODMxMzRhMmM1MzVkZjRlOGU2MTJkNmU4YTc1ZiBweTNrCis4NDk3NSBlZTE1Mjg1MmM5NGRmOTQ2NzQyZjY5MGZlNjJmYWFkOWFlYmI0ODY5IHJlbGVhc2UyNy1tYWludAorODQ5NzYgZjRhMWM3OTZiYzk4NzQ1M2U1NjhmNjJjNWJhNGI1ZWMyY2M2YTdjYyBweTNrCis4NDk3NyA2MzNjNmIxMWE1YTllNzg1MWFmOTcxMzY2ZmFjOTMxMmFjMjRmNTlkIHB5M2sKKzg0OTc4IGQ1NjBlZWNlMDg1N2YwNmMzZDBkNTNkOGJlNjg2Y2Q1MGZjMTllOGQgcHkzaworODQ5NzkgZTMxNDkyZjQ0MGM5ZThlNTFhOWJlMmI1YzNlMWIwN2YzNDA0Yzg2MyBweTNrCis4NDk4MCBhMGVjYjhlMmQ3NjllN2EzYzI2YWZmZWNhNTVjMDhlZTkwM2VkYzVkIHB5M2sKKzg0OTgxIDUxZDhmZmZjZDI2MGU4MGFhMjVkNTMxMTgwMDYyZjM3ZmNjNTg0MmQgcmVsZWFzZTMxLW1haW50Cis4NDk4MiAyMGYzNDVmYzAzNjExNGI5NGY1Zjk5ZmFlNDc2NDVjZjllODI5YTQyIHJlbGVhc2UyNy1tYWludAorODQ5ODMgZDA4OGZhYTM1NDU2ZWFmYjdlNjI1NDUzMjJkYjQxOWU0ZjhiYWY5MyBweTNrCis4NDk4NCAyZTViZGUzODNhNWM3NGFhMThmMmU0NGNhZjYwMWEzZGZkMmE5MmE2IHB5M2sKKzg0OTg1IDBjNzdkMDBmNGY4MjRlMjg4YjRiODE0OGJmZTE3ZmZkYzkyYjM2YWIgcHkzaworODQ5ODYgYWIzZDkyZmVhOWZkYTVlNWJmOWRlN2U3NTJlMDkyYWYyMTQ4MzE1MSByZWxlYXNlMzEtbWFpbnQKKzg0OTg3IDFkZWJjY2ZiY2JjOWE4ZWVkMDhhMzk1MDZjMGMwNjc3NzBiZGU4MTggcHkzaworODQ5ODggMjhkNDFkMzRhMmU2MTU1OTA1NTQ4ZDUzYjM2NjJhMzNkOWMyYjM5MyBweTNrCis4NDk4OSA3YWNhNDU4NDYxYWIyNzFlNzAzZmY4YmUxNTRjMzg2OTE4MjA0OGNiIHB5M2sKKzg0OTkwIDc5NTJjZmFiYmI4ODc1Zjk4NzRlNzYyN2RmNGFiZWE4YWVlOTdlODEgcmVsZWFzZTMxLW1haW50Cis4NDk5MSA4N2FmZTQ3NDI5YzU2ZDE3ZjQ5NTQ1NTBiZTcyODVjZDZlZmMyYTQ0IHB5M2sKKzg0OTkyIGFhNTZlYmI4ZmU5NDczNGEzMmYxMDljYzBlYTg1MGQ5ZTUxYzc4NjcgcHkzaworODQ5OTMgMjYwZGM3ZGUxZTg3YmU5YjVhYjdmZTNhY2EyZjFmYzgyMDRjOTk2NyBweTNrCis4NDk5NCAwMDcyMjhkMGU1Njk4NDYzMWU4ODAwZTc2YjgxOWUxZThiNjgyN2YwIHB5M2sKKzg0OTk1IDIzNTA0NGIzOWE5MjExYTU2YmI0ZDRjOTZjZGVlNzk4ZTE5YmViMzAgcmVsZWFzZTMxLW1haW50Cis4NDk5NiAxMmUwZGZmZWY3YmQyNDgyNWJiM2JkNzkzNWUzNDQ3NjZlMDdlMzc5IHJlbGVhc2UyNy1tYWludAorODQ5OTcgZjZhMGViNzMwYTliNzg0YmMwYjQ3ZjNjYTVkYzhkZDAyM2Q3OTVmNiBweTNrCis4NDk5OCA4Y2M0YmU2NDhhYjQ5MDZkZGI0ZDZjMWI2NWE2MTY4MTBkNzFiZTRhIHJlbGVhc2UyNy1tYWludAorODQ5OTkgMjYwZGMzNmMyYzg2MWVmN2JjY2E4OWVkNGU4Mjg1NzgwY2JiMWMyMCBweTNrCis4NTAwMCBiOTQ1M2Q1MDRmOGNhNGFlZmEyODVkZjRkMTNiMjRmY2YwOTRiZjJkIHB5M2sKKzg1MDAxIGIyNzhkOTNmOTU4ZWVjMTg0MzgzMDEwMDEyZWVmZTM4NGYwZTgyMDQgcmVsZWFzZTMxLW1haW50Cis4NTAwMiBlNWI3MDc5MzU2NmVkZGE1ZWU0YWVjZTUzNDcxMDI4NTYwMmU2NzdjIHJlbGVhc2UyNy1tYWludAorODUwMDMgYzllMjk5MjQ5MzIzODI1ZjYzYmJlZThhMDg4NzI1ZmMyMjIxYjZiNiBweTNrCis4NTAwNCA5Nzc0YzExZTAzZjZiMGI4ZDg1MzJiMTIwNTcxN2MwMmQ3MWU0MzU5IHJlbGVhc2UyNy1tYWludAorODUwMDUgNGNkMGVkZjBiMzU2MTk3MGRmYmE1YmQwYmViOTJiMzQzZjZmZDkzNSBweTNrCis4NTAwNiBjOWIwOGM1OGYwNjMwYjkxYzliM2Y4ODJhNTgzODk2YzJlMmEzM2MyIHJlbGVhc2UyNy1tYWludAorODUwMDggMGI0OGM2Zjg2NzFmZDRlMzBjMTk4YmVkY2Q1NTYyNGRiYzZhOGZkMCBweTNrCis4NTAwOSBjNTJmNzVjM2ZiYTJkODY0OThhMDUzOTZmMzJhNzkxMWMxYjBmOGI3IHJlbGVhc2UyNy1tYWludAorODUwMTAgNjUxMTE2NWU0ODMwZDhmZjY4NDZkNDc5OTVkYjdmMWIyZTM0YzEyNiByZWxlYXNlMjctbWFpbnQKKzg1MDExIGJjN2Q4ODA4ZjE5NWM5ZDI1MTQ3YzdhZjAzNDBmODNlOTEwMDJiNzMgcHkzaworODUwMTIgMjY1ZjcwMTc3NzJiODcxMTJmMDY1NjFlN2I1MWIzNjdiZWZkMjE5ZSByZWxlYXNlMjctbWFpbnQKKzg1MDEyIDQzZmQ5ZTJiNWU3ZDFmYzNjYmM0Y2ZjYzcxMTAxNmQ3ZjE3MmNkMDkgcHkzaworODUwMTMgNjNiYTdhNGU3YzEwMjIzMWFmNjczMWE1NGY2ODBkMjg3NTE5ZTVlMiByZWxlYXNlMjctbWFpbnQKKzg1MDEzIDQwOWQ2Yzc2YzMwN2U0MzBjZjIyNGZjOGU2ZTYxNzQ3ODE3NmExMGQgcHkzaworODUwMTUgNDAzYWYzNWY0OTQ4N2I5NGU2ODExMGNjNzczZTM1MzlkMTUwN2MyNyBweTNrCis4NTAxNiA2YzY4ZGJmOTMyZDA2ODRmMGUzZTg3NGVkNzVhMWNjMzU0NjhhZGM1IHJlbGVhc2UyNy1tYWludAorODUwMTcgYWM4YWEyMjVjNDE3NWFmZGFjYTMyODdhNmU2ZGQzMDNkY2RlZTY5NyByZWxlYXNlMjctbWFpbnQKKzg1MDE3IDI4ZThmZmIyYWNjYjY5ODQ1YjExZGJlOWU5MDcyNDUzOWQxODhhNWEgcHkzaworODUwMTggMjZkZmU0NGM5ZmFhNDU5ZjBkMGU3ZTAzMmQ5MTE4ZTE2ZWMyOGNlZCBweTNrCis4NTAyMCAwNWM1OGIzZDZkMzk0MWFhZDMxYzNhZTQ2MTRkNzViOWZhYjU1MTkyIHJlbGVhc2UyNy1tYWludAorODUwMjIgN2FjMzBkNThiMWQyMTZkODNhNTQzMDY0YTRhNGYyMGI3YTNiMzc2ZCByZWxlYXNlMjctbWFpbnQKKzg1MDI1IDJmYzczZDdjNzYyMmQyMDZlZTlmMzE5ZDQxZjFmYTBhOTgzNmQ5ZTMgcHkzaworODUwMjYgODg4MTI2MGQxZDE0ZmJkOWQxYWQxZDhmNGZkODZlM2ViMDNlZWQ0ZSByZWxlYXNlMzEtbWFpbnQKKzg1MDI3IDNmMGZmYzgxOTllYWZjZjAzMTFlOWM1MjBmY2Y5Y2IzMjhjY2NhYzkgcmVsZWFzZTI3LW1haW50Cis4NTAyOCBmZDVlNTEwMzUzMzViMzhiOWQwZGI0MzMxMWVhODhjZjk2NDM4MThhIHB5M2sKKzg1MDI5IGU5MzhlY2M1NTAwNTQ4YmE5NDU2NWRhNzgyMjA4ZjhmZTc3MTFjMTcgcmVsZWFzZTI3LW1haW50Cis4NTAyOSA1MmVmYjEwNDRkZTU5MzRmOTczMTk1NDU5OWFlNjAyZjg4MGZiYmVhIHB5M2sKKzg1MDMxIGZmNWQzZTVjNGJiNTk1ODgwYmUzNzhmMTg5ZGRkNjkwMzM5ODg4ZTAgcHkzaworODUwMzIgYWVkMDRiM2YwZmUzODIyZmY1Mzc0YWNhMjFhYWVlODhmZDYwMmUyYyBweTNrCis4NTAzMyA2YjQ5ZWExMWIxNTc3OTBiMTZmNjI2ZGQ3MmJhYWE5MzNiMDdmN2MyIHB5M2sKKzg1MDM0IDVhN2JiODVhNWQ5OWMzNTYzN2JjNDQzODM2NWFjZTY1ZTIzMGY4YWMgcmVsZWFzZTMxLW1haW50Cis4NTAzNSAxZGMyYjUwZDM0NGY4NWU2M2M5YjRjMTUwZDQwNTVjOTAwYmFhYWMxIHJlbGVhc2UyNy1tYWludAorODUwMzYgN2JkYTBhNjMyYjBkNDU1YzU0OTRlMTJlN2JkZWIyNDk3NTM1YTgwMSByZWxlYXNlMjctbWFpbnQKKzg1MDM3IDRkM2ZiY2Y2Zjk2YTBlODIzODg4N2Q1NjRlNTdkOGU5MjQ2ZjhiMTYgcmVsZWFzZTMxLW1haW50Cis4NTAzOCBjZTRhMjJmYzljYzQ0MWM5NTMyMDNhZTRlOTZhYjU0NThiMTI4MDAxIHB5M2stdHRrLWRlYnVnLW9uLXhwNQorODUwNDMgM2Q0OTBjM2EwMTllMjEwYjYzNGVmYmI3YTExMDRkODhhOTk2ZWUxMyBweTNrCis4NTA0NCBmNzZlZjFmNDYyNjYzNzA2NDA0Y2NhN2MxMmNjNmY5NDg0N2IyYjA0IHB5M2stdHRrLWRlYnVnLW9uLXhwNQorODUwNDUgN2RmYTk5MDBmOGM3ODg1Y2ZjY2M5YzBhYTlhMTQ5NmQ0ZGY0NDRhYSByZWxlYXNlMzEtbWFpbnQKKzg1MDQ2IGUxMmJhNDJmODYxZmM3ZWIwNTBjYzg0MjMwZTQxZDczODgzNWRlN2IgcmVsZWFzZTMxLW1haW50Cis4NTA0NyBlMzgyZmY3NDE3OTAyNjJlOWNiNGQ5ZjM3NWMxNmEwYTM3YWVmN2E1IHB5M2sKKzg1MDQ4IGM4ZGM0YjVlNTRmYmQ0ZTE0Y2Y1NjU1MmM3Yjk2OWRiZDc4ZTRhNDQgcHkzaworODUwNDkgM2Y0MjczZDMwYjM4NTI1MTFhMzYwMjFkNTY2ODFjM2YzNmI5ZDc2NiByZWxlYXNlMjctbWFpbnQtdHRrLWRlYnVnLW9uLXhwNQorODUwNTAgMDk4MTIzYTdhMDNjYjdiMWE1YzEyYjdhNGFiOTJhN2Q5ZTQ2YjZiMSByZWxlYXNlMjctbWFpbnQKKzg1MDUxIDRjNDhlYmExMjEyM2VlNTY3OTFjYjhmMDc0YTRiMzA3MDg1NDNmYmIgcmVsZWFzZTI3LW1haW50Cis4NTA1MiA2OTRjYjVkODY1MjUxNTBjYzFlZjM0NjRlNmQxYzA4OTQ2ZWQ1ZWY1IHJlbGVhc2UyNy1tYWludC10dGstZGVidWctb24teHA1Cis4NTA1MyBhNGIzOTk4YTdhZDQyZGE2MTAwM2ZlNTdlMDk0NzVlNjhhMmZhZWVjIHB5M2stdHRrLWRlYnVnLW9uLXhwNQorODUwNTQgZmFmZTg0MmUzMjAwY2I4YWQ1NzQ5MjhiMWY4MzUwYTcxM2VmMTM3ZiBweTNrCis4NTA1NSA0ZTVkMjAxZmYyOTQwMWIwNTg5N2ZlNTk5YjUzZGRjMzAxOWRlMTdjIHB5M2sKKzg1MDU2IDM1M2YwYzJiYWY3N2QyZGQ1ZjkwOTQ1NWNlYzY1YWVhMTI3MzlmYmMgcHkzay10dGstZGVidWctb24teHA1Cis4NTA1NyBjZWEzN2ZiMDNkYzBmNDlmZGZjY2M3ODE3NjM5OTdjNTQ1NTliMzMwIHJlbGVhc2UyNy1tYWludC10dGstZGVidWctb24teHA1Cis4NTA1OCA0NWY1NmUzMGFmYTU3NWYzMjJkMTM3NTMzMDRmNDRmNTRiNGRkN2JmIHJlbGVhc2UyNy1tYWludC10dGstZGVidWctb24teHA1Cis4NTA1OSA5NTIzZGJlMGI2NDk5ZTlhMTBmYjZiYzMxZTZkNWY4YTg4NjhjZGYzIHB5M2sKKzg1MDYwIGUwNjI4ODQ3NjVkNjVhZGY4NDkxZWYyOGQ3MzQ1M2U5OTc1OTRiY2IgcmVsZWFzZTI3LW1haW50Cis4NTA2MSAwNWNlNTg1ZjY0YzQ4OGE4OWE2MDE0ZGQ2MzdlNTViN2I3NTFkZTAyIHJlbGVhc2UzMS1tYWludAorODUwNjIgZTMzMmNkOTVmNDE0YWEwODljZGViZDhiNGJjNWNkNDRkYmJlY2FlZSBweTNrCis4NTA2MyA5ZGExM2U1NjBhM2E5NmRkNTRiM2MxZWFlZmYyYmJlZTUxOWFmMjU2IHJlbGVhc2UzMS1tYWludAorODUwNjQgYWZiMmYxNDRiOThjMjM2NTVhOGVkOGJhMTYxYzQ4ODkzOGZhYmU2NyByZWxlYXNlMjctbWFpbnQKKzg1MDY1IDQzYjc5ZDgwZjVhZWNlYWJhMzA3Y2FkOTg5NTc0N2EyMzI5YjRiMTggcmVsZWFzZTI3LW1haW50LXR0ay1kZWJ1Zy1vbi14cDUKKzg1MDY2IDdkOWJhZjY0OWYyZDhkN2RkMjQxN2Y5Y2E5NmI1NDhjNzVkNDUzNzEgcHkzaworODUwNjcgNjRlNDExN2Y3ODg3NTRhZmYwNDIzZGMwOTBhMGI4ZTA4YTEwY2ZlZSByZWxlYXNlMzEtbWFpbnQKKzg1MDY4IGQxYmVlN2NmNmMyZjJhZTVkZTU1YTlhOTFkNjhlNWZlMTY5MjUwOTYgcmVsZWFzZTI3LW1haW50Cis4NTA2OSBmYWQ3OGU4NmQxNmVjZDM1YmJiNTliYjdjZmRiNjhiMmU2YTE0NjcyIHJlbGVhc2UyNy1tYWludAorODUwNzAgZGQ5NGFjMmE0MmIxN2VmYWNkNTExZDc1NGMyNDNmOGQ0Zjk5YjUyYSBweTNrCis4NTA3MSA3ZTI3NWE0Y2Y5NDEwZDQyOTBkYmJjNGNkNDc4NGUxOWExYjY4ZmNkIHB5M2sKKzg1MDcyIGEwOGU0Mjc4OWU2ZDUxZDIyNDYzNTJkYWQ0OGZiYWU3ODgxZWM2ODkgcHkzaworODUwNzMgNDcyYTZlZWMxOTZhYmZjMTRkZDUwNDM4OWUzY2IzMjBlNWZkNmEyNCBweTNrCis4NTA3NCAwZjhjMmViODlmNDZkNWMwZmFiNzNiODcyZTkyZmNkMWFhMTQwZjk4IHB5M2sKKzg1MDc1IGRjMzgzMzk4NDczNGIyNDkzZWRmMjFjMjE4ZmI2YjYzMjZhMWI1ZDggcHkzaworODUwNzYgNmM4YWRjMjAwZWUwMmYxZDNhMDI0ZjQzMWI5ZWZkYjNiODI2NzdkNSByZWxlYXNlMzEtbWFpbnQKKzg1MDc3IDZjMWYxMGUwNzQ1NTY0MDdjYTk0Mzc2NWMzYjMzOWU0YzhiNGZjNmQgcHkzaworODUwNzggZmI3ZWUwZjJjNmY0YTA0N2E3MDFhMWJmNTA1ZTAzZDBmYjNmMzQxNiBweTNrCis4NTA3OSBjMTg0MjNmNGI5Njg4Yzg5YTA5ZmU2NDBhZTk1OWNmNTBkYjg1ZDNhIHJlbGVhc2UzMS1tYWludAorODUwODAgZDEyZDU1MGViZjM0NTVhYjg5MDFmZjRhNTE5ZmVmMDE5Yzk3NWI2YSBweTNrCis4NTA4MSA1NTIyYzZiMmFmODcyY2UxMGI0NDAxODk1NTBmZDk1MjFiMDJkZGRjIHJlbGVhc2UzMS1tYWludAorODUwODIgNGNmNzdkMTkzZjU3ZjVlMDc2YjFhMTk5NTVlYWJiZGVlN2ViYmQzNCBweTNrCis4NTA4MyBkYzQ1NTU2NDZlODA3ZDgyNmYyNjUwZDg5ZGU4OWQ2ODhiOTBkMjdhIHJlbGVhc2UzMS1tYWludAorODUwODQgMDZmNWUxOTA4NTVhM2ZkNzcyODQ4ODkwZGQyYzhiOTI0MTM4N2U3MCBweTNrCis4NTA4NSBjODY5ZWEwN2NkOWQyNjhjOWU2ZWM4M2ZhYzIyZTA4MmIwMjY5YmI2IHJlbGVhc2UzMS1tYWludAorODUwODYgYjNjN2U1MTYyN2ZkYzY5OTBiZGE2YWE2NTBkNmQwMTEyOWU1NDNmMiBweTNrCis4NTA4NyA3YmIwNTEzY2QwYjgyODkyZWIyNTdjZmU3ZDMwNjgzN2U0YzJmNDFmIHB5M2sKKzg1MDg4IDczNDg1Y2JkNmM5ZWI2ZWM0ZTAwYTA1YjY3MjY0MDhhMjQ3ZGQ1MzggcHkzaworODUwODkgNTlkZmIyMTM4M2Y4YmY5ZjZkMTZmZWE4ZTI5NTU5MjQ0YTU1ZGJmNCByZWxlYXNlMzEtbWFpbnQKKzg1MDkwIDBlZTIxMTNhNGZkZTYyMzY2ZGI2NzM3MjljYzUzNzUwNjAzOWY5MzkgcHkzaworODUwOTEgNzc4Y2I4ZTZjNjM4MzA0MDM0MWFlNDc3NmEwY2RmMWNjY2M5NDg1ZiByZWxlYXNlMzEtbWFpbnQKKzg1MDkyIGUxMmIxMDQzNTUzMDhkYmY3MjVhOTVkNWYzZTkyMzY1ODI1MjlhNGMgcmVsZWFzZTI3LW1haW50Cis4NTA5MyA3YzdkMWQ5NmUyYzMzNDE0YmQ0OWIxMWJlMDA1MjE0OWU4MDhmOWU5IHB5M2sKKzg1MDk0IGM2MjBmZTg3YzcwM2IwOTBmYzdlYTBmZDk0NzI5ZjI5N2YwYWM3M2UgcHkzaworODUwOTUgYWM4ZDljYWMzMDMzNWUzYTIzYzgxZmJlYWE4ZDQ4YzQ4MzUxZWVlNCBweTNrCis4NTA5NiAxOTFlZDJhZDU5OTdjMWZjNTZmYTIzNjkzNWU1OTU4N2I4Y2YyMzVmIHB5M2sKKzg1MDk3IDk2MWY1MzU0ZWI1NDFmNDQ1MGU1MGY0NTE4ZGEwNDMxNzhhYmFiM2IgcHkzaworODUwOTggODAwYWRkYzk4NTcxOWZlZTQxNjdmNzM3ZmRhNGE4MmY4NzAwNjY3MSBweTNrLWlzc3VlOTk3OAorODUwOTkgM2ZiNTgzYzhlOTdlN2Y2NDkwMjlkYzYwZTg2MTdhYzNhMGZmYTA2OSBweTNrLWlzc3VlOTk3OAorODUxMDAgZjRkMDQ3NDkxY2I0MmE4M2YyYTY5NjI3MGVkMzg3ODVjZmIxNDQ2YyBweTNrCis4NTEwMSA5NDEwOTBlZDk2ZGY0ZjA3YWY3ODYxODM1OWJmYWU4OWNmZjRlYWI4IHB5M2sKKzg1MTAyIDY0MzRjZGNlNzE1Mjg1MjNhOWQyZGQxMTNlMTQ0Mzc3YmQ1OTYzNWIgcmVsZWFzZTMxLW1haW50Cis4NTEwMyAwYjRiZjZjZGUxMWRlZTBkNDU2NGRiZDI3Y2Q2ZmFkMmYwMGE0MDRlIHJlbGVhc2UyNy1tYWludAorODUxMDQgMWQxNWI1NjdhNzRiMjgzZWIzZDZmOGI5OGQ5OGNjYzI1MGI0YmFjNSBweTNrLWlzc3VlOTk3OAorODUxMDUgYWY5ZGVlMTI3ZTNjMmI1ZDA2YTdiYTM5YmZlN2MzMzkyMzc2MjkzMiBweTNrLWlzc3VlOTk3OAorODUxMDYgYzRjNmQ4NDJkODJhMDE4NzI1OTBkMDJhMzVmZWQzYzZlNDQ2NjE5NiBweTNrLWlzc3VlOTk3OAorODUxMDcgMzRhYmUzNjkxOWU1M2E0YTIyYzQxYzFmZDA1OTY4MzJjNjI4ODQ2MyBweTNrLWlzc3VlOTk3OAorODUxMDggMTQ3MjU4YTBhZGY4NWNjNGJjNmFjYjlkZGJlY2VmNzJlYTA4MWRjMSBweTNrLWlzc3VlOTk3OAorODUxMDkgMjVlOGI3ODI3YzdkZjM5NmI0YWI0YWYxYmIyZGNlMTcwOTllYTU3MSBweTNrCis4NTExMCBhNDMwZjhmZWM0YTBmYzRkYWM4Yzk2YzdkODc0YTcyNWI1YWNkOTVkIHJlbGVhc2UyNy1tYWludAorODUxMTEgMDA3N2VlMzAxMzRjNmIzZDRkN2IxZjA2OTJiYjA5ZWZiOTI4NTA1MCBweTNrCis4NTExMyA2ZGRjZjc0MjgyMjdhMjI0ODUxZDc0YjZhZDIxZTkzMDM4ZGQwYTYwIHB5M2sKKzg1MTE0IDU5MzZlYzNjNGVjMDI3ZmY5M2ZkMGJhNmNmMDUwNzQ0ODU0ZWI5MDEgcHkzaworODUxMTUgMDFiOTZmNzhmYjcwYjdiZWFiOGY3ZTIxMmI4MWM0ZmQ2ODIwY2MxMiBweTNrCis4NTExNiAxYWRkOGU1ZjMxOTg1MThiMzIzZTc3ZjJhZmNjNDlkZWE5ZDQ0M2ViIHB5M2sKKzg1MTE3IDc0NmU5MTUwMTE5YWRiNzA4MjE2MDQ0YjEwMjQ3M2ZmMmI2NGRlOGIgcHkzaworODUxMTggZTcxMGU3OTJlZjJlNzZiNDkxZmY2MDRjOWNjYTBhY2M5MWZlMTcwYiBweTNrCis4NTExOSBlZjE2ODY4OGFmMGE5NmY4MTVkZDI3MWIzMTYyM2EyOWZiNWZiZjg3IHB5M2sKKzg1MTIwIGE5MzQ5ZmQzZDBmN2JjYWVhMTU2MGFmYTRjNWNkODkzMzAxZjA4YzYgcHkzaworODUxMjEgZWE0NzIzYWFjNDc4ZjRiZDQ0OThiMTJhM2UyYTc4YWFjN2UyNzJhOCBweTNrCis4NTEyMiA0MDMzZjgzYzJkZjE4ZDk4ZmEyNzZlZjM1N2FhMjNiOWNhYzA5ZTA3IHJlbGVhc2UyNy1tYWludC10dGstZGVidWctb24teHA1Cis4NTEyMyA5ZmUxZGNlMmJmYTQ0NTA2Mjk4MjIwYjViMjgzM2YyOWFhNzFjYzczIHJlbGVhc2UyNy1tYWludC10dGstZGVidWctb24teHA1Cis4NTEyNCBkOTU3M2UzNjI0ZWMxMjIxZWY5ZDlkZWUxYTZmODljNTdjZmU2ZGZlIHJlbGVhc2UyNy1tYWludC10dGstZGVidWctb24teHA1Cis4NTEyNSA3YWRkNDViY2M5YzY3MmMzODQzMjYwYzkzNDcxOGYyNmVhN2JjYzBiIHB5M2sKKzg1MTI2IGQ3ODdlZjlhY2I3MjRlOGM1OTc0OTc0ZTBhN2M2Y2RkNjQxMzhiZDUgcmVsZWFzZTMxLW1haW50Cis4NTEyNyBiOTlmNTI3ZTBkNzdjNzAzM2VjMWRlNzk4YzM1OGQ2MTcyZDU5ODljIHJlbGVhc2UyNy1tYWludAorODUxMzAgOWYyN2Q3MmJmNWRmODkzMDhiZjQwYzY4MmE2MTllODljZGE5MzhhOSBweTNrCis4NTEzMiAyODJjNzdkYjNkMzg5YmQ3MzQxYjRiZDZhOGM1YzA4NTgwOWQ1ZTdmIHB5M2sKKzg1MTMzIGNiMmZiYjVlNjQwOTY0ZTdmN2RlNmRmMGZjN2U0NDk3N2ExYTkxZDYgcmVsZWFzZTMxLW1haW50Cis4NTEzNSAwNGY1M2NhNDE1OTZlZTgwMTAzOTMyMzA3NTgxMjYxZWRmNDVhZmFlIHB5M2sKKzg1MTM2IDg3ZjRiMzI5MDVkZjEwNTBlZjBhYzg2NWY1ODRiNGRhZjUzMjA5NGMgcmVsZWFzZTI3LW1haW50Cis4NTEzNyA1OTc4MDRiNDExMjU5YjhjMGY1NjU4NDlhNjQ5NGNlMWM2ZjdhM2FlIHB5M2sKKzg1MTM4IGRhZWNlN2EyMzRkYzkxYTgxOTA2NDM0NTMwOThiMGFkNTE2ZmRlYjMgcmVsZWFzZTI3LW1haW50Cis4NTEzOSA1OWRlMjI1YTE5Y2Y4YWM1NDdhMGNkYmI0OWE5ZmQ3YzJlMDY4NTI1IHJlbGVhc2UzMS1tYWludAorODUxNDAgYTlhMzBjZmI4OWE1ZDM0YmY4NmY3MDE3MDYyY2ZiYTk1MTU4OWY3MyBweTNrCis4NTE0MSA2ZjEzM2U4N2E0ZjhiMWVlZTA4MDlhZDU1YWVmZDU4MzQwNzBlMzg3IHJlbGVhc2UzMS1tYWludAorODUxNDIgMTVjMzY3MWMxNzgzMmQ5YWY5YjE3ZWUxOTg2OWZmZmE5OGM2NTIxMSBweTNrCis4NTE0MyA5YjVlNmE1N2FiMTA1NDI5MWU3N2NlNTEwOGUzMTE5YmY5NmQ2MWIxIHJlbGVhc2UzMS1tYWludAorODUxNDQgMmY2ODMxY2QyNDFlZDcyOTE3NDk4YjBkOWI1YWQxMGEyY2M4YjU0ZCByZWxlYXNlMjctbWFpbnQKKzg1MTQ1IDA2MjJkNGQwOGFmMDI1ZjI1MWI2ZmZlNmJlNWRjMGNiM2QxYzRiYjQgcmVsZWFzZTI3LW1haW50Cis4NTE0NiAyZTY4NDBjMGMxMjY2YjQ2MDZlODU0NTg2ZjdmMmIyOTEwZDRlNGJjIHB5M2sKKzg1MTUzIDk1MjU4YTZhMDY4M2U2YTU0OTVjZDBkMTU0YmZmZWVjZDMwYWZlOWMgcHkzaworODUxNTQgMzQwZDFiZjU5NTFlMTA4YjNmZDAwMzk5ZTUwZWMxM2UxNjIyMjg4NyBweTNrCis4NTE1NSA0NzFkYmQ5MDZhYWQwMTFkMjRkZDhiMjRkMzJmNGIzM2Y4MDFhOWNjIHJlbGVhc2UyNy1tYWludAorODUxNTYgOTFlNjIzODkwYjk0YzFkZTA0MmY2NzAwODQ1NGJkMzMwODIyNWZjNCBweTNrCis4NTE1NyBkZTQxOGQ5ZGQ3MzMxYjYzMjgyNWQzOGZjNjc4NzE5MWE4ODExMGE5IHJlbGVhc2UzMS1tYWludAorODUxNTggY2U0NzVkMzViNTBmYzYzNmU1MmEwNTVlZjUyNzk5MDI1MDU5MDMwZSByZWxlYXNlMjctbWFpbnQKKzg1MTY5IDdjMGYxODM3ZThjYmUyNWQ0N2IzODE3NWNhMzM2MGYzZjZhMjAxODYgcHkzaworODUxNzAgYmViZTVlMzU2NjFlMjA3NmVhN2ExMWE0Mjg2Mzk0ZjA1ZWQ0ZGZhZiByZWxlYXNlMzEtbWFpbnQKKzg1MTcxIGE3NDhiZmNiNjk3MzNjZDlmZDBlOTM4Nzg1N2IzNDYyZDkzYzBlMGMgcmVsZWFzZTI3LW1haW50Cis4NTE3MiBkZTdjZGI3MjYzNTAyYjc0Nzc4NjRjOWRhYjBlNzBjZTJjMDVhYmVmIHB5M2sKKzg1MTczIDBjYzNmZjgwMjBhZTY1Yzk2Y2QzYmNkMzU3YWVjMjhlOTBiZjVmMjMgcHkzaworODUxNzQgNDI4MzE0ZWViMmM3NjNiOWNjYjg3YzMwZDY0N2E1N2Y0YjhiYWRjYiBweTNrCis4NTE3NSBiYjVlMThhOWJkZTNhZTIyN2MzZjFkMDJiZmFmZDYzOWIzM2Y3OTRiIHB5M2sKKzg1MTc2IDhkZTUzNWRlZjEyMjJlNGI3NjVmMDI5NDhjZDMxZDQxMGMxNDUxMGEgcHkzaworODUxNzcgOTA0ODgwN2JlODNhYmI5OTkwM2U1NzM4MDg0MTBiYjUwMjU4ZjhmYiBweTNrCis4NTE3OCBjOTkwZWI5YjYwYTllNDc5YjFlZjU4NzNiZmI0Yzk5ZTI0MGZmOTNmIHB5M2sKKzg1MTc5IGVmNWM1NzIxN2IyMDNlYTc1MGNiOGY0YmY1NTUxZmNmMTI1MTJmODEgcHkzaworODUxODAgMTIxMmU1MDBhNTg1MGU5NDQ0MTEzNGFmMDVkMWY1ZDUxZGFjZmQ2MCByZWxlYXNlMzEtbWFpbnQKKzg1MTgxIGYzYTcwZDk5ZDdlMGZiNWNhNWI2ZDA1MTJmNDdjODdiZjgwZDkyOGYgcmVsZWFzZTI3LW1haW50Cis4NTE4MiAwNzBhOGY2NjQyMjBlNmM1MzhlNThhZDc0ZGNkMzQ4YjU2MmIzMThhIHB5M2sKKzg1MTgzIDM5NGUyNTM4MmE1OTIzNmI3ZDU0OGI0YWMzYzA5ZWZiYzFiNTFkMzEgcmVsZWFzZTMxLW1haW50Cis4NTE5MyBkZWMwODc4OWE5YjQyMzNmNzMzZWYzYjE1YjhkZTk3YzY4MjJhZTk0IHB5M2sKKzg1MTk0IDBmODcwODViMjkwZjQwNjBmYTgwZDlhZmQ0ZWQ2YjlhM2UyMThmODIgcmVsZWFzZTI3LW1haW50Cis4NTE5NSBiOWUyNmIwYzQ2MTc5ODc5NWFjZjRjYWZlNTMyNGRmYTc0NzhhMGE4IHJlbGVhc2UzMS1tYWludAorODUxOTYgOWJiZDQ0OTg2NThlZTM3MTJjMWEzNTI4YjYzZTBiYTk4NjRmNjQwZSBwZXAtMzgyCis4NTE5NyAzYmIzZWU2ZTYwZTBhODIyMTliODkyNmQ2YWQ5YTNkZTliYmEyYzZmIHB5M2sKKzg1MTk4IGJhOGNkMjAwN2QyOTIyZjU0ZWNkMDU1Y2Y1NjljMzBkMjE5OGVlZDAgcmVsZWFzZTMxLW1haW50Cis4NTE5OSAxMzlkZDRjZmI4MGY1NzhkNjUzYzczYmFhNWIzMGFmNTRlODM1OGQ5IHB5M2sKKzg1MjAwIGY3YzkxMDdmN2FiZGUyZjUwN2FhZjc5OWM1YzAyMWU0MGUzNjIxZTQgcmVsZWFzZTMxLW1haW50Cis4NTIwMSBkMWUwY2Y4MThhZDI5OWZmZTY0NWFiZTlhMTJiOGNmZmY1MGZmMWM5IHJlbGVhc2UyNy1tYWludAorODUyMDIgMmMyYmExYjMwODIzZjIwOGQ2MGEzOTQ5MDA1NzNmYmU3ZDAyZmYxNCBweTNrCis4NTIwMyA5NDVhNTVkNGU3M2VmODI1MTQwNzNhZmI2M2E5YmQzODVkYWY5ZGU0IHJlbGVhc2UzMS1tYWludAorODUyMDQgZjExZGM5NDA0ZDExODYxYzJjMTFmZDQ1MDI4NzY3MGNmOWRhY2I0OSByZWxlYXNlMjctbWFpbnQKKzg1MjA1IGFkNDFmYmYzM2UzYjk4ZDRkN2IyNjg1MzE0ODc2MGY0NzQ2ZjdjOWQgcHkzaworODUyMDYgMzJjMzJiNzBhYTMzYmIzNDA2YzIwYzhiNDI4NzcxNjI3MTNmOGY5NyByZWxlYXNlMzEtbWFpbnQKKzg1MjA3IGUxZjZjZTgzNmZjNTMxN2ZhMzkwNWRjZGM4NDM4NjdlYzUzZWIxNTAgcmVsZWFzZTI3LW1haW50Cis4NTIwOCA5ZWI5ZTNmNjZlM2FkOGZlYWZmZGQ1Zjc1NmY2ODhjZTA2ZjgwNzNhIHB5M2sKKzg1MjA5IDhiZDBhMDYzY2ViOWNlN2E5MTQxMWViMDM1ZDJkZmYzZmM1MTZjZjEgcHkzaworODUyMTAgYjc3ZTkxNDQ1ZDliNzFmMWE0NDE5YjZmOWIzMjZlZTQxZTM0OTJkNSByZWxlYXNlMzEtbWFpbnQKKzg1MjExIGIzMzRlYWFkYjUwOGNlZTI0ZmVhZTEzNTliYTE2NzYyOTg3ZjE1NmQgcHkzaworODUyMTIgNmFmN2I0MTAyZDc3ZGNhMTMzOTc5MTE2ODEyNmVkYzQzZGM3ZTdlYyByZWxlYXNlMzEtbWFpbnQKKzg1MjEzIDM2MzNkOGZlNTU1MDZhOWEzZDg3MTVkZWJlNzUwYWE0MTY0YzlkYzEgcmVsZWFzZTI3LW1haW50Cis4NTIxNSBkMTYxZjhjOTY0ZWI4YWI2YWRlNGM1NGY0YjcyNTM1Yzk4OGE0YWM0IHB5M2sKKzg1MjIwIGMyOGZkZWVlYTc4NjA4ODg5OTU4YTllMjQ2NDRkZWZhNTAxNDJlOGQgcHkzaworODUyMjEgNWYyMGY3ZjE1ZWRmNzA0NWQ5YmYzZTgyYTY2ZGMwYmQ4MWNjMjZiNSBweTNrCis4NTIyMiA4ZmU4YjI4MTM1NmMzZGIzYjg1MzFlMTE2ZTg2ZWQwYWM2MzM5MDYxIHB5M2sKKzg1MjIzIDc1M2JmMjNlNDVjNWJlOGMyMzdkYTJiYmY1NGU0MGE4YjYzYTZhMTUgcHkzaworODUyMjQgYjA2NWIxOTQwY2JkOWZhM2NlNjYzNDZmZjYzYmU5MzA1NzYwOGFiNCByZWxlYXNlMzEtbWFpbnQKKzg1MjI1IDEyYzZkYTVhY2Q3MzA2N2M5MWQxNmM4MzdjNWU0OWQ2ZmZmYmM2M2UgcmVsZWFzZTI3LW1haW50Cis4NTIyNiAwOTgxNmZjOWNkZTU1N2QxMTZlYjJhNmMzOTg1MmU4OTU2NGM2YWM1IHB5M2sKKzg1MjI4IGZiODI4NDBmMGU3MGJlY2Y3NWExMmEwOWZhOGZlY2JjMTdkYWIxN2QgcHkzaworODUyMjkgOTk4ODkwY2ZmMjA1ZjMyNDVmN2RmMGYzNjQ3ZDVjNWQwM2MzNDZjNCBweTNrCis4NTIzMiAzZDQyNTBjY2NjZTkxODI2NWM3YTRkNTBlYWZhYTRhZDdhMTJlMjE4IHB5M2sKKzg1MjMzIDc3NjA5NWFhMDU4ZDFlMTA5M2E0MjgxYzZjZmIzNjM1Mjk0MGQ3MGQgcmVsZWFzZTMxLW1haW50Cis4NTIzNCBjNmRkYmZiN2FiNDM4MTk1NGY2YWIwYjYwY2I2NGFiM2MwNDI4ZGQ3IHJlbGVhc2UyNy1tYWludAorODUyMzUgNzliYjdjYWU2OWJlY2I5NjRlMDE4ZDc2YzgwY2RmNzE5MTBjNWQ2MSBweTNrCis4NTIzNiA3NTllNWQyNzViZWIzOTlhMWNiMmIyZDdkNjg4MTIzYzJhYjkwMjYzIHB5M2sKKzg1MjM3IDY0Y2EwMWVjMTcxNWZiMzZlMTgzNzM2MmQ3MjU3OTAwZDUxNDAzNTUgcmVsZWFzZTMxLW1haW50Cis4NTIzOCBjZDczOTE3ZjI0NzgzODY2ZWZlZjRjMTA5ZGEyZDI4MDE4MDZlMmQ5IHJlbGVhc2UyNy1tYWludAorODUyMzkgMWM0MTc4MTFlNTA4Zjk5ZTg1YjFkYzQwZTRjNTY0YmRmOGI2ZWQ4YyBweTNrCis4NTI0MCA4YmNiZGQ2NzMwYTc1NzM4Y2QwNTFkMzlhNjRmZDgwZTU2NDYyMDRlIHB5M2sKKzg1MjQxIDdhMGI0MWYxYzczYjg1MmFmNGNmNWQwOTExN2VlNmM0OThmMzhjZWUgcmVsZWFzZTMxLW1haW50Cis4NTI0MiBlZWRiZTVlYTQ0Y2IyMTU5M2RhYjNiY2RmMzE2MTc4NjBmODg4MDc3IHJlbGVhc2UzMS1tYWludAorODUyNDMgZWI3ZDY5ZDg5NjUwMWNiOTZlMTY0YTBjOTIxMTcyZTQ4YjBjOWM4NiByZWxlYXNlMzEtbWFpbnQKKzg1MjQ0IGE2OGY4NzYzNTU1YjIxNGVmNzM1MjljOTI3NzIxMTIzYWFlMGY5ODUgcmVsZWFzZTMxLW1haW50Cis4NTI0NSA1MzcwZDRmMDg2NDgwOWNlZTFlM2VmNjI5Zjc1ODBkYTgxZTU5ZDc4IHJlbGVhc2UzMS1tYWludAorODUyNDYgYTRjOTc0NmNiMDNjNWE1YmE4NDJiYWRjYmQ4MGM4YmFiODc0NGU0ZSByZWxlYXNlMzEtbWFpbnQKKzg1MjQ3IGJmZWU1NDc4MWJhMWY5M2U0ZDkwZGNmNmVmZjA3ZjE3ZGYzYTVlZTQgcmVsZWFzZTMxLW1haW50Cis4NTI0OCBjOTg3OWIzNDAyZTRhYjcyZDJkMzliNDVkYjVhYTIzZTNkY2Y2ZWE2IHJlbGVhc2UzMS1tYWludAorODUyNDkgZWI4ZTEzNzg0ZGU3Mzg0YzU5ZmRiZTQ3NmFlMzljYjAyYTEyMDU2ZSByZWxlYXNlMzEtbWFpbnQKKzg1MjUwIGI5YTc1ZGQ3NDIwZDA1NjZiNzMyMjU4NzJhNzQ1ZGI2OWI4NzcxYmYgcmVsZWFzZTMxLW1haW50Cis4NTI1MSA5MGUxNzM1ZGY0ZDk2MmNlZTAwYzQ4NjExY2EwYWVmZThlNThlYjA0IHJlbGVhc2UzMS1tYWludAorODUyNTIgMmRlODMyM2JkNGViYTJhYTM1M2NkYjFmZDY4MGExOTNhNzQzOWE0YSByZWxlYXNlMzEtbWFpbnQKKzg1MjUzIGEwNDc5MzQwZjAzNTJmMmFlNjNiYjM2ZmQ4ZDY0ZjYxNjlkOTQ3MDUgcHkzaworODUyNTQgZjAwNDQwYWY5NDEzNzhkYWI0NGQ0ZTFkMDc0YmJiYzBjNTM2MDkyYSByZWxlYXNlMzEtbWFpbnQKKzg1MjU1IDA0NGNjOGE5ZjE5Y2ZhMWI3N2ZhZDBiOGVhMzYxZjlmZWE1NDRkMTAgcmVsZWFzZTMxLW1haW50Cis4NTI1NiA2ZjlkMTVmY2NmYTRhY2YxYWZhMzcwZjIxZmIzY2ZkZmFiMjNhNzY4IHJlbGVhc2UzMS1tYWludAorODUyNTcgYzYxYzAyYWMyMDk5ZmJmNzg2NGVmZmNiZWI0NDA2N2M5M2RiZDIyMiByZWxlYXNlMzEtbWFpbnQKKzg1MjU4IDY5NTlhZGJhM2I2YTVkMjI3ZGI4OTE5ODFiMjk4YjA4Y2M5ZmQ5ZWMgcmVsZWFzZTMxLW1haW50Cis4NTI1OSBhNWM2M2IzYTk2YTlhOGYyMjQyYzNkMjA5NzMzYjNhZTg0ODIzZjRiIHJlbGVhc2UzMS1tYWludAorODUyNjAgMjgzMDYyNDRhZmEwZjQ1ODljMWM1OWVkNzQ0MDM4YjgyZGRiNDkzYiByZWxlYXNlMzEtbWFpbnQKKzg1MjYxIDY0OTg5YjAzMzk4Y2EyZjhmYjY2ODg0ZjIxOWRhOWQ5M2FhNzBmODMgcmVsZWFzZTI3LW1haW50Cis4NTI2MiBmZjczNGYyMjViNDdlOTY4OWJkMmRkMTA1ODVlNzAyYzY0NDhkMDIzIHJlbGVhc2UyNy1tYWludAorODUyNjMgY2FiNDU4NjM4ZTRkYjU0N2UwZGY2M2Q0MDc5NWYyY2Y5ZDJlODgyOSByZWxlYXNlMzEtbWFpbnQKKzg1MjY0IGJhYTk4YmE4NWZkNDExODljMGE5NWMxNTBmZmQ0NTVjZWRkZmM3NjEgcmVsZWFzZTI3LW1haW50Cis4NTI2NSAyYzExNWJmNTJjZmY5Y2U1ZmJmYzIzMGNjNGRiMGFmNTY3NGVjZGE5IHJlbGVhc2UyNy1tYWludAorODUyNjYgMjg1NjUxYTE1MzU1ZWNkZTQwNTk4OTk0YWY5NWI0MmRjMjA3OGQyNCByZWxlYXNlMjctbWFpbnQKKzg1MjY3IGNlMjAyMTUyZTIxYTExNDNlNmU5YmVhY2FmODAyZmViN2UxOWNlZjAgcmVsZWFzZTI3LW1haW50Cis4NTI2OCA1MzZkODY1MGRhM2RmMGQ5NjdkYzk3NzhlMzM0M2FiMmFjOTg5NmNhIHJlbGVhc2UyNy1tYWludAorODUyNjkgZTllMjQxYTkzZjllZTMwY2VmOTM4MTA2MjNhZmQ3YTgwZDliOTJjYyByZWxlYXNlMjctbWFpbnQKKzg1MjcwIDc4Mzk2ZWY0ZDgxY2Q2Yjc1M2NhNTgzNzNhOGNlZmE0OGY1M2YwYmQgcmVsZWFzZTI3LW1haW50Cis4NTI3MSAxYTBlMDY2OTc3OWNjYWY2ZDgyNzA4ODEwNzU2MTNiYWYyMWU2ZGY5IHJlbGVhc2UyNy1tYWludAorODUyNzIgNTIxZWFjMzFhODkzYTk4YTBkNWFmMzQ0NmU4MzViMGRmZjQ3YzRiNSBweTNrCis4NTI3MyAxY2ZkM2IxMjQ4OWRhZTk0YTFmNjRhNzk3ZmM2MDJjOTlkN2IwYjU0IHB5M2sKKzg1Mjc0IDlhZmVkNzBkM2FjYTFjNjM3OGFlMmMzNGQzYTVkZGNmZjc5YTc3Y2EgcHkzaworODUyNzYgZGY4NDRiYjY3MjlhNGJjNjYxOGJhZGUyYzYwYmQ4YTU4ZTkwZDc1ZSBweTNrCis4NTI3NyA5MjU3ZjA4M2ZjZmYyMmY0M2ZjYTk4ZWQwYzdhZjk3NmRiM2ZlNGM0IHJlbGVhc2UzMS1tYWludAorODUyNzggMDE5MjA1NWJjYzNiZTkxNTkwNzYxNzdmYjU4MjczMThkMGNjMDNhZCByZWxlYXNlMjctbWFpbnQKKzg1Mjc5IGQ2NzI3NTNhMDNmMDA4Y2U5YjI4NGFkOWJlNDdkMDMwYzE4NDdiM2IgcmVsZWFzZTMxLW1haW50Cis4NTI4MCA3MDE4MjYxZjJhYzFkYTExMTBlNTc3NmY2MzBmN2QwY2RhZTQzOGJkIHJlbGVhc2UyNy1tYWludAorODUyODEgMmQ5OWVkYzRmMTBkZmIwY2ZkYTRhMjZhN2ZjMWMwZDBiNDJlNThjOCByZWxlYXNlMzEtbWFpbnQKKzg1MjgyIDViNTVlOGE5YzEwNzFkMzY0NDk0NDgzODJiY2Y1NWZiOGNiN2ZiY2YgcmVsZWFzZTI3LW1haW50Cis4NTI4NyAwNjZmYjNmYWY2ZDUzOTJmMmVmMzIyMzMwOGQ4ZTMxMGU1NzE4NjRiIHB5M2sKKzg1Mjg4IDg2MjlmN2Q4YjVlMzM3YjBhMDk3YWY4MDc3OTI1Mzc5ZDcwNDY4OTcgcHkzaworODUyODkgZDBjZTNlYjExYjI4NmFiNTQ5OTk5MmQxZWI4YjMyZGYwNWY5MzMyYSBweTNrCis4NTI5MCA0ZGE1NWM0OTM0MzU3MDAxNWE0OTQ4ZjBkYzFlM2E5MzM1Mzc2YjA1IHB5M2sKKzg1MjkxIGI4ZTc4Y2ZjOTRlYmE2YWU0NjI1ZTk3YjI5NTY2NDE4YTIzYTQ4NTIgcHkzaworODUyOTIgMzJkY2NjZGM3M2Y4ZjZmZGU4NWY4YTU4M2NhZWQ0NDk4ZDc4NmQxMSByZWxlYXNlMjctbWFpbnQKKzg1MjkzIDdjMTAzMWQzODIzY2M0ZGI0NDU5Mjg3ZDM4NDUwNDBhYTQxNjhjNzcgcmVsZWFzZTMxLW1haW50Cis4NTI5NSA2MmM1OGRjOTEyZTgxNjU1NGI4NzhjZjc2ZGNmYzFmZGNhYjA2YTdmIHB5M2sKKzg1Mjk2IGYyMzdmZGU5MjVmYTdkZDRlODc3MjJkNzY4MmIzOWFlYjAwYTViYjQgcHkzaworODUyOTcgYzFlOTU0MmI2Yzc0YWE2M2YwOGE2YTQ0ZGE3YzgzYTZjOGM2NjQ5YyBweTNrCis4NTI5OCBlM2FlNWIwMGJhMTVlZWU3YjY1YjQwY2EwOTJiNTQwNTQ5ZDkyZjMxIHB5M2sKKzg1Mjk5IGE2MmM0ZDVjZGY2Yzc0MzgxNzBlYzYyM2NhYzg1ZmVmMjFmMjQzMTEgcHkzaworODUzMDAgYjI0NTdlYjgzNGFlMDlkMjg0NjI4ODM3OWVjYmYzNzE1OTllODUzYyByZWxlYXNlMzEtbWFpbnQKKzg1MzAxIGRmYjM0ZTVmZTA2NjE5YTg1YzJkODhjYjBlMDcxOTc2OWI0OWZjZGQgcmVsZWFzZTI3LW1haW50Cis4NTMwMiAwNzFmMWY3YWY1MjIzYjg4YjIxZWYzYzZhNmQyYzFkYmUxMTcwNDc2IHB5M2sKKzg1MzA0IDM5MDE0ZjBhYmMzMjgyOTViM2I3ODBjNzYxMjc5MDc0OTg3ODVlNWQgcHkzaworODUzMDUgNzg3OWE4ZWM3Zjc5YTkzMjNjY2M1MGFlZjU0MGU4ZmY0ZjY2YmI5MCBweTNrCis4NTMwNiAxZjM5MTlhZjhhNTM2ZDE4ZWVkNDc1NDhjMDViMmU4NjkwMThjMTg0IHB5M2sKKzg1MzA3IDIxNDdjYzE1MjIyNzE1NDExOTAwY2MyNTI1NzUzN2MyZDdiOGUwMGQgcHkzaworODUzMDggOGZkNWQwNjQ2MmU2YjhkNWYxNjE4NjllN2M3Yzc0ZWM5NDUwMTQ0OCBweTNrCis4NTMwOSBlNGJkZDA3Y2UwYzYyNjkzOGNjZDk5MzZmZjIzZjE1OWZlZGExOGQ1IHB5M2sKKzg1MzEwIDFjNDc3NGI0ZTk4YTQ2MmNjZDAwMjBiMDVjZGFhOTAzZDIzNzVlYjcgcHkzaworODUzMTEgNzdhNmEyNDllMjRlOGU2MmVlZjVmMzVmMGViMGIxMmI2Njc0NGYyMSBweTNrCis4NTMxMiBmYTZlNTAyMDhkOTMwOTVhNDhmYjI2YmYzNWZlOGZmNDE1NmI5NTBkIHJlbGVhc2UyNy1tYWludAorODUzMTMgMzlhMGI5NDNlM2UxZjE3ZjEyMmYxZGVjODAxZjA2NWVmZTdkNTI3ZiByZWxlYXNlMzEtbWFpbnQKKzg1MzE0IDg4NGM3MWNkOGRjNjk1YTkyYjE2YzMxMzg3NzkyYWFmYzEyYzNkMWEgcHkzaworODUzMTUgYTE0ZTA3NGZhNDJmYzU1MmMyNDlkYzY3YjEyNzc1MjQ0NGNlYjUzZiBweTNrCis4NTMxNiBjNDExNTUyY2RjN2NkM2JlODlmNjEyMzUxNTcyZjYwMWMzY2I2ZWExIHB5M2sKKzg1MzE3IDhjNTc2MDJlYTFiMzBjMmFhMjFlZGJjN2VkY2ExZTIyZjA4YzdmZDkgcmVsZWFzZTMxLW1haW50Cis4NTMxOCBhY2RiMzIwMDVjMGFjMzBmYWMyODVmODM5NDlhZGE4MTY1Mjk2MWEwIHJlbGVhc2UyNy1tYWludAorODUzMTkgNmEyZjhmNjkyZjA0OGNjODllODI0YzI5ZTgyZGQ0ZWZjMDMwNjI2YyByZWxlYXNlMjctbWFpbnQKKzg1MzIwIGE5OTY0YTRkM2MyOWYwNjFmZWMxOTBlMWRlYzI5MDI0OTE2ZjZkYWMgcmVsZWFzZTI3LW1haW50Cis4NTMyMSA0Yzk4ZWVmZjM3ZTdmM2MzMmVhOTYwMGE3NzY5MWU1YTAzNTBmMGIwIHB5M2sKKzg1MzIyIDFhMDQxZjM2NDkxNmJiM2QzYWIxYjM4NmJhNDA1YzY2OGEwNzFlY2EgcHkzaworODUzMjMgNDk4NzM0NGNlZTIwMDEyOGVhYTI3NWY5MGI4ZDk2OWY3ZGJlNTNiMCBweTNrCis4NTMyNCBiMWZiMDUzOWJmOThiY2I0NDk2NDljMjEwYjgyNDczY2UxMjkwYzA1IHB5M2sKKzg1MzI1IGRiZTAyZTkxNmFlY2NmNGJlODU3NWQ1MDE4YTVmNzE1OGU1ODljNTkgcHkzaworODUzMjYgNTY5M2RlZGU5YTNhMDg0MDJhNzBlZjAxZDExNzhjOWRiZjczZWUyNiBweTNrCis4NTMyNyA5YzAyNjE4M2Q4MmE0ZWE5MDQxODlkYzAyZWY0M2JjMjZiMWI3YThjIHB5M2sKKzg1MzI4IGFlZGRiMTg3ZmNiZWJhNTZlMzdjNDcwMzE4ZjdkNDIzMzEyN2IyN2YgcHkzaworODUzMjkgMGJiYzNiYjAwZmM0ZWJkYmVjN2U0MThjOTg4NDgxNGJmZTc3OWY4YyByZWxlYXNlMzEtbWFpbnQKKzg1MzMwIDUxNTc1YmRjNTQyMDZmZWFmODFhMDg1YTdlMDVkNzQ1OWQwNTNiZTUgcmVsZWFzZTI3LW1haW50Cis4NTMzNSA0MmQ2YzI2MmM5NDY2NzA1N2VjNDI1YmRiMmJiZGJmNmM5ZjMwNTAwIHJlbGVhc2UyNy1tYWludAorODUzMzYgMGM0ODg0ZGI1M2UwNDkwMjVjZmQ1NjZmNWJjNjkyMzg0MGNjMzNjZSBweTNrCis4NTMzNyA2NTQzZmE0YjE0NTgxNTIzNGJiMmI5Zjc3MTZjMTUxYzJhYTdhZWVlIHJlbGVhc2UzMS1tYWludAorODUzMzggN2UwMWQ2OTY0ZDVkN2UwYWIwNzdhY2JlNzIwY2Q2YWFmYjQ1OTcxZiByZWxlYXNlMzEtbWFpbnQKKzg1MzM5IDJkMTY0YjFhZWI3OWI3ZGUzMWNkZTRjMjk1ZWIwMTI3ODI1YmUxZjYgcHkzaworODUzNDAgYTdhYjA0OGM2ODQ1ZDhlOTNjM2FjY2FiYTJmN2QwYzI3MzFmODg4MSBweTNrCis4NTM0MSBlN2M5YTg1ZmU5NjNiNThkZTBmNjg0ZDZhMzlkM2RjMzk1ZDY0NDJlIHBlcC0zODIKKzg1MzQyIGNmMmM1ODNiMmNiZWJmMThiZGFiNDkxMDFmMWU1MzJhZmZiNzNmNjkgcHkzaworODUzNDMgODEwYjU0MGFlNjUwZjc2ZGMwMmJlOGFkMTBmNWRjODVkMjI2OGRlMyByZWxlYXNlMzEtbWFpbnQKKzg1MzQ0IDBmNmZiYTY1YmNkZTdkMjkxNDkwZjgwYmQ2YjUyNjQ3MmI4NjVkMmUgcmVsZWFzZTI3LW1haW50Cis4NTM0NSBiNjI4OTllZDdmYjdkNWIzNzYyZjE4YTZkMDRlNzExZWFmYzIxOWFkIHB5M2sKKzg1MzQ2IGQ0NzVjOTQ1NDZiZWQ2NTRlOTVlODMzZWYzYzQ1ODZlYjE5MmZkMzcgcmVsZWFzZTMxLW1haW50Cis4NTM0NyBmZGViMGRjYjlhM2ZkMGQxOWY0NjNiZGEyYTFmNjY4ZTU2N2I4M2VjIHB5M2sKKzg1MzQ4IDJmYTlkNzM0NWFjN2ZhM2M5NDgxMzYxMTMyZDRhZjQ2NDUxNmVkOTQgcmVsZWFzZTMxLW1haW50Cis4NTM0OSA1MWQzMDRlYzZjMTFiNTk3NGY3NGVkNTg4YTVhODI2MmQ0YjkzMWQ4IHB5M2sKKzg1MzUwIGE5YTQ1NjI0Y2VkZjFkZTMyNDU1Y2QyZTI2ZTg2ODIwOTNhZjhiOTYgcmVsZWFzZTI3LW1haW50Cis4NTM1MSAyMzEzNGUxNjczZDcxYmE5YmQwZjQ0ODcwZTM3YTgxYzZmNmI5OGNhIHJlbGVhc2UzMS1tYWludAorODUzNTIgZWQ1ZTU5OGRhMTUwZWY2YjkwNTZhMDcyNzMwYTRiNDkzYThiMzNiYiBweTNrCis4NTM1MyAyNWQwNzg3MzljMmE0ZWQ4Mzg1ZGQ2YWQxNmU3MWU3Mzk2ZDBiMTQwIHB5M2sKKzg1MzU0IGMwMTllOTc3ZjIyMmMzMGJkMzZlYTMwMDcxMmE4NzUxNTQzNDNhNjIgcHkzaworODUzNTUgZWYyMWY4Yzk5ZmIzNDA1MmNlZDM2YmViZTI4ZjlkNGM1ZGVhNjVlMiBweTNrCis4NTM1NyBkYTAxMmQ5YTJjMjNkMTQ0ZTM5OWQyZTAxYTU1YjhhODNhZDk0NTczIHB5M2sKKzg1MzU4IGFkMTViODkxMDZkZTNiZTA1ZTBmMDM5NmIwNjdhODdjZWRmZTBlMDEgcmVsZWFzZTI3LW1haW50Cis4NTM1OSA0NTE4YjJjMmQ2MTRmMTM4MTdkOGU4NzVmOTUwMzMyY2E1YTcxOGVmIHB5M2sKKzg1MzYwIGNkYzk1ZmRkZGI3YjJiYTlkYWEwMzI3Y2FhNWZlOWMxZjhiY2YyZGUgcmVsZWFzZTI3LW1haW50Cis4NTM2MSA1ZWRlMTVlMTI0NTgxNjk5MDkzZWNjNDUyMDZmYTBiN2Y1ZDNmMDBhIHJlbGVhc2UyNy1tYWludAorODUzNjEgZDUwYmZiN2FiNTdjOTI2YmYwN2ZhYmI5OGNiNzhhYWMwNjA4MzhiNyBweTNrCis4NTM2MiA0NzU4MzA0MjRjMWU4MTg2MDU5OTQ1M2IzMDlhOTc0ZTZlM2ZjYWM2IHB5M2stdHRrLWRlYnVnLW9uLXhwNQorODUzNjMgNWFhZWZhOTc1MmFjYjQ5YTgwN2FkY2VjYTM1ZDIwODViYTM0MTM2NiBweTNrLXR0ay1kZWJ1Zy1vbi14cDUKKzg1MzY0IDYyYzE0ZWQ2YjhhMGE2MjRhOWEwNTliOGEwNDRkYTdiOGY1YWM1N2QgaXNzdWU5MDAzCis4NTM2NSAyNjc2YWY2NTUxNGQ0ZDk3YTlmYTJiOGI3NDQyODMxMTBmZmY1ODNlIGlzc3VlOTAwMworODUzNjYgZDQ5MDlhMDU2ZDRlNzgwM2JlOGEwOTIxZTE4MTdhYjJlNWQ4OWYwMyByZWxlYXNlMjctbWFpbnQKKzg1MzY3IDQxYTlmOTUxZWJlYTVlMWFjNmNlZTYzMTFkZmNkNzM0NTg4NTcyNzAgaXNzdWU5MDAzCis4NTM2OCAwYWRiNjQ0MDU4MWVlMWQ1YTZmM2E2ZWE0NDFmY2M1ZTk2NzljZDY3IGlzc3VlOTQzNworODUzNjkgZjdmNzA1MjkzMTBmODRiOTEzYzkyYzgxNDZkZmZlYWY3YzdiZWQzMCBpc3N1ZTk0MzcKKzg1MzcwIDlkNmQ4MzA2M2VjMjJiZGM0MjNkNDExYWVjMDAwYjM4ZDkzZmNlYzYgcHkzaworODUzNzEgY2JkZTgxZWY0YWY3YzAyZWM4NGU4YTg4YzBkMmUzMjQxYWVkNGNjZSBweTNrCis4NTM3MiAxOGI3MjU5Y2Q5MmQ4MzhlZjY5ZmRjZGE3NjgzN2IzYzhkNWZlNmQ1IHB5M2sKKzg1MzczIDk3ZjgwZDBhMWQ1NjM4YTNhMWYzZTcyZmZhNDRmMDZlNTQ0MDdlYjggcGVwLTM4MgorODUzNzQgNjY5YzM3Mjg3NTBiMTc1NmZiZGI4YTI5ZWFkMTYyYmMzOWUxYzAxMyBwZXAtMzgyCis4NTM3NSA1ZmExMjVhZTA3YTY0MTcyMzhhMGY1ZDc0MDFlY2M4YWUxNzFmYTQyIHB5M2sKKzg1Mzc2IGYzMjAwYmU0ZWFhMDk4NGQ4MTMzYjUzYTdlYTBmMDY4YzMyNDE1YmEgcmVsZWFzZTMxLW1haW50Cis4NTM3NyBmYWE0ZTIyYWFiYTdlNGIzNmVmOTNmYTBjZTYxYjBmMGRjYTMzMTNiIHJlbGVhc2UyNy1tYWludAorODUzNzggOGNmMWFmZjE4NTljNjI2M2E3NWEwMGVlZmM0ODEyYjVmOGVhYWZiMCBwZXAtMzgyCis4NTM3OSA2ZDkxOGQ5MTBhOTY4N2Y5OGU5OGU0YjIzOTQ3OTdjYTNjZjY3MTdiIHBlcC0zODIKKzg1MzgyIGQyNDkyOGMyODAwMTkxOGI0ZGM2ZWMzZTEzMWVjOTI1ZTY1ZjAxYTQgcHkzaworODUzODMgOWM3MjNhZmE0NGRhYmI0MjE4MTlhN2M3NDQyZTY4ZjRjMjhkZTRiZCBweTNrCis4NTM4NCA0NjEzZTE0NDkwMDA2ODI0M2ZjMGQ4MjhlZGI3YzFlMTE5NzYzY2NkIHB5M2sKKzg1Mzg1IDllMTQ3YzM0OTEyNmM2ZTgxZDYxNGM1MGI3OTZiM2RmNzQwYWRkNmEgcHkzaworODUzODYgZGVkNjFlMjZiODQxNGY0N2FkZDZjYTc0OTlhMWY0NDM2OWQ1ZDcwNyBweTNrCis4NTM4NyBhODE3MjA1ZDI1NGE5Zjc5ZmU3ZmRlYzIzZTNjMmViNDVhYTk2NjZjIHB5M2sKKzg1Mzg5IDM5YjM4Y2ExYWMwNGJkMWI1MWFjYjFlOTVmMWI1YmZkMTRkM2VjODggcHkzaworODUzOTAgMmZmYmZiYzBkM2NiMTZjNjE3ZTJjODlhNjQ2Yzk0NmFmMWYwZTM5ZSByZWxlYXNlMjctbWFpbnQKKzg1MzkxIDYxNzMxZWM5YTA0ODFlNTcxNjA2ODAxOTQ2MWYzZWI5OTdhZjExYmQgcmVsZWFzZTMxLW1haW50Cis4NTM5MiBlMmFhM2IxZDA4YmNiYzEwYWY0M2RiMGYyY2UzMzZlMGIyODdhOTU1IHB5M2sKKzg1MzkzIDc5MDk0MzY0MDhlMmVlMDhjNGExYjEyYTc5YTZiMjBmYjI4YTc2MjYgcmVsZWFzZTI3LW1haW50Cis4NTM5NCAzZThkMjg4ODZhZDY2MGQ5YzM5NGIxNDJmMmFhOGZiOGVhYWIzM2U2IHJlbGVhc2UzMS1tYWludAorODUzOTUgZjJmNTJiNDBjMWYyOGQyODA0ZWE0NjBlMGMxNGYyY2Y3ZGEwOGU1YiBweTNrCis4NTM5NiBkN2E3MWYxZDFlMzQxYzJhOWNkMWMzMmQ0NWE5ZTZhYjM3MTA3ZjBiIHJlbGVhc2UzMS1tYWludAorODUzOTcgMjE5NTdiM2IwYWNhMDkzMzQxYzA2MjYyNWI1M2U1NGViNWM3NzNlYyByZWxlYXNlMjctbWFpbnQKKzg1Mzk4IDc1YmViNjc2MmUzYjAyMzY3OWQyMGZiNmRlZTliM2QxODdkM2MyNDQgcHkzaworODUzOTkgYzA5MDhjZWJmMTg0MTBmYzcwZDhjZTNkOTJhZTE2NGY0OGE3NDU3MyByZWxlYXNlMjctbWFpbnQKKzg1NDAwIGQwZjYwYmViMjhmMjNmMjMwNDc5YjJkYTIzZmU5ODIzNTI1YTU3ZWQgcHkzaworODU0MDEgZWFkNTM2NGM0YTU5YTczM2E0YWUwZGQyNmJhNmJmMjUyMDZiODczOSBweTNrCis4NTQwMiBmMjljZTBjYzFkNGNlNmI2Y2QwZGUyMGEzMDU5YTJjMTBiNDdhNzJiIHB5M2sKKzg1NDAzIDc1MjA2ZGY4ZTU4YzYwMjg1MGQwZWY5ZmQ2YzFiNjY4YmExNDZiMTcgcHkzaworODU0MDQgMmNlNjQ5NjBkNDkwZGI2ZGZhNDczYmYzZDZkNWMwZDg1ZmY3MTVhNiBweTNrCis4NTQwNSAyMGY0NjNhNDU4NGQ3YzQyZTAzODZhOGYxMDA2YTM4ZWU5OTAzZmFjIHJlbGVhc2UyNy1tYWludAorODU0MDYgMjQ2ZDNkZmNlN2IxMDNkMGQ1N2YyNGQxOWVlMTBlOTA1NmI3YzlmYSByZWxlYXNlMzEtbWFpbnQKKzg1NDA3IDIzZWMwYmUwN2UyMGVkZGY4OTljNGM1MTQ3N2VjODM2NzQ1YjBhMzcgcHkzaworODU0MDggMTIzMjdiOWQzMzI1MTk4MWE1ODEzMWE2MDFlNTI1ODlhYjA2ZWYwYSBweTNrCis4NTQwOSBjYjZlOWIwM2QwYzMyMGM4NmIzZWQ2ZmQ5MTdmM2IxMWVmY2ZhNTA1IHB5M2sKKzg1NDEwIGExNTY3ODkzNzgzZjIzMmRlMGEzNjhiZjY1ZjliN2VmYjIxNjYyMzcgcHkzaworODU0MTEgYmY1Y2ZlOWEwYmI1ZTUxZTgyOTUxM2I2NDU3NDEwZDQ1MWUxNDY2ZSBweTNrCis4NTQxMiBkMDJkNmJiMDI1Mzg1MjUzOTZmYjI3MDBjYTMxNjgyY2E5OWFlYTc1IHB5M2sKKzg1NDEzIGU1MTdjM2Y1NjA5MTg0YjFhMzdlZGY0ODQxNTkwZmI0NThmNWE5MjIgcHkzaworODU0MTQgNWVmNzZiYzE3MWFkNmQ3ZDg4NGJiZTRhN2FlZjVjNDk3MDMxYWFhMSBweTNrCis4NTQxNSAzNzIxMzQzOGUyMWZhZmZmZTcxY2Y3MGVhYjdkNzIxZTY5NDVkOTBkIHB5M2sKKzg1NDE2IDQwZWNiNGQwMGYyNWFiOWIxNDZlYmU5MmUwMjE1MjlkYTg2NjIwYzkgcGVwLTM4MgorODU0MTcgYzQ4YzA5ZTY5M2U2YzkxOGU0OGQyMTkxZGVjYzVjMGEwOTA2OTEzNyBweTNrCis4NTQxOCBmYTkwNTcwMDc3NTU1MWY0NzUwNjk0NjQ1NjhjOWZmNWEyN2QwMTdlIHB5M2sKKzg1NDE5IDBkMTZkNTBjNTdhMGYyMzQyY2UyODU3YWEwMDgwODVkMGFhYmU0OWEgcHkzaworODU0MjAgMTg3NWJmZWQ1Njg5YjlkMDI5MjliNjhkZmE5ZmE4YmNhZjkyMTE1MSBweTNrCis4NTQyMSAzNjE5YzEyMTQwMDdkM2Q1ZTNkMDdkMjM1N2Y2N2IyMmFkMjQzMmY3IHJlbGVhc2UzMS1tYWludAorODU0MjIgZWVhZWRjYmUyODFkNTg0NGZiMzVhM2QwMzRhMzAzMGNlNGY4ZWYyMiBweTNrCis4NTQyMyA2ODk5YTljYTVmMzUzNWRiMzQ5MmFiZGEwMWY2YzQ4ZjE1ODNkZTc0IHB5M2sKKzg1NDI0IDhiMTkyNTAyYTRhOWFkNzg4MzkwNjk2Y2RhMzdjMjZmMTNjNmI3ODggcmVsZWFzZTMxLW1haW50Cis4NTQyNSA2MTBjMjViNWNmYTI4OWJmNzU0Njc4YjZkMzQ2ZmM2NTA5M2Y5YjI2IHJlbGVhc2UyNy1tYWludAorODU0MjYgYTFlZGRjNjRiNzUwNDljOTc4ODEwNWE5M2UxZTM3NDdiYWU1OTk1MCBwZXAtMDM4NAorODU0MjkgMTk2MGY1OGFmNzg1ZDRhNzBhZGJmYzA0MTkyZTc4MmI4MTZiZjE5NSBweTNrCis4NTQzMCBhNzVmZDMxZGRhYmJlZWNiMDM4YWVjNmJmNGI0YjVjNzFiZDc2YzliIHB5M2sKKzg1NDMxIDAwZDEzYjJmODFhM2MzMWExMjM4ODVmZmYwYmJiNzg0NmJjYTY1YjEgcmVsZWFzZTMxLW1haW50Cis4NTQzMiA2MWMzNTQ3MmE0ZjgxYTQyMjc3NzFjMWY4MGRiNzBhODNlMTVhYzY2IHB5M2sKKzg1NDMzIDY0NzRhZGRkMjgzOGI3Njk3N2ZkYjg1YmZjNjIzNzAwY2IzNDdiM2UgcmVsZWFzZTI3LW1haW50Cis4NTQzNCBmMmY3YjcwZmM1ZWJlNGY5MGFhNDM1MDg0YjkxZmM5NGUxZDdjNjMxIHJlbGVhc2UyNy1tYWludAorODU0MzUgMzMzNWVkY2U0OGEzNTQ2NDliMmE4YThiYzhkY2NiYmFhNzIwNTE1NSBweTNrCis4NTQzNiBhNGE2ZDgyM2ZmODk1MTY2MjJmMTUyM2U0ZDE5NmE5OTkwYmNkZDJkIHB5M2sKKzg1NDM3IDQ3NTU3NDQ3MjRmMjBiYWQ0Nzc5NmI1Y2Q3NjdmYTA2NzY5ZWIxNjAgcmVsZWFzZTMxLW1haW50Cis4NTQzOCAxZjIyNWQ2Njk0MWE5MjMwMjY1MjIxYzgwMjAzNmVhODQxYzJiN2I1IHJlbGVhc2UzMS1tYWludAorODU0MzkgZTc2ZjU1NDE1OGE4NWJlYTNhZjUxZDlkOGY3NzZlNzg0OTY4OWJkZiByZWxlYXNlMjctbWFpbnQKKzg1NDQwIGU5ZWEwOTc4N2EzNWNmOTNjZjUzNWY5NjY0OWRmYWMxMjZiMGVmZDQgcHkzaworODU0NDEgNGM1NzA2YmMyZjQzMDUxZmM2OGJmNjQyZTAxN2ExZDRiZjZkMGVlMSBweTNrCis4NTQ0MiA0OWRmNzc4ODg5ZTZmYWNjZTM5NmUwZDFiY2NjZTY3MjlhNTlhMTM4IHB5M2sKKzg1NDQzIGE0NjcxMWRlOTI5MTIwNzJiZDE4NzhjYWNkNzFiZmRhYWExNTVkMDYgcHkzaworODU0NDQgNzhhMTJiODI5YTlhYTllNzdjNGJhZjljMzQyMDE2YTI1ZDYxNmJkNiBweTNrCis4NTQ0NSAxZTcyYWJmMDczYzU2ZjVlMzEwMzEyMDJlYmQ4M2UzNmM4NDYwMzM4IHJlbGVhc2UzMS1tYWludAorODU0NDYgZWJlMTRjY2JhMWI3YjUxYTg0YjE4YjlhMDY5NDI3YzVmOGNjMmZiYSByZWxlYXNlMjctbWFpbnQKKzg1NDQ3IDZmZDQ5ZDA1MjEzNDVkYWQxZmM4MmU5NjM1N2JhYzVjYTc2NTNlNDUgcmVsZWFzZTI3LW1haW50Cis4NTQ0OCBmYTI3ZGQxMjk4ZmU1Nzc2NTA4NzJkY2QxNjRmNmVhYTE0MDJkNGNjIHJlbGVhc2UyNy1tYWludAorODU0NDkgMmYzZTBlZWNjNzYyNzdiZjUzYzE3NzBhNDYyNzg5ZWUwZDU2ZmQ5YyByZWxlYXNlMjctbWFpbnQKKzg1NDUwIGNjYzQyNGM5NjY0MjZiZDE1MjIyMDJmMjA5NGYyOTJmZWIwYTQ5NGUgcHkzaworODU0NTEgYjVjZTA2YmJiMDZmZTIxMzAzMTA3MjkyNDVlMzVkYzk2MjE5ZjBkMSBweTNrCis4NTQ1MiBlYTJmZTk1ODFjMmQ4ZjBhMjAzN2ZhMWFiMGY4NDkzMjEyMmZlNmU1IHB5M2sKKzg1NDUzIDMwYjNkN2M1MjUzZDU4OGViNTA3MDY5MDVlZTkxOTIyOTRlZDI3NjYgcHkzaworODU0NTQgMzYxMWVhNDJiNzkyZGMxM2M1NTQ4Yzk2OGI1ZDM3OGZlMjk5MzU5ZCBweTNrCis4NTQ1NSBiYTY1ODFlY2I2ZjFlZTdhNDgzMjM1NGI3ODg5YjBkMmY5NDJkODZjIHB5M2sKKzg1NDU2IGZkMDQ0Y2RhOTdkODM3MGZjZTMzYTEzOTA4ZWJjMDYwYjgwZjkxNTggcHkzaworODU0NTcgNmFiMGY5MjE5NjYwYjg4MmVmZDRkZjY0YzkzMTYxNWM4ZjU4MWJjYiBweTNrCis4NTQ1OCBiZWFlNzZlZDVlYmZlM2Y4ZTNjMDZiYzg2NmFkMGU2Y2RmOWI0YmVkIHB5M2sKKzg1NDU5IDdkNzk2ODgxNTZkYjVmZGJjOTAwZDhjNzcwNzJlNjE3YjQ5MWUyNDcgcHkzaworODU0NjAgZGMyMDBjZjJmNTY1OGFjMTA1ZGVmNTJkNjkzYWU3NzUyZDk2NWQ5MCBweTNrCis4NTQ2MSAyZjE3OWEzY2IyMDY2MGEzMmNjZjgxNWU3ZjQ0YjE1Y2M1MzFkYTNlIHB5M2sKKzg1NDYyIDgyY2RlOGI3MzcyODIzMTkxYzk5OGQ0MDBjNDdmYmEyM2VkN2Y3ZDEgcHkzaworODU0NjMgNGE4ZTBkODk3NTViNjRjMmU5MDM1MzJlYmZiNjExOWI1ZWMwNWQ2YSBweTNrCis4NTQ2NCA2N2EyMTg1NzBmNGE0ZTE2YjA0NWEzNTgzNjgxYzEwNjFhMGVlYTNkIHB5M2sKKzg1NDY1IDY2MGFmZGFlYjJkNmU2MDcyM2VhZGNiNjU3NGZhMDVhYWFhOGJkZmYgcHkzaworODU0NjYgMjg1M2NhZDljYmMwMjQzMDBlMDU3YjAwNGFhNTZkODQ4ODcwYWUxNyBweTNrCis4NTQ2NyBlMmM5OGM2MGRkNjRkMGE1ZDIxMDRkNzNmY2I1ODZhMjQxMGUxNzQzIHB5M2sKKzg1NDY4IGI2NTIwNjEyOWI1Yzk0YzY4NmQxNDc1YTkzMDkxMjg4ZGRjNTQ0YjcgcHkzaworODU0NjkgOTk1YzMzZTIyNjNiMWM5MTBhYWI0MWFmNGYxYTFlYmFmN2NiODg3OSBweTNrCis4NTQ3MCBhNWVlYWQxNDFjYjQ2MzU2ZjVlYmNkZDlkMmU0Y2I1MTg4ODNhODkzIHJlbGVhc2UyNy1tYWludAorODU0NzEgNmE4NDg5NTU0MDE5ODJjMjZkNmZjZGFhOTU3MjI3MzY2NGIzZmE4YiByZWxlYXNlMjctbWFpbnQKKzg1NDcyIDcxZTc2ZDAzZmM2N2YyNTA3NzRhY2JmYWZmYmVkZjRjNDQ0ZjZhZjQgcHkzaworODU0NzMgZDdmOTA3MzU3ZGE3ZTk1MGNiY2RjNDE5ODdjMDU4ZjFiN2NjNjlmYiByZWxlYXNlMzEtbWFpbnQKKzg1NDc0IDgxM2I1MWE2YTQxNzk5N2Q1NWMxODU3OTRjZmY0YzFlYWZlMmE5NGMgcmVsZWFzZTI3LW1haW50Cis4NTQ3NSA5ODJjOGVjNzNhZTM3ZTBlZDZkNTQ5NzNlYmEzZjcwYmY2MzllYzhjIHB5M2sKKzg1NDc2IDNkOWVmMDk4ZGFmMmUzNmZjYmM2ZDIyZjdhOTU2YWI2NzNiMDEzMGQgcHkzaworODU0NzcgYTI3ZmMwZmYzNjc4YjAwOTY2MzQwNzY1MGYyOWVhNGYyMTczNGYwMSBweTNrCis4NTQ3OSAwOGE5YzA0NjAwNGRkMTFhOTRhZjlmMWVjMzEyMmZhZDQyOGRiNmZlIHJlbGVhc2UyNy1tYWludAorODU0ODAgMTI0NDJhYzNmN2RkYmJhM2NiZTk4MDRhOTMyODkwNTRlOWJkZWM0NCBweTNrCis4NTQ4MSAxOTBmMjQ3ZWRiOWVlYmNmMzBkZmZiMmFmZDE0OTk3ZWViMGJjNzFiIHB5M2sKKzg1NDgyIGFkNDBjMGEzZTIyMTU2YTFlM2M1Y2NmNTJkODhkOGJlYjU2MDNhZDIgcHkzaworODU0ODMgYjgzZjBhNjY3ZTdjZWIyZWVkMWMwZDM2ZDhhNGIwNzRkYTgzNmY5NSByZWxlYXNlMzEtbWFpbnQKKzg1NDg0IDA3YjZiYjc2ZWU0MzkyM2M1NTZmZDAwOTcxNWYwYzNhNTVkNTljM2YgcmVsZWFzZTI3LW1haW50Cis4NTQ4NSAwNzhlMmU0N2U1MmIwNmFmZTEyZDE4MTk5OTllZWZkYTIxNjdlNjMyIHB5M2sKKzg1NDg2IGI4ODZiZjYwMjUxM2I0ZjdlOTdlMTU3MTVmZjQwM2Q1Y2I4N2M3ZTcgcHkzaworODU0ODcgOTBjMmI2NTQ5MGM3NTMyMzE2YWQwZDcxNWQzYTY3MzY5YzUzYzE0NCBweTNrCis4NTQ4OCA4MGQzYTM3NDk5YjFiMmIyMDlhNmVkODU3OWY2NzZiMDU1NDc0ZTM3IHJlbGVhc2UzMS1tYWludAorODU0ODkgMDY3ZThiMjAwMGRkMDU3OTJlZjA0M2E2MDY3NmU1ZjVmNWNlMjNiMyBweTNrCis4NTQ5MCAzZTc5MTM0YzY1MzU3YTc2MmRhMjVmYWUxMDZlNTFlZjNhYTQwMGViIHB5M2sKKzg1NDkxIDFhNjAxM2VlOTc0YjA4NzdiOTRhMTMzYzYwYmQzMjkyYzQ3OGNjN2QgcmVsZWFzZTMxLW1haW50Cis4NTQ5MiAyNTNhMjY4Nzg1ODU3NDhmYmU4YmY2NTgxMjcwYWVjODY0NzY2ODhlIHB5M2sKKzg1NDkzIGI3ZWNkOTQ0YjdjZWIyYWQxYzdmY2JlMTA4MmEyYmE3YjBiZmIyOTggcmVsZWFzZTMxLW1haW50Cis4NTQ5NCBkNTJkNWQzNTlkYjMxMDAxMGVmNzVkNWFiNWE3ZjI1ZDViZWUyODI2IHJlbGVhc2UyNy1tYWludAorODU0OTUgMDUyYzE5OWFlMTlhOWIwOWI4MzI0OWQ2MmExNzUyOTQ2YTBiYmFmNiBweTNrCis4NTQ5NiBmM2RhOGNkNzQxMTM3OGI2ZDA5ZDUwNjg4NTA3YjE5Yzg1MzBkMmUwIHJlbGVhc2UyNy1tYWludAorODU0OTcgNDY5NTZhMjVjMjY0MWJmZTdiYzhjNWFjM2VjNTZiMTg4OTk4ODcwNiBweTNrCis4NTQ5OCA2Mjk2NjMyYWQyY2JlNjVmNzAzMWJiZTFjZTZmZjFjMjMzMjJiYWZjIHJlbGVhc2UzMS1tYWludAorODU0OTkgNDI2OTI2N2U2ZTU3ZGEyNDMyNWRkNzZiMzYyMDM0MWFhZmIyOTg0OCByZWxlYXNlMjctbWFpbnQKKzg1NTAwIDZjZjIyM2VjYWE2ZjBkYzUzMjdjNWMxOTI2ZTMxNWY4NzE2MDQxNzIgcHkzaworODU1MDEgY2ViMTI3MDNjNmRiYTMzMDI2MTVlYzBlZTE2ZDY3NzY2MjU4Yjk4NCByZWxlYXNlMjctbWFpbnQKKzg1NTAyIDI3YzA1MTI0NzIzM2E2ZTI0YjM2YjE3NjNlNTFiNjE0Y2RhYmZlMjUgcHkzaworODU1MDMgNGQ1ZjBjNDQ4N2ViOWZmYjM2NWU5MzMyZDc1YTRkZWQzM2JiYzU5NiBweTNrCis4NTUwNCAxNzgyZGE0NDBmYjFlNDQ2Zjc3OGRkN2U0MzI1YWI1Yzg2Njk5OWE3IHJlbGVhc2UzMS1tYWludAorODU1MDUgZmVhOGYyMWIxOTlkNzRkN2I0MDhkYTk1ZTdkNTM1YTkwZjA2YjI1NyByZWxlYXNlMjctbWFpbnQKKzg1NTA5IDdkMWU0NTNiMTIwYjZlNjJiOWE1MDYxYWFmNjI0YmNjYTg3OTBmY2EgcmVsZWFzZTI3LW1haW50Cis4NTUxMCA4OWE4YmY1MzI1Y2QxNWZlYTllMzBlZThmYTkzNzhlODNmNjc0ZGU1IHB5M2sKKzg1NTExIDVlMTU3NjA1MDc0OWJlYmExOGIxYzI5Y2EzODQ3ZTU4NDllMmQ4ZmUgcmVsZWFzZTMxLW1haW50Cis4NTUxMiAxNzgwNjg0YWUzYWQ5N2MwZmJlNmNhM2FhYzcxZjA3OTE2YjA1NDEwIHB5M2sKKzg1NTEzIGMzZjJjNWQzNWFmYWZjZDg5Zjc4MGVkZjEwZDgzYTk5MDI1YTQ0MzcgcmVsZWFzZTMxLW1haW50Cis4NTUxNCBlNTEyMzcyZjc0OTQ2ZDZmOGEzYjYwNTg2ODBiZjMyNTExYTZlYTY4IHB5M2sKKzg1NTE1IGNjMWQ4YTJkYjM0ODZlNDEyODM3YTA5Yjk1ZDJjOTA0YTQ0MDBiYTYgcHkzaworODU1MTYgZjYzZDc0NzYyMmJkNTE3MzQ3ZjFlYWZlMDEyYTEyYWI5ZWYyYTU3MCBweTNrCis4NTUxNyA0NTNmZDgxODJjMmY5NmU5ZTBlMTdjM2YzM2NkZjcyZDUwMmVhMmJmIHB5M2sKKzg1NTE4IGJiMzAzOTNkMWVhMTg5YWQzY2I2N2I5NTRlN2Y3Mzc4MDIzODlmNzMgcHkzaworODU1MTkgMTU3NzUxY2M0Y2Q1MTg4MzcwMGU5OTM2ZjIyOTdjOWNkNmI1MmRlZiBweTNrCis4NTUyMCBlNzczYTFmMjNkNDMzOTNlN2JiZjdhMzJmNzRiNDE1MDc5YmY2MDMxIHB5M2sKKzg1NTIxIDljNzNmZTNmNDdlMjY5MDYwOTkzZDM1YTc3YzNjNTA0YzliODRkOTYgcHkzaworODU1MjIgNmEzNjViOWEyMmJhOWMzYjAxZGU1MDg3YjA2ZDJhMmE1NWExMTgzZiBweTNrCis4NTUyMyA1MjAyNWMzNTQxZDg4OGZkMTliMDQ3NWQ0YmU5MmQxYWRmZDBiNTU3IHB5M2sKKzg1NTI0IDFmNWEyOGJhNzQ3N2QwMmEzYjgxNTIwMjlhMjk5MWE4Y2U2MDNjOWYgcHkzaworODU1MjUgODhiZGVmNTM2MGFmMDNhY2VmZmViN2NmMTc4NTlhOTBlYzcwM2E3OSBweTNrCis4NTUyNiAzMjBkMGZhMjE2NThkMWRmNzQxODk2YjQ3MzUyMzYwNWIxOTYxOTk0IHB5M2sKKzg1NTI3IDRlYmMwMzA4ZjRiMTJlZTNmOGI1OGQ5YmM4YWVkZDllNmM2YTM3NGMgcHkzaworODU1MjggMGI1MGQ4NzA2MTM0NDYzNGE3MTEzMjkyZmZlMzkxMjMwZmE3NGIxMSBweTNrCis4NTUyOSA4MGZlMDY2YzEzNWE5MDQ3NjgxYjVlNDcxYzM1NDUzZjFiOGU1ODczIHJlbGVhc2UyNy1tYWludAorODU1MzAgNDE4NjhjYTUyNzQ0YzhlZDJmM2E3ZTBkNDU0Zjc0NjA3MmJlYTE0MSBweTNrCis4NTUzMSA1NjMzYWY1OTAwNTcwMmI5NTMxMDA1NmQxYTVlNGZhNGJmZTYxODdmIHB5M2sKKzg1NTMyIDhmNmFiYTIzZmIyYWJjNzViZTllYjJjMGNjZTk0YmYxMmRkZDU4YmMgcHkzaworODU1MzMgMTA0MzU4YjVkNGQxNDQ2ZGJjMDVhYmUwZWZiYzhjZGIyM2UxNTQwOCBweTNrCis4NTUzNCBkYzI1YzUwYTdjMTE2MDY4ODQ5MTJkMDJiNTAxMTM2YmQwODAwNWRkIHB5M2sKKzg1NTM1IDZiODMxNDM3NmRlMmVlYjRlNDU2ZWUwNzQ1Zjg1ZTJmMTYxMDVmZmQgcHkzaworODU1MzYgOTJlYTU2YjUyZDhmNzMxNGJjNTdhYTk3YzE4NTJhODE4ZmQzMDI5OCBweTNrCis4NTUzNyA5NzEyNTg2ZmE0MmY1ZjlmZWEwZTM3MTA1NTdlODFjOGI4MzhkN2JlIHB5M2sKKzg1NTM4IGFjODY4MDY4NWZkZWFhM2U3N2Y4MDg1ZGY1NDY3NTg1M2VlNjY4YzYgcHkzaworODU1MzkgZDgzODRmY2UzYzczYjlkYWFmNDZhN2JjZDUxNTBmMThlMGY5NmVkMSBweTNrCis4NTU0MCA3OGQ1Mzg1OTM5NWE0NDYyZTczZjZlYzY3MzVjNTYzMTM1MmI1MWQ4IHB5M2sKKzg1NTQxIGYzM2JiODUwNzg5ZWE4NTJlZDM4NjY0NTU0NmE4ZGQyNTk4NDkzNDUgcHkzaworODU1NDIgN2RlMzY1YzE5ODZiYWJhYjZkYzk4ZWU3YjE3N2YzNGUyNjQ0ZDE3YiBweTNrCis4NTU0MyA2ZjRjZjczMDMyZmM5YjhmYzg0NmIyYWEyYjQxNmEyNzE2MmUzMmQ2IHB5M2sKKzg1NTQ0IDkzNDdiMGE4NWNhZjU4NmFjMGVkMTZlZDM4YzM1ZjU5YTFhMTg4MGUgcmVsZWFzZTI3LW1haW50Cis4NTU0NSBlZWM0OTk4NDdkZjdiYjlkODM4NGJiYWRiODQyYTNkMTg4NjYzMzdhIHJlbGVhc2UyNy1tYWludAorODU1NDYgYjcxYWFmNGU3ZDhkOTAxYmFmZjA2Y2NkMTU1NTkxYWRjYWIzZjUyZCBweTNrCis4NTU0NyAwZTJjYmMzMWZjOTI1ZTI5NjIyZTg0ZmJmZjM0MjRjODA2YmEwMGE5IHB5M2sKKzg1NTQ4IDM5NGMwMGI0YzkxOTRjZmQ3MjZlYTMyYjMxMjgyMWY4NzQ2ZjkzMGYgcHkzaworODU1NDkgODQ0ZWQ2ZGRkYzAzMWVmZTk2NGUzNWRjYmI4ZDUyOWMyMGZmYTRmZSBweTNrCis4NTU1MCAzNDhmMzM2OTY0MDIxNTUwMTQ5OWM3ZjJlYTgwNTlhZjkxZjk3MGMyIHB5M2sKKzg1NTUyIDkwMDUyODg5Y2UzZGUzM2MxYWUwYTA5YjRkMDRmYjNjMTJiY2U4NmEgcHkzaworODU1NTMgMjkyYjFkZjAxYmFkODdjN2MzZDcxNzVmNmE2NzgzMWY3NDgxOWJjYSBweTNrCis4NTU1NCAzYzQyMjViZjg3YjQxMjY2MzQ1Njg4M2FiOGQ1ZTNkNWY2ZTc4ZmY0IHB5M2sKKzg1NTU1IDJiMTdiZTYyYzc0ZmNjODAzNTIzMTQxNzYwMGRhZjc0ZjkyMzdmNWMgcHkzaworODU1NTYgZDQzOTBiNmJmN2VjOGUxNmYyZTQxMGUzOTU1NzEyZjA2MWQ1NzMyMiByZWxlYXNlMjctbWFpbnQKKzg1NTU3IGRkZjJlYWQyNmFhYTQ1ZWE2OWUwOGYxMWYxMzFmMTkzZTVjZDczYzggcmVsZWFzZTMxLW1haW50Cis4NTU1OCA0ZDZjNjNjNjU1NTBjMjM2OTk0ODI2ODJjNDc0NmFiNjdjYmVjZGFiIHJlbGVhc2UyNy1tYWludAorODU1NTkgOTMyZjk3YmZiZGMwYzUwNDlmZWFmYzgyMWE4YWIxNDZkMTQxN2QxMiBweTNrCis4NTU2MCBmY2RjMmZhZTUwYzA4MWFjOWI3MDNkY2FjOTU3ZjlmYjAzMzRkMGVkIHB5M2sKKzg1NTYxIGY5OGMzZTJmZDA1NTAzMzEyNDUyZTEwYThiNWM3NzYwNTFjM2IzODEgcHkzaworODU1NjIgZmQ1YzgzZjc2NDQ3NTBiZDI0YWFmZjBjYzJiZTg4NzZiMzE3OTNlYiBweTNrCis4NTU2MyAzNjE4ZDlkNzkwMmQzY2I0NDhiMjUxN2IwZmQ0ODBkNDA4YWIxNWZmIHJlbGVhc2UzMS1tYWludAorODU1NjQgMGJkMGU4N2E2ODUxNTQyMjQ2ZGE1YTdlM2ZlNTlmNzM1ZDI5MjY1OCByZWxlYXNlMjctbWFpbnQKKzg1NTY1IGY5MTg0ZTdjZDI1Y2UxMzA3NTIwNGRhNzhkZjQzYjgxNzJmNzZmYzggcHkzaworODU1NjYgZGQwODY3YmQ5NTU3OTBkOGM4NjM1OTY3MTRkM2Q0ZjJjOTU4MjMwNSBweTNrCis4NTU2NyAwOWVmZmZlNzAwMzA3MDE4ZWZlMWIxNjdlMGVmNmQzZmY0YzY3ZTBkIHB5M2sKKzg1NTY4IDc2Yzg4OGZkMjM4MGRmMjZiODAzMjZmMWY2NjViOTg5Mjk1YjExM2YgcHkzaworODU1NjkgNTVlZDVjNTI0NDI4Y2EyMjg2NGRiNjRkOGIwNWY2NTQ2OGI1ZGI1ZCBweTNrCis4NTU3MCA5ZWQ2OGRkNmI3MWZmNzIzMzliN2JhOTdjYTVkMjQ3NDc1ZTNlZTljIHB5M2sKKzg1NTcxIDYwMzk4NDUwOTM0MzAyYzEwNmViOTM0Mjk5YThiNDY1YzEyNWI1NDAgcHkzaworODU1NzIgNjg2YTJhOTFmODI2MDgwZWU4ZTVjMzJiOWJmN2YwOTU1ZjI3NmVhZCBweTNrCis4NTU3MyAzZjJlMTQ1YzRhMDJlNjYyMGZjYzg1NTA2Y2Q2MmZkZjI1NDM1YWQzIHB5M2sKKzg1NTc0IDUxODFjM2JmODk3MGUxN2JlMTNkMjEzNDQ2YTEwYmI2M2M4ZTQ2ZGEgcmVsZWFzZTI3LW1haW50Cis4NTU3NSBhNDQyZWNiNzA4NDFmMmRkN2M1NWEwOTU0NzU5YzZjNjRmYTVmNjM2IHJlbGVhc2UyNy1tYWludAorODU1NzYgMGJhNTBkNDg1ZjA3MjY4YTM0N2U1MDVhNmZhZDdjZDNkMmE1YmY4ZSBweTNrCis4NTU3NyBiNGJkZDQyOGViMmIxZjIzOWEzMjQ0MjNiNDE3YWI1NGQzYTYwMjVmIHB5M2sKKzg1NTc4IGI3NDlkYzRjMzc0YzE2N2ViYTEyOGM5YTk2MjUyNWRiMWIyNmZkZTUgcHkzaworODU1NzkgZTFkYzk4NjFiNDNmMzljMTEyMjdkNmIzZDAxMTFlNTI2OGYyMzg0OCBweTNrCis4NTU4MCA2ZGNiYTkzZDYyNjIwMmFjMDU5ZTBkYTAxZTE4MWJlZjMyYjY1ZDE0IHB5M2sKKzg1NTgxIGRmMGUzNDhlNzE3NjJlOWE1ODQ1Y2RiZjgwZmJkNmE5YzQ5NWIzNDYgcHkzaworODU1ODIgMzc5NGM5YjUwODI0ZmQ3YjVmODM4NDZlZjg3OTljMDYyMWViYzI2NiBweTNrCis4NTU4MyBiYTg2ZjM0ZjA4ZGE2YmNhMWE4OGFjOTZlN2Y4NWJmMzgyYzI3YjA4IHB5M2sKKzg1NTg0IDkzMDZmZjFjM2Q0NmY3ZDE3YmYxYjBjNjMxN2QwYjAzNTIyZDk0YmIgcHkzaworODU1ODUgMzQwMzU5ZDgwY2EwNTZhMjBjZjUyNDU5MTdjMGYwMjkxMjFmZjY0OSBweTNrCis4NTU4NiA0NDNhYjJjYmFiY2JjYWRhZGY4OTkwYTllYTdlNmM4MGEwZmFlODhjIHB5M2sKKzg1NTg3IDAyODMwNTUzZGJkMTk5Mjk3Nzc5MzJhNjAwNDBlZTg3NzY4MmY3MjkgcHkzaworODU1ODggZmQ1MTM1Y2JkOTI4ZGYzMzBlMzk3ZTI2ODhlNzk5NWM4NThiNTNkYiBweTNrCis4NTU4OSA2MDg3YjFmNmNhOWI3NGViODJjY2I1MDZmMzgwMmY1NjlkYmVlMmM5IHB5M2sKKzg1NTkwIDZiMjY2ODg3M2YzMGQyOTFjMDk2NjNmZTFmYTM2NjNkNTBjZTExMzUgcHkzaworODU1OTEgNDM1NzViMDk2OWVkMDYzYzA5Zjc0NGRhODFjMGMzNjJjYzg4ODkyMiBweTNrCis4NTU5MiA2ZWNlNjI5NDQ1YjYwYjM1MTViNjJhN2Y0YjM4ZDJhMjA3MDkyNDM4IHJlbGVhc2UyNy1tYWludAorODU1OTMgMWJmNzY3ZjI4ZGI0ZGY2MjM0ZTIyMDBiY2M4ZTc3NmJiMDdkY2RhZCByZWxlYXNlMzEtbWFpbnQKKzg1NTk0IDA1MDVlYmE2MjM0NzJmY2VmYmZjMWI2MzkxY2Q3MWQzNjE0OWRlODkgcHkzaworODU1OTUgYzk5Y2Y5MTAyNDc2YzQ5YzU1MDVkM2Y5N2U0YjcxM2I4ZWZkY2ZhOCBweTNrCis4NTU5NiBlYWJjNWM1M2YxMzRlYWNjYzUxYjcwNTE0OWM5YzFlZDNhZDMzMGE5IHB5M2sKKzg1NTk3IDI4ODBlNzJhNDY0YmQxYzFhODg1MWVmNTllODJkMDMwZmNjOTkwZjQgcHkzaworODU1OTggNmU1NTk3OTNlNDUwY2VlMzU2NTMyNjY4MDg1YWIwM2JlY2IyOGJmMCBweTNrCis4NTU5OSAxNTg1OTc0MGFhZTZjMmQ3MDJjNWM3OWM0ZTliMWE4ODBhZDlkZjZmIHJlbGVhc2UzMS1tYWludAorODU2MDAgNzAyNTI3OGM1YTQxYThiNmM4NTkzNDFmZDQ3MzFjMGE0YTIxNjhhMCByZWxlYXNlMjctbWFpbnQKKzg1NjAxIGY2MjE2YzVmMDY4MDNhZTViZDllNWY5NjM3M2NkZmZhY2UxZmMzMmUgcmVsZWFzZTI3LW1haW50Cis4NTYwMiAxNWUzYWQwY2EzNjQ4YjlmOTcwY2ZlZmVkNmRiY2U4MmY2MTA3YzVkIHJlbGVhc2UyNy1tYWludAorODU2MDMgY2FhMTdhMDMzMTc2YjI5ZTg2NjRlNjFmMTA1MjU3MGUzYTdmZTIzOSByZWxlYXNlMjctbWFpbnQKKzg1NjA0IDA4ODQwMjQ2OTAxNmJhNTFmOWI1YmFlMGE4MzhhOTc0NjcwOGYwNzQgcHkzaworODU2MDUgOTMxZjIzOTA4Mjk2NmZmY2M5ZGY2OTNjNDRkYzBkM2NjNjE1YzgyOCByZWxlYXNlMjctbWFpbnQKKzg1NjA2IDg3MzNjNjkwM2ZjY2EyNmRmZmJmMDlhYWNkNDI2MTYyMzg1OWNjOTggcHkzaworODU2MDcgYmU2MGM5NjBhYzA5YTQwZTA0MjUxMDAwOTdmMzRjMmZiYjEzMWExMCBweTNrCis4NTYwOCAyZTg1MDQ3MTE5ZDIxYmFmZjkxNDc4YzVkNjkwNmIwMmFmMWRlOTkyIHB5M2sKKzg1NjA5IDViMmFmMzViOGI0YjYwNmEyYzBiMGI1YTczMGFkMzAxNGVkNDY1NTkgcHkzaworODU2MTAgZDI1MzQ2YzBiOWQwOGQ2MmJhYzNiZmI2MGMyMjdlNDNiZmEyNzU1MyBweTNrCis4NTYxMSAzYjVlZDg0OTBhYjJjMmEzMmEwNmNjNTAwOWFlOWViN2YwOTg0Mjg3IHB5M2sKKzg1NjEyIDY5NzQxZDRiOGE2MDAzOWQwNWRhNGIzMDk5ZDBlYjEyYzc5MTNmMDUgcHkzaworODU2MTMgOTZkN2U3ODc0ZjhjNDYyNjUxZTkzMWMxMzRmMTEyZDc2OTk4YzhjYyBweTNrCis4NTYxNCA5NjZlYzMxYjgzNDJjNzYyMDg4M2IyODc1NTQ0ODU1NWE3MjZhODE4IHB5M2sKKzg1NjE1IDVkYTgzN2ZjZjY3NTkzYWVhNTQ3MjQ3ODkyOGQ0MjRjOGYzMmJmNDAgcHkzaworODU2MTYgNDczYjkyMWUzYTFmM2I2ZDE1ZWY3OTY2NjgyNjI2NDZhNGFiNGI4YyBweTNrCis4NTYxNyA3ZGRmNjBjODg5NmFhMDQxODk5NjFjYmIzNTEyODkwNjc3Y2YxMmRiIHB5M2sKKzg1NjE4IGE0ZGQzODM5MTJkODk4ZGJkYmE2NTg3OWFiODNhN2U0MGY0YWQ5YmMgcHkzaworODU2MTkgYTkwNDdjZTFlODFkYWMyNzBjMmNkOWVjZTA3OGYwMzBhYTgxZTcwOSBweTNrCis4NTYyMCAxOWNhNzBiNDYzYzU5OTJjYmFmN2ViYjdhZTUzMjVhOGVhYzAwNzU2IHB5M2sKKzg1NjIxIGFhMmU0NjM3ZjZjZTk3MTY0MmE0NzgxZWM5MWE0MWVjMzliOWNkOGQgcHkzaworODU2MjIgNTczN2FkNzFlOWUxOWU5NDZlMmM1MGI2YjYzMDVlMzQ2NTk1NjUwZiBweTNrCis4NTYyMyA4N2RjZWJlNzhkNjdjYTJiMjc4MWI2OGIzZTc1OTI5M2UxMWM1MTg2IHJlbGVhc2UyNS1tYWludAorODU2MjQgMDk5OWUzYTQ0NzM1YmU2MWU1ZWMxNmEwMWJhMmQ5NzUxMjk2ODQwNiBweTNrCis4NTYyNSBkNjk5NzA4ZGMyYzE5MDRiYzkzMGVjYzU4MThmODgzNGViNzE0YjY5IHJlbGVhc2UyNS1tYWludAorODU2MjYgNWEyZDM0NDliNTc1ZTNhMTA1N2ExZGJiZGIwMGU1NTE5MGQxNzA1NCBweTNrCis4NTYyNyAwNjYwOGNjMjVmYjIwNGNhZTQ3NjBlNWUzMzgwM2QwMDg1MTJhMTBjIHB5M2sKKzg1NjI4IGNlNGQ4MTAyNTdiNDRkOGI1YWQ2ZWFlOTI4YzliNTE1ZDA1YjI5YjAgcmVsZWFzZTI1LW1haW50Cis4NTYyOSBjYTk2OTA5MmY0NWE2Y2RiODkyMTEzYmEyZDM5MWE2ZDBiZGY2ZmFhIHB5M2sKKzg1NjMwIDMxMWQ3YWJiZmJlMzAwYTFjYmNhNGJmMjAzYmE2OTViZjhmYWNlMTkgcHkzaworODU2MzEgYmIyMTM1OWU4OGI5NDY0ZTI2ODFkOTc4Zjk5ZTgzYzI4M2FjYzhkZCBweTNrCis4NTYzMiAzMTc1MGM3MjdhZTMwNTBjMDAxYzgwMjI3MzVlNmU2ZjE1OTcxZWUwIHJlbGVhc2UyNy1tYWludAorODU2MzMgYmNiMjYwZDY4YjE1OGFhZWQzMGJiYTUyNzIxZGE0YzUxNWRmYmRlZCBweTNrCis4NTYzNCA4N2U1YjU5MzhjNjVmMGNhYzQzMDhjNTg4ZTIxMmQ2NWFhNzNmZTg0IHJlbGVhc2UzMS1tYWludAorODU2MzUgNDIyYTRmYjBhNDkxMjQ0ZDU0MzQwOTBiN2E2MDIxNGU0ZDA2ZWRhZSBweTNrCis4NTYzNiAwNzNlMWJlNzZiNDc0MzU4OTRlNmZkZDg3YTlmZWEwZWFiMTRmMDlkIHB5M2sKKzg1NjM3IDliMjI1MGZiODBkOGI1YmI0YjkwMTA1MmVlYzI0YThkMjE3ODQwMmIgcmVsZWFzZTI3LW1haW50Cis4NTYzOCA5ZTQ1ZmM4MDUyODhhNzdjODRhMjUyM2I5NGI3YTVlYWU3ZmQzNGE2IHB5M2sKKzg1NjM5IDY4NDQwMjcyNTRmYWU2YjFiZjk2YWUyN2RiYWQzNmJkMzRiMWNkZjAgcHkzaworODU2NDAgMTg2YWYwNTFkMDRmMjEwYjFjN2UwNmU4OTNkNGU4ZGNlYmU3NmY1MCByZWxlYXNlMjctbWFpbnQKKzg1NjQxIDk5NGI4Nzk5ZjI4ZDY4YTVlNGI5MGMyYTgyODQ4NzEyYTk3NzVhYmMgcHkzaworODU2NDIgMjFkZDcxOTM4YTQ0NzJkMjQ2ZTU4Mzg1MDY1MGI3NmJjMzkwYjAyNSBweTNrCis4NTY0MyA3NGQ4MWEzYTBkNTY1YTE4Nzg1OWRkNmE5YzMwMGNlNTdjZmJhYzk2IHB5M2sKKzg1NjQ0IDA1ZDdiMTk5MWZmNzJlNzRmMTUyNmE4YTFlYzc1NTM3NjczNjMzNTQgcmVsZWFzZTMxLW1haW50Cis4NTY0NSBiNDJmOTQ5NjQ4YmFjNTdmZGMwMDExOWIzYjc1OTdhNzUxZTc5NDE0IHB5M2sKKzg1NjQ2IDYzM2RlNTdmYjczYWUxMTYzMjI0MDk3NzQwZDFhNDIxMjRmMGZmOTEgcHkzaworODU2NDcgM2M5YWZhOTJmOGZkYzY1MzJiMTE4Njc5ODAwMmMwMDQ5NzJiMTcwNSByZWxlYXNlMjctbWFpbnQKKzg1NjQ4IDYyM2RlYWU3NzMyNDM2N2Q1MTZhYTRlMWYyZDQyZDUyODYyOWQwNzIgcmVsZWFzZTMxLW1haW50Cis4NTY0OSAzOWEyYzNiMTBhN2IxZmVmYWZmNGY3YjI2MzNkNDBiNzEwYmY5NzNiIHB5M2sKKzg1NjUwIDlhYzNmZTJjYTQ5ZWI1ZWZhYjg0M2JjODU1ZDEwZmQzNTlhZGU2OTMgcmVsZWFzZTI3LW1haW50Cis4NTY1MSBlZmQzNjk5ODFiOGRkNTYxY2I2YWJjN2NhMjUzZWY5ZmM2ZTlhNzM1IHJlbGVhc2UzMS1tYWludAorODU2NTIgMzhhZDU3ZGI4OGFjNGJlMmY1MmM3MDc1MWFhNGIzMTA4YmU1NzE2OCBweTNrCis4NTY1MyAyNDRjYmNiNjdkY2Q4N2UxMWI2MzYzNDcwYjJiODdmYjZmNTFhY2Y4IHB5M2sKKzg1NjU0IDM5Y2RjYzdkM2UyMGQ1NDRlYWE4YTVjNGFhM2Q2OTA2ODY4ZThmN2IgcHkzaworODU2NTUgMDIzYjQxMzc2MjkwYTEyMWM3N2EyNGI3MDE0NzBjYWU3MGExYjIzZiBweTNrCis4NTY1NiAzYTQ3ZmJjYjI5YjEyMDUwODdjOWUzY2E5YjAyNTU2YTdkZGU3ZTY2IHB5M2sKKzg1NjU3IDdhZjQwNmYyMTlhNGU2MWI0OThhZGM3MWY1YWEyN2ZjZmNiOWFlMzEgcHkzaworODU2NTggZDU4Y2UzZmZiMWNiNjk3ZjFlZWRiNGE1M2VhM2IxMTI3NmJkOGVlMSByZWxlYXNlMjctbWFpbnQKKzg1NjU5IGIwMjI4YWY2ZGIxMTgwYTE3MWM3ZGUxMjA1N2FkOTM2NjA1M2FkYzIgcHkzaworODU2NjAgOTVlM2FlZWJiNWFiY2Q4MWU0ODE3NWI0ZmYwZDIyOTk1ZGUxNWUyNiBweTNrCis4NTY2MSBkMWRlZjdiMmFiZDJmNTliNDMyNTRiYTMyNDA5NzQ2MmYxZGIyMGZiIHB5M2sKKzg1NjYyIGIyYTljYTJiNjFhMjQxYjBlZDhmZDc4MDg4MTEzMDA4ZTM0Mjc0YTAgcHkzaworODU2NjMgYzE0N2Y5MTBhZjcwMDg2ZmQ2M2RlYWUwZTNmNjIwYjkxNjNiNDBkOCBweTNrCis4NTY2NCBlODk2OWZiODIyZmMyYTI3OWFlMzRiZTczZjhlMWUxNWM0NTNhM2QwIHB5M2sKKzg1NjY1IGY4ZmMyZDAzZDdlNDJhMTJlOTJlYzI3NDg2MzQ3NTA5MmVhZDhlN2QgcHkzaworODU2NjYgZTc1ODA2NTJhZmI4ZTZjZTZhMzk1YWRmZWZmYzUxNTYzNDcyYmNlYyByZWxlYXNlMzEtbWFpbnQKKzg1NjY3IGEzMTY1ODEyOTAwODA3NDBmN2I2MzIwY2Q1NzMzNDM4MWIyNjc2YjkgcmVsZWFzZTI3LW1haW50Cis4NTY2OCBiMWNhN2Q1YTljNzRkNzBjYWMxNDRkNDI5ZDcxMmY3OGI3NzMxNTRkIHB5M2sKKzg1NjY5IGIxYmRhMWVjOTk1ZmExMDM2ZGUwOWZhYTMzYzM1NTBiMmY0MzZmNDcgcHkzaworODU2NzAgZTBjY2I1ZjUwZTBjNzkwNjM3ZWUzMTE1Mjc3MDUwNDM4MDAzNzFiYiBweTNrCis4NTY3MSAxNmVhZDgzZjc5Y2M5OWNlMTQxN2IzZjA0ODNhOGExZWI0ZWRlMWY1IHB5M2sKKzg1NjcyIDk2YTY5NzYyYjQ4MTYxNjc4MTYwNzM4ZjQzOTBiNDAyMmI0M2ZiYTQgcmVsZWFzZTMxLW1haW50Cis4NTY3MyA3YWExNGNhYzZmNGQwMjczOWVjZGI0YjVkMzA1ZDY4MWQ1OTM4MTY3IHJlbGVhc2UyNy1tYWludAorODU2NzQgZWI4ODM3ZWZkODRjNWIxZWRhYWZjYmU5MDQ1ZTc0MTVmZDk3NmY5MiBweTNrCis4NTY3NSAzNTFkNzk0ZDMyZjQ0MzI5YzEwNzM3M2UxZGFlYzg2MjUzMGVlZDIzIHB5M2sKKzg1Njc2IGFhMjAzZDQ3OGJiODEwZjZkZTJiNjEwMmZlNDE1OWE0MjExNjIwZmMgcmVsZWFzZTMxLW1haW50Cis4NTY3NyBkMzk3YjAyNjMxYjU0N2Q5NGM2N2I0YjkxMzg0ZTk1ZTZkMTMwZjA5IHJlbGVhc2UyNy1tYWludAorODU2NzggYmVhMTRmMDBkM2UwMTAwNzI3ZmY3YzBmODg4NTFkNzYzZTA2N2NhMyBweTNrCis4NTY3OSBiMGE4ZmNkYTA2NTQ3ZDZkMzRlMzM0NzIyODI1OWMyNTEwMzRlMmZlIHB5M2sKKzg1NjgwIGNlOWY1Y2UzM2FkMmEwZjVkMDNjZDA4YWFhNzgzNTgzNjFkMmY4NGIgcHkzaworODU2ODEgYTRjMTBhNDRkOWFlMTFiZWM5Yzk5OTQyNmU4NzQ0Njk2ZWNhMWNlNSBweTNrCis4NTY4MiAxN2M5NmFhZjkzYzg3ZDEwN2EzYTMwNTc5ODQ5Zjk0OWIzNGFmYmU3IHB5M2sKKzg1NjgzIDViMDY5ODkyZTQxM2E5ZTExNWFiYTk2MDQ5NDg4OWNmZGJjMmQ5NDMgcHkzaworODU2ODQgOGYwNjI1OTU0ZmZhM2NkZDcxMTYyMzljNWNjOThhMDY2YWYzNzI2NyBweTNrCis4NTY4NSBjZGZkMTk4YTZmMWRlMzEzNjY5OTVlYzZkODUwZmE2ODkwOGRhNmNiIHB5M2sKKzg1Njg2IDc1MmU0YjVjNjRlOTVjYWM0MTYyNjQxZGM0MzcxNjQwYTU2NWViYzEgcHkzaworODU2ODcgYzcyNzU3MDMzZDQ0Zjg1M2QwZjY0YjU5YTI4MGYyYjA2MDg1NGU3YSBweTNrCis4NTY4OCA2OGJkNzVjNjlkYjE1MGZmZGNjYjIwMzdkNDJmZGYzZjQxZGQ1ZDQxIHB5M2sKKzg1Njg5IDNjMzM2MzQ4YTJlOTg2ZmU0Nzc5YzE1M2Y3ODc0YzQ1OTg3MTFmMTggcHkzaworODU2OTAgMzcyYzk4MDdkNzVkOTcxNGU2MDY0M2I5MGFmMGExYThiMGQ5NjE4MyBweTNrCis4NTY5MSA3N2MxM2M5YzZlNTllMzllOTY4YzRiNGVmZmI2M2Y3MThlMzUzNThhIHB5M2sKKzg1NjkyIDUxOTU5ZjM5YTdmYjEzNmE1ZWYyOTM2OGJiNzM4MzExYjg2NWZlN2QgcHkzaworODU2OTMgYjBiYTdlZWI5OGE1NWU5NDQyYjFkMDUxOWQ4M2JhZmRmZWEwZWRmYiByZWxlYXNlMzEtbWFpbnQKKzg1Njk0IDJmN2UwMTY5NDkyNjc1ODY2NWIxNjliNGM4OWQzZjFjYmZlNTMyODIgcmVsZWFzZTI3LW1haW50Cis4NTY5NSA4NmYwMDYxMmNiZDYwZTllMTY1NDBlODI0YmJkZDY0NTFmMTczNDE0IHB5M2sKKzg1Njk2IGVjZmY0MWUwNjhlNmZlOTFlMzBkMWJhNDg4ZGZmZGJiYjFkNDJjMjIgcHkzaworODU2OTcgODJiMDgzYzk2YTM5ZmJmNzEzMDljYTgzYjcyYzNlMmYyODJlNWMzNyBweTNrCis4NTY5OCAyNDZjMDhjODI1YTEwNTg4ZDgwNmFjZWIxMmQ4YzE0MmM4YTkyNTE2IHB5M2sKKzg1Njk5IDUwMzYwMGJiMjVlYWE4OThmZTI2YjhmNzYzOGFiYmQ2ZjJlMmI3ZWMgcHkzaworODU3MDAgM2ZhZmY3ZTUxZjQwZGVlZDBkNDZmYjlmMmUxMmVkMTJkZmFiNTM1OCBweTNrCis4NTcwMSAxNWU0MTU1MmRjYmQ3Y2MwMzIxNjY2YzQyMmU5MTM3MDJkNzM0NjlmIHB5M2sKKzg1NzAyIGJiMzMzOTczZGUzOGJjMzM5MDgyNmQwNWYxYjcxYjljM2YyZWM0OGYgcHkzaworODU3MDMgMjdjZTk5ZmMyNTI3MDE0NzVlOWY5OTA4MWE0YmY4MGJhY2Y3NGVhMiBwZXAtMzgyCis4NTcwNCAxYTkwNTM5MWUzZWQ2ZWQ0MjhiN2I2YjUzOTc2NjYxOTVmYzNiNjJhIHB5M2sKKzg1NzA1IDg5MTIxOTI5ODJjYzgzNzgxOTMyOWEzZmY4NTEwOThjZDJhNDAxY2EgcHkzaworODU3MDYgNjYyOGY4NmRiMmI2Yjc4OTAyYWNiYjUyNjY5MDU1MWY1NTlmZDJkYiBwZXAtMzgyCis4NTcwNyAxZWMyYmZhNTRjYWJiOWJiNjM0NzhiNWJiNjE5YzlmZWUzMzNmYjc5IHBlcC0zODIKKzg1NzA4IDAyNjM1YmFlYWQ1ZjVhYjVhNzMxNmNhYTZlMGFiMTQzMjZkNTI0ZjYgcGVwLTM4MgorODU3MDkgZTJiYTEyNDlhMmY1NjM2NjAyMmI5Njg3OTFhOGZhNTUzYzZjODVjMiBweTNrCis4NTcxMCBkNjA3YjYzMTMwNWRjMGE3MDIwOGRhODI0NWFkMGZkNWNhYTExOTJlIHBlcC0zODIKKzg1NzExIDRkNTVmMGIwOTBkNTgwZDgyZjViZDU3OGMwNjhmZDJiMTlmNzMxYTkgcGVwLTM4MgorODU3MTIgMTMwM2NlYWY0NDFhOWM5M2Y4MmUzZDQ0MjAwZWUyOTI3MTI2MjE1OSBwZXAtMzgyCis4NTcxMyBiNDdlNGVlMTU0MDMyY2U4YjQ0YzhhYWUyMDg1ZWI0YTA4OTE4MGE5IHBlcC0zODIKKzg1NzE0IDcwZDJiNGFlZGMwOWVhNDdmMDE0ZWEyMjFmZTE2ZjNiNjg1OWNiOWUgcGVwLTM4MgorODU3MTUgNTllOWI1OGRkYWY4NDhkM2FlMGQwODYxZGExNDYzYTg3NmFlYTZhZCBwZXAtMzgyCis4NTcxNiA0MmI4NGQzMTg4ZDEwZWZiMjI2YjViODJlYjJmMzEwMDc4YWZiOWZmIHJlbGVhc2UzMS1tYWludAorODU3MTcgNGYwZGRkYWY4MmQ2YTc0NzdlNDRjNTZjNDMxZTc1ZDUwMzEzMjk3MSByZWxlYXNlMjctbWFpbnQKKzg1NzE4IDc3MTdmOGM0NWZjYzM3ZmY3MDUyMzFhYjI2YTQ4ODBmMjMxM2FiYmYgcGVwLTM4MgorODU3MTkgNmU4ZDJlMmQ4ZDgyOGY3Mzk4OWQ3NTNkNmU1YWIyYzI3Y2NlZmRiOCBwZXAtMzgyCis4NTcyMCBlM2U2YWE2MzNmMzNiNGU5NjdmNzAzZmQ1N2JmNWYyMTA0Y2MyMDIyIHB5M2sKKzg1NzIxIDcwNzJhNWIyODFkMzdlNWM5NzJhN2FlODE3MjI1YWQ3OGE0YWNhZjIgcGVwLTM4MgorODU3MjIgYjUwMjU1NjljYmQ0MDZjYmFlOTRiOTM3YzY5YWVkOWU0YmZlYzBhMiByZWxlYXNlMjctbWFpbnQKKzg1NzIzIDhlNjBkN2E5NjE0MjI3MmZmMTcxYmU3YzA2Y2ViZWU2YjFjNmFkYmEgcmVsZWFzZTMxLW1haW50Cis4NTcyNCBhZDg5MjM3NjBkNWMwZGE3NDIzODU5OTQ3ODY2NzA1MzI4NDg4MTI5IHB5M2sKKzg1NzI1IDA1MTFjODY4YTRlMzhhNGM0MGJhNWY5NTgzYjUzZjU1NjUyZWRjOTIgcHkzaworODU3MjYgYjZhZDQwMTM3N2ZjNTliY2E5MTkwY2MxNTNhMTdhM2UyMWZmYTI3ZCByZWxlYXNlMzEtbWFpbnQKKzg1NzI3IDFmMGFiNzI5YzYzMjUzNWI0ZTIwNzMwOGRjOTMwMTE3MWE3ZjgyYjIgcmVsZWFzZTI3LW1haW50Cis4NTcyOCAwNDA5MGFiMzUzMWU0MzIzZTE0Mzg5OWRmNGVmZjRiYmU1YWRlOGYwIHB5M2sKKzg1NzI5IGM0N2VmMTgwYmUzOWQ2YzRlZTFhNGU5M2NiNGJhOGI2MDg3MDFjODcgcHkzaworODU3MzAgZTExYWMzMDE5OWIxMGFjMzU3OWJlNjYzZjgxNTRjMzRiZTMyODNiYyBweTNrCis4NTczMSAzNGJlYWI5NTk1OTU5YWRlZWQ0NzgzNzZhY2M5YzEzM2I1ZTI0NzZkIHB5M2sKKzg1NzMyIDAzNjc3MGRkOTA5NjdjYTJkOTQ2ZjU4ZDQ0MWY2NTVhMmU4ZDUzNWMgcHkzaworODU3MzMgOTYyZTFmNGM5YzAwM2I0ODI3MjdiZDQ1NDQ0MDNmYzAwM2JkYmE3OSBweTNrCis4NTczNCAwODY1MTljMWU3ZDI5YTgyNDc2NzljZTZkY2ZlZTRlOWJmNDMzMmJhIHB5M2sKKzg1NzM1IGQzYjYxZGM3MzJlZmYyNTcxZjE0M2FlMzNkYzMzZGFmMTlkMDQ3NDMgcHkzaworODU3MzYgYTY2MWI0MjRlZDQ3YTliZjQzMzdkMzA5Y2VmZTA1NGNlZjc4NDZiZCByZWxlYXNlMjctbWFpbnQKKzg1NzM2IGE4ZWZmMzlhZWIwOTk1YThjMzJiZDBkYjk2MGVkYzBmMTEwZTUzM2UgcHkzaworODU3MzcgY2Y2MzRhMzk3YmVjODFhNDJhODNkNzZmNWQ1ZThlMDZkYjI3ZDIxMiBpc3N1ZTQzODgKKzg1NzM4IGQ0ZDUzYjRkYjk2ZWQzODg5YWU1ZDY5NjYzNTA5ODhjZjhhNTY4NTggaXNzdWU0Mzg4Cis4NTczOSA1MmNiZjQ1OWRhOGJjZmFhZmJjN2RiYTZmNmNkZmMxMmVlZGRkMzQ3IGlzc3VlNDM4OAorODU3NDAgZWRjZmM0Yzg5ZjMwNDAxNTUyNzdkNDIwYTFiOGYyMDQ5MzU0NjUwMCBpc3N1ZTQzODgKKzg1NzQxIDU5YWFjMDc0NWVjNzViOGM1YjJhOTIyOTRmZDZlOTM5ODFkYTg4NDYgcHkzay1zdGF0LW9uLXdpbmRvd3MKKzg1NzQyIDNiYWVjZDRlMGMxMmExM2NhNjFmZWVmMGUxNTYzYzgwOWI1Nzk0MmQgcHkzaworODU3NDMgNmRjZjYxNDQ3YzMzZjY4MWYxNDY2YTM3NjIwZTQzMDkwNjkwNTY1OSByZWxlYXNlMjctbWFpbnQKKzg1NzQ0IDE2MThjYjE1YjViOTg0NDAwZDhhZThhMjkyMDRmMmJlNjRhMjNlNzMgcHkzaworODU3NDUgZTg1MGJiOTMwYzg0MmYxYjVjNWQzZTZlY2ViNTE1OTlhOWI2Nzk0NSByZWxlYXNlMjctbWFpbnQKKzg1NzQ2IDVjZjFlNmU2MWM2YzM3NWFlYThmYTJjOTBiYTg1YTBjMGVkNjExYzUgcmVsZWFzZTMxLW1haW50Cis4NTc0NyA1MGRkODZmNmYyNGFkNGI4NzhkN2I4MjlhMDM5YjNhNTNhMGEzMzBjIHB5M2stc3RhdC1vbi13aW5kb3dzCis4NTc0OCAzMDE2YTZhNGE2ODBiODRhM2MwZTRkMjA2MjAxMWQ3MjU0MDlhNGJjIGlzc3VlNDM4OAorODU3NDkgNjQzYTA3Y2M5ZDdmYjg5Mzk4MWU3NGI0YWQ5ODg3MmZiNDBjOTA3NCBpc3N1ZTQzODgKKzg1NzUwIGU1M2M4MGIwMTYzMzMyODdlZjMxNmYxYzNiY2Q2MWJjODRiYjY3YjIgaXNzdWU0Mzg4Cis4NTc1MSBkN2NlMzdiOWJjZWQyMDM2ZjFlNzA2YTk3YzY4NjIzNWEwZjM5NjUzIGlzc3VlNDM4OAorODU3NTIgMmYxYTU1MDY3OTMxMTUxNzVkZTdkNDRmYmZmNzUwN2Q3ZjI4NDE3MyBpc3N1ZTQzODgKKzg1NzUzIGY4ZmMyNGExZjlhNmMyZGJiNjY1YTUzYTFlNjRhNzQ1YzViZGU2YjAgaXNzdWU0Mzg4Cis4NTc1NCBlY2ZjMGRkMTVkNTdmMGQ5YThhZjc2MjE4Y2I5MDhkZTM1OTgyYWE0IGlzc3VlNDM4OAorODU3NTUgZTcxMWI4NTg2MTdiZTcyY2M2NjQxOTkyOWY5YWJmMjU1ODg3Yzg5MiBweTNrCis4NTc1NiA5ODU4OWQwZjExMDEyYWM2M2Y4YTlkZTlhZjdhNDczNDhjNjRhMWY2IHB5M2sKKzg1NzU3IGM1Zjk3YjA1NDE1ODU4MjVjNjZkYzBhNDNiOGZjZTQ0NmQzMmVjZTAgcHkzaworODU3NTggODBjMDQ2OWY5ODU5N2Y4MWU2YzM4NjFlODg1YjZlMTJhMDRlYzA3YyByZWxlYXNlMjctbWFpbnQKKzg1NzU5IDhlNmI3YWIxZTFhMTQwN2Q2ZjA5Y2NmZTgxZjgzODlhYjJlNDYxM2QgcmVsZWFzZTMxLW1haW50Cis4NTc2MCBjYmUwMjI0NzAxNDcxYzQ3MjlmNDcxNjIxYjUxZWMyMjQ0MzRkM2Q4IGlzc3VlNDM4OAorODU3NjEgMzkzNjZiYTVmMWMxMDc0YjdkM2FkMTkzNTQyYjYzNTk0YTU0Yjg0MSBweTNrCis4NTc2MiBiZWMxNmE1ZTBjZGFjMWVmMzhlZTY2NDRjYjg5NzFhMTk1M2NjYTViIHB5M2sKKzg1NzYzIGFiZGE4MjQwYTY0MDVkYmU5YTllMzk3ODk4YzQ5NjZlZjFiMjNkMzcgcHkzaworODU3NjQgYWVjYjU2YzNmNGViNWU3MmYzY2VhOTM3NjkzZjk5OTg0OGU5ZDk0ZiBpc3N1ZTQzODgKKzg1NzY1IDQ1MDc5YWQxZTI2MDA5YWNjMGY1NzI0NDBjYWMyMmFiMGE3NzQ5NTAgcHkzaworODU3NjYgMzgxNmViMTI4NmMwY2U1OTU4YmVhOTVjYmI2ODkxMjJiZjYzNDBjYSBweTNrCis4NTc2NyAyZTE5ZDFmNGI2MTJlYzg5M2RmMGY4NmU2ODBmYTQ5Yjg4MWJlYjgzIHB5M2sKKzg1NzY4IDcxN2FhY2ZkMmRjZDY4MzZjYTk4ZmU3ZmRkNGNiZDk4MDViMmU2ZDUgcHkzaworODU3NjkgZThkNWFkMGMyZjViY2IxZTA0Y2I4M2Q2NzU2ZTMwN2M3ODQ2Y2UyNCBweTNrCis4NTc3MCBhMmJiNTBmZmRmZjNkNGY5ZjQxMjdhMjM0Mzc0ZmNhZjdkYzA1YjRjIHB5M2sKKzg1NzcxIDJmOTRkNjhjMjczMTI3NzdhODM0ZDZiNzNkYzdjMjliNzMxM2EwNmQgcHkzaworODU3NzIgMGI1YmZiYTdhOTA3ZTZiOWEwMTAwYWUzNGY1Y2QzZjg0ZmQ2NjRjZSBweTNrCis4NTc3MyBjYWE1NmNmZjJmYjNhNzhlYWMyYjM0ZmQ3ODNjN2RkMTdkY2RlNGI3IHB5M2sKKzg1Nzc0IDA4MDE0NWQzYmJmNzY4MWE2MTU3ODU5N2ZkOWQ4ZDljNTAzMmE3ODcgcHkzaworODU3NzUgZTQ1M2U1YWIyMDdjYTQyM2MzMjU3YmI5NGFiMDgxYmNlNjc3ZjM5MCBweTNrCis4NTc3NiAyNDQwOTA0Mzg2MjNlMTFmMTJjNDM3NGVlNzgwZDc2NjgyNWI3NmZkIHJlbGVhc2UyNy1tYWludAorODU3NzcgZTc5YzU3NjdiZDA1ZDA2ZjM5M2NmYjYxMGE0ODY2YTQ1YmMyMjI4MSBweTNrCis4NTc3OCAwMmMxNjI2ZmY2MGZlMmEwZTljNTY1NTk4MmMwNGJjYTk2YWUzOGUwIHB5M2sKKzg1Nzc5IDI3MmI4ZmY2MGJhNGMwODQzZTA3ODFjNmJlYzliNDEzYzM2ZGY1YjQgcmVsZWFzZTMxLW1haW50Cis4NTc4MCA4Nzg3ZjRiYjRiMjE2MDUxOTg5YWM1NWRiNGE3MzY3YjJkODQ2MmNkIHJlbGVhc2UyNy1tYWludAorODU3ODIgYmQxYjMxYzM3NDEwYmMwM2FjODUxMTFjNWQxMGY1Mjc4MDg2ZmI0MCBpc3N1ZTU2MzkKKzg1NzgzIDZlNGVlYTc1NDNiYzM2ODk0ZDUxYThiMzNiYzZlZWIyNDRjOTZkZTYgaXNzdWU1NjM5Cis4NTc4NCA3YjU0NjI5NTFhYzliNTExZTc5Y2ExMmEyZTdmOWJhZDViOTZkOTdlIHJlbGVhc2UyNy1tYWludAorODU3ODUgZjk4NDQ2OWRlMGJiNmQzZGNkMWI2ZjUzZmM2ZjVlNDNkMjRiMjBiNiBweTNrCis4NTc4NiA4NTI1NTQ0OTY4ZjNhNTk2NGZiZTJmMDU4ZWRmN2Q5YmM1ODQxZDY2IHB5M2sKKzg1Nzg3IDEyZWIyNDQ2MzYxMDk0MTdjOTQ2NjM0MWJiNmYyNmNjNjJmMjcxOGQgcHkzaworODU3ODggYzZhMGViN2Y3M2JmY2ZkNzE2ZjhhYjI5YWNiNjllYTIwNWU2NWY3OCBweTNrCis4NTc4OSA0NmJiYmRjZDc3N2Y1NWI2YmMyNWUwNjFiMjU3ZDUyYWUzNzJiNTliIHB5M2sKKzg1NzkwIGZlMzU1N2RiZWY4OTI1MjM1Mjc0MDE1ZGFhZGI3MjgyOGRiMmViZmYgcmVsZWFzZTI3LW1haW50Cis4NTc5MSAzMWEwYWI3YWMyZDViNTUyN2NiYTVhZGI5YWIyYWUzNDMyODYyMDc0IHJlbGVhc2UyNy1tYWludAorODU3OTIgZWEwZjgzY2Y3ZTk5NTk2MzIyNjcyMDE3NDA4NDMyOWM2NmNjZTZlYSBweTNrCis4NTc5MyA4NDZjMGUxMzQyZDBiYTFhZWQ1MWFjMDE4NzIzZTExNmEyNjk0NDZlIHB5M2sKKzg1Nzk0IDE0MzhkNmI2NzA1MjY1MGY4MjYxNTBkZDViNzJhZTIwYzZhYmFhOGMgcHkzaworODU3OTUgMDZkZmFlYjU4YmRlMDFjMzY4ZjNkMTVlZjUxOTQ4Y2NhZmQwMjQ4MCByZWxlYXNlMzEtbWFpbnQKKzg1Nzk2IDg1OGFmNjBiMmRiYmNkOWJjYzRjNmZmMDA1NTEwOTc0N2RjYzI5YjggcHkzaworODU3OTcgZDk4NWJhOTgxMWU5OGVhNTgwYzEzYWY3NWY1YTc4ZWQ5NDc2MTg0NSBweTNrCis4NTc5OCA5OTEyZDYxY2RmMzRjMmIwOTIwMGM0MGIyOTVhZWM1YTcyYmY4ZGMzIHB5M2sKKzg1Nzk5IGNkODBkMDVmMmZkNjdkYjYxNjAwOGFjNjdmMDhjMWI2ZWQwZWJkM2YgcHkzaworODU4MDAgNWI2ZTEzYjZiNDczYjVmZGMyZmY1MGQ1OTkwYzJmZmM1NWJiODNhZCBweTNrCis4NTgwMSAzODM1YmNiZmIyOWMwYzZiMzEwMjY1YjBiNGQxMjQ4MmFjYzAyMGJmIHB5M2sKKzg1ODAyIDkwMmY1NzdlN2Y5NDk1OWIwNTczOTE3NjZjMGUxNGEzYTE2Yjg4OGYgcmVsZWFzZTMxLW1haW50Cis4NTgwMyBiZThhZTZiMTc1MzlkMjk5NWMwNmNhNjkwZmNmMWYyZTUwMjUwMGQ1IHB5M2sKKzg1ODA0IDhkN2YxODMzMmRiN2RkNDE5NGRiNzFmMWIzZjExNGM5NTc1YjYxNjAgcHkzaworODU4MDUgMWEwOGY0YTllYWZkYzQzZWFmM2RhYjYzZWVhY2NiY2JlZGE1M2QyMyBweTNrCis4NTgwNiBhMzBlNzU4MjBiOGRlZWY3MTAxYjIxY2U3ZWQ3NmMzYTc4ZDUyYzkzIHB5M2sKKzg1ODA3IDc5MjAwNWRlMjc3Yzg2YThhNDgxOWVlNGNmZWQwMmNmY2ZhNzMxYmUgcHkzaworODU4MDggZTk5NmM2MWU0N2M3YjM5Mzk1NjE1ZTliODY5Y2QyMzc4NTJjZjFhZiBweTNrCis4NTgwOSAwOTgxNzdhY2Y3M2YyMDg2MDgxYmIxN2FhMjMxMzMxOWIzODI0MTVlIHB5M2sKKzg1ODEwIGI5ZGNmZGZmY2I2MjBjNTI3MjRhMWRkYmVkMGU5YmY1MDVkYWQwMzUgcHkzaworODU4MTEgZWJmNjc0MWE4ZDZlMzc5ZGM3MTBmOWE5MDg3ZGMyMjRkNDcyZDVlYyBweTNrCis4NTgxMiBhOTRmYjhkYjlmMWE1MGY2MWIwY2FmNTRhNzc3NDA5ZGU4NjY2OGZiIHJlbGVhc2UyNy1tYWludAorODU4MTMgZGI1YWJkODFkYzk0ZWQ2YTY4ZDgwN2Q4OTJhMjU2OTkyOTkyMDcxYiByZWxlYXNlMzEtbWFpbnQKKzg1ODE0IDE4OTg5YWQ0NDYzNmFkNzVlZjE4NTg1MDZhZTk0ZTg4Y2FkYjM1YTYgcHkzaworODU4MTUgNTM2MzllNTdiYTQwOTIzYWYzNWM0MzNiMGRhMzZmMGNlMTYyOWQ3MCByZWxlYXNlMzEtbWFpbnQKKzg1ODE2IGE0YTI3MjQwZmUwOTM0YjgwOWI3MzhhYjcyOWNhY2YxNjllYWRjZTMgcmVsZWFzZTI3LW1haW50Cis4NTgxNyBmMTQ4Zjg2NGIxNjhiMDg3ZTg5MjczODA2ZDI3N2VlMWQ4NThjYTU4IHB5M2sKKzg1ODE4IGIxNzJkNzUzN2I5OWI1NDA0Yzk2ODk2OGViM2MxM2ViOThkODY4NzEgcHkzaworODU4MTkgNWI1MzZjOTBjYTM2ZGVmYjMwZjY3ODU4YmZhZjdkY2M0YjQzZjQ1MyByZWxlYXNlMjctbWFpbnQKKzg1ODIwIGE4MjA3MmNhMDZiYWEwNTFkM2MwMDFiMTlhMGRkZDU5ZTY3ZmQ4YWQgcHkzaworODU4MjEgYzVhZWJmZmM5ZmFjNDY1ZmE4MjA1Yzg3MzY2MjkzMDAzZTBiZWQ1ZSByZWxlYXNlMzEtbWFpbnQKKzg1ODIyIGNjZjJmZjA4ODY2YjliZTZjMmFkNWM2OTAyMGIxMmE0ZTAxNTIxYTMgcHkzaworODU4MjMgYjRlMzcwYzhlN2NhZjQzMjEyNTFhOGU4MmM3MDg2OWRmMDQ1MzE0NCBweTNrCis4NTgyNCAzOWI5ZTlkZTM3MmIyMDEwMzBmNTVlZmJiMGU2NTFlMTJlMTFlNzZkIHB5M2sKKzg1ODI1IDVhMDU0NTRlNTY1ZmE3OGYzNTA3NjM4Y2IzZGExZmVhY2JkNTQ0ZjAgcHkzaworODU4MjYgMTkwOGExNDZlOTYxZGMzOWY4MGIwZDk0OGRmOTVmMzkyNjBmNDA3ZCBweTNrCis4NTgyNyBkYjVhNTA4MGY5YjhhMGVlMWViNmQ0ZGQ5YTY4MmE5MzgwM2Q0YzkyIHB5M2sKKzg1ODI4IGNiNjQxOGY0ZDYwYjljZjY0OWIwMzQ0NjA0OGVlZjM0NTdhYjg1OTAgcHkzaworODU4MjkgNGUzNjA2NTI4M2NmMmM2Zjc2ZDc1Y2YxMzZhYzMyNjc3OTg2NDZlYSBweTNrCis4NTgzMCAxNTk1MzBmMGU0MDZhODY0ZTI0NDU5NzgxMTZkZTFhMDA1ZDU4NjQ2IHB5M2sKKzg1ODMxIDY2MGQ1ZjMyNDgyZWY0ODk0M2EwNmVjODc4YTBhNzQ2M2JkZGVjODEgcGVwLTAzODQKKzg1ODMyIGY1NzBkYTlhNDNmODZlMGNiMWJiNzZjMDc4MjJlNzg0OTY0YjVhYjQgcmVsZWFzZTI3LW1haW50Cis4NTgzMyA0NGQ4MTkyMmE4OGYzNWRiYmVjMjVkODZjMmVmNjUzZTc2NTQxZDhjIHB5M2sKKzg1ODM0IDVjMWNlNWMzNjBkYTIxZmRlM2YwYjBlZGIzN2Y0MGNjZTE2N2EyOTEgcHkzaworODU4MzUgM2E5YzNlYzVlOWQyY2ZmYjBjZmJhNjQ1ODc1ZGVhYTA5ZGRjYjc3YiBweTNrCis4NTgzNiAyMzUyZTVlNDQwNTNlOTViYjY4NmJmYjc2ODkxOGMyZTE2MGQwMDRjIHB5M2sKKzg1ODM3IDBmMDdkMmRiZjgyMGI4OTQ5MjUwYzRlOTBhMWE0MWI2MWRmMmZkNTggcHkzaworODU4MzggNGU5MmNkZWZlNGM3NDM3ZmY5MmE4ZjEyZTNiYzY2Mzk1OWJhNmE4ZSBweTNrCis4NTgzOSBkN2QzMjNkZTM1ZTc2ZDI4MDkyOTI2ZWVlNzE5OWM1MDM3OWJmYzY3IHB5M2sKKzg1ODQwIDlkM2ViYTAzZmQyNWQxZDdlZWE0Yzg1ZjdkNDYwMzFkYjA3NDA4ODggcHkzaworODU4NDEgY2VlYmIzZjQ1ZjlmYzYyMzg5ZDM4ZmFhYWYyYmFkNGYzOTEyMjk0NSByZWxlYXNlMjctbWFpbnQKKzg1ODQyIDc3MmI1NWYwMjgzNWRlNjc2OGNiMzhmMThiY2ViNjBhN2M4NDJkYjUgcmVsZWFzZTMxLW1haW50Cis4NTg0MyBkMzUxMDBjYzZjNmIxYjQ5MDM1MzU5NTYyYjVhMzZjZDlmOThhMWMwIHB5M2sKKzg1ODQ0IGU1NWEwMGNmNjc4YTdlOTcxZGNiMWNmMDEzZmEwM2E3YzVhNWYxYTggcHkzaworODU4NDUgYjljN2JkY2FhMDMxZDg5MjE2NTRjNjI4ZGRlNmNkM2MwNzViODNjYyBweTNrCis4NTg0NiBlNTE1ZDEyNDE4NTg2ZTUxMzNkYzRiNTk3YzcwNDIwYzQ3NTY5YTY0IHB5M2sKKzg1ODQ3IDMyYzRlOGU5NWNhM2NiNWJmODhkZGRkMzk1ZDRlZWYwZGFjNjJlMzcgcmVsZWFzZTMxLW1haW50Cis4NTg0OCA4NDE4OTJlMjcxZjdmODUxNDFiYWJiZDA2NjliMTIzZDg4ZjYyNWRjIHB5M2sKKzg1ODQ5IGE5Yzc5YTlkMmQ5MWQwOWZhMjg0Y2U0ZjQ5Yjc0NGExZjEyNjNiOTMgcHkzaworODU4NTAgOWRhNWUwNGIwNzkzYjk5MjZmMTAxYThkMDMxMjFmYTY4N2EwODgyNCBweTNrCis4NTg1MSAxMTg3MTU2YTFmMzJjMTE2ZDdiYTRhOWRhNTIzMTRlYjEzZGZiMWY2IHB5M2sKKzg1ODUyIGM4OTJlNDU0N2ZlZGNjOTYyNjVkZmYxYTNhYjZiZDFkOTQzYzk4MzQgcHkzaworODU4NTMgMjlhZjE4MWRlMmYyZDg4ZjM5YTMyMTMxM2RjMWI5Yjg5ZGYzMjA0NSBweTNrCis4NTg1NCBiYTFjNzNlMTZjOGIxZjkzYThhYTVmOTQzMGI1YTFlMzBlM2QxNTdkIHJlbGVhc2UyNy1tYWludAorODU4NTUgZmY2ZmEyMGJkYWY4ZGVjY2M1ZDg0YTYwYmY5NGM1NTYzNmI4N2VlYiBweTNrCis4NTg1NiA5ZTRhMjgwOWU1NWNlMGYwNzQ0M2U2MjgzMzMxMDY5YTVjZTQ4YTViIHB5M2sKKzg1ODU3IDRiNTQyMjE3ZTkzZWQwMTdmNWVlYjE5YzJlY2JmNTdhOGJhMjdlYjcgcHkzaworODU4NTggYmY1ZGE2MzYwNTNhYjk5MjZkYzdhZGJhNjUwYjdhOTY5ZjBjZTRmMCBweTNrCis4NTg1OSA2OTM4ZDdhZDYwZTQxYWU1MDljYWI0Yjk1NDIzYzBhYjQ4Y2Y0NWMxIHJlbGVhc2UzMS1tYWludAorODU4NjAgZGYwMjA5MzU4OGQ2YmMyYTFlZDg4ODBmNWI0ZWIwYTk0NWMwODRhNSByZWxlYXNlMjctbWFpbnQKKzg1ODYxIDRkY2EzZjBlMGZjMDQ2N2Q3N2NiY2U5Yjg2MjllNTU4M2Y2YzI2ZmYgcHkzaworODU4NjIgZTllM2ZlNGM5ZTMwMGU1YWNjMjE1NzM5ZDRhMGJkNzhkYzczMzNiMCByZWxlYXNlMzEtbWFpbnQKKzg1ODYzIGViYjgyZjAxZGJlMjYxMDljNGY0ZGExZGIwYzM1YzE5YzQ1ODEzMjIgcmVsZWFzZTI3LW1haW50Cis4NTg2NCA1OWFiZGI5Mjc4ZjcyMDMyNDM3M2NhMmViMWZmODMwNTA0Y2ExOGNmIHB5M2sKKzg1ODY1IDBkNTBhOTExZDc0ZmU2MmFjMGM2OTViYWU4NTRmZWVlZjlkZDNmMTIgcmVsZWFzZTMxLW1haW50Cis4NTg2NiBhZjA2ZjA5NzJkOTdhNzY4N2M2YTFmMmNmOWY4MDI3MzQ5NjNiMzliIHJlbGVhc2UyNy1tYWludAorODU4NjcgMDUxYWE0MjdkZmVkZmY1OWQyZDI5MDI1NTAxNTRjMjc0MjM3NmExZCBweTNrCis4NTg2OCAyMTRiOTA1MTg0MWVhODllOTdkOTEzMzQwYzg2MmE1MjJjM2Q0ZjdhIHB5M2sKKzg1ODY5IGFkZDFiYzA1ZTQyNjZkYmI5ZDA4NGVkMmQ2OTM4ZjI4ZTI1N2VhYTggcmVsZWFzZTMxLW1haW50Cis4NTg3MCBmNWUzZGU4N2IxNGJmMDQwNzkwYjUxYjA1MmQ1MzhlMDFhNDFhODA0IHJlbGVhc2UyNy1tYWludAorODU4NzEgNjRkZTE3NDZjZDZlMzk2MzIwYTJjOGMxZTE1ZTFmMzk3MzU2NTIyNiByZWxlYXNlMjctbWFpbnQKKzg1ODcyIDNlNzhlZGU4ZmQyMTI0N2I3YWJlYjA3ZDRlYTNiN2EyOWQ0ZTc4NjUgcmVsZWFzZTI3LW1haW50Cis4NTg3MyBlNDQyNWQ2OGRhZGYyYzM4NjQ3NTk4NDBlZjBjNzM3OWNiOGE3N2YzIHJlbGVhc2UzMS1tYWludAorODU4NzQgYTI4MTk4OWEyMThiMGMxZDVlOWZjNTVlNzQzNTU3OWQ3YWNmNThhOCBweTNrCis4NTg3NSAzZmY5OTA4OWMwMmUzMDQ5MTZiYmNjZGRmM2E1YTJjMGQ2NWE4OTAwIHB5M2sKKzg1ODc2IDZkZmY1ODFkMzBmMzgxZmMwOGUzNWQ3NGNkZDg5MDcxNzg3NTkzZWMgcHkzaworODU4NzcgZTVmMjY5ZGQzMThiODdlYTE3ZTYxZTllZTk3MjU3NDA2YjlmMTJhNCBweTNrCis4NTg3OCA1YTg4MmY3ODllYzFlN2Q1OGFiZjFkMGMzOGZkNGEzYTBiZTkwOWQxIHB5M2sKKzg1ODc5IDViMTYzZjJhNjAyYmVjYTMxODIxYjhmZWRhNmU3Mzc2ZmY4NWY3OWMgcHkzaworODU4ODAgN2FkMzVhY2IyMGIwZDQ5OGMyMjAzNTdlZjIwZjg5YjJmYTRhZDBjMiBweTNrCis4NTg4MSAyMTEwZDI2OWE4NmVjMDBlZDM0NWIzZTAwYWY1MGI4NTgzNGMzYjUzIHB5M2sKKzg1ODgyIDczMTIzM2Y5MDQ4NjlkOWY1OTdjNTMzNThjYmYyMGEyNzdkNGRiNDEgaXNzdWUxMDIwOQorODU4ODMgYjljYTEwMmE3NmQwMzM0MzQ0NDlmYjc3ZTM0MTM0ODhiOTNmY2I2NiBpc3N1ZTEwMjA5Cis4NTg4NCA2NmI0NGNjYTI5YmI4MzMwNTA0MmU5MzVjZGMwZTQyZWQ5OTQ0MDg1IGlzc3VlMTAyMDkKKzg1ODg2IGQwN2I5YjBjYWFlZjFlNGE5NGE4Y2E2MGNlOTE4NTFmYTIxOGQ3ZTIgaXNzdWUxMDIwOQorODU4ODcgM2Y3ZDAzNDI5NDkxODZlNTEzMjZkODFjOTY2NmFiNGNiODlhOWE4YyBpc3N1ZTEwMjA5Cis4NTg4OCA2ZjMxZjBhZjUzNTc2NTAwYTU1MjA4YWNiNzNlZmFjZmIwMDNkZWFlIHB5M2sKKzg1ODg5IDViOGU2ODhlYTVhZWRkOWNkNWI5NTA2ZmYwNGVmZWQwYWMxMTVjYmMgcHkzaworODU4OTAgMTVlYWNiNGM1NDIyODMyMWYzODk2MTNiMGQ3MDMxZDU5MmJkZmQ2YyBpc3N1ZTEwMjA5Cis4NTg5MSBkYzA2YWVkOWI5ODQ1ZjBjYzY5Nzg0ZjM0MTg5OTY2ZjkxNDQ5M2ZjIHB5M2sKKzg1ODkyIDUzODNhZThkYjNjZGQxYjVlMDE5NTQ1ZTkyOGYwZTE3ZjI2ZmZkMDUgcmVsZWFzZTI3LW1haW50Cis4NTg5MyAxYzExNGQzOWFlNTI2MmFjNTNkZmI4NTNiZDY0MjhiNzI3MWI5YjdlIHB5M2sKKzg1ODk0IDY5OGQzMGI0NTExNmNiYzQwZDk2ZWRlNTZjMTE5NWRiMWYwZDI2YjcgcHkzaworODU4OTUgNjEzYzdiNTk2ZmU3ODEyZGU4N2I0MDE3ZmU1YzE3ZWJjYWVhZjA2NyBweTNrCis4NTg5NiAxYjdhMDM4NWM2NWY3YWI4ODk3NzMxMzgyZjE1OTMwYmVlN2QyNjI2IHB5M2sKKzg1ODk3IDcwZWJkYmQ3OWEwMmQwODNjZmI4YmI2MTE4Mzk4MGEzNWMyZGI5NmMgcHkzaworODU4OTggYzZkODY0MzlhYTkxODQ1MTg1NDFmOWUwMWRlOTA1NjRiMzZhZDYyYyByZWxlYXNlMzEtbWFpbnQKKzg1ODk5IDQxYTMwMTQwOTI1YmUxMzUyNmU0YjQ4MDAwNWY0Mjc2YTEyZWUzMDAgcHkzaworODU5MDIgYTU2YTJhODAzY2Q3OGVmOTQxN2U5ZDAwNmU0OWJjOTNkZTM3NDcxYSBweTNrCis4NTkwMyBiNjZkZWQ0YmZmMjEzN2NiMmM0YTFhZmU1NmRkOThjYTFlNWFhMzlkIHB5M2sKKzg1OTA0IDZhYzE4NTc2ZThmYTk5NmVhYmZlOGYwZmUxYjdjMjVlYjExZGVmMDggcHkzaworODU5MDUgNjRjZWU4ZDExZjJlOGI4YjY1ZTZlY2JkNzM2MGYxZjdiYTJjN2E1MiByZWxlYXNlMjctbWFpbnQKKzg1OTA2IGU4Yzg0MDBjYWE5OWNhNTdmOWNiZjM2MjM5YmI4YzY5MDJlOGQ5NDkgcmVsZWFzZTMxLW1haW50Cis4NTkwNyA0YWYxNGY5YWE5NzA1NjViMjA0MTJjODI1NzNlNzgzMWM2MjY5OWE5IHB5M2sKKzg1OTA4IDVlNzIwZjlkMWU2YzE5ZDdmYzNlMzMxMGQ5NTJmNTYwMGUzMGEyNWIgcHkzaworODU5MDkgOGM1YTEwMWE2MzU0NTgzNzAzNWVjYjVlNTUxYjUxYWViNmM3M2IyZSBweTNrCis4NTkxMCA4YThmMmFhOWRiMGY5OTBkNWJhNzMzZWUyOGVhNWMzZWY0N2Q3M2JlIHB5M2sKKzg1OTExIDcyMmIyYTRmYWUwZDE5NmY2M2M2MzEwZDdlMGEwZTQ1ZWYwYThiZWMgcHkzaworODU5MTMgNGQyM2RlNGY0MTAyM2M3OTNjYjY2NjhkZTlhZGFkYjg3ZTRmOTg5MyByZWxlYXNlMjctbWFpbnQKKzg1OTE0IDA4NjBiZTljODM0MzNhNjNmOTljN2Y0YmFjNjY2MjBlNGQxNmY5NjYgcHkzaworODU5MTUgMTZiOTI5NzFjMmQ0NDBjMmVmZGFiNTcyZThhOTZiMjkzM2ZhMjI0YyByZWxlYXNlMjctbWFpbnQKKzg1OTE2IDA1MGYwZjdiZTExZTI2MjI0OTkwMTFjMGFlNWY1MDZmODZlNzc4MzEgcHkzaworODU5MTcgZjM0OTg4OGZhZTY0MzljMGJiY2JiMjI3NmRmOWM0MWUyZTA2ZGU4MyByZWxlYXNlMjctbWFpbnQKKzg1OTIwIGNmZjc4ZmZiOTMyYTI3NmZjZDMwZGEzNDgzMzI3YzE4NTI5MjFlZjEgcHkzaworODU5MjEgMGI1ZTZmN2VkZjZlNjJhZmNmOGZlODQ1MTJhZjJkOWMzN2MxYjBhZCBweTNrCis4NTkyMiA4ZTYzMzhjZTA4NDY2NGJlYWM3ZjVlMmU2YTI4ODFiMzQ0YmMzMDBlIHB5M2sKKzg1OTIzIDRhN2EzZTUxY2QyOWEwMjY4YWM3NTFmOTQ4MTlkMzU1MmFjNjAzNGUgcHkzaworODU5MjQgZDE0NzI2ZjRiNDEwN2I1NmUxODhiOGE4MWZhNjcyZDJlYmY3Y2IyNyBweTNrCis4NTkyNSBjZjFkMjczMjFjNzgyMTcyOGE3ZGMwMmZlMTczOTgwNGUzM2M4Zjk1IHB5M2sKKzg1OTI2IDQwNDI3NzYwZTE2Mjk0YWE5NDc0NDYzYWUyNTcwZDU5NGQ0OGIxNGMgcHkzaworODU5MjcgMzcyZDZhZmYxNWJlOGM2NGU2ZTI4OTMyNDE4MmU4OTlhNzE3ZWYxNiBweTNrCis4NTkyOCA4ZmExMzJhM2FmYjViZTlmYTVmOTEzNTNmNmI2ZTc4NGExMGJjYmFmIHJlbGVhc2UzMS1tYWludAorODU5MjkgNWMxM2NkMGY5OWI0NWU0NTk2YThiOGQ4NzNkYWU0MGY1NTE2YzA5MCByZWxlYXNlMjctbWFpbnQKKzg1OTMwIDE1MzJjYTIxYjkyMDU4Njc2NGQ1ZWQxM2NhZTk4OTljOGJiZmM1ZTIgcHkzaworODU5MzEgNjFhOWFlNTIyZGNjYTZiNDk2MDI0OTllODhkYzEzODJmY2RkMWJhMiBweTNrCis4NTkzMiBmM2ExZWFjNjM1Zjk4YzdjZWQ3NGI2MjAxMmQ5MmQwZDllMDJlMDY2IHJlbGVhc2UzMS1tYWludAorODU5MzMgZjhkMzQ0ODQ5NTk2ZTE1MTZhNGJhYjQxODRlZmNmZGZjZGE0YmNhNSByZWxlYXNlMjctbWFpbnQKKzg1OTM0IGE0ZmQzZGM3NDI5OTcwNzY3YTk2MWNlMDIwNzFhZjY2MTkyMGQxMjYgcHkzaworODU5MzUgOGIzMmU0ZjZiZDk5ZDJmYjNkNWE0MmVjNjJiYmY0NjAyOTIyODA5MiBweTNrCis4NTkzNiBiMTgyNzViMTE3ZDIxMGI0MTE4ZDU4M2UwMTU1MDI3MDQxMDk0MGMxIHB5M2sKKzg1OTM3IGEwNjI2Zjk3MjdlMGYyZDA4YTI5NTMzOTc3MjY1ZmEyMDlkODczOGUgcHkzaworODU5MzggNzY1ZDQyMWQ5NDNjNzM1MTRmMGZhODM0YjdlNDlkODYyMjEwNzFhYiBweTNrCis4NTkzOSAxZDU1Y2MyODRkNGFiNWFmZTM3NGJkYWQzZDkyMDA5YTlhODAyOWU4IHB5M2sKKzg1OTQwIDJjMmVjZWQ2MzVmNjBkMGEzYjc3OTk5MDRkNmQ2ODdlYTY4NjMyYzIgcHkzaworODU5NDEgZWI1MGM0OGQ5Y2I0OTA4YWE0YzU1ZGFiM2ZkY2RiNWYzYTJlZTU4MCByZWxlYXNlMzEtbWFpbnQKKzg1OTQyIDNkYTIzZGViNmU5YTUxOWViNmY5ODU3ZGFhMmFjZTM0NTA2MTA3YzMgcHkzaworODU5NDMgZDE2MTcxNGU3YzkyOGM0ZTMzYTM3ZjhlMDI1ZWY0ZWE4ZTY3NGI3YiBweTNrCis4NTk0NCA1NTZmNTkxNjY1NDk5YzI0MjExNDk2N2MwN2ZjODM4YWQ1NzM2YTJlIHB5M2sKKzg1OTQ1IGJlZGVkNDdiYjE3ZjhiMGUzZTA2ZDc3NzQ2NDc4ZTk3NjQzZGZkN2MgcHkzaworODU5NDYgOTI2ZThiNmI2YzlkNmY3ODNhZGYzZjFmN2FlOTJlN2I4MzNhOGZiYyBweTNrCis4NTk0NyBlNzI3Y2YzNTQ3MjAxMDgzMzJmZGNkMDJkY2JmOTNhMzhiODc5OTNkIHB5M2sKKzg1OTQ4IDUzODZmMWY0MjhhMTVlYWI1OGU3Y2IzNjM2MmM2N2I0Mjg1ZmQxYzAgcHkzaworODU5NDkgZjI0YTUzZWRlOWVkOGU4NGNiYzkxNGFjM2FhZTk5ZTk0NDFlNzdhZiBweTNrCis4NTk1MCAxYzAyMGJjZDUwY2Q3ZWI0NTBkZGE2NDMyNWY5YWVlMTFiYjc0MDkwIHB5M2sKKzg1OTUxIDVjMDEzZWMyNzMyN2RkYWY5MTY5M2U5Njk4YmI5YTdjYWM1ZGMyMTEgcHkzaworODU5NTIgZTM4ZDJkMTczMDg1ZmYyODVlYzQ2OWFlNjUwYmVmY2NiMzM1N2NkYSBweTNrCis4NTk1MyA0MGFjNDVhMDkyYjc3ZDRhMTdjMTlmNjQ2MzAyOTY5Y2QxODRmN2Q4IHB5M2sKKzg1OTU0IGM4NWY1MzM5MDY4YTExYjliMTUxMTY1MWE1YTY5NWRjZWFhMTQwOWEgcHkzaworODU5NTUgNjRlZjYxZDlmZmRjNDE0MWNhMjEyMWZlMWJjMmFjMjgzMWM1N2UxNCBweTNrCis4NTk1NiAzY2NjNmFiNTQ2YzNiMTIwNjM3MmEyYWE5Mjk4YmViYjBhODdlYTI2IHB5M2sKKzg1OTU3IDNmZGJjNmE0YjBkMGY3ZDgxMDI0NzExNDVhYmU4YzYxZGQ5ZDc2ZTQgcHkzaworODU5NTggMTg4MzAyOWM3YjhhNzQ5NDE2ZjI0N2NhN2VkYmQ3ZmY2MTRlNzgxNyBweTNrCis4NTk1OSBiYWFkNTJlNzhkY2IzY2EyZjBhN2IxZDg5M2VhMzFkZDA4Y2VlZmNlIHB5M2sKKzg1OTYwIDBmNzY1YzMzZjRkZTI3M2Y4Nzc2NWJkNjM0MjcwMTFiYjU3MjRmMTcgcHkzaworODU5NjEgM2IyMTBkMDQ4ZjVkYWM0OWNkZDE4ODVmZGUwNjczODhkOWQyZjI3ZSBweTNrCis4NTk2MiA5OGNlY2EyNTE5ODhlMmVkMzhhOTZiMjg4ZmNkYTM2MzdlODY2YzJhIHB5M2sKKzg1OTYzIDliNjZhOWYxMzdiNmMwOTg4MGMzYjU1MjEyZmI5YTdhMTI2MTFjNTcgcHkzaworODU5NjQgNjAzMDEwYWY4MGNmMzY3ZjAyMTA1MWZmMmRlNmE4ZDdmMjBlN2RkNCBweTNrCis4NTk2NiA2NGE5N2M0ZWJhZGNmNDk0YjliZjEzYzc4ZDk4NTJlODM4NzVlZjExIHJlbGVhc2UyNy1tYWludAorODU5NjcgMTgyY2IzZjgyYjBiNjU3ODNiZWNkNzA0MjgxZTE0MzFlNjczNWI1YiBweTNrCis4NTk2OCA0ODBlNDU4MjhkNGIxOTEyMGNhZWFlYjlhMzQxOGI3OWYxZDJhNmI3IHJlbGVhc2UzMS1tYWludAorODU5NjkgMGEyZWMxNzRmYmNkNjI4YzEyM2Q2ODk3N2JkMGM1NzViNzdjMTE2NSByZWxlYXNlMjctbWFpbnQKKzg1OTcwIDkwYmM3MWQ2YmVkZmExNzI2M2RhOThiNmFjZWQ3YzA4NWRkNzFhNGEgcHkzaworODU5NzEgMzIyN2I2ZjIwNGNjNGIyNjBjZGY3ZjU4NGQxMjY1MTYwMTA4Njk5ZCBweTNrCis4NTk3MiBhYmJkOWQyNmFlNmM2NGVlNDgzNTNiZGZjNmY1OWNlYjNjNzljMzI3IHBlcC0wMzg0Cis4NTk3MyBlYTdiMjYwMGZkYzU5OGFmMzVlMGQ0MmVhNDQyOTk0OTMzZDYyMjZmIHBlcC0wMzg0Cis4NTk3NSA3MTA5NjhhMmUxNjNiOGQ5NzI0YzQ2ZGIxZjJlNGI1NWE0M2MxNGZhIHB5M2sKKzg1OTc2IDkzNTZkNzY1ZDc4ZTNkMWIwOThmYzMwMTdlM2JkNGE1OGFkYzlhNjYgcGVwLTAzODQKKzg1OTc3IGY5NzIxYThmODdiZDhiZDNkODNkYWJlNTg5OWE2YTdhMjE3NTBkODAgcHkzaworODU5NzggZWY2ZGFkNzUxN2M1YzU0Zjk4NzBhNGJlZjI5NmFlZDNkZTE3NjZiZiBweTNrCis4NTk3OSBlNmFmMTQ2YmIzOGI4ODYwYzQ3MGQ5ZGY0MGE4Mjg2YTE3ZGJmZTRjIHB5M2sKKzg1OTgwIGVhMTQ5NzdhMzZkZWY4OGFiZGQ1ZjVlMGNiNzIyN2Q2MmEzMGQ5MGMgcHkzaworODU5ODEgYjAzNzc5ZjAwNzM5ZDRjNmM5NGU4ZDAyNTdmMDI2MDA4NjYwMmJkNiByZWxlYXNlMzEtbWFpbnQKKzg1OTgyIDgxOWIxZTA1MzVkMTkwYTZkNTQ4NTBmNjlmODNiNzUyZDIxNjY0ODYgcHkzaworODU5ODMgYjcxODBhZmEwZGZmMmY3OGU3NWUwYmQ3ZDFkMDFhOGMxZGZiMDgyNiBweTNrCis4NTk4NCAzNmVhNzE5MDJmYzhkMWM5ODJhYTIxY2E3ODZiYjAwZTk0ZTM5ZjFmIHB5M2sKKzg1OTg1IDM4NTZjNjFiNWM4YmJiZWQzZDM1ZGY3MjE4MjRlOWY0ZTNhMDIyZmQgcmVsZWFzZTI3LW1haW50Cis4NTk4NiBiMDFmYzNhNDJkMzVmYjhiZDlkNGE5NjQzOTIwOThjZjJhMWQ1MTAwIHJlbGVhc2UzMS1tYWludAorODU5ODcgNzJhMmQ0ZDk0MDAzMmQyNTViZTRhOTU4OGM4YzNmOTZiNmNlNzFhNSBweTNrCis4NTk4OCBkNjk4MjA1NTQzYmQ3MTk2MDk1ZjU5YzNiYzVhNDkxOWJkOTE5MzhiIHJlbGVhc2UzMS1tYWludAorODU5ODkgZTIwM2VkMDcxZmNhYjQzNzFjYWMzYTRkMDY0MmU2YmI4MjQ4N2Q3OSByZWxlYXNlMjctbWFpbnQKKzg1OTkwIGI5NDM5NjVmYzQyYmM5MWY3MGYzZDJmODhlZDY3MzI5N2UwYWEzMzYgcHkzaworODU5OTEgOGQ4MjQzNDgzMjI4YzAzZmRlOWM4NTZiMTRmZWMyOTJhN2FhYTljZCByZWxlYXNlMzEtbWFpbnQKKzg1OTkyIDI0YjE4Y2Q0ZDVmMzU0OTcyNGFkYmJmZDczYmMyZDVlYmRkOWFhMmYgcHkzaworODU5OTMgNDJhZDRhZTZkOGVlYmI2YjI0MGE5NzVkMmYxYTA2NDJlOTYzZjNiNSBweTNrCis4NTk5NCA2MjRlODMxY2U3MDAyOTFmZThlMTNjZDI2NjU4YmMzN2IyZTI2ZDMyIHB5M2sKKzg1OTk1IGNlNTNmZWE3Zjk1NzNmOGFmZThiNjY1OGJkOGY5MDdmN2FlZWQ2MDAgcHkzaworODU5OTYgNWI2MjcwMzVhOTIyZjdhNDEyMTU1ODgzMzliNTJlZmZiYTY4OTE5NiBweTNrCis4NTk5NyA5MjUxYmEyNzJmMmNhMzNmMDhhYmM1MWE4ZThhNTI2ZWQ2ODZmYzg2IHB5M2sKKzg1OTk4IDBiYzJiMDY0MDZmOGJlM2EzMTYxMjRlODM2M2FiM2E5MmU5MTQ2MWEgcHkzaworODU5OTkgMTk1NGM4ZTMxY2IzOGE4OWQ2N2IzMTVjNDY2MzM2YTkwZWU1OTJiMCBweTNrCis4NjAwMCBmMTgyNTE4ZjNmNDI4Y2NjZWYzNzhjOTc1ZjQ0MjQxMWZhMjRlNDVhIHB5M2sKKzg2MDAxIDcxZjRmM2IxYzMzNTZlZWM1YzhjYzVlMTZkMmRjZTBiM2ZmYTYxZjcgcmVsZWFzZTMxLW1haW50Cis4NjAwMiA5ZjEwOTY4ZjUxMWQ3M2YxYmFjM2Y5Mzc0NzM2NDk4YTZmZDVjYzkxIHJlbGVhc2UyNy1tYWludAorODYwMDMgNzM2ZjNhMTBkMTczMzEwMzI3NWVhOTAwNWE1ZjAxZGQxNDI0MzdkMiBweTNrCis4NjAwNCAwNmUyMTUwMDExOWEyOWNlZjA3MWZlNjdiODhjMmYyYTkxZDE4ZmQzIHJlbGVhc2UzMS1tYWludAorODYwMDUgNzMyZmZhODZjNzk4YTlhZTZiYzI5ZTdiODMzYWNlMmMyNGE3OGE2NSByZWxlYXNlMjctbWFpbnQKKzg2MDA2IDIxMTg1ODcyM2I4Y2E5NGI1N2ViZDYzNjY4MTg4ZTAwZDBiOWI5ZDEgcHkzaworODYwMDcgMmUxYWQ3MTIxZTI5N2YxNzZhYWRhMmQ2MWY0NGFhMGEwODUzNjMxYSByZWxlYXNlMjctbWFpbnQKKzg2MDA4IDQ1OWU5NWI2OTMxYmU0M2EzMjAzZGUxNTRhZjQ2OTk1OGI0ODlmYzkgcHkzaworODYwMDkgODc3MDljNmU1NjkwNTczN2IxMDk5ZTE2YmM4Y2Y2ZmI2MTk0NmViMCBweTNrCis4NjAxMCA5MGJjMGM1ZDcyMmY3NzRjNTQ4OGFkZDZmNWM3NTJjODk1NmQ4OGVkIHJlbGVhc2UzMS1tYWludAorODYwMTEgMzA1ZTkzZmQ1YjZkNGFlZGI2ZjM1ZDdjZTFmMzZmNjI5ODI1NzhlYyByZWxlYXNlMjctbWFpbnQKKzg2MDEyIDNhNzU1OWJhOGViNTkyMDM2YTJhY2UwZDE4MzZkYmQwMTJjNWRlNzkgcHkzaworODYwMTMgNDlhMzFhZTAzNDhhNThjMTRhM2RlMjExZTFlZWM4ODE1N2UyMmFjNyBweTNrCis4NjAxNCA2MTJhYmIxZTc2NzYyMWM3YjZiMjdmZGM3MTA0MTA5NDFmNjZjNWI4IHB5M2sKKzg2MDE1IDhiZTA4NzYxZGRjMGJlNTdmNDU0ZGZkYjMzMDYwMTc3OTBlOTlkNjggcHkzaworODYwMTYgOTdmMzJiYTVmZjg1NGE2YWJkMmVmOTM3Y2M3OTlkNTI5NjVkNDc3NyBweTNrCis4NjAxNyAwZWU4NmZkOTAyZjFlZjM1YmRlYTY0YTM5YzM1YjlhNjlmZWFmNjRkIHB5M2sKKzg2MDE4IDBlYzMxNzBmYWE5NWU1ODJlNWYwYTk2NTE3MGE5MzQxYzI3NzUwNWQgcHkzaworODYwMTkgYWY5ZjllZmNiYjlkYjY0ZDY1YTNmNDNkM2E1MDVmZjI3MjM2N2Q0ZSBweTNrCis4NjAyMCAwODVkZTk2MDNiNjI5ZmYyMTQ1MGUwYTYwMmZiOWU4ZGQxNjkwYTRmIHJlbGVhc2UzMS1tYWludAorODYwMjEgNzYwOGRjYWY3ODZkZGRkYmZiMGRmMDdkMzc2N2JmZjQyMDlhMDUxZCByZWxlYXNlMjctbWFpbnQKKzg2MDIyIDk0YzVhZDk4MWMxYjdmNjFhMzUwYzE0YWY2NDA4NzYwZjAxZTAxZDAgcHkzaworODYwMjMgYjQ4MTk4MzhlYjViNzNmMjE0MTRkYTk0YzE3Zjk0YjEwZjkzOTVmMSBweTNrCis4NjAyNCAyMTg3MmMyNGEyNWI5MDljYjQ0ODIyMmE0ODJkNDUyZmQ1ZWMyODcxIHJlbGVhc2UzMS1tYWludAorODYwMjUgOWUyOTFiZTQ4OWNmNTUxNGZiNDI3MWI0YjIxZmY2MmQ5MzMxMzlmMSByZWxlYXNlMjctbWFpbnQKKzg2MDI2IGZjODY1ODYxOWJkZjQ5ZGVhM2NhNDE5ZmFhN2UzZTBiNTcxODlhZDIgcmVsZWFzZTMxLW1haW50Cis4NjAyNyBkOGQzMzY0OGQxYjJjN2U4YmEyOTQ3ZjY2N2VjNThlN2RhZTkxMmJhIHJlbGVhc2UyNy1tYWludAorODYwMjggYzk4MjA3MzE4ODNkOWJkNGZmNGIwYTBiOTFhYTMzNTkxNGZkNjM0NSByZWxlYXNlMzEtbWFpbnQKKzg2MDI5IGYzYWZhMTBjZTc3NzE5ZTNiYmRjMDJhODE3Y2RlMzY2MTMwZmJkODMgcmVsZWFzZTI3LW1haW50Cis4NjAzMCAxMzFlN2NjOWU0MTZjZDYxODgxZjkwM2IzY2JjMWNhNmMyOGE2ZGY5IHJlbGVhc2UyNy1tYWludAorODYwMzEgMzJjMTkxYTVjMWNmOTQ5NWJkYTBmYzQ2ODgxY2I0MjJmNTc3OGY3MyByZWxlYXNlMjctbWFpbnQKKzg2MDMyIGI4OWIwYzdmMzcwOTRhMGI3MzNhMDk2YWQ0YTQ4NTk2NDgzZjM5ZTkgcmVsZWFzZTMxLW1haW50Cis4NjAzMyBhZTA2YzA0OGRlMjQ3MjgwNDMxOGU4ZWI1MDYwZDEzNGJiZjBmOWZhIHJlbGVhc2UyNy1tYWludAorODYwMzQgMzIxN2IxMGY4NDEzYThhZDc5OGNhNzA5NjkzNjAzZTM0Y2NhOWUxMCBweTNrCis4NjAzNSA5YjgxNDI5NjIwZjRiNzc0NWVlYjNkYzJkYjZmYmQyNjlkZDg0YWQ2IHB5M2sKKzg2MDM2IDQxMjdhYjFmNjMzOGMyYzgwZTQzNTY3NDI2ODhjNTdiN2Y1ZjVjMzIgcHkzaworODYwMzcgOTdkZjVkZGU5ZjgxYmE2ZDRlMjdiYTRlMTY4MmVkYWZmZmYyMTgzMyBweTNrCis4NjAzOCBhNjgzMGNjODIyYWFiZTMzM2Q5NTI4NjdmZjk2NzY5ZmYwNDQ5NzlhIHJlbGVhc2UzMS1tYWludAorODYwMzkgMTQwZDQ3MWIwNjFhNTNkMTcyZjllNDJhNjIwMzYxYjcxMTRmMzczMyByZWxlYXNlMjctbWFpbnQKKzg2MDQwIDc1YWMxM2ZlN2RhMDNiYmNhNGMzM2U5MTBiOWViMmIwZDJjYjM3MzAgcHkzaworODYwNDEgNmZhNDhmYTJhODY1NjhjOTU4MzUyMzJmYjc5MGUzNjUwNDFjZTNjMCByZWxlYXNlMjctbWFpbnQKKzg2MDQyIDk0NDMyZTRjZGRjZjYyNDFjOTMwM2QwODc4NjhmZDY0MzQ0ZGEyMjIgcHkzaworODYwNDMgNWM1YjdhOWJhYzA1YzY0NTljZThkOTI0OGE2MTQ3ZjE2YWRmNDEyYiByZWxlYXNlMjctbWFpbnQKKzg2MDQ0IDQ5Nzk2NGNmOWU1OGU2MGJhYjdmYjFkYTk4MTk5NDFjNTA1NWE3MDEgcmVsZWFzZTMxLW1haW50Cis4NjA0NSA1YmRjMGQ2YzY5MzkzM2JjODNkOTJmMGQyNjUxNGE5ODQzY2VmZDE5IHB5M2sKKzg2MDQ2IDU3NTc5NDI1OTNhMGViYjUwNzlmYTIxNmMxMzA2ZjdlNDI4MGJkNGMgcHkzaworODYwNDcgZGUxZTVlZWE3ZTc1ZDEwNWJlMDhhYzRiYmYyYzIwMDkwZTFmMzNmNyBweTNrCis4NjA0OCA3MTllYmNiOTM0ZjNkYzQ0MDE1NTY2NjhjMWFlNWMwNzYwNmY5MmE2IHB5M2sKKzg2MDQ5IGJjNmNjZTRhYjNjNjM2NzcwMGY5ZDZhZDJhNDhhZDllMjlkOWIwNmUgcHkzaworODYwNTAgMDAwNWExODFkMTBiYmI5NGZhMGUxMjJkZmI5Mzk2MzllNDE2NzM5OCBweTNrCis4NjA1MSBlYTJjMmZjMDE5ZDY1YzQxM2JlMWI2MmZmZWQzYzE0MzVhZGQ4MTc4IHB5M2sKKzg2MDUyIDQxZDVkM2Q3ZGEyMThmOWEyNGU3MDM5ZWJjNmY0ZTJhZjI2ZDM1ZTggcmVsZWFzZTMxLW1haW50Cis4NjA1MyAwYTk0OTIzNzgzYTQ3ZDQwMTk4ZTQyNTE3MzZlNmY4NGI2OTU0ODgxIHJlbGVhc2UyNy1tYWludAorODYwNTQgNDNhY2M5NTQzNDE2YjQ1YjA1MGJmYTg3ZWEzYzc3OTk3MzhkMDkyNSBweTNrCis4NjA1NSA5MTAzYWE5YjI3MDRjOWI1OWNjMzBlYjhjNTZmMjdjZjg3ODdhMjkyIHB5M2sKKzg2MDU2IDA1OTlkMjE4ODgzN2VjNDIxZjA5NTZkZjk3ZmNmZmJlYmM5MmFmOGMgcGVwLTAzODQKKzg2MDU3IGZlZGRiOWE4M2FlZjFjNmFjNjgxNTNjNDgxNDY3ZTFiNWQxNzkyMjYgcGVwLTAzODQKKzg2MDU4IDA4OTJiMmMzNjM2ZDllMGMyOGMzMGViNzZmMzFmN2YwODQ5M2FiMjEgcGVwLTAzODQKKzg2MDU5IDk3YjlkNDA4ODkxNGUzODRiMWIyM2EzMWViMWVjZmJmMDQzOGRlNDIgcGVwLTAzODQKKzg2MDYwIDEyNDMzZTk4OWQ5YzkwMTllNzNkM2FhZjEzY2QwY2RjMzYyNjMyYzcgcGVwLTAzODQKKzg2MDYxIDM5MzNhYjZmNmY3YWM5M2Q5ZTc4ODlmNWY3YWIyNDllYTBhNjI1YWQgcHkzaworODYwNjIgNTNiNTFmNWU5NWM0Y2NiYTM1NWM1NTIxN2FkMTJkOTU5YTcwYzA1NyBweTNrCis4NjA2MyBkMGYxY2ExYTgxMzkxY2QzMzI0ZGFiOThhMmU4MGU0ZmRjMzgzOTdhIHB5M2sKKzg2MDY0IGI2NDI0NDFkYTFlYTU5MGZiMjcwY2M0MjM5YWYzMWIzNWMwNTU0ZDUgcHkzaworODYwNjUgZWFhNTA3MjUxMjJiNjZjNTkyZTMzZjM0ODFjMzlkNGI5MmQyZTNiOSBweTNrCis4NjA2NiBhMmNlODIxOGUwMjkyZGNkYmM5MzE3M2FmZDdlN2EzYjRmY2ViOTYzIHB5M2sKKzg2MDY3IDY0NzA1NjYxOTZiM2QzNWQ1Mzg3ZjYwMTk2Yzk4ODc1ZjdhZjhiYWQgcHkzaworODYwNjggMGEzYWU0YTI1NWRlM2FiNzU1MDVlMWZjODRkMDAyOWUxM2MxNTY4NCByZWxlYXNlMzEtbWFpbnQKKzg2MDY5IGZiMTJlZWIxZTdhOWJhMjE4ZWE5ZWU1ZmNlNWZhOWYwOTc5OTVkYWEgcmVsZWFzZTI3LW1haW50Cis4NjA3MCBkMGIyMGE2NTIxZDIxNDZlZDU4N2JiNDlkMjEyY2I1ZjBjMzEwNWFhIHJlbGVhc2UyNy1tYWludAorODYwNzEgYjVlMWU2ZjMxNDM3ZjJjNzU2YzY1NWQ4N2FiN2EyNDU5ODQ0YjIwOCBweTNrCis4NjA3MiBjODI0ODc1MTNlNzY5MDZhYjQwNzAyMWM5ZWI4MTA4NmI3OTgyMTk0IHJlbGVhc2UzMS1tYWludAorODYwNzMgZmYyYzVjOWMwNzliYTA2YzNlOWE3NzM0Mzc2NWM4MTFmZTczOGY2MiBweTNrCis4NjA3NCA3ZGMxMzZhMDEwMTM3MDY2YjJhOGY5MTVlMTVlOTMzMjdlNjlhNmE5IHJlbGVhc2UzMS1tYWludAorODYwNzUgNDUxYzliYjc1MTU5ZTQyYWZkOTIxZjg1NTk2Zjg3Yzg5NzUwMTg0NiBweTNrCis4NjA3NiA3MjBkNDVhNmUzMTY5ZDZiNTVjNjJmZDk1MGZlZDZiNzQ1ZTY4YjRmIHJlbGVhc2UyNy1tYWludAorODYwNzcgZmUyZDE5YjJhNWM2ZDJkZjhmOGIwYTUyYWQ4ZjU2OWFmOTQ2ZGFlMyBweTNrCis4NjA3OCBiYTJhZTA5N2Y1Njc1MzEyYjA5ZTFkYWEzYmM2ZGZhMDU2ZGNlNjhlIHJlbGVhc2UzMS1tYWludAorODYwNzkgMjA2ZGVkOTQzNTM0ZDM2YjY1ZjQxMGIzZGM5MDhjYWExOTliODU2ZiByZWxlYXNlMjctbWFpbnQKKzg2MDgwIDhlNjU4NDlmNzFmNTA5MzhlNmRmZmM2M2U2MjNjMjI5Yjc3Y2VmMWQgcHkzaworODYwODEgYmVlZGM3ODU2ZjViMTM5Mjk5Yzc2MGJmNGE5MDk4MDk2ZTBkMGQ3MSBweTNrCis4NjA4MiA5ZDExMzNjMTg2M2U0YzA2NmMxNDgxYjRkNTlkNzdjZmQ4YjI2NjQxIHJlbGVhc2UzMS1tYWludAorODYwODMgOWRiODU3OTYwNDAyNzIzNWZkNjdhMzU5OGM2NDY2MjEyYjZhNDA0OCByZWxlYXNlMjctbWFpbnQKKzg2MDg0IGYwMzAwNTg0YzgyNDQ0YzhiYmZhOTNmZWE3YTYxODMwMTcwZDk5ZTAgcmVsZWFzZTI3LW1haW50Cis4NjA4NSBlNWRiMzJmNGY0Y2Q2ODJhMjdmODM3YjU3Y2YzNWE2ZmE4NGQwZTkwIHJlbGVhc2UzMS1tYWludAorODYwODYgZTcxYzJlMWRhZjU3MGJmYmRjNGNhOTdiZWIwYmYzZTVhODhlNTQ3YSBweTNrCis4NjA4NyA0OTNhMmQ0MDdjOTQ0NjgwNjFmZmRiNzIyMjZkNWU0MDM5ZDU0MDEwIHJlbGVhc2UyNy1tYWludAorODYwODggNDNkMmQ1YWZiZjczOGI1OTE0MzNmMDg4NTVlZTQzMGE0Yzg4NWIwZiByZWxlYXNlMzEtbWFpbnQKKzg2MDg5IDdjNThmYWYyMmU5ZjJlYzU3Nzk4ODRjZmI4YTA4YjRjMWQ5ZGY3ZTIgcHkzaworODYwOTAgY2I5ZTEwMDM0ZTRhNjVlYzI3MWRlZTBjMDMzMzQyY2FiN2M0NTUxMyBweTNrCis4NjA5MSA4NDg5MTI3ODliNzk0YWI0MDVlYTkyNmJlMjRlMjY4ODJiNjA2ODI1IHJlbGVhc2UyNy1tYWludAorODYwOTIgZDhhYjM1ZWM0ODZlOTA4NjYzYmY4OGVlMDU0ZDAwNWExMjM5YWVlNCBweTNrCis4NjA5MyA1OTUyYjkzN2FiOWEyOGIyMjI1ZDNjOThjNmJlZmEzZWQwZjhkYWQ1IHJlbGVhc2UyNy1tYWludAorODYwOTQgYjNjMDk4YzNhODI2NjlmMjE5NGUzYjM5YmYxMzBjNjI3MjBmNWM5YyBweTNrCis4NjA5NSA2MjFmM2U5YWNlZGRjNWU3OGQ2OGY4ODkyNWFlNjNiOWUyNTkwYTk5IHB5M2sKKzg2MDk2IDM1MjBmZWE1ZTkyMmViN2EzMTA3YmI1NWZiMTdmM2ZjYWY4NjcxMjEgcHkzaworODYwOTcgNTIwODRlYTYzYzQyMTIxYTk3YTQ1ODliMTJmYjA4YWQ1NzI3MTVjMiBweTNrCis4NjA5OCBjNzkxZDAyNjEwMDYyNGI0MzExNjMzMTFjNDA4NmMyOGQ1ZWIwOGEyIHB5M2sKKzg2MDk5IDUzOGY0NGIzMmIwYThkYjk5MDY3YTI0NmMxMDY3OWU0ZjM0NzM5MTcgcHkzaworODYxMDAgZmY4MTY4ODlhYTYxZmM2MjI3YWU4NWRhODlmMDQzZDk4ZDRkNzAzNiBweTNrCis4NjEwMSA5YzdhZDBlZDY2Y2JlY2FkYjU2YWJkNWZkNmZlZjUyZTZhOTc2YTUzIHB5M2sKKzg2MTAyIGJlMWQ3ZjYxOWZjMGYwMDYxZjg2ZjE1ZWU3NGYyODI5YWYwNDY3MmIgcHkzaworODYxMDMgOGUxOWZmOTY0Y2M4ZGExNjIwYjU4N2U3ODIzYjczNzMwYjg2MGRmYSBweTNrCis4NjEwNCA0ZWE5NGM1ZjZkMTAyNTI1NGQ5NzkzZWU1YmVlYjA1NzQ5ZDk5ZTNjIHJlbGVhc2UyNy1tYWludAorODYxMDUgODg5ZmQ4ZWNiZmY0MjQ0OWRhNTNmYWQ2NGJlYjEzN2UwM2U3MjQxNiBweTNrCis4NjEwNiBhMzdkNmQ4MWY0YjFlOWQ1YjhhMDRkN2E5MDY2NDk0MzYyNDdhN2IxIHJlbGVhc2UyNy1tYWludAorODYxMDcgYTYzOTU5ZWVjOGZmNGFkZGJiODk0OTY0ZDMwMGJmOThlNzJjNTBjMyBweTNrCis4NjEwOCBiMzQ2YzhkMzNlNTYwMWVjN2EwOWI5NWI4YjlmNjQxYTM2NjI4YzhlIHJlbGVhc2UzMS1tYWludAorODYxMDkgZGViMjNjYmFiNWFiNjIzNTM5NTZlNjA4MzkyYjBjZTZhM2MxNzAyYyByZWxlYXNlMjctbWFpbnQKKzg2MTExIGZmNmYzOWIzYzM4ZTQ2YmQ1YTUyNGI0NjQ2Nzg2Y2NkZTFlMGFlOTkgcHkzaworODYxMTIgNTczZGIyYWYyZGRhNzRmMjMzN2RjYWU0N2RkMWNiOTlhZmYxZTViNiByZWxlYXNlMjctbWFpbnQKKzg2MTEzIGYzYjcxODgxNzFjMDJjYjVjZDdhN2Y3OTYyNzQ5OTRlZWRjMTNmM2IgcHkzaworODYxMTQgMzY4NzJhMGVkOTQzMzVkODA4MDAxYTIwMzUxZjEyNTNmY2RmMDNjMCBweTNrCis4NjExNSBkN2VkZDE1YmEwZjJhYzEwNGYzNmM3M2U2N2E2NjQ4ZGRlM2NkMGY5IHJlbGVhc2UyNy1tYWludAorODYxMTYgMTU3Njc5MDJiNTQ1ZmM3YmM0MmJiM2ExYThiNTk2YjgxOGNkYjRlYSBweTNrCis4NjExNyA0OWYxOGE5NTMzY2RlMjYyMDhlMDdlNWJlZTE3OTZiZjAxZTE5MjBhIHB5M2sKKzg2MTE4IGVkZjQwNmVhYjFkYjdmYTJlMDM5YTRhNTZmNmEzMTU5MjI0N2I3ZTcgcHkzaworODYxMTkgNmVlZDBmYzE4ODE4YzEwYTY1MzZmOTI2ZjViN2RhMmZjODMzYWMyMiByZWxlYXNlMzEtbWFpbnQKKzg2MTIwIDRjY2QwNjhjYmEwYzliMDIyNmIxMWU3MjJhZDM2ZGI0ZTljNmZlYTAgcmVsZWFzZTMxLW1haW50Cis4NjEyMiBmNGY3OTU1NmE1MjJlMDRmMDYzOGZhOTM4YmM2MWUxZTYxMzg5MzUzIHJlbGVhc2UzMS1tYWludAorODYxMjMgMDA0ZDVmMTY1NzM4ZGVjYzBjZjJjY2MzODFmNjMzYzQwZmNjMDQ1ZSByZWxlYXNlMjctbWFpbnQKKzg2MTI0IGEyODU4NDNlOTU4YTRjM2E3N2MzMzUxYzIwYWJhZDM0NDNlYmRiOTEgcmVsZWFzZTI3LW1haW50Cis4NjEyNSA0NTc3OTJhZmRlY2Q2MTBiZmJiZTJmZGMwOTk3OTRlNTNkM2QwM2Y0IHB5M2sKKzg2MTI2IDIzYjQ5Njc4NDAxZjE4MTcwYWQxZDQzZjQwZWM4OTIwMzUzY2MxZmEgcmVsZWFzZTI3LW1haW50Cis4NjEyNyA1M2ZiOTkxNjMyN2UwZmViZDU0ODA4N2U3MGQ1NDQyNjJhNjE2MmM2IHB5M2sKKzg2MTI4IDEwOTUzODcxNmM1OTFkMTYzMGU4OWY3ZGZlOTVjZTk0ZGIyYzJjMTIgcHkzaworODYxMjkgMGNlMGY4ZWJkZDI5ODUyMjM4MjMyMzdkNTE5ODdkNDYxYTc3ZmQ5ZCBweTNrCis4NjEzMCAxOTEwNjdmNDlmY2EwNTUyZjI2NmU2YmM5NjcxNjhlZDdjNTM0NTY4IHB5M2sKKzg2MTMxIGY5ODBmOTQ0YmUxOTM1NDI2ZDRmNGRmMTRjNTY2OTVlNmZkYTA0NDQgcmVsZWFzZTI3LW1haW50Cis4NjEzMiA2ODM0MWY5YzU5MzczZmJlODZiZWIyZWM1ZjZkZDk3ODJiZmUwZGNmIHJlbGVhc2UzMS1tYWludAorODYxMzMgMjY5NzMyNmQ0YTc3ZDNlYzg3YTkzNTk5MDI1MjI0NDgwNWExY2Q1OCBweTNrCis4NjEzNCBhOWRiYzg3YTNmZjRhY2E3NDc2MjY0MjY2NWExNDJlZTdhZWFjYWIxIHB5M2sKKzg2MTM1IDZkMjBkZGU5NjA5YzkxZTdlZjZiMzAyMDFhMzA3OTJlMzc1MmQyZWMgcHkzaworODYxMzYgYjk2ZWRiMDJlZjYzMGY3MTlmZTlkNjYzYTRiMmRmMDU2OWFlMjUxOCByZWxlYXNlMjctbWFpbnQKKzg2MTM3IDJkNDIyZjEwMDIyZmYwNzE0NzdiNGFmNTFiMTg2ZmJkYzY3YjI4NDggcHkzaworODYxMzkgNThlNTRmNTYzZGU3Y2YzZDQyYTYwYWNmMjBkYjQ2MGE1NDk5YzI3MyBweTNrCis4NjE0MCA4YTRlMjYzNzk2YTNlNWZmNTk1MjI2ZThjYTE2NTgzZTgxNTMxY2UyIHB5M2sKKzg2MTQxIGI4YzIwNmU1ZWQ0NGFjZmQzYzcyZWUyN2VmM2JiOTM1MzgyNWM0MWYgcHkzaworODYxNDIgOGVmMzI5NTVhMzQ5NGU5YzZjNGY5Y2FiZTgxMjBlMmY0ZjljOWRkMyBweTNrCis4NjE0MyA1YjA2NWNmNjBkZGUxMmEwNjlmOGZmYWRlM2UwYjQ2ZDc1NDE1NmNlIHB5M2sKKzg2MTQ0IGYyNTUwMTJiMzQ2YmM5NGExNjA1OTVkODAwYWI3YjFhM2M0NzMxZWQgcHkzaworODYxNDUgNjcwODVmMjAyMTQyOTEyMmZhMTJlZGFiN2YyMjhhMWQ5MzcyZDBlZCByZWxlYXNlMzEtbWFpbnQKKzg2MTQ2IDE0MmQ1MzkwYWM1YzZhMDJhYWIyZjljNDIzNjhlM2VjOWEzNTk3MTQgcHkzaworODYxNDcgNGQxYWIyZDI1YmFmNmQ4ZWM0YmI5NWJmYTg0MWE4MGE0MWVmOThkYyBweTNrCis4NjE0OCBkYzMwMzgyYmE4OWExMzA3Yzg0MGM1ZDljYmE5YTMwM2U5YmRiOTMwIHB5M2sKKzg2MTQ5IGYyOWY2MmMzNTdlMTRjOTVmZDI0NmE4M2M4NjA2NzAzNWQ3ODc4MjkgcHkzaworODYxNTAgODFiMGU4OWUzZGYzY2Q5NDNhZmY0MWVjNWQ3Yjc4MTQ5YzJkNGUzMSBweTNrCis4NjE1MSA4YTVmMDg3M2Q3MzgwMjE5ODViYTZlODI0NDk1NTU5ZTIxNGJkYjIxIHB5M2sKKzg2MTUyIDhkNjU5YTU0NzljYTg0ODkzYTM5ZmZhODQwMTk4ZDU2MzVkNWNiMDYgcmVsZWFzZTMxLW1haW50Cis4NjE1MyA0NjI0MWEzNWI1ZmM1MDdjM2RmMjY2ODZlOTE4NDc5YzcyNGYyOGQ1IHB5M2sKKzg2MTU0IDI5OTczNWU1ZmQ3ZjkxMTRjMzNhYmUyZTUyNzU4NGE3MWE0NDBhYjYgcmVsZWFzZTI3LW1haW50Cis4NjE1NSBjOTY3MzE0ZWY2MWU3M2YyZTc2YzRlZGZiNDEwZmNhYjdkNmVhMjQzIHJlbGVhc2UzMS1tYWludAorODYxNTggNzFhYzUyM2E2YjEyMzg0MjIzZTg3YjQ2ODQxM2E5NDc1YjMwZjJkNSByZWxlYXNlMjctbWFpbnQKKzg2MTU5IGUxYjYxYjA1MmM2NmJkM2Y0YTA5ODEzMmI0MTAyNjA2NjIxNTY0YjAgcHkzaworODYxNjAgMWU0ZDQ2YTYxZmJlZWVlYjNlYjQ1MDkwZjk4ZWE2YjdlYzg2YTMxMyByZWxlYXNlMzEtbWFpbnQKKzg2MTYxIDg0NGVjZTM3Mzc2NDE0Y2QzZjU4NmEyZmQxOTA1Njk3YTg5Mjc1MWYgcHkzay10dGstZGVidWctb24teHA1Cis4NjE2MyA3YzVkMWRjZTM5ZmFhYTZjMGMzNzAwYTBkOTM2NTI4NDdiZWVkMjc4IHB5M2sKKzg2MTY0IDUyMzFhNWEzN2E3YWNmZTg2NzNiMTI0MThhNjU0ZjkzM2ZjNWJmZDYgcmVsZWFzZTMxLW1haW50Cis4NjE2NSBiZWJhMmRlMjAwZGQxNjVlMmEzM2M0ZTUxOWZmOTg3ZjQxNzQ3YjQyIHB5M2sKKzg2MTY2IDZlMDdjN2U0YzdjY2E5NDg1NjVhZjA5ODY3ZGJkMGZlYzExNDI0NTQgcmVsZWFzZTI3LW1haW50Cis4NjE2NyBjYzdhODhlMDg4OTkzOWFhNjIwZTI0NzA3MWRiNmQ1M2QyYWYwMjQ3IHB5M2sKKzg2MTY4IGZmNjU4NWEyYTI0MzJjMWFhMWNmNDhlMTUxNGFkNTdlN2ZjZjYzM2QgcHkzaworODYxNjkgNjYzMWU1ZjZkMmNlZTQyMmUzMmNhMGM3ZGJjNzdmZjZkNjAyYzY2MCBweTNrCis4NjE3MCAwNWVlZDlmMGNlMDE1NTI2MDhlYWIwZDY5YzAyZjNjNmU1N2YyZjJlIHB5M2sKKzg2MTcxIDQyOTRlMmMwMDI0NTQwMDFkNDc0Zjk5NjRkOTFlNDY4NzhjMmJhYWUgcmVsZWFzZTMxLW1haW50Cis4NjE3MiAxZjQ1YmZiOTg0NzM3MDE3YzJmODc0YzY0YjIwMmRiYzBhMmYwOTg4IHJlbGVhc2UyNy1tYWludAorODYxNzMgZGRmMDAwYWVmNWIwN2E0NGVjNGRmYjk4YzM5OWNjOTUxNzY4MGRiZiBweTNrCis4NjE3NCAzMjkyY2MyMjJkNWNkODYxMzNkZGVkYTU0NWU4OWUzMzI0MGFkNWNmIHB5M2sKKzg2MTc1IDI3MGI1MDI5NmVhOWZiMGVkMDc1Yjg3MzFmZDQyZDYzMWM5NTExOTEgcHkzaworODYxNzYgZWE1YWVmMzJhMTdmMTczNmM5NjRlNDVhZDYwNWE0OWNhMDFkZWQ4OSByZWxlYXNlMzEtbWFpbnQKKzg2MTc3IDRiYjljOTc0ZjUxOTg3NmM3MDA0OGE2MTM2YjE0YTliZTZkZWZiZWIgcHkzaworODYxNzggNGVlNjgyZmJlYzMwZGJiMTQ2NDJiZTJiYzA2NTA3ODU1ODRhZmQ0YyByZWxlYXNlMjctbWFpbnQKKzg2MTc5IDYyYjNhMGE5OWIxOWU0YTZkNTY3ZWQzODk5Y2Q4YTg2ZDIwM2E1YTkgcHkzaworODYxODAgMmQ1ZGJkZTY0YTM1OGIyNjk5MzQ1NjQ5MTE4MmUyM2I4MWJmMTYwNCByZWxlYXNlMjctbWFpbnQKKzg2MTgxIDQ4ZTU1NDllMmMyNTg5ZjNkYmIxYzBlNTEyOGE2MmM1OWM5NDdmNzggcmVsZWFzZTI3LW1haW50Cis4NjE4MiA3YWI3MmJhMzhmZTAyZTEyYjE0ZDhiMTc4OTAwOWNkZTlhMGJiNDZmIHJlbGVhc2UzMS1tYWludAorODYxODMgYjgzNmYwNDc1OWNkMzYzM2ZhZjYyZmY1OGM5NGM1NmYyMDU1MzE5OSByZWxlYXNlMzEtbWFpbnQKKzg2MTg0IDk0N2I1YWNjNjRiZDkyN2U0ZDA2NzYyODBiMDhjYmE2YTkzNzQ3ZDYgcmVsZWFzZTI3LW1haW50Cis4NjE4NSA2ZTFhZTMyM2ZkZTYyNmI2MmZjYWIyZGFmMmQ2MWUxZTdhNWYxYzRkIHB5M2sKKzg2MTg2IDQzMGQ1MGUzYWM1MzFhNGYzOGIxMjBjYThhN2Y3M2E4N2E4NzhiZmYgcmVsZWFzZTI3LW1haW50Cis4NjE4NyA4Y2Y4YmI1ZGM1Zjg2ZWEyYzAxMWM5NDA5ZTY2ZTAwNGY1Njc0NWM3IHB5M2sKKzg2MTg4IGVjOWRkOTczNTMyZjNjMDQ4MjkwN2FkNGRhMjM1YzIzN2NjNzUyMjggcmVsZWFzZTMxLW1haW50Cis4NjE4OSBiYjY2YTRmNWViYzJhYmE4NTU5YjAxMzg1OGE5NjNhMjg5YzI5ZmJiIHJlbGVhc2UyNy1tYWludAorODYxOTAgMWNlNjllZTY5ZThlYzAxODU0MjQ4YzcxMGQyNWJmNDg1MjA4MTU3OCByZWxlYXNlMjctbWFpbnQKKzg2MTkxIDRjMWM0OGIzYWY2NjI2YjYwNjgwNWQxZGY2YWYzMjQyY2E2YmMwM2QgcHkzaworODYxOTIgNzliM2ZjNjgxY2IwOTQ4NmI0YTFiZjIxODIxNGE4M2IwYmI3YmZiYiBweTNrCis4NjE5MyAyZDA1ZTlmZGI1OTdmMDJkY2MxOTQ0ZmMyN2UwOWQ5OWZhZjQ1YmQ2IHJlbGVhc2UzMS1tYWludAorODYxOTQgN2QyODA4N2ZiYWYzYTlhNjk3ZjQ3Mjg3MDU3MjU4Yjc0MDAzMWEyNyByZWxlYXNlMjctbWFpbnQKKzg2MTk1IGIwMjQ5ZDA4MzllZGFiMTIzZTgzNDZjMTE2YmNiOTE1NWQ3ZjFmODAgcHkzaworODYxOTYgMTI0M2VjNjc5YzI5OGJhNjRlZjJmNTYxNGQyMWUwOGVhNmQ3MjJmYiByZWxlYXNlMzEtbWFpbnQKKzg2MTk3IDYyZmYxMTY0NDMzOTFkMGUzZDk5NWI0M2I3ZGM0NjYxZGIxNGRhMTYgcmVsZWFzZTI3LW1haW50Cis4NjE5OCAxODg5NmQ1ODAyOTBhY2EzMDZlOWM4ZWQyYWEyMjgzNDRlNjQwYmRmIHB5M2sKKzg2MTk5IGM1MDBiNDEzOGY3YjljMTE3OWE4MGQ5ZWJkOGUzMDE3N2Q0ODkyZTQgcmVsZWFzZTI3LW1haW50Cis4NjIwMCA2MjA4NTczM2Y3ZGZiOWVjMmFhMjJiY2Y0MjBkOTc2N2M0Zjg4M2M1IHJlbGVhc2UyNy1tYWludAorODYyMDEgYjI1NGM2NTA3YzM1ZDI3NDA4OTRlYjJjMzI1ZDFkNjI1NDBhNDAzNyBweTNrCis4NjIwMiAyNTlhOWJlYzIzMjZjNjkxYWZmY2U2MTdkZGQyNmVlOThlYTQwNzU2IHB5M2sKKzg2MjAzIGVkMzViMTFlYmVjNjhjZTdmNWQ2MDg5N2E4YTNhMzE0MTlmZDAyZTYgcmVsZWFzZTI3LW1haW50Cis4NjIwNCAyYTMzMmU3MTU3NjYzODZlZGM4ZmNjYWIxMjk3N2IwZDFhNzU0YzYzIHB5M2sKKzg2MjA1IGUyMTNlNDY1YTJkYzg1NTJjOThlNWM1NzdhMzk3YjI1ZjU4Mzc1MmUgcHkzaworODYyMDYgZWRmOGM0YjAwMDQxZTA5NThhMzgzYzkwNjg0Nzc3ZmQ5MjZhOTE4OCByZWxlYXNlMjctbWFpbnQKKzg2MjA3IGZlODk2MmZjMGUxMTk5M2RkYzQwNTE1OWEyNWVjMmNjN2I5ZjhkM2IgcHkzaworODYyMDggMjM5ZmZlZTVlZGFlNTI5NDQ2YWMzNGMzZmNhZjFlM2I5YzQ3ZTI5YyByZWxlYXNlMjctbWFpbnQKKzg2MjA5IDViMjExZGM5NjhkZmM3YmM5YTlmZjNlZTNkYWZkY2YyMWYyYmVlY2YgcHkzaworODYyMTAgZDMxZWFlYzg4M2ViM2ViYjcxMDhhY2FiYjZiZjVlNGQ1ODEwNDJlYyBweTNrCis4NjIxMSA0OWIwZDQyMzAyM2VkNzRmYTMwYzhiZDU5NzMzMTZiNmFlMzFlMWE0IHB5M2sKKzg2MjEyIGMzN2JlZjhkY2VhMmNiNTkwZDEwNWNiOTU2NGFhYjY2NDY5MGVlZTYgcmVsZWFzZTI3LW1haW50Cis4NjIxMyBlZGVmYzVkMmIzZDc0ZTlmYjU3MzRkNDQwZGIxYmY4MjA0ZTVkMzI5IHB5M2sKKzg2MjE0IGQzM2Q2MmFiOTFjY2FjZjZlMzc5M2E5MTU4ODJiMDcxYjkxMzM2ZjEgcHkzaworODYyMTUgNzNjYTZkZmIyMmFhMTUxMzgyMDM4OTEyZTA4MGU2NmM0YzE2YjE4NiByZWxlYXNlMzEtbWFpbnQKKzg2MjE2IDE4NWFiN2M0Yjk0NjkxYTg4ZWZmNzIzNTEyZGRjMTM0NjlkMjc1ZjUgcmVsZWFzZTI3LW1haW50Cis4NjIxNyAzODVkMjM5YmNiZmE3ODA2NjZiMTU0NzNiM2Q1OTVjNzdiZmU1MjY0IHB5M2sKKzg2MjE4IDgyMjIxNDEwNTYyYjNkYjA4Y2YxZDkzMGNmYWNkYjc0NWM3Mzg0MTEgcHkzaworODYyMTkgNDU4YjA1YWJmOTg3M2Q5YTc2ZTJiYzNlN2Q0OWQ0YjgyM2E4YzAyNiBweTNrCis4NjIyMCA1NzFkMzE3YjRjZDVmMmYzZTY1MzE5ODRiOWExNTI0ZmVlMWRhOGFjIHB5M2sKKzg2MjIxIDVkZWQyNWUwNmE5YWZiYWMyZmE5MGRkNWVkNDQwZmEzNzA5Y2UxZTcgcHkzaworODYyMjIgZjkwZWQzN2FlMTZmMGE0NDJmNDk5ZWEwNjFjOWM4NDcxM2MyMDM5NSBweTNrCis4NjIyMyAzYmY4Njc4NWNkOWM1ZTM3OTFiNTUyYmRkMTFjOTQ5NGVjMGY1NjFkIHB5M2sKKzg2MjI0IDEwZTA1ODA4OTVlZDQ1ODA0MjBhOGEzMWUzMjUyMmMyOGUxNzEzZGYgcHkzaworODYyMjUgZmRkMzY4MWIxNDM5OTY0MzI0OWViMzRlNzFlM2Y2NjExZDBjODE1MiByZWxlYXNlMjctbWFpbnQKKzg2MjI2IGUzZmQxMjA1YjEwNTVlNTg1NmU5MTU5OGQ2OTMzMDVhNjY3MjhmZDAgcHkzaworODYyMjcgMzIwN2Q5ZjRkMDBhZWQzMmU4MGQ1N2Y4MzIwNTViMDg5ZGVmN2NiMyByZWxlYXNlMjctbWFpbnQKKzg2MjI4IGEwOTBiZjcxNmE2ODczNTY3OWMxYTRmZDBhMzgzODQ2MTQ1MWM0ZmQgcHkzaworODYyMjkgOWQ3M2Y5ODI3YzlmNGE1ZjliM2NiNDNkYWY1YzNkODAxNzVmNTAzMSBweTNrCis4NjIzMCA1M2VjMzhkMzE5ODhhMWQyZDU5MTEyMGJkMTRhZWNlMmYwMzkzYjViIHJlbGVhc2UzMS1tYWludAorODYyMzEgODkxMWY0NzVhZDNkMmZmM2NkY2QxNjI1MDJiY2MxZmU4NTQxN2E3MyByZWxlYXNlMzEtbWFpbnQKKzg2MjMyIDk2ZGJiMGMxNjhiNjc5NTMxMzdlNTA4Y2NiOTFlZTc5ZTUyNDlmOTIgcmVsZWFzZTI3LW1haW50Cis4NjIzMyBhY2IwYTNjYzFlMThjNzA5ZDViNjMyYjIyMWMwNGI2ODM2ODRjMTI1IHJlbGVhc2UyNy1tYWludAorODYyMzQgOWY4NjIxMWYwYTQyNzNiYzkwMWI4NjU1ZWM1YTU2OTAwYTJmNzVjOCBweTNrCis4NjIzNSAyMjIzYWZlM2VhYmE5NDgwNDk3MTlmN2Y1NDYxMDliZTA0NjAxNjQwIHB5M2sKKzg2MjM2IDk2ZjMwZmQ1NGUwZmVhNmZiZGFlM2Y5N2M0MjI5MTUzNWE3YjVlODggcHkzaworODYyMzcgZjVkZDRhNTRkNzliNTE1ZjlmYTI5N2Q1OTkzYzg3NWQxZWI3NmU0MCByZWxlYXNlMzEtbWFpbnQKKzg2MjM4IGExN2IyMWMyN2EzMzg0NzQ5MjczZTc4NTViMzQ5NWY2YmVkZDg5ZGMgcmVsZWFzZTI3LW1haW50Cis4NjIzOSA1ZDg0ZjFiNzNkNTEwMjgyZDU1OTQzNmY0MzExM2YzZjcxNDk5NmVmIHB5M2sKKzg2MjQwIGZmMDcyYWE3MGMxZGE3NGE5MWMxNWVkMDgxZmM4MjYwYzEwYjhmMjIgcHkzaworODYyNDEgY2NkOTlkNTQ3OWRjZTc5MTdhOTU4NWQwYWY3MDQ0NzA0MmI5ZGQ5NCBweTNrCis4NjI0MiBkNDNiZjMwZmFmNmViODUwMDdlZWVmNzhiOWRmZDRjZjEwMzFmNGFhIHJlbGVhc2UzMS1tYWludAorODYyNDMgNjM2ZmVkOGU3OGQ2M2Y2MmFmMTgyMGI2MWViNmY4MzlkZmZlZjAwNyByZWxlYXNlMjctbWFpbnQKKzg2MjQ0IGI1NjQ4ZTEwYzIzYTdkYzFhODJkY2RjMjhiZTljNTdjMjI5ZmM1ZTYgcHkzaworODYyNDUgMmI3ZWIwZTg2ZDA3Y2RmYzVjYTUxZTM1ZWNmMDUyYTEwZWJkZWZmMCByZWxlYXNlMzEtbWFpbnQKKzg2MjQ2IGRmMzQ5OTFjN2QwZTk1YWI3Y2QwYTg0OTYzM2FiMTc0MDYyNzMyOWEgcmVsZWFzZTI3LW1haW50Cis4NjI0NyBmYzQ4Mzc1MDc5YTZhZTY5YTBlNzU3M2M0YzE2Yzc4MDA2YTcyY2JkIHB5M2sKKzg2MjQ4IDY4ZjhhOTViNTBjN2ZhZTI2YzNlYzIwODEwYTc5YTc0NDVmNjlkMTcgcHkzaworODYyNDkgNTExNWQ0YTJkODk4MjQ2MDNkMGUxODdhMzdhMGUxMzg0YjNkNzAxOCBweTNrCis4NjI1MCA3Y2I4MDQzNTgxYjU3ZmVmZjgzNzc0NGNhOTUzYzU2N2QwNThiMmZhIHJlbGVhc2UzMS1tYWludAorODYyNTEgMzA0NWFkYTM5MjY5MTU3NjI3YjEyZmYyMGZhNzRmMzA5NTBlZTg2YyByZWxlYXNlMjctbWFpbnQKKzg2MjUyIDZkZGM1NzYzNGRlNTZlZDMzMWE2YjU4YWMxYTJlZmI3ODA5NmM4MmMgcHkzaworODYyNTMgYmEwYWVjNjdiOTlhMGE4ZTNmYWU2Zjg2YzBmYzFhZWUxOTEwNDIzNyBweTNrCis4NjI1NCA4ODM4YzU2YjY5NTI1MWQyNjE2NjgyMmNmM2QxNTE5ZjE5YWY2ZTlhIHJlbGVhc2UyNy1tYWludAorODYyNTUgM2JmNDJkOTEwZGI4Yjg3ODc0YmE1MGUzYmQ0YjRiMTYwOGU2NTE3NCByZWxlYXNlMjctbWFpbnQKKzg2MjU2IGZmMTI1NzEyOGM3NTBlN2Q2OTRlMzFlNWM5ZjQ3NDZmNzI0ODY3YmYgcHkzaworODYyNjAgZjQ1N2M0NmY5MDk4MzZjOWMxZmUxOGIyOGExYTRiOGMzYTlkMTZjMiBweTNrCis4NjI2MiBlODUwMjU2N2VmYWY0OWUzZmFiZGFhOTcyZDMxZWRlMTJmNTYwYmJlIHB5M2sKKzg2MjYzIGJlNTQ2OTgwOGNlOWI4NzYzYTcyNjQyNmY5NmQ1ZmIzZTgwOGI2MzEgcHkzaworODYyNjQgMzgyNmFkY2E3YTNiZjRjYTQxODg3MDdmMzQxY2E1OWM4MDA3NzNjMSByZWxlYXNlMjctbWFpbnQKKzg2MjY1IDRmZWI1MWY2ZmQ3NmJkOWFhYzJkNDg5ZjE0NDg4M2FkYjAzZThkOGQgcmVsZWFzZTI3LW1haW50Cis4NjI2NyAwNzNiMDdiM2JkYWVjZDU5ZTEzNjQzZWMxM2I5MjRmYTA3M2JhNjhjIHJlbGVhc2UzMS1tYWludAorODYyNjggZGI2NTc0M2QwNjJmYzVhZjIxYzg2NDFmMDVlODNhZmRjMzQzN2RmZCBweTNrCis4NjI2OSA3NjJiOTQ0NTAzNjc1ZTQ3NTVhM2ZiNzIzOGRiOTZmNzMxMDdkNjdmIHJlbGVhc2UzMS1tYWludAorODYyNzAgZjBjN2UyYjExMjczOWYzZGQ4NWViNTJiODE4YzVkYWNjZDcwOGVlZiByZWxlYXNlMjctbWFpbnQKKzg2MjcxIDQzNDhjOWI2YTcyZDZkOTRiNTUxNzZkY2IwZWZkOTQ0YThiNTAwNjggcHkzaworODYyNzIgNzdiOGM5NWYwYzFiNTNjMDE5YTNiNDBkNjI0ZTQ4OTEyZTQ3OWQ2OCByZWxlYXNlMzEtbWFpbnQKKzg2MjczIDk3Yjk1YWUyMzQ4YjJhYTczMjBjZGMxNTg3ODA5MTAzMzQ3NjAwNjkgcmVsZWFzZTI3LW1haW50Cis4NjI3NCA3YTlkYmE4OWE3Y2U4NDZiNDliMzgyMGZlNDE4YjZjMjZiMmM0MjIwIHB5M2sKKzg2Mjc1IDEwYmRkYTI0MjY1NDU1MGY5YTNkODk2MzUzMDBmMjI2MTgzZGRkYmUgcHkzaworODYyNzYgYWYwNGFhZTE5M2ZmZjY1OWU2N2FiMzc2OTMyNTJiZDVkOGZkODA1MiBweTNrCis4NjI3NyA3MDQyNWZkNDc4NTY1MGJhZDRjN2Y3ZGQ1YTVmNWMxYzZmM2Q2OGQ3IHB5M2sKKzg2Mjc4IDJjYzNkNjJmMDY4MDg5OTNmNDU1YThhYzkyNzRiM2VjMGI4ZTMyNzYgcmVsZWFzZTMxLW1haW50Cis4NjI3OSAxNDk5ZGI5OWM0Y2RjZjJkZjMyMjY0Njc5YTA1M2IzMDM0M2E5YmViIHJlbGVhc2UyNy1tYWludAorODYyODAgMjg2NDI0ZTc1Y2Q5MjRlMWEyMTYyYjUwMmFkYTRmODE5YTE2M2FhMCByZWxlYXNlMjctbWFpbnQKKzg2MjgxIDM3ZjQzZGU2NWQxMGU5ZjgyZjc2MzE4OTA3YjA2ODJiZTc2ZTI3MjkgcHkzaworODYyODIgZDAzNjMyYzM2OGQzNzI4NWYxYzZiOWUwYTVmZTQyMTdjYWQ0YTAwOSBweTNrCis4NjI4MyA2MWJiZDRiNzU4NzRlMjA4NGMzNmU4MzRhYTAzNDZmOTNlN2MzNzVhIHB5M2sKKzg2Mjg0IGY2YjhmMzM2ZTAwYWEzNzY3ODkzZmFhZGZmNWQ4MjM2MGRjNTJkZjcgcHkzaworODYyODUgYjYwM2QyNDhkNGFkOTExMGQwZmRlYWZiNWYxODk3NDVhNTk2NWVkMSBweTNrCis4NjI4NiBiMWMwNmZhNDhjYzRiMDkzOTkxYWI0NWIxZjBmMDE0YjVmYWRlOWZiIHB5M2sKKzg2Mjg3IDMyODk5MmIwZWE3OWFmNGU4NzQ0ODE0YTYyMWMxZWRiMjIwNDEwYWIgcmVsZWFzZTMxLW1haW50Cis4NjI4OCBkY2YxN2ZhODQ4MjE3NmU3NmU1OTIxOTBhNzMwZTBiZDBmMTY5YmIyIHJlbGVhc2UyNy1tYWludAorODYyODkgMzk3OWUwY2MzM2MxMzMyMGRiMDQ4ZWMxYzA0ZDA5ZGYyYTgzODNiMiBweTNrCis4NjI5MCBhZDY0OTBhNTZkMTU4YjliNmZkMGVmMGNjNGY0Mzc3YmNmYWVlNWI0IHJlbGVhc2UzMS1tYWludAorODYyOTEgNzQ1ZDBmMTZkZjc2YThiMDEwYWI3MTY4ODVmNDBhZjczNDZkMjcwMiByZWxlYXNlMzEtbWFpbnQKKzg2MjkyIDZlODQzMjExNjY0ZDcyMTY5YTU3N2YzM2M4NmYzMmMwYzdmNWRjOWIgcmVsZWFzZTI3LW1haW50Cis4NjI5MyBlNDllYmJkMmM0OTYxZWQyYTdjZTc4YWMyNGE2MjI5Y2UxNDEzNWRmIHB5M2sKKzg2Mjk0IGMwOGY3ZDZhMDIzMTY5ZWI5MWI2OTE3NDg2NTMwYWMyMjI0YTZiMGIgcmVsZWFzZTMxLW1haW50Cis4NjI5NSA1Mzg0ZTRlNDYzNzRkYWQ1YmJjYTI2YzNhNDlkOWU3NDUyNjE4OTM3IHJlbGVhc2UyNy1tYWludAorODYyOTYgMDU0M2MwMmU5NDFjMTAyNGM2MzMzMGI0N2NkMmVhOTVmYTdmYjA0MCBweTNrCis4NjI5NyAyMjYyZjZjNDRlYmNhNjY5MzRhZjQ0MmJjMjhhNjU5MGY0NjljNDRmIHJlbGVhc2UzMS1tYWludAorODYyOTggOGYwOWVlZGNkNzBhMGE4OTNlODczZmY1NGVkODAxOGZiMTY3OTM4MyByZWxlYXNlMjctbWFpbnQKKzg2Mjk5IGZkY2FhYzBlMDEwYTAzNTk5MTc3MGRkOTcyOTQzODg4M2NmNzJmMzIgcHkzaworODYzMDAgMzM1NDIzZDczNmE3ZmY0M2IxZjdmYmUxMWQwZWI4NzAzNTkzZTJlMiBweTNrCis4NjMwMSBlOGYxZWY1ZmQ0MjM4Mzk2N2I1MzIzODRmZTIxZjZkMGI1MjQyZjYyIHB5M2sKKzg2MzAyIDQxOGRjYjFjNDVmN2ZiODAxZGY1OGQ2MDA1MzFkN2E5MWQ3Njg3ZWEgcHkzaworODYzMDMgODA0NzNhZDY5N2FjMzA2NzU5N2VjZjAwOGQzNGNmMjY2YTJkNzE0YSBweTNrCis4NjMwNCA4MTU0ZGI4YTE1OTMzZGI1ZDI2MDFlODZiNjJmZjM5ZDY3ZTZlOTE1IHB5M2sKKzg2MzA1IGY4MjA4YzMzOTc4ZjhmNGY3ZmQzNTdjNGEwZDVmODYwMmU1ZWZhMTAgcHkzaworODYzMDYgODhkMDRmMDE0M2M3Mjc2ZWZhYjdmMDhlOTYxYmRiMzk4NzljNWY4NyBweTNrLWNkZWNpbWFsCis4NjMwNyA4NTVhMTBlZmIxMGEyOWFmZTFkMjk0YmZjZjg5ZDE3NTgyZmViYTYyIHB5M2sKKzg2MzA4IDc2YmM3MThmZTdjOTJhOWU3MzFhM2I2ODY3OGU1MDdhNzk4NzAyMzcgcHkzaworODYzMDkgM2RiMTdhNDk0ZGM5NGQyNTU2ZTlmYjM0YmYxNDdiYjVmM2Y3NWEwYSBweTNrCis4NjMxMCAzYzFiZmU1NGNkMjA5NmExODZmZGE3NTRhYzhhOWFjODk3OWY4ZmE5IHB5M2sKKzg2MzExIDZkMTI5NGFkZmFmNDQwOWMwNzhmYTkzZjQ1MzZmZWRjM2JiMzBhYzcgcmVsZWFzZTMxLW1haW50Cis4NjMxMiA5NmM4MGY0MmJjZTZjYjk3YzEwYzQyYTBjMGMxODBkZWQ3YzczNGY1IHJlbGVhc2UzMS1tYWludAorODYzMTMgZDU1YjdkMGJjOTczN2ZjMDZmMTRkYzE3ZTYwNDE3ZGFkNTczNTlhMCBweTNrCis4NjMxNCAwNzQ1MzNhNzU5NjJlMGEyMGQwYzYxZDYwMWRiN2ZlOTRiNWUxY2VkIHJlbGVhc2UyNy1tYWludAorODYzMTUgMWZmYmQ2NzUzYTE1NDM3YWQ0MDVkZmNkY2Q0ZjBmODdkMmIxMWUxYyBweTNrCis4NjMxNiAyOTQ4ZDVmYjFlYmViNWY5OGExOTBjOTNiZjc3Mzg3ZTQ0MDBiNmVlIHB5M2sKKzg2MzE3IDJkNjgyNDg4NDQzNWI3YjczYjYyODZjYmZiNDA5NmUxYjExZGIxNDEgcmVsZWFzZTI3LW1haW50Cis4NjMxOCBhOGFhY2RiNDUyMGUxNmU4YzFmOWQ1YTIxYWRjZWJmMzU1ZGQ1YjBmIHB5M2stY2RlY2ltYWwKKzg2MzE5IGIwZGUwY2U4YTcyNjRiNDhkYjgzMGI5Y2RkNTZhMjZmMWRmMmU1MjcgcHkzay1jZGVjaW1hbAorODYzMjAgODM3OGViODA3NzQ2YmIxZTI3YzZjMzI5YmZiODM3ZTQwYjFiNDU2OSBweTNrLWNkZWNpbWFsCis4NjMyMSAxNjk4YjBmNjQwYjY0ZTVlMjQwMzBiMmQ2MWRkYWZjYTg2MzUzOGVjIHB5M2stY2RlY2ltYWwKKzg2MzIyIGNhMmI5MzdlMWE4ZDEyNjVlZjNjNjkxZjkxMTU5OWRkMGNlZGY3YTIgcHkzay1jZGVjaW1hbAorODYzMjMgMmIxZjg0YTRhZDMzYzE1ZjVkYTJmOGVkZjAzNDgyNGIyYjA3NTA0YSBweTNrLWNkZWNpbWFsCis4NjMyNCAwNzAzNjgxNzViMjQ5YzU3NGU1NTY5NTZmNGIxM2VhZDA3NTI3NTg3IHB5M2sKKzg2MzI1IDNiZDczMTEzZTgxMDdhZTVhMGU3MTBhNGMxZTE2NDg1YjcyYWE4ZjIgcHkzay1jZGVjaW1hbAorODYzMjYgNDI3MDgwZjJhYWI1ZWQzNWEzZjIzMTZmOTNiOTc5MmVjYTQ5ZWRjNiBweTNrCis4NjMyNyAzZjEwMzRiNDM0NzgzYzQwMjBjNzA1Y2VkYzc5MDMwMWYzNWIwMWVjIHB5M2sKKzg2MzI4IGYzYzUzMzg1N2ZhYmJiNzk2ZDMzYzdjMzg3MTY1NjI3YTcxYTdlMzMgcmVsZWFzZTMxLW1haW50Cis4NjMyOSAwYWQ2YTBkMDE0OWFhODJhMjUyMGQxNDMxMTgxMjNiMTM0NzcxMjQ3IHJlbGVhc2UyNy1tYWludAorODYzMzAgZDZkNzFkNGQ2YjY1MDZiNzU4MmM3NGM0ZTg4ZTMxMmUxYzg5MTczOCBweTNrLWNkZWNpbWFsCis4NjMzMSAxOGNiYWJhNjFmYTU2NDQzYjIwM2IxNzI0OGE4OGY0ZmQ0ZGEwZThkIHB5M2stY2RlY2ltYWwKKzg2MzMyIDAwYmMzYWY4OWI3Y2RhMTU2NGQzYTFlZDNmNmI1NzYxZWNkMmQwYjAgcHkzaworODYzMzMgOGFiMWRlMDgxM2IzYmY3NDYzNGY2OGZhNzk0ODBmN2UwMjgxZDA1MyBweTNrCis4NjMzNCA3ODgwM2NmMTRhOTRhZmIzYzg0ZDMyMjk2OTZiY2U0ZWZkMGFiMDY4IHB5M2stY2RlY2ltYWwKKzg2MzM1IGFkNjQ4ZjJiNWUwMDA1ZGYyYTYzNDJmMjczYzZlYzA0NjRmODJhYjcgcHkzay1jZGVjaW1hbAorODYzMzYgNDRjZDA0MGRkYTU2NjYyNWE5NTUxOGQzZjE5M2ZkMThjZjY0ZTdmYSBweTNrLWNkZWNpbWFsCis4NjMzNyA0MjhiNjEyY2IwNzZkODM4ODdkNTQzN2Q1NmUxZmM0OTk4MjU2NzA2IHB5M2stY2RlY2ltYWwKKzg2MzM4IGJhYjdlNzAzZTNlYTlkMTE0NzJiMzA0YzI0YTg1YmIwNzUyNjU2NGMgcHkzaworODYzMzkgNTZiNmNjY2ExZDRjYjVjN2U1NWE2NjQ3M2U2MmFiMDI4Mzg3YzcwZSBweTNrCis4NjM0MCA5MDA4MTFmNjcwNWQ3NWU0NDMyMDNlNmM1MTcwNTE0Yjk3YmRiMDcxIHB5M2sKKzg2MzQxIDFiNWY0N2UyZTBmMDMwZjE0YTgxNWY2OTcxZmI5ZDc4MzM2MjAzNmIgcHkzaworODYzNDIgNmEyYjkxMTdkNDc3Yjc2MGNhMmQwZmI0Y2QzYmJkOTBmMTQ5NGFhZSBweTNrCis4NjM0MyA3NmExYzVlODgzNTJmNzNkMmNhZjc0NmVlZTUwMTJlNWQ2Y2Y0ZmYzIHB5M2sKKzg2MzQ0IGZjM2IxMmViZmI5YTJiNDNjM2RiMWU1YWRhNDgxYTNhNmJkNDQwYzAgcHkzaworODYzNDUgNzVlMDJmZGJkMzNlNmNjYjIzOTNjZGZkYjlkNWFhNjBjMWM3YTZhZiBweTNrCis4NjM0NiAzMDYzMzljMzE3NTg2NTYxMDM4OTY2ZDk1YjRmZTQxNTMxMmM2NDY4IHB5M2sKKzg2MzQ3IDMyM2Q0M2U4OTUzYWY5MWM5NTRlOTZhYTc0OTgxZmI3ZGYyOWM4NTIgcHkzaworODYzNDggOWE2NmZlYjA3YTBhYzEyYWE2YWRjMGY4MDI4MjVkYzUxNWQ3M2M5OSBweTNrCis4NjM0OSBiMzQ3YjVjZDQxMTI2OTgzNjI0YjcxOTY3NjYxNzI0MWRmZGQ1NjVmIHJlbGVhc2UyNy1tYWludAorODYzNTAgNjQwYTA4ZWM4ZmEyOTRjNmRkYjE4NDgxNGJhYzg2NTEyYTA5YzhhNiBweTNrCis4NjM1MSBiNmRhOTc5MzBmNjMxZmFjYTk5NTJjMzRmNWEyNjEzNjJkNGVlMmRkIHB5M2sKKzg2MzUyIGI0OTM4YzM0YjgwMzYwY2M3YjE0NDI0ZTNiMjMxMjViMGE2ZjY5M2MgcmVsZWFzZTI3LW1haW50Cis4NjM1MyA0NDhhYjc1MTZjMGEwNmQ2YTg5MmIxYWM1Y2JhMTk1NjgwZWI2YmJjIHB5M2sKKzg2MzU0IDY0NmRmZGM0OGNhODZmMTI5MjEwNWFlZmRjY2RmNzM0NjZhZjMxNTQgcHkzaworODYzNTUgMTk0ZjMwZGM0NzAzNDU5NDE1ZDlmYzQ1ZDdkZTBkYTgxYTVjMTAzMyBweTNrCis4NjM1NiA5NGQwY2NiNjNiNDY0Y2NmZjYwMjRhNzQ3NThjYTM1MjcyYjcyZmZkIHB5M2sKKzg2MzU3IDc0ZmE2M2FhYjNmZDZjNzk3ZDBlZGIyNjI2NmVkMzU5OWE4ZjEzZTAgcHkzaworODYzNTggNmYyYTkyMWQ5NzIwMzE1ODk1N2Y0ZGUxNmVkOWNhYTkzZjE4MGExNyByZWxlYXNlMzEtbWFpbnQKKzg2MzU5IDQwZWIwYzlhM2Y5MjNmOTk0ZTgzYzhiNTRlNWJjMWQwM2JmZWIwZjYgcmVsZWFzZTI3LW1haW50Cis4NjM2MCA4NjE4ZGY2ZWNhZGQ5YjY2NjkwNzdjZjYwOWQzNmU3ZGZhMjBlYzBlIHB5M2stY2RlY2ltYWwKKzg2MzYxIGZlOWNmNTM1MTE5MDI3YjdmMWE3ZTFhNDViYjdlZGI4NzQwY2UyYTQgcHkzay1jZGVjaW1hbAorODYzNjIgNzM2NzJlNDQ1Y2M5MTMyM2ExNzA2MzczMDNiYzA5ZjFkYmVhY2I0NSBweTNrLWNkZWNpbWFsCis4NjM2MyA3YTg0MGI2ZDJmMjI0OTc1YzllNzc3ZjM3ZGIwOWRmY2M4MzFkM2E3IHB5M2stY2RlY2ltYWwKKzg2MzY0IDYwMDA1OTE0ZGZjNzYwYTgyMzA5M2Y2MDFjOTA0MDQ1MmY1N2Q4ZTAgcHkzaworODYzNjUgOWMwOTg1N2JkYTBiNDlkMDNmOGQwZDg3NTFiZmM5MWVhMWRhMDgzMCBweTNrCis4NjM2NiBhZjI2YmMwOTQ5NWUzY2UxNGJmNTI5YmQxNTZjNGE5YTBhOWIzNzQxIHB5M2sKKzg2MzY3IDMxMmFkOGY5OGZlMzcxN2U1YThhODdiZWFkYWQyNjA4ZGY4Y2U0YzggcHkzay1jZGVjaW1hbAorODYzNjggZTMzZjE2Y2E5ZWNmZGY2NjdmNGJmNWY0Zjg1ZjNmNTFhY2ZmMjFlYiBweTNrLWNkZWNpbWFsCis4NjM2OSBlZWViYjYyMmZkMDhmODUwMjI1MGYwMzEyZWY5NDA0ODEzOGM1ZTU0IHB5M2sKKzg2MzcwIDBhYThhZjc5MzU5ZDViNTBjNTk0MGNhMWQ4ZmUyNmZkMGE2ZDRhNWMgcHkzaworODYzNzEgOGY1ZDJiNTI3NjM0YThjMWYyZTMyMmNhNDZjMzAwMDQxMDg1OTVmNiBweTNrCis4NjM3MiBiYjllNDdjOTkxYjQxODJmY2IyYzAzOTEwZjU2NWMzMjM0YjZmYjE2IHB5M2sKKzg2MzczIDY1MzY0YzQ0ZTI5NThlOGVlYzdkODczYzhmYjBmMmNkY2NjNmYyZDIgcmVsZWFzZTMxLW1haW50Cis4NjM3NCBkMGZjMTA2NjE3ZTJhNzA1NzQ4MTg0OWI2NWIzNjE4MDkyYmUwYThiIHB5M2sKKzg2Mzc1IGM0ZGNiZTUxYzJlMzM4Y2U1YmI3ZTY5OGEwYjM0YzIxYjU1MjQ0ZDUgcHkzaworODYzNzYgOWZhNTI0NzhiMzJiOWZhN2Y5Y2FhMjE4Yjk0ODNiZTA0NDM5YTRlZiBweTNrCis4NjM3NyA1NTdiYmY2YjNkNzBhYzgyMTlmYTZjMDA1NjliZmQ2NjNjMzcyZTMxIHB5M2sKKzg2Mzc4IDJkZDUxOWU1OTljYzIzZDdmNWFiYzlhYjE5NWFkOGUyOTQxYmI4YWUgcHkzaworODYzNzkgNDkxOTY0MjZlZDJmMTQzMjI1ODU1MDkwZmI2YTBjZTZlNjk4ZjU0YiBweTNrLWNkZWNpbWFsCis4NjM4MCAxNmE0NmI2ZTcwNTQ0YTE0OTk2MzBkMWJkNjY0ZTFjOGYxMmNhYzdhIHB5M2sKKzg2MzgxIGYwMDUwMmY1N2IyOGFlODBkODRmMmU5Y2I2NGVhMzI0M2I3YTY4MTYgcmVsZWFzZTMxLW1haW50Cis4NjM4MiA2YTI4MWYwNDBiYjEzNGYyMmM1YTE4M2VkZjlmZWJjODIyMDdlYmMxIHJlbGVhc2UyNy1tYWludAorODYzODMgNTc0MjhlMzEyM2FjYzM0MWM2NjUzZmVlNzI3NzQxZTgyZWM2NjAyMCBweTNrCis4NjM4NCAxYjE2YmQyYmY2YzdkMGNhYmNjMzU4MWUzYzc0ODI4NzkwZGFhYjAwIHJlbGVhc2UzMS1tYWludAorODYzODUgYWU5MjZlY2NkZDBlZDBjYTkwMjQxZDliZjQxNTJjNmI3ZWMxNGMwNCByZWxlYXNlMjctbWFpbnQKKzg2Mzg2IDE4MTdhMTZkMWVhYjZhOTYwZGU3N2JiZTY3YjYyNmY0ODNkYWU1MjUgcmVsZWFzZTMxLW1haW50Cis4NjM4OCBlYjRhMzQ3Yjk4YzE2Y2RjM2IxZjE5YTM0MzljZjhmM2U5NjQ4ZmVkIHB5M2sKKzg2Mzg5IDE4MTdiNzA4OGQ4ZGZlZDFkMDBkNmYzZDIzYTMzZDcwMTZhZGI3ZTMgcmVsZWFzZTI3LW1haW50Cis4NjM5MCBmOTNmYWJkYjg3YWI0MTgzMTFlZTUwZjAzYmExYzc4NTNlZGUzZGJlIHB5M2sKKzg2MzkxIGUwMjc1OGU1NTJlOTI1Nzg4ZWQ3ZjRjMGZlNWU3NjAyMWExZjc5ZmEgcHkzaworODYzOTIgOTYxYzllODgyMWRkNWRiNTVjNWZkNzIyNjAxNTQ3MTUzMzI4ODFhYiByZWxlYXNlMzEtbWFpbnQKKzg2MzkzIGE1YjM5ZDg5ZGNjYjcwNjBlODk0NTY3MzkyMGI4YjA2NDQ1OGEzMjggcmVsZWFzZTI3LW1haW50Cis4NjM5NSAwNmY3NmVmMjdmODZjMDRiMjVhYjE3ODRlZmM5ZGM5Y2YwODk3NDc4IHB5M2sKKzg2Mzk2IGRlYTRmNzY0MTk0MGZlM2Q5YTMzODIwZjI0NjIxMWM5MzkwZGE2MzYgcmVsZWFzZTMxLW1haW50Cis4NjM5NyA3NGE1ODk0Yjk1MTM0ZjA4OWVmNTM1MjU5YWMyY2ZiMzZjM2JiNWRmIHJlbGVhc2UyNy1tYWludAorODYzOTggOGU2YTFjZDFmNDJiZjNmNzIwMGUxYTRhMjE1ODhhNzM0MjA3M2MxNyByZWxlYXNlMzEtbWFpbnQKKzg2Mzk5IDdjZWMwZGQzOTFkNjlmNzM2ZTNiNmZlNTNlZWU2NTg3NmYwYjBjYjkgcHkzaworODY0MDEgMzFiMWFhMzAzMDZjNTYzZDA2NDkyZGEwOTVlY2QwNjhjNTYyY2VlOCByZWxlYXNlMzEtbWFpbnQKKzg2NDAyIGU1NDZmNzYwNWNmMTIzMGFiMGQzMzM0NjVlYjU0NDY4NjhhZjM2YzUgcHkzaworODY0MDMgYzVlMDQ5ZmQ4MTcwYzhhNGFjYjMxMTE0ZGFmMzVhNmExYTA4OTgyMSBweTNrCis4NjQwNCBhYWZjZDVlMGZhZjFiZjllYzhjODAwYTEzODRiYjRlZWE4ODEyZGY0IHB5M2sKKzg2NDA1IDY3ZWIzZjUzZGVlYjkyOWM4MzdlNTVkOGQ0YTNhYzIyNjZiY2VkMGQgcmVsZWFzZTMxLW1haW50Cis4NjQwNiA1YjllYzVhY2RhYzQyNzRhZDQ0ZDZhZjgwYWFkNWE4ZTVkYTJmYTM2IHBlcC0zMTUxCis4NjQwNyA3NzkzNzdmMzA3N2Q5ZTA2MWU2NGY3YjljNGQ0ZWI2Zjg2MjBhMGQ0IHBlcC0zMTUxCis4NjQwOCA3MjNlZDFiNzc4NzFiYTIxZTU0NjU0ZGY2ZGVhNjQyMTZmNzFhYzU1IHBlcC0zMTUxCis4NjQwOSBiNTIyYWJmZDJmZGU3MDA0NGMyMDM3ODc3ODM4MGM3ZWU4ODgxNWQzIHB5M2sKKzg2NDEwIDk4YmQzY2ExZWQ4NjM2Zjk2YjUxM2JhNDc0NDFiZGI3ZGI0NTBlYTUgcHkzaworODY0MTEgYzY5YWEwNzI4MmE4OGFlODJjYTY3OGRmYjUyNzhiNDIwNmI0N2Q5ZSByZWxlYXNlMzEtbWFpbnQKKzg2NDEyIDEyZGE1ZmI4MTEzNDAxOGZmODhlNzMwZDI2MzQwYmY4ZTkyMTRmM2IgcmVsZWFzZTI3LW1haW50Cis4NjQxMyA1NTcyYjg2OTY3ZmY3NmU2YjI4ZDUxZjEyMjYxOTQ5Y2ZkYTYwOGVhIHB5M2sKKzg2NDE0IDg1N2Q5ZmU2MDE2OTgyNjNjM2RjYjQ2MTNkNDliNjhjMmM2MWNiMTMgcHkzaworODY0MTUgMTY2YzdiZTcyZTc4YTY2MjU2ZGYxMDUzYjdhNWE2MjA1YjMxM2M2YyByZWxlYXNlMzEtbWFpbnQKKzg2NDE2IGRmMmViZGRjMjhjNjMyYjIyZjJiZjg0ZWNmMjcwOTliYTZjNWNmMmUgcmVsZWFzZTI3LW1haW50Cis4NjQxNyBjM2Q4NWQyYWUxYzg3YTNmOTY5ZWM5YTg3MzllY2NhN2E4NWM3YmM2IHB5M2sKKzg2NDE4IDFhNjUyOTBlNmQwMzYwNWMwNjExNzk5ZmQwMzFkYmZjMWU2ZDRhMGQgcmVsZWFzZTI3LW1haW50Cis4NjQxOSA1MDMwN2E3OTU0MjQ1MjAzODY4ZTYzMDA0MjVhNjNiOTkwNzRiY2Y0IHB5M2sKKzg2NDIwIDBhMWE0YzQ0NDM4MTY4MWRlZGJiNDE5MmQxZTYxMzVhNGRhNGE4OGIgcmVsZWFzZTMxLW1haW50Cis4NjQyMSBiZTUwYzkxZTZkYTUzZjQxY2M1OTRmZDY0MDgxMDFjYzg1YWE4NzZhIHJlbGVhc2UyNy1tYWludAorODY0MjIgNjJhYjM5ZWZlMWM0YjQ5NTZhOTc4YTBjZDhiMDgwOTJlYjYyOWRmMCBweTNrCis4NjQyMyBlYzQyMTEyYzIxMDA5YmEzZTcwMmM5NzhkODc2MzY0YjM3ZmZlMTE2IHJlbGVhc2UzMS1tYWludAorODY0MjQgOGViMWM5ZTgxODdiZDg1MDQxNDVkZjFiMGE0OTQ0OGFhOTViOGY2ZiBweTNrCis4NjQyNSBjOWQzZTEyYmNkNDJlNmU5YThmNWU1Njc4Mzk1NzBlNTMxNjJjNWQ1IHB5M2sKKzg2NDI3IDA1MDllY2RmZjhhZTdjOTU4NTIyM2UxODQ5YzUzNGU4NzFhZjM0YWQgcHkzaworODY0MjggNTZmYjFlNzc2NzQ4NjE4NDJiNzM0MjhmYzFmYzEwNzc3ZWM5MTI2NyBweTNrCis4NjQyOSAwMzI5NjMxNmE4OTIzMWM2OGVmNmJhYWJkOGY3YjQ4YjcwYmFjYzViIHB5M2sKKzg2NDMwIDBhMjdjOWRiOWFjNzkzMzFhMmViNmQ4OGRlNzdiMzQ2YmE0YmZjOWQgcHkzaworODY0MzEgOGQ2NTE2OTQ5YTcxZDA3NTg1NWNlOTJhNmI5NmU1OTU0MmY0MjQ2OSBweTNrCis4NjQzMiAxMjYxMDJiYTc0OGY4ZjNmMmQ2ZGJhMzdlNTg2YTlmNmY0ZjMzOTMxIHJlbGVhc2UyNy1tYWludAorODY0MzMgNmFhNzc4M2VhMGU5ZTZhM2RjNWU1YTllNTk3ZWJlODUzOTQ4MzMzZSByZWxlYXNlMzEtbWFpbnQKKzg2NDM0IGQyZWY4OGU3MWI0YWM5Zjc0NGVjOTE3ZjkyNjQ1YzBkMWMwOGM4NjYgcmVsZWFzZTI3LW1haW50Cis4NjQzNSBlMmVmNDdiYzI4MWQ0OTgzMmY0NmFjNDk0NGJhYzc5M2NhMzg2Nzk4IHB5M2sKKzg2NDM2IGNlNDEyN2VjNWVlYjdkYWZkZWIwYzAyNjUxNTRlZjAxZmNmZTdiYmIgcmVsZWFzZTI3LW1haW50Cis4NjQzNyBmNmU4MTNiNDhhZjNkYWNhZTdiNjJkMjJiOTA4ZWRjNGQwODVhMjg3IHJlbGVhc2UyNy1tYWludAorODY0MzggM2Q1NDhiNzFkMDgyODFjZTU4MjczNGNmMjdmZjAxOTMxMWZhY2MwZCBweTNrCis4NjQzOSBjMjFhZWYzZmY1ZTJmMzdjNmVlMWUwNDdiYWY3MzE5YTM1ODRhNmI1IHJlbGVhc2UzMS1tYWludAorODY0NDAgY2EwZWRhNDAwMjE0ODE0MjZiMGFhMDEzZGE4MTdhMTc5YmU3N2UwMyByZWxlYXNlMjctbWFpbnQKKzg2NDQxIDVhY2UxZGEzMjc1ZTllODBmZTNmMTYwM2I5ZmM5NjdlMTI4YTQxOTUgcHkzaworODY0NDIgMDMyNDYyNDc5ZTBiZDMyYWZlNjc4NzQxYzQzOGFhNWQ3Y2RhYjI2MiBweTNrCis4NjQ0MyA1ZmQ5MTdkNDFjOWMyZDM3ZGRkM2Y4OWQ4ZGQ5ZjUxZGRiOTE2YzA5IHB5M2sKKzg2NDQ0IGNhYmM3NjExNTQ3ODQ5OWY0NDBkZTdkZDgyMmYwZWNhNGFlN2ZhNjUgcHkzaworODY0NDUgYTgzZDk4ODhhMGQ5YWJhMDdkMDQ2YWZiZmJhOWFhMTYxMDUwMDM4NiBweTNrCis4NjQ0NiBkMTJiOTkzNjI5YTE2NzgxOWEzYTliODRjM2MzMDEyMThmM2Q5NWY2IHB5M2sKKzg2NDQ3IDZiZGQzMmNiNTVhOWEyZjBmYzg0YTgyM2U3NTM3ZjAwZDgyOGNlMGQgcmVsZWFzZTMxLW1haW50Cis4NjQ0OCA0YzRmZTcxMzljNjhlMjFiYmZhNDgyMTM0ZjU0MzU4YTM2ZGQ2NGIwIHB5M2sKKzg2NDQ5IGIxMWE4NGRlNDQ5MjVkY2I5NjI3ZTFjYzEyNTliMDc2MTc2YTY2YzggcHkzaworODY0NTAgYzZiMmY0MTc4MzBlYWI0NTY1ZDhiYmU3ODUzMTM2NTBhOGI2YzY2NCBweTNrCis4NjQ1MSBkOTJhNWI4NTBmNWU1NjgwOGJlZGMwMTcyMzkwNmVkNjRjNWU2ZTJlIHB5M2sKKzg2NDUyIGQ5ZTZiOGE3NzA3MDUyYmQ0MDllZDQ2Zjg3NDY3NTZlZjUzNTlkMTIgcHkzaworODY0NTMgZDE4ZTlkNzFmMzY5ZDgyMTFmNmFjODcyNTJjNmQzMjExZjliZDA5ZiByZWxlYXNlMzEtbWFpbnQKKzg2NDU0IGQ1ZWU5NmU3YWNlYmIzZmI1MjBhYjM4MzgxOWE0ZmQxMGM2YTQ1N2IgcmVsZWFzZTMxLW1haW50Cis4NjQ1NSA2M2Q5ZjAwZmVhMDczMGMxYzQzN2E1MGY2NGE0MmI3NzkyYmRjYmZiIHJlbGVhc2UyNy1tYWludAorODY0NTYgNGQ0NWE0YWYzMmE5NmY3MThjMTNmNzkyNzQyZTI2MzAxMzNiYzNhYSByZWxlYXNlMjctbWFpbnQKKzg2NDU5IDUwMjJlNWI3M2FkMTk3YzE2Njc2NWNlN2MwYTIwNDY1YTU0MWMzNzIgcmVsZWFzZTI3LW1haW50Cis4NjQ2MCBjZTM4OGZiMWJlMDFmOTIxOWI1Zjg0MDY2Yzk5NTMxZTFjMzRkMjIzIHJlbGVhc2UzMS1tYWludAorODY0NjEgMGYzOTgxODhjN2Y2MDYxMDAyNDliZDBmOTNjNGJlNTQ1NmE4OTMyNyByZWxlYXNlMzEtbWFpbnQKKzg2NDYyIGI3ZDAyYWU0NWQxNTM1MTc0OGM4NGY1ODhjYWZkOWYyZTgwYjBkZWYgcmVsZWFzZTI3LW1haW50Cis4NjQ2MyBmY2FiZTQ3ZmUxZGU1MDRmMDNlYmNmNmVhY2Q0MzI5N2FiOTc2YzcwIHB5M2sKKzg2NDY1IDI0ZmM4Yzg1MmQxM2E0NzY1NjUxYmU3Njg4NjIyOGI3OWNlNTgyYzUgcmVsZWFzZTMxLW1haW50Cis4NjQ2NiBiNDVlYWJjN2MwMDQ2YzUxN2M0MTRiMWQ5YjBhZDc4ODQ3MDZkN2EwIHJlbGVhc2UyNy1tYWludAorODY0NjcgYmEwMTQ1NDNlZDJjMjM1YzY2NGZlYTRhMmE3NTdjYzk1MTBlOTQ2MSBweTNrCis4NjQ2OCA2ODMzMjcxMzczNjUxNDY5ODI3OWRiMjE0YmU2MzgwZTRhMDhjMWFhIHB5M2stY2RlY2ltYWwKKzg2NDY5IDYyODk1OWZiNDBjMzM5YTY5MjFmZWI2Mzc0NjUzMjY5NjUyODZjYTcgcHkzay1jZGVjaW1hbAorODY0NzAgZTQ1ZDBiYjc4MGRjYjNjZjIwYWFmZDIyZDExNDdjZWYzZjUwZmI3NSBweTNrLWNkZWNpbWFsCis4NjQ3MSBmNzIzYWExNTdhODJkOTc2NzI4OWU4NjI1NDY4ZjJjNDk4ZTZiM2M5IHB5M2stY2RlY2ltYWwKKzg2NDcyIGRhMDNjNjUwNTI0MGVhZWJlMjE5MGY4MDU0YjlhYTk1ZDYzYmU2NjggcHkzay1jZGVjaW1hbAorODY0NzMgNjljOTEzMWFhMzIyNGU3NjdkOGQ3NjIxNmQ5ZjI0N2IwYjVhZTkyNyBweTNrLWNkZWNpbWFsCis4NjQ3NCAzMzU4MjcxMGUwMTQxZmVjMDRhOWM2YjhjMzZiYmJmMzgzOGYyNDY2IHJlbGVhc2UzMS1tYWludAorODY0NzcgOThjOGU3OTNjMGIzZGNjZWZhNGU1YmUwYmYxODZiNGFiOGI0ZDA5ZSBweTNrLWNkZWNpbWFsCis4NjQ3OCAwZGY2YWM2MjI3MmJhOTVkMjJiM2U1YzgyNzc2ZTE3NjA0OGQyZjNjIHB5M2sKKzg2NDc5IDRiOGNlZDVmZWZiNzQ2YjM4MzNiNjg5ZGRiNzlmNmM1N2EzOTdhYjIgcHkzaworODY0ODAgMzQ2MjdkY2EyMTk2ZWQ4YzMyMzYzYTllYWEwZTkwOGNhNzBmYmQwZCBweTNrCis4NjQ4MSA1MmZlNjAyMTZlODkzMjMyMjE3YWRiOTczODFkMmMyYzI5ODEyMGQwIHJlbGVhc2UzMS1tYWludAorODY0ODQgYWU2NjEwY2E5MGExOWNmNjgzMTljMTBmNTUyNDljYzk4OTBjM2VmNyBweTNrCis4NjQ4NSA1NWFiYzA5NjVlOWQ3NjVkMzAzMzZhY2EyOWIyMGFkYjVhZGQwZjMyIHB5M2sKKzg2NDg2IGJiMTIzNzRjOGRjNmU3YWMxNTEwMGYwMDczNzAzNTc2MTUxYmRkNDkgcHkzaworODY0ODcgYzRmZTRiMTMwMGQ1Nzg5NTMxNTBkZGYxYjczYTRmYzI3NjljM2FhMCBweTNrCis4NjQ4OCBlZjFkYjdmNWM4YTlmMjEwNTViM2YzODk3Y2JkYmViNDlhZjQ3ZjBjIHB5M2sKKzg2NDg5IGZmNmIyYmY3NWQ4MTI2NzFhZGNiNzU5ZTA1OWJkMTM5MThjNjZhMmQgcmVsZWFzZTMxLW1haW50Cis4NjQ5MCA0Njc5ZmJkZmM4MTdmNjZiMTVhNjMwY2I0NmRkMWNmMWU5MDNkZTIyIHJlbGVhc2UyNy1tYWludAorODY0OTEgNTg2YTkyY2Y0Y2M3ZjQ3MzU4YWI5OThjOTQ5ZDA2MmVmNzUyYzk4ZSBweTNrCis4NjQ5MiBjOWZiMzBmZDFmMGE1Y2FmZDIyZTI2YWE0YTE5MWZkMzA3MmRlODcwIHB5M2sKKzg2NDkzIDBkMWI2NjIzMDI0N2M1NWNlMjhiYWYwNDM0ODAxMDBmOWE0NzA0ZjMgcHkzaworODY0OTUgNTJiZjc5ZmQ2ZDZjNmY0YjZhNjI5YjMyYTI0ODhjZWNmMmMyZTQ1ZiBweTNrLWNkZWNpbWFsCis4NjQ5NiBkNTRjOGYxNmM1MWMyYmY1ZmZmNDJmMjI1M2MyODM0ZWUyYTVhNGYwIHB5M2stY2RlY2ltYWwKKzg2NDk3IGJkNjhjZWY0ZjFlZTA5ODhkZTM5OWRkZGM4MzNiNjlkMzI4MmM3NjkgcHkzay1jZGVjaW1hbAorODY0OTggNzgyNmQ5MDdiNzY1YmQzZTI2NjgxNDM0ZDcyYTZlZGI0N2VlNTExZCBweTNrCis4NjQ5OSBkOGNjOTVkN2RlNjJhMWZiZTVlYmZlNjdhNTM1ZDMwYjA1NzdmMDgzIHB5M2sKKzg2NTAwIDc1YTgyZmUyNzRhN2M4NmZlN2E1NjYyYWUyMzQ4MDAyMTQ3YmE5MTYgcHkzaworODY1MDEgMzc5MDI5NzE0ZTI0NTk4OTcxMDZhMjM1NjZjYjgwODVjZDg3ZTAzYSBweTNrCis4NjUwMiA5NGJiY2VjZDk1ODI1N2RiMGExZDIzMDVmMzcwNWYwNjg0MmMxZWVkIHJlbGVhc2UzMS1tYWludAorODY1MDMgNTJlNTE5OWI2NTEzM2UwNTYzY2IwMWMyNzE0NWRhNDAyNDE0YWExMyByZWxlYXNlMjctbWFpbnQKKzg2NTA0IGI0MTQwNGEzZjdkNDE5YjFhZjI0YzRjNDg3NmM4YzY2NDRiMWYzNjUgcHkzaworODY1MDUgNjZlOGQzNWQ3MWZkZWFmYjc4MWE5Mjk1N2UxYTEwYmQzY2Y4MzljNyByZWxlYXNlMzEtbWFpbnQKKzg2NTA2IGNkYzM5ZjZiZWJmMTBiYmRmNzU1MmRlMTI2YTI0NmU5MjA0Njk2NjMgcHkzaworODY1MDcgYWYxM2ZiNmZiM2RmN2U0YTZkOWY1YmRiNjE5YmRmYWNiZDkyZGI0NCBweTNrCis4NjUwOCAxNWJkNTBlZTJjNGMzZTk4NjhhY2M5YzZjNjUzMDFiZWFmMTQ0YmZmIHB5M2sKKzg2NTA5IDgwNWMyOGRkNjdiM2UyMWIwNzcyODFlNGM5YjUyNjM5ZjQ4Zjc3ZDYgcHkzaworODY1MTAgNDgzYmJlYmM1N2JmZmI1ZjY5NDIxZmRmYTRhYzJhYjY3OWU3MjJiNCBweTNrCis4NjUxMSBmOWZiOTJlYTQ4NTAyOTI4MDc4NDdmMDFhODVlY2JiMzQ2NzQ5OTNkIHB5M2sKKzg2NTEyIGUxMDVlNmFjODUzNjUxNGQ2OTM2MzhjYTNhY2U0OWNhNjU0NDUyMGQgcmVsZWFzZTI3LW1haW50Cis4NjUxMyAyN2UzMmQ1MjAwNTU2MDg5NzUyNTM5NmRlNjZlZTIxNjIxZTBhY2JjIHB5M2sKKzg2NTE0IDViYzQ2M2IwNGM4MzMzZDMxZjc0YTZmMzUwODI1ZWM1N2U5NjFlNTYgcHkzaworODY1MTUgMDE5NDIxYTg5ZWY1OWRjMGIxNmZhNjkzZDQ4ZGMwZTRmYzUxYjE0OSByZWxlYXNlMzEtbWFpbnQKKzg2NTE2IDhiNmZhZWEzMDU3MzQwZDU2ZmVmOWU1NGRjODc5YmRiOTViNDVkYzMgcHkzaworODY1MTcgMjk3ODE2MGY0OTE0OTViYjEzNTJhMGEwMGQyMGRhYmFmNDExNjZlNCBweTNrCis4NjUxOCA4MmIxNjFmYTI4MTg0MTI0ZDk2N2VjZWJiY2IxMzk1YjU3MDEyZTJlIHB5M2stY2RlY2ltYWwKKzg2NTE5IGYwZGRjOTFiYWVjMDRhNDcyOWZiNGM3ZTM0NTg3MzU4YjE4YmY3MDcgcHkzay1jZGVjaW1hbAorODY1MjAgYmIyNzY5Mzg5YzUzMTQ3M2UwZTljOGMxNDdmZDlkYmM2MmE5MWZmOSBweTNrCis4NjUyMSAzNzhkNGY0ZTljYjUwZDhmZDIyNzk0ZGRiMmM0OTllYTQ0ZTA3MjUyIHB5M2sKKzg2NTIyIGZiN2RkZjFkMzU5NDAyOTI3MDNlNzAxZGU4NjdhNWMxZjUwMTg0NjQgcmVsZWFzZTMxLW1haW50Cis4NjUyMyA5MzJhM2ZmYTRlNTYxMWVlOTcwNmEyYjE2YjFmN2E0MWUyYTZlYTZjIHB5M2sKKzg2NTI0IGEwMTliYjRmZmI1MGU1NTc1NjlkOWEyYTZlZThiMWNlNWE0NDFjOWUgcmVsZWFzZTMxLW1haW50Cis4NjUyNSAxZGFhNDBiNDEyMTE3MjY4ZTRkMjA0MjVlMGJhN2ViZjkwNmUxNjlkIHB5M2sKKzg2NTI2IGFlMzE1YTdmNjJkMjc4MTFmM2QzNzkxMWEzYzE3MDEwOWRjYzU5MTcgcHkzaworODY1MjcgNjdhYjc0MDJlMGRlY2RlYjNhZjQzMzJlNmUxNjI3YTc2ZGY1NjEzNSByZWxlYXNlMzEtbWFpbnQKKzg2NTI4IDI3YzU0NTNhMTQ3ZjUxMWNjMjhlMzg5MDc0MmQ1YTQzMWIzYjk2MDYgcHkzaworODY1MjkgYjg0MjBlNzY3NjM4ZTU2MjZlNDk1Mzk2NjhlZmUwMjU5MGQ3ZDYzNSByZWxlYXNlMzEtbWFpbnQKKzg2NTMwIDBjY2E3M2IwYTViZjAwODc3N2VmOTQ1OTYxMjAzZmYwNGVkYWIxM2MgcHkzaworODY1MzMgYTFkYTgyNDNiNjNlNmFjMjdkMDI2NzdkMDRkOWU1ODE1YjUyYWVjYSBweTNrCis4NjUzNCA0MjAzMDE0MDA0MDNmMGUyMzlhN2E3NzI5YzY0N2VhOTdmNjk3NTg0IHJlbGVhc2UzMS1tYWludAorODY1MzUgZTk4M2ViMjIyOWRmZGEwZTdjY2MxNDA3Y2I1ZGY1ZTA2NjM4ZWFmZCBweTNrCis4NjUzNiA0YjNhNTUwMjAwMmQyMTg5MDBmZTk3MTQxZTY2OTFmY2NmOWQ1ZTQyIHJlbGVhc2UyNy1tYWludAorODY1MzcgZDljODkwNzIwNDRlNDhkNzViZDQ4OTFhOTY0MTUxNWI4NWFiN2ZlMCBweTNrCis4NjUzOCBlMzczNDRhOGYwYzkxYzM5NDEyNzI3YmFmZDU2ODk3NDdiNDhjMzEwIHB5M2sKKzg2NTM5IDM1MDg5OGUwOTVhYTZmYmNmMDVlZjliYjhkYzY0MzQ2MTg4MGNkNDUgcmVsZWFzZTMxLW1haW50Cis4NjU0MCBiOWJlNDVmNDMzYjkyZGI4NTMwMGUwMzkzMjBkMDQ5MzkyZTJjMzA4IHB5M2sKKzg2NTQxIDUxZjcyYzVmZTI4ZTRiZjFhYzg2YzgwOWNkNDE5NjhiMjc0Zjc4ZmIgcmVsZWFzZTMxLW1haW50Cis4NjU0MiBkNGY1ZTI3ZWQxODZiNmRiMzZhZGVjN2JiYmRkMGM4OGYyMTFiMzFhIHB5M2sKKzg2NTQzIDQ1NzJkMjhkYmFjNzMzYTNkNzExZmE0N2RiYWMzOWY4MWFhNDk3NmIgcmVsZWFzZTMxLW1haW50Cis4NjU0NCBjZGRjYmUzYmY1N2EyZTgzNzk3Y2NkNTQyMTY3ODQxNjYyMmUxOGE2IHB5M2sKKzg2NTQ1IGM2NGVkNmRhNDhiOWFiMzhiNTkyNjM4M2QwMGYwNWFjYjIwNDdhMzkgcHkzaworODY1NDYgZDIyYWE1YWU3NzYyNWY3NjllNzlkOTY2MDU5NjRhMDM2MjQ0NTc0YyByZWxlYXNlMzEtbWFpbnQKKzg2NTQ3IDVlZDM3YzJjMDU3NDFkZWU5YWIxMGY2OThiYTU2MjQ0MmFjZGJiZWUgcHkzaworODY1NDggZTlhYzNmMzExMTk5NTc4MWZiOTU2MWFiNWIxYmNmMGNkODk2YTFkMCBweTNrCis4NjU0OSA4NGEzMDVlMmU1NDg4OTMxNzRjNmE1MzBiMDM5MTAzOGVjNGY0MzgwIHB5M2sKKzg2NTUwIDRiNGM3MjEzMmFiNmViMmIzNWNkYmE5YWVlOWU3YzNhYWQwMTI2NmQgcHkzaworODY1NTEgZTUzMGZjNzY4MmJmMjk2NGJhNjk1MDQzMWI4NzQ0ZmZiZGFlYjEyNCBweTNrCis4NjU1MiA0MDk3MGU4OWU2MGFiYTM5ZjQ3NTI1NDM1MzNlNjA3MTkzYzgwZGMwIHB5M2sKKzg2NTUzIDgyNWU0ODBjOTMwZGExMDMxZWM3OTE3ZDA5YzQ0ZjAxMjM5YWIyYjYgcHkzaworODY1NTQgZjA3OTY0MzkxNWI1M2U5Y2YwMThmNjM4M2FmOTM4ODdiOGY3YzkyZiByZWxlYXNlMjctbWFpbnQKKzg2NTU1IDI0NWY2Y2EzYjIzMzBmZWI0YTI3ODFiZGM0Mjc2MGIyYTkxOGRjNTQgcHkzaworODY1NTYgNTNkZDcwMGEzNWI2ZjJmZTY3NzAwNzk4NDExMWVkZWMyMWVhZDZlNyByZWxlYXNlMjctbWFpbnQKKzg2NTU3IGRkYjNiYzhlNjk5MGRmNGYxYTYxNTY0ZDFmYWJiZjMzMTcyMzRmZTMgcmVsZWFzZTMxLW1haW50Cis4NjU1OCAxOWI3MTFhNzdlZmYxYjQzN2Q2NjQ2NGIwMGZlYzkwOTQ4MWFiYzJiIHJlbGVhc2UyNy1tYWludAorODY1NTkgMmRkNTM5MjVmMDA3MWRkNjVlOGUxMzMwN2M0ODIwMWQ3MmQyNTFlYyByZWxlYXNlMjctbWFpbnQKKzg2NTYwIDVkNTVjNWJiOGFiMWM0MDU0ZDc2NDA2MjFhZjFlZTQyZWU0MjVmOGUgcmVsZWFzZTMxLW1haW50Cis4NjU2MSBiNDZiY2U4N2QyYWYwMWU0NTg5ODI0ZDlmZjkyZDMzOTE3ODJjYTdkIHB5M2sKKzg2NTYyIGRlYmM3NjY0MTkxMjJhZjYwOGE3NmE1NzA4ODUwYTk5NDFiZmY2OGYgcHkzaworODY1NjQgNDBiMGM2OWJiMmJkNzUwNmY1OGRlOGM5ZTkwMGMzMDkxNzJjYTAyMSBweTNrCis4NjU2NSBjMjBhZGU2M2YzZGJjYTFiOGEyNzgyNGZiZWM2MDYxMTdjN2NiNjU4IHB5M2sKKzg2NTY2IDRlZDYxMDFmOGFiMjU1NTQzY2I3NWNmY2MwMzVkOWNmNzY2OTRiNDkgcHkzaworODY1NjcgN2YzMmM1ZjU2ZDFhMTE4ZDdlMDM3MDI5M2Y1ZGEyZjVhYzQwODk3MiBweTNrCis4NjU2OCBhMTkzNmZhNjM1ODBkNjJjOTMxZjUyMzA0OTg1Mjg5ODk5ZjE4NWU3IHJlbGVhc2UzMS1tYWludAorODY1NjkgNTllNTZiODJlNmNiMmNmYjU5NTMyOTdlNWIxMjVhMWRkMzg3OTIzZSByZWxlYXNlMjctbWFpbnQKKzg2NTcwIDRlMmRhNTI3ZjViMWRiMWFmZTE4NDgxY2E2ZjVhYTM2Y2VmNGE1MGYgcHkzaworODY1NzEgYWVmOGYxODUwZDI0ZDcwZGJlMjIxOTdiZTA3NTNkOTMxOTE2ODZmZiBweTNrCis4NjU3MiA3OGEzODBkNTdmZWExOTRhYzMyNGRmOTg1YmFhOWE3MDFmYTU4YTQzIHB5M2sKKzg2NTczIDUxZTFjYmRkOGZkMjg1NmRmZWEzYjY0ODBlNGNjN2I1OGEzYzNlYmQgcHkzaworODY1NzQgMmFlNGVlZDRhM2IzNzg3ZTg0OWFmYzhmY2Q2YzZmMDQ1Nzg1N2E3MSBweTNrCis4NjU3NSA4MzhmNjk0OGRlYjhiNmY4MDU2OGZkODllNzEwMGYyZTEzNmJhYjIwIHB5M2sKKzg2NTc2IDNkMmY1NWNjZDY2MGVjNjE1MzVhYjY0Y2RkM2ZhNmIxNzhkOTdjYmEgcHkzaworODY1NzcgODBiNDhhM2EyNDczNGM1Mzg4ZjE4ODFiYTc1OGUxMjUxY2I5NzJlMiBweTNrCis4NjU3OCBkNTcxODFhY2FmOGM0M2Q2NDNhMzhlZmRiMTQ3OWE3MjdjYzMyNzM4IHB5M2sKKzg2NTc5IDFlZjQ2NTFmZWVmODliODAyYWNkNzNlNTNjMzkwYjEyYmQ1YTEzODYgcHkzaworODY1ODAgNDFkNThiZWMzZTA4YjQ1YTM4MDI0NDUzM2VkOTllODU2YTc3OWM4NCBweTNrCis4NjU4MSA0ZTUxMmE5NDliNjBjMDQ4MDE1NzQ3YzU4NDI5NmY5ODRlYWFlOTYwIHJlbGVhc2UzMS1tYWludAorODY1ODIgYTdjMjIxMDdhZWNkMDQ1NzJiZjA0YzM4NGNjMGVmMTYwODYwNDk4MSByZWxlYXNlMjctbWFpbnQKKzg2NTgzIDY2ZDQwYjZhMmJiMWFkODBkYmY4ZDQ1MmM2NjUyZTU5Yzk4NGVlNTYgcHkzaworODY1ODQgM2EwZTcwMDBkYzhmOWQ3MDhhYTVlYWI1MTYxZDY0N2I3MTFiZmMzZSBweTNrCis4NjU4NSBlYTgzNTVjZGRkOWY4MTk3YmY4NTc4NzIzMDRjNWI3MjIwNTkzMWI0IHB5M2sKKzg2NTg2IGJjOWRjN2U3ZjM3M2RhYzZkNTUxNmNiODI0ZGI0OWI2MzA4OGU1MTkgcmVsZWFzZTI3LW1haW50Cis4NjU4NyAzYzliMWMwNWJhOWVjNTdiZDRjMWE5YzM5N2JjODkyYzlmMDRiNjgxIHB5M2sKKzg2NTg4IDdjZGJkYmYzNDgwYjhmMDJiOWQwOTdmOGEwZGU1YTI1NmQwODJiZDggcmVsZWFzZTMxLW1haW50Cis4NjU4OSBjNDA0YzJhMzQ2YTU4NDRiNWE5NThkYjAyZTM2NzAwYzQwNzBmNzNmIHJlbGVhc2UyNy1tYWludAorODY1OTAgNjMxZDg0NGJiYzQ1OTMyZDU4OGY1NGI2N2I5NGJmZGU2ZDUzNzM4YiByZWxlYXNlMjctbWFpbnQKKzg2NTkxIDk2NWY4NTllNjBhZmY5MTc2OGVmNmQ2MzE3Y2Y5Y2I3M2JjNzA4MzYgcmVsZWFzZTI3LW1haW50Cis4NjU5MiA1MDc1MTgyMmY2MjIzMDY2NWFhMWZjNDliMjdjMzVmYWIwNjgyMjBhIHB5M2sKKzg2NTkzIGMwNmVkMjVlNjliODMzMjdkNWI1YzlkYWI1OGM0Y2MxMmM3NjNjNGEgcHkzaworODY1OTQgNGYyOWFhOGY5ZjU0YjFhMjVkNjliNDBmZWU5MWYyOGI5YzUzMDRmNCBweTNrCis4NjU5NSA0M2U1MGJiOTIzYTk2ZWVhYTU4ZTE5Yzk5MGY5NDY1NDFlOWZmNTI2IHB5M2sKKzg2NTk2IDlmZTc2YzI2ZWE5ZmU3YmYzYmViMzRmZGQxMjk5Y2IxODBlYzZlYTggcHkzaworODY1OTcgZGVkZjcxOWIyNmEzNzRkMjkyNGEyYjAwYTZkMzdiMjRkYTllYzYyOSBwZXAtMDM4NAorODY1OTggMTI5M2Y4MTljZTM2NjIyZTRhYzM3NjU4MzM0ZDViMjA1YzM0OTg5NCBweTNrCis4NjU5OSA1M2JlMWE2N2U5NjRhZWNjMzkzOTRhYjRhMGZmMzI4ODE1Y2ViZTg4IHBlcC0wMzg0Cis4NjYwMCAxM2EyYTVkZTFiN2Y2ZWJjNTUzMDZjNTZjOTE1OTQwOTE5ODliZWNiIHBlcC0wMzg0Cis4NjYwMSA4NmUzZjYzMjRlNjUwMjM1MGUxZTFiY2M2NDQzOTRhNGZkMGEwZmYyIHB5M2sKKzg2NjAyIDQ0YjMxMjE5YWVjZDMzMmViZDJjZWIyYzliZTIyNjQ4MGRlN2M5NTMgcmVsZWFzZTI3LW1haW50Cis4NjYwMyA2NzFlNmJkMTgxMTQzZDI4NDZkYWMxMjgwNWEwMDFiZGMzZGNjYWJjIHB5M2sKKzg2NjA0IGI2ZDdjNWI2ZjFmMjAxM2IwMTQxZjVjNWIyZWRiZjE3YzFhM2RiYzcgcmVsZWFzZTMxLW1haW50Cis4NjYwNSBmNWRiNTM3ODM5MjJkMjc2Nzc3ODM5ODhmMmI5YWM3YjRlZjcwMDM5IHB5M2sKKzg2NjA2IGVlZDQyZDI4MzU2MjJkZjhhYTQ5NDUwYjU2N2Y0OWI2ZTA5YmRhM2MgcmVsZWFzZTMxLW1haW50Cis4NjYwNyA2ZWFiZjhjMWE3NWM3ZTUyMzJjZGFkZmIyYjVmMTg4MjQxOGYwNThiIHB5M2sKKzg2NjA4IDlmZWM2YWJjYTdkNzY3NjIyNjJlZmQ2NGE2ODg0YmVhYzBmNDVlNWIgcHkzaworODY2MDkgNGFlMmQwMTFhODBiYTVjZWI0YTQ1M2RhZGQ2MmRlYzY5Y2MxODJiNiByZWxlYXNlMjctbWFpbnQKKzg2NjEwIDU5MzA3YWE3ZDJmZTY3YTA4MWFlNGVmNzEzMzcxN2M0ZDgzYTJhMmQgcHkzaworODY2MTEgNDMzNTY5M2RmMjU5NzlkOWJmODc1MjBiYTA3N2UxYjliNTYyYmNkNCBweTNrCis4NjYxMiAxY2RjOWMxYzQzMGU4NWM1YjY1M2FkMTI2M2Q0MWY4MTdmNDEwZjNmIHJlbGVhc2UzMS1tYWludAorODY2MTMgN2FlYzIzODY4Mjg3N2IzOWIyYzQ2Mjg0MzIzZDc0OGRhYTc3YzM2OCByZWxlYXNlMjctbWFpbnQKKzg2NjE0IDEwYTFjMzk5ODY0ZTQ2M2JkMDc0MTdiMjNlMDNhZTg1ZmVhNmRjNjAgcHkzaworODY2MTUgY2ZkNTM4MzExYjZmYTYwZmJjOTM1ODM2YTRlYTQwN2Q5ZTUxOTg2YyByZWxlYXNlMzEtbWFpbnQKKzg2NjE2IDQ4ZmRjMmQ4Zjg5NmVjNzRkNTA3OTI2Mjk4NzZmOTc4OWZmNjYwNDQgcmVsZWFzZTI3LW1haW50Cis4NjYxNyA3YWYxOWU5OWQyZjg1ZWI5N2NlMGRkM2M3NDcyNzAyNDU5MDU1NmM5IHB5M2sKKzg2NjE4IDIzOGNhYWY2ODUyYjczM2VmMDUwZDE2NjlhZjk4NzdhNzJkMTMxZGMgcHkzaworODY2MTkgYWRkN2U5NzIxZjgwOTQ3MTM2MWViNGFiNGEzYzU3OTgwMThhNTFkZSBweTNrCis4NjYyMCBlMDEyMzc4MzFhZDJmYWQ2OWM1ZmRiZDEyNGI5MDcxZjIwZDhkNTAxIHB5M2sKKzg2NjIxIDM5OGIyMTgyMWQxYjRhMDBhNDQ3ZjJjMzI2YjJjZWEyYjA0NDVjMjUgcHkzaworODY2MjIgMjU3NTEyYjk3ZjgyM2QzZTcwMGFmYWJiODc5YmYwMGY5MGRkNTc2MiBweTNrCis4NjYyMyAxYjQ0OGZkN2UxYTI0OGM0OTMyMTU3YWYxNDJhOGYyN2YxYTZkNTkwIHB5M2sKKzg2NjI0IGFjZDk2MjgyNDgxOTE0ODllMDYzMWI4YWIzOWRhNTc3NTZhYmZjNWIgcHkzaworODY2MjUgNDU5YTY5MDI1ZDljMTZiZGI5YTg0MjYwMzIyMjg5YjYyODk4NzU0MSBweTNrCis4NjYyNiA2MjE4MmFiYzExNmFiYWM1NWU4ZmZkNzZiM2M0ZDE2YTJjYTBiNzIzIHB5M2sKKzg2NjI3IDA3Y2FkYzJjNjQzODI5OWZlM2M0ZTJkYWExYmU2Yjg2OTVkOWNmM2IgcmVsZWFzZTMxLW1haW50Cis4NjYyOCA4MzdhZDU4NTRmYzkzYjQwYzUxNDI5MmQwZmJiZjY5MjNjMDNlNTE4IHJlbGVhc2UyNy1tYWludAorODY2MjkgMmJlYjI1MzY5Mjg5NzUyNjc0MzQyYzBlYTg3NWQ3OTljMGZjZTUyMSByZWxlYXNlMzEtbWFpbnQKKzg2NjMwIDVjMDZkM2QxYjljOTBkNTAzOGY3ZWIyZWQzYThjYmJjOGM5MTk2ZjAgcHkzaworODY2MzEgNTQ0YjQ1M2U2MGE1OGVlYzBlNmE0MjgzNGQ3MDZjYTAzYmUxYzg2MiBweTNrCis4NjYzMiAyMDY4MjU1YjRkYTAwYTE4ZmM2Y2JiNmFmYzhjYmIxZTkwNWU1ODQ2IHB5M2sKKzg2NjMzIGZkZmM2ZGNhODA0ODNiM2QxM2ZjZTVjY2I2ZGMxOTI0MGU0NzNkNTIgcHkzaworODY2MzQgZDI5YTY3YzI2NjAwYzc2ODM0YjkwYzYxNzhmNmY1YjJjODI1M2IwOSBweTNrCis4NjYzNSA5YTBjMjQwMWM2YTZlMWYwMWJjZTc5NTIxMzBmZDU1MzE5NjYxMzhlIHB5M2sKKzg2NjM2IGY1NDc2OGE1ZTJmNTVkYzZlMWU3NzkyMDIwNTQ3NGJhMDA0MzA3NDggcHkzaworODY2MzcgNjE0Yzg0NjcwYzYzZDM1YTBmMjdhODg4ZDg2OTg1MzkwNDkzZmU3ZCByZWxlYXNlMjctbWFpbnQKKzg2NjM4IGMxM2Y4OTgwY2E3ZmRmYjM4YzQ1YjQwNmY4YTkzMzk1YTg3OTRkYjMgcHkzaworODY2MzkgZjhjZWI2YWZkN2E5MWFhYzlhNzk3OTkxNTliOWI2ZGNmNDM5NTMyMiBweTNrCis4NjY0MCA5NzE3MTUzZDU1OGQwNDllNGMzNTIxNTVlOTllODcxZGM3MThjNmZiIHB5M2sKKzg2NjQxIDYxZDFlYzMwN2JiMGRiNDkxZWI2Y2JiMWIyMGUyYWI3ZTgxNjljNzYgcHkzaworODY2NDIgMzIyYWEzZTgyNzY4YmUzYmM3YzI4NmE4N2I1ZTE4YmY1YjczNzQyMCBweTNrCis4NjY0MyAxNzlkYzRjMzQ3MGYzY2Y3NmRmYjljOThjMjc5MTEwN2JjYTU0NzQzIHJlbGVhc2UzMS1tYWludAorODY2NDQgOTQzYTg2NDk5MDBkZmY5ODU1MWVjMjI1NTU0ZmY2ZWE4OWEzYTI4NSByZWxlYXNlMjctbWFpbnQKKzg2NjQ1IGVlZDMyODhkZWQ4OTVmYjJkODllNGFjNGU5OTViNTIwZGViN2RlODkgcHkzaworODY2NDYgYTc4NDQ1N2UwMDBlNWMzYzk4NTc5NjUyMzQ0ODJiNmM4YWVmZTI3OCBweTNrCis4NjY0NyAxZWY4ZTlhNzVmZWYzYzcyMjMwNWY2NDhiN2I0ODRlZTY0NDgxMGIxIHB5M2sKKzg2NjQ4IDIyYmNkYWMxODFiY2E5MTFiZTgwMWFjNmE0NWQxNGY0NDRkZTZkNDAgcHkzaworODY2NDkgMWVjMDU4MGQ5ZDlkN2I2Nzg5ZjI5ZGI4ODEyOGNkNWRmNzFlMzdlMCBweTNrCis4NjY1MCA1YmE4YmZjZTdlYzFkNmRjMDYxMzViNDk3MWZmYjAwZDIyYzVkMGMyIHB5M2sKKzg2NjUxIDhiYTE2YWFiZDU2NDZiNzI4NjU4OGUxOWFkYWEwZGU0ZDA2YmRhMTUgcHkzaworODY2NTIgNDg1ZGNmZmM4OGI0NWUxNjg1ZWMxY2ZjNjg3Y2U2NGNkMDM1YjM3NSByZWxlYXNlMzEtbWFpbnQKKzg2NjUzIGY0N2ZjZDViNTAxZGVjMWE4MmRiM2Y4ZTQ0NDU0OTRhNmI3ZGY1NGQgcmVsZWFzZTI3LW1haW50Cis4NjY1NCA3YjE0ZjFmZjYwMmJiNTA4ZGQ1NTQ5YTk3NDE0ZTcxYjMyOTlhOTc2IHB5M2sKKzg2NjU1IGFkZDhhMDNkZGVlNmUzNWQ0NzZjNWU2Njk2ODJiYzQ0ZjgzNWJiZTQgcHkzaworODY2NTYgMDdhNDg3MGY2MGEwN2YwZjUzY2Q1ZTBmMTdmNDg1MWIzMjU3MjY5NiByZWxlYXNlMzEtbWFpbnQKKzg2NjU3IGEwODE2MjVkZDZjNjI3ZWIzNTQ3ZmY2NTA1MGQ3NGUyZGYwOGJhMGEgcmVsZWFzZTI3LW1haW50Cis4NjY1OCBmZmMzNzJjOGNmYTBjNzYzZTNjNDVmMzMyYjRkMWY4MDg4MTMyYWIyIHJlbGVhc2UzMS1tYWludAorODY2NTkgNWQxMTJjNzg3ZDZlOTRmMGQxN2ZiNDg3ZDIzMmNkOWQxNmRiYjJiMiByZWxlYXNlMjctbWFpbnQKKzg2NjYwIGYwMmYzYjMzZGQ4ZjkxZjQyYjFjNzAzMDMwMmE4MjU1OGIwZDQ1ZDQgcHkzaworODY2NjEgNWFiZmMxY2MyMmQxMWYzYzhjYTFiNmEwOGJjYzcyN2FiZDdlNTJmYiBweTNrCis4NjY2MiA2NmUwZjVjNjUxNTg2ODllM2NhNjFkZWVlZTUwZjY5NGUyMGYzNDQ4IHB5M2sKKzg2NjYzIGM1Y2ExYTliMWZkZjVmMmM0ZjdhZGZhOGM4ZTFlZjgzZDRlODU5ZTcgcmVsZWFzZTMxLW1haW50Cis4NjY2NCAwYjI3MTZmOGFmYjU5MDRkNDI4MjliNDk5YjE3YjdmNTViZTBhMjY3IHJlbGVhc2UyNy1tYWludAorODY2NjUgMGVmZDQyNTg5ZjE3MWUzODE4YTg4MWU5MDZhNmM4N2FhMmIyYzljMCBweTNrCis4NjY2NiBkYzZhMjdiZjg1OTI4Y2E3NWUzYmFhYmI0MGZiMTU0MzZiYzhlN2NiIHJlbGVhc2UzMS1tYWludAorODY2NjcgOWExOTA2OGJhOGIxMGUxMTNjNDRlMTQ4OWU2Y2Q2NDgyMTA0NzBjZiByZWxlYXNlMjctbWFpbnQKKzg2NjY4IDEwMmRiMGNmZmU1MWY2Y2M0YzllZjA3ZGRmM2Q0OGZmMGYyZmE1NjEgcHkzaworODY2NjkgM2U5NWYwODkyMzdhOWUyNzk5N2QyMWZkYzBjMmQxOTM5Mjk3MDAyYiBweTNrCis4NjY3MCAwODEzYzJhY2Y3NDE1NTE5NGRjMGQwMDlkYTY4YmZjYjhiNzQzMzNhIHB5M2sKKzg2NjcxIGFkYTY3ZGU2NDkxOTk3MWNhYjliYzIyNjJjMDczZGY1MjAwYWM5N2QgcHkzaworODY2NzIgNTM4MmNhOTVjM2Y2YzMxNmQ4ZmRiZjk2YzkwMjMwNTk0N2RlYzJlZCByZWxlYXNlMzEtbWFpbnQKKzg2NjczIGQ2YjZmOTlmNWFmOWUwMTUxYTIyODQzMWZkMWViNGNlYmE0NDJmOGIgcmVsZWFzZTI3LW1haW50Cis4NjY3NCBhYTY0ZDRmMWE3OTU2MTUzNWNhZjViMTY3MjczODU0MTM0YzY4Y2E3IHJlbGVhc2UzMS1tYWludAorODY2NzUgMmZmNzU4MzE1ZmExMGM1Yjg4NmRjNmVhZjI0OGVlNjZlM2Y1M2FjMiByZWxlYXNlMjctbWFpbnQKKzg2Njc2IDdiNzA1MTI4MjdjZjM5NGQyOWU4YjVhYzFhZDY0OWM3NDkwNjU0NDEgcHkzaworODY2NzcgMGE5ZmQ1Yzk0ZGMzNTk1ODlkNGNhMTIyYThiNGZjODEyNjg2ZDVlZSByZWxlYXNlMzEtbWFpbnQKKzg2Njc4IDRjMmIyYmU3MTQ1N2Y3NTBiYmM2Yzc2Nzk3MzRhMTBiYjAxMTMyZDQgcmVsZWFzZTI3LW1haW50Cis4NjY3OSBjNmI3ZGYxYmRmNTBlNDhiNjBkZDdmZDI0NDY3ZTc0ZWM3YTQ2MzhmIHB5M2sKKzg2NjgwIDdlZTU5MGFlYjJiMzQyMTI0ZWViMzZkYjA0MjFlMTI0OWEyNTZmZjAgcmVsZWFzZTMxLW1haW50Cis4NjY4MSBkOTc3NDEyMWE2ZGZkYTdmNWU5MGI5NDVmN2Y3MzQwYmVjNmY4M2RmIHB5M2sKKzg2NjgyIDZmMjVjYWMyODM2ZWFkNzk2MzllYjg0ZTVhYzEzOWJkMTA0NGRlYTIgcmVsZWFzZTMxLW1haW50Cis4NjY4MyA0ZjM1ODY2ZmQ4Y2IxMmVhODVlZmVjNjA2ZGRiZTYzZjY2OTY0YzgxIHJlbGVhc2UyNy1tYWludAorODY2ODQgZjE1MGI2Nzg1NDhlZGYwOWM5ODJkYWUxMWQ3ODgyY2M3ZDA4M2I5OCBweTNrCis4NjY4NSAzMzYyNTg5YzBjMDJhYmUyMDc1YmRmYmI5NWFiNGI1ZTUyOWFkMWZjIHJlbGVhc2UzMS1tYWludAorODY2ODYgZTBlY2NmYTlhZDZiYTBhMDRiZGM3ZDRiMjRjOWUyNWE4YTA3ODdmNyByZWxlYXNlMjctbWFpbnQKKzg2Njg3IDgyYWM3NTNiZjYyYTlhMGQ5MDA0NzZiZTYxMjZkOGFiYzM1ZmViNDMgcHkzay1jZGVjaW1hbAorODY2ODggZTg4NDAzMzFmNzc4ZTc3ZGJlMGRlNTk5NmIyZDlhOWU3MWIyYzk1ZiBweTNrLWNkZWNpbWFsCis4NjY4OSBhYTRkZWFmMzQ0ZDE5OTAyNmU3YzJkY2MyYzJjNWE1MzRiNDZmMGZkIHB5M2sKKzg2NjkwIGRjYWQ3MDZiMzhmYzQ4YjhkZWFhZGFmZjJiOTZmZTU2MzVmZGY3YjAgcHkzaworODY2OTEgMGM2NjgxNDZiMTI2YTZmZDQyYTE1MDAyYmFlOGQzYzkzNThkZDZkYyByZWxlYXNlMzEtbWFpbnQKKzg2NjkyIDhkY2IxNzc4MWU4MzI0ZmYwYWMyNTYzMWExMGFhZGZmZGEyMjA5YmIgcmVsZWFzZTI3LW1haW50Cis4NjY5MyAxMjdmNTE2OGE3NzRmOWNkZWY1NWY0NjA4MWE3NTA1NWE5ZTYzZjM5IHB5M2sKKzg2Njk0IDk4ZTFkZGQ1MDViYzI5YWZhNGE4ZmM0ZTgxODBhMmE2YTlkMTkwNTUgcHkzaworODY2OTUgNThhYzUxNjBkMWI3YmJiY2U3OGQxNTFkZWMwZWRmYjVhNmI2ZGQzOSByZWxlYXNlMzEtbWFpbnQKKzg2Njk2IDNmNjIzNTBlZGQyZTkzNjQ2N2UzNzBkNDUyMTYzNjZiNDNhYTE2NTQgcmVsZWFzZTI3LW1haW50Cis4NjY5NyA0MDEwOTMwMTgyODU0NGYwNDNhMTQ2ODAwZmE3ZjdlNTBiY2M3ODhmIHB5M2sKKzg2Njk4IGNjOWM1MWY5NTI0ZjlkZmUxYjMyMTZhOTQ0ZTY2MzA1ZDljNTllYjkgcmVsZWFzZTMxLW1haW50Cis4NjY5OSAyYzM3MDA2NWMxYjRkZTkxNTFmMDM4NDRlNTk4NWJjMDIwNDY2ZDA3IHB5M2sKKzg2NzAwIDI2MGZmMzc5MTE1YzdiN2M0NWU5ZTBlNmUzYjgxMzgxMzE3NDEwNDEgcHkzaworODY3MDEgZGNiNjBiZjI2ZGNlOThhNjBlMTg3Y2I0ODZlMDY2YTBjZjA3MTk0YyBweTNrCis4NjcwMiA1YTY5YTU4OWM2ZjA4Njk3ZWRlNWRlM2UzMzE5NWExNDg1NTc4MGU3IHB5M2sKKzg2NzAzIGE3Mzk4ODNlZTZjNTYwNjE3ZmM3NDNhYTY2NWNlYTVlNTVkZWE5NDYgcmVsZWFzZTMxLW1haW50Cis4NjcwNCA5NTIyODJhNTA0N2ZjMjFmZmFiMjI4NTFiMDQ1NzE3YWNmZWU1YWNiIHJlbGVhc2UyNy1tYWludAorODY3MDUgMzMwM2FiZTI5ZDBiMzhkMjI2OGExOWU0OWFlNTRkOTNjNzQ3ZTJiZiBweTNrCis4NjcwNiBhNGI3YTQxZGFiZDk0YzgzNjExNWFiNzA4MzkwNWUwZDc2ZWJlOTBiIHJlbGVhc2UyNy1tYWludAorODY3MDcgNjNmMTE0YjA5Y2FmYTkyMGY0MDA0ZWJiMzYwMjdmZWZhMGI2MzRhYSByZWxlYXNlMzEtbWFpbnQKKzg2NzA4IDBjZTU3OTUxYWVjNjJhOTIzMTE0MzJlMzc1NmMyODk3ZWQ0YTFjN2YgcHkzaworODY3MTAgYzg2ZjE3MTA0NjdlN2E1ZDRhYzg4NjFhOWMyMWQ4Nzc4OWM2ZmM3YiBweTNrLXVybGxpYgorODY3MTEgNmNhMjg5MGJhYjY3OGRmYjViMDNjYTMxODhmOTZhZjdkYTVlOGU3ZSBweTNrLXVybGxpYgorODY3MTIgMGY4YzUyZWM5ZjdmMTVjMWUxM2RkZjcxOWYxOTBiZTllMDJjNWJmOCBweTNrLXVybGxpYgorODY3MTMgOWFkZjM5N2Y1NmU3YjQzYzdkYTk3MTc2ZWFkZDAxOWNmN2Q2NzNiYSBweTNrCis4NjcxNCA4YjRhNTMxYWQzNTJhNDQ4YjhkN2Y5YTkzYTNhOTQxMWZjZmU1YmZiIGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4NjcxNSAxYWU1MWQxM2MyNWI5MjM1NjA2ODkzZDE4MzdiZDM2ZmEyZjVmZDY4IGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4NjcxNiBiZTBmNGQ4YmZjZWFhY2E1NjQyN2ExZTIxMWFkYjQ2MjI1NjY1NGRmIGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4NjcxNyA5ZjIzYzVmNDg1NmMwMjQ0ZTg3OTM2NDgwNjkzZjViMTYyMTEyYzMyIHB5M2sKKzg2NzE4IGJhYjljMjA3ZTFjZjhhZDE2ZDIzMjQ0ZDBkYTJjMTQzZTdkZWI0OTEgcmVsZWFzZTMxLW1haW50Cis4NjcxOSAxNDA0YWIwNzZiNThmNDRjNjIzYzZmMWJhYmFmOTVhMjFiMmQ3ZTRmIHJlbGVhc2UyNy1tYWludAorODY3MjAgNDM2ZGFmMDk1ZTg5NjhlNWNlYWM0ZjkxYWRjYWVjNThiOWRiYjdlNyBweTNrCis4NjcyMSAwODI4ODE0ZTAzYWRkYjgyMGE3NTRkYmE0MjQ0MTNiYzVhMjkzNTQ5IGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4NjcyMiA2MWY5ZDNiZjIzNGNmMGY5MGRmOTJiMzllN2ZiZDg2Y2JjNGNhZjVlIGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4NjcyMyAwOTI0ZjQwYmI2ZGM1MWM1YmNmNjYyNDhmZmViMmE0YzQ3NzVjN2NhIGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4NjcyNCA0MjU4ZTI4Y2Y0NDA2MGFlNDNkOWIzOTgwYmViYjBmYTYyOWQwYzJjIGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4NjcyNSA2NTJiYWYyM2MzNjg2ZTUyMGFlZDNkMGU3Yjc3YzZlNWE0YTI0NDNmIHB5M2sKKzg2NzI2IDI4ODllZDczNDFlMDdlOWZmOTRjYTE1Yzc5MzYyYTE0ODY4NTlhNzEgcmVsZWFzZTI3LW1haW50Cis4NjcyNyAwYTFiYWE2MTkxNzFhZjMyNDg2OWVjYmNiNmM3MTQ0MDI5ODc1OWVjIHB5M2sKKzg2NzI4IGYzYTYxZGFmYmY2YmFkODhmMTVmODFkN2Y1MzAzYTU1ZDQ3NDE4YzMgcmVsZWFzZTI3LW1haW50Cis4NjcyOSA0ZmVkMDA2NTk4MzE0MWJhMDJhYzA2NDYyNGJjYjY3ZDFiYjNjNDlmIHB5M2sKKzg2NzMwIDgzYjA1MTdkMGZjNWUwMmYxZTllYmI1NjA2MjE3OGQ0OGM3MGZkN2YgcHkzaworODY3MzEgYTc2M2VkM2Q2ZThjYWE4N2FjMTdhYjgyMDBlOTM3ZGU1Y2U5MjNmMSBweTNrCis4NjczMiA4MmRhMmFiY2U3MjIwYzM0NjMwYzVmOWM5MGYzMzI3MTFhNDQ0NGZmIHB5M2sKKzg2NzMzIDljZDEwMzY0NTVlN2Q2Mjg1YjRjMWZiMzQzZDMyMWIxZTZjNDc3MzkgcHkzaworODY3MzQgMzk1YWM2ZTMxOWE4OTU5YjMyMTE3ZjE1YTBjY2EzNzZlYjA4ODM5YSBweTNrCis4NjczNSAyNmY4MGY3MjRiNGZmMTY5MDA2NTcxYTVmM2Y0MGEwZWVlYjM2N2FjIHJlbGVhc2UzMS1tYWludAorODY3MzYgMjUzMmM0YmMwMzczYTE2OGNjZDhlNjc3OWM4YWZiYmU3NTcyNTEyMiByZWxlYXNlMjctbWFpbnQKKzg2NzM3IGQ2ZThiN2UyNTBjNjVhYzM3ZTkzOWRkODc3Yzc1MDBhNGE3MGI0ZjAgcHkzaworODY3MzggYjczODEyNjkwYzZlNjU4ZmJjOTlmZDdkY2QwNGQzZjdmODdkOWQxZiByZWxlYXNlMzEtbWFpbnQKKzg2NzM5IDI4NzcyNjViZGIwMWNhMTVhYjE1ZmY2YTcwYjViNDU4ZTg3M2UxNmEgcmVsZWFzZTI3LW1haW50Cis4Njc0MCA5OGNhNjU1MzIzYzA1Y2IzZDFhYTczMjZkOGYzNzlhNmEzNTI3ODRiIGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4Njc0MSA0ZGQ3ZWIyZDk4NTZjZWYzZmU0MTYyZTY3NDJiM2I5OWJkODlmNDAwIGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4Njc0MiA4NThlODZkYjQ0MmY1YWQ4MWFjYjQ0OTM4ODE4YTczYjQ0MzY0NWQ1IGRtYWxjb2xtLWFzdC1vcHRpbWl6YXRpb24tYnJhbmNoCis4Njc0MyBjZWFkMDRiM2M1ZWQxM2YyZjViM2JkYzRmZjFmYjg5OTc3NDJkMzAwIHB5M2sKKzg2NzQ0IDBjYjI2NTI2NDE5ZDg4YjdhNDZkNTM1ZWUzN2E1NzE2Nzc4ZWEyZmYgcHkzaworODY3NDUgYzU0YzQxMWQzZGE3YTE0YjZiM2U4OWUwMjU5NDFmMmRkNjI4NjQwNCBweTNrCis4Njc0NiAwM2Q5MzM5NDhiZjNlYWE4Yzc5YzY0OWRlYmQ1NmNiYjZjZjU5NTE2IHB5M2sKKzg2NzQ3IDY3ODgyMTA1ZGQ2NTU4YmNiNTBjM2YyNzcyNWFjOTcxN2NiOGU2ZTMgcHkzaworODY3NDggNGQzOTUyYTIxZTI1NzYwYTI5YTBjNjhjNzUzMzI4ZWI0NjE0NWU5NCBweTNrLXVybGxpYgorODY3NDkgYWU4MmM3NzA3NjljYWQ1NWYxZjIwNjk1OGRiODdjNTNmNWU3ZmQ0NCBweTNrLXVybGxpYgorODY3NTAgMTE3OGUyNTQ1ZGNiNWM2ODJhMjA2NWM1MmIzYWI1YzQ5ODJmOWVjNCBweTNrCis4Njc1MSBlZGVkNjkxNDk3Yjc0OGMzY2ViOGVkZTBjMWIxNjdkYzcyOGRhNTVmIHB5M2sKKzg2NzUyIGYzZGY5M2UyNjI2NzVhYzViOWNlOGQ3NzFmODA2ZTg5NzdmNWViNjQgcmVsZWFzZTMxLW1haW50Cis4Njc1MyAwZGE0MmNkMDE1NzY1NWRmY2ViMGNlMjExMDU4NzhhYmZkMWY5Y2U1IHJlbGVhc2UzMS1tYWludAorODY3NTYgNDU3YzdlNzA0ZWMyOTljMzlmNjE1MjdkZmI2NmVhMDVkMmQxZWU5MiBweTNrLWNkZWNpbWFsCis4Njc1NyAyZDZjZGM4MTg1Y2FlNTc1Y2ZkMjNkZmFiM2VkMTBlODM0OTU4YTBiIHB5M2stc3RhdC1vbi13aW5kb3dzLXYyCis4Njc1OCAxNDBkOGE2NTc3MDU0MzNhODM0NWVjODRjM2NmYjVkMjU1M2QxN2NjIHB5M2sKKzg2NzU5IDA2ZDIzMDI2ZjkwNDU2OWI3ZWUxNThmMmViY2FmZWI3ODA0MTk5ODUgcHkzaworODY3NjAgZjU5ZGJmMjhlMTJjM2Y2YjljYzhhOWE0NDZiMjBjODJkYzM4NTc2NSByZWxlYXNlMjctbWFpbnQKKzg2NzYxIGU0OGVkMmVmNmQ1ZmZiMzkyZDFiZDc4YjkwMzYyNjgyZDk3Y2JmNWEgcmVsZWFzZTI3LW1haW50Cis4Njc2MiA3YWI0ZmRhNzcwMzEyNzY1NTMxMjRiOGIwZDlmMjgwYjdkYjk0NWE5IHJlbGVhc2UyNy1tYWludAorODY3NjMgMTkyMzIwMjBlNDkxZDc4ZWYxYjA2YTNkN2E5M2VjNzk2NzUxMGUxNyByZWxlYXNlMjctbWFpbnQKKzg2NzY0IDhjZTlhZTVhMTU0MjdiMDdkZGZjMGEzYTE0YTYwNjRhZWYyNjVmY2YgcmVsZWFzZTI3LW1haW50Cis4Njc2NSA2YzM1YWJjN2QwZDIxOTJlMzIxMzlkMjFiYmY5NzI1ZDg3OTllMThlIHJlbGVhc2UyNy1tYWludAorODY3NjYgNDVhYjU1ZmEzZGMwZGY5NTgxNjRiYzAxNDQ4N2IwMGEzN2ZmMDA0MiByZWxlYXNlMjctbWFpbnQKKzg2NzY3IDc3NzcxYjA4NWVjYTc1ZDRiNzcwNThhM2M0OWRmZGU2NDFjMjY5MTkgcmVsZWFzZTI3LW1haW50Cis4Njc2OCBhODAzZmQ4NDFmZDE3YzNjNDM1OGYyOGQwYjFmNjJiYjU4ZGNjODZkIHJlbGVhc2UyNy1tYWludAorODY3NjkgZDZjNTc1MDE1M2JiMTE4NjQ0YmUxMDY5NTlhYTE1NTI3Y2JhZjEzOSByZWxlYXNlMjctbWFpbnQKKzg2NzcwIDM3YjM3YjZhODk3MmJkNmYwNTY4ZDkxZjk1ODhiZTZlYTA3ZjI1NmIgcmVsZWFzZTI3LW1haW50Cis4Njc3MSAyOTU1ZjMzNzk2OWU4MTY0NGYxMDdjYzJlNzg2MTlkMjBmNjA0NTk4IHJlbGVhc2UyNy1tYWludAorODY3NzIgZTEwZjYxOGM5NjdhYzI5M2M2YjJhMTZlNTg0YTEwODZkYmQ1OTY1ZSByZWxlYXNlMjctbWFpbnQKKzg2NzczIDgzNWMxNzYyMzlkMDI1N2IyZTY5NjYwMjE5MTE1ZGVjY2U0MGQxNzUgcmVsZWFzZTI3LW1haW50Cis4Njc3NCBmYjJhYTQ1YTFiMjJlM2IxYjVmMzM0Mzg0NmExZmUwYzUzMTI5YWIyIHJlbGVhc2UyNy1tYWludAorODY3NzUgOGI2YTllY2JlOTg5YzBiNGMwYjdiZGY4YmE1ZjlkZTU3NWY1OTRiZiByZWxlYXNlMjctbWFpbnQKKzg2Nzc2IDJlNTgxMjZkYmFkMDg3MDNiZTJmMzNjMzhhODdjNDFkZTZiNTZjZTcgcmVsZWFzZTI3LW1haW50Cis4Njc3NyA0MTM2NTE1Y2RmYWNkZmM3ODQ0OThhMmJiN2MxNGQzYWI4MjQ3YmEyIHJlbGVhc2UyNy1tYWludAorODY3NzggN2MwZWI4ZDU2MTQ2YjlhZWFmMzk3YzRlN2MwZDRmYjdmMDE2MGExNiByZWxlYXNlMjctbWFpbnQKKzg2Nzc5IDcxYjc3MTUxOTMzM2EwNGIxMjMzZDFiYTVhZmRmMjY2ODQ3Mzk1YTUgcmVsZWFzZTI3LW1haW50Cis4Njc4MCBhMzcyZmM0ODYyODE2Njc0MTY4NDQyODExNTIwZGEyOWRjN2ExNzYxIHJlbGVhc2UzMS1tYWludAorODY3ODEgNDVlNDkyNjllMGQ4ZWYxZGQyODIyM2Y2NDlhMmVhZTdiYTY5MTIzYiByZWxlYXNlMzEtbWFpbnQKKzg2NzgyIGU3NTkzZmViNWFkNWMzZmIyMmI3NDg4MTA5ZjdiNzdjM2UzMDUxMWUgcmVsZWFzZTMxLW1haW50Cis4Njc4MyBhOWYwZWM2MDRjOGFkMDg4MGJkYTE5N2QxZGIxOWU5YTU5YmVjMDIwIHJlbGVhc2UzMS1tYWludAorODY3ODQgMDVlZTZmOGMwMjYwYWE1YmUxZTVhMWY0Zjc2ODkxNDRkNWU5ZmJkYyByZWxlYXNlMzEtbWFpbnQKKzg2Nzg1IDM5YjVhZjc3M2U3NTk2YWI3NzcxOWFmMTNkMDY1Njk0N2Y1OWRmMjcgcmVsZWFzZTI3LW1haW50Cis4Njc4NiA5YmVhZDkwOWQ4ZWZlZGVjN2Y0MDYzNGQ2MDM2OWJlNTRmYjY4ZGI3IHJlbGVhc2UzMS1tYWludAorODY3ODcgOWIzNDRiZTFiZTlhN2U5YjkwMjU0ZWI0YWQyYmVjODA3NTlhYmVlNiByZWxlYXNlMzEtbWFpbnQKKzg2Nzg4IDNlZTZkMDM4YWY5YjQ2ZTgwOTM0ZmU5NzBjZWUwZTY3NzEyNjdlMmYgcmVsZWFzZTMxLW1haW50Cis4Njc4OSA3MjgxOTM3YjJkNjViM2Q1OGJjN2NiZDU4OWI0MzczOTQ0YzVlZmZiIHJlbGVhc2UzMS1tYWludAorODY3OTAgOWQ2ZTI0NjVmNTkyNTQ2NGZiMDk0ZGVlNWUxOGVhMmQ2ZWQxZDgyOSByZWxlYXNlMjctbWFpbnQKKzg2NzkxIDRlYTFjNmE0ZTkyZDBmYjk5NmI0NDk4MmUxNjgxZWY3ZGE3MTJiZDIgcHkzaworODY3OTIgMmMxNjcyODE2MmZkZGJlYjZiMmZjYjJmOWZhMjI4NzdmZjFmMjZhMSByZWxlYXNlMjctbWFpbnQKKzg2NzkzIDAwMDBiYmFiMDhiNDQ3Njg0NmMwMjFlNDU5NzkyMWZkMDY1MmUzZjQgcmVsZWFzZTMxLW1haW50Cis4Njc5NCBiMGU5N2RiZDk4Yjg0MzhlMWM2ZTgxNzYyYjQ0M2M0ODk1YjRhZjBiIHB5M2sKKzg2Nzk1IGZhMDE3YmNhZWUxMDAwM2IyMzg4YTFkZjMyNDE3ZmVhZWI4NjY1YTkgcHkzaworODY3OTYgNTA4NGNlOTQ4NDM3ODU5ZDUxYTI2NzYxNTA0NjcxYThjYzBiYzNlNCByZWxlYXNlMzEtbWFpbnQKKzg2Nzk3IDQ2ZmVhZWM3MjliZGM2N2JmYjIwNDkxZmRhY2Q2NjI5ZjRhNzBmOWEgcHkzaworODY3OTggZmI1YzQ1ZDM4ZTJhZjUxNTBkYjI1OGMyZjU0MzM4NjkwMGQzOWI5MiBweTNrCis4Njc5OSBhYzUyMDdkZDhkOWEzMzQ2NjNmNzg3NDg4Njk4YTU0ZTNhNzc1OWNmIHB5M2sKKzg2ODAwIGFjZWI0NTE2YThkNDRhMmQ1MGFlNWM1NmU2NDNhMGNiYWUzMTVkMjEgcHkzaworODY4MDEgYmY1ZjQxNzRiOGMyZDU4ODhhMDhiNGNjNmI2MzljZWQ1YjFlMDI3YSBweTNrCis4NjgwMyAyMzFiMGJiYzFmOTA0NjRjNWRkMzIyODc5ZWY4YWIwMmRiN2M3YmFhIHB5M2stc3RhdC1vbi13aW5kb3dzCis4NjgwNCAzMjk4NDJkZjA2YTEwYTNmNjkxNWIzYzEyMGVkZmNhMDE1MTk4ZjU1IHB5M2sKKzg2ODA1IDBlMWRkNDU0OGFhMTdjMWIwOGJmN2VkOGVhMjI4ZjFlZDY2NjI4OGQgcHkzay1zdGF0LW9uLXdpbmRvd3MKKzg2ODA2IDEzMmE5NGVjMGNlODBkNmVlNjVhNzdlZTY1MDRiM2RiYWVmMDVkZTUgcmVsZWFzZTI3LW1haW50Cis4NjgwNyA0Mjc5ZTQxN2IyYTAyNGIwY2I0YmU4MDJkMTEyMDlkMmFkOWUyMDMyIHJlbGVhc2UzMS1tYWludAorODY4MDggZmFkZjc0YzBjNTA0M2Q5Nzk4ZWIzOGE2MDJkYTY3NjBhZTIzZGU1YiBweTNrCis4NjgwOSA3ODZlZTExZTBjODQxYTBiNTNlNjE0NzEwMmRiZWQ1MzlhZGI5ODRhIHB5M2stc3RhdC1vbi13aW5kb3dzCis4NjgxMCBjN2EzNDJhNzk4ZTc3MTM3NzkwMDQ2Zjk4Y2UxOTljMTkyYTcyYjRkIHJlbGVhc2UzMS1tYWludAorODY4MTEgNzQ5YjFlNzEzOTFjYWUzNjIyZTQyODA1ZjM2N2IyZjZkZDFiZmUwOSBweTNrLXN0YXQtb24td2luZG93cworODY4MTIgYzgxNjNjMmExYjZmNGRlMTQxNjYwZTNmYjM5MWM5OTJhNzI3M2U4ZCByZWxlYXNlMjctbWFpbnQKKzg2ODEzIGM4MmNhM2JlYjRkZjE1ZTk1MzJkYzEzNzVmMzlmZGJjNmRiYTk4MjcgcmVsZWFzZTI3LW1haW50Cis4NjgxNCA5ZmVmZjE3N2Y0NGQxMjY5YWUyM2Q2MzY5MGNiNjMxMWMwZWY4Yjc2IHJlbGVhc2UyNy1tYWludAorODY4MTUgYWQ3OWY5YjNhMDIxOTcwYWYwZWVkNGUyYzdmNDFmZDM3OTdkMzQ1OSByZWxlYXNlMzEtbWFpbnQKKzg2ODE2IGYyMjIyNWE5ZDcyMDgyYWY2NmE5MzMzMDgyYTAxMWUzYjRkZjJkN2UgcmVsZWFzZTMxLW1haW50Cis4NjgxNyBlYTRlYzZkZTljZWZlMDlhODZkOGIzMjRhMmM4ZDBkODQ2MjgwZjZkIHB5M2stc3RhdC1vbi13aW5kb3dzCis4NjgxOCBhYmJjNThhMDZlNDNkNDhkOWVmM2Y4YjU0ZTZlZjY0OWQ3NTM0NDQzIHB5M2stc3RhdC1vbi13aW5kb3dzCis4NjgxOSA5NmNhOTlkZmVmZDhlZTcxYjQwM2RhOTZkYjliZWQ2ZDZlYmU2NGVkIHB5M2sKKzg2ODIwIDg2YTY1MzlkMmMyNTM1ZGVlYzUxOTQ3ZTQ5ZDZiZjM4MjE4N2Q0NWQgcHkzay1zdGF0LW9uLXdpbmRvd3MKKzg2ODIxIDBiNjM0MDczMDkxM2M0Y2M1NTc1OTZlNmQ4MjFlZTYyYmQ0YTU1YzQgcmVsZWFzZTMxLW1haW50Cis4NjgyMiBiNGJmZGM1MmFkNTEwNmIxNzRhOWRjMTY3M2VmYzhjOGUzMzQ3Y2M3IHJlbGVhc2UyNy1tYWludAorODY4MjMgY2NmMjYzM2I5NWRkODlmNWMxZWYxNTg5NjQzNTE0OWJkY2I2OTRjOSBweTNrCis4NjgyNCA2MzM0MWRkMzYwYWY1ZjcwMzg3MDJiZjZkOTE0ZmMwN2RkOTBhMWE4IHB5M2sKKzg2ODI1IGZlZTk4YjYwNDEzOWM3ZjViYTgxM2FhNzcyODZmZTRjZmI5ZjJkYzUgcHkzaworODY4MjggNTk2MjM5ZGEzZGI3OWRlZDBjNTgyYWQ4ODRmYTZhNTVkZTg1ODBlOCBweTNrCis4NjgyOSBkM2JhZDQxYWQ3MDE3Nzc4ODg0NTQxZGUyNzM0MjlkYjRkOGFkOTIzIHB5M2sKKzg2ODMwIDU4YzJhYzYwY2NiOWRhYjRkMjVlN2UyZTkwZGRlMjc2OWJkYjQ5N2YgcmVsZWFzZTMxLW1haW50Cis4NjgzMSA4MmFkZTIxM2E2NmRmOTJmYjc0Mzc5MjExN2Y1ZjBkYmQwYmY2ZmQ3IHJlbGVhc2UyNy1tYWludAorODY4MzIgNTM5NWY5NjU4OGQ0ZjAxOTlkMzI5Y2I3OWViMTA5NjQ4ZGM0ZWY1ZSByZWxlYXNlMjctbWFpbnQKKzg2ODMzIDdlMzhmOGZiYmFkZGFiOGExNmE2NjVhNDk0YWZlY2ZjZDUwZGYzZTggcmVsZWFzZTI3LW1haW50Cis4NjgzNCBhNGY3NTc3M2MwMDYwY2VlMzhiMGJiNjUxYTdhYmE2ZjU2YjBlOTk2IHJlbGVhc2UzMS1tYWludAorODY4MzUgZGMyNmU0YTdkMmU2MGQwNTIzZTYxMDIyMWM1NTk3MTVlODI5OGU0NiByZWxlYXNlMzEtbWFpbnQKKzg2ODM2IDYzYWIzOWQxMTg2MGUxNTYyODMwNDAzMmRiMzdiYjVhOWZjZTFhMmQgcmVsZWFzZTMxLW1haW50Cis4NjgzNyA4NzM3ZmIxN2Y0NDQwMWEwYTJlOTdkNTRjOWFlNTBkNWZjNGNjNzM1IHB5M2sKKzg2ODM4IGEyN2ZiMWU2ZTA5ZDQ0ZTRmMTFkNzdmNDk3MjE2NzQ0YmRhZDJlYWEgcHkzaworODY4MzkgNDFjZDA5MmJlOTNhYTQwNjQ0YmM4ODVjNzkzZjc1NDNjNDFkOWM5YyBweTNrCis4Njg0MCBmOTUxMjc0YWYzYzdmNTdjZjA4NDNkMGRmNWI5ZDc4NGNmYjFhYmNiIHJlbGVhc2UzMS1tYWludAorODY4NDEgNzJmMGJlYTA1NDU3NzkwMDg0YmY4Mjc4YWJhMDZlOWYwMmY1ZjhiNCByZWxlYXNlMjctbWFpbnQKKzg2ODQyIDFiNzdmMmViMTYwNjc4NjZhOGI5MjVlOWZkZWUzZmI4MzM5MDViNGQgcHkzaworODY4NDMgMGYwYzZiODc5Nzk2YmVlNzdlYTNiNzVjZjAyZGFmMjNiMjMzODlmZCBweTNrCis4Njg0NCBkMGExNmY5ZjM3NDFmZDNjOTM0Y2ZmZDM5NDkwNzYxZjc1NmNkYzg2IHB5M2sKKzg2ODQ1IDUzODE4ZTRjNGZjYTU2NDg4NDA3ZDljY2IyZjhjOGMxYmE2NWY2NjEgcHkzaworODY4NDYgNWJlM2VmYjQ3YmZkNTgzNjg3ODZiNTJlMzFjMGE0NTgzNzZlNmJlYSByZWxlYXNlMjctbWFpbnQKKzg2ODQ3IGUwYTUyNTIwMmM3N2NjNjc5NzU1ZmY4MWVlMzUzNTJlMWViYmRhNjQgcmVsZWFzZTMxLW1haW50Cis4Njg0OCBjNGFhYzhlNjk4ODg2NWI0MGVmN2E4ZjcxNzg2YmFkODg3NWQ1N2Y3IHJlbGVhc2UyNy1tYWludAorODY4NTAgMjdlZTQyYjBmYWY2Y2NiMDdlMzBiMjFkOWQ2ZjY0YjdjZTc4MGM3MCBkbWFsY29sbS1hc3Qtb3B0aW1pemF0aW9uLWJyYW5jaAorODY4NTEgNzJmZjQzNTMyMjE0ODBiNjNkNjgxODUzYjJjODAyYmQwZWY5NGY4MSBwZXAtMDM4NAorODY4NTIgZDI0YWEzYjFlZTI4MTY5NzQ0OThmZTMxMzM1YTZkOTAwNjI3NmVjZCBwZXAtMDM4NAorODY4NTQgMDNkMGQxODY3MTNiNGZlNDk3Y2NlODRkMGE4MzE3MzE0MjVjOTNlMCBweTNrCis4Njg1NSBiZGQ1Nzg0MWY1ZTJmNDZmOGMwZDZhMDJkNDI3MDhlYzU3NDQ0N2I0IHB5M2sKKzg2ODU2IDkzY2Q0ZGU4ZWUwYjA0YTEzMDJmYWNiODBmZmJkNDI2MjZkOGIwNTYgcHkzaworODY4NTcgNjllYzc3NTI2MTgwZmJlOTBlMGIyNDZkMmI4NjM3Yzc4Y2RmZmQwYSBweTNrCis4Njg1OSAxNmUzYzk1YmM0NmM1YTRlY2JlMjk3NjYzNWMxYTdmOGZlYjU2YWVjIHJlbGVhc2UzMS1tYWludAorODY4NjAgN2E1ZjI2NTQ4ZTFjMjg1MzBjODc0YWMxMjg2MWI5M2ZmNzU4YTQxNyByZWxlYXNlMjctbWFpbnQKKzg2ODYxIGU1ZmNiNDIyNmI0MmE2NzM2ZjQzZGYzMTQ3MGVlNzk0NGVlOGFiNDAgcHkzaworODY4NjIgMmUwZDkwMDlhYjZiOWUxYzcxZTFmOTZlNzJkOWQzZjMwMmIyOWRlYSByZWxlYXNlMzEtbWFpbnQKKzg2ODYzIDhmZDEzYzVkMzg4MjM5NzQ0MWI5NzA3NmE3MzRmMDFhYjkzZGY2Y2QgcmVsZWFzZTI3LW1haW50Cis4Njg2NCBlODEyZGIzNDRhNjVkNTUyYWMwMjAwZTU0ZTc3ZTFmOGYyNGZjY2FjIHB5M2sKKzg2ODY1IGVhZDUzMDcwM2I5YmU1Y2I4OWZhNGMyMzFmZTdmZTkzY2YzNTdhNjcgcmVsZWFzZTI3LW1haW50Cis4Njg2NiA2NjdkMjgzNDQwMTcxOWRhMmZhNDM5NWQ5N2EyOGRlMzk2NGRhOWY1IHJlbGVhc2UzMS1tYWludAorODY4NjcgY2Q2ZDBjYWZmZWYyNGJlMDZkMmVjODgwNmI2YzIwOTA4ZjMwZGFjNSBweTNrCis4Njg2OCBiMGZmMzMzZWMzZGExYmQ2MzI2YTE1NDdhMTcyYTA4NDZmODQzNWZlIHB5M2sKKzg2ODY5IGU4OWFhOTE0NzYyNGNhNjM5YjlhY2UzYjNhNTgwMDIxN2M2MTZlNmQgcHkzaworODY4NzAgZTczOTJmZmVlMDcxYTc2YWMwZWNiNTE4MDUxYzI1MjIyMjA4M2YxMyBweTNrCis4Njg3MSA2Y2E4OTIyZGFmYjUzYjU5ZDhlNzk3ZGVmZjdkZmFjZjQ1Zjk0MmIzIHBlcC0zODIKKzg2ODcyIDBjY2E5NjYxNTM5NTFiOTYzYmYxOWY1MWEwODA4YjFhMzhkY2UyYzAgcmVsZWFzZTMxLW1haW50Cis4Njg3MyBkZTZlNzljNWIxZWQ0NDNmZjhkNTRiMmZmYmY4NjdkODQyODRkY2M3IHJlbGVhc2UyNy1tYWludAorODY4NzQgNjc5OWQ1NGRiMzc4MTJhYmYxMGExZDJlMjA4Mzk1ZmE3ODUwM2Y0YyBweTNrCis4Njg3NSBlMzJhMzAwYWNhYzJmYzg2YzdkM2M0M2VlM2QxNDg0NzEyODFhY2M4IHB5M2sKKzg2ODc2IDllOWE3MDliMzg5ZWNhZTM2YjE0NmY5MDc4OTExYjFlZjY5MTc2ZTIgcmVsZWFzZTMxLW1haW50Cis4Njg3NyBlZDRiZmI3NWQyOGQ4ODA2NDVjODM0NTc5YWY1YjZmYTgwYTdmZjNhIHJlbGVhc2UyNy1tYWludAorODY4NzggMzEyYjI5MTZjZmQ0NWQ4YmYzMTFiZGJhMjYyOTNmYTg4NDk1ODYwYyBweTNrCis4Njg3OSAzMmU2NzVkYWEwZTUxYmZlMmY1NGQzNzJjY2JkZTJjNGI3YzNlYWU2IHB5M2sKKzg2ODgwIGYxNmJmNGNhZTVkNzM3ZmFmNDM2ZjBlMWVmZGNiNWY0NGRkNDcxYmYgcHkzaworODY4ODEgMjhiNjdiNTcwZjJiZjlhNTliZTQzNTJkYjE0Y2ZhMjI1NWRlZDQzMiBweTNrCis4Njg4MiBiNDA1YTdmMGFlZDcxYjhkYTU5MWJmZmUwZDdlMjBkZWYwNGI5YjM5IHB5M2sKKzg2ODgzIDgzMDRiZDc2NWJjZjc3ZjgzN2Y1MTY5YTg4YjVkNzQ0YjVlMmQwMzIgcHkzaworODY4ODQgNzI0OTIwYTAxNWY3MDFhMjFkZDdlMzI5YTQ4ZjU0ZTEzZDFkZTFhOSBweTNrCis4Njg4NSBlZGE4ZGEzYTc1YjNjNjI0NzAxNDM2OWRlZDU4OTBhZjIwOWZjNzliIHJlbGVhc2UyNy1tYWludAorODY4ODYgZGViOWYyZDM3YjYzYmQxMzFhYTk0ODg2OGFkZTNmZGU0OGM0ZTQwOSByZWxlYXNlMzEtbWFpbnQKKzg2ODg3IGZkNmU1NjUzYjMxMDI1MDYyZmI3YmE2MzljYzIyOTg2ZjJmYjAxZjggcHkzaworODY4ODggMTgzOTllNjIwYjQxMTBjZDQ5NmNjOTdlYTNlYTljOGVjYWMwNTAzMiBweTNrCis4Njg4OSBlNDQ0MTBlNTkyOGVlMzExNGM2NThkZjY3Y2QxODBlNWI1MDExNWQ5IHB5M2sKKzg2ODkwIGI4MGY1YmYyNmU5ODdiOGQ1NTBhNTMzZGM4ODQyNzU0NGFmMjkxNjEgcHkzaworODY4OTEgZjc5OTI4YWRhYjU3OWYzY2YxYWJmOGZkY2JlYjdhZmU3YzRiY2U0ZiBweTNrCis4Njg5MiA3ZWEwMmYzMWMyNTJjYmViNDNlN2ViYWNlNDkyMTYxMGE1Y2JlODRlIHB5M2sKKzg2ODkzIDJmNmQwZjM2MWFiOTJjOTdjNzk3NmU0MGE2NzEwNWIwYTQzMTc0ZDYgcHkzaworODY4OTQgMzQwMzY5ZmIyZTcwZWY0OTkxNzZjOGEzNGFhYjMzNzY2NTE0OWRhMyByZWxlYXNlMzEtbWFpbnQKKzg2ODk1IDc0NjdhMWMxMWFlYjQ2NTQ0NjU4OGFiNmNmODI2MTExMWQ3MTZmOTMgcHkzaworODY4OTYgNjU2ZDI0ZDE5NzQ5YjBiMmZhYzNkOWFkN2NhN2U4ZDJkYTE3N2E1MyBweTNrCis4Njg5NyBkNjEwMDc0OTcwZDc5ZTNmNTU3YjI3ZDFjNmI1Yzk4N2FjMzJhMDJkIHJlbGVhc2UyNy1tYWludAorODY4OTggMDRlOGJkOWExYWJhZTM3OTk4OWQ1MzFjODJjODQyZDQ1ODVjMDBjZSByZWxlYXNlMjctbWFpbnQKKzg2ODk5IDdmZDJjN2RiZGRhNjgzOGJkZjhjYjU4YjkwYmQwMjZkNmEzYTBiYTggcmVsZWFzZTMxLW1haW50Cis4NjkwMCAyOTg0YjU3ZDY3ZGE0OTNiODk5YjNkMzIwNTUxZGRmYjQ0ZDJmOTFmIHJlbGVhc2UyNy1tYWludAorODY5MDEgMmIyZmM0MjYyMTcwMWY4OTY5NTQyMzEyOTQ5YTc3MDhjOGZkOWZjYiBweTNrCis4NjkwMiAxMTU1MmVhNmE5NDRjM2IzMzY5MDdiMWEwMDlkNWQ5ZTAzNjIzNjNkIHB5M2sKKzg2OTAzIDY5M2Y3NDMwYzNjYTUwODA3YjMwNTBjNzE2MGY3YzM1YTk4NGFmOWEgcHkzaworODY5MDUgZmVlM2EyZjI0M2U4ZTdmMmIwMWQ5ZjEwNDQ3ZjE2MmFiM2ZhMzczYyBweTNrCis4NjkwNiAwOTIzZDliM2RlNmVhODIyYzI5ZDUxYTJmMTMxOGViNDZlYjRlZTBiIHB5M2sKKzg2OTA3IDVjYjUzZjA5NGMxYTg4ZDBjMWVjNThkZTE4MThjZmU3ODA5OTMyNzAgcHkzaworODY5MDggOTE4NGEzOTA5ZGUwYzk5MzkyZGJlYjM3NGU0NTQzMjkzZDUyOTQ0YiBweTNrCis4NjkwOSA4Yjk1ZWEzMTcyNWIzZWU4MWVhMjY4YzcxNTA5NDhkOGQ2NWNkNDZlIHB5M2sKKzg2OTEwIDM4YmVjOTBmZDhhYjYwM2Q4ZmY4ODkxOTQ4ZWQ5YjljYzkwODhjN2YgcHkzaworODY5MTEgMDBjOGNkZjUzOTM2YjM1YWJjMjFhZjAxNDNmMjkzOGRkOTMzNGM2OCBweTNrCis4NjkxMiAxNDg5NmYxMzEzZGIwOWZmNGNhZjM1MTBmZjVmMGNhN2IwYjQzMGE5IHB5M2sKKzg2OTEzIGZmN2M1OTM3NzkwMzAwYTYyYzE1ZGI4ZDY0NjIxYzM5YjFiNjdiMDkgcHkzaworODY5MTQgNzE4MDk4NWMxYzIyM2QzMzIwZDliMjY2MjY3YWM0ZTIyZTVhYjg3OSBweTNrCis4NjkxNSBlNWMyOGQ2NzY5Y2ZkMTcxNmYyNzMxZTNkYmMxYWE5NTk3Yjk4NzVjIHB5M2sKKzg2OTE2IDJiYWFkOGJkMGI0ZmM4NjVmMmQ4ZDRiZTI5YzQyMzYwZDA4MTk1ZDMgcHkzaworODY5MTcgMzcwMDJlNGZmNjc3MmZiZmVjOTFjNjE2Yzg1M2QzYzMwNGExZWJkZSBweTNrCis4NjkxOCA1ZGEwOTNiNDljMmEyZDM0MjM2OGMyOTY3ZTUwZGY5MTEwNzRmYmM0IHB5M2sKKzg2OTE5IDEzYzcxYzhjNWMwZjg1ZWQxNWMzMmQ5MDUzNjU2MjllZjA4YmUxMTEgcHkzaworODY5MjAgNGUxOGI5YmUyNWE0MDhlMWI4ZDNlNjc1NmRmYTYzZDI5YmUyNzc2MCBweTNrCis4NjkyMSBjZDg4NzY3YjhkMGM5ZmYxNDkxMmNmNWIwOTAwNThiNzM1OWZlNDE0IHB5M2sKKzg2OTIyIDQzOTY1NTgwYzU1NmRiOTQ1NGJmNzAxNDA4NjhkZmE3ZGIyOTYzYjQgcHkzaworODY5MjMgYzViNTQ4ZmQwYzhjODI2MTMyYzI1N2NjNGMwYzQ2Mjc0Y2MwYjJhNyBweTNrCis4NjkyNCBiOTMxN2E5YTNkM2FiNzQ3ZjYzZWZjMTkxOTY4ZWExMzFjZjcxNzQyIHB5M2sKKzg2OTI1IGUzMWE0OTcyMDg0YWY1MjY5NTI3ZmMxMGQwNmU4M2Y3NzgzZTAyODAgcHkzaworODY5MjYgMDc4ZTVjN2IzMTU5ZjBjYmZmMGU2Nzc0NzNkMTQ5ZGVhMzVjOWFhYiByZWxlYXNlMzEtbWFpbnQKKzg2OTI3IGU3ODQ0YjdmNmVkNDllYjgyZTQ4OTMyODc0MzVhNDEwYzg4YTg1N2UgcmVsZWFzZTI3LW1haW50Cis4NjkyOCAwOWVkNDExYTEwOTA2MjhlNmMzNzcwOTM0ODIzNGJkNjM5ZGNjOTdhIHB5M2sKKzg2OTI5IDkwYjZjYmYyYjExYjYxM2NiYWJiMjgyN2VlYzI3MjYxMzhlMmEyZjAgcHkzaworODY5MzAgODljZGEwODMzYmE2MDM5MWMxNjIxMzc5NDBkNDhmY2VjMjMyNmFkNyBweTNrCis4NjkzMSAwZGRmYTViY2ZiZDM3MDNhN2YyOTVhZjY2NmRlN2IwMzRlN2JiMjAwIHB5M2sKKzg2OTMyIGQyZWE3MTFhYjEwN2M1YjQ4NjkwMTg0ZmMyZjg1MmM2ZDQzZjhhNDUgcHkzaworODY5MzMgZGM3MzQ3MjkzNWM1OGRjOTI2MTNmOGFjNDQ3ZGIyY2Q5NWJhODA1OCBweTNrCis4NjkzNCA3ZTQ4MzM3NjRjODhjMDAzN2ExZjlkZmY3ZDRkYWY3MDYzNjQ0NGRmIHB5M2sKKzg2OTM1IDlhMjA1ODMwOWMxYWE2MDdkMjNjMTY4OWUwMmFhNzNlMGM0NGQxMWMgcHkzaworODY5MzYgYjhiYmMwZmM2MTkxODhjNDJlMWVlNDAzMzJhYmQyNzJjNzYzNGExOCBweTNrCis4NjkzNyBlMzM5ZmNhNmU1MWExMDE2ZjE4ODU3MDZkYTQwOTQ0NTFhMzRlN2MxIHB5M2sKKzg2OTM4IGEzNjMwZGQ5MjIxODBiMjE5ZmIzMWZiMzhhY2Q0MmJjMzljNmM0NzAgcmVsZWFzZTMxLW1haW50Cis4NjkzOSA0NWFmNWEwNjhjYzdmNDA2YWY4MWYzNmU5NWExNTk4ZGVjYzNiMTc1IHJlbGVhc2UyNy1tYWludAorODY5NDAgMWFkZDhjZWY3NTI3ZmU5YTZmZjY0OTEyOTMxNzkxYWI3MjAzMTA4NiBweTNrCis4Njk0MSA1ZjI0MTI4NDNiYjkxZTZkMWRmMjkzZThhYjE4YjEwNzRkOTA2ZDRlIHJlbGVhc2UzMS1tYWludAorODY5NDIgODYyOWMyYTIzNGRiMDM2ZDNkYjg0NjkwYjg0ZDZhZDFkNzI5Mzk4MSByZWxlYXNlMjctbWFpbnQKKzg2OTQzIGRlZTIwMTU1ZmQ2NTc0OGQ4ZmMyN2I0YmQ4MjUyZjQyNzk2MGY0MDYgcHkzaworODY5NDQgMThkODlhMzBmYWJmOTkzMzY5MWY0Njg4ZWUyNDE0Y2Q4YjFiYTU2NCBweTNrCis4Njk0NSBlMTFmN2U2NjIzNjkxMDZkMmEwN2IwM2UwYWM3OGY4ZTlkYTJlNTYzIHB5M2sKKzg2OTQ2IDk5NmY4NGU1MDViZTM1MmRkMDk0NWJjMDNkY2JlYTRhMWRkNDVmNWUgcHkzaworODY5NDcgYmY0OTVkZGUyMGUzOTMyZGE5YjcyY2IyOTZlN2JlYTBhNWIzNzFmZCBweTNrCis4Njk0OCAxMDk4ZmFiODVlNDcyNzM2YTg4YWY1M2NhNzdkNTdjOWMxMzg3NmJlIHB5M2sKKzg2OTQ5IGY5MDU4MmM2Y2I1ZmY2YjcyMzUxYmMyOGJkZTQ3N2FhNmU0Njk4YWYgcHkzaworODY5NTAgNjRjNjQyYmI3ZmY3OWFlNmIyNTFlYmVlMmU1ZWY0YjAwNTBiYjVhMyBweTNrCis4Njk1MSBlMDIwMjFmYmZlMjJiNWM1M2JiYjlhZWI4ZDc3M2JlYTZiYWQ2OWYxIHB5M2sKKzg2OTUyIDFjYmZlZmZlYTE5Zjc2N2RhNmEzMmExZWE5NzZmOWQwMzM5NmY2N2UgcHkzaworODY5NTMgNmU0OWFmMmUwODkxMDlmYzhhMjg2ZGQ3MTNkZTZmNjQ1MTdlOTgzMyBweTNrCis4Njk1NCBkN2RlMzFhZTk1YTQ0N2NjNTBiN2QxMzVhNTMxNTBhYTFkYjIyYzExIHB5M2sKKzg2OTU1IGQ3ZmExN2E0NjY5ZGI4NWFhYmQxNTA5NjFiMzk2YTc2ZDMyOTYyOWIgcHkzaworODY5NTYgYzYxNGY3ODY3NWQ0YTcwMTI0MzY0OGE0NTg4NjA1YTk2NjM5NGFkMiBweTNrCis4Njk1NyAwOWQyM2ZiMGQ0MjhlZGQ0MDQxMjY4YTRjMGNlM2RkZmM1MzliOWM1IHB5M2sKKzg2OTU4IGEwY2Y2NGE1MjkxZTc1YTMxY2UyM2JiOWQ5ZmRiYzZkMTIyNmVkM2MgcHkzaworODY5NTkgNzg1MWJmYjFiZDczMzlmODYwZWRiM2IxNjc4OTY1M2Q4YjMzYjg5ZSBweTNrCis4Njk2MCA3Njg1NGU0NWM0NjUyNzBmMmQwMDE4MDYxNTA2Y2ZhMDQ4ZTA5Mzg2IHB5M2sKKzg2OTYxIDhiZjkwYjg3MTBkMDM3ODI3YzkxNDE2M2Q1MDk2NDFlYjkwOGVhMWMgcHkzaworODY5NjIgYTVhM2FlOWJlMWZiMDM5NTI4Njg0YmJjMjI4OWZlZDI2ZDQxOGM2MiBweTNrCis4Njk2MyAxMDc1NjFjNThkZTEwNDM1MzE1YzNhZDFjOGYyZDVjN2M4Mzk3OTU0IHB5M2sKKzg2OTY0IDQ4YzI4YzI4MWQ1N2FmZmU0Njk3MWNmOWM5N2NlYWExMTgwZDBjMDEgcHkzaworODY5NjUgMzgzNTNiYTQwOGExZDg0MjZkYTc1ZjA1MTg4OGU0YTIwMjBjODZjZSBweTNrCis4Njk2NiA1NzdhMjVkNjU1YzRhYWZjMTg3ZWM0MDg5MDVmYzM0Nzg5ZjhhZTQ3IHB5M2sKKzg2OTY3IDgxZjRkMWZkZjU3MzQxMzJlZDMwM2E2MjkxMmQ0ZjAyYWJlYjE4MTMgcHkzaworODY5NjggN2MxYjRjYTQ1ZGI2ZGQ5ZTBjMjU4Yjk2MWRjNTFkMjUzN2QzNTA0MyBweTNrCis4Njk2OSA5NGZhNTNiNThlZTUzNDhlZmYxNWNhYzZkZDliMmQ0ZTVkZDg5ZDMzIHB5M2sKKzg2OTcwIDc4MjE2MjYzNDI1ZDE1ODFlOWZmOGVmYjdiOTk3OGE0Y2E1MDcwM2YgcHkzaworODY5NzEgNGE1OTk5MDIzMTBkYjhhNGQ5OWRjODZiMDhiMDFhNTU1NDQxZjEzNCBweTNrCis4Njk3MiA1YjY4Njc1ZDcyNjljNmE1YzA0OWRiZTM3YzJlNjFkMjQ4ODRhYjIwIHJlbGVhc2UzMS1tYWludAorODY5NzMgZmRiMzUyMzFlYmUyNTlmNTJlMjgzMThiMTFkOWFiOTFjZTEzZjkzYSByZWxlYXNlMjctbWFpbnQKKzg2OTc0IGZlMmE1NmExYmE3NDQzNGNjMDExYjViNzA4ZjVlMGZiMmMzZDllODQgcHkzaworODY5NzUgZmFhZDE3OTdmYzkyY2Q2MWVlNTdlOTMyMjZiMzA1OTlmZDg5OWNjMyBweTNrCis4Njk3NiA1ZmRhNTE5ODM0ZGY4NTJiOGU0ZjY2M2I3NTI2YmFiNjY2ODE1Y2Y3IHB5M2sKKzg2OTc3IGFlMTAyODJlN2Y0ZWM3ZjJkNzJjNDY1YzM1YjIyMTRjNzkzNjA2NjkgcHkzaworODY5NzggMzAxZDIzZDZkZDliNmVkODAzMzg2NDBkYWU3MWU4NTg0Mjg5NGUwYSByZWxlYXNlMjctbWFpbnQKKzg2OTc5IDUyM2E2ZmM1M2E3MDVjNDVjZmMyODk5YTM5MDY4NWQ2ZDZiYThlMjIgcHkzaworODY5ODAgYjMwMDQ4NjYzYjdiZmU2MWU3YjUyZGUwYmE5ODMxMGNhY2IzNzAyZiBweTNrCis4Njk4MSAzZDJiZmQyMGMyZjRkOTJkZjU0YmFkNzVmNTJlNDYzNTQwNjczOGIwIHB5M2sKKzg2OTgyIDMyMTRlMjMxYTFjNDU5M2U1ZmIzMGJjOWRiZGIzYTBkYjJlOGI1MTkgcGVwLTAzODQKKzg2OTgzIDIyZjBjZjFhMjcxMWIyNDQ3MTgwMTFmNjc2MzNkZDRkOGUwODNmNGYgcHkzaworODY5ODQgZjc0ZjVhMDgzYjZmNzg1N2I3Zjc1NGNiZDBkYWEyYjRhODVhOTliNCBweTNrCis4Njk4NSA4M2FkMDBhM2E0ODkxODE2NTJkNGJmMmVkNWJhZGMzYWJjNDI2ZWRkIHB5M2sKKzg2OTg2IGIwMzQ4MzI0MTRmNzg3ODA2ZDJhYTUzYThmOGM3NjFhNWI5MjVhMzMgcHkzaworODY5ODcgNjY1ZjBmYzZkZGQ3YmYzOGRmNTAxMTE5MTlkMzdmNmU1MjMzN2ZhOCByZWxlYXNlMzEtbWFpbnQKKzg2OTg4IDdjZTkwMDFkN2E3NzFkMjQ0ZjQyOWNmYTI1NGZhMmVkZTI4YTU3MWEgcmVsZWFzZTMxLW1haW50Cis4Njk4OSAzMTgyYzYwODdlNTJlZTEwZjZhZTE0ZDdmYzQ4MzA4NzQxNjhjNjBmIHBlcC0wMzg0Cis4Njk5MCA1NTZkZjA4N2RlNGZjMTMyZTlkZDQwNmQwODRiOWRlMzIyYjViYjkxIHJlbGVhc2UyNy1tYWludAorODY5OTEgZTc1NmVjOGY0MTQzYmI5YTNmMTQ4M2M0YzMyMjYwNjcyMmIyNjA3ZiBwZXAtMDM4NAorODY5OTIgNWE3MjNiN2FlZmI3MGY3MjhjY2VmM2Q1MjM1M2JjNWFhNDExMTZiMyByZWxlYXNlMjctbWFpbnQKKzg2OTkzIDRjOTg0NDczMjkyNTczMzliOTU5ZDE3YjJlM2ZiMDhjZjI1ZWM4MjQgcHkzaworODY5OTQgYmQzYmE4OTk0MmUzMTZkMzVjYTlhMjIxYzUyZTY0OTBiN2RmOGQwOCBwZXAtMDM4NAorODY5OTUgZjg5NWEyMjIxZmUxM2IwMDlmZGI1YmUwMjk1YjFjNmQyYmY5M2E2ZiBwZXAtMDM4NAorODY5OTYgM2RmZWM4ZjE0ZTczMmU3YmQ2ZTAzNWU2NmI0NWYyMDJhYzE5ZDhiNSBweTNrCis4Njk5NyAzZDlhODZiOGNjOTgwNDZmMGQ3NDU2NDc5ODI5NDEwZTM4NmJlNmIzIHB5M2sKKzg2OTk4IDYyYjYxYWJkMDJiOGQ3MDk1Mzk3Njg3OGVkNWNlMmMyMTU3OTE0ZmMgcHkzaworODY5OTkgMTQ4NjQxNmM4NmQ5N2Q4MjE4MTA3MzliYmZhY2ZkOGUzY2JhN2NkNiBweTNrCis4NzAwMCA2YjAzNDkxZWUxNzFiNDliZjE3MGUzMzJjMWRlZWU2MTkwZTYwZTRiIHB5M2sKKzg3MDAxIDRjZGFmYjAyYjIwZTE1NzQ1MmFmNDY5N2FmZDhjZDdkYzQ3YzgzOTYgcHkzaworODcwMDIgNWVjNGVkNTE4ZWY4ZmQ4NDljOTMzOTZiYzBiYTFmNTFhNmVlMjE1NCBweTNrCis4NzAwMyBhNmU5NDlhNmZmYzljOWYxZDcyNWY1OGYwOTgwMTE3YjE3YmE1NjBiIHB5M2sKKzg3MDA0IGQ2MTgzYmNlYmRkZTY4MmU5NDMyMDY2MGFhYzE4ZWMyZGU5ODk2M2UgcHkzaworODcwMDUgZDI5YjU1YWMxNjMxOTM4MDYwZjk0MjRiNGExNGY4OTQyZDhhZDk4OSByZWxlYXNlMjctbWFpbnQKKzg3MDA2IDdjMjNhNjhmYTNkZTg2YTM3ZGU5OTFmNmExNmJiYTY5NDZiMmQ2N2EgcmVsZWFzZTMxLW1haW50Cis4NzAwNyA3YjZhZjU2ZWU3NGQwODQ3MGQwYzExMjg1YjZjM2YxNWMwZTljNzdiIHB5M2sKKzg3MDA4IGEyZmFiZTIyNGU4NzM2MzIxMzgzMTg3ZTJiODgyZThjMzg4YmE4NGEgcHkzaworODcwMDkgYTkwNzExMGRmMjVhMDg5Nzg5YmUwYjg3YzUzMTdiZjc0YWYxODhlMiBweTNrCis4NzAxMCBiMzdkYTYwYzkwNzJhMTYzMDBlNWVlMTMzZDMzOTZiNmVhNzA0YjYzIHB5M2sKKzg3MDExIDU2ZWVkOGY0MDdiZjk0NjlhNGRkMjZmZGExNGY4YmE0YjAzNGM0ODMgcHkzaworODcwMTIgMWQzNTMxYWFjZWEwZTEwOTVkZmU1NjQ2MTM3NGZkNzJhZTYyNTAwYyBweTNrCis4NzAxMyA0ZGY4YjQzNDJlNzAyNDNmNzk1MTYxMDRhNjRiM2U5MTk3ZjQ4YjgzIHB5M2sKKzg3MDE0IGIxZTc4OTYzMWRiYzQyMWQzYmI2NDc1Y2IyY2EyOGVlMDFhNzU5MWUgcHkzaworODcwMTUgNTFkMjhhMGQxYzMyZThkOGJmYTVhMjQ3ODVkYzQ0MDM5Y2M3Njg3NyByZWxlYXNlMzEtbWFpbnQKKzg3MDE2IDNhYWYzN2MyNGRiOGZhNzc4NmVlZGFjYzRhNWQ3N2QyYTMzZTNmNzMgcmVsZWFzZTI3LW1haW50Cis4NzAxNyAyZTFmY2YyOGM5MTQ1Y2Y2NzBhYzhlZTdlZDhlMzRkYTY0ZDAzYWU0IHB5M2sKKzg3MDE4IDg5M2IwOTg5MjllN2VmZWU0Zjc1M2I1ZGFlOTA4NTgzNWQzYjc1MjYgcHkzaworODcwMTkgNzEzYzZiNmNhNWNlMjJlYTNjZWRhODBkZDFjZDRhYmVmYjdhMDc3NSBweTNrCis4NzAyMCA4YjAyZjdmOTQ3NWIyYTM3NDg5YTE3MmNkOGVlZmMzMzliNmY3N2Y3IHB5M2sKKzg3MDIxIGYzNWE2ZDdlMzI1ZmY1MzJjYjM5NjU1N2E2MzZlZjI1NjRmM2UxMWUgcHkzaworODcwMjIgNDhjNDA3MDk0MTdiOWM2MGRjNGJkY2ZiN2MwZDM3NTEyODE2YjNmNCBweTNrCis4NzAyMyBmODJlZWE0NzgxZjE1NjNhMzU4MjE5OGQ3ZDMwMjMzZjBlYTkwZWM0IHB5M2sKKzg3MDI0IDcyMTRkYzViZmY1Y2ZiNzk4OTE1NDU3MzczNDQ4YzFmYTM0NWFlYjYgcHkzaworODcwMjUgYzI1NzhhNjg4NzlkOWM1YjdlYjhjZjkzM2MyNzMxYzdhM2Q4Y2ZmMSBweTNrCis4NzAyNiAyOTZlNmY4NWY1NmQ0MTYzMDFhN2Y1OTViN2RiODZmNWM5ODMxZmJkIHB5M2sKKzg3MDI3IGQ1ODJkYWJiMzBmODViNzcwZjAyZmQ3MzlkMGU0YTEyN2RkOWI1OWUgcHkzaworODcwMjggNDg0NTBmMDU5NzBiOTAwODE0MWM3NjM2ZjIzM2ZkMjA3ZTM1Mjc1MSBweTNrCis4NzAyOSA4Y2FiY2Y0ZjkwMzM4YjVhOWE1MDU1ODg3Mjg4Y2U2ZDIzMThiMTA2IHB5M2sKKzg3MDMwIGJlZGU4M2UyMDg1MzRjMmRhZmFkZGJmMmY2M2VhM2RhOWQ2NDE0MjEgcHkzaworODcwMzEgZGU3ZjI4YTY0MGU1YTY5Y2I2Y2JlYzM0ZjczZDg2Y2ViYjYyNDY0NCBweTNrCis4NzAzMiA1NzNhNjcyNzYyMTcxZjA0ZDIxNjBkNDIxNWIyY2E4YzUzMDg2NTRlIHB5M2sKKzg3MDMzIGE4ZjM4NDc2MTlmNGRiMjQ4N2ZiYzZiNzYzNDAxNjYxMzllZjdlOGIgcmVsZWFzZTI3LW1haW50Cis4NzAzNCA5YjYwMzYxMWY2ZDRjNmQ0YWE0OWZmMzZlNzZmNDk2ZjBmYjBmYjI0IHJlbGVhc2UzMS1tYWludAorODcwMzUgMjk0ODA2Y2FjOGM1NGJlNTNiYmQ1ZjVlOGYwNDQ3YTVkMjI3Y2Q0MyByZWxlYXNlMzEtbWFpbnQKKzg3MDM2IGRkYzZjNDdiZjgyNWUzOThlMGY0YWQ1MWUwNGExMzkwMTQ4ZGQzYzkgcHkzaworODcwMzcgZjE0ZjYxOWQ3MDUwMDI3NTkwNDVlMDI2NDRhM2RlYWJiNjM5YTJkNSByZWxlYXNlMzEtbWFpbnQKKzg3MDM4IGIzMmQxOWViNDMzOGVjMTU2ZmRlODQyNWI0NTYyYTA5NjAzMjRmMTMgcHkzaworODcwMzkgZmQ2MzhjYTc0NjM0YWExN2ZjMzgyODdkNDY1NjVhMWE5MTNhMWE3NSBweTNrCis4NzA0MCBhZTNmYTc4MWVlZjJlNDAzNWZjMjFhYzg5MjBlM2NkZGU1NGE2MzY2IHB5M2sKKzg3MDQxIGYxYmUzNDkyMzRjM2U0ZGY0M2QwY2YzYmM1OTc5ZTViMDQyYmY5ZmUgcHkzaworODcwNDIgY2I2ZDVkMTUxYmI0MjFhMzYwNjA2YzdmMDgxOTM5OWJmYjkwZjJlMyBweTNrCis4NzA0MyBmMmE0YWRlMzZhMWVhODEzMDU0YzkyYTU2YTI3YmQ3ZmVlMDZlYjZhIHB5M2sKKzg3MDQ0IGI1NWYzZDYzOWNkODZmOTU0N2Q1NjgzY2VkY2Q4MTY3Y2E5MGI2ZmQgcHkzaworODcwNDUgYzJjYTg2N2NkZDFhMjA3ODcwMTBlMDMzZGI0ODMwZTRiZDM2MDQ0MyBweTNrCis4NzA0NiA1ZWViZTRhZDBkODc4ZDUxNDA3ZGFlZmFmYzhjMGQ3OTI0YzgyOTQ4IHJlbGVhc2UzMS1tYWludAorODcwNDcgMGZkNmFlMGE4NTY3ZGExODkxZmU1YWU0ZDBkYTk0NTM1ZDk5NDY0OSBweTNrCis4NzA0OCA5ODMyZTk2ZTczMGE5MDU0ZTIwN2RlMjlhNTQ1YzY1NTdmYTAyZGFmIHB5M2sKKzg3MDUwIDc1NzExZDE3NDNjY2U2ODdmNjliYWM4OTUzZmM5NTIzODBhMDZjZWUgcHkzaworODcwNTEgNGU2MjkyN2EyYmRhOTU5OTQ3NzA2NmQ1OWI2Nzk1MzRkNzczMDgyMCBweTNrCis4NzA1MiA3NzlhMjNhMDhkOGNlZWYwNzNmOTY4YWEyN2UwMzg3Mjc3YmFkODYzIHB5M2sKKzg3MDUzIDMzOWRkNjIyZGU1YTU4MzI0ODQxNDY3MDQ1OWQ5Mjk5OTRmMWU5YWQgcmVsZWFzZTMxLW1haW50Cis4NzA1NCBiYTcwOWFkM2ZmNGNhNjljZjZjZTg0MTdjNjlhMTAxYTExYWI1MTQ3IHB5M2sKKzg3MDU1IDA0Y2VjMmUxY2E0MWE4NzRjYjg1OWY2MjhmOGU0ZGNiNjk0M2Y1NTcgcmVsZWFzZTI3LW1haW50Cis4NzA1NiAxODI3YThhYzliMThlOWM4NDZjNjg1NjRlNTUzOTJlOGJkODI0NzdmIHB5M2sKKzg3MDU3IDNmZWU4OGU2NDQyYTNkYTI1ZjlmNWRhZmE2OTFkNDk3M2ZjZjdjZjkgcHkzaworODcwNTggZGZlODZkYTI3ZTY4YzM4ZTY4NDhhYTRjNDIyZTVlYjMxZjIyMzU0OSBweTNrCis4NzA1OSA2ODI1YjJjZDliODFjMzhiZGYyOTA4NmViOGRlMzA3MDEzNTgwODA0IHB5M2sKKzg3MDYwIDNkMWJjYjU0YTgyYjY2Y2Y0ZWZiYTUyMTJhZjA1ZGZhNDY0OTM1OGEgcHkzaworODcwNjEgYjdmMDhhMGFlYTI4ODY1MTJkOTFhMmU3YzJmNDg0ZmM4NjNjNzhlYSByZWxlYXNlMjctbWFpbnQKKzg3MDYyIDExMDk0YjUyODhmOTg5N2UyM2FjNTc1ODZkMzc2ZTc5Zjk0MGFiNDkgcHkzaworODcwNjMgNTZmNDJlMTg0YTE5NmU5ODcwODQ2Y2YwNmQ4MDE2Y2ZiMzc0YTYwNiBweTNrCis4NzA2NCAyZjVjZDE4NjliMWE1ZjZjMWMzYzIxYjllMWM5NjFmMWY1MDVkNGVhIHB5M2sKKzg3MDY1IGVjNzlhYWY4YzBiZmMyYzBmM2YzZjk1OWM5NTUyOWQ5MmIzYmYzYjYgcHkzaworODcwNjYgODM1OGRjMTNhNTc0ODViMDg5OGU2Y2Y0YjcxYTFmMzZkNjQ2ZjU0MSBweTNrCis4NzA2NyAxY2NiYmRkYmVhODgxZTdiZTY4MzJhMjNmNmFiNDE3NWExY2I4ZmFkIHB5M2sKKzg3MDY4IDgzOTU1ZTQ2MWM0YmE3MzVhYWZiMzZjNDg2NTYzYzM0MmE2NjQ1Y2IgcHkzaworODcwNjkgNmZiNTY0MDRiNmJiMjNlZDUyNWFkZGRhNjJjZTRhY2I2OGYyMmVkZCBweTNrCis4NzA3MCA0ZDBiZmMzMDM3MjQ2NDkzMmU0OTJlZTU3MmZiMmZkNTRhYTc0ZjBkIHB5M2sKKzg3MDcxIGMzOGRhNGM1NDE4NGU4ZjA3YWY3Zjk5MzhmNGJjNjM0NzRjZjcyNTQgcHkzaworODcwNzIgMDczMTc2ZjAzODEzZjBlNGRhMzMzZjY5YmMwODA2N2JhZDFmNDk4MiBweTNrCis4NzA3MyA2OWE1MGJhNDRlNjViN2Y5Y2E2ZmQ1NjFlNTcxNzBiMDc0NDE3NDBiIHB5M2sKKzg3MDc0IDI4NWUwY2ZiZjkwZjMxMzg5ZjJiOTA5ZTk1MDViNmZiYjlmNzM5MDIgcHkzaworODcwNzUgNWMzYWM4Nzk1ZTljNGQ0MzczMzY1MmU3YTQxNGI3Y2EwMmFmOTIxYyBweTNrCis4NzA3NiA2ODFhOGU4OWM2NWM4MjM4YWRhZTZlNGFlN2VlNjYwNDQyZGM3MDhmIHB5M2sKKzg3MDc3IGIzNjdiNTMyYTgyMzM5YTRjNDMxMDQxY2UyODQ0ZjMzMDljODUyOWYgcHkzaworODcwNzggY2IzY2ViY2ViYTUwZmQyYWE3ZDgxNDVkMzY1NzYwN2FhZjRjMDg0ZSBweTNrCis4NzA3OSBiOGVlZDdhNTZhOGNlZTU0M2Q1MDVkMTZhNzE4NzBmOThmYTMwN2RiIHB5M2sKKzg3MDgwIDU5Zjk3MmIxZDU2NzAxZjE1ZmQ2YWQ4ZTJhNDMyNDg0NDk0MGQ3NzEgcHkzaworODcwODEgNTk3YzMwNjlhZmQzOTkxNzQ3MDEwYjI3ODViNzc1ZDgxNjJiMDllMCBweTNrCis4NzA4MiAzZjI0MjQ0YjEwZmQ4OGQ2ZmMzNGNiMjU4Nzg1N2Y4NzBkNjJjYzI0IHB5M2sKKzg3MDgzIDgxNzA1NTU0MTZhYzQ0ODgyM2UzOTgxNzQxNDBmOGI4OTIxYWIyMGUgcHkzaworODcwODQgNWYyODZiYTAxMzk2ZTczMzhlODcxZTU1ZTAwNmJmNTMxZWRjN2ZlYyBweTNrCis4NzA4NSA0OTY1YmU5MGZlMTk5YTgzMzcyZDY2MzUzOTkyNDAyZjZmZGVmNmVhIHB5M2sKKzg3MDg2IDkwMmRiNDcyMjU5NGMyZjkwNTVlNTcyZTNkNTI2NzI1NjU1OTczOTcgcHkzaworODcwODcgOTA3OWVjZDQzM2EyMjU4OTQ1NmE4NWE4OTAzODA1MDUxOWExN2ViMSBweTNrCis4NzA4OCBiNjM1Y2VhOTQxOTU3ODBjODcxNmUyMzY0NzlhZjMxOWJjYzI2MjUzIHB5M2sKKzg3MDg5IGY0NDhkZDZiNjdkYmMwZmU1NjkwMTVjZTZiZTUwNjRkYmM4YzNkNzkgcHkzaworODcwOTMgMDYyOTA3ZjY4NWFjNGU3MWZlNzE3YmEwYjE5M2FiYjQ2ZThmY2MxZiBweTNrCis4NzA5NCAyM2ZmNGEwYzM3NWIzMzMyYTk3ZTU3OTgwNThiYzM3MzRkZWZjYTAxIHB5M2sKKzg3MDk1IDFlNGE2ZTU1NzZhZjRlNDcwMmJhZGM4ZTBmYTdjZmFlNWZlMWFkNzYgcmVsZWFzZTMxLW1haW50Cis4NzA5NiAyNmVkZmIyN2EwY2U4ZTk0M2M1ZGM4ZDU2MDU1Y2RmNDc3NmM3M2JlIHJlbGVhc2UyNy1tYWludAorODcwOTcgMGFlMDdjYWFiNTA2ZmVmMTQ4MTE5YTFjNWQyY2U2OTAyYTA4ZDUyNyByZWxlYXNlMzEtbWFpbnQKKzg3MDk4IDI2YzY1OTM1NzFmMWZhZTdkMDIzNDNmMzYyZGIzZThhMDlmYjUzMDIgcmVsZWFzZTI3LW1haW50Cis4NzA5OSBlMTE1YjJiZmE5ZDdjNjUzOWQwZDgxZjZiNTVhM2VmNTI2ZWRjZjNjIHJlbGVhc2UzMS1tYWludAorODcxMDAgMTVhNzU3MGUzZmZkMDNkMjc2ZTBhYWRlYzIyNDgxOTc4M2UyNjZkZiByZWxlYXNlMjctbWFpbnQKKzg3MTAxIDMwZWFjYTQ3MzVjYjhjOGU2MWI1ZjkyZmJiYThlZDRhNGVmY2UyMTQgcHkzaworODcxMDIgYzQ4OThjZWY0NzE1ZjA4ZmU3M2JjMjdjNjkzYzRlYmYzNWY4MGRiYSBweTNrCis4NzEwMyAyN2Q2YWE0ZjE4MTExZjUyMzg4NDIwZWNmNTc3MGMzMzQ0ZWEwOTYxIHB5M2sKKzg3MTA0IDI1MTNkODkyYjI1NDE4YjVkMGFhMmFiZTU1M2JlOTM4NTU3NWMyMmMgcHkzaworODcxMDUgODY4ZDU2YWMxYzU5MDY2MjhmM2U4MTIyZDBlYzEzZWYzYTQ4ZWE5MyBweTNrCis4NzEwNiBjMjM0OWI2YmZmYWYyYTQ5ZDNhZjQzYjZmN2Y4MWRmOGZhNWU0YWZjIHB5M2sKKzg3MTA3IDRhOTRjMmRiZjllODRhNDUxZWZjNjZiYTM1YTRmNjcyNDUxZjBkMTUgcHkzaworODcxMDggODdmMjNjNzk0OWVlODEwOTMzZjk0MTdmYzVjOTQ2MmExOTVlZjdkZSBweTNrCis4NzEwOSBhMWYzNmI5MzczYmJhZjE5MWY1MWE4MzI5YzhlYjg0YTBkNmM3MGRhIHB5M2sKKzg3MTEwIDM5MDA5ODQxNDcxYjU5N2EzYjJiNzhlN2Y1ZTNmMDgzZTk5M2EyYTQgcHkzaworODcxMTEgNmVmMWFlYWU0MmJlYjZlYzg1MWVkZmIwMzFjYzIwNWM5ODExMTMyMCByZWxlYXNlMjctbWFpbnQKKzg3MTEyIDExZmM2YzM4MDhiNjQwNDdlYmVjMjRiMzI0MTU2YjdjMmNjNzFkOTAgcHkzaworODcxMTMgMmZiMWVjNWM3MzVlYjIwMzdhZmRkMTU2YmUwMTQ1ZjI0MGZjYmY0ZiBweTNrCis4NzExNCAxMjFlZDg0OGM2NzBiMmI1MmU2ZTI2ZGI4MzIxYmRmNDA3NTkxNzk5IHB5M2sKKzg3MTE1IDM5NmQ5ZmE0ZmEyNDMyYWZmODhmNWU0ZTdkZmE2Nzk2ZWM3ZTk1ZjQgcHkzaworODcxMTYgYWIxMzU1MzcwMmY1NWMyNWUxYjNiNjdiOWM5NTg0MGFlNGNlMmZhYyBweTNrCis4NzExNyA0MTdmOGNjY2QyMDg5YTY5OTg1NGY5OWJjY2JhMTk4MjMzM2MwMDYwIHB5M2sKKzg3MTE4IDUwZGU5ZjFhNmQ1NDcwM2U0OTk4YTc3NTQ4MDUwYjIxYjE4NzQ3NzggcHkzaworODcxMTkgNzg4OTg0YjdkYTZmMmVlZjE4MDQ5ZjA4OWM1MjRlZjg5OTAyOGNhYiBweTNrCis4NzEyMCBiZGVkMDY3ZjkxZThkZDhiNTdjYjZiNjMxZDg2MzYzMThjOWRmMzU0IHJlbGVhc2UzMS1tYWludAorODcxMjEgNzVjYWI2Y2Q5N2M2MzUyM2E0MzliMTIxOTUyN2ZiNWY0MzUxMmViYiByZWxlYXNlMjctbWFpbnQKKzg3MTIyIDc4NmZiZWQ3OGQ1N2Q3NzcyNTBjMjYwZTU3NDg4MDgzNDQ1NDZkOWQgcmVsZWFzZTI3LW1haW50Cis4NzEyMyBhYTMwYjE2ZDA3YmM0NTRmZmI2MjU1NjhhMWU0YTAxODE5YmYwM2E1IHJlbGVhc2UyNi1tYWludAorODcxMjQgZjRmNTZlZmEyODcwMjAxY2ZjZDUzNWUwNTM0YTc2OGI4NmU4NzkyNyBweTNrCis4NzEyNSA5ZTcyYjZkMGY0OGJhM2Y5MjU3YmZlNjJiYjc3NjI2MTY1MmIyNjczIHB5M2sKKzg3MTI2IDA4MjFlZjEyMmQ1MzFkY2UxYTc5M2YyNmZmNzZkMTQ5ZjQ4MWVjZjQgcHkzaworODcxMjcgYTQ2ZTE5ZTg2NjgwMTY1MzM5NjExYWFhZGU0N2IzMGIxZTA3NzJmMCBweTNrCis4NzEyOCBjNzE4Y2I3ODZhZWI1ZmM1ODAyOTdlZWNkZjIwNzJmMjg2NTVlZTg4IHB5M2sKKzg3MTI5IDMyNGQ5M2Q2ODUzMzFkZjZhZjk4Y2E4NGUzZjk3Zjk0ZGYwODJjNDMgcHkzaworODcxMzAgZDk0ZDM2NWQ3Y2U1ZWM2ZmIwNWU4Mjc0MDYwNDY2OTFlYTUwNmNmYiBweTNrCis4NzEzMSA1MjIwMTIyZTNlOWJjN2QzOWZlYTczNmQ5YzllNmJlMDk3ZjNiMzU1IHB5M2sKKzg3MTMyIDdiN2Y2ZWY0Zjk5YzdmZjYxMjQwMTUzZWY3YmM1Zjg2ZjM5OGRjNzAgcHkzaworODcxMzMgOTVhNzNlNGIyY2ViM2UwMjlmODZlM2E5MTRjYWVjNDNiOWM5Y2U2OCBweTNrCis4NzEzNCA0YzdlMzJlNTkyODg1N2Y4MDZiMTM0MWFkMmFmYmEwZjg5YWM4NzY2IHB5M2sKKzg3MTM1IDExMzkyNWI3OWI5N2IwM2M2ZWViNzRhYmViN2NhNDMwM2MyODIwMGIgcHkzaworODcxMzYgZDU3NTkxYmRmNjFlOGU5ODM2NTRlZGJkMjVjOWYzYjgwY2MxZmQ2YyBweTNrCis4NzEzNyA1MGQxNzBiYjcxYzc1MzE4NjE0NjdjY2M1NzVkMDRiOTY4MjNkNGU0IHB5M2sKKzg3MTM4IGI4NDI2MWJkNmQ0YTRlNmViMGJhNzc0MjE0ZDE0MmY0Y2FiYzUzYWQgcmVsZWFzZTI3LW1haW50Cis4NzEzOSBlMDA3MmJkZGQyZDU1NzAwYTM4Y2ZhYmVmNjdkYTk4YWE5NGJhZDBiIHJlbGVhc2UzMS1tYWludAorODcxNDAgOGQ0ZmVlZGVhYWVkMzQ1YTRmZjQ1YTMxMDVkMWY1MTI3NTVjMmI1NCBweTNrCis4NzE0MSAxNjliZjAxYmI1MDdlMDc4OTRhYTNkODMwM2RhMGZjNGQzOGUzN2FiIHB5M2sKKzg3MTQyIDIxZGY4MTU1Yzc3MGYzY2ZhNjY2OTQ0MDAxMmM5YTkxYzIyMTQwZmUgcmVsZWFzZTI3LW1haW50Cis4NzE0MyBmOGJlYTk5NjA0NjIxMThiYjYxYjMzZDBkNzM0N2JiNmJlOWRjYzIzIHJlbGVhc2UyNy1tYWludAorODcxNDQgODAwNTYzYWMwNTdlZGFlM2U2ZTI1MWU1ZTNiYzAzYTg4ZDljOWM5YiByZWxlYXNlMzEtbWFpbnQKKzg3MTQ1IGQyODEyNmViZDYwZDAyZGE5NzIyMzQ1ZDEyM2JjNjExNTY5MmY1YjYgcHkzaworODcxNDYgNmU5ZjM5N2JiYTAyNWUyYWIzZWUyMDZiMmM1NmU4MWFkY2I2MTg4MCBweTNrCis4NzE0NyBjNTM3YmQzN2Y1MDhhZjEzYzIxMjhmNDJkNTIxZWEyNTYwZWZhMjk4IHB5M2sKKzg3MTQ4IDFiNjU5YTAwNTcwYmRiNGI3ZGIwYTZlMzJmY2QwOTZjZGIzYmRjNTYgcHkzaworODcxNDkgNzQwMzAyYmIzYWRmYjM4NGI2NzY0NmI0MTY4YjlkYjQ3OWQ4MmU5OSBweTNrCis4NzE1MCBiYmNlNDJmNmRkN2RiYmYyNmE5NjEyZDMyMmVmNjNiM2JkZjI1NjgwIHB5M2sKKzg3MTUxIDNjNTg5Y2E0MWQzYTNkMWIxNjE1YTI2NjRjZWM4MzQwYmY4MzgzOTUgcHkzaworODcxNTIgMTQ4NmQzMTcxYzY4Njc4YWY1N2IxNjk1OTY3Zjc4NDJjMDQ5NmEyZiBweTNrCis4NzE1MyAzOGRjNDEzOTg1NGM4Y2I4YWI2YzdmYTQ4ZjQ5NjYxMzQ5NWM2NTdmIHB5M2sKKzg3MTU0IDljYjJlY2JiMWYwY2E5Yjc2ZTQyZjkyZWIyNTM3ZjI2NjgzYzllMzYgcHkzaworODcxNTUgOGMyNTRiNjRhNDM4MDRjZDI5MWY1Y2FiOWYzMzI3MTA3MTM0MDk1NSBweTNrCis4NzE1NiA4ZGUzMzU2Mjg1NWZhZjljYjk2YWM2M2Y4ZGY0MzM5Y2M4MTY4YzMwIHB5M2sKKzg3MTU3IGM4NmRjMmJkM2FlODEzMTNlNDdmYWM5M2YyMmFhNzRkM2ZhNmZkMjggcHkzaworODcxNTggNzRmZTczYzEwNjExZDIzZDFlMzhiNjM1NTlkZTVjYTA5OWI5ZDhjYiBweTNrCis4NzE1OSA3MzhlYWVlZDBiMWEyNDcyOWQxNjAyOWVkNmQ0N2YzNDZlMWQzNDhkIHB5M2sKKzg3MTYwIDRmODQ5NzIwYmY0MTM3MzBmNmRiY2U3YjIzY2U4M2Y0NWYxNzE1ZDAgcHkzaworODcxNjEgMDEzM2I4Y2I3ZDgwNmQzN2UzNTczM2Q3YjQ5ZTk2NTA2YzQ1ODhmNiBweTNrCis4NzE2MiAzMzBhOTg1MjM5NmRmODhlZmQ2Y2U5MmU1Y2MyOWMzODMwOTZjZGViIHJlbGVhc2UyNy1tYWludAorODcxNjMgNzI1M2JlOTZhMTllYmYxNjg4YTZlYmM3ZjQ4MDQzZWUyZTQ4YmU2NiByZWxlYXNlMzEtbWFpbnQKKzg3MTY0IGZhNTViMDNiZTU3NDAyZTE4OTRmNGRmYzYzOTFmNDc0ZmIzOTY2MDkgcmVsZWFzZTI3LW1haW50Cis4NzE2NSAwNGVkOWRiYzZlMDUxYzMwOWQ2OWU4YjhjMThiZDEwYzNkY2FmMGJkIHJlbGVhc2UzMS1tYWludAorODcxNjYgNzE0YjhlMWVmNzI2M2UyODA5YzlhZDlhNTNmMDU5OGIwODNhYTUxZCByZWxlYXNlMjctbWFpbnQKKzg3MTY3IGFjM2M1NTI3MWZkZDQyYTAxYzEzZTY0YmYzYWY2YzI4YmVjYmE3MWYgcmVsZWFzZTI3LW1haW50Cis4NzE2OCBhYTk5ZGM4ZjcwNWRmYmE5MmQ1NWZhYjY2NDgxZjRiYzBiYjdkYWY0IHJlbGVhc2UyNy1tYWludAorODcxNjkgMjA3ZWE5YTA1MDYyZjI0MmE3Mjc2MTUwMTZiMzRkOWQ5ZWI1MzU2MSByZWxlYXNlMjctbWFpbnQKKzg3MTcxIGQ2YzcwMmQ0MGZmYjJkZThlMWJmNDI3NTYyZjUwYzUxNzU1MGE3MmEgcHkzaworODcxNzIgMzUzMDc5YWY0ZjUyNzVjOTExOWQyM2ExNWE0OGMzMjRkNzE0ZDk2NSBweTNrCis4NzE3MyA3MDQzNmI0NmU0MzRkMmQ5MmU4NjQ4NzQ5NzFhMzNhZjBhNTRhZDRmIHB5M2sKKzg3MTc0IGIxYmRlZjU2OTY2ZWUxMzQ5ZmI2OTEzOGIxMTQzNjE0NjM1ODI1N2QgcHkzaworODcxNzUgOGQzOGM2YTI3MTgxYzFkMTU3ZDg2MDAxN2IzOTU0M2VmNjA2YTc1YyBweTNrCis4NzE3NiBhODExZjdjMTBlODI1MGZiNGUzNDQ4MWMxNjA0MTU2Y2YyMThjOGRlIHB5M2sKKzg3MTc3IGYyMmQ5MTMzMmRiOTRmNmEzZjYwYWRkMjhhOGZlODQzNDA2NGJlNDUgcHkzaworODcxNzggMzA2ZDg4YTMyMzU3MjNkMzUzZDVkMTI3Zjg1MzBkNmQ5NzZhMmVlNSByZWxlYXNlMzEtbWFpbnQKKzg3MTc5IGI5N2Q4NDNkNjQ1NjI5NmVhMTM3NDE4YTk1ZGJmOTY5ZGZlZmM2ZDcgcHkzaworODcxODAgMjYzYzk5OGIyZjQ1OWM4NzE1NjFlMjdkNDUwOWEzMmM0ZGMyMmY3MiBweTNrCis4NzE4MSAzYjYyODU1NGUxYWExNWUzZjgyY2E3NjFhNWZkOGNhM2FlMWUxMGMyIHB5M2sKKzg3MTgyIDYxMmRkNWYyYWFiMzFhNzZkYmU4YWU4OTFlM2I0MjUyODk2MWQ3NmQgcHkzaworODcxODMgY2UyODc3Njg3MzcwMDZlNTA5YjEwOWFjOTY0ZGE4MTcyYWU5MGViNyBweTNrCis4NzE4NCA1M2JkZjFjODE0ODZiY2VkYTFmNDU4OGY1ZGFiYjA5NjY5YmQ5YzA1IHB5M2sKKzg3MTg1IDJjZjdiYjJiYmZiOGVlZjdiNjk0MjRhNmY2MDQyNjA3NTk1Nzg3OTYgcHkzaworODcxODYgOTk5YjFhYTI0Njc4M2FlZjkwZTI2NzVhOGYzNzJhYjUwYWI4ZjFiZSBweTNrCis4NzE4NyAxNTUzMWNiZTNmNTVmZDNlY2YxZjBlNDczNGM5OGNjMDAyYTYwNDFhIHJlbGVhc2UzMS1tYWludAorODcxODggMGVhZGQxYjJkMjU4YzgwNDYyMjA3Yjk5NzM0YmMxZDYyYjM5Yzc4ZSBweTNrCis4NzE4OSA1YmZhNDM2YTI4N2JmMDQwNDcwYjJlNzhmZGFiN2VmZDMzMTVmOTQyIHB5M2sKKzg3MTkwIDdhY2EzMmEyODkwZWYyMDRhNjg4ZjA5YmU0YzUyMzhhYWM2MDA4ODkgcHkzaworODcxOTEgNjZkOWUzODgxNzYxMDIyYTI3N2E5ZGU4MjM0YWI0NTVkNTkwZTY5NiBweTNrCis4NzE5MiBkMDJlNzZkYWNlNWJmMTFlMzEzNzU3NTJlZjI0ZTg5MjhmMGUzNzE5IHB5M2sKKzg3MTkzIDU1NGYyNmNlMzNlMTk5OWNjZjkyNmMwYmJkNzJkODhhY2RhMjIyNTcgcHkzaworODcxOTQgMzI0MmZkMTc3MTY2NGViMDc0ZjA2NzhiMjUwYjU5ZWIzNGExY2I5MCBweTNrCis4NzE5NSBiNzQwNTFjYWQ3MTc4MjM3MDdlYTA0NzNhMGE4MGFkODgxYjFhYmIyIHJlbGVhc2UzMS1tYWludAorODcxOTYgYTkxYjMxNjhmY2UyOTgxZWJlMWY1NzMyNmI3MWVhNWJkZDE2NTZhMCByZWxlYXNlMjctbWFpbnQKKzg3MTk3IGNmZTdjYTFhN2JhYjI0NWY1OWNiZGZiMzM2MzVkYzM4MDY0MWY5MjIgcHkzaworODcxOTggZjMxMzBjMmM0NmY1YTRlZTQzYTFkM2RkMGM2YmViNWRiNmNiYTE4YSBweTNrCis4NzE5OSA5OWVjYTYyZDY5MTk5NGI2ODA2ZDllNDVlZDc2YmQ2YTJjYzg1ODk5IHJlbGVhc2UzMS1tYWludAorODcyMDAgODA4MTc2MmViNmQxYWVjMWFlNjA5NTE4NjhmODhkY2Y2YzJhYWE1NCByZWxlYXNlMzEtbWFpbnQKKzg3MjAxIDEwZWU0ZjMyYjkxYzQwMmM4NDdhMGY0NTU1NWE1MzcyMzNkZTBiMDMgcHkzaworODcyMDIgYjdjZmI1ZjBmYzU1YjM2NjM2NzA5Y2MxMDlkNzE1N2U5ZDZiNDdiZiBweTNrCis4NzIwMyBlZDJhYzIxMDg0ZjRkOTkzNjQyNTUxYTQzYTVjOGZjZWZhM2JlNzBiIHB5M2sKKzg3MjA0IDI4NzJmNDZlODE5NzBkNGEwNGM4ZTVjM2JiMGNlYjQzN2MyZDc4YzYgcHkzaworODcyMDUgNDcwODhlNWNiNDAxMzFmZWMzNGUzY2VhYTJjOGI2YzU3MmViMjIzZiBweTNrCis4NzIwNiBlYWI4ZjkxZjU3NTRkZDg3ZWQ4YmY3ZjY4ZGMyMTYwYzU5NDQ0NGRiIHB5M2sKKzg3MjA3IGRlMDVkODQ2Nzk1ZTRiNzc2MWEyMzJmMzczMDA5Y2Q2MjFlNmI1NGQgcHkzaworODcyMDggZmEzZDA3ODcyOTkzNDExMTBlNzE1MzNkYjNlOGNiZTZkMDY2ZjNiYiBweTNrCis4NzIwOSAwNjIwNmYwMDFiY2Q0YzcyMWUzMGJiMjZiMmE4M2U4ZmMxNDIzN2FkIHB5M2sKKzg3MjEwIGJjODgwOWIzZTRiZTdmNWYxYWYxODMzYmE1MDU0NjdhMzllMTI2N2MgcHkzaworODcyMTIgZjdlOWVhOGM2MWEwMjc3NzUzY2YyNjA2YzM3ZjAxYzFlNjU2M2JkMCBweTNrCis4NzIxMyA2NjhjNDIxOGFlMjZlNzM2ZmQyZjFkNzU1ZDA5YzMxMTdjM2YzNDRmIHB5M2sKKzg3MjE0IDRmODFiNWQzNTZjY2Q0NWY0ZmM5ZWVhY2JmN2JkMTU1YWI0NTZiZTMgcHkzaworODcyMTUgNzk0ZjU0YmI5NzEzODBjNDQzOGQ5ODU0MWI2YzdlYzJjNWFkNGViYSBweTNrCis4NzIxNiBmOGNmOTczMTRhZWVhZTM2MGY0Zjk5ZjI3NGFmNjE4MGNhN2QzN2JmIHB5M2sKKzg3MjE3IGMyODc3MTE3N2ZjNDA1ZmQwMmVhMzQ1YWE5NWIwYzQyNWEwYWZlZGIgcHkzaworODcyMTggMTkxMTYxOTFkNTJkOGFiM2Q5ZWZhNmJmZDU4NzI1NTI4ZTQ5MmU0NCByZWxlYXNlMzEtbWFpbnQKKzg3MjE5IGJhZjBkMTg5ZWQwNzM0Yjc0ZjJkMTQzM2U1ZTM5MDU0MDg4MzBkYjkgcmVsZWFzZTI3LW1haW50Cis4NzIyMCAxNmI2YWU3NWRlOTQ2ODIwM2NmMGUzODg4MjczNTcwMjliMTE4N2FhIHJlbGVhc2UyNy1tYWludAorODcyMjEgMTBiZmQzYzEyOWRhZTI3MWJhZDY3NmQ3NjJkZGVjZjRlNWYyZWIyZiBweTNrCis4NzIyMiAyNjJiYTBhYjRlMjFlZjFlNzljNjAyYzM2NmU4MDA4MDhmYTE1NzE0IHB5M2sKKzg3MjIzIDdmOGNkY2ZiYjA4ZTE4MzVmZGQ0MWQ4NzBkMWYzYzBlOWVhNWUyODcgcmVsZWFzZTMxLW1haW50Cis4NzIyNCBhYzhkYTU1Nzg0OTNjNGQ0YjAwOWI1OWViYTVmYmFkN2MwN2IzYzQ3IHJlbGVhc2UyNy1tYWludAorODcyMjUgYjA4NGI1MGU0YWE2ZGM5MTgzZGMwZTgyNzY0ODdkOTU3Njg4YjgyZCBweTNrCis4NzIyNiA3MWZiMDMyNzRhODljYzNhNjk3OWNjMTRkNzY3M2M3YTYxNTExNTRlIHJlbGVhc2UzMS1tYWludAorODcyMjcgOWFjODY5OWQ4OGQ2MWRiMzFkZGQ0ZWUzYjVhZGRlNDQ5NTMxM2FmZCByZWxlYXNlMjctbWFpbnQKKzg3MjI4IDZmNDZhZmM1MTQzNGNhODkxMDk2NzlhMWE4ZjI1NTIyYmIwYzY1YjkgcHkzaworODcyMjkgNTliNDNkYzM0MTU4NTI5YmEyMDhkZWRlYmRkNzNmZGNlMzgxYTc0ZCBweTNrCis4NzIzMCBkYTIwZTdhMDFmYTYzYTZkOGFiMzRmMjEwZGExMjhjZTQ0MTU2NGVlIHB5M2sKKzg3MjMxIDY5Yjg1OTY0ZWM4ODgzODAwOTE5NzlhMTc1ODA2N2IwNGZmMzc2NzAgcmVsZWFzZTMxLW1haW50Cis4NzIzMiA4Y2NmNThiMGE1ZGE3NzYwMDZkN2ZjOThkOWU2OTc1YzgyMjY1YTc4IHJlbGVhc2UyNy1tYWludAorODcyMzMgNzY3NDIwODA4YTYyYWVmYTMxYjRjYWFkMWY2MzAxNGE1ZWI3ZmMwYSBweTNrCis4NzIzNCAwNzJlZTNmNzQzYzIxZjM3NzBjY2YxM2FkNDhlMTBhMTgwNDgwNjNmIHJlbGVhc2UyNy1tYWludAorODcyMzUgYjA2NmJkMGI2NGU3Y2Y2ODQyZjg4ZDk4NmZjOWMyOWQ3YzM1MmI0MyByZWxlYXNlMzEtbWFpbnQKKzg3MjM2IDEyMzgxZjE5ZTJhZGZjOGYxNjg1MGU5YzY1YzZjYTY3MTY3MDI4YzEgcHkzaworODcyMzcgMzExMGQ0YTQ4ODc4YjRkNTE3YzIwMzAyNGI3NmEwYzY3Yzg3ZmM0MCByZWxlYXNlMzEtbWFpbnQKKzg3MjM4IGYzYWQ1MmY2NmI4YTQyYTU3OTM5MzJjNzIyZDA0OWY4OWMyNmVkYzggcHkzaworODcyMzkgNmFmYmU0NjEyZDQ5NDNiZjdkZDNiNWQ0ODViN2I0ZTI3OGM1NTk5NCByZWxlYXNlMzEtbWFpbnQKKzg3MjQwIDc5YTJiNmExMjgwNTExZGZiZjNiODg1ZmEwMGFlODY3MDg0MDgwMTEgcmVsZWFzZTI3LW1haW50Cis4NzI0MSBkMThmNDMxM2IxOTdlNTZiMmIyMjFkNDM4MTY4MjgzYjNjZGYwYmE4IHB5M2sKKzg3MjQyIDc4M2YzMTFjYTg2OTNjZWUwMzJkZmRkNDc5ZGE1ZTYxYjA1MWRhNWUgcmVsZWFzZTMxLW1haW50Cis4NzI0MyA4ZDcxNzFiM2NkZDY5YTczODc4ZWFjMDk0MDg5ZDBlN2ViMzRkZDUwIHJlbGVhc2UyNy1tYWludAorODcyNDUgZTE1NjUxOWExYzYwMzc0NGY3MTcyZWVjN2Q3Nzg0NDllMmNkODkxNSBweTNrCis4NzI0NiAzOGFhYTcyYzAxMzFhOTU2OTI4MDE2NjE1MzIwMDcxODkwMDVmMmY4IHB5M2sKKzg3MjQ3IGQ2Y2NiZDNmNWI0NTUxY2U0ZmUyZDNkMGYwMzRhNzZlOTY3MmRmZjYgcHkzaworODcyNDggNDBmNTQzNjM2ODQ2Yzc4YjZjMGJjNjE0OTZiZjYxODQyMWUxYTMwMiBweTNrCis4NzI0OSBmOWQwOTU1OTZlYTk2NDAxZGQ5MjA5MmE1OGY5ZTlhOTQwM2U3MDVhIHJlbGVhc2UzMS1tYWludAorODcyNTAgZDcwOWQxMTRjZGUzYzA1YzRhMDc0NTZkY2NiY2QyNWFiNWNhMGM0NiByZWxlYXNlMjctbWFpbnQKKzg3MjUxIDUzMWY0MjNiMDE5ZDMxZjUxZTBhZGM0OWE2ODBkYmExOWZiZTI2NmEgcHkzaworODcyNTIgN2MzNzE1YjEwY2RkNDViZTJiZWY2YjIwMjhkMzA5ZGM0N2IxNWViZSByZWxlYXNlMzEtbWFpbnQKKzg3MjU1IDRlZTQwODZkZDFiNzQwNWQwYmMyODg4ODk3NDYxZDZmNTdjZDFkYWEgcmVsZWFzZTI3LW1haW50Cis4NzI1NiBhNjE1NDQ3NzhmYTc0MWM5ODU1ZjkxNWE3YmNhNzZlOTQ0ODNhMjgzIHB5M2sKKzg3MjU4IDFjMDI3YTA4M2E2ZTkwYjdiMzlmYjcxZDc2MjdiN2RkODZhMWRkMGEgcHkzaworODcyNjAgOGU3MDFiZmZlNmUyYzBiMmUzN2E4MTlkZTJmMDdjM2NlYWRlNzgwZCBweTNrCis4NzI2MSAxNzg1OGFiMmNkOTJhNDgwOTg2NDljMDQ1YjQ1OGNmNjcyOTRhZDZiIHB5M2sKKzg3MjYyIGNmYjdmNjMyMmZiYmJhYWJmZGQ5ZWI3ZDkyM2UwY2JhMGUyM2M3MGUgcHkzaworODcyNjMgNzlhOTBmYTA3OWE4YmYxODAyN2QxNTI3ZmUxNmJiYzQ4ODkxYTk0ZiBweTNrCis4NzI2NCBhYTQyOGFhOWI2OGIyYTcyMjc3NTYxNzVjMjAxMjQ3NmI0YTc0ODk4IHB5M2sKKzg3MjY1IDQwMTI1Y2RkYWZiOTA1MjlkMTJlZDA1ZDkxZmIzNDNkYTk5NmFiNWQgcHkzaworODcyNjYgYTk2YTJiY2NkZjhhMjdhMTIzYzY3NzZlYzIxMzI2OWViZmE4MzJlMiBweTNrCis4NzI2NyAwMTlhZDlmMzJjMTNlOGFiYWEyNzBkZjExMDg1Y2RlZWU0Mzc1ZWUwIHB5M2sKKzg3MjY4IDQ3MTYzMDg0MDQyNjNlYjE5YzUyY2UyOTZhOGE0NjgwMDYxNTE5Y2EgcHkzaworODcyNjkgYWZlNWY2YjFjNzY2Nzc3MWMxYTgyOGQ5NzdiMmVmYTg0NzZjZTAxZCBweTNrCis4NzI3MCAyM2RkYmQ4MzU5NTBiODljMTk4ZDY2MDk1ODIxMmUzZTUwZGYyOTUxIHB5M2sKKzg3MjcxIGEwZmNhZDkwNzBhZDFjN2M5YmMxMjJjNDZhZWJiMWFkNDY4YTU0MjQgcHkzaworODcyNzIgNmRhMzdjMzRmOGEzMDMyNDBlOGJkYmY1MWExN2IxZWJiY2JhYTNhMSBweTNrCis4NzI3MyBiNTgwOTI3ODcyMTM3NzQ0YjE5YWNmOGYyZjNiOTYzY2JlZmJhZWQyIHB5M2sKKzg3Mjc0IDRkY2VjMTQ2Yjk5ZDQ2ZWVlNDVjNDUxN2M4NGQzYmE1YzkwN2YwMzggcHkzaworODcyNzUgYTI4ZTg3MjExMTdjMjZjNDc4NjM3ZjdkY2ZkOTE2NWI2MjlmZWRlNCBweTNrCis4NzI3NiA5YTJlNTZkMTE0NmRmMjgzMGM5ZjY3ODRmYWJiYTQ0NThkNDY2ODU4IHB5M2sKKzg3Mjc3IDJkMjk5N2YxOWU5MGM1OTg2YTRiMjg5Njc4NDQ5NzQ5OGY4NmE1ZTYgcHkzaworODcyNzggMjYxMzE4M2VjMDI1MWIwYzg3YWYzYTBiODY4ZmM5NDM4ODUzZmNkNSByZWxlYXNlMzEtbWFpbnQKKzg3Mjc5IDViNDQwNTkyNDdkYjYyYmE4OGY1ZDc1YzMwY2YzMDlkNmY5YzVhNWQgcmVsZWFzZTI3LW1haW50Cis4NzI4MCAwMGY3ZjUxY2U4YmE1OTQ3YjEyMjU1OWY2NmExNzc1ZThhZmU2NDgyIHB5M2sKKzg3MjgxIGZmMDdhMDZmNmQ2NWQwYTMwMTY3ZTkxZmIyNjdhMjc5MGE0YzliZmYgcmVsZWFzZTMxLW1haW50Cis4NzI4MiAzYjVjYzY2MzhmM2QxMGQ0ODE2NWQ0MGJmNDMxYWQxZmUwZjhiNjEzIHJlbGVhc2UyNy1tYWludAorODcyODMgNWVjMmMyYmZhZGVkNTIzMTBkYjEyZjJhYzA4ODM1OTc3MGJkMDU3OSBweTNrCis4NzI4NCA5Y2MxOTc4ZWM5ZDQ5OGM0OTEyMzNmN2E1ZGMxZjRlNmVlMDA5Y2VkIHB5M2sKKzg3Mjg1IDliMTU5NGMxNTQ0YjdlY2M4NzQzNDY2ZTcxYzA3NDIzMTYzMzEzYTUgcmVsZWFzZTMxLW1haW50Cis4NzI4NyA4MGUzYWQ1YTYzMWQ1NzUzYTMwZDcwZGI5ZmMzYjIxNzZjMjkyNDNmIHJlbGVhc2UyNy1tYWludAorODcyODggNGFlMmMyMTExNmYxZGYzZGRhOGRjMzA2MGY5NGVhYjc4M2VhZDA5OCBweTNrCis4NzI4OSA3ZjU0OTkwOGJmNTAzMmE5ZmE0MDJkN2M4MmFkNmQxY2U2ZGZjYzlmIHB5M2sKKzg3MjkwIGE1MWE0ZjVlODdlNDllMjNiMDg2NTU2MGFjYWRiNTllMjUzYmI1MWMgcmVsZWFzZTMxLW1haW50Cis4NzI5MSA1Njk5OTQ5NWE5YmFjNWJiNDViNTcyNzM0MTI4N2MxMWU2MTJlZDcxIHJlbGVhc2UyNy1tYWludAorODcyOTIgYjc1MGM0NWE3NzJjZThiZDk2MWUxNTYzYjdhNDUwNDM2NjhmMjY2NCBweTNrCis4NzI5MyBmNTljZGE1N2E3ZmE4MzM5NDA4MmU3MGZhNWRlOWQzN2JkMWViNjRhIHB5M2sKKzg3Mjk0IGFkOWI1YzVkMjgzMWY0YmQwMjVlYzE2ZTZjNGYzNDlkYzQwZjliYWUgcHkzaworODcyOTUgZDJkNTI2ZGIyNzczNmFjYmJlNDBhODdkMjhjMWIzZjMxNWY5NWNhYiBweTNrCis4NzI5NiBjYTdhNWQxMjdkNTdjZGQ0YWU2MzYxNTllYzg1NzZlMDA5Y2NlMTlhIHB5M2sKKzg3Mjk3IGVjZDI4ZTg0YzQ0YjBmNGM0ZTc3Yzk2YjUyOTcwZGE4ODBhZmQ0NDggcHkzaworODcyOTggOWMxZmNlZGVmMmMxOWQ1ZjVmOTljNzExYzBhZWM2MTYxNDFiNDU4OCBweTNrCis4NzI5OSAzZGU2Y2Q5MDI2MjRjN2I5MDhmMGUwYmFmMGE1ODRlN2Q3MmMyZDUzIHB5M2sKKzg3MzAwIDNmMTc1MmQ0MjUzYmIxM2ZkOWExOWFmNTNhMTA3NWJkMTliZDZhNTkgcHkzaworODczMDEgMWFhNGU1Y2E5MTc0MjE3NDM3ZTE5ZGNhOTU2ODU0ZmUxNmM5YTkxZSBweTNrCis4NzMwMiBkZTViOTBkYWFiYjQyZTEyMTQ3Yjk5MzEwNjg1NzNiYzFmZDVjMjlmIHB5M2sKKzg3MzAzIGUwOGMyMGE2N2Y2NDdmZWFkODc4ZjMyMzdkODcxMDI3NjU4OWI1NmIgcHkzaworODczMDQgYTYxODI4N2VhZmQ2NThiMTlmOGIwZTY4ODE3NjNiMTMxNTFmMDIyNiBweTNrCis4NzMwNSAwMDM3ZDY1ZGViZDhkOThjOWU0MTI3ZTdhMDA5ZmFmZjMwYTlhMjIwIHJlbGVhc2UzMS1tYWludAorODczMDYgN2U4ZWI2MzRmMGE5MWM1NDdlODdlZjI3NGIyMDkyYmNmZDAwYzBlMSBweTNrCis4NzMwNyAyYWEwNTBhNDRhYTgxZjQ2NTBhNzVlZDcwYTMxZGIzMGMxOGNmYjdjIHJlbGVhc2UzMS1tYWludAorODczMDggNTllMjMwMjk3YmZmYWRkZDRkMzZkM2VjOTliZjBiYWNiYjYyOWI0YyByZWxlYXNlMjctbWFpbnQKKzg3MzEwIGQ4NGVjODU2MDBiMWE5ODA0ZDZiNTRlOTUyZDU4MDVjNjlkMDgyNjYgcmVsZWFzZTI3LW1haW50Cis4NzMxMSBmZDcyNjE0YjkwMzIxMDFhNTdhNDNhNGIwMGY3OTMwZDc5MTI4MTg3IHJlbGVhc2UyNy1tYWludAorODczMTIgNGMwNjE5YjgzMmUxYmNlM2UyNzZjM2NiMGZhMjRmN2U0NzJhNDQ4OSBweTNrCis4NzMxMyBkOWI0NDI2NDc5YWM2MTc4ZWU3YmU1ZjdiMDIwYWUwM2FlMjgzZWM3IHJlbGVhc2UzMS1tYWludAorODczMTQgYzY4ODNlYzQ4ODgwNDJiM2Y4MzAyZDgxMDZlY2JlM2E4ZGE1OWFmNyByZWxlYXNlMjctbWFpbnQKKzg3MzE1IDViOTJmYjAyZTgzYmM1ZmM5Yjg3MDViN2I2ZjA3YzBlMjBhMTE3ZmMgcHkzaworODczMTYgYWI2NTAwMzM0NmMxMWExNTFjNTJiMGQ3YzJhNDg3MDI5ODAyNzJhZSBweTNrCis4NzMxNyA0MzZiYmM3ZjBhYTY4YWE3NTY1OTVhMDY1NmEyY2Q0ZDA4ZGYwN2U4IHB5M2sKKzg3MzE4IGRjMzI3ODhmMGU0ZTMyNThiYmQ5OWU1NGY3ZDVhMTZkOTBmOTNjN2QgcmVsZWFzZTMxLW1haW50Cis4NzMxOSBmYzJmMGM4NmI0OTdjYjkzOGQ1NGJkMGNiY2EwODZmNTVlODNlZWE0IHJlbGVhc2UzMS1tYWludAorODczMjAgMmM0MjlkOGM1ZWUyMDJhMzcyMzgwM2Q2Mzc3Y2ZmNTg0NmI2MGQxMSByZWxlYXNlMjctbWFpbnQKKzg3MzIxIDg1YzJmZTMxYjExZWMwOTg0NmRlY2VkYmM4NWQzZDY2ODdkZTc0OGYgcmVsZWFzZTMxLW1haW50Cis4NzMyMiA0ZDJiNDI4ZDc4ODIyNThhNDFhNDc0YjhmYjNmMjc2MWMwMGZiMmEyIHJlbGVhc2UyNy1tYWludAorODczMjMgZTlkOTI0ZmUzN2UwM2EzMDVlNmE2ZWNlMmI1NjhkMmZjZjU4Y2QzNSBweTNrCis4NzMyNCBlYThmOTRjZTgyOTMyNjk2ZGUyZWNlYzM2ZjJkMmFjZDU1MGYwM2U3IHB5M2sKKzg3MzI1IGFlZDJiYmFmYTU1MGU5ZGZkZjQxZDMyMjg1N2YwMjRiNzViNGM3NmQgcmVsZWFzZTMxLW1haW50Cis4NzMyNiAyMzkxY2UzNWFkNjk3ZjJiMjY0MzcwNjNkZWY5ZDg1YTk1ODYxNmRjIHJlbGVhc2UyNy1tYWludAorODczMjcgOWJmZDZhYmYwMWNhMjljZGU0ZmJlZWM5MGY4ZTI0ODc5N2FhN2Y3NyBweTNrCis4NzMyOCAwNzRjMjE3MTRhMDI3OGU0ODI5MzQ5NWMzOTk0NDFlMDU1ZTQyMTJiIHB5M2sKKzg3MzI5IDBjMmE3ZTU3ODVjODYxMTJjY2RhYTVlMjk4YmM2MmQxMTk5ODI5OTcgcHkzaworODczMzAgN2E1NWI4MDhlNDkxYzEwMjc2NjIwMTE1NDI0YTI2ZDllMjJjZTczMyByZWxlYXNlMzEtbWFpbnQKKzg3MzMxIDY5YjNhMTUxYWVjNTc0MzIxOTNkMzZlZWI5ZmYzNGNlMzliZThlNTUgcmVsZWFzZTI3LW1haW50Cis4NzMzNyAwNzExM2QxZWY4ZTUxYTUyZmQ1NDdkZGE2NzEwZjE1YTYzMjAzODI5IHB5M2sKKzg3MzM4IDYxOTM1YzhkYzA5ZTBkYjVjOTY2MjY1ZGZiODA5NDQ1N2Y1YTVlNzUgcHkzaworODczMzkgMDE2YjQyNWYwY2QwY2U0NGViMzRmYzM3NTYzZGZmMGM5YmJmMjI0YiBweTNrCis4NzM0MCBiNmQzZmU3MDgwMmYzMjkwZDYzYWRiNWI5OGZjYTdiNGU0MDcxZmRjIHB5M2sKKzg3MzQxIDVhNmExY2EyNGUwNGNmYWExNWY3NzEzYmI3NzQxM2I5ZjUxMzk0ZDUgcHkzaworODczNDIgYzcwYWEwMTFjMDU5ODVlNDYyZWJkZDQ2ZmUxOWY0MjBjNDZjYWY1YiByZWxlYXNlMzEtbWFpbnQKKzg3MzQzIDM0MWI5M2Q4MzE1NzFkODQ4YWNhZTZkYjE4M2U3NGRhZWUwYjY0MjMgcmVsZWFzZTI3LW1haW50Cis4NzM0NCAyMmRiNGQyZjY1NTQ5ODk5OWRhNTI4ZWZjM2NiMzlkMDQ1YTI1YjA3IHB5M2sKKzg3MzQ1IDA1NTBhMjQ0N2MxZTYzMWEwMzlhNzQ4Y2Y5Y2U5N2I2MDc5YmE0OWEgcHkzaworODczNDYgM2EyOTUzZTIxZjc4NTczNDY4N2YxZDdjOTUzOGEyMWNlZjNlNTQ2YyBweTNrCis4NzM0OCA1YmJmNWI2ZDM2NTgwNTI1YzQ3YTVjN2JiNzNhMWUwY2E3MmI4NzI1IHB5M2sKKzg3MzQ5IGFjOGM2YzdjMGNiMzU2NzU0ZDlhOTQxNzVkZjA0OTc0MWY3OTVkZWEgcmVsZWFzZTI3LW1haW50Cis4NzM1MCA4OTIyMzYxMzdkYjk2MTgxMmI0OWVhOWNmY2Y1YzBlMWIxNTk4ZWU5IHB5M2sKKzg3MzUxIDQzYmM1OTIyZjI5OTA2NDVjNTEzNWZlNjNlNjA2MmY5MTY5ZTdlMmQgcHkzaworODczNTIgNjFiYzg2MjY2N2U2ZTNkOWYzYjEzYTU1MWM0MjE1MmMwM2RjYjlkNyBweTNrCis4NzM1MyAyNmMwZjc2OWU5YjQ3MWQxYjkwYjc3NTlhNmJiN2I1OWYwZDc1YTExIHB5M2sKKzg3MzU0IDI4NzE3ZGU0YzU2MmNjM2E5ZDFhZjNkOTc2N2Y2YzA4ZWQ5NGY1NGIgcHkzaworODczNTUgNDA5YmEyNTA4NzEyMjg4NGVhMDY2ZjhlMjM3NWYxYmMzYjk2Nzk4MiBweTNrCis4NzM1NiBhNWVkNGExMjQzMGFhN2IxZGY4N2QzYzU4NTBlYzA4N2RiMTQzYWUzIHB5M2sKKzg3MzU3IDg4NGIxNGVkOGY1NDNkZDc2YTEwNzQ1NThjOGE2YjE0N2MzNzJhZWUgcmVsZWFzZTMxLW1haW50Cis4NzM1OCA2OGE0MmI5NDRmZTM5OGFhNmI0OTQ0YmNjOWMwZDIyNTA3NDlkMGRlIHJlbGVhc2UyNy1tYWludAorODczNTkgY2QyN2MzYzQ0MjM0YWZlZTVhNTQyYjE4Y2Y0Yjc3OGE5ODM4Y2E0ZCBweTNrCis4NzM2MCBhMGE5OTVlMGU2NDAxOWY2YzBiODYxNTI5OTk5ZmE4OGY1MmQxNmEwIHB5M2sKKzg3MzYxIDc4YzE1MjI4OGY1M2E4ZmQzM2MzZjZlNDQzNjllZTJjOTgwYjRkOTcgcHkzaworODczNjIgNGMwNDI2MjYxMTQ4MzFmNzFkZDcwY2QyNDNiZTU0Yzg3MjIwOGJiMSBweTNrCis4NzM2MyBiZjM2ZDZiZGRlNjBiNGFmMDUwYjNlNWQ5YTRjYmE3YzIwNWVjNWNhIHB5M2sKKzg3MzY0IDljZjE1MTJmODgxMmMyMDAxZTBlNzUxZDZmOTJjZGM1YTIwZmY2YWUgcHkzaworODczNjUgYzdhMDUzN2M3ZjNjMjg2NzA4ZTVmYjI0ZGJiYjk5ZWI3M2Q4MjI4NiBweTNrCis4NzM2NiBhMDY2NDdmZjVkOTgxOGUxZmQxOWY1MDA2YzU0OTAyMDk5NGNlNzk1IHB5M2sKKzg3MzY3IGU2NWNkMjFkNWY3MzE0ZWU3YTUxMDg0NDFjYTk2NDdhNDViYWJmZTAgcHkzaworODczNjggZmU3YThhMWJkZjNkNmJjNzIxMDMwMjYyNjJlYWFmNzYzMzg3NjVhZCBweTNrCis4NzM2OSA3MmY1MzZkMTA3NTBmNGI4ZjE0ZDNmYzQ0Y2JiMzFmOTAwNGZjZWFiIHJlbGVhc2UyNy1tYWludAorODczNzAgNmZlOTRmYzAyZmM3NThkMzBlZDc0ZTVjODExM2UyZjY3NWM5MTJjZiByZWxlYXNlMzEtbWFpbnQKKzg3MzcxIDdhYzAzZWMzYjI3OGI5NWQ5NWIzNTliNmFjMDk3MjdiZmFhMWMwYWEgcHkzaworODczNzIgOGFkYjc1YzY5MzA0NzI4NzRiYTEzNTYxMGYzNmIyNWYyNDA0NjRmYiBweTNrCis4NzM3MyAwYjk0NjM1ZWQyZjZmYTg5MzkzMzljNDI2Mjg0NDBhMzM2MzY2NDE1IHB5M2sKKzg3Mzc0IDQ0MDEwMDM5YmRkZmE2OTlkNDhhZmFkNzVhNzVmNjgwYzM1YWI1YjkgcHkzaworODczNzUgMzgxNTU2MzY5Y2FmNmEyZWYzNGRlM2IzYmE5MDc5MTZhY2I2NWJiMyByZWxlYXNlMzEtbWFpbnQKKzg3Mzc2IDVmNDlkM2NiMTk0Zjk3MGQ1MTE5OWQxYzM5ZjMzOWU2ZGRlMGY4YjggcmVsZWFzZTI3LW1haW50Cis4NzM3NyA3MzY5NjRmNzA4ZGVjMjM4ZmM1MWEwNzNmMGNhOWFkZTA0NTAzOGIyIHB5M2sKKzg3Mzc4IDI5ZGI5N2MxNzZjOWNkOWQwMTUwMWEyZmEyNDc0YmY0YTk4Njg3M2MgcHkzaworODczNzkgNTE1ZGUyMjc3MDAxODRkMTNlNzRkMTlhNmE5YjcwZTU4YjU2YzJkMyByZWxlYXNlMzEtbWFpbnQKKzg3MzgwIDdhNDg1OTBhZmQ5MmU0YmY4ZjJhODFjNThlZDg0OThjNDdkYzg0MWQgcmVsZWFzZTI3LW1haW50Cis4NzM4MSBjMmQ1Y2QwMzJiYzkxNjFmOTQyNWJjOTQxYjljYWQyNGVjZGE2OTk2IHB5M2sKKzg3MzgyIDNjMTgyZjcxZDRjOWM1NjYwN2VhYWZlN2M0YjY1NTdhMGZmZTM5N2UgcmVsZWFzZTMxLW1haW50Cis4NzM4MyA5NjUzMTRmMTJmNzE5ZGI5YzNlZmE1MjIwYWY2NGZiZWQ0YjUxZmMwIHJlbGVhc2UyNy1tYWludAorODczODQgOTM4NWM1MzZmNDU0ODAyNzk3MTJlZGFjODZiYmQ2M2I4ODc2Mjg1NiBweTNrCis4NzM4NSBlZTliZGFjZDNjYjYxMDA5OTk3OWI5YzcwYmJlMWRkZjc2MTEyMzMwIHJlbGVhc2UzMS1tYWludAorODczODYgMGFmOTRmOTc2ZDUwMThmZDJjNWIwNmJjZjViODQ5NGY5MzEyODZkYiByZWxlYXNlMjctbWFpbnQKKzg3Mzg3IGRhZTUxNzZkN2I3ZjMwMGMyMmUxYjAwZDYxOTI4YmE0MjdjNDlhYWUgcmVsZWFzZTMxLW1haW50Cis4NzM4OCBkMTZhZGQ1NmRhYzAzNGI5ZWNjZGEwYzhjYTY3YmVlZjlkMTA0YjE2IHJlbGVhc2UyNy1tYWludAorODczODkgNTUyYmFjNzU1OGU3NzkyYjBiNDFiMTdlNjhmOTgwN2Q5ZTViYTQ1MiBweTNrCis4NzM5MCA0ZTIyMjAyZTYyZjgzY2QxMjMwYTJhMGMzZDNkZDE4MzI3YzIwOTg3IHB5M2sKKzg3MzkxIDlmYjg5ZmFhNTk1ODMzYTIwMDQ5ZDM3M2M1ZDJiOTRmYmNlY2MzYzMgcHkzaworODczOTIgNGUyYjg2MGU2NTdjOWFiYjQyZGJjMzVjMjQzN2U3NjIyNTA2NjJjMCBweTNrCis4NzM5MyBlNThmYTk4M2E5NGVmOGNmYzBhYjI1MWViOTZlZmEyMDE5NDFlZGNkIHB5M2sKKzg3Mzk0IDRmYWZlOTdkMGFkYmE2ZjA0MDMyOTIyZDUwZTA0N2VjMzBhZWJjNDMgcHkzaworODczOTUgNWI4MDI2ZmFhMGE3M2Q2MTc5MTU3NmY3YjVmNDdlYzg1MDEwNjJlZSBweTNrCis4NzM5NiAxM2I0YTBmNTJjMmMyY2JmNGRkNmQ2ZDMyZmNhZmZjNDI4Y2I2NTc1IHB5M2sKKzg3Mzk3IDdjMzBkMGYxMDI4YzRkMzc1NDZiNjUxODk1NTA2YmYyZTM4YjUzOGYgcHkzaworODczOTggNDdjYzQ4OTY1ZTUyNTM0OGJmZGJjNDRhYTkwY2MyZTRjMmZjYzE5MSBweTNrCis4NzM5OSA2ZjU2YjI0N2E3Y2QyODIzM2NiMDg3NTdmYTI4NGMzODAxZDMzN2Y5IHB5M2sKKzg3NDAwIGUzYWY1ZjNhNzkwNGMwZDUzNDNlYzk2MzNlYTY2ZTdhY2ZkMjNhNjYgcHkzaworODc0MDEgOWIyNjI0ODgzMGY2NWNhNjFkZThkNzYyYTFiZmZiYzk3NjBhNmJmYiBweTNrCis4NzQwMiBmYzk2YmQxOGJkYzYxYzU4OTI0MjAzMDAxNmRiMTA2YTA4YTQzMjg1IHB5M2sKKzg3NDAzIDZkNTYyN2EwNjY3NzhkZGQ5YjFlYjY2NTM3NmRkMmVjNGJhMjVlN2MgcHkzaworODc0MDUgM2Q4NmNkOWZjNTM0YWVmYWFmNTczNmNiZDQzYWVmOTg2YTg5Yzk0NSByZWxlYXNlMjctbWFpbnQKKzg3NDA2IDBjNGFmYzVmNTkzOGUyN2JlOTUwMjEzYjlhNTliYzkyZmVjNGRiYzUgcmVsZWFzZTI3LW1haW50Cis4NzQwNyA0N2RiZjNlYzFhZDdkODI5ZDE2ZDM4NDM4OGMyOWFiMzE3ZjNkNDJkIHJlbGVhc2UyNy1tYWludAorODc0MDggMjQ4OTRmYTdjNThjNTBjNWJmYTY4Yjc5N2U2OTIzZDEzZjVkMDE5MyBweTNrCis4NzQwOSA1MTc5NGFkYTY4MTBhZjQ5OGQ1NzIxYzQzNTZkMjZhMzA0YjI4MTdkIHJlbGVhc2UyNy1tYWludAorODc0MTAgMjJhMGVhN2Q5NzRlYjZkMjM2YmFhYTM5NDQ2MTQwZmFhOTdjOTAyOSByZWxlYXNlMzEtbWFpbnQKKzg3NDExIGY1NjdhNmM4NTkzNjQ1ZDg3NzY3MzRmMzViMzIzZWFlOGI2YzNiMzQgcHkzaworODc0MTIgZmNhYTk4N2NjZWEwMjA2MjdjNGYwZjc5NzY1NjcyMmYxYWZlMDU2MSByZWxlYXNlMzEtbWFpbnQKKzg3NDEzIDM2NzE5OGI3MzNjZGJiNDI2NmZhMTQxMzhmYmM4MDM2YjYzYTEwMjQgcmVsZWFzZTI3LW1haW50Cis4NzQxNCBiMTY4YjJjYzFiMjFkMmUyNDNhOGE2Y2U5MTE3ZWI2NWM2M2EzM2RmIHJlbGVhc2UyNy1tYWludAorODc0MTUgODE1YjY5MTc1NWZhMGJmYzI0NGIzNTI1NTkyMWQyNjVlN2Y0M2ZmOCBweTNrCis4NzQxNiA4Njg1NzExNTg2ZDQzMWVjNmJkNWQzNWMwN2YwMTRjYWNmMGFlNmI0IHJlbGVhc2UzMS1tYWludAorODc0MTcgNTY0YTQxNjY2ZWY2ZjRiMTYyNWM3NmRmNTJkNjFhMWVhYTNhMTk0OSByZWxlYXNlMjctbWFpbnQKKzg3NDE4IDhiNTNmMjU2MTU5YWEzYWFiODQwYWQ4ZDMzZTQzMmEyZjYyOTE1YTYgcHkzaworODc0MTkgNTJkMjljNzE1OGZlMjA3OTJhMzMxNDk2NzY0NWU3NzQ5MDMwNWIxZSByZWxlYXNlMzEtbWFpbnQKKzg3NDIwIGNkMWRlZTU1YWNlODRlZTY5Yzk2YWVjMTRjYjllMzU5OWQwNDY0ZjAgcmVsZWFzZTI3LW1haW50Cis4NzQyMSAyMDRiZjQzM2QzNjZhMzA3ZTQ2ZDlmYmNjMjk1M2Y3ZTJjM2RjMmQ5IHB5M2sKKzg3NDIyIDA5OGM5N2U5NWQ5MzE5ZjVjNzZlYjM4ZDZiODVlZDE0MjkzNjRlMDAgcmVsZWFzZTMxLW1haW50Cis4NzQyMyAwZGFmMzkxYTFmMWRmODY4ZDcwMGY0OWQ3N2ZlYmFkOWQzYmEwYzIxIHJlbGVhc2UyNy1tYWludAorODc0MjQgZDVjOGNlM2E3MGQ0ODk4ZDVmOWJmZjdlNDc2YjA4ZjJmMjA1ZTBmMyBweTNrCis4NzQyNSAyZjJkZTZjYzYyYzc4MDQ0ZDE2MDg0ODgxNTg4MWZiYzQyMGRlNWFhIHB5M2sKKzg3NDI2IDU3MmY3M2ZmMjhjMjIyZmU0MDJlZmNjOWM4NzA1OTVmYTM1MWM2ZjggcHkzaworODc0MjcgYTg0MjA0ZjExNmY4YjY3ZjRlMmMwOWE4YzdmZGM4MDFjYzgzMTI5OCBweTNrCis4NzQyOCA1Y2Y4NTU1ZTViZTU1YWUxMjQ2YTNlOTA1NTEwZjM5YWFjM2E1NzM0IHJlbGVhc2UzMS1tYWludAorODc0MjkgNTk1ZjI1ODgwNmVmZjBhZGJjYjVhNDU5MTY5MzQzODQ4ZGQxMTRmOCByZWxlYXNlMjctbWFpbnQKKzg3NDMwIDQzOGE0Njk4MDA0YWRkNTQ4NmNmN2JjNGJjZGM4ZDQyODM0ZWE0YTkgcHkzaworODc0MzEgNTYxZWE2NDAxODhiMzQ0ZDYwNGVjMGEyZGQxMzgwYWM0MTAyNThmNCByZWxlYXNlMzEtbWFpbnQKKzg3NDMyIDNmOTA1MWQ4NjYwMzI5MTkyNmFmZDBjMGZiM2UwMTQwNGEwNjc5NDEgcmVsZWFzZTI3LW1haW50Cis4NzQzMyA4ZTdkNGMzOTc0NTg3Y2QzNWI0NTk4YzIyNjM0MGNjMDM2YTY2NTQ3IHB5M2sKKzg3NDM0IDUzYTQxYTExNzQxMWJiYjBmMDE1OWJmM2ViYTJjZDVlYWFiYjBhZWEgcmVsZWFzZTMxLW1haW50Cis4NzQzNSBjNjNhY2U1YTUzNDZiYjBhOWIxNTIxMzcyMDkwNTAzMmE0Yzc2MDVmIHB5M2sKKzg3NDM2IGE4MmRmMjA5ODU4YTY0ZGZlMTFjZTE5Nzk2NmYxZDVmZTFiNDZkMzYgcHkzaworODc0MzcgNmZmNTBjZWY5ODRlZTU1OWIyOTk3N2Y0NDNhMjNmN2JmNTYwZGI5NyBweTNrCis4NzQzOCA5MjUwMmIzNjc0Y2JlYzc4Y2Y4MmIyMzBhZmRjYWZjNjFlNjMyM2ZlIHB5M2sKKzg3NDM5IDZmNDgzNDJlOWUzZGY2OWIyZTc2ZjE5Y2U2YjA0MjFmNTE0YjQ2NWUgcHkzaworODc0NDAgOTlkMTQ2M2VkYjU2YzFlZDc1ZWM4NTFjZDJmYzBjNjE3ZTRiNTlmZiBweTNrCis4NzQ0MSA4OWE0MTZmZDdjMjk3MDdiZDQxZmY4NDVhNzljMWVkNzZiMDZkYjQ0IHB5M2sKKzg3NDQyIDZhNjIzYTc2NzA2MjJjNzJjM2Q1NGQ4NjNkMmQ2ZDljNThlOTg3NjcgcHkzaworODc0NDMgZTIxOWZiNDEzNGUzYmQ3ZDZjODI3NzI1MzBiMzZmOTY0MWE4OTJjMSBweTNrCis4NzQ0NCA0ZGMyNDhhYzI2NGY1ODkwNDE4ZjMyNmE5MjVhMTJiOWRiZmU0YTFhIHJlbGVhc2UzMS1tYWludAorODc0NDUgY2YxOGQ5ZTUxYjlkNjAwNDMzYTNhN2JkZTNlZmYzZGU5MjVkYWIyMiBweTNrCis4NzQ0NiAzNmFjM2Q5ZDc0YzE1MDUyOWExY2NhNmU1NGE0MWVkOTJhMjVmNGNlIHB5M2sKKzg3NDQ3IDgzYmNkYWQyNTMzNWY4YjIxOGFhMTA1ZWI5YzM1NGQ5NDY5MjBhZTkgcHkzaworODc0NDggMTIxYmEwNGYwZmJiMTAxYWJiMzk3YWFiZTA0ZjZjZTllOGE2MmQ1YyBweTNrCis4NzQ0OSAyMTkyYmI5NWY1NGIwZGFlMWUzZjg5NTgwZGY4Y2U2ZDljYzMxODdjIHJlbGVhc2UzMS1tYWludAorODc0NTAgOTNmNTYxOTRjZjViODJjMzNiZTIzN2IwZjBiNDMyMzY4NmE0MTJhMCByZWxlYXNlMjctbWFpbnQKKzg3NDUxIDc2NTc5NmEzNGFiZTE4OGQwNDU5MzUyNmU2ZGFlNjY4MDNkODk0NTIgcHkzaworODc0NTIgODE5ODJhY2VkODZiYzk1YzczNWUwYmJmZTg3MjY4NzI4MTY2ZjQ1YyByZWxlYXNlMzEtbWFpbnQKKzg3NDUzIGI1ZDAzY2ViOGQ3OTA3OGUzOTNiN2E0MGMwNDdiNzg0MjE2NTgzZGEgcmVsZWFzZTI3LW1haW50Cis4NzQ1NCBkNGUwZGE3NjE4OGI2MDI2N2FiYTU4ZGM4M2QxZjNhZGFjM2JmYzlmIHB5M2sKKzg3NDU1IDNiNjE1ZWU3ODdiMGYwNjdlNDdkNGY3NTE1M2IyMTNlNTgzMzgwZTQgcHkzaworODc0NTYgYzM0YWM5ZjlkZTgzMTdkMzYyNmQ2OWMzZTE0NTVmMDM4NTIyNmIwOSByZWxlYXNlMzEtbWFpbnQKKzg3NDU3IDVjMDgyZjE5N2RkZjc3M2VkOWViMmExOTEwODc2ODU3MGRlOWM0M2EgcmVsZWFzZTI3LW1haW50Cis4NzQ1OCBmZGI4YjAyYzFlNjViMzUyM2ZiYmNlOGFiYTIwY2I0MjEyZjMzMWJjIHB5M2sKKzg3NDU5IGUxYmYzYzFjOTU2MTM0MjVhZGRlODVkOTdiNzM0ZWZiOWFkMmExZGIgcHkzaworODc0NjAgY2FmODlhNmExN2E3ZTg0YmEwZjRiYTJhMTRiMGZhYTMyYzQwNzBiZCBweTNrCis4NzQ2MSBjZWYyODE3ZWExNTcyNWU5NGYwOTI3NzVhMTQ5MGQ3MDU1NzA2NzI0IHB5M2sKKzg3NDYyIGQ1ZmFhOWZmZGYyYTkzMzg0ZTIyZGY4YzIyOTljNDNhMDY4Yzg0YTEgcHkzaworODc0NjMgMDk2NzMxNjIwZmYyYWVhY2NiNTQyM2U3Mzk3Y2VmMDM0NTRmMmE3MiBweTNrCis4NzQ2NCBjMzdkNmRiMDJjODRkMDNkYzY2MjYwZDNiZmJkOTUxMDY0NjQ1MmVkIHJlbGVhc2UyNy1tYWludAorODc0NjUgZDJjMjhhMzdmNzYzMDY3NTA0NDIwZTVhODg5MDkwNzAwZGQ3ZGMyNiByZWxlYXNlMzEtbWFpbnQKKzg3NDY2IDg5YWUyYzNiMDg1Y2MxYjM5N2I2MmMwOGVlZWRmNjdjMmMyZGE3MjggcHkzaworODc0NjcgNTEzMjQxNTRmODkzZjdiNTVlMTE5YmEwOGU1ODI5MWEzM2I4YjdkOCBweTNrCis4NzQ2OCAxYzU2MGY0YjVlNWI0OWQwNGUyY2NjMjJjYmU1NTkxMDRlNzA2NTg2IHB5M2sKKzg3NDY5IDk2OGRiM2U1YjFkODAwMDhmZTY2MjcwYzY2ODc4M2FmYTYzOGZiYmIgcHkzaworODc0NzAgNjE4NzY2MWNkYzA4OGJjMmIyMDE2NjBlMzdjZDlhZWM5ZTI3M2YxYiBweTNrCis4NzQ3MSAzOWNlYTk4MDkwNWQzZDJjMzFlYTczNTY5MjYwZDQyODhkMWI2Yjg0IHB5M2sKKzg3NDcyIDJlOTY3MGQ2NzAxNzMxZTVjZmNiMzA4NmY2YzJmZGFiMTM2NmRmMmMgcHkzaworODc0NzMgYzUxMGMxNTA1Y2U3MjM0ZWIwMzlmNTAzZWExZDY2OWEzYzliMTY1ZSBweTNrCis4NzQ3NCA1NzAxYTgwODQwMDE5MTdmNmZhMmZjMTZhYzllNzdlYjQ3NDE1ZWZjIHB5M2sKKzg3NDc1IDg0YzFkMjY3OTcwNzhmZjhmMDA5MjE3MGRhNzM2MjNkZjdlZTE0ODQgcHkzaworODc0NzYgMmQ4MmNkZjYyYjJjZGUyZmQ1ODUzNmNhNTc3MDQyYTU3ODQ3NDZjOSBweTNrCis4NzQ3NyA2YzhhMWMxMTc2MWI0ODkxMjQyOGQ1ZWEyZGQ2NGQxNTkyYTRjMDM1IHB5M2sKKzg3NDc4IDhlOWE0N2RiMzkzY2VmYmUzODM0YTQ5MmNkODY4N2NiYmU4ZjRhZTggcHkzaworODc0NzkgZWQ4ZGY1YTkwY2YxOTYyNTA1OGQyMmQ5MzZkMWQxNDRmOWQ5NjI0MCBweTNrCis4NzQ4MCA5NTAzYjA2NjI1MmRkYjE3OTliMzhhMjEyOTljNjE4MDFiZjRiMzI5IHJlbGVhc2UzMS1tYWludAorODc0ODEgZDUxYWZlNDdkZTczMmE0MGJlNWQxNTlmNzRmMzllMzEwMmNlYTcwZSByZWxlYXNlMjctbWFpbnQKKzg3NDgyIGZhNGRlNjZjN2RlZWIzYzdjOGZlM2JkMTk3NGUzOTA5ZDdjYzQzNDYgcHkzaworODc0ODMgYzU2NmM0MTMxNDM5ZjE3NzhmMzE1MzBiOWExMGRkZjc0NzFkYjk3MSBweTNrCis4NzQ4NCBhNjdiNDJiZmY0NzE4NjI3ZmZlMzEzMDk1NDVkZDAyNjFmMWMwZWZjIHB5M2stZnV0dXJlcy1vbi13aW5kb3dzCis4NzQ4NSAzOGQ2Njk4MDE4N2UyODQ2NDViMDgxZTZiMWYyYjE5Yjg4ZmVjZDg1IHB5M2sKKzg3NDg2IDY3OGQ4MzM2ZjRjM2RjNjZlMzU3M2MyODU3ZGE5NDkwNTZlNTY3OWIgcHkzaworODc0ODcgMWIyMTYwYWQ0YzZlNGE2YjkxNzYyYjQwZGJhZGE5MmYxN2I2OWQ4MCByZWxlYXNlMzEtbWFpbnQKKzg3NDg4IDQ4OGVkNTUwYjdmODg4Y2VmOGViMDViZDUxNzkzNDFlMTQyNTlhY2YgcmVsZWFzZTI3LW1haW50Cis4NzQ4OSA0YjkyNmExM2RjNTQyOGZhYWZjYmRlMWY3MGJlYzJlOWNjMjY2ZTZmIHB5M2sKKzg3NDkwIGEwMTUzM2IwMWI5YzliYzE2OGZlN2QxMDc1MDM2OTM3N2UzNmI0ZDkgcmVsZWFzZTMxLW1haW50Cis4NzQ5MSBkNWJiYzY1YmMyYjNlMDFhMzRlYWRiM2M2ODU5MDcwZDYyMGE0YmE1IHJlbGVhc2UyNy1tYWludAorODc0OTIgYzE3YTQ5OTcyMjQ0MTQ3NDg2YTc5NWZiY2RjMmVjYzc1Y2RmNmIwYyBweTNrCis4NzQ5MyBiZjA5ZWNmNjhhMTk5OTg2MWI3MWVhMTQyNjhiN2Q0NGY5ZDBjMzE2IHB5M2sKKzg3NDk0IDRkMjBhZWE2MDVjNWZiNDQwMGMzYjdiMTI2NzBiYjBjYjZlMTY2NmQgcmVsZWFzZTMxLW1haW50Cis4NzQ5NSBmYmJlZmNkNmExYTY5NWFkZmI2ZTBjYjQ3YTkzNGZkZTFmNGM0YzgwIHJlbGVhc2UyNy1tYWludAorODc0OTYgZjRiYTU0ZTBiYTc3NDUwNjMyNTY4MzE5OGM4ZWM4NTAxODA5NGJhMiBweTNrCis4NzQ5NyBjMmFlOTBhY2M5MDg4NTY2NjA4OWQ0YzVkNGUxMjc1MTY4NDMwMzgzIHB5M2sKKzg3NDk4IDEwOGJjMTI2OTMwZjdmOGYxMmVlYmNmNGJkNGMxMDllNzEyZTY2NzggcHkzaworODc0OTkgZTIwYTY0MzZhOTI3MGY4YWU3ZjUwYjI1ZDFjZTBlNDYyMGM4NzZkZiByZWxlYXNlMzEtbWFpbnQKKzg3NTAwIGRkNmQxZWNiZWI1NmQzY2EzMzJhZTJkOTIxMWM2YzQ2ZjRlMzBlMTIgcmVsZWFzZTI3LW1haW50Cis4NzUwMSBiY2Q2YTY1YjhiMjIzZTU1YTI5OTUzMjc1MzA5ZWExZmRkZDFkNmM5IHB5M2sKKzg3NTAyIDQ0MmYxZGEwMWE4OTgyZDRhZWM0N2ZkZjVmMjkwNGEyZjk0NDhjYWIgcmVsZWFzZTMxLW1haW50Cis4NzUwMyBkNGQzYzg5YWIzODhmMGM5NTFlZjQ4MjNhMzkyZmYyMjM0ZjIxM2I3IHJlbGVhc2UyNy1tYWludAorODc1MDQgOTNlOTViMmUxYTFhMjNiM2IxYjViZTljZWY2MmUwM2MzYTZlYTM4NSBweTNrCis4NzUwNSA0YmI3ZjdiMTUxZmVhOTQ5OGNiNTI2NzE5NzJiYzdjNzdkMzRjMTgzIHB5M2sKKzg3NTA2IDY2ZDg0NDZhMDE5YmU3Njc5OTQ0Y2MzYzkwNzZhZDk4YWY2NjI5YTUgcHkzaworODc1MDcgZjYxMTk2NDUzYzc4MWU3MDZmZWNiMThkZWIwNzk5Mjk3MWMyNGFkZSBweTNrCis4NzUwOCAyMmMxMmE1ZDhlZDMwNTE1NTI3MDU5YmM2OWMwNmQ3YTczNzZhNDkzIHB5M2sKKzg3NTA5IDVkYWUwNGQ0OWUxNWM5OWRlODU5Y2MyNTI4ZTIzN2MxOTFmNWZlZTggcmVsZWFzZTMxLW1haW50Cis4NzUxMCBjNjk0Njg1Yjc1ZTI0M2ExY2FhN2IyYjAxODhiNDNhNjZlM2JhYjkwIHJlbGVhc2UyNy1tYWludAorODc1MTIgNjY0NzA1ZGJmZTYyOTllMTlkMzAxM2I0NzJlZDA1OTE3NDI2NDBhMSBweTNrCis4NzUxMyBlZmRjNWQwZDgxYjcyMWMyOGNhNjNlODczYWQ0NjM1Y2VjZTllNjYwIHB5M2sKKzg3NTE0IGJiZjc1MWZkZjQyMDY3N2M1NGJkYzIzNDZlZmRiNmM3NzlkMmRlZGMgcHkzaworODc1MTUgMmQwOWFmNGMxMzdjOWM2ZjNjZjRiMTU1M2ZmZjVjNDcwNjQyODQwOCByZWxlYXNlMjctbWFpbnQKKzg3NTE2IDg5NTQ5NTM1ZDk3NTg3NDIzMGUyYjk5NWZlM2MxNWEyYzExMWQ4M2UgcHkzaworODc1MTcgNmYxOTYyMmRkMzQyYjRkOTJmMGM3ZTdiNTgwZjBjOWVjOGMxNmIyMCBweTNrCis4NzUxOCBmYzgzNGIzMjNmMjY3ZGQ0NGRmZTlhZTdlZjkxOTdkMjc4YmU1YWFmIHB5M2sKKzg3NTE5IDU2MDVmNjkyMGI2MzhlNDA4ZTliY2M1YmZiNTQyYmE0MDc1ZGVlYmEgcHkzaworODc1MjAgMzA1YWY2ZjVjYWJmOTRlYjQyYjk1NzA5NmJlMTI2Y2E5YTEyNDg4ZCBweTNrCis4NzUyMSA1MzIwOWQwMGQzYWIxOTJlNDY1YzM0NTc0YmE0ZDFlYjkzYzM2OGMwIHB5M2sKKzg3NTIyIDAwMDQwMTNhZTk4NGE5YzQxNTMwMzJlM2JiZTAwZTc4MGIzNmE2MjggcHkzaworODc1MjMgMTA5ZGVmYzFhOGNmYjJlMmIyZjQyMDczZDNkYTYwNjBlODAxMTIwZSBweTNrCis4NzUyNCAzYTQ4MTZjMzZkZjdmZWNkNzk2OTRlZmMyMWNkZjE4ZDk0M2Y4YzFmIHB5M2sKKzg3NTI1IGUwYzUyYzBlODU4NjIzMzBjZjIzMzVkNjZiZjRmN2YxYTM3OWE1NWYgcHkzaworODc1MjYgN2Q1NTFkNWVmNGZjZjQ2OThlZDYyY2E4ODUzYjc2YTk3MDk4OTlhZCBweTNrCis4NzUyNyBjZDZlMzQzZTI3OGU4YzI0YjEwOGE5MmNjNTA0YTY1ZDU4ODZjMTFjIHB5M2sKKzg3NTI4IDYxNDQ4Y2RjMGZhOGMwZjViMmUzMjdhODM4OTExMGViNzVjNmE5MDkgcHkzaworODc1MjkgZWY5MzUzMWQwYWM0N2M5MjFmZWYyOWU4YzA3NDlkNGM1NDM2M2UyNyBweTNrCis4NzUzMCAyZTI0NzZmYjgzZWZmOTBlZDdjZWYwNTNjYTI1MTI3NzQ0N2QwNTY3IHB5M2sKKzg3NTMxIDRhNzczOWM1Mjc0YjhhNWI4MmZmZDY0MTM4MTkxOTFiYzA0ZWY5YTMgcHkzaworODc1MzIgODgwNTg2YjhkMGQwMTU3YmFmNGQ5ZWQ2YjU1MDMwMmNlNDRlOGNmMyBweTNrCis4NzUzMyAwMTcxNGVmZGM2Y2YxMjA5NGNkNzBlNTQ4Zjg4MjdlNzM5NDk5OGNiIHB5M2sKKzg3NTM0IDhmY2I4ZjI2NTVhNTkyNDA4NTNjZjE2ZWZjOGZhNTFhZjIyYTc3OTUgcHkzaworODc1MzUgMTRmZDBkZmIxNmZmYzM2MjY5YTZhZDkzYjgyMjZkN2M5Mjc2NDM4ZCBweTNrCis4NzUzNiBmNTA5MTI5ODM0NjE3Yzk2MWFjMzc2NDNkZjcxYTM1YTI1MThiZjRhIHB5M2sKKzg3NTM3IGI5MDFkYTU2MWNkMTQwNzBmYmM3NjY0MjM1MmMwNDM4ZjM4MGVmYWEgcHkzaworODc1MzggYThiZTA1NjczZjM0Mzc3ZjBmNDEwNDk4ZmViOGI4YzEwNWMxYzhjOCBweTNrCis4NzUzOSA1YWE0MzNhMjc3ZjkzN2ZjNzhjYTJjZWUwMjdjNmVjNmJmOThhZmUzIHB5M2sKKzg3NTQwIGE0ZWMyMGNjOTA2NjY4MjFiMTY1YTk2ZGU2ODMwYzk1MjdiY2YzYjIgcmVsZWFzZTMxLW1haW50Cis4NzU0MSA1NGYxZDU2NTE1NTU3NGE3NzNiMzMxNTY0Mzc5MmM4MjI0ZTcwZDljIHJlbGVhc2UyNy1tYWludAorODc1NDIgMThiY2VlODU2OWJiMzdhNDRlMmJjYzllODUyMDM3YzBiYTI0OWY5OSBweTNrCis4NzU0MyBjYzc4YTZiZWZiZjJmMWY2ZWVhNGI1ODBmMjhhMTU5ZDdhODRkNjRjIHJlbGVhc2UyNy1tYWludAorODc1NDQgMDVjY2NkNDI1N2EyMmE4Nzg0MjkzN2ZjMjljN2ZmYWYxNzVjMzY2ZCByZWxlYXNlMjctbWFpbnQKKzg3NTQ1IDM1NDZjZTFhYTM1NWJjNjc0MTllNjViZDU0YTFmMmFhN2M0Nzc4NjUgcmVsZWFzZTMxLW1haW50Cis4NzU0NiA1MmE4NjE3NDYxMjk3YmI5NTk0NmM3ZjliYWU2OGEwNzA0YTFlMWZjIHJlbGVhc2UyNi1tYWludAorODc1NDcgNmNjZGIxZTAxNjExNTc0ZDFiZTAzZTlmZTUyMWI0ZWZhM2QyZjJhMyBweTNrCis4NzU0OCA2OTQ2MGM4MDU3MzdiZTgzNTFmNWNlYjJlNTBlYWY1NWViN2ViNDAxIHB5M2sKKzg3NTQ5IGI3YmU2NTJkYWY2ZWUzMjIyMDdiM2E0MGNhYmVkZTgxZGZhMDVjN2UgcHkzaworODc1NTAgNzdkZWRhYTM2ZDNhY2I4YWZjMzFjMzY1YjIxODdiOWJiOTNiY2FlYyBweTNrCis4NzU1MSA3NDFiOTNiYzY4YTViZWJlOGQ3MWVkYjQyOTBmNDY3MzA3Y2YyN2FiIHJlbGVhc2UzMS1tYWludAorODc1NTIgOTU1OWUxMTUyNTk1Yjk1ZGQyZDQxNzMyZjY1YjRlYTI1ODQzMjRmOSByZWxlYXNlMjctbWFpbnQKKzg3NTUzIDBkOTdiYjk5NDI1ZGVjYTFmYWNiZjkwNTI5MDhjY2FkYTA4M2YxZmQgcHkzaworODc1NTQgNWJiYzFkYzQ1OWE1ODFmNjc2ZDk1ODNiMjRlNmMyZDljNjcxZTViMiByZWxlYXNlMzEtbWFpbnQKKzg3NTU1IDFkZjIwMjFjN2MzYzQ3ZDJmYmFkMDhhY2JkNTAyYmJiNzBhOWJlYjIgcmVsZWFzZTI3LW1haW50Cis4NzU1NiAyNDk4OGY5Zjg1MGIxYzNlYTAxNmIxNjI0NzY4ZmI0ZjJlNjQ0YzEzIHB5M2sKKzg3NTU3IGZhNTk4OGY3YzhiZDI1NzA2NDhjNTRhMjA4NjA5ZjgzNGY3N2IwNTggcHkzaworODc1NTggMmE3NzNiZWY0MGMyMTE3NDNlMDRjNjViZmZmZWVkOGVjYWI3MWQzMSBweTNrCis4NzU1OSA2MDMyM2EwZTgwZDdjMWZmYTJiMzJmZTI0ZTNkY2QzYTJkODVmNmUwIHB5M2sKKzg3NTYwIDM3YTkxNWJkZjgyN2JhNTE0MjU2ZWViYjJkOGViYTI2MTJlMDc4YTMgcHkzaworODc1NjEgNDI3ZjlmMTU1MDQ4NWU4NDQyOGE4ZWZiOGQ3ZDUwOTUwNDJlNzliZiBweTNrCis4NzU2MiAyYjQwZTRjNzc3NzU1MzcyNmU3MjJkYzVjOGQyOGViZjk4NWFlMmUyIHB5M2sKKzg3NTYzIGIwZmFmN2E0NTIzOTUxMTQzNDAwZTc2MzhjNWFlY2U5YzZlOWVmMjIgcHkzaworODc1NjQgOGI1ZWViNWY0NTQ2NjRiYzdkNmRiNjgzNjcxMDcyZWI0M2M4ZjM0YiBweTNrCis4NzU2NSBlMmU1OWNiNGY1MGNiMmMyOWMwMDI3MTAxNjdhMmE0MjQxMGUwMmYxIHJlbGVhc2UzMS1tYWludAorODc1NjYgMDBiYjA0MDZiZmVkOTQwMWFhY2E0ZmZiZDM3OGVjM2IyNTIyZjZjYSByZWxlYXNlMjctbWFpbnQKKzg3NTY3IGFiNjFiYWIzMjFjMTAxMTk2NzAyMTdhYTFmNzkzYjBmODllZjA5MTMgcHkzaworODc1NjggN2U3MTZiOWE0MDNkMTQ5NDlkZjJhNGU5NWVkNjdiMjdmNjNiYTkxZiByZWxlYXNlMjctbWFpbnQKKzg3NTY5IGYwNjk3Y2E4YWQ0NzZkZDg4YWYzNmEyNjkyYjIxOGIyMmQ3MDU1NGYgcHkzaworODc1NzAgMmU1OTJhNGU2OGFiOGY2MDcxNDQ4YzBlYjg5NzMzODU1YWMwNDE0MyByZWxlYXNlMzEtbWFpbnQKKzg3NTcxIDJlMWRiYjI1MmYyNTc4MTlhMDEyOTNkNDdlNGRmY2Y4MmI1NTBhNjYgcHkzaworODc1NzMgMTBiODM2NjgzN2Q4MGRlNzM1YTFiYzIxMTQ5NDJlYjFkMWIzMjBjNiBweTNrCis4NzU3NCA0MWQ1YjZjYTE5MjNlZjlmNGI3MDc4YmYxMTM2OTllZTRiN2Y2ZmM5IHJlbGVhc2UzMS1tYWludAorODc1NzUgZThlNjRlYjRjYTRjZjU3ZjQ4ZGNlMTM2OTJhYTQ3YWYxMTgxOGE4ZiBweTNrCis4NzU3NiA5MTM4NjM0YjhiZDE0NjAyZGQyNWZhYWM1YWFhNGZjOGU3M2FhZjgzIHJlbGVhc2UzMS1tYWludAorODc1NzcgNGM4M2EyOWE3MTJmOTE1ZGE0ZjlmYmFlMjEzNzg4YmQzZTYwZmY0OCBweTNrCis4NzU3OSA4N2U2YmRiMzczZDEzZDU1Zjk4ZTZhMTBhMDM5OGI3NzJjNjM0N2E5IHB5M2sKKzg3NTgwIDE2MzE5ZjliZTk3YzRlYjlhMTVhZTMwODEzYTRkMWZkYzI5NWZjNzcgcHkzaworODc1ODEgNTRlZjUyZjk3MWE1MTk3ZjNjZTZhMDIxYTgzMDRlZGExYWJhYzNlOCBweTNrCis4NzU4MiA2M2JmODRjZmQ4YTYxNGViODU2MDAxMmM1OTBkYzRjOGZkNDQwZDI5IHB5M2sKKzg3NTgzIGYwYjU2YTM4YTUyNDNiZTAxN2MzZmZhOGNkMWFlZTNlNGRiNTg5MGQgcHkzaworODc1ODQgNDRlYjA5YTU1MzkzZjA3YmU5YTRiOWI4MWZiM2IzNzQ1NTIyMjcxYiBweTNrCis4NzU4NSBmMzdmOTZmY2U3Yjk0ZGE3ZjMzNzI5ZDVjZjc2NjRjOTJlYWY5M2Q5IHB5M2sKKzg3NTg2IGZkYjZiZDFkNTM1NGNlODM2ZTQ3MTQ5YzQwMGExNjg0NjI5OGJhNjYgcHkzaworODc1ODcgOGM3ZGYwMzU2MDM2MDIwZmVkZGEwNjg1Y2I5ZjNhMGYyY2NiMTliYiBweTNrCis4NzU4OCBjYWNmZmYzNDlkNDhkNzMyY2IwZmQ4YTk0MjJmZDQzOTVkOGRhZWNiIHB5M2sKKzg3NTg5IDBkZmI4Mzk3YTk3M2JhZTZiMTZkMWE3ZjFiNjk1NjY0OWIyMTE0MmEgcHkzaworODc1OTAgNzAyMDM3YzAzOWZmMDEzOTQ5NDRkZWJiZmMzZjNhMmNkY2I3MmYxMyBweTNrCis4NzU5MSBjNzJlZTZlM2I3ZGY4YmI5ZDE4Y2JmNDBmYTJkZjA0MzE1NzE0NDI5IHJlbGVhc2UzMS1tYWludAorODc1OTIgYTEzYjg2NjNmZWJhYzc3ZWRlNTQzM2NmNDQxNmNkN2RjNTgzYzAyNSByZWxlYXNlMjctbWFpbnQKKzg3NTkzIDU1MTAwNjNiMzlkNDAxZTBlOGY5OWMwOTM3MDQ0ZGEyOWZlYjJkYjQgcHkzaworODc1OTQgM2ZlNjZmYzIyMTdiMzAxYTliZTRlNjgwZDUwNzY2YTRjMzgyYjIzNSBweTNrCis4NzU5NSBiNjhmMzg3ZmJiNDhhOGJlNDUzYTFlMzgyNjVkYzhmNzAyMWIzZjA2IHB5M2sKKzg3NTk2IDg3NTcyMWRhNzQ2ZDM1YjdjYjk2MTZlYmZmNTYxOWY2NDI2MWJiZjkgcmVsZWFzZTMxLW1haW50Cis4NzU5NyA1M2RiMjkwZTQ2ZWY5M2I4OGRjZThjZTZjZWYzNTk2M2I4ZWI5NzY4IHJlbGVhc2UyNy1tYWludAorODc1OTggOGY5MjRjYWYyZTVlOThkYzk4NGNiYjUxMzU5ZGFmYTg2Nzg1OTFhMCBweTNrCis4NzU5OSBlY2EyNWYxZGVhZTczMTgzMGJiZWMyNDUzZGJlOGYxZmIxM2RlMjcwIHJlbGVhc2UzMS1tYWludAorODc2MDAgNTAwZWIzZDA4OTdmNDkxM2RhODhjYTIyMGY3ZmNjYmQwZGM0MTRjYiByZWxlYXNlMjctbWFpbnQKKzg3NjAxIDNiYzc0NjE2YzlmZmMzMTlhMjIzZTdkOTZiODJhMzI2YzZmNzYzMTYgcHkzaworODc2MDMgZmE4NTUwMjEzYmNmZGRlNzIzMmNmYTM0Njk1NzI4MjQxNmEzNzE1MCBweTNrCis4NzYwNCAzMzU0M2I0ZTBlNWQ2MTUwNTg4MDViZjU2NzRkODc2ZjY1OTU3ZDNkIHB5M2sKKzg3NjA2IGNkOGM5YjY3ZjAzMzg1MjY2NDMzMDU1N2MxNzc2NDU5OWYzMDk1Y2UgcHkzaworODc2MDcgNWRiYTY3Y2E2Y2NmYjU1YzAxN2U4YTY2MWY2NTY2NmFkYmNiZWY3ZSBweTNrCis4NzYwOCA3YmIzN2E0Y2Q3Y2Y3NTllZDAxNzU2ZDBkODc2NjQ1MDEyYTE1M2NiIHJlbGVhc2UyNy1tYWludAorODc2MDkgNWRiODk4NTNjYWNlMTk2ODA3YzAxZmZjNjMxYTg4MWNmYWRmNzRiMiByZWxlYXNlMzEtbWFpbnQKKzg3NjEwIDkwMGJhMDdlNDgyNGI4ZTA4ZWM5NmMzNWFmMTYxOWI2MjI3YjNlMzAgcHkzaworODc2MTEgY2NlZDBhN2NlYjQzZTgwNDE1N2FjMWY0MTRmNzI5M2QzODQyNTIwMSBweTNrCis4NzYxMiA0MTVhNzkyZTEyNDkzYjhjMjFiYWFlY2Q3N2Q1NThlNGQ5ODhlYTJiIHB5M2sKKzg3NjEzIGE5YWE1ZTRlYjhjM2FlNTVmOTBkMTYxZWRjOGFiNTU2ZWRkYTFkMjggcmVsZWFzZTI3LW1haW50Cis4NzYxNSBmOGMyZDg5MGZkMTA1NGI5ZDM1ZGNjYThlMDkyYjNjNDUyNjA1M2EzIHB5M2sKKzg3NjE2IDhkYmY4NTVjOTBlZGFjNzgxOTY5ZWVhNDYwNTFiNzcwZTQyMDE1ZmUgcHkzay1jZGVjaW1hbAorODc2MTcgNTc4NTdhNjBmYTk3ODViZWUwNDkyYzM1YjhiM2FjNGUwNzRmYzExZSBweTNrLWNkZWNpbWFsCis4NzYxOCBkZDQ5NDU1ZDhhOGM5MTc3NzI3YmU5YzVjYzhhZGM0MDY2OWJiNmZlIHB5M2stY2RlY2ltYWwKKzg3NjE5IDZhZjllODAwMDMzMjk3OGE0YTNkOGQ2YjgwZjQxZjEwNDc4MTVhMmMgcHkzay1jZGVjaW1hbAorODc2MjAgYTZjZDg0Y2E3YjJhNzk2NTBmNDQyZTA3ZGJjZDUyOGI1ZjI1Mzk3OSBweTNrLWNkZWNpbWFsCis4NzYyMSBhZWU0NTQ0MDBlZDcxN2I4MjdiZmVhZTUzOGYzMzc2Njc4M2QyODc0IHB5M2stY2RlY2ltYWwKKzg3NjIyIDRhYTY2ZTUxNDg4ZjM5NDVhZGJmN2YxZmY1MmNiYWRiOTA0ZDZlMmEgcHkzay1jZGVjaW1hbAorODc2MjMgMGIyZWE5MDMwMGMwYzliZmZlYTUxNTEzMjk2MTU5ZmQwYWJjMzhhNyBweTNrLWNkZWNpbWFsCis4NzYyNCBkMmNhNWIzMTA0YWEzY2I5N2MxNGQ3MDVjMjM3YmRkY2Y3MDkyZDVkIHB5M2stY2RlY2ltYWwKKzg3NjI1IGQzOTNlYzUzNmNhOWQ1ZDNlYTMyMDEyMjM3ZDE5NDg2OTA2MjlkMDggcHkzay1jZGVjaW1hbAorODc2MjYgM2ZlYWRhNzIyMzNjNDczNGU3MmM5NDIzN2YyYjRlNDQ0ODc3ZjMxMCByZWxlYXNlMjctbWFpbnQKKzg3NjI3IGRjNjI0NWJmZTU2NjFhZjk2ZmM5MjZjNjFiZjFkOTg3NjYzMzVmMzcgcHkzaworODc2MjggNzQzNmRhZWM5NDIxMGUyNTFmYjhhNjkwMjUyZGNkOWRhNTJjOWFjZCBweTNrCis4NzYyOSA0NDk2ZGViMjYyNjVkYTM2MDdlMDg2YWM1MDMzZTY4NGI4YWFlYjIyIHB5M2stY2RlY2ltYWwKKzg3NjMwIDc5OGFhM2ZlMDM0N2I1OWQ5OWJjMDg3ZWEzNTE4MzQ3ZDFmNDdlNDcgcHkzay1jZGVjaW1hbAorODc2MzEgMjFlNGYxYWEyNDMwYzJmYzU5OTZhMzdjNjcwYTRhMWFlZjZjMzk2NiBweTNrLWNkZWNpbWFsCis4NzYzMiAwZmMyNDkzYTM4NjNkN2UyZDE1MzMwODE2MjQ0ZjYyMWI3MGYyZmQ0IHB5M2stY2RlY2ltYWwKKzg3NjMzIDVkMzZmMGE1Mzc4M2FkZTQwYmQxYmU3NTYzYzQyMzQxYzE1MWE5ZDAgcHkzay1jZGVjaW1hbAorODc2MzQgZTcwYzkzNjEyZDdmY2JkMmJjOTlmMWZmMWY2MzNjYTNmYzQ3NjVkNCBweTNrLWNkZWNpbWFsCis4NzYzNSBkNDRiYTc1MjEwM2YyM2I3YWE3ODI5YTlhOGIzNjc2MTViY2RkNjJhIHB5M2stY2RlY2ltYWwKKzg3NjM2IDE2ZTg4NmE3NmM1YTU5YzQ5OGNlYTlhNzA0Yjg4MzFmNmZmNjZmYzMgcHkzay1jZGVjaW1hbAorODc2MzcgZmU3MjNiOGQ3YzVmZTMwOTdhZmM4OWU3YWVkNWRkNzVmYzJkZDYwOSBweTNrLWNkZWNpbWFsCis4NzYzOCA2NDAxNDkxM2ViODgwOWI4NWZkYjZjOWUyNzI5Y2FkMGM0YjlhMmNlIHB5M2sKKzg3NjM5IGIzNDQzNzdmZGQ4ZGI1NmI0MDEwOWQ4MTU3NTk5ZDIyNjI5MjRjZmQgcHkzaworODc2NDAgMzM2NWM3YjY0ODkzN2RmZTUyZDBhNTZlY2M5Mjc4M2RkZjk0ZDFlNiByZWxlYXNlMjctbWFpbnQKKzg3NjQxIDhmMzNiNTAyMTgzYmYwMzk0ODEyZWQ1MWNhYmZhM2QxYTA4MTdiMDUgcmVsZWFzZTMxLW1haW50Cis4NzY0MiBmZjEyNjFhMTQ1NzMzYTQ2ZGJmYzBiMTRlMDkxNzMzODJmOWQyNTQzIHB5M2sKKzg3NjQzIDllYTEyZTg2ZDU2NTIyN2YzZjY5ZjI5YTlkNTM1NDM3NmNmYmYxZWEgcmVsZWFzZTI3LW1haW50Cis4NzY0NCAxNTJhMDk4NWIxMzhiNzkxOGQxN2Q3YzhjZTViNGUzMmFkZmRmYTU5IHJlbGVhc2UyNy1tYWludAorODc2NDUgMGFmYzQxMzljYzcwMjkxYzRhMWYzMDI0Mzg3NDM0YWQ2MjVlYTc4ZiByZWxlYXNlMjctbWFpbnQKKzg3NjQ2IDBjYWUyMWRlOTkyMTM4ZjRkNTVhNjRmNjJiYzk3NDI0YTRmOGVjOTkgcHkzaworODc2NDcgMDA3MWExNzM0NjkwOTkwN2FhNmM1MDJkNzAwMzA3MGUzOWJkYmExZiBweTNrLWNkZWNpbWFsCis4NzY0OCA2YzQ2M2IwN2RiZGI3MmFjNTRkNDEwZGY5MjRkZWFlMjA4NTczMWNhIHB5M2sKKzg3NjQ5IGRiYjZmYjJjNWI5ZDdlNmEwOTljOGFmOTJmMDViNGMyY2I3N2QwMjggcmVsZWFzZTMxLW1haW50Cis4NzY1MCBlYjk1NGM3NjU1MjFhYTcyN2Q0MjY0Zjc0MjBlM2ZjOWJkNDQ5YjRjIHJlbGVhc2UyNy1tYWludAorODc2NTEgYTVhZTNhMTdkNWZiMTgxNDE1ZmMzMmM1ZjQ0YmFlZmZhNmEzZDRlZSBweTNrCis4NzY1MiBlMGU0ZWZiNjMzNTRjZGI2ZjQ2NmNlNTA2MzIyODNhZWNjMzdmZTdiIHB5M2stZnV0dXJlcy1vbi13aW5kb3dzCis4NzY1MyAyNTZmNzk0YzJjYzAyODQ0NDBiZjVlY2M3NjIwZjMzODcwZTAyZmQ5IHB5M2sKKzg3NjU0IDU4MWU2NzI0NzhmN2VhNGExZjMyNzJiZTdlYTgwNmU4MjkyNWViMjggcHkzaworODc2NTUgYzRkNjdmYTkwOWRjZDJkYTE5ZDFjNDFlZjA1NmEyMDc2NjJiYjQ4MCBweTNrCis4NzY1NiBiMDIwZGY5ZWUzODE2Y2IwYTkzNjRlNDBjNGVhN2FiODUwMjNhMGI3IHB5M2sKKzg3NjU3IGQzOWVmYTU0ZGVhZjA0OTMwOTk4ZTQwMjkxNzI4ZTJmZjcxNGNiZjAgcHkzaworODc2NTggNDI2MGUzMDI1MmViMmJiN2Q1NWViNDgzZGJlNTUyOGQ2NjliYzU3YiByZWxlYXNlMzEtbWFpbnQKKzg3NjU5IDczMGIxYWYwOTIzODc0ODNkMDcyODg4MWZhODlmMDZkZDZmNmIzOGEgcmVsZWFzZTI3LW1haW50Cis4NzY2MCAwNGFhNWJlNzA2YWMwMTc3MTFhMWFhOTViMWE5ZjUzNDI0M2ZhMGQzIHJlbGVhc2UzMS1tYWludAorODc2NjEgYTVkYWExNDAwMWE4ZWViYTRhZDAyOTdiNjY3ZWU1OTYyYTA1OGY4YiBweTNrLWZ1dHVyZXMtb24td2luZG93cworODc2NjIgZjg5ZTM3Y2Q2YzY1NzcxNjhkY2IzZjAyNTMwNjdjMjI2ZGJlM2FiNCByZWxlYXNlMzEtbWFpbnQKKzg3NjYzIDg4ZTVhZTViN2RjMjZhMDFjNjViYWU5NTIzMjgxZDc5YzVjMTNiZDQgcmVsZWFzZTI3LW1haW50Cis4NzY2NCBlMjg4NjhjZjk4MjU4OWM3NWUxN2QwZDQwZGUzYTI5OGM3YTgzN2IxIHJlbGVhc2UyNi1tYWludAorODc2NjUgNzQ2MTQzZWMxZjYwZGExMjk1NGE3ZWE2NzFmOTE1MzZmNDAyOTJhMCBweTNrCis4NzY2NiA0YWY5ODdlYzAzM2EwZDA2ZTEzMTk5Zjg5YTUyZWZlYWFlY2ExMGFlIHB5M2sKKzg3NjY3IDI4NTM4ZjJlMGNjMjQ3ZjNmNWY4OWE0NzA4ZmE0ZmZhZjQ5Mzg0ZDEgcHkzaworODc2NjggZDhlZDBjYzllMzM4MmMyNjk0Y2NkMGY0ZWEzMTJhY2YzYjVhMTViZiByZWxlYXNlMzEtbWFpbnQKKzg3NjY5IDkzYjdjMDAwOGIwODVlMDdhMjk0NDRmODk2MWE5ZjJmN2YyYzEwYjcgcmVsZWFzZTI3LW1haW50Cis4NzY3MCA3M2IyNDQ3NmNhM2JhYWY3MDdlNzc2M2I3YmZkN2Y3MjI1MGZkNTMzIHB5M2stZnV0dXJlcy1vbi13aW5kb3dzCis4NzY3MSBhMDQ4ZDBjZjJhZDFkODIxMDc4NDk1Y2UzOTcwMmJiNDQ3M2RhYTk1IHB5M2sKKzg3NjcyIDUzODRlNzIwZjI4ZmQxOTgzNjBkY2Q2NmU5ODU2ZmIxM2U5YmQ3N2EgcHkzaworODc2NzMgNDM5YmY5NjgwYmVmMjY2MDNjOGY0YTc3MTkyOTE4YWUzNzM3ZTIwNiBweTNrCis4NzY3NSBlOGJjYzdkYmFiN2RjMjBjMzM5ZjM4MzEzZjhhNDRjNGRhNTQzY2ViIHJlbGVhc2UzMS1tYWludAorODc2NzYgYzg5OGRkMjE1YmEwNjY1NzRmN2FlNDhlMTlhNzZmODgzNWZmNTYzYSByZWxlYXNlMjctbWFpbnQKKzg3Njc3IGZhNTlhYzExNjQ4NDBkZTljMThiNDkyY2NhMzQzNjZkODI2NjgzOWIgcHkzaworODc2NzggNTc3NmY0MjRkODU3ODEyZDcxZmFiZDY3MTU4NjEzN2QyMjIzZTMyMCBweTNrCis4NzY3OSAyODExOTA2MWY3ZDAxMTg4ZGU0MjU4MTE5ZjYzMDQwZmQ4ZmM4N2NhIHB5M2sKKzg3NjgwIDgwNjAwYzBjMzNiNzhiMWRjODVkNzFlOGEyZGEwMjIwNGMyNzRhNGIgcHkzaworODc2ODEgZjViMTA1YzlmNDZiZjZmMmFiYzM3Y2UxNGE2N2NlNWMyZWIwM2JmYSBweTNrCis4NzY4MiBiYTE2ZmY4NmQ0ZjZjZDE1OTZkYTI2MGJkM2IzYTE3ODliZmRkNWQ0IHB5M2sKKzg3NjgzIGRiYTliOWM3YTJkYjc2Zjg0NzcwYWMyMTNmNmQ5Mzg2YWE2NTQxMDMgcHkzaworODc2ODQgNmNiN2VkN2I2Njk3ZTUzNTJhM2ZmNGVlNDQxYzA0NTdlOGVjMTllOCBweTNrCis4NzY4NSA5NDg2OTI3MTJmZDcxMGQ0YzMxMThmMTIwYTJiZWViYmVhOTk2YTA5IHB5M2sKKzg3Njg2IDkzMWQyMzIwZjU2YTA3YjQ3MWRkNDYzMzg0ZjAzNTc2MGQ2OTc1NjcgcHkzaworODc2ODcgNGM0NmY2NjMyZGRmOTc3NjRiZWQwNDJlNDcwYzhhOWIwOTgzMGU4ZiBweTNrCis4NzY4OCA3NzQ4M2YzZTQ5MWE3OTM2MGMwMDlkYmM0Y2Q0NTZjYWZlM2VhYWExIHB5M2sKKzg3Njg5IGM0MTdkODA1NzY4Mjc0MDk3Y2QzNWM5YjBmMDAxZjNhYjBjOGNiZjMgcHkzaworODc2OTAgNzQ3YzU1YTk0Y2IwZTVlNTE4ZGZlNjY4NmM2YTIxN2ZiMWY2YWNmNyByZWxlYXNlMzEtbWFpbnQKKzg3NjkxIDZiN2Q5ZjFjMmNlNTFhODRjZjBhMjMyNjhkYzRhZjgwODQ3MDFmOWUgcHkzaworODc2OTIgMjQ1MzU5MzgyYjBmYWQzZTQzMjhjN2JkYjUwZGM1MzBhZGJhNmVjZCByZWxlYXNlMjctbWFpbnQKKzg3NjkzIGZlYjIzZTI0ZGNiNWM3MGYzMzExMDc5OWNmNzI5NmEyZDQxYTc2ZDAgcmVsZWFzZTMxLW1haW50Cis4NzY5NCBhMzNlMWYwMjA5MWY4ZmExNWU3YjgyYjA3NGViMmM5NTk0NDllOTAzIHJlbGVhc2UyNy1tYWludAorODc2OTUgYTY2YTZlNDI1MzhmZTQwOTEzZjY1NjNkMmJjZWQ0YWZlN2E5NzJmNSBweTNrCis4NzY5NiBlOWE1MWQ0NjM1NzkyNDQzMTU2M2E3YTYyZTA5NDhlMzZjMzRiOWRhIHJlbGVhc2UzMS1tYWludAorODc2OTcgYTQ3NmViMDg3ZWU5NzY4MzMxZTgzYTM1MjQ4MDQ4MzU1NzU5N2FiYyByZWxlYXNlMjctbWFpbnQKKzg3Njk4IDhhYzRiY2NhOGUzMTYxZjJlZmI3YmRhZWNjMTdlNzlmMjQ0YmIxYWUgcHkzaworODc2OTkgOWFjZWQ1YWVkMTFhZjVhZTE3YmM3ZjQ0NGI1YjhjMzY2ZDdjZTcyMiByZWxlYXNlMzEtbWFpbnQKKzg3NzAwIGIwYjQ0MTRjMGJkYzIxZGU0MzY1MjQ3ODg4MDg3ZGQ3MzExZjYwOWQgcmVsZWFzZTI3LW1haW50Cis4NzcwMSA3OGRlM2E3ZmI4OTYzNGUyOTZiYzI1NzRhNWQyYTU0MTFlM2JiMmU2IHJlbGVhc2UyNy1tYWludAorODc3MDIgMjc1ZmI5ODQ5NDkxZmUxNWE3ZjIwYmMxYmI3YzZlYzI2M2Y0ZTI5ZiByZWxlYXNlMzEtbWFpbnQKKzg3NzAzIGY0OThlYTk3OGM2ZmUwZWRjOWRhNWVhODhlOTljNDBmOGI5OGU0NDIgcHkzaworODc3MDQgNjExNTY3ZWM0ZDdiNzE1Y2I4MDY4YzAwOTI0MmZkYjhkNzM0NDFiNyBweTNrCis4NzcwNSA4YzE4OTkyZDM3NTBhYzIzZGFiNzkwMWM2NmM1MTdjMTg0YWRiZjUxIHB5M2sKKzg3NzA2IGY2MGE4OTlhMjA0ZTViMjhlZGNjNmVlYjQxMzc3YjdjM2Q0YjIxZjMgcmVsZWFzZTMxLW1haW50Cis4NzcwNyA0MDk0YmMxM2FjZmNjNDEzMGYzYzI0OTYzODE0MzE4MTNkNjI4ZGM5IHJlbGVhc2UyNy1tYWludAorODc3MDggOWY0OWVlNTIzOTc1NjEwOTgwMmVlNzQzMmY2MDdlNTBmZDEyMDg4ZSByZWxlYXNlMzEtbWFpbnQKKzg3NzA5IDViY2YxMDhhM2Y1ZGZmMjdkYTIxMDc4OGVjMzNiNjllNTViMDJiYzAgcmVsZWFzZTI3LW1haW50Cis4NzcxMCA2ZTVhYWRhNGZkZDVmMTc2ODg2MmJlYjRiZjcwNTEzZTQyNWEwNWFjIHB5M2sKKzg3NzExIDUwMTE4NzBlYzg2YmQ0ZjE4YjI1NDRiZTRiNmEyNjUzN2I1MmFhMjEgcHkzaworODc3MTIgYTdjNDk5MjY2YTlmZTAyNTFiNmU3MThmOGY4YWFjZGRmZTM0ODljYSBweTNrCis4NzcxMyA4ZjUwOWM1MjYwYTk4YWMzOThlYWU4NTgyZjEzNTdmMTZkYjFlYTIxIHB5M2sKKzg3NzE0IDg5MzI3M2Q3OTNjNmVmNTFjNTUyOWM4MGUyYjc4MmI5MjQwMzIwMzUgcHkzaworODc3MTUgNzMxZGVjNGU3NTEzODE2NGFkOWM4YjNkZGQwYTgxMDMwMmQ2Mzg2NCByZWxlYXNlMjctbWFpbnQKKzg3NzE2IDlhZDg5NjQyNmY3OTY0MTgwMTNiYWYzNTlhZWE0ZjgwY2ZjZWVmNzMgcHkzaworODc3MTcgNzBiZWEyZGFkZWY4YTcxNGQyYjNhN2QzZmNmNjU2NGUwZDdmNmI5NCBweTNrCis4NzcxOCA4Yjg0OGQzYzZhZDAxNDQ1MDg5OWZlY2QwZjhjZTJhNDcxYzE1Y2RjIHB5M2sKKzg3NzE5IGQzNmUzNDVhMWEzY2VjYmU5ZGRmOGY2NjAwMGZkMGYxMmMzNGIzNzkgcHkzaworODc3MjAgZjBlYjM0NDhjZTM4NDU5MjkzNDA3YzNmYTBjOTQ0MjhkNzlkODljMSBweTNrCis4NzcyMSA5Y2Q4M2M2NThiYTQ2MjBiZjMyMzM4YmM2ZmE5NjdmYjE0YWRkMmY3IHB5M2sKKzg3NzIyIDM3NGRjOTEwZGIzM2FkNjhjMDczODg5ZjdhOTU2ZGQ0OGNlZDA3ZTcgcHkzaworODc3MjMgMThkYmMzYmExNmMwZWFmZDgwYzY3MmYzNzhhNjdjNDdmMmZlYjEzZCByZWxlYXNlMjctbWFpbnQKKzg3NzI0IGMwMDdjM2RiYmQzZmJkOWVlM2JkNWI4NGNjNmM3NmZlZjFlOTZiODYgcmVsZWFzZTMxLW1haW50Cis4NzcyNiBhZDJmMzQzODBhYWM4Njc4NDc0YmQ2NTNjZTEzOTZiY2ViZGM2YzVjIHJlbGVhc2UzMS1tYWludAorODc3MjcgM2UxYzNkMmE4Njg5MDcwNWYxMzcyNzY5MDQ1YWQ2YTliYmQzNDQ2MiByZWxlYXNlMjctbWFpbnQKKzg3NzI4IGY3OGU3ZGIxZDVlODY0ZWNlNzk5ZDllN2UxOTU3OTczNjExYTEyZTYgcHkzaworODc3MjkgNDU0OTQyNmVlNGQ2NTJlYmM4NWRiZmNhYzBkMjAzNjUwMTMwNjhjNSBweTNrCis4NzczMCBmNGE4MDhmNWE2NmQxY2VkZGNlNDQzNTE4MzcwMzhjN2ZlNmNmMGMwIHB5M2sKKzg3NzMxIGE3ZDE1ZGY3ZDY3ZDNmMGYxMTMxZmU0OGMwOGViZGVkOGQwN2Y1Y2IgcHkzaworODc3MzIgOThjOGFhMjM3ZmMxY2MxMzk4ZTJkOGQ1NzAxZDg1MTYwMTRhZWRiYiBweTNrCis4NzczMyAzYmY0ZDlmMTY2MGE0YzFkY2VhNTM1Yjk0NDRlNjQ5MmNkNjkyNDNlIHB5M2sKKzg3NzM0IGNkMjc5ODIwODdlYWM0YmIyNDE4ZTU5MzBiYjVhNzAwYzdjMzBiZWUgcHkzaworODc3MzUgOGFhOGRjYTQ2Njg0YjU0ZmJjZGRlZTU3OWRmN2ExZTY4ZmJiYTY5MSBweTNrCis4NzczNiAxZTYyYTBjZWUwOTIyYzNmOWZiODM3YzUxOWY4YTM5MzM4ZTNhMzdhIHB5M2sKKzg3NzM3IDY0MmM4ODA2ODMwZjVmYjQyMDI0MTAxZDFhODE3MjllYmQ2ODdjNzEgcHkzaworODc3MzggMjAwNDNkYTc4NzI2YTM5NGEyYjJiNmQyYTMwNTBmNjJhNTg1MWIwMyBweTNrCis4NzczOSA2MjllYjNiNjk5MDlmMWNjYjZmMWUwYWFkZWQzZmE0OWI1MDRhYTZkIHB5M2sKKzg3NzQwIDM0NzhkMDA3ZGYyMzcyMmRmOWZkMzdmYjJlN2Y0NWNlMDY0Y2I1N2IgcHkzaworODc3NDEgYTNiN2MyOTA3NTRhMGExNTIzODFhOGNhODEzY2JlZjk3NDg5NmE0MCByZWxlYXNlMzEtbWFpbnQKKzg3NzQyIGE2YmM0OTdiMTk2MjQzY2VkOGUzMjAxMTEwMWE5YzVjNGU3ZDgzNzAgcmVsZWFzZTI3LW1haW50Cis4Nzc0MyA3YzVjMzdiOTYyODE2Yjc4NzU0ZTkwNWNhOWRmZDNlYjc1OTE3ZjczIHJlbGVhc2UyNy1tYWludAorODc3NDQgOGFmNmU4ZmMwMjA1YmNjYzY1ODAyN2QxZWYzNzkzY2U3NjI2OGJjYiBweTNrCis4Nzc0NSA0NTU3ZDQ5NWE0ODQ2YzNlNTIyNWY1ZmQ1YTBjNmE1NDhhOTllMjQ1IHJlbGVhc2UzMS1tYWludAorODc3NDYgMDgxOTIyNjVkMTcyYzRjMTA4OTc0N2I2YzA4MTI5MjNkMjQ3M2M4ZSBweTNrCis4Nzc0NyBjMGZlZjhhMTQ0ZmFkOThkZThlZDZhZTBkMjkwZDM1MjQwNWIxMzJjIHB5M2sKKzg3NzQ4IGVmY2IxNGY5NGU3NjkxM2JkZmMxNjEzZTc2OTg3MjhhZjM5MjYxOGEgcHkzaworODc3NDkgZGQzZjI4ZmZkMDI5MDg5ZDA4ZDFmMTZmMzUyOGY2Y2QwYjU4OTg0NCBweTNrCis4Nzc1MCA0OTc4OWE1MmE5NzYyNDQ0MzM2ZDQ4MmMyOGViMzY5MDZjMzY5Y2I4IHB5M2sKKzg3NzUxIDBlZmZiMTc1Yzk4MTliOTQ0MmUyNTBjNjRjY2M5ODVlNzFlNzQwM2EgcmVsZWFzZTMxLW1haW50Cis4Nzc1MiA4NWZiZDc3NTUzNGViN2Q4MDgzNmFjOGJmNTRjOTk1ODExZDVlMWRlIHJlbGVhc2UyNy1tYWludAorODc3NTMgYTBkNGVkYThkYTBhZjBmZThjMDQxNjY2OTQyYzIxYTVlZmFlMmZhMCBweTNrCis4Nzc1NCA0Y2M0N2E5MDgzZTM4OTk5NmZmYWQ0ZTliNmIzOTYyOGJiMmYxNjgyIHB5M2sKKzg3NzU1IDRhODJiZTQ3YTk0ODFiMWMwM2JiOTUxYWU4ZThjNjhjNWU5YTAxZTIgcHkzaworODc3NTYgZGU4NjJkYzBjY2NhZjY5MTIxZTFlOGU3NDg0Njk0MzBlMGYwMGU0YiBweTNrCis4Nzc1NyAyOTYxYWY4MGQ1NDU1OGI2N2VjNGIzNWM3NjNmN2YzMGRkYmJjYTE0IHB5M2sKKzg3NzU4IDUwNjBhOTJhODU5N2U1MGVlZTM5OGExN2MwZTQ5NThkNTQzYmM5ZGYgcHkzaworODc3NTkgZTkzNDhkNjhjZmNkMDAwOGU5ZDg4NTY4NjkyMDE0MTYxMDJiMjQyNCBweTNrCis4Nzc2MCBjMDQyNWI1ZWRlNDdhZDZmMmE3ZDExYjQyMDM1MTZmZGRmZDA3M2U3IHB5M2sKKzg3NzYxIGE0NGJhZGY5ZTAwZjYzZDNkYzVkZjllOWQ3MDYxMDE1YmU1ZmM0ZGQgcHkzaworODc3NjIgYmM1N2ZkZDg5NTYyYjE3MjMxOTg3MDBkMThhNGFhMDk0MDE3MDJmZiBweTNrCis4Nzc2MyA3OTljZDE1MjMxMTE3ZjkzMzk5MDA1M2EwZDZmYmQ0MTNiYzE3ZmU0IHJlbGVhc2UzMS1tYWludAorODc3NjQgYjc0MjZiZTZiYmI0Y2ExZjM4ZmFjYTc5MTVjZTJkODgzNzE0NWZlZiByZWxlYXNlMjctbWFpbnQKKzg3NzY1IDc0NTIyNWFlMjllZjA4MWJmZWQ2MGUxYjc1NmE1ZDFlZjM1YTRjMjIgcHkzaworODc3NjYgOTEyZmQyMGRlMGUwNzIwY2IwNDRmZTQ3ZWJlMzBmMjdjYzkzNmYyYyBweTNrCis4Nzc2NyAxMzIzNzRkNTM3ZTRkMTBkNzZkNmZmZTc2OGYzZTg0MmNiNDMxODhmIHB5M2sKKzg3NzY4IGVkMDI1OTIzMDYxMTJhMGNlMmQ3MDIzMjgxODg4MzcwNzM1NDhlM2QgcHkzaworODc3NjkgYmRiNTdmNDYzYzg1ZmI1NGYzZjlkMmQxMmUwZjc0NzczZjRlOTdlNyBweTNrCis4Nzc3MCA0YmYzYTVhMDQxMjA5Mzc5Zjc3YWQ3NzFhOTAzNTNkNDg0NDU4YWE1IHJlbGVhc2UzMS1tYWludAorODc3NzEgMDc2Mjg5OGZkODAyODZlODdmZjlkYWExZDAyNjlkMjlkMWVlMDNjNCBweTNrCis4Nzc3MiA4ZjUzYTRlODk2MzEzYzU2ZGZlNzVmMjE0ODVlNmI1OGNjODA1OTMwIHB5M2sKKzg3NzczIGRlMzg3OTRkMTc0OTg5YTM5ZWQ1ZWYyMTg2NWYyNjlhOWNjZDlkMTEgcHkzaworODc3NzQgZjA2YzI3OGI0ZjIxMjNlYmJlZjdmYzFhNDRkOTFkNDEwYTg1ZTNlNyBweTNrCis4Nzc3NSA1OGI3ODQ1NTNjYTRmNWE4NDJlZjJlOGQyYzkxNGFiNzIzMDc5ZmExIHB5M2sKKzg3Nzc2IDkyZjYxYTY5MmUzOTQxMzFhZGIzNWEzMGQ0NjZhOTljZDA5NzE4MzYgcHkzaworODc3NzcgNTEwZjdlMjllNzI4MTdlZTFmNmFkODk0OGMxZGJiYmYzNmE1NGY1ZCBweTNrCis4Nzc3OCAyMGUzYWYxZDUzMGE4ZmIzOTkyYzczYzFkNjkyZjQ3NThiNzNhOTg5IHB5M2sKKzg3Nzc5IGNmOWUxZjc0NjRkYzU4ZWNlOWE3NzJkZGVmYWM2Mzk5MDhmOTMwN2IgcHkzaworODc3ODAgOTJmMmQ3ZDI4ZmVlZGIzMjBkNmE1YTFlZTQ0ZjFmYmZmODg4ZmU0NyBweTNrCis4Nzc4MSAzNGQ4OTE1ODBmMzhkNDU2ZjAyMzUwMDY4NDZjOGJiYzQzNDc1MWNmIHB5M2sKKzg3NzgyIDI0N2I3YmE2ZmZhZDQ0ODkxODkwN2I0YjdkMDExNGRkY2E2YTgyMmQgcHkzaworODc3ODMgOGM0NDhhNDI3N2EwZDRmYjlhNjVjYTVjZjhiODY3ZjQ4NmFlNjkwNiBweTNrCis4Nzc4NCBhYmI2ODZhNWExZGZjZDZjMDJmZjQ1N2EzZjIyNzIyYWNiYjU4YjRlIHB5M2sKKzg3Nzg1IGM5YjQ4NGYyYTBiNzA3NDk1N2VjMjY4NTliMTU5OWM3YzUyNTVmMzUgcmVsZWFzZTMxLW1haW50Cis4Nzc4NiA3MWUxYTk5NjE4MzYxOWEzYTI2MjMwNWI0OGZjZGUzYzFlYTRkZmQzIHB5M2sKKzg3Nzg3IDNkODI0YjUxMzdkZGIxMzNkZmU1N2E1ODZmNTcwYTA2NTM2ZGVhZjMgcHkzaworODc3ODggZDgyNGU5Y2ZiZWU4NmRmMGE1YjM1MTlhMmZlNmZiNzZlMzcyNzI3MCBweTNrCis4Nzc4OSBhMzI4OGE0ZTJlYWQ5YWQxMDM3NmQzYmNhNDFmMjNmYzI1NTlmZjBmIHB5M2sKKzg3NzkwIDE0MjI4ODA4OWMxYTQ2NTZhMWEyZDk2MmQ5YzhlYjhlM2YxZjIyMTIgcHkzaworODc3OTEgNWQ2NjY4NTQ4NDI4NDJmOTFjYWFhMzU5YzIxOGU3MmJhMzFlMDM3MSBweTNrCis4Nzc5MiBjY2JjODQyMjJmZGE1OGEzNjA2Y2NmYjk0OWNjMWQyNDdiNWY0MjljIHB5M2sKKzg3NzkzIDE3NzRkNmEyZjViZmVmOGYxZTZiNDE0NTliMTU0ODg2Y2Y3NWYzOWYgcmVsZWFzZTMxLW1haW50Cis4Nzc5NCAyNjgzNmU0N2RmYjkxYzQ3MWI2YTE5MWY1NmQ1ZDg0YzRlNGI2YjExIHJlbGVhc2UyNy1tYWludAorODc3OTUgZDJhNjQ2MTJkMjM1YjZlZjI0MmVkOWFjM2ZlM2Q3YjI3ZDUyODBkMiBweTNrCis4Nzc5NiA2NGMyNDUzMTNjZmY5ZmRkNDZlNTRkY2QzYzViMzk5ODI0NGY0MDE5IHB5M2sKKzg3Nzk3IGE0Y2ZiMjc4MjQxNjRhZmQxY2NiMjU1YzcyNzAwOGE0YTAxZDRhYTQgcHkzaworODc3OTggNTkxOTIyMjk5YWNjMTExOGFkMDMzYTdhYjg4NDFmZmYxNjk3ODA3ZiByZWxlYXNlMzEtbWFpbnQKKzg3Nzk5IGIzMzJlNzNiNTU2NzA3YzRhMTA4OGIwMDg5ZDAzZTY3MTYyYzhjMTUgcmVsZWFzZTI3LW1haW50Cis4NzgwMCA3ZTdmYzk0ZmQwZDQxNGZiZWMyMzNlN2EyNGI1MjY2YjZmYmYzMzk4IHJlbGVhc2UzMS1tYWludAorODc4MDEgNDE5Y2EwODlkMzY1ZjMwMTRhNGUwMmI1MGE5NGVmMzBmNzY1ZDcyMSByZWxlYXNlMjctbWFpbnQKKzg3ODAyIDZhMWQwODA2MjNkNzdiODI1YzFkZTc3Mjk5ZjM4NjgzM2I2YzM1ZDAgcHkzaworODc4MDMgNzIyMjY5Nzk2NGZjNzQ0Mzk5YzhlZTExOGJiMzk0OGFkMTVkZDFkYSByZWxlYXNlMzEtbWFpbnQKKzg3ODA0IGM3ZmQ5YjZhYTAwMmVlMzAxY2UzZmY5ZThlN2MxNmYyZWVkYTBiZmIgcmVsZWFzZTI3LW1haW50Cis4NzgwNSA4YTMwMmEwOWVlODNhNzY5MDVlZWQyZTA1N2ZmZmU4YjkwYTZiMDMyIHB5M2sKKzg3ODA2IDAyMGRhOWI4N2RhYTg5MTMzNGJiNzg0MzhhMTA0ZjBhYWQzZWQ3MjcgcHkzaworODc4MDcgMWQ0ZGM5ZGYyNDk2NzI4MjM1NmZiOTY4ZWE0ODQwMGQ2NzI0NmM4NCBweTNrCis4NzgwOCAwMWIyNTMzMzFhODZlMDY4MGI3ZDRiN2ZiNGE2ODgyM2E4NzI5YjQ2IHB5M2sKKzg3ODEwIDdiYTVmNTdjNzRlNTc2MjhjYTQxY2Y1NWY2MzBkOTQyY2ZiMTkxYjkgcHkzaworODc4MTEgN2U1Nzc3ZTFmMGZkYTNmMTM2YzljMTQ2ZTkzMGJjMmRiYjMwYTI5ZiBweTNrCis4NzgxMiAxMmNjODEwNjJkNGE4NGY2NzBiOGJhODgzZDQ2ZTg5M2EwMjU5YzgzIHB5M2sKKzg3ODEzIDQzYzhjMWJkZDk0ZmQ4YWVmZTk4ODVlMzIxYzExZjg2MTA3NGFkZDcgcHkzaworODc4MjAgODNkM2Q1ZTA2ODdlZmU0ZDExODg3ZTBiZWFkMzliYjdhMTQ1YmI0YSBweTNrCis4NzgyMSAyZWU2YjQ0NGM5M2RlZTQ4NTAxMTYwNjAzNGI5ZDc5YTA0MGMwZjEwIHB5M2sKKzg3ODIyIDUyNjBmZDEyYzc2M2RkZDNjOWQzMjNmNWQzMTM0OTUzNDEyYjM0NjkgcHkzaworODc4MjMgMGIwYTJiNmMzYWQ5ODM1NzdiODQyNzJkZDViNmJjNDc4ZTk5YTY4YyBweTNrCis4NzgyNCAwOTMzYzM3NTNhNzEyYjlmOGFmMmQyM2U0MGFlMGRkYTFmOGFjMjU0IHB5M2sKKzg3ODI1IDE0MjcwZmU4NGRjNzcxZjlkZGY4Njc1ZGRhOWIwMDgzNjRkNDEwY2IgcHkzaworODc4MjYgM2VhMjgwOTk3MDAxZDQyM2FhNGE4ZjA0ZmRkODZjOTBlYTk0NGE4NyBweTNrCis4NzgyNyAzNzc4MTU5ODVjYWYwZDAzYzNlMzY4YjliNDkwM2E0YzNjZTA5YWU5IHB5M2sKKzg3ODI4IDVmOGViOWU3YWNkYzA2NWFlM2EwMDZlMTc5MWZlZWM3OTI2NTgzZDYgcHkzaworODc4MjkgMTIwNzRmM2FiODA5NWY5MWE0NzM2OGFiYWQ3MWQxZjZmYWZjNWExMiBweTNrCis4NzgzMCBkZjlhMDYxNjAwNGQ5MmU5N2Y4NzFhOGE5NWRlMzk3ZDBkOTBmNTlhIHB5M2sKKzg3ODMxIDEzM2RlZTgyYTAwOTYxNmUxYzBkY2NmYTVkYmE4ZjkyYjE3MzM4OTMgcHkzaworODc4MzIgM2U3NWNmM2Y2MzU1NTY3ZGRhODZmMGE2NjdmYTc3NzJhZDZlOThmZCBweTNrCis4NzgzMyA2NjU4N2U5MGZkZmI2MjdmODhhYjFhYzdhMjlmMzEwNGRhMmE4ZmQ0IHB5M2sKKzg3ODM0IGY1OTUwZGYwM2NlMjEwYzUwY2NkOTY1MWVhNGMwNjZjYmJkOTQ5MzIgcHkzaworODc4MzUgNmE1NzExOTY1NTcxYWIyMDZiNTQ5ZWY0ZjAwNjM2NjkwZDQ2MTcxNSBweTNrCis4NzgzNiA1NGZhNjIxNjU4NTMzNWIyM2FjNTRkYzNiZWZmYWRlYjY1YjQwZTQxIHJlbGVhc2UzMS1tYWludAorODc4MzcgMGRlMTkwNWE3NjFmODdhZDgyMzQ1YzY2ZjRhZTMyY2NiMzU3ZWY4OSByZWxlYXNlMjctbWFpbnQKKzg3ODM4IDA4MGEwZTk2YjQ4MmIxM2MwODg3Y2UyZWI2MjlhNzA3NzdhNDRkYjYgcHkzaworODc4MzkgYjBiNzljMzczNGFjZGZhZjlmZjQzZTc1ZmUzOWE5MDBlNmVkMjg3OSBweTNrCis4Nzg0MCBjYWQxODExZDllMTNlOWZlODE1ZDE0Nzg3OGVlYzMwNjA0N2ZhYzFlIHB5M2sKKzg3ODQxIDM5N2I5OWY1OTEyZTc2YjZjNTc1MTFmZjk4N2Q1MTkzOWJmNzMzZGUgcmVsZWFzZTMxLW1haW50Cis4Nzg0MiA2MzFlODMwMDE2YzBlNzRmNWQ5MzRhZDM1ZjA3ZmI0YTdjYjhiNTM1IHJlbGVhc2UyNy1tYWludAorODc4NDMgMzE0NjU5NjhhZTI2MzVjNjVmNzA3ZWU4MjVmZDFkMTQyYWQyMTY0ZCBweTNrCis4Nzg0NCBjNmI4YzViNTY0YThjNDQ4NjI2N2IyODliNTM5MmIzNTQxMjVkNzFkIHB5M2sKKzg3ODQ1IDg3NTdjZDY1OTI5MTk0YTRiNGM4MGFjMGNmM2QwOGY4NjY1OGZiYWYgcHkzaworODc4NDYgMjUzZDkxZTRmNjcyOTE0NDI1Njg5NmYwY2MwNjk2YzUxNWVjMjU0MCBweTNrCis4Nzg0NyAzYjc5ZWM4M2NlMjE2NjZmNGI1MDY1YTc3NWM4OTkxZDRlYWYzOWMwIHB5M2sKKzg3ODQ4IGU0ODA2MDQ3NjdjNGQzMTM3ODIyNzgyNjA5MjA1YmVjNDQxNTdkY2EgcHkzaworODc4NDkgMTU5NjdiN2YwNThmMWI3ODJhOWQwYjYxZmZhYjRhYjIxZWI5YTQ4YSBweTNrCis4Nzg1MCAwZTFmNGRmNDc4ZjY2OGE3NGRiMTdkZDViN2U1NWJmNzU1MGNjYTQ0IHB5M2sKKzg3ODUzIDY0OTJhNzEzODg3ZThkOTM1MGNkMDYzZThjNGRjYzM5MzFmNWEwMjQgcHkzaworODc4NTYgZGM5YTU2ZGRhNDI4N2Y3NzYwODY2NDMxZDJiMjFhNjk4NDIyMmFkNyBweTNrCis4Nzg1NyA5MGNiYTZhNjcyZjBlOWJkN2MzYjZhNTRiZjVjYjk5YzY2MjhmNmY5IHJlbGVhc2UzMS1tYWludAorODc4NTggZDY1NjZhNzBjYWEwYTg0YjRmMjE3YTJhN2U3ZjIwNDYzNzU2Nzg5NCBweTNrCis4Nzg1OSA4MjM5ZWM2ZjM5ZTYyNTUxMDg5N2U5MzdlOWRmZTU1ZGMwZmNmYmIzIHB5M2sKKzg3ODYwIGMwM2Y2NGM3MWIwNWFjZTBlY2JjNWQyZTc2N2ZlNmNiMjhmNTA5YzggcHkzaworODc4NjEgMDkzMjNjOTExMDlkMmZjZTFlNTcwNTUzODQwNDc2NWViZTU1ZTRkNiBweTNrCis4Nzg2MiBjNmQ0NTM0NTYyZjQwYTEyNzJkY2NjZTgxMWQzYTY1MjJhYjYwZTcyIHB5M2sKKzg3ODYzIGYxMmRhNTNiOGQ2ODMwNTY3ZWI1YmU3ODI5Y2RiOWNmZDE1NDdiYzIgcHkzaworODc4NjQgYWJlMjAxZGZkM2RjZTJmYjcxMTg4OWVjZGFkZDZkNjQzY2UzZWRhNCByZWxlYXNlMzEtbWFpbnQKKzg3ODY1IDA3NTk3NGE5MGMzMWIwYzdlZTA1ZTI2ZDgyNjUzZDU0NTgyNDEwOWIgcHkzaworODc4NjYgNGQxOTI3MDkxYjM5Zjc5ZmEwNGIwNTIzMGJiMjkwMmE5ZmE5ZmUyMSByZWxlYXNlMjctbWFpbnQKKzg3ODY3IGVhMGI5NGQ0NzU0ZDc1NWJlZmE0ODc1NmU4MGFjMjFjZDM2ZmJlM2YgcHkzaworODc4NjggMjA1MTdhYTNhMzU4OWFjNjA4OWE4ZjgxYWIxMGQxZTc1OTJkYjJiOSBweTNrCis4Nzg2OSA3MjYzYmQ5MGUxMTBkNDY2YTQ0ZDJjOGYxMmFhNzRkM2EwNDJjNTQzIHB5M2sKKzg3ODcwIDNlZDNjN2M2YjYwNWQ3ODA3MGUwYmExNTI5M2Q0MjQ3YzNlNTQxNzUgcHkzaworODc4NzEgMWY3MWM0M2FkN2UzMzhmZjMwZTVmNzNlMDkzYWZiOGJiZWNjNWU5MiBweTNrCis4Nzg3MiA2MTU3NzhiZTk4ZTk5NTI1ZTdkZmUyNzEyMGNkZTBmMjE1ODkzOTNkIHJlbGVhc2UyNy1tYWludAorODc4NzMgOGJiZmYxYzI0YTMxMmEwYmY3MzM4NDM4ZWI5NjdkM2JkNjJhMGIyNCBweTNrCis4Nzg3NCA5NjZiODdmMjM5NWNjOWM3MmI2OWYzZGE5NGExOWNmNTliMDdmZWU5IHJlbGVhc2UzMS1tYWludAorODc4NzUgYWRjN2UxNjcxZDhjMzk1YTJiODg4NTYzMGUyNDRhOGQ4ZTcxYzNmZiByZWxlYXNlMjctbWFpbnQKKzg3ODc2IDlmMTNkYzQzOWRjNTFjNjk1NWQyMmZiYWUyZWFhYzg0NTI3ZDhhMmEgcHkzaworODc4NzcgMTljMDUwNTFiZjFhMDJkMjBmOGQyMTBiZTYwNTUyNzlhZDQ5MDYwOCBweTNrCis4Nzg3OCA5YjJlNjBhZTRmZWY5N2RiMzBkNzM3MmZhMWM2ZWYyZTVhYWEzNjJlIHJlbGVhc2UyNy1tYWludAorODc4NzkgN2VjMjE2NTNhNGQxZTU3MmU2N2U4NWMzNDk0Zjk2ZGViZDdmNDlkZiByZWxlYXNlMjctbWFpbnQKKzg3ODgwIDk1MzAxYTQyODUyZjU0MjVlOWFlMTBkOWE4MWJjYWYxMTk0MTI4ZjMgcmVsZWFzZTI3LW1haW50Cis4Nzg4MSAyZTc0MzY5YjRmNDA2MGFjNjc3OWM2MjhmM2VjMGVjM2JjY2M4ZjFhIHJlbGVhc2UzMS1tYWludAorODc4ODIgMGM5NGM2ODFmYzUzMjBkYzI4MDg4MTMyMzQ4N2Q0NmI5YTBjNDFiOSByZWxlYXNlMjctbWFpbnQKKzg3ODgzIGU0ZDA3YTZmN2FiZmMxNjYxOWZhNTg5MzExY2NjYzlhYjVmZTZhOGYgcmVsZWFzZTI3LW1haW50Cis4Nzg4NCA1YWI5NjM2NGU3NjE5MDBkNDUzMmE3MWU3OGQ5NDJjNGRmOTBiYmI2IHJlbGVhc2UzMS1tYWludAorODc4ODUgZGU3NjJiMDFjMzY2NGI0OTQ3Y2EzODIzNWViOWI1NjFhMjA5OWUzYSByZWxlYXNlMzEtbWFpbnQKKzg3ODg2IDU4YTFiN2U4ZTc1MzIzNjlkMGZjNWY5OWViYzEzZjdmMWQ2NjNmMzQgcmVsZWFzZTI3LW1haW50Cis4Nzg4NyA1Zjc3OTA3YjAwNDFlN2UxMmE5MTRmZjliYmY1NmY1NDkzN2NiMTEzIHJlbGVhc2UzMS1tYWludAorODc4ODggNGFkNjE5NmYzMGE1YjIyMDhhZmE3NjkyZTg5N2QzMmU0YWI1NDBhNiByZWxlYXNlMjctbWFpbnQKKzg3ODg5IGUxYjgwZTM5ZTQwZjMwYzMyNzUwYTJiMjkxNzZmMDVmN2M1N2ZmNTIgcmVsZWFzZTI3LW1haW50Cis4Nzg5MCBiMzNiZjY2NGM0OGFhNDk1ZThlYjk3MjM3YmIyYjc2MjBlZGI0YTMxIHB5M2sKKzg3ODkxIDE1NzFjYzA3MmZjMmFlMzA4ZTc5OTkzNDc2ZDJiZGFmODRhYTE3NTUgcHkzaworODc4OTIgNjgxZDA1NDJiYmJkMDdlNjQyODllMzljNzA1MzczOWQwNmYzYmQwOCByZWxlYXNlMjctbWFpbnQKKzg3ODkzIGZmYjJjMjRiY2I2MjZkZDhlMTJlOGYzMzQ5YTA5YTI5OTFjOTM0MDQgcmVsZWFzZTMxLW1haW50Cis4Nzg5NCA0YmQyOTZjNDk1MjZmNjM1MDM1NjFiMjRiNzcyYzYxNDBjYjUzYzU4IHJlbGVhc2UyNy1tYWludAorODc4OTUgYTIyZDYxYmU0ODQyYjQwYzc0NTQ3OWYwOWRiYTNlOWRjOWU0MjBhOCBweTNrCis4Nzg5NiBmZTZmY2FmN2JiMTdkYTRmZjA1OTU0Y2FjNmI5N2YxNTczNTIzMzU1IHB5M2sKKzg3ODk3IGY4YzY4MzE4NGFmZmRiN2ZmZmJiY2I1YmZlNDE5MmQ1OTNjNDhmODkgcHkzaworODc4OTggOTc0YjI3YzlkODQ5ZGY0YzlkNWEyMzE2Njk4YmRmZmY0MDU4ODg4YSBweTNrCis4Nzg5OSAxYTM3ZjRiYTFmOTIwMTgzZmU4MjE2NzJhNDczZjE4M2E4N2QzZGQ3IHB5M2sKKzg3OTAwIGMyYzRhOTk0NDU5NmY0YzEzNmUwNDg3ZGQzZDNlZTNjZjg3M2ZiNzEgcHkzaworODc5MDEgYzRhNTI1MjZlNzdmYTY0MjE2ZGIzNGJjMDM3Y2I4NzdiOWIyMzQ2ZiBweTNrCis4NzkwMiBiNWE3OWI1Y2EyMDM3MmE2MDE3YjRhYWJhZjVmNzE0ZjkzY2FjNWZhIHB5M2sKKzg3OTAzIDNjMTJhYjllMjE0ZTllY2Q1MTQwZTIxMjI0MzdiMmI5ODI2NzUwYjQgcHkzaworODc5MDQgZWEzYWM2MmVmZTY3Y2Q0Y2RmN2ZhMjc1YzhiMGY0N2ZmMzRiNWMzNiBweTNrCis4NzkwNSBhMmIxNjFmMTc1MjUyZmRlN2QxNGZiY2ZlY2QxZTk3ZjAwNTFmODNlIHJlbGVhc2UzMS1tYWludAorODc5MDYgNTY3ZDk2MWJlMDgzYzU3NGVhNjM0ZDkxNWMwZDE5MWRiZWM4YjBlNCBweTNrCis4NzkwNyBlYzU4ODkwOTc1ZjFkMmYwY2JmYzlhYmZlYmYxNmRiZWIyMGNiZjY4IHB5M2sKKzg3OTA4IDk4NTVjOGNjY2IzNmMwZTA0YWQxOTU0ZDIwZTc3ZWE0OGM3YzA2ZmEgcHkzaworODc5MDkgZGI3YTMyZDkwY2Y0YTJkOTM1OGI3MGNmMzRlOWQ2Y2Q0ZmUzM2M4NCByZWxlYXNlMjctbWFpbnQKKzg3OTEwIDNlNmRlODg1MWYyMzEwMTY1Zjc5ZDFlYjM0MGJkMDVkNjIxMWQ5N2YgcHkzaworODc5MTEgMTQ1MDUyMWI5ZDkzZjRhYzBlNWVhYTYyZGYxMWNmZDhhMzEwN2ExMCBweTNrCis4NzkxMiBlMGE2NmFhMzQyN2E2OTY5YjNjYTgzMTFkMGJiODM3NWRkNGVhMjQ2IHB5M2sKKzg3OTEzIGU0N2Q4ZDk1NWJkNjEwODNkZjE5YzMxZGJiMzZiMjA2OTM4NDgwYzMgcmVsZWFzZTMxLW1haW50Cis4NzkxNCBhZTk5NGJkNDY2MTc4YzkyZTg5M2ZkNDQzNWZkMGFjM2FkNjhmZTliIHB5M2sKKzg3OTE1IDY1YWRkN2E0MGY3MDIyZjI5YzQ5MDViMzYwMWQxMjgyOWYyYjZiNDcgcHkzaworODc5MTYgZWRmMzAxYWYyNjE2MTNhZGQwYjczOWQzOTVjNzFiNjU1YWY4NjkxNyBweTNrCis4NzkxNyBhYzZjYzE0MDRlMTUwNTc0NDBlY2VhODA2YzdmYTAwN2Y5N2U1ODAwIHB5M2sKKzg3OTE4IDFjNjVhYjQ0ZDM2NzFiM2Q0OGZjYTQxYjYyN2ExNTQ1ZTE3MGJhMTQgcmVsZWFzZTI3LW1haW50Cis4NzkxOSBkNzA1MjJjYzlkNGZlN2E2NDJlMWQ1NzNmMTk3YmQ3MGMwMWMxNGMzIHB5M2sKKzg3OTIwIGFkMGViNTdlYjJiNWI4NzZkOTdhMDczNTFlNTlkMmE4YmYxMTE5Y2QgcHkzaworODc5MjEgYzBmM2FjMTkzOTJiNjE5MzQzOGY4ZmVmY2M0MTViZTA1OGMxMDYyNyBweTNrCis4NzkyMiBiMTZiMGQ3NTRmYzkzYTU3ZWFjNmQ5MTAxNmYwZThmZWI4NmNkMTI2IHB5M2sKKzg3OTI0IGQ1NzM5NzEzMTEyNDJhZTg4MmJjMGFiOWUwNTk1NjA4NDY3ZTJiM2QgcHkzaworODc5MjUgZGI4ZDE1OTMzMTIxYzI3ZmI2MGVmN2Q5ZmE0YjQxYzI4MmU5ZjIwOSBweTNrCis4NzkyNiA3OGZmMDhjY2QxOGI3ZmRiYTlkMWZjOTFlYjQ0NGUyNTA3ZGYwM2Y0IHB5M2sKKzg3OTI3IDc1MTM3MmI3OWVkNjkyNWE3NzE0YzQ1NWQyZjY3YjM1YmQyMzFiNzcgcmVsZWFzZTMxLW1haW50Cis4NzkyOCAyMDk2OTgyMWJiNjE0YTNhYjk3NjI1MmRlMzA3OTI4MjcyOThkMjk1IHJlbGVhc2UyNy1tYWludAorODc5MjkgN2I1MTU5NGExNWRlZDE1OGQ0YmIyNzQzODVlZWJjMmM5ZjM2ZTg2ZSBweTNrLWNkZWNpbWFsCis4NzkzMCBlZDZkMDUzZWViYTVlYjY3MmU4ODlkYzg4OTUzYTM2YzgxMGEyNDg1IHB5M2stY2RlY2ltYWwKKzg3OTMxIDlmYTA3ZTdjZGYzODYyYWY1MDdmMzM5NWZlZWI1YTMwMjI0YzFiMGUgcHkzay1jZGVjaW1hbAorODc5MzIgNGI0NjljODdkN2UyZWE4MTMzNTIyNDM5ZmUxMWI5MjQ3OGMzODQ3MiBweTNrLWNkZWNpbWFsCis4NzkzMyA4MzA5NTJhNzFkMjE3N2Q4MWE0YWRlZmEzM2I2NmM3OWZiNDU5NDFkIHB5M2stY2RlY2ltYWwKKzg3OTM0IDA0OGFkMDcxN2E0NTIyOWFmMzBiNzhiYzk3ZGE0YTA4NGI5NzMzYWQgcmVsZWFzZTMxLW1haW50Cis4NzkzNSBmODI3ZjcwM2VmNjVjMGU0MDNjMmVhOGNkNTg5ZDIyZDdkMzZhZTJlIHJlbGVhc2UyNy1tYWludAorODc5MzYgYTNjMzc5NThhMjA5NDhkYzU4YTFkMjBlMzc5NDcxZWY1NGMzNDRiNSBweTNrLWNkZWNpbWFsCis4NzkzNyA3MDdmODkyN2Q2NjMwNjBiN2MyZWM3ZDZhMTJlMjJjZmEyOTIxNjdmIHB5M2stY2RlY2ltYWwKKzg3OTM4IDIyNDRhYzZjMmE5YmZiZmQzZmM2ZDMxOGU0MzA2ZTUzMTZmYTVkOGMgcHkzaworODc5MzkgNTRjODY0NDQ1M2Y5MTM0ZGMxYjg1ZGVjNWYyYTcwZTFkMzk1NGYwOCBweTNrCis4Nzk0MCBjMGI5NWNkYWY0NjBhMmE4MjMzZmFhZmY5MDc4NjQwZjI4ZTI4ZmZmIHB5M2sKKzg3OTQxIGNiNzU0YTU4MmIzNDBjNTkwMTljNGQ0MzA0MzA3ODJlN2VhZTdlZWIgcHkzaworODc5NDIgMjU4MWExN2IyOWFmMDMzMTkyMjViMDNiODdiMDA0M2IxZGViZTA0YiBweTNrCis4Nzk0MyBkZjM0YmIwODY5YmM4NTJkNGI0ZmQwN2NlMjY3YjFjYTc3MDQ0NTMxIHB5M2sKKzg3OTQ0IGVjOTZiNWI1NzIzYmNmNDMyNjc1MDEyNDVjNDdjOThiZTljZjc0MTkgcmVsZWFzZTI3LW1haW50Cis4Nzk0NSAxYjFhNjQyOTcxNDk3YWQwY2U1ODBkNjcxYWY4MzE3N2ZjNjI5ZmNhIHJlbGVhc2UyNy1tYWludAorODc5NDYgN2YwZDBjOWEyZDcyOTM5OWMyZjI4Y2MzOTAyOGNjNTI5MGZjYWQ2NiBweTNrCis4Nzk0NyAyNjljZjQ2YzA5YWY1YjgzMzdiOTAyMTdiMjI2OTAyNDY0YWIyOWI0IHB5M2sKKzg3OTQ4IGZlZjUyMWY0NWFmM2E5MGE2OGI2NzQwOTcxNTMzZDUxYTc4MzdkZDEgcHkzaworODc5NDkgNDliMGIyYmMwZTgzMzFiZGY5ZTQyMGJkYWYzMmY4MWJkZjFiNmQ4ZiBweTNrCis4Nzk1MCA0MzUwNzIxZGVlNTUzZjNjYzYxNWZmYjQ2NDNlNzJkMjExYzIwYWU1IHJlbGVhc2UyNy1tYWludAorODc5NTEgNjAwOTM4OGNhNWEyM2ZmY2FiNzYyMTViZjNmOWJhMWM5OGEyMWMxMSByZWxlYXNlMzEtbWFpbnQKKzg3OTUyIDc0YmY5M2JlNTY3MTAyZDExOGY0MzQyODMzNGZjYTk1ZTMxNDdhMmUgcHkzaworODc5NTMgNjAxYmNiNmZmNzUyZDc1YzcwMmYxYmNlYjI0ODBkMTcwM2I2YTdmMSBweTNrCis4Nzk1NCAyMzZlMTFiYTE4YzU3Mzk2ZDU3MmU0YjgyZTRhNTcxZWY4ZjkzNmYzIHB5M2sKKzg3OTU1IDJlYTFjZmRmOTI5YmVlMDkzODZlNTYzYzBjMjQxMTQwNDA3MDU2ZjAgcmVsZWFzZTMxLW1haW50Cis4Nzk1NiBkZGFhMTdjMDk4ZDkzZGVkYzY3Y2I3NmFmNjA3ZjgyMzU1OTQxYWUzIHJlbGVhc2UyNy1tYWludAorODc5NTcgOTE0NDY4MTdjYzNlOGU3M2ZjZTQwYTc5M2Q3NTBkYzI2MGU1MDhmYiBweTNrCis4Nzk1OCBhNTAyMTQ5NjZkMjQ4MmVhNmVlYWUyN2Y2ZWNiMmEwNzRiMTZjMGY3IHB5M2sKKzg3OTU5IDc3ZmUzZjE2MDg3YWY5ZjFjNzM1ZTYxYThhZWQxMDE0ZGU2ZGVhM2YgcmVsZWFzZTMxLW1haW50Cis4Nzk2MCBhZWNjYmQxNjk3MGY4ZjY1YTIyZjZhNTdlZjA5OGVlMzBlOGQ5NDJjIHB5M2sKKzg3OTYxIGUxNTI2MGE0NGU0NDc4ZmE0NmRmNzBjMmVjNzkyMGIwM2RhYTNhZmYgcmVsZWFzZTI3LW1haW50Cis4Nzk2MiA1MDQ4YjI3MjAwZDc0YTEwNzVjZmU1Y2JlM2UwNzVlNTJlZWVhZWEwIHJlbGVhc2UyNy1tYWludAorODc5NjMgNmNjNTI3N2Y1ZTdhYTMzMzUyMWVjNzQ1NmZlMTViM2U2YWVmN2FmMCByZWxlYXNlMzEtbWFpbnQKKzg3OTY0IGFjMGViNWRmMmMwNWJlYzE4ZTNhOTc3YzJjOWMyMDhhNThhYzZkMDkgcmVsZWFzZTI3LW1haW50Cis4Nzk2NSBkMTIwMjE4ZDgwYWI0M2I0YzdlZTkyYTI1YmFhZjNmZWJkM2YyMWQ3IHJlbGVhc2UzMS1tYWludAorODc5NjYgM2VlYWVjZjAwNWMxNGQzOGM0ZjdkMjA1YTM1OWRiMWVmNjljNDMyYyBweTNrCis4Nzk2NyA2ZGNkNDkxNTA2ZWQ1MDUzMzE4ODQ3MmE1OTU5YjNkODJiN2UxNDJjIHJlbGVhc2UzMS1tYWludAorODc5NjggYjliNTUxZWQwODU4ZDJiN2RiMTQzM2IwMzFlODE1ZDQ0MjEyNzAyOCBweTNrCis4Nzk2OSA0NWEzOTFjZGM2OGFjMjhkY2QzZDRhYmY4YTJhMGYyMzY5ZmEzZjFhIHB5M2sKKzg3OTcwIDRhYmZiNzY3MGVhZGRhOTA3YmQ2MWUyMmUxNTIxOTcwMjMzNjIxZjggcmVsZWFzZTMxLW1haW50Cis4Nzk3MSA0MWJkYzAzMmU3MWFjZDdmNDQ1NTU0YTUxMWVhYTlmNWNiMDY2MDZmIHB5M2sKKzg3OTcyIGUxY2MzNTcyODQ4MWVlZGQ0Yjc1M2U2MGFiNzFhZjAyZTczOTA5ZTkgcHkzaworODc5NzMgNGU4NmQ2OTViYTk4YTU4MjI5ZGU0ODJlMzUyZDBiNjgzZjk2ZTFhMiBweTNrCis4Nzk3NCBjNjY5YTY5NzZiZjhjZjJiN2E3NDczNjEwNWU1NTJlYjRhYjAyNWVmIHB5M2sKKzg3OTc1IGNjYmQ2NTg3ZjhlZDVjODcyMmQwNDcyMjViYTNjMDFlMTY3MGJkYmYgcHkzaworODc5NzggZjkxNmMyYWEyMzhmZThhMjBjZTY1OGEyYjlmYWEwODVhZDAzNDY5YyBweTNrCis4Nzk3OSBlZmRmMjU2MTdiN2NkNDI3ZWE0N2I4OTRiZWMzYjhhYzJhZTllNTQ5IHJlbGVhc2UzMS1tYWludAorODc5ODAgZTEyNWQ5MmY3NDM4ZTEyZmZmOGYzY2QzZGM2NTk4YzczYzE4MDUwMSBweTNrCis4Nzk4MSA4NzE5ZGQ3MTIzODRkYjU5NjlhNTI5M2VkMmE0ZGMxOTczZTQzZmNjIHB5M2sKKzg3OTgyIDEwZDY3ZGI2Nzk0MjBmNGU3NTM3OTVjYjQyNjE5NWE0NmRlZDBmYmMgcHkzaworODc5ODMgY2JkYzhiMWU2YmQzOWNhMWM1YTliNGMwYzc5NjkxNjNjMDNiYjdlZiBweTNrCis4Nzk4NCA0ZWFlMzNmMzc5N2M1ZDFjZDIyZTY5ZDQ5ODQxZmViN2NmZTg3NzM5IHB5M2sKKzg3OTg1IDI1ZDUzZTQ0OTdkODUyN2Q4OWUyNjAwYjdkODVkNzlmMGQ5YTEzZWUgcmVsZWFzZTI3LW1haW50Cis4Nzk4NiAyZjA4OTRjMDJiZjJiODhjYTAyMmYxOWEzZTkyZGNlOGVmODJiODA3IHB5M2sKKzg3OTg4IDdjYmI1ZjNiNjk1NGI5YWMyZjI1YjI5OGE1MWE2YjAwNGI2NGZhNWYgcHkzaworODc5ODkgN2Q2NThiNDliM2UxNGU5YjE2M2VjMmIzYmMxNmQ5NDkxZDE0NTAxMCBweTNrCis4Nzk5MCAzYWM5YjdjZjc2MTRjZGUwMmY1YWRhMDUzNDViMzAzYjg1NmFiNzcwIHB5M2sKKzg3OTkxIDYwOGYzYTYxNThhOGM4MTMzNzg5MDc1MzIxNjFlYjE1NTU4MTlhOGIgcHkzaworODc5OTIgNDc0YjJjZTA3OTRmZmFmZmNhZTRlMzZkYzUxZmQ5NTFmNDU1YTFiNyByZWxlYXNlMjctbWFpbnQKKzg3OTkzIDAzNTNiMTYxM2FhODE0YmM2YzkzZTI0NDllMjIzNDliZTEyODhhNDAgcHkzaworODc5OTQgZjE5ODI0YWFiMzljODBiZDQ2Y2VjY2Y5ODliYTE2MDNjZmE4YzYxZCByZWxlYXNlMzEtbWFpbnQKKzg3OTk1IDI0NGEyNzQ3NzM5NmQ0YTI5ODA0YTRiZmJhYWUxMDY4YzM3MmY5YjEgcmVsZWFzZTMxLW1haW50Cis4Nzk5NiBmNmU5YWM0Yjg4MTM2YjM4ZDk0N2MxZTYwMTVmZmEyOTFhZjE2YWVhIHB5M2sKKzg3OTk3IDdmODg4OGI0ZmRmY2FmZTlhM2QwMGU4MjIxOWE2NWM5ZTFmZTczN2MgcHkzaworODc5OTggZDg2NDMyOGE3NGU0MTQyYWEyODZmODIyYzRiODI3ZDFiNzBjZDkzMCBweTNrCis4Nzk5OSA5NmZmZTRhMzExZGQ0ZDVmMDU0OGMzYmQwNWQ0ZTMzYmVlNGNmMzZlIHB5M2sKKzg4MDAwIDM1OTNiMGQ5Y2FhNzRjOTA0OGIwOWQ4NGUwMTlkNDE3NWYwMGMwMjYgcHkzaworODgwMDEgZmViZTA0YTZkNDg2NGRkODhhODgyZjE3ZjMzZjAxMDJiNDdmOTYyMyBweTNrCis4ODAwMiA0NDMwZTRkNjM1OTQ3YTJhMTRiZDU4YjM2NDQ0MjI1ODgxYTViMjE4IHJlbGVhc2UzMS1tYWludAorODgwMDMgMThhYjhlMGU2NzAyNWJjMzM5YmI0MmRkYmYzYmUwNDg5MzIyMjlhNiBweTNrCis4ODAwNCAyYWZjZGY2OGEzODkxZjc5NTJiYTFjOGUzMzMzNGQzNzliNjQ1MDFlIHB5M2sKKzg4MDA1IGIwNGRhNTQ0ZTEzYmJmNTQzZDdmY2RmMmZjYjQ0MDA1NmQ2ODM2MTkgcHkzaworODgwMDYgNDg0NTQ3NjVkOGUwY2U2NTUwYTA0YzRkNTNhYjM3YTI4YTk3Yzg2OCBweTNrCis4ODAwNyA5MTFkMGE3NDYwOWUyMTgwMjBkM2RmZTJlZDBhMTg0YzA1MGM1NTA4IHB5M2sKKzg4MDA4IDdiMmQ3Y2VkYWZiMGExMTYyZjBkMjViZmM4ZmI2MGNkZjU3MGMzZTUgcHkzaworODgwMDkgMGI0Yzk5NTI5OWRkY2VkZDE1MjdhMmNlY2UyYjkwN2EyNmVmYjEyNiBweTNrCis4ODAxMCA0ZGM1NTAzNzMxZmVhMTc2N2NkNmNhZThlZDlhOGMwZjNhZTM5ZGU0IHJlbGVhc2UzMS1tYWludAorODgwMTEgMjkzMDM5M2YwYmJiOTFkYTVjNGU2MDQ1NWE1ZTZkYWU0MWI4M2FhMSBweTNrCis4ODAxMiBhZTA5OTQ1ODMzNDUxYmI4Y2I1YzczMTllZjFhZTc5ZjkyZjJlOTk4IHB5M2sKKzg4MDEzIGMwYzU5NGFlZjg0MjM1ZTcwMGEyZjMyYWM2ZjQ5MjlkYmJiYzQzYTEgcHkzaworODgwMTQgMzk2OWE2Y2ExNmFmMjkxNzZjNDg2NTI4M2I4NmYyZTA4ZGU1ZDI5ZCBweTNrCis4ODAxNSAzZjk5YzM2ZDAwYjhhZDVmMjdjNTY5ZWMwMTg2NzJjMTYyNzU3MTVmIHB5M2sKKzg4MDE2IDkzYjdjMDU4MGM0MzQ2OWJmYmExN2NmNTExODg0NWQ4YzE0YTM0MmUgcHkzaworODgwMTcgZjEzMGJlMDFkMjMwMGQ5OTQzMmYzYmFlY2NlZjFmNGJhZjc5MTIzMCBweTNrCis4ODAxOCBiZWVhYjBmYTQxZTVlYWZmNjk2YWFlNTlmMjMyYzZiNDdlMDAzNzJjIHB5M2sKKzg4MDE5IGIwMzc0N2FkYTQ0ZDZhODAyNTEzNjEyYTJhNDk5MDdlMmI3Mzc2MTQgcmVsZWFzZTMxLW1haW50Cis4ODAyMCBlZjA3NzdhZjk5NzhlZTJiMjdmNDRiOTg5ZjZhY2ZlZjZmNGMwNWIyIHJlbGVhc2UyNy1tYWludAorODgwMjEgYjhmOTdkOGNkNDg1ZjI3YWQzNWMzM2RiZGE4NGFkMDRmMjBlYjAyMiBweTNrCis4ODAyMiAzYzMxNjIzNmVhYmQyYWVkNzdkYjU5ZGQwNmY5NzQ4ZGU5MjE2NGE0IHB5M2sKKzg4MDIzIDQxZDg3NGVjYmQ4MWZiNDY2MTdmNzhkYjAxNWE1NGUwZmZlODc5YWUgcmVsZWFzZTMxLW1haW50Cis4ODAyNCA3YWNiODM5ZjM2MTMyZWI0OGFjNmU4MGYwNjVhZTM3Y2E5N2JiN2ViIHJlbGVhc2UyNy1tYWludAorODgwMjYgOGRkY2FlMmI2NGI0NzFmZDNlZWE3MDI0OWMyMmFmNzM0MmQyMmUxYSBweTNrCis4ODAyOCA0YTIwZTNjYTI1ZTlhZDc4MTQzNGNmODFmNWFjMzRmNDYwODU4ZGYzIHB5M2sKKzg4MDMyIDkwNzZlNDIyMGZhNGYwZDM3MGU3MDc0ZWUyMDI3YmJlMDFkZWY5NTkgcHkzaworODgwMzMgZTg0ZDVlZmE2ZDc1NGIxM2U0NjdkYzliODQwODY4ODVmM2MyYWU4NSBweTNrCis4ODAzNSBhYjlkYzQyNTQ3YzA5OGUzNDc4NjRmNmEyMDViNGE1OTY2ZGJkZTExIHB5M2sKKzg4MDM2IDg2NWQ1YjI0YmYyOGNhNDFiNTM2YmVmYzMyNjQwN2MwM2U3NGE0ZDUgcHkzaworODgwMzcgZmUxMDIzYWY2YjU5NjlkNGM1MTRjNDJlOTFlY2ZjZWZjMTJiZTZhYSByZWxlYXNlMzEtbWFpbnQKKzg4MDM4IGFkYTcwMmMwNGQxNGMzNzRiZWY2MWY2MmYxZGJiZDU2NDEwZGM2OGEgcmVsZWFzZTI3LW1haW50Cis4ODAzOSA0MmVmYzExYWI3ODJkMGQxZDAyYzU4Zjg3YzYyZDE1OWM3YmU5OTlhIHB5M2sKKzg4MDQwIDg1NjVlNzIzYjRhMGVhM2RhYTE0YjUzNWVhMjQ1YWU3NDFjY2ZjZGYgcHkzaworODgwNDEgZmMxZDE1OTE3ODk1NWZjMjE5NmIxZDgyOTQ4YWI4ZGIxNDk0ZDNjYyBweTNrCis4ODA0MiBiMTEwNGI0MjUxMzRjNmU5ZGQxNjM4YmE0YmRjNDZjYzY4YzA2NTFhIHB5M2sKKzg4MDQzIDlmMjgyY2ZhODlhMjE4NmE1ZTk2YjNmMzVlNTMzNzk3NTc4ZjFmNjAgcHkzaworODgwNDQgYjdhOTdmMTFiNDFiMzc2ZDk0MWFiNDRkMzNiMWJmNDhhNGNhMDJmNSBweTNrCis4ODA0NiBjOTFkZTMyNjgzNWU5NzhmZDk1ZmU5ZTU2MGJkMDU2OTUzNTM2NWJlIHJlbGVhc2UyNy1tYWludAorODgwNDcgMWY2ZTA0NWU4YTY5YmFiNWM1NWNmNmUyZThiZGJmNjZiNzdhMDMyYiBweTNrCis4ODA0OCBkNjcwNDgyYTU4MjExNzVmOWNmOTExNzIzZGQwNTQzNWIxZDIxMzQ4IHB5M2sKKzg4MDQ5IDQ1ZGE4MzMyNzYzNWZkYmNkNWM0ODQ1M2ExMjhiY2IxNTFhZGYwZTMgcHkzaworODgwNTAgMmNmNjdjNmFhNmVlNjhmMGFiZTgwN2E2NTNkMjFkZWFkMGVmMWQxZiBweTNrCis4ODA1MSAzODQ3MzdhNzQwODBlM2UxNzRiNWU4NWM4ZmI2NTBkNTY1N2E3NjI1IHB5M2sKKzg4MDUyIDQ3MjRiOTRjNTc0NTY4YjYyMzhiZDc1MDUzMWExMjk4YmQ2OGI0ZDggcHkzaworODgwNTMgMzY4ZTkxMDMxODgwMjAwYjA4NGYzZjYxNmQ4ZjFlMmNiZGZmYzYyYiBweTNrCis4ODA1NCBhZWVmYTIyMWJiZTY1MjgwNWYwZjUyZjg0NjE0M2ZhYTM5MTk1MDNiIHB5M2sKKzg4MDU1IDY5MWJjMmMyZmMyMmQ1NWVjZGQ1NWYyYTA0YWM2YmViNmFkYmU2N2QgcHkzaworODgwNTYgNTI1YWVhYTNkNTNmMjlmZTUwYTQ5NjVkNzg3MmYxN2ZkMmM2N2FmZSBweTNrCis4ODA1NyBmYWVjMWI1YTk2ZGI3NDRkNzZiOTliMWUxMmM4NTZkMGE3NmY4MDVmIHB5M2sKKzg4MDU4IDM2OTEwODUxYTcxNWNmYjVmNTU0ZWUzMjI0NjBkNzEzZmE0YWY3MDAgcHkzaworODgwNjIgN2IzMWJlYjg4Y2RiMmYxOTY4MzA0ZTAyOGNkNDg5YzBjZGZhZWNjMyByZWxlYXNlMzEtbWFpbnQKKzg4MDYzIDM2NzRkY2I0MWE5NGYzMGMwNzBlOWVmY2RhYWI5NTk4OWRmZDcwMGMgcHkzaworODgwNjQgZGQ4N2IwZWZjZGQ4MzRhMmU1YmM0NTkxMDQxYWY2MjQ3NTE2MWNhZCByZWxlYXNlMjctbWFpbnQKKzg4MDY1IGM1OWNlYTIxODU0NzY3MzVkMGI3ZGVjNzM1YTk5YjgxZjU5NWYwZmMgcmVsZWFzZTMxLW1haW50Cis4ODA2NiBkZjhiNmEyYmRkZGQ3MmY4ZDQwYTgyNjQzMDExMWE5YTZlYWFhZGQzIHB5M2sKKzg4MDY3IDgxMWI0ZmI4ZjBjYzY5MjAxYTRiMTc5ZDBjZjI3MWI4YjBhYzVkNDMgcmVsZWFzZTMxLW1haW50Cis4ODA2OCAxZjZkMTQxOGNjMTgzMTY3YmJkYWY2YmMwYjZhMGM1ZmU4MGI5Yjc2IHJlbGVhc2UyNy1tYWludAorODgwNjkgYTc4YzZkMGMzZjY5Y2Q5Zjc2M2IyMTdhMGMzMzMzNGVkMTQ3Y2MzMCBweTNrCis4ODA3MCA2ZThlMGZlMTgyMDVmMDBhMjUyNjllMWI4NzI4MmQ5ZTM3MjY3ZGZkIHJlbGVhc2UyNy1tYWludAorODgwNzEgYjk0OGRiZDFmYWMxYjRiN2M2YjQxMWMxYWZjNjExYTVjNjhhMjhjZCByZWxlYXNlMzEtbWFpbnQKKzg4MDcyIGNhY2MzNWExZTBjM2QxNTlkZTgzMTQ5NDljNmQ0N2Y0ZmY3YjgwYjAgcHkzaworODgwNzMgZDM1YTI0YTk0NzE3OGQ0OTNlNDM3Y2FhZDJjYTA2MTUwNTdlMTJiNSBweTNrCis4ODA3NCA0ZDI3NWM1ODIxNGIzMTMyOTFkMjlkYTNhOGI1MmNjNDQxZmZlN2RhIHB5M2sKKzg4MDc1IGVkZTI2MGE1M2ZiNTBhODdhOWZmNGUyY2IyNzNhZDhiZDkwNTU1NDYgcHkzaworODgwNzYgMjk1ZmY1NWEyNjVlN2I4NzE0ZmIxMDUwZDM3NjkzY2Y5ODE0ZTU2ZiBweTNrCis4ODA3NyA5YTAwZGUyNTBlMWU0OTgyYzJjZDIxMjAwMjE2YzkzMmFjMmU4NWNlIHB5M2sKKzg4MDc4IDg5NjI4ZjNlY2RjYmI3YjlhZmQxMzQwZDVlNzdlZjAwMzE5ZjljNDQgcHkzaworODgwNzkgNDE1MTczZjg3ZjQ1ZDgyMWRjMTMyOTk5MGM0ZTI4NWE2NTIxODZmMiBweTNrCis4ODA4MCA2ZTY4MjY1Mzg5NzQzYjEzZWJkNWFhM2IzYTliMDkzYzM4NGM3ZDc0IHB5M2sKKzg4MDgxIGZkOGU4MGZjMmQ5NDM2NGVkNGU5NDI2MjdkNDI1M2RmOTgwMmY2NjUgcmVsZWFzZTMxLW1haW50Cis4ODA4MiA2MTAxNjI5ODEwZTAwZGQyNTE2MzczZGNjZWFiMDg4NzczM2VhOWFkIHJlbGVhc2UyNy1tYWludAorODgwODMgOTllYWI1ZWRmOTlkZWM3MmZjN2QwMzk3NjAyN2RjNTgzYjJkNjI0YSBweTNrCis4ODA4NCA1N2JkMGQ4NjRjYjAzN2ExNDdjYzFlMTBmZDQ3NzRlMGU3NGJlNGQ5IHB5M2sKKzg4MDg1IGY1YTNiNjM5N2E1MzhkODEwMjI5YzM2YzRmOTE0NDA5MmNkYmYwMGEgcHkzaworODgwODggZWQ4ZjA1OGRjNjRiMDc1Y2Y1NmUyNzk2ODMwMjE2ZjU0ZGFhMjUzYiByZWxlYXNlMzEtbWFpbnQKKzg4MDg5IDUyZTgwMjkxNGNmODk2MjBjOGVhNzg2NjYyMjMyYzRkNDRkZDFhYzMgcmVsZWFzZTI3LW1haW50Cis4ODA5MCAyZDQyZjY0YjI4ZmRlZjIxY2I4YTU5OTMxMGM2NDU5YzRhNGUyZmJmIHJlbGVhc2UyNy1tYWludAorODgwOTEgMzRkNDg4NDhkNDFiYzgxMWIzNjIyZmNjYWZkMmQxZjdiZmM3Y2JiNyByZWxlYXNlMzEtbWFpbnQKKzg4MDkyIGY0NDFjNmUzYTc2OTEyOWMxMTgwNGM3ZWU4MzQ3ZWZhMjU3NTUyMzAgcHkzaworODgwOTMgNGUwYmNlYzgwOWRkODA5NGI5OWYxZjUxNzI3ZDAwZDQyNzZhNmVhMCBweTNrCis4ODA5NCA3NjFlOWFkMTY1ZWYxZmMxOWJkM2Y1ZWMzZmQ0ZTI4ODBiMWUzZjdkIHB5M2sKKzg4MDk3IGZjNWQwMmFlNTJkZDZiZDgyNzUyMDNkNTcyZmY1NDg1MDZmNzUzOTUgcHkzaworODgwOTggMmZkZTVhYmZiNWYxYjdmYmEwZjE3OWRjMzJkMzg0MzIyNTY2Y2MwYSByZWxlYXNlMzEtbWFpbnQKKzg4MDk5IGVhYzU0NTdmZjE5NWIwOGVmNzU0NDA5OWIzMWM1NGMzYjIzM2VkNmYgcmVsZWFzZTI3LW1haW50Cis4ODEwMCA0OTZlYTUwMjhjMDFhYzVkNzI4MjE3NTM0MTFmZDcwNDM1YmMzYjY5IHB5M2sKKzg4MTAxIDM4MjRiZWYzNzZjYzdmZWFjZjMwODgwOWQ0MmQ3ODg0MTgyYjcxYTcgcHkzaworODgxMDIgMTA5YWYwMzlmNDRmMGQ1OTY2MjcyYWE1NmQzMWExMDYxY2QzYjg3NCBweTNrCis4ODEwMyBjYzg5NzU3MjRmOWE4YmY0OGE1YjNlZTQyMmEwNjk0Mjk1ZDQwNzE2IHB5M2sKKzg4MTA0IGQ3MDU4Zjc0YmQwNGI0ZmE2ZmQ1YThmNmQ3Y2MzZDllNDc3ZjYzNzkgcHkzaworODgxMDUgNDFjNTFmNWNmNWQ5OTQ4MDA2MmQ1MDA3MDIxNzgwMGJlMDgxNjhiYiBweTNrCis4ODEwNiBhN2FhODM3M2I1ZmNiNTIwNGE3MWY4OTZiOGQxYTExMmIwNTEwOWVmIHB5M2sKKzg4MTA3IDNjMWM4ZDQyNjk2NjMwMWFiZWVlMzg3MTdmOTJkMTVkN2Y4ZTUyZGUgcHkzaworODgxMDggOTkxNDcwYmUwMzQwYmUwYzZiYWRkNmYwMmZjMDIyNGU5YzZiMmE1MiBweTNrCis4ODEwOSBkZTkyNTM2MWViYTUxMTY3NjlkY2UzNWUxNmYyYWY5NGRiZTBiYWM0IHB5M2sKKzg4MTExIDkxYWJlODU1MDcyYTM2NmQyZDg4MThjMDUwMjg3NzMzNmQ2ZGQzYzMgcHkzaworODgxMTIgMDdlMWViMjQ0ZGY4OGIzNjgwMGYyYmE2ODdhMjgyMmU2NzNjNjQ4MiByZWxlYXNlMzEtbWFpbnQKKzg4MTEzIDAyZWMxOTk3ZDc1ZTg3Y2M1Yjk4ZjM4YjE0ZGE2ODc3ZTMzMjBmOWQgcmVsZWFzZTI3LW1haW50Cis4ODExNCBjMzU0MDBjMzYzMDRlODk3YTg0MGU0OGIyMjlmMzVjNzNhZmM1YTM4IHB5M2sKKzg4MTE1IGE5MjVlYTRlMTA1ZjgxNGZmYWZjOWZkOWYzMTRiOTFmYmYzNzRkZTMgcHkzaworODgxMTYgYjg4MGM4MjI3YzAyNzJjMmQyMTljMWI3NjlmYTQwMzExYWE4MWUyMCByZWxlYXNlMjctbWFpbnQKKzg4MTE3IDIzM2NjNzQwMjc0YjcxMjZiNDdmYWU3ODk1YjQ0YTAyNGY1NGIzYWUgcHkzaworODgxMTggZTRlNGJmYzA5ZTE4ZGIzY2ZjYzQ5YTViMGIyOTZlYjkwNGM3ZjBlYiBweTNrCis4ODExOSA2YjhiNmU1YWVjMGE1ZjQ0OGQ2ODUxYTRiY2Q5M2QxMDkyNWQ0NDgyIHB5M2sKKzg4MTIwIDdmN2MyYWFiODYxYzExYTg0MGY0NGJhNDFmMzY4ZGZmMDI5NDhhNWYgcHkzaworODgxMjEgZGE0NGJiMGNkNGU5OTJkODc2ODE5ZmY3N2EyZTFkMjNkNGYwYzYyNSBweTNrCis4ODEyMiBmYmViZjBmMDYwNTc5ODA5YjNmYjIzZTExZjg2Yjc2MTdiZDkxZWU3IHB5M2sKKzg4MTI1IDNiM2M1MzYzMDYzN2E1YTNiNzQ4ZGFhMjFhOWJiZTlmNTBiMmUyYWQgcHkzaworODgxMjYgYWVmNDgyNDIwZTk2Y2NiYTM4ZmU4MDcyOWRiNGU4ZmI4YTZhMzkxNiBweTNrCis4ODEyNyBjZTQwNzU0YTg0MmEzZGI1MWMxYzYyNDg1MDE3Mjg0ZTEyNTNkNDdkIHB5M2sKKzg4MTI4IDNkMzNmNDFlODE4ZGJmMWNlNmFjOGQwMWYwYWI2YzlmYjg1YTI3YjIgcHkzaworODgxMjkgOTNlOThkNDBmMmE1YTU0OTlkMTJkMjMyZDBiNTQwYjM1OGRkZWU0YiBweTNrCis4ODEzMCA1ZTcwZWVlODZjNjEzMGIxYmQyMTc2YTUzMDI4YjA2ODdjMWJlN2VmIHB5M2sKKzg4MTMxIGM4Mzk2ZDI3ZjU2ZThkNjU5ZWQ5MjgzNGY0M2U4NTMyNjZjYWUyZjMgcHkzaworODgxMzIgZjM2NTM4YmE5MGE4ZmEzMGEwZWM4MTkzOWY5ODg2MzI0OWFhNDg4MiByZWxlYXNlMzEtbWFpbnQKKzg4MTMzIGRmOTFhMDE4ZGUzYWI1MDU4Y2NhMDYxM2U2ZTNhMzIyNjVlYTZmYWMgcmVsZWFzZTI3LW1haW50Cis4ODEzNCBmYjY2OGFhYTJmYTRmMGQ3NWNhOGE4ODU1YjVmODBhOGY4ODVhNTg5IHB5M2sKKzg4MTM1IGU0ZTMyYzRmZjYyNjI3YTNlNWMwYjY0MTZkOTIzYmIwZTk0NWVkODYgcHkzaworODgxMzYgY2MyMTYyNzA4YmY2MmI1YmY3NWFjMTQwMGFhYTZhNzFhMDE4ZTk0YyBweTNrCis4ODEzNyA4ZTBiNjE3YzZjMjIxNmQzNDlkODE4OTRmMDM2Y2U0ZDM4NGJiNDRhIHB5M2sKKzg4MTM4IDE2NDgwMTFjNjVkYTlhMGMyNmRiYmY0NjdkNDE1YTY0ZGU5NDBkYWUgcmVsZWFzZTMxLW1haW50Cis4ODEzOSAyNDE2MWNmNDA1ZjRjMjIzNzQzMGI3ZmU5NmEwOTc4NTdkNGFhZWQyIHJlbGVhc2UzMS1tYWludAorODgxMzkgZGU4ZGI3YWFmN2EyOTYwNTdhZTI2MTI1Yjk5NjE4Yzk2MWI0ZmVmNiByZWxlYXNlMjctbWFpbnQKKzg4MTM5IGM0MDgxN2M5NTUxNGIxNDcxZGIyNjcwZTM0NzQ3NDhlYzg0MzkwYmEgcHkzaworODgxNDAgYjk2ODA1M2FmYWQwZGM1MWU4YjA4N2U1OWZmMTFlNTk0OTg2MzgxYyBweTNrCis4ODE0MSA3ODhiMDFiNWE3NGVhMTdjNjBmNzdkNmIyZDFlOWZhODBmNWI1NzhlIHB5M2sKKzg4MTQyIDMwYzkxMzQyYjZhZTYzNjViNzMzYjEzMzYwNzIxZGQ5NGIwNzJkNzcgcHkzaworODgxNDMgYjNjYWRmNWNmNzQyNmM1YjI3ODIwZTRmNzc4OTc5MGJkYzViMDAxMCBweTNrCis4ODE0NCAwODY3M2U1ZjU0OWEyN2NjNzE1ODFlNjc5OWVmN2QwZDZhYmY2YzEzIHB5M2sKKzg4MTQ1IGJhYTkyMmI0NjIzN2RiMmIyOWEyODQwMzE0ZGQwNmMzNzFlMTM5NTYgcHkzaworODgxNDYgNGY3ZjM5OTUxOTRhMWM4YjAzZDQzODYzMWJkNjhhY2E0ZTEzODEwZSBweTNrCis4ODE0NyA0YzRhYmZiODg0ZmI0OGZlMTVjY2Q2YWM2ZWJhNTllZThmZDUyZDIzIHB5M2sKKzg4MTQ4IGJjZjAzMGY3M2VlZWI0MTU3Y2Q5ZGY4ZjIzNTBhN2VkNTBiMzdmMzkgcmVsZWFzZTMxLW1haW50Cis4ODE0OSBiOGMwY2EzNTk3OWEyY2RlOGMxZjg3ZmZlNDI1MGQzZDg3NGQ1NmRlIHB5M2sKKzg4MTUwIDQzMWRkY2RiNDMxMDZhZDliNmJlYjM4YTY0YjZkOWYzMGZkMTA2YjcgcHkzaworODgxNTEgZmMyYWRlODhhYjQxNzlmYjhjMWVkMzk4OWVhY2FkNzBhMDAwYzU2YiBweTNrCis4ODE1MiBkMWMwNjMwNmMxOWJlODJiZTM5YjI0YmI2ZmNmNmQ1ZWJjOTFiMzU5IHB5M2sKKzg4MTUzIGEwYTVjNWQ5YWE0ZmRmMWYxNjQ0MjdkMDFmOWEyYzcwNjc3YmZiYzEgcHkzaworODgxNTQgM2JiMjFkZjY0YWE1MTIwMTVlYjRiYzQ2OTE4ZTU5YjFjZDRjZWEwMCBweTNrCis4ODE1NSA0MDYzZTUyNjk4MmYyNmJhMDJjMjYzYTJiZTdkZWJjODhlYTY2NTRkIHB5M2sKKzg4MTU2IDZmNDBiNDcwOWU5YTUyZmQ4ZWNhNjRhMTdiYzBiNDEyZTMyN2VjNzAgcHkzaworODgxNTcgNWE2NWVjMjg3NzEzNzQ1OTZmMmVlNGNmYjAyMzllYzMyNjZjYzIzYiBweTNrCis4ODE1OCBkZDI3ZGY4ZDE0ZWZjMTk3ZmViMTc5OTg4OTU5YTUyOTMwYmRhNWY5IHB5M2sKKzg4MTU5IDJkZTY5OWU1ZjhmMzFhNTMyMWUyMDc4MTgxMmRjNDE4YzY0M2M5ZGMgcHkzaworODgxNjAgOTBhMmQ5YjcwMmJjYmFhZmJhOWNhZDc3NzIxNmFiYTFkNWU3ZWNmYSBweTNrCis4ODE2MSBmM2JmZWIyZmJjZmIwNmQ1ZjNiZWIyODAxNGNmNDk5Y2RhMWRkNGNjIHB5M2sKKzg4MTYyIDAzZTJhODc1NTcwOTBhYTUyYmEwMjhiNGRiYjY2YmY3NDNlMjM1ZmQgcHkzaworODgxNjMgYzE3NWY1ZGZmMzk2MDRiZDkwN2U0NTI4ZTdiNGNkODQwZmM0ZDc1YyBweTNrCis4ODE2NCA4MjVlYmFkZWJmOWJhMjkyMTg1ZWQ2ZWRkMzQ4YjM1MzM3MjQwNmM3IHB5M2sKKzg4MTY1IDFlM2YxNjliOWU0NmFlNGUxYmE4MzEyMjkxOTJiYzVjYWNjNmRiZjUgcHkzaworODgxNjYgNzA5MTliYWQ3NDU4NDFkMDI2NmM3YWJmYjdjMWVlNmEyMzg0ODZlMyBweTNrCis4ODE2OSA3ZjlhOThmNzY2ZDc1YzliNTk0NDg5MDJjZGY1NDkxY2Q0NWJhYWRjIHJlbGVhc2UyNy1tYWludAorODgxNzAgNDczZTQzNjgzOWVlNjM5MWUyYzU3MDY2ZTFjZDUxZGViOWMzZWU3YSBweTNrCis4ODE3MSA4YTMwYTJjYjRiOWUzNDcyZDg5MmRiYTM2ZDhkZDBkOTBiYTI1ZThmIHB5M2sKKzg4MTcyIDU5OGMxOTVlNTJmMzYwODZmZTkzOTAyOGRjZTcxYzQ4ZmZmMTIzMjIgcHkzaworODgxNzMgM2I5M2QwMDk5Y2VkMDdjN2E1Y2JkNGFhOGE5ZWFkZDAzNzg5ODRlOSByZWxlYXNlMzEtbWFpbnQKKzg4MTc0IGIwMjI1OTU3ZTAwNjU5OTVmYjIxYTc4YTJhMzAzMTYzYTA0MDg1MTkgcHkzaworODgxNzUgOTNhNDFkZjhjNzM3OGNmYWI2Zjc2ODg1NmM5OGUyZmJkMmNjYWFmMSByZWxlYXNlMjctbWFpbnQKKzg4MTc2IDBiNTI5OGU3YjJkNTQwNWJkNzIzNzllZDY2YjM2ODMyODg5ODg3MWMgcHkzaworODgxNzcgZWI0YmEwM2Q3YzRkZjMyMzIyM2M3NmJiYzYxZDJjODFjMWM1NDJiYiByZWxlYXNlMzEtbWFpbnQKKzg4MTc4IDBkNmVjY2YwMGI1YmQ2N2QxYzIwOTllY2ZiN2UzODA5MzcwOTY0MjMgcHkzaworODgxNzkgNzEyODEwMTdjNDNmYzQzZmZiMTc3ZDJhZDgxZjA1ZTZjZTNmYTFiMyBweTNrCis4ODE4MCBmYWUxOWU1NTE3YjY1YmUyYmYzMDczZDMzNzUwMzgxNzIwZDYwZTNlIHB5M2sKKzg4MTgxIDAzMjIwZWQ0OGJjYWUwZGUwZmNjZGNiYzBhZDhjNjhhNWIwY2Q4NzkgcHkzaworODgxODIgYzJiZDY5MjA3OGQyMGU3M2FlNDE5NmQyZTQ4MWUyY2NiODc0YjQ4ZSBweTNrCis4ODE4MyAzMmM4OTY2ODhjOTFkMDY4YTg2M2I3NjNkMmUzNzc4MzVkYzRiYzkwIHB5M2sKKzg4MTg0IDA4ZjMyZDExYjdlZmJhMjU0NTVkYzBkNjk5NzJkOTc2ZjA2YjljZmMgcHkzaworODgxODUgODlhM2Y2YzEyZjAyMTJkZDYxZmY1YWUwMDljMjNhMjZmZWZkMzc5MiBweTNrCis4ODE4NiA3NTdhOWIxODM2YjE5ZjJiNjdmNmFmYjZiMTNkYWE2ZmQwOTQwOTk3IHB5M2sKKzg4MTg3IDAwNzUzZDA0YmJiZmIzM2Q1ODVhMWQxNjdiYjlkZDAwYWUwMmVkZDYgcHkzaworODgxODggM2NhYmNlMGI2Y2FmY2FjYzkwMThmYTVkZmFmY2EzZTBiYzJiODA0YyBweTNrCis4ODE4OSAyMTk3NTRlOWMzOWMyZmEwNjI4MDQwYzlmMmE3NWEyMzNiNjkyMzhlIHRlc3Rfc3VicHJvY2Vzc18xMDgyNgorODgxOTAgNzA1NzgwYmE5ZTNhMDUzYjVjOGM1MmIzNzZkYzQ3OWQxY2NjZmJmZCB0ZXN0X3N1YnByb2Nlc3NfMTA4MjYKKzg4MTkxIDc3NmMzYzI5NGJiNzM1YzQ4OWMwNDZiODhmODg3NWMwZTRmNGE3YWUgcHkzaworODgxOTIgZjYzOTJjNGNlNjE5ODc3NzdkZjdmYzkzNGZhMGI4OWU1YjNlYjRjNCByZWxlYXNlMjctbWFpbnQKKzg4MTkzIDMyZmMxY2FmZmIxNzAyNmZhODVhN2ZjMjJlNWQxMGE1NmQ1ZTliNTQgdGVzdF9zdWJwcm9jZXNzXzEwODI2Cis4ODE5NCA4MmI3ZjUzYzJhY2Q0YTkzYTdkYjNjNmU0NDIwMmM3NGM5OGVhMGYzIHRlc3Rfc3VicHJvY2Vzc18xMDgyNgorODgxOTYgZjk4YWQ2NTA5MDI5NWE1NDQyNGQ1YjU5ZTIzNjY3MGM0OTMxODcyYSBweTNrCis4ODE5NyA2NWIwOTdhZWRhODAxM2NhNzcyN2M1OTlhODAzMzQzZWY4NDAwNzBiIHB5M2sKKzg4MTk4IDdiMzBkOWNmYTBkOWU1MTg4NGI1NGYyNGFkYWJjZWQ1MjBkZGE1ZjUgcHkzaworODgxOTkgNDg3MThiMTljMGRjMDgyZTBhZTIwMWJkZGM3MTgwZGY4YzdmZWZmYSBweTNrCis4ODIwMCBiZGY5ODY0ZmQyNzYwODUzMDNhOWExNjBmZDRkOTY5NDdkNTNiMWM4IHB5M2sKKzg4MjAxIDFmMjE1ZmRhMjM4MzhjZTM3NTg3NzgxZDlhZjFmZDExMzdhZTg5MDEgcHkzaworODgyMDIgYTY3NWE0NDY4NjIwODQzOTc4ODVkMTdhMzA2MThiMDNmM2JkNGYyMyByZWxlYXNlMjctbWFpbnQKKzg4MjAzIDFkM2JlN2IwMWQ4NDVlYTY0ZWMwZjkzNDBkMmRmODQyZGYxN2EwNDUgcHkzaworODgyMDQgOGVhYTMyNzk3ZjkyZTI5MmU5NDVkMGMwZGU5MzhlOTIwNGNkMjY3MCBweTNrCis4ODIwNSBhYzQ3ZDExYThjYTI0ZDQ2MWY2MGE0NzliY2UwZjcxNjI5YjQ2Y2E2IHJlbGVhc2UzMS1tYWludAorODgyMDYgNDRjMWI1NmQ3Nzg3ZDcxNTIyMzI5NjQzN2VjNDM2MTk1ODg1NzlkOCByZWxlYXNlMjctbWFpbnQKKzg4MjA3IDgwNTYxNzZjMDUzZjA1ZmMxMTdlZDlhNTI2NTI5OTllNDlkMWYwNDMgcHkzaworODgyMDggMjc5YTBjOTU5ZjdkYWVmMGI5YzI2MTNlZTM5ZGQyNTE3ZmUwOWEyZSByZWxlYXNlMzEtbWFpbnQKKzg4MjA5IDU5MWQ1NGZmZTk2OWQ3NDY3Y2RjMTAxOGI4ODQ3YWQwYWQwOWFjYTkgcHkzaworODgyMTAgZjgyYTA0Y2IxNTBhMmMwNjhmMTU5YzllMzlkNzIwY2EzMDYxYWNjOCBweTNrCis4ODIxMSBiMGFiMzM1MjJkZGE5ZjgzY2JhZTE0M2RjOTlkMDdhM2FjMjIwOTliIHB5M2sKKzg4MjEyIDBlMzBkNDEzYjllOTdmNDZjY2E5ODBkNzY0ZGE4N2ZjNTI4ZTNkNzcgcHkzaworODgyMTMgYmFjMjk2NjgwY2Y4NDY3YmNkMmQ5MTdiNmE5YzZkYWQ5ZDJiOTljZCBweTNrCis4ODIxNCBiMjJjYzc1NjNiMjg4MjMxMWJkOWFkZWE0NmUzOTc4ZDMxODQ0NjNhIHJlbGVhc2UyNy1tYWludAorODgyMTQgZmMyYWI3Y2RkY2YwMDU4YTUxZjkxNTJmOGYxOWMwMzBlMDNkYWZmNiBweTNrCis4ODIxNSBkZDczMjg2NzI5NjgzMWUwM2ExNzgyMjAxZmNiMzBkNDhjMTc5NTJlIHB5M2sKKzg4MjIwIGQyMWNiNmE3YTE0ZWU5YWMzM2EwMzI3Y2EyYTkyZDYyNjQ2NWJmOGYgcHkzaworODgyMjEgZTc5NTkzMDlmNTljNjViNGVhMjg2MzZkN2IyMzg5Y2FlMjNkNzQ0YSBweTNrCis4ODIyMiBlNDA2NDNhM2MzMWRmZmYzYWJhNzZlZmM2NWY3ODY1ZGJkZmE2ZTE2IHB5M2sKKzg4MjIzIDdjN2VlNGUxMTg1MGQwNzdmNzU1NzZmYWY1N2I4NWNlN2Y4NGNmOWUgcHkzaworODgyMjQgMmRiNjE3ZTkwY2EwYzEyMGQzYzNhZjcwZjAyYmNmNzBiYWRhOGM2OSB0ZXN0X3N1YnByb2Nlc3NfMTA4MjYKKzg4MjI2IDNlZjg2NTMyN2Q3YjA1ODBlYzBiMDIxNGExMmM4YmQ1OTk1OGRlNDkgcHkzaworODgyMjggODUyMTg2ZTVhZTJhYzY5ZTIxZDA0MjEzMDI0OTgxNjdjNjA3MWRmNCBweTNrCis4ODIyOSBjZjc1MDBmMDgwZmQzYWM2M2U0MzBjNjRmOTM3MjkxNTQ4MWMyY2RjIHJlbGVhc2UzMS1tYWludAorODgyMzAgZDdjZDFiNjI2MDhiOTgzMWM1NDFmNDQwYTYwYTJiMzk2ZjUyOTczYSBweTNrCis4ODIzMSAwODVlMGRkNjM3OTZiODBkM2Y4ZGVlN2Y5MGVkNzNkYWZkOWIwOTY2IHB5M2sKKzg4MjMyIDVjNTE3MjRiZjQxMTE2YTA4MzJiMGMzMzc2ZGJmYThkMjEyYjQzNzEgcHkzaworODgyMzMgYmUxMWU1NjUzZmRhOTc1NGZlY2I0MTRiNDE2OGYzNGU3MjhjYTE3YyByZWxlYXNlMzEtbWFpbnQKKzg4MjM0IDY0NzEzZTMxNjgzZjhiNzFlMjRiNzljZjk4N2RiOWMwMzFkNTU4MTYgcHkzaworODgyMzUgMzM0ODEyYmE1ODc0MjJiZGM0Yjg5MGY3OWJkMzRjMTc4NWM1M2U3NCBweTNrCis4ODIzNiA2YTFmYjk0NjQ3Y2I0ZGRmYzhjZmE5ZGQ2N2Q4OGYzODc0MDc2MzM1IHB5M2sKKzg4MjM3IDJhYWQ3MDdlZGE2Mjc4YTJhM2M2NjU2OTA2NWVkNDE0YWIzMDMxMzggcmVsZWFzZTMxLW1haW50Cis4ODIzOCBmMTJmZTY4NWU0NGQyOGRjOTczYzYxMmQ2ZWViYWQ2NjAwMzAzYTY0IHJlbGVhc2UyNy1tYWludAorODgyMzkgNzkxZjUyZmJlNWUwNjBhZmJkZTQ1OWQ5MGNjYzc3YzkyODQ0NzUyNiBweTNrCis4ODI0MCA1ZjFhZDY1YTFiODRjNzc3ZmQ1MzQxMzkwMjVlMDc2NTQ1YmRhOTA2IHB5M2sKKzg4MjQxIDNjNzc3MmZmZmJhZDM0YTI2MzAyY2QzMzEyNDZkYjk1NWU0NDVlNTQgcmVsZWFzZTMxLW1haW50Cis4ODI0MiBjNjkwNjA5OTk1YTYyNzYyNzM3M2Q2NGZjOGFmZDc3OTNjZTQwZDFjIHJlbGVhc2UzMS1tYWludAorODgyNDMgYjBlZmI2ZjBmZTk0MzI2M2Y3NjVlMzAwYWRlMDExYzBkOGRhZjMyNiByZWxlYXNlMjctbWFpbnQKKzg4MjQ0IDBjNjA0ZTY1NDI5ZTMyYjgyMzQ3ZDk3MzE0MTg1NzVkZmUyODg0ZjMgcHkzaworODgyNDUgNDZmMDdkYzQzN2ZmYmQ3OTI1YTUzMWZlZWU0ODg3OTBkYzNmN2VlMyBweTNrCis4ODI0NiA4YTE5ZjYwMjljZTU5N2UyOTc0YTJlNGJiZjA3NWIzODQ1MDljOWFiIHB5M2sKKzg4MjQ3IGM4MjU4OGNhM2E3OTA5ZGNhN2Q2ZjkwMTA5M2NjYjRjOWY5MzkyODEgcHkzaworODgyNDggZDNiNGZhMmRkNzI4OGVjNzAxMTUyZjc3MDc3NTFmMjRmMDBkZDY1MSByZWxlYXNlMjctbWFpbnQKKzg4MjUxIDJjOTM3MmExYzY4NWI1YjkwZTRiY2FhNTU1YjA4NmZhNjFlMTEyMGMgcHkzaworODgyNTIgZGM1MDFlZmEwNWI0MTI1YmM1ZTViZTYzY2U5MzliZjIxYzNmNTcxMCBweTNrCis4ODI1NiAzNmVlYjI4MmNkODQ0ZWE4OTBkMjE4N2YzZjFhNDQzMGQ3MTc5MzdiIHB5M2sKKzg4MjU4IGJmYTU4MzVlMTBmMGU3MTg1YWQ3NDY0OGI5MWQ2MDdkNmQzN2I4ODEgcHkzaworODgyNTkgNTk1YzJiNTY2ODFlYmI3NmRkYTg2ZjcwMzFiYjkwODUyYTI2YjExMSBweTNrCis4ODI2MSBkZmJkOTU2OGY0OWNiZTkwMTczYjY2M2RmMDE2NmNlYjAxNWRkNDA2IHB5M2sKKzg4MjYzIDJiZWY3YWI2MjU2YjQyMTI0NDQ1OWRjYWNmYWFiNTNlY2E2MGJkOGQgcHkzaworODgyNjQgOTNjNDA4MWRmZDE5NWNiZGIwN2JlOGZlMTgyNWMzMjFkYzBhNjAwNCBweTNrCis4ODI2NSAyNjU3NGIwMjcwNDJjODgwMzFhNzhhNzY5ZWY4YjViNjcwMWIxZWU0IHB5M2sKKzg4MjY2IGFjZjNlMjRkZDBkMGRmZDFlMjBjOTA3ZDY5NmQzZGE5NjVhOGY1NmYgcHkzaworODgyNjcgN2MzZGFmYmVlOWQwYjZiMWMxMTIxNWE1MmMxNjljNzY4M2QwY2NiZSBweTNrCis4ODI2OCBlODI1MDE4MTJhZTNkMzE2NTYzNWQ5N2Y2Zjk3YTlmOGYxZGNmNzBmIHJlbGVhc2UyNy1tYWludAorODgyNjkgYTlkZGRmYmFiMjQxNzljMGI2OWViMDgzMTFjZDZlN2FlMTk1YjQ2ZSByZWxlYXNlMzEtbWFpbnQKKzg4MjcwIDE4MjA3YjlkOWE2MGY4MTU2MjBiZTU2ZTA1Y2EwZjVjOTc2OGQzMjQgcmVsZWFzZTI3LW1haW50Cis4ODI3MSAwZjBjNWY5YWNlOWYzYmI0YjUyMGJjNGY0NGQ5NDNlZGU5Yzc1OGIwIHB5M2sKKzg4MjcyIGRlNjc5MmJkZDk2NTkzYmQ1MWUyMTBiODc5NzkyMjEyYTZhMTg4MDAgcHkzaworODgyNzMgMDg2YzJiY2Q4ZDc0ZTZiNDQ3NDY4Zjc0NjM1ZmFlMjY0YWI2YmVmZSBweTNrCis4ODI3NCA0YTI3MjIyNWMzZGU3MWU2MWEwNzE4NWU0NDAzYjkyNGJmMGI4ODZhIHB5M2sKKzg4Mjc1IGJjMDlkYjgyYTVkMGY1NDM2OTEwZTUxMGY4Nzg3MjYwMDExM2EzNzQgcHkzaworODgyNzYgMDJlZmRiOWUwOWU5MGVjMjU5MDAzOTQ2ZDRmNDRmY2MxOWJhMTM4MiBweTNrCis4ODI4MCA0Zjk0ODczODQ2YTNmYTVmZjk0ZWMyYjU3OWFmOTk1M2IyMzUwYzQwIHB5M2sKKzg4MjgxIDBhOWY2ODBhMmNmMDVjM2JhZWM0YzY5YTRkNjdjMGRjZDE5OTBiNTkgcHkzaworODgyODIgOTg3ZTY2MTVhMDc5NmFkOTAwNGZjMWMzYWEwOTAxNDZiZWE1YjQwYyByZWxlYXNlMzEtbWFpbnQKKzg4MjgzIGE2ZGYzYzNlMzc0MjM2MTI0ZmY5Njg5MGM3NjM0NjJkMWMyN2E1YmMgcmVsZWFzZTI3LW1haW50Cis4ODI4NCAzMWY0MGJlOTIyNTI0YzYyOTNlZDc3MDY2MmU1NzBiMGIwMjYyZjE1IHB5M2sKKzg4Mjg1IDhmYTczYTA4ODVjOTVlOGUxNmY1ZGE3MDJlYWQwMjQyY2Y3YWMzYTcgcmVsZWFzZTMxLW1haW50Cis4ODI4NiBjYTkwOTQzOGNmOWY4OTFiZjA3NDc0NDRlNGZmZTYzOWViMDIzZjI0IHJlbGVhc2UyNy1tYWludAorODgyOTkgNzNjNDk1NzlhNDg3YzRiZDFiNzU4ZDhjNWNlMjg4ZjE0YTE0MzQ4MyBweTNrCis4ODMwMCA5MDBmYzFlZTQ0ODdlZmUxODc4MDA2MTBmODYzYzU2MGI0MzNmZGVmIHJlbGVhc2UzMS1tYWludAorODgzMDEgOTQ0YWRmN2VkYTJlYmIxZWE2MTE0YjUxNmJmNmExMmU5YjkxYjFkYSBweTNrCis4ODMwMiA5ZTY1OTUxMjY2YTIwNTEyOTUwMTU3ZWVlYTZkZGI4OTllY2JiZjk3IHB5M2sKKzg4MzE4IGFhODczMDA0Y2VhODBkZTdhZGZiZmIxNWMyNmU5MzAwYzlmNjhjOWIgcmVsZWFzZTI3LW1haW50Cis4ODMxOSA3NzNjYjMzMmNjNjNiNmM2YTdjNTUzNGMyODA2MWM0OTg1ODQwZTM5IHJlbGVhc2UzMS1tYWludAorODgzMjAgZDMzOTAzZWIzMzg4NTQxZmFlZDdjNDNhOTE3NWQxMDg0YjA4ZjNkZiByZWxlYXNlMjctbWFpbnQKKzg4MzIxIDE3ZDZmMTY1ZWFlOTdmOWI0ZWM2Y2Q3MWYxOWU1YjhjYWMwOGE1M2UgcmVsZWFzZTMxLW1haW50Cis4ODMyMiA1YmU3MDExMzkwODljZjhmODRmNTkyMjQ0MmU0ZGUzMjUyODgyNTg4IHB5M2sKKzg4MzIzIDhlOTk2OTQxOGRiZWJjYjhiYmY0NDlhNjU2ZjQzOWEzODQ2ZWQ5NDcgcmVsZWFzZTMxLW1haW50Cis4ODMyNCBiMjE3ODY0MTliYjgzM2RiMTM2NzAxMDI0Mzk1MzFjMWVkNTgwMWEyIHJlbGVhc2UzMS1tYWludAorODgzMjUgNzgyYmY1ZjM3YWNiMDZmZWQ2ZjA0YmQxZGMzZjFmZTc2ZWJjMzk3YiByZWxlYXNlMzEtbWFpbnQKKzg4MzI2IDJlM2M1ODQxYTBhNjY0MGVlNzY0NDFhNjYwNjhkMTdkOTYwYjMwNjAgcmVsZWFzZTMxLW1haW50Cis4ODMyNyBhMWQxYmZjMzgzZWZjZjZlMWQ3M2U4NGI4NjUzYzA4NWY4MTUxNzFiIHJlbGVhc2UzMS1tYWludAorODgzMjggNjI3MDk0NjExNWQwODQ1YzVmOTliZDM1N2M2Y2IyZjgyOGQ4N2E3MiByZWxlYXNlMjctbWFpbnQKKzg4MzI5IDAzODY0M2QzOWZjMTU2ZGYzYjM2MmZhZWE1NTBiYjUyYzJmYzAwMWIgcHkzaworODgzMzAgNDUwNjQ5NTY1ODYzMWJlYjkyZjBjNjE2OGU3ZmM3YjRiYzkwYjFhYSBweTNrCis4ODMzMSA4Y2MxMDI3OWFjN2RkNmU0Njc1MzkzZWM4M2I4YWMxMDNjMDg0MjlhIHB5M2sKKzg4MzMyIGU1NjY4YWRjMWVkOWU2YWJhMDZkZjY5ODVhZjUzOWY4MjA1OGQ2NTIgcHkzaworODgzMzMgMDc3NDZiZTBiYmFkNDdlNjZjMTU4MGMyYTMxYzAxMjE4ODdmMmEwOCBweTNrCis4ODMzNCAwYmJhNTMzYzA5NTlmNjI1NDAwZDVlZTc3ODIyODVkY2UwZmQxOGQ4IHB5M2sKKzg4MzM1IGY5MDJmYzc3OTNlMTJiNDhiNjAxMzhjMjg2ZTVhY2MzZDlkZGE4MTMgcmVsZWFzZTMxLW1haW50Cis4ODMzNiBmMjJjOTlkYjhhNDY1NmZmNTYwYzljNmYyN2NkZGJlZmI3MjNhYWJlIHJlbGVhc2UyNy1tYWludAorODgzMzcgY2U4ZGI0ODVlMjZlNDM1NjhhZDM4ZTYzYzhlNGI2ODY5ZTllNWQxNCBweTNrCis4ODMzOCBkYzU2YzgyNzFmYTg1MWZjNzBkNDlhYzcxNjdlYzgyZDgxNzViZjIyIHJlbGVhc2UyNy1tYWludAorODgzMzkgNDM1NTIxMmZlMmM0MzAzMTFhODJiMDhiOTIzMzA1ZmUyZGExMWQwNyByZWxlYXNlMzEtbWFpbnQKKzg4MzQwIGNjZmI1YmE1MGE0NGU5YzFjMDc0ZWRiMTQyZjgxNzQyZGQyMDU2MmIgcHkzaworODgzNDEgNWE1MDQ4NWEzNzVmMTFjOGUxNjBlODliMjUwNTc0NTAzNzlmODNhNSBweTNrCis4ODM0MiBiYzY4NWFkYmFhMTVjZTE2MmQ0NjFjYzEyNjUzNzg4MmZkZWQzZGY1IHB5M2sKKzg4MzQzIDQ2MGYyZjFjNWVjODNmYmMwZGQ2ZDk4MTZhMTZhZWI0ODA4MjhhZTIgcHkzaworODgzNDQgYmIzZjZkM2NjMGIzYzM3ZGRmMWRiOWY4MzRiODk1ZTRkM2IwZTNhZiBweTNrCis4ODM0NSA1MjY3ZTUyNjNlNDc3ZDRmZjg2NjU2MDdhYTU4MjhjYmJiMmJmYWRjIHB5M2sKKzg4MzQ2IDM5YjVmYzZjNzkyZDRiNTk2OWRjODhlMDFlMTlhOTY3ODJiY2Y1YzEgcHkzaworODgzNDcgODhkNjljMmY5ZWZhMzIzMzVlMzRkZjQwOTRhZjc2NjdlNWM0YWZhZiBweTNrCis4ODM0OCA5YjMzZDY1Y2RhZTRhZWI2NWNjMjhiODJkMzBkMTljNjBmNDQ1ZTA1IHB5M2sKKzg4MzQ5IDhkMjU5MjU5MTBiMTBiNTU2ZGM4ZjE5Y2Q5ZjdiNDBmMzIzOGYyNWUgcHkzaworODgzNTAgMGRhNjhlMmU0ZDc4MGI2OGJkNWZhZjdiM2Q3MWIwMDRkODZhMjNlOCBweTNrCis4ODM1MSBhY2E5MWM1NWYzOGQ0NTBmZmZkZTc1ZTI0YWY1ZGRjYTU3ZmFhYmMzIHB5M2sKKzg4MzUyIGFiYWIyYzUzZjU4ZmQzMzc0MDZiNGJhMDFmMDQ2YWVmYzMzNmEyYjQgcHkzaworODgzNTMgNDA1YTQ0YzZkY2VkYjQ1N2MzZDM5ZDQwNDM5OWRmYzVjOTI1ODAwMiByZWxlYXNlMjctbWFpbnQKKzg4MzU0IGI1ZTM2YTU0OWMyNTM3OTFlYTQ5YzM5Y2JiYTQ4MmIzYTY3OTk0OWYgcmVsZWFzZTMxLW1haW50Cis4ODM1NSA4ZTIwOTg2YjNkNmU5YjhkZGNjNmE1ZjI0Y2ExNWYzMTNlOGJhOTA3IHB5M2sKKzg4MzU2IDUxNmI5ZGI2YWZlNGFmNDhjOTkxNjc0YzBiZDA0ZTkxNTdkODgxNzIgcHkzaworODgzNTcgMzk0Y2IwMjI0N2ZjMzZiOTE2N2MwNjIwYjQ5MjQ1MmQ1Mjk1Y2ZhMyBweTNrCis4ODM1OCBiN2IxZGNlM2U3N2YyOTY1M2VmZWQxM2U0ZTEwYTE3NjIwZWY0ZmNmIHB5M2sKKzg4MzU5IGQ2MWViZmNlMThlZDNhZTEyYjhkZGVkNzRkYWMyNTFmY2VhNjVjNTMgcHkzaworODgzNjAgMTUxOGI5MzVkZTEwZTcwNzMwNTkxOGJmYmQ2MGU2YTliNzA4NTk1ZiBweTNrCis4ODM2MSBiNTcwMmIyMGI0NzYwZTU5MWJkNDA3NjcwNmZjOTAzMmViZjM4MGNmIHB5M2sKKzg4MzYyIGI0YzdkMjAzYzNkMTQzMGNjYjc1NTFkNDJjOWM5ZDJmNGYzN2NkODggcHkzaworODgzNjMgM2I5ZDdiODQ1NjE4MzkyODBkODhlYzExMTIzZTZkNzE4M2YxY2FjOCBweTNrCis4ODM2NCAwOWYwN2M3ZGMzZGMyNWRlMTU4OWMzMDQ0YmNkNjU4Yjc4MDUwNzY3IHB5M2sKKzg4MzY1IDNlMDIxMzY2ZTUxZmFjNjJhYTU0ZWNiOWM4MWQ3ZjVhMjdkNzE3NzMgcHkzaworODgzNjYgZjFmYWVjNDkzNTBkY2RhNmU4OWNhZDIwYzhmMTkzZDFkZTBiYTc0OCBweTNrCis4ODM2NyBiY2U3NTg5MzlkNzk5M2JjMDNhODE3ZjVhZTkxNGFiY2RkODk2ZjFmIHB5M2sKKzg4MzY4IDFkOWM1YTJhYTY5NGU3ZjJlNTI1YWViNGUxZDQ1MjQxZTdjNmQ4YjggcHkzaworODgzNjkgMjYxMzY3ZTllNmMxYzhhMWNkNmIwMmM4MWQ0MzA0N2MzZDBmZjI1MCBweTNrCis4ODM3MCAzNDExY2M3ZjY0ZGY2NjljNGEwMmJiZDg2ZGUzZTY5MGUzY2RiZTEzIHB5M2sKKzg4MzcxIDlmZGZjMDVlZmJiNWJmY2Y3YzdhNTU0ZjE3OTY5NDgwOTVmYzUwOGMgcHkzaworODgzNzIgOTQ2ZWNlMjZhNDhmM2JmZTlhZDhkNWMxNDJiZmEyNTVmMzdiNGQ5YyByZWxlYXNlMzEtbWFpbnQKKzg4MzczIDY4ZDYxN2RkMzBjZDM5MTk4ZWVmZGIwMDA2MTFjOGZhMjMyY2VlY2YgcmVsZWFzZTI3LW1haW50Cis4ODM3NCA3YzcxYjBhNWEyOTAxNGI5NjAwZjYwM2M4OWRkODg0NWYxZTViMzQ3IHB5M2sKKzg4Mzc1IGU5ZmI2ZDUwNDU5YWY1YzVkYWU1OWI1MTBhYjE1OWUxYzkwOGQ5OWEgcHkzaworODgzNzYgYmI3NTdmYWNiZmE2MTEyMDM2ZDY1YzU0ZmZmYzI5MTE2ZjVlY2ZlNSByZWxlYXNlMjctbWFpbnQKKzg4Mzc3IDU3NDJjNzkwODZhODc5ODA0NzZhM2QwNjU0ZDhlMWZkN2FlY2QxZTIgcHkzaworODgzNzggZjUyZTM1Yzc1ZTMzYzZmOGRkMTdkN2I4N2Y4ZDA3ZTFiNTdmZjdkMCByZWxlYXNlMzEtbWFpbnQKKzg4MzgxIGQ2OTY2ZDliNzYwOWZjYzczMWIzZjk4Zjk2ODQwYjQzMjkzNzFkMzEgcHkzaworODgzODIgZGNmMTc5MWNiMTc2N2E1MTY4NzQ4OTNiZWUwYTRiYjMwZWM4YTcxYyBweTNrCis4ODM4MyAwNzFkMjVhZmFkYWE4OTZlOTcxY2VjYWYzM2E2YzY3Mzc0ZTA5ZmEyIHB5M2sKKzg4Mzg0IDY0M2FjOTQ2ZWZmNDlmNDc1NWExYTEyYTI2NjY0NzlkYWMzODY4Y2EgcHkzaworODgzODUgMTQ2ZTgxZTRlNTFlNGE5NTQ3NWY3MTI5MGM0MTAyN2Y4Y2VhZjA3MiBweTNrCis4ODM4NiBmNWI4ODljMzZmOTkwYTZkZjhiMDE5NWUxYWFhOTFhMGM2MmYyNmE5IHB5M2sKKzg4Mzg3IDVkZmUwYzQyZmZlOGQ0MjI5ZGRjNWYxMmU1ZWE4YzViM2RmZjIwMDQgcHkzaworODgzODggNTZlNjE3YzJiNWU4M2VjMTcwYWE3MTE1YTNjNDg5OGE4ZjkxYzBlYyBweTNrCis4ODM4OSA3MmI0MmRjMDQxZjNmZjU4NzZiMmM1NTk2NGNlYmM3NmVjYjc2NGRmIHB5M2sKKzg4MzkwIDAzN2YxNmIwMmNhNTUyYzZmZDZjODkyZmZiNmQ2MDg1MWI1ZDBmNDAgcmVsZWFzZTMxLW1haW50Cis4ODM5MSAyYjQ4MjJiN2M0MjRlYzU5ODM3YmU2MTA2NWJkODFlYmYzOGMzYjc3IHJlbGVhc2UyNy1tYWludAorODgzOTIgZDFiNWQ4MDRkMmE1NDUyNzEzNzcxODI4MDI5ZDhiNTc2MjYwNmM2OSByZWxlYXNlMzEtbWFpbnQKKzg4MzkzIDgwODRjNjY4YjYzNzczNTU1ODRmODIxMGM4MmIzOWM0Y2NlZDJmODkgcmVsZWFzZTMxLW1haW50Cis4ODM5NCBiNDA5ZDdlY2I2NjU3NDI2MjQ2ZDk0MWE4MzhjMWM5ZmNjNzFhZjRiIHB5M2sKKzg4Mzk1IDEyYWNhZjdhNDk1NWRkYTUwYjMzOGEwODVlMWUzM2Q3YjJlZDBmOGQgcHkzaworODgzOTYgNGQyYTU4OTE4ZGYxNTg3NjJmYzU1ZTBlMTg3MjhiNDQ0OTE5MzU1ZiBweTNrCis4ODM5NyA4OWQ1MmVmZmMzMGFhN2QzOWMyN2FjMGQ4NTliZjRiZTZjZThiMTNkIHJlbGVhc2UyNy1tYWludAorODgzOTggZDliNzEzZTk1ZjM5ZTkwZDNhNWExNzEzMGI1YWU4YTY0NTFkNjY2NSByZWxlYXNlMjctbWFpbnQKKzg4Mzk5IDAyYjg4MTMyNmY2ZWQ4MmMwZTA5NjliNzViNWE2MmNmODZiNmUwOWUgcHkzaworODg0MDAgMjBkODI4NzNhYTk3N2E5ZjU2ZjE4YWIwMGM1MzYzNDBkY2E2ZTFkOSBweTNrCis4ODQwMSAwNmE2NTdkMWEzYWMxOTlmNWQ0MGEyYTQ0OTc1YmMzNmEzYjU3MDgyIHB5M2sKKzg4NDAyIGMzMTBkMjk0ZmRkZTBmYjA3Njk2NzM2Y2ZlY2E1ZTM5Njc5NDc0ZTkgcHkzaworODg0MDMgMmNiZTlkMDU4ZjdlOTJiMWRiNGM4NWQwYTI3MzU5YTNkYjFiYThhMCBweTNrCis4ODQwNCAxMTE1NzdiZjViYTg5NjZmN2JjYTk4ZWQ3OWNmZTEzNTkwYWVhMzQ2IHJlbGVhc2UzMS1tYWludAorODg0MDUgMTFjNjdhNjA4NGM4ZWQ0ZjJmMzExMWFhZDE5ZTJhZTA1MDM2NmRkOCByZWxlYXNlMjctbWFpbnQKKzg4NDA2IGJiYWY5MzA0YTBkMDRhMGNjNDI1OGYyNTczNTFlMDgxZDIwODQ4MzAgcmVsZWFzZTI3LW1haW50Cis4ODQwNyBmM2NlNGFiYmFhZjg1ZThmYjNkZWIwNThlMjBhYjVjNjM0NGZjZjdmIHB5M2sKKzg4NDA4IDg4M2EwMjNlYjk0MzNkNjJmMDI3M2M2YTcwNmZhOWNlNTFmMzFhMDkgcmVsZWFzZTI3LW1haW50Cis4ODQwOSA3ZDMyMDgyMGY0NjJkZDgzYjUzZjc0MjJhZTRkNmY0Y2ZkNTQ5OTEwIHJlbGVhc2UzMS1tYWludAorODg0MTAgYmE5NWMwYmRkOGE4ZDc4MzQ5ZTEwOTZkNDg0YTI2MjBiZjg0ZGY3NiByZWxlYXNlMjctbWFpbnQKKzg4NDExIDEwNjYwM2NhNTNjMzdjMGQ1YTgyMmYwODFiNDBlMWM5YzUyYjJiMTYgcHkzaworODg0MTIgNmE1NDMxMTZiZjE3NDc1YzIyOGU3NjA0ZjA1NzY4ZTc4MjE2YTIxOSBweTNrCis4ODQxMyAxOGMxZjUyODk2NTAxYzdlZTEzYjAzODQ1NGEzOWFjYjQ1YTg3OTc5IHB5M2sKKzg4NDE0IDkzZGY5NWU0MDNkMWE0ODYxNTFmM2U0YTkxZDVkMzYwNjc0NTJhZWEgcHkzaworODg0MTggYjQ1ZjRmMzlmMjA0ZDg2NWM5MmRmYzA3YjBkMzIzNGFhOTA1N2VmMCByZWxlYXNlMzEtbWFpbnQKKzg4NDE5IDA4ODU1MTRkODk3YzBjNGI3Y2JlMmFjZTNlNDI0ZjhmZDljNGFkYjcgcmVsZWFzZTI3LW1haW50Cis4ODQyMCA1YmFhYzE4NmYwYzI4YmVjNWEzMzgwZWMyMDZlNDI2ZTIzMGYzYTM0IHB5M2sKKzg4NDIxIDAzZWM2MWUxMzQ2MGIyNzFhYTVmNzlkYzY0ZDRhOTI5OTc4MmIwYTggcHkzaworODg0MjIgZDFkOWQ3ZTAwYjRhNWExOTg4ODIxMTlmZDEzOGQyNmNkOTdjNWRmNiByZWxlYXNlMjctbWFpbnQKKzg4NDIzIGQ4MDMxYmEzOGUxNmQzZWRjOGFjM2JiNWFiZGFkYzZhNzQ0MjU1MzYgcHkzaworODg0MjQgNDNhZjllMzZiZGQ1OGEyYmE3OGQ2YjBkZTJhZDQ3MGJjZmI0ZjNhYiBweTNrCis4ODQyNSAyZWUyYzc2MDgyYzhjNmFlZjVlNjI1NTYyMGRhNzY3MTMxNjVhYjBlIHJlbGVhc2UzMS1tYWludAorODg0MjYgOWZmM2I2Njk1NDhmODMyYTkyOWQ4YWJhYjQ1MTZiMTJmMDRmNTdiZiBweTNrCis4ODQyNyA3YTg5ZjRhNzNkMWFmZDY2NDQ5ZGZmN2QwYjU3MzFjNzZkZGU0MjIwIHJlbGVhc2UyNy1tYWludAorODg0MjggNWU3ZGQ2NTdmOWViNzUxZjNiMTRlNmViNTkwMDYzOGY1MjAyZWFhMyByZWxlYXNlMzEtbWFpbnQKKzg4NDI5IDkwN2YzODc5MjM1YThkNGFlYTYxMDI4YTI4YThlN2MzNGZjMDFmZjQgcmVsZWFzZTI3LW1haW50Cis4ODQzMCBhZDJmOGM2ODZlMDg1NWE3MjJkMzAwNzM1OWQyMzFkYTA1MWUyNjI3IHB5M2sKKzg4NDMxIDM5Y2YyMGQ1YWQ0YzVlYTU1MzdhOWYxY2MzMDVjNTNkZDg5ZWM5MzIgcHkzaworODg0MzIgNmQzOWRhZWRlZGQ1NTM2ZTc5ZmM1NmQ3MzI1ZjE1YzkzNWQ1M2VlYyBweTNrCis4ODQzNCA2YzFjYTlkZWI0MmE5NTI4NmJiMjdlYjU1YjZjYTRjNDJlNWNhNDhlIHB5M2sKKzg4NDM1IDE1YThlMjJjNDEwMWRlZGE5NWFlYWFhZDAxODE2Mzc3M2M5MWU2NjIgcHkzaworODg0MzYgMjJkOTRmNTViMGM3MDM0MmFiODdkZjk2YmY3OWFjYTc3ZjI3ZmQ0ZiByZWxlYXNlMjctbWFpbnQKKzg4NDM4IDkyZGViZGY5ODFjNWYzNDQzZTg3N2Y1OGI0ODYxMTU3YjdjZDI4NjQgcHkzaworODg0MzkgNmNhYjlhOTk0MTA1MDM1NDBmZTIxZGRiOTIwN2RmMzBhZWQ3MjAyYSBweTNrCis4ODQ0MCA1YWYwMzU1ODlhYTc3NzJlZmZkMDQyN2M2NzRjMjllOWUyNjc2YTY3IHB5M2sKKzg4NDQxIDVlMzc2NjkxNzJjOGQyNzgzNGRhZjg2OGU2ZGYyOGNjZDgxYTMwODEgcHkzaworODg0NDIgMTAxYmM2Njk1MWM3Y2E0ZTYzOWJkZTg2OWFmNDE1YzM0N2NmZmI5MyBweTNrCis4ODQ0MyA3ODhlYWZhZWY3ZGM0ODIwZGI3OGNiNDlhNTdhMGFkZjYzZmM1MGNlIHB5M2sKKzg4NDQ0IDU5MDBkOTQ4ZmU1N2E0Mzk5ZGMyZmZlYzNiYTEyNjRiMjE3ZDRlMTYgcHkzaworODg0NDUgNDk2YWM0ZDFhOWFiYjk2NWM5ZTExOWUyNDRlNjNjN2RiMTZkMTg0OCBweTNrCis4ODQ0NiBhMjIyYTAxNWUyOGQ4YWU5YWYzODk5MjU4ZGM2YzE1YzNkNDBhZGQwIHJlbGVhc2UzMi1tYWludAorODg0NDcgNjYzODFjZWM2YzczMjVjMzA2MDY3MzRkZDM3NjY1ZGQxMDRkNjVlYiBweTNrCis4ODQ0OCAyMDM5NDUwNjBiYWZmMjA2YTZhNzdjODZiYWFkODg3MDFhZDQ0Zjc4IHB5M2sKKzg4NDQ5IDBmNTJjZmM5MWZhZWMwODk5Nzc1NDg3YzJmZGIwNDQ1ZDMwY2VjZjEgcHkzaworODg0NTAgNDQxOTA3YzA4MTRlNWM3MWU4Y2U0NDkzNjQ5OGJmYWI3MzBlZDdiZiByZWxlYXNlMzItbWFpbnQKKzg4NDUxIGE4M2NjOTYxYzQzYTJkMzI2OWJkYTRlNzNjZWI5ODk5MWFjMzQyMTkgcHkzaworODg0NTIgMzVjMGUzN2ZlOTUwMTIzZjBiY2VjNWM1OTRmNTU0NWI5ZTZmNmY4OSByZWxlYXNlMjctbWFpbnQKKzg4NDUzIGFlYzk1MjdmNjIyMzI3Njk5NjcyMTk1OGQ4YzFjMzU2MmQ5YTVhNjkgcmVsZWFzZTI3LW1haW50Cis4ODQ1NSBiZjg2NDM5NWQxYzg4YjFjMzJjMmFmOTVhODhhODQ2ODE2NThiNDgzIHJlbGVhc2UzMi1tYWludAorODg0NTYgN2IwMTFjZjY0ZjkwNmMyMmZhOGNhZTRjY2ViNzU4NGE4ZDg0YzI1NSBweTNrCis4ODQ1NyAzNzFmMDRlMWJkM2Y4YjNlOTJiY2MyZGU2OGI2OWQ0N2I0N2ViMGQ1IHJlbGVhc2UzMi1tYWludAorODg0NTggNzkwMmY1YmUyYzkwNmJmMGI3NmFhNDM3ZDU3MDZkYWM3YmMxNGFkNSByZWxlYXNlMzItbWFpbnQKKzg4NDU5IDk4MzYzMDc5NzMzOGUyZGY3YjBhZWJlMGYzM2I0MWNiNmZmYmY1YzQgcHkzaworODg0NjAgNTFhMDgwYmFjYjI1MDhkNTQ2MGJhYzAzZDAxYjBjZDdlNDI0MGJkMSBweTNrCis4ODQ2MSBkYTVkZDNlMjNjODcwMjUyMDg5YzBjNGRmM2RjOTRkMjJmZjhkYWZiIHJlbGVhc2UzMi1tYWludAorODg0NjIgNmMxZTA1YTRiNTQxZjFlMjAxYWYzNDllZTQxODE1NGNiNTkzY2JkYiByZWxlYXNlMzItbWFpbnQKKzg4NDYzIDI3ZWEzYWUzNjJjZDUxZmY2YTJiYjAyZGIxNzQyMjlmODNkM2FhMmQgcHkzaworODg0NjQgOTU0Y2Q1ZGI1MWRjMzVlZjQzYjhmNDM5NDVjZGQyZmE4ODFmNWVmMCBweTNrCis4ODQ2NSA5ZjgxNDZmNDVlYWU4N2M5Mjg5NTM4MmEwY2NkMDA2N2ZmYTVmMDg1IHB5M2sKKzg4NDY2IGExZjM1YzIxYTcxMmMxMTg1ZjVjMGEzMjNiNTBiYzM2ODM5ZDUxZTkgcHkzaworODg0NjcgNjE0ZTMyOTAwZWY3ZGI4NmM2YTBjOGRlMWMwODczOThkNTI2NWY2ZSBweTNrCis4ODQ2OCBlYjhmYzFjZTFjODFlYjgzZmE3NmUyNjE5Yjk3YWFiYTliZTJhNTAyIHJlbGVhc2UzMi1tYWludAorODg0NjkgNDgyNTg3MTgwMjU1YTUxYjA5MjE2NDVlZTY4NDFlMzZiNDgxMDRhNiByZWxlYXNlMzItbWFpbnQKKzg4NDcwIGIxN2JiYTFjNzMwM2NlN2U1OWRmYmMyNzhmNjRlNTU3OTY3MzJmNDAgcHkzaworODg0NzEgNDUwZjhkNTFkZGE4NjliM2YzNTgyOWVjMjU1NmExY2FiZjc0OTYxNSByZWxlYXNlMzItbWFpbnQKKzg4NDcyIGZmODZhMTc5YmMxM2NhNzEzNTM3MGI1NzNhMmZlNWUzNjM4NTk4ZDcgcmVsZWFzZTMyLW1haW50Cis4ODQ3MyAxODUzOTg5Zjc0ZTc2YWI0NzVjYjI2NDU0NjdiY2I5YTg4MzA4YTIwIHJlbGVhc2UzMi1tYWludAorODg0NzQgMTU4ZDZkZWYyZWY4N2YzMTI5YWUwZDQxYzZmZDIwNmExYmRhMzU3MiBweTNrCis4ODQ3NSBhMDM2YzMwYWI1YWU0YWM5ZDcwNWJmZTdmNjRhZTNkNjE2NTBjOTkzIHB5M2sKKzg4NDc2IGFiMTY2NGIyOThmY2RiMWY4ZTk2YzliM2Y0MGFjOTdlZjkxNjBkZTEgcHkzaworODg0NzcgMDBhNGZmYTcyZGJlM2QxZWExZDJkNDZmMzUyNjk1MTA0NzkwNzJlNyByZWxlYXNlMzItbWFpbnQKKzg4NDc4IGJiODU3ZDljMzA3MTIwYzVkZmEyMjI0NDYxY2I0NTljNzc3NWZkMjYgcHkzaworODg0NzkgMjg0MDI2ZTAwMzQyZDRhZWUzMjkwYzgwZGVkMmIxYTYxN2U0YmI0ZSByZWxlYXNlMjctbWFpbnQKKzg4NDgwIDJiOGU2YTIxYWVhYTE5NTRiMzlkYmZhZTMyMWY5YTQzZjI4MTllYWIgcHkzaworODg0ODEgZWYyOGFhZDNiYmFlMGY1N2YyNjRhMGFiZGU1ZDU0YThiNjE3ZGE3MSBweTNrCis4ODQ4MiBiNGMxNWQ4NzA5NGQ5ZWE1MTdkZmRmY2RkNDVkYzU4ZThhNzEwYTg5IGlzc3VlMTAyNzYtc25vd2xlb3BhcmQKKzg4NDgzIDIzZGUzYWE3MjIzMDZkMmJmZmViMGZlY2ExNDU3NWIxMWNhMTkzNzcgaXNzdWUxMDI3Ni1zbm93bGVvcGFyZAorODg0ODQgZjVlOWMxN2I4NWFkMDZiMTdiZDVkMzFjZjg4MTViMGZkNTM3MzEwZSBweTNrCis4ODQ4NSBjNjA2MGVmNWM0MDUxNDZjZWQyMmJlYTQ4ZGRiMjQ4OWU4OTVmZjRmIHJlbGVhc2UzMi1tYWludAorODg0ODYgNDFjNTI4MDMzMGZkNjI0MmQ3MWUzZjBhOTIyMWU3NzI4NjExNTIyYiBweTNrCis4ODQ4NyA0Mjk1ZTA5NWFkNGZiOGU5MmJjZjYxZTYwYTUwNmU5ZGY0NGE0MWRiIHJlbGVhc2UzMi1tYWludAorODg0ODggYjU1ODY5NTk4NjgzZmE5YjViN2UwNDkxMzJhOTAzNGQwNzMyNmU3YyByZWxlYXNlMjctbWFpbnQKKzg4NDkwIDc4NjYwNzE0ZjE3YTM1NTdmOGI1ZTQxN2ZhYmJhMjJjNzQzZWVkZTAgcHkzaworODg0OTEgNjdlYzI2Y2M0YjRmN2UzMWQzYzNjZDQ4NGJmYzcyNzc3NWNkNzdiOSBweTNrCis4ODQ5MiBjZTIwYWM0MWUzMWZkOTQwNDA0Y2QwOGM2ZjgzMmQ5ODYyMDZkZDQwIHB5M2sKKzg4NDkzIGZlZDc2OGI3MTEzNjE4M2Y2ZTI0MjU2NmY4MGFmYWVhNDNkYjdlOGQgcHkzaworODg0OTQgN2Y4NWZiYzE2Y2FlZGQwODM4MjgyZjgxY2RiOThkNjU3NDEwY2UzYiBweTNrCis4ODQ5NSA0NzNkMjMzYTA0NzgxZGZmMzc5MjczOWY5NzhkMzQ0MDA2OGVhNjdhIHJlbGVhc2UzMi1tYWludAorODg0OTYgYWUxODZiM2IyYzU1NmUxY2IzMmIzYzFlOTg2N2EwZDVmZTM4MzIzNSBweTNrCis4ODQ5NyAxOWRmNDc4MzliY2FiNTVmN2Y2MzE5MzZhMTE2OGI0ZDNkOTFjYmNlIHJlbGVhc2UzMi1tYWludAorODg0OTggZWEyNjBkMzkzY2RlZTNjM2UzNjE0Zjk1N2RlYjcyZGJkNzdmYjA3MCBweTNrCis4ODQ5OSBjOTBlMGU1YjBkMjU0NzEwNTFlMmFlNmMxMzJmNDU0Zjc0M2JkYWZlIHJlbGVhc2UzMi1tYWludAorODg1MDAgMzcyYjJlZjBmZjM3YjZhMWFhMTJlNDMwY2IyZGVjOTk5YjY0NzkzYyBweTNrCis4ODUwMSAyNDMzOWJmMGM3ZTY2YTdlYTFlY2EyYTUyYzI0ZjI4ZmNhZDRmZWY1IHB5M2sKKzg4NTAyIDMwNDExYWYzNGVlYmZhZmE3NTVmZTMzOGZmMzhlNTQyZDM3MDJhNWUgcmVsZWFzZTMyLW1haW50Cis4ODUwMyA1Y2U0OTkxODBkMjQ1ZjgwYjY2YTA1N2U4ZGVjYjJhMzM1YWQxZGM1IHB5M2sKKzg4NTA0IDk4MDY5Nzc2OTg2NjIwNWQwOWQzMDAyMDFmZjg1MjU3NzA0ODdjM2YgcmVsZWFzZTMyLW1haW50Cis4ODUwNSAyNDdhMjgxMDkzMmFhNTVjMTI1YzU2MTA2NWMyOTI3NDM0YzQwOTU1IHB5M2sKKzg4NTA2IGE3NTE1YTk0ZmRiNWI1MDU4OWIyM2YxMjFmNjBlZDRhOGRlZjZjMWMgcHkzaworODg1MDcgZTJmOTZiZDI5MjUyZTYyMWJiOWUxNTYzZmJiYjBlY2E4MjMxZGU1MyBweTNrCis4ODUwOCA2NDgyZGQxYzExZWQxYzFhZmI5OWQyMzRlMjgzMGYzNGM5ZjM0Nzg2IHB5M2sKKzg4NTA5IDE2ZWU0MmRlMGZhYjkyZjE5MGM4Y2NhMjc0Yzk0ZWQ0NmI0OTFkMWQgcmVsZWFzZTMyLW1haW50Cis4ODUxMCAyYjU0YmU2NTUxNjk4YTcxODU2YTUyZTVjMWFhZDEyMmM4ODQzMzM1IHJlbGVhc2UzMi1tYWludAorODg1MTEgMzI3YTVhNzhhMjU3Y2ZlMjdhY2Q5MDFjNjVlMDg0YmE3MTk2MThkOSBpc3N1ZTEwMjc2LXNub3dsZW9wYXJkCis4ODUxMiAyZjhlYzc3ZDMyY2Q0NzE4YWFjNzQxNTU1M2JmNzQ1ZDU4MzBhYmEzIHB5M2sKKzg4NTEzIDA1ODZjNjk5ZDQ2N2E2NGMzZTIzZGQ4NzZkMmQzNjJlNjMzZDg5MGQgcHkzaworODg1MTQgNjI5OTQ2NjI2NzZhN2JlNzkwZTBkY2NjNjMyODE4Yjc4OGY2YmYyMSBweTNrCis4ODUxNSAwZTlmM2JiNjNkMDBiN2FhNTBkZGJiMWU1NzY4YTA4ODFlMjJkZDZlIHJlbGVhc2UzMi1tYWludAorODg1MTYgMmY4OWNiYmVjMGI0ODRkMTFiOTY0MTA1ZDBkYzMyNDk2ZmFmMjhhOCBweTNrCis4ODUxNyAwODc0Njk4YjEyMDFkZjljMmVjOTVkMDlkZTgxMDg4ZDVkYzkxODkyIHB5M2sKKzg4NTE4IGVjM2MwNjc2MTg1NmRkNjMwYTk1ZTM5OTMxNjlhZmI3ODhlZTdlYzMgcHkzaworODg1MTkgYWMwZDhlMjFhNDdkZWI1NWVhYzkyNzQ5NGEyMzhjMTg2MmQ3MDA0MyByZWxlYXNlMzItbWFpbnQKKzg4NTIwIDQ0Y2M5ZWY0MzEyN2Y4YjZkOWI1ZmE0MWZjZjdhNjEzOTdiYTdkYmEgcHkzaworODg1MjEgZjJlZGFmNjJkODIzZmI2NmZlNzlmNGRiZjFiZmY3MzgzMjIxZTA4MCBweTNrCis4ODUyMiA3ZjhkYTEwYmZjZWZjZjM3ZWRjYTc5YThiYWRlNzhmYmQyMWIyY2QwIHB5M2sKKzg4NTIzIDE2NWQwMTVhMmJhZjA3ZjMzN2QwZjU2MmQzMmRjNWYyYmJmMGM2MjggcmVsZWFzZTMyLW1haW50Cis4ODUyNCAwM2Y3YWZiYzE2MDg0OGQ0ZTE3YjY2MGQzZGVmNTdkNzI5NGZiZDE5IHB5M2sKKzg4NTI1IGM4YzU3ZTc2NjQyODUzMWRmNjhiYWExY2Y1N2ZiNzY2YmY3MDkyNmQgcHkzaworODg1MjYgNzQ4NjFhNDJhNmU2YTI4OWMzYWI1Yjc3MTliZjBjZjRmMGI3NTAyMyBweTNrCis4ODUyNyBiYTFhZWIzNjIxODIxZjIyMjEyOTE0ZjU1ZDg3MThkNjU0YzUxZjZhIHJlbGVhc2UzMi1tYWludAorODg1MjggMDM1ZWZkYWY4MjI5Yzc5YzQyMGQxMDQ2MWIwNjhkZTRjNzY0Y2ZlMCBweTNrCis4ODUyOSAyMzI1ZmUzNmFhMzQ1NjYzZTk0ZWZkZjI0NjJkMDYxN2ZmZTRmNzY5IHB5M2sKKzg4NTMwIDVhOWQ5MGQ0Zjg5ZWI4MGYxMzQzYmNmMzg1Yjc3ZTg1MTVmZWE4NmQgcmVsZWFzZTMyLW1haW50Cis4ODUzMSBhYmExNmE1NjgzZDM2ODVlZWUxZDYxYWE3NDU2M2NiNmMxODBlY2FiIHB5M2sKKzg4NTMyIDMyMzg2ZmE2N2ExMmE3NjkxNzMzN2EzYzNiODM4NDI4NjdiMTk5ZDMgcmVsZWFzZTMyLW1haW50Cis4ODUzMyBjZjkxNzZmMmE2MjA1YWRjNGYzNDA0YjZlOTI2NmQyYTJjN2NhYjg1IHJlbGVhc2UzMi1tYWludAorODg1MzQgYTFjZmU4MTVkOTdhYWQwYWY0OTJlZWY1ZThlMjI5NjU5YzUxMzIyNyBweTNrCis4ODUzNSA1YTI5OGFmYWNiOTU1NDc1N2I3ZDEyMWFlOTBjMTY3Y2ZmZTI1NTcyIHB5M2sKKzg4NTM3IGRlNWMzYTM5YWRlNzI0ZGI0MjY1YjI4ZjBmNjAwZmMzNzg1YmE2Y2MgcmVsZWFzZTI3LW1haW50Cis4ODUzOCBlOGRmZTYwMmVmYTFjZGVhOThmYzVjZTFhODhhNTUwZDZlNGRkN2E3IHJlbGVhc2UzMi1tYWludAorODg1MzkgOTg2MWRjMTE4MzIyMmZlMGJiNTliZmFlZWIxMzEzMDkxMzBiMmNkZiBweTNrCis4ODU0MCA4YmE3NjUzMjgwMzA2YTQzZjA5Mjg2ZTY5MzliZWJiZmEyY2ZjNGIwIHB5M2sKKzg4NTQxIDczMjZmMDY0ZDgzYWZlYTUyMGNhNjYzYzhmMzNmYmFlZGM5YTk4NTQgcHkzaworODg1NDIgNjA5ZjJiODIzMzUwZTQyYzI2NjRlYmIwMThjYzg1MmE2ODc2OTQyMCBweTNrCis4ODU0MyBiZjg5MDZjZTEwNGI1MDNkYzhiMjg1YjZiMzQxZDAzY2QzNDNmMWUxIHJlbGVhc2UzMi1tYWludAorODg1NDUgZmQ2ZWM1ZTA4NGEyYzdlNmUxZDM1ZTYxNGZkNzY0NzQ5MDA4NzZkYiByZWxlYXNlMzItbWFpbnQKKzg4NTQ2IGRiN2VmMzRlZWRhZjViZWI5Y2Q5MjVhNjNhMGM0YzE3MzI0Nzg0YTEgcHkzaworODg1NDcgM2U0ZDk1OWY4ZTEyZWRmZWUyZWE1ZjVkMDcxN2Q4ZWU1MzMyOGQ5MyBweTNrCis4ODU0OCBmZWFiMjMwYmQwZGRlNDBhNTk5ZjA0M2U3Y2M1MmFkZjlhNmM5Zjc0IHJlbGVhc2UzMi1tYWludAorODg1NDkgY2MzYzNhNDM4Mzk4ZGRhZjA5YTcyZmU0YjQxYzY3OTc2MTk1ODZjYSByZWxlYXNlMzItbWFpbnQKKzg4NTUwIDU3MGM1OTM5YmMwM2U3MjI4YjkyMDQwNTdmNmY5OGVhN2Y2M2M1NDcgcmVsZWFzZTI3LW1haW50Cis4ODU1MSBjYmNiMjZhOWQyYmRkZDkyMDRjYjk0MGYxZjYyZmIzYzg0NmNhMzE1IHB5M2sKKzg4NTUyIDQ1NzM5Y2E2M2ViMzQ1YjAwYTFhYjEwMTA5ODkyN2UzMzRlMmY2NDUgcmVsZWFzZTMyLW1haW50Cis4ODU1MyAyMzZjNGRjNmYwZTdkN2JiODI2NDdjNmQ4MzNlY2ViZDBlYmE0YThlIHB5M2sKKzg4NTU0IGM4YzBlNDI5NDRhMTY5N2E2OTljM2FkMmE5ODMwOGFkMDExMGQ2NmQgcHkzaworODg1NTUgMzY0ZTRjMTA2Mjk3ZWFmYWU2ZjI0YWJiOWM0MTcyNWViYzYzZDYxYiByZWxlYXNlMzItbWFpbnQKKzg4NTU2IGIyNDVkNjliNGYwYWQ0ZTdhZjg2OTBhM2Y1ZDk3NWYyZjczZTZjZTEgcmVsZWFzZTMxLW1haW50Cis4ODU1NyBjNzk2NjVmYjI2N2FhMzc0NzBjZDIzNjVkMTcyZDljN2RlMDJkNjIyIHJlbGVhc2UzMS1tYWludAorODg1NTggNjE0YThjN2I5NTI1YWQwNjI4YTJkNjRiYTFlMDBkNzkwOTUyNGQxNiBweTNrCis4ODU1OSA5MjYyOWNjYWFlNzY0NmU1NGIyYzUwMzI3ZGFkY2RjZTVmNDZkOWI4IHJlbGVhc2UzMS1tYWludAorODg1NjAgNTg1ZGIwNjgwNjllZDYxNmVlZDQ0ZjI1MzM3NTVlNDkxYzIxMmM1YSByZWxlYXNlMzEtbWFpbnQKKzg4NTYxIGVmZjJlOGYxNWJlZDA4ZjI2NWEwYWQzMGVlM2FmNTJiOGE4NTU2MDEgcmVsZWFzZTMxLW1haW50Cis4ODU2MiA1YjM1YmJiZTMyZTcwYWI2NzBkYWI0MTkzN2I0OTQzNjNiODUyMmZmIHJlbGVhc2UzMS1tYWludAorODg1NjMgZTNjNjg0MTVhMzJkMTAwYzZkZTMyY2ZiOTI3MzQ5N2U0NDZiZmViMCByZWxlYXNlMzEtbWFpbnQKKzg4NTY0IGQzNTY2NDk1MDRmOWY0NzZhNzFlNGIxYjU5MjJhZTMyNWJlODI0ZWEgcmVsZWFzZTI3LW1haW50Cis4ODU2NSA4ZWVlZTlkNmQzMmI5MTMxZmMyMWRkNzlkYjUxOGU2MTZkZmVkYWMzIHJlbGVhc2UyNy1tYWludAorODg1NjYgYzdjNzZjZmJkYjRlMDE5ZTc5ZjY2MmUzNmIxNjE3YzU1NTExOTM1MyByZWxlYXNlMjctbWFpbnQKKzg4NTY3IDNlNWYyZTJhODRhYmU0ZThkMTM0ZGM3YzY1NGI3MmRhZDllZDY2NmQgcHkzaworODg1NjggMjI2ZjAwMWE3MDFmZjM0YWZiNWYwZTg4ZWM1NTg1OGE4NTVjOWE4MCByZWxlYXNlMjctbWFpbnQKKzg4NTY5IDM0YWUzMTYzMThlZjQ1NGY5YzIzOTNkMmUzYjdkNjAwYWY3ZjAzOTMgcmVsZWFzZTI3LW1haW50Cis4ODU3MCA3MjBhMmY0NGNiZjJjY2EwZjc0YzNkM2U1OWI1NjgzY2U5ZjUwMmY0IHJlbGVhc2UyNy1tYWludAorODg1NzEgNzhkYjNkMGM2ZGI3MmExYjZkMTlmMDk4MTZiNDY2OWIyOGU4ZDE2ZCByZWxlYXNlMjctbWFpbnQKKzg4NTcyIGIzNTZiODcxYmY2N2QyYjUwZmUzMGJlODdkNTA2Mjg0M2FkZTZhYjUgcmVsZWFzZTI3LW1haW50Cis4ODU3MyAwMWM5NmIzNzU4NmRkNjdjNDlkZmU3ZDZjODFhOWIxMTQyMzNmZTM1IHJlbGVhc2UzMS1tYWludAorODg1NzQgMDM1MjY3ODEyODJhZTI1OGJiNmQ0ZDE5NWRkNzhmNTM3YmVjZWI0MyBweTNrCis4ODU3NSA3NDBhYjkyN2JmODk4YmRjY2M2ZjE0ZTk1MGUzYTE0ZGQ3OGI5M2M0IHB5M2sKKzg4NTc2IGIxN2EwNjQ5MjliMDRjOGY3NmEzZTY5MmMwMmEwYjlhODViMGYxYTMgcHkzaworODg1NzcgOWZmN2JjMzYxMDYwNDMzOGRlZmFkMWFhMmUzYTNiZjRhN2YwNzhlZiBweTNrCis4ODU3OCBlYjVlZDNkYTY4NjIzNGEwMTU4YjRlMWIyNDVmZDdlYmVjOWViNDk4IHB5M2sKKzg4NTc5IDE3NjJkNzllYWI2NWY1ZmMzYjYyOTdiNTU5MzQ3NzQyOTNkZTBiNzEgcHkzaworODg1ODAgN2ZkODBjNjFkZGFhM2Y4MGViMjRhZTRmMjYxMzJmYmEwYWY3OGFiYiBweTNrCis4ODU4MSBkM2Y5M2ExMmQ2YTkxNWVlNDIzMDEzMDAwOTZlNzFiYTc5NjRkZjBiIHB5M2sKKzg4NTgyIDYzNmIyYjU1MjA3M2QxZjBiODJiZWJhMGEwZWQ0NTdlYjQ3MjQ2ZTggcmVsZWFzZTMyLW1haW50Cis4ODU4MyBmZDQwMTEwZDVkODczN2Y4YWQ3YTIyNDkyMmM5MjA5ZDM0ZjY3YTdiIHJlbGVhc2UyNy1tYWludAorODg1ODQgYmQyNTJjMTJkYTFkODgzYzQxZDNiYjYwYTI4ZjFhMWEzZDM4NjNhYSBweTNrCis4ODU4NSBmNGIxYTY1Nzk1NDE3YjRiYmU4ZWQ4OTQ3YjllY2IxODJkMmFkYTNkIHB5M2sKKzg4NTg2IGJlNmMzOGQxODE3YjMwMjBiNzYwNDAwYWEyZjVhZWY3MTdhOWM5MjMgcHkzaworODg1ODcgMzZjMWI2OGIwNTg2NWZiOWZhMTg5YjViOWUwZDFmODgwODhhMzJiZCBweTNrCis4ODU4OCAxOWQwN2ZhNDIwMDRiMTI0MWVmNjkzMWE4YjIxZmY4MDNiY2ZmZjA5IHB5M2sKKzg4NTg5IDg0MmZlZTZhZTBlNTAzMDg5MGVkZjVkNzA5M2JlNWI4OWE1Mzg2ZGQgcHkzaworODg2MDIgN2FiNTY5YjE4Yzk4Zjg4NGFiYTVlNWNiNTI3NTFmZjYzZmE5YWE3NCBweTNrCis4ODYwMyA4YzViODExNDg0YmMyZDJlZTEzNDZhM2RhNTQ2NTJjZTgzNDkyMGUyIHB5M2sKKzg4NjA0IDEyY2E0NzdjNDM3OGMxNzU4ZDA5OTk1MTZlMDliNDQ5MWNmMGFkNzMgcHkzaworODg2MDUgYjdlODVmZDBkMWM5MmRiOWZmOWIyZDA3ZTdlYTdmZjBmYmI2MTk4NSByZWxlYXNlMzItbWFpbnQKKzg4NjA2IDE4NjM2Yjg3MWQwMTc0MjI5OWNmYTgwZDM5ODU5ZmRjMWZiZThkNzYgcmVsZWFzZTI3LW1haW50Cis4ODYwNyA0YjYwNTIzMjBlOTgzYWQ3OThkNDFkMzBjNDk2ZmQ5YzE3MjEyNDA3IHB5M2sKKzg4NjA4IGEwMzgzNDI4NzJhMzRjNTRkNzA5M2E3NDY4MzhjMWVhZmE2NDFjMTcgcHkzaworODg2MDkgYTllYjAwODdiNjAyMTQzYmQ2NTlmYjFkYTk1YTA3N2YyNDM4MGEzZSBweTNrCis4ODYxMCA3ODU5MzNiYTQ4YWM2YjA0NzYxZTUwZjQyMDliYzYwODAxNDZlNGUyIHB5M2sKKzg4NjExIDY2ZWQ3MWE2ZTI5YThmMWJmMzliYmEzZjY4YjI2ZjBmYTYyMDg0NGUgcmVsZWFzZTMyLW1haW50Cis4ODYxMiA2NzViNDhjNGM4OGExYmI3MWU4YmFiNTFlZGQwNzM4YzRmMWQxNjE3IHJlbGVhc2UyNy1tYWludAorODg2MTMgNzA2YmU2ZWU5NjY4YjQ2NDQwNWJkYjY1YjZkODM1OTcxZmQ1YTkzMyBweTNrCis4ODYxNCA2ZjEyYWFkZmZjOWZiOTFkM2UxMzlkYWVhNjU2NTcyYjgzYjczZGEyIHJlbGVhc2UzMi1tYWludAorODg2MTUgOGIzZWY3MTliY2VkMmRhYThmODQwYjAxOTE0MmM2YjNlNTA0OWMyNiByZWxlYXNlMzEtbWFpbnQKKzg4NjE2IGRiNDZlZGEyMGZkMDI5ZmI3MDEyMDk0YzRhNDA1YjQxMzE3YzhlNGMgcHkzaworODg2MTcgYTc0OTI0ZWVhODYxYTlkZTk2MWY1N2QzZWU3ZDA2NjNmMjFkOTk0YiByZWxlYXNlMjctbWFpbnQKKzg4NjE4IGY3MWFjYzRiMjM0MTAyYjY3NTc5YmVkMmMxMzdlMGYwMmU2N2U2NWEgcHkzaworODg2MTkgODc0MjVkYzIzZjI2ZTVkZWYxY2UyYzZhMDJlM2IwMzNlZDMwMjJmMiBweTNrCis4ODYyMCBkMjE5MDA1MTE2NzVjZWE0OWE5MGM3YWNiYjAyYTFlZTVlZmM1ZDMwIHB5M2sKKzg4NjIxIDI3OTYxZGNhODMzMzAyYzFmMjE1ZjBjOTY1N2YwODJlOTI5YmMxMzQgcHkzaworODg2MjIgMTdkMWM2Y2VkZTdlZDNiY2NlMjUyMTUzYWVkYWE4MWIyODRkMDZjOCBweTNrCis4ODYyMyA1OWY5ZWQxMmYxN2E0ZWZlZjQzMTgzMDQ1ODVkMTYwMmVhYWQxY2ZmIHJlbGVhc2UzMi1tYWludAorODg2MjQgM2QzYmE0NTJmOGFkZWM1MzNjZDMyODYxYmM3Zjc5N2EzMzE4MjliMyBweTNrCis4ODYyNSBhYWFmN2I1OGUyMDkwYzJlYjY1MDg2Y2VkMzQzNGIwYTZjN2MwMDkzIHB5M2sKKzg4NjI2IDI2N2RiZDZjOThjMzE5MzAxZTk1YzcwMWNiYzFhODcwNmVhMjQ1MjMgcHkzaworODg2MjcgNTNhNDVmYjcwNzg2ZmEzZGNlZDEzMWQ3NmY5MzdhNGQ0ZTY4ZmQ0NSBweTNrCis4ODYyOCA3M2M1YWJiNDEyOTZkNjk5NzRmNmIyMzFiMTM5OWQwMmFiMGFkZThlIHB5M2sKKzg4NjI5IDJhMTlmMDI1Yjk3NGFhNWJkZTMzM2Q4YzE4YjA1MGU0OWZjMWExYzggcHkzaworODg2MzAgYTg2N2YwMmQ4ZjhkN2Y2YjJkOWMwZWU1MTcxZWUzZDlkMDdhNDE4MSBweTNrCis4ODYzMSA2NTRjOWYxM2NmZTllMTA3MmY0ZmJiMTIwYTU2ZDU1YzAyYzgzY2UxIHB5M2sKKzg4NjMyIGY0NTU1ZDM0ZjM0MGEzMDliMTAyYjAzMTE2Mzc4NjdmYjFhMDQ5YmMgcHkzaworODg2MzMgYjMyMjZhZDlhMzk4ZGY5ZGZiNmY1OTA3MjI3M2IwY2YxNzliYWU2YSBweTNrCis4ODYzNCBiYThlMzAyYjYyNmMwMDhkMWQzMWYzOWY4OTZlZWM3YWNmYTgxNzMyIHJlbGVhc2UzMi1tYWludAorODg2MzUgYzZkMzAzYjk5YzgyYWFmMjhhOGNmMTgxZjc5MmUyYTQ0ZjQxNmM0YiBwZXAtMzE1MQorODg2MzYgNGRkOTNkMGY1ZDFlMDc4ZGU3MzE0NzliMjMyOTJlYTMwNTlmNzE0ZiBweTNrCis4ODYzNyA2ODA4ZDVkYmExZWMxM2YwZmE5ODhiYTkyNWU4MWRmZDVkY2I0NjRkIHBlcC0zMTUxCis4ODYzOCA5ZWIyMDJlNjMyMGU0YWRjOTdlZGM5YzI4OWY2NzE5M2YwNWRhYjJkIGVtcHR5Cis4ODYzOSA0MDkyMjk2YTNkOGRhNWIxZjFhMDYyZmFjMjM0YTE0YWI3YTg1MWI1IHB5M2sKKzg4NjQwIDdmYTg2YTkxOTU2NzJjOGQ4ODg0ZWI3NjA0MmRjZTAzMjI1YjM0YTEgcHkzaworODg2NDEgNjBhNWI0YjIzNTVkZTVmNzM2NjY1N2M4M2ZjYjVkMjdmMTkxNGMyMyByZWxlYXNlMzEtbWFpbnQKKzg4NjQyIDBiNTk2ZmY2ZDQ2OTc1N2UyNzMyMDE3MGMzZjY4ZTJhMWE4OWYxZWUgcmVsZWFzZTI3LW1haW50Cis4ODY0MyA3M2RhZjkxYzYxNWM1M2NjNzhiNWQ0OWM4NjQwYzVhYWVjM2JiYjllIHB5M2sKKzg4NjQ0IDc2NDFmZTA4OWRhMWRhZDdjYWYzZjA5MzI4ZGQ0YTkwMGQ2NzNjM2EgcmVsZWFzZTMyLW1haW50Cis4ODY0NCA5MDdkNWIyZWQ1YTE5ZjVlMjNkNjE1ZDJiMjE0YmUyMWFhMGZiMjhiIHB5M2sKKzg4NjQ1IDU3MTdkZDIxNjZlZTA1ODQ2MjUyZmVkZWY3ZDhkNDk4NTQ1MjMzNDkgcmVsZWFzZTMyLW1haW50Cis4ODY0NSA3ZWVhMmE1NzRkZmM4NGM3MDkxODA5NDUzODhjOGRkZDYzM2JiNWMxIHB5M2sKKzg4NjQ2IDc2NGI5OWVlOGM4MTA5ZjQwY2Y4ZjAyNjNkMTYyMzZiZGJjZjFmNWUgcmVsZWFzZTMyLW1haW50Cis4ODY0NiBjODZmOTAzNDBjZDdkMjI3MmQ2N2ViMWM5MGY0MTVlM2VhYWM3NTNhIHB5M2sKKzg4NjQ3IDA3YWZmYTAzMzhiYWQyOTQxMDUxYTNlYzg2OWNlYjRlZjRmZjIwZTkgcHkzaworODg2NDggMzFkNGIwNGNiNWIwNTY3ZDJlZDRhZjc3M2QxODhmODQ1ZmNhZWRlMyByZWxlYXNlMzEtbWFpbnQKKzg4NjQ5IDk3ZDA1MGMzMTcyZjllMmVkYzgyYjI5MjI4ZGJkNjg5MWZjZDJiYTAgcmVsZWFzZTI3LW1haW50Cis4ODY1MCAyNzZkZTliMjkzMDMwYzEwNGRlYjdjNjc1ZTNhZjY5OTY5YTk4NzQyIHB5M2sKKzg4NjUxIDM3NGYwYjIyZTRhNGM1YjFiZTQwZDA2MWQ1Zjg0NjliYTFkNTRiMmQgcmVsZWFzZTMyLW1haW50Cis4ODY1MiAwOTEyOWFhZmI5NTM2YmRjZmJmZDdhNDRjM2JjMmUxZDAyOTcyZTM1IHB5M2sKKzg4NjUzIGZlZDJjNmQ0OWYxOTgwMDZlNTRiMzc5MWE0OTVmN2JiYWNiZTA4OWEgcHkzaworODg2NTQgOTc5ZGE4ZjEzOWRkM2Q2ZTIxOWYwYmFiZmY0NzZmOTVjY2U2YTUyMSByZWxlYXNlMzItbWFpbnQKKzg4NjU0IDZhOGZhMmU5YjEwNTVjYWQ3Y2MyMTgzOTkwM2Y5ZjM5ODNjMzU3ODAgcHkzaworODg2NTUgY2QxNDc4Mjg4NmNhYTI4NTAzYmIzNTZmNWIzYzM3YTQxZTIxMWI0MSByZWxlYXNlMzItbWFpbnQKKzg4NjU2IDcyMmFlZWI1N2VhYmJkZmY5YmY1MWI0Zjg0M2VhMWZjNDBmZWQwMTkgcHkzaworODg2NTggMTAyNTZiZDY4Nzg3OTE1ZjhmM2ZmZDU5NDYxMWQ2NzAwNjkwMjdlMiBweTNrCis4ODY1OSA1OWY3NGFhZDk3MDMxZjE5ZGVhZGNlOGY4NjkwNDVhZGZkOTg0NzkwIHJlbGVhc2UzMi1tYWludAorODg2NjAgYzc3YjI1YWRmZWMyM2M0MTQxYTUxY2RlMWE4NTkzOTVkOTMxMGMxNSBweTNrCis4ODY2MiBhNTgxMjljZGQzNjU3MzI0YTJlZjA4ODRkNDlmZGM0ZGJmYjRjNTE2IHJlbGVhc2UyNy1tYWludAorODg2NjMgODY4N2ExYjczNTE2Y2M1MjAzMWM3NzA5ODJkOTJkOTJmYmU0ZGJkYyBweTNrCis4ODY2NCAxOTA5YzEyZWYwNmM3YzFjMmUyMjQyNjI5YzNiODJkMWQ3NzQ0ODc1IHB5M2sKKzg4NjY1IDZjZWMwOTEwMjBhMmM5OTY5YWM4YWEyOTdkYWYyZjM2ZGVkNDlmZDQgcmVsZWFzZTMyLW1haW50Cis4ODY2NiA3NDJkNzNhOTk0MjU3NGI1MTMwYzk0ZGUxZjNhMjg2YzFlMjI3MGNiIHJlbGVhc2UyNy1tYWludAorODg2NjggNjUwZDE0ODIwYmQ4YzY2ZGY0YTBiYWE1ZDFkZGFlM2Q0MDg3NWIwZiBweTNrCis4ODY2OSBhOTU2NTkyNWJhNzA2MWQ2MzcxODQwNjRkNzhmYjUyZjhkYzgyYjIzIHJlbGVhc2UyNy1tYWludAorODg2NzAgYTViNWZkYTY2ODljNjUzZDg1ZDZmNDdlN2UwYTQ2ZDRlMjFkMWIzZCByZWxlYXNlMzItbWFpbnQKKzg4NjcxIDJmMDdkMzc1Y2U2ZWVjYWI0NzFlNWQ4ZWJiODg5MTA2ZjE2OWRhMTAgcHkzaworODg2NzIgNDU2NTBlYjM0Njg1MTE3YTdiODZmNzU2ZmIxMjZkY2IyZjNmZDUxMSByZWxlYXNlMzItbWFpbnQKKzg4NjczIDIxNDM2ZTQ4MTYxZmMzMTcwMjAxMDAxY2NhYmE3YTU1YjM5ZGI1NzUgcmVsZWFzZTI3LW1haW50Cis4ODY3NCBkYzg2MjZlMDg1NzdkNmIxZmQxMmU0MGZkNTljOWU1MjMwMDhkNmEzIHJlbGVhc2UyNy1tYWludAorODg2NzUgNzI4ZmJjMjYzNTljMTA3ZmY3NTVjZTViYjZiOWIzYjA4MGYxYmVmMSBwZXAtMzE1MQorODg2NzkgY2JkMDYwODEwM2Y2MTA2ZWZhMWQ2NTIzZDllMGVhYjk5NGRjYTE0ZiBweTNrCis4ODY4MCBiN2Q2MmJjMDE5OTg4OTIxMmJkY2Q0MGQ1ZDA0YTNjYTk4OGQzNDVmIHB5M2sKKzg4NjgyIDJkZGNhNTVlMDk4ZGRhMmIxYTY4NTZhMzU5ZTE5Zjc4ZDk4NWM2ODggcHkzaworODg2ODMgYmJkZGFjNWMxOGQzOTgwZTc2NThhMDliZDRmZTg1NDE3OThjMzUzYyBweTNrCis4ODY4NCA3YzZiMjFkYjAwZTNlM2YxNTVkMmI4YTkxZDEyY2QyODQ4MjA4NzRlIHB5M2sKKzg4Njg1IGEyZDYxMTE3YzJkMjY0OWY5MDkwZjY4OWFhODVjNTU3NWE2ZDczMzkgcHkzaworODg2ODYgMTBiODM4ZjZlNWExYTk0YmE3M2ExZDNjNjVjOTUwY2RkOGQ1ZGIzMyBweTNrCis4ODY4NyBmZGYzMmZhMGY0NDBlNzFlNTBkMGZmYzM1MjI5ZDZhMTRjN2QyYTQyIHJlbGVhc2UzMi1tYWludAorODg2ODggYjI5NGZmNzU3MzM2NWNkZGNjYThhMjdjMTY0OWZkMThkMTk5NDQ4YyBwZXAtMzgyCis4ODY4OSBmOGE3N2ZkNjc1ZjVhM2NlMDUxZWU0MDRjN2I1NmRiMWM3MmViZjFkIHJlbGVhc2UzMS1tYWludAorODg2OTAgNDQ3MzRkMzc1MzkzMTU0OGFjNGE4ZWQ5MjgyYjAzNDliOGI2MDE1MiByZWxlYXNlMzEtbWFpbnQKKzg4NjkxIDI2MTFjYmQ3NWM0Zjk3MWNmNmZiZjZiMzM3Mjc5OTY2N2I1OTUwMzAgcHkzaworODg2OTIgYTM2NjA5NmI5NWFkMmE2YjVmOGE4NmI0YTkwOGQyMjg3MWI4Y2RjOSByZWxlYXNlMzItbWFpbnQKKzg4NjkzIDE3OTczMDBmODdiOTk4NjViNjY1ODFjZWRhYTg0NzZkMjQ1ODc1MWYgcmVsZWFzZTI3LW1haW50Cis4ODY5NCA5YWNjOTAyMWYxMWUzMDIxODM2Yzg5Y2U4MjU4M2JiZjhlZjk3YTkzIHBlcC0zODIKKzg4Njk2IDhlMDdmYzk0ODY4MDY4NDkwNWYyNmVjYTRlNjJjYjhmYmRhZWQ2NDggcHkzaworODg2OTcgOWI3MjU0NjcwY2U5ZGEwMDI3NTNjYTAwYzI0OGVhYmY1ZGRmM2ZhZSBweTNrCis4ODY5OCA3MmYzMGY4ZWYzMzFlOWI1ZjUxNDBlOGYzMWVhN2RjYmViOTAwMGEyIHJlbGVhc2UzMi1tYWludAorODg2OTkgYjgyYzNlNTkzZGI2NTU1ZmI4MTY1ODE2YmM3YTI5Y2ExYjIyN2M0NiBweTNrCis4ODcwMCAxZDE5ODUxOGNiODc1YzM5ZTUzYWVlM2FmN2Q1NGE2NmZjMTJkM2YzIHB5M2sKKzg4NzAxIDVkYzM0OTNlMDdhOWYyYTgzMGU3OWFiMzA4MWMwNjQ5MDMwYzNkMTYgcmVsZWFzZTMyLW1haW50Cis4ODcwMiBkYTk1NDQwZDkyYjM2YjAwODIxODcxMTE1ZDMzYjBjNTEwOGMxMWYzIHB5M2sKKzg4NzAzIDczYTQ5OWYwZWFmMWIwYWVmMjg0NGE2MWExOWMxMzQwOTk3ZjhkN2MgcHkzaworODg3MDQgODdkZTAxN2RhNGJmN2NiM2Q2MDI3NjUxN2QyMTgzMGIzYWU5ZTBkNyBweTNrCis4ODcwNSA3MjkwYjhmM2M5ZmI5OTg0NjY5ZDA4MDdlOTg0YmVjNzEzNTEzZjAzIHB5M2sKKzg4NzA2IDMzZTc2OGQyM2IxNmE1NzEwZTRmNTIyYTYyMDhlOTJiY2MyZDNjZTkgcHkzaworODg3MDcgNmYxMTdkMjdhZDFjNWU2MzIzOWRkNTJjMzI1NjJkODI0MjVhZjg2NyBweTNrCis4ODcwOCBjN2E5MzYzNjIyODE5ZjNlYWI3NzJjNzgwNDM0YjIzNDcxZmUwYjI1IHB5M2sKKzg4NzA5IDM3OGVlMzI4YjYwZTBiMTYzNmFhMjQ3NTdiZWExYTE1ZjkyODFhZTQgcHkzaworODg3MTAgYTFkYmU1M2YzNzk4NDVmZjYzNjcwOWIwOGFiNDU2MzM3Yzg2NWM5MyBweTNrCis4ODcxMSA0ZGFjNDc2OWVhMjQ4YWFjYzgzMDc3ZTU3YTY0ZDJjMTM0MWMyM2FhIHB5M2sKKzg4NzEyIDZiMTJkMmI2OGYyNTMzM2RkNWFmZmU2ZTNlOGY0NmI1NWNkNDI0MjQgcHkzaworODg3MTcgMGRjNmE5MGRlZTIxOTEyMmFiZjU2NmFjODU4YWVhNjVjNDMwMDgyZiBweTNrCis4ODcxOCA2YzhlYzVmOGI5ZTUxYmNlMTU0ZTExOGVmYTkxZjcxYjAwOTZlYmQwIHJlbGVhc2UzMi1tYWludAorODg3MTkgYTRlN2ZiZWQ3NTNjNzMxYTU1MjY3Y2U3MTAwOWE4MGQ4MjcwNGQ0YSBweTNrCis4ODcyMCA3MzhmZWVjOWNlZDAxZmMzMTM4OTJkYjNiMTA1ODlmYjYwMjViODdhIHB5M2sKKzg4NzIxIDIwYTVhMDhjM2I2Y2E5ZDhhNDA4Njk3Yjk1NzY3MGQ1ZTNkNjI5YzAgcHkzaworODg3MjIgMjA4YTUyOTBmZDM4ZWM4YzRmZTEzOGU3OWU4MjNkMDE4NzQzZWNjNiBweTNrCis4ODcyMyBhMTcyNzA2M2E3ZGZlYjBkMmE2M2E2YjFhMjlmNDZmZWMzMmIwNTgyIHJlbGVhc2UzMi1tYWludAorODg3MjQgZjUzOThmYjgxNDI4OWIyNGE4YjA1ZmFlZDM0NGY3ZjkwYjc3NTZkNyBweTNrCis4ODcyNSAyZmNlOWM3NDJjZGVhYjRkZWQxMTE1MmVjYmRkOTA2N2UxMGVmMGUyIHJlbGVhc2UzMS1tYWludAorODg3MjYgZGRjMGJiNmE3YjdjNzJjN2FiYjdiMWM0ODBkZWE4ZmQ5MThkYjljZSBweTNrCis4ODcyNyA1OGNiMGZlMDZkYWEzNjUxOTUzNTUxYmU1YjExYjE0NTAxNTQ3YjAwIHJlbGVhc2UzMi1tYWludAorODg3MjggOTY1YWI5OTExZmNkMGVmMTRhZmUwZGE5ZjgzNTU1YzY4OTc4ZTdkMCByZWxlYXNlMjctbWFpbnQKKzg4NzI5IGYyMDQ2ZGZjYTczMTEzNjcyZDU5YjUwNDZmZjg2YjBiMDNiNDFkMDkgcHkzaworODg3MzAgYjUyODFmNWZhZGU0ZGQ1NjdmMWYxZDU2ZmFjOWNlN2Q1N2ViOWY5OSBweTNrCis4ODczMSBiYzllZmJiZTYzY2YzZWIzYTNiN2MxYjkyNDZjNTQ0ZjZmYTVmZWIyIHJlbGVhc2UzMi1tYWludAorODg3MzIgYTgzODk0NjhlNjUxMzdjNTA2NWY3MDJjODQ2YjljMGU1NjFlNTk3MiByZWxlYXNlMjctbWFpbnQKKzg4NzMzIDA4ODA0YWVhMDhmMWM0OGExNmM4NDlkYTEyNzA3ZTUxYTg3ZDg2ZDkgcHkzaworODg3MzQgMmY1Zjc1NWIyNjg3OGNiMGZiMzVjMGM1OTA3M2FhZjE4ZWJlMzY4MyBweTNrCis4ODczNSBkMmI1YmRlNWMxZmE0Yzk0YTc0N2M2NzAxNjNkNmFjNzAxZjk2MDk2IHB5M2sKKzg4NzM5IDFhMDViYzM2YTMzNDBhNGU2YjU5NjE1Mzg1NDNmMTBlOWJmOGNmN2EgcmVsZWFzZTMyLW1haW50Cis4ODc0MCAzZjcwYzU0ZDg2ZDg5YWRjZjdhNzQ1MjAyNTk2N2E4ZjcwYmUyOWNmIHB5M2sKKzg4NzQxIGUyZGZjOGYyNGQzZjZlYTgzODYzZDJlMzJjMGMzMDNlMDI2YWFhZmQgcmVsZWFzZTI3LW1haW50Cis4ODc0MiA5M2ZkMTY2NzA3NzRhMjc3YjkxNzM5MDQyNmI4NGMyOGFiNzk2YzdhIHB5M2sKKzg4NzQ0IGU3NDIwOWI5YjJmNTI4OGY5MzdkNmUzNDExYTJjZjEwYTg2NDZiMDQgcHkzaworODg3NDUgZTdiNmFkYmE1NzFhYTkzYTQ0MTQ1ZjBlYmY3YjViYmEyZTM4NTkzMSBweTNrCis4ODc0NiA1MGIzOGU0YjAyMzEyNjdiOTE3NTVjNGQxYTAwNzIwZjM4MTk1MjY4IHB5M2sKKzg4NzQ3IDBlNzE4MGU0YzNjZGI5NDg0MThiYzE3YjU3NGQxZmY2NTE0MjlmNGQgcHkzaworODg3NTIgODVhMzRhMzE2OTY5Mjc4NTkzZDQ1NGE4NmVmNDNhMmY3NmMyZDc2YyBweTNrLWNkZWNpbWFsCmRpZmYgLS1naXQgYS9NaXNjL3ZhbGdyaW5kLXB5dGhvbi5zdXBwIGIvTWlzYy92YWxncmluZC1weXRob24uc3VwcAppbmRleCBhNjYzMDViLi44MWEwN2M5IDEwMDY0NAotLS0gYS9NaXNjL3ZhbGdyaW5kLXB5dGhvbi5zdXBwCisrKyBiL01pc2MvdmFsZ3JpbmQtcHl0aG9uLnN1cHAKQEAgLTEzNyw2ICsxMzcsMTggQEAKICMjI30KICMjIwogIyMjeworIyMjICAgQUREUkVTU19JTl9SQU5HRS9Vc2Ugb2YgdW5pbml0aWFsaXNlZCB2YWx1ZSBvZiBzaXplIDgKKyMjIyAgIE1lbWNoZWNrOkFkZHI4CisjIyMgICBmdW46UHlPYmplY3RfRnJlZQorIyMjfQorIyMjCisjIyN7CisjIyMgICBBRERSRVNTX0lOX1JBTkdFL1VzZSBvZiB1bmluaXRpYWxpc2VkIHZhbHVlIG9mIHNpemUgOAorIyMjICAgTWVtY2hlY2s6VmFsdWU4CisjIyMgICBmdW46UHlPYmplY3RfRnJlZQorIyMjfQorIyMjCisjIyN7CiAjIyMgICBBRERSRVNTX0lOX1JBTkdFL0NvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUKICMjIyAgIE1lbWNoZWNrOkNvbmQKICMjIyAgIGZ1bjpQeU9iamVjdF9GcmVlCkBAIC0xNTUsNiArMTY3LDE4IEBACiAjIyN9CiAjIyMKICMjI3sKKyMjIyAgIEFERFJFU1NfSU5fUkFOR0UvVXNlIG9mIHVuaW5pdGlhbGlzZWQgdmFsdWUgb2Ygc2l6ZSA4CisjIyMgICBNZW1jaGVjazpBZGRyOAorIyMjICAgZnVuOlB5T2JqZWN0X1JlYWxsb2MKKyMjI30KKyMjIworIyMjeworIyMjICAgQUREUkVTU19JTl9SQU5HRS9Vc2Ugb2YgdW5pbml0aWFsaXNlZCB2YWx1ZSBvZiBzaXplIDgKKyMjIyAgIE1lbWNoZWNrOlZhbHVlOAorIyMjICAgZnVuOlB5T2JqZWN0X1JlYWxsb2MKKyMjI30KKyMjIworIyMjewogIyMjICAgQUREUkVTU19JTl9SQU5HRS9Db25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlCiAjIyMgICBNZW1jaGVjazpDb25kCiAjIyMgICBmdW46UHlPYmplY3RfUmVhbGxvYwpAQCAtMjg2LDYgKzMxMCwzOCBAQAogIyMjICAgZnVuOk1ENV9VcGRhdGUKICMjI30KIAorIyBGZWRvcmEncyBwYWNrYWdlICJvcGVuc3NsLTEuMC4xLTAuMS5iZXRhMi5mYzE3Lng4Nl82NCIgb24geDg2XzY0CisjIFNlZSBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMTQxNzEKK3sKKyAgIG9wZW5zc2wgMS4wLjEgcHJuZyAxCisgICBNZW1jaGVjazpDb25kCisgICBmdW46YmNtcAorICAgZnVuOmZpcHNfZ2V0X2VudHJvcHkKKyAgIGZ1bjpGSVBTX2RyYmdfaW5zdGFudGlhdGUKKyAgIGZ1bjpSQU5EX2luaXRfZmlwcworICAgZnVuOk9QRU5TU0xfaW5pdF9saWJyYXJ5CisgICBmdW46U1NMX2xpYnJhcnlfaW5pdAorICAgZnVuOmluaXRfaGFzaGxpYgorfQorCit7CisgICBvcGVuc3NsIDEuMC4xIHBybmcgMgorICAgTWVtY2hlY2s6Q29uZAorICAgZnVuOmZpcHNfZ2V0X2VudHJvcHkKKyAgIGZ1bjpGSVBTX2RyYmdfaW5zdGFudGlhdGUKKyAgIGZ1bjpSQU5EX2luaXRfZmlwcworICAgZnVuOk9QRU5TU0xfaW5pdF9saWJyYXJ5CisgICBmdW46U1NMX2xpYnJhcnlfaW5pdAorICAgZnVuOmluaXRfaGFzaGxpYgorfQorCit7CisgICBvcGVuc3NsIDEuMC4xIHBybmcgMworICAgTWVtY2hlY2s6VmFsdWU4CisgICBmdW46X3g4Nl82NF9BRVNfZW5jcnlwdF9jb21wYWN0CisgICBmdW46QUVTX2VuY3J5cHQKK30KKwogIwogIyBBbGwgb2YgdGhlc2UgcHJvYmxlbXMgY29tZSBmcm9tIHVzaW5nIHRlc3Rfc29ja2V0X3NzbAogIwpAQCAtMzg4LDQgKzQ0NCwyOCBAQAogICAgZnVuOlNIQTFfVXBkYXRlCiB9CiAKK3sKKyAgIHRlc3RfYnVmZmVyX25vbl9kZWJ1ZworICAgTWVtY2hlY2s6QWRkcjQKKyAgIGZ1bjpQeVVuaWNvZGVVQ1MyX0ZTQ29udmVydGVyCit9CisKK3sKKyAgIHRlc3RfYnVmZmVyX25vbl9kZWJ1ZworICAgTWVtY2hlY2s6QWRkcjQKKyAgIGZ1bjpQeVVuaWNvZGVfRlNDb252ZXJ0ZXIKK30KKworIyBBZGRpdGlvbmFsIHN1cHByZXNzaW9ucyBmb3IgdGhlIHVuaWZpZWQgZGVjaW1hbCB0ZXN0czoKK3sKKyAgIHRlc3RfZGVjaW1hbAorICAgTWVtY2hlY2s6QWRkcjQKKyAgIGZ1bjpQeVVuaWNvZGVVQ1MyX0ZTQ29udmVydGVyCit9CisKK3sKKyAgIHRlc3RfZGVjaW1hbDIKKyAgIE1lbWNoZWNrOkFkZHI0CisgICBmdW46UHlVbmljb2RlX0ZTQ29udmVydGVyCit9CiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvU2V0dXAuZGlzdCBiL01vZHVsZXMvU2V0dXAuZGlzdAppbmRleCA5MjY5ZGRmLi5mNDVkZTVjIDEwMDY0NAotLS0gYS9Nb2R1bGVzL1NldHVwLmRpc3QKKysrIGIvTW9kdWxlcy9TZXR1cC5kaXN0CkBAIC0xMjcsNiArMTI3LDkgQEAKICMgYnVpbHRpbiBtb2R1bGUgYXZvaWRzIHNvbWUgYm9vdHN0cmFwcGluZyBwcm9ibGVtcyBhbmQgcmVkdWNlcyBvdmVyaGVhZC4KIHppcGltcG9ydCB6aXBpbXBvcnQuYwogCisjIGZhdWx0aGFuZGxlciBtb2R1bGUKK2ZhdWx0aGFuZGxlciBmYXVsdGhhbmRsZXIuYworCiAjIFRoZSByZXN0IG9mIHRoZSBtb2R1bGVzIGxpc3RlZCBpbiB0aGlzIGZpbGUgYXJlIGFsbCBjb21tZW50ZWQgb3V0IGJ5CiAjIGRlZmF1bHQuICBVc3VhbGx5IHRoZXkgY2FuIGJlIGRldGVjdGVkIGFuZCBidWlsdCBhcyBkeW5hbWljYWxseQogIyBsb2FkZWQgbW9kdWxlcyBieSB0aGUgbmV3IHNldHVwLnB5IHNjcmlwdCBhZGRlZCBpbiBQeXRob24gMi4xLiAgSWYKQEAgLTIwNyw3ICsyMTAsNyBAQAogIwogIyBGaXJzdCwgbG9vayBhdCBTZXR1cC5jb25maWc7IGNvbmZpZ3VyZSBtYXkgaGF2ZSBzZXQgdGhpcyBmb3IgeW91LgogCi0jY3J5cHQgY3J5cHRtb2R1bGUuYyAjIC1sY3J5cHQJIyBjcnlwdCgzKTsgbmVlZHMgLWxjcnlwdCBvbiBzb21lIHN5c3RlbXMKKyNfY3J5cHQgX2NyeXB0bW9kdWxlLmMgIyAtbGNyeXB0CSMgY3J5cHQoMyk7IG5lZWRzIC1sY3J5cHQgb24gc29tZSBzeXN0ZW1zCiAKIAogIyBTb21lIG1vcmUgVU5JWCBkZXBlbmRlbnQgbW9kdWxlcyAtLSBvZmYgYnkgZGVmYXVsdCwgc2luY2UgdGhlc2UKQEAgLTIzMSwxNSArMjM0LDE0IEBACiAjIHN5c3RlbSBkb2VzIG5vdCBoYXZlIHRoZSBPcGVuU1NMIGxpYnMgY29udGFpbmluZyBhbiBvcHRpbWl6ZWQgdmVyc2lvbi4KIAogIyBUaGUgX21kNSBtb2R1bGUgaW1wbGVtZW50cyB0aGUgUlNBIERhdGEgU2VjdXJpdHksIEluYy4gTUQ1Ci0jIE1lc3NhZ2UtRGlnZXN0IEFsZ29yaXRobSwgZGVzY3JpYmVkIGluIFJGQyAxMzIxLiAgVGhlIG5lY2Vzc2FyeSBmaWxlcwotIyBtZDUuYyBhbmQgbWQ1LmggYXJlIGluY2x1ZGVkIGhlcmUuCisjIE1lc3NhZ2UtRGlnZXN0IEFsZ29yaXRobSwgZGVzY3JpYmVkIGluIFJGQyAxMzIxLgogCi0jX21kNSBtZDVtb2R1bGUuYyBtZDUuYworI19tZDUgbWQ1bW9kdWxlLmMKIAogCiAjIFRoZSBfc2hhIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBTSEEgY2hlY2tzdW0gYWxnb3JpdGhtcy4KICMgKE5JU1QncyBTZWN1cmUgSGFzaCBBbGdvcml0aG1zLikKLSNfc2hhIHNoYW1vZHVsZS5jCisjX3NoYTEgc2hhMW1vZHVsZS5jCiAjX3NoYTI1NiBzaGEyNTZtb2R1bGUuYwogI19zaGE1MTIgc2hhNTEybW9kdWxlLmMKIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fYmlzZWN0bW9kdWxlLmMgYi9Nb2R1bGVzL19iaXNlY3Rtb2R1bGUuYwppbmRleCBlYWUyOTc4Li5mYWNhOGNmIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19iaXNlY3Rtb2R1bGUuYworKysgYi9Nb2R1bGVzL19iaXNlY3Rtb2R1bGUuYwpAQCAtOTAsNyArOTAsOSBAQAogICAgICAgICBpZiAoUHlMaXN0X0luc2VydChsaXN0LCBpbmRleCwgaXRlbSkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChsaXN0LCAiaW5zZXJ0IiwgIm5PIiwgaW5kZXgsIGl0ZW0pOworICAgICAgICBfUHlfSURFTlRJRklFUihpbnNlcnQpOworCisgICAgICAgIHJlc3VsdCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQobGlzdCwgJlB5SWRfaW5zZXJ0LCAibk8iLCBpbmRleCwgaXRlbSk7CiAgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKQEAgLTE5Myw3ICsxOTUsOCBAQAogICAgICAgICBpZiAoUHlMaXN0X0luc2VydChsaXN0LCBpbmRleCwgaXRlbSkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChsaXN0LCAiaW5zZXJ0IiwgIm5PIiwgaW5kZXgsIGl0ZW0pOworICAgICAgICBfUHlfSURFTlRJRklFUihpbnNlcnQpOworICAgICAgICByZXN1bHQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKGxpc3QsICZQeUlkX2luc2VydCwgIm5PIiwgaW5kZXgsIGl0ZW0pOwogICAgICAgICBpZiAocmVzdWx0ID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19iejJtb2R1bGUuYyBiL01vZHVsZXMvX2J6Mm1vZHVsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0MDdkZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19iejJtb2R1bGUuYwpAQCAtMCwwICsxLDU5MCBAQAorLyogX2J6MiAtIExvdy1sZXZlbCBQeXRob24gaW50ZXJmYWNlIHRvIGxpYmJ6aXAyLiAqLworCisjZGVmaW5lIFBZX1NTSVpFX1RfQ0xFQU4KKworI2luY2x1ZGUgIlB5dGhvbi5oIgorI2luY2x1ZGUgInN0cnVjdG1lbWJlci5oIgorCisjaWZkZWYgV0lUSF9USFJFQUQKKyNpbmNsdWRlICJweXRocmVhZC5oIgorI2VuZGlmCisKKyNpbmNsdWRlIDxiemxpYi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKworI2lmbmRlZiBCWl9DT05GSUdfRVJST1IKKyNkZWZpbmUgQloyX2J6Q29tcHJlc3MgYnpDb21wcmVzcworI2RlZmluZSBCWjJfYnpDb21wcmVzc0luaXQgYnpDb21wcmVzc0luaXQKKyNkZWZpbmUgQloyX2J6Q29tcHJlc3NFbmQgYnpDb21wcmVzc0VuZAorI2RlZmluZSBCWjJfYnpEZWNvbXByZXNzIGJ6RGVjb21wcmVzcworI2RlZmluZSBCWjJfYnpEZWNvbXByZXNzSW5pdCBiekRlY29tcHJlc3NJbml0CisjZGVmaW5lIEJaMl9iekRlY29tcHJlc3NFbmQgYnpEZWNvbXByZXNzRW5kCisjZW5kaWYgIC8qICEgQlpfQ09ORklHX0VSUk9SICovCisKKworI2lmZGVmIFdJVEhfVEhSRUFECisjZGVmaW5lIEFDUVVJUkVfTE9DSyhvYmopIGRvIHsgXAorICAgIGlmICghUHlUaHJlYWRfYWNxdWlyZV9sb2NrKChvYmopLT5sb2NrLCAwKSkgeyBcCisgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMgXAorICAgICAgICBQeVRocmVhZF9hY3F1aXJlX2xvY2soKG9iaiktPmxvY2ssIDEpOyBcCisgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTIFwKKyAgICB9IH0gd2hpbGUgKDApCisjZGVmaW5lIFJFTEVBU0VfTE9DSyhvYmopIFB5VGhyZWFkX3JlbGVhc2VfbG9jaygob2JqKS0+bG9jaykKKyNlbHNlCisjZGVmaW5lIEFDUVVJUkVfTE9DSyhvYmopCisjZGVmaW5lIFJFTEVBU0VfTE9DSyhvYmopCisjZW5kaWYKKworI2RlZmluZSBNSU4oWCwgWSkgKCgoWCkgPCAoWSkpID8gKFgpIDogKFkpKQorCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgYnpfc3RyZWFtIGJ6czsKKyAgICBpbnQgZmx1c2hlZDsKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrOworI2VuZGlmCit9IEJaMkNvbXByZXNzb3I7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgYnpfc3RyZWFtIGJ6czsKKyAgICBjaGFyIGVvZjsgICAgICAgICAgIC8qIFRfQk9PTCBleHBlY3RzIGEgY2hhciAqLworICAgIFB5T2JqZWN0ICp1bnVzZWRfZGF0YTsKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrOworI2VuZGlmCit9IEJaMkRlY29tcHJlc3NvcjsKKworCisvKiBIZWxwZXIgZnVuY3Rpb25zLiAqLworCitzdGF0aWMgaW50CitjYXRjaF9iejJfZXJyb3IoaW50IGJ6ZXJyb3IpCit7CisgICAgc3dpdGNoKGJ6ZXJyb3IpIHsKKyAgICAgICAgY2FzZSBCWl9PSzoKKyAgICAgICAgY2FzZSBCWl9SVU5fT0s6CisgICAgICAgIGNhc2UgQlpfRkxVU0hfT0s6CisgICAgICAgIGNhc2UgQlpfRklOSVNIX09LOgorICAgICAgICBjYXNlIEJaX1NUUkVBTV9FTkQ6CisgICAgICAgICAgICByZXR1cm4gMDsKKworI2lmZGVmIEJaX0NPTkZJR19FUlJPUgorICAgICAgICBjYXNlIEJaX0NPTkZJR19FUlJPUjoKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19TeXN0ZW1FcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGliYnppcDIgd2FzIG5vdCBjb21waWxlZCBjb3JyZWN0bHkiKTsKKyAgICAgICAgICAgIHJldHVybiAxOworI2VuZGlmCisgICAgICAgIGNhc2UgQlpfUEFSQU1fRVJST1I6CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZXJuYWwgZXJyb3IgLSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludmFsaWQgcGFyYW1ldGVycyBwYXNzZWQgdG8gbGliYnppcDIiKTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIEJaX01FTV9FUlJPUjoKKyAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY2FzZSBCWl9EQVRBX0VSUk9SOgorICAgICAgICBjYXNlIEJaX0RBVEFfRVJST1JfTUFHSUM6CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSU9FcnJvciwgIkludmFsaWQgZGF0YSBzdHJlYW0iKTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIEJaX0lPX0VSUk9SOgorICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0lPRXJyb3IsICJVbmtub3duIEkvTyBlcnJvciIpOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgQlpfVU5FWFBFQ1RFRF9FT0Y6CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfRU9GRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbXByZXNzZWQgZmlsZSBlbmRlZCBiZWZvcmUgdGhlIGxvZ2ljYWwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmQtb2Ytc3RyZWFtIHdhcyBkZXRlY3RlZCIpOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgQlpfU0VRVUVOQ0VfRVJST1I6CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnRlcm5hbCBlcnJvciAtICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW52YWxpZCBzZXF1ZW5jZSBvZiBjb21tYW5kcyBzZW50IHRvIGxpYmJ6aXAyIik7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19JT0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJVbnJlY29nbml6ZWQgZXJyb3IgZnJvbSBsaWJiemlwMjogJWQiLCBiemVycm9yKTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgIH0KK30KKworI2lmIEJVRlNJWiA8IDgxOTIKKyNkZWZpbmUgU01BTExDSFVOSyA4MTkyCisjZWxzZQorI2RlZmluZSBTTUFMTENIVU5LIEJVRlNJWgorI2VuZGlmCisKK3N0YXRpYyBpbnQKK2dyb3dfYnVmZmVyKFB5T2JqZWN0ICoqYnVmKQoreworICAgIC8qIEV4cGFuZCB0aGUgYnVmZmVyIGJ5IGFuIGFtb3VudCBwcm9wb3J0aW9uYWwgdG8gdGhlIGN1cnJlbnQgc2l6ZSwKKyAgICAgICBnaXZpbmcgdXMgYW1vcnRpemVkIGxpbmVhci10aW1lIGJlaGF2aW9yLiBVc2UgYSBsZXNzLXRoYW4tZG91YmxlCisgICAgICAgZ3Jvd3RoIGZhY3RvciB0byBhdm9pZCBleGNlc3NpdmUgYWxsb2NhdGlvbi4gKi8KKyAgICBzaXplX3Qgc2l6ZSA9IFB5Qnl0ZXNfR0VUX1NJWkUoKmJ1Zik7CisgICAgcmV0dXJuIF9QeUJ5dGVzX1Jlc2l6ZShidWYsIHNpemUgKyAoc2l6ZSA+PiAzKSArIDYpOworfQorCisKKy8qIEJaMkNvbXByZXNzb3IgY2xhc3MuICovCisKK3N0YXRpYyBQeU9iamVjdCAqCitjb21wcmVzcyhCWjJDb21wcmVzc29yICpjLCBjaGFyICpkYXRhLCBzaXplX3QgbGVuLCBpbnQgYWN0aW9uKQoreworICAgIHNpemVfdCBkYXRhX3NpemUgPSAwOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisKKyAgICByZXN1bHQgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIFNNQUxMQ0hVTkspOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgYy0+YnpzLm5leHRfaW4gPSBkYXRhOworICAgIC8qIE9uIGEgNjQtYml0IHN5c3RlbSwgbGVuIG1pZ2h0IG5vdCBmaXQgaW4gYXZhaWxfaW4gKGFuIHVuc2lnbmVkIGludCkuCisgICAgICAgRG8gY29tcHJlc3Npb24gaW4gY2h1bmtzIG9mIG5vIG1vcmUgdGhhbiBVSU5UX01BWCBieXRlcyBlYWNoLiAqLworICAgIGMtPmJ6cy5hdmFpbF9pbiA9IE1JTihsZW4sIFVJTlRfTUFYKTsKKyAgICBsZW4gLT0gYy0+YnpzLmF2YWlsX2luOworICAgIGMtPmJ6cy5uZXh0X291dCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCk7CisgICAgYy0+YnpzLmF2YWlsX291dCA9IFB5Qnl0ZXNfR0VUX1NJWkUocmVzdWx0KTsKKyAgICBmb3IgKDs7KSB7CisgICAgICAgIGNoYXIgKnRoaXNfb3V0OworICAgICAgICBpbnQgYnplcnJvcjsKKworICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgICAgIHRoaXNfb3V0ID0gYy0+YnpzLm5leHRfb3V0OworICAgICAgICBiemVycm9yID0gQloyX2J6Q29tcHJlc3MoJmMtPmJ6cywgYWN0aW9uKTsKKyAgICAgICAgZGF0YV9zaXplICs9IGMtPmJ6cy5uZXh0X291dCAtIHRoaXNfb3V0OworICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworICAgICAgICBpZiAoY2F0Y2hfYnoyX2Vycm9yKGJ6ZXJyb3IpKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKworICAgICAgICBpZiAoYy0+YnpzLmF2YWlsX2luID09IDAgJiYgbGVuID4gMCkgeworICAgICAgICAgICAgYy0+YnpzLmF2YWlsX2luID0gTUlOKGxlbiwgVUlOVF9NQVgpOworICAgICAgICAgICAgbGVuIC09IGMtPmJ6cy5hdmFpbF9pbjsKKyAgICAgICAgfQorCisgICAgICAgIC8qIEluIHJlZ3VsYXIgY29tcHJlc3Npb24gbW9kZSwgc3RvcCB3aGVuIGlucHV0IGRhdGEgaXMgZXhoYXVzdGVkLgorICAgICAgICAgICBJbiBmbHVzaGluZyBtb2RlLCBzdG9wIHdoZW4gYWxsIGJ1ZmZlcmVkIGRhdGEgaGFzIGJlZW4gZmx1c2hlZC4gKi8KKyAgICAgICAgaWYgKChhY3Rpb24gPT0gQlpfUlVOICYmIGMtPmJ6cy5hdmFpbF9pbiA9PSAwKSB8fAorICAgICAgICAgICAgKGFjdGlvbiA9PSBCWl9GSU5JU0ggJiYgYnplcnJvciA9PSBCWl9TVFJFQU1fRU5EKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGlmIChjLT5ienMuYXZhaWxfb3V0ID09IDApIHsKKyAgICAgICAgICAgIGlmIChncm93X2J1ZmZlcigmcmVzdWx0KSA8IDApCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIGMtPmJ6cy5uZXh0X291dCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCkgKyBkYXRhX3NpemU7CisgICAgICAgICAgICBjLT5ienMuYXZhaWxfb3V0ID0gUHlCeXRlc19HRVRfU0laRShyZXN1bHQpIC0gZGF0YV9zaXplOworICAgICAgICB9CisgICAgfQorICAgIGlmIChkYXRhX3NpemUgIT0gUHlCeXRlc19HRVRfU0laRShyZXN1bHQpKQorICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZyZXN1bHQsIGRhdGFfc2l6ZSkgPCAwKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICByZXR1cm4gcmVzdWx0OworCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKHJlc3VsdCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1B5RG9jX1NUUlZBUihCWjJDb21wcmVzc29yX2NvbXByZXNzX19kb2NfXywKKyJjb21wcmVzcyhkYXRhKSAtPiBieXRlc1xuIgorIlxuIgorIlByb3ZpZGUgZGF0YSB0byB0aGUgY29tcHJlc3NvciBvYmplY3QuIFJldHVybnMgYSBjaHVuayBvZlxuIgorImNvbXByZXNzZWQgZGF0YSBpZiBwb3NzaWJsZSwgb3IgYicnIG90aGVyd2lzZS5cbiIKKyJcbiIKKyJXaGVuIHlvdSBoYXZlIGZpbmlzaGVkIHByb3ZpZGluZyBkYXRhIHRvIHRoZSBjb21wcmVzc29yLCBjYWxsIHRoZVxuIgorImZsdXNoKCkgbWV0aG9kIHRvIGZpbmlzaCB0aGUgY29tcHJlc3Npb24gcHJvY2Vzcy5cbiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorQloyQ29tcHJlc3Nvcl9jb21wcmVzcyhCWjJDb21wcmVzc29yICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeV9idWZmZXIgYnVmZmVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ5Kjpjb21wcmVzcyIsICZidWZmZXIpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIEFDUVVJUkVfTE9DSyhzZWxmKTsKKyAgICBpZiAoc2VsZi0+Zmx1c2hlZCkKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJDb21wcmVzc29yIGhhcyBiZWVuIGZsdXNoZWQiKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGNvbXByZXNzKHNlbGYsIGJ1ZmZlci5idWYsIGJ1ZmZlci5sZW4sIEJaX1JVTik7CisgICAgUkVMRUFTRV9MT0NLKHNlbGYpOworICAgIFB5QnVmZmVyX1JlbGVhc2UoJmJ1ZmZlcik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworUHlEb2NfU1RSVkFSKEJaMkNvbXByZXNzb3JfZmx1c2hfX2RvY19fLAorImZsdXNoKCkgLT4gYnl0ZXNcbiIKKyJcbiIKKyJGaW5pc2ggdGhlIGNvbXByZXNzaW9uIHByb2Nlc3MuIFJldHVybnMgdGhlIGNvbXByZXNzZWQgZGF0YSBsZWZ0XG4iCisiaW4gaW50ZXJuYWwgYnVmZmVycy5cbiIKKyJcbiIKKyJUaGUgY29tcHJlc3NvciBvYmplY3QgbWF5IG5vdCBiZSB1c2VkIGFmdGVyIHRoaXMgbWV0aG9kIGlzIGNhbGxlZC5cbiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorQloyQ29tcHJlc3Nvcl9mbHVzaChCWjJDb21wcmVzc29yICpzZWxmLCBQeU9iamVjdCAqbm9hcmdzKQoreworICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOworCisgICAgQUNRVUlSRV9MT0NLKHNlbGYpOworICAgIGlmIChzZWxmLT5mbHVzaGVkKQorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIlJlcGVhdGVkIGNhbGwgdG8gZmx1c2goKSIpOworICAgIGVsc2UgeworICAgICAgICBzZWxmLT5mbHVzaGVkID0gMTsKKyAgICAgICAgcmVzdWx0ID0gY29tcHJlc3Moc2VsZiwgTlVMTCwgMCwgQlpfRklOSVNIKTsKKyAgICB9CisgICAgUkVMRUFTRV9MT0NLKHNlbGYpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbnQKK0JaMkNvbXByZXNzb3JfaW5pdChCWjJDb21wcmVzc29yICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICBpbnQgY29tcHJlc3NsZXZlbCA9IDk7CisgICAgaW50IGJ6ZXJyb3I7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxpOkJaMkNvbXByZXNzb3IiLCAmY29tcHJlc3NsZXZlbCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoISgxIDw9IGNvbXByZXNzbGV2ZWwgJiYgY29tcHJlc3NsZXZlbCA8PSA5KSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJjb21wcmVzc2xldmVsIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA5Iik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIHNlbGYtPmxvY2sgPSBQeVRocmVhZF9hbGxvY2F0ZV9sb2NrKCk7CisgICAgaWYgKHNlbGYtPmxvY2sgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTWVtb3J5RXJyb3IsICJVbmFibGUgdG8gYWxsb2NhdGUgbG9jayIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorI2VuZGlmCisKKyAgICBiemVycm9yID0gQloyX2J6Q29tcHJlc3NJbml0KCZzZWxmLT5ienMsIGNvbXByZXNzbGV2ZWwsIDAsIDApOworICAgIGlmIChjYXRjaF9iejJfZXJyb3IoYnplcnJvcikpCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICByZXR1cm4gMDsKKworZXJyb3I6CisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBQeVRocmVhZF9mcmVlX2xvY2soc2VsZi0+bG9jayk7CisgICAgc2VsZi0+bG9jayA9IE5VTEw7CisjZW5kaWYKKyAgICByZXR1cm4gLTE7Cit9CisKK3N0YXRpYyB2b2lkCitCWjJDb21wcmVzc29yX2RlYWxsb2MoQloyQ29tcHJlc3NvciAqc2VsZikKK3sKKyAgICBCWjJfYnpDb21wcmVzc0VuZCgmc2VsZi0+YnpzKTsKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIGlmIChzZWxmLT5sb2NrICE9IE5VTEwpCisgICAgICAgIFB5VGhyZWFkX2ZyZWVfbG9jayhzZWxmLT5sb2NrKTsKKyNlbmRpZgorICAgIFB5X1RZUEUoc2VsZiktPnRwX2ZyZWUoKFB5T2JqZWN0ICopc2VsZik7Cit9CisKK3N0YXRpYyBQeU1ldGhvZERlZiBCWjJDb21wcmVzc29yX21ldGhvZHNbXSA9IHsKKyAgICB7ImNvbXByZXNzIiwgKFB5Q0Z1bmN0aW9uKUJaMkNvbXByZXNzb3JfY29tcHJlc3MsIE1FVEhfVkFSQVJHUywKKyAgICAgQloyQ29tcHJlc3Nvcl9jb21wcmVzc19fZG9jX199LAorICAgIHsiZmx1c2giLCAgICAoUHlDRnVuY3Rpb24pQloyQ29tcHJlc3Nvcl9mbHVzaCwgICAgTUVUSF9OT0FSR1MsCisgICAgIEJaMkNvbXByZXNzb3JfZmx1c2hfX2RvY19ffSwKKyAgICB7TlVMTH0KK307CisKK1B5RG9jX1NUUlZBUihCWjJDb21wcmVzc29yX19kb2NfXywKKyJCWjJDb21wcmVzc29yKGNvbXByZXNzbGV2ZWw9OSlcbiIKKyJcbiIKKyJDcmVhdGUgYSBjb21wcmVzc29yIG9iamVjdCBmb3IgY29tcHJlc3NpbmcgZGF0YSBpbmNyZW1lbnRhbGx5LlxuIgorIlxuIgorImNvbXByZXNzbGV2ZWwsIGlmIGdpdmVuLCBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgOS5cbiIKKyJcbiIKKyJGb3Igb25lLXNob3QgY29tcHJlc3Npb24sIHVzZSB0aGUgY29tcHJlc3MoKSBmdW5jdGlvbiBpbnN0ZWFkLlxuIik7CisKK3N0YXRpYyBQeVR5cGVPYmplY3QgQloyQ29tcHJlc3Nvcl9UeXBlID0geworICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQorICAgICJfYnoyLkJaMkNvbXByZXNzb3IiLCAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICBzaXplb2YoQloyQ29tcHJlc3NvciksICAgICAgICAgICAgICAvKiB0cF9iYXNpY3NpemUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLworICAgIChkZXN0cnVjdG9yKUJaMkNvbXByZXNzb3JfZGVhbGxvYywgIC8qIHRwX2RlYWxsb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVzZXJ2ZWQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgQloyQ29tcHJlc3Nvcl9fZG9jX18sICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICBCWjJDb21wcmVzc29yX21ldGhvZHMsICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLworICAgIChpbml0cHJvYylCWjJDb21wcmVzc29yX2luaXQsICAgICAgIC8qIHRwX2luaXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLworICAgIFB5VHlwZV9HZW5lcmljTmV3LCAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLworfTsKKworCisvKiBCWjJEZWNvbXByZXNzb3IgY2xhc3MuICovCisKK3N0YXRpYyBQeU9iamVjdCAqCitkZWNvbXByZXNzKEJaMkRlY29tcHJlc3NvciAqZCwgY2hhciAqZGF0YSwgc2l6ZV90IGxlbikKK3sKKyAgICBzaXplX3QgZGF0YV9zaXplID0gMDsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworCisgICAgcmVzdWx0ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBTTUFMTENIVU5LKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgZC0+YnpzLm5leHRfaW4gPSBkYXRhOworICAgIC8qIE9uIGEgNjQtYml0IHN5c3RlbSwgbGVuIG1pZ2h0IG5vdCBmaXQgaW4gYXZhaWxfaW4gKGFuIHVuc2lnbmVkIGludCkuCisgICAgICAgRG8gZGVjb21wcmVzc2lvbiBpbiBjaHVua3Mgb2Ygbm8gbW9yZSB0aGFuIFVJTlRfTUFYIGJ5dGVzIGVhY2guICovCisgICAgZC0+YnpzLmF2YWlsX2luID0gTUlOKGxlbiwgVUlOVF9NQVgpOworICAgIGxlbiAtPSBkLT5ienMuYXZhaWxfaW47CisgICAgZC0+YnpzLm5leHRfb3V0ID0gUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KTsKKyAgICBkLT5ienMuYXZhaWxfb3V0ID0gUHlCeXRlc19HRVRfU0laRShyZXN1bHQpOworICAgIGZvciAoOzspIHsKKyAgICAgICAgY2hhciAqdGhpc19vdXQ7CisgICAgICAgIGludCBiemVycm9yOworCisgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgdGhpc19vdXQgPSBkLT5ienMubmV4dF9vdXQ7CisgICAgICAgIGJ6ZXJyb3IgPSBCWjJfYnpEZWNvbXByZXNzKCZkLT5ienMpOworICAgICAgICBkYXRhX3NpemUgKz0gZC0+YnpzLm5leHRfb3V0IC0gdGhpc19vdXQ7CisgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgICAgIGlmIChjYXRjaF9iejJfZXJyb3IoYnplcnJvcikpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBpZiAoYnplcnJvciA9PSBCWl9TVFJFQU1fRU5EKSB7CisgICAgICAgICAgICBkLT5lb2YgPSAxOworICAgICAgICAgICAgbGVuICs9IGQtPmJ6cy5hdmFpbF9pbjsKKyAgICAgICAgICAgIGlmIChsZW4gPiAwKSB7IC8qIFNhdmUgbGVmdG92ZXIgaW5wdXQgdG8gdW51c2VkX2RhdGEgKi8KKyAgICAgICAgICAgICAgICBQeV9DTEVBUihkLT51bnVzZWRfZGF0YSk7CisgICAgICAgICAgICAgICAgZC0+dW51c2VkX2RhdGEgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKGQtPmJ6cy5uZXh0X2luLCBsZW4pOworICAgICAgICAgICAgICAgIGlmIChkLT51bnVzZWRfZGF0YSA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGQtPmJ6cy5hdmFpbF9pbiA9PSAwKSB7CisgICAgICAgICAgICBpZiAobGVuID09IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkLT5ienMuYXZhaWxfaW4gPSBNSU4obGVuLCBVSU5UX01BWCk7CisgICAgICAgICAgICBsZW4gLT0gZC0+YnpzLmF2YWlsX2luOworICAgICAgICB9CisgICAgICAgIGlmIChkLT5ienMuYXZhaWxfb3V0ID09IDApIHsKKyAgICAgICAgICAgIGlmIChncm93X2J1ZmZlcigmcmVzdWx0KSA8IDApCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIGQtPmJ6cy5uZXh0X291dCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCkgKyBkYXRhX3NpemU7CisgICAgICAgICAgICBkLT5ienMuYXZhaWxfb3V0ID0gUHlCeXRlc19HRVRfU0laRShyZXN1bHQpIC0gZGF0YV9zaXplOworICAgICAgICB9CisgICAgfQorICAgIGlmIChkYXRhX3NpemUgIT0gUHlCeXRlc19HRVRfU0laRShyZXN1bHQpKQorICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZyZXN1bHQsIGRhdGFfc2l6ZSkgPCAwKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICByZXR1cm4gcmVzdWx0OworCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKHJlc3VsdCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1B5RG9jX1NUUlZBUihCWjJEZWNvbXByZXNzb3JfZGVjb21wcmVzc19fZG9jX18sCisiZGVjb21wcmVzcyhkYXRhKSAtPiBieXRlc1xuIgorIlxuIgorIlByb3ZpZGUgZGF0YSB0byB0aGUgZGVjb21wcmVzc29yIG9iamVjdC4gUmV0dXJucyBhIGNodW5rIG9mXG4iCisiZGVjb21wcmVzc2VkIGRhdGEgaWYgcG9zc2libGUsIG9yIGInJyBvdGhlcndpc2UuXG4iCisiXG4iCisiQXR0ZW1wdGluZyB0byBkZWNvbXByZXNzIGRhdGEgYWZ0ZXIgdGhlIGVuZCBvZiBzdHJlYW0gaXMgcmVhY2hlZFxuIgorInJhaXNlcyBhbiBFT0ZFcnJvci4gQW55IGRhdGEgZm91bmQgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgc3RyZWFtXG4iCisiaXMgaWdub3JlZCBhbmQgc2F2ZWQgaW4gdGhlIHVudXNlZF9kYXRhIGF0dHJpYnV0ZS5cbiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorQloyRGVjb21wcmVzc29yX2RlY29tcHJlc3MoQloyRGVjb21wcmVzc29yICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeV9idWZmZXIgYnVmZmVyOworICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ5KjpkZWNvbXByZXNzIiwgJmJ1ZmZlcikpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgQUNRVUlSRV9MT0NLKHNlbGYpOworICAgIGlmIChzZWxmLT5lb2YpCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19FT0ZFcnJvciwgIkVuZCBvZiBzdHJlYW0gYWxyZWFkeSByZWFjaGVkIik7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBkZWNvbXByZXNzKHNlbGYsIGJ1ZmZlci5idWYsIGJ1ZmZlci5sZW4pOworICAgIFJFTEVBU0VfTE9DSyhzZWxmKTsKKyAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZidWZmZXIpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbnQKK0JaMkRlY29tcHJlc3Nvcl9pbml0KEJaMkRlY29tcHJlc3NvciAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCit7CisgICAgaW50IGJ6ZXJyb3I7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIjpCWjJEZWNvbXByZXNzb3IiKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBzZWxmLT5sb2NrID0gUHlUaHJlYWRfYWxsb2NhdGVfbG9jaygpOworICAgIGlmIChzZWxmLT5sb2NrID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX01lbW9yeUVycm9yLCAiVW5hYmxlIHRvIGFsbG9jYXRlIGxvY2siKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyNlbmRpZgorCisgICAgc2VsZi0+dW51c2VkX2RhdGEgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKCIiLCAwKTsKKyAgICBpZiAoc2VsZi0+dW51c2VkX2RhdGEgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKworICAgIGJ6ZXJyb3IgPSBCWjJfYnpEZWNvbXByZXNzSW5pdCgmc2VsZi0+YnpzLCAwLCAwKTsKKyAgICBpZiAoY2F0Y2hfYnoyX2Vycm9yKGJ6ZXJyb3IpKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgcmV0dXJuIDA7CisKK2Vycm9yOgorICAgIFB5X0NMRUFSKHNlbGYtPnVudXNlZF9kYXRhKTsKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIFB5VGhyZWFkX2ZyZWVfbG9jayhzZWxmLT5sb2NrKTsKKyAgICBzZWxmLT5sb2NrID0gTlVMTDsKKyNlbmRpZgorICAgIHJldHVybiAtMTsKK30KKworc3RhdGljIHZvaWQKK0JaMkRlY29tcHJlc3Nvcl9kZWFsbG9jKEJaMkRlY29tcHJlc3NvciAqc2VsZikKK3sKKyAgICBCWjJfYnpEZWNvbXByZXNzRW5kKCZzZWxmLT5ienMpOworICAgIFB5X0NMRUFSKHNlbGYtPnVudXNlZF9kYXRhKTsKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIGlmIChzZWxmLT5sb2NrICE9IE5VTEwpCisgICAgICAgIFB5VGhyZWFkX2ZyZWVfbG9jayhzZWxmLT5sb2NrKTsKKyNlbmRpZgorICAgIFB5X1RZUEUoc2VsZiktPnRwX2ZyZWUoKFB5T2JqZWN0ICopc2VsZik7Cit9CisKK3N0YXRpYyBQeU1ldGhvZERlZiBCWjJEZWNvbXByZXNzb3JfbWV0aG9kc1tdID0geworICAgIHsiZGVjb21wcmVzcyIsIChQeUNGdW5jdGlvbilCWjJEZWNvbXByZXNzb3JfZGVjb21wcmVzcywgTUVUSF9WQVJBUkdTLAorICAgICBCWjJEZWNvbXByZXNzb3JfZGVjb21wcmVzc19fZG9jX199LAorICAgIHtOVUxMfQorfTsKKworUHlEb2NfU1RSVkFSKEJaMkRlY29tcHJlc3Nvcl9lb2ZfX2RvY19fLAorIlRydWUgaWYgdGhlIGVuZC1vZi1zdHJlYW0gbWFya2VyIGhhcyBiZWVuIHJlYWNoZWQuIik7CisKK1B5RG9jX1NUUlZBUihCWjJEZWNvbXByZXNzb3JfdW51c2VkX2RhdGFfX2RvY19fLAorIkRhdGEgZm91bmQgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgY29tcHJlc3NlZCBzdHJlYW0uIik7CisKK3N0YXRpYyBQeU1lbWJlckRlZiBCWjJEZWNvbXByZXNzb3JfbWVtYmVyc1tdID0geworICAgIHsiZW9mIiwgVF9CT09MLCBvZmZzZXRvZihCWjJEZWNvbXByZXNzb3IsIGVvZiksCisgICAgIFJFQURPTkxZLCBCWjJEZWNvbXByZXNzb3JfZW9mX19kb2NfX30sCisgICAgeyJ1bnVzZWRfZGF0YSIsIFRfT0JKRUNUX0VYLCBvZmZzZXRvZihCWjJEZWNvbXByZXNzb3IsIHVudXNlZF9kYXRhKSwKKyAgICAgUkVBRE9OTFksIEJaMkRlY29tcHJlc3Nvcl91bnVzZWRfZGF0YV9fZG9jX199LAorICAgIHtOVUxMfQorfTsKKworUHlEb2NfU1RSVkFSKEJaMkRlY29tcHJlc3Nvcl9fZG9jX18sCisiQloyRGVjb21wcmVzc29yKClcbiIKKyJcbiIKKyJDcmVhdGUgYSBkZWNvbXByZXNzb3Igb2JqZWN0IGZvciBkZWNvbXByZXNzaW5nIGRhdGEgaW5jcmVtZW50YWxseS5cbiIKKyJcbiIKKyJGb3Igb25lLXNob3QgZGVjb21wcmVzc2lvbiwgdXNlIHRoZSBkZWNvbXByZXNzKCkgZnVuY3Rpb24gaW5zdGVhZC5cbiIpOworCitzdGF0aWMgUHlUeXBlT2JqZWN0IEJaMkRlY29tcHJlc3Nvcl9UeXBlID0geworICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQorICAgICJfYnoyLkJaMkRlY29tcHJlc3NvciIsICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICBzaXplb2YoQloyRGVjb21wcmVzc29yKSwgICAgICAgICAgICAvKiB0cF9iYXNpY3NpemUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLworICAgIChkZXN0cnVjdG9yKUJaMkRlY29tcHJlc3Nvcl9kZWFsbG9jLC8qIHRwX2RlYWxsb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVzZXJ2ZWQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgQloyRGVjb21wcmVzc29yX19kb2NfXywgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICBCWjJEZWNvbXByZXNzb3JfbWV0aG9kcywgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgQloyRGVjb21wcmVzc29yX21lbWJlcnMsICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLworICAgIChpbml0cHJvYylCWjJEZWNvbXByZXNzb3JfaW5pdCwgICAgIC8qIHRwX2luaXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLworICAgIFB5VHlwZV9HZW5lcmljTmV3LCAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLworfTsKKworCisvKiBNb2R1bGUgaW5pdGlhbGl6YXRpb24uICovCisKK3N0YXRpYyBzdHJ1Y3QgUHlNb2R1bGVEZWYgX2J6Mm1vZHVsZSA9IHsKKyAgICBQeU1vZHVsZURlZl9IRUFEX0lOSVQsCisgICAgIl9iejIiLAorICAgIE5VTEwsCisgICAgLTEsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMCit9OworCitQeU1PRElOSVRfRlVOQworUHlJbml0X19iejIodm9pZCkKK3sKKyAgICBQeU9iamVjdCAqbTsKKworICAgIGlmIChQeVR5cGVfUmVhZHkoJkJaMkNvbXByZXNzb3JfVHlwZSkgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoUHlUeXBlX1JlYWR5KCZCWjJEZWNvbXByZXNzb3JfVHlwZSkgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIG0gPSBQeU1vZHVsZV9DcmVhdGUoJl9iejJtb2R1bGUpOworICAgIGlmIChtID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfSU5DUkVGKCZCWjJDb21wcmVzc29yX1R5cGUpOworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiQloyQ29tcHJlc3NvciIsIChQeU9iamVjdCAqKSZCWjJDb21wcmVzc29yX1R5cGUpOworCisgICAgUHlfSU5DUkVGKCZCWjJEZWNvbXByZXNzb3JfVHlwZSk7CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJCWjJEZWNvbXByZXNzb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAoUHlPYmplY3QgKikmQloyRGVjb21wcmVzc29yX1R5cGUpOworCisgICAgcmV0dXJuIG07Cit9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jb2RlY3Ntb2R1bGUuYyBiL01vZHVsZXMvX2NvZGVjc21vZHVsZS5jCmluZGV4IGViNzQwZjkuLjc4MThmOWEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2NvZGVjc21vZHVsZS5jCisrKyBiL01vZHVsZXMvX2NvZGVjc21vZHVsZS5jCkBAIC0zOCw2ICszOCwxMCBAQAogI2RlZmluZSBQWV9TU0laRV9UX0NMRUFOCiAjaW5jbHVkZSAiUHl0aG9uLmgiCiAKKyNpZmRlZiBNU19XSU5ET1dTCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2VuZGlmCisKIC8qIC0tLSBSZWdpc3RyeSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiBQeURvY19TVFJWQVIocmVnaXN0ZXJfX2RvY19fLApAQCAtMTYyLDcgKzE2Niw2IEBACiBlc2NhcGVfZW5jb2RlKFB5T2JqZWN0ICpzZWxmLAogICAgICAgICAgICAgICBQeU9iamVjdCAqYXJncykKIHsKLSAgICBzdGF0aWMgY29uc3QgY2hhciAqaGV4ZGlnaXRzID0gIjAxMjM0NTY3ODlhYmNkZWYiOwogICAgIFB5T2JqZWN0ICpzdHI7CiAgICAgUHlfc3NpemVfdCBzaXplOwogICAgIFB5X3NzaXplX3QgbmV3c2l6ZTsKQEAgLTIwNSw4ICsyMDgsOCBAQAogICAgICAgICAgICAgZWxzZSBpZiAoYyA8ICcgJyB8fCBjID49IDB4N2YpIHsKICAgICAgICAgICAgICAgICAqcCsrID0gJ1xcJzsKICAgICAgICAgICAgICAgICAqcCsrID0gJ3gnOwotICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGMgJiAweGYwKSA+PiA0XTsKLSAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzW2MgJiAweGZdOworICAgICAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGMgJiAweGYwKSA+PiA0XTsKKyAgICAgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzW2MgJiAweGZdOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICpwKysgPSBjOwpAQCAtMjM2LDggKzIzOSwxMCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sob2JqKSkgeworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKG9iaikgPCAwKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIFB5X0lOQ1JFRihvYmopOwotICAgICAgICByZXR1cm4gY29kZWNfdHVwbGUob2JqLCBQeVVuaWNvZGVfR0VUX1NJWkUob2JqKSk7CisgICAgICAgIHJldHVybiBjb2RlY190dXBsZShvYmosIFB5VW5pY29kZV9HRVRfTEVOR1RIKG9iaikpOwogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgaWYgKFB5T2JqZWN0X0FzUmVhZEJ1ZmZlcihvYmosIChjb25zdCB2b2lkICoqKSZkYXRhLCAmc2l6ZSkpCkBAIC01ODgsNyArNTkzLDcgQEAKICAgICByZXR1cm4gY29kZWNfdHVwbGUodW5pY29kZSwgcGJ1Zi5sZW4pOwogfQogCi0jaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiBkZWZpbmVkKEhBVkVfVVNBQkxFX1dDSEFSX1QpCisjaWZkZWYgSEFWRV9NQkNTCiAKIHN0YXRpYyBQeU9iamVjdCAqCiBtYmNzX2RlY29kZShQeU9iamVjdCAqc2VsZiwKQEAgLTYxMyw3ICs2MTgsMzIgQEAKICAgICByZXR1cm4gY29kZWNfdHVwbGUoZGVjb2RlZCwgY29uc3VtZWQpOwogfQogCi0jZW5kaWYgLyogTVNfV0lORE9XUyAqLworc3RhdGljIFB5T2JqZWN0ICoKK2NvZGVfcGFnZV9kZWNvZGUoUHlPYmplY3QgKnNlbGYsCisgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5X2J1ZmZlciBwYnVmOworICAgIGNvbnN0IGNoYXIgKmVycm9ycyA9IE5VTEw7CisgICAgaW50IGZpbmFsID0gMDsKKyAgICBQeV9zc2l6ZV90IGNvbnN1bWVkOworICAgIFB5T2JqZWN0ICpkZWNvZGVkID0gTlVMTDsKKyAgICBpbnQgY29kZV9wYWdlOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJpeSp8emk6Y29kZV9wYWdlX2RlY29kZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZjb2RlX3BhZ2UsICZwYnVmLCAmZXJyb3JzLCAmZmluYWwpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBjb25zdW1lZCA9IHBidWYubGVuOworCisgICAgZGVjb2RlZCA9IFB5VW5pY29kZV9EZWNvZGVDb2RlUGFnZVN0YXRlZnVsKGNvZGVfcGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJ1Zi5idWYsIHBidWYubGVuLCBlcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsID8gTlVMTCA6ICZjb25zdW1lZCk7CisgICAgUHlCdWZmZXJfUmVsZWFzZSgmcGJ1Zik7CisgICAgaWYgKGRlY29kZWQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIGNvZGVjX3R1cGxlKGRlY29kZWQsIGNvbnN1bWVkKTsKK30KKworI2VuZGlmIC8qIEhBVkVfTUJDUyAqLwogCiAvKiAtLS0gRW5jb2RlciAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtNjQ1LDE3ICs2NzUsMzEgQEAKICAgICBQeU9iamVjdCAqb2JqOwogICAgIGNvbnN0IGNoYXIgKmVycm9ycyA9IE5VTEw7CiAgICAgY29uc3QgY2hhciAqZGF0YTsKLSAgICBQeV9zc2l6ZV90IHNpemU7CisgICAgUHlfc3NpemVfdCBsZW4sIHNpemU7CisKKyAgICBpZiAoUHlFcnJfV2FybkV4KFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICJ1bmljb2RlX2ludGVybmFsIGNvZGVjIGhhcyBiZWVuIGRlcHJlY2F0ZWQiLAorICAgICAgICAgICAgICAgICAgICAgMSkpCisgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPfHo6dW5pY29kZV9pbnRlcm5hbF9lbmNvZGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmb2JqLCAmZXJyb3JzKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKG9iaikpIHsKLSAgICAgICAgZGF0YSA9IFB5VW5pY29kZV9BU19EQVRBKG9iaik7Ci0gICAgICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX0RBVEFfU0laRShvYmopOwotICAgICAgICByZXR1cm4gY29kZWNfdHVwbGUoUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShkYXRhLCBzaXplKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShvYmopKTsKKyAgICAgICAgUHlfVU5JQ09ERSAqdTsKKworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKG9iaikgPCAwKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAgICAgdSA9IFB5VW5pY29kZV9Bc1VuaWNvZGVBbmRTaXplKG9iaiwgJmxlbik7CisgICAgICAgIGlmICh1ID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWYgKGxlbiA+IFBZX1NTSVpFX1RfTUFYIC8gc2l6ZW9mKFB5X1VOSUNPREUpKQorICAgICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIHNpemUgPSBsZW4gKiBzaXplb2YoUHlfVU5JQ09ERSk7CisgICAgICAgIHJldHVybiBjb2RlY190dXBsZShQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKChjb25zdCBjaGFyKil1LCBzaXplKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKG9iaikpOwogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgaWYgKFB5T2JqZWN0X0FzUmVhZEJ1ZmZlcihvYmosIChjb25zdCB2b2lkICoqKSZkYXRhLCAmc2l6ZSkpCkBAIC02NzYsMTQgKzcyMCwxMiBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHN0ciA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cik7Ci0gICAgaWYgKHN0ciA9PSBOVUxMKQorICAgIGlmIChzdHIgPT0gTlVMTCB8fCBQeVVuaWNvZGVfUkVBRFkoc3RyKSA8IDApIHsKKyAgICAgICAgUHlfWERFQ1JFRihzdHIpOwogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB2ID0gY29kZWNfdHVwbGUoUHlVbmljb2RlX0VuY29kZVVURjcoUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyksCi0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpKTsKKyAgICB9CisgICAgdiA9IGNvZGVjX3R1cGxlKF9QeVVuaWNvZGVfRW5jb2RlVVRGNyhzdHIsIDAsIDAsIGVycm9ycyksCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikpOwogICAgIFB5X0RFQ1JFRihzdHIpOwogICAgIHJldHVybiB2OwogfQpAQCAtNzAwLDEyICs3NDIsMTIgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBzdHIgPSBQeVVuaWNvZGVfRnJvbU9iamVjdChzdHIpOwotICAgIGlmIChzdHIgPT0gTlVMTCkKKyAgICBpZiAoc3RyID09IE5VTEwgfHwgUHlVbmljb2RlX1JFQURZKHN0cikgPCAwKSB7CisgICAgICAgIFB5X1hERUNSRUYoc3RyKTsKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgdiA9IGNvZGVjX3R1cGxlKFB5VW5pY29kZV9FbmNvZGVVVEY4KFB5VW5pY29kZV9BU19VTklDT0RFKHN0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMpLAotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyKSk7CisgICAgfQorICAgIHYgPSBjb2RlY190dXBsZShQeVVuaWNvZGVfQXNFbmNvZGVkU3RyaW5nKHN0ciwgInV0Zi04IiwgZXJyb3JzKSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKSk7CiAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgcmV0dXJuIHY7CiB9CkBAIC03MzAsMTMgKzc3MiwxMiBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHN0ciA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cik7Ci0gICAgaWYgKHN0ciA9PSBOVUxMKQorICAgIGlmIChzdHIgPT0gTlVMTCB8fCBQeVVuaWNvZGVfUkVBRFkoc3RyKSA8IDApIHsKKyAgICAgICAgUHlfWERFQ1JFRihzdHIpOwogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB2ID0gY29kZWNfdHVwbGUoUHlVbmljb2RlX0VuY29kZVVURjE2KFB5VW5pY29kZV9BU19VTklDT0RFKHN0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVvcmRlciksCi0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpKTsKKyAgICB9CisgICAgdiA9IGNvZGVjX3R1cGxlKF9QeVVuaWNvZGVfRW5jb2RlVVRGMTYoc3RyLCBlcnJvcnMsIGJ5dGVvcmRlciksCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikpOwogICAgIFB5X0RFQ1JFRihzdHIpOwogICAgIHJldHVybiB2OwogfQpAQCAtNzUzLDEzICs3OTQsMTIgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBzdHIgPSBQeVVuaWNvZGVfRnJvbU9iamVjdChzdHIpOwotICAgIGlmIChzdHIgPT0gTlVMTCkKKyAgICBpZiAoc3RyID09IE5VTEwgfHwgUHlVbmljb2RlX1JFQURZKHN0cikgPCAwKSB7CisgICAgICAgIFB5X1hERUNSRUYoc3RyKTsKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgdiA9IGNvZGVjX3R1cGxlKFB5VW5pY29kZV9FbmNvZGVVVEYxNihQeVVuaWNvZGVfQVNfVU5JQ09ERShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSksCi0gICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpKTsKKyAgICB9CisgICAgdiA9IGNvZGVjX3R1cGxlKF9QeVVuaWNvZGVfRW5jb2RlVVRGMTYoc3RyLCBlcnJvcnMsIC0xKSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKSk7CiAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgcmV0dXJuIHY7CiB9CkBAIC03NzYsMTMgKzgxNiwxMiBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHN0ciA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cik7Ci0gICAgaWYgKHN0ciA9PSBOVUxMKQorICAgIGlmIChzdHIgPT0gTlVMTCB8fCBQeVVuaWNvZGVfUkVBRFkoc3RyKSA8IDApIHsKKyAgICAgICAgUHlfWERFQ1JFRihzdHIpOwogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB2ID0gY29kZWNfdHVwbGUoUHlVbmljb2RlX0VuY29kZVVURjE2KFB5VW5pY29kZV9BU19VTklDT0RFKHN0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsxKSwKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0cikpOworICAgIH0KKyAgICB2ID0gY29kZWNfdHVwbGUoX1B5VW5pY29kZV9FbmNvZGVVVEYxNihzdHIsIGVycm9ycywgKzEpLAorICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpKTsKICAgICBQeV9ERUNSRUYoc3RyKTsKICAgICByZXR1cm4gdjsKIH0KQEAgLTgwNywxMyArODQ2LDEyIEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgc3RyID0gUHlVbmljb2RlX0Zyb21PYmplY3Qoc3RyKTsKLSAgICBpZiAoc3RyID09IE5VTEwpCisgICAgaWYgKHN0ciA9PSBOVUxMIHx8IFB5VW5pY29kZV9SRUFEWShzdHIpIDwgMCkgeworICAgICAgICBQeV9YREVDUkVGKHN0cik7CiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHYgPSBjb2RlY190dXBsZShQeVVuaWNvZGVfRW5jb2RlVVRGMzIoUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZW9yZGVyKSwKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0cikpOworICAgIH0KKyAgICB2ID0gY29kZWNfdHVwbGUoX1B5VW5pY29kZV9FbmNvZGVVVEYzMihzdHIsIGVycm9ycywgYnl0ZW9yZGVyKSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKSk7CiAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgcmV0dXJuIHY7CiB9CkBAIC04MzAsMTMgKzg2OCwxMiBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHN0ciA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cik7Ci0gICAgaWYgKHN0ciA9PSBOVUxMKQorICAgIGlmIChzdHIgPT0gTlVMTCB8fCBQeVVuaWNvZGVfUkVBRFkoc3RyKSA8IDApIHsKKyAgICAgICAgUHlfWERFQ1JFRihzdHIpOwogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB2ID0gY29kZWNfdHVwbGUoUHlVbmljb2RlX0VuY29kZVVURjMyKFB5VW5pY29kZV9BU19VTklDT0RFKHN0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0xKSwKLSAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0cikpOworICAgIH0KKyAgICB2ID0gY29kZWNfdHVwbGUoX1B5VW5pY29kZV9FbmNvZGVVVEYzMihzdHIsIGVycm9ycywgLTEpLAorICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpKTsKICAgICBQeV9ERUNSRUYoc3RyKTsKICAgICByZXR1cm4gdjsKIH0KQEAgLTg1MywxMyArODkwLDEyIEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgc3RyID0gUHlVbmljb2RlX0Zyb21PYmplY3Qoc3RyKTsKLSAgICBpZiAoc3RyID09IE5VTEwpCisgICAgaWYgKHN0ciA9PSBOVUxMIHx8IFB5VW5pY29kZV9SRUFEWShzdHIpIDwgMCkgeworICAgICAgICBQeV9YREVDUkVGKHN0cik7CiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHYgPSBjb2RlY190dXBsZShQeVVuaWNvZGVfRW5jb2RlVVRGMzIoUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKzEpLAotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyKSk7CisgICAgfQorICAgIHYgPSBjb2RlY190dXBsZShfUHlVbmljb2RlX0VuY29kZVVURjMyKHN0ciwgZXJyb3JzLCArMSksCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikpOwogICAgIFB5X0RFQ1JFRihzdHIpOwogICAgIHJldHVybiB2OwogfQpAQCAtODc2LDExICs5MTIsMTIgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBzdHIgPSBQeVVuaWNvZGVfRnJvbU9iamVjdChzdHIpOwotICAgIGlmIChzdHIgPT0gTlVMTCkKKyAgICBpZiAoc3RyID09IE5VTEwgfHwgUHlVbmljb2RlX1JFQURZKHN0cikgPCAwKSB7CisgICAgICAgIFB5X1hERUNSRUYoc3RyKTsKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgdiA9IGNvZGVjX3R1cGxlKFB5VW5pY29kZV9FbmNvZGVVbmljb2RlRXNjYXBlKFB5VW5pY29kZV9BU19VTklDT0RFKHN0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpKSwKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0cikpOworICAgIH0KKyAgICB2ID0gY29kZWNfdHVwbGUoUHlVbmljb2RlX0FzVW5pY29kZUVzY2FwZVN0cmluZyhzdHIpLAorICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpKTsKICAgICBQeV9ERUNSRUYoc3RyKTsKICAgICByZXR1cm4gdjsKIH0KQEAgLTg5NywxMiArOTM0LDEyIEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgc3RyID0gUHlVbmljb2RlX0Zyb21PYmplY3Qoc3RyKTsKLSAgICBpZiAoc3RyID09IE5VTEwpCisgICAgaWYgKHN0ciA9PSBOVUxMIHx8IFB5VW5pY29kZV9SRUFEWShzdHIpIDwgMCkgeworICAgICAgICBQeV9YREVDUkVGKHN0cik7CiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHYgPSBjb2RlY190dXBsZShQeVVuaWNvZGVfRW5jb2RlUmF3VW5pY29kZUVzY2FwZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpKSwKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0cikpOworICAgIH0KKyAgICB2ID0gY29kZWNfdHVwbGUoUHlVbmljb2RlX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZyhzdHIpLAorICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpKTsKICAgICBQeV9ERUNSRUYoc3RyKTsKICAgICByZXR1cm4gdjsKIH0KQEAgLTkxOSwxMyArOTU2LDEyIEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgc3RyID0gUHlVbmljb2RlX0Zyb21PYmplY3Qoc3RyKTsKLSAgICBpZiAoc3RyID09IE5VTEwpCisgICAgaWYgKHN0ciA9PSBOVUxMIHx8IFB5VW5pY29kZV9SRUFEWShzdHIpIDwgMCkgeworICAgICAgICBQeV9YREVDUkVGKHN0cik7CiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHYgPSBjb2RlY190dXBsZShQeVVuaWNvZGVfRW5jb2RlTGF0aW4xKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHN0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzKSwKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0cikpOworICAgIH0KKyAgICB2ID0gY29kZWNfdHVwbGUoX1B5VW5pY29kZV9Bc0xhdGluMVN0cmluZyhzdHIsIGVycm9ycyksCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikpOwogICAgIFB5X0RFQ1JFRihzdHIpOwogICAgIHJldHVybiB2OwogfQpAQCAtOTQyLDEzICs5NzgsMTIgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBzdHIgPSBQeVVuaWNvZGVfRnJvbU9iamVjdChzdHIpOwotICAgIGlmIChzdHIgPT0gTlVMTCkKKyAgICBpZiAoc3RyID09IE5VTEwgfHwgUHlVbmljb2RlX1JFQURZKHN0cikgPCAwKSB7CisgICAgICAgIFB5X1hERUNSRUYoc3RyKTsKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgdiA9IGNvZGVjX3R1cGxlKFB5VW5pY29kZV9FbmNvZGVBU0NJSSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyksCi0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpKTsKKyAgICB9CisgICAgdiA9IGNvZGVjX3R1cGxlKF9QeVVuaWNvZGVfQXNBU0NJSVN0cmluZyhzdHIsIGVycm9ycyksCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikpOwogICAgIFB5X0RFQ1JFRihzdHIpOwogICAgIHJldHVybiB2OwogfQpAQCAtOTY4LDE0ICsxMDAzLDEyIEBACiAgICAgICAgIG1hcHBpbmcgPSBOVUxMOwogCiAgICAgc3RyID0gUHlVbmljb2RlX0Zyb21PYmplY3Qoc3RyKTsKLSAgICBpZiAoc3RyID09IE5VTEwpCisgICAgaWYgKHN0ciA9PSBOVUxMIHx8IFB5VW5pY29kZV9SRUFEWShzdHIpIDwgMCkgeworICAgICAgICBQeV9YREVDUkVGKHN0cik7CiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHYgPSBjb2RlY190dXBsZShQeVVuaWNvZGVfRW5jb2RlQ2hhcm1hcCgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzKSwKLSAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHN0cikpOworICAgIH0KKyAgICB2ID0gY29kZWNfdHVwbGUoX1B5VW5pY29kZV9FbmNvZGVDaGFybWFwKHN0ciwgbWFwcGluZywgZXJyb3JzKSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKSk7CiAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgcmV0dXJuIHY7CiB9CkBAIC05ODksNyArMTAyMiw3IEBACiAgICAgcmV0dXJuIFB5VW5pY29kZV9CdWlsZEVuY29kaW5nTWFwKG1hcCk7CiB9CiAKLSNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpICYmIGRlZmluZWQoSEFWRV9VU0FCTEVfV0NIQVJfVCkKKyNpZmRlZiBIQVZFX01CQ1MKIAogc3RhdGljIFB5T2JqZWN0ICoKIG1iY3NfZW5jb2RlKFB5T2JqZWN0ICpzZWxmLApAQCAtMTAwMywxOCArMTAzNiw0MiBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHN0ciA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cik7Ci0gICAgaWYgKHN0ciA9PSBOVUxMKQorICAgIGlmIChzdHIgPT0gTlVMTCB8fCBQeVVuaWNvZGVfUkVBRFkoc3RyKSA8IDApIHsKKyAgICAgICAgUHlfWERFQ1JFRihzdHIpOwogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB2ID0gY29kZWNfdHVwbGUoUHlVbmljb2RlX0VuY29kZU1CQ1MoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMpLAotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyKSk7CisgICAgfQorICAgIHYgPSBjb2RlY190dXBsZShQeVVuaWNvZGVfRW5jb2RlQ29kZVBhZ2UoQ1BfQUNQLCBzdHIsIGVycm9ycyksCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikpOwogICAgIFB5X0RFQ1JFRihzdHIpOwogICAgIHJldHVybiB2OwogfQogCi0jZW5kaWYgLyogTVNfV0lORE9XUyAqLworc3RhdGljIFB5T2JqZWN0ICoKK2NvZGVfcGFnZV9lbmNvZGUoUHlPYmplY3QgKnNlbGYsCisgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpzdHIsICp2OworICAgIGNvbnN0IGNoYXIgKmVycm9ycyA9IE5VTEw7CisgICAgaW50IGNvZGVfcGFnZTsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaU98ejpjb2RlX3BhZ2VfZW5jb2RlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvZGVfcGFnZSwgJnN0ciwgJmVycm9ycykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgc3RyID0gUHlVbmljb2RlX0Zyb21PYmplY3Qoc3RyKTsKKyAgICBpZiAoc3RyID09IE5VTEwgfHwgUHlVbmljb2RlX1JFQURZKHN0cikgPCAwKSB7CisgICAgICAgIFB5X1hERUNSRUYoc3RyKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHYgPSBjb2RlY190dXBsZShQeVVuaWNvZGVfRW5jb2RlQ29kZVBhZ2UoY29kZV9wYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzKSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKSk7CisgICAgUHlfREVDUkVGKHN0cik7CisgICAgcmV0dXJuIHY7Cit9CisKKyNlbmRpZiAvKiBIQVZFX01CQ1MgKi8KIAogLyogLS0tIEVycm9yIGhhbmRsZXIgcmVnaXN0cnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKQEAgLTExMDEsOSArMTE1OCwxMSBAQAogICAgIHsiY2hhcm1hcF9kZWNvZGUiLCAgICAgICAgICBjaGFybWFwX2RlY29kZSwgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJjaGFybWFwX2J1aWxkIiwgICAgICAgICAgIGNoYXJtYXBfYnVpbGQsICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTfSwKICAgICB7InJlYWRidWZmZXJfZW5jb2RlIiwgICAgICAgcmVhZGJ1ZmZlcl9lbmNvZGUsICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1N9LAotI2lmIGRlZmluZWQoTVNfV0lORE9XUykgJiYgZGVmaW5lZChIQVZFX1VTQUJMRV9XQ0hBUl9UKQorI2lmZGVmIEhBVkVfTUJDUwogICAgIHsibWJjc19lbmNvZGUiLCAgICAgICAgICAgICBtYmNzX2VuY29kZSwgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJtYmNzX2RlY29kZSIsICAgICAgICAgICAgIG1iY3NfZGVjb2RlLCAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTfSwKKyAgICB7ImNvZGVfcGFnZV9lbmNvZGUiLCAgICAgICAgY29kZV9wYWdlX2VuY29kZSwgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1N9LAorICAgIHsiY29kZV9wYWdlX2RlY29kZSIsICAgICAgICBjb2RlX3BhZ2VfZGVjb2RlLCAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAjZW5kaWYKICAgICB7InJlZ2lzdGVyX2Vycm9yIiwgICAgICAgICAgcmVnaXN0ZXJfZXJyb3IsICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MsCiAgICAgICAgIHJlZ2lzdGVyX2Vycm9yX19kb2NfX30sCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jb2xsZWN0aW9uc21vZHVsZS5jIGIvTW9kdWxlcy9fY29sbGVjdGlvbnNtb2R1bGUuYwppbmRleCA0MzQzMTU5Li4zMDJmNGUzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jb2xsZWN0aW9uc21vZHVsZS5jCisrKyBiL01vZHVsZXMvX2NvbGxlY3Rpb25zbW9kdWxlLmMKQEAgLTc2Nyw4ICs3NjcsOSBAQAogZGVxdWVfcmVkdWNlKGRlcXVlb2JqZWN0ICpkZXF1ZSkKIHsKICAgICBQeU9iamVjdCAqZGljdCwgKnJlc3VsdCwgKmFzbGlzdDsKKyAgICBfUHlfSURFTlRJRklFUihfX2RpY3RfXyk7CiAKLSAgICBkaWN0ID0gUHlPYmplY3RfR2V0QXR0clN0cmluZygoUHlPYmplY3QgKilkZXF1ZSwgIl9fZGljdF9fIik7CisgICAgZGljdCA9IF9QeU9iamVjdF9HZXRBdHRySWQoKFB5T2JqZWN0ICopZGVxdWUsICZQeUlkX19fZGljdF9fKTsKICAgICBpZiAoZGljdCA9PSBOVUxMKQogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgIGFzbGlzdCA9IFB5U2VxdWVuY2VfTGlzdCgoUHlPYmplY3QgKilkZXF1ZSk7CkBAIC04MzIsOCArODMzLDcgQEAKIAogICAgIGlmICghUHlPYmplY3RfVHlwZUNoZWNrKHYsICZkZXF1ZV90eXBlKSB8fAogICAgICAgICAhUHlPYmplY3RfVHlwZUNoZWNrKHcsICZkZXF1ZV90eXBlKSkgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICB9CiAKICAgICAvKiBTaG9ydGN1dHMgKi8KQEAgLTExMjIsNiArMTEyMiwzNSBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QgKgorZGVxdWVpdGVyX25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBQeV9zc2l6ZV90IGksIGluZGV4PTA7CisgICAgUHlPYmplY3QgKmRlcXVlOworICAgIGRlcXVlaXRlcm9iamVjdCAqaXQ7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPIXxuIiwgJmRlcXVlX3R5cGUsICZkZXF1ZSwgJmluZGV4KSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgYXNzZXJ0KHR5cGUgPT0gJmRlcXVlaXRlcl90eXBlKTsKKworICAgIGl0ID0gKGRlcXVlaXRlcm9iamVjdCopZGVxdWVfaXRlcigoZGVxdWVvYmplY3QgKilkZXF1ZSk7CisgICAgaWYgKCFpdCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgLyogY29uc3VtZSBpdGVtcyBmcm9tIHRoZSBxdWV1ZSAqLworICAgIGZvcihpPTA7IGk8aW5kZXg7IGkrKykgeworICAgICAgICBQeU9iamVjdCAqaXRlbSA9IGRlcXVlaXRlcl9uZXh0KGl0KTsKKyAgICAgICAgaWYgKGl0ZW0pIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihpdGVtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChpdC0+Y291bnRlcikgeworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihpdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gKFB5T2JqZWN0KilpdDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKIGRlcXVlaXRlcl9sZW4oZGVxdWVpdGVyb2JqZWN0ICppdCkKIHsKICAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KGl0LT5jb3VudGVyKTsKQEAgLTExMjksMTQgKzExNTgsMjEgQEAKIAogUHlEb2NfU1RSVkFSKGxlbmd0aF9oaW50X2RvYywgIlByaXZhdGUgbWV0aG9kIHJldHVybmluZyBhbiBlc3RpbWF0ZSBvZiBsZW4obGlzdChpdCkpLiIpOwogCitzdGF0aWMgUHlPYmplY3QgKgorZGVxdWVpdGVyX3JlZHVjZShkZXF1ZWl0ZXJvYmplY3QgKml0KQoreworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKE9uKSIsIFB5X1RZUEUoaXQpLCBpdC0+ZGVxdWUsIGl0LT5kZXF1ZS0+bGVuIC0gaXQtPmNvdW50ZXIpOworfQorCiBzdGF0aWMgUHlNZXRob2REZWYgZGVxdWVpdGVyX21ldGhvZHNbXSA9IHsKICAgICB7Il9fbGVuZ3RoX2hpbnRfXyIsIChQeUNGdW5jdGlvbilkZXF1ZWl0ZXJfbGVuLCBNRVRIX05PQVJHUywgbGVuZ3RoX2hpbnRfZG9jfSwKKyAgICB7Il9fcmVkdWNlX18iLCAoUHlDRnVuY3Rpb24pZGVxdWVpdGVyX3JlZHVjZSwgTUVUSF9OT0FSR1MsIHJlZHVjZV9kb2N9LAogICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCiB9OwogCiBzdGF0aWMgUHlUeXBlT2JqZWN0IGRlcXVlaXRlcl90eXBlID0gewogICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQotICAgICJkZXF1ZV9pdGVyYXRvciIsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmFtZSAqLworICAgICJfY29sbGVjdGlvbnMuX2RlcXVlX2l0ZXJhdG9yIiwgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KICAgICBzaXplb2YoZGVxdWVpdGVyb2JqZWN0KSwgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KICAgICAvKiBtZXRob2RzICovCkBAIC0xMTY0LDYgKzEyMDAsMTYgQEAKICAgICBQeU9iamVjdF9TZWxmSXRlciwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAoaXRlcm5leHRmdW5jKWRlcXVlaXRlcl9uZXh0LCAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCiAgICAgZGVxdWVpdGVyX21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX2dldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pbml0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLworICAgIGRlcXVlaXRlcl9uZXcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCiAgICAgMCwKIH07CiAKQEAgLTEyMTcsOSArMTI2MywzOCBAQAogICAgIHJldHVybiBpdGVtOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorZGVxdWVyZXZpdGVyX25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBQeV9zc2l6ZV90IGksIGluZGV4PTA7CisgICAgUHlPYmplY3QgKmRlcXVlOworICAgIGRlcXVlaXRlcm9iamVjdCAqaXQ7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPIXxuIiwgJmRlcXVlX3R5cGUsICZkZXF1ZSwgJmluZGV4KSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgYXNzZXJ0KHR5cGUgPT0gJmRlcXVlcmV2aXRlcl90eXBlKTsKKworICAgIGl0ID0gKGRlcXVlaXRlcm9iamVjdCopZGVxdWVfcmV2aXRlcigoZGVxdWVvYmplY3QgKilkZXF1ZSk7CisgICAgaWYgKCFpdCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgLyogY29uc3VtZSBpdGVtcyBmcm9tIHRoZSBxdWV1ZSAqLworICAgIGZvcihpPTA7IGk8aW5kZXg7IGkrKykgeworICAgICAgICBQeU9iamVjdCAqaXRlbSA9IGRlcXVlcmV2aXRlcl9uZXh0KGl0KTsKKyAgICAgICAgaWYgKGl0ZW0pIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihpdGVtKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChpdC0+Y291bnRlcikgeworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihpdCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gKFB5T2JqZWN0KilpdDsKK30KKwogc3RhdGljIFB5VHlwZU9iamVjdCBkZXF1ZXJldml0ZXJfdHlwZSA9IHsKICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKLSAgICAiZGVxdWVfcmV2ZXJzZV9pdGVyYXRvciIsICAgICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICAiX2NvbGxlY3Rpb25zLl9kZXF1ZV9yZXZlcnNlX2l0ZXJhdG9yIiwgICAgICAvKiB0cF9uYW1lICovCiAgICAgc2l6ZW9mKGRlcXVlaXRlcm9iamVjdCksICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNpY3NpemUgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXplICovCiAgICAgLyogbWV0aG9kcyAqLwpAQCAtMTI0Nyw2ICsxMzIyLDE2IEBACiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCiAgICAgKGl0ZXJuZXh0ZnVuYylkZXF1ZXJldml0ZXJfbmV4dCwgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwogICAgIGRlcXVlaXRlcl9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3NldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KKyAgICBkZXF1ZXJldml0ZXJfbmV3LCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLwogICAgIDAsCiB9OwogCkBAIC0xMzM1LDEzICsxNDIwLDE1IEBACiAgICAgUHlPYmplY3QgKml0ZW1zOwogICAgIFB5T2JqZWN0ICppdGVyOwogICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgX1B5X0lERU5USUZJRVIoaXRlbXMpOworCiAgICAgaWYgKGRkLT5kZWZhdWx0X2ZhY3RvcnkgPT0gTlVMTCB8fCBkZC0+ZGVmYXVsdF9mYWN0b3J5ID09IFB5X05vbmUpCiAgICAgICAgIGFyZ3MgPSBQeVR1cGxlX05ldygwKTsKICAgICBlbHNlCiAgICAgICAgIGFyZ3MgPSBQeVR1cGxlX1BhY2soMSwgZGQtPmRlZmF1bHRfZmFjdG9yeSk7CiAgICAgaWYgKGFyZ3MgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaXRlbXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKChQeU9iamVjdCAqKWRkLCAiaXRlbXMiLCAiKCkiKTsKKyAgICBpdGVtcyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoKFB5T2JqZWN0ICopZGQsICZQeUlkX2l0ZW1zLCAiKCkiKTsKICAgICBpZiAoaXRlbXMgPT0gTlVMTCkgewogICAgICAgICBQeV9ERUNSRUYoYXJncyk7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTU1NCwxMiArMTY0MSw4IEBACiAgICAgaWYgKFB5RGljdF9DaGVja0V4YWN0KG1hcHBpbmcpKSB7CiAgICAgICAgIHdoaWxlICgxKSB7CiAgICAgICAgICAgICBrZXkgPSBQeUl0ZXJfTmV4dChpdCk7Ci0gICAgICAgICAgICBpZiAoa2V5ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSAmJiBQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX1N0b3BJdGVyYXRpb24pKQotICAgICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoa2V5ID09IE5VTEwpCisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBvbGR2YWwgPSBQeURpY3RfR2V0SXRlbShtYXBwaW5nLCBrZXkpOwogICAgICAgICAgICAgaWYgKG9sZHZhbCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtKG1hcHBpbmcsIGtleSwgb25lKSA9PSAtMSkKQEAgLTE1NzcsMTIgKzE2NjAsOCBAQAogICAgIH0gZWxzZSB7CiAgICAgICAgIHdoaWxlICgxKSB7CiAgICAgICAgICAgICBrZXkgPSBQeUl0ZXJfTmV4dChpdCk7Ci0gICAgICAgICAgICBpZiAoa2V5ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSAmJiBQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX1N0b3BJdGVyYXRpb24pKQotICAgICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoa2V5ID09IE5VTEwpCisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBvbGR2YWwgPSBQeU9iamVjdF9HZXRJdGVtKG1hcHBpbmcsIGtleSk7CiAgICAgICAgICAgICBpZiAob2xkdmFsID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkgfHwgIVB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfS2V5RXJyb3IpKQpAQCAtMTY1OSw5ICsxNzM4LDEzIEBACiAKICAgICBpZiAoUHlUeXBlX1JlYWR5KCZkZXF1ZWl0ZXJfdHlwZSkgPCAwKQogICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9JTkNSRUYoJmRlcXVlaXRlcl90eXBlKTsKKyAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgIl9kZXF1ZV9pdGVyYXRvciIsIChQeU9iamVjdCAqKSZkZXF1ZWl0ZXJfdHlwZSk7CiAKICAgICBpZiAoUHlUeXBlX1JlYWR5KCZkZXF1ZXJldml0ZXJfdHlwZSkgPCAwKQogICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9JTkNSRUYoJmRlcXVlcmV2aXRlcl90eXBlKTsKKyAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgIl9kZXF1ZV9yZXZlcnNlX2l0ZXJhdG9yIiwgKFB5T2JqZWN0ICopJmRlcXVlcmV2aXRlcl90eXBlKTsKIAogICAgIHJldHVybiBtOwogfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9jcnlwdG1vZHVsZS5jIGIvTW9kdWxlcy9fY3J5cHRtb2R1bGUuYwpzaW1pbGFyaXR5IGluZGV4IDk3JQpyZW5hbWUgZnJvbSBNb2R1bGVzL2NyeXB0bW9kdWxlLmMKcmVuYW1lIHRvIE1vZHVsZXMvX2NyeXB0bW9kdWxlLmMKaW5kZXggZDVhNDJmZi4uNTEwMDc4OCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9jcnlwdG1vZHVsZS5jCisrKyBiL01vZHVsZXMvX2NyeXB0bW9kdWxlLmMKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiBjcnlwdG1vZHVsZSA9IHsKICAgICBQeU1vZHVsZURlZl9IRUFEX0lOSVQsCi0gICAgImNyeXB0IiwKKyAgICAiX2NyeXB0IiwKICAgICBOVUxMLAogICAgIC0xLAogICAgIGNyeXB0X21ldGhvZHMsCkBAIC01Niw3ICs1Niw3IEBACiB9OwogCiBQeU1PRElOSVRfRlVOQwotUHlJbml0X2NyeXB0KHZvaWQpCitQeUluaXRfX2NyeXB0KHZvaWQpCiB7CiAgICAgcmV0dXJuIFB5TW9kdWxlX0NyZWF0ZSgmY3J5cHRtb2R1bGUpOwogfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3N2LmMgYi9Nb2R1bGVzL19jc3YuYwppbmRleCBhNzQ5Y2VjLi44OWNlMTIyIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jc3YuYworKysgYi9Nb2R1bGVzL19jc3YuYwpAQCAtMTYsOSArMTYsMzkgQEAKICNkZWZpbmUgSVNfQkFTRVNUUklORyhvKSBcCiAgICAgUHlVbmljb2RlX0NoZWNrKG8pCiAKLXN0YXRpYyBQeU9iamVjdCAqZXJyb3Jfb2JqOyAgICAgLyogQ1NWIGV4Y2VwdGlvbiAqLwotc3RhdGljIFB5T2JqZWN0ICpkaWFsZWN0czsgICAgICAvKiBEaWFsZWN0IHJlZ2lzdHJ5ICovCi1zdGF0aWMgbG9uZyBmaWVsZF9saW1pdCA9IDEyOCAqIDEwMjQ7ICAgLyogbWF4IHBhcnNlZCBmaWVsZCBzaXplICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3QgKmVycm9yX29iajsgICAvKiBDU1YgZXhjZXB0aW9uICovCisgICAgUHlPYmplY3QgKmRpYWxlY3RzOyAgIC8qIERpYWxlY3QgcmVnaXN0cnkgKi8KKyAgICBsb25nIGZpZWxkX2xpbWl0OyAgIC8qIG1heCBwYXJzZWQgZmllbGQgc2l6ZSAqLworfSBfY3N2c3RhdGU7CisKKyNkZWZpbmUgX2NzdnN0YXRlKG8pICgoX2NzdnN0YXRlICopUHlNb2R1bGVfR2V0U3RhdGUobykpCisKK3N0YXRpYyBpbnQKK19jc3ZfY2xlYXIoUHlPYmplY3QgKm0pCit7CisgICAgUHlfQ0xFQVIoX2NzdnN0YXRlKG0pLT5lcnJvcl9vYmopOworICAgIFB5X0NMRUFSKF9jc3ZzdGF0ZShtKS0+ZGlhbGVjdHMpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CitfY3N2X3RyYXZlcnNlKFB5T2JqZWN0ICptLCB2aXNpdHByb2MgdmlzaXQsIHZvaWQgKmFyZykKK3sKKyAgICBQeV9WSVNJVChfY3N2c3RhdGUobSktPmVycm9yX29iaik7CisgICAgUHlfVklTSVQoX2NzdnN0YXRlKG0pLT5kaWFsZWN0cyk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitfY3N2X2ZyZWUodm9pZCAqbSkKK3sKKyAgIF9jc3ZfY2xlYXIoKFB5T2JqZWN0ICopbSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgUHlNb2R1bGVEZWYgX2Nzdm1vZHVsZTsKKworI2RlZmluZSBfY3N2c3RhdGVfZ2xvYmFsICgoX2NzdnN0YXRlICopUHlNb2R1bGVfR2V0U3RhdGUoUHlTdGF0ZV9GaW5kTW9kdWxlKCZfY3N2bW9kdWxlKSkpCiAKIHR5cGVkZWYgZW51bSB7CiAgICAgU1RBUlRfUkVDT1JELCBTVEFSVF9GSUVMRCwgRVNDQVBFRF9DSEFSLCBJTl9GSUVMRCwKQEAgLTQ3LDkgKzc3LDkgQEAKICAgICBQeU9iamVjdF9IRUFECiAKICAgICBpbnQgZG91YmxlcXVvdGU7ICAgICAgICAgICAgLyogaXMgIiByZXByZXNlbnRlZCBieSAiIj8gKi8KLSAgICBQeV9VTklDT0RFIGRlbGltaXRlcjsgICAgICAgLyogZmllbGQgc2VwYXJhdG9yICovCi0gICAgUHlfVU5JQ09ERSBxdW90ZWNoYXI7ICAgICAgIC8qIHF1b3RlIGNoYXJhY3RlciAqLwotICAgIFB5X1VOSUNPREUgZXNjYXBlY2hhcjsgICAgICAvKiBlc2NhcGUgY2hhcmFjdGVyICovCisgICAgUHlfVUNTNCBkZWxpbWl0ZXI7ICAgICAgIC8qIGZpZWxkIHNlcGFyYXRvciAqLworICAgIFB5X1VDUzQgcXVvdGVjaGFyOyAgICAgICAvKiBxdW90ZSBjaGFyYWN0ZXIgKi8KKyAgICBQeV9VQ1M0IGVzY2FwZWNoYXI7ICAgICAgLyogZXNjYXBlIGNoYXJhY3RlciAqLwogICAgIGludCBza2lwaW5pdGlhbHNwYWNlOyAgICAgICAvKiBpZ25vcmUgc3BhY2VzIGZvbGxvd2luZyBkZWxpbWl0ZXI/ICovCiAgICAgUHlPYmplY3QgKmxpbmV0ZXJtaW5hdG9yOyAvKiBzdHJpbmcgdG8gd3JpdGUgYmV0d2VlbiByZWNvcmRzICovCiAgICAgaW50IHF1b3Rpbmc7ICAgICAgICAgICAgICAgIC8qIHN0eWxlIG9mIHF1b3RpbmcgdG8gd3JpdGUgKi8KQEAgLTY4LDcgKzk4LDcgQEAKIAogICAgIFB5T2JqZWN0ICpmaWVsZHM7ICAgICAgICAgICAvKiBmaWVsZCBsaXN0IGZvciBjdXJyZW50IHJlY29yZCAqLwogICAgIFBhcnNlclN0YXRlIHN0YXRlOyAgICAgICAgICAvKiBjdXJyZW50IENTViBwYXJzZSBzdGF0ZSAqLwotICAgIFB5X1VOSUNPREUgKmZpZWxkOyAgICAgICAgICAvKiBidWlsZCBjdXJyZW50IGZpZWxkIGluIGhlcmUgKi8KKyAgICBQeV9VQ1M0ICpmaWVsZDsgICAgICAgICAgICAgLyogdGVtcG9yYXJ5IGJ1ZmZlciAqLwogICAgIFB5X3NzaXplX3QgZmllbGRfc2l6ZTsgICAgICAvKiBzaXplIG9mIGFsbG9jYXRlZCBidWZmZXIgKi8KICAgICBQeV9zc2l6ZV90IGZpZWxkX2xlbjsgICAgICAgLyogbGVuZ3RoIG9mIGN1cnJlbnQgZmllbGQgKi8KICAgICBpbnQgbnVtZXJpY19maWVsZDsgICAgICAgICAgLyogdHJlYXQgZmllbGQgYXMgbnVtZXJpYyAqLwpAQCAtODYsNyArMTE2LDcgQEAKIAogICAgIERpYWxlY3RPYmogKmRpYWxlY3Q7ICAgIC8qIHBhcnNpbmcgZGlhbGVjdCAqLwogCi0gICAgUHlfVU5JQ09ERSAqcmVjOyAgICAgICAgICAgIC8qIGJ1ZmZlciBmb3IgcGFyc2VyLmpvaW4gKi8KKyAgICBQeV9VQ1M0ICpyZWM7ICAgICAgICAgICAgLyogYnVmZmVyIGZvciBwYXJzZXIuam9pbiAqLwogICAgIFB5X3NzaXplX3QgcmVjX3NpemU7ICAgICAgICAvKiBzaXplIG9mIGFsbG9jYXRlZCByZWNvcmQgKi8KICAgICBQeV9zc2l6ZV90IHJlY19sZW47ICAgICAgICAgLyogbGVuZ3RoIG9mIHJlY29yZCAqLwogICAgIGludCBudW1fZmllbGRzOyAgICAgICAgICAgICAvKiBudW1iZXIgb2YgZmllbGRzIGluIHJlY29yZCAqLwpAQCAtMTAzLDEwICsxMzMsMTAgQEAKIHsKICAgICBQeU9iamVjdCAqZGlhbGVjdF9vYmo7CiAKLSAgICBkaWFsZWN0X29iaiA9IFB5RGljdF9HZXRJdGVtKGRpYWxlY3RzLCBuYW1lX29iaik7CisgICAgZGlhbGVjdF9vYmogPSBQeURpY3RfR2V0SXRlbShfY3N2c3RhdGVfZ2xvYmFsLT5kaWFsZWN0cywgbmFtZV9vYmopOwogICAgIGlmIChkaWFsZWN0X29iaiA9PSBOVUxMKSB7CiAgICAgICAgIGlmICghUHlFcnJfT2NjdXJyZWQoKSkKLSAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChlcnJvcl9vYmosICJ1bmtub3duIGRpYWxlY3QiKTsKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChfY3N2c3RhdGVfZ2xvYmFsLT5lcnJvcl9vYmosICJ1bmtub3duIGRpYWxlY3QiKTsKICAgICB9CiAgICAgZWxzZQogICAgICAgICBQeV9JTkNSRUYoZGlhbGVjdF9vYmopOwpAQCAtMTIxLDE0ICsxNTEsMTQgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLWdldF9udWxsY2hhcl9hc19Ob25lKFB5X1VOSUNPREUgYykKK2dldF9udWxsY2hhcl9hc19Ob25lKFB5X1VDUzQgYykKIHsKICAgICBpZiAoYyA9PSAnXDAnKSB7CiAgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKICAgICAgICAgcmV0dXJuIFB5X05vbmU7CiAgICAgfQogICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tVW5pY29kZSgoUHlfVU5JQ09ERSAqKSZjLCAxKTsKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tT3JkaW5hbChjKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTE5OSwyNSArMjI5LDIzIEBACiB9CiAKIHN0YXRpYyBpbnQKLV9zZXRfY2hhcihjb25zdCBjaGFyICpuYW1lLCBQeV9VTklDT0RFICp0YXJnZXQsIFB5T2JqZWN0ICpzcmMsIFB5X1VOSUNPREUgZGZsdCkKK19zZXRfY2hhcihjb25zdCBjaGFyICpuYW1lLCBQeV9VQ1M0ICp0YXJnZXQsIFB5T2JqZWN0ICpzcmMsIFB5X1VDUzQgZGZsdCkKIHsKICAgICBpZiAoc3JjID09IE5VTEwpCiAgICAgICAgICp0YXJnZXQgPSBkZmx0OwogICAgIGVsc2UgewogICAgICAgICAqdGFyZ2V0ID0gJ1wwJzsKICAgICAgICAgaWYgKHNyYyAhPSBQeV9Ob25lKSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFICpidWY7CiAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKLSAgICAgICAgICAgIGJ1ZiA9IFB5VW5pY29kZV9Bc1VuaWNvZGUoc3JjKTsKLSAgICAgICAgICAgIGxlbiA9IFB5VW5pY29kZV9HZXRTaXplKHNyYyk7Ci0gICAgICAgICAgICBpZiAoYnVmID09IE5VTEwgfHwgbGVuID4gMSkgeworICAgICAgICAgICAgbGVuID0gUHlVbmljb2RlX0dldExlbmd0aChzcmMpOworICAgICAgICAgICAgaWYgKGxlbiA+IDEpIHsKICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAiXCIlc1wiIG11c3QgYmUgYW4gMS1jaGFyYWN0ZXIgc3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgbmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGxlbiA+IDApCi0gICAgICAgICAgICAgICAgKnRhcmdldCA9IGJ1ZlswXTsKKyAgICAgICAgICAgICAgICAqdGFyZ2V0ID0gUHlVbmljb2RlX1JFQURfQ0hBUihzcmMsIDApOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiAwOwpAQCAtNDk4LDcgKzUyNiw4IEBACiB7CiAgICAgUHlPYmplY3QgKmZpZWxkOwogCi0gICAgZmllbGQgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoc2VsZi0+ZmllbGQsIHNlbGYtPmZpZWxkX2xlbik7CisgICAgZmllbGQgPSBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKFB5VW5pY29kZV80QllURV9LSU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSBzZWxmLT5maWVsZCwgc2VsZi0+ZmllbGRfbGVuKTsKICAgICBpZiAoZmllbGQgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIHNlbGYtPmZpZWxkX2xlbiA9IDA7CkBAIC01MDcsMTEgKzUzNiw5IEBACiAKICAgICAgICAgc2VsZi0+bnVtZXJpY19maWVsZCA9IDA7CiAgICAgICAgIHRtcCA9IFB5TnVtYmVyX0Zsb2F0KGZpZWxkKTsKLSAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBQeV9ERUNSRUYoZmllbGQpOwotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9CiAgICAgICAgIFB5X0RFQ1JFRihmaWVsZCk7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgZmllbGQgPSB0bXA7CiAgICAgfQogICAgIFB5TGlzdF9BcHBlbmQoc2VsZi0+ZmllbGRzLCBmaWVsZCk7CkBAIC01MjYsMTYgKzU1MywxNiBAQAogICAgICAgICBzZWxmLT5maWVsZF9zaXplID0gNDA5NjsKICAgICAgICAgaWYgKHNlbGYtPmZpZWxkICE9IE5VTEwpCiAgICAgICAgICAgICBQeU1lbV9GcmVlKHNlbGYtPmZpZWxkKTsKLSAgICAgICAgc2VsZi0+ZmllbGQgPSBQeU1lbV9OZXcoUHlfVU5JQ09ERSwgc2VsZi0+ZmllbGRfc2l6ZSk7CisgICAgICAgIHNlbGYtPmZpZWxkID0gUHlNZW1fTmV3KFB5X1VDUzQsIHNlbGYtPmZpZWxkX3NpemUpOwogICAgIH0KICAgICBlbHNlIHsKKyAgICAgICAgUHlfVUNTNCAqZmllbGQgPSBzZWxmLT5maWVsZDsKICAgICAgICAgaWYgKHNlbGYtPmZpZWxkX3NpemUgPiBQWV9TU0laRV9UX01BWCAvIDIpIHsKICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICBzZWxmLT5maWVsZF9zaXplICo9IDI7Ci0gICAgICAgIHNlbGYtPmZpZWxkID0gUHlNZW1fUmVzaXplKHNlbGYtPmZpZWxkLCBQeV9VTklDT0RFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5maWVsZF9zaXplKTsKKyAgICAgICAgc2VsZi0+ZmllbGQgPSBQeU1lbV9SZXNpemUoZmllbGQsIFB5X1VDUzQsIHNlbGYtPmZpZWxkX3NpemUpOwogICAgIH0KICAgICBpZiAoc2VsZi0+ZmllbGQgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwpAQCAtNTQ1LDExICs1NzIsMTEgQEAKIH0KIAogc3RhdGljIGludAotcGFyc2VfYWRkX2NoYXIoUmVhZGVyT2JqICpzZWxmLCBQeV9VTklDT0RFIGMpCitwYXJzZV9hZGRfY2hhcihSZWFkZXJPYmogKnNlbGYsIFB5X1VDUzQgYykKIHsKLSAgICBpZiAoc2VsZi0+ZmllbGRfbGVuID49IGZpZWxkX2xpbWl0KSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChlcnJvcl9vYmosICJmaWVsZCBsYXJnZXIgdGhhbiBmaWVsZCBsaW1pdCAoJWxkKSIsCi0gICAgICAgICAgICAgICAgICAgICBmaWVsZF9saW1pdCk7CisgICAgaWYgKHNlbGYtPmZpZWxkX2xlbiA+PSBfY3N2c3RhdGVfZ2xvYmFsLT5maWVsZF9saW1pdCkgeworICAgICAgICBQeUVycl9Gb3JtYXQoX2NzdnN0YXRlX2dsb2JhbC0+ZXJyb3Jfb2JqLCAiZmllbGQgbGFyZ2VyIHRoYW4gZmllbGQgbGltaXQgKCVsZCkiLAorICAgICAgICAgICAgICAgICAgICAgX2NzdnN0YXRlX2dsb2JhbC0+ZmllbGRfbGltaXQpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIGlmIChzZWxmLT5maWVsZF9sZW4gPT0gc2VsZi0+ZmllbGRfc2l6ZSAmJiAhcGFyc2VfZ3Jvd19idWZmKHNlbGYpKQpAQCAtNTU5LDcgKzU4Niw3IEBACiB9CiAKIHN0YXRpYyBpbnQKLXBhcnNlX3Byb2Nlc3NfY2hhcihSZWFkZXJPYmogKnNlbGYsIFB5X1VOSUNPREUgYykKK3BhcnNlX3Byb2Nlc3NfY2hhcihSZWFkZXJPYmogKnNlbGYsIFB5X1VDUzQgYykKIHsKICAgICBEaWFsZWN0T2JqICpkaWFsZWN0ID0gc2VsZi0+ZGlhbGVjdDsKIApAQCAtNzA2LDcgKzczMyw3IEBACiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvKiBpbGxlZ2FsICovCi0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoZXJyb3Jfb2JqLCAiJyVjJyBleHBlY3RlZCBhZnRlciAnJWMnIiwKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChfY3N2c3RhdGVfZ2xvYmFsLT5lcnJvcl9vYmosICInJWMnIGV4cGVjdGVkIGFmdGVyICclYyciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxlY3QtPmRlbGltaXRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsZWN0LT5xdW90ZWNoYXIpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwpAQCAtNzE5LDcgKzc0Niw3IEBACiAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ1wwJykKICAgICAgICAgICAgIHNlbGYtPnN0YXRlID0gU1RBUlRfUkVDT1JEOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChlcnJvcl9vYmosICJuZXctbGluZSBjaGFyYWN0ZXIgc2VlbiBpbiB1bnF1b3RlZCBmaWVsZCAtIGRvIHlvdSBuZWVkIHRvIG9wZW4gdGhlIGZpbGUgaW4gdW5pdmVyc2FsLW5ld2xpbmUgbW9kZT8iKTsKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChfY3N2c3RhdGVfZ2xvYmFsLT5lcnJvcl9vYmosICJuZXctbGluZSBjaGFyYWN0ZXIgc2VlbiBpbiB1bnF1b3RlZCBmaWVsZCAtIGRvIHlvdSBuZWVkIHRvIG9wZW4gdGhlIGZpbGUgaW4gdW5pdmVyc2FsLW5ld2xpbmUgbW9kZT8iKTsKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTc0NCwxMCArNzcxLDEyIEBACiBzdGF0aWMgUHlPYmplY3QgKgogUmVhZGVyX2l0ZXJuZXh0KFJlYWRlck9iaiAqc2VsZikKIHsKLSAgICBQeU9iamVjdCAqbGluZW9iajsKICAgICBQeU9iamVjdCAqZmllbGRzID0gTlVMTDsKLSAgICBQeV9VTklDT0RFICpsaW5lLCBjOwotICAgIFB5X3NzaXplX3QgbGluZWxlbjsKKyAgICBQeV9VQ1M0IGM7CisgICAgUHlfc3NpemVfdCBwb3MsIGxpbmVsZW47CisgICAgdW5zaWduZWQgaW50IGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKKyAgICBQeU9iamVjdCAqbGluZW9iajsKIAogICAgIGlmIChwYXJzZV9yZXNldChzZWxmKSA8IDApCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNzU2LDEyICs3ODUsMTIgQEAKICAgICAgICAgaWYgKGxpbmVvYmogPT0gTlVMTCkgewogICAgICAgICAgICAgLyogRW5kIG9mIGlucHV0IE9SIGV4Y2VwdGlvbiAqLwogICAgICAgICAgICAgaWYgKCFQeUVycl9PY2N1cnJlZCgpICYmIHNlbGYtPmZpZWxkX2xlbiAhPSAwKQotICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChlcnJvcl9vYmosCisgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KF9jc3ZzdGF0ZV9nbG9iYWwtPmVycm9yX29iaiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5ld2xpbmUgaW5zaWRlIHN0cmluZyIpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sobGluZW9iaikpIHsKLSAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChlcnJvcl9vYmosCisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoX2NzdnN0YXRlX2dsb2JhbC0+ZXJyb3Jfb2JqLAogICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVyYXRvciBzaG91bGQgcmV0dXJuIHN0cmluZ3MsICIKICAgICAgICAgICAgICAgICAgICAgICAgICAibm90ICUuMjAwcyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIihkaWQgeW91IG9wZW4gdGhlIGZpbGUgaW4gdGV4dCBtb2RlPykiLApAQCAtNzcxLDE3ICs4MDAsMTUgQEAKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgICAgICsrc2VsZi0+bGluZV9udW07Ci0gICAgICAgIGxpbmUgPSBQeVVuaWNvZGVfQXNVbmljb2RlKGxpbmVvYmopOwotICAgICAgICBsaW5lbGVuID0gUHlVbmljb2RlX0dldFNpemUobGluZW9iaik7Ci0gICAgICAgIGlmIChsaW5lID09IE5VTEwgfHwgbGluZWxlbiA8IDApIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihsaW5lb2JqKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChsaW5lb2JqKTsKKyAgICAgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKGxpbmVvYmopOworICAgICAgICBwb3MgPSAwOworICAgICAgICBsaW5lbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgobGluZW9iaik7CiAgICAgICAgIHdoaWxlIChsaW5lbGVuLS0pIHsKLSAgICAgICAgICAgIGMgPSAqbGluZSsrOworICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIHBvcyk7CiAgICAgICAgICAgICBpZiAoYyA9PSAnXDAnKSB7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGxpbmVvYmopOwotICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChlcnJvcl9vYmosCisgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KF9jc3ZzdGF0ZV9nbG9iYWwtPmVycm9yX29iaiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpbmUgY29udGFpbnMgTlVMTCBieXRlIik7CiAgICAgICAgICAgICAgICAgZ290byBlcnI7CiAgICAgICAgICAgICB9CkBAIC03ODksNiArODE2LDcgQEAKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYobGluZW9iaik7CiAgICAgICAgICAgICAgICAgZ290byBlcnI7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBwb3MrKzsKICAgICAgICAgfQogICAgICAgICBQeV9ERUNSRUYobGluZW9iaik7CiAgICAgICAgIGlmIChwYXJzZV9wcm9jZXNzX2NoYXIoc2VsZiwgMCkgPCAwKQpAQCAtOTQ1LDEzICs5NzMsMTMgQEAKICAqIHJlY29yZCBsZW5ndGguCiAgKi8KIHN0YXRpYyBQeV9zc2l6ZV90Ci1qb2luX2FwcGVuZF9kYXRhKFdyaXRlck9iaiAqc2VsZiwgUHlfVU5JQ09ERSAqZmllbGQsIGludCBxdW90ZV9lbXB0eSwKLSAgICAgICAgICAgICAgICAgaW50ICpxdW90ZWQsIGludCBjb3B5X3BoYXNlKQoram9pbl9hcHBlbmRfZGF0YShXcml0ZXJPYmogKnNlbGYsIHVuc2lnbmVkIGludCBmaWVsZF9raW5kLCB2b2lkICpmaWVsZF9kYXRhLAorICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGZpZWxkX2xlbiwgaW50IHF1b3RlX2VtcHR5LCBpbnQgKnF1b3RlZCwKKyAgICAgICAgICAgICAgICAgaW50IGNvcHlfcGhhc2UpCiB7CiAgICAgRGlhbGVjdE9iaiAqZGlhbGVjdCA9IHNlbGYtPmRpYWxlY3Q7CiAgICAgaW50IGk7CiAgICAgUHlfc3NpemVfdCByZWNfbGVuOwotICAgIFB5X1VOSUNPREUgKmxpbmV0ZXJtOwogCiAjZGVmaW5lIEFERENIKGMpIFwKICAgICBkbyB7XApAQCAtOTYwLDEwICs5ODgsNiBAQAogICAgICAgICByZWNfbGVuKys7XAogICAgIH0gd2hpbGUoMCkKIAotICAgIGxpbmV0ZXJtID0gUHlVbmljb2RlX0FzVW5pY29kZShkaWFsZWN0LT5saW5ldGVybWluYXRvcik7Ci0gICAgaWYgKGxpbmV0ZXJtID09IE5VTEwpCi0gICAgICAgIHJldHVybiAtMTsKLQogICAgIHJlY19sZW4gPSBzZWxmLT5yZWNfbGVuOwogCiAgICAgLyogSWYgdGhpcyBpcyBub3QgdGhlIGZpcnN0IGZpZWxkIHdlIG5lZWQgYSBmaWVsZCBzZXBhcmF0b3IgKi8KQEAgLTk3NiwxNyArMTAwMCwxNiBAQAogCiAgICAgLyogQ29weS9jb3VudCBmaWVsZCBkYXRhICovCiAgICAgLyogSWYgZmllbGQgaXMgbnVsbCBqdXN0IHBhc3Mgb3ZlciAqLwotICAgIGZvciAoaSA9IDA7IGZpZWxkOyBpKyspIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjID0gZmllbGRbaV07CisgICAgZm9yIChpID0gMDsgZmllbGRfZGF0YSAmJiAoaSA8IGZpZWxkX2xlbik7IGkrKykgeworICAgICAgICBQeV9VQ1M0IGMgPSBQeVVuaWNvZGVfUkVBRChmaWVsZF9raW5kLCBmaWVsZF9kYXRhLCBpKTsKICAgICAgICAgaW50IHdhbnRfZXNjYXBlID0gMDsKIAotICAgICAgICBpZiAoYyA9PSAnXDAnKQotICAgICAgICAgICAgYnJlYWs7Ci0KICAgICAgICAgaWYgKGMgPT0gZGlhbGVjdC0+ZGVsaW1pdGVyIHx8CiAgICAgICAgICAgICBjID09IGRpYWxlY3QtPmVzY2FwZWNoYXIgfHwKICAgICAgICAgICAgIGMgPT0gZGlhbGVjdC0+cXVvdGVjaGFyICB8fAotICAgICAgICAgICAgUHlfVU5JQ09ERV9zdHJjaHIobGluZXRlcm0sIGMpKSB7CisgICAgICAgICAgICBQeVVuaWNvZGVfRmluZENoYXIoCisgICAgICAgICAgICAgICAgZGlhbGVjdC0+bGluZXRlcm1pbmF0b3IsIGMsIDAsCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoZGlhbGVjdC0+bGluZXRlcm1pbmF0b3IpLCAxKSA+PSAwKSB7CiAgICAgICAgICAgICBpZiAoZGlhbGVjdC0+cXVvdGluZyA9PSBRVU9URV9OT05FKQogICAgICAgICAgICAgICAgIHdhbnRfZXNjYXBlID0gMTsKICAgICAgICAgICAgIGVsc2UgewpAQCAtMTAwMSw3ICsxMDI0LDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICh3YW50X2VzY2FwZSkgewogICAgICAgICAgICAgICAgIGlmICghZGlhbGVjdC0+ZXNjYXBlY2hhcikgewotICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoZXJyb3Jfb2JqLAorICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoX2NzdnN0YXRlX2dsb2JhbC0+ZXJyb3Jfb2JqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5lZWQgdG8gZXNjYXBlLCBidXQgbm8gZXNjYXBlY2hhciBzZXQiKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgICAgIH0KQEAgLTEwMTcsNyArMTA0MCw3IEBACiAgICAgICovCiAgICAgaWYgKGkgPT0gMCAmJiBxdW90ZV9lbXB0eSkgewogICAgICAgICBpZiAoZGlhbGVjdC0+cXVvdGluZyA9PSBRVU9URV9OT05FKSB7Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoZXJyb3Jfb2JqLAorICAgICAgICAgICAgUHlFcnJfRm9ybWF0KF9jc3ZzdGF0ZV9nbG9iYWwtPmVycm9yX29iaiwKICAgICAgICAgICAgICAgICAic2luZ2xlIGVtcHR5IGZpZWxkIHJlY29yZCBtdXN0IGJlIHF1b3RlZCIpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CkBAIC0xMDQ5LDE0ICsxMDcyLDEzIEBACiAgICAgICAgICAgICBzZWxmLT5yZWNfc2l6ZSA9IChyZWNfbGVuIC8gTUVNX0lOQ1IgKyAxKSAqIE1FTV9JTkNSOwogICAgICAgICAgICAgaWYgKHNlbGYtPnJlYyAhPSBOVUxMKQogICAgICAgICAgICAgICAgIFB5TWVtX0ZyZWUoc2VsZi0+cmVjKTsKLSAgICAgICAgICAgIHNlbGYtPnJlYyA9IFB5TWVtX05ldyhQeV9VTklDT0RFLCBzZWxmLT5yZWNfc2l6ZSk7CisgICAgICAgICAgICBzZWxmLT5yZWMgPSBQeU1lbV9OZXcoUHlfVUNTNCwgc2VsZi0+cmVjX3NpemUpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgUHlfVU5JQ09ERSogb2xkX3JlYyA9IHNlbGYtPnJlYzsKKyAgICAgICAgICAgIFB5X1VDUzQqIG9sZF9yZWMgPSBzZWxmLT5yZWM7CiAKICAgICAgICAgICAgIHNlbGYtPnJlY19zaXplID0gKHJlY19sZW4gLyBNRU1fSU5DUiArIDEpICogTUVNX0lOQ1I7Ci0gICAgICAgICAgICBzZWxmLT5yZWMgPSBQeU1lbV9SZXNpemUoc2VsZi0+cmVjLCBQeV9VTklDT0RFLAotICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPnJlY19zaXplKTsKKyAgICAgICAgICAgIHNlbGYtPnJlYyA9IFB5TWVtX1Jlc2l6ZShvbGRfcmVjLCBQeV9VQ1M0LCBzZWxmLT5yZWNfc2l6ZSk7CiAgICAgICAgICAgICBpZiAoc2VsZi0+cmVjID09IE5VTEwpCiAgICAgICAgICAgICAgICAgUHlNZW1fRnJlZShvbGRfcmVjKTsKICAgICAgICAgfQpAQCAtMTA2OSwxMSArMTA5MSwyMCBAQAogfQogCiBzdGF0aWMgaW50Ci1qb2luX2FwcGVuZChXcml0ZXJPYmogKnNlbGYsIFB5X1VOSUNPREUgKmZpZWxkLCBpbnQgKnF1b3RlZCwgaW50IHF1b3RlX2VtcHR5KQoram9pbl9hcHBlbmQoV3JpdGVyT2JqICpzZWxmLCBQeU9iamVjdCAqZmllbGQsIGludCAqcXVvdGVkLCBpbnQgcXVvdGVfZW1wdHkpCiB7CisgICAgdW5zaWduZWQgaW50IGZpZWxkX2tpbmQgPSAtMTsKKyAgICB2b2lkICpmaWVsZF9kYXRhID0gTlVMTDsKKyAgICBQeV9zc2l6ZV90IGZpZWxkX2xlbiA9IDA7CiAgICAgUHlfc3NpemVfdCByZWNfbGVuOwogCi0gICAgcmVjX2xlbiA9IGpvaW5fYXBwZW5kX2RhdGEoc2VsZiwgZmllbGQsIHF1b3RlX2VtcHR5LCBxdW90ZWQsIDApOworICAgIGlmIChmaWVsZCAhPSBOVUxMKSB7CisgICAgICAgIGZpZWxkX2tpbmQgPSBQeVVuaWNvZGVfS0lORChmaWVsZCk7CisgICAgICAgIGZpZWxkX2RhdGEgPSBQeVVuaWNvZGVfREFUQShmaWVsZCk7CisgICAgICAgIGZpZWxkX2xlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGZpZWxkKTsKKyAgICB9CisgICAgcmVjX2xlbiA9IGpvaW5fYXBwZW5kX2RhdGEoc2VsZiwgZmllbGRfa2luZCwgZmllbGRfZGF0YSwgZmllbGRfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlX2VtcHR5LCBxdW90ZWQsIDApOwogICAgIGlmIChyZWNfbGVuIDwgMCkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEwODEsNyArMTExMiw4IEBACiAgICAgaWYgKCFqb2luX2NoZWNrX3JlY19zaXplKHNlbGYsIHJlY19sZW4pKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHNlbGYtPnJlY19sZW4gPSBqb2luX2FwcGVuZF9kYXRhKHNlbGYsIGZpZWxkLCBxdW90ZV9lbXB0eSwgcXVvdGVkLCAxKTsKKyAgICBzZWxmLT5yZWNfbGVuID0gam9pbl9hcHBlbmRfZGF0YShzZWxmLCBmaWVsZF9raW5kLCBmaWVsZF9kYXRhLCBmaWVsZF9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVfZW1wdHksIHF1b3RlZCwgMSk7CiAgICAgc2VsZi0+bnVtX2ZpZWxkcysrOwogCiAgICAgcmV0dXJuIDE7CkBAIC0xMDkwLDEwICsxMTIyLDExIEBACiBzdGF0aWMgaW50CiBqb2luX2FwcGVuZF9saW5ldGVybWluYXRvcihXcml0ZXJPYmogKnNlbGYpCiB7Ci0gICAgUHlfc3NpemVfdCB0ZXJtaW5hdG9yX2xlbjsKLSAgICBQeV9VTklDT0RFICp0ZXJtaW5hdG9yOworICAgIFB5X3NzaXplX3QgdGVybWluYXRvcl9sZW4sIGk7CisgICAgdW5zaWduZWQgaW50IHRlcm1fa2luZDsKKyAgICB2b2lkICp0ZXJtX2RhdGE7CiAKLSAgICB0ZXJtaW5hdG9yX2xlbiA9IFB5VW5pY29kZV9HZXRTaXplKHNlbGYtPmRpYWxlY3QtPmxpbmV0ZXJtaW5hdG9yKTsKKyAgICB0ZXJtaW5hdG9yX2xlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYtPmRpYWxlY3QtPmxpbmV0ZXJtaW5hdG9yKTsKICAgICBpZiAodGVybWluYXRvcl9sZW4gPT0gLTEpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xMTAxLDExICsxMTM0LDEwIEBACiAgICAgaWYgKCFqb2luX2NoZWNrX3JlY19zaXplKHNlbGYsIHNlbGYtPnJlY19sZW4gKyB0ZXJtaW5hdG9yX2xlbikpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgdGVybWluYXRvciA9IFB5VW5pY29kZV9Bc1VuaWNvZGUoc2VsZi0+ZGlhbGVjdC0+bGluZXRlcm1pbmF0b3IpOwotICAgIGlmICh0ZXJtaW5hdG9yID09IE5VTEwpCi0gICAgICAgIHJldHVybiAwOwotICAgIG1lbW1vdmUoc2VsZi0+cmVjICsgc2VsZi0+cmVjX2xlbiwgdGVybWluYXRvciwKLSAgICAgICAgc2l6ZW9mKFB5X1VOSUNPREUpKnRlcm1pbmF0b3JfbGVuKTsKKyAgICB0ZXJtX2tpbmQgPSBQeVVuaWNvZGVfS0lORChzZWxmLT5kaWFsZWN0LT5saW5ldGVybWluYXRvcik7CisgICAgdGVybV9kYXRhID0gUHlVbmljb2RlX0RBVEEoc2VsZi0+ZGlhbGVjdC0+bGluZXRlcm1pbmF0b3IpOworICAgIGZvciAoaSA9IDA7IGkgPCB0ZXJtaW5hdG9yX2xlbjsgaSsrKQorICAgICAgICBzZWxmLT5yZWNbc2VsZi0+cmVjX2xlbiArIGldID0gUHlVbmljb2RlX1JFQUQodGVybV9raW5kLCB0ZXJtX2RhdGEsIGkpOwogICAgIHNlbGYtPnJlY19sZW4gKz0gdGVybWluYXRvcl9sZW47CiAKICAgICByZXR1cm4gMTsKQEAgLTExMjIsOSArMTE1NCwxMCBAQAogewogICAgIERpYWxlY3RPYmogKmRpYWxlY3QgPSBzZWxmLT5kaWFsZWN0OwogICAgIFB5X3NzaXplX3QgbGVuLCBpOworICAgIFB5T2JqZWN0ICpsaW5lLCAqcmVzdWx0OwogCiAgICAgaWYgKCFQeVNlcXVlbmNlX0NoZWNrKHNlcSkpCi0gICAgICAgIHJldHVybiBQeUVycl9Gb3JtYXQoZXJyb3Jfb2JqLCAic2VxdWVuY2UgZXhwZWN0ZWQiKTsKKyAgICAgICAgcmV0dXJuIFB5RXJyX0Zvcm1hdChfY3N2c3RhdGVfZ2xvYmFsLT5lcnJvcl9vYmosICJzZXF1ZW5jZSBleHBlY3RlZCIpOwogCiAgICAgbGVuID0gUHlTZXF1ZW5jZV9MZW5ndGgoc2VxKTsKICAgICBpZiAobGVuIDwgMCkKQEAgLTExNTUsMTQgKzExODgsMTEgQEAKICAgICAgICAgfQogCiAgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soZmllbGQpKSB7Ci0gICAgICAgICAgICBhcHBlbmRfb2sgPSBqb2luX2FwcGVuZChzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUoZmllbGQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnF1b3RlZCwgbGVuID09IDEpOworICAgICAgICAgICAgYXBwZW5kX29rID0gam9pbl9hcHBlbmQoc2VsZiwgZmllbGQsICZxdW90ZWQsIGxlbiA9PSAxKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRihmaWVsZCk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoZmllbGQgPT0gUHlfTm9uZSkgewotICAgICAgICAgICAgYXBwZW5kX29rID0gam9pbl9hcHBlbmQoc2VsZiwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICZxdW90ZWQsIGxlbiA9PSAxKTsKKyAgICAgICAgICAgIGFwcGVuZF9vayA9IGpvaW5fYXBwZW5kKHNlbGYsIE5VTEwsICZxdW90ZWQsIGxlbiA9PSAxKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRihmaWVsZCk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CkBAIC0xMTcyLDkgKzEyMDIsNyBAQAogICAgICAgICAgICAgUHlfREVDUkVGKGZpZWxkKTsKICAgICAgICAgICAgIGlmIChzdHIgPT0gTlVMTCkKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIGFwcGVuZF9vayA9IGpvaW5fYXBwZW5kKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdHIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnF1b3RlZCwgbGVuID09IDEpOworICAgICAgICAgICAgYXBwZW5kX29rID0gam9pbl9hcHBlbmQoc2VsZiwgc3RyLCAmcXVvdGVkLCBsZW4gPT0gMSk7CiAgICAgICAgICAgICBQeV9ERUNSRUYoc3RyKTsKICAgICAgICAgfQogICAgICAgICBpZiAoIWFwcGVuZF9vaykKQEAgLTExODYsOSArMTIxNCwxMyBAQAogICAgIGlmICgham9pbl9hcHBlbmRfbGluZXRlcm1pbmF0b3Ioc2VsZikpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmV0dXJuIFB5T2JqZWN0X0NhbGxGdW5jdGlvbihzZWxmLT53cml0ZWxpbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKHUjKSIsIHNlbGYtPnJlYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPnJlY19sZW4pOworICAgIGxpbmUgPSBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKFB5VW5pY29kZV80QllURV9LSU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkICopIHNlbGYtPnJlYywgc2VsZi0+cmVjX2xlbik7CisgICAgaWYgKGxpbmUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhzZWxmLT53cml0ZWxpbmUsIGxpbmUsIE5VTEwpOworICAgIFB5X0RFQ1JFRihsaW5lKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBQeURvY19TVFJWQVIoY3N2X3dyaXRlcm93c19kb2MsCkBAIC0xMzEyLDYgKzEzNDQsNyBAQAogewogICAgIFB5T2JqZWN0ICogb3V0cHV0X2ZpbGUsICogZGlhbGVjdCA9IE5VTEw7CiAgICAgV3JpdGVyT2JqICogc2VsZiA9IFB5T2JqZWN0X0dDX05ldyhXcml0ZXJPYmosICZXcml0ZXJfVHlwZSk7CisgICAgX1B5X0lERU5USUZJRVIod3JpdGUpOwogCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTEzMjgsNyArMTM2MSw3IEBACiAgICAgICAgIFB5X0RFQ1JFRihzZWxmKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHNlbGYtPndyaXRlbGluZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob3V0cHV0X2ZpbGUsICJ3cml0ZSIpOworICAgIHNlbGYtPndyaXRlbGluZSA9IF9QeU9iamVjdF9HZXRBdHRySWQob3V0cHV0X2ZpbGUsICZQeUlkX3dyaXRlKTsKICAgICBpZiAoc2VsZi0+d3JpdGVsaW5lID09IE5VTEwgfHwgIVB5Q2FsbGFibGVfQ2hlY2soc2VsZi0+d3JpdGVsaW5lKSkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50IDEgbXVzdCBoYXZlIGEgXCJ3cml0ZVwiIG1ldGhvZCIpOwpAQCAtMTM1MCw3ICsxMzgzLDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBjc3ZfbGlzdF9kaWFsZWN0cyhQeU9iamVjdCAqbW9kdWxlLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gUHlEaWN0X0tleXMoZGlhbGVjdHMpOworICAgIHJldHVybiBQeURpY3RfS2V5cyhfY3N2c3RhdGVfZ2xvYmFsLT5kaWFsZWN0cyk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0xMzY5LDcgKzE0MDIsNyBAQAogICAgIGRpYWxlY3QgPSBfY2FsbF9kaWFsZWN0KGRpYWxlY3Rfb2JqLCBrd2FyZ3MpOwogICAgIGlmIChkaWFsZWN0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmIChQeURpY3RfU2V0SXRlbShkaWFsZWN0cywgbmFtZV9vYmosIGRpYWxlY3QpIDwgMCkgeworICAgIGlmIChQeURpY3RfU2V0SXRlbShfY3N2c3RhdGVfZ2xvYmFsLT5kaWFsZWN0cywgbmFtZV9vYmosIGRpYWxlY3QpIDwgMCkgewogICAgICAgICBQeV9ERUNSRUYoZGlhbGVjdCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTEzODEsOCArMTQxNCw4IEBACiBzdGF0aWMgUHlPYmplY3QgKgogY3N2X3VucmVnaXN0ZXJfZGlhbGVjdChQeU9iamVjdCAqbW9kdWxlLCBQeU9iamVjdCAqbmFtZV9vYmopCiB7Ci0gICAgaWYgKFB5RGljdF9EZWxJdGVtKGRpYWxlY3RzLCBuYW1lX29iaikgPCAwKQotICAgICAgICByZXR1cm4gUHlFcnJfRm9ybWF0KGVycm9yX29iaiwgInVua25vd24gZGlhbGVjdCIpOworICAgIGlmIChQeURpY3RfRGVsSXRlbShfY3N2c3RhdGVfZ2xvYmFsLT5kaWFsZWN0cywgbmFtZV9vYmopIDwgMCkKKyAgICAgICAgcmV0dXJuIFB5RXJyX0Zvcm1hdChfY3N2c3RhdGVfZ2xvYmFsLT5lcnJvcl9vYmosICJ1bmtub3duIGRpYWxlY3QiKTsKICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgcmV0dXJuIFB5X05vbmU7CiB9CkBAIC0xMzk3LDcgKzE0MzAsNyBAQAogY3N2X2ZpZWxkX3NpemVfbGltaXQoUHlPYmplY3QgKm1vZHVsZSwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlPYmplY3QgKm5ld19saW1pdCA9IE5VTEw7Ci0gICAgbG9uZyBvbGRfbGltaXQgPSBmaWVsZF9saW1pdDsKKyAgICBsb25nIG9sZF9saW1pdCA9IF9jc3ZzdGF0ZV9nbG9iYWwtPmZpZWxkX2xpbWl0OwogCiAgICAgaWYgKCFQeUFyZ19VbnBhY2tUdXBsZShhcmdzLCAiZmllbGRfc2l6ZV9saW1pdCIsIDAsIDEsICZuZXdfbGltaXQpKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTE0MDcsOSArMTQ0MCw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgImxpbWl0IG11c3QgYmUgYW4gaW50ZWdlciIpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KLSAgICAgICAgZmllbGRfbGltaXQgPSBQeUxvbmdfQXNMb25nKG5ld19saW1pdCk7Ci0gICAgICAgIGlmIChmaWVsZF9saW1pdCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7Ci0gICAgICAgICAgICBmaWVsZF9saW1pdCA9IG9sZF9saW1pdDsKKyAgICAgICAgX2NzdnN0YXRlX2dsb2JhbC0+ZmllbGRfbGltaXQgPSBQeUxvbmdfQXNMb25nKG5ld19saW1pdCk7CisgICAgICAgIGlmIChfY3N2c3RhdGVfZ2xvYmFsLT5maWVsZF9saW1pdCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgICAgICBfY3N2c3RhdGVfZ2xvYmFsLT5maWVsZF9saW1pdCA9IG9sZF9saW1pdDsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgfQpAQCAtMTU0OCwxNyArMTU4MSwxNiBAQAogICAgIHsgTlVMTCwgTlVMTCB9CiB9OwogCi0KIHN0YXRpYyBzdHJ1Y3QgUHlNb2R1bGVEZWYgX2Nzdm1vZHVsZSA9IHsKICAgICBQeU1vZHVsZURlZl9IRUFEX0lOSVQsCiAgICAgIl9jc3YiLAogICAgIGNzdl9tb2R1bGVfZG9jLAotICAgIC0xLAorICAgIHNpemVvZihfY3N2c3RhdGUpLAogICAgIGNzdl9tZXRob2RzLAogICAgIE5VTEwsCi0gICAgTlVMTCwKLSAgICBOVUxMLAotICAgIE5VTEwKKyAgICBfY3N2X3RyYXZlcnNlLAorICAgIF9jc3ZfY2xlYXIsCisgICAgX2Nzdl9mcmVlCiB9OwogCiBQeU1PRElOSVRfRlVOQwpAQCAtMTU4NiwxMSArMTYxOCwxNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNT0RVTEVfVkVSU0lPTikgPT0gLTEpCiAgICAgICAgIHJldHVybiBOVUxMOwogCisgICAgLyogU2V0IHRoZSBmaWVsZCBsaW1pdCAqLworICAgIF9jc3ZzdGF0ZShtb2R1bGUpLT5maWVsZF9saW1pdCA9IDEyOCAqIDEwMjQ7CisgICAgLyogRG8gSSBzdGlsbCBuZWVkIHRvIGFkZCB0aGlzIHZhciB0byB0aGUgTW9kdWxlIERpY3Q/ICovCisKICAgICAvKiBBZGQgX2RpYWxlY3RzIGRpY3Rpb25hcnkgKi8KLSAgICBkaWFsZWN0cyA9IFB5RGljdF9OZXcoKTsKLSAgICBpZiAoZGlhbGVjdHMgPT0gTlVMTCkKKyAgICBfY3N2c3RhdGUobW9kdWxlKS0+ZGlhbGVjdHMgPSBQeURpY3RfTmV3KCk7CisgICAgaWYgKF9jc3ZzdGF0ZShtb2R1bGUpLT5kaWFsZWN0cyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG1vZHVsZSwgIl9kaWFsZWN0cyIsIGRpYWxlY3RzKSkKKyAgICBQeV9JTkNSRUYoX2NzdnN0YXRlKG1vZHVsZSktPmRpYWxlY3RzKTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG1vZHVsZSwgIl9kaWFsZWN0cyIsIF9jc3ZzdGF0ZShtb2R1bGUpLT5kaWFsZWN0cykpCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgLyogQWRkIHF1b3RlIHN0eWxlcyBpbnRvIGRpY3Rpb25hcnkgKi8KQEAgLTE2MDYsOSArMTY0MywxMCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIC8qIEFkZCB0aGUgQ1NWIGV4Y2VwdGlvbiBvYmplY3QgdG8gdGhlIG1vZHVsZS4gKi8KLSAgICBlcnJvcl9vYmogPSBQeUVycl9OZXdFeGNlcHRpb24oIl9jc3YuRXJyb3IiLCBOVUxMLCBOVUxMKTsKLSAgICBpZiAoZXJyb3Jfb2JqID09IE5VTEwpCisgICAgX2NzdnN0YXRlKG1vZHVsZSktPmVycm9yX29iaiA9IFB5RXJyX05ld0V4Y2VwdGlvbigiX2Nzdi5FcnJvciIsIE5VTEwsIE5VTEwpOworICAgIGlmIChfY3N2c3RhdGUobW9kdWxlKS0+ZXJyb3Jfb2JqID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtb2R1bGUsICJFcnJvciIsIGVycm9yX29iaik7CisgICAgUHlfSU5DUkVGKF9jc3ZzdGF0ZShtb2R1bGUpLT5lcnJvcl9vYmopOworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtb2R1bGUsICJFcnJvciIsIF9jc3ZzdGF0ZShtb2R1bGUpLT5lcnJvcl9vYmopOwogICAgIHJldHVybiBtb2R1bGU7CiB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvX2N0eXBlcy5jIGIvTW9kdWxlcy9fY3R5cGVzL19jdHlwZXMuYwppbmRleCA4YmU1OTU4Li43NTE2MzA2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvX2N0eXBlcy5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9fY3R5cGVzLmMKQEAgLTExNDIsNiArMTE0Miw4IEBACiBXQ2hhckFycmF5X3NldF92YWx1ZShDRGF0YU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnZhbHVlKQogewogICAgIFB5X3NzaXplX3QgcmVzdWx0ID0gMDsKKyAgICBQeV9VTklDT0RFICp3c3RyOworICAgIFB5X3NzaXplX3QgbGVuOwogCiAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKQEAgLTExNTUsNyArMTE1NywxMSBAQAogICAgICAgICByZXR1cm4gLTE7CiAgICAgfSBlbHNlCiAgICAgICAgIFB5X0lOQ1JFRih2YWx1ZSk7Ci0gICAgaWYgKCh1bnNpZ25lZClQeVVuaWNvZGVfR0VUX1NJWkUodmFsdWUpID4gc2VsZi0+Yl9zaXplL3NpemVvZih3Y2hhcl90KSkgeworCisgICAgd3N0ciA9IFB5VW5pY29kZV9Bc1VuaWNvZGVBbmRTaXplKHZhbHVlLCAmbGVuKTsKKyAgICBpZiAod3N0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKCh1bnNpZ25lZClsZW4gPiBzZWxmLT5iX3NpemUvc2l6ZW9mKHdjaGFyX3QpKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZyB0b28gbG9uZyIpOwogICAgICAgICByZXN1bHQgPSAtMTsKQEAgLTE4NDMsMTEgKzE4NDksOSBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhwcm90bykpIHsKLSAgICAgICAgUHlPYmplY3QgKnYgPSBfUHlVbmljb2RlX0FzRGVmYXVsdEVuY29kZWRTdHJpbmcocHJvdG8sIE5VTEwpOwotICAgICAgICBpZiAoIXYpCisgICAgICAgIHByb3RvX3N0ciA9IFB5VW5pY29kZV9Bc1VURjhBbmRTaXplKHByb3RvLCAmcHJvdG9fbGVuKTsKKyAgICAgICAgaWYgKCFwcm90b19zdHIpCiAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICBwcm90b19zdHIgPSBQeUJ5dGVzX0FTX1NUUklORyh2KTsKLSAgICAgICAgcHJvdG9fbGVuID0gUHlCeXRlc19HRVRfU0laRSh2KTsKICAgICB9IGVsc2UgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgImNsYXNzIG11c3QgZGVmaW5lIGEgJ190eXBlXycgc3RyaW5nIGF0dHJpYnV0ZSIpOwpAQCAtMzY4MSw4ICszNjg1LDEwIEBACiAgICAgICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKHR1cCwgaW5kZXgsIHYpOwogICAgICAgICAgICAgaW5kZXgrKzsKICAgICAgICAgfSBlbHNlIGlmIChiaXQgJiBvdXRtYXNrKSB7CisgICAgICAgICAgICBfUHlfSURFTlRJRklFUihfX2N0eXBlc19mcm9tX291dHBhcmFtX18pOworCiAgICAgICAgICAgICB2ID0gUHlUdXBsZV9HRVRfSVRFTShjYWxsYXJncywgaSk7Ci0gICAgICAgICAgICB2ID0gUHlPYmplY3RfQ2FsbE1ldGhvZCh2LCAiX19jdHlwZXNfZnJvbV9vdXRwYXJhbV9fIiwgTlVMTCk7CisgICAgICAgICAgICB2ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCh2LCAmUHlJZF9fX2N0eXBlc19mcm9tX291dHBhcmFtX18sIE5VTEwpOwogICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCB8fCBudW1yZXR2YWxzID09IDEpIHsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoY2FsbGFyZ3MpOwogICAgICAgICAgICAgICAgIHJldHVybiB2OwpAQCAtNDI0OSw3ICs0MjU1LDcgQEAKICAgICAgICAgICAgIHdjaGFyX3QgKmRlc3Q7CiAKICAgICAgICAgICAgIGlmIChzbGljZWxlbiA8PSAwKQotICAgICAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9OZXcoMCwgMCk7CiAgICAgICAgICAgICBpZiAoc3RlcCA9PSAxKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIocHRyICsgc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2xpY2VsZW4pOwpAQCAtNDU5OSwzOCArNDYwNSwyMCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIFNpbXBsZV9yZXByKENEYXRhT2JqZWN0ICpzZWxmKQogewotICAgIFB5T2JqZWN0ICp2YWwsICpuYW1lLCAqYXJncywgKnJlc3VsdDsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmZvcm1hdDsKKyAgICBQeU9iamVjdCAqdmFsLCAqcmVzdWx0OwogCiAgICAgaWYgKFB5X1RZUEUoc2VsZiktPnRwX2Jhc2UgIT0gJlNpbXBsZV9UeXBlKSB7CiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiPCVzIG9iamVjdCBhdCAlcD4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9UWVBFKHNlbGYpLT50cF9uYW1lLCBzZWxmKTsKICAgICB9CiAKLSAgICBpZiAoZm9ybWF0ID09IE5VTEwpIHsKLSAgICAgICAgZm9ybWF0ID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIiVzKCVyKSIpOwotICAgICAgICBpZiAoZm9ybWF0ID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KICAgICB2YWwgPSBTaW1wbGVfZ2V0X3ZhbHVlKHNlbGYpOwogICAgIGlmICh2YWwgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBuYW1lID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoUHlfVFlQRShzZWxmKS0+dHBfbmFtZSk7Ci0gICAgaWYgKG5hbWUgPT0gTlVMTCkgewotICAgICAgICBQeV9ERUNSRUYodmFsKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgYXJncyA9IFB5VHVwbGVfUGFjaygyLCBuYW1lLCB2YWwpOwotICAgIFB5X0RFQ1JFRihuYW1lKTsKKyAgICByZXN1bHQgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJXMoJVIpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9UWVBFKHNlbGYpLT50cF9uYW1lLCB2YWwpOwogICAgIFB5X0RFQ1JFRih2YWwpOwotICAgIGlmIChhcmdzID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zvcm1hdChmb3JtYXQsIGFyZ3MpOwotICAgIFB5X0RFQ1JFRihhcmdzKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC00OTQyLDcgKzQ5MzAsNyBAQAogICAgICAgICAgICAgd2NoYXJfdCAqZGVzdDsKIAogICAgICAgICAgICAgaWYgKGxlbiA8PSAwKQotICAgICAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9OZXcoMCwgMCk7CiAgICAgICAgICAgICBpZiAoc3RlcCA9PSAxKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIocHRyICsgc3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9jYWxscHJvYy5jIGIvTW9kdWxlcy9fY3R5cGVzL2NhbGxwcm9jLmMKaW5kZXggMWYzYzFjMC4uZGQ0NDFmNSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2NhbGxwcm9jLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2NhbGxwcm9jLmMKQEAgLTY1OCwxMyArNjU4LDYgQEAKIAogI2lmZGVmIENUWVBFU19VTklDT0RFCiAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhvYmopKSB7Ci0jaWYgUHlfVU5JQ09ERV9TSVpFID09IFNJWkVPRl9XQ0hBUl9UCi0gICAgICAgIHBhLT5mZmlfdHlwZSA9ICZmZmlfdHlwZV9wb2ludGVyOwotICAgICAgICBwYS0+dmFsdWUucCA9IFB5VW5pY29kZV9BU19VTklDT0RFKG9iaik7Ci0gICAgICAgIFB5X0lOQ1JFRihvYmopOwotICAgICAgICBwYS0+a2VlcCA9IG9iajsKLSAgICAgICAgcmV0dXJuIDA7Ci0jZWxzZQogICAgICAgICBwYS0+ZmZpX3R5cGUgPSAmZmZpX3R5cGVfcG9pbnRlcjsKICAgICAgICAgcGEtPnZhbHVlLnAgPSBQeVVuaWNvZGVfQXNXaWRlQ2hhclN0cmluZyhvYmosIE5VTEwpOwogICAgICAgICBpZiAocGEtPnZhbHVlLnAgPT0gTlVMTCkKQEAgLTY3NSw3ICs2NjgsNiBAQAogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiAwOwotI2VuZGlmCiAgICAgfQogI2VuZGlmCiAKQEAgLTk1Miw5ICs5NDQsOSBAQAogICAgIGVsc2UgewogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICBQeVVuaWNvZGVfQXBwZW5kQW5kRGVsKCZzLCBQeVVuaWNvZGVfRnJvbVN0cmluZygiPz8/IikpOwotICAgICAgICBpZiAocyA9PSBOVUxMKQotICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICB9CisgICAgaWYgKHMgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKICAgICBQeUVycl9TZXRPYmplY3QoZXhjX2NsYXNzLCBzKTsKIGVycm9yOgogICAgIFB5X1hERUNSRUYodHApOwpAQCAtMTY5NSwxMyArMTY4NywxNSBAQAogICAgIFB5T2JqZWN0ICpzdGF0ZTsKICAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIFB5T2JqZWN0ICp0bXA7CisgICAgX1B5X0lERU5USUZJRVIoX19uZXdfXyk7CisgICAgX1B5X0lERU5USUZJRVIoX19zZXRzdGF0ZV9fKTsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT08iLCAmdHlwLCAmc3RhdGUpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHR5cCwgIl9fbmV3X18iLCAiTyIsIHR5cCk7CisgICAgcmVzdWx0ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCh0eXAsICZQeUlkX19fbmV3X18sICJPIiwgdHlwKTsKICAgICBpZiAocmVzdWx0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHRtcCA9IFB5T2JqZWN0X0NhbGxNZXRob2QocmVzdWx0LCAiX19zZXRzdGF0ZV9fIiwgIk8iLCBzdGF0ZSk7CisgICAgdG1wID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChyZXN1bHQsICZQeUlkX19fc2V0c3RhdGVfXywgIk8iLCBzdGF0ZSk7CiAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CiAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOwogICAgICAgICByZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9jZmllbGQuYyBiL01vZHVsZXMvX2N0eXBlcy9jZmllbGQuYwppbmRleCA0MDA1NDY1Li4xNGJjOTgxIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvY2ZpZWxkLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2NmaWVsZC5jCkBAIC05LDcgKzksNiBAQAogCiAjZGVmaW5lIENUWVBFU19DRklFTERfQ0FQU1VMRV9OQU1FX1BZTUVNICJfY3R5cGVzL2NmaWVsZC5jIHB5bWVtIgogCi0jaWYgUHlfVU5JQ09ERV9TSVpFICE9IFNJWkVPRl9XQ0hBUl9UCiBzdGF0aWMgdm9pZCBweW1lbV9kZXN0cnVjdG9yKFB5T2JqZWN0ICpwdHIpCiB7CiAgICAgdm9pZCAqcCA9IFB5Q2Fwc3VsZV9HZXRQb2ludGVyKHB0ciwgQ1RZUEVTX0NGSUVMRF9DQVBTVUxFX05BTUVfUFlNRU0pOwpAQCAtMTcsNyArMTYsNiBAQAogICAgICAgICBQeU1lbV9GcmVlKHApOwogICAgIH0KIH0KLSNlbmRpZgogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC01Miw3ICs1MCw3IEBACiB7CiAgICAgQ0ZpZWxkT2JqZWN0ICpzZWxmOwogICAgIFB5T2JqZWN0ICpwcm90bzsKLSAgICBQeV9zc2l6ZV90IHNpemUsIGFsaWduLCBsZW5ndGg7CisgICAgUHlfc3NpemVfdCBzaXplLCBhbGlnbjsKICAgICBTRVRGVU5DIHNldGZ1bmMgPSBOVUxMOwogICAgIEdFVEZVTkMgZ2V0ZnVuYyA9IE5VTEw7CiAgICAgU3RnRGljdE9iamVjdCAqZGljdDsKQEAgLTEwNiw3ICsxMDQsNiBAQAogICAgIH0KIAogICAgIHNpemUgPSBkaWN0LT5zaXplOwotICAgIGxlbmd0aCA9IGRpY3QtPmxlbmd0aDsKICAgICBwcm90byA9IGRlc2M7CiAKICAgICAvKiAgRmllbGQgZGVzY3JpcHRvcnMgZm9yICdjX2NoYXIgKiBuJyBhcmUgYmUgc2NwZWNpYWwgY2FzZWQgdG8KQEAgLTEyMTksMzcgKzEyMTYsMzAgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBVX2dldCh2b2lkICpwdHIsIFB5X3NzaXplX3Qgc2l6ZSkKIHsKLSAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIFB5X3NzaXplX3QgbGVuOwotICAgIFB5X1VOSUNPREUgKnA7CisgICAgd2NoYXJfdCAqcDsKIAogICAgIHNpemUgLz0gc2l6ZW9mKHdjaGFyX3QpOyAvKiB3ZSBjb3VudCBjaGFyYWN0ZXIgdW5pdHMgaGVyZSwgbm90IGJ5dGVzICovCiAKLSAgICByZXN1bHQgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKCh3Y2hhcl90ICopcHRyLCBzaXplKTsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgLyogV2UgbmVlZCAncmVzdWx0JyB0byBiZSBhYmxlIHRvIGNvdW50IHRoZSBjaGFyYWN0ZXJzIHdpdGggd2NzbGVuLAogICAgICAgIHNpbmNlIHB0ciBtYXkgbm90IGJlIE5VTCB0ZXJtaW5hdGVkLiAgSWYgdGhlIGxlbmd0aCBpcyBzbWFsbGVyIChpZgogICAgICAgIGl0IHdhcyBhY3R1YWxseSBOVUwgdGVybWluYXRlZCwgd2UgY29uc3RydWN0IGEgbmV3IG9uZSBhbmQgdGhyb3cKICAgICAgICBhd2F5IHRoZSByZXN1bHQuCiAgICAgKi8KICAgICAvKiBjaG9wIG9mZiBhdCB0aGUgZmlyc3QgTlVMIGNoYXJhY3RlciwgaWYgYW55LiAqLwotICAgIHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXN1bHQpOwotICAgIGZvciAobGVuID0gMDsgbGVuIDwgc2l6ZTsgKytsZW4pCisgICAgcCA9ICh3Y2hhcl90KilwdHI7CisgICAgZm9yIChsZW4gPSAwOyBsZW4gPCBzaXplOyArK2xlbikgewogICAgICAgICBpZiAoIXBbbGVuXSkKICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgaWYgKGxlbiA8IHNpemUpIHsKLSAgICAgICAgUHlPYmplY3QgKm9iID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcigod2NoYXJfdCAqKXB0ciwgbGVuKTsKLSAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgIHJldHVybiBvYjsKICAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKKworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKCh3Y2hhcl90ICopcHRyLCBsZW4pOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogVV9zZXQodm9pZCAqcHRyLCBQeU9iamVjdCAqdmFsdWUsIFB5X3NzaXplX3QgbGVuZ3RoKQogeworICAgIFB5X1VOSUNPREUgKndzdHI7CiAgICAgUHlfc3NpemVfdCBzaXplOwogCiAgICAgLyogSXQncyBlYXNpZXIgdG8gY2FsY3VsYXRlIGluIGNoYXJhY3RlcnMgdGhhbiBpbiBieXRlcyAqLwpAQCAtMTI2Miw3ICsxMjUyLDEwIEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0gZWxzZQogICAgICAgICBQeV9JTkNSRUYodmFsdWUpOwotICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX1NJWkUodmFsdWUpOworCisgICAgd3N0ciA9IFB5VW5pY29kZV9Bc1VuaWNvZGVBbmRTaXplKHZhbHVlLCAmc2l6ZSk7CisgICAgaWYgKHdzdHIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKHNpemUgPiBsZW5ndGgpIHsKICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAic3RyaW5nIHRvbyBsb25nICglemQsIG1heGltdW0gbGVuZ3RoICV6ZCkiLApAQCAtMTM4Miw2ICsxMzc1LDkgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBaX3NldCh2b2lkICpwdHIsIFB5T2JqZWN0ICp2YWx1ZSwgUHlfc3NpemVfdCBzaXplKQogeworICAgIFB5T2JqZWN0ICprZWVwOworICAgIHdjaGFyX3QgKmJ1ZmZlcjsKKwogICAgIGlmICh2YWx1ZSA9PSBQeV9Ob25lKSB7CiAgICAgICAgICood2NoYXJfdCAqKilwdHIgPSBOVUxMOwogICAgICAgICBQeV9JTkNSRUYodmFsdWUpOwpAQCAtMTQwMSwzNyArMTM5NywyMCBAQAogICAgICAgICAgICAgICAgICAgICAgInVuaWNvZGUgc3RyaW5nIG9yIGludGVnZXIgYWRkcmVzcyBleHBlY3RlZCBpbnN0ZWFkIG9mICVzIGluc3RhbmNlIiwKICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLT5vYl90eXBlLT50cF9uYW1lKTsKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfSBlbHNlCi0gICAgICAgIFB5X0lOQ1JFRih2YWx1ZSk7Ci0jaWYgUHlfVU5JQ09ERV9TSVpFID09IFNJWkVPRl9XQ0hBUl9UCi0gICAgLyogV2UgY2FuIGNvcHkgZGlyZWN0bHkuICBIbSwgYXJlIHVuaWNvZGUgb2JqZWN0cyBhbHdheXMgTlVMCi0gICAgICAgdGVybWluYXRlZCBpbiBQeXRob24sIGludGVybmFsbHk/Ci0gICAgICovCi0gICAgKih3Y2hhcl90ICoqKXB0ciA9ICh3Y2hhcl90ICopIFB5VW5pY29kZV9BU19VTklDT0RFKHZhbHVlKTsKLSAgICByZXR1cm4gdmFsdWU7Ci0jZWxzZQotICAgIHsKLSAgICAgICAgLyogV2UgbXVzdCBjcmVhdGUgYSB3Y2hhcl90KiBidWZmZXIgZnJvbSB0aGUgdW5pY29kZSBvYmplY3QsCi0gICAgICAgICAgIGFuZCBrZWVwIGl0IGFsaXZlICovCi0gICAgICAgIFB5T2JqZWN0ICprZWVwOwotICAgICAgICB3Y2hhcl90ICpidWZmZXI7Ci0KLSAgICAgICAgYnVmZmVyID0gUHlVbmljb2RlX0FzV2lkZUNoYXJTdHJpbmcodmFsdWUsIE5VTEwpOwotICAgICAgICBpZiAoIWJ1ZmZlcikgewotICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGtlZXAgPSBQeUNhcHN1bGVfTmV3KGJ1ZmZlciwgQ1RZUEVTX0NGSUVMRF9DQVBTVUxFX05BTUVfUFlNRU0sIHB5bWVtX2Rlc3RydWN0b3IpOwotICAgICAgICBpZiAoIWtlZXApIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7Ci0gICAgICAgICAgICBQeU1lbV9GcmVlKGJ1ZmZlcik7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICAqKHdjaGFyX3QgKiopcHRyID0gKHdjaGFyX3QgKilidWZmZXI7Ci0gICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7Ci0gICAgICAgIHJldHVybiBrZWVwOwogICAgIH0KLSNlbmRpZgorCisgICAgLyogV2UgbXVzdCBjcmVhdGUgYSB3Y2hhcl90KiBidWZmZXIgZnJvbSB0aGUgdW5pY29kZSBvYmplY3QsCisgICAgICAgYW5kIGtlZXAgaXQgYWxpdmUgKi8KKyAgICBidWZmZXIgPSBQeVVuaWNvZGVfQXNXaWRlQ2hhclN0cmluZyh2YWx1ZSwgTlVMTCk7CisgICAgaWYgKCFidWZmZXIpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGtlZXAgPSBQeUNhcHN1bGVfTmV3KGJ1ZmZlciwgQ1RZUEVTX0NGSUVMRF9DQVBTVUxFX05BTUVfUFlNRU0sIHB5bWVtX2Rlc3RydWN0b3IpOworICAgIGlmICgha2VlcCkgeworICAgICAgICBQeU1lbV9GcmVlKGJ1ZmZlcik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICAqKHdjaGFyX3QgKiopcHRyID0gYnVmZmVyOworICAgIHJldHVybiBrZWVwOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMTQ3NiwxMyArMTQ1NSwxNiBAQAogCiAgICAgLyogY3JlYXRlIGEgQlNUUiBmcm9tIHZhbHVlICovCiAgICAgaWYgKHZhbHVlKSB7Ci0gICAgICAgIFB5X3NzaXplX3Qgc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRSh2YWx1ZSk7CisgICAgICAgIHdjaGFyX3QqIHd2YWx1ZTsKKyAgICAgICAgUHlfc3NpemVfdCBzaXplOworICAgICAgICB3dmFsdWUgPSBQeVVuaWNvZGVfQXNVbmljb2RlQW5kU2l6ZSh2YWx1ZSwgJnNpemUpOworICAgICAgICBpZiAod3ZhbHVlID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKCh1bnNpZ25lZCkgc2l6ZSAhPSBzaXplKSB7CiAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIlN0cmluZyB0b28gbG9uZyBmb3IgQlNUUiIpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KLSAgICAgICAgYnN0ciA9IFN5c0FsbG9jU3RyaW5nTGVuKFB5VW5pY29kZV9BU19VTklDT0RFKHZhbHVlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZClzaXplKTsKKyAgICAgICAgYnN0ciA9IFN5c0FsbG9jU3RyaW5nTGVuKHd2YWx1ZSwgKHVuc2lnbmVkKXNpemUpOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgIH0gZWxzZQogICAgICAgICBic3RyID0gTlVMTDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkuZGlmZiBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkuZGlmZgppbmRleCA3YWZhMGVkLi4zNTdkMGVlIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpLmRpZmYKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS5kaWZmCkBAIC0xLDc0ICsxLDE0IEBACi1kaWZmIC11ck4gbGliZmZpLm9yaWcvY29uZmlndXJlIGxpYmZmaS9jb25maWd1cmUKLS0tLSBsaWJmZmkub3JpZy9jb25maWd1cmUJMjAxMC0wMy0xOSAxODoyOTo1NC41ODg0OTk4NjIgKzAxMDAKLSsrKyBsaWJmZmkvY29uZmlndXJlCTIwMTAtMDMtMTkgMTg6MzI6MDkuMTEzNDk5NDc5ICswMTAwCi1AQCAtMTEyMjgsNiArMTEyMjgsOSBAQAotICAgaT84Ni0qLXNvbGFyaXMyLjFbMC05XSopCi0gCVRBUkdFVD1YODZfNjQ7IFRBUkdFVERJUj14ODYKLSAJOzsKLSsgIGkqODYtKi1udG8tcW54KikKLSsgICAgICAgIFRBUkdFVD1YODY7IFRBUkdFVERJUj14ODYKLSsgICAgICAgIDs7Ci0gICBpPzg2LSotKikKLSAJVEFSR0VUPVg4NjsgVEFSR0VURElSPXg4NgotIAk7OwotQEAgLTExMjQ1LDEyICsxMTI0OCwxMiBAQAotIAk7OwotIAotICAgbWlwcy1zZ2ktaXJpeDUuKiB8IG1pcHMtc2dpLWlyaXg2LiopCi0tCVRBUkdFVD1NSVBTOyBUQVJHRVRESVI9bWlwcwotKwlUQVJHRVQ9TUlQU19JUklYOyBUQVJHRVRESVI9bWlwcwotIAk7OwotICAgbWlwcyotKi1saW51eCopCi0gCSMgU3VwcG9ydCAxMjgtYml0IGxvbmcgZG91YmxlIGZvciBOZXdBQkkuCi0gCUhBVkVfTE9OR19ET1VCTEU9J2RlZmluZWQoX19taXBzNjQpJwotLQlUQVJHRVQ9TUlQUzsgVEFSR0VURElSPW1pcHMKLSsJVEFSR0VUPU1JUFNfSVJJWDsgVEFSR0VURElSPW1pcHMKLSAJOzsKLSAKLSAgIHBvd2VycGMqLSotbGludXgqIHwgcG93ZXJwYy0qLXN5c3YqKQotQEAgLTExMzA3LDcgKzExMzEwLDcgQEAKLSAgIGFzX2ZuX2Vycm9yICJcImxpYmZmaSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvICRob3N0LlwiIiAiJExJTkVOTyIgNQotIGZpCi0gCi0tIGlmIHRlc3QgeCRUQVJHRVQgPSB4TUlQUzsgdGhlbgotKyBpZiBleHByIHgkVEFSR0VUIDogJ3hNSVBTJyA+IC9kZXYvbnVsbDsgdGhlbgotICAgTUlQU19UUlVFPQotICAgTUlQU19GQUxTRT0nIycKLSBlbHNlCi1AQCAtMTI0MjIsNiArMTI0MjUsMTIgQEAKLSBhY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgaW5jbHVkZS9NYWtlZmlsZSBpbmNsdWRlL2ZmaS5oIE1ha2VmaWxlIHRlc3RzdWl0ZS9NYWtlZmlsZSBtYW4vTWFrZWZpbGUgbGliZmZpLnBjIgotIAotIAotK2FjX2NvbmZpZ19saW5rcz0iJGFjX2NvbmZpZ19saW5rcyBpbmNsdWRlL2ZmaV9jb21tb24uaDppbmNsdWRlL2ZmaV9jb21tb24uaCIKLSsKLSsKLSthY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgZmZpY29uZmlnLnB5IgotKwotKwotIGNhdCA+Y29uZmNhY2hlIDw8XF9BQ0VPRgotICMgVGhpcyBmaWxlIGlzIGEgc2hlbGwgc2NyaXB0IHRoYXQgY2FjaGVzIHRoZSByZXN1bHRzIG9mIGNvbmZpZ3VyZQotICMgdGVzdHMgcnVuIG9uIHRoaXMgc3lzdGVtIHNvIHRoZXkgY2FuIGJlIHNoYXJlZCBiZXR3ZWVuIGNvbmZpZ3VyZQotQEAgLTEzNTIxLDYgKzEzNTMwLDggQEAKLSAgICAgInRlc3RzdWl0ZS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyB0ZXN0c3VpdGUvTWFrZWZpbGUiIDs7Ci0gICAgICJtYW4vTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgbWFuL01ha2VmaWxlIiA7OwotICAgICAibGliZmZpLnBjIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGxpYmZmaS5wYyIgOzsKLSsgICAgImluY2x1ZGUvZmZpX2NvbW1vbi5oIikgQ09ORklHX0xJTktTPSIkQ09ORklHX0xJTktTIGluY2x1ZGUvZmZpX2NvbW1vbi5oOmluY2x1ZGUvZmZpX2NvbW1vbi5oIiA7OwotKyAgICAiZmZpY29uZmlnLnB5IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGZmaWNvbmZpZy5weSIgOzsKLSAKLSAgICopIGFzX2ZuX2Vycm9yICJpbnZhbGlkIGFyZ3VtZW50OiBcYCRhY19jb25maWdfdGFyZ2V0JyIgIiRMSU5FTk8iIDU7OwotICAgZXNhYwotZGlmZiAtdXJOIGxpYmZmaS5vcmlnL2NvbmZpZ3VyZS5hYyBsaWJmZmkvY29uZmlndXJlLmFjCi0tLS0gbGliZmZpLm9yaWcvY29uZmlndXJlLmFjCTIwMTAtMDMtMTkgMTg6Mjc6NDQuOTg4NDk4NTg1ICswMTAwCi0rKysgbGliZmZpL2NvbmZpZ3VyZS5hYwkyMDEwLTAzLTE5IDE4OjMxOjI5LjI1MjUwNTE3OCArMDEwMAorLS0tIGxpYmZmaS5vcmlnL2NvbmZpZ3VyZS5hYwkyMDEyLTA0LTEyIDA1OjEwOjUxLjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmZmaS9jb25maWd1cmUuYWMJMjAxMi0wNi0yNiAxNTo0Mjo0Mi40Nzc0OTg5MzggKzAyMDAKIEBAIC0xLDQgKzEsNyBAQAogIGRubCBQcm9jZXNzIHRoaXMgd2l0aCBhdXRvY29uZiB0byBjcmVhdGUgY29uZmlndXJlCiArIwogKyMgZmlsZSBmcm9tIGxpYmZmaSAtIHNsaWdodGx5IHBhdGNoZWQgZm9yIGN0eXBlcwogKyMKICAKLSBBQ19QUkVSRVEoMi42MykKKyBBQ19QUkVSRVEoMi42OCkKICAKLUBAIC05MSw2ICs5NCw5IEBACitAQCAtMTE0LDYgKzExNyw5IEBACiAgICBpPzg2LSotc29sYXJpczIuMVtbMC05XV0qKQogIAlUQVJHRVQ9WDg2XzY0OyBUQVJHRVRESVI9eDg2CiAgCTs7CkBAIC03NiwyNCArMTYsMjQgQEAKICsgICAgICAgIFRBUkdFVD1YODY7IFRBUkdFVERJUj14ODYKICsgICAgICAgIDs7CiAgICBpPzg2LSotKikKLSAJVEFSR0VUPVg4NjsgVEFSR0VURElSPXg4NgorIAlUQVJHRVQ9WDg2XzY0OyBUQVJHRVRESVI9eDg2CiAgCTs7Ci1AQCAtMTA4LDEyICsxMTQsMTIgQEAKK0BAIC0xMzEsMTIgKzEzNywxMiBAQAogIAk7OwogIAotICAgbWlwcy1zZ2ktaXJpeDUuKiB8IG1pcHMtc2dpLWlyaXg2LiopCisgICBtaXBzLXNnaS1pcml4NS4qIHwgbWlwcy1zZ2ktaXJpeDYuKiB8IG1pcHMqLSotcnRlbXMqKQogLQlUQVJHRVQ9TUlQUzsgVEFSR0VURElSPW1pcHMKICsJVEFSR0VUPU1JUFNfSVJJWDsgVEFSR0VURElSPW1pcHMKICAJOzsKLSAgIG1pcHMqLSotbGludXgqKQorICAgbWlwcyotKi1saW51eCogfCBtaXBzKi0qLW9wZW5ic2QqKQogIAkjIFN1cHBvcnQgMTI4LWJpdCBsb25nIGRvdWJsZSBmb3IgTmV3QUJJLgogIAlIQVZFX0xPTkdfRE9VQkxFPSdkZWZpbmVkKF9fbWlwczY0KScKIC0JVEFSR0VUPU1JUFM7IFRBUkdFVERJUj1taXBzCiArCVRBUkdFVD1NSVBTX0lSSVg7IFRBUkdFVERJUj1taXBzCiAgCTs7CiAgCi0gICBwb3dlcnBjKi0qLWxpbnV4KiB8IHBvd2VycGMtKi1zeXN2KikKLUBAIC0xNzAsNyArMTc2LDcgQEAKKyAgIG1veGllLSotKikKK0BAIC0yMTIsNyArMjE4LDcgQEAKICAgIEFDX01TR19FUlJPUihbImxpYmZmaSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvICRob3N0LiJdKQogIGZpCiAgCkBAIC0xMDIsNyArNDIsNyBAQAogIEFNX0NPTkRJVElPTkFMKFNQQVJDLCB0ZXN0IHgkVEFSR0VUID0geFNQQVJDKQogIEFNX0NPTkRJVElPTkFMKFg4NiwgdGVzdCB4JFRBUkdFVCA9IHhYODYpCiAgQU1fQ09ORElUSU9OQUwoWDg2X0ZSRUVCU0QsIHRlc3QgeCRUQVJHRVQgPSB4WDg2X0ZSRUVCU0QpCi1AQCAtNDAxLDQgKzQwNyw4IEBACitAQCAtNDk5LDQgKzUwNSw4IEBACiAgCiAgQUNfQ09ORklHX0ZJTEVTKGluY2x1ZGUvTWFrZWZpbGUgaW5jbHVkZS9mZmkuaCBNYWtlZmlsZSB0ZXN0c3VpdGUvTWFrZWZpbGUgbWFuL01ha2VmaWxlIGxpYmZmaS5wYykKICAKQEAgLTExMSwzICs1MSw3MCBAQAogK0FDX0NPTkZJR19GSUxFUyhmZmljb25maWcucHkpCiArCiAgQUNfT1VUUFVUCistLS0gbGliZmZpLTMuMC4xMS9mZmljb25maWcucHkuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBsaWJmZmkvZmZpY29uZmlnLnB5LmluCTIwMTItMDMtMTUgMDE6MDQ6MjcuMDAwMDAwMDAwICswMTAwCitAQCAtMCwwICsxLDM1IEBACisrZmZpX3NvdXJjZXMgPSAiIiIKKytzcmMvcHJlcF9jaWYuYworK3NyYy9jbG9zdXJlcy5jCisrc3JjL2RsbWFsbG9jLmMKKysiIiIuc3BsaXQoKQorKworK2ZmaV9wbGF0Zm9ybXMgPSB7CisrICAgICdNSVBTX0lSSVgnOiBbJ3NyYy9taXBzL2ZmaS5jJywgJ3NyYy9taXBzL28zMi5TJywgJ3NyYy9taXBzL24zMi5TJ10sCisrICAgICdNSVBTX0xJTlVYJzogWydzcmMvbWlwcy9mZmkuYycsICdzcmMvbWlwcy9vMzIuUyddLAorKyAgICAnWDg2JzogWydzcmMveDg2L2ZmaS5jJywgJ3NyYy94ODYvc3lzdi5TJ10sCisrICAgICdYODZfRlJFRUJTRCc6IFsnc3JjL3g4Ni9mZmkuYycsICdzcmMveDg2L2ZyZWVic2QuUyddLAorKyAgICAnWDg2X1dJTjMyJzogWydzcmMveDg2L2ZmaS5jJywgJ3NyYy94ODYvd2luMzIuUyddLAorKyAgICAnU1BBUkMnOiBbJ3NyYy9zcGFyYy9mZmkuYycsICdzcmMvc3BhcmMvdjguUycsICdzcmMvc3BhcmMvdjkuUyddLAorKyAgICAnQUxQSEEnOiBbJ3NyYy9hbHBoYS9mZmkuYycsICdzcmMvYWxwaGEvb3NmLlMnXSwKKysgICAgJ0lBNjQnOiBbJ3NyYy9pYTY0L2ZmaS5jJywgJ3NyYy9pYTY0L3VuaXguUyddLAorKyAgICAnTTMyUic6IFsnc3JjL20zMnIvc3lzdi5TJywgJ3NyYy9tMzJyL2ZmaS5jJ10sCisrICAgICdNNjhLJzogWydzcmMvbTY4ay9mZmkuYycsICdzcmMvbTY4ay9zeXN2LlMnXSwKKysgICAgJ1BPV0VSUEMnOiBbJ3NyYy9wb3dlcnBjL2ZmaS5jJywgJ3NyYy9wb3dlcnBjL3N5c3YuUycsICdzcmMvcG93ZXJwYy9wcGNfY2xvc3VyZS5TJywgJ3NyYy9wb3dlcnBjL2xpbnV4NjQuUycsICdzcmMvcG93ZXJwYy9saW51eDY0X2Nsb3N1cmUuUyddLAorKyAgICAnUE9XRVJQQ19BSVgnOiBbJ3NyYy9wb3dlcnBjL2ZmaS5jJywgJ3NyYy9wb3dlcnBjL2FpeC5TJywgJ3NyYy9wb3dlcnBjL2FpeF9jbG9zdXJlLlMnXSwKKysgICAgJ1BPV0VSUENfRlJFRUJTRCc6IFsnc3JjL3Bvd2VycGMvZmZpLmMnLCAnc3JjL3Bvd2VycGMvc3lzdi5TJywgJ3NyYy9wb3dlcnBjL3BwY19jbG9zdXJlLlMnXSwKKysgICAgJ0FSTSc6IFsnc3JjL2FybS9zeXN2LlMnLCAnc3JjL2FybS9mZmkuYyddLAorKyAgICAnTElCRkZJX0NSSVMnOiBbJ3NyYy9jcmlzL3N5c3YuUycsICdzcmMvY3Jpcy9mZmkuYyddLAorKyAgICAnRlJWJzogWydzcmMvZnJ2L2VhYmkuUycsICdzcmMvZnJ2L2ZmaS5jJ10sCisrICAgICdTMzkwJzogWydzcmMvczM5MC9zeXN2LlMnLCAnc3JjL3MzOTAvZmZpLmMnXSwKKysgICAgJ1g4Nl82NCc6IFsnc3JjL3g4Ni9mZmk2NC5jJywgJ3NyYy94ODYvdW5peDY0LlMnLCAnc3JjL3g4Ni9mZmkuYycsICdzcmMveDg2L3N5c3YuUyddLAorKyAgICAnU0gnOiBbJ3NyYy9zaC9zeXN2LlMnLCAnc3JjL3NoL2ZmaS5jJ10sCisrICAgICdTSDY0JzogWydzcmMvc2g2NC9zeXN2LlMnLCAnc3JjL3NoNjQvZmZpLmMnXSwKKysgICAgJ1BBJzogWydzcmMvcGEvbGludXguUycsICdzcmMvcGEvZmZpLmMnXSwKKysgICAgJ1BBX0xJTlVYJzogWydzcmMvcGEvbGludXguUycsICdzcmMvcGEvZmZpLmMnXSwKKysgICAgJ1BBX0hQVVgnOiBbJ3NyYy9wYS9ocHV4MzIuUycsICdzcmMvcGEvZmZpLmMnXSwKKyt9CisrCisrZmZpX3NvdXJjZXMgKz0gZmZpX3BsYXRmb3Jtc1snQFRBUkdFVEAnXQorKworK2ZmaV9jZmxhZ3MgPSAnQENGTEFHU0AnCitkaWZmIC11ck4gbGliZmZpLTMuMC4xMS9zcmMvZGxtYWxsb2MuYyBsaWJmZmkvc3JjL2RsbWFsbG9jLmMKKy0tLSBsaWJmZmktMy4wLjExL3NyYy9kbG1hbGxvYy5jCTIwMTItMDQtMTIgMDQ6NDY6MDYuMDAwMDAwMDAwICswMjAwCisrKysgbGliZmZpL3NyYy9kbG1hbGxvYy5jCTIwMTItMDYtMjYgMTU6MTU6NTguOTQ5NTQ3NDYxICswMjAwCitAQCAtNDU3LDYgKzQ1NywxMSBAQAorICNkZWZpbmUgTEFDS1NfRVJSTk9fSAorICNkZWZpbmUgTUFMTE9DX0ZBSUxVUkVfQUNUSU9OCisgI2RlZmluZSBNTUFQX0NMRUFSUyAwIC8qIFdJTkNFIGFuZCBzb21lIG90aGVycyBhcHBhcmVudGx5IGRvbid0IGNsZWFyICovCisrI2VsaWYgIWRlZmluZWQgX0dOVV9TT1VSQ0UKKysvKiBtcmVtYXAoKSBvbiBMaW51eCByZXF1aXJlcyB0aGlzIHZpYSBzeXMvbW1hbi5oCisrICogU2VlIHJvdW5kdXAgaXNzdWUgMTAzMDkKKysgKi8KKysjZGVmaW5lIF9HTlVfU09VUkNFIDEKKyAjZW5kaWYgIC8qIFdJTjMyICovCisgCisgI2lmZGVmIF9fT1MyX18KK2RpZmYgLXVyTiBsaWJmZmktMy4wLjExL3NyYy9zcGFyYy92OC5TIGxpYmZmaS9zcmMvc3BhcmMvdjguUworLS0tIGxpYmZmaS0zLjAuMTEvc3JjL3NwYXJjL3Y4LlMJMjAxMi0wNC0xMiAwNDo0NjowNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJmZmkvc3JjL3NwYXJjL3Y4LlMJMjAxMS0wMy0xMyAwNToxNTowNC4wMDAwMDAwMDAgKzAxMDAKK0BAIC0yMTMsNiArMjEzLDEwIEBACisgCWJlLGEJZG9uZTEKKyAJIGxkZAlbJWZwLThdLCAlaTAKKyAKKysJY21wCSVvMCwgRkZJX1RZUEVfVUlOVDY0CisrCWJlLGEJZG9uZTEKKysJIGxkZAlbJWZwLThdLCAlaTAKKysKKyAJbGQJWyVmcC04XSwgJWkwCisgZG9uZTE6CisgCWptcAklaTcrOApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9DaGFuZ2VMb2cgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL0NoYW5nZUxvZwppbmRleCAwMGJhN2VmLi5mNDE0OGE5IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL0NoYW5nZUxvZworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL0NoYW5nZUxvZwpAQCAtMSw4ICsxLDkxMSBAQAorMjAxMi0wNC0xMSAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgorCisJKiBNYWtlZmlsZS5hbSAoRVhUUkFfRElTVCk6IEFkZCBuZXcgc2NyaXB0LgorCSogTWFrZWZpbGUuaW46IFJlYnVpbHQuCisKKzIwMTItMDQtMTEgIFphY2hhcnkgV2FsZG93c2tpICA8endhbGRvd3NraUBnbWFpbC5jb20+CisKKwkqIGdlbmVyYXRlLWlvcy1zb3VyY2UtYW5kLWhlYWRlcnMucHksCisJbGliZmZpLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IFN1cHBvcnQgYSBNYWMgc3RhdGljIGxpYnJhcnkgdmlhCisJWGNvZGUuIFNldCBpT1MgY29tcGF0aWJpbGl0eSB0byA0LjAuICBNb3ZlIGlPUyB0cmFtcG9saW5lCisJZ2VuZXJhdGlvbiBpbnRvIGFuIFhjb2RlICJydW4gc2NyaXB0IiBwaGFzZS4gIEluY2x1ZGUgYm90aCBhcworCVhjb2RlIGJ1aWxkIHNjcmlwdHMuIERvbid0IGFsd2F5cyByZWdlbmVyYXRlIGNvbmZpZyBmaWxlcy4KKworMjAxMi0wNC0xMCAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgorCisJKiBzcmMvcG93ZXJwYy9mZmlfZGFyd2luLmMgKGZmaV9wcmVwX2FyZ3MpOiBBZGQgbWlzc2luZyBzZW1pY29sb24uCisKKzIwMTItMDQtMDYgIEFudGhvbnkgR3JlZW4gIDxncmVlbkBtb3hpZWxvZ2ljLmNvbT4KKworCSogTWFrZWZpbGUuYW0gKEVYVFJBX0RJU1QpOiBBZGQgbmV3IGlPUy94Y29kZSBmaWxlcy4KKwkqIE1ha2VmaWxlLmluOiBSZWJ1aWx0LgorCisyMDEyLTA0LTA2ICBNaWtlIExld2lzICA8bWlrZWxpa2VzcGllQGdtYWlsLmNvbT4KKworCSogZ2VuZXJhdGUtaW9zLXNvdXJjZS1hbmQtaGVhZGVycy5weTogTmV3IGZpbGUuCisJKiBsaWJmZmkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogTmV3IGZpbGUuCisJKiBSRUFETUU6IFVwZGF0ZSBpbnN0cnVjdGlvbnMgb24gYnVpbGRpbmcgaU9TIGJpbmFyeS4KKwkqIGJ1aWxkLWlvcy5zaDogRGVsZXRlLgorCisyMDEyLTA0LTA2ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CisKKwkqIG00L2xpYnRvb2wubTQgKF9MVF9FTkFCTEVfTE9DSyk6IFN1cHBvcnQgeDMyLgorCisyMDEyLTA0LTA2ICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CisKKwkqIHNyYy94ODYvZmZpNjQuYyAoVUlOVDEyOCk6IERlZmluZSBkaWZmZXJlbnRseSBmb3IgSW50ZWwgYW5kIEdOVQorCWNvbXBpbGVycywgdGhlbiB1c2UgaXQuCisKKzIwMTItMDQtMDYgIEFudGhvbnkgR3JlZW4gIDxncmVlbkBtb3hpZWxvZ2ljLmNvbT4KKworCSogdGVzdHN1aXRlL01ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogQWRkIG1pc3NpbmcgdGVzdCBjYXNlcy4KKwkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5pbjogUmVidWlsdC4KKworMjAxMi0wNC0wNSAgWmFjaGFyeSBXYWxkb3dza2kgIDx6d2FsZG93c2tpQGdtYWlsLmNvbT4KKworCSogaW5jbHVkZS9mZmkuaC5pbjogQWRkIG1pc3NpbmcgdHJhbXBvbGluZSB0YWJsZSBmaWVsZHMuCisJKiBzcmMvYXJtL3N5c3YuUzogRml4IEVOVFJZIGRlZmluaXRpb24sIGFuZCB3cmFwIHN5bWJvbCByZWZlcmVuY2VzCisJaW4gQ05BTUUuCisJKiBzcmMveDg2L2ZmaS5jOiBXcmFwIFdpbmRvd3Mgc3BlY2lmaWMgY29kZSBpbiBpZmRlZnMuCisKKzIwMTItMDQtMDIgIFBldGVyIFJvc2luICA8cGVkYUBseXNhdG9yLmxpdS5zZT4KKworCSogc3JjL3g4Ni93aW4zMi5TIChmZmlfY2FsbF93aW4zMik6IFNpZ24vemVybyBleHRlbmQgdGhlIHJldHVybgorCXZhbHVlIGluIHRoZSBJbnRlbCB2ZXJzaW9uIGFzIGlzIGFscmVhZHkgZG9uZSBmb3IgdGhlIEFUJlQgdmVyc2lvbi4KKwkoZmZpX2Nsb3N1cmVfU1lTVik6IExpa2V3aXNlLgorCShmZmlfY2xvc3VyZV9yYXdfU1lTVik6IExpa2V3aXNlLgorCShmZmlfY2xvc3VyZV9TVERDQUxMKTogTGlrZXdpc2UuCisKKzIwMTItMDMtMjkgIFBldGVyIFJvc2luICA8cGVkYUBseXNhdG9yLmxpdS5zZT4KKworCSogc3JjL3g4Ni93aW4zMi5TIChmZmlfY2xvc3VyZV9yYXdfVEhJU0NBTEwpOiBVbmlmeSB0aGUgZnJhbWUKKwlnZW5lcmF0aW9uLCBmaXggdGhlIEVORFAgbGFiZWwgYW5kIHJlbW92ZSB0aGUgc3VycGx1cyB0aGlyZCBhcmcKKwlmcm9tIHRoZSAnbGVhJyBpbnNuLgorCisyMDEyLTAzLTI5ICBQZXRlciBSb3NpbiAgPHBlZGFAbHlzYXRvci5saXUuc2U+CisKKwkqIHNyYy94ODYvd2luMzIuUyAoZmZpX2Nsb3N1cmVfcmF3X1NZU1YpOiBNYWtlIHRoZSAnc3R1YnJhdycgbGFiZWwKKwl2aXNpYmxlIG91dHNpZGUgdGhlIFBST0MsIHNvIHRoYXQgZmZpX2Nsb3N1cmVfcmF3X1RISVNDQUxMIGNhbiBzZWUKKwlpdC4gIEFsc28gaW5zdHJ1Y3QgdGhlIGFzc2VtYmxlciB0byBhZGQgYSBmcmFtZSB0byB0aGUgZnVuY3Rpb24uCisKKzIwMTItMDMtMjMgIFBldGVyIFJvc2luICA8cGVkYUBseXNhdG9yLmxpdS5zZT4KKworCSogTWFrZWZpbGUuYW0gKEFNX0NQUEZMQUdTKTogQWRkIC1ERkZJX0JVSUxESU5HLgorCSogTWFrZWZpbGUuaW46IFJlYnVpbHQuCisJKiBpbmNsdWRlL2ZmaS5oLmluIFtNU1ZDXTogQWRkIF9fZGVjbHNwZWMoZGxsaW1wb3J0KSBkZWNvcmF0aW9ucworCXRvIGFsbCBkYXRhIGV4cG9ydHMsIHdoZW4gY29tcGlsaW5nIGxpYmZmaSBjbGllbnRzIHVzaW5nIE1TVkMuCisKKzIwMTItMDMtMjkgIFBldGVyIFJvc2luICA8cGVkYUBseXNhdG9yLmxpdS5zZT4KKworCSogc3JjL3g4Ni9mZml0YXJnZXQuaCAoZmZpX2FiaSk6IEFkZCBuZXcgQUJJIEZGSV9NU19DREVDTCBhbmQKKwltYWtlIGl0IHRoZSBkZWZhdWx0IGZvciBNU1ZDLgorCShGRklfVFlQRV9NU19TVFJVQ1QpOiBOZXcgc3RydWN0dXJlIHJldHVybiBjb252ZW50aW9uLgorCSogc3JjL3g4Ni9mZmkuYyAoZmZpX3ByZXBfY2lmX21hY2hkZXApOiBUd2VhayB0aGUgc3RydWN0dXJlCisJcmV0dXJuIGNvbnZlbnRpb24gZm9yIEZGSV9NU19DREVDTCB0byBiZSBGRklfVFlQRV9NU19TVFJVQ1QKKwlpbnN0ZWFkIG9mIGFuIG9yZGluYXJ5IEZGSV9UWVBFX1NUUlVDVC4KKwkoZmZpX3ByZXBfYXJncyk6IFRyZWF0IEZGSV9UWVBFX01TX1NUUlVDVCBhcyBGRklfVFlQRV9TVFJVQ1QuCisJKGZmaV9jYWxsKTogTGlrZXdpc2UuCisJKGZmaV9wcmVwX2luY29taW5nX2FyZ3NfU1lTVik6IExpa2V3aXNlLgorCShmZmlfcmF3X2NhbGwpOiBMaWtld2lzZS4KKwkoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBUcmVhdCBGRklfTVNfQ0RFQ0wgYXMgRkZJX1NZU1YuCisJKiBzcmMveDg2L3dpbjMyLlMgKGZmaV9jbG9zdXJlX1NZU1YpOiBGb3IgRkZJX1RZUEVfTVNfU1RSVUNULAorCXJldHVybiBhIHBvaW50ZXIgdG8gdGhlIHJlc3VsdCBzdHJ1Y3R1cmUgaW4gZWF4IGFuZCBkb24ndCBwb3AKKwl0aGF0IHBvaW50ZXIgZnJvbSB0aGUgc3RhY2ssIHRoZSBjYWxsZXIgdGFrZXMgY2FyZSBvZiBpdC4KKwkoZmZpX2NhbGxfd2luMzIpOiBUcmVhdCBGRklfVFlQRV9NU19TVFJVQ1QgYXMgRkZJX1RZUEVfU1RSVUNULgorCShmZmlfY2xvc3VyZV9yYXdfU1lTVik6IExpa2V3aXNlLgorCisyMDEyLTAzLTIyICBQZXRlciBSb3NpbiAgPHBlZGFAbHlzYXRvci5saXUuc2U+CisKKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbG9zdXJlX3N0ZGNhbGwuYyBbTVNWQ106IEFkZCBpbmxpbmUKKwlhc3NlbWJseSB2ZXJzaW9uIHdpdGggSW50ZWwgc3ludGF4LgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsb3N1cmVfdGhpc2NhbGwuYyBbTVNWQ106IExpa2V3aXNlLgorCisyMDEyLTAzLTIzICBQZXRlciBSb3NpbiAgPHBlZGFAbHlzYXRvci5saXUuc2U+CisKKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9mZml0ZXN0Lmg6IFByb3ZpZGUgYWJzdHJhdGlvbiBvZgorCV9fYXR0cmlidXRlX18oKGZhc3RjYWxsKSkgaW4gdGhlIGZvcm0gb2YgYSBfX0ZBU1RDQUxMX18KKwlkZWZpbmUuICBEZWZpbmUgaXQgdG8gX19mYXN0Y2FsbCBmb3IgTVNWQy4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9mYXN0dGhpczFfd2luMzIuYzogVXNlIHRoZSBhYm92ZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9mYXN0dGhpczJfd2luMzIuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvZmFzdHRoaXMzX3dpbjMyLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmxlbjJfd2luMzIuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0MV93aW4zMi5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QyX3dpbjMyLmM6IExpa2V3aXNlLgorCisyMDEyLTAzLTIyICBQZXRlciBSb3NpbiAgPHBlZGFAbHlzYXRvci5saXUuc2U+CisKKwkqIHNyYy94ODYvd2luMzIuUyBbTVNWQ10gKGZmaV9jbG9zdXJlX1RISVNDQUxMKTogUmVtb3ZlIHRoZSBtYW51YWwKKwlmcmFtZSBvbiBmdW5jdGlvbiBlbnRyeSwgTUFTTSBhZGRzIG9uZSBhdXRvbWF0aWNhbGx5LgorCisyMDEyLTAzLTIyICBQZXRlciBSb3NpbiAgPHBlZGFAbHlzYXRvci5saXUuc2U+CisKKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9mZml0ZXN0LmggW01TVkNdOiBBZGQga2x1ZGdlIGZvciBtaXNzaW5nCisJYml0cyBpbiB0aGUgTVNWQyBoZWFkZXJzLgorCisyMDEyLTAzLTIyICBQZXRlciBSb3NpbiAgPHBlZGFAbHlzYXRvci5saXUuc2U+CisKKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTJieXRlLmM6IEFkanVzdCB0byB0aGUgQzg5IHN0eWxlCisJd2l0aCBubyBkZWNsYXJhdGlvbnMgYWZ0ZXIgc3RhdGVtZW50cy4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTZieXRlLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xOGJ5dGUuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzE5Ynl0ZS5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMV8xYnl0ZS5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMjBieXRlLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18yMGJ5dGUxLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18yNGJ5dGUuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzJieXRlLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18zXzFieXRlLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18zYnl0ZTEuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzNieXRlMi5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNF8xYnl0ZS5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNGJ5dGUuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzVfMV9ieXRlLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc181Ynl0ZS5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNjRieXRlLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc182XzFfYnl0ZS5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNmJ5dGUuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzdfMV9ieXRlLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc183Ynl0ZS5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfOGJ5dGUuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzlieXRlMS5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfOWJ5dGUyLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9kb3VibGUuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2Zsb2F0LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlX3NwbGl0LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlX3NwbGl0Mi5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fcG9pbnRlci5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDE2LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50MzIuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQ2NC5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDE2LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50MzIuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQ2NC5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfZGJsc19zdHJ1Y3QuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX3BvaW50ZXJfc3RhY2suYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvZXJyX2JhZF90eXBlZGVmLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2h1Z2Vfc3RydWN0LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDEuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDEwLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QyLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QzLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q0LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q1LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q2LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q3LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q4LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q5LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X2xhcmdlLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X2xhcmdlMi5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJldF9tZWRpdW0uYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RyZXRfbWVkaXVtMi5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QxLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDFfd2luMzIuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0Mi5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QyX3dpbjMyLmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDMuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0NC5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3Q1LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDYuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0Ny5jOiBMaWtld2lzZS4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3Q4LmM6IExpa2V3aXNlLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDkuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvdGVzdGNsb3N1cmUuYzogTGlrZXdpc2UuCisKKzIwMTItMDMtMDYgIENodW5nLUxpbiBUYW5nICA8Y2x0YW5nQGNvZGVzb3VyY2VyeS5jb20+CisKKwkqIHNyYy9hcm0vZmZpLmMgKGZmaV9jYWxsKTogQWRkIF9fQVJNX0VBQklfXyBndWFyZCBhcm91bmQgY2FsbCB0bworCWZmaV9jYWxsX1ZGUCgpLgorCShmZmlfcHJlcF9jbG9zdXJlX2xvYyk6IEFkZCBfX0FSTV9FQUJJX18gZ3VhcmQgYXJvdW5kIHVzZSBvZgorCWZmaV9jbG9zdXJlX1ZGUC4KKwkqIHNyYy9hcm0vc3lzdi5TOiBBZGQgX19BUk1fRUFCSV9fIGd1YXJkIGFyb3VuZCBWRlAgY29kZS4KKworMjAxMi0wMy0yMSAgUGV0ZXIgUm9zaW4JIDxwZWRhQGx5c2F0b3IubGl1LnNlPgorCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvZmxvYXRfdmEuYyAoZmxvYXRfdmFfZm4pOiBVc2UgJWYgd2hlbgorCXByaW50aW5nIGRvdWJsZXMgKCVsZiBpcyBmb3IgbG9uZyBkb3VibGVzKS4KKwkobWFpbik6IExpa2V3aXNlLgorCisyMDEyLTAzLTIxICBQZXRlciBSb3NpbiAgPHBlZGFAbHlzYXRvci5saXUuc2U+CisKKwkqIHRlc3RzdWl0ZS9saWIvdGFyZ2V0LWxpYnBhdGguZXhwIFsqLSotY3lnd2luKiwgKi0qLW1pbmd3Kl0KKwkoc2V0X2xkX2xpYnJhcnlfcGF0aF9lbnZfdmFycyk6IEFkZCB0aGUgbGlicmFyeSBzZWFyY2ggZGlyIHRvIFBBVEgKKwkoYW5kIHNhdmUgUEFUSCBmb3IgbGF0ZXIpLgorCShyZXN0b3JlX2xkX2xpYnJhcnlfcGF0aF9lbnZfdmFycyk6IFJlc3RvcmUgUEFUSC4KKworMjAxMi0wMy0yMCAgUGV0ZXIgUm9zaW4gIDxwZWRhQGx5c2F0b3IubGl1LnNlPgorCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RybGVuMl93aW4zMi5jIChtYWluKTogUmVtb3ZlIGJ1Zy4KKwkqIHNyYy94ODYvd2luMzIuUyBbTVNWQ10gKGZmaV9jbG9zdXJlX1NZU1YpOiBNYWtlIHRoZSAnc3R1YicgbGFiZWwKKwl2aXNpYmxlIG91dHNpZGUgdGhlIFBST0MsIHNvIHRoYXQgZmZpX2Nsb3N1cmVfVEhJU0NBTEwgY2FuIHNlZSBpdC4KKworMjAxMi0wMy0xOSAgQWxhbiBIb3VyaWhhbmUgIDxhbGFuaEBmYWlybGl0ZS5jby51az4KKworCSogc3JjL202OGsvZmZpLmM6IEFkZCBNSU5UIHN1cHBvcnQuCisJKiBzcmMvbTY4ay9zeXN2LlM6IERpdHRvLgorCisyMDEyLTAzLTE5ICBjaGVubmFtICA8Y3NpdEBheHdheS5jb20+CisKKwkqIHNyYy9wb3dlcnBjL2ZmaV9kYXJ3aW4uYyAoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBGaXggQUlYIGNsb3N1cmUKKwlzdXBwb3J0LgorCisyMDEyLTA0LTAyICBQZXRlciBCZXJnbmVyICA8YmVyZ25lckB2bmV0LmlibS5jb20+CisKKwkqIHNyYy9wb3dlcnBjL2ZmaS5jIChmZmlfcHJlcF9hcmdzX1NZU1YpOiBEZWNsYXJlIGRvdWJsZV90bXAuCisJU2lsZW5jZSBjYXN0aW5nIHBvaW50ZXIgdG8gaW50ZWdlciBvZiBkaWZmZXJlbnQgc2l6ZSB3YXJuaW5nLgorCURlbGV0ZSBnb3RvIHRvIHByZXZpb3VzbHkgZGVsZXRlZCBsYWJlbC4KKwkoZmZpX2NhbGwpOiBTaWxlbmNlIHBvc3NpYmx5IHVuZGVmaW5lZCB3YXJuaW5nLgorCShmZmlfY2xvc3VyZV9oZWxwZXJfU1lTVik6IERlY2xhcmUgdmFyaWFibGUgdHlwZS4KKworMjAxMi0wMy0xMyAgS2F6IEtvamltYSAgPGtrb2ppbWFAZ2NjLmdudS5vcmc+CisKKwkqIHNyYy9zaC9mZmkuYyAoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBEb24ndCBBU1NFUlQgQUJJIHRlc3QsCisJanVzdCByZXR1cm4gRkZJX0JBRF9BQkkgd2hlbiB0aGluZ3MgYXJlIHdyb25nLgorCSogc3JjL3NoNjQvZmZpLmMgKGZmaV9wcmVwX2Nsb3N1cmVfbG9jKTogRGl0dG8uCisKKzIwMTItMDMtMDkgIERhdmlkIEVkZWxzb2huICA8ZGplLmdjY0BnbWFpbC5jb20+CisKKwkqIHNyYy9wb3dlcnBjL2FpeF9jbG9zdXJlLlMgKGZmaV9jbG9zdXJlX0FTTSk6IEFkanVzdCBmb3IgRGFyd2luNjQKKwljaGFuZ2UgdG8gcmV0dXJuIHZhbHVlIG9mIGZmaV9jbG9zdXJlX2hlbHBlcl9EQVJXSU4gYW5kIGxvYWQgdHlwZQorCWZyb20gcmV0dXJuIHR5cGUuCisKKzIwMTItMDMtMDMgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KKworCSogc3JjL3g4Ni9mZmk2NC5jIChmZmlfY2FsbCk6IENhc3QgdGhlIHJldHVybiB2YWx1ZSB0byB1bnNpZ25lZAorCWxvbmcuCisJKGZmaV9wcmVwX2Nsb3N1cmVfbG9jKTogQ2FzdCB0byA2NGJpdCBhZGRyZXNzIGluIHRyYW1wb2xpbmUuCisJKGZmaV9jbG9zdXJlX3VuaXg2NF9pbm5lcik6IENhc3QgcmV0dXJuIHBvaW50ZXIgdG8gdW5zaWduZWQgbG9uZworCWZpcnN0LgorCisJKiBzcmMveDg2L2ZmaXRhcmdldC5oIChGRklfU0laRU9GX0FSRyk6IERlZmluZWQgdG8gOCBmb3IgeDMyLgorCShmZmlfYXJnKTogU2V0IHRvIHVuc2lnbmVkIGxvbmcgbG9uZyBmb3IgeDMyLgorCShmZmlfc2FyZyk6IFNldCB0byBsb25nIGxvbmcgZm9yIHgzMi4KKworMjAxMi0wMy0wMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgorCisJKiBzcmMvcHJlcF9jaWYuYyAoZmZpX3ByZXBfY2lmX2NvcmUpOiBQcm9wZXJseSBjaGVjayBiYWQgQUJJLgorCisyMDEyLTAzLTAzICBBbmRvbmkgTW9yYWxlcyBBbGFzdHJ1ZXkgIDx5bGF0dXlhQGdtYWlsLmNvbT4KKworCSogY29uZmlndXJlLmFjOiBBZGQgLW5vLXVuZGVmaW5lZCBmb3IgYm90aCAzMi0gYW5kIDY0LWJpdCB4ODYKKwl3aW5kb3dzLWxpa2UgaG9zdHMuCisJKiBjb25maWd1cmU6IFJlYnVpbHQuCisKKzIwMTItMDItMjcgIE1pa2FlbCBQZXR0ZXJzc29uICA8bWlrcGVAaXQudXUuc2U+CisKKwlQUiBsaWJmZmkvNTIyMjMKKwkqIE1ha2VmaWxlLmFtIChGTEFHU19UT19QQVNTKTogRGVmaW5lLgorCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCisKKzIwMTItMDItMjMgIEFudGhvbnkgR3JlZW4gIDxncmVlbkBtb3hpZWxvZ2ljLmNvbT4KKworCSogc3JjLyovZmZpdGFyZ2V0Lmg6IEVuc3VyZSB0aGF0IHVzZXJzIG5ldmVyIGluY2x1ZGUgZmZpdGFyZ2V0LmgKKwlkaXJlY3RseS4KKworMjAxMi0wMi0yMyAgS2FpIFRpZXR6ICA8a3RpZXR6QHJlZGhhdC5jb20+CisKKwlQUiBsaWJmZmkvNTIyMjEKKwkqIHNyYy94ODYvZmZpLmMgKGZmaV9jbG9zdXJlX3Jhd19USElTQ0FMTCk6IE5ldworCXByb3RvdHlwZS4KKwkoZmZpX3ByZXBfcmF3X2Nsb3N1cmVfbG9jKTogVXNlIGZmaV9jbG9zdXJlX3Jhd19USElTQ0FMTCBmb3IKKwl0aGlzY2FsbC1jb252ZW50aW9uLgorCShmZmlfcmF3X2NhbGwpOiBVc2UgZmZpX3ByZXBfYXJnc19yYXcuCisJKiBzcmMveDg2L3dpbjMyLlMgKGZmaV9jbG9zdXJlX3Jhd19USElTQ0FMTCk6IEFkZAorCWltcGxlbWVudGF0aW9uIGZvciBzdHViLgorCisyMDEyLTAyLTEwICBLYWkgVGlldHogIDxrdGlldHpAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjIChBTV9MVExERkxBR1MpOiBBZGQgLW5vLXVuZGVmaW5lIGZvciB4NjQKKwl3aW5kb3dzIHRhcmdldC4KKwkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCisKKzIwMTItMDItMDggIEthaSBUaWV0eiAgPGt0aWV0ekByZWRoYXQuY29tPgorCisJKiBzcmMvcHJlcF9jaWYuYyAoZmZpX3ByZXBfY2lmKTogQWxsb3cgZm9yIFg4Nl9XSU4zMgorCWFsc28gRkZJX1RISVNDQUxMLgorCSogc3JjL3g4Ni9mZmkuYyAoZmZpX2Nsb3N1cmVfVEhJU0NBTEwpOiBBZGQgcHJvdG90eXBlLgorCShGRklfSU5JVF9UUkFNUE9MSU5FX1RISVNDQUxMKTogTmV3IHRyYW1wb2xpbmUgY29kZS4KKwkoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBBZGQgRkZJX1RISVNDQUxMIHN1cHBvcnQuCisJKiBzcmMveDg2L2ZmaXRhcmdldC5oIChGRklfVFJBTVBPTElORV9TSVpFKTogQWRqdXN0IHNpemUuCisJKiBzcmMveDg2L3dpbjMyLlMgKGZmaV9jbG9zdXJlX1RISVNDQUxMKTogTmV3IGNsb3N1cmUgY29kZQorCWZvciB0aGlzY2FsbC1jYWxsaW5nIGNvbnZlbnRpb24uCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xvc3VyZV90aGlzY2FsbC5jOiBOZXcgdGVzdC4KKworMjAxMi0wMS0yOCAgS2FpIFRpZXR6ICA8a3RpZXR6QHJlZGhhdC5jb20+CisKKwkqIHNyYy9saWJmZmkvc3JjL3g4Ni9mZmkuYyAoZmZpX2NhbGxfd2luMzIpOiBBZGQgbmV3CisJYXJndW1lbnQgdG8gcHJvdG90eXBlIGZvciBzcGVjaWZ5IGNhbGxpbmctY29udmVudGlvbi4KKwkoZmZpX2NhbGwpOiBBZGQgc3VwcG9ydCBmb3Igc3RkY2FsbC90aGlzY2FsbCBjb252ZW50aW9uLgorCShmZmlfcHJlcF9hcmdzKTogTGlrZXdpc2UuCisJKGZmaV9yYXdfY2FsbCk6IExpa2V3aXNlLgorCSogc3JjL3g4Ni9mZml0YXJnZXQuaCAoZmZpX2FiaSk6IEFkZCBGRklfVEhJU0NBTEwgYW5kCisJRkZJX0ZBU1RDQUxMLgorCSogc3JjL3g4Ni93aW4zMi5TIChfZmZpX2NhbGxfd2luMzIpOiBBZGQgc3VwcG9ydCBmb3IKKwlmYXN0Y2FsbC90aGlzY2FsbCBjYWxsaW5nLWNvbnZlbnRpb24gY2FsbHMuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvZmFzdHRoaXMxX3dpbjMyLmM6IE5ldyB0ZXN0LgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Zhc3R0aGlzMl93aW4zMi5jOiBOZXcgdGVzdC4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9mYXN0dGhpczNfd2luMzIuYzogTmV3IHRlc3QuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RybGVuMl93aW4zMi5jOiBOZXcgdGVzdC4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9tYW55Ml93aW4zMi5jOiBOZXcgdGVzdC4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QxX3dpbjMyLmM6IE5ldyB0ZXN0LgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDJfd2luMzIuYzogTmV3IHRlc3QuCisKKzIwMTItMDEtMjMgIFVyb3MgQml6amFrICA8dWJpempha0BnbWFpbC5jb20+CisKKwkqIHNyYy9hbHBoYS9mZmkuYyAoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBDaGVjayBmb3IgYmFkIEFCSS4KKworMjAxMi0wMS0yMyAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgorCSAgICBDaHJpcyBZb3VuZyAgPGNkeW91bmdAbnRsd29ybGQuY29tPgorCisJKiBjb25maWd1cmUuYWM6IEFkZCBBbWlnYSBzdXBwb3J0LgorCSogY29uZmlndXJlOiBSZWJ1aWx0LgorCisyMDEyLTAxLTIzICBEbWl0cnkgTmFkZXpoaW4gIDxkbWl0cnkubmFkZXpoaW5AZ21haWwuY29tPgorCisJKiBpbmNsdWRlL2ZmaV9jb21tb24uaCAoTElLRUxZLCBVTkxJS0VMWSk6IEZpeCBkZWZpbml0aW9ucy4KKworMjAxMi0wMS0yMyAgQW5kcmVhcyBTY2h3YWIgIDxzY2h3YWJAbGludXgtbTY4ay5vcmc+CisKKwkqIHNyYy9tNjhrL3N5c3YuUyAoZmZpX2NhbGxfU1lTVik6IFByb3Blcmx5IHRlc3QgZm9yIHBsYWluCisJbWM2ODAwMC4gIFRlc3QgZm9yIF9fSEFWRV82ODg4MV9fIGluIGFkZGl0aW9uIHRvIF9fTUM2ODg4MV9fLgorCisyMDEyLTAxLTE5ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCVBSIHJ0bC1vcHRpbWl6YXRpb24vNDg0OTYKKwkqIHNyYy9pYTY0L2ZmaS5jIChmZmlfY2FsbCk6IEZpeCB1cCBhbGlhc2luZyB2aW9sYXRpb25zLgorCisyMDEyLTAxLTA5ICBSYWluZXIgT3J0aCAgPHJvQENlQmlUZWMuVW5pLUJpZWxlZmVsZC5ERT4KKworCSogY29uZmlndXJlLmFjIChpPzg2LSotKik6IFNldCBUQVJHRVQgdG8gWDg2XzY0LgorCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgorCisyMDExLTEyLTA3ICBBbmRyZXcgUGluc2tpICA8YXBpbnNraUBjYXZpdW0uY29tPgorCisJUFIgbGliZmZpLzUwMDUxCisJKiBzcmMvbWlwcy9uMzIuUzogQWRkICIuc2V0IG1pcHM0Ii4KKworMjAxMS0xMS0yMSAgQW5kcmVhcyBUb2JsZXIgIDxhbmRyZWFzdEBmZ3puZXQuY2g+CisKKwkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KKworMjAxMS0xMS0xMiAgRGF2aWQgR2lsYmVydCA8ZGF2aWQuZ2lsYmVydEBsaW5hcm8ub3JnPgorCisJKiBkb2MvbGliZmZpLnRleGksIGluY2x1ZGUvZmZpLmguaW4sIGluY2x1ZGUvZmZpX2NvbW1vbi5oLAorCW1hbi9NYWtlZmlsZS5hbSwgbWFuL2ZmaS4zLCBtYW4vZmZpX3ByZXBfY2lmLjMsCisJbWFuL2ZmaV9wcmVwX2NpZl92YXIuMywgc3JjL2FybS9mZmkuYywgc3JjL2FybS9mZml0YXJnZXQuaCwKKwlzcmMvY3Jpcy9mZmkuYywgc3JjL3ByZXBfY2lmLmMsCisJdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19kb3VibGVfdmEuYywKKwl0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2xvbmdkb3VibGVfdmEuYywKKwl0ZXN0c3VpdGUvbGliZmZpLmNhbGwvZmxvYXRfdmEuYzogTWFueSBjaGFuZ2VzIHRvIHN1cHBvcnQgdmFyaWFkaWMKKwlmdW5jdGlvbiBjYWxscy4KKworMjAxMS0xMS0xMiAgS3lsZSBNb2ZmZXR0IDxLeWxlLkQuTW9mZmV0dEBib2VpbmcuY29tPgorCisJKiBzcmMvcG93ZXJwYy9mZmkuYywgc3JjL3Bvd2VycGMvZmZpdGFyZ2V0LmgsCisJc3JjL3Bvd2VycGMvcHBjX2Nsb3N1cmUuUywgc3JjL3Bvd2VycGMvc3lzdi5TOiBNYW55IGNoYW5nZXMgZm9yCisJc29mdGZsb2F0IHBvd2VycGMgdmFyaWFudHMuCisKKzIwMTEtMTEtMTIgIFBldHIgU2FsaW5nZXIgPFBldHIuU2FsaW5nZXJAc2V6bmFtLmN6PgorCisJKiBjb25maWd1cmUuYWMgKEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUpOiBGaXgga2ZyZWVic2Qgc3VwcG9ydC4KKwkqIGNvbmZpZ3VyZTogUmVidWlsdC4KKworMjAxMS0xMS0xMiAgVGltb3RoeSBXYWxsICA8dHdhbGxAdXNlcnMuc2YubmV0PgorCisJKiBzcmMvYXJtL2ZmaS5jIChmZmlfcHJlcF9hcmdzLCBmZmlfcHJlcF9pbmNvbWluZ19hcmdzX1NZU1YpOiBNYXgKKwlhbGlnbm1lbnQgb2YgNCBmb3Igd2luY2Ugb24gQVJNLgorCisyMDExLTExLTEyICBLeWxlIE1vZmZldHQgPEt5bGUuRC5Nb2ZmZXR0QGJvZWluZy5jb20+CisJICAgIEFudGhvbnkgR3JlZW4gPGdyZWVuQG1veGllbG9naWMuY29tPgorCisJKiBzcmMvcHBjL3N5c3YuUywgc3JjL3BwYy9mZmkuYzogUmVtb3ZlIHVzZSBvZiBwcGMgc3RyaW5nCisJaW5zdHJ1Y3Rpb25zIChub3QgYXZhaWxhYmxlIG9uIHNvbWUgY29yZXMsIGxpa2UgdGhlIFBQQzQ0MCkuCisKKzIwMTEtMTEtMTIgIEtpbXVyYSBXYXRhcnUgIDxraW11cmF3QGkubmlmdHkuanA+CisKKwkqIG00L2F4X2VuYWJsZV9idWlsZGRpcjogQ2hhbmdlIGZyb20gc3RyaW5nIGNvbXBhcmlzb24gdG8gbnVtZXJpYworCWNvbXBhcmlzb24gZm9yIHdjIG91dHB1dC4KKwkqIGNvbmZpZ3VyZS5hYzogRW5hYmxlIEZGSV9NTUFQX0VYRUNfV1JJVCBmb3IgZGFyd2luMTEgYWthIE1hYyBPUworCVggMTAuNy4KKwkqIGNvbmZpZ3VyZTogUmVidWlsdC4KKworMjAxMS0xMS0xMiAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgorCisJKiBNYWtlZmlsZS5hbSAoQU1fQ0NBU0ZMQUdTKTogQWRkIC1nIG9wdGlvbiB0byBidWlsZCBhc3NlbWJseQorCWZpbGVzIHdpdGggZGVidWcgaW5mby4KKwkqIE1ha2VmaWxlLmluOiBSZWJ1aWx0LgorCisyMDExLTExLTEyICBKYXNwZXIgTGlldmlzc2UgQWRyaWFhbnNlIDxqYXNwZXJAb3BlbmJzZC5vcmc+CisKKwkqIFJFQURNRTogVXBkYXRlIGxpc3Qgb2Ygc3VwcG9ydGVkIE9wZW5CU0Qgc3lzdGVtcy4KKworMjAxMS0xMS0xMiAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgorCisJKiBsaWJ0b29sLXZlcnNpb246IFVwZGF0ZS4KKwkqIE1ha2VmaWxlLmFtIChub2Rpc3RfbGliZmZpX2xhX1NPVVJDRVMpOiBBZGQgc3JjL2RlYnVnLmMgaWYKKwlGRklfREVCVUcuCisJKGxpYmZmaV9sYV9TT1VSQ0VTKTogUmVtb3ZlIHNyYy9kZWJ1Zy5jCisJKEVYVFJBX0RJU1QpOiBBZGQgc3JjL2RlYnVnLmMKKwkqIE1ha2VmaWxlLmluOiBSZWJ1aWx0LgorCSogUkVBRE1FOiBVcGRhdGUgZm9yIDMuMC4xMS4KKworMjAxMS0xMS0xMCAgUmljaGFyZCBIZW5kZXJzb24gIDxydGhAcmVkaGF0LmNvbT4KKworCSogY29uZmlndXJlLmFjIChHQ0NfQVNfQ0ZJX1BTRVVET19PUCk6IFVzZSBpdCBpbnN0ZWFkIG9mIGlubGluZSBjaGVjay4KKwkqIGNvbmZpZ3VyZSwgYWNsb2NhbC5tNDogUmVidWlsZC4KKworMjAxMS0wOS0wNCAgSWFpbiBTYW5kb2UgIDxpYWluc0BnY2MuZ251Lm9yZz4KKworCVBSIGxpYmZmaS80OTU5NAorCSogc3JjL3Bvd2VycGMvZGFyd2luX2Nsb3N1cmUuUyAoc3R1YnMpOiBNYWtlIHRoZSBzdHViIGJpbmRpbmcKKwloZWxwZXIgcmVmZXJlbmNlIHRyYWNrIHRoZSBhcmNoaXRlY3R1cmUgcG9pbnRlciBzaXplLgorCisyMDExLTA4LTI1ICBBbmRyZXcgSGFsZXkgIDxhcGhAcmVkaGF0LmNvbT4KKworCSogc3JjL2FybS9mZmkuYyAoRkZJX0lOSVRfVFJBTVBPTElORSk6IFJlbW92ZSBoYXJkLWNvZGVkIGFzc2VtYmx5CisJaW5zdHJ1Y3Rpb25zLgorCSogc3JjL2FybS9zeXN2LlMgKGZmaV9hcm1fdHJhbXBvbGluZSk6IFB1dCB0aGVtIGhlcmUgaW5zdGVhZC4KKworMjAxMS0wNy0xMSAgQW5kcmV3IEhhbGV5ICA8YXBoQHJlZGhhdC5jb20+CisKKyAgICAgICAgKiBzcmMvYXJtL2ZmaS5jIChGRklfSU5JVF9UUkFNUE9MSU5FKTogQ2xlYXIgaWNhY2hlLgorCisyMDExLTA2LTI5ICBSYWluZXIgT3J0aCAgPHJvQENlQmlUZWMuVW5pLUJpZWxlZmVsZC5ERT4KKworCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19kb3VibGVfdmEuYzogTW92ZSBQUiBudW1iZXIgdG8gY29tbWVudC4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfbG9uZ2RvdWJsZV92YS5jOiBMaWtld2lzZS4KKworMjAxMS0wNi0yOSAgUmFpbmVyIE9ydGggIDxyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREU+CisKKwlQUiBsaWJmZmkvNDY2NjAKKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfZG91YmxlX3ZhLmM6IHhmYWlsIGRnLW91dHB1dCBvbgorCW1pcHMtc2dpLWlyaXg2Ki4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfbG9uZ2RvdWJsZV92YS5jOiBMaWtld2lzZS4KKworMjAxMS0wNi0xNCAgUmFpbmVyIE9ydGggIDxyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREU+CisKKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9odWdlX3N0cnVjdC5jICh0ZXN0X2xhcmdlX2ZuKTogVXNlIFBSSXU4LAorCVBSSWQ4IGluc3RlYWQgb2YgJWhodSwgJWhoZC4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9mZml0ZXN0LmggW19fYWxwaGFfXyAmJiBfX29zZl9fXSAoUFJJZDgsCisJUFJJdTgpOiBEZWZpbmUuCisJW19fc2dpX19dIChQUklkOCwgUFJJdTgpOiBEZWZpbmUuCisKKzIwMTEtMDQtMjkgIFJhaW5lciBPcnRoICA8cm9AQ2VCaVRlYy5VbmktQmllbGVmZWxkLkRFPgorCisJKiBzcmMvYWxwaGEvb3NmLlMgKFVBX1NJLCBGREVfRU5DT0RJTkcsIEZERV9FTkNPREUsIEZERV9BUkFOR0UpOgorCURlZmluZS4KKwlVc2UgdGhlbSB0byBoYW5kbGUgRUxGIHZzLiBFQ09GRiBkaWZmZXJlbmNlcy4KKwlbX19vc2ZfX10gKF9HTE9CQUxfX0ZfZmZpX2NhbGxfb3NmKTogRGVmaW5lLgorCisyMDExLTAzLTMwICBUaW1vdGh5IFdhbGwgIDx0d2FsbEB1c2Vycy5zZi5uZXQ+CisKKwkqIHNyYy9wb3dlcnBjL2Rhcndpbi5TOiBGaXggdW5rbm93biBGREUgZW5jb2RpbmcuCisJKiBzcmMvcG93ZXJwYy9kYXJ3aW5fY2xvc3VyZS5TOiBkaXR0by4KKworMjAxMS0wMi0yNSAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgorCisJKiBzcmMvcG93ZXJwYy9mZmkuYyAoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBBbGxvdyBmb3IgbW9yZQorCTMyLWJpdCBBQklzLgorCisyMDExLTAyLTE1ICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CisKKwkqIG00L2F4X2NjX21heG9wdC5tNDogRG9uJ3QgLW1hbGlnbi1kb3VibGUgb3IgdXNlIC1mZmFzdC1tYXRoLgorCSogY29uZmlndXJlOiBSZWJ1aWx0LgorCisyMDExLTAyLTEzICBSYWxmIFdpbGRlbmh1ZXMgIDxSYWxmLldpbGRlbmh1ZXNAZ214LmRlPgorCisJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCisKKzIwMTEtMDItMTMgIEFudGhvbnkgR3JlZW4gIDxncmVlbkBtb3hpZWxvZ2ljLmNvbT4KKworCSogaW5jbHVkZS9mZmlfY29tbW9uLmggKFVOTElLRUxZLCBMSUtFTFkpOiBEZWZpbmUuCisJKiBzcmMveDg2L2ZmaTY0LmMgKFVOTElLRUxZLCBMSUtFTFkpOiBSZW1vdmUgZGVmaW5pdGlvbi4KKwkqIHNyYy9wcmVwX2NpZi5jIChVTkxJS0VMWSwgTElLRUxZKTogUmVtb3ZlIGRlZmluaXRpb24uCisKKwkqIHNyYy9wcmVwX2NpZi5jIChpbml0aWFsaXplX2FnZ3JlZ2F0ZSk6IENvbnZlcnQgYXNzZXJ0aW9uIGludG8KKwlGRklfQkFEX1RZUEVERUYgcmV0dXJuLiAgSW5pdGlhbGl6ZSBhcmcgc2l6ZSBhbmQgYWxpZ25tZW50IHRvIDAuCisKKwkqIHNyYy9wYS9mZmkuYyAoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBEb24ndCBBU1NFUlQgQUJJIHRlc3QsCisJanVzdCByZXR1cm4gRkZJX0JBRF9BQkkgd2hlbiB0aGluZ3MgYXJlIHdyb25nLgorCSogc3JjL2FybS9mZmkuYyAoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBEaXR0by4KKwkqIHNyYy9wb3dlcnBjL2ZmaS5jIChmZmlfcHJlcF9jbG9zdXJlX2xvYyk6IERpdHRvLgorCSogc3JjL21pcHMvZmZpLmMgKGZmaV9wcmVwX2Nsb3N1cmVfbG9jKTogRGl0dG8uCisJKiBzcmMvaWE2NC9mZmkuYyAoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBEaXR0by4KKwkqIHNyYy9hdnIzMi9mZmkuYyAoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBEaXR0by4KKworMjAxMS0wMi0xMSAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgorCisJKiBzcmMvc3BhcmMvZmZpLmMgKGZmaV9wcmVwX2Nsb3N1cmVfbG9jKTogRG9uJ3QgQVNTRVJUIEFCSSB0ZXN0LAorCWp1c3QgcmV0dXJuIEZGSV9CQURfQUJJIHdoZW4gdGhpbmdzIGFyZSB3cm9uZy4KKworMjAxMi0wMi0xMSAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBhZGFjb3JlLmNvbT4KKworCSogc3JjL3NwYXJjL3Y5LlMgKFNUQUNLRlJBTUUpOiBCdW1wIHRvIDE3Ni4KKworMjAxMS0wMi0wOSAgU3R1YXJ0IFNoZWx0b24gIDxzcmNzaGVsdG9uQGdtYWlsLmNvbT4KKworCWh0dHA6Ly9idWdzLmdlbnRvby5vcmcvc2hvd19idWcuY2dpP2lkPTI4NjkxMQorCSogc3JjL21pcHMvZmZpdGFyZ2V0Lmg6IENsZWFuIHVwIGVycm9yIG1lc3NhZ2VzLgorCSogc3JjL2phdmFfcmF3X2FwaS5jIChmZmlfamF2YV90cmFuc2xhdGVfYXJncyk6IENhc3QgcmF3IGFyZyB0bworCWZmaV9yYXcqLgorCSogaW5jbHVkZS9mZmkuaC5pbjogQWRkIHByYWdtYSBmb3IgU0dJIGNvbXBpbGVyLgorCisyMDExLTAyLTA5ICBBbnRob255IEdyZWVuICA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYzogQWRkIHBvd2VycGM2NC0qLWRhcndpbiogc3VwcG9ydC4KKworMjAxMS0wMi0wOSAgQW50aG9ueSBHcmVlbiA8Z3JlZW5AbW94aWVsb2dpYy5jb20+CisKKwkqIFJFQURNRTogTWVudGlvbiBJbnRlcml4LgorCisyMDExLTAyLTA5ICBKb25hdGhhbiBDYWxsZW4gIDxhYmNkQGdlbnRvby5vcmc+CisKKwkqIGNvbmZpZ3VyZS5hYzogQWRkIEludGVyaXggdG8gd2luMzIvY3lnd2luL21pbmd3IGNhc2UuCisJKiBjb25maWd1cmU6IERpdHRvLgorCSogc3JjL2Nsb3N1cmVzLmM6IFRyZWF0IEludGVyaXggbGlrZSBDeWd3aW4sIGluc3RlYWQgb2YgYXMgYQorCWdlbmVyaWMgd2luMzIuCisKKzIwMTEtMDItMDkgIEFudGhvbnkgR3JlZW4gPGdyZWVuQG1veGllbG9naWMuY29tPgorCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvZXJyX2JhZF90eXBlZGVmLmM6IFJlbW92ZSB4ZmFpbC4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9lcnJfYmFkX2FiaS5jOiBSZW1vdmUgeGZhaWwuCisJKiBzcmMveDg2L2ZmaTY0LmMgKFVOTElLRUxZLCBMSUtFTFkpOiBEZWZpbmUuCisJKGZmaV9wcmVwX2Nsb3N1cmVfbG9jKTogQ2hlY2sgZm9yIGJhZCBBQkkuCisJKiBzcmMvcHJlcF9jaWYuYyAoVU5MSUtFTFksIExJS0VMWSk6IERlZmluZS4KKwkoaW5pdGlhbGl6ZV9hZ2dyZWdhdGUpOiBDaGVjayBmb3IgYmFkIHR5cGVzLgorCisyMDExLTAyLTA5ICBMYW5kb24gRnVsbGVyIDxsYW5kb25mQHBsYXVzaWJsZS5jb29wPgorCisJKiBNYWtlZmlsZS5hbSAoRVhUUkFfRElTVCk6IEFkZCBidWlsZC1pb3Muc2gsIHNyYy9hcm0vZ2VudHJhbXAuc2gsCisJc3JjL2FybS90cmFtcG9saW5lLlMuCisJKG5vZGlzdF9saWJmZmlfbGFfU09VUkNFUyk6IEFkZCBzcmMvYXJjL3RyYW1wb2xpbmUuUy4KKwkqIGNvbmZpZ3VyZS5hYyAoRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRSk6IERlZmluZS4KKwkqIHNyYy9hcm0vZmZpLmMgKGZmaV90cmFtcG9saW5lX3RhYmxlKQorCShmZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlX3BhZ2UsIGZmaV90cmFtcG9saW5lX3RhYmxlX2VudHJ5KQorCShGRklfVFJBTVBPTElORV9DT0RFTE9DX0NPTkZJRywgRkZJX1RSQU1QT0xJTkVfQ09ORklHX1BBR0VfT0ZGU0VUKQorCShGRklfVFJBTVBPTElORV9DT1VOVCwgZmZpX3RyYW1wb2xpbmVfbG9jaywgZmZpX3RyYW1wb2xpbmVfdGFibGVzKQorCShmZmlfdHJhbXBvbGluZV90YWJsZV9hbGxvYywgZmZpX2Nsb3N1cmVfYWxsb2MsIGZmaV9jbG9zdXJlX2ZyZWUpOgorCURlZmluZSBmb3IgRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRSBjYXNlIChpT1MpLgorCShmZmlfcHJlcF9jbG9zdXJlX2xvYyk6IEhhbmRsIEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUgY2FzZQorCXNlcGFyYXRlbHkuCisJKiBzcmMvYXJtL3N5c3YuUzogSGFuZGxlIEFwcGxlIGlPUyBob3N0LgorCSogc3JjL2Nsb3N1cmVzLmM6IEhhbmRsZSBGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFIGNhc2UuCisJKiBidWlsZC1pb3Muc2g6IE5ldyBmaWxlLgorCSogZmZpY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgTWFrZWZpbGUuaW46IFJlYnVpbHQuCisJKiBSRUFETUU6IE1lbnRpb24gQVJNIGlPUy4KKworMjAxMS0wMi0wOCAgT3JlbiBIZWxkICA8b3JlbmhlQGlsLmlibS5jb20+CisKKwkqIHNyYy9kbG1hbGxvYy5jIChfU1RSVUNUX01BTExJTkZPKTogRGVmaW5lIGluIG9yZGVyIHRvIGF2b2lkCisJcmVkZWZpbml0aW9uIG9mIG1hbGxpbmZvIG9uIEhQLVVYLgorCisyMDExLTAyLTA4ICBHaW5uIENoZW4gIDxnaW5uLmNoZW5Ab3JhY2xlLmNvbT4KKworCSogc3JjL3NwYXJjL2ZmaS5jIChmZmlfY2FsbCk6IE1ha2UgY29tcGF0aWJsZSB3aXRoIFNvbGFyaXMgU3R1ZGlvCisJYWdncmVnYXRlIHJldHVybiBBQkkuICBGbHVzaCBjYWNoZS4KKwkoZmZpX3ByZXBfY2xvc3VyZV9sb2MpOiBGbHVzaCBjYWNoZS4KKworMjAxMS0wMi0xMSAgQW50aG9ueSBHcmVlbiAgPGdyZWVuQG1veGllbG9naWMuY29tPgorCisJRnJvbSBUb20gSG9uZXJtYW5uIDx0b20uaG9uZXJtYW5uQG9yYWNsZS5jb20+OgorCSogc3JjL3Bvd2VycGMvYWl4LlMgKGZmaV9jYWxsX0FJWCk6IFN1cHBvcnQgZm9yIHhsYyB0b29sY2hhaW4gb24KKwlBSVguICBEZWNsYXJlIC5mZmlfcHJlcF9hcmdzLiAgSW5zZXJ0IG5vcHMgYWZ0ZXIgYnJhbmNoCisJaW5zdHJ1Y3Rpb25zIHNvIHRoYXQgdGhlIEFJWCBsaW5rZXIgY2FuIGluc2VydCBUT0MgcmVsb2FkCisJaW5zdHJ1Y3Rpb25zLgorCSogc3JjL3Bvd2VycGMvYWl4X2Nsb3N1cmUuUzogRGVjbGFyZSAuZmZpX2Nsb3N1cmVfaGVscGVyX0RBUldJTi4KKworMjAxMS0wMi0wOCAgRWQgIDxlZEBrZHRjLm5ldD4KKworCSogc3JjL3Bvd2VycGMvYXNtLmg6IEZpeCBncmFtbWFyIG5pdCBpbiBjb21tZW50LgorCisyMDExLTAyLTA4ICBVbGkgTGluayAgPHVsLm1jYW1hZmlhQGxpbmtpdHVwLmRlPgorCisJKiBpbmNsdWRlL2ZmaS5oLmluIChGRklfNjRfQklUX01BWCk6IERlZmluZSBhbmQgdXNlLgorCisyMDExLTAyLTA5ICBSYWluZXIgT3J0aCAgPHJvQENlQmlUZWMuVW5pLUJpZWxlZmVsZC5ERT4KKworCVBSIGxpYmZmaS80NjY2MQorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19wb2ludGVyLmMgKG1haW4pOiBDYXN0IHZvaWQgKiB0bworCXVpbnRwdHJfdCBmaXJzdC4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfcG9pbnRlcl9zdGFjay5jIChtYWluKTogTGlrZXdpc2UuCisKKzIwMTEtMDItMDggIFJhZmFlbCBBdmlsYSBkZSBFc3BpbmRvbGEgIDxyZXNwaW5kb2xhQG1vemlsbGEuY29tPgorCisJKiBjb25maWd1cmUuYWM6IEZpeCB4ODYgdGVzdCBmb3IgcGMgcmVsYXRlZCByZWxvY3MuCisJKiBjb25maWd1cmU6IFJlYnVpbHQuCisKKzIwMTEtMDItMDcgIEpvZWwgU2hlcnJpbGwgPGpvZWwuc2hlcnJpbGxAb2FyY29ycC5jb20+CisKKwkqIGxpYmZmaS9zcmMvbTY4ay9mZmkuYzogQWRkIFJURU1TIHN1cHBvcnQgZm9yIGNhY2hlIGZsdXNoaW5nLgorCUhhbmRsZSBjYXNlIHdoZW4gQ1BVIHZhcmlhbnQgZG9lcyBub3QgaGF2ZSBsb25nIGRvdWJsZSBzdXBwb3J0LgorCSogbGliZmZpL3NyYy9tNjhrL3N5c3YuUzogQWRkIHN1cHBvcnQgZm9yIG1jNjgwMDAsIENvbGRmaXJlLAorCWFuZCBjb3JlcyB3aXRoIHNvZnQgZmxvYXRpbmcgcG9pbnQuCisKKzIwMTEtMDItMDcgIEpvZWwgU2hlcnJpbGwgPGpvZWwuc2hlcnJpbGxAb2FyY29ycC5jb20+CisKKwkqIGNvbmZpZ3VyZS5hYzogQWRkIG1pcHMqLSotcnRlbXMqIHN1cHBvcnQuCisJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCisJKiBzcmMvbWlwcy9mZml0YXJnZXQuaDogRW5zdXJlIG5lZWRlZCBjb25zdGFudHMgYXJlIGF2YWlsYWJsZQorCWZvciB0YXJnZXRzIHdoaWNoIGRvIG5vdCBoYXZlIHNnaWRlZnMuaC4KKworMjAxMS0wMS0yNiAgRGF2ZSBLb3JuICA8ZGF2ZS5rb3JuLmN5Z3dpbkBnbWFpbC5jb20+CisKKwlQUiB0YXJnZXQvNDAxMjUKKwkqIGNvbmZpZ3VyZS5hYyAoQU1fTFRMREZMQUdTKTogQWRkIC1iaW5kaXIgb3B0aW9uIGZvciB3aW5kb3dzIERMTHMuCisJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCisKKzIwMTAtMTItMTggIElhaW4gU2FuZG9lICA8aWFpbnNAZ2NjLmdudS5vcmc+CisKKwlQUiBsaWJmZmkvMjkxNTIKKwlQUiBsaWJmZmkvNDIzNzgKKwkqIHNyYy9wb3dlcnBjL2Rhcndpbl9jbG9zdXJlLlM6IFByb3ZpZGUgRGFyd2luNjQgaW1wbGVtZW50YXRpb24sCisJdXBkYXRlIGNvbW1lbnRzLgorCSogc3JjL3Bvd2VycGMvZmZpdGFyZ2V0LmggKFBPV0VSUENfREFSV0lONjQpOiBOZXcsCisJKEZGSV9UUkFNUE9MSU5FX1NJWkUpOiBVcGRhdGUgZm9yIERhcndpbjY0LgorCSogc3JjL3Bvd2VycGMvZGFyd2luLlM6IFByb3ZpZGUgRGFyd2luNjQgaW1wbGVtZW50YXRpb24sCisJdXBkYXRlIGNvbW1lbnRzLgorCSogc3JjL3Bvd2VycGMvZmZpX2Rhcndpbi5jOiBMaWtld2lzZS4KKworMjAxMC0xMi0wNiAgUmFpbmVyIE9ydGggIDxyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREU+CisKKwkqIGNvbmZpZ3VyZS5hYyAobGliZmZpX2N2X2FzX2FzY2lpX3BzZXVkb19vcCk6IFVzZSBkb3VibGUKKwliYWNrc2xhc2hlcy4KKwkobGliZmZpX2N2X2FzX3N0cmluZ19wc2V1ZG9fb3ApOiBMaWtld2lzZS4KKwkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KKworMjAxMC0xMi0wMyAgQ2h1bmctTGluIFRhbmcgIDxjbHRhbmdAY29kZXNvdXJjZXJ5LmNvbT4KKworCSogc3JjL2FybS9zeXN2LlMgKGZmaV9jbG9zdXJlX1NZU1YpOiBBZGQgVU5XSU5EIHRvIC5wYWQgZGlyZWN0aXZlLgorCShmZmlfY2xvc3VyZV9WRlApOiBTYW1lLgorCShmZmlfY2FsbF9WRlApOiBNb3ZlIGRvd24gdG8gYmVmb3JlIGZmaV9jbG9zdXJlX1ZGUC4gQWRkICcuZnB1IHZmcCcKKwlkaXJlY3RpdmUuCisKKzIwMTAtMTItMDEgIFJhaW5lciBPcnRoICA8cm9AQ2VCaVRlYy5VbmktQmllbGVmZWxkLkRFPgorCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvZmZpdGVzdC5oIFtfX3NnaV0gKFBSSWQ2NCwgUFJJdTY0KTogRGVmaW5lLgorCShQUkl1UFRSKTogRGVmaW5lLgorCisyMDEwLTExLTI5ICBSaWNoYXJkIEhlbmRlcnNvbiAgPHJ0aEByZWRoYXQuY29tPgorCSAgICBSYWluZXIgT3J0aCAgPHJvQENlQmlUZWMuVW5pLUJpZWxlZmVsZC5ERT4KKworCSogc3JjL3g4Ni9zeXN2LlMgKEZERV9FTkNPRElORywgRkRFX0VOQ09ERSk6IERlZmluZS4KKwkoLmVoX2ZyYW1lKTogVXNlIEZERV9FTkNPRElORy4KKwkoLkxBU0ZERTEsIC5MQVNGREUyLCBMQVNGREUzKTogU2ltcGxpZnkgd2l0aCBGREVfRU5DT0RFLgorCisyMDEwLTExLTIyICBKYWNlayBDYWJhbiA8amFjZWtAY29kZXdlYXZlcnMuY29tPgorCisJKiBjb25maWd1cmUuYWM6IENoZWNrIGZvciBzeW1ib2wgdW5kZXJzY29yZXMgb24gbWluZ3ctdzY0LgorCSogY29uZmlndXJlOiBSZWJ1aWx0LgorCSogc3JjL3g4Ni93aW42NC5TOiBDb3JyZWN0bHkgYWNjZXNzIGV4dGVybiBzeW1ib2xzIGluIHJlc3BlY3QgdG8KKwl1bmRlcnNjb3Jlcy4KKworMjAxMC0xMS0xNSAgUmFpbmVyIE9ydGggIDxyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREU+CisKKwkqIHRlc3RzdWl0ZS9saWIvbGliZmZpLWRnLmV4cDogUmVuYW1lIC4uLgorCSogdGVzdHN1aXRlL2xpYi9saWJmZmkuZXhwOiAuLi4gdG8gdGhpcy4KKwkqIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2FsbC5leHA6IERvbid0IGxvYWQgbGliZmZpLWRnLmV4cC4KKwkqIGxpYmZmaS90ZXN0c3VpdGUvbGliZmZpLnNwZWNpYWwvc3BlY2lhbC5leHA6IExpa2V3aXNlLgorCisyMDEwLTEwLTI4ICBDaHVuZy1MaW4gVGFuZyAgPGNsdGFuZ0Bjb2Rlc291cmNlcnkuY29tPgorCisJKiBzcmMvYXJtL2ZmaS5jIChmZmlfcHJlcF9hcmdzKTogQWRkIFZGUCByZWdpc3RlciBhcmd1bWVudCBoYW5kbGluZworCWNvZGUsIG5ldyBwYXJhbWV0ZXIsIGFuZCByZXR1cm4gdmFsdWUuIFVwZGF0ZSBjb21tZW50cy4KKwkoZmZpX3ByZXBfY2lmX21hY2hkZXApOiBBZGQgY2FzZSBmb3IgVkZQIHN0cnVjdCByZXR1cm4gdmFsdWVzLiBBZGQKKwljYWxsIHRvIGxheW91dF92ZnBfYXJncygpLgorCShmZmlfY2FsbF9TWVNWKTogVXBkYXRlIGRlY2xhcmF0aW9uLgorCShmZmlfY2FsbF9WRlApOiBOZXcgZGVjbGFyYXRpb24uCisJKGZmaV9jYWxsKTogQWRkIFZGUCBzdHJ1Y3QgcmV0dXJuIGNvbmRpdGlvbnMuIENhbGwgZmZpX2NhbGxfVkZQKCkKKwl3aGVuIEFCSSBpcyBGRklfVkZQLgorCShmZmlfY2xvc3VyZV9WRlApOiBOZXcgZGVjbGFyYXRpb24uCisJKGZmaV9jbG9zdXJlX1NZU1ZfaW5uZXIpOiBBZGQgbmV3IHZmcF9hcmdzIHBhcmFtZXRlciwgdXBkYXRlIGNhbGwgdG8KKwlmZmlfcHJlcF9pbmNvbWluZ19hcmdzX1NZU1YoKS4KKwkoZmZpX3ByZXBfaW5jb21pbmdfYXJnc19TWVNWKTogVXBkYXRlIHBhcmFtZXRlcnMuIEFkZCBWRlAgYXJndW1lbnQKKwljYXNlIGhhbmRsaW5nLgorCShmZmlfcHJlcF9jbG9zdXJlX2xvYyk6IFBhc3MgZmZpX2Nsb3N1cmVfVkZQIHRvIHRyYW1wb2xpbmUKKwljb25zdHJ1Y3Rpb24gdW5kZXIgVkZQIGhhcmQtZmxvYXQuCisJKHJlY192ZnBfdHlwZV9wKTogTmV3IGZ1bmN0aW9uLgorCSh2ZnBfdHlwZV9wKTogU2FtZS4KKwkocGxhY2VfdmZwX2FyZyk6IFNhbWUuCisJKGxheW91dF92ZnBfYXJncyk6IFNhbWUuCisJKiBzcmMvYXJtL2ZmaXRhcmdldC5oIChmZmlfYWJpKTogQWRkIEZGSV9WRlAuIERlZmluZSBGRklfREVGQVVMVF9BQkkKKwliYXNlZCBvbiBfX0FSTV9QQ1NfVkZQLgorCShGRklfRVhUUkFfQ0lGX0ZJRUxEUyk6IERlZmluZSBmb3IgYWRkaW5nIFZGUCBoYXJkLWZsb2F0IHNwZWNpZmljCisJZmllbGRzLgorCShGRklfVFlQRV9TVFJVQ1RfVkZQX0ZMT0FUKTogRGVmaW5lIGludGVybmFsbHkgdXNlZCB0eXBlIGNvZGUuCisJKEZGSV9UWVBFX1NUUlVDVF9WRlBfRE9VQkxFKTogU2FtZS4KKwkqIHNyYy9hcm0vc3lzdi5TIChmZmlfY2FsbF9TWVNWKTogQ2hhbmdlIGNhbGwgb2YgZmZpX3ByZXBfYXJncygpIHRvCisJZGlyZWN0IGNhbGwuIE1vdmUgZnVuY3Rpb24gcG9pbnRlciBsb2FkIHVwd2FyZHMuCisJKGZmaV9jYWxsX1ZGUCk6IE5ldyBmdW5jdGlvbi4KKwkoZmZpX2Nsb3N1cmVfVkZQKTogU2FtZS4KKworCSogdGVzdHN1aXRlL2xpYi9saWJmZmktZGcuZXhwIChjaGVjay1mbGFncyk6IE5ldyBmdW5jdGlvbi4KKwkoZGctc2tpcC1pZik6IE5ldyBmdW5jdGlvbi4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfZG91YmxlX3ZhLmM6IFNraXAgaWYgdGFyZ2V0IGlzIGFybSotKi0qCisJYW5kIGNvbXBpbGVyIG9wdGlvbnMgaW5jbHVkZSAtbWZsb2F0LWFiaT1oYXJkLgorCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19sb25nZG91YmxlX3ZhLmM6IFNhbWUuCisKKzIwMTAtMTAtMDEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJUFIgbGliZmZpLzQ1Njc3CisJKiBzcmMveDg2L2ZmaTY0LmMgKGZmaV9wcmVwX2NpZl9tYWNoZGVwKTogRW5zdXJlIGNpZi0+Ynl0ZXMgaXMKKwlhIG11bHRpcGxlIG9mIDguCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvbWFueTIuYzogTmV3IHRlc3QuCisKKzIwMTAtMDgtMjAgIE1hcmsgV2llbGFhcmQgIDxtandAcmVkaGF0LmNvbT4KKworCSogc3JjL2Nsb3N1cmVzLmMgKG9wZW5fdGVtcF9leGVjX2ZpbGVfbW50KTogQ2hlY2sgaWYgZ2V0bW50ZW50X3IKKwlyZXR1cm5zIE5VTEwuCisKKzIwMTAtMDgtMDkgIEFuZHJlYXMgVG9ibGVyICA8YW5kcmVhc3RAZmd6bmV0LmNoPgorCisJKiBjb25maWd1cmUuYWM6IEFkZCB0YXJnZXQgcG93ZXJwYzY0LSotZnJlZWJzZCouCisJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGVfc3BsaXQuYzogUGFzcworCS1tbG9uZy1kb3VibGUtMTI4IG9ubHkgdG8gbGludXggdGFyZ2V0cy4KKwkqIHRlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fbG9uZ2RvdWJsZV9zcGxpdDIuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2xvbmdkb3VibGUuYzogTGlrZXdpc2UuCisJKiB0ZXN0c3VpdGUvbGliZmZpLmNhbGwvaHVnZV9zdHJ1Y3QuYzogTGlrZXdpc2UuCisKKzIwMTAtMDgtMDUgIERhbiBXaXR0ZSAgPGR3aXR0ZUBtb3ppbGxhLmNvbT4KKworICAgICAgICAqIE1ha2VmaWxlLmFtOiBQYXNzIEZGSV9ERUJVRyBkZWZpbmUgdG8gbXN2Y2Muc2ggZm9yIGxpbmtpbmcgdG8gdGhlCisgICAgICAgIGRlYnVnIENSVCB3aGVuIC0tZW5hYmxlLWRlYnVnIGlzIGdpdmVuLgorICAgICAgICAqIGNvbmZpZ3VyZS5hYzogRGVmaW5lIGl0LgorICAgICAgICAqIG1zdmNjLnNoOiBUcmFuc2xhdGUgLWcgYW5kIC1ERkZJX0RFQlVHIGFwcHJvcHJpYXRlbHkuCisKKzIwMTAtMDgtMDQgIERhbiBXaXR0ZSAgPGR3aXR0ZUBtb3ppbGxhLmNvbT4KKworCSogc3JjL3g4Ni9mZml0YXJnZXQuaDogQWRkIFg4Nl9BTlkgZGVmaW5lIGZvciBhbGwgeDg2L3g4Nl82NAorCXBsYXRmb3Jtcy4KKwkqIHNyYy94ODYvZmZpLmM6IFJlbW92ZSByZWR1bmRhbnQgaWZkZWYgY2hlY2tzLgorCSogc3JjL3ByZXBfY2lmLmM6IFB1c2ggc3RhY2sgc3BhY2UgY29tcHV0YXRpb24gaW50byBzcmMveDg2L2ZmaS5jCisJZm9yIFg4Nl9BTlkgc28gcmV0dXJuIHZhbHVlIHNwYWNlIGRvZXNuJ3QgZ2V0IGFkZGVkIHR3aWNlLgorCisyMDEwLTA4LTAzICBOZWlsIFJhc2hicm9va2UgPG5laWxAcGFya3dheWNjLmNvLnVrPgorCisJKiBtc3ZjYy5zaDogRG9uJ3QgcGFzcyAtc2FmZXNlaCB0byBtbDY0IGJlY2F1c2UgYmVoYXZpb3IgaXMgYnVnZ3kuCisKKzIwMTAtMDctMjIgIERhbiBXaXR0ZSAgPGR3aXR0ZUBtb3ppbGxhLmNvbT4KKworCSogc3JjLyovZmZpdGFyZ2V0Lmg6IE1ha2UgRkZJX0xBU1RfQUJJIG9uZSBwYXN0IHRoZSBsYXN0IHZhbGlkIEFCSS4KKwkqIHNyYy9wcmVwX2NpZi5jOiBGaXggQUJJIGFzc2VydGlvbi4KKyAgICAgICAgKiBzcmMvY3Jpcy9mZmkuYzogRGl0dG8uCisKKzIwMTAtMDctMTAgIEV2YW4gUGhvZW5peCAgPGV2YW5AZmFsbGluZ3Nub3cubmV0PgorCisJKiBzcmMvY2xvc3VyZXMuYyAoc2VsaW51eF9lbmFibGVkX2NoZWNrKTogRml4IHN0cm5jbXAgdXNhZ2UgYnVnLgorCisyMDEwLTA3LTA3ICBEYW4gSG9yw6FrIDxkYW5AZGFubnkuY3o+CisKKwkqIGluY2x1ZGUvZmZpLmguaW46IFByb3RlY3QgI2RlZmluZSB3aXRoICNpZm5kZWYuCisJKiBzcmMvcG93ZXJwYy9mZml0YXJnZXQuaDogRGl0dG8uCisJKiBzcmMvczM5MC9mZml0YXJnZXQuaDogRGl0dG8uCisJKiBzcmMvc3BhcmMvZmZpdGFyZ2V0Lmg6IERpdHRvLgorCisyMDEwLTA3LTA3ICAgTmVpbCBSb2JlcnRzIDxuZWlsQGxpbnV4LmludGVsLmNvbT4KKworCSogc3JjL3g4Ni9zeXN2LlMgKGZmaV9jYWxsX1NZU1YpOiBBbGlnbiB0aGUgc3RhY2sgcG9pbnRlciB0bworCTE2LWJ5dGVzLgorCisyMDEwLTA3LTAyICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCSogTWFrZWZpbGUuYW0gKEFNX01BS0VGTEFHUyk6IFBhc3MgYWxzbyBtYW5kaXIgdG8gc3VibWFrZXMuCisJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCisKKzIwMTAtMDUtMTkgIFJhaW5lciBPcnRoICA8cm9AQ2VCaVRlYy5VbmktQmllbGVmZWxkLkRFPgorCisJKiBjb25maWd1cmUuYWMgKGxpYmZmaV9jdl9hc194ODZfcGNyZWwpOiBDaGVjayBmb3IgaWxsZWdhbCBpbiBhcworCW91dHB1dCwgdG9vLgorCShsaWJmZmlfY3ZfYXNfYXNjaWlfcHNldWRvX29wKTogQ2hlY2sgZm9yIC5hc2NpaS4KKwkobGliZmZpX2N2X2FzX3N0cmluZ19wc2V1ZG9fb3ApOiBDaGVjayBmb3IgLnN0cmluZy4KKwkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KKwkqIGZmaWNvbmZpZy5oLmluOiBSZWdlbmVyYXRlLgorCSogc3JjL3g4Ni9zeXN2LlMgKC5laF9mcmFtZSk6IFVzZSAuYXNjaWksIC5zdHJpbmcgb3IgZXJyb3IuCisKKzIwMTAtMDUtMTEgIERhbiBXaXR0ZSAgPGR3aXR0ZUBtb3ppbGxhLmNvbT4KKworCSogZG9jL2xpYmZmaS50ZXg6IERvY3VtZW50IHByZXZpb3VzIGNoYW5nZS4KKworMjAxMC0wNS0xMSAgTWFrb3RvIEthdG8gPG1fa2F0b0BnYTIuc28tbmV0Lm5lLmpwPgorCisJKiBzcmMveDg2L2ZmaS5jIChmZmlfY2FsbCk6IERvbid0IGNvcHkgc3RydWN0cyBwYXNzZWQgYnkgdmFsdWUuCisKKzIwMTAtMDUtMDUgIE1pY2hhZWwgS29obGVyIDxtaWNoYWVsa29obGVyQGxpdmUuY29tPgorCisJKiBzcmMvZGxtYWxsb2MuYyAoZGxmcmVlKTogRml4IHNwZWxsaW5nLgorCSogc3JjL2lhNjQvZmZpLmMgKGZmaV9wcmVwX2NpZl9tYWNoZGVwKTogRGl0dG8uCisJKiBjb25maWd1cmUuYWM6IERpdHRvLgorCSogY29uZmlndXJlOiBSZWJ1aWx0LgorCisyMDEwLTA0LTEzICBEYW4gV2l0dGUgIDxkd2l0dGVAbW96aWxsYS5jb20+CisKKwkqIG1zdmNjLnNoOiBCdWlsZCB3aXRoIC1XMyBpbnN0ZWFkIG9mIC1XYWxsLgorCSogc3JjL3Bvd2VycGMvZmZpX2Rhcndpbi5jOiBSZW1vdmUgYnVpbGQgd2FybmluZ3MuCisJKiBzcmMveDg2L2ZmaS5jOiBEaXR0by4KKwkqIHNyYy94ODYvZmZpdGFyZ2V0Lmg6IERpdHRvLgorCisyMDEwLTA0LTEyICBEYW4gV2l0dGUgIDxkd2l0dGVAbW96aWxsYS5jb20+CisJICAgIFdhbHRlciBNZWlubCA8d3Vub0Bsc3Z3LmRlPgorCisJKiBjb25maWd1cmUuYWM6IEFkZCBPUy8yIHN1cHBvcnQuCisJKiBjb25maWd1cmU6IFJlYnVpbHQuCisJKiBzcmMvY2xvc3VyZXMuYzogRGl0dG8uCisJKiBzcmMvZGxtYWxsb2MuYzogRGl0dG8uCisJKiBzcmMveDg2L3dpbjMyLlM6IERpdHRvLgorCisyMDEwLTA0LTA3ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCSogdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Vycl9iYWRfYWJpLmM6IFJlbW92ZSB1bnVzZWQgYXJncyB2YXJpYWJsZS4KKworMjAxMC0wNC0wMiAgUmFsZiBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KKworCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCisJKiBhY2xvY2FsLm00OiBSZWdlbmVyYXRlLgorCSogaW5jbHVkZS9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KKwkqIG1hbi9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KKwkqIHRlc3RzdWl0ZS9NYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KKworMjAxMC0wMy0zMCAgRGFuIFdpdHRlICA8ZHdpdHRlQG1vemlsbGEuY29tPgorCisJKiBtc3ZjYy5zaDogRGlzYWJsZSBidWlsZCB3YXJuaW5ncy4KKwkqIFJFQURNRSAodGVzdGVkKTogQ2xhcmlmeSB3aW5kb3dzIGJ1aWxkIHByb2NlZHVyZS4KKworMjAxMC0wMy0xNSAgUmFpbmVyIE9ydGggIDxyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREU+CisKKwkqIGNvbmZpZ3VyZS5hYyAobGliZmZpX2N2X2FzX3g4Nl82NF91bndpbmRfc2VjdGlvbl90eXBlKTogTmV3IHRlc3QuCisJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCisJKiBmZmljb25maWcuaC5pbjogUmVnZW5lcmF0ZS4KKwkqIGxpYmZmaS9zcmMveDg2L3VuaXg2NC5TICguZWhfZnJhbWUpCisJW0hBVkVfQVNfWDg2XzY0X1VOV0lORF9TRUNUSU9OX1RZUEVdOiBVc2UgQHVud2luZCBzZWN0aW9uIHR5cGUuCisKIDIwMTAtMDMtMTQgIE1hdHRoaWFzIEtsb3NlICA8ZG9rb0B1YnVudHUuY29tPgogCiAJKiBzcmMveDg2L2ZmaTY0LmM6IEZpeCB0eXBvIGluIGNvbW1lbnQuCiAJKiBzcmMveDg2L2ZmaS5jOiBVc2UgLyogLi4uICovIGNvbW1lbnQgc3R5bGUuCiAKKzIwMTAtMDItMjQgIFJhaW5lciBPcnRoICA8cm9AQ2VCaVRlYy5VbmktQmllbGVmZWxkLkRFPgorCisJKiBkb2MvbGliZmZpLnRleGkgKFRoZSBDbG9zdXJlIEFQSSk6IEZpeCB0eXBvLgorCSogZG9jL2xpYmZmaS5pbmZvOiBSZW1vdmUuCisKKzIwMTAtMDItMTUgIE1hdHRoaWFzIEtsb3NlICA8ZG9rb0B1YnVudHUuY29tPgorCisJKiBzcmMvYXJtL3N5c3YuUyAoX19BUk1fQVJDSF9fKTogRGVmaW5lIGZvciBwcm9jZXNzb3IKKwlfX0FSTV9BUkNIXzdFTV9fLgorCisyMDEwLTAxLTE1ICBBbnRob255IEdyZWVuICA8Z3JlZW5AcmVkaGF0LmNvbT4KKworCSogUkVBRE1FOiBBZGQgbm90ZXMgb24gYnVpbGRpbmcgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KKworMjAxMC0wMS0xNSAgRGFuaWVsIFdpdHRlICA8ZHdpdHRlQG1vemlsbGEuY29tPgorCisJKiBtc3ZjYy5zaDogTmV3IGZpbGUuCisKKwkqIHNyYy94ODYvd2luMzIuUzogUG9ydCBhc3NlbWJseSByb3V0aW5lcyB0byBNU1ZDIGFuZCAjaWZkZWYuCisJKiBzcmMveDg2L2ZmaS5jOiBUd2VhayBmdW5jdGlvbiBkZWNsYXJhdGlvbiBhbmQgcmVtb3ZlIGV4Y2VzcworCXBhcmVucy4KKwkqIGluY2x1ZGUvZmZpLmguaW46IEFkZCBfX2RlY2xzcGVjKGFsaWduKDgpKSB0byB0eXBlZGVmIHN0cnVjdAorCWZmaV9jbG9zdXJlLgorCisJKiBzcmMveDg2L2ZmaS5jOiBNZXJnZSBmZmlfY2FsbF9TWVNWIGFuZCBmZmlfY2FsbF9TVERDQUxMIGludG8gbmV3CisJZnVuY3Rpb24gZmZpX2NhbGxfd2luMzIgb24gWDg2X1dJTjMyLgorCSogc3JjL3g4Ni93aW4zMi5TIChmZmlfY2FsbF9TWVNWKTogUmVuYW1lIHRvIGZmaV9jYWxsX3dpbjMyLgorCShmZmlfY2FsbF9TVERDQUxMKTogUmVtb3ZlLgorCisJKiBzcmMvcHJlcF9jaWYuYyAoZmZpX3ByZXBfY2lmKTogTW92ZSBzdGFjayBzcGFjZSBhbGxvY2F0aW9uIGNvZGUKKwl0byBmZmlfcHJlcF9jaWZfbWFjaGRlcCBmb3IgeDg2LgorCSogc3JjL3g4Ni9mZmkuYyAoZmZpX3ByZXBfY2lmX21hY2hkZXApOiBUbyBoZXJlLgorCisyMDEwLTAxLTE1ICBPbGl2ZXIgS2lkZGxlICA8b2tpZGRsZUB5YWhvby5jby51az4KKworCSogc3JjL3g4Ni9mZml0YXJnZXQuaCAoZmZpX2FiaSk6IENoZWNrIGZvciBfX2kzODYgYW5kIF9fYW1kNjQgZm9yCisJU3VuIFN0dWRpbyBjb21waWxlciBjb21wYXRpYmlsaXR5LgorCisyMDEwLTAxLTEyICBDb25yYWQgSXJ3aW4gPGNvbnJhZC5pcndpbkBnbWFpbC5jb20+CisKKwkqIGRvYy9saWJmZmkudGV4aTogQWRkIGNsb3N1cmUgZXhhbXBsZS4KKwogMjAxMC0wMS0wNyAgUmFpbmVyIE9ydGggIDxyb0BDZUJpVGVjLlVuaS1CaWVsZWZlbGQuREU+CiAKIAlQUiBsaWJmZmkvNDA3MDEKQEAgLTE0OCw2ICsxMDUxLDEzIEBACiAJKiBzcmMvcGEvZmZpLmMgKGZmaV9jbG9zdXJlX2lubmVyX3BhMzIpOiBIYW5kbGUgRkZJX1RZUEVfTE9OR0RPVUJMRQogCXR5cGUgb24gSFAtVVguCiAKKzIwMTItMDItMTMgIEthaSBUaWV0eiAgPGt0aWV0ekByZWRoYXQuY29tPgorCisJUFIgbGliZmZpLzUyMjIxCisJKiBzcmMveDg2L2ZmaS5jIChmZmlfcHJlcF9yYXdfY2xvc3VyZV9sb2MpOiBBZGQgdGhpc2NhbGwKKwlzdXBwb3J0IGZvciBYODZfV0lOMzIuCisJKEZGSV9JTklUX1RSQU1QT0xJTkVfVEhJU0NBTEwpOiBGaXggZGlzcGxhY2VtZW50LgorCiAyMDA5LTEyLTExICBFcmljIEJvdGNhem91ICA8ZWJvdGNhem91QGFkYWNvcmUuY29tPgogCiAJKiBzcmMvc3BhcmMvZmZpLmMgKGZmaV9jbG9zdXJlX3NwYXJjX2lubmVyX3Y5KTogUHJvcGVybHkgYWxpZ24gJ2xvbmcKQEAgLTMyMiw2ICsxMjMyLDExIEBACiAJKiBtYW4vTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCiAJKiB0ZXN0c3VpdGUvTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCiAKKzIwMTEtMDgtMjIgIEphc3BlciBMaWV2aXNzZSBBZHJpYWFuc2UgPGphc3BlckBvcGVuYnNkLm9yZz4KKworCSogY29uZmlndXJlLmFjOiBBZGQgT3BlbkJTRC9ocHBhIGFuZCBPcGVuQlNEL3Bvd2VycGMgc3VwcG9ydC4KKwkqIGNvbmZpZ3VyZTogUmVidWlsdC4KKwogMjAwOS0wNy0zMCAgUmFsZiBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KIAogCSogY29uZmlndXJlLmFjIChfQUNfQVJHX1ZBUl9QUkVDSU9VUyk6IFVzZSBtNF9yZW5hbWVfZm9yY2UuCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL0NoYW5nZUxvZy5saWJmZmkgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL0NoYW5nZUxvZy5saWJmZmkKaW5kZXggNTI3MmYzMy4uZjNlZThiMCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9DaGFuZ2VMb2cubGliZmZpCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvQ2hhbmdlTG9nLmxpYmZmaQpAQCAtMSwzNSArMSw2IEBACi0yMDEwLTAxLTE1ICBBbnRob255IEdyZWVuICA8Z3JlZW5AcmVkaGF0LmNvbT4KKzIwMTEtMDItMDggIEFuZHJlYXMgVG9ibGVyICA8YW5kcmVhc3RAZmd6bmV0LmNoPgogCi0JKiBSRUFETUU6IEFkZCBub3RlcyBvbiBidWlsZGluZyB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgQysrLgotCi0yMDEwLTAxLTE1ICBEYW5pZWwgV2l0dGUgIDxkd2l0dGVAbW96aWxsYS5jb20+Ci0KLQkqIG1zdmNjLnNoOiBOZXcgZmlsZS4KLQotCSogc3JjL3g4Ni93aW4zMi5TOiBQb3J0IGFzc2VtYmx5IHJvdXRpbmVzIHRvIE1TVkMgYW5kICNpZmRlZi4KLQkqIHNyYy94ODYvZmZpLmM6IFR3ZWFrIGZ1bmN0aW9uIGRlY2xhcmF0aW9uIGFuZCByZW1vdmUgZXhjZXNzCi0JcGFyZW5zLgotCSogaW5jbHVkZS9mZmkuaC5pbjogQWRkIF9fZGVjbHNwZWMoYWxpZ24oOCkpIHRvIHR5cGVkZWYgc3RydWN0Ci0JZmZpX2Nsb3N1cmUuCi0KLQkqIHNyYy94ODYvZmZpLmM6IE1lcmdlIGZmaV9jYWxsX1NZU1YgYW5kIGZmaV9jYWxsX1NURENBTEwgaW50byBuZXcKLQlmdW5jdGlvbiBmZmlfY2FsbF93aW4zMiBvbiBYODZfV0lOMzIuCi0JKiBzcmMveDg2L3dpbjMyLlMgKGZmaV9jYWxsX1NZU1YpOiBSZW5hbWUgdG8gZmZpX2NhbGxfd2luMzIuCi0JKGZmaV9jYWxsX1NURENBTEwpOiBSZW1vdmUuCi0KLQkqIHNyYy9wcmVwX2NpZi5jIChmZmlfcHJlcF9jaWYpOiBNb3ZlIHN0YWNrIHNwYWNlIGFsbG9jYXRpb24gY29kZQotCXRvIGZmaV9wcmVwX2NpZl9tYWNoZGVwIGZvciB4ODYuCi0JKiBzcmMveDg2L2ZmaS5jIChmZmlfcHJlcF9jaWZfbWFjaGRlcCk6IFRvIGhlcmUuCi0KLTIwMTAtMDEtMTUgIE9saXZlciBLaWRkbGUgIDxva2lkZGxlQHlhaG9vLmNvLnVrPgotCi0JKiBzcmMveDg2L2ZmaXRhcmdldC5oIChmZmlfYWJpKTogQ2hlY2sgZm9yIF9faTM4NiBhbmQgX19hbWQ2NCBmb3IKLQlTdW4gU3R1ZGlvIGNvbXBpbGVyIGNvbXBhdGliaWxpdHkuIAotCi0yMDEwLTAxLTEyICBDb25yYWQgSXJ3aW4gPGNvbnJhZC5pcndpbkBnbWFpbC5jb20+Ci0KLQkqIGRvYy9saWJmZmkudGV4aTogQWRkIGNsb3N1cmUgZXhhbXBsZS4KLQkqIGRvYy9saWJmZmkuaW5mbzogUmVidWlsdC4KKwkqIHRlc3RzdWl0ZS9saWIvbGliZmZpLmV4cDogVHdlYWsgZm9yIHN0YW5kLWFsb25lIG1vZGUuCiAKIDIwMDktMTItMjUgIFNhbXVsaSBTdW9taW5lbiAgPHNzdW9taW5lbkBnZW50b28ub3JnPgogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL0xJQ0VOU0UgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL0xJQ0VOU0UKaW5kZXggZWMyZmQ2OS4uYWE2MDM0MiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9MSUNFTlNFCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvTElDRU5TRQpAQCAtMSw0ICsxLDQgQEAKLWxpYmZmaSAtIENvcHlyaWdodCAoYykgMTk5Ni0yMDA5ICBBbnRob255IEdyZWVuLCBSZWQgSGF0LCBJbmMgYW5kIG90aGVycy4gIAorbGliZmZpIC0gQ29weXJpZ2h0IChjKSAxOTk2LTIwMTIgIEFudGhvbnkgR3JlZW4sIFJlZCBIYXQsIEluYyBhbmQgb3RoZXJzLgogU2VlIHNvdXJjZSBmaWxlcyBmb3IgZGV0YWlscy4KIAogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCkBAIC05LDggKzksOCBAQAogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CiAKLVRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi1pbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KK1RoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlCitpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KIAogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9NYWtlZmlsZS5hbSBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvTWFrZWZpbGUuYW0KaW5kZXggZjQ3ZGQxYS4uNGE4NTVkNyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9NYWtlZmlsZS5hbQorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL01ha2VmaWxlLmFtCkBAIC0xMCwyOSArMTAsMzIgQEAKIAlzcmMvYXZyMzIvZmZpLmMgc3JjL2F2cjMyL3N5c3YuUyBzcmMvYXZyMzIvZmZpdGFyZ2V0LmggXAogCXNyYy9jcmlzL2ZmaS5jIHNyYy9jcmlzL3N5c3YuUyBzcmMvY3Jpcy9mZml0YXJnZXQuaCBcCiAJc3JjL2lhNjQvZmZpLmMgc3JjL2lhNjQvZmZpdGFyZ2V0Lmggc3JjL2lhNjQvaWE2NF9mbGFncy5oIFwKLQlzcmMvaWE2NC91bml4LlMgXAotCXNyYy9taXBzL2ZmaS5jIHNyYy9taXBzL24zMi5TIHNyYy9taXBzL28zMi5TIFwKLQlzcmMvbWlwcy9mZml0YXJnZXQuaCBcCi0Jc3JjL20zMnIvZmZpLmMgc3JjL20zMnIvc3lzdi5TIHNyYy9tMzJyL2ZmaXRhcmdldC5oIFwKLQlzcmMvbTY4ay9mZmkuYyBzcmMvbTY4ay9zeXN2LlMgc3JjL202OGsvZmZpdGFyZ2V0LmggXAotCXNyYy9wb3dlcnBjL2ZmaS5jIHNyYy9wb3dlcnBjL3N5c3YuUyBcCisJc3JjL2lhNjQvdW5peC5TIHNyYy9taXBzL2ZmaS5jIHNyYy9taXBzL24zMi5TIHNyYy9taXBzL28zMi5TIFwKKwlzcmMvbWlwcy9mZml0YXJnZXQuaCBzcmMvbTMyci9mZmkuYyBzcmMvbTMyci9zeXN2LlMgXAorCXNyYy9tMzJyL2ZmaXRhcmdldC5oIHNyYy9tNjhrL2ZmaS5jIHNyYy9tNjhrL3N5c3YuUyBcCisJc3JjL202OGsvZmZpdGFyZ2V0Lmggc3JjL3Bvd2VycGMvZmZpLmMgc3JjL3Bvd2VycGMvc3lzdi5TIFwKIAlzcmMvcG93ZXJwYy9saW51eDY0LlMgc3JjL3Bvd2VycGMvbGludXg2NF9jbG9zdXJlLlMgXAotCXNyYy9wb3dlcnBjL3BwY19jbG9zdXJlLlMgc3JjL3Bvd2VycGMvYXNtLmggXAotCXNyYy9wb3dlcnBjL2FpeC5TIHNyYy9wb3dlcnBjL2Rhcndpbi5TIFwKLQlzcmMvcG93ZXJwYy9haXhfY2xvc3VyZS5TIHNyYy9wb3dlcnBjL2Rhcndpbl9jbG9zdXJlLlMgXAotCXNyYy9wb3dlcnBjL2ZmaV9kYXJ3aW4uYyBzcmMvcG93ZXJwYy9mZml0YXJnZXQuaCBcCi0Jc3JjL3MzOTAvZmZpLmMgc3JjL3MzOTAvc3lzdi5TIHNyYy9zMzkwL2ZmaXRhcmdldC5oIFwKLQlzcmMvc2gvZmZpLmMgc3JjL3NoL3N5c3YuUyBzcmMvc2gvZmZpdGFyZ2V0LmggXAotCXNyYy9zaDY0L2ZmaS5jIHNyYy9zaDY0L3N5c3YuUyBzcmMvc2g2NC9mZml0YXJnZXQuaCBcCi0Jc3JjL3NwYXJjL3Y4LlMgc3JjL3NwYXJjL3Y5LlMgc3JjL3NwYXJjL2ZmaXRhcmdldC5oIFwKLQlzcmMvc3BhcmMvZmZpLmMgc3JjL3g4Ni9kYXJ3aW42NC5TIFwKLQlzcmMveDg2L2ZmaS5jIHNyYy94ODYvc3lzdi5TIHNyYy94ODYvd2luMzIuUyBzcmMveDg2L3dpbjY0LlMgXAotCXNyYy94ODYvZGFyd2luLlMgc3JjL3g4Ni9mcmVlYnNkLlMgXAotCXNyYy94ODYvZmZpNjQuYyBzcmMveDg2L3VuaXg2NC5TIHNyYy94ODYvZmZpdGFyZ2V0LmggXAotCXNyYy9wYS9mZml0YXJnZXQuaCBzcmMvcGEvZmZpLmMgc3JjL3BhL2xpbnV4LlMgc3JjL3BhL2hwdXgzMi5TIFwKLQlzcmMvZnJ2L2ZmaS5jIHNyYy9mcnYvZWFiaS5TIHNyYy9mcnYvZmZpdGFyZ2V0Lmggc3JjL2RsbWFsbG9jLmMgXAotCWxpYnRvb2wtdmVyc2lvbiBDaGFuZ2VMb2cubGliZmZpIG00L2xpYnRvb2wubTQgXAotCW00L2x0fm9ic29sZXRlLm00IG00L2x0b3B0aW9ucy5tNCBtNC9sdHN1Z2FyLm00IG00L2x0dmVyc2lvbi5tNAorCXNyYy9wb3dlcnBjL3BwY19jbG9zdXJlLlMgc3JjL3Bvd2VycGMvYXNtLmggc3JjL3Bvd2VycGMvYWl4LlMgXAorCXNyYy9wb3dlcnBjL2Rhcndpbi5TIHNyYy9wb3dlcnBjL2FpeF9jbG9zdXJlLlMgXAorCXNyYy9wb3dlcnBjL2Rhcndpbl9jbG9zdXJlLlMgc3JjL3Bvd2VycGMvZmZpX2Rhcndpbi5jIFwKKwlzcmMvcG93ZXJwYy9mZml0YXJnZXQuaCBzcmMvczM5MC9mZmkuYyBzcmMvczM5MC9zeXN2LlMgXAorCXNyYy9zMzkwL2ZmaXRhcmdldC5oIHNyYy9zaC9mZmkuYyBzcmMvc2gvc3lzdi5TCVwKKwlzcmMvc2gvZmZpdGFyZ2V0Lmggc3JjL3NoNjQvZmZpLmMgc3JjL3NoNjQvc3lzdi5TIFwKKwlzcmMvc2g2NC9mZml0YXJnZXQuaCBzcmMvc3BhcmMvdjguUyBzcmMvc3BhcmMvdjkuUyBcCisJc3JjL3NwYXJjL2ZmaXRhcmdldC5oIHNyYy9zcGFyYy9mZmkuYyBzcmMveDg2L2RhcndpbjY0LlMgXAorCXNyYy94ODYvZmZpLmMgc3JjL3g4Ni9zeXN2LlMgc3JjL3g4Ni93aW4zMi5TIHNyYy94ODYvZGFyd2luLlMgXAorCXNyYy94ODYvd2luNjQuUyBzcmMveDg2L2ZyZWVic2QuUyBzcmMveDg2L2ZmaTY0LmMgXAorCXNyYy94ODYvdW5peDY0LlMgc3JjL3g4Ni9mZml0YXJnZXQuaCBzcmMvcGEvZmZpdGFyZ2V0LmgJXAorCXNyYy9wYS9mZmkuYyBzcmMvcGEvbGludXguUyBzcmMvcGEvaHB1eDMyLlMgc3JjL2Zydi9mZmkuYyBcCisJc3JjL2Zydi9lYWJpLlMgc3JjL2Zydi9mZml0YXJnZXQuaCBzcmMvZGxtYWxsb2MuYyBcCisJc3JjL21veGllL2ZmaS5jIHNyYy9tb3hpZS9lYWJpLlMgbGlidG9vbC12ZXJzaW9uIFwKKwlDaGFuZ2VMb2cubGliZmZpIG00L2xpYnRvb2wubTQgbTQvbHR+b2Jzb2xldGUubTQgXAorCW00L2x0b3B0aW9ucy5tNCBtNC9sdHN1Z2FyLm00IG00L2x0dmVyc2lvbi5tNCBcCisJbTQvbHR2ZXJzaW9uLm00IHNyYy9hcm0vZ2VudHJhbXAuc2ggc3JjL2RlYnVnLmMgXAorCW1zdmNjLnNoIGdlbmVyYXRlLWlvcy1zb3VyY2UtYW5kLWhlYWRlcnMucHkgXAorCWdlbmVyYXRlLW9zeC1zb3VyY2UtYW5kLWhlYWRlcnMucHkgXAorICAgICAgICBsaWJmZmkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBcCisJc3JjL2FybS90cmFtcG9saW5lLlMKIAogaW5mb19URVhJTkZPUyA9IGRvYy9saWJmZmkudGV4aQogCkBAIC02OSw2ICs3Miw3IEBACiAJImV4ZWNfcHJlZml4PSQoZXhlY19wcmVmaXgpIiBcCiAJImluZm9kaXI9JChpbmZvZGlyKSIgXAogCSJsaWJkaXI9JChsaWJkaXIpIiBcCisJIm1hbmRpcj0kKG1hbmRpcikiIFwKIAkicHJlZml4PSQocHJlZml4KSIgXAogCSJBUj0kKEFSKSIgXAogCSJBUz0kKEFTKSIgXApAQCAtODYsNyArOTAsNyBAQAogbGliX0xUTElCUkFSSUVTID0gbGliZmZpLmxhCiBub2luc3RfTFRMSUJSQVJJRVMgPSBsaWJmZmlfY29udmVuaWVuY2UubGEKIAotbGliZmZpX2xhX1NPVVJDRVMgPSBzcmMvZGVidWcuYyBzcmMvcHJlcF9jaWYuYyBzcmMvdHlwZXMuYyBcCitsaWJmZmlfbGFfU09VUkNFUyA9IHNyYy9wcmVwX2NpZi5jIHNyYy90eXBlcy5jIFwKIAkJc3JjL3Jhd19hcGkuYyBzcmMvamF2YV9yYXdfYXBpLmMgc3JjL2Nsb3N1cmVzLmMKIAogcGtnY29uZmlnZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZwpAQCAtOTQsNiArOTgsMTAgQEAKIAogbm9kaXN0X2xpYmZmaV9sYV9TT1VSQ0VTID0KIAoraWYgRkZJX0RFQlVHCitub2Rpc3RfbGliZmZpX2xhX1NPVVJDRVMgKz0gc3JjL2RlYnVnLmMKK2VuZGlmCisKIGlmIE1JUFMKIG5vZGlzdF9saWJmZmlfbGFfU09VUkNFUyArPSBzcmMvbWlwcy9mZmkuYyBzcmMvbWlwcy9vMzIuUyBzcmMvbWlwcy9uMzIuUwogZW5kaWYKQEAgLTE0MSw2ICsxNDksOSBAQAogZW5kaWYKIGlmIEFSTQogbm9kaXN0X2xpYmZmaV9sYV9TT1VSQ0VTICs9IHNyYy9hcm0vc3lzdi5TIHNyYy9hcm0vZmZpLmMKK2lmIEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUKK25vZGlzdF9saWJmZmlfbGFfU09VUkNFUyArPSBzcmMvYXJtL3RyYW1wb2xpbmUuUworZW5kaWYKIGVuZGlmCiBpZiBBVlIzMgogbm9kaXN0X2xpYmZmaV9sYV9TT1VSQ0VTICs9IHNyYy9hdnIzMi9zeXN2LlMgc3JjL2F2cjMyL2ZmaS5jCkBAIC0xNTEsNiArMTYyLDkgQEAKIGlmIEZSVgogbm9kaXN0X2xpYmZmaV9sYV9TT1VSQ0VTICs9IHNyYy9mcnYvZWFiaS5TIHNyYy9mcnYvZmZpLmMKIGVuZGlmCitpZiBNT1hJRQorbm9kaXN0X2xpYmZmaV9sYV9TT1VSQ0VTICs9IHNyYy9tb3hpZS9lYWJpLlMgc3JjL21veGllL2ZmaS5jCitlbmRpZgogaWYgUzM5MAogbm9kaXN0X2xpYmZmaV9sYV9TT1VSQ0VTICs9IHNyYy9zMzkwL3N5c3YuUyBzcmMvczM5MC9mZmkuYwogZW5kaWYKQEAgLTE3MywxMiArMTg3LDE3IEBACiBsaWJmZmlfY29udmVuaWVuY2VfbGFfU09VUkNFUyA9ICQobGliZmZpX2xhX1NPVVJDRVMpCiBub2Rpc3RfbGliZmZpX2NvbnZlbmllbmNlX2xhX1NPVVJDRVMgPSAkKG5vZGlzdF9saWJmZmlfbGFfU09VUkNFUykKIAotQU1fQ0ZMQUdTID0gLVdhbGwgLWcgLWZleGNlcHRpb25zCitBTV9DRkxBR1MgPSAtZworaWYgRkZJX0RFQlVHCisjIEJ1aWxkIGRlYnVnLiBEZWZpbmUgRkZJX0RFQlVHIG9uIHRoZSBjb21tYW5kbGluZSBzbyB0aGF0LCB3aGVuIGJ1aWxkaW5nIHdpdGgKKyMgTVNWQywgaXQgY2FuIGxpbmsgYWdhaW5zdCB0aGUgZGVidWcgQ1JULgorQU1fQ0ZMQUdTICs9IC1ERkZJX0RFQlVHCitlbmRpZgogCiBsaWJmZmlfbGFfTERGTEFHUyA9IC12ZXJzaW9uLWluZm8gYGdyZXAgLXYgJ15cIycgJChzcmNkaXIpL2xpYnRvb2wtdmVyc2lvbmAgJChMVExERkxBR1MpICQoQU1fTFRMREZMQUdTKQogCi1BTV9DUFBGTEFHUyA9IC1JLiAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSAtSWluY2x1ZGUgLUkkKHRvcF9zcmNkaXIpL3NyYwotQU1fQ0NBU0ZMQUdTID0gJChBTV9DUFBGTEFHUykKK0FNX0NQUEZMQUdTID0gLUkuIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIC1JaW5jbHVkZSAtSSQodG9wX3NyY2Rpcikvc3JjIC1ERkZJX0JVSUxESU5HCitBTV9DQ0FTRkxBR1MgPSAkKEFNX0NQUEZMQUdTKSAtZwogCiAjIE5vIGluc3RhbGwtaHRtbCBvciBpbnN0YWxsLXBkZiBzdXBwb3J0IGluIGF1dG9tYWtlIHlldAogLlBIT05ZOiBpbnN0YWxsLWh0bWwgaW5zdGFsbC1wZGYKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvTWFrZWZpbGUuaW4gYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL01ha2VmaWxlLmluCmluZGV4IDQ5YWZjYzEuLjQzZWQ4NTYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvTWFrZWZpbGUuaW4KKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9NYWtlZmlsZS5pbgpAQCAtMSw5ICsxLDkgQEAKLSMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMyBmcm9tIE1ha2VmaWxlLmFtLgogIyBAY29uZmlndXJlX2lucHV0QAogCiAjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotIyBJbmMuCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuCiAjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAogIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCkBAIC0zNiwzOCArMzYsNDUgQEAKIGJ1aWxkX3RyaXBsZXQgPSBAYnVpbGRACiBob3N0X3RyaXBsZXQgPSBAaG9zdEAKIHRhcmdldF90cmlwbGV0ID0gQHRhcmdldEAKLUBNSVBTX1RSVUVAYW1fX2FwcGVuZF8xID0gc3JjL21pcHMvZmZpLmMgc3JjL21pcHMvbzMyLlMgc3JjL21pcHMvbjMyLlMKLUBYODZfVFJVRUBhbV9fYXBwZW5kXzIgPSBzcmMveDg2L2ZmaS5jIHNyYy94ODYvc3lzdi5TCi1AWDg2X0ZSRUVCU0RfVFJVRUBhbV9fYXBwZW5kXzMgPSBzcmMveDg2L2ZmaS5jIHNyYy94ODYvZnJlZWJzZC5TCi1AWDg2X1dJTjMyX1RSVUVAYW1fX2FwcGVuZF80ID0gc3JjL3g4Ni9mZmkuYyBzcmMveDg2L3dpbjMyLlMKLUBYODZfV0lONjRfVFJVRUBhbV9fYXBwZW5kXzUgPSBzcmMveDg2L2ZmaS5jIHNyYy94ODYvd2luNjQuUwotQFg4Nl9EQVJXSU5fVFJVRUBhbV9fYXBwZW5kXzYgPSBzcmMveDg2L2ZmaS5jIHNyYy94ODYvZGFyd2luLlMgc3JjL3g4Ni9mZmk2NC5jIHNyYy94ODYvZGFyd2luNjQuUwotQFNQQVJDX1RSVUVAYW1fX2FwcGVuZF83ID0gc3JjL3NwYXJjL2ZmaS5jIHNyYy9zcGFyYy92OC5TIHNyYy9zcGFyYy92OS5TCi1AQUxQSEFfVFJVRUBhbV9fYXBwZW5kXzggPSBzcmMvYWxwaGEvZmZpLmMgc3JjL2FscGhhL29zZi5TCi1ASUE2NF9UUlVFQGFtX19hcHBlbmRfOSA9IHNyYy9pYTY0L2ZmaS5jIHNyYy9pYTY0L3VuaXguUwotQE0zMlJfVFJVRUBhbV9fYXBwZW5kXzEwID0gc3JjL20zMnIvc3lzdi5TIHNyYy9tMzJyL2ZmaS5jCi1ATTY4S19UUlVFQGFtX19hcHBlbmRfMTEgPSBzcmMvbTY4ay9mZmkuYyBzcmMvbTY4ay9zeXN2LlMKLUBQT1dFUlBDX1RSVUVAYW1fX2FwcGVuZF8xMiA9IHNyYy9wb3dlcnBjL2ZmaS5jIHNyYy9wb3dlcnBjL3N5c3YuUyBzcmMvcG93ZXJwYy9wcGNfY2xvc3VyZS5TIHNyYy9wb3dlcnBjL2xpbnV4NjQuUyBzcmMvcG93ZXJwYy9saW51eDY0X2Nsb3N1cmUuUwotQFBPV0VSUENfQUlYX1RSVUVAYW1fX2FwcGVuZF8xMyA9IHNyYy9wb3dlcnBjL2ZmaV9kYXJ3aW4uYyBzcmMvcG93ZXJwYy9haXguUyBzcmMvcG93ZXJwYy9haXhfY2xvc3VyZS5TCi1AUE9XRVJQQ19EQVJXSU5fVFJVRUBhbV9fYXBwZW5kXzE0ID0gc3JjL3Bvd2VycGMvZmZpX2Rhcndpbi5jIHNyYy9wb3dlcnBjL2Rhcndpbi5TIHNyYy9wb3dlcnBjL2Rhcndpbl9jbG9zdXJlLlMKLUBQT1dFUlBDX0ZSRUVCU0RfVFJVRUBhbV9fYXBwZW5kXzE1ID0gc3JjL3Bvd2VycGMvZmZpLmMgc3JjL3Bvd2VycGMvc3lzdi5TIHNyYy9wb3dlcnBjL3BwY19jbG9zdXJlLlMKLUBBUk1fVFJVRUBhbV9fYXBwZW5kXzE2ID0gc3JjL2FybS9zeXN2LlMgc3JjL2FybS9mZmkuYwotQEFWUjMyX1RSVUVAYW1fX2FwcGVuZF8xNyA9IHNyYy9hdnIzMi9zeXN2LlMgc3JjL2F2cjMyL2ZmaS5jCi1ATElCRkZJX0NSSVNfVFJVRUBhbV9fYXBwZW5kXzE4ID0gc3JjL2NyaXMvc3lzdi5TIHNyYy9jcmlzL2ZmaS5jCi1ARlJWX1RSVUVAYW1fX2FwcGVuZF8xOSA9IHNyYy9mcnYvZWFiaS5TIHNyYy9mcnYvZmZpLmMKLUBTMzkwX1RSVUVAYW1fX2FwcGVuZF8yMCA9IHNyYy9zMzkwL3N5c3YuUyBzcmMvczM5MC9mZmkuYwotQFg4Nl82NF9UUlVFQGFtX19hcHBlbmRfMjEgPSBzcmMveDg2L2ZmaTY0LmMgc3JjL3g4Ni91bml4NjQuUyBzcmMveDg2L2ZmaS5jIHNyYy94ODYvc3lzdi5TCi1AU0hfVFJVRUBhbV9fYXBwZW5kXzIyID0gc3JjL3NoL3N5c3YuUyBzcmMvc2gvZmZpLmMKLUBTSDY0X1RSVUVAYW1fX2FwcGVuZF8yMyA9IHNyYy9zaDY0L3N5c3YuUyBzcmMvc2g2NC9mZmkuYwotQFBBX0xJTlVYX1RSVUVAYW1fX2FwcGVuZF8yNCA9IHNyYy9wYS9saW51eC5TIHNyYy9wYS9mZmkuYwotQFBBX0hQVVhfVFJVRUBhbV9fYXBwZW5kXzI1ID0gc3JjL3BhL2hwdXgzMi5TIHNyYy9wYS9mZmkuYworQEZGSV9ERUJVR19UUlVFQGFtX19hcHBlbmRfMSA9IHNyYy9kZWJ1Zy5jCitATUlQU19UUlVFQGFtX19hcHBlbmRfMiA9IHNyYy9taXBzL2ZmaS5jIHNyYy9taXBzL28zMi5TIHNyYy9taXBzL24zMi5TCitAWDg2X1RSVUVAYW1fX2FwcGVuZF8zID0gc3JjL3g4Ni9mZmkuYyBzcmMveDg2L3N5c3YuUworQFg4Nl9GUkVFQlNEX1RSVUVAYW1fX2FwcGVuZF80ID0gc3JjL3g4Ni9mZmkuYyBzcmMveDg2L2ZyZWVic2QuUworQFg4Nl9XSU4zMl9UUlVFQGFtX19hcHBlbmRfNSA9IHNyYy94ODYvZmZpLmMgc3JjL3g4Ni93aW4zMi5TCitAWDg2X1dJTjY0X1RSVUVAYW1fX2FwcGVuZF82ID0gc3JjL3g4Ni9mZmkuYyBzcmMveDg2L3dpbjY0LlMKK0BYODZfREFSV0lOX1RSVUVAYW1fX2FwcGVuZF83ID0gc3JjL3g4Ni9mZmkuYyBzcmMveDg2L2Rhcndpbi5TIHNyYy94ODYvZmZpNjQuYyBzcmMveDg2L2RhcndpbjY0LlMKK0BTUEFSQ19UUlVFQGFtX19hcHBlbmRfOCA9IHNyYy9zcGFyYy9mZmkuYyBzcmMvc3BhcmMvdjguUyBzcmMvc3BhcmMvdjkuUworQEFMUEhBX1RSVUVAYW1fX2FwcGVuZF85ID0gc3JjL2FscGhhL2ZmaS5jIHNyYy9hbHBoYS9vc2YuUworQElBNjRfVFJVRUBhbV9fYXBwZW5kXzEwID0gc3JjL2lhNjQvZmZpLmMgc3JjL2lhNjQvdW5peC5TCitATTMyUl9UUlVFQGFtX19hcHBlbmRfMTEgPSBzcmMvbTMyci9zeXN2LlMgc3JjL20zMnIvZmZpLmMKK0BNNjhLX1RSVUVAYW1fX2FwcGVuZF8xMiA9IHNyYy9tNjhrL2ZmaS5jIHNyYy9tNjhrL3N5c3YuUworQFBPV0VSUENfVFJVRUBhbV9fYXBwZW5kXzEzID0gc3JjL3Bvd2VycGMvZmZpLmMgc3JjL3Bvd2VycGMvc3lzdi5TIHNyYy9wb3dlcnBjL3BwY19jbG9zdXJlLlMgc3JjL3Bvd2VycGMvbGludXg2NC5TIHNyYy9wb3dlcnBjL2xpbnV4NjRfY2xvc3VyZS5TCitAUE9XRVJQQ19BSVhfVFJVRUBhbV9fYXBwZW5kXzE0ID0gc3JjL3Bvd2VycGMvZmZpX2Rhcndpbi5jIHNyYy9wb3dlcnBjL2FpeC5TIHNyYy9wb3dlcnBjL2FpeF9jbG9zdXJlLlMKK0BQT1dFUlBDX0RBUldJTl9UUlVFQGFtX19hcHBlbmRfMTUgPSBzcmMvcG93ZXJwYy9mZmlfZGFyd2luLmMgc3JjL3Bvd2VycGMvZGFyd2luLlMgc3JjL3Bvd2VycGMvZGFyd2luX2Nsb3N1cmUuUworQFBPV0VSUENfRlJFRUJTRF9UUlVFQGFtX19hcHBlbmRfMTYgPSBzcmMvcG93ZXJwYy9mZmkuYyBzcmMvcG93ZXJwYy9zeXN2LlMgc3JjL3Bvd2VycGMvcHBjX2Nsb3N1cmUuUworQEFSTV9UUlVFQGFtX19hcHBlbmRfMTcgPSBzcmMvYXJtL3N5c3YuUyBzcmMvYXJtL2ZmaS5jCitAQVJNX1RSVUVAQEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEVfVFJVRUBhbV9fYXBwZW5kXzE4ID0gc3JjL2FybS90cmFtcG9saW5lLlMKK0BBVlIzMl9UUlVFQGFtX19hcHBlbmRfMTkgPSBzcmMvYXZyMzIvc3lzdi5TIHNyYy9hdnIzMi9mZmkuYworQExJQkZGSV9DUklTX1RSVUVAYW1fX2FwcGVuZF8yMCA9IHNyYy9jcmlzL3N5c3YuUyBzcmMvY3Jpcy9mZmkuYworQEZSVl9UUlVFQGFtX19hcHBlbmRfMjEgPSBzcmMvZnJ2L2VhYmkuUyBzcmMvZnJ2L2ZmaS5jCitATU9YSUVfVFJVRUBhbV9fYXBwZW5kXzIyID0gc3JjL21veGllL2VhYmkuUyBzcmMvbW94aWUvZmZpLmMKK0BTMzkwX1RSVUVAYW1fX2FwcGVuZF8yMyA9IHNyYy9zMzkwL3N5c3YuUyBzcmMvczM5MC9mZmkuYworQFg4Nl82NF9UUlVFQGFtX19hcHBlbmRfMjQgPSBzcmMveDg2L2ZmaTY0LmMgc3JjL3g4Ni91bml4NjQuUyBzcmMveDg2L2ZmaS5jIHNyYy94ODYvc3lzdi5TCitAU0hfVFJVRUBhbV9fYXBwZW5kXzI1ID0gc3JjL3NoL3N5c3YuUyBzcmMvc2gvZmZpLmMKK0BTSDY0X1RSVUVAYW1fX2FwcGVuZF8yNiA9IHNyYy9zaDY0L3N5c3YuUyBzcmMvc2g2NC9mZmkuYworQFBBX0xJTlVYX1RSVUVAYW1fX2FwcGVuZF8yNyA9IHNyYy9wYS9saW51eC5TIHNyYy9wYS9mZmkuYworQFBBX0hQVVhfVFJVRUBhbV9fYXBwZW5kXzI4ID0gc3JjL3BhL2hwdXgzMi5TIHNyYy9wYS9mZmkuYworIyBCdWlsZCBkZWJ1Zy4gRGVmaW5lIEZGSV9ERUJVRyBvbiB0aGUgY29tbWFuZGxpbmUgc28gdGhhdCwgd2hlbiBidWlsZGluZyB3aXRoCisjIE1TVkMsIGl0IGNhbiBsaW5rIGFnYWluc3QgdGhlIGRlYnVnIENSVC4KK0BGRklfREVCVUdfVFJVRUBhbV9fYXBwZW5kXzI5ID0gLURGRklfREVCVUcKIHN1YmRpciA9IC4KIERJU1RfQ09NTU9OID0gUkVBRE1FICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAogCSQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHNyY2RpcikvZG9jL3N0YW1wLXZ0aSBcCiAJJChzcmNkaXIpL2RvYy92ZXJzaW9uLnRleGkgJChzcmNkaXIpL2ZmaWNvbmZpZy5oLmluIFwKLQkkKHNyY2RpcikvbGliZmZpLnBjLmluICQodG9wX3NyY2RpcikvY29uZmlndXJlIENoYW5nZUxvZyBcCi0JY29tcGlsZSBjb25maWcuZ3Vlc3MgY29uZmlnLnN1YiBkZXBjb21wIGluc3RhbGwtc2ggbHRtYWluLnNoIFwKLQltZGF0ZS1zaCBtaXNzaW5nIHRleGluZm8udGV4CisJJChzcmNkaXIpL2ZmaWNvbmZpZy5weS5pbiAkKHNyY2RpcikvbGliZmZpLnBjLmluIFwKKwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSBDaGFuZ2VMb2cgY29tcGlsZSBjb25maWcuZ3Vlc3MgXAorCWNvbmZpZy5zdWIgZGVwY29tcCBpbnN0YWxsLXNoIGx0bWFpbi5zaCBtZGF0ZS1zaCBtaXNzaW5nIFwKKwl0ZXhpbmZvLnRleAogQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAogYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvYWNpbmNsdWRlLm00IFwKIAkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwpAQCAtNzcsNyArODQsNyBAQAogIGNvbmZpZ3VyZS5saW5lbm8gY29uZmlnLnN0YXR1cy5saW5lbm8KIG1raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCiBDT05GSUdfSEVBREVSID0gZmZpY29uZmlnLmgKLUNPTkZJR19DTEVBTl9GSUxFUyA9IGxpYmZmaS5wYworQ09ORklHX0NMRUFOX0ZJTEVTID0gbGliZmZpLnBjIGZmaWNvbmZpZy5weQogQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KIGFtX192cGF0aF9hZGpfc2V0dXAgPSBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAnc3wufC58ZydgOwogYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKQEAgLTEwMCw1MSArMTA3LDYwIEBACiBhbV9fYmFzZV9saXN0ID0gXAogICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAogICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCithbV9fdW5pbnN0YWxsX2ZpbGVzX2Zyb21fZGlyID0geyBcCisgIHRlc3QgLXogIiQkZmlsZXMiIFwKKyAgICB8fCB7IHRlc3QgISAtZCAiJCRkaXIiICYmIHRlc3QgISAtZiAiJCRkaXIiICYmIHRlc3QgISAtciAiJCRkaXIiOyB9IFwKKyAgICB8fCB7IGVjaG8gIiAoIGNkICckJGRpcicgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisgICAgICAgICAkKGFtX19jZCkgIiQkZGlyIiAmJiBybSAtZiAkJGZpbGVzOyB9OyBcCisgIH0KIGFtX19pbnN0YWxsZGlycyA9ICIkKERFU1RESVIpJChsaWJkaXIpIiAiJChERVNURElSKSQoaW5mb2RpcikiIFwKIAkiJChERVNURElSKSQocGtnY29uZmlnZGlyKSIKIExUTElCUkFSSUVTID0gJChsaWJfTFRMSUJSQVJJRVMpICQobm9pbnN0X0xUTElCUkFSSUVTKQogbGliZmZpX2xhX0xJQkFERCA9CiBhbV9fZGlyc3RhbXAgPSAkKGFtX19sZWFkaW5nX2RvdClkaXJzdGFtcAotYW1fbGliZmZpX2xhX09CSkVDVFMgPSBzcmMvZGVidWcubG8gc3JjL3ByZXBfY2lmLmxvIHNyYy90eXBlcy5sbyBcCi0Jc3JjL3Jhd19hcGkubG8gc3JjL2phdmFfcmF3X2FwaS5sbyBzcmMvY2xvc3VyZXMubG8KLUBNSVBTX1RSVUVAYW1fX29iamVjdHNfMSA9IHNyYy9taXBzL2ZmaS5sbyBzcmMvbWlwcy9vMzIubG8gXAorYW1fbGliZmZpX2xhX09CSkVDVFMgPSBzcmMvcHJlcF9jaWYubG8gc3JjL3R5cGVzLmxvIHNyYy9yYXdfYXBpLmxvIFwKKwlzcmMvamF2YV9yYXdfYXBpLmxvIHNyYy9jbG9zdXJlcy5sbworQEZGSV9ERUJVR19UUlVFQGFtX19vYmplY3RzXzEgPSBzcmMvZGVidWcubG8KK0BNSVBTX1RSVUVAYW1fX29iamVjdHNfMiA9IHNyYy9taXBzL2ZmaS5sbyBzcmMvbWlwcy9vMzIubG8gXAogQE1JUFNfVFJVRUAJc3JjL21pcHMvbjMyLmxvCi1AWDg2X1RSVUVAYW1fX29iamVjdHNfMiA9IHNyYy94ODYvZmZpLmxvIHNyYy94ODYvc3lzdi5sbwotQFg4Nl9GUkVFQlNEX1RSVUVAYW1fX29iamVjdHNfMyA9IHNyYy94ODYvZmZpLmxvIHNyYy94ODYvZnJlZWJzZC5sbwotQFg4Nl9XSU4zMl9UUlVFQGFtX19vYmplY3RzXzQgPSBzcmMveDg2L2ZmaS5sbyBzcmMveDg2L3dpbjMyLmxvCi1AWDg2X1dJTjY0X1RSVUVAYW1fX29iamVjdHNfNSA9IHNyYy94ODYvZmZpLmxvIHNyYy94ODYvd2luNjQubG8KLUBYODZfREFSV0lOX1RSVUVAYW1fX29iamVjdHNfNiA9IHNyYy94ODYvZmZpLmxvIHNyYy94ODYvZGFyd2luLmxvIFwKK0BYODZfVFJVRUBhbV9fb2JqZWN0c18zID0gc3JjL3g4Ni9mZmkubG8gc3JjL3g4Ni9zeXN2LmxvCitAWDg2X0ZSRUVCU0RfVFJVRUBhbV9fb2JqZWN0c180ID0gc3JjL3g4Ni9mZmkubG8gc3JjL3g4Ni9mcmVlYnNkLmxvCitAWDg2X1dJTjMyX1RSVUVAYW1fX29iamVjdHNfNSA9IHNyYy94ODYvZmZpLmxvIHNyYy94ODYvd2luMzIubG8KK0BYODZfV0lONjRfVFJVRUBhbV9fb2JqZWN0c182ID0gc3JjL3g4Ni9mZmkubG8gc3JjL3g4Ni93aW42NC5sbworQFg4Nl9EQVJXSU5fVFJVRUBhbV9fb2JqZWN0c183ID0gc3JjL3g4Ni9mZmkubG8gc3JjL3g4Ni9kYXJ3aW4ubG8gXAogQFg4Nl9EQVJXSU5fVFJVRUAJc3JjL3g4Ni9mZmk2NC5sbyBzcmMveDg2L2RhcndpbjY0LmxvCi1AU1BBUkNfVFJVRUBhbV9fb2JqZWN0c183ID0gc3JjL3NwYXJjL2ZmaS5sbyBzcmMvc3BhcmMvdjgubG8gXAorQFNQQVJDX1RSVUVAYW1fX29iamVjdHNfOCA9IHNyYy9zcGFyYy9mZmkubG8gc3JjL3NwYXJjL3Y4LmxvIFwKIEBTUEFSQ19UUlVFQAlzcmMvc3BhcmMvdjkubG8KLUBBTFBIQV9UUlVFQGFtX19vYmplY3RzXzggPSBzcmMvYWxwaGEvZmZpLmxvIHNyYy9hbHBoYS9vc2YubG8KLUBJQTY0X1RSVUVAYW1fX29iamVjdHNfOSA9IHNyYy9pYTY0L2ZmaS5sbyBzcmMvaWE2NC91bml4LmxvCi1ATTMyUl9UUlVFQGFtX19vYmplY3RzXzEwID0gc3JjL20zMnIvc3lzdi5sbyBzcmMvbTMyci9mZmkubG8KLUBNNjhLX1RSVUVAYW1fX29iamVjdHNfMTEgPSBzcmMvbTY4ay9mZmkubG8gc3JjL202OGsvc3lzdi5sbwotQFBPV0VSUENfVFJVRUBhbV9fb2JqZWN0c18xMiA9IHNyYy9wb3dlcnBjL2ZmaS5sbyBzcmMvcG93ZXJwYy9zeXN2LmxvIFwKK0BBTFBIQV9UUlVFQGFtX19vYmplY3RzXzkgPSBzcmMvYWxwaGEvZmZpLmxvIHNyYy9hbHBoYS9vc2YubG8KK0BJQTY0X1RSVUVAYW1fX29iamVjdHNfMTAgPSBzcmMvaWE2NC9mZmkubG8gc3JjL2lhNjQvdW5peC5sbworQE0zMlJfVFJVRUBhbV9fb2JqZWN0c18xMSA9IHNyYy9tMzJyL3N5c3YubG8gc3JjL20zMnIvZmZpLmxvCitATTY4S19UUlVFQGFtX19vYmplY3RzXzEyID0gc3JjL202OGsvZmZpLmxvIHNyYy9tNjhrL3N5c3YubG8KK0BQT1dFUlBDX1RSVUVAYW1fX29iamVjdHNfMTMgPSBzcmMvcG93ZXJwYy9mZmkubG8gc3JjL3Bvd2VycGMvc3lzdi5sbyBcCiBAUE9XRVJQQ19UUlVFQAlzcmMvcG93ZXJwYy9wcGNfY2xvc3VyZS5sbyBcCiBAUE9XRVJQQ19UUlVFQAlzcmMvcG93ZXJwYy9saW51eDY0LmxvIFwKIEBQT1dFUlBDX1RSVUVACXNyYy9wb3dlcnBjL2xpbnV4NjRfY2xvc3VyZS5sbwotQFBPV0VSUENfQUlYX1RSVUVAYW1fX29iamVjdHNfMTMgPSBzcmMvcG93ZXJwYy9mZmlfZGFyd2luLmxvIFwKK0BQT1dFUlBDX0FJWF9UUlVFQGFtX19vYmplY3RzXzE0ID0gc3JjL3Bvd2VycGMvZmZpX2Rhcndpbi5sbyBcCiBAUE9XRVJQQ19BSVhfVFJVRUAJc3JjL3Bvd2VycGMvYWl4LmxvIFwKIEBQT1dFUlBDX0FJWF9UUlVFQAlzcmMvcG93ZXJwYy9haXhfY2xvc3VyZS5sbwotQFBPV0VSUENfREFSV0lOX1RSVUVAYW1fX29iamVjdHNfMTQgPSBzcmMvcG93ZXJwYy9mZmlfZGFyd2luLmxvIFwKK0BQT1dFUlBDX0RBUldJTl9UUlVFQGFtX19vYmplY3RzXzE1ID0gc3JjL3Bvd2VycGMvZmZpX2Rhcndpbi5sbyBcCiBAUE9XRVJQQ19EQVJXSU5fVFJVRUAJc3JjL3Bvd2VycGMvZGFyd2luLmxvIFwKIEBQT1dFUlBDX0RBUldJTl9UUlVFQAlzcmMvcG93ZXJwYy9kYXJ3aW5fY2xvc3VyZS5sbwotQFBPV0VSUENfRlJFRUJTRF9UUlVFQGFtX19vYmplY3RzXzE1ID0gc3JjL3Bvd2VycGMvZmZpLmxvIFwKK0BQT1dFUlBDX0ZSRUVCU0RfVFJVRUBhbV9fb2JqZWN0c18xNiA9IHNyYy9wb3dlcnBjL2ZmaS5sbyBcCiBAUE9XRVJQQ19GUkVFQlNEX1RSVUVACXNyYy9wb3dlcnBjL3N5c3YubG8gXAogQFBPV0VSUENfRlJFRUJTRF9UUlVFQAlzcmMvcG93ZXJwYy9wcGNfY2xvc3VyZS5sbwotQEFSTV9UUlVFQGFtX19vYmplY3RzXzE2ID0gc3JjL2FybS9zeXN2LmxvIHNyYy9hcm0vZmZpLmxvCi1AQVZSMzJfVFJVRUBhbV9fb2JqZWN0c18xNyA9IHNyYy9hdnIzMi9zeXN2LmxvIHNyYy9hdnIzMi9mZmkubG8KLUBMSUJGRklfQ1JJU19UUlVFQGFtX19vYmplY3RzXzE4ID0gc3JjL2NyaXMvc3lzdi5sbyBzcmMvY3Jpcy9mZmkubG8KLUBGUlZfVFJVRUBhbV9fb2JqZWN0c18xOSA9IHNyYy9mcnYvZWFiaS5sbyBzcmMvZnJ2L2ZmaS5sbwotQFMzOTBfVFJVRUBhbV9fb2JqZWN0c18yMCA9IHNyYy9zMzkwL3N5c3YubG8gc3JjL3MzOTAvZmZpLmxvCi1AWDg2XzY0X1RSVUVAYW1fX29iamVjdHNfMjEgPSBzcmMveDg2L2ZmaTY0LmxvIHNyYy94ODYvdW5peDY0LmxvIFwKK0BBUk1fVFJVRUBhbV9fb2JqZWN0c18xNyA9IHNyYy9hcm0vc3lzdi5sbyBzcmMvYXJtL2ZmaS5sbworQEFSTV9UUlVFQEBGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFX1RSVUVAYW1fX29iamVjdHNfMTggPSBzcmMvYXJtL3RyYW1wb2xpbmUubG8KK0BBVlIzMl9UUlVFQGFtX19vYmplY3RzXzE5ID0gc3JjL2F2cjMyL3N5c3YubG8gc3JjL2F2cjMyL2ZmaS5sbworQExJQkZGSV9DUklTX1RSVUVAYW1fX29iamVjdHNfMjAgPSBzcmMvY3Jpcy9zeXN2LmxvIHNyYy9jcmlzL2ZmaS5sbworQEZSVl9UUlVFQGFtX19vYmplY3RzXzIxID0gc3JjL2Zydi9lYWJpLmxvIHNyYy9mcnYvZmZpLmxvCitATU9YSUVfVFJVRUBhbV9fb2JqZWN0c18yMiA9IHNyYy9tb3hpZS9lYWJpLmxvIHNyYy9tb3hpZS9mZmkubG8KK0BTMzkwX1RSVUVAYW1fX29iamVjdHNfMjMgPSBzcmMvczM5MC9zeXN2LmxvIHNyYy9zMzkwL2ZmaS5sbworQFg4Nl82NF9UUlVFQGFtX19vYmplY3RzXzI0ID0gc3JjL3g4Ni9mZmk2NC5sbyBzcmMveDg2L3VuaXg2NC5sbyBcCiBAWDg2XzY0X1RSVUVACXNyYy94ODYvZmZpLmxvIHNyYy94ODYvc3lzdi5sbwotQFNIX1RSVUVAYW1fX29iamVjdHNfMjIgPSBzcmMvc2gvc3lzdi5sbyBzcmMvc2gvZmZpLmxvCi1AU0g2NF9UUlVFQGFtX19vYmplY3RzXzIzID0gc3JjL3NoNjQvc3lzdi5sbyBzcmMvc2g2NC9mZmkubG8KLUBQQV9MSU5VWF9UUlVFQGFtX19vYmplY3RzXzI0ID0gc3JjL3BhL2xpbnV4LmxvIHNyYy9wYS9mZmkubG8KLUBQQV9IUFVYX1RSVUVAYW1fX29iamVjdHNfMjUgPSBzcmMvcGEvaHB1eDMyLmxvIHNyYy9wYS9mZmkubG8KK0BTSF9UUlVFQGFtX19vYmplY3RzXzI1ID0gc3JjL3NoL3N5c3YubG8gc3JjL3NoL2ZmaS5sbworQFNINjRfVFJVRUBhbV9fb2JqZWN0c18yNiA9IHNyYy9zaDY0L3N5c3YubG8gc3JjL3NoNjQvZmZpLmxvCitAUEFfTElOVVhfVFJVRUBhbV9fb2JqZWN0c18yNyA9IHNyYy9wYS9saW51eC5sbyBzcmMvcGEvZmZpLmxvCitAUEFfSFBVWF9UUlVFQGFtX19vYmplY3RzXzI4ID0gc3JjL3BhL2hwdXgzMi5sbyBzcmMvcGEvZmZpLmxvCiBub2Rpc3RfbGliZmZpX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpICQoYW1fX29iamVjdHNfMikgXAogCSQoYW1fX29iamVjdHNfMykgJChhbV9fb2JqZWN0c180KSAkKGFtX19vYmplY3RzXzUpIFwKIAkkKGFtX19vYmplY3RzXzYpICQoYW1fX29iamVjdHNfNykgJChhbV9fb2JqZWN0c184KSBcCkBAIC0xNTMsMTcgKzE2OSwxOCBAQAogCSQoYW1fX29iamVjdHNfMTUpICQoYW1fX29iamVjdHNfMTYpICQoYW1fX29iamVjdHNfMTcpIFwKIAkkKGFtX19vYmplY3RzXzE4KSAkKGFtX19vYmplY3RzXzE5KSAkKGFtX19vYmplY3RzXzIwKSBcCiAJJChhbV9fb2JqZWN0c18yMSkgJChhbV9fb2JqZWN0c18yMikgJChhbV9fb2JqZWN0c18yMykgXAotCSQoYW1fX29iamVjdHNfMjQpICQoYW1fX29iamVjdHNfMjUpCisJJChhbV9fb2JqZWN0c18yNCkgJChhbV9fb2JqZWN0c18yNSkgJChhbV9fb2JqZWN0c18yNikgXAorCSQoYW1fX29iamVjdHNfMjcpICQoYW1fX29iamVjdHNfMjgpCiBsaWJmZmlfbGFfT0JKRUNUUyA9ICQoYW1fbGliZmZpX2xhX09CSkVDVFMpIFwKIAkkKG5vZGlzdF9saWJmZmlfbGFfT0JKRUNUUykKIGxpYmZmaV9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgXAogCSQoTElCVE9PTEZMQUdTKSAtLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgXAogCSQobGliZmZpX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAKIGxpYmZmaV9jb252ZW5pZW5jZV9sYV9MSUJBREQgPQotYW1fX29iamVjdHNfMjYgPSBzcmMvZGVidWcubG8gc3JjL3ByZXBfY2lmLmxvIHNyYy90eXBlcy5sbyBcCi0Jc3JjL3Jhd19hcGkubG8gc3JjL2phdmFfcmF3X2FwaS5sbyBzcmMvY2xvc3VyZXMubG8KLWFtX2xpYmZmaV9jb252ZW5pZW5jZV9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18yNikKLWFtX19vYmplY3RzXzI3ID0gJChhbV9fb2JqZWN0c18xKSAkKGFtX19vYmplY3RzXzIpICQoYW1fX29iamVjdHNfMykgXAorYW1fX29iamVjdHNfMjkgPSBzcmMvcHJlcF9jaWYubG8gc3JjL3R5cGVzLmxvIHNyYy9yYXdfYXBpLmxvIFwKKwlzcmMvamF2YV9yYXdfYXBpLmxvIHNyYy9jbG9zdXJlcy5sbworYW1fbGliZmZpX2NvbnZlbmllbmNlX2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzI5KQorYW1fX29iamVjdHNfMzAgPSAkKGFtX19vYmplY3RzXzEpICQoYW1fX29iamVjdHNfMikgJChhbV9fb2JqZWN0c18zKSBcCiAJJChhbV9fb2JqZWN0c180KSAkKGFtX19vYmplY3RzXzUpICQoYW1fX29iamVjdHNfNikgXAogCSQoYW1fX29iamVjdHNfNykgJChhbV9fb2JqZWN0c184KSAkKGFtX19vYmplY3RzXzkpIFwKIAkkKGFtX19vYmplY3RzXzEwKSAkKGFtX19vYmplY3RzXzExKSAkKGFtX19vYmplY3RzXzEyKSBcCkBAIC0xNzEsOCArMTg4LDkgQEAKIAkkKGFtX19vYmplY3RzXzE2KSAkKGFtX19vYmplY3RzXzE3KSAkKGFtX19vYmplY3RzXzE4KSBcCiAJJChhbV9fb2JqZWN0c18xOSkgJChhbV9fb2JqZWN0c18yMCkgJChhbV9fb2JqZWN0c18yMSkgXAogCSQoYW1fX29iamVjdHNfMjIpICQoYW1fX29iamVjdHNfMjMpICQoYW1fX29iamVjdHNfMjQpIFwKLQkkKGFtX19vYmplY3RzXzI1KQotbm9kaXN0X2xpYmZmaV9jb252ZW5pZW5jZV9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18yNykKKwkkKGFtX19vYmplY3RzXzI1KSAkKGFtX19vYmplY3RzXzI2KSAkKGFtX19vYmplY3RzXzI3KSBcCisJJChhbV9fb2JqZWN0c18yOCkKK25vZGlzdF9saWJmZmlfY29udmVuaWVuY2VfbGFfT0JKRUNUUyA9ICQoYW1fX29iamVjdHNfMzApCiBsaWJmZmlfY29udmVuaWVuY2VfbGFfT0JKRUNUUyA9ICQoYW1fbGliZmZpX2NvbnZlbmllbmNlX2xhX09CSkVDVFMpIFwKIAkkKG5vZGlzdF9saWJmZmlfY29udmVuaWVuY2VfbGFfT0JKRUNUUykKIERFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNACkBAIC0yMjksOSArMjQ3LDExIEBACiBkaXN0ZGlyID0gJChQQUNLQUdFKS0kKFZFUlNJT04pCiB0b3BfZGlzdGRpciA9ICQoZGlzdGRpcikKIGFtX19yZW1vdmVfZGlzdGRpciA9IFwKLSAgeyB0ZXN0ICEgLWQgIiQoZGlzdGRpcikiIFwKLSAgICB8fCB7IGZpbmQgIiQoZGlzdGRpcikiIC10eXBlIGQgISAtcGVybSAtMjAwIC1leGVjIGNobW9kIHUrdyB7fSAnOycgXAotICAgICAgICAgJiYgcm0gLWZyICIkKGRpc3RkaXIpIjsgfTsgfQorICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpIjsgdGhlbiBcCisgICAgZmluZCAiJChkaXN0ZGlyKSIgLXR5cGUgZCAhIC1wZXJtIC0yMDAgLWV4ZWMgY2htb2QgdSt3IHt9ICc7JyBcCisgICAgICAmJiBybSAtcmYgIiQoZGlzdGRpcikiIFwKKyAgICAgIHx8IHsgc2xlZXAgNSAmJiBybSAtcmYgIiQoZGlzdGRpcikiOyB9OyBcCisgIGVsc2UgOjsgZmkKIGFtX19yZWxhdGl2aXplID0gXAogICBkaXIwPWBwd2RgOyBcCiAgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXApAQCAtMjYwLDYgKzI4MCw4IEBACiBESVNUX0FSQ0hJVkVTID0gJChkaXN0ZGlyKS50YXIuZ3oKIEdaSVBfRU5WID0gLS1iZXN0CiBkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzID0gZmluZCAuIC10eXBlIGYgLXByaW50CithbV9fZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcyA9ICQoZGlzdHVuaW5zdGFsbGNoZWNrX2xpc3RmaWxlcykgXAorICB8IHNlZCAnc3xeXC4vfCQocHJlZml4KS98JyB8IGdyZXAgLXYgJyQoaW5mb2RpcikvZGlyJCQnCiBkaXN0Y2xlYW5jaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKIEFDTE9DQUwgPSBAQUNMT0NBTEAKIEFMTE9DQSA9IEBBTExPQ0FACkBAIC0yODIsNiArMzA0LDcgQEAKIENZR1BBVEhfVyA9IEBDWUdQQVRIX1dACiBERUZTID0gQERFRlNACiBERVBESVIgPSBAREVQRElSQAorRExMVE9PTCA9IEBETExUT09MQAogRFNZTVVUSUwgPSBARFNZTVVUSUxACiBEVU1QQklOID0gQERVTVBCSU5ACiBFQ0hPX0MgPSBARUNIT19DQApAQCAtMjg5LDYgKzMxMiw3IEBACiBFQ0hPX1QgPSBARUNIT19UQAogRUdSRVAgPSBARUdSRVBACiBFWEVFWFQgPSBARVhFRVhUQAorRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRSA9IEBGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFQAogRkdSRVAgPSBARkdSRVBACiBHUkVQID0gQEdSRVBACiBIQVZFX0xPTkdfRE9VQkxFID0gQEhBVkVfTE9OR19ET1VCTEVACkBAIC0zMDcsNiArMzMxLDcgQEAKIExUTElCT0JKUyA9IEBMVExJQk9CSlNACiBNQUlOVCA9IEBNQUlOVEAKIE1BS0VJTkZPID0gQE1BS0VJTkZPQAorTUFOSUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAogTUtESVJfUCA9IEBNS0RJUl9QQAogTk0gPSBATk1ACiBOTUVESVQgPSBATk1FRElUQApAQCAtMzE5LDYgKzM0NCw3IEBACiBQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAogUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACiBQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACiBQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAogUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACiBSQU5MSUIgPSBAUkFOTElCQApAQCAtMzMzLDYgKzM1OSw3IEBACiBhYnNfc3JjZGlyID0gQGFic19zcmNkaXJACiBhYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACiBhYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0FSID0gQGFjX2N0X0FSQAogYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACiBhY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACiBhbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKQEAgLTM2NSw3ICszOTIsNiBAQAogbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAogbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKIGxvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLWx0X0VDSE8gPSBAbHRfRUNIT0AKIG1hbmRpciA9IEBtYW5kaXJACiBta2Rpcl9wID0gQG1rZGlyX3BACiBvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACkBAIC0zOTUsMjkgKzQyMSwzMiBAQAogCXNyYy9hdnIzMi9mZmkuYyBzcmMvYXZyMzIvc3lzdi5TIHNyYy9hdnIzMi9mZml0YXJnZXQuaCBcCiAJc3JjL2NyaXMvZmZpLmMgc3JjL2NyaXMvc3lzdi5TIHNyYy9jcmlzL2ZmaXRhcmdldC5oIFwKIAlzcmMvaWE2NC9mZmkuYyBzcmMvaWE2NC9mZml0YXJnZXQuaCBzcmMvaWE2NC9pYTY0X2ZsYWdzLmggXAotCXNyYy9pYTY0L3VuaXguUyBcCi0Jc3JjL21pcHMvZmZpLmMgc3JjL21pcHMvbjMyLlMgc3JjL21pcHMvbzMyLlMgXAotCXNyYy9taXBzL2ZmaXRhcmdldC5oIFwKLQlzcmMvbTMyci9mZmkuYyBzcmMvbTMyci9zeXN2LlMgc3JjL20zMnIvZmZpdGFyZ2V0LmggXAotCXNyYy9tNjhrL2ZmaS5jIHNyYy9tNjhrL3N5c3YuUyBzcmMvbTY4ay9mZml0YXJnZXQuaCBcCi0Jc3JjL3Bvd2VycGMvZmZpLmMgc3JjL3Bvd2VycGMvc3lzdi5TIFwKKwlzcmMvaWE2NC91bml4LlMgc3JjL21pcHMvZmZpLmMgc3JjL21pcHMvbjMyLlMgc3JjL21pcHMvbzMyLlMgXAorCXNyYy9taXBzL2ZmaXRhcmdldC5oIHNyYy9tMzJyL2ZmaS5jIHNyYy9tMzJyL3N5c3YuUyBcCisJc3JjL20zMnIvZmZpdGFyZ2V0Lmggc3JjL202OGsvZmZpLmMgc3JjL202OGsvc3lzdi5TIFwKKwlzcmMvbTY4ay9mZml0YXJnZXQuaCBzcmMvcG93ZXJwYy9mZmkuYyBzcmMvcG93ZXJwYy9zeXN2LlMgXAogCXNyYy9wb3dlcnBjL2xpbnV4NjQuUyBzcmMvcG93ZXJwYy9saW51eDY0X2Nsb3N1cmUuUyBcCi0Jc3JjL3Bvd2VycGMvcHBjX2Nsb3N1cmUuUyBzcmMvcG93ZXJwYy9hc20uaCBcCi0Jc3JjL3Bvd2VycGMvYWl4LlMgc3JjL3Bvd2VycGMvZGFyd2luLlMgXAotCXNyYy9wb3dlcnBjL2FpeF9jbG9zdXJlLlMgc3JjL3Bvd2VycGMvZGFyd2luX2Nsb3N1cmUuUyBcCi0Jc3JjL3Bvd2VycGMvZmZpX2Rhcndpbi5jIHNyYy9wb3dlcnBjL2ZmaXRhcmdldC5oIFwKLQlzcmMvczM5MC9mZmkuYyBzcmMvczM5MC9zeXN2LlMgc3JjL3MzOTAvZmZpdGFyZ2V0LmggXAotCXNyYy9zaC9mZmkuYyBzcmMvc2gvc3lzdi5TIHNyYy9zaC9mZml0YXJnZXQuaCBcCi0Jc3JjL3NoNjQvZmZpLmMgc3JjL3NoNjQvc3lzdi5TIHNyYy9zaDY0L2ZmaXRhcmdldC5oIFwKLQlzcmMvc3BhcmMvdjguUyBzcmMvc3BhcmMvdjkuUyBzcmMvc3BhcmMvZmZpdGFyZ2V0LmggXAotCXNyYy9zcGFyYy9mZmkuYyBzcmMveDg2L2RhcndpbjY0LlMgXAotCXNyYy94ODYvZmZpLmMgc3JjL3g4Ni9zeXN2LlMgc3JjL3g4Ni93aW4zMi5TIHNyYy94ODYvd2luNjQuUyBcCi0Jc3JjL3g4Ni9kYXJ3aW4uUyBzcmMveDg2L2ZyZWVic2QuUyBcCi0Jc3JjL3g4Ni9mZmk2NC5jIHNyYy94ODYvdW5peDY0LlMgc3JjL3g4Ni9mZml0YXJnZXQuaCBcCi0Jc3JjL3BhL2ZmaXRhcmdldC5oIHNyYy9wYS9mZmkuYyBzcmMvcGEvbGludXguUyBzcmMvcGEvaHB1eDMyLlMgXAotCXNyYy9mcnYvZmZpLmMgc3JjL2Zydi9lYWJpLlMgc3JjL2Zydi9mZml0YXJnZXQuaCBzcmMvZGxtYWxsb2MuYyBcCi0JbGlidG9vbC12ZXJzaW9uIENoYW5nZUxvZy5saWJmZmkgbTQvbGlidG9vbC5tNCBcCi0JbTQvbHR+b2Jzb2xldGUubTQgbTQvbHRvcHRpb25zLm00IG00L2x0c3VnYXIubTQgbTQvbHR2ZXJzaW9uLm00CisJc3JjL3Bvd2VycGMvcHBjX2Nsb3N1cmUuUyBzcmMvcG93ZXJwYy9hc20uaCBzcmMvcG93ZXJwYy9haXguUyBcCisJc3JjL3Bvd2VycGMvZGFyd2luLlMgc3JjL3Bvd2VycGMvYWl4X2Nsb3N1cmUuUyBcCisJc3JjL3Bvd2VycGMvZGFyd2luX2Nsb3N1cmUuUyBzcmMvcG93ZXJwYy9mZmlfZGFyd2luLmMgXAorCXNyYy9wb3dlcnBjL2ZmaXRhcmdldC5oIHNyYy9zMzkwL2ZmaS5jIHNyYy9zMzkwL3N5c3YuUyBcCisJc3JjL3MzOTAvZmZpdGFyZ2V0Lmggc3JjL3NoL2ZmaS5jIHNyYy9zaC9zeXN2LlMJXAorCXNyYy9zaC9mZml0YXJnZXQuaCBzcmMvc2g2NC9mZmkuYyBzcmMvc2g2NC9zeXN2LlMgXAorCXNyYy9zaDY0L2ZmaXRhcmdldC5oIHNyYy9zcGFyYy92OC5TIHNyYy9zcGFyYy92OS5TIFwKKwlzcmMvc3BhcmMvZmZpdGFyZ2V0Lmggc3JjL3NwYXJjL2ZmaS5jIHNyYy94ODYvZGFyd2luNjQuUyBcCisJc3JjL3g4Ni9mZmkuYyBzcmMveDg2L3N5c3YuUyBzcmMveDg2L3dpbjMyLlMgc3JjL3g4Ni9kYXJ3aW4uUyBcCisJc3JjL3g4Ni93aW42NC5TIHNyYy94ODYvZnJlZWJzZC5TIHNyYy94ODYvZmZpNjQuYyBcCisJc3JjL3g4Ni91bml4NjQuUyBzcmMveDg2L2ZmaXRhcmdldC5oIHNyYy9wYS9mZml0YXJnZXQuaAlcCisJc3JjL3BhL2ZmaS5jIHNyYy9wYS9saW51eC5TIHNyYy9wYS9ocHV4MzIuUyBzcmMvZnJ2L2ZmaS5jIFwKKwlzcmMvZnJ2L2VhYmkuUyBzcmMvZnJ2L2ZmaXRhcmdldC5oIHNyYy9kbG1hbGxvYy5jIFwKKwlzcmMvbW94aWUvZmZpLmMgc3JjL21veGllL2VhYmkuUyBsaWJ0b29sLXZlcnNpb24gXAorCUNoYW5nZUxvZy5saWJmZmkgbTQvbGlidG9vbC5tNCBtNC9sdH5vYnNvbGV0ZS5tNCBcCisJbTQvbHRvcHRpb25zLm00IG00L2x0c3VnYXIubTQgbTQvbHR2ZXJzaW9uLm00IFwKKwltNC9sdHZlcnNpb24ubTQgc3JjL2FybS9nZW50cmFtcC5zaCBzcmMvZGVidWcuYyBcCisJbXN2Y2Muc2ggZ2VuZXJhdGUtaW9zLXNvdXJjZS1hbmQtaGVhZGVycy5weSBcCisJZ2VuZXJhdGUtb3N4LXNvdXJjZS1hbmQtaGVhZGVycy5weSBcCisgICAgICAgIGxpYmZmaS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIFwKKwlzcmMvYXJtL3RyYW1wb2xpbmUuUwogCiBpbmZvX1RFWElORk9TID0gZG9jL2xpYmZmaS50ZXhpCiAKQEAgLTQ0OCw2ICs0NzcsNyBAQAogCSJleGVjX3ByZWZpeD0kKGV4ZWNfcHJlZml4KSIgXAogCSJpbmZvZGlyPSQoaW5mb2RpcikiIFwKIAkibGliZGlyPSQobGliZGlyKSIgXAorCSJtYW5kaXI9JChtYW5kaXIpIiBcCiAJInByZWZpeD0kKHByZWZpeCkiIFwKIAkiQVI9JChBUikiIFwKIAkiQVM9JChBUykiIFwKQEAgLTQ2Miw3ICs0OTIsNyBAQAogQUNMT0NBTF9BTUZMQUdTID0gJChBQ0xPQ0FMX0FNRkxBR1MpIC1JIG00CiBsaWJfTFRMSUJSQVJJRVMgPSBsaWJmZmkubGEKIG5vaW5zdF9MVExJQlJBUklFUyA9IGxpYmZmaV9jb252ZW5pZW5jZS5sYQotbGliZmZpX2xhX1NPVVJDRVMgPSBzcmMvZGVidWcuYyBzcmMvcHJlcF9jaWYuYyBzcmMvdHlwZXMuYyBcCitsaWJmZmlfbGFfU09VUkNFUyA9IHNyYy9wcmVwX2NpZi5jIHNyYy90eXBlcy5jIFwKIAkJc3JjL3Jhd19hcGkuYyBzcmMvamF2YV9yYXdfYXBpLmMgc3JjL2Nsb3N1cmVzLmMKIAogcGtnY29uZmlnZGlyID0gJChsaWJkaXIpL3BrZ2NvbmZpZwpAQCAtNDc1LDE5ICs1MDUsMjAgQEAKIAkkKGFtX19hcHBlbmRfMTUpICQoYW1fX2FwcGVuZF8xNikgJChhbV9fYXBwZW5kXzE3KSBcCiAJJChhbV9fYXBwZW5kXzE4KSAkKGFtX19hcHBlbmRfMTkpICQoYW1fX2FwcGVuZF8yMCkgXAogCSQoYW1fX2FwcGVuZF8yMSkgJChhbV9fYXBwZW5kXzIyKSAkKGFtX19hcHBlbmRfMjMpIFwKLQkkKGFtX19hcHBlbmRfMjQpICQoYW1fX2FwcGVuZF8yNSkKKwkkKGFtX19hcHBlbmRfMjQpICQoYW1fX2FwcGVuZF8yNSkgJChhbV9fYXBwZW5kXzI2KSBcCisJJChhbV9fYXBwZW5kXzI3KSAkKGFtX19hcHBlbmRfMjgpCiBsaWJmZmlfY29udmVuaWVuY2VfbGFfU09VUkNFUyA9ICQobGliZmZpX2xhX1NPVVJDRVMpCiBub2Rpc3RfbGliZmZpX2NvbnZlbmllbmNlX2xhX1NPVVJDRVMgPSAkKG5vZGlzdF9saWJmZmlfbGFfU09VUkNFUykKLUFNX0NGTEFHUyA9IC1XYWxsIC1nIC1mZXhjZXB0aW9ucwotbGliZmZpX2xhX0xERkxBR1MgPSAtdmVyc2lvbi1pbmZvIGBncmVwIC12ICdeXCMnICQoc3JjZGlyKS9saWJ0b29sLXZlcnNpb25gICQoQU1fTFRMREZMQUdTKQotQU1fQ1BQRkxBR1MgPSAtSS4gLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLUlpbmNsdWRlIC1JJCh0b3Bfc3JjZGlyKS9zcmMKLUFNX0NDQVNGTEFHUyA9ICQoQU1fQ1BQRkxBR1MpCitBTV9DRkxBR1MgPSAtZyAkKGFtX19hcHBlbmRfMjkpCitsaWJmZmlfbGFfTERGTEFHUyA9IC12ZXJzaW9uLWluZm8gYGdyZXAgLXYgJ15cIycgJChzcmNkaXIpL2xpYnRvb2wtdmVyc2lvbmAgJChMVExERkxBR1MpICQoQU1fTFRMREZMQUdTKQorQU1fQ1BQRkxBR1MgPSAtSS4gLUkkKHRvcF9zcmNkaXIpL2luY2x1ZGUgLUlpbmNsdWRlIC1JJCh0b3Bfc3JjZGlyKS9zcmMgLURGRklfQlVJTERJTkcKK0FNX0NDQVNGTEFHUyA9ICQoQU1fQ1BQRkxBR1MpIC1nCiBhbGw6IGZmaWNvbmZpZy5oCiAJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYWxsLXJlY3Vyc2l2ZQogCiAuU1VGRklYRVM6CiAuU1VGRklYRVM6IC5TIC5jIC5kdmkgLmxvIC5vIC5vYmogLnBzCi1hbS0tcmVmcmVzaDoKK2FtLS1yZWZyZXNoOiBNYWtlZmlsZQogCUA6CiAkKHNyY2RpcikvTWFrZWZpbGUuaW46IEBNQUlOVEFJTkVSX01PREVfVFJVRUAgJChzcmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19jb25maWd1cmVfZGVwcykKIAlAZm9yIGRlcCBpbiAkPzsgZG8gXApAQCAtNTIzLDEwICs1NTQsOCBAQAogJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKIAogZmZpY29uZmlnLmg6IHN0YW1wLWgxCi0JQGlmIHRlc3QgISAtZiAkQDsgdGhlbiBcCi0JICBybSAtZiBzdGFtcC1oMTsgXAotCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgc3RhbXAtaDE7IFwKLQllbHNlIDo7IGZpCisJQGlmIHRlc3QgISAtZiAkQDsgdGhlbiBybSAtZiBzdGFtcC1oMTsgZWxzZSA6OyBmaQorCUBpZiB0ZXN0ICEgLWYgJEA7IHRoZW4gJChNQUtFKSAkKEFNX01BS0VGTEFHUykgc3RhbXAtaDE7IGVsc2UgOjsgZmkKIAogc3RhbXAtaDE6ICQoc3JjZGlyKS9mZmljb25maWcuaC5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwogCUBybSAtZiBzdGFtcC1oMQpAQCAtNTQwLDYgKzU2OSw4IEBACiAJLXJtIC1mIGZmaWNvbmZpZy5oIHN0YW1wLWgxCiBsaWJmZmkucGM6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9saWJmZmkucGMuaW4KIAljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACitmZmljb25maWcucHk6ICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzICQoc3JjZGlyKS9mZmljb25maWcucHkuaW4KKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACiBpbnN0YWxsLWxpYkxUTElCUkFSSUVTOiAkKGxpYl9MVExJQlJBUklFUykKIAlAJChOT1JNQUxfSU5TVEFMTCkKIAl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCkBAIC01ODYsMTIgKzYxNywxMiBAQAogc3JjLyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCk6CiAJQCQoTUtESVJfUCkgc3JjLyQoREVQRElSKQogCUA6ID4gc3JjLyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCkKLXNyYy9kZWJ1Zy5sbzogc3JjLyQoYW1fX2RpcnN0YW1wKSBzcmMvJChERVBESVIpLyQoYW1fX2RpcnN0YW1wKQogc3JjL3ByZXBfY2lmLmxvOiBzcmMvJChhbV9fZGlyc3RhbXApIHNyYy8kKERFUERJUikvJChhbV9fZGlyc3RhbXApCiBzcmMvdHlwZXMubG86IHNyYy8kKGFtX19kaXJzdGFtcCkgc3JjLyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCkKIHNyYy9yYXdfYXBpLmxvOiBzcmMvJChhbV9fZGlyc3RhbXApIHNyYy8kKERFUERJUikvJChhbV9fZGlyc3RhbXApCiBzcmMvamF2YV9yYXdfYXBpLmxvOiBzcmMvJChhbV9fZGlyc3RhbXApIHNyYy8kKERFUERJUikvJChhbV9fZGlyc3RhbXApCiBzcmMvY2xvc3VyZXMubG86IHNyYy8kKGFtX19kaXJzdGFtcCkgc3JjLyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCkKK3NyYy9kZWJ1Zy5sbzogc3JjLyQoYW1fX2RpcnN0YW1wKSBzcmMvJChERVBESVIpLyQoYW1fX2RpcnN0YW1wKQogc3JjL21pcHMvJChhbV9fZGlyc3RhbXApOgogCUAkKE1LRElSX1ApIHNyYy9taXBzCiAJQDogPiBzcmMvbWlwcy8kKGFtX19kaXJzdGFtcCkKQEAgLTcxNCw2ICs3NDUsOCBAQAogCXNyYy9hcm0vJChERVBESVIpLyQoYW1fX2RpcnN0YW1wKQogc3JjL2FybS9mZmkubG86IHNyYy9hcm0vJChhbV9fZGlyc3RhbXApIFwKIAlzcmMvYXJtLyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCkKK3NyYy9hcm0vdHJhbXBvbGluZS5sbzogc3JjL2FybS8kKGFtX19kaXJzdGFtcCkgXAorCXNyYy9hcm0vJChERVBESVIpLyQoYW1fX2RpcnN0YW1wKQogc3JjL2F2cjMyLyQoYW1fX2RpcnN0YW1wKToKIAlAJChNS0RJUl9QKSBzcmMvYXZyMzIKIAlAOiA+IHNyYy9hdnIzMi8kKGFtX19kaXJzdGFtcCkKQEAgLTc0NCw2ICs3NzcsMTYgQEAKIAlzcmMvZnJ2LyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCkKIHNyYy9mcnYvZmZpLmxvOiBzcmMvZnJ2LyQoYW1fX2RpcnN0YW1wKSBcCiAJc3JjL2Zydi8kKERFUERJUikvJChhbV9fZGlyc3RhbXApCitzcmMvbW94aWUvJChhbV9fZGlyc3RhbXApOgorCUAkKE1LRElSX1ApIHNyYy9tb3hpZQorCUA6ID4gc3JjL21veGllLyQoYW1fX2RpcnN0YW1wKQorc3JjL21veGllLyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCk6CisJQCQoTUtESVJfUCkgc3JjL21veGllLyQoREVQRElSKQorCUA6ID4gc3JjL21veGllLyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCkKK3NyYy9tb3hpZS9lYWJpLmxvOiBzcmMvbW94aWUvJChhbV9fZGlyc3RhbXApIFwKKwlzcmMvbW94aWUvJChERVBESVIpLyQoYW1fX2RpcnN0YW1wKQorc3JjL21veGllL2ZmaS5sbzogc3JjL21veGllLyQoYW1fX2RpcnN0YW1wKSBcCisJc3JjL21veGllLyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCkKIHNyYy9zMzkwLyQoYW1fX2RpcnN0YW1wKToKIAlAJChNS0RJUl9QKSBzcmMvczM5MAogCUA6ID4gc3JjL3MzOTAvJChhbV9fZGlyc3RhbXApCkBAIC03ODYsOSArODI5LDkgQEAKIHNyYy9wYS9mZmkubG86IHNyYy9wYS8kKGFtX19kaXJzdGFtcCkgc3JjL3BhLyQoREVQRElSKS8kKGFtX19kaXJzdGFtcCkKIHNyYy9wYS9ocHV4MzIubG86IHNyYy9wYS8kKGFtX19kaXJzdGFtcCkgXAogCXNyYy9wYS8kKERFUERJUikvJChhbV9fZGlyc3RhbXApCi1saWJmZmkubGE6ICQobGliZmZpX2xhX09CSkVDVFMpICQobGliZmZpX2xhX0RFUEVOREVOQ0lFUykgCitsaWJmZmkubGE6ICQobGliZmZpX2xhX09CSkVDVFMpICQobGliZmZpX2xhX0RFUEVOREVOQ0lFUykgJChFWFRSQV9saWJmZmlfbGFfREVQRU5ERU5DSUVTKSAKIAkkKGxpYmZmaV9sYV9MSU5LKSAtcnBhdGggJChsaWJkaXIpICQobGliZmZpX2xhX09CSkVDVFMpICQobGliZmZpX2xhX0xJQkFERCkgJChMSUJTKQotbGliZmZpX2NvbnZlbmllbmNlLmxhOiAkKGxpYmZmaV9jb252ZW5pZW5jZV9sYV9PQkpFQ1RTKSAkKGxpYmZmaV9jb252ZW5pZW5jZV9sYV9ERVBFTkRFTkNJRVMpIAorbGliZmZpX2NvbnZlbmllbmNlLmxhOiAkKGxpYmZmaV9jb252ZW5pZW5jZV9sYV9PQkpFQ1RTKSAkKGxpYmZmaV9jb252ZW5pZW5jZV9sYV9ERVBFTkRFTkNJRVMpICQoRVhUUkFfbGliZmZpX2NvbnZlbmllbmNlX2xhX0RFUEVOREVOQ0lFUykgCiAJJChMSU5LKSAgJChsaWJmZmlfY29udmVuaWVuY2VfbGFfT0JKRUNUUykgJChsaWJmZmlfY29udmVuaWVuY2VfbGFfTElCQUREKSAkKExJQlMpCiAKIG1vc3RseWNsZWFuLWNvbXBpbGU6CkBAIC04MDEsNiArODQ0LDggQEAKIAktcm0gLWYgc3JjL2FybS9mZmkubG8KIAktcm0gLWYgc3JjL2FybS9zeXN2LiQoT0JKRVhUKQogCS1ybSAtZiBzcmMvYXJtL3N5c3YubG8KKwktcm0gLWYgc3JjL2FybS90cmFtcG9saW5lLiQoT0JKRVhUKQorCS1ybSAtZiBzcmMvYXJtL3RyYW1wb2xpbmUubG8KIAktcm0gLWYgc3JjL2F2cjMyL2ZmaS4kKE9CSkVYVCkKIAktcm0gLWYgc3JjL2F2cjMyL2ZmaS5sbwogCS1ybSAtZiBzcmMvYXZyMzIvc3lzdi4kKE9CSkVYVCkKQEAgLTgzNyw2ICs4ODIsMTAgQEAKIAktcm0gLWYgc3JjL21pcHMvbjMyLmxvCiAJLXJtIC1mIHNyYy9taXBzL28zMi4kKE9CSkVYVCkKIAktcm0gLWYgc3JjL21pcHMvbzMyLmxvCisJLXJtIC1mIHNyYy9tb3hpZS9lYWJpLiQoT0JKRVhUKQorCS1ybSAtZiBzcmMvbW94aWUvZWFiaS5sbworCS1ybSAtZiBzcmMvbW94aWUvZmZpLiQoT0JKRVhUKQorCS1ybSAtZiBzcmMvbW94aWUvZmZpLmxvCiAJLXJtIC1mIHNyYy9wYS9mZmkuJChPQkpFWFQpCiAJLXJtIC1mIHNyYy9wYS9mZmkubG8KIAktcm0gLWYgc3JjL3BhL2hwdXgzMi4kKE9CSkVYVCkKQEAgLTkxOSw2ICs5NjgsNyBAQAogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQHNyYy9hbHBoYS8kKERFUERJUikvb3NmLlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVAc3JjL2FybS8kKERFUERJUikvZmZpLlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVAc3JjL2FybS8kKERFUERJUikvc3lzdi5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQHNyYy9hcm0vJChERVBESVIpL3RyYW1wb2xpbmUuUGxvQGFtX19xdW90ZUAKIEBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUBzcmMvYXZyMzIvJChERVBESVIpL2ZmaS5QbG9AYW1fX3F1b3RlQAogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQHNyYy9hdnIzMi8kKERFUERJUikvc3lzdi5QbG9AYW1fX3F1b3RlQAogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQHNyYy9jcmlzLyQoREVQRElSKS9mZmkuUGxvQGFtX19xdW90ZUAKQEAgLTkzNCw2ICs5ODQsOCBAQAogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQHNyYy9taXBzLyQoREVQRElSKS9mZmkuUGxvQGFtX19xdW90ZUAKIEBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUBzcmMvbWlwcy8kKERFUERJUikvbjMyLlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVAc3JjL21pcHMvJChERVBESVIpL28zMi5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQHNyYy9tb3hpZS8kKERFUERJUikvZWFiaS5QbG9AYW1fX3F1b3RlQAorQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQHNyYy9tb3hpZS8kKERFUERJUikvZmZpLlBsb0BhbV9fcXVvdGVACiBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVAc3JjL3BhLyQoREVQRElSKS9mZmkuUGxvQGFtX19xdW90ZUAKIEBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUBzcmMvcGEvJChERVBESVIpL2hwdXgzMi5QbG9AYW1fX3F1b3RlQAogQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQHNyYy9wYS8kKERFUERJUikvbGludXguUGxvQGFtX19xdW90ZUAKQEAgLTEwMjksNiArMTA4MSw3IEBACiAJLXJtIC1yZiBzcmMvbTMyci8ubGlicyBzcmMvbTMyci9fbGlicwogCS1ybSAtcmYgc3JjL202OGsvLmxpYnMgc3JjL202OGsvX2xpYnMKIAktcm0gLXJmIHNyYy9taXBzLy5saWJzIHNyYy9taXBzL19saWJzCisJLXJtIC1yZiBzcmMvbW94aWUvLmxpYnMgc3JjL21veGllL19saWJzCiAJLXJtIC1yZiBzcmMvcGEvLmxpYnMgc3JjL3BhL19saWJzCiAJLXJtIC1yZiBzcmMvcG93ZXJwYy8ubGlicyBzcmMvcG93ZXJwYy9fbGlicwogCS1ybSAtcmYgc3JjL3MzOTAvLmxpYnMgc3JjL3MzOTAvX2xpYnMKQEAgLTEyMjEsOSArMTI3NCw3IEBACiAJQCQoTk9STUFMX1VOSU5TVEFMTCkKIAlAbGlzdD0nJChwa2djb25maWdfREFUQSknOyB0ZXN0IC1uICIkKHBrZ2NvbmZpZ2RpcikiIHx8IGxpc3Q9OyBcCiAJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKLQl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKLQllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnY29uZmlnZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCi0JY2QgIiQoREVTVERJUikkKHBrZ2NvbmZpZ2RpcikiICYmIHJtIC1mICQkZmlsZXMKKwlkaXI9JyQoREVTVERJUikkKHBrZ2NvbmZpZ2RpciknOyAkKGFtX191bmluc3RhbGxfZmlsZXNfZnJvbV9kaXIpCiAKICMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCiAjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KQEAgLTEyMzIsNyArMTI4Myw3IEBACiAjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwogIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KICQoUkVDVVJTSVZFX1RBUkdFVFMpOgotCUBmYWlsY29tPSdleGl0IDEnOyBcCisJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKIAlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCiAJICBjYXNlICQkZiBpbiBcCiAJICAgICo9KiB8IC0tWyFrXSopOzsgXApAQCAtMTI1Nyw3ICsxMzA4LDcgQEAKIAlmaTsgdGVzdCAteiAiJCRmYWlsIgogCiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLQlAZmFpbGNvbT0nZXhpdCAxJzsgXAorCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCiAJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAogCSAgY2FzZSAkJGYgaW4gXAogCSAgICAqPSogfCAtLVsha10qKTs7IFwKQEAgLTE0MjQsNyArMTQ3NSw4IEBACiAJICB0b3BfZGlzdGRpcj0iJCh0b3BfZGlzdGRpcikiIGRpc3RkaXI9IiQoZGlzdGRpcikiIFwKIAkgIGRpc3QtaW5mbwogCS10ZXN0IC1uICIkKGFtX19za2lwX21vZGVfZml4KSIgXAotCXx8IGZpbmQgIiQoZGlzdGRpcikiIC10eXBlIGQgISAtcGVybSAtNzc3IC1leGVjIGNobW9kIGErcnd4IHt9IFw7IC1vIFwKKwl8fCBmaW5kICIkKGRpc3RkaXIpIiAtdHlwZSBkICEgLXBlcm0gLTc1NSBcCisJCS1leGVjIGNobW9kIHUrcnd4LGdvK3J4IHt9IFw7IC1vIFwKIAkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWxpbmtzIDEgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKIAkgICEgLXR5cGUgZCAhIC1wZXJtIC00MDAgLWV4ZWMgY2htb2QgYStyIHt9IFw7IC1vIFwKIAkgICEgLXR5cGUgZCAhIC1wZXJtIC00NDQgLWV4ZWMgJChpbnN0YWxsX3NoKSAtYyAtbSBhK3Ige30ge30gXDsgXApAQCAtMTQzNCw3ICsxNDg2LDExIEBACiAJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCiAKIGRpc3QtYnppcDI6IGRpc3RkaXIKLQl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgYnppcDIgLTkgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgorCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBCWklQMj0kJHtCWklQMi0tOX0gYnppcDIgLWMgPiQoZGlzdGRpcikudGFyLmJ6MgorCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQorCitkaXN0LWx6aXA6IGRpc3RkaXIKKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgbHppcCAtYyAkJHtMWklQX09QVC0tOX0gPiQoZGlzdGRpcikudGFyLmx6CiAJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCiAKIGRpc3QtbHptYTogZGlzdGRpcgpAQCAtMTQ0Miw3ICsxNDk4LDcgQEAKIAkkKGFtX19yZW1vdmVfZGlzdGRpcikKIAogZGlzdC14ejogZGlzdGRpcgotCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCB4eiAtYyA+JChkaXN0ZGlyKS50YXIueHoKKwl0YXJkaXI9JChkaXN0ZGlyKSAmJiAkKGFtX190YXIpIHwgWFpfT1BUPSQke1haX09QVC0tZX0geHogLWMgPiQoZGlzdGRpcikudGFyLnh6CiAJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCiAKIGRpc3QtdGFyWjogZGlzdGRpcgpAQCAtMTQ2OCwxNyArMTUyNCwxOSBAQAogZGlzdGNoZWNrOiBkaXN0CiAJY2FzZSAnJChESVNUX0FSQ0hJVkVTKScgaW4gXAogCSoudGFyLmd6KikgXAotCSAgR1pJUD0kKEdaSVBfRU5WKSBndW56aXAgLWMgJChkaXN0ZGlyKS50YXIuZ3ogfCAkKGFtX191bnRhcikgOztcCisJICBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWRjICQoZGlzdGRpcikudGFyLmd6IHwgJChhbV9fdW50YXIpIDs7XAogCSoudGFyLmJ6MiopIFwKLQkgIGJ1bnppcDIgLWMgJChkaXN0ZGlyKS50YXIuYnoyIHwgJChhbV9fdW50YXIpIDs7XAorCSAgYnppcDIgLWRjICQoZGlzdGRpcikudGFyLmJ6MiB8ICQoYW1fX3VudGFyKSA7O1wKIAkqLnRhci5sem1hKikgXAotCSAgdW5sem1hIC1jICQoZGlzdGRpcikudGFyLmx6bWEgfCAkKGFtX191bnRhcikgOztcCisJICBsem1hIC1kYyAkKGRpc3RkaXIpLnRhci5sem1hIHwgJChhbV9fdW50YXIpIDs7XAorCSoudGFyLmx6KikgXAorCSAgbHppcCAtZGMgJChkaXN0ZGlyKS50YXIubHogfCAkKGFtX191bnRhcikgOztcCiAJKi50YXIueHoqKSBcCiAJICB4eiAtZGMgJChkaXN0ZGlyKS50YXIueHogfCAkKGFtX191bnRhcikgOztcCiAJKi50YXIuWiopIFwKIAkgIHVuY29tcHJlc3MgLWMgJChkaXN0ZGlyKS50YXIuWiB8ICQoYW1fX3VudGFyKSA7O1wKIAkqLnNoYXIuZ3oqKSBcCi0JICBHWklQPSQoR1pJUF9FTlYpIGd1bnppcCAtYyAkKGRpc3RkaXIpLnNoYXIuZ3ogfCB1bnNoYXIgOztcCisJICBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWRjICQoZGlzdGRpcikuc2hhci5neiB8IHVuc2hhciA7O1wKIAkqLnppcCopIFwKIAkgIHVuemlwICQoZGlzdGRpcikuemlwIDs7XAogCWVzYWMKQEAgLTE0OTIsNiArMTU1MCw3IEBACiAJICAmJiBhbV9fY3dkPWBwd2RgIFwKIAkgICYmICQoYW1fX2NkKSAkKGRpc3RkaXIpL19idWlsZCBcCiAJICAmJiAuLi9jb25maWd1cmUgLS1zcmNkaXI9Li4gLS1wcmVmaXg9IiQkZGNfaW5zdGFsbF9iYXNlIiBcCisJICAgICQoQU1fRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUykgXAogCSAgICAkKERJU1RDSEVDS19DT05GSUdVUkVfRkxBR1MpIFwKIAkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKIAkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGR2aSBcCkBAIC0xNTIwLDggKzE1NzksMTYgQEAKIAkgIGxpc3Q9JyQoRElTVF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwKIAkgIHNlZCAtZSAxaCAtZSAxcy8uLz0vZyAtZSAxcCAtZSAxeCAtZSAnJCRwJyAtZSAnJCR4JwogZGlzdHVuaW5zdGFsbGNoZWNrOgotCUAkKGFtX19jZCkgJyQoZGlzdHVuaW5zdGFsbGNoZWNrX2RpciknIFwKLQkmJiB0ZXN0IGAkKGRpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIHwgd2MgLWxgIC1sZSAxIFwKKwlAdGVzdCAtbiAnJChkaXN0dW5pbnN0YWxsY2hlY2tfZGlyKScgfHwgeyBcCisJICBlY2hvICdFUlJPUjogdHJ5aW5nIHRvIHJ1biAkQCB3aXRoIGFuIGVtcHR5JyBcCisJICAgICAgICckJChkaXN0dW5pbnN0YWxsY2hlY2tfZGlyKScgPiYyOyBcCisJICBleGl0IDE7IFwKKwl9OyBcCisJJChhbV9fY2QpICckKGRpc3R1bmluc3RhbGxjaGVja19kaXIpJyB8fCB7IFwKKwkgIGVjaG8gJ0VSUk9SOiBjYW5ub3QgY2hkaXIgaW50byAkKGRpc3R1bmluc3RhbGxjaGVja19kaXIpJyA+JjI7IFwKKwkgIGV4aXQgMTsgXAorCX07IFwKKwl0ZXN0IGAkKGFtX19kaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSB8IHdjIC1sYCAtZXEgMCBcCiAJICAgfHwgeyBlY2hvICJFUlJPUjogZmlsZXMgbGVmdCBhZnRlciB1bmluc3RhbGw6IiA7IFwKIAkgICAgICAgIGlmIHRlc3QgLW4gIiQoREVTVERJUikiOyB0aGVuIFwKIAkgICAgICAgICAgZWNobyAiICAoY2hlY2sgREVTVERJUiBzdXBwb3J0KSI7IFwKQEAgLTE1NTUsMTAgKzE2MjIsMTUgQEAKIAogaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCiBpbnN0YWxsLXN0cmlwOgotCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0JICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLQkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorCWlmIHRlc3QgLXogJyQoU1RSSVApJzsgdGhlbiBcCisJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgICAgICBpbnN0YWxsOyBcCisJZWxzZSBcCisJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgICAgIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciIGluc3RhbGw7IFwKKwlmaQogbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKIAogY2xlYW4tZ2VuZXJpYzoKQEAgLTE1ODcsNiArMTY1OSw4IEBACiAJLXJtIC1mIHNyYy9tNjhrLyQoYW1fX2RpcnN0YW1wKQogCS1ybSAtZiBzcmMvbWlwcy8kKERFUERJUikvJChhbV9fZGlyc3RhbXApCiAJLXJtIC1mIHNyYy9taXBzLyQoYW1fX2RpcnN0YW1wKQorCS1ybSAtZiBzcmMvbW94aWUvJChERVBESVIpLyQoYW1fX2RpcnN0YW1wKQorCS1ybSAtZiBzcmMvbW94aWUvJChhbV9fZGlyc3RhbXApCiAJLXJtIC1mIHNyYy9wYS8kKERFUERJUikvJChhbV9fZGlyc3RhbXApCiAJLXJtIC1mIHNyYy9wYS8kKGFtX19kaXJzdGFtcCkKIAktcm0gLWYgc3JjL3Bvd2VycGMvJChERVBESVIpLyQoYW1fX2RpcnN0YW1wKQpAQCAtMTYxMiw3ICsxNjg2LDcgQEAKIAogZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCiAJLXJtIC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCi0JLXJtIC1yZiBzcmMvJChERVBESVIpIHNyYy9hbHBoYS8kKERFUERJUikgc3JjL2FybS8kKERFUERJUikgc3JjL2F2cjMyLyQoREVQRElSKSBzcmMvY3Jpcy8kKERFUERJUikgc3JjL2Zydi8kKERFUERJUikgc3JjL2lhNjQvJChERVBESVIpIHNyYy9tMzJyLyQoREVQRElSKSBzcmMvbTY4ay8kKERFUERJUikgc3JjL21pcHMvJChERVBESVIpIHNyYy9wYS8kKERFUERJUikgc3JjL3Bvd2VycGMvJChERVBESVIpIHNyYy9zMzkwLyQoREVQRElSKSBzcmMvc2gvJChERVBESVIpIHNyYy9zaDY0LyQoREVQRElSKSBzcmMvc3BhcmMvJChERVBESVIpIHNyYy94ODYvJChERVBESVIpCisJLXJtIC1yZiBzcmMvJChERVBESVIpIHNyYy9hbHBoYS8kKERFUERJUikgc3JjL2FybS8kKERFUERJUikgc3JjL2F2cjMyLyQoREVQRElSKSBzcmMvY3Jpcy8kKERFUERJUikgc3JjL2Zydi8kKERFUERJUikgc3JjL2lhNjQvJChERVBESVIpIHNyYy9tMzJyLyQoREVQRElSKSBzcmMvbTY4ay8kKERFUERJUikgc3JjL21pcHMvJChERVBESVIpIHNyYy9tb3hpZS8kKERFUERJUikgc3JjL3BhLyQoREVQRElSKSBzcmMvcG93ZXJwYy8kKERFUERJUikgc3JjL3MzOTAvJChERVBESVIpIHNyYy9zaC8kKERFUERJUikgc3JjL3NoNjQvJChERVBESVIpIHNyYy9zcGFyYy8kKERFUERJUikgc3JjL3g4Ni8kKERFUERJUikKIAktcm0gLWYgTWFrZWZpbGUKIGRpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAogCWRpc3RjbGVhbi1oZHIgZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MKQEAgLTE2NTQsMTMgKzE3MjgsMTQgQEAKIAlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKIAkgIGlmIHRlc3QgLWYgIiQkcCIgfHwgdGVzdCAtZCAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKIAkgICQoYW1fX3N0cmlwX2RpcikgXAotCSAgaWYgdGVzdCAtZCAiJCRkJCRwIjsgdGhlbiBcCisJICBkMj0kJGQkJHA7IFwKKwkgIGlmIHRlc3QgLWQgIiQkZDIiOyB0aGVuIFwKIAkgICAgZWNobyAiICQoTUtESVJfUCkgJyQoREVTVERJUikkKGh0bWxkaXIpLyQkZiciOyBcCiAJICAgICQoTUtESVJfUCkgIiQoREVTVERJUikkKGh0bWxkaXIpLyQkZiIgfHwgZXhpdCAxOyBcCi0JICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZCQkcCcvKiAnJChERVNURElSKSQoaHRtbGRpcikvJCRmJyI7IFwKLQkgICAgJChJTlNUQUxMX0RBVEEpICIkJGQkJHAiLyogIiQoREVTVERJUikkKGh0bWxkaXIpLyQkZiIgfHwgZXhpdCAkJD87IFwKKwkgICAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAnJCRkMicvKiAnJChERVNURElSKSQoaHRtbGRpcikvJCRmJyI7IFwKKwkgICAgJChJTlNUQUxMX0RBVEEpICIkJGQyIi8qICIkKERFU1RESVIpJChodG1sZGlyKS8kJGYiIHx8IGV4aXQgJCQ/OyBcCiAJICBlbHNlIFwKLQkgICAgbGlzdDI9IiQkbGlzdDIgJCRkJCRwIjsgXAorCSAgICBsaXN0Mj0iJCRsaXN0MiAkJGQyIjsgXAogCSAgZmk7IFwKIAlkb25lOyBcCiAJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBlY2hvICIkJGxpc3QyIiB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCkBAIC0xNjkyLDggKzE3NjcsMTMgQEAKIAkgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAnJChERVNURElSKSQoaW5mb2RpciknIjsgXAogCSAgJChJTlNUQUxMX0RBVEEpICQkZmlsZXMgIiQoREVTVERJUikkKGluZm9kaXIpIiB8fCBleGl0ICQkPzsgZG9uZQogCUAkKFBPU1RfSU5TVEFMTCkKLQlAaWYgKGluc3RhbGwtaW5mbyAtLXZlcnNpb24gJiYgXAotCSAgICAgaW5zdGFsbC1pbmZvIC0tdmVyc2lvbiAyPiYxIHwgc2VkIDFxIHwgZ3JlcCAtaSAtdiBkZWJpYW4pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCisJQGFtX19ydW5faW5zdGFsbGluZm89eWVzOyBcCisJY2FzZSAkJEFNX1VQREFURV9JTkZPX0RJUiBpbiBcCisJICBufG5vfE5PKSBhbV9fcnVuX2luc3RhbGxpbmZvPW5vOzsgXAorCSAgKikgKGluc3RhbGwtaW5mbyAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMSBcCisJICAgICAgIHx8IGFtX19ydW5faW5zdGFsbGluZm89bm87OyBcCisJZXNhYzsgXAorCWlmIHRlc3QgJCRhbV9fcnVuX2luc3RhbGxpbmZvID0geWVzOyB0aGVuIFwKIAkgIGxpc3Q9JyQoSU5GT19ERVBTKSc7IHRlc3QgLW4gIiQoaW5mb2RpcikiIHx8IGxpc3Q9OyBcCiAJICBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIFwKIAkgICAgcmVsZmlsZT1gZWNobyAiJCRmaWxlIiB8IHNlZCAnc3xeLiovfHwnYDsgXApAQCAtMTczMiw3ICsxODEyLDcgQEAKIG1haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCiAJLXJtIC1mICQoYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMpCiAJLXJtIC1yZiAkKHRvcF9zcmNkaXIpL2F1dG9tNHRlLmNhY2hlCi0JLXJtIC1yZiBzcmMvJChERVBESVIpIHNyYy9hbHBoYS8kKERFUERJUikgc3JjL2FybS8kKERFUERJUikgc3JjL2F2cjMyLyQoREVQRElSKSBzcmMvY3Jpcy8kKERFUERJUikgc3JjL2Zydi8kKERFUERJUikgc3JjL2lhNjQvJChERVBESVIpIHNyYy9tMzJyLyQoREVQRElSKSBzcmMvbTY4ay8kKERFUERJUikgc3JjL21pcHMvJChERVBESVIpIHNyYy9wYS8kKERFUERJUikgc3JjL3Bvd2VycGMvJChERVBESVIpIHNyYy9zMzkwLyQoREVQRElSKSBzcmMvc2gvJChERVBESVIpIHNyYy9zaDY0LyQoREVQRElSKSBzcmMvc3BhcmMvJChERVBESVIpIHNyYy94ODYvJChERVBESVIpCisJLXJtIC1yZiBzcmMvJChERVBESVIpIHNyYy9hbHBoYS8kKERFUERJUikgc3JjL2FybS8kKERFUERJUikgc3JjL2F2cjMyLyQoREVQRElSKSBzcmMvY3Jpcy8kKERFUERJUikgc3JjL2Zydi8kKERFUERJUikgc3JjL2lhNjQvJChERVBESVIpIHNyYy9tMzJyLyQoREVQRElSKSBzcmMvbTY4ay8kKERFUERJUikgc3JjL21pcHMvJChERVBESVIpIHNyYy9tb3hpZS8kKERFUERJUikgc3JjL3BhLyQoREVQRElSKSBzcmMvcG93ZXJwYy8kKERFUERJUikgc3JjL3MzOTAvJChERVBESVIpIHNyYy9zaC8kKERFUERJUikgc3JjL3NoNjQvJChERVBESVIpIHNyYy9zcGFyYy8kKERFUERJUikgc3JjL3g4Ni8kKERFUERJUikKIAktcm0gLWYgTWFrZWZpbGUKIG1haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWFtaW5mbyBcCiAJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1haW50YWluZXItY2xlYW4tdnRpCkBAIC0xNzYxLDI0ICsxODQxLDI0IEBACiAJYWxsIGFsbC1hbSBhbS0tcmVmcmVzaCBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1hbWluZm8gXAogCWNsZWFuLWdlbmVyaWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCiAJY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVMgY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3QgZGlzdC1hbGwgXAotCWRpc3QtYnppcDIgZGlzdC1nemlwIGRpc3QtaW5mbyBkaXN0LWx6bWEgZGlzdC1zaGFyIGRpc3QtdGFyWiBcCi0JZGlzdC14eiBkaXN0LXppcCBkaXN0Y2hlY2sgZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIFwKLQlkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4taGRyIGRpc3RjbGVhbi1saWJ0b29sIFwKLQlkaXN0Y2xlYW4tdGFncyBkaXN0Y2xlYW5jaGVjayBkaXN0ZGlyIGRpc3R1bmluc3RhbGxjaGVjayBkdmkgXAotCWR2aS1hbSBodG1sIGh0bWwtYW0gaW5mbyBpbmZvLWFtIGluc3RhbGwgaW5zdGFsbC1hbSBcCi0JaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCi0JaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLQlpbnN0YWxsLWluZm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbGliTFRMSUJSQVJJRVMgXAotCWluc3RhbGwtbWFuIGluc3RhbGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcGtnY29uZmlnREFUQSBcCi0JaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3RhbGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLQlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0JbWFpbnRhaW5lci1jbGVhbi1hbWluZm8gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIFwKLQltYWludGFpbmVyLWNsZWFuLXZ0aSBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1hbWluZm8gXAotCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIFwKLQltb3N0bHljbGVhbi12dGkgcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHRhZ3MtcmVjdXJzaXZlIFwKLQl1bmluc3RhbGwgdW5pbnN0YWxsLWFtIHVuaW5zdGFsbC1kdmktYW0gdW5pbnN0YWxsLWh0bWwtYW0gXAotCXVuaW5zdGFsbC1pbmZvLWFtIHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGRmLWFtIFwKLQl1bmluc3RhbGwtcGtnY29uZmlnREFUQSB1bmluc3RhbGwtcHMtYW0KKwlkaXN0LWJ6aXAyIGRpc3QtZ3ppcCBkaXN0LWluZm8gZGlzdC1semlwIGRpc3QtbHptYSBkaXN0LXNoYXIgXAorCWRpc3QtdGFyWiBkaXN0LXh6IGRpc3QtemlwIGRpc3RjaGVjayBkaXN0Y2xlYW4gXAorCWRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1oZHIgXAorCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRpc3RjbGVhbmNoZWNrIGRpc3RkaXIgXAorCWRpc3R1bmluc3RhbGxjaGVjayBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAorCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCisJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gXAorCWluc3RhbGwtbGliTFRMSUJSQVJJRVMgaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAorCWluc3RhbGwtcGtnY29uZmlnREFUQSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCisJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBcCisJbWFpbnRhaW5lci1jbGVhbiBtYWludGFpbmVyLWNsZWFuLWFtaW5mbyBcCisJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1haW50YWluZXItY2xlYW4tdnRpIG1vc3RseWNsZWFuIFwKKwltb3N0bHljbGVhbi1hbWluZm8gbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKKwltb3N0bHljbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLXZ0aSBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgXAorCXRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gdW5pbnN0YWxsLWR2aS1hbSBcCisJdW5pbnN0YWxsLWh0bWwtYW0gdW5pbnN0YWxsLWluZm8tYW0gdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTIFwKKwl1bmluc3RhbGwtcGRmLWFtIHVuaW5zdGFsbC1wa2djb25maWdEQVRBIHVuaW5zdGFsbC1wcy1hbQogCiAKICMgTm8gaW5zdGFsbC1odG1sIG9yIGluc3RhbGwtcGRmIHN1cHBvcnQgaW4gYXV0b21ha2UgeWV0CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL1JFQURNRSBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvUkVBRE1FCmluZGV4IDE2N2RlNDIuLmJjYzcxNzggMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvUkVBRE1FCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvUkVBRE1FCkBAIC0xLDcgKzEsNyBAQAogU3RhdHVzCiA9PT09PT0KIAotbGliZmZpLTMuMC4xMCB3YXMgcmVsZWFzZWQgb24gWFhYWFhYWFhYWCwgMjAxMC4gQ2hlY2sgdGhlIGxpYmZmaSB3ZWIKK2xpYmZmaS0zLjAuMTEgd2FzIHJlbGVhc2VkIG9uIEFwcmlsIDExLCAyMDEyLiAgQ2hlY2sgdGhlIGxpYmZmaSB3ZWIKIHBhZ2UgZm9yIHVwZGF0ZXM6IDxVUkw6aHR0cDovL3NvdXJjZXdhcmUub3JnL2xpYmZmaS8+LgogCiAKQEAgLTQzLDcgKzQzLDcgQEAKIEZvciBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGRldGFpbHMgYW5kIHRlc3Rpbmcgc3RhdHVzLCBwbGVhc2UKIHJlZmVyIHRvIHRoZSB3aWtpIHBhZ2UgaGVyZToKIAotIGh0dHA6Ly93d3cubW94aWVsb2dpYy5vcmcvd2lraS9pbmRleC5waHA/dGl0bGU9TGliZmZpXzMuMC4xMAorIGh0dHA6Ly93d3cubW94aWVsb2dpYy5vcmcvd2lraS9pbmRleC5waHA/dGl0bGU9TGliZmZpXzMuMC4xMQogCiBBdCB0aGUgdGltZSBvZiByZWxlYXNlLCB0aGUgZm9sbG93aW5nIGJhc2ljIGNvbmZpZ3VyYXRpb25zIGhhdmUgYmVlbgogdGVzdGVkOgpAQCAtNTQsMTIgKzU0LDE3IEBACiB8IEFscGhhICAgICAgICB8IExpbnV4ICAgICAgICAgICAgfAogfCBBbHBoYSAgICAgICAgfCBUcnU2NCAgICAgICAgICAgIHwKIHwgQVJNICAgICAgICAgIHwgTGludXggICAgICAgICAgICB8Cit8IEFSTSAgICAgICAgICB8IGlPUyAgICAgICAgICAgICAgfAogfCBBVlIzMiAgICAgICAgfCBMaW51eCAgICAgICAgICAgIHwKIHwgSFBQQSAgICAgICAgIHwgSFBVWCAgICAgICAgICAgICB8CiB8IElBLTY0ICAgICAgICB8IExpbnV4ICAgICAgICAgICAgfAorfCBNNjhLICAgICAgICAgfCBGcmVlTWlOVCAgICAgICAgIHwKK3wgTTY4SyAgICAgICAgIHwgUlRFTVMgICAgICAgICAgICB8CiB8IE1JUFMgICAgICAgICB8IElSSVggICAgICAgICAgICAgfAogfCBNSVBTICAgICAgICAgfCBMaW51eCAgICAgICAgICAgIHwKK3wgTUlQUyAgICAgICAgIHwgUlRFTVMgICAgICAgICAgICB8CiB8IE1JUFM2NCAgICAgICB8IExpbnV4ICAgICAgICAgICAgfAorfCBQb3dlclBDICAgICAgfCBBTUlHQSAgICAgICAgICAgIHwKIHwgUG93ZXJQQyAgICAgIHwgTGludXggICAgICAgICAgICB8CiB8IFBvd2VyUEMgICAgICB8IE1hYyBPU1ggICAgICAgICAgfAogfCBQb3dlclBDICAgICAgfCBGcmVlQlNEICAgICAgICAgIHwKQEAgLTcxLDE1ICs3NiwxOCBAQAogfCBTUEFSQzY0ICAgICAgfCBMaW51eCAgICAgICAgICAgIHwKIHwgU1BBUkM2NCAgICAgIHwgRnJlZUJTRCAgICAgICAgICB8CiB8IFg4NiAgICAgICAgICB8IEZyZWVCU0QgICAgICAgICAgfAorfCBYODYgICAgICAgICAgfCBJbnRlcml4ICAgICAgICAgIHwKIHwgWDg2ICAgICAgICAgIHwga0ZyZWVCU0QgICAgICAgICB8CiB8IFg4NiAgICAgICAgICB8IExpbnV4ICAgICAgICAgICAgfAogfCBYODYgICAgICAgICAgfCBNYWMgT1NYICAgICAgICAgIHwKIHwgWDg2ICAgICAgICAgIHwgT3BlbkJTRCAgICAgICAgICB8Cit8IFg4NiAgICAgICAgICB8IE9TLzIgICAgICAgICAgICAgfAogfCBYODYgICAgICAgICAgfCBTb2xhcmlzICAgICAgICAgIHwKIHwgWDg2ICAgICAgICAgIHwgV2luZG93cy9DeWd3aW4gICB8CiB8IFg4NiAgICAgICAgICB8IFdpbmRvd3MvTWluZ1cgICAgfAogfCBYODYtNjQgICAgICAgfCBGcmVlQlNEICAgICAgICAgIHwKIHwgWDg2LTY0ICAgICAgIHwgTGludXggICAgICAgICAgICB8Cit8IFg4Ni02NCAgICAgICB8IExpbnV4L3gzMiAgICAgICAgfAogfCBYODYtNjQgICAgICAgfCBPcGVuQlNEICAgICAgICAgIHwKIHwgWDg2LTY0ICAgICAgIHwgV2luZG93cy9NaW5nVyAgICB8CiB8LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tfApAQCAtMTEzLDkgKzEyMSwxNiBAQAogTWljcm9zb2Z0J3MgVmlzdWFsIEMrKyBjb21waWxlci4gIEluIHRoaXMgY2FzZSwgdXNlIHRoZSBtc3ZjYy5zaAogd3JhcHBlciBzY3JpcHQgZHVyaW5nIGNvbmZpZ3VyYXRpb24gbGlrZSBzbzoKIAotcGF0aC90by9jb25maWd1cmUgLS1lbmFibGUtc2hhcmVkIC0tZW5hYmxlLXN0YXRpYyBcCi0JQ0M9cGF0aC90by9tc3ZjYy5zaCBMRD1saW5rIFwKLQlDUFA9XCJjbCAtbm9sb2dvIC1FUFwiCitwYXRoL3RvL2NvbmZpZ3VyZSBDQz1wYXRoL3RvL21zdmNjLnNoIExEPWxpbmsgQ1BQPVwiY2wgLW5vbG9nbyAtRVBcIgorCitGb3IgNjQtYml0IFdpbmRvd3MgYnVpbGRzLCB1c2UgQ0M9InBhdGgvdG8vbXN2Y2Muc2ggLW02NCIuCitZb3UgbWF5IGFsc28gbmVlZCB0byBzcGVjaWZ5IC0tYnVpbGQgYXBwcm9wcmlhdGVseS4gV2hlbiBidWlsZGluZyB3aXRoIE1TVkMKK3VuZGVyIGEgTWluZ1cgZW52aXJvbm1lbnQsIHlvdSBtYXkgbmVlZCB0byByZW1vdmUgdGhlIGxpbmUgaW4gY29uZmlndXJlCit0aGF0IHNldHMgJ2ZpeF9zcmNmaWxlX3BhdGgnIHRvIGEgJ2N5Z3BhdGgnIGNvbW1hbmQuICgnY3lncGF0aCcgaXMgbm90CitwcmVzZW50IGluIE1pbmdXLCBhbmQgaXMgbm90IHJlcXVpcmVkIHdoZW4gdXNpbmcgTWluZ1ctc3R5bGUgcGF0aHMuKQorCitGb3IgaU9TIGJ1aWxkcywgcnVuIGdlbmVyYXRlLWlvcy1zb3VyY2UtYW5kLWhlYWRlcnMucHkgYW5kIHRoZW4KK2xpYmZmaS54Y29kZXByb2ogc2hvdWxkIHdvcmsuCiAKIENvbmZpZ3VyZSBoYXMgbWFueSBvdGhlciBvcHRpb25zLiBVc2UgImNvbmZpZ3VyZSAtLWhlbHAiIHRvIHNlZSB0aGVtIGFsbC4KIApAQCAtMTMzLDExICsxNDgsMzAgQEAKIAogU2VlIHRoZSBDaGFuZ2VMb2cgZmlsZXMgZm9yIGRldGFpbHMuCiAKLTMuMC4xMCA/Pz8tPz8tPz8KLSAgICAgICAgRml4IHRoZSBONjQgYnVpbGQgb24gbWlwcy1zZ2ktaXJpeDYuNS4KLQlUZXN0c3VpdGUgZml4ZXMgZm9yIFRydTY0IFVuaXguCiszLjAuMTEgQXByLTExLTEyCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB2YXJpYWRpYyBmdW5jdGlvbnMgKGZmaV9wcmVwX2NpZl92YXIpLgorCUFkZCBMaW51eC94MzIgc3VwcG9ydC4KKwlBZGQgdGhpc2NhbGwsIGZhc3RjYWxsIGFuZCBNU1ZDIGNkZWNsIHN1cHBvcnQgb24gV2luZG93cy4KKyAgICAgICAgQWRkIEFtaWdhIGFuZCBuZXdlciBNYWNPUyBzdXBwb3J0LgorCUFkZCBtNjhrIEZyZWVNaU5UIHN1cHBvcnQuCisJSW50ZWdyYXRpb24gd2l0aCBpT1MnIHhjb2RlIGJ1aWxkIHRvb2xzLgorCUZpeCBPY3Rlb24gYW5kIE1DNjg4ODEgc3VwcG9ydC4KKwlGaXggY29kZSBwZXNzaW1pemF0aW9ucy4KKyAgICAgICAgTG90cyBvZiBidWlsZCBmaXhlcy4KKworMy4wLjEwIEF1Zy0yMy0xMQorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgQXBwbGUncyBpT1MuCisJQWRkIHN1cHBvcnQgZm9yIEFSTSBWRlAgQUJJLgorICAgICAgICBBZGQgUlRFTVMgc3VwcG9ydCBmb3IgTUlQUyBhbmQgTTY4Sy4KKwlGaXggaW5zdHJ1Y3Rpb24gY2FjaGUgY2xlYXJpbmcgcHJvYmxlbXMgb24KKwkgIEFSTSBhbmQgU1BBUkMuCisJRml4IHRoZSBONjQgYnVpbGQgb24gbWlwcy1zZ2ktaXJpeDYuNS4KIAlFbmFibGUgYnVpbGRzIHdpdGggTWljcm9zb2Z0J3MgY29tcGlsZXIuCi0JRW5hYmxlIHg4NiBidWlsZHMgd2l0aCBTdW4ncyBjb21waWxlci4KKwlFbmFibGUgeDg2IGJ1aWxkcyB3aXRoIE9yYWNsZSdzIFNvbGFyaXMgY29tcGlsZXIuCisJRml4IHN1cHBvcnQgZm9yIGNhbGxpbmcgY29kZSBjb21waWxlZCB3aXRoIE9yYWNsZSdzIFNwYXJjCisJICBTb2xhcmlzIGNvbXBpbGVyLgorCVRlc3RzdWl0ZSBmaXhlcyBmb3IgVHJ1NjQgVW5peC4KKwlBZGRpdGlvbmFsIHBsYXRmb3JtIHN1cHBvcnQuCiAKIDMuMC45IERlYy0zMS0wOQogICAgICAgICBBZGQgQVZSMzIgYW5kIHdpbjY0IHBvcnRzLiAgQWRkIEFSTSBzb2Z0ZnAgc3VwcG9ydC4KQEAgLTI2Nyw3ICszMDEsNyBAQAogQXV0aG9ycyAmIENyZWRpdHMKID09PT09PT09PT09PT09PT09CiAKLWxpYmZmaSB3YXMgb3JpZ2luYWxseSB3cml0dGVuIGJ5IEFudGhvbnkgR3JlZW4gPGdyZWVuQHJlZGhhdC5jb20+LgorbGliZmZpIHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgQW50aG9ueSBHcmVlbiA8Z3JlZW5AbW94aWVsb2dpYy5jb20+LgogCiBUaGUgZGV2ZWxvcGVycyBvZiB0aGUgR05VIENvbXBpbGVyIENvbGxlY3Rpb24gcHJvamVjdCBoYXZlIG1hZGUKIGlubnVtZXJhYmxlIHZhbHVhYmxlIGNvbnRyaWJ1dGlvbnMuICBTZWUgdGhlIENoYW5nZUxvZyBmaWxlIGZvcgpAQCAtMzE4LDUgKzM1Miw2IEBACiBUaGUgbGlzdCBhYm92ZSBpcyBhbG1vc3QgY2VydGFpbmx5IGluY29tcGxldGUgYW5kIGluYWNjdXJhdGUuICBJJ20KIGhhcHB5IHRvIG1ha2UgY29ycmVjdGlvbnMgb3IgYWRkaXRpb25zIHVwb24gcmVxdWVzdC4KIAotSWYgeW91IGhhdmUgYSBwcm9ibGVtLCBvciBoYXZlIGZvdW5kIGEgYnVnLCBwbGVhc2Ugc2VuZCBhIG5vdGUgdG8KLWdyZWVuQHJlZGhhdC5jb20uCitJZiB5b3UgaGF2ZSBhIHByb2JsZW0sIG9yIGhhdmUgZm91bmQgYSBidWcsIHBsZWFzZSBzZW5kIGEgbm90ZSB0byB0aGUKK2F1dGhvciBhdCBncmVlbkBtb3hpZWxvZ2ljLmNvbSwgb3IgdGhlIHByb2plY3QgbWFpbGluZyBsaXN0IGF0CitsaWJmZmktZGlzY3Vzc0Bzb3VyY2V3YXJlLm9yZy4KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvYWNsb2NhbC5tNCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvYWNsb2NhbC5tNAppbmRleCBjOGU1MjZmLi5kMzMzZmYzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2FjbG9jYWwubTQKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9hY2xvY2FsLm00CkBAIC0xLDcgKzEsOCBAQAotIyBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBieSBhY2xvY2FsIDEuMTEuMSAtKi0gQXV0b2NvbmYgLSotCisjIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IGFjbG9jYWwgMS4xMS4zIC0qLSBBdXRvY29uZiAtKi0KIAogIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsCi0jIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAogIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCkBAIC0xMywxOCArMTQsODM5IEBACiAKIG00X2lmbmRlZihbQUNfQVVUT0NPTkZfVkVSU0lPTl0sCiAgIFttNF9jb3B5KFttNF9QQUNLQUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKLW00X2lmKG00X2RlZm4oW0FDX0FVVE9DT05GX1ZFUlNJT05dKSwgWzIuNjVdLCwKLVttNF93YXJuaW5nKFt0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBmb3IgYXV0b2NvbmYgMi42NS4KK200X2lmKG00X2RlZm4oW0FDX0FVVE9DT05GX1ZFUlNJT05dKSwgWzIuNjhdLCwKK1ttNF93YXJuaW5nKFt0aGlzIGZpbGUgd2FzIGdlbmVyYXRlZCBmb3IgYXV0b2NvbmYgMi42OC4KIFlvdSBoYXZlIGFub3RoZXIgdmVyc2lvbiBvZiBhdXRvY29uZi4gIEl0IG1heSB3b3JrLCBidXQgaXMgbm90IGd1YXJhbnRlZWQgdG8uCiBJZiB5b3UgaGF2ZSBwcm9ibGVtcywgeW91IG1heSBuZWVkIHRvIHJlZ2VuZXJhdGUgdGhlIGJ1aWxkIHN5c3RlbSBlbnRpcmVseS4KIFRvIGRvIHNvLCB1c2UgdGhlIHByb2NlZHVyZSBkb2N1bWVudGVkIGJ5IHRoZSBwYWNrYWdlLCB0eXBpY2FsbHkgYGF1dG9yZWNvbmYnLl0pXSkKIAotIyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBsdGRsLm00IC0gQ29uZmlndXJlIGx0ZGwgZm9yIHRoZSB0YXJnZXQgc3lzdGVtLiAtKi1BdXRvY29uZi0qLQorIworIyAgIENvcHlyaWdodCAoQykgMTk5OS0yMDA2LCAyMDA3LCAyMDA4LCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgIFdyaXR0ZW4gYnkgVGhvbWFzIFRhbm5lciwgMTk5OQorIworIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcworIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCisKKyMgc2VyaWFsIDE4IExURExfSU5JVAorCisjIExUX0NPTkZJR19MVERMX0RJUihESVJFQ1RPUlksIFtMVERMLU1PREVdKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRElSRUNUT1JZIGNvbnRhaW5zIHRoZSBsaWJsdGRsIHNvdXJjZXMuICBJdCBpcyBva2F5IHRvIGNhbGwgdGhpcworIyBmdW5jdGlvbiBtdWx0aXBsZSB0aW1lcywgYXMgbG9uZyBhcyB0aGUgc2FtZSBESVJFQ1RPUlkgaXMgYWx3YXlzIGdpdmVuLgorQUNfREVGVU4oW0xUX0NPTkZJR19MVERMX0RJUl0sCitbQUNfQkVGT1JFKFskMF0sIFtMVERMX0lOSVRdKQorXyQwKCQqKQorXSkjIExUX0NPTkZJR19MVERMX0RJUgorCisjIFdlIGJyZWFrIHRoaXMgb3V0IGludG8gYSBzZXBhcmF0ZSBtYWNybywgc28gdGhhdCB3ZSBjYW4gY2FsbCBpdCBzYWZlbHkKKyMgaW50ZXJuYWxseSB3aXRob3V0IGJlaW5nIGNhdWdodCBhY2NpZGVudGFsbHkgYnkgdGhlIHNlZCBzY2FuIGluIGxpYnRvb2xpemUuCittNF9kZWZ1bihbX0xUX0NPTkZJR19MVERMX0RJUl0sCitbZG5sIHJlbW92ZSB0cmFpbGluZyBzbGFzaGVzCittNF9wdXNoZGVmKFtfQVJHX0RJUl0sIG00X2JwYXRzdWJzdChbJDFdLCBbLyokXSkpCittNF9jYXNlKF9MVERMX0RJUiwKKwlbXSwgW2RubCBvbmx5IHNldCBsdF9sdGRsX2RpciBpZiBfQVJHX0RJUiBpcyBub3Qgc2ltcGx5IGAuJworCSAgICAgbTRfaWYoX0FSR19ESVIsIFsuXSwKKwkgICAgICAgICAgICAgW10sCisJCSBbbTRfZGVmaW5lKFtfTFRETF9ESVJdLCBfQVJHX0RJUikKKwkgICAgICAgICAgX0xUX1NIRUxMX0lOSVQoW2x0X2x0ZGxfZGlyPSddX0FSR19ESVJbJ10pXSldLAorICAgIFttNF9pZihfQVJHX0RJUiwgX0xURExfRElSLAorCSAgICBbXSwKKwlbbTRfZmF0YWwoW211bHRpcGxlIGxpYmx0ZGwgZGlyZWN0b3JpZXM6IGBdX0xURExfRElSWycsIGBdX0FSR19ESVJbJ10pXSldKQorbTRfcG9wZGVmKFtfQVJHX0RJUl0pCitdKSMgX0xUX0NPTkZJR19MVERMX0RJUgorCisjIEluaXRpYWxpc2U6CittNF9kZWZpbmUoW19MVERMX0RJUl0sIFtdKQorCisKKyMgX0xUX0JVSUxEX1BSRUZJWAorIyAtLS0tLS0tLS0tLS0tLS0tCisjIElmIEF1dG9jb25mIGlzIG5ldyBlbm91Z2gsIGV4cGFuZCB0byBgJHt0b3BfYnVpbGRfcHJlZml4fScsIG90aGVyd2lzZQorIyB0byBgJHt0b3BfYnVpbGRkaXJ9LycuCittNF9kZWZpbmUoW19MVF9CVUlMRF9QUkVGSVhdLAorW200X2lmZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKKyAgIFttNF9pZihtNF92ZXJzaW9uX2NvbXBhcmUobTRfZGVmbihbQUNfQVVUT0NPTkZfVkVSU0lPTl0pLCBbMi42Ml0pLAorCSAgWy0xXSwgW200X2lmZGVmKFtfQUNfSEFWRV9UT1BfQlVJTERfUFJFRklYXSwKKwkJCSAgWyR7dG9wX2J1aWxkX3ByZWZpeH1dLAorCQkJICBbJHt0b3BfYnVpbGRkaXJ9L10pXSwKKwkgIFske3RvcF9idWlsZF9wcmVmaXh9XSldLAorICAgWyR7dG9wX2J1aWxkZGlyfS9dKVtdZG5sCitdKQorCisKKyMgTFRETF9DT05WRU5JRU5DRQorIyAtLS0tLS0tLS0tLS0tLS0tCisjIHNldHMgTElCTFRETCB0byB0aGUgbGluayBmbGFncyBmb3IgdGhlIGxpYmx0ZGwgY29udmVuaWVuY2UgbGlicmFyeSBhbmQKKyMgTFRETElOQ0wgdG8gdGhlIGluY2x1ZGUgZmxhZ3MgZm9yIHRoZSBsaWJsdGRsIGhlYWRlciBhbmQgYWRkcworIyAtLWVuYWJsZS1sdGRsLWNvbnZlbmllbmNlIHRvIHRoZSBjb25maWd1cmUgYXJndW1lbnRzLiAgTm90ZSB0aGF0CisjIEFDX0NPTkZJR19TVUJESVJTIGlzIG5vdCBjYWxsZWQgaGVyZS4gIExJQkxUREwgd2lsbCBiZSBwcmVmaXhlZCB3aXRoCisjICcke3RvcF9idWlsZF9wcmVmaXh9JyBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSB3aXRoICcke3RvcF9idWlsZGRpcn0vJywKKyMgYW5kIExURExJTkNMIHdpbGwgYmUgcHJlZml4ZWQgd2l0aCAnJHt0b3Bfc3JjZGlyfS8nIChub3RlIHRoZSBzaW5nbGUKKyMgcXVvdGVzISkuICBJZiB5b3VyIHBhY2thZ2UgaXMgbm90IGZsYXQgYW5kIHlvdSdyZSBub3QgdXNpbmcgYXV0b21ha2UsCisjIGRlZmluZSB0b3BfYnVpbGRfcHJlZml4LCB0b3BfYnVpbGRkaXIsIGFuZCB0b3Bfc3JjZGlyIGFwcHJvcHJpYXRlbHkKKyMgaW4geW91ciBNYWtlZmlsZXMuCitBQ19ERUZVTihbTFRETF9DT05WRU5JRU5DRV0sCitbQUNfQkVGT1JFKFskMF0sIFtMVERMX0lOSVRdKWRubAorZG5sIEFsdGhvdWdoIHRoZSBhcmd1bWVudCBpcyBkZXByZWNhdGVkIGFuZCBubyBsb25nZXIgZG9jdW1lbnRlZCwKK2RubCBMVERMX0NPTlZFTklFTkNFIHVzZWQgdG8gdGFrZSBhIERJUkVDVE9SWSBvcmd1bWVudCwgaWYgd2UgaGF2ZSBvbmUKK2RubCBoZXJlIG1ha2Ugc3VyZSBpdCBpcyB0aGUgc2FtZSBhcyBhbnkgb3RoZXIgZGVjbGFyYXRpb24gb2YgbGlibHRkbCdzCitkbmwgbG9jYXRpb24hICBUaGlzIGFsc28gZW5zdXJlcyBsdF9sdGRsX2RpciBpcyBzZXQgd2hlbiBjb25maWd1cmUuYWMgaXMKK2RubCBub3QgeWV0IHVzaW5nIGFuIGV4cGxpY2l0IExUX0NPTkZJR19MVERMX0RJUi4KK200X2lmdmFsKFskMV0sIFtfTFRfQ09ORklHX0xURExfRElSKFskMV0pXSlkbmwKK18kMCgpCitdKSMgTFRETF9DT05WRU5JRU5DRQorCisjIEFDX0xJQkxURExfQ09OVkVOSUVOQ0UgYWNjZXB0ZWQgYSBkaXJlY3RvcnkgYXJndW1lbnQgaW4gb2xkZXIgbGlidG9vbHMsCisjIG5vdyB3ZSBoYXZlIExUX0NPTkZJR19MVERMX0RJUjoKK0FVX0RFRlVOKFtBQ19MSUJMVERMX0NPTlZFTklFTkNFXSwKK1tfTFRfQ09ORklHX0xURExfRElSKFttNF9kZWZhdWx0KFskMV0sIFtsaWJsdGRsXSldKQorX0xURExfQ09OVkVOSUVOQ0VdKQorCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xJQkxURExfQ09OVkVOSUVOQ0VdLCBbXSkKKworCisjIF9MVERMX0NPTlZFTklFTkNFCisjIC0tLS0tLS0tLS0tLS0tLS0tCisjIENvZGUgc2hhcmVkIGJ5IExURExfQ09OVkVOSUVOQ0UgYW5kIExURExfSU5JVChbY29udmVuaWVuY2VdKS4KK200X2RlZnVuKFtfTFRETF9DT05WRU5JRU5DRV0sCitbY2FzZSAkZW5hYmxlX2x0ZGxfY29udmVuaWVuY2UgaW4KKyAgbm8pIEFDX01TR19FUlJPUihbdGhpcyBwYWNrYWdlIG5lZWRzIGEgY29udmVuaWVuY2UgbGlibHRkbF0pIDs7CisgICIiKSBlbmFibGVfbHRkbF9jb252ZW5pZW5jZT15ZXMKKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgLS1lbmFibGUtbHRkbC1jb252ZW5pZW5jZSIgOzsKK2VzYWMKK0xJQkxUREw9J19MVF9CVUlMRF9QUkVGSVgnIiR7bHRfbHRkbF9kaXIrJGx0X2x0ZGxfZGlyL31saWJsdGRsYy5sYSIKK0xURExERVBTPSRMSUJMVERMCitMVERMSU5DTD0nLUkke3RvcF9zcmNkaXJ9JyIke2x0X2x0ZGxfZGlyKy8kbHRfbHRkbF9kaXJ9IgorCitBQ19TVUJTVChbTElCTFRETF0pCitBQ19TVUJTVChbTFRETERFUFNdKQorQUNfU1VCU1QoW0xURExJTkNMXSkKKworIyBGb3IgYmFja3dhcmRzIG5vbi1nZXR0ZXh0IGNvbnNpc3RlbnQgY29tcGF0aWJpbGl0eS4uLgorSU5DTFRETD0iJExURExJTkNMIgorQUNfU1VCU1QoW0lOQ0xURExdKQorXSkjIF9MVERMX0NPTlZFTklFTkNFCisKKworIyBMVERMX0lOU1RBTExBQkxFCisjIC0tLS0tLS0tLS0tLS0tLS0KKyMgc2V0cyBMSUJMVERMIHRvIHRoZSBsaW5rIGZsYWdzIGZvciB0aGUgbGlibHRkbCBpbnN0YWxsYWJsZSBsaWJyYXJ5CisjIGFuZCBMVERMSU5DTCB0byB0aGUgaW5jbHVkZSBmbGFncyBmb3IgdGhlIGxpYmx0ZGwgaGVhZGVyIGFuZCBhZGRzCisjIC0tZW5hYmxlLWx0ZGwtaW5zdGFsbCB0byB0aGUgY29uZmlndXJlIGFyZ3VtZW50cy4gIE5vdGUgdGhhdAorIyBBQ19DT05GSUdfU1VCRElSUyBpcyBub3QgY2FsbGVkIGZyb20gaGVyZS4gIElmIGFuIGluc3RhbGxlZCBsaWJsdGRsCisjIGlzIG5vdCBmb3VuZCwgTElCTFRETCB3aWxsIGJlIHByZWZpeGVkIHdpdGggJyR7dG9wX2J1aWxkX3ByZWZpeH0nIGlmCisjIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHdpdGggJyR7dG9wX2J1aWxkZGlyfS8nLCBhbmQgTFRETElOQ0wgd2lsbCBiZQorIyBwcmVmaXhlZCB3aXRoICcke3RvcF9zcmNkaXJ9LycgKG5vdGUgdGhlIHNpbmdsZSBxdW90ZXMhKS4gIElmIHlvdXIKKyMgcGFja2FnZSBpcyBub3QgZmxhdCBhbmQgeW91J3JlIG5vdCB1c2luZyBhdXRvbWFrZSwgZGVmaW5lIHRvcF9idWlsZF9wcmVmaXgsCisjIHRvcF9idWlsZGRpciwgYW5kIHRvcF9zcmNkaXIgYXBwcm9wcmlhdGVseSBpbiB5b3VyIE1ha2VmaWxlcy4KKyMgSW4gdGhlIGZ1dHVyZSwgdGhpcyBtYWNybyBtYXkgaGF2ZSB0byBiZSBjYWxsZWQgYWZ0ZXIgTFRfSU5JVC4KK0FDX0RFRlVOKFtMVERMX0lOU1RBTExBQkxFXSwKK1tBQ19CRUZPUkUoWyQwXSwgW0xURExfSU5JVF0pZG5sCitkbmwgQWx0aG91Z2ggdGhlIGFyZ3VtZW50IGlzIGRlcHJlY2F0ZWQgYW5kIG5vIGxvbmdlciBkb2N1bWVudGVkLAorZG5sIExURExfSU5TVEFMTEFCTEUgdXNlZCB0byB0YWtlIGEgRElSRUNUT1JZIG9yZ3VtZW50LCBpZiB3ZSBoYXZlIG9uZQorZG5sIGhlcmUgbWFrZSBzdXJlIGl0IGlzIHRoZSBzYW1lIGFzIGFueSBvdGhlciBkZWNsYXJhdGlvbiBvZiBsaWJsdGRsJ3MKK2RubCBsb2NhdGlvbiEgIFRoaXMgYWxzbyBlbnN1cmVzIGx0X2x0ZGxfZGlyIGlzIHNldCB3aGVuIGNvbmZpZ3VyZS5hYyBpcworZG5sIG5vdCB5ZXQgdXNpbmcgYW4gZXhwbGljaXQgTFRfQ09ORklHX0xURExfRElSLgorbTRfaWZ2YWwoWyQxXSwgW19MVF9DT05GSUdfTFRETF9ESVIoWyQxXSldKWRubAorXyQwKCkKK10pIyBMVERMX0lOU1RBTExBQkxFCisKKyMgQUNfTElCTFRETF9JTlNUQUxMQUJMRSBhY2NlcHRlZCBhIGRpcmVjdG9yeSBhcmd1bWVudCBpbiBvbGRlciBsaWJ0b29scywKKyMgbm93IHdlIGhhdmUgTFRfQ09ORklHX0xURExfRElSOgorQVVfREVGVU4oW0FDX0xJQkxURExfSU5TVEFMTEFCTEVdLAorW19MVF9DT05GSUdfTFRETF9ESVIoW200X2RlZmF1bHQoWyQxXSwgW2xpYmx0ZGxdKV0pCitfTFRETF9JTlNUQUxMQUJMRV0pCisKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfTElCTFRETF9JTlNUQUxMQUJMRV0sIFtdKQorCisKKyMgX0xURExfSU5TVEFMTEFCTEUKKyMgLS0tLS0tLS0tLS0tLS0tLS0KKyMgQ29kZSBzaGFyZWQgYnkgTFRETF9JTlNUQUxMQUJMRSBhbmQgTFRETF9JTklUKFtpbnN0YWxsYWJsZV0pLgorbTRfZGVmdW4oW19MVERMX0lOU1RBTExBQkxFXSwKK1tpZiB0ZXN0IC1mICRwcmVmaXgvbGliL2xpYmx0ZGwubGE7IHRoZW4KKyAgbHRfc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKyAgTERGTEFHUz0iLUwkcHJlZml4L2xpYiAkTERGTEFHUyIKKyAgQUNfQ0hFQ0tfTElCKFtsdGRsXSwgW2x0X2RsaW5pdF0sIFtsdF9saWJfbHRkbD15ZXNdKQorICBMREZMQUdTPSIkbHRfc2F2ZV9MREZMQUdTIgorICBpZiB0ZXN0IHgiJHtsdF9saWJfbHRkbC1ub30iID0geHllczsgdGhlbgorICAgIGlmIHRlc3QgeCIkZW5hYmxlX2x0ZGxfaW5zdGFsbCIgIT0geHllczsgdGhlbgorICAgICAgIyBEb24ndCBvdmVyd3JpdGUgJHByZWZpeC9saWIvbGlibHRkbC5sYSB3aXRob3V0IC0tZW5hYmxlLWx0ZGwtaW5zdGFsbAorICAgICAgQUNfTVNHX1dBUk4oW25vdCBvdmVyd3JpdGluZyBsaWJsdGRsIGF0ICRwcmVmaXgsIGZvcmNlIHdpdGggYC0tZW5hYmxlLWx0ZGwtaW5zdGFsbCddKQorICAgICAgZW5hYmxlX2x0ZGxfaW5zdGFsbD1ubworICAgIGZpCisgIGVsaWYgdGVzdCB4IiRlbmFibGVfbHRkbF9pbnN0YWxsIiA9IHhubzsgdGhlbgorICAgIEFDX01TR19XQVJOKFtsaWJsdGRsIG5vdCBpbnN0YWxsZWQsIGJ1dCBpbnN0YWxsYXRpb24gZGlzYWJsZWRdKQorICBmaQorZmkKKworIyBJZiBjb25maWd1cmUuYWMgZGVjbGFyZWQgYW4gaW5zdGFsbGFibGUgbHRkbCwgYW5kIHRoZSB1c2VyIGRpZG4ndCBvdmVycmlkZQorIyB3aXRoIC0tZGlzYWJsZS1sdGRsLWluc3RhbGwsIHdlIHdpbGwgaW5zdGFsbCB0aGUgc2hpcHBlZCBsaWJsdGRsLgorY2FzZSAkZW5hYmxlX2x0ZGxfaW5zdGFsbCBpbgorICBubykgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAtLWVuYWJsZS1sdGRsLWluc3RhbGw9bm8iCisgICAgICBMSUJMVERMPSItbGx0ZGwiCisgICAgICBMVERMREVQUz0KKyAgICAgIExURExJTkNMPQorICAgICAgOzsKKyAgKikgIGVuYWJsZV9sdGRsX2luc3RhbGw9eWVzCisgICAgICBhY19jb25maWd1cmVfYXJncz0iJGFjX2NvbmZpZ3VyZV9hcmdzIC0tZW5hYmxlLWx0ZGwtaW5zdGFsbCIKKyAgICAgIExJQkxUREw9J19MVF9CVUlMRF9QUkVGSVgnIiR7bHRfbHRkbF9kaXIrJGx0X2x0ZGxfZGlyL31saWJsdGRsLmxhIgorICAgICAgTFRETERFUFM9JExJQkxUREwKKyAgICAgIExURExJTkNMPSctSSR7dG9wX3NyY2Rpcn0nIiR7bHRfbHRkbF9kaXIrLyRsdF9sdGRsX2Rpcn0iCisgICAgICA7OworZXNhYworCitBQ19TVUJTVChbTElCTFRETF0pCitBQ19TVUJTVChbTFRETERFUFNdKQorQUNfU1VCU1QoW0xURExJTkNMXSkKKworIyBGb3IgYmFja3dhcmRzIG5vbi1nZXR0ZXh0IGNvbnNpc3RlbnQgY29tcGF0aWJpbGl0eS4uLgorSU5DTFRETD0iJExURExJTkNMIgorQUNfU1VCU1QoW0lOQ0xURExdKQorXSkjIExURExfSU5TVEFMTEFCTEUKKworCisjIF9MVERMX01PREVfRElTUEFUQ0gKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmaW5lKFtfTFRETF9NT0RFX0RJU1BBVENIXSwKK1tkbmwgSWYgX0xURExfRElSIGlzIGAuJywgdGhlbiB3ZSBhcmUgY29uZmlndXJpbmcgbGlibHRkbCBpdHNlbGY6CittNF9pZihfTFRETF9ESVIsIFtdLAorCVtdLAorICAgIGRubCBpZiBfTFRETF9NT0RFIHdhcyBub3Qgc2V0IGFscmVhZHksIHRoZSBkZWZhdWx0IHZhbHVlIGlzIGBzdWJwcm9qZWN0JzoKKyAgICBbbTRfY2FzZShtNF9kZWZhdWx0KF9MVERMX01PREUsIFtzdWJwcm9qZWN0XSksCisJICBbc3VicHJvamVjdF0sIFtBQ19DT05GSUdfU1VCRElSUyhfTFRETF9ESVIpCisJCQkgIF9MVF9TSEVMTF9JTklUKFtsdF9kbG9wZW5fZGlyPSIkbHRfbHRkbF9kaXIiXSldLAorCSAgW25vbnJlY3Vyc2l2ZV0sIFtfTFRfU0hFTExfSU5JVChbbHRfZGxvcGVuX2Rpcj0iJGx0X2x0ZGxfZGlyIjsgbHRfbGlib2JqX3ByZWZpeD0iJGx0X2x0ZGxfZGlyLyJdKV0sCisJICBbcmVjdXJzaXZlXSwgW10sCisJW200X2ZhdGFsKFt1bmtub3duIGxpYmx0ZGwgbW9kZTogXV9MVERMX01PREUpXSldKWRubAorZG5sIEJlIGNhcmVmdWwgbm90IHRvIGV4cGFuZCB0d2ljZToKK200X2RlZmluZShbJDBdLCBbXSkKK10pIyBfTFRETF9NT0RFX0RJU1BBVENICisKKworIyBfTFRfTElCT0JKKE1PRFVMRV9OQU1FKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBMaWtlIEFDX0xJQk9CSiwgZXhjZXB0IHRoYXQgTU9EVUxFX05BTUUgZ29lcyBpbnRvIF9MVF9MSUJPQkpTIGluc3RlYWQKKyMgb2YgaW50byBMSUJPQkpTLgorQUNfREVGVU4oW19MVF9MSUJPQkpdLCBbCisgIG00X3BhdHRlcm5fYWxsb3coW15fTFRfTElCT0JKUyRdKQorICBfTFRfTElCT0JKUz0iJF9MVF9MSUJPQkpTICQxLiRhY19vYmpleHQiCitdKSMgX0xUX0xJQk9CSlMKKworCisjIExURExfSU5JVChbT1BUSU9OU10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIENsaWVudHMgb2YgbGlibHRkbCBjYW4gdXNlIHRoaXMgbWFjcm8gdG8gYWxsb3cgdGhlIGluc3RhbGxlciB0bworIyBjaG9vc2UgYmV0d2VlbiBhIHNoaXBwZWQgY29weSBvZiB0aGUgbHRkbCBzb3VyY2VzIG9yIGEgcHJlaW5zdGFsbGVkCisjIHZlcnNpb24gb2YgdGhlIGxpYnJhcnkuICBJZiB0aGUgc2hpcHBlZCBsdGRsIHNvdXJjZXMgYXJlIG5vdCBpbiBhCisjIHN1YmRpcmVjdG9yeSBuYW1lZCBsaWJsdGRsLCB0aGUgZGlyZWN0b3J5IG5hbWUgbXVzdCBiZSBnaXZlbiBieQorIyBMVF9DT05GSUdfTFRETF9ESVIuCitBQ19ERUZVTihbTFRETF9JTklUXSwKK1tkbmwgUGFyc2UgT1BUSU9OUworX0xUX1NFVF9PUFRJT05TKFskMF0sIFskMV0pCisKK2RubCBXZSBuZWVkIHRvIGtlZXAgb3VyIG93biBsaXN0IG9mIGxpYm9ianMgc2VwYXJhdGUgZnJvbSBvdXIgcGFyZW50IHByb2plY3QsCitkbmwgYW5kIHRoZSBlYXNpZXN0IHdheSB0byBkbyB0aGF0IGlzIHJlZGVmaW5lIHRoZSBBQ19MSUJPQkpzIG1hY3JvIHdoaWxlCitkbmwgd2UgbG9vayBmb3Igb3VyIG93biBMSUJPQkpzLgorbTRfcHVzaGRlZihbQUNfTElCT0JKXSwgbTRfZGVmbihbX0xUX0xJQk9CSl0pKQorbTRfcHVzaGRlZihbQUNfTElCU09VUkNFU10pCisKK2RubCBJZiBub3Qgb3RoZXJ3aXNlIGRlZmluZWQsIGRlZmF1bHQgdG8gdGhlIDEuNS54IGNvbXBhdGlibGUgc3VicHJvamVjdCBtb2RlOgorbTRfaWYoX0xURExfTU9ERSwgW10sCisgICAgICAgIFttNF9kZWZpbmUoW19MVERMX01PREVdLCBtNF9kZWZhdWx0KFskMl0sIFtzdWJwcm9qZWN0XSkpCisgICAgICAgIG00X2lmKFstMV0sIFttNF9icmVnZXhwKF9MVERMX01PREUsIFtcKHN1YnByb2plY3RcfFwobm9uXCk/cmVjdXJzaXZlXCldKV0sCisgICAgICAgICAgICAgICAgW200X2ZhdGFsKFt1bmtub3duIGxpYmx0ZGwgbW9kZTogXV9MVERMX01PREUpXSldKQorCitBQ19BUkdfV0lUSChbaW5jbHVkZWRfbHRkbF0sCisgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtaW5jbHVkZWQtbHRkbF0sCisgICAgICAgICAgICAgICAgICAgIFt1c2UgdGhlIEdOVSBsdGRsIHNvdXJjZXMgaW5jbHVkZWQgaGVyZV0pXSkKKworaWYgdGVzdCAieCR3aXRoX2luY2x1ZGVkX2x0ZGwiICE9IHh5ZXM7IHRoZW4KKyAgIyBXZSBhcmUgbm90IGJlaW5nIGZvcmNlZCB0byB1c2UgdGhlIGluY2x1ZGVkIGxpYmx0ZGwgc291cmNlcywgc28KKyAgIyBkZWNpZGUgd2hldGhlciB0aGVyZSBpcyBhIHVzZWZ1bCBpbnN0YWxsZWQgdmVyc2lvbiB3ZSBjYW4gdXNlLgorICBBQ19DSEVDS19IRUFERVIoW2x0ZGwuaF0sCisgICAgICBbQUNfQ0hFQ0tfREVDTChbbHRfZGxpbnRlcmZhY2VfcmVnaXN0ZXJdLAorCSAgIFtBQ19DSEVDS19MSUIoW2x0ZGxdLCBbbHRfZGxhZHZpc2VfcHJlbG9hZF0sCisJICAgICAgIFt3aXRoX2luY2x1ZGVkX2x0ZGw9bm9dLAorCSAgICAgICBbd2l0aF9pbmNsdWRlZF9sdGRsPXllc10pXSwKKwkgICBbd2l0aF9pbmNsdWRlZF9sdGRsPXllc10sCisJICAgW0FDX0lOQ0xVREVTX0RFRkFVTFQKKwkgICAgI2luY2x1ZGUgPGx0ZGwuaD5dKV0sCisgICAgICBbd2l0aF9pbmNsdWRlZF9sdGRsPXllc10sCisgICAgICBbQUNfSU5DTFVERVNfREVGQVVMVF0KKyAgKQorZmkKKworZG5sIElmIG5laXRoZXIgTFRfQ09ORklHX0xURExfRElSLCBMVERMX0NPTlZFTklFTkNFIG5vciBMVERMX0lOU1RBTExBQkxFCitkbmwgd2FzIGNhbGxlZCB5ZXQsIHRoZW4gZm9yIG9sZCB0aW1lcycgc2FrZSwgd2UgYXNzdW1lIGxpYmx0ZGwgaXMgaW4gYW4KK2RubCBlcG9ueW1vdXMgZGlyZWN0b3J5OgorQUNfUFJPVklERV9JRkVMU0UoW0xUX0NPTkZJR19MVERMX0RJUl0sIFtdLCBbX0xUX0NPTkZJR19MVERMX0RJUihbbGlibHRkbF0pXSkKKworQUNfQVJHX1dJVEgoW2x0ZGxfaW5jbHVkZV0sCisgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtbHRkbC1pbmNsdWRlPURJUl0sCisgICAgICAgICAgICAgICAgICAgIFt1c2UgdGhlIGx0ZGwgaGVhZGVycyBpbnN0YWxsZWQgaW4gRElSXSldKQorCitpZiB0ZXN0IC1uICIkd2l0aF9sdGRsX2luY2x1ZGUiOyB0aGVuCisgIGlmIHRlc3QgLWYgIiR3aXRoX2x0ZGxfaW5jbHVkZS9sdGRsLmgiOyB0aGVuIDoKKyAgZWxzZQorICAgIEFDX01TR19FUlJPUihbaW52YWxpZCBsdGRsIGluY2x1ZGUgZGlyZWN0b3J5OiBgJHdpdGhfbHRkbF9pbmNsdWRlJ10pCisgIGZpCitlbHNlCisgIHdpdGhfbHRkbF9pbmNsdWRlPW5vCitmaQorCitBQ19BUkdfV0lUSChbbHRkbF9saWJdLAorICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLWx0ZGwtbGliPURJUl0sCisgICAgICAgICAgICAgICAgICAgIFt1c2UgdGhlIGxpYmx0ZGwubGEgaW5zdGFsbGVkIGluIERJUl0pXSkKKworaWYgdGVzdCAtbiAiJHdpdGhfbHRkbF9saWIiOyB0aGVuCisgIGlmIHRlc3QgLWYgIiR3aXRoX2x0ZGxfbGliL2xpYmx0ZGwubGEiOyB0aGVuIDoKKyAgZWxzZQorICAgIEFDX01TR19FUlJPUihbaW52YWxpZCBsdGRsIGxpYnJhcnkgZGlyZWN0b3J5OiBgJHdpdGhfbHRkbF9saWInXSkKKyAgZmkKK2Vsc2UKKyAgd2l0aF9sdGRsX2xpYj1ubworZmkKKworY2FzZSAsJHdpdGhfaW5jbHVkZWRfbHRkbCwkd2l0aF9sdGRsX2luY2x1ZGUsJHdpdGhfbHRkbF9saWIsIGluCisgICx5ZXMsbm8sbm8sKQorCW00X2Nhc2UobTRfZGVmYXVsdChfTFRETF9UWVBFLCBbY29udmVuaWVuY2VdKSwKKwkgICAgW2NvbnZlbmllbmNlXSwgW19MVERMX0NPTlZFTklFTkNFXSwKKwkgICAgW2luc3RhbGxhYmxlXSwgW19MVERMX0lOU1RBTExBQkxFXSwKKwkgIFttNF9mYXRhbChbdW5rbm93biBsaWJsdGRsIGJ1aWxkIHR5cGU6IF1fTFRETF9UWVBFKV0pCisJOzsKKyAgLG5vLG5vLG5vLCkKKwkjIElmIHRoZSBpbmNsdWRlZCBsdGRsIGlzIG5vdCB0byBiZSB1c2VkLCB0aGVuIHVzZSB0aGUKKwkjIHByZWluc3RhbGxlZCBsaWJsdGRsIHdlIGZvdW5kLgorCUFDX0RFRklORShbSEFWRV9MVERMXSwgWzFdLAorCSAgW0RlZmluZSB0aGlzIGlmIGEgbW9kZXJuIGxpYmx0ZGwgaXMgYWxyZWFkeSBpbnN0YWxsZWRdKQorCUxJQkxUREw9LWxsdGRsCisJTFRETERFUFM9CisJTFRETElOQ0w9CisJOzsKKyAgLG5vKixubywqKQorCUFDX01TR19FUlJPUihbYC0td2l0aC1sdGRsLWluY2x1ZGUnIGFuZCBgLS13aXRoLWx0ZGwtbGliJyBvcHRpb25zIG11c3QgYmUgdXNlZCB0b2dldGhlcl0pCisJOzsKKyAgKikJd2l0aF9pbmNsdWRlZF9sdGRsPW5vCisJTElCTFRETD0iLUwkd2l0aF9sdGRsX2xpYiAtbGx0ZGwiCisJTFRETERFUFM9CisJTFRETElOQ0w9Ii1JJHdpdGhfbHRkbF9pbmNsdWRlIgorCTs7Citlc2FjCitJTkNMVERMPSIkTFRETElOQ0wiCisKKyMgUmVwb3J0IG91ciBkZWNpc2lvbi4uLgorQUNfTVNHX0NIRUNLSU5HKFt3aGVyZSB0byBmaW5kIGxpYmx0ZGwgaGVhZGVyc10pCitBQ19NU0dfUkVTVUxUKFskTFRETElOQ0xdKQorQUNfTVNHX0NIRUNLSU5HKFt3aGVyZSB0byBmaW5kIGxpYmx0ZGwgbGlicmFyeV0pCitBQ19NU0dfUkVTVUxUKFskTElCTFRETF0pCisKK19MVERMX1NFVFVQCisKK2RubCByZXN0b3JlIGF1dG9jb25mIGRlZmluaXRpb24uCittNF9wb3BkZWYoW0FDX0xJQk9CSl0pCittNF9wb3BkZWYoW0FDX0xJQlNPVVJDRVNdKQorCitBQ19DT05GSUdfQ09NTUFORFNfUFJFKFsKKyAgICBfbHRkbF9saWJvYmpzPQorICAgIF9sdGRsX2x0bGlib2Jqcz0KKyAgICBpZiB0ZXN0IC1uICIkX0xUX0xJQk9CSlMiOyB0aGVuCisgICAgICAjIFJlbW92ZSB0aGUgZXh0ZW5zaW9uLgorICAgICAgX2x0X3NlZF9kcm9wX29iamV4dD0ncy9cLm8kLy87cy9cLm9iaiQvLycKKyAgICAgIGZvciBpIGluIGBmb3IgaSBpbiAkX0xUX0xJQk9CSlM7IGRvIGVjaG8gIiRpIjsgZG9uZSB8IHNlZCAiJF9sdF9zZWRfZHJvcF9vYmpleHQiIHwgc29ydCAtdWA7IGRvCisgICAgICAgIF9sdGRsX2xpYm9ianM9IiRfbHRkbF9saWJvYmpzICRsdF9saWJvYmpfcHJlZml4JGkuJGFjX29iamV4dCIKKyAgICAgICAgX2x0ZGxfbHRsaWJvYmpzPSIkX2x0ZGxfbHRsaWJvYmpzICRsdF9saWJvYmpfcHJlZml4JGkubG8iCisgICAgICBkb25lCisgICAgZmkKKyAgICBBQ19TVUJTVChbbHRkbF9MSUJPQkpTXSwgWyRfbHRkbF9saWJvYmpzXSkKKyAgICBBQ19TVUJTVChbbHRkbF9MVExJQk9CSlNdLCBbJF9sdGRsX2x0bGlib2Jqc10pCitdKQorCisjIE9ubHkgZXhwYW5kIG9uY2U6CittNF9kZWZpbmUoW0xURExfSU5JVF0pCitdKSMgTFRETF9JTklUCisKKyMgT2xkIG5hbWVzOgorQVVfREVGVU4oW0FDX0xJQl9MVERMXSwgW0xURExfSU5JVCgkQCldKQorQVVfREVGVU4oW0FDX1dJVEhfTFRETF0sIFtMVERMX0lOSVQoJEApXSkKK0FVX0RFRlVOKFtMVF9XSVRIX0xURExdLCBbTFRETF9JTklUKCRAKV0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xJQl9MVERMXSwgW10pCitkbmwgQUNfREVGVU4oW0FDX1dJVEhfTFRETF0sIFtdKQorZG5sIEFDX0RFRlVOKFtMVF9XSVRIX0xURExdLCBbXSkKKworCisjIF9MVERMX1NFVFVQCisjIC0tLS0tLS0tLS0tCisjIFBlcmZvcm0gYWxsIHRoZSBjaGVja3MgbmVjZXNzYXJ5IGZvciBjb21waWxhdGlvbiBvZiB0aGUgbHRkbCBvYmplY3RzCisjICAtLSBpbmNsdWRpbmcgY29tcGlsZXIgY2hlY2tzIGFuZCBoZWFkZXIgY2hlY2tzLiAgVGhpcyBpcyBhIHB1YmxpYworIyBpbnRlcmZhY2UgIG1haW5seSBmb3IgdGhlIGJlbmVmaXQgb2YgbGlibHRkbCdzIG93biBjb25maWd1cmUuYWMsIG1vc3QKKyMgb3RoZXIgdXNlcnMgc2hvdWxkIGNhbGwgTFRETF9JTklUIGluc3RlYWQuCitBQ19ERUZVTihbX0xURExfU0VUVVBdLAorW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKWRubAorQUNfUkVRVUlSRShbTFRfU1lTX01PRFVMRV9FWFRdKWRubAorQUNfUkVRVUlSRShbTFRfU1lTX01PRFVMRV9QQVRIXSlkbmwKK0FDX1JFUVVJUkUoW0xUX1NZU19ETFNFQVJDSF9QQVRIXSlkbmwKK0FDX1JFUVVJUkUoW0xUX0xJQl9ETExPQURdKWRubAorQUNfUkVRVUlSRShbTFRfU1lTX1NZTUJPTF9VU0NPUkVdKWRubAorQUNfUkVRVUlSRShbTFRfRlVOQ19ETFNZTV9VU0NPUkVdKWRubAorQUNfUkVRVUlSRShbTFRfU1lTX0RMT1BFTl9ERVBMSUJTXSlkbmwKK0FDX1JFUVVJUkUoW2dsX0ZVTkNfQVJHWl0pZG5sCisKK200X3JlcXVpcmUoW19MVF9DSEVDS19PQkpESVJdKWRubAorbTRfcmVxdWlyZShbX0xUX0hFQURFUl9ETEZDTl0pZG5sCittNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfRExQUkVPUEVOXSlkbmwKK200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCisKK2RubCBEb24ndCByZXF1aXJlIHRoaXMsIG9yIGl0IHdpbGwgYmUgZXhwYW5kZWQgZWFybGllciB0aGFuIHRoZSBjb2RlCitkbmwgdGhhdCBzZXRzIHRoZSB2YXJpYWJsZXMgaXQgcmVsaWVzIG9uOgorX0xUX0VOQUJMRV9JTlNUQUxMCisKK2RubCBfTFRETF9NT0RFIHNwZWNpZmljIGNvZGUgbXVzdCBiZSBjYWxsZWQgYXQgbGVhc3Qgb25jZToKK19MVERMX01PREVfRElTUEFUQ0gKKworIyBJbiBvcmRlciB0aGF0IGx0ZGwuYyBjYW4gY29tcGlsZSwgZmluZCBvdXQgdGhlIGZpcnN0IEFDX0NPTkZJR19IRUFERVJTCisjIHRoZSB1c2VyIHVzZWQuICBUaGlzIGlzIHNvIHRoYXQgbHRkbC5oIGNhbiBwaWNrIHVwIHRoZSBwYXJlbnQgcHJvamVjdHMKKyMgY29uZmlnLmggZmlsZSwgVGhlIGZpcnN0IGZpbGUgaW4gQUNfQ09ORklHX0hFQURFUlMgbXVzdCBjb250YWluIHRoZQorIyBkZWZpbml0aW9ucyByZXF1aXJlZCBieSBsdGRsLmMuCisjIEZJWE1FOiBSZW1vdmUgdXNlIG9mIHVuZG9jdW1lbnRlZCBBQ19MSVNUX0hFQURFUlMgKDIuNTkgY29tcGF0aWJpbGl0eSkuCitBQ19DT05GSUdfQ09NTUFORFNfUFJFKFtkbmwKK200X3BhdHRlcm5fYWxsb3coW15MVF9DT05GSUdfSCRdKWRubAorbTRfaWZzZXQoW0FIX0hFQURFUl0sCisgICAgW0xUX0NPTkZJR19IPUFIX0hFQURFUl0sCisgICAgW200X2lmc2V0KFtBQ19MSVNUX0hFQURFUlNdLAorCSAgICBbTFRfQ09ORklHX0g9YGVjaG8gIkFDX0xJU1RfSEVBREVSUyIgfCAkU0VEICdzLF5bWyAgICAgIF1dKiwsO3MsW1sgOl1dLiokLCwnYF0sCisJW10pXSldKQorQUNfU1VCU1QoW0xUX0NPTkZJR19IXSkKKworQUNfQ0hFQ0tfSEVBREVSUyhbdW5pc3RkLmggZGwuaCBzeXMvZGwuaCBkbGQuaCBtYWNoLW8vZHlsZC5oIGRpcmVudC5oXSwKKwlbXSwgW10sIFtBQ19JTkNMVURFU19ERUZBVUxUXSkKKworQUNfQ0hFQ0tfRlVOQ1MoW2Nsb3NlZGlyIG9wZW5kaXIgcmVhZGRpcl0sIFtdLCBbQUNfTElCT0JKKFtsdF9fZGlyZW50XSldKQorQUNfQ0hFQ0tfRlVOQ1MoW3N0cmxjYXQgc3RybGNweV0sIFtdLCBbQUNfTElCT0JKKFtsdF9fc3RybF0pXSkKKworbTRfcGF0dGVybl9hbGxvdyhbTFRfTElCRVhUXSlkbmwKK0FDX0RFRklORV9VTlFVT1RFRChbTFRfTElCRVhUXSxbIiRsaWJleHQiXSxbVGhlIGFyY2hpdmUgZXh0ZW5zaW9uXSkKKworbmFtZT0KK2V2YWwgImx0X2xpYnByZWZpeD1cIiRsaWJuYW1lX3NwZWNcIiIKK200X3BhdHRlcm5fYWxsb3coW0xUX0xJQlBSRUZJWF0pZG5sCitBQ19ERUZJTkVfVU5RVU9URUQoW0xUX0xJQlBSRUZJWF0sWyIkbHRfbGlicHJlZml4Il0sW1RoZSBhcmNoaXZlIHByZWZpeF0pCisKK25hbWU9bHRkbAorZXZhbCAiTFRETE9QRU49XCIkbGlibmFtZV9zcGVjXCIiCitBQ19TVUJTVChbTFRETE9QRU5dKQorXSkjIF9MVERMX1NFVFVQCisKKworIyBfTFRfRU5BQkxFX0lOU1RBTEwKKyMgLS0tLS0tLS0tLS0tLS0tLS0tCittNF9kZWZpbmUoW19MVF9FTkFCTEVfSU5TVEFMTF0sCitbQUNfQVJHX0VOQUJMRShbbHRkbC1pbnN0YWxsXSwKKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWx0ZGwtaW5zdGFsbF0sIFtpbnN0YWxsIGxpYmx0ZGxdKV0pCisKK2Nhc2UgLCR7ZW5hYmxlX2x0ZGxfaW5zdGFsbH0sJHtlbmFibGVfbHRkbF9jb252ZW5pZW5jZX0gaW4KKyAgKnllcyopIDs7CisgICopIGVuYWJsZV9sdGRsX2NvbnZlbmllbmNlPXllcyA7OworZXNhYworCittNF9pZmRlZihbQU1fQ09ORElUSU9OQUxdLAorW0FNX0NPTkRJVElPTkFMKElOU1RBTExfTFRETCwgdGVzdCB4IiR7ZW5hYmxlX2x0ZGxfaW5zdGFsbC1ub30iICE9IHhubykKKyBBTV9DT05ESVRJT05BTChDT05WRU5JRU5DRV9MVERMLCB0ZXN0IHgiJHtlbmFibGVfbHRkbF9jb252ZW5pZW5jZS1ub30iICE9IHhubyldKQorXSkjIF9MVF9FTkFCTEVfSU5TVEFMTAorCisKKyMgTFRfU1lTX0RMT1BFTl9ERVBMSUJTCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW0xUX1NZU19ETE9QRU5fREVQTElCU10sCitbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgZGVwbGlicyBhcmUgbG9hZGVkIGJ5IGRsb3Blbl0sCisgIFtsdF9jdl9zeXNfZGxvcGVuX2RlcGxpYnNdLAorICBbIyBQT1JUTUUgZG9lcyB5b3VyIHN5c3RlbSBhdXRvbWF0aWNhbGx5IGxvYWQgZGVwbGlicyBmb3IgZGxvcGVuPworICAjIG9yIGl0cyBsb2dpY2FsIGVxdWl2YWxlbnQgKGUuZy4gc2hsX2xvYWQgZm9yIEhQLVVYIDwgMTEpCisgICMgRm9yIG5vdywgd2UganVzdCBjYXRjaCBPU2VzIHdlIGtub3cgc29tZXRoaW5nIGFib3V0IC0tIGluIHRoZQorICAjIGZ1dHVyZSwgd2UnbGwgdHJ5IHRlc3QgdGhpcyBwcm9ncmFtbWF0aWNhbGx5LgorICBsdF9jdl9zeXNfZGxvcGVuX2RlcGxpYnM9dW5rbm93bgorICBjYXNlICRob3N0X29zIGluCisgIGFpeDMqfGFpeDQuMS4qfGFpeDQuMi4qKQorICAgICMgVW5rbm93biB3aGV0aGVyIHRoaXMgaXMgdHJ1ZSBmb3IgdGhlc2UgdmVyc2lvbnMgb2YgQUlYLCBidXQKKyAgICAjIHdlIHdhbnQgdGhpcyBgY2FzZScgaGVyZSB0byBleHBsaWNpdGx5IGNhdGNoIHRob3NlIHZlcnNpb25zLgorICAgIGx0X2N2X3N5c19kbG9wZW5fZGVwbGlicz11bmtub3duCisgICAgOzsKKyAgYWl4W1s0LTldXSopCisgICAgbHRfY3Zfc3lzX2Rsb3Blbl9kZXBsaWJzPXllcworICAgIDs7CisgIGFtaWdhb3MqKQorICAgIGNhc2UgJGhvc3RfY3B1IGluCisgICAgcG93ZXJwYykKKyAgICAgIGx0X2N2X3N5c19kbG9wZW5fZGVwbGlicz1ubworICAgICAgOzsKKyAgICBlc2FjCisgICAgOzsKKyAgZGFyd2luKikKKyAgICAjIEFzc3VtaW5nIHRoZSB1c2VyIGhhcyBpbnN0YWxsZWQgYSBsaWJkbCBmcm9tIHNvbWV3aGVyZSwgdGhpcyBpcyB0cnVlCisgICAgIyBJZiB5b3UgYXJlIGxvb2tpbmcgZm9yIG9uZSBodHRwOi8vd3d3Lm9wZW5kYXJ3aW4ub3JnL3Byb2plY3RzL2RsY29tcGF0CisgICAgbHRfY3Zfc3lzX2Rsb3Blbl9kZXBsaWJzPXllcworICAgIDs7CisgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKKyAgICBsdF9jdl9zeXNfZGxvcGVuX2RlcGxpYnM9eWVzCisgICAgOzsKKyAgZ251KiB8IGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKyAgICAjIEdOVSBhbmQgaXRzIHZhcmlhbnRzLCB1c2luZyBnbnUgbGQuc28gKEdsaWJjKQorICAgIGx0X2N2X3N5c19kbG9wZW5fZGVwbGlicz15ZXMKKyAgICA7OworICBocHV4MTAqfGhwdXgxMSopCisgICAgbHRfY3Zfc3lzX2Rsb3Blbl9kZXBsaWJzPXllcworICAgIDs7CisgIGludGVyaXgqKQorICAgIGx0X2N2X3N5c19kbG9wZW5fZGVwbGlicz15ZXMKKyAgICA7OworICBpcml4W1sxMjM0NV1dKnxpcml4Ni5bWzAxXV0qKQorICAgICMgQ2F0Y2ggYWxsIHZlcnNpb25zIG9mIElSSVggYmVmb3JlIDYuMiwgYW5kIGluZGljYXRlIHRoYXQgd2UgZG9uJ3QKKyAgICAjIGtub3cgaG93IGl0IHdvcmtlZCBmb3IgYW55IG9mIHRob3NlIHZlcnNpb25zLgorICAgIGx0X2N2X3N5c19kbG9wZW5fZGVwbGlicz11bmtub3duCisgICAgOzsKKyAgaXJpeCopCisgICAgIyBUaGUgY2FzZSBhYm92ZSBjYXRjaGVzIGFueXRoaW5nIGJlZm9yZSA2LjIsIGFuZCBpdCdzIGtub3duIHRoYXQKKyAgICAjIGF0IDYuMiBhbmQgbGF0ZXIgZGxvcGVuIGRvZXMgbG9hZCBkZXBsaWJzLgorICAgIGx0X2N2X3N5c19kbG9wZW5fZGVwbGlicz15ZXMKKyAgICA7OworICBuZXRic2QqIHwgbmV0YnNkZWxmKi1nbnUpCisgICAgbHRfY3Zfc3lzX2Rsb3Blbl9kZXBsaWJzPXllcworICAgIDs7CisgIG9wZW5ic2QqKQorICAgIGx0X2N2X3N5c19kbG9wZW5fZGVwbGlicz15ZXMKKyAgICA7OworICBvc2ZbWzEyMzRdXSopCisgICAgIyBkbG9wZW4gZGlkIGxvYWQgZGVwbGlicyAoYXQgbGVhc3QgYXQgNC54KSwgYnV0IHVudGlsIHRoZSA1Lnggc2VyaWVzLAorICAgICMgaXQgZGlkICpub3QqIHVzZSBhbiBSUEFUSCBpbiBhIHNoYXJlZCBsaWJyYXJ5IHRvIGZpbmQgb2JqZWN0cyB0aGUKKyAgICAjIGxpYnJhcnkgZGVwZW5kcyBvbiwgc28gd2UgZXhwbGljaXRseSBzYXkgYG5vJy4KKyAgICBsdF9jdl9zeXNfZGxvcGVuX2RlcGxpYnM9bm8KKyAgICA7OworICBvc2Y1LjB8b3NmNS4wYXxvc2Y1LjEpCisgICAgIyBkbG9wZW4gKmRvZXMqIGxvYWQgZGVwbGlicyBhbmQgd2l0aCB0aGUgcmlnaHQgbG9hZGVyIHBhdGNoIGFwcGxpZWQKKyAgICAjIGl0IGV2ZW4gdXNlcyBSUEFUSCBpbiBhIHNoYXJlZCBsaWJyYXJ5IHRvIHNlYXJjaCBmb3Igc2hhcmVkIG9iamVjdHMKKyAgICAjIHRoYXQgdGhlIGxpYnJhcnkgZGVwZW5kcyBvbiwgYnV0IHRoZXJlJ3Mgbm8gZWFzeSB3YXkgdG8ga25vdyBpZiB0aGF0CisgICAgIyBwYXRjaCBpcyBpbnN0YWxsZWQuICBTaW5jZSB0aGlzIGlzIHRoZSBjYXNlLCBhbGwgd2UgY2FuIHJlYWxseQorICAgICMgc2F5IGlzIHVua25vd24gLS0gaXQgZGVwZW5kcyBvbiB0aGUgcGF0Y2ggYmVpbmcgaW5zdGFsbGVkLiAgSWYKKyAgICAjIGl0IGlzLCB0aGlzIGNoYW5nZXMgdG8gYHllcycuICBXaXRob3V0IGl0LCBpdCB3b3VsZCBiZSBgbm8nLgorICAgIGx0X2N2X3N5c19kbG9wZW5fZGVwbGlicz11bmtub3duCisgICAgOzsKKyAgb3NmKikKKyAgICAjIHRoZSB0d28gY2FzZXMgYWJvdmUgc2hvdWxkIGNhdGNoIGFsbCB2ZXJzaW9ucyBvZiBvc2YgPD0gNS4xLiAgUmVhZAorICAgICMgdGhlIGNvbW1lbnRzIGFib3ZlIGZvciB3aGF0IHdlIGtub3cgYWJvdXQgdGhlbS4KKyAgICAjIEF0ID4gNS4xLCBkZXBsaWJzIGFyZSBsb2FkZWQgKmFuZCogYW55IFJQQVRIIGluIGEgc2hhcmVkIGxpYnJhcnkKKyAgICAjIGlzIHVzZWQgdG8gZmluZCB0aGVtIHNvIHdlIGNhbiBmaW5hbGx5IHNheSBgeWVzJy4KKyAgICBsdF9jdl9zeXNfZGxvcGVuX2RlcGxpYnM9eWVzCisgICAgOzsKKyAgcW54KikKKyAgICBsdF9jdl9zeXNfZGxvcGVuX2RlcGxpYnM9eWVzCisgICAgOzsKKyAgc29sYXJpcyopCisgICAgbHRfY3Zfc3lzX2Rsb3Blbl9kZXBsaWJzPXllcworICAgIDs7CisgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQorICAgIGxpYmx0ZGxfY3Zfc3lzX2Rsb3Blbl9kZXBsaWJzPXllcworICAgIDs7CisgIGVzYWMKKyAgXSkKK2lmIHRlc3QgIiRsdF9jdl9zeXNfZGxvcGVuX2RlcGxpYnMiICE9IHllczsgdGhlbgorIEFDX0RFRklORShbTFRETF9ETE9QRU5fREVQTElCU10sIFsxXSwKKyAgICBbRGVmaW5lIGlmIHRoZSBPUyBuZWVkcyBoZWxwIHRvIGxvYWQgZGVwZW5kZW50IGxpYnJhcmllcyBmb3IgZGxvcGVuKCkuXSkKK2ZpCitdKSMgTFRfU1lTX0RMT1BFTl9ERVBMSUJTCisKKyMgT2xkIG5hbWU6CitBVV9BTElBUyhbQUNfTFRETF9TWVNfRExPUEVOX0RFUExJQlNdLCBbTFRfU1lTX0RMT1BFTl9ERVBMSUJTXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfTFRETF9TWVNfRExPUEVOX0RFUExJQlNdLCBbXSkKKworCisjIExUX1NZU19NT0RVTEVfRVhUCisjIC0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbTFRfU1lTX01PRFVMRV9FWFRdLAorW200X3JlcXVpcmUoW19MVF9TWVNfRFlOQU1JQ19MSU5LRVJdKWRubAorQUNfQ0FDSEVfQ0hFQ0soW3doaWNoIGV4dGVuc2lvbiBpcyB1c2VkIGZvciBydW50aW1lIGxvYWRhYmxlIG1vZHVsZXNdLAorICBbbGlibHRkbF9jdl9zaGxpYmV4dF0sCitbCittb2R1bGU9eWVzCitldmFsIGxpYmx0ZGxfY3Zfc2hsaWJleHQ9JHNocmV4dF9jbWRzCittb2R1bGU9bm8KK2V2YWwgbGlibHRkbF9jdl9zaHJleHQ9JHNocmV4dF9jbWRzCisgIF0pCitpZiB0ZXN0IC1uICIkbGlibHRkbF9jdl9zaGxpYmV4dCI7IHRoZW4KKyAgbTRfcGF0dGVybl9hbGxvdyhbTFRfTU9EVUxFX0VYVF0pZG5sCisgIEFDX0RFRklORV9VTlFVT1RFRChbTFRfTU9EVUxFX0VYVF0sIFsiJGxpYmx0ZGxfY3Zfc2hsaWJleHQiXSwKKyAgICBbRGVmaW5lIHRvIHRoZSBleHRlbnNpb24gdXNlZCBmb3IgcnVudGltZSBsb2FkYWJsZSBtb2R1bGVzLCBzYXksICIuc28iLl0pCitmaQoraWYgdGVzdCAiJGxpYmx0ZGxfY3Zfc2hyZXh0IiAhPSAiJGxpYmx0ZGxfY3Zfc2hsaWJleHQiOyB0aGVuCisgIG00X3BhdHRlcm5fYWxsb3coW0xUX1NIQVJFRF9FWFRdKWRubAorICBBQ19ERUZJTkVfVU5RVU9URUQoW0xUX1NIQVJFRF9FWFRdLCBbIiRsaWJsdGRsX2N2X3NocmV4dCJdLAorICAgIFtEZWZpbmUgdG8gdGhlIHNoYXJlZCBsaWJyYXJ5IHN1ZmZpeCwgc2F5LCAiLmR5bGliIi5dKQorZmkKK10pIyBMVF9TWVNfTU9EVUxFX0VYVAorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0FDX0xURExfU0hMSUJFWFRdLCBbTFRfU1lTX01PRFVMRV9FWFRdKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19MVERMX1NITElCRVhUXSwgW10pCisKKworIyBMVF9TWVNfTU9EVUxFX1BBVEgKKyMgLS0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbTFRfU1lTX01PRFVMRV9QQVRIXSwKK1ttNF9yZXF1aXJlKFtfTFRfU1lTX0RZTkFNSUNfTElOS0VSXSlkbmwKK0FDX0NBQ0hFX0NIRUNLKFt3aGljaCB2YXJpYWJsZSBzcGVjaWZpZXMgcnVuLXRpbWUgbW9kdWxlIHNlYXJjaCBwYXRoXSwKKyAgW2x0X2N2X21vZHVsZV9wYXRoX3Zhcl0sIFtsdF9jdl9tb2R1bGVfcGF0aF92YXI9IiRzaGxpYnBhdGhfdmFyIl0pCitpZiB0ZXN0IC1uICIkbHRfY3ZfbW9kdWxlX3BhdGhfdmFyIjsgdGhlbgorICBtNF9wYXR0ZXJuX2FsbG93KFtMVF9NT0RVTEVfUEFUSF9WQVJdKWRubAorICBBQ19ERUZJTkVfVU5RVU9URUQoW0xUX01PRFVMRV9QQVRIX1ZBUl0sIFsiJGx0X2N2X21vZHVsZV9wYXRoX3ZhciJdLAorICAgIFtEZWZpbmUgdG8gdGhlIG5hbWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHRoYXQgZGV0ZXJtaW5lcyB0aGUgcnVuLXRpbWUgbW9kdWxlIHNlYXJjaCBwYXRoLl0pCitmaQorXSkjIExUX1NZU19NT0RVTEVfUEFUSAorCisjIE9sZCBuYW1lOgorQVVfQUxJQVMoW0FDX0xURExfU0hMSUJQQVRIXSwgW0xUX1NZU19NT0RVTEVfUEFUSF0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xURExfU0hMSUJQQVRIXSwgW10pCisKKworIyBMVF9TWVNfRExTRUFSQ0hfUEFUSAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQorQUNfREVGVU4oW0xUX1NZU19ETFNFQVJDSF9QQVRIXSwKK1ttNF9yZXF1aXJlKFtfTFRfU1lTX0RZTkFNSUNfTElOS0VSXSlkbmwKK0FDX0NBQ0hFX0NIRUNLKFtmb3IgdGhlIGRlZmF1bHQgbGlicmFyeSBzZWFyY2ggcGF0aF0sCisgIFtsdF9jdl9zeXNfZGxzZWFyY2hfcGF0aF0sCisgIFtsdF9jdl9zeXNfZGxzZWFyY2hfcGF0aD0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIl0pCitpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX2Rsc2VhcmNoX3BhdGgiOyB0aGVuCisgIHN5c19kbHNlYXJjaF9wYXRoPQorICBmb3IgZGlyIGluICRsdF9jdl9zeXNfZGxzZWFyY2hfcGF0aDsgZG8KKyAgICBpZiB0ZXN0IC16ICIkc3lzX2Rsc2VhcmNoX3BhdGgiOyB0aGVuCisgICAgICBzeXNfZGxzZWFyY2hfcGF0aD0iJGRpciIKKyAgICBlbHNlCisgICAgICBzeXNfZGxzZWFyY2hfcGF0aD0iJHN5c19kbHNlYXJjaF9wYXRoJFBBVEhfU0VQQVJBVE9SJGRpciIKKyAgICBmaQorICBkb25lCisgIG00X3BhdHRlcm5fYWxsb3coW0xUX0RMU0VBUkNIX1BBVEhdKWRubAorICBBQ19ERUZJTkVfVU5RVU9URUQoW0xUX0RMU0VBUkNIX1BBVEhdLCBbIiRzeXNfZGxzZWFyY2hfcGF0aCJdLAorICAgIFtEZWZpbmUgdG8gdGhlIHN5c3RlbSBkZWZhdWx0IGxpYnJhcnkgc2VhcmNoIHBhdGguXSkKK2ZpCitdKSMgTFRfU1lTX0RMU0VBUkNIX1BBVEgKKworIyBPbGQgbmFtZToKK0FVX0FMSUFTKFtBQ19MVERMX1NZU1NFQVJDSFBBVEhdLCBbTFRfU1lTX0RMU0VBUkNIX1BBVEhdKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19MVERMX1NZU1NFQVJDSFBBVEhdLCBbXSkKKworCisjIF9MVF9DSEVDS19ETFBSRU9QRU4KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQorbTRfZGVmdW4oW19MVF9DSEVDS19ETFBSRU9QRU5dLAorW200X3JlcXVpcmUoW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdKWRubAorQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgbGlidG9vbCBzdXBwb3J0cyAtZGxvcGVuLy1kbHByZW9wZW5dLAorICBbbGlibHRkbF9jdl9wcmVsb2FkZWRfc3ltYm9sc10sCisgIFtpZiB0ZXN0IC1uICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KKyAgICBsaWJsdGRsX2N2X3ByZWxvYWRlZF9zeW1ib2xzPXllcworICBlbHNlCisgICAgbGlibHRkbF9jdl9wcmVsb2FkZWRfc3ltYm9scz1ubworICBmaQorICBdKQoraWYgdGVzdCB4IiRsaWJsdGRsX2N2X3ByZWxvYWRlZF9zeW1ib2xzIiA9IHh5ZXM7IHRoZW4KKyAgQUNfREVGSU5FKFtIQVZFX1BSRUxPQURFRF9TWU1CT0xTXSwgWzFdLAorICAgIFtEZWZpbmUgaWYgbGlidG9vbCBjYW4gZXh0cmFjdCBzeW1ib2wgbGlzdHMgZnJvbSBvYmplY3QgZmlsZXMuXSkKK2ZpCitdKSMgX0xUX0NIRUNLX0RMUFJFT1BFTgorCisKKyMgTFRfTElCX0RMTE9BRAorIyAtLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbTFRfTElCX0RMTE9BRF0sCitbbTRfcGF0dGVybl9hbGxvdyhbXkxUX0RMTE9BREVSUyRdKQorTFRfRExMT0FERVJTPQorQUNfU1VCU1QoW0xUX0RMTE9BREVSU10pCisKK0FDX0xBTkdfUFVTSChbQ10pCisKK0xJQkFERF9ETE9QRU49CitBQ19TRUFSQ0hfTElCUyhbZGxvcGVuXSwgW2RsXSwKKwlbQUNfREVGSU5FKFtIQVZFX0xJQkRMXSwgWzFdLAorCQkgICBbRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBsaWJkbCBsaWJyYXJ5IG9yIGVxdWl2YWxlbnQuXSkKKwlpZiB0ZXN0ICIkYWNfY3Zfc2VhcmNoX2Rsb3BlbiIgIT0gIm5vbmUgcmVxdWlyZWQiIDsgdGhlbgorCSAgTElCQUREX0RMT1BFTj0iLWxkbCIKKwlmaQorCWxpYmx0ZGxfY3ZfbGliX2RsX2Rsb3Blbj0ieWVzIgorCUxUX0RMTE9BREVSUz0iJExUX0RMTE9BREVSUyAke2x0X2Rsb3Blbl9kaXIrJGx0X2Rsb3Blbl9kaXIvfWRsb3Blbi5sYSJdLAorICAgIFtBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbI2lmIEhBVkVfRExGQ05fSAorIyAgaW5jbHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorICAgIF1dLCBbW2Rsb3BlbigwLCAwKTtdXSldLAorCSAgICBbQUNfREVGSU5FKFtIQVZFX0xJQkRMXSwgWzFdLAorCQkgICAgICAgW0RlZmluZSBpZiB5b3UgaGF2ZSB0aGUgbGliZGwgbGlicmFyeSBvciBlcXVpdmFsZW50Ll0pCisJICAgIGxpYmx0ZGxfY3ZfZnVuY19kbG9wZW49InllcyIKKwkgICAgTFRfRExMT0FERVJTPSIkTFRfRExMT0FERVJTICR7bHRfZGxvcGVuX2RpciskbHRfZGxvcGVuX2Rpci99ZGxvcGVuLmxhIl0sCisJW0FDX0NIRUNLX0xJQihbc3ZsZF0sIFtkbG9wZW5dLAorCQlbQUNfREVGSU5FKFtIQVZFX0xJQkRMXSwgWzFdLAorCQkJIFtEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGxpYmRsIGxpYnJhcnkgb3IgZXF1aXZhbGVudC5dKQorCSAgICAgICAgTElCQUREX0RMT1BFTj0iLWxzdmxkIiBsaWJsdGRsX2N2X2Z1bmNfZGxvcGVuPSJ5ZXMiCisJCUxUX0RMTE9BREVSUz0iJExUX0RMTE9BREVSUyAke2x0X2Rsb3Blbl9kaXIrJGx0X2Rsb3Blbl9kaXIvfWRsb3Blbi5sYSJdKV0pXSkKK2lmIHRlc3QgeCIkbGlibHRkbF9jdl9mdW5jX2Rsb3BlbiIgPSB4eWVzIHx8IHRlc3QgeCIkbGlibHRkbF9jdl9saWJfZGxfZGxvcGVuIiA9IHh5ZXMKK3RoZW4KKyAgbHRfc2F2ZV9MSUJTPSIkTElCUyIKKyAgTElCUz0iJExJQlMgJExJQkFERF9ETE9QRU4iCisgIEFDX0NIRUNLX0ZVTkNTKFtkbGVycm9yXSkKKyAgTElCUz0iJGx0X3NhdmVfTElCUyIKK2ZpCitBQ19TVUJTVChbTElCQUREX0RMT1BFTl0pCisKK0xJQkFERF9TSExfTE9BRD0KK0FDX0NIRUNLX0ZVTkMoW3NobF9sb2FkXSwKKwlbQUNfREVGSU5FKFtIQVZFX1NITF9MT0FEXSwgWzFdLAorCQkgICBbRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBzaGxfbG9hZCBmdW5jdGlvbi5dKQorCUxUX0RMTE9BREVSUz0iJExUX0RMTE9BREVSUyAke2x0X2Rsb3Blbl9kaXIrJGx0X2Rsb3Blbl9kaXIvfXNobF9sb2FkLmxhIl0sCisgICAgW0FDX0NIRUNLX0xJQihbZGxkXSwgW3NobF9sb2FkXSwKKwkgICAgW0FDX0RFRklORShbSEFWRV9TSExfTE9BRF0sIFsxXSwKKwkJICAgICAgIFtEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNobF9sb2FkIGZ1bmN0aW9uLl0pCisJICAgIExUX0RMTE9BREVSUz0iJExUX0RMTE9BREVSUyAke2x0X2Rsb3Blbl9kaXIrJGx0X2Rsb3Blbl9kaXIvfXNobF9sb2FkLmxhIgorCSAgICBMSUJBRERfU0hMX0xPQUQ9Ii1sZGxkIl0pXSkKK0FDX1NVQlNUKFtMSUJBRERfU0hMX0xPQURdKQorCitjYXNlICRob3N0X29zIGluCitkYXJ3aW5bWzE1NjddXS4qKQorIyBXZSBvbmx5IHdhbnQgdGhpcyBmb3IgcHJlLU1hYyBPUyBYIDEwLjQuCisgIEFDX0NIRUNLX0ZVTkMoW19keWxkX2Z1bmNfbG9va3VwXSwKKwlbQUNfREVGSU5FKFtIQVZFX0RZTERdLCBbMV0sCisJCSAgIFtEZWZpbmUgaWYgeW91IGhhdmUgdGhlIF9keWxkX2Z1bmNfbG9va3VwIGZ1bmN0aW9uLl0pCisJTFRfRExMT0FERVJTPSIkTFRfRExMT0FERVJTICR7bHRfZGxvcGVuX2RpciskbHRfZGxvcGVuX2Rpci99ZHlsZC5sYSJdKQorICA7OworYmVvcyopCisgIExUX0RMTE9BREVSUz0iJExUX0RMTE9BREVSUyAke2x0X2Rsb3Blbl9kaXIrJGx0X2Rsb3Blbl9kaXIvfWxvYWRfYWRkX29uLmxhIgorICA7OworY3lnd2luKiB8IG1pbmd3KiB8IG9zMiogfCBwdzMyKikKKyAgQUNfQ0hFQ0tfREVDTFMoW2N5Z3dpbl9jb252X3BhdGhdLCBbXSwgW10sIFtbI2luY2x1ZGUgPHN5cy9jeWd3aW4uaD5dXSkKKyAgTFRfRExMT0FERVJTPSIkTFRfRExMT0FERVJTICR7bHRfZGxvcGVuX2RpciskbHRfZGxvcGVuX2Rpci99bG9hZGxpYnJhcnkubGEiCisgIDs7Citlc2FjCisKK0FDX0NIRUNLX0xJQihbZGxkXSwgW2RsZF9saW5rXSwKKwlbQUNfREVGSU5FKFtIQVZFX0RMRF0sIFsxXSwKKwkJICAgW0RlZmluZSBpZiB5b3UgaGF2ZSB0aGUgR05VIGRsZCBsaWJyYXJ5Ll0pCisJCUxUX0RMTE9BREVSUz0iJExUX0RMTE9BREVSUyAke2x0X2Rsb3Blbl9kaXIrJGx0X2Rsb3Blbl9kaXIvfWRsZF9saW5rLmxhIl0pCitBQ19TVUJTVChbTElCQUREX0RMRF9MSU5LXSkKKworbTRfcGF0dGVybl9hbGxvdyhbXkxUX0RMUFJFT1BFTiRdKQorTFRfRExQUkVPUEVOPQoraWYgdGVzdCAtbiAiJExUX0RMTE9BREVSUyIKK3RoZW4KKyAgZm9yIGx0X2xvYWRlciBpbiAkTFRfRExMT0FERVJTOyBkbworICAgIExUX0RMUFJFT1BFTj0iJExUX0RMUFJFT1BFTi1kbHByZW9wZW4gJGx0X2xvYWRlciAiCisgIGRvbmUKKyAgQUNfREVGSU5FKFtIQVZFX0xJQkRMTE9BREVSXSwgWzFdLAorICAgICAgICAgICAgW0RlZmluZSBpZiBsaWJkbGxvYWRlciB3aWxsIGJlIGJ1aWx0IG9uIHRoaXMgcGxhdGZvcm1dKQorZmkKK0FDX1NVQlNUKFtMVF9ETFBSRU9QRU5dKQorCitkbmwgVGhpcyBpc24ndCB1c2VkIGFueW1vcmUsIGJ1dCBzZXQgaXQgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CitMSUJBRERfREw9IiRMSUJBRERfRExPUEVOICRMSUJBRERfU0hMX0xPQUQiCitBQ19TVUJTVChbTElCQUREX0RMXSkKKworQUNfTEFOR19QT1AKK10pIyBMVF9MSUJfRExMT0FECisKKyMgT2xkIG5hbWU6CitBVV9BTElBUyhbQUNfTFRETF9ETExJQl0sIFtMVF9MSUJfRExMT0FEXSkKK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKK2RubCBBQ19ERUZVTihbQUNfTFRETF9ETExJQl0sIFtdKQorCisKKyMgTFRfU1lTX1NZTUJPTF9VU0NPUkUKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgZG9lcyB0aGUgY29tcGlsZXIgcHJlZml4IGdsb2JhbCBzeW1ib2xzIHdpdGggYW4gdW5kZXJzY29yZT8KK0FDX0RFRlVOKFtMVF9TWVNfU1lNQk9MX1VTQ09SRV0sCitbbTRfcmVxdWlyZShbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10pZG5sCitBQ19DQUNIRV9DSEVDSyhbZm9yIF8gcHJlZml4IGluIGNvbXBpbGVkIHN5bWJvbHNdLAorICBbbHRfY3Zfc3lzX3N5bWJvbF91bmRlcnNjb3JlXSwKKyAgW2x0X2N2X3N5c19zeW1ib2xfdW5kZXJzY29yZT1ubworICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgordm9pZCBubV90ZXN0X2Z1bmMoKXt9CitpbnQgbWFpbigpe25tX3Rlc3RfZnVuYztyZXR1cm4gMDt9CitfTFRfRU9GCisgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCisgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJvbHMuCisgICAgYWNfbmxpc3Q9Y29uZnRlc3Qubm0KKyAgICBpZiBBQ19UUllfRVZBTChOTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRhY19ubGlzdCkgJiYgdGVzdCAtcyAiJGFjX25saXN0IjsgdGhlbgorICAgICAgIyBTZWUgd2hldGhlciB0aGUgc3ltYm9scyBoYXZlIGEgbGVhZGluZyB1bmRlcnNjb3JlLgorICAgICAgaWYgZ3JlcCAnXi4gX25tX3Rlc3RfZnVuYycgIiRhY19ubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICBsdF9jdl9zeXNfc3ltYm9sX3VuZGVyc2NvcmU9eWVzCisgICAgICBlbHNlCisgICAgICAgIGlmIGdyZXAgJ14uIG5tX3Rlc3RfZnVuYyAnICIkYWNfbmxpc3QiID4vZGV2L251bGw7IHRoZW4KKwkgIDoKKyAgICAgICAgZWxzZQorCSAgZWNobyAiY29uZmlndXJlOiBjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJGFjX25saXN0IiA+JkFTX01FU1NBR0VfTE9HX0ZECisgICAgICAgIGZpCisgICAgICBmaQorICAgIGVsc2UKKyAgICAgIGVjaG8gImNvbmZpZ3VyZTogY2Fubm90IHJ1biAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgIGZpCisgIGVsc2UKKyAgICBlY2hvICJjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgICBjYXQgY29uZnRlc3QuYyA+JkFTX01FU1NBR0VfTE9HX0ZECisgIGZpCisgIHJtIC1yZiBjb25mdGVzdCoKKyAgXSkKKyAgc3lzX3N5bWJvbF91bmRlcnNjb3JlPSRsdF9jdl9zeXNfc3ltYm9sX3VuZGVyc2NvcmUKKyAgQUNfU1VCU1QoW3N5c19zeW1ib2xfdW5kZXJzY29yZV0pCitdKSMgTFRfU1lTX1NZTUJPTF9VU0NPUkUKKworIyBPbGQgbmFtZToKK0FVX0FMSUFTKFtBQ19MVERMX1NZTUJPTF9VU0NPUkVdLCBbTFRfU1lTX1NZTUJPTF9VU0NPUkVdKQorZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgorZG5sIEFDX0RFRlVOKFtBQ19MVERMX1NZTUJPTF9VU0NPUkVdLCBbXSkKKworCisjIExUX0ZVTkNfRExTWU1fVVNDT1JFCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbTFRfRlVOQ19ETFNZTV9VU0NPUkVdLAorW0FDX1JFUVVJUkUoW0xUX1NZU19TWU1CT0xfVVNDT1JFXSlkbmwKK2lmIHRlc3QgeCIkbHRfY3Zfc3lzX3N5bWJvbF91bmRlcnNjb3JlIiA9IHh5ZXM7IHRoZW4KKyAgaWYgdGVzdCB4IiRsaWJsdGRsX2N2X2Z1bmNfZGxvcGVuIiA9IHh5ZXMgfHwKKyAgICAgdGVzdCB4IiRsaWJsdGRsX2N2X2xpYl9kbF9kbG9wZW4iID0geHllcyA7IHRoZW4KKwlBQ19DQUNIRV9DSEVDSyhbd2hldGhlciB3ZSBoYXZlIHRvIGFkZCBhbiB1bmRlcnNjb3JlIGZvciBkbHN5bV0sCisJICBbbGlibHRkbF9jdl9uZWVkX3VzY29yZV0sCisJICBbbGlibHRkbF9jdl9uZWVkX3VzY29yZT11bmtub3duCisgICAgICAgICAgc2F2ZV9MSUJTPSIkTElCUyIKKyAgICAgICAgICBMSUJTPSIkTElCUyAkTElCQUREX0RMT1BFTiIKKwkgIF9MVF9UUllfRExPUEVOX1NFTEYoCisJICAgIFtsaWJsdGRsX2N2X25lZWRfdXNjb3JlPW5vXSwgW2xpYmx0ZGxfY3ZfbmVlZF91c2NvcmU9eWVzXSwKKwkgICAgW10sCQkJCSBbbGlibHRkbF9jdl9uZWVkX3VzY29yZT1jcm9zc10pCisJICBMSUJTPSIkc2F2ZV9MSUJTIgorCV0pCisgIGZpCitmaQorCitpZiB0ZXN0IHgiJGxpYmx0ZGxfY3ZfbmVlZF91c2NvcmUiID0geHllczsgdGhlbgorICBBQ19ERUZJTkUoW05FRURfVVNDT1JFXSwgWzFdLAorICAgIFtEZWZpbmUgaWYgZGxzeW0oKSByZXF1aXJlcyBhIGxlYWRpbmcgdW5kZXJzY29yZSBpbiBzeW1ib2wgbmFtZXMuXSkKK2ZpCitdKSMgTFRfRlVOQ19ETFNZTV9VU0NPUkUKKworIyBPbGQgbmFtZToKK0FVX0FMSUFTKFtBQ19MVERMX0RMU1lNX1VTQ09SRV0sIFtMVF9GVU5DX0RMU1lNX1VTQ09SRV0pCitkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6CitkbmwgQUNfREVGVU4oW0FDX0xURExfRExTWU1fVVNDT1JFXSwgW10pCisKKyMgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDAzLCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDExIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAogIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCiAKKyMgc2VyaWFsIDEKKwogIyBBTV9BVVRPTUFLRV9WRVJTSU9OKFZFUlNJT04pCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgQXV0b21ha2UgWC5ZIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGVuc3VyZSBhY2xvY2FsLm00IGhhcyBiZWVuCkBAIC0zNCw3ICs4NTYsNyBAQAogW2FtX19hcGlfdmVyc2lvbj0nMS4xMScKIGRubCBTb21lIHVzZXJzIGZpbmQgQU1fQVVUT01BS0VfVkVSU0lPTiBhbmQgbWlzdGFrZSBpdCBmb3IgYSB3YXkgdG8KIGRubCByZXF1aXJlIHNvbWUgbWluaW11bSB2ZXJzaW9uLiAgUG9pbnQgdGhlbSB0byB0aGUgcmlnaHQgbWFjcm8uCi1tNF9pZihbJDFdLCBbMS4xMS4xXSwgW10sCittNF9pZihbJDFdLCBbMS4xMS4zXSwgW10sCiAgICAgICBbQUNfRkFUQUwoW0RvIG5vdCBjYWxsICQwLCB1c2UgQU1fSU5JVF9BVVRPTUFLRShbJDFdKS5dKV0pZG5sCiBdKQogCkBAIC01MCw3ICs4NzIsNyBAQAogIyBDYWxsIEFNX0FVVE9NQUtFX1ZFUlNJT04gYW5kIEFNX0FVVE9NQUtFX1ZFUlNJT04gc28gdGhleSBjYW4gYmUgdHJhY2VkLgogIyBUaGlzIGZ1bmN0aW9uIGlzIEFDX1JFUVVJUkVkIGJ5IEFNX0lOSVRfQVVUT01BS0UuCiBBQ19ERUZVTihbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0sCi1bQU1fQVVUT01BS0VfVkVSU0lPTihbMS4xMS4xXSlkbmwKK1tBTV9BVVRPTUFLRV9WRVJTSU9OKFsxLjExLjNdKWRubAogbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKICAgW200X2NvcHkoW200X1BBQ0tBR0VfVkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJTSU9OXSldKWRubAogX0FNX0FVVE9DT05GX1ZFUlNJT04obTRfZGVmbihbQUNfQVVUT0NPTkZfVkVSU0lPTl0pKV0pCkBAIC03OSwxMiArOTAxLDE0IEBACiAKICMgQU1fQVVYX0RJUl9FWFBBTkQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KIAotIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUsIDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCiAjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KIAorIyBzZXJpYWwgMQorCiAjIEZvciBwcm9qZWN0cyB1c2luZyBBQ19DT05GSUdfQVVYX0RJUihbZm9vXSksIEF1dG9jb25mIHNldHMKICMgJGFjX2F1eF9kaXIgdG8gYCRzcmNkaXIvZm9vJy4gIEluIG90aGVyIHByb2plY3RzLCBpdCBpcyBzZXQgdG8KICMgYCRzcmNkaXInLCBgJHNyY2Rpci8uLicsIG9yIGAkc3JjZGlyLy4uLy4uJy4KQEAgLTE2NiwxNCArOTkwLDE0IEBACiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS5dXSkKIGZpXSldKQogCi0jIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwOQotIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA5LAorIyAyMDEwLCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAogIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCiAKLSMgc2VyaWFsIDEwCisjIHNlcmlhbCAxMgogCiAjIFRoZXJlIGFyZSBhIGZldyBkaXJ0eSBoYWNrcyBiZWxvdyB0byBhdm9pZCBsZXR0aW5nIGBBQ19QUk9HX0NDJyBiZQogIyB3cml0dGVuIGluIGNsZWFyLCBpbiB3aGljaCBjYXNlIGF1dG9tYWtlLCB3aGVuIHJlYWRpbmcgYWNsb2NhbC5tNCwKQEAgLTIxMyw2ICsxMDM3LDcgQEAKICAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKICAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAogICAjIGluIEQnLgorICBybSAtcmYgY29uZnRlc3QuZGlyCiAgIG1rZGlyIGNvbmZ0ZXN0LmRpcgogICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQogICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgpAQCAtMjc3LDcgKzExMDIsNyBAQAogCWJyZWFrCiAgICAgICBmaQogICAgICAgOzsKLSAgICBtc3Zpc3VhbGNwcCB8IG1zdmNtc3lzKQorICAgIG1zdmM3IHwgbXN2Yzdtc3lzIHwgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKICAgICAgICMgVGhpcyBjb21waWxlciB3b24ndCBncm9rIGAtYyAtbycsIGJ1dCBhbHNvLCB0aGUgbWludXNvIHRlc3QgaGFzCiAgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKICAgICAgICMgc28gd2VhayB0aGF0IHRoZWlyIGZ1bmN0aW9uaW5nIHNob3VsZCBub3QgYmUgaW1wYWN0ZWQuCkBAIC0zNDIsMTAgKzExNjcsMTMgQEAKIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgogICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgogICBBTURFUEJBQ0tTTEFTSD0nXCcKKyAgYW1fX25vZGVwPSdfbm8nCiBmaQogQU1fQ09ORElUSU9OQUwoW0FNREVQXSwgW3Rlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhub10pCiBBQ19TVUJTVChbQU1ERVBCQUNLU0xBU0hdKWRubAogX0FNX1NVQlNUX05PVE1BS0UoW0FNREVQQkFDS1NMQVNIXSlkbmwKK0FDX1NVQlNUKFthbV9fbm9kZXBdKWRubAorX0FNX1NVQlNUX05PVE1BS0UoW2FtX19ub2RlcF0pZG5sCiBdKQogCiAjIEdlbmVyYXRlIGNvZGUgdG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCkBAIC01NjcsMTIgKzEzOTUsMTUgQEAKIGRvbmUKIGVjaG8gInRpbWVzdGFtcCBmb3IgJF9hbV9hcmciID5gQVNfRElSTkFNRShbIiRfYW1fYXJnIl0pYC9zdGFtcC1oW10kX2FtX3N0YW1wX2NvdW50XSkKIAotIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUsIDIwMDgsIDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAorIyBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCiAjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KIAorIyBzZXJpYWwgMQorCiAjIEFNX1BST0dfSU5TVEFMTF9TSAogIyAtLS0tLS0tLS0tLS0tLS0tLS0KICMgRGVmaW5lICRpbnN0YWxsX3NoLgpAQCAtNjEyLDggKzE0NDMsOCBAQAogIyBBZGQgLS1lbmFibGUtbWFpbnRhaW5lci1tb2RlIG9wdGlvbiB0byBjb25maWd1cmUuICAgICAgICAgLSotIEF1dG9jb25mIC0qLQogIyBGcm9tIEppbSBNZXllcmluZwogCi0jIENvcHlyaWdodCAoQykgMTk5NiwgMTk5OCwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwOAotIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk4LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA4LAorIyAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LApAQCAtNjMzLDcgKzE0NjQsNyBAQAogICAgICAgIFtkaXNhYmxlXSwgW200X2RlZmluZShbYW1fbWFpbnRhaW5lcl9vdGhlcl0sIFtlbmFibGVdKV0sCiAgICAgICAgW200X2RlZmluZShbYW1fbWFpbnRhaW5lcl9vdGhlcl0sIFtlbmFibGVdKQogICAgICAgICBtNF93YXJuKFtzeW50YXhdLCBbdW5leHBlY3RlZCBhcmd1bWVudCB0byBBTUAmdEBfTUFJTlRBSU5FUl9NT0RFOiAkMV0pXSkKLUFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBhbV9tYWludGFpbmVyX290aGVyIG1haW50YWluZXItc3BlY2lmaWMgcG9ydGlvbnMgb2YgTWFrZWZpbGVzXSkKK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXNdKQogICBkbmwgbWFpbnRhaW5lci1tb2RlJ3MgZGVmYXVsdCBpcyAnZGlzYWJsZScgdW5sZXNzICdlbmFibGUnIGlzIHBhc3NlZAogICBBQ19BUkdfRU5BQkxFKFttYWludGFpbmVyLW1vZGVdLAogWyAgLS1dW2FtX21haW50YWluZXJfb3RoZXJdWy1tYWludGFpbmVyLW1vZGUgIGFtX21haW50YWluZXJfb3RoZXIgbWFrZSBydWxlcyBhbmQgZGVwZW5kZW5jaWVzIG5vdCB1c2VmdWwKQEAgLTc3OSwxMiArMTYxMCwxNSBAQAogZmkKIF0pCiAKLSMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAogIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCiAKKyMgc2VyaWFsIDEKKwogIyBBTV9QUk9HX01LRElSX1AKICMgLS0tLS0tLS0tLS0tLS0tCiAjIENoZWNrIGZvciBgbWtkaXIgLXAnLgpAQCAtODA3LDEzICsxNjQxLDE0IEBACiAKICMgSGVscGVyIGZ1bmN0aW9ucyBmb3Igb3B0aW9uIGhhbmRsaW5nLiAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KIAotIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDgsIDIwMTAgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCiAjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KIAotIyBzZXJpYWwgNAorIyBzZXJpYWwgNQogCiAjIF9BTV9NQU5HTEVfT1BUSU9OKE5BTUUpCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04MjEsMTMgKzE2NTYsMTMgQEAKIFtbX0FNX09QVElPTl9dbTRfYnBhdHN1YnN0KCQxLCBbW15hLXpBLVowLTlfXV0sIFtfXSldKQogCiAjIF9BTV9TRVRfT1BUSU9OKE5BTUUpCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBTZXQgb3B0aW9uIE5BTUUuICBQcmVzZW50bHkgdGhhdCBvbmx5IG1lYW5zIGRlZmluaW5nIGEgZmxhZyBmb3IgdGhpcyBvcHRpb24uCiBBQ19ERUZVTihbX0FNX1NFVF9PUFRJT05dLAogW200X2RlZmluZShfQU1fTUFOR0xFX09QVElPTihbJDFdKSwgMSldKQogCiAjIF9BTV9TRVRfT1BUSU9OUyhPUFRJT05TKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBPUFRJT05TIGlzIGEgc3BhY2Utc2VwYXJhdGVkIGxpc3Qgb2YgQXV0b21ha2Ugb3B0aW9ucy4KIEFDX0RFRlVOKFtfQU1fU0VUX09QVElPTlNdLAogW200X2ZvcmVhY2hfdyhbX0FNX09wdGlvbl0sIFskMV0sIFtfQU1fU0VUX09QVElPTihfQU1fT3B0aW9uKV0pXSkKQEAgLTkwMywxMiArMTczOCwxNCBAQAogZmkKIEFDX01TR19SRVNVTFQoeWVzKV0pCiAKLSMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1LCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAogIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCiAKKyMgc2VyaWFsIDEKKwogIyBBTV9QUk9HX0lOU1RBTExfU1RSSVAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIE9uZSBpc3N1ZSB3aXRoIHZlbmRvciBgaW5zdGFsbCcgKGV2ZW4gR05VKSBpcyB0aGF0IHlvdSBjYW4ndApAQCAtOTMxLDEzICsxNzY4LDEzIEBACiBJTlNUQUxMX1NUUklQX1BST0dSQU09IlwkKGluc3RhbGxfc2gpIC1jIC1zIgogQUNfU1VCU1QoW0lOU1RBTExfU1RSSVBfUFJPR1JBTV0pXSkKIAotIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDgsIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCiAjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KIAotIyBzZXJpYWwgMgorIyBzZXJpYWwgMwogCiAjIF9BTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxFKQogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTk0NiwxMyArMTc4MywxMyBAQAogQUNfREVGVU4oW19BTV9TVUJTVF9OT1RNQUtFXSkKIAogIyBBTV9TVUJTVF9OT1RNQUtFKFZBUklBQkxFKQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgUHVibGljIHNpc3RlciBvZiBfQU1fU1VCU1RfTk9UTUFLRS4KIEFDX0RFRlVOKFtBTV9TVUJTVF9OT1RNQUtFXSwgW19BTV9TVUJTVF9OT1RNQUtFKCRAKV0pCiAKICMgQ2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KIAotIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjCiAjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCkBAIC05NzQsMTAgKzE4MTEsMTEgQEAKICMgYSB0YXJiYWxsIHJlYWQgZnJvbSBzdGRpbi4KICMgICAgICQoYW1fX3VudGFyKSA8IHJlc3VsdC50YXIKIEFDX0RFRlVOKFtfQU1fUFJPR19UQVJdLAotWyMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLUFNX01JU1NJTkdfUFJPRyhbQU1UQVJdLCBbdGFyXSkKK1sjIEFsd2F5cyBkZWZpbmUgQU1UQVIgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuICBZZXMsIGl0J3Mgc3RpbGwgdXNlZAorIyBpbiB0aGUgd2lsZCA6LSggIFdlIHNob3VsZCBmaW5kIGEgcHJvcGVyIHdheSB0byBkZXByZWNhdGUgaXQgLi4uCitBQ19TVUJTVChbQU1UQVJdLCBbJyQke1RBUi10YXJ9J10pCiBtNF9pZihbJDFdLCBbdjddLAotICAgICBbYW1fX3Rhcj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciInOyBhbV9fdW50YXI9JyR7QU1UQVJ9IHhmIC0nXSwKKyAgICAgW2FtX190YXI9JyQke1RBUi10YXJ9IGNob2YgLSAiJCR0YXJkaXIiJyBhbV9fdW50YXI9JyQke1RBUi10YXJ9IHhmIC0nXSwKICAgICAgW200X2Nhc2UoWyQxXSwgW3VzdGFyXSwsIFtwYXhdLCwKICAgICAgICAgICAgICAgW200X2ZhdGFsKFtVbmtub3duIHRhciBmb3JtYXRdKV0pCiBBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBjcmVhdGUgYSAkMSB0YXIgYXJjaGl2ZV0pCkBAIC0xMDQ2LDYgKzE4ODQsMTYgQEAKIEFDX1NVQlNUKFthbV9fdW50YXJdKQogXSkgIyBfQU1fUFJPR19UQVIKIAorbTRfaW5jbHVkZShbbTQvYXNtY2ZpLm00XSkKK200X2luY2x1ZGUoW200L2F4X2FwcGVuZF9mbGFnLm00XSkKK200X2luY2x1ZGUoW200L2F4X2NjX21heG9wdC5tNF0pCittNF9pbmNsdWRlKFttNC9heF9jZmxhZ3Nfd2Fybl9hbGwubTRdKQorbTRfaW5jbHVkZShbbTQvYXhfY2hlY2tfY29tcGlsZV9mbGFnLm00XSkKK200X2luY2x1ZGUoW200L2F4X2NvbXBpbGVyX3ZlbmRvci5tNF0pCittNF9pbmNsdWRlKFttNC9heF9jb25maWd1cmVfYXJncy5tNF0pCittNF9pbmNsdWRlKFttNC9heF9lbmFibGVfYnVpbGRkaXIubTRdKQorbTRfaW5jbHVkZShbbTQvYXhfZ2NjX2FyY2hmbGFnLm00XSkKK200X2luY2x1ZGUoW200L2F4X2djY194ODZfY3B1aWQubTRdKQogbTRfaW5jbHVkZShbbTQvbGlidG9vbC5tNF0pCiBtNF9pbmNsdWRlKFttNC9sdG9wdGlvbnMubTRdKQogbTRfaW5jbHVkZShbbTQvbHRzdWdhci5tNF0pCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbXBpbGUgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbXBpbGUKaW5kZXggMWIxZDIzMi4uYzAwOTZhNyAxMDA3NTUKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9jb21waWxlCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvY29tcGlsZQpAQCAtMSw5ICsxLDEwIEBACiAjISAvYmluL3NoCiAjIFdyYXBwZXIgZm9yIGNvbXBpbGVycyB3aGljaCBkbyBub3QgdW5kZXJzdGFuZCBgLWMgLW8nLgogCi1zY3JpcHR2ZXJzaW9uPTIwMDUtMDUtMTQuMjIKK3NjcmlwdHZlcnNpb249MjAwOS0xMC0wNi4yMDsgIyBVVEMKIAotIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDMsIDIwMDQsIDIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMywgMjAwNCwgMjAwNSwgMjAwOSAgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuCiAjIFdyaXR0ZW4gYnkgVG9tIFRyb21leSA8dHJvbWV5QGN5Z251cy5jb20+LgogIwogIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMTcsOCArMTgsNyBAQAogIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogIwogIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAKICMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQogIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKQEAgLTEwMywxMyArMTAzLDEzIEBACiBmaQogCiAjIE5hbWUgb2YgZmlsZSB3ZSBleHBlY3QgY29tcGlsZXIgdG8gY3JlYXRlLgotY29maWxlPWBlY2hvICIkY2ZpbGUiIHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5jJC8uby8nYAorY29maWxlPWBlY2hvICIkY2ZpbGUiIHwgc2VkICdzfF4uKltcXC9dfHw7IHN8XlthLXpBLVpdOnx8OyBzL1wuYyQvLm8vJ2AKIAogIyBDcmVhdGUgdGhlIGxvY2sgZGlyZWN0b3J5LgotIyBOb3RlOiB1c2UgYFsvLi1dJyBoZXJlIHRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IHVzZSB0aGUgc2FtZSBuYW1lCisjIE5vdGU6IHVzZSBgWy9cXDouLV0nIGhlcmUgdG8gZW5zdXJlIHRoYXQgd2UgZG9uJ3QgdXNlIHRoZSBzYW1lIG5hbWUKICMgdGhhdCB3ZSBhcmUgdXNpbmcgZm9yIHRoZSAubyBmaWxlLiAgQWxzbywgYmFzZSB0aGUgbmFtZSBvbiB0aGUgZXhwZWN0ZWQKICMgb2JqZWN0IGZpbGUgbmFtZSwgc2luY2UgdGhhdCBpcyB3aGF0IG1hdHRlcnMgd2l0aCBhIHBhcmFsbGVsIGJ1aWxkLgotbG9ja2Rpcj1gZWNobyAiJGNvZmlsZSIgfCBzZWQgLWUgJ3N8Wy8uLV18X3xnJ2AuZAorbG9ja2Rpcj1gZWNobyAiJGNvZmlsZSIgfCBzZWQgLWUgJ3N8Wy9cXDouLV18X3xnJ2AuZAogd2hpbGUgdHJ1ZTsgZG8KICAgaWYgbWtkaXIgIiRsb2NrZGlyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICAgICBicmVhawpAQCAtMTI0LDkgKzEyNCw5IEBACiByZXQ9JD8KIAogaWYgdGVzdCAtZiAiJGNvZmlsZSI7IHRoZW4KLSAgbXYgIiRjb2ZpbGUiICIkb2ZpbGUiCisgIHRlc3QgIiRjb2ZpbGUiID0gIiRvZmlsZSIgfHwgbXYgIiRjb2ZpbGUiICIkb2ZpbGUiCiBlbGlmIHRlc3QgLWYgIiR7Y29maWxlfWJqIjsgdGhlbgotICBtdiAiJHtjb2ZpbGV9YmoiICIkb2ZpbGUiCisgIHRlc3QgIiR7Y29maWxlfWJqIiA9ICIkb2ZpbGUiIHx8IG12ICIke2NvZmlsZX1iaiIgIiRvZmlsZSIKIGZpCiAKIHJtZGlyICIkbG9ja2RpciIKQEAgLTEzOCw1ICsxMzgsNiBAQAogIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCiAjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKICMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkLiUwMkgiCi0jIHRpbWUtc3RhbXAtZW5kOiAiJCIKKyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCisjIHRpbWUtc3RhbXAtZW5kOiAiOyAjIFVUQyIKICMgRW5kOgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9jb25maWcuZ3Vlc3MgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbmZpZy5ndWVzcwppbmRleCBkNTNlMzA5Li5iMDI1NjVjIDEwMDc1NQotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbmZpZy5ndWVzcworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbmZpZy5ndWVzcwpAQCAtMSwxMCArMSwxMCBAQAogIyEgL2Jpbi9zaAogIyBBdHRlbXB0IHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3RlbSBuYW1lLgogIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLSMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5Ci0jICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwKKyMgICAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCi10aW1lc3RhbXA9JzIwMDktMTEtMTknCit0aW1lc3RhbXA9JzIwMTEtMDYtMDMnCiAKICMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKICMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKQEAgLTU2LDggKzU2LDkgQEAKIEdOVSBjb25maWcuZ3Vlc3MgKCR0aW1lc3RhbXApCiAKIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4KLUNvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKLTIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsCisyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEZyZWUKK1NvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJjZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8KIHdhcnJhbnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiIKQEAgLTE4MCw3ICsxODEsNyBAQAogCQlmaQogCQk7OwogCSAgICAqKQotCSAgICAgICAgb3M9bmV0YnNkCisJCW9zPW5ldGJzZAogCQk7OwogCWVzYWMKIAkjIFRoZSBPUyByZWxlYXNlCkBAIC0yMjMsNyArMjI0LDcgQEAKIAkJVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDN9J2AKIAkJOzsKIAkqNS4qKQotCSAgICAgICAgVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDR9J2AKKwkJVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDR9J2AKIAkJOzsKIAllc2FjCiAJIyBBY2NvcmRpbmcgdG8gQ29tcGFxLCAvdXNyL3NiaW4vcHNyaW5mbyBoYXMgYmVlbiBhdmFpbGFibGUgb24KQEAgLTI2OSw3ICsyNzAsMTAgQEAKIAkjIEEgWG4ubiB2ZXJzaW9uIGlzIGFuIHVucmVsZWFzZWQgZXhwZXJpbWVudGFsIGJhc2VsZXZlbC4KIAkjIDEuMiB1c2VzICIxLjIiIGZvciB1bmFtZSAtci4KIAllY2hvICR7VU5BTUVfTUFDSElORX0tZGVjLW9zZmBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXltQVlRYXS8vJyB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6J2AKLQlleGl0IDs7CisJIyBSZXNldCBFWElUIHRyYXAgYmVmb3JlIGV4aXRpbmcgdG8gYXZvaWQgc3B1cmlvdXMgbm9uLXplcm8gZXhpdCBjb2RlLgorCWV4aXRjb2RlPSQ/CisJdHJhcCAnJyAwCisJZXhpdCAkZXhpdGNvZGUgOzsKICAgICBBbHBoYVwgKjpXaW5kb3dzX05UKjoqKQogCSMgSG93IGRvIHdlIGtub3cgaXQncyBJbnRlcml4IHJhdGhlciB0aGFuIHRoZSBnZW5lcmljIFBPU0lYIHN1YnN5c3RlbT8KIAkjIFNob3VsZCB3ZSBjaGFuZ2UgVU5BTUVfTUFDSElORSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIHVuYW1lIGluc3RlYWQKQEAgLTI5NSw3ICsyOTksNyBAQAogCWVjaG8gczM5MC1pYm0tenZtb2UKIAlleGl0IDs7CiAgICAgKjpPUzQwMDoqOiopCi0gICAgICAgIGVjaG8gcG93ZXJwYy1pYm0tb3M0MDAKKwllY2hvIHBvd2VycGMtaWJtLW9zNDAwCiAJZXhpdCA7OwogICAgIGFybTpSSVNDKjoxLlswMTJdKjoqfGFybTpyaXNjaXg6MS5bMDEyXSo6KikKIAllY2hvIGFybS1hY29ybi1yaXNjaXgke1VOQU1FX1JFTEVBU0V9CkBAIC0zMzMsNiArMzM3LDkgQEAKICAgICBzdW40KjpTdW5PUzo1Lio6KiB8IHRhZHBvbGUqOlN1bk9TOjUuKjoqKQogCWVjaG8gc3BhcmMtc3VuLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCiAJZXhpdCA7OworICAgIGk4NnBjOkF1cm9yYVVYOjUuKjoqIHwgaTg2eGVuOkF1cm9yYVVYOjUuKjoqKQorCWVjaG8gaTM4Ni1wYy1hdXJvcmF1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CiAgICAgaTg2cGM6U3VuT1M6NS4qOiogfCBpODZ4ZW46U3VuT1M6NS4qOiopCiAJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAogCVNVTl9BUkNIPSJpMzg2IgpAQCAtMzkxLDIzICszOTgsMjMgQEAKICAgICAjIE1pTlQuICBCdXQgTWlOVCBpcyBkb3dud2FyZCBjb21wYXRpYmxlIHRvIFRPUywgc28gdGhpcyBzaG91bGQKICAgICAjIGJlIG5vIHByb2JsZW0uCiAgICAgYXRhcmlzdFtlXToqTWlOVDoqOiogfCBhdGFyaXN0W2VdOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCi0gICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgOzsKICAgICBhdGFyaSo6Kk1pTlQ6KjoqIHwgYXRhcmkqOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCiAJZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0gICAgICAgIGV4aXQgOzsKKwlleGl0IDs7CiAgICAgKmZhbGNvbio6Kk1pTlQ6KjoqIHwgKmZhbGNvbio6Km1pbnQ6KjoqIHwgKmZhbGNvbio6KlRPUzoqOiopCi0gICAgICAgIGVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgOzsKICAgICBtaWxhbio6Kk1pTlQ6KjoqIHwgbWlsYW4qOiptaW50Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCi0gICAgICAgIGVjaG8gbTY4ay1taWxhbi1taW50JHtVTkFNRV9SRUxFQVNFfQotICAgICAgICBleGl0IDs7CisJZWNobyBtNjhrLW1pbGFuLW1pbnQke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OwogICAgIGhhZGVzKjoqTWlOVDoqOiogfCBoYWRlcyo6Km1pbnQ6KjoqIHwgKmhhZGVzKjoqVE9TOio6KikKLSAgICAgICAgZWNobyBtNjhrLWhhZGVzLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0gICAgICAgIGV4aXQgOzsKKwllY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CiAgICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCi0gICAgICAgIGVjaG8gbTY4ay11bmtub3duLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0gICAgICAgIGV4aXQgOzsKKwllY2hvIG02OGstdW5rbm93bi1taW50JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKICAgICBtNjhrOm1hY2h0ZW46KjoqKQogCWVjaG8gbTY4ay1hcHBsZS1tYWNodGVuJHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgOzsKQEAgLTQ3Nyw4ICs0ODQsOCBAQAogCWVjaG8gbTg4ay1tb3Rvcm9sYS1zeXN2MwogCWV4aXQgOzsKICAgICBBVmlpT046ZGd1eDoqOiopCi0gICAgICAgICMgREcvVVggcmV0dXJucyBBVmlpT04gZm9yIGFsbCBhcmNoaXRlY3R1cmVzCi0gICAgICAgIFVOQU1FX1BST0NFU1NPUj1gL3Vzci9iaW4vdW5hbWUgLXBgCisJIyBERy9VWCByZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKKwlVTkFNRV9QUk9DRVNTT1I9YC91c3IvYmluL3VuYW1lIC1wYAogCWlmIFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgxMDAgXSB8fCBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTEwIF0KIAl0aGVuCiAJICAgIGlmIFsgJHtUQVJHRVRfQklOQVJZX0lOVEVSRkFDRX14ID0gbTg4a2RndXhlbGZ4IF0gfHwgXApAQCAtNDkxLDcgKzQ5OCw3IEBACiAJZWxzZQogCSAgICBlY2hvIGk1ODYtZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KIAlmaQotIAlleGl0IDs7CisJZXhpdCA7OwogICAgIE04OCo6RG9scGhpbk9TOio6KikJIyBEb2xwaGluT1MgKFNWUjMpCiAJZWNobyBtODhrLWRvbHBoaW4tc3lzdjMKIAlleGl0IDs7CkBAIC01NDgsNyArNTU1LDcgQEAKIAkJZWNobyByczYwMDAtaWJtLWFpeDMuMgogCWZpCiAJZXhpdCA7OwotICAgICo6QUlYOio6WzQ1Nl0pCisgICAgKjpBSVg6KjpbNDU2N10pCiAJSUJNX0NQVV9JRD1gL3Vzci9zYmluL2xzZGV2IC1DIC1jIHByb2Nlc3NvciAtUyBhdmFpbGFibGUgfCBzZWQgMXEgfCBhd2sgJ3sgcHJpbnQgJDEgfSdgCiAJaWYgL3Vzci9zYmluL2xzYXR0ciAtRWwgJHtJQk1fQ1BVX0lEfSB8IGdyZXAgJyBQT1dFUicgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAJCUlCTV9BUkNIPXJzNjAwMApAQCAtNTkxLDUyICs1OTgsNTIgQEAKIAkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCiAJCWlmIFsgLXggL3Vzci9iaW4vZ2V0Y29uZiBdOyB0aGVuCiAJCSAgICBzY19jcHVfdmVyc2lvbj1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19DUFVfVkVSU0lPTiAyPi9kZXYvbnVsbGAKLSAgICAgICAgICAgICAgICAgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgotICAgICAgICAgICAgICAgICAgICAgIDUyMykgSFBfQVJDSD0iaHBwYTEuMCIgOzsgIyBDUFVfUEFfUklTQzFfMAotICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQotICAgICAgICAgICAgICAgICAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAotICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiJHtzY19rZXJuZWxfYml0c30iIGluCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OworCQkgICAgc2Nfa2VybmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCisJCSAgICBjYXNlICIke3NjX2NwdV92ZXJzaW9ufSIgaW4KKwkJICAgICAgNTIzKSBIUF9BUkNIPSJocHBhMS4wIiA7OyAjIENQVV9QQV9SSVNDMV8wCisJCSAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVfUEFfUklTQzFfMQorCQkgICAgICA1MzIpICAgICAgICAgICAgICAgICAgICAgICMgQ1BVX1BBX1JJU0MyXzAKKwkJCWNhc2UgIiR7c2Nfa2VybmVsX2JpdHN9IiBpbgorCQkJICAzMikgSFBfQVJDSD0iaHBwYTIuMG4iIDs7CisJCQkgIDY0KSBIUF9BUkNIPSJocHBhMi4wdyIgOzsKIAkJCSAgJycpIEhQX0FSQ0g9ImhwcGEyLjAiIDs7ICAgIyBIUC1VWCAxMC4yMAotICAgICAgICAgICAgICAgICAgICAgICAgZXNhYyA7OwotICAgICAgICAgICAgICAgICAgICBlc2FjCisJCQllc2FjIDs7CisJCSAgICBlc2FjCiAJCWZpCiAJCWlmIFsgIiR7SFBfQVJDSH0iID0gIiIgXTsgdGhlbgogCQkgICAgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotCQkgICAgc2VkICdzL14gICAgICAgICAgICAgIC8vJyA8PCBFT0YgPiRkdW1teS5jCisJCSAgICBzZWQgJ3MvXgkJLy8nIDw8IEVPRiA+JGR1bW15LmMKIAotICAgICAgICAgICAgICAjZGVmaW5lIF9IUFVYX1NPVVJDRQotICAgICAgICAgICAgICAjaW5jbHVkZSA8c3RkbGliLmg+Ci0gICAgICAgICAgICAgICNpbmNsdWRlIDx1bmlzdGQuaD4KKwkJI2RlZmluZSBfSFBVWF9TT1VSQ0UKKwkJI2luY2x1ZGUgPHN0ZGxpYi5oPgorCQkjaW5jbHVkZSA8dW5pc3RkLmg+CiAKLSAgICAgICAgICAgICAgaW50IG1haW4gKCkKLSAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCi0gICAgICAgICAgICAgICAgICBsb25nIGJpdHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7Ci0gICAgICAgICAgICAgICNlbmRpZgotICAgICAgICAgICAgICAgICAgbG9uZyBjcHUgID0gc3lzY29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKKwkJaW50IG1haW4gKCkKKwkJeworCQkjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCisJCSAgICBsb25nIGJpdHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7CisJCSNlbmRpZgorCQkgICAgbG9uZyBjcHUgID0gc3lzY29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKIAotICAgICAgICAgICAgICAgICAgc3dpdGNoIChjcHUpCi0gICAgICAgICAgICAgIAl7Ci0gICAgICAgICAgICAgIAljYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKLSAgICAgICAgICAgICAgCWNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xIik7IGJyZWFrOwotICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzJfMDoKLSAgICAgICAgICAgICAgI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQotICAgICAgICAgICAgICAJICAgIHN3aXRjaCAoYml0cykKLSAgICAgICAgICAgICAgCQl7Ci0gICAgICAgICAgICAgIAkJY2FzZSA2NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOwotICAgICAgICAgICAgICAJCWNhc2UgMzI6IHB1dHMgKCJocHBhMi4wbiIpOyBicmVhazsKLSAgICAgICAgICAgICAgCQlkZWZhdWx0OiBwdXRzICgiaHBwYTIuMCIpOyBicmVhazsKLSAgICAgICAgICAgICAgCQl9IGJyZWFrOwotICAgICAgICAgICAgICAjZWxzZSAgLyogIWRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKSAqLwotICAgICAgICAgICAgICAJICAgIHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOwotICAgICAgICAgICAgICAjZW5kaWYKLSAgICAgICAgICAgICAgCWRlZmF1bHQ6IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOwotICAgICAgICAgICAgICAJfQotICAgICAgICAgICAgICAgICAgZXhpdCAoMCk7Ci0gICAgICAgICAgICAgIH0KKwkJICAgIHN3aXRjaCAoY3B1KQorCQkJeworCQkJY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAiKTsgYnJlYWs7CisJCQljYXNlIENQVV9QQV9SSVNDMV8xOiBwdXRzICgiaHBwYTEuMSIpOyBicmVhazsKKwkJCWNhc2UgQ1BVX1BBX1JJU0MyXzA6CisJCSNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykKKwkJCSAgICBzd2l0Y2ggKGJpdHMpCisJCQkJeworCQkJCWNhc2UgNjQ6IHB1dHMgKCJocHBhMi4wdyIpOyBicmVhazsKKwkJCQljYXNlIDMyOiBwdXRzICgiaHBwYTIuMG4iKTsgYnJlYWs7CisJCQkJZGVmYXVsdDogcHV0cyAoImhwcGEyLjAiKTsgYnJlYWs7CisJCQkJfSBicmVhazsKKwkJI2Vsc2UgIC8qICFkZWZpbmVkKF9TQ19LRVJORUxfQklUUykgKi8KKwkJCSAgICBwdXRzICgiaHBwYTIuMCIpOyBicmVhazsKKwkJI2VuZGlmCisJCQlkZWZhdWx0OiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKKwkJCX0KKwkJICAgIGV4aXQgKDApOworCQl9CiBFT0YKIAkJICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsKSAmJiBIUF9BUkNIPWAkZHVtbXlgCiAJCSAgICB0ZXN0IC16ICIkSFBfQVJDSCIgJiYgSFBfQVJDSD1ocHBhCkBAIC03MjcsMjIgKzczNCwyMiBAQAogCWV4aXQgOzsKICAgICBDMSo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMxKjoqKQogCWVjaG8gYzEtY29udmV4LWJzZAotICAgICAgICBleGl0IDs7CisJZXhpdCA7OwogICAgIEMyKjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzIqOiopCiAJaWYgZ2V0c3lzaW5mbyAtZiBzY2FsYXJfYWNjCiAJdGhlbiBlY2hvIGMzMi1jb252ZXgtYnNkCiAJZWxzZSBlY2hvIGMyLWNvbnZleC1ic2QKIAlmaQotICAgICAgICBleGl0IDs7CisJZXhpdCA7OwogICAgIEMzNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMzNCo6KikKIAllY2hvIGMzNC1jb252ZXgtYnNkCi0gICAgICAgIGV4aXQgOzsKKwlleGl0IDs7CiAgICAgQzM4KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzM4KjoqKQogCWVjaG8gYzM4LWNvbnZleC1ic2QKLSAgICAgICAgZXhpdCA7OworCWV4aXQgOzsKICAgICBDNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkM0KjoqKQogCWVjaG8gYzQtY29udmV4LWJzZAotICAgICAgICBleGl0IDs7CisJZXhpdCA7OwogICAgIENSQVkqWS1NUDoqOio6KikKIAllY2hvIHltcC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJwogCWV4aXQgOzsKQEAgLTc2NiwxNCArNzczLDE0IEBACiAJZXhpdCA7OwogICAgIEYzMFswMV06VU5JWF9TeXN0ZW1fVjoqOiogfCBGNzAwOlVOSVhfU3lzdGVtX1Y6KjoqKQogCUZVSklUU1VfUFJPQz1gdW5hbWUgLW0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eidgCi0gICAgICAgIEZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKLSAgICAgICAgRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy8gL18vJ2AKLSAgICAgICAgZWNobyAiJHtGVUpJVFNVX1BST0N9LWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVMfSIKLSAgICAgICAgZXhpdCA7OworCUZVSklUU1VfU1lTPWB1bmFtZSAtcCB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy9cLy8vJ2AKKwlGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzLyAvXy8nYAorCWVjaG8gIiR7RlVKSVRTVV9QUk9DfS1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisJZXhpdCA7OwogICAgIDUwMDA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKLSAgICAgICAgRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAotICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzLyAvXy8nYAotICAgICAgICBlY2hvICJzcGFyYy1mdWppdHN1LSR7RlVKSVRTVV9TWVN9JHtGVUpJVFNVX1JFTH0iCisJRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAorCUZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydgCisJZWNobyAic3BhcmMtZnVqaXRzdS0ke0ZVSklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9IgogCWV4aXQgOzsKICAgICBpKjg2OkJTRC8zODY6KjoqIHwgaSo4NjpCU0QvT1M6KjoqIHwgKjpBc2NlbmRcIEVtYmVkZGVkL09TOio6KikKIAllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtYnNkaSR7VU5BTUVfUkVMRUFTRX0KQEAgLTgwMSwxNCArODA4LDE0IEBACiAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW1pbmd3MzIKIAlleGl0IDs7CiAgICAgaSo6d2luZG93czMyKjoqKQotICAgIAkjIHVuYW1lIC1tIGluY2x1ZGVzICItcGMiIG9uIHRoaXMgc3lzdGVtLgotICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tbWluZ3czMgorCSMgdW5hbWUgLW0gaW5jbHVkZXMgIi1wYyIgb24gdGhpcyBzeXN0ZW0uCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LW1pbmd3MzIKIAlleGl0IDs7CiAgICAgaSo6UFcqOiopCiAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXB3MzIKIAlleGl0IDs7CiAgICAgKjpJbnRlcml4KjoqKQotICAgIAljYXNlICR7VU5BTUVfTUFDSElORX0gaW4KKwljYXNlICR7VU5BTUVfTUFDSElORX0gaW4KIAkgICAgeDg2KQogCQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KIAkJZXhpdCA7OwpAQCAtODYzLDcgKzg3MCw3IEBACiAJICBFVjYpICAgVU5BTUVfTUFDSElORT1hbHBoYWV2NiA7OwogCSAgRVY2NykgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7CiAJICBFVjY4KikgVU5BTUVfTUFDSElORT1hbHBoYWV2NjggOzsKLSAgICAgICAgZXNhYworCWVzYWMKIAlvYmpkdW1wIC0tcHJpdmF0ZS1oZWFkZXJzIC9iaW4vc2ggfCBncmVwIC1xIGxkLnNvLjEKIAlpZiB0ZXN0ICIkPyIgPSAwIDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudSR7TElCQ30KQEAgLTg3NSw3ICs4ODIsMTMgQEAKIAl0aGVuCiAJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQogCWVsc2UKLQkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251ZWFiaQorCSAgICBpZiBlY2hvIF9fQVJNX1BDU19WRlAgfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAorCQl8IGdyZXAgLXEgX19BUk1fUENTX1ZGUAorCSAgICB0aGVuCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudWVhYmkKKwkgICAgZWxzZQorCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKKwkgICAgZmkKIAlmaQogCWV4aXQgOzsKICAgICBhdnIzMio6TGludXg6KjoqKQpAQCAtODg4LDcgKzkwMSw3IEBACiAJZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251CiAJZXhpdCA7OwogICAgIGZydjpMaW51eDoqOiopCi0gICAgCWVjaG8gZnJ2LXVua25vd24tbGludXgtZ251CisJZWNobyBmcnYtdW5rbm93bi1saW51eC1nbnUKIAlleGl0IDs7CiAgICAgaSo4NjpMaW51eDoqOiopCiAJTElCQz1nbnUKQEAgLTk1Niw3ICs5NjksNyBAQAogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKIAlleGl0IDs7CiAgICAgc2g2NCo6TGludXg6KjoqKQotICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKIAlleGl0IDs7CiAgICAgc2gqOkxpbnV4Oio6KikKIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKQEAgLTk2NCw2ICs5NzcsOSBAQAogICAgIHNwYXJjOkxpbnV4Oio6KiB8IHNwYXJjNjQ6TGludXg6KjoqKQogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQogCWV4aXQgOzsKKyAgICB0aWxlKjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OwogICAgIHZheDpMaW51eDoqOiopCiAJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKIAlleGl0IDs7CkBAIC05NzEsNyArOTg3LDcgQEAKIAllY2hvIHg4Nl82NC11bmtub3duLWxpbnV4LWdudQogCWV4aXQgOzsKICAgICB4dGVuc2EqOkxpbnV4Oio6KikKLSAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CiAJZXhpdCA7OwogICAgIGkqODY6RFlOSVgvcHR4OjQqOiopCiAJIyBwdHggNC4wIGRvZXMgdW5hbWUgLXMgY29ycmVjdGx5LCB3aXRoIERZTklYL3B0eCBpbiB0aGVyZS4KQEAgLTk4MCwxMSArOTk2LDExIEBACiAJZWNobyBpMzg2LXNlcXVlbnQtc3lzdjQKIAlleGl0IDs7CiAgICAgaSo4NjpVTklYX1NWOjQuMk1QOjIuKikKLSAgICAgICAgIyBVbml4d2FyZSBpcyBhbiBvZmZzaG9vdCBvZiBTVlI0LCBidXQgaXQgaGFzIGl0cyBvd24gdmVyc2lvbgotICAgICAgICAjIG51bWJlciBzZXJpZXMgc3RhcnRpbmcgd2l0aCAyLi4uCi0gICAgICAgICMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29uJ3QgbWF0Y2ggdGhpcywKKwkjIFVuaXh3YXJlIGlzIGFuIG9mZnNob290IG9mIFNWUjQsIGJ1dCBpdCBoYXMgaXRzIG93biB2ZXJzaW9uCisJIyBudW1iZXIgc2VyaWVzIHN0YXJ0aW5nIHdpdGggMi4uLgorCSMgSSBhbSBub3QgcG9zaXRpdmUgdGhhdCBvdGhlciBTVlI0IHN5c3RlbXMgd29uJ3QgbWF0Y2ggdGhpcywKIAkjIEkganVzdCBoYXZlIHRvIGhvcGUuICAtLSBybXMuCi0gICAgICAgICMgVXNlIHN5c3Y0LjJ1dy4uLiBzbyB0aGF0IHN5c3Y0KiBtYXRjaGVzIGl0LgorCSMgVXNlIHN5c3Y0LjJ1dy4uLiBzbyB0aGF0IHN5c3Y0KiBtYXRjaGVzIGl0LgogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2NC4ydXcke1VOQU1FX1ZFUlNJT059CiAJZXhpdCA7OwogICAgIGkqODY6T1MvMjoqOiopCkBAIC0xMDE2LDcgKzEwMzIsNyBAQAogCWZpCiAJZXhpdCA7OwogICAgIGkqODY6Kjo1Ols2NzhdKikKLSAgICAJIyBVbml4V2FyZSA3LngsIE9wZW5VTklYIGFuZCBPcGVuU2VydmVyIDYuCisJIyBVbml4V2FyZSA3LngsIE9wZW5VTklYIGFuZCBPcGVuU2VydmVyIDYuCiAJY2FzZSBgL2Jpbi91bmFtZSAtWCB8IGdyZXAgIl5NYWNoaW5lImAgaW4KIAkgICAgKjQ4NiopCSAgICAgVU5BTUVfTUFDSElORT1pNDg2IDs7CiAJICAgICpQZW50aXVtKQkgICAgIFVOQU1FX01BQ0hJTkU9aTU4NiA7OwpAQCAtMTA0NCwxMyArMTA2MCwxMyBAQAogCWV4aXQgOzsKICAgICBwYzoqOio6KikKIAkjIExlZnQgaGVyZSBmb3IgY29tcGF0aWJpbGl0eToKLSAgICAgICAgIyB1bmFtZSAtbSBwcmludHMgZm9yIERKR1BQIGFsd2F5cyAncGMnLCBidXQgaXQgcHJpbnRzIG5vdGhpbmcgYWJvdXQKLSAgICAgICAgIyB0aGUgcHJvY2Vzc29yLCBzbyB3ZSBwbGF5IHNhZmUgYnkgYXNzdW1pbmcgaTU4Ni4KKwkjIHVuYW1lIC1tIHByaW50cyBmb3IgREpHUFAgYWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGluZyBhYm91dAorCSMgdGhlIHByb2Nlc3Nvciwgc28gd2UgcGxheSBzYWZlIGJ5IGFzc3VtaW5nIGk1ODYuCiAJIyBOb3RlOiB3aGF0ZXZlciB0aGlzIGlzLCBpdCBNVVNUIGJlIHRoZSBzYW1lIGFzIHdoYXQgY29uZmlnLnN1YgogCSMgcHJpbnRzIGZvciB0aGUgImRqZ3BwIiBob3N0LCBvciBlbHNlIEdEQiBjb25maWd1cnkgd2lsbCBkZWNpZGUgdGhhdAogCSMgdGhpcyBpcyBhIGNyb3NzLWJ1aWxkLgogCWVjaG8gaTU4Ni1wYy1tc2Rvc2RqZ3BwCi0gICAgICAgIGV4aXQgOzsKKwlleGl0IDs7CiAgICAgSW50ZWw6TWFjaDozKjoqKQogCWVjaG8gaTM4Ni1wYy1tYWNoMwogCWV4aXQgOzsKQEAgLTEwODUsOCArMTEwMSw4IEBACiAJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCiAJICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OwogICAgIDNbMzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQotICAgICAgICAvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSAgICAgICAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQ7IGV4aXQ7IH0gOzsKKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKwkgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NDsgZXhpdDsgfSA7OwogICAgIE5DUio6Kjo0LjI6KiB8IE1QUkFTKjoqOjQuMjoqKQogCU9TX1JFTD0nLjMnCiAJdGVzdCAtciAvZXRjLy5yZWxpZCBcCkBAIC0xMTI5LDEwICsxMTQ1LDEwIEBACiAJCWVjaG8gbnMzMmstc25pLXN5c3YKIAlmaQogCWV4aXQgOzsKLSAgICBQRU5USVVNOio6NC4wKjoqKSAjIFVuaXN5cyBgQ2xlYXJQYXRoIEhNUCBJWCA0MDAwJyBTVlI0L01QIGVmZm9ydAotICAgICAgICAgICAgICAgICAgICAgICMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KLSAgICAgICAgZWNobyBpNTg2LXVuaXN5cy1zeXN2NAotICAgICAgICBleGl0IDs7CisgICAgUEVOVElVTToqOjQuMCo6KikJIyBVbmlzeXMgYENsZWFyUGF0aCBITVAgSVggNDAwMCcgU1ZSNC9NUCBlZmZvcnQKKwkJCSMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KKwllY2hvIGk1ODYtdW5pc3lzLXN5c3Y0CisJZXhpdCA7OwogICAgICo6VU5JWF9TeXN0ZW1fVjo0KjpGVFgqKQogCSMgRnJvbSBHZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5tYXJrZXQuY29tPi4KIAkjIEhvdyBhYm91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBzdHJhdHVzIGFyY2hpdGVjdHVyZXM/IC1kam0KQEAgLTExNTgsMTEgKzExNzQsMTEgQEAKIAlleGl0IDs7CiAgICAgUlszNF0wMDA6KlN5c3RlbV9WKjoqOiogfCBSNDAwMDpVTklYX1NZU1Y6KjoqIHwgUiowMDA6VU5JWF9TVjoqOiopCiAJaWYgWyAtZCAvdXNyL25lYyBdOyB0aGVuCi0JICAgICAgICBlY2hvIG1pcHMtbmVjLXN5c3Yke1VOQU1FX1JFTEVBU0V9CisJCWVjaG8gbWlwcy1uZWMtc3lzdiR7VU5BTUVfUkVMRUFTRX0KIAllbHNlCi0JICAgICAgICBlY2hvIG1pcHMtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfQorCQllY2hvIG1pcHMtdW5rbm93bi1zeXN2JHtVTkFNRV9SRUxFQVNFfQogCWZpCi0gICAgICAgIGV4aXQgOzsKKwlleGl0IDs7CiAgICAgQmVCb3g6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIGhhcmR3YXJlIG1hZGUgYnkgQmUsIFBQQyBvbmx5LgogCWVjaG8gcG93ZXJwYy1iZS1iZW9zCiAJZXhpdCA7OwpAQCAtMTIyNyw2ICsxMjQzLDkgQEAKICAgICAqOlFOWDoqOjQqKQogCWVjaG8gaTM4Ni1wYy1xbngKIAlleGl0IDs7CisgICAgTkVPLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorCWVjaG8gbmVvLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OwogICAgIE5TRS0/Ok5PTlNUT1BfS0VSTkVMOio6KikKIAllY2hvIG5zZS10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgOzsKQEAgLTEyNzIsMTMgKzEyOTEsMTMgQEAKIAllY2hvIHBkcDEwLXVua25vd24taXRzCiAJZXhpdCA7OwogICAgIFNFSToqOio6U0VJVVgpCi0gICAgICAgIGVjaG8gbWlwcy1zZWktc2VpdXgke1VOQU1FX1JFTEVBU0V9CisJZWNobyBtaXBzLXNlaS1zZWl1eCR7VU5BTUVfUkVMRUFTRX0KIAlleGl0IDs7CiAgICAgKjpEcmFnb25GbHk6KjoqKQogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AKIAlleGl0IDs7CiAgICAgKjoqVk1TOio6KikKLSAgICAJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKwlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAogCWNhc2UgIiR7VU5BTUVfTUFDSElORX0iIGluCiAJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgOyBleGl0IDs7CiAJICAgIEkqKSBlY2hvIGlhNjQtZGVjLXZtcyA7IGV4aXQgOzsKQEAgLTEzMTgsMTEgKzEzMzcsMTEgQEAKICNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICAgcHJpbnRmICgibTY4ay1zb255LW5ld3NvcyVzXG4iLAogI2lmZGVmIE5FV1NPUzQKLSAgICAgICAgICAiNCIKKwkiNCIKICNlbHNlCi0JICAiIgorCSIiCiAjZW5kaWYKLSAgICAgICAgICk7IGV4aXQgKDApOworCSk7IGV4aXQgKDApOwogI2VuZGlmCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9jb25maWcuc3ViIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9jb25maWcuc3ViCmluZGV4IDE3YzkxNDUuLjc4MTc2YTQgMTAwNzU1Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvY29uZmlnLnN1YgorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbmZpZy5zdWIKQEAgLTEsMTAgKzEsMTAgQEAKICMhIC9iaW4vc2gKICMgQ29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIHN1YnJvdXRpbmUgc2NyaXB0LgogIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKLSMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5Ci0jICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjICAgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwKKyMgICAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCi10aW1lc3RhbXA9JzIwMDktMTEtMDcnCit0aW1lc3RhbXA9JzIwMTEtMTAtMjknCiAKICMgVGhpcyBmaWxlIGlzIChpbiBwcmluY2lwbGUpIGNvbW1vbiB0byBBTEwgR05VIHNvZnR3YXJlLgogIyBUaGUgcHJlc2VuY2Ugb2YgYSBtYWNoaW5lIGluIHRoaXMgZmlsZSBzdWdnZXN0cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJlCkBAIC03NSw4ICs3NSw5IEBACiB2ZXJzaW9uPSJcCiBHTlUgY29uZmlnLnN1YiAoJHRpbWVzdGFtcCkKIAotQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwKKzIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgRnJlZQorU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTwogd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgpAQCAtMTIzLDggKzEyNCw5IEBACiAjIEhlcmUgd2UgbXVzdCByZWNvZ25pemUgYWxsIHRoZSB2YWxpZCBLRVJORUwtT1MgY29tYmluYXRpb25zLgogbWF5YmVfb3M9YGVjaG8gJDEgfCBzZWQgJ3MvXlwoLipcKS1cKFteLV0qLVteLV0qXCkkL1wyLydgCiBjYXNlICRtYXliZV9vcyBpbgotICBudG8tcW54KiB8IGxpbnV4LWdudSogfCBsaW51eC1kaWV0bGliYyB8IGxpbnV4LW5ld2xpYiogfCBsaW51eC11Y2xpYmMqIHwgXAotICB1Y2xpbnV4LXVjbGliYyogfCB1Y2xpbnV4LWdudSogfCBrZnJlZWJzZCotZ251KiB8IGtuZXRic2QqLWdudSogfCBuZXRic2QqLWdudSogfCBcCisgIG50by1xbngqIHwgbGludXgtZ251KiB8IGxpbnV4LWFuZHJvaWQqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1uZXdsaWIqIHwgXAorICBsaW51eC11Y2xpYmMqIHwgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1nbnUqIHwga2ZyZWVic2QqLWdudSogfCBcCisgIGtuZXRic2QqLWdudSogfCBuZXRic2QqLWdudSogfCBcCiAgIGtvcGVuc29sYXJpcyotZ251KiB8IFwKICAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQogICAgIG9zPS0kbWF5YmVfb3MKQEAgLTE1Niw4ICsxNTgsOCBAQAogCQlvcz0KIAkJYmFzaWNfbWFjaGluZT0kMQogCQk7OwotICAgICAgICAtYmx1ZWdlbmUqKQotCSAgICAgICAgb3M9LWNuaworCS1ibHVlZ2VuZSopCisJCW9zPS1jbmsKIAkJOzsKIAktc2ltIHwgLWNpc2NvIHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkKIAkJb3M9CkBAIC0xNzMsMTAgKzE3NSwxMCBAQAogCQlvcz0tY2hvcnVzb3MKIAkJYmFzaWNfbWFjaGluZT0kMQogCQk7OwotIAktY2hvcnVzcmRiKQotIAkJb3M9LWNob3J1c3JkYgorCS1jaG9ydXNyZGIpCisJCW9zPS1jaG9ydXNyZGIKIAkJYmFzaWNfbWFjaGluZT0kMQotIAkJOzsKKwkJOzsKIAktaGl1eCopCiAJCW9zPS1oaXV4d2UyCiAJCTs7CkBAIC0yNDksMTMgKzI1MSwxNyBAQAogCXwgYWxwaGE2NCB8IGFscGhhNjRldls0LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBcCiAJfCBhbTMzXzIuMCBcCiAJfCBhcmMgfCBhcm0gfCBhcm1bYmxdZSB8IGFybWVbbGJdIHwgYXJtdlsyMzQ1XSB8IGFybXZbMzQ1XVtsYl0gfCBhdnIgfCBhdnIzMiBcCisgICAgICAgIHwgYmUzMiB8IGJlNjQgXAogCXwgYmZpbiBcCiAJfCBjNHggfCBjbGlwcGVyIFwKIAl8IGQxMHYgfCBkMzB2IHwgZGx4IHwgZHNwMTZ4eCBcCisJfCBlcGlwaGFueSBcCiAJfCBmaWRvIHwgZnIzMCB8IGZydiBcCiAJfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAorCXwgaGV4YWdvbiBcCiAJfCBpMzcwIHwgaTg2MCB8IGk5NjAgfCBpYTY0IFwKIAl8IGlwMmsgfCBpcTIwMDAgXAorCXwgbGUzMiB8IGxlNjQgXAogCXwgbG0zMiBcCiAJfCBtMzJjIHwgbTMyciB8IG0zMnJsZSB8IG02ODAwMCB8IG02OGsgfCBtODhrIFwKIAl8IG1heHEgfCBtYiB8IG1pY3JvYmxhemUgfCBtY29yZSB8IG1lcCB8IG1ldGFnIFwKQEAgLTI4MSwyNyArMjg3LDM4IEBACiAJfCBtb3hpZSBcCiAJfCBtdCBcCiAJfCBtc3A0MzAgXAorCXwgbmRzMzIgfCBuZHMzMmxlIHwgbmRzMzJiZSBcCiAJfCBuaW9zIHwgbmlvczIgXAogCXwgbnMxNmsgfCBuczMyayBcCisJfCBvcGVuOCBcCiAJfCBvcjMyIFwKIAl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCi0JfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93ZXJwYzY0bGUgfCBwb3dlcnBjbGUgfCBwcGNiZSBcCisJfCBwb3dlcnBjIHwgcG93ZXJwYzY0IHwgcG93ZXJwYzY0bGUgfCBwb3dlcnBjbGUgXAogCXwgcHlyYW1pZCBcCi0JfCByeCBcCisJfCBybDc4IHwgcnggXAogCXwgc2NvcmUgXAogCXwgc2ggfCBzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFsyNF1hZWIgfCBzaFsyM11lIHwgc2hbMzRdZWIgfCBzaGViIHwgc2hiZSB8IHNobGUgfCBzaFsxMjM0XWxlIHwgc2gzZWxlIFwKIAl8IHNoNjQgfCBzaDY0bGUgXAogCXwgc3BhcmMgfCBzcGFyYzY0IHwgc3BhcmM2NGIgfCBzcGFyYzY0diB8IHNwYXJjODZ4IHwgc3BhcmNsZXQgfCBzcGFyY2xpdGUgXAogCXwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2IFwKLQl8IHNwdSB8IHN0cm9uZ2FybSBcCi0JfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0aWM4MCB8IHRyb24gXAorCXwgc3B1IFwKKwl8IHRhaG9lIHwgdGljNHggfCB0aWM1NHggfCB0aWM1NXggfCB0aWM2eCB8IHRpYzgwIHwgdHJvbiBcCiAJfCB1Ymljb20zMiBcCi0JfCB2ODUwIHwgdjg1MGUgXAorCXwgdjg1MCB8IHY4NTBlIHwgdjg1MGUxIHwgdjg1MGUyIHwgdjg1MGVzIHwgdjg1MGUydjMgXAogCXwgd2UzMmsgXAotCXwgeDg2IHwgeGMxNnggfCB4c2NhbGUgfCB4c2NhbGVlW2JsXSB8IHhzdG9ybXkxNiB8IHh0ZW5zYSBcCisJfCB4ODYgfCB4YzE2eCB8IHhzdG9ybXkxNiB8IHh0ZW5zYSBcCiAJfCB6OGsgfCB6ODApCiAJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgogCQk7OworCWM1NHgpCisJCWJhc2ljX21hY2hpbmU9dGljNTR4LXVua25vd24KKwkJOzsKKwljNTV4KQorCQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCisJCTs7CisJYzZ4KQorCQliYXNpY19tYWNoaW5lPXRpYzZ4LXVua25vd24KKwkJOzsKIAltNjgxMSB8IG02OGhjMTEgfCBtNjgxMiB8IG02OGhjMTIgfCBwaWNvY2hpcCkKIAkJIyBNb3Rvcm9sYSA2OEhDMTEvMTIuCiAJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgpAQCAtMzEzLDYgKzMzMCwxOCBAQAogCQliYXNpY19tYWNoaW5lPW10LXVua25vd24KIAkJOzsKIAorCXN0cm9uZ2FybSB8IHRodW1iIHwgeHNjYWxlKQorCQliYXNpY19tYWNoaW5lPWFybS11bmtub3duCisJCTs7CisKKwl4c2NhbGVlYikKKwkJYmFzaWNfbWFjaGluZT1hcm1lYi11bmtub3duCisJCTs7CisKKwl4c2NhbGVlbCkKKwkJYmFzaWNfbWFjaGluZT1hcm1lbC11bmtub3duCisJCTs7CisKIAkjIFdlIHVzZSBgcGMnIHJhdGhlciB0aGFuIGB1bmtub3duJwogCSMgYmVjYXVzZSAoMSkgdGhhdCdzIHdoYXQgdGhleSBub3JtYWxseSBhcmUsIGFuZAogCSMgKDIpIHRoZSB3b3JkICJ1bmtub3duIiB0ZW5kcyB0byBjb25mdXNlIGJlZ2lubmluZyB1c2Vycy4KQEAgLTMzMiwxNiArMzYxLDE5IEBACiAJfCBhbHBoYXBjYTVbNjddLSogfCBhbHBoYTY0cGNhNVs2N10tKiB8IGFyYy0qIFwKIAl8IGFybS0qICB8IGFybWJlLSogfCBhcm1sZS0qIHwgYXJtZWItKiB8IGFybXYqLSogXAogCXwgYXZyLSogfCBhdnIzMi0qIFwKKwl8IGJlMzItKiB8IGJlNjQtKiBcCiAJfCBiZmluLSogfCBiczIwMDAtKiBcCi0JfCBjWzEyM10qIHwgYzMwLSogfCBbY2p0XTkwLSogfCBjNHgtKiB8IGM1NHgtKiB8IGM1NXgtKiB8IGM2eC0qIFwKKwl8IGNbMTIzXSogfCBjMzAtKiB8IFtjanRdOTAtKiB8IGM0eC0qIFwKIAl8IGNsaXBwZXItKiB8IGNyYXludi0qIHwgY3lkcmEtKiBcCiAJfCBkMTB2LSogfCBkMzB2LSogfCBkbHgtKiBcCiAJfCBlbHhzaS0qIFwKIAl8IGYzMFswMV0tKiB8IGY3MDAtKiB8IGZpZG8tKiB8IGZyMzAtKiB8IGZydi0qIHwgZng4MC0qIFwKIAl8IGg4MzAwLSogfCBoODUwMC0qIFwKIAl8IGhwcGEtKiB8IGhwcGExLlswMV0tKiB8IGhwcGEyLjAtKiB8IGhwcGEyLjBbbnddLSogfCBocHBhNjQtKiBcCisJfCBoZXhhZ29uLSogXAogCXwgaSo4Ni0qIHwgaTg2MC0qIHwgaTk2MC0qIHwgaWE2NC0qIFwKIAl8IGlwMmstKiB8IGlxMjAwMC0qIFwKKwl8IGxlMzItKiB8IGxlNjQtKiBcCiAJfCBsbTMyLSogXAogCXwgbTMyYy0qIHwgbTMyci0qIHwgbTMycmxlLSogXAogCXwgbTY4MDAwLSogfCBtNjgwWzAxMjM0Nl0wLSogfCBtNjgzNjAtKiB8IG02ODM/Mi0qIHwgbTY4ay0qIFwKQEAgLTM2NywyNSArMzk5LDI5IEBACiAJfCBtbWl4LSogXAogCXwgbXQtKiBcCiAJfCBtc3A0MzAtKiBcCisJfCBuZHMzMi0qIHwgbmRzMzJsZS0qIHwgbmRzMzJiZS0qIFwKIAl8IG5pb3MtKiB8IG5pb3MyLSogXAogCXwgbm9uZS0qIHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCisJfCBvcGVuOC0qIFwKIAl8IG9yaW9uLSogXAogCXwgcGRwMTAtKiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCi0JfCBwb3dlcnBjLSogfCBwb3dlcnBjNjQtKiB8IHBvd2VycGM2NGxlLSogfCBwb3dlcnBjbGUtKiB8IHBwY2JlLSogXAorCXwgcG93ZXJwYy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogXAogCXwgcHlyYW1pZC0qIFwKLQl8IHJvbXAtKiB8IHJzNjAwMC0qIHwgcngtKiBcCisJfCBybDc4LSogfCByb21wLSogfCByczYwMDAtKiB8IHJ4LSogXAogCXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsyNF1hZWItKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAogCXwgc2hsZS0qIHwgc2hbMTIzNF1sZS0qIHwgc2gzZWxlLSogfCBzaDY0LSogfCBzaDY0bGUtKiBcCiAJfCBzcGFyYy0qIHwgc3BhcmM2NC0qIHwgc3BhcmM2NGItKiB8IHNwYXJjNjR2LSogfCBzcGFyYzg2eC0qIHwgc3BhcmNsZXQtKiBcCiAJfCBzcGFyY2xpdGUtKiBcCi0JfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwgc3BhcmN2OXYtKiB8IHN0cm9uZ2FybS0qIHwgc3YxLSogfCBzeD8tKiBcCi0JfCB0YWhvZS0qIHwgdGh1bWItKiBcCi0JfCB0aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiB8IHRpbGUtKiBcCisJfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwgc3BhcmN2OXYtKiB8IHN2MS0qIHwgc3g/LSogXAorCXwgdGFob2UtKiBcCisJfCB0aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiBcCisJfCB0aWxlKi0qIFwKIAl8IHRyb24tKiBcCiAJfCB1Ymljb20zMi0qIFwKLQl8IHY4NTAtKiB8IHY4NTBlLSogfCB2YXgtKiBcCisJfCB2ODUwLSogfCB2ODUwZS0qIHwgdjg1MGUxLSogfCB2ODUwZXMtKiB8IHY4NTBlMi0qIHwgdjg1MGUydjMtKiBcCisJfCB2YXgtKiBcCiAJfCB3ZTMyay0qIFwKLQl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8IHhzY2FsZWVbYmxdLSogXAorCXwgeDg2LSogfCB4ODZfNjQtKiB8IHhjMTZ4LSogfCB4cHMxMDAtKiBcCiAJfCB4c3Rvcm15MTYtKiB8IHh0ZW5zYSotKiBcCiAJfCB5bXAtKiBcCiAJfCB6OGstKiB8IHo4MC0qKQpAQCAtNDEwLDcgKzQ0Niw3IEBACiAJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKIAkJb3M9LXVkaQogCQk7OwotICAgIAlhYmFjdXMpCisJYWJhY3VzKQogCQliYXNpY19tYWNoaW5lPWFiYWN1cy11bmtub3duCiAJCTs7CiAJYWRvYmU2OGspCkBAIC00ODAsMTEgKzUxNiwyMCBAQAogCQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCiAJCW9zPS1jbmsKIAkJOzsKKwljNTR4LSopCisJCWJhc2ljX21hY2hpbmU9dGljNTR4LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJYzU1eC0qKQorCQliYXNpY19tYWNoaW5lPXRpYzU1eC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCWM2eC0qKQorCQliYXNpY19tYWNoaW5lPXRpYzZ4LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CiAJYzkwKQogCQliYXNpY19tYWNoaW5lPWM5MC1jcmF5CiAJCW9zPS11bmljb3MKIAkJOzsKLSAgICAgICAgY2VnY2MpCisJY2VnY2MpCiAJCWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24KIAkJb3M9LWNlZ2NjCiAJCTs7CkBAIC01MTYsNyArNTYxLDcgQEAKIAkJYmFzaWNfbWFjaGluZT1jcmF5bnYtY3JheQogCQlvcz0tdW5pY29zbXAKIAkJOzsKLQljcjE2KQorCWNyMTYgfCBjcjE2LSopCiAJCWJhc2ljX21hY2hpbmU9Y3IxNi11bmtub3duCiAJCW9zPS1lbGYKIAkJOzsKQEAgLTczMiw3ICs3NzcsNyBAQAogCQliYXNpY19tYWNoaW5lPW5zMzJrLXV0ZWsKIAkJb3M9LXN5c3YKIAkJOzsKLSAgICAgICAgbWljcm9ibGF6ZSkKKwltaWNyb2JsYXplKQogCQliYXNpY19tYWNoaW5lPW1pY3JvYmxhemUteGlsaW54CiAJCTs7CiAJbWluZ3czMikKQEAgLTc3NSw2ICs4MjAsMTAgQEAKIAkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQogCQlvcz0tbXZzCiAJCTs7CisJbmFjbCkKKwkJYmFzaWNfbWFjaGluZT1sZTMyLXVua25vd24KKwkJb3M9LW5hY2wKKwkJOzsKIAluY3IzMDAwKQogCQliYXNpY19tYWNoaW5lPWk0ODYtbmNyCiAJCW9zPS1zeXN2NApAQCAtODM5LDYgKzg4OCwxMiBAQAogCW5wMSkKIAkJYmFzaWNfbWFjaGluZT1ucDEtZ291bGQKIAkJOzsKKwluZW8tdGFuZGVtKQorCQliYXNpY19tYWNoaW5lPW5lby10YW5kZW0KKwkJOzsKKwluc2UtdGFuZGVtKQorCQliYXNpY19tYWNoaW5lPW5zZS10YW5kZW0KKwkJOzsKIAluc3ItdGFuZGVtKQogCQliYXNpY19tYWNoaW5lPW5zci10YW5kZW0KIAkJOzsKQEAgLTkyMSw5ICs5NzYsMTAgQEAKIAkJOzsKIAlwb3dlcikJYmFzaWNfbWFjaGluZT1wb3dlci1pYm0KIAkJOzsKLQlwcGMpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCisJcHBjIHwgcHBjYmUpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCiAJCTs7Ci0JcHBjLSopCWJhc2ljX21hY2hpbmU9cG93ZXJwYy1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCXBwYy0qIHwgcHBjYmUtKikKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCiAJCTs7CiAJcHBjbGUgfCBwb3dlcnBjbGl0dGxlIHwgcHBjLWxlIHwgcG93ZXJwYy1saXR0bGUpCiAJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLXVua25vd24KQEAgLTEwMTcsNiArMTA3Myw5IEBACiAJCWJhc2ljX21hY2hpbmU9aTg2MC1zdHJhdHVzCiAJCW9zPS1zeXN2NAogCQk7OworCXN0cm9uZ2FybS0qIHwgdGh1bWItKikKKwkJYmFzaWNfbWFjaGluZT1hcm0tYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKIAlzdW4yKQogCQliYXNpY19tYWNoaW5lPW02ODAwMC1zdW4KIAkJOzsKQEAgLTEwNzMsMjAgKzExMzIsOCBAQAogCQliYXNpY19tYWNoaW5lPXQ5MC1jcmF5CiAJCW9zPS11bmljb3MKIAkJOzsKLQl0aWM1NHggfCBjNTR4KikKLQkJYmFzaWNfbWFjaGluZT10aWM1NHgtdW5rbm93bgotCQlvcz0tY29mZgotCQk7OwotCXRpYzU1eCB8IGM1NXgqKQotCQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCi0JCW9zPS1jb2ZmCi0JCTs7Ci0JdGljNnggfCBjNngqKQotCQliYXNpY19tYWNoaW5lPXRpYzZ4LXVua25vd24KLQkJb3M9LWNvZmYKLQkJOzsKIAl0aWxlKikKLQkJYmFzaWNfbWFjaGluZT10aWxlLXVua25vd24KKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCiAJCW9zPS1saW51eC1nbnUKIAkJOzsKIAl0eDM5KQpAQCAtMTE1Niw2ICsxMjAzLDkgQEAKIAl4cHMgfCB4cHMxMDApCiAJCWJhc2ljX21hY2hpbmU9eHBzMTAwLWhvbmV5d2VsbAogCQk7OworCXhzY2FsZS0qIHwgeHNjYWxlZVtibF0tKikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eeHNjYWxlL2FybS8nYAorCQk7OwogCXltcCkKIAkJYmFzaWNfbWFjaGluZT15bXAtY3JheQogCQlvcz0tdW5pY29zCkBAIC0xMjUzLDkgKzEzMDMsMTIgQEAKIGlmIFsgeCIkb3MiICE9IHgiIiBdCiB0aGVuCiBjYXNlICRvcyBpbgotICAgICAgICAjIEZpcnN0IG1hdGNoIHNvbWUgc3lzdGVtIHR5cGUgYWxpYXNlcwotICAgICAgICAjIHRoYXQgbWlnaHQgZ2V0IGNvbmZ1c2VkIHdpdGggdmFsaWQgc3lzdGVtIHR5cGVzLgorCSMgRmlyc3QgbWF0Y2ggc29tZSBzeXN0ZW0gdHlwZSBhbGlhc2VzCisJIyB0aGF0IG1pZ2h0IGdldCBjb25mdXNlZCB3aXRoIHZhbGlkIHN5c3RlbSB0eXBlcy4KIAkjIC1zb2xhcmlzKiBpcyBhIGJhc2ljIHN5c3RlbSB0eXBlLCB3aXRoIHRoaXMgb25lIGV4Y2VwdGlvbi4KKwktYXVyb3JhdXgpCisJCW9zPS1hdXJvcmF1eAorCQk7OwogCS1zb2xhcmlzMSB8IC1zb2xhcmlzMS4qKQogCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8c29sYXJpczF8c3Vub3M0fCdgCiAJCTs7CkBAIC0xMjc3LDggKzEzMzAsOCBAQAogCSMgLXN5c3YqIGlzIG5vdCBoZXJlIGJlY2F1c2UgaXQgY29tZXMgbGF0ZXIsIGFmdGVyIHN5c3ZyNC4KIAktZ251KiB8IC1ic2QqIHwgLW1hY2gqIHwgLW1pbml4KiB8IC1nZW5peCogfCAtdWx0cml4KiB8IC1pcml4KiBcCiAJICAgICAgfCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtY25rKiB8IC1zdW5vcyB8IC1zdW5vc1szNF0qXAotCSAgICAgIHwgLWhwdXgqIHwgLXVub3MqIHwgLW9zZiogfCAtbHVuYSogfCAtZGd1eCogfCAtc29sYXJpcyogfCAtc3ltKiBcCi0JICAgICAgfCAta29wZW5zb2xhcmlzKiBcCisJICAgICAgfCAtaHB1eCogfCAtdW5vcyogfCAtb3NmKiB8IC1sdW5hKiB8IC1kZ3V4KiB8IC1hdXJvcmF1eCogfCAtc29sYXJpcyogXAorCSAgICAgIHwgLXN5bSogfCAta29wZW5zb2xhcmlzKiBcCiAJICAgICAgfCAtYW1pZ2FvcyogfCAtYW1pZ2Fkb3MqIHwgLW1zZG9zKiB8IC1uZXdzb3MqIHwgLXVuaWNvcyogfCAtYW9mKiBcCiAJICAgICAgfCAtYW9zKiB8IC1hcm9zKiBcCiAJICAgICAgfCAtbmluZHkqIHwgLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC1lYm1vbiogfCAtaG1zKiB8IC1tdnMqIFwKQEAgLTEyOTEsNyArMTM0NCw4IEBACiAJICAgICAgfCAtdWRpKiB8IC1lYWJpKiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAtYXV4KiBcCiAJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3JkYiogfCAtY2VnY2MqIFwKIAkgICAgICB8IC1jeWd3aW4qIHwgLXBlKiB8IC1wc29zKiB8IC1tb3NzKiB8IC1wcm9lbGYqIHwgLXJ0ZW1zKiBcCi0JICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC1uZXdsaWIqIHwgLWxpbnV4LXVjbGliYyogXAorCSAgICAgIHwgLW1pbmd3MzIqIHwgLWxpbnV4LWdudSogfCAtbGludXgtYW5kcm9pZCogXAorCSAgICAgIHwgLWxpbnV4LW5ld2xpYiogfCAtbGludXgtdWNsaWJjKiBcCiAJICAgICAgfCAtdXhwdiogfCAtYmVvcyogfCAtbXBlaXgqIHwgLXVkayogXAogCSAgICAgIHwgLWludGVyaXgqIHwgLXV3aW4qIHwgLW1rcyogfCAtcmhhcHNvZHkqIHwgLWRhcndpbiogfCAtb3BlbmVkKiBcCiAJICAgICAgfCAtb3BlbnN0ZXAqIHwgLW9za2l0KiB8IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBcCkBAIC0xMzM4LDcgKzEzOTIsNyBAQAogCS1vcGVuZWQqKQogCQlvcz0tb3BlbmVkaXRpb24KIAkJOzsKLSAgICAgICAgLW9zNDAwKikKKwktb3M0MDAqKQogCQlvcz0tb3M0MDAKIAkJOzsKIAktd2luY2UqKQpAQCAtMTM4Nyw3ICsxNDQxLDcgQEAKIAktc2luaXgqKQogCQlvcz0tc3lzdjQKIAkJOzsKLSAgICAgICAgLXRwZiopCisJLXRwZiopCiAJCW9zPS10cGYKIAkJOzsKIAktdHJpdG9uKikKQEAgLTE0MzIsNiArMTQ4Niw4IEBACiAJLWRpY29zKikKIAkJb3M9LWRpY29zCiAJCTs7CisJLW5hY2wqKQorCQk7OwogCS1ub25lKQogCQk7OwogCSopCkBAIC0xNDU0LDEwICsxNTEwLDEwIEBACiAjIHN5c3RlbSwgYW5kIHdlJ2xsIG5ldmVyIGdldCB0byB0aGlzIHBvaW50LgogCiBjYXNlICRiYXNpY19tYWNoaW5lIGluCi0gICAgICAgIHNjb3JlLSopCisJc2NvcmUtKikKIAkJb3M9LWVsZgogCQk7OwotICAgICAgICBzcHUtKikKKwlzcHUtKikKIAkJb3M9LWVsZgogCQk7OwogCSotYWNvcm4pCkBAIC0xNDY5LDggKzE1MjUsMTcgQEAKIAlhcm0qLXNlbWkpCiAJCW9zPS1hb3V0CiAJCTs7Ci0gICAgICAgIGM0eC0qIHwgdGljNHgtKikKLSAgICAgICAgCW9zPS1jb2ZmCisJYzR4LSogfCB0aWM0eC0qKQorCQlvcz0tY29mZgorCQk7OworCXRpYzU0eC0qKQorCQlvcz0tY29mZgorCQk7OworCXRpYzU1eC0qKQorCQlvcz0tY29mZgorCQk7OworCXRpYzZ4LSopCisJCW9zPS1jb2ZmCiAJCTs7CiAJIyBUaGlzIG11c3QgY29tZSBiZWZvcmUgdGhlICotZGVjIGVudHJ5LgogCXBkcDEwLSopCkBAIC0xNDk3LDcgKzE1NjIsNyBAQAogCW02OCotY2lzY28pCiAJCW9zPS1hb3V0CiAJCTs7Ci0gICAgICAgIG1lcC0qKQorCW1lcC0qKQogCQlvcz0tZWxmCiAJCTs7CiAJbWlwcyotY2lzY28pCkBAIC0xNTI0LDcgKzE1ODksNyBAQAogCSotaWJtKQogCQlvcz0tYWl4CiAJCTs7Ci0gICAgCSota251dGgpCisJKi1rbnV0aCkKIAkJb3M9LW1taXh3YXJlCiAJCTs7CiAJKi13ZWMpCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbmZpZ3VyZSBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvY29uZmlndXJlCmluZGV4IGM1YzcwYjEuLmM4NmE1OTcgMTAwNzU1Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvY29uZmlndXJlCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvY29uZmlndXJlCkBAIC0xLDEzICsxLDEzIEBACiAjISAvYmluL3NoCiAjIEd1ZXNzIHZhbHVlcyBmb3Igc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0jIEdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NSBmb3IgbGliZmZpIDMuMC4xMHJjMC4KKyMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4IGZvciBsaWJmZmkgMy4wLjExLgogIwotIyBSZXBvcnQgYnVncyB0byA8aHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbD4uCisjIFJlcG9ydCBidWdzIHRvIDxodHRwOi8vZ2l0aHViLmNvbS9hdGdyZWVuL2xpYmZmaS9pc3N1ZXM+LgogIwogIwogIyBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsCi0jIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotIyBJbmMuCisjIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuCiAjCiAjCiAjIFRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCkBAIC05MSw2ICs5MSw3IEBACiBJRlM9IiAiIgkkYXNfbmwiCiAKICMgRmluZCB3aG8gd2UgYXJlLiAgTG9vayBpbiB0aGUgcGF0aCBpZiB3ZSBjb250YWluIG5vIGRpcmVjdG9yeSBzZXBhcmF0b3IuCithc19teXNlbGY9CiBjYXNlICQwIGluICMoKAogICAqW1xcL10qICkgYXNfbXlzZWxmPSQwIDs7CiAgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKQEAgLTE3Myw2ICsxNzQsMTQgQEAKICAgYXNfbGluZW5vXzI9Ijthc19zdWdnZXN0ZWQ9JGFzX3N1Z2dlc3RlZCRMSU5FTk87YXNfc3VnZ2VzdGVkPSRhc19zdWdnZXN0ZWQiIGFzX2xpbmVub18yYT1cJExJTkVOTwogICBldmFsICd0ZXN0IFwieFwkYXNfbGluZW5vXzEnXCRhc19ydW4nXCIgIT0gXCJ4XCRhc19saW5lbm9fMidcJGFzX3J1bidcIiAmJgogICB0ZXN0IFwieFxgZXhwciBcJGFzX2xpbmVub18xJ1wkYXNfcnVuJyArIDFcYFwiID0gXCJ4XCRhc19saW5lbm9fMidcJGFzX3J1bidcIicgfHwgZXhpdCAxCisKKyAgdGVzdCAtbiBcIlwke1pTSF9WRVJTSU9OK3NldH1cJHtCQVNIX1ZFUlNJT04rc2V0fVwiIHx8ICgKKyAgICBFQ0hPPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKKyAgICBFQ0hPPVwkRUNIT1wkRUNIT1wkRUNIT1wkRUNIT1wkRUNITworICAgIEVDSE89XCRFQ0hPXCRFQ0hPXCRFQ0hPXCRFQ0hPXCRFQ0hPXCRFQ0hPCisgICAgUEFUSD0vZW1wdHkgRlBBVEg9L2VtcHR5OyBleHBvcnQgUEFUSCBGUEFUSAorICAgIHRlc3QgXCJYXGBwcmludGYgJXMgXCRFQ0hPXGBcIiA9IFwiWFwkRUNIT1wiIFxcCisgICAgICB8fCB0ZXN0IFwiWFxgcHJpbnQgLXIgLS0gXCRFQ0hPXGBcIiA9IFwiWFwkRUNIT1wiICkgfHwgZXhpdCAxCiB0ZXN0IFwkKCggMSArIDEgKSkgPSAyIHx8IGV4aXQgMSIKICAgaWYgKGV2YWwgIiRhc19yZXF1aXJlZCIpIDI+L2Rldi9udWxsOyB0aGVuIDoKICAgYXNfaGF2ZV9yZXF1aXJlZD15ZXMKQEAgLTIxNiwxMSArMjI1LDE4IEBACiAgICMgV2UgY2Fubm90IHlldCBhc3N1bWUgYSBkZWNlbnQgc2hlbGwsIHNvIHdlIGhhdmUgdG8gcHJvdmlkZSBhCiAJIyBuZXV0cmFsaXphdGlvbiB2YWx1ZSBmb3Igc2hlbGxzIHdpdGhvdXQgdW5zZXQ7IGFuZCB0aGlzIGFsc28KIAkjIHdvcmtzIGFyb3VuZCBzaGVsbHMgdGhhdCBjYW5ub3QgdW5zZXQgbm9uZXhpc3RlbnQgdmFyaWFibGVzLgorCSMgUHJlc2VydmUgLXYgYW5kIC14IHRvIHRoZSByZXBsYWNlbWVudCBzaGVsbC4KIAlCQVNIX0VOVj0vZGV2L251bGwKIAlFTlY9L2Rldi9udWxsCiAJKHVuc2V0IEJBU0hfRU5WKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQkFTSF9FTlYgRU5WCiAJZXhwb3J0IENPTkZJR19TSEVMTAotCWV4ZWMgIiRDT05GSUdfU0hFTEwiICIkYXNfbXlzZWxmIiAkezErIiRAIn0KKwljYXNlICQtIGluICMgKCgoKAorCSAgKnYqeCogfCAqeCp2KiApIGFzX29wdHM9LXZ4IDs7CisJICAqdiogKSBhc19vcHRzPS12IDs7CisJICAqeCogKSBhc19vcHRzPS14IDs7CisJICAqICkgYXNfb3B0cz0gOzsKKwllc2FjCisJZXhlYyAiJENPTkZJR19TSEVMTCIgJGFzX29wdHMgIiRhc19teXNlbGYiICR7MSsiJEAifQogZmkKIAogICAgIGlmIHRlc3QgeCRhc19oYXZlX3JlcXVpcmVkID0geG5vOyB0aGVuIDoKQEAgLTIzMSw4ICsyNDcsOCBAQAogICAgICRhc19lY2hvICIkMDogYmUgdXBncmFkZWQgdG8genNoIDQuMy40IG9yIGxhdGVyLiIKICAgZWxzZQogICAgICRhc19lY2hvICIkMDogUGxlYXNlIHRlbGwgYnVnLWF1dG9jb25mQGdudS5vcmcgYW5kCi0kMDogaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbCBhYm91dCB5b3VyIHN5c3RlbSwKLSQwOiBpbmNsdWRpbmcgYW55IGVycm9yIHBvc3NpYmx5IG91dHB1dCBiZWZvcmUgdGhpcworJDA6IGh0dHA6Ly9naXRodWIuY29tL2F0Z3JlZW4vbGliZmZpL2lzc3VlcyBhYm91dCB5b3VyCiskMDogc3lzdGVtLCBpbmNsdWRpbmcgYW55IGVycm9yIHBvc3NpYmx5IG91dHB1dCBiZWZvcmUgdGhpcwogJDA6IG1lc3NhZ2UuIFRoZW4gaW5zdGFsbCBhIG1vZGVybiBzaGVsbCwgb3IgbWFudWFsbHkgcnVuCiAkMDogdGhlIHNjcmlwdCB1bmRlciBzdWNoIGEgc2hlbGwgaWYgeW91IGRvIGhhdmUgb25lLiIKICAgZmkKQEAgLTMxOSw3ICszMzUsNyBAQAogICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKICAgICBkb25lCiAgICAgdGVzdCAteiAiJGFzX2RpcnMiIHx8IGV2YWwgIm1rZGlyICRhc19kaXJzIgotICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IGFzX2ZuX2Vycm9yICJjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIgorICB9IHx8IHRlc3QgLWQgIiRhc19kaXIiIHx8IGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAkYXNfZGlyIgogCiAKIH0gIyBhc19mbl9ta2Rpcl9wCkBAIC0zNTksMTkgKzM3NSwxOSBAQAogZmkgIyBhc19mbl9hcml0aAogCiAKLSMgYXNfZm5fZXJyb3IgRVJST1IgW0xJTkVOTyBMT0dfRkRdCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBhc19mbl9lcnJvciBTVEFUVVMgRVJST1IgW0xJTkVOTyBMT0dfRkRdCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgT3V0cHV0ICJgYmFzZW5hbWUgJDBgOiBlcnJvcjogRVJST1IiIHRvIHN0ZGVyci4gSWYgTElORU5PIGFuZCBMT0dfRkQgYXJlCiAjIHByb3ZpZGVkLCBhbHNvIG91dHB1dCB0aGUgZXJyb3IgdG8gTE9HX0ZELCByZWZlcmVuY2luZyBMSU5FTk8uIFRoZW4gZXhpdCB0aGUKLSMgc2NyaXB0IHdpdGggc3RhdHVzICQ/LCB1c2luZyAxIGlmIHRoYXQgd2FzIDAuCisjIHNjcmlwdCB3aXRoIFNUQVRVUywgdXNpbmcgMSBpZiB0aGF0IHdhcyAwLgogYXNfZm5fZXJyb3IgKCkKIHsKLSAgYXNfc3RhdHVzPSQ/OyB0ZXN0ICRhc19zdGF0dXMgLWVxIDAgJiYgYXNfc3RhdHVzPTEKLSAgaWYgdGVzdCAiJDMiOyB0aGVuCi0gICAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMiJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjawotICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiAkMSIgPiYkMworICBhc19zdGF0dXM9JDE7IHRlc3QgJGFzX3N0YXR1cyAtZXEgMCAmJiBhc19zdGF0dXM9MQorICBpZiB0ZXN0ICIkNCI7IHRoZW4KKyAgICBhc19saW5lbm89JHthc19saW5lbm8tIiQzIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCisgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6ICQyIiA+JiQ0CiAgIGZpCi0gICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkMSIgPiYyCisgICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiAkMiIgPiYyCiAgIGFzX2ZuX2V4aXQgJGFzX3N0YXR1cwogfSAjIGFzX2ZuX2Vycm9yCiAKQEAgLTUyOCwxNjEgKzU0NCwxNCBAQAogIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCiBhc190cl9zaD0iZXZhbCBzZWQgJ3klKislcHAlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgogCi0KLQotIyBDaGVjayB0aGF0IHdlIGFyZSBydW5uaW5nIHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgogU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KIAotY2FzZSBYJGx0X0VDSE8gaW4KLVgqLS1mYWxsYmFjay1lY2hvKQotICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVvdGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgotICBFQ0hPPWBlY2hvICIkbHRfRUNITyIgfCBzZWQgJ3MsXFxcXFwkXFwkMCwnJDAnLCdgCi0gIDs7Ci1lc2FjCi0KLUVDSE89JHtsdF9FQ0hPLWVjaG99Ci1pZiB0ZXN0ICJYJDEiID0gWC0tbm8tcmVleGVjOyB0aGVuCi0gICMgRGlzY2FyZCB0aGUgLS1uby1yZWV4ZWMgZmxhZywgYW5kIGNvbnRpbnVlLgotICBzaGlmdAotZWxpZiB0ZXN0ICJYJDEiID0gWC0tZmFsbGJhY2stZWNobzsgdGhlbgotICAjIEF2b2lkIGlubGluZSBkb2N1bWVudCBoZXJlLCBpdCBtYXkgYmUgbGVmdCBvdmVyCi0gIDoKLWVsaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnIDsgdGhlbgotICAjIFlpcHBlZSwgJEVDSE8gd29ya3MhCi0gIDoKLWVsc2UKLSAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLgotICBleGVjICRTSEVMTCAiJDAiIC0tbm8tcmVleGVjICR7MSsiJEAifQotZmkKLQotaWYgdGVzdCAiWCQxIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSAgIyB1c2VkIGFzIGZhbGxiYWNrIGVjaG8KLSAgc2hpZnQKLSAgY2F0IDw8X0xUX0VPRgotJCoKLV9MVF9FT0YKLSAgZXhpdCAwCi1maQotCi0jIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotIyBpZiBDRFBBVEggaXMgc2V0LgotKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAotCi1pZiB0ZXN0IC16ICIkbHRfRUNITyI7IHRoZW4KLSAgaWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVuCi0gICAgIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0Ci0gICAgZm9yIGNtZCBpbiAnc2VkIDUwcSAiJDAiJyAnc2VkIDIwcSAiJDAiJyAnc2VkIDEwcSAiJDAiJyAnc2VkIDJxICIkMCInICdlY2hvIHRlc3QnOyBkbwotICAgICAgIyBleHBlY3RlZCBzaXplczogbGVzcyB0aGFuIDJLYiwgMUtiLCA1MTIgYnl0ZXMsIDE2IGJ5dGVzLCAuLi4KLSAgICAgIGlmIHsgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkY21kYDsgfSAyPi9kZXYvbnVsbCAmJgotCSB7IHRlc3QgIlgkZWNob190ZXN0X3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbAotICAgICAgdGhlbgotICAgICAgICBicmVhawotICAgICAgZmkKLSAgICBkb25lCi0gIGZpCi0KLSAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCi0gICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YHsgJEVDSE8gIiRlY2hvX3Rlc3Rfc3RyaW5nIjsgfSAyPi9kZXYvbnVsbGAgJiYKLSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0gICAgOgotICBlbHNlCi0gICAgIyBUaGUgU29sYXJpcywgQUlYLCBhbmQgRGlnaXRhbCBVbml4IGRlZmF1bHQgZWNobyBwcm9ncmFtcyB1bnF1b3RlCi0gICAgIyBiYWNrc2xhc2hlcy4gIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBxdW90ZSBiYWNrc2xhc2hlcyB1c2luZwotICAgICMgICBlY2hvICIkc29tZXRoaW5nIiB8IHNlZCAncy9cXC9cXFxcL2cnCi0gICAgIwotICAgICMgU28sIGZpcnN0IHdlIGxvb2sgZm9yIGEgd29ya2luZyBlY2hvIGluIHRoZSB1c2VyJ3MgUEFUSC4KLQotICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotICAgIGZvciBkaXIgaW4gJFBBVEggL3Vzci91Y2I7IGRvCi0gICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSAgICAgIGlmICh0ZXN0IC1mICRkaXIvZWNobyB8fCB0ZXN0IC1mICRkaXIvZWNobyRhY19leGVleHQpICYmCi0gICAgICAgICB0ZXN0ICJYYCgkZGlyL2VjaG8gJ1x0JykgMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCi0gICAgICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJGRpci9lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0gICAgICAgIEVDSE89IiRkaXIvZWNobyIKLSAgICAgICAgYnJlYWsKLSAgICAgIGZpCi0gICAgZG9uZQotICAgIElGUz0iJGx0X3NhdmVfaWZzIgotCi0gICAgaWYgdGVzdCAiWCRFQ0hPIiA9IFhlY2hvOyB0aGVuCi0gICAgICAjIFdlIGRpZG4ndCBmaW5kIGEgYmV0dGVyIGVjaG8sIHNvIGxvb2sgZm9yIGFsdGVybmF0aXZlcy4KLSAgICAgIGlmIHRlc3QgIlhgeyBwcmludCAtciAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyAmJgotICAgICAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyBwcmludCAtciAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotICAgICAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0gICAgICAgICMgVGhpcyBzaGVsbCBoYXMgYSBidWlsdGluIHByaW50IC1yIHRoYXQgZG9lcyB0aGUgdHJpY2suCi0gICAgICAgIEVDSE89J3ByaW50IC1yJwotICAgICAgZWxpZiB7IHRlc3QgLWYgL2Jpbi9rc2ggfHwgdGVzdCAtZiAvYmluL2tzaCRhY19leGVleHQ7IH0gJiYKLQkgICB0ZXN0ICJYJENPTkZJR19TSEVMTCIgIT0gWC9iaW4va3NoOyB0aGVuCi0gICAgICAgICMgSWYgd2UgaGF2ZSBrc2gsIHRyeSBydW5uaW5nIGNvbmZpZ3VyZSBhZ2FpbiB3aXRoIGl0LgotICAgICAgICBPUklHSU5BTF9DT05GSUdfU0hFTEw9JHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0KLSAgICAgICAgZXhwb3J0IE9SSUdJTkFMX0NPTkZJR19TSEVMTAotICAgICAgICBDT05GSUdfU0hFTEw9L2Jpbi9rc2gKLSAgICAgICAgZXhwb3J0IENPTkZJR19TSEVMTAotICAgICAgICBleGVjICRDT05GSUdfU0hFTEwgIiQwIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KLSAgICAgIGVsc2UKLSAgICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgotICAgICAgICBFQ0hPPSdwcmludGYgJXNcbicKLSAgICAgICAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCi0JICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotCSAgIyBDb29sLCBwcmludGYgd29ya3MKLQkgIDoKLSAgICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiJDAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLQkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgotCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRPUklHSU5BTF9DT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0JICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLQkgIENPTkZJR19TSEVMTD0kT1JJR0lOQUxfQ09ORklHX1NIRUxMCi0JICBleHBvcnQgQ09ORklHX1NIRUxMCi0JICBTSEVMTD0iJENPTkZJR19TSEVMTCIKLQkgIGV4cG9ydCBTSEVMTAotCSAgRUNITz0iJENPTkZJR19TSEVMTCAkMCAtLWZhbGxiYWNrLWVjaG8iCi0gICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIiQwIiAtLWZhbGxiYWNrLWVjaG8gJ1x0JykgMj4vZGV2L251bGxgICYmCi0JICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gJ1hcdCcgJiYKLQkgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkQ09ORklHX1NIRUxMICIkMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0JICBFQ0hPPSIkQ09ORklHX1NIRUxMICQwIC0tZmFsbGJhY2stZWNobyIKLSAgICAgICAgZWxzZQotCSAgIyBtYXliZSB3aXRoIGEgc21hbGxlciBzdHJpbmcuLi4KLQkgIHByZXY9OgotCi0JICBmb3IgY21kIGluICdlY2hvIHRlc3QnICdzZWQgMnEgIiQwIicgJ3NlZCAxMHEgIiQwIicgJ3NlZCAyMHEgIiQwIicgJ3NlZCA1MHEgIiQwIic7IGRvCi0JICAgIGlmIHsgdGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYYGV2YWwgJGNtZGAiOyB9IDI+L2Rldi9udWxsCi0JICAgIHRoZW4KLQkgICAgICBicmVhawotCSAgICBmaQotCSAgICBwcmV2PSIkY21kIgotCSAgZG9uZQotCi0JICBpZiB0ZXN0ICIkcHJldiIgIT0gJ3NlZCA1MHEgIiQwIic7IHRoZW4KLQkgICAgZWNob190ZXN0X3N0cmluZz1gZXZhbCAkcHJldmAKLQkgICAgZXhwb3J0IGVjaG9fdGVzdF9zdHJpbmcKLQkgICAgZXhlYyAke09SSUdJTkFMX0NPTkZJR19TSEVMTC0ke0NPTkZJR19TSEVMTC0vYmluL3NofX0gIiQwIiAkezErIiRAIn0KLQkgIGVsc2UKLQkgICAgIyBPb3BzLiAgV2UgbG9zdCBjb21wbGV0ZWx5LCBzbyBqdXN0IHN0aWNrIHdpdGggZWNoby4KLQkgICAgRUNITz1lY2hvCi0JICBmaQotICAgICAgICBmaQotICAgICAgZmkKLSAgICBmaQotICBmaQotZmkKLQotIyBDb3B5IGVjaG8gYW5kIHF1b3RlIHRoZSBjb3B5IHN1aXRhYmx5IGZvciBwYXNzaW5nIHRvIGxpYnRvb2wgZnJvbQotIyB0aGUgTWFrZWZpbGUsIGluc3RlYWQgb2YgcXVvdGluZyB0aGUgb3JpZ2luYWwsIHdoaWNoIGlzIHVzZWQgbGF0ZXIuCi1sdF9FQ0hPPSRFQ0hPCi1pZiB0ZXN0ICJYJGx0X0VDSE8iID0gIlgkQ09ORklHX1NIRUxMICQwIC0tZmFsbGJhY2stZWNobyI7IHRoZW4KLSAgIGx0X0VDSE89IiRDT05GSUdfU0hFTEwgXFxcJFwkMCAtLWZhbGxiYWNrLWVjaG8iCi1maQotCi0KLQogCiB0ZXN0IC1uICIkREpESVIiIHx8IGV4ZWMgNzwmMCA8L2Rldi9udWxsCiBleGVjIDY+JjEKIAogIyBOYW1lIG9mIHRoZSBob3N0LgotIyBob3N0bmFtZSBvbiBzb21lIHN5c3RlbXMgKFNWUjMuMiwgTGludXgpIHJldHVybnMgYSBib2d1cyBleGl0IHN0YXR1cywKKyMgaG9zdG5hbWUgb24gc29tZSBzeXN0ZW1zIChTVlIzLjIsIG9sZCBHTlUvTGludXgpIHJldHVybnMgYSBib2d1cyBleGl0IHN0YXR1cywKICMgc28gdW5hbWUgZ2V0cyBydW4gdG9vLgogYWNfaG9zdG5hbWU9YChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgCiAKQEAgLTcwMSw5ICs1NzAsOSBAQAogIyBJZGVudGl0eSBvZiB0aGlzIHBhY2thZ2UuCiBQQUNLQUdFX05BTUU9J2xpYmZmaScKIFBBQ0tBR0VfVEFSTkFNRT0nbGliZmZpJwotUEFDS0FHRV9WRVJTSU9OPSczLjAuMTByYzAnCi1QQUNLQUdFX1NUUklORz0nbGliZmZpIDMuMC4xMHJjMCcKLVBBQ0tBR0VfQlVHUkVQT1JUPSdodHRwOi8vZ2NjLmdudS5vcmcvYnVncy5odG1sJworUEFDS0FHRV9WRVJTSU9OPSczLjAuMTEnCitQQUNLQUdFX1NUUklORz0nbGliZmZpIDMuMC4xMScKK1BBQ0tBR0VfQlVHUkVQT1JUPSdodHRwOi8vZ2l0aHViLmNvbS9hdGdyZWVuL2xpYmZmaS9pc3N1ZXMnCiBQQUNLQUdFX1VSTD0nJwogCiAjIEZhY3RvcmluZyBkZWZhdWx0IGhlYWRlcnMgZm9yIG1vc3QgdGVzdHMuCkBAIC03NDgsOCArNjE3LDE0IEBACiBMSUJPQkpTCiB0b29sZXhlY2xpYmRpcgogdG9vbGV4ZWNkaXIKK0ZGSV9ERUJVR19GQUxTRQorRkZJX0RFQlVHX1RSVUUKIFRBUkdFVERJUgogVEFSR0VUCitGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFCitGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFX0ZBTFNFCitGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFX1RSVUUKK3N5c19zeW1ib2xfdW5kZXJzY29yZQogSEFWRV9MT05HX0RPVUJMRQogQUxMT0NBCiBQQTY0X0hQVVhfRkFMU0UKQEAgLTc4Miw2ICs2NTcsOCBAQAogUE9XRVJQQ19BSVhfVFJVRQogUE9XRVJQQ19GQUxTRQogUE9XRVJQQ19UUlVFCitNT1hJRV9GQUxTRQorTU9YSUVfVFJVRQogTTY4S19GQUxTRQogTTY4S19UUlVFCiBNMzJSX0ZBTFNFCkBAIC04MTEsMTUgKzY4OCwxOCBAQAogTUFJTlQKIE1BSU5UQUlORVJfTU9ERV9GQUxTRQogTUFJTlRBSU5FUl9NT0RFX1RSVUUKK1BSVERJQUcKIENQUAogT1RPT0w2NAogT1RPT0wKIExJUE8KIE5NRURJVAogRFNZTVVUSUwKLWx0X0VDSE8KK01BTklGRVNUX1RPT0wKIFJBTkxJQgorYWNfY3RfQVIKIEFSCitETExUT09MCiBPQkpEVU1QCiBMTl9TCiBOTQpAQCAtODM5LDYgKzcxOSw3IEBACiBhbV9fZmFzdGRlcENDX0ZBTFNFCiBhbV9fZmFzdGRlcENDX1RSVUUKIENDREVQTU9ERQorYW1fX25vZGVwCiBBTURFUEJBQ0tTTEFTSAogQU1ERVBfRkFMU0UKIEFNREVQX1RSVUUKQEAgLTg3NSw2ICs3NTYsNyBAQAogSU5TVEFMTF9EQVRBCiBJTlNUQUxMX1NDUklQVAogSU5TVEFMTF9QUk9HUkFNCitheF9lbmFibGVfYnVpbGRkaXJfc2VkCiB0YXJnZXRfb3MKIHRhcmdldF92ZW5kb3IKIHRhcmdldF9jcHUKQEAgLTkyOCwxMyArODEwLDE3IEBACiBhY19zdWJzdF9maWxlcz0nJwogYWNfdXNlcl9vcHRzPScKIGVuYWJsZV9vcHRpb25fY2hlY2tpbmcKK2VuYWJsZV9idWlsZGRpcgogZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmcKIGVuYWJsZV9zaGFyZWQKIGVuYWJsZV9zdGF0aWMKIHdpdGhfcGljCiBlbmFibGVfZmFzdF9pbnN0YWxsCiB3aXRoX2dudV9sZAord2l0aF9zeXNyb290CiBlbmFibGVfbGlidG9vbF9sb2NrCitlbmFibGVfcG9ydGFibGVfYmluYXJ5Cit3aXRoX2djY19hcmNoCiBlbmFibGVfbWFpbnRhaW5lcl9tb2RlCiBlbmFibGVfZGVidWcKIGVuYWJsZV9zdHJ1Y3RzCkBAIC0xMDEwLDggKzg5Niw5IEBACiAgIGZpCiAKICAgY2FzZSAkYWNfb3B0aW9uIGluCi0gICo9KikJYWNfb3B0YXJnPWBleHByICJYJGFjX29wdGlvbiIgOiAnW149XSo9XCguKlwpJ2AgOzsKLSAgKikJYWNfb3B0YXJnPXllcyA7OworICAqPT8qKSBhY19vcHRhcmc9YGV4cHIgIlgkYWNfb3B0aW9uIiA6ICdbXj1dKj1cKC4qXCknYCA7OworICAqPSkgICBhY19vcHRhcmc9IDs7CisgICopICAgIGFjX29wdGFyZz15ZXMgOzsKICAgZXNhYwogCiAgICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQgQ3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCkBAIC0xMDU2LDcgKzk0Myw3IEBACiAgICAgYWNfdXNlcm9wdD1gZXhwciAieCRhY19vcHRpb24iIDogJ3gtKmRpc2FibGUtXCguKlwpJ2AKICAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCiAgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSAgICAgIGFzX2ZuX2Vycm9yICJpbnZhbGlkIGZlYXR1cmUgbmFtZTogJGFjX3VzZXJvcHQiCisgICAgICBhc19mbl9lcnJvciAkPyAiaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IgogICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAogICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0vXy9nJ2AKICAgICBjYXNlICRhY191c2VyX29wdHMgaW4KQEAgLTEwODIsNyArOTY5LDcgQEAKICAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwoW149XSpcKSdgCiAgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgogICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0gICAgICBhc19mbl9lcnJvciAiaW52YWxpZCBmZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IgorICAgICAgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgZmVhdHVyZSBuYW1lOiAkYWNfdXNlcm9wdCIKICAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKICAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCiAgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCkBAIC0xMjg2LDcgKzExNzMsNyBAQAogICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCiAgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgogICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0gICAgICBhc19mbl9lcnJvciAiaW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY191c2Vyb3B0IgorICAgICAgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfdXNlcm9wdCIKICAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKICAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCiAgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCkBAIC0xMzAyLDcgKzExODksNyBAQAogICAgIGFjX3VzZXJvcHQ9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4LSp3aXRob3V0LVwoLipcKSdgCiAgICAgIyBSZWplY3QgbmFtZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgogICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCi0gICAgICBhc19mbl9lcnJvciAiaW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY191c2Vyb3B0IgorICAgICAgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgcGFja2FnZSBuYW1lOiAkYWNfdXNlcm9wdCIKICAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKICAgICBhY191c2Vyb3B0PWAkYXNfZWNobyAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCiAgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCkBAIC0xMzMyLDggKzEyMTksOCBAQAogICB8IC0teC1saWJyYXI9KiB8IC0teC1saWJyYT0qIHwgLS14LWxpYnI9KiB8IC0teC1saWI9KiB8IC0teC1saT0qIHwgLS14LWw9KikKICAgICB4X2xpYnJhcmllcz0kYWNfb3B0YXJnIDs7CiAKLSAgLSopIGFzX2ZuX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0aW9uOiBcYCRhY19vcHRpb24nCi1UcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKyAgLSopIGFzX2ZuX2Vycm9yICQ/ICJ1bnJlY29nbml6ZWQgb3B0aW9uOiBcYCRhY19vcHRpb24nCitUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgogICAgIDs7CiAKICAgKj0qKQpAQCAtMTM0MSw3ICsxMjI4LDcgQEAKICAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFyaWFibGUgbmFtZXMuCiAgICAgY2FzZSAkYWNfZW52dmFyIGluICMoCiAgICAgICAnJyB8IFswLTldKiB8ICpbIV8kYXNfY3JfYWxudW1dKiApCi0gICAgICBhc19mbl9lcnJvciAiaW52YWxpZCB2YXJpYWJsZSBuYW1lOiBcYCRhY19lbnZ2YXInIiA7OworICAgICAgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgdmFyaWFibGUgbmFtZTogXGAkYWNfZW52dmFyJyIgOzsKICAgICBlc2FjCiAgICAgZXZhbCAkYWNfZW52dmFyPVwkYWNfb3B0YXJnCiAgICAgZXhwb3J0ICRhY19lbnZ2YXIgOzsKQEAgLTEzNTEsNyArMTIzOCw3IEBACiAgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogeW91IHNob3VsZCB1c2UgLS1idWlsZCwgLS1ob3N0LCAtLXRhcmdldCIgPiYyCiAgICAgZXhwciAieCRhY19vcHRpb24iIDogIi4qW14tLl8kYXNfY3JfYWxudW1dIiA+L2Rldi9udWxsICYmCiAgICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpbnZhbGlkIGhvc3QgdHlwZTogJGFjX29wdGlvbiIgPiYyCi0gICAgOiAke2J1aWxkX2FsaWFzPSRhY19vcHRpb259ICR7aG9zdF9hbGlhcz0kYWNfb3B0aW9ufSAke3RhcmdldF9hbGlhcz0kYWNfb3B0aW9ufQorICAgIDogIiR7YnVpbGRfYWxpYXM9JGFjX29wdGlvbn0gJHtob3N0X2FsaWFzPSRhY19vcHRpb259ICR7dGFyZ2V0X2FsaWFzPSRhY19vcHRpb259IgogICAgIDs7CiAKICAgZXNhYwpAQCAtMTM1OSwxMyArMTI0NiwxMyBAQAogCiBpZiB0ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4KICAgYWNfb3B0aW9uPS0tYGVjaG8gJGFjX3ByZXYgfCBzZWQgJ3MvXy8tL2cnYAotICBhc19mbl9lcnJvciAibWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0aW9uIgorICBhc19mbl9lcnJvciAkPyAibWlzc2luZyBhcmd1bWVudCB0byAkYWNfb3B0aW9uIgogZmkKIAogaWYgdGVzdCAtbiAiJGFjX3VucmVjb2duaXplZF9vcHRzIjsgdGhlbgogICBjYXNlICRlbmFibGVfb3B0aW9uX2NoZWNraW5nIGluCiAgICAgbm8pIDs7Ci0gICAgZmF0YWwpIGFzX2ZuX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0aW9uczogJGFjX3VucmVjb2duaXplZF9vcHRzIiA7OworICAgIGZhdGFsKSBhc19mbl9lcnJvciAkPyAidW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgOzsKICAgICAqKSAgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYyIDs7CiAgIGVzYWMKIGZpCkBAIC0xMzg4LDcgKzEyNzUsNyBAQAogICAgIFtcXC8kXSogfCA/OltcXC9dKiApICBjb250aW51ZTs7CiAgICAgTk9ORSB8ICcnICkgY2FzZSAkYWNfdmFyIGluICpwcmVmaXggKSBjb250aW51ZTs7IGVzYWM7OwogICBlc2FjCi0gIGFzX2ZuX2Vycm9yICJleHBlY3RlZCBhbiBhYnNvbHV0ZSBkaXJlY3RvcnkgbmFtZSBmb3IgLS0kYWNfdmFyOiAkYWNfdmFsIgorICBhc19mbl9lcnJvciAkPyAiZXhwZWN0ZWQgYW4gYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgZm9yIC0tJGFjX3ZhcjogJGFjX3ZhbCIKIGRvbmUKIAogIyBUaGVyZSBtaWdodCBiZSBwZW9wbGUgd2hvIGRlcGVuZCBvbiB0aGUgb2xkIGJyb2tlbiBiZWhhdmlvcjogYCRob3N0JwpAQCAtMTQwMiw4ICsxMjg5LDggQEAKIGlmIHRlc3QgIngkaG9zdF9hbGlhcyIgIT0geDsgdGhlbgogICBpZiB0ZXN0ICJ4JGJ1aWxkX2FsaWFzIiA9IHg7IHRoZW4KICAgICBjcm9zc19jb21waWxpbmc9bWF5YmUKLSAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBJZiB5b3Ugd2FudGVkIHRvIHNldCB0aGUgLS1idWlsZCB0eXBlLCBkb24ndCB1c2UgLS1ob3N0LgotICAgIElmIGEgY3Jvc3MgY29tcGlsZXIgaXMgZGV0ZWN0ZWQgdGhlbiBjcm9zcyBjb21waWxlIG1vZGUgd2lsbCBiZSB1c2VkLiIgPiYyCisgICAgJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogaWYgeW91IHdhbnRlZCB0byBzZXQgdGhlIC0tYnVpbGQgdHlwZSwgZG9uJ3QgdXNlIC0taG9zdC4KKyAgICBJZiBhIGNyb3NzIGNvbXBpbGVyIGlzIGRldGVjdGVkIHRoZW4gY3Jvc3MgY29tcGlsZSBtb2RlIHdpbGwgYmUgdXNlZCIgPiYyCiAgIGVsaWYgdGVzdCAieCRidWlsZF9hbGlhcyIgIT0gIngkaG9zdF9hbGlhcyI7IHRoZW4KICAgICBjcm9zc19jb21waWxpbmc9eWVzCiAgIGZpCkBAIC0xNDE4LDkgKzEzMDUsOSBAQAogYWNfcHdkPWBwd2RgICYmIHRlc3QgLW4gIiRhY19wd2QiICYmCiBhY19sc19kaT1gbHMgLWRpIC5gICYmCiBhY19wd2RfbHNfZGk9YGNkICIkYWNfcHdkIiAmJiBscyAtZGkgLmAgfHwKLSAgYXNfZm5fZXJyb3IgIndvcmtpbmcgZGlyZWN0b3J5IGNhbm5vdCBiZSBkZXRlcm1pbmVkIgorICBhc19mbl9lcnJvciAkPyAid29ya2luZyBkaXJlY3RvcnkgY2Fubm90IGJlIGRldGVybWluZWQiCiB0ZXN0ICJYJGFjX2xzX2RpIiA9ICJYJGFjX3B3ZF9sc19kaSIgfHwKLSAgYXNfZm5fZXJyb3IgInB3ZCBkb2VzIG5vdCByZXBvcnQgbmFtZSBvZiB3b3JraW5nIGRpcmVjdG9yeSIKKyAgYXNfZm5fZXJyb3IgJD8gInB3ZCBkb2VzIG5vdCByZXBvcnQgbmFtZSBvZiB3b3JraW5nIGRpcmVjdG9yeSIKIAogCiAjIEZpbmQgdGhlIHNvdXJjZSBmaWxlcywgaWYgbG9jYXRpb24gd2FzIG5vdCBzcGVjaWZpZWQuCkBAIC0xNDU5LDExICsxMzQ2LDExIEBACiBmaQogaWYgdGVzdCAhIC1yICIkc3JjZGlyLyRhY191bmlxdWVfZmlsZSI7IHRoZW4KICAgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0ZWQiID0geWVzICYmIHNyY2Rpcj0iJGFjX2NvbmZkaXIgb3IgLi4iCi0gIGFzX2ZuX2Vycm9yICJjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRzcmNkaXIiCisgIGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgZmluZCBzb3VyY2VzICgkYWNfdW5pcXVlX2ZpbGUpIGluICRzcmNkaXIiCiBmaQogYWNfbXNnPSJzb3VyY2VzIGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIgogYWNfYWJzX2NvbmZkaXI9YCgKLQljZCAiJHNyY2RpciIgJiYgdGVzdCAtciAiLi8kYWNfdW5pcXVlX2ZpbGUiIHx8IGFzX2ZuX2Vycm9yICIkYWNfbXNnIgorCWNkICIkc3JjZGlyIiAmJiB0ZXN0IC1yICIuLyRhY191bmlxdWVfZmlsZSIgfHwgYXNfZm5fZXJyb3IgJD8gIiRhY19tc2ciCiAJcHdkKWAKICMgV2hlbiBidWlsZGluZyBpbiBwbGFjZSwgc2V0IHNyY2Rpcj0uCiBpZiB0ZXN0ICIkYWNfYWJzX2NvbmZkaXIiID0gIiRhY19wd2QiOyB0aGVuCkBAIC0xNDg5LDcgKzEzNzYsNyBAQAogICAjIE9taXQgc29tZSBpbnRlcm5hbCBvciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KICAgIyBUaGlzIG1lc3NhZ2UgaXMgdG9vIGxvbmcgdG8gYmUgYSBzdHJpbmcgaW4gdGhlIEEvVVggMy4xIHNoLgogICBjYXQgPDxfQUNFT0YKLVxgY29uZmlndXJlJyBjb25maWd1cmVzIGxpYmZmaSAzLjAuMTByYzAgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgorXGBjb25maWd1cmUnIGNvbmZpZ3VyZXMgbGliZmZpIDMuMC4xMSB0byBhZGFwdCB0byBtYW55IGtpbmRzIG9mIHN5c3RlbXMuCiAKIFVzYWdlOiAkMCBbT1BUSU9OXS4uLiBbVkFSPVZBTFVFXS4uLgogCkBAIC0xNTAzLDcgKzEzOTAsNyBAQAogICAgICAgLS1oZWxwPXNob3J0ICAgICAgICBkaXNwbGF5IG9wdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBwYWNrYWdlCiAgICAgICAtLWhlbHA9cmVjdXJzaXZlICAgIGRpc3BsYXkgdGhlIHNob3J0IGhlbHAgb2YgYWxsIHRoZSBpbmNsdWRlZCBwYWNrYWdlcwogICAtViwgLS12ZXJzaW9uICAgICAgICAgICBkaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSAgLXEsIC0tcXVpZXQsIC0tc2lsZW50ICAgZG8gbm90IHByaW50IFxgY2hlY2tpbmcuLi4nIG1lc3NhZ2VzCisgIC1xLCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5nIC4uLicgbWVzc2FnZXMKICAgICAgIC0tY2FjaGUtZmlsZT1GSUxFICAgY2FjaGUgdGVzdCByZXN1bHRzIGluIEZJTEUgW2Rpc2FibGVkXQogICAtQywgLS1jb25maWctY2FjaGUgICAgICBhbGlhcyBmb3IgXGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJwogICAtbiwgLS1uby1jcmVhdGUgICAgICAgICBkbyBub3QgY3JlYXRlIG91dHB1dCBmaWxlcwpAQCAtMTU2MCw3ICsxNDQ3LDcgQEAKIAogaWYgdGVzdCAtbiAiJGFjX2luaXRfaGVscCI7IHRoZW4KICAgY2FzZSAkYWNfaW5pdF9oZWxwIGluCi0gICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBsaWJmZmkgMy4wLjEwcmMwOiI7OworICAgICBzaG9ydCB8IHJlY3Vyc2l2ZSApIGVjaG8gIkNvbmZpZ3VyYXRpb24gb2YgbGliZmZpIDMuMC4xMToiOzsKICAgIGVzYWMKICAgY2F0IDw8XF9BQ0VPRgogCkBAIC0xNTY4LDYgKzE0NTUsOCBAQAogICAtLWRpc2FibGUtb3B0aW9uLWNoZWNraW5nICBpZ25vcmUgdW5yZWNvZ25pemVkIC0tZW5hYmxlLy0td2l0aCBvcHRpb25zCiAgIC0tZGlzYWJsZS1GRUFUVVJFICAgICAgIGRvIG5vdCBpbmNsdWRlIEZFQVRVUkUgKHNhbWUgYXMgLS1lbmFibGUtRkVBVFVSRT1ubykKICAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQorICAtLWRpc2FibGUtYnVpbGRkaXIgICAgICBkaXNhYmxlIGF1dG9tYXRpYyBidWlsZCBpbiBzdWJkaXIgb2Ygc291cmNlcworCiAgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMgdXAgb25lLXRpbWUgYnVpbGQKICAgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2luZyAgIGRvIG5vdCByZWplY3Qgc2xvdyBkZXBlbmRlbmN5IGV4dHJhY3RvcnMKICAgLS1lbmFibGUtc2hhcmVkWz1QS0dTXSAgYnVpbGQgc2hhcmVkIGxpYnJhcmllcyBbZGVmYXVsdD15ZXNdCkBAIC0xNTc1LDYgKzE0NjQsOSBAQAogICAtLWVuYWJsZS1mYXN0LWluc3RhbGxbPVBLR1NdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGltaXplIGZvciBmYXN0IGluc3RhbGxhdGlvbiBbZGVmYXVsdD15ZXNdCiAgIC0tZGlzYWJsZS1saWJ0b29sLWxvY2sgIGF2b2lkIGxvY2tpbmcgKG1pZ2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcykKKyAgLS1lbmFibGUtcG9ydGFibGUtYmluYXJ5CisgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGUgY29tcGlsZXIgb3B0aW1pemF0aW9ucyB0aGF0IHdvdWxkIHByb2R1Y2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdW5wb3J0YWJsZSBiaW5hcmllcwogICAtLWVuYWJsZS1tYWludGFpbmVyLW1vZGUgIGVuYWJsZSBtYWtlIHJ1bGVzIGFuZCBkZXBlbmRlbmNpZXMgbm90IHVzZWZ1bAogCQkJICAoYW5kIHNvbWV0aW1lcyBjb25mdXNpbmcpIHRvIHRoZSBjYXN1YWwgaW5zdGFsbGVyCiAgIC0tZW5hYmxlLWRlYnVnICAgICAgICAgIGRlYnVnZ2luZyBtb2RlCkBAIC0xNTg1LDkgKzE0NzcsMTMgQEAKIE9wdGlvbmFsIFBhY2thZ2VzOgogICAtLXdpdGgtUEFDS0FHRVs9QVJHXSAgICB1c2UgUEFDS0FHRSBbQVJHPXllc10KICAgLS13aXRob3V0LVBBQ0tBR0UgICAgICAgZG8gbm90IHVzZSBQQUNLQUdFIChzYW1lIGFzIC0td2l0aC1QQUNLQUdFPW5vKQotICAtLXdpdGgtcGljICAgICAgICAgICAgICB0cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMgb2JqZWN0cyBbZGVmYXVsdD11c2UKKyAgLS13aXRoLXBpY1s9UEtHU10gICAgICAgdHJ5IHRvIHVzZSBvbmx5IFBJQy9ub24tUElDIG9iamVjdHMgW2RlZmF1bHQ9dXNlCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvdGhdCiAgIC0td2l0aC1nbnUtbGQgICAgICAgICAgIGFzc3VtZSB0aGUgQyBjb21waWxlciB1c2VzIEdOVSBsZCBbZGVmYXVsdD1ub10KKyAgLS13aXRoLXN5c3Jvb3Q9RElSIFNlYXJjaCBmb3IgZGVwZW5kZW50IGxpYnJhcmllcyB3aXRoaW4gRElSCisgICAgICAgICAgICAgICAgICAgICAgICAob3IgdGhlIGNvbXBpbGVyJ3Mgc3lzcm9vdCBpZiBub3Qgc3BlY2lmaWVkKS4KKyAgLS13aXRoLWdjYy1hcmNoPTxhcmNoPiAgdXNlIGFyY2hpdGVjdHVyZSA8YXJjaD4gZm9yIGdjYyAtbWFyY2gvLW10dW5lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0ZWFkIG9mIGd1ZXNzaW5nCiAKIFNvbWUgaW5mbHVlbnRpYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzOgogICBDQyAgICAgICAgICBDIGNvbXBpbGVyIGNvbW1hbmQKQEAgLTE2MDQsNyArMTUwMCw3IEBACiBVc2UgdGhlc2UgdmFyaWFibGVzIHRvIG92ZXJyaWRlIHRoZSBjaG9pY2VzIG1hZGUgYnkgYGNvbmZpZ3VyZScgb3IgdG8gaGVscAogaXQgdG8gZmluZCBsaWJyYXJpZXMgYW5kIHByb2dyYW1zIHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgogCi1SZXBvcnQgYnVncyB0byA8aHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbD4uCitSZXBvcnQgYnVncyB0byA8aHR0cDovL2dpdGh1Yi5jb20vYXRncmVlbi9saWJmZmkvaXNzdWVzPi4KIF9BQ0VPRgogYWNfc3RhdHVzPSQ/CiBmaQpAQCAtMTY2NywxMCArMTU2MywxMCBAQAogdGVzdCAtbiAiJGFjX2luaXRfaGVscCIgJiYgZXhpdCAkYWNfc3RhdHVzCiBpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCiAgIGNhdCA8PFxfQUNFT0YKLWxpYmZmaSBjb25maWd1cmUgMy4wLjEwcmMwCi1nZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjUKK2xpYmZmaSBjb25maWd1cmUgMy4wLjExCitnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjgKIAotQ29weXJpZ2h0IChDKSAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogVGhpcyBjb25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4KIF9BQ0VPRgpAQCAtMTcxNCw3ICsxNjEwLDcgQEAKIAogCWFjX3JldHZhbD0xCiBmaQotICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5lbm87fQorICBldmFsICRhc19saW5lbm9fc3RhY2s7ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1bnNldCBhc19saW5lbm8KICAgYXNfZm5fc2V0X3N0YXR1cyAkYWNfcmV0dmFsCiAKIH0gIyBhY19mbl9jX3RyeV9jb21waWxlCkBAIC0xNzYwLDcgKzE2NTYsNyBAQAogICAjIGludGVyZmVyZSB3aXRoIHRoZSBuZXh0IGxpbmsgY29tbWFuZDsgYWxzbyBkZWxldGUgYSBkaXJlY3RvcnkgdGhhdCBpcwogICAjIGxlZnQgYmVoaW5kIGJ5IEFwcGxlJ3MgY29tcGlsZXIuICBXZSBkbyB0aGlzIGJlZm9yZSBleGVjdXRpbmcgdGhlIGFjdGlvbnMuCiAgIHJtIC1yZiBjb25mdGVzdC5kU1lNIGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28KLSAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVub19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30KKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCiAgIGFzX2ZuX3NldF9zdGF0dXMgJGFjX3JldHZhbAogCiB9ICMgYWNfZm5fY190cnlfbGluawpAQCAtMTc3NCw3ICsxNjcwLDcgQEAKICAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjawogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkMiIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIuLi4gIiA+JjY7IH0KLWlmIHsgYXNfdmFyPSQzOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuIDoKK2lmIGV2YWwgXCR7JDMrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CkBAIC0xNzkyLDcgKzE2ODgsNyBAQAogZXZhbCBhY19yZXM9XCQkMwogCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CiAkYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0gIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRhc19saW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVubzt9CisgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubwogCiB9ICMgYWNfZm5fY19jaGVja19oZWFkZXJfY29tcGlsZQogCkBAIC0xODE3LDcgKzE3MTMsNyBAQAogICAgIG12IC1mIGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIKICAgZmkKICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0gIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gPi9kZXYvbnVsbCAmJiB7CisgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gPiBjb25mdGVzdC5pICYmIHsKIAkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxhZyIgfHwKIAkgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycgogICAgICAgIH07IHRoZW4gOgpAQCAtMTgyOCw3ICsxNzI0LDcgQEAKIAogICAgIGFjX3JldHZhbD0xCiBmaQotICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5lbm87fQorICBldmFsICRhc19saW5lbm9fc3RhY2s7ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1bnNldCBhc19saW5lbm8KICAgYXNfZm5fc2V0X3N0YXR1cyAkYWNfcmV0dmFsCiAKIH0gIyBhY19mbl9jX3RyeV9jcHAKQEAgLTE4NzAsNyArMTc2Niw3IEBACiAgICAgICAgYWNfcmV0dmFsPSRhY19zdGF0dXMKIGZpCiAgIHJtIC1yZiBjb25mdGVzdC5kU1lNIGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28KLSAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVub19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30KKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCiAgIGFzX2ZuX3NldF9zdGF0dXMgJGFjX3JldHZhbAogCiB9ICMgYWNfZm5fY190cnlfcnVuCkBAIC0xODgzLDcgKzE3NzksNyBAQAogICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICQyIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkMi4uLiAiID4mNjsgfQotaWYgeyBhc192YXI9JDM7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4gOgoraWYgZXZhbCBcJHskMys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKQEAgLTE5MzgsNyArMTgzNCw3IEBACiBldmFsIGFjX3Jlcz1cJCQzCiAJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKICRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyB0ZXN0ICJ4JGFzX2xpbmVub19zdGFjayIgPSB4ICYmIHsgYXNfbGluZW5vPTsgdW5zZXQgYXNfbGluZW5vO30KKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCiAKIH0gIyBhY19mbl9jX2NoZWNrX2Z1bmMKIApAQCAtMTk1MCwxMCArMTg0NiwxMCBAQAogYWNfZm5fY19jaGVja19oZWFkZXJfbW9uZ3JlbCAoKQogewogICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCi0gIGlmIHsgYXNfdmFyPSQzOyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuIDoKKyAgaWYgZXZhbCBcJHskMys6fSBmYWxzZTsgdGhlbiA6CiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICQyIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkMi4uLiAiID4mNjsgfQotaWYgeyBhc192YXI9JDM7IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4gOgoraWYgZXZhbCBcJHskMys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBmaQogZXZhbCBhY19yZXM9XCQkMwpAQCAtMTk4OSw3ICsxODg1LDcgQEAKIGVsc2UKICAgYWNfaGVhZGVyX3ByZXByb2M9bm8KIGZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LmkgY29uZnRlc3QuJGFjX2V4dAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19oZWFkZXJfcHJlcHJvYyIgPiY1CiAkYXNfZWNobyAiJGFjX2hlYWRlcl9wcmVwcm9jIiA+JjY7IH0KIApAQCAtMjAxMiwxNyArMTkwOCwxNSBAQAogJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJDI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9CiAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkMjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1CiAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkMjogcHJvY2VlZGluZyB3aXRoIHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiYyO30KLSggY2F0IDw8XF9BU0JPWAotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotIyMgUmVwb3J0IHRoaXMgdG8gaHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbCAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotX0FTQk9YCisoICRhc19lY2hvICIjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKKyMjIFJlcG9ydCB0aGlzIHRvIGh0dHA6Ly9naXRodWIuY29tL2F0Z3JlZW4vbGliZmZpL2lzc3VlcyAjIworIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjIgogICAgICApIHwgc2VkICJzL14vJGFzX21lOiBXQVJOSU5HOiAgICAgLyIgPiYyCiAgICAgOzsKIGVzYWMKICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJDIiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICQyLi4uICIgPiY2OyB9Ci1pZiB7IGFzX3Zhcj0kMzsgZXZhbCAidGVzdCBcIlwkeyRhc192YXIrc2V0fVwiID0gc2V0IjsgfTsgdGhlbiA6CitpZiBldmFsIFwkeyQzKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgZXZhbCAiJDM9XCRhY19oZWFkZXJfY29tcGlsZXIiCkBAIC0yMDMxLDEwICsxOTI1LDY0IEBACiAJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKICRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KIGZpCi0gIGV2YWwgJGFzX2xpbmVub19zdGFjazsgdGVzdCAieCRhc19saW5lbm9fc3RhY2siID0geCAmJiB7IGFzX2xpbmVubz07IHVuc2V0IGFzX2xpbmVubzt9CisgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubwogCiB9ICMgYWNfZm5fY19jaGVja19oZWFkZXJfbW9uZ3JlbAogCisjIGFjX2ZuX2NfY2hlY2tfdHlwZSBMSU5FTk8gVFlQRSBWQVIgSU5DTFVERVMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBUZXN0cyB3aGV0aGVyIFRZUEUgZXhpc3RzIGFmdGVyIGhhdmluZyBpbmNsdWRlZCBJTkNMVURFUywgc2V0dGluZyBjYWNoZQorIyB2YXJpYWJsZSBWQVIgYWNjb3JkaW5nbHkuCithY19mbl9jX2NoZWNrX3R5cGUgKCkKK3sKKyAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjaworICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkMiIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIuLi4gIiA+JjY7IH0KK2lmIGV2YWwgXCR7JDMrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBldmFsICIkMz1ubyIKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworJDQKK2ludAorbWFpbiAoKQoreworaWYgKHNpemVvZiAoJDIpKQorCSByZXR1cm4gMDsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCiskNAoraW50CittYWluICgpCit7CitpZiAoc2l6ZW9mICgoJDIpKSkKKwkgICAgcmV0dXJuIDA7CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKworZWxzZQorICBldmFsICIkMz15ZXMiCitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorZXZhbCBhY19yZXM9XCQkMworCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CiskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CisgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubworCit9ICMgYWNfZm5fY19jaGVja190eXBlCisKICMgYWNfZm5fY19jb21wdXRlX2ludCBMSU5FTk8gRVhQUiBWQVIgSU5DTFVERVMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgVHJpZXMgdG8gZmluZCB0aGUgY29tcGlsZS10aW1lIHZhbHVlIG9mIEVYUFIgaW4gYSBwcm9ncmFtIHRoYXQgaW5jbHVkZXMKQEAgLTIyMDgsNyArMjE1Niw3IEBACiBybSAtZiBjb25mdGVzdC52YWwKIAogICBmaQotICBldmFsICRhc19saW5lbm9fc3RhY2s7IHRlc3QgIngkYXNfbGluZW5vX3N0YWNrIiA9IHggJiYgeyBhc19saW5lbm89OyB1bnNldCBhc19saW5lbm87fQorICBldmFsICRhc19saW5lbm9fc3RhY2s7ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1bnNldCBhc19saW5lbm8KICAgYXNfZm5fc2V0X3N0YXR1cyAkYWNfcmV0dmFsCiAKIH0gIyBhY19mbl9jX2NvbXB1dGVfaW50CkBAIC0yMjE2LDggKzIxNjQsOCBAQAogVGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hpbGUKIHJ1bm5pbmcgY29uZmlndXJlLCB0byBhaWQgZGVidWdnaW5nIGlmIGNvbmZpZ3VyZSBtYWtlcyBhIG1pc3Rha2UuCiAKLUl0IHdhcyBjcmVhdGVkIGJ5IGxpYmZmaSAkYXNfbWUgMy4wLjEwcmMwLCB3aGljaCB3YXMKLWdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcworSXQgd2FzIGNyZWF0ZWQgYnkgbGliZmZpICRhc19tZSAzLjAuMTEsIHdoaWNoIHdhcworZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2FzCiAKICAgJCAkMCAkQAogCkBAIC0yMzI3LDExICsyMjc1LDkgQEAKICAgewogICAgIGVjaG8KIAotICAgIGNhdCA8PFxfQVNCT1gKLSMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKKyAgICAkYXNfZWNobyAiIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwogIyMgQ2FjaGUgdmFyaWFibGVzLiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwotX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tICMjIgogICAgIGVjaG8KICAgICAjIFRoZSBmb2xsb3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFsdWVzLAogKApAQCAtMjM2NSwxMSArMjMxMSw5IEBACiApCiAgICAgZWNobwogCi0gICAgY2F0IDw8XF9BU0JPWAotIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKKyAgICAkYXNfZWNobyAiIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMKICMjIE91dHB1dCB2YXJpYWJsZXMuICMjCi0jIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIyIKICAgICBlY2hvCiAgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfdmFycwogICAgIGRvCkBAIC0yMzgyLDExICsyMzI2LDkgQEAKICAgICBlY2hvCiAKICAgICBpZiB0ZXN0IC1uICIkYWNfc3Vic3RfZmlsZXMiOyB0aGVuCi0gICAgICBjYXQgPDxcX0FTQk9YCi0jIyAtLS0tLS0tLS0tLS0tLS0tLS0tICMjCisgICAgICAkYXNfZWNobyAiIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwogIyMgRmlsZSBzdWJzdGl0dXRpb25zLiAjIwotIyMgLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotX0FTQk9YCisjIyAtLS0tLS0tLS0tLS0tLS0tLS0tICMjIgogICAgICAgZWNobwogICAgICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfZmlsZXMKICAgICAgIGRvCkBAIC0yNDAwLDExICsyMzQyLDkgQEAKICAgICBmaQogCiAgICAgaWYgdGVzdCAtcyBjb25mZGVmcy5oOyB0aGVuCi0gICAgICBjYXQgPDxcX0FTQk9YCi0jIyAtLS0tLS0tLS0tLSAjIworICAgICAgJGFzX2VjaG8gIiMjIC0tLS0tLS0tLS0tICMjCiAjIyBjb25mZGVmcy5oLiAjIwotIyMgLS0tLS0tLS0tLS0gIyMKLV9BU0JPWAorIyMgLS0tLS0tLS0tLS0gIyMiCiAgICAgICBlY2hvCiAgICAgICBjYXQgY29uZmRlZnMuaAogICAgICAgZWNobwpAQCAtMjQ1OSw3ICsyMzk5LDEyIEBACiBhY19zaXRlX2ZpbGUxPU5PTkUKIGFjX3NpdGVfZmlsZTI9Tk9ORQogaWYgdGVzdCAtbiAiJENPTkZJR19TSVRFIjsgdGhlbgotICBhY19zaXRlX2ZpbGUxPSRDT05GSUdfU0lURQorICAjIFdlIGRvIG5vdCB3YW50IGEgUEFUSCBzZWFyY2ggZm9yIGNvbmZpZy5zaXRlLgorICBjYXNlICRDT05GSUdfU0lURSBpbiAjKCgKKyAgICAtKikgIGFjX3NpdGVfZmlsZTE9Li8kQ09ORklHX1NJVEU7OworICAgICovKikgYWNfc2l0ZV9maWxlMT0kQ09ORklHX1NJVEU7OworICAgICopICAgYWNfc2l0ZV9maWxlMT0uLyRDT05GSUdfU0lURTs7CisgIGVzYWMKIGVsaWYgdGVzdCAieCRwcmVmaXgiICE9IHhOT05FOyB0aGVuCiAgIGFjX3NpdGVfZmlsZTE9JHByZWZpeC9zaGFyZS9jb25maWcuc2l0ZQogICBhY19zaXRlX2ZpbGUyPSRwcmVmaXgvZXRjL2NvbmZpZy5zaXRlCkBAIC0yNDc0LDcgKzI0MTksMTEgQEAKICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGxvYWRpbmcgc2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY1CiAkYXNfZWNobyAiJGFzX21lOiBsb2FkaW5nIHNpdGUgc2NyaXB0ICRhY19zaXRlX2ZpbGUiID4mNjt9CiAgICAgc2VkICdzL14vfCAvJyAiJGFjX3NpdGVfZmlsZSIgPiY1Ci0gICAgLiAiJGFjX3NpdGVfZmlsZSIKKyAgICAuICIkYWNfc2l0ZV9maWxlIiBcCisgICAgICB8fCB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KK2FzX2ZuX2Vycm9yICQ/ICJmYWlsZWQgdG8gbG9hZCBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQogICBmaQogZG9uZQogCkBAIC0yNTUwLDcgKzI0OTksNyBAQAogJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQogJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNoYW5nZXMgaW4gdGhlIGVudmlyb25tZW50IGNhbiBjb21wcm9taXNlIHRoZSBidWlsZCIgPiYyO30KLSAgYXNfZm5fZXJyb3IgInJ1biBcYG1ha2UgZGlzdGNsZWFuJyBhbmQvb3IgXGBybSAkY2FjaGVfZmlsZScgYW5kIHN0YXJ0IG92ZXIiICIkTElORU5PIiA1CisgIGFzX2ZuX2Vycm9yICQ/ICJydW4gXGBtYWtlIGRpc3RjbGVhbicgYW5kL29yIFxgcm0gJGNhY2hlX2ZpbGUnIGFuZCBzdGFydCBvdmVyIiAiJExJTkVOTyIgNQogZmkKICMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCiAjIyBNYWluIGJvZHkgb2Ygc2NyaXB0LiAjIwpAQCAtMjU2OCwxNiArMjUxNywyMiBAQAogCiBhY19hdXhfZGlyPQogZm9yIGFjX2RpciBpbiAiJHNyY2RpciIgIiRzcmNkaXIvLi4iICIkc3JjZGlyLy4uLy4uIjsgZG8KLSAgZm9yIGFjX3QgaW4gaW5zdGFsbC1zaCBpbnN0YWxsLnNoIHNodG9vbDsgZG8KLSAgICBpZiB0ZXN0IC1mICIkYWNfZGlyLyRhY190IjsgdGhlbgotICAgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0gICAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci8kYWNfdCAtYyIKLSAgICAgIGJyZWFrIDIKLSAgICBmaQotICBkb25lCisgIGlmIHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC1zaCI7IHRoZW4KKyAgICBhY19hdXhfZGlyPSRhY19kaXIKKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLXNoIC1jIgorICAgIGJyZWFrCisgIGVsaWYgdGVzdCAtZiAiJGFjX2Rpci9pbnN0YWxsLnNoIjsgdGhlbgorICAgIGFjX2F1eF9kaXI9JGFjX2RpcgorICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwuc2ggLWMiCisgICAgYnJlYWsKKyAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL3NodG9vbCI7IHRoZW4KKyAgICBhY19hdXhfZGlyPSRhY19kaXIKKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9zaHRvb2wgaW5zdGFsbCAtYyIKKyAgICBicmVhaworICBmaQogZG9uZQogaWYgdGVzdCAteiAiJGFjX2F1eF9kaXIiOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjYW5ub3QgZmluZCBpbnN0YWxsLXNoLCBpbnN0YWxsLnNoLCBvciBzaHRvb2wgaW4gXCIkc3JjZGlyXCIgXCIkc3JjZGlyLy4uXCIgXCIkc3JjZGlyLy4uLy4uXCIiICIkTElORU5PIiA1CisgIGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgZmluZCBpbnN0YWxsLXNoLCBpbnN0YWxsLnNoLCBvciBzaHRvb2wgaW4gXCIkc3JjZGlyXCIgXCIkc3JjZGlyLy4uXCIgXCIkc3JjZGlyLy4uLy4uXCIiICIkTElORU5PIiA1CiBmaQogCiAjIFRoZXNlIHRocmVlIHZhcmlhYmxlcyBhcmUgdW5kb2N1bWVudGVkIGFuZCB1bnN1cHBvcnRlZCwKQEAgLTI1OTEsMjcgKzI1NDYsMjcgQEAKIAogIyBNYWtlIHN1cmUgd2UgY2FuIHJ1biBjb25maWcuc3ViLgogJFNIRUxMICIkYWNfYXV4X2Rpci9jb25maWcuc3ViIiBzdW40ID4vZGV2L251bGwgMj4mMSB8fAotICBhc19mbl9lcnJvciAiY2Fubm90IHJ1biAkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgIiRMSU5FTk8iIDUKKyAgYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBydW4gJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICIkTElORU5PIiA1CiAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfYnVpbGQrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9idWlsZCs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGFjX2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcwogdGVzdCAieCRhY19idWlsZF9hbGlhcyIgPSB4ICYmCiAgIGFjX2J1aWxkX2FsaWFzPWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5ndWVzcyJgCiB0ZXN0ICJ4JGFjX2J1aWxkX2FsaWFzIiA9IHggJiYKLSAgYXNfZm5fZXJyb3IgImNhbm5vdCBndWVzcyBidWlsZCB0eXBlOyB5b3UgbXVzdCBzcGVjaWZ5IG9uZSIgIiRMSU5FTk8iIDUKKyAgYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBndWVzcyBidWlsZCB0eXBlOyB5b3UgbXVzdCBzcGVjaWZ5IG9uZSIgIiRMSU5FTk8iIDUKIGFjX2N2X2J1aWxkPWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICRhY19idWlsZF9hbGlhc2AgfHwKLSAgYXNfZm5fZXJyb3IgIiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViICRhY19idWlsZF9hbGlhcyBmYWlsZWQiICIkTElORU5PIiA1CisgIGFzX2ZuX2Vycm9yICQ/ICIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFpbGVkIiAiJExJTkVOTyIgNQogCiBmaQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1CiAkYXNfZWNobyAiJGFjX2N2X2J1aWxkIiA+JjY7IH0KIGNhc2UgJGFjX2N2X2J1aWxkIGluCiAqLSotKikgOzsKLSopIGFzX2ZuX2Vycm9yICJpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBidWlsZCIgIiRMSU5FTk8iIDU7OworKikgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGJ1aWxkIiAiJExJTkVOTyIgNTs7CiBlc2FjCiBidWlsZD0kYWNfY3ZfYnVpbGQKIGFjX3NhdmVfSUZTPSRJRlM7IElGUz0nLScKQEAgLTI2MjksMTQgKzI1ODQsMTQgQEAKIAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGhvc3Qgc3lzdGVtIHR5cGUuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfaG9zdCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X2hvc3QrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiID0geDsgdGhlbgogICBhY19jdl9ob3N0PSRhY19jdl9idWlsZAogZWxzZQogICBhY19jdl9ob3N0PWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICRob3N0X2FsaWFzYCB8fAotICAgIGFzX2ZuX2Vycm9yICIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQiICIkTElORU5PIiA1CisgICAgYXNfZm5fZXJyb3IgJD8gIiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViICRob3N0X2FsaWFzIGZhaWxlZCIgIiRMSU5FTk8iIDUKIGZpCiAKIGZpCkBAIC0yNjQ0LDcgKzI1OTksNyBAQAogJGFzX2VjaG8gIiRhY19jdl9ob3N0IiA+JjY7IH0KIGNhc2UgJGFjX2N2X2hvc3QgaW4KICotKi0qKSA7OwotKikgYXNfZm5fZXJyb3IgImludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIGhvc3QiICIkTElORU5PIiA1OzsKKyopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBob3N0IiAiJExJTkVOTyIgNTs7CiBlc2FjCiBob3N0PSRhY19jdl9ob3N0CiBhY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCkBAIC0yNjYyLDE0ICsyNjE3LDE0IEBACiAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgdGFyZ2V0IHN5c3RlbSB0eXBlIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIHRhcmdldCBzeXN0ZW0gdHlwZS4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl90YXJnZXQrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl90YXJnZXQrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0ICJ4JHRhcmdldF9hbGlhcyIgPSB4OyB0aGVuCiAgIGFjX2N2X3RhcmdldD0kYWNfY3ZfaG9zdAogZWxzZQogICBhY19jdl90YXJnZXQ9YCRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgJHRhcmdldF9hbGlhc2AgfHwKLSAgICBhc19mbl9lcnJvciAiJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIgJHRhcmdldF9hbGlhcyBmYWlsZWQiICIkTElORU5PIiA1CisgICAgYXNfZm5fZXJyb3IgJD8gIiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViICR0YXJnZXRfYWxpYXMgZmFpbGVkIiAiJExJTkVOTyIgNQogZmkKIAogZmkKQEAgLTI2NzcsNyArMjYzMiw3IEBACiAkYXNfZWNobyAiJGFjX2N2X3RhcmdldCIgPiY2OyB9CiBjYXNlICRhY19jdl90YXJnZXQgaW4KICotKi0qKSA7OwotKikgYXNfZm5fZXJyb3IgImludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIHRhcmdldCIgIiRMSU5FTk8iIDU7OworKikgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgdmFsdWUgb2YgY2Fub25pY2FsIHRhcmdldCIgIiRMSU5FTk8iIDU7OwogZXNhYwogdGFyZ2V0PSRhY19jdl90YXJnZXQKIGFjX3NhdmVfSUZTPSRJRlM7IElGUz0nLScKQEAgLTI3MDQsNiArMjY1OSwxMTAgQEAKIAogLiAke3NyY2Rpcn0vY29uZmlndXJlLmhvc3QKIAorCisgICAjIFskXUAgaXMgdW5zYWJsZSBpbiAyLjYwKyBidXQgZWFybGllciBhdXRvY29uZiBoYWQgbm8gYWNfY29uZmlndXJlX2FyZ3MKKyAgIGlmIHRlc3QgIiR7YWNfY29uZmlndXJlX2FyZ3Mrc2V0fSIgIT0gInNldCIgOyB0aGVuCisgICAgICBhY19jb25maWd1cmVfYXJncz0KKyAgICAgIGZvciBhY19hcmcgaW4gJHsxKyIkQCJ9OyBkbworICAgICAgICAgYWNfY29uZmlndXJlX2FyZ3M9IiRhY19jb25maWd1cmVfYXJncyAnJGFjX2FyZyciCisgICAgICBkb25lCisgICBmaQorCisjIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCithbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCisKKworYXhfZW5hYmxlX2J1aWxkZGlyPSIuIgorIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJ1aWxkZGlyIHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7ZW5hYmxlX2J1aWxkZGlyK3NldH0iID0gc2V0OyB0aGVuIDoKKyAgZW5hYmxldmFsPSRlbmFibGVfYnVpbGRkaXI7IGF4X2VuYWJsZV9idWlsZGRpcj0iJGVuYWJsZXZhbCIKK2Vsc2UKKyAgYXhfZW5hYmxlX2J1aWxkZGlyPSJhdXRvIgorZmkKKworaWYgdGVzdCAiLiRhY19zcmNkaXJfZGVmYXVsdGVkIiAhPSAiLm5vIiA7IHRoZW4KK2lmIHRlc3QgIi4kc3JjZGlyIiA9ICIuLiIgOyB0aGVuCisgIGlmIHRlc3QgLWYgY29uZmlnLnN0YXR1cyA7IHRoZW4KKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHRvcGxldmVsIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQuLi4gc2tpcHBpbmcgc3ViZGlyIGJ1aWxkIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IHRvcGxldmVsIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQuLi4gc2tpcHBpbmcgc3ViZGlyIGJ1aWxkIiA+JjY7fQorICBlbHNlCisgICAgdGVzdCAiLiRheF9lbmFibGVfYnVpbGRkaXIiID0gIi4iICAmJiBheF9lbmFibGVfYnVpbGRkaXI9Ii4iCisgICAgdGVzdCAiLiRheF9lbmFibGVfYnVpbGRkaXIiID0gIi5ubyIgICYmIGF4X2VuYWJsZV9idWlsZGRpcj0iLiIKKyAgICB0ZXN0ICIuJFRBUkdFVCIgPSAiLiIgJiYgVEFSR0VUPSIkdGFyZ2V0IgorICAgIHRlc3QgIi4kYXhfZW5hYmxlX2J1aWxkZGlyIiA9ICIuYXV0byIgJiYgYXhfZW5hYmxlX2J1aWxkZGlyPSIkVEFSR0VUIgorICAgIGlmIHRlc3QgIi4kYXhfZW5hYmxlX2J1aWxkZGlyIiAhPSAiLi4iIDsgdGhlbiAgICAjIHdlIGtub3cgd2hlcmUgdG8gZ28gYW5kCisgICAgICBhc19kaXI9JGF4X2VuYWJsZV9idWlsZGRpcjsgYXNfZm5fbWtkaXJfcAorICAgICAgZWNobyBfXy4kYXhfZW5hYmxlX2J1aWxkZGlyLl9fID4gJGF4X2VuYWJsZV9idWlsZGRpci9jb25mdGVzdC50bXAKKyAgICAgIGNkICRheF9lbmFibGVfYnVpbGRkaXIKKyAgICAgIGlmIGdyZXAgX18uJGF4X2VuYWJsZV9idWlsZGRpci5fXyBjb25mdGVzdC50bXAgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbCA7IHRoZW4KKyAgICAgICAgcm0gY29uZnRlc3QudG1wCisgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBjb250aW51ZSBjb25maWd1cmUgaW4gZGVmYXVsdCBidWlsZGRpciBcIi4vJGF4X2VuYWJsZV9idWlsZGRpclwiIiA+JjUKKyRhc19lY2hvICJjb250aW51ZSBjb25maWd1cmUgaW4gZGVmYXVsdCBidWlsZGRpciBcIi4vJGF4X2VuYWJsZV9idWlsZGRpclwiIiA+JjY7IH0KKyAgICAgIGVsc2UKKyAgICAgICAgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBjaGFuZ2UgdG8gZGVmYXVsdCBidWlsZGRpciBcIi4vJGF4X2VuYWJsZV9idWlsZGRpclwiIiAiJExJTkVOTyIgNQorICAgICAgZmkKKyAgICAgIHNyY2Rpcj1gZWNobyAiJGF4X2VuYWJsZV9idWlsZGRpciIgfAorICAgICAgICAgICAgICBzZWQgLWUgJ3MsXlwuLywsO3MsW14vXSQsJi8sO3MsW14vXSovLC4uLyxnO3MsWy9dJCwsOydgCisgICAgICAjIGdvaW5nIHRvIHJlc3RhcnQgZnJvbSBzdWJkaXJlY3RvcnkgbG9jYXRpb24KKyAgICAgIHRlc3QgLWYgJHNyY2Rpci9jb25maWcubG9nICAgJiYgbXYgJHNyY2Rpci9jb25maWcubG9nICAgLgorICAgICAgdGVzdCAtZiAkc3JjZGlyL2NvbmZkZWZzLmggICAmJiBtdiAkc3JjZGlyL2NvbmZkZWZzLmggICAuCisgICAgICB0ZXN0IC1mICRzcmNkaXIvY29uZnRlc3QubG9nICYmIG12ICRzcmNkaXIvY29uZnRlc3QubG9nIC4KKyAgICAgIHRlc3QgLWYgJHNyY2Rpci8kY2FjaGVfZmlsZSAgJiYgbXYgJHNyY2Rpci8kY2FjaGVfZmlsZSAgLgorICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IC4uLi5leGVjICRTSEVMTCAkc3JjZGlyLyQwIFwiLS1zcmNkaXI9JHNyY2RpclwiIFwiLS1lbmFibGUtYnVpbGRkaXI9JGF4X2VuYWJsZV9idWlsZGRpclwiICR7MStcIiRAXCJ9IiA+JjUKKyRhc19lY2hvICIuLi4uZXhlYyAkU0hFTEwgJHNyY2Rpci8kMCBcIi0tc3JjZGlyPSRzcmNkaXJcIiBcIi0tZW5hYmxlLWJ1aWxkZGlyPSRheF9lbmFibGVfYnVpbGRkaXJcIiAkezErXCIkQFwifSIgPiY2OyB9CisgICAgICBjYXNlICIkMCIgaW4gIyByZXN0YXJ0CisgICAgICAgL1xcKikgZXZhbCAkU0hFTEwgIickMCciICInLS1zcmNkaXI9JHNyY2RpciciICInLS1lbmFibGUtYnVpbGRkaXI9JGF4X2VuYWJsZV9idWlsZGRpciciICRhY19jb25maWd1cmVfYXJncyA7OworICAgICAgICopIGV2YWwgJFNIRUxMICInJHNyY2Rpci8kMCciICInLS1zcmNkaXI9JHNyY2RpciciICInLS1lbmFibGUtYnVpbGRkaXI9JGF4X2VuYWJsZV9idWlsZGRpciciICRhY19jb25maWd1cmVfYXJncyA7OworICAgICAgZXNhYyA7IGV4aXQgJD8KKyAgICBmaQorICBmaQorZmkgZmkKK3Rlc3QgIi4kYXhfZW5hYmxlX2J1aWxkZGlyIiA9ICIuYXV0byIgJiYgYXhfZW5hYmxlX2J1aWxkZGlyPSIuIgorIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJnc2VkIHNlZCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgZ3NlZCBzZWQ7IGFjX3dvcmQ9JDIKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9wYXRoX2F4X2VuYWJsZV9idWlsZGRpcl9zZWQrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBjYXNlICRheF9lbmFibGVfYnVpbGRkaXJfc2VkIGluCisgIFtcXC9dKiB8ID86W1xcL10qKQorICBhY19jdl9wYXRoX2F4X2VuYWJsZV9idWlsZGRpcl9zZWQ9IiRheF9lbmFibGVfYnVpbGRkaXJfc2VkIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKyAgOzsKKyAgKikKKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisgICAgYWNfY3ZfcGF0aF9heF9lbmFibGVfYnVpbGRkaXJfc2VkPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgorICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKKyAgZG9uZQorSUZTPSRhc19zYXZlX0lGUworCisgIHRlc3QgLXogIiRhY19jdl9wYXRoX2F4X2VuYWJsZV9idWlsZGRpcl9zZWQiICYmIGFjX2N2X3BhdGhfYXhfZW5hYmxlX2J1aWxkZGlyX3NlZD0ic2VkIgorICA7OworZXNhYworZmkKK2F4X2VuYWJsZV9idWlsZGRpcl9zZWQ9JGFjX2N2X3BhdGhfYXhfZW5hYmxlX2J1aWxkZGlyX3NlZAoraWYgdGVzdCAtbiAiJGF4X2VuYWJsZV9idWlsZGRpcl9zZWQiOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfZW5hYmxlX2J1aWxkZGlyX3NlZCIgPiY1CiskYXNfZWNobyAiJGF4X2VuYWJsZV9idWlsZGRpcl9zZWQiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisKKworYXhfZW5hYmxlX2J1aWxkZGlyX2F1eGRpcj0iJGFtX2F1eF9kaXIiCithY19jb25maWdfY29tbWFuZHM9IiRhY19jb25maWdfY29tbWFuZHMgYnVpbGRpciIKKworCiBhbV9fYXBpX3ZlcnNpb249JzEuMTEnCiAKICMgRmluZCBhIGdvb2QgaW5zdGFsbCBwcm9ncmFtLiAgV2UgcHJlZmVyIGEgQyBwcm9ncmFtIChmYXN0ZXIpLApAQCAtMjcyMyw3ICsyNzgyLDcgQEAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uICIgPiY2OyB9CiBpZiB0ZXN0IC16ICIkSU5TVEFMTCI7IHRoZW4KLWlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9pbnN0YWxsK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfcGF0aF9pbnN0YWxsKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpAQCAtMjgxMCwxMSArMjg2OSwxMSBAQAogJwogY2FzZSBgcHdkYCBpbgogICAqW1xcXCJcI1wkXCZcJ1xgJGFtX2xmXSopCi0gICAgYXNfZm5fZXJyb3IgInVuc2FmZSBhYnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9yeSBuYW1lIiAiJExJTkVOTyIgNTs7CisgICAgYXNfZm5fZXJyb3IgJD8gInVuc2FmZSBhYnNvbHV0ZSB3b3JraW5nIGRpcmVjdG9yeSBuYW1lIiAiJExJTkVOTyIgNTs7CiBlc2FjCiBjYXNlICRzcmNkaXIgaW4KICAgKltcXFwiXCNcJFwmXCdcYCRhbV9sZlwgXAldKikKLSAgICBhc19mbl9lcnJvciAidW5zYWZlIHNyY2RpciB2YWx1ZTogXGAkc3JjZGlyJyIgIiRMSU5FTk8iIDU7OworICAgIGFzX2ZuX2Vycm9yICQ/ICJ1bnNhZmUgc3JjZGlyIHZhbHVlOiBcYCRzcmNkaXInIiAiJExJTkVOTyIgNTs7CiBlc2FjCiAKICMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSBjdXJyZW50IHNoZWxsJ3MKQEAgLTI4MzYsNyArMjg5NSw3IEBACiAgICAgICAjIGlmLCBmb3IgaW5zdGFuY2UsIENPTkZJR19TSEVMTCBpcyBiYXNoIGFuZCBpdCBpbmhlcml0cyBhCiAgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRoaXMgaGFzIGFjdHVhbGx5CiAgICAgICAjIGhhcHBlbmVkLiAgU3VjaCBhIHN5c3RlbSBjb3VsZCBub3QgYmUgY29uc2lkZXJlZCAic2FuZSIuCi0gICAgICBhc19mbl9lcnJvciAibHMgLXQgYXBwZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgorICAgICAgYXNfZm5fZXJyb3IgJD8gImxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3VyZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KIGFsaWFzIGluIHlvdXIgZW52aXJvbm1lbnQiICIkTElORU5PIiA1CiAgICBmaQogCkBAIC0yODQ2LDcgKzI5MDUsNyBAQAogICAgIyBPay4KICAgIDoKIGVsc2UKLSAgIGFzX2ZuX2Vycm9yICJuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKKyAgIGFzX2ZuX2Vycm9yICQ/ICJuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxlcyEKIENoZWNrIHlvdXIgc3lzdGVtIGNsb2NrIiAiJExJTkVOTyIgNQogZmkKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQpAQCAtMjg2MSw5ICsyOTIwLDYgQEAKIGFjX3NjcmlwdD0ncy9bXFwkXS8mJi9nO3MvO3MseCx4LCQvLycKIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9YCRhc19lY2hvICIkcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSIgfCBzZWQgIiRhY19zY3JpcHQiYAogCi0jIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCi1hbV9hdXhfZGlyPWBjZCAkYWNfYXV4X2RpciAmJiBwd2RgCi0KIGlmIHRlc3QgeCIke01JU1NJTkcrc2V0fSIgIT0geHNldDsgdGhlbgogICBjYXNlICRhbV9hdXhfZGlyIGluCiAgICpcICogfCAqXAkqKQpAQCAtMjkwMCw3ICsyOTU2LDcgQEAKIHNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfU1RSSVArOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCkBAIC0yOTQwLDcgKzI5OTYsNyBAQAogc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9TVFJJUCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCkBAIC0yOTkzLDcgKzMwNDksNyBAQAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcC4uLiAiID4mNjsgfQogaWYgdGVzdCAteiAiJE1LRElSX1AiOyB0aGVuCi0gIGlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9ta2RpcitzZXR9IiA9IHNldDsgdGhlbiA6CisgIGlmICR7YWNfY3ZfcGF0aF9ta2Rpcis6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKQEAgLTMwNDQsNyArMzEwMCw3IEBACiBzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9wcm9nX0FXSytzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfQVdLKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJEFXSyI7IHRoZW4KQEAgLTMwODQsNyArMzE0MCw3IEBACiAkYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICR7TUFLRS1tYWtlfSBzZXRzIFwkKE1BS0UpLi4uICIgPiY2OyB9CiBzZXQgeCAke01BS0UtbWFrZX0KIGFjX21ha2U9YCRhc19lY2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMvW15hLXpBLVowLTlfXS9fL2cnYAotaWYgeyBhc192YXI9YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0OyBldmFsICJ0ZXN0IFwiXCR7JGFzX3ZhcitzZXR9XCIgPSBzZXQiOyB9OyB0aGVuIDoKK2lmIGV2YWwgXCR7YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFrZX1fc2V0Kzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgY2F0ID5jb25mdGVzdC5tYWtlIDw8XF9BQ0VPRgpAQCAtMzA5Miw3ICszMTQ4LDcgQEAKIGFsbDoKIAlAZWNobyAnQEBAJSUlPSQoTUFLRSk9QEBAJSUlJwogX0FDRU9GCi0jIEdOVSBtYWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5nLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KKyMgR05VIG1ha2Ugc29tZXRpbWVzIHByaW50cyAibWFrZVsxXTogRW50ZXJpbmcgLi4uIiwgd2hpY2ggd291bGQgY29uZnVzZSB1cy4KIGNhc2UgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsYCBpbgogICAqQEBAJSUlPT8qPUBAQCUlJSopCiAgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQ9eWVzOzsKQEAgLTMxMjYsNyArMzE4Miw3IEBACiAgIGFtX19pc3JjPScgLUkkKHNyY2RpciknCiAgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJlZAogICBpZiB0ZXN0IC1mICRzcmNkaXIvY29uZmlnLnN0YXR1czsgdGhlbgotICAgIGFzX2ZuX2Vycm9yICJzb3VyY2UgZGlyZWN0b3J5IGFscmVhZHkgY29uZmlndXJlZDsgcnVuIFwibWFrZSBkaXN0Y2xlYW5cIiB0aGVyZSBmaXJzdCIgIiRMSU5FTk8iIDUKKyAgICBhc19mbl9lcnJvciAkPyAic291cmNlIGRpcmVjdG9yeSBhbHJlYWR5IGNvbmZpZ3VyZWQ7IHJ1biBcIm1ha2UgZGlzdGNsZWFuXCIgdGhlcmUgZmlyc3QiICIkTElORU5PIiA1CiAgIGZpCiBmaQogCkBAIC0zMTQyLDcgKzMxOTgsNyBAQAogCiAjIERlZmluZSB0aGUgaWRlbnRpdHkgb2YgdGhlIHBhY2thZ2UuCiAgUEFDS0FHRT0nbGliZmZpJwotIFZFUlNJT049JzMuMC4xMHJjMCcKKyBWRVJTSU9OPSczLjAuMTEnCiAKIAogY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgpAQCAtMzE3MiwxMSArMzIyOCwxMSBAQAogCiAjIFdlIG5lZWQgYXdrIGZvciB0aGUgImNoZWNrIiB0YXJnZXQuICBUaGUgc3lzdGVtICJhd2siIGlzIGJhZCBvbgogIyBzb21lIHBsYXRmb3Jtcy4KLSMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KKyMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4gIFllcywgaXQncyBzdGlsbCB1c2VkCisjIGluIHRoZSB3aWxkIDotKCAgV2Ugc2hvdWxkIGZpbmQgYSBwcm9wZXIgd2F5IHRvIGRlcHJlY2F0ZSBpdCAuLi4KK0FNVEFSPSckJHtUQVItdGFyfScKIAotQU1UQVI9JHtBTVRBUi0iJHthbV9taXNzaW5nX3J1bn10YXIifQotCi1hbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKK2FtX190YXI9JyQke1RBUi10YXJ9IGNob2YgLSAiJCR0YXJkaXIiJyBhbV9fdW50YXI9JyQke1RBUi10YXJ9IHhmIC0nCiAKIAogCkBAIC0zMTg3LDkgKzMyNDMsMTIgQEAKICMgV2UgbXVzdCBmb3JjZSBDQyB0byAvbm90LyBiZSBwcmVjaW91cyB2YXJpYWJsZXM7IG90aGVyd2lzZQogIyB0aGUgd3JvbmcsIG5vbi1tdWx0aWxpYi1hZGp1c3RlZCB2YWx1ZSB3aWxsIGJlIHVzZWQgaW4gbXVsdGlsaWJzLgogIyBBcyBhIHNpZGUgZWZmZWN0LCB3ZSBoYXZlIHRvIHN1YnN0IENGTEFHUyBvdXJzZWx2ZXMuCisjIEFsc28gc2F2ZSBhbmQgcmVzdG9yZSBDRkxBR1MsIHNpbmNlIEFDX1BST0dfQ0Mgd2lsbCBjb21lIHVwIHdpdGgKKyMgZGVmYXVsdHMgb2YgaXRzIG93biBpZiBub25lIGFyZSBwcm92aWRlZC4KIAogCiAKK3NhdmVfQ0ZMQUdTPSRDRkxBR1MKIGFjX2V4dD1jCiBhY19jcHA9JyRDUFAgJENQUEZMQUdTJwogYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwpAQCAtMzIwMCw3ICszMjU5LDcgQEAKIHNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWdjYzsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX0NDKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgpAQCAtMzI0MCw3ICszMjk5LDcgQEAKIHNldCBkdW1teSBnY2M7IGFjX3dvcmQ9JDIKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X0NDK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9DQys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4KQEAgLTMyOTMsNyArMzM1Miw3IEBACiBzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1jYzsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX0NDKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgpAQCAtMzMzMyw3ICszMzkyLDcgQEAKIHNldCBkdW1teSBjYzsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX0NDKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgpAQCAtMzM5Miw3ICszNDUxLDcgQEAKIHNldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX0NDKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJENDIjsgdGhlbgpAQCAtMzQzNiw3ICszNDk1LDcgQEAKIHNldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQ0Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX2FjX2N0X0NDKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgpAQCAtMzQ5MCw4ICszNTQ5LDggQEAKIAogdGVzdCAteiAiJENDIiAmJiB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLWFzX2ZuX2Vycm9yICJubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgIiRMSU5FTk8iIDU7IH0KK2FzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQogCiAjIFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCiAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uIiA+JjUKQEAgLTM2MDUsOSArMzY2NCw4IEBACiAKIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQogJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQoteyBhc19mbl9zZXRfc3RhdHVzIDc3Ci1hc19mbl9lcnJvciAiQyBjb21waWxlciBjYW5ub3QgY3JlYXRlIGV4ZWN1dGFibGVzCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgIiRMSU5FTk8iIDU7IH07IH0KK2FzX2ZuX2Vycm9yIDc3ICJDIGNvbXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9CiBlbHNlCiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQogJGFzX2VjaG8gInllcyIgPiY2OyB9CkBAIC0zNjQ5LDggKzM3MDcsOCBAQAogZWxzZQogICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLWFzX2ZuX2Vycm9yICJjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2YgZXhlY3V0YWJsZXM6IGNhbm5vdCBjb21waWxlIGFuZCBsaW5rCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgIiRMSU5FTk8iIDU7IH0KK2FzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2YgZXhlY3V0YWJsZXM6IGNhbm5vdCBjb21waWxlIGFuZCBsaW5rCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQogZmkKIHJtIC1mIGNvbmZ0ZXN0IGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQpAQCAtMzcwNyw5ICszNzY1LDkgQEAKICAgICBlbHNlCiAJeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CiAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci1hc19mbl9lcnJvciAiY2Fubm90IHJ1biBDIGNvbXBpbGVkIHByb2dyYW1zLgorYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBydW4gQyBjb21waWxlZCBwcm9ncmFtcy4KIElmIHlvdSBtZWFudCB0byBjcm9zcyBjb21waWxlLCB1c2UgXGAtLWhvc3QnLgotU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iICIkTElORU5PIiA1OyB9CitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQogICAgIGZpCiAgIGZpCiBmaQpAQCAtMzcyMCw3ICszNzc4LDcgQEAKIGFjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X29iamV4dCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X29iamV4dCs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKQEAgLTM3NjAsOCArMzgxOCw4IEBACiAKIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQogJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotYXNfZm5fZXJyb3IgImNhbm5vdCBjb21wdXRlIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXM6IGNhbm5vdCBjb21waWxlCi1TZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzLiIgIiRMSU5FTk8iIDU7IH0KK2FzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2JqZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQorU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KIGZpCiBybSAtZiBjb25mdGVzdC4kYWNfY3Zfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKIGZpCkBAIC0zNzcxLDcgKzM4MjksNyBAQAogYWNfb2JqZXh0PSRPQkpFWFQKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNvbXBpbGVyIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlci4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9jX2NvbXBpbGVyX2dudStzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X2NfY29tcGlsZXJfZ251Kzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dApAQCAtMzgwOCw3ICszODY2LDcgQEAKIGFjX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDQyBhY2NlcHRzIC1nLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfZytzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfY2NfZys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGFjX3NhdmVfY193ZXJyb3JfZmxhZz0kYWNfY193ZXJyb3JfZmxhZwpAQCAtMzg4Niw3ICszOTQ0LDcgQEAKIGZpCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5IiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfY2NfYzg5K3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfcHJvZ19jY19jODkrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBhY19jdl9wcm9nX2NjX2M4OT1ubwpAQCAtNDAzMiw2ICs0MDkwLDcgQEAKIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgogICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgogICBBTURFUEJBQ0tTTEFTSD0nXCcKKyAgYW1fX25vZGVwPSdfbm8nCiBmaQogIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciICE9IHhubzsgdGhlbgogICBBTURFUF9UUlVFPQpAQCAtNDA0Nyw3ICs0MTA2LDcgQEAKIAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZStzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FtX2N2X0NDX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAteiAiJEFNREVQX1RSVUUiICYmIHRlc3QgLWYgIiRhbV9kZXBjb21wIjsgdGhlbgpAQCAtNDA1Niw2ICs0MTE1LDcgQEAKICAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKICAgIyBtYWtpbmcgYSBkdW1teSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAogICAjIGluIEQnLgorICBybSAtcmYgY29uZnRlc3QuZGlyCiAgIG1rZGlyIGNvbmZ0ZXN0LmRpcgogICAjIENvcHkgZGVwY29tcCB0byBzdWJkaXIgYmVjYXVzZSBvdGhlcndpc2Ugd2Ugd29uJ3QgZmluZCBpdCBpZiB3ZSdyZQogICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgpAQCAtNDExNSw3ICs0MTc1LDcgQEAKIAlicmVhawogICAgICAgZmkKICAgICAgIDs7Ci0gICAgbXN2aXN1YWxjcHAgfCBtc3ZjbXN5cykKKyAgICBtc3ZjNyB8IG1zdmM3bXN5cyB8IG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCiAgICAgICAjIFRoaXMgY29tcGlsZXIgd29uJ3QgZ3JvayBgLWMgLW8nLCBidXQgYWxzbywgdGhlIG1pbnVzbyB0ZXN0IGhhcwogICAgICAgIyBub3QgcnVuIHlldC4gIFRoZXNlIGRlcG1vZGVzIGFyZSBsYXRlIGVub3VnaCBpbiB0aGUgZ2FtZSwgYW5kCiAgICAgICAjIHNvIHdlYWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgpAQCAtNDE3MCw2ICs0MjMwLDcgQEAKIGZpCiAKIAorQ0ZMQUdTPSRzYXZlX0NGTEFHUwogCiAKIApAQCAtNDE4Niw3ICs0MjQ3LDcgQEAKIAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mICRkZXBjYy4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthbV9jdl9DQ0FTX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YW1fY3ZfQ0NBU19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KQEAgLTQxOTUsNiArNDI1Niw3IEBACiAgICMgaW5zdGFuY2UgaXQgd2FzIHJlcG9ydGVkIHRoYXQgb24gSFAtVVggdGhlIGdjYyB0ZXN0IHdpbGwgZW5kIHVwCiAgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKICAgIyBpbiBEJy4KKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgogICBta2RpciBjb25mdGVzdC5kaXIKICAgIyBDb3B5IGRlcGNvbXAgdG8gc3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKICAgIyB1c2luZyBhIHJlbGF0aXZlIGRpcmVjdG9yeS4KQEAgLTQyNTIsNyArNDMxNCw3IEBACiAJYnJlYWsKICAgICAgIGZpCiAgICAgICA7OwotICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMpCisgICAgbXN2YzcgfCBtc3ZjN21zeXMgfCBtc3Zpc3VhbGNwcCB8IG1zdmNtc3lzKQogICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKICAgICAgICMgbm90IHJ1biB5ZXQuICBUaGVzZSBkZXBtb2RlcyBhcmUgbGF0ZSBlbm91Z2ggaW4gdGhlIGdhbWUsIGFuZAogICAgICAgIyBzbyB3ZWFrIHRoYXQgdGhlaXIgZnVuY3Rpb25pbmcgc2hvdWxkIG5vdCBiZSBpbXBhY3RlZC4KQEAgLTQzMTYsNyArNDM3OCw3IEBACiBmaQogc2V0IGR1bW15ICRDQzsgYWNfY2M9YCRhc19lY2hvICIkMiIgfAogCQkgICAgICBzZWQgJ3MvW15hLXpBLVowLTlfXS9fL2c7cy9eWzAtOV0vXy8nYAotaWYgeyBhc192YXI9YWNfY3ZfcHJvZ19jY18ke2FjX2NjfV9jX287IGV2YWwgInRlc3QgXCJcJHskYXNfdmFyK3NldH1cIiA9IHNldCI7IH07IHRoZW4gOgoraWYgZXZhbCBcJHthY19jdl9wcm9nX2NjXyR7YWNfY2N9X2Nfbys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKQEAgLTQ0NDEsOCArNDUwMyw4IEBACiAKIAogCi1tYWNyb192ZXJzaW9uPScyLjIuNicKLW1hY3JvX3JldmlzaW9uPScxLjMwMTInCittYWNyb192ZXJzaW9uPScyLjQuMicKK21hY3JvX3JldmlzaW9uPScxLjMzMzcnCiAKIAogCkBAIC00NDU4LDkgKzQ1MjAsNzggQEAKIAogbHRtYWluPSIkYWNfYXV4X2Rpci9sdG1haW4uc2giCiAKKyMgQmFja3NsYXNoaWZ5IG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4KKyMgZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorc2VkX3F1b3RlX3N1YnN0PSdzL1woWyJgJFxcXVwpL1xcXDEvZycKKworIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCitkb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbImBcXF1cKS9cXFwxL2cnCisKKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaGVsbCB2YXJpYWJsZSBpbiBhCisjIGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcuCitkZWxheV92YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxcJC9nJworCisjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2luZ2xlIHF1b3RlLgorZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0PSdzLydcJycvJ1wnXFxcXFxcXCdcJycvZycKKworIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGF2b2lkIGFjY2lkZW50YWwgZ2xvYmJpbmcgaW4gZXZhbGVkIGV4cHJlc3Npb25zCitub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKKworRUNITz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKK0VDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITworRUNITz0kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPJEVDSE8KKworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gcHJpbnQgc3RyaW5ncyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcHJpbnQgc3RyaW5ncy4uLiAiID4mNjsgfQorIyBUZXN0IHByaW50IGZpcnN0LCBiZWNhdXNlIGl0IHdpbGwgYmUgYSBidWlsdGluIGlmIHByZXNlbnQuCitpZiB0ZXN0ICJYYCggcHJpbnQgLXIgLS0gLW4gKSAyPi9kZXYvbnVsbGAiID0gWC1uICYmIFwKKyAgIHRlc3QgIlhgcHJpbnQgLXIgLS0gJEVDSE8gMj4vZGV2L251bGxgIiA9ICJYJEVDSE8iOyB0aGVuCisgIEVDSE89J3ByaW50IC1yIC0tJworZWxpZiB0ZXN0ICJYYHByaW50ZiAlcyAkRUNITyAyPi9kZXYvbnVsbGAiID0gIlgkRUNITyI7IHRoZW4KKyAgRUNITz0ncHJpbnRmICVzXG4nCitlbHNlCisgICMgVXNlIHRoaXMgZnVuY3Rpb24gYXMgYSBmYWxsYmFjayB0aGF0IGFsd2F5cyB3b3Jrcy4KKyAgZnVuY19mYWxsYmFja19lY2hvICgpCisgIHsKKyAgICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgorJDEKK19MVEVDSE9fRU9GJworICB9CisgIEVDSE89J2Z1bmNfZmFsbGJhY2tfZWNobycKK2ZpCisKKyMgZnVuY19lY2hvX2FsbCBhcmcuLi4KKyMgSW52b2tlICRFQ0hPIHdpdGggYWxsIGFyZ3MsIHNwYWNlLXNlcGFyYXRlZC4KK2Z1bmNfZWNob19hbGwgKCkKK3sKKyAgICAkRUNITyAiIgorfQorCitjYXNlICIkRUNITyIgaW4KKyAgcHJpbnRmKikgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHByaW50ZiIgPiY1CiskYXNfZWNobyAicHJpbnRmIiA+JjY7IH0gOzsKKyAgcHJpbnQqKSB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogcHJpbnQgLXIiID4mNQorJGFzX2VjaG8gInByaW50IC1yIiA+JjY7IH0gOzsKKyAgKikgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IGNhdCIgPiY1CiskYXNfZWNobyAiY2F0IiA+JjY7IH0gOzsKK2VzYWMKKworCisKKworCisKKworCisKKworCisKKworCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9TRUQrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wYXRoX1NFRCs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgICAgICAgICAgICBhY19zY3JpcHQ9cy9hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYS9iYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmIvCkBAIC00NTE1LDcgKzQ2NDYsNyBAQAogICBkb25lCiBJRlM9JGFzX3NhdmVfSUZTCiAgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX1NFRCI7IHRoZW4KLSAgICBhc19mbl9lcnJvciAibm8gYWNjZXB0YWJsZSBzZWQgY291bGQgYmUgZm91bmQgaW4gXCRQQVRIIiAiJExJTkVOTyIgNQorICAgIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIHNlZCBjb3VsZCBiZSBmb3VuZCBpbiBcJFBBVEgiICIkTElORU5PIiA1CiAgIGZpCiBlbHNlCiAgIGFjX2N2X3BhdGhfU0VEPSRTRUQKQEAgLTQ1NDIsNyArNDY3Myw3IEBACiAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5kIC1lIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZS4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9wYXRoX0dSRVArc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wYXRoX0dSRVArOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC16ICIkR1JFUCI7IHRoZW4KQEAgLTQ1OTEsNyArNDcyMiw3IEBACiAgIGRvbmUKIElGUz0kYXNfc2F2ZV9JRlMKICAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfR1JFUCI7IHRoZW4KLSAgICBhc19mbl9lcnJvciAibm8gYWNjZXB0YWJsZSBncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgIiRMSU5FTk8iIDUKKyAgICBhc19mbl9lcnJvciAkPyAibm8gYWNjZXB0YWJsZSBncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgIiRMSU5FTk8iIDUKICAgZmkKIGVsc2UKICAgYWNfY3ZfcGF0aF9HUkVQPSRHUkVQCkBAIC00NjA1LDcgKzQ3MzYsNyBAQAogCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgZWdyZXAuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcGF0aF9FR1JFUCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3BhdGhfRUdSRVArOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiBlY2hvIGEgfCAkR1JFUCAtRSAnKGF8YiknID4vZGV2L251bGwgMj4mMQpAQCAtNDY1Nyw3ICs0Nzg4LDcgQEAKICAgZG9uZQogSUZTPSRhc19zYXZlX0lGUwogICBpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9FR1JFUCI7IHRoZW4KLSAgICBhc19mbl9lcnJvciAibm8gYWNjZXB0YWJsZSBlZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iICIkTElORU5PIiA1CisgICAgYXNfZm5fZXJyb3IgJD8gIm5vIGFjY2VwdGFibGUgZWdyZXAgY291bGQgYmUgZm91bmQgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiAiJExJTkVOTyIgNQogICBmaQogZWxzZQogICBhY19jdl9wYXRoX0VHUkVQPSRFR1JFUApAQCAtNDY3Miw3ICs0ODAzLDcgQEAKIAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZmdyZXAiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGZncmVwLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3BhdGhfRkdSRVArc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wYXRoX0ZHUkVQKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgZWNobyAnYWIqYycgfCAkR1JFUCAtRiAnYWIqYycgPi9kZXYvbnVsbCAyPiYxCkBAIC00NzI0LDcgKzQ4NTUsNyBAQAogICBkb25lCiBJRlM9JGFzX3NhdmVfSUZTCiAgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX0ZHUkVQIjsgdGhlbgotICAgIGFzX2ZuX2Vycm9yICJubyBhY2NlcHRhYmxlIGZncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQQVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgIiRMSU5FTk8iIDUKKyAgICBhc19mbl9lcnJvciAkPyAibm8gYWNjZXB0YWJsZSBmZ3JlcCBjb3VsZCBiZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iICIkTElORU5PIiA1CiAgIGZpCiBlbHNlCiAgIGFjX2N2X3BhdGhfRkdSRVA9JEZHUkVQCkBAIC00ODAzLDcgKzQ5MzQsNyBAQAogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBub24tR05VIGxkIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciBub24tR05VIGxkLi4uICIgPiY2OyB9CiBmaQotaWYgdGVzdCAiJHtsdF9jdl9wYXRoX0xEK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3ZfcGF0aF9MRCs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgLXogIiRMRCI7IHRoZW4KQEAgLTQ4NDAsMTAgKzQ5NzEsMTAgQEAKICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKICRhc19lY2hvICJubyIgPiY2OyB9CiBmaQotdGVzdCAteiAiJExEIiAmJiBhc19mbl9lcnJvciAibm8gYWNjZXB0YWJsZSBsZCBmb3VuZCBpbiBcJFBBVEgiICIkTElORU5PIiA1Cit0ZXN0IC16ICIkTEQiICYmIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwkUEFUSCIgIiRMSU5FTk8iIDUKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoJExEKSBpcyBHTlUgbGQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7bHRfY3ZfcHJvZ19nbnVfbGQrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHtsdF9jdl9wcm9nX2dudV9sZCs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgICMgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uIGhlcmUsIGJ1dCBhcHBhcmVudGx5IHNvbWUgR05VIGxkcyBvbmx5IGFjY2VwdCAtdi4KQEAgLTQ4NzAsNyArNTAwMSw3IEBACiAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEJTRC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKS4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsdF9jdl9wYXRoX05NK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3ZfcGF0aF9OTSs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgLW4gIiROTSI7IHRoZW4KQEAgLTQ5MjMsMTQgKzUwNTQsMTcgQEAKICAgTk09IiRsdF9jdl9wYXRoX05NIgogZWxzZQogICAjIERpZG4ndCBmaW5kIGFueSBCU0QgY29tcGF0aWJsZSBuYW1lIGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KLSAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotICBmb3IgYWNfcHJvZyBpbiAiZHVtcGJpbiAtc3ltYm9scyIgImxpbmsgLWR1bXAgLXN5bWJvbHMiCisgIGlmIHRlc3QgLW4gIiREVU1QQklOIjsgdGhlbiA6CisgICAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisgIGVsc2UKKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisgIGZvciBhY19wcm9nIGluIGR1bXBiaW4gImxpbmsgLWR1bXAiCiAgIGRvCiAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCiBzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9wcm9nX0RVTVBCSU4rc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX0RVTVBCSU4rOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkRFVNUEJJTiI7IHRoZW4KQEAgLTQ5NjgsMTMgKzUxMDIsMTMgQEAKIGZpCiBpZiB0ZXN0IC16ICIkRFVNUEJJTiI7IHRoZW4KICAgYWNfY3RfRFVNUEJJTj0kRFVNUEJJTgotICBmb3IgYWNfcHJvZyBpbiAiZHVtcGJpbiAtc3ltYm9scyIgImxpbmsgLWR1bXAgLXN5bWJvbHMiCisgIGZvciBhY19wcm9nIGluIGR1bXBiaW4gImxpbmsgLWR1bXAiCiBkbwogICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KIHNldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfRFVNUEJJTitzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfYWNfY3RfRFVNUEJJTis6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgLW4gIiRhY19jdF9EVU1QQklOIjsgdGhlbgpAQCAtNTAyMyw2ICs1MTU3LDE1IEBACiAgIGZpCiBmaQogCisgICAgY2FzZSBgJERVTVBCSU4gLXN5bWJvbHMgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KKyAgICAqQ09GRiopCisgICAgICBEVU1QQklOPSIkRFVNUEJJTiAtc3ltYm9scyIKKyAgICAgIDs7CisgICAgKikKKyAgICAgIERVTVBCSU49OgorICAgICAgOzsKKyAgICBlc2FjCisgIGZpCiAKICAgaWYgdGVzdCAiJERVTVBCSU4iICE9ICI6IjsgdGhlbgogICAgIE5NPSIkRFVNUEJJTiIKQEAgLTUwMzcsMTggKzUxODAsMTggQEAKIAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB0aGUgbmFtZSBsaXN0ZXIgKCROTSkgaW50ZXJmYWNlIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIHRoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2UuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7bHRfY3Zfbm1faW50ZXJmYWNlK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3Zfbm1faW50ZXJmYWNlKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJCU0Qgbm0iCiAgIGVjaG8gImludCBzb21lX3ZhcmlhYmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAotICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NTA0NTogJGFjX2NvbXBpbGVcIiIgPiY1KQorICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGFjX2NvbXBpbGVcIiIgPiY1KQogICAoZXZhbCAiJGFjX2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQogICBjYXQgY29uZnRlc3QuZXJyID4mNQotICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NTA0ODogJE5NIFxcXCJjb25mdGVzdC4kYWNfb2JqZXh0XFxcIlwiIiA+JjUpCisgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkTk0gXFxcImNvbmZ0ZXN0LiRhY19vYmpleHRcXFwiXCIiID4mNSkKICAgKGV2YWwgIiROTSBcImNvbmZ0ZXN0LiRhY19vYmpleHRcIiIgMj5jb25mdGVzdC5lcnIgPiBjb25mdGVzdC5vdXQpCiAgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gIChldmFsIGVjaG8gIlwiXCRhc19tZTo1MDUxOiBvdXRwdXRcIiIgPiY1KQorICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogb3V0cHV0XCIiID4mNSkKICAgY2F0IGNvbmZ0ZXN0Lm91dCA+JjUKICAgaWYgJEdSRVAgJ0V4dGVybmFsLipzb21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQgPiAvZGV2L251bGw7IHRoZW4KICAgICBsdF9jdl9ubV9pbnRlcmZhY2U9Ik1TIGR1bXBiaW4iCkBAIC01MDcyLDcgKzUyMTUsNyBAQAogIyBmaW5kIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2x0X2N2X3N5c19tYXhfY21kX2xlbitzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2x0X2N2X3N5c19tYXhfY21kX2xlbis6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgICAgaT0wCkBAIC01MTA1LDYgKzUyNDgsMTEgQEAKICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKICAgICA7OwogCisgIG1pbnQqKQorICAgICMgT24gTWlOVCB0aGlzIGNhbiB0YWtlIGEgbG9uZyB0aW1lIGFuZCBydW4gb3V0IG9mIG1lbW9yeS4KKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKyAgICA7OworCiAgIGFtaWdhb3MqKQogICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVyYWxseS4KICAgICAjIFNvIHdlIGp1c3QgcHVudCBhbmQgdXNlIGEgbWluaW11bSBsaW5lIGxlbmd0aCBvZiA4MTkyLgpAQCAtNTEzMCw2ICs1Mjc4LDExIEBACiAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAogICAgIDs7CiAKKyAgb3MyKikKKyAgICAjIFRoZSB0ZXN0IHRha2VzIGEgbG9uZyB0aW1lIG9uIE9TLzIuCisgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTIKKyAgICA7OworCiAgIG9zZiopCiAgICAgIyBEci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmljIHJ1bm5pbmcgY29uZmlndXJlCiAgICAgIyBkdWUgdG8gdGhpcyB0ZXN0IHdoZW4gZXhlY19kaXNhYmxlX2FyZ19saW1pdCBpcyAxIG9uIFRydTY0LiBJdCBpcyBub3QKQEAgLTUxNjksOCArNTMyMiw4IEBACiAgICAgICAjIElmIHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQtaW4sIHdlJ2xsIHByb2JhYmx5IGVuZCB1cCBjb21wdXRpbmcgYQogICAgICAgIyBtYXhpbXVtIGxlbmd0aCB0aGF0IGlzIG9ubHkgaGFsZiBvZiB0aGUgYWN0dWFsIG1heGltdW0gbGVuZ3RoLCBidXQKICAgICAgICMgd2UgY2FuJ3QgdGVsbC4KLSAgICAgIHdoaWxlIHsgdGVzdCAiWCJgJFNIRUxMICQwIC0tZmFsbGJhY2stZWNobyAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9udWxsYCBcCi0JICAgICAgICAgPSAiWFgkdGVzdHN0cmluZyR0ZXN0c3RyaW5nIjsgfSA+L2Rldi9udWxsIDI+JjEgJiYKKyAgICAgIHdoaWxlIHsgdGVzdCAiWCJgZW52IGVjaG8gIiR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciIDI+L2Rldi9udWxsYCBcCisJICAgICAgICAgPSAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgogCSAgICAgIHRlc3QgJGkgIT0gMTcgIyAxLzIgTUIgc2hvdWxkIGJlIGVub3VnaAogICAgICAgZG8KICAgICAgICAgaT1gZXhwciAkaSArIDFgCkBAIC01MjEyLDggKzUzNjUsOCBAQAogIyBUcnkgc29tZSBYU0kgZmVhdHVyZXMKIHhzaV9zaGVsbD1ubwogKCBfbHRfZHVtbXk9ImEvYi9jIgotICB0ZXN0ICIke19sdF9kdW1teSMjKi99LCR7X2x0X2R1bW15JS8qfSwiJHtfbHRfZHVtbXklIiRfbHRfZHVtbXkifSwgXAotICAgICAgPSBjLGEvYiwsIFwKKyAgdGVzdCAiJHtfbHRfZHVtbXkjIyovfSwke19sdF9kdW1teSUvKn0sJHtfbHRfZHVtbXkjPz99IiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0sIFwKKyAgICAgID0gYyxhL2IsYi9jLCBcCiAgICAgJiYgZXZhbCAndGVzdCAkKCggMSArIDEgKSkgLWVxIDIgXAogICAgICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1lcSA1JyApID4vZGV2L251bGwgMj4mMSBcCiAgICYmIHhzaV9zaGVsbD15ZXMKQEAgLTUyNjIsOSArNTQxNSw4MyBAQAogCiAKIAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gY29udmVydCAkYnVpbGQgZmlsZSBuYW1lcyB0byAkaG9zdCBmb3JtYXQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgJGJ1aWxkIGZpbGUgbmFtZXMgdG8gJGhvc3QgZm9ybWF0Li4uICIgPiY2OyB9CitpZiAke2x0X2N2X3RvX2hvc3RfZmlsZV9jbWQrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBjYXNlICRob3N0IGluCisgICotKi1taW5ndyogKQorICAgIGNhc2UgJGJ1aWxkIGluCisgICAgICAqLSotbWluZ3cqICkgIyBhY3R1YWxseSBtc3lzCisgICAgICAgIGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKyAgICAgICAgOzsKKyAgICAgICotKi1jeWd3aW4qICkKKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9jeWd3aW5fdG9fdzMyCisgICAgICAgIDs7CisgICAgICAqICkgIyBvdGhlcndpc2UsIGFzc3VtZSAqbml4CisgICAgICAgIGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbml4X3RvX3czMgorICAgICAgICA7OworICAgIGVzYWMKKyAgICA7OworICAqLSotY3lnd2luKiApCisgICAgY2FzZSAkYnVpbGQgaW4KKyAgICAgICotKi1taW5ndyogKSAjIGFjdHVhbGx5IG1zeXMKKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX2N5Z3dpbgorICAgICAgICA7OworICAgICAgKi0qLWN5Z3dpbiogKQorICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3AKKyAgICAgICAgOzsKKyAgICAgICogKSAjIG90aGVyd2lzZSwgYXNzdW1lICpuaXgKKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fY3lnd2luCisgICAgICAgIDs7CisgICAgZXNhYworICAgIDs7CisgICogKSAjIHVuaGFuZGxlZCBob3N0cyAoYW5kICJub3JtYWwiIG5hdGl2ZSBidWlsZHMpCisgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9ub29wCisgICAgOzsKK2VzYWMKKworZmkKKwordG9faG9zdF9maWxlX2NtZD0kbHRfY3ZfdG9faG9zdF9maWxlX2NtZAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl90b19ob3N0X2ZpbGVfY21kIiA+JjUKKyRhc19lY2hvICIkbHRfY3ZfdG9faG9zdF9maWxlX2NtZCIgPiY2OyB9CisKKworCisKKworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gY29udmVydCAkYnVpbGQgZmlsZSBuYW1lcyB0byB0b29sY2hhaW4gZm9ybWF0IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBjb252ZXJ0ICRidWlsZCBmaWxlIG5hbWVzIHRvIHRvb2xjaGFpbiBmb3JtYXQuLi4gIiA+JjY7IH0KK2lmICR7bHRfY3ZfdG9fdG9vbF9maWxlX2NtZCs6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgICNhc3N1bWUgb3JkaW5hcnkgY3Jvc3MgdG9vbHMsIG9yIG5hdGl2ZSBidWlsZC4KK2x0X2N2X3RvX3Rvb2xfZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbm9vcAorY2FzZSAkaG9zdCBpbgorICAqLSotbWluZ3cqICkKKyAgICBjYXNlICRidWlsZCBpbgorICAgICAgKi0qLW1pbmd3KiApICMgYWN0dWFsbHkgbXN5cworICAgICAgICBsdF9jdl90b190b29sX2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCisgICAgICAgIDs7CisgICAgZXNhYworICAgIDs7Citlc2FjCisKK2ZpCisKK3RvX3Rvb2xfZmlsZV9jbWQ9JGx0X2N2X3RvX3Rvb2xfZmlsZV9jbWQKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfdG9fdG9vbF9maWxlX2NtZCIgPiY1CiskYXNfZWNobyAiJGx0X2N2X3RvX3Rvb2xfZmlsZV9jbWQiID4mNjsgfQorCisKKworCisKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRMRCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlcyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJExEIG9wdGlvbiB0byByZWxvYWQgb2JqZWN0IGZpbGVzLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2x0X2N2X2xkX3JlbG9hZF9mbGFnK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3ZfbGRfcmVsb2FkX2ZsYWcrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBsdF9jdl9sZF9yZWxvYWRfZmxhZz0nLXInCkBAIC01Mjc4LDYgKzU1MDUsMTEgQEAKIGVzYWMKIHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKIGNhc2UgJGhvc3Rfb3MgaW4KKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsgdGhlbgorICAgICAgcmVsb2FkX2NtZHM9ZmFsc2UKKyAgICBmaQorICAgIDs7CiAgIGRhcndpbiopCiAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAgICAgIHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKQEAgLTUzMDAsNyArNTUzMiw3IEBACiBzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1vYmpkdW1wOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19PQkpEVU1QK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfcHJvZ19PQkpEVU1QKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJE9CSkRVTVAiOyB0aGVuCkBAIC01MzQwLDcgKzU1NzIsNyBAQAogc2V0IGR1bW15IG9iamR1bXA7IGFjX3dvcmQ9JDIKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9wcm9nX2FjX2N0X09CSkRVTVArc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX2FjX2N0X09CSkRVTVArOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkYWNfY3RfT0JKRFVNUCI7IHRoZW4KQEAgLTUzOTksNyArNTYzMSw3IEBACiAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byByZWNvZ25pemUgZGVwZW5kZW50IGxpYnJhcmllcy4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCkBAIC01NDQxLDE2ICs1NjczLDE4IEBACiAgICMgQmFzZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKICAgIyBmdW5jX3dpbjMyX2xpYmlkIHNoZWxsIGZ1bmN0aW9uLCBzbyB1c2UgYSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcsCiAgICMgdW5sZXNzIHdlIGZpbmQgJ2ZpbGUnLCBmb3IgZXhhbXBsZSBiZWNhdXNlIHdlIGFyZSBjcm9zcy1jb21waWxpbmcuCi0gIGlmICggZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICMgZnVuY193aW4zMl9saWJpZCBhc3N1bWVzIEJTRCBubSwgc28gZGlzYWxsb3cgaXQgaWYgdXNpbmcgTVMgZHVtcGJpbi4KKyAgaWYgKCB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJCU0Qgbm0iICYmIGZpbGUgLyApID4vZGV2L251bGwgMj4mMTsgdGhlbgogICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIF54ODYgYXJjaGl2ZSBpbXBvcnR8Xng4NiBETEwnCiAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGliaWQnCiAgIGVsc2UKLSAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCBwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpPycKKyAgICAjIEtlZXAgdGhpcyBwYXR0ZXJuIGluIHN5bmMgd2l0aCB0aGUgb25lIGluIGZ1bmNfd2luMzJfbGliaWQuCisgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgKHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/fHBlLWFybS13aW5jZXxwZS14ODYtNjQpJwogICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKICAgZmkKICAgOzsKIAotY2VnY2MpCitjZWdjYyopCiAgICMgdXNlIHRoZSB3ZWFrZXIgdGVzdCBiYXNlZCBvbiAnb2JqZHVtcCcuIFNlZSBtaW5ndyouCiAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlLWFybS0uKmxpdHRsZSguKmFyY2hpdGVjdHVyZTogYXJtKT8nCiAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicKQEAgLTU0ODAsNiArNTcxNCwxMCBAQAogICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAogICA7OwogCitoYWlrdSopCisgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCisgIDs7CisKIGhwdXgxMC4yMCogfCBocHV4MTEqKQogICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCiAgIGNhc2UgJGhvc3RfY3B1IGluCkBAIC01NDg4LDExICs1NzI2LDExIEBACiAgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KICAgICA7OwogICBocHBhKjY0KikKLSAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gUEEtUklTQyBbMC05XS5bMC05XScKKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEZbIC1dWzAtOV1bMC05XSkoLWJpdCk/KCBbTE1dU0IpPyBzaGFyZWQgb2JqZWN0KCBmaWxlKT9bLCAtXSogUEEtUklTQyBbMC05XVwuWzAtOV0nCiAgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCiAgICAgOzsKICAgKikKLSAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxQQS1SSVNDWzAtOV0uWzAtOV0pIHNoYXJlZCBsaWJyYXJ5JworICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfFBBLVJJU0NbMC05XVwuWzAtOV0pIHNoYXJlZCBsaWJyYXJ5JwogICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYmMuc2wKICAgICA7OwogICBlc2FjCkBAIC01NTEzLDEyICs1NzUxLDEyIEBACiAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCiAgIDs7CiAKLSMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KLWxpbnV4KiB8IGsqYnNkKi1nbnUpCisjIFRoaXMgbXVzdCBiZSBnbGliYy9FTEYuCitsaW51eCogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCiAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCiAgIDs7CiAKLW5ldGJzZCopCituZXRic2QqIHwgbmV0YnNkZWxmKi1nbnUpCiAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhlbgogICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvXC5bMC05XStcLlswLTldK3xfcGljXC5hKSQnCiAgIGVsc2UKQEAgLTU1OTUsNiArNTgzMywyMSBAQAogZmkKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QiID4mNQogJGFzX2VjaG8gIiRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZCIgPiY2OyB9CisKK2ZpbGVfbWFnaWNfZ2xvYj0KK3dhbnRfbm9jYXNlZ2xvYj1ubworaWYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRoZW4KKyAgY2FzZSAkaG9zdF9vcyBpbgorICBtaW5ndyogfCBwdzMyKikKKyAgICBpZiAoIHNob3B0IHwgZ3JlcCBub2Nhc2VnbG9iICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICB3YW50X25vY2FzZWdsb2I9eWVzCisgICAgZWxzZQorICAgICAgZmlsZV9tYWdpY19nbG9iPWBlY2hvIGFBYkJjQ2REZUVmRmdHaEhpSWpKa0tsTG1Nbk5vT3BQcVFyUnNTdFR1VXZWd1d4WHlZelogfCAkU0VEIC1lICJzL1woLi5cKS9zXC9bXDFdXC9bXDFdXC9nOy9nImAKKyAgICBmaQorICAgIDs7CisgIGVzYWMKK2ZpCisKIGZpbGVfbWFnaWNfY21kPSRsdF9jdl9maWxlX21hZ2ljX2NtZAogZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kCiB0ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxpYnNfY2hlY2tfbWV0aG9kPXVua25vd24KQEAgLTU2MTAsMTIgKzU4NjMsMTY2IEBACiAKIAogCisKKworCisKKworCisKKworCisKIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWFyIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWFyOyBhY193b3JkPSQyCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1kbGx0b29sIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWRsbHRvb2w7IGFjX3dvcmQ9JDIKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9wcm9nX0FSK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfcHJvZ19ETExUT09MKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJERMTFRPT0wiOyB0aGVuCisgIGFjX2N2X3Byb2dfRExMVE9PTD0iJERMTFRPT0wiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisgICAgYWNfY3ZfcHJvZ19ETExUT09MPSIke2FjX3Rvb2xfcHJlZml4fWRsbHRvb2wiCisgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorICBkb25lCitJRlM9JGFzX3NhdmVfSUZTCisKK2ZpCitmaQorRExMVE9PTD0kYWNfY3ZfcHJvZ19ETExUT09MCitpZiB0ZXN0IC1uICIkRExMVE9PTCI7IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRETExUT09MIiA+JjUKKyRhc19lY2hvICIkRExMVE9PTCIgPiY2OyB9CitlbHNlCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiskYXNfZWNobyAibm8iID4mNjsgfQorZmkKKworCitmaQoraWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfRExMVE9PTCI7IHRoZW4KKyAgYWNfY3RfRExMVE9PTD0kRExMVE9PTAorICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRsbHRvb2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15IGRsbHRvb2w7IGFjX3dvcmQ9JDIKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9wcm9nX2FjX2N0X0RMTFRPT0wrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBpZiB0ZXN0IC1uICIkYWNfY3RfRExMVE9PTCI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19hY19jdF9ETExUT09MPSIkYWNfY3RfRExMVE9PTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCitlbHNlCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKyAgICBhY19jdl9wcm9nX2FjX2N0X0RMTFRPT0w9ImRsbHRvb2wiCisgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorICBkb25lCitJRlM9JGFzX3NhdmVfSUZTCisKK2ZpCitmaQorYWNfY3RfRExMVE9PTD0kYWNfY3ZfcHJvZ19hY19jdF9ETExUT09MCitpZiB0ZXN0IC1uICIkYWNfY3RfRExMVE9PTCI7IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9ETExUT09MIiA+JjUKKyRhc19lY2hvICIkYWNfY3RfRExMVE9PTCIgPiY2OyB9CitlbHNlCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiskYXNfZWNobyAibm8iID4mNjsgfQorZmkKKworICBpZiB0ZXN0ICJ4JGFjX2N0X0RMTFRPT0wiID0geDsgdGhlbgorICAgIERMTFRPT0w9ImZhbHNlIgorICBlbHNlCisgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgoreWVzOikKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KK2FjX3Rvb2xfd2FybmVkPXllcyA7OworZXNhYworICAgIERMTFRPT0w9JGFjX2N0X0RMTFRPT0wKKyAgZmkKK2Vsc2UKKyAgRExMVE9PTD0iJGFjX2N2X3Byb2dfRExMVE9PTCIKK2ZpCisKK3Rlc3QgLXogIiRETExUT09MIiAmJiBETExUT09MPWRsbHRvb2wKKworCisKKworCisKKworCisKKworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gYXNzb2NpYXRlIHJ1bnRpbWUgYW5kIGxpbmsgbGlicmFyaWVzIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBhc3NvY2lhdGUgcnVudGltZSBhbmQgbGluayBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KK2lmICR7bHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBsdF9jdl9zaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD0ndW5rbm93bicKKworY2FzZSAkaG9zdF9vcyBpbgorY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQorICAjIHR3byBkaWZmZXJlbnQgc2hlbGwgZnVuY3Rpb25zIGRlZmluZWQgaW4gbHRtYWluLnNoCisgICMgZGVjaWRlIHdoaWNoIHRvIHVzZSBiYXNlZCBvbiBjYXBhYmlsaXRpZXMgb2YgJERMTFRPT0wKKyAgY2FzZSBgJERMTFRPT0wgLS1oZWxwIDI+JjFgIGluCisgICotLWlkZW50aWZ5LXN0cmljdCopCisgICAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9ZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliCisgICAgOzsKKyAgKikKKyAgICBsdF9jdl9zaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD1mdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2sKKyAgICA7OworICBlc2FjCisgIDs7CisqKQorICAjIGZhbGxiYWNrOiBhc3N1bWUgbGlua2xpYiBJUyBzaGFyZWRsaWIKKyAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9IiRFQ0hPIgorICA7OworZXNhYworCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9zaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZCIgPiY1CiskYXNfZWNobyAiJGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kIiA+JjY7IH0KK3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSRsdF9jdl9zaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZAordGVzdCAteiAiJHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kIiAmJiBzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD0kRUNITworCisKKworCisKKworCisKK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgZm9yIGFjX3Byb2cgaW4gYXIKKyAgZG8KKyAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY190b29sX3ByZWZpeCRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CitpZiAke2FjX2N2X3Byb2dfQVIrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkQVIiOyB0aGVuCkBAIC01NjI4LDcgKzYwMzUsNyBAQAogICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0gICAgYWNfY3ZfcHJvZ19BUj0iJHthY190b29sX3ByZWZpeH1hciIKKyAgICBhY19jdl9wcm9nX0FSPSIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIKICAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgICBicmVhayAyCiAgIGZpCkBAIC01NjQ4LDE0ICs2MDU1LDE4IEBACiBmaQogCiAKKyAgICB0ZXN0IC1uICIkQVIiICYmIGJyZWFrCisgIGRvbmUKIGZpCi1pZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19BUiI7IHRoZW4KK2lmIHRlc3QgLXogIiRBUiI7IHRoZW4KICAgYWNfY3RfQVI9JEFSCi0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiYXIiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotc2V0IGR1bW15IGFyOyBhY193b3JkPSQyCisgIGZvciBhY19wcm9nIGluIGFyCitkbworICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfQVIrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX2FjX2N0X0FSKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJGFjX2N0X0FSIjsgdGhlbgpAQCAtNTY2OCw3ICs2MDc5LDcgQEAKICAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KICAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotICAgIGFjX2N2X3Byb2dfYWNfY3RfQVI9ImFyIgorICAgIGFjX2N2X3Byb2dfYWNfY3RfQVI9IiRhY19wcm9nIgogICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgIGJyZWFrIDIKICAgZmkKQEAgLTU2ODcsNiArNjA5OCwxMCBAQAogJGFzX2VjaG8gIm5vIiA+JjY7IH0KIGZpCiAKKworICB0ZXN0IC1uICIkYWNfY3RfQVIiICYmIGJyZWFrCitkb25lCisKICAgaWYgdGVzdCAieCRhY19jdF9BUiIgPSB4OyB0aGVuCiAgICAgQVI9ImZhbHNlIgogICBlbHNlCkBAIC01Njk4LDEyICs2MTEzLDEwIEBACiBlc2FjCiAgICAgQVI9JGFjX2N0X0FSCiAgIGZpCi1lbHNlCi0gIEFSPSIkYWNfY3ZfcHJvZ19BUiIKIGZpCiAKLXRlc3QgLXogIiRBUiIgJiYgQVI9YXIKLXRlc3QgLXogIiRBUl9GTEFHUyIgJiYgQVJfRkxBR1M9Y3J1Cis6ICR7QVI9YXJ9Cis6ICR7QVJfRkxBR1M9Y3J1fQogCiAKIApAQCAtNTcxNSwxMiArNjEyOCw3MCBAQAogCiAKIAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgYXJjaGl2ZXIgQEZJTEUgc3VwcG9ydCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgYXJjaGl2ZXIgQEZJTEUgc3VwcG9ydC4uLiAiID4mNjsgfQoraWYgJHtsdF9jdl9hcl9hdF9maWxlKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgbHRfY3ZfYXJfYXRfZmlsZT1ubworICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisgIGVjaG8gY29uZnRlc3QuJGFjX29iamV4dCA+IGNvbmZ0ZXN0LmxzdAorICAgICAgbHRfYXJfdHJ5PSckQVIgJEFSX0ZMQUdTIGxpYmNvbmZ0ZXN0LmEgQGNvbmZ0ZXN0LmxzdCA+JjUnCisgICAgICB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkbHRfYXJfdHJ5XCIiOyB9ID4mNQorICAoZXZhbCAkbHRfYXJfdHJ5KSAyPiY1CisgIGFjX3N0YXR1cz0kPworICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfQorICAgICAgaWYgdGVzdCAiJGFjX3N0YXR1cyIgLWVxIDA7IHRoZW4KKwkjIEVuc3VyZSB0aGUgYXJjaGl2ZXIgZmFpbHMgdXBvbiBib2d1cyBmaWxlIG5hbWVzLgorCXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgbGliY29uZnRlc3QuYQorCXsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRsdF9hcl90cnlcIiI7IH0gPiY1CisgIChldmFsICRsdF9hcl90cnkpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9CisJaWYgdGVzdCAiJGFjX3N0YXR1cyIgLW5lIDA7IHRoZW4KKyAgICAgICAgICBsdF9jdl9hcl9hdF9maWxlPUAKKyAgICAgICAgZmkKKyAgICAgIGZpCisgICAgICBybSAtZiBjb25mdGVzdC4qIGxpYmNvbmZ0ZXN0LmEKKworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9hcl9hdF9maWxlIiA+JjUKKyRhc19lY2hvICIkbHRfY3ZfYXJfYXRfZmlsZSIgPiY2OyB9CisKK2lmIHRlc3QgIngkbHRfY3ZfYXJfYXRfZmlsZSIgPSB4bm87IHRoZW4KKyAgYXJjaGl2ZXJfbGlzdF9zcGVjPQorZWxzZQorICBhcmNoaXZlcl9saXN0X3NwZWM9JGx0X2N2X2FyX2F0X2ZpbGUKK2ZpCisKKworCisKKworCisKIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KIHNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19TVFJJUCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfU1RSSVArOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkU1RSSVAiOyB0aGVuCkBAIC01NzYwLDcgKzYyMzEsNyBAQAogc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9TVFJJUCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCkBAIC01ODE5LDcgKzYyOTAsNyBAQAogc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9cmFubGliOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19SQU5MSUIrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX1JBTkxJQis6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCkBAIC01ODU5LDcgKzYzMzAsNyBAQAogc2V0IGR1bW15IHJhbmxpYjsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfUkFOTElCK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9SQU5MSUIrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgpAQCAtNTkyMSwxNSArNjM5MiwyNyBAQAogaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KICAgY2FzZSAkaG9zdF9vcyBpbgogICBvcGVuYnNkKikKLSAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIC10IFwkb2xkbGliIgorICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgLXQgXCR0b29sX29sZGxpYiIKICAgICA7OwogICAqKQotICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisgICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiBcJHRvb2xfb2xkbGliIgogICAgIDs7CiAgIGVzYWMKLSAgb2xkX2FyY2hpdmVfY21kcz0iJG9sZF9hcmNoaXZlX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCisgIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkdG9vbF9vbGRsaWIiCiBmaQogCitjYXNlICRob3N0X29zIGluCisgIGRhcndpbiopCisgICAgbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uPXllcyA7OworICAqKQorICAgIGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj1ubyA7OworZXNhYworCisKKworCisKKwogCiAKIApAQCAtNTk3Niw3ICs2NDU5LDcgQEAKICMgQ2hlY2sgZm9yIGNvbW1hbmQgdG8gZ3JhYiB0aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9sIGZyb20gbm0uCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3QiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgY29tbWFuZCB0byBwYXJzZSAkTk0gb3V0cHV0IGZyb20gJGNvbXBpbGVyIG9iamVjdC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAKQEAgLTYwMzcsOCArNjUyMCw4IEBACiBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQvZXh0ZXJuIGludCBcMSgpOy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgogCiAjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQgc3ltYm9sIGxpbmUgaW50byBzeW1ib2wgbmFtZSBhbmQgc3ltYm9sIGFkZHJlc3MKLWx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCi1sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwobGliW14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcImxpYlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpWyBdKiQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCitsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpWyBdKiQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwobGliW14gXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcImxpYlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKIAogIyBIYW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCiBvcHRfY3I9CkBAIC02MDYyLDYgKzY1NDUsNyBAQAogICAgICMgd2hpY2ggc3RhcnQgd2l0aCBAIG9yID8uCiAgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0iJEFXSyAnIlwKICIgICAgIHtsYXN0X3NlY3Rpb249c2VjdGlvbjsgc2VjdGlvbj1cJCAzfTsiXAorIiAgICAgL15DT0ZGIFNZTUJPTCBUQUJMRS97Zm9yKGkgaW4gaGlkZSkgZGVsZXRlIGhpZGVbaV19OyJcCiAiICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBhbnkpL3toaWRlW2xhc3Rfc2VjdGlvbl09MX07IlwKICIgICAgIFwkIDAhfi9FeHRlcm5hbCAqXHwve25leHR9OyJcCiAiICAgICAvIDArIFVOREVGIC97bmV4dH07IC8gVU5ERUYgXChbXnxdXCkqKCkve25leHR9OyJcCkBAIC02MDc0LDYgKzY1NTgsNyBAQAogICBlbHNlCiAgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1lICdzL14uKlsJIF1cKCRzeW1jb2RlJHN5bWNvZGUqXClbCSBdWwkgXSokYWNfc3ltcHJmeCRzeW1wYXQkb3B0X2NyJC8kc3lteGZybS9wJyIKICAgZmkKKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0iJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgfCBzZWQgJy8gX19nbnVfbHRvL2QnIgogCiAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHBpcGUgd29ya3MgY29ycmVjdGx5LgogICBwaXBlX3dvcmtzPW5vCkBAIC02MDk5LDggKzY1ODQsOCBAQAogICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuCiAgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJvbHMuCiAgICAgbmxpc3Q9Y29uZnRlc3Qubm0KLSAgICBpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAkbmxpc3RcIiI7IH0gPiY1Ci0gIChldmFsICROTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRubGlzdCkgMj4mNQorICAgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiROTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgXD4gJG5saXN0XCIiOyB9ID4mNQorICAoZXZhbCAkTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiIFw+ICRubGlzdCkgMj4mNQogICBhY19zdGF0dXM9JD8KICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgpAQCAtNjExNSw2ICs2NjAwLDE4IEBACiAgICAgICBpZiAkR1JFUCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgogCWlmICRHUkVQICcgbm1fdGVzdF9mdW5jJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgogCSAgY2F0IDw8X0xUX0VPRiA+IGNvbmZ0ZXN0LiRhY19leHQKKy8qIEtlZXAgdGhpcyBjb2RlIGluIHN5bmMgYmV0d2VlbiBsaWJ0b29sLm00LCBsdG1haW4sIGx0X3N5c3RlbS5oLCBhbmQgdGVzdHMuICAqLworI2lmIGRlZmluZWQoX1dJTjMyKSB8fCBkZWZpbmVkKF9fQ1lHV0lOX18pIHx8IGRlZmluZWQoX1dJTjMyX1dDRSkKKy8qIERBVEEgaW1wb3J0cyBmcm9tIERMTHMgb24gV0lOMzIgY29uJ3QgYmUgY29uc3QsIGJlY2F1c2UgcnVudGltZQorICAgcmVsb2NhdGlvbnMgYXJlIHBlcmZvcm1lZCAtLSBzZWUgbGQncyBkb2N1bWVudGF0aW9uIG9uIHBzZXVkby1yZWxvY3MuICAqLworIyBkZWZpbmUgTFRfRExTWU1fQ09OU1QKKyNlbGlmIGRlZmluZWQoX19vc2ZfXykKKy8qIFRoaXMgc3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJlbG9jYXRpb25zIGluIGNvbnN0IGRhdGEuICAqLworIyBkZWZpbmUgTFRfRExTWU1fQ09OU1QKKyNlbHNlCisjIGRlZmluZSBMVF9ETFNZTV9DT05TVCBjb25zdAorI2VuZGlmCisKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CiAjZW5kaWYKQEAgLTYxMjYsNyArNjYyMyw3IEBACiAJICBjYXQgPDxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKIAogLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLwotY29uc3Qgc3RydWN0IHsKK0xUX0RMU1lNX0NPTlNUIHN0cnVjdCB7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIHZvaWQgICAgICAgKmFkZHJlc3M7CiB9CkBAIC02MTUyLDggKzY2NDksOCBAQAogX0xUX0VPRgogCSAgIyBOb3cgdHJ5IGxpbmtpbmcgdGhlIHR3byBmaWxlcy4KIAkgIG12IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRzdG0uJGFjX29iamV4dAotCSAgbHRfc2F2ZV9MSUJTPSIkTElCUyIKLQkgIGx0X3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorCSAgbHRfZ2xvYnN5bV9zYXZlX0xJQlM9JExJQlMKKwkgIGx0X2dsb2JzeW1fc2F2ZV9DRkxBR1M9JENGTEFHUwogCSAgTElCUz0iY29uZnRzdG0uJGFjX29iamV4dCIKIAkgIENGTEFHUz0iJENGTEFHUyRsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyIKIAkgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19saW5rXCIiOyB9ID4mNQpAQCAtNjE2Myw4ICs2NjYwLDggQEAKICAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVleHR9OyB0aGVuCiAJICAgIHBpcGVfd29ya3M9eWVzCiAJICBmaQotCSAgTElCUz0iJGx0X3NhdmVfTElCUyIKLQkgIENGTEFHUz0iJGx0X3NhdmVfQ0ZMQUdTIgorCSAgTElCUz0kbHRfZ2xvYnN5bV9zYXZlX0xJQlMKKwkgIENGTEFHUz0kbHRfZ2xvYnN5bV9zYXZlX0NGTEFHUwogCWVsc2UKIAkgIGVjaG8gImNhbm5vdCBmaW5kIG5tX3Rlc3RfZnVuYyBpbiAkbmxpc3QiID4mNQogCWZpCkBAIC02MjAxLDYgKzY2OTgsMTIgQEAKICRhc19lY2hvICJvayIgPiY2OyB9CiBmaQogCisjIFJlc3BvbnNlIGZpbGUgc3VwcG9ydC4KK2lmIHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZhY2UiID0gIk1TIGR1bXBiaW4iOyB0aGVuCisgIG5tX2ZpbGVfbGlzdF9zcGVjPSdAJworZWxpZiAkTk0gLS1oZWxwIDI+L2Rldi9udWxsIHwgZ3JlcCAnW0BdRklMRScgPi9kZXYvbnVsbDsgdGhlbgorICBubV9maWxlX2xpc3Rfc3BlYz0nQCcKK2ZpCiAKIAogCkBAIC02MjIzLDYgKzY3MjYsNDggQEAKIAogCiAKKworCisKKworCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBzeXNyb290IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBzeXNyb290Li4uICIgPiY2OyB9CisKKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtc3lzcm9vdCB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke3dpdGhfc3lzcm9vdCtzZXR9IiA9IHNldDsgdGhlbiA6CisgIHdpdGh2YWw9JHdpdGhfc3lzcm9vdDsKK2Vsc2UKKyAgd2l0aF9zeXNyb290PW5vCitmaQorCisKK2x0X3N5c3Jvb3Q9CitjYXNlICR7d2l0aF9zeXNyb290fSBpbiAjKAorIHllcykKKyAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCisgICAgIGx0X3N5c3Jvb3Q9YCRDQyAtLXByaW50LXN5c3Jvb3QgMj4vZGV2L251bGxgCisgICBmaQorICAgOzsgIygKKyAvKikKKyAgIGx0X3N5c3Jvb3Q9YGVjaG8gIiR3aXRoX3N5c3Jvb3QiIHwgc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKyAgIDs7ICMoCisgbm98JycpCisgICA7OyAjKAorICopCisgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHt3aXRoX3N5c3Jvb3R9IiA+JjUKKyRhc19lY2hvICIke3dpdGhfc3lzcm9vdH0iID4mNjsgfQorICAgYXNfZm5fZXJyb3IgJD8gIlRoZSBzeXNyb290IG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iICIkTElORU5PIiA1CisgICA7OworZXNhYworCisgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR7bHRfc3lzcm9vdDotbm99IiA+JjUKKyRhc19lY2hvICIke2x0X3N5c3Jvb3Q6LW5vfSIgPiY2OyB9CisKKworCisKKwogIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWxpYnRvb2wtbG9jayB3YXMgZ2l2ZW4uCiBpZiB0ZXN0ICIke2VuYWJsZV9saWJ0b29sX2xvY2src2V0fSIgPSBzZXQ7IHRoZW4gOgogICBlbmFibGV2YWw9JGVuYWJsZV9saWJ0b29sX2xvY2s7CkBAIC02MjU0LDcgKzY3OTksNyBAQAogICA7OwogKi0qLWlyaXg2KikKICAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotICBlY2hvICcjbGluZSA2MjU3ICJjb25maWd1cmUiJyA+IGNvbmZ0ZXN0LiRhY19leHQKKyAgZWNobyAnI2xpbmUgJyRMSU5FTk8nICJjb25maWd1cmUiJyA+IGNvbmZ0ZXN0LiRhY19leHQKICAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX2NvbXBpbGVcIiI7IH0gPiY1CiAgIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgIGFjX3N0YXR1cz0kPwpAQCAtNjM0OCw3ICs2ODkzLDcgQEAKICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1iZWxmIgogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGYiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciBuZWVkcyAtYmVsZi4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsdF9jdl9jY19uZWVkc19iZWxmK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3ZfY2NfbmVlZHNfYmVsZis6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGFjX2V4dD1jCkBAIC02Mzg5LDcgKzY5MzQsNyBAQAogICAgIENGTEFHUz0iJFNBVkVfQ0ZMQUdTIgogICBmaQogICA7Owotc3BhcmMqLSpzb2xhcmlzKikKKyotKnNvbGFyaXMqKQogICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCiAgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CiAgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19jb21waWxlXCIiOyB9ID4mNQpAQCAtNjQwMCw3ICs2OTQ1LDIwIEBACiAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC5vYCBpbgogICAgICo2NC1iaXQqKQogICAgICAgY2FzZSAkbHRfY3ZfcHJvZ19nbnVfbGQgaW4KLSAgICAgIHllcyopIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIgOzsKKyAgICAgIHllcyopCisgICAgICAgIGNhc2UgJGhvc3QgaW4KKyAgICAgICAgaT84Ni0qLXNvbGFyaXMqKQorICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0IgorICAgICAgICAgIDs7CisgICAgICAgIHNwYXJjKi0qLXNvbGFyaXMqKQorICAgICAgICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIKKyAgICAgICAgICA7OworICAgICAgICBlc2FjCisgICAgICAgICMgR05VIGxkIDIuMjEgaW50cm9kdWNlZCBfc29sMiBlbXVsYXRpb25zLiAgVXNlIHRoZW0gaWYgYXZhaWxhYmxlLgorICAgICAgICBpZiAke0xELWxkfSAtViB8IGdyZXAgX3NvbDIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICAgICAgTEQ9IiR7TEQtbGR9X3NvbDIiCisgICAgICAgIGZpCisgICAgICAgIDs7CiAgICAgICAqKQogCWlmICR7TEQtbGR9IC02NCAtciAtbyBjb25mdGVzdDIubyBjb25mdGVzdC5vID4vZGV2L251bGwgMj4mMTsgdGhlbgogCSAgTEQ9IiR7TEQtbGR9IC02NCIKQEAgLTY0MTYsNiArNjk3NCwxMjMgQEAKIAogbmVlZF9sb2Nrcz0iJGVuYWJsZV9saWJ0b29sX2xvY2siCiAKK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fW10Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW10OyBhY193b3JkPSQyCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfcHJvZ19NQU5JRkVTVF9UT09MKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJE1BTklGRVNUX1RPT0wiOyB0aGVuCisgIGFjX2N2X3Byb2dfTUFOSUZFU1RfVE9PTD0iJE1BTklGRVNUX1RPT0wiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisgICAgYWNfY3ZfcHJvZ19NQU5JRkVTVF9UT09MPSIke2FjX3Rvb2xfcHJlZml4fW10IgorICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKKyAgZG9uZQorSUZTPSRhc19zYXZlX0lGUworCitmaQorZmkKK01BTklGRVNUX1RPT0w9JGFjX2N2X3Byb2dfTUFOSUZFU1RfVE9PTAoraWYgdGVzdCAtbiAiJE1BTklGRVNUX1RPT0wiOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkTUFOSUZFU1RfVE9PTCIgPiY1CiskYXNfZWNobyAiJE1BTklGRVNUX1RPT0wiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisKKworZmkKK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX01BTklGRVNUX1RPT0wiOyB0aGVuCisgIGFjX2N0X01BTklGRVNUX1RPT0w9JE1BTklGRVNUX1RPT0wKKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJtdCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgbXQ7IGFjX3dvcmQ9JDIKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9wcm9nX2FjX2N0X01BTklGRVNUX1RPT0wrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBpZiB0ZXN0IC1uICIkYWNfY3RfTUFOSUZFU1RfVE9PTCI7IHRoZW4KKyAgYWNfY3ZfcHJvZ19hY19jdF9NQU5JRkVTVF9UT09MPSIkYWNfY3RfTUFOSUZFU1RfVE9PTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCitlbHNlCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKyAgICBhY19jdl9wcm9nX2FjX2N0X01BTklGRVNUX1RPT0w9Im10IgorICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKKyAgZG9uZQorSUZTPSRhc19zYXZlX0lGUworCitmaQorZmkKK2FjX2N0X01BTklGRVNUX1RPT0w9JGFjX2N2X3Byb2dfYWNfY3RfTUFOSUZFU1RfVE9PTAoraWYgdGVzdCAtbiAiJGFjX2N0X01BTklGRVNUX1RPT0wiOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3RfTUFOSUZFU1RfVE9PTCIgPiY1CiskYXNfZWNobyAiJGFjX2N0X01BTklGRVNUX1RPT0wiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisKKyAgaWYgdGVzdCAieCRhY19jdF9NQU5JRkVTVF9UT09MIiA9IHg7IHRoZW4KKyAgICBNQU5JRkVTVF9UT09MPSI6IgorICBlbHNlCisgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgoreWVzOikKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KK2FjX3Rvb2xfd2FybmVkPXllcyA7OworZXNhYworICAgIE1BTklGRVNUX1RPT0w9JGFjX2N0X01BTklGRVNUX1RPT0wKKyAgZmkKK2Vsc2UKKyAgTUFOSUZFU1RfVE9PTD0iJGFjX2N2X3Byb2dfTUFOSUZFU1RfVE9PTCIKK2ZpCisKK3Rlc3QgLXogIiRNQU5JRkVTVF9UT09MIiAmJiBNQU5JRkVTVF9UT09MPW10Cit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRNQU5JRkVTVF9UT09MIGlzIGEgbWFuaWZlc3QgdG9vbCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBpZiAkTUFOSUZFU1RfVE9PTCBpcyBhIG1hbmlmZXN0IHRvb2wuLi4gIiA+JjY7IH0KK2lmICR7bHRfY3ZfcGF0aF9tYWluZmVzdF90b29sKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgbHRfY3ZfcGF0aF9tYWluZmVzdF90b29sPW5vCisgIGVjaG8gIiRhc19tZTokTElORU5POiAkTUFOSUZFU1RfVE9PTCAnLT8nIiA+JjUKKyAgJE1BTklGRVNUX1RPT0wgJy0/JyAyPmNvbmZ0ZXN0LmVyciA+IGNvbmZ0ZXN0Lm91dAorICBjYXQgY29uZnRlc3QuZXJyID4mNQorICBpZiAkR1JFUCAnTWFuaWZlc3QgVG9vbCcgY29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCisgICAgbHRfY3ZfcGF0aF9tYWluZmVzdF90b29sPXllcworICBmaQorICBybSAtZiBjb25mdGVzdCoKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3BhdGhfbWFpbmZlc3RfdG9vbCIgPiY1CiskYXNfZWNobyAiJGx0X2N2X3BhdGhfbWFpbmZlc3RfdG9vbCIgPiY2OyB9CitpZiB0ZXN0ICJ4JGx0X2N2X3BhdGhfbWFpbmZlc3RfdG9vbCIgIT0geHllczsgdGhlbgorICBNQU5JRkVTVF9UT09MPToKK2ZpCisKKworCisKKwogCiAgIGNhc2UgJGhvc3Rfb3MgaW4KICAgICByaGFwc29keSogfCBkYXJ3aW4qKQpAQCAtNjQyNCw3ICs3MDk5LDcgQEAKIHNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWRzeW11dGlsOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19EU1lNVVRJTCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfRFNZTVVUSUwrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkRFNZTVVUSUwiOyB0aGVuCkBAIC02NDY0LDcgKzcxMzksNyBAQAogc2V0IGR1bW15IGRzeW11dGlsOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUwrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCkBAIC02NTE2LDcgKzcxOTEsNyBAQAogc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bm1lZGl0OyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19OTUVESVQrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX05NRURJVCs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgLW4gIiROTUVESVQiOyB0aGVuCkBAIC02NTU2LDcgKzcyMzEsNyBAQAogc2V0IGR1bW15IG5tZWRpdDsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfTk1FRElUK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9OTUVESVQrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkYWNfY3RfTk1FRElUIjsgdGhlbgpAQCAtNjYwOCw3ICs3MjgzLDcgQEAKIHNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWxpcG87IGFjX3dvcmQ9JDIKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9wcm9nX0xJUE8rc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX0xJUE8rOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkTElQTyI7IHRoZW4KQEAgLTY2NDgsNyArNzMyMyw3IEBACiBzZXQgZHVtbXkgbGlwbzsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfYWNfY3RfTElQTytzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfYWNfY3RfTElQTys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgLW4gIiRhY19jdF9MSVBPIjsgdGhlbgpAQCAtNjcwMCw3ICs3Mzc1LDcgQEAKIHNldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW90b29sOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19PVE9PTCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfT1RPT0wrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkT1RPT0wiOyB0aGVuCkBAIC02NzQwLDcgKzc0MTUsNyBAQAogc2V0IGR1bW15IG90b29sOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9PVE9PTCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfYWNfY3RfT1RPT0wrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0wiOyB0aGVuCkBAIC02NzkyLDcgKzc0NjcsNyBAQAogc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9b3Rvb2w2NDsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3Byb2dfT1RPT0w2NCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3Byb2dfT1RPT0w2NCs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgLW4gIiRPVE9PTDY0IjsgdGhlbgpAQCAtNjgzMiw3ICs3NTA3LDcgQEAKIHNldCBkdW1teSBvdG9vbDY0OyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0K3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0Kzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAtbiAiJGFjX2N0X09UT09MNjQiOyB0aGVuCkBAIC02OTA3LDcgKzc1ODIsNyBAQAogCiAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2VyIGZsYWciID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Qrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHtsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD1ubwpAQCAtNjkyMyw3ICs3NTk4LDEzIEBACiAJJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKIAkgIC1keW5hbWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+Y29uZnRlc3QuZXJyCiAgICAgICAgIF9sdF9yZXN1bHQ9JD8KLQlpZiB0ZXN0IC1mIGxpYmNvbmZ0ZXN0LmR5bGliICYmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgJiYgdGVzdCAkX2x0X3Jlc3VsdCA9IDA7IHRoZW4KKwkjIElmIHRoZXJlIGlzIGEgbm9uLWVtcHR5IGVycm9yIGxvZywgYW5kICJzaW5nbGVfbW9kdWxlIgorCSMgYXBwZWFycyBpbiBpdCwgYXNzdW1lIHRoZSBmbGFnIGNhdXNlZCBhIGxpbmtlciB3YXJuaW5nCisgICAgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyICYmICRHUkVQIHNpbmdsZV9tb2R1bGUgY29uZnRlc3QuZXJyOyB0aGVuCisJICBjYXQgY29uZnRlc3QuZXJyID4mNQorCSMgT3RoZXJ3aXNlLCBpZiB0aGUgb3V0cHV0IHdhcyBjcmVhdGVkIHdpdGggYSAwIGV4aXQgY29kZSBmcm9tCisJIyB0aGUgY29tcGlsZXIsIGl0IHdvcmtlZC4KKwllbGlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIgJiYgdGVzdCAkX2x0X3Jlc3VsdCAtZXEgMDsgdGhlbgogCSAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKIAllbHNlCiAJICBjYXQgY29uZnRlc3QuZXJyID4mNQpAQCAtNjkzNCw5ICs3NjE1LDEwIEBACiBmaQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiA+JjUKICRhc19lY2hvICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPiY2OyB9CisKICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtlciBmbGFnIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtlciBmbGFnLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdCs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGx0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ubwpAQCAtNjk2Niw2ICs3NjQ4LDQxIEBACiBmaQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID4mNQogJGFzX2VjaG8gIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QiID4mNjsgfQorCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgLWZvcmNlX2xvYWQgbGlua2VyIGZsYWciID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1mb3JjZV9sb2FkIGxpbmtlciBmbGFnLi4uICIgPiY2OyB9CitpZiAke2x0X2N2X2xkX2ZvcmNlX2xvYWQrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBsdF9jdl9sZF9mb3JjZV9sb2FkPW5vCisgICAgICBjYXQgPiBjb25mdGVzdC5jIDw8IF9MVF9FT0YKK2ludCBmb3JjZWRfbG9hZGVkKCkgeyByZXR1cm4gMjt9CitfTFRfRU9GCisgICAgICBlY2hvICIkTFRDQyAkTFRDRkxBR1MgLWMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5jIiA+JjUKKyAgICAgICRMVENDICRMVENGTEFHUyAtYyAtbyBjb25mdGVzdC5vIGNvbmZ0ZXN0LmMgMj4mNQorICAgICAgZWNobyAiJEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0Lm8iID4mNQorICAgICAgJEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0Lm8gMj4mNQorICAgICAgZWNobyAiJFJBTkxJQiBsaWJjb25mdGVzdC5hIiA+JjUKKyAgICAgICRSQU5MSUIgbGliY29uZnRlc3QuYSAyPiY1CisgICAgICBjYXQgPiBjb25mdGVzdC5jIDw8IF9MVF9FT0YKK2ludCBtYWluKCkgeyByZXR1cm4gMDt9CitfTFRfRU9GCisgICAgICBlY2hvICIkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAtV2wsLWZvcmNlX2xvYWQsLi9saWJjb25mdGVzdC5hIiA+JjUKKyAgICAgICRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBjb25mdGVzdCBjb25mdGVzdC5jIC1XbCwtZm9yY2VfbG9hZCwuL2xpYmNvbmZ0ZXN0LmEgMj5jb25mdGVzdC5lcnIKKyAgICAgIF9sdF9yZXN1bHQ9JD8KKyAgICAgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyICYmICRHUkVQIGZvcmNlX2xvYWQgY29uZnRlc3QuZXJyOyB0aGVuCisJY2F0IGNvbmZ0ZXN0LmVyciA+JjUKKyAgICAgIGVsaWYgdGVzdCAtZiBjb25mdGVzdCAmJiB0ZXN0ICRfbHRfcmVzdWx0IC1lcSAwICYmICRHUkVQIGZvcmNlZF9sb2FkIGNvbmZ0ZXN0ID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKwlsdF9jdl9sZF9mb3JjZV9sb2FkPXllcworICAgICAgZWxzZQorCWNhdCBjb25mdGVzdC5lcnIgPiY1CisgICAgICBmaQorICAgICAgICBybSAtZiBjb25mdGVzdC5lcnIgbGliY29uZnRlc3QuYSBjb25mdGVzdCBjb25mdGVzdC5jCisgICAgICAgIHJtIC1yZiBjb25mdGVzdC5kU1lNCisKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID4mNQorJGFzX2VjaG8gIiRsdF9jdl9sZF9mb3JjZV9sb2FkIiA+JjY7IH0KICAgICBjYXNlICRob3N0X29zIGluCiAgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bMDEyXSkKICAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKQEAgLTY5OTMsNyArNzcxMCw3IEBACiAgICAgZWxzZQogICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nfiROTUVESVQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCiAgICAgZmkKLSAgICBpZiB0ZXN0ICIkRFNZTVVUSUwiICE9ICI6IjsgdGhlbgorICAgIGlmIHRlc3QgIiREU1lNVVRJTCIgIT0gIjoiICYmIHRlc3QgIiRsdF9jdl9sZF9mb3JjZV9sb2FkIiA9ICJubyI7IHRoZW4KICAgICAgIF9sdF9kc3ltdXRpbD0nfiREU1lNVVRJTCAkbGliIHx8IDonCiAgICAgZWxzZQogICAgICAgX2x0X2RzeW11dGlsPQpAQCAtNzAxMyw3ICs3NzMwLDcgQEAKICAgQ1BQPQogZmkKIGlmIHRlc3QgLXogIiRDUFAiOyB0aGVuCi0gIGlmIHRlc3QgIiR7YWNfY3ZfcHJvZ19DUFArc2V0fSIgPSBzZXQ7IHRoZW4gOgorICBpZiAke2FjX2N2X3Byb2dfQ1BQKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENQUCBuZWVkcyB0byBiZSBleHBhbmRlZApAQCAtNzA0Myw3ICs3NzYwLDcgQEAKICAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgogY29udGludWUKIGZpCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LmkgY29uZnRlc3QuJGFjX2V4dAogCiAgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlzdGVudCBoZWFkZXJzCiAgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCkBAIC03MDU5LDExICs3Nzc2LDExIEBACiBhY19wcmVwcm9jX29rPToKIGJyZWFrCiBmaQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC5pIGNvbmZ0ZXN0LiRhY19leHQKIAogZG9uZQogIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi1ybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29uZnRlc3QuaSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAogaWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4gOgogICBicmVhawogZmkKQEAgLTcxMDIsNyArNzgxOSw3IEBACiAgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KIGNvbnRpbnVlCiBmaQotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC5pIGNvbmZ0ZXN0LiRhY19leHQKIAogICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQgaGVhZGVycwogICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgpAQCAtNzExOCwxOCArNzgzNSwxOCBAQAogYWNfcHJlcHJvY19vaz06CiBicmVhawogZmkKLXJtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0CitybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuaSBjb25mdGVzdC4kYWNfZXh0CiAKIGRvbmUKICMgQmVjYXVzZSBvZiBgYnJlYWsnLCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKK3JtIC1mIGNvbmZ0ZXN0LmkgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKIGlmICRhY19wcmVwcm9jX29rOyB0aGVuIDoKIAogZWxzZQogICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLWFzX2ZuX2Vycm9yICJDIHByZXByb2Nlc3NvciBcIiRDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLVNlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMuIiAiJExJTkVOTyIgNTsgfQorYXNfZm5fZXJyb3IgJD8gIkMgcHJlcHJvY2Vzc29yIFwiJENQUFwiIGZhaWxzIHNhbml0eSBjaGVjaworU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KIGZpCiAKIGFjX2V4dD1jCkBAIC03MTQxLDcgKzc4NTgsNyBAQAogCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X2hlYWRlcl9zdGRjK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfaGVhZGVyX3N0ZGMrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CkBAIC03MjU4LDggKzc5NzUsNyBAQAogICBhc19hY19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCiBhY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlICIkTElORU5PIiAiJGFjX2hlYWRlciIgIiRhc19hY19IZWFkZXIiICIkYWNfaW5jbHVkZXNfZGVmYXVsdAogIgotZXZhbCBhc192YWw9XCQkYXNfYWNfSGVhZGVyCi0gICBpZiB0ZXN0ICJ4JGFzX3ZhbCIgPSB4IiJ5ZXM7IHRoZW4gOgoraWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19IZWFkZXIiXCIgPSB4InllcyI7IHRoZW4gOgogICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiAjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9jcHBgIDEKIF9BQ0VPRgpAQCAtNzI3Myw3ICs3OTg5LDcgQEAKIGRvIDoKICAgYWNfZm5fY19jaGVja19oZWFkZXJfY29tcGlsZSAiJExJTkVOTyIgImRsZmNuLmgiICJhY19jdl9oZWFkZXJfZGxmY25faCIgIiRhY19pbmNsdWRlc19kZWZhdWx0CiAiCi1pZiB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA9IHgiInllczsgdGhlbiA6CitpZiB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9kbGZjbl9oIiA9IHh5ZXM7IHRoZW4gOgogICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCiBfQUNFT0YKQEAgLTcyODQsNiArODAwMCw4IEBACiAKIAogCisKKwogIyBTZXQgb3B0aW9ucwogCiAKQEAgLTczNTksNyArODA3NywyMiBAQAogCiAjIENoZWNrIHdoZXRoZXIgLS13aXRoLXBpYyB3YXMgZ2l2ZW4uCiBpZiB0ZXN0ICIke3dpdGhfcGljK3NldH0iID0gc2V0OyB0aGVuIDoKLSAgd2l0aHZhbD0kd2l0aF9waWM7IHBpY19tb2RlPSIkd2l0aHZhbCIKKyAgd2l0aHZhbD0kd2l0aF9waWM7IGx0X3A9JHtQQUNLQUdFLWRlZmF1bHR9CisgICAgY2FzZSAkd2l0aHZhbCBpbgorICAgIHllc3xubykgcGljX21vZGU9JHdpdGh2YWwgOzsKKyAgICAqKQorICAgICAgcGljX21vZGU9ZGVmYXVsdAorICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisgICAgICBmb3IgbHRfcGtnIGluICR3aXRodmFsOyBkbworCUlGUz0iJGx0X3NhdmVfaWZzIgorCWlmIHRlc3QgIlgkbHRfcGtnIiA9ICJYJGx0X3AiOyB0aGVuCisJICBwaWNfbW9kZT15ZXMKKwlmaQorICAgICAgZG9uZQorICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisgICAgICA7OworICAgIGVzYWMKIGVsc2UKICAgcGljX21vZGU9ZGVmYXVsdAogZmkKQEAgLTc0MzYsNiArODE2OSwxMSBAQAogCiAKIAorCisKKworCisKIHRlc3QgLXogIiRMTl9TIiAmJiBMTl9TPSJsbiAtcyIKIAogCkBAIC03NDU3LDcgKzgxOTUsNyBAQAogCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBvYmpkaXIiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG9iamRpci4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsdF9jdl9vYmpkaXIrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHtsdF9jdl9vYmpkaXIrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBybSAtZiAubGlicyAyPi9kZXYvbnVsbApAQCAtNzQ4NSwxOSArODIyMyw2IEBACiAKIAogCi0KLQotCi0KLQotCi0KLQotCi0KLQotCi0KIGNhc2UgJGhvc3Rfb3MgaW4KIGFpeDMqKQogICAjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBwcm9ncmFtLiAgRm9yIHNvbWUKQEAgLTc1MTAsMjMgKzgyMzUsNiBAQAogICA7OwogZXNhYwogCi0jIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0jIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgotc2VkX3F1b3RlX3N1YnN0PSdzL1woWyJgJFxcXVwpL1xcXDEvZycKLQotIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCi1kb3VibGVfcXVvdGVfc3Vic3Q9J3MvXChbImBcXF1cKS9cXFwxL2cnCi0KLSMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaGVsbCB2YXJpYWJsZSBpbiBhCi0jIGRvdWJsZV9xdW90ZV9zdWJzdCdlZCBzdHJpbmcuCi1kZWxheV92YXJpYWJsZV9zdWJzdD0ncy9cXFxcXFxcXFxcXCQvXFxcXFxcJC9nJwotCi0jIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2luZ2xlIHF1b3RlLgotZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0PSdzLydcJycvJ1wnXFxcXFxcXCdcJycvZycKLQotIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGF2b2lkIGFjY2lkZW50YWwgZ2xvYmJpbmcgaW4gZXZhbGVkIGV4cHJlc3Npb25zCi1ub19nbG9iX3N1YnN0PSdzL1wqL1xcXCovZycKLQogIyBHbG9iYWwgdmFyaWFibGVzOgogb2ZpbGU9bGlidG9vbAogY2FuX2J1aWxkX3NoYXJlZD15ZXMKQEAgLTc1NTUsNyArODI2Myw3IEBACiAgICAgKikgYnJlYWs7OwogICBlc2FjCiBkb25lCi1jY19iYXNlbmFtZT1gJEVDSE8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKK2NjX2Jhc2VuYW1lPWAkRUNITyAiJGNjX3RlbXAiIHwgJFNFRCAicyUuKi8lJTsgcyVeJGhvc3RfYWxpYXMtJSUiYAogCiAKICMgT25seSBwZXJmb3JtIHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhlIGNoZWNrIG1ldGhvZCByZXF1aXJlcyBpdApAQCAtNzU2NSw3ICs4MjczLDcgQEAKICAgaWYgdGVzdCAiJGZpbGVfbWFnaWNfY21kIiA9ICckTUFHSUNfQ01EJzsgdGhlbgogICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICR7YWNfdG9vbF9wcmVmaXh9ZmlsZSIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJHthY190b29sX3ByZWZpeH1maWxlLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2x0X2N2X3BhdGhfTUFHSUNfQ01EK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBjYXNlICRNQUdJQ19DTUQgaW4KQEAgLTc2MzEsNyArODMzOSw3IEBACiAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBmaWxlIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciBmaWxlLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2x0X2N2X3BhdGhfTUFHSUNfQ01EK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBjYXNlICRNQUdJQ19DTUQgaW4KQEAgLTc3NjQsMTEgKzg0NzIsMTYgQEAKIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnPQogCiBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nIC1mbm8tYnVpbHRpbicKKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgbnZjYyopCisgICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9JyAtWGNvbXBpbGVyIC1mbm8tYnVpbHRpbicgOzsKKyAgKikKKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nIC1mbm8tYnVpbHRpbicgOzsKKyAgZXNhYwogCiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnMuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zPW5vCkBAIC03Nzg0LDE1ICs4NDk3LDE1IEBACiAgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCiAgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCiAgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjc3ODc6ICRsdF9jb21waWxlXCIiID4mNSkKKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkbHRfY29tcGlsZVwiIiA+JjUpCiAgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQogICAgYWNfc3RhdHVzPSQ/CiAgICBjYXQgY29uZnRlc3QuZXJyID4mNQotICAgZWNobyAiJGFzX21lOjc3OTE6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCiAgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCiAgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCi0gICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKyAgICAgJEVDSE8gIiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAnL14kL2QnID5jb25mdGVzdC5leHAKICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCiAgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz15ZXMKQEAgLTc4MjEsOCArODUzNCw2IEBACiBsdF9wcm9nX2NvbXBpbGVyX3BpYz0KIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPQogCi17ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDIiA+JjUKLSRhc19lY2hvX24gImNoZWNraW5nIGZvciAkY29tcGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uICIgPiY2OyB9CiAKICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwpAQCAtNzg3MCw2ICs4NTgxLDEyIEBACiAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZuby1jb21tb24nCiAgICAgICA7OwogCisgICAgaGFpa3UqKQorICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIEhhaWt1LgorICAgICAgIyBUaGUgIi1zdGF0aWMiIGZsYWcgZXhpc3RzLCBidXQgaXMgYnJva2VuLgorICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9CisgICAgICA7OworCiAgICAgaHB1eCopCiAgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKICAgICAgICMgUEEgSFAtVVguICBPbiBJQTY0IEhQLVVYLCBQSUMgaXMgdGhlIGRlZmF1bHQgYnV0IHRoZSBwaWMgZmxhZwpAQCAtNzkxMiw2ICs4NjI5LDE1IEBACiAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCiAgICAgICA7OwogICAgIGVzYWMKKworICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgbnZjYyopICMgQ3VkYSBDb21waWxlciBEcml2ZXIgMi4yCisgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctWGxpbmtlciAnCisgICAgICBpZiB0ZXN0IC1uICIkbHRfcHJvZ19jb21waWxlcl9waWMiOyB0aGVuCisgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSItWGNvbXBpbGVyICRsdF9wcm9nX2NvbXBpbGVyX3BpYyIKKyAgICAgIGZpCisgICAgICA7OworICAgIGVzYWMKICAgZWxzZQogICAgICMgUE9SVE1FIENoZWNrIGZvciBmbGFnIHRvIHBhc3MgbGlua2VyIGZsYWdzIHRocm91Z2ggdGhlIHN5c3RlbSBjb21waWxlci4KICAgICBjYXNlICRob3N0X29zIGluCkBAIC03OTUzLDcgKzg2NzksNyBAQAogICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJwogICAgICAgOzsKIAotICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUpCisgICAgbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQogICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KICAgICAgICMgb2xkIEludGVsIGZvciB4ODZfNjQgd2hpY2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgogICAgICAgZWNjKikKQEAgLTc5NzQsNyArODcwMCwxMyBAQAogCWx0X3Byb2dfY29tcGlsZXJfcGljPSctLXNoYXJlZCcKIAlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLS1zdGF0aWMnCiAJOzsKLSAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQorICAgICAgbmFnZm9yKikKKwkjIE5BRyBGb3J0cmFuIGNvbXBpbGVyCisJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLC1XbCwsJworCWx0X3Byb2dfY29tcGlsZXJfcGljPSctUElDJworCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKwk7OworICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSogfCBwZ2ZvcnRyYW4qKQogICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAoKm5vdCogdGhlIFBlbnRpdW0gZ2NjIGNvbXBpbGVyLAogCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCiAJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKQEAgLTc5ODYsMjUgKzg3MTgsNDAgQEAKICAgICAgICAgIyBBbGwgQWxwaGEgY29kZSBpcyBQSUMuCiAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKICAgICAgICAgOzsKLSAgICAgIHhsKikKLQkjIElCTSBYTCBDIDguMC9Gb3J0cmFuIDEwLjEgb24gUFBDCisgICAgICB4bCogfCBiZ3hsKiB8IGJnZiogfCBtcGl4bCopCisJIyBJQk0gWEwgQyA4LjAvRm9ydHJhbiAxMC4xLCAxMS4xIG9uIFBQQyBhbmQgQmx1ZUdlbmUKIAlsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwogCWx0X3Byb2dfY29tcGlsZXJfcGljPSctcXBpYycKIAlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXFzdGF0aWNsaW5rJwogCTs7CiAgICAgICAqKQogCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorCSpTdW5cIENlcmVzXCBGb3J0cmFuKiB8ICpTdW4qRm9ydHJhbipcIFsxLTddLiogfCAqU3VuKkZvcnRyYW4qXCA4LlswLTNdKikKKwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKwkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKKwkgIGx0X3Byb2dfY29tcGlsZXJfd2w9JycKKwkgIDs7CisJKlN1blwgRiogfCAqU3VuKkZvcnRyYW4qKQorCSAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJworCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJworCSAgbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24gbGQgJworCSAgOzsKIAkqU3VuXCBDKikKIAkgICMgU3VuIEMgNS45CiAJICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLUtQSUMnCiAJICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCiAJICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwogCSAgOzsKLQkqU3VuXCBGKikKLQkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwgdW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKLQkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKKyAgICAgICAgKkludGVsKlwgW0NGXSpDb21waWxlciopCisJICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJworCSAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJworCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCisJICA7OworCSpQb3J0bGFuZFwgR3JvdXAqKQorCSAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctZnBpYycKIAkgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLQkgIGx0X3Byb2dfY29tcGlsZXJfd2w9JycKIAkgIDs7CiAJZXNhYwogCTs7CkBAIC04MDM2LDcgKzg3ODMsNyBAQAogICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwogICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwogICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSAgICAgIGY3NyogfCBmOTAqIHwgZjk1KikKKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KiB8IHN1bmY3NyogfCBzdW5mOTAqIHwgc3VuZjk1KikKIAlsdF9wcm9nX2NvbXBpbGVyX3dsPSctUW9wdGlvbiBsZCAnOzsKICAgICAgICopCiAJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCc7OwpAQCAtODA5MywxMyArODg0MCwxNyBAQAogICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSIkbHRfcHJvZ19jb21waWxlcl9waWMgLURQSUMiCiAgICAgOzsKIGVzYWMKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfcHJvZ19jb21waWxlcl9waWMiID4mNQotJGFzX2VjaG8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgPiY2OyB9CiAKLQotCi0KLQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQy4uLiAiID4mNjsgfQoraWYgJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYys6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljPSRsdF9wcm9nX2NvbXBpbGVyX3BpYworZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9waWMiID4mNQorJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYyIgPiY2OyB9CitsdF9wcm9nX2NvbXBpbGVyX3BpYz0kbHRfY3ZfcHJvZ19jb21waWxlcl9waWMKIAogIwogIyBDaGVjayB0byBtYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGFjdHVhbGx5IHdvcmtzLgpAQCAtODEwNyw3ICs4ODU4LDcgQEAKIGlmIHRlc3QgLW4gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyI7IHRoZW4KICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljIHdvcmtzIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAkbHRfcHJvZ19jb21waWxlcl9waWMgd29ya3MuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3Mrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrcys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzPW5vCkBAIC04MTIzLDE1ICs4ODc0LDE1IEBACiAgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCiAgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCiAgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjgxMjY6ICRsdF9jb21waWxlXCIiID4mNSkKKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkbHRfY29tcGlsZVwiIiA+JjUpCiAgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQogICAgYWNfc3RhdHVzPSQ/CiAgICBjYXQgY29uZnRlc3QuZXJyID4mNQotICAgZWNobyAiJGFzX21lOjgxMzA6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCiAgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCiAgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncyBvdGhlciB0aGFuIHRoZSB1c3VhbCBvdXRwdXQuCi0gICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID5jb25mdGVzdC5leHAKKyAgICAgJEVDSE8gIiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAnL14kL2QnID5jb25mdGVzdC5leHAKICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCiAgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrcz15ZXMKQEAgLTgxNjAsMTMgKzg5MTEsMTggQEAKIAogCiAKKworCisKKworCiAjCiAjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29ya3MuCiAjCiB3bD0kbHRfcHJvZ19jb21waWxlcl93bCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGljX3dvcmtzK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz1ubwpAQCAtODE3OSw3ICs4OTM1LDcgQEAKICAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KICAgICAgICAjIEFwcGVuZCBhbnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgogICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQotICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorICAgICAgICRFQ0hPICIkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBjb25mdGVzdC5leHAKICAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKICAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgogICAgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCkBAIC04MjA5LDcgKzg5NjUsNyBAQAogCiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0Li4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX28rOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz1ubwpAQCAtODIyOCwxNiArODk4NCwxNiBAQAogICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAogICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAogICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo4MjMxOiAkbHRfY29tcGlsZVwiIiA+JjUpCisgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1KQogICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCiAgICBhY19zdGF0dXM9JD8KICAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotICAgZWNobyAiJGFzX21lOjgyMzU6IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKICAgIHRoZW4KICAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKICAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0gICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAorICAgICAkRUNITyAiJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCiAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCiAgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz15ZXMKQEAgLTgyNjQsNyArOTAyMCw3IEBACiAKICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWMgLW8gZmlsZS4kYWNfb2JqZXh0IiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX28rc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHtsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPW5vCkBAIC04MjgzLDE2ICs5MDM5LDE2IEBACiAgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCiAgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCiAgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjgyODY6ICRsdF9jb21waWxlXCIiID4mNSkKKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkbHRfY29tcGlsZVwiIiA+JjUpCiAgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKICAgIGFjX3N0YXR1cz0kPwogICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1Ci0gICBlY2hvICIkYXNfbWU6ODI5MDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAogICAgdGhlbgogICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAogICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSAgICAgJEVDSE8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkIC1lICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCisgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKICAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcjIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgogICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vPXllcwpAQCAtODM1OCw3ICs5MTE0LDYgQEAKICAgaGFyZGNvZGVfZGlyZWN0PW5vCiAgIGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT1ubwogICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQotICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPQogICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPQogICBoYXJkY29kZV9taW51c19MPW5vCiAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKQEAgLTg0MDIsMTAgKzkxNTcsMzkgQEAKICAgb3BlbmJzZCopCiAgICAgd2l0aF9nbnVfbGQ9bm8KICAgICA7OworICBsaW51eCogfCBrKmJzZCotZ251IHwgZ251KikKKyAgICBsaW5rX2FsbF9kZXBsaWJzPW5vCisgICAgOzsKICAgZXNhYwogCiAgIGxkX3NobGlicz15ZXMKKworICAjIE9uIHNvbWUgdGFyZ2V0cywgR05VIGxkIGlzIGNvbXBhdGlibGUgZW5vdWdoIHdpdGggdGhlIG5hdGl2ZSBsaW5rZXIKKyAgIyB0aGF0IHdlJ3JlIGJldHRlciBvZmYgdXNpbmcgdGhlIG5hdGl2ZSBpbnRlcmZhY2UgZm9yIGJvdGguCisgIGx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlPW5vCiAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgICBjYXNlICRob3N0X29zIGluCisgICAgICBhaXgqKQorCSMgVGhlIEFJWCBwb3J0IG9mIEdOVSBsZCBoYXMgYWx3YXlzIGFzcGlyZWQgdG8gY29tcGF0aWJpbGl0eQorCSMgd2l0aCB0aGUgbmF0aXZlIGxpbmtlci4gIEhvd2V2ZXIsIGFzIHRoZSB3YXJuaW5nIGluIHRoZSBHTlUgbGQKKwkjIGJsb2NrIHNheXMsIHZlcnNpb25zIGJlZm9yZSAyLjE5LjUqIGNvdWxkbid0IHJlYWxseSBjcmVhdGUgd29ya2luZworCSMgc2hhcmVkIGxpYnJhcmllcywgcmVnYXJkbGVzcyBvZiB0aGUgaW50ZXJmYWNlIHVzZWQuCisJY2FzZSBgJExEIC12IDI+JjFgIGluCisJICAqXCBcKEdOVVwgQmludXRpbHNcKVwgMi4xOS41KikgOzsKKwkgICpcIFwoR05VXCBCaW51dGlsc1wpXCAyLlsyLTldKikgOzsKKwkgICpcIFwoR05VXCBCaW51dGlsc1wpXCBbMy05XSopIDs7CisJICAqKQorCSAgICBsdF91c2VfZ251X2xkX2ludGVyZmFjZT15ZXMKKwkgICAgOzsKKwllc2FjCisJOzsKKyAgICAgICopCisJbHRfdXNlX2dudV9sZF9pbnRlcmZhY2U9eWVzCisJOzsKKyAgICBlc2FjCisgIGZpCisKKyAgaWYgdGVzdCAiJGx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlIiA9IHllczsgdGhlbgogICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMgTEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5CiAgICAgd2xhcmM9JyR7d2x9JwogCkBAIC04NDIzLDYgKzkyMDcsNyBAQAogICAgIGZpCiAgICAgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPW5vCiAgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCisgICAgICAqR05VXCBnb2xkKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OwogICAgICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05XS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQogICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KICAgICAgICpcIDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KQEAgLTg0MzgsMTEgKzkyMjMsMTIgQEAKIAlsZF9zaGxpYnM9bm8KIAljYXQgPDxfTFRfRU9GIDE+JjIKIAotKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAorKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuMTksIGlzIHJlcG9ydGVkCiAqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KICoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQotKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAotKioqIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVzdGFydC4KKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIGluc3RhbGwgYmludXRpbHMKKyoqKiAyLjIwIG9yIGFib3ZlLCBvciBtb2RpZnkgeW91ciBQQVRIIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZC4KKyoqKiBZb3Ugd2lsbCB0aGVuIG5lZWQgdG8gcmVzdGFydCB0aGUgY29uZmlndXJhdGlvbiBwcm9jZXNzLgogCiBfTFRfRU9GCiAgICAgICBmaQpAQCAtODQ3OCwxMCArOTI2NCwxMiBAQAogICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCiAgICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgogICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJworICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS0tZXhwb3J0LWFsbC1zeW1ib2xzJwogICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKICAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz1ubwogICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMKLSAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvJ1wnJyB8ICRTRUQgLWUgJ1wnJy9eW0FJVFddWyBdL3MvLipbIF0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKyAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERBVEEvO3MvXi4qWyBdX19ubV9fXChbXiBdKlwpWyBdW14gXSovXDEgREFUQS87L15JWyBdL2Q7L15bQUlUV11bIF0vcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKyAgICAgIGV4Y2x1ZGVfZXhwc3ltcz0nW19dK0dMT0JBTF9PRkZTRVRfVEFCTEVffFtfXStHTE9CQUxfX1tGSURdXy4qfFtfXStoZWFkX1tBLVphLXowLTlfXStfZGxsfFtBLVphLXowLTlfXStfZGxsX2luYW1lJwogCiAgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCkBAIC04NDk5LDYgKzkyODcsMTEgQEAKICAgICAgIGZpCiAgICAgICA7OwogCisgICAgaGFpa3UqKQorICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCisgICAgICA7OworCiAgICAgaW50ZXJpeFszLTldKikKICAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubwogICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwpAQCAtODUxNCw3ICs5MzA3LDcgQEAKICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCiAgICAgICA7OwogCi0gICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251KQorICAgIGdudSogfCBsaW51eCogfCB0cGYqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQogICAgICAgdG1wX2RpZXQ9bm8KICAgICAgIGlmIHRlc3QgIiRob3N0X29zIiA9IGxpbnV4LWRpZXRsaWJjOyB0aGVuCiAJY2FzZSAkY2NfYmFzZW5hbWUgaW4KQEAgLTg1MjQsMTUgKzkzMTcsMTYgQEAKICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRFR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsIFwKIAkgJiYgdGVzdCAiJHRtcF9kaWV0IiA9IG5vCiAgICAgICB0aGVuCi0JdG1wX2FkZGZsYWc9CisJdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCiAJdG1wX3NoYXJlZGZsYWc9Jy1zaGFyZWQnCiAJY2FzZSAkY2NfYmFzZW5hbWUsJGhvc3RfY3B1IGluCiAgICAgICAgIHBnY2MqKQkJCQkjIFBvcnRsYW5kIEdyb3VwIEMgY29tcGlsZXIKLQkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCiAJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKIAkgIDs7Ci0JcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqKQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycwotCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwlwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSogfCBwZ2ZvcnRyYW4qKQorCQkJCQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycworCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwogCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcgLU1ub21haW4nIDs7CiAJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0CiAJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7CkBAIC04NTQzLDEzICs5MzM3LDE3IEBACiAJbGY5NSopCQkJCSMgTGFoZXkgRm9ydHJhbiA4LjEKIAkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQogCSAgdG1wX3NoYXJlZGZsYWc9Jy0tc2hhcmVkJyA7OwotCXhsW2NDXSopCQkJIyBJQk0gWEwgQyA4LjAgb24gUFBDIChkZWFsIHdpdGggeGxmIGJlbG93KQorCXhsW2NDXSogfCBiZ3hsW2NDXSogfCBtcGl4bFtjQ10qKSAjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cpCiAJICB0bXBfc2hhcmVkZmxhZz0nLXFta3Nocm9iaicKIAkgIHRtcF9hZGRmbGFnPSA7OworCW52Y2MqKQkjIEN1ZGEgQ29tcGlsZXIgRHJpdmVyIDIuMgorCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCSAgY29tcGlsZXJfbmVlZHNfb2JqZWN0PXllcworCSAgOzsKIAllc2FjCiAJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCiAJKlN1blwgQyopCQkJIyBTdW4gQyA1LjkKLQkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwogCSAgY29tcGlsZXJfbmVlZHNfb2JqZWN0PXllcwogCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7OwogCSpTdW5cIEYqKQkJCSMgU3VuIEZvcnRyYW4gOC4zCkBAIC04NTY1LDE3ICs5MzYzLDE2IEBACiAgICAgICAgIGZpCiAKIAljYXNlICRjY19iYXNlbmFtZSBpbgotCXhsZiopCisJeGxmKiB8IGJnZiogfCBiZ3hsZiogfCBtcGl4bGYqKQogCSAgIyBJQk0gWEwgRm9ydHJhbiAxMC4xIG9uIFBQQyBjYW5ub3QgY3JlYXRlIHNoYXJlZCBsaWJzIGl0c2VsZgogCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5vLXdob2xlLWFyY2hpdmUnCi0JICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPQotCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nLXJwYXRoICRsaWJkaXInCi0JICBhcmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLW8gJGxpYicKKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKKwkgIGFyY2hpdmVfY21kcz0nJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLW8gJGxpYicKIAkgIGlmIHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KIAkgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KIAkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CiAJICAgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0JICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLXZlcnNpb24tc2NyaXB0ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwogCSAgZmkKIAkgIDs7CiAJZXNhYwpAQCAtODU4NCwxMyArOTM4MSwxMyBAQAogICAgICAgZmkKICAgICAgIDs7CiAKLSAgICBuZXRic2QqKQorICAgIG5ldGJzZCogfCBuZXRic2RlbGYqLWdudSkKICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCiAJYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJwogCXdsYXJjPQogICAgICAgZWxzZQotCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0JYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwogICAgICAgZmkKICAgICAgIDs7CiAKQEAgLTg2MDgsOCArOTQwNSw4IEBACiAKIF9MVF9FT0YKICAgICAgIGVsaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0JYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwogICAgICAgZWxzZQogCWxkX3NobGlicz1ubwogICAgICAgZmkKQEAgLTg2NTUsOCArOTQ1Miw4IEBACiAKICAgICAqKQogICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0JYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCisJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwogICAgICAgZWxzZQogCWxkX3NobGlicz1ubwogICAgICAgZmkKQEAgLTg2OTYsOCArOTQ5MywxMCBAQAogICAgICAgZWxzZQogCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgogCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKwkjIEFsc28sIEFJWCBubSB0cmVhdHMgd2VhayBkZWZpbmVkIHN5bWJvbHMgbGlrZSBvdGhlciBnbG9iYWwKKwkjIGRlZmluZWQgc3ltYm9scywgd2hlcmVhcyBHTlUgbm0gbWFya3MgdGhlbSBhcyAiVyIuCiAJaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotCSAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKwkgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpIHx8IChcJCAyID09ICJXIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKIAllbHNlCiAJICBleHBvcnRfc3ltYm9sc19jbWRzPSckTk0gLUJDcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikpICYmIChzdWJzdHIoXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKIAlmaQpAQCAtODc1OSw2ICs5NTU4LDcgQEAKIAlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KIAkgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwogCWZpCisJbGlua19hbGxfZGVwbGlicz1ubwogICAgICAgZWxzZQogCSMgbm90IHVzaW5nIGdjYwogCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCkBAIC04Nzg0LDcgKzk1ODQsMTMgQEAKIAlhbGxvd191bmRlZmluZWRfZmxhZz0nLWJlcm9rJwogICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KICAgICAgICAgIyBlbXB0eSBleGVjdXRhYmxlLgotICAgICAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisgICAgICAgIGlmIHRlc3QgIiR7bHRfY3ZfYWl4X2xpYnBhdGgrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJwYXRoCitlbHNlCisgIGlmICR7bHRfY3ZfYWl4X2xpYnBhdGhfKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogLyogZW5kIGNvbmZkZWZzLmguICAqLwogCiBpbnQKQEAgLTg3OTcsMjUgKzk2MDMsMzIgQEAKIF9BQ0VPRgogaWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgogCi1sdF9haXhfbGlicGF0aF9zZWQ9JwotICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLQkvXjAvIHsKLQkgICAgcy9eMCAgKlwoLipcKSQvXDEvCi0JICAgIHAKLQl9Ci0gICAgfScKLWFpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotaWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLWZpCisgIGx0X2FpeF9saWJwYXRoX3NlZD0nCisgICAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisJICAvXjAvIHsKKwkgICAgICBzL14wICAqXChbXiBdKlwpICokL1wxLworCSAgICAgIHAKKwkgIH0KKyAgICAgIH0nCisgIGx0X2N2X2FpeF9saWJwYXRoXz1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKyAgIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorICBpZiB0ZXN0IC16ICIkbHRfY3ZfYWl4X2xpYnBhdGhfIjsgdGhlbgorICAgIGx0X2N2X2FpeF9saWJwYXRoXz1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKyAgZmkKIGZpCiBybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotaWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCisgIGlmIHRlc3QgLXogIiRsdF9jdl9haXhfbGlicGF0aF8iOyB0aGVuCisgICAgbHRfY3ZfYWl4X2xpYnBhdGhfPSIvdXNyL2xpYjovbGliIgorICBmaQorCitmaQorCisgIGFpeF9saWJwYXRoPSRsdF9jdl9haXhfbGlicGF0aF8KK2ZpCiAKICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gJEVDSE8gIlgke3dsfSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiB8ICRYc2VkOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCisgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGZ1bmNfZWNob19hbGwgIiR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCiAgICAgICBlbHNlCiAJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KIAkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIgJGxpYmRpcjovdXNyL2xpYjovbGliJwpAQCAtODgyNCw3ICs5NjM3LDEzIEBACiAJZWxzZQogCSAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KIAkgIyBlbXB0eSBleGVjdXRhYmxlLgotCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisJIGlmIHRlc3QgIiR7bHRfY3ZfYWl4X2xpYnBhdGgrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJwYXRoCitlbHNlCisgIGlmICR7bHRfY3ZfYWl4X2xpYnBhdGhfKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogLyogZW5kIGNvbmZkZWZzLmguICAqLwogCiBpbnQKQEAgLTg4MzcsMzAgKzk2NTYsNDIgQEAKIF9BQ0VPRgogaWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgogCi1sdF9haXhfbGlicGF0aF9zZWQ9JwotICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLQkvXjAvIHsKLQkgICAgcy9eMCAgKlwoLipcKSQvXDEvCi0JICAgIHAKLQl9Ci0gICAgfScKLWFpeF9saWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotaWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotICBhaXhfbGlicGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLWZpCisgIGx0X2FpeF9saWJwYXRoX3NlZD0nCisgICAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7CisJICAvXjAvIHsKKwkgICAgICBzL14wICAqXChbXiBdKlwpICokL1wxLworCSAgICAgIHAKKwkgIH0KKyAgICAgIH0nCisgIGx0X2N2X2FpeF9saWJwYXRoXz1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKyAgIyBDaGVjayBmb3IgYSA2NC1iaXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgorICBpZiB0ZXN0IC16ICIkbHRfY3ZfYWl4X2xpYnBhdGhfIjsgdGhlbgorICAgIGx0X2N2X2FpeF9saWJwYXRoXz1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKyAgZmkKIGZpCiBybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotaWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbiBhaXhfbGlicGF0aD0iL3Vzci9saWI6L2xpYiI7IGZpCisgIGlmIHRlc3QgLXogIiRsdF9jdl9haXhfbGlicGF0aF8iOyB0aGVuCisgICAgbHRfY3ZfYWl4X2xpYnBhdGhfPSIvdXNyL2xpYjovbGliIgorICBmaQorCitmaQorCisgIGFpeF9saWJwYXRoPSRsdF9jdl9haXhfbGlicGF0aF8KK2ZpCiAKIAkgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKIAkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCiAJICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCiAJICBub191bmRlZmluZWRfZmxhZz0nICR7d2x9LWJlcm5vdG9rJwogCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJvaycKLQkgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwotCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyRjb252ZW5pZW5jZScKKwkgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKwkgICAgIyBXZSBvbmx5IHVzZSB0aGlzIGNvZGUgZm9yIEdOVSBsZHMgdGhhdCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZS4KKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCSAgZWxzZQorCSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyRjb252ZW5pZW5jZScKKwkgIGZpCiAJICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKIAkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWlsZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCiAJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCkBAIC04ODkyLDIwICs5NzIzLDY0IEBACiAgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgogICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwogICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyAnCi0gICAgICBhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAotICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KLSAgICAgIGxpYmV4dD1saWIKLSAgICAgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgotICAgICAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0gICAgICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCi0gICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgJEVDSE8gIlgkZGVwbGlicyIgfCAkWHNlZCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KLSAgICAgIG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J3RydWUnCi0gICAgICAjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgotICAgICAgb2xkX2FyY2hpdmVfY21kcz0nbGliIC1PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJwotICAgICAgZml4X3NyY2ZpbGVfcGF0aD0nYGN5Z3BhdGggLXcgIiRzcmNmaWxlImAnCi0gICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcworICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgICAgIGNsKikKKwkjIE5hdGl2ZSBNU1ZDCisJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nICcKKwlhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAorCWFsd2F5c19leHBvcnRfc3ltYm9scz15ZXMKKwlmaWxlX2xpc3Rfc3BlYz0nQCcKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgorCWxpYmV4dD1saWIKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KKwlzaHJleHRfY21kcz0iLmRsbCIKKwkjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisJYXJjaGl2ZV9jbWRzPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgJGRlcGxpYnMgLVdsLC1kbGx+bGlua25hbWVzPScKKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorCSAgICBzZWQgLW4gLWUgJ3MvXFxcXFxcXCguKlxcXFxcXFwpLy1saW5rXFxcIC1FWFBPUlQ6XFxcXFxcXDEvJyAtZSAnMVxcXCFwJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwOworCSAgZWxzZQorCSAgICBzZWQgLWUgJ3MvXFxcXFxcXCguKlxcXFxcXFwpLy1saW5rXFxcIC1FWFBPUlQ6XFxcXFxcXDEvJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwOworCSAgZml+CisJICAkQ0MgLW8gJHRvb2xfb3V0cHV0X29iamRpciRzb25hbWUgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJzICJAJHRvb2xfb3V0cHV0X29iamRpciRzb25hbWUuZXhwIiAtV2wsLURMTCwtSU1QTElCOiIkdG9vbF9vdXRwdXRfb2JqZGlyJGxpYm5hbWUuZGxsLmxpYiJ+CisJICBsaW5rbmFtZXM9JworCSMgVGhlIGxpbmtlciB3aWxsIG5vdCBhdXRvbWF0aWNhbGx5IGJ1aWxkIGEgc3RhdGljIGxpYiBpZiB3ZSBidWlsZCBhIERMTC4KKwkjIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgKT0ndHJ1ZScKKwllbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcworCWV4Y2x1ZGVfZXhwc3ltcz0nX05VTExfSU1QT1JUX0RFU0NSSVBUT1J8X0lNUE9SVF9ERVNDUklQVE9SXy4qJworCWV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxLERBVEEvJ1wnJyB8ICRTRUQgLWUgJ1wnJy9eW0FJVFddWyBdL3MvLipbIF0vLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKwkjIERvbid0IHVzZSByYW5saWIKKwlvbGRfcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNjQ0ICRvbGRsaWInCisJcG9zdGxpbmtfY21kcz0nbHRfb3V0cHV0ZmlsZT0iQE9VVFBVVEAifgorCSAgbHRfdG9vbF9vdXRwdXRmaWxlPSJAVE9PTF9PVVRQVVRAIn4KKwkgIGNhc2UgJGx0X291dHB1dGZpbGUgaW4KKwkgICAgKi5leGV8Ki5FWEUpIDs7CisJICAgICopCisJICAgICAgbHRfb3V0cHV0ZmlsZT0iJGx0X291dHB1dGZpbGUuZXhlIgorCSAgICAgIGx0X3Rvb2xfb3V0cHV0ZmlsZT0iJGx0X3Rvb2xfb3V0cHV0ZmlsZS5leGUiCisJICAgICAgOzsKKwkgIGVzYWN+CisJICBpZiB0ZXN0ICIkTUFOSUZFU1RfVE9PTCIgIT0gIjoiICYmIHRlc3QgLWYgIiRsdF9vdXRwdXRmaWxlLm1hbmlmZXN0IjsgdGhlbgorCSAgICAkTUFOSUZFU1RfVE9PTCAtbWFuaWZlc3QgIiRsdF90b29sX291dHB1dGZpbGUubWFuaWZlc3QiIC1vdXRwdXRyZXNvdXJjZToiJGx0X3Rvb2xfb3V0cHV0ZmlsZSIgfHwgZXhpdCAxOworCSAgICAkUk0gIiRsdF9vdXRwdXRmaWxlLm1hbmlmZXN0IjsKKwkgIGZpJworCTs7CisgICAgICAqKQorCSMgQXNzdW1lIE1TVkMgd3JhcHBlcgorCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyAnCisJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgorCWxpYmV4dD1saWIKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KKwlzaHJleHRfY21kcz0iLmRsbCIKKwkjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisJYXJjaGl2ZV9jbWRzPSckQ0MgLW8gJGxpYiAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgYGZ1bmNfZWNob19hbGwgIiRkZXBsaWJzIiB8ICRTRUQgJ1wnJ3MvIC1sYyQvLydcJydgIC1saW5rIC1kbGx+bGlua25hbWVzPScKKwkjIFRoZSBsaW5rZXIgd2lsbCBhdXRvbWF0aWNhbGx5IGJ1aWxkIGEgLmxpYiBmaWxlIGlmIHdlIGJ1aWxkIGEgRExMLgorCW9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J3RydWUnCisJIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KKwlvbGRfYXJjaGl2ZV9jbWRzPSdsaWIgLU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCisJZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMKKwk7OworICAgICAgZXNhYwogICAgICAgOzsKIAogICAgIGRhcndpbiogfCByaGFwc29keSopCkBAIC04OTE1LDcgKzk3OTAsMTIgQEAKICAgaGFyZGNvZGVfZGlyZWN0PW5vCiAgIGhhcmRjb2RlX2F1dG9tYXRpYz15ZXMKICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj11bnN1cHBvcnRlZAotICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJworICBpZiB0ZXN0ICIkbHRfY3ZfbGRfZm9yY2VfbG9hZCIgPSAieWVzIjsgdGhlbgorICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSdgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UgJHt3bH0tZm9yY2VfbG9hZCwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCcKKworICBlbHNlCisgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JycKKyAgZmkKICAgbGlua19hbGxfZGVwbGlicz15ZXMKICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9IiRfbHRfZGFyX2FsbG93X3VuZGVmaW5lZCIKICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KQEAgLTg5MjMsNyArOTgwMyw3IEBACiAgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0NDIDs7CiAgIGVzYWMKICAgaWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgotICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWVjaG8KKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1mdW5jX2VjaG9fYWxsCiAgICAgYXJjaGl2ZV9jbWRzPSJcJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgogICAgIG1vZHVsZV9jbWRzPSJcJENDIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kc3ltdXRpbH0iCiAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgpAQCAtODk0MSwxMCArOTgyMSw2IEBACiAgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCiAgICAgICA7OwogCi0gICAgZnJlZWJzZDEqKQotICAgICAgbGRfc2hsaWJzPW5vCi0gICAgICA7OwotCiAgICAgIyBGcmVlQlNEIDIuMi5bMDEyXSBhbGxvd3MgdXMgdG8gaW5jbHVkZSBjKytydDAubyB0byBnZXQgQysrIGNvbnN0cnVjdG9yCiAgICAgIyBzdXBwb3J0LiAgRnV0dXJlIHZlcnNpb25zIGRvIHRoaXMgYXV0b21hdGljYWxseSwgYnV0IGFuIGV4cGxpY2l0IGMrK3J0MC5vCiAgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhlbHBzIHNpZ25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCkBAIC04OTU3LDcgKzk4MzMsNyBAQAogICAgICAgOzsKIAogICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMgb2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KLSAgICBmcmVlYnNkMiopCisgICAgZnJlZWJzZDIuKikKICAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKICAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKICAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCkBAIC04OTY2LDcgKzk4NDIsNyBAQAogCiAgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgogICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSAgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKICAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKICAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KQEAgLTg5NzQsNyArOTg1MCw3IEBACiAKICAgICBocHV4OSopCiAgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotCWFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQgLWZQSUMgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKKwlhcmNoaXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwogICAgICAgZWxzZQogCWFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCiAgICAgICBmaQpAQCAtODk4OSwxNCArOTg2NSwxMyBAQAogICAgICAgOzsKIAogICAgIGhwdXgxMCopCi0gICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCi0JYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKICAgICAgIGVsc2UKIAlhcmNoaXZlX2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCiAgICAgICBmaQogICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCiAJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0JaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0nK2IgJGxpYmRpcicKIAloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKIAloYXJkY29kZV9kaXJlY3Q9eWVzCiAJaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPXllcwpAQCAtOTAwOCwxNiArOTg4MywxNiBAQAogICAgICAgOzsKIAogICAgIGhwdXgxMSopCi0gICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KIAljYXNlICRob3N0X2NwdSBpbgogCWhwcGEqNjQqKQogCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKIAkgIDs7CiAJaWE2NCopCi0JICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCiAJICA7OwogCSopCi0JICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgOzsKIAllc2FjCiAgICAgICBlbHNlCkBAIC05MDI5LDcgKzk5MDQsNDYgQEAKIAkgIGFyY2hpdmVfY21kcz0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgOzsKIAkqKQotCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKworCSAgIyBPbGRlciB2ZXJzaW9ucyBvZiB0aGUgMTEuMDAgY29tcGlsZXIgZG8gbm90IHVuZGVyc3RhbmQgLWIgeWV0CisJICAjIChIUDkyNDUzLTAxIEEuMTEuMDEuMjAgZG9lc24ndCwgSFA5MjQ1My0wMSBCLjExLlguMzUxNzUtMzUxNzYuR1AgZG9lcykKKwkgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJENDIHVuZGVyc3RhbmRzIC1iIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRDQyB1bmRlcnN0YW5kcyAtYi4uLiAiID4mNjsgfQoraWYgJHtsdF9jdl9wcm9nX2NvbXBpbGVyX19iKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgbHRfY3ZfcHJvZ19jb21waWxlcl9fYj1ubworICAgc2F2ZV9MREZMQUdTPSIkTERGTEFHUyIKKyAgIExERkxBR1M9IiRMREZMQUdTIC1iIgorICAgZWNobyAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisgICBpZiAoZXZhbCAkYWNfbGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KKyAgICAgIyBUaGUgbGlua2VyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCisgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5ncworICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCisgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1CisgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorICAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisgICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX19iPXllcworICAgICAgIGZpCisgICAgIGVsc2UKKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX19iPXllcworICAgICBmaQorICAgZmkKKyAgICRSTSAtciBjb25mdGVzdCoKKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCisKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfX2IiID4mNQorJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX19iIiA+JjY7IH0KKworaWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX19iIiA9IHh5ZXM7IHRoZW4KKyAgICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworZWxzZQorICAgIGFyY2hpdmVfY21kcz0nJExEIC1iICtoICRzb25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKK2ZpCisKIAkgIDs7CiAJZXNhYwogICAgICAgZmkKQEAgLTkwNTcsMjYgKzk5NzEsMzkgQEAKIAogICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCiAgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogCSMgVHJ5IHRvIHVzZSB0aGUgLWV4cG9ydGVkX3N5bWJvbCBsZCBvcHRpb24sIGlmIGl0IGRvZXMgbm90CiAJIyB3b3JrLCBhc3N1bWUgdGhhdCAtZXhwb3J0c19maWxlIGRvZXMgbm90IHdvcmsgZWl0aGVyIGFuZAogCSMgaW1wbGljaXRseSBleHBvcnQgYWxsIHN5bWJvbHMuCi0gICAgICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0gICAgICAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sICR7d2x9Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYvbnVsbCIKLSAgICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorCSMgVGhpcyBzaG91bGQgYmUgdGhlIHNhbWUgZm9yIGFsbCBsYW5ndWFnZXMsIHNvIG5vIHBlci10YWcgY2FjaGUgdmFyaWFibGUuCisJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSAkaG9zdF9vcyBsaW5rZXIgYWNjZXB0cyAtZXhwb3J0ZWRfc3ltYm9sIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRob3N0X29zIGxpbmtlciBhY2NlcHRzIC1leHBvcnRlZF9zeW1ib2wuLi4gIiA+JjY7IH0KK2lmICR7bHRfY3ZfaXJpeF9leHBvcnRlZF9zeW1ib2wrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgorCSAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sICR7d2x9Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYvbnVsbCIKKwkgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CiAvKiBlbmQgY29uZmRlZnMuaC4gICovCi1pbnQgZm9vKHZvaWQpIHt9CitpbnQgZm9vICh2b2lkKSB7IHJldHVybiAwOyB9CiBfQUNFT0YKIGlmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLQorICBsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbD15ZXMKK2Vsc2UKKyAgbHRfY3ZfaXJpeF9leHBvcnRlZF9zeW1ib2w9bm8KIGZpCiBybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotICAgICAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorICAgICAgICAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfaXJpeF9leHBvcnRlZF9zeW1ib2wiID4mNQorJGFzX2VjaG8gIiRsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbCIgPiY2OyB9CisJaWYgdGVzdCAiJGx0X2N2X2lyaXhfZXhwb3J0ZWRfc3ltYm9sIiA9IHllczsgdGhlbgorICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgJHt3bH0tZXhwb3J0c19maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJZmkKICAgICAgIGVsc2UKLQlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLQlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1leHBvcnRzX2ZpbGUgJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLWV4cG9ydHNfZmlsZSAkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKICAgICAgIGZpCiAgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCiAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCkBAIC05MDg1LDcgKzEwMDEyLDcgQEAKICAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCiAgICAgICA7OwogCi0gICAgbmV0YnNkKikKKyAgICBuZXRic2QqIHwgbmV0YnNkZWxmKi1nbnUpCiAgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgogCWFyY2hpdmVfY21kcz0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQKICAgICAgIGVsc2UKQEAgLTkxMzgsMTcgKzEwMDY1LDE3IEBACiAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCiAgICAgICBoYXJkY29kZV9taW51c19MPXllcwogICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSAgICAgIGFyY2hpdmVfY21kcz0nJEVDSE8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworICAgICAgYXJjaGl2ZV9jbWRzPSckRUNITyAiTElCUkFSWSAkbGlibmFtZSBJTklUSU5TVEFOQ0UiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRFQ0hPICJERVNDUklQVElPTiBcIiRsaWJuYW1lXCIiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lY2hvIERBVEEgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVjaG8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZWNobyBFWFBPUlRTID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lbXhleHAgJGxpYm9ianMgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfiRDQyAtWmRsbCAtWmNydGRsbCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCiAgICAgICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuYSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCiAgICAgICA7OwogCiAgICAgb3NmMyopCiAgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgogCWFsbG93X3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLQlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKICAgICAgIGVsc2UKIAlhbGxvd191bmRlZmluZWRfZmxhZz0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLQlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKICAgICAgIGZpCiAgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz0nbm8nCiAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCkBAIC05MTU4LDEzICsxMDA4NSwxMyBAQAogICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZwogICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KIAlhbGxvd191bmRlZmluZWRfZmxhZz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0JYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKIAloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCiAgICAgICBlbHNlCiAJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0JYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAJYXJjaGl2ZV9leHBzeW1fY21kcz0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBwcmludGYgIiVzXFxuIiAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLQkkQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRSTSAkbGliLmV4cCcKKwkkQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRSTSAkbGliLmV4cCcKIAogCSMgQm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKIAloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctcnBhdGggJGxpYmRpcicKQEAgLTkxNzcsOSArMTAxMDQsOSBAQAogICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9JyAteiBkZWZzJwogICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KIAl3bGFyYz0nJHt3bH0nCi0JYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKIAlhcmNoaXZlX2V4cHN5bV9jbWRzPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0JICAkQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworCSAgJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCiAgICAgICBlbHNlCiAJY2FzZSBgJENDIC1WIDI+JjFgIGluCiAJKiJDb21waWxlcnMgNS4wIiopCkBAIC05MzY3LDQ0ICsxMDI5NCw1MCBAQAogICAgICAgIyB0byBsZCwgZG9uJ3QgYWRkIC1sYyBiZWZvcmUgLWxnY2MuCiAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbiIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0KLSAgICAgICRSTSBjb25mdGVzdCoKLSAgICAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAoraWYgJHtsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sYys6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgICRSTSBjb25mdGVzdCoKKwllY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKIAotICAgICAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX2NvbXBpbGVcIiI7IH0gPiY1CisJaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX2NvbXBpbGVcIiI7IH0gPiY1CiAgIChldmFsICRhY19jb21waWxlKSAyPiY1CiAgIGFjX3N0YXR1cz0kPwogICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgotICAgICAgICBzb25hbWU9Y29uZnRlc3QKLSAgICAgICAgbGliPWNvbmZ0ZXN0Ci0gICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAotICAgICAgICBkZXBsaWJzPQotICAgICAgICB3bD0kbHRfcHJvZ19jb21waWxlcl93bAotCXBpY19mbGFnPSRsdF9wcm9nX2NvbXBpbGVyX3BpYwotICAgICAgICBjb21waWxlcl9mbGFncz0tdgotICAgICAgICBsaW5rZXJfZmxhZ3M9LXYKLSAgICAgICAgdmVyc3RyaW5nPQotICAgICAgICBvdXRwdXRfb2JqZGlyPS4KLSAgICAgICAgbGlibmFtZT1jb25mdGVzdAotICAgICAgICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZwotICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0KLSAgICAgICAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFyY2hpdmVfY21kcyAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIjsgfSA+JjUKKwkgIHNvbmFtZT1jb25mdGVzdAorCSAgbGliPWNvbmZ0ZXN0CisJICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpleHQKKwkgIGRlcGxpYnM9CisJICB3bD0kbHRfcHJvZ19jb21waWxlcl93bAorCSAgcGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJfcGljCisJICBjb21waWxlcl9mbGFncz0tdgorCSAgbGlua2VyX2ZsYWdzPS12CisJICB2ZXJzdHJpbmc9CisJICBvdXRwdXRfb2JqZGlyPS4KKwkgIGxpYm5hbWU9Y29uZnRlc3QKKwkgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGFsbG93X3VuZGVmaW5lZF9mbGFnCisJICBhbGxvd191bmRlZmluZWRfZmxhZz0KKwkgIGlmIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFcIiI7IH0gPiY1CiAgIChldmFsICRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpIDI+JjUKICAgYWNfc3RhdHVzPSQ/CiAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9Ci0gICAgICAgIHRoZW4KLQkgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5vCi0gICAgICAgIGVsc2UKLQkgIGFyY2hpdmVfY21kc19uZWVkX2xjPXllcwotICAgICAgICBmaQotICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZz0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZwotICAgICAgZWxzZQotICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSAgICAgIGZpCi0gICAgICAkUk0gY29uZnRlc3QqCi0gICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFyY2hpdmVfY21kc19uZWVkX2xjIiA+JjUKLSRhc19lY2hvICIkYXJjaGl2ZV9jbWRzX25lZWRfbGMiID4mNjsgfQorCSAgdGhlbgorCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sYz1ubworCSAgZWxzZQorCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKKwkgIGZpCisJICBhbGxvd191bmRlZmluZWRfZmxhZz0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZworCWVsc2UKKwkgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorCWZpCisJJFJNIGNvbmZ0ZXN0KgorCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sYyIgPiY1CiskYXNfZWNobyAiJGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjIiA+JjY7IH0KKyAgICAgIGFyY2hpdmVfY21kc19uZWVkX2xjPSRsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sYwogICAgICAgOzsKICAgICBlc2FjCiAgIGZpCkBAIC05NTYyLDExICsxMDQ5NSw2IEBACiAKIAogCi0KLQotCi0KLQogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MuLi4gIiA+JjY7IH0KIApAQCAtOTU3NSwxNiArMTA1MDMsMjMgQEAKICAgICBkYXJ3aW4qKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovLC9MUi8iIDs7CiAgICAgKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsKICAgZXNhYwotICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJnIHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAicyw9LywvLGciYAotICBpZiAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJzsnID4vZGV2L251bGwgOyB0aGVuCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBtaW5ndyogfCBjZWdjYyopIGx0X3NlZF9zdHJpcF9lcT0icyw9XChbQS1aYS16XTpcKSxcMSxnIiA7OworICAgICopIGx0X3NlZF9zdHJpcF9lcT0icyw9LywvLGciIDs7CisgIGVzYWMKKyAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8IGF3ayAkbHRfYXdrX2FyZyB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgJGx0X3NlZF9zdHJpcF9lcWAKKyAgY2FzZSAkbHRfc2VhcmNoX3BhdGhfc3BlYyBpbgorICAqXDsqKQogICAgICMgaWYgdGhlIHBhdGggY29udGFpbnMgIjsiIHRoZW4gd2UgYXNzdW1lIGl0IHRvIGJlIHRoZSBzZXBhcmF0b3IKICAgICAjIG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAiOiIpIC0gaXQgaXMKICAgICAjIGFzc3VtZWQgdGhhdCBubyBwYXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKICAgICAjIG9rYXkgaW4gdGhlIHJlYWwgd29ybGQgd2hlcmUgIjsiIGluIGRpcnBhdGhzIGlzIGl0c2VsZiBwcm9ibGVtYXRpYy4KLSAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0gIGVsc2UKLSAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0gIGZpCisgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgJ3MvOy8gL2cnYAorICAgIDs7CisgICopCisgICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCisgICAgOzsKKyAgZXNhYwogICAjIE9rLCBub3cgd2UgaGF2ZSB0aGUgcGF0aCwgc2VwYXJhdGVkIGJ5IHNwYWNlcywgd2UgY2FuIHN0ZXAgdGhyb3VnaCBpdAogICAjIGFuZCBhZGQgbXVsdGlsaWIgZGlyIGlmIG5lY2Vzc2FyeS4KICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9CkBAIC05NTk3LDcgKzEwNTMyLDcgQEAKIAlsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKICAgICBmaQogICBkb25lCi0gIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyB8IGF3ayAnCisgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMiIHwgYXdrICcKIEJFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKICAgbHRfZm9vPSIiOwogICBsdF9jb3VudD0wOwpAQCAtOTYxNyw3ICsxMDU1MiwxMyBAQAogICBpZiAobHRfZm9vICE9ICIiKSB7IGx0X2ZyZXFbbHRfZm9vXSsrOyB9CiAgIGlmIChsdF9mcmVxW2x0X2Zvb10gPT0gMSkgeyBwcmludCBsdF9mb287IH0KIH0nYAotICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF9zZWFyY2hfcGF0aF9zcGVjYAorICAjIEFXSyBwcm9ncmFtIGFib3ZlIGVycm9uZW91c2x5IHByZXBlbmRzICcvJyB0byBDOi9kb3MvcGF0aHMKKyAgIyBmb3IgdGhlc2UgaG9zdHMuCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBtaW5ndyogfCBjZWdjYyopIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfFwKKyAgICAgICRTRUQgJ3MsL1woW0EtWmEtel06XCksXDEsZydgIDs7CisgIGVzYWMKKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJGx0X05MMlNQYAogZWxzZQogICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIiCiBmaQpAQCAtOTY0Myw3ICsxMDU4NCw3IEBACiAKIGNhc2UgJGhvc3Rfb3MgaW4KIGFpeDMqKQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICiAKQEAgLTk2NTIsNyArMTA1OTMsNyBAQAogICA7OwogCiBhaXhbNC05XSopCi0gIHZlcnNpb25fdHlwZT1saW51eAorICB2ZXJzaW9uX3R5cGU9bGludXggIyBjb3JyZWN0IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCiAgIG5lZWRfbGliX3ByZWZpeD1ubwogICBuZWVkX3ZlcnNpb249bm8KICAgaGFyZGNvZGVfaW50b19saWJzPXllcwpAQCAtOTcwNSw3ICsxMDY0Niw3IEBACiAgIG02OGspCiAgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKICAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgotICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydzJV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJworICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gZnVuY19lY2hvX2FsbCAiJGxpYiIgfCAkU0VEICdcJydzJV4uKi9cKFteL10qXClcLml4bGlicmFyeSQlXDElJ1wnJ2A7IHRlc3QgJFJNIC9zeXMvbGlicy8ke2xpYm5hbWV9X2l4bGlicmFyeS5hOyAkc2hvdyAiY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSI7IGNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEgfHwgZXhpdCAxOyBkb25lJwogICAgIDs7CiAgIGVzYWMKICAgOzsKQEAgLTk3MTcsNyArMTA2NTgsNyBAQAogICA7OwogCiBic2RpWzQ1XSopCi0gIHZlcnNpb25fdHlwZT1saW51eAorICB2ZXJzaW9uX3R5cGU9bGludXggIyBjb3JyZWN0IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCiAgIG5lZWRfdmVyc2lvbj1ubwogICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKQEAgLTk3MzYsOCArMTA2NzcsOSBAQAogICBuZWVkX3ZlcnNpb249bm8KICAgbmVlZF9saWJfcHJlZml4PW5vCiAKLSAgY2FzZSAkR0NDLCRob3N0X29zIGluCi0gIHllcyxjeWd3aW4qIHwgeWVzLG1pbmd3KiB8IHllcyxwdzMyKiB8IHllcyxjZWdjYyopCisgIGNhc2UgJEdDQywkY2NfYmFzZW5hbWUgaW4KKyAgeWVzLCopCisgICAgIyBnY2MKICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLmRsbC5hJwogICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0YWxsX2NtZHMKICAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwke2ZpbGV9YH4KQEAgLTk3NTgsMzYgKzEwNzAwLDgzIEBACiAgICAgY3lnd2luKikKICAgICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwogICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiAvbGliL3czMmFwaSAvbGliIC91c3IvbG9jYWwvbGliIgorCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL3Vzci9saWIvdzMyYXBpIgogICAgICAgOzsKICAgICBtaW5ndyogfCBjZWdjYyopCiAgICAgICAjIE1pbkdXIERMTHMgdXNlIHRyYWRpdGlvbmFsICdsaWInIHByZWZpeAogICAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgJEdSRVAgIl5saWJyYXJpZXM6IiB8ICRTRUQgLWUgInMvXmxpYnJhcmllczovLyIgLWUgInMsPS8sLyxnImAKLSAgICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVsbDsgdGhlbgotICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKLSAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAotICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0gICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKLSAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAotICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0gICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0gICAgICBlbHNlCi0gICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0gICAgICBmaQogICAgICAgOzsKICAgICBwdzMyKikKICAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwogICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwogICAgICAgOzsKICAgICBlc2FjCisgICAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKKyAgICA7OworCisgICosY2wqKQorICAgICMgTmF0aXZlIE1TVkMKKyAgICBsaWJuYW1lX3NwZWM9JyRuYW1lJworICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0uZGxsLmxpYicKKworICAgIGNhc2UgJGJ1aWxkX29zIGluCisgICAgbWluZ3cqKQorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPQorICAgICAgbHRfc2F2ZV9pZnM9JElGUworICAgICAgSUZTPSc7JworICAgICAgZm9yIGx0X3BhdGggaW4gJExJQgorICAgICAgZG8KKyAgICAgICAgSUZTPSRsdF9zYXZlX2lmcworICAgICAgICAjIExldCBET1MgdmFyaWFibGUgZXhwYW5zaW9uIHByaW50IHRoZSBzaG9ydCA4LjMgc3R5bGUgZmlsZSBuYW1lLgorICAgICAgICBsdF9wYXRoPWBjZCAiJGx0X3BhdGgiIDI+L2Rldi9udWxsICYmIGNtZCAvL0MgImZvciAlaSBpbiAoIi4iKSBkbyBAZWNobyAlfnNpImAKKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjICRsdF9wYXRoIgorICAgICAgZG9uZQorICAgICAgSUZTPSRsdF9zYXZlX2lmcworICAgICAgIyBDb252ZXJ0IHRvIE1TWVMgc3R5bGUuCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IHNlZCAtZSAnc3xcXFxcfC98ZycgLWUgJ3N8IFxcKFthLXpBLVpdXFwpOnwgL1xcMXxnJyAtZSAnc3xeIHx8J2AKKyAgICAgIDs7CisgICAgY3lnd2luKikKKyAgICAgICMgQ29udmVydCB0byB1bml4IGZvcm0sIHRoZW4gdG8gZG9zIGZvcm0sIHRoZW4gYmFjayB0byB1bml4IGZvcm0KKyAgICAgICMgYnV0IHRoaXMgdGltZSBkb3Mgc3R5bGUgKG5vIHNwYWNlcyEpIHNvIHRoYXQgdGhlIHVuaXggZm9ybSBsb29rcworICAgICAgIyBsaWtlIC9jeWdkcml2ZS9jL1BST0dSQX4xOi9jeWdkci4uLgorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0aCAtLXVuaXggIiRMSUIiYAorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0aCAtLWRvcyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgMj4vZGV2L251bGxgCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGN5Z3BhdGggLS1wYXRoIC0tdW5peCAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorICAgICAgOzsKKyAgICAqKQorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkTElCIgorICAgICAgaWYgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsOyB0aGVuCisgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJseSBhIFdpbmRvd3MgZm9ybWF0IFBBVEguCisgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCisgICAgICBlbHNlCisgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKKyAgICAgIGZpCisgICAgICAjIEZJWE1FOiBmaW5kIHRoZSBzaG9ydCBuYW1lIG9yIHRoZSBwYXRoIGNvbXBvbmVudHMsIGFzIHNwYWNlcyBhcmUKKyAgICAgICMgY29tbW9uLiAoZS5nLiAiUHJvZ3JhbSBGaWxlcyIgLT4gIlBST0dSQX4xIikKKyAgICAgIDs7CisgICAgZXNhYworCisgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGluc3RhbGxfY21kcworICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgorICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHtiYXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKyAgICAgIGRsZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgorICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxuYW1lJworICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+CisgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgorICAgICAgICRSTSBcJGRscGF0aCcKKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgICAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxpbmsuZXhlJwogICAgIDs7CiAKICAgKikKKyAgICAjIEFzc3VtZSBNU1ZDIHdyYXBwZXIKICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9ICRsaWJuYW1lLmxpYicKKyAgICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJwogICAgIDs7CiAgIGVzYWMKLSAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKICAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAuIGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCiAgIHNobGlicGF0aF92YXI9UEFUSAogICA7OwpAQCAtOTgwOCw3ICsxMDc5Nyw3IEBACiAgIDs7CiAKIGRndXgqKQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBuZWVkX2xpYl9wcmVmaXg9bm8KICAgbmVlZF92ZXJzaW9uPW5vCiAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKQEAgLTk4MTYsMTAgKzEwODA1LDYgQEAKICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKICAgOzsKIAotZnJlZWJzZDEqKQotICBkeW5hbWljX2xpbmtlcj1ubwotICA7OwotCiBmcmVlYnNkKiB8IGRyYWdvbmZseSopCiAgICMgRHJhZ29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKICAgIyB2ZXJzaW9uaW5nIG1lY2hhbmlzbSwgYWRqdXN0IHRoaXMuCkBAIC05ODI3LDcgKzEwODEyLDcgQEAKICAgICBvYmpmb3JtYXQ9YC91c3IvYmluL29iamZvcm1hdGAKICAgZWxzZQogICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSAgICBmcmVlYnNkWzEyM10qKSBvYmpmb3JtYXQ9YW91dCA7OworICAgIGZyZWVic2RbMjNdLiopIG9iamZvcm1hdD1hb3V0IDs7CiAgICAgKikgb2JqZm9ybWF0PWVsZiA7OwogICAgIGVzYWMKICAgZmkKQEAgLTk4NDUsNyArMTA4MzAsNyBAQAogICBlc2FjCiAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICiAgIGNhc2UgJGhvc3Rfb3MgaW4KLSAgZnJlZWJzZDIqKQorICBmcmVlYnNkMi4qKQogICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKICAgICA7OwogICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQpAQCAtOTg2NSwxMiArMTA4NTAsMjYgQEAKICAgOzsKIAogZ251KikKLSAgdmVyc2lvbl90eXBlPWxpbnV4CisgIHZlcnNpb25fdHlwZT1saW51eCAjIGNvcnJlY3QgdG8gZ251L2xpbnV4IGR1cmluZyB0aGUgbmV4dCBiaWcgcmVmYWN0b3IKICAgbmVlZF9saWJfcHJlZml4PW5vCiAgIG5lZWRfdmVyc2lvbj1ubwogICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCiAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCiAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgIDs7CisKK2hhaWt1KikKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBydW50aW1lX2xvYWRlciIKKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JworICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJworICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPScvYm9vdC9ob21lL2NvbmZpZy9saWIgL2Jvb3QvY29tbW9uL2xpYiAvYm9vdC9zeXN0ZW0vbGliJwogICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCiAgIDs7CiAKQEAgLTk5MTYsMTIgKzEwOTE1LDE0IEBACiAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKICAgICA7OwogICBlc2FjCi0gICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgorICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NSwgLi4uCiAgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJworICAjIG9yIGZhaWxzIG91dHJpZ2h0LCBzbyBvdmVycmlkZSBhdG9taWNhbGx5OgorICBpbnN0YWxsX292ZXJyaWRlX21vZGU9NTU1CiAgIDs7CiAKIGludGVyaXhbMy05XSopCi0gIHZlcnNpb25fdHlwZT1saW51eAorICB2ZXJzaW9uX3R5cGU9bGludXggIyBjb3JyZWN0IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCiAgIG5lZWRfbGliX3ByZWZpeD1ubwogICBuZWVkX3ZlcnNpb249bm8KICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKQEAgLTk5MzcsNyArMTA5MzgsNyBAQAogICAgIG5vbnN0b3B1eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKICAgICAqKQogCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLQkJdmVyc2lvbl90eXBlPWxpbnV4CisJCXZlcnNpb25fdHlwZT1saW51eCAjIGNvcnJlY3QgdG8gZ251L2xpbnV4IGR1cmluZyB0aGUgbmV4dCBiaWcgcmVmYWN0b3IKIAllbHNlCiAJCXZlcnNpb25fdHlwZT1pcml4CiAJZmkgOzsKQEAgLTk5NzQsOSArMTA5NzUsOSBAQAogICBkeW5hbWljX2xpbmtlcj1ubwogICA7OwogCi0jIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi1saW51eCogfCBrKmJzZCotZ251KQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyMgVGhpcyBtdXN0IGJlIGdsaWJjL0VMRi4KK2xpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBuZWVkX2xpYl9wcmVmaXg9bm8KICAgbmVlZF92ZXJzaW9uPW5vCiAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwpAQCAtOTk4NCwxMiArMTA5ODUsMTcgQEAKICAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRpcicKICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCisKICAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5QQVRICi0gIHNhdmVfTERGTEFHUz0kTERGTEFHUwotICBzYXZlX2xpYmRpcj0kbGliZGlyCi0gIGV2YWwgImxpYmRpcj0vZm9vOyB3bD1cIiRsdF9wcm9nX2NvbXBpbGVyX3dsXCI7IFwKLSAgICAgICBMREZMQUdTPVwiXCRMREZMQUdTICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIiCi0gIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKyAgaWYgJHtsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKyAgICBzYXZlX0xERkxBR1M9JExERkxBR1MKKyAgICBzYXZlX2xpYmRpcj0kbGliZGlyCisgICAgZXZhbCAibGliZGlyPS9mb287IHdsPVwiJGx0X3Byb2dfY29tcGlsZXJfd2xcIjsgXAorCSBMREZMQUdTPVwiXCRMREZMQUdTICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIiCisgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogLyogZW5kIGNvbmZkZWZzLmguICAqLwogCiBpbnQKQEAgLTEwMDAyLDI2ICsxMTAwOCwyNyBAQAogX0FDRU9GCiBpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CiAgIGlmICAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGw7IHRoZW4gOgotICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCisgIGx0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKIGZpCiBmaQogcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCiAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCi0gIGxpYmRpcj0kc2F2ZV9saWJkaXIKKyAgICBMREZMQUdTPSRzYXZlX0xERkxBR1MKKyAgICBsaWJkaXI9JHNhdmVfbGliZGlyCisKK2ZpCisKKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKIAogICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KICAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCiAgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCiAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKIAotICAjIEFkZCBBQkktc3BlY2lmaWMgZGlyZWN0b3JpZXMgdG8gdGhlIHN5c3RlbSBsaWJyYXJ5IHBhdGguCi0gIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgotCiAgICMgQXBwZW5kIGxkLnNvLmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCiAgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0gICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAotICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgorICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFwkMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZztzLyIvL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCisgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgJGx0X2xkX2V4dHJhIgogICBmaQogCiAgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgpAQCAtMTAwMzMsNiArMTEwNDAsMTggQEAKICAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKICAgOzsKIAorbmV0YnNkZWxmKi1nbnUpCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJworICA7OworCiBuZXRic2QqKQogICB2ZXJzaW9uX3R5cGU9c3Vub3MKICAgbmVlZF9saWJfcHJlZml4PW5vCkBAIC0xMDA1Miw3ICsxMTA3MSw3IEBACiAgIDs7CiAKIG5ld3NvczYpCi0gIHZlcnNpb25fdHlwZT1saW51eAorICB2ZXJzaW9uX3R5cGU9bGludXggIyBjb3JyZWN0IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCiAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwogICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAogICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCkBAIC0xMDEyMSw3ICsxMTE0MCw3IEBACiAgIDs7CiAKIHNvbGFyaXMqKQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBuZWVkX2xpYl9wcmVmaXg9bm8KICAgbmVlZF92ZXJzaW9uPW5vCiAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwpAQCAtMTAxNDYsNyArMTExNjUsNyBAQAogICA7OwogCiBzeXN2NCB8IHN5c3Y0LjMqKQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKQEAgLTEwMTcwLDcgKzExMTg5LDcgQEAKIAogc3lzdjQqTVAqKQogICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0gICAgdmVyc2lvbl90eXBlPWxpbnV4CisgICAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCiAgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3InCiAgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKQEAgLTEwMjAxLDcgKzExMjIwLDcgQEAKIAogdHBmKikKICAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1ob3N0ID0gR05VL0xpbnV4LgotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBuZWVkX2xpYl9wcmVmaXg9bm8KICAgbmVlZF92ZXJzaW9uPW5vCiAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwpAQCAtMTAyMTEsNyArMTEyMzAsNyBAQAogICA7OwogCiB1dHM0KikKLSAgdmVyc2lvbl90eXBlPWxpbnV4CisgIHZlcnNpb25fdHlwZT1saW51eCAjIGNvcnJlY3QgdG8gZ251L2xpbnV4IGR1cmluZyB0aGUgbmV4dCBiaWcgcmVmYWN0b3IKICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCiAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCiAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICkBAIC0xMDMyMyw2ICsxMTM0MiwxMSBAQAogCiAKIAorCisKKworCisKICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+JjY7IH0KIGhhcmRjb2RlX2FjdGlvbj0KQEAgLTEwMzk1LDcgKzExNDE5LDcgQEAKICAgIyBpZiBsaWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWluc3QgaXQKICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfbGliX2RsX2Rsb3BlbitzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X2xpYl9kbF9kbG9wZW4rOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkBAIC0xMDQyOSw3ICsxMTQ1Myw3IEBACiBmaQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjUKICRhc19lY2hvICIkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY2OyB9Ci1pZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbF9kbG9wZW4iID0geCIieWVzOyB0aGVuIDoKK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPSB4eWVzOyB0aGVuIDoKICAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Blbl9saWJzPSItbGRsIgogZWxzZQogCkBAIC0xMDQ0MywxMiArMTE0NjcsMTIgQEAKIAogICAqKQogICAgIGFjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIgInNobF9sb2FkIiAiYWNfY3ZfZnVuY19zaGxfbG9hZCIKLWlmIHRlc3QgIngkYWNfY3ZfZnVuY19zaGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4gOgoraWYgdGVzdCAieCRhY19jdl9mdW5jX3NobF9sb2FkIiA9IHh5ZXM7IHRoZW4gOgogICBsdF9jdl9kbG9wZW49InNobF9sb2FkIgogZWxzZQogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBzaGxfbG9hZCBpbiAtbGRsZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9zaGxfbG9hZCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X2xpYl9kbGRfc2hsX2xvYWQrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkBAIC0xMDQ4MiwxNiArMTE1MDYsMTYgQEAKIGZpCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2xpYl9kbGRfc2hsX2xvYWQiID4mNQogJGFzX2VjaG8gIiRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjY7IH0KLWlmIHRlc3QgIngkYWNfY3ZfbGliX2RsZF9zaGxfbG9hZCIgPSB4IiJ5ZXM7IHRoZW4gOgoraWYgdGVzdCAieCRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA9IHh5ZXM7IHRoZW4gOgogICBsdF9jdl9kbG9wZW49InNobF9sb2FkIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbGQiCiBlbHNlCiAgIGFjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIgImRsb3BlbiIgImFjX2N2X2Z1bmNfZGxvcGVuIgotaWYgdGVzdCAieCRhY19jdl9mdW5jX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4gOgoraWYgdGVzdCAieCRhY19jdl9mdW5jX2Rsb3BlbiIgPSB4eWVzOyB0aGVuIDoKICAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iCiBlbHNlCiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbGRsIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9saWJfZGxfZGxvcGVuK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfbGliX2RsX2Rsb3Blbis6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKQEAgLTEwNTI1LDEyICsxMTU0OSwxMiBAQAogZmkKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY1CiAkYXNfZWNobyAiJGFjX2N2X2xpYl9kbF9kbG9wZW4iID4mNjsgfQotaWYgdGVzdCAieCRhY19jdl9saWJfZGxfZGxvcGVuIiA9IHgiInllczsgdGhlbiA6CitpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbF9kbG9wZW4iID0geHllczsgdGhlbiA6CiAgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCIKIGVsc2UKICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3ZsZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3ZsZC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9saWJfc3ZsZF9kbG9wZW4rc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9saWJfc3ZsZF9kbG9wZW4rOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkBAIC0xMDU2NCwxMiArMTE1ODgsMTIgQEAKIGZpCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY1CiAkYXNfZWNobyAiJGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY2OyB9Ci1pZiB0ZXN0ICJ4JGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPSB4IiJ5ZXM7IHRoZW4gOgoraWYgdGVzdCAieCRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID0geHllczsgdGhlbiA6CiAgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxzdmxkIgogZWxzZQogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBkbGRfbGluayBpbiAtbGRsZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxkX2xpbmsgaW4gLWxkbGQuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfbGliX2RsZF9kbGRfbGluaytzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X2xpYl9kbGRfZGxkX2xpbmsrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCkBAIC0xMDYwMyw3ICsxMTYyNyw3IEBACiBmaQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA+JjUKICRhc19lY2hvICIkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPiY2OyB9Ci1pZiB0ZXN0ICJ4JGFjX2N2X2xpYl9kbGRfZGxkX2xpbmsiID0geCIieWVzOyB0aGVuIDoKK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIgPSB4eWVzOyB0aGVuIDoKICAgbHRfY3ZfZGxvcGVuPSJkbGRfbGluayIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIgogZmkKIApAQCAtMTA2NDQsNyArMTE2NjgsNyBAQAogCiAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZiIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsdF9jdl9kbG9wZW5fc2VsZitzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2x0X2N2X2Rsb3Blbl9zZWxmKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgpAQCAtMTA2NTMsNyArMTE2NzcsNyBAQAogICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxuZWVkX3VzY29yZT0yCiAgIGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCiAgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0jbGluZSAxMDY1NiAiY29uZmlndXJlIgorI2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAKICNpZiBIQVZFX0RMRkNOX0gKQEAgLTEwNjk0LDcgKzExNzE4LDEzIEBACiAjICBlbmRpZgogI2VuZGlmCiAKLXZvaWQgZm5vcmQoKSB7IGludCBpPTQyO30KKy8qIFdoZW4gLWZ2aXNiaWxpdHk9aGlkZGVuIGlzIHVzZWQsIGFzc3VtZSB0aGUgY29kZSBoYXMgYmVlbiBhbm5vdGF0ZWQKKyAgIGNvcnJlc3BvbmRpbmdseSBmb3IgdGhlIHN5bWJvbHMgbmVlZGVkLiAgKi8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKChfX0dOVUNfXyA9PSAzKSAmJiAoX19HTlVDX01JTk9SX18gPj0gMykpIHx8IChfX0dOVUNfXyA+IDMpKQoraW50IGZub3JkICgpIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpOworI2VuZGlmCisKK2ludCBmbm9yZCAoKSB7IHJldHVybiA0MjsgfQogaW50IG1haW4gKCkKIHsKICAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7CkBAIC0xMDcwMyw3ICsxMTczMywxMSBAQAogICBpZiAoc2VsZikKICAgICB7CiAgICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKLSAgICAgIGVsc2UgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisgICAgICBlbHNlCisgICAgICAgIHsKKwkgIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpICBzdGF0dXMgPSAkbHRfZGxuZWVkX3VzY29yZTsKKyAgICAgICAgICBlbHNlIHB1dHMgKGRsZXJyb3IgKCkpOworCX0KICAgICAgIC8qIGRsY2xvc2UgKHNlbGYpOyAqLwogICAgIH0KICAgZWxzZQpAQCAtMTA3NDAsNyArMTE3NzQsNyBAQAogICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwiXCRMREZMQUdTICRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCiAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2x0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYytzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2x0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIAkgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKQEAgLTEwNzQ5LDcgKzExNzgzLDcgQEAKICAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgogICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgotI2xpbmUgMTA3NTIgImNvbmZpZ3VyZSIKKyNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgogCiAjaWYgSEFWRV9ETEZDTl9ICkBAIC0xMDc5MCw3ICsxMTgyNCwxMyBAQAogIyAgZW5kaWYKICNlbmRpZgogCi12b2lkIGZub3JkKCkgeyBpbnQgaT00Mjt9CisvKiBXaGVuIC1mdmlzYmlsaXR5PWhpZGRlbiBpcyB1c2VkLCBhc3N1bWUgdGhlIGNvZGUgaGFzIGJlZW4gYW5ub3RhdGVkCisgICBjb3JyZXNwb25kaW5nbHkgZm9yIHRoZSBzeW1ib2xzIG5lZWRlZC4gICovCisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0gMykgJiYgKF9fR05VQ19NSU5PUl9fID49IDMpKSB8fCAoX19HTlVDX18gPiAzKSkKK2ludCBmbm9yZCAoKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKTsKKyNlbmRpZgorCitpbnQgZm5vcmQgKCkgeyByZXR1cm4gNDI7IH0KIGludCBtYWluICgpCiB7CiAgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9OT1cpOwpAQCAtMTA3OTksNyArMTE4MzksMTEgQEAKICAgaWYgKHNlbGYpCiAgICAgewogICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7Ci0gICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOworICAgICAgZWxzZQorICAgICAgICB7CisJICBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSAgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisgICAgICAgICAgZWxzZSBwdXRzIChkbGVycm9yICgpKTsKKwl9CiAgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KICAgICB9CiAgIGVsc2UKQEAgLTEwOTY4LDYgKzEyMDEyLDggQEAKIAogCiAKKworCiAgICAgICAgIGFjX2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBsaWJ0b29sIgogCiAKQEAgLTEwOTc4LDYgKzEyMDI0LDk3NyBAQAogCiAKIAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQyBjb21waWxlciB2ZW5kb3IiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVuZG9yLi4uICIgPiY2OyB9CitpZiAke2F4X2N2X2NfY29tcGlsZXJfdmVuZG9yKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgIyBub3RlOiBkb24ndCBjaGVjayBmb3IgZ2NjIGZpcnN0IHNpbmNlIHNvbWUgb3RoZXIgY29tcGlsZXJzIGRlZmluZSBfX0dOVUNfXworICB2ZW5kb3JzPSJpbnRlbDogICAgIF9fSUNDLF9fRUNDLF9fSU5URUxfQ09NUElMRVIKKyAgICAgICAgICAgaWJtOiAgICAgICBfX3hsY19fLF9feGxDX18sX19JQk1DX18sX19JQk1DUFBfXworICAgICAgICAgICBwYXRoc2NhbGU6IF9fUEFUSENDX18sX19QQVRIU0NBTEVfXworICAgICAgICAgICBjbGFuZzogICAgIF9fY2xhbmdfXworICAgICAgICAgICBnbnU6ICAgICAgIF9fR05VQ19fCisgICAgICAgICAgIHN1bjogICAgICAgX19TVU5QUk9fQyxfX1NVTlBST19DQworICAgICAgICAgICBocDogICAgICAgIF9fSFBfY2MsX19IUF9hQ0MKKyAgICAgICAgICAgZGVjOiAgICAgICBfX0RFQ0MsX19ERUNDWFgsX19ERUNDX1ZFUixfX0RFQ0NYWF9WRVIKKyAgICAgICAgICAgYm9ybGFuZDogICBfX0JPUkxBTkRDX18sX19UVVJCT0NfXworICAgICAgICAgICBjb21lYXU6ICAgIF9fQ09NT19fCisgICAgICAgICAgIGNyYXk6ICAgICAgX0NSQVlDCisgICAgICAgICAgIGthaTogICAgICAgX19LQ0MKKyAgICAgICAgICAgbGNjOiAgICAgICBfX0xDQ19fCisgICAgICAgICAgIHNnaTogICAgICAgX19zZ2ksc2dpCisgICAgICAgICAgIG1pY3Jvc29mdDogX01TQ19WRVIKKyAgICAgICAgICAgbWV0cm93ZXJrczogX19NV0VSS1NfXworICAgICAgICAgICB3YXRjb206ICAgIF9fV0FUQ09NQ19fCisgICAgICAgICAgIHBvcnRsYW5kOiAgX19QR0kKKyAgICAgICAgICAgdW5rbm93bjogICBVTktOT1dOIgorICBmb3IgdmVudGVzdCBpbiAkdmVuZG9yczsgZG8KKyAgICBjYXNlICR2ZW50ZXN0IGluCisgICAgICAqOikgdmVuZG9yPSR2ZW50ZXN0OyBjb250aW51ZSA7OworICAgICAgKikgIHZlbmNwcD0iZGVmaW5lZCgiYGVjaG8gJHZlbnRlc3QgfCBzZWQgJ3MvLC8pIHx8IGRlZmluZWQoL2cnYCIpIiA7OworICAgIGVzYWMKKyAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgICAgICAjaWYgISgkdmVuY3BwKQorICAgICAgICB0aGlzaXNhbmVycm9yOworICAgICAgI2VuZGlmCisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorICBicmVhaworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorICBkb25lCisgIGF4X2N2X2NfY29tcGlsZXJfdmVuZG9yPWBlY2hvICR2ZW5kb3IgfCBjdXQgLWQ6IC1mMWAKKworZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfY19jb21waWxlcl92ZW5kb3IiID4mNQorJGFzX2VjaG8gIiRheF9jdl9jX2NvbXBpbGVyX3ZlbmRvciIgPiY2OyB9CisKKworCisKKworCisjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtcG9ydGFibGUtYmluYXJ5IHdhcyBnaXZlbi4KK2lmIHRlc3QgIiR7ZW5hYmxlX3BvcnRhYmxlX2JpbmFyeStzZXR9IiA9IHNldDsgdGhlbiA6CisgIGVuYWJsZXZhbD0kZW5hYmxlX3BvcnRhYmxlX2JpbmFyeTsgYWN4X21heG9wdF9wb3J0YWJsZT0kd2l0aHZhbAorZWxzZQorICBhY3hfbWF4b3B0X3BvcnRhYmxlPW5vCitmaQorCisKKyMgVHJ5IHRvIGRldGVybWluZSAiZ29vZCIgbmF0aXZlIGNvbXBpbGVyIGZsYWdzIGlmIG5vbmUgc3BlY2lmaWVkIHZpYSBDRkxBR1MKK2lmIHRlc3QgIiRhY190ZXN0X0NGTEFHUyIgIT0gInNldCI7IHRoZW4KKyAgQ0ZMQUdTPSIiCisgIGNhc2UgJGF4X2N2X2NfY29tcGlsZXJfdmVuZG9yIGluCisgICAgZGVjKSBDRkxBR1M9Ii1uZXdjIC13MCAtTzUgLWFuc2lfYWxpYXMgLWFuc2lfYXJncyAtZnBfcmVvcmRlciAtdHVuZSBob3N0IgorCSBpZiB0ZXN0ICJ4JGFjeF9tYXhvcHRfcG9ydGFibGUiID0geG5vOyB0aGVuCisgICAgICAgICAgIENGTEFHUz0iJENGTEFHUyAtYXJjaCBob3N0IgorICAgICAgICAgZmk7OworCisgICAgc3VuKSBDRkxBR1M9Ii1uYXRpdmUgLWZhc3QgLXhPNSAtZGFsaWduIgorCSBpZiB0ZXN0ICJ4JGFjeF9tYXhvcHRfcG9ydGFibGUiID0geHllczsgdGhlbgorCSAgIENGTEFHUz0iJENGTEFHUyAteGFyY2g9Z2VuZXJpYyIKKyAgICAgICAgIGZpOzsKKworICAgIGhwKSAgQ0ZMQUdTPSIrT2FsbCArT3B0cnNfYW5zaSArRFNuYXRpdmUiCisJIGlmIHRlc3QgIngkYWN4X21heG9wdF9wb3J0YWJsZSIgPSB4eWVzOyB0aGVuCisJICAgQ0ZMQUdTPSIkQ0ZMQUdTICtEQXBvcnRhYmxlIgorCSBmaTs7CisKKyAgICBpYm0pIGlmIHRlc3QgIngkYWN4X21heG9wdF9wb3J0YWJsZSIgPSB4bm87IHRoZW4KKyAgICAgICAgICAgeGxjX29wdD0iLXFhcmNoPWF1dG8gLXF0dW5lPWF1dG8iCisJIGVsc2UKKyAgICAgICAgICAgeGxjX29wdD0iLXF0dW5lPWF1dG8iCisJIGZpCisgICAgICAgICBhc19DQUNIRVZBUj1gJGFzX2VjaG8gImF4X2N2X2NoZWNrX2NmbGFnc19fJHhsY19vcHQiIHwgJGFzX3RyX3NoYAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAkeGxjX29wdCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAkeGxjX29wdC4uLiAiID4mNjsgfQoraWYgZXZhbCBcJHskYXNfQ0FDSEVWQVIrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorCisgIGF4X2NoZWNrX3NhdmVfZmxhZ3M9JENGTEFHUworICBDRkxBR1M9IiRDRkxBR1MgICR4bGNfb3B0IgorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgZXZhbCAiJGFzX0NBQ0hFVkFSPXllcyIKK2Vsc2UKKyAgZXZhbCAiJGFzX0NBQ0hFVkFSPW5vIgorZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorICBDRkxBR1M9JGF4X2NoZWNrX3NhdmVfZmxhZ3MKK2ZpCitldmFsIGFjX3Jlcz1cJCRhc19DQUNIRVZBUgorCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CiskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CitpZiB0ZXN0IHgiYGV2YWwgJ2FzX3ZhbD0keyckYXNfQ0FDSEVWQVInfTskYXNfZWNobyAiJGFzX3ZhbCInYCIgPSB4eWVzOyB0aGVuIDoKKyAgQ0ZMQUdTPSItTzMgLXFhbnNpYWxpYXMgLXcgJHhsY19vcHQiCitlbHNlCisgIENGTEFHUz0iLU8zIC1xYW5zaWFsaWFzIC13IgorICAgICAgICAgICAgICAgIGVjaG8gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIKKyAgICAgICAgICAgICAgICBlY2hvICIqICBZb3Ugc2VlbSB0byBoYXZlIHRoZSBJQk0gIEMgY29tcGlsZXIuICBJdCBpcyAgICAgICoiCisgICAgICAgICAgICAgICAgZWNobyAiKiAgcmVjb21tZW5kZWQgZm9yIGJlc3QgcGVyZm9ybWFuY2UgdGhhdCB5b3UgdXNlOiAgICAqIgorICAgICAgICAgICAgICAgIGVjaG8gIiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiIKKyAgICAgICAgICAgICAgICBlY2hvICIqICAgIENGTEFHUz0tTzMgLXFhcmNoPXh4eCAtcXR1bmU9eHh4IC1xYW5zaWFsaWFzIC13ICoiCisgICAgICAgICAgICAgICAgZWNobyAiKiAgICAgICAgICAgICAgICAgICAgICBeXl4gICAgICAgIF5eXiAgICAgICAgICAgICAgICAqIgorICAgICAgICAgICAgICAgIGVjaG8gIiogIHdoZXJlIHh4eCBpcyBwd3IyLCBwd3IzLCA2MDQsIG9yIHdoYXRldmVyIGtpbmQgb2YgKiIKKyAgICAgICAgICAgICAgICBlY2hvICIqICBDUFUgeW91IGhhdmUuICAoU2V0IHRoZSBDRkxBR1MgZW52aXJvbm1lbnQgdmFyLiAgICoiCisgICAgICAgICAgICAgICAgZWNobyAiKiAgYW5kIHJlLXJ1biBjb25maWd1cmUuKSAgRm9yIG1vcmUgaW5mbywgbWFuIGNjLiAgICAqIgorICAgICAgICAgICAgICAgIGVjaG8gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIKK2ZpCisKKyAgICAgICAgIDs7CisKKyAgICBpbnRlbCkgQ0ZMQUdTPSItTzMgLWFuc2lfYWxpYXMiCisJaWYgdGVzdCAieCRhY3hfbWF4b3B0X3BvcnRhYmxlIiA9IHhubzsgdGhlbgorCSAgaWNjX2FyY2hmbGFnPXVua25vd24KKwkgIGljY19mbGFncz0iIgorCSAgY2FzZSAkaG9zdF9jcHUgaW4KKwkgICAgaTY4Nip8eDg2XzY0KikKKyAgICAgICAgICAgICAgIyBpY2MgYWNjZXB0cyBnY2MgYXNzZW1ibHkgc3ludGF4LCBzbyB0aGVzZSBzaG91bGQgd29yazoKKworYWNfZXh0PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciB4ODYgY3B1aWQgMCBvdXRwdXQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHg4NiBjcHVpZCAwIG91dHB1dC4uLiAiID4mNjsgfQoraWYgJHtheF9jdl9nY2NfeDg2X2NwdWlkXzArOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisgIGF4X2N2X2djY194ODZfY3B1aWRfMD11bmtub3duCitlbHNlCisgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgoraW50CittYWluICgpCit7CisKKyAgICAgaW50IG9wID0gMCwgZWF4LCBlYngsIGVjeCwgZWR4OworICAgICBGSUxFICpmOworICAgICAgX19hc21fXygiY3B1aWQiCisgICAgICAgIDogIj1hIiAoZWF4KSwgIj1iIiAoZWJ4KSwgIj1jIiAoZWN4KSwgIj1kIiAoZWR4KQorICAgICAgICA6ICJhIiAob3ApKTsKKyAgICAgZiA9IGZvcGVuKCJjb25mdGVzdF9jcHVpZCIsICJ3Iik7IGlmICghZikgcmV0dXJuIDE7CisgICAgIGZwcmludGYoZiwgIiV4OiV4OiV4OiV4XG4iLCBlYXgsIGVieCwgZWN4LCBlZHgpOworICAgICBmY2xvc2UoZik7CisgICAgIHJldHVybiAwOworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X3J1biAiJExJTkVOTyI7IHRoZW4gOgorICBheF9jdl9nY2NfeDg2X2NwdWlkXzA9YGNhdCBjb25mdGVzdF9jcHVpZGA7IHJtIC1mIGNvbmZ0ZXN0X2NwdWlkCitlbHNlCisgIGF4X2N2X2djY194ODZfY3B1aWRfMD11bmtub3duOyBybSAtZiBjb25mdGVzdF9jcHVpZAorZmkKK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKKyAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0ZXN0LiRhY19leHQKK2ZpCisKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2djY194ODZfY3B1aWRfMCIgPiY1CiskYXNfZWNobyAiJGF4X2N2X2djY194ODZfY3B1aWRfMCIgPiY2OyB9CithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKKworCithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHg4NiBjcHVpZCAxIG91dHB1dCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgeDg2IGNwdWlkIDEgb3V0cHV0Li4uICIgPiY2OyB9CitpZiAke2F4X2N2X2djY194ODZfY3B1aWRfMSs6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKyAgYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8xPXVua25vd24KK2Vsc2UKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworI2luY2x1ZGUgPHN0ZGlvLmg+CitpbnQKK21haW4gKCkKK3sKKworICAgICBpbnQgb3AgPSAxLCBlYXgsIGVieCwgZWN4LCBlZHg7CisgICAgIEZJTEUgKmY7CisgICAgICBfX2FzbV9fKCJjcHVpZCIKKyAgICAgICAgOiAiPWEiIChlYXgpLCAiPWIiIChlYngpLCAiPWMiIChlY3gpLCAiPWQiIChlZHgpCisgICAgICAgIDogImEiIChvcCkpOworICAgICBmID0gZm9wZW4oImNvbmZ0ZXN0X2NwdWlkIiwgInciKTsgaWYgKCFmKSByZXR1cm4gMTsKKyAgICAgZnByaW50ZihmLCAiJXg6JXg6JXg6JXhcbiIsIGVheCwgZWJ4LCBlY3gsIGVkeCk7CisgICAgIGZjbG9zZShmKTsKKyAgICAgcmV0dXJuIDA7CisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY190cnlfcnVuICIkTElORU5PIjsgdGhlbiA6CisgIGF4X2N2X2djY194ODZfY3B1aWRfMT1gY2F0IGNvbmZ0ZXN0X2NwdWlkYDsgcm0gLWYgY29uZnRlc3RfY3B1aWQKK2Vsc2UKKyAgYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8xPXVua25vd247IHJtIC1mIGNvbmZ0ZXN0X2NwdWlkCitmaQorcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgXAorICBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LmJlYW0gY29uZnRlc3QuJGFjX2V4dAorZmkKKworZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8xIiA+JjUKKyRhc19lY2hvICIkYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8xIiA+JjY7IH0KK2FjX2V4dD1jCithY19jcHA9JyRDUFAgJENQUEZMQUdTJworYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKworCisJICAgICAgY2FzZSAkYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8wIGluICMgc2VlIEFYX0dDQ19BUkNIRkxBRworICAgICAgICAgICAgICAgICo6NzU2ZTY1NDc6KjoqKSAjIEludGVsCisgICAgICAgICAgICAgICAgICBjYXNlICRheF9jdl9nY2NfeDg2X2NwdWlkXzEgaW4KKyAgICAgICAgICAgICAgICAgICAgKjZhPzoqWzIzNF06KjoqfCo2Wzc4OWJdPzoqOio6KikgaWNjX2ZsYWdzPSIteEsiOzsKKyAgICAgICAgICAgICAgICAgICAgKmYzWzM0N106KjoqOip8KmY0MTM0NzoqOio6KikgaWNjX2ZsYWdzPSIteFAgLXhOIC14VyAteEsiOzsKKyAgICAgICAgICAgICAgICAgICAgKmY/PzoqOio6KikgaWNjX2ZsYWdzPSIteE4gLXhXIC14SyI7OworICAgICAgICAgICAgICAgICAgZXNhYyA7OworICAgICAgICAgICAgICBlc2FjIDs7CisgICAgICAgICAgZXNhYworICAgICAgICAgIGlmIHRlc3QgIngkaWNjX2ZsYWdzIiAhPSB4OyB0aGVuCisgICAgICAgICAgICBmb3IgZmxhZyBpbiAkaWNjX2ZsYWdzOyBkbworICAgICAgICAgICAgICBhc19DQUNIRVZBUj1gJGFzX2VjaG8gImF4X2N2X2NoZWNrX2NmbGFnc19fJGZsYWciIHwgJGFzX3RyX3NoYAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAkZmxhZyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAkZmxhZy4uLiAiID4mNjsgfQoraWYgZXZhbCBcJHskYXNfQ0FDSEVWQVIrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorCisgIGF4X2NoZWNrX3NhdmVfZmxhZ3M9JENGTEFHUworICBDRkxBR1M9IiRDRkxBR1MgICRmbGFnIgorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgZXZhbCAiJGFzX0NBQ0hFVkFSPXllcyIKK2Vsc2UKKyAgZXZhbCAiJGFzX0NBQ0hFVkFSPW5vIgorZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorICBDRkxBR1M9JGF4X2NoZWNrX3NhdmVfZmxhZ3MKK2ZpCitldmFsIGFjX3Jlcz1cJCRhc19DQUNIRVZBUgorCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CiskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CitpZiB0ZXN0IHgiYGV2YWwgJ2FzX3ZhbD0keyckYXNfQ0FDSEVWQVInfTskYXNfZWNobyAiJGFzX3ZhbCInYCIgPSB4eWVzOyB0aGVuIDoKKyAgaWNjX2FyY2hmbGFnPSRmbGFnOyBicmVhaworZWxzZQorICA6CitmaQorCisgICAgICAgICAgICBkb25lCisgICAgICAgICAgZmkKKyAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBpY2MgYXJjaGl0ZWN0dXJlIGZsYWciID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGljYyBhcmNoaXRlY3R1cmUgZmxhZy4uLiAiID4mNjsgfQorCSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRpY2NfYXJjaGZsYWciID4mNQorJGFzX2VjaG8gIiRpY2NfYXJjaGZsYWciID4mNjsgfQorICAgICAgICAgIGlmIHRlc3QgIngkaWNjX2FyY2hmbGFnIiAhPSB4dW5rbm93bjsgdGhlbgorICAgICAgICAgICAgQ0ZMQUdTPSIkQ0ZMQUdTICRpY2NfYXJjaGZsYWciCisgICAgICAgICAgZmkKKyAgICAgICAgZmkKKwk7OworCisgICAgZ251KQorICAgICAjIGRlZmF1bHQgb3B0aW1pemF0aW9uIGZsYWdzIGZvciBnY2Mgb24gYWxsIHN5c3RlbXMKKyAgICAgQ0ZMQUdTPSItTzMgLWZvbWl0LWZyYW1lLXBvaW50ZXIiCisKKyAgICAgIyAtbWFsaWduLWRvdWJsZSBmb3IgeDg2IHN5c3RlbXMKKyAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAtbWFsaWduLWRvdWJsZSIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAtbWFsaWduLWRvdWJsZS4uLiAiID4mNjsgfQoraWYgJHtheF9jdl9jaGVja19jZmxhZ3NfX19tYWxpZ25fZG91YmxlKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKworICBheF9jaGVja19zYXZlX2ZsYWdzPSRDRkxBR1MKKyAgQ0ZMQUdTPSIkQ0ZMQUdTICAtbWFsaWduLWRvdWJsZSIKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisgIGF4X2N2X2NoZWNrX2NmbGFnc19fX21hbGlnbl9kb3VibGU9eWVzCitlbHNlCisgIGF4X2N2X2NoZWNrX2NmbGFnc19fX21hbGlnbl9kb3VibGU9bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKyAgQ0ZMQUdTPSRheF9jaGVja19zYXZlX2ZsYWdzCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9jaGVja19jZmxhZ3NfX19tYWxpZ25fZG91YmxlIiA+JjUKKyRhc19lY2hvICIkYXhfY3ZfY2hlY2tfY2ZsYWdzX19fbWFsaWduX2RvdWJsZSIgPiY2OyB9CitpZiB0ZXN0IHgiJGF4X2N2X2NoZWNrX2NmbGFnc19fX21hbGlnbl9kb3VibGUiID0geHllczsgdGhlbiA6CisgIENGTEFHUz0iJENGTEFHUyAtbWFsaWduLWRvdWJsZSIKK2Vsc2UKKyAgOgorZmkKKworCisgICAgICMgIC1mc3RyaWN0LWFsaWFzaW5nIGZvciBnY2MtMi45NSsKKyAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAtZnN0cmljdC1hbGlhc2luZyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAtZnN0cmljdC1hbGlhc2luZy4uLiAiID4mNjsgfQoraWYgJHtheF9jdl9jaGVja19jZmxhZ3NfX19mc3RyaWN0X2FsaWFzaW5nKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKworICBheF9jaGVja19zYXZlX2ZsYWdzPSRDRkxBR1MKKyAgQ0ZMQUdTPSIkQ0ZMQUdTICAtZnN0cmljdC1hbGlhc2luZyIKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisgIGF4X2N2X2NoZWNrX2NmbGFnc19fX2ZzdHJpY3RfYWxpYXNpbmc9eWVzCitlbHNlCisgIGF4X2N2X2NoZWNrX2NmbGFnc19fX2ZzdHJpY3RfYWxpYXNpbmc9bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKyAgQ0ZMQUdTPSRheF9jaGVja19zYXZlX2ZsYWdzCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9jaGVja19jZmxhZ3NfX19mc3RyaWN0X2FsaWFzaW5nIiA+JjUKKyRhc19lY2hvICIkYXhfY3ZfY2hlY2tfY2ZsYWdzX19fZnN0cmljdF9hbGlhc2luZyIgPiY2OyB9CitpZiB0ZXN0IHgiJGF4X2N2X2NoZWNrX2NmbGFnc19fX2ZzdHJpY3RfYWxpYXNpbmciID0geHllczsgdGhlbiA6CisgIENGTEFHUz0iJENGTEFHUyAtZnN0cmljdC1hbGlhc2luZyIKK2Vsc2UKKyAgOgorZmkKKworCisgICAgICMgbm90ZSB0aGF0IHdlIGVuYWJsZSAidW5zYWZlIiBmcCBvcHRpbWl6YXRpb24gd2l0aCBvdGhlciBjb21waWxlcnMsIHRvbworICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBhY2NlcHRzIC1mZmFzdC1tYXRoIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBhY2NlcHRzIC1mZmFzdC1tYXRoLi4uICIgPiY2OyB9CitpZiAke2F4X2N2X2NoZWNrX2NmbGFnc19fX2ZmYXN0X21hdGgrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorCisgIGF4X2NoZWNrX3NhdmVfZmxhZ3M9JENGTEFHUworICBDRkxBR1M9IiRDRkxBR1MgIC1mZmFzdC1tYXRoIgorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgYXhfY3ZfY2hlY2tfY2ZsYWdzX19fZmZhc3RfbWF0aD15ZXMKK2Vsc2UKKyAgYXhfY3ZfY2hlY2tfY2ZsYWdzX19fZmZhc3RfbWF0aD1ubworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorICBDRkxBR1M9JGF4X2NoZWNrX3NhdmVfZmxhZ3MKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2NoZWNrX2NmbGFnc19fX2ZmYXN0X21hdGgiID4mNQorJGFzX2VjaG8gIiRheF9jdl9jaGVja19jZmxhZ3NfX19mZmFzdF9tYXRoIiA+JjY7IH0KK2lmIHRlc3QgeCIkYXhfY3ZfY2hlY2tfY2ZsYWdzX19fZmZhc3RfbWF0aCIgPSB4eWVzOyB0aGVuIDoKKyAgQ0ZMQUdTPSIkQ0ZMQUdTIC1mZmFzdC1tYXRoIgorZWxzZQorICA6CitmaQorCisKKworCisKKworIyBDaGVjayB3aGV0aGVyIC0td2l0aC1nY2MtYXJjaCB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke3dpdGhfZ2NjX2FyY2grc2V0fSIgPSBzZXQ7IHRoZW4gOgorICB3aXRodmFsPSR3aXRoX2djY19hcmNoOyBheF9nY2NfYXJjaD0kd2l0aHZhbAorZWxzZQorICBheF9nY2NfYXJjaD15ZXMKK2ZpCisKKworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZ2NjIGFyY2hpdGVjdHVyZSBmbGFnIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBnY2MgYXJjaGl0ZWN0dXJlIGZsYWcuLi4gIiA+JjY7IH0KK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAiID4mNQorJGFzX2VjaG8gIiIgPiY2OyB9CitpZiAke2F4X2N2X2djY19hcmNoZmxhZys6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisKK2F4X2N2X2djY19hcmNoZmxhZz0idW5rbm93biIKKworaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KKworaWYgdGVzdCAieCRheF9nY2NfYXJjaCIgPSB4eWVzOyB0aGVuCitheF9nY2NfYXJjaD0iIgoraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSBubzsgdGhlbgorY2FzZSAkaG9zdF9jcHUgaW4KKyAgaVszNDU2XTg2Knx4ODZfNjQqKSAjIHVzZSBjcHVpZCBjb2RlcywgaW4gcGFydCBmcm9tIHg4NmluZm8tMS43IGJ5IEQuIEpvbmVzCisKK2FjX2V4dD1jCithY19jcHA9JyRDUFAgJENQUEZMQUdTJworYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgeDg2IGNwdWlkIDAgb3V0cHV0IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciB4ODYgY3B1aWQgMCBvdXRwdXQuLi4gIiA+JjY7IH0KK2lmICR7YXhfY3ZfZ2NjX3g4Nl9jcHVpZF8wKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgorICBheF9jdl9nY2NfeDg2X2NwdWlkXzA9dW5rbm93bgorZWxzZQorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisjaW5jbHVkZSA8c3RkaW8uaD4KK2ludAorbWFpbiAoKQoreworCisgICAgIGludCBvcCA9IDAsIGVheCwgZWJ4LCBlY3gsIGVkeDsKKyAgICAgRklMRSAqZjsKKyAgICAgIF9fYXNtX18oImNwdWlkIgorICAgICAgICA6ICI9YSIgKGVheCksICI9YiIgKGVieCksICI9YyIgKGVjeCksICI9ZCIgKGVkeCkKKyAgICAgICAgOiAiYSIgKG9wKSk7CisgICAgIGYgPSBmb3BlbigiY29uZnRlc3RfY3B1aWQiLCAidyIpOyBpZiAoIWYpIHJldHVybiAxOworICAgICBmcHJpbnRmKGYsICIleDoleDoleDoleFxuIiwgZWF4LCBlYngsIGVjeCwgZWR4KTsKKyAgICAgZmNsb3NlKGYpOworICAgICByZXR1cm4gMDsKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9ydW4gIiRMSU5FTk8iOyB0aGVuIDoKKyAgYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8wPWBjYXQgY29uZnRlc3RfY3B1aWRgOyBybSAtZiBjb25mdGVzdF9jcHVpZAorZWxzZQorICBheF9jdl9nY2NfeDg2X2NwdWlkXzA9dW5rbm93bjsgcm0gLWYgY29uZnRlc3RfY3B1aWQKK2ZpCitybSAtZiBjb3JlICouY29yZSBjb3JlLmNvbmZ0ZXN0LiogZ21vbi5vdXQgYmIub3V0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBcCisgIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuYmVhbSBjb25mdGVzdC4kYWNfZXh0CitmaQorCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9nY2NfeDg2X2NwdWlkXzAiID4mNQorJGFzX2VjaG8gIiRheF9jdl9nY2NfeDg2X2NwdWlkXzAiID4mNjsgfQorYWNfZXh0PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorCisKKworYWNfZXh0PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciB4ODYgY3B1aWQgMSBvdXRwdXQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHg4NiBjcHVpZCAxIG91dHB1dC4uLiAiID4mNjsgfQoraWYgJHtheF9jdl9nY2NfeDg2X2NwdWlkXzErOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisgIGF4X2N2X2djY194ODZfY3B1aWRfMT11bmtub3duCitlbHNlCisgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgoraW50CittYWluICgpCit7CisKKyAgICAgaW50IG9wID0gMSwgZWF4LCBlYngsIGVjeCwgZWR4OworICAgICBGSUxFICpmOworICAgICAgX19hc21fXygiY3B1aWQiCisgICAgICAgIDogIj1hIiAoZWF4KSwgIj1iIiAoZWJ4KSwgIj1jIiAoZWN4KSwgIj1kIiAoZWR4KQorICAgICAgICA6ICJhIiAob3ApKTsKKyAgICAgZiA9IGZvcGVuKCJjb25mdGVzdF9jcHVpZCIsICJ3Iik7IGlmICghZikgcmV0dXJuIDE7CisgICAgIGZwcmludGYoZiwgIiV4OiV4OiV4OiV4XG4iLCBlYXgsIGVieCwgZWN4LCBlZHgpOworICAgICBmY2xvc2UoZik7CisgICAgIHJldHVybiAwOworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X3J1biAiJExJTkVOTyI7IHRoZW4gOgorICBheF9jdl9nY2NfeDg2X2NwdWlkXzE9YGNhdCBjb25mdGVzdF9jcHVpZGA7IHJtIC1mIGNvbmZ0ZXN0X2NwdWlkCitlbHNlCisgIGF4X2N2X2djY194ODZfY3B1aWRfMT11bmtub3duOyBybSAtZiBjb25mdGVzdF9jcHVpZAorZmkKK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKKyAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0ZXN0LiRhY19leHQKK2ZpCisKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2djY194ODZfY3B1aWRfMSIgPiY1CiskYXNfZWNobyAiJGF4X2N2X2djY194ODZfY3B1aWRfMSIgPiY2OyB9CithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKKworICAgICBjYXNlICRheF9jdl9nY2NfeDg2X2NwdWlkXzAgaW4KKyAgICAgICAqOjc1NmU2NTQ3Oio6KikgIyBJbnRlbAorICAgICAgICAgIGNhc2UgJGF4X2N2X2djY194ODZfY3B1aWRfMSBpbgorCSAgICAqNVs0OF0/Oio6KjoqKSBheF9nY2NfYXJjaD0icGVudGl1bS1tbXggcGVudGl1bSIgOzsKKwkgICAgKjU/PzoqOio6KikgYXhfZ2NjX2FyY2g9cGVudGl1bSA7OworCSAgICAqNlszNDU2XT86KjoqOiopIGF4X2djY19hcmNoPSJwZW50aXVtMiBwZW50aXVtcHJvIiA7OworCSAgICAqNmE/OipbMDFdOio6KikgYXhfZ2NjX2FyY2g9InBlbnRpdW0yIHBlbnRpdW1wcm8iIDs7CisJICAgICo2YT86KlsyMzRdOio6KikgYXhfZ2NjX2FyY2g9InBlbnRpdW0zIHBlbnRpdW1wcm8iIDs7CisJICAgICo2WzlkXT86KjoqOiopIGF4X2djY19hcmNoPSJwZW50aXVtLW0gcGVudGl1bTMgcGVudGl1bXBybyIgOzsKKwkgICAgKjZbNzhiXT86KjoqOiopIGF4X2djY19hcmNoPSJwZW50aXVtMyBwZW50aXVtcHJvIiA7OworCSAgICAqNj8/Oio6KjoqKSBheF9nY2NfYXJjaD1wZW50aXVtcHJvIDs7CisgICAgICAgICAgICAqZjNbMzQ3XToqOio6KnwqZjQxMzQ3Oio6KjoqKQorCQljYXNlICRob3N0X2NwdSBpbgorICAgICAgICAgICAgICAgICAgeDg2XzY0KikgYXhfZ2NjX2FyY2g9Im5vY29uYSBwZW50aXVtNCBwZW50aXVtcHJvIiA7OworICAgICAgICAgICAgICAgICAgKikgYXhfZ2NjX2FyY2g9InByZXNjb3R0IHBlbnRpdW00IHBlbnRpdW1wcm8iIDs7CisgICAgICAgICAgICAgICAgZXNhYyA7OworICAgICAgICAgICAgKmY/PzoqOio6KikgYXhfZ2NjX2FyY2g9InBlbnRpdW00IHBlbnRpdW1wcm8iOzsKKyAgICAgICAgICBlc2FjIDs7CisgICAgICAgKjo2ODc0NzU0MToqOiopICMgQU1ECisgICAgICAgICAgY2FzZSAkYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8xIGluCisJICAgICo1WzY3XT86KjoqOiopIGF4X2djY19hcmNoPWs2IDs7CisJICAgICo1WzhkXT86KjoqOiopIGF4X2djY19hcmNoPSJrNi0yIGs2IiA7OworCSAgICAqNVs5XT86KjoqOiopIGF4X2djY19hcmNoPSJrNi0zIGs2IiA7OworCSAgICAqNjA/Oio6KjoqKSBheF9nY2NfYXJjaD1rNyA7OworCSAgICAqNlsxMl0/Oio6KjoqKSBheF9nY2NfYXJjaD0iYXRobG9uIGs3IiA7OworCSAgICAqNlszNF0/Oio6KjoqKSBheF9nY2NfYXJjaD0iYXRobG9uLXRiaXJkIGs3IiA7OworCSAgICAqNjc/Oio6KjoqKSBheF9nY2NfYXJjaD0iYXRobG9uLTQgYXRobG9uIGs3IiA7OworCSAgICAqNls2OGFdPzoqOio6KikKKworYWNfZXh0PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciB4ODYgY3B1aWQgMHg4MDAwMDAwNiBvdXRwdXQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHg4NiBjcHVpZCAweDgwMDAwMDA2IG91dHB1dC4uLiAiID4mNjsgfQoraWYgJHtheF9jdl9nY2NfeDg2X2NwdWlkXzB4ODAwMDAwMDYrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6CisgIGF4X2N2X2djY194ODZfY3B1aWRfMHg4MDAwMDAwNj11bmtub3duCitlbHNlCisgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzdGRpby5oPgoraW50CittYWluICgpCit7CisKKyAgICAgaW50IG9wID0gMHg4MDAwMDAwNiwgZWF4LCBlYngsIGVjeCwgZWR4OworICAgICBGSUxFICpmOworICAgICAgX19hc21fXygiY3B1aWQiCisgICAgICAgIDogIj1hIiAoZWF4KSwgIj1iIiAoZWJ4KSwgIj1jIiAoZWN4KSwgIj1kIiAoZWR4KQorICAgICAgICA6ICJhIiAob3ApKTsKKyAgICAgZiA9IGZvcGVuKCJjb25mdGVzdF9jcHVpZCIsICJ3Iik7IGlmICghZikgcmV0dXJuIDE7CisgICAgIGZwcmludGYoZiwgIiV4OiV4OiV4OiV4XG4iLCBlYXgsIGVieCwgZWN4LCBlZHgpOworICAgICBmY2xvc2UoZik7CisgICAgIHJldHVybiAwOworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X3J1biAiJExJTkVOTyI7IHRoZW4gOgorICBheF9jdl9nY2NfeDg2X2NwdWlkXzB4ODAwMDAwMDY9YGNhdCBjb25mdGVzdF9jcHVpZGA7IHJtIC1mIGNvbmZ0ZXN0X2NwdWlkCitlbHNlCisgIGF4X2N2X2djY194ODZfY3B1aWRfMHg4MDAwMDAwNj11bmtub3duOyBybSAtZiBjb25mdGVzdF9jcHVpZAorZmkKK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKKyAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0ZXN0LiRhY19leHQKK2ZpCisKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2djY194ODZfY3B1aWRfMHg4MDAwMDAwNiIgPiY1CiskYXNfZWNobyAiJGF4X2N2X2djY194ODZfY3B1aWRfMHg4MDAwMDAwNiIgPiY2OyB9CithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKKyAjIEwyIGNhY2hlIHNpemUKKwkgICAgICAgY2FzZSAkYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8weDgwMDAwMDA2IGluCisgICAgICAgICAgICAgICAgICo6KjoqWzEtOWEtZl0/Pz8/Pz86KikgIyAoTDIgPSBlY3ggPj4gMTYpID49IDI1NgorCQkJYXhfZ2NjX2FyY2g9ImF0aGxvbi14cCBhdGhsb24tNCBhdGhsb24gazciIDs7CisgICAgICAgICAgICAgICAgICopIGF4X2djY19hcmNoPSJhdGhsb24tNCBhdGhsb24gazciIDs7CisJICAgICAgIGVzYWMgOzsKKwkgICAgKmZbNGNlZjhiXT86KjoqOiopIGF4X2djY19hcmNoPSJhdGhsb242NCBrOCIgOzsKKwkgICAgKmY1PzoqOio6KikgYXhfZ2NjX2FyY2g9Im9wdGVyb24gazgiIDs7CisJICAgICpmNz86KjoqOiopIGF4X2djY19hcmNoPSJhdGhsb24tZnggb3B0ZXJvbiBrOCIgOzsKKwkgICAgKmY/PzoqOio6KikgYXhfZ2NjX2FyY2g9Ims4IiA7OworICAgICAgICAgIGVzYWMgOzsKKwkqOjc0NmU2NTQzOio6KikgIyBJRFQKKwkgICBjYXNlICRheF9jdl9nY2NfeDg2X2NwdWlkXzEgaW4KKwkgICAgICo1ND86KjoqOiopIGF4X2djY19hcmNoPXdpbmNoaXAtYzYgOzsKKwkgICAgICo1OD86KjoqOiopIGF4X2djY19hcmNoPXdpbmNoaXAyIDs7CisJICAgICAqNls3OF0/Oio6KjoqKSBheF9nY2NfYXJjaD1jMyA7OworCSAgICAgKjY5PzoqOio6KikgYXhfZ2NjX2FyY2g9ImMzLTIgYzMiIDs7CisJICAgZXNhYyA7OworICAgICBlc2FjCisgICAgIGlmIHRlc3QgeCIkYXhfZ2NjX2FyY2giID0geDsgdGhlbiAjIGZhbGxiYWNrCisJY2FzZSAkaG9zdF9jcHUgaW4KKwkgIGk1ODYqKSBheF9nY2NfYXJjaD1wZW50aXVtIDs7CisJICBpNjg2KikgYXhfZ2NjX2FyY2g9cGVudGl1bXBybyA7OworICAgICAgICBlc2FjCisgICAgIGZpCisgICAgIDs7CisKKyAgc3BhcmMqKQorICAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInBydGRpYWciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15IHBydGRpYWc7IGFjX3dvcmQ9JDIKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9wYXRoX1BSVERJQUcrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBjYXNlICRQUlRESUFHIGluCisgIFtcXC9dKiB8ID86W1xcL10qKQorICBhY19jdl9wYXRoX1BSVERJQUc9IiRQUlRESUFHIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKyAgOzsKKyAgKikKKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorYXNfZHVtbXk9IiRQQVRIOi91c3IvcGxhdGZvcm0vYHVuYW1lIC1pYC9zYmluLzovdXNyL3BsYXRmb3JtL2B1bmFtZSAtbWAvc2Jpbi8iCitmb3IgYXNfZGlyIGluICRhc19kdW1teQorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisgICAgYWNfY3ZfcGF0aF9QUlRESUFHPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgorICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKKyAgZG9uZQorSUZTPSRhc19zYXZlX0lGUworCisgIHRlc3QgLXogIiRhY19jdl9wYXRoX1BSVERJQUciICYmIGFjX2N2X3BhdGhfUFJURElBRz0icHJ0ZGlhZyIKKyAgOzsKK2VzYWMKK2ZpCitQUlRESUFHPSRhY19jdl9wYXRoX1BSVERJQUcKK2lmIHRlc3QgLW4gIiRQUlRESUFHIjsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJFBSVERJQUciID4mNQorJGFzX2VjaG8gIiRQUlRESUFHIiA+JjY7IH0KK2Vsc2UKKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyRhc19lY2hvICJubyIgPiY2OyB9CitmaQorCisKKyAgICAgY3B1dHlwZT1gKCgoZ3JlcCBjcHUgL3Byb2MvY3B1aW5mbyB8IGN1dCAtZDogLWYyKSA7ICgkUFJURElBRyAtdiB8Z3JlcCAtaSBzcGFyYykgOyBncmVwIC1pIGNwdSAvdmFyL3J1bi9kbWVzZy5ib290ICkgfCBoZWFkIC1uIDEpIDI+IC9kZXYvbnVsbGAKKyAgICAgY3B1dHlwZT1gZWNobyAiJGNwdXR5cGUiIHwgdHIgLWQgJyAtJyB8dHIgJGFzX2NyX0xFVFRFUlMgJGFzX2NyX2xldHRlcnNgCisgICAgIGNhc2UgJGNwdXR5cGUgaW4KKyAgICAgICAgICp1bHRyYXNwYXJjaXYqKSBheF9nY2NfYXJjaD0idWx0cmFzcGFyYzQgdWx0cmFzcGFyYzMgdWx0cmFzcGFyYyB2OSIgOzsKKyAgICAgICAgICp1bHRyYXNwYXJjaWlpKikgYXhfZ2NjX2FyY2g9InVsdHJhc3BhcmMzIHVsdHJhc3BhcmMgdjkiIDs7CisgICAgICAgICAqdWx0cmFzcGFyYyopIGF4X2djY19hcmNoPSJ1bHRyYXNwYXJjIHY5IiA7OworICAgICAgICAgKnN1cGVyc3BhcmMqfCp0bXMzOTB6NVswNV0qKSBheF9nY2NfYXJjaD0ic3VwZXJzcGFyYyB2OCIgOzsKKyAgICAgICAgICpoeXBlcnNwYXJjKnwqcnQ2MlswNTZdKikgYXhfZ2NjX2FyY2g9Imh5cGVyc3BhcmMgdjgiIDs7CisgICAgICAgICAqY3lwcmVzcyopIGF4X2djY19hcmNoPWN5cHJlc3MgOzsKKyAgICAgZXNhYyA7OworCisgIGFscGhhZXY1KSBheF9nY2NfYXJjaD1ldjUgOzsKKyAgYWxwaGFldjU2KSBheF9nY2NfYXJjaD1ldjU2IDs7CisgIGFscGhhcGNhNTYpIGF4X2djY19hcmNoPSJwY2E1NiBldjU2IiA7OworICBhbHBoYXBjYTU3KSBheF9nY2NfYXJjaD0icGNhNTcgcGNhNTYgZXY1NiIgOzsKKyAgYWxwaGFldjYpIGF4X2djY19hcmNoPWV2NiA7OworICBhbHBoYWV2NjcpIGF4X2djY19hcmNoPWV2NjcgOzsKKyAgYWxwaGFldjY4KSBheF9nY2NfYXJjaD0iZXY2OCBldjY3IiA7OworICBhbHBoYWV2NjkpIGF4X2djY19hcmNoPSJldjY5IGV2NjggZXY2NyIgOzsKKyAgYWxwaGFldjcpIGF4X2djY19hcmNoPSJldjcgZXY2OSBldjY4IGV2NjciIDs7CisgIGFscGhhZXY3OSkgYXhfZ2NjX2FyY2g9ImV2NzkgZXY3IGV2NjkgZXY2OCBldjY3IiA7OworCisgIHBvd2VycGMqKQorICAgICBjcHV0eXBlPWAoKGdyZXAgY3B1IC9wcm9jL2NwdWluZm8gfCBoZWFkIC1uIDEgfCBjdXQgLWQ6IC1mMiB8IGN1dCAtZCwgLWYxIHwgc2VkICdzLyAvL2cnKSA7IC91c3IvYmluL21hY2hpbmUgOyAvYmluL21hY2hpbmU7IGdyZXAgQ1BVIC92YXIvcnVuL2RtZXNnLmJvb3QgfCBoZWFkIC1uIDEgfCBjdXQgLWQiICIgLWYyKSAyPiAvZGV2L251bGxgCisgICAgIGNwdXR5cGU9YGVjaG8gJGNwdXR5cGUgfCBzZWQgLWUgJ3MvcHBjLy9nO3MvICovL2cnYAorICAgICBjYXNlICRjcHV0eXBlIGluCisgICAgICAgKjc1MCopIGF4X2djY19hcmNoPSI3NTAgRzMiIDs7CisgICAgICAgKjc0MFswLTldKikgYXhfZ2NjX2FyY2g9IiRjcHV0eXBlIDc0MDAgRzQiIDs7CisgICAgICAgKjc0WzQtNV1bMC05XSopIGF4X2djY19hcmNoPSIkY3B1dHlwZSA3NDUwIEc0IiA7OworICAgICAgICo3NFswLTldWzAtOV0qKSBheF9nY2NfYXJjaD0iJGNwdXR5cGUgRzQiIDs7CisgICAgICAgKjk3MCopIGF4X2djY19hcmNoPSI5NzAgRzUgcG93ZXI0Ijs7CisgICAgICAgKlBPV0VSNCp8KnBvd2VyNCp8KmdxKikgYXhfZ2NjX2FyY2g9InBvd2VyNCA5NzAiOzsKKyAgICAgICAqUE9XRVI1KnwqcG93ZXI1KnwqZ3IqfCpncyopIGF4X2djY19hcmNoPSJwb3dlcjUgcG93ZXI0IDk3MCI7OworICAgICAgIDYwM2V2fDgyNDApIGF4X2djY19hcmNoPSIkY3B1dHlwZSA2MDNlIDYwMyI7OworICAgICAgICopIGF4X2djY19hcmNoPSRjcHV0eXBlIDs7CisgICAgIGVzYWMKKyAgICAgYXhfZ2NjX2FyY2g9IiRheF9nY2NfYXJjaCBwb3dlcnBjIgorICAgICA7OworZXNhYworZmkgIyBub3QgY3Jvc3MtY29tcGlsaW5nCitmaSAjIGd1ZXNzIGFyY2gKKworaWYgdGVzdCAieCRheF9nY2NfYXJjaCIgIT0geCAtYSAieCRheF9nY2NfYXJjaCIgIT0geG5vOyB0aGVuCitmb3IgYXJjaCBpbiAkYXhfZ2NjX2FyY2g7IGRvCisgIGlmIHRlc3QgIngkYWN4X21heG9wdF9wb3J0YWJsZSIgPSB4eWVzOyB0aGVuICMgaWYgd2UgcmVxdWlyZSBwb3J0YWJsZSBjb2RlCisgICAgZmxhZ3M9Ii1tdHVuZT0kYXJjaCIKKyAgICAjIC1tY3B1PSRhcmNoIGFuZCBtJGFyY2ggZ2VuZXJhdGUgbm9ucG9ydGFibGUgY29kZSBvbiBldmVyeSBhcmNoIGV4Y2VwdAorICAgICMgeDg2LiAgQW5kIHNvbWUgb3RoZXIgYXJjaGVzIChlLmcuIEFscGhhKSBkb24ndCBhY2NlcHQgLW10dW5lLiAgR3Jyci4KKyAgICBjYXNlICRob3N0X2NwdSBpbiBpKjg2fHg4Nl82NCopIGZsYWdzPSIkZmxhZ3MgLW1jcHU9JGFyY2ggLW0kYXJjaCI7OyBlc2FjCisgIGVsc2UKKyAgICBmbGFncz0iLW1hcmNoPSRhcmNoIC1tY3B1PSRhcmNoIC1tJGFyY2giCisgIGZpCisgIGZvciBmbGFnIGluICRmbGFnczsgZG8KKyAgICBhc19DQUNIRVZBUj1gJGFzX2VjaG8gImF4X2N2X2NoZWNrX2NmbGFnc19fJGZsYWciIHwgJGFzX3RyX3NoYAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAkZmxhZyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAkZmxhZy4uLiAiID4mNjsgfQoraWYgZXZhbCBcJHskYXNfQ0FDSEVWQVIrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorCisgIGF4X2NoZWNrX3NhdmVfZmxhZ3M9JENGTEFHUworICBDRkxBR1M9IiRDRkxBR1MgICRmbGFnIgorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgZXZhbCAiJGFzX0NBQ0hFVkFSPXllcyIKK2Vsc2UKKyAgZXZhbCAiJGFzX0NBQ0hFVkFSPW5vIgorZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorICBDRkxBR1M9JGF4X2NoZWNrX3NhdmVfZmxhZ3MKK2ZpCitldmFsIGFjX3Jlcz1cJCRhc19DQUNIRVZBUgorCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CiskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CitpZiB0ZXN0IHgiYGV2YWwgJ2FzX3ZhbD0keyckYXNfQ0FDSEVWQVInfTskYXNfZWNobyAiJGFzX3ZhbCInYCIgPSB4eWVzOyB0aGVuIDoKKyAgYXhfY3ZfZ2NjX2FyY2hmbGFnPSRmbGFnOyBicmVhaworZWxzZQorICA6CitmaQorCisgIGRvbmUKKyAgdGVzdCAieCRheF9jdl9nY2NfYXJjaGZsYWciID0geHVua25vd24gfHwgYnJlYWsKK2RvbmUKK2ZpCisKK2ZpICMgJEdDQz15ZXMKKworZmkKKworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZ2NjIGFyY2hpdGVjdHVyZSBmbGFnIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBnY2MgYXJjaGl0ZWN0dXJlIGZsYWcuLi4gIiA+JjY7IH0KK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfZ2NjX2FyY2hmbGFnIiA+JjUKKyRhc19lY2hvICIkYXhfY3ZfZ2NjX2FyY2hmbGFnIiA+JjY7IH0KK2lmIHRlc3QgIngkYXhfY3ZfZ2NjX2FyY2hmbGFnIiA9IHh1bmtub3duOyB0aGVuCisgIDoKK2Vsc2UKKyAgQ0ZMQUdTPSIkQ0ZMQUdTICRheF9jdl9nY2NfYXJjaGZsYWciCitmaQorCisgICAgIDs7CisgIGVzYWMKKworICBpZiB0ZXN0IC16ICIkQ0ZMQUdTIjsgdGhlbgorCWVjaG8gIiIKKwllY2hvICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIKKyAgICAgICAgZWNobyAiKiBXQVJOSU5HOiBEb24ndCBrbm93IHRoZSBiZXN0IENGTEFHUyBmb3IgdGhpcyBzeXN0ZW0gICoiCisgICAgICAgIGVjaG8gIiogVXNlIC4vY29uZmlndXJlIENGTEFHUz0uLi4gdG8gc3BlY2lmeSB5b3VyIG93biBmbGFncyAqIgorCWVjaG8gIiogKG90aGVyd2lzZSwgYSBkZWZhdWx0IG9mIENGTEFHUz0tTzMgd2lsbCBiZSB1c2VkKSAgICAqIgorCWVjaG8gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIgorCWVjaG8gIiIKKyAgICAgICAgQ0ZMQUdTPSItTzMiCisgIGZpCisKKyAgYXNfQ0FDSEVWQVI9YCRhc19lY2hvICJheF9jdl9jaGVja19jZmxhZ3NfXyRDRkxBR1MiIHwgJGFzX3RyX3NoYAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIEMgY29tcGlsZXIgYWNjZXB0cyAkQ0ZMQUdTIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgQyBjb21waWxlciBhY2NlcHRzICRDRkxBR1MuLi4gIiA+JjY7IH0KK2lmIGV2YWwgXCR7JGFzX0NBQ0hFVkFSKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKworICBheF9jaGVja19zYXZlX2ZsYWdzPSRDRkxBR1MKKyAgQ0ZMQUdTPSIkQ0ZMQUdTICAkQ0ZMQUdTIgorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgZXZhbCAiJGFzX0NBQ0hFVkFSPXllcyIKK2Vsc2UKKyAgZXZhbCAiJGFzX0NBQ0hFVkFSPW5vIgorZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorICBDRkxBR1M9JGF4X2NoZWNrX3NhdmVfZmxhZ3MKK2ZpCitldmFsIGFjX3Jlcz1cJCRhc19DQUNIRVZBUgorCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1CiskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9CitpZiB0ZXN0IHgiYGV2YWwgJ2FzX3ZhbD0keyckYXNfQ0FDSEVWQVInfTskYXNfZWNobyAiJGFzX3ZhbCInYCIgPSB4eWVzOyB0aGVuIDoKKyAgOgorZWxzZQorCisJZWNobyAiIgorICAgICAgICBlY2hvICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIKKyAgICAgICAgZWNobyAiKiBXQVJOSU5HOiBUaGUgZ3Vlc3NlZCBDRkxBR1MgZG9uJ3Qgc2VlbSB0byB3b3JrIHdpdGggICoiCisgICAgICAgIGVjaG8gIiogeW91ciBjb21waWxlci4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIgorICAgICAgICBlY2hvICIqIFVzZSAuL2NvbmZpZ3VyZSBDRkxBR1M9Li4uIHRvIHNwZWNpZnkgeW91ciBvd24gZmxhZ3MgKiIKKyAgICAgICAgZWNobyAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiCisgICAgICAgIGVjaG8gIiIKKyAgICAgICAgQ0ZMQUdTPSIiCisKK2ZpCisKKworZmkKKworYWNfZXh0PWMKK2FjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jX2NvbXBpbGVyX2dudQorCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIENGTEFHUyBmb3IgbWF4aW11bSB3YXJuaW5ncyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBDRkxBR1MgZm9yIG1heGltdW0gd2FybmluZ3MuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfY2ZsYWdzX3dhcm5fYWxsKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgYWNfY3ZfY2ZsYWdzX3dhcm5fYWxsPSJubywgdW5rbm93biIKK2FjX3NhdmVfQ0ZMQUdTPSIkQ0ZMQUdTIgorZm9yIGFjX2FyZyBpbiAiLXdhcm4gYWxsICAlIC13YXJuIGFsbCIgICAgICAiLXBlZGFudGljICAlIC1XYWxsIiAgICAgICAgICAiLXhzdHJjb25zdCAlIC12IiAgICAgICAgICAgICAiLXN0ZDEgICAgICAlIC12ZXJib3NlIC13MCAtd2FybnByb3RvcyIgICAgIi1xbGFuZ2x2bD1hbnNpICUgLXFzcmNtc2cgLXFpbmZvPWFsbDpub3BwdDpub3BwYzpub29iczpub2NuZCIgICAgIi1hbnNpIC1hbnNpRSAlIC1mdWxsd2FybiIgICAgIitFU2xpdCAgICAgJSArdzEiICAgICAgICAgICAgIi1YYyAgICAgICAgJSAtcHZjdGwsZnVsbG1zZyIgICAgIi1oIGNvbmZvcm0gJSAtaCBtc2dsZXZlbCAyIiAgICAjCitkbyBDRkxBR1M9IiRhY19zYXZlX0NGTEFHUyAiYGVjaG8gJGFjX2FyZyB8IHNlZCAtZSAncywlJS4qLCwnIC1lICdzLCUsLCdgCisgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgYWNfY3ZfY2ZsYWdzX3dhcm5fYWxsPWBlY2hvICRhY19hcmcgfCBzZWQgLWUgJ3MsLiolICosLCdgIDsgYnJlYWsKK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2RvbmUKK0NGTEFHUz0iJGFjX3NhdmVfQ0ZMQUdTIgorCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9jZmxhZ3Nfd2Fybl9hbGwiID4mNQorJGFzX2VjaG8gIiRhY19jdl9jZmxhZ3Nfd2Fybl9hbGwiID4mNjsgfQorY2FzZSAiLiRhY19jdl9jZmxhZ3Nfd2Fybl9hbGwiIGluCisgICAgIC5va3wub2ssKikgIDs7CisgICAufC5ub3wubm8sKikgIDs7CisgICAqKSBpZiAke0NGTEFHUys6fSBmYWxzZTsgdGhlbiA6CisgIGNhc2UgIiAkQ0ZMQUdTICIgaW4KKyAgICAqIiAkYWNfY3ZfY2ZsYWdzX3dhcm5fYWxsICIqKQorICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IDogQ0ZMQUdTIGFscmVhZHkgY29udGFpbnMgXCRhY19jdl9jZmxhZ3Nfd2Fybl9hbGwiOyB9ID4mNQorICAoOiBDRkxBR1MgYWxyZWFkeSBjb250YWlucyAkYWNfY3ZfY2ZsYWdzX3dhcm5fYWxsKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfQorICAgICAgOzsKKyAgICAqKQorICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IDogQ0ZMQUdTPVwiXCRDRkxBR1MgXCRhY19jdl9jZmxhZ3Nfd2Fybl9hbGxcIiI7IH0gPiY1CisgICg6IENGTEFHUz0iJENGTEFHUyAkYWNfY3ZfY2ZsYWdzX3dhcm5fYWxsIikgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0KKyAgICAgIENGTEFHUz0iJENGTEFHUyAkYWNfY3ZfY2ZsYWdzX3dhcm5fYWxsIgorICAgICAgOzsKKyAgIGVzYWMKK2Vsc2UKKyAgQ0ZMQUdTPSIkYWNfY3ZfY2ZsYWdzX3dhcm5fYWxsIgorZmkKKyA7OworZXNhYworCithY19leHQ9YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRhY19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKKworaWYgdGVzdCAieCRHQ0MiID0gInh5ZXMiOyB0aGVuCisgIENGTEFHUz0iJENGTEFHUyAtZmV4Y2VwdGlvbnMiCitmaQorCiAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9ucyBvZiBNYWtlZmlsZXMuLi4gIiA+JjY7IH0KQEAgLTExMDA1LDcgKzEzMDIyLDcgQEAKIGZvciBhY19oZWFkZXIgaW4gc3lzL21tYW4uaAogZG8gOgogICBhY19mbl9jX2NoZWNrX2hlYWRlcl9tb25ncmVsICIkTElORU5PIiAic3lzL21tYW4uaCIgImFjX2N2X2hlYWRlcl9zeXNfbW1hbl9oIiAiJGFjX2luY2x1ZGVzX2RlZmF1bHQiCi1pZiB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9zeXNfbW1hbl9oIiA9IHgiInllczsgdGhlbiA6CitpZiB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9zeXNfbW1hbl9oIiA9IHh5ZXM7IHRoZW4gOgogICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCiAjZGVmaW5lIEhBVkVfU1lTX01NQU5fSCAxCiBfQUNFT0YKQEAgLTExMDE3LDcgKzEzMDM0LDcgQEAKIGZvciBhY19mdW5jIGluIG1tYXAKIGRvIDoKICAgYWNfZm5fY19jaGVja19mdW5jICIkTElORU5PIiAibW1hcCIgImFjX2N2X2Z1bmNfbW1hcCIKLWlmIHRlc3QgIngkYWNfY3ZfZnVuY19tbWFwIiA9IHgiInllczsgdGhlbiA6CitpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfbW1hcCIgPSB4eWVzOyB0aGVuIDoKICAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgogI2RlZmluZSBIQVZFX01NQVAgMQogX0FDRU9GCkBAIC0xMTAyNyw3ICsxMzA0NCw3IEBACiAKIAogYWNfZm5fY19jaGVja19oZWFkZXJfbW9uZ3JlbCAiJExJTkVOTyIgInN5cy9tbWFuLmgiICJhY19jdl9oZWFkZXJfc3lzX21tYW5faCIgIiRhY19pbmNsdWRlc19kZWZhdWx0IgotaWYgdGVzdCAieCRhY19jdl9oZWFkZXJfc3lzX21tYW5faCIgPSB4IiJ5ZXM7IHRoZW4gOgoraWYgdGVzdCAieCRhY19jdl9oZWFkZXJfc3lzX21tYW5faCIgPSB4eWVzOyB0aGVuIDoKICAgbGliZmZpX2hlYWRlcl9zeXNfbW1hbl9oPXllcwogZWxzZQogICBsaWJmZmlfaGVhZGVyX3N5c19tbWFuX2g9bm8KQEAgLTExMDM1LDcgKzEzMDUyLDcgQEAKIAogCiBhY19mbl9jX2NoZWNrX2Z1bmMgIiRMSU5FTk8iICJtbWFwIiAiYWNfY3ZfZnVuY19tbWFwIgotaWYgdGVzdCAieCRhY19jdl9mdW5jX21tYXAiID0geCIieWVzOyB0aGVuIDoKK2lmIHRlc3QgIngkYWNfY3ZfZnVuY19tbWFwIiA9IHh5ZXM7IHRoZW4gOgogICBsaWJmZmlfZnVuY19tbWFwPXllcwogZWxzZQogICBsaWJmZmlfZnVuY19tbWFwPW5vCkBAIC0xMTA0OSw3ICsxMzA2Niw3IEBACiBlbHNlCiAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgcmVhZC1vbmx5IG1tYXAgb2YgYSBwbGFpbiBmaWxlIHdvcmtzIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgcmVhZC1vbmx5IG1tYXAgb2YgYSBwbGFpbiBmaWxlIHdvcmtzLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X2Z1bmNfbW1hcF9maWxlK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfZnVuY19tbWFwX2ZpbGUrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICAjIEFkZCBhIHN5c3RlbSB0byB0aGlzIGJsYWNrbGlzdCBpZgpAQCAtMTEwNjgsNyArMTMwODUsNyBAQAogJGFzX2VjaG8gIiRhY19jdl9mdW5jX21tYXBfZmlsZSIgPiY2OyB9CiAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgbW1hcCBmcm9tIC9kZXYvemVybyB3b3JrcyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIG1tYXAgZnJvbSAvZGV2L3plcm8gd29ya3MuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfZnVuY19tbWFwX2Rldl96ZXJvK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3ZfZnVuY19tbWFwX2Rldl96ZXJvKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgIyBBZGQgYSBzeXN0ZW0gdG8gdGhpcyBibGFja2xpc3QgaWYgaXQgaGFzIG1tYXAoKSBidXQgL2Rldi96ZXJvCkBAIC0xMTA5NCw3ICsxMzExMSw3IEBACiAgICAjIFVubGlrZSAvZGV2L3plcm8sIHRoZSBNQVBfQU5PTihZTU9VUykgZGVmaW5lcyBjYW4gYmUgcHJvYmVkIGZvci4KICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIE1BUF9BTk9OKFlNT1VTKSIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgTUFQX0FOT04oWU1PVVMpLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X2RlY2xfbWFwX2Fub24rc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9kZWNsX21hcF9hbm9uKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dApAQCAtMTExMzAsNyArMTMxNDcsNyBAQAogICAgZWxzZQogICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgbW1hcCB3aXRoIE1BUF9BTk9OKFlNT1VTKSB3b3JrcyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIG1tYXAgd2l0aCBNQVBfQU5PTihZTU9VUykgd29ya3MuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfZnVuY19tbWFwX2Fub24rc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9mdW5jX21tYXBfYW5vbis6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgICMgQWRkIGEgc3lzdGVtIHRvIHRoaXMgYmxhY2tsaXN0IGlmIGl0IGhhcyBtbWFwKCkgYW5kIE1BUF9BTk9OIG9yCkBAIC0xMTE4MCw3ICsxMzE5Nyw3IEBACiBjYXNlICIkaG9zdCIgaW4KICAgYWxwaGEqLSotKikKIAlUQVJHRVQ9QUxQSEE7IFRBUkdFVERJUj1hbHBoYTsKLQkjIFN1cHBvcnQgMTI4LWJpdCBsb25nIGRvdWJsZSwgY2hhbmdhYmxlIHZpYSBjb21tYW5kLWxpbmUgc3dpdGNoLgorCSMgU3VwcG9ydCAxMjgtYml0IGxvbmcgZG91YmxlLCBjaGFuZ2VhYmxlIHZpYSBjb21tYW5kLWxpbmUgc3dpdGNoLgogCUhBVkVfTE9OR19ET1VCTEU9J2RlZmluZWQoX19MT05HX0RPVUJMRV8xMjhfXyknCiAJOzsKIApAQCAtMTEyMDgsNyArMTMyMjUsNyBAQAogCVRBUkdFVD1GUlY7IFRBUkdFVERJUj1mcnYKIAk7OwogCi0gIGhwcGEqLSotbGludXgqIHwgcGFyaXNjKi0qLWxpbnV4KikKKyAgaHBwYSotKi1saW51eCogfCBwYXJpc2MqLSotbGludXgqIHwgaHBwYSotKi1vcGVuYnNkKikKIAlUQVJHRVQ9UEFfTElOVVg7IFRBUkdFVERJUj1wYQogCTs7CiAgIGhwcGEqNjQtKi1ocHV4KikKQEAgLTExMjIxLDEwICsxMzIzOCwxNyBAQAogICBpPzg2LSotZnJlZWJzZCogfCBpPzg2LSotb3BlbmJzZCopCiAJVEFSR0VUPVg4Nl9GUkVFQlNEOyBUQVJHRVRESVI9eDg2CiAJOzsKLSAgaT84Ni13aW4zMiogfCBpPzg2LSotY3lnd2luKiB8IGk/ODYtKi1taW5ndyopCisgIGk/ODYtd2luMzIqIHwgaT84Ni0qLWN5Z3dpbiogfCBpPzg2LSotbWluZ3cqIHwgaT84Ni0qLW9zMiogfCBpPzg2LSotaW50ZXJpeCopCiAJVEFSR0VUPVg4Nl9XSU4zMjsgVEFSR0VURElSPXg4NgotCSMgQWxsIG1pbmd3L2N5Z3dpbi93aW4zMiBidWlsZHMgcmVxdWlyZSB0aGlzIGZvciBzaGFyZWRsaWIKLQlBTV9MVExERkxBR1M9Ii1uby11bmRlZmluZWQiCisJIyBBbGwgbWluZ3cvY3lnd2luL3dpbjMyIGJ1aWxkcyByZXF1aXJlIC1uby11bmRlZmluZWQgZm9yIHNoYXJlZGxpYi4KKwkjIFdlIG11c3QgYWxzbyBjaGVjayB3aXRoX2Nyb3NzX2hvc3QgdG8gZGVjaWRlIGlmIHRoaXMgaXMgYSBuYXRpdmUKKwkjIG9yIGNyb3NzLWJ1aWxkIGFuZCBzZWxlY3Qgd2hlcmUgdG8gaW5zdGFsbCBkbGxzIGFwcHJvcHJpYXRlbHkuCisJaWYgdGVzdCAtbiAiJHdpdGhfY3Jvc3NfaG9zdCIgJiYKKwkgICB0ZXN0IHgiJHdpdGhfY3Jvc3NfaG9zdCIgIT0geCJubyI7IHRoZW4KKwkgIEFNX0xUTERGTEFHUz0nLW5vLXVuZGVmaW5lZCAtYmluZGlyICIkKHRvb2xleGVjbGliZGlyKSInOworCWVsc2UKKwkgIEFNX0xUTERGTEFHUz0nLW5vLXVuZGVmaW5lZCAtYmluZGlyICIkKGJpbmRpcikiJzsKKwlmaQogCTs7CiAgIGk/ODYtKi1kYXJ3aW4qKQogCVRBUkdFVD1YODZfREFSV0lOOyBUQVJHRVRESVI9eDg2CkBAIC0xMTIzNiw3ICsxMzI2MCw3IEBACiAgICAgICAgIFRBUkdFVD1YODY7IFRBUkdFVERJUj14ODYKICAgICAgICAgOzsKICAgaT84Ni0qLSopCi0JVEFSR0VUPVg4NjsgVEFSR0VURElSPXg4NgorCVRBUkdFVD1YODZfNjQ7IFRBUkdFVERJUj14ODYKIAk7OwogCiAgIGlhNjQqLSotKikKQEAgLTExMjUxLDMwICsxMzI3NSw0MCBAQAogCVRBUkdFVD1NNjhLOyBUQVJHRVRESVI9bTY4awogCTs7CiAKLSAgbWlwcy1zZ2ktaXJpeDUuKiB8IG1pcHMtc2dpLWlyaXg2LiopCisgIG1pcHMtc2dpLWlyaXg1LiogfCBtaXBzLXNnaS1pcml4Ni4qIHwgbWlwcyotKi1ydGVtcyopCiAJVEFSR0VUPU1JUFNfSVJJWDsgVEFSR0VURElSPW1pcHMKIAk7OwotICBtaXBzKi0qLWxpbnV4KikKKyAgbWlwcyotKi1saW51eCogfCBtaXBzKi0qLW9wZW5ic2QqKQogCSMgU3VwcG9ydCAxMjgtYml0IGxvbmcgZG91YmxlIGZvciBOZXdBQkkuCiAJSEFWRV9MT05HX0RPVUJMRT0nZGVmaW5lZChfX21pcHM2NCknCiAJVEFSR0VUPU1JUFNfSVJJWDsgVEFSR0VURElSPW1pcHMKIAk7OwogCisgIG1veGllLSotKikKKyAgICAgICAgVEFSR0VUPU1PWElFOyBUQVJHRVRESVI9bW94aWUKKwk7OworCiAgIHBvd2VycGMqLSotbGludXgqIHwgcG93ZXJwYy0qLXN5c3YqKQogCVRBUkdFVD1QT1dFUlBDOyBUQVJHRVRESVI9cG93ZXJwYwogCTs7CisgIHBvd2VycGMtKi1hbWlnYW9zKikKKwlUQVJHRVQ9UE9XRVJQQzsgVEFSR0VURElSPXBvd2VycGMKKwk7OwogICBwb3dlcnBjLSotYmVvcyopCiAJVEFSR0VUPVBPV0VSUEM7IFRBUkdFVERJUj1wb3dlcnBjCiAJOzsKLSAgcG93ZXJwYy0qLWRhcndpbiopCisgIHBvd2VycGMtKi1kYXJ3aW4qIHwgcG93ZXJwYzY0LSotZGFyd2luKikKIAlUQVJHRVQ9UE9XRVJQQ19EQVJXSU47IFRBUkdFVERJUj1wb3dlcnBjCiAJOzsKICAgcG93ZXJwYy0qLWFpeCogfCByczYwMDAtKi1haXgqKQogCVRBUkdFVD1QT1dFUlBDX0FJWDsgVEFSR0VURElSPXBvd2VycGMKIAk7OwotICBwb3dlcnBjLSotZnJlZWJzZCopCisgIHBvd2VycGMtKi1mcmVlYnNkKiB8IHBvd2VycGMtKi1vcGVuYnNkKikKIAlUQVJHRVQ9UE9XRVJQQ19GUkVFQlNEOyBUQVJHRVRESVI9cG93ZXJwYwogCTs7CisgIHBvd2VycGM2NC0qLWZyZWVic2QqKQorCVRBUkdFVD1QT1dFUlBDOyBUQVJHRVRESVI9cG93ZXJwYworCTs7CiAgIHBvd2VycGMqLSotcnRlbXMqKQogCVRBUkdFVD1QT1dFUlBDOyBUQVJHRVRESVI9cG93ZXJwYwogCTs7CkBAIC0xMTMwMCw2ICsxMzMzNCwxNSBAQAogCiAgIHg4Nl82NC0qLWN5Z3dpbiogfCB4ODZfNjQtKi1taW5ndyopCiAJVEFSR0VUPVg4Nl9XSU42NDsgVEFSR0VURElSPXg4NgorCSMgQWxsIG1pbmd3L2N5Z3dpbi93aW4zMiBidWlsZHMgcmVxdWlyZSAtbm8tdW5kZWZpbmVkIGZvciBzaGFyZWRsaWIuCisJIyBXZSBtdXN0IGFsc28gY2hlY2sgd2l0aF9jcm9zc19ob3N0IHRvIGRlY2lkZSBpZiB0aGlzIGlzIGEgbmF0aXZlCisJIyBvciBjcm9zcy1idWlsZCBhbmQgc2VsZWN0IHdoZXJlIHRvIGluc3RhbGwgZGxscyBhcHByb3ByaWF0ZWx5LgorCWlmIHRlc3QgLW4gIiR3aXRoX2Nyb3NzX2hvc3QiICYmCisJICAgdGVzdCB4IiR3aXRoX2Nyb3NzX2hvc3QiICE9IHgibm8iOyB0aGVuCisJICBBTV9MVExERkxBR1M9Jy1uby11bmRlZmluZWQgLWJpbmRpciAiJCh0b29sZXhlY2xpYmRpcikiJzsKKwllbHNlCisJICBBTV9MVExERkxBR1M9Jy1uby11bmRlZmluZWQgLWJpbmRpciAiJChiaW5kaXIpIic7CisJZmkKIAk7OwogCiAgIHg4Nl82NC0qLSopCkBAIC0xMTMxMSw3ICsxMzM1NCw3IEBACiAKIAogaWYgdGVzdCAkVEFSR0VURElSID0gdW5rbm93bjsgdGhlbgotICBhc19mbl9lcnJvciAiXCJsaWJmZmkgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byAkaG9zdC5cIiIgIiRMSU5FTk8iIDUKKyAgYXNfZm5fZXJyb3IgJD8gIlwibGliZmZpIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gJGhvc3QuXCIiICIkTElORU5PIiA1CiBmaQogCiAgaWYgZXhwciB4JFRBUkdFVCA6ICd4TUlQUycgPiAvZGV2L251bGw7IHRoZW4KQEAgLTExNDAyLDYgKzEzNDQ1LDE0IEBACiAgIE02OEtfRkFMU0U9CiBmaQogCisgaWYgdGVzdCB4JFRBUkdFVCA9IHhNT1hJRTsgdGhlbgorICBNT1hJRV9UUlVFPQorICBNT1hJRV9GQUxTRT0nIycKK2Vsc2UKKyAgTU9YSUVfVFJVRT0nIycKKyAgTU9YSUVfRkFMU0U9CitmaQorCiAgaWYgdGVzdCB4JFRBUkdFVCA9IHhQT1dFUlBDOyB0aGVuCiAgIFBPV0VSUENfVFJVRT0KICAgUE9XRVJQQ19GQUxTRT0nIycKQEAgLTExNTI1LDcgKzEzNTc2LDcgQEAKIAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9oZWFkZXJfc3RkYytzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X2hlYWRlcl9zdGRjKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dApAQCAtMTE2MzgsNyArMTM2ODksNyBAQAogZm9yIGFjX2Z1bmMgaW4gbWVtY3B5CiBkbyA6CiAgIGFjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIgIm1lbWNweSIgImFjX2N2X2Z1bmNfbWVtY3B5IgotaWYgdGVzdCAieCRhY19jdl9mdW5jX21lbWNweSIgPSB4IiJ5ZXM7IHRoZW4gOgoraWYgdGVzdCAieCRhY19jdl9mdW5jX21lbWNweSIgPSB4eWVzOyB0aGVuIDoKICAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgogI2RlZmluZSBIQVZFX01FTUNQWSAxCiBfQUNFT0YKQEAgLTExNjQ2LDExICsxMzY5NywyMiBAQAogZmkKIGRvbmUKIAorYWNfZm5fY19jaGVja190eXBlICIkTElORU5PIiAic2l6ZV90IiAiYWNfY3ZfdHlwZV9zaXplX3QiICIkYWNfaW5jbHVkZXNfZGVmYXVsdCIKK2lmIHRlc3QgIngkYWNfY3ZfdHlwZV9zaXplX3QiID0geHllczsgdGhlbiA6CisKK2Vsc2UKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBzaXplX3QgdW5zaWduZWQgaW50CitfQUNFT0YKKworZmkKKwogIyBUaGUgVWx0cml4IDQuMiBtaXBzIGJ1aWx0aW4gYWxsb2NhIGRlY2xhcmVkIGJ5IGFsbG9jYS5oIG9ubHkgd29ya3MKICMgZm9yIGNvbnN0YW50IGFyZ3VtZW50cy4gIFVzZWxlc3MhCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciB3b3JraW5nIGFsbG9jYS5oIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciB3b3JraW5nIGFsbG9jYS5oLi4uICIgPiY2OyB9Ci1pZiB0ZXN0ICIke2FjX2N2X3dvcmtpbmdfYWxsb2NhX2grc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl93b3JraW5nX2FsbG9jYV9oKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dApAQCAtMTE2ODMsNyArMTM3NDUsNyBAQAogCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBhbGxvY2EiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGFsbG9jYS4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9mdW5jX2FsbG9jYV93b3JrcytzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X2Z1bmNfYWxsb2NhX3dvcmtzKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dApAQCAtMTE3MDIsNyArMTM3NjQsNyBAQAogICNwcmFnbWEgYWxsb2NhCiAjICAgZWxzZQogIyAgICBpZm5kZWYgYWxsb2NhIC8qIHByZWRlZmluZWQgYnkgSFAgY2MgK09saWJjYWxscyAqLwotY2hhciAqYWxsb2NhICgpOwordm9pZCAqYWxsb2NhIChzaXplX3QpOwogIyAgICBlbmRpZgogIyAgIGVuZGlmCiAjICBlbmRpZgpAQCAtMTE3NDYsNyArMTM4MDgsNyBAQAogCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgXGBhbGxvY2EuYycgbmVlZHMgQ3JheSBob29rcyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIFxgYWxsb2NhLmMnIG5lZWRzIENyYXkgaG9va3MuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3Zfb3NfY3JheStzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X29zX2NyYXkrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CkBAIC0xMTc3Myw4ICsxMzgzNSw3IEBACiAgIGZvciBhY19mdW5jIGluIF9nZXRiNjcgR0VUQjY3IGdldGI2NzsgZG8KICAgICBhc19hY192YXI9YCRhc19lY2hvICJhY19jdl9mdW5jXyRhY19mdW5jIiB8ICRhc190cl9zaGAKIGFjX2ZuX2NfY2hlY2tfZnVuYyAiJExJTkVOTyIgIiRhY19mdW5jIiAiJGFzX2FjX3ZhciIKLWV2YWwgYXNfdmFsPVwkJGFzX2FjX3ZhcgotICAgaWYgdGVzdCAieCRhc192YWwiID0geCIieWVzOyB0aGVuIDoKK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfdmFyIlwiID0geCJ5ZXMiOyB0aGVuIDoKIAogY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgogI2RlZmluZSBDUkFZX1NUQUNLU0VHX0VORCAkYWNfZnVuYwpAQCAtMTE3ODgsNyArMTM4NDksNyBAQAogCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHN0YWNrIGRpcmVjdGlvbiBmb3IgQyBhbGxvY2EiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgc3RhY2sgZGlyZWN0aW9uIGZvciBDIGFsbG9jYS4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHthY19jdl9jX3N0YWNrX2RpcmVjdGlvbitzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X2Nfc3RhY2tfZGlyZWN0aW9uKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgpAQCAtMTE4NDMsNyArMTM5MDQsNyBAQAogIyBUaGlzIGJ1ZyBpcyBIUCBTUiBudW1iZXIgODYwNjIyMzM2NC4KIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgc2l6ZSBvZiBkb3VibGUiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgc2l6ZSBvZiBkb3VibGUuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3Zfc2l6ZW9mX2RvdWJsZStzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2FjX2N2X3NpemVvZl9kb3VibGUrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiBhY19mbl9jX2NvbXB1dGVfaW50ICIkTElORU5PIiAiKGxvbmcgaW50KSAoc2l6ZW9mIChkb3VibGUpKSIgImFjX2N2X3NpemVvZl9kb3VibGUiICAgICAgICAiJGFjX2luY2x1ZGVzX2RlZmF1bHQiOyB0aGVuIDoKQEAgLTExODUyLDkgKzEzOTEzLDggQEAKICAgaWYgdGVzdCAiJGFjX2N2X3R5cGVfZG91YmxlIiA9IHllczsgdGhlbgogICAgICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKICRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLXsgYXNfZm5fc2V0X3N0YXR1cyA3NwotYXNfZm5fZXJyb3IgImNhbm5vdCBjb21wdXRlIHNpemVvZiAoZG91YmxlKQotU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iICIkTElORU5PIiA1OyB9OyB9Cithc19mbl9lcnJvciA3NyAiY2Fubm90IGNvbXB1dGUgc2l6ZW9mIChkb3VibGUpCitTZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQogICAgZWxzZQogICAgICBhY19jdl9zaXplb2ZfZG91YmxlPTAKICAgIGZpCkBAIC0xMTg3Nyw3ICsxMzkzNyw3IEBACiAjIFRoaXMgYnVnIGlzIEhQIFNSIG51bWJlciA4NjA2MjIzMzY0LgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBzaXplIG9mIGxvbmcgZG91YmxlIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIHNpemUgb2YgbG9uZyBkb3VibGUuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3Zfc2l6ZW9mX2xvbmdfZG91YmxlK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7YWNfY3Zfc2l6ZW9mX2xvbmdfZG91YmxlKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKICAgaWYgYWNfZm5fY19jb21wdXRlX2ludCAiJExJTkVOTyIgIihsb25nIGludCkgKHNpemVvZiAobG9uZyBkb3VibGUpKSIgImFjX2N2X3NpemVvZl9sb25nX2RvdWJsZSIgICAgICAgICIkYWNfaW5jbHVkZXNfZGVmYXVsdCI7IHRoZW4gOgpAQCAtMTE4ODYsOSArMTM5NDYsOCBAQAogICBpZiB0ZXN0ICIkYWNfY3ZfdHlwZV9sb25nX2RvdWJsZSIgPSB5ZXM7IHRoZW4KICAgICAgeyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiY1CiAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci17IGFzX2ZuX3NldF9zdGF0dXMgNzcKLWFzX2ZuX2Vycm9yICJjYW5ub3QgY29tcHV0ZSBzaXplb2YgKGxvbmcgZG91YmxlKQotU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscy4iICIkTElORU5PIiA1OyB9OyB9Cithc19mbl9lcnJvciA3NyAiY2Fubm90IGNvbXB1dGUgc2l6ZW9mIChsb25nIGRvdWJsZSkKK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9CiAgICBlbHNlCiAgICAgIGFjX2N2X3NpemVvZl9sb25nX2RvdWJsZT0wCiAgICBmaQpAQCAtMTE5MjIsNyArMTM5ODEsNyBAQAogCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFuIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgYnl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4uLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7YWNfY3ZfY19iaWdlbmRpYW4rc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHthY19jdl9jX2JpZ2VuZGlhbis6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGFjX2N2X2NfYmlnZW5kaWFuPXVua25vd24KQEAgLTEyMTQwLDE4ICsxNDE5OSwxOCBAQAogCiAgICAgIDs7ICMoCiAgICAqKQotICAgICBhc19mbl9lcnJvciAidW5rbm93biBlbmRpYW5uZXNzCisgICAgIGFzX2ZuX2Vycm9yICQ/ICJ1bmtub3duIGVuZGlhbm5lc3MKICBwcmVzZXR0aW5nIGFjX2N2X2NfYmlnZW5kaWFuPW5vIChvciB5ZXMpIHdpbGwgaGVscCIgIiRMSU5FTk8iIDUgOzsKICBlc2FjCiAKIAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBhc3NlbWJsZXIgLmNmaSBwc2V1ZG8tb3Agc3VwcG9ydCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBhc3NlbWJsZXIgLmNmaSBwc2V1ZG8tb3Agc3VwcG9ydC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsaWJmZmlfY3ZfYXNfY2ZpX3BzZXVkb19vcCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2djY19jdl9hc19jZmlfcHNldWRvX29wKzp9IGZhbHNlOyB0aGVuIDoKICAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKIGVsc2UKIAotICAgIGxpYmZmaV9jdl9hc19jZmlfcHNldWRvX29wPXVua25vd24KKyAgICBnY2NfY3ZfYXNfY2ZpX3BzZXVkb19vcD11bmtub3duCiAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogLyogZW5kIGNvbmZkZWZzLmguICAqLwogYXNtICgiLmNmaV9zdGFydHByb2Ncblx0LmNmaV9lbmRwcm9jIik7CkBAIC0xMjE2NCwyNSArMTQyMjMsMjYgQEAKIH0KIF9BQ0VPRgogaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotICBsaWJmZmlfY3ZfYXNfY2ZpX3BzZXVkb19vcD15ZXMKKyAgZ2NjX2N2X2FzX2NmaV9wc2V1ZG9fb3A9eWVzCiBlbHNlCi0gIGxpYmZmaV9jdl9hc19jZmlfcHNldWRvX29wPW5vCisgIGdjY19jdl9hc19jZmlfcHNldWRvX29wPW5vCiBmaQogcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CiAKIGZpCi17ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGxpYmZmaV9jdl9hc19jZmlfcHNldWRvX29wIiA+JjUKLSRhc19lY2hvICIkbGliZmZpX2N2X2FzX2NmaV9wc2V1ZG9fb3AiID4mNjsgfQotaWYgdGVzdCAieCRsaWJmZmlfY3ZfYXNfY2ZpX3BzZXVkb19vcCIgPSB4eWVzOyB0aGVuCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGdjY19jdl9hc19jZmlfcHNldWRvX29wIiA+JjUKKyRhc19lY2hvICIkZ2NjX2N2X2FzX2NmaV9wc2V1ZG9fb3AiID4mNjsgfQorIGlmIHRlc3QgIngkZ2NjX2N2X2FzX2NmaV9wc2V1ZG9fb3AiID0geHllczsgdGhlbgogCiAkYXNfZWNobyAiI2RlZmluZSBIQVZFX0FTX0NGSV9QU0VVRE9fT1AgMSIgPj5jb25mZGVmcy5oCiAKLWZpCisgZmkKKwogCiBpZiB0ZXN0IHgkVEFSR0VUID0geFNQQVJDOyB0aGVuCiAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBhc3NlbWJsZXIgYW5kIGxpbmtlciBzdXBwb3J0IHVuYWxpZ25lZCBwYyByZWxhdGVkIHJlbG9jcyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBhc3NlbWJsZXIgYW5kIGxpbmtlciBzdXBwb3J0IHVuYWxpZ25lZCBwYyByZWxhdGVkIHJlbG9jcy4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsaWJmZmlfY3ZfYXNfc3BhcmNfdWFfcGNyZWwrc2V0fSIgPSBzZXQ7IHRoZW4gOgoraWYgJHtsaWJmZmlfY3ZfYXNfc3BhcmNfdWFfcGNyZWwrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogCkBAIC0xMjIyMSw3ICsxNDI4MSw3IEBACiAKICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGFzc2VtYmxlciAucmVnaXN0ZXIgcHNldWRvLW9wIHN1cHBvcnQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgYXNzZW1ibGVyIC5yZWdpc3RlciBwc2V1ZG8tb3Agc3VwcG9ydC4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsaWJmZmlfY3ZfYXNfcmVnaXN0ZXJfcHNldWRvX29wK3NldH0iID0gc2V0OyB0aGVuIDoKK2lmICR7bGliZmZpX2N2X2FzX3JlZ2lzdGVyX3BzZXVkb19vcCs6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAKQEAgLTEyMjU4LDEzICsxNDMxOCwxMyBAQAogaWYgdGVzdCB4JFRBUkdFVCA9IHhYODYgfHwgdGVzdCB4JFRBUkdFVCA9IHhYODZfV0lOMzIgfHwgdGVzdCB4JFRBUkdFVCA9IHhYODZfNjQ7IHRoZW4KICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGFzc2VtYmxlciBzdXBwb3J0cyBwYyByZWxhdGVkIHJlbG9jcyIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBhc3NlbWJsZXIgc3VwcG9ydHMgcGMgcmVsYXRlZCByZWxvY3MuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7bGliZmZpX2N2X2FzX3g4Nl9wY3JlbCtzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2xpYmZmaV9jdl9hc194ODZfcGNyZWwrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogCiAJbGliZmZpX2N2X2FzX3g4Nl9wY3JlbD15ZXMKIAllY2hvICcudGV4dDsgZm9vOiBub3A7IC5kYXRhOyAubG9uZyBmb28tLjsgLnRleHQnID4gY29uZnRlc3QucwotCWlmICRDQyAkQ0ZMQUdTIC1jIGNvbmZ0ZXN0LnMgMj4mMSB8IGdyZXAgLWkgd2FybmluZyA+IC9kZXYvbnVsbDsgdGhlbgorCWlmICRDQyAkQ0ZMQUdTIC1jIGNvbmZ0ZXN0LnMgMj4mMSB8ICRFR1JFUCAtaSAnaWxsZWdhbHx3YXJuaW5nJyA+IC9kZXYvbnVsbDsgdGhlbgogCSAgICBsaWJmZmlfY3ZfYXNfeDg2X3BjcmVsPW5vCiAJZmkKIApAQCAtMTIyNzYsNzcgKzE0MzM2LDI0NCBAQAogJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9BU19YODZfUENSRUwgMSIgPj5jb25mZGVmcy5oCiAKICAgICBmaQorCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBhc3NlbWJsZXIgLmFzY2lpIHBzZXVkby1vcCBzdXBwb3J0IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGFzc2VtYmxlciAuYXNjaWkgcHNldWRvLW9wIHN1cHBvcnQuLi4gIiA+JjY7IH0KK2lmICR7bGliZmZpX2N2X2FzX2FzY2lpX3BzZXVkb19vcCs6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisKKyAgICAgICBsaWJmZmlfY3ZfYXNfYXNjaWlfcHNldWRvX29wPXVua25vd24KKyAgICAgICAjIENoZWNrIGlmIHdlIGhhdmUgLmFzY2lpCisgICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworYXNtICgiLmFzY2lpIFxcInN0cmluZ1xcIiIpOworaW50CittYWluICgpCit7CisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorICBsaWJmZmlfY3ZfYXNfYXNjaWlfcHNldWRvX29wPXllcworZWxzZQorICBsaWJmZmlfY3ZfYXNfYXNjaWlfcHNldWRvX29wPW5vCitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGxpYmZmaV9jdl9hc19hc2NpaV9wc2V1ZG9fb3AiID4mNQorJGFzX2VjaG8gIiRsaWJmZmlfY3ZfYXNfYXNjaWlfcHNldWRvX29wIiA+JjY7IH0KKyAgICBpZiB0ZXN0ICJ4JGxpYmZmaV9jdl9hc19hc2NpaV9wc2V1ZG9fb3AiID0geHllczsgdGhlbgorCiskYXNfZWNobyAiI2RlZmluZSBIQVZFX0FTX0FTQ0lJX1BTRVVET19PUCAxIiA+PmNvbmZkZWZzLmgKKworICAgIGZpCisKKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGFzc2VtYmxlciAuc3RyaW5nIHBzZXVkby1vcCBzdXBwb3J0IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGFzc2VtYmxlciAuc3RyaW5nIHBzZXVkby1vcCBzdXBwb3J0Li4uICIgPiY2OyB9CitpZiAke2xpYmZmaV9jdl9hc19zdHJpbmdfcHNldWRvX29wKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKworICAgICAgIGxpYmZmaV9jdl9hc19zdHJpbmdfcHNldWRvX29wPXVua25vd24KKyAgICAgICAjIENoZWNrIGlmIHdlIGhhdmUgLnN0cmluZworICAgICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KK2FzbSAoIi5zdHJpbmcgXFwic3RyaW5nXFwiIik7CitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisgIGxpYmZmaV9jdl9hc19zdHJpbmdfcHNldWRvX29wPXllcworZWxzZQorICBsaWJmZmlfY3ZfYXNfc3RyaW5nX3BzZXVkb19vcD1ubworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAorCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsaWJmZmlfY3ZfYXNfc3RyaW5nX3BzZXVkb19vcCIgPiY1CiskYXNfZWNobyAiJGxpYmZmaV9jdl9hc19zdHJpbmdfcHNldWRvX29wIiA+JjY7IH0KKyAgICBpZiB0ZXN0ICJ4JGxpYmZmaV9jdl9hc19zdHJpbmdfcHNldWRvX29wIiA9IHh5ZXM7IHRoZW4KKworJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9BU19TVFJJTkdfUFNFVURPX09QIDEiID4+Y29uZmRlZnMuaAorCisgICAgZmkKIGZpCiAKK2lmIHRlc3QgeCRUQVJHRVQgPSB4WDg2X1dJTjY0OyB0aGVuCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgXyBwcmVmaXggaW4gY29tcGlsZWQgc3ltYm9scyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgXyBwcmVmaXggaW4gY29tcGlsZWQgc3ltYm9scy4uLiAiID4mNjsgfQoraWYgJHtsdF9jdl9zeXNfc3ltYm9sX3VuZGVyc2NvcmUrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBsdF9jdl9zeXNfc3ltYm9sX3VuZGVyc2NvcmU9bm8KKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKK3ZvaWQgbm1fdGVzdF9mdW5jKCl7fQoraW50IG1haW4oKXtubV90ZXN0X2Z1bmM7cmV0dXJuIDA7fQorX0xUX0VPRgorICBpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuCisgICAgIyBOb3cgdHJ5IHRvIGdyYWIgdGhlIHN5bWJvbHMuCisgICAgYWNfbmxpc3Q9Y29uZnRlc3Qubm0KKyAgICBpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAkYWNfbmxpc3RcIiI7IH0gPiY1CisgIChldmFsICROTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIFw+ICRhY19ubGlzdCkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgdGVzdCAtcyAiJGFjX25saXN0IjsgdGhlbgorICAgICAgIyBTZWUgd2hldGhlciB0aGUgc3ltYm9scyBoYXZlIGEgbGVhZGluZyB1bmRlcnNjb3JlLgorICAgICAgaWYgZ3JlcCAnXi4gX25tX3Rlc3RfZnVuYycgIiRhY19ubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgorICAgICAgICBsdF9jdl9zeXNfc3ltYm9sX3VuZGVyc2NvcmU9eWVzCisgICAgICBlbHNlCisgICAgICAgIGlmIGdyZXAgJ14uIG5tX3Rlc3RfZnVuYyAnICIkYWNfbmxpc3QiID4vZGV2L251bGw7IHRoZW4KKwkgIDoKKyAgICAgICAgZWxzZQorCSAgZWNobyAiY29uZmlndXJlOiBjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJGFjX25saXN0IiA+JjUKKyAgICAgICAgZmkKKyAgICAgIGZpCisgICAgZWxzZQorICAgICAgZWNobyAiY29uZmlndXJlOiBjYW5ub3QgcnVuICRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiA+JjUKKyAgICBmaQorICBlbHNlCisgICAgZWNobyAiY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKKyAgICBjYXQgY29uZnRlc3QuYyA+JjUKKyAgZmkKKyAgcm0gLXJmIGNvbmZ0ZXN0KgorCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9zeXNfc3ltYm9sX3VuZGVyc2NvcmUiID4mNQorJGFzX2VjaG8gIiRsdF9jdl9zeXNfc3ltYm9sX3VuZGVyc2NvcmUiID4mNjsgfQorICBzeXNfc3ltYm9sX3VuZGVyc2NvcmU9JGx0X2N2X3N5c19zeW1ib2xfdW5kZXJzY29yZQorCisKKyAgICBpZiB0ZXN0ICJ4JHN5c19zeW1ib2xfdW5kZXJzY29yZSIgPSB4eWVzOyB0aGVuCisKKyRhc19lY2hvICIjZGVmaW5lIFNZTUJPTF9VTkRFUlNDT1JFIDEiID4+Y29uZmRlZnMuaAorCisgICAgZmkKK2ZpCisKKworRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRT0wCiBjYXNlICIkdGFyZ2V0IiBpbgotICAgICAqLWFwcGxlLWRhcndpbjEwKiB8ICotKi1mcmVlYnNkKiB8ICotKi1vcGVuYnNkKiB8ICotcGMtc29sYXJpcyopCisgICAgICphcm0qLWFwcGxlLWRhcndpbiopCisgICAgICAgRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRT0xCisKKyRhc19lY2hvICIjZGVmaW5lIEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUgMSIgPj5jb25mZGVmcy5oCisKKyAgICAgOzsKKyAgICAgKi1hcHBsZS1kYXJ3aW4xWzEwXSogfCAqLSotZnJlZWJzZCogfCAqLSota2ZyZWVic2QqIHwgKi0qLW9wZW5ic2QqIHwgKi1wYy1zb2xhcmlzKikKIAogJGFzX2VjaG8gIiNkZWZpbmUgRkZJX01NQVBfRVhFQ19XUklUIDEiID4+Y29uZmRlZnMuaAogCiAgICAgIDs7CiBlc2FjCisgaWYgdGVzdCB4JEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUgPSB4MTsgdGhlbgorICBGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFX1RSVUU9CisgIEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEVfRkFMU0U9JyMnCitlbHNlCisgIEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEVfVFJVRT0nIycKKyAgRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRV9GQUxTRT0KK2ZpCiAKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAuZWhfZnJhbWUgc2VjdGlvbiBzaG91bGQgYmUgcmVhZC1vbmx5IiA+JjUKLSRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgLmVoX2ZyYW1lIHNlY3Rpb24gc2hvdWxkIGJlIHJlYWQtb25seS4uLiAiID4mNjsgfQotaWYgdGVzdCAiJHtsaWJmZmlfY3Zfcm9fZWhfZnJhbWUrc2V0fSIgPSBzZXQ7IHRoZW4gOgorCisKK2lmIHRlc3QgeCRUQVJHRVQgPSB4WDg2XzY0OyB0aGVuCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBhc3NlbWJsZXIgc3VwcG9ydHMgdW53aW5kIHNlY3Rpb24gdHlwZSIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBhc3NlbWJsZXIgc3VwcG9ydHMgdW53aW5kIHNlY3Rpb24gdHlwZS4uLiAiID4mNjsgfQoraWYgJHtsaWJmZmlfY3ZfYXNfeDg2XzY0X3Vud2luZF9zZWN0aW9uX3R5cGUrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogCi0JbGliZmZpX2N2X3JvX2VoX2ZyYW1lPW5vCi0JZWNobyAnZXh0ZXJuIHZvaWQgZm9vICh2b2lkKTsgdm9pZCBiYXIgKHZvaWQpIHsgZm9vICgpOyBmb28gKCk7IH0nID4gY29uZnRlc3QuYwotCWlmICRDQyAkQ0ZMQUdTIC1TIC1mcGljIC1mZXhjZXB0aW9ucyAtbyBjb25mdGVzdC5zIGNvbmZ0ZXN0LmMgPiAvZGV2L251bGwgMj4mMTsgdGhlbgotCSAgICBpZiBncmVwICcuc2VjdGlvbi4qZWhfZnJhbWUuKiJhIicgY29uZnRlc3QucyA+IC9kZXYvbnVsbDsgdGhlbgotCQlsaWJmZmlfY3Zfcm9fZWhfZnJhbWU9eWVzCi0JICAgIGVsaWYgZ3JlcCAnLnNlY3Rpb24uKmVoX2ZyYW1lLiojYWxsb2MnIGNvbmZ0ZXN0LmMgXAotCQkgfCBncmVwIC12ICcjd3JpdGUnID4gL2Rldi9udWxsOyB0aGVuCi0JCWxpYmZmaV9jdl9yb19laF9mcmFtZT15ZXMKLQkgICAgZmkKKwlsaWJmZmlfY3ZfYXNfeDg2XzY0X3Vud2luZF9zZWN0aW9uX3R5cGU9eWVzCisJZWNobyAnLnNlY3Rpb24gLmVoX2ZyYW1lLCJhIixAdW53aW5kJyA+IGNvbmZ0ZXN0LnMKKwlpZiAkQ0MgJENGTEFHUyAtYyBjb25mdGVzdC5zIDI+JjEgfCBncmVwIC1pIHdhcm5pbmcgPiAvZGV2L251bGw7IHRoZW4KKwkgICAgbGliZmZpX2N2X2FzX3g4Nl82NF91bndpbmRfc2VjdGlvbl90eXBlPW5vCiAJZmkKLQlybSAtZiBjb25mdGVzdC4qCisKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGxpYmZmaV9jdl9hc194ODZfNjRfdW53aW5kX3NlY3Rpb25fdHlwZSIgPiY1CiskYXNfZWNobyAiJGxpYmZmaV9jdl9hc194ODZfNjRfdW53aW5kX3NlY3Rpb25fdHlwZSIgPiY2OyB9CisgICAgaWYgdGVzdCAieCRsaWJmZmlfY3ZfYXNfeDg2XzY0X3Vud2luZF9zZWN0aW9uX3R5cGUiID0geHllczsgdGhlbgorCiskYXNfZWNobyAiI2RlZmluZSBIQVZFX0FTX1g4Nl82NF9VTldJTkRfU0VDVElPTl9UWVBFIDEiID4+Y29uZmRlZnMuaAorCisgICAgZmkKK2ZpCisKK2lmIHRlc3QgIngkR0NDIiA9ICJ4eWVzIjsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgLmVoX2ZyYW1lIHNlY3Rpb24gc2hvdWxkIGJlIHJlYWQtb25seSIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIC5laF9mcmFtZSBzZWN0aW9uIHNob3VsZCBiZSByZWFkLW9ubHkuLi4gIiA+JjY7IH0KK2lmICR7bGliZmZpX2N2X3JvX2VoX2ZyYW1lKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKworICAJbGliZmZpX2N2X3JvX2VoX2ZyYW1lPW5vCisgIAllY2hvICdleHRlcm4gdm9pZCBmb28gKHZvaWQpOyB2b2lkIGJhciAodm9pZCkgeyBmb28gKCk7IGZvbyAoKTsgfScgPiBjb25mdGVzdC5jCisgIAlpZiAkQ0MgJENGTEFHUyAtUyAtZnBpYyAtZmV4Y2VwdGlvbnMgLW8gY29uZnRlc3QucyBjb25mdGVzdC5jID4gL2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgCSAgICBpZiBncmVwICcuc2VjdGlvbi4qZWhfZnJhbWUuKiJhIicgY29uZnRlc3QucyA+IC9kZXYvbnVsbDsgdGhlbgorICAJCWxpYmZmaV9jdl9yb19laF9mcmFtZT15ZXMKKyAgCSAgICBlbGlmIGdyZXAgJy5zZWN0aW9uLiplaF9mcmFtZS4qI2FsbG9jJyBjb25mdGVzdC5jIFwKKyAgCQkgfCBncmVwIC12ICcjd3JpdGUnID4gL2Rldi9udWxsOyB0aGVuCisgIAkJbGliZmZpX2N2X3JvX2VoX2ZyYW1lPXllcworICAJICAgIGZpCisgIAlmaQorICAJcm0gLWYgY29uZnRlc3QuKgogCiBmaQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsaWJmZmlfY3Zfcm9fZWhfZnJhbWUiID4mNQogJGFzX2VjaG8gIiRsaWJmZmlfY3Zfcm9fZWhfZnJhbWUiID4mNjsgfQotaWYgdGVzdCAieCRsaWJmZmlfY3Zfcm9fZWhfZnJhbWUiID0geHllczsgdGhlbgorICBpZiB0ZXN0ICJ4JGxpYmZmaV9jdl9yb19laF9mcmFtZSIgPSB4eWVzOyB0aGVuCiAKICRhc19lY2hvICIjZGVmaW5lIEhBVkVfUk9fRUhfRlJBTUUgMSIgPj5jb25mZGVmcy5oCiAKIAogJGFzX2VjaG8gIiNkZWZpbmUgRUhfRlJBTUVfRkxBR1MgXCJhXCIiID4+Y29uZmRlZnMuaAogCi1lbHNlCisgIGVsc2UKIAogJGFzX2VjaG8gIiNkZWZpbmUgRUhfRlJBTUVfRkxBR1MgXCJhd1wiIiA+PmNvbmZkZWZzLmgKIAotZmkKKyAgZmkKIAoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eShcImhpZGRlblwiKSkpIiA+JjUKKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eShcImhpZGRlblwiKSkpIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KFwiaGlkZGVuXCIpKSkuLi4gIiA+JjY7IH0KLWlmIHRlc3QgIiR7bGliZmZpX2N2X2hpZGRlbl92aXNpYmlsaXR5X2F0dHJpYnV0ZStzZXR9IiA9IHNldDsgdGhlbiA6CitpZiAke2xpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGUrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogCi0JZWNobyAnaW50IF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5ICgiaGlkZGVuIikpKSBmb28gKHZvaWQpIHsgcmV0dXJuIDE7IH0nID4gY29uZnRlc3QuYwotCWxpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGU9bm8KLQlpZiB7IGFjX3RyeT0nJHtDQy1jY30gLVdlcnJvciAtUyBjb25mdGVzdC5jIC1vIGNvbmZ0ZXN0LnMgMT4mNScKKyAgCWVjaG8gJ2ludCBfX2F0dHJpYnV0ZV9fICgodmlzaWJpbGl0eSAoImhpZGRlbiIpKSkgZm9vICh2b2lkKSB7IHJldHVybiAxICA7IH0nID4gY29uZnRlc3QuYworICAJbGliZmZpX2N2X2hpZGRlbl92aXNpYmlsaXR5X2F0dHJpYnV0ZT1ubworICAJaWYgeyBhY190cnk9JyR7Q0MtY2N9IC1XZXJyb3IgLVMgY29uZnRlc3QuYyAtbyBjb25mdGVzdC5zIDE+JjUnCiAgIHsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY190cnlcIiI7IH0gPiY1CiAgIChldmFsICRhY190cnkpIDI+JjUKICAgYWNfc3RhdHVzPSQ/CiAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB9OyB0aGVuCi0JICAgIGlmIGdyZXAgJ1wuaGlkZGVuLipmb28nIGNvbmZ0ZXN0LnMgPi9kZXYvbnVsbDsgdGhlbgotCQlsaWJmZmlfY3ZfaGlkZGVuX3Zpc2liaWxpdHlfYXR0cmlidXRlPXllcwotCSAgICBmaQotCWZpCi0Jcm0gLWYgY29uZnRlc3QuKgorICAJICAgIGlmIGdyZXAgJ1wuaGlkZGVuLipmb28nIGNvbmZ0ZXN0LnMgPi9kZXYvbnVsbDsgdGhlbgorICAJCWxpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGU9eWVzCisgIAkgICAgZmkKKyAgCWZpCisgIAlybSAtZiBjb25mdGVzdC4qCiAKIGZpCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGxpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGUiID4mNQogJGFzX2VjaG8gIiRsaWJmZmlfY3ZfaGlkZGVuX3Zpc2liaWxpdHlfYXR0cmlidXRlIiA+JjY7IH0KLWlmIHRlc3QgJGxpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGUgPSB5ZXM7IHRoZW4KKyAgaWYgdGVzdCAkbGliZmZpX2N2X2hpZGRlbl92aXNpYmlsaXR5X2F0dHJpYnV0ZSA9IHllczsgdGhlbgogCiAkYXNfZWNobyAiI2RlZmluZSBIQVZFX0hJRERFTl9WSVNJQklMSVRZX0FUVFJJQlVURSAxIiA+PmNvbmZkZWZzLmgKIAorICBmaQogZmkKIAogCkBAIC0xMjM2NSw2ICsxNDU5MiwxNCBAQAogICBmaQogZmkKIAorIGlmIHRlc3QgIiRlbmFibGVfZGVidWciID0gInllcyI7IHRoZW4KKyAgRkZJX0RFQlVHX1RSVUU9CisgIEZGSV9ERUJVR19GQUxTRT0nIycKK2Vsc2UKKyAgRkZJX0RFQlVHX1RSVUU9JyMnCisgIEZGSV9ERUJVR19GQUxTRT0KK2ZpCisKIAogIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0cnVjdHMgd2FzIGdpdmVuLgogaWYgdGVzdCAiJHtlbmFibGVfc3RydWN0cytzZXR9IiA9IHNldDsgdGhlbiA6CkBAIC0xMjM5NiwyMSArMTQ2MzEsMjUgQEAKIGZpCiAKIAotaWYgdGVzdCAtbiAiJHdpdGhfY3Jvc3NfaG9zdCIgJiYKLSAgIHRlc3QgeCIkd2l0aF9jcm9zc19ob3N0IiAhPSB4Im5vIjsgdGhlbgotICB0b29sZXhlY2Rpcj0nJChleGVjX3ByZWZpeCkvJCh0YXJnZXRfYWxpYXMpJwotICB0b29sZXhlY2xpYmRpcj0nJCh0b29sZXhlY2RpcikvbGliJwotZWxzZQotICB0b29sZXhlY2Rpcj0nJChsaWJkaXIpL2djYy1saWIvJCh0YXJnZXRfYWxpYXMpJwotICB0b29sZXhlY2xpYmRpcj0nJChsaWJkaXIpJworIyBUaGVzZSB2YXJpYWJsZXMgYXJlIG9ubHkgZXZlciB1c2VkIHdoZW4gd2UgY3Jvc3MtYnVpbGQgdG8gWDg2X1dJTjMyLgorIyBBbmQgd2Ugb25seSBzdXBwb3J0IHRoaXMgd2l0aCBHQ0MsIHNvLi4uCitpZiB0ZXN0IHgiJEdDQyIgIT0geCJubyI7IHRoZW4KKyAgaWYgdGVzdCAtbiAiJHdpdGhfY3Jvc3NfaG9zdCIgJiYKKyAgICAgdGVzdCB4IiR3aXRoX2Nyb3NzX2hvc3QiICE9IHgibm8iOyB0aGVuCisgICAgdG9vbGV4ZWNkaXI9JyQoZXhlY19wcmVmaXgpLyQodGFyZ2V0X2FsaWFzKScKKyAgICB0b29sZXhlY2xpYmRpcj0nJCh0b29sZXhlY2RpcikvbGliJworICBlbHNlCisgICAgdG9vbGV4ZWNkaXI9JyQobGliZGlyKS9nY2MtbGliLyQodGFyZ2V0X2FsaWFzKScKKyAgICB0b29sZXhlY2xpYmRpcj0nJChsaWJkaXIpJworICBmaQorICBtdWx0aV9vc19kaXJlY3Rvcnk9YCRDQyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5YAorICBjYXNlICRtdWx0aV9vc19kaXJlY3RvcnkgaW4KKyAgICAuKSA7OyAjIEF2b2lkIHRyYWlsaW5nIC8uCisgICAgKikgdG9vbGV4ZWNsaWJkaXI9JHRvb2xleGVjbGliZGlyLyRtdWx0aV9vc19kaXJlY3RvcnkgOzsKKyAgZXNhYworCisKIGZpCi1tdWx0aV9vc19kaXJlY3Rvcnk9YCRDQyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5YAotY2FzZSAkbXVsdGlfb3NfZGlyZWN0b3J5IGluCi0gIC4pIDs7ICMgQXZvaWQgdHJhaWxpbmcgLy4KLSAgKikgdG9vbGV4ZWNsaWJkaXI9JHRvb2xleGVjbGliZGlyLyRtdWx0aV9vc19kaXJlY3RvcnkgOzsKLWVzYWMKLQotCiAKIGlmIHRlc3QgIiR7bXVsdGlsaWJ9IiA9ICJ5ZXMiOyB0aGVuCiAgIG11bHRpbGliX2FyZz0iLS1lbmFibGUtbXVsdGlsaWIiCkBAIC0xMjQ5OSwxMCArMTQ3MzgsMjEgQEAKICAgICAgOmVuZCcgPj5jb25mY2FjaGUKIGlmIGRpZmYgIiRjYWNoZV9maWxlIiBjb25mY2FjaGUgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKICAgaWYgdGVzdCAtdyAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0gICAgdGVzdCAieCRjYWNoZV9maWxlIiAhPSAieC9kZXYvbnVsbCIgJiYKKyAgICBpZiB0ZXN0ICJ4JGNhY2hlX2ZpbGUiICE9ICJ4L2Rldi9udWxsIjsgdGhlbgogICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY1CiAkYXNfZWNobyAiJGFzX21lOiB1cGRhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30KLSAgICBjYXQgY29uZmNhY2hlID4kY2FjaGVfZmlsZQorICAgICAgaWYgdGVzdCAhIC1mICIkY2FjaGVfZmlsZSIgfHwgdGVzdCAtaCAiJGNhY2hlX2ZpbGUiOyB0aGVuCisJY2F0IGNvbmZjYWNoZSA+IiRjYWNoZV9maWxlIgorICAgICAgZWxzZQorICAgICAgICBjYXNlICRjYWNoZV9maWxlIGluICMoCisgICAgICAgICovKiB8ID86KikKKwkgIG12IC1mIGNvbmZjYWNoZSAiJGNhY2hlX2ZpbGUiJCQgJiYKKwkgIG12IC1mICIkY2FjaGVfZmlsZSIkJCAiJGNhY2hlX2ZpbGUiIDs7ICMoCisgICAgICAgICopCisJICBtdiAtZiBjb25mY2FjaGUgIiRjYWNoZV9maWxlIiA7OworCWVzYWMKKyAgICAgIGZpCisgICAgZmkKICAgZWxzZQogICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogbm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNQogJGFzX2VjaG8gIiRhc19tZTogbm90IHVwZGF0aW5nIHVud3JpdGFibGUgY2FjaGUgJGNhY2hlX2ZpbGUiID4mNjt9CkBAIC0xMjUxOCw2ICsxNDc2OCw3IEBACiAKIGFjX2xpYm9ianM9CiBhY19sdGxpYm9ianM9CitVPQogZm9yIGFjX2kgaW4gOiAkTElCT0JKUzsgZG8gdGVzdCAieCRhY19pIiA9IHg6ICYmIGNvbnRpbnVlCiAgICMgMS4gUmVtb3ZlIHRoZSBleHRlbnNpb24sIGFuZCAkVSBpZiBhbHJlYWR5IGluc3RhbGxlZC4KICAgYWNfc2NyaXB0PSdzL1wkVVwuLy4vO3MvXC5vJC8vO3MvXC5vYmokLy8nCkBAIC0xMjU0MSwxMzIgKzE0NzkyLDE0NCBAQAogZmkKIAogaWYgdGVzdCAteiAiJHtBTURFUF9UUlVFfSIgJiYgdGVzdCAteiAiJHtBTURFUF9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIkFNREVQXCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDX1RSVUV9IiAmJiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENDXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcImFtX19mYXN0ZGVwQ0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke2FtX19mYXN0ZGVwQ0NBU19UUlVFfSIgJiYgdGVzdCAteiAiJHthbV9fZmFzdGRlcENDQVNfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRlcENDQVNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBDQ0FTXCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtNQUlOVEFJTkVSX01PREVfVFJVRX0iICYmIHRlc3QgLXogIiR7TUFJTlRBSU5FUl9NT0RFX0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiTUFJTlRBSU5FUl9NT0RFXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIk1BSU5UQUlORVJfTU9ERVwiIHdhcyBuZXZlciBkZWZpbmVkLgogVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQogZmkKIGlmIHRlc3QgLXogIiR7VEVTVFNVQkRJUl9UUlVFfSIgJiYgdGVzdCAteiAiJHtURVNUU1VCRElSX0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiVEVTVFNVQkRJUlwiIHdhcyBuZXZlciBkZWZpbmVkLgorICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJURVNUU1VCRElSXCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtNSVBTX1RSVUV9IiAmJiB0ZXN0IC16ICIke01JUFNfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJNSVBTXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIk1JUFNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke1NQQVJDX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NQQVJDX0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiU1BBUkNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiU1BBUkNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke1g4Nl9UUlVFfSIgJiYgdGVzdCAteiAiJHtYODZfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJYODZcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiWDg2XCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtYODZfRlJFRUJTRF9UUlVFfSIgJiYgdGVzdCAteiAiJHtYODZfRlJFRUJTRF9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIlg4Nl9GUkVFQlNEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlg4Nl9GUkVFQlNEXCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtYODZfV0lOMzJfVFJVRX0iICYmIHRlc3QgLXogIiR7WDg2X1dJTjMyX0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiWDg2X1dJTjMyXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlg4Nl9XSU4zMlwiIHdhcyBuZXZlciBkZWZpbmVkLgogVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQogZmkKIGlmIHRlc3QgLXogIiR7WDg2X1dJTjY0X1RSVUV9IiAmJiB0ZXN0IC16ICIke1g4Nl9XSU42NF9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIlg4Nl9XSU42NFwiIHdhcyBuZXZlciBkZWZpbmVkLgorICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJYODZfV0lONjRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke1g4Nl9EQVJXSU5fVFJVRX0iICYmIHRlc3QgLXogIiR7WDg2X0RBUldJTl9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIlg4Nl9EQVJXSU5cIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiWDg2X0RBUldJTlwiIHdhcyBuZXZlciBkZWZpbmVkLgogVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQogZmkKIGlmIHRlc3QgLXogIiR7QUxQSEFfVFJVRX0iICYmIHRlc3QgLXogIiR7QUxQSEFfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJBTFBIQVwiIHdhcyBuZXZlciBkZWZpbmVkLgorICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJBTFBIQVwiIHdhcyBuZXZlciBkZWZpbmVkLgogVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQogZmkKIGlmIHRlc3QgLXogIiR7SUE2NF9UUlVFfSIgJiYgdGVzdCAteiAiJHtJQTY0X0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiSUE2NFwiIHdhcyBuZXZlciBkZWZpbmVkLgorICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJJQTY0XCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtNMzJSX1RSVUV9IiAmJiB0ZXN0IC16ICIke00zMlJfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJNMzJSXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIk0zMlJcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke002OEtfVFJVRX0iICYmIHRlc3QgLXogIiR7TTY4S19GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIk02OEtcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiTTY4S1wiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQorZmkKK2lmIHRlc3QgLXogIiR7TU9YSUVfVFJVRX0iICYmIHRlc3QgLXogIiR7TU9YSUVfRkFMU0V9IjsgdGhlbgorICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJNT1hJRVwiIHdhcyBuZXZlciBkZWZpbmVkLgogVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQogZmkKIGlmIHRlc3QgLXogIiR7UE9XRVJQQ19UUlVFfSIgJiYgdGVzdCAteiAiJHtQT1dFUlBDX0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiUE9XRVJQQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgorICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJQT1dFUlBDXCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtQT1dFUlBDX0FJWF9UUlVFfSIgJiYgdGVzdCAteiAiJHtQT1dFUlBDX0FJWF9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIlBPV0VSUENfQUlYXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlBPV0VSUENfQUlYXCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtQT1dFUlBDX0RBUldJTl9UUlVFfSIgJiYgdGVzdCAteiAiJHtQT1dFUlBDX0RBUldJTl9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIlBPV0VSUENfREFSV0lOXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlBPV0VSUENfREFSV0lOXCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtQT1dFUlBDX0ZSRUVCU0RfVFJVRX0iICYmIHRlc3QgLXogIiR7UE9XRVJQQ19GUkVFQlNEX0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiUE9XRVJQQ19GUkVFQlNEXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlBPV0VSUENfRlJFRUJTRFwiIHdhcyBuZXZlciBkZWZpbmVkLgogVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQogZmkKIGlmIHRlc3QgLXogIiR7QVJNX1RSVUV9IiAmJiB0ZXN0IC16ICIke0FSTV9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIkFSTVwiIHdhcyBuZXZlciBkZWZpbmVkLgorICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJBUk1cIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke0FWUjMyX1RSVUV9IiAmJiB0ZXN0IC16ICIke0FWUjMyX0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiQVZSMzJcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiQVZSMzJcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke0xJQkZGSV9DUklTX1RSVUV9IiAmJiB0ZXN0IC16ICIke0xJQkZGSV9DUklTX0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiTElCRkZJX0NSSVNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiTElCRkZJX0NSSVNcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke0ZSVl9UUlVFfSIgJiYgdGVzdCAteiAiJHtGUlZfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJGUlZcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiRlJWXCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtTMzkwX1RSVUV9IiAmJiB0ZXN0IC16ICIke1MzOTBfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJTMzkwXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlMzOTBcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke1g4Nl82NF9UUlVFfSIgJiYgdGVzdCAteiAiJHtYODZfNjRfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJYODZfNjRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiWDg2XzY0XCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtTSF9UUlVFfSIgJiYgdGVzdCAteiAiJHtTSF9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIlNIXCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlNIXCIgd2FzIG5ldmVyIGRlZmluZWQuCiBVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1CiBmaQogaWYgdGVzdCAteiAiJHtTSDY0X1RSVUV9IiAmJiB0ZXN0IC16ICIke1NINjRfRkFMU0V9IjsgdGhlbgotICBhc19mbl9lcnJvciAiY29uZGl0aW9uYWwgXCJTSDY0XCIgd2FzIG5ldmVyIGRlZmluZWQuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlNINjRcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke1BBX0xJTlVYX1RSVUV9IiAmJiB0ZXN0IC16ICIke1BBX0xJTlVYX0ZBTFNFfSI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgImNvbmRpdGlvbmFsIFwiUEFfTElOVVhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiUEFfTElOVVhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiBpZiB0ZXN0IC16ICIke1BBX0hQVVhfVFJVRX0iICYmIHRlc3QgLXogIiR7UEFfSFBVWF9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIlBBX0hQVVhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiUEFfSFBVWFwiIHdhcyBuZXZlciBkZWZpbmVkLgogVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQogZmkKIGlmIHRlc3QgLXogIiR7UEE2NF9IUFVYX1RSVUV9IiAmJiB0ZXN0IC16ICIke1BBNjRfSFBVWF9GQUxTRX0iOyB0aGVuCi0gIGFzX2ZuX2Vycm9yICJjb25kaXRpb25hbCBcIlBBNjRfSFBVWFwiIHdhcyBuZXZlciBkZWZpbmVkLgorICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJQQTY0X0hQVVhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KIFVzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKIGZpCiAKK2lmIHRlc3QgLXogIiR7RkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRV9UUlVFfSIgJiYgdGVzdCAteiAiJHtGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFX0ZBTFNFfSI7IHRoZW4KKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRVwiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQorZmkKK2lmIHRlc3QgLXogIiR7RkZJX0RFQlVHX1RSVUV9IiAmJiB0ZXN0IC16ICIke0ZGSV9ERUJVR19GQUxTRX0iOyB0aGVuCisgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIkZGSV9ERUJVR1wiIHdhcyBuZXZlciBkZWZpbmVkLgorVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQorZmkKIAotOiAke0NPTkZJR19TVEFUVVM9Li9jb25maWcuc3RhdHVzfQorOiAiJHtDT05GSUdfU1RBVFVTPS4vY29uZmlnLnN0YXR1c30iCiBhY193cml0ZV9mYWlsPTAKIGFjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCiBhY19jbGVhbl9maWxlcz0iJGFjX2NsZWFuX2ZpbGVzICRDT05GSUdfU1RBVFVTIgpAQCAtMTI3NjcsNiArMTUwMzAsNyBAQAogSUZTPSIgIiIJJGFzX25sIgogCiAjIEZpbmQgd2hvIHdlIGFyZS4gIExvb2sgaW4gdGhlIHBhdGggaWYgd2UgY29udGFpbiBubyBkaXJlY3Rvcnkgc2VwYXJhdG9yLgorYXNfbXlzZWxmPQogY2FzZSAkMCBpbiAjKCgKICAgKltcXC9dKiApIGFzX215c2VsZj0kMCA7OwogICAqKSBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCkBAIC0xMjgxMiwxOSArMTUwNzYsMTkgQEAKICh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKIAogCi0jIGFzX2ZuX2Vycm9yIEVSUk9SIFtMSU5FTk8gTE9HX0ZEXQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgYXNfZm5fZXJyb3IgU1RBVFVTIEVSUk9SIFtMSU5FTk8gTE9HX0ZEXQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIE91dHB1dCAiYGJhc2VuYW1lICQwYDogZXJyb3I6IEVSUk9SIiB0byBzdGRlcnIuIElmIExJTkVOTyBhbmQgTE9HX0ZEIGFyZQogIyBwcm92aWRlZCwgYWxzbyBvdXRwdXQgdGhlIGVycm9yIHRvIExPR19GRCwgcmVmZXJlbmNpbmcgTElORU5PLiBUaGVuIGV4aXQgdGhlCi0jIHNjcmlwdCB3aXRoIHN0YXR1cyAkPywgdXNpbmcgMSBpZiB0aGF0IHdhcyAwLgorIyBzY3JpcHQgd2l0aCBTVEFUVVMsIHVzaW5nIDEgaWYgdGhhdCB3YXMgMC4KIGFzX2ZuX2Vycm9yICgpCiB7Ci0gIGFzX3N0YXR1cz0kPzsgdGVzdCAkYXNfc3RhdHVzIC1lcSAwICYmIGFzX3N0YXR1cz0xCi0gIGlmIHRlc3QgIiQzIjsgdGhlbgotICAgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDIifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3RhY2sKLSAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogJDEiID4mJDMKKyAgYXNfc3RhdHVzPSQxOyB0ZXN0ICRhc19zdGF0dXMgLWVxIDAgJiYgYXNfc3RhdHVzPTEKKyAgaWYgdGVzdCAiJDQiOyB0aGVuCisgICAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMyJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjaworICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiAkMiIgPiYkNAogICBmaQotICAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJDEiID4mMgorICAkYXNfZWNobyAiJGFzX21lOiBlcnJvcjogJDIiID4mMgogICBhc19mbl9leGl0ICRhc19zdGF0dXMKIH0gIyBhc19mbl9lcnJvcgogCkBAIC0xMzAyMCw3ICsxNTI4NCw3IEBACiAgICAgICB0ZXN0IC1kICIkYXNfZGlyIiAmJiBicmVhawogICAgIGRvbmUKICAgICB0ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMiCi0gIH0gfHwgdGVzdCAtZCAiJGFzX2RpciIgfHwgYXNfZm5fZXJyb3IgImNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiCisgIH0gfHwgdGVzdCAtZCAiJGFzX2RpciIgfHwgYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBjcmVhdGUgZGlyZWN0b3J5ICRhc19kaXIiCiAKIAogfSAjIGFzX2ZuX21rZGlyX3AKQEAgLTEzMDczLDggKzE1MzM3LDggQEAKICMgcmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0Yy4gaW5zdGVhZCBvZiB0aGVpcgogIyB2YWx1ZXMgYWZ0ZXIgb3B0aW9ucyBoYW5kbGluZy4KIGFjX2xvZz0iCi1UaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IGxpYmZmaSAkYXNfbWUgMy4wLjEwcmMwLCB3aGljaCB3YXMKLWdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NS4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcworVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBsaWJmZmkgJGFzX21lIDMuMC4xMSwgd2hpY2ggd2FzCitnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjguICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICBDT05GSUdfRklMRVMgICAgPSAkQ09ORklHX0ZJTEVTCiAgIENPTkZJR19IRUFERVJTICA9ICRDT05GSUdfSEVBREVSUwpAQCAtMTMxMzcsMTcgKzE1NDAxLDE3IEBACiBDb25maWd1cmF0aW9uIGNvbW1hbmRzOgogJGNvbmZpZ19jb21tYW5kcwogCi1SZXBvcnQgYnVncyB0byA8aHR0cDovL2djYy5nbnUub3JnL2J1Z3MuaHRtbD4uIgorUmVwb3J0IGJ1Z3MgdG8gPGh0dHA6Ly9naXRodWIuY29tL2F0Z3JlZW4vbGliZmZpL2lzc3Vlcz4uIgogCiBfQUNFT0YKIGNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQogYWNfY3NfY29uZmlnPSJgJGFzX2VjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvXiAvLzsgcy9bXFwiIlxgXCRdL1xcXFwmL2cnYCIKIGFjX2NzX3ZlcnNpb249IlxcCi1saWJmZmkgY29uZmlnLnN0YXR1cyAzLjAuMTByYzAKLWNvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NSwKK2xpYmZmaSBjb25maWcuc3RhdHVzIDMuMC4xMQorY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4LAogICB3aXRoIG9wdGlvbnMgXFwiXCRhY19jc19jb25maWdcXCIKIAotQ29weXJpZ2h0IChDKSAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogVGhpcyBjb25maWcuc3RhdHVzIHNjcmlwdCBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgogCkBAIC0xMzE2NSwxMSArMTU0MjksMTYgQEAKIHdoaWxlIHRlc3QgJCMgIT0gMAogZG8KICAgY2FzZSAkMSBpbgotICAtLSo9KikKKyAgLS0qPT8qKQogICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6ICdYXChbXj1dKlwpPSdgCiAgICAgYWNfb3B0YXJnPWBleHByICJYJDEiIDogJ1hbXj1dKj1cKC4qXCknYAogICAgIGFjX3NoaWZ0PToKICAgICA7OworICAtLSo9KQorICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6ICdYXChbXj1dKlwpPSdgCisgICAgYWNfb3B0YXJnPQorICAgIGFjX3NoaWZ0PToKKyAgICA7OwogICAqKQogICAgIGFjX29wdGlvbj0kMQogICAgIGFjX29wdGFyZz0kMgpAQCAtMTMxOTEsNiArMTU0NjAsNyBAQAogICAgICRhY19zaGlmdAogICAgIGNhc2UgJGFjX29wdGFyZyBpbgogICAgICpcJyopIGFjX29wdGFyZz1gJGFzX2VjaG8gIiRhY19vcHRhcmciIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7CisgICAgJycpIGFzX2ZuX2Vycm9yICQ/ICJtaXNzaW5nIGZpbGUgYXJndW1lbnQiIDs7CiAgICAgZXNhYwogICAgIGFzX2ZuX2FwcGVuZCBDT05GSUdfRklMRVMgIiAnJGFjX29wdGFyZyciCiAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CkBAIC0xMzIwMyw3ICsxNTQ3Myw3IEBACiAgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7CiAgIC0taGUgfCAtLWgpCiAgICAgIyBDb25mbGljdCBiZXR3ZWVuIC0taGVscCBhbmQgLS1oZWFkZXIKLSAgICBhc19mbl9lcnJvciAiYW1iaWd1b3VzIG9wdGlvbjogXGAkMScKKyAgICBhc19mbl9lcnJvciAkPyAiYW1iaWd1b3VzIG9wdGlvbjogXGAkMScKIFRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uIjs7CiAgIC0taGVscCB8IC0taGVsIHwgLWggKQogICAgICRhc19lY2hvICIkYWNfY3NfdXNhZ2UiOyBleGl0IDs7CkBAIC0xMzIxMiw3ICsxNTQ4Miw3IEBACiAgICAgYWNfY3Nfc2lsZW50PTogOzsKIAogICAjIFRoaXMgaXMgYW4gZXJyb3IuCi0gIC0qKSBhc19mbl9lcnJvciAidW5yZWNvZ25pemVkIG9wdGlvbjogXGAkMScKKyAgLSopIGFzX2ZuX2Vycm9yICQ/ICJ1bnJlY29nbml6ZWQgb3B0aW9uOiBcYCQxJwogVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iIDs7CiAKICAgKikgYXNfZm5fYXBwZW5kIGFjX2NvbmZpZ190YXJnZXRzICIgJDEiCkBAIC0xMzI1Niw2ICsxNTUyNiwxNCBAQAogIwogIyBJTklULUNPTU1BTkRTCiAjCitheF9lbmFibGVfYnVpbGRkaXJfc3JjZGlyPSIkc3JjZGlyIiAgICAgICAgICAgICAgICAgICAgIyAkc3JjZGlyCitheF9lbmFibGVfYnVpbGRkaXJfaG9zdD0iJEhPU1QiICAgICAgICAgICAgICAgICAgICAgICAgIyAkSE9TVCAvICRob3N0CitheF9lbmFibGVfYnVpbGRkaXJfdmVyc2lvbj0iJFZFUlNJT04iICAgICAgICAgICAgICAgICAgIyAkVkVSU0lPTgorYXhfZW5hYmxlX2J1aWxkZGlyX3BhY2thZ2U9IiRQQUNLQUdFIiAgICAgICAgICAgICAgICAgICMgJFBBQ0tBR0UKK2F4X2VuYWJsZV9idWlsZGRpcl9hdXhkaXI9IiRheF9lbmFibGVfYnVpbGRkaXJfYXV4ZGlyIiAjICRBVVgKK2F4X2VuYWJsZV9idWlsZGRpcl9zZWQ9IiRheF9lbmFibGVfYnVpbGRkaXJfc2VkIiAgICAgICAjICRTRUQKK2F4X2VuYWJsZV9idWlsZGRpcj0iJGF4X2VuYWJsZV9idWlsZGRpciIgICAgICAgICAgICAgICAjICRTVUIKKwogQU1ERVBfVFJVRT0iJEFNREVQX1RSVUUiIGFjX2F1eF9kaXI9IiRhY19hdXhfZGlyIgogCiAKQEAgLTEzMjY2LDEzMSArMTU1NDQsMTU0IEBACiBzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCiBkb3VibGVfcXVvdGVfc3Vic3Q9JyRkb3VibGVfcXVvdGVfc3Vic3QnCiBkZWxheV92YXJpYWJsZV9zdWJzdD0nJGRlbGF5X3ZhcmlhYmxlX3N1YnN0JwotbWFjcm9fdmVyc2lvbj0nYCRFQ0hPICJYJG1hY3JvX3ZlcnNpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLW1hY3JvX3JldmlzaW9uPSdgJEVDSE8gIlgkbWFjcm9fcmV2aXNpb24iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWVuYWJsZV9zaGFyZWQ9J2AkRUNITyAiWCRlbmFibGVfc2hhcmVkIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1lbmFibGVfc3RhdGljPSdgJEVDSE8gIlgkZW5hYmxlX3N0YXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotcGljX21vZGU9J2AkRUNITyAiWCRwaWNfbW9kZSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotZW5hYmxlX2Zhc3RfaW5zdGFsbD0nYCRFQ0hPICJYJGVuYWJsZV9mYXN0X2luc3RhbGwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWhvc3RfYWxpYXM9J2AkRUNITyAiWCRob3N0X2FsaWFzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1ob3N0PSdgJEVDSE8gIlgkaG9zdCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotaG9zdF9vcz0nYCRFQ0hPICJYJGhvc3Rfb3MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWJ1aWxkX2FsaWFzPSdgJEVDSE8gIlgkYnVpbGRfYWxpYXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWJ1aWxkPSdgJEVDSE8gIlgkYnVpbGQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWJ1aWxkX29zPSdgJEVDSE8gIlgkYnVpbGRfb3MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLVNFRD0nYCRFQ0hPICJYJFNFRCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotWHNlZD0nYCRFQ0hPICJYJFhzZWQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLUdSRVA9J2AkRUNITyAiWCRHUkVQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1FR1JFUD0nYCRFQ0hPICJYJEVHUkVQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1GR1JFUD0nYCRFQ0hPICJYJEZHUkVQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1MRD0nYCRFQ0hPICJYJExEIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1OTT0nYCRFQ0hPICJYJE5NIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1MTl9TPSdgJEVDSE8gIlgkTE5fUyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotbWF4X2NtZF9sZW49J2AkRUNITyAiWCRtYXhfY21kX2xlbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotYWNfb2JqZXh0PSdgJEVDSE8gIlgkYWNfb2JqZXh0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1leGVleHQ9J2AkRUNITyAiWCRleGVleHQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWx0X3Vuc2V0PSdgJEVDSE8gIlgkbHRfdW5zZXQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWx0X1NQMk5MPSdgJEVDSE8gIlgkbHRfU1AyTkwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWx0X05MMlNQPSdgJEVDSE8gIlgkbHRfTkwyU1AiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLXJlbG9hZF9mbGFnPSdgJEVDSE8gIlgkcmVsb2FkX2ZsYWciIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLXJlbG9hZF9jbWRzPSdgJEVDSE8gIlgkcmVsb2FkX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLU9CSkRVTVA9J2AkRUNITyAiWCRPQkpEVU1QIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1kZXBsaWJzX2NoZWNrX21ldGhvZD0nYCRFQ0hPICJYJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1maWxlX21hZ2ljX2NtZD0nYCRFQ0hPICJYJGZpbGVfbWFnaWNfY21kIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1BUj0nYCRFQ0hPICJYJEFSIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1BUl9GTEFHUz0nYCRFQ0hPICJYJEFSX0ZMQUdTIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1TVFJJUD0nYCRFQ0hPICJYJFNUUklQIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1SQU5MSUI9J2AkRUNITyAiWCRSQU5MSUIiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLW9sZF9wb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIlgkb2xkX3Bvc3RpbnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLW9sZF9wb3N0dW5pbnN0YWxsX2NtZHM9J2AkRUNITyAiWCRvbGRfcG9zdHVuaW5zdGFsbF9jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1vbGRfYXJjaGl2ZV9jbWRzPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotQ0M9J2AkRUNITyAiWCRDQyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotQ0ZMQUdTPSdgJEVDSE8gIlgkQ0ZMQUdTIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1jb21waWxlcj0nYCRFQ0hPICJYJGNvbXBpbGVyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1HQ0M9J2AkRUNITyAiWCRHQ0MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J2AkRUNITyAiWCRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0nYCRFQ0hPICJYJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0nYCRFQ0hPICJYJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdgJEVDSE8gIlgkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotb2JqZGlyPSdgJEVDSE8gIlgkb2JqZGlyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1TSEVMTD0nYCRFQ0hPICJYJFNIRUxMIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1FQ0hPPSdgJEVDSE8gIlgkRUNITyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotTUFHSUNfQ01EPSdgJEVDSE8gIlgkTUFHSUNfQ01EIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1sdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0nYCRFQ0hPICJYJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1sdF9wcm9nX2NvbXBpbGVyX3dsPSdgJEVDSE8gIlgkbHRfcHJvZ19jb21waWxlcl93bCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotbHRfcHJvZ19jb21waWxlcl9waWM9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9J2AkRUNITyAiWCRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotbHRfY3ZfcHJvZ19jb21waWxlcl9jX289J2AkRUNITyAiWCRsdF9jdl9wcm9nX2NvbXBpbGVyX2NfbyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotbmVlZF9sb2Nrcz0nYCRFQ0hPICJYJG5lZWRfbG9ja3MiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLURTWU1VVElMPSdgJEVDSE8gIlgkRFNZTVVUSUwiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLU5NRURJVD0nYCRFQ0hPICJYJE5NRURJVCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotTElQTz0nYCRFQ0hPICJYJExJUE8iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLU9UT09MPSdgJEVDSE8gIlgkT1RPT0wiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLU9UT09MNjQ9J2AkRUNITyAiWCRPVE9PTDY0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1saWJleHQ9J2AkRUNITyAiWCRsaWJleHQiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLXNocmV4dF9jbWRzPSdgJEVDSE8gIlgkc2hyZXh0X2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWV4dHJhY3RfZXhwc3ltc19jbWRzPSdgJEVDSE8gIlgkZXh0cmFjdF9leHBzeW1zX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWFyY2hpdmVfY21kc19uZWVkX2xjPSdgJEVDSE8gIlgkYXJjaGl2ZV9jbWRzX25lZWRfbGMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9J2AkRUNITyAiWCRlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1leHBvcnRfZHluYW1pY19mbGFnX3NwZWM9J2AkRUNITyAiWCRleHBvcnRfZHluYW1pY19mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSdgJEVDSE8gIlgkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWNvbXBpbGVyX25lZWRzX29iamVjdD0nYCRFQ0hPICJYJGNvbXBpbGVyX25lZWRzX29iamVjdCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0nYCRFQ0hPICJYJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLW9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzPSdgJEVDSE8gIlgkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWFyY2hpdmVfY21kcz0nYCRFQ0hPICJYJGFyY2hpdmVfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotYXJjaGl2ZV9leHBzeW1fY21kcz0nYCRFQ0hPICJYJGFyY2hpdmVfZXhwc3ltX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLW1vZHVsZV9jbWRzPSdgJEVDSE8gIlgkbW9kdWxlX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLW1vZHVsZV9leHBzeW1fY21kcz0nYCRFQ0hPICJYJG1vZHVsZV9leHBzeW1fY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotd2l0aF9nbnVfbGQ9J2AkRUNITyAiWCR3aXRoX2dudV9sZCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotYWxsb3dfdW5kZWZpbmVkX2ZsYWc9J2AkRUNITyAiWCRhbGxvd191bmRlZmluZWRfZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotbm9fdW5kZWZpbmVkX2ZsYWc9J2AkRUNITyAiWCRub191bmRlZmluZWRfZmxhZyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYCRFQ0hPICJYJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQ9J2AkRUNITyAiWCRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSdgJEVDSE8gIlgkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotaGFyZGNvZGVfZGlyZWN0PSdgJEVDSE8gIlgkaGFyZGNvZGVfZGlyZWN0IiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1oYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9J2AkRUNITyAiWCRoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWhhcmRjb2RlX21pbnVzX0w9J2AkRUNITyAiWCRoYXJkY29kZV9taW51c19MIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1oYXJkY29kZV9zaGxpYnBhdGhfdmFyPSdgJEVDSE8gIlgkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotaGFyZGNvZGVfYXV0b21hdGljPSdgJEVDSE8gIlgkaGFyZGNvZGVfYXV0b21hdGljIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1pbmhlcml0X3JwYXRoPSdgJEVDSE8gIlgkaW5oZXJpdF9ycGF0aCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotbGlua19hbGxfZGVwbGlicz0nYCRFQ0hPICJYJGxpbmtfYWxsX2RlcGxpYnMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWZpeF9zcmNmaWxlX3BhdGg9J2AkRUNITyAiWCRmaXhfc3JjZmlsZV9wYXRoIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1hbHdheXNfZXhwb3J0X3N5bWJvbHM9J2AkRUNITyAiWCRhbHdheXNfZXhwb3J0X3N5bWJvbHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWV4cG9ydF9zeW1ib2xzX2NtZHM9J2AkRUNITyAiWCRleHBvcnRfc3ltYm9sc19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1leGNsdWRlX2V4cHN5bXM9J2AkRUNITyAiWCRleGNsdWRlX2V4cHN5bXMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWluY2x1ZGVfZXhwc3ltcz0nYCRFQ0hPICJYJGluY2x1ZGVfZXhwc3ltcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotcHJlbGlua19jbWRzPSdgJEVDSE8gIlgkcHJlbGlua19jbWRzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1maWxlX2xpc3Rfc3BlYz0nYCRFQ0hPICJYJGZpbGVfbGlzdF9zcGVjIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi12YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGluaz0nYCRFQ0hPICJYJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1uZWVkX2xpYl9wcmVmaXg9J2AkRUNITyAiWCRuZWVkX2xpYl9wcmVmaXgiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLW5lZWRfdmVyc2lvbj0nYCRFQ0hPICJYJG5lZWRfdmVyc2lvbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotdmVyc2lvbl90eXBlPSdgJEVDSE8gIlgkdmVyc2lvbl90eXBlIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1ydW5wYXRoX3Zhcj0nYCRFQ0hPICJYJHJ1bnBhdGhfdmFyIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1zaGxpYnBhdGhfdmFyPSdgJEVDSE8gIlgkc2hsaWJwYXRoX3ZhciIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSdgJEVDSE8gIlgkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1saWJuYW1lX3NwZWM9J2AkRUNITyAiWCRsaWJuYW1lX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWxpYnJhcnlfbmFtZXNfc3BlYz0nYCRFQ0hPICJYJGxpYnJhcnlfbmFtZXNfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotc29uYW1lX3NwZWM9J2AkRUNITyAiWCRzb25hbWVfc3BlYyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotcG9zdGluc3RhbGxfY21kcz0nYCRFQ0hPICJYJHBvc3RpbnN0YWxsX2NtZHMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLXBvc3R1bmluc3RhbGxfY21kcz0nYCRFQ0hPICJYJHBvc3R1bmluc3RhbGxfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotZmluaXNoX2NtZHM9J2AkRUNITyAiWCRmaW5pc2hfY21kcyIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotZmluaXNoX2V2YWw9J2AkRUNITyAiWCRmaW5pc2hfZXZhbCIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotaGFyZGNvZGVfaW50b19saWJzPSdgJEVDSE8gIlgkaGFyZGNvZGVfaW50b19saWJzIiB8ICRYc2VkIC1lICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi1zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9J2AkRUNITyAiWCRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLXN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSdgJEVDSE8gIlgkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWhhcmRjb2RlX2FjdGlvbj0nYCRFQ0hPICJYJGhhcmRjb2RlX2FjdGlvbiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotZW5hYmxlX2Rsb3Blbj0nYCRFQ0hPICJYJGVuYWJsZV9kbG9wZW4iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLWVuYWJsZV9kbG9wZW5fc2VsZj0nYCRFQ0hPICJYJGVuYWJsZV9kbG9wZW5fc2VsZiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0nYCRFQ0hPICJYJGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWMiIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLW9sZF9zdHJpcGxpYj0nYCRFQ0hPICJYJG9sZF9zdHJpcGxpYiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotc3RyaXBsaWI9J2AkRUNITyAiWCRzdHJpcGxpYiIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbWFjcm9fdmVyc2lvbj0nYCRFQ0hPICIkbWFjcm9fdmVyc2lvbiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCittYWNyb19yZXZpc2lvbj0nYCRFQ0hPICIkbWFjcm9fcmV2aXNpb24iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworZW5hYmxlX3NoYXJlZD0nYCRFQ0hPICIkZW5hYmxlX3NoYXJlZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitlbmFibGVfc3RhdGljPSdgJEVDSE8gIiRlbmFibGVfc3RhdGljIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK3BpY19tb2RlPSdgJEVDSE8gIiRwaWNfbW9kZSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitlbmFibGVfZmFzdF9pbnN0YWxsPSdgJEVDSE8gIiRlbmFibGVfZmFzdF9pbnN0YWxsIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK1NIRUxMPSdgJEVDSE8gIiRTSEVMTCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitFQ0hPPSdgJEVDSE8gIiRFQ0hPIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK1BBVEhfU0VQQVJBVE9SPSdgJEVDSE8gIiRQQVRIX1NFUEFSQVRPUiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitob3N0X2FsaWFzPSdgJEVDSE8gIiRob3N0X2FsaWFzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2hvc3Q9J2AkRUNITyAiJGhvc3QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworaG9zdF9vcz0nYCRFQ0hPICIkaG9zdF9vcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitidWlsZF9hbGlhcz0nYCRFQ0hPICIkYnVpbGRfYWxpYXMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworYnVpbGQ9J2AkRUNITyAiJGJ1aWxkIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2J1aWxkX29zPSdgJEVDSE8gIiRidWlsZF9vcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitTRUQ9J2AkRUNITyAiJFNFRCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitYc2VkPSdgJEVDSE8gIiRYc2VkIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK0dSRVA9J2AkRUNITyAiJEdSRVAiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworRUdSRVA9J2AkRUNITyAiJEVHUkVQIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK0ZHUkVQPSdgJEVDSE8gIiRGR1JFUCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitMRD0nYCRFQ0hPICIkTEQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworTk09J2AkRUNITyAiJE5NIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK0xOX1M9J2AkRUNITyAiJExOX1MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbWF4X2NtZF9sZW49J2AkRUNITyAiJG1heF9jbWRfbGVuIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2FjX29iamV4dD0nYCRFQ0hPICIkYWNfb2JqZXh0IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2V4ZWV4dD0nYCRFQ0hPICIkZXhlZXh0IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2x0X3Vuc2V0PSdgJEVDSE8gIiRsdF91bnNldCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitsdF9TUDJOTD0nYCRFQ0hPICIkbHRfU1AyTkwiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbHRfTkwyU1A9J2AkRUNITyAiJGx0X05MMlNQIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2x0X2N2X3RvX2hvc3RfZmlsZV9jbWQ9J2AkRUNITyAiJGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbHRfY3ZfdG9fdG9vbF9maWxlX2NtZD0nYCRFQ0hPICIkbHRfY3ZfdG9fdG9vbF9maWxlX2NtZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCityZWxvYWRfZmxhZz0nYCRFQ0hPICIkcmVsb2FkX2ZsYWciIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworcmVsb2FkX2NtZHM9J2AkRUNITyAiJHJlbG9hZF9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK09CSkRVTVA9J2AkRUNITyAiJE9CSkRVTVAiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworZGVwbGlic19jaGVja19tZXRob2Q9J2AkRUNITyAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2ZpbGVfbWFnaWNfY21kPSdgJEVDSE8gIiRmaWxlX21hZ2ljX2NtZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitmaWxlX21hZ2ljX2dsb2I9J2AkRUNITyAiJGZpbGVfbWFnaWNfZ2xvYiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCit3YW50X25vY2FzZWdsb2I9J2AkRUNITyAiJHdhbnRfbm9jYXNlZ2xvYiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitETExUT09MPSdgJEVDSE8gIiRETExUT09MIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSdgJEVDSE8gIiRzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitBUj0nYCRFQ0hPICIkQVIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworQVJfRkxBR1M9J2AkRUNITyAiJEFSX0ZMQUdTIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2FyY2hpdmVyX2xpc3Rfc3BlYz0nYCRFQ0hPICIkYXJjaGl2ZXJfbGlzdF9zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK1NUUklQPSdgJEVDSE8gIiRTVFJJUCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitSQU5MSUI9J2AkRUNITyAiJFJBTkxJQiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitvbGRfcG9zdGluc3RhbGxfY21kcz0nYCRFQ0hPICIkb2xkX3Bvc3RpbnN0YWxsX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0nYCRFQ0hPICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitvbGRfYXJjaGl2ZV9jbWRzPSdgJEVDSE8gIiRvbGRfYXJjaGl2ZV9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2xvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj0nYCRFQ0hPICIkbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK0NDPSdgJEVDSE8gIiRDQyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitDRkxBR1M9J2AkRUNITyAiJENGTEFHUyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitjb21waWxlcj0nYCRFQ0hPICIkY29tcGlsZXIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworR0NDPSdgJEVDSE8gIiRHQ0MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0nYCRFQ0hPICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0nYCRFQ0hPICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2wiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9J2AkRUNITyAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9J2AkRUNITyAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbm1fZmlsZV9saXN0X3NwZWM9J2AkRUNITyAiJG5tX2ZpbGVfbGlzdF9zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2x0X3N5c3Jvb3Q9J2AkRUNITyAiJGx0X3N5c3Jvb3QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworb2JqZGlyPSdgJEVDSE8gIiRvYmpkaXIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworTUFHSUNfQ01EPSdgJEVDSE8gIiRNQUdJQ19DTUQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2x0X3Byb2dfY29tcGlsZXJfcGljPSdgJEVDSE8gIiRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitsdF9wcm9nX2NvbXBpbGVyX3dsPSdgJEVDSE8gIiRsdF9wcm9nX2NvbXBpbGVyX3dsIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljPSdgJEVDSE8gIiRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz0nYCRFQ0hPICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX28iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbmVlZF9sb2Nrcz0nYCRFQ0hPICIkbmVlZF9sb2NrcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitNQU5JRkVTVF9UT09MPSdgJEVDSE8gIiRNQU5JRkVTVF9UT09MIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK0RTWU1VVElMPSdgJEVDSE8gIiREU1lNVVRJTCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitOTUVESVQ9J2AkRUNITyAiJE5NRURJVCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitMSVBPPSdgJEVDSE8gIiRMSVBPIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK09UT09MPSdgJEVDSE8gIiRPVE9PTCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitPVE9PTDY0PSdgJEVDSE8gIiRPVE9PTDY0IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2xpYmV4dD0nYCRFQ0hPICIkbGliZXh0IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK3NocmV4dF9jbWRzPSdgJEVDSE8gIiRzaHJleHRfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitleHRyYWN0X2V4cHN5bXNfY21kcz0nYCRFQ0hPICIkZXh0cmFjdF9leHBzeW1zX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworYXJjaGl2ZV9jbWRzX25lZWRfbGM9J2AkRUNITyAiJGFyY2hpdmVfY21kc19uZWVkX2xjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2VuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXM9J2AkRUNITyAiJGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPSdgJEVDSE8gIiRleHBvcnRfZHluYW1pY19mbGFnX3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJword2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9J2AkRUNITyAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2NvbXBpbGVyX25lZWRzX29iamVjdD0nYCRFQ0hPICIkY29tcGlsZXJfbmVlZHNfb2JqZWN0IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J2AkRUNITyAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHM9J2AkRUNITyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2FyY2hpdmVfY21kcz0nYCRFQ0hPICIkYXJjaGl2ZV9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2FyY2hpdmVfZXhwc3ltX2NtZHM9J2AkRUNITyAiJGFyY2hpdmVfZXhwc3ltX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbW9kdWxlX2NtZHM9J2AkRUNITyAiJG1vZHVsZV9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK21vZHVsZV9leHBzeW1fY21kcz0nYCRFQ0hPICIkbW9kdWxlX2V4cHN5bV9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK3dpdGhfZ251X2xkPSdgJEVDSE8gIiR3aXRoX2dudV9sZCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCithbGxvd191bmRlZmluZWRfZmxhZz0nYCRFQ0hPICIkYWxsb3dfdW5kZWZpbmVkX2ZsYWciIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworbm9fdW5kZWZpbmVkX2ZsYWc9J2AkRUNITyAiJG5vX3VuZGVmaW5lZF9mbGFnIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9J2AkRUNITyAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nYCRFQ0hPICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitoYXJkY29kZV9kaXJlY3Q9J2AkRUNITyAiJGhhcmRjb2RlX2RpcmVjdCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9J2AkRUNITyAiJGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitoYXJkY29kZV9taW51c19MPSdgJEVDSE8gIiRoYXJkY29kZV9taW51c19MIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2hhcmRjb2RlX3NobGlicGF0aF92YXI9J2AkRUNITyAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworaGFyZGNvZGVfYXV0b21hdGljPSdgJEVDSE8gIiRoYXJkY29kZV9hdXRvbWF0aWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworaW5oZXJpdF9ycGF0aD0nYCRFQ0hPICIkaW5oZXJpdF9ycGF0aCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitsaW5rX2FsbF9kZXBsaWJzPSdgJEVDSE8gIiRsaW5rX2FsbF9kZXBsaWJzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2Fsd2F5c19leHBvcnRfc3ltYm9scz0nYCRFQ0hPICIkYWx3YXlzX2V4cG9ydF9zeW1ib2xzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2V4cG9ydF9zeW1ib2xzX2NtZHM9J2AkRUNITyAiJGV4cG9ydF9zeW1ib2xzX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworZXhjbHVkZV9leHBzeW1zPSdgJEVDSE8gIiRleGNsdWRlX2V4cHN5bXMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworaW5jbHVkZV9leHBzeW1zPSdgJEVDSE8gIiRpbmNsdWRlX2V4cHN5bXMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworcHJlbGlua19jbWRzPSdgJEVDSE8gIiRwcmVsaW5rX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworcG9zdGxpbmtfY21kcz0nYCRFQ0hPICIkcG9zdGxpbmtfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitmaWxlX2xpc3Rfc3BlYz0nYCRFQ0hPICIkZmlsZV9saXN0X3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwordmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9J2AkRUNITyAiJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK25lZWRfbGliX3ByZWZpeD0nYCRFQ0hPICIkbmVlZF9saWJfcHJlZml4IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK25lZWRfdmVyc2lvbj0nYCRFQ0hPICIkbmVlZF92ZXJzaW9uIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK3ZlcnNpb25fdHlwZT0nYCRFQ0hPICIkdmVyc2lvbl90eXBlIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK3J1bnBhdGhfdmFyPSdgJEVDSE8gIiRydW5wYXRoX3ZhciIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitzaGxpYnBhdGhfdmFyPSdgJEVDSE8gIiRzaGxpYnBhdGhfdmFyIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0nYCRFQ0hPICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2xpYm5hbWVfc3BlYz0nYCRFQ0hPICIkbGlibmFtZV9zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2xpYnJhcnlfbmFtZXNfc3BlYz0nYCRFQ0hPICIkbGlicmFyeV9uYW1lc19zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK3NvbmFtZV9zcGVjPSdgJEVDSE8gIiRzb25hbWVfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitpbnN0YWxsX292ZXJyaWRlX21vZGU9J2AkRUNITyAiJGluc3RhbGxfb3ZlcnJpZGVfbW9kZSIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitwb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIiRwb3N0aW5zdGFsbF9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK3Bvc3R1bmluc3RhbGxfY21kcz0nYCRFQ0hPICIkcG9zdHVuaW5zdGFsbF9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2ZpbmlzaF9jbWRzPSdgJEVDSE8gIiRmaW5pc2hfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitmaW5pc2hfZXZhbD0nYCRFQ0hPICIkZmluaXNoX2V2YWwiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworaGFyZGNvZGVfaW50b19saWJzPSdgJEVDSE8gIiRoYXJkY29kZV9pbnRvX2xpYnMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSdgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9J2AkRUNITyAiJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2hhcmRjb2RlX2FjdGlvbj0nYCRFQ0hPICIkaGFyZGNvZGVfYWN0aW9uIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKK2VuYWJsZV9kbG9wZW49J2AkRUNITyAiJGVuYWJsZV9kbG9wZW4iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworZW5hYmxlX2Rsb3Blbl9zZWxmPSdgJEVDSE8gIiRlbmFibGVfZGxvcGVuX3NlbGYiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJworZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0nYCRFQ0hPICIkZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitvbGRfc3RyaXBsaWI9J2AkRUNITyAiJG9sZF9zdHJpcGxpYiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCitzdHJpcGxpYj0nYCRFQ0hPICIkc3RyaXBsaWIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwogCiBMVENDPSckTFRDQycKIExUQ0ZMQUdTPSckTFRDRkxBR1MnCiBjb21waWxlcj0nJGNvbXBpbGVyX0RFRkFVTFQnCiAKKyMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4KK2Z1bmNfZmFsbGJhY2tfZWNobyAoKQoreworICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgorXCQxCitfTFRFQ0hPX0VPRicKK30KKwogIyBRdW90ZSBldmFsZWQgc3RyaW5ncy4KLWZvciB2YXIgaW4gU0VEIFwKK2ZvciB2YXIgaW4gU0hFTEwgXAorRUNITyBcCitQQVRIX1NFUEFSQVRPUiBcCitTRUQgXAogR1JFUCBcCiBFR1JFUCBcCiBGR1JFUCBcCkBAIC0xMzQwMyw4ICsxNTcwNCwxMyBAQAogT0JKRFVNUCBcCiBkZXBsaWJzX2NoZWNrX21ldGhvZCBcCiBmaWxlX21hZ2ljX2NtZCBcCitmaWxlX21hZ2ljX2dsb2IgXAord2FudF9ub2Nhc2VnbG9iIFwKK0RMTFRPT0wgXAorc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQgXAogQVIgXAogQVJfRkxBR1MgXAorYXJjaGl2ZXJfbGlzdF9zcGVjIFwKIFNUUklQIFwKIFJBTkxJQiBcCiBDQyBcCkBAIC0xMzQxNCwxNCArMTU3MjAsMTQgQEAKIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwKIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIFwKIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXggXAotU0hFTEwgXAotRUNITyBcCitubV9maWxlX2xpc3Rfc3BlYyBcCiBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZyBcCi1sdF9wcm9nX2NvbXBpbGVyX3dsIFwKIGx0X3Byb2dfY29tcGlsZXJfcGljIFwKK2x0X3Byb2dfY29tcGlsZXJfd2wgXAogbHRfcHJvZ19jb21waWxlcl9zdGF0aWMgXAogbHRfY3ZfcHJvZ19jb21waWxlcl9jX28gXAogbmVlZF9sb2NrcyBcCitNQU5JRkVTVF9UT09MIFwKIERTWU1VVElMIFwKIE5NRURJVCBcCiBMSVBPIFwKQEAgLTEzNDM1LDkgKzE1NzQxLDcgQEAKIGFsbG93X3VuZGVmaW5lZF9mbGFnIFwKIG5vX3VuZGVmaW5lZF9mbGFnIFwKIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgXAotaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCBcCiBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIFwKLWZpeF9zcmNmaWxlX3BhdGggXAogZXhjbHVkZV9leHBzeW1zIFwKIGluY2x1ZGVfZXhwc3ltcyBcCiBmaWxlX2xpc3Rfc3BlYyBcCkBAIC0xMzQ0NSwxMiArMTU3NDksMTMgQEAKIGxpYm5hbWVfc3BlYyBcCiBsaWJyYXJ5X25hbWVzX3NwZWMgXAogc29uYW1lX3NwZWMgXAoraW5zdGFsbF9vdmVycmlkZV9tb2RlIFwKIGZpbmlzaF9ldmFsIFwKIG9sZF9zdHJpcGxpYiBcCiBzdHJpcGxpYjsgZG8KLSAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPICJYXFxcXFwkXCR2YXIiXGAgaW4KKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPIFxcXFwiIlxcXFxcJFwkdmFyIlxcXFwiXGAgaW4KICAgICAqW1xcXFxcXFxgXFwiXFxcJF0qKQotICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwkRUNITyBcXCJYXFxcJFwkdmFyXFwiIHwgXFxcJFhzZWQgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIlxcXGBcXFxcXFwiIgorICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxcIlxcXGBcXFwkRUNITyBcXCJcXFwkXCR2YXJcXCIgfCBcXFwkU0VEIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKICAgICAgIDs7CiAgICAgKikKICAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFwkXCR2YXJcXFxcXFwiIgpAQCAtMTM0NzIsMTQgKzE1Nzc3LDE1IEBACiBtb2R1bGVfZXhwc3ltX2NtZHMgXAogZXhwb3J0X3N5bWJvbHNfY21kcyBcCiBwcmVsaW5rX2NtZHMgXAorcG9zdGxpbmtfY21kcyBcCiBwb3N0aW5zdGFsbF9jbWRzIFwKIHBvc3R1bmluc3RhbGxfY21kcyBcCiBmaW5pc2hfY21kcyBcCiBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgXAogc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM7IGRvCi0gICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyAiWFxcXFxcJFwkdmFyIlxgIGluCisgICAgY2FzZSBcYGV2YWwgXFxcXFwkRUNITyBcXFxcIiJcXFxcXCRcJHZhciJcXFxcIlxgIGluCiAgICAgKltcXFxcXFxcYFxcIlxcXCRdKikKLSAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRkb3VibGVfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwkZGVsYXlfdmFyaWFibGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCiAgICAgICA7OwogICAgICopCiAgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKQEAgLTEzNDg3LDEyICsxNTc5Myw2IEBACiAgICAgZXNhYwogZG9uZQogCi0jIEZpeC11cCBmYWxsYmFjayBlY2hvIGlmIGl0IHdhcyBtYW5nbGVkIGJ5IHRoZSBhYm92ZSBxdW90aW5nIHJ1bGVzLgotY2FzZSBcJGx0X0VDSE8gaW4KLSonXFxcJDAgLS1mYWxsYmFjay1lY2hvIicpICBsdF9FQ0hPPVxgXCRFQ0hPICJYXCRsdF9FQ0hPIiB8IFwkWHNlZCAtZSAncy9cXFxcXFxcXFxcXFxcXFwkMCAtLWZhbGxiYWNrLWVjaG8iXCQvXCQwIC0tZmFsbGJhY2stZWNobyIvJ1xgCi0gIDs7Ci1lc2FjCi0KIGFjX2F1eF9kaXI9JyRhY19hdXhfZGlyJwogeHNpX3NoZWxsPSckeHNpX3NoZWxsJwogbHRfc2hlbGxfYXBwZW5kPSckbHRfc2hlbGxfYXBwZW5kJwpAQCAtMTM1MjMsNiArMTU4MjMsNyBAQAogZG8KICAgY2FzZSAkYWNfY29uZmlnX3RhcmdldCBpbgogICAgICJmZmljb25maWcuaCIpIENPTkZJR19IRUFERVJTPSIkQ09ORklHX0hFQURFUlMgZmZpY29uZmlnLmgiIDs7CisgICAgImJ1aWxkaXIiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgYnVpbGRpciIgOzsKICAgICAiZGVwZmlsZXMiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmlsZXMiIDs7CiAgICAgImxpYnRvb2wiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgbGlidG9vbCIgOzsKICAgICAiaW5jbHVkZSIpIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBpbmNsdWRlIiA7OwpAQCAtMTM1MzcsNyArMTU4MzgsNyBAQAogICAgICJpbmNsdWRlL2ZmaV9jb21tb24uaCIpIENPTkZJR19MSU5LUz0iJENPTkZJR19MSU5LUyBpbmNsdWRlL2ZmaV9jb21tb24uaDppbmNsdWRlL2ZmaV9jb21tb24uaCIgOzsKICAgICAiZmZpY29uZmlnLnB5IikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIGZmaWNvbmZpZy5weSIgOzsKIAotICAqKSBhc19mbl9lcnJvciAiaW52YWxpZCBhcmd1bWVudDogXGAkYWNfY29uZmlnX3RhcmdldCciICIkTElORU5PIiA1OzsKKyAgKikgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgYXJndW1lbnQ6IFxgJGFjX2NvbmZpZ190YXJnZXQnIiAiJExJTkVOTyIgNTs7CiAgIGVzYWMKIGRvbmUKIApAQCAtMTM1NjEsOSArMTU4NjIsMTAgQEAKICMgYWZ0ZXIgaXRzIGNyZWF0aW9uIGJ1dCBiZWZvcmUgaXRzIG5hbWUgaGFzIGJlZW4gYXNzaWduZWQgdG8gYCR0bXAnLgogJGRlYnVnIHx8CiB7Ci0gIHRtcD0KKyAgdG1wPSBhY190bXA9CiAgIHRyYXAgJ2V4aXRfc3RhdHVzPSQ/Ci0gIHsgdGVzdCAteiAiJHRtcCIgfHwgdGVzdCAhIC1kICIkdG1wIiB8fCBybSAtZnIgIiR0bXAiOyB9ICYmIGV4aXQgJGV4aXRfc3RhdHVzCisgIDogIiR7YWNfdG1wOj0kdG1wfSIKKyAgeyB0ZXN0ICEgLWQgIiRhY190bXAiIHx8IHJtIC1mciAiJGFjX3RtcCI7IH0gJiYgZXhpdCAkZXhpdF9zdGF0dXMKICcgMAogICB0cmFwICdhc19mbl9leGl0IDEnIDEgMiAxMyAxNQogfQpAQCAtMTM1NzEsMTIgKzE1ODczLDEzIEBACiAKIHsKICAgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAiLi9jb25mWFhYWFhYIikgMj4vZGV2L251bGxgICYmCi0gIHRlc3QgLW4gIiR0bXAiICYmIHRlc3QgLWQgIiR0bXAiCisgIHRlc3QgLWQgIiR0bXAiCiB9ICB8fAogewogICB0bXA9Li9jb25mJCQtJFJBTkRPTQogICAodW1hc2sgMDc3ICYmIG1rZGlyICIkdG1wIikKLX0gfHwgYXNfZm5fZXJyb3IgImNhbm5vdCBjcmVhdGUgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGluIC4iICIkTElORU5PIiA1Cit9IHx8IGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAuIiAiJExJTkVOTyIgNQorYWNfdG1wPSR0bXAKIAogIyBTZXQgdXAgdGhlIHNjcmlwdHMgZm9yIENPTkZJR19GSUxFUyBzZWN0aW9uLgogIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZW0gaWYgdGhlcmUgYXJlIG5vIENPTkZJR19GSUxFUy4KQEAgLTEzNTkzLDEyICsxNTg5NiwxMiBAQAogZmkKIGFjX2NzX2F3a19jcj1gJEFXSyAnQkVHSU4geyBwcmludCAiYVxyYiIgfScgPC9kZXYvbnVsbCAyPi9kZXYvbnVsbGAKIGlmIHRlc3QgIiRhY19jc19hd2tfY3IiID0gImEke2FjX2NyfWIiOyB0aGVuCi0gIGFjX2NzX2F3a19jcj0nXHInCisgIGFjX2NzX2F3a19jcj0nXFxyJwogZWxzZQogICBhY19jc19hd2tfY3I9JGFjX2NyCiBmaQogCi1lY2hvICdCRUdJTiB7JyA+IiR0bXAvc3ViczEuYXdrIiAmJgorZWNobyAnQkVHSU4geycgPiIkYWNfdG1wL3N1YnMxLmF3ayIgJiYKIF9BQ0VPRgogCiAKQEAgLTEzNjA3LDE4ICsxNTkxMCwxOCBAQAogICBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBzZWQgJ3MvLiovJiEkJiRhY19kZWxpbS8nICYmCiAgIGVjaG8gIl9BQ0VPRiIKIH0gPmNvbmYkJHN1YnMuc2ggfHwKLSAgYXNfZm5fZXJyb3IgImNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiAiJExJTkVOTyIgNQotYWNfZGVsaW1fbnVtPWBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBncmVwIC1jICckJ2AKKyAgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiAiJExJTkVOTyIgNQorYWNfZGVsaW1fbnVtPWBlY2hvICIkYWNfc3Vic3RfdmFycyIgfCBncmVwIC1jICdeJ2AKIGFjX2RlbGltPSclIV8hIyAnCiBmb3IgYWNfbGFzdF90cnkgaW4gZmFsc2UgZmFsc2UgZmFsc2UgZmFsc2UgZmFsc2UgOjsgZG8KICAgLiAuL2NvbmYkJHN1YnMuc2ggfHwKLSAgICBhc19mbl9lcnJvciAiY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiICIkTElORU5PIiA1CisgICAgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiAiJExJTkVOTyIgNQogCiAgIGFjX2RlbGltX249YHNlZCAtbiAicy8uKiRhY19kZWxpbVwkL1gvcCIgY29uZiQkc3Vicy5hd2sgfCBncmVwIC1jIFhgCiAgIGlmIHRlc3QgJGFjX2RlbGltX24gPSAkYWNfZGVsaW1fbnVtOyB0aGVuCiAgICAgYnJlYWsKICAgZWxpZiAkYWNfbGFzdF90cnk7IHRoZW4KLSAgICBhc19mbl9lcnJvciAiY291bGQgbm90IG1ha2UgJENPTkZJR19TVEFUVVMiICIkTElORU5PIiA1CisgICAgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBtYWtlICRDT05GSUdfU1RBVFVTIiAiJExJTkVOTyIgNQogICBlbHNlCiAgICAgYWNfZGVsaW09IiRhY19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIKICAgZmkKQEAgLTEzNjI2LDcgKzE1OTI5LDcgQEAKIHJtIC1mIGNvbmYkJHN1YnMuc2gKIAogY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi1jYXQgPj4iXCR0bXAvc3ViczEuYXdrIiA8PFxcX0FDQVdLICYmCitjYXQgPj4iXCRhY190bXAvc3ViczEuYXdrIiA8PFxcX0FDQVdLICYmCiBfQUNFT0YKIHNlZCAtbiAnCiBoCkBAIC0xMzY3NCw3ICsxNTk3Nyw3IEBACiBybSAtZiBjb25mJCRzdWJzLmF3awogY2F0ID4+JENPTkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCiBfQUNBV0sKLWNhdCA+PiJcJHRtcC9zdWJzMS5hd2siIDw8X0FDQVdLICYmCitjYXQgPj4iXCRhY190bXAvc3ViczEuYXdrIiA8PF9BQ0FXSyAmJgogICBmb3IgKGtleSBpbiBTKSBTX2lzX3NldFtrZXldID0gMQogICBGUyA9ICIHIgogCkBAIC0xMzcwNiwyMSArMTYwMDksMjkgQEAKICAgc2VkICJzLyRhY19jclwkLy87IHMvJGFjX2NyLyRhY19jc19hd2tfY3IvZyIKIGVsc2UKICAgY2F0Ci1maSA8ICIkdG1wL3N1YnMxLmF3ayIgPiAiJHRtcC9zdWJzLmF3ayIgXAotICB8fCBhc19mbl9lcnJvciAiY291bGQgbm90IHNldHVwIGNvbmZpZyBmaWxlcyBtYWNoaW5lcnkiICIkTElORU5PIiA1CitmaSA8ICIkYWNfdG1wL3N1YnMxLmF3ayIgPiAiJGFjX3RtcC9zdWJzLmF3ayIgXAorICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IHNldHVwIGNvbmZpZyBmaWxlcyBtYWNoaW5lcnkiICIkTElORU5PIiA1CiBfQUNFT0YKIAotIyBWUEFUSCBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIHNvbWUgbWFrZXMsIHNvIHdlIHJlbW92ZSAkKHNyY2RpciksCi0jICR7c3JjZGlyfSBhbmQgQHNyY2RpckAgZnJvbSBWUEFUSCBpZiBzcmNkaXIgaXMgIi4iLCBzdHJpcCBsZWFkaW5nIGFuZAorIyBWUEFUSCBtYXkgY2F1c2UgdHJvdWJsZSB3aXRoIHNvbWUgbWFrZXMsIHNvIHdlIHJlbW92ZSBzb2xlICQoc3JjZGlyKSwKKyMgJHtzcmNkaXJ9IGFuZCBAc3JjZGlyQCBlbnRyaWVzIGZyb20gVlBBVEggaWYgc3JjZGlyIGlzICIuIiwgc3RyaXAgbGVhZGluZyBhbmQKICMgdHJhaWxpbmcgY29sb25zIGFuZCB0aGVuIHJlbW92ZSB0aGUgd2hvbGUgbGluZSBpZiBWUEFUSCBiZWNvbWVzIGVtcHR5CiAjIChhY3R1YWxseSB3ZSBsZWF2ZSBhbiBlbXB0eSBsaW5lIHRvIHByZXNlcnZlIGxpbmUgbnVtYmVycykuCiBpZiB0ZXN0ICJ4JHNyY2RpciIgPSB4LjsgdGhlbgotICBhY192cHN1Yj0nL15bCSBdKlZQQVRIWwkgXSo9L3sKLXMvOipcJChzcmNkaXIpOiovOi8KLXMvOipcJHtzcmNkaXJ9OiovOi8KLXMvOipAc3JjZGlyQDoqLzovCi1zL15cKFtePV0qPVsJIF0qXCk6Ki9cMS8KKyAgYWNfdnBzdWI9Jy9eWwkgXSpWUEFUSFsJIF0qPVsJIF0qL3sKK2gKK3MvLy8KK3MvXi86Lworcy9bCSBdKiQvOi8KK3MvOlwkKHNyY2Rpcik6LzovZworcy86XCR7c3JjZGlyfTovOi9nCitzLzpAc3JjZGlyQDovOi9nCitzL146Ki8vCiBzLzoqJC8vCit4CitzL1woPVsJIF0qXCkuKi9cMS8KK0cKK3MvXG4vLwogcy9eW149XSo9WwkgXSokLy8KIH0nCiBmaQpAQCAtMTM3MzIsNyArMTYwNDMsNyBAQAogIyBObyBuZWVkIHRvIGdlbmVyYXRlIHRoZW0gaWYgdGhlcmUgYXJlIG5vIENPTkZJR19IRUFERVJTLgogIyBUaGlzIGhhcHBlbnMgZm9yIGluc3RhbmNlIHdpdGggYC4vY29uZmlnLnN0YXR1cyBNYWtlZmlsZScuCiBpZiB0ZXN0IC1uICIkQ09ORklHX0hFQURFUlMiOyB0aGVuCi1jYXQgPiIkdG1wL2RlZmluZXMuYXdrIiA8PFxfQUNBV0sgfHwKK2NhdCA+IiRhY190bXAvZGVmaW5lcy5hd2siIDw8XF9BQ0FXSyB8fAogQkVHSU4gewogX0FDRU9GCiAKQEAgLTEzNzQ0LDExICsxNjA1NSwxMSBAQAogIyBoYW5kbGluZyBvZiBsb25nIGxpbmVzLgogYWNfZGVsaW09JyUhXyEjICcKIGZvciBhY19sYXN0X3RyeSBpbiBmYWxzZSBmYWxzZSA6OyBkbwotICBhY190PWBzZWQgLW4gIi8kYWNfZGVsaW0vcCIgY29uZmRlZnMuaGAKLSAgaWYgdGVzdCAteiAiJGFjX3QiOyB0aGVuCisgIGFjX3R0PWBzZWQgLW4gIi8kYWNfZGVsaW0vcCIgY29uZmRlZnMuaGAKKyAgaWYgdGVzdCAteiAiJGFjX3R0IjsgdGhlbgogICAgIGJyZWFrCiAgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0gICAgYXNfZm5fZXJyb3IgImNvdWxkIG5vdCBtYWtlICRDT05GSUdfSEVBREVSUyIgIiRMSU5FTk8iIDUKKyAgICBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IG1ha2UgJENPTkZJR19IRUFERVJTIiAiJExJTkVOTyIgNQogICBlbHNlCiAgICAgYWNfZGVsaW09IiRhY19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIKICAgZmkKQEAgLTEzODMzLDcgKzE2MTQ0LDcgQEAKIF9BQ0FXSwogX0FDRU9GCiBjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0gIGFzX2ZuX2Vycm9yICJjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGhlYWRlcnMgbWFjaGluZXJ5IiAiJExJTkVOTyIgNQorICBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IHNldHVwIGNvbmZpZyBoZWFkZXJzIG1hY2hpbmVyeSIgIiRMSU5FTk8iIDUKIGZpICMgdGVzdCAtbiAiJENPTkZJR19IRUFERVJTIgogCiAKQEAgLTEzODQ2LDcgKzE2MTU3LDcgQEAKICAgZXNhYwogICBjYXNlICRhY19tb2RlJGFjX3RhZyBpbgogICA6W0ZITF0qOiopOzsKLSAgOkwqIHwgOkMqOiopIGFzX2ZuX2Vycm9yICJpbnZhbGlkIHRhZyBcYCRhY190YWcnIiAiJExJTkVOTyIgNTs7CisgIDpMKiB8IDpDKjoqKSBhc19mbl9lcnJvciAkPyAiaW52YWxpZCB0YWcgXGAkYWNfdGFnJyIgIiRMSU5FTk8iIDU7OwogICA6W0ZIXS0pIGFjX3RhZz0tOi07OwogICA6W0ZIXSopIGFjX3RhZz0kYWNfdGFnOiRhY190YWcuaW47OwogICBlc2FjCkBAIC0xMzg2NSw3ICsxNjE3Niw3IEBACiAgICAgZm9yIGFjX2YKICAgICBkbwogICAgICAgY2FzZSAkYWNfZiBpbgotICAgICAgLSkgYWNfZj0iJHRtcC9zdGRpbiI7OworICAgICAgLSkgYWNfZj0iJGFjX3RtcC9zdGRpbiI7OwogICAgICAgKikgIyBMb29rIGZvciB0aGUgZmlsZSBmaXJzdCBpbiB0aGUgYnVpbGQgdHJlZSwgdGhlbiBpbiB0aGUgc291cmNlIHRyZWUKIAkgIyAoaWYgdGhlIHBhdGggaXMgbm90IGFic29sdXRlKS4gIFRoZSBhYnNvbHV0ZSBwYXRoIGNhbm5vdCBiZSBET1Mtc3R5bGUsCiAJICMgYmVjYXVzZSAkYWNfZiBjYW5ub3QgY29udGFpbiBgOicuCkBAIC0xMzg3NCw3ICsxNjE4NSw3IEBACiAJICAgW1xcLyRdKikgZmFsc2U7OwogCSAgICopIHRlc3QgLWYgIiRzcmNkaXIvJGFjX2YiICYmIGFjX2Y9IiRzcmNkaXIvJGFjX2YiOzsKIAkgICBlc2FjIHx8Ci0JICAgYXNfZm5fZXJyb3IgImNhbm5vdCBmaW5kIGlucHV0IGZpbGU6IFxgJGFjX2YnIiAiJExJTkVOTyIgNTs7CisJICAgYXNfZm5fZXJyb3IgMSAiY2Fubm90IGZpbmQgaW5wdXQgZmlsZTogXGAkYWNfZiciICIkTElORU5PIiA1OzsKICAgICAgIGVzYWMKICAgICAgIGNhc2UgJGFjX2YgaW4gKlwnKikgYWNfZj1gJGFzX2VjaG8gIiRhY19mIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7IGVzYWMKICAgICAgIGFzX2ZuX2FwcGVuZCBhY19maWxlX2lucHV0cyAiICckYWNfZiciCkBAIC0xMzkwMCw4ICsxNjIxMSw4IEBACiAgICAgZXNhYwogCiAgICAgY2FzZSAkYWNfdGFnIGluCi0gICAgKjotOiogfCAqOi0pIGNhdCA+IiR0bXAvc3RkaW4iIFwKLSAgICAgIHx8IGFzX2ZuX2Vycm9yICJjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIgNSA7OworICAgICo6LToqIHwgKjotKSBjYXQgPiIkYWNfdG1wL3N0ZGluIiBcCisgICAgICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUgOzsKICAgICBlc2FjCiAgICAgOzsKICAgZXNhYwpAQCAtMTQwMzcsMjMgKzE2MzQ4LDI0IEBACiBzJkBNS0RJUl9QQCYkYWNfTUtESVJfUCY7dCB0CiAkYWNfZGF0YXJvb3RkaXJfaGFjawogIgotZXZhbCBzZWQgXCJcJGFjX3NlZF9leHRyYVwiICIkYWNfZmlsZV9pbnB1dHMiIHwgJEFXSyAtZiAiJHRtcC9zdWJzLmF3ayIgPiR0bXAvb3V0IFwKLSAgfHwgYXNfZm5fZXJyb3IgImNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiICIkTElORU5PIiA1CitldmFsIHNlZCBcIlwkYWNfc2VkX2V4dHJhXCIgIiRhY19maWxlX2lucHV0cyIgfCAkQVdLIC1mICIkYWNfdG1wL3N1YnMuYXdrIiBcCisgID4kYWNfdG1wL291dCB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKIAogdGVzdCAteiAiJGFjX2RhdGFyb290ZGlyX2hhY2skYWNfZGF0YXJvb3RkaXJfc2VlbiIgJiYKLSAgeyBhY19vdXQ9YHNlZCAtbiAnL1wke2RhdGFyb290ZGlyfS9wJyAiJHRtcC9vdXQiYDsgdGVzdCAtbiAiJGFjX291dCI7IH0gJiYKLSAgeyBhY19vdXQ9YHNlZCAtbiAnL15bCSBdKmRhdGFyb290ZGlyWwkgXSo6Kj0vcCcgIiR0bXAvb3V0ImA7IHRlc3QgLXogIiRhY19vdXQiOyB9ICYmCisgIHsgYWNfb3V0PWBzZWQgLW4gJy9cJHtkYXRhcm9vdGRpcn0vcCcgIiRhY190bXAvb3V0ImA7IHRlc3QgLW4gIiRhY19vdXQiOyB9ICYmCisgIHsgYWNfb3V0PWBzZWQgLW4gJy9eWwkgXSpkYXRhcm9vdGRpclsJIF0qOio9L3AnIFwKKyAgICAgICIkYWNfdG1wL291dCJgOyB0ZXN0IC16ICIkYWNfb3V0IjsgfSAmJgogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICRhY19maWxlIGNvbnRhaW5zIGEgcmVmZXJlbmNlIHRvIHRoZSB2YXJpYWJsZSBcYGRhdGFyb290ZGlyJwotd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkLiIgPiY1Cit3aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQiID4mNQogJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0YXJvb3RkaXInCi13aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmluZWQuIiA+JjI7fQord2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3VyZSBpdCBpcyBkZWZpbmVkIiA+JjI7fQogCi0gIHJtIC1mICIkdG1wL3N0ZGluIgorICBybSAtZiAiJGFjX3RtcC9zdGRpbiIKICAgY2FzZSAkYWNfZmlsZSBpbgotICAtKSBjYXQgIiR0bXAvb3V0IiAmJiBybSAtZiAiJHRtcC9vdXQiOzsKLSAgKikgcm0gLWYgIiRhY19maWxlIiAmJiBtdiAiJHRtcC9vdXQiICIkYWNfZmlsZSI7OworICAtKSBjYXQgIiRhY190bXAvb3V0IiAmJiBybSAtZiAiJGFjX3RtcC9vdXQiOzsKKyAgKikgcm0gLWYgIiRhY19maWxlIiAmJiBtdiAiJGFjX3RtcC9vdXQiICIkYWNfZmlsZSI7OwogICBlc2FjIFwKLSAgfHwgYXNfZm5fZXJyb3IgImNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiICIkTElORU5PIiA1CisgIHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIgNQogIDs7CiAgIDpIKQogICAjCkBAIC0xNDA2MiwyMSArMTYzNzQsMjEgQEAKICAgaWYgdGVzdCB4IiRhY19maWxlIiAhPSB4LTsgdGhlbgogICAgIHsKICAgICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAotICAgICAgJiYgZXZhbCAnJEFXSyAtZiAiJHRtcC9kZWZpbmVzLmF3ayInICIkYWNfZmlsZV9pbnB1dHMiCi0gICAgfSA+IiR0bXAvY29uZmlnLmgiIFwKLSAgICAgIHx8IGFzX2ZuX2Vycm9yICJjb3VsZCBub3QgY3JlYXRlICRhY19maWxlIiAiJExJTkVOTyIgNQotICAgIGlmIGRpZmYgIiRhY19maWxlIiAiJHRtcC9jb25maWcuaCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisgICAgICAmJiBldmFsICckQVdLIC1mICIkYWNfdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIKKyAgICB9ID4iJGFjX3RtcC9jb25maWcuaCIgXAorICAgICAgfHwgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiICIkTElORU5PIiA1CisgICAgaWYgZGlmZiAiJGFjX2ZpbGUiICIkYWNfdG1wL2NvbmZpZy5oIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjUKICRhc19lY2hvICIkYXNfbWU6ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY2O30KICAgICBlbHNlCiAgICAgICBybSAtZiAiJGFjX2ZpbGUiCi0gICAgICBtdiAiJHRtcC9jb25maWcuaCIgIiRhY19maWxlIiBcCi0JfHwgYXNfZm5fZXJyb3IgImNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiICIkTElORU5PIiA1CisgICAgICBtdiAiJGFjX3RtcC9jb25maWcuaCIgIiRhY19maWxlIiBcCisJfHwgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUiICIkTElORU5PIiA1CiAgICAgZmkKICAgZWxzZQogICAgICRhc19lY2hvICIvKiAkY29uZmlndXJlX2lucHV0ICAqLyIgXAotICAgICAgJiYgZXZhbCAnJEFXSyAtZiAiJHRtcC9kZWZpbmVzLmF3ayInICIkYWNfZmlsZV9pbnB1dHMiIFwKLSAgICAgIHx8IGFzX2ZuX2Vycm9yICJjb3VsZCBub3QgY3JlYXRlIC0iICIkTElORU5PIiA1CisgICAgICAmJiBldmFsICckQVdLIC1mICIkYWNfdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIgXAorICAgICAgfHwgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBjcmVhdGUgLSIgIiRMSU5FTk8iIDUKICAgZmkKICMgQ29tcHV0ZSAiJGFjX2ZpbGUiJ3MgaW5kZXggaW4gJGNvbmZpZ19oZWFkZXJzLgogX2FtX2FyZz0iJGFjX2ZpbGUiCkBAIC0xNDEzMCwxOSArMTY0NDIsMTkgQEAKICRhc19lY2hvICIkYXNfbWU6IGxpbmtpbmcgJGFjX3NvdXJjZSB0byAkYWNfZmlsZSIgPiY2O30KIAogICAgIGlmIHRlc3QgISAtciAiJGFjX3NvdXJjZSI7IHRoZW4KLSAgICAgIGFzX2ZuX2Vycm9yICIkYWNfc291cmNlOiBmaWxlIG5vdCBmb3VuZCIgIiRMSU5FTk8iIDUKKyAgICAgIGFzX2ZuX2Vycm9yICQ/ICIkYWNfc291cmNlOiBmaWxlIG5vdCBmb3VuZCIgIiRMSU5FTk8iIDUKICAgICBmaQogICAgIHJtIC1mICIkYWNfZmlsZSIKIAogICAgICMgVHJ5IGEgcmVsYXRpdmUgc3ltbGluaywgdGhlbiBhIGhhcmQgbGluaywgdGhlbiBhIGNvcHkuCi0gICAgY2FzZSAkc3JjZGlyIGluCisgICAgY2FzZSAkYWNfc291cmNlIGluCiAgICAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfcmVsX3NvdXJjZT0kYWNfc291cmNlIDs7CiAJKikgYWNfcmVsX3NvdXJjZT0kYWNfdG9wX2J1aWxkX3ByZWZpeCRhY19zb3VyY2UgOzsKICAgICBlc2FjCiAgICAgbG4gLXMgIiRhY19yZWxfc291cmNlIiAiJGFjX2ZpbGUiIDI+L2Rldi9udWxsIHx8CiAgICAgICBsbiAiJGFjX3NvdXJjZSIgIiRhY19maWxlIiAyPi9kZXYvbnVsbCB8fAogICAgICAgY3AgLXAgIiRhY19zb3VyY2UiICIkYWNfZmlsZSIgfHwKLSAgICAgIGFzX2ZuX2Vycm9yICJjYW5ub3QgbGluayBvciBjb3B5ICRhY19zb3VyY2UgdG8gJGFjX2ZpbGUiICIkTElORU5PIiA1CisgICAgICBhc19mbl9lcnJvciAkPyAiY2Fubm90IGxpbmsgb3IgY29weSAkYWNfc291cmNlIHRvICRhY19maWxlIiAiJExJTkVOTyIgNQogICBmaQogIDs7CiAgIDpDKSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBleGVjdXRpbmcgJGFjX2ZpbGUgY29tbWFuZHMiID4mNQpAQCAtMTQxNTIsNiArMTY0NjQsMTUwIEBACiAKIAogICBjYXNlICRhY19maWxlJGFjX21vZGUgaW4KKyAgICAiYnVpbGRpciI6QykgICBhY190b3Bfc3JjZGlyPSIkYXhfZW5hYmxlX2J1aWxkZGlyX3NyY2RpciIKKyAgaWYgdGVzdCAiLiRheF9lbmFibGVfYnVpbGRkaXIiID0gIi4uIiA7IHRoZW4KKyAgICBpZiB0ZXN0IC1mICIkdG9wX3NyY2Rpci9NYWtlZmlsZSIgOyB0aGVuCisgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHNraXBwaW5nIHRvcF9zcmNkaXIvTWFrZWZpbGUgLSBsZWZ0IHVudG91Y2hlZCIgPiY1CiskYXNfZWNobyAiJGFzX21lOiBza2lwcGluZyB0b3Bfc3JjZGlyL01ha2VmaWxlIC0gbGVmdCB1bnRvdWNoZWQiID4mNjt9CisgICAgZWxzZQorICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBza2lwcGluZyB0b3Bfc3JjZGlyL01ha2VmaWxlIC0gbm90IGNyZWF0ZWQiID4mNQorJGFzX2VjaG8gIiRhc19tZTogc2tpcHBpbmcgdG9wX3NyY2Rpci9NYWtlZmlsZSAtIG5vdCBjcmVhdGVkIiA+JjY7fQorICAgIGZpCisgIGVsc2UKKyAgICBpZiB0ZXN0IC1mICIkYWNfdG9wX3NyY2Rpci9NYWtlZmlsZSIgOyB0aGVuCisgICAgICBhPWBncmVwICJeVkVSU0lPTiAiICIkYWNfdG9wX3NyY2Rpci9NYWtlZmlsZSJgIDsgYj1gZ3JlcCAiXlZFUlNJT04gIiBNYWtlZmlsZWAKKyAgICAgIHRlc3QgIiRhIiAhPSAiJGIiICYmIHJtICIkYWNfdG9wX3NyY2Rpci9NYWtlZmlsZSIKKyAgICBmaQorICAgIGlmIHRlc3QgLWYgIiRhY190b3Bfc3JjZGlyL01ha2VmaWxlIiA7IHRoZW4KKwllY2hvICIkYWNfdG9wX3NyY2Rpci9NYWtlZmlsZSA6ICRhY190b3Bfc3JjZGlyL01ha2VmaWxlLmluIiA+ICR0bXAvY29uZnRlbXAubWsKKwllY2hvICIJQCBlY2hvICdSRU1PVkVELCwsJyA+XCRAIiA+PiAkdG1wL2NvbmZ0ZW1wLm1rCisgICAgICBldmFsICIke01BS0UtbWFrZX0gLWYgJHRtcC9jb25mdGVtcC5tayAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIgorICAgICAgaWYgZ3JlcCAnXlJFTU9WRUQsLCwnICIkYWNfdG9wX3NyY2Rpci9NYWtlZmlsZSIgPi9kZXYvbnVsbAorICAgICAgdGhlbiBybSAkYWNfdG9wX3NyY2Rpci9NYWtlZmlsZSA7IGZpCisgICAgICBjcCAkdG1wL2NvbmZ0ZW1wLm1rICRhY190b3Bfc3JjZGlyL21ha2VmaWxlcy5ta34gICAgICAjIyBERUJVR0dJTkcKKyAgICBmaQorICAgIGlmIHRlc3QgISAtZiAiJGFjX3RvcF9zcmNkaXIvTWFrZWZpbGUiIDsgdGhlbgorICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjcmVhdGUgdG9wX3NyY2Rpci9NYWtlZmlsZSBndWVzc2VkIGZyb20gbG9jYWwgTWFrZWZpbGUiID4mNQorJGFzX2VjaG8gIiRhc19tZTogY3JlYXRlIHRvcF9zcmNkaXIvTWFrZWZpbGUgZ3Vlc3NlZCBmcm9tIGxvY2FsIE1ha2VmaWxlIiA+JjY7fQorICAgICAgeD0nYCcgOyBjYXQgPiR0bXAvY29uZnRlbXAuc2VkIDw8X0VPRgorL15cJC9uCit4CisvXlwkL2JTCit4CisvXFxcXFwkL3tIO2Q7fQore0g7cy8uKi8vO3g7fQorYk0KKzpTCit4CisvXFxcXFwkL3toO2Q7fQore2g7cy8uKi8vO3g7fQorOk0KK3MvXFwoXFxuXFwpCS9cXDEgL2cKKy9eCS9kCisvXlsJIF0qW1xcI10vZAorL15WUEFUSCAqPS9kCitzL15zcmNkaXIgKj0uKi9zcmNkaXIgPSAuLworcy9edG9wX3NyY2RpciAqPS4qL3RvcF9zcmNkaXIgPSAuLworL1s6PV0vIWQKKy9eXFwuL2QKKy8gPSAvYgorLyAuPSAvYgorLzovIWIKK3MvOi4qLzovCitzLyAvICAvZworcy8gXFwoW2Etel1bYS16LV0qW2EtekEtWjAtOV1cXClcXChbIDpdXFwpLyBcXDEgXFwxLWFsbFxcMi9nCitzL15cXChbYS16XVthLXotXSpbYS16QS1aMC05XVxcKVxcKFsgOl1cXCkvXFwxIFxcMS1hbGxcXDIvCitzLyAgLyAvZworL15hbGwgYWxsLWFsbFsgOl0vaVxcCithbGwtY29uZmlndXJlZCA6IGFsbC1hbGwKK3MvIFthLXpBLVowLTktXSotYWxsIFthLXpBLVowLTktXSotYWxsLWFsbC8vZworLy1hbGwtYWxsL2QKK2FcXAorCUAgSE9TVD0iXCQoSE9TVClcIiBcXFxcXFwKKwk7IHRlc3QgIi5cJFwkSE9TVCIgPSAiLiIgJiYgSE9TVD0keCBzaCAkYXhfZW5hYmxlX2J1aWxkZGlyX2F1eGRpci9jb25maWcuZ3Vlc3MgJHggXFxcXFxcCisJOyBCVUlMRD0keCBncmVwICJeIyMjIyBcJFwkSE9TVCAiIE1ha2VmaWxlIHwgc2VkIC1lICdzLy4qfC8vJyAkeCBcXFxcXFwKKwk7IHVzZT0keCBiYXNlbmFtZSAiXCRcQCIgLWFsbCAkeDsgbj0keCBlY2hvIFwkXCRCVUlMRCB8IHdjIC13ICR4IFxcXFxcXAorCTsgZWNobyAiTUFLRSBcJFwkSE9TVCA6IFwkXCRuICogXCRcQCI7IGlmIHRlc3QgIlwkXCRuIiAtZXEgIjAiIDsgdGhlbiA6IFxcXFxcXAorCTsgQlVJTEQ9JHggZ3JlcCAiXiMjIyMuKnwiIE1ha2VmaWxlIHx0YWlsIC0xfCBzZWQgLWUgJ3MvLip8Ly8nICR4IDsgZmkgXFxcXFxcCisJOyB0ZXN0ICIuXCRcJEJVSUxEIiA9ICIuIiAmJiBCVUlMRD0iLiIgXFxcXFxcCisJOyB0ZXN0ICJcJFwkdXNlIiA9ICJcJFxAIiAmJiBCVUlMRD0keCBlY2hvICJcJFwkQlVJTEQiIHwgdGFpbCAtMSAkeCBcXFxcXFwKKwk7IGZvciBpIGluIFwkXCRCVUlMRCA7IGRvIHRlc3QgIi5cJFwkaSIgPSAiLiIgJiYgY29udGludWUgXFxcXFxcCisJOyAoY2QgIlwkXCRpIiAmJiB0ZXN0ICEgLWYgY29uZmlndXJlICYmIFwkKE1BS0UpIFwkXCR1c2UpIHx8IGV4aXQ7IGRvbmUKKy9kaXN0LWFsbCAqOi9hXFwKKwlAIEhPU1Q9IlwkKEhPU1QpXCIgXFxcXFxcCisJOyB0ZXN0ICIuXCRcJEhPU1QiID0gIi4iICYmIEhPU1Q9JHggc2ggJGF4X2VuYWJsZV9idWlsZGRpcl9hdXhkaXIvY29uZmlnLmd1ZXNzICR4IFxcXFxcXAorCTsgQlVJTEQ9JHggZ3JlcCAiXiMjIyMgXCRcJEhPU1QgIiBNYWtlZmlsZSB8IHNlZCAtZSAncy8uKnwvLycgJHggXFxcXFxcCisJOyBmb3VuZD0keCBlY2hvIFwkXCRCVUlMRCB8IHdjIC13ICR4IFxcXFxcXAorCTsgZWNobyAiTUFLRSBcJFwkSE9TVCA6IFwkXCRmb3VuZCBcJChQQUNLQUdFKS1cJChWRVJTSU9OKS50YXIuKiIgXFxcXFxcCisJOyBpZiB0ZXN0ICJcJFwkZm91bmQiIC1lcSAiMCIgOyB0aGVuIDogXFxcXFxcCisJOyBCVUlMRD0keCBncmVwICJeIyMjIyAuKnwiIE1ha2VmaWxlIHx0YWlsIC0xfCBzZWQgLWUgJ3MvLip8Ly8nICR4IFxcXFxcXAorCTsgZmkgOyBmb3IgaSBpbiBcJFwkQlVJTEQgOyBkbyB0ZXN0ICIuXCRcJGkiID0gIi4iICYmIGNvbnRpbnVlIFxcXFxcXAorCTsgZm9yIGYgaW4gXCRcJGkvXCQoUEFDS0FHRSktXCQoVkVSU0lPTikudGFyLiogXFxcXFxcCisJOyBkbyB0ZXN0IC1mICJcJFwkZiIgJiYgbXYgIlwkXCRmIiBcJChQVUIpLiA7IGRvbmUgOyBicmVhayA7IGRvbmUKKy9kaXN0LVthLXpBLVowLTldKi1hbGwgKjovYVxcCisJQCBIT1NUPSJcJChIT1NUKVwiIFxcXFxcXAorCTsgdGVzdCAiLlwkXCRIT1NUIiA9ICIuIiAmJiBIT1NUPSR4IHNoIC4vY29uZmlnLmd1ZXNzICR4IFxcXFxcXAorCTsgQlVJTEQ9JHggZ3JlcCAiXiMjIyMgXCRcJEhPU1QgIiBNYWtlZmlsZSB8IHNlZCAtZSAncy8uKnwvLycgJHggXFxcXFxcCisJOyBmb3VuZD0keCBlY2hvIFwkXCRCVUlMRCB8IHdjIC13ICR4IFxcXFxcXAorCTsgZWNobyAiTUFLRSBcJFwkSE9TVCA6IFwkXCRmb3VuZCBcJChQQUNLQUdFKS1cJChWRVJTSU9OKS4qIiBcXFxcXFwKKwk7IGlmIHRlc3QgIlwkXCRmb3VuZCIgLWVxICIwIiA7IHRoZW4gOiBcXFxcXFwKKwk7IEJVSUxEPSR4IGdyZXAgIl4jIyMjIC4qfCIgTWFrZWZpbGUgfHRhaWwgLTF8IHNlZCAtZSAncy8uKnwvLycgJHggXFxcXFxcCisJOyBmaSA7IGZvciBpIGluIFwkXCRCVUlMRCA7IGRvIHRlc3QgIi5cJFwkaSIgPSAiLiIgJiYgY29udGludWUgXFxcXFxcCisJOyBmb3IgZiBpbiBcJFwkaS9cJChQQUNLQUdFKS1cJChWRVJTSU9OKS4qIFxcXFxcXAorCTsgZG8gdGVzdCAtZiAiXCRcJGYiICYmIG12ICJcJFwkZiIgXCQoUFVCKS4gOyBkb25lIDsgYnJlYWsgOyBkb25lCisvZGlzdGNsZWFuLWFsbCAqOi9hXFwKKwlAIEhPU1Q9IlwkKEhPU1QpXCIgXFxcXFxcCisJOyB0ZXN0ICIuXCRcJEhPU1QiID0gIi4iICYmIEhPU1Q9JHggc2ggJGF4X2VuYWJsZV9idWlsZGRpcl9hdXhkaXIvY29uZmlnLmd1ZXNzICR4IFxcXFxcXAorCTsgQlVJTEQ9JHggZ3JlcCAiXiMjIyMgLip8IiBNYWtlZmlsZSB8IHNlZCAtZSAncy8uKnwvLycgJHggXFxcXFxcCisJOyB1c2U9JHggYmFzZW5hbWUgIlwkXEAiIC1hbGwgJHg7IG49JHggZWNobyBcJFwkQlVJTEQgfCB3YyAtdyAkeCBcXFxcXFwKKwk7IGVjaG8gIk1BS0UgXCRcJEhPU1QgOiBcJFwkbiAqIFwkXEAgKGFsbCBsb2NhbCBidWlsZHMpIiBcXFxcXFwKKwk7IHRlc3QgIi5cJFwkQlVJTEQiID0gIi4iICYmIEJVSUxEPSIuIiBcXFxcXFwKKwk7IGZvciBpIGluIFwkXCRCVUlMRCA7IGRvIHRlc3QgIi5cJFwkaSIgPSAiLiIgJiYgY29udGludWUgXFxcXFxcCisJOyBlY2hvICIjIHJtIC1yIFwkXCRpIjsgZG9uZSA7IGVjaG8gIiMgKHNsZWVwIDMpIiA7IHNsZWVwIDMgXFxcXFxcCisJOyBmb3IgaSBpbiBcJFwkQlVJTEQgOyBkbyB0ZXN0ICIuXCRcJGkiID0gIi4iICYmIGNvbnRpbnVlIFxcXFxcXAorCTsgZWNobyAiXCRcJGkiIHwgZ3JlcCAiXi8iID4gL2Rldi9udWxsICYmIGNvbnRpbnVlIFxcXFxcXAorCTsgZWNobyAiXCRcJGkiIHwgZ3JlcCAiXi4uLyIgPiAvZGV2L251bGwgJiYgY29udGludWUgXFxcXFxcCisJOyBlY2hvICJybSAtciBcJFwkaSI7IChybSAtciAiXCRcJGkiKSA7IGRvbmUgOyBybSBNYWtlZmlsZQorX0VPRgorICAgICAgY3AgIiR0bXAvY29uZnRlbXAuc2VkIiAiJGFjX3RvcF9zcmNkaXIvbWFrZWZpbGUuc2VkfiIgICAgICAgICAgICAjIyBERUJVR0dJTkcKKyAgICAgICRheF9lbmFibGVfYnVpbGRkaXJfc2VkIC1mICR0bXAvY29uZnRlbXAuc2VkIE1ha2VmaWxlID4kYWNfdG9wX3NyY2Rpci9NYWtlZmlsZQorICAgICAgaWYgdGVzdCAtZiAiJGFjX3RvcF9zcmNkaXIvTWFrZWZpbGUubWsiIDsgdGhlbgorICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGV4dGVuZCB0b3Bfc3JjZGlyL01ha2VmaWxlIHdpdGggdG9wX3NyY2Rpci9NYWtlZmlsZS5tayIgPiY1CiskYXNfZWNobyAiJGFzX21lOiBleHRlbmQgdG9wX3NyY2Rpci9NYWtlZmlsZSB3aXRoIHRvcF9zcmNkaXIvTWFrZWZpbGUubWsiID4mNjt9CisgICAgICAgIGNhdCAkYWNfdG9wX3NyY2Rpci9NYWtlZmlsZS5tayA+PiRhY190b3Bfc3JjZGlyL01ha2VmaWxlCisgICAgICBmaSA7IHh4eHg9IiMjIyMiCisgICAgICBlY2hvICIkeHh4eCBDT05GSUdVUkFUSU9OUyBGT1IgVE9QTEVWRUwgTUFLRUZJTEU6ICIgPj4kYWNfdG9wX3NyY2Rpci9NYWtlZmlsZQorICAgICAgIyBzYW5pdHkgY2hlY2sKKyAgICAgIGlmIGdyZXAgJ147IGVjaG8gIk1BS0UgJyAkYWNfdG9wX3NyY2Rpci9NYWtlZmlsZSA+L2Rldi9udWxsIDsgdGhlbgorICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGJ1Z2d5IHNlZCBmb3VuZCAtIGl0IGRlbGV0ZXMgdGFiIGluIFwiYVwiIHRleHQgcGFydHMiID4mNQorJGFzX2VjaG8gIiRhc19tZTogYnVnZ3kgc2VkIGZvdW5kIC0gaXQgZGVsZXRlcyB0YWIgaW4gXCJhXCIgdGV4dCBwYXJ0cyIgPiY2O30KKyAgICAgICAgJGF4X2VuYWJsZV9idWlsZGRpcl9zZWQgLWUgJy9eQCBIT1NUPS9zL14vCS8nIC1lICcvXjsgL3MvXi8JLycgJGFjX3RvcF9zcmNkaXIvTWFrZWZpbGUgXAorICAgICAgICAgID4kYWNfdG9wX3NyY2Rpci9NYWtlZmlsZX4KKyAgICAgICAgKHRlc3QgLXMgJGFjX3RvcF9zcmNkaXIvTWFrZWZpbGV+ICYmIG12ICRhY190b3Bfc3JjZGlyL01ha2VmaWxlfiAkYWNfdG9wX3NyY2Rpci9NYWtlZmlsZSkgMj4vZGV2L251bGwKKyAgICAgIGZpCisgICAgZWxzZQorICAgICAgeHh4eD0iXFwjXFwjXFwjXFwjIgorICAgICAgIyBlY2hvICIvXiR4eHh4ICokYXhfZW5hYmxlX2J1aWxkZGlyX2hvc3QgL2QiID4kdG1wL2NvbmZ0ZW1wLnNlZAorICAgICAgZWNobyAicyFeJHh4eHggW158XSogfCAqJGF4X2VuYWJsZV9idWlsZGRpciAqXCQhJHh4eHggLi4uLi4uICRheF9lbmFibGVfYnVpbGRkaXIhIiA+JHRtcC9jb25mdGVtcC5zZWQKKyAgICAgICRheF9lbmFibGVfYnVpbGRkaXJfc2VkIC1mICIkdG1wL2NvbmZ0ZW1wLnNlZCIgIiRhY190b3Bfc3JjZGlyL01ha2VmaWxlIiA+JHRtcC9ta2ZpbGUudG1wCisgICAgICAgIGNwICIkdG1wL2NvbmZ0ZW1wLnNlZCIgIiRhY190b3Bfc3JjZGlyL21ha2VmaWxlcy5zZWR+IiAgICAgICAgICMjIERFQlVHR0lORworICAgICAgICBjcCAiJHRtcC9ta2ZpbGUudG1wIiAgICIkYWNfdG9wX3NyY2Rpci9tYWtlZmlsZXMub3V0fiIgICAgICAgICAjIyBERUJVR0dJTkcKKyAgICAgIGlmIGNtcCAtcyAiJGFjX3RvcF9zcmNkaXIvTWFrZWZpbGUiICIkdG1wL21rZmlsZS50bXAiIDI+L2Rldi9udWxsIDsgdGhlbgorICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGtlZXBpbmcgdG9wX3NyY2Rpci9NYWtlZmlsZSBmcm9tIGVhcmxpZXIgY29uZmlndXJlIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IGtlZXBpbmcgdG9wX3NyY2Rpci9NYWtlZmlsZSBmcm9tIGVhcmxpZXIgY29uZmlndXJlIiA+JjY7fQorICAgICAgICBybSAiJHRtcC9ta2ZpbGUudG1wIgorICAgICAgZWxzZQorICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJldXNpbmcgdG9wX3NyY2Rpci9NYWtlZmlsZSBmcm9tIGVhcmxpZXIgY29uZmlndXJlIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IHJldXNpbmcgdG9wX3NyY2Rpci9NYWtlZmlsZSBmcm9tIGVhcmxpZXIgY29uZmlndXJlIiA+JjY7fQorICAgICAgICBtdiAiJHRtcC9ta2ZpbGUudG1wIiAiJGFjX3RvcF9zcmNkaXIvTWFrZWZpbGUiCisgICAgICBmaQorICAgIGZpCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBidWlsZCBpbiAkYXhfZW5hYmxlX2J1aWxkZGlyIChIT1NUPSRheF9lbmFibGVfYnVpbGRkaXJfaG9zdCkiID4mNQorJGFzX2VjaG8gIiRhc19tZTogYnVpbGQgaW4gJGF4X2VuYWJsZV9idWlsZGRpciAoSE9TVD0kYXhfZW5hYmxlX2J1aWxkZGlyX2hvc3QpIiA+JjY7fQorICAgIHh4eHg9IiMjIyMiCisgICAgZWNobyAiJHh4eHgiICIkYXhfZW5hYmxlX2J1aWxkZGlyX2hvc3QiICJ8JGF4X2VuYWJsZV9idWlsZGRpciIgPj4kYWNfdG9wX3NyY2Rpci9NYWtlZmlsZQorICBmaQorIDs7CiAgICAgImRlcGZpbGVzIjpDKSB0ZXN0IHgiJEFNREVQX1RSVUUiICE9IHgiIiB8fCB7CiAgICMgQXV0b2NvbmYgMi42MiBxdW90ZXMgLS1maWxlIGFyZ3VtZW50cyBmb3IgZXZhbCwgYnV0IG5vdCB3aGVuIGZpbGVzCiAgICMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmlsZS4gIExldCdzIHBsYXkgc2FmZSBhbmQgb25seSBlbmFibGUgdGhlIGV2YWwKQEAgLTE0MjY4LDcgKzE2NzI0LDggQEAKICMgTk9URTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxvb2sgYXQgbHRtYWluLnNoLgogIwogIyAgIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwKLSMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjICAgICAgICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEZyZWUgU29mdHdhcmUKKyMgICAgICAgICAgICAgICAgIEZvdW5kYXRpb24sIEluYy4KICMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2CiAjCiAjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCkBAIC0xNDMxNiw2ICsxNjc3MywxNSBAQAogIyBXaGV0aGVyIG9yIG5vdCB0byBvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCiBmYXN0X2luc3RhbGw9JGVuYWJsZV9mYXN0X2luc3RhbGwKIAorIyBTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzLgorU0hFTEw9JGx0X1NIRUxMCisKKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgcHJvdGVjdHMgYmFja3NsYXNoZXMuCitFQ0hPPSRsdF9FQ0hPCisKKyMgVGhlIFBBVEggc2VwYXJhdG9yIGZvciB0aGUgYnVpbGQgc3lzdGVtLgorUEFUSF9TRVBBUkFUT1I9JGx0X1BBVEhfU0VQQVJBVE9SCisKICMgVGhlIGhvc3Qgc3lzdGVtLgogaG9zdF9hbGlhcz0kaG9zdF9hbGlhcwogaG9zdD0kaG9zdApAQCAtMTQzNjUsOSArMTY4MzEsMTEgQEAKICMgdHVybiBuZXdsaW5lcyBpbnRvIHNwYWNlcy4KIE5MMlNQPSRsdF9sdF9OTDJTUAogCi0jIEhvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMuCi1yZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWcKLXJlbG9hZF9jbWRzPSRsdF9yZWxvYWRfY21kcworIyBjb252ZXJ0IFwkYnVpbGQgZmlsZSBuYW1lcyB0byBcJGhvc3QgZm9ybWF0LgordG9faG9zdF9maWxlX2NtZD0kbHRfY3ZfdG9faG9zdF9maWxlX2NtZAorCisjIGNvbnZlcnQgXCRidWlsZCBmaWxlcyB0byB0b29sY2hhaW4gZm9ybWF0LgordG9fdG9vbF9maWxlX2NtZD0kbHRfY3ZfdG9fdG9vbF9maWxlX2NtZAogCiAjIEFuIG9iamVjdCBzeW1ib2wgZHVtcGVyLgogT0JKRFVNUD0kbHRfT0JKRFVNUApAQCAtMTQzNzUsMTMgKzE2ODQzLDMwIEBACiAjIE1ldGhvZCB0byBjaGVjayB3aGV0aGVyIGRlcGVuZGVudCBsaWJyYXJpZXMgYXJlIHNoYXJlZCBvYmplY3RzLgogZGVwbGlic19jaGVja19tZXRob2Q9JGx0X2RlcGxpYnNfY2hlY2tfbWV0aG9kCiAKLSMgQ29tbWFuZCB0byB1c2Ugd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9PSAiZmlsZV9tYWdpYyIuCisjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPSAiZmlsZV9tYWdpYyIuCiBmaWxlX21hZ2ljX2NtZD0kbHRfZmlsZV9tYWdpY19jbWQKIAorIyBIb3cgdG8gZmluZCBwb3RlbnRpYWwgZmlsZXMgd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9ICJmaWxlX21hZ2ljIi4KK2ZpbGVfbWFnaWNfZ2xvYj0kbHRfZmlsZV9tYWdpY19nbG9iCisKKyMgRmluZCBwb3RlbnRpYWwgZmlsZXMgdXNpbmcgbm9jYXNlZ2xvYiB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID0gImZpbGVfbWFnaWMiLgord2FudF9ub2Nhc2VnbG9iPSRsdF93YW50X25vY2FzZWdsb2IKKworIyBETEwgY3JlYXRpb24gcHJvZ3JhbS4KK0RMTFRPT0w9JGx0X0RMTFRPT0wKKworIyBDb21tYW5kIHRvIGFzc29jaWF0ZSBzaGFyZWQgYW5kIGxpbmsgbGlicmFyaWVzLgorc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9JGx0X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kCisKICMgVGhlIGFyY2hpdmVyLgogQVI9JGx0X0FSCisKKyMgRmxhZ3MgdG8gY3JlYXRlIGFuIGFyY2hpdmUuCiBBUl9GTEFHUz0kbHRfQVJfRkxBR1MKIAorIyBIb3cgdG8gZmVlZCBhIGZpbGUgbGlzdGluZyB0byB0aGUgYXJjaGl2ZXIuCithcmNoaXZlcl9saXN0X3NwZWM9JGx0X2FyY2hpdmVyX2xpc3Rfc3BlYworCiAjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtLgogU1RSSVA9JGx0X1NUUklQCiAKQEAgLTE0MzkwLDYgKzE2ODc1LDkgQEAKIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSRsdF9vbGRfcG9zdGluc3RhbGxfY21kcwogb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bvc3R1bmluc3RhbGxfY21kcwogCisjIFdoZXRoZXIgdG8gdXNlIGEgbG9jayBmb3Igb2xkIGFyY2hpdmUgZXh0cmFjdGlvbi4KK2xvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj0kbG9ja19vbGRfYXJjaGl2ZV9leHRyYWN0aW9uCisKICMgQSBDIGNvbXBpbGVyLgogTFRDQz0kbHRfQ0MKIApAQCAtMTQ0MDgsMjEgKzE2ODk2LDI0IEBACiAjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVlZGVkLgogZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4CiAKKyMgU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzIGZvciBcJE5NLgorbm1fZmlsZV9saXN0X3NwZWM9JGx0X25tX2ZpbGVfbGlzdF9zcGVjCisKKyMgVGhlIHJvb3Qgd2hlcmUgdG8gc2VhcmNoIGZvciBkZXBlbmRlbnQgbGlicmFyaWVzLGFuZCBpbiB3aGljaCBvdXIgbGlicmFyaWVzIHNob3VsZCBiZSBpbnN0YWxsZWQuCitsdF9zeXNyb290PSRsdF9zeXNyb290CisKICMgVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRlbXBvcmFyeSBsaWJ0b29sIGZpbGVzLgogb2JqZGlyPSRvYmpkaXIKIAotIyBTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzLgotU0hFTEw9JGx0X1NIRUxMCi0KLSMgQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzLgotRUNITz0kbHRfRUNITwotCiAjIFVzZWQgdG8gZXhhbWluZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMgd2l0aCAiZmlsZSIuCiBNQUdJQ19DTUQ9JE1BR0lDX0NNRAogCiAjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPwogbmVlZF9sb2Nrcz0kbHRfbmVlZF9sb2NrcwogCisjIE1hbmlmZXN0IHRvb2wuCitNQU5JRkVTVF9UT09MPSRsdF9NQU5JRkVTVF9UT09MCisKICMgVG9vbCB0byBtYW5pcHVsYXRlIGFyY2hpdmVkIERXQVJGIGRlYnVnIHN5bWJvbCBmaWxlcyBvbiBNYWMgT1MgWC4KIERTWU1VVElMPSRsdF9EU1lNVVRJTAogCkBAIC0xNDQ3OSw2ICsxNjk3MCw5IEBACiAjIFRoZSBjb2RlZCBuYW1lIG9mIHRoZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lLgogc29uYW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVjCiAKKyMgUGVybWlzc2lvbiBtb2RlIG92ZXJyaWRlIGZvciBpbnN0YWxsYXRpb24gb2Ygc2hhcmVkIGxpYnJhcmllcy4KK2luc3RhbGxfb3ZlcnJpZGVfbW9kZT0kbHRfaW5zdGFsbF9vdmVycmlkZV9tb2RlCisKICMgQ29tbWFuZCB0byB1c2UgYWZ0ZXIgaW5zdGFsbGF0aW9uIG9mIGEgc2hhcmVkIGFyY2hpdmUuCiBwb3N0aW5zdGFsbF9jbWRzPSRsdF9wb3N0aW5zdGFsbF9jbWRzCiAKQEAgLTE0NTE4LDYgKzE3MDEyLDEwIEBACiAjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXMuCiBMRD0kbHRfTEQKIAorIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzLgorcmVsb2FkX2ZsYWc9JGx0X3JlbG9hZF9mbGFnCityZWxvYWRfY21kcz0kbHRfcmVsb2FkX2NtZHMKKwogIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGFuIG9sZC1zdHlsZSBhcmNoaXZlLgogb2xkX2FyY2hpdmVfY21kcz0kbHRfb2xkX2FyY2hpdmVfY21kcwogCkBAIC0xNDUzMCwxMiArMTcwMjgsMTIgQEAKICMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4KIG5vX2J1aWx0aW5fZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcKIAotIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotd2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2wKLQogIyBBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCiBwaWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9waWMKIAorIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgord2w9JGx0X2x0X3Byb2dfY29tcGlsZXJfd2wKKwogIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgogbGlua19zdGF0aWNfZmxhZz0kbHRfbHRfcHJvZ19jb21waWxlcl9zdGF0aWMKIApAQCAtMTQ1ODUsMTAgKzE3MDgzLDYgQEAKICMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdAogaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYwogCi0jIElmIGxkIGlzIHVzZWQgd2hlbiBsaW5raW5nLCBmbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkKLSMgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgotaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0kbHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZAotCiAjIFdoZXRoZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCiBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSRsdF9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yCiAKQEAgLTE0NjIyLDkgKzE3MTE2LDYgQEAKICMgV2hldGhlciBsaWJ0b29sIG11c3QgbGluayBhIHByb2dyYW0gYWdhaW5zdCBhbGwgaXRzIGRlcGVuZGVuY3kgbGlicmFyaWVzLgogbGlua19hbGxfZGVwbGlicz0kbGlua19hbGxfZGVwbGlicwogCi0jIEZpeCB0aGUgc2hlbGwgdmFyaWFibGUgXCRzcmNmaWxlIGZvciB0aGUgY29tcGlsZXIuCi1maXhfc3JjZmlsZV9wYXRoPSRsdF9maXhfc3JjZmlsZV9wYXRoCi0KICMgU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkLgogYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJvbHMKIApAQCAtMTQ2NDAsNiArMTcxMzEsOSBAQAogIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KIHByZWxpbmtfY21kcz0kbHRfcHJlbGlua19jbWRzCiAKKyMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBmaW5pc2hpbmcgbGlua2luZyBwcm9ncmFtcy4KK3Bvc3RsaW5rX2NtZHM9JGx0X3Bvc3RsaW5rX2NtZHMKKwogIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCiBmaWxlX2xpc3Rfc3BlYz0kbHRfZmlsZV9saXN0X3NwZWMKIApAQCAtMTQ2NzIsMjEyICsxNzE2NiwxNjkgQEAKICAgIyBpZiBmaW5kcyBtaXhlZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNlZCBvcGVyYXRlcyBpbgogICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQogICAjIGlzIHJlcG9ydGVkbHkgZml4ZWQsIGJ1dCB3aHkgbm90IHJ1biBvbiBvbGQgdmVyc2lvbnMgdG9vPwotICBzZWQgJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvcScgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgXAotICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCisgIHNlZCAnJHEnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKKyAgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKIAotICBjYXNlICR4c2lfc2hlbGwgaW4KLSAgeWVzKQotICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0KLSMgZnVuY19kaXJuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAotIyBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LAotIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCi1mdW5jX2Rpcm5hbWUgKCkKLXsKLSAgY2FzZSAkezF9IGluCi0gICAgKi8qKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezElLyp9JHsyfSIgOzsKLSAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7Ci0gIGVzYWMKLX0KLQotIyBmdW5jX2Jhc2VuYW1lIGZpbGUKLWZ1bmNfYmFzZW5hbWUgKCkKLXsKLSAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IgotfQotCi0jIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgZmlsZSBhcHBlbmQgbm9uZGlyX3JlcGxhY2VtZW50Ci0jIHBlcmZvcm0gZnVuY19iYXNlbmFtZSBhbmQgZnVuY19kaXJuYW1lIGluIGEgc2luZ2xlIGZ1bmN0aW9uCi0jIGNhbGw6Ci0jICAgZGlybmFtZTogIENvbXB1dGUgdGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LAotIyAgICAgICAgICAgICBhZGQgQVBQRU5EIHRvIHRoZSByZXN1bHQsIG90aGVyd2lzZSBzZXQgcmVzdWx0Ci0jICAgICAgICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KLSMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotIyAgIGJhc2VuYW1lOiBDb21wdXRlIGZpbGVuYW1lIG9mIEZJTEUuCi0jICAgICAgICAgICAgIHZhbHVlIHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSMgSW1wbGVtZW50YXRpb24gbXVzdCBiZSBrZXB0IHN5bmNocm9uaXplZCB3aXRoIGZ1bmNfZGlybmFtZQotIyBhbmQgZnVuY19iYXNlbmFtZS4gRm9yIGVmZmljaWVuY3ksIHdlIGRvIG5vdCBkZWxlZ2F0ZSB0bwotIyB0aG9zZSBmdW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCi1mdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpCi17Ci0gIGNhc2UgJHsxfSBpbgotICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7Ci0gICAgKiAgKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IiA7OwotICBlc2FjCi0gIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKLX0KLQotIyBmdW5jX3N0cmlwbmFtZSBwcmVmaXggc3VmZml4IG5hbWUKLSMgc3RyaXAgUFJFRklYIGFuZCBTVUZGSVggb2ZmIG9mIE5BTUUuCi0jIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAotIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCi0jIGRvdCAoaW4gd2hpY2ggY2FzZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCi1mdW5jX3N0cmlwbmFtZSAoKQotewotICAjIHBka3NoIDUuMi4xNCBkb2VzIG5vdCBkbyAke1glJFl9IGNvcnJlY3RseSBpZiBib3RoIFggYW5kIFkgYXJlCi0gICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25lIHRvIG9yZGluYXJ5IHBhcmFtZXRlciBmaXJzdC4KLSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7M30KLSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0IyIkezF9In0KLSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIkezJ9In0KLX0KLQotIyBmdW5jX29wdF9zcGxpdAotZnVuY19vcHRfc3BsaXQgKCkKLXsKLSAgZnVuY19vcHRfc3BsaXRfb3B0PSR7MSUlPSp9Ci0gIGZ1bmNfb3B0X3NwbGl0X2FyZz0kezEjKj19Ci19Ci0KLSMgZnVuY19sbzJvIG9iamVjdAotZnVuY19sbzJvICgpCi17Ci0gIGNhc2UgJHsxfSBpbgotICAgICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5sb30uJHtvYmpleHR9IDs7Ci0gICAgKikgICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7Ci0gIGVzYWMKLX0KLQotIyBmdW5jX3hmb3JtIGxpYm9iai1vci1zb3VyY2UKLWZ1bmNfeGZvcm0gKCkKLXsKLSAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sbwotfQotCi0jIGZ1bmNfYXJpdGggYXJpdGhtZXRpYy10ZXJtLi4uCi1mdW5jX2FyaXRoICgpCi17Ci0gIGZ1bmNfYXJpdGhfcmVzdWx0PSQoKCAkKiApKQotfQotCi0jIGZ1bmNfbGVuIHN0cmluZwotIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgotZnVuY19sZW4gKCkKLXsKLSAgZnVuY19sZW5fcmVzdWx0PSR7IzF9Ci19Ci0KLV9MVF9FT0YKLSAgICA7OwotICAqKSAjIEJvdXJuZSBjb21wYXRpYmxlIGZ1bmN0aW9ucy4KLSAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotCi0jIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKLSMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotZnVuY19kaXJuYW1lICgpCi17Ci0gICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0gIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAotICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgotICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCi0gIGVsc2UKLSAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCi0gIGZpCi19Ci0KLSMgZnVuY19iYXNlbmFtZSBmaWxlCi1mdW5jX2Jhc2VuYW1lICgpCi17Ci0gIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCi19CisgIGlmIHRlc3QgeCIkeHNpX3NoZWxsIiA9IHh5ZXM7IHRoZW4KKyAgc2VkIC1lICcvXmZ1bmNfZGlybmFtZSAoKSQvLC9efSAjIGZ1bmNfZGlybmFtZSAvY1wKK2Z1bmNfZGlybmFtZSAoKVwKK3tcCitcICAgIGNhc2UgJHsxfSBpblwKK1wgICAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7O1wKK1wgICAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7XAorXCAgICBlc2FjXAorfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfZGlybmFtZSBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCisgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAorICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCit0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgogCiAKLSMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCi0jIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgotIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKLSMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZwotIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgotIyBmdW5jX3N0cmlwX3N1ZmZpeCBwcmVmaXggbmFtZQotZnVuY19zdHJpcG5hbWUgKCkKLXsKLSAgY2FzZSAkezJ9IGluCi0gICAgLiopIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCi0gICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlXFxcXCR7Mn1cJCUlImA7OwotICAgICopICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHszfSIgXAotICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4kezF9JSUiIC1lICJzJSR7Mn1cJCUlImA7OwotICBlc2FjCi19Ci0KLSMgc2VkIHNjcmlwdHM6Ci1teV9zZWRfbG9uZ19vcHQ9JzFzL15cKC1bXj1dKlwpPS4qL1wxLztxJwotbXlfc2VkX2xvbmdfYXJnPScxcy9eLVtePV0qPS8vJwotCi0jIGZ1bmNfb3B0X3NwbGl0Ci1mdW5jX29wdF9zcGxpdCAoKQotewotICBmdW5jX29wdF9zcGxpdF9vcHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJG15X3NlZF9sb25nX29wdCJgCi0gIGZ1bmNfb3B0X3NwbGl0X2FyZz1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbXlfc2VkX2xvbmdfYXJnImAKLX0KLQotIyBmdW5jX2xvMm8gb2JqZWN0Ci1mdW5jX2xvMm8gKCkKLXsKLSAgZnVuY19sbzJvX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkbG8ybyJgCi19Ci0KLSMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCi1mdW5jX3hmb3JtICgpCi17Ci0gIGZ1bmNfeGZvcm1fcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgJ3MvXC5bXi5dKiQvLmxvLydgCi19Ci0KLSMgZnVuY19hcml0aCBhcml0aG1ldGljLXRlcm0uLi4KLWZ1bmNfYXJpdGggKCkKLXsKLSAgZnVuY19hcml0aF9yZXN1bHQ9YGV4cHIgIiRAImAKLX0KLQotIyBmdW5jX2xlbiBzdHJpbmcKLSMgU1RSSU5HIG1heSBub3Qgc3RhcnQgd2l0aCBhIGh5cGhlbi4KLWZ1bmNfbGVuICgpCi17Ci0gIGZ1bmNfbGVuX3Jlc3VsdD1gZXhwciAiJDEiIDogIi4qIiAyPi9kZXYvbnVsbCB8fCBlY2hvICRtYXhfY21kX2xlbmAKLX0KLQotX0xUX0VPRgotZXNhYwotCi1jYXNlICRsdF9zaGVsbF9hcHBlbmQgaW4KLSAgeWVzKQotICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0KLSMgZnVuY19hcHBlbmQgdmFyIHZhbHVlCi0jIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KLWZ1bmNfYXBwZW5kICgpCi17Ci0gIGV2YWwgIiQxKz1cJDIiCi19Ci1fTFRfRU9GCi0gICAgOzsKLSAgKikKLSAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotCi0jIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQotIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIuCi1mdW5jX2FwcGVuZCAoKQotewotICBldmFsICIkMT1cJCQxXCQyIgotfQotCi1fTFRfRU9GCi0gICAgOzsKLSAgZXNhYworICBzZWQgLWUgJy9eZnVuY19iYXNlbmFtZSAoKSQvLC9efSAjIGZ1bmNfYmFzZW5hbWUgL2NcCitmdW5jX2Jhc2VuYW1lICgpXAore1wKK1wgICAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9IiR7MSMjKi99IlwKK30gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX2Jhc2VuYW1lIGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKKyAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCisgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKK3Rlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06CiAKIAotICBzZWQgLW4gJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvLCRwJyAiJGx0bWFpbiIgPj4gIiRjZmdmaWxlIiBcCi0gICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKKyAgc2VkIC1lICcvXmZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgKCkkLywvXn0gIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIC9jXAorZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKVwKK3tcCitcICAgIGNhc2UgJHsxfSBpblwKK1wgICAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7O1wKK1wgICAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7XAorXCAgICBlc2FjXAorXCAgICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iXAorfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgaW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAorICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQordGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKIAotICBtdiAtZiAiJGNmZ2ZpbGUiICIkb2ZpbGUiIHx8CisKKyAgc2VkIC1lICcvXmZ1bmNfc3RyaXBuYW1lICgpJC8sL159ICMgZnVuY19zdHJpcG5hbWUgL2NcCitmdW5jX3N0cmlwbmFtZSAoKVwKK3tcCitcICAgICMgcGRrc2ggNS4yLjE0IGRvZXMgbm90IGRvICR7WCUkWX0gY29ycmVjdGx5IGlmIGJvdGggWCBhbmQgWSBhcmVcCitcICAgICMgcG9zaXRpb25hbCBwYXJhbWV0ZXJzLCBzbyBhc3NpZ24gb25lIHRvIG9yZGluYXJ5IHBhcmFtZXRlciBmaXJzdC5cCitcICAgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0kezN9XAorXCAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQjIiR7MX0ifVwKK1wgICAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0JSIkezJ9In1cCit9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19zdHJpcG5hbWUgaW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAorICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQordGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKKworCisgIHNlZCAtZSAnL15mdW5jX3NwbGl0X2xvbmdfb3B0ICgpJC8sL159ICMgZnVuY19zcGxpdF9sb25nX29wdCAvY1wKK2Z1bmNfc3BsaXRfbG9uZ19vcHQgKClcCit7XAorXCAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X25hbWU9JHsxJSU9Kn1cCitcICAgIGZ1bmNfc3BsaXRfbG9uZ19vcHRfYXJnPSR7MSMqPX1cCit9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19zcGxpdF9sb25nX29wdCBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCisgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAorICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCit0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgorCisKKyAgc2VkIC1lICcvXmZ1bmNfc3BsaXRfc2hvcnRfb3B0ICgpJC8sL159ICMgZnVuY19zcGxpdF9zaG9ydF9vcHQgL2NcCitmdW5jX3NwbGl0X3Nob3J0X29wdCAoKVwKK3tcCitcICAgIGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZz0kezEjPz99XAorXCAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lPSR7MSUiJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZyJ9XAorfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfc3BsaXRfc2hvcnRfb3B0IGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKKyAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCisgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKK3Rlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06CisKKworICBzZWQgLWUgJy9eZnVuY19sbzJvICgpJC8sL159ICMgZnVuY19sbzJvIC9jXAorZnVuY19sbzJvICgpXAore1wKK1wgICAgY2FzZSAkezF9IGluXAorXCAgICAgICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5sb30uJHtvYmpleHR9IDs7XAorXCAgICAgICopICAgIGZ1bmNfbG8yb19yZXN1bHQ9JHsxfSA7O1wKK1wgICAgZXNhY1wKK30gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX2xvMm8gaW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAorICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQordGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKKworCisgIHNlZCAtZSAnL15mdW5jX3hmb3JtICgpJC8sL159ICMgZnVuY194Zm9ybSAvY1wKK2Z1bmNfeGZvcm0gKClcCit7XAorICAgIGZ1bmNfeGZvcm1fcmVzdWx0PSR7MSUuKn0ubG9cCit9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY194Zm9ybSBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCisgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAorICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCit0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgorCisKKyAgc2VkIC1lICcvXmZ1bmNfYXJpdGggKCkkLywvXn0gIyBmdW5jX2FyaXRoIC9jXAorZnVuY19hcml0aCAoKVwKK3tcCisgICAgZnVuY19hcml0aF9yZXN1bHQ9JCgoICQqICkpXAorfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfYXJpdGggaW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAorICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQordGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKKworCisgIHNlZCAtZSAnL15mdW5jX2xlbiAoKSQvLC9efSAjIGZ1bmNfbGVuIC9jXAorZnVuY19sZW4gKClcCit7XAorICAgIGZ1bmNfbGVuX3Jlc3VsdD0keyMxfVwKK30gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX2xlbiBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCisgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAorICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCit0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgorCitmaQorCitpZiB0ZXN0IHgiJGx0X3NoZWxsX2FwcGVuZCIgPSB4eWVzOyB0aGVuCisgIHNlZCAtZSAnL15mdW5jX2FwcGVuZCAoKSQvLC9efSAjIGZ1bmNfYXBwZW5kIC9jXAorZnVuY19hcHBlbmQgKClcCit7XAorICAgIGV2YWwgIiR7MX0rPVxcJHsyfSJcCit9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19hcHBlbmQgaW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAorICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQordGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKKworCisgIHNlZCAtZSAnL15mdW5jX2FwcGVuZF9xdW90ZWQgKCkkLywvXn0gIyBmdW5jX2FwcGVuZF9xdW90ZWQgL2NcCitmdW5jX2FwcGVuZF9xdW90ZWQgKClcCit7XAorXCAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkezJ9IlwKK1wgICAgZXZhbCAiJHsxfSs9XFxcXCBcXCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCJcCit9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19hcHBlbmRfcXVvdGVkIGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKKyAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCisgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKK3Rlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06CisKKworICAjIFNhdmUgYSBgZnVuY19hcHBlbmQnIGZ1bmN0aW9uIGNhbGwgd2hlcmUgcG9zc2libGUgYnkgZGlyZWN0IHVzZSBvZiAnKz0nCisgIHNlZCAtZSAncyVmdW5jX2FwcGVuZCBcKFthLXpBLVpfXVx7MSxcfVwpICIlXDErPSIlZycgJGNmZ2ZpbGUgPiAkY2ZnZmlsZS50bXAgXAorICAgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAorICAgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKKyAgdGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKK2Vsc2UKKyAgIyBTYXZlIGEgYGZ1bmNfYXBwZW5kJyBmdW5jdGlvbiBjYWxsIGV2ZW4gd2hlbiAnKz0nIGlzIG5vdCBhdmFpbGFibGUKKyAgc2VkIC1lICdzJWZ1bmNfYXBwZW5kIFwoW2EtekEtWl9dXHsxLFx9XCkgIiVcMT0iJFwxJWcnICRjZmdmaWxlID4gJGNmZ2ZpbGUudG1wIFwKKyAgICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKKyAgICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCisgIHRlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06CitmaQorCitpZiB0ZXN0IHgiJF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWwiID0geCI6IjsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IFVuYWJsZSB0byBzdWJzdGl0dXRlIGV4dGVuZGVkIHNoZWxsIGZ1bmN0aW9ucyBpbiAkb2ZpbGUiID4mNQorJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogVW5hYmxlIHRvIHN1YnN0aXR1dGUgZXh0ZW5kZWQgc2hlbGwgZnVuY3Rpb25zIGluICRvZmlsZSIgPiYyO30KK2ZpCisKKworICAgbXYgLWYgIiRjZmdmaWxlIiAiJG9maWxlIiB8fAogICAgIChybSAtZiAiJG9maWxlIiAmJiBjcCAiJGNmZ2ZpbGUiICIkb2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZSIpCiAgIGNobW9kICt4ICIkb2ZpbGUiCiAKQEAgLTE0ODk3LDcgKzE3MzQ4LDcgQEAKIGFjX2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCiAKIHRlc3QgJGFjX3dyaXRlX2ZhaWwgPSAwIHx8Ci0gIGFzX2ZuX2Vycm9yICJ3cml0ZSBmYWlsdXJlIGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiAiJExJTkVOTyIgNQorICBhc19mbl9lcnJvciAkPyAid3JpdGUgZmFpbHVyZSBjcmVhdGluZyAkQ09ORklHX1NUQVRVUyIgIiRMSU5FTk8iIDUKIAogCiAjIGNvbmZpZ3VyZSBpcyB3cml0aW5nIHRvIGNvbmZpZy5sb2csIGFuZCB0aGVuIGNhbGxzIGNvbmZpZy5zdGF0dXMuCkBAIC0xNDkxOCw3ICsxNzM2OSw3IEBACiAgIGV4ZWMgNT4+Y29uZmlnLmxvZwogICAjIFVzZSB8fCwgbm90ICYmLCB0byBhdm9pZCBleGl0aW5nIGZyb20gdGhlIGlmIHdpdGggJD8gPSAxLCB3aGljaAogICAjIHdvdWxkIG1ha2UgY29uZmlndXJlIGZhaWwgaWYgdGhpcyBpcyB0aGUgbGFzdCBpbnN0cnVjdGlvbi4KLSAgJGFjX2NzX3N1Y2Nlc3MgfHwgYXNfZm5fZXhpdCAkPworICAkYWNfY3Nfc3VjY2VzcyB8fCBhc19mbl9leGl0IDEKIGZpCiBpZiB0ZXN0IC1uICIkYWNfdW5yZWNvZ25pemVkX29wdHMiICYmIHRlc3QgIiRlbmFibGVfb3B0aW9uX2NoZWNraW5nIiAhPSBubzsgdGhlbgogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVucmVjb2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiID4mNQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9jb25maWd1cmUuYWMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbmZpZ3VyZS5hYwppbmRleCA4N2M2M2UxLi5kODY1MmFhIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbmZpZ3VyZS5hYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2NvbmZpZ3VyZS5hYwpAQCAtMyw5ICszLDkgQEAKICMgZmlsZSBmcm9tIGxpYmZmaSAtIHNsaWdodGx5IHBhdGNoZWQgZm9yIGN0eXBlcwogIwogCi1BQ19QUkVSRVEoMi42MykKK0FDX1BSRVJFUSgyLjY4KQogCi1BQ19JTklUKFtsaWJmZmldLCBbMy4wLjEwcmMwXSwgW2h0dHA6Ly9nY2MuZ251Lm9yZy9idWdzLmh0bWxdKQorQUNfSU5JVChbbGliZmZpXSwgWzMuMC4xMV0sIFtodHRwOi8vZ2l0aHViLmNvbS9hdGdyZWVuL2xpYmZmaS9pc3N1ZXNdKQogQUNfQ09ORklHX0hFQURFUlMoW2ZmaWNvbmZpZy5oXSkKIAogQUNfQ0FOT05JQ0FMX1NZU1RFTQpAQCAtMTMsMTYgKzEzLDIyIEBACiAKIC4gJHtzcmNkaXJ9L2NvbmZpZ3VyZS5ob3N0CiAKK0FYX0VOQUJMRV9CVUlMRERJUgorCiBBTV9JTklUX0FVVE9NQUtFCiAKICMgVGhlIHNhbWUgYXMgaW4gYm9laG0tZ2MgYW5kIGxpYnN0ZGMrKy4gSGF2ZSB0byBib3Jyb3cgaXQgZnJvbSB0aGVyZS4KICMgV2UgbXVzdCBmb3JjZSBDQyB0byAvbm90LyBiZSBwcmVjaW91cyB2YXJpYWJsZXM7IG90aGVyd2lzZQogIyB0aGUgd3JvbmcsIG5vbi1tdWx0aWxpYi1hZGp1c3RlZCB2YWx1ZSB3aWxsIGJlIHVzZWQgaW4gbXVsdGlsaWJzLgogIyBBcyBhIHNpZGUgZWZmZWN0LCB3ZSBoYXZlIHRvIHN1YnN0IENGTEFHUyBvdXJzZWx2ZXMuCisjIEFsc28gc2F2ZSBhbmQgcmVzdG9yZSBDRkxBR1MsIHNpbmNlIEFDX1BST0dfQ0Mgd2lsbCBjb21lIHVwIHdpdGgKKyMgZGVmYXVsdHMgb2YgaXRzIG93biBpZiBub25lIGFyZSBwcm92aWRlZC4KIAogbTRfcmVuYW1lKFtfQUNfQVJHX1ZBUl9QUkVDSU9VU10sW3JlYWxfUFJFQ0lPVVNdKQogbTRfZGVmaW5lKFtfQUNfQVJHX1ZBUl9QUkVDSU9VU10sW10pCitzYXZlX0NGTEFHUz0kQ0ZMQUdTCiBBQ19QUk9HX0NDCitDRkxBR1M9JHNhdmVfQ0ZMQUdTCiBtNF91bmRlZmluZShbX0FDX0FSR19WQVJfUFJFQ0lPVVNdKQogbTRfcmVuYW1lKFtyZWFsX1BSRUNJT1VTXSxbX0FDX0FSR19WQVJfUFJFQ0lPVVNdKQogCkBAIC0zMyw2ICszOSwxMiBAQAogQUNfUFJPR19MSUJUT09MCiBBQ19DT05GSUdfTUFDUk9fRElSKFttNF0pCiAKK0FYX0NDX01BWE9QVAorQVhfQ0ZMQUdTX1dBUk5fQUxMCitpZiB0ZXN0ICJ4JEdDQyIgPSAieHllcyI7IHRoZW4KKyAgQ0ZMQUdTPSIkQ0ZMQUdTIC1mZXhjZXB0aW9ucyIKK2ZpCisKIEFNX01BSU5UQUlORVJfTU9ERQogCiBBQ19DSEVDS19IRUFERVJTKHN5cy9tbWFuLmgpCkBAIC00Niw3ICs1OCw3IEBACiBjYXNlICIkaG9zdCIgaW4KICAgYWxwaGEqLSotKikKIAlUQVJHRVQ9QUxQSEE7IFRBUkdFVERJUj1hbHBoYTsKLQkjIFN1cHBvcnQgMTI4LWJpdCBsb25nIGRvdWJsZSwgY2hhbmdhYmxlIHZpYSBjb21tYW5kLWxpbmUgc3dpdGNoLgorCSMgU3VwcG9ydCAxMjgtYml0IGxvbmcgZG91YmxlLCBjaGFuZ2VhYmxlIHZpYSBjb21tYW5kLWxpbmUgc3dpdGNoLgogCUhBVkVfTE9OR19ET1VCTEU9J2RlZmluZWQoX19MT05HX0RPVUJMRV8xMjhfXyknCiAJOzsKIApAQCAtNzQsNyArODYsNyBAQAogCVRBUkdFVD1GUlY7IFRBUkdFVERJUj1mcnYKIAk7OwogCi0gIGhwcGEqLSotbGludXgqIHwgcGFyaXNjKi0qLWxpbnV4KikKKyAgaHBwYSotKi1saW51eCogfCBwYXJpc2MqLSotbGludXgqIHwgaHBwYSotKi1vcGVuYnNkKikKIAlUQVJHRVQ9UEFfTElOVVg7IFRBUkdFVERJUj1wYQogCTs7CiAgIGhwcGEqNjQtKi1ocHV4KikKQEAgLTg3LDEwICs5OSwxNyBAQAogICBpPzg2LSotZnJlZWJzZCogfCBpPzg2LSotb3BlbmJzZCopCiAJVEFSR0VUPVg4Nl9GUkVFQlNEOyBUQVJHRVRESVI9eDg2CiAJOzsKLSAgaT84Ni13aW4zMiogfCBpPzg2LSotY3lnd2luKiB8IGk/ODYtKi1taW5ndyopCisgIGk/ODYtd2luMzIqIHwgaT84Ni0qLWN5Z3dpbiogfCBpPzg2LSotbWluZ3cqIHwgaT84Ni0qLW9zMiogfCBpPzg2LSotaW50ZXJpeCopCiAJVEFSR0VUPVg4Nl9XSU4zMjsgVEFSR0VURElSPXg4NgotCSMgQWxsIG1pbmd3L2N5Z3dpbi93aW4zMiBidWlsZHMgcmVxdWlyZSB0aGlzIGZvciBzaGFyZWRsaWIKLQlBTV9MVExERkxBR1M9Ii1uby11bmRlZmluZWQiCisJIyBBbGwgbWluZ3cvY3lnd2luL3dpbjMyIGJ1aWxkcyByZXF1aXJlIC1uby11bmRlZmluZWQgZm9yIHNoYXJlZGxpYi4KKwkjIFdlIG11c3QgYWxzbyBjaGVjayB3aXRoX2Nyb3NzX2hvc3QgdG8gZGVjaWRlIGlmIHRoaXMgaXMgYSBuYXRpdmUKKwkjIG9yIGNyb3NzLWJ1aWxkIGFuZCBzZWxlY3Qgd2hlcmUgdG8gaW5zdGFsbCBkbGxzIGFwcHJvcHJpYXRlbHkuCisJaWYgdGVzdCAtbiAiJHdpdGhfY3Jvc3NfaG9zdCIgJiYKKwkgICB0ZXN0IHgiJHdpdGhfY3Jvc3NfaG9zdCIgIT0geCJubyI7IHRoZW4KKwkgIEFNX0xUTERGTEFHUz0nLW5vLXVuZGVmaW5lZCAtYmluZGlyICIkKHRvb2xleGVjbGliZGlyKSInOworCWVsc2UKKwkgIEFNX0xUTERGTEFHUz0nLW5vLXVuZGVmaW5lZCAtYmluZGlyICIkKGJpbmRpcikiJzsKKwlmaQogCTs7CiAgIGk/ODYtKi1kYXJ3aW4qKQogCVRBUkdFVD1YODZfREFSV0lOOyBUQVJHRVRESVI9eDg2CkBAIC0xMDIsNyArMTIxLDcgQEAKICAgICAgICAgVEFSR0VUPVg4NjsgVEFSR0VURElSPXg4NgogICAgICAgICA7OwogICBpPzg2LSotKikKLQlUQVJHRVQ9WDg2OyBUQVJHRVRESVI9eDg2CisJVEFSR0VUPVg4Nl82NDsgVEFSR0VURElSPXg4NgogCTs7CiAKICAgaWE2NCotKi0qKQpAQCAtMTE3LDMwICsxMzYsNDAgQEAKIAlUQVJHRVQ9TTY4SzsgVEFSR0VURElSPW02OGsKIAk7OwogCi0gIG1pcHMtc2dpLWlyaXg1LiogfCBtaXBzLXNnaS1pcml4Ni4qKQorICBtaXBzLXNnaS1pcml4NS4qIHwgbWlwcy1zZ2ktaXJpeDYuKiB8IG1pcHMqLSotcnRlbXMqKQogCVRBUkdFVD1NSVBTX0lSSVg7IFRBUkdFVERJUj1taXBzCiAJOzsKLSAgbWlwcyotKi1saW51eCopCisgIG1pcHMqLSotbGludXgqIHwgbWlwcyotKi1vcGVuYnNkKikKIAkjIFN1cHBvcnQgMTI4LWJpdCBsb25nIGRvdWJsZSBmb3IgTmV3QUJJLgogCUhBVkVfTE9OR19ET1VCTEU9J2RlZmluZWQoX19taXBzNjQpJwogCVRBUkdFVD1NSVBTX0lSSVg7IFRBUkdFVERJUj1taXBzCiAJOzsKIAorICBtb3hpZS0qLSopCisgICAgICAgIFRBUkdFVD1NT1hJRTsgVEFSR0VURElSPW1veGllCisJOzsKKwogICBwb3dlcnBjKi0qLWxpbnV4KiB8IHBvd2VycGMtKi1zeXN2KikKIAlUQVJHRVQ9UE9XRVJQQzsgVEFSR0VURElSPXBvd2VycGMKIAk7OworICBwb3dlcnBjLSotYW1pZ2FvcyopCisJVEFSR0VUPVBPV0VSUEM7IFRBUkdFVERJUj1wb3dlcnBjCisJOzsKICAgcG93ZXJwYy0qLWJlb3MqKQogCVRBUkdFVD1QT1dFUlBDOyBUQVJHRVRESVI9cG93ZXJwYwogCTs7Ci0gIHBvd2VycGMtKi1kYXJ3aW4qKQorICBwb3dlcnBjLSotZGFyd2luKiB8IHBvd2VycGM2NC0qLWRhcndpbiopCiAJVEFSR0VUPVBPV0VSUENfREFSV0lOOyBUQVJHRVRESVI9cG93ZXJwYwogCTs7CiAgIHBvd2VycGMtKi1haXgqIHwgcnM2MDAwLSotYWl4KikKIAlUQVJHRVQ9UE9XRVJQQ19BSVg7IFRBUkdFVERJUj1wb3dlcnBjCiAJOzsKLSAgcG93ZXJwYy0qLWZyZWVic2QqKQorICBwb3dlcnBjLSotZnJlZWJzZCogfCBwb3dlcnBjLSotb3BlbmJzZCopCiAJVEFSR0VUPVBPV0VSUENfRlJFRUJTRDsgVEFSR0VURElSPXBvd2VycGMKIAk7OworICBwb3dlcnBjNjQtKi1mcmVlYnNkKikKKwlUQVJHRVQ9UE9XRVJQQzsgVEFSR0VURElSPXBvd2VycGMKKwk7OwogICBwb3dlcnBjKi0qLXJ0ZW1zKikKIAlUQVJHRVQ9UE9XRVJQQzsgVEFSR0VURElSPXBvd2VycGMKIAk7OwpAQCAtMTY2LDYgKzE5NSwxNSBAQAogCiAgIHg4Nl82NC0qLWN5Z3dpbiogfCB4ODZfNjQtKi1taW5ndyopCiAJVEFSR0VUPVg4Nl9XSU42NDsgVEFSR0VURElSPXg4NgorCSMgQWxsIG1pbmd3L2N5Z3dpbi93aW4zMiBidWlsZHMgcmVxdWlyZSAtbm8tdW5kZWZpbmVkIGZvciBzaGFyZWRsaWIuCisJIyBXZSBtdXN0IGFsc28gY2hlY2sgd2l0aF9jcm9zc19ob3N0IHRvIGRlY2lkZSBpZiB0aGlzIGlzIGEgbmF0aXZlCisJIyBvciBjcm9zcy1idWlsZCBhbmQgc2VsZWN0IHdoZXJlIHRvIGluc3RhbGwgZGxscyBhcHByb3ByaWF0ZWx5LgorCWlmIHRlc3QgLW4gIiR3aXRoX2Nyb3NzX2hvc3QiICYmCisJICAgdGVzdCB4IiR3aXRoX2Nyb3NzX2hvc3QiICE9IHgibm8iOyB0aGVuCisJICBBTV9MVExERkxBR1M9Jy1uby11bmRlZmluZWQgLWJpbmRpciAiJCh0b29sZXhlY2xpYmRpcikiJzsKKwllbHNlCisJICBBTV9MVExERkxBR1M9Jy1uby11bmRlZmluZWQgLWJpbmRpciAiJChiaW5kaXIpIic7CisJZmkKIAk7OwogCiAgIHg4Nl82NC0qLSopCkBAIC0xOTEsNiArMjI5LDcgQEAKIEFNX0NPTkRJVElPTkFMKElBNjQsIHRlc3QgeCRUQVJHRVQgPSB4SUE2NCkKIEFNX0NPTkRJVElPTkFMKE0zMlIsIHRlc3QgeCRUQVJHRVQgPSB4TTMyUikKIEFNX0NPTkRJVElPTkFMKE02OEssIHRlc3QgeCRUQVJHRVQgPSB4TTY4SykKK0FNX0NPTkRJVElPTkFMKE1PWElFLCB0ZXN0IHgkVEFSR0VUID0geE1PWElFKQogQU1fQ09ORElUSU9OQUwoUE9XRVJQQywgdGVzdCB4JFRBUkdFVCA9IHhQT1dFUlBDKQogQU1fQ09ORElUSU9OQUwoUE9XRVJQQ19BSVgsIHRlc3QgeCRUQVJHRVQgPSB4UE9XRVJQQ19BSVgpCiBBTV9DT05ESVRJT05BTChQT1dFUlBDX0RBUldJTiwgdGVzdCB4JFRBUkdFVCA9IHhQT1dFUlBDX0RBUldJTikKQEAgLTIyOCwxNyArMjY3LDcgQEAKIAogQUNfQ19CSUdFTkRJQU4KIAotQUNfQ0FDSEVfQ0hFQ0soW2Fzc2VtYmxlciAuY2ZpIHBzZXVkby1vcCBzdXBwb3J0XSwKLSAgICBsaWJmZmlfY3ZfYXNfY2ZpX3BzZXVkb19vcCwgWwotICAgIGxpYmZmaV9jdl9hc19jZmlfcHNldWRvX29wPXVua25vd24KLSAgICBBQ19UUllfQ09NUElMRShbYXNtICgiLmNmaV9zdGFydHByb2Ncblx0LmNmaV9lbmRwcm9jIik7XSwsCi0JCSAgIFtsaWJmZmlfY3ZfYXNfY2ZpX3BzZXVkb19vcD15ZXNdLAotCQkgICBbbGliZmZpX2N2X2FzX2NmaV9wc2V1ZG9fb3A9bm9dKQotXSkKLWlmIHRlc3QgIngkbGliZmZpX2N2X2FzX2NmaV9wc2V1ZG9fb3AiID0geHllczsgdGhlbgotICAgIEFDX0RFRklORShIQVZFX0FTX0NGSV9QU0VVRE9fT1AsIDEsCi0JICAgICAgW0RlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBzdXBwb3J0cyAuY2ZpXyogZGlyZWN0aXZlcy5dKQotZmkKK0dDQ19BU19DRklfUFNFVURPX09QCiAKIGlmIHRlc3QgeCRUQVJHRVQgPSB4U1BBUkM7IHRoZW4KICAgICBBQ19DQUNIRV9DSEVDSyhbYXNzZW1ibGVyIGFuZCBsaW5rZXIgc3VwcG9ydCB1bmFsaWduZWQgcGMgcmVsYXRlZCByZWxvY3NdLApAQCAtMjc2LDcgKzMwNSw3IEBACiAJbGliZmZpX2N2X2FzX3g4Nl9wY3JlbCwgWwogCWxpYmZmaV9jdl9hc194ODZfcGNyZWw9eWVzCiAJZWNobyAnLnRleHQ7IGZvbzogbm9wOyAuZGF0YTsgLmxvbmcgZm9vLS47IC50ZXh0JyA+IGNvbmZ0ZXN0LnMKLQlpZiAkQ0MgJENGTEFHUyAtYyBjb25mdGVzdC5zIDI+JjEgfCBncmVwIC1pIHdhcm5pbmcgPiAvZGV2L251bGw7IHRoZW4KKwlpZiAkQ0MgJENGTEFHUyAtYyBjb25mdGVzdC5zIDI+JjEgfCAkRUdSRVAgLWkgJ2lsbGVnYWx8d2FybmluZycgPiAvZGV2L251bGw7IHRoZW4KIAkgICAgbGliZmZpX2N2X2FzX3g4Nl9wY3JlbD1ubwogCWZpCiAJXSkKQEAgLTI4NCw1NCArMzEzLDExNCBAQAogCUFDX0RFRklORShIQVZFX0FTX1g4Nl9QQ1JFTCwgMSwKIAkJICBbRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIHN1cHBvcnRzIFBDIHJlbGF0aXZlIHJlbG9jcy5dKQogICAgIGZpCisKKyAgICBBQ19DQUNIRV9DSEVDSyhbYXNzZW1ibGVyIC5hc2NpaSBwc2V1ZG8tb3Agc3VwcG9ydF0sCisgICAgICAgbGliZmZpX2N2X2FzX2FzY2lpX3BzZXVkb19vcCwgWworICAgICAgIGxpYmZmaV9jdl9hc19hc2NpaV9wc2V1ZG9fb3A9dW5rbm93bgorICAgICAgICMgQ2hlY2sgaWYgd2UgaGF2ZSAuYXNjaWkKKyAgICAgICBBQ19UUllfQ09NUElMRShbYXNtICgiLmFzY2lpIFxcInN0cmluZ1xcIiIpO10sLAorCQkgICAgICAgW2xpYmZmaV9jdl9hc19hc2NpaV9wc2V1ZG9fb3A9eWVzXSwKKwkJICAgICAgIFtsaWJmZmlfY3ZfYXNfYXNjaWlfcHNldWRvX29wPW5vXSkKKyAgICBdKQorICAgIGlmIHRlc3QgIngkbGliZmZpX2N2X2FzX2FzY2lpX3BzZXVkb19vcCIgPSB4eWVzOyB0aGVuCisgICAgICAgQUNfREVGSU5FKEhBVkVfQVNfQVNDSUlfUFNFVURPX09QLCAxLAorCSAgICAgICBbRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIHN1cHBvcnRzIC5hc2NpaS5dKQorICAgIGZpCisKKyAgICBBQ19DQUNIRV9DSEVDSyhbYXNzZW1ibGVyIC5zdHJpbmcgcHNldWRvLW9wIHN1cHBvcnRdLAorICAgICAgIGxpYmZmaV9jdl9hc19zdHJpbmdfcHNldWRvX29wLCBbCisgICAgICAgbGliZmZpX2N2X2FzX3N0cmluZ19wc2V1ZG9fb3A9dW5rbm93bgorICAgICAgICMgQ2hlY2sgaWYgd2UgaGF2ZSAuc3RyaW5nCisgICAgICAgQUNfVFJZX0NPTVBJTEUoW2FzbSAoIi5zdHJpbmcgXFwic3RyaW5nXFwiIik7XSwsCisJCSAgICAgICBbbGliZmZpX2N2X2FzX3N0cmluZ19wc2V1ZG9fb3A9eWVzXSwKKwkJICAgICAgIFtsaWJmZmlfY3ZfYXNfc3RyaW5nX3BzZXVkb19vcD1ub10pCisgICAgXSkKKyAgICBpZiB0ZXN0ICJ4JGxpYmZmaV9jdl9hc19zdHJpbmdfcHNldWRvX29wIiA9IHh5ZXM7IHRoZW4KKyAgICAgICBBQ19ERUZJTkUoSEFWRV9BU19TVFJJTkdfUFNFVURPX09QLCAxLAorCSAgICAgICBbRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIHN1cHBvcnRzIC5zdHJpbmcuXSkKKyAgICBmaQogZmkKIAoraWYgdGVzdCB4JFRBUkdFVCA9IHhYODZfV0lONjQ7IHRoZW4KKyAgICBMVF9TWVNfU1lNQk9MX1VTQ09SRQorICAgIGlmIHRlc3QgIngkc3lzX3N5bWJvbF91bmRlcnNjb3JlIiA9IHh5ZXM7IHRoZW4KKyAgICAgICAgQUNfREVGSU5FKFNZTUJPTF9VTkRFUlNDT1JFLCAxLCBbRGVmaW5lIGlmIHN5bWJvbHMgYXJlIHVuZGVyc2NvcmVkLl0pCisgICAgZmkKK2ZpCisKKworRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRT0wCiBjYXNlICIkdGFyZ2V0IiBpbgotICAgICAqLWFwcGxlLWRhcndpbjEwKiB8ICotKi1mcmVlYnNkKiB8ICotKi1vcGVuYnNkKiB8ICotcGMtc29sYXJpcyopCisgICAgICphcm0qLWFwcGxlLWRhcndpbiopCisgICAgICAgRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRT0xCisgICAgICAgQUNfREVGSU5FKEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUsIDEsCisgICAgICAgICAgICAgICAgIFtDYW5ub3QgdXNlIFBST1RfRVhFQyBvbiB0aGlzIHRhcmdldCwgc28sIHdlIHJldmVydCB0bworICAgICAgICAgICAgICAgICAgIGFsdGVybmF0aXZlIG1lYW5zXSkKKyAgICAgOzsKKyAgICAgKi1hcHBsZS1kYXJ3aW4xW1sxMF1dKiB8ICotKi1mcmVlYnNkKiB8ICotKi1rZnJlZWJzZCogfCAqLSotb3BlbmJzZCogfCAqLXBjLXNvbGFyaXMqKQogICAgICAgIEFDX0RFRklORShGRklfTU1BUF9FWEVDX1dSSVQsIDEsCiAgICAgICAgICAgICAgICAgIFtDYW5ub3QgdXNlIG1hbGxvYyBvbiB0aGlzIHRhcmdldCwgc28sIHdlIHJldmVydCB0bwogICAgICAgICAgICAgICAgICAgIGFsdGVybmF0aXZlIG1lYW5zXSkKICAgICAgOzsKIGVzYWMKK0FNX0NPTkRJVElPTkFMKEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUsIHRlc3QgeCRGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFID0geDEpCitBQ19TVUJTVChGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFKQogCi1BQ19DQUNIRV9DSEVDSyhbd2hldGhlciAuZWhfZnJhbWUgc2VjdGlvbiBzaG91bGQgYmUgcmVhZC1vbmx5XSwKLSAgICBsaWJmZmlfY3Zfcm9fZWhfZnJhbWUsIFsKLQlsaWJmZmlfY3Zfcm9fZWhfZnJhbWU9bm8KLQllY2hvICdleHRlcm4gdm9pZCBmb28gKHZvaWQpOyB2b2lkIGJhciAodm9pZCkgeyBmb28gKCk7IGZvbyAoKTsgfScgPiBjb25mdGVzdC5jCi0JaWYgJENDICRDRkxBR1MgLVMgLWZwaWMgLWZleGNlcHRpb25zIC1vIGNvbmZ0ZXN0LnMgY29uZnRlc3QuYyA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0JICAgIGlmIGdyZXAgJy5zZWN0aW9uLiplaF9mcmFtZS4qImEiJyBjb25mdGVzdC5zID4gL2Rldi9udWxsOyB0aGVuCi0JCWxpYmZmaV9jdl9yb19laF9mcmFtZT15ZXMKLQkgICAgZWxpZiBncmVwICcuc2VjdGlvbi4qZWhfZnJhbWUuKiNhbGxvYycgY29uZnRlc3QuYyBcCi0JCSB8IGdyZXAgLXYgJyN3cml0ZScgPiAvZGV2L251bGw7IHRoZW4KLQkJbGliZmZpX2N2X3JvX2VoX2ZyYW1lPXllcwotCSAgICBmaQoraWYgdGVzdCB4JFRBUkdFVCA9IHhYODZfNjQ7IHRoZW4KKyAgICBBQ19DQUNIRV9DSEVDSyhbYXNzZW1ibGVyIHN1cHBvcnRzIHVud2luZCBzZWN0aW9uIHR5cGVdLAorCWxpYmZmaV9jdl9hc194ODZfNjRfdW53aW5kX3NlY3Rpb25fdHlwZSwgWworCWxpYmZmaV9jdl9hc194ODZfNjRfdW53aW5kX3NlY3Rpb25fdHlwZT15ZXMKKwllY2hvICcuc2VjdGlvbiAuZWhfZnJhbWUsImEiLEB1bndpbmQnID4gY29uZnRlc3QucworCWlmICRDQyAkQ0ZMQUdTIC1jIGNvbmZ0ZXN0LnMgMj4mMSB8IGdyZXAgLWkgd2FybmluZyA+IC9kZXYvbnVsbDsgdGhlbgorCSAgICBsaWJmZmlfY3ZfYXNfeDg2XzY0X3Vud2luZF9zZWN0aW9uX3R5cGU9bm8KIAlmaQotCXJtIC1mIGNvbmZ0ZXN0LioKLSAgICBdKQotaWYgdGVzdCAieCRsaWJmZmlfY3Zfcm9fZWhfZnJhbWUiID0geHllczsgdGhlbgotICAgIEFDX0RFRklORShIQVZFX1JPX0VIX0ZSQU1FLCAxLAotCSAgICAgIFtEZWZpbmUgaWYgLmVoX2ZyYW1lIHNlY3Rpb25zIHNob3VsZCBiZSByZWFkLW9ubHkuXSkKLSAgICBBQ19ERUZJTkUoRUhfRlJBTUVfRkxBR1MsICJhIiwKLQkgICAgICBbRGVmaW5lIHRvIHRoZSBmbGFncyBuZWVkZWQgZm9yIHRoZSAuc2VjdGlvbiAuZWhfZnJhbWUgZGlyZWN0aXZlLl0pCi1lbHNlCi0gICAgQUNfREVGSU5FKEVIX0ZSQU1FX0ZMQUdTLCAiYXciLAotCSAgICAgIFtEZWZpbmUgdG8gdGhlIGZsYWdzIG5lZWRlZCBmb3IgdGhlIC5zZWN0aW9uIC5laF9mcmFtZSBkaXJlY3RpdmUuXSkKKwldKQorICAgIGlmIHRlc3QgIngkbGliZmZpX2N2X2FzX3g4Nl82NF91bndpbmRfc2VjdGlvbl90eXBlIiA9IHh5ZXM7IHRoZW4KKwlBQ19ERUZJTkUoSEFWRV9BU19YODZfNjRfVU5XSU5EX1NFQ1RJT05fVFlQRSwgMSwKKwkJICBbRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIHN1cHBvcnRzIHVud2luZCBzZWN0aW9uIHR5cGUuXSkKKyAgICBmaQogZmkKIAotQUNfQ0FDSEVfQ0hFQ0soW2ZvciBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpXSwKLSAgICBsaWJmZmlfY3ZfaGlkZGVuX3Zpc2liaWxpdHlfYXR0cmlidXRlLCBbCi0JZWNobyAnaW50IF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5ICgiaGlkZGVuIikpKSBmb28gKHZvaWQpIHsgcmV0dXJuIDE7IH0nID4gY29uZnRlc3QuYwotCWxpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGU9bm8KLQlpZiBBQ19UUllfQ09NTUFORCgke0NDLWNjfSAtV2Vycm9yIC1TIGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QucyAxPiZBU19NRVNTQUdFX0xPR19GRCk7IHRoZW4KLQkgICAgaWYgZ3JlcCAnXC5oaWRkZW4uKmZvbycgY29uZnRlc3QucyA+L2Rldi9udWxsOyB0aGVuCi0JCWxpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGU9eWVzCi0JICAgIGZpCi0JZmkKLQlybSAtZiBjb25mdGVzdC4qCi0gICAgXSkKLWlmIHRlc3QgJGxpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGUgPSB5ZXM7IHRoZW4KLSAgICBBQ19ERUZJTkUoSEFWRV9ISURERU5fVklTSUJJTElUWV9BVFRSSUJVVEUsIDEsCi0JICAgICAgW0RlZmluZSBpZiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJoaWRkZW4iKSkpIGlzIHN1cHBvcnRlZC5dKQoraWYgdGVzdCAieCRHQ0MiID0gInh5ZXMiOyB0aGVuCisgIEFDX0NBQ0hFX0NIRUNLKFt3aGV0aGVyIC5laF9mcmFtZSBzZWN0aW9uIHNob3VsZCBiZSByZWFkLW9ubHldLAorICAgICAgbGliZmZpX2N2X3JvX2VoX2ZyYW1lLCBbCisgIAlsaWJmZmlfY3Zfcm9fZWhfZnJhbWU9bm8KKyAgCWVjaG8gJ2V4dGVybiB2b2lkIGZvbyAodm9pZCk7IHZvaWQgYmFyICh2b2lkKSB7IGZvbyAoKTsgZm9vICgpOyB9JyA+IGNvbmZ0ZXN0LmMKKyAgCWlmICRDQyAkQ0ZMQUdTIC1TIC1mcGljIC1mZXhjZXB0aW9ucyAtbyBjb25mdGVzdC5zIGNvbmZ0ZXN0LmMgPiAvZGV2L251bGwgMj4mMTsgdGhlbgorICAJICAgIGlmIGdyZXAgJy5zZWN0aW9uLiplaF9mcmFtZS4qImEiJyBjb25mdGVzdC5zID4gL2Rldi9udWxsOyB0aGVuCisgIAkJbGliZmZpX2N2X3JvX2VoX2ZyYW1lPXllcworICAJICAgIGVsaWYgZ3JlcCAnLnNlY3Rpb24uKmVoX2ZyYW1lLiojYWxsb2MnIGNvbmZ0ZXN0LmMgXAorICAJCSB8IGdyZXAgLXYgJyN3cml0ZScgPiAvZGV2L251bGw7IHRoZW4KKyAgCQlsaWJmZmlfY3Zfcm9fZWhfZnJhbWU9eWVzCisgIAkgICAgZmkKKyAgCWZpCisgIAlybSAtZiBjb25mdGVzdC4qCisgICAgICBdKQorICBpZiB0ZXN0ICJ4JGxpYmZmaV9jdl9yb19laF9mcmFtZSIgPSB4eWVzOyB0aGVuCisgICAgICBBQ19ERUZJTkUoSEFWRV9ST19FSF9GUkFNRSwgMSwKKyAgCSAgICAgIFtEZWZpbmUgaWYgLmVoX2ZyYW1lIHNlY3Rpb25zIHNob3VsZCBiZSByZWFkLW9ubHkuXSkKKyAgICAgIEFDX0RFRklORShFSF9GUkFNRV9GTEFHUywgImEiLAorICAJICAgICAgW0RlZmluZSB0byB0aGUgZmxhZ3MgbmVlZGVkIGZvciB0aGUgLnNlY3Rpb24gLmVoX2ZyYW1lIGRpcmVjdGl2ZS4gIF0pCisgIGVsc2UKKyAgICAgIEFDX0RFRklORShFSF9GUkFNRV9GTEFHUywgImF3IiwKKyAgCSAgICAgIFtEZWZpbmUgdG8gdGhlIGZsYWdzIG5lZWRlZCBmb3IgdGhlIC5zZWN0aW9uIC5laF9mcmFtZSBkaXJlY3RpdmUuICBdKQorICBmaQorCisgIEFDX0NBQ0hFX0NIRUNLKFtmb3IgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiaGlkZGVuIikpKV0sCisgICAgICBsaWJmZmlfY3ZfaGlkZGVuX3Zpc2liaWxpdHlfYXR0cmlidXRlLCBbCisgIAllY2hvICdpbnQgX19hdHRyaWJ1dGVfXyAoKHZpc2liaWxpdHkgKCJoaWRkZW4iKSkpIGZvbyAodm9pZCkgeyByZXR1cm4gMSAgOyB9JyA+IGNvbmZ0ZXN0LmMKKyAgCWxpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGU9bm8KKyAgCWlmIEFDX1RSWV9DT01NQU5EKCR7Q0MtY2N9IC1XZXJyb3IgLVMgY29uZnRlc3QuYyAtbyBjb25mdGVzdC5zIDE+JkFTX01FU1NBR0VfTE9HX0ZEKTsgdGhlbgorICAJICAgIGlmIGdyZXAgJ1wuaGlkZGVuLipmb28nIGNvbmZ0ZXN0LnMgPi9kZXYvbnVsbDsgdGhlbgorICAJCWxpYmZmaV9jdl9oaWRkZW5fdmlzaWJpbGl0eV9hdHRyaWJ1dGU9eWVzCisgIAkgICAgZmkKKyAgCWZpCisgIAlybSAtZiBjb25mdGVzdC4qCisgICAgICBdKQorICBpZiB0ZXN0ICRsaWJmZmlfY3ZfaGlkZGVuX3Zpc2liaWxpdHlfYXR0cmlidXRlID0geWVzOyB0aGVuCisgICAgICBBQ19ERUZJTkUoSEFWRV9ISURERU5fVklTSUJJTElUWV9BVFRSSUJVVEUsIDEsCisgIAkgICAgICBbRGVmaW5lIGlmIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImhpZGRlbiIpKSkgaXMgc3VwcG9ydGVkLl0pCisgIGZpCiBmaQogCiBBSF9CT1RUT00oWwpAQCAtMzYwLDYgKzQ0OSw3IEBACiAgIGlmIHRlc3QgIiRlbmFibGVfZGVidWciID0gInllcyI7IHRoZW4KICAgICBBQ19ERUZJTkUoRkZJX0RFQlVHLCAxLCBbRGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgZXh0cmEgZGVidWdnaW5nLl0pCiAgIGZpKQorQU1fQ09ORElUSU9OQUwoRkZJX0RFQlVHLCB0ZXN0ICIkZW5hYmxlX2RlYnVnIiA9ICJ5ZXMiKQogCiBBQ19BUkdfRU5BQkxFKHN0cnVjdHMsCiBbICAtLWRpc2FibGUtc3RydWN0cyAgICAgICBvbWl0IGNvZGUgZm9yIHN0cnVjdCBzdXBwb3J0XSwKQEAgLTM3OSwyMSArNDY5LDI1IEBACiAgICAgQUNfREVGSU5FKFVTSU5HX1BVUklGWSwgMSwgW0RlZmluZSB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgUHVyaWZ5IGFuZCB3YW50IHRvIHN1cHByZXNzIHNwdXJpb3VzIG1lc3NhZ2VzLl0pCiAgIGZpKQogCi1pZiB0ZXN0IC1uICIkd2l0aF9jcm9zc19ob3N0IiAmJgotICAgdGVzdCB4IiR3aXRoX2Nyb3NzX2hvc3QiICE9IHgibm8iOyB0aGVuCi0gIHRvb2xleGVjZGlyPSckKGV4ZWNfcHJlZml4KS8kKHRhcmdldF9hbGlhcyknCi0gIHRvb2xleGVjbGliZGlyPSckKHRvb2xleGVjZGlyKS9saWInCi1lbHNlCi0gIHRvb2xleGVjZGlyPSckKGxpYmRpcikvZ2NjLWxpYi8kKHRhcmdldF9hbGlhcyknCi0gIHRvb2xleGVjbGliZGlyPSckKGxpYmRpciknCisjIFRoZXNlIHZhcmlhYmxlcyBhcmUgb25seSBldmVyIHVzZWQgd2hlbiB3ZSBjcm9zcy1idWlsZCB0byBYODZfV0lOMzIuCisjIEFuZCB3ZSBvbmx5IHN1cHBvcnQgdGhpcyB3aXRoIEdDQywgc28uLi4KK2lmIHRlc3QgeCIkR0NDIiAhPSB4Im5vIjsgdGhlbgorICBpZiB0ZXN0IC1uICIkd2l0aF9jcm9zc19ob3N0IiAmJgorICAgICB0ZXN0IHgiJHdpdGhfY3Jvc3NfaG9zdCIgIT0geCJubyI7IHRoZW4KKyAgICB0b29sZXhlY2Rpcj0nJChleGVjX3ByZWZpeCkvJCh0YXJnZXRfYWxpYXMpJworICAgIHRvb2xleGVjbGliZGlyPSckKHRvb2xleGVjZGlyKS9saWInCisgIGVsc2UKKyAgICB0b29sZXhlY2Rpcj0nJChsaWJkaXIpL2djYy1saWIvJCh0YXJnZXRfYWxpYXMpJworICAgIHRvb2xleGVjbGliZGlyPSckKGxpYmRpciknCisgIGZpCisgIG11bHRpX29zX2RpcmVjdG9yeT1gJENDIC1wcmludC1tdWx0aS1vcy1kaXJlY3RvcnlgCisgIGNhc2UgJG11bHRpX29zX2RpcmVjdG9yeSBpbgorICAgIC4pIDs7ICMgQXZvaWQgdHJhaWxpbmcgLy4KKyAgICAqKSB0b29sZXhlY2xpYmRpcj0kdG9vbGV4ZWNsaWJkaXIvJG11bHRpX29zX2RpcmVjdG9yeSA7OworICBlc2FjCisgIEFDX1NVQlNUKHRvb2xleGVjZGlyKQorICBBQ19TVUJTVCh0b29sZXhlY2xpYmRpcikKIGZpCi1tdWx0aV9vc19kaXJlY3Rvcnk9YCRDQyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5YAotY2FzZSAkbXVsdGlfb3NfZGlyZWN0b3J5IGluCi0gIC4pIDs7ICMgQXZvaWQgdHJhaWxpbmcgLy4KLSAgKikgdG9vbGV4ZWNsaWJkaXI9JHRvb2xleGVjbGliZGlyLyRtdWx0aV9vc19kaXJlY3RvcnkgOzsKLWVzYWMKLUFDX1NVQlNUKHRvb2xleGVjZGlyKQotQUNfU1VCU1QodG9vbGV4ZWNsaWJkaXIpCiAKIGlmIHRlc3QgIiR7bXVsdGlsaWJ9IiA9ICJ5ZXMiOyB0aGVuCiAgIG11bHRpbGliX2FyZz0iLS1lbmFibGUtbXVsdGlsaWIiCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2RlcGNvbXAgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2RlcGNvbXAKaW5kZXggY2E1ZWE0ZS4uZGY4ZWVhNyAxMDA3NTUKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9kZXBjb21wCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZGVwY29tcApAQCAtMSwxMCArMSwxMCBAQAogIyEgL2Jpbi9zaAogIyBkZXBjb21wIC0gY29tcGlsZSBhIHByb2dyYW0gZ2VuZXJhdGluZyBkZXBlbmRlbmNpZXMgYXMgc2lkZS1lZmZlY3RzCiAKLXNjcmlwdHZlcnNpb249MjAwNi0xMC0xNS4xOAorc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIxOyAjIFVUQwogCi0jIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiBGcmVlIFNvZnR3YXJlCi0jIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAxOTk5LCAyMDAwLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA5IEZyZWUKKyMgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC0xNyw5ICsxNyw3IEBACiAjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAKICMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQotIyAwMjExMC0xMzAxLCBVU0EuCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCiAjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKICMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCkBAIC04Nyw2ICs4NSwxNSBAQAogICAgZGVwbW9kZT1kYXNobXN0ZG91dAogZmkKIAorY3lncGF0aF91PSJjeWdwYXRoIC11IC1mIC0iCitpZiB0ZXN0ICIkZGVwbW9kZSIgPSBtc3ZjbXN5czsgdGhlbgorICAgIyBUaGlzIGlzIGp1c3QgbGlrZSBtc3Zpc3VhbGNwcCBidXQgdy9vIGN5Z3BhdGggdHJhbnNsYXRpb24uCisgICAjIEp1c3QgY29udmVydCB0aGUgYmFja3NsYXNoLWVzY2FwZWQgYmFja3NsYXNoZXMgdG8gc2luZ2xlIGZvcndhcmQKKyAgICMgc2xhc2hlcyB0byBzYXRpc2Z5IGRlcGVuZC5tNAorICAgY3lncGF0aF91PSJzZWQgcyxcXFxcXFxcXCwvLGciCisgICBkZXBtb2RlPW1zdmlzdWFsY3BwCitmaQorCiBjYXNlICIkZGVwbW9kZSIgaW4KIGdjYzMpCiAjIyBnY2MgMyBpbXBsZW1lbnRzIGRlcGVuZGVuY3kgdHJhY2tpbmcgdGhhdCBkb2VzIGV4YWN0bHkgd2hhdApAQCAtMTkyLDE0ICsxOTksMTQgQEAKICcgPCAiJHRtcGRlcGZpbGUiIFwKICAgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1lICdzLyMuKiQvLycgLWUgJy9eJC8gZCcgfCBcCiAgICAgdHIgJwotJyAnICcgPj4gJGRlcGZpbGUKLSAgICBlY2hvID4+ICRkZXBmaWxlCisnICcgJyA+PiAiJGRlcGZpbGUiCisgICAgZWNobyA+PiAiJGRlcGZpbGUiCiAKICAgICAjIFRoZSBzZWNvbmQgcGFzcyBnZW5lcmF0ZXMgYSBkdW1teSBlbnRyeSBmb3IgZWFjaCBoZWFkZXIgZmlsZS4KICAgICB0ciAnICcgJwogJyA8ICIkdG1wZGVwZmlsZSIgXAogICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAncy8jLiokLy8nIC1lICcvXiQvIGQnIC1lICdzLyQvOi8nIFwKLSAgID4+ICRkZXBmaWxlCisgICA+PiAiJGRlcGZpbGUiCiAgIGVsc2UKICAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAogICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQpAQCAtMjE1LDM0ICsyMjIsMzkgQEAKICAgIyBjdXJyZW50IGRpcmVjdG9yeS4gIEFsc28sIHRoZSBBSVggY29tcGlsZXIgcHV0cyBgJG9iamVjdDonIGF0IHRoZQogICAjIHN0YXJ0IG9mIGVhY2ggbGluZTsgJG9iamVjdCBkb2Vzbid0IGhhdmUgZGlyZWN0b3J5IGluZm9ybWF0aW9uLgogICAjIFZlcnNpb24gNiB1c2VzIHRoZSBkaXJlY3RvcnkgaW4gYm90aCBjYXNlcy4KLSAgc3RyaXBwZWQ9YGVjaG8gIiRvYmplY3QiIHwgc2VkICdzL1woLipcKVwuLiokL1wxLydgCi0gIHRtcGRlcGZpbGU9IiRzdHJpcHBlZC51IgorICBkaXI9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1lICdzfC9bXi9dKiR8L3wnYAorICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KKyAgYmFzZT1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8Xi4qL3x8JyAtZSAncy9cLm8kLy8nIC1lICdzL1wubG8kLy8nYAogICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UudQorICAgIHRtcGRlcGZpbGUyPSRiYXNlLnUKKyAgICB0bXBkZXBmaWxlMz0kZGlyLmxpYnMvJGJhc2UudQogICAgICIkQCIgLVdjLC1NCiAgIGVsc2UKKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2UudQorICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS51CisgICAgdG1wZGVwZmlsZTM9JGRpciRiYXNlLnUKICAgICAiJEAiIC1NCiAgIGZpCiAgIHN0YXQ9JD8KIAotICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4gOgotICBlbHNlCi0gICAgc3RyaXBwZWQ9YGVjaG8gIiRzdHJpcHBlZCIgfCBzZWQgJ3MsXi4qLywsJ2AKLSAgICB0bXBkZXBmaWxlPSIkc3RyaXBwZWQudSIKLSAgZmkKLQogICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoKICAgZWxzZQotICAgIHJtIC1mICIkdG1wZGVwZmlsZSIKKyAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgogICAgIGV4aXQgJHN0YXQKICAgZmkKIAorICBmb3IgdG1wZGVwZmlsZSBpbiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIiAiJHRtcGRlcGZpbGUzIgorICBkbworICAgIHRlc3QgLWYgIiR0bXBkZXBmaWxlIiAmJiBicmVhaworICBkb25lCiAgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgotICAgIG91dG5hbWU9IiRzdHJpcHBlZC5vIgogICAgICMgRWFjaCBsaW5lIGlzIG9mIHRoZSBmb3JtIGBmb28ubzogZGVwZW5kZW50LmgnLgogICAgICMgRG8gdHdvIHBhc3Nlcywgb25lIHRvIGp1c3QgY2hhbmdlIHRoZXNlIHRvCiAgICAgIyBgJG9iamVjdDogZGVwZW5kZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgotICAgIHNlZCAtZSAicyxeJG91dG5hbWU6LCRvYmplY3QgOiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSAgICBzZWQgLWUgInMsXiRvdXRuYW1lOiBcKC4qXCkkLFwxOiwiIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCisgICAgc2VkIC1lICJzLF4uKlwuW2Etel0qOiwkb2JqZWN0OiwiIDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKKyAgICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFjZSBpbiB0aGUgW10uCisgICAgc2VkIC1lICdzLF4uKlwuW2Etel0qOlsJIF0qLCwnIC1lICdzLCQsOiwnIDwgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCiAgIGVsc2UKICAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55IGRlcGVuZGVuY2llcywgc28ganVzdAogICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRoZSBNYWtlZmlsZQpAQCAtMzIzLDcgKzMzNSwxMiBAQAogICBpZiB0ZXN0IC1mICIkdG1wZGVwZmlsZSI7IHRoZW4KICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKICAgICAjIEFkZCBgZGVwZW5kZW50Lmg6JyBsaW5lcy4KLSAgICBzZWQgLW5lICcyLCR7OyBzL14gKi8vOyBzLyBcXCokLy87IHMvJC86LzsgcDt9JyAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKKyAgICBzZWQgLW5lICcyLCR7CisJICAgICAgIHMvXiAqLy8KKwkgICAgICAgcy8gXFwqJC8vCisJICAgICAgIHMvJC86LworCSAgICAgICBwCisJICAgICB9JyAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKICAgZWxzZQogICAgIGVjaG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCiAgIGZpCkBAIC0zOTksNyArNDE2LDcgQEAKIAogICAjIFJlbW92ZSB0aGUgY2FsbCB0byBMaWJ0b29sLgogICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCisgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KICAgICAgIHNoaWZ0CiAgICAgZG9uZQogICAgIHNoaWZ0CkBAIC00NTAsMzIgKzQ2NywzOSBAQAogICAiJEAiIHx8IGV4aXQgJD8KICAgIyBSZW1vdmUgYW55IExpYnRvb2wgY2FsbAogICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCisgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KICAgICAgIHNoaWZ0CiAgICAgZG9uZQogICAgIHNoaWZ0CiAgIGZpCiAgICMgWCBtYWtlZGVwZW5kCiAgIHNoaWZ0Ci0gIGNsZWFyZWQ9bm8KLSAgZm9yIGFyZyBpbiAiJEAiOyBkbworICBjbGVhcmVkPW5vIGVhdD1ubworICBmb3IgYXJnCisgIGRvCiAgICAgY2FzZSAkY2xlYXJlZCBpbgogICAgIG5vKQogICAgICAgc2V0ICIiOyBzaGlmdAogICAgICAgY2xlYXJlZD15ZXMgOzsKICAgICBlc2FjCisgICAgaWYgdGVzdCAkZWF0ID0geWVzOyB0aGVuCisgICAgICBlYXQ9bm8KKyAgICAgIGNvbnRpbnVlCisgICAgZmkKICAgICBjYXNlICIkYXJnIiBpbgogICAgIC1EKnwtSSopCiAgICAgICBzZXQgZm5vcmQgIiRAIiAiJGFyZyI7IHNoaWZ0IDs7CiAgICAgIyBTdHJpcCBhbnkgb3B0aW9uIHRoYXQgbWFrZWRlcGVuZCBtYXkgbm90IHVuZGVyc3RhbmQuICBSZW1vdmUKICAgICAjIHRoZSBvYmplY3QgdG9vLCBvdGhlcndpc2UgbWFrZWRlcGVuZCB3aWxsIHBhcnNlIGl0IGFzIGEgc291cmNlIGZpbGUuCisgICAgLWFyY2gpCisgICAgICBlYXQ9eWVzIDs7CiAgICAgLSp8JG9iamVjdCkKICAgICAgIDs7CiAgICAgKikKICAgICAgIHNldCBmbm9yZCAiJEAiICIkYXJnIjsgc2hpZnQgOzsKICAgICBlc2FjCiAgIGRvbmUKLSAgb2JqX3N1ZmZpeD0iYGVjaG8gJG9iamVjdCB8IHNlZCAncy9eLipcLi8uLydgIgorICBvYmpfc3VmZml4PWBlY2hvICIkb2JqZWN0IiB8IHNlZCAncy9eLipcLi8uLydgCiAgIHRvdWNoICIkdG1wZGVwZmlsZSIKICAgJHtNQUtFREVQRU5ELW1ha2VkZXBlbmR9IC1vIiRvYmpfc3VmZml4IiAtZiIkdG1wZGVwZmlsZSIgIiRAIgogICBybSAtZiAiJGRlcGZpbGUiCkBAIC00OTUsNyArNTE5LDcgQEAKIAogICAjIFJlbW92ZSB0aGUgY2FsbCB0byBMaWJ0b29sLgogICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSAgICB3aGlsZSB0ZXN0ICQxICE9ICctLW1vZGU9Y29tcGlsZSc7IGRvCisgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KICAgICAgIHNoaWZ0CiAgICAgZG9uZQogICAgIHNoaWZ0CkBAIC01MzMsMTMgKzU1NywyNyBAQAogCiBtc3Zpc3VhbGNwcCkKICAgIyBJbXBvcnRhbnQgbm90ZTogaW4gb3JkZXIgdG8gc3VwcG9ydCB0aGlzIG1vZGUsIGEgY29tcGlsZXIgKm11c3QqCi0gICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRvdXQsIHJlZ2FyZGxlc3Mgb2YgLW8sCi0gICMgYmVjYXVzZSB3ZSBtdXN0IHVzZSAtbyB3aGVuIHJ1bm5pbmcgbGlidG9vbC4KKyAgIyBhbHdheXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KICAgIiRAIiB8fCBleGl0ICQ/CisKKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCisgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KKyAgICAgIHNoaWZ0CisgICAgZG9uZQorICAgIHNoaWZ0CisgIGZpCisKICAgSUZTPSIgIgogICBmb3IgYXJnCiAgIGRvCiAgICAgY2FzZSAiJGFyZyIgaW4KKyAgICAtbykKKyAgICAgIHNoaWZ0CisgICAgICA7OworICAgICRvYmplY3QpCisgICAgICBzaGlmdAorICAgICAgOzsKICAgICAiLUdtInwiL0dtInwiLUdpInwiL0dpInwiLVpJInwiL1pJIikKIAlzZXQgZm5vcmQgIiRAIgogCXNoaWZ0CkBAIC01NTIsMTYgKzU5MCwyMyBAQAogCTs7CiAgICAgZXNhYwogICBkb25lCi0gICIkQCIgLUUgfAotICBzZWQgLW4gJy9eI2xpbmUgWzAtOV1bMC05XSogIlwoW14iXSpcKSIvIHM6OmVjaG8gImBjeWdwYXRoIC11IFxcIlwxXFwiYCI6cCcgfCBzb3J0IHwgdW5pcSA+ICIkdG1wZGVwZmlsZSIKKyAgIiRAIiAtRSAyPi9kZXYvbnVsbCB8CisgIHNlZCAtbiAnL14jbGluZSBbMC05XVswLTldKiAiXChbXiJdKlwpIi8gczo6XDE6cCcgfCAkY3lncGF0aF91IHwgc29ydCAtdSA+ICIkdG1wZGVwZmlsZSIKICAgcm0gLWYgIiRkZXBmaWxlIgogICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotICAuICIkdG1wZGVwZmlsZSIgfCBzZWQgJ3MlICVcXCAlZycgfCBzZWQgLW4gJy9eXCguKlwpJC8gczo6CVwxIFxcOnAnID4+ICIkZGVwZmlsZSIKKyAgc2VkIDwgIiR0bXBkZXBmaWxlIiAtbiAtZSAncyUgJVxcICVnJyAtZSAnL15cKC4qXCkkLyBzOjoJXDEgXFw6cCcgPj4gIiRkZXBmaWxlIgogICBlY2hvICIJIiA+PiAiJGRlcGZpbGUiCi0gIC4gIiR0bXBkZXBmaWxlIiB8IHNlZCAncyUgJVxcICVnJyB8IHNlZCAtbiAnL15cKC4qXCkkLyBzOjpcMVw6OnAnID4+ICIkZGVwZmlsZSIKKyAgc2VkIDwgIiR0bXBkZXBmaWxlIiAtbiAtZSAncyUgJVxcICVnJyAtZSAnL15cKC4qXCkkLyBzOjpcMVw6OnAnID4+ICIkZGVwZmlsZSIKICAgcm0gLWYgIiR0bXBkZXBmaWxlIgogICA7OwogCittc3ZjbXN5cykKKyAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8gbGV0IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5CisgICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlwdC4gIFRoaXMgY2FzZSB3aWxsIG5ldmVyIGJlIHJ1biwKKyAgIyBzaW5jZSBpdCBpcyBjaGVja2VkIGZvciBhYm92ZS4KKyAgZXhpdCAxCisgIDs7CisKIG5vbmUpCiAgIGV4ZWMgIiRAIgogICA7OwpAQCAtNTgwLDUgKzYyNSw2IEBACiAjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKICMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgogIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKLSMgdGltZS1zdGFtcC1lbmQ6ICIkIgorIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIKKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgogIyBFbmQ6CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2RvYy9saWJmZmkuaW5mbyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZG9jL2xpYmZmaS5pbmZvCmluZGV4IDg5NmE1ZWMuLjQwMmY3NjAgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZG9jL2xpYmZmaS5pbmZvCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZG9jL2xpYmZmaS5pbmZvCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZG9jL2xpYmZmaS50ZXhpIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9kb2MvbGliZmZpLnRleGkKaW5kZXggOWZhNWIxNy4uZjBlNjUxNyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9kb2MvbGliZmZpLnRleGkKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9kb2MvbGliZmZpLnRleGkKQEAgLTE5LDcgKzE5LDcgQEAKIFRoaXMgbWFudWFsIGlzIGZvciBMaWJmZmksIGEgcG9ydGFibGUgZm9yZWlnbi1mdW5jdGlvbiBpbnRlcmZhY2UKIGxpYnJhcnkuCiAKLUNvcHlyaWdodCBAY29weXJpZ2h0e30gMjAwOCwgMjAxMCBSZWQgSGF0LCBJbmMuCitDb3B5cmlnaHQgQGNvcHlyaWdodHt9IDIwMDgsIDIwMTAsIDIwMTEgUmVkIEhhdCwgSW5jLgogCiBAcXVvdGF0aW9uCiBQZXJtaXNzaW9uIGlzIGdyYW50ZWQgdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IHRoaXMgZG9jdW1lbnQKQEAgLTEzMyw4ICsxMzMsNiBAQAogeW91IHdhbnQuICBAcmVme011bHRpcGxlIEFCSXN9IGZvciBtb3JlIGluZm9ybWF0aW9uLgogCiBAdmFye25hcmdzfSBpcyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyB0aGF0IHRoaXMgZnVuY3Rpb24gYWNjZXB0cy4KLUBzYW1we2xpYmZmaX0gZG9lcyBub3QgeWV0IGhhbmRsZSB2YXJhcmdzIGZ1bmN0aW9uczsgc2VlIEByZWZ7TWlzc2luZwotRmVhdHVyZXN9IGZvciBtb3JlIGluZm9ybWF0aW9uLgogCiBAdmFye3J0eXBlfSBpcyBhIHBvaW50ZXIgdG8gYW4gQGNvZGV7ZmZpX3R5cGV9IHN0cnVjdHVyZSB0aGF0CiBkZXNjcmliZXMgdGhlIHJldHVybiB0eXBlIG9mIHRoZSBmdW5jdGlvbi4gIEB4cmVme1R5cGVzfS4KQEAgLTE1MCw2ICsxNDgsMzAgQEAKIGlzIGludmFsaWQuCiBAZW5kIGRlZnVuCiAKK0lmIHRoZSBmdW5jdGlvbiBiZWluZyBjYWxsZWQgaXMgdmFyaWFkaWMgKHZhcmFyZ3MpIHRoZW4KK0Bjb2Rle2ZmaV9wcmVwX2NpZl92YXJ9IG11c3QgYmUgdXNlZCBpbnN0ZWFkIG9mIEBjb2Rle2ZmaV9wcmVwX2NpZn0uCisKK0BmaW5kZXggZmZpX3ByZXBfY2lmX3ZhcgorQGRlZnVuIGZmaV9zdGF0dXMgZmZpX3ByZXBfY2lmX3ZhciAoZmZpX2NpZiAqQHZhcntjaWZ9LCBmZmlfYWJpIHZhcnthYml9LCB1bnNpZ25lZCBpbnQgQHZhcntuZml4ZWRhcmdzfSwgdW5zaWduZWQgaW50IHZhcntudG90YWxhcmdzfSwgZmZpX3R5cGUgKkB2YXJ7cnR5cGV9LCBmZmlfdHlwZSAqKkB2YXJ7YXJndHlwZXN9KQorVGhpcyBpbml0aWFsaXplcyBAdmFye2NpZn0gYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBwYXJhbWV0ZXJzIGZvcgorYSBjYWxsIHRvIGEgdmFyaWFkaWMgZnVuY3Rpb24uICBJbiBnZW5lcmFsIGl0J3Mgb3BlcmF0aW9uIGlzIHRoZQorc2FtZSBhcyBmb3IgQGNvZGV7ZmZpX3ByZXBfY2lmfSBleGNlcHQgdGhhdDoKKworQHZhcntuZml4ZWRhcmdzfSBpcyB0aGUgbnVtYmVyIG9mIGZpeGVkIGFyZ3VtZW50cywgcHJpb3IgdG8gYW55Cit2YXJpYWRpYyBhcmd1bWVudHMuICBJdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLgorCitAdmFye250b3RhbGFyZ3N9IHRoZSB0b3RhbCBudW1iZXIgb2YgYXJndW1lbnRzLCBpbmNsdWRpbmcgdmFyaWFkaWMKK2FuZCBmaXhlZCBhcmd1bWVudHMuCisKK05vdGUgdGhhdCwgZGlmZmVyZW50IGNpZidzIG11c3QgYmUgcHJlcHBlZCBmb3IgY2FsbHMgdG8gdGhlIHNhbWUKK2Z1bmN0aW9uIHdoZW4gZGlmZmVyZW50IG51bWJlcnMgb2YgYXJndW1lbnRzIGFyZSBwYXNzZWQuCisKK0Fsc28gbm90ZSB0aGF0IGEgY2FsbCB0byBAY29kZXtmZmlfcHJlcF9jaWZfdmFyfSB3aXRoCitAdmFye25maXhlZGFyZ3N9PUB2YXJ7bm90b3RhbGFyZ3N9IGlzIE5PVCBlcXVpdmFsZW50IHRvIGEgY2FsbCB0bworQGNvZGV7ZmZpX3ByZXBfY2lmfS4KKworQGVuZCBkZWZ1bgorCiAKIFRvIGNhbGwgYSBmdW5jdGlvbiB1c2luZyBhbiBpbml0aWFsaXplZCBAY29kZXtmZmlfY2lmfSwgdXNlIHRoZQogQGNvZGV7ZmZpX2NhbGx9IGZ1bmN0aW9uOgpAQCAtMTcxLDcgKzE5Myw5IEBACiBAdmFye2F2YWx1ZXN9IGlzIGEgdmVjdG9yIG9mIEBjb2Rle3ZvaWQgKn0gcG9pbnRlcnMgdGhhdCBwb2ludCB0byB0aGUKIG1lbW9yeSBsb2NhdGlvbnMgaG9sZGluZyB0aGUgYXJndW1lbnQgdmFsdWVzIGZvciBhIGNhbGwuICBJZiBAdmFye2NpZn0KIGRlY2xhcmVzIHRoYXQgdGhlIGZ1bmN0aW9uIGhhcyBubyBhcmd1bWVudHMgKGkuZS4sIEB2YXJ7bmFyZ3N9IHdhcyAwKSwKLXRoZW4gQHZhcnthdmFsdWVzfSBpcyBpZ25vcmVkLgordGhlbiBAdmFye2F2YWx1ZXN9IGlzIGlnbm9yZWQuICBOb3RlIHRoYXQgYXJndW1lbnQgdmFsdWVzIG1heSBiZQorbW9kaWZpZWQgYnkgdGhlIGNhbGxlZSAoZm9yIGluc3RhbmNlLCBzdHJ1Y3RzIHBhc3NlZCBieSB2YWx1ZSk7IHRoZQorYnVyZGVuIG9mIGNvcHlpbmcgcGFzcy1ieS12YWx1ZSBhcmd1bWVudHMgaXMgcGxhY2VkIG9uIHRoZSBjYWxsZXIuCiBAZW5kIGRlZnVuCiAKIApAQCAtNDM4LDcgKzQ2Miw3IEBACiBoZWFwLiAgTWVtb3J5IG1hbmFnZW1lbnQgZm9yIGNsb3N1cmVzIGlzIGhhbmRsZWQgYnkgYSBwYWlyIG9mCiBmdW5jdGlvbnM6CiAKLUBmaW5kZXggZmZpX2Nsb3N1cmVfYWxsb2NhCitAZmluZGV4IGZmaV9jbG9zdXJlX2FsbG9jCiBAZGVmdW4gdm9pZCAqZmZpX2Nsb3N1cmVfYWxsb2MgKHNpemVfdCBAdmFye3NpemV9LCB2b2lkICoqQHZhcntjb2RlfSkKIEFsbG9jYXRlIGEgY2h1bmsgb2YgbWVtb3J5IGhvbGRpbmcgQHZhcntzaXplfSBieXRlcy4gIFRoaXMgcmV0dXJucyBhCiBwb2ludGVyIHRvIHRoZSB3cml0YWJsZSBhZGRyZXNzLCBhbmQgc2V0cyAqQHZhcntjb2RlfSB0byB0aGUKQEAgLTU3MCw5ICs1OTQsNyBAQAogCiBAaXRlbWl6ZSBAYnVsbGV0CiBAaXRlbQotVGhlcmUgaXMgbm8gc3VwcG9ydCBmb3IgY2FsbGluZyB2YXJhcmdzIGZ1bmN0aW9ucy4gIFRoaXMgbWF5IHdvcmsgb24KLXNvbWUgcGxhdGZvcm1zLCBkZXBlbmRpbmcgb24gaG93IHRoZSBBQkkgaXMgZGVmaW5lZCwgYnV0IGl0IGlzIG5vdAotcmVsaWFibGUuCitWYXJpYWRpYyBjbG9zdXJlcy4KIAogQGl0ZW0KIFRoZXJlIGlzIG5vIHN1cHBvcnQgZm9yIGJpdCBmaWVsZHMgaW4gc3RydWN0dXJlcy4KQEAgLTU4OSw2ICs2MTEsOCBAQAogQGMgYW55dGhpbmcgZWxzZT8KIEBlbmQgaXRlbWl6ZQogCitOb3RlIHRoYXQgdmFyaWFkaWMgc3VwcG9ydCBpcyB2ZXJ5IG5ldyBhbmQgdGVzdGVkIG9uIGEgcmVsYXRpdmVseQorc21hbGwgbnVtYmVyIG9mIHBsYXRmb3Jtcy4KIAogQG5vZGUgSW5kZXgKIEB1bm51bWJlcmVkIEluZGV4CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2RvYy9zdGFtcC12dGkgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2RvYy9zdGFtcC12dGkKaW5kZXggODFkMGI3OS4uZTI1OWExMiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9kb2Mvc3RhbXAtdnRpCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZG9jL3N0YW1wLXZ0aQpAQCAtMSw0ICsxLDQgQEAKLUBzZXQgVVBEQVRFRCAxNCBGZWJydWFyeSAyMDA4Ci1Ac2V0IFVQREFURUQtTU9OVEggRmVicnVhcnkgMjAwOAotQHNldCBFRElUSU9OIDMuMC44Ci1Ac2V0IFZFUlNJT04gMy4wLjgKK0BzZXQgVVBEQVRFRCAxMSBBcHJpbCAyMDEyCitAc2V0IFVQREFURUQtTU9OVEggQXByaWwgMjAxMgorQHNldCBFRElUSU9OIDMuMC4xMQorQHNldCBWRVJTSU9OIDMuMC4xMQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9kb2MvdmVyc2lvbi50ZXhpIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9kb2MvdmVyc2lvbi50ZXhpCmluZGV4IDgxZDBiNzkuLmUyNTlhMTIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZG9jL3ZlcnNpb24udGV4aQorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2RvYy92ZXJzaW9uLnRleGkKQEAgLTEsNCArMSw0IEBACi1Ac2V0IFVQREFURUQgMTQgRmVicnVhcnkgMjAwOAotQHNldCBVUERBVEVELU1PTlRIIEZlYnJ1YXJ5IDIwMDgKLUBzZXQgRURJVElPTiAzLjAuOAotQHNldCBWRVJTSU9OIDMuMC44CitAc2V0IFVQREFURUQgMTEgQXByaWwgMjAxMgorQHNldCBVUERBVEVELU1PTlRIIEFwcmlsIDIwMTIKK0BzZXQgRURJVElPTiAzLjAuMTEKK0BzZXQgVkVSU0lPTiAzLjAuMTEKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZmZpY29uZmlnLmguaW4gYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2ZmaWNvbmZpZy5oLmluCmluZGV4IGUwM2JiZjkuLjE2OGViYzMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZmZpY29uZmlnLmguaW4KKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9mZmljb25maWcuaC5pbgpAQCAtMTcsNiArMTcsOSBAQAogLyogRGVmaW5lIHRoaXMgaWYgeW91IHdhbnQgZXh0cmEgZGVidWdnaW5nLiAqLwogI3VuZGVmIEZGSV9ERUJVRwogCisvKiBDYW5ub3QgdXNlIFBST1RfRVhFQyBvbiB0aGlzIHRhcmdldCwgc28sIHdlIHJldmVydCB0byBhbHRlcm5hdGl2ZSBtZWFucyAqLworI3VuZGVmIEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUKKwogLyogQ2Fubm90IHVzZSBtYWxsb2Mgb24gdGhpcyB0YXJnZXQsIHNvLCB3ZSByZXZlcnQgdG8gYWx0ZXJuYXRpdmUgbWVhbnMgKi8KICN1bmRlZiBGRklfTU1BUF9FWEVDX1dSSVQKIApAQCAtMzMsNiArMzYsOSBAQAogICAgKi8KICN1bmRlZiBIQVZFX0FMTE9DQV9ICiAKKy8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBzdXBwb3J0cyAuYXNjaWkuICovCisjdW5kZWYgSEFWRV9BU19BU0NJSV9QU0VVRE9fT1AKKwogLyogRGVmaW5lIGlmIHlvdXIgYXNzZW1ibGVyIHN1cHBvcnRzIC5jZmlfKiBkaXJlY3RpdmVzLiAqLwogI3VuZGVmIEhBVkVfQVNfQ0ZJX1BTRVVET19PUAogCkBAIC00Myw2ICs0OSwxMiBAQAogICAgKi8KICN1bmRlZiBIQVZFX0FTX1NQQVJDX1VBX1BDUkVMCiAKKy8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBzdXBwb3J0cyAuc3RyaW5nLiAqLworI3VuZGVmIEhBVkVfQVNfU1RSSU5HX1BTRVVET19PUAorCisvKiBEZWZpbmUgaWYgeW91ciBhc3NlbWJsZXIgc3VwcG9ydHMgdW53aW5kIHNlY3Rpb24gdHlwZS4gKi8KKyN1bmRlZiBIQVZFX0FTX1g4Nl82NF9VTldJTkRfU0VDVElPTl9UWVBFCisKIC8qIERlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBzdXBwb3J0cyBQQyByZWxhdGl2ZSByZWxvY3MuICovCiAjdW5kZWYgSEFWRV9BU19YODZfUENSRUwKIApAQCAtMTQ4LDYgKzE2MCw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgQU5TSSBDIGhlYWRlciBmaWxlcy4gKi8KICN1bmRlZiBTVERDX0hFQURFUlMKIAorLyogRGVmaW5lIGlmIHN5bWJvbHMgYXJlIHVuZGVyc2NvcmVkLiAqLworI3VuZGVmIFNZTUJPTF9VTkRFUlNDT1JFCisKIC8qIERlZmluZSB0aGlzIGlmIHlvdSBhcmUgdXNpbmcgUHVyaWZ5IGFuZCB3YW50IHRvIHN1cHByZXNzIHNwdXJpb3VzIG1lc3NhZ2VzLgogICAgKi8KICN1bmRlZiBVU0lOR19QVVJJRlkKQEAgLTE2Nyw2ICsxODIsOSBAQAogIyBlbmRpZgogI2VuZGlmCiAKKy8qIERlZmluZSB0byBgdW5zaWduZWQgaW50JyBpZiA8c3lzL3R5cGVzLmg+IGRvZXMgbm90IGRlZmluZS4gKi8KKyN1bmRlZiBzaXplX3QKKwogCiAjaWZkZWYgSEFWRV9ISURERU5fVklTSUJJTElUWV9BVFRSSUJVVEUKICNpZmRlZiBMSUJGRklfQVNNCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2dlbmVyYXRlLWlvcy1zb3VyY2UtYW5kLWhlYWRlcnMucHkgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2dlbmVyYXRlLWlvcy1zb3VyY2UtYW5kLWhlYWRlcnMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzJiY2E3MwotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvZ2VuZXJhdGUtaW9zLXNvdXJjZS1hbmQtaGVhZGVycy5weQpAQCAtMCwwICsxLDE2MCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgcmUKK2ltcG9ydCBvcworaW1wb3J0IGVycm5vCitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCBzeXMKKworY2xhc3MgUGxhdGZvcm0ob2JqZWN0KToKKyAgICBwYXNzCisKK3Nka19yZSA9IHJlLmNvbXBpbGUocicuKi1zZGsgKFthLXpBLVowLTkuXSopJykKKworZGVmIHNka2luZm8oc2RrbmFtZSk6CisgICAgcmV0ID0ge30KKyAgICBmb3IgbGluZSBpbiBzdWJwcm9jZXNzLlBvcGVuKFsneGNvZGVidWlsZCcsICctc2RrJywgc2RrbmFtZSwgJy12ZXJzaW9uJ10sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpLnN0ZG91dDoKKyAgICAgICAga3YgPSBsaW5lLnN0cmlwKCkuc3BsaXQoJzogJywgMSkKKyAgICAgICAgaWYgbGVuKGt2KSA9PSAyOgorICAgICAgICAgICAgayx2ID0ga3YKKyAgICAgICAgICAgIHJldFtrXSA9IHYKKyAgICByZXR1cm4gcmV0CisKK3NpbV9zZGtfaW5mbyA9IHNka2luZm8oJ2lwaG9uZXNpbXVsYXRvcicpCitkZXZpY2Vfc2RrX2luZm8gPSBzZGtpbmZvKCdpcGhvbmVvcycpCisKK2RlZiBsYXRlc3Rfc2RrcygpOgorICAgIGxhdGVzdF9zaW0gPSBOb25lCisgICAgbGF0ZXN0X2RldmljZSA9IE5vbmUKKyAgICBmb3IgbGluZSBpbiBzdWJwcm9jZXNzLlBvcGVuKFsneGNvZGVidWlsZCcsICctc2hvd3Nka3MnXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkuc3Rkb3V0OgorICAgICAgICBtYXRjaCA9IHNka19yZS5tYXRjaChsaW5lKQorICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgIGlmICdTaW11bGF0b3InIGluIGxpbmU6CisgICAgICAgICAgICAgICAgbGF0ZXN0X3NpbSA9IG1hdGNoLmdyb3VwKDEpCisgICAgICAgICAgICBlbGlmICdpT1MnIGluIGxpbmU6CisgICAgICAgICAgICAgICAgbGF0ZXN0X2RldmljZSA9IG1hdGNoLmdyb3VwKDEpCisKKyAgICByZXR1cm4gbGF0ZXN0X3NpbSwgbGF0ZXN0X2RldmljZQorCitzaW1fc2RrLCBkZXZpY2Vfc2RrID0gbGF0ZXN0X3Nka3MoKQorCitjbGFzcyBzaW11bGF0b3JfcGxhdGZvcm0oUGxhdGZvcm0pOgorICAgIHNkaz0naXBob25lc2ltdWxhdG9yJworICAgIGFyY2ggPSAnaTM4NicKKyAgICBuYW1lID0gJ3NpbXVsYXRvcicKKyAgICB0cmlwbGUgPSAnaTM4Ni1hcHBsZS1kYXJ3aW4xMCcKKyAgICBzZGtyb290ID0gc2ltX3Nka19pbmZvWydQYXRoJ10KKworICAgIHByZWZpeCA9ICIjaWYgIWRlZmluZWQoX19hcm1fXykgJiYgZGVmaW5lZChfX2kzODZfXylcblxuIgorICAgIHN1ZmZpeCA9ICJcblxuI2VuZGlmIgorCitjbGFzcyBkZXZpY2VfcGxhdGZvcm0oUGxhdGZvcm0pOgorICAgIHNkaz0naXBob25lb3MnCisgICAgbmFtZSA9ICdpb3MnCisgICAgYXJjaCA9ICdhcm12NycKKyAgICB0cmlwbGUgPSAnYXJtLWFwcGxlLWRhcndpbjEwJworICAgIHNka3Jvb3QgPSBkZXZpY2Vfc2RrX2luZm9bJ1BhdGgnXQorCisgICAgcHJlZml4ID0gIiNpZmRlZiBfX2FybV9fXG5cbiIKKyAgICBzdWZmaXggPSAiXG5cbiNlbmRpZiIKKworCitkZWYgbW92ZV9maWxlKHNyY19kaXIsIGRzdF9kaXIsIGZpbGVuYW1lLCBmaWxlX3N1ZmZpeD1Ob25lLCBwcmVmaXg9JycsIHN1ZmZpeD0nJyk6CisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRzdF9kaXIpOgorICAgICAgICBvcy5tYWtlZGlycyhkc3RfZGlyKQorCisgICAgb3V0X2ZpbGVuYW1lID0gZmlsZW5hbWUKKworICAgIGlmIGZpbGVfc3VmZml4OgorICAgICAgICBzcGxpdF9uYW1lID0gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSkKKyAgICAgICAgb3V0X2ZpbGVuYW1lID0gICIlc18lcyVzIiAlIChzcGxpdF9uYW1lWzBdLCBmaWxlX3N1ZmZpeCwgc3BsaXRfbmFtZVsxXSkKKworICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oc3JjX2RpciwgZmlsZW5hbWUpKSBhcyBpbl9maWxlOgorICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGRzdF9kaXIsIG91dF9maWxlbmFtZSksICd3JykgYXMgb3V0X2ZpbGU6CisgICAgICAgICAgICBpZiBwcmVmaXg6CisgICAgICAgICAgICAgICAgb3V0X2ZpbGUud3JpdGUocHJlZml4KQorCisgICAgICAgICAgICBvdXRfZmlsZS53cml0ZShpbl9maWxlLnJlYWQoKSkKKworICAgICAgICAgICAgaWYgc3VmZml4OgorICAgICAgICAgICAgICAgIG91dF9maWxlLndyaXRlKHN1ZmZpeCkKKworaGVhZGVyc19zZWVuID0gY29sbGVjdGlvbnMuZGVmYXVsdGRpY3Qoc2V0KQorCitkZWYgbW92ZV9zb3VyY2VfdHJlZShzcmNfZGlyLCBkZXN0X2RpciwgZGVzdF9pbmNsdWRlX2RpciwgYXJjaD1Ob25lLCBwcmVmaXg9Tm9uZSwgc3VmZml4PU5vbmUpOgorICAgIGZvciByb290LCBkaXJzLCBmaWxlcyBpbiBvcy53YWxrKHNyY19kaXIsIGZvbGxvd2xpbmtzPVRydWUpOgorICAgICAgICByZWxyb290ID0gb3MucGF0aC5yZWxwYXRoKHJvb3Qsc3JjX2RpcikKKworICAgICAgICBkZWYgbW92ZV9kaXIoYXJjaCwgcHJlZml4PScnLCBzdWZmaXg9JycsIGZpbGVzPVtdKToKKyAgICAgICAgICAgIGZvciBmaWxlIGluIGZpbGVzOgorICAgICAgICAgICAgICAgIGZpbGVfc3VmZml4ID0gTm9uZQorICAgICAgICAgICAgICAgIGlmIGZpbGUuZW5kc3dpdGgoJy5oJyk6CisgICAgICAgICAgICAgICAgICAgIGlmIGRlc3RfaW5jbHVkZV9kaXI6CisgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3N1ZmZpeCA9IGFyY2gKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGFyY2g6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyc19zZWVuW2ZpbGVdLmFkZChhcmNoKQorICAgICAgICAgICAgICAgICAgICAgICAgbW92ZV9maWxlKHJvb3QsIGRlc3RfaW5jbHVkZV9kaXIsIGZpbGUsIGFyY2gsIHByZWZpeD1wcmVmaXgsIHN1ZmZpeD1zdWZmaXgpCisKKyAgICAgICAgICAgICAgICBlbGlmIGRlc3RfZGlyOgorICAgICAgICAgICAgICAgICAgICBvdXRyb290ID0gb3MucGF0aC5qb2luKGRlc3RfZGlyLCByZWxyb290KQorICAgICAgICAgICAgICAgICAgICBtb3ZlX2ZpbGUocm9vdCwgb3V0cm9vdCwgZmlsZSwgcHJlZml4PXByZWZpeCwgc3VmZml4PXN1ZmZpeCkKKworICAgICAgICBpZiByZWxyb290ID09ICcuJzoKKyAgICAgICAgICAgIG1vdmVfZGlyKGFyY2g9YXJjaCwKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVzPWZpbGVzLAorICAgICAgICAgICAgICAgICAgICAgcHJlZml4PXByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeD1zdWZmaXgpCisgICAgICAgIGVsaWYgcmVscm9vdCA9PSAnYXJtJzoKKyAgICAgICAgICAgIG1vdmVfZGlyKGFyY2g9J2FybScsCisgICAgICAgICAgICAgICAgICAgICBwcmVmaXg9IiNpZmRlZiBfX2FybV9fXG5cbiIsCisgICAgICAgICAgICAgICAgICAgICBzdWZmaXg9IlxuXG4jZW5kaWYiLAorICAgICAgICAgICAgICAgICAgICAgZmlsZXM9ZmlsZXMpCisgICAgICAgIGVsaWYgcmVscm9vdCA9PSAneDg2JzoKKyAgICAgICAgICAgIG1vdmVfZGlyKGFyY2g9J2kzODYnLAorICAgICAgICAgICAgICAgICAgICAgcHJlZml4PSIjaWYgIWRlZmluZWQoX19hcm1fXykgJiYgZGVmaW5lZChfX2kzODZfXylcblxuIiwKKyAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeD0iXG5cbiNlbmRpZiIsCisgICAgICAgICAgICAgICAgICAgICBmaWxlcz1maWxlcykKKworZGVmIGJ1aWxkX3RhcmdldChwbGF0Zm9ybSk6CisgICAgZGVmIHhjcnVuX2NtZChjbWQpOgorICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWyd4Y3J1bicsICctc2RrJywgcGxhdGZvcm0uc2Rrcm9vdCwgJy1maW5kJywgY21kXSkuc3RyaXAoKQorCisgICAgYnVpbGRfZGlyID0gJ2J1aWxkXycgKyBwbGF0Zm9ybS5uYW1lCisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGJ1aWxkX2Rpcik6CisgICAgICAgIG9zLm1ha2VkaXJzKGJ1aWxkX2RpcikKKyAgICAgICAgZW52ID0gZGljdChDQz14Y3J1bl9jbWQoJ2NsYW5nJyksCisgICAgICAgICAgICAgICAgICAgTEQ9eGNydW5fY21kKCdsZCcpLAorICAgICAgICAgICAgICAgICAgIENGTEFHUz0nLWFyY2ggJXMgLWlzeXNyb290ICVzIC1taXBob25lb3MtdmVyc2lvbi1taW49NC4wJyAlIChwbGF0Zm9ybS5hcmNoLCBwbGF0Zm9ybS5zZGtyb290KSkKKyAgICAgICAgd29ya2luZ19kaXI9b3MuZ2V0Y3dkKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3MuY2hkaXIoYnVpbGRfZGlyKQorICAgICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsnLi4vY29uZmlndXJlJywgJy1ob3N0JywgcGxhdGZvcm0udHJpcGxlXSwgZW52PWVudikKKyAgICAgICAgICAgIG1vdmVfc291cmNlX3RyZWUoJy4nLCBOb25lLCAnLi4vaW9zL2luY2x1ZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmNoPXBsYXRmb3JtLmFyY2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeD1wbGF0Zm9ybS5wcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeD1wbGF0Zm9ybS5zdWZmaXgpCisgICAgICAgICAgICBtb3ZlX3NvdXJjZV90cmVlKCcuL2luY2x1ZGUnLCBOb25lLCAnLi4vaW9zL2luY2x1ZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY2g9cGxhdGZvcm0uYXJjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXg9cGxhdGZvcm0ucHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeD1wbGF0Zm9ybS5zdWZmaXgpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy5jaGRpcih3b3JraW5nX2RpcikKKworICAgICAgICBmb3IgaGVhZGVyX25hbWUsIGFyY2hzIGluIGhlYWRlcnNfc2Vlbi5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGJhc2VuYW1lLCBzdWZmaXggPSBvcy5wYXRoLnNwbGl0ZXh0KGhlYWRlcl9uYW1lKQorCitkZWYgbWFpbigpOgorICAgIG1vdmVfc291cmNlX3RyZWUoJ3NyYycsICdpb3Mvc3JjJywgJ2lvcy9pbmNsdWRlJykKKyAgICBtb3ZlX3NvdXJjZV90cmVlKCdpbmNsdWRlJywgTm9uZSwgJ2lvcy9pbmNsdWRlJykKKyAgICBidWlsZF90YXJnZXQoc2ltdWxhdG9yX3BsYXRmb3JtKQorICAgIGJ1aWxkX3RhcmdldChkZXZpY2VfcGxhdGZvcm0pCisKKyAgICBmb3IgaGVhZGVyX25hbWUsIGFyY2hzIGluIGhlYWRlcnNfc2Vlbi5pdGVyaXRlbXMoKToKKyAgICAgICAgYmFzZW5hbWUsIHN1ZmZpeCA9IG9zLnBhdGguc3BsaXRleHQoaGVhZGVyX25hbWUpCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oJ2lvcy9pbmNsdWRlJywgaGVhZGVyX25hbWUpLCAndycpIGFzIGhlYWRlcjoKKyAgICAgICAgICAgIGZvciBhcmNoIGluIGFyY2hzOgorICAgICAgICAgICAgICAgIGhlYWRlci53cml0ZSgnI2luY2x1ZGUgPCVzXyVzJXM+XG4nICUgKGJhc2VuYW1lLCBhcmNoLCBzdWZmaXgpKQorCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9nZW5lcmF0ZS1vc3gtc291cmNlLWFuZC1oZWFkZXJzLnB5IGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9nZW5lcmF0ZS1vc3gtc291cmNlLWFuZC1oZWFkZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0MzEzYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2dlbmVyYXRlLW9zeC1zb3VyY2UtYW5kLWhlYWRlcnMucHkKQEAgLTAsMCArMSwxNTMgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCByZQoraW1wb3J0IG9zCitpbXBvcnQgZXJybm8KK2ltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IHN5cworCitjbGFzcyBQbGF0Zm9ybShvYmplY3QpOgorICAgIHBhc3MKKworc2RrX3JlID0gcmUuY29tcGlsZShyJy4qLXNkayAoW2EtekEtWjAtOS5dKiknKQorCitkZWYgc2RraW5mbyhzZGtuYW1lKToKKyAgICByZXQgPSB7fQorICAgIGZvciBsaW5lIGluIHN1YnByb2Nlc3MuUG9wZW4oWyd4Y29kZWJ1aWxkJywgJy1zZGsnLCBzZGtuYW1lLCAnLXZlcnNpb24nXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkuc3Rkb3V0OgorICAgICAgICBrdiA9IGxpbmUuc3RyaXAoKS5zcGxpdCgnOiAnLCAxKQorICAgICAgICBpZiBsZW4oa3YpID09IDI6CisgICAgICAgICAgICBrLHYgPSBrdgorICAgICAgICAgICAgcmV0W2tdID0gdgorICAgIHJldHVybiByZXQKKworZGVza3RvcF9zZGtfaW5mbyA9IHNka2luZm8oJ21hY29zeCcpCisKK2RlZiBsYXRlc3Rfc2RrcygpOgorICAgIGxhdGVzdF9kZXNrdG9wID0gTm9uZQorICAgIGZvciBsaW5lIGluIHN1YnByb2Nlc3MuUG9wZW4oWyd4Y29kZWJ1aWxkJywgJy1zaG93c2RrcyddLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKS5zdGRvdXQ6CisgICAgICAgIG1hdGNoID0gc2RrX3JlLm1hdGNoKGxpbmUpCisgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgaWYgJ09TIFgnIGluIGxpbmU6CisgICAgICAgICAgICAgICAgbGF0ZXN0X2Rlc2t0b3AgPSBtYXRjaC5ncm91cCgxKQorCisgICAgcmV0dXJuIGxhdGVzdF9kZXNrdG9wCisKK2Rlc2t0b3Bfc2RrID0gbGF0ZXN0X3Nka3MoKQorCitjbGFzcyBkZXNrdG9wX3BsYXRmb3JtXzMyKFBsYXRmb3JtKToKKyAgICBzZGs9J21hY29zeCcKKyAgICBhcmNoID0gJ2kzODYnCisgICAgbmFtZSA9ICdtYWMzMicKKyAgICB0cmlwbGUgPSAnaTM4Ni1hcHBsZS1kYXJ3aW4xMCcKKyAgICBzZGtyb290ID0gZGVza3RvcF9zZGtfaW5mb1snUGF0aCddCisKKyAgICBwcmVmaXggPSAiI2lmIGRlZmluZWQoX19pMzg2X18pICYmICFkZWZpbmVkKF9feDg2XzY0X18pXG5cbiIKKyAgICBzdWZmaXggPSAiXG5cbiNlbmRpZiIKKworY2xhc3MgZGVza3RvcF9wbGF0Zm9ybV82NChQbGF0Zm9ybSk6CisgICAgc2RrPSdtYWNvc3gnCisgICAgYXJjaCA9ICd4ODZfNjQnCisgICAgbmFtZSA9ICdtYWMnCisgICAgdHJpcGxlID0gJ3g4Nl82NC1hcHBsZS1kYXJ3aW4xMCcKKyAgICBzZGtyb290ID0gZGVza3RvcF9zZGtfaW5mb1snUGF0aCddCisKKyAgICBwcmVmaXggPSAiI2lmICFkZWZpbmVkKF9faTM4Nl9fKSAmJiBkZWZpbmVkKF9feDg2XzY0X18pXG5cbiIKKyAgICBzdWZmaXggPSAiXG5cbiNlbmRpZiIKKworZGVmIG1vdmVfZmlsZShzcmNfZGlyLCBkc3RfZGlyLCBmaWxlbmFtZSwgZmlsZV9zdWZmaXg9Tm9uZSwgcHJlZml4PScnLCBzdWZmaXg9JycpOgorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkc3RfZGlyKToKKyAgICAgICAgb3MubWFrZWRpcnMoZHN0X2RpcikKKworICAgIG91dF9maWxlbmFtZSA9IGZpbGVuYW1lCisKKyAgICBpZiBmaWxlX3N1ZmZpeDoKKyAgICAgICAgc3BsaXRfbmFtZSA9IG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpCisgICAgICAgIG91dF9maWxlbmFtZSA9ICAiJXNfJXMlcyIgJSAoc3BsaXRfbmFtZVswXSwgZmlsZV9zdWZmaXgsIHNwbGl0X25hbWVbMV0pCisKKyAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHNyY19kaXIsIGZpbGVuYW1lKSkgYXMgaW5fZmlsZToKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihkc3RfZGlyLCBvdXRfZmlsZW5hbWUpLCAndycpIGFzIG91dF9maWxlOgorICAgICAgICAgICAgaWYgcHJlZml4OgorICAgICAgICAgICAgICAgIG91dF9maWxlLndyaXRlKHByZWZpeCkKKworICAgICAgICAgICAgb3V0X2ZpbGUud3JpdGUoaW5fZmlsZS5yZWFkKCkpCisKKyAgICAgICAgICAgIGlmIHN1ZmZpeDoKKyAgICAgICAgICAgICAgICBvdXRfZmlsZS53cml0ZShzdWZmaXgpCisKK2hlYWRlcnNfc2VlbiA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KHNldCkKKworZGVmIG1vdmVfc291cmNlX3RyZWUoc3JjX2RpciwgZGVzdF9kaXIsIGRlc3RfaW5jbHVkZV9kaXIsIGFyY2g9Tm9uZSwgcHJlZml4PU5vbmUsIHN1ZmZpeD1Ob25lKToKKyAgICBmb3Igcm9vdCwgZGlycywgZmlsZXMgaW4gb3Mud2FsayhzcmNfZGlyLCBmb2xsb3dsaW5rcz1UcnVlKToKKyAgICAgICAgcmVscm9vdCA9IG9zLnBhdGgucmVscGF0aChyb290LHNyY19kaXIpCisKKyAgICAgICAgZGVmIG1vdmVfZGlyKGFyY2gsIHByZWZpeD0nJywgc3VmZml4PScnLCBmaWxlcz1bXSk6CisgICAgICAgICAgICBmb3IgZmlsZSBpbiBmaWxlczoKKyAgICAgICAgICAgICAgICBmaWxlX3N1ZmZpeCA9IE5vbmUKKyAgICAgICAgICAgICAgICBpZiBmaWxlLmVuZHN3aXRoKCcuaCcpOgorICAgICAgICAgICAgICAgICAgICBpZiBkZXN0X2luY2x1ZGVfZGlyOgorICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9zdWZmaXggPSBhcmNoCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBhcmNoOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnNfc2VlbltmaWxlXS5hZGQoYXJjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vdmVfZmlsZShyb290LCBkZXN0X2luY2x1ZGVfZGlyLCBmaWxlLCBhcmNoLCBwcmVmaXg9cHJlZml4LCBzdWZmaXg9c3VmZml4KQorCisgICAgICAgICAgICAgICAgZWxpZiBkZXN0X2RpcjoKKyAgICAgICAgICAgICAgICAgICAgb3V0cm9vdCA9IG9zLnBhdGguam9pbihkZXN0X2RpciwgcmVscm9vdCkKKyAgICAgICAgICAgICAgICAgICAgbW92ZV9maWxlKHJvb3QsIG91dHJvb3QsIGZpbGUsIHByZWZpeD1wcmVmaXgsIHN1ZmZpeD1zdWZmaXgpCisKKyAgICAgICAgaWYgcmVscm9vdCA9PSAnLic6CisgICAgICAgICAgICBtb3ZlX2RpcihhcmNoPWFyY2gsCisgICAgICAgICAgICAgICAgICAgICBmaWxlcz1maWxlcywKKyAgICAgICAgICAgICAgICAgICAgIHByZWZpeD1wcmVmaXgsCisgICAgICAgICAgICAgICAgICAgICBzdWZmaXg9c3VmZml4KQorICAgICAgICBlbGlmIHJlbHJvb3QgPT0gJ3g4Nic6CisgICAgICAgICAgICBtb3ZlX2RpcihhcmNoPSdpMzg2JywKKyAgICAgICAgICAgICAgICAgICAgIHByZWZpeD0iI2lmIGRlZmluZWQoX19pMzg2X18pICYmICFkZWZpbmVkKF9feDg2XzY0X18pXG5cbiIsCisgICAgICAgICAgICAgICAgICAgICBzdWZmaXg9IlxuXG4jZW5kaWYiLAorICAgICAgICAgICAgICAgICAgICAgZmlsZXM9ZmlsZXMpCisgICAgICAgICAgICBtb3ZlX2RpcihhcmNoPSd4ODZfNjQnLAorICAgICAgICAgICAgICAgICAgICAgcHJlZml4PSIjaWYgIWRlZmluZWQoX19pMzg2X18pICYmIGRlZmluZWQoX194ODZfNjRfXylcblxuIiwKKyAgICAgICAgICAgICAgICAgICAgIHN1ZmZpeD0iXG5cbiNlbmRpZiIsCisgICAgICAgICAgICAgICAgICAgICBmaWxlcz1maWxlcykKKworZGVmIGJ1aWxkX3RhcmdldChwbGF0Zm9ybSk6CisgICAgZGVmIHhjcnVuX2NtZChjbWQpOgorICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWyd4Y3J1bicsICctc2RrJywgcGxhdGZvcm0uc2Rrcm9vdCwgJy1maW5kJywgY21kXSkuc3RyaXAoKQorCisgICAgYnVpbGRfZGlyID0gJ2J1aWxkXycgKyBwbGF0Zm9ybS5uYW1lCisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGJ1aWxkX2Rpcik6CisgICAgICAgIG9zLm1ha2VkaXJzKGJ1aWxkX2RpcikKKyAgICAgICAgZW52ID0gZGljdChDQz14Y3J1bl9jbWQoJ2NsYW5nJyksCisgICAgICAgICAgICAgICAgICAgTEQ9eGNydW5fY21kKCdsZCcpLAorICAgICAgICAgICAgICAgICAgIENGTEFHUz0nLWFyY2ggJXMgLWlzeXNyb290ICVzIC1tbWFjb3N4LXZlcnNpb24tbWluPTEwLjYnICUgKHBsYXRmb3JtLmFyY2gsIHBsYXRmb3JtLnNka3Jvb3QpKQorICAgICAgICB3b3JraW5nX2Rpcj1vcy5nZXRjd2QoKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcy5jaGRpcihidWlsZF9kaXIpCisgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoWycuLi9jb25maWd1cmUnLCAnLWhvc3QnLCBwbGF0Zm9ybS50cmlwbGVdLCBlbnY9ZW52KQorICAgICAgICAgICAgbW92ZV9zb3VyY2VfdHJlZSgnLicsIE5vbmUsICcuLi9vc3gvaW5jbHVkZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY2g9cGxhdGZvcm0uYXJjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4PXBsYXRmb3JtLnByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4PXBsYXRmb3JtLnN1ZmZpeCkKKyAgICAgICAgICAgIG1vdmVfc291cmNlX3RyZWUoJy4vaW5jbHVkZScsIE5vbmUsICcuLi9vc3gvaW5jbHVkZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyY2g9cGxhdGZvcm0uYXJjaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4PXBsYXRmb3JtLnByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VmZml4PXBsYXRmb3JtLnN1ZmZpeCkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG9zLmNoZGlyKHdvcmtpbmdfZGlyKQorCisgICAgICAgIGZvciBoZWFkZXJfbmFtZSwgYXJjaHMgaW4gaGVhZGVyc19zZWVuLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgYmFzZW5hbWUsIHN1ZmZpeCA9IG9zLnBhdGguc3BsaXRleHQoaGVhZGVyX25hbWUpCisKK2RlZiBtYWluKCk6CisgICAgbW92ZV9zb3VyY2VfdHJlZSgnc3JjJywgJ29zeC9zcmMnLCAnb3N4L2luY2x1ZGUnKQorICAgIG1vdmVfc291cmNlX3RyZWUoJ2luY2x1ZGUnLCBOb25lLCAnb3N4L2luY2x1ZGUnKQorICAgIGJ1aWxkX3RhcmdldChkZXNrdG9wX3BsYXRmb3JtXzMyKQorICAgIGJ1aWxkX3RhcmdldChkZXNrdG9wX3BsYXRmb3JtXzY0KQorCisgICAgZm9yIGhlYWRlcl9uYW1lLCBhcmNocyBpbiBoZWFkZXJzX3NlZW4uaXRlcml0ZW1zKCk6CisgICAgICAgIGJhc2VuYW1lLCBzdWZmaXggPSBvcy5wYXRoLnNwbGl0ZXh0KGhlYWRlcl9uYW1lKQorICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKCdvc3gvaW5jbHVkZScsIGhlYWRlcl9uYW1lKSwgJ3cnKSBhcyBoZWFkZXI6CisgICAgICAgICAgICBmb3IgYXJjaCBpbiBhcmNoczoKKyAgICAgICAgICAgICAgICBoZWFkZXIud3JpdGUoJyNpbmNsdWRlIDwlc18lcyVzPlxuJyAlIChiYXNlbmFtZSwgYXJjaCwgc3VmZml4KSkKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvaW5jbHVkZS9NYWtlZmlsZS5pbiBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvaW5jbHVkZS9NYWtlZmlsZS5pbgppbmRleCAxMzZmMzZjLi43OWQ0OTNlIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2luY2x1ZGUvTWFrZWZpbGUuaW4KKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9pbmNsdWRlL01ha2VmaWxlLmluCkBAIC0xLDkgKzEsOSBAQAotIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4zIGZyb20gTWFrZWZpbGUuYW0uCiAjIEBjb25maWd1cmVfaW5wdXRACiAKICMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0jIEluYy4KKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4KICMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCiAjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KQEAgLTM3LDcgKzM3LDcgQEAKIHRhcmdldF90cmlwbGV0ID0gQHRhcmdldEAKIHN1YmRpciA9IGluY2x1ZGUKIERJU1RfQ09NTU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0JJChzcmNkaXIpL2ZmaS5oLmluCisJJChzcmNkaXIpL2ZmaS5oLmluICQoc3JjZGlyKS9mZmlfY29tbW9uLmgKIEFDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKIGFtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2FjaW5jbHVkZS5tNCBcCiAJJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKQEAgLTQ2LDcgKzQ2LDcgQEAKIG1raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCiBDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL2ZmaWNvbmZpZy5oCiBDT05GSUdfQ0xFQU5fRklMRVMgPSBmZmkuaCBmZml0YXJnZXQuaAotQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9IGZmaV9jb21tb24uaAogU09VUkNFUyA9CiBESVNUX1NPVVJDRVMgPQogYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7CkBAIC03MCw2ICs3MCwxMiBAQAogYW1fX2Jhc2VfbGlzdCA9IFwKICAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKICAgc2VkICckJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJworYW1fX3VuaW5zdGFsbF9maWxlc19mcm9tX2RpciA9IHsgXAorICB0ZXN0IC16ICIkJGZpbGVzIiBcCisgICAgfHwgeyB0ZXN0ICEgLWQgIiQkZGlyIiAmJiB0ZXN0ICEgLWYgIiQkZGlyIiAmJiB0ZXN0ICEgLXIgIiQkZGlyIjsgfSBcCisgICAgfHwgeyBlY2hvICIgKCBjZCAnJCRkaXInICYmIHJtIC1mIiAkJGZpbGVzICIpIjsgXAorICAgICAgICAgJChhbV9fY2QpICIkJGRpciIgJiYgcm0gLWYgJCRmaWxlczsgfTsgXAorICB9CiBhbV9faW5zdGFsbGRpcnMgPSAiJChERVNURElSKSQoaW5jbHVkZXNkaXIpIgogSEVBREVSUyA9ICQobm9kaXN0X2luY2x1ZGVzX0hFQURFUlMpCiBFVEFHUyA9IGV0YWdzCkBAIC03OCw2ICs4NCw3IEBACiBBQ0xPQ0FMID0gQEFDTE9DQUxACiBBTExPQ0EgPSBAQUxMT0NBQAogQU1UQVIgPSBAQU1UQVJACitBTV9MVExERkxBR1MgPSBAQU1fTFRMREZMQUdTQAogQU1fUlVOVEVTVEZMQUdTID0gQEFNX1JVTlRFU1RGTEFHU0AKIEFSID0gQEFSQAogQVVUT0NPTkYgPSBAQVVUT0NPTkZACkBAIC05NSw2ICsxMDIsNyBAQAogQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKIERFRlMgPSBAREVGU0AKIERFUERJUiA9IEBERVBESVJACitETExUT09MID0gQERMTFRPT0xACiBEU1lNVVRJTCA9IEBEU1lNVVRJTEAKIERVTVBCSU4gPSBARFVNUEJJTkAKIEVDSE9fQyA9IEBFQ0hPX0NACkBAIC0xMDIsNiArMTEwLDcgQEAKIEVDSE9fVCA9IEBFQ0hPX1RACiBFR1JFUCA9IEBFR1JFUEAKIEVYRUVYVCA9IEBFWEVFWFRACitGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFID0gQEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEVACiBGR1JFUCA9IEBGR1JFUEAKIEdSRVAgPSBAR1JFUEAKIEhBVkVfTE9OR19ET1VCTEUgPSBASEFWRV9MT05HX0RPVUJMRUAKQEAgLTEyMCw2ICsxMjksNyBAQAogTFRMSUJPQkpTID0gQExUTElCT0JKU0AKIE1BSU5UID0gQE1BSU5UQAogTUFLRUlORk8gPSBATUFLRUlORk9ACitNQU5JRkVTVF9UT09MID0gQE1BTklGRVNUX1RPT0xACiBNS0RJUl9QID0gQE1LRElSX1BACiBOTSA9IEBOTUAKIE5NRURJVCA9IEBOTUVESVRACkBAIC0xMzIsNiArMTQyLDcgQEAKIFBBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACiBQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKIFBBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACitQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKIFBBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACiBQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKIFJBTkxJQiA9IEBSQU5MSUJACkBAIC0xNDYsNiArMTU3LDcgQEAKIGFic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKIGFic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKIGFic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAorYWNfY3RfQVIgPSBAYWNfY3RfQVJACiBhY19jdF9DQyA9IEBhY19jdF9DQ0AKIGFjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKIGFtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQApAQCAtMTc4LDcgKzE5MCw2IEBACiBsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACiBsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAogbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotbHRfRUNITyA9IEBsdF9FQ0hPQAogbWFuZGlyID0gQG1hbmRpckAKIG1rZGlyX3AgPSBAbWtkaXJfcEAKIG9sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKQEAgLTI2Myw5ICsyNzQsNyBAQAogCUAkKE5PUk1BTF9VTklOU1RBTEwpCiAJQGxpc3Q9JyQobm9kaXN0X2luY2x1ZGVzX0hFQURFUlMpJzsgdGVzdCAtbiAiJChpbmNsdWRlc2RpcikiIHx8IGxpc3Q9OyBcCiAJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7IFwKLQl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKLQllY2hvICIgKCBjZCAnJChERVNURElSKSQoaW5jbHVkZXNkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKLQljZCAiJChERVNURElSKSQoaW5jbHVkZXNkaXIpIiAmJiBybSAtZiAkJGZpbGVzCisJZGlyPSckKERFU1RESVIpJChpbmNsdWRlc2RpciknOyAkKGFtX191bmluc3RhbGxfZmlsZXNfZnJvbV9kaXIpCiAKIElEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1NfRklMRVMpCiAJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKQEAgLTM2NiwxMCArMzc1LDE1IEBACiAKIGluc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCiBpbnN0YWxsLXN0cmlwOgotCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0JICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLQkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAorCWlmIHRlc3QgLXogJyQoU1RSSVApJzsgdGhlbiBcCisJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgICAgICBpbnN0YWxsOyBcCisJZWxzZSBcCisJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAorCSAgICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKKwkgICAgIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciIGluc3RhbGw7IFwKKwlmaQogbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKIAogY2xlYW4tZ2VuZXJpYzoKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvaW5jbHVkZS9mZmkuaC5pbiBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvaW5jbHVkZS9mZmkuaC5pbgppbmRleCBkZjdkMmNkLi5hNTE1ODNiIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2luY2x1ZGUvZmZpLmguaW4KKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9pbmNsdWRlL2ZmaS5oLmluCkBAIC0xLDE2ICsxLDE3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSotQy0qLQotICAgbGliZmZpIEBWRVJTSU9OQCAtIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzLCAyMDA3LCAyMDA4ICBSZWQgSGF0LCBJbmMuCisgICBsaWJmZmkgQFZFUlNJT05AIC0gQ29weXJpZ2h0IChjKSAyMDExIEFudGhvbnkgR3JlZW4KKyAgICAgICAgICAgICAgICAgICAgLSBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMywgMjAwNywgMjAwOCBSZWQgSGF0LCBJbmMuCiAKLSAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwotICAgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0gICBgYFNvZnR3YXJlJycpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSAgIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSAgIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICAgcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0gICB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbgorICAgb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24KKyAgIGZpbGVzICh0aGUgYGBTb2Z0d2FyZScnKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dAorICAgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksCisgICBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMKKyAgIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgICBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogCi0gICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZAotICAgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisgICBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZQorICAgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCiAKICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCiAgICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKQEAgLTU3LDcgKzU4LDkgQEAKICNlbmRpZgogCiAvKiBTcGVjaWZ5IHdoaWNoIGFyY2hpdGVjdHVyZSBsaWJmZmkgaXMgY29uZmlndXJlZCBmb3IuICovCisjaWZuZGVmIEBUQVJHRVRACiAjZGVmaW5lIEBUQVJHRVRACisjZW5kaWYKIAogLyogLS0tLSBTeXN0ZW0gY29uZmlndXJhdGlvbiBpbmZvcm1hdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIApAQCAtNzUsMTUgKzc4LDMxIEBACiAvKiBMT05HX0xPTkdfTUFYIGlzIG5vdCBhbHdheXMgZGVmaW5lZCAobm90IGlmIFNUUklDVF9BTlNJLCBmb3IgZXhhbXBsZSkuCiAgICBCdXQgd2UgY2FuIGZpbmQgaXQgZWl0aGVyIHVuZGVyIHRoZSBjb3JyZWN0IEFOU0kgbmFtZSwgb3IgdW5kZXIgR05VCiAgICBDJ3MgaW50ZXJuYWwgbmFtZS4gICovCisKKyNkZWZpbmUgRkZJXzY0X0JJVF9NQVggOTIyMzM3MjAzNjg1NDc3NTgwNworCiAjaWZkZWYgTE9OR19MT05HX01BWAogIyBkZWZpbmUgRkZJX0xPTkdfTE9OR19NQVggTE9OR19MT05HX01BWAogI2Vsc2UKICMgaWZkZWYgTExPTkdfTUFYCiAjICBkZWZpbmUgRkZJX0xPTkdfTE9OR19NQVggTExPTkdfTUFYCisjICBpZmRlZiBfQUlYNTIgLyogb3IgbmV3ZXIgaGFzIEM5OSBMTE9OR19NQVggKi8KKyMgICB1bmRlZiBGRklfNjRfQklUX01BWAorIyAgIGRlZmluZSBGRklfNjRfQklUX01BWCA5MjIzMzcyMDM2ODU0Nzc1ODA3TEwKKyMgIGVuZGlmIC8qIF9BSVg1MiBvciBuZXdlciAqLwogIyBlbHNlCiAjICBpZmRlZiBfX0dOVUNfXwogIyAgIGRlZmluZSBGRklfTE9OR19MT05HX01BWCBfX0xPTkdfTE9OR19NQVhfXwogIyAgZW5kaWYKKyMgIGlmZGVmIF9BSVggLyogQUlYIDUuMSBhbmQgZWFybGllciBoYXZlIExPTkdMT05HX01BWCAqLworIyAgIGlmbmRlZiBfX1BQQzY0X18KKyMgICAgaWYgZGVmaW5lZCAoX19JQk1DX18pIHx8IGRlZmluZWQgKF9fSUJNQ1BQX18pCisjICAgICBkZWZpbmUgRkZJX0xPTkdfTE9OR19NQVggTE9OR0xPTkdfTUFYCisjICAgIGVuZGlmCisjICAgZW5kaWYgLyogX19QUEM2NF9fICovCisjICAgdW5kZWYgIEZGSV82NF9CSVRfTUFYCisjICAgZGVmaW5lIEZGSV82NF9CSVRfTUFYIDkyMjMzNzIwMzY4NTQ3NzU4MDdMTAorIyAgZW5kaWYKICMgZW5kaWYKICNlbmRpZgogCkBAIC0xMzAsMzkgKzE0OSw1MyBAQAogI2VuZGlmCiAKICNpZiBMT05HX01BWCA9PSAyMTQ3NDgzNjQ3Ci0jIGlmIEZGSV9MT05HX0xPTkdfTUFYICE9IDkyMjMzNzIwMzY4NTQ3NzU4MDcKKyMgaWYgRkZJX0xPTkdfTE9OR19NQVggIT0gRkZJXzY0X0JJVF9NQVgKICAjZXJyb3IgIm5vIDY0LWJpdCBkYXRhIHR5cGUgc3VwcG9ydGVkIgogIyBlbmRpZgotI2VsaWYgTE9OR19NQVggIT0gOTIyMzM3MjAzNjg1NDc3NTgwNworI2VsaWYgTE9OR19NQVggIT0gRkZJXzY0X0JJVF9NQVgKICAjZXJyb3IgImxvbmcgc2l6ZSBub3Qgc3VwcG9ydGVkIgogI2VuZGlmCiAKICNpZiBMT05HX01BWCA9PSAyMTQ3NDgzNjQ3CiAjIGRlZmluZSBmZmlfdHlwZV91bG9uZyAgICAgICAgZmZpX3R5cGVfdWludDMyCiAjIGRlZmluZSBmZmlfdHlwZV9zbG9uZyAgICAgICAgZmZpX3R5cGVfc2ludDMyCi0jZWxpZiBMT05HX01BWCA9PSA5MjIzMzcyMDM2ODU0Nzc1ODA3CisjZWxpZiBMT05HX01BWCA9PSBGRklfNjRfQklUX01BWAogIyBkZWZpbmUgZmZpX3R5cGVfdWxvbmcgICAgICAgIGZmaV90eXBlX3VpbnQ2NAogIyBkZWZpbmUgZmZpX3R5cGVfc2xvbmcgICAgICAgIGZmaV90eXBlX3NpbnQ2NAogI2Vsc2UKICAjZXJyb3IgImxvbmcgc2l6ZSBub3Qgc3VwcG9ydGVkIgogI2VuZGlmCiAKKy8qIE5lZWQgbWluaW1hbCBkZWNvcmF0aW9ucyBmb3IgRExMcyB0byB3b3JrcyBvbiBXaW5kb3dzLiAqLworLyogR0NDIGhhcyBhdXRvaW1wb3J0IGFuZCBhdXRvZXhwb3J0LiAgUmVseSBvbiBMaWJ0b29sIHRvICovCisvKiBoZWxwIE1TVkMgZXhwb3J0IGZyb20gYSBETEwsIGJ1dCBhbHdheXMgZGVjbGFyZSBkYXRhICAgKi8KKy8qIHRvIGJlIGltcG9ydGVkIGZvciBNU1ZDIGNsaWVudHMuICBUaGlzIGNvc3RzIGFuIGV4dHJhICAqLworLyogaW5kaXJlY3Rpb24gZm9yIE1TVkMgY2xpZW50cyB1c2luZyB0aGUgc3RhdGljIHZlcnNpb24gICovCisvKiBvZiB0aGUgbGlicmFyeSwgYnV0IGRvbid0IHdvcnJ5IGFib3V0IHRoYXQuICBCZXNpZGVzLCAgKi8KKy8qIGFzIGEgd29ya2Fyb3VuZCwgdGhleSBjYW4gZGVmaW5lIEZGSV9CVUlMRElORyBpZiB0aGV5ICAqLworLyogKmtub3cqIHRoZXkgYXJlIGdvaW5nIHRvIGxpbmsgd2l0aCB0aGUgc3RhdGljIGxpYnJhcnkuICovCisjaWYgZGVmaW5lZCBfTVNDX1ZFUiAmJiAhZGVmaW5lZCBGRklfQlVJTERJTkcKKyNkZWZpbmUgRkZJX0VYVEVSTiBleHRlcm4gX19kZWNsc3BlYyhkbGxpbXBvcnQpCisjZWxzZQorI2RlZmluZSBGRklfRVhURVJOIGV4dGVybgorI2VuZGlmCisKIC8qIFRoZXNlIGFyZSBkZWZpbmVkIGluIHR5cGVzLmMgKi8KLWV4dGVybiBmZmlfdHlwZSBmZmlfdHlwZV92b2lkOwotZXh0ZXJuIGZmaV90eXBlIGZmaV90eXBlX3VpbnQ4OwotZXh0ZXJuIGZmaV90eXBlIGZmaV90eXBlX3NpbnQ4OwotZXh0ZXJuIGZmaV90eXBlIGZmaV90eXBlX3VpbnQxNjsKLWV4dGVybiBmZmlfdHlwZSBmZmlfdHlwZV9zaW50MTY7Ci1leHRlcm4gZmZpX3R5cGUgZmZpX3R5cGVfdWludDMyOwotZXh0ZXJuIGZmaV90eXBlIGZmaV90eXBlX3NpbnQzMjsKLWV4dGVybiBmZmlfdHlwZSBmZmlfdHlwZV91aW50NjQ7Ci1leHRlcm4gZmZpX3R5cGUgZmZpX3R5cGVfc2ludDY0OwotZXh0ZXJuIGZmaV90eXBlIGZmaV90eXBlX2Zsb2F0OwotZXh0ZXJuIGZmaV90eXBlIGZmaV90eXBlX2RvdWJsZTsKLWV4dGVybiBmZmlfdHlwZSBmZmlfdHlwZV9wb2ludGVyOworRkZJX0VYVEVSTiBmZmlfdHlwZSBmZmlfdHlwZV92b2lkOworRkZJX0VYVEVSTiBmZmlfdHlwZSBmZmlfdHlwZV91aW50ODsKK0ZGSV9FWFRFUk4gZmZpX3R5cGUgZmZpX3R5cGVfc2ludDg7CitGRklfRVhURVJOIGZmaV90eXBlIGZmaV90eXBlX3VpbnQxNjsKK0ZGSV9FWFRFUk4gZmZpX3R5cGUgZmZpX3R5cGVfc2ludDE2OworRkZJX0VYVEVSTiBmZmlfdHlwZSBmZmlfdHlwZV91aW50MzI7CitGRklfRVhURVJOIGZmaV90eXBlIGZmaV90eXBlX3NpbnQzMjsKK0ZGSV9FWFRFUk4gZmZpX3R5cGUgZmZpX3R5cGVfdWludDY0OworRkZJX0VYVEVSTiBmZmlfdHlwZSBmZmlfdHlwZV9zaW50NjQ7CitGRklfRVhURVJOIGZmaV90eXBlIGZmaV90eXBlX2Zsb2F0OworRkZJX0VYVEVSTiBmZmlfdHlwZSBmZmlfdHlwZV9kb3VibGU7CitGRklfRVhURVJOIGZmaV90eXBlIGZmaV90eXBlX3BvaW50ZXI7CiAKICNpZiBASEFWRV9MT05HX0RPVUJMRUAKLWV4dGVybiBmZmlfdHlwZSBmZmlfdHlwZV9sb25nZG91YmxlOworRkZJX0VYVEVSTiBmZmlfdHlwZSBmZmlfdHlwZV9sb25nZG91YmxlOwogI2Vsc2UKICNkZWZpbmUgZmZpX3R5cGVfbG9uZ2RvdWJsZSBmZmlfdHlwZV9kb3VibGUKICNlbmRpZgpAQCAtMTg4LDEyICsyMjEsMjEgQEAKICNlbmRpZgogfSBmZmlfY2lmOwogCisvKiBVc2VkIGludGVybmFsbHksIGJ1dCBvdmVycmlkZGVuIGJ5IHNvbWUgYXJjaGl0ZWN0dXJlcyAqLworZmZpX3N0YXR1cyBmZmlfcHJlcF9jaWZfY29yZShmZmlfY2lmICpjaWYsCisJCQkgICAgIGZmaV9hYmkgYWJpLAorCQkJICAgICB1bnNpZ25lZCBpbnQgaXN2YXJpYWRpYywKKwkJCSAgICAgdW5zaWduZWQgaW50IG5maXhlZGFyZ3MsCisJCQkgICAgIHVuc2lnbmVkIGludCBudG90YWxhcmdzLAorCQkJICAgICBmZmlfdHlwZSAqcnR5cGUsCisJCQkgICAgIGZmaV90eXBlICoqYXR5cGVzKTsKKwogLyogLS0tLSBEZWZpbml0aW9ucyBmb3IgdGhlIHJhdyBBUEkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2lmbmRlZiBGRklfU0laRU9GX0FSRwogIyBpZiBMT05HX01BWCA9PSAyMTQ3NDgzNjQ3CiAjICBkZWZpbmUgRkZJX1NJWkVPRl9BUkcgICAgICAgIDQKLSMgZWxpZiBMT05HX01BWCA9PSA5MjIzMzcyMDM2ODU0Nzc1ODA3CisjIGVsaWYgTE9OR19NQVggPT0gRkZJXzY0X0JJVF9NQVgKICMgIGRlZmluZSBGRklfU0laRU9GX0FSRyAgICAgICAgOAogIyBlbmRpZgogI2VuZGlmCkBAIC0yNTUsNyArMjk3LDEyIEBACiBfX2RlY2xzcGVjKGFsaWduKDgpKQogI2VuZGlmCiB0eXBlZGVmIHN0cnVjdCB7CisjaWYgQEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEVACisgIHZvaWQgKnRyYW1wb2xpbmVfdGFibGU7CisgIHZvaWQgKnRyYW1wb2xpbmVfdGFibGVfZW50cnk7CisjZWxzZQogICBjaGFyIHRyYW1wW0ZGSV9UUkFNUE9MSU5FX1NJWkVdOworI2VuZGlmCiAgIGZmaV9jaWYgICAqY2lmOwogICB2b2lkICAgICAoKmZ1bikoZmZpX2NpZiosdm9pZCosdm9pZCoqLHZvaWQqKTsKICAgdm9pZCAgICAgICp1c2VyX2RhdGE7CkBAIC0yNjMsNiArMzEwLDkgQEAKIH0gZmZpX2Nsb3N1cmUgX19hdHRyaWJ1dGVfXygoYWxpZ25lZCAoOCkpKTsKICNlbHNlCiB9IGZmaV9jbG9zdXJlOworIyBpZmRlZiBfX3NnaQorIyAgcHJhZ21hIHBhY2sgMAorIyBlbmRpZgogI2VuZGlmCiAKIHZvaWQgKmZmaV9jbG9zdXJlX2FsbG9jIChzaXplX3Qgc2l6ZSwgdm9pZCAqKmNvZGUpOwpAQCAtMjgxLDkgKzMzMSwxNiBAQAogCQkgICAgICB2b2lkICp1c2VyX2RhdGEsCiAJCSAgICAgIHZvaWQqY29kZWxvYyk7CiAKKyNpZmRlZiBfX3NnaQorIyBwcmFnbWEgcGFjayA4CisjZW5kaWYKIHR5cGVkZWYgc3RydWN0IHsKKyNpZiBARkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRUAKKyAgdm9pZCAqdHJhbXBvbGluZV90YWJsZTsKKyAgdm9pZCAqdHJhbXBvbGluZV90YWJsZV9lbnRyeTsKKyNlbHNlCiAgIGNoYXIgdHJhbXBbRkZJX1RSQU1QT0xJTkVfU0laRV07Ci0KKyNlbmRpZgogICBmZmlfY2lmICAgKmNpZjsKIAogI2lmICFGRklfTkFUSVZFX1JBV19BUEkKQEAgLTMwMyw3ICszNjAsMTIgQEAKIH0gZmZpX3Jhd19jbG9zdXJlOwogCiB0eXBlZGVmIHN0cnVjdCB7CisjaWYgQEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEVACisgIHZvaWQgKnRyYW1wb2xpbmVfdGFibGU7CisgIHZvaWQgKnRyYW1wb2xpbmVfdGFibGVfZW50cnk7CisjZWxzZQogICBjaGFyIHRyYW1wW0ZGSV9UUkFNUE9MSU5FX1NJWkVdOworI2VuZGlmCiAKICAgZmZpX2NpZiAgICpjaWY7CiAKQEAgLTM1OSw2ICs0MjEsMTMgQEAKIAkJCWZmaV90eXBlICpydHlwZSwKIAkJCWZmaV90eXBlICoqYXR5cGVzKTsKIAorZmZpX3N0YXR1cyBmZmlfcHJlcF9jaWZfdmFyKGZmaV9jaWYgKmNpZiwKKwkJCSAgICBmZmlfYWJpIGFiaSwKKwkJCSAgICB1bnNpZ25lZCBpbnQgbmZpeGVkYXJncywKKwkJCSAgICB1bnNpZ25lZCBpbnQgbnRvdGFsYXJncywKKwkJCSAgICBmZmlfdHlwZSAqcnR5cGUsCisJCQkgICAgZmZpX3R5cGUgKiphdHlwZXMpOworCiB2b2lkIGZmaV9jYWxsKGZmaV9jaWYgKmNpZiwKIAkgICAgICB2b2lkICgqZm4pKHZvaWQpLAogCSAgICAgIHZvaWQgKnJ2YWx1ZSwKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvaW5jbHVkZS9mZmlfY29tbW9uLmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2luY2x1ZGUvZmZpX2NvbW1vbi5oCmluZGV4IDQyY2FjZTkuLmMxNzlkNjggMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvaW5jbHVkZS9mZmlfY29tbW9uLmgKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9pbmNsdWRlL2ZmaV9jb21tb24uaApAQCAtMSw3ICsxLDggQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBmZmlfY29tbW9uLmggLSBDb3B5cmlnaHQgKGMpIDE5OTYgIFJlZCBIYXQsIEluYy4KLSAgIENvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYwotCisgICBmZmlfY29tbW9uLmggLSBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgIEFudGhvbnkgR3JlZW4KKyAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMjAwNyAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMKKyAgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5NiAgUmVkIEhhdCwgSW5jLgorICAgICAgICAgICAgICAgICAgCiAgICBDb21tb24gaW50ZXJuYWwgZGVmaW5pdGlvbnMgYW5kIG1hY3Jvcy4gT25seSBuZWNlc3NhcnkgZm9yIGJ1aWxkaW5nCiAgICBsaWJmZmkuCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtNzQsNiArNzUsOCBAQAogCiAvKiBQZXJmb3JtIG1hY2hpbmUgZGVwZW5kZW50IGNpZiBwcm9jZXNzaW5nICovCiBmZmlfc3RhdHVzIGZmaV9wcmVwX2NpZl9tYWNoZGVwKGZmaV9jaWYgKmNpZik7CitmZmlfc3RhdHVzIGZmaV9wcmVwX2NpZl9tYWNoZGVwX3ZhcihmZmlfY2lmICpjaWYsCisJIHVuc2lnbmVkIGludCBuZml4ZWRhcmdzLCB1bnNpZ25lZCBpbnQgbnRvdGFsYXJncyk7CiAKIC8qIEV4dGVuZGVkIGNpZiwgdXNlZCBpbiBjYWxsYmFjayBmcm9tIGFzc2VtYmx5IHJvdXRpbmUgKi8KIHR5cGVkZWYgc3RydWN0CkBAIC0xMTIsMTEgKzExNSwxNCBAQAogCiB0eXBlZGVmIGZsb2F0IEZMT0FUMzI7CiAKKyNpZm5kZWYgX19HTlVDX18KKyNkZWZpbmUgX19idWlsdGluX2V4cGVjdCh4LCBleHBlY3RlZF92YWx1ZSkgKHgpCisjZW5kaWYKKyNkZWZpbmUgTElLRUxZKHgpICAgIF9fYnVpbHRpbl9leHBlY3QoISEoeCksMSkKKyNkZWZpbmUgVU5MSUtFTFkoeCkgIF9fYnVpbHRpbl9leHBlY3QoKHgpIT0wLDApCiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCiAKICNlbmRpZgotCi0KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvaW5zdGFsbC1zaCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvaW5zdGFsbC1zaAppbmRleCA2ZWJlNDZkLi42NzgxYjk4IDEwMDc1NQotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2luc3RhbGwtc2gKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9pbnN0YWxsLXNoCkBAIC0xLDcgKzEsNyBAQAogIyEvYmluL3NoCiAjIGluc3RhbGwgLSBpbnN0YWxsIGEgcHJvZ3JhbSwgc2NyaXB0LCBvciBkYXRhZmlsZQogCi1zY3JpcHR2ZXJzaW9uPTIwMDQtMTItMTcuMDkKK3NjcmlwdHZlcnNpb249MjAwOS0wNC0yOC4yMTsgIyBVVEMKIAogIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBYMTFSNSAobWl0L3V0aWwvc2NyaXB0cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCiAjIGxhdGVyIHJlbGVhc2VkIGluIFgxMVI2ICh4Yy9jb25maWcvdXRpbC9pbnN0YWxsLnNoKSB3aXRoIHRoZQpAQCAtMzksMzggKzM5LDY4IEBACiAjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCiAjCiAjIFRoaXMgc2NyaXB0IGlzIGNvbXBhdGlibGUgd2l0aCB0aGUgQlNEIGluc3RhbGwgc2NyaXB0LCBidXQgd2FzIHdyaXR0ZW4KLSMgZnJvbSBzY3JhdGNoLiAgSXQgY2FuIG9ubHkgaW5zdGFsbCBvbmUgZmlsZSBhdCBhIHRpbWUsIGEgcmVzdHJpY3Rpb24KLSMgc2hhcmVkIHdpdGggbWFueSBPUydzIGluc3RhbGwgcHJvZ3JhbXMuCisjIGZyb20gc2NyYXRjaC4KKworbmw9JworJworSUZTPSIgIiIJJG5sIgogCiAjIHNldCBET0lUUFJPRyB0byBlY2hvIHRvIHRlc3QgdGhpcyBzY3JpcHQKIAogIyBEb24ndCB1c2UgOi0gc2luY2UgNC4zQlNEIGFuZCBlYXJsaWVyIHNoZWxscyBkb24ndCBsaWtlIGl0LgotZG9pdD0iJHtET0lUUFJPRy19IgorZG9pdD0ke0RPSVRQUk9HLX0KK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgorICBkb2l0X2V4ZWM9ZXhlYworZWxzZQorICBkb2l0X2V4ZWM9JGRvaXQKK2ZpCiAKLSMgcHV0IGluIGFic29sdXRlIHBhdGhzIGlmIHlvdSBkb24ndCBoYXZlIHRoZW0gaW4geW91ciBwYXRoOyBvciB1c2UgZW52LiB2YXJzLgorIyBQdXQgaW4gYWJzb2x1dGUgZmlsZSBuYW1lcyBpZiB5b3UgZG9uJ3QgaGF2ZSB0aGVtIGluIHlvdXIgcGF0aDsKKyMgb3IgdXNlIGVudmlyb25tZW50IHZhcnMuCiAKLW12cHJvZz0iJHtNVlBST0ctbXZ9IgotY3Bwcm9nPSIke0NQUFJPRy1jcH0iCi1jaG1vZHByb2c9IiR7Q0hNT0RQUk9HLWNobW9kfSIKLWNob3ducHJvZz0iJHtDSE9XTlBST0ctY2hvd259IgotY2hncnBwcm9nPSIke0NIR1JQUFJPRy1jaGdycH0iCi1zdHJpcHByb2c9IiR7U1RSSVBQUk9HLXN0cmlwfSIKLXJtcHJvZz0iJHtSTVBST0ctcm19IgotbWtkaXJwcm9nPSIke01LRElSUFJPRy1ta2Rpcn0iCitjaGdycHByb2c9JHtDSEdSUFBST0ctY2hncnB9CitjaG1vZHByb2c9JHtDSE1PRFBST0ctY2htb2R9CitjaG93bnByb2c9JHtDSE9XTlBST0ctY2hvd259CitjbXBwcm9nPSR7Q01QUFJPRy1jbXB9CitjcHByb2c9JHtDUFBST0ctY3B9Citta2RpcnByb2c9JHtNS0RJUlBST0ctbWtkaXJ9CittdnByb2c9JHtNVlBST0ctbXZ9CitybXByb2c9JHtSTVBST0ctcm19CitzdHJpcHByb2c9JHtTVFJJUFBST0ctc3RyaXB9CiAKLWNobW9kY21kPSIkY2htb2Rwcm9nIDA3NTUiCi1jaG93bmNtZD0KK3Bvc2l4X2dsb2I9Jz8nCitpbml0aWFsaXplX3Bvc2l4X2dsb2I9JworICB0ZXN0ICIkcG9zaXhfZ2xvYiIgIT0gIj8iIHx8IHsKKyAgICBpZiAoc2V0IC1mKSAyPi9kZXYvbnVsbDsgdGhlbgorICAgICAgcG9zaXhfZ2xvYj0KKyAgICBlbHNlCisgICAgICBwb3NpeF9nbG9iPToKKyAgICBmaQorICB9CisnCisKK3Bvc2l4X21rZGlyPQorCisjIERlc2lyZWQgbW9kZSBvZiBpbnN0YWxsZWQgZmlsZS4KK21vZGU9MDc1NQorCiBjaGdycGNtZD0KLXN0cmlwY21kPQorY2htb2RjbWQ9JGNobW9kcHJvZworY2hvd25jbWQ9CittdmNtZD0kbXZwcm9nCiBybWNtZD0iJHJtcHJvZyAtZiIKLW12Y21kPSIkbXZwcm9nIgorc3RyaXBjbWQ9CisKIHNyYz0KIGRzdD0KIGRpcl9hcmc9Ci1kc3Rhcmc9Citkc3RfYXJnPQorCitjb3B5X29uX2NoYW5nZT1mYWxzZQogbm9fdGFyZ2V0X2RpcmVjdG9yeT0KIAotdXNhZ2U9IlVzYWdlOiAkMCBbT1BUSU9OXS4uLiBbLVRdIFNSQ0ZJTEUgRFNURklMRQordXNhZ2U9IlwKK1VzYWdlOiAkMCBbT1BUSU9OXS4uLiBbLVRdIFNSQ0ZJTEUgRFNURklMRQogICAgb3I6ICQwIFtPUFRJT05dLi4uIFNSQ0ZJTEVTLi4uIERJUkVDVE9SWQogICAgb3I6ICQwIFtPUFRJT05dLi4uIC10IERJUkVDVE9SWSBTUkNGSUxFUy4uLgogICAgb3I6ICQwIFtPUFRJT05dLi4uIC1kIERJUkVDVE9SSUVTLi4uCkBAIC04MCw4MSArMTEwLDg2IEBACiBJbiB0aGUgNHRoLCBjcmVhdGUgRElSRUNUT1JJRVMuCiAKIE9wdGlvbnM6Ci0tYyAgICAgICAgIChpZ25vcmVkKQotLWQgICAgICAgICBjcmVhdGUgZGlyZWN0b3JpZXMgaW5zdGVhZCBvZiBpbnN0YWxsaW5nIGZpbGVzLgotLWcgR1JPVVAgICAkY2hncnBwcm9nIGluc3RhbGxlZCBmaWxlcyB0byBHUk9VUC4KLS1tIE1PREUgICAgJGNobW9kcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gTU9ERS4KLS1vIFVTRVIgICAgJGNob3ducHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gVVNFUi4KLS1zICAgICAgICAgJHN0cmlwcHJvZyBpbnN0YWxsZWQgZmlsZXMuCi0tdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RPUlkuCi0tVCAgICAgICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEgZGlyZWN0b3J5LgotLS1oZWxwICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdC4KLS0tdmVyc2lvbiAgZGlzcGxheSB2ZXJzaW9uIGluZm8gYW5kIGV4aXQuCisgICAgIC0taGVscCAgICAgZGlzcGxheSB0aGlzIGhlbHAgYW5kIGV4aXQuCisgICAgIC0tdmVyc2lvbiAgZGlzcGxheSB2ZXJzaW9uIGluZm8gYW5kIGV4aXQuCisKKyAgLWMgICAgICAgICAgICAoaWdub3JlZCkKKyAgLUMgICAgICAgICAgICBpbnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0aGUgbGFzdCBkYXRhIG1vZGlmaWNhdGlvbiB0aW1lKQorICAtZCAgICAgICAgICAgIGNyZWF0ZSBkaXJlY3RvcmllcyBpbnN0ZWFkIG9mIGluc3RhbGxpbmcgZmlsZXMuCisgIC1nIEdST1VQICAgICAgJGNoZ3JwcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gR1JPVVAuCisgIC1tIE1PREUgICAgICAgJGNobW9kcHJvZyBpbnN0YWxsZWQgZmlsZXMgdG8gTU9ERS4KKyAgLW8gVVNFUiAgICAgICAkY2hvd25wcm9nIGluc3RhbGxlZCBmaWxlcyB0byBVU0VSLgorICAtcyAgICAgICAgICAgICRzdHJpcHByb2cgaW5zdGFsbGVkIGZpbGVzLgorICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RPUlkuCisgIC1UICAgICAgICAgICAgcmVwb3J0IGFuIGVycm9yIGlmIERTVEZJTEUgaXMgYSBkaXJlY3RvcnkuCiAKIEVudmlyb25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb21tYW5kczoKLSAgQ0hHUlBQUk9HIENITU9EUFJPRyBDSE9XTlBST0cgQ1BQUk9HIE1LRElSUFJPRyBNVlBST0cgUk1QUk9HIFNUUklQUFJPRworICBDSEdSUFBST0cgQ0hNT0RQUk9HIENIT1dOUFJPRyBDTVBQUk9HIENQUFJPRyBNS0RJUlBST0cgTVZQUk9HCisgIFJNUFJPRyBTVFJJUFBST0cKICIKIAotd2hpbGUgdGVzdCAtbiAiJDEiOyBkbword2hpbGUgdGVzdCAkIyAtbmUgMDsgZG8KICAgY2FzZSAkMSBpbgotICAgIC1jKSBzaGlmdAotICAgICAgICBjb250aW51ZTs7CisgICAgLWMpIDs7CiAKLSAgICAtZCkgZGlyX2FyZz10cnVlCi0gICAgICAgIHNoaWZ0Ci0gICAgICAgIGNvbnRpbnVlOzsKKyAgICAtQykgY29weV9vbl9jaGFuZ2U9dHJ1ZTs7CisKKyAgICAtZCkgZGlyX2FyZz10cnVlOzsKIAogICAgIC1nKSBjaGdycGNtZD0iJGNoZ3JwcHJvZyAkMiIKLSAgICAgICAgc2hpZnQKLSAgICAgICAgc2hpZnQKLSAgICAgICAgY29udGludWU7OworCXNoaWZ0OzsKIAotICAgIC0taGVscCkgZWNobyAiJHVzYWdlIjsgZXhpdCAwOzsKKyAgICAtLWhlbHApIGVjaG8gIiR1c2FnZSI7IGV4aXQgJD87OwogCi0gICAgLW0pIGNobW9kY21kPSIkY2htb2Rwcm9nICQyIgotICAgICAgICBzaGlmdAotICAgICAgICBzaGlmdAotICAgICAgICBjb250aW51ZTs7CisgICAgLW0pIG1vZGU9JDIKKwljYXNlICRtb2RlIGluCisJICAqJyAnKiB8IConCScqIHwgKicKKycqCSAgfCAqJyonKiB8IConPycqIHwgKidbJyopCisJICAgIGVjaG8gIiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKKwkgICAgZXhpdCAxOzsKKwllc2FjCisJc2hpZnQ7OwogCiAgICAgLW8pIGNob3duY21kPSIkY2hvd25wcm9nICQyIgotICAgICAgICBzaGlmdAotICAgICAgICBzaGlmdAotICAgICAgICBjb250aW51ZTs7CisJc2hpZnQ7OwogCi0gICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2cKLSAgICAgICAgc2hpZnQKLSAgICAgICAgY29udGludWU7OworICAgIC1zKSBzdHJpcGNtZD0kc3RyaXBwcm9nOzsKIAotICAgIC10KSBkc3Rhcmc9JDIKLQlzaGlmdAotCXNoaWZ0Ci0JY29udGludWU7OworICAgIC10KSBkc3RfYXJnPSQyCisJc2hpZnQ7OwogCi0gICAgLVQpIG5vX3RhcmdldF9kaXJlY3Rvcnk9dHJ1ZQotCXNoaWZ0Ci0JY29udGludWU7OworICAgIC1UKSBub190YXJnZXRfZGlyZWN0b3J5PXRydWU7OwogCi0gICAgLS12ZXJzaW9uKSBlY2hvICIkMCAkc2NyaXB0dmVyc2lvbiI7IGV4aXQgMDs7CisgICAgLS12ZXJzaW9uKSBlY2hvICIkMCAkc2NyaXB0dmVyc2lvbiI7IGV4aXQgJD87OwogCi0gICAgKikgICMgV2hlbiAtZCBpcyB1c2VkLCBhbGwgcmVtYWluaW5nIGFyZ3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgotCSMgV2hlbiAtdCBpcyB1c2VkLCB0aGUgZGVzdGluYXRpb24gaXMgYWxyZWFkeSBzcGVjaWZpZWQuCi0JdGVzdCAtbiAiJGRpcl9hcmckZHN0YXJnIiAmJiBicmVhawotICAgICAgICAjIE90aGVyd2lzZSwgdGhlIGxhc3QgYXJndW1lbnQgaXMgdGhlIGRlc3RpbmF0aW9uLiAgUmVtb3ZlIGl0IGZyb20gJEAuCi0JZm9yIGFyZwotCWRvCi0gICAgICAgICAgaWYgdGVzdCAtbiAiJGRzdGFyZyI7IHRoZW4KLQkgICAgIyAkQCBpcyBub3QgZW1wdHk6IGl0IGNvbnRhaW5zIGF0IGxlYXN0ICRhcmcuCi0JICAgIHNldCBmbm9yZCAiJEAiICIkZHN0YXJnIgotCSAgICBzaGlmdCAjIGZub3JkCi0JICBmaQotCSAgc2hpZnQgIyBhcmcKLQkgIGRzdGFyZz0kYXJnCi0JZG9uZQorICAgIC0tKQlzaGlmdAogCWJyZWFrOzsKKworICAgIC0qKQllY2hvICIkMDogaW52YWxpZCBvcHRpb246ICQxIiA+JjIKKwlleGl0IDE7OworCisgICAgKikgIGJyZWFrOzsKICAgZXNhYworICBzaGlmdAogZG9uZQogCi1pZiB0ZXN0IC16ICIkMSI7IHRoZW4KK2lmIHRlc3QgJCMgLW5lIDAgJiYgdGVzdCAteiAiJGRpcl9hcmckZHN0X2FyZyI7IHRoZW4KKyAgIyBXaGVuIC1kIGlzIHVzZWQsIGFsbCByZW1haW5pbmcgYXJndW1lbnRzIGFyZSBkaXJlY3RvcmllcyB0byBjcmVhdGUuCisgICMgV2hlbiAtdCBpcyB1c2VkLCB0aGUgZGVzdGluYXRpb24gaXMgYWxyZWFkeSBzcGVjaWZpZWQuCisgICMgT3RoZXJ3aXNlLCB0aGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24uICBSZW1vdmUgaXQgZnJvbSAkQC4KKyAgZm9yIGFyZworICBkbworICAgIGlmIHRlc3QgLW4gIiRkc3RfYXJnIjsgdGhlbgorICAgICAgIyAkQCBpcyBub3QgZW1wdHk6IGl0IGNvbnRhaW5zIGF0IGxlYXN0ICRhcmcuCisgICAgICBzZXQgZm5vcmQgIiRAIiAiJGRzdF9hcmciCisgICAgICBzaGlmdCAjIGZub3JkCisgICAgZmkKKyAgICBzaGlmdCAjIGFyZworICAgIGRzdF9hcmc9JGFyZworICBkb25lCitmaQorCitpZiB0ZXN0ICQjIC1lcSAwOyB0aGVuCiAgIGlmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhlbgogICAgIGVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmllZC4iID4mMgogICAgIGV4aXQgMQpAQCAtMTY0LDI0ICsxOTksNDcgQEAKICAgZXhpdCAwCiBmaQogCitpZiB0ZXN0IC16ICIkZGlyX2FyZyI7IHRoZW4KKyAgdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMgMTUKKworICAjIFNldCB1bWFzayBzbyBhcyBub3QgdG8gY3JlYXRlIHRlbXBzIHdpdGggdG9vLWdlbmVyb3VzIG1vZGVzLgorICAjIEhvd2V2ZXIsICdzdHJpcCcgcmVxdWlyZXMgYm90aCByZWFkIGFuZCB3cml0ZSBhY2Nlc3MgdG8gdGVtcHMuCisgIGNhc2UgJG1vZGUgaW4KKyAgICAjIE9wdGltaXplIGNvbW1vbiBjYXNlcy4KKyAgICAqNjQ0KSBjcF91bWFzaz0xMzM7OworICAgICo3NTUpIGNwX3VtYXNrPTIyOzsKKworICAgICpbMC03XSkKKyAgICAgIGlmIHRlc3QgLXogIiRzdHJpcGNtZCI7IHRoZW4KKwl1X3BsdXNfcnc9CisgICAgICBlbHNlCisJdV9wbHVzX3J3PSclIDIwMCcKKyAgICAgIGZpCisgICAgICBjcF91bWFzaz1gZXhwciAnKCcgNzc3IC0gJG1vZGUgJSAxMDAwICcpJyAkdV9wbHVzX3J3YDs7CisgICAgKikKKyAgICAgIGlmIHRlc3QgLXogIiRzdHJpcGNtZCI7IHRoZW4KKwl1X3BsdXNfcnc9CisgICAgICBlbHNlCisJdV9wbHVzX3J3PSx1K3J3CisgICAgICBmaQorICAgICAgY3BfdW1hc2s9JG1vZGUkdV9wbHVzX3J3OzsKKyAgZXNhYworZmkKKwogZm9yIHNyYwogZG8KICAgIyBQcm90ZWN0IG5hbWVzIHN0YXJ0aW5nIHdpdGggYC0nLgogICBjYXNlICRzcmMgaW4KLSAgICAtKikgc3JjPS4vJHNyYyA7OworICAgIC0qKSBzcmM9Li8kc3JjOzsKICAgZXNhYwogCiAgIGlmIHRlc3QgLW4gIiRkaXJfYXJnIjsgdGhlbgogICAgIGRzdD0kc3JjCi0gICAgc3JjPQotCi0gICAgaWYgdGVzdCAtZCAiJGRzdCI7IHRoZW4KLSAgICAgIG1rZGlyY21kPToKLSAgICAgIGNobW9kY21kPQotICAgIGVsc2UKLSAgICAgIG1rZGlyY21kPSRta2RpcnByb2cKLSAgICBmaQorICAgIGRzdGRpcj0kZHN0CisgICAgdGVzdCAtZCAiJGRzdGRpciIKKyAgICBkc3RkaXJfc3RhdHVzPSQ/CiAgIGVsc2UKKwogICAgICMgV2FpdGluZyBmb3IgdGhpcyB0byBiZSBkZXRlY3RlZCBieSB0aGUgIiRjcHByb2cgJHNyYyAkZHN0dG1wIiBjb21tYW5kCiAgICAgIyBtaWdodCBjYXVzZSBkaXJlY3RvcmllcyB0byBiZSBjcmVhdGVkLCB3aGljaCB3b3VsZCBiZSBlc3BlY2lhbGx5IGJhZAogICAgICMgaWYgJHNyYyAoYW5kIHRodXMgJGRzdHRtcCkgY29udGFpbnMgJyonLgpAQCAtMTkwLDcxICsyNDgsMTk5IEBACiAgICAgICBleGl0IDEKICAgICBmaQogCi0gICAgaWYgdGVzdCAteiAiJGRzdGFyZyI7IHRoZW4KKyAgICBpZiB0ZXN0IC16ICIkZHN0X2FyZyI7IHRoZW4KICAgICAgIGVjaG8gIiQwOiBubyBkZXN0aW5hdGlvbiBzcGVjaWZpZWQuIiA+JjIKICAgICAgIGV4aXQgMQogICAgIGZpCiAKLSAgICBkc3Q9JGRzdGFyZworICAgIGRzdD0kZHN0X2FyZwogICAgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KICAgICBjYXNlICRkc3QgaW4KLSAgICAgIC0qKSBkc3Q9Li8kZHN0IDs7CisgICAgICAtKikgZHN0PS4vJGRzdDs7CiAgICAgZXNhYwogCiAgICAgIyBJZiBkZXN0aW5hdGlvbiBpcyBhIGRpcmVjdG9yeSwgYXBwZW5kIHRoZSBpbnB1dCBmaWxlbmFtZTsgd29uJ3Qgd29yawogICAgICMgaWYgZG91YmxlIHNsYXNoZXMgYXJlbid0IGlnbm9yZWQuCiAgICAgaWYgdGVzdCAtZCAiJGRzdCI7IHRoZW4KICAgICAgIGlmIHRlc3QgLW4gIiRub190YXJnZXRfZGlyZWN0b3J5IjsgdGhlbgotCWVjaG8gIiQwOiAkZHN0YXJnOiBJcyBhIGRpcmVjdG9yeSIgPiYyCisJZWNobyAiJDA6ICRkc3RfYXJnOiBJcyBhIGRpcmVjdG9yeSIgPiYyCiAJZXhpdCAxCiAgICAgICBmaQotICAgICAgZHN0PSRkc3QvYGJhc2VuYW1lICIkc3JjImAKKyAgICAgIGRzdGRpcj0kZHN0CisgICAgICBkc3Q9JGRzdGRpci9gYmFzZW5hbWUgIiRzcmMiYAorICAgICAgZHN0ZGlyX3N0YXR1cz0wCisgICAgZWxzZQorICAgICAgIyBQcmVmZXIgZGlybmFtZSwgYnV0IGZhbGwgYmFjayBvbiBhIHN1YnN0aXR1dGUgaWYgZGlybmFtZSBmYWlscy4KKyAgICAgIGRzdGRpcj1gCisJKGRpcm5hbWUgIiRkc3QiKSAyPi9kZXYvbnVsbCB8fAorCWV4cHIgWCIkZHN0IiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8qJCcgXHwgXAorCSAgICAgWCIkZHN0IiA6ICdYXCgvL1wpW14vXScgXHwgXAorCSAgICAgWCIkZHN0IiA6ICdYXCgvL1wpJCcgXHwgXAorCSAgICAgWCIkZHN0IiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKKwllY2hvIFgiJGRzdCIgfAorCSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQveworCQkgICBzLy9cMS8KKwkJICAgcQorCQkgfQorCQkgL15YXChcL1wvXClbXi9dLioveworCQkgICBzLy9cMS8KKwkJICAgcQorCQkgfQorCQkgL15YXChcL1wvXCkkL3sKKwkJICAgcy8vXDEvCisJCSAgIHEKKwkJIH0KKwkJIC9eWFwoXC9cKS4qL3sKKwkJICAgcy8vXDEvCisJCSAgIHEKKwkJIH0KKwkJIHMvLiovLi87IHEnCisgICAgICBgCisKKyAgICAgIHRlc3QgLWQgIiRkc3RkaXIiCisgICAgICBkc3RkaXJfc3RhdHVzPSQ/CiAgICAgZmkKICAgZmkKIAotICAjIFRoaXMgc2VkIGNvbW1hbmQgZW11bGF0ZXMgdGhlIGRpcm5hbWUgY29tbWFuZC4KLSAgZHN0ZGlyPWBlY2hvICIkZHN0IiB8IHNlZCAtZSAncywvKiQsLDtzLFteL10qJCwsO3MsLyokLCw7cyxeJCwuLCdgCisgIG9ic29sZXRlX21rZGlyX3VzZWQ9ZmFsc2UKIAotICAjIE1ha2Ugc3VyZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzLgorICBpZiB0ZXN0ICRkc3RkaXJfc3RhdHVzICE9IDA7IHRoZW4KKyAgICBjYXNlICRwb3NpeF9ta2RpciBpbgorICAgICAgJycpCisJIyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9kZSA3NTUgYXMgbW9kaWZpZWQgYnkgdGhlIHVtYXNrLgorCSMgVGhpcyBpcyBsaWtlIEZyZWVCU0QgJ2luc3RhbGwnIGFzIG9mIDE5OTctMTAtMjguCisJdW1hc2s9YHVtYXNrYAorCWNhc2UgJHN0cmlwY21kLiR1bWFzayBpbgorCSAgIyBPcHRpbWl6ZSBjb21tb24gY2FzZXMuCisJICAqWzIzNjddWzIzNjddKSBta2Rpcl91bWFzaz0kdW1hc2s7OworCSAgLiowWzAyXVswMl0gfCAuWzAyXVswMl0gfCAuWzAyXSkgbWtkaXJfdW1hc2s9MjI7OwogCi0gICMgU2tpcCBsb3RzIG9mIHN0YXQgY2FsbHMgaW4gdGhlIHVzdWFsIGNhc2UuCi0gIGlmIHRlc3QgISAtZCAiJGRzdGRpciI7IHRoZW4KLSAgICBkZWZhdWx0SUZTPScKLQkgJwotICAgIElGUz0iJHtJRlMtJGRlZmF1bHRJRlN9IgorCSAgKlswLTddKQorCSAgICBta2Rpcl91bWFzaz1gZXhwciAkdW1hc2sgKyAyMiBcCisJICAgICAgLSAkdW1hc2sgJSAxMDAgJSA0MCArICR1bWFzayAlIDIwIFwKKwkgICAgICAtICR1bWFzayAlIDEwICUgNCArICR1bWFzayAlIDIKKwkgICAgYDs7CisJICAqKSBta2Rpcl91bWFzaz0kdW1hc2ssZ28tdzs7CisJZXNhYwogCi0gICAgb0lGUz0kSUZTCi0gICAgIyBTb21lIHNoJ3MgY2FuJ3QgaGFuZGxlIElGUz0vIGZvciBzb21lIHJlYXNvbi4KLSAgICBJRlM9JyUnCi0gICAgc2V0IHggYGVjaG8gIiRkc3RkaXIiIHwgc2VkIC1lICdzQC9AJUBnJyAtZSAnc0BeJUAvQCdgCi0gICAgc2hpZnQKLSAgICBJRlM9JG9JRlMKKwkjIFdpdGggLWQsIGNyZWF0ZSB0aGUgbmV3IGRpcmVjdG9yeSB3aXRoIHRoZSB1c2VyLXNwZWNpZmllZCBtb2RlLgorCSMgT3RoZXJ3aXNlLCByZWx5IG9uICRta2Rpcl91bWFzay4KKwlpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4KKwkgIG1rZGlyX21vZGU9LW0kbW9kZQorCWVsc2UKKwkgIG1rZGlyX21vZGU9CisJZmkKIAotICAgIHBhdGhjb21wPQorCXBvc2l4X21rZGlyPWZhbHNlCisJY2FzZSAkdW1hc2sgaW4KKwkgICpbMTIzNTY3XVswLTddWzAtN10pCisJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0cyB1K3d4IGJpdHMgcmVnYXJkbGVzcyBvZiB1bWFzaywgd2hpY2gKKwkgICAgIyBpcyBpbmNvbXBhdGlibGUgd2l0aCBGcmVlQlNEICdpbnN0YWxsJyB3aGVuICh1bWFzayAmIDMwMCkgIT0gMC4KKwkgICAgOzsKKwkgICopCisJICAgIHRtcGRpcj0ke1RNUERJUi0vdG1wfS9pbnMkUkFORE9NLSQkCisJICAgIHRyYXAgJ3JldD0kPzsgcm1kaXIgIiR0bXBkaXIvZCIgIiR0bXBkaXIiIDI+L2Rldi9udWxsOyBleGl0ICRyZXQnIDAKIAotICAgIHdoaWxlIHRlc3QgJCMgLW5lIDAgOyBkbwotICAgICAgcGF0aGNvbXA9JHBhdGhjb21wJDEKKwkgICAgaWYgKHVtYXNrICRta2Rpcl91bWFzayAmJgorCQlleGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiR0bXBkaXIvZCIpID4vZGV2L251bGwgMj4mMQorCSAgICB0aGVuCisJICAgICAgaWYgdGVzdCAteiAiJGRpcl9hcmciIHx8IHsKKwkJICAgIyBDaGVjayBmb3IgUE9TSVggaW5jb21wYXRpYmlsaXRpZXMgd2l0aCAtbS4KKwkJICAgIyBIUC1VWCAxMS4yMyBhbmQgSVJJWCA2LjUgbWtkaXIgLW0gLXAgc2V0cyBncm91cC0gb3IKKwkJICAgIyBvdGhlci13cml0ZWFibGUgYml0IG9mIHBhcmVudCBkaXJlY3Rvcnkgd2hlbiBpdCBzaG91bGRuJ3QuCisJCSAgICMgRnJlZUJTRCA2LjEgbWtkaXIgLW0gLXAgc2V0cyBtb2RlIG9mIGV4aXN0aW5nIGRpcmVjdG9yeS4KKwkJICAgbHNfbGRfdG1wZGlyPWBscyAtbGQgIiR0bXBkaXIiYAorCQkgICBjYXNlICRsc19sZF90bXBkaXIgaW4KKwkJICAgICBkPz8/Py0/ci0qKSBkaWZmZXJlbnRfbW9kZT03MDA7OworCQkgICAgIGQ/Pz8/LT8tLSopIGRpZmZlcmVudF9tb2RlPTc1NTs7CisJCSAgICAgKikgZmFsc2U7OworCQkgICBlc2FjICYmCisJCSAgICRta2RpcnByb2cgLW0kZGlmZmVyZW50X21vZGUgLXAgLS0gIiR0bXBkaXIiICYmIHsKKwkJICAgICBsc19sZF90bXBkaXJfMT1gbHMgLWxkICIkdG1wZGlyImAKKwkJICAgICB0ZXN0ICIkbHNfbGRfdG1wZGlyIiA9ICIkbHNfbGRfdG1wZGlyXzEiCisJCSAgIH0KKwkJIH0KKwkgICAgICB0aGVuIHBvc2l4X21rZGlyPToKKwkgICAgICBmaQorCSAgICAgIHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIgorCSAgICBlbHNlCisJICAgICAgIyBSZW1vdmUgYW55IGRpcnMgbGVmdCBiZWhpbmQgYnkgYW5jaWVudCBta2RpciBpbXBsZW1lbnRhdGlvbnMuCisJICAgICAgcm1kaXIgLi8kbWtkaXJfbW9kZSAuLy1wIC4vLS0gMj4vZGV2L251bGwKKwkgICAgZmkKKwkgICAgdHJhcCAnJyAwOzsKKwllc2FjOzsKKyAgICBlc2FjCisKKyAgICBpZgorICAgICAgJHBvc2l4X21rZGlyICYmICgKKwl1bWFzayAkbWtkaXJfdW1hc2sgJiYKKwkkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiCisgICAgICApCisgICAgdGhlbiA6CisgICAgZWxzZQorCisgICAgICAjIFRoZSB1bWFzayBpcyByaWRpY3Vsb3VzLCBvciBta2RpciBkb2VzIG5vdCBjb25mb3JtIHRvIFBPU0lYLAorICAgICAgIyBvciBpdCBmYWlsZWQgcG9zc2libHkgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24uICBDcmVhdGUgdGhlCisgICAgICAjIGRpcmVjdG9yeSB0aGUgc2xvdyB3YXksIHN0ZXAgYnkgc3RlcCwgY2hlY2tpbmcgZm9yIHJhY2VzIGFzIHdlIGdvLgorCisgICAgICBjYXNlICRkc3RkaXIgaW4KKwkvKikgcHJlZml4PScvJzs7CisJLSopIHByZWZpeD0nLi8nOzsKKwkqKSAgcHJlZml4PScnOzsKKyAgICAgIGVzYWMKKworICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIKKworICAgICAgb0lGUz0kSUZTCisgICAgICBJRlM9LworICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mCisgICAgICBzZXQgZm5vcmQgJGRzdGRpcgogICAgICAgc2hpZnQKLSAgICAgIGlmIHRlc3QgISAtZCAiJHBhdGhjb21wIjsgdGhlbgotICAgICAgICAkbWtkaXJwcm9nICIkcGF0aGNvbXAiCi0JIyBta2RpciBjYW4gZmFpbCB3aXRoIGEgYEZpbGUgZXhpc3QnIGVycm9yIGluIGNhc2Ugc2V2ZXJhbAotCSMgaW5zdGFsbC1zaCBhcmUgY3JlYXRpbmcgdGhlIGRpcmVjdG9yeSBjb25jdXJyZW50bHkuICBUaGlzCi0JIyBpcyBPSy4KLQl0ZXN0IC1kICIkcGF0aGNvbXAiIHx8IGV4aXQKKyAgICAgICRwb3NpeF9nbG9iIHNldCArZgorICAgICAgSUZTPSRvSUZTCisKKyAgICAgIHByZWZpeGVzPQorCisgICAgICBmb3IgZAorICAgICAgZG8KKwl0ZXN0IC16ICIkZCIgJiYgY29udGludWUKKworCXByZWZpeD0kcHJlZml4JGQKKwlpZiB0ZXN0IC1kICIkcHJlZml4IjsgdGhlbgorCSAgcHJlZml4ZXM9CisJZWxzZQorCSAgaWYgJHBvc2l4X21rZGlyOyB0aGVuCisJICAgICh1bWFzaz0kbWtkaXJfdW1hc2sgJiYKKwkgICAgICRkb2l0X2V4ZWMgJG1rZGlycHJvZyAkbWtkaXJfbW9kZSAtcCAtLSAiJGRzdGRpciIpICYmIGJyZWFrCisJICAgICMgRG9uJ3QgZmFpbCBpZiB0d28gaW5zdGFuY2VzIGFyZSBydW5uaW5nIGNvbmN1cnJlbnRseS4KKwkgICAgdGVzdCAtZCAiJHByZWZpeCIgfHwgZXhpdCAxCisJICBlbHNlCisJICAgIGNhc2UgJHByZWZpeCBpbgorCSAgICAgICpcJyopIHFwcmVmaXg9YGVjaG8gIiRwcmVmaXgiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKKwkgICAgICAqKSBxcHJlZml4PSRwcmVmaXg7OworCSAgICBlc2FjCisJICAgIHByZWZpeGVzPSIkcHJlZml4ZXMgJyRxcHJlZml4JyIKKwkgIGZpCisJZmkKKwlwcmVmaXg9JHByZWZpeC8KKyAgICAgIGRvbmUKKworICAgICAgaWYgdGVzdCAtbiAiJHByZWZpeGVzIjsgdGhlbgorCSMgRG9uJ3QgZmFpbCBpZiB0d28gaW5zdGFuY2VzIGFyZSBydW5uaW5nIGNvbmN1cnJlbnRseS4KKwkodW1hc2sgJG1rZGlyX3VtYXNrICYmCisJIGV2YWwgIlwkZG9pdF9leGVjIFwkbWtkaXJwcm9nICRwcmVmaXhlcyIpIHx8CisJICB0ZXN0IC1kICIkZHN0ZGlyIiB8fCBleGl0IDEKKwlvYnNvbGV0ZV9ta2Rpcl91c2VkPXRydWUKICAgICAgIGZpCi0gICAgICBwYXRoY29tcD0kcGF0aGNvbXAvCi0gICAgZG9uZQorICAgIGZpCiAgIGZpCiAKICAgaWYgdGVzdCAtbiAiJGRpcl9hcmciOyB0aGVuCi0gICAgJGRvaXQgJG1rZGlyY21kICIkZHN0IiBcCi0gICAgICAmJiB7IHRlc3QgLXogIiRjaG93bmNtZCIgfHwgJGRvaXQgJGNob3duY21kICIkZHN0IjsgfSBcCi0gICAgICAmJiB7IHRlc3QgLXogIiRjaGdycGNtZCIgfHwgJGRvaXQgJGNoZ3JwY21kICIkZHN0IjsgfSBcCi0gICAgICAmJiB7IHRlc3QgLXogIiRzdHJpcGNtZCIgfHwgJGRvaXQgJHN0cmlwY21kICIkZHN0IjsgfSBcCi0gICAgICAmJiB7IHRlc3QgLXogIiRjaG1vZGNtZCIgfHwgJGRvaXQgJGNobW9kY21kICIkZHN0IjsgfQotCisgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdCI7IH0gJiYKKyAgICB7IHRlc3QgLXogIiRjaGdycGNtZCIgfHwgJGRvaXQgJGNoZ3JwY21kICIkZHN0IjsgfSAmJgorICAgIHsgdGVzdCAiJG9ic29sZXRlX21rZGlyX3VzZWQkY2hvd25jbWQkY2hncnBjbWQiID0gZmFsc2UgfHwKKyAgICAgIHRlc3QgLXogIiRjaG1vZGNtZCIgfHwgJGRvaXQgJGNobW9kY21kICRtb2RlICIkZHN0IjsgfSB8fCBleGl0IDEKICAgZWxzZQotICAgIGRzdGZpbGU9YGJhc2VuYW1lICIkZHN0ImAKIAogICAgICMgTWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhlIHByb3BlciBkaXJlY3RvcnkuCiAgICAgZHN0dG1wPSRkc3RkaXIvX2luc3QuJCRfCkBAIC0yNjIsMTAgKzQ0OCw5IEBACiAKICAgICAjIFRyYXAgdG8gY2xlYW4gdXAgdGhvc2UgdGVtcCBmaWxlcyBhdCBleGl0LgogICAgIHRyYXAgJ3JldD0kPzsgcm0gLWYgIiRkc3R0bXAiICIkcm10bXAiICYmIGV4aXQgJHJldCcgMAotICAgIHRyYXAgJyhleGl0ICQ/KTsgZXhpdCcgMSAyIDEzIDE1CiAKICAgICAjIENvcHkgdGhlIGZpbGUgbmFtZSB0byB0aGUgdGVtcCBuYW1lLgotICAgICRkb2l0ICRjcHByb2cgIiRzcmMiICIkZHN0dG1wIiAmJgorICAgICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bwcm9nICIkc3JjIiAiJGRzdHRtcCIpICYmCiAKICAgICAjIGFuZCBzZXQgYW55IG9wdGlvbnM7IGRvIGNobW9kIGxhc3QgdG8gcHJlc2VydmUgc2V0dWlkIGJpdHMuCiAgICAgIwpAQCAtMjczLDUxICs0NTgsNjMgQEAKICAgICAjIGlnbm9yZSBlcnJvcnMgZnJvbSBhbnkgb2YgdGhlc2UsIGp1c3QgbWFrZSBzdXJlIG5vdCB0byBpZ25vcmUKICAgICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNwcHJvZyAkc3JjICRkc3R0bXAiIGNvbW1hbmQuCiAgICAgIwotICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQgIiRkc3R0bXAiOyB9IFwKLSAgICAgICYmIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8fCAkZG9pdCAkY2hncnBjbWQgIiRkc3R0bXAiOyB9IFwKLSAgICAgICYmIHsgdGVzdCAteiAiJHN0cmlwY21kIiB8fCAkZG9pdCAkc3RyaXBjbWQgIiRkc3R0bXAiOyB9IFwKLSAgICAgICYmIHsgdGVzdCAteiAiJGNobW9kY21kIiB8fCAkZG9pdCAkY2htb2RjbWQgIiRkc3R0bXAiOyB9ICYmCisgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93bmNtZCAiJGRzdHRtcCI7IH0gJiYKKyAgICB7IHRlc3QgLXogIiRjaGdycGNtZCIgfHwgJGRvaXQgJGNoZ3JwY21kICIkZHN0dG1wIjsgfSAmJgorICAgIHsgdGVzdCAteiAiJHN0cmlwY21kIiB8fCAkZG9pdCAkc3RyaXBjbWQgIiRkc3R0bXAiOyB9ICYmCisgICAgeyB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdHRtcCI7IH0gJiYKIAotICAgICMgTm93IHJlbmFtZSB0aGUgZmlsZSB0byB0aGUgcmVhbCBkZXN0aW5hdGlvbi4KLSAgICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRtcCIgIiRkc3RkaXIvJGRzdGZpbGUiIDI+L2Rldi9udWxsIFwKLSAgICAgIHx8IHsKLQkgICAjIFRoZSByZW5hbWUgZmFpbGVkLCBwZXJoYXBzIGJlY2F1c2UgbXYgY2FuJ3QgcmVuYW1lIHNvbWV0aGluZyBlbHNlCi0JICAgIyB0byBpdHNlbGYsIG9yIHBlcmhhcHMgYmVjYXVzZSBtdiBpcyBzbyBhbmNpZW50IHRoYXQgaXQgZG9lcyBub3QKLQkgICAjIHN1cHBvcnQgLWYuCisgICAgIyBJZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291bGRuJ3QgY2hhbmdlIHRoZSBmaWxlLgorICAgIGlmICRjb3B5X29uX2NoYW5nZSAmJgorICAgICAgIG9sZD1gTENfQUxMPUMgbHMgLWRsTCAiJGRzdCIJMj4vZGV2L251bGxgICYmCisgICAgICAgbmV3PWBMQ19BTEw9QyBscyAtZGxMICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKIAotCSAgICMgTm93IHJlbW92ZSBvciBtb3ZlIGFzaWRlIGFueSBvbGQgZmlsZSBhdCBkZXN0aW5hdGlvbiBsb2NhdGlvbi4KLQkgICAjIFdlIHRyeSB0aGlzIHR3byB3YXlzIHNpbmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQotCSAgICMgc3lzdGVtcyBhbmQgdGhlIGRlc3RpbmF0aW9uIGZpbGUgbWlnaHQgYmUgYnVzeSBmb3Igb3RoZXIKLQkgICAjIHJlYXNvbnMuICBJbiB0aGlzIGNhc2UsIHRoZSBmaW5hbCBjbGVhbnVwIG1pZ2h0IGZhaWwgYnV0IHRoZSBuZXcKLQkgICAjIGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5LgotCSAgIHsKLQkgICAgIGlmIHRlc3QgLWYgIiRkc3RkaXIvJGRzdGZpbGUiOyB0aGVuCi0JICAgICAgICRkb2l0ICRybWNtZCAtZiAiJGRzdGRpci8kZHN0ZmlsZSIgMj4vZGV2L251bGwgXAotCSAgICAgICB8fCAkZG9pdCAkbXZjbWQgLWYgIiRkc3RkaXIvJGRzdGZpbGUiICIkcm10bXAiIDI+L2Rldi9udWxsIFwKLQkgICAgICAgfHwgewotCQkgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVuYW1lICRkc3RkaXIvJGRzdGZpbGUiID4mMgotCQkgKGV4aXQgMSk7IGV4aXQgMQotCSAgICAgICB9Ci0JICAgICBlbHNlCi0JICAgICAgIDoKLQkgICAgIGZpCi0JICAgfSAmJgorICAgICAgIGV2YWwgIiRpbml0aWFsaXplX3Bvc2l4X2dsb2IiICYmCisgICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mICYmCisgICAgICAgc2V0IFggJG9sZCAmJiBvbGQ9OiQyOiQ0OiQ1OiQ2ICYmCisgICAgICAgc2V0IFggJG5ldyAmJiBuZXc9OiQyOiQ0OiQ1OiQ2ICYmCisgICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmICYmCiAKLQkgICAjIE5vdyByZW5hbWUgdGhlIGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCi0JICAgJGRvaXQgJG12Y21kICIkZHN0dG1wIiAiJGRzdGRpci8kZHN0ZmlsZSIKLQkgfQotICAgIH0KLSAgZmkgfHwgeyAoZXhpdCAxKTsgZXhpdCAxOyB9CisgICAgICAgdGVzdCAiJG9sZCIgPSAiJG5ldyIgJiYKKyAgICAgICAkY21wcHJvZyAiJGRzdCIgIiRkc3R0bXAiID4vZGV2L251bGwgMj4mMQorICAgIHRoZW4KKyAgICAgIHJtIC1mICIkZHN0dG1wIgorICAgIGVsc2UKKyAgICAgICMgUmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFsIGRlc3RpbmF0aW9uLgorICAgICAgJGRvaXQgJG12Y21kIC1mICIkZHN0dG1wIiAiJGRzdCIgMj4vZGV2L251bGwgfHwKKworICAgICAgIyBUaGUgcmVuYW1lIGZhaWxlZCwgcGVyaGFwcyBiZWNhdXNlIG12IGNhbid0IHJlbmFtZSBzb21ldGhpbmcgZWxzZQorICAgICAgIyB0byBpdHNlbGYsIG9yIHBlcmhhcHMgYmVjYXVzZSBtdiBpcyBzbyBhbmNpZW50IHRoYXQgaXQgZG9lcyBub3QKKyAgICAgICMgc3VwcG9ydCAtZi4KKyAgICAgIHsKKwkjIE5vdyByZW1vdmUgb3IgbW92ZSBhc2lkZSBhbnkgb2xkIGZpbGUgYXQgZGVzdGluYXRpb24gbG9jYXRpb24uCisJIyBXZSB0cnkgdGhpcyB0d28gd2F5cyBzaW5jZSBybSBjYW4ndCB1bmxpbmsgaXRzZWxmIG9uIHNvbWUKKwkjIHN5c3RlbXMgYW5kIHRoZSBkZXN0aW5hdGlvbiBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90aGVyCisJIyByZWFzb25zLiAgSW4gdGhpcyBjYXNlLCB0aGUgZmluYWwgY2xlYW51cCBtaWdodCBmYWlsIGJ1dCB0aGUgbmV3CisJIyBmaWxlIHNob3VsZCBzdGlsbCBpbnN0YWxsIHN1Y2Nlc3NmdWxseS4KKwl7CisJICB0ZXN0ICEgLWYgIiRkc3QiIHx8CisJICAkZG9pdCAkcm1jbWQgLWYgIiRkc3QiIDI+L2Rldi9udWxsIHx8CisJICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdCIgIiRybXRtcCIgMj4vZGV2L251bGwgJiYKKwkgICAgeyAkZG9pdCAkcm1jbWQgLWYgIiRybXRtcCIgMj4vZGV2L251bGw7IDo7IH0KKwkgIH0gfHwKKwkgIHsgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVuYW1lICRkc3QiID4mMgorCSAgICAoZXhpdCAxKTsgZXhpdCAxCisJICB9CisJfSAmJgorCisJIyBOb3cgcmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFsIGRlc3RpbmF0aW9uLgorCSRkb2l0ICRtdmNtZCAiJGRzdHRtcCIgIiRkc3QiCisgICAgICB9CisgICAgZmkgfHwgZXhpdCAxCisKKyAgICB0cmFwICcnIDAKKyAgZmkKIGRvbmUKIAotIyBUaGUgZmluYWwgbGl0dGxlIHRyaWNrIHRvICJjb3JyZWN0bHkiIHBhc3MgdGhlIGV4aXQgc3RhdHVzIHRvIHRoZSBleGl0IHRyYXAuCi17Ci0gIChleGl0IDApOyBleGl0IDAKLX0KLQogIyBMb2NhbCB2YXJpYWJsZXM6CiAjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKICMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgogIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKLSMgdGltZS1zdGFtcC1lbmQ6ICIkIgorIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIKKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgogIyBFbmQ6CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2xpYmZmaS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9saWJmZmkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGU0OTAyCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9saWJmZmkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMCwwICsxLDU5NSBAQAorLy8gISQqVVRGOCokIQoreworCWFyY2hpdmVWZXJzaW9uID0gMTsKKwljbGFzc2VzID0geworCX07CisJb2JqZWN0VmVyc2lvbiA9IDQ2OworCW9iamVjdHMgPSB7CisKKy8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCisJCTZDNDNDQkRDMTUzNEY3NkYwMDE2MjM2NCAvKiBmZmkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQkJEMTUzNEY3NkYwMDE2MjM2NCAvKiBmZmkuYyAqLzsgfTsKKwkJNkM0M0NCREQxNTM0Rjc2RjAwMTYyMzY0IC8qIHN5c3YuUyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQkJGMTUzNEY3NkYwMDE2MjM2NCAvKiBzeXN2LlMgKi87IH07CisJCTZDNDNDQkRFMTUzNEY3NkYwMDE2MjM2NCAvKiB0cmFtcG9saW5lLlMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0JDMDE1MzRGNzZGMDAxNjIzNjQgLyogdHJhbXBvbGluZS5TICovOyB9OworCQk2QzQzQ0JFNjE1MzRGNzZGMDAxNjIzNjQgLyogZGFyd2luLlMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0JDOTE1MzRGNzZGMDAxNjIzNjQgLyogZGFyd2luLlMgKi87IH07CisJCTZDNDNDQkU4MTUzNEY3NkYwMDE2MjM2NCAvKiBmZmkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQkNCMTUzNEY3NkYwMDE2MjM2NCAvKiBmZmkuYyAqLzsgfTsKKwkJNkM0M0NCRTkxNTM0Rjc2RjAwMTYyMzY0IC8qIGZmaTY0LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0JDQzE1MzRGNzZGMDAxNjIzNjQgLyogZmZpNjQuYyAqLzsgfTsKKwkJNkM0M0NDMUYxNTM0Rjc3ODAwMTYyMzY0IC8qIGRhcndpbi5TIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMDUxNTM0Rjc3ODAwMTYyMzY0IC8qIGRhcndpbi5TICovOyB9OworCQk2QzQzQ0MyMDE1MzRGNzc4MDAxNjIzNjQgLyogZGFyd2luNjQuUyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQzA2MTUzNEY3NzgwMDE2MjM2NCAvKiBkYXJ3aW42NC5TICovOyB9OworCQk2QzQzQ0MyMTE1MzRGNzc4MDAxNjIzNjQgLyogZmZpLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0MwNzE1MzRGNzc4MDAxNjIzNjQgLyogZmZpLmMgKi87IH07CisJCTZDNDNDQzIyMTUzNEY3NzgwMDE2MjM2NCAvKiBmZmk2NC5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMDgxNTM0Rjc3ODAwMTYyMzY0IC8qIGZmaTY0LmMgKi87IH07CisJCTZDNDNDQzJGMTUzNEY3QkUwMDE2MjM2NCAvKiBjbG9zdXJlcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMjgxNTM0RjdCRTAwMTYyMzY0IC8qIGNsb3N1cmVzLmMgKi87IH07CisJCTZDNDNDQzMwMTUzNEY3QkUwMDE2MjM2NCAvKiBjbG9zdXJlcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMjgxNTM0RjdCRTAwMTYyMzY0IC8qIGNsb3N1cmVzLmMgKi87IH07CisJCTZDNDNDQzMxMTUzNEY3QkUwMDE2MjM2NCAvKiBkZWJ1Zy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMjkxNTM0RjdCRTAwMTYyMzY0IC8qIGRlYnVnLmMgKi87IH07CisJCTZDNDNDQzMyMTUzNEY3QkUwMDE2MjM2NCAvKiBkZWJ1Zy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMjkxNTM0RjdCRTAwMTYyMzY0IC8qIGRlYnVnLmMgKi87IH07CisJCTZDNDNDQzMzMTUzNEY3QkUwMDE2MjM2NCAvKiBkbG1hbGxvYy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMkExNTM0RjdCRTAwMTYyMzY0IC8qIGRsbWFsbG9jLmMgKi87IH07CisJCTZDNDNDQzM0MTUzNEY3QkUwMDE2MjM2NCAvKiBkbG1hbGxvYy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMkExNTM0RjdCRTAwMTYyMzY0IC8qIGRsbWFsbG9jLmMgKi87IH07CisJCTZDNDNDQzM1MTUzNEY3QkUwMDE2MjM2NCAvKiBqYXZhX3Jhd19hcGkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQzJCMTUzNEY3QkUwMDE2MjM2NCAvKiBqYXZhX3Jhd19hcGkuYyAqLzsgfTsKKwkJNkM0M0NDMzYxNTM0RjdCRTAwMTYyMzY0IC8qIGphdmFfcmF3X2FwaS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMkIxNTM0RjdCRTAwMTYyMzY0IC8qIGphdmFfcmF3X2FwaS5jICovOyB9OworCQk2QzQzQ0MzNzE1MzRGN0JFMDAxNjIzNjQgLyogcHJlcF9jaWYuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQzJDMTUzNEY3QkUwMDE2MjM2NCAvKiBwcmVwX2NpZi5jICovOyB9OworCQk2QzQzQ0MzODE1MzRGN0JFMDAxNjIzNjQgLyogcHJlcF9jaWYuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQzJDMTUzNEY3QkUwMDE2MjM2NCAvKiBwcmVwX2NpZi5jICovOyB9OworCQk2QzQzQ0MzOTE1MzRGN0JFMDAxNjIzNjQgLyogcmF3X2FwaS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMkQxNTM0RjdCRTAwMTYyMzY0IC8qIHJhd19hcGkuYyAqLzsgfTsKKwkJNkM0M0NDM0ExNTM0RjdCRTAwMTYyMzY0IC8qIHJhd19hcGkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQzJEMTUzNEY3QkUwMDE2MjM2NCAvKiByYXdfYXBpLmMgKi87IH07CisJCTZDNDNDQzNCMTUzNEY3QkUwMDE2MjM2NCAvKiB0eXBlcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMkUxNTM0RjdCRTAwMTYyMzY0IC8qIHR5cGVzLmMgKi87IH07CisJCTZDNDNDQzNDMTUzNEY3QkUwMDE2MjM2NCAvKiB0eXBlcy5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDMkUxNTM0RjdCRTAwMTYyMzY0IC8qIHR5cGVzLmMgKi87IH07CisJCTZDNDNDQzk3MTUzNTAzMjYwMDE2MjM2NCAvKiBmZmkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQzhEMTUzNTAzMjYwMDE2MjM2NCAvKiBmZmkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTZDNDNDQzk4MTUzNTAzMjYwMDE2MjM2NCAvKiBmZmlfY29tbW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0M4RTE1MzUwMzI2MDAxNjIzNjQgLyogZmZpX2NvbW1vbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNkM0M0NDOTkxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaV9pMzg2LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0M4RjE1MzUwMzI2MDAxNjIzNjQgLyogZmZpX2kzODYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTZDNDNDQzlBMTUzNTAzMjYwMDE2MjM2NCAvKiBmZmlfeDg2XzY0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0M5MDE1MzUwMzI2MDAxNjIzNjQgLyogZmZpX3g4Nl82NC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNkM0M0NDOUIxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaWNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDOTExNTM1MDMyNjAwMTYyMzY0IC8qIGZmaWNvbmZpZy5oICovOyB9OworCQk2QzQzQ0M5QzE1MzUwMzI2MDAxNjIzNjQgLyogZmZpY29uZmlnX2kzODYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQzkyMTUzNTAzMjYwMDE2MjM2NCAvKiBmZmljb25maWdfaTM4Ni5oICovOyB9OworCQk2QzQzQ0M5RDE1MzUwMzI2MDAxNjIzNjQgLyogZmZpY29uZmlnX3g4Nl82NC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDOTMxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaWNvbmZpZ194ODZfNjQuaCAqLzsgfTsKKwkJNkM0M0NDOUUxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaXRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDOTQxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaXRhcmdldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNkM0M0NDOUYxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaXRhcmdldF9pMzg2LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0M5NTE1MzUwMzI2MDAxNjIzNjQgLyogZmZpdGFyZ2V0X2kzODYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTZDNDNDQ0EwMTUzNTAzMjYwMDE2MjM2NCAvKiBmZml0YXJnZXRfeDg2XzY0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0M5NjE1MzUwMzI2MDAxNjIzNjQgLyogZmZpdGFyZ2V0X3g4Nl82NC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNkM0M0NDQUQxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDQTIxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNkM0M0NDQUUxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaV9hcm12Ny5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDQTMxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaV9hcm12Ny5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNkM0M0NDQUYxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaV9jb21tb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQ0E0MTUzNTAzOTYwMDE2MjM2NCAvKiBmZmlfY29tbW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQk2QzQzQ0NCMDE1MzUwMzk2MDAxNjIzNjQgLyogZmZpX2kzODYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQ0E1MTUzNTAzOTYwMDE2MjM2NCAvKiBmZmlfaTM4Ni5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNkM0M0NDQjExNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDQTYxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZy5oICovOyB9OworCQk2QzQzQ0NCMjE1MzUwMzk2MDAxNjIzNjQgLyogZmZpY29uZmlnX2FybXY3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0NBNzE1MzUwMzk2MDAxNjIzNjQgLyogZmZpY29uZmlnX2FybXY3LmggKi87IH07CisJCTZDNDNDQ0IzMTUzNTAzOTYwMDE2MjM2NCAvKiBmZmljb25maWdfaTM4Ni5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDQTgxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZ19pMzg2LmggKi87IH07CisJCTZDNDNDQ0I0MTUzNTAzOTYwMDE2MjM2NCAvKiBmZml0YXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZDNDNDQ0E5MTUzNTAzOTYwMDE2MjM2NCAvKiBmZml0YXJnZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTZDNDNDQ0I1MTUzNTAzOTYwMDE2MjM2NCAvKiBmZml0YXJnZXRfYXJtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0NBQTE1MzUwMzk2MDAxNjIzNjQgLyogZmZpdGFyZ2V0X2FybS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNkM0M0NDQjYxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaXRhcmdldF9hcm12Ny5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkM0M0NDQUIxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaXRhcmdldF9hcm12Ny5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJNkM0M0NDQjcxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaXRhcmdldF9pMzg2LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2QzQzQ0NBQzE1MzUwMzk2MDAxNjIzNjQgLyogZmZpdGFyZ2V0X2kzODYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KKworLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCisJCTZDNDNDQjNEMTUzNEU5RDEwMDE2MjM2NCAvKiBsaWJmZmkuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliZmZpLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTZDNDNDQkJEMTUzNEY3NkYwMDE2MjM2NCAvKiBmZmkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gZmZpLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNDNDQkJGMTUzNEY3NkYwMDE2MjM2NCAvKiBzeXN2LlMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmFzbTsgcGF0aCA9IHN5c3YuUzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NCQzAxNTM0Rjc2RjAwMTYyMzY0IC8qIHRyYW1wb2xpbmUuUyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYXNtOyBwYXRoID0gdHJhbXBvbGluZS5TOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QzQzQ0JDOTE1MzRGNzZGMDAxNjIzNjQgLyogZGFyd2luLlMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmFzbTsgcGF0aCA9IGRhcndpbi5TOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QzQzQ0JDQjE1MzRGNzZGMDAxNjIzNjQgLyogZmZpLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IGZmaS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QzQzQ0JDQzE1MzRGNzZGMDAxNjIzNjQgLyogZmZpNjQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gZmZpNjQuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDMDUxNTM0Rjc3ODAwMTYyMzY0IC8qIGRhcndpbi5TICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5hc207IHBhdGggPSBkYXJ3aW4uUzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDMDYxNTM0Rjc3ODAwMTYyMzY0IC8qIGRhcndpbjY0LlMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmFzbTsgcGF0aCA9IGRhcndpbjY0LlM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNDNDQzA3MTUzNEY3NzgwMDE2MjM2NCAvKiBmZmkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gZmZpLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNDNDQzA4MTUzNEY3NzgwMDE2MjM2NCAvKiBmZmk2NC5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBmZmk2NC5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QzQzQ0MyODE1MzRGN0JFMDAxNjIzNjQgLyogY2xvc3VyZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gY2xvc3VyZXMuYzsgcGF0aCA9IHNyYy9jbG9zdXJlcy5jOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTZDNDNDQzI5MTUzNEY3QkUwMDE2MjM2NCAvKiBkZWJ1Zy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBkZWJ1Zy5jOyBwYXRoID0gc3JjL2RlYnVnLmM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNkM0M0NDMkExNTM0RjdCRTAwMTYyMzY0IC8qIGRsbWFsbG9jLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IGRsbWFsbG9jLmM7IHBhdGggPSBzcmMvZGxtYWxsb2MuYzsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk2QzQzQ0MyQjE1MzRGN0JFMDAxNjIzNjQgLyogamF2YV9yYXdfYXBpLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IGphdmFfcmF3X2FwaS5jOyBwYXRoID0gc3JjL2phdmFfcmF3X2FwaS5jOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTZDNDNDQzJDMTUzNEY3QkUwMDE2MjM2NCAvKiBwcmVwX2NpZi5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBwcmVwX2NpZi5jOyBwYXRoID0gc3JjL3ByZXBfY2lmLmM7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJNkM0M0NDMkQxNTM0RjdCRTAwMTYyMzY0IC8qIHJhd19hcGkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcmF3X2FwaS5jOyBwYXRoID0gc3JjL3Jhd19hcGkuYzsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OworCQk2QzQzQ0MyRTE1MzRGN0JFMDAxNjIzNjQgLyogdHlwZXMuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gdHlwZXMuYzsgcGF0aCA9IHNyYy90eXBlcy5jOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CisJCTZDNDNDQzhEMTUzNTAzMjYwMDE2MjM2NCAvKiBmZmkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZmZpLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNDNDQzhFMTUzNTAzMjYwMDE2MjM2NCAvKiBmZmlfY29tbW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaV9jb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDOEYxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaV9pMzg2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaV9pMzg2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNDNDQzkwMTUzNTAzMjYwMDE2MjM2NCAvKiBmZmlfeDg2XzY0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaV94ODZfNjQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDOTExNTM1MDMyNjAwMTYyMzY0IC8qIGZmaWNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmZmljb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDOTIxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaWNvbmZpZ19pMzg2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaWNvbmZpZ19pMzg2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNDNDQzkzMTUzNTAzMjYwMDE2MjM2NCAvKiBmZmljb25maWdfeDg2XzY0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaWNvbmZpZ194ODZfNjQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDOTQxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaXRhcmdldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmZml0YXJnZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDOTUxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaXRhcmdldF9pMzg2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaXRhcmdldF9pMzg2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNDNDQzk2MTUzNTAzMjYwMDE2MjM2NCAvKiBmZml0YXJnZXRfeDg2XzY0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaXRhcmdldF94ODZfNjQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDQTIxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmZmkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDQTMxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaV9hcm12Ny5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmZmlfYXJtdjcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDQTQxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaV9jb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZmZpX2NvbW1vbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2QzQzQ0NBNTE1MzUwMzk2MDAxNjIzNjQgLyogZmZpX2kzODYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZmZpX2kzODYuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDQTYxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmZmljb25maWcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDQTcxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZ19hcm12Ny5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmZmljb25maWdfYXJtdjcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDQTgxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZ19pMzg2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaWNvbmZpZ19pMzg2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNDNDQ0E5MTUzNTAzOTYwMDE2MjM2NCAvKiBmZml0YXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZmZpdGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZDNDNDQ0FBMTUzNTAzOTYwMDE2MjM2NCAvKiBmZml0YXJnZXRfYXJtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaXRhcmdldF9hcm0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDQUIxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaXRhcmdldF9hcm12Ny5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBmZml0YXJnZXRfYXJtdjcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkM0M0NDQUMxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaXRhcmdldF9pMzg2LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGZmaXRhcmdldF9pMzg2Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY2Rjk4MEJBMTQ3Mzg2MTMwMDA4RjEyMSAvKiBsaWJmZmkuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliZmZpLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEZyYW1ld29ya3NCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJNkM0M0NCM0ExNTM0RTlEMTAwMTYyMzY0IC8qIEZyYW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKwkJRjZGOTgwQjcxNDczODYxMzAwMDhGMTIxIC8qIEZyYW1ld29ya3MgKi8gPSB7CisJCQlpc2EgPSBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKy8qIEVuZCBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEdyb3VwIHNlY3Rpb24gKi8KKwkJNkM0M0NCQUYxNTM0Rjc2RjAwMTYyMzY0IC8qIGlPUyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNkM0M0NDQTExNTM1MDM5NjAwMTYyMzY0IC8qIGluY2x1ZGUgKi8sCisJCQkJNkM0M0NCQkIxNTM0Rjc2RjAwMTYyMzY0IC8qIHNyYyAqLywKKwkJCSk7CisJCQluYW1lID0gaU9TOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTZDNDNDQkJCMTUzNEY3NkYwMDE2MjM2NCAvKiBzcmMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTZDNDNDQkM4MTUzNEY3NkYwMDE2MjM2NCAvKiB4ODYgKi8sCisJCQkJNkM0M0NCQkMxNTM0Rjc2RjAwMTYyMzY0IC8qIGFybSAqLywKKwkJCSk7CisJCQlwYXRoID0gc3JjOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJNkM0M0NCQkMxNTM0Rjc2RjAwMTYyMzY0IC8qIGFybSAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNkM0M0NCQkQxNTM0Rjc2RjAwMTYyMzY0IC8qIGZmaS5jICovLAorCQkJCTZDNDNDQkJGMTUzNEY3NkYwMDE2MjM2NCAvKiBzeXN2LlMgKi8sCisJCQkJNkM0M0NCQzAxNTM0Rjc2RjAwMTYyMzY0IC8qIHRyYW1wb2xpbmUuUyAqLywKKwkJCSk7CisJCQlwYXRoID0gYXJtOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJNkM0M0NCQzgxNTM0Rjc2RjAwMTYyMzY0IC8qIHg4NiAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNkM0M0NCQzkxNTM0Rjc2RjAwMTYyMzY0IC8qIGRhcndpbi5TICovLAorCQkJCTZDNDNDQkNCMTUzNEY3NkYwMDE2MjM2NCAvKiBmZmkuYyAqLywKKwkJCQk2QzQzQ0JDQzE1MzRGNzZGMDAxNjIzNjQgLyogZmZpNjQuYyAqLywKKwkJCSk7CisJCQlwYXRoID0geDg2OworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJNkM0M0NCRjAxNTM0Rjc3ODAwMTYyMzY0IC8qIE9TIFggKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTZDNDNDQzhDMTUzNTAzMjYwMDE2MjM2NCAvKiBpbmNsdWRlICovLAorCQkJCTZDNDNDQkZDMTUzNEY3NzgwMDE2MjM2NCAvKiBzcmMgKi8sCisJCQkpOworCQkJbmFtZSA9ICJPUyBYIjsKKwkJCXBhdGggPSBvc3g7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk2QzQzQ0JGQzE1MzRGNzc4MDAxNjIzNjQgLyogc3JjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk2QzQzQ0MwNDE1MzRGNzc4MDAxNjIzNjQgLyogeDg2ICovLAorCQkJKTsKKwkJCXBhdGggPSBzcmM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk2QzQzQ0MwNDE1MzRGNzc4MDAxNjIzNjQgLyogeDg2ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk2QzQzQ0MwNTE1MzRGNzc4MDAxNjIzNjQgLyogZGFyd2luLlMgKi8sCisJCQkJNkM0M0NDMDYxNTM0Rjc3ODAwMTYyMzY0IC8qIGRhcndpbjY0LlMgKi8sCisJCQkJNkM0M0NDMDcxNTM0Rjc3ODAwMTYyMzY0IC8qIGZmaS5jICovLAorCQkJCTZDNDNDQzA4MTUzNEY3NzgwMDE2MjM2NCAvKiBmZmk2NC5jICovLAorCQkJKTsKKwkJCXBhdGggPSB4ODY7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk2QzQzQ0MzRDE1MzRGN0M0MDAxNjIzNjQgLyogc3JjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk2QzQzQ0MyODE1MzRGN0JFMDAxNjIzNjQgLyogY2xvc3VyZXMuYyAqLywKKwkJCQk2QzQzQ0MyOTE1MzRGN0JFMDAxNjIzNjQgLyogZGVidWcuYyAqLywKKwkJCQk2QzQzQ0MyQTE1MzRGN0JFMDAxNjIzNjQgLyogZGxtYWxsb2MuYyAqLywKKwkJCQk2QzQzQ0MyQjE1MzRGN0JFMDAxNjIzNjQgLyogamF2YV9yYXdfYXBpLmMgKi8sCisJCQkJNkM0M0NDMkMxNTM0RjdCRTAwMTYyMzY0IC8qIHByZXBfY2lmLmMgKi8sCisJCQkJNkM0M0NDMkQxNTM0RjdCRTAwMTYyMzY0IC8qIHJhd19hcGkuYyAqLywKKwkJCQk2QzQzQ0MyRTE1MzRGN0JFMDAxNjIzNjQgLyogdHlwZXMuYyAqLywKKwkJCSk7CisJCQluYW1lID0gc3JjOworCQkJcGF0aCA9IGlvczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCTZDNDNDQzhDMTUzNTAzMjYwMDE2MjM2NCAvKiBpbmNsdWRlICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk2QzQzQ0M4RDE1MzUwMzI2MDAxNjIzNjQgLyogZmZpLmggKi8sCisJCQkJNkM0M0NDOEUxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaV9jb21tb24uaCAqLywKKwkJCQk2QzQzQ0M4RjE1MzUwMzI2MDAxNjIzNjQgLyogZmZpX2kzODYuaCAqLywKKwkJCQk2QzQzQ0M5MDE1MzUwMzI2MDAxNjIzNjQgLyogZmZpX3g4Nl82NC5oICovLAorCQkJCTZDNDNDQzkxMTUzNTAzMjYwMDE2MjM2NCAvKiBmZmljb25maWcuaCAqLywKKwkJCQk2QzQzQ0M5MjE1MzUwMzI2MDAxNjIzNjQgLyogZmZpY29uZmlnX2kzODYuaCAqLywKKwkJCQk2QzQzQ0M5MzE1MzUwMzI2MDAxNjIzNjQgLyogZmZpY29uZmlnX3g4Nl82NC5oICovLAorCQkJCTZDNDNDQzk0MTUzNTAzMjYwMDE2MjM2NCAvKiBmZml0YXJnZXQuaCAqLywKKwkJCQk2QzQzQ0M5NTE1MzUwMzI2MDAxNjIzNjQgLyogZmZpdGFyZ2V0X2kzODYuaCAqLywKKwkJCQk2QzQzQ0M5NjE1MzUwMzI2MDAxNjIzNjQgLyogZmZpdGFyZ2V0X3g4Nl82NC5oICovLAorCQkJKTsKKwkJCXBhdGggPSBpbmNsdWRlOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJNkM0M0NDQTExNTM1MDM5NjAwMTYyMzY0IC8qIGluY2x1ZGUgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTZDNDNDQ0EyMTUzNTAzOTYwMDE2MjM2NCAvKiBmZmkuaCAqLywKKwkJCQk2QzQzQ0NBMzE1MzUwMzk2MDAxNjIzNjQgLyogZmZpX2FybXY3LmggKi8sCisJCQkJNkM0M0NDQTQxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaV9jb21tb24uaCAqLywKKwkJCQk2QzQzQ0NBNTE1MzUwMzk2MDAxNjIzNjQgLyogZmZpX2kzODYuaCAqLywKKwkJCQk2QzQzQ0NBNjE1MzUwMzk2MDAxNjIzNjQgLyogZmZpY29uZmlnLmggKi8sCisJCQkJNkM0M0NDQTcxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZ19hcm12Ny5oICovLAorCQkJCTZDNDNDQ0E4MTUzNTAzOTYwMDE2MjM2NCAvKiBmZmljb25maWdfaTM4Ni5oICovLAorCQkJCTZDNDNDQ0E5MTUzNTAzOTYwMDE2MjM2NCAvKiBmZml0YXJnZXQuaCAqLywKKwkJCQk2QzQzQ0NBQTE1MzUwMzk2MDAxNjIzNjQgLyogZmZpdGFyZ2V0X2FybS5oICovLAorCQkJCTZDNDNDQ0FCMTUzNTAzOTYwMDE2MjM2NCAvKiBmZml0YXJnZXRfYXJtdjcuaCAqLywKKwkJCQk2QzQzQ0NBQzE1MzUwMzk2MDAxNjIzNjQgLyogZmZpdGFyZ2V0X2kzODYuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gaW5jbHVkZTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CisJCUY2QjA4Mzk1MTQ3MjFFRTUwMDMxRDhBMSA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNkM0M0NDM0QxNTM0RjdDNDAwMTYyMzY0IC8qIHNyYyAqLywKKwkJCQk2QzQzQ0JBRjE1MzRGNzZGMDAxNjIzNjQgLyogaU9TICovLAorCQkJCTZDNDNDQkYwMTUzNEY3NzgwMDE2MjM2NCAvKiBPUyBYICovLAorCQkJCUY2Rjk4MEM2MTQ3Mzg2MjYwMDA4RjEyMSAvKiBQcm9kdWN0cyAqLywKKwkJCSk7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlGNkY5ODBDNjE0NzM4NjI2MDAwOEYxMjEgLyogUHJvZHVjdHMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUY2Rjk4MEJBMTQ3Mzg2MTMwMDA4RjEyMSAvKiBsaWJmZmkuYSAqLywKKwkJCQk2QzQzQ0IzRDE1MzRFOUQxMDAxNjIzNjQgLyogbGliZmZpLmEgKi8sCisJCQkpOworCQkJbmFtZSA9IFByb2R1Y3RzOworCQkJcGF0aCA9IC4uLy4uOworCQkJc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsKKwkJfTsKKy8qIEVuZCBQQlhHcm91cCBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWEhlYWRlcnNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJNkM0M0NCM0IxNTM0RTlEMTAwMTYyMzY0IC8qIEhlYWRlcnMgKi8gPSB7CisJCQlpc2EgPSBQQlhIZWFkZXJzQnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCQk2QzQzQ0M5NzE1MzUwMzI2MDAxNjIzNjQgLyogZmZpLmggaW4gSGVhZGVycyAqLywKKwkJCQk2QzQzQ0M5ODE1MzUwMzI2MDAxNjIzNjQgLyogZmZpX2NvbW1vbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDOTkxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaV9pMzg2LmggaW4gSGVhZGVycyAqLywKKwkJCQk2QzQzQ0M5QTE1MzUwMzI2MDAxNjIzNjQgLyogZmZpX3g4Nl82NC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDOUUxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaXRhcmdldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDOUYxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaXRhcmdldF9pMzg2LmggaW4gSGVhZGVycyAqLywKKwkJCQk2QzQzQ0NBMDE1MzUwMzI2MDAxNjIzNjQgLyogZmZpdGFyZ2V0X3g4Nl82NC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDOUIxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaWNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDOUMxNTM1MDMyNjAwMTYyMzY0IC8qIGZmaWNvbmZpZ19pMzg2LmggaW4gSGVhZGVycyAqLywKKwkJCQk2QzQzQ0M5RDE1MzUwMzI2MDAxNjIzNjQgLyogZmZpY29uZmlnX3g4Nl82NC5oIGluIEhlYWRlcnMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CisJCUY2Rjk4MEI4MTQ3Mzg2MTMwMDA4RjEyMSAvKiBIZWFkZXJzICovID0geworCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJNkM0M0NDQUQxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDQUUxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaV9hcm12Ny5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDQUYxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaV9jb21tb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTZDNDNDQ0IwMTUzNTAzOTYwMDE2MjM2NCAvKiBmZmlfaTM4Ni5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDQjQxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaXRhcmdldC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDQjUxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaXRhcmdldF9hcm0uaCBpbiBIZWFkZXJzICovLAorCQkJCTZDNDNDQ0I2MTUzNTAzOTYwMDE2MjM2NCAvKiBmZml0YXJnZXRfYXJtdjcuaCBpbiBIZWFkZXJzICovLAorCQkJCTZDNDNDQ0I3MTUzNTAzOTYwMDE2MjM2NCAvKiBmZml0YXJnZXRfaTM4Ni5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDQjExNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDQjIxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZ19hcm12Ny5oIGluIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NDQjMxNTM1MDM5NjAwMTYyMzY0IC8qIGZmaWNvbmZpZ19pMzg2LmggaW4gSGVhZGVycyAqLywKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJfTsKKy8qIEVuZCBQQlhIZWFkZXJzQnVpbGRQaGFzZSBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWE5hdGl2ZVRhcmdldCBzZWN0aW9uICovCisJCTZDNDNDQjNDMTUzNEU5RDEwMDE2MjM2NCAvKiBsaWJmZmkgT1MgWCAqLyA9IHsKKwkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA2QzQzQ0I0QTE1MzRFOUQxMDAxNjIzNjQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImxpYmZmaSBPUyBYIiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTZDNDNDQzQwMTUzNEZGM0IwMDE2MjM2NCAvKiBHZW5lcmF0ZSBTb3VyY2UgYW5kIEhlYWRlcnMgKi8sCisJCQkJNkM0M0NCMzkxNTM0RTlEMTAwMTYyMzY0IC8qIFNvdXJjZXMgKi8sCisJCQkJNkM0M0NCM0ExNTM0RTlEMTAwMTYyMzY0IC8qIEZyYW1ld29ya3MgKi8sCisJCQkJNkM0M0NCM0IxNTM0RTlEMTAwMTYyMzY0IC8qIEhlYWRlcnMgKi8sCisJCQkpOworCQkJYnVpbGRSdWxlcyA9ICgKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJsaWJmZmkgT1MgWCI7CisJCQlwcm9kdWN0TmFtZSA9ICJmZmkgT1MgWCI7CisJCQlwcm9kdWN0UmVmZXJlbmNlID0gNkM0M0NCM0QxNTM0RTlEMTAwMTYyMzY0IC8qIGxpYmZmaS5hICovOworCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlwZS5saWJyYXJ5LnN0YXRpYyI7CisJCX07CisJCUY2Rjk4MEI5MTQ3Mzg2MTMwMDA4RjEyMSAvKiBsaWJmZmkgaU9TICovID0geworCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEY2Rjk4MEM0MTQ3Mzg2MTMwMDA4RjEyMSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2ZVRhcmdldCAibGliZmZpIGlPUyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJCQk2QzQzQ0MzRTE1MzRGOEUyMDAxNjIzNjQgLyogR2VuZXJhdGUgVHJhbXBvbGluZSAqLywKKwkJCQk2QzQzQ0MzRjE1MzRGRjFCMDAxNjIzNjQgLyogR2VuZXJhdGUgU291cmNlIGFuZCBIZWFkZXJzICovLAorCQkJCUY2Rjk4MEI2MTQ3Mzg2MTMwMDA4RjEyMSAvKiBTb3VyY2VzICovLAorCQkJCUY2Rjk4MEI3MTQ3Mzg2MTMwMDA4RjEyMSAvKiBGcmFtZXdvcmtzICovLAorCQkJCUY2Rjk4MEI4MTQ3Mzg2MTMwMDA4RjEyMSAvKiBIZWFkZXJzICovLAorCQkJKTsKKwkJCWJ1aWxkUnVsZXMgPSAoCisJCQkpOworCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAibGliZmZpIGlPUyI7CisJCQlwcm9kdWN0TmFtZSA9IGZmaTsKKwkJCXByb2R1Y3RSZWZlcmVuY2UgPSBGNkY5ODBCQTE0NzM4NjEzMDAwOEYxMjEgLyogbGliZmZpLmEgKi87CisJCQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLmxpYnJhcnkuc3RhdGljIjsKKwkJfTsKKy8qIEVuZCBQQlhOYXRpdmVUYXJnZXQgc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KKwkJRjZCMDgzOTcxNDcyMUVFNTAwMzFEOEExIC8qIFByb2plY3Qgb2JqZWN0ICovID0geworCQkJaXNhID0gUEJYUHJvamVjdDsKKwkJCWF0dHJpYnV0ZXMgPSB7CisJCQkJTGFzdFVwZ3JhZGVDaGVjayA9IDA0MzA7CisJCQl9OworCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IEY2QjA4MzlBMTQ3MjFFRTUwMDMxRDhBMSAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgImxpYmZmaSIgKi87CisJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAzLjIiOworCQkJZGV2ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOworCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDA7CisJCQlrbm93blJlZ2lvbnMgPSAoCisJCQkJZW4sCisJCQkpOworCQkJbWFpbkdyb3VwID0gRjZCMDgzOTUxNDcyMUVFNTAwMzFEOEExOworCQkJcHJvZHVjdFJlZkdyb3VwID0gRjZCMDgzOTUxNDcyMUVFNTAwMzFEOEExOworCQkJcHJvamVjdERpclBhdGggPSAiIjsKKwkJCXByb2plY3RSb290ID0gIiI7CisJCQl0YXJnZXRzID0gKAorCQkJCUY2Rjk4MEI5MTQ3Mzg2MTMwMDA4RjEyMSAvKiBsaWJmZmkgaU9TICovLAorCQkJCTZDNDNDQjNDMTUzNEU5RDEwMDE2MjM2NCAvKiBsaWJmZmkgT1MgWCAqLywKKwkJCSk7CisJCX07CisvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCisKKy8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTZDNDNDQzNFMTUzNEY4RTIwMDE2MjM2NCAvKiBHZW5lcmF0ZSBUcmFtcG9saW5lICovID0geworCQkJaXNhID0gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZpbGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJbmFtZSA9ICJHZW5lcmF0ZSBUcmFtcG9saW5lIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL3Vzci9iaW4vcHl0aG9uOworCQkJc2hlbGxTY3JpcHQgPSAiaW1wb3J0IHN1YnByb2Nlc3NcbmltcG9ydCByZVxuaW1wb3J0IG9zXG5pbXBvcnQgZXJybm9cbmltcG9ydCBzeXNcblxuZGVmIG1haW4oKTpcbiAgICB3aXRoIG9wZW4oJ3NyYy9hcm0vdHJhbXBvbGluZS5TJywgJ3cnKSBhcyB0cmFtcF9vdXQ6XG4gICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKFsnYmFzaCcsICdzcmMvYXJtL2dlbnRyYW1wLnNoJ10sIHN0ZG91dD10cmFtcF9vdXQpXG4gICAgICAgIHAud2FpdCgpXG5cbmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6XG4gICAgbWFpbigpIjsKKwkJfTsKKwkJNkM0M0NDM0YxNTM0RkYxQjAwMTYyMzY0IC8qIEdlbmVyYXRlIFNvdXJjZSBhbmQgSGVhZGVycyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgU291cmNlIGFuZCBIZWFkZXJzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIi91c3IvYmluL3B5dGhvbiBnZW5lcmF0ZS1pb3Mtc291cmNlLWFuZC1oZWFkZXJzLnB5IjsKKwkJfTsKKwkJNkM0M0NDNDAxNTM0RkYzQjAwMTYyMzY0IC8qIEdlbmVyYXRlIFNvdXJjZSBhbmQgSGVhZGVycyAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiR2VuZXJhdGUgU291cmNlIGFuZCBIZWFkZXJzIjsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIi91c3IvYmluL3B5dGhvbiBnZW5lcmF0ZS1vc3gtc291cmNlLWFuZC1oZWFkZXJzLnB5IjsKKwkJfTsKKy8qIEVuZCBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTZDNDNDQjM5MTUzNEU5RDEwMDE2MjM2NCAvKiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJNkM0M0NDMUYxNTM0Rjc3ODAwMTYyMzY0IC8qIGRhcndpbi5TIGluIFNvdXJjZXMgKi8sCisJCQkJNkM0M0NDMjAxNTM0Rjc3ODAwMTYyMzY0IC8qIGRhcndpbjY0LlMgaW4gU291cmNlcyAqLywKKwkJCQk2QzQzQ0MyMTE1MzRGNzc4MDAxNjIzNjQgLyogZmZpLmMgaW4gU291cmNlcyAqLywKKwkJCQk2QzQzQ0MyMjE1MzRGNzc4MDAxNjIzNjQgLyogZmZpNjQuYyBpbiBTb3VyY2VzICovLAorCQkJCTZDNDNDQzMwMTUzNEY3QkUwMDE2MjM2NCAvKiBjbG9zdXJlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJNkM0M0NDMzIxNTM0RjdCRTAwMTYyMzY0IC8qIGRlYnVnLmMgaW4gU291cmNlcyAqLywKKwkJCQk2QzQzQ0MzNDE1MzRGN0JFMDAxNjIzNjQgLyogZGxtYWxsb2MuYyBpbiBTb3VyY2VzICovLAorCQkJCTZDNDNDQzM2MTUzNEY3QkUwMDE2MjM2NCAvKiBqYXZhX3Jhd19hcGkuYyBpbiBTb3VyY2VzICovLAorCQkJCTZDNDNDQzM4MTUzNEY3QkUwMDE2MjM2NCAvKiBwcmVwX2NpZi5jIGluIFNvdXJjZXMgKi8sCisJCQkJNkM0M0NDM0ExNTM0RjdCRTAwMTYyMzY0IC8qIHJhd19hcGkuYyBpbiBTb3VyY2VzICovLAorCQkJCTZDNDNDQzNDMTUzNEY3QkUwMDE2MjM2NCAvKiB0eXBlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CisJCUY2Rjk4MEI2MTQ3Mzg2MTMwMDA4RjEyMSAvKiBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYU291cmNlc0J1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkJNkM0M0NCREMxNTM0Rjc2RjAwMTYyMzY0IC8qIGZmaS5jIGluIFNvdXJjZXMgKi8sCisJCQkJNkM0M0NCREQxNTM0Rjc2RjAwMTYyMzY0IC8qIHN5c3YuUyBpbiBTb3VyY2VzICovLAorCQkJCTZDNDNDQkRFMTUzNEY3NkYwMDE2MjM2NCAvKiB0cmFtcG9saW5lLlMgaW4gU291cmNlcyAqLywKKwkJCQk2QzQzQ0JFNjE1MzRGNzZGMDAxNjIzNjQgLyogZGFyd2luLlMgaW4gU291cmNlcyAqLywKKwkJCQk2QzQzQ0JFODE1MzRGNzZGMDAxNjIzNjQgLyogZmZpLmMgaW4gU291cmNlcyAqLywKKwkJCQk2QzQzQ0JFOTE1MzRGNzZGMDAxNjIzNjQgLyogZmZpNjQuYyBpbiBTb3VyY2VzICovLAorCQkJCTZDNDNDQzJGMTUzNEY3QkUwMDE2MjM2NCAvKiBjbG9zdXJlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkJNkM0M0NDMzExNTM0RjdCRTAwMTYyMzY0IC8qIGRlYnVnLmMgaW4gU291cmNlcyAqLywKKwkJCQk2QzQzQ0MzMzE1MzRGN0JFMDAxNjIzNjQgLyogZGxtYWxsb2MuYyBpbiBTb3VyY2VzICovLAorCQkJCTZDNDNDQzM1MTUzNEY3QkUwMDE2MjM2NCAvKiBqYXZhX3Jhd19hcGkuYyBpbiBTb3VyY2VzICovLAorCQkJCTZDNDNDQzM3MTUzNEY3QkUwMDE2MjM2NCAvKiBwcmVwX2NpZi5jIGluIFNvdXJjZXMgKi8sCisJCQkJNkM0M0NDMzkxNTM0RjdCRTAwMTYyMzY0IC8qIHJhd19hcGkuYyBpbiBTb3VyY2VzICovLAorCQkJCTZDNDNDQzNCMTUzNEY3QkUwMDE2MjM2NCAvKiB0eXBlcy5jIGluIFNvdXJjZXMgKi8sCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJCX07CisvKiBFbmQgUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLworCisvKiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCisJCTZDNDNDQjRCMTUzNEU5RDEwMDE2MjM2NCAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBUkNIUyA9ICIkKEFSQ0hTX1NUQU5EQVJEXzMyXzY0X0JJVCkiOworCQkJCURTVFJPT1QgPSAvdG1wL2ZmaS5kc3Q7CisJCQkJRlJBTUVXT1JLX1NFQVJDSF9QQVRIUyA9ICgKKwkJCQkJIiQoaW5oZXJpdGVkKSIsCisJCQkJCSJcIiQoU1lTVEVNX0FQUFNfRElSKS9YY29kZS5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL0xpYnJhcnkvRnJhbWV3b3Jrc1wiIiwKKwkJCQkpOworCQkJCUdDQ19FTkFCTEVfT0JKQ19FWENFUFRJT05TID0gWUVTOworCQkJCUdDQ19WRVJTSU9OID0gY29tLmFwcGxlLmNvbXBpbGVycy5sbHZtLmNsYW5nLjFfMDsKKwkJCQlHQ0NfV0FSTl82NF9UT18zMl9CSVRfQ09OVkVSU0lPTiA9IFlFUzsKKwkJCQlHQ0NfV0FSTl9VTklOSVRJQUxJWkVEX0FVVE9TID0gWUVTOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjY7CisJCQkJT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsKKwkJCQlQUk9EVUNUX05BTUUgPSBmZmk7CisJCQkJU0RLUk9PVCA9IG1hY29zeDsKKwkJCX07CisJCQluYW1lID0gRGVidWc7CisJCX07CisJCTZDNDNDQjRDMTUzNEU5RDEwMDE2MjM2NCAvKiBSZWxlYXNlICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFSQ0hTID0gIiQoQVJDSFNfU1RBTkRBUkRfMzJfNjRfQklUKSI7CisJCQkJREVCVUdfSU5GT1JNQVRJT05fRk9STUFUID0gImR3YXJmLXdpdGgtZHN5bSI7CisJCQkJRFNUUk9PVCA9IC90bXAvZmZpLmRzdDsKKwkJCQlGUkFNRVdPUktfU0VBUkNIX1BBVEhTID0gKAorCQkJCQkiJChpbmhlcml0ZWQpIiwKKwkJCQkJIlwiJChTWVNURU1fQVBQU19ESVIpL1hjb2RlLmFwcC9Db250ZW50cy9EZXZlbG9wZXIvTGlicmFyeS9GcmFtZXdvcmtzXCIiLAorCQkJCSk7CisJCQkJR0NDX0VOQUJMRV9PQkpDX0VYQ0VQVElPTlMgPSBZRVM7CisJCQkJR0NDX1ZFUlNJT04gPSBjb20uYXBwbGUuY29tcGlsZXJzLmxsdm0uY2xhbmcuMV8wOworCQkJCUdDQ19XQVJOXzY0X1RPXzMyX0JJVF9DT05WRVJTSU9OID0gWUVTOworCQkJCUdDQ19XQVJOX1VOSU5JVElBTElaRURfQVVUT1MgPSBZRVM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTAuNjsKKwkJCQlQUk9EVUNUX05BTUUgPSBmZmk7CisJCQkJU0RLUk9PVCA9IG1hY29zeDsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJRjZCMDgzQUIxNDcyMUVFNTAwMzFEOEExIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFMV0FZU19TRUFSQ0hfVVNFUl9QQVRIUyA9IE5POworCQkJCUFSQ0hTID0gIiQoQVJDSFNfU1RBTkRBUkRfMzJfQklUKSI7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POworCQkJCUdDQ19DX0xBTkdVQUdFX1NUQU5EQVJEID0gZ251OTk7CisJCQkJR0NDX0RZTkFNSUNfTk9fUElDID0gTk87CisJCQkJR0NDX09QVElNSVpBVElPTl9MRVZFTCA9IDA7CisJCQkJR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUyA9ICgKKwkJCQkJIkRFQlVHPTEiLAorCQkJCQkiJChpbmhlcml0ZWQpIiwKKwkJCQkpOworCQkJCUdDQ19TWU1CT0xTX1BSSVZBVEVfRVhURVJOID0gTk87CisJCQkJR0NDX1dBUk5fQUJPVVRfTUlTU0lOR19QUk9UT1RZUEVTID0gTk87CisJCQkJR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBTFVFID0gTk87CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCUhFQURFUl9TRUFSQ0hfUEFUSFMgPSBpb3MvaW5jbHVkZTsKKwkJCQlTREtST09UID0gaXBob25lb3M7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQlGNkIwODNBQzE0NzIxRUU1MDAzMUQ4QTEgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlBTFdBWVNfU0VBUkNIX1VTRVJfUEFUSFMgPSBOTzsKKwkJCQlBUkNIUyA9ICIkKEFSQ0hTX1NUQU5EQVJEXzMyX0JJVCkiOworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBZRVM7CisJCQkJR0NDX0NfTEFOR1VBR0VfU1RBTkRBUkQgPSBnbnU5OTsKKwkJCQlHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TID0gIiI7CisJCQkJR0NDX1dBUk5fQUJPVVRfTUlTU0lOR19QUk9UT1RZUEVTID0gTk87CisJCQkJR0NDX1dBUk5fQUJPVVRfUkVUVVJOX1RZUEUgPSBZRVM7CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBTFVFID0gTk87CisJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOworCQkJCUhFQURFUl9TRUFSQ0hfUEFUSFMgPSBpb3MvaW5jbHVkZTsKKwkJCQlTREtST09UID0gaXBob25lb3M7CisJCQkJVkFMSURBVEVfUFJPRFVDVCA9IFlFUzsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJRjZGOTgwQzIxNDczODYxMzAwMDhGMTIxIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCUFSQ0hTID0gKAorCQkJCQlhcm12NiwKKwkJCQkJYXJtdjcsCisJCQkJKTsKKwkJCQlEU1RST09UID0gL3RtcC9mZmkuZHN0OworCQkJCUdDQ19QUkVDT01QSUxFX1BSRUZJWF9IRUFERVIgPSBZRVM7CisJCQkJR0NDX1RIVU1CX1NVUFBPUlQgPSBOTzsKKwkJCQlJUEhPTkVPU19ERVBMT1lNRU5UX1RBUkdFVCA9IDQuMDsKKwkJCQlPVEhFUl9MREZMQUdTID0gIi1PYmpDIjsKKwkJCQlQUk9EVUNUX05BTUUgPSBmZmk7CisJCQkJU0tJUF9JTlNUQUxMID0gWUVTOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJRjZGOTgwQzMxNDczODYxMzAwMDhGMTIxIC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQVJDSFMgPSAoCisJCQkJCWFybXY2LAorCQkJCQlhcm12NywKKwkJCQkpOworCQkJCURTVFJPT1QgPSAvdG1wL2ZmaS5kc3Q7CisJCQkJR0NDX1BSRUNPTVBJTEVfUFJFRklYX0hFQURFUiA9IFlFUzsKKwkJCQlHQ0NfVEhVTUJfU1VQUE9SVCA9IE5POworCQkJCUlQSE9ORU9TX0RFUExPWU1FTlRfVEFSR0VUID0gNC4wOworCQkJCU9USEVSX0xERkxBR1MgPSAiLU9iakMiOworCQkJCVBST0RVQ1RfTkFNRSA9IGZmaTsKKwkJCQlTS0lQX0lOU1RBTEwgPSBZRVM7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7CisJCX07CisvKiBFbmQgWENCdWlsZENvbmZpZ3VyYXRpb24gc2VjdGlvbiAqLworCisvKiBCZWdpbiBYQ0NvbmZpZ3VyYXRpb25MaXN0IHNlY3Rpb24gKi8KKwkJNkM0M0NCNEExNTM0RTlEMTAwMTYyMzY0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJsaWJmZmkgT1MgWCIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQk2QzQzQ0I0QjE1MzRFOUQxMDAxNjIzNjQgLyogRGVidWcgKi8sCisJCQkJNkM0M0NCNEMxNTM0RTlEMTAwMTYyMzY0IC8qIFJlbGVhc2UgKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJRjZCMDgzOUExNDcyMUVFNTAwMzFEOEExIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAibGliZmZpIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmlndXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCUY2QjA4M0FCMTQ3MjFFRTUwMDMxRDhBMSAvKiBEZWJ1ZyAqLywKKwkJCQlGNkIwODNBQzE0NzIxRUU1MDAzMUQ4QTEgLyogUmVsZWFzZSAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBSZWxlYXNlOworCQl9OworCQlGNkY5ODBDNDE0NzM4NjEzMDAwOEYxMjEgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgImxpYmZmaSBpT1MiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCisJCQkJRjZGOTgwQzIxNDczODYxMzAwMDhGMTIxIC8qIERlYnVnICovLAorCQkJCUY2Rjk4MEMzMTQ3Mzg2MTMwMDA4RjEyMSAvKiBSZWxlYXNlICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFJlbGVhc2U7CisJCX07CisvKiBFbmQgWENDb25maWd1cmF0aW9uTGlzdCBzZWN0aW9uICovCisJfTsKKwlyb290T2JqZWN0ID0gRjZCMDgzOTcxNDcyMUVFNTAwMzFEOEExIC8qIFByb2plY3Qgb2JqZWN0ICovOworfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9saWJ0b29sLXZlcnNpb24gYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2xpYnRvb2wtdmVyc2lvbgppbmRleCBiOGI4MGUwLi45NWY0OGM1IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2xpYnRvb2wtdmVyc2lvbgorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL2xpYnRvb2wtdmVyc2lvbgpAQCAtMjYsNCArMjYsNCBAQAogIyAgICByZWxlYXNlLCB0aGVuIHNldCBhZ2UgdG8gMC4KICMKICMgQ1VSUkVOVDpSRVZJU0lPTjpBR0UKLTU6MTA6MAorNjowOjAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbHRtYWluLnNoIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9sdG1haW4uc2gKb2xkIG1vZGUgMTAwNzU1Cm5ldyBtb2RlIDEwMDY0NAppbmRleCA2OTM5ZGNjLi5jMjg1MmQ4Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbHRtYWluLnNoCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbHRtYWluLnNoCkBAIC0xLDkgKzEsOSBAQAotIyBHZW5lcmF0ZWQgZnJvbSBsdG1haW4ubTRzaC4KIAotIyBsdG1haW4uc2ggKEdOVSBsaWJ0b29sKSAyLjIuNgorIyBsaWJ0b29sIChHTlUgbGlidG9vbCkgMi40LjIKICMgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKIAotIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LAorIyAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIyBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTwogIyB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4KIApAQCAtMzIsNTAgKzMyLDU3IEBACiAjCiAjIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBwb3J0IHNlcnZpY2VzLgogIwotIyAgICAgLS1jb25maWcgICAgICAgICAgICAgc2hvdyBhbGwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKLSMgICAgIC0tZGVidWcgICAgICAgICAgICAgIGVuYWJsZSB2ZXJib3NlIHNoZWxsIHRyYWNpbmcKLSMgLW4sIC0tZHJ5LXJ1biAgICAgICAgICAgIGRpc3BsYXkgY29tbWFuZHMgd2l0aG91dCBtb2RpZnlpbmcgYW55IGZpbGVzCi0jICAgICAtLWZlYXR1cmVzICAgICAgICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSMgICAgIC0tbW9kZT1NT0RFICAgICAgICAgIHVzZSBvcGVyYXRpb24gbW9kZSBNT0RFCi0jICAgICAtLXByZXNlcnZlLWR1cC1kZXBzICBkb24ndCByZW1vdmUgZHVwbGljYXRlIGRlcGVuZGVuY3kgbGlicmFyaWVzCi0jICAgICAtLXF1aWV0LCAtLXNpbGVudCAgICBkb24ndCBwcmludCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzCi0jICAgICAtLXRhZz1UQUcgICAgICAgICAgICB1c2UgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZnJvbSB0YWcgVEFHCi0jIC12LCAtLXZlcmJvc2UgICAgICAgICAgICBwcmludCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzIChkZWZhdWx0KQotIyAgICAgLS12ZXJzaW9uICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbgotIyAtaCwgLS1oZWxwICAgICAgICAgICAgICAgcHJpbnQgc2hvcnQgb3IgbG9uZyBoZWxwIG1lc3NhZ2UKKyMgICAgICAgLS1jb25maWcgICAgICAgICAgICAgc2hvdyBhbGwgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMKKyMgICAgICAgLS1kZWJ1ZyAgICAgICAgICAgICAgZW5hYmxlIHZlcmJvc2Ugc2hlbGwgdHJhY2luZworIyAgIC1uLCAtLWRyeS1ydW4gICAgICAgICAgICBkaXNwbGF5IGNvbW1hbmRzIHdpdGhvdXQgbW9kaWZ5aW5nIGFueSBmaWxlcworIyAgICAgICAtLWZlYXR1cmVzICAgICAgICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKKyMgICAgICAgLS1tb2RlPU1PREUgICAgICAgICAgdXNlIG9wZXJhdGlvbiBtb2RlIE1PREUKKyMgICAgICAgLS1wcmVzZXJ2ZS1kdXAtZGVwcyAgZG9uJ3QgcmVtb3ZlIGR1cGxpY2F0ZSBkZXBlbmRlbmN5IGxpYnJhcmllcworIyAgICAgICAtLXF1aWV0LCAtLXNpbGVudCAgICBkb24ndCBwcmludCBpbmZvcm1hdGlvbmFsIG1lc3NhZ2VzCisjICAgICAgIC0tbm8tcXVpZXQsIC0tbm8tc2lsZW50CisjICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGluZm9ybWF0aW9uYWwgbWVzc2FnZXMgKGRlZmF1bHQpCisjICAgICAgIC0tbm8td2FybiAgICAgICAgICAgIGRvbid0IGRpc3BsYXkgd2FybmluZyBtZXNzYWdlcworIyAgICAgICAtLXRhZz1UQUcgICAgICAgICAgICB1c2UgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZnJvbSB0YWcgVEFHCisjICAgLXYsIC0tdmVyYm9zZSAgICAgICAgICAgIHByaW50IG1vcmUgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyB0aGFuIGRlZmF1bHQKKyMgICAgICAgLS1uby12ZXJib3NlICAgICAgICAgZG9uJ3QgcHJpbnQgdGhlIGV4dHJhIGluZm9ybWF0aW9uYWwgbWVzc2FnZXMKKyMgICAgICAgLS12ZXJzaW9uICAgICAgICAgICAgcHJpbnQgdmVyc2lvbiBpbmZvcm1hdGlvbgorIyAgIC1oLCAtLWhlbHAsIC0taGVscC1hbGwgICBwcmludCBzaG9ydCwgbG9uZywgb3IgZGV0YWlsZWQgaGVscCBtZXNzYWdlCiAjCiAjIE1PREUgbXVzdCBiZSBvbmUgb2YgdGhlIGZvbGxvd2luZzoKICMKLSMgICAgICAgY2xlYW4gICAgICAgICAgICAgIHJlbW92ZSBmaWxlcyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkKLSMgICAgICAgY29tcGlsZSAgICAgICAgICAgIGNvbXBpbGUgYSBzb3VyY2UgZmlsZSBpbnRvIGEgbGlidG9vbCBvYmplY3QKLSMgICAgICAgZXhlY3V0ZSAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtCi0jICAgICAgIGZpbmlzaCAgICAgICAgICAgICBjb21wbGV0ZSB0aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzCi0jICAgICAgIGluc3RhbGwgICAgICAgICAgICBpbnN0YWxsIGxpYnJhcmllcyBvciBleGVjdXRhYmxlcwotIyAgICAgICBsaW5rICAgICAgICAgICAgICAgY3JlYXRlIGEgbGlicmFyeSBvciBhbiBleGVjdXRhYmxlCi0jICAgICAgIHVuaW5zdGFsbCAgICAgICAgICByZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFsbGVkIGRpcmVjdG9yeQorIyAgICAgICAgIGNsZWFuICAgICAgICAgICAgICByZW1vdmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5CisjICAgICAgICAgY29tcGlsZSAgICAgICAgICAgIGNvbXBpbGUgYSBzb3VyY2UgZmlsZSBpbnRvIGEgbGlidG9vbCBvYmplY3QKKyMgICAgICAgICBleGVjdXRlICAgICAgICAgICAgYXV0b21hdGljYWxseSBzZXQgbGlicmFyeSBwYXRoLCB0aGVuIHJ1biBhIHByb2dyYW0KKyMgICAgICAgICBmaW5pc2ggICAgICAgICAgICAgY29tcGxldGUgdGhlIGluc3RhbGxhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcworIyAgICAgICAgIGluc3RhbGwgICAgICAgICAgICBpbnN0YWxsIGxpYnJhcmllcyBvciBleGVjdXRhYmxlcworIyAgICAgICAgIGxpbmsgICAgICAgICAgICAgICBjcmVhdGUgYSBsaWJyYXJ5IG9yIGFuIGV4ZWN1dGFibGUKKyMgICAgICAgICB1bmluc3RhbGwgICAgICAgICAgcmVtb3ZlIGxpYnJhcmllcyBmcm9tIGFuIGluc3RhbGxlZCBkaXJlY3RvcnkKICMKLSMgTU9ERS1BUkdTIHZhcnkgZGVwZW5kaW5nIG9uIHRoZSBNT0RFLgorIyBNT0RFLUFSR1MgdmFyeSBkZXBlbmRpbmcgb24gdGhlIE1PREUuICBXaGVuIHBhc3NlZCBhcyBmaXJzdCBvcHRpb24sCisjIGAtLW1vZGU9TU9ERScgbWF5IGJlIGFiYnJldmlhdGVkIGFzIGBNT0RFJyBvciBhIHVuaXF1ZSBhYmJyZXZpYXRpb24gb2YgdGhhdC4KICMgVHJ5IGAkcHJvZ25hbWUgLS1oZWxwIC0tbW9kZT1NT0RFJyBmb3IgYSBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIE1PREUuCiAjCiAjIFdoZW4gcmVwb3J0aW5nIGEgYnVnLCBwbGVhc2UgZGVzY3JpYmUgYSB0ZXN0IGNhc2UgdG8gcmVwcm9kdWNlIGl0IGFuZAogIyBpbmNsdWRlIHRoZSBmb2xsb3dpbmcgaW5mb3JtYXRpb246CiAjCi0jICAgICAgIGhvc3QtdHJpcGxldDoJJGhvc3QKLSMgICAgICAgc2hlbGw6CQkkU0hFTEwKLSMgICAgICAgY29tcGlsZXI6CQkkTFRDQwotIyAgICAgICBjb21waWxlciBmbGFnczoJCSRMVENGTEFHUwotIyAgICAgICBsaW5rZXI6CQkkTEQgKGdudT8gJHdpdGhfZ251X2xkKQotIyAgICAgICAkcHJvZ25hbWU6CQkoR05VIGxpYnRvb2wpIDIuMi42Ci0jICAgICAgIGF1dG9tYWtlOgkJJGF1dG9tYWtlX3ZlcnNpb24KLSMgICAgICAgYXV0b2NvbmY6CQkkYXV0b2NvbmZfdmVyc2lvbgorIyAgICAgICAgIGhvc3QtdHJpcGxldDoJJGhvc3QKKyMgICAgICAgICBzaGVsbDoJCSRTSEVMTAorIyAgICAgICAgIGNvbXBpbGVyOgkJJExUQ0MKKyMgICAgICAgICBjb21waWxlciBmbGFnczoJCSRMVENGTEFHUworIyAgICAgICAgIGxpbmtlcjoJCSRMRCAoZ251PyAkd2l0aF9nbnVfbGQpCisjICAgICAgICAgJHByb2duYW1lOgkoR05VIGxpYnRvb2wpIDIuNC4yIERlYmlhbi0yLjQuMi0xdWJ1bnR1MQorIyAgICAgICAgIGF1dG9tYWtlOgkkYXV0b21ha2VfdmVyc2lvbgorIyAgICAgICAgIGF1dG9jb25mOgkkYXV0b2NvbmZfdmVyc2lvbgogIwogIyBSZXBvcnQgYnVncyB0byA8YnVnLWxpYnRvb2xAZ251Lm9yZz4uCisjIEdOVSBsaWJ0b29sIGhvbWUgcGFnZTogPGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJ0b29sLz4uCisjIEdlbmVyYWwgaGVscCB1c2luZyBHTlUgc29mdHdhcmU6IDxodHRwOi8vd3d3LmdudS5vcmcvZ2V0aGVscC8+LgogCi1QUk9HUkFNPWx0bWFpbi5zaAorUFJPR1JBTT1saWJ0b29sCiBQQUNLQUdFPWxpYnRvb2wKLVZFUlNJT049Mi4yLjYKK1ZFUlNJT049IjIuNC4yIERlYmlhbi0yLjQuMi0xdWJ1bnR1MSIKIFRJTUVTVEFNUD0iIgotcGFja2FnZV9yZXZpc2lvbj0xLjMwMTIKK3BhY2thZ2VfcmV2aXNpb249MS4zMzM3CiAKICMgQmUgQm91cm5lIGNvbXBhdGlibGUKIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgpAQCAtOTEsMTAgKzk4LDE1IEBACiBCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9TSCAjIGZvciBUcnU2NAogRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAogCisjIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHdoZW4gdGhlcmUgaXMgbm8gcHJpbnQgYnVpbHRpbiBvciBwcmludGYuCitmdW5jX2ZhbGxiYWNrX2VjaG8gKCkKK3sKKyAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKKyQxCitfTFRFQ0hPX0VPRicKK30KKwogIyBOTFMgbnVpc2FuY2VzOiBXZSBzYXZlIHRoZSBvbGQgdmFsdWVzIHRvIHJlc3RvcmUgZHVyaW5nIGV4ZWN1dGUgbW9kZS4KLSMgT25seSBzZXQgTEFORyBhbmQgTENfQUxMIHRvIEMgaWYgYWxyZWFkeSBzZXQuCi0jIFRoZXNlIG11c3Qgbm90IGJlIHNldCB1bmNvbmRpdGlvbmFsbHkgYmVjYXVzZSBub3QgYWxsIHN5c3RlbXMgdW5kZXJzdGFuZAotIyBlLmcuIExBTkc9QyAobm90YWJseSBTQ08pLgogbHRfdXNlcl9sb2NhbGU9CiBsdF9zYWZlX2xvY2FsZT0KIGZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwgTENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUwpAQCAtMTA3LDI0ICsxMTksMjggQEAKIAkgIGx0X3NhZmVfbG9jYWxlPVwiJGx0X3Zhcj1DOyBcJGx0X3NhZmVfbG9jYWxlXCIKIAlmaSIKIGRvbmUKK0xDX0FMTD1DCitMQU5HVUFHRT1DCitleHBvcnQgTEFOR1VBR0UgTENfQUxMCiAKICRsdF91bnNldCBDRFBBVEgKIAogCisjIFdvcmsgYXJvdW5kIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXNzdWUgb24gSVJJWCA2LjUuIE9uIElSSVggNi40Kywgc2gKKyMgaXMga3NoIGJ1dCB3aGVuIHRoZSBzaGVsbCBpcyBpbnZva2VkIGFzICJzaCIgYW5kIHRoZSBjdXJyZW50IHZhbHVlIG9mCisjIHRoZSBfWFBHIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIG5vdCBlcXVhbCB0byAxIChvbmUpLCB0aGUgc3BlY2lhbAorIyBwb3NpdGlvbmFsIHBhcmFtZXRlciAkMCwgd2l0aGluIGEgZnVuY3Rpb24gY2FsbCwgaXMgdGhlIG5hbWUgb2YgdGhlCisjIGZ1bmN0aW9uLgorcHJvZ3BhdGg9IiQwIgogCiAKIAogOiAke0NQPSJjcCAtZiJ9Ci06ICR7RUNITz0iZWNobyJ9Ci06ICR7RUdSRVA9Ii9iaW4vZ3JlcCAtRSJ9Ci06ICR7RkdSRVA9Ii9iaW4vZ3JlcCAtRiJ9Ci06ICR7R1JFUD0iL2Jpbi9ncmVwIn0KLTogJHtMTl9TPSJsbiAtcyJ9Cit0ZXN0ICIke0VDSE8rc2V0fSIgPSBzZXQgfHwgRUNITz0ke2FzX2VjaG8tJ3ByaW50ZiAlc1xuJ30KIDogJHtNQUtFPSJtYWtlIn0KIDogJHtNS0RJUj0ibWtkaXIifQogOiAke01WPSJtdiAtZiJ9CiA6ICR7Uk09InJtIC1mIn0KLTogJHtTRUQ9Ii9iaW4vc2VkIn0KIDogJHtTSEVMTD0iJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH0ifQogOiAke1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyJ9CiAKQEAgLTE0NCw2ICsxNjAsMjcgQEAKIGRpcm5hbWU9InMsL1teL10qJCwsIgogYmFzZW5hbWU9InMsXi4qLywsIgogCisjIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKKyMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKKyMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgorZnVuY19kaXJuYW1lICgpCit7CisgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAiJGRpcm5hbWUiYAorICAgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCisgICAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IgorICAgIGVsc2UKKyAgICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKKyAgICBmaQorfSAjIGZ1bmNfZGlybmFtZSBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KKworCisjIGZ1bmNfYmFzZW5hbWUgZmlsZQorZnVuY19iYXNlbmFtZSAoKQoreworICAgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiJHsxfSIgfCAkU0VEICIkYmFzZW5hbWUiYAorfSAjIGZ1bmNfYmFzZW5hbWUgbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCisKKwogIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAogIyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgogIyBjYWxsOgpAQCAtMTU4LDMzICsxOTUsMTgzIEBACiAjIHRob3NlIGZ1bmN0aW9ucyBidXQgaW5zdGVhZCBkdXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgaGVyZS4KIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgKCkKIHsKLSAgIyBFeHRyYWN0IHN1YmRpcmVjdG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KLSAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICIkZGlybmFtZSJgCi0gIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIgPSAiWCR7MX0iOyB0aGVuCi0gICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKLSAgZWxzZQotICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsyfSIKLSAgZmkKLSAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKKyAgICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50LgorICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgLWUgIiRkaXJuYW1lImAKKyAgICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgorICAgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKKyAgICBlbHNlCisgICAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCisgICAgZmkKKyAgICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAtZSAiJGJhc2VuYW1lImAKK30gIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgorCisKKyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCisjIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgorIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKKyMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZworIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgorIyBmdW5jX3N0cmlwX3N1ZmZpeCBwcmVmaXggbmFtZQorZnVuY19zdHJpcG5hbWUgKCkKK3sKKyAgICBjYXNlICR7Mn0gaW4KKyAgICAgIC4qKSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezN9IiB8ICRTRUQgInMlXiR7MX0lJTsgcyVcXFxcJHsyfVwkJSUiYDs7CisgICAgICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAiJHszfSIgfCAkU0VEICJzJV4kezF9JSU7IHMlJHsyfVwkJSUiYDs7CisgICAgZXNhYworfSAjIGZ1bmNfc3RyaXBuYW1lIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgorCisKKyMgVGhlc2UgU0VEIHNjcmlwdHMgcHJlc3VwcG9zZSBhbiBhYnNvbHV0ZSBwYXRoIHdpdGggYSB0cmFpbGluZyBzbGFzaC4KK3BhdGhjYXI9J3MsXi9cKFteL10qXCkuKiQsXDEsJworcGF0aGNkcj0ncyxeL1teL10qLCwnCityZW1vdmVkb3RwYXJ0cz0nOmRvdHNsCisJCXNAL1wuL0AvQGcKKwkJdCBkb3RzbAorCQlzLC9cLiQsLywnCitjb2xsYXBzZXNsYXNoZXM9J3NAL1x7MSxcfUAvQGcnCitmaW5hbHNsYXNoPSdzLC8qJCwvLCcKKworIyBmdW5jX25vcm1hbF9hYnNwYXRoIFBBVEgKKyMgUmVtb3ZlIGRvdWJsZWQtdXAgYW5kIHRyYWlsaW5nIHNsYXNoZXMsICIuIiBwYXRoIGNvbXBvbmVudHMsCisjIGFuZCBjYW5jZWwgb3V0IGFueSAiLi4iIHBhdGggY29tcG9uZW50cyBpbiBQQVRIIGFmdGVyIG1ha2luZworIyBpdCBhbiBhYnNvbHV0ZSBwYXRoLgorIyAgICAgICAgICAgICB2YWx1ZSByZXR1cm5lZCBpbiAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0IgorZnVuY19ub3JtYWxfYWJzcGF0aCAoKQoreworICAjIFN0YXJ0IGZyb20gcm9vdCBkaXIgYW5kIHJlYXNzZW1ibGUgdGhlIHBhdGguCisgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0PQorICBmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoPSQxCisgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfYWx0bmFtZXNwYWNlPQorICBjYXNlICRmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoIGluCisgICAgIiIpCisgICAgICAjIEVtcHR5IHBhdGgsIHRoYXQganVzdCBtZWFucyAkY3dkLgorICAgICAgZnVuY19zdHJpcG5hbWUgJycgJy8nICJgcHdkYCIKKyAgICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKyAgICAgIHJldHVybgorICAgIDs7CisgICAgIyBUaGUgbmV4dCB0aHJlZSBlbnRyaWVzIGFyZSB1c2VkIHRvIHNwb3QgYSBydW4gb2YgcHJlY2lzZWx5CisgICAgIyB0d28gbGVhZGluZyBzbGFzaGVzIHdpdGhvdXQgdXNpbmcgbmVnYXRlZCBjaGFyYWN0ZXIgY2xhc3NlczsKKyAgICAjIHdlIHRha2UgYWR2YW50YWdlIG9mIGNhc2UncyBmaXJzdC1tYXRjaCBiZWhhdmlvdXIuCisgICAgLy8vKikKKyAgICAgICMgVW51c3VhbCBmb3JtIG9mIGFic29sdXRlIHBhdGgsIGRvIG5vdGhpbmcuCisgICAgOzsKKyAgICAvLyopCisgICAgICAjIE5vdCBuZWNlc3NhcmlseSBhbiBvcmRpbmFyeSBwYXRoOyBQT1NJWCByZXNlcnZlcyBsZWFkaW5nICcvLycKKyAgICAgICMgYW5kIGZvciBleGFtcGxlIEN5Z3dpbiB1c2VzIGl0IHRvIGFjY2VzcyByZW1vdGUgZmlsZSBzaGFyZXMKKyAgICAgICMgb3ZlciBDSUZTL1NNQiwgc28gd2UgY29uc2VydmUgYSBsZWFkaW5nIGRvdWJsZSBzbGFzaCBpZiBmb3VuZC4KKyAgICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfYWx0bmFtZXNwYWNlPS8KKyAgICA7OworICAgIC8qKQorICAgICAgIyBBYnNvbHV0ZSBwYXRoLCBkbyBub3RoaW5nLgorICAgIDs7CisgICAgKikKKyAgICAgICMgUmVsYXRpdmUgcGF0aCwgcHJlcGVuZCAkY3dkLgorICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD1gcHdkYC8kZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aAorICAgIDs7CisgIGVzYWMKKyAgIyBDYW5jZWwgb3V0IGFsbCB0aGUgc2ltcGxlIHN0dWZmIHRvIHNhdmUgaXRlcmF0aW9ucy4gIFdlIGFsc28gd2FudAorICAjIHRoZSBwYXRoIHRvIGVuZCB3aXRoIGEgc2xhc2ggZm9yIGVhc2Ugb2YgcGFyc2luZywgc28gbWFrZSBzdXJlCisgICMgdGhlcmUgaXMgb25lIChhbmQgb25seSBvbmUpIGhlcmUuCisgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKKyAgICAgICAgLWUgIiRyZW1vdmVkb3RwYXJ0cyIgLWUgIiRjb2xsYXBzZXNsYXNoZXMiIC1lICIkZmluYWxzbGFzaCJgCisgIHdoaWxlIDo7IGRvCisgICAgIyBQcm9jZXNzZWQgaXQgYWxsIHlldD8KKyAgICBpZiB0ZXN0ICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgPSAvIDsgdGhlbgorICAgICAgIyBJZiB3ZSBhc2NlbmRlZCB0byB0aGUgcm9vdCB1c2luZyAiLi4iIHRoZSByZXN1bHQgbWF5IGJlIGVtcHR5IG5vdy4KKyAgICAgIGlmIHRlc3QgLXogIiRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdCIgOyB0aGVuCisgICAgICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0PS8KKyAgICAgIGZpCisgICAgICBicmVhaworICAgIGZpCisgICAgZnVuY19ub3JtYWxfYWJzcGF0aF90Y29tcG9uZW50PWAkRUNITyAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgiIHwgJFNFRCBcCisgICAgICAgIC1lICIkcGF0aGNhciJgCisgICAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD1gJEVDSE8gIiRmdW5jX25vcm1hbF9hYnNwYXRoX3RwYXRoIiB8ICRTRUQgXAorICAgICAgICAtZSAiJHBhdGhjZHIiYAorICAgICMgRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggaXQKKyAgICBjYXNlICRmdW5jX25vcm1hbF9hYnNwYXRoX3Rjb21wb25lbnQgaW4KKyAgICAgICIiKQorICAgICAgICAjIFRyYWlsaW5nIGVtcHR5IHBhdGggY29tcG9uZW50LCBpZ25vcmUgaXQuCisgICAgICA7OworICAgICAgLi4pCisgICAgICAgICMgUGFyZW50IGRpcjsgc3RyaXAgbGFzdCBhc3NlbWJsZWQgY29tcG9uZW50IGZyb20gcmVzdWx0LgorICAgICAgICBmdW5jX2Rpcm5hbWUgIiRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdCIKKyAgICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQ9JGZ1bmNfZGlybmFtZV9yZXN1bHQKKyAgICAgIDs7CisgICAgICAqKQorICAgICAgICAjIEFjdHVhbCBwYXRoIGNvbXBvbmVudCwgYXBwZW5kIGl0LgorICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQvJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdGNvbXBvbmVudAorICAgICAgOzsKKyAgICBlc2FjCisgIGRvbmUKKyAgIyBSZXN0b3JlIGxlYWRpbmcgZG91YmxlLXNsYXNoIGlmIG9uZSB3YXMgZm91bmQgb24gZW50cnkuCisgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0PSRmdW5jX25vcm1hbF9hYnNwYXRoX2FsdG5hbWVzcGFjZSRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdAogfQogCi0jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS4KKyMgZnVuY19yZWxhdGl2ZV9wYXRoIFNSQ0RJUiBEU1RESVIKKyMgZ2VuZXJhdGVzIGEgcmVsYXRpdmUgcGF0aCBmcm9tIFNSQ0RJUiB0byBEU1RESVIsIHdpdGggYSB0cmFpbGluZworIyBzbGFzaCBpZiBub24tZW1wdHksIHN1aXRhYmxlIGZvciBpbW1lZGlhdGVseSBhcHBlbmRpbmcgYSBmaWxlbmFtZQorIyB3aXRob3V0IG5lZWRpbmcgdG8gYXBwZW5kIGEgc2VwYXJhdG9yLgorIyAgICAgICAgICAgICB2YWx1ZSByZXR1cm5lZCBpbiAiJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQiCitmdW5jX3JlbGF0aXZlX3BhdGggKCkKK3sKKyAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0KKyAgZnVuY19ub3JtYWxfYWJzcGF0aCAiJDEiCisgIGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyPSRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdAorICBmdW5jX25vcm1hbF9hYnNwYXRoICIkMiIKKyAgZnVuY19yZWxhdGl2ZV9wYXRoX3RiaW5kaXI9JGZ1bmNfbm9ybWFsX2Fic3BhdGhfcmVzdWx0CiAKLSMgV29yayBhcm91bmQgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpc3N1ZSBvbiBJUklYIDYuNS4gT24gSVJJWCA2LjQrLCBzaAotIyBpcyBrc2ggYnV0IHdoZW4gdGhlIHNoZWxsIGlzIGludm9rZWQgYXMgInNoIiBhbmQgdGhlIGN1cnJlbnQgdmFsdWUgb2YKLSMgdGhlIF9YUEcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGVxdWFsIHRvIDEgKG9uZSksIHRoZSBzcGVjaWFsCi0jIHBvc2l0aW9uYWwgcGFyYW1ldGVyICQwLCB3aXRoaW4gYSBmdW5jdGlvbiBjYWxsLCBpcyB0aGUgbmFtZSBvZiB0aGUKLSMgZnVuY3Rpb24uCi1wcm9ncGF0aD0iJDAiCisgICMgQXNjZW5kIHRoZSB0cmVlIHN0YXJ0aW5nIGZyb20gbGliZGlyCisgIHdoaWxlIDo7IGRvCisgICAgIyBjaGVjayBpZiB3ZSBoYXZlIGZvdW5kIGEgcHJlZml4IG9mIGJpbmRpcgorICAgIGNhc2UgJGZ1bmNfcmVsYXRpdmVfcGF0aF90YmluZGlyIGluCisgICAgICAkZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIpCisgICAgICAgICMgZm91bmQgYW4gZXhhY3QgbWF0Y2gKKyAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3RjYW5jZWxsZWQ9CisgICAgICAgIGJyZWFrCisgICAgICAgIDs7CisgICAgICAkZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIqKQorICAgICAgICAjIGZvdW5kIGEgbWF0Y2hpbmcgcHJlZml4CisgICAgICAgIGZ1bmNfc3RyaXBuYW1lICIkZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXIiICcnICIkZnVuY19yZWxhdGl2ZV9wYXRoX3RiaW5kaXIiCisgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF90Y2FuY2VsbGVkPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKyAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQiOyB0aGVuCisgICAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0uCisgICAgICAgIGZpCisgICAgICAgIGJyZWFrCisgICAgICAgIDs7CisgICAgICAqKQorICAgICAgICBmdW5jX2Rpcm5hbWUgJGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyCisgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyPSR7ZnVuY19kaXJuYW1lX3Jlc3VsdH0KKyAgICAgICAgaWYgdGVzdCAieCRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpciIgPSB4IDsgdGhlbgorICAgICAgICAgICMgSGF2ZSB0byBkZXNjZW5kIGFsbCB0aGUgd2F5IHRvIHRoZSByb290IQorICAgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9Li4vJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQKKyAgICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfdGNhbmNlbGxlZD0kZnVuY19yZWxhdGl2ZV9wYXRoX3RiaW5kaXIKKyAgICAgICAgICBicmVhaworICAgICAgICBmaQorICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PS4uLyRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0CisgICAgICAgIDs7CisgICAgZXNhYworICBkb25lCisKKyAgIyBOb3cgY2FsY3VsYXRlIHBhdGg7IHRha2UgY2FyZSB0byBhdm9pZCBkb3VibGluZy11cCBzbGFzaGVzLgorICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IgorICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKyAgZnVuY19zdHJpcG5hbWUgJy8nICcvJyAiJGZ1bmNfcmVsYXRpdmVfcGF0aF90Y2FuY2VsbGVkIgorICBpZiB0ZXN0ICJ4JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIgIT0geCA7IHRoZW4KKyAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PSR7ZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdH0vJHtmdW5jX3N0cmlwbmFtZV9yZXN1bHR9CisgIGZpCisKKyAgIyBOb3JtYWxpc2F0aW9uLiBJZiBiaW5kaXIgaXMgbGliZGlyLCByZXR1cm4gZW1wdHkgc3RyaW5nLAorICAjIGVsc2UgcmVsYXRpdmUgcGF0aCBlbmRpbmcgd2l0aCBhIHNsYXNoOyBlaXRoZXIgd2F5LCB0YXJnZXQKKyAgIyBmaWxlIG5hbWUgY2FuIGJlIGRpcmVjdGx5IGFwcGVuZGVkLgorICBpZiB0ZXN0ICEgLXogIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IjsgdGhlbgorICAgIGZ1bmNfc3RyaXBuYW1lICcuLycgJycgIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0LyIKKyAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKyAgZmkKK30KIAogIyBUaGUgbmFtZSBvZiB0aGlzIHByb2dyYW06Ci0jIEluIHRoZSB1bmxpa2VseSBldmVudCAkcHJvZ25hbWUgYmVnYW4gd2l0aCBhICctJywgaXQgd291bGQgcGxheSBoYXZvYyB3aXRoCi0jIGZ1bmNfZWNobyAoaW1hZ2luZSBwcm9nbmFtZT0tbiksIHNvIHdlIHByZXBlbmQgLi8gaW4gdGhhdCBjYXNlOgogZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJHByb2dwYXRoIgogcHJvZ25hbWU9JGZ1bmNfYmFzZW5hbWVfcmVzdWx0Ci1jYXNlICRwcm9nbmFtZSBpbgotICAtKikgcHJvZ25hbWU9Li8kcHJvZ25hbWUgOzsKLWVzYWMKIAogIyBNYWtlIHN1cmUgd2UgaGF2ZSBhbiBhYnNvbHV0ZSBwYXRoIGZvciByZWV4ZWN1dGlvbjoKIGNhc2UgJHByb2dwYXRoIGluCkBAIC0xOTYsNyArMzgzLDcgQEAKICAgICAgOzsKICAgKikKICAgICAgc2F2ZV9JRlM9IiRJRlMiCi0gICAgIElGUz06CisgICAgIElGUz0ke1BBVEhfU0VQQVJBVE9SLTp9CiAgICAgIGZvciBwcm9nZGlyIGluICRQQVRIOyBkbwogICAgICAgIElGUz0iJHNhdmVfSUZTIgogICAgICAgIHRlc3QgLXggIiRwcm9nZGlyLyRwcm9nbmFtZSIgJiYgYnJlYWsKQEAgLTIxNSw2ICs0MDIsMTUgQEAKICMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgogZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxdXCkvXFxcMS9nJwogCisjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCB0dXJucyBhIHN0cmluZyBpbnRvIGEgcmVnZXggbWF0Y2hpbmcgZm9yIHRoZQorIyBzdHJpbmcgbGl0ZXJhbGx5Lgorc2VkX21ha2VfbGl0ZXJhbF9yZWdleD0ncyxbXS5bXiRcXCpcL10sXFwmLGcnCisKKyMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0IGNvbnZlcnRzIGEgdzMyIGZpbGUgbmFtZSBvciBwYXRoCisjIHdoaWNoIGNvbnRhaW5zIGZvcndhcmQgc2xhc2hlcywgaW50byBvbmUgdGhhdCBjb250YWlucworIyAoZXNjYXBlZCkgYmFja3NsYXNoZXMuICBBIHZlcnkgbmFpdmUgaW1wbGVtZW50YXRpb24uCitsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5PSdzfFxcXFwqfFxcfGc7c3wvfFxcfGc7c3xcXHxcXFxcfGcnCisKICMgUmUtYFwnIHBhcmFtZXRlciBleHBhbnNpb25zIGluIG91dHB1dCBvZiBkb3VibGVfcXVvdGVfc3Vic3QgdGhhdCB3ZXJlCiAjIGBcJy1lZCBpbiBpbnB1dCB0byB0aGUgc2FtZS4gIElmIGFuIG9kZCBudW1iZXIgb2YgYFwnIHByZWNlZGVkIGEgJyQnCiAjIGluIGlucHV0IHRvIGRvdWJsZV9xdW90ZV9zdWJzdCwgdGhhdCAnJCcgd2FzIHByb3RlY3RlZCBmcm9tIGV4cGFuc2lvbi4KQEAgLTI0Myw3ICs0MzksNyBAQAogIyBuYW1lIGlmIGl0IGhhcyBiZWVuIHNldCB5ZXQuCiBmdW5jX2VjaG8gKCkKIHsKLSAgICAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiAkKiIKKyAgICAkRUNITyAiJHByb2duYW1lOiAke29wdF9tb2RlKyRvcHRfbW9kZTogfSQqIgogfQogCiAjIGZ1bmNfdmVyYm9zZSBhcmcuLi4KQEAgLTI1OCwxOCArNDU0LDI1IEBACiAgICAgOgogfQogCisjIGZ1bmNfZWNob19hbGwgYXJnLi4uCisjIEludm9rZSAkRUNITyB3aXRoIGFsbCBhcmdzLCBzcGFjZS1zZXBhcmF0ZWQuCitmdW5jX2VjaG9fYWxsICgpCit7CisgICAgJEVDSE8gIiQqIgorfQorCiAjIGZ1bmNfZXJyb3IgYXJnLi4uCiAjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCiBmdW5jX2Vycm9yICgpCiB7Ci0gICAgJEVDSE8gIiRwcm9nbmFtZSR7bW9kZSs6IH0kbW9kZTogIiR7MSsiJEAifSAxPiYyCisgICAgJEVDSE8gIiRwcm9nbmFtZTogJHtvcHRfbW9kZSskb3B0X21vZGU6IH0iJHsxKyIkQCJ9IDE+JjIKIH0KIAogIyBmdW5jX3dhcm5pbmcgYXJnLi4uCiAjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIHdhcm5pbmcgbWVzc2FnZSB0byBzdGFuZGFyZCBlcnJvci4KIGZ1bmNfd2FybmluZyAoKQogewotICAgICRvcHRfd2FybmluZyAmJiAkRUNITyAiJHByb2duYW1lJHttb2RlKzogfSRtb2RlOiB3YXJuaW5nOiAiJHsxKyIkQCJ9IDE+JjIKKyAgICAkb3B0X3dhcm5pbmcgJiYgJEVDSE8gIiRwcm9nbmFtZTogJHtvcHRfbW9kZSskb3B0X21vZGU6IH13YXJuaW5nOiAiJHsxKyIkQCJ9IDE+JjIKIAogICAgICMgYmFzaCBidWcgYWdhaW46CiAgICAgOgpAQCAtMzI2LDkgKzUyOSw5IEBACiAgICAgICAgIGNhc2UgJG15X2RpcmVjdG9yeV9wYXRoIGluICovKikgOzsgKikgYnJlYWsgOzsgZXNhYwogCiAgICAgICAgICMgLi4ub3RoZXJ3aXNlIHRocm93IGF3YXkgdGhlIGNoaWxkIGRpcmVjdG9yeSBhbmQgbG9vcAotICAgICAgICBteV9kaXJlY3RvcnlfcGF0aD1gJEVDSE8gIlgkbXlfZGlyZWN0b3J5X3BhdGgiIHwgJFhzZWQgLWUgIiRkaXJuYW1lImAKKyAgICAgICAgbXlfZGlyZWN0b3J5X3BhdGg9YCRFQ0hPICIkbXlfZGlyZWN0b3J5X3BhdGgiIHwgJFNFRCAtZSAiJGRpcm5hbWUiYAogICAgICAgZG9uZQotICAgICAgbXlfZGlyX2xpc3Q9YCRFQ0hPICJYJG15X2Rpcl9saXN0IiB8ICRYc2VkIC1lICdzLDoqJCwsJ2AKKyAgICAgIG15X2Rpcl9saXN0PWAkRUNITyAiJG15X2Rpcl9saXN0IiB8ICRTRUQgJ3MsOiokLCwnYAogCiAgICAgICBzYXZlX21rZGlyX3BfSUZTPSIkSUZTIjsgSUZTPSc6JwogICAgICAgZm9yIG15X2RpciBpbiAkbXlfZGlyX2xpc3Q7IGRvCkBAIC0zNzgsNyArNTgxLDcgQEAKICAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGNyZWF0ZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IFxgJG15X3RtcGRpciciCiAgICAgZmkKIAotICAgICRFQ0hPICJYJG15X3RtcGRpciIgfCAkWHNlZAorICAgICRFQ0hPICIkbXlfdG1wZGlyIgogfQogCiAKQEAgLTM5Miw3ICs1OTUsNyBAQAogewogICAgIGNhc2UgJDEgaW4KICAgICAgICpbXFxcYFwiXCRdKikKLQlmdW5jX3F1b3RlX2Zvcl9ldmFsX3VucXVvdGVkX3Jlc3VsdD1gJEVDSE8gIlgkMSIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgIDs7CisJZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQ9YCRFQ0hPICIkMSIgfCAkU0VEICIkc2VkX3F1b3RlX3N1YnN0ImAgOzsKICAgICAgICopCiAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0PSIkMSIgOzsKICAgICBlc2FjCkBAIC00MTksNyArNjIyLDcgQEAKIHsKICAgICBjYXNlICQxIGluCiAgICAgICAqW1xcXGBcIl0qKQotCW15X2FyZz1gJEVDSE8gIlgkMSIgfCAkWHNlZCBcCisJbXlfYXJnPWAkRUNITyAiJDEiIHwgJFNFRCBcCiAJICAgIC1lICIkZG91YmxlX3F1b3RlX3N1YnN0IiAtZSAiJHNlZF9kb3VibGVfYmFja3NsYXNoImAgOzsKICAgICAgICopCiAgICAgICAgIG15X2FyZz0iJDEiIDs7CkBAIC00ODgsMTUgKzY5MSwzOSBAQAogICAgIGZpCiB9CiAKLQotCisjIGZ1bmNfdHJfc2gKKyMgVHVybiAkMSBpbnRvIGEgc3RyaW5nIHN1aXRhYmxlIGZvciBhIHNoZWxsIHZhcmlhYmxlIG5hbWUuCisjIFJlc3VsdCBpcyBzdG9yZWQgaW4gJGZ1bmNfdHJfc2hfcmVzdWx0LiAgQWxsIGNoYXJhY3RlcnMKKyMgbm90IGluIHRoZSBzZXQgYS16QS1aMC05XyBhcmUgcmVwbGFjZWQgd2l0aCAnXycuIEZ1cnRoZXIsCisjIGlmICQxIGJlZ2lucyB3aXRoIGEgZGlnaXQsIGEgJ18nIGlzIHByZXBlbmRlZCBhcyB3ZWxsLgorZnVuY190cl9zaCAoKQoreworICBjYXNlICQxIGluCisgIFswLTldKiB8ICpbIWEtekEtWjAtOV9dKikKKyAgICBmdW5jX3RyX3NoX3Jlc3VsdD1gJEVDSE8gIiQxIiB8ICRTRUQgJ3MvXlwoWzAtOV1cKS9fXDEvOyBzL1teYS16QS1aMC05X10vXy9nJ2AKKyAgICA7OworICAqICkKKyAgICBmdW5jX3RyX3NoX3Jlc3VsdD0kMQorICAgIDs7CisgIGVzYWMKK30KIAogCiAjIGZ1bmNfdmVyc2lvbgogIyBFY2hvIHZlcnNpb24gbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCiBmdW5jX3ZlcnNpb24gKCkKIHsKLSAgICAkU0VEIC1uICcvXiMgJyRQUk9HUkFNJyAoR05VIC8sLyMgd2FycmFudHk7IC8geworICAgICRvcHRfZGVidWcKKworICAgICRTRUQgLW4gJy8oQykvIWIgZ28KKwk6bW9yZQorCS9cLi8heworCSAgTgorCSAgcy9cbiMgLyAvCisJICBiIG1vcmUKKwl9CisJOmdvCisJL14jICckUFJPR1JBTScgKEdOVSAvLC8jIHdhcnJhbnR5OyAvIHsKICAgICAgICAgcy9eIyAvLwogCXMvXiMgKiQvLwogICAgICAgICBzL1woKEMpXClbIDAtOSwtXSpcKCBbMS05XVswLTldKlwpL1wxXDIvCkBAIC01MDksMjIgKzczNiwyOCBAQAogIyBFY2hvIHNob3J0IGhlbHAgbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQuCiBmdW5jX3VzYWdlICgpCiB7Ci0gICAgJFNFRCAtbiAnL14jIFVzYWdlOi8sLyMgLWgvIHsKKyAgICAkb3B0X2RlYnVnCisKKyAgICAkU0VEIC1uICcvXiMgVXNhZ2U6LywvXiMgICouKi0taGVscC8gewogICAgICAgICBzL14jIC8vCiAJcy9eIyAqJC8vCiAJcy9cJHByb2duYW1lLyckcHJvZ25hbWUnLwogCXAKICAgICB9JyA8ICIkcHJvZ3BhdGgiCi0gICAgJEVDSE8KKyAgICBlY2hvCiAgICAgJEVDSE8gInJ1biBcYCRwcm9nbmFtZSAtLWhlbHAgfCBtb3JlJyBmb3IgZnVsbCB1c2FnZSIKICAgICBleGl0ICQ/CiB9CiAKLSMgZnVuY19oZWxwCi0jIEVjaG8gbG9uZyBoZWxwIG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LgorIyBmdW5jX2hlbHAgW05PRVhJVF0KKyMgRWNobyBsb25nIGhlbHAgbWVzc2FnZSB0byBzdGFuZGFyZCBvdXRwdXQgYW5kIGV4aXQsCisjIHVubGVzcyAnbm9leGl0JyBpcyBwYXNzZWQgYXMgYXJndW1lbnQuCiBmdW5jX2hlbHAgKCkKIHsKKyAgICAkb3B0X2RlYnVnCisKICAgICAkU0VEIC1uICcvXiMgVXNhZ2U6LywvIyBSZXBvcnQgYnVncyB0by8geworCTpwcmludAogICAgICAgICBzL14jIC8vCiAJcy9eIyAqJC8vCiAJcypcJHByb2duYW1lKickcHJvZ25hbWUnKgpAQCAtNTM0LDExICs3NjcsMTggQEAKIAlzKlwkTFRDRkxBR1MqJyIkTFRDRkxBR1MiJyoKIAlzKlwkTEQqJyIkTEQiJyoKIAlzL1wkd2l0aF9nbnVfbGQvJyIkd2l0aF9nbnVfbGQiJy8KLQlzL1wkYXV0b21ha2VfdmVyc2lvbi8nImAoYXV0b21ha2UgLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KLQlzL1wkYXV0b2NvbmZfdmVyc2lvbi8nImAoYXV0b2NvbmYgLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KKwlzL1wkYXV0b21ha2VfdmVyc2lvbi8nImAoJHtBVVRPTUFLRS1hdXRvbWFrZX0gLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KKwlzL1wkYXV0b2NvbmZfdmVyc2lvbi8nImAoJHtBVVRPQ09ORi1hdXRvY29uZn0gLS12ZXJzaW9uKSAyPi9kZXYvbnVsbCB8JFNFRCAxcWAiJy8KIAlwCi0gICAgIH0nIDwgIiRwcm9ncGF0aCIKLSAgICBleGl0ICQ/CisJZAorICAgICB9CisgICAgIC9eIyAuKiBob21lIHBhZ2U6L2IgcHJpbnQKKyAgICAgL14jIEdlbmVyYWwgaGVscCB1c2luZy9iIHByaW50CisgICAgICcgPCAiJHByb2dwYXRoIgorICAgIHJldD0kPworICAgIGlmIHRlc3QgLXogIiQxIjsgdGhlbgorICAgICAgZXhpdCAkcmV0CisgICAgZmkKIH0KIAogIyBmdW5jX21pc3NpbmdfYXJnIGFyZ25hbWUKQEAgLTU0Niw2MyArNzg2LDEwNiBAQAogIyBleGl0X2NtZC4KIGZ1bmNfbWlzc2luZ19hcmcgKCkKIHsKLSAgICBmdW5jX2Vycm9yICJtaXNzaW5nIGFyZ3VtZW50IGZvciAkMSIKKyAgICAkb3B0X2RlYnVnCisKKyAgICBmdW5jX2Vycm9yICJtaXNzaW5nIGFyZ3VtZW50IGZvciAkMS4iCiAgICAgZXhpdF9jbWQ9ZXhpdAogfQogCisKKyMgZnVuY19zcGxpdF9zaG9ydF9vcHQgc2hvcnRvcHQKKyMgU2V0IGZ1bmNfc3BsaXRfc2hvcnRfb3B0X25hbWUgYW5kIGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZyBzaGVsbAorIyB2YXJpYWJsZXMgYWZ0ZXIgc3BsaXR0aW5nIFNIT1JUT1BUIGFmdGVyIHRoZSAybmQgY2hhcmFjdGVyLgorZnVuY19zcGxpdF9zaG9ydF9vcHQgKCkKK3sKKyAgICBteV9zZWRfc2hvcnRfb3B0PScxcy9eXCguLlwpLiokL1wxLztxJworICAgIG15X3NlZF9zaG9ydF9yZXN0PScxcy9eLi5cKC4qXCkkL1wxLztxJworCisgICAgZnVuY19zcGxpdF9zaG9ydF9vcHRfbmFtZT1gJEVDSE8gIiQxIiB8ICRTRUQgIiRteV9zZWRfc2hvcnRfb3B0ImAKKyAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmc9YCRFQ0hPICIkMSIgfCAkU0VEICIkbXlfc2VkX3Nob3J0X3Jlc3QiYAorfSAjIGZ1bmNfc3BsaXRfc2hvcnRfb3B0IG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgorCisKKyMgZnVuY19zcGxpdF9sb25nX29wdCBsb25nb3B0CisjIFNldCBmdW5jX3NwbGl0X2xvbmdfb3B0X25hbWUgYW5kIGZ1bmNfc3BsaXRfbG9uZ19vcHRfYXJnIHNoZWxsCisjIHZhcmlhYmxlcyBhZnRlciBzcGxpdHRpbmcgTE9OR09QVCBhdCB0aGUgYD0nIHNpZ24uCitmdW5jX3NwbGl0X2xvbmdfb3B0ICgpCit7CisgICAgbXlfc2VkX2xvbmdfb3B0PScxcy9eXCgtLVtePV0qXCk9LiovXDEvO3EnCisgICAgbXlfc2VkX2xvbmdfYXJnPScxcy9eLS1bXj1dKj0vLycKKworICAgIGZ1bmNfc3BsaXRfbG9uZ19vcHRfbmFtZT1gJEVDSE8gIiQxIiB8ICRTRUQgIiRteV9zZWRfbG9uZ19vcHQiYAorICAgIGZ1bmNfc3BsaXRfbG9uZ19vcHRfYXJnPWAkRUNITyAiJDEiIHwgJFNFRCAiJG15X3NlZF9sb25nX2FyZyJgCit9ICMgZnVuY19zcGxpdF9sb25nX29wdCBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KKwogZXhpdF9jbWQ9OgogCiAKIAogCiAKLSMgQ2hlY2sgdGhhdCB3ZSBoYXZlIGEgd29ya2luZyAkRUNITy4KLWlmIHRlc3QgIlgkMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCi0gIHNoaWZ0Ci1lbGlmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCi0gICMgQXZvaWQgaW5saW5lIGRvY3VtZW50IGhlcmUsIGl0IG1heSBiZSBsZWZ0IG92ZXIKLSAgOgotZWxpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCc7IHRoZW4KLSAgIyBZaXBwZWUsICRFQ0hPIHdvcmtzIQotICA6Ci1lbHNlCi0gICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbCwgYW5kIHRoZW4gbWF5YmUgJEVDSE8gd2lsbCB3b3JrLgotICBleGVjICRTSEVMTCAiJHByb2dwYXRoIiAtLW5vLXJlZXhlYyAkezErIiRAIn0KLWZpCi0KLWlmIHRlc3QgIlgkMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCi0gICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCi0gIHNoaWZ0Ci0gIGNhdCA8PEVPRgotJCoKLUVPRgotICBleGl0ICRFWElUX1NVQ0NFU1MKLWZpCi0KIG1hZ2ljPSIlJSVNQUdJQyB2YXJpYWJsZSUlJSIKIG1hZ2ljX2V4ZT0iJSUlTUFHSUMgRVhFIHZhcmlhYmxlJSUlIgogCiAjIEdsb2JhbCB2YXJpYWJsZXMuCi0jICRtb2RlIGlzIHVuc2V0CiBub25vcHQ9Ci1leGVjdXRlX2RsZmlsZXM9CiBwcmVzZXJ2ZV9hcmdzPQogbG8ybz0icy9cXC5sb1wkLy4ke29iamV4dH0vIgogbzJsbz0icy9cXC4ke29iamV4dH1cJC8ubG8vIgogZXh0cmFjdGVkX2FyY2hpdmVzPQogZXh0cmFjdGVkX3NlcmlhbD0wCiAKLW9wdF9kcnlfcnVuPWZhbHNlCi1vcHRfZHVwbGljYXRlX2RlcHM9ZmFsc2UKLW9wdF9zaWxlbnQ9ZmFsc2UKLW9wdF9kZWJ1Zz06Ci0KICMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgaW4gYW55IG9mIHRoZSBhY3Rpb25zLCB0aGUgY29tbWFuZCBpbiBpdAogIyB3aWxsIGJlIGV4ZWNlZCBhdCB0aGUgZW5kLiAgVGhpcyBwcmV2ZW50cyBoZXJlLWRvY3VtZW50cyBmcm9tIGJlaW5nCiAjIGxlZnQgb3ZlciBieSBzaGVsbHMuCiBleGVjX2NtZD0KIAorIyBmdW5jX2FwcGVuZCB2YXIgdmFsdWUKKyMgQXBwZW5kIFZBTFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgorZnVuY19hcHBlbmQgKCkKK3sKKyAgICBldmFsICIkezF9PVwkJHsxfVwkezJ9IgorfSAjIGZ1bmNfYXBwZW5kIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgorCisjIGZ1bmNfYXBwZW5kX3F1b3RlZCB2YXIgdmFsdWUKKyMgUXVvdGUgVkFMVUUgYW5kIGFwcGVuZCB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUiwgc2VwYXJhdGVkCisjIGJ5IGEgc3BhY2UuCitmdW5jX2FwcGVuZF9xdW90ZWQgKCkKK3sKKyAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkezJ9IgorICAgIGV2YWwgIiR7MX09XCQkezF9XFwgXCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKK30gIyBmdW5jX2FwcGVuZF9xdW90ZWQgbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCisKKworIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgorZnVuY19hcml0aCAoKQoreworICAgIGZ1bmNfYXJpdGhfcmVzdWx0PWBleHByICIke0B9ImAKK30gIyBmdW5jX2FyaXRoIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgorCisKKyMgZnVuY19sZW4gc3RyaW5nCisjIFNUUklORyBtYXkgbm90IHN0YXJ0IHdpdGggYSBoeXBoZW4uCitmdW5jX2xlbiAoKQoreworICAgIGZ1bmNfbGVuX3Jlc3VsdD1gZXhwciAiJHsxfSIgOiAiLioiIDI+L2Rldi9udWxsIHx8IGVjaG8gJG1heF9jbWRfbGVuYAorfSAjIGZ1bmNfbGVuIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgorCisKKyMgZnVuY19sbzJvIG9iamVjdAorZnVuY19sbzJvICgpCit7CisgICAgZnVuY19sbzJvX3Jlc3VsdD1gJEVDSE8gIiR7MX0iIHwgJFNFRCAiJGxvMm8iYAorfSAjIGZ1bmNfbG8ybyBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KKworCisjIGZ1bmNfeGZvcm0gbGlib2JqLW9yLXNvdXJjZQorZnVuY194Zm9ybSAoKQoreworICAgIGZ1bmNfeGZvcm1fcmVzdWx0PWAkRUNITyAiJHsxfSIgfCAkU0VEICdzL1wuW14uXSokLy5sby8nYAorfSAjIGZ1bmNfeGZvcm0gbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCisKKwogIyBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gYXJnLi4uCiAjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IsIGZvbGxvd2VkIGJ5CiAjIGEgY29uZmlndXJhdGlvbiBmYWlsdXJlIGhpbnQsIGFuZCBleGl0LgpAQCAtNjM2LDE2ICs5MTksMTYgQEAKICMgRGlzcGxheSB0aGUgZmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHRoaXMgc2NyaXB0LgogZnVuY19mZWF0dXJlcyAoKQogewotICAgICRFQ0hPICJob3N0OiAkaG9zdCIKKyAgICBlY2hvICJob3N0OiAkaG9zdCIKICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgotICAgICAgJEVDSE8gImVuYWJsZSBzaGFyZWQgbGlicmFyaWVzIgorICAgICAgZWNobyAiZW5hYmxlIHNoYXJlZCBsaWJyYXJpZXMiCiAgICAgZWxzZQotICAgICAgJEVDSE8gImRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyIKKyAgICAgIGVjaG8gImRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyIKICAgICBmaQogICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSAgICAgICRFQ0hPICJlbmFibGUgc3RhdGljIGxpYnJhcmllcyIKKyAgICAgIGVjaG8gImVuYWJsZSBzdGF0aWMgbGlicmFyaWVzIgogICAgIGVsc2UKLSAgICAgICRFQ0hPICJkaXNhYmxlIHN0YXRpYyBsaWJyYXJpZXMiCisgICAgICBlY2hvICJkaXNhYmxlIHN0YXRpYyBsaWJyYXJpZXMiCiAgICAgZmkKIAogICAgIGV4aXQgJD8KQEAgLTY5MiwxMzMgKzk3NSw2IEBACiAgIGVzYWMKIH0KIAotIyBQYXJzZSBvcHRpb25zIG9uY2UsIHRob3JvdWdobHkuICBUaGlzIGNvbWVzIGFzIHNvb24gYXMgcG9zc2libGUgaW4KLSMgdGhlIHNjcmlwdCB0byBtYWtlIHRoaW5ncyBsaWtlIGBsaWJ0b29sIC0tdmVyc2lvbicgaGFwcGVuIHF1aWNrbHkuCi17Ci0KLSAgIyBTaG9ydGhhbmQgZm9yIC0tbW9kZT1mb28sIG9ubHkgdmFsaWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50Ci0gIGNhc2UgJDEgaW4KLSAgY2xlYW58Y2xlYXxjbGV8Y2wpCi0gICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY2xlYW4gJHsxKyIkQCJ9OyBzaGlmdAotICAgIDs7Ci0gIGNvbXBpbGV8Y29tcGlsfGNvbXBpfGNvbXB8Y29tfGNvfGMpCi0gICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY29tcGlsZSAkezErIiRAIn07IHNoaWZ0Ci0gICAgOzsKLSAgZXhlY3V0ZXxleGVjdXR8ZXhlY3V8ZXhlY3xleGV8ZXh8ZSkKLSAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBleGVjdXRlICR7MSsiJEAifTsgc2hpZnQKLSAgICA7OwotICBmaW5pc2h8ZmluaXN8ZmluaXxmaW58Zml8ZikKLSAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBzaGlmdAotICAgIDs7Ci0gIGluc3RhbGx8aW5zdGFsfGluc3RhfGluc3R8aW5zfGlufGkpCi0gICAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0Ci0gICAgOzsKLSAgbGlua3xsaW58bGl8bCkKLSAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7MSsiJEAifTsgc2hpZnQKLSAgICA7OwotICB1bmluc3RhbGx8dW5pbnN0YWx8dW5pbnN0YXx1bmluc3R8dW5pbnN8dW5pbnx1bml8dW58dSkKLSAgICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1bmluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAotICAgIDs7Ci0gIGVzYWMKLQotICAjIFBhcnNlIG5vbi1tb2RlIHNwZWNpZmljIGFyZ3VtZW50czoKLSAgd2hpbGUgdGVzdCAiJCMiIC1ndCAwOyBkbwotICAgIG9wdD0iJDEiCi0gICAgc2hpZnQKLQotICAgIGNhc2UgJG9wdCBpbgotICAgICAgLS1jb25maWcpCQlmdW5jX2NvbmZpZwkJCQkJOzsKLQotICAgICAgLS1kZWJ1ZykJCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQiCi0JCQlmdW5jX2VjaG8gImVuYWJsaW5nIHNoZWxsIHRyYWNlIG1vZGUiCi0JCQlvcHRfZGVidWc9J3NldCAteCcKLQkJCSRvcHRfZGVidWcKLQkJCTs7Ci0KLSAgICAgIC1kbG9wZW4pCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKLQkJCWV4ZWN1dGVfZGxmaWxlcz0iJGV4ZWN1dGVfZGxmaWxlcyAkMSIKLQkJCXNoaWZ0Ci0JCQk7OwotCi0gICAgICAtLWRyeS1ydW4gfCAtbikJb3B0X2RyeV9ydW49OgkJCQkJOzsKLSAgICAgIC0tZmVhdHVyZXMpICAgICAgIGZ1bmNfZmVhdHVyZXMJCQkJCTs7Ci0gICAgICAtLWZpbmlzaCkJCW1vZGU9ImZpbmlzaCIJCQkJCTs7Ci0KLSAgICAgIC0tbW9kZSkJCXRlc3QgIiQjIiAtZXEgMCAmJiBmdW5jX21pc3NpbmdfYXJnICIkb3B0IiAmJiBicmVhawotCQkJY2FzZSAkMSBpbgotCQkJICAjIFZhbGlkIG1vZGUgYXJndW1lbnRzOgotCQkJICBjbGVhbikJOzsKLQkJCSAgY29tcGlsZSkJOzsKLQkJCSAgZXhlY3V0ZSkJOzsKLQkJCSAgZmluaXNoKQk7OwotCQkJICBpbnN0YWxsKQk7OwotCQkJICBsaW5rKQkJOzsKLQkJCSAgcmVsaW5rKQk7OwotCQkJICB1bmluc3RhbGwpCTs7Ci0KLQkJCSAgIyBDYXRjaCBhbnl0aGluZyBlbHNlIGFzIGFuIGVycm9yCi0JCQkgICopIGZ1bmNfZXJyb3IgImludmFsaWQgYXJndW1lbnQgZm9yICRvcHQiCi0JCQkgICAgIGV4aXRfY21kPWV4aXQKLQkJCSAgICAgYnJlYWsKLQkJCSAgICAgOzsKLQkJICAgICAgICBlc2FjCi0KLQkJCW1vZGU9IiQxIgotCQkJc2hpZnQKLQkJCTs7Ci0KLSAgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMpCi0JCQlvcHRfZHVwbGljYXRlX2RlcHM9OgkJCQk7OwotCi0gICAgICAtLXF1aWV0fC0tc2lsZW50KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgotCQkJb3B0X3NpbGVudD06Ci0JCQk7OwotCi0gICAgICAtLXZlcmJvc2V8IC12KQlwcmVzZXJ2ZV9hcmdzPSIkcHJlc2VydmVfYXJncyAkb3B0IgotCQkJb3B0X3NpbGVudD1mYWxzZQotCQkJOzsKLQotICAgICAgLS10YWcpCQl0ZXN0ICIkIyIgLWVxIDAgJiYgZnVuY19taXNzaW5nX2FyZyAiJG9wdCIgJiYgYnJlYWsKLQkJCXByZXNlcnZlX2FyZ3M9IiRwcmVzZXJ2ZV9hcmdzICRvcHQgJDEiCi0JCQlmdW5jX2VuYWJsZV90YWcgIiQxIgkjIHRhZ25hbWUgaXMgc2V0IGhlcmUKLQkJCXNoaWZ0Ci0JCQk7OwotCi0gICAgICAjIFNlcGFyYXRlIG9wdGFyZ3MgdG8gbG9uZyBvcHRpb25zOgotICAgICAgLWRsb3Blbj0qfC0tbW9kZT0qfC0tdGFnPSopCi0JCQlmdW5jX29wdF9zcGxpdCAiJG9wdCIKLQkJCXNldCBkdW1teSAiJGZ1bmNfb3B0X3NwbGl0X29wdCIgIiRmdW5jX29wdF9zcGxpdF9hcmciICR7MSsiJEAifQotCQkJc2hpZnQKLQkJCTs7Ci0KLSAgICAgIC1cP3wtaCkJCWZ1bmNfdXNhZ2UJCQkJCTs7Ci0gICAgICAtLWhlbHApCQlvcHRfaGVscD06CQkJCQk7OwotICAgICAgLS12ZXJzaW9uKQlmdW5jX3ZlcnNpb24JCQkJCTs7Ci0KLSAgICAgIC0qKQkJZnVuY19mYXRhbF9oZWxwICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgJG9wdCciCTs7Ci0KLSAgICAgICopCQlub25vcHQ9IiRvcHQiCi0JCQlicmVhawotCQkJOzsKLSAgICBlc2FjCi0gIGRvbmUKLQotCi0gIGNhc2UgJGhvc3QgaW4KLSAgICAqY3lnd2luKiB8ICptaW5ndyogfCAqcHczMiogfCAqY2VnY2MqKQotICAgICAgIyBkb24ndCBlbGltaW5hdGUgZHVwbGljYXRpb25zIGluICRwb3N0ZGVwcyBhbmQgJHByZWRlcHMKLSAgICAgIG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9OgotICAgICAgOzsKLSAgICAqKQotICAgICAgb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwcz0kb3B0X2R1cGxpY2F0ZV9kZXBzCi0gICAgICA7OwotICBlc2FjCi0KLSAgIyBIYXZpbmcgd2FybmVkIGFib3V0IGFsbCBtaXMtc3BlY2lmaWVkIG9wdGlvbnMsIGJhaWwgb3V0IGlmCi0gICMgYW55dGhpbmcgd2FzIHdyb25nLgotICAkZXhpdF9jbWQgJEVYSVRfRkFJTFVSRQotfQotCiAjIGZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaAogIyBFbnN1cmUgdGhhdCB3ZSBhcmUgdXNpbmcgbTQgbWFjcm9zLCBhbmQgbGlidG9vbCBzY3JpcHQgZnJvbSB0aGUgc2FtZQogIyByZWxlYXNlIG9mIGxpYnRvb2wuCkBAIC04NTUsMzggKzEwMTEsMjE5IEBACiB9CiAKIAorIyBTaG9ydGhhbmQgZm9yIC0tbW9kZT1mb28sIG9ubHkgdmFsaWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50CitjYXNlICQxIGluCitjbGVhbnxjbGVhfGNsZXxjbCkKKyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY2xlYW4gJHsxKyIkQCJ9OyBzaGlmdAorICA7OworY29tcGlsZXxjb21waWx8Y29tcGl8Y29tcHxjb218Y298YykKKyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY29tcGlsZSAkezErIiRAIn07IHNoaWZ0CisgIDs7CitleGVjdXRlfGV4ZWN1dHxleGVjdXxleGVjfGV4ZXxleHxlKQorICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBleGVjdXRlICR7MSsiJEAifTsgc2hpZnQKKyAgOzsKK2ZpbmlzaHxmaW5pc3xmaW5pfGZpbnxmaXxmKQorICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBzaGlmdAorICA7OworaW5zdGFsbHxpbnN0YWx8aW5zdGF8aW5zdHxpbnN8aW58aSkKKyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0CisgIDs7CitsaW5rfGxpbnxsaXxsKQorICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7MSsiJEAifTsgc2hpZnQKKyAgOzsKK3VuaW5zdGFsbHx1bmluc3RhbHx1bmluc3RhfHVuaW5zdHx1bmluc3x1bmlufHVuaXx1bnx1KQorICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1bmluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAorICA7OworZXNhYworCisKKworIyBPcHRpb24gZGVmYXVsdHM6CitvcHRfZGVidWc9Ogorb3B0X2RyeV9ydW49ZmFsc2UKK29wdF9jb25maWc9ZmFsc2UKK29wdF9wcmVzZXJ2ZV9kdXBfZGVwcz1mYWxzZQorb3B0X2ZlYXR1cmVzPWZhbHNlCitvcHRfZmluaXNoPWZhbHNlCitvcHRfaGVscD1mYWxzZQorb3B0X2hlbHBfYWxsPWZhbHNlCitvcHRfc2lsZW50PToKK29wdF93YXJuaW5nPToKK29wdF92ZXJib3NlPToKK29wdF9zaWxlbnQ9ZmFsc2UKK29wdF92ZXJib3NlPWZhbHNlCisKKworIyBQYXJzZSBvcHRpb25zIG9uY2UsIHRob3JvdWdobHkuICBUaGlzIGNvbWVzIGFzIHNvb24gYXMgcG9zc2libGUgaW4gdGhlCisjIHNjcmlwdCB0byBtYWtlIHRoaW5ncyBsaWtlIGAtLXZlcnNpb24nIGhhcHBlbiBhcyBxdWlja2x5IGFzIHdlIGNhbi4KK3sKKyAgIyB0aGlzIGp1c3QgZWFzZXMgZXhpdCBoYW5kbGluZworICB3aGlsZSB0ZXN0ICQjIC1ndCAwOyBkbworICAgIG9wdD0iJDEiCisgICAgc2hpZnQKKyAgICBjYXNlICRvcHQgaW4KKyAgICAgIC0tZGVidWd8LXgpCW9wdF9kZWJ1Zz0nc2V0IC14JworCQkJZnVuY19lY2hvICJlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgorCQkJJG9wdF9kZWJ1ZworCQkJOzsKKyAgICAgIC0tZHJ5LXJ1bnwtLWRyeXJ1bnwtbikKKwkJCW9wdF9kcnlfcnVuPToKKwkJCTs7CisgICAgICAtLWNvbmZpZykKKwkJCW9wdF9jb25maWc9OgorZnVuY19jb25maWcKKwkJCTs7CisgICAgICAtLWRsb3BlbnwtZGxvcGVuKQorCQkJb3B0YXJnPSIkMSIKKwkJCW9wdF9kbG9wZW49IiR7b3B0X2Rsb3Blbiskb3B0X2Rsb3BlbgorfSRvcHRhcmciCisJCQlzaGlmdAorCQkJOzsKKyAgICAgIC0tcHJlc2VydmUtZHVwLWRlcHMpCisJCQlvcHRfcHJlc2VydmVfZHVwX2RlcHM9OgorCQkJOzsKKyAgICAgIC0tZmVhdHVyZXMpCisJCQlvcHRfZmVhdHVyZXM9OgorZnVuY19mZWF0dXJlcworCQkJOzsKKyAgICAgIC0tZmluaXNoKQorCQkJb3B0X2ZpbmlzaD06CitzZXQgZHVtbXkgLS1tb2RlIGZpbmlzaCAkezErIiRAIn07IHNoaWZ0CisJCQk7OworICAgICAgLS1oZWxwKQorCQkJb3B0X2hlbHA9OgorCQkJOzsKKyAgICAgIC0taGVscC1hbGwpCisJCQlvcHRfaGVscF9hbGw9Ogorb3B0X2hlbHA9JzogaGVscC1hbGwnCisJCQk7OworICAgICAgLS1tb2RlKQorCQkJdGVzdCAkIyA9IDAgJiYgZnVuY19taXNzaW5nX2FyZyAkb3B0ICYmIGJyZWFrCisJCQlvcHRhcmc9IiQxIgorCQkJb3B0X21vZGU9IiRvcHRhcmciCitjYXNlICRvcHRhcmcgaW4KKyAgIyBWYWxpZCBtb2RlIGFyZ3VtZW50czoKKyAgY2xlYW58Y29tcGlsZXxleGVjdXRlfGZpbmlzaHxpbnN0YWxsfGxpbmt8cmVsaW5rfHVuaW5zdGFsbCkgOzsKKworICAjIENhdGNoIGFueXRoaW5nIGVsc2UgYXMgYW4gZXJyb3IKKyAgKikgZnVuY19lcnJvciAiaW52YWxpZCBhcmd1bWVudCBmb3IgJG9wdCIKKyAgICAgZXhpdF9jbWQ9ZXhpdAorICAgICBicmVhaworICAgICA7OworZXNhYworCQkJc2hpZnQKKwkJCTs7CisgICAgICAtLW5vLXNpbGVudHwtLW5vLXF1aWV0KQorCQkJb3B0X3NpbGVudD1mYWxzZQorZnVuY19hcHBlbmQgcHJlc2VydmVfYXJncyAiICRvcHQiCisJCQk7OworICAgICAgLS1uby13YXJuaW5nfC0tbm8td2FybikKKwkJCW9wdF93YXJuaW5nPWZhbHNlCitmdW5jX2FwcGVuZCBwcmVzZXJ2ZV9hcmdzICIgJG9wdCIKKwkJCTs7CisgICAgICAtLW5vLXZlcmJvc2UpCisJCQlvcHRfdmVyYm9zZT1mYWxzZQorZnVuY19hcHBlbmQgcHJlc2VydmVfYXJncyAiICRvcHQiCisJCQk7OworICAgICAgLS1zaWxlbnR8LS1xdWlldCkKKwkJCW9wdF9zaWxlbnQ9OgorZnVuY19hcHBlbmQgcHJlc2VydmVfYXJncyAiICRvcHQiCisgICAgICAgIG9wdF92ZXJib3NlPWZhbHNlCisJCQk7OworICAgICAgLS12ZXJib3NlfC12KQorCQkJb3B0X3ZlcmJvc2U9OgorZnVuY19hcHBlbmQgcHJlc2VydmVfYXJncyAiICRvcHQiCitvcHRfc2lsZW50PWZhbHNlCisJCQk7OworICAgICAgLS10YWcpCisJCQl0ZXN0ICQjID0gMCAmJiBmdW5jX21pc3NpbmdfYXJnICRvcHQgJiYgYnJlYWsKKwkJCW9wdGFyZz0iJDEiCisJCQlvcHRfdGFnPSIkb3B0YXJnIgorZnVuY19hcHBlbmQgcHJlc2VydmVfYXJncyAiICRvcHQgJG9wdGFyZyIKK2Z1bmNfZW5hYmxlX3RhZyAiJG9wdGFyZyIKKwkJCXNoaWZ0CisJCQk7OworCisgICAgICAtXD98LWgpCQlmdW5jX3VzYWdlCQkJCTs7CisgICAgICAtLWhlbHApCQlmdW5jX2hlbHAJCQkJOzsKKyAgICAgIC0tdmVyc2lvbikJZnVuY192ZXJzaW9uCQkJCTs7CisKKyAgICAgICMgU2VwYXJhdGUgb3B0YXJncyB0byBsb25nIG9wdGlvbnM6CisgICAgICAtLSo9KikKKwkJCWZ1bmNfc3BsaXRfbG9uZ19vcHQgIiRvcHQiCisJCQlzZXQgZHVtbXkgIiRmdW5jX3NwbGl0X2xvbmdfb3B0X25hbWUiICIkZnVuY19zcGxpdF9sb25nX29wdF9hcmciICR7MSsiJEAifQorCQkJc2hpZnQKKwkJCTs7CisKKyAgICAgICMgU2VwYXJhdGUgbm9uLWFyZ3VtZW50IHNob3J0IG9wdGlvbnM6CisgICAgICAtXD8qfC1oKnwtbip8LXYqKQorCQkJZnVuY19zcGxpdF9zaG9ydF9vcHQgIiRvcHQiCisJCQlzZXQgZHVtbXkgIiRmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lIiAiLSRmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmciICR7MSsiJEAifQorCQkJc2hpZnQKKwkJCTs7CisKKyAgICAgIC0tKQkJYnJlYWsJCQkJCTs7CisgICAgICAtKikJCWZ1bmNfZmF0YWxfaGVscCAidW5yZWNvZ25pemVkIG9wdGlvbiBcYCRvcHQnIiA7OworICAgICAgKikJCXNldCBkdW1teSAiJG9wdCIgJHsxKyIkQCJ9OwlzaGlmdDsgYnJlYWsgIDs7CisgICAgZXNhYworICBkb25lCisKKyAgIyBWYWxpZGF0ZSBvcHRpb25zOgorCisgICMgc2F2ZSBmaXJzdCBub24tb3B0aW9uIGFyZ3VtZW50CisgIGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgorICAgIG5vbm9wdD0iJG9wdCIKKyAgICBzaGlmdAorICBmaQorCisgICMgcHJlc2VydmUgLS1kZWJ1ZworICB0ZXN0ICIkb3B0X2RlYnVnIiA9IDogfHwgZnVuY19hcHBlbmQgcHJlc2VydmVfYXJncyAiIC0tZGVidWciCisKKyAgY2FzZSAkaG9zdCBpbgorICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpwdzMyKiB8ICpjZWdjYyopCisgICAgICAjIGRvbid0IGVsaW1pbmF0ZSBkdXBsaWNhdGlvbnMgaW4gJHBvc3RkZXBzIGFuZCAkcHJlZGVwcworICAgICAgb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwcz06CisgICAgICA7OworICAgICopCisgICAgICBvcHRfZHVwbGljYXRlX2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPSRvcHRfcHJlc2VydmVfZHVwX2RlcHMKKyAgICAgIDs7CisgIGVzYWMKKworICAkb3B0X2hlbHAgfHwgeworICAgICMgU2FuaXR5IGNoZWNrcyBmaXJzdDoKKyAgICBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKKworICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiICE9IHllczsgdGhlbgorICAgICAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJub3QgY29uZmlndXJlZCB0byBidWlsZCBhbnkga2luZCBvZiBsaWJyYXJ5IgorICAgIGZpCisKKyAgICAjIERhcndpbiBzdWNrcworICAgIGV2YWwgc3RkX3NocmV4dD1cIiRzaHJleHRfY21kc1wiCisKKyAgICAjIE9ubHkgZXhlY3V0ZSBtb2RlIGlzIGFsbG93ZWQgdG8gaGF2ZSAtZGxvcGVuIGZsYWdzLgorICAgIGlmIHRlc3QgLW4gIiRvcHRfZGxvcGVuIiAmJiB0ZXN0ICIkb3B0X21vZGUiICE9IGV4ZWN1dGU7IHRoZW4KKyAgICAgIGZ1bmNfZXJyb3IgInVucmVjb2duaXplZCBvcHRpb24gXGAtZGxvcGVuJyIKKyAgICAgICRFQ0hPICIkaGVscCIgMT4mMgorICAgICAgZXhpdCAkRVhJVF9GQUlMVVJFCisgICAgZmkKKworICAgICMgQ2hhbmdlIHRoZSBoZWxwIG1lc3NhZ2UgdG8gYSBtb2RlLXNwZWNpZmljIG9uZS4KKyAgICBnZW5lcmljX2hlbHA9IiRoZWxwIgorICAgIGhlbHA9IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAgLS1tb2RlPSRvcHRfbW9kZScgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgorICB9CisKKworICAjIEJhaWwgaWYgdGhlIG9wdGlvbnMgd2VyZSBzY3Jld2VkCisgICRleGl0X2NtZCAkRVhJVF9GQUlMVVJFCit9CisKKworCisKICMjIC0tLS0tLS0tLS0tICMjCiAjIyAgICBNYWluLiAgICAjIwogIyMgLS0tLS0tLS0tLS0gIyMKIAotJG9wdF9oZWxwIHx8IHsKLSAgIyBTYW5pdHkgY2hlY2tzIGZpcnN0OgotICBmdW5jX2NoZWNrX3ZlcnNpb25fbWF0Y2gKLQotICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiAhPSB5ZXM7IHRoZW4KLSAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gIm5vdCBjb25maWd1cmVkIHRvIGJ1aWxkIGFueSBraW5kIG9mIGxpYnJhcnkiCi0gIGZpCi0KLSAgdGVzdCAteiAiJG1vZGUiICYmIGZ1bmNfZmF0YWxfZXJyb3IgImVycm9yOiB5b3UgbXVzdCBzcGVjaWZ5IGEgTU9ERS4iCi0KLQotICAjIERhcndpbiBzdWNrcwotICBldmFsIHN0ZF9zaHJleHQ9XCIkc2hyZXh0X2NtZHNcIgotCi0KLSAgIyBPbmx5IGV4ZWN1dGUgbW9kZSBpcyBhbGxvd2VkIHRvIGhhdmUgLWRsb3BlbiBmbGFncy4KLSAgaWYgdGVzdCAtbiAiJGV4ZWN1dGVfZGxmaWxlcyIgJiYgdGVzdCAiJG1vZGUiICE9IGV4ZWN1dGU7IHRoZW4KLSAgICBmdW5jX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxgLWRsb3BlbiciCi0gICAgJEVDSE8gIiRoZWxwIiAxPiYyCi0gICAgZXhpdCAkRVhJVF9GQUlMVVJFCi0gIGZpCi0KLSAgIyBDaGFuZ2UgdGhlIGhlbHAgbWVzc2FnZSB0byBhIG1vZGUtc3BlY2lmaWMgb25lLgotICBnZW5lcmljX2hlbHA9IiRoZWxwIgotICBoZWxwPSJUcnkgXGAkcHJvZ25hbWUgLS1oZWxwIC0tbW9kZT0kbW9kZScgZm9yIG1vcmUgaW5mb3JtYXRpb24uIgotfQotCi0KICMgZnVuY19sYWxpYl9wIGZpbGUKICMgVHJ1ZSBpZmYgRklMRSBpcyBhIGxpYnRvb2wgYC5sYScgbGlicmFyeSBvciBgLmxvJyBvYmplY3QgZmlsZS4KICMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKQEAgLTk1MCwxMiArMTI4Nyw5IEBACiAjIHRlbXBvcmFyeSBsdHdyYXBwZXJfc2NyaXB0LgogZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAoKQogewotICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIiCi0gICAgaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIkMSI7IHRoZW4KLQlmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICIkMSIgIiIgIi4iCi0JZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0JZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0LyRvYmpkaXIvJHtmdW5jX3N0cmlwbmFtZV9yZXN1bHR9X2x0c2h3cmFwcGVyIgotICAgIGZpCisgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAiJDEiICIiICIuIgorICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgorICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdC8kb2JqZGlyLyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fV9sdHNod3JhcHBlciIKIH0KIAogIyBmdW5jX2x0d3JhcHBlcl9wIGZpbGUKQEAgLTEwMDEsNiArMTMzNSwzNyBAQAogfQogCiAKKyMgZnVuY19yZXNvbHZlX3N5c3Jvb3QgUEFUSAorIyBSZXBsYWNlIGEgbGVhZGluZyA9IGluIFBBVEggd2l0aCBhIHN5c3Jvb3QuICBTdG9yZSB0aGUgcmVzdWx0IGludG8KKyMgZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CitmdW5jX3Jlc29sdmVfc3lzcm9vdCAoKQoreworICBmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQ9JDEKKyAgY2FzZSAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IGluCisgID0qKQorICAgIGZ1bmNfc3RyaXBuYW1lICc9JyAnJyAiJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIKKyAgICBmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQ9JGx0X3N5c3Jvb3QkZnVuY19zdHJpcG5hbWVfcmVzdWx0CisgICAgOzsKKyAgZXNhYworfQorCisjIGZ1bmNfcmVwbGFjZV9zeXNyb290IFBBVEgKKyMgSWYgUEFUSCBiZWdpbnMgd2l0aCB0aGUgc3lzcm9vdCwgcmVwbGFjZSBpdCB3aXRoID0gYW5kCisjIHN0b3JlIHRoZSByZXN1bHQgaW50byBmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQuCitmdW5jX3JlcGxhY2Vfc3lzcm9vdCAoKQoreworICBjYXNlICIkbHRfc3lzcm9vdDokMSIgaW4KKyAgPyo6IiRsdF9zeXNyb290IiopCisgICAgZnVuY19zdHJpcG5hbWUgIiRsdF9zeXNyb290IiAnJyAiJDEiCisgICAgZnVuY19yZXBsYWNlX3N5c3Jvb3RfcmVzdWx0PSI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKKyAgICA7OworICAqKQorICAgICMgSW5jbHVkaW5nIG5vIHN5c3Jvb3QuCisgICAgZnVuY19yZXBsYWNlX3N5c3Jvb3RfcmVzdWx0PSQxCisgICAgOzsKKyAgZXNhYworfQorCiAjIGZ1bmNfaW5mZXJfdGFnIGFyZwogIyBJbmZlciB0YWdnZWQgY29uZmlndXJhdGlvbiB0byB1c2UgaWYgYW55IGFyZSBhdmFpbGFibGUgYW5kCiAjIGlmIG9uZSB3YXNuJ3QgY2hvc2VuIHZpYSB0aGUgIi0tdGFnIiBjb21tYW5kIGxpbmUgb3B0aW9uLgpAQCAtMTAxMywxMyArMTM3OCwxNSBAQAogICAgIGlmIHRlc3QgLW4gIiRhdmFpbGFibGVfdGFncyIgJiYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCiAgICAgICBDQ19xdW90ZWQ9CiAgICAgICBmb3IgYXJnIGluICRDQzsgZG8KLSAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLQlDQ19xdW90ZWQ9IiRDQ19xdW90ZWQgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCWZ1bmNfYXBwZW5kX3F1b3RlZCBDQ19xdW90ZWQgIiRhcmciCiAgICAgICBkb25lCisgICAgICBDQ19leHBhbmRlZD1gZnVuY19lY2hvX2FsbCAkQ0NgCisgICAgICBDQ19xdW90ZWRfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJENDX3F1b3RlZGAKICAgICAgIGNhc2UgJEAgaW4KICAgICAgICMgQmxhbmtzIGluIHRoZSBjb21tYW5kIG1heSBoYXZlIGJlZW4gc3RyaXBwZWQgYnkgdGhlIGNhbGxpbmcgc2hlbGwsCiAgICAgICAjIGJ1dCBub3QgZnJvbSB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiBjb25maWd1cmUgd2FzIHJ1bi4KLSAgICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgYCRFQ0hPICRDQ2AgIiogfCAiYCRFQ0hPICRDQ2AgIiogfCAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiBgJEVDSE8gJENDX3F1b3RlZGAgIiogfCAiYCRFQ0hPICRDQ19xdW90ZWRgICIqKSA7OworICAgICAgIiAkQ0MgIiogfCAiJENDICIqIHwgIiAkQ0NfZXhwYW5kZWQgIiogfCAiJENDX2V4cGFuZGVkICIqIHwgXAorICAgICAgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgJENDX3F1b3RlZF9leHBhbmRlZCAiKiB8ICIkQ0NfcXVvdGVkX2V4cGFuZGVkICIqKSA7OwogICAgICAgIyBCbGFua3MgYXQgdGhlIHN0YXJ0IG9mICRiYXNlX2NvbXBpbGUgd2lsbCBjYXVzZSB0aGlzIHRvIGZhaWwKICAgICAgICMgaWYgd2UgZG9uJ3QgY2hlY2sgZm9yIHRoZW0gYXMgd2VsbC4KICAgICAgICopCkBAIC0xMDMwLDExICsxMzk3LDEzIEBACiAJICAgIENDX3F1b3RlZD0KIAkgICAgZm9yIGFyZyBpbiAkQ0M7IGRvCiAJICAgICAgIyBEb3VibGUtcXVvdGUgYXJncyBjb250YWluaW5nIG90aGVyIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLgotCSAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0JICAgICAgQ0NfcXVvdGVkPSIkQ0NfcXVvdGVkICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwkgICAgICBmdW5jX2FwcGVuZF9xdW90ZWQgQ0NfcXVvdGVkICIkYXJnIgogCSAgICBkb25lCisJICAgIENDX2V4cGFuZGVkPWBmdW5jX2VjaG9fYWxsICRDQ2AKKwkgICAgQ0NfcXVvdGVkX2V4cGFuZGVkPWBmdW5jX2VjaG9fYWxsICRDQ19xdW90ZWRgCiAJICAgIGNhc2UgIiRAICIgaW4KLQkgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiIGAkRUNITyAkQ0NgICIqIHwgImAkRUNITyAkQ0NgICIqIHwgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1b3RlZCAiKiB8ICIgYCRFQ0hPICRDQ19xdW90ZWRgICIqIHwgImAkRUNITyAkQ0NfcXVvdGVkYCAiKikKKwkgICAgIiAkQ0MgIiogfCAiJENDICIqIHwgIiAkQ0NfZXhwYW5kZWQgIiogfCAiJENDX2V4cGFuZGVkICIqIHwgXAorCSAgICAiICRDQ19xdW90ZWQiKiB8ICIkQ0NfcXVvdGVkICIqIHwgIiAkQ0NfcXVvdGVkX2V4cGFuZGVkICIqIHwgIiRDQ19xdW90ZWRfZXhwYW5kZWQgIiopCiAJICAgICAgIyBUaGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1hdGNoZXMKIAkgICAgICAjIHRoZSBvbmUgaW4gdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uLgogCSAgICAgICMgQXNzdW1lIHRoaXMgaXMgdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uIHdlIHdhbnQuCkBAIC0xMDk3LDYgKzE0NjYsNDg2IEBACiAgICAgfQogfQogCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIEZJTEUgTkFNRSBBTkQgUEFUSCBDT05WRVJTSU9OIEhFTFBFUiBGVU5DVElPTlMgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyIEFSRworIyBIZWxwZXIgZnVuY3Rpb24gdXNlZCBieSBmaWxlIG5hbWUgY29udmVyc2lvbiBmdW5jdGlvbnMgd2hlbiAkYnVpbGQgaXMgKm5peCwKKyMgYW5kICRob3N0IGlzIG1pbmd3LCBjeWd3aW4sIG9yIHNvbWUgb3RoZXIgdzMyIGVudmlyb25tZW50LiBSZWxpZXMgb24gYQorIyBjb3JyZWN0bHkgY29uZmlndXJlZCB3aW5lIGVudmlyb25tZW50IGF2YWlsYWJsZSwgd2l0aCB0aGUgd2luZXBhdGggcHJvZ3JhbQorIyBpbiAkYnVpbGQncyAkUEFUSC4KKyMKKyMgQVJHIGlzIHRoZSAkYnVpbGQgZmlsZSBuYW1lIHRvIGJlIGNvbnZlcnRlZCB0byB3MzIgZm9ybWF0LgorIyBSZXN1bHQgaXMgYXZhaWxhYmxlIGluICRmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyX3Jlc3VsdCwgYW5kIHdpbGwKKyMgYmUgZW1wdHkgb24gZXJyb3IgKG9yIHdoZW4gQVJHIGlzIGVtcHR5KQorZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMiAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgIyBVbmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2VzIG5vdCBleGl0IHdpdGggYSBub24temVybyBlcnJvciBjb2RlLCBzbyB3ZQorICAgICMgYXJlIGZvcmNlZCB0byBjaGVjayB0aGUgY29udGVudHMgb2Ygc3Rkb3V0LiBPbiB0aGUgb3RoZXIgaGFuZCwgaWYgdGhlCisgICAgIyBjb21tYW5kIGlzIG5vdCBmb3VuZCwgdGhlIHNoZWxsIHdpbGwgc2V0IGFuIGV4aXQgY29kZSBvZiAxMjcgYW5kIHByaW50CisgICAgIyAqYW4gZXJyb3IgbWVzc2FnZSogdG8gc3Rkb3V0LiBTbyB3ZSBtdXN0IGNoZWNrIGZvciBib3RoIGVycm9yIGNvZGUgb2YKKyAgICAjIHplcm8gQU5EIG5vbi1lbXB0eSBzdGRvdXQsIHdoaWNoIGV4cGxhaW5zIHRoZSBvZGQgY29uc3RydWN0aW9uOgorICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfdG1wPWB3aW5lcGF0aCAtdyAiJDEiIDI+L2Rldi9udWxsYAorICAgIGlmIHRlc3QgIiQ/IiAtZXEgMCAmJiB0ZXN0IC1uICIke2Z1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfdG1wfSI7IHRoZW4KKyAgICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0PWAkRUNITyAiJGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfdG1wIiB8CisgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKKyAgICBlbHNlCisgICAgICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyX3Jlc3VsdD0KKyAgICBmaQorICBmaQorfQorIyBlbmQ6IGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzIKKworCisjIGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzIgQVJHCisjIEhlbHBlciBmdW5jdGlvbiB1c2VkIGJ5IHBhdGggY29udmVyc2lvbiBmdW5jdGlvbnMgd2hlbiAkYnVpbGQgaXMgKm5peCwgYW5kCisjICRob3N0IGlzIG1pbmd3LCBjeWd3aW4sIG9yIHNvbWUgb3RoZXIgdzMyIGVudmlyb25tZW50LiBSZWxpZXMgb24gYSBjb3JyZWN0bHkKKyMgY29uZmlndXJlZCB3aW5lIGVudmlyb25tZW50IGF2YWlsYWJsZSwgd2l0aCB0aGUgd2luZXBhdGggcHJvZ3JhbSBpbiAkYnVpbGQncworIyAkUEFUSC4gQXNzdW1lcyBBUkcgaGFzIG5vIGxlYWRpbmcgb3IgdHJhaWxpbmcgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVycy4KKyMKKyMgQVJHIGlzIHBhdGggdG8gYmUgY29udmVydGVkIGZyb20gJGJ1aWxkIGZvcm1hdCB0byB3aW4zMi4KKyMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiAkZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQuCisjIFVuY29udmVydGlibGUgZmlsZSAoZGlyZWN0b3J5KSBuYW1lcyBpbiBBUkcgYXJlIHNraXBwZWQ7IGlmIG5vIGRpcmVjdG9yeSBuYW1lcworIyBhcmUgY29udmVydGlibGUsIHRoZW4gdGhlIHJlc3VsdCBtYXkgYmUgZW1wdHkuCitmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyICgpCit7CisgICRvcHRfZGVidWcKKyAgIyB1bmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2Vzbid0IGNvbnZlcnQgcGF0aHMsIG9ubHkgZmlsZSBuYW1lcworICBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX3Jlc3VsdD0iIgorICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KKyAgICBvbGRJRlM9JElGUworICAgIElGUz06CisgICAgZm9yIGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfZiBpbiAkMTsgZG8KKyAgICAgIElGUz0kb2xkSUZTCisgICAgICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyICIkZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9mIgorICAgICAgaWYgdGVzdCAtbiAiJGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0IiA7IHRoZW4KKyAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0IjsgdGhlbgorICAgICAgICAgIGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0PSIkZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl9yZXN1bHQiCisgICAgICAgIGVsc2UKKyAgICAgICAgICBmdW5jX2FwcGVuZCBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX3Jlc3VsdCAiOyRmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyX3Jlc3VsdCIKKyAgICAgICAgZmkKKyAgICAgIGZpCisgICAgZG9uZQorICAgIElGUz0kb2xkSUZTCisgIGZpCit9CisjIGVuZDogZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMgorCisKKyMgZnVuY19jeWdwYXRoIEFSR1MuLi4KKyMgV3JhcHBlciBhcm91bmQgY2FsbGluZyB0aGUgY3lncGF0aCBwcm9ncmFtIHZpYSBMVF9DWUdQQVRILiBUaGlzIGlzIHVzZWQgd2hlbgorIyB3aGVuICgxKSAkYnVpbGQgaXMgKm5peCBhbmQgQ3lnd2luIGlzIGhvc3RlZCB2aWEgYSB3aW5lIGVudmlyb25tZW50OyBvciAoMikKKyMgJGJ1aWxkIGlzIE1TWVMgYW5kICRob3N0IGlzIEN5Z3dpbiwgb3IgKDMpICRidWlsZCBpcyBDeWd3aW4uIEluIGNhc2UgKDEpIG9yCisjICgyKSwgcmV0dXJucyB0aGUgQ3lnd2luIGZpbGUgbmFtZSBvciBwYXRoIGluIGZ1bmNfY3lncGF0aF9yZXN1bHQgKGlucHV0CisjIGZpbGUgbmFtZSBvciBwYXRoIGlzIGFzc3VtZWQgdG8gYmUgaW4gdzMyIGZvcm1hdCwgYXMgcHJldmlvdXNseSBjb252ZXJ0ZWQKKyMgZnJvbSAkYnVpbGQncyAqbml4IG9yIE1TWVMgZm9ybWF0KS4gSW4gY2FzZSAoMyksIHJldHVybnMgdGhlIHczMiBmaWxlIG5hbWUKKyMgb3IgcGF0aCBpbiBmdW5jX2N5Z3BhdGhfcmVzdWx0IChpbnB1dCBmaWxlIG5hbWUgb3IgcGF0aCBpcyBhc3N1bWVkIHRvIGJlIGluCisjIEN5Z3dpbiBmb3JtYXQpLiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBvbiBlcnJvci4KKyMKKyMgQVJHUyBhcmUgcGFzc2VkIHRvIGN5Z3BhdGgsIHdpdGggdGhlIGxhc3Qgb25lIGJlaW5nIHRoZSBmaWxlIG5hbWUgb3IgcGF0aCB0bworIyBiZSBjb252ZXJ0ZWQuCisjCisjIFNwZWNpZnkgdGhlIGFic29sdXRlICpuaXggKG9yIHczMikgbmFtZSB0byBjeWdwYXRoIGluIHRoZSBMVF9DWUdQQVRICisjIGVudmlyb25tZW50IHZhcmlhYmxlOyBkbyBub3QgcHV0IGl0IGluICRQQVRILgorZnVuY19jeWdwYXRoICgpCit7CisgICRvcHRfZGVidWcKKyAgaWYgdGVzdCAtbiAiJExUX0NZR1BBVEgiICYmIHRlc3QgLWYgIiRMVF9DWUdQQVRIIjsgdGhlbgorICAgIGZ1bmNfY3lncGF0aF9yZXN1bHQ9YCRMVF9DWUdQQVRIICIkQCIgMj4vZGV2L251bGxgCisgICAgaWYgdGVzdCAiJD8iIC1uZSAwOyB0aGVuCisgICAgICAjIG9uIGZhaWx1cmUsIGVuc3VyZSByZXN1bHQgaXMgZW1wdHkKKyAgICAgIGZ1bmNfY3lncGF0aF9yZXN1bHQ9CisgICAgZmkKKyAgZWxzZQorICAgIGZ1bmNfY3lncGF0aF9yZXN1bHQ9CisgICAgZnVuY19lcnJvciAiTFRfQ1lHUEFUSCBpcyBlbXB0eSBvciBzcGVjaWZpZXMgbm9uLWV4aXN0ZW50IGZpbGU6IFxgJExUX0NZR1BBVEgnIgorICBmaQorfQorI2VuZDogZnVuY19jeWdwYXRoCisKKworIyBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMiBBUkcKKyMgQ29udmVydCBmaWxlIG5hbWUgb3IgcGF0aCBBUkcgZnJvbSBNU1lTIGZvcm1hdCB0byB3MzIgZm9ybWF0LiAgUmV0dXJuCisjIHJlc3VsdCBpbiBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQuCitmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMiAoKQoreworICAkb3B0X2RlYnVnCisgICMgYXdrd2FyZDogY21kIGFwcGVuZHMgc3BhY2VzIHRvIHJlc3VsdAorICBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQ9YCggY21kIC8vYyBlY2hvICIkMSIgKSAyPi9kZXYvbnVsbCB8CisgICAgJFNFRCAtZSAncy9bIF0qJC8vJyAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAorfQorI2VuZDogZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzIKKworCisjIGZ1bmNfY29udmVydF9maWxlX2NoZWNrIEFSRzEgQVJHMgorIyBWZXJpZnkgdGhhdCBBUkcxIChhIGZpbGUgbmFtZSBpbiAkYnVpbGQgZm9ybWF0KSB3YXMgY29udmVydGVkIHRvICRob3N0CisjIGZvcm1hdCBpbiBBUkcyLiBPdGhlcndpc2UsIGVtaXQgYW4gZXJyb3IgbWVzc2FnZSwgYnV0IGNvbnRpbnVlIChyZXNldHRpbmcKKyMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0IHRvIEFSRzEpLgorZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBpZiB0ZXN0IC16ICIkMiIgJiYgdGVzdCAtbiAiJDEiIDsgdGhlbgorICAgIGZ1bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgaG9zdCBmaWxlIG5hbWUgY29ycmVzcG9uZGluZyB0byIKKyAgICBmdW5jX2Vycm9yICIgIFxgJDEnIgorICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyBtYXkgbm90IHdvcmsuIgorICAgICMgRmFsbGJhY2s6CisgICAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKKyAgZmkKK30KKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX2NoZWNrCisKKworIyBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayBGUk9NX1BBVEhTRVAgVE9fUEFUSFNFUCBGUk9NX1BBVEggVE9fUEFUSAorIyBWZXJpZnkgdGhhdCBGUk9NX1BBVEggKGEgcGF0aCBpbiAkYnVpbGQgZm9ybWF0KSB3YXMgY29udmVydGVkIHRvICRob3N0CisjIGZvcm1hdCBpbiBUT19QQVRILiBPdGhlcndpc2UsIGVtaXQgYW4gZXJyb3IgbWVzc2FnZSwgYnV0IGNvbnRpbnVlLCByZXNldHRpbmcKKyMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0IHRvIGEgc2ltcGxpc3RpYyBmYWxsYmFjayB2YWx1ZSAoc2VlIGJlbG93KS4KK2Z1bmNfY29udmVydF9wYXRoX2NoZWNrICgpCit7CisgICRvcHRfZGVidWcKKyAgaWYgdGVzdCAteiAiJDQiICYmIHRlc3QgLW4gIiQzIjsgdGhlbgorICAgIGZ1bmNfZXJyb3IgIkNvdWxkIG5vdCBkZXRlcm1pbmUgdGhlIGhvc3QgcGF0aCBjb3JyZXNwb25kaW5nIHRvIgorICAgIGZ1bmNfZXJyb3IgIiAgXGAkMyciCisgICAgZnVuY19lcnJvciAiQ29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIG1heSBub3Qgd29yay4iCisgICAgIyBGYWxsYmFjay4gIFRoaXMgaXMgYSBkZWxpYmVyYXRlbHkgc2ltcGxpc3RpYyAiY29udmVyc2lvbiIgYW5kCisgICAgIyBzaG91bGQgbm90IGJlICJpbXByb3ZlZCIuICBTZWUgbGlidG9vbC5pbmZvLgorICAgIGlmIHRlc3QgIngkMSIgIT0gIngkMiI7IHRoZW4KKyAgICAgIGx0X3JlcGxhY2VfcGF0aHNlcF9jaGFycz0ic3wkMXwkMnxnIgorICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkMyIgfAorICAgICAgICAkU0VEIC1lICIkbHRfcmVwbGFjZV9wYXRoc2VwX2NoYXJzImAKKyAgICBlbHNlCisgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQzIgorICAgIGZpCisgIGZpCit9CisjIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjaworCisKKyMgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwIEZST05UUEFUIEJBQ0tQQVQgUkVQTCBPUklHCisjIE1vZGlmaWVzIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCBieSBwcmVwZW5kaW5nIFJFUEwgaWYgT1JJRyBtYXRjaGVzIEZST05UUEFUCisjIGFuZCBhcHBlbmRpbmcgUkVQTCBpZiBPUklHIG1hdGNoZXMgQkFDS1BBVC4KK2Z1bmNfY29udmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcCAoKQoreworICAkb3B0X2RlYnVnCisgIGNhc2UgJDQgaW4KKyAgJDEgKSBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQzJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKKyAgICA7OworICBlc2FjCisgIGNhc2UgJDQgaW4KKyAgJDIgKSBmdW5jX2FwcGVuZCBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQgIiQzIgorICAgIDs7CisgIGVzYWMKK30KKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcAorCisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICRidWlsZCB0byAkaG9zdCBGSUxFIE5BTUUgQ09OVkVSU0lPTiBGVU5DVElPTlMgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgaW52b2tlZCB2aWEgYCR0b19ob3N0X2ZpbGVfY21kIEFSRycKKyMKKyMgSW4gZWFjaCBjYXNlLCBBUkcgaXMgdGhlIHBhdGggdG8gYmUgY29udmVydGVkIGZyb20gJGJ1aWxkIHRvICRob3N0IGZvcm1hdC4KKyMgUmVzdWx0IHdpbGwgYmUgYXZhaWxhYmxlIGluICRmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCisKKworIyBmdW5jX3RvX2hvc3RfZmlsZSBBUkcKKyMgQ29udmVydHMgdGhlIGZpbGUgbmFtZSBBUkcgZnJvbSAkYnVpbGQgZm9ybWF0IHRvICRob3N0IGZvcm1hdC4gUmV0dXJuIHJlc3VsdAorIyBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCitmdW5jX3RvX2hvc3RfZmlsZSAoKQoreworICAkb3B0X2RlYnVnCisgICR0b19ob3N0X2ZpbGVfY21kICIkMSIKK30KKyMgZW5kIGZ1bmNfdG9faG9zdF9maWxlCisKKworIyBmdW5jX3RvX3Rvb2xfZmlsZSBBUkcgTEFaWQorIyBjb252ZXJ0cyB0aGUgZmlsZSBuYW1lIEFSRyBmcm9tICRidWlsZCBmb3JtYXQgdG8gdG9vbGNoYWluIGZvcm1hdC4gUmV0dXJuCisjIHJlc3VsdCBpbiBmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQuICBJZiB0aGUgY29udmVyc2lvbiBpbiB1c2UgaXMgbGlzdGVkCisjIGluICh0aGUgY29tbWEgc2VwYXJhdGVkKSBMQVpZLCBubyBjb252ZXJzaW9uIHRha2VzIHBsYWNlLgorZnVuY190b190b29sX2ZpbGUgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBjYXNlICwkMiwgaW4KKyAgICAqLCIkdG9fdG9vbF9maWxlX2NtZCIsKikKKyAgICAgIGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdD0kMQorICAgICAgOzsKKyAgICAqKQorICAgICAgJHRvX3Rvb2xfZmlsZV9jbWQgIiQxIgorICAgICAgZnVuY190b190b29sX2ZpbGVfcmVzdWx0PSRmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQKKyAgICAgIDs7CisgIGVzYWMKK30KKyMgZW5kIGZ1bmNfdG9fdG9vbF9maWxlCisKKworIyBmdW5jX2NvbnZlcnRfZmlsZV9ub29wIEFSRworIyBDb3B5IEFSRyB0byBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCitmdW5jX2NvbnZlcnRfZmlsZV9ub29wICgpCit7CisgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCit9CisjIGVuZCBmdW5jX2NvbnZlcnRfZmlsZV9ub29wCisKKworIyBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMiBBUkcKKyMgQ29udmVydCBmaWxlIG5hbWUgQVJHIGZyb20gKG1pbmd3KSBNU1lTIHRvIChtaW5ndykgdzMyIGZvcm1hdDsgYXV0b21hdGljCisjIGNvbnZlcnNpb24gdG8gdzMyIGlzIG5vdCBhdmFpbGFibGUgaW5zaWRlIHRoZSBjd3JhcHBlci4gIFJldHVybnMgcmVzdWx0IGluCisjIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KK2Z1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzIgIiQxIgorICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jlc3VsdCIKKyAgZmkKKyAgZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgIiQxIiAiJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdCIKK30KKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCisKKworIyBmdW5jX2NvbnZlcnRfZmlsZV9jeWd3aW5fdG9fdzMyIEFSRworIyBDb252ZXJ0IGZpbGUgbmFtZSBBUkcgZnJvbSBDeWd3aW4gdG8gdzMyIGZvcm1hdC4gIFJldHVybnMgcmVzdWx0IGluCisjIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KK2Z1bmNfY29udmVydF9maWxlX2N5Z3dpbl90b193MzIgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9IiQxIgorICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KKyAgICAjIGJlY2F1c2UgJGJ1aWxkIGlzIGN5Z3dpbiwgd2UgY2FsbCAidGhlIiBjeWdwYXRoIGluICRQQVRIOyBubyBuZWVkIHRvIHVzZQorICAgICMgTFRfQ1lHUEFUSCBpbiB0aGlzIGNhc2UuCisgICAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PWBjeWdwYXRoIC1tICIkMSJgCisgIGZpCisgIGZ1bmNfY29udmVydF9maWxlX2NoZWNrICIkMSIgIiRmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQiCit9CisjIGVuZCBmdW5jX2NvbnZlcnRfZmlsZV9jeWd3aW5fdG9fdzMyCisKKworIyBmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fdzMyIEFSRworIyBDb252ZXJ0IGZpbGUgbmFtZSBBUkcgZnJvbSAqbml4IHRvIHczMiBmb3JtYXQuICBSZXF1aXJlcyBhIHdpbmUgZW52aXJvbm1lbnQKKyMgYW5kIGEgd29ya2luZyB3aW5lcGF0aC4gUmV0dXJucyByZXN1bHQgaW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgorZnVuY19jb252ZXJ0X2ZpbGVfbml4X3RvX3czMiAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCisgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgorICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzIgIiQxIgorICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0IgorICBmaQorICBmdW5jX2NvbnZlcnRfZmlsZV9jaGVjayAiJDEiICIkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0IgorfQorIyBlbmQgZnVuY19jb252ZXJ0X2ZpbGVfbml4X3RvX3czMgorCisKKyMgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b19jeWd3aW4gQVJHCisjIENvbnZlcnQgZmlsZSBuYW1lIEFSRyBmcm9tIE1TWVMgdG8gQ3lnd2luIGZvcm1hdC4gIFJlcXVpcmVzIExUX0NZR1BBVEggc2V0LgorIyBSZXR1cm5zIHJlc3VsdCBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCitmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX2N5Z3dpbiAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCisgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgorICAgIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICIkMSIKKyAgICBmdW5jX2N5Z3BhdGggLXUgIiRmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQiCisgICAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkZnVuY19jeWdwYXRoX3Jlc3VsdCIKKyAgZmkKKyAgZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgIiQxIiAiJGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdCIKK30KKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fY3lnd2luCisKKworIyBmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fY3lnd2luIEFSRworIyBDb252ZXJ0IGZpbGUgbmFtZSBBUkcgZnJvbSAqbml4IHRvIEN5Z3dpbiBmb3JtYXQuICBSZXF1aXJlcyBDeWd3aW4gaW5zdGFsbGVkCisjIGluIGEgd2luZSBlbnZpcm9ubWVudCwgd29ya2luZyB3aW5lcGF0aCwgYW5kIExUX0NZR1BBVEggc2V0LiAgUmV0dXJucyByZXN1bHQKKyMgaW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgorZnVuY19jb252ZXJ0X2ZpbGVfbml4X3RvX2N5Z3dpbiAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJDEiCisgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgorICAgICMgY29udmVydCBmcm9tICpuaXggdG8gdzMyLCB0aGVuIHVzZSBjeWdwYXRoIHRvIGNvbnZlcnQgZnJvbSB3MzIgdG8gY3lnd2luLgorICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzIgIiQxIgorICAgIGZ1bmNfY3lncGF0aCAtdSAiJGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0IgorICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNfY3lncGF0aF9yZXN1bHQiCisgIGZpCisgIGZ1bmNfY29udmVydF9maWxlX2NoZWNrICIkMSIgIiRmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQiCit9CisjIGVuZCBmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fY3lnd2luCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjICRidWlsZCB0byAkaG9zdCBQQVRIIENPTlZFUlNJT04gRlVOQ1RJT05TICMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBpbnZva2VkIHZpYSBgJHRvX2hvc3RfcGF0aF9jbWQgQVJHJworIworIyBJbiBlYWNoIGNhc2UsIEFSRyBpcyB0aGUgcGF0aCB0byBiZSBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgdG8gJGhvc3QgZm9ybWF0LgorIyBUaGUgcmVzdWx0IHdpbGwgYmUgYXZhaWxhYmxlIGluICRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQuCisjCisjIFBhdGggc2VwYXJhdG9ycyBhcmUgYWxzbyBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgZm9ybWF0IHRvICRob3N0IGZvcm1hdC4gIElmCisjIEFSRyBiZWdpbnMgb3IgZW5kcyB3aXRoIGEgcGF0aCBzZXBhcmF0b3IgY2hhcmFjdGVyLCBpdCBpcyBwcmVzZXJ2ZWQgKGJ1dAorIyBjb252ZXJ0ZWQgdG8gJGhvc3QgZm9ybWF0KSBvbiBvdXRwdXQuCisjCisjIEFsbCBwYXRoIGNvbnZlcnNpb24gZnVuY3Rpb25zIGFyZSBuYW1lZCB1c2luZyB0aGUgZm9sbG93aW5nIGNvbnZlbnRpb246CisjICAgZmlsZSBuYW1lIGNvbnZlcnNpb24gZnVuY3Rpb24gICAgOiBmdW5jX2NvbnZlcnRfZmlsZV9YX3RvX1kgKCkKKyMgICBwYXRoIGNvbnZlcnNpb24gZnVuY3Rpb24gICAgICAgICA6IGZ1bmNfY29udmVydF9wYXRoX1hfdG9fWSAoKQorIyB3aGVyZSwgZm9yIGFueSBnaXZlbiAkYnVpbGQvJGhvc3QgY29tYmluYXRpb24gdGhlICdYX3RvX1knIHZhbHVlIGlzIHRoZQorIyBzYW1lLiAgSWYgY29udmVyc2lvbiBmdW5jdGlvbnMgYXJlIGFkZGVkIGZvciBuZXcgJGJ1aWxkLyRob3N0IGNvbWJpbmF0aW9ucywKKyMgdGhlIHR3byBuZXcgZnVuY3Rpb25zIG11c3QgZm9sbG93IHRoaXMgcGF0dGVybiwgb3IgZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQKKyMgd2lsbCBicmVhay4KKworCisjIGZ1bmNfaW5pdF90b19ob3N0X3BhdGhfY21kCisjIEVuc3VyZXMgdGhhdCBmdW5jdGlvbiAicG9pbnRlciIgdmFyaWFibGUgJHRvX2hvc3RfcGF0aF9jbWQgaXMgc2V0IHRvIHRoZQorIyBhcHByb3ByaWF0ZSB2YWx1ZSwgYmFzZWQgb24gdGhlIHZhbHVlIG9mICR0b19ob3N0X2ZpbGVfY21kLgordG9faG9zdF9wYXRoX2NtZD0KK2Z1bmNfaW5pdF90b19ob3N0X3BhdGhfY21kICgpCit7CisgICRvcHRfZGVidWcKKyAgaWYgdGVzdCAteiAiJHRvX2hvc3RfcGF0aF9jbWQiOyB0aGVuCisgICAgZnVuY19zdHJpcG5hbWUgJ2Z1bmNfY29udmVydF9maWxlXycgJycgIiR0b19ob3N0X2ZpbGVfY21kIgorICAgIHRvX2hvc3RfcGF0aF9jbWQ9ImZ1bmNfY29udmVydF9wYXRoXyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fSIKKyAgZmkKK30KKworCisjIGZ1bmNfdG9faG9zdF9wYXRoIEFSRworIyBDb252ZXJ0cyB0aGUgcGF0aCBBUkcgZnJvbSAkYnVpbGQgZm9ybWF0IHRvICRob3N0IGZvcm1hdC4gUmV0dXJuIHJlc3VsdAorIyBpbiBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQuCitmdW5jX3RvX2hvc3RfcGF0aCAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfaW5pdF90b19ob3N0X3BhdGhfY21kCisgICR0b19ob3N0X3BhdGhfY21kICIkMSIKK30KKyMgZW5kIGZ1bmNfdG9faG9zdF9wYXRoCisKKworIyBmdW5jX2NvbnZlcnRfcGF0aF9ub29wIEFSRworIyBDb3B5IEFSRyB0byBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQuCitmdW5jX2NvbnZlcnRfcGF0aF9ub29wICgpCit7CisgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCit9CisjIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9ub29wCisKKworIyBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMiBBUkcKKyMgQ29udmVydCBwYXRoIEFSRyBmcm9tIChtaW5ndykgTVNZUyB0byAobWluZ3cpIHczMiBmb3JtYXQ7IGF1dG9tYXRpYworIyBjb252ZXJzaW9uIHRvIHczMiBpcyBub3QgYXZhaWxhYmxlIGluc2lkZSB0aGUgY3dyYXBwZXIuICBSZXR1cm5zIHJlc3VsdCBpbgorIyBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQuCitmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMiAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgorICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbSBBUkcuICBNU1lTCisgICAgIyBiZWhhdmlvciBpcyBpbmNvbnNpc3RlbnQgaGVyZTsgY3lncGF0aCB0dXJucyB0aGVtIGludG8gJy47JyBhbmQgJzsuJzsKKyAgICAjIGFuZCB3aW5lcGF0aCBpZ25vcmVzIHRoZW0gY29tcGxldGVseS4KKyAgICBmdW5jX3N0cmlwbmFtZSA6IDogIiQxIgorICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorICAgIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIKKyAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiRmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQiCisgICAgZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sgOiAiOyIgXAorICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgIjoqIiAiKjoiICI7IiAiJDEiCisgIGZpCit9CisjIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9tc3lzX3RvX3czMgorCisKKyMgZnVuY19jb252ZXJ0X3BhdGhfY3lnd2luX3RvX3czMiBBUkcKKyMgQ29udmVydCBwYXRoIEFSRyBmcm9tIEN5Z3dpbiB0byB3MzIgZm9ybWF0LiAgUmV0dXJucyByZXN1bHQgaW4KKyMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgorZnVuY19jb252ZXJ0X3BhdGhfY3lnd2luX3RvX3czMiAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgorICAgICMgU2VlIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fdzMyOgorICAgIGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCisgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBjeWdwYXRoIC1tIC1wICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSJgCisgICAgZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sgOiAiOyIgXAorICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgIjoqIiAiKjoiICI7IiAiJDEiCisgIGZpCit9CisjIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9jeWd3aW5fdG9fdzMyCisKKworIyBmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fdzMyIEFSRworIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gKm5peCB0byB3MzIgZm9ybWF0LiAgUmVxdWlyZXMgYSB3aW5lIGVudmlyb25tZW50IGFuZAorIyBhIHdvcmtpbmcgd2luZXBhdGguICBSZXR1cm5zIHJlc3VsdCBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCitmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fdzMyICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgIyBTZWUgZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b193MzI6CisgICAgZnVuY19zdHJpcG5hbWUgOiA6ICIkMSIKKyAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKyAgICBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIKKyAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiRmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX3Jlc3VsdCIKKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayA6ICI7IiBcCisgICAgICAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgorICAgIGZ1bmNfY29udmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcCAiOioiICIqOiIgIjsiICIkMSIKKyAgZmkKK30KKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX25peF90b193MzIKKworCisjIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fY3lnd2luIEFSRworIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gTVNZUyB0byBDeWd3aW4gZm9ybWF0LiAgUmVxdWlyZXMgTFRfQ1lHUEFUSCBzZXQuCisjIFJldHVybnMgcmVzdWx0IGluIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KK2Z1bmNfY29udmVydF9wYXRoX21zeXNfdG9fY3lnd2luICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkMSIKKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCisgICAgIyBTZWUgZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b193MzI6CisgICAgZnVuY19zdHJpcG5hbWUgOiA6ICIkMSIKKyAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKyAgICBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMiAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiCisgICAgZnVuY19jeWdwYXRoIC11IC1wICIkZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzJfcmVzdWx0IgorICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJGZ1bmNfY3lncGF0aF9yZXN1bHQiCisgICAgZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sgOiA6IFwKKyAgICAgICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiCisgICAgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwICI6KiIgIio6IiA6ICIkMSIKKyAgZmkKK30KKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fY3lnd2luCisKKworIyBmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2luIEFSRworIyBDb252ZXJ0IHBhdGggQVJHIGZyb20gKm5peCB0byBDeWd3aW4gZm9ybWF0LiAgUmVxdWlyZXMgQ3lnd2luIGluc3RhbGxlZCBpbiBhCisjIGEgd2luZSBlbnZpcm9ubWVudCwgd29ya2luZyB3aW5lcGF0aCwgYW5kIExUX0NZR1BBVEggc2V0LiAgUmV0dXJucyByZXN1bHQgaW4KKyMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgorZnVuY19jb252ZXJ0X3BhdGhfbml4X3RvX2N5Z3dpbiAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCisgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgorICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbQorICAgICMgQVJHLiBtc3lzIGJlaGF2aW9yIGlzIGluY29uc2lzdGVudCBoZXJlLCBjeWdwYXRoIHR1cm5zIHRoZW0KKyAgICAjIGludG8gJy47JyBhbmQgJzsuJywgYW5kIHdpbmVwYXRoIGlnbm9yZXMgdGhlbSBjb21wbGV0ZWx5LgorICAgIGZ1bmNfc3RyaXBuYW1lIDogOiAiJDEiCisgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0CisgICAgZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMiAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiCisgICAgZnVuY19jeWdwYXRoIC11IC1wICIkZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQiCisgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PSIkZnVuY19jeWdwYXRoX3Jlc3VsdCIKKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayA6IDogXAorICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgIjoqIiAiKjoiIDogIiQxIgorICBmaQorfQorIyBlbmQgZnVuY19jb252ZXJ0X3BhdGhfbml4X3RvX2N5Z3dpbgorCisKICMgZnVuY19tb2RlX2NvbXBpbGUgYXJnLi4uCiBmdW5jX21vZGVfY29tcGlsZSAoKQogewpAQCAtMTEzNywxMiArMTk4NiwxMiBAQAogCSAgOzsKIAogCS1waWUgfCAtZnBpZSB8IC1mUElFKQotICAgICAgICAgIHBpZV9mbGFnPSIkcGllX2ZsYWcgJGFyZyIKKyAgICAgICAgICBmdW5jX2FwcGVuZCBwaWVfZmxhZyAiICRhcmciCiAJICBjb250aW51ZQogCSAgOzsKIAogCS1zaGFyZWQgfCAtc3RhdGljIHwgLXByZWZlci1waWMgfCAtcHJlZmVyLW5vbi1waWMpCi0JICBsYXRlcj0iJGxhdGVyICRhcmciCisJICBmdW5jX2FwcGVuZCBsYXRlciAiICRhcmciCiAJICBjb250aW51ZQogCSAgOzsKIApAQCAtMTE2MywxNSArMjAxMiwxNCBAQAogCSAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCiAJICBmb3IgYXJnIGluICRhcmdzOyBkbwogCSAgICBJRlM9IiRzYXZlX2lmcyIKLQkgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLQkgICAgbGFzdGFyZz0iJGxhc3RhcmcgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCSAgICBmdW5jX2FwcGVuZF9xdW90ZWQgbGFzdGFyZyAiJGFyZyIKIAkgIGRvbmUKIAkgIElGUz0iJHNhdmVfaWZzIgogCSAgZnVuY19zdHJpcG5hbWUgJyAnICcnICIkbGFzdGFyZyIKIAkgIGxhc3Rhcmc9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAogCiAJICAjIEFkZCB0aGUgYXJndW1lbnRzIHRvIGJhc2VfY29tcGlsZS4KLQkgIGJhc2VfY29tcGlsZT0iJGJhc2VfY29tcGlsZSAkbGFzdGFyZyIKKwkgIGZ1bmNfYXBwZW5kIGJhc2VfY29tcGlsZSAiICRsYXN0YXJnIgogCSAgY29udGludWUKIAkgIDs7CiAKQEAgLTExODcsOCArMjAzNSw3IEBACiAgICAgICBlc2FjICAgICMgIGNhc2UgJGFyZ19tb2RlCiAKICAgICAgICMgQWVzdGhldGljYWxseSBxdW90ZSB0aGUgcHJldmlvdXMgYXJndW1lbnQuCi0gICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkbGFzdGFyZyIKLSAgICAgIGJhc2VfY29tcGlsZT0iJGJhc2VfY29tcGlsZSAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisgICAgICBmdW5jX2FwcGVuZF9xdW90ZWQgYmFzZV9jb21waWxlICIkbGFzdGFyZyIKICAgICBkb25lICMgZm9yIGFyZwogCiAgICAgY2FzZSAkYXJnX21vZGUgaW4KQEAgLTEyMTMsNyArMjA2MCw3IEBACiAgICAgKi5bY0NGU2lmbXNvXSB8IFwKICAgICAqLmFkYSB8ICouYWRiIHwgKi5hZHMgfCAqLmFzbSB8IFwKICAgICAqLmMrKyB8ICouY2MgfCAqLmlpIHwgKi5jbGFzcyB8ICouY3BwIHwgKi5jeHggfCBcCi0gICAgKi5bZkZdWzA5XT8gfCAqLmZvciB8ICouamF2YSB8ICoub2JqIHwgKi5zeCkKKyAgICAqLltmRl1bMDldPyB8ICouZm9yIHwgKi5qYXZhIHwgKi5nbyB8ICoub2JqIHwgKi5zeCB8ICouY3UgfCAqLmN1cCkKICAgICAgIGZ1bmNfeGZvcm0gIiRsaWJvYmoiCiAgICAgICBsaWJvYmo9JGZ1bmNfeGZvcm1fcmVzdWx0CiAgICAgICA7OwpAQCAtMTI4OCw3ICsyMTM1LDcgQEAKICAgICAjIENhbGN1bGF0ZSB0aGUgZmlsZW5hbWUgb2YgdGhlIG91dHB1dCBvYmplY3QgaWYgY29tcGlsZXIgZG9lcwogICAgICMgbm90IHN1cHBvcnQgLW8gd2l0aCAtYwogICAgIGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0gbm87IHRoZW4KLSAgICAgIG91dHB1dF9vYmo9YCRFQ0hPICJYJHNyY2ZpbGUiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJyAtZSAncyVcLlteLl0qJCUlJ2AuJHtvYmpleHR9CisgICAgICBvdXRwdXRfb2JqPWAkRUNITyAiJHNyY2ZpbGUiIHwgJFNFRCAncyVeLiovJSU7IHMlXC5bXi5dKiQlJSdgLiR7b2JqZXh0fQogICAgICAgbG9ja2ZpbGU9IiRvdXRwdXRfb2JqLmxvY2siCiAgICAgZWxzZQogICAgICAgb3V0cHV0X29iaj0KQEAgLTEzMTksMTcgKzIxNjYsMTYgQEAKIAkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0CiAJZXhpdCAkRVhJVF9GQUlMVVJFCiAgICAgICBmaQotICAgICAgcmVtb3ZlbGlzdD0iJHJlbW92ZWxpc3QgJG91dHB1dF9vYmoiCisgICAgICBmdW5jX2FwcGVuZCByZW1vdmVsaXN0ICIgJG91dHB1dF9vYmoiCiAgICAgICAkRUNITyAiJHNyY2ZpbGUiID4gIiRsb2NrZmlsZSIKICAgICBmaQogCiAgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAotICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRsb2NrZmlsZSIKKyAgICBmdW5jX2FwcGVuZCByZW1vdmVsaXN0ICIgJGxvY2tmaWxlIgogICAgIHRyYXAgJyRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScgMSAyIDE1CiAKLSAgICBpZiB0ZXN0IC1uICIkZml4X3NyY2ZpbGVfcGF0aCI7IHRoZW4KLSAgICAgIGV2YWwgc3JjZmlsZT1cIiRmaXhfc3JjZmlsZV9wYXRoXCIKLSAgICBmaQorICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkc3JjZmlsZSIgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKyAgICBzcmNmaWxlPSRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQKICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkc3JjZmlsZSIKICAgICBxc3JjZmlsZT0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQKIApAQCAtMTM0OSw3ICsyMTk1LDcgQEAKIAogICAgICAgaWYgdGVzdCAteiAiJG91dHB1dF9vYmoiOyB0aGVuCiAJIyBQbGFjZSBQSUMgb2JqZWN0cyBpbiAkb2JqZGlyCi0JY29tbWFuZD0iJGNvbW1hbmQgLW8gJGxvYmoiCisJZnVuY19hcHBlbmQgY29tbWFuZCAiIC1vICRsb2JqIgogICAgICAgZmkKIAogICAgICAgZnVuY19zaG93X2V2YWxfbG9jYWxlICIkY29tbWFuZCIJXApAQCAtMTM5NiwxMSArMjI0MiwxMSBAQAogCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlICRwaWNfZmxhZyIKICAgICAgIGZpCiAgICAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IHllczsgdGhlbgotCWNvbW1hbmQ9IiRjb21tYW5kIC1vICRvYmoiCisJZnVuY19hcHBlbmQgY29tbWFuZCAiIC1vICRvYmoiCiAgICAgICBmaQogCiAgICAgICAjIFN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBpZiB3ZSBhbHJlYWR5IGRpZCBhIFBJQyBjb21waWxhdGlvbi4KLSAgICAgIGNvbW1hbmQ9IiRjb21tYW5kJHN1cHByZXNzX291dHB1dCIKKyAgICAgIGZ1bmNfYXBwZW5kIGNvbW1hbmQgIiRzdXBwcmVzc19vdXRwdXQiCiAgICAgICBmdW5jX3Nob3dfZXZhbF9sb2NhbGUgIiRjb21tYW5kIiBcCiAgICAgICAgICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxVUkUnCiAKQEAgLTE0NDUsMTMgKzIyOTEsMTMgQEAKIH0KIAogJG9wdF9oZWxwIHx8IHsKLXRlc3QgIiRtb2RlIiA9IGNvbXBpbGUgJiYgZnVuY19tb2RlX2NvbXBpbGUgJHsxKyIkQCJ9CisgIHRlc3QgIiRvcHRfbW9kZSIgPSBjb21waWxlICYmIGZ1bmNfbW9kZV9jb21waWxlICR7MSsiJEAifQogfQogCiBmdW5jX21vZGVfaGVscCAoKQogewogICAgICMgV2UgbmVlZCB0byBkaXNwbGF5IGhlbHAgZm9yIGVhY2ggb2YgdGhlIG1vZGVzLgotICAgIGNhc2UgJG1vZGUgaW4KKyAgICBjYXNlICRvcHRfbW9kZSBpbgogICAgICAgIiIpCiAgICAgICAgICMgR2VuZXJpYyBoZWxwIGlzIGV4dHJhY3RlZCBmcm9tIHRoZSB1c2FnZSBjb21tZW50cwogICAgICAgICAjIGF0IHRoZSBzdGFydCBvZiB0aGlzIGZpbGUuCkBAIC0xNDgyLDEwICsyMzI4LDExIEBACiAKICAgLW8gT1VUUFVULUZJTEUgICAgc2V0IHRoZSBvdXRwdXQgZmlsZSBuYW1lIHRvIE9VVFBVVC1GSUxFCiAgIC1uby1zdXBwcmVzcyAgICAgIGRvIG5vdCBzdXBwcmVzcyBjb21waWxlciBvdXRwdXQgZm9yIG11bHRpcGxlIHBhc3NlcwotICAtcHJlZmVyLXBpYyAgICAgICB0cnkgdG8gYnVpbGRpbmcgUElDIG9iamVjdHMgb25seQotICAtcHJlZmVyLW5vbi1waWMgICB0cnkgdG8gYnVpbGRpbmcgbm9uLVBJQyBvYmplY3RzIG9ubHkKKyAgLXByZWZlci1waWMgICAgICAgdHJ5IHRvIGJ1aWxkIFBJQyBvYmplY3RzIG9ubHkKKyAgLXByZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkIG5vbi1QSUMgb2JqZWN0cyBvbmx5CiAgIC1zaGFyZWQgICAgICAgICAgIGRvIG5vdCBidWlsZCBhIFxgLm8nIGZpbGUgc3VpdGFibGUgZm9yIHN0YXRpYyBsaW5raW5nCiAgIC1zdGF0aWMgICAgICAgICAgIG9ubHkgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0aWMgbGlua2luZworICAtV2MsRkxBRyAgICAgICAgICBwYXNzIEZMQUcgZGlyZWN0bHkgdG8gdGhlIGNvbXBpbGVyCiAKIENPTVBJTEUtQ09NTUFORCBpcyBhIGNvbW1hbmQgdG8gYmUgdXNlZCBpbiBjcmVhdGluZyBhIFxgc3RhbmRhcmQnIG9iamVjdCBmaWxlCiBmcm9tIHRoZSBnaXZlbiBTT1VSQ0VGSUxFLgpAQCAtMTUzOCw3ICsyMzg1LDcgQEAKIAogVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIElOU1RBTEwtQ09NTUFORCBhcmUgdHJlYXRlZCBzcGVjaWFsbHk6CiAKLSAgLWluc3QtcHJlZml4IFBSRUZJWC1ESVIgIFVzZSBQUkVGSVgtRElSIGFzIGEgc3RhZ2luZyBhcmVhIGZvciBpbnN0YWxsYXRpb24KKyAgLWluc3QtcHJlZml4LWRpciBQUkVGSVgtRElSICBVc2UgUFJFRklYLURJUiBhcyBhIHN0YWdpbmcgYXJlYSBmb3IgaW5zdGFsbGF0aW9uCiAKIFRoZSByZXN0IG9mIHRoZSBjb21wb25lbnRzIGFyZSBpbnRlcnByZXRlZCBhcyBhcmd1bWVudHMgdG8gdGhhdCBjb21tYW5kIChvbmx5CiBCU0QtY29tcGF0aWJsZSBpbnN0YWxsIG9wdGlvbnMgYXJlIHJlY29nbml6ZWQpLiIKQEAgLTE1NTgsNiArMjQwNSw4IEBACiAKICAgLWFsbC1zdGF0aWMgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtpbmcgYXQgYWxsCiAgIC1hdm9pZC12ZXJzaW9uICAgIGRvIG5vdCBhZGQgYSB2ZXJzaW9uIHN1ZmZpeCBpZiBwb3NzaWJsZQorICAtYmluZGlyIEJJTkRJUiAgICBzcGVjaWZ5IHBhdGggdG8gYmluYXJpZXMgZGlyZWN0b3J5IChmb3Igc3lzdGVtcyB3aGVyZQorICAgICAgICAgICAgICAgICAgICBsaWJyYXJpZXMgbXVzdCBiZSBmb3VuZCBpbiB0aGUgUEFUSCBzZXR0aW5nIGF0IHJ1bnRpbWUpCiAgIC1kbG9wZW4gRklMRSAgICAgIFxgLWRscHJlb3BlbicgRklMRSBpZiBpdCBjYW5ub3QgYmUgZGxvcGVuZWQgYXQgcnVudGltZQogICAtZGxwcmVvcGVuIEZJTEUgICBsaW5rIGluIEZJTEUgYW5kIGFkZCBpdHMgc3ltYm9scyB0byBsdF9wcmVsb2FkZWRfc3ltYm9scwogICAtZXhwb3J0LWR5bmFtaWMgICBhbGxvdyBzeW1ib2xzIGZyb20gT1VUUFVULUZJTEUgdG8gYmUgcmVzb2x2ZWQgd2l0aCBkbHN5bSgzKQpAQCAtMTU4Niw2ICsyNDM1LDExIEBACiAgIC12ZXJzaW9uLWluZm8gQ1VSUkVOVFs6UkVWSVNJT05bOkFHRV1dCiAgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgbGlicmFyeSB2ZXJzaW9uIGluZm8gW2VhY2ggdmFyaWFibGUgZGVmYXVsdHMgdG8gMF0KICAgLXdlYWsgTElCTkFNRSAgICAgZGVjbGFyZSB0aGF0IHRoZSB0YXJnZXQgcHJvdmlkZXMgdGhlIExJQk5BTUUgaW50ZXJmYWNlCisgIC1XYyxGTEFHCisgIC1YY29tcGlsZXIgRkxBRyAgIHBhc3MgbGlua2VyLXNwZWNpZmljIEZMQUcgZGlyZWN0bHkgdG8gdGhlIGNvbXBpbGVyCisgIC1XbCxGTEFHCisgIC1YbGlua2VyIEZMQUcgICAgIHBhc3MgbGlua2VyLXNwZWNpZmljIEZMQUcgZGlyZWN0bHkgdG8gdGhlIGxpbmtlcgorICAtWENDbGlua2VyIEZMQUcgICBwYXNzIGxpbmstc3BlY2lmaWMgRkxBRyB0byB0aGUgY29tcGlsZXIgZHJpdmVyIChDQykKIAogQWxsIG90aGVyIG9wdGlvbnMgKGFyZ3VtZW50cyBiZWdpbm5pbmcgd2l0aCBcYC0nKSBhcmUgaWdub3JlZC4KIApAQCAtMTYxOSwxOCArMjQ3Myw0NCBAQAogICAgICAgICA7OwogCiAgICAgICAqKQotICAgICAgICBmdW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciCisgICAgICAgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRvcHRfbW9kZSciCiAgICAgICAgIDs7CiAgICAgZXNhYwogCi0gICAgJEVDSE8KKyAgICBlY2hvCiAgICAgJEVDSE8gIlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIG1vZGVzLiIKLQotICAgIGV4aXQgJD8KIH0KIAotICAjIE5vdyB0aGF0IHdlJ3ZlIGNvbGxlY3RlZCBhIHBvc3NpYmxlIC0tbW9kZSBhcmcsIHNob3cgaGVscCBpZiBuZWNlc3NhcnkKLSAgJG9wdF9oZWxwICYmIGZ1bmNfbW9kZV9oZWxwCisjIE5vdyB0aGF0IHdlJ3ZlIGNvbGxlY3RlZCBhIHBvc3NpYmxlIC0tbW9kZSBhcmcsIHNob3cgaGVscCBpZiBuZWNlc3NhcnkKK2lmICRvcHRfaGVscDsgdGhlbgorICBpZiB0ZXN0ICIkb3B0X2hlbHAiID0gOjsgdGhlbgorICAgIGZ1bmNfbW9kZV9oZWxwCisgIGVsc2UKKyAgICB7CisgICAgICBmdW5jX2hlbHAgbm9leGl0CisgICAgICBmb3Igb3B0X21vZGUgaW4gY29tcGlsZSBsaW5rIGV4ZWN1dGUgaW5zdGFsbCBmaW5pc2ggdW5pbnN0YWxsIGNsZWFuOyBkbworCWZ1bmNfbW9kZV9oZWxwCisgICAgICBkb25lCisgICAgfSB8IHNlZCAtbiAnMXA7IDIsJHMvXlVzYWdlOi8gIG9yOiAvcCcKKyAgICB7CisgICAgICBmdW5jX2hlbHAgbm9leGl0CisgICAgICBmb3Igb3B0X21vZGUgaW4gY29tcGlsZSBsaW5rIGV4ZWN1dGUgaW5zdGFsbCBmaW5pc2ggdW5pbnN0YWxsIGNsZWFuOyBkbworCWVjaG8KKwlmdW5jX21vZGVfaGVscAorICAgICAgZG9uZQorICAgIH0gfAorICAgIHNlZCAnMWQKKyAgICAgIC9eV2hlbiByZXBvcnRpbmcvLC9eUmVwb3J0L3sKKwlICisJZAorICAgICAgfQorICAgICAgJHgKKyAgICAgIC9pbmZvcm1hdGlvbiBhYm91dCBvdGhlciBtb2Rlcy9kCisgICAgICAvbW9yZSBkZXRhaWxlZCAuKk1PREUvZAorICAgICAgcy9eVXNhZ2U6LiotLW1vZGU9XChbXiBdKlwpIC4qL0Rlc2NyaXB0aW9uIG9mIFwxIG1vZGU6LycKKyAgZmkKKyAgZXhpdCAkPworZmkKIAogCiAjIGZ1bmNfbW9kZV9leGVjdXRlIGFyZy4uLgpAQCAtMTY0MywxMyArMjUyMywxNiBAQAogICAgICAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEgQ09NTUFORCIKIAogICAgICMgSGFuZGxlIC1kbG9wZW4gZmxhZ3MgaW1tZWRpYXRlbHkuCi0gICAgZm9yIGZpbGUgaW4gJGV4ZWN1dGVfZGxmaWxlczsgZG8KKyAgICBmb3IgZmlsZSBpbiAkb3B0X2Rsb3BlbjsgZG8KICAgICAgIHRlc3QgLWYgIiRmaWxlIiBcCiAJfHwgZnVuY19mYXRhbF9oZWxwICJcYCRmaWxlJyBpcyBub3QgYSBmaWxlIgogCiAgICAgICBkaXI9CiAgICAgICBjYXNlICRmaWxlIGluCiAgICAgICAqLmxhKQorCWZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZmlsZSIKKwlmaWxlPSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKKwogCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBsaWJ0b29sIGFyY2hpdmUuCiAJZnVuY19sYWxpYl91bnNhZmVfcCAiJGZpbGUiIFwKIAkgIHx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCkBAIC0xNjcxLDcgKzI1NTQsNyBAQAogCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCiAKIAlpZiB0ZXN0IC1mICIkZGlyLyRvYmpkaXIvJGRsbmFtZSI7IHRoZW4KLQkgIGRpcj0iJGRpci8kb2JqZGlyIgorCSAgZnVuY19hcHBlbmQgZGlyICIvJG9iamRpciIKIAllbHNlCiAJICBpZiB0ZXN0ICEgLWYgIiRkaXIvJGRsbmFtZSI7IHRoZW4KIAkgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgXGAkZGxuYW1lJyBpbiBcYCRkaXInIG9yIFxgJGRpci8kb2JqZGlyJyIKQEAgLTE3MTIsNyArMjU5NSw3IEBACiAgICAgZm9yIGZpbGUKICAgICBkbwogICAgICAgY2FzZSAkZmlsZSBpbgotICAgICAgLSopIDs7CisgICAgICAtKiB8ICoubGEgfCAqLmxvICkgOzsKICAgICAgICopCiAJIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgcmVhbGx5IGEgbGlidG9vbCBwcm9ncmFtLgogCWlmIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkZmlsZSI7IHRoZW4KQEAgLTE3MjgsOCArMjYxMSw3IEBACiAJOzsKICAgICAgIGVzYWMKICAgICAgICMgUXVvdGUgYXJndW1lbnRzICh0byBwcmVzZXJ2ZSBzaGVsbCBtZXRhY2hhcmFjdGVycykuCi0gICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkZmlsZSIKLSAgICAgIGFyZ3M9IiRhcmdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKyAgICAgIGZ1bmNfYXBwZW5kX3F1b3RlZCBhcmdzICIkZmlsZSIKICAgICBkb25lCiAKICAgICBpZiB0ZXN0ICJYJG9wdF9kcnlfcnVuIiA9IFhmYWxzZTsgdGhlbgpAQCAtMTc1NCwyOSArMjYzNiw2NiBAQAogICAgICAgIyBEaXNwbGF5IHdoYXQgd291bGQgYmUgZG9uZS4KICAgICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgogCWV2YWwgIlwkRUNITyBcIlwkc2hsaWJwYXRoX3Zhcj1cJCRzaGxpYnBhdGhfdmFyXCIiCi0JJEVDSE8gImV4cG9ydCAkc2hsaWJwYXRoX3ZhciIKKwllY2hvICJleHBvcnQgJHNobGlicGF0aF92YXIiCiAgICAgICBmaQogICAgICAgJEVDSE8gIiRjbWQkYXJncyIKICAgICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwogICAgIGZpCiB9CiAKLXRlc3QgIiRtb2RlIiA9IGV4ZWN1dGUgJiYgZnVuY19tb2RlX2V4ZWN1dGUgJHsxKyIkQCJ9Cit0ZXN0ICIkb3B0X21vZGUiID0gZXhlY3V0ZSAmJiBmdW5jX21vZGVfZXhlY3V0ZSAkezErIiRAIn0KIAogCiAjIGZ1bmNfbW9kZV9maW5pc2ggYXJnLi4uCiBmdW5jX21vZGVfZmluaXNoICgpCiB7CiAgICAgJG9wdF9kZWJ1ZwotICAgIGxpYmRpcnM9IiRub25vcHQiCisgICAgbGlicz0KKyAgICBsaWJkaXJzPQogICAgIGFkbWluY21kcz0KIAotICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCi0gICAgICBmb3IgZGlyCi0gICAgICBkbwotCWxpYmRpcnM9IiRsaWJkaXJzICRkaXIiCi0gICAgICBkb25lCisgICAgZm9yIG9wdCBpbiAiJG5vbm9wdCIgJHsxKyIkQCJ9CisgICAgZG8KKyAgICAgIGlmIHRlc3QgLWQgIiRvcHQiOyB0aGVuCisJZnVuY19hcHBlbmQgbGliZGlycyAiICRvcHQiCiAKKyAgICAgIGVsaWYgdGVzdCAtZiAiJG9wdCI7IHRoZW4KKwlpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIkb3B0IjsgdGhlbgorCSAgZnVuY19hcHBlbmQgbGlicyAiICRvcHQiCisJZWxzZQorCSAgZnVuY193YXJuaW5nICJcYCRvcHQnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKKwlmaQorCisgICAgICBlbHNlCisJZnVuY19mYXRhbF9lcnJvciAiaW52YWxpZCBhcmd1bWVudCBcYCRvcHQnIgorICAgICAgZmkKKyAgICBkb25lCisKKyAgICBpZiB0ZXN0IC1uICIkbGlicyI7IHRoZW4KKyAgICAgIGlmIHRlc3QgLW4gIiRsdF9zeXNyb290IjsgdGhlbgorICAgICAgICBzeXNyb290X3JlZ2V4PWAkRUNITyAiJGx0X3N5c3Jvb3QiIHwgJFNFRCAiJHNlZF9tYWtlX2xpdGVyYWxfcmVnZXgiYAorICAgICAgICBzeXNyb290X2NtZD0icy9cKFsgJ11cKSRzeXNyb290X3JlZ2V4L1wxL2c7IgorICAgICAgZWxzZQorICAgICAgICBzeXNyb290X2NtZD0KKyAgICAgIGZpCisKKyAgICAgICMgUmVtb3ZlIHN5c3Jvb3QgcmVmZXJlbmNlcworICAgICAgaWYgJG9wdF9kcnlfcnVuOyB0aGVuCisgICAgICAgIGZvciBsaWIgaW4gJGxpYnM7IGRvCisgICAgICAgICAgZWNobyAicmVtb3ZpbmcgcmVmZXJlbmNlcyB0byAkbHRfc3lzcm9vdCBhbmQgXGA9JyBwcmVmaXhlcyBmcm9tICRsaWIiCisgICAgICAgIGRvbmUKKyAgICAgIGVsc2UKKyAgICAgICAgdG1wZGlyPWBmdW5jX21rdGVtcGRpcmAKKyAgICAgICAgZm9yIGxpYiBpbiAkbGliczsgZG8KKwkgIHNlZCAtZSAiJHtzeXNyb290X2NtZH0gcy9cKFsgJ10tW0xSXVwpPS9cMS9nOyBzL1woWyAnXVwpPS9cMS9nIiAkbGliIFwKKwkgICAgPiAkdG1wZGlyL3RtcC1sYQorCSAgbXYgLWYgJHRtcGRpci90bXAtbGEgJGxpYgorCWRvbmUKKyAgICAgICAgJHtSTX1yICIkdG1wZGlyIgorICAgICAgZmkKKyAgICBmaQorCisgICAgaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzJGZpbmlzaF9ldmFsIiAmJiB0ZXN0IC1uICIkbGliZGlycyI7IHRoZW4KICAgICAgIGZvciBsaWJkaXIgaW4gJGxpYmRpcnM7IGRvCiAJaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzIjsgdGhlbgogCSAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIGZpbmlzaCBjb21tYW5kcy4KQEAgLTE3ODYsNyArMjcwNSw3IEBACiAJaWYgdGVzdCAtbiAiJGZpbmlzaF9ldmFsIjsgdGhlbgogCSAgIyBEbyB0aGUgc2luZ2xlIGZpbmlzaF9ldmFsLgogCSAgZXZhbCBjbWRzPVwiJGZpbmlzaF9ldmFsXCIKLQkgICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kcyIgfHwgYWRtaW5jbWRzPSIkYWRtaW5jbWRzCisJICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZHMiIHx8IGZ1bmNfYXBwZW5kIGFkbWluY21kcyAiCiAgICAgICAgJGNtZHMiCiAJZmkKICAgICAgIGRvbmUKQEAgLTE3OTUsNTMgKzI3MTQsNTUgQEAKICAgICAjIEV4aXQgaGVyZSBpZiB0aGV5IHdhbnRlZCBzaWxlbnQgbW9kZS4KICAgICAkb3B0X3NpbGVudCAmJiBleGl0ICRFWElUX1NVQ0NFU1MKIAotICAgICRFQ0hPICJYLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIgfCAkWHNlZAotICAgICRFQ0hPICJMaWJyYXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCi0gICAgZm9yIGxpYmRpciBpbiAkbGliZGlyczsgZG8KLSAgICAgICRFQ0hPICIgICAkbGliZGlyIgotICAgIGRvbmUKLSAgICAkRUNITwotICAgICRFQ0hPICJJZiB5b3UgZXZlciBoYXBwZW4gdG8gd2FudCB0byBsaW5rIGFnYWluc3QgaW5zdGFsbGVkIGxpYnJhcmllcyIKLSAgICAkRUNITyAiaW4gYSBnaXZlbiBkaXJlY3RvcnksIExJQkRJUiwgeW91IG11c3QgZWl0aGVyIHVzZSBsaWJ0b29sLCBhbmQiCi0gICAgJEVDSE8gInNwZWNpZnkgdGhlIGZ1bGwgcGF0aG5hbWUgb2YgdGhlIGxpYnJhcnksIG9yIHVzZSB0aGUgXGAtTExJQkRJUiciCi0gICAgJEVDSE8gImZsYWcgZHVyaW5nIGxpbmtpbmcgYW5kIGRvIGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nOiIKLSAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSAgICAgICRFQ0hPICIgICAtIGFkZCBMSUJESVIgdG8gdGhlIFxgJHNobGlicGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgotICAgICAgJEVDSE8gIiAgICAgZHVyaW5nIGV4ZWN1dGlvbiIKLSAgICBmaQotICAgIGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSAgICAgICRFQ0hPICIgICAtIGFkZCBMSUJESVIgdG8gdGhlIFxgJHJ1bnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKLSAgICAgICRFQ0hPICIgICAgIGR1cmluZyBsaW5raW5nIgotICAgIGZpCi0gICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCi0gICAgICBsaWJkaXI9TElCRElSCi0gICAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCisgICAgaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzJGZpbmlzaF9ldmFsIiAmJiB0ZXN0IC1uICIkbGliZGlycyI7IHRoZW4KKyAgICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCisgICAgICBlY2hvICJMaWJyYXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCisgICAgICBmb3IgbGliZGlyIGluICRsaWJkaXJzOyBkbworCSRFQ0hPICIgICAkbGliZGlyIgorICAgICAgZG9uZQorICAgICAgZWNobworICAgICAgZWNobyAiSWYgeW91IGV2ZXIgaGFwcGVuIHRvIHdhbnQgdG8gbGluayBhZ2FpbnN0IGluc3RhbGxlZCBsaWJyYXJpZXMiCisgICAgICBlY2hvICJpbiBhIGdpdmVuIGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBlaXRoZXIgdXNlIGxpYnRvb2wsIGFuZCIKKyAgICAgIGVjaG8gInNwZWNpZnkgdGhlIGZ1bGwgcGF0aG5hbWUgb2YgdGhlIGxpYnJhcnksIG9yIHVzZSB0aGUgXGAtTExJQkRJUiciCisgICAgICBlY2hvICJmbGFnIGR1cmluZyBsaW5raW5nIGFuZCBkbyBhdCBsZWFzdCBvbmUgb2YgdGhlIGZvbGxvd2luZzoiCisgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KKwllY2hvICIgICAtIGFkZCBMSUJESVIgdG8gdGhlIFxgJHNobGlicGF0aF92YXInIGVudmlyb25tZW50IHZhcmlhYmxlIgorCWVjaG8gIiAgICAgZHVyaW5nIGV4ZWN1dGlvbiIKKyAgICAgIGZpCisgICAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCisJZWNobyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBcYCRydW5wYXRoX3ZhcicgZW52aXJvbm1lbnQgdmFyaWFibGUiCisJZWNobyAiICAgICBkdXJpbmcgbGlua2luZyIKKyAgICAgIGZpCisgICAgICBpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KKwlsaWJkaXI9TElCRElSCisJZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgogCi0gICAgICAkRUNITyAiICAgLSB1c2UgdGhlIFxgJGZsYWcnIGxpbmtlciBmbGFnIgotICAgIGZpCi0gICAgaWYgdGVzdCAtbiAiJGFkbWluY21kcyI7IHRoZW4KLSAgICAgICRFQ0hPICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBydW4gdGhlc2UgY29tbWFuZHM6JGFkbWluY21kcyIKLSAgICBmaQotICAgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0gICAgICAkRUNITyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgYWRkIExJQkRJUiB0byBcYC9ldGMvbGQuc28uY29uZiciCi0gICAgZmkKLSAgICAkRUNITworCSRFQ0hPICIgICAtIHVzZSB0aGUgXGAkZmxhZycgbGlua2VyIGZsYWciCisgICAgICBmaQorICAgICAgaWYgdGVzdCAtbiAiJGFkbWluY21kcyI7IHRoZW4KKwkkRUNITyAiICAgLSBoYXZlIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgcnVuIHRoZXNlIGNvbW1hbmRzOiRhZG1pbmNtZHMiCisgICAgICBmaQorICAgICAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KKwllY2hvICIgICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBhZGQgTElCRElSIHRvIFxgL2V0Yy9sZC5zby5jb25mJyIKKyAgICAgIGZpCisgICAgICBlY2hvCiAKLSAgICAkRUNITyAiU2VlIGFueSBvcGVyYXRpbmcgc3lzdGVtIGRvY3VtZW50YXRpb24gYWJvdXQgc2hhcmVkIGxpYnJhcmllcyBmb3IiCi0gICAgY2FzZSAkaG9zdCBpbgotICAgICAgc29sYXJpczIuWzY3ODldfHNvbGFyaXMyLjFbMC05XSkKLSAgICAgICAgJEVDSE8gIm1vcmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIGxkKDEpLCBjcmxlKDEpIGFuZCBsZC5zbyg4KSBtYW51YWwiCi0JJEVDSE8gInBhZ2VzLiIKLQk7OwotICAgICAgKikKLSAgICAgICAgJEVDSE8gIm1vcmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhlIGxkKDEpIGFuZCBsZC5zbyg4KSBtYW51YWwgcGFnZXMuIgotICAgICAgICA7OwotICAgIGVzYWMKLSAgICAkRUNITyAiWC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iIHwgJFhzZWQKKyAgICAgIGVjaG8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0aW9uIGFib3V0IHNoYXJlZCBsaWJyYXJpZXMgZm9yIgorICAgICAgY2FzZSAkaG9zdCBpbgorCXNvbGFyaXMyLls2Nzg5XXxzb2xhcmlzMi4xWzAtOV0pCisJICBlY2hvICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSBsZCgxKSwgY3JsZSgxKSBhbmQgbGQuc28oOCkgbWFudWFsIgorCSAgZWNobyAicGFnZXMuIgorCSAgOzsKKwkqKQorCSAgZWNobyAibW9yZSBpbmZvcm1hdGlvbiwgc3VjaCBhcyB0aGUgbGQoMSkgYW5kIGxkLnNvKDgpIG1hbnVhbCBwYWdlcy4iCisJICA7OworICAgICAgZXNhYworICAgICAgZWNobyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKKyAgICBmaQogICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwogfQogCi10ZXN0ICIkbW9kZSIgPSBmaW5pc2ggJiYgZnVuY19tb2RlX2ZpbmlzaCAkezErIiRAIn0KK3Rlc3QgIiRvcHRfbW9kZSIgPSBmaW5pc2ggJiYgZnVuY19tb2RlX2ZpbmlzaCAkezErIiRAIn0KIAogCiAjIGZ1bmNfbW9kZV9pbnN0YWxsIGFyZy4uLgpAQCAtMTg1Miw3ICsyNzczLDcgQEAKICAgICAjIGluc3RhbGxfcHJvZyAoZXNwZWNpYWxseSBvbiBXaW5kb3dzIE5UKS4KICAgICBpZiB0ZXN0ICIkbm9ub3B0IiA9ICIkU0hFTEwiIHx8IHRlc3QgIiRub25vcHQiID0gL2Jpbi9zaCB8fAogICAgICAgICMgQWxsb3cgdGhlIHVzZSBvZiBHTlUgc2h0b29sJ3MgaW5zdGFsbCBjb21tYW5kLgotICAgICAgICRFQ0hPICJYJG5vbm9wdCIgfCAkR1JFUCBzaHRvb2wgPi9kZXYvbnVsbDsgdGhlbgorICAgICAgIGNhc2UgJG5vbm9wdCBpbiAqc2h0b29sKikgOjs7ICopIGZhbHNlOzsgZXNhYzsgdGhlbgogICAgICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgogICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJG5vbm9wdCIKICAgICAgIGluc3RhbGxfcHJvZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0ICIKQEAgLTE4NjYsNyArMjc4NywxMiBAQAogICAgICMgVGhlIHJlYWwgZmlyc3QgYXJndW1lbnQgc2hvdWxkIGJlIHRoZSBuYW1lIG9mIHRoZSBpbnN0YWxsYXRpb24gcHJvZ3JhbS4KICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQuCiAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLSAgICBpbnN0YWxsX3Byb2c9IiRpbnN0YWxsX3Byb2ckZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisgICAgZnVuY19hcHBlbmQgaW5zdGFsbF9wcm9nICIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisgICAgaW5zdGFsbF9zaGFyZWRfcHJvZz0kaW5zdGFsbF9wcm9nCisgICAgY2FzZSAiICRpbnN0YWxsX3Byb2cgIiBpbgorICAgICAgKltcXFwgL11jcFwgKikgaW5zdGFsbF9jcD06IDs7CisgICAgICAqKSBpbnN0YWxsX2NwPWZhbHNlIDs7CisgICAgZXNhYwogCiAgICAgIyBXZSBuZWVkIHRvIGFjY2VwdCBhdCBsZWFzdCBhbGwgdGhlIEJTRCBpbnN0YWxsIGZsYWdzLgogICAgIGRlc3Q9CkBAIC0xODc2LDEwICsyODAyLDEyIEBACiAgICAgaW5zdGFsbF90eXBlPQogICAgIGlzZGlyPW5vCiAgICAgc3RyaXBtZT0KKyAgICBub19tb2RlPToKICAgICBmb3IgYXJnCiAgICAgZG8KKyAgICAgIGFyZzI9CiAgICAgICBpZiB0ZXN0IC1uICIkZGVzdCI7IHRoZW4KLQlmaWxlcz0iJGZpbGVzICRkZXN0IgorCWZ1bmNfYXBwZW5kIGZpbGVzICIgJGRlc3QiCiAJZGVzdD0kYXJnCiAJY29udGludWUKICAgICAgIGZpCkBAIC0xODg3LDEwICsyODE1LDkgQEAKICAgICAgIGNhc2UgJGFyZyBpbgogICAgICAgLWQpIGlzZGlyPXllcyA7OwogICAgICAgLWYpCi0JY2FzZSAiICRpbnN0YWxsX3Byb2cgIiBpbgotCSpbXFxcIC9dY3BcICopIDs7Ci0JKikgcHJldj0kYXJnIDs7Ci0JZXNhYworCWlmICRpbnN0YWxsX2NwOyB0aGVuIDo7IGVsc2UKKwkgIHByZXY9JGFyZworCWZpCiAJOzsKICAgICAgIC1nIHwgLW0gfCAtbykKIAlwcmV2PSRhcmcKQEAgLTE5MDQsNiArMjgzMSwxMCBAQAogICAgICAgKikKIAkjIElmIHRoZSBwcmV2aW91cyBvcHRpb24gbmVlZGVkIGFuIGFyZ3VtZW50LCB0aGVuIHNraXAgaXQuCiAJaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCisJICBpZiB0ZXN0ICJ4JHByZXYiID0geC1tICYmIHRlc3QgLW4gIiRpbnN0YWxsX292ZXJyaWRlX21vZGUiOyB0aGVuCisJICAgIGFyZzI9JGluc3RhbGxfb3ZlcnJpZGVfbW9kZQorCSAgICBub19tb2RlPWZhbHNlCisJICBmaQogCSAgcHJldj0KIAllbHNlCiAJICBkZXN0PSRhcmcKQEAgLTE5MTQsNyArMjg0NSwxMSBAQAogCiAgICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgdGhlIGFyZ3VtZW50LgogICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGFyZyIKLSAgICAgIGluc3RhbGxfcHJvZz0iJGluc3RhbGxfcHJvZyAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisgICAgICBmdW5jX2FwcGVuZCBpbnN0YWxsX3Byb2cgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisgICAgICBpZiB0ZXN0IC1uICIkYXJnMiI7IHRoZW4KKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnMiIKKyAgICAgIGZpCisgICAgICBmdW5jX2FwcGVuZCBpbnN0YWxsX3NoYXJlZF9wcm9nICIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgogICAgIGRvbmUKIAogICAgIHRlc3QgLXogIiRpbnN0YWxsX3Byb2ciICYmIFwKQEAgLTE5MjMsNiArMjg1OCwxMyBAQAogICAgIHRlc3QgLW4gIiRwcmV2IiAmJiBcCiAgICAgICBmdW5jX2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2JyBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1lbnQiCiAKKyAgICBpZiB0ZXN0IC1uICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIiAmJiAkbm9fbW9kZTsgdGhlbgorICAgICAgaWYgJGluc3RhbGxfY3A7IHRoZW4gOjsgZWxzZQorCWZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRpbnN0YWxsX292ZXJyaWRlX21vZGUiCisJZnVuY19hcHBlbmQgaW5zdGFsbF9zaGFyZWRfcHJvZyAiIC1tICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKyAgICAgIGZpCisgICAgZmkKKwogICAgIGlmIHRlc3QgLXogIiRmaWxlcyI7IHRoZW4KICAgICAgIGlmIHRlc3QgLXogIiRkZXN0IjsgdGhlbgogCWZ1bmNfZmF0YWxfaGVscCAibm8gZmlsZSBvciBkZXN0aW5hdGlvbiBzcGVjaWZpZWQiCkBAIC0xOTc3LDEwICsyOTE5LDEzIEBACiAgICAgICBjYXNlICRmaWxlIGluCiAgICAgICAqLiRsaWJleHQpCiAJIyBEbyB0aGUgc3RhdGljIGxpYnJhcmllcyBsYXRlci4KLQlzdGF0aWNsaWJzPSIkc3RhdGljbGlicyAkZmlsZSIKKwlmdW5jX2FwcGVuZCBzdGF0aWNsaWJzICIgJGZpbGUiCiAJOzsKIAogICAgICAgKi5sYSkKKwlmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZpbGUiCisJZmlsZT0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CisKIAkjIENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgogCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCiAJICB8fCBmdW5jX2ZhdGFsX2hlbHAgIlxgJGZpbGUnIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKQEAgLTE5OTQsMjMgKzI5MzksMjMgQEAKIAlpZiB0ZXN0ICJYJGRlc3RkaXIiID0gIlgkbGliZGlyIjsgdGhlbgogCSAgY2FzZSAiJGN1cnJlbnRfbGliZGlycyAiIGluCiAJICAqIiAkbGliZGlyICIqKSA7OwotCSAgKikgY3VycmVudF9saWJkaXJzPSIkY3VycmVudF9saWJkaXJzICRsaWJkaXIiIDs7CisJICAqKSBmdW5jX2FwcGVuZCBjdXJyZW50X2xpYmRpcnMgIiAkbGliZGlyIiA7OwogCSAgZXNhYwogCWVsc2UKIAkgICMgTm90ZSB0aGUgbGliZGlyIGFzIGEgZnV0dXJlIGxpYmRpci4KIAkgIGNhc2UgIiRmdXR1cmVfbGliZGlycyAiIGluCiAJICAqIiAkbGliZGlyICIqKSA7OwotCSAgKikgZnV0dXJlX2xpYmRpcnM9IiRmdXR1cmVfbGliZGlycyAkbGliZGlyIiA7OworCSAgKikgZnVuY19hcHBlbmQgZnV0dXJlX2xpYmRpcnMgIiAkbGliZGlyIiA7OwogCSAgZXNhYwogCWZpCiAKIAlmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiLyIgIiIKIAlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgotCWRpcj0iJGRpciRvYmpkaXIiCisJZnVuY19hcHBlbmQgZGlyICIkb2JqZGlyIgogCiAJaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgogCSAgIyBEZXRlcm1pbmUgdGhlIHByZWZpeCB0aGUgdXNlciBoYXMgYXBwbGllZCB0byBvdXIgZnV0dXJlIGRpci4KLQkgIGluc3RfcHJlZml4X2Rpcj1gJEVDSE8gIlgkZGVzdGRpciIgfCAkWHNlZCAtZSAicyUkbGliZGlyXCQlJSJgCisJICBpbnN0X3ByZWZpeF9kaXI9YCRFQ0hPICIkZGVzdGRpciIgfCAkU0VEIC1lICJzJSRsaWJkaXJcJCUlImAKIAogCSAgIyBEb24ndCBhbGxvdyB0aGUgdXNlciB0byBwbGFjZSB1cyBvdXRzaWRlIG9mIG91ciBleHBlY3RlZAogCSAgIyBsb2NhdGlvbiBiL2MgdGhpcyBwcmV2ZW50cyBmaW5kaW5nIGRlcGVuZGVudCBsaWJyYXJpZXMgdGhhdApAQCAtMjAyMyw5ICsyOTY4LDkgQEAKIAogCSAgaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KIAkgICAgIyBTdGljayB0aGUgaW5zdF9wcmVmaXhfZGlyIGRhdGEgaW50byB0aGUgbGluayBjb21tYW5kLgotCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQGluc3RfcHJlZml4X2RpckAlLWluc3QtcHJlZml4LWRpciAkaW5zdF9wcmVmaXhfZGlyJSJgCisJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiJHJlbGlua19jb21tYW5kIiB8ICRTRUQgInMlQGluc3RfcHJlZml4X2RpckAlLWluc3QtcHJlZml4LWRpciAkaW5zdF9wcmVmaXhfZGlyJSJgCiAJICBlbHNlCi0JICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAaW5zdF9wcmVmaXhfZGlyQCUlImAKKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAicyVAaW5zdF9wcmVmaXhfZGlyQCUlImAKIAkgIGZpCiAKIAkgIGZ1bmNfd2FybmluZyAicmVsaW5raW5nIFxgJGZpbGUnIgpAQCAtMjA0Myw3ICsyOTg4LDcgQEAKIAkgIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCIgJiYgc3JjbmFtZT0iJHJlYWxuYW1lIlQKIAogCSAgIyBJbnN0YWxsIHRoZSBzaGFyZWQgbGlicmFyeSBhbmQgYnVpbGQgdGhlIHN5bWxpbmtzLgotCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgJGRpci8kc3JjbmFtZSAkZGVzdGRpci8kcmVhbG5hbWUiIFwKKwkgIGZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9zaGFyZWRfcHJvZyAkZGlyLyRzcmNuYW1lICRkZXN0ZGlyLyRyZWFsbmFtZSIgXAogCSAgICAgICdleGl0ICQ/JwogCSAgdHN0cmlwbWU9IiRzdHJpcG1lIgogCSAgY2FzZSAkaG9zdF9vcyBpbgpAQCAtMjA4Myw3ICszMDI4LDcgQEAKIAlmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkaW5zdG5hbWUgJGRlc3RkaXIvJG5hbWUiICdleGl0ICQ/JwogCiAJIyBNYXliZSBpbnN0YWxsIHRoZSBzdGF0aWMgbGlicmFyeSwgdG9vLgotCXRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgc3RhdGljbGlicz0iJHN0YXRpY2xpYnMgJGRpci8kb2xkX2xpYnJhcnkiCisJdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBmdW5jX2FwcGVuZCBzdGF0aWNsaWJzICIgJGRpci8kb2xkX2xpYnJhcnkiCiAJOzsKIAogICAgICAgKi5sbykKQEAgLTIxODMsNyArMzEyOCw3IEBACiAJICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVuCiAJICAgICAgZnVuY19zb3VyY2UgIiRsaWIiCiAJICAgIGZpCi0JICAgIGxpYmZpbGU9IiRsaWJkaXIvImAkRUNITyAiWCRsaWIiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAorCSAgICBsaWJmaWxlPSIkbGliZGlyLyJgJEVDSE8gIiRsaWIiIHwgJFNFRCAncyVeLiovJSVnJ2AgIyMjIHRlc3RzdWl0ZTogc2tpcCBuZXN0ZWQgcXVvdGluZyB0ZXN0CiAJICAgIGlmIHRlc3QgLW4gIiRsaWJkaXIiICYmIHRlc3QgISAtZiAiJGxpYmZpbGUiOyB0aGVuCiAJICAgICAgZnVuY193YXJuaW5nICJcYCRsaWInIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQgaW4gXGAkbGliZGlyJyIKIAkgICAgICBmaW5hbGl6ZT1ubwpAQCAtMjIwMiw3ICszMTQ3LDcgQEAKIAkJZmlsZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgogCSAgICAgICAgb3V0cHV0bmFtZT0iJHRtcGRpci8kZmlsZSIKIAkgICAgICAgICMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KLQkgICAgICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiWCRyZWxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXRuYW1lIiclZydgCisJICAgICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIiRyZWxpbmtfY29tbWFuZCIgfCAkU0VEICdzJUBPVVRQVVRAJSciJG91dHB1dG5hbWUiJyVnJ2AKIAogCSAgICAgICAgJG9wdF9zaWxlbnQgfHwgewogCSAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRyZWxpbmtfY29tbWFuZCIKQEAgLTIyMjEsNyArMzE2Niw3IEBACiAJICAgIH0KIAkgIGVsc2UKIAkgICAgIyBJbnN0YWxsIHRoZSBiaW5hcnkgdGhhdCB3ZSBjb21waWxlZCBlYXJsaWVyLgotCSAgICBmaWxlPWAkRUNITyAiWCRmaWxlJHN0cmlwcGVkX2V4dCIgfCAkWHNlZCAtZSAicyVcKFteL10qXCkkJSRvYmpkaXIvXDElImAKKwkgICAgZmlsZT1gJEVDSE8gIiRmaWxlJHN0cmlwcGVkX2V4dCIgfCAkU0VEICJzJVwoW14vXSpcKSQlJG9iamRpci9cMSUiYAogCSAgZmkKIAlmaQogCkBAIC0yMjU3LDExICszMjAyLDEzIEBACiAKICAgICAgICMgU2V0IHVwIHRoZSByYW5saWIgcGFyYW1ldGVycy4KICAgICAgIG9sZGxpYj0iJGRlc3RkaXIvJG5hbWUiCisgICAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG9sZGxpYiIgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKyAgICAgIHRvb2xfb2xkbGliPSRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQKIAogICAgICAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3Byb2cgXCRmaWxlIFwkb2xkbGliIiAnZXhpdCAkPycKIAogICAgICAgaWYgdGVzdCAtbiAiJHN0cmlwbWUiICYmIHRlc3QgLW4gIiRvbGRfc3RyaXBsaWIiOyB0aGVuCi0JZnVuY19zaG93X2V2YWwgIiRvbGRfc3RyaXBsaWIgJG9sZGxpYiIgJ2V4aXQgJD8nCisJZnVuY19zaG93X2V2YWwgIiRvbGRfc3RyaXBsaWIgJHRvb2xfb2xkbGliIiAnZXhpdCAkPycKICAgICAgIGZpCiAKICAgICAgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4KQEAgLTIyODAsNyArMzIyNyw3IEBACiAgICAgZmkKIH0KIAotdGVzdCAiJG1vZGUiID0gaW5zdGFsbCAmJiBmdW5jX21vZGVfaW5zdGFsbCAkezErIiRAIn0KK3Rlc3QgIiRvcHRfbW9kZSIgPSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9pbnN0YWxsICR7MSsiJEAifQogCiAKICMgZnVuY19nZW5lcmF0ZV9kbHN5bXMgb3V0cHV0bmFtZSBvcmlnaW5hdG9yIHBpY19wCkBAIC0yMzIzLDYgKzMyNzAsMjIgQEAKIGV4dGVybiBcIkNcIiB7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoX19HTlVDX18pICYmICgoKF9fR05VQ19fID09IDQpICYmIChfX0dOVUNfTUlOT1JfXyA+PSA0KSkgfHwgKF9fR05VQ19fID4gNCkpCisjcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgXCItV3N0cmljdC1wcm90b3R5cGVzXCIKKyNlbmRpZgorCisvKiBLZWVwIHRoaXMgY29kZSBpbiBzeW5jIGJldHdlZW4gbGlidG9vbC5tNCwgbHRtYWluLCBsdF9zeXN0ZW0uaCwgYW5kIHRlc3RzLiAgKi8KKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9fKSB8fCBkZWZpbmVkKF9XSU4zMl9XQ0UpCisvKiBEQVRBIGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMyIGNvbid0IGJlIGNvbnN0LCBiZWNhdXNlIHJ1bnRpbWUKKyAgIHJlbG9jYXRpb25zIGFyZSBwZXJmb3JtZWQgLS0gc2VlIGxkJ3MgZG9jdW1lbnRhdGlvbiBvbiBwc2V1ZG8tcmVsb2NzLiAgKi8KKyMgZGVmaW5lIExUX0RMU1lNX0NPTlNUCisjZWxpZiBkZWZpbmVkKF9fb3NmX18pCisvKiBUaGlzIHN5c3RlbSBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCByZWxvY2F0aW9ucyBpbiBjb25zdCBkYXRhLiAgKi8KKyMgZGVmaW5lIExUX0RMU1lNX0NPTlNUCisjZWxzZQorIyBkZWZpbmUgTFRfRExTWU1fQ09OU1QgY29uc3QKKyNlbmRpZgorCiAvKiBFeHRlcm5hbCBzeW1ib2wgZGVjbGFyYXRpb25zIGZvciB0aGUgY29tcGlsZXIuICovXAogIgogCkBAIC0yMzMyLDEwICszMjk1LDExIEBACiAJICAkb3B0X2RyeV9ydW4gfHwgZWNobyAnOiBAUFJPR1JBTUAgJyA+ICIkbmxpc3QiCiAKIAkgICMgQWRkIG91ciBvd24gcHJvZ3JhbSBvYmplY3RzIHRvIHRoZSBzeW1ib2wgbGlzdC4KLQkgIHByb2dmaWxlcz1gJEVDSE8gIlgkb2JqcyRvbGRfZGVwbGlicyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAorCSAgcHJvZ2ZpbGVzPWAkRUNITyAiJG9ianMkb2xkX2RlcGxpYnMiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQYAogCSAgZm9yIHByb2dmaWxlIGluICRwcm9nZmlsZXM7IGRvCi0JICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkcHJvZ2ZpbGUnIgotCSAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJE5NICRwcm9nZmlsZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCisJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkcHJvZ2ZpbGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCisJICAgIGZ1bmNfdmVyYm9zZSAiZXh0cmFjdGluZyBnbG9iYWwgQyBzeW1ib2xzIGZyb20gXGAkZnVuY190b190b29sX2ZpbGVfcmVzdWx0JyIKKwkgICAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgIiROTSAkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKIAkgIGRvbmUKIAogCSAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KQEAgLTIzNzEsNyArMzMzNSw3IEBACiAJICAgICAgZXZhbCAnJEdSRVAgLWYgIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCIgPCAiJG5saXN0IiA+ICIkbmxpc3QiVCcKIAkgICAgICBldmFsICckTVYgIiRubGlzdCJUICIkbmxpc3QiJwogCSAgICAgIGNhc2UgJGhvc3QgaW4KLQkgICAgICAgICpjeWd3aW4gfCAqbWluZ3cqIHwgKmNlZ2NjKiApCisJICAgICAgICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKIAkgICAgICAgICAgZXZhbCAiZWNobyBFWFBPUlRTICInPiAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZGVmIicKIAkgICAgICAgICAgZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwogCSAgICAgICAgICA7OwpAQCAtMjM4NCwxMCArMzM0OCw1MiBAQAogCSAgZnVuY192ZXJib3NlICJleHRyYWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRkbHByZWZpbGUnIgogCSAgZnVuY19iYXNlbmFtZSAiJGRscHJlZmlsZSIKIAkgIG5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLQkgICRvcHRfZHJ5X3J1biB8fCB7Ci0JICAgIGV2YWwgJyRFQ0hPICI6ICRuYW1lICIgPj4gIiRubGlzdCInCi0JICAgIGV2YWwgIiROTSAkZGxwcmVmaWxlIDI+L2Rldi9udWxsIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKLQkgIH0KKyAgICAgICAgICBjYXNlICRob3N0IGluCisJICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorCSAgICAgICMgaWYgYW4gaW1wb3J0IGxpYnJhcnksIHdlIG5lZWQgdG8gb2J0YWluIGRsbmFtZQorCSAgICAgIGlmIGZ1bmNfd2luMzJfaW1wb3J0X2xpYl9wICIkZGxwcmVmaWxlIjsgdGhlbgorCSAgICAgICAgZnVuY190cl9zaCAiJGRscHJlZmlsZSIKKwkgICAgICAgIGV2YWwgImN1cnJfbGFmaWxlPVwkbGliZmlsZV8kZnVuY190cl9zaF9yZXN1bHQiCisJICAgICAgICBkbHByZWZpbGVfZGxiYXNlbmFtZT0iIgorCSAgICAgICAgaWYgdGVzdCAtbiAiJGN1cnJfbGFmaWxlIiAmJiBmdW5jX2xhbGliX3AgIiRjdXJyX2xhZmlsZSI7IHRoZW4KKwkgICAgICAgICAgIyBVc2Ugc3Vic2hlbGwsIHRvIGF2b2lkIGNsb2JiZXJpbmcgY3VycmVudCB2YXJpYWJsZSB2YWx1ZXMKKwkgICAgICAgICAgZGxwcmVmaWxlX2RsbmFtZT1gc291cmNlICIkY3Vycl9sYWZpbGUiICYmIGVjaG8gIiRkbG5hbWUiYAorCSAgICAgICAgICBpZiB0ZXN0IC1uICIkZGxwcmVmaWxlX2RsbmFtZSIgOyB0aGVuCisJICAgICAgICAgICAgZnVuY19iYXNlbmFtZSAiJGRscHJlZmlsZV9kbG5hbWUiCisJICAgICAgICAgICAgZGxwcmVmaWxlX2RsYmFzZW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKKwkgICAgICAgICAgZWxzZQorCSAgICAgICAgICAgICMgbm8gbGFmaWxlLiB1c2VyIGV4cGxpY2l0bHkgcmVxdWVzdGVkIC1kbHByZW9wZW4gPGltcG9ydCBsaWJyYXJ5Pi4KKwkgICAgICAgICAgICAkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQgIiRkbHByZWZpbGUiCisJICAgICAgICAgICAgZGxwcmVmaWxlX2RsYmFzZW5hbWU9JHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0CisJICAgICAgICAgIGZpCisJICAgICAgICBmaQorCSAgICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgICAgICAgaWYgdGVzdCAtbiAiJGRscHJlZmlsZV9kbGJhc2VuYW1lIiA7IHRoZW4KKwkgICAgICAgICAgICBldmFsICckRUNITyAiOiAkZGxwcmVmaWxlX2RsYmFzZW5hbWUiID4+ICIkbmxpc3QiJworCSAgICAgICAgICBlbHNlCisJICAgICAgICAgICAgZnVuY193YXJuaW5nICJDb3VsZCBub3QgY29tcHV0ZSBETEwgbmFtZSBmcm9tICRuYW1lIgorCSAgICAgICAgICAgIGV2YWwgJyRFQ0hPICI6ICRuYW1lICIgPj4gIiRubGlzdCInCisJICAgICAgICAgIGZpCisJICAgICAgICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkZGxwcmVmaWxlIiBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgorCSAgICAgICAgICBldmFsICIkTk0gXCIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0XCIgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwKKwkgICAgICAgICAgICAkU0VEIC1lICcvSSBfX2ltcC9kJyAtZSAncy9JIF9fbm1fL0QgLztzL19ubV9fLy8nID4+ICckbmxpc3QnIgorCSAgICAgICAgfQorCSAgICAgIGVsc2UgIyBub3QgYW4gaW1wb3J0IGxpYgorCSAgICAgICAgJG9wdF9kcnlfcnVuIHx8IHsKKwkgICAgICAgICAgZXZhbCAnJEVDSE8gIjogJG5hbWUgIiA+PiAiJG5saXN0IicKKwkgICAgICAgICAgZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCisJICAgICAgICAgIGV2YWwgIiROTSBcIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHRcIiAyPi9kZXYvbnVsbCB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgPj4gJyRubGlzdCciCisJICAgICAgICB9CisJICAgICAgZmkKKwkgICAgOzsKKwkgICAgKikKKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgeworCSAgICAgICAgZXZhbCAnJEVDSE8gIjogJG5hbWUgIiA+PiAiJG5saXN0IicKKwkgICAgICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkZGxwcmVmaWxlIiBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgorCSAgICAgICAgZXZhbCAiJE5NIFwiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiIDI+L2Rldi9udWxsIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSA+PiAnJG5saXN0JyIKKwkgICAgICB9CisJICAgIDs7CisgICAgICAgICAgZXNhYwogCWRvbmUKIAogCSRvcHRfZHJ5X3J1biB8fCB7CkBAIC0yNDE1LDM2ICszNDIxLDE5IEBACiAJICBpZiB0ZXN0IC1mICIkbmxpc3QiUzsgdGhlbgogCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jZGVjbCInIDwgIiRubGlzdCJTID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIicKIAkgIGVsc2UKLQkgICAgJEVDSE8gJy8qIE5PTkUgKi8nID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgorCSAgICBlY2hvICcvKiBOT05FICovJyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIKIAkgIGZpCiAKLQkgICRFQ0hPID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAorCSAgZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKIAogLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLwogdHlwZWRlZiBzdHJ1Y3QgewogICBjb25zdCBjaGFyICpuYW1lOwogICB2b2lkICphZGRyZXNzOwogfSBsdF9kbHN5bWxpc3Q7Ci0iCi0JICBjYXNlICRob3N0IGluCi0JICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqICkKLQkgICAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCi0vKiBEQVRBIGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMyIGNvbid0IGJlIGNvbnN0LCBiZWNhdXNlCi0gICBydW50aW1lIHJlbG9jYXRpb25zIGFyZSBwZXJmb3JtZWQgLS0gc2VlIGxkJ3MgZG9jdW1lbnRhdGlvbgotICAgb24gcHNldWRvLXJlbG9jcy4gICovIgotCSAgICBsdF9kbHN5bV9jb25zdD0gOzsKLQkgICpvc2Y1KikKLQkgICAgZWNobyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIlwKLS8qIFRoaXMgc3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJlbG9jYXRpb25zIGluIGNvbnN0IGRhdGEgKi8iCi0JICAgIGx0X2Rsc3ltX2NvbnN0PSA7OwotCSAgKikKLQkgICAgbHRfZGxzeW1fY29uc3Q9Y29uc3QgOzsKLQkgIGVzYWMKLQotCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCi1leHRlcm4gJGx0X2Rsc3ltX2NvbnN0IGx0X2Rsc3ltbGlzdAorZXh0ZXJuIExUX0RMU1lNX0NPTlNUIGx0X2Rsc3ltbGlzdAogbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tdOwotJGx0X2Rsc3ltX2NvbnN0IGx0X2Rsc3ltbGlzdAorTFRfRExTWU1fQ09OU1QgbHRfZGxzeW1saXN0CiBsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW10gPQoge1wKICAgeyBcIiRteV9vcmlnaW5hdG9yXCIsICh2b2lkICopIDAgfSwiCkBAIC0yNDU3LDcgKzM0NDYsNyBAQAogCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4IiA8ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIgogCSAgICA7OwogCSAgZXNhYwotCSAgJEVDSE8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCisJICBlY2hvID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIiAiXAogICB7MCwgKHZvaWQgKikgMH0KIH07CiAKQEAgLTI0ODQsNyArMzQ3Myw3IEBACiAJICAjIGxpbmtlZCBiZWZvcmUgYW55IG90aGVyIFBJQyBvYmplY3QuICBCdXQgd2UgbXVzdCBub3QgdXNlCiAJICAjIHBpY19mbGFnIHdoZW4gbGlua2luZyB3aXRoIC1zdGF0aWMuICBUaGUgcHJvYmxlbSBleGlzdHMgaW4KIAkgICMgRnJlZUJTRCAyLjIuNiBhbmQgaXMgZml4ZWQgaW4gRnJlZUJTRCAzLjEuCi0JICAqLSotZnJlZWJzZDIqfCotKi1mcmVlYnNkMy4wKnwqLSotZnJlZWJzZGVsZjMuMCopCisJICAqLSotZnJlZWJzZDIuKnwqLSotZnJlZWJzZDMuMCp8Ki0qLWZyZWVic2RlbGYzLjAqKQogCSAgICBwaWNfZmxhZ19mb3Jfc3ltdGFibGU9IiAkcGljX2ZsYWcgLURGUkVFQlNEX1dPUktBUk9VTkQiIDs7CiAJICAqLSotaHB1eCopCiAJICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIgIDs7CkBAIC0yNTAwLDcgKzM0ODksNyBAQAogCWZvciBhcmcgaW4gJExUQ0ZMQUdTOyBkbwogCSAgY2FzZSAkYXJnIGluCiAJICAtcGllIHwgLWZwaWUgfCAtZlBJRSkgOzsKLQkgICopIHN5bXRhYl9jZmxhZ3M9IiRzeW10YWJfY2ZsYWdzICRhcmciIDs7CisJICAqKSBmdW5jX2FwcGVuZCBzeW10YWJfY2ZsYWdzICIgJGFyZyIgOzsKIAkgIGVzYWMKIAlkb25lCiAKQEAgLTI1MTUsMTYgKzM1MDQsMTYgQEAKIAljYXNlICRob3N0IGluCiAJKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCiAJICBpZiB0ZXN0IC1mICIkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYiOyB0aGVuCi0JICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKLQkgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIlgkZmluYWxpemVfY29tbWFuZCIgfCAkWHNlZCAtZSAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmICRzeW1maWxlb2JqJSJgCisJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lNRklMRUAlJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmICRzeW1maWxlb2JqJSJgCisJICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVvYmolImAKIAkgIGVsc2UKLQkgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCi0JICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCisJICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lNRklMRUAlJHN5bWZpbGVvYmolImAKKwkgICAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIiRmaW5hbGl6ZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCiAJICBmaQogCSAgOzsKIAkqKQotCSAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiWCRjb21waWxlX2NvbW1hbmQiIHwgJFhzZWQgLWUgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCi0JICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorCSAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAorCSAgZmluYWxpemVfY29tbWFuZD1gJEVDSE8gIiRmaW5hbGl6ZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCiAJICA7OwogCWVzYWMKIAk7OwpAQCAtMjUzOCw4ICszNTI3LDggQEAKICAgICAgICMgcmVhbGx5IHdhcyByZXF1aXJlZC4KIAogICAgICAgIyBOdWxsaWZ5IHRoZSBzeW1ib2wgZmlsZS4KLSAgICAgIGNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAlJSJgCi0gICAgICBmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiWCRmaW5hbGl6ZV9jb21tYW5kIiB8ICRYc2VkIC1lICJzJSBAU1lNRklMRUAlJSJgCisgICAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTRUQgInMlIEBTWU1GSUxFQCUlImAKKyAgICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29tbWFuZCIgfCAkU0VEICJzJSBAU1lNRklMRUAlJSJgCiAgICAgZmkKIH0KIApAQCAtMjU0OSw2ICszNTM4LDcgQEAKICMgTmVlZCBhIGxvdCBvZiBnb28gdG8gaGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBvcnQgbGlicwogIyBIYXMgdG8gYmUgYSBzaGVsbCBmdW5jdGlvbiBpbiBvcmRlciB0byAnZWF0JyB0aGUgYXJndW1lbnQKICMgdGhhdCBpcyBzdXBwbGllZCB3aGVuICRmaWxlX21hZ2ljX2NvbW1hbmQgaXMgY2FsbGVkLgorIyBEZXNwaXRlIHRoZSBuYW1lLCBhbHNvIGRlYWwgd2l0aCA2NCBiaXQgYmluYXJpZXMuCiBmdW5jX3dpbjMyX2xpYmlkICgpCiB7CiAgICRvcHRfZGVidWcKQEAgLTI1NTksOSArMzU0OSwxMSBAQAogICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCIKICAgICA7OwogICAqYXJcIGFyY2hpdmUqKSAjIGNvdWxkIGJlIGFuIGltcG9ydCwgb3Igc3RhdGljCisgICAgIyBLZWVwIHRoZSBlZ3JlcCBwYXR0ZXJuIGluIHN5bmMgd2l0aCB0aGUgb25lIGluIF9MVF9DSEVDS19NQUdJQ19NRVRIT0QuCiAgICAgaWYgZXZhbCAkT0JKRFVNUCAtZiAkMSB8ICRTRUQgLWUgJzEwcScgMj4vZGV2L251bGwgfAotICAgICAgICRFR1JFUCAnZmlsZSBmb3JtYXQgcGUtaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JyA+L2Rldi9udWxsIDsgdGhlbgotICAgICAgd2luMzJfbm1yZXM9YGV2YWwgJE5NIC1mIHBvc2l4IC1BICQxIHwKKyAgICAgICAkRUdSRVAgJ2ZpbGUgZm9ybWF0IChwZWkqLWkzODYoLiphcmNoaXRlY3R1cmU6IGkzODYpP3xwZS1hcm0td2luY2V8cGUteDg2LTY0KScgPi9kZXYvbnVsbDsgdGhlbgorICAgICAgZnVuY190b190b29sX2ZpbGUgIiQxIiBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgorICAgICAgd2luMzJfbm1yZXM9YGV2YWwgJE5NIC1mIHBvc2l4IC1BIFwiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiIHwKIAkkU0VEIC1uIC1lICcKIAkgICAgMSwxMDB7CiAJCS8gSSAvewpAQCAtMjU5MCw2ICszNTgyLDEzMSBAQAogICAkRUNITyAiJHdpbjMyX2xpYmlkX3R5cGUiCiB9CiAKKyMgZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliIEFSRworIworIyBQbGF0Zm9ybS1zcGVjaWZpYyBmdW5jdGlvbiB0byBleHRyYWN0IHRoZQorIyBuYW1lIG9mIHRoZSBETEwgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKKyMgaW1wb3J0IGxpYnJhcnkgQVJHLgorIyBJbnZva2VkIGJ5IGV2YWwnaW5nIHRoZSBsaWJ0b29sIHZhcmlhYmxlCisjICAgICRzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZAorIyBSZXN1bHQgaXMgYXZhaWxhYmxlIGluIHRoZSB2YXJpYWJsZQorIyAgICAkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1bHQKK2Z1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYiAoKQoreworICAkb3B0X2RlYnVnCisgIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0PWAkRExMVE9PTCAtLWlkZW50aWZ5LXN0cmljdCAtLWlkZW50aWZ5ICIkMSJgCit9CisKKyMgZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrX2NvcmUgU0VDVElPTl9OQU1FIExJQk5BTUVzCisjCisjIFRoZSBpcyB0aGUgY29yZSBvZiBhIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIG9mIGEKKyMgcGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUgbmFtZSBvZiB0aGUKKyMgRExMIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkIGltcG9ydCBsaWJyYXJ5IExJQk5BTUUuCisjCisjIFNFQ1RJT05fTkFNRSBpcyBlaXRoZXIgLmlkYXRhJDYgb3IgLmlkYXRhJDcsIGRlcGVuZGluZworIyBvbiB0aGUgcGxhdGZvcm0gYW5kIGNvbXBpbGVyIHRoYXQgY3JlYXRlZCB0aGUgaW1wbGliLgorIworIyBFY2hvcyB0aGUgbmFtZSBvZiB0aGUgRExMIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyMgc3BlY2lmaWVkIGltcG9ydCBsaWJyYXJ5LgorZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliX2ZhbGxiYWNrX2NvcmUgKCkKK3sKKyAgJG9wdF9kZWJ1ZworICBtYXRjaF9saXRlcmFsPWAkRUNITyAiJDEiIHwgJFNFRCAiJHNlZF9tYWtlX2xpdGVyYWxfcmVnZXgiYAorICAkT0JKRFVNUCAtcyAtLXNlY3Rpb24gIiQxIiAiJDIiIDI+L2Rldi9udWxsIHwKKyAgICAkU0VEICcvXkNvbnRlbnRzIG9mIHNlY3Rpb24gJyIkbWF0Y2hfbGl0ZXJhbCInOi97CisgICAgICAjIFBsYWNlIG1hcmtlciBhdCBiZWdpbm5pbmcgb2YgYXJjaGl2ZSBtZW1iZXIgZGxsbmFtZSBzZWN0aW9uCisgICAgICBzLy4qLz09PT1NQVJLPT09PS8KKyAgICAgIHAKKyAgICAgIGQKKyAgICB9CisgICAgIyBUaGVzZSBsaW5lcyBjYW4gc29tZXRpbWVzIGJlIGxvbmdlciB0aGFuIDQzIGNoYXJhY3RlcnMsIGJ1dAorICAgICMgYXJlIGFsd2F5cyB1bmludGVyZXN0aW5nCisgICAgLzpbCSBdKmZpbGUgZm9ybWF0IHBlW2ldXHssMVx9LS9kCisgICAgL15JbiBhcmNoaXZlIFteOl0qOi9kCisgICAgIyBFbnN1cmUgbWFya2VyIGlzIHByaW50ZWQKKyAgICAvXj09PT1NQVJLPT09PS9wCisgICAgIyBSZW1vdmUgYWxsIGxpbmVzIHdpdGggbGVzcyB0aGFuIDQzIGNoYXJhY3RlcnMKKyAgICAvXi5cezQzXH0vIWQKKyAgICAjIEZyb20gcmVtYWluaW5nIGxpbmVzLCByZW1vdmUgZmlyc3QgNDMgY2hhcmFjdGVycworICAgIHMvXi5cezQzXH0vLycgfAorICAgICRTRUQgLW4gJworICAgICAgIyBKb2luIG1hcmtlciBhbmQgYWxsIGxpbmVzIHVudGlsIG5leHQgbWFya2VyIGludG8gYSBzaW5nbGUgbGluZQorICAgICAgL149PT09TUFSSz09PT0vIGIgcGFyYQorICAgICAgSAorICAgICAgJCBiIHBhcmEKKyAgICAgIGIKKyAgICAgIDpwYXJhCisgICAgICB4CisgICAgICBzL1xuLy9nCisgICAgICAjIFJlbW92ZSB0aGUgbWFya2VyCisgICAgICBzL149PT09TUFSSz09PT0vLworICAgICAgIyBSZW1vdmUgdHJhaWxpbmcgZG90cyBhbmQgd2hpdGVzcGFjZQorICAgICAgcy9bXC4gXHRdKiQvLworICAgICAgIyBQcmludAorICAgICAgLy4vcCcgfAorICAgICMgd2Ugbm93IGhhdmUgYSBsaXN0LCBvbmUgZW50cnkgcGVyIGxpbmUsIG9mIHRoZSBzdHJpbmdpZmllZAorICAgICMgY29udGVudHMgb2YgdGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gb2YgYWxsIG1lbWJlcnMgb2YgdGhlCisgICAgIyBhcmNoaXZlIHdoaWNoIHBvc3Nlc3MgdGhhdCBzZWN0aW9uLiBIZXVyaXN0aWM6IGVsaW1pbmF0ZQorICAgICMgYWxsIHRob3NlIHdoaWNoIGhhdmUgYSBmaXJzdCBvciBzZWNvbmQgY2hhcmFjdGVyIHRoYXQgaXMKKyAgICAjIGEgJy4nICh0aGF0IGlzLCBvYmpkdW1wJ3MgcmVwcmVzZW50YXRpb24gb2YgYW4gdW5wcmludGFibGUKKyAgICAjIGNoYXJhY3Rlci4pIFRoaXMgc2hvdWxkIHdvcmsgZm9yIGFsbCBhcmNoaXZlcyB3aXRoIGxlc3MgdGhhbgorICAgICMgMHgzMDJmIGV4cG9ydHMgLS0gYnV0IHdpbGwgZmFpbCBmb3IgRExMcyB3aG9zZSBuYW1lIGFjdHVhbGx5CisgICAgIyBiZWdpbnMgd2l0aCBhIGxpdGVyYWwgJy4nIG9yIGEgc2luZ2xlIGNoYXJhY3RlciBmb2xsb3dlZCBieQorICAgICMgYSAnLicuCisgICAgIworICAgICMgT2YgdGhvc2UgdGhhdCByZW1haW4sIHByaW50IHRoZSBmaXJzdCBvbmUuCisgICAgJFNFRCAtZSAnL15cLi9kOy9eLlwuL2Q7cScKK30KKworIyBmdW5jX2N5Z21pbmdfZ251X2ltcGxpYl9wIEFSRworIyBUaGlzIHByZWRpY2F0ZSByZXR1cm5zIHdpdGggemVybyBzdGF0dXMgKFRSVUUpIGlmCisjIEFSRyBpcyBhIEdOVS9iaW51dGlscy1zdHlsZSBpbXBvcnQgbGlicmFyeS4gUmV0dXJucworIyB3aXRoIG5vbnplcm8gc3RhdHVzIChGQUxTRSkgb3RoZXJ3aXNlLgorZnVuY19jeWdtaW5nX2dudV9pbXBsaWJfcCAoKQoreworICAkb3B0X2RlYnVnCisgIGZ1bmNfdG9fdG9vbF9maWxlICIkMSIgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKyAgZnVuY19jeWdtaW5nX2dudV9pbXBsaWJfdG1wPWAkTk0gIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQiIHwgZXZhbCAiJGdsb2JhbF9zeW1ib2xfcGlwZSIgfCAkRUdSRVAgJyAoX2hlYWRfW0EtWmEtejAtOV9dK19bYWRdbCp8W0EtWmEtejAtOV9dK19bYWRdbCpfaW5hbWUpJCdgCisgIHRlc3QgLW4gIiRmdW5jX2N5Z21pbmdfZ251X2ltcGxpYl90bXAiCit9CisKKyMgZnVuY19jeWdtaW5nX21zX2ltcGxpYl9wIEFSRworIyBUaGlzIHByZWRpY2F0ZSByZXR1cm5zIHdpdGggemVybyBzdGF0dXMgKFRSVUUpIGlmCisjIEFSRyBpcyBhbiBNUy1zdHlsZSBpbXBvcnQgbGlicmFyeS4gUmV0dXJucworIyB3aXRoIG5vbnplcm8gc3RhdHVzIChGQUxTRSkgb3RoZXJ3aXNlLgorZnVuY19jeWdtaW5nX21zX2ltcGxpYl9wICgpCit7CisgICRvcHRfZGVidWcKKyAgZnVuY190b190b29sX2ZpbGUgIiQxIiBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgorICBmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3RtcD1gJE5NICIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiB8IGV2YWwgIiRnbG9iYWxfc3ltYm9sX3BpcGUiIHwgJEdSRVAgJ19OVUxMX0lNUE9SVF9ERVNDUklQVE9SJ2AKKyAgdGVzdCAtbiAiJGZ1bmNfY3lnbWluZ19tc19pbXBsaWJfdG1wIgorfQorCisjIGZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFjayBBUkcKKyMgUGxhdGZvcm0tc3BlY2lmaWMgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUKKyMgbmFtZSBvZiB0aGUgRExMIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3BlY2lmaWVkCisjIGltcG9ydCBsaWJyYXJ5IEFSRy4KKyMKKyMgVGhpcyBmYWxsYmFjayBpbXBsZW1lbnRhdGlvbiBpcyBmb3IgdXNlIHdoZW4gJERMTFRPT0wKKyMgZG9lcyBub3Qgc3VwcG9ydCB0aGUgLS1pZGVudGlmeS1zdHJpY3Qgb3B0aW9uLgorIyBJbnZva2VkIGJ5IGV2YWwnaW5nIHRoZSBsaWJ0b29sIHZhcmlhYmxlCisjICAgICRzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZAorIyBSZXN1bHQgaXMgYXZhaWxhYmxlIGluIHRoZSB2YXJpYWJsZQorIyAgICAkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1bHQKK2Z1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFjayAoKQoreworICAkb3B0X2RlYnVnCisgIGlmIGZ1bmNfY3lnbWluZ19nbnVfaW1wbGliX3AgIiQxIiA7IHRoZW4KKyAgICAjIGJpbnV0aWxzIGltcG9ydCBsaWJyYXJ5CisgICAgc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1bHQ9YGZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFja19jb3JlICcuaWRhdGEkNycgIiQxImAKKyAgZWxpZiBmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3AgIiQxIiA7IHRoZW4KKyAgICAjIG1zLWdlbmVyYXRlZCBpbXBvcnQgbGlicmFyeQorICAgIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0PWBmdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2tfY29yZSAnLmlkYXRhJDYnICIkMSJgCisgIGVsc2UKKyAgICAjIHVua25vd24KKyAgICBzaGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3VsdD0iIgorICBmaQorfQogCiAKICMgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgZGlyIG9sZGxpYgpAQCAtMjU5OCw3ICszNzE1LDE4IEBACiAgICAgJG9wdF9kZWJ1ZwogICAgIGZfZXhfYW5fYXJfZGlyPSIkMSI7IHNoaWZ0CiAgICAgZl9leF9hbl9hcl9vbGRsaWI9IiQxIgotICAgIGZ1bmNfc2hvd19ldmFsICIoY2QgXCRmX2V4X2FuX2FyX2RpciAmJiAkQVIgeCBcIlwkZl9leF9hbl9hcl9vbGRsaWJcIikiICdleGl0ICQ/JworICAgIGlmIHRlc3QgIiRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24iID0geWVzOyB0aGVuCisgICAgICBsb2NrZmlsZT0kZl9leF9hbl9hcl9vbGRsaWIubG9jaworICAgICAgdW50aWwgJG9wdF9kcnlfcnVuIHx8IGxuICIkcHJvZ3BhdGgiICIkbG9ja2ZpbGUiIDI+L2Rldi9udWxsOyBkbworCWZ1bmNfZWNobyAiV2FpdGluZyBmb3IgJGxvY2tmaWxlIHRvIGJlIHJlbW92ZWQiCisJc2xlZXAgMgorICAgICAgZG9uZQorICAgIGZpCisgICAgZnVuY19zaG93X2V2YWwgIihjZCBcJGZfZXhfYW5fYXJfZGlyICYmICRBUiB4IFwiXCRmX2V4X2FuX2FyX29sZGxpYlwiKSIgXAorCQkgICAnc3RhdD0kPzsgcm0gLWYgIiRsb2NrZmlsZSI7IGV4aXQgJHN0YXQnCisgICAgaWYgdGVzdCAiJGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbiIgPSB5ZXM7IHRoZW4KKyAgICAgICRvcHRfZHJ5X3J1biB8fCBybSAtZiAiJGxvY2tmaWxlIgorICAgIGZpCiAgICAgaWYgKCRBUiB0ICIkZl9leF9hbl9hcl9vbGRsaWIiIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwgMj4mMSk7IHRoZW4KICAgICAgOgogICAgIGVsc2UKQEAgLTI2NjksNyArMzc5Nyw3IEBACiAJICAgIGRhcndpbl9maWxlPQogCSAgICBkYXJ3aW5fZmlsZXM9CiAJICAgIGZvciBkYXJ3aW5fZmlsZSBpbiAkZGFyd2luX2ZpbGVsaXN0OyBkbwotCSAgICAgIGRhcndpbl9maWxlcz1gZmluZCB1bmZhdC0kJCAtbmFtZSAkZGFyd2luX2ZpbGUgLXByaW50IHwgJE5MMlNQYAorCSAgICAgIGRhcndpbl9maWxlcz1gZmluZCB1bmZhdC0kJCAtbmFtZSAkZGFyd2luX2ZpbGUgLXByaW50IHwgc29ydCB8ICROTDJTUGAKIAkgICAgICAkTElQTyAtY3JlYXRlIC1vdXRwdXQgIiRkYXJ3aW5fZmlsZSIgJGRhcndpbl9maWxlcwogCSAgICBkb25lICMgJGRhcndpbl9maWxlbGlzdAogCSAgICAkUk0gLXJmIHVuZmF0LSQkCkBAIC0yNjg0LDI1ICszODEyLDMwIEBACiAgICAgICAgIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgogCTs7CiAgICAgICBlc2FjCi0gICAgICBteV9vbGRvYmpzPSIkbXlfb2xkb2JqcyAiYGZpbmQgJG15X3hkaXIgLW5hbWUgXCouJG9iamV4dCAtcHJpbnQgLW8gLW5hbWUgXCoubG8gLXByaW50IHwgJE5MMlNQYAorICAgICAgbXlfb2xkb2Jqcz0iJG15X29sZG9ianMgImBmaW5kICRteV94ZGlyIC1uYW1lIFwqLiRvYmpleHQgLXByaW50IC1vIC1uYW1lIFwqLmxvIC1wcmludCB8IHNvcnQgfCAkTkwyU1BgCiAgICAgZG9uZQogCiAgICAgZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdD0iJG15X29sZG9ianMiCiB9CiAKIAotCi0jIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxIFthcmc9bm9dCisjIGZ1bmNfZW1pdF93cmFwcGVyIFthcmc9bm9dCiAjCi0jIEVtaXQgdGhlIGZpcnN0IHBhcnQgb2YgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KLSMgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZGVzY3JpcHRpb24gYXNzb2NpYXRlZCB3aXRoCi0jIGZ1bmNfZW1pdF93cmFwcGVyKCksIGJlbG93LgotZnVuY19lbWl0X3dyYXBwZXJfcGFydDEgKCkKKyMgRW1pdCBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb24gc3Rkb3V0LgorIyBEb24ndCBkaXJlY3RseSBvcGVuIGEgZmlsZSBiZWNhdXNlIHdlIG1heSB3YW50IHRvCisjIGluY29ycG9yYXRlIHRoZSBzY3JpcHQgY29udGVudHMgd2l0aGluIGEgY3lnd2luL21pbmd3CisjIHdyYXBwZXIgZXhlY3V0YWJsZS4gIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4KKyMgZnVuY19tb2RlX2xpbmsgYmVjYXVzZSBpdCBkZXBlbmRzIG9uIGEgbnVtYmVyIG9mIHZhcmlhYmxlcworIyBzZXQgdGhlcmVpbi4KKyMKKyMgQVJHIGlzIHRoZSB2YWx1ZSB0aGF0IHRoZSBXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUgorIyB2YXJpYWJsZSB3aWxsIHRha2UuICBJZiAneWVzJywgdGhlbiB0aGUgZW1pdHRlZCBzY3JpcHQKKyMgd2lsbCBhc3N1bWUgdGhhdCB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIGl0IGlzIHN0b3JlZCBpcworIyB0aGUgJG9iamRpciBkaXJlY3RvcnkuICBUaGlzIGlzIGEgY3lnd2luL21pbmd3LXNwZWNpZmljCisjIGJlaGF2aW9yLgorZnVuY19lbWl0X3dyYXBwZXIgKCkKIHsKLQlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MV9hcmcxPW5vCi0JaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgotCSAgZnVuY19lbWl0X3dyYXBwZXJfcGFydDFfYXJnMT0kMQotCWZpCisJZnVuY19lbWl0X3dyYXBwZXJfYXJnMT0kezEtbm99CiAKIAkkRUNITyAiXAogIyEgJFNIRUxMCkBAIC0yNzE4LDcgKzM4NTEsNiBAQAogCiAjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCiAjIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgotWHNlZD0nJHtTRUR9IC1lIDFzL15YLy8nCiBzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3QnCiAKICMgQmUgQm91cm5lIGNvbXBhdGlibGUKQEAgLTI3NDksMzEgKzM4ODEsMTM1IEBACiBlbHNlCiAgICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVjdXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRFQ0hPIGFyZSBhbHJlYWR5IHNldC4KICAgaWYgdGVzdCBcIlwkbGlidG9vbF9leGVjdXRlX21hZ2ljXCIgIT0gXCIkbWFnaWNcIjsgdGhlbgotICAgIEVDSE89XCIkcWVjaG9cIgotICAgIGZpbGU9XCJcJDBcIgotICAgICMgTWFrZSBzdXJlIGVjaG8gd29ya3MuCi0gICAgaWYgdGVzdCBcIlhcJDFcIiA9IFgtLW5vLXJlZXhlYzsgdGhlbgotICAgICAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCi0gICAgICBzaGlmdAotICAgIGVsaWYgdGVzdCBcIlhcYHsgXCRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxcYFwiID0gJ1hcdCc7IHRoZW4KLSAgICAgICMgWWlwcGVlLCBcJEVDSE8gd29ya3MhCi0gICAgICA6Ci0gICAgZWxzZQotICAgICAgIyBSZXN0YXJ0IHVuZGVyIHRoZSBjb3JyZWN0IHNoZWxsLCBhbmQgdGhlbiBtYXliZSBcJEVDSE8gd2lsbCB3b3JrLgotICAgICAgZXhlYyAkU0hFTEwgXCJcJDBcIiAtLW5vLXJlZXhlYyBcJHsxK1wiXCRAXCJ9Ci0gICAgZmkKLSAgZmlcCisgICAgZmlsZT1cIlwkMFwiIgorCisgICAgcUVDSE89YCRFQ0hPICIkRUNITyIgfCAkU0VEICIkc2VkX3F1b3RlX3N1YnN0ImAKKyAgICAkRUNITyAiXAorCisjIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHdoZW4gdGhlcmUgaXMgbm8gcHJpbnQgYnVpbHRpbiBvciBwcmludGYuCitmdW5jX2ZhbGxiYWNrX2VjaG8gKCkKK3sKKyAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKK1wkMQorX0xURUNIT19FT0YnCit9CisgICAgRUNITz1cIiRxRUNIT1wiCisgIGZpCisKKyMgVmVyeSBiYXNpYyBvcHRpb24gcGFyc2luZy4gVGhlc2Ugb3B0aW9ucyBhcmUgKGEpIHNwZWNpZmljIHRvCisjIHRoZSBsaWJ0b29sIHdyYXBwZXIsIChiKSBhcmUgaWRlbnRpY2FsIGJldHdlZW4gdGhlIHdyYXBwZXIKKyMgL3NjcmlwdC8gYW5kIHRoZSB3cmFwcGVyIC9leGVjdXRhYmxlLyB3aGljaCBpcyB1c2VkIG9ubHkgb24KKyMgd2luZG93cyBwbGF0Zm9ybXMsIGFuZCAoYykgYWxsIGJlZ2luIHdpdGggdGhlIHN0cmluZyAiLS1sdC0iCisjIChhcHBsaWNhdGlvbiBwcm9ncmFtcyBhcmUgdW5saWtlbHkgdG8gaGF2ZSBvcHRpb25zIHdoaWNoIG1hdGNoCisjIHRoaXMgcGF0dGVybikuCisjCisjIFRoZXJlIGFyZSBvbmx5IHR3byBzdXBwb3J0ZWQgb3B0aW9uczogLS1sdC1kZWJ1ZyBhbmQKKyMgLS1sdC1kdW1wLXNjcmlwdC4gVGhlcmUgaXMsIGRlbGliZXJhdGVseSwgbm8gLS1sdC1oZWxwLgorIworIyBUaGUgZmlyc3QgYXJndW1lbnQgdG8gdGhpcyBwYXJzaW5nIGZ1bmN0aW9uIHNob3VsZCBiZSB0aGUKKyMgc2NyaXB0J3MgJDAgdmFsdWUsIGZvbGxvd2VkIGJ5ICIkQCIuCitsdF9vcHRpb25fZGVidWc9CitmdW5jX3BhcnNlX2x0X29wdGlvbnMgKCkKK3sKKyAgbHRfc2NyaXB0X2FyZzA9XCQwCisgIHNoaWZ0CisgIGZvciBsdF9vcHQKKyAgZG8KKyAgICBjYXNlIFwiXCRsdF9vcHRcIiBpbgorICAgIC0tbHQtZGVidWcpIGx0X29wdGlvbl9kZWJ1Zz0xIDs7CisgICAgLS1sdC1kdW1wLXNjcmlwdCkKKyAgICAgICAgbHRfZHVtcF9EPVxgXCRFQ0hPIFwiWFwkbHRfc2NyaXB0X2FyZzBcIiB8ICRTRUQgLWUgJ3MvXlgvLycgLWUgJ3MlL1teL10qJCUlJ1xgCisgICAgICAgIHRlc3QgXCJYXCRsdF9kdW1wX0RcIiA9IFwiWFwkbHRfc2NyaXB0X2FyZzBcIiAmJiBsdF9kdW1wX0Q9LgorICAgICAgICBsdF9kdW1wX0Y9XGBcJEVDSE8gXCJYXCRsdF9zY3JpcHRfYXJnMFwiIHwgJFNFRCAtZSAncy9eWC8vJyAtZSAncyVeLiovJSUnXGAKKyAgICAgICAgY2F0IFwiXCRsdF9kdW1wX0QvXCRsdF9kdW1wX0ZcIgorICAgICAgICBleGl0IDAKKyAgICAgIDs7CisgICAgLS1sdC0qKQorICAgICAgICBcJEVDSE8gXCJVbnJlY29nbml6ZWQgLS1sdC0gb3B0aW9uOiAnXCRsdF9vcHQnXCIgMT4mMgorICAgICAgICBleGl0IDEKKyAgICAgIDs7CisgICAgZXNhYworICBkb25lCisKKyAgIyBQcmludCB0aGUgZGVidWcgYmFubmVyIGltbWVkaWF0ZWx5OgorICBpZiB0ZXN0IC1uIFwiXCRsdF9vcHRpb25fZGVidWdcIjsgdGhlbgorICAgIGVjaG8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5FTk99OiBsaWJ0b29sIHdyYXBwZXIgKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OXCIgMT4mMgorICBmaQorfQorCisjIFVzZWQgd2hlbiAtLWx0LWRlYnVnLiBQcmludHMgaXRzIGFyZ3VtZW50cyB0byBzdGRvdXQKKyMgKHJlZGlyZWN0aW9uIGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyKQorZnVuY19sdF9kdW1wX2FyZ3MgKCkKK3sKKyAgbHRfZHVtcF9hcmdzX049MTsKKyAgZm9yIGx0X2FyZworICBkbworICAgIFwkRUNITyBcIiR7b3V0cHV0bmFtZX06JHtvdXRwdXR9Olwke0xJTkVOT306IG5ld2FyZ3ZbXCRsdF9kdW1wX2FyZ3NfTl06IFwkbHRfYXJnXCIKKyAgICBsdF9kdW1wX2FyZ3NfTj1cYGV4cHIgXCRsdF9kdW1wX2FyZ3NfTiArIDFcYAorICBkb25lCit9CisKKyMgQ29yZSBmdW5jdGlvbiBmb3IgbGF1bmNoaW5nIHRoZSB0YXJnZXQgYXBwbGljYXRpb24KK2Z1bmNfZXhlY19wcm9ncmFtX2NvcmUgKCkKK3sKICIKLQkkRUNITyAiXAorICBjYXNlICRob3N0IGluCisgICMgQmFja3NsYXNoZXMgc2VwYXJhdGUgZGlyZWN0b3JpZXMgb24gcGxhaW4gd2luZG93cworICAqLSotbWluZ3cgfCAqLSotb3MyKiB8ICotY2VnY2MqKQorICAgICRFQ0hPICJcCisgICAgICBpZiB0ZXN0IC1uIFwiXCRsdF9vcHRpb25fZGVidWdcIjsgdGhlbgorICAgICAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5FTk99OiBuZXdhcmd2WzBdOiBcJHByb2dkaXJcXFxcXCRwcm9ncmFtXCIgMT4mMgorICAgICAgICBmdW5jX2x0X2R1bXBfYXJncyBcJHsxK1wiXCRAXCJ9IDE+JjIKKyAgICAgIGZpCisgICAgICBleGVjIFwiXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KKyIKKyAgICA7OworCisgICopCisgICAgJEVDSE8gIlwKKyAgICAgIGlmIHRlc3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wiOyB0aGVuCisgICAgICAgIFwkRUNITyBcIiR7b3V0cHV0bmFtZX06JHtvdXRwdXR9Olwke0xJTkVOT306IG5ld2FyZ3ZbMF06IFwkcHJvZ2Rpci9cJHByb2dyYW1cIiAxPiYyCisgICAgICAgIGZ1bmNfbHRfZHVtcF9hcmdzIFwkezErXCJcJEBcIn0gMT4mMgorICAgICAgZmkKKyAgICAgIGV4ZWMgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQorIgorICAgIDs7CisgIGVzYWMKKyAgJEVDSE8gIlwKKyAgICAgIFwkRUNITyBcIlwkMDogY2Fubm90IGV4ZWMgXCRwcm9ncmFtIFwkKlwiIDE+JjIKKyAgICAgIGV4aXQgMQorfQorCisjIEEgZnVuY3Rpb24gdG8gZW5jYXBzdWxhdGUgbGF1bmNoaW5nIHRoZSB0YXJnZXQgYXBwbGljYXRpb24KKyMgU3RyaXBzIG9wdGlvbnMgaW4gdGhlIC0tbHQtKiBuYW1lc3BhY2UgZnJvbSBcJEAgYW5kCisjIGxhdW5jaGVzIHRhcmdldCBhcHBsaWNhdGlvbiB3aXRoIHRoZSByZW1haW5pbmcgYXJndW1lbnRzLgorZnVuY19leGVjX3Byb2dyYW0gKCkKK3sKKyAgY2FzZSBcIiBcJCogXCIgaW4KKyAgKlxcIC0tbHQtKikKKyAgICBmb3IgbHRfd3JfYXJnCisgICAgZG8KKyAgICAgIGNhc2UgXCRsdF93cl9hcmcgaW4KKyAgICAgIC0tbHQtKikgOzsKKyAgICAgICopIHNldCB4IFwiXCRAXCIgXCJcJGx0X3dyX2FyZ1wiOyBzaGlmdDs7CisgICAgICBlc2FjCisgICAgICBzaGlmdAorICAgIGRvbmUgOzsKKyAgZXNhYworICBmdW5jX2V4ZWNfcHJvZ3JhbV9jb3JlIFwkezErXCJcJEBcIn0KK30KKworICAjIFBhcnNlIG9wdGlvbnMKKyAgZnVuY19wYXJzZV9sdF9vcHRpb25zIFwiXCQwXCIgXCR7MStcIlwkQFwifQogCiAgICMgRmluZCB0aGUgZGlyZWN0b3J5IHRoYXQgdGhpcyBzY3JpcHQgbGl2ZXMgaW4uCi0gIHRoaXNkaXI9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qJCUlJ1xgCisgIHRoaXNkaXI9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRTRUQgJ3MlL1teL10qJCUlJ1xgCiAgIHRlc3QgXCJ4XCR0aGlzZGlyXCIgPSBcInhcJGZpbGVcIiAmJiB0aGlzZGlyPS4KIAogICAjIEZvbGxvdyBzeW1ib2xpYyBsaW5rcyB1bnRpbCB3ZSBnZXQgdG8gdGhlIHJlYWwgdGhpc2Rpci4KLSAgZmlsZT1cYGxzIC1sZCBcIlwkZmlsZVwiIHwgJHtTRUR9IC1uICdzLy4qLT4gLy9wJ1xgCisgIGZpbGU9XGBscyAtbGQgXCJcJGZpbGVcIiB8ICRTRUQgLW4gJ3MvLiotPiAvL3AnXGAKICAgd2hpbGUgdGVzdCAtbiBcIlwkZmlsZVwiOyBkbwotICAgIGRlc3RkaXI9XGBcJEVDSE8gXCJYXCRmaWxlXCIgfCBcJFhzZWQgLWUgJ3MlL1teL10qXCQlJSdcYAorICAgIGRlc3RkaXI9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRTRUQgJ3MlL1teL10qXCQlJSdcYAogCiAgICAgIyBJZiB0aGVyZSB3YXMgYSBkaXJlY3RvcnkgY29tcG9uZW50LCB0aGVuIGNoYW5nZSB0aGlzZGlyLgogICAgIGlmIHRlc3QgXCJ4XCRkZXN0ZGlyXCIgIT0gXCJ4XCRmaWxlXCI7IHRoZW4KQEAgLTI3ODMsMzAgKzQwMTksMTMgQEAKICAgICAgIGVzYWMKICAgICBmaQogCi0gICAgZmlsZT1cYFwkRUNITyBcIlhcJGZpbGVcIiB8IFwkWHNlZCAtZSAncyVeLiovJSUnXGAKLSAgICBmaWxlPVxgbHMgLWxkIFwiXCR0aGlzZGlyL1wkZmlsZVwiIHwgJHtTRUR9IC1uICdzLy4qLT4gLy9wJ1xgCisgICAgZmlsZT1cYFwkRUNITyBcIlwkZmlsZVwiIHwgJFNFRCAncyVeLiovJSUnXGAKKyAgICBmaWxlPVxgbHMgLWxkIFwiXCR0aGlzZGlyL1wkZmlsZVwiIHwgJFNFRCAtbiAncy8uKi0+IC8vcCdcYAogICBkb25lCi0iCi19Ci0jIGVuZDogZnVuY19lbWl0X3dyYXBwZXJfcGFydDEKLQotIyBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiBbYXJnPW5vXQotIwotIyBFbWl0IHRoZSBzZWNvbmQgcGFydCBvZiBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb24gc3Rkb3V0LgotIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkZXNjcmlwdGlvbiBhc3NvY2lhdGVkIHdpdGgKLSMgZnVuY19lbWl0X3dyYXBwZXIoKSwgYmVsb3cuCi1mdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiAoKQotewotCWZ1bmNfZW1pdF93cmFwcGVyX3BhcnQyX2FyZzE9bm8KLQlpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCi0JICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0Ml9hcmcxPSQxCi0JZmkKLQotCSRFQ0hPICJcCiAKICAgIyBVc3VhbGx5ICdubycsIGV4Y2VwdCBvbiBjeWd3aW4vbWluZ3cgd2hlbiBlbWJlZGRlZCBpbnRvCiAgICMgdGhlIGN3cmFwcGVyLgotICBXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUj0kZnVuY19lbWl0X3dyYXBwZXJfcGFydDJfYXJnMQorICBXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUj0kZnVuY19lbWl0X3dyYXBwZXJfYXJnMQogICBpZiB0ZXN0IFwiXCRXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUlwiID0gXCJ5ZXNcIjsgdGhlbgogICAgICMgc3BlY2lhbCBjYXNlIGZvciAnLicKICAgICBpZiB0ZXN0IFwiXCR0aGlzZGlyXCIgPSBcIi5cIjsgdGhlbgpAQCAtMjgxNCw3ICs0MDMzLDcgQEAKICAgICBmaQogICAgICMgcmVtb3ZlIC5saWJzIGZyb20gdGhpc2RpcgogICAgIGNhc2UgXCJcJHRoaXNkaXJcIiBpbgotICAgICpbXFxcXC9dJG9iamRpciApIHRoaXNkaXI9XGBcJEVDSE8gXCJYXCR0aGlzZGlyXCIgfCBcJFhzZWQgLWUgJ3MlW1xcXFwvXVteXFxcXC9dKiQlJSdcYCA7OworICAgICpbXFxcXC9dJG9iamRpciApIHRoaXNkaXI9XGBcJEVDSE8gXCJcJHRoaXNkaXJcIiB8ICRTRUQgJ3MlW1xcXFwvXVteXFxcXC9dKiQlJSdcYCA7OwogICAgICRvYmpkaXIgKSAgIHRoaXNkaXI9LiA7OwogICAgIGVzYWMKICAgZmkKQEAgLTI4NjksNiArNDA4OCwxOCBAQAogCiAgIGlmIHRlc3QgLWYgXCJcJHByb2dkaXIvXCRwcm9ncmFtXCI7IHRoZW4iCiAKKwkjIGZpeHVwIHRoZSBkbGwgc2VhcmNocGF0aCBpZiB3ZSBuZWVkIHRvLgorCSMKKwkjIEZpeCB0aGUgRExMIHNlYXJjaHBhdGggaWYgd2UgbmVlZCB0by4gIERvIHRoaXMgYmVmb3JlIHByZXBlbmRpbmcKKwkjIHRvIHNobGlicGF0aCwgYmVjYXVzZSBvbiBXaW5kb3dzLCBib3RoIGFyZSBQQVRIIGFuZCB1bmluc3RhbGxlZAorCSMgbGlicmFyaWVzIG11c3QgY29tZSBmaXJzdC4KKwlpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KKwkgICRFQ0hPICJcCisgICAgIyBBZGQgdGhlIGRsbCBzZWFyY2ggcGF0aCBjb21wb25lbnRzIHRvIHRoZSBleGVjdXRhYmxlIFBBVEgKKyAgICBQQVRIPSRkbGxzZWFyY2hwYXRoOlwkUEFUSAorIgorCWZpCisKIAkjIEV4cG9ydCBvdXIgc2hsaWJwYXRoX3ZhciBpZiB3ZSBoYXZlIG9uZS4KIAlpZiB0ZXN0ICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoIiA9IHllcyAmJiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAtbiAiJHRlbXBfcnBhdGgiOyB0aGVuCiAJICAkRUNITyAiXApAQCAtMjg3NywyNTQgKzQxMDgsMjkgQEAKIAogICAgICMgU29tZSBzeXN0ZW1zIGNhbm5vdCBjb3BlIHdpdGggY29sb24tdGVybWluYXRlZCAkc2hsaWJwYXRoX3ZhcgogICAgICMgVGhlIHNlY29uZCBjb2xvbiBpcyBhIHdvcmthcm91bmQgZm9yIGEgYnVnIGluIEJlT1MgUjQgc2VkCi0gICAgJHNobGlicGF0aF92YXI9XGBcJEVDSE8gXCJYXCQkc2hsaWJwYXRoX3ZhclwiIHwgXCRYc2VkIC1lICdzLzo6KlwkLy8nXGAKKyAgICAkc2hsaWJwYXRoX3Zhcj1cYFwkRUNITyBcIlwkJHNobGlicGF0aF92YXJcIiB8ICRTRUQgJ3MvOjoqXCQvLydcYAogCiAgICAgZXhwb3J0ICRzaGxpYnBhdGhfdmFyCiAiCiAJZmkKIAotCSMgZml4dXAgdGhlIGRsbCBzZWFyY2hwYXRoIGlmIHdlIG5lZWQgdG8uCi0JaWYgdGVzdCAtbiAiJGRsbHNlYXJjaHBhdGgiOyB0aGVuCi0JICAkRUNITyAiXAotICAgICMgQWRkIHRoZSBkbGwgc2VhcmNoIHBhdGggY29tcG9uZW50cyB0byB0aGUgZXhlY3V0YWJsZSBQQVRICi0gICAgUEFUSD0kZGxsc2VhcmNocGF0aDpcJFBBVEgKLSIKLQlmaQotCiAJJEVDSE8gIlwKICAgICBpZiB0ZXN0IFwiXCRsaWJ0b29sX2V4ZWN1dGVfbWFnaWNcIiAhPSBcIiRtYWdpY1wiOyB0aGVuCiAgICAgICAjIFJ1biB0aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJndW1lbnRzLgotIgotCWNhc2UgJGhvc3QgaW4KLQkjIEJhY2tzbGFzaGVzIHNlcGFyYXRlIGRpcmVjdG9yaWVzIG9uIHBsYWluIHdpbmRvd3MKLQkqLSotbWluZ3cgfCAqLSotb3MyKiB8ICotY2VnY2MqKQotCSAgJEVDSE8gIlwKLSAgICAgIGV4ZWMgXCJcJHByb2dkaXJcXFxcXCRwcm9ncmFtXCIgXCR7MStcIlwkQFwifQotIgotCSAgOzsKLQotCSopCi0JICAkRUNITyAiXAotICAgICAgZXhlYyBcIlwkcHJvZ2Rpci9cJHByb2dyYW1cIiBcJHsxK1wiXCRAXCJ9Ci0iCi0JICA7OwotCWVzYWMKLQkkRUNITyAiXAotICAgICAgXCRFQ0hPIFwiXCQwOiBjYW5ub3QgZXhlYyBcJHByb2dyYW0gXCQqXCIgMT4mMgotICAgICAgZXhpdCAxCisgICAgICBmdW5jX2V4ZWNfcHJvZ3JhbSBcJHsxK1wiXCRAXCJ9CiAgICAgZmkKICAgZWxzZQogICAgICMgVGhlIHByb2dyYW0gZG9lc24ndCBleGlzdC4KICAgICBcJEVDSE8gXCJcJDA6IGVycm9yOiBcXFxgXCRwcm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBub3QgZXhpc3RcIiAxPiYyCiAgICAgXCRFQ0hPIFwiVGhpcyBzY3JpcHQgaXMganVzdCBhIHdyYXBwZXIgZm9yIFwkcHJvZ3JhbS5cIiAxPiYyCi0gICAgJEVDSE8gXCJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uXCIgMT4mMgorICAgIFwkRUNITyBcIlNlZSB0aGUgJFBBQ0tBR0UgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cIiAxPiYyCiAgICAgZXhpdCAxCiAgIGZpCiBmaVwKICIKIH0KLSMgZW5kOiBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MgogCiAKLSMgZnVuY19lbWl0X3dyYXBwZXIgW2FyZz1ub10KLSMKLSMgRW1pdCBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb24gc3Rkb3V0LgotIyBEb24ndCBkaXJlY3RseSBvcGVuIGEgZmlsZSBiZWNhdXNlIHdlIG1heSB3YW50IHRvCi0jIGluY29ycG9yYXRlIHRoZSBzY3JpcHQgY29udGVudHMgd2l0aGluIGEgY3lnd2luL21pbmd3Ci0jIHdyYXBwZXIgZXhlY3V0YWJsZS4gIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3aXRoaW4KLSMgZnVuY19tb2RlX2xpbmsgYmVjYXVzZSBpdCBkZXBlbmRzIG9uIGEgbnVtYmVyIG9mIHZhcmlhYmxlcwotIyBzZXQgdGhlcmVpbi4KLSMKLSMgQVJHIGlzIHRoZSB2YWx1ZSB0aGF0IHRoZSBXUkFQUEVSX1NDUklQVF9CRUxPTkdTX0lOX09CSkRJUgotIyB2YXJpYWJsZSB3aWxsIHRha2UuICBJZiAneWVzJywgdGhlbiB0aGUgZW1pdHRlZCBzY3JpcHQKLSMgd2lsbCBhc3N1bWUgdGhhdCB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIGl0IGlzIHN0b3JlZCBpcwotIyB0aGUgJG9iamRpciBkaXJlY3RvcnkuICBUaGlzIGlzIGEgY3lnd2luL21pbmd3LXNwZWNpZmljCi0jIGJlaGF2aW9yLgotZnVuY19lbWl0X3dyYXBwZXIgKCkKLXsKLQlmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPW5vCi0JaWYgdGVzdCAtbiAiJDEiIDsgdGhlbgotCSAgZnVuY19lbWl0X3dyYXBwZXJfYXJnMT0kMQotCWZpCi0KLQkjIHNwbGl0IHRoaXMgdXAgc28gdGhhdCBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjCi0JIyBjYW4gY2FsbCBlYWNoIHBhcnQgaW5kZXBlbmRlbnRseS4KLQlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MSAiJHtmdW5jX2VtaXRfd3JhcHBlcl9hcmcxfSIKLQlmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiAiJHtmdW5jX2VtaXRfd3JhcHBlcl9hcmcxfSIKLX0KLQotCi0jIGZ1bmNfdG9faG9zdF9wYXRoIGFyZwotIwotIyBDb252ZXJ0IHBhdGhzIHRvIGhvc3QgZm9ybWF0IHdoZW4gdXNlZCB3aXRoIGJ1aWxkIHRvb2xzLgotIyBJbnRlbmRlZCBmb3IgdXNlIHdpdGggIm5hdGl2ZSIgbWluZ3cgKHdoZXJlIGxpYnRvb2wgaXRzZWxmCi0jIGlzIHJ1bm5pbmcgdW5kZXIgdGhlIG1zeXMgc2hlbGwpLCBvciBpbiB0aGUgZm9sbG93aW5nIGNyb3NzLQotIyBidWlsZCBlbnZpcm9ubWVudHM6Ci0jICAgICRidWlsZCAgICAgICAgICAkaG9zdAotIyAgICBtaW5ndyAobXN5cykgICAgbWluZ3cgIFtlLmcuIG5hdGl2ZV0KLSMgICAgY3lnd2luICAgICAgICAgIG1pbmd3Ci0jICAgICpuaXggKyB3aW5lICAgICBtaW5ndwotIyB3aGVyZSB3aW5lIGlzIGVxdWlwcGVkIHdpdGggdGhlIGB3aW5lcGF0aCcgZXhlY3V0YWJsZS4KLSMgSW4gdGhlIG5hdGl2ZSBtaW5ndyBjYXNlLCB0aGUgKG1zeXMpIHNoZWxsIGF1dG9tYXRpY2FsbHkKLSMgY29udmVydHMgcGF0aHMgZm9yIGFueSBub24tbXN5cyBhcHBsaWNhdGlvbnMgaXQgbGF1bmNoZXMsCi0jIGJ1dCB0aGF0IGZhY2lsaXR5IGlzbid0IGF2YWlsYWJsZSBmcm9tIGluc2lkZSB0aGUgY3dyYXBwZXIuCi0jIFNpbWlsYXIgYWNjb21tb2RhdGlvbnMgYXJlIG5lY2Vzc2FyeSBmb3IgJGhvc3QgbWluZ3cgYW5kCi0jICRidWlsZCBjeWd3aW4uICBDYWxsaW5nIHRoaXMgZnVuY3Rpb24gZG9lcyBubyBoYXJtIGZvciBvdGhlcgotIyAkaG9zdC8kYnVpbGQgY29tYmluYXRpb25zIG5vdCBsaXN0ZWQgYWJvdmUuCi0jCi0jIEFSRyBpcyB0aGUgcGF0aCAob24gJGJ1aWxkKSB0aGF0IHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8KLSMgdGhlIHByb3BlciByZXByZXNlbnRhdGlvbiBmb3IgJGhvc3QuIFRoZSByZXN1bHQgaXMgc3RvcmVkCi0jIGluICRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQuCi1mdW5jX3RvX2hvc3RfcGF0aCAoKQotewotICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgotICBpZiB0ZXN0IC1uICIkMSIgOyB0aGVuCi0gICAgY2FzZSAkaG9zdCBpbgotICAgICAgKm1pbmd3KiApCi0gICAgICAgIGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnk9J3N8XFxcXCp8XFx8ZztzfC98XFx8ZztzfFxcfFxcXFx8ZycKLSAgICAgICAgY2FzZSAkYnVpbGQgaW4KLSAgICAgICAgICAqbWluZ3cqICkgIyBhY3R1YWxseSwgbXN5cwotICAgICAgICAgICAgIyBhd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0Ci0gICAgICAgICAgICBsdF9zZWRfc3RyaXBfdHJhaWxpbmdfc3BhY2VzPSJzL1sgXSpcJC8vIgotICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfdG1wMT1gKCBjbWQgLy9jIGVjaG8gIiQxIiB8XAotICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX3N0cmlwX3RyYWlsaW5nX3NwYWNlcyIgKSAyPi9kZXYvbnVsbCB8fCBlY2hvICIiYAotICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgfFwKLSAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAotICAgICAgICAgICAgOzsKLSAgICAgICAgICAqY3lnd2luKiApCi0gICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPWBjeWdwYXRoIC13ICIkMSJgCi0gICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiB8XAotICAgICAgICAgICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCi0gICAgICAgICAgICA7OwotICAgICAgICAgICogKQotICAgICAgICAgICAgIyBVbmZvcnR1bmF0ZWx5LCB3aW5lcGF0aCBkb2VzIG5vdCBleGl0IHdpdGggYSBub24temVybwotICAgICAgICAgICAgIyBlcnJvciBjb2RlLCBzbyB3ZSBhcmUgZm9yY2VkIHRvIGNoZWNrIHRoZSBjb250ZW50cyBvZgotICAgICAgICAgICAgIyBzdGRvdXQuIE9uIHRoZSBvdGhlciBoYW5kLCBpZiB0aGUgY29tbWFuZCBpcyBub3QKLSAgICAgICAgICAgICMgZm91bmQsIHRoZSBzaGVsbCB3aWxsIHNldCBhbiBleGl0IGNvZGUgb2YgMTI3IGFuZCBwcmludAotICAgICAgICAgICAgIyAqYW4gZXJyb3IgbWVzc2FnZSogdG8gc3Rkb3V0LiBTbyB3ZSBtdXN0IGNoZWNrIGZvciBib3RoCi0gICAgICAgICAgICAjIGVycm9yIGNvZGUgb2YgemVybyBBTkQgbm9uLWVtcHR5IHN0ZG91dCwgd2hpY2ggZXhwbGFpbnMKLSAgICAgICAgICAgICMgdGhlIG9kZCBjb25zdHJ1Y3Rpb246Ci0gICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPWB3aW5lcGF0aCAtdyAiJDEiIDI+L2Rldi9udWxsYAotICAgICAgICAgICAgaWYgdGVzdCAiJD8iIC1lcSAwICYmIHRlc3QgLW4gIiR7ZnVuY190b19ob3N0X3BhdGhfdG1wMX0iOyB0aGVuCi0gICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD1gZWNobyAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiIHxcCi0gICAgICAgICAgICAgICAgJFNFRCAtZSAiJGx0X3NlZF9uYWl2ZV9iYWNrc2xhc2hpZnkiYAotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAjIEFsbG93IHdhcm5pbmcgYmVsb3cuCi0gICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iIgotICAgICAgICAgICAgZmkKLSAgICAgICAgICAgIDs7Ci0gICAgICAgIGVzYWMKLSAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIgOyB0aGVuCi0gICAgICAgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSBob3N0IHBhdGggY29ycmVzcG9uZGluZyB0byIKLSAgICAgICAgICBmdW5jX2Vycm9yICIgICckMSciCi0gICAgICAgICAgZnVuY19lcnJvciAiQ29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIG1heSBub3Qgd29yay4iCi0gICAgICAgICAgIyBGYWxsYmFjazoKLSAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgotICAgICAgICBmaQotICAgICAgICA7OwotICAgIGVzYWMKLSAgZmkKLX0KLSMgZW5kOiBmdW5jX3RvX2hvc3RfcGF0aAotCi0jIGZ1bmNfdG9faG9zdF9wYXRobGlzdCBhcmcKLSMKLSMgQ29udmVydCBwYXRobGlzdHMgdG8gaG9zdCBmb3JtYXQgd2hlbiB1c2VkIHdpdGggYnVpbGQgdG9vbHMuCi0jIFNlZSBmdW5jX3RvX2hvc3RfcGF0aCgpLCBhYm92ZS4gVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyB0aGUKLSMgZm9sbG93aW5nICRidWlsZC8kaG9zdCBjb21iaW5hdGlvbnMgKGJ1dCBkb2VzIG5vIGhhcm0gZm9yCi0jIGNvbWJpbmF0aW9ucyBub3QgbGlzdGVkIGhlcmUpOgotIyAgICAkYnVpbGQgICAgICAgICAgJGhvc3QKLSMgICAgbWluZ3cgKG1zeXMpICAgIG1pbmd3ICBbZS5nLiBuYXRpdmVdCi0jICAgIGN5Z3dpbiAgICAgICAgICBtaW5ndwotIyAgICAqbml4ICsgd2luZSAgICAgbWluZ3cKLSMKLSMgUGF0aCBzZXBhcmF0b3JzIGFyZSBhbHNvIGNvbnZlcnRlZCBmcm9tICRidWlsZCBmb3JtYXQgdG8KLSMgJGhvc3QgZm9ybWF0LiBJZiBBUkcgYmVnaW5zIG9yIGVuZHMgd2l0aCBhIHBhdGggc2VwYXJhdG9yCi0jIGNoYXJhY3RlciwgaXQgaXMgcHJlc2VydmVkIChidXQgY29udmVydGVkIHRvICRob3N0IGZvcm1hdCkKLSMgb24gb3V0cHV0LgotIwotIyBBUkcgaXMgYSBwYXRobGlzdCAob24gJGJ1aWxkKSB0aGF0IHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8KLSMgdGhlIHByb3BlciByZXByZXNlbnRhdGlvbiBvbiAkaG9zdC4gVGhlIHJlc3VsdCBpcyBzdG9yZWQKLSMgaW4gJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQuCi1mdW5jX3RvX2hvc3RfcGF0aGxpc3QgKCkKLXsKLSAgZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdD0iJDEiCi0gIGlmIHRlc3QgLW4gIiQxIiA7IHRoZW4KLSAgICBjYXNlICRob3N0IGluCi0gICAgICAqbWluZ3cqICkKLSAgICAgICAgbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeT0nc3xcXFxcKnxcXHxnO3N8L3xcXHxnO3N8XFx8XFxcXHxnJwotICAgICAgICAjIFJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXJzIGZyb20KLSAgICAgICAgIyBBUkcuIG1zeXMgYmVoYXZpb3IgaXMgaW5jb25zaXN0ZW50IGhlcmUsIGN5Z3BhdGggdHVybnMgdGhlbQotICAgICAgICAjIGludG8gJy47JyBhbmQgJzsuJywgYW5kIHdpbmVwYXRoIGlnbm9yZXMgdGhlbSBjb21wbGV0ZWx5LgotICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMj0iJDEiCi0gICAgICAgICMgT25jZSBzZXQgZm9yIHRoaXMgY2FsbCwgdGhpcyB2YXJpYWJsZSBzaG91bGQgbm90IGJlCi0gICAgICAgICMgcmVhc3NpZ25lZC4gSXQgaXMgdXNlZCBpbiB0aGEgZmFsbGJhY2sgY2FzZS4KLSAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDE9YGVjaG8gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMiIgfFwKLSAgICAgICAgICAkU0VEIC1lICdzfF46Knx8JyAtZSAnc3w6KiR8fCdgCi0gICAgICAgIGNhc2UgJGJ1aWxkIGluCi0gICAgICAgICAgKm1pbmd3KiApICMgQWN0dWFsbHksIG1zeXMuCi0gICAgICAgICAgICAjIEF3a3dhcmQ6IGNtZCBhcHBlbmRzIHNwYWNlcyB0byByZXN1bHQuCi0gICAgICAgICAgICBsdF9zZWRfc3RyaXBfdHJhaWxpbmdfc3BhY2VzPSJzL1sgXSpcJC8vIgotICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDI9YCggY21kIC8vYyBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEiIHxcCi0gICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfc3RyaXBfdHJhaWxpbmdfc3BhY2VzIiApIDI+L2Rldi9udWxsIHx8IGVjaG8gIiJgCi0gICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDIiIHxcCi0gICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSAgICAgICAgICAgIDs7Ci0gICAgICAgICAgKmN5Z3dpbiogKQotICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDI9YGN5Z3BhdGggLXcgLXAgIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfdG1wMSJgCi0gICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDIiIHxcCi0gICAgICAgICAgICAgICRTRUQgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3NsYXNoaWZ5ImAKLSAgICAgICAgICAgIDs7Ci0gICAgICAgICAgKiApCi0gICAgICAgICAgICAjIHVuZm9ydHVuYXRlbHksIHdpbmVwYXRoIGRvZXNuJ3QgY29udmVydCBwYXRobGlzdHMKLSAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IiIKLSAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlM9JElGUwotICAgICAgICAgICAgSUZTPToKLSAgICAgICAgICAgIGZvciBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfZiBpbiAkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEgOyBkbwotICAgICAgICAgICAgICBJRlM9JGZ1bmNfdG9faG9zdF9wYXRobGlzdF9vbGRJRlMKLSAgICAgICAgICAgICAgaWYgdGVzdCAtbiAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9mIiA7IHRoZW4KLSAgICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aCAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9mIgotICAgICAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiIDsgdGhlbgotICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQiIDsgdGhlbgotICAgICAgICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgotICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdDskZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgotICAgICAgICAgICAgICAgICAgZmkKLSAgICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICBmaQotICAgICAgICAgICAgICBJRlM9OgotICAgICAgICAgICAgZG9uZQotICAgICAgICAgICAgSUZTPSRmdW5jX3RvX2hvc3RfcGF0aGxpc3Rfb2xkSUZTCi0gICAgICAgICAgICA7OwotICAgICAgICBlc2FjCi0gICAgICAgIGlmIHRlc3QgLXogIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IiA7IHRoZW4KLSAgICAgICAgICBmdW5jX2Vycm9yICJDb3VsZCBub3QgZGV0ZXJtaW5lIHRoZSBob3N0IHBhdGgocykgY29ycmVzcG9uZGluZyB0byIKLSAgICAgICAgICBmdW5jX2Vycm9yICIgICckMSciCi0gICAgICAgICAgZnVuY19lcnJvciAiQ29udGludWluZywgYnV0IHVuaW5zdGFsbGVkIGV4ZWN1dGFibGVzIG1heSBub3Qgd29yay4iCi0gICAgICAgICAgIyBGYWxsYmFjay4gVGhpcyBtYXkgYnJlYWsgaWYgJDEgY29udGFpbnMgRE9TLXN0eWxlIGRyaXZlCi0gICAgICAgICAgIyBzcGVjaWZpY2F0aW9ucy4gVGhlIGZpeCBpcyBub3QgdG8gY29tcGxpY2F0ZSB0aGUgZXhwcmVzc2lvbgotICAgICAgICAgICMgYmVsb3csIGJ1dCBmb3IgdGhlIHVzZXIgdG8gcHJvdmlkZSBhIHdvcmtpbmcgd2luZSBpbnN0YWxsYXRpb24KLSAgICAgICAgICAjIHdpdGggd2luZXBhdGggc28gdGhhdCBwYXRoIHRyYW5zbGF0aW9uIGluIHRoZSBjcm9zcy10by1taW5ndwotICAgICAgICAgICMgY2FzZSB3b3JrcyBwcm9wZXJseS4KLSAgICAgICAgICBsdF9yZXBsYWNlX3BhdGhzZXBfbml4X3RvX2Rvcz0ic3w6fDt8ZyIKLSAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PWBlY2hvICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3RtcDEiIHxcCi0gICAgICAgICAgICAkU0VEIC1lICIkbHRfcmVwbGFjZV9wYXRoc2VwX25peF90b19kb3MiYAotICAgICAgICBmaQotICAgICAgICAjIE5vdywgYWRkIHRoZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBwYXRoIHNlcGFyYXRvcnMgYmFjawotICAgICAgICBjYXNlICIkMSIgaW4KLSAgICAgICAgICA6KiApIGZ1bmNfdG9faG9zdF9wYXRobGlzdF9yZXN1bHQ9IjskZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCIKLSAgICAgICAgICAgIDs7Ci0gICAgICAgIGVzYWMKLSAgICAgICAgY2FzZSAiJDEiIGluCi0gICAgICAgICAgKjogKSBmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0PSIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdDsiCi0gICAgICAgICAgICA7OwotICAgICAgICBlc2FjCi0gICAgICAgIDs7Ci0gICAgZXNhYwotICBmaQotfQotIyBlbmQ6IGZ1bmNfdG9faG9zdF9wYXRobGlzdAotCiAjIGZ1bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKICMgZW1pdCB0aGUgc291cmNlIGNvZGUgZm9yIGEgd3JhcHBlciBleGVjdXRhYmxlIG9uIHN0ZG91dAogIyBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluIGZ1bmNfbW9kZV9saW5rIGJlY2F1c2UKQEAgLTMxNDEsMzEgKzQxNDcsMjMgQEAKIAogICAgVGhpcyB3cmFwcGVyIGV4ZWN1dGFibGUgc2hvdWxkIG5ldmVyIGJlIG1vdmVkIG91dCBvZiB0aGUgYnVpbGQgZGlyZWN0b3J5LgogICAgSWYgaXQgaXMsIGl0IHdpbGwgbm90IG9wZXJhdGUgY29ycmVjdGx5LgotCi0gICBDdXJyZW50bHksIGl0IHNpbXBseSBleGVjcyB0aGUgd3JhcHBlciAqc2NyaXB0KiAiJFNIRUxMICRvdXRwdXQiLAotICAgYnV0IGNvdWxkIGV2ZW50dWFsbHkgYWJzb3JiIGFsbCBvZiB0aGUgc2NyaXB0cyBmdW5jdGlvbmFsaXR5IGFuZAotICAgZXhlYyAkb2JqZGlyLyRvdXRwdXRuYW1lIGRpcmVjdGx5LgogKi8KIEVPRgogCSAgICBjYXQgPDwiRU9GIgorI2lmZGVmIF9NU0NfVkVSCisjIGRlZmluZSBfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEUgMQorI2VuZGlmCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpZmRlZiBfTVNDX1ZFUgogIyBpbmNsdWRlIDxkaXJlY3QuaD4KICMgaW5jbHVkZSA8cHJvY2Vzcy5oPgogIyBpbmNsdWRlIDxpby5oPgotIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9kZQogI2Vsc2UKICMgaW5jbHVkZSA8dW5pc3RkLmg+CiAjIGluY2x1ZGUgPHN0ZGludC5oPgogIyBpZmRlZiBfX0NZR1dJTl9fCiAjICBpbmNsdWRlIDxpby5oPgotIyAgZGVmaW5lIEhBVkVfU0VURU5WCi0jICBpZmRlZiBfX1NUUklDVF9BTlNJX18KLWNoYXIgKnJlYWxwYXRoIChjb25zdCBjaGFyICosIGNoYXIgKik7Ci1pbnQgcHV0ZW52IChjaGFyICopOwotaW50IHNldGVudiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGludCk7Ci0jICBlbmRpZgogIyBlbmRpZgogI2VuZGlmCiAjaW5jbHVkZSA8bWFsbG9jLmg+CkBAIC0zMTc3LDYgKzQxNzUsNDQgQEAKICNpbmNsdWRlIDxmY250bC5oPgogI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CiAKKy8qIGRlY2xhcmF0aW9ucyBvZiBub24tQU5TSSBmdW5jdGlvbnMgKi8KKyNpZiBkZWZpbmVkKF9fTUlOR1czMl9fKQorIyBpZmRlZiBfX1NUUklDVF9BTlNJX18KK2ludCBfcHV0ZW52IChjb25zdCBjaGFyICopOworIyBlbmRpZgorI2VsaWYgZGVmaW5lZChfX0NZR1dJTl9fKQorIyBpZmRlZiBfX1NUUklDVF9BTlNJX18KK2NoYXIgKnJlYWxwYXRoIChjb25zdCBjaGFyICosIGNoYXIgKik7CitpbnQgcHV0ZW52IChjaGFyICopOworaW50IHNldGVudiAoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGludCk7CisjIGVuZGlmCisvKiAjZWxpZiBkZWZpbmVkIChvdGhlciBwbGF0Zm9ybXMpIC4uLiAqLworI2VuZGlmCisKKy8qIHBvcnRhYmlsaXR5IGRlZmluZXMsIGV4Y2x1ZGluZyBwYXRoIGhhbmRsaW5nIG1hY3JvcyAqLworI2lmIGRlZmluZWQoX01TQ19WRVIpCisjIGRlZmluZSBzZXRtb2RlIF9zZXRtb2RlCisjIGRlZmluZSBzdGF0ICAgIF9zdGF0CisjIGRlZmluZSBjaG1vZCAgIF9jaG1vZAorIyBkZWZpbmUgZ2V0Y3dkICBfZ2V0Y3dkCisjIGRlZmluZSBwdXRlbnYgIF9wdXRlbnYKKyMgZGVmaW5lIFNfSVhVU1IgX1NfSUVYRUMKKyMgaWZuZGVmIF9JTlRQVFJfVF9ERUZJTkVECisjICBkZWZpbmUgX0lOVFBUUl9UX0RFRklORUQKKyMgIGRlZmluZSBpbnRwdHJfdCBpbnQKKyMgZW5kaWYKKyNlbGlmIGRlZmluZWQoX19NSU5HVzMyX18pCisjIGRlZmluZSBzZXRtb2RlIF9zZXRtb2RlCisjIGRlZmluZSBzdGF0ICAgIF9zdGF0CisjIGRlZmluZSBjaG1vZCAgIF9jaG1vZAorIyBkZWZpbmUgZ2V0Y3dkICBfZ2V0Y3dkCisjIGRlZmluZSBwdXRlbnYgIF9wdXRlbnYKKyNlbGlmIGRlZmluZWQoX19DWUdXSU5fXykKKyMgZGVmaW5lIEhBVkVfU0VURU5WCisjIGRlZmluZSBGT1BFTl9XQiAid2IiCisvKiAjZWxpZiBkZWZpbmVkIChvdGhlciBwbGF0Zm9ybXMpIC4uLiAqLworI2VuZGlmCisKICNpZiBkZWZpbmVkKFBBVEhfTUFYKQogIyBkZWZpbmUgTFRfUEFUSE1BWCBQQVRIX01BWAogI2VsaWYgZGVmaW5lZChNQVhQQVRITEVOKQpAQCAtMzE5MiwxNCArNDIyOCw3IEBACiAjIGRlZmluZSBTX0lYR1JQIDAKICNlbmRpZgogCi0jaWZkZWYgX01TQ19WRVIKLSMgZGVmaW5lIFNfSVhVU1IgX1NfSUVYRUMKLSMgZGVmaW5lIHN0YXQgX3N0YXQKLSMgaWZuZGVmIF9JTlRQVFJfVF9ERUZJTkVECi0jICBkZWZpbmUgaW50cHRyX3QgaW50Ci0jIGVuZGlmCi0jZW5kaWYKLQorLyogcGF0aCBoYW5kbGluZyBwb3J0YWJpbGl0eSBtYWNyb3MgKi8KICNpZm5kZWYgRElSX1NFUEFSQVRPUgogIyBkZWZpbmUgRElSX1NFUEFSQVRPUiAnLycKICMgZGVmaW5lIFBBVEhfU0VQQVJBVE9SICc6JwpAQCAtMzIzMCwxMCArNDI1OSw2IEBACiAjIGRlZmluZSBJU19QQVRIX1NFUEFSQVRPUihjaCkgKChjaCkgPT0gUEFUSF9TRVBBUkFUT1JfMikKICNlbmRpZiAvKiBQQVRIX1NFUEFSQVRPUl8yICovCiAKLSNpZmRlZiBfX0NZR1dJTl9fCi0jIGRlZmluZSBGT1BFTl9XQiAid2IiCi0jZW5kaWYKLQogI2lmbmRlZiBGT1BFTl9XQgogIyBkZWZpbmUgRk9QRU5fV0IgInciCiAjZW5kaWYKQEAgLTMyNDYsMjIgKzQyNzEsMTMgQEAKICAgaWYgKHN0YWxlKSB7IGZyZWUgKCh2b2lkICopIHN0YWxlKTsgc3RhbGUgPSAwOyB9IFwKIH0gd2hpbGUgKDApCiAKLSN1bmRlZiBMVFdSQVBQRVJfREVCVUdQUklOVEYKLSNpZiBkZWZpbmVkIERFQlVHV1JBUFBFUgotIyBkZWZpbmUgTFRXUkFQUEVSX0RFQlVHUFJJTlRGKGFyZ3MpIGx0d3JhcHBlcl9kZWJ1Z3ByaW50ZiBhcmdzCi1zdGF0aWMgdm9pZAotbHR3cmFwcGVyX2RlYnVncHJpbnRmIChjb25zdCBjaGFyICpmbXQsIC4uLikKLXsKLSAgICB2YV9saXN0IGFyZ3M7Ci0gICAgdmFfc3RhcnQgKGFyZ3MsIGZtdCk7Ci0gICAgKHZvaWQpIHZmcHJpbnRmIChzdGRlcnIsIGZtdCwgYXJncyk7Ci0gICAgdmFfZW5kIChhcmdzKTsKLX0KKyNpZiBkZWZpbmVkKExUX0RFQlVHV1JBUFBFUikKK3N0YXRpYyBpbnQgbHRfZGVidWcgPSAxOwogI2Vsc2UKLSMgZGVmaW5lIExUV1JBUFBFUl9ERUJVR1BSSU5URihhcmdzKQorc3RhdGljIGludCBsdF9kZWJ1ZyA9IDA7CiAjZW5kaWYKIAotY29uc3QgY2hhciAqcHJvZ3JhbV9uYW1lID0gTlVMTDsKK2NvbnN0IGNoYXIgKnByb2dyYW1fbmFtZSA9ICJsaWJ0b29sLXdyYXBwZXIiOyAvKiBpbiBjYXNlIHhzdHJkdXAgZmFpbHMgKi8KIAogdm9pZCAqeG1hbGxvYyAoc2l6ZV90IG51bSk7CiBjaGFyICp4c3RyZHVwIChjb25zdCBjaGFyICpzdHJpbmcpOwpAQCAtMzI3MSw0MSArNDI4NywyNyBAQAogaW50IG1ha2VfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7CiBpbnQgY2hlY2tfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7CiBjaGFyICpzdHJlbmR6YXAgKGNoYXIgKnN0ciwgY29uc3QgY2hhciAqcGF0KTsKLXZvaWQgbHRfZmF0YWwgKGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLik7Cit2b2lkIGx0X2RlYnVncHJpbnRmIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqZm10LCAuLi4pOwordm9pZCBsdF9mYXRhbCAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLik7CitzdGF0aWMgY29uc3QgY2hhciAqbm9ubnVsbCAoY29uc3QgY2hhciAqcyk7CitzdGF0aWMgY29uc3QgY2hhciAqbm9uZW1wdHkgKGNvbnN0IGNoYXIgKnMpOwogdm9pZCBsdF9zZXRlbnYgKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKIGNoYXIgKmx0X2V4dGVuZF9zdHIgKGNvbnN0IGNoYXIgKm9yaWdfdmFsdWUsIGNvbnN0IGNoYXIgKmFkZCwgaW50IHRvX2VuZCk7Ci12b2lkIGx0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGNvbnN0IGNoYXIgKmFyZyk7Ci12b2lkIGx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChjb25zdCBjaGFyICphcmcpOwotdm9pZCBsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChjb25zdCBjaGFyICphcmcpOwotaW50IGx0X3NwbGl0X25hbWVfdmFsdWUgKGNvbnN0IGNoYXIgKmFyZywgY2hhcioqIG5hbWUsIGNoYXIqKiB2YWx1ZSk7CiB2b2lkIGx0X3VwZGF0ZV9leGVfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOwogdm9pZCBsdF91cGRhdGVfbGliX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKLQotc3RhdGljIGNvbnN0IGNoYXIgKnNjcmlwdF90ZXh0X3BhcnQxID0KK2NoYXIgKipwcmVwYXJlX3NwYXduIChjaGFyICoqYXJndik7Cit2b2lkIGx0X2R1bXBfc2NyaXB0IChGSUxFICpmKTsKIEVPRgogCi0JICAgIGZ1bmNfZW1pdF93cmFwcGVyX3BhcnQxIHllcyB8Ci0JICAgICAgICAkU0VEIC1lICdzL1woW1xcIl1cKS9cXFwxL2cnIFwKLQkgICAgICAgICAgICAgLWUgJ3MvXi8gICIvJyAtZSAncy8kL1xcbiIvJwotCSAgICBlY2hvICI7IgogCSAgICBjYXQgPDxFT0YKLQotc3RhdGljIGNvbnN0IGNoYXIgKnNjcmlwdF90ZXh0X3BhcnQyID0KLUVPRgotCSAgICBmdW5jX2VtaXRfd3JhcHBlcl9wYXJ0MiB5ZXMgfAotCSAgICAgICAgJFNFRCAtZSAncy9cKFtcXCJdXCkvXFxcMS9nJyBcCi0JICAgICAgICAgICAgIC1lICdzL14vICAiLycgLWUgJ3MvJC9cXG4iLycKLQkgICAgZWNobyAiOyIKLQotCSAgICBjYXQgPDxFT0YKLWNvbnN0IGNoYXIgKiBNQUdJQ19FWEUgPSAiJG1hZ2ljX2V4ZSI7Cit2b2xhdGlsZSBjb25zdCBjaGFyICogTUFHSUNfRVhFID0gIiRtYWdpY19leGUiOwogY29uc3QgY2hhciAqIExJQl9QQVRIX1ZBUk5BTUUgPSAiJHNobGlicGF0aF92YXIiOwogRU9GCiAKIAkgICAgaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHNobGlicGF0aF92YXIiICYmIHRlc3QgLW4gIiR0ZW1wX3JwYXRoIjsgdGhlbgotICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aGxpc3QgIiR0ZW1wX3JwYXRoIgorICAgICAgICAgICAgICBmdW5jX3RvX2hvc3RfcGF0aCAiJHRlbXBfcnBhdGgiCiAJICAgICAgY2F0IDw8RU9GCi1jb25zdCBjaGFyICogTElCX1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhsaXN0X3Jlc3VsdCI7Citjb25zdCBjaGFyICogTElCX1BBVEhfVkFMVUUgICA9ICIkZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IjsKIEVPRgogCSAgICBlbHNlCiAJICAgICAgY2F0IDw8IkVPRiIKQEAgLTMzMTQsMTAgKzQzMTYsMTAgQEAKIAkgICAgZmkKIAogCSAgICBpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7IHRoZW4KLSAgICAgICAgICAgICAgZnVuY190b19ob3N0X3BhdGhsaXN0ICIkZGxsc2VhcmNocGF0aDoiCisgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoICIkZGxsc2VhcmNocGF0aDoiCiAJICAgICAgY2F0IDw8RU9GCiBjb25zdCBjaGFyICogRVhFX1BBVEhfVkFSTkFNRSA9ICJQQVRIIjsKLWNvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aGxpc3RfcmVzdWx0IjsKK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiRmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiOwogRU9GCiAJICAgIGVsc2UKIAkgICAgICBjYXQgPDwiRU9GIgpAQCAtMzM0MCwyNCArNDM0MiwxMCBAQAogCSAgICBjYXQgPDwiRU9GIgogCiAjZGVmaW5lIExUV1JBUFBFUl9PUFRJT05fUFJFRklYICAgICAgICAgIi0tbHQtIgotI2RlZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWF9MRU5HVEggIDUKIAotc3RhdGljIGNvbnN0IHNpemVfdCBvcHRfcHJlZml4X2xlbiAgICAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIOwogc3RhdGljIGNvbnN0IGNoYXIgKmx0d3JhcHBlcl9vcHRpb25fcHJlZml4ID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVg7Ci0KIHN0YXRpYyBjb25zdCBjaGFyICpkdW1wc2NyaXB0X29wdCAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJkdW1wLXNjcmlwdCI7Ci0KLXN0YXRpYyBjb25zdCBzaXplX3QgZW52X3NldF9vcHRfbGVuICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCArIDc7Ci1zdGF0aWMgY29uc3QgY2hhciAqZW52X3NldF9vcHQgICAgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZW52LXNldCI7Ci0gIC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIHZhbHVlIG9mIGZvbyBpcyBzZXQgdG8gYmFyICovCi0KLXN0YXRpYyBjb25zdCBzaXplX3QgZW52X3ByZXBlbmRfb3B0X2xlbiA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYX0xFTkdUSCArIDExOwotc3RhdGljIGNvbnN0IGNoYXIgKmVudl9wcmVwZW5kX29wdCAgICAgID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVggImVudi1wcmVwZW5kIjsKLSAgLyogYXJndW1lbnQgaXMgcHV0ZW52LXN0eWxlICJmb289YmFyIiwgbmV3IHZhbHVlIG9mIGZvbyBpcyBiYXIke2Zvb30gKi8KLQotc3RhdGljIGNvbnN0IHNpemVfdCBlbnZfYXBwZW5kX29wdF9sZW4gID0gTFRXUkFQUEVSX09QVElPTl9QUkVGSVhfTEVOR1RIICsgMTA7Ci1zdGF0aWMgY29uc3QgY2hhciAqZW52X2FwcGVuZF9vcHQgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZW52LWFwcGVuZCI7Ci0gIC8qIGFyZ3VtZW50IGlzIHB1dGVudi1zdHlsZSAiZm9vPWJhciIsIG5ldyB2YWx1ZSBvZiBmb28gaXMgJHtmb299YmFyICovCitzdGF0aWMgY29uc3QgY2hhciAqZGVidWdfb3B0ICAgICAgICAgICAgPSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZGVidWciOwogCiBpbnQKIG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCkBAIC0zMzc0LDEwICs0MzYyLDEzIEBACiAgIGludCBpOwogCiAgIHByb2dyYW1fbmFtZSA9IChjaGFyICopIHhzdHJkdXAgKGJhc2VfbmFtZSAoYXJndlswXSkpOwotICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGFyZ3ZbMF0gICAgICA6ICVzXG4iLCBhcmd2WzBdKSk7Ci0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgcHJvZ3JhbV9uYW1lIDogJXNcbiIsIHByb2dyYW1fbmFtZSkpOworICBuZXdhcmd6ID0gWE1BTExPQyAoY2hhciAqLCBhcmdjICsgMSk7CiAKLSAgLyogdmVyeSBzaW1wbGUgYXJnIHBhcnNpbmc7IGRvbid0IHdhbnQgdG8gcmVseSBvbiBnZXRvcHQgKi8KKyAgLyogdmVyeSBzaW1wbGUgYXJnIHBhcnNpbmc7IGRvbid0IHdhbnQgdG8gcmVseSBvbiBnZXRvcHQKKyAgICogYWxzbywgY29weSBhbGwgbm9uIGN3cmFwcGVyIG9wdGlvbnMgdG8gbmV3YXJneiwgZXhjZXB0CisgICAqIGFyZ3pbMF0sIHdoaWNoIGlzIGhhbmRsZWQgZGlmZmVyZW50bHkKKyAgICovCisgIG5ld2FyZ2M9MDsKICAgZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykKICAgICB7CiAgICAgICBpZiAoc3RyY21wIChhcmd2W2ldLCBkdW1wc2NyaXB0X29wdCkgPT0gMCkKQEAgLTMzOTEsMjUgKzQzODIsNTcgQEAKIAkgICAgICBlc2FjCiAKIAkgICAgY2F0IDw8IkVPRiIKLQkgIHByaW50ZiAoIiVzIiwgc2NyaXB0X3RleHRfcGFydDEpOwotCSAgcHJpbnRmICgiJXMiLCBzY3JpcHRfdGV4dF9wYXJ0Mik7CisJICBsdF9kdW1wX3NjcmlwdCAoc3Rkb3V0KTsKIAkgIHJldHVybiAwOwogCX0KKyAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0sIGRlYnVnX29wdCkgPT0gMCkKKwl7CisgICAgICAgICAgbHRfZGVidWcgPSAxOworICAgICAgICAgIGNvbnRpbnVlOworCX0KKyAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0sIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4KSA9PSAwKQorICAgICAgICB7CisgICAgICAgICAgLyogaG93ZXZlciwgaWYgdGhlcmUgaXMgYW4gb3B0aW9uIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAorICAgICAgICAgICAgIG5hbWVzcGFjZSwgYnV0IGl0IGlzIG5vdCBvbmUgb2YgdGhlIG9uZXMgd2Uga25vdyBhYm91dCBhbmQKKyAgICAgICAgICAgICBoYXZlIGFscmVhZHkgZGVhbHQgd2l0aCwgYWJvdmUgKGlubHVkaW5nIGR1bXAtc2NyaXB0KSwgdGhlbgorICAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvci4gT3RoZXJ3aXNlLCB0YXJnZXRzIG1pZ2h0IGJlZ2luIHRvIGJlbGlldmUKKyAgICAgICAgICAgICB0aGV5IGFyZSBhbGxvd2VkIHRvIHVzZSBvcHRpb25zIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAorICAgICAgICAgICAgIG5hbWVzcGFjZS4gVGhlIGZpcnN0IHRpbWUgYW55IHVzZXIgY29tcGxhaW5zIGFib3V0IHRoaXMsIHdlJ2xsCisgICAgICAgICAgICAgbmVlZCB0byBtYWtlIExUV1JBUFBFUl9PUFRJT05fUFJFRklYIGEgY29uZmlndXJlLXRpbWUgb3B0aW9uCisgICAgICAgICAgICAgb3IgYSBjb25maWd1cmUuYWMtc2V0dGFibGUgdmFsdWUuCisgICAgICAgICAgICovCisgICAgICAgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywKKwkJICAgICJ1bnJlY29nbml6ZWQgJXMgb3B0aW9uOiAnJXMnIiwKKyAgICAgICAgICAgICAgICAgICAgbHR3cmFwcGVyX29wdGlvbl9wcmVmaXgsIGFyZ3ZbaV0pOworICAgICAgICB9CisgICAgICAvKiBvdGhlcndpc2UgLi4uICovCisgICAgICBuZXdhcmd6WysrbmV3YXJnY10gPSB4c3RyZHVwIChhcmd2W2ldKTsKICAgICB9CisgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IE5VTEw7CiAKLSAgbmV3YXJneiA9IFhNQUxMT0MgKGNoYXIgKiwgYXJnYyArIDEpOworRU9GCisJICAgIGNhdCA8PEVPRgorICAvKiBUaGUgR05VIGJhbm5lciBtdXN0IGJlIHRoZSBmaXJzdCBub24tZXJyb3IgZGVidWcgbWVzc2FnZSAqLworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAibGlidG9vbCB3cmFwcGVyIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTlxuIik7CitFT0YKKwkgICAgY2F0IDw8IkVPRiIKKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywgIihtYWluKSBhcmd2WzBdOiAlc1xuIiwgYXJndlswXSk7CisgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sICIobWFpbikgcHJvZ3JhbV9uYW1lOiAlc1xuIiwgcHJvZ3JhbV9uYW1lKTsKKwogICB0bXBfcGF0aHNwZWMgPSBmaW5kX2V4ZWN1dGFibGUgKGFyZ3ZbMF0pOwogICBpZiAodG1wX3BhdGhzcGVjID09IE5VTEwpCi0gICAgbHRfZmF0YWwgKCJDb3VsZG4ndCBmaW5kICVzIiwgYXJndlswXSk7Ci0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgZm91bmQgZXhlIChiZWZvcmUgc3ltbGluayBjaGFzZSkgYXQgOiAlc1xuIiwKLQkJCSAgdG1wX3BhdGhzcGVjKSk7CisgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgImNvdWxkbid0IGZpbmQgJXMiLCBhcmd2WzBdKTsKKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKKyAgICAgICAgICAgICAgICAgICIobWFpbikgZm91bmQgZXhlIChiZWZvcmUgc3ltbGluayBjaGFzZSkgYXQ6ICVzXG4iLAorCQkgIHRtcF9wYXRoc3BlYyk7CiAKICAgYWN0dWFsX2N3cmFwcGVyX3BhdGggPSBjaGFzZV9zeW1saW5rcyAodG1wX3BhdGhzcGVjKTsKLSAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWluKSBmb3VuZCBleGUgKGFmdGVyIHN5bWxpbmsgY2hhc2UpIGF0IDogJXNcbiIsCi0JCQkgIGFjdHVhbF9jd3JhcHBlcl9wYXRoKSk7CisgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisgICAgICAgICAgICAgICAgICAiKG1haW4pIGZvdW5kIGV4ZSAoYWZ0ZXIgc3ltbGluayBjaGFzZSkgYXQ6ICVzXG4iLAorCQkgIGFjdHVhbF9jd3JhcHBlcl9wYXRoKTsKICAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7CiAKLSAgYWN0dWFsX2N3cmFwcGVyX25hbWUgPSB4c3RyZHVwKCBiYXNlX25hbWUgKGFjdHVhbF9jd3JhcHBlcl9wYXRoKSk7CisgIGFjdHVhbF9jd3JhcHBlcl9uYW1lID0geHN0cmR1cCAoYmFzZV9uYW1lIChhY3R1YWxfY3dyYXBwZXJfcGF0aCkpOwogICBzdHJlbmR6YXAgKGFjdHVhbF9jd3JhcHBlcl9wYXRoLCBhY3R1YWxfY3dyYXBwZXJfbmFtZSk7CiAKICAgLyogd3JhcHBlciBuYW1lIHRyYW5zZm9ybXMgKi8KQEAgLTM0MjcsOCArNDQ1MCw5IEBACiAgIHRhcmdldF9uYW1lID0gdG1wX3BhdGhzcGVjOwogICB0bXBfcGF0aHNwZWMgPSAwOwogCi0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobWFpbikgbGlidG9vbCB0YXJnZXQgbmFtZTogJXNcbiIsCi0JCQkgIHRhcmdldF9uYW1lKSk7CisgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisJCSAgIihtYWluKSBsaWJ0b29sIHRhcmdldCBuYW1lOiAlc1xuIiwKKwkJICB0YXJnZXRfbmFtZSk7CiBFT0YKIAogCSAgICBjYXQgPDxFT0YKQEAgLTM0NzgsODAgKzQ1MDIsMTkgQEAKIAogICBsdF9zZXRlbnYgKCJCSU5fU0giLCAieHBnNCIpOyAvKiBmb3IgVHJ1NjQgKi8KICAgbHRfc2V0ZW52ICgiRFVBTENBU0UiLCAiMSIpOyAgLyogZm9yIE1TSyBzaCAqLwotICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZBUk5BTUUsIExJQl9QQVRIX1ZBTFVFKTsKKyAgLyogVXBkYXRlIHRoZSBETEwgc2VhcmNocGF0aC4gIEVYRV9QQVRIX1ZBTFVFICgkZGxsc2VhcmNocGF0aCkgbXVzdAorICAgICBiZSBwcmVwZW5kZWQgYmVmb3JlICh0aGF0IGlzLCBhcHBlYXIgYWZ0ZXIpIExJQl9QQVRIX1ZBTFVFICgkdGVtcF9ycGF0aCkKKyAgICAgYmVjYXVzZSBvbiBXaW5kb3dzLCBib3RoICpfVkFSTkFNRXMgYXJlIFBBVEggYnV0IHVuaW5zdGFsbGVkCisgICAgIGxpYnJhcmllcyBtdXN0IGNvbWUgZmlyc3QuICovCiAgIGx0X3VwZGF0ZV9leGVfcGF0aCAoRVhFX1BBVEhfVkFSTkFNRSwgRVhFX1BBVEhfVkFMVUUpOworICBsdF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZBUk5BTUUsIExJQl9QQVRIX1ZBTFVFKTsKIAotICBuZXdhcmdjPTA7Ci0gIGZvciAoaSA9IDE7IGkgPCBhcmdjOyBpKyspCi0gICAgewotICAgICAgaWYgKHN0cm5jbXAgKGFyZ3ZbaV0sIGVudl9zZXRfb3B0LCBlbnZfc2V0X29wdF9sZW4pID09IDApCi0gICAgICAgIHsKLSAgICAgICAgICBpZiAoYXJndltpXVtlbnZfc2V0X29wdF9sZW5dID09ICc9JykKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgY29uc3QgY2hhciAqcCA9IGFyZ3ZbaV0gKyBlbnZfc2V0X29wdF9sZW4gKyAxOwotICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfc2V0IChwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICBlbHNlIGlmIChhcmd2W2ldW2Vudl9zZXRfb3B0X2xlbl0gPT0gJ1wwJyAmJiBpICsgMSA8IGFyZ2MpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGFyZ3ZbKytpXSk7IC8qIGRvbid0IGNvcHkgKi8KLSAgICAgICAgICAgIH0KLSAgICAgICAgICBlbHNlCi0gICAgICAgICAgICBsdF9mYXRhbCAoIiVzIG1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQiLCBlbnZfc2V0X29wdCk7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfcHJlcGVuZF9vcHQsIGVudl9wcmVwZW5kX29wdF9sZW4pID09IDApCi0gICAgICAgIHsKLSAgICAgICAgICBpZiAoYXJndltpXVtlbnZfcHJlcGVuZF9vcHRfbGVuXSA9PSAnPScpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAgPSBhcmd2W2ldICsgZW52X3ByZXBlbmRfb3B0X2xlbiArIDE7Ci0gICAgICAgICAgICAgIGx0X29wdF9wcm9jZXNzX2Vudl9wcmVwZW5kIChwKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICBlbHNlIGlmIChhcmd2W2ldW2Vudl9wcmVwZW5kX29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdjKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfcHJlcGVuZCAoYXJndlsrK2ldKTsgLyogZG9uJ3QgY29weSAqLwotICAgICAgICAgICAgfQotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGx0X2ZhdGFsICgiJXMgbWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCIsIGVudl9wcmVwZW5kX29wdCk7Ci0gICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgIGlmIChzdHJuY21wIChhcmd2W2ldLCBlbnZfYXBwZW5kX29wdCwgZW52X2FwcGVuZF9vcHRfbGVuKSA9PSAwKQotICAgICAgICB7Ci0gICAgICAgICAgaWYgKGFyZ3ZbaV1bZW52X2FwcGVuZF9vcHRfbGVuXSA9PSAnPScpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnAgPSBhcmd2W2ldICsgZW52X2FwcGVuZF9vcHRfbGVuICsgMTsKLSAgICAgICAgICAgICAgbHRfb3B0X3Byb2Nlc3NfZW52X2FwcGVuZCAocCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZSBpZiAoYXJndltpXVtlbnZfYXBwZW5kX29wdF9sZW5dID09ICdcMCcgJiYgaSArIDEgPCBhcmdjKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICBsdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChhcmd2WysraV0pOyAvKiBkb24ndCBjb3B5ICovCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgbHRfZmF0YWwgKCIlcyBtaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50IiwgZW52X2FwcGVuZF9vcHQpOwotICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICBpZiAoc3RybmNtcCAoYXJndltpXSwgbHR3cmFwcGVyX29wdGlvbl9wcmVmaXgsIG9wdF9wcmVmaXhfbGVuKSA9PSAwKQotICAgICAgICB7Ci0gICAgICAgICAgLyogaG93ZXZlciwgaWYgdGhlcmUgaXMgYW4gb3B0aW9uIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAotICAgICAgICAgICAgIG5hbWVzcGFjZSwgYnV0IGl0IGlzIG5vdCBvbmUgb2YgdGhlIG9uZXMgd2Uga25vdyBhYm91dCBhbmQKLSAgICAgICAgICAgICBoYXZlIGFscmVhZHkgZGVhbHQgd2l0aCwgYWJvdmUgKGlubHVkaW5nIGR1bXAtc2NyaXB0KSwgdGhlbgotICAgICAgICAgICAgIHJlcG9ydCBhbiBlcnJvci4gT3RoZXJ3aXNlLCB0YXJnZXRzIG1pZ2h0IGJlZ2luIHRvIGJlbGlldmUKLSAgICAgICAgICAgICB0aGV5IGFyZSBhbGxvd2VkIHRvIHVzZSBvcHRpb25zIGluIHRoZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWAotICAgICAgICAgICAgIG5hbWVzcGFjZS4gVGhlIGZpcnN0IHRpbWUgYW55IHVzZXIgY29tcGxhaW5zIGFib3V0IHRoaXMsIHdlJ2xsCi0gICAgICAgICAgICAgbmVlZCB0byBtYWtlIExUV1JBUFBFUl9PUFRJT05fUFJFRklYIGEgY29uZmlndXJlLXRpbWUgb3B0aW9uCi0gICAgICAgICAgICAgb3IgYSBjb25maWd1cmUuYWMtc2V0dGFibGUgdmFsdWUuCi0gICAgICAgICAgICovCi0gICAgICAgICAgbHRfZmF0YWwgKCJVbnJlY29nbml6ZWQgb3B0aW9uIGluICVzIG5hbWVzcGFjZTogJyVzJyIsCi0gICAgICAgICAgICAgICAgICAgIGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBhcmd2W2ldKTsKLSAgICAgICAgfQotICAgICAgLyogb3RoZXJ3aXNlIC4uLiAqLwotICAgICAgbmV3YXJnelsrK25ld2FyZ2NdID0geHN0cmR1cCAoYXJndltpXSk7Ci0gICAgfQotICBuZXdhcmd6WysrbmV3YXJnY10gPSBOVUxMOwotCi0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAgICAgKCgiKG1haW4pIGx0X2FyZ3ZfemVybyA6ICVzXG4iLCAobHRfYXJndl96ZXJvID8gbHRfYXJndl96ZXJvIDogIjxOVUxMPiIpKSk7CisgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sICIobWFpbikgbHRfYXJndl96ZXJvOiAlc1xuIiwKKwkJICBub25udWxsIChsdF9hcmd2X3plcm8pKTsKICAgZm9yIChpID0gMDsgaSA8IG5ld2FyZ2M7IGkrKykKICAgICB7Ci0gICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIG5ld2FyZ3pbJWRdICAgOiAlc1xuIiwgaSwgKG5ld2FyZ3pbaV0gPyBuZXdhcmd6W2ldIDogIjxOVUxMPiIpKSk7CisgICAgICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKG1haW4pIG5ld2FyZ3pbJWRdOiAlc1xuIiwKKwkJICAgICAgaSwgbm9ubnVsbCAobmV3YXJneltpXSkpOwogICAgIH0KIAogRU9GCkBAIC0zNTYwLDExICs0NTIzLDE0IEBACiAJICAgICAgbWluZ3cqKQogCQljYXQgPDwiRU9GIgogICAvKiBleGVjdiBkb2Vzbid0IGFjdHVhbGx5IHdvcmsgb24gbWluZ3cgYXMgZXhwZWN0ZWQgb24gdW5peCAqLworICBuZXdhcmd6ID0gcHJlcGFyZV9zcGF3biAobmV3YXJneik7CiAgIHJ2YWwgPSBfc3Bhd252IChfUF9XQUlULCBsdF9hcmd2X3plcm8sIChjb25zdCBjaGFyICogY29uc3QgKikgbmV3YXJneik7CiAgIGlmIChydmFsID09IC0xKQogICAgIHsKICAgICAgIC8qIGZhaWxlZCB0byBzdGFydCBwcm9jZXNzICovCi0gICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKG1haW4pIGZhaWxlZCB0byBsYXVuY2ggdGFyZ2V0IFwiJXNcIjogZXJybm8gPSAlZFxuIiwgbHRfYXJndl96ZXJvLCBlcnJubykpOworICAgICAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKKwkJICAgICAgIihtYWluKSBmYWlsZWQgdG8gbGF1bmNoIHRhcmdldCBcIiVzXCI6ICVzXG4iLAorCQkgICAgICBsdF9hcmd2X3plcm8sIG5vbm51bGwgKHN0cmVycm9yIChlcnJubykpKTsKICAgICAgIHJldHVybiAxMjc7CiAgICAgfQogICByZXR1cm4gcnZhbDsKQEAgLTM1ODYsNyArNDU1Miw3IEBACiB7CiAgIHZvaWQgKnAgPSAodm9pZCAqKSBtYWxsb2MgKG51bSk7CiAgIGlmICghcCkKLSAgICBsdF9mYXRhbCAoIk1lbW9yeSBleGhhdXN0ZWQiKTsKKyAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLCAibWVtb3J5IGV4aGF1c3RlZCIpOwogCiAgIHJldHVybiBwOwogfQpAQCAtMzYyMCw4ICs0NTg2LDggQEAKIHsKICAgc3RydWN0IHN0YXQgc3Q7CiAKLSAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihjaGVja19leGVjdXRhYmxlKSAgOiAlc1xuIiwKLQkJCSAgcGF0aCA/ICgqcGF0aCA/IHBhdGggOiAiRU1QVFkhIikgOiAiTlVMTCEiKSk7CisgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sICIoY2hlY2tfZXhlY3V0YWJsZSk6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgbm9uZW1wdHkgKHBhdGgpKTsKICAgaWYgKCghcGF0aCkgfHwgKCEqcGF0aCkpCiAgICAgcmV0dXJuIDA7CiAKQEAgLTM2MzgsOCArNDYwNCw4IEBACiAgIGludCBydmFsID0gMDsKICAgc3RydWN0IHN0YXQgc3Q7CiAKLSAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihtYWtlX2V4ZWN1dGFibGUpICAgOiAlc1xuIiwKLQkJCSAgcGF0aCA/ICgqcGF0aCA/IHBhdGggOiAiRU1QVFkhIikgOiAiTlVMTCEiKSk7CisgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sICIobWFrZV9leGVjdXRhYmxlKTogJXNcbiIsCisgICAgICAgICAgICAgICAgICBub25lbXB0eSAocGF0aCkpOwogICBpZiAoKCFwYXRoKSB8fCAoISpwYXRoKSkKICAgICByZXR1cm4gMDsKIApAQCAtMzY2NSw4ICs0NjMxLDggQEAKICAgaW50IHRtcF9sZW47CiAgIGNoYXIgKmNvbmNhdF9uYW1lOwogCi0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIoZmluZF9leGVjdXRhYmxlKSAgIDogJXNcbiIsCi0JCQkgIHdyYXBwZXIgPyAoKndyYXBwZXIgPyB3cmFwcGVyIDogIkVNUFRZISIpIDogIk5VTEwhIikpOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKGZpbmRfZXhlY3V0YWJsZSk6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgbm9uZW1wdHkgKHdyYXBwZXIpKTsKIAogICBpZiAoKHdyYXBwZXIgPT0gTlVMTCkgfHwgKCp3cmFwcGVyID09ICdcMCcpKQogICAgIHJldHVybiBOVUxMOwpAQCAtMzcxOSw3ICs0Njg1LDggQEAKIAkJewogCQkgIC8qIGVtcHR5IHBhdGg6IGN1cnJlbnQgZGlyZWN0b3J5ICovCiAJCSAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxMKQotCQkgICAgbHRfZmF0YWwgKCJnZXRjd2QgZmFpbGVkIik7CisJCSAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLCAiZ2V0Y3dkIGZhaWxlZDogJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ubnVsbCAoc3RyZXJyb3IgKGVycm5vKSkpOwogCQkgIHRtcF9sZW4gPSBzdHJsZW4gKHRtcCk7CiAJCSAgY29uY2F0X25hbWUgPQogCQkgICAgWE1BTExPQyAoY2hhciwgdG1wX2xlbiArIDEgKyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7CkBAIC0zNzQ0LDcgKzQ3MTEsOCBAQAogICAgIH0KICAgLyogUmVsYXRpdmUgcGF0aCB8IG5vdCBmb3VuZCBpbiBwYXRoOiBwcmVwZW5kIGN3ZCAqLwogICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCi0gICAgbHRfZmF0YWwgKCJnZXRjd2QgZmFpbGVkIik7CisgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgImdldGN3ZCBmYWlsZWQ6ICVzIiwKKyAgICAgICAgICAgICAgbm9ubnVsbCAoc3RyZXJyb3IgKGVycm5vKSkpOwogICB0bXBfbGVuID0gc3RybGVuICh0bXApOwogICBjb25jYXRfbmFtZSA9IFhNQUxMT0MgKGNoYXIsIHRtcF9sZW4gKyAxICsgc3RybGVuICh3cmFwcGVyKSArIDEpOwogICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRtcF9sZW4pOwpAQCAtMzc3MCw4ICs0NzM4LDkgQEAKICAgaW50IGhhc19zeW1saW5rcyA9IDA7CiAgIHdoaWxlIChzdHJsZW4gKHRtcF9wYXRoc3BlYykgJiYgIWhhc19zeW1saW5rcykKICAgICB7Ci0gICAgICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiY2hlY2tpbmcgcGF0aCBjb21wb25lbnQgZm9yIHN5bWxpbmtzOiAlc1xuIiwKLQkJCSAgICAgIHRtcF9wYXRoc3BlYykpOworICAgICAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKKwkJICAgICAgImNoZWNraW5nIHBhdGggY29tcG9uZW50IGZvciBzeW1saW5rczogJXNcbiIsCisJCSAgICAgIHRtcF9wYXRoc3BlYyk7CiAgICAgICBpZiAobHN0YXQgKHRtcF9wYXRoc3BlYywgJnMpID09IDApCiAJewogCSAgaWYgKFNfSVNMTksgKHMuc3RfbW9kZSkgIT0gMCkKQEAgLTM3OTMsOCArNDc2Miw5IEBACiAJfQogICAgICAgZWxzZQogCXsKLQkgIGNoYXIgKmVycnN0ciA9IHN0cmVycm9yIChlcnJubyk7Ci0JICBsdF9mYXRhbCAoIkVycm9yIGFjY2Vzc2luZyBmaWxlICVzICglcykiLCB0bXBfcGF0aHNwZWMsIGVycnN0cik7CisJICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLAorCQkgICAgImVycm9yIGFjY2Vzc2luZyBmaWxlIFwiJXNcIjogJXMiLAorCQkgICAgdG1wX3BhdGhzcGVjLCBub25udWxsIChzdHJlcnJvciAoZXJybm8pKSk7CiAJfQogICAgIH0KICAgWEZSRUUgKHRtcF9wYXRoc3BlYyk7CkBAIC0zODA3LDcgKzQ3NzcsOCBAQAogICB0bXBfcGF0aHNwZWMgPSByZWFscGF0aCAocGF0aHNwZWMsIGJ1Zik7CiAgIGlmICh0bXBfcGF0aHNwZWMgPT0gMCkKICAgICB7Ci0gICAgICBsdF9mYXRhbCAoIkNvdWxkIG5vdCBmb2xsb3cgc3ltbGlua3MgZm9yICVzIiwgcGF0aHNwZWMpOworICAgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywKKwkJImNvdWxkIG5vdCBmb2xsb3cgc3ltbGlua3MgZm9yICVzIiwgcGF0aHNwZWMpOwogICAgIH0KICAgcmV0dXJuIHhzdHJkdXAgKHRtcF9wYXRoc3BlYyk7CiAjZW5kaWYKQEAgLTM4MzMsMTEgKzQ4MDQsMjUgQEAKICAgcmV0dXJuIHN0cjsKIH0KIAordm9pZAorbHRfZGVidWdwcmludGYgKGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLCBjb25zdCBjaGFyICpmbXQsIC4uLikKK3sKKyAgdmFfbGlzdCBhcmdzOworICBpZiAobHRfZGVidWcpCisgICAgeworICAgICAgKHZvaWQpIGZwcmludGYgKHN0ZGVyciwgIiVzOiVzOiVkOiAiLCBwcm9ncmFtX25hbWUsIGZpbGUsIGxpbmUpOworICAgICAgdmFfc3RhcnQgKGFyZ3MsIGZtdCk7CisgICAgICAodm9pZCkgdmZwcmludGYgKHN0ZGVyciwgZm10LCBhcmdzKTsKKyAgICAgIHZhX2VuZCAoYXJncyk7CisgICAgfQorfQorCiBzdGF0aWMgdm9pZAotbHRfZXJyb3JfY29yZSAoaW50IGV4aXRfc3RhdHVzLCBjb25zdCBjaGFyICptb2RlLAorbHRfZXJyb3JfY29yZSAoaW50IGV4aXRfc3RhdHVzLCBjb25zdCBjaGFyICpmaWxlLAorCSAgICAgICBpbnQgbGluZSwgY29uc3QgY2hhciAqbW9kZSwKIAkgICAgICAgY29uc3QgY2hhciAqbWVzc2FnZSwgdmFfbGlzdCBhcCkKIHsKLSAgZnByaW50ZiAoc3RkZXJyLCAiJXM6ICVzOiAiLCBwcm9ncmFtX25hbWUsIG1vZGUpOworICBmcHJpbnRmIChzdGRlcnIsICIlczolczolZDogJXM6ICIsIHByb2dyYW1fbmFtZSwgZmlsZSwgbGluZSwgbW9kZSk7CiAgIHZmcHJpbnRmIChzdGRlcnIsIG1lc3NhZ2UsIGFwKTsKICAgZnByaW50ZiAoc3RkZXJyLCAiLlxuIik7CiAKQEAgLTM4NDYsMjAgKzQ4MzEsMzIgQEAKIH0KIAogdm9pZAotbHRfZmF0YWwgKGNvbnN0IGNoYXIgKm1lc3NhZ2UsIC4uLikKK2x0X2ZhdGFsIChjb25zdCBjaGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKQogewogICB2YV9saXN0IGFwOwogICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOwotICBsdF9lcnJvcl9jb3JlIChFWElUX0ZBSUxVUkUsICJGQVRBTCIsIG1lc3NhZ2UsIGFwKTsKKyAgbHRfZXJyb3JfY29yZSAoRVhJVF9GQUlMVVJFLCBmaWxlLCBsaW5lLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7CiAgIHZhX2VuZCAoYXApOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqCitub25udWxsIChjb25zdCBjaGFyICpzKQoreworICByZXR1cm4gcyA/IHMgOiAiKG51bGwpIjsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKgorbm9uZW1wdHkgKGNvbnN0IGNoYXIgKnMpCit7CisgIHJldHVybiAocyAmJiAhKnMpID8gIihlbXB0eSkiIDogbm9ubnVsbCAocyk7Cit9CisKIHZvaWQKIGx0X3NldGVudiAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUpCiB7Ci0gIExUV1JBUFBFUl9ERUJVR1BSSU5URiAoKCIobHRfc2V0ZW52KSBzZXR0aW5nICclcycgdG8gJyVzJ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAorCQkgICIobHRfc2V0ZW52KSBzZXR0aW5nICclcycgdG8gJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgIG5vbm51bGwgKG5hbWUpLCBub25udWxsICh2YWx1ZSkpOwogICB7CiAjaWZkZWYgSEFWRV9TRVRFTlYKICAgICAvKiBhbHdheXMgbWFrZSBhIGNvcHksIGZvciBjb25zaXN0ZW5jeSB3aXRoICFIQVZFX1NFVEVOViAqLwpAQCAtMzkwNCw5NSArNDkwMSwxMiBAQAogICByZXR1cm4gbmV3X3ZhbHVlOwogfQogCi1pbnQKLWx0X3NwbGl0X25hbWVfdmFsdWUgKGNvbnN0IGNoYXIgKmFyZywgY2hhcioqIG5hbWUsIGNoYXIqKiB2YWx1ZSkKLXsKLSAgY29uc3QgY2hhciAqcDsKLSAgaW50IGxlbjsKLSAgaWYgKCFhcmcgfHwgISphcmcpCi0gICAgcmV0dXJuIDE7Ci0KLSAgcCA9IHN0cmNociAoYXJnLCAoaW50KSc9Jyk7Ci0KLSAgaWYgKCFwKQotICAgIHJldHVybiAxOwotCi0gICp2YWx1ZSA9IHhzdHJkdXAgKCsrcCk7Ci0KLSAgbGVuID0gc3RybGVuIChhcmcpIC0gc3RybGVuICgqdmFsdWUpOwotICAqbmFtZSA9IFhNQUxMT0MgKGNoYXIsIGxlbik7Ci0gIHN0cm5jcHkgKCpuYW1lLCBhcmcsIGxlbi0xKTsKLSAgKCpuYW1lKVtsZW4gLSAxXSA9ICdcMCc7Ci0KLSAgcmV0dXJuIDA7Ci19Ci0KLXZvaWQKLWx0X29wdF9wcm9jZXNzX2Vudl9zZXQgKGNvbnN0IGNoYXIgKmFyZykKLXsKLSAgY2hhciAqbmFtZSA9IE5VTEw7Ci0gIGNoYXIgKnZhbHVlID0gTlVMTDsKLQotICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQotICAgIHsKLSAgICAgIFhGUkVFIChuYW1lKTsKLSAgICAgIFhGUkVFICh2YWx1ZSk7Ci0gICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZfc2V0X29wdCwgYXJnKTsKLSAgICB9Ci0KLSAgbHRfc2V0ZW52IChuYW1lLCB2YWx1ZSk7Ci0gIFhGUkVFIChuYW1lKTsKLSAgWEZSRUUgKHZhbHVlKTsKLX0KLQotdm9pZAotbHRfb3B0X3Byb2Nlc3NfZW52X3ByZXBlbmQgKGNvbnN0IGNoYXIgKmFyZykKLXsKLSAgY2hhciAqbmFtZSA9IE5VTEw7Ci0gIGNoYXIgKnZhbHVlID0gTlVMTDsKLSAgY2hhciAqbmV3X3ZhbHVlID0gTlVMTDsKLQotICBpZiAobHRfc3BsaXRfbmFtZV92YWx1ZSAoYXJnLCAmbmFtZSwgJnZhbHVlKSAhPSAwKQotICAgIHsKLSAgICAgIFhGUkVFIChuYW1lKTsKLSAgICAgIFhGUkVFICh2YWx1ZSk7Ci0gICAgICBsdF9mYXRhbCAoImJhZCBhcmd1bWVudCBmb3IgJXM6ICclcyciLCBlbnZfcHJlcGVuZF9vcHQsIGFyZyk7Ci0gICAgfQotCi0gIG5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAwKTsKLSAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOwotICBYRlJFRSAobmV3X3ZhbHVlKTsKLSAgWEZSRUUgKG5hbWUpOwotICBYRlJFRSAodmFsdWUpOwotfQotCi12b2lkCi1sdF9vcHRfcHJvY2Vzc19lbnZfYXBwZW5kIChjb25zdCBjaGFyICphcmcpCi17Ci0gIGNoYXIgKm5hbWUgPSBOVUxMOwotICBjaGFyICp2YWx1ZSA9IE5VTEw7Ci0gIGNoYXIgKm5ld192YWx1ZSA9IE5VTEw7Ci0KLSAgaWYgKGx0X3NwbGl0X25hbWVfdmFsdWUgKGFyZywgJm5hbWUsICZ2YWx1ZSkgIT0gMCkKLSAgICB7Ci0gICAgICBYRlJFRSAobmFtZSk7Ci0gICAgICBYRlJFRSAodmFsdWUpOwotICAgICAgbHRfZmF0YWwgKCJiYWQgYXJndW1lbnQgZm9yICVzOiAnJXMnIiwgZW52X2FwcGVuZF9vcHQsIGFyZyk7Ci0gICAgfQotCi0gIG5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZhbHVlLCAxKTsKLSAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOwotICBYRlJFRSAobmV3X3ZhbHVlKTsKLSAgWEZSRUUgKG5hbWUpOwotICBYRlJFRSAodmFsdWUpOwotfQotCiB2b2lkCiBsdF91cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKQogewotICBMVFdSQVBQRVJfREVCVUdQUklOVEYgKCgiKGx0X3VwZGF0ZV9leGVfcGF0aCkgbW9kaWZ5aW5nICclcycgYnkgcHJlcGVuZGluZyAnJXMnXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZSA/IG5hbWUgOiAiPE5VTEw+IiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSA/IHZhbHVlIDogIjxOVUxMPiIpKSk7CisgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCisJCSAgIihsdF91cGRhdGVfZXhlX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBlbmRpbmcgJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgIG5vbm51bGwgKG5hbWUpLCBub25udWxsICh2YWx1ZSkpOwogCiAgIGlmIChuYW1lICYmICpuYW1lICYmIHZhbHVlICYmICp2YWx1ZSkKICAgICB7CkBAIC00MDExLDkgKzQ5MjUsOSBAQAogdm9pZAogbHRfdXBkYXRlX2xpYl9wYXRoIChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKIHsKLSAgTFRXUkFQUEVSX0RFQlVHUFJJTlRGICgoIihsdF91cGRhdGVfbGliX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBlbmRpbmcgJyVzJ1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUgPyBuYW1lIDogIjxOVUxMPiIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgPyB2YWx1ZSA6ICI8TlVMTD4iKSkpOworICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLAorCQkgICIobHRfdXBkYXRlX2xpYl9wYXRoKSBtb2RpZnlpbmcgJyVzJyBieSBwcmVwZW5kaW5nICclcydcbiIsCisgICAgICAgICAgICAgICAgICBub25udWxsIChuYW1lKSwgbm9ubnVsbCAodmFsdWUpKTsKIAogICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUpCiAgICAgewpAQCAtNDAyMywxMSArNDkzNywxNTggQEAKICAgICB9CiB9CiAKK0VPRgorCSAgICBjYXNlICRob3N0X29zIGluCisJICAgICAgbWluZ3cqKQorCQljYXQgPDwiRU9GIgogCisvKiBQcmVwYXJlcyBhbiBhcmd1bWVudCB2ZWN0b3IgYmVmb3JlIGNhbGxpbmcgc3Bhd24oKS4KKyAgIE5vdGUgdGhhdCBzcGF3bigpIGRvZXMgbm90IGJ5IGl0c2VsZiBjYWxsIHRoZSBjb21tYW5kIGludGVycHJldGVyCisgICAgIChnZXRlbnYgKCJDT01TUEVDIikgIT0gTlVMTCA/IGdldGVudiAoIkNPTVNQRUMiKSA6CisgICAgICAoeyBPU1ZFUlNJT05JTkZPIHY7IHYuZHdPU1ZlcnNpb25JbmZvU2l6ZSA9IHNpemVvZihPU1ZFUlNJT05JTkZPKTsKKyAgICAgICAgIEdldFZlcnNpb25FeCgmdik7CisgICAgICAgICB2LmR3UGxhdGZvcm1JZCA9PSBWRVJfUExBVEZPUk1fV0lOMzJfTlQ7CisgICAgICB9KSA/ICJjbWQuZXhlIiA6ICJjb21tYW5kLmNvbSIpLgorICAgSW5zdGVhZCBpdCBzaW1wbHkgY29uY2F0ZW5hdGVzIHRoZSBhcmd1bWVudHMsIHNlcGFyYXRlZCBieSAnICcsIGFuZCBjYWxscworICAgQ3JlYXRlUHJvY2VzcygpLiAgV2UgbXVzdCBxdW90ZSB0aGUgYXJndW1lbnRzIHNpbmNlIFdpbjMyIENyZWF0ZVByb2Nlc3MoKQorICAgaW50ZXJwcmV0cyBjaGFyYWN0ZXJzIGxpa2UgJyAnLCAnXHQnLCAnXFwnLCAnIicgKGJ1dCBub3QgJzwnIGFuZCAnPicpIGluIGEKKyAgIHNwZWNpYWwgd2F5OgorICAgLSBTcGFjZSBhbmQgdGFiIGFyZSBpbnRlcnByZXRlZCBhcyBkZWxpbWl0ZXJzLiBUaGV5IGFyZSBub3QgdHJlYXRlZCBhcworICAgICBkZWxpbWl0ZXJzIGlmIHRoZXkgYXJlIHN1cnJvdW5kZWQgYnkgZG91YmxlIHF1b3RlczogIi4uLiIuCisgICAtIFVuZXNjYXBlZCBkb3VibGUgcXVvdGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIGlucHV0LiBUaGVpciBvbmx5IGVmZmVjdCBpcworICAgICB0aGF0IHdpdGhpbiBkb3VibGUgcXVvdGVzLCBzcGFjZSBhbmQgdGFiIGFyZSB0cmVhdGVkIGxpa2Ugbm9ybWFsCisgICAgIGNoYXJhY3RlcnMuCisgICAtIEJhY2tzbGFzaGVzIG5vdCBmb2xsb3dlZCBieSBkb3VibGUgcXVvdGVzIGFyZSBub3Qgc3BlY2lhbC4KKyAgIC0gQnV0IDIqbisxIGJhY2tzbGFzaGVzIGZvbGxvd2VkIGJ5IGEgZG91YmxlIHF1b3RlIGJlY29tZQorICAgICBuIGJhY2tzbGFzaGVzIGZvbGxvd2VkIGJ5IGEgZG91YmxlIHF1b3RlIChuID49IDApOgorICAgICAgIFwiIC0+ICIKKyAgICAgICBcXFwiIC0+IFwiCisgICAgICAgXFxcXFwiIC0+IFxcIgorICovCisjZGVmaW5lIFNIRUxMX1NQRUNJQUxfQ0hBUlMgIlwiXFwgXDAwMVwwMDJcMDAzXDAwNFwwMDVcMDA2XDAwN1wwMTBcMDExXDAxMlwwMTNcMDE0XDAxNVwwMTZcMDE3XDAyMFwwMjFcMDIyXDAyM1wwMjRcMDI1XDAyNlwwMjdcMDMwXDAzMVwwMzJcMDMzXDAzNFwwMzVcMDM2XDAzNyIKKyNkZWZpbmUgU0hFTExfU1BBQ0VfQ0hBUlMgIiBcMDAxXDAwMlwwMDNcMDA0XDAwNVwwMDZcMDA3XDAxMFwwMTFcMDEyXDAxM1wwMTRcMDE1XDAxNlwwMTdcMDIwXDAyMVwwMjJcMDIzXDAyNFwwMjVcMDI2XDAyN1wwMzBcMDMxXDAzMlwwMzNcMDM0XDAzNVwwMzZcMDM3IgorY2hhciAqKgorcHJlcGFyZV9zcGF3biAoY2hhciAqKmFyZ3YpCit7CisgIHNpemVfdCBhcmdjOworICBjaGFyICoqbmV3X2FyZ3Y7CisgIHNpemVfdCBpOworCisgIC8qIENvdW50IG51bWJlciBvZiBhcmd1bWVudHMuICAqLworICBmb3IgKGFyZ2MgPSAwOyBhcmd2W2FyZ2NdICE9IE5VTEw7IGFyZ2MrKykKKyAgICA7CisKKyAgLyogQWxsb2NhdGUgbmV3IGFyZ3VtZW50IHZlY3Rvci4gICovCisgIG5ld19hcmd2ID0gWE1BTExPQyAoY2hhciAqLCBhcmdjICsgMSk7CisKKyAgLyogUHV0IHF1b3RlZCBhcmd1bWVudHMgaW50byB0aGUgbmV3IGFyZ3VtZW50IHZlY3Rvci4gICovCisgIGZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspCisgICAgeworICAgICAgY29uc3QgY2hhciAqc3RyaW5nID0gYXJndltpXTsKKworICAgICAgaWYgKHN0cmluZ1swXSA9PSAnXDAnKQorCW5ld19hcmd2W2ldID0geHN0cmR1cCAoIlwiXCIiKTsKKyAgICAgIGVsc2UgaWYgKHN0cnBicmsgKHN0cmluZywgU0hFTExfU1BFQ0lBTF9DSEFSUykgIT0gTlVMTCkKKwl7CisJICBpbnQgcXVvdGVfYXJvdW5kID0gKHN0cnBicmsgKHN0cmluZywgU0hFTExfU1BBQ0VfQ0hBUlMpICE9IE5VTEwpOworCSAgc2l6ZV90IGxlbmd0aDsKKwkgIHVuc2lnbmVkIGludCBiYWNrc2xhc2hlczsKKwkgIGNvbnN0IGNoYXIgKnM7CisJICBjaGFyICpxdW90ZWRfc3RyaW5nOworCSAgY2hhciAqcDsKKworCSAgbGVuZ3RoID0gMDsKKwkgIGJhY2tzbGFzaGVzID0gMDsKKwkgIGlmIChxdW90ZV9hcm91bmQpCisJICAgIGxlbmd0aCsrOworCSAgZm9yIChzID0gc3RyaW5nOyAqcyAhPSAnXDAnOyBzKyspCisJICAgIHsKKwkgICAgICBjaGFyIGMgPSAqczsKKwkgICAgICBpZiAoYyA9PSAnIicpCisJCWxlbmd0aCArPSBiYWNrc2xhc2hlcyArIDE7CisJICAgICAgbGVuZ3RoKys7CisJICAgICAgaWYgKGMgPT0gJ1xcJykKKwkJYmFja3NsYXNoZXMrKzsKKwkgICAgICBlbHNlCisJCWJhY2tzbGFzaGVzID0gMDsKKwkgICAgfQorCSAgaWYgKHF1b3RlX2Fyb3VuZCkKKwkgICAgbGVuZ3RoICs9IGJhY2tzbGFzaGVzICsgMTsKKworCSAgcXVvdGVkX3N0cmluZyA9IFhNQUxMT0MgKGNoYXIsIGxlbmd0aCArIDEpOworCisJICBwID0gcXVvdGVkX3N0cmluZzsKKwkgIGJhY2tzbGFzaGVzID0gMDsKKwkgIGlmIChxdW90ZV9hcm91bmQpCisJICAgICpwKysgPSAnIic7CisJICBmb3IgKHMgPSBzdHJpbmc7ICpzICE9ICdcMCc7IHMrKykKKwkgICAgeworCSAgICAgIGNoYXIgYyA9ICpzOworCSAgICAgIGlmIChjID09ICciJykKKwkJeworCQkgIHVuc2lnbmVkIGludCBqOworCQkgIGZvciAoaiA9IGJhY2tzbGFzaGVzICsgMTsgaiA+IDA7IGotLSkKKwkJICAgICpwKysgPSAnXFwnOworCQl9CisJICAgICAgKnArKyA9IGM7CisJICAgICAgaWYgKGMgPT0gJ1xcJykKKwkJYmFja3NsYXNoZXMrKzsKKwkgICAgICBlbHNlCisJCWJhY2tzbGFzaGVzID0gMDsKKwkgICAgfQorCSAgaWYgKHF1b3RlX2Fyb3VuZCkKKwkgICAgeworCSAgICAgIHVuc2lnbmVkIGludCBqOworCSAgICAgIGZvciAoaiA9IGJhY2tzbGFzaGVzOyBqID4gMDsgai0tKQorCQkqcCsrID0gJ1xcJzsKKwkgICAgICAqcCsrID0gJyInOworCSAgICB9CisJICAqcCA9ICdcMCc7CisKKwkgIG5ld19hcmd2W2ldID0gcXVvdGVkX3N0cmluZzsKKwl9CisgICAgICBlbHNlCisJbmV3X2FyZ3ZbaV0gPSAoY2hhciAqKSBzdHJpbmc7CisgICAgfQorICBuZXdfYXJndlthcmdjXSA9IE5VTEw7CisKKyAgcmV0dXJuIG5ld19hcmd2OworfQorRU9GCisJCTs7CisJICAgIGVzYWMKKworICAgICAgICAgICAgY2F0IDw8IkVPRiIKK3ZvaWQgbHRfZHVtcF9zY3JpcHQgKEZJTEUqIGYpCit7CitFT0YKKwkgICAgZnVuY19lbWl0X3dyYXBwZXIgeWVzIHwKKwkgICAgICAkU0VEIC1uIC1lICcKK3MvXlwoLlx7NzlcfVwpXCguLipcKS9cMVwKK1wyLworaAorcy9cKFtcXCJdXCkvXFxcMS9nCitzLyQvXFxuLworcy9cKFteXG5dKlwpLiovICBmcHV0cyAoIlwxIiwgZik7L3AKK2cKK0QnCisgICAgICAgICAgICBjYXQgPDwiRU9GIgorfQogRU9GCiB9CiAjIGVuZDogZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYwogCisjIGZ1bmNfd2luMzJfaW1wb3J0X2xpYl9wIEFSRworIyBUcnVlIGlmIEFSRyBpcyBhbiBpbXBvcnQgbGliLCBhcyBpbmRpY2F0ZWQgYnkgJGZpbGVfbWFnaWNfY21kCitmdW5jX3dpbjMyX2ltcG9ydF9saWJfcCAoKQoreworICAgICRvcHRfZGVidWcKKyAgICBjYXNlIGBldmFsICRmaWxlX21hZ2ljX2NtZCBcIlwkMVwiIDI+L2Rldi9udWxsIHwgJFNFRCAtZSAxMHFgIGluCisgICAgKmltcG9ydCopIDogOzsKKyAgICAqKSBmYWxzZSA7OworICAgIGVzYWMKK30KKwogIyBmdW5jX21vZGVfbGluayBhcmcuLi4KIGZ1bmNfbW9kZV9saW5rICgpCiB7CkBAIC00MDcyLDYgKzUxMzMsNyBAQAogICAgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPQogCiAgICAgYXZvaWRfdmVyc2lvbj1ubworICAgIGJpbmRpcj0KICAgICBkbGZpbGVzPQogICAgIGRscHJlZmlsZXM9CiAgICAgZGxzZWxmPW5vCkBAIC00MTY0LDYgKzUyMjYsMTEgQEAKIAllc2FjCiAKIAljYXNlICRwcmV2IGluCisJYmluZGlyKQorCSAgYmluZGlyPSIkYXJnIgorCSAgcHJldj0KKwkgIGNvbnRpbnVlCisJICA7OwogCWRsZmlsZXN8ZGxwcmVmaWxlcykKIAkgIGlmIHRlc3QgIiRwcmVsb2FkIiA9IG5vOyB0aGVuCiAJICAgICMgQWRkIHRoZSBzeW1ib2wgb2JqZWN0IGludG8gdGhlIGxpbmtpbmcgY29tbWFuZHMuCkBAIC00MTk1LDkgKzUyNjIsOSBAQAogCSAgICA7OwogCSAgKikKIAkgICAgaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgotCSAgICAgIGRsZmlsZXM9IiRkbGZpbGVzICRhcmciCisJICAgICAgZnVuY19hcHBlbmQgZGxmaWxlcyAiICRhcmciCiAJICAgIGVsc2UKLQkgICAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgorCSAgICAgIGZ1bmNfYXBwZW5kIGRscHJlZmlsZXMgIiAkYXJnIgogCSAgICBmaQogCSAgICBwcmV2PQogCSAgICBjb250aW51ZQpAQCAtNDIyMSw3ICs1Mjg4LDcgQEAKIAkgICAgKi0qLWRhcndpbiopCiAJICAgICAgY2FzZSAiJGRlcGxpYnMgIiBpbgogCQkqIiAkcWFyZy5sdGZyYW1ld29yayAiKikgOzsKLQkJKikgZGVwbGlicz0iJGRlcGxpYnMgJHFhcmcubHRmcmFtZXdvcmsiICMgdGhpcyBpcyBmaXhlZCBsYXRlcgorCQkqKSBmdW5jX2FwcGVuZCBkZXBsaWJzICIgJHFhcmcubHRmcmFtZXdvcmsiICMgdGhpcyBpcyBmaXhlZCBsYXRlcgogCQkgICA7OwogCSAgICAgIGVzYWMKIAkgICAgICA7OwpAQCAtNDI0MCw3ICs1MzA3LDcgQEAKIAkgICAgbW9yZWFyZ3M9CiAJICAgIGZvciBmaWwgaW4gYGNhdCAiJHNhdmVfYXJnImAKIAkgICAgZG8KLSMJICAgICAgbW9yZWFyZ3M9IiRtb3JlYXJncyAkZmlsIgorIwkgICAgICBmdW5jX2FwcGVuZCBtb3JlYXJncyAiICRmaWwiCiAJICAgICAgYXJnPSRmaWwKIAkgICAgICAjIEEgbGlidG9vbC1jb250cm9sbGVkIG9iamVjdC4KIApAQCAtNDI2OSw3ICs1MzM2LDcgQEAKIAogCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KIAkJICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzICYmIHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgPSB5ZXM7IHRoZW4KLQkJICAgICAgZGxmaWxlcz0iJGRsZmlsZXMgJHBpY19vYmplY3QiCisJCSAgICAgIGZ1bmNfYXBwZW5kIGRsZmlsZXMgIiAkcGljX29iamVjdCIKIAkJICAgICAgcHJldj0KIAkJICAgICAgY29udGludWUKIAkJICAgIGVsc2UKQEAgLTQyODEsNyArNTM0OCw3IEBACiAJCSAgIyBDSEVDSyBNRTogIEkgdGhpbmsgSSBidXN0ZWQgdGhpcy4gIC1Pc3NhbWEKIAkJICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCiAJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0JCSAgICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkcGljX29iamVjdCIKKwkJICAgIGZ1bmNfYXBwZW5kIGRscHJlZmlsZXMgIiAkcGljX29iamVjdCIKIAkJICAgIHByZXY9CiAJCSAgZmkKIApAQCAtNDM1MSwxMiArNTQxOCwxMiBAQAogCSAgaWYgdGVzdCAiJHByZXYiID0gcnBhdGg7IHRoZW4KIAkgICAgY2FzZSAiJHJwYXRoICIgaW4KIAkgICAgKiIgJGFyZyAiKikgOzsKLQkgICAgKikgcnBhdGg9IiRycGF0aCAkYXJnIiA7OworCSAgICAqKSBmdW5jX2FwcGVuZCBycGF0aCAiICRhcmciIDs7CiAJICAgIGVzYWMKIAkgIGVsc2UKIAkgICAgY2FzZSAiJHhycGF0aCAiIGluCiAJICAgICoiICRhcmcgIiopIDs7Ci0JICAgICopIHhycGF0aD0iJHhycGF0aCAkYXJnIiA7OworCSAgICAqKSBmdW5jX2FwcGVuZCB4cnBhdGggIiAkYXJnIiA7OwogCSAgICBlc2FjCiAJICBmaQogCSAgcHJldj0KQEAgLTQzNjgsMjggKzU0MzUsMjggQEAKIAkgIGNvbnRpbnVlCiAJICA7OwogCXdlYWspCi0JICB3ZWFrX2xpYnM9IiR3ZWFrX2xpYnMgJGFyZyIKKwkgIGZ1bmNfYXBwZW5kIHdlYWtfbGlicyAiICRhcmciCiAJICBwcmV2PQogCSAgY29udGludWUKIAkgIDs7CiAJeGNjbGlua2VyKQotCSAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzICRxYXJnIgotCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkcWFyZyIKKwkgIGZ1bmNfYXBwZW5kIGxpbmtlcl9mbGFncyAiICRxYXJnIgorCSAgZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkcWFyZyIKIAkgIHByZXY9CiAJICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKIAkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkcWFyZyIKIAkgIGNvbnRpbnVlCiAJICA7OwogCXhjb21waWxlcikKLQkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHFhcmciCisJICBmdW5jX2FwcGVuZCBjb21waWxlcl9mbGFncyAiICRxYXJnIgogCSAgcHJldj0KIAkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRxYXJnIgogCSAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRxYXJnIgogCSAgY29udGludWUKIAkgIDs7CiAJeGxpbmtlcikKLQkgIGxpbmtlcl9mbGFncz0iJGxpbmtlcl9mbGFncyAkcWFyZyIKLQkgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHdsJHFhcmciCisJICBmdW5jX2FwcGVuZCBsaW5rZXJfZmxhZ3MgIiAkcWFyZyIKKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJHdsJHFhcmciCiAJICBwcmV2PQogCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHdsJHFhcmciCiAJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJHdsJHFhcmciCkBAIC00NDI1LDYgKzU0OTIsMTEgQEAKIAljb250aW51ZQogCTs7CiAKKyAgICAgIC1iaW5kaXIpCisJcHJldj1iaW5kaXIKKwljb250aW51ZQorCTs7CisKICAgICAgIC1kbG9wZW4pCiAJcHJldj1kbGZpbGVzCiAJY29udGludWUKQEAgLTQ0NzUsMTUgKzU1NDcsMTYgQEAKIAk7OwogCiAgICAgICAtTCopCi0JZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGFyZyIKLQlkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotCWlmIHRlc3QgLXogIiRkaXIiOyB0aGVuCisJZnVuY19zdHJpcG5hbWUgIi1MIiAnJyAiJGFyZyIKKwlpZiB0ZXN0IC16ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IjsgdGhlbgogCSAgaWYgdGVzdCAiJCMiIC1ndCAwOyB0aGVuCiAJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInJlcXVpcmUgbm8gc3BhY2UgYmV0d2VlbiBcYC1MJyBhbmQgXGAkMSciCiAJICBlbHNlCiAJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm5lZWQgcGF0aCBmb3IgXGAtTCcgb3B0aW9uIgogCSAgZmkKIAlmaQorCWZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCWRpcj0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CiAJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCiAJY2FzZSAkZGlyIGluCiAJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OwpAQCAtNDQ5NSwyNCArNTU2OCwzMCBAQAogCSAgOzsKIAllc2FjCiAJY2FzZSAiJGRlcGxpYnMgIiBpbgotCSoiIC1MJGRpciAiKikgOzsKKwkqIiAtTCRkaXIgIiogfCAqIiAkYXJnICIqKQorCSAgIyBXaWxsIG9ubHkgaGFwcGVuIGZvciBhYnNvbHV0ZSBvciBzeXNyb290IGFyZ3VtZW50cworCSAgOzsKIAkqKQotCSAgZGVwbGlicz0iJGRlcGxpYnMgLUwkZGlyIgotCSAgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiCisJICAjIFByZXNlcnZlIHN5c3Jvb3QsIGJ1dCBuZXZlciBpbmNsdWRlIHJlbGF0aXZlIGRpcmVjdG9yaWVzCisJICBjYXNlICRkaXIgaW4KKwkgICAgW1xcL10qIHwgW0EtWmEtel06W1xcL10qIHwgPSopIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiAkYXJnIiA7OworCSAgICAqKSBmdW5jX2FwcGVuZCBkZXBsaWJzICIgLUwkZGlyIiA7OworCSAgZXNhYworCSAgZnVuY19hcHBlbmQgbGliX3NlYXJjaF9wYXRoICIgJGRpciIKIAkgIDs7CiAJZXNhYwogCWNhc2UgJGhvc3QgaW4KIAkqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotY2VnY2MqKQotCSAgdGVzdGJpbmRpcj1gJEVDSE8gIlgkZGlyIiB8ICRYc2VkIC1lICdzKi9saWIkKi9iaW4qJ2AKKwkgIHRlc3RiaW5kaXI9YCRFQ0hPICIkZGlyIiB8ICRTRUQgJ3MqL2xpYiQqL2JpbionYAogCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCiAJICAqIjokZGlyOiIqKSA7OwogCSAgOjopIGRsbHNlYXJjaHBhdGg9JGRpcjs7Ci0JICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokZGlyIjs7CisJICAqKSBmdW5jX2FwcGVuZCBkbGxzZWFyY2hwYXRoICI6JGRpciI7OwogCSAgZXNhYwogCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCiAJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKIAkgIDo6KSBkbGxzZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsKLQkgICopIGRsbHNlYXJjaHBhdGg9IiRkbGxzZWFyY2hwYXRoOiR0ZXN0YmluZGlyIjs7CisJICAqKSBmdW5jX2FwcGVuZCBkbGxzZWFyY2hwYXRoICI6JHRlc3RiaW5kaXIiOzsKIAkgIGVzYWMKIAkgIDs7CiAJZXNhYwpAQCAtNDUyMiw3ICs1NjAxLDcgQEAKICAgICAgIC1sKikKIAlpZiB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgfHwgdGVzdCAiWCRhcmciID0gIlgtbG0iOyB0aGVuCiAJICBjYXNlICRob3N0IGluCi0JICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKikKKwkgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1iZW9zKiB8ICotY2VnY2MqIHwgKi0qLWhhaWt1KikKIAkgICAgIyBUaGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBDIG9yIG1hdGggbGlicmFyeSAoYXMgc3VjaCkKIAkgICAgY29udGludWUKIAkgICAgOzsKQEAgLTQ1MzYsNyArNTYxNSw3IEBACiAJICAgIDs7CiAJICAqLSotcmhhcHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCiAJICAgICMgUmhhcHNvZHkgQyBhbmQgbWF0aCBsaWJyYXJpZXMgYXJlIGluIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0JICAgIGRlcGxpYnM9IiRkZXBsaWJzIFN5c3RlbS5sdGZyYW1ld29yayIKKwkgICAgZnVuY19hcHBlbmQgZGVwbGlicyAiIFN5c3RlbS5sdGZyYW1ld29yayIKIAkgICAgY29udGludWUKIAkgICAgOzsKIAkgICotKi1zY28zLjJ2NSogfCAqLSotc2NvNXY2KikKQEAgLTQ1NTYsNyArNTYzNSw3IEBACiAJICAgOzsKIAkgZXNhYwogCWZpCi0JZGVwbGlicz0iJGRlcGxpYnMgJGFyZyIKKwlmdW5jX2FwcGVuZCBkZXBsaWJzICIgJGFyZyIKIAljb250aW51ZQogCTs7CiAKQEAgLTQ1NjgsMjEgKzU2NDcsMjIgQEAKICAgICAgICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRlcm1pbmUgdGhlIGxheW91dCBvZiBDKysKICAgICAgICMgY2xhc3NlcywgbmFtZSBtYW5nbGluZywgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZy4KICAgICAgICMgRGFyd2luIHVzZXMgdGhlIC1hcmNoIGZsYWcgdG8gZGV0ZXJtaW5lIG91dHB1dCBhcmNoaXRlY3R1cmUuCi0gICAgICAtbW9kZWx8LWFyY2h8LWlzeXNyb290KQotCWNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFyZyIKKyAgICAgIC1tb2RlbHwtYXJjaHwtaXN5c3Jvb3R8LS1zeXNyb290KQorCWZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJGFyZyIKIAlmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkYXJnIgogCWZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgogCXByZXY9eGNvbXBpbGVyCiAJY29udGludWUKIAk7OwogCi0gICAgICAtbXR8LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlfC10aHJlYWRzKQotCWNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGFyZyIKKyAgICAgIC1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmUgXAorICAgICAgfC10aHJlYWRzfC1mb3Blbm1wfC1vcGVubXB8LW1wfC14b3Blbm1wfC1vbXB8LXFzbXA9KikKKwlmdW5jX2FwcGVuZCBjb21waWxlcl9mbGFncyAiICRhcmciCiAJZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKIAlmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKIAljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgogCSAgICAqIiAkYXJnICIqKSA7OwotCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkYXJnIiA7OworCSAgICAqICkgZnVuY19hcHBlbmQgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiAkYXJnIiA7OwogCWVzYWMKIAljb250aW51ZQogCTs7CkBAIC00NjQ5LDEzICs1NzI5LDE3IEBACiAJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCiAJY2FzZSAkZGlyIGluCiAJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSA7OworCT0qKQorCSAgZnVuY19zdHJpcG5hbWUgJz0nICcnICIkZGlyIgorCSAgZGlyPSRsdF9zeXNyb290JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAorCSAgOzsKIAkqKQogCSAgZnVuY19mYXRhbF9lcnJvciAib25seSBhYnNvbHV0ZSBydW4tcGF0aHMgYXJlIGFsbG93ZWQiCiAJICA7OwogCWVzYWMKIAljYXNlICIkeHJwYXRoICIgaW4KIAkqIiAkZGlyICIqKSA7OwotCSopIHhycGF0aD0iJHhycGF0aCAkZGlyIiA7OworCSopIGZ1bmNfYXBwZW5kIHhycGF0aCAiICRkaXIiIDs7CiAJZXNhYwogCWNvbnRpbnVlCiAJOzsKQEAgLTQ3MDgsOCArNTc5Miw4IEBACiAJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCiAJICBJRlM9IiRzYXZlX2lmcyIKICAgICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkZmxhZyIKLQkgIGFyZz0iJGFyZyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0JICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwkgIGZ1bmNfYXBwZW5kIGFyZyAiICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgogCWRvbmUKIAlJRlM9IiRzYXZlX2lmcyIKIAlmdW5jX3N0cmlwbmFtZSAnICcgJycgIiRhcmciCkBAIC00NzI0LDkgKzU4MDgsOSBAQAogCWZvciBmbGFnIGluICRhcmdzOyBkbwogCSAgSUZTPSIkc2F2ZV9pZnMiCiAgICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJGZsYWciCi0JICBhcmc9IiRhcmcgJHdsJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0JICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCSAgZnVuY19hcHBlbmQgYXJnICIgJHdsJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgorCSAgZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkd2wkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCisJICBmdW5jX2FwcGVuZCBsaW5rZXJfZmxhZ3MgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCiAJZG9uZQogCUlGUz0iJHNhdmVfaWZzIgogCWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKQEAgLTQ3NTQsMjMgKzU4MzgsMjcgQEAKIAlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKIAk7OwogCi0gICAgICAjIC02NCwgLW1pcHNbMC05XSBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIFNHSSBjb21waWxlcgotICAgICAgIyAtclswLTldWzAtOV0qIHNwZWNpZmllcyB0aGUgcHJvY2Vzc29yIG9uIHRoZSBTR0kgY29tcGlsZXIKLSAgICAgICMgLXhhcmNoPSosIC14dGFyZ2V0PSogZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRoZSBTdW4gY29tcGlsZXIKLSAgICAgICMgK0RBKiwgK0REKiBlbmFibGUgNjQtYml0IG1vZGUgb24gdGhlIEhQIGNvbXBpbGVyCi0gICAgICAjIC1xKiBwYXNzIHRocm91Z2ggY29tcGlsZXIgYXJncyBmb3IgdGhlIElCTSBjb21waWxlcgotICAgICAgIyAtbSosIC10WzQ1XSosIC10eHNjYWxlKiBwYXNzIHRocm91Z2ggYXJjaGl0ZWN0dXJlLXNwZWNpZmljCi0gICAgICAjIGNvbXBpbGVyIGFyZ3MgZm9yIEdDQwotICAgICAgIyAtRi9wYXRoIGdpdmVzIHBhdGggdG8gdW5pbnN0YWxsZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRhcndpbgotICAgICAgIyAtcCwgLXBnLCAtLWNvdmVyYWdlLCAtZnByb2ZpbGUtKiBwYXNzIHRocm91Z2ggcHJvZmlsaW5nIGZsYWcgZm9yIEdDQwotICAgICAgIyBAZmlsZSBHQ0MgcmVzcG9uc2UgZmlsZXMKKyAgICAgICMgRmxhZ3MgdG8gYmUgcGFzc2VkIHRocm91Z2ggdW5jaGFuZ2VkLCB3aXRoIHJhdGlvbmFsZToKKyAgICAgICMgLTY0LCAtbWlwc1swLTldICAgICAgZW5hYmxlIDY0LWJpdCBtb2RlIGZvciB0aGUgU0dJIGNvbXBpbGVyCisgICAgICAjIC1yWzAtOV1bMC05XSogICAgICAgIHNwZWNpZnkgcHJvY2Vzc29yIGZvciB0aGUgU0dJIGNvbXBpbGVyCisgICAgICAjIC14YXJjaD0qLCAteHRhcmdldD0qIGVuYWJsZSA2NC1iaXQgbW9kZSBmb3IgdGhlIFN1biBjb21waWxlcgorICAgICAgIyArREEqLCArREQqICAgICAgICAgICBlbmFibGUgNjQtYml0IG1vZGUgZm9yIHRoZSBIUCBjb21waWxlcgorICAgICAgIyAtcSogICAgICAgICAgICAgICAgICBjb21waWxlciBhcmdzIGZvciB0aGUgSUJNIGNvbXBpbGVyCisgICAgICAjIC1tKiwgLXRbNDVdKiwgLXR4c2NhbGUqIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBmbGFncyBmb3IgR0NDCisgICAgICAjIC1GL3BhdGggICAgICAgICAgICAgIHBhdGggdG8gdW5pbnN0YWxsZWQgZnJhbWV3b3JrcywgZ2NjIG9uIGRhcndpbgorICAgICAgIyAtcCwgLXBnLCAtLWNvdmVyYWdlLCAtZnByb2ZpbGUtKiAgcHJvZmlsaW5nIGZsYWdzIGZvciBHQ0MKKyAgICAgICMgQGZpbGUgICAgICAgICAgICAgICAgR0NDIHJlc3BvbnNlIGZpbGVzCisgICAgICAjIC10cD0qICAgICAgICAgICAgICAgIFBvcnRsYW5kIHBnY2MgdGFyZ2V0IHByb2Nlc3NvciBzZWxlY3Rpb24KKyAgICAgICMgLS1zeXNyb290PSogICAgICAgICAgZm9yIHN5c3Jvb3Qgc3VwcG9ydAorICAgICAgIyAtTyosIC1mbHRvKiwgLWZ3aG9wciosIC1mdXNlLWxpbmtlci1wbHVnaW4gR0NDIGxpbmstdGltZSBvcHRpbWl6YXRpb24KICAgICAgIC02NHwtbWlwc1swLTldfC1yWzAtOV1bMC05XSp8LXhhcmNoPSp8LXh0YXJnZXQ9KnwrREEqfCtERCp8LXEqfC1tKnwgXAotICAgICAgLXRbNDVdKnwtdHhzY2FsZSp8LXB8LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxlLSp8LUYqfEAqKQorICAgICAgLXRbNDVdKnwtdHhzY2FsZSp8LXB8LXBnfC0tY292ZXJhZ2V8LWZwcm9maWxlLSp8LUYqfEAqfC10cD0qfC0tc3lzcm9vdD0qfCBcCisgICAgICAtTyp8LWZsdG8qfC1md2hvcHIqfC1mdXNlLWxpbmtlci1wbHVnaW4pCiAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCiAJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCiAgICAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCiAgICAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgotICAgICAgICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisgICAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJGFyZyIKICAgICAgICAgY29udGludWUKICAgICAgICAgOzsKIApAQCAtNDc4Miw3ICs1ODcwLDcgQEAKIAogICAgICAgKi4kb2JqZXh0KQogCSMgQSBzdGFuZGFyZCBvYmplY3QuCi0Jb2Jqcz0iJG9ianMgJGFyZyIKKwlmdW5jX2FwcGVuZCBvYmpzICIgJGFyZyIKIAk7OwogCiAgICAgICAqLmxvKQpAQCAtNDgxMyw3ICs1OTAxLDcgQEAKIAogCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCiAJICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHllczsgdGhlbgotCQlkbGZpbGVzPSIkZGxmaWxlcyAkcGljX29iamVjdCIKKwkJZnVuY19hcHBlbmQgZGxmaWxlcyAiICRwaWNfb2JqZWN0IgogCQlwcmV2PQogCQljb250aW51ZQogCSAgICAgIGVsc2UKQEAgLTQ4MjUsNyArNTkxMyw3IEBACiAJICAgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCiAJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KIAkgICAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0JICAgICAgZGxwcmVmaWxlcz0iJGRscHJlZmlsZXMgJHBpY19vYmplY3QiCisJICAgICAgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRwaWNfb2JqZWN0IgogCSAgICAgIHByZXY9CiAJICAgIGZpCiAKQEAgLTQ4NzAsMjQgKzU5NTgsMjUgQEAKIAogICAgICAgKi4kbGliZXh0KQogCSMgQW4gYXJjaGl2ZS4KLQlkZXBsaWJzPSIkZGVwbGlicyAkYXJnIgotCW9sZF9kZXBsaWJzPSIkb2xkX2RlcGxpYnMgJGFyZyIKKwlmdW5jX2FwcGVuZCBkZXBsaWJzICIgJGFyZyIKKwlmdW5jX2FwcGVuZCBvbGRfZGVwbGlicyAiICRhcmciCiAJY29udGludWUKIAk7OwogCiAgICAgICAqLmxhKQogCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgbGlicmFyeS4KIAorCWZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkYXJnIgogCWlmIHRlc3QgIiRwcmV2IiA9IGRsZmlsZXM7IHRoZW4KIAkgICMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxvcGVuLgotCSAgZGxmaWxlcz0iJGRsZmlsZXMgJGFyZyIKKwkgIGZ1bmNfYXBwZW5kIGRsZmlsZXMgIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IgogCSAgcHJldj0KIAllbGlmIHRlc3QgIiRwcmV2IiA9IGRscHJlZmlsZXM7IHRoZW4KIAkgICMgVGhlIGxpYnJhcnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbHByZW9wZW4uCi0JICBkbHByZWZpbGVzPSIkZGxwcmVmaWxlcyAkYXJnIgorCSAgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCiAJICBwcmV2PQogCWVsc2UKLQkgIGRlcGxpYnM9IiRkZXBsaWJzICRhcmciCisJICBmdW5jX2FwcGVuZCBkZXBsaWJzICIgJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIKIAlmaQogCWNvbnRpbnVlCiAJOzsKQEAgLTQ5MjUsNyArNjAxNCw3IEBACiAKICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KICAgICAgICMgZ2V0IHRoZSBkaXJlY3RvcmllcyBsaXN0ZWQgaW4gJHNobGlicGF0aF92YXIKLSAgICAgIGV2YWwgc2hsaWJfc2VhcmNoX3BhdGg9XGBcJEVDSE8gXCJYXCR7JHNobGlicGF0aF92YXJ9XCIgXHwgXCRYc2VkIC1lIFwncy86LyAvZ1wnXGAKKyAgICAgIGV2YWwgc2hsaWJfc2VhcmNoX3BhdGg9XGBcJEVDSE8gXCJcJHskc2hsaWJwYXRoX3Zhcn1cIiBcfCBcJFNFRCBcJ3MvOi8gL2dcJ1xgCiAgICAgZWxzZQogICAgICAgc2hsaWJfc2VhcmNoX3BhdGg9CiAgICAgZmkKQEAgLTQ5MzQsNiArNjAyMyw4IEBACiAKICAgICBmdW5jX2Rpcm5hbWUgIiRvdXRwdXQiICIvIiAiIgogICAgIG91dHB1dF9vYmpkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JG9iamRpciIKKyAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dF9vYmpkaXIvIgorICAgIHRvb2xfb3V0cHV0X29iamRpcj0kZnVuY190b190b29sX2ZpbGVfcmVzdWx0CiAgICAgIyBDcmVhdGUgdGhlIG9iamVjdCBkaXJlY3RvcnkuCiAgICAgZnVuY19ta2Rpcl9wICIkb3V0cHV0X29iamRpciIKIApAQCAtNDk1NCwxMiArNjA0NSwxMiBAQAogICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVwbGlicyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcwogICAgICMgdGhhdCBhcmUgbGlua2VkIG1vcmUgdGhhbiBvbmNlIChlLmcuIC1sYSAtbGIgLWxhKQogICAgIGZvciBkZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0gICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorICAgICAgaWYgJG9wdF9wcmVzZXJ2ZV9kdXBfZGVwcyA7IHRoZW4KIAljYXNlICIkbGlicyAiIGluCi0JKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OworCSoiICRkZXBsaWIgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJGRlcGxpYiIgOzsKIAllc2FjCiAgICAgICBmaQotICAgICAgbGlicz0iJGxpYnMgJGRlcGxpYiIKKyAgICAgIGZ1bmNfYXBwZW5kIGxpYnMgIiAkZGVwbGliIgogICAgIGRvbmUKIAogICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWI7IHRoZW4KQEAgLTQ5NzIsOSArNjA2Myw5IEBACiAgICAgICBpZiAkb3B0X2R1cGxpY2F0ZV9jb21waWxlcl9nZW5lcmF0ZWRfZGVwczsgdGhlbgogCWZvciBwcmVfcG9zdF9kZXAgaW4gJHByZWRlcHMgJHBvc3RkZXBzOyBkbwogCSAgY2FzZSAiJHByZV9wb3N0X2RlcHMgIiBpbgotCSAgKiIgJHByZV9wb3N0X2RlcCAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkcHJlX3Bvc3RfZGVwcyIgOzsKKwkgICoiICRwcmVfcG9zdF9kZXAgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJHByZV9wb3N0X2RlcHMiIDs7CiAJICBlc2FjCi0JICBwcmVfcG9zdF9kZXBzPSIkcHJlX3Bvc3RfZGVwcyAkcHJlX3Bvc3RfZGVwIgorCSAgZnVuY19hcHBlbmQgcHJlX3Bvc3RfZGVwcyAiICRwcmVfcG9zdF9kZXAiCiAJZG9uZQogICAgICAgZmkKICAgICAgIHByZV9wb3N0X2RlcHM9CkBAIC01MDMzLDcgKzYxMjQsMTAgQEAKIAljYXNlICRwYXNzIGluCiAJZGxvcGVuKSBsaWJzPSIkZGxmaWxlcyIgOzsKIAlkbHByZW9wZW4pIGxpYnM9IiRkbHByZWZpbGVzIiA7OwotCWxpbmspIGxpYnM9IiRkZXBsaWJzICVERVBMSUJTJSAkZGVwZW5kZW5jeV9saWJzIiA7OworCWxpbmspCisJICBsaWJzPSIkZGVwbGlicyAlREVQTElCUyUiCisJICB0ZXN0ICJYJGxpbmtfYWxsX2RlcGxpYnMiICE9IFhubyAmJiBsaWJzPSIkbGlicyAkZGVwZW5kZW5jeV9saWJzIgorCSAgOzsKIAllc2FjCiAgICAgICBmaQogICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsZGxwcmVvcGVuIjsgdGhlbgpAQCAtNTA0MSwxNyArNjEzNSwxOSBAQAogCWZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRvCiAJICAjIElnbm9yZSBub24tbGlidG9vbC1saWJzCiAJICBkZXBlbmRlbmN5X2xpYnM9CisJICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGxpYiIKIAkgIGNhc2UgJGxpYiBpbgotCSAgKi5sYSkJZnVuY19zb3VyY2UgIiRsaWIiIDs7CisJICAqLmxhKQlmdW5jX3NvdXJjZSAiJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIgOzsKIAkgIGVzYWMKIAogCSAgIyBDb2xsZWN0IHByZW9wZW5lZCBsaWJ0b29sIGRlcGxpYnMsIGV4Y2VwdCBhbnkgdGhpcyBsaWJyYXJ5CiAJICAjIGhhcyBkZWNsYXJlZCBhcyB3ZWFrIGxpYnMKIAkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSAgICAgICAgICAgIGRlcGxpYl9iYXNlPWAkRUNITyAiWCRkZXBsaWIiIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCisJICAgIGZ1bmNfYmFzZW5hbWUgIiRkZXBsaWIiCisgICAgICAgICAgICBkZXBsaWJfYmFzZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKIAkgICAgY2FzZSAiICR3ZWFrX2xpYnMgIiBpbgogCSAgICAqIiAkZGVwbGliX2Jhc2UgIiopIDs7Ci0JICAgICopIGRlcGxpYnM9IiRkZXBsaWJzICRkZXBsaWIiIDs7CisJICAgICopIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiAkZGVwbGliIiA7OwogCSAgICBlc2FjCiAJICBkb25lCiAJZG9uZQpAQCAtNTA2NywxNiArNjE2MywxNyBAQAogCWxpYj0KIAlmb3VuZD1ubwogCWNhc2UgJGRlcGxpYiBpbgotCS1tdHwtbXRocmVhZHN8LWt0aHJlYWR8LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRocmVhZHMpCisJLW10fC1tdGhyZWFkc3wta3RocmVhZHwtS3RocmVhZHwtcHRocmVhZHwtcHRocmVhZHN8LS10aHJlYWQtc2FmZSBcCisgICAgICAgIHwtdGhyZWFkc3wtZm9wZW5tcHwtb3Blbm1wfC1tcHwteG9wZW5tcHwtb21wfC1xc21wPSopCiAJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KIAkgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRjb21waWxlX2RlcGxpYnMiCiAJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCiAJICBlbHNlCi0JICAgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJGRlcGxpYiIKKwkgICAgZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkZGVwbGliIgogCSAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gbGliIDsgdGhlbgogCQljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBpbgogCQkgICAgKiIgJGRlcGxpYiAiKikgOzsKLQkJICAgICogKSBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0iJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICRkZXBsaWIiIDs7CisJCSAgICAqICkgZnVuY19hcHBlbmQgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiAkZGVwbGliIiA7OwogCQllc2FjCiAJICAgIGZpCiAJICBmaQpAQCAtNTE2MSw3ICs2MjU4LDcgQEAKIAkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiA7IHRoZW4KIAkJY2FzZSAiJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgaW4KIAkJICAgICoiICRkZXBsaWIgIiopIDs7Ci0JCSAgICAqICkgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZGVwbGliIiA7OworCQkgICAgKiApIGZ1bmNfYXBwZW5kIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgJGRlcGxpYiIgOzsKIAkJZXNhYwogCSAgICBmaQogCSAgZmkKQEAgLTUxNzQsNyArNjI3MSw4IEBACiAJICAgIHRlc3QgIiRwYXNzIiA9IGNvbnYgJiYgY29udGludWUKIAkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPSIkZGVwbGliICRuZXdkZXBlbmRlbmN5X2xpYnMiCiAJICAgIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCi0JICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCSAgICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKKwkgICAgZnVuY19hcHBlbmQgbmV3bGliX3NlYXJjaF9wYXRoICIgJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIKIAkgICAgOzsKIAkgIHByb2cpCiAJICAgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KQEAgLTUxODgsNyArNjI4Niw4IEBACiAJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKIAkgICAgZmkKIAkgICAgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKLQkgICAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisJICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCSAgICBmdW5jX2FwcGVuZCBuZXdsaWJfc2VhcmNoX3BhdGggIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IgogCSAgICA7OwogCSAgKikKIAkgICAgZnVuY193YXJuaW5nICJcYC1MJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIgpAQCAtNTE5OSwxNyArNjI5OCwyMSBAQAogCS1SKikKIAkgIGlmIHRlc3QgIiRwYXNzIiA9IGxpbms7IHRoZW4KIAkgICAgZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAiJGRlcGxpYiIKLQkgICAgZGlyPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKKwkgICAgZnVuY19yZXNvbHZlX3N5c3Jvb3QgIiRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisJICAgIGRpcj0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CiAJICAgICMgTWFrZSBzdXJlIHRoZSB4cnBhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMuCiAJICAgIGNhc2UgIiR4cnBhdGggIiBpbgogCSAgICAqIiAkZGlyICIqKSA7OwotCSAgICAqKSB4cnBhdGg9IiR4cnBhdGggJGRpciIgOzsKKwkgICAgKikgZnVuY19hcHBlbmQgeHJwYXRoICIgJGRpciIgOzsKIAkgICAgZXNhYwogCSAgZmkKIAkgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCiAJICBjb250aW51ZQogCSAgOzsKLQkqLmxhKSBsaWI9IiRkZXBsaWIiIDs7CisJKi5sYSkKKwkgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZGVwbGliIgorCSAgbGliPSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKKwkgIDs7CiAJKi4kbGliZXh0KQogCSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgogCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgpAQCAtNTIyNyw3ICs2MzMwLDcgQEAKIAkJbWF0Y2hfcGF0dGVybiopCiAJCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsgc2hpZnQKIAkJICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQxIFwoLipcKSJgCi0JCSAgaWYgZXZhbCAiXCRFQ0hPIFwiWCRkZXBsaWJcIiIgMj4vZGV2L251bGwgfCAkWHNlZCAtZSAxMHEgXAorCQkgIGlmIGV2YWwgIlwkRUNITyBcIiRkZXBsaWJcIiIgMj4vZGV2L251bGwgfCAkU0VEIDEwcSBcCiAJCSAgICB8ICRFR1JFUCAiJG1hdGNoX3BhdHRlcm5fcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCiAJCSAgICB2YWxpZF9hX2xpYj15ZXMKIAkJICBmaQpAQCAtNTIzNywxNSArNjM0MCwxNSBAQAogCQk7OwogCSAgICAgIGVzYWMKIAkgICAgICBpZiB0ZXN0ICIkdmFsaWRfYV9saWIiICE9IHllczsgdGhlbgotCQkkRUNITworCQllY2hvCiAJCSRFQ0hPICIqKiogV2FybmluZzogVHJ5aW5nIHRvIGxpbmsgd2l0aCBzdGF0aWMgbGliIGFyY2hpdmUgJGRlcGxpYi4iCi0JCSRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotCQkkRUNITyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLQkJJEVDSE8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKLQkJJEVDSE8gIioqKiBiZWNhdXNlIHRoZSBmaWxlIGV4dGVuc2lvbnMgLiRsaWJleHQgb2YgdGhpcyBhcmd1bWVudCBtYWtlcyBtZSBiZWxpZXZlIgotCQkkRUNITyAiKioqIHRoYXQgaXQgaXMganVzdCBhIHN0YXRpYyBhcmNoaXZlIHRoYXQgSSBzaG91bGQgbm90IHVzZSBoZXJlLiIKKwkJZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkJZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorCQllY2hvICIqKiogYmVjYXVzZSB0aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJndW1lbnQgbWFrZXMgbWUgYmVsaWV2ZSIKKwkJZWNobyAiKioqIHRoYXQgaXQgaXMganVzdCBhIHN0YXRpYyBhcmNoaXZlIHRoYXQgSSBzaG91bGQgbm90IHVzZSBoZXJlLiIKIAkgICAgICBlbHNlCi0JCSRFQ0hPCisJCWVjaG8KIAkJJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIgogCQkkRUNITyAiKioqIHN0YXRpYyBsaWJyYXJ5ICRkZXBsaWIgaXMgbm90IHBvcnRhYmxlISIKIAkJZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKQEAgLTUyNzIsMTEgKzYzNzUsMTEgQEAKIAkgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KIAkgICAgICAjIElmIHRoZXJlIGlzIG5vIGRsb3BlbiBzdXBwb3J0IG9yIHdlJ3JlIGxpbmtpbmcgc3RhdGljYWxseSwKIAkgICAgICAjIHdlIG5lZWQgdG8gcHJlbG9hZC4KLQkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGVwbGliIgorCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RscHJlZmlsZXMgIiAkZGVwbGliIgogCSAgICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgogCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCiAJICAgIGVsc2UKLQkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkZGVwbGliIgorCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RsZmlsZXMgIiAkZGVwbGliIgogCSAgICBmaQogCSAgZmkKIAkgIGNvbnRpbnVlCkBAIC01MzE4LDIwICs2NDIxLDIwIEBACiAKIAkjIENvbnZlcnQgIi1mcmFtZXdvcmsgZm9vIiB0byAiZm9vLmx0ZnJhbWV3b3JrIgogCWlmIHRlc3QgLW4gIiRpbmhlcml0ZWRfbGlua2VyX2ZsYWdzIjsgdGhlbgotCSAgdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9YCRFQ0hPICJYJGluaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MvLWZyYW1ld29yayBcKFteICRdKlwpL1wxLmx0ZnJhbWV3b3JrL2cnYAorCSAgdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9YCRFQ0hPICIkaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkU0VEICdzLy1mcmFtZXdvcmsgXChbXiAkXSpcKS9cMS5sdGZyYW1ld29yay9nJ2AKIAkgIGZvciB0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnIGluICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnczsgZG8KIAkgICAgY2FzZSAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCiAJICAgICAgKiIgJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgIiopIDs7Ci0JICAgICAgKikgbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkdG1wX2luaGVyaXRlZF9saW5rZXJfZmxhZyI7OworCSAgICAgICopIGZ1bmNfYXBwZW5kIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzICIgJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWciOzsKIAkgICAgZXNhYwogCSAgZG9uZQogCWZpCi0JZGVwZW5kZW5jeV9saWJzPWAkRUNITyAiWCAkZGVwZW5kZW5jeV9saWJzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIiAkZGVwZW5kZW5jeV9saWJzIiB8ICRTRUQgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCiAJaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJsaWIsbGluayIgfHwKIAkgICB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csc2NhbiIgfHwKIAkgICB7IHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZyAmJiB0ZXN0ICIkbGlua21vZGUiICE9IGxpYjsgfTsgdGhlbgotCSAgdGVzdCAtbiAiJGRsb3BlbiIgJiYgZGxmaWxlcz0iJGRsZmlsZXMgJGRsb3BlbiIKLQkgIHRlc3QgLW4gIiRkbHByZW9wZW4iICYmIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRkbHByZW9wZW4iCisJICB0ZXN0IC1uICIkZGxvcGVuIiAmJiBmdW5jX2FwcGVuZCBkbGZpbGVzICIgJGRsb3BlbiIKKwkgIHRlc3QgLW4gIiRkbHByZW9wZW4iICYmIGZ1bmNfYXBwZW5kIGRscHJlZmlsZXMgIiAkZGxwcmVvcGVuIgogCWZpCiAKIAlpZiB0ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCkBAIC01MzQyLDMwICs2NDQ1LDM2IEBACiAJICAgICAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBsaW5rIGxpYnJhcnkgZm9yIFxgJGxpYiciCiAJICAgIGZpCiAJICAgICMgSXQgaXMgYSBsaWJ0b29sIGNvbnZlbmllbmNlIGxpYnJhcnksIHNvIGFkZCBpbiBpdHMgb2JqZWN0cy4KLQkgICAgY29udmVuaWVuY2U9IiRjb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCi0JICAgIG9sZF9jb252ZW5pZW5jZT0iJG9sZF9jb252ZW5pZW5jZSAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCisJICAgIGZ1bmNfYXBwZW5kIGNvbnZlbmllbmNlICIgJGxhZGlyLyRvYmpkaXIvJG9sZF9saWJyYXJ5IgorCSAgICBmdW5jX2FwcGVuZCBvbGRfY29udmVuaWVuY2UgIiAkbGFkaXIvJG9iamRpci8kb2xkX2xpYnJhcnkiCisJICAgIHRtcF9saWJzPQorCSAgICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCisJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwkgICAgICBpZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsgdGhlbgorCQljYXNlICIkdG1wX2xpYnMgIiBpbgorCQkqIiAkZGVwbGliICIqKSBmdW5jX2FwcGVuZCBzcGVjaWFsZGVwbGlicyAiICRkZXBsaWIiIDs7CisJCWVzYWMKKwkgICAgICBmaQorCSAgICAgIGZ1bmNfYXBwZW5kIHRtcF9saWJzICIgJGRlcGxpYiIKKwkgICAgZG9uZQogCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBsaWI7IHRoZW4KIAkgICAgZnVuY19mYXRhbF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSBjb252ZW5pZW5jZSBsaWJyYXJ5IgogCSAgZmkKLQkgIHRtcF9saWJzPQotCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotCSAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgotCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0JICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OwotCSAgICAgIGVzYWMKLQkgICAgZmkKLQkgICAgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIgotCSAgZG9uZQogCSAgY29udGludWUKIAlmaSAjICRwYXNzID0gY29udgogCiAKIAkjIEdldCB0aGUgbmFtZSBvZiB0aGUgbGlicmFyeSB3ZSBsaW5rIGFnYWluc3QuCiAJbGlua2xpYj0KLQlmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7IGRvCi0JICBsaW5rbGliPSIkbCIKLQlkb25lCisJaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJgorCSAgIHsgdGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicyIgPSB5ZXMgfHwKKwkgICAgIHRlc3QgIiRwcmVmZXJfc3RhdGljX2xpYnMsJGluc3RhbGxlZCIgPSAiYnVpbHQsbm8iOyB9OyB0aGVuCisJICBsaW5rbGliPSRvbGRfbGlicmFyeQorCWVsc2UKKwkgIGZvciBsIGluICRvbGRfbGlicmFyeSAkbGlicmFyeV9uYW1lczsgZG8KKwkgICAgbGlua2xpYj0iJGwiCisJICBkb25lCisJZmkKIAlpZiB0ZXN0IC16ICIkbGlua2xpYiI7IHRoZW4KIAkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJyYXJ5IGZvciBcYCRsaWInIgogCWZpCkBAIC01MzgyLDkgKzY0OTEsOSBAQAogCSAgICAjIHN0YXRpY2FsbHksIHdlIG5lZWQgdG8gcHJlbG9hZC4gIFdlIGFsc28gbmVlZCB0byBwcmVsb2FkIGFueQogCSAgICAjIGRlcGVuZGVudCBsaWJyYXJpZXMgc28gbGlibHRkbCdzIGRlcGxpYiBwcmVsb2FkZXIgZG9lc24ndAogCSAgICAjIGJvbWIgb3V0IGluIHRoZSBsb2FkIGRlcGxpYnMgcGhhc2UuCi0JICAgIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRsaWIgJGRlcGVuZGVuY3lfbGlicyIKKwkgICAgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRsaWIgJGRlcGVuZGVuY3lfbGlicyIKIAkgIGVsc2UKLQkgICAgbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYiIKKwkgICAgZnVuY19hcHBlbmQgbmV3ZGxmaWxlcyAiICRsaWIiCiAJICBmaQogCSAgY29udGludWUKIAlmaSAjICRwYXNzID0gZGxvcGVuCkBAIC01NDA2LDE0ICs2NTE1LDE0IEBACiAKIAkjIEZpbmQgdGhlIHJlbGV2YW50IG9iamVjdCBkaXJlY3RvcnkgYW5kIGxpYnJhcnkgbmFtZS4KIAlpZiB0ZXN0ICJYJGluc3RhbGxlZCIgPSBYeWVzOyB0aGVuCi0JICBpZiB0ZXN0ICEgLWYgIiRsaWJkaXIvJGxpbmtsaWIiICYmIHRlc3QgLWYgIiRhYnNfbGFkaXIvJGxpbmtsaWIiOyB0aGVuCisJICBpZiB0ZXN0ICEgLWYgIiRsdF9zeXNyb290JGxpYmRpci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KIAkgICAgZnVuY193YXJuaW5nICJsaWJyYXJ5IFxgJGxpYicgd2FzIG1vdmVkLiIKIAkgICAgZGlyPSIkbGFkaXIiCiAJICAgIGFic2Rpcj0iJGFic19sYWRpciIKIAkgICAgbGliZGlyPSIkYWJzX2xhZGlyIgogCSAgZWxzZQotCSAgICBkaXI9IiRsaWJkaXIiCi0JICAgIGFic2Rpcj0iJGxpYmRpciIKKwkgICAgZGlyPSIkbHRfc3lzcm9vdCRsaWJkaXIiCisJICAgIGFic2Rpcj0iJGx0X3N5c3Jvb3QkbGliZGlyIgogCSAgZmkKIAkgIHRlc3QgIlgkaGFyZGNvZGVfYXV0b21hdGljIiA9IFh5ZXMgJiYgYXZvaWR0ZW1wcnBhdGg9eWVzCiAJZWxzZQpAQCAtNTQyMSwxMiArNjUzMCwxMiBAQAogCSAgICBkaXI9IiRsYWRpciIKIAkgICAgYWJzZGlyPSIkYWJzX2xhZGlyIgogCSAgICAjIFJlbW92ZSB0aGlzIHNlYXJjaCBwYXRoIGxhdGVyCi0JICAgIG5vdGluc3RfcGF0aD0iJG5vdGluc3RfcGF0aCAkYWJzX2xhZGlyIgorCSAgICBmdW5jX2FwcGVuZCBub3RpbnN0X3BhdGggIiAkYWJzX2xhZGlyIgogCSAgZWxzZQogCSAgICBkaXI9IiRsYWRpci8kb2JqZGlyIgogCSAgICBhYnNkaXI9IiRhYnNfbGFkaXIvJG9iamRpciIKIAkgICAgIyBSZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgotCSAgICBub3RpbnN0X3BhdGg9IiRub3RpbnN0X3BhdGggJGFic19sYWRpciIKKwkgICAgZnVuY19hcHBlbmQgbm90aW5zdF9wYXRoICIgJGFic19sYWRpciIKIAkgIGZpCiAJZmkgIyAkaW5zdGFsbGVkID0geWVzCiAJZnVuY19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRsYW5hbWUiCkBAIC01NDM3LDIwICs2NTQ2LDQ2IEBACiAJICBpZiB0ZXN0IC16ICIkbGliZGlyIiAmJiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgogCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJvbmx5IGxpYnJhcmllcyBtYXkgLWRscHJlb3BlbiBhIGNvbnZlbmllbmNlIGxpYnJhcnk6IFxgJGxpYiciCiAJICBmaQotCSAgIyBQcmVmZXIgdXNpbmcgYSBzdGF0aWMgbGlicmFyeSAoc28gdGhhdCBubyBzaWxseSBfRFlOQU1JQyBzeW1ib2xzCi0JICAjIGFyZSByZXF1aXJlZCB0byBsaW5rKS4KLQkgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KLQkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kb2xkX2xpYnJhcnkiCi0JICAgICMgS2VlcCBhIGxpc3Qgb2YgcHJlb3BlbmVkIGNvbnZlbmllbmNlIGxpYnJhcmllcyB0byBjaGVjawotCSAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsgcGFzcy4KLQkgICAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAotCQlkbHByZWNvbnZlbmllbmNlbGlicz0iJGRscHJlY29udmVuaWVuY2VsaWJzICRkaXIvJG9sZF9saWJyYXJ5IgotCSAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0X2Rsb3BlbiBmaW5kcyBpdC4KLQkgIGVsaWYgdGVzdCAtbiAiJGRsbmFtZSI7IHRoZW4KLQkgICAgbmV3ZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMgJGRpci8kZGxuYW1lIgotCSAgZWxzZQotCSAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkZGlyLyRsaW5rbGliIgotCSAgZmkKKwkgIGNhc2UgIiRob3N0IiBpbgorCSAgICAjIHNwZWNpYWwgaGFuZGxpbmcgZm9yIHBsYXRmb3JtcyB3aXRoIFBFLURMTHMuCisJICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQorCSAgICAgICMgTGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBsaW5rIGFnYWluc3Qgc2hhcmVkIGxpYnJhcnkgaWYgYm90aAorCSAgICAgICMgc3RhdGljIGFuZCBzaGFyZWQgYXJlIHByZXNlbnQuICBUaGVyZWZvcmUsIGVuc3VyZSB3ZSBleHRyYWN0CisJICAgICAgIyBzeW1ib2xzIGZyb20gdGhlIGltcG9ydCBsaWJyYXJ5IGlmIGEgc2hhcmVkIGxpYnJhcnkgaXMgcHJlc2VudAorCSAgICAgICMgKG90aGVyd2lzZSwgdGhlIGRsb3BlbiBtb2R1bGUgbmFtZSB3aWxsIGJlIGluY29ycmVjdCkuICBXZSBkbworCSAgICAgICMgdGhpcyBieSBwdXR0aW5nIHRoZSBpbXBvcnQgbGlicmFyeSBuYW1lIGludG8gJG5ld2RscHJlZmlsZXMuCisJICAgICAgIyBXZSByZWNvdmVyIHRoZSBkbG9wZW4gbW9kdWxlIG5hbWUgYnkgJ3NhdmluZycgdGhlIGxhIGZpbGUKKwkgICAgICAjIG5hbWUgaW4gYSBzcGVjaWFsIHB1cnBvc2UgdmFyaWFibGUsIGFuZCAobGF0ZXIpIGV4dHJhY3RpbmcgdGhlCisJICAgICAgIyBkbG5hbWUgZnJvbSB0aGUgbGEgZmlsZS4KKwkgICAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgorCSAgICAgICAgZnVuY190cl9zaCAiJGRpci8kbGlua2xpYiIKKwkgICAgICAgIGV2YWwgImxpYmZpbGVfJGZ1bmNfdHJfc2hfcmVzdWx0PVwkYWJzX2xhZGlyL1wkbGFuYW1lIgorCSAgICAgICAgZnVuY19hcHBlbmQgbmV3ZGxwcmVmaWxlcyAiICRkaXIvJGxpbmtsaWIiCisJICAgICAgZWxzZQorCSAgICAgICAgZnVuY19hcHBlbmQgbmV3ZGxwcmVmaWxlcyAiICRkaXIvJG9sZF9saWJyYXJ5IgorCSAgICAgICAgIyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29udmVuaWVuY2UgbGlicmFyaWVzIHRvIGNoZWNrCisJICAgICAgICAjIHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsgcGFzcy4KKwkgICAgICAgIHRlc3QgLXogIiRsaWJkaXIiICYmIFwKKwkgICAgICAgICAgZnVuY19hcHBlbmQgZGxwcmVjb252ZW5pZW5jZWxpYnMgIiAkZGlyLyRvbGRfbGlicmFyeSIKKwkgICAgICBmaQorCSAgICA7OworCSAgICAqICkKKwkgICAgICAjIFByZWZlciB1c2luZyBhIHN0YXRpYyBsaWJyYXJ5IChzbyB0aGF0IG5vIHNpbGx5IF9EWU5BTUlDIHN5bWJvbHMKKwkgICAgICAjIGFyZSByZXF1aXJlZCB0byBsaW5rKS4KKwkgICAgICBpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiOyB0aGVuCisJICAgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGRpci8kb2xkX2xpYnJhcnkiCisJICAgICAgICAjIEtlZXAgYSBsaXN0IG9mIHByZW9wZW5lZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMgdG8gY2hlY2sKKwkgICAgICAgICMgdGhhdCB0aGV5IGFyZSBiZWluZyB1c2VkIGNvcnJlY3RseSBpbiB0aGUgbGluayBwYXNzLgorCSAgICAgICAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAorCSAgICAgICAgICBmdW5jX2FwcGVuZCBkbHByZWNvbnZlbmllbmNlbGlicyAiICRkaXIvJG9sZF9saWJyYXJ5IgorCSAgICAgICMgT3RoZXJ3aXNlLCB1c2UgdGhlIGRsbmFtZSwgc28gdGhhdCBsdF9kbG9wZW4gZmluZHMgaXQuCisJICAgICAgZWxpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgorCSAgICAgICAgZnVuY19hcHBlbmQgbmV3ZGxwcmVmaWxlcyAiICRkaXIvJGRsbmFtZSIKKwkgICAgICBlbHNlCisJICAgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGRpci8kbGlua2xpYiIKKwkgICAgICBmaQorCSAgICA7OworCSAgZXNhYwogCWZpICMgJHBhc3MgPSBkbHByZW9wZW4KIAogCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCkBAIC01NDY4LDcgKzY2MDMsNyBAQAogCiAKIAlpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyAmJiB0ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhlbgotCSAgbmV3bGliX3NlYXJjaF9wYXRoPSIkbmV3bGliX3NlYXJjaF9wYXRoICRsYWRpciIKKwkgIGZ1bmNfYXBwZW5kIG5ld2xpYl9zZWFyY2hfcGF0aCAiICRsYWRpciIKIAkgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiCiAKIAkgIGxpbmthbGxkZXBsaWJzPW5vCkBAIC01NDgxLDcgKzY2MTYsOCBAQAogCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwogCSAgICBjYXNlICRkZXBsaWIgaW4KIAkgICAgLUwqKSBmdW5jX3N0cmlwbmFtZSAnLUwnICcnICIkZGVwbGliIgotCSAgICAgICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCSAgICAgICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgorCSAgICAgICAgIGZ1bmNfYXBwZW5kIG5ld2xpYl9zZWFyY2hfcGF0aCAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCiAJCSA7OwogCSAgICBlc2FjCiAJICAgICMgTmVlZCB0byBsaW5rIGFnYWluc3QgYWxsIGRlcGVuZGVuY3lfbGlicz8KQEAgLTU0OTIsMTIgKzY2MjgsMTIgQEAKIAkgICAgICAjIG9yL2FuZCBsaW5rIGFnYWluc3Qgc3RhdGljIGxpYnJhcmllcwogCSAgICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgogCSAgICBmaQotCSAgICBpZiAkb3B0X2R1cGxpY2F0ZV9kZXBzIDsgdGhlbgorCSAgICBpZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsgdGhlbgogCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0JICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAkZGVwbGliIiA7OworCSAgICAgICoiICRkZXBsaWIgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJGRlcGxpYiIgOzsKIAkgICAgICBlc2FjCiAJICAgIGZpCi0JICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKKwkgICAgZnVuY19hcHBlbmQgdG1wX2xpYnMgIiAkZGVwbGliIgogCSAgZG9uZSAjIGZvciBkZXBsaWIKIAkgIGNvbnRpbnVlCiAJZmkgIyAkbGlua21vZGUgPSBwcm9nLi4uCkBAIC01NTEyLDcgKzY2NDgsNyBAQAogCSAgICAgICMgTWFrZSBzdXJlIHRoZSBycGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBkaXJlY3Rvcmllcy4KIAkgICAgICBjYXNlICIkdGVtcF9ycGF0aDoiIGluCiAJICAgICAgKiIkYWJzZGlyOiIqKSA7OwotCSAgICAgICopIHRlbXBfcnBhdGg9IiR0ZW1wX3JwYXRoJGFic2RpcjoiIDs7CisJICAgICAgKikgZnVuY19hcHBlbmQgdGVtcF9ycGF0aCAiJGFic2RpcjoiIDs7CiAJICAgICAgZXNhYwogCSAgICBmaQogCkBAIC01NTI0LDcgKzY2NjAsNyBAQAogCSAgICAqKQogCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KIAkgICAgICAqIiAkYWJzZGlyICIqKSA7OwotCSAgICAgICopIGNvbXBpbGVfcnBhdGg9IiRjb21waWxlX3JwYXRoICRhYnNkaXIiCisJICAgICAgKikgZnVuY19hcHBlbmQgY29tcGlsZV9ycGF0aCAiICRhYnNkaXIiIDs7CiAJICAgICAgZXNhYwogCSAgICAgIDs7CiAJICAgIGVzYWMKQEAgLTU1MzMsNyArNjY2OSw3IEBACiAJICAgICopCiAJICAgICAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KIAkgICAgICAqIiAkbGliZGlyICIqKSA7OwotCSAgICAgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIKKwkgICAgICAqKSBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9ycGF0aCAiICRsaWJkaXIiIDs7CiAJICAgICAgZXNhYwogCSAgICAgIDs7CiAJICAgIGVzYWMKQEAgLTU1NTgsMTIgKzY2OTQsMTIgQEAKIAkgIGNhc2UgJGhvc3QgaW4KIAkgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyopCiAJICAgICAgIyBObyBwb2ludCBpbiByZWxpbmtpbmcgRExMcyBiZWNhdXNlIHBhdGhzIGFyZSBub3QgZW5jb2RlZAotCSAgICAgIG5vdGluc3RfZGVwbGlicz0iJG5vdGluc3RfZGVwbGlicyAkbGliIgorCSAgICAgIGZ1bmNfYXBwZW5kIG5vdGluc3RfZGVwbGlicyAiICRsaWIiCiAJICAgICAgbmVlZF9yZWxpbms9bm8KIAkgICAgOzsKIAkgICopCiAJICAgIGlmIHRlc3QgIiRpbnN0YWxsZWQiID0gbm87IHRoZW4KLQkgICAgICBub3RpbnN0X2RlcGxpYnM9IiRub3RpbnN0X2RlcGxpYnMgJGxpYiIKKwkgICAgICBmdW5jX2FwcGVuZCBub3RpbnN0X2RlcGxpYnMgIiAkbGliIgogCSAgICAgIG5lZWRfcmVsaW5rPXllcwogCSAgICBmaQogCSAgICA7OwpAQCAtNTU4MCw3ICs2NzE2LDcgQEAKIAkgICAgZmkKIAkgIGRvbmUKIAkgIGlmIHRlc3QgLXogIiRkbG9wZW5tb2R1bGUiICYmIHRlc3QgIiRzaG91bGRub3RsaW5rIiA9IHllcyAmJiB0ZXN0ICIkcGFzcyIgPSBsaW5rOyB0aGVuCi0JICAgICRFQ0hPCisJICAgIGVjaG8KIAkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KIAkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIGV4ZWN1dGFibGUgJG91dHB1dCBhZ2FpbnN0IHRoZSBsb2FkYWJsZSBtb2R1bGUiCiAJICAgIGVsc2UKQEAgLTU1OTgsNyArNjczNCw3IEBACiAJICAgICopCiAJICAgICAgY2FzZSAiJGNvbXBpbGVfcnBhdGggIiBpbgogCSAgICAgICoiICRhYnNkaXIgIiopIDs7Ci0JICAgICAgKikgY29tcGlsZV9ycGF0aD0iJGNvbXBpbGVfcnBhdGggJGFic2RpciIKKwkgICAgICAqKSBmdW5jX2FwcGVuZCBjb21waWxlX3JwYXRoICIgJGFic2RpciIgOzsKIAkgICAgICBlc2FjCiAJICAgICAgOzsKIAkgICAgZXNhYwpAQCAtNTYwNyw3ICs2NzQzLDcgQEAKIAkgICAgKikKIAkgICAgICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgogCSAgICAgICoiICRsaWJkaXIgIiopIDs7Ci0JICAgICAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIgorCSAgICAgICopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3JwYXRoICIgJGxpYmRpciIgOzsKIAkgICAgICBlc2FjCiAJICAgICAgOzsKIAkgICAgZXNhYwpAQCAtNTY2MSw3ICs2Nzk3LDcgQEAKIAkgICAgbGlua2xpYj0kbmV3bGliCiAJICBmaSAjIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcyIKIAotCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiICE9IHJlbGluazsgdGhlbgorCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG9wdF9tb2RlIiAhPSByZWxpbms7IHRoZW4KIAkgICAgYWRkX3NobGlicGF0aD0KIAkgICAgYWRkX2Rpcj0KIAkgICAgYWRkPQpAQCAtNTY4Myw5ICs2ODE5LDkgQEAKIAkJICAgICAgaWYgdGVzdCAiWCRkbG9wZW5tb2R1bGUiICE9ICJYJGxpYiI7IHRoZW4KIAkJCSRFQ0hPICIqKiogV2FybmluZzogbGliICRsaW5rbGliIGlzIGEgbW9kdWxlLCBub3QgYSBzaGFyZWQgbGlicmFyeSIKIAkJCWlmIHRlc3QgLXogIiRvbGRfbGlicmFyeSIgOyB0aGVuCi0JCQkgICRFQ0hPCi0JCQkgICRFQ0hPICIqKiogQW5kIHRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKLQkJCSAgJEVDSE8gIioqKiBUaGUgbGluayB3aWxsIHByb2JhYmx5IGZhaWwsIHNvcnJ5IgorCQkJICBlY2hvCisJCQkgIGVjaG8gIioqKiBBbmQgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgc3RhdGljIGFyY2hpdmUgYXZhaWxhYmxlIgorCQkJICBlY2hvICIqKiogVGhlIGxpbmsgd2lsbCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKIAkJCWVsc2UKIAkJCSAgYWRkPSIkZGlyLyRvbGRfbGlicmFyeSIKIAkJCWZpCkBAIC01NzEyLDEyICs2ODQ4LDEyIEBACiAJICAgICAgICAgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSIgPSBubzsgdGhlbgogCQlhZGQ9IiRkaXIvJGxpbmtsaWIiCiAJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KLQkJYWRkX2Rpcj0iLUwkZGlyIgorCQlhZGRfZGlyPSItTCRhYnNkaXIiCiAJCSMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KIAkJaWYgdGVzdCAtbiAiJGluc3RfcHJlZml4X2RpciI7IHRoZW4KIAkJICBjYXNlICRsaWJkaXIgaW4KIAkJICAgIFtcXC9dKikKLQkJICAgICAgYWRkX2Rpcj0iJGFkZF9kaXIgLUwkaW5zdF9wcmVmaXhfZGlyJGxpYmRpciIKKwkJICAgICAgZnVuY19hcHBlbmQgYWRkX2RpciAiIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCiAJCSAgICAgIDs7CiAJCSAgZXNhYwogCQlmaQpAQCAtNTczOSw3ICs2ODc1LDcgQEAKIAkgICAgaWYgdGVzdCAtbiAiJGFkZF9zaGxpYnBhdGgiOyB0aGVuCiAJICAgICAgY2FzZSA6JGNvbXBpbGVfc2hsaWJwYXRoOiBpbgogCSAgICAgICoiOiRhZGRfc2hsaWJwYXRoOiIqKSA7OwotCSAgICAgICopIGNvbXBpbGVfc2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkYWRkX3NobGlicGF0aDoiIDs7CisJICAgICAgKikgZnVuY19hcHBlbmQgY29tcGlsZV9zaGxpYnBhdGggIiRhZGRfc2hsaWJwYXRoOiIgOzsKIAkgICAgICBlc2FjCiAJICAgIGZpCiAJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCkBAIC01NzUzLDEzICs2ODg5LDEzIEBACiAJCSB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KIAkJY2FzZSA6JGZpbmFsaXplX3NobGlicGF0aDogaW4KIAkJKiI6JGxpYmRpcjoiKikgOzsKLQkJKikgZmluYWxpemVfc2hsaWJwYXRoPSIkZmluYWxpemVfc2hsaWJwYXRoJGxpYmRpcjoiIDs7CisJCSopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3NobGlicGF0aCAiJGxpYmRpcjoiIDs7CiAJCWVzYWMKIAkgICAgICBmaQogCSAgICBmaQogCSAgZmkKIAotCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkb3B0X21vZGUiID0gcmVsaW5rOyB0aGVuCiAJICAgIGFkZF9zaGxpYnBhdGg9CiAJICAgIGFkZF9kaXI9CiAJICAgIGFkZD0KQEAgLTU3NzMsNyArNjkwOSw3IEBACiAJICAgIGVsaWYgdGVzdCAiJGhhcmRjb2RlX3NobGlicGF0aF92YXIiID0geWVzOyB0aGVuCiAJICAgICAgY2FzZSA6JGZpbmFsaXplX3NobGlicGF0aDogaW4KIAkgICAgICAqIjokbGliZGlyOiIqKSA7OwotCSAgICAgICopIGZpbmFsaXplX3NobGlicGF0aD0iJGZpbmFsaXplX3NobGlicGF0aCRsaWJkaXI6IiA7OworCSAgICAgICopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3NobGlicGF0aCAiJGxpYmRpcjoiIDs7CiAJICAgICAgZXNhYwogCSAgICAgIGFkZD0iLWwkbmFtZSIKIAkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHllczsgdGhlbgpAQCAtNTc5MCw3ICs2OTI2LDcgQEAKIAkgICAgICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsgdGhlbgogCQljYXNlICRsaWJkaXIgaW4KIAkJICBbXFwvXSopCi0JCSAgICBhZGRfZGlyPSIkYWRkX2RpciAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgorCQkgICAgZnVuY19hcHBlbmQgYWRkX2RpciAiIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCiAJCSAgICA7OwogCQllc2FjCiAJICAgICAgZmkKQEAgLTU4MjUsMjEgKzY5NjEsMjEgQEAKIAogCSAgICAjIEp1c3QgcHJpbnQgYSB3YXJuaW5nIGFuZCBhZGQgdGhlIGxpYnJhcnkgdG8gZGVwZW5kZW5jeV9saWJzIHNvCiAJICAgICMgdGhhdCB0aGUgcHJvZ3JhbSBjYW4gYmUgbGlua2VkIGFnYWluc3QgdGhlIHN0YXRpYyBsaWJyYXJ5LgotCSAgICAkRUNITworCSAgICBlY2hvCiAJICAgICRFQ0hPICIqKiogV2FybmluZzogVGhpcyBzeXN0ZW0gY2FuIG5vdCBsaW5rIHRvIHN0YXRpYyBsaWIgYXJjaGl2ZSAkbGliLiIKLQkgICAgJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0JICAgICRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgotCSAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlLiIKKwkgICAgZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkgICAgZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkgICAgZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlLiIKIAkgICAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXM7IHRoZW4KLQkgICAgICAkRUNITyAiKioqIEJ1dCBhcyB5b3UgdHJ5IHRvIGJ1aWxkIGEgbW9kdWxlIGxpYnJhcnksIGxpYnRvb2wgd2lsbCBzdGlsbCBjcmVhdGUgIgotCSAgICAgICRFQ0hPICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3BlbmluZyBhcHBsaWNhdGlvbiIKLQkgICAgICAkRUNITyAiKioqIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcgdG8gcmVzb2x2ZSBzeW1ib2xzIGF0IHJ1bnRpbWUuIgorCSAgICAgIGVjaG8gIioqKiBCdXQgYXMgeW91IHRyeSB0byBidWlsZCBhIG1vZHVsZSBsaWJyYXJ5LCBsaWJ0b29sIHdpbGwgc3RpbGwgY3JlYXRlICIKKwkgICAgICBlY2hvICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3BlbmluZyBhcHBsaWNhdGlvbiIKKwkgICAgICBlY2hvICIqKiogaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZyB0byByZXNvbHZlIHN5bWJvbHMgYXQgcnVudGltZS4iCiAJICAgICAgaWYgdGVzdCAteiAiJGdsb2JhbF9zeW1ib2xfcGlwZSI7IHRoZW4KLQkJJEVDSE8KLQkJJEVDSE8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgotCQkkRUNITyAiKioqIGxpc3RzIGZyb20gYSBwcm9ncmFtLCB1c2luZyBcYG5tJyBvciBlcXVpdmFsZW50LCBidXQgbGlidG9vbCBjb3VsZCIKLQkJJEVDSE8gIioqKiBub3QgZmluZCBzdWNoIGEgcHJvZ3JhbS4gIFNvLCB0aGlzIG1vZHVsZSBpcyBwcm9iYWJseSB1c2VsZXNzLiIKLQkJJEVDSE8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgorCQllY2hvCisJCWVjaG8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgorCQllY2hvICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgorCQllY2hvICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCisJCWVjaG8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgogCSAgICAgIGZpCiAJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCiAJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKQEAgLTU4NjcsMzcgKzcwMDMsNDYgQEAKIAkgICAgICAgICAgIHRlbXBfeHJwYXRoPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKIAkJICAgY2FzZSAiICR4cnBhdGggIiBpbgogCQkgICAqIiAkdGVtcF94cnBhdGggIiopIDs7Ci0JCSAgICopIHhycGF0aD0iJHhycGF0aCAkdGVtcF94cnBhdGgiOzsKKwkJICAgKikgZnVuY19hcHBlbmQgeHJwYXRoICIgJHRlbXBfeHJwYXRoIjs7CiAJCSAgIGVzYWM7OwotCSAgICAgICopIHRlbXBfZGVwbGlicz0iJHRlbXBfZGVwbGlicyAkbGliZGlyIjs7CisJICAgICAgKikgZnVuY19hcHBlbmQgdGVtcF9kZXBsaWJzICIgJGxpYmRpciI7OwogCSAgICAgIGVzYWMKIAkgICAgZG9uZQogCSAgICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX2RlcGxpYnMiCiAJICBmaQogCi0JICBuZXdsaWJfc2VhcmNoX3BhdGg9IiRuZXdsaWJfc2VhcmNoX3BhdGggJGFic2RpciIKKwkgIGZ1bmNfYXBwZW5kIG5ld2xpYl9zZWFyY2hfcGF0aCAiICRhYnNkaXIiCiAJICAjIExpbmsgYWdhaW5zdCB0aGlzIGxpYnJhcnkKIAkgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSBubyAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRhYnNfbGFkaXIvJGxhbmFtZSAkbmV3ZGVwZW5kZW5jeV9saWJzIgogCSAgIyAuLi4gYW5kIGl0cyBkZXBlbmRlbmN5X2xpYnMKIAkgIHRtcF9saWJzPQogCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwogCSAgICBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLQkgICAgaWYgJG9wdF9kdXBsaWNhdGVfZGVwcyA7IHRoZW4KKwkgICAgY2FzZSAkZGVwbGliIGluCisgICAgICAgICAgICAgIC1MKikgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRlcGxpYiIKKyAgICAgICAgICAgICAgICAgICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCI7OworICAgICAgICAgICAgICAqKSBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGRlcGxpYiIgOzsKKyAgICAgICAgICAgIGVzYWMKKwkgICAgaWYgJG9wdF9wcmVzZXJ2ZV9kdXBfZGVwcyA7IHRoZW4KIAkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgotCSAgICAgICoiICRkZXBsaWIgIiopIHNwZWNpYWxkZXBsaWJzPSIkc3BlY2lhbGRlcGxpYnMgJGRlcGxpYiIgOzsKKwkgICAgICAqIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0ICIqKQorICAgICAgICAgICAgICAgIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdCIgOzsKIAkgICAgICBlc2FjCiAJICAgIGZpCi0JICAgIHRtcF9saWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKKwkgICAgZnVuY19hcHBlbmQgdG1wX2xpYnMgIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IgogCSAgZG9uZQogCiAJICBpZiB0ZXN0ICIkbGlua19hbGxfZGVwbGlicyIgIT0gbm87IHRoZW4KIAkgICAgIyBBZGQgdGhlIHNlYXJjaCBwYXRocyBvZiBhbGwgZGVwZW5kZW5jeSBsaWJyYXJpZXMKIAkgICAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbworCSAgICAgIHBhdGg9CiAJICAgICAgY2FzZSAkZGVwbGliIGluCiAJICAgICAgLUwqKSBwYXRoPSIkZGVwbGliIiA7OwogCSAgICAgICoubGEpCisJICAgICAgICBmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGRlcGxpYiIKKwkgICAgICAgIGRlcGxpYj0kZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0CiAJICAgICAgICBmdW5jX2Rpcm5hbWUgIiRkZXBsaWIiICIiICIuIgotCQlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0IgorCQlkaXI9JGZ1bmNfZGlybmFtZV9yZXN1bHQKIAkJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCiAJCWNhc2UgJGRpciBpbgogCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFic2Rpcj0iJGRpciIgOzsKQEAgLTU5MjQsOCArNzA2OSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAteiAiJGRhcndpbl9pbnN0YWxsX25hbWUiOyB0aGVuCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhcndpbl9pbnN0YWxsX25hbWU9YCR7T1RPT0w2NH0gLUwgJGRlcGRlcGwgIHwgYXdrICd7aWYgKE5SID09IDIpIHtwcmludCAkMTtleGl0fX0nYAogICAgICAgICAgICAgICAgICAgICAgIGZpCi0JCSAgICAgIGNvbXBpbGVyX2ZsYWdzPSIkY29tcGlsZXJfZmxhZ3MgJHt3bH0tZHlsaWJfZmlsZSAke3dsfSR7ZGFyd2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKLQkJICAgICAgbGlua2VyX2ZsYWdzPSIkbGlua2VyX2ZsYWdzIC1keWxpYl9maWxlICR7ZGFyd2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKKwkJICAgICAgZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAke3dsfS1keWxpYl9maWxlICR7d2x9JHtkYXJ3aW5faW5zdGFsbF9uYW1lfToke2RlcGRlcGx9IgorCQkgICAgICBmdW5jX2FwcGVuZCBsaW5rZXJfZmxhZ3MgIiAtZHlsaWJfZmlsZSAke2Rhcndpbl9pbnN0YWxsX25hbWV9OiR7ZGVwZGVwbH0iCiAJCSAgICAgIHBhdGg9CiAJCSAgICBmaQogCQkgIGZpCkBAIC01OTU4LDcgKzcxMDMsNyBAQAogCSAgY29tcGlsZV9kZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGNvbXBpbGVfZGVwbGlicyIKIAkgIGZpbmFsaXplX2RlcGxpYnM9IiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAkZmluYWxpemVfZGVwbGlicyIKIAllbHNlCi0JICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICJgJEVDSE8gIlggJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRYc2VkIC1lICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorCSAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAiYCRFQ0hPICIgJG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzIiB8ICRTRUQgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCiAJZmkKICAgICAgIGZpCiAgICAgICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMiCkBAIC01OTc1LDcgKzcxMjAsNyBAQAogCSAgZm9yIGRpciBpbiAkbmV3bGliX3NlYXJjaF9wYXRoOyBkbwogCSAgICBjYXNlICIkbGliX3NlYXJjaF9wYXRoICIgaW4KIAkgICAgKiIgJGRpciAiKikgOzsKLQkgICAgKikgbGliX3NlYXJjaF9wYXRoPSIkbGliX3NlYXJjaF9wYXRoICRkaXIiIDs7CisJICAgICopIGZ1bmNfYXBwZW5kIGxpYl9zZWFyY2hfcGF0aCAiICRkaXIiIDs7CiAJICAgIGVzYWMKIAkgIGRvbmUKIAkgIG5ld2xpYl9zZWFyY2hfcGF0aD0KQEAgLTYwMzMsMTAgKzcxNzgsMTAgQEAKIAkgICAgLUwqKQogCSAgICAgIGNhc2UgIiAkdG1wX2xpYnMgIiBpbgogCSAgICAgICoiICRkZXBsaWIgIiopIDs7Ci0JICAgICAgKikgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIiA7OworCSAgICAgICopIGZ1bmNfYXBwZW5kIHRtcF9saWJzICIgJGRlcGxpYiIgOzsKIAkgICAgICBlc2FjCiAJICAgICAgOzsKLQkgICAgKikgdG1wX2xpYnM9IiR0bXBfbGlicyAkZGVwbGliIiA7OworCSAgICAqKSBmdW5jX2FwcGVuZCB0bXBfbGlicyAiICRkZXBsaWIiIDs7CiAJICAgIGVzYWMKIAkgIGRvbmUKIAkgIGV2YWwgJHZhcj1cIiR0bXBfbGlic1wiCkBAIC02MDUyLDcgKzcxOTcsNyBAQAogCSAgOzsKIAllc2FjCiAJaWYgdGVzdCAtbiAiJGkiIDsgdGhlbgotCSAgdG1wX2xpYnM9IiR0bXBfbGlicyAkaSIKKwkgIGZ1bmNfYXBwZW5kIHRtcF9saWJzICIgJGkiCiAJZmkKICAgICAgIGRvbmUKICAgICAgIGRlcGVuZGVuY3lfbGlicz0kdG1wX2xpYnMKQEAgLTYwOTMsNyArNzIzOCw3IEBACiAgICAgICAjIE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KICAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubwogICAgICAgb2xkbGlicz0iJG91dHB1dCIKLSAgICAgIG9ianM9IiRvYmpzJG9sZF9kZXBsaWJzIgorICAgICAgZnVuY19hcHBlbmQgb2JqcyAiJG9sZF9kZXBsaWJzIgogICAgICAgOzsKIAogICAgIGxpYikKQEAgLTYxMjYsMTAgKzcyNzEsMTAgQEAKIAlpZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCiAJICBmdW5jX2ZhdGFsX2Vycm9yICJjYW5ub3QgYnVpbGQgbGlidG9vbCBsaWJyYXJ5IFxgJG91dHB1dCcgZnJvbSBub24tbGlidG9vbCBvYmplY3RzIG9uIHRoaXMgaG9zdDokb2JqcyIKIAllbHNlCi0JICAkRUNITworCSAgZWNobwogCSAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0b29sIgogCSAgJEVDSE8gIioqKiBvYmplY3RzICRvYmpzIGlzIG5vdCBwb3J0YWJsZSEiCi0JICBsaWJvYmpzPSIkbGlib2JqcyAkb2JqcyIKKwkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkb2JqcyIKIAlmaQogICAgICAgZmkKIApAQCAtNjE4OCwxMyArNzMzMywxNCBAQAogCSAgIyB3aGljaCBoYXMgYW4gZXh0cmEgMSBhZGRlZCBqdXN0IGZvciBmdW4KIAkgICMKIAkgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgorCSAgIyBjb3JyZWN0IGxpbnV4IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCiAJICBkYXJ3aW58bGludXh8b3NmfHdpbmRvd3N8bm9uZSkKIAkgICAgZnVuY19hcml0aCAkbnVtYmVyX21ham9yICsgJG51bWJlcl9taW5vcgogCSAgICBjdXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAogCSAgICBhZ2U9IiRudW1iZXJfbWlub3IiCiAJICAgIHJldmlzaW9uPSIkbnVtYmVyX3JldmlzaW9uIgogCSAgICA7OwotCSAgZnJlZWJzZC1hb3V0fGZyZWVic2QtZWxmfHN1bm9zKQorCSAgZnJlZWJzZC1hb3V0fGZyZWVic2QtZWxmfHFueHxzdW5vcykKIAkgICAgY3VycmVudD0iJG51bWJlcl9tYWpvciIKIAkgICAgcmV2aXNpb249IiRudW1iZXJfbWlub3IiCiAJICAgIGFnZT0iMCIKQEAgLTYyMDYsNiArNzM1Miw5IEBACiAJICAgIHJldmlzaW9uPSIkbnVtYmVyX21pbm9yIgogCSAgICBsdF9pcml4X2luY3JlbWVudD1ubwogCSAgICA7OworCSAgKikKKwkgICAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICIkbW9kZW5hbWU6IHVua25vd24gbGlicmFyeSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lvbl90eXBlJyIKKwkgICAgOzsKIAkgIGVzYWMKIAkgIDs7CiAJbm8pCkBAIC02MzA0LDcgKzc0NTMsNyBAQAogCSAgdmVyc3VmZml4PSIkbWFqb3IuJHJldmlzaW9uIgogCSAgOzsKIAotCWxpbnV4KQorCWxpbnV4KSAjIGNvcnJlY3QgdG8gZ251L2xpbnV4IGR1cmluZyB0aGUgbmV4dCBiaWcgcmVmYWN0b3IKIAkgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCiAJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVzdWx0CiAJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdlLiRyZXZpc2lvbiIKQEAgLTYzMjcsNyArNzQ3Niw3IEBACiAJICBkb25lCiAKIAkgICMgTWFrZSBleGVjdXRhYmxlcyBkZXBlbmQgb24gb3VyIGN1cnJlbnQgdmVyc2lvbi4KLQkgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2N1cnJlbnR9LjAiCisJICBmdW5jX2FwcGVuZCB2ZXJzdHJpbmcgIjoke2N1cnJlbnR9LjAiCiAJICA7OwogCiAJcW54KQpAQCAtNjM5NSwxMCArNzU0NCwxMCBAQAogICAgICAgZmkKIAogICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRsaWJuYW1lIiAiJGxpYm5hbWUiICJ5ZXMiCi0gICAgICBsaWJvYmpzPSIkbGlib2JqcyAkc3ltZmlsZW9iaiIKKyAgICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkc3ltZmlsZW9iaiIKICAgICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CiAKLSAgICAgIGlmIHRlc3QgIiRtb2RlIiAhPSByZWxpbms7IHRoZW4KKyAgICAgIGlmIHRlc3QgIiRvcHRfbW9kZSIgIT0gcmVsaW5rOyB0aGVuCiAJIyBSZW1vdmUgb3VyIG91dHB1dHMsIGJ1dCBkb24ndCByZW1vdmUgb2JqZWN0IGZpbGVzIHNpbmNlIHRoZXkKIAkjIG1heSBoYXZlIGJlZW4gY3JlYXRlZCB3aGVuIGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KIAlyZW1vdmVsaXN0PQpAQCAtNjQxNCw3ICs3NTYzLDcgQEAKIAkJICAgY29udGludWUKIAkJIGZpCiAJICAgICAgIGZpCi0JICAgICAgIHJlbW92ZWxpc3Q9IiRyZW1vdmVsaXN0ICRwIgorCSAgICAgICBmdW5jX2FwcGVuZCByZW1vdmVsaXN0ICIgJHAiCiAJICAgICAgIDs7CiAJICAgICopIDs7CiAJICBlc2FjCkBAIC02NDI1LDI3ICs3NTc0LDI4IEBACiAKICAgICAgICMgTm93IHNldCB0aGUgdmFyaWFibGVzIGZvciBidWlsZGluZyBvbGQgbGlicmFyaWVzLgogICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllcyAmJiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSBjb252ZW5pZW5jZSA7IHRoZW4KLQlvbGRsaWJzPSIkb2xkbGlicyAkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgorCWZ1bmNfYXBwZW5kIG9sZGxpYnMgIiAkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0IgogCiAJIyBUcmFuc2Zvcm0gLmxvIGZpbGVzIHRvIC5vIGZpbGVzLgotCW9sZG9ianM9IiRvYmpzICJgJEVDSE8gIlgkbGlib2JqcyIgfCAkU1AyTkwgfCAkWHNlZCAtZSAnL1wuJyR7bGliZXh0fSckL2QnIC1lICIkbG8ybyIgfCAkTkwyU1BgCisJb2xkb2Jqcz0iJG9ianMgImAkRUNITyAiJGxpYm9ianMiIHwgJFNQMk5MIHwgJFNFRCAiL1wuJHtsaWJleHR9JC9kOyAkbG8ybyIgfCAkTkwyU1BgCiAgICAgICBmaQogCiAgICAgICAjIEVsaW1pbmF0ZSBhbGwgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzLgogICAgICAgI2ZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCi0gICAgICAjCWxpYl9zZWFyY2hfcGF0aD1gJEVDSE8gIlgkbGliX3NlYXJjaF9wYXRoICIgfCAkWHNlZCAtZSAicyUgJHBhdGggJSAlZyJgCi0gICAgICAjCWRlcGxpYnM9YCRFQ0hPICJYJGRlcGxpYnMgIiB8ICRYc2VkIC1lICJzJSAtTCRwYXRoICUgJWciYAotICAgICAgIwlkZXBlbmRlbmN5X2xpYnM9YCRFQ0hPICJYJGRlcGVuZGVuY3lfbGlicyAiIHwgJFhzZWQgLWUgInMlIC1MJHBhdGggJSAlZyJgCisgICAgICAjCWxpYl9zZWFyY2hfcGF0aD1gJEVDSE8gIiRsaWJfc2VhcmNoX3BhdGggIiB8ICRTRUQgInMlICRwYXRoICUgJWciYAorICAgICAgIwlkZXBsaWJzPWAkRUNITyAiJGRlcGxpYnMgIiB8ICRTRUQgInMlIC1MJHBhdGggJSAlZyJgCisgICAgICAjCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIiRkZXBlbmRlbmN5X2xpYnMgIiB8ICRTRUQgInMlIC1MJHBhdGggJSAlZyJgCiAgICAgICAjZG9uZQogCiAgICAgICBpZiB0ZXN0IC1uICIkeHJwYXRoIjsgdGhlbgogCSMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFueSBycGF0aCBmbGFncywgdGhlbiBhZGQgdGhlbS4KIAl0ZW1wX3hycGF0aD0KIAlmb3IgbGliZGlyIGluICR4cnBhdGg7IGRvCi0JICB0ZW1wX3hycGF0aD0iJHRlbXBfeHJwYXRoIC1SJGxpYmRpciIKKwkgIGZ1bmNfcmVwbGFjZV9zeXNyb290ICIkbGliZGlyIgorCSAgZnVuY19hcHBlbmQgdGVtcF94cnBhdGggIiAtUiRmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQiCiAJICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgogCSAgKiIgJGxpYmRpciAiKikgOzsKLQkgICopIGZpbmFsaXplX3JwYXRoPSIkZmluYWxpemVfcnBhdGggJGxpYmRpciIgOzsKKwkgICopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3JwYXRoICIgJGxpYmRpciIgOzsKIAkgIGVzYWMKIAlkb25lCiAJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KQEAgLTY0NTksNyArNzYwOSw3IEBACiAgICAgICBmb3IgbGliIGluICRvbGRfZGxmaWxlczsgZG8KIAljYXNlICIgJGRscHJlZmlsZXMgJGRsZmlsZXMgIiBpbgogCSoiICRsaWIgIiopIDs7Ci0JKikgZGxmaWxlcz0iJGRsZmlsZXMgJGxpYiIgOzsKKwkqKSBmdW5jX2FwcGVuZCBkbGZpbGVzICIgJGxpYiIgOzsKIAllc2FjCiAgICAgICBkb25lCiAKQEAgLTY0NjksMTkgKzc2MTksMTkgQEAKICAgICAgIGZvciBsaWIgaW4gJG9sZF9kbHByZWZpbGVzOyBkbwogCWNhc2UgIiRkbHByZWZpbGVzICIgaW4KIAkqIiAkbGliICIqKSA7OwotCSopIGRscHJlZmlsZXM9IiRkbHByZWZpbGVzICRsaWIiIDs7CisJKikgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRsaWIiIDs7CiAJZXNhYwogICAgICAgZG9uZQogCiAgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhlbgogCWlmIHRlc3QgLW4gIiRycGF0aCI7IHRoZW4KIAkgIGNhc2UgJGhvc3QgaW4KLQkgICotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi0qLWJlb3MqIHwgKi1jZWdjYyopCisJICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICotKi1iZW9zKiB8ICotY2VnY2MqIHwgKi0qLWhhaWt1KikKIAkgICAgIyB0aGVzZSBzeXN0ZW1zIGRvbid0IGFjdHVhbGx5IGhhdmUgYSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQogCSAgICA7OwogCSAgKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQogCSAgICAjIFJoYXBzb2R5IEMgbGlicmFyeSBpcyBpbiB0aGUgU3lzdGVtIGZyYW1ld29yawotCSAgICBkZXBsaWJzPSIkZGVwbGlicyBTeXN0ZW0ubHRmcmFtZXdvcmsiCisJICAgIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiBTeXN0ZW0ubHRmcmFtZXdvcmsiCiAJICAgIDs7CiAJICAqLSotbmV0YnNkKikKIAkgICAgIyBEb24ndCBsaW5rIHdpdGggbGliYyB1bnRpbCB0aGUgYS5vdXQgbGQuc28gaXMgZml4ZWQuCkBAIC02NDk4LDcgKzc2NDgsNyBAQAogCSAgKikKIAkgICAgIyBBZGQgbGliYyB0byBkZXBsaWJzIG9uIGFsbCBvdGhlciBzeXN0ZW1zIGlmIG5lY2Vzc2FyeS4KIAkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbmVlZF9sYyIgPSAieWVzIjsgdGhlbgotCSAgICAgIGRlcGxpYnM9IiRkZXBsaWJzIC1sYyIKKwkgICAgICBmdW5jX2FwcGVuZCBkZXBsaWJzICIgLWxjIgogCSAgICBmaQogCSAgICA7OwogCSAgZXNhYwpAQCAtNjU0Nyw3ICs3Njk3LDcgQEAKIAkJaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgogCQkgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgogCQkgICoiICRpICIqKQotCQkgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCSAgICBmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGkiCiAJCSAgICBpPSIiCiAJCSAgICA7OwogCQkgIGVzYWMKQEAgLTY1NTgsMjEgKzc3MDgsMjEgQEAKIAkJICBzZXQgZHVtbXkgJGRlcGxpYl9tYXRjaGVzOyBzaGlmdAogCQkgIGRlcGxpYl9tYXRjaD0kMQogCQkgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KLQkJICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQkgICAgZnVuY19hcHBlbmQgbmV3ZGVwbGlicyAiICRpIgogCQkgIGVsc2UKIAkJICAgIGRyb3BwZWRkZXBzPXllcwotCQkgICAgJEVDSE8KKwkJICAgIGVjaG8KIAkJICAgICRFQ0hPICIqKiogV2FybmluZzogZHluYW1pYyBsaW5rZXIgZG9lcyBub3QgYWNjZXB0IG5lZWRlZCBsaWJyYXJ5ICRpLiIKLQkJICAgICRFQ0hPICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotCQkgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0JCSAgICAkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCBJIGJlbGlldmUgeW91IGRvIG5vdCBoYXZlIgotCQkgICAgJEVDSE8gIioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIGl0IGZvciIKLQkJICAgICRFQ0hPICIqKiogaXRzIGR5bmFtaWMgZGVwZW5kZW5jeSBsaXN0IHRoYXQgcHJvZ3JhbXMgZ2V0IHJlc29sdmVkIHdpdGggYXQgcnVudGltZS4iCisJCSAgICBlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCQkgICAgZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJICAgIGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggSSBiZWxpZXZlIHlvdSBkbyBub3QgaGF2ZSIKKwkJICAgIGVjaG8gIioqKiBiZWNhdXNlIGEgdGVzdF9jb21waWxlIGRpZCByZXZlYWwgdGhhdCB0aGUgbGlua2VyIGRpZCBub3QgdXNlIGl0IGZvciIKKwkJICAgIGVjaG8gIioqKiBpdHMgZHluYW1pYyBkZXBlbmRlbmN5IGxpc3QgdGhhdCBwcm9ncmFtcyBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKIAkJICBmaQogCQlmaQogCQk7OwogCSAgICAgICopCi0JCW5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQlmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGkiCiAJCTs7CiAJICAgICAgZXNhYwogCSAgICBkb25lCkBAIC02NTkwLDcgKzc3NDAsNyBAQAogCQkgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KIAkJICAgIGNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgogCQkgICAgKiIgJGkgIiopCi0JCSAgICAgIG5ld2RlcGxpYnM9IiRuZXdkZXBsaWJzICRpIgorCQkgICAgICBmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGkiCiAJCSAgICAgIGk9IiIKIAkJICAgICAgOzsKIAkJICAgIGVzYWMKQEAgLTY2MDEsMjkgKzc3NTEsMjkgQEAKIAkJICAgIHNldCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0CiAJCSAgICBkZXBsaWJfbWF0Y2g9JDEKIAkJICAgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRkZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KLQkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkaSIKIAkJICAgIGVsc2UKIAkJICAgICAgZHJvcHBlZGRlcHM9eWVzCi0JCSAgICAgICRFQ0hPCisJCSAgICAgIGVjaG8KIAkJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQgbmVlZGVkIGxpYnJhcnkgJGkuIgotCQkgICAgICAkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLQkJICAgICAgJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0JCSAgICAgICRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0JCSAgICAgICRFQ0hPICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSB0aGlzIG9uZSIKLQkJICAgICAgJEVDSE8gIioqKiBhcyBhIGR5bmFtaWMgZGVwZW5kZW5jeSB0aGF0IHByb2dyYW1zIGNhbiBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKKwkJICAgICAgZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkJICAgICAgZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJICAgICAgZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorCQkgICAgICBlY2hvICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQgdGhlIGxpbmtlciBkaWQgbm90IHVzZSB0aGlzIG9uZSIKKwkJICAgICAgZWNobyAiKioqIGFzIGEgZHluYW1pYyBkZXBlbmRlbmN5IHRoYXQgcHJvZ3JhbXMgY2FuIGdldCByZXNvbHZlZCB3aXRoIGF0IHJ1bnRpbWUuIgogCQkgICAgZmkKIAkJICBmaQogCQllbHNlCiAJCSAgZHJvcHBlZGRlcHM9eWVzCi0JCSAgJEVDSE8KKwkJICBlY2hvCiAJCSAgJEVDSE8gIioqKiBXYXJuaW5nISAgTGlicmFyeSAkaSBpcyBuZWVkZWQgYnkgdGhpcyBsaWJyYXJ5IGJ1dCBJIHdhcyBub3QgYWJsZSB0byIKLQkJICAkRUNITyAiKioqIG1ha2UgaXQgbGluayBpbiEgIFlvdSB3aWxsIHByb2JhYmx5IG5lZWQgdG8gaW5zdGFsbCBpdCBvciBzb21lIgotCQkgICRFQ0hPICIqKiogbGlicmFyeSB0aGF0IGl0IGRlcGVuZHMgb24gYmVmb3JlIHRoaXMgbGlicmFyeSB3aWxsIGJlIGZ1bGx5IgotCQkgICRFQ0hPICIqKiogZnVuY3Rpb25hbC4gIEluc3RhbGxpbmcgaXQgYmVmb3JlIGNvbnRpbnVpbmcgd291bGQgYmUgZXZlbiBiZXR0ZXIuIgorCQkgIGVjaG8gIioqKiBtYWtlIGl0IGxpbmsgaW4hICBZb3Ugd2lsbCBwcm9iYWJseSBuZWVkIHRvIGluc3RhbGwgaXQgb3Igc29tZSIKKwkJICBlY2hvICIqKiogbGlicmFyeSB0aGF0IGl0IGRlcGVuZHMgb24gYmVmb3JlIHRoaXMgbGlicmFyeSB3aWxsIGJlIGZ1bGx5IgorCQkgIGVjaG8gIioqKiBmdW5jdGlvbmFsLiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBldmVuIGJldHRlci4iCiAJCWZpCiAJCTs7CiAJICAgICAgKikKLQkJbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGkiCisJCWZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkaSIKIAkJOzsKIAkgICAgICBlc2FjCiAJICAgIGRvbmUKQEAgLTY2NDAsMTUgKzc3OTAsMjcgQEAKIAkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCiAJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgogCQkqIiAkYV9kZXBsaWIgIiopCi0JCSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCiAJCSAgYV9kZXBsaWI9IiIKIAkJICA7OwogCQllc2FjCiAJICAgICAgZmkKIAkgICAgICBpZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgogCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAKKwkJaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfZ2xvYiI7IHRoZW4KKwkJICBsaWJuYW1lZ2xvYj1gZnVuY19lY2hvX2FsbCAiJGxpYm5hbWUiIHwgJFNFRCAtZSAkZmlsZV9tYWdpY19nbG9iYAorCQllbHNlCisJCSAgbGlibmFtZWdsb2I9JGxpYm5hbWUKKwkJZmkKKwkJdGVzdCAiJHdhbnRfbm9jYXNlZ2xvYiIgPSB5ZXMgJiYgbm9jYXNlZ2xvYj1gc2hvcHQgLXAgbm9jYXNlZ2xvYmAKIAkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCi0JCSAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lWy4tXSogMj4vZGV2L251bGxgCisJCSAgaWYgdGVzdCAiJHdhbnRfbm9jYXNlZ2xvYiIgPSB5ZXM7IHRoZW4KKwkJICAgIHNob3B0IC1zIG5vY2FzZWdsb2IKKwkJICAgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZWdsb2JbLi1dKiAyPi9kZXYvbnVsbGAKKwkJICAgICRub2Nhc2VnbG9iCisJCSAgZWxzZQorCQkgICAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJuYW1lZ2xvYlsuLV0qIDI+L2Rldi9udWxsYAorCQkgIGZpCiAJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBkbwogCQkgICAgICAjIEZvbGxvdyBzb2Z0IGxpbmtzLgogCQkgICAgICBpZiBscyAtbExkICIkcG90ZW50X2xpYiIgMj4vZGV2L251bGwgfApAQCAtNjY2NSwxMyArNzgyNywxMyBAQAogCQkJcG90bGlibGluaz1gbHMgLWxkICRwb3RsaWIgfCAke1NFRH0gJ3MvLiogLT4gLy8nYAogCQkJY2FzZSAkcG90bGlibGluayBpbgogCQkJW1xcL10qIHwgW0EtWmEtel06W1xcL10qKSBwb3RsaWI9IiRwb3RsaWJsaW5rIjs7Ci0JCQkqKSBwb3RsaWI9YCRFQ0hPICJYJHBvdGxpYiIgfCAkWHNlZCAtZSAncyxbXi9dKiQsLCdgIiRwb3RsaWJsaW5rIjs7CisJCQkqKSBwb3RsaWI9YCRFQ0hPICIkcG90bGliIiB8ICRTRUQgJ3MsW14vXSokLCwnYCIkcG90bGlibGluayI7OwogCQkJZXNhYwogCQkgICAgICBkb25lCiAJCSAgICAgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwiXCRwb3RsaWJcIiAyPi9kZXYvbnVsbCB8CiAJCQkgJFNFRCAtZSAxMHEgfAogCQkJICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCi0JCQluZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisJCQlmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGFfZGVwbGliIgogCQkJYV9kZXBsaWI9IiIKIAkJCWJyZWFrIDIKIAkJICAgICAgZmkKQEAgLTY2ODAsMTIgKzc4NDIsMTIgQEAKIAkgICAgICBmaQogCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCiAJCWRyb3BwZWRkZXBzPXllcwotCQkkRUNITworCQllY2hvCiAJCSRFQ0hPICIqKiogV2FybmluZzogbGlua2VyIHBhdGggZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFfZGVwbGliLiIKLQkJJEVDSE8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0JCSRFQ0hPICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgotCQkkRUNITyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgotCQkkRUNITyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxvb2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKKwkJZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKKwkJZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKKwkJZWNobyAiKioqIHNoYXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBoYXZlIgorCQllY2hvICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5nIgogCQlpZiB0ZXN0IC16ICIkcG90bGliIiA7IHRoZW4KIAkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZC4gKC4uLmZvciBmaWxlIG1hZ2ljIHRlc3QpIgogCQllbHNlCkBAIC02Njk2LDcgKzc4NTgsNyBAQAogCSAgICAgIDs7CiAJICAgICopCiAJICAgICAgIyBBZGQgYSAtTCBhcmd1bWVudC4KLQkgICAgICBuZXdkZXBsaWJzPSIkbmV3ZGVwbGlicyAkYV9kZXBsaWIiCisJICAgICAgZnVuY19hcHBlbmQgbmV3ZGVwbGlicyAiICRhX2RlcGxpYiIKIAkgICAgICA7OwogCSAgICBlc2FjCiAJICBkb25lICMgR29uZSB0aHJvdWdoIGFsbCBkZXBsaWJzLgpAQCAtNjcxMiw3ICs3ODc0LDcgQEAKIAkgICAgICBpZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHllcyIgOyB0aGVuCiAJCWNhc2UgIiAkcHJlZGVwcyAkcG9zdGRlcHMgIiBpbgogCQkqIiAkYV9kZXBsaWIgIiopCi0JCSAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCiAJCSAgYV9kZXBsaWI9IiIKIAkJICA7OwogCQllc2FjCkBAIC02NzIzLDkgKzc4ODUsOSBAQAogCQkgIHBvdGVudGlhbF9saWJzPWBscyAkaS8kbGlibmFtZVsuLV0qIDI+L2Rldi9udWxsYAogCQkgIGZvciBwb3RlbnRfbGliIGluICRwb3RlbnRpYWxfbGliczsgZG8KIAkJICAgIHBvdGxpYj0iJHBvdGVudF9saWIiICMgc2VlIHN5bWxpbmstY2hlY2sgYWJvdmUgaW4gZmlsZV9tYWdpYyB0ZXN0Ci0JCSAgICBpZiBldmFsICJcJEVDSE8gXCJYJHBvdGVudF9saWJcIiIgMj4vZGV2L251bGwgfCAkWHNlZCAtZSAxMHEgfCBcCisJCSAgICBpZiBldmFsICJcJEVDSE8gXCIkcG90ZW50X2xpYlwiIiAyPi9kZXYvbnVsbCB8ICRTRUQgMTBxIHwgXAogCQkgICAgICAgJEVHUkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLQkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkgICAgICBmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGFfZGVwbGliIgogCQkgICAgICBhX2RlcGxpYj0iIgogCQkgICAgICBicmVhayAyCiAJCSAgICBmaQpAQCAtNjczNCwxMiArNzg5NiwxMiBAQAogCSAgICAgIGZpCiAJICAgICAgaWYgdGVzdCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KIAkJZHJvcHBlZGRlcHM9eWVzCi0JCSRFQ0hPCisJCWVjaG8KIAkJJEVDSE8gIioqKiBXYXJuaW5nOiBsaW5rZXIgcGF0aCBkb2VzIG5vdCBoYXZlIHJlYWwgZmlsZSBmb3IgbGlicmFyeSAkYV9kZXBsaWIuIgotCQkkRUNITyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLQkJJEVDSE8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0JCSRFQ0hPICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0JCSRFQ0hPICIqKiogYmVjYXVzZSBJIGRpZCBjaGVjayB0aGUgbGlua2VyIHBhdGggbG9va2luZyBmb3IgYSBmaWxlIHN0YXJ0aW5nIgorCQllY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgorCQllY2hvICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgorCQllY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCisJCWVjaG8gIioqKiBiZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5rZXIgcGF0aCBsb29raW5nIGZvciBhIGZpbGUgc3RhcnRpbmciCiAJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhlbgogCQkgICRFQ0hPICIqKiogd2l0aCAkbGlibmFtZSBidXQgbm8gY2FuZGlkYXRlcyB3ZXJlIGZvdW5kLiAoLi4uZm9yIHJlZ2V4IHBhdHRlcm4gdGVzdCkiCiAJCWVsc2UKQEAgLTY3NTAsMzIgKzc5MTIsMzIgQEAKIAkgICAgICA7OwogCSAgICAqKQogCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCi0JICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCiAJICAgICAgOzsKIAkgICAgZXNhYwogCSAgZG9uZSAjIEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KIAkgIDs7CiAJbm9uZSB8IHVua25vd24gfCAqKQogCSAgbmV3ZGVwbGlicz0iIgotCSAgdG1wX2RlcGxpYnM9YCRFQ0hPICJYICRkZXBsaWJzIiB8ICRYc2VkIFwKLQkgICAgICAtZSAncy8gLWxjJC8vJyAtZSAncy8gLVtMUl1bXiBdKi8vZydgCisJICB0bXBfZGVwbGlicz1gJEVDSE8gIiAkZGVwbGlicyIgfCAkU0VEICdzLyAtbGMkLy87IHMvIC1bTFJdW14gXSovL2cnYAogCSAgaWYgdGVzdCAiWCRhbGxvd19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgogCSAgICBmb3IgaSBpbiAkcHJlZGVwcyAkcG9zdGRlcHMgOyBkbwogCSAgICAgICMgY2FuJ3QgdXNlIFhzZWQgYmVsb3csIGJlY2F1c2UgJGkgbWlnaHQgY29udGFpbiAnLycKLQkgICAgICB0bXBfZGVwbGlicz1gJEVDSE8gIlggJHRtcF9kZXBsaWJzIiB8ICRYc2VkIC1lICJzLCRpLCwiYAorCSAgICAgIHRtcF9kZXBsaWJzPWAkRUNITyAiICR0bXBfZGVwbGlicyIgfCAkU0VEICJzLCRpLCwiYAogCSAgICBkb25lCiAJICBmaQotCSAgaWYgJEVDSE8gIlggJHRtcF9kZXBsaWJzIiB8ICRYc2VkIC1lICdzL1sJIF0vL2cnIHwKLQkgICAgICRHUkVQIC4gPi9kZXYvbnVsbDsgdGhlbgotCSAgICAkRUNITworCSAgY2FzZSAkdG1wX2RlcGxpYnMgaW4KKwkgICpbIVwJXCBdKikKKwkgICAgZWNobwogCSAgICBpZiB0ZXN0ICJYJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA9ICJYbm9uZSI7IHRoZW4KLQkgICAgICAkRUNITyAiKioqIFdhcm5pbmc6IGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBub3Qgc3VwcG9ydGVkIGluIHRoaXMgcGxhdGZvcm0uIgorCSAgICAgIGVjaG8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgbm90IHN1cHBvcnRlZCBpbiB0aGlzIHBsYXRmb3JtLiIKIAkgICAgZWxzZQotCSAgICAgICRFQ0hPICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBrbm93biB0byBiZSBzdXBwb3J0ZWQuIgorCSAgICAgIGVjaG8gIioqKiBXYXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgbm90IGtub3duIHRvIGJlIHN1cHBvcnRlZC4iCiAJICAgIGZpCi0JICAgICRFQ0hPICIqKiogQWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIGFyZSBiZWluZyBkcm9wcGVkLiIKKwkgICAgZWNobyAiKioqIEFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgYmVpbmcgZHJvcHBlZC4iCiAJICAgIGRyb3BwZWRkZXBzPXllcwotCSAgZmkKKwkgICAgOzsKKwkgIGVzYWMKIAkgIDs7CiAJZXNhYwogCXZlcnN1ZmZpeD0kdmVyc3VmZml4X3NhdmUKQEAgLTY3ODcsMjMgKzc5NDksMjMgQEAKIAljYXNlICRob3N0IGluCiAJKi0qLXJoYXBzb2R5KiB8ICotKi1kYXJ3aW4xLlswMTJdKQogCSAgIyBPbiBSaGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgd2l0aCB0aGUgU3lzdGVtIGZyYW1ld29yawotCSAgbmV3ZGVwbGlicz1gJEVDSE8gIlggJG5ld2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AKKwkgIG5ld2RlcGxpYnM9YCRFQ0hPICIgJG5ld2RlcGxpYnMiIHwgJFNFRCAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAogCSAgOzsKIAllc2FjCiAKIAlpZiB0ZXN0ICIkZHJvcHBlZGRlcHMiID0geWVzOyB0aGVuCiAJICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgotCSAgICAkRUNITwotCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IGxpYnRvb2wgY291bGQgbm90IHNhdGlzZnkgYWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkiCisJICAgIGVjaG8KKwkgICAgZWNobyAiKioqIFdhcm5pbmc6IGxpYnRvb2wgY291bGQgbm90IHNhdGlzZnkgYWxsIGRlY2xhcmVkIGludGVyLWxpYnJhcnkiCiAJICAgICRFQ0hPICIqKiogZGVwZW5kZW5jaWVzIG9mIG1vZHVsZSAkbGlibmFtZS4gIFRoZXJlZm9yZSwgbGlidG9vbCB3aWxsIGNyZWF0ZSIKLQkgICAgJEVDSE8gIioqKiBhIHN0YXRpYyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIgotCSAgICAkRUNITyAiKioqIGFwcGxpY2F0aW9uIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcuIgorCSAgICBlY2hvICIqKiogYSBzdGF0aWMgbW9kdWxlLCB0aGF0IHNob3VsZCB3b3JrIGFzIGxvbmcgYXMgdGhlIGRsb3BlbmluZyIKKwkgICAgZWNobyAiKioqIGFwcGxpY2F0aW9uIGlzIGxpbmtlZCB3aXRoIHRoZSAtZGxvcGVuIGZsYWcuIgogCSAgICBpZiB0ZXN0IC16ICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotCSAgICAgICRFQ0hPCi0JICAgICAgJEVDSE8gIioqKiBIb3dldmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qgc3ltYm9sIgotCSAgICAgICRFQ0hPICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgotCSAgICAgICRFQ0hPICIqKiogbm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCi0JICAgICAgJEVDSE8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBmdWxsIHJlYnVpbGQgbWF5IGhlbHAuIgorCSAgICAgIGVjaG8KKwkgICAgICBlY2hvICIqKiogSG93ZXZlciwgdGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJvbCIKKwkgICAgICBlY2hvICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxgbm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgorCSAgICAgIGVjaG8gIioqKiBub3QgZmluZCBzdWNoIGEgcHJvZ3JhbS4gIFNvLCB0aGlzIG1vZHVsZSBpcyBwcm9iYWJseSB1c2VsZXNzLiIKKwkgICAgICBlY2hvICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxwLiIKIAkgICAgZmkKIAkgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCiAJICAgICAgb2xkbGlicz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKQEAgLTY4MTMsMTYgKzc5NzUsMTYgQEAKIAkgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bm8KIAkgICAgZmkKIAkgIGVsc2UKLQkgICAgJEVDSE8gIioqKiBUaGUgaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgdGhhdCBoYXZlIGJlZW4gZHJvcHBlZCBoZXJlIHdpbGwgYmUiCi0JICAgICRFQ0hPICIqKiogYXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggdGhpcyBsaWJyYXJ5IgotCSAgICAkRUNITyAiKioqIG9yIGlzIGRlY2xhcmVkIHRvIC1kbG9wZW4gaXQuIgorCSAgICBlY2hvICIqKiogVGhlIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jaWVzIHRoYXQgaGF2ZSBiZWVuIGRyb3BwZWQgaGVyZSB3aWxsIGJlIgorCSAgICBlY2hvICIqKiogYXV0b21hdGljYWxseSBhZGRlZCB3aGVuZXZlciBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggdGhpcyBsaWJyYXJ5IgorCSAgICBlY2hvICIqKiogb3IgaXMgZGVjbGFyZWQgdG8gLWRsb3BlbiBpdC4iCiAKIAkgICAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZCIgPSBubzsgdGhlbgotCSAgICAgICRFQ0hPCi0JICAgICAgJEVDSE8gIioqKiBTaW5jZSB0aGlzIGxpYnJhcnkgbXVzdCBub3QgY29udGFpbiB1bmRlZmluZWQgc3ltYm9scywiCi0JICAgICAgJEVDSE8gIioqKiBiZWNhdXNlIGVpdGhlciB0aGUgcGxhdGZvcm0gZG9lcyBub3Qgc3VwcG9ydCB0aGVtIG9yIgotCSAgICAgICRFQ0hPICIqKiogaXQgd2FzIGV4cGxpY2l0bHkgcmVxdWVzdGVkIHdpdGggLW5vLXVuZGVmaW5lZCwiCi0JICAgICAgJEVDSE8gIioqKiBsaWJ0b29sIHdpbGwgb25seSBjcmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBvZiBpdC4iCisJICAgICAgZWNobworCSAgICAgIGVjaG8gIioqKiBTaW5jZSB0aGlzIGxpYnJhcnkgbXVzdCBub3QgY29udGFpbiB1bmRlZmluZWQgc3ltYm9scywiCisJICAgICAgZWNobyAiKioqIGJlY2F1c2UgZWl0aGVyIHRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IHRoZW0gb3IiCisJICAgICAgZWNobyAiKioqIGl0IHdhcyBleHBsaWNpdGx5IHJlcXVlc3RlZCB3aXRoIC1uby11bmRlZmluZWQsIgorCSAgICAgIGVjaG8gIioqKiBsaWJ0b29sIHdpbGwgb25seSBjcmVhdGUgYSBzdGF0aWMgdmVyc2lvbiBvZiBpdC4iCiAJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0aGVuCiAJCW9sZGxpYnM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLiRsaWJleHQiCiAJCWJ1aWxkX2xpYnRvb2xfbGlicz1tb2R1bGUKQEAgLTY4MzksOSArODAwMSw5IEBACiAgICAgICAjIFRpbWUgdG8gY2hhbmdlIGFsbCBvdXIgImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29yayBmb28iCiAgICAgICBjYXNlICRob3N0IGluCiAJKi0qLWRhcndpbiopCi0JICBuZXdkZXBsaWJzPWAkRUNITyAiWCAkbmV3ZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLQkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiWCAkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0JICBkZXBsaWJzPWAkRUNITyAiWCAkZGVwbGlicyIgfCAkWHNlZCAtZSAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwkgIG5ld2RlcGxpYnM9YCRFQ0hPICIgJG5ld2RlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAorCSAgZGVwbGlicz1gJEVDSE8gIiAkZGVwbGlicyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAogCSAgOzsKICAgICAgIGVzYWMKIApAQCAtNjg1NCw3ICs4MDE2LDcgQEAKIAkqKQogCSAgY2FzZSAiICRkZXBsaWJzICIgaW4KIAkgICoiIC1MJHBhdGgvJG9iamRpciAiKikKLQkgICAgbmV3X2xpYnM9IiRuZXdfbGlicyAtTCRwYXRoLyRvYmpkaXIiIDs7CisJICAgIGZ1bmNfYXBwZW5kIG5ld19saWJzICIgLUwkcGF0aC8kb2JqZGlyIiA7OwogCSAgZXNhYwogCSAgOzsKIAllc2FjCkBAIC02ODY0LDEwICs4MDI2LDEwIEBACiAJLUwqKQogCSAgY2FzZSAiICRuZXdfbGlicyAiIGluCiAJICAqIiAkZGVwbGliICIqKSA7OwotCSAgKikgbmV3X2xpYnM9IiRuZXdfbGlicyAkZGVwbGliIiA7OworCSAgKikgZnVuY19hcHBlbmQgbmV3X2xpYnMgIiAkZGVwbGliIiA7OwogCSAgZXNhYwogCSAgOzsKLQkqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7CisJKikgZnVuY19hcHBlbmQgbmV3X2xpYnMgIiAkZGVwbGliIiA7OwogCWVzYWMKICAgICAgIGRvbmUKICAgICAgIGRlcGxpYnM9IiRuZXdfbGlicyIKQEAgLTY4NzksMTUgKzgwNDEsMjIgQEAKIAogICAgICAgIyBUZXN0IGFnYWluLCB3ZSBtYXkgaGF2ZSBkZWNpZGVkIG5vdCB0byBidWlsZCBpdCBhbnkgbW9yZQogICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXM7IHRoZW4KKwkjIFJlbW92ZSAke3dsfSBpbnN0YW5jZXMgd2hlbiBsaW5raW5nIHdpdGggbGQuCisJIyBGSVhNRTogc2hvdWxkIHRlc3QgdGhlIHJpZ2h0IF9jbWRzIHZhcmlhYmxlLgorCWNhc2UgJGFyY2hpdmVfY21kcyBpbgorCSAgKlwkTERcICopIHdsPSA7OworICAgICAgICBlc2FjCiAJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgPSB5ZXM7IHRoZW4KIAkgICMgSGFyZGNvZGUgdGhlIGxpYnJhcnkgcGF0aHMKIAkgIGhhcmRjb2RlX2xpYmRpcnM9CiAJICBkZXBfcnBhdGg9CiAJICBycGF0aD0iJGZpbmFsaXplX3JwYXRoIgotCSAgdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCisJICB0ZXN0ICIkb3B0X21vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBhdGgiCiAJICBmb3IgbGliZGlyIGluICRycGF0aDsgZG8KIAkgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiOyB0aGVuCiAJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCisJCWZ1bmNfcmVwbGFjZV9zeXNyb290ICIkbGliZGlyIgorCQlsaWJkaXI9JGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3VsdAogCQlpZiB0ZXN0IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KIAkJICBoYXJkY29kZV9saWJkaXJzPSIkbGliZGlyIgogCQllbHNlCkBAIC02ODk2LDE4ICs4MDY1LDE4IEBACiAJCSAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQogCQkgICAgOzsKIAkJICAqKQotCQkgICAgaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisJCSAgICBmdW5jX2FwcGVuZCBoYXJkY29kZV9saWJkaXJzICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCiAJCSAgICA7OwogCQkgIGVzYWMKIAkJZmkKIAkgICAgICBlbHNlCiAJCWV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLQkJZGVwX3JwYXRoPSIkZGVwX3JwYXRoICRmbGFnIgorCQlmdW5jX2FwcGVuZCBkZXBfcnBhdGggIiAkZmxhZyIKIAkgICAgICBmaQogCSAgICBlbGlmIHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KIAkgICAgICBjYXNlICIkcGVybV9ycGF0aCAiIGluCiAJICAgICAgKiIgJGxpYmRpciAiKikgOzsKLQkgICAgICAqKSBwZXJtX3JwYXRoPSIkcGVybV9ycGF0aCAkbGliZGlyIiA7OworCSAgICAgICopIGZ1bmNfYXBwZW5kIHBlcm1fcnBhdGggIiAkbGliZGlyIiA7OwogCSAgICAgIGVzYWMKIAkgICAgZmkKIAkgIGRvbmUKQEAgLTY5MTUsMTcgKzgwODQsMTMgQEAKIAkgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgogCSAgICAgdGVzdCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCiAJICAgIGxpYmRpcj0iJGhhcmRjb2RlX2xpYmRpcnMiCi0JICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIjsgdGhlbgotCSAgICAgIGV2YWwgZGVwX3JwYXRoPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRcIgotCSAgICBlbHNlCi0JICAgICAgZXZhbCBkZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0JICAgIGZpCisJICAgIGV2YWwgImRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIiCiAJICBmaQogCSAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KIAkgICAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KIAkgICAgcnBhdGg9CiAJICAgIGZvciBkaXIgaW4gJHBlcm1fcnBhdGg7IGRvCi0JICAgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorCSAgICAgIGZ1bmNfYXBwZW5kIHJwYXRoICIkZGlyOiIKIAkgICAgZG9uZQogCSAgICBldmFsICIkcnVucGF0aF92YXI9JyRycGF0aFwkJHJ1bnBhdGhfdmFyJzsgZXhwb3J0ICRydW5wYXRoX3ZhciIKIAkgIGZpCkBAIC02OTMzLDcgKzgwOTgsNyBAQAogCWZpCiAKIAlzaGxpYnBhdGg9IiRmaW5hbGl6ZV9zaGxpYnBhdGgiCi0JdGVzdCAiJG1vZGUiICE9IHJlbGluayAmJiBzaGxpYnBhdGg9IiRjb21waWxlX3NobGlicGF0aCRzaGxpYnBhdGgiCisJdGVzdCAiJG9wdF9tb2RlIiAhPSByZWxpbmsgJiYgc2hsaWJwYXRoPSIkY29tcGlsZV9zaGxpYnBhdGgkc2hsaWJwYXRoIgogCWlmIHRlc3QgLW4gIiRzaGxpYnBhdGgiOyB0aGVuCiAJICBldmFsICIkc2hsaWJwYXRoX3Zhcj0nJHNobGlicGF0aFwkJHNobGlicGF0aF92YXInOyBleHBvcnQgJHNobGlicGF0aF92YXIiCiAJZmkKQEAgLTY5NTksMTggKzgxMjQsMTggQEAKIAlsaW5rbmFtZXM9CiAJZm9yIGxpbmsKIAlkbwotCSAgbGlua25hbWVzPSIkbGlua25hbWVzICRsaW5rIgorCSAgZnVuY19hcHBlbmQgbGlua25hbWVzICIgJGxpbmsiCiAJZG9uZQogCiAJIyBVc2Ugc3RhbmRhcmQgb2JqZWN0cyBpZiB0aGV5IGFyZSBwaWMKLQl0ZXN0IC16ICIkcGljX2ZsYWciICYmIGxpYm9ianM9YCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKKwl0ZXN0IC16ICIkcGljX2ZsYWciICYmIGxpYm9ianM9YCRFQ0hPICIkbGlib2JqcyIgfCAkU1AyTkwgfCAkU0VEICIkbG8ybyIgfCAkTkwyU1BgCiAJdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KIAogCWRlbGZpbGVzPQogCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KIAkgICRvcHRfZHJ5X3J1biB8fCBjcCAiJGV4cG9ydF9zeW1ib2xzIiAiJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudWV4cCIKIAkgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS51ZXhwIgotCSAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkZXhwb3J0X3N5bWJvbHMiCisJICBmdW5jX2FwcGVuZCBkZWxmaWxlcyAiICRleHBvcnRfc3ltYm9scyIKIAlmaQogCiAJb3JpZ19leHBvcnRfc3ltYm9scz0KQEAgLTcwMDEsMTQgKzgxNjYsNDYgQEAKIAkgICAgJG9wdF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKIAkgICAgY21kcz0kZXhwb3J0X3N5bWJvbHNfY21kcwogCSAgICBzYXZlX2lmcz0iJElGUyI7IElGUz0nficKLQkgICAgZm9yIGNtZCBpbiAkY21kczsgZG8KKwkgICAgZm9yIGNtZDEgaW4gJGNtZHM7IGRvCiAJICAgICAgSUZTPSIkc2F2ZV9pZnMiCi0JICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKLQkgICAgICBmdW5jX2xlbiAiICRjbWQiCi0JICAgICAgbGVuPSRmdW5jX2xlbl9yZXN1bHQKLQkgICAgICBpZiB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4KKwkgICAgICAjIFRha2UgdGhlIG5vcm1hbCBicmFuY2ggaWYgdGhlIG5tX2ZpbGVfbGlzdF9zcGVjIGJyYW5jaAorCSAgICAgICMgZG9lc24ndCB3b3JrIG9yIGlmIHRvb2wgY29udmVyc2lvbiBpcyBub3QgbmVlZGVkLgorCSAgICAgIGNhc2UgJG5tX2ZpbGVfbGlzdF9zcGVjfiR0b190b29sX2ZpbGVfY21kIGluCisJCSp+ZnVuY19jb252ZXJ0X2ZpbGVfbm9vcCB8ICp+ZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIgfCB+KikKKwkJICB0cnlfbm9ybWFsX2JyYW5jaD15ZXMKKwkJICBldmFsIGNtZD1cIiRjbWQxXCIKKwkJICBmdW5jX2xlbiAiICRjbWQiCisJCSAgbGVuPSRmdW5jX2xlbl9yZXN1bHQKKwkJICA7OworCQkqKQorCQkgIHRyeV9ub3JtYWxfYnJhbmNoPW5vCisJCSAgOzsKKwkgICAgICBlc2FjCisJICAgICAgaWYgdGVzdCAiJHRyeV9ub3JtYWxfYnJhbmNoIiA9IHllcyBcCisJCSAmJiB7IHRlc3QgIiRsZW4iIC1sdCAiJG1heF9jbWRfbGVuIiBcCisJCSAgICAgIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB9CisJICAgICAgdGhlbgogCQlmdW5jX3Nob3dfZXZhbCAiJGNtZCIgJ2V4aXQgJD8nCiAJCXNraXBwZWRfZXhwb3J0PWZhbHNlCisJICAgICAgZWxpZiB0ZXN0IC1uICIkbm1fZmlsZV9saXN0X3NwZWMiOyB0aGVuCisJCWZ1bmNfYmFzZW5hbWUgIiRvdXRwdXQiCisJCW91dHB1dF9sYT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKKwkJc2F2ZV9saWJvYmpzPSRsaWJvYmpzCisJCXNhdmVfb3V0cHV0PSRvdXRwdXQKKwkJb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9Lm5tCisJCWZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0IgorCQlsaWJvYmpzPSRubV9maWxlX2xpc3Rfc3BlYyRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQKKwkJZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAkb3V0cHV0IgorCQlmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICROTSBpbnB1dCBmaWxlIGxpc3Q6ICRvdXRwdXQiCisJCWZvciBvYmogaW4gJHNhdmVfbGlib2JqczsgZG8KKwkJICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG9iaiIKKwkJICAkRUNITyAiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIKKwkJZG9uZSA+ICIkb3V0cHV0IgorCQlldmFsIGNtZD1cIiRjbWQxXCIKKwkJZnVuY19zaG93X2V2YWwgIiRjbWQiICdleGl0ICQ/JworCQlvdXRwdXQ9JHNhdmVfb3V0cHV0CisJCWxpYm9ianM9JHNhdmVfbGlib2JqcworCQlza2lwcGVkX2V4cG9ydD1mYWxzZQogCSAgICAgIGVsc2UKIAkJIyBUaGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGV4ZWN1dGUgaW4gb25lIHN0ZXAuCiAJCWZ1bmNfdmVyYm9zZSAidXNpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZSBmb3IgZXhwb3J0IGxpc3QuLi4iCkBAIC03MDI5LDcgKzgyMjYsNyBAQAogCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KIAkgIHRtcF9leHBvcnRfc3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgogCSAgdGVzdCAtbiAiJG9yaWdfZXhwb3J0X3N5bWJvbHMiICYmIHRtcF9leHBvcnRfc3ltYm9scz0iJG9yaWdfZXhwb3J0X3N5bWJvbHMiCi0JICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zIiB8ICRYc2VkIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICckRUNITyAiJGluY2x1ZGVfZXhwc3ltcyIgfCAkU1AyTkwgPj4gIiR0bXBfZXhwb3J0X3N5bWJvbHMiJwogCWZpCiAKIAlpZiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIjsgdGhlbgpAQCAtNzA0MSw3ICs4MjM4LDcgQEAKIAkgICMgZ2xvYmFsIHZhcmlhYmxlcy4gam9pbigxKSB3b3VsZCBiZSBuaWNlIGhlcmUsIGJ1dCB1bmZvcnR1bmF0ZWx5CiAJICAjIGlzbid0IGEgYmxlc3NlZCB0b29sLgogCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9bICxdREFUQS8hZDtzLFwoLipcKVwoWyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyCi0JICBkZWxmaWxlcz0iJGRlbGZpbGVzICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCisJICBmdW5jX2FwcGVuZCBkZWxmaWxlcyAiICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCiAJICBleHBvcnRfc3ltYm9scz0kb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYKIAkgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCiAJZmkKQEAgLTcwNTEsNyArODI0OCw3IEBACiAJICBjYXNlICIgJGNvbnZlbmllbmNlICIgaW4KIAkgICoiICR0ZXN0X2RlcGxpYiAiKikgOzsKIAkgICopCi0JICAgIHRtcF9kZXBsaWJzPSIkdG1wX2RlcGxpYnMgJHRlc3RfZGVwbGliIgorCSAgICBmdW5jX2FwcGVuZCB0bXBfZGVwbGlicyAiICR0ZXN0X2RlcGxpYiIKIAkgICAgOzsKIAkgIGVzYWMKIAlkb25lCkBAIC03MDcxLDIxICs4MjY4LDIxIEBACiAJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CiAJICBlbHNlCiAJICAgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0JICAgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorCSAgICBmdW5jX2FwcGVuZCBnZW5lcmF0ZWQgIiAkZ2VudG9wIgogCiAJICAgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRjb252ZW5pZW5jZQotCSAgICBsaWJvYmpzPSIkbGlib2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKKwkgICAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgogCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQogCSAgZmkKIAlmaQogCiAJaWYgdGVzdCAiJHRocmVhZF9zYWZlIiA9IHllcyAmJiB0ZXN0IC1uICIkdGhyZWFkX3NhZmVfZmxhZ19zcGVjIjsgdGhlbgogCSAgZXZhbCBmbGFnPVwiJHRocmVhZF9zYWZlX2ZsYWdfc3BlY1wiCi0JICBsaW5rZXJfZmxhZ3M9IiRsaW5rZXJfZmxhZ3MgJGZsYWciCisJICBmdW5jX2FwcGVuZCBsaW5rZXJfZmxhZ3MgIiAkZmxhZyIKIAlmaQogCiAJIyBNYWtlIGEgYmFja3VwIG9mIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IHdoZW4gcmVsaW5raW5nCi0JaWYgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB0aGVuCisJaWYgdGVzdCAiJG9wdF9tb2RlIiA9IHJlbGluazsgdGhlbgogCSAgJG9wdF9kcnlfcnVuIHx8IGV2YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkUk0gJHtyZWFsbmFtZX1VICYmICRNViAkcmVhbG5hbWUgJHtyZWFsbmFtZX1VKScgfHwgZXhpdCAkPwogCWZpCiAKQEAgLTcxMzAsNyArODMyNyw4IEBACiAJICAgIHNhdmVfbGlib2Jqcz0kbGlib2JqcwogCSAgZmkKIAkgIHNhdmVfb3V0cHV0PSRvdXRwdXQKLQkgIG91dHB1dF9sYT1gJEVDSE8gIlgkb3V0cHV0IiB8ICRYc2VkIC1lICIkYmFzZW5hbWUiYAorCSAgZnVuY19iYXNlbmFtZSAiJG91dHB1dCIKKwkgIG91dHB1dF9sYT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKIAogCSAgIyBDbGVhciB0aGUgcmVsb2FkYWJsZSBvYmplY3QgY3JlYXRpb24gY29tbWFuZCBxdWV1ZSBhbmQKIAkgICMgaW5pdGlhbGl6ZSBrIHRvIG9uZS4KQEAgLTcxNDMsMTMgKzgzNDEsMTYgQEAKIAkgIGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmIHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgogCSAgICBvdXRwdXQ9JHtvdXRwdXRfb2JqZGlyfS8ke291dHB1dF9sYX0ubG5rc2NyaXB0CiAJICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRpbmcgR05VIGxkIHNjcmlwdDogJG91dHB1dCIKLQkgICAgJEVDSE8gJ0lOUFVUICgnID4gJG91dHB1dAorCSAgICBlY2hvICdJTlBVVCAoJyA+ICRvdXRwdXQKIAkgICAgZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzCiAJICAgIGRvCi0JICAgICAgJEVDSE8gIiRvYmoiID4+ICRvdXRwdXQKKwkgICAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG9iaiIKKwkgICAgICAkRUNITyAiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIgPj4gJG91dHB1dAogCSAgICBkb25lCi0JICAgICRFQ0hPICcpJyA+PiAkb3V0cHV0Ci0JICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1dCIKKwkgICAgZWNobyAnKScgPj4gJG91dHB1dAorCSAgICBmdW5jX2FwcGVuZCBkZWxmaWxlcyAiICRvdXRwdXQiCisJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0IgorCSAgICBvdXRwdXQ9JGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdAogCSAgZWxpZiB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiICYmIHRlc3QgIlgkZmlsZV9saXN0X3NwZWMiICE9IFg7IHRoZW4KIAkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9LmxuawogCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIGxpbmtlciBpbnB1dCBmaWxlIGxpc3Q6ICRvdXRwdXQiCkBAIC03MTYzLDEwICs4MzY0LDEyIEBACiAJICAgIGZpCiAJICAgIGZvciBvYmoKIAkgICAgZG8KLQkgICAgICAkRUNITyAiJG9iaiIgPj4gJG91dHB1dAorCSAgICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb2JqIgorCSAgICAgICRFQ0hPICIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiA+PiAkb3V0cHV0CiAJICAgIGRvbmUKLQkgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0IgotCSAgICBvdXRwdXQ9JGZpcnN0b2JqXCIkZmlsZV9saXN0X3NwZWMkb3V0cHV0XCIKKwkgICAgZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAkb3V0cHV0IgorCSAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dCIKKwkgICAgb3V0cHV0PSRmaXJzdG9ialwiJGZpbGVfbGlzdF9zcGVjJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiCiAJICBlbHNlCiAJICAgIGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiOyB0aGVuCiAJICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4uLiIKQEAgLTcxOTAsMTcgKzgzOTMsMTkgQEAKIAkJICAjIGNvbW1hbmQgdG8gdGhlIHF1ZXVlLgogCQkgIGlmIHRlc3QgIiRrIiAtZXEgMSA7IHRoZW4KIAkJICAgICMgVGhlIGZpcnN0IGZpbGUgZG9lc24ndCBoYXZlIGEgcHJldmlvdXMgY29tbWFuZCB0byBhZGQuCi0JCSAgICBldmFsIGNvbmNhdF9jbWRzPVwiJHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmpcIgorCQkgICAgcmVsb2FkX29ianM9JG9iamxpc3QKKwkJICAgIGV2YWwgY29uY2F0X2NtZHM9XCIkcmVsb2FkX2NtZHNcIgogCQkgIGVsc2UKIAkJICAgICMgQWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXMgd2lsbCBsaW5rIGluCiAJCSAgICAjIHRoZSBsYXN0IG9uZSBjcmVhdGVkLgotCQkgICAgZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+JHJlbG9hZF9jbWRzICRvYmpsaXN0ICRsYXN0X3JvYmp+XCRSTSAkbGFzdF9yb2JqXCIKKwkJICAgIHJlbG9hZF9vYmpzPSIkb2JqbGlzdCAkbGFzdF9yb2JqIgorCQkgICAgZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+JHJlbG9hZF9jbWRzflwkUk0gJGxhc3Rfcm9ialwiCiAJCSAgZmkKIAkJICBsYXN0X3JvYmo9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKIAkJICBmdW5jX2FyaXRoICRrICsgMQogCQkgIGs9JGZ1bmNfYXJpdGhfcmVzdWx0CiAJCSAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0Ci0JCSAgb2JqbGlzdD0kb2JqCisJCSAgb2JqbGlzdD0iICRvYmoiCiAJCSAgZnVuY19sZW4gIiAkbGFzdF9yb2JqIgogCQkgIGZ1bmNfYXJpdGggJGxlbjAgKyAkZnVuY19sZW5fcmVzdWx0CiAJCSAgbGVuPSRmdW5jX2FyaXRoX3Jlc3VsdApAQCAtNzIxMCwxMSArODQxNSwxMiBAQAogCSAgICAgICMgcmVsb2FkYWJsZSBvYmplY3QgZmlsZS4gIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0CiAJICAgICAgIyBmaWxlcyB3aWxsIGxpbmsgaW4gdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCiAJICAgICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+Ci0JICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfSRyZWxvYWRfY21kcyAkb2JqbGlzdCAkbGFzdF9yb2JqXCIKKwkgICAgICByZWxvYWRfb2Jqcz0iJG9iamxpc3QgJGxhc3Rfcm9iaiIKKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwiXCR7Y29uY2F0X2NtZHN9JHJlbG9hZF9jbWRzXCIKIAkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsgdGhlbgogCSAgICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfX5cJFJNICRsYXN0X3JvYmpcIgogCSAgICAgIGZpCi0JICAgICAgZGVsZmlsZXM9IiRkZWxmaWxlcyAkb3V0cHV0IgorCSAgICAgIGZ1bmNfYXBwZW5kIGRlbGZpbGVzICIgJG91dHB1dCIKIAogCSAgICBlbHNlCiAJICAgICAgb3V0cHV0PQpAQCAtNzI0OCw3ICs4NDU0LDcgQEAKIAkJbHRfZXhpdD0kPwogCiAJCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAotCQlpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKwkJaWYgdGVzdCAiJG9wdF9tb2RlIiA9IHJlbGluazsgdGhlbgogCQkgICggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiBcCiAJCSAgICAkUk0gIiR7cmVhbG5hbWV9VCIgJiYgXAogCQkgICAgJE1WICIke3JlYWxuYW1lfVUiICIkcmVhbG5hbWUiICkKQEAgLTcyNjksNyArODQ3NSw3IEBACiAJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KIAkgICAgICB0bXBfZXhwb3J0X3N5bWJvbHM9IiRleHBvcnRfc3ltYm9scyIKIAkgICAgICB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyIgJiYgdG1wX2V4cG9ydF9zeW1ib2xzPSIkb3JpZ19leHBvcnRfc3ltYm9scyIKLQkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIlgkaW5jbHVkZV9leHBzeW1zIiB8ICRYc2VkIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIiRpbmNsdWRlX2V4cHN5bXMiIHwgJFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKIAkgICAgZmkKIAogCSAgICBpZiB0ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KQEAgLTcyODEsNyArODQ4Nyw3IEBACiAJICAgICAgIyBnbG9iYWwgdmFyaWFibGVzLiBqb2luKDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IHVuZm9ydHVuYXRlbHkKIAkgICAgICAjIGlzbid0IGEgYmxlc3NlZCB0b29sLgogCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1lICcvWyAsXURBVEEvIWQ7cyxcKC4qXClcKFsgXCxdLipcKSxzfF5cMSR8XDFcMnwsJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlcgotCSAgICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciIKKwkgICAgICBmdW5jX2FwcGVuZCBkZWxmaWxlcyAiICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5maWx0ZXIiCiAJICAgICAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmCiAJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWYgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIDwgJG9yaWdfZXhwb3J0X3N5bWJvbHMgPiAkZXhwb3J0X3N5bWJvbHMKIAkgICAgZmkKQEAgLTczMjIsMTAgKzg1MjgsMTAgQEAKIAkjIEFkZCBhbnkgb2JqZWN0cyBmcm9tIHByZWxvYWRlZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMKIAlpZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KIAkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0JICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKwkgIGZ1bmNfYXBwZW5kIGdlbmVyYXRlZCAiICRnZW50b3AiCiAKIAkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHByZWZpbGVzCi0JICBsaWJvYmpzPSIkbGlib2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKKwkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKIAkgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9CiAJZmkKIApAQCAtNzM0MSw3ICs4NTQ3LDcgQEAKIAkgICAgbHRfZXhpdD0kPwogCiAJICAgICMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAotCSAgICBpZiB0ZXN0ICIkbW9kZSIgPSByZWxpbms7IHRoZW4KKwkgICAgaWYgdGVzdCAiJG9wdF9tb2RlIiA9IHJlbGluazsgdGhlbgogCSAgICAgICggY2QgIiRvdXRwdXRfb2JqZGlyIiAmJiBcCiAJICAgICAgICAkUk0gIiR7cmVhbG5hbWV9VCIgJiYgXAogCQkkTVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQpAQCAtNzM1Myw3ICs4NTU5LDcgQEAKIAlJRlM9IiRzYXZlX2lmcyIKIAogCSMgUmVzdG9yZSB0aGUgdW5pbnN0YWxsZWQgbGlicmFyeSBhbmQgZXhpdAotCWlmIHRlc3QgIiRtb2RlIiA9IHJlbGluazsgdGhlbgorCWlmIHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KIAkgICRvcHRfZHJ5X3J1biB8fCBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJFJNICR7cmVhbG5hbWV9VCAmJiAkTVYgJHJlYWxuYW1lICR7cmVhbG5hbWV9VCAmJiAkTVYgJHtyZWFsbmFtZX1VICRyZWFsbmFtZSknIHx8IGV4aXQgJD8KIAogCSAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgpAQCAtNzQzNCwxOCArODY0MCwyMSBAQAogICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgogCWlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyI7IHRoZW4KIAkgIGV2YWwgdG1wX3dob2xlX2FyY2hpdmVfZmxhZ3M9XCIkd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNcIgotCSAgcmVsb2FkX2NvbnZfb2Jqcz0kcmVsb2FkX29ianNcIGAkRUNITyAiWCR0bXBfd2hvbGVfYXJjaGl2ZV9mbGFncyIgfCAkWHNlZCAtZSAnc3wsfCB8ZydgCisJICByZWxvYWRfY29udl9vYmpzPSRyZWxvYWRfb2Jqc1wgYCRFQ0hPICIkdG1wX3dob2xlX2FyY2hpdmVfZmxhZ3MiIHwgJFNFRCAnc3wsfCB8ZydgCiAJZWxzZQogCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke29ian14IgotCSAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50b3AiCisJICBmdW5jX2FwcGVuZCBnZW5lcmF0ZWQgIiAkZ2VudG9wIgogCiAJICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKIAkgIHJlbG9hZF9jb252X29ianM9IiRyZWxvYWRfb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKIAlmaQogICAgICAgZmkKIAorICAgICAgIyBJZiB3ZSdyZSBub3QgYnVpbGRpbmcgc2hhcmVkLCB3ZSBuZWVkIHRvIHVzZSBub25fcGljX29ianMKKyAgICAgIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiICE9IHllcyAmJiBsaWJvYmpzPSIkbm9uX3BpY19vYmplY3RzIgorCiAgICAgICAjIENyZWF0ZSB0aGUgb2xkLXN0eWxlIG9iamVjdC4KLSAgICAgIHJlbG9hZF9vYmpzPSIkb2JqcyRvbGRfZGVwbGlicyAiYCRFQ0hPICJYJGxpYm9ianMiIHwgJFNQMk5MIHwgJFhzZWQgLWUgJy9cLicke2xpYmV4dH0kJy9kJyAtZSAnL1wubGliJC9kJyAtZSAiJGxvMm8iIHwgJE5MMlNQYCIgJHJlbG9hZF9jb252X29ianMiICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVzdAorICAgICAgcmVsb2FkX29ianM9IiRvYmpzJG9sZF9kZXBsaWJzICJgJEVDSE8gIiRsaWJvYmpzIiB8ICRTUDJOTCB8ICRTRUQgIi9cLiR7bGliZXh0fSQvZDsgL1wubGliJC9kOyAkbG8ybyIgfCAkTkwyU1BgIiAkcmVsb2FkX2NvbnZfb2JqcyIgIyMjIHRlc3RzdWl0ZTogc2tpcCBuZXN0ZWQgcXVvdGluZyB0ZXN0CiAKICAgICAgIG91dHB1dD0iJG9iaiIKICAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcmVsb2FkX2NtZHMiICdleGl0ICQ/JwpAQCAtNzUwNSw4ICs4NzE0LDggQEAKICAgICAgIGNhc2UgJGhvc3QgaW4KICAgICAgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKIAkjIE9uIFJoYXBzb2R5IHJlcGxhY2UgdGhlIEMgbGlicmFyeSBpcyB0aGUgU3lzdGVtIGZyYW1ld29yawotCWNvbXBpbGVfZGVwbGlicz1gJEVDSE8gIlggJGNvbXBpbGVfZGVwbGlicyIgfCAkWHNlZCAtZSAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAotCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICJYICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRYc2VkIC1lICdzLyAtbGMgLyBTeXN0ZW0ubHRmcmFtZXdvcmsgLydgCisJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiICRjb21waWxlX2RlcGxpYnMiIHwgJFNFRCAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAorCWZpbmFsaXplX2RlcGxpYnM9YCRFQ0hPICIgJGZpbmFsaXplX2RlcGxpYnMiIHwgJFNFRCAncy8gLWxjIC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAogCTs7CiAgICAgICBlc2FjCiAKQEAgLTc1MTcsMTQgKzg3MjYsMTQgQEAKIAlpZiB0ZXN0ICIkdGFnbmFtZSIgPSBDWFggOyB0aGVuCiAJICBjYXNlICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9IGluCiAJICAgIDEwLlswMTIzXSkKLQkgICAgICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJHt3bH0tYmluZF9hdF9sb2FkIgotCSAgICAgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICR7d2x9LWJpbmRfYXRfbG9hZCIKKwkgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAke3dsfS1iaW5kX2F0X2xvYWQiCisJICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICR7d2x9LWJpbmRfYXRfbG9hZCIKIAkgICAgOzsKIAkgIGVzYWMKIAlmaQogCSMgVGltZSB0byBjaGFuZ2UgYWxsIG91ciAiZm9vLmx0ZnJhbWV3b3JrIiBzdHVmZiBiYWNrIHRvICItZnJhbWV3b3JrIGZvbyIKLQljb21waWxlX2RlcGxpYnM9YCRFQ0hPICJYICRjb21waWxlX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0JZmluYWxpemVfZGVwbGlicz1gJEVDSE8gIlggJGZpbmFsaXplX2RlcGxpYnMiIHwgJFhzZWQgLWUgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCisJY29tcGlsZV9kZXBsaWJzPWAkRUNITyAiICRjb21waWxlX2RlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKKwlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiICRmaW5hbGl6ZV9kZXBsaWJzIiB8ICRTRUQgJ3MlIFwoW14gJF0qXCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCiAJOzsKICAgICAgIGVzYWMKIApAQCAtNzUzOCw3ICs4NzQ3LDcgQEAKIAkqKQogCSAgY2FzZSAiICRjb21waWxlX2RlcGxpYnMgIiBpbgogCSAgKiIgLUwkcGF0aC8kb2JqZGlyICIqKQotCSAgICBuZXdfbGlicz0iJG5ld19saWJzIC1MJHBhdGgvJG9iamRpciIgOzsKKwkgICAgZnVuY19hcHBlbmQgbmV3X2xpYnMgIiAtTCRwYXRoLyRvYmpkaXIiIDs7CiAJICBlc2FjCiAJICA7OwogCWVzYWMKQEAgLTc1NDgsMTcgKzg3NTcsMTcgQEAKIAktTCopCiAJICBjYXNlICIgJG5ld19saWJzICIgaW4KIAkgICoiICRkZXBsaWIgIiopIDs7Ci0JICAqKSBuZXdfbGlicz0iJG5ld19saWJzICRkZXBsaWIiIDs7CisJICAqKSBmdW5jX2FwcGVuZCBuZXdfbGlicyAiICRkZXBsaWIiIDs7CiAJICBlc2FjCiAJICA7OwotCSopIG5ld19saWJzPSIkbmV3X2xpYnMgJGRlcGxpYiIgOzsKKwkqKSBmdW5jX2FwcGVuZCBuZXdfbGlicyAiICRkZXBsaWIiIDs7CiAJZXNhYwogICAgICAgZG9uZQogICAgICAgY29tcGlsZV9kZXBsaWJzPSIkbmV3X2xpYnMiCiAKIAotICAgICAgY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kICRjb21waWxlX2RlcGxpYnMiCi0gICAgICBmaW5hbGl6ZV9jb21tYW5kPSIkZmluYWxpemVfY29tbWFuZCAkZmluYWxpemVfZGVwbGlicyIKKyAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRjb21waWxlX2RlcGxpYnMiCisgICAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGZpbmFsaXplX2RlcGxpYnMiCiAKICAgICAgIGlmIHRlc3QgLW4gIiRycGF0aCR4cnBhdGgiOyB0aGVuCiAJIyBJZiB0aGUgdXNlciBzcGVjaWZpZWQgYW55IHJwYXRoIGZsYWdzLCB0aGVuIGFkZCB0aGVtLgpAQCAtNzU2Niw3ICs4Nzc1LDcgQEAKIAkgICMgVGhpcyBpcyB0aGUgbWFnaWMgdG8gdXNlIC1ycGF0aC4KIAkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCiAJICAqIiAkbGliZGlyICIqKSA7OwotCSAgKikgZmluYWxpemVfcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCAkbGliZGlyIiA7OworCSAgKikgZnVuY19hcHBlbmQgZmluYWxpemVfcnBhdGggIiAkbGliZGlyIiA7OwogCSAgZXNhYwogCWRvbmUKICAgICAgIGZpCkBAIC03NTg1LDE4ICs4Nzk0LDE4IEBACiAJICAgICAgKiIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIqKQogCQk7OwogCSAgICAgICopCi0JCWhhcmRjb2RlX2xpYmRpcnM9IiRoYXJkY29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyIgorCQlmdW5jX2FwcGVuZCBoYXJkY29kZV9saWJkaXJzICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCiAJCTs7CiAJICAgICAgZXNhYwogCSAgICBmaQogCSAgZWxzZQogCSAgICBldmFsIGZsYWc9XCIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY1wiCi0JICAgIHJwYXRoPSIkcnBhdGggJGZsYWciCisJICAgIGZ1bmNfYXBwZW5kIHJwYXRoICIgJGZsYWciCiAJICBmaQogCWVsaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFyIjsgdGhlbgogCSAgY2FzZSAiJHBlcm1fcnBhdGggIiBpbgogCSAgKiIgJGxpYmRpciAiKikgOzsKLQkgICopIHBlcm1fcnBhdGg9IiRwZXJtX3JwYXRoICRsaWJkaXIiIDs7CisJICAqKSBmdW5jX2FwcGVuZCBwZXJtX3JwYXRoICIgJGxpYmRpciIgOzsKIAkgIGVzYWMKIAlmaQogCWNhc2UgJGhvc3QgaW4KQEAgLTc2MDUsMTIgKzg4MTQsMTIgQEAKIAkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgogCSAgKiI6JGxpYmRpcjoiKikgOzsKIAkgIDo6KSBkbGxzZWFyY2hwYXRoPSRsaWJkaXI7OwotCSAgKikgZGxsc2VhcmNocGF0aD0iJGRsbHNlYXJjaHBhdGg6JGxpYmRpciI7OworCSAgKikgZnVuY19hcHBlbmQgZGxsc2VhcmNocGF0aCAiOiRsaWJkaXIiOzsKIAkgIGVzYWMKIAkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgogCSAgKiI6JHRlc3RiaW5kaXI6IiopIDs7CiAJICA6OikgZGxsc2VhcmNocGF0aD0kdGVzdGJpbmRpcjs7Ci0JICAqKSBkbGxzZWFyY2hwYXRoPSIkZGxsc2VhcmNocGF0aDokdGVzdGJpbmRpciI7OworCSAgKikgZnVuY19hcHBlbmQgZGxsc2VhcmNocGF0aCAiOiR0ZXN0YmluZGlyIjs7CiAJICBlc2FjCiAJICA7OwogCWVzYWMKQEAgLTc2MzYsMTggKzg4NDUsMTggQEAKIAkgICAgICAqIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCiAJCTs7CiAJICAgICAgKikKLQkJaGFyZGNvZGVfbGliZGlycz0iJGhhcmRjb2RlX2xpYmRpcnMkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCisJCWZ1bmNfYXBwZW5kIGhhcmRjb2RlX2xpYmRpcnMgIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKIAkJOzsKIAkgICAgICBlc2FjCiAJICAgIGZpCiAJICBlbHNlCiAJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLQkgICAgcnBhdGg9IiRycGF0aCAkZmxhZyIKKwkgICAgZnVuY19hcHBlbmQgcnBhdGggIiAkZmxhZyIKIAkgIGZpCiAJZWxpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCiAJICBjYXNlICIkZmluYWxpemVfcGVybV9ycGF0aCAiIGluCiAJICAqIiAkbGliZGlyICIqKSA7OwotCSAgKikgZmluYWxpemVfcGVybV9ycGF0aD0iJGZpbmFsaXplX3Blcm1fcnBhdGggJGxpYmRpciIgOzsKKwkgICopIGZ1bmNfYXBwZW5kIGZpbmFsaXplX3Blcm1fcnBhdGggIiAkbGliZGlyIiA7OwogCSAgZXNhYwogCWZpCiAgICAgICBkb25lCkBAIC03NjYxLDggKzg4NzAsOCBAQAogCiAgICAgICBpZiB0ZXN0IC1uICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgogCSMgVHJhbnNmb3JtIGFsbCB0aGUgbGlicmFyeSBvYmplY3RzIGludG8gc3RhbmRhcmQgb2JqZWN0cy4KLQljb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkU1AyTkwgfCAkWHNlZCAtZSAiJGxvMm8iIHwgJE5MMlNQYAotCWZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICJYJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFhzZWQgLWUgIiRsbzJvIiB8ICROTDJTUGAKKwljb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTUDJOTCB8ICRTRUQgIiRsbzJvIiB8ICROTDJTUGAKKwlmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQYAogICAgICAgZmkKIAogICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRvdXRwdXRuYW1lIiAiQFBST0dSQU1AIiAibm8iCkBAIC03Njc0LDE1ICs4ODgzLDE1IEBACiAKICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPXllcwogICAgICAgY2FzZSAkaG9zdCBpbgorICAgICAgKmNlZ2NjKiB8ICptaW5ndzMyY2UqKQorICAgICAgICAjIERpc2FibGUgd3JhcHBlcnMgZm9yIGNlZ2NjIGFuZCBtaW5ndzMyY2UgaG9zdHMsIHdlIGFyZSBjcm9zcyBjb21waWxpbmcgYW55d2F5LgorICAgICAgICB3cmFwcGVyc19yZXF1aXJlZD1ubworICAgICAgICA7OwogICAgICAgKmN5Z3dpbiogfCAqbWluZ3cqICkKICAgICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCiAgICAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KICAgICAgICAgZmkKICAgICAgICAgOzsKLSAgICAgICpjZWdjYykKLSAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJzIGZvciBjZWdjYywgd2UgYXJlIGNyb3NzIGNvbXBpbGluZyBhbnl3YXkuCi0gICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5vCi0gICAgICAgIDs7CiAgICAgICAqKQogICAgICAgICBpZiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0gbm8gfHwgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCiAgICAgICAgICAgd3JhcHBlcnNfcmVxdWlyZWQ9bm8KQEAgLTc2OTEsMTMgKzg5MDAsMTkgQEAKICAgICAgIGVzYWMKICAgICAgIGlmIHRlc3QgIiR3cmFwcGVyc19yZXF1aXJlZCIgPSBubzsgdGhlbgogCSMgUmVwbGFjZSB0aGUgb3V0cHV0IGZpbGUgc3BlY2lmaWNhdGlvbi4KLQljb21waWxlX2NvbW1hbmQ9YCRFQ0hPICJYJGNvbXBpbGVfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJ2AKKwljb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29tcGlsZV9jb21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0IiclZydgCiAJbGlua19jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCiAKIAkjIFdlIGhhdmUgbm8gdW5pbnN0YWxsZWQgbGlicmFyeSBkZXBlbmRlbmNpZXMsIHNvIGZpbmFsaXplIHJpZ2h0IG5vdy4KIAlleGl0X3N0YXR1cz0wCiAJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0X3N0YXR1cz0kPycKIAorCWlmIHRlc3QgLW4gIiRwb3N0bGlua19jbWRzIjsgdGhlbgorCSAgZnVuY190b190b29sX2ZpbGUgIiRvdXRwdXQiCisJICBwb3N0bGlua19jbWRzPWBmdW5jX2VjaG9fYWxsICIkcG9zdGxpbmtfY21kcyIgfCAkU0VEIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnIC1lICdzJUBUT09MX09VVFBVVEAlJyIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiclZydgCisJICBmdW5jX2V4ZWN1dGVfY21kcyAiJHBvc3RsaW5rX2NtZHMiICdleGl0ICQ/JworCWZpCisKIAkjIERlbGV0ZSB0aGUgZ2VuZXJhdGVkIGZpbGVzLgogCWlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSI7IHRoZW4KIAkgIGZ1bmNfc2hvd19ldmFsICckUk0gIiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSInCkBAIC03NzIwLDcgKzg5MzUsNyBAQAogCSAgIyBXZSBzaG91bGQgc2V0IHRoZSBydW5wYXRoX3Zhci4KIAkgIHJwYXRoPQogCSAgZm9yIGRpciBpbiAkcGVybV9ycGF0aDsgZG8KLQkgICAgcnBhdGg9IiRycGF0aCRkaXI6IgorCSAgICBmdW5jX2FwcGVuZCBycGF0aCAiJGRpcjoiCiAJICBkb25lCiAJICBjb21waWxlX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJcIiAiCiAJZmkKQEAgLTc3MjgsNyArODk0Myw3IEBACiAJICAjIFdlIHNob3VsZCBzZXQgdGhlIHJ1bnBhdGhfdmFyLgogCSAgcnBhdGg9CiAJICBmb3IgZGlyIGluICRmaW5hbGl6ZV9wZXJtX3JwYXRoOyBkbwotCSAgICBycGF0aD0iJHJwYXRoJGRpcjoiCisJICAgIGZ1bmNfYXBwZW5kIHJwYXRoICIkZGlyOiIKIAkgIGRvbmUKIAkgIGZpbmFsaXplX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJcIiAiCiAJZmkKQEAgLTc3MzgsMTEgKzg5NTMsMTggQEAKIAkjIFdlIGRvbid0IG5lZWQgdG8gY3JlYXRlIGEgd3JhcHBlciBzY3JpcHQuCiAJbGlua19jb21tYW5kPSIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCiAJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotCWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAorCWxpbmtfY29tbWFuZD1gJEVDSE8gIiRsaW5rX2NvbW1hbmQiIHwgJFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJ2AKIAkjIERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlLgogCSRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dAogCSMgTGluayB0aGUgZXhlY3V0YWJsZSBhbmQgZXhpdAogCWZ1bmNfc2hvd19ldmFsICIkbGlua19jb21tYW5kIiAnZXhpdCAkPycKKworCWlmIHRlc3QgLW4gIiRwb3N0bGlua19jbWRzIjsgdGhlbgorCSAgZnVuY190b190b29sX2ZpbGUgIiRvdXRwdXQiCisJICBwb3N0bGlua19jbWRzPWBmdW5jX2VjaG9fYWxsICIkcG9zdGxpbmtfY21kcyIgfCAkU0VEIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnIC1lICdzJUBUT09MX09VVFBVVEAlJyIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiclZydgCisJICBmdW5jX2V4ZWN1dGVfY21kcyAiJHBvc3RsaW5rX2NtZHMiICdleGl0ICQ/JworCWZpCisKIAlleGl0ICRFWElUX1NVQ0NFU1MKICAgICAgIGZpCiAKQEAgLTc3NTcsNyArODk3OSw3IEBACiAJaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgIT0gbm87IHRoZW4KIAkgIGxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRjb21waWxlX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCiAJICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgotCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiIHwgJFhzZWQgLWUgJ3MlQE9VVFBVVEAlXCRwcm9nZGlyL1wkZmlsZSVnJ2AKKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkY29tcGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiIHwgJFNFRCAncyVAT1VUUFVUQCVcJHByb2dkaXIvXCRmaWxlJWcnYAogCSAgZWxzZQogCSAgICAjIGZhc3RfaW5zdGFsbCBpcyBzZXQgdG8gbmVlZGxlc3MKIAkgICAgcmVsaW5rX2NvbW1hbmQ9CkBAIC03NzY5LDEzICs4OTkxLDE5IEBACiAgICAgICBmaQogCiAgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRpb24uCi0gICAgICBsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJGxpbmtfY29tbWFuZCIgfCAkWHNlZCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lIiclZydgCisgICAgICBsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkbGlua19jb21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSInJWcnYAogCiAgICAgICAjIERlbGV0ZSB0aGUgb2xkIG91dHB1dCBmaWxlcy4KICAgICAgICRvcHRfZHJ5X3J1biB8fCAkUk0gJG91dHB1dCAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSAkb3V0cHV0X29iamRpci9sdC0kb3V0cHV0bmFtZQogCiAgICAgICBmdW5jX3Nob3dfZXZhbCAiJGxpbmtfY29tbWFuZCIgJ2V4aXQgJD8nCiAKKyAgICAgIGlmIHRlc3QgLW4gIiRwb3N0bGlua19jbWRzIjsgdGhlbgorCWZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSIKKwlwb3N0bGlua19jbWRzPWBmdW5jX2VjaG9fYWxsICIkcG9zdGxpbmtfY21kcyIgfCAkU0VEIC1lICdzJUBPVVRQVVRAJSciJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiJyVnJyAtZSAncyVAVE9PTF9PVVRQVVRAJSciJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCInJWcnYAorCWZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdGxpbmtfY21kcyIgJ2V4aXQgJD8nCisgICAgICBmaQorCiAgICAgICAjIE5vdyBjcmVhdGUgdGhlIHdyYXBwZXIgc2NyaXB0LgogICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyAkb3V0cHV0IgogCkBAIC03NzkzLDE4ICs5MDIxLDcgQEAKIAkgIGZpCiAJZG9uZQogCXJlbGlua19jb21tYW5kPSIoY2QgYHB3ZGA7ICRyZWxpbmtfY29tbWFuZCkiCi0JcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICJYJHJlbGlua19jb21tYW5kIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKLSAgICAgIGZpCi0KLSAgICAgICMgUXVvdGUgJEVDSE8gZm9yIHNoaXBwaW5nLgotICAgICAgaWYgdGVzdCAiWCRFQ0hPIiA9ICJYJFNIRUxMICRwcm9ncGF0aCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCi0JY2FzZSAkcHJvZ3BhdGggaW4KLQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIHFlY2hvPSIkU0hFTEwgJHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7OwotCSopIHFlY2hvPSIkU0hFTEwgYHB3ZGAvJHByb2dwYXRoIC0tZmFsbGJhY2stZWNobyI7OwotCWVzYWMKLQlxZWNobz1gJEVDSE8gIlgkcWVjaG8iIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotICAgICAgZWxzZQotCXFlY2hvPWAkRUNITyAiWCRFQ0hPIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKKwlyZWxpbmtfY29tbWFuZD1gJEVDSE8gIiRyZWxpbmtfY29tbWFuZCIgfCAkU0VEICIkc2VkX3F1b3RlX3N1YnN0ImAKICAgICAgIGZpCiAKICAgICAgICMgT25seSBhY3R1YWxseSBkbyB0aGluZ3MgaWYgbm90IGluIGRyeSBydW4gbW9kZS4KQEAgLTc4ODQsNyArOTEwMSw3IEBACiAJZWxzZQogCSAgb2xkb2Jqcz0iJG9sZF9kZXBsaWJzICRub25fcGljX29iamVjdHMiCiAJICBpZiB0ZXN0ICIkcHJlbG9hZCIgPSB5ZXMgJiYgdGVzdCAtZiAiJHN5bWZpbGVvYmoiOyB0aGVuCi0JICAgIG9sZG9ianM9IiRvbGRvYmpzICRzeW1maWxlb2JqIgorCSAgICBmdW5jX2FwcGVuZCBvbGRvYmpzICIgJHN5bWZpbGVvYmoiCiAJICBmaQogCWZpCiAJYWRkbGlicz0iJG9sZF9jb252ZW5pZW5jZSIKQEAgLTc4OTIsMTAgKzkxMDksMTAgQEAKIAogICAgICAgaWYgdGVzdCAtbiAiJGFkZGxpYnMiOyB0aGVuCiAJZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLQlnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKwlmdW5jX2FwcGVuZCBnZW5lcmF0ZWQgIiAkZ2VudG9wIgogCiAJZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGFkZGxpYnMKLQlvbGRvYmpzPSIkb2xkb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKKwlmdW5jX2FwcGVuZCBvbGRvYmpzICIgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19yZXN1bHQiCiAgICAgICBmaQogCiAgICAgICAjIERvIGVhY2ggY29tbWFuZCBpbiB0aGUgYXJjaGl2ZSBjb21tYW5kcy4KQEAgLTc5MDYsMTAgKzkxMjMsMTAgQEAKIAkjIEFkZCBhbnkgb2JqZWN0cyBmcm9tIHByZWxvYWRlZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMKIAlpZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KIAkgIGdlbnRvcD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0JICBnZW5lcmF0ZWQ9IiRnZW5lcmF0ZWQgJGdlbnRvcCIKKwkgIGZ1bmNfYXBwZW5kIGdlbmVyYXRlZCAiICRnZW50b3AiCiAKIAkgIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyAkZ2VudG9wICRkbHByZWZpbGVzCi0JICBvbGRvYmpzPSIkb2xkb2JqcyAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKKwkgIGZ1bmNfYXBwZW5kIG9sZG9ianMgIiAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKIAlmaQogCiAJIyBQT1NJWCBkZW1hbmRzIG5vIHBhdGhzIHRvIGJlIGVuY29kZWQgaW4gYXJjaGl2ZXMuICBXZSBoYXZlCkBAIC03OTI1LDkgKzkxNDIsOSBAQAogCSAgICBkb25lIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwgMj4mMSk7IHRoZW4KIAkgIDoKIAllbHNlCi0JICAkRUNITyAiY29weWluZyBzZWxlY3RlZCBvYmplY3QgZmlsZXMgdG8gYXZvaWQgYmFzZW5hbWUgY29uZmxpY3RzLi4uIgorCSAgZWNobyAiY29weWluZyBzZWxlY3RlZCBvYmplY3QgZmlsZXMgdG8gYXZvaWQgYmFzZW5hbWUgY29uZmxpY3RzLi4uIgogCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9eCIKLQkgIGdlbmVyYXRlZD0iJGdlbmVyYXRlZCAkZ2VudG9wIgorCSAgZnVuY19hcHBlbmQgZ2VuZXJhdGVkICIgJGdlbnRvcCIKIAkgIGZ1bmNfbWtkaXJfcCAiJGdlbnRvcCIKIAkgIHNhdmVfb2xkb2Jqcz0kb2xkb2JqcwogCSAgb2xkb2Jqcz0KQEAgLTc5NTEsMTggKzkxNjgsMzAgQEAKIAkJZXNhYwogCSAgICAgIGRvbmUKIAkgICAgICBmdW5jX3Nob3dfZXZhbCAibG4gJG9iaiAkZ2VudG9wLyRuZXdvYmogfHwgY3AgJG9iaiAkZ2VudG9wLyRuZXdvYmoiCi0JICAgICAgb2xkb2Jqcz0iJG9sZG9ianMgJGdlbnRvcC8kbmV3b2JqIgorCSAgICAgIGZ1bmNfYXBwZW5kIG9sZG9ianMgIiAkZ2VudG9wLyRuZXdvYmoiCiAJICAgICAgOzsKLQkgICAgKikgb2xkb2Jqcz0iJG9sZG9ianMgJG9iaiIgOzsKKwkgICAgKikgZnVuY19hcHBlbmQgb2xkb2JqcyAiICRvYmoiIDs7CiAJICAgIGVzYWMKIAkgIGRvbmUKIAlmaQorCWZ1bmNfdG9fdG9vbF9maWxlICIkb2xkbGliIiBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgorCXRvb2xfb2xkbGliPSRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQKIAlldmFsIGNtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wiCiAKIAlmdW5jX2xlbiAiICRjbWRzIgogCWxlbj0kZnVuY19sZW5fcmVzdWx0CiAJaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIHx8IHRlc3QgIiRtYXhfY21kX2xlbiIgLWxlIC0xOyB0aGVuCiAJICBjbWRzPSRvbGRfYXJjaGl2ZV9jbWRzCisJZWxpZiB0ZXN0IC1uICIkYXJjaGl2ZXJfbGlzdF9zcGVjIjsgdGhlbgorCSAgZnVuY192ZXJib3NlICJ1c2luZyBjb21tYW5kIGZpbGUgYXJjaGl2ZSBsaW5raW5nLi4uIgorCSAgZm9yIG9iaiBpbiAkb2xkb2JqcworCSAgZG8KKwkgICAgZnVuY190b190b29sX2ZpbGUgIiRvYmoiCisJICAgICRFQ0hPICIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IgorCSAgZG9uZSA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmxpYmNtZAorCSAgZnVuY190b190b29sX2ZpbGUgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmxpYmNtZCIKKwkgIG9sZG9ianM9IiAkYXJjaGl2ZXJfbGlzdF9zcGVjJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIKKwkgIGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKIAllbHNlCiAJICAjIHRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGluayBpbiBvbmUgc3RlcCwgbGluayBpbiBwYXJ0cwogCSAgZnVuY192ZXJib3NlICJ1c2luZyBwaWVjZXdpc2UgYXJjaGl2ZSBsaW5raW5nLi4uIgpAQCAtODAzNiw3ICs5MjY1LDcgQEAKICAgICAgIGRvbmUKICAgICAgICMgUXVvdGUgdGhlIGxpbmsgY29tbWFuZCBmb3Igc2hpcHBpbmcuCiAgICAgICByZWxpbmtfY29tbWFuZD0iKGNkIGBwd2RgOyAkU0hFTEwgJHByb2dwYXRoICRwcmVzZXJ2ZV9hcmdzIC0tbW9kZT1yZWxpbmsgJGxpYnRvb2xfYXJncyBAaW5zdF9wcmVmaXhfZGlyQCkiCi0gICAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIlgkcmVsaW5rX2NvbW1hbmQiIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQiIHwgJFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgCiAgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHllcyA7IHRoZW4KIAlyZWxpbmtfY29tbWFuZD0KICAgICAgIGZpCkBAIC04MDU2LDEyICs5Mjg1LDIzIEBACiAJICAgICAgKi5sYSkKIAkJZnVuY19iYXNlbmFtZSAiJGRlcGxpYiIKIAkJbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9cMS9wJyAkZGVwbGliYAorCQlmdW5jX3Jlc29sdmVfc3lzcm9vdCAiJGRlcGxpYiIKKwkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdGAKIAkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAogCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGRlcGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgotCQluZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGxpYmRpci8kbmFtZSIKKwkJZnVuY19hcHBlbmQgbmV3ZGVwZW5kZW5jeV9saWJzICIgJHtsdF9zeXNyb290Ois9fSRsaWJkaXIvJG5hbWUiCiAJCTs7Ci0JICAgICAgKikgbmV3ZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5jeV9saWJzICRkZXBsaWIiIDs7CisJICAgICAgLUwqKQorCQlmdW5jX3N0cmlwbmFtZSAtTCAnJyAiJGRlcGxpYiIKKwkJZnVuY19yZXBsYWNlX3N5c3Jvb3QgIiRmdW5jX3N0cmlwbmFtZV9yZXN1bHQiCisJCWZ1bmNfYXBwZW5kIG5ld2RlcGVuZGVuY3lfbGlicyAiIC1MJGZ1bmNfcmVwbGFjZV9zeXNyb290X3Jlc3VsdCIKKwkJOzsKKwkgICAgICAtUiopCisJCWZ1bmNfc3RyaXBuYW1lIC1SICcnICIkZGVwbGliIgorCQlmdW5jX3JlcGxhY2Vfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKKwkJZnVuY19hcHBlbmQgbmV3ZGVwZW5kZW5jeV9saWJzICIgLVIkZnVuY19yZXBsYWNlX3N5c3Jvb3RfcmVzdWx0IgorCQk7OworCSAgICAgICopIGZ1bmNfYXBwZW5kIG5ld2RlcGVuZGVuY3lfbGlicyAiICRkZXBsaWIiIDs7CiAJICAgICAgZXNhYwogCSAgICBkb25lCiAJICAgIGRlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKQEAgLTgwNzUsOSArOTMxNSw5IEBACiAJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCiAJCXRlc3QgLXogIiRsaWJkaXIiICYmIFwKIAkJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIKLQkJbmV3ZGxmaWxlcz0iJG5ld2RsZmlsZXMgJGxpYmRpci8kbmFtZSIKKwkJZnVuY19hcHBlbmQgbmV3ZGxmaWxlcyAiICR7bHRfc3lzcm9vdDorPX0kbGliZGlyLyRuYW1lIgogCQk7OwotCSAgICAgICopIG5ld2RsZmlsZXM9IiRuZXdkbGZpbGVzICRsaWIiIDs7CisJICAgICAgKikgZnVuY19hcHBlbmQgbmV3ZGxmaWxlcyAiICRsaWIiIDs7CiAJICAgICAgZXNhYwogCSAgICBkb25lCiAJICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgpAQCAtODA5NCw3ICs5MzM0LDcgQEAKIAkJZXZhbCBsaWJkaXI9YCR7U0VEfSAtbiAtZSAncy9ebGliZGlyPVwoLipcKSQvXDEvcCcgJGxpYmAKIAkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAogCQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgotCQluZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkbGliZGlyLyRuYW1lIgorCQlmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJHtsdF9zeXNyb290Ois9fSRsaWJkaXIvJG5hbWUiCiAJCTs7CiAJICAgICAgZXNhYwogCSAgICBkb25lCkBAIC04MTA2LDcgKzkzNDYsNyBAQAogCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKIAkJKikgYWJzPWBwd2RgIi8kbGliIiA7OwogCSAgICAgIGVzYWMKLQkgICAgICBuZXdkbGZpbGVzPSIkbmV3ZGxmaWxlcyAkYWJzIgorCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RsZmlsZXMgIiAkYWJzIgogCSAgICBkb25lCiAJICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVzIgogCSAgICBuZXdkbHByZWZpbGVzPQpAQCAtODExNSwxNSArOTM1NSwzMyBAQAogCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFicz0iJGxpYiIgOzsKIAkJKikgYWJzPWBwd2RgIi8kbGliIiA7OwogCSAgICAgIGVzYWMKLQkgICAgICBuZXdkbHByZWZpbGVzPSIkbmV3ZGxwcmVmaWxlcyAkYWJzIgorCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RscHJlZmlsZXMgIiAkYWJzIgogCSAgICBkb25lCiAJICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgogCSAgZmkKIAkgICRSTSAkb3V0cHV0CiAJICAjIHBsYWNlIGRsbmFtZSBpbiBjb3JyZWN0IHBvc2l0aW9uIGZvciBjeWd3aW4KKwkgICMgSW4gZmFjdCwgaXQgd291bGQgYmUgbmljZSBpZiB3ZSBjb3VsZCB1c2UgdGhpcyBjb2RlIGZvciBhbGwgdGFyZ2V0CisJICAjIHN5c3RlbXMgdGhhdCBjYW4ndCBoYXJkLWNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHRoZWlyIGV4ZWN1dGFibGVzCisJICAjIGFuZCB0aGF0IGhhdmUgbm8gc2hhcmVkIGxpYnJhcnkgcGF0aCB2YXJpYWJsZSBpbmRlcGVuZGVudCBvZiBQQVRILAorCSAgIyBidXQgaXQgdHVybnMgb3V0IHdlIGNhbid0IGVhc2lseSBkZXRlcm1pbmUgdGhhdCBmcm9tIGluc3BlY3RpbmcKKwkgICMgbGlidG9vbCB2YXJpYWJsZXMsIHNvIHdlIGhhdmUgdG8gaGFyZC1jb2RlIHRoZSBPU3MgdG8gd2hpY2ggaXQKKwkgICMgYXBwbGllcyBoZXJlOyBhdCB0aGUgbW9tZW50LCB0aGF0IG1lYW5zIHBsYXRmb3JtcyB0aGF0IHVzZSB0aGUgUEUKKwkgICMgb2JqZWN0IGZvcm1hdCB3aXRoIERMTCBmaWxlcy4gIFNlZSB0aGUgbG9uZyBjb21tZW50IGF0IHRoZSB0b3Agb2YKKwkgICMgdGVzdHMvYmluZGlyLmF0IGZvciBmdWxsIGRldGFpbHMuCiAJICB0ZGxuYW1lPSRkbG5hbWUKIAkgIGNhc2UgJGhvc3QsJG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1bGUsJGRsbmFtZSBpbgotCSAgICAqY3lnd2luKiwqbGFpLHllcyxubywqLmRsbCB8ICptaW5ndyosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqY2VnY2MqLCpsYWkseWVzLG5vLCouZGxsKSB0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1lIDs7CisJICAgICpjeWd3aW4qLCpsYWkseWVzLG5vLCouZGxsIHwgKm1pbmd3KiwqbGFpLHllcyxubywqLmRsbCB8ICpjZWdjYyosKmxhaSx5ZXMsbm8sKi5kbGwpCisJICAgICAgIyBJZiBhIC1iaW5kaXIgYXJndW1lbnQgd2FzIHN1cHBsaWVkLCBwbGFjZSB0aGUgZGxsIHRoZXJlLgorCSAgICAgIGlmIHRlc3QgIngkYmluZGlyIiAhPSB4IDsKKwkgICAgICB0aGVuCisJCWZ1bmNfcmVsYXRpdmVfcGF0aCAiJGluc3RhbGxfbGliZGlyIiAiJGJpbmRpciIKKwkJdGRsbmFtZT0kZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCRkbG5hbWUKKwkgICAgICBlbHNlCisJCSMgT3RoZXJ3aXNlIGZhbGwgYmFjayBvbiBoZXVyaXN0aWMuCisJCXRkbG5hbWU9Li4vYmluLyRkbG5hbWUKKwkgICAgICBmaQorCSAgICAgIDs7CiAJICBlc2FjCiAJICAkRUNITyA+ICRvdXRwdXQgIlwKICMgJG91dHB1dG5hbWUgLSBhIGxpYnRvb2wgbGlicmFyeSBmaWxlCkBAIC04MTgyLDcgKzk0NDAsNyBAQAogICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwogfQogCi17IHRlc3QgIiRtb2RlIiA9IGxpbmsgfHwgdGVzdCAiJG1vZGUiID0gcmVsaW5rOyB9ICYmCit7IHRlc3QgIiRvcHRfbW9kZSIgPSBsaW5rIHx8IHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IH0gJiYKICAgICBmdW5jX21vZGVfbGluayAkezErIiRAIn0KIAogCkBAIC04MjAyLDkgKzk0NjAsOSBAQAogICAgIGZvciBhcmcKICAgICBkbwogICAgICAgY2FzZSAkYXJnIGluCi0gICAgICAtZikgUk09IiRSTSAkYXJnIjsgcm1mb3JjZT15ZXMgOzsKLSAgICAgIC0qKSBSTT0iJFJNICRhcmciIDs7Ci0gICAgICAqKSBmaWxlcz0iJGZpbGVzICRhcmciIDs7CisgICAgICAtZikgZnVuY19hcHBlbmQgUk0gIiAkYXJnIjsgcm1mb3JjZT15ZXMgOzsKKyAgICAgIC0qKSBmdW5jX2FwcGVuZCBSTSAiICRhcmciIDs7CisgICAgICAqKSBmdW5jX2FwcGVuZCBmaWxlcyAiICRhcmciIDs7CiAgICAgICBlc2FjCiAgICAgZG9uZQogCkBAIC04MjEzLDI0ICs5NDcxLDIzIEBACiAKICAgICBybWRpcnM9CiAKLSAgICBvcmlnb2JqZGlyPSIkb2JqZGlyIgogICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KICAgICAgIGZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgogICAgICAgZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKICAgICAgIGlmIHRlc3QgIlgkZGlyIiA9IFguOyB0aGVuCi0Jb2JqZGlyPSIkb3JpZ29iamRpciIKKwlvZGlyPSIkb2JqZGlyIgogICAgICAgZWxzZQotCW9iamRpcj0iJGRpci8kb3JpZ29iamRpciIKKwlvZGlyPSIkZGlyLyRvYmpkaXIiCiAgICAgICBmaQogICAgICAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCiAgICAgICBuYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0gICAgICB0ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgJiYgb2JqZGlyPSIkZGlyIgorICAgICAgdGVzdCAiJG9wdF9tb2RlIiA9IHVuaW5zdGFsbCAmJiBvZGlyPSIkZGlyIgogCi0gICAgICAjIFJlbWVtYmVyIG9iamRpciBmb3IgcmVtb3ZhbCBsYXRlciwgYmVpbmcgY2FyZWZ1bCB0byBhdm9pZCBkdXBsaWNhdGVzCi0gICAgICBpZiB0ZXN0ICIkbW9kZSIgPSBjbGVhbjsgdGhlbgorICAgICAgIyBSZW1lbWJlciBvZGlyIGZvciByZW1vdmFsIGxhdGVyLCBiZWluZyBjYXJlZnVsIHRvIGF2b2lkIGR1cGxpY2F0ZXMKKyAgICAgIGlmIHRlc3QgIiRvcHRfbW9kZSIgPSBjbGVhbjsgdGhlbgogCWNhc2UgIiAkcm1kaXJzICIgaW4KLQkgICoiICRvYmpkaXIgIiopIDs7Ci0JICAqKSBybWRpcnM9IiRybWRpcnMgJG9iamRpciIgOzsKKwkgICoiICRvZGlyICIqKSA7OworCSAgKikgZnVuY19hcHBlbmQgcm1kaXJzICIgJG9kaXIiIDs7CiAJZXNhYwogICAgICAgZmkKIApAQCAtODI1NiwxOCArOTUxMywxNyBAQAogCiAJICAjIERlbGV0ZSB0aGUgbGlidG9vbCBsaWJyYXJpZXMgYW5kIHN5bWxpbmtzLgogCSAgZm9yIG4gaW4gJGxpYnJhcnlfbmFtZXM7IGRvCi0JICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvJG4iCisJICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci8kbiIKIAkgIGRvbmUKLQkgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kb2xkX2xpYnJhcnkiCisJICB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci8kb2xkX2xpYnJhcnkiCiAKLQkgIGNhc2UgIiRtb2RlIiBpbgorCSAgY2FzZSAiJG9wdF9tb2RlIiBpbgogCSAgY2xlYW4pCi0JICAgIGNhc2UgIiAgJGxpYnJhcnlfbmFtZXMgIiBpbgotCSAgICAjICIgICIgaW4gdGhlIGJlZ2lubmluZyBjYXRjaGVzIGVtcHR5ICRkbG5hbWUKKwkgICAgY2FzZSAiICRsaWJyYXJ5X25hbWVzICIgaW4KIAkgICAgKiIgJGRsbmFtZSAiKikgOzsKLQkgICAgKikgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kZGxuYW1lIiA7OworCSAgICAqKSB0ZXN0IC1uICIkZGxuYW1lIiAmJiBmdW5jX2FwcGVuZCBybWZpbGVzICIgJG9kaXIvJGRsbmFtZSIgOzsKIAkgICAgZXNhYwotCSAgICB0ZXN0IC1uICIkbGliZGlyIiAmJiBybWZpbGVzPSIkcm1maWxlcyAkb2JqZGlyLyRuYW1lICRvYmpkaXIvJHtuYW1lfWkiCisJICAgIHRlc3QgLW4gIiRsaWJkaXIiICYmIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci8kbmFtZSAkb2Rpci8ke25hbWV9aSIKIAkgICAgOzsKIAkgIHVuaW5zdGFsbCkKIAkgICAgaWYgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiOyB0aGVuCkBAIC04Mjk1LDE5ICs5NTUxLDE5IEBACiAJICAjIEFkZCBQSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJlbW92ZS4KIAkgIGlmIHRlc3QgLW4gIiRwaWNfb2JqZWN0IiAmJgogCSAgICAgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLQkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kcGljX29iamVjdCIKKwkgICAgZnVuY19hcHBlbmQgcm1maWxlcyAiICRkaXIvJHBpY19vYmplY3QiCiAJICBmaQogCiAJICAjIEFkZCBub24tUElDIG9iamVjdCB0byB0aGUgbGlzdCBvZiBmaWxlcyB0byByZW1vdmUuCiAJICBpZiB0ZXN0IC1uICIkbm9uX3BpY19vYmplY3QiICYmCiAJICAgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLQkgICAgcm1maWxlcz0iJHJtZmlsZXMgJGRpci8kbm9uX3BpY19vYmplY3QiCisJICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkZGlyLyRub25fcGljX29iamVjdCIKIAkgIGZpCiAJZmkKIAk7OwogCiAgICAgICAqKQotCWlmIHRlc3QgIiRtb2RlIiA9IGNsZWFuIDsgdGhlbgorCWlmIHRlc3QgIiRvcHRfbW9kZSIgPSBjbGVhbiA7IHRoZW4KIAkgIG5vZXhlbmFtZT0kbmFtZQogCSAgY2FzZSAkZmlsZSBpbgogCSAgKi5leGUpCkBAIC04MzE3LDcgKzk1NzMsNyBAQAogCSAgICBub2V4ZW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAogCSAgICAjICRmaWxlIHdpdGggLmV4ZSBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHJtZmlsZXMsCiAJICAgICMgYWRkICRmaWxlIHdpdGhvdXQgLmV4ZQotCSAgICBybWZpbGVzPSIkcm1maWxlcyAkZmlsZSIKKwkgICAgZnVuY19hcHBlbmQgcm1maWxlcyAiICRmaWxlIgogCSAgICA7OwogCSAgZXNhYwogCSAgIyBEbyBhIHRlc3QgdG8gc2VlIGlmIHRoaXMgaXMgYSBsaWJ0b29sIHByb2dyYW0uCkBAIC04MzI2LDcgKzk1ODIsNyBAQAogCSAgICAgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxlIgogCSAgICAgIHJlbGlua19jb21tYW5kPQogCSAgICAgIGZ1bmNfc291cmNlICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAotCSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdCIKKwkgICAgICBmdW5jX2FwcGVuZCBybWZpbGVzICIgJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0IgogCSAgICBlbHNlCiAJICAgICAgcmVsaW5rX2NvbW1hbmQ9CiAJICAgICAgZnVuY19zb3VyY2UgJGRpci8kbm9leGVuYW1lCkBAIC04MzM0LDEyICs5NTkwLDEyIEBACiAKIAkgICAgIyBub3RlICRuYW1lIHN0aWxsIGNvbnRhaW5zIC5leGUgaWYgaXQgd2FzIGluICRmaWxlIG9yaWdpbmFsbHkKIAkgICAgIyBhcyBkb2VzIHRoZSB2ZXJzaW9uIG9mICRmaWxlIHRoYXQgd2FzIGFkZGVkIGludG8gJHJtZmlsZXMKLQkgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci8kbmFtZSAkb2JqZGlyLyR7bmFtZX1TLiR7b2JqZXh0fSIKKwkgICAgZnVuY19hcHBlbmQgcm1maWxlcyAiICRvZGlyLyRuYW1lICRvZGlyLyR7bmFtZX1TLiR7b2JqZXh0fSIKIAkgICAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5ZXMgJiYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgotCSAgICAgIHJtZmlsZXM9IiRybWZpbGVzICRvYmpkaXIvbHQtJG5hbWUiCisJICAgICAgZnVuY19hcHBlbmQgcm1maWxlcyAiICRvZGlyL2x0LSRuYW1lIgogCSAgICBmaQogCSAgICBpZiB0ZXN0ICJYJG5vZXhlbmFtZSIgIT0gIlgkbmFtZSIgOyB0aGVuCi0JICAgICAgcm1maWxlcz0iJHJtZmlsZXMgJG9iamRpci9sdC0ke25vZXhlbmFtZX0uYyIKKwkgICAgICBmdW5jX2FwcGVuZCBybWZpbGVzICIgJG9kaXIvbHQtJHtub2V4ZW5hbWV9LmMiCiAJICAgIGZpCiAJICBmaQogCWZpCkBAIC04MzQ3LDcgKzk2MDMsNiBAQAogICAgICAgZXNhYwogICAgICAgZnVuY19zaG93X2V2YWwgIiRSTSAkcm1maWxlcyIgJ2V4aXRfc3RhdHVzPTEnCiAgICAgZG9uZQotICAgIG9iamRpcj0iJG9yaWdvYmpkaXIiCiAKICAgICAjIFRyeSB0byByZW1vdmUgdGhlICR7b2JqZGlyfXMgaW4gdGhlIGRpcmVjdG9yaWVzIHdoZXJlIHdlIGRlbGV0ZWQgZmlsZXMKICAgICBmb3IgZGlyIGluICRybWRpcnM7IGRvCkBAIC04MzU5LDE2ICs5NjE0LDE2IEBACiAgICAgZXhpdCAkZXhpdF9zdGF0dXMKIH0KIAoteyB0ZXN0ICIkbW9kZSIgPSB1bmluc3RhbGwgfHwgdGVzdCAiJG1vZGUiID0gY2xlYW47IH0gJiYKK3sgdGVzdCAiJG9wdF9tb2RlIiA9IHVuaW5zdGFsbCB8fCB0ZXN0ICIkb3B0X21vZGUiID0gY2xlYW47IH0gJiYKICAgICBmdW5jX21vZGVfdW5pbnN0YWxsICR7MSsiJEAifQogCi10ZXN0IC16ICIkbW9kZSIgJiYgewordGVzdCAteiAiJG9wdF9tb2RlIiAmJiB7CiAgIGhlbHA9IiRnZW5lcmljX2hlbHAiCiAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIE1PREUiCiB9CiAKIHRlc3QgLXogIiRleGVjX2NtZCIgJiYgXAotICBmdW5jX2ZhdGFsX2hlbHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkbW9kZSciCisgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRvcHRfbW9kZSciCiAKIGlmIHRlc3QgLW4gIiRleGVjX2NtZCI7IHRoZW4KICAgZXZhbCBleGVjICIkZXhlY19jbWQiCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2FzbWNmaS5tNCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXNtY2ZpLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRiZjczYTAKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2FzbWNmaS5tNApAQCAtMCwwICsxLDEzIEBACitBQ19ERUZVTihbR0NDX0FTX0NGSV9QU0VVRE9fT1BdLAorW0FDX0NBQ0hFX0NIRUNLKFthc3NlbWJsZXIgLmNmaSBwc2V1ZG8tb3Agc3VwcG9ydF0sCisgICAgZ2NjX2N2X2FzX2NmaV9wc2V1ZG9fb3AsIFsKKyAgICBnY2NfY3ZfYXNfY2ZpX3BzZXVkb19vcD11bmtub3duCisgICAgQUNfVFJZX0NPTVBJTEUoW2FzbSAoIi5jZmlfc3RhcnRwcm9jXG5cdC5jZmlfZW5kcHJvYyIpO10sLAorCQkgICBbZ2NjX2N2X2FzX2NmaV9wc2V1ZG9fb3A9eWVzXSwKKwkJICAgW2djY19jdl9hc19jZmlfcHNldWRvX29wPW5vXSkKKyBdKQorIGlmIHRlc3QgIngkZ2NjX2N2X2FzX2NmaV9wc2V1ZG9fb3AiID0geHllczsgdGhlbgorICAgIEFDX0RFRklORShIQVZFX0FTX0NGSV9QU0VVRE9fT1AsIDEsCisJICAgICAgW0RlZmluZSBpZiB5b3VyIGFzc2VtYmxlciBzdXBwb3J0cyAuY2ZpXyogZGlyZWN0aXZlcy5dKQorIGZpCitdKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9heF9hcHBlbmRfZmxhZy5tNCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXhfYXBwZW5kX2ZsYWcubTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQzOGI3NgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXhfYXBwZW5kX2ZsYWcubTQKQEAgLTAsMCArMSw2OSBAQAorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvYXV0b2NvbmYtYXJjaGl2ZS9heF9hcHBlbmRfZmxhZy5odG1sCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIworIyBTWU5PUFNJUworIworIyAgIEFYX0FQUEVORF9GTEFHKEZMQUcsIFtGTEFHUy1WQVJJQUJMRV0pCisjCisjIERFU0NSSVBUSU9OCisjCisjICAgRkxBRyBpcyBhcHBlbmRlZCB0byB0aGUgRkxBR1MtVkFSSUFCTEUgc2hlbGwgdmFyaWFibGUsIHdpdGggYSBzcGFjZQorIyAgIGFkZGVkIGluIGJldHdlZW4uCisjCisjICAgSWYgRkxBR1MtVkFSSUFCTEUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UncyBmbGFncyAoZS5nLgorIyAgIENGTEFHUykgaXMgdXNlZC4gIEZMQUdTLVZBUklBQkxFIGlzIG5vdCBjaGFuZ2VkIGlmIGl0IGFscmVhZHkgY29udGFpbnMKKyMgICBGTEFHLiAgSWYgRkxBR1MtVkFSSUFCTEUgaXMgdW5zZXQgaW4gdGhlIHNoZWxsLCBpdCBpcyBzZXQgdG8gZXhhY3RseQorIyAgIEZMQUcuCisjCisjICAgTk9URTogSW1wbGVtZW50YXRpb24gYmFzZWQgb24gQVhfQ0ZMQUdTX0dDQ19PUFRJT04uCisjCisjIExJQ0VOU0UKKyMKKyMgICBDb3B5cmlnaHQgKGMpIDIwMDggR3VpZG8gVS4gRHJhaGVpbSA8Z3VpZG9kQGdteC5kZT4KKyMgICBDb3B5cmlnaHQgKGMpIDIwMTEgTWFhcnRlbiBCb3NtYW5zIDxta2Jvc21hbnNAZ21haWwuY29tPgorIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisjICAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91cgorIyAgIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwKKyMgICBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisjICAgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyMKKyMgICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgcmVzcGVjdGl2ZSBBdXRvY29uZiBNYWNybydzIGNvcHlyaWdodCBvd25lcgorIyAgIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSB0aGUgY29uZmlndXJlCisjICAgc2NyaXB0cyB0aGF0IGFyZSB0aGUgb3V0cHV0IG9mIEF1dG9jb25mIHdoZW4gcHJvY2Vzc2luZyB0aGUgTWFjcm8uIFlvdQorIyAgIG5lZWQgbm90IGZvbGxvdyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHdoZW4gdXNpbmcKKyMgICBvciBkaXN0cmlidXRpbmcgc3VjaCBzY3JpcHRzLCBldmVuIHRob3VnaCBwb3J0aW9ucyBvZiB0aGUgdGV4dCBvZiB0aGUKKyMgICBNYWNybyBhcHBlYXIgaW4gdGhlbS4gVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIGRvZXMgZ292ZXJuCisjICAgYWxsIG90aGVyIHVzZSBvZiB0aGUgbWF0ZXJpYWwgdGhhdCBjb25zdGl0dXRlcyB0aGUgQXV0b2NvbmYgTWFjcm8uCisjCisjICAgVGhpcyBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMIGFwcGxpZXMgdG8gdmVyc2lvbnMgb2YgdGhlIEF1dG9jb25mCisjICAgTWFjcm8gcmVsZWFzZWQgYnkgdGhlIEF1dG9jb25mIEFyY2hpdmUuIFdoZW4geW91IG1ha2UgYW5kIGRpc3RyaWJ1dGUgYQorIyAgIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIEF1dG9jb25mIE1hY3JvLCB5b3UgbWF5IGV4dGVuZCB0aGlzIHNwZWNpYWwKKyMgICBleGNlcHRpb24gdG8gdGhlIEdQTCB0byBhcHBseSB0byB5b3VyIG1vZGlmaWVkIHZlcnNpb24gYXMgd2VsbC4KKworI3NlcmlhbCAyCisKK0FDX0RFRlVOKFtBWF9BUFBFTkRfRkxBR10sCitbQUNfUFJFUkVRKDIuNTkpZG5sIGZvciBfQUNfTEFOR19QUkVGSVgKK0FTX1ZBUl9QVVNIREVGKFtGTEFHU10sIFttNF9kZWZhdWx0KCQyLF9BQ19MQU5HX1BSRUZJWFtGTEFHU10pXSlkbmwKK0FTX1ZBUl9TRVRfSUYoRkxBR1MsCisgIFtjYXNlICIgQVNfVkFSX0dFVChGTEFHUykgIiBpbgorICAgICoiICQxICIqKQorICAgICAgQUNfUlVOX0xPRyhbOiBGTEFHUyBhbHJlYWR5IGNvbnRhaW5zICQxXSkKKyAgICAgIDs7CisgICAgKikKKyAgICAgIEFDX1JVTl9MT0coWzogRkxBR1M9IiRGTEFHUyAkMSJdKQorICAgICAgQVNfVkFSX1NFVChGTEFHUywgWyJBU19WQVJfR0VUKEZMQUdTKSAkMSJdKQorICAgICAgOzsKKyAgIGVzYWNdLAorICBbQVNfVkFSX1NFVChGTEFHUyxbIiQxIl0pXSkKK0FTX1ZBUl9QT1BERUYoW0ZMQUdTXSlkbmwKK10pZG5sIEFYX0FQUEVORF9GTEFHCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2NjX21heG9wdC5tNCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXhfY2NfbWF4b3B0Lm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlNzUzMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2NjX21heG9wdC5tNApAQCAtMCwwICsxLDE4MCBAQAorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9jb25mLWFyY2hpdmUvYXhfY2NfbWF4b3B0Lmh0bWwKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjCisjIFNZTk9QU0lTCisjCisjICAgQVhfQ0NfTUFYT1BUCisjCisjIERFU0NSSVBUSU9OCisjCisjICAgVHJ5IHRvIHR1cm4gb24gImdvb2QiIEMgb3B0aW1pemF0aW9uIGZsYWdzIGZvciB2YXJpb3VzIGNvbXBpbGVycyBhbmQKKyMgICBhcmNoaXRlY3R1cmVzLCBmb3Igc29tZSBkZWZpbml0aW9uIG9mICJnb29kIi4gKEluIG91ciBjYXNlLCBnb29kIGZvcgorIyAgIEZGVFcgYW5kIGhvcGVmdWxseSBmb3Igb3RoZXIgc2NpZW50aWZpYyBjb2Rlcy4gTW9kaWZ5IGFzIG5lZWRlZC4pCisjCisjICAgVGhlIHVzZXIgY2FuIG92ZXJyaWRlIHRoZSBmbGFncyBieSBzZXR0aW5nIHRoZSBDRkxBR1MgZW52aXJvbm1lbnQKKyMgICB2YXJpYWJsZS4gVGhlIHVzZXIgY2FuIGFsc28gc3BlY2lmeSAtLWVuYWJsZS1wb3J0YWJsZS1iaW5hcnkgaW4gb3JkZXIgdG8KKyMgICBkaXNhYmxlIGFueSBvcHRpbWl6YXRpb24gZmxhZ3MgdGhhdCBtaWdodCByZXN1bHQgaW4gYSBiaW5hcnkgdGhhdCBvbmx5CisjICAgcnVucyBvbiB0aGUgaG9zdCBhcmNoaXRlY3R1cmUuCisjCisjICAgTm90ZSBhbHNvIHRoYXQgdGhlIGZsYWdzIGFzc3VtZSB0aGF0IEFOU0kgQyBhbGlhc2luZyBydWxlcyBhcmUgZm9sbG93ZWQKKyMgICBieSB0aGUgY29kZSAoZS5nLiBmb3IgZ2NjJ3MgLWZzdHJpY3QtYWxpYXNpbmcpLCBhbmQgdGhhdCBmbG9hdGluZy1wb2ludAorIyAgIGNvbXB1dGF0aW9ucyBjYW4gYmUgcmUtb3JkZXJlZCBhcyBuZWVkZWQuCisjCisjICAgUmVxdWlyZXMgbWFjcm9zOiBBWF9DSEVDS19DT01QSUxFX0ZMQUcsIEFYX0NPTVBJTEVSX1ZFTkRPUiwKKyMgICBBWF9HQ0NfQVJDSEZMQUcsIEFYX0dDQ19YODZfQ1BVSUQuCisjCisjIExJQ0VOU0UKKyMKKyMgICBDb3B5cmlnaHQgKGMpIDIwMDggU3RldmVuIEcuIEpvaG5zb24gPHN0ZXZlbmpAYWx1bS5taXQuZWR1PgorIyAgIENvcHlyaWdodCAoYykgMjAwOCBNYXR0ZW8gRnJpZ28KKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorIyAgIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIKKyMgICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsCisjICAgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworIyAgIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisjCisjICAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIHJlc3BlY3RpdmUgQXV0b2NvbmYgTWFjcm8ncyBjb3B5cmlnaHQgb3duZXIKKyMgICBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgdGhlIGNvbmZpZ3VyZQorIyAgIHNjcmlwdHMgdGhhdCBhcmUgdGhlIG91dHB1dCBvZiBBdXRvY29uZiB3aGVuIHByb2Nlc3NpbmcgdGhlIE1hY3JvLiBZb3UKKyMgICBuZWVkIG5vdCBmb2xsb3cgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB3aGVuIHVzaW5nCisjICAgb3IgZGlzdHJpYnV0aW5nIHN1Y2ggc2NyaXB0cywgZXZlbiB0aG91Z2ggcG9ydGlvbnMgb2YgdGhlIHRleHQgb2YgdGhlCisjICAgTWFjcm8gYXBwZWFyIGluIHRoZW0uIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBkb2VzIGdvdmVybgorIyAgIGFsbCBvdGhlciB1c2Ugb2YgdGhlIG1hdGVyaWFsIHRoYXQgY29uc3RpdHV0ZXMgdGhlIEF1dG9jb25mIE1hY3JvLgorIworIyAgIFRoaXMgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCBhcHBsaWVzIHRvIHZlcnNpb25zIG9mIHRoZSBBdXRvY29uZgorIyAgIE1hY3JvIHJlbGVhc2VkIGJ5IHRoZSBBdXRvY29uZiBBcmNoaXZlLiBXaGVuIHlvdSBtYWtlIGFuZCBkaXN0cmlidXRlIGEKKyMgICBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBBdXRvY29uZiBNYWNybywgeW91IG1heSBleHRlbmQgdGhpcyBzcGVjaWFsCisjICAgZXhjZXB0aW9uIHRvIHRoZSBHUEwgdG8gYXBwbHkgdG8geW91ciBtb2RpZmllZCB2ZXJzaW9uIGFzIHdlbGwuCisKKyNzZXJpYWwgMTIKKworQUNfREVGVU4oW0FYX0NDX01BWE9QVF0sCitbCitBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSkKK0FDX1JFUVVJUkUoW0FYX0NPTVBJTEVSX1ZFTkRPUl0pCitBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pCisKK0FDX0FSR19FTkFCTEUocG9ydGFibGUtYmluYXJ5LCBbQVNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLXBvcnRhYmxlLWJpbmFyeV0sIFtkaXNhYmxlIGNvbXBpbGVyIG9wdGltaXphdGlvbnMgdGhhdCB3b3VsZCBwcm9kdWNlIHVucG9ydGFibGUgYmluYXJpZXNdKV0sCisJYWN4X21heG9wdF9wb3J0YWJsZT0kd2l0aHZhbCwgYWN4X21heG9wdF9wb3J0YWJsZT1ubykKKworIyBUcnkgdG8gZGV0ZXJtaW5lICJnb29kIiBuYXRpdmUgY29tcGlsZXIgZmxhZ3MgaWYgbm9uZSBzcGVjaWZpZWQgdmlhIENGTEFHUworaWYgdGVzdCAiJGFjX3Rlc3RfQ0ZMQUdTIiAhPSAic2V0IjsgdGhlbgorICBDRkxBR1M9IiIKKyAgY2FzZSAkYXhfY3ZfY19jb21waWxlcl92ZW5kb3IgaW4KKyAgICBkZWMpIENGTEFHUz0iLW5ld2MgLXcwIC1PNSAtYW5zaV9hbGlhcyAtYW5zaV9hcmdzIC1mcF9yZW9yZGVyIC10dW5lIGhvc3QiCisJIGlmIHRlc3QgIngkYWN4X21heG9wdF9wb3J0YWJsZSIgPSB4bm87IHRoZW4KKyAgICAgICAgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1hcmNoIGhvc3QiCisgICAgICAgICBmaTs7CisKKyAgICBzdW4pIENGTEFHUz0iLW5hdGl2ZSAtZmFzdCAteE81IC1kYWxpZ24iCisJIGlmIHRlc3QgIngkYWN4X21heG9wdF9wb3J0YWJsZSIgPSB4eWVzOyB0aGVuCisJICAgQ0ZMQUdTPSIkQ0ZMQUdTIC14YXJjaD1nZW5lcmljIgorICAgICAgICAgZmk7OworCisgICAgaHApICBDRkxBR1M9IitPYWxsICtPcHRyc19hbnNpICtEU25hdGl2ZSIKKwkgaWYgdGVzdCAieCRhY3hfbWF4b3B0X3BvcnRhYmxlIiA9IHh5ZXM7IHRoZW4KKwkgICBDRkxBR1M9IiRDRkxBR1MgK0RBcG9ydGFibGUiCisJIGZpOzsKKworICAgIGlibSkgaWYgdGVzdCAieCRhY3hfbWF4b3B0X3BvcnRhYmxlIiA9IHhubzsgdGhlbgorICAgICAgICAgICB4bGNfb3B0PSItcWFyY2g9YXV0byAtcXR1bmU9YXV0byIKKwkgZWxzZQorICAgICAgICAgICB4bGNfb3B0PSItcXR1bmU9YXV0byIKKwkgZmkKKyAgICAgICAgIEFYX0NIRUNLX0NPTVBJTEVfRkxBRygkeGxjX29wdCwKKwkJQ0ZMQUdTPSItTzMgLXFhbnNpYWxpYXMgLXcgJHhsY19vcHQiLAorICAgICAgICAgICAgICAgW0NGTEFHUz0iLU8zIC1xYW5zaWFsaWFzIC13IgorICAgICAgICAgICAgICAgIGVjaG8gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIKKyAgICAgICAgICAgICAgICBlY2hvICIqICBZb3Ugc2VlbSB0byBoYXZlIHRoZSBJQk0gIEMgY29tcGlsZXIuICBJdCBpcyAgICAgICoiCisgICAgICAgICAgICAgICAgZWNobyAiKiAgcmVjb21tZW5kZWQgZm9yIGJlc3QgcGVyZm9ybWFuY2UgdGhhdCB5b3UgdXNlOiAgICAqIgorICAgICAgICAgICAgICAgIGVjaG8gIiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiIKKyAgICAgICAgICAgICAgICBlY2hvICIqICAgIENGTEFHUz0tTzMgLXFhcmNoPXh4eCAtcXR1bmU9eHh4IC1xYW5zaWFsaWFzIC13ICoiCisgICAgICAgICAgICAgICAgZWNobyAiKiAgICAgICAgICAgICAgICAgICAgICBeXl4gICAgICAgIF5eXiAgICAgICAgICAgICAgICAqIgorICAgICAgICAgICAgICAgIGVjaG8gIiogIHdoZXJlIHh4eCBpcyBwd3IyLCBwd3IzLCA2MDQsIG9yIHdoYXRldmVyIGtpbmQgb2YgKiIKKyAgICAgICAgICAgICAgICBlY2hvICIqICBDUFUgeW91IGhhdmUuICAoU2V0IHRoZSBDRkxBR1MgZW52aXJvbm1lbnQgdmFyLiAgICoiCisgICAgICAgICAgICAgICAgZWNobyAiKiAgYW5kIHJlLXJ1biBjb25maWd1cmUuKSAgRm9yIG1vcmUgaW5mbywgbWFuIGNjLiAgICAqIgorICAgICAgICAgICAgICAgIGVjaG8gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiJdKQorICAgICAgICAgOzsKKworICAgIGludGVsKSBDRkxBR1M9Ii1PMyAtYW5zaV9hbGlhcyIKKwlpZiB0ZXN0ICJ4JGFjeF9tYXhvcHRfcG9ydGFibGUiID0geG5vOyB0aGVuCisJICBpY2NfYXJjaGZsYWc9dW5rbm93bgorCSAgaWNjX2ZsYWdzPSIiCisJICBjYXNlICRob3N0X2NwdSBpbgorCSAgICBpNjg2Knx4ODZfNjQqKQorICAgICAgICAgICAgICAjIGljYyBhY2NlcHRzIGdjYyBhc3NlbWJseSBzeW50YXgsIHNvIHRoZXNlIHNob3VsZCB3b3JrOgorCSAgICAgIEFYX0dDQ19YODZfQ1BVSUQoMCkKKyAgICAgICAgICAgICAgQVhfR0NDX1g4Nl9DUFVJRCgxKQorCSAgICAgIGNhc2UgJGF4X2N2X2djY194ODZfY3B1aWRfMCBpbiAjIHNlZSBBWF9HQ0NfQVJDSEZMQUcKKyAgICAgICAgICAgICAgICAqOjc1NmU2NTQ3Oio6KikgIyBJbnRlbAorICAgICAgICAgICAgICAgICAgY2FzZSAkYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8xIGluCisgICAgICAgICAgICAgICAgICAgICo2YT86KltbMjM0XV06KjoqfCo2W1s3ODliXV0/Oio6KjoqKSBpY2NfZmxhZ3M9Ii14SyI7OworICAgICAgICAgICAgICAgICAgICAqZjNbWzM0N11dOio6KjoqfCpmNFsxMzQ3XToqOio6KikgaWNjX2ZsYWdzPSIteFAgLXhOIC14VyAteEsiOzsKKyAgICAgICAgICAgICAgICAgICAgKmY/PzoqOio6KikgaWNjX2ZsYWdzPSIteE4gLXhXIC14SyI7OworICAgICAgICAgICAgICAgICAgZXNhYyA7OworICAgICAgICAgICAgICBlc2FjIDs7CisgICAgICAgICAgZXNhYworICAgICAgICAgIGlmIHRlc3QgIngkaWNjX2ZsYWdzIiAhPSB4OyB0aGVuCisgICAgICAgICAgICBmb3IgZmxhZyBpbiAkaWNjX2ZsYWdzOyBkbworICAgICAgICAgICAgICBBWF9DSEVDS19DT01QSUxFX0ZMQUcoJGZsYWcsIFtpY2NfYXJjaGZsYWc9JGZsYWc7IGJyZWFrXSkKKyAgICAgICAgICAgIGRvbmUKKyAgICAgICAgICBmaQorICAgICAgICAgIEFDX01TR19DSEVDS0lORyhbZm9yIGljYyBhcmNoaXRlY3R1cmUgZmxhZ10pCisJICBBQ19NU0dfUkVTVUxUKCRpY2NfYXJjaGZsYWcpCisgICAgICAgICAgaWYgdGVzdCAieCRpY2NfYXJjaGZsYWciICE9IHh1bmtub3duOyB0aGVuCisgICAgICAgICAgICBDRkxBR1M9IiRDRkxBR1MgJGljY19hcmNoZmxhZyIKKyAgICAgICAgICBmaQorICAgICAgICBmaQorCTs7CisKKyAgICBnbnUpCisgICAgICMgZGVmYXVsdCBvcHRpbWl6YXRpb24gZmxhZ3MgZm9yIGdjYyBvbiBhbGwgc3lzdGVtcworICAgICBDRkxBR1M9Ii1PMyAtZm9taXQtZnJhbWUtcG9pbnRlciIKKworICAgICAjIC1tYWxpZ24tZG91YmxlIGZvciB4ODYgc3lzdGVtcworICAgICBBWF9DSEVDS19DT01QSUxFX0ZMQUcoLW1hbGlnbi1kb3VibGUsIENGTEFHUz0iJENGTEFHUyAtbWFsaWduLWRvdWJsZSIpCisKKyAgICAgIyAgLWZzdHJpY3QtYWxpYXNpbmcgZm9yIGdjYy0yLjk1KworICAgICBBWF9DSEVDS19DT01QSUxFX0ZMQUcoLWZzdHJpY3QtYWxpYXNpbmcsCisJQ0ZMQUdTPSIkQ0ZMQUdTIC1mc3RyaWN0LWFsaWFzaW5nIikKKworICAgICAjIG5vdGUgdGhhdCB3ZSBlbmFibGUgInVuc2FmZSIgZnAgb3B0aW1pemF0aW9uIHdpdGggb3RoZXIgY29tcGlsZXJzLCB0b28KKyAgICAgQVhfQ0hFQ0tfQ09NUElMRV9GTEFHKC1mZmFzdC1tYXRoLCBDRkxBR1M9IiRDRkxBR1MgLWZmYXN0LW1hdGgiKQorCisgICAgIEFYX0dDQ19BUkNIRkxBRygkYWN4X21heG9wdF9wb3J0YWJsZSkKKyAgICAgOzsKKyAgZXNhYworCisgIGlmIHRlc3QgLXogIiRDRkxBR1MiOyB0aGVuCisJZWNobyAiIgorCWVjaG8gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIgorICAgICAgICBlY2hvICIqIFdBUk5JTkc6IERvbid0IGtub3cgdGhlIGJlc3QgQ0ZMQUdTIGZvciB0aGlzIHN5c3RlbSAgKiIKKyAgICAgICAgZWNobyAiKiBVc2UgLi9jb25maWd1cmUgQ0ZMQUdTPS4uLiB0byBzcGVjaWZ5IHlvdXIgb3duIGZsYWdzICoiCisJZWNobyAiKiAob3RoZXJ3aXNlLCBhIGRlZmF1bHQgb2YgQ0ZMQUdTPS1PMyB3aWxsIGJlIHVzZWQpICAgICoiCisJZWNobyAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiCisJZWNobyAiIgorICAgICAgICBDRkxBR1M9Ii1PMyIKKyAgZmkKKworICBBWF9DSEVDS19DT01QSUxFX0ZMQUcoJENGTEFHUywgW10sIFsKKwllY2hvICIiCisgICAgICAgIGVjaG8gIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIgorICAgICAgICBlY2hvICIqIFdBUk5JTkc6IFRoZSBndWVzc2VkIENGTEFHUyBkb24ndCBzZWVtIHRvIHdvcmsgd2l0aCAgKiIKKyAgICAgICAgZWNobyAiKiB5b3VyIGNvbXBpbGVyLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoiCisgICAgICAgIGVjaG8gIiogVXNlIC4vY29uZmlndXJlIENGTEFHUz0uLi4gdG8gc3BlY2lmeSB5b3VyIG93biBmbGFncyAqIgorICAgICAgICBlY2hvICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIKKyAgICAgICAgZWNobyAiIgorICAgICAgICBDRkxBR1M9IiIKKyAgXSkKKworZmkKK10pCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2NmbGFnc193YXJuX2FsbC5tNCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXhfY2ZsYWdzX3dhcm5fYWxsLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyMmUzN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2NmbGFnc193YXJuX2FsbC5tNApAQCAtMCwwICsxLDEyMSBAQAorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9jb25mLWFyY2hpdmUvYXhfY2ZsYWdzX3dhcm5fYWxsLmh0bWwKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjCisjIFNZTk9QU0lTCisjCisjICAgQVhfQ0ZMQUdTX1dBUk5fQUxMICAgWyhzaGVsbHZhciBbLGRlZmF1bHQsIFtBL05BXV0pXQorIyAgIEFYX0NYWEZMQUdTX1dBUk5fQUxMIFsoc2hlbGx2YXIgWyxkZWZhdWx0LCBbQS9OQV1dKV0KKyMgICBBWF9GQ0ZMQUdTX1dBUk5fQUxMICBbKHNoZWxsdmFyIFssZGVmYXVsdCwgW0EvTkFdXSldCisjCisjIERFU0NSSVBUSU9OCisjCisjICAgVHJ5IHRvIGZpbmQgYSBjb21waWxlciBvcHRpb24gdGhhdCBlbmFibGVzIG1vc3QgcmVhc29uYWJsZSB3YXJuaW5ncy4KKyMKKyMgICBGb3IgdGhlIEdOVSBjb21waWxlciBpdCB3aWxsIGJlIC1XYWxsIChhbmQgLWFuc2kgLXBlZGFudGljKSBUaGUgcmVzdWx0CisjICAgaXMgYWRkZWQgdG8gdGhlIHNoZWxsdmFyIGJlaW5nIENGTEFHUywgQ1hYRkxBR1MsIG9yIEZDRkxBR1MgYnkgZGVmYXVsdC4KKyMKKyMgICBDdXJyZW50bHkgdGhpcyBtYWNybyBrbm93cyBhYm91dCB0aGUgR0NDLCBTb2xhcmlzLCBEaWdpdGFsIFVuaXgsIEFJWCwKKyMgICBIUC1VWCwgSVJJWCwgTkVDIFNYLTUgKFN1cGVyLVVYIDEwKSwgQ3JheSBKOTAgKFVuaWNvcyAxMC4wLjAuOCksIGFuZAorIyAgIEludGVsIGNvbXBpbGVycy4gIEZvciBhIGdpdmVuIGNvbXBpbGVyLCB0aGUgRm9ydHJhbiBmbGFncyBhcmUgbXVjaCBtb3JlCisjICAgZXhwZXJpbWVudGFsIHRoYW4gdGhlaXIgQyBlcXVpdmFsZW50cy4KKyMKKyMgICAgLSAkMSBzaGVsbC12YXJpYWJsZS10by1hZGQtdG8gOiBDRkxBR1MsIENYWEZMQUdTLCBvciBGQ0ZMQUdTCisjICAgIC0gJDIgYWRkLXZhbHVlLWlmLW5vdC1mb3VuZCA6IG5vdGhpbmcKKyMgICAgLSAkMyBhY3Rpb24taWYtZm91bmQgOiBhZGQgdmFsdWUgdG8gc2hlbGx2YXJpYWJsZQorIyAgICAtICQ0IGFjdGlvbi1pZi1ub3QtZm91bmQgOiBub3RoaW5nCisjCisjICAgTk9URTogVGhlc2UgbWFjcm9zIGRlcGVuZCBvbiBBWF9BUFBFTkRfRkxBRy4KKyMKKyMgTElDRU5TRQorIworIyAgIENvcHlyaWdodCAoYykgMjAwOCBHdWlkbyBVLiBEcmFoZWltIDxndWlkb2RAZ214LmRlPgorIyAgIENvcHlyaWdodCAoYykgMjAxMCBSaHlzIFVsZXJpY2ggPHJoeXMudWxlcmljaEBnbWFpbC5jb20+CisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyMgICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyCisjICAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisjICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbAorIyAgIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKKyMgICB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorIworIyAgIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHRoZSByZXNwZWN0aXZlIEF1dG9jb25mIE1hY3JvJ3MgY29weXJpZ2h0IG93bmVyCisjICAgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IHRoZSBjb25maWd1cmUKKyMgICBzY3JpcHRzIHRoYXQgYXJlIHRoZSBvdXRwdXQgb2YgQXV0b2NvbmYgd2hlbiBwcm9jZXNzaW5nIHRoZSBNYWNyby4gWW91CisjICAgbmVlZCBub3QgZm9sbG93IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ugd2hlbiB1c2luZworIyAgIG9yIGRpc3RyaWJ1dGluZyBzdWNoIHNjcmlwdHMsIGV2ZW4gdGhvdWdoIHBvcnRpb25zIG9mIHRoZSB0ZXh0IG9mIHRoZQorIyAgIE1hY3JvIGFwcGVhciBpbiB0aGVtLiBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgZG9lcyBnb3Zlcm4KKyMgICBhbGwgb3RoZXIgdXNlIG9mIHRoZSBtYXRlcmlhbCB0aGF0IGNvbnN0aXR1dGVzIHRoZSBBdXRvY29uZiBNYWNyby4KKyMKKyMgICBUaGlzIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwgYXBwbGllcyB0byB2ZXJzaW9ucyBvZiB0aGUgQXV0b2NvbmYKKyMgICBNYWNybyByZWxlYXNlZCBieSB0aGUgQXV0b2NvbmYgQXJjaGl2ZS4gV2hlbiB5b3UgbWFrZSBhbmQgZGlzdHJpYnV0ZSBhCisjICAgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgQXV0b2NvbmYgTWFjcm8sIHlvdSBtYXkgZXh0ZW5kIHRoaXMgc3BlY2lhbAorIyAgIGV4Y2VwdGlvbiB0byB0aGUgR1BMIHRvIGFwcGx5IHRvIHlvdXIgbW9kaWZpZWQgdmVyc2lvbiBhcyB3ZWxsLgorCisjc2VyaWFsIDEzCisKK0FDX0RFRlVOKFtBWF9GTEFHU19XQVJOX0FMTF0sW2RubAorQVNfVkFSX1BVU0hERUYoW0ZMQUdTXSxbX0FDX0xBTkdfUFJFRklYW11GTEFHU10pZG5sCitBU19WQVJfUFVTSERFRihbVkFSXSxbYWNfY3ZfW11fQUNfTEFOR19BQkJSRVZbXWZsYWdzX3dhcm5fYWxsXSlkbmwKK0FDX0NBQ0hFX0NIRUNLKFttNF9pZnZhbCgkMSwkMSxGTEFHUykgZm9yIG1heGltdW0gd2FybmluZ3NdLAorVkFSLFtWQVI9Im5vLCB1bmtub3duIgorYWNfc2F2ZV9bXUZMQUdTPSIkW11GTEFHUyIKK2ZvciBhY19hcmcgZG5sCitpbiAiLXdhcm4gYWxsICAlIC13YXJuIGFsbCIgICBkbmwgSW50ZWwKKyAgICItcGVkYW50aWMgICUgLVdhbGwiICAgICAgIGRubCBHQ0MKKyAgICIteHN0cmNvbnN0ICUgLXYiICAgICAgICAgIGRubCBTb2xhcmlzIEMKKyAgICItc3RkMSAgICAgICUgLXZlcmJvc2UgLXcwIC13YXJucHJvdG9zIiBkbmwgRGlnaXRhbCBVbml4CisgICAiLXFsYW5nbHZsPWFuc2kgJSAtcXNyY21zZyAtcWluZm89YWxsOm5vcHB0Om5vcHBjOm5vb2JzOm5vY25kIiBkbmwgQUlYCisgICAiLWFuc2kgLWFuc2lFICUgLWZ1bGx3YXJuIiBkbmwgSVJJWAorICAgIitFU2xpdCAgICAgJSArdzEiICAgICAgICAgZG5sIEhQLVVYIEMKKyAgICItWGMgICAgICAgICUgLXB2Y3RsWyxdZnVsbG1zZyIgZG5sIE5FQyBTWC01IChTdXBlci1VWCAxMCkKKyAgICItaCBjb25mb3JtICUgLWggbXNnbGV2ZWwgMiIgZG5sIENyYXkgQyAoVW5pY29zKQorICAgIworZG8gRkxBR1M9IiRhY19zYXZlX1tdRkxBR1MgImBlY2hvICRhY19hcmcgfCBzZWQgLWUgJ3MsJSUuKiwsJyAtZSAncywlLCwnYAorICAgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTV0sCisgICAgICAgICAgICAgICAgICAgICBbVkFSPWBlY2hvICRhY19hcmcgfCBzZWQgLWUgJ3MsLiolICosLCdgIDsgYnJlYWtdKQorZG9uZQorRkxBR1M9IiRhY19zYXZlX1tdRkxBR1MiCitdKQorQVNfVkFSX1BPUERFRihbRkxBR1NdKWRubAorY2FzZSAiLiRWQVIiIGluCisgICAgIC5va3wub2ssKikgbTRfaWZ2YWxuKCQzLCQzKSA7OworICAgLnwubm98Lm5vLCopIG00X2RlZmF1bHQoJDQsW200X2lmdmFsKCQyLFtBWF9BUFBFTkRfRkxBRyhbJDJdLCBbJDFdKV0pXSkgOzsKKyAgICopIG00X2RlZmF1bHQoJDMsW0FYX0FQUEVORF9GTEFHKFskVkFSXSwgWyQxXSldKSA7OworZXNhYworQVNfVkFSX1BPUERFRihbVkFSXSlkbmwKK10pZG5sIEFYX0ZMQUdTX1dBUk5fQUxMCitkbmwgIGltcGxlbWVudGF0aW9uIHRhY3RpY3M6CitkbmwgICB0aGUgZm9yLWFyZ3VtZW50IGNvbnRhaW5zIGEgbGlzdCBvZiBvcHRpb25zLiBUaGUgZmlyc3QgcGFydCBvZgorZG5sICAgdGhlc2UgZG9lcyBvbmx5IGV4aXN0IHRvIGRldGVjdCB0aGUgY29tcGlsZXIgLSB1c3VhbGx5IGl0IGlzCitkbmwgICBhIGdsb2JhbCBvcHRpb24gdG8gZW5hYmxlIC1hbnNpIG9yIC1leHRyYXdhcm5pbmdzLiBBbGwgb3RoZXIKK2RubCAgIGNvbXBpbGVycyB3aWxsIGZhaWwgYWJvdXQgaXQuIFRoYXQgd2FzIG5lZWRlZCBzaW5jZSBhIGxvdCBvZgorZG5sICAgY29tcGlsZXJzIHdpbGwgZ2l2ZSBmYWxzZSBwb3NpdGl2ZXMgZm9yIHNvbWUgb3B0aW9uLXN5bnRheAorZG5sICAgbGlrZSAtV29wdGlvbiBvciAtWG9wdGlvbiBhcyB0aGV5IHRoaW5rIG9mIGl0IGlzIGEgcGFzcy10aHJvdWdoCitkbmwgICB0byBsYXRlciBjb21waWxlIHN0YWdlcyBvciBzb21ldGhpbmcuIFRoZSAiJSIgaXMgdXNlZCBhcyBhCitkbmwgICBkZWxpbWl0ZXIuIEEgbm9uLW9wdGlvbiBjb21tZW50IGNhbiBiZSBnaXZlbiBhZnRlciAiJSUiIG1hcmtzCitkbmwgICB3aGljaCB3aWxsIGJlIHNob3duIGJ1dCBub3QgYWRkZWQgdG8gdGhlIHJlc3BlY3RpdmUgQy9DWFhGTEFHUy4KKworQUNfREVGVU4oW0FYX0NGTEFHU19XQVJOX0FMTF0sW2RubAorQUNfTEFOR19QVVNIKFtDXSkKK0FYX0ZMQUdTX1dBUk5fQUxMKFskMV0sIFskMl0sIFskM10sIFskNF0pCitBQ19MQU5HX1BPUChbQ10pCitdKQorCitBQ19ERUZVTihbQVhfQ1hYRkxBR1NfV0FSTl9BTExdLFtkbmwKK0FDX0xBTkdfUFVTSChbQysrXSkKK0FYX0ZMQUdTX1dBUk5fQUxMKFskMV0sIFskMl0sIFskM10sIFskNF0pCitBQ19MQU5HX1BPUChbQysrXSkKK10pCisKK0FDX0RFRlVOKFtBWF9GQ0ZMQUdTX1dBUk5fQUxMXSxbZG5sCitBQ19MQU5HX1BVU0goW0ZvcnRyYW5dKQorQVhfRkxBR1NfV0FSTl9BTEwoWyQxXSwgWyQyXSwgWyQzXSwgWyQ0XSkKK0FDX0xBTkdfUE9QKFtGb3J0cmFuXSkKK10pCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXhfY2hlY2tfY29tcGlsZV9mbGFnLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMzYThkNjkKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5tNApAQCAtMCwwICsxLDcyIEBACisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvY29uZi1hcmNoaXZlL2F4X2NoZWNrX2NvbXBpbGVfZmxhZy5odG1sCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIworIyBTWU5PUFNJUworIworIyAgIEFYX0NIRUNLX0NPTVBJTEVfRkxBRyhGTEFHLCBbQUNUSU9OLVNVQ0NFU1NdLCBbQUNUSU9OLUZBSUxVUkVdLCBbRVhUUkEtRkxBR1NdKQorIworIyBERVNDUklQVElPTgorIworIyAgIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIEZMQUcgd29ya3Mgd2l0aCB0aGUgY3VycmVudCBsYW5ndWFnZSdzIGNvbXBpbGVyCisjICAgb3IgZ2l2ZXMgYW4gZXJyb3IuICAoV2FybmluZ3MsIGhvd2V2ZXIsIGFyZSBpZ25vcmVkKQorIworIyAgIEFDVElPTi1TVUNDRVNTL0FDVElPTi1GQUlMVVJFIGFyZSBzaGVsbCBjb21tYW5kcyB0byBleGVjdXRlIG9uCisjICAgc3VjY2Vzcy9mYWlsdXJlLgorIworIyAgIElmIEVYVFJBLUZMQUdTIGlzIGRlZmluZWQsIGl0IGlzIGFkZGVkIHRvIHRoZSBjdXJyZW50IGxhbmd1YWdlJ3MgZGVmYXVsdAorIyAgIGZsYWdzIChlLmcuIENGTEFHUykgd2hlbiB0aGUgY2hlY2sgaXMgZG9uZS4gIFRoZSBjaGVjayBpcyB0aHVzIG1hZGUgd2l0aAorIyAgIHRoZSBmbGFnczogIkNGTEFHUyBFWFRSQS1GTEFHUyBGTEFHIi4gIFRoaXMgY2FuIGZvciBleGFtcGxlIGJlIHVzZWQgdG8KKyMgICBmb3JjZSB0aGUgY29tcGlsZXIgdG8gaXNzdWUgYW4gZXJyb3Igd2hlbiBhIGJhZCBmbGFnIGlzIGdpdmVuLgorIworIyAgIE5PVEU6IEltcGxlbWVudGF0aW9uIGJhc2VkIG9uIEFYX0NGTEFHU19HQ0NfT1BUSU9OLiBQbGVhc2Uga2VlcCB0aGlzCisjICAgbWFjcm8gaW4gc3luYyB3aXRoIEFYX0NIRUNLX3tQUkVQUk9DLExJTkt9X0ZMQUcuCisjCisjIExJQ0VOU0UKKyMKKyMgICBDb3B5cmlnaHQgKGMpIDIwMDggR3VpZG8gVS4gRHJhaGVpbSA8Z3VpZG9kQGdteC5kZT4KKyMgICBDb3B5cmlnaHQgKGMpIDIwMTEgTWFhcnRlbiBCb3NtYW5zIDxta2Jvc21hbnNAZ21haWwuY29tPgorIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisjICAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91cgorIyAgIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwKKyMgICBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisjICAgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyMKKyMgICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgcmVzcGVjdGl2ZSBBdXRvY29uZiBNYWNybydzIGNvcHlyaWdodCBvd25lcgorIyAgIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSB0aGUgY29uZmlndXJlCisjICAgc2NyaXB0cyB0aGF0IGFyZSB0aGUgb3V0cHV0IG9mIEF1dG9jb25mIHdoZW4gcHJvY2Vzc2luZyB0aGUgTWFjcm8uIFlvdQorIyAgIG5lZWQgbm90IGZvbGxvdyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHdoZW4gdXNpbmcKKyMgICBvciBkaXN0cmlidXRpbmcgc3VjaCBzY3JpcHRzLCBldmVuIHRob3VnaCBwb3J0aW9ucyBvZiB0aGUgdGV4dCBvZiB0aGUKKyMgICBNYWNybyBhcHBlYXIgaW4gdGhlbS4gVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIGRvZXMgZ292ZXJuCisjICAgYWxsIG90aGVyIHVzZSBvZiB0aGUgbWF0ZXJpYWwgdGhhdCBjb25zdGl0dXRlcyB0aGUgQXV0b2NvbmYgTWFjcm8uCisjCisjICAgVGhpcyBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMIGFwcGxpZXMgdG8gdmVyc2lvbnMgb2YgdGhlIEF1dG9jb25mCisjICAgTWFjcm8gcmVsZWFzZWQgYnkgdGhlIEF1dG9jb25mIEFyY2hpdmUuIFdoZW4geW91IG1ha2UgYW5kIGRpc3RyaWJ1dGUgYQorIyAgIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIEF1dG9jb25mIE1hY3JvLCB5b3UgbWF5IGV4dGVuZCB0aGlzIHNwZWNpYWwKKyMgICBleGNlcHRpb24gdG8gdGhlIEdQTCB0byBhcHBseSB0byB5b3VyIG1vZGlmaWVkIHZlcnNpb24gYXMgd2VsbC4KKworI3NlcmlhbCAyCisKK0FDX0RFRlVOKFtBWF9DSEVDS19DT01QSUxFX0ZMQUddLAorW0FDX1BSRVJFUSgyLjU5KWRubCBmb3IgX0FDX0xBTkdfUFJFRklYCitBU19WQVJfUFVTSERFRihbQ0FDSEVWQVJdLFtheF9jdl9jaGVja19bXV9BQ19MQU5HX0FCQlJFVltdZmxhZ3NfJDRfJDFdKWRubAorQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgX0FDX0xBTkcgY29tcGlsZXIgYWNjZXB0cyAkMV0sIENBQ0hFVkFSLCBbCisgIGF4X2NoZWNrX3NhdmVfZmxhZ3M9JFtdX0FDX0xBTkdfUFJFRklYW11GTEFHUworICBfQUNfTEFOR19QUkVGSVhbXUZMQUdTPSIkW11fQUNfTEFOR19QUkVGSVhbXUZMQUdTICQ0ICQxIgorICBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKCldLAorICAgIFtBU19WQVJfU0VUKENBQ0hFVkFSLFt5ZXNdKV0sCisgICAgW0FTX1ZBUl9TRVQoQ0FDSEVWQVIsW25vXSldKQorICBfQUNfTEFOR19QUkVGSVhbXUZMQUdTPSRheF9jaGVja19zYXZlX2ZsYWdzXSkKK0FTX0lGKFt0ZXN0IHgiQVNfVkFSX0dFVChDQUNIRVZBUikiID0geHllc10sCisgIFttNF9kZWZhdWx0KFskMl0sIDopXSwKKyAgW200X2RlZmF1bHQoWyQzXSwgOildKQorQVNfVkFSX1BPUERFRihbQ0FDSEVWQVJdKWRubAorXSlkbmwgQVhfQ0hFQ0tfQ09NUElMRV9GTEFHUwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9heF9jb21waWxlcl92ZW5kb3IubTQgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2NvbXBpbGVyX3ZlbmRvci5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2UzMmVhCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9heF9jb21waWxlcl92ZW5kb3IubTQKQEAgLTAsMCArMSw4NCBAQAorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9jb25mLWFyY2hpdmUvYXhfY29tcGlsZXJfdmVuZG9yLmh0bWwKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjCisjIFNZTk9QU0lTCisjCisjICAgQVhfQ09NUElMRVJfVkVORE9SCisjCisjIERFU0NSSVBUSU9OCisjCisjICAgRGV0ZXJtaW5lIHRoZSB2ZW5kb3Igb2YgdGhlIEMvQysrIGNvbXBpbGVyLCBlLmcuLCBnbnUsIGludGVsLCBpYm0sIHN1biwKKyMgICBocCwgYm9ybGFuZCwgY29tZWF1LCBkZWMsIGNyYXksIGthaSwgbGNjLCBtZXRyb3dlcmtzLCBzZ2ksIG1pY3Jvc29mdCwKKyMgICB3YXRjb20sIGV0Yy4gVGhlIHZlbmRvciBpcyByZXR1cm5lZCBpbiB0aGUgY2FjaGUgdmFyaWFibGUKKyMgICAkYXhfY3ZfY19jb21waWxlcl92ZW5kb3IgZm9yIEMgYW5kICRheF9jdl9jeHhfY29tcGlsZXJfdmVuZG9yIGZvciBDKysuCisjCisjIExJQ0VOU0UKKyMKKyMgICBDb3B5cmlnaHQgKGMpIDIwMDggU3RldmVuIEcuIEpvaG5zb24gPHN0ZXZlbmpAYWx1bS5taXQuZWR1PgorIyAgIENvcHlyaWdodCAoYykgMjAwOCBNYXR0ZW8gRnJpZ28KKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorIyAgIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIKKyMgICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsCisjICAgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworIyAgIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisjCisjICAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIHJlc3BlY3RpdmUgQXV0b2NvbmYgTWFjcm8ncyBjb3B5cmlnaHQgb3duZXIKKyMgICBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgdGhlIGNvbmZpZ3VyZQorIyAgIHNjcmlwdHMgdGhhdCBhcmUgdGhlIG91dHB1dCBvZiBBdXRvY29uZiB3aGVuIHByb2Nlc3NpbmcgdGhlIE1hY3JvLiBZb3UKKyMgICBuZWVkIG5vdCBmb2xsb3cgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB3aGVuIHVzaW5nCisjICAgb3IgZGlzdHJpYnV0aW5nIHN1Y2ggc2NyaXB0cywgZXZlbiB0aG91Z2ggcG9ydGlvbnMgb2YgdGhlIHRleHQgb2YgdGhlCisjICAgTWFjcm8gYXBwZWFyIGluIHRoZW0uIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBkb2VzIGdvdmVybgorIyAgIGFsbCBvdGhlciB1c2Ugb2YgdGhlIG1hdGVyaWFsIHRoYXQgY29uc3RpdHV0ZXMgdGhlIEF1dG9jb25mIE1hY3JvLgorIworIyAgIFRoaXMgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCBhcHBsaWVzIHRvIHZlcnNpb25zIG9mIHRoZSBBdXRvY29uZgorIyAgIE1hY3JvIHJlbGVhc2VkIGJ5IHRoZSBBdXRvY29uZiBBcmNoaXZlLiBXaGVuIHlvdSBtYWtlIGFuZCBkaXN0cmlidXRlIGEKKyMgICBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBBdXRvY29uZiBNYWNybywgeW91IG1heSBleHRlbmQgdGhpcyBzcGVjaWFsCisjICAgZXhjZXB0aW9uIHRvIHRoZSBHUEwgdG8gYXBwbHkgdG8geW91ciBtb2RpZmllZCB2ZXJzaW9uIGFzIHdlbGwuCisKKyNzZXJpYWwgMTEKKworQUNfREVGVU4oW0FYX0NPTVBJTEVSX1ZFTkRPUl0sCitbQUNfQ0FDSEVfQ0hFQ0soW2ZvciBfQUNfTEFORyBjb21waWxlciB2ZW5kb3JdLCBheF9jdl9bXV9BQ19MQU5HX0FCQlJFVltdX2NvbXBpbGVyX3ZlbmRvciwKKyAgWyMgbm90ZTogZG9uJ3QgY2hlY2sgZm9yIGdjYyBmaXJzdCBzaW5jZSBzb21lIG90aGVyIGNvbXBpbGVycyBkZWZpbmUgX19HTlVDX18KKyAgdmVuZG9ycz0iaW50ZWw6ICAgICBfX0lDQyxfX0VDQyxfX0lOVEVMX0NPTVBJTEVSCisgICAgICAgICAgIGlibTogICAgICAgX194bGNfXyxfX3hsQ19fLF9fSUJNQ19fLF9fSUJNQ1BQX18KKyAgICAgICAgICAgcGF0aHNjYWxlOiBfX1BBVEhDQ19fLF9fUEFUSFNDQUxFX18KKyAgICAgICAgICAgY2xhbmc6ICAgICBfX2NsYW5nX18KKyAgICAgICAgICAgZ251OiAgICAgICBfX0dOVUNfXworICAgICAgICAgICBzdW46ICAgICAgIF9fU1VOUFJPX0MsX19TVU5QUk9fQ0MKKyAgICAgICAgICAgaHA6ICAgICAgICBfX0hQX2NjLF9fSFBfYUNDCisgICAgICAgICAgIGRlYzogICAgICAgX19ERUNDLF9fREVDQ1hYLF9fREVDQ19WRVIsX19ERUNDWFhfVkVSCisgICAgICAgICAgIGJvcmxhbmQ6ICAgX19CT1JMQU5EQ19fLF9fVFVSQk9DX18KKyAgICAgICAgICAgY29tZWF1OiAgICBfX0NPTU9fXworICAgICAgICAgICBjcmF5OiAgICAgIF9DUkFZQworICAgICAgICAgICBrYWk6ICAgICAgIF9fS0NDCisgICAgICAgICAgIGxjYzogICAgICAgX19MQ0NfXworICAgICAgICAgICBzZ2k6ICAgICAgIF9fc2dpLHNnaQorICAgICAgICAgICBtaWNyb3NvZnQ6IF9NU0NfVkVSCisgICAgICAgICAgIG1ldHJvd2Vya3M6IF9fTVdFUktTX18KKyAgICAgICAgICAgd2F0Y29tOiAgICBfX1dBVENPTUNfXworICAgICAgICAgICBwb3J0bGFuZDogIF9fUEdJCisgICAgICAgICAgIHVua25vd246ICAgVU5LTk9XTiIKKyAgZm9yIHZlbnRlc3QgaW4gJHZlbmRvcnM7IGRvCisgICAgY2FzZSAkdmVudGVzdCBpbgorICAgICAgKjopIHZlbmRvcj0kdmVudGVzdDsgY29udGludWUgOzsKKyAgICAgICopICB2ZW5jcHA9ImRlZmluZWQoImBlY2hvICR2ZW50ZXN0IHwgc2VkICdzLywvKSB8fCBkZWZpbmVkKC9nJ2AiKSIgOzsKKyAgICBlc2FjCisgICAgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTSgsWworICAgICAgI2lmICEoJHZlbmNwcCkKKyAgICAgICAgdGhpc2lzYW5lcnJvcjsKKyAgICAgICNlbmRpZgorICAgIF0pXSwgW2JyZWFrXSkKKyAgZG9uZQorICBheF9jdl9bXV9BQ19MQU5HX0FCQlJFVltdX2NvbXBpbGVyX3ZlbmRvcj1gZWNobyAkdmVuZG9yIHwgY3V0IC1kOiAtZjFgCisgXSkKK10pCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2NvbmZpZ3VyZV9hcmdzLm00IGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9heF9jb25maWd1cmVfYXJncy5tNApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzI2YjFiCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9heF9jb25maWd1cmVfYXJncy5tNApAQCAtMCwwICsxLDcwIEBACisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgICAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9jb25mLWFyY2hpdmUvYXhfY29uZmlndXJlX2FyZ3MuaHRtbAorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMKKyMgU1lOT1BTSVMKKyMKKyMgICBBWF9DT05GSUdVUkVfQVJHUworIworIyBERVNDUklQVElPTgorIworIyAgIEhlbHBlciBtYWNybyBmb3IgQVhfRU5BQkxFX0JVSUxERElSLgorIworIyAgIFRoZSB0cmFkaXRpb25hbCB3YXkgb2Ygc3RhcnRpbmcgYSBzdWJkaXItY29uZmlndXJlIGlzIHJ1bm5pbmcgdGhlIHNjcmlwdAorIyAgIHdpdGggJHsxKyIkQCJ9IGJ1dCBzaW5jZSBhdXRvY29uZiAyLjYwIHRoaXMgaXMgYnJva2VuLiBJbnN0ZWFkIHdlIGhhdmUKKyMgICB0byByZWx5IG9uIGV2YWwnaW5nICRhY19jb25maWd1cmVfYXJncyBob3dldmVyIHNvbWUgb2xkIGF1dG9jb25mCisjICAgdmVyc2lvbnMgZG8gbm90IHByb3ZpZGUgdGhhdC4gVG8gZW5zdXJlIG1heGltdW0gcG9ydGFiaWxpdHkgb2YgYXV0b2NvbmYKKyMgICBleHRlbnNpb24gbWFjcm9zIHRoaXMgaGVscGVyIGNhbiBiZSBBQ19SRVFVSVJFJ2Qgc28gdGhhdAorIyAgICRhY19jb25maWd1cmVfYXJncyB3aWxsIGFsc3dheXMgYmUgcHJlc2VudC4KKyMKKyMgICBTYWRseSwgdGhlIHRyYWRpdGlvbmFsICJleGVjICRTSEVMTCIgb2YgdGhlIGVuYWJsZV9idWlsZGRpciBtYWNyb3MgaXMKKyMgICBzcG9pbGVkIG5vdyBhbmQgbXVzdCBiZSByZXBsYWNlZCBieSAiZXZhbCArIGV4aXQgJD8iLgorIworIyAgIEV4YW1wbGU6CisjCisjICAgICBBQ19ERUZVTihbQVhfRU5BQkxFX1NVQkRJUl0sW2RubAorIyAgICAgICBBQ19SRVFVSVJFKFtBWF9DT05GSUdVUkVfQVJHU10pZG5sCisjICAgICAgIGV2YWwgJFNIRUxMICRhY19jb25maWd1cmVfYXJncyB8fCBleGl0ICQ/CisjICAgICAgIC4uLl0pCisjCisjIExJQ0VOU0UKKyMKKyMgICBDb3B5cmlnaHQgKGMpIDIwMDggR3VpZG8gVS4gRHJhaGVpbSA8Z3VpZG9kQGdteC5kZT4KKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorIyAgIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQorIyAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIKKyMgICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgICBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsCisjICAgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZworIyAgIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisjCisjICAgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIHJlc3BlY3RpdmUgQXV0b2NvbmYgTWFjcm8ncyBjb3B5cmlnaHQgb3duZXIKKyMgICBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgdGhlIGNvbmZpZ3VyZQorIyAgIHNjcmlwdHMgdGhhdCBhcmUgdGhlIG91dHB1dCBvZiBBdXRvY29uZiB3aGVuIHByb2Nlc3NpbmcgdGhlIE1hY3JvLiBZb3UKKyMgICBuZWVkIG5vdCBmb2xsb3cgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB3aGVuIHVzaW5nCisjICAgb3IgZGlzdHJpYnV0aW5nIHN1Y2ggc2NyaXB0cywgZXZlbiB0aG91Z2ggcG9ydGlvbnMgb2YgdGhlIHRleHQgb2YgdGhlCisjICAgTWFjcm8gYXBwZWFyIGluIHRoZW0uIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBkb2VzIGdvdmVybgorIyAgIGFsbCBvdGhlciB1c2Ugb2YgdGhlIG1hdGVyaWFsIHRoYXQgY29uc3RpdHV0ZXMgdGhlIEF1dG9jb25mIE1hY3JvLgorIworIyAgIFRoaXMgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdQTCBhcHBsaWVzIHRvIHZlcnNpb25zIG9mIHRoZSBBdXRvY29uZgorIyAgIE1hY3JvIHJlbGVhc2VkIGJ5IHRoZSBBdXRvY29uZiBBcmNoaXZlLiBXaGVuIHlvdSBtYWtlIGFuZCBkaXN0cmlidXRlIGEKKyMgICBtb2RpZmllZCB2ZXJzaW9uIG9mIHRoZSBBdXRvY29uZiBNYWNybywgeW91IG1heSBleHRlbmQgdGhpcyBzcGVjaWFsCisjICAgZXhjZXB0aW9uIHRvIHRoZSBHUEwgdG8gYXBwbHkgdG8geW91ciBtb2RpZmllZCB2ZXJzaW9uIGFzIHdlbGwuCisKKyNzZXJpYWwgOQorCitBQ19ERUZVTihbQVhfQ09ORklHVVJFX0FSR1NdLFsKKyAgICMgWyRdQCBpcyB1bnNhYmxlIGluIDIuNjArIGJ1dCBlYXJsaWVyIGF1dG9jb25mIGhhZCBubyBhY19jb25maWd1cmVfYXJncworICAgaWYgdGVzdCAiJHthY19jb25maWd1cmVfYXJncytzZXR9IiAhPSAic2V0IiA7IHRoZW4KKyAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPQorICAgICAgZm9yIGFjX2FyZyBpbiAkezErIlskXUAifTsgZG8KKyAgICAgICAgIGFjX2NvbmZpZ3VyZV9hcmdzPSIkYWNfY29uZmlndXJlX2FyZ3MgJyRhY19hcmcnIgorICAgICAgZG9uZQorICAgZmkKK10pCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2VuYWJsZV9idWlsZGRpci5tNCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXhfZW5hYmxlX2J1aWxkZGlyLm00Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmYjg3MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2VuYWJsZV9idWlsZGRpci5tNApAQCAtMCwwICsxLDMwMCBAQAorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9jb25mLWFyY2hpdmUvYXhfZW5hYmxlX2J1aWxkZGlyLmh0bWwKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjCisjIFNZTk9QU0lTCisjCisjICAgQVhfRU5BQkxFX0JVSUxERElSIFsoZGlyc3RyaW5nLW9yLWNvbW1hbmQgWyxNYWtlZmlsZS5tayBbLC1hbGxdXSldCisjCisjIERFU0NSSVBUSU9OCisjCisjICAgSWYgdGhlIGN1cnJlbnQgY29uZmlndXJlIHdhcyBydW4gd2l0aGluIHRoZSBzcmNkaXIgdGhlbiB3ZSBtb3ZlIGFsbAorIyAgIGNvbmZpZ3VyZS1maWxlcyBpbnRvIGEgc3ViZGlyIGFuZCBsZXQgdGhlIGNvbmZpZ3VyZSBzdGVwcyBjb250aW51ZQorIyAgIHRoZXJlLiBXZSBwcm92aWRlIGFuIG9wdGlvbiAtLWRpc2FibGUtYnVpbGRkaXIgdG8gc3VwcHJlc3MgdGhlIG1vdmUgaW50bworIyAgIGEgc2VwYXJhdGUgYnVpbGRkaXIuCisjCisjICAgRGVmYXVsdHM6CisjCisjICAgICAkMSA9ICRob3N0IChvdmVycmlkZGVuIHdpdGggJEhPU1QpCisjICAgICAkMiA9IE1ha2VmaWxlLm1rCisjICAgICAkMyA9IC1hbGwKKyMKKyMgICBUaGlzIG1hY3JvIG11c3QgYmUgY2FsbGVkIGJlZm9yZSBBTV9JTklUX0FVVE9NQUtFLiBJdCBjcmVhdGVzIGEgZGVmYXVsdAorIyAgIHRvcGxldmVsIHNyY2RpciBNYWtlZmlsZSBmcm9tIHRoZSBpbmZvcm1hdGlvbiBmb3VuZCBpbiB0aGUgY3JlYXRlZAorIyAgIHRvcGxldmVsIGJ1aWxkZGlyIE1ha2VmaWxlLiBJdCBqdXN0IGNvcGllcyB0aGUgdmFyaWFibGVzIGFuZAorIyAgIHJ1bGUtdGFyZ2V0cywgZWFjaCBleHRlbmRlZCB3aXRoIGEgZGVmYXVsdCBydWxlLWV4ZWN1dGlvbiB0aGF0IHJlY3Vyc2VzCisjICAgaW50byB0aGUgYnVpbGQgZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50ICJIT1NUIi4gWW91IGNhbiBvdmVycmlkZSB0aGUKKyMgICBhdXRvLWRlY3Rpb24gdGhyb3VnaCBgY29uZmlnLmd1ZXNzYCBhbmQgYnVpbGQtdGltZSBvZiBjb3Vyc2UsIGFzIGluCisjCisjICAgICBtYWtlIEhPU1Q9aTM4Ni1taW5ndy1jcm9zcworIworIyAgIHdoaWNoIGNhbiBvZiBjb3Vyc2Ugc2V0IGF0IGNvbmZpZ3VyZSB0aW1lIGFzIHdlbGwgdXNpbmcKKyMKKyMgICAgIGNvbmZpZ3VyZSAtLWhvc3Q9aTM4Ni1taW5ndy1jcm9zcworIworIyAgIEFmdGVyIHRoZSBkZWZhdWx0IGhhcyBiZWVuIGNyZWF0ZWQsIGFkZGl0aW9uYWwgcnVsZXMgY2FuIGJlIGFwcGVuZGVkCisjICAgdGhhdCB3aWxsIG5vdCBqdXN0IHJlY3Vyc2UgaW50byB0aGUgc3ViZGlyZWN0b3JpZXMgYW5kIG9ubHkgZXZlciBleGlzdAorIyAgIGluIHRoZSBzcmNkaXIgdG9wbGV2ZWwgbWFrZWZpbGUgLSB0aGVzZSBwYXJ0cyBhcmUgcmVhZCBmcm9tIHRoZSAkMiA9CisjICAgTWFrZWZpbGUubWsgZmlsZQorIworIyAgIFRoZSBhdXRvbWF0aWMgcnVsZXMgYXJlIHVzdWFsbHkgc2Nhbm5pbmcgdGhlIHRvcGxldmVsIE1ha2VmaWxlIGZvciBsaW5lcworIyAgIGxpa2UgJyMjIyMgJGhvc3QgfCRidWlsZGRpcicgdG8gcmVjb2duaXplIHRoZSBwbGFjZSB3aGVyZSB0byByZWN1cnNlCisjICAgaW50by4gVXN1YWxseSwgdGhlIGxhc3Qgb25lIGlzIHRoZSBvbmx5IG9uZSB1c2VkLiBIb3dldmVyLCBhbG1vc3QgYWxsCisjICAgdGFyZ2V0cyBoYXZlIGFuIGFkZGl0aW9uYWwgIiotYWxsIiBydWxlIHdoaWNoIG1ha2VzIHRoZSBzY3JpcHQgdG8KKyMgICByZWN1cnNlIGludG8gX2FsbF8gdmFyaWFudHMgb2YgdGhlIGN1cnJlbnQgSE9TVCAoISEpIHNldHRpbmcuIFRoZSAiLWFsbCIKKyMgICBzdWZmaXggY2FuIGJlIG92ZXJyaWRlbiBmb3IgdGhlIG1hY3JvIGFzIHdlbGwuCisjCisjICAgYSBzcGVjaWFsIHJ1bGUgaXMgb25seSBnaXZlbiBmb3IgdGhpbmdzIGxpa2UgImRpc3QiIHRoYXQgd2lsbCBjb3B5IHRoZQorIyAgIHRhcmJhbGwgZnJvbSB0aGUgYnVpbGRkaXIgdG8gdGhlIHNvdXJjZWRpciAob3IgJChQVUIpKSBmb3IgcmVhc29uIG9mCisjICAgY29udmVuaWVuY2UuCisjCisjIExJQ0VOU0UKKyMKKyMgICBDb3B5cmlnaHQgKGMpIDIwMDkgR3VpZG8gVS4gRHJhaGVpbSA8Z3VpZG9kQGdteC5kZT4KKyMgICBDb3B5cmlnaHQgKGMpIDIwMDkgQWxhbiBKZW5raW5zIDxhbGFuLWplbmtpbnNAdHVmZm1haWwuY28udWs+CisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyMgICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyCisjICAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisjICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbAorIyAgIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKKyMgICB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorIworIyAgIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHRoZSByZXNwZWN0aXZlIEF1dG9jb25mIE1hY3JvJ3MgY29weXJpZ2h0IG93bmVyCisjICAgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IHRoZSBjb25maWd1cmUKKyMgICBzY3JpcHRzIHRoYXQgYXJlIHRoZSBvdXRwdXQgb2YgQXV0b2NvbmYgd2hlbiBwcm9jZXNzaW5nIHRoZSBNYWNyby4gWW91CisjICAgbmVlZCBub3QgZm9sbG93IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ugd2hlbiB1c2luZworIyAgIG9yIGRpc3RyaWJ1dGluZyBzdWNoIHNjcmlwdHMsIGV2ZW4gdGhvdWdoIHBvcnRpb25zIG9mIHRoZSB0ZXh0IG9mIHRoZQorIyAgIE1hY3JvIGFwcGVhciBpbiB0aGVtLiBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgZG9lcyBnb3Zlcm4KKyMgICBhbGwgb3RoZXIgdXNlIG9mIHRoZSBtYXRlcmlhbCB0aGF0IGNvbnN0aXR1dGVzIHRoZSBBdXRvY29uZiBNYWNyby4KKyMKKyMgICBUaGlzIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwgYXBwbGllcyB0byB2ZXJzaW9ucyBvZiB0aGUgQXV0b2NvbmYKKyMgICBNYWNybyByZWxlYXNlZCBieSB0aGUgQXV0b2NvbmYgQXJjaGl2ZS4gV2hlbiB5b3UgbWFrZSBhbmQgZGlzdHJpYnV0ZSBhCisjICAgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgQXV0b2NvbmYgTWFjcm8sIHlvdSBtYXkgZXh0ZW5kIHRoaXMgc3BlY2lhbAorIyAgIGV4Y2VwdGlvbiB0byB0aGUgR1BMIHRvIGFwcGx5IHRvIHlvdXIgbW9kaWZpZWQgdmVyc2lvbiBhcyB3ZWxsLgorCisjc2VyaWFsIDIzCisKK0FDX0RFRlVOKFtBWF9FTkFCTEVfQlVJTERESVJdLFsKK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlbXWRubAorQUNfUkVRVUlSRShbQVhfQ09ORklHVVJFX0FSR1NdKVtdZG5sCitBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pW11kbmwKK0FDX0JFRk9SRShbJDBdLFtBTV9JTklUX0FVVE9NQUtFXSlkbmwKK0FTX1ZBUl9QVVNIREVGKFtTVUJdLFtheF9lbmFibGVfYnVpbGRkaXJdKWRubAorQVNfVkFSX1BVU0hERUYoW0FVWF0sW2F4X2VuYWJsZV9idWlsZGRpcl9hdXhkaXJdKWRubAorQVNfVkFSX1BVU0hERUYoW1NFRF0sW2F4X2VuYWJsZV9idWlsZGRpcl9zZWRdKWRubAorU1VCPSIuIgorQUNfQVJHX0VOQUJMRShbYnVpbGRkaXJdLCBBU19IRUxQX1NUUklORygKKyAgWy0tZGlzYWJsZS1idWlsZGRpcl0sW2Rpc2FibGUgYXV0b21hdGljIGJ1aWxkIGluIHN1YmRpciBvZiBzb3VyY2VzXSkKKyAgLFtTVUI9IiRlbmFibGV2YWwiXSwgW1NVQj0iYXV0byJdKQoraWYgdGVzdCAiLiRhY19zcmNkaXJfZGVmYXVsdGVkIiAhPSAiLm5vIiA7IHRoZW4KK2lmIHRlc3QgIi4kc3JjZGlyIiA9ICIuLiIgOyB0aGVuCisgIGlmIHRlc3QgLWYgY29uZmlnLnN0YXR1cyA7IHRoZW4KKyAgICBBQ19NU0dfTk9USUNFKHRvcGxldmVsIHNyY2RpciBhbHJlYWR5IGNvbmZpZ3VyZWQuLi4gc2tpcHBpbmcgc3ViZGlyIGJ1aWxkKQorICBlbHNlCisgICAgdGVzdCAiLiRTVUIiID0gIi4iICAmJiBTVUI9Ii4iCisgICAgdGVzdCAiLiRTVUIiID0gIi5ubyIgICYmIFNVQj0iLiIKKyAgICB0ZXN0ICIuJFRBUkdFVCIgPSAiLiIgJiYgVEFSR0VUPSIkdGFyZ2V0IgorICAgIHRlc3QgIi4kU1VCIiA9ICIuYXV0byIgJiYgU1VCPSJtNF9pZnZhbChbJDFdLCBbJDFdLFskVEFSR0VUXSkiCisgICAgaWYgdGVzdCAiLiRTVUIiICE9ICIuLiIgOyB0aGVuICAgICMgd2Uga25vdyB3aGVyZSB0byBnbyBhbmQKKyAgICAgIEFTX01LRElSX1AoWyRTVUJdKQorICAgICAgZWNobyBfXy4kU1VCLl9fID4gJFNVQi9jb25mdGVzdC50bXAKKyAgICAgIGNkICRTVUIKKyAgICAgIGlmIGdyZXAgX18uJFNVQi5fXyBjb25mdGVzdC50bXAgPi9kZXYvbnVsbCAyPi9kZXYvbnVsbCA7IHRoZW4KKyAgICAgICAgcm0gY29uZnRlc3QudG1wCisgICAgICAgIEFDX01TR19SRVNVTFQoW2NvbnRpbnVlIGNvbmZpZ3VyZSBpbiBkZWZhdWx0IGJ1aWxkZGlyICIuLyRTVUIiXSkKKyAgICAgIGVsc2UKKyAgICAgICAgQUNfTVNHX0VSUk9SKFtjb3VsZCBub3QgY2hhbmdlIHRvIGRlZmF1bHQgYnVpbGRkaXIgIi4vJFNVQiJdKQorICAgICAgZmkKKyAgICAgIHNyY2Rpcj1gZWNobyAiJFNVQiIgfAorICAgICAgICAgICAgICBzZWQgLWUgJ3MsXlwuLywsO3MsW1teL11dJCwmLyw7cyxbW14vXV0qLywuLi8sZztzLFtbL11dJCwsOydgCisgICAgICAjIGdvaW5nIHRvIHJlc3RhcnQgZnJvbSBzdWJkaXJlY3RvcnkgbG9jYXRpb24KKyAgICAgIHRlc3QgLWYgJHNyY2Rpci9jb25maWcubG9nICAgJiYgbXYgJHNyY2Rpci9jb25maWcubG9nICAgLgorICAgICAgdGVzdCAtZiAkc3JjZGlyL2NvbmZkZWZzLmggICAmJiBtdiAkc3JjZGlyL2NvbmZkZWZzLmggICAuCisgICAgICB0ZXN0IC1mICRzcmNkaXIvY29uZnRlc3QubG9nICYmIG12ICRzcmNkaXIvY29uZnRlc3QubG9nIC4KKyAgICAgIHRlc3QgLWYgJHNyY2Rpci8kY2FjaGVfZmlsZSAgJiYgbXYgJHNyY2Rpci8kY2FjaGVfZmlsZSAgLgorICAgICAgQUNfTVNHX1JFU1VMVCguLi4uZXhlYyAkU0hFTEwgJHNyY2Rpci9bJF0wICItLXNyY2Rpcj0kc3JjZGlyIiAiLS1lbmFibGUtYnVpbGRkaXI9JFNVQiIgJHsxKyJbJF1AIn0pCisgICAgICBjYXNlICJbJF0wIiBpbiAjIHJlc3RhcnQKKyAgICAgICBbL1xcXSopIGV2YWwgJFNIRUxMICInWyRdMCciICInLS1zcmNkaXI9JHNyY2RpciciICInLS1lbmFibGUtYnVpbGRkaXI9JFNVQiciICRhY19jb25maWd1cmVfYXJncyA7OworICAgICAgICopIGV2YWwgJFNIRUxMICInJHNyY2Rpci9bJF0wJyIgIictLXNyY2Rpcj0kc3JjZGlyJyIgIictLWVuYWJsZS1idWlsZGRpcj0kU1VCJyIgJGFjX2NvbmZpZ3VyZV9hcmdzIDs7CisgICAgICBlc2FjIDsgZXhpdCAkPworICAgIGZpCisgIGZpCitmaSBmaQordGVzdCAiLiRTVUIiID0gIi5hdXRvIiAmJiBTVUI9Ii4iCitkbmwgYWNfcGF0aF9wcm9nIHVzZXMgInNldCBkdW1teSIgdG8gb3ZlcnJpZGUgJEAgd2hpY2ggd291bGQgZGVmZWF0IHRoZSAiZXhlYyIKK0FDX1BBVEhfUFJPRyhTRUQsZ3NlZCBzZWQsIHNlZCkKK0FVWD0iJGFtX2F1eF9kaXIiCitBU19WQVJfUE9QREVGKFtTRURdKWRubAorQVNfVkFSX1BPUERFRihbQVVYXSlkbmwKK0FTX1ZBUl9QT1BERUYoW1NVQl0pZG5sCitBQ19DT05GSUdfQ09NTUFORFMoW2J1aWxkaXJdLFtkbmwgLi4uLi4uLi4uLi4uLi4gY29uZmlnLnN0YXR1cyAuLi4uLi4uLi4uLi4uLgorQVNfVkFSX1BVU0hERUYoW1NVQl0sW2F4X2VuYWJsZV9idWlsZGRpcl0pZG5sCitBU19WQVJfUFVTSERFRihbVE9QXSxbdG9wX3NyY2Rpcl0pZG5sCitBU19WQVJfUFVTSERFRihbU1JDXSxbYWNfdG9wX3NyY2Rpcl0pZG5sCitBU19WQVJfUFVTSERFRihbQVVYXSxbYXhfZW5hYmxlX2J1aWxkZGlyX2F1eGRpcl0pZG5sCitBU19WQVJfUFVTSERFRihbU0VEXSxbYXhfZW5hYmxlX2J1aWxkZGlyX3NlZF0pZG5sCitwdXNoZGVmKFtFTkRdLFtNYWtlZmlsZS5ta10pZG5sCitwdXNoZGVmKFtfQUxMXSxbaWZlbHNlKFskM10sLFstYWxsXSxbJDNdKV0pZG5sCisgIFNSQz0iJGF4X2VuYWJsZV9idWlsZGRpcl9zcmNkaXIiCisgIGlmIHRlc3QgIi4kU1VCIiA9ICIuLiIgOyB0aGVuCisgICAgaWYgdGVzdCAtZiAiJFRPUC9NYWtlZmlsZSIgOyB0aGVuCisgICAgICBBQ19NU0dfTk9USUNFKFtza2lwcGluZyBUT1AvTWFrZWZpbGUgLSBsZWZ0IHVudG91Y2hlZF0pCisgICAgZWxzZQorICAgICAgQUNfTVNHX05PVElDRShbc2tpcHBpbmcgVE9QL01ha2VmaWxlIC0gbm90IGNyZWF0ZWRdKQorICAgIGZpCisgIGVsc2UKKyAgICBpZiB0ZXN0IC1mICIkU1JDL01ha2VmaWxlIiA7IHRoZW4KKyAgICAgIGE9YGdyZXAgIl5WRVJTSU9OICIgIiRTUkMvTWFrZWZpbGUiYCA7IGI9YGdyZXAgIl5WRVJTSU9OICIgTWFrZWZpbGVgCisgICAgICB0ZXN0ICIkYSIgIT0gIiRiIiAmJiBybSAiJFNSQy9NYWtlZmlsZSIKKyAgICBmaQorICAgIGlmIHRlc3QgLWYgIiRTUkMvTWFrZWZpbGUiIDsgdGhlbgorCWVjaG8gIiRTUkMvTWFrZWZpbGUgOiAkU1JDL01ha2VmaWxlLmluIiA+ICR0bXAvY29uZnRlbXAubWsKKwllY2hvICIJW11AIGVjaG8gJ1JFTU9WRUQsLCwnID5cJFtdQCIgPj4gJHRtcC9jb25mdGVtcC5taworICAgICAgZXZhbCAiJHtNQUtFLW1ha2V9IC1mICR0bXAvY29uZnRlbXAubWsgMj4vZGV2L251bGwgPi9kZXYvbnVsbCIKKyAgICAgIGlmIGdyZXAgJ15SRU1PVkVELCwsJyAiJFNSQy9NYWtlZmlsZSIgPi9kZXYvbnVsbAorICAgICAgdGhlbiBybSAkU1JDL01ha2VmaWxlIDsgZmkKKyAgICAgIGNwICR0bXAvY29uZnRlbXAubWsgJFNSQy9tYWtlZmlsZXMubWt+ICAgICAgIyMgREVCVUdHSU5HCisgICAgZmkKKyAgICBpZiB0ZXN0ICEgLWYgIiRTUkMvTWFrZWZpbGUiIDsgdGhlbgorICAgICAgQUNfTVNHX05PVElDRShbY3JlYXRlIFRPUC9NYWtlZmlsZSBndWVzc2VkIGZyb20gbG9jYWwgTWFrZWZpbGVdKQorICAgICAgeD0nYCcgOyBjYXQgPiR0bXAvY29uZnRlbXAuc2VkIDw8X0VPRgorL15cJC9uCit4CisvXlwkL2JTCit4CisvXFxcXFwkL3tIO2Q7fQore0g7cy8uKi8vO3g7fQorYk0KKzpTCit4CisvXFxcXFwkL3toO2Q7fQore2g7cy8uKi8vO3g7fQorOk0KK3MvXFwoXFxuXFwpCS9cXDEgL2cKKy9eCS9kCisvXltbCSBdXSpbW1xcI11dL2QKKy9eVlBBVEggKj0vZAorcy9ec3JjZGlyICo9Liovc3JjZGlyID0gLi8KK3MvXnRvcF9zcmNkaXIgKj0uKi90b3Bfc3JjZGlyID0gLi8KKy9bWzo9XV0vIWQKKy9eXFwuL2QKK2RubCBOb3cgaGFuZGxlIHJ1bGVzIChpLmUuIGxpbmVzIGNvbnRhaW5pbmcgIjoiIGJ1dCBub3QgIiA9ICIpLgorLyA9IC9iCisvIC49IC9iCisvOi8hYgorcy86LiovOi8KK3MvIC8gIC9nCitzLyBcXChbW2Etel1dW1thLXotXV0qW1thLXpBLVowLTldXVxcKVxcKFtbIDpdXVxcKS8gXFwxIFxcMVtdX0FMTFxcMi9nCitzL15cXChbW2Etel1dW1thLXotXV0qW1thLXpBLVowLTldXVxcKVxcKFtbIDpdXVxcKS9cXDEgXFwxW11fQUxMXFwyLworcy8gIC8gL2cKKy9eYWxsIGFsbFtdX0FMTFtbIDpdXS9pXFwKK2FsbC1jb25maWd1cmVkIDogYWxsW11fQUxMCitkbmwgZGlzdC1hbGwgZXhpc3RzLi4uIGFuZCB3b3VsZCBtYWtlIGZvciBkaXN0LWFsbC1hbGwKK3MvIFtbYS16QS1aMC05LV1dKltdX0FMTCBbW2EtekEtWjAtOS1dXSpbXV9BTExbXV9BTEwvL2cKKy9bXV9BTExbXV9BTEwvZAorYVxcCisJQCBIT1NUPSJcJChIT1NUKVwiIFxcXFxcXAorCTsgdGVzdCAiLlwkXCRIT1NUIiA9ICIuIiAmJiBIT1NUPSR4IHNoICRBVVgvY29uZmlnLmd1ZXNzICR4IFxcXFxcXAorCTsgQlVJTEQ9JHggZ3JlcCAiXiMjIyMgXCRcJEhPU1QgIiBNYWtlZmlsZSB8IHNlZCAtZSAncy8uKnwvLycgJHggXFxcXFxcCisJOyB1c2U9JHggYmFzZW5hbWUgIlwkXEAiIF9BTEwgJHg7IG49JHggZWNobyBcJFwkQlVJTEQgfCB3YyAtdyAkeCBcXFxcXFwKKwk7IGVjaG8gIk1BS0UgXCRcJEhPU1QgOiBcJFwkbiAqIFwkXEAiOyBpZiB0ZXN0ICJcJFwkbiIgLWVxICIwIiA7IHRoZW4gOiBcXFxcXFwKKwk7IEJVSUxEPSR4IGdyZXAgIl4jIyMjLip8IiBNYWtlZmlsZSB8dGFpbCAtMXwgc2VkIC1lICdzLy4qfC8vJyAkeCA7IGZpIFxcXFxcXAorCTsgdGVzdCAiLlwkXCRCVUlMRCIgPSAiLiIgJiYgQlVJTEQ9Ii4iIFxcXFxcXAorCTsgdGVzdCAiXCRcJHVzZSIgPSAiXCRcQCIgJiYgQlVJTEQ9JHggZWNobyAiXCRcJEJVSUxEIiB8IHRhaWwgLTEgJHggXFxcXFxcCisJOyBmb3IgaSBpbiBcJFwkQlVJTEQgOyBkbyB0ZXN0ICIuXCRcJGkiID0gIi4iICYmIGNvbnRpbnVlIFxcXFxcXAorCTsgKGNkICJcJFwkaSIgJiYgdGVzdCAhIC1mIGNvbmZpZ3VyZSAmJiBcJChNQUtFKSBcJFwkdXNlKSB8fCBleGl0OyBkb25lCitkbmwgc3BlY2lhbCBydWxlIGFkZC1vbjogImRpc3QiIGNvcGllcyB0aGUgdGFyYmFsbCB0byAkKFBVQikuIChzb3VyY2UgdHJlZSkKKy9kaXN0W11fQUxMICo6L2FcXAorCUAgSE9TVD0iXCQoSE9TVClcIiBcXFxcXFwKKwk7IHRlc3QgIi5cJFwkSE9TVCIgPSAiLiIgJiYgSE9TVD0keCBzaCAkQVVYL2NvbmZpZy5ndWVzcyAkeCBcXFxcXFwKKwk7IEJVSUxEPSR4IGdyZXAgIl4jIyMjIFwkXCRIT1NUICIgTWFrZWZpbGUgfCBzZWQgLWUgJ3MvLip8Ly8nICR4IFxcXFxcXAorCTsgZm91bmQ9JHggZWNobyBcJFwkQlVJTEQgfCB3YyAtdyAkeCBcXFxcXFwKKwk7IGVjaG8gIk1BS0UgXCRcJEhPU1QgOiBcJFwkZm91bmQgXCQoUEFDS0FHRSktXCQoVkVSU0lPTikudGFyLioiIFxcXFxcXAorCTsgaWYgdGVzdCAiXCRcJGZvdW5kIiAtZXEgIjAiIDsgdGhlbiA6IFxcXFxcXAorCTsgQlVJTEQ9JHggZ3JlcCAiXiMjIyMgLip8IiBNYWtlZmlsZSB8dGFpbCAtMXwgc2VkIC1lICdzLy4qfC8vJyAkeCBcXFxcXFwKKwk7IGZpIDsgZm9yIGkgaW4gXCRcJEJVSUxEIDsgZG8gdGVzdCAiLlwkXCRpIiA9ICIuIiAmJiBjb250aW51ZSBcXFxcXFwKKwk7IGZvciBmIGluIFwkXCRpL1wkKFBBQ0tBR0UpLVwkKFZFUlNJT04pLnRhci4qIFxcXFxcXAorCTsgZG8gdGVzdCAtZiAiXCRcJGYiICYmIG12ICJcJFwkZiIgXCQoUFVCKS4gOyBkb25lIDsgYnJlYWsgOyBkb25lCitkbmwgc3BlY2lhbCBydWxlIGFkZC1vbjogImRpc3QtZm9vIiBjb3BpZXMgYWxsIHRoZSBhcmNoaXZlcyB0byAkKFBVQikuIChzb3VyY2UgdHJlZSkKKy9kaXN0LVtbYS16QS1aMC05XV0qW11fQUxMICo6L2FcXAorCUAgSE9TVD0iXCQoSE9TVClcIiBcXFxcXFwKKwk7IHRlc3QgIi5cJFwkSE9TVCIgPSAiLiIgJiYgSE9TVD0keCBzaCAuL2NvbmZpZy5ndWVzcyAkeCBcXFxcXFwKKwk7IEJVSUxEPSR4IGdyZXAgIl4jIyMjIFwkXCRIT1NUICIgTWFrZWZpbGUgfCBzZWQgLWUgJ3MvLip8Ly8nICR4IFxcXFxcXAorCTsgZm91bmQ9JHggZWNobyBcJFwkQlVJTEQgfCB3YyAtdyAkeCBcXFxcXFwKKwk7IGVjaG8gIk1BS0UgXCRcJEhPU1QgOiBcJFwkZm91bmQgXCQoUEFDS0FHRSktXCQoVkVSU0lPTikuKiIgXFxcXFxcCisJOyBpZiB0ZXN0ICJcJFwkZm91bmQiIC1lcSAiMCIgOyB0aGVuIDogXFxcXFxcCisJOyBCVUlMRD0keCBncmVwICJeIyMjIyAuKnwiIE1ha2VmaWxlIHx0YWlsIC0xfCBzZWQgLWUgJ3MvLip8Ly8nICR4IFxcXFxcXAorCTsgZmkgOyBmb3IgaSBpbiBcJFwkQlVJTEQgOyBkbyB0ZXN0ICIuXCRcJGkiID0gIi4iICYmIGNvbnRpbnVlIFxcXFxcXAorCTsgZm9yIGYgaW4gXCRcJGkvXCQoUEFDS0FHRSktXCQoVkVSU0lPTikuKiBcXFxcXFwKKwk7IGRvIHRlc3QgLWYgIlwkXCRmIiAmJiBtdiAiXCRcJGYiIFwkKFBVQikuIDsgZG9uZSA7IGJyZWFrIDsgZG9uZQorZG5sIHNwZWNpYWwgcnVsZSBhZGQtb246ICJkaXN0Y2xlYW4iIHJlbW92ZXMgYWxsIGxvY2FsIGJ1aWxkZGlycyBjb21wbGV0ZWx5CisvZGlzdGNsZWFuW11fQUxMICo6L2FcXAorCUAgSE9TVD0iXCQoSE9TVClcIiBcXFxcXFwKKwk7IHRlc3QgIi5cJFwkSE9TVCIgPSAiLiIgJiYgSE9TVD0keCBzaCAkQVVYL2NvbmZpZy5ndWVzcyAkeCBcXFxcXFwKKwk7IEJVSUxEPSR4IGdyZXAgIl4jIyMjIC4qfCIgTWFrZWZpbGUgfCBzZWQgLWUgJ3MvLip8Ly8nICR4IFxcXFxcXAorCTsgdXNlPSR4IGJhc2VuYW1lICJcJFxAIiBfQUxMICR4OyBuPSR4IGVjaG8gXCRcJEJVSUxEIHwgd2MgLXcgJHggXFxcXFxcCisJOyBlY2hvICJNQUtFIFwkXCRIT1NUIDogXCRcJG4gKiBcJFxAIChhbGwgbG9jYWwgYnVpbGRzKSIgXFxcXFxcCisJOyB0ZXN0ICIuXCRcJEJVSUxEIiA9ICIuIiAmJiBCVUlMRD0iLiIgXFxcXFxcCisJOyBmb3IgaSBpbiBcJFwkQlVJTEQgOyBkbyB0ZXN0ICIuXCRcJGkiID0gIi4iICYmIGNvbnRpbnVlIFxcXFxcXAorCTsgZWNobyAiIyBybSAtciBcJFwkaSI7IGRvbmUgOyBlY2hvICIjIChzbGVlcCAzKSIgOyBzbGVlcCAzIFxcXFxcXAorCTsgZm9yIGkgaW4gXCRcJEJVSUxEIDsgZG8gdGVzdCAiLlwkXCRpIiA9ICIuIiAmJiBjb250aW51ZSBcXFxcXFwKKwk7IGVjaG8gIlwkXCRpIiB8IGdyZXAgIl4vIiA+IC9kZXYvbnVsbCAmJiBjb250aW51ZSBcXFxcXFwKKwk7IGVjaG8gIlwkXCRpIiB8IGdyZXAgIl4uLi8iID4gL2Rldi9udWxsICYmIGNvbnRpbnVlIFxcXFxcXAorCTsgZWNobyAicm0gLXIgXCRcJGkiOyAocm0gLXIgIlwkXCRpIikgOyBkb25lIDsgcm0gTWFrZWZpbGUKK19FT0YKKyAgICAgIGNwICIkdG1wL2NvbmZ0ZW1wLnNlZCIgIiRTUkMvbWFrZWZpbGUuc2VkfiIgICAgICAgICAgICAjIyBERUJVR0dJTkcKKyAgICAgICRTRUQgLWYgJHRtcC9jb25mdGVtcC5zZWQgTWFrZWZpbGUgPiRTUkMvTWFrZWZpbGUKKyAgICAgIGlmIHRlc3QgLWYgIiRTUkMvbTRfaWZ2YWwoWyQyXSxbJDJdLFtFTkRdKSIgOyB0aGVuCisgICAgICAgIEFDX01TR19OT1RJQ0UoW2V4dGVuZCBUT1AvTWFrZWZpbGUgd2l0aCBUT1AvbTRfaWZ2YWwoWyQyXSxbJDJdLFtFTkRdKV0pCisgICAgICAgIGNhdCAkU1JDL0VORCA+PiRTUkMvTWFrZWZpbGUKKyAgICAgIGZpIDsgeHh4eD0iIyMjIyIKKyAgICAgIGVjaG8gIiR4eHh4IENPTkZJR1VSQVRJT05TIEZPUiBUT1BMRVZFTCBNQUtFRklMRTogIiA+PiRTUkMvTWFrZWZpbGUKKyAgICAgICMgc2FuaXR5IGNoZWNrCisgICAgICBpZiBncmVwICdeOyBlY2hvICJNQUtFICcgJFNSQy9NYWtlZmlsZSA+L2Rldi9udWxsIDsgdGhlbgorICAgICAgICBBQ19NU0dfTk9USUNFKFtidWdneSBzZWQgZm91bmQgLSBpdCBkZWxldGVzIHRhYiBpbiAiYSIgdGV4dCBwYXJ0c10pCisgICAgICAgICRTRUQgLWUgJy9eQCBIT1NUPS9zL14vCS8nIC1lICcvXjsgL3MvXi8JLycgJFNSQy9NYWtlZmlsZSBcCisgICAgICAgICAgPiRTUkMvTWFrZWZpbGV+CisgICAgICAgICh0ZXN0IC1zICRTUkMvTWFrZWZpbGV+ICYmIG12ICRTUkMvTWFrZWZpbGV+ICRTUkMvTWFrZWZpbGUpIDI+L2Rldi9udWxsCisgICAgICBmaQorICAgIGVsc2UKKyAgICAgIHh4eHg9IlxcI1xcI1xcI1xcIyIKKyAgICAgICMgZWNobyAiL14keHh4eCAqJGF4X2VuYWJsZV9idWlsZGRpcl9ob3N0IC9kIiA+JHRtcC9jb25mdGVtcC5zZWQKKyAgICAgIGVjaG8gInMhXiR4eHh4IFtbXnxdXSogfCAqJFNVQiAqXCQhJHh4eHggLi4uLi4uICRTVUIhIiA+JHRtcC9jb25mdGVtcC5zZWQKKyAgICAgICRTRUQgLWYgIiR0bXAvY29uZnRlbXAuc2VkIiAiJFNSQy9NYWtlZmlsZSIgPiR0bXAvbWtmaWxlLnRtcAorICAgICAgICBjcCAiJHRtcC9jb25mdGVtcC5zZWQiICIkU1JDL21ha2VmaWxlcy5zZWR+IiAgICAgICAgICMjIERFQlVHR0lORworICAgICAgICBjcCAiJHRtcC9ta2ZpbGUudG1wIiAgICIkU1JDL21ha2VmaWxlcy5vdXR+IiAgICAgICAgICMjIERFQlVHR0lORworICAgICAgaWYgY21wIC1zICIkU1JDL01ha2VmaWxlIiAiJHRtcC9ta2ZpbGUudG1wIiAyPi9kZXYvbnVsbCA7IHRoZW4KKyAgICAgICAgQUNfTVNHX05PVElDRShba2VlcGluZyBUT1AvTWFrZWZpbGUgZnJvbSBlYXJsaWVyIGNvbmZpZ3VyZV0pCisgICAgICAgIHJtICIkdG1wL21rZmlsZS50bXAiCisgICAgICBlbHNlCisgICAgICAgIEFDX01TR19OT1RJQ0UoW3JldXNpbmcgVE9QL01ha2VmaWxlIGZyb20gZWFybGllciBjb25maWd1cmVdKQorICAgICAgICBtdiAiJHRtcC9ta2ZpbGUudG1wIiAiJFNSQy9NYWtlZmlsZSIKKyAgICAgIGZpCisgICAgZmkKKyAgICBBQ19NU0dfTk9USUNFKFtidWlsZCBpbiAkU1VCIChIT1NUPSRheF9lbmFibGVfYnVpbGRkaXJfaG9zdCldKQorICAgIHh4eHg9IiMjIyMiCisgICAgZWNobyAiJHh4eHgiICIkYXhfZW5hYmxlX2J1aWxkZGlyX2hvc3QiICJ8JFNVQiIgPj4kU1JDL01ha2VmaWxlCisgIGZpCitwb3BkZWYoW0VORF0pZG5sCitBU19WQVJfUE9QREVGKFtTRURdKWRubAorQVNfVkFSX1BPUERFRihbQVVYXSlkbmwKK0FTX1ZBUl9QT1BERUYoW1NSQ10pZG5sCitBU19WQVJfUE9QREVGKFtUT1BdKWRubAorQVNfVkFSX1BPUERFRihbU1VCXSlkbmwKK10sW2RubAorYXhfZW5hYmxlX2J1aWxkZGlyX3NyY2Rpcj0iJHNyY2RpciIgICAgICAgICAgICAgICAgICAgICMgJHNyY2RpcgorYXhfZW5hYmxlX2J1aWxkZGlyX2hvc3Q9IiRIT1NUIiAgICAgICAgICAgICAgICAgICAgICAgICMgJEhPU1QgLyAkaG9zdAorYXhfZW5hYmxlX2J1aWxkZGlyX3ZlcnNpb249IiRWRVJTSU9OIiAgICAgICAgICAgICAgICAgICMgJFZFUlNJT04KK2F4X2VuYWJsZV9idWlsZGRpcl9wYWNrYWdlPSIkUEFDS0FHRSIgICAgICAgICAgICAgICAgICAjICRQQUNLQUdFCitheF9lbmFibGVfYnVpbGRkaXJfYXV4ZGlyPSIkYXhfZW5hYmxlX2J1aWxkZGlyX2F1eGRpciIgIyAkQVVYCitheF9lbmFibGVfYnVpbGRkaXJfc2VkPSIkYXhfZW5hYmxlX2J1aWxkZGlyX3NlZCIgICAgICAgIyAkU0VECitheF9lbmFibGVfYnVpbGRkaXI9IiRheF9lbmFibGVfYnVpbGRkaXIiICAgICAgICAgICAgICAgIyAkU1VCCitdKWRubAorXSkKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXhfZ2NjX2FyY2hmbGFnLm00IGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9heF9nY2NfYXJjaGZsYWcubTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYxMWJhYgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXhfZ2NjX2FyY2hmbGFnLm00CkBAIC0wLDAgKzEsMjE1IEBACisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgICAgIGh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdXRvY29uZi1hcmNoaXZlL2F4X2djY19hcmNoZmxhZy5odG1sCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIworIyBTWU5PUFNJUworIworIyAgIEFYX0dDQ19BUkNIRkxBRyhbUE9SVEFCTEU/XSwgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKKyMKKyMgREVTQ1JJUFRJT04KKyMKKyMgICBUaGlzIG1hY3JvIHRyaWVzIHRvIGd1ZXNzIHRoZSAibmF0aXZlIiBhcmNoIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRhcmdldAorIyAgIGFyY2hpdGVjdHVyZSBmb3IgdXNlIHdpdGggZ2NjJ3MgLW1hcmNoPWFyY2ggb3IgLW10dW5lPWFyY2ggZmxhZ3MuIElmCisjICAgZm91bmQsIHRoZSBjYWNoZSB2YXJpYWJsZSAkYXhfY3ZfZ2NjX2FyY2hmbGFnIGlzIHNldCB0byB0aGlzIGZsYWcgYW5kCisjICAgQUNUSU9OLVNVQ0NFU1MgaXMgZXhlY3V0ZWQ7IG90aGVyd2lzZSAkYXhfY3ZfZ2NjX2FyY2hmbGFnIGlzIHNldCB0bworIyAgICJ1bmtub3duIiBhbmQgQUNUSU9OLUZBSUxVUkUgaXMgZXhlY3V0ZWQuIFRoZSBkZWZhdWx0IEFDVElPTi1TVUNDRVNTIGlzCisjICAgdG8gYWRkICRheF9jdl9nY2NfYXJjaGZsYWcgdG8gdGhlIGVuZCBvZiAkQ0ZMQUdTLgorIworIyAgIFBPUlRBQkxFPyBzaG91bGQgYmUgZWl0aGVyIFt5ZXNdIChkZWZhdWx0KSBvciBbbm9dLiBJbiB0aGUgZm9ybWVyIGNhc2UsCisjICAgdGhlIGZsYWcgaXMgc2V0IHRvIC1tdHVuZSAob3IgZXF1aXZhbGVudCkgc28gdGhhdCB0aGUgYXJjaGl0ZWN0dXJlIGlzCisjICAgb25seSB1c2VkIGZvciB0dW5pbmcsIGJ1dCB0aGUgaW5zdHJ1Y3Rpb24gc2V0IHVzZWQgaXMgc3RpbGwgcG9ydGFibGUuIEluCisjICAgdGhlIGxhdHRlciBjYXNlLCB0aGUgZmxhZyBpcyBzZXQgdG8gLW1hcmNoIChvciBlcXVpdmFsZW50KSBzbyB0aGF0CisjICAgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGluc3RydWN0aW9ucyBhcmUgZW5hYmxlZC4KKyMKKyMgICBUaGUgdXNlciBjYW4gc3BlY2lmeSAtLXdpdGgtZ2NjLWFyY2g9PGFyY2g+IGluIG9yZGVyIHRvIG92ZXJyaWRlIHRoZQorIyAgIG1hY3JvJ3MgY2hvaWNlIG9mIGFyY2hpdGVjdHVyZSwgb3IgLS13aXRob3V0LWdjYy1hcmNoIHRvIGRpc2FibGUgdGhpcy4KKyMKKyMgICBXaGVuIGNyb3NzLWNvbXBpbGluZywgb3IgaWYgJENDIGlzIG5vdCBnY2MsIHRoZW4gQUNUSU9OLUZBSUxVUkUgaXMKKyMgICBjYWxsZWQgdW5sZXNzIHRoZSB1c2VyIHNwZWNpZmllZCAtLXdpdGgtZ2NjLWFyY2ggbWFudWFsbHkuCisjCisjICAgUmVxdWlyZXMgbWFjcm9zOiBBWF9DSEVDS19DT01QSUxFX0ZMQUcsIEFYX0dDQ19YODZfQ1BVSUQKKyMKKyMgICAoVGhlIG1haW4gZW1waGFzaXMgaGVyZSBpcyBvbiByZWNlbnQgQ1BVcywgb24gdGhlIHByaW5jaXBsZSB0aGF0IGRvaW5nCisjICAgaGlnaC1wZXJmb3JtYW5jZSBjb21wdXRpbmcgb24gb2xkIGhhcmR3YXJlIGlzIHVuY29tbW9uLikKKyMKKyMgTElDRU5TRQorIworIyAgIENvcHlyaWdodCAoYykgMjAwOCBTdGV2ZW4gRy4gSm9obnNvbiA8c3RldmVuakBhbHVtLm1pdC5lZHU+CisjICAgQ29weXJpZ2h0IChjKSAyMDA4IE1hdHRlbyBGcmlnbworIworIyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisjICAgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlCisjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91cgorIyAgIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorIyAgIFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0aGUgR05VIEdlbmVyYWwKKyMgICBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nCisjICAgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyMKKyMgICBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgcmVzcGVjdGl2ZSBBdXRvY29uZiBNYWNybydzIGNvcHlyaWdodCBvd25lcgorIyAgIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSB0aGUgY29uZmlndXJlCisjICAgc2NyaXB0cyB0aGF0IGFyZSB0aGUgb3V0cHV0IG9mIEF1dG9jb25mIHdoZW4gcHJvY2Vzc2luZyB0aGUgTWFjcm8uIFlvdQorIyAgIG5lZWQgbm90IGZvbGxvdyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHdoZW4gdXNpbmcKKyMgICBvciBkaXN0cmlidXRpbmcgc3VjaCBzY3JpcHRzLCBldmVuIHRob3VnaCBwb3J0aW9ucyBvZiB0aGUgdGV4dCBvZiB0aGUKKyMgICBNYWNybyBhcHBlYXIgaW4gdGhlbS4gVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChHUEwpIGRvZXMgZ292ZXJuCisjICAgYWxsIG90aGVyIHVzZSBvZiB0aGUgbWF0ZXJpYWwgdGhhdCBjb25zdGl0dXRlcyB0aGUgQXV0b2NvbmYgTWFjcm8uCisjCisjICAgVGhpcyBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR1BMIGFwcGxpZXMgdG8gdmVyc2lvbnMgb2YgdGhlIEF1dG9jb25mCisjICAgTWFjcm8gcmVsZWFzZWQgYnkgdGhlIEF1dG9jb25mIEFyY2hpdmUuIFdoZW4geW91IG1ha2UgYW5kIGRpc3RyaWJ1dGUgYQorIyAgIG1vZGlmaWVkIHZlcnNpb24gb2YgdGhlIEF1dG9jb25mIE1hY3JvLCB5b3UgbWF5IGV4dGVuZCB0aGlzIHNwZWNpYWwKKyMgICBleGNlcHRpb24gdG8gdGhlIEdQTCB0byBhcHBseSB0byB5b3VyIG1vZGlmaWVkIHZlcnNpb24gYXMgd2VsbC4KKworI3NlcmlhbCAxMAorCitBQ19ERUZVTihbQVhfR0NDX0FSQ0hGTEFHXSwKK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSkKK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSkKKworQUNfQVJHX1dJVEgoZ2NjLWFyY2gsIFtBU19IRUxQX1NUUklORyhbLS13aXRoLWdjYy1hcmNoPTxhcmNoPl0sIFt1c2UgYXJjaGl0ZWN0dXJlIDxhcmNoPiBmb3IgZ2NjIC1tYXJjaC8tbXR1bmUsIGluc3RlYWQgb2YgZ3Vlc3NpbmddKV0sCisJYXhfZ2NjX2FyY2g9JHdpdGh2YWwsIGF4X2djY19hcmNoPXllcykKKworQUNfTVNHX0NIRUNLSU5HKFtmb3IgZ2NjIGFyY2hpdGVjdHVyZSBmbGFnXSkKK0FDX01TR19SRVNVTFQoW10pCitBQ19DQUNIRV9WQUwoYXhfY3ZfZ2NjX2FyY2hmbGFnLAorWworYXhfY3ZfZ2NjX2FyY2hmbGFnPSJ1bmtub3duIgorCitpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorCitpZiB0ZXN0ICJ4JGF4X2djY19hcmNoIiA9IHh5ZXM7IHRoZW4KK2F4X2djY19hcmNoPSIiCitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IG5vOyB0aGVuCitjYXNlICRob3N0X2NwdSBpbgorICBpW1szNDU2XV04Nip8eDg2XzY0KikgIyB1c2UgY3B1aWQgY29kZXMsIGluIHBhcnQgZnJvbSB4ODZpbmZvLTEuNyBieSBELiBKb25lcworICAgICBBWF9HQ0NfWDg2X0NQVUlEKDApCisgICAgIEFYX0dDQ19YODZfQ1BVSUQoMSkKKyAgICAgY2FzZSAkYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8wIGluCisgICAgICAgKjo3NTZlNjU0NzoqOiopICMgSW50ZWwKKyAgICAgICAgICBjYXNlICRheF9jdl9nY2NfeDg2X2NwdWlkXzEgaW4KKwkgICAgKjVbWzQ4XV0/Oio6KjoqKSBheF9nY2NfYXJjaD0icGVudGl1bS1tbXggcGVudGl1bSIgOzsKKwkgICAgKjU/PzoqOio6KikgYXhfZ2NjX2FyY2g9cGVudGl1bSA7OworCSAgICAqNltbMzQ1Nl1dPzoqOio6KikgYXhfZ2NjX2FyY2g9InBlbnRpdW0yIHBlbnRpdW1wcm8iIDs7CisJICAgICo2YT86KltbMDFdXToqOiopIGF4X2djY19hcmNoPSJwZW50aXVtMiBwZW50aXVtcHJvIiA7OworCSAgICAqNmE/OipbWzIzNF1dOio6KikgYXhfZ2NjX2FyY2g9InBlbnRpdW0zIHBlbnRpdW1wcm8iIDs7CisJICAgICo2W1s5ZF1dPzoqOio6KikgYXhfZ2NjX2FyY2g9InBlbnRpdW0tbSBwZW50aXVtMyBwZW50aXVtcHJvIiA7OworCSAgICAqNltbNzhiXV0/Oio6KjoqKSBheF9nY2NfYXJjaD0icGVudGl1bTMgcGVudGl1bXBybyIgOzsKKwkgICAgKjY/PzoqOio6KikgYXhfZ2NjX2FyY2g9cGVudGl1bXBybyA7OworICAgICAgICAgICAgKmYzW1szNDddXToqOio6KnwqZjRbMTM0N106KjoqOiopCisJCWNhc2UgJGhvc3RfY3B1IGluCisgICAgICAgICAgICAgICAgICB4ODZfNjQqKSBheF9nY2NfYXJjaD0ibm9jb25hIHBlbnRpdW00IHBlbnRpdW1wcm8iIDs7CisgICAgICAgICAgICAgICAgICAqKSBheF9nY2NfYXJjaD0icHJlc2NvdHQgcGVudGl1bTQgcGVudGl1bXBybyIgOzsKKyAgICAgICAgICAgICAgICBlc2FjIDs7CisgICAgICAgICAgICAqZj8/Oio6KjoqKSBheF9nY2NfYXJjaD0icGVudGl1bTQgcGVudGl1bXBybyI7OworICAgICAgICAgIGVzYWMgOzsKKyAgICAgICAqOjY4NzQ3NTQxOio6KikgIyBBTUQKKyAgICAgICAgICBjYXNlICRheF9jdl9nY2NfeDg2X2NwdWlkXzEgaW4KKwkgICAgKjVbWzY3XV0/Oio6KjoqKSBheF9nY2NfYXJjaD1rNiA7OworCSAgICAqNVtbOGRdXT86KjoqOiopIGF4X2djY19hcmNoPSJrNi0yIGs2IiA7OworCSAgICAqNVtbOV1dPzoqOio6KikgYXhfZ2NjX2FyY2g9Ims2LTMgazYiIDs7CisJICAgICo2MD86KjoqOiopIGF4X2djY19hcmNoPWs3IDs7CisJICAgICo2W1sxMl1dPzoqOio6KikgYXhfZ2NjX2FyY2g9ImF0aGxvbiBrNyIgOzsKKwkgICAgKjZbWzM0XV0/Oio6KjoqKSBheF9nY2NfYXJjaD0iYXRobG9uLXRiaXJkIGs3IiA7OworCSAgICAqNjc/Oio6KjoqKSBheF9nY2NfYXJjaD0iYXRobG9uLTQgYXRobG9uIGs3IiA7OworCSAgICAqNltbNjhhXV0/Oio6KjoqKQorCSAgICAgICBBWF9HQ0NfWDg2X0NQVUlEKDB4ODAwMDAwMDYpICMgTDIgY2FjaGUgc2l6ZQorCSAgICAgICBjYXNlICRheF9jdl9nY2NfeDg2X2NwdWlkXzB4ODAwMDAwMDYgaW4KKyAgICAgICAgICAgICAgICAgKjoqOipbWzEtOWEtZl1dPz8/Pz8/OiopICMgKEwyID0gZWN4ID4+IDE2KSA+PSAyNTYKKwkJCWF4X2djY19hcmNoPSJhdGhsb24teHAgYXRobG9uLTQgYXRobG9uIGs3IiA7OworICAgICAgICAgICAgICAgICAqKSBheF9nY2NfYXJjaD0iYXRobG9uLTQgYXRobG9uIGs3IiA7OworCSAgICAgICBlc2FjIDs7CisJICAgICpmW1s0Y2VmOGJdXT86KjoqOiopIGF4X2djY19hcmNoPSJhdGhsb242NCBrOCIgOzsKKwkgICAgKmY1PzoqOio6KikgYXhfZ2NjX2FyY2g9Im9wdGVyb24gazgiIDs7CisJICAgICpmNz86KjoqOiopIGF4X2djY19hcmNoPSJhdGhsb24tZnggb3B0ZXJvbiBrOCIgOzsKKwkgICAgKmY/PzoqOio6KikgYXhfZ2NjX2FyY2g9Ims4IiA7OworICAgICAgICAgIGVzYWMgOzsKKwkqOjc0NmU2NTQzOio6KikgIyBJRFQKKwkgICBjYXNlICRheF9jdl9nY2NfeDg2X2NwdWlkXzEgaW4KKwkgICAgICo1ND86KjoqOiopIGF4X2djY19hcmNoPXdpbmNoaXAtYzYgOzsKKwkgICAgICo1OD86KjoqOiopIGF4X2djY19hcmNoPXdpbmNoaXAyIDs7CisJICAgICAqNltbNzhdXT86KjoqOiopIGF4X2djY19hcmNoPWMzIDs7CisJICAgICAqNjk/Oio6KjoqKSBheF9nY2NfYXJjaD0iYzMtMiBjMyIgOzsKKwkgICBlc2FjIDs7CisgICAgIGVzYWMKKyAgICAgaWYgdGVzdCB4IiRheF9nY2NfYXJjaCIgPSB4OyB0aGVuICMgZmFsbGJhY2sKKwljYXNlICRob3N0X2NwdSBpbgorCSAgaTU4NiopIGF4X2djY19hcmNoPXBlbnRpdW0gOzsKKwkgIGk2ODYqKSBheF9nY2NfYXJjaD1wZW50aXVtcHJvIDs7CisgICAgICAgIGVzYWMKKyAgICAgZmkKKyAgICAgOzsKKworICBzcGFyYyopCisgICAgIEFDX1BBVEhfUFJPRyhbUFJURElBR10sIFtwcnRkaWFnXSwgW3BydGRpYWddLCBbJFBBVEg6L3Vzci9wbGF0Zm9ybS9gdW5hbWUgLWlgL3NiaW4vOi91c3IvcGxhdGZvcm0vYHVuYW1lIC1tYC9zYmluL10pCisgICAgIGNwdXR5cGU9YCgoKGdyZXAgY3B1IC9wcm9jL2NwdWluZm8gfCBjdXQgLWQ6IC1mMikgOyAoJFBSVERJQUcgLXYgfGdyZXAgLWkgc3BhcmMpIDsgZ3JlcCAtaSBjcHUgL3Zhci9ydW4vZG1lc2cuYm9vdCApIHwgaGVhZCAtbiAxKSAyPiAvZGV2L251bGxgCisgICAgIGNwdXR5cGU9YGVjaG8gIiRjcHV0eXBlIiB8IHRyIC1kICcgLScgfHRyICRhc19jcl9MRVRURVJTICRhc19jcl9sZXR0ZXJzYAorICAgICBjYXNlICRjcHV0eXBlIGluCisgICAgICAgICAqdWx0cmFzcGFyY2l2KikgYXhfZ2NjX2FyY2g9InVsdHJhc3BhcmM0IHVsdHJhc3BhcmMzIHVsdHJhc3BhcmMgdjkiIDs7CisgICAgICAgICAqdWx0cmFzcGFyY2lpaSopIGF4X2djY19hcmNoPSJ1bHRyYXNwYXJjMyB1bHRyYXNwYXJjIHY5IiA7OworICAgICAgICAgKnVsdHJhc3BhcmMqKSBheF9nY2NfYXJjaD0idWx0cmFzcGFyYyB2OSIgOzsKKyAgICAgICAgICpzdXBlcnNwYXJjKnwqdG1zMzkwejVbWzA1XV0qKSBheF9nY2NfYXJjaD0ic3VwZXJzcGFyYyB2OCIgOzsKKyAgICAgICAgICpoeXBlcnNwYXJjKnwqcnQ2MltbMDU2XV0qKSBheF9nY2NfYXJjaD0iaHlwZXJzcGFyYyB2OCIgOzsKKyAgICAgICAgICpjeXByZXNzKikgYXhfZ2NjX2FyY2g9Y3lwcmVzcyA7OworICAgICBlc2FjIDs7CisKKyAgYWxwaGFldjUpIGF4X2djY19hcmNoPWV2NSA7OworICBhbHBoYWV2NTYpIGF4X2djY19hcmNoPWV2NTYgOzsKKyAgYWxwaGFwY2E1NikgYXhfZ2NjX2FyY2g9InBjYTU2IGV2NTYiIDs7CisgIGFscGhhcGNhNTcpIGF4X2djY19hcmNoPSJwY2E1NyBwY2E1NiBldjU2IiA7OworICBhbHBoYWV2NikgYXhfZ2NjX2FyY2g9ZXY2IDs7CisgIGFscGhhZXY2NykgYXhfZ2NjX2FyY2g9ZXY2NyA7OworICBhbHBoYWV2NjgpIGF4X2djY19hcmNoPSJldjY4IGV2NjciIDs7CisgIGFscGhhZXY2OSkgYXhfZ2NjX2FyY2g9ImV2NjkgZXY2OCBldjY3IiA7OworICBhbHBoYWV2NykgYXhfZ2NjX2FyY2g9ImV2NyBldjY5IGV2NjggZXY2NyIgOzsKKyAgYWxwaGFldjc5KSBheF9nY2NfYXJjaD0iZXY3OSBldjcgZXY2OSBldjY4IGV2NjciIDs7CisKKyAgcG93ZXJwYyopCisgICAgIGNwdXR5cGU9YCgoZ3JlcCBjcHUgL3Byb2MvY3B1aW5mbyB8IGhlYWQgLW4gMSB8IGN1dCAtZDogLWYyIHwgY3V0IC1kLCAtZjEgfCBzZWQgJ3MvIC8vZycpIDsgL3Vzci9iaW4vbWFjaGluZSA7IC9iaW4vbWFjaGluZTsgZ3JlcCBDUFUgL3Zhci9ydW4vZG1lc2cuYm9vdCB8IGhlYWQgLW4gMSB8IGN1dCAtZCIgIiAtZjIpIDI+IC9kZXYvbnVsbGAKKyAgICAgY3B1dHlwZT1gZWNobyAkY3B1dHlwZSB8IHNlZCAtZSAncy9wcGMvL2c7cy8gKi8vZydgCisgICAgIGNhc2UgJGNwdXR5cGUgaW4KKyAgICAgICAqNzUwKikgYXhfZ2NjX2FyY2g9Ijc1MCBHMyIgOzsKKyAgICAgICAqNzQwW1swLTldXSopIGF4X2djY19hcmNoPSIkY3B1dHlwZSA3NDAwIEc0IiA7OworICAgICAgICo3NFtbNC01XV1bWzAtOV1dKikgYXhfZ2NjX2FyY2g9IiRjcHV0eXBlIDc0NTAgRzQiIDs7CisgICAgICAgKjc0W1swLTldXVtbMC05XV0qKSBheF9nY2NfYXJjaD0iJGNwdXR5cGUgRzQiIDs7CisgICAgICAgKjk3MCopIGF4X2djY19hcmNoPSI5NzAgRzUgcG93ZXI0Ijs7CisgICAgICAgKlBPV0VSNCp8KnBvd2VyNCp8KmdxKikgYXhfZ2NjX2FyY2g9InBvd2VyNCA5NzAiOzsKKyAgICAgICAqUE9XRVI1KnwqcG93ZXI1KnwqZ3IqfCpncyopIGF4X2djY19hcmNoPSJwb3dlcjUgcG93ZXI0IDk3MCI7OworICAgICAgIDYwM2V2fDgyNDApIGF4X2djY19hcmNoPSIkY3B1dHlwZSA2MDNlIDYwMyI7OworICAgICAgICopIGF4X2djY19hcmNoPSRjcHV0eXBlIDs7CisgICAgIGVzYWMKKyAgICAgYXhfZ2NjX2FyY2g9IiRheF9nY2NfYXJjaCBwb3dlcnBjIgorICAgICA7OworZXNhYworZmkgIyBub3QgY3Jvc3MtY29tcGlsaW5nCitmaSAjIGd1ZXNzIGFyY2gKKworaWYgdGVzdCAieCRheF9nY2NfYXJjaCIgIT0geCAtYSAieCRheF9nY2NfYXJjaCIgIT0geG5vOyB0aGVuCitmb3IgYXJjaCBpbiAkYXhfZ2NjX2FyY2g7IGRvCisgIGlmIHRlc3QgInhbXW00X2RlZmF1bHQoWyQxXSx5ZXMpIiA9IHh5ZXM7IHRoZW4gIyBpZiB3ZSByZXF1aXJlIHBvcnRhYmxlIGNvZGUKKyAgICBmbGFncz0iLW10dW5lPSRhcmNoIgorICAgICMgLW1jcHU9JGFyY2ggYW5kIG0kYXJjaCBnZW5lcmF0ZSBub25wb3J0YWJsZSBjb2RlIG9uIGV2ZXJ5IGFyY2ggZXhjZXB0CisgICAgIyB4ODYuICBBbmQgc29tZSBvdGhlciBhcmNoZXMgKGUuZy4gQWxwaGEpIGRvbid0IGFjY2VwdCAtbXR1bmUuICBHcnJyLgorICAgIGNhc2UgJGhvc3RfY3B1IGluIGkqODZ8eDg2XzY0KikgZmxhZ3M9IiRmbGFncyAtbWNwdT0kYXJjaCAtbSRhcmNoIjs7IGVzYWMKKyAgZWxzZQorICAgIGZsYWdzPSItbWFyY2g9JGFyY2ggLW1jcHU9JGFyY2ggLW0kYXJjaCIKKyAgZmkKKyAgZm9yIGZsYWcgaW4gJGZsYWdzOyBkbworICAgIEFYX0NIRUNLX0NPTVBJTEVfRkxBRygkZmxhZywgW2F4X2N2X2djY19hcmNoZmxhZz0kZmxhZzsgYnJlYWtdKQorICBkb25lCisgIHRlc3QgIngkYXhfY3ZfZ2NjX2FyY2hmbGFnIiA9IHh1bmtub3duIHx8IGJyZWFrCitkb25lCitmaQorCitmaSAjICRHQ0M9eWVzCitdKQorQUNfTVNHX0NIRUNLSU5HKFtmb3IgZ2NjIGFyY2hpdGVjdHVyZSBmbGFnXSkKK0FDX01TR19SRVNVTFQoJGF4X2N2X2djY19hcmNoZmxhZykKK2lmIHRlc3QgIngkYXhfY3ZfZ2NjX2FyY2hmbGFnIiA9IHh1bmtub3duOyB0aGVuCisgIG00X2RlZmF1bHQoWyQzXSw6KQorZWxzZQorICBtNF9kZWZhdWx0KFskMl0sIFtDRkxBR1M9IiRDRkxBR1MgJGF4X2N2X2djY19hcmNoZmxhZyJdKQorZmkKK10pCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2djY194ODZfY3B1aWQubTQgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2F4X2djY194ODZfY3B1aWQubTQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q0NmZlZQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvYXhfZ2NjX3g4Nl9jcHVpZC5tNApAQCAtMCwwICsxLDc5IEBACisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgICAgaHR0cDovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2F1dG9jb25mLWFyY2hpdmUvYXhfZ2NjX3g4Nl9jcHVpZC5odG1sCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIworIyBTWU5PUFNJUworIworIyAgIEFYX0dDQ19YODZfQ1BVSUQoT1ApCisjCisjIERFU0NSSVBUSU9OCisjCisjICAgT24gUGVudGl1bSBhbmQgbGF0ZXIgeDg2IHByb2Nlc3NvcnMsIHdpdGggZ2NjIG9yIGEgY29tcGlsZXIgdGhhdCBoYXMgYQorIyAgIGNvbXBhdGlibGUgc3ludGF4IGZvciBpbmxpbmUgYXNzZW1ibHkgaW5zdHJ1Y3Rpb25zLCBydW4gYSBzbWFsbCBwcm9ncmFtCisjICAgdGhhdCBleGVjdXRlcyB0aGUgY3B1aWQgaW5zdHJ1Y3Rpb24gd2l0aCBpbnB1dCBPUC4gVGhpcyBjYW4gYmUgdXNlZCB0bworIyAgIGRldGVjdCB0aGUgQ1BVIHR5cGUuCisjCisjICAgT24gb3V0cHV0LCB0aGUgdmFsdWVzIG9mIHRoZSBlYXgsIGVieCwgZWN4LCBhbmQgZWR4IHJlZ2lzdGVycyBhcmUgc3RvcmVkCisjICAgYXMgaGV4YWRlY2ltYWwgc3RyaW5ncyBhcyAiZWF4OmVieDplY3g6ZWR4IiBpbiB0aGUgY2FjaGUgdmFyaWFibGUKKyMgICBheF9jdl9nY2NfeDg2X2NwdWlkX09QLgorIworIyAgIElmIHRoZSBjcHVpZCBpbnN0cnVjdGlvbiBmYWlscyAoYmVjYXVzZSB5b3UgYXJlIHJ1bm5pbmcgYQorIyAgIGNyb3NzLWNvbXBpbGVyLCBvciBiZWNhdXNlIHlvdSBhcmUgbm90IHVzaW5nIGdjYywgb3IgYmVjYXVzZSB5b3UgYXJlIG9uCisjICAgYSBwcm9jZXNzb3IgdGhhdCBkb2Vzbid0IGhhdmUgdGhpcyBpbnN0cnVjdGlvbiksIGF4X2N2X2djY194ODZfY3B1aWRfT1AKKyMgICBpcyBzZXQgdG8gdGhlIHN0cmluZyAidW5rbm93biIuCisjCisjICAgVGhpcyBtYWNybyBtYWlubHkgZXhpc3RzIHRvIGJlIHVzZWQgaW4gQVhfR0NDX0FSQ0hGTEFHLgorIworIyBMSUNFTlNFCisjCisjICAgQ29weXJpZ2h0IChjKSAyMDA4IFN0ZXZlbiBHLiBKb2huc29uIDxzdGV2ZW5qQGFsdW0ubWl0LmVkdT4KKyMgICBDb3B5cmlnaHQgKGMpIDIwMDggTWF0dGVvIEZyaWdvCisjCisjICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKyMgICB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUKKyMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyCisjICAgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0CisjICAgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbAorIyAgIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcKKyMgICB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorIworIyAgIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHRoZSByZXNwZWN0aXZlIEF1dG9jb25mIE1hY3JvJ3MgY29weXJpZ2h0IG93bmVyCisjICAgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQgbW9kaWZ5IHRoZSBjb25maWd1cmUKKyMgICBzY3JpcHRzIHRoYXQgYXJlIHRoZSBvdXRwdXQgb2YgQXV0b2NvbmYgd2hlbiBwcm9jZXNzaW5nIHRoZSBNYWNyby4gWW91CisjICAgbmVlZCBub3QgZm9sbG93IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ugd2hlbiB1c2luZworIyAgIG9yIGRpc3RyaWJ1dGluZyBzdWNoIHNjcmlwdHMsIGV2ZW4gdGhvdWdoIHBvcnRpb25zIG9mIHRoZSB0ZXh0IG9mIHRoZQorIyAgIE1hY3JvIGFwcGVhciBpbiB0aGVtLiBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgKEdQTCkgZG9lcyBnb3Zlcm4KKyMgICBhbGwgb3RoZXIgdXNlIG9mIHRoZSBtYXRlcmlhbCB0aGF0IGNvbnN0aXR1dGVzIHRoZSBBdXRvY29uZiBNYWNyby4KKyMKKyMgICBUaGlzIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHUEwgYXBwbGllcyB0byB2ZXJzaW9ucyBvZiB0aGUgQXV0b2NvbmYKKyMgICBNYWNybyByZWxlYXNlZCBieSB0aGUgQXV0b2NvbmYgQXJjaGl2ZS4gV2hlbiB5b3UgbWFrZSBhbmQgZGlzdHJpYnV0ZSBhCisjICAgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgQXV0b2NvbmYgTWFjcm8sIHlvdSBtYXkgZXh0ZW5kIHRoaXMgc3BlY2lhbAorIyAgIGV4Y2VwdGlvbiB0byB0aGUgR1BMIHRvIGFwcGx5IHRvIHlvdXIgbW9kaWZpZWQgdmVyc2lvbiBhcyB3ZWxsLgorCisjc2VyaWFsIDcKKworQUNfREVGVU4oW0FYX0dDQ19YODZfQ1BVSURdLAorW0FDX1JFUVVJUkUoW0FDX1BST0dfQ0NdKQorQUNfTEFOR19QVVNIKFtDXSkKK0FDX0NBQ0hFX0NIRUNLKGZvciB4ODYgY3B1aWQgJDEgb3V0cHV0LCBheF9jdl9nY2NfeDg2X2NwdWlkXyQxLAorIFtBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oWyNpbmNsdWRlIDxzdGRpby5oPl0sIFsKKyAgICAgaW50IG9wID0gJDEsIGVheCwgZWJ4LCBlY3gsIGVkeDsKKyAgICAgRklMRSAqZjsKKyAgICAgIF9fYXNtX18oImNwdWlkIgorICAgICAgICA6ICI9YSIgKGVheCksICI9YiIgKGVieCksICI9YyIgKGVjeCksICI9ZCIgKGVkeCkKKyAgICAgICAgOiAiYSIgKG9wKSk7CisgICAgIGYgPSBmb3BlbigiY29uZnRlc3RfY3B1aWQiLCAidyIpOyBpZiAoIWYpIHJldHVybiAxOworICAgICBmcHJpbnRmKGYsICIleDoleDoleDoleFxuIiwgZWF4LCBlYngsIGVjeCwgZWR4KTsKKyAgICAgZmNsb3NlKGYpOworICAgICByZXR1cm4gMDsKK10pXSwKKyAgICAgW2F4X2N2X2djY194ODZfY3B1aWRfJDE9YGNhdCBjb25mdGVzdF9jcHVpZGA7IHJtIC1mIGNvbmZ0ZXN0X2NwdWlkXSwKKyAgICAgW2F4X2N2X2djY194ODZfY3B1aWRfJDE9dW5rbm93bjsgcm0gLWYgY29uZnRlc3RfY3B1aWRdLAorICAgICBbYXhfY3ZfZ2NjX3g4Nl9jcHVpZF8kMT11bmtub3duXSldKQorQUNfTEFOR19QT1AoW0NdKQorXSkKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvbGlidG9vbC5tNCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvbGlidG9vbC5tNAppbmRleCA2NzFjZGUxLi44MjgxMDRjIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2xpYnRvb2wubTQKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9saWJ0b29sLm00CkBAIC0xLDcgKzEsOCBAQAogIyBsaWJ0b29sLm00IC0gQ29uZmlndXJlIGxpYnRvb2wgZm9yIHRoZSBob3N0IHN5c3RlbS4gLSotQXV0b2NvbmYtKi0KICMKICMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDMsIDIwMDQsIDIwMDUsCi0jICAgICAgICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBGcmVlIFNvZnR3YXJlCisjICAgICAgICAgICAgICAgICBGb3VuZGF0aW9uLCBJbmMuCiAjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwpAQCAtMTAsNyArMTEsOCBAQAogCiBtNF9kZWZpbmUoW19MVF9DT1BZSU5HXSwgW2RubAogIyAgIENvcHlyaWdodCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAwNSwKLSMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjICAgICAgICAgICAgICAgICAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEZyZWUgU29mdHdhcmUKKyMgICAgICAgICAgICAgICAgIEZvdW5kYXRpb24sIEluYy4KICMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2CiAjCiAjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCkBAIC0zNyw3ICszOSw3IEBACiAjIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogXSkKIAotIyBzZXJpYWwgNTYgTFRfSU5JVAorIyBzZXJpYWwgNTcgTFRfSU5JVAogCiAKICMgTFRfUFJFUkVRKFZFUlNJT04pCkBAIC02Niw2ICs2OCw3IEBACiAjIC0tLS0tLS0tLS0tLS0tLS0tLQogQUNfREVGVU4oW0xUX0lOSVRdLAogW0FDX1BSRVJFUShbMi41OF0pZG5sIFdlIHVzZSBBQ19JTkNMVURFU19ERUZBVUxUCitBQ19SRVFVSVJFKFtBQ19DT05GSUdfQVVYX0RJUl9ERUZBVUxUXSlkbmwKIEFDX0JFRk9SRShbJDBdLCBbTFRfTEFOR10pZG5sCiBBQ19CRUZPUkUoWyQwXSwgW0xUX09VVFBVVF0pZG5sCiBBQ19CRUZPUkUoWyQwXSwgW0xURExfSU5JVF0pZG5sCkBAIC04Miw2ICs4NSw4IEBACiBBQ19SRVFVSVJFKFtMVE9CU09MRVRFX1ZFUlNJT05dKWRubAogbTRfcmVxdWlyZShbX0xUX1BST0dfTFRNQUlOXSlkbmwKIAorX0xUX1NIRUxMX0lOSVQoW1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9XSkKKwogZG5sIFBhcnNlIE9QVElPTlMKIF9MVF9TRVRfT1BUSU9OUyhbJDBdLCBbJDFdKQogCkBAIC0xMTgsNyArMTIzLDcgQEAKICAgICAqKSBicmVhazs7CiAgIGVzYWMKIGRvbmUKLWNjX2Jhc2VuYW1lPWAkRUNITyAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAorY2NfYmFzZW5hbWU9YCRFQ0hPICIkY2NfdGVtcCIgfCAkU0VEICJzJS4qLyUlOyBzJV4kaG9zdF9hbGlhcy0lJSJgCiBdKQogCiAKQEAgLTEzOCw2ICsxNDMsMTEgQEAKIG00X2RlZnVuKFtfTFRfU0VUVVBdLAogW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKIEFDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9CVUlMRF0pZG5sCitBQ19SRVFVSVJFKFtfTFRfUFJFUEFSRV9TRURfUVVPVEVfVkFSU10pZG5sCitBQ19SRVFVSVJFKFtfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSF0pZG5sCisKK19MVF9ERUNMKFtdLCBbUEFUSF9TRVBBUkFUT1JdLCBbMV0sIFtUaGUgUEFUSCBzZXBhcmF0b3IgZm9yIHRoZSBidWlsZCBzeXN0ZW1dKWRubAorZG5sCiBfTFRfREVDTChbXSwgW2hvc3RfYWxpYXNdLCBbMF0sIFtUaGUgaG9zdCBzeXN0ZW1dKWRubAogX0xUX0RFQ0woW10sIFtob3N0XSwgWzBdKWRubAogX0xUX0RFQ0woW10sIFtob3N0X29zXSwgWzBdKWRubApAQCAtMTYwLDEwICsxNzAsMTMgQEAKIGRubAogbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCiBtNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdKWRubAorbTRfcmVxdWlyZShbX0xUX1BBVEhfQ09OVkVSU0lPTl9GVU5DVElPTlNdKWRubAogbTRfcmVxdWlyZShbX0xUX0NNRF9SRUxPQURdKWRubAogbTRfcmVxdWlyZShbX0xUX0NIRUNLX01BR0lDX01FVEhPRF0pZG5sCittNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfU0hBUkVETElCX0ZST01fTElOS0xJQl0pZG5sCiBtNF9yZXF1aXJlKFtfTFRfQ01EX09MRF9BUkNISVZFXSlkbmwKIG00X3JlcXVpcmUoW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdKWRubAorbTRfcmVxdWlyZShbX0xUX1dJVEhfU1lTUk9PVF0pZG5sCiAKIF9MVF9DT05GSUdfTElCVE9PTF9JTklUKFsKICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKQEAgLTE3OSw3ICsxOTIsNiBAQAogX0xUX0NIRUNLX09CSkRJUgogCiBtNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKLV9MVF9QUk9HX0VDSE9fQkFDS1NMQVNICiAKIGNhc2UgJGhvc3Rfb3MgaW4KIGFpeDMqKQpAQCAtMTkzLDIzICsyMDUsNiBAQAogICA7OwogZXNhYwogCi0jIFNlZCBzdWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFzaGlmaWVzCi0jIG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4gZG91YmxlLXF1b3RlZCBzdHJpbmdzLgotc2VkX3F1b3RlX3N1YnN0PSdzL1woW1siYCRcXF1dXCkvXFxcMS9nJwotCi0jIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KLWRvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtbImBcXF1dXCkvXFxcMS9nJwotCi0jIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQotIyBkb3VibGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgotZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKLQotIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNpbmdsZSBxdW90ZS4KLWRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdD0ncy8nXCcnLydcJ1xcXFxcXFwnXCcnL2cnCi0KLSMgU2VkIHN1YnN0aXR1dGlvbiB0byBhdm9pZCBhY2NpZGVudGFsIGdsb2JiaW5nIGluIGV2YWxlZCBleHByZXNzaW9ucwotbm9fZ2xvYl9zdWJzdD0ncy9cKi9cXFwqL2cnCi0KICMgR2xvYmFsIHZhcmlhYmxlczoKIG9maWxlPWxpYnRvb2wKIGNhbl9idWlsZF9zaGFyZWQ9eWVzCkBAIC0yNTAsNiArMjQ1LDI4IEBACiBdKSMgX0xUX1NFVFVQCiAKIAorIyBfTFRfUFJFUEFSRV9TRURfUVVPVEVfVkFSUworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEZWZpbmUgYSBmZXcgc2VkIHN1YnN0aXR1dGlvbiB0aGF0IGhlbHAgdXMgZG8gcm9idXN0IHF1b3RpbmcuCittNF9kZWZ1bihbX0xUX1BSRVBBUkVfU0VEX1FVT1RFX1ZBUlNdLAorWyMgQmFja3NsYXNoaWZ5IG1ldGFjaGFyYWN0ZXJzIHRoYXQgYXJlIHN0aWxsIGFjdGl2ZSB3aXRoaW4KKyMgZG91YmxlLXF1b3RlZCBzdHJpbmdzLgorc2VkX3F1b3RlX3N1YnN0PSdzL1woW1siYCRcXF1dXCkvXFxcMS9nJworCisjIFNhbWUgYXMgYWJvdmUsIGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtbImBcXF1dXCkvXFxcMS9nJworCisjIFNlZCBzdWJzdGl0dXRpb24gdG8gZGVsYXkgZXhwYW5zaW9uIG9mIGFuIGVzY2FwZWQgc2hlbGwgdmFyaWFibGUgaW4gYQorIyBkb3VibGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgorZGVsYXlfdmFyaWFibGVfc3Vic3Q9J3MvXFxcXFxcXFxcXFwkL1xcXFxcXCQvZycKKworIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNpbmdsZSBxdW90ZS4KK2RlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdD0ncy8nXCcnLydcJ1xcXFxcXFwnXCcnL2cnCisKKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBhdm9pZCBhY2NpZGVudGFsIGdsb2JiaW5nIGluIGV2YWxlZCBleHByZXNzaW9ucworbm9fZ2xvYl9zdWJzdD0ncy9cKi9cXFwqL2cnCitdKQorCiAjIF9MVF9QUk9HX0xUTUFJTgogIyAtLS0tLS0tLS0tLS0tLS0KICMgTm90ZSB0aGF0IHRoaXMgY29kZSBpcyBjYWxsZWQgYm90aCBmcm9tIGBjb25maWd1cmUnLCBhbmQgYGNvbmZpZy5zdGF0dXMnCkBAIC00MDgsNyArNDI1LDcgQEAKICMgZGVjbGFyYXRpb24gdGhlcmUgd2lsbCBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIGluIGBjb25maWd1cmUnLiAgVkFSTkFNRQogIyBtdXN0IGhhdmUgYSBzaW5nbGUgcXVvdGUgZGVsaW1pdGVkIHZhbHVlIGZvciB0aGlzIHRvIHdvcmsuCiBtNF9kZWZpbmUoW19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkVdLAotWyQxPSdgJEVDSE8gIlgkXVskMSIgfCAkWHNlZCAtZSAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJ10pCitbJDE9J2AkRUNITyAiJF1bJDEiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJ10pCiAKIAogIyBfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlMKQEAgLTQxOCw3ICs0MzUsNyBAQAogIyBlbWJlZGRlZCBzaW5nbGUgcXVvdGVzIHByb3Blcmx5LiAgSW4gY29uZmlndXJlLCB0aGlzIG1hY3JvIGV4cGFuZHMKICMgZWFjaCB2YXJpYWJsZSBkZWNsYXJlZCB3aXRoIF9MVF9ERUNMIChhbmQgX0xUX1RBR0RFQ0wpIGludG86CiAjCi0jICAgIDx2YXI+PSdgJEVDSE8gIlgkPHZhcj4iIHwgJFhzZWQgLWUgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKKyMgICAgPHZhcj49J2AkRUNITyAiJDx2YXI+IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKIG00X2RlZnVuKFtfTFRfQ09ORklHX1NUQVRVU19ERUNMQVJBVElPTlNdLAogW200X2ZvcmVhY2goW19sdF92YXJdLCBtNF9xdW90ZShsdF9kZWNsX2FsbF92YXJuYW1lcyksCiAgICAgW200X24oW19MVF9DT05GSUdfU1RBVFVTX0RFQ0xBUkUoX2x0X3ZhcildKV0pXSkKQEAgLTUxNywxMiArNTM0LDIwIEBACiBMVENGTEFHUz0nJExUQ0ZMQUdTJwogY29tcGlsZXI9JyRjb21waWxlcl9ERUZBVUxUJwogCisjIEEgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHdoZW4gdGhlcmUgaXMgbm8gcHJpbnQgYnVpbHRpbiBvciBwcmludGYuCitmdW5jX2ZhbGxiYWNrX2VjaG8gKCkKK3sKKyAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKK1wkW10xCitfTFRFQ0hPX0VPRicKK30KKwogIyBRdW90ZSBldmFsZWQgc3RyaW5ncy4KIGZvciB2YXIgaW4gbHRfZGVjbF9hbGxfdmFybmFtZXMoW1sgXAogXV0sIGx0X2RlY2xfcXVvdGVfdmFybmFtZXMpOyBkbwotICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgorICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gXFxcXCIiXFxcXFwkXCR2YXIiXFxcXCJcYCBpbgogICAgICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKLSAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCiAgICAgICA7OwogICAgICopCiAgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKQEAgLTUzMyw5ICs1NTgsOSBAQAogIyBEb3VibGUtcXVvdGUgZG91YmxlLWV2YWxlZCBzdHJpbmdzLgogZm9yIHZhciBpbiBsdF9kZWNsX2FsbF92YXJuYW1lcyhbWyBcCiBdXSwgbHRfZGVjbF9kcXVvdGVfdmFybmFtZXMpOyBkbwotICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gIlhcXFxcXCRcJHZhciJcYCBpbgorICAgIGNhc2UgXGBldmFsIFxcXFxcJEVDSE8gXFxcXCIiXFxcXFwkXCR2YXIiXFxcXCJcYCBpbgogICAgICpbW1xcXFxcXFxgXFwiXFxcJF1dKikKLSAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiWFxcXCRcJHZhclxcIiB8IFxcXCRYc2VkIC1lIFxcIlxcXCRkb3VibGVfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJHNlZF9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwkZGVsYXlfdmFyaWFibGVfc3Vic3RcXCJcXFxgXFxcXFxcIiIKKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vic3RcXCIgLWUgXFwiXFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCiAgICAgICA7OwogICAgICopCiAgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKQEAgLTU0MywxNiArNTY4LDM4IEBACiAgICAgZXNhYwogZG9uZQogCi0jIEZpeC11cCBmYWxsYmFjayBlY2hvIGlmIGl0IHdhcyBtYW5nbGVkIGJ5IHRoZSBhYm92ZSBxdW90aW5nIHJ1bGVzLgotY2FzZSBcJGx0X0VDSE8gaW4KLSonXFxcWyRdMCAtLWZhbGxiYWNrLWVjaG8iJylkbmwgIgotICBsdF9FQ0hPPVxgXCRFQ0hPICJYXCRsdF9FQ0hPIiB8IFwkWHNlZCAtZSAncy9cXFxcXFxcXFxcXFxcXFxbJF0wIC0tZmFsbGJhY2stZWNobyJcWyRdL1xbJF0wIC0tZmFsbGJhY2stZWNobyIvJ1xgCi0gIDs7Ci1lc2FjCi0KIF9MVF9PVVRQVVRfTElCVE9PTF9JTklUCiBdKQogCisjIF9MVF9HRU5FUkFURURfRklMRV9JTklUKEZJTEUsIFtDT01NRU5UXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEdlbmVyYXRlIGEgY2hpbGQgc2NyaXB0IEZJTEUgd2l0aCBhbGwgaW5pdGlhbGl6YXRpb24gbmVjZXNzYXJ5IHRvCisjIHJldXNlIHRoZSBlbnZpcm9ubWVudCBsZWFybmVkIGJ5IHRoZSBwYXJlbnQgc2NyaXB0LCBhbmQgbWFrZSB0aGUKKyMgZmlsZSBleGVjdXRhYmxlLiAgSWYgQ09NTUVOVCBpcyBzdXBwbGllZCwgaXQgaXMgaW5zZXJ0ZWQgYWZ0ZXIgdGhlCisjIGAjIScgc2VxdWVuY2UgYnV0IGJlZm9yZSBpbml0aWFsaXphdGlvbiB0ZXh0IGJlZ2lucy4gIEFmdGVyIHRoaXMKKyMgbWFjcm8sIGFkZGl0aW9uYWwgdGV4dCBjYW4gYmUgYXBwZW5kZWQgdG8gRklMRSB0byBmb3JtIHRoZSBib2R5IG9mCisjIHRoZSBjaGlsZCBzY3JpcHQuICBUaGUgbWFjcm8gZW5kcyB3aXRoIG5vbi16ZXJvIHN0YXR1cyBpZiB0aGUKKyMgZmlsZSBjb3VsZCBub3QgYmUgZnVsbHkgd3JpdHRlbiAoc3VjaCBhcyBpZiB0aGUgZGlzayBpcyBmdWxsKS4KK200X2lmZGVmKFtBU19JTklUX0dFTkVSQVRFRF0sCitbbTRfZGVmdW4oW19MVF9HRU5FUkFURURfRklMRV9JTklUXSxbQVNfSU5JVF9HRU5FUkFURUQoJEApXSldLAorW200X2RlZnVuKFtfTFRfR0VORVJBVEVEX0ZJTEVfSU5JVF0sCitbbTRfcmVxdWlyZShbQVNfUFJFUEFSRV0pXWRubAorW200X3B1c2hkZWYoW0FTX01FU1NBR0VfTE9HX0ZEXSldZG5sCitbbHRfd3JpdGVfZmFpbD0wCitjYXQgPiQxIDw8X0FTRU9GIHx8IGx0X3dyaXRlX2ZhaWw9MQorIyEgJFNIRUxMCisjIEdlbmVyYXRlZCBieSAkYXNfbWUuCiskMgorU0hFTEw9XCR7Q09ORklHX1NIRUxMLSRTSEVMTH0KK2V4cG9ydCBTSEVMTAorX0FTRU9GCitjYXQgPj4kMSA8PFxfQVNFT0YgfHwgbHRfd3JpdGVfZmFpbD0xCitBU19TSEVMTF9TQU5JVElaRQorX0FTX1BSRVBBUkUKK2V4ZWMgQVNfTUVTU0FHRV9GRD4mMQorX0FTRU9GCit0ZXN0ICRsdF93cml0ZV9mYWlsID0gMCAmJiBjaG1vZCAreCAkMVtdZG5sCittNF9wb3BkZWYoW0FTX01FU1NBR0VfTE9HX0ZEXSldKV0pIyBfTFRfR0VORVJBVEVEX0ZJTEVfSU5JVAogCiAjIExUX09VVFBVVAogIyAtLS0tLS0tLS0KQEAgLTU2MiwyMCArNjA5LDExIEBACiBBQ19ERUZVTihbTFRfT1VUUFVUXSwKIFs6ICR7Q09ORklHX0xUPS4vY29uZmlnLmx0fQogQUNfTVNHX05PVElDRShbY3JlYXRpbmcgJENPTkZJR19MVF0pCi1jYXQgPiIkQ09ORklHX0xUIiA8PF9MVEVPRgotIyEgJFNIRUxMCi0jIEdlbmVyYXRlZCBieSAkYXNfbWUuCi0jIFJ1biB0aGlzIGZpbGUgdG8gcmVjcmVhdGUgYSBsaWJ0b29sIHN0dWIgd2l0aCB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgotCi1sdF9jbF9zaWxlbnQ9ZmFsc2UKLVNIRUxMPVwke0NPTkZJR19TSEVMTC0kU0hFTEx9Ci1fTFRFT0YKK19MVF9HRU5FUkFURURfRklMRV9JTklUKFsiJENPTkZJR19MVCJdLAorWyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSBhIGxpYnRvb2wgc3R1YiB3aXRoIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24uXSkKIAogY2F0ID4+IiRDT05GSUdfTFQiIDw8XF9MVEVPRgotQVNfU0hFTExfU0FOSVRJWkUKLV9BU19QUkVQQVJFCi0KLWV4ZWMgQVNfTUVTU0FHRV9GRD4mMQorbHRfY2xfc2lsZW50PWZhbHNlCiBleGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCiB7CiAgIGVjaG8KQEAgLTYwMSw3ICs2MzksNyBAQAogbTRfaWZzZXQoW0FDX1BBQ0tBR0VfVkVSU0lPTl0sIFsgQUNfUEFDS0FHRV9WRVJTSU9OXSkKIGNvbmZpZ3VyZWQgYnkgJFswXSwgZ2VuZXJhdGVkIGJ5IG00X1BBQ0tBR0VfU1RSSU5HLgogCi1Db3B5cmlnaHQgKEMpIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCitDb3B5cmlnaHQgKEMpIDIwMTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiBUaGlzIGNvbmZpZy5sdCBzY3JpcHQgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuIgogCkBAIC02NDYsMTUgKzY4NCwxMyBAQAogIyBhcHBlbmRpbmcgdG8gY29uZmlnLmxvZywgd2hpY2ggZmFpbHMgb24gRE9TLCBhcyBjb25maWcubG9nIGlzIHN0aWxsIGtlcHQKICMgb3BlbiBieSBjb25maWd1cmUuICBIZXJlIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYvbnVsbCwgZWZmZWN0aXZlbHkgY2xvc2luZwogIyBjb25maWcubG9nLCBzbyBpdCBjYW4gYmUgcHJvcGVybHkgKHJlKW9wZW5lZCBhbmQgYXBwZW5kZWQgdG8gYnkgY29uZmlnLmx0LgotaWYgdGVzdCAiJG5vX2NyZWF0ZSIgIT0geWVzOyB0aGVuCi0gIGx0X2NsX3N1Y2Nlc3M9OgotICB0ZXN0ICIkc2lsZW50IiA9IHllcyAmJgotICAgIGx0X2NvbmZpZ19sdF9hcmdzPSIkbHRfY29uZmlnX2x0X2FyZ3MgLS1xdWlldCIKLSAgZXhlYyBBU19NRVNTQUdFX0xPR19GRD4vZGV2L251bGwKLSAgJFNIRUxMICIkQ09ORklHX0xUIiAkbHRfY29uZmlnX2x0X2FyZ3MgfHwgbHRfY2xfc3VjY2Vzcz1mYWxzZQotICBleGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCi0gICRsdF9jbF9zdWNjZXNzIHx8IEFTX0VYSVQoMSkKLWZpCitsdF9jbF9zdWNjZXNzPToKK3Rlc3QgIiRzaWxlbnQiID0geWVzICYmCisgIGx0X2NvbmZpZ19sdF9hcmdzPSIkbHRfY29uZmlnX2x0X2FyZ3MgLS1xdWlldCIKK2V4ZWMgQVNfTUVTU0FHRV9MT0dfRkQ+L2Rldi9udWxsCiskU0hFTEwgIiRDT05GSUdfTFQiICRsdF9jb25maWdfbHRfYXJncyB8fCBsdF9jbF9zdWNjZXNzPWZhbHNlCitleGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCiskbHRfY2xfc3VjY2VzcyB8fCBBU19FWElUKDEpCiBdKSMgTFRfT1VUUFVUCiAKIApAQCAtNzE3LDE1ICs3NTMsMTIgQEAKICAgIyBpZiBmaW5kcyBtaXhlZCBDUi9MRiBhbmQgTEYtb25seSBsaW5lcy4gIFNpbmNlIHNlZCBvcGVyYXRlcyBpbgogICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQogICAjIGlzIHJlcG9ydGVkbHkgZml4ZWQsIGJ1dCB3aHkgbm90IHJ1biBvbiBvbGQgdmVyc2lvbnMgdG9vPwotICBzZWQgJy9eIyBHZW5lcmF0ZWQgc2hlbGwgZnVuY3Rpb25zIGluc2VydGVkIGhlcmUvcScgIiRsdG1haW4iID4+ICIkY2ZnZmlsZSIgXAotICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEpCisgIHNlZCAnJHEnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKKyAgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSI7IGV4aXQgMSkKIAotICBfTFRfUFJPR19YU0lfU0hFTExGTlMKKyAgX0xUX1BST0dfUkVQTEFDRV9TSEVMTEZOUwogCi0gIHNlZCAtbiAnL14jIEdlbmVyYXRlZCBzaGVsbCBmdW5jdGlvbnMgaW5zZXJ0ZWQgaGVyZS8sJHAnICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKLSAgICB8fCAocm0gLWYgIiRjZmdmaWxlIjsgZXhpdCAxKQotCi0gIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwKKyAgIG12IC1mICIkY2ZnZmlsZSIgIiRvZmlsZSIgfHwKICAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9maWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQogICBjaG1vZCAreCAiJG9maWxlIgogXSwKQEAgLTc3MCw2ICs4MDMsNyBAQAogbTRfY2FzZShbJDFdLAogICBbQ10sCQkJW19MVF9MQU5HKEMpXSwKICAgW0MrK10sCQlbX0xUX0xBTkcoQ1hYKV0sCisgIFtHb10sCQkJW19MVF9MQU5HKEdPKV0sCiAgIFtKYXZhXSwJCVtfTFRfTEFORyhHQ0opXSwKICAgW0ZvcnRyYW4gNzddLAkJW19MVF9MQU5HKEY3NyldLAogICBbRm9ydHJhbl0sCQlbX0xUX0xBTkcoRkMpXSwKQEAgLTc5MSw2ICs4MjUsMzEgQEAKIF0pIyBfTFRfTEFORwogCiAKK200X2lmbmRlZihbQUNfUFJPR19HT10sIFsKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBOT1RFOiBUaGlzIG1hY3JvIGhhcyBiZWVuIHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGludG8gICAjCisjICBHTlUgQXV0b2NvbmYgYXMgQUNfUFJPR19HTy4gIFdoZW4gaXQgaXMgYXZhaWxhYmxlIGluICAgICMKKyMgIGEgcmVsZWFzZWQgdmVyc2lvbiBvZiBBdXRvY29uZiB3ZSBzaG91bGQgcmVtb3ZlIHRoaXMgICAgIworIyAgbWFjcm8gYW5kIHVzZSBpdCBpbnN0ZWFkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK200X2RlZnVuKFtBQ19QUk9HX0dPXSwKK1tBQ19MQU5HX1BVU0goR28pZG5sCitBQ19BUkdfVkFSKFtHT0NdLCAgICAgW0dvIGNvbXBpbGVyIGNvbW1hbmRdKWRubAorQUNfQVJHX1ZBUihbR09GTEFHU10sIFtHbyBjb21waWxlciBmbGFnc10pZG5sCitfQUNfQVJHX1ZBUl9MREZMQUdTKClkbmwKK0FDX0NIRUNLX1RPT0woR09DLCBnY2NnbykKK2lmIHRlc3QgLXogIiRHT0MiOyB0aGVuCisgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgICBBQ19DSEVDS19QUk9HKEdPQywgWyR7YWNfdG9vbF9wcmVmaXh9Z2NjZ29dLCBbJHthY190b29sX3ByZWZpeH1nY2Nnb10pCisgIGZpCitmaQoraWYgdGVzdCAteiAiJEdPQyI7IHRoZW4KKyAgQUNfQ0hFQ0tfUFJPRyhHT0MsIGdjY2dvLCBnY2NnbywgZmFsc2UpCitmaQorXSkjbTRfZGVmdW4KK10pI200X2lmbmRlZgorCisKICMgX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIG00X2RlZnVuKFtfTFRfTEFOR19ERUZBVUxUX0NPTkZJR10sCkBAIC04MjEsNiArODgwLDEwIEBACiAgICAgICAgbTRfaWZkZWYoW0xUX1BST0dfR0NKXSwKIAlbbTRfZGVmaW5lKFtMVF9QUk9HX0dDSl0sIGRlZm4oW0xUX1BST0dfR0NKXSlbTFRfTEFORyhHQ0opXSldKV0pXSldKQogCitBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19HT10sCisgIFtMVF9MQU5HKEdPKV0sCisgIFttNF9kZWZpbmUoW0FDX1BST0dfR09dLCBkZWZuKFtBQ19QUk9HX0dPXSlbTFRfTEFORyhHTyldKV0pCisKIEFDX1BST1ZJREVfSUZFTFNFKFtMVF9QUk9HX1JDXSwKICAgW0xUX0xBTkcoUkMpXSwKICAgW200X2RlZmluZShbTFRfUFJPR19SQ10sIGRlZm4oW0xUX1BST0dfUkNdKVtMVF9MQU5HKFJDKV0pXSkKQEAgLTgzMSwxMSArODk0LDEzIEBACiBBVV9ERUZVTihbQUNfTElCVE9PTF9GNzddLCBbTFRfTEFORyhGb3J0cmFuIDc3KV0pCiBBVV9ERUZVTihbQUNfTElCVE9PTF9GQ10sIFtMVF9MQU5HKEZvcnRyYW4pXSkKIEFVX0RFRlVOKFtBQ19MSUJUT09MX0dDSl0sIFtMVF9MQU5HKEphdmEpXSkKK0FVX0RFRlVOKFtBQ19MSUJUT09MX1JDXSwgW0xUX0xBTkcoV2luZG93cyBSZXNvdXJjZSldKQogZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgogZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sIFtdKQogZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0Y3N10sIFtdKQogZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX0ZDXSwgW10pCiBkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfR0NKXSwgW10pCitkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfUkNdLCBbXSkKIAogCiAjIF9MVF9UQUdfQ09NUElMRVIKQEAgLTkyMSw3ICs5ODYsMTMgQEAKIAkkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAogCSAgLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0LmMgMj5jb25mdGVzdC5lcnIKICAgICAgICAgX2x0X3Jlc3VsdD0kPwotCWlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIgJiYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMDsgdGhlbgorCSMgSWYgdGhlcmUgaXMgYSBub24tZW1wdHkgZXJyb3IgbG9nLCBhbmQgInNpbmdsZV9tb2R1bGUiCisJIyBhcHBlYXJzIGluIGl0LCBhc3N1bWUgdGhlIGZsYWcgY2F1c2VkIGEgbGlua2VyIHdhcm5pbmcKKyAgICAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnIgJiYgJEdSRVAgc2luZ2xlX21vZHVsZSBjb25mdGVzdC5lcnI7IHRoZW4KKwkgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorCSMgT3RoZXJ3aXNlLCBpZiB0aGUgb3V0cHV0IHdhcyBjcmVhdGVkIHdpdGggYSAwIGV4aXQgY29kZSBmcm9tCisJIyB0aGUgY29tcGlsZXIsIGl0IHdvcmtlZC4KKwllbGlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIgJiYgdGVzdCAkX2x0X3Jlc3VsdCAtZXEgMDsgdGhlbgogCSAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKIAllbHNlCiAJICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKQEAgLTkyOSw2ICsxMDAwLDcgQEAKIAlybSAtcmYgbGliY29uZnRlc3QuZHlsaWIqCiAJcm0gLWYgY29uZnRlc3QuKgogICAgICAgZmldKQorCiAgICAgQUNfQ0FDSEVfQ0hFQ0soW2ZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtlciBmbGFnXSwKICAgICAgIFtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3RdLAogICAgICAgW2x0X2N2X2xkX2V4cG9ydGVkX3N5bWJvbHNfbGlzdD1ubwpAQCAtOTQwLDYgKzEwMTIsMzQgQEAKIAlbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PW5vXSkKIAlMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgogICAgIF0pCisKKyAgICBBQ19DQUNIRV9DSEVDSyhbZm9yIC1mb3JjZV9sb2FkIGxpbmtlciBmbGFnXSxbbHRfY3ZfbGRfZm9yY2VfbG9hZF0sCisgICAgICBbbHRfY3ZfbGRfZm9yY2VfbG9hZD1ubworICAgICAgY2F0ID4gY29uZnRlc3QuYyA8PCBfTFRfRU9GCitpbnQgZm9yY2VkX2xvYWRlZCgpIHsgcmV0dXJuIDI7fQorX0xUX0VPRgorICAgICAgZWNobyAiJExUQ0MgJExUQ0ZMQUdTIC1jIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QuYyIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgICAgJExUQ0MgJExUQ0ZMQUdTIC1jIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QuYyAyPiZBU19NRVNTQUdFX0xPR19GRAorICAgICAgZWNobyAiJEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0Lm8iID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgICAgICRBUiBjcnUgbGliY29uZnRlc3QuYSBjb25mdGVzdC5vIDI+JkFTX01FU1NBR0VfTE9HX0ZECisgICAgICBlY2hvICIkUkFOTElCIGxpYmNvbmZ0ZXN0LmEiID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgICAgICRSQU5MSUIgbGliY29uZnRlc3QuYSAyPiZBU19NRVNTQUdFX0xPR19GRAorICAgICAgY2F0ID4gY29uZnRlc3QuYyA8PCBfTFRfRU9GCitpbnQgbWFpbigpIHsgcmV0dXJuIDA7fQorX0xUX0VPRgorICAgICAgZWNobyAiJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgLVdsLC1mb3JjZV9sb2FkLC4vbGliY29uZnRlc3QuYSIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgICAgJExUQ0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgLVdsLC1mb3JjZV9sb2FkLC4vbGliY29uZnRlc3QuYSAyPmNvbmZ0ZXN0LmVycgorICAgICAgX2x0X3Jlc3VsdD0kPworICAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnIgJiYgJEdSRVAgZm9yY2VfbG9hZCBjb25mdGVzdC5lcnI7IHRoZW4KKwljYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgICAgIGVsaWYgdGVzdCAtZiBjb25mdGVzdCAmJiB0ZXN0ICRfbHRfcmVzdWx0IC1lcSAwICYmICRHUkVQIGZvcmNlZF9sb2FkIGNvbmZ0ZXN0ID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKwlsdF9jdl9sZF9mb3JjZV9sb2FkPXllcworICAgICAgZWxzZQorCWNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgICAgZmkKKyAgICAgICAgcm0gLWYgY29uZnRlc3QuZXJyIGxpYmNvbmZ0ZXN0LmEgY29uZnRlc3QgY29uZnRlc3QuYworICAgICAgICBybSAtcmYgY29uZnRlc3QuZFNZTQorICAgIF0pCiAgICAgY2FzZSAkaG9zdF9vcyBpbgogICAgIHJoYXBzb2R5KiB8IGRhcndpbjEuW1swMTJdXSkKICAgICAgIF9sdF9kYXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS11bmRlZmluZWQgJHt3bH1zdXBwcmVzcycgOzsKQEAgLTk2Nyw3ICsxMDY3LDcgQEAKICAgICBlbHNlCiAgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKICAgICBmaQotICAgIGlmIHRlc3QgIiREU1lNVVRJTCIgIT0gIjoiOyB0aGVuCisgICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiIgJiYgdGVzdCAiJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID0gIm5vIjsgdGhlbgogICAgICAgX2x0X2RzeW11dGlsPSd+JERTWU1VVElMICRsaWIgfHwgOicKICAgICBlbHNlCiAgICAgICBfbHRfZHN5bXV0aWw9CkBAIC05NzcsOCArMTA3Nyw4IEBACiBdKQogCiAKLSMgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMoW1RBR10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBDaGVja3MgZm9yIGxpbmtlciBhbmQgY29tcGlsZXIgZmVhdHVyZXMgb24gZGFyd2luCiBtNF9kZWZ1bihbX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVNdLAogWwpAQCAtOTg3LDcgKzEwODcsMTMgQEAKICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwogICBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPXllcwogICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAotICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JycKKyAgaWYgdGVzdCAiJGx0X2N2X2xkX2ZvcmNlX2xvYWQiID0gInllcyI7IHRoZW4KKyAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9J2Bmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSAke3dsfS1mb3JjZV9sb2FkLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgJworICAgIG00X2Nhc2UoWyQxXSwgW0Y3N10sIFtfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllc10sCisgICAgICAgICAgICAgICAgICBbRkNdLCAgW19MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzXSkKKyAgZWxzZQorICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJworICBmaQogICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCiAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCkBAIC05OTUsNyArMTEwMSw3IEBACiAgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0NDIDs7CiAgIGVzYWMKICAgaWYgdGVzdCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgotICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWVjaG8KKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1mdW5jX2VjaG9fYWxsCiAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0iXCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcgJF9sdF9kYXJfc2luZ2xlX21vZCR7X2x0X2RzeW11dGlsfSIKICAgICBfTFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9IlwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2RzeW11dGlsfSIKICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgpAQCAtMTAxMSwyMDMgKzExMTcsMTQyIEBACiAgIGZpCiBdKQogCi0jIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYKFtUQUdOQU1FXSkKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIyBMaW5rcyBhIG1pbmltYWwgcHJvZ3JhbSBhbmQgY2hlY2tzIHRoZSBleGVjdXRhYmxlCiAjIGZvciB0aGUgc3lzdGVtIGRlZmF1bHQgaGFyZGNvZGVkIGxpYnJhcnkgcGF0aC4gSW4gbW9zdCBjYXNlcywKICMgdGhpcyBpcyAvdXNyL2xpYjovbGliLCBidXQgd2hlbiB0aGUgTVBJIGNvbXBpbGVycyBhcmUgdXNlZAogIyB0aGUgbG9jYXRpb24gb2YgdGhlIGNvbW11bmljYXRpb24gYW5kIE1QSSBsaWJzIGFyZSBpbmNsdWRlZCB0b28uCiAjIElmIHdlIGRvbid0IGZpbmQgYW55dGhpbmcsIHVzZSB0aGUgZGVmYXVsdCBsaWJyYXJ5IHBhdGggYWNjb3JkaW5nCiAjIHRvIHRoZSBhaXggbGQgbWFudWFsLgorIyBTdG9yZSB0aGUgcmVzdWx0cyBmcm9tIHRoZSBkaWZmZXJlbnQgY29tcGlsZXJzIGZvciBlYWNoIFRBR05BTUUuCisjIEFsbG93IHRvIG92ZXJyaWRlIHRoZW0gZm9yIGFsbCB0YWdzIHRocm91Z2ggbHRfY3ZfYWl4X2xpYnBhdGguCiBtNF9kZWZ1bihbX0xUX1NZU19NT0RVTEVfUEFUSF9BSVhdLAogW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi1BQ19MSU5LX0lGRUxTRShBQ19MQU5HX1BST0dSQU0sWwotbHRfYWl4X2xpYnBhdGhfc2VkPScKLSAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0JL14wLyB7Ci0JICAgIHMvXjAgICpcKC4qXCkkL1wxLwotCSAgICBwCi0JfQotICAgIH0nCi1haXhfbGlicGF0aD1gZHVtcCAtSCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLSMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmluZCBhbnl0aGluZy4KLWlmIHRlc3QgLXogIiRhaXhfbGlicGF0aCI7IHRoZW4KLSAgYWl4X2xpYnBhdGg9YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi1maV0sW10pCi1pZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIjsgZmkKK2lmIHRlc3QgIiR7bHRfY3ZfYWl4X2xpYnBhdGgrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJwYXRoCitlbHNlCisgIEFDX0NBQ0hFX1ZBTChbX0xUX1RBR1ZBUihbbHRfY3ZfYWl4X2xpYnBhdGhfXSwgWyQxXSldLAorICBbQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTV0sWworICBsdF9haXhfbGlicGF0aF9zZWQ9J1sKKyAgICAgIC9JbXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKKwkgIC9eMC8geworCSAgICAgIHMvXjAgICpcKFteIF0qXCkgKiQvXDEvCisJICAgICAgcAorCSAgfQorICAgICAgfV0nCisgIF9MVF9UQUdWQVIoW2x0X2N2X2FpeF9saWJwYXRoX10sIFskMV0pPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAorICAjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCisgIGlmIHRlc3QgLXogIiRfTFRfVEFHVkFSKFtsdF9jdl9haXhfbGlicGF0aF9dLCBbJDFdKSI7IHRoZW4KKyAgICBfTFRfVEFHVkFSKFtsdF9jdl9haXhfbGlicGF0aF9dLCBbJDFdKT1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKKyAgZmldLFtdKQorICBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihbbHRfY3ZfYWl4X2xpYnBhdGhfXSwgWyQxXSkiOyB0aGVuCisgICAgX0xUX1RBR1ZBUihbbHRfY3ZfYWl4X2xpYnBhdGhfXSwgWyQxXSk9Ii91c3IvbGliOi9saWIiCisgIGZpCisgIF0pCisgIGFpeF9saWJwYXRoPSRfTFRfVEFHVkFSKFtsdF9jdl9haXhfbGlicGF0aF9dLCBbJDFdKQorZmkKIF0pIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWAogCiAKICMgX0xUX1NIRUxMX0lOSVQoQVJHKQogIyAtLS0tLS0tLS0tLS0tLS0tLS0tCiBtNF9kZWZpbmUoW19MVF9TSEVMTF9JTklUXSwKLVtpZmRlZihbQUNfRElWRVJTSU9OX05PVElDRV0sCi0JICAgICBbQUNfRElWRVJUX1BVU0goQUNfRElWRVJTSU9OX05PVElDRSldLAotCSBbQUNfRElWRVJUX1BVU0goTk9USUNFKV0pCi0kMQotQUNfRElWRVJUX1BPUAotXSkjIF9MVF9TSEVMTF9JTklUCitbbTRfZGl2ZXJ0X3RleHQoW000U0gtSU5JVF0sIFskMQorXSldKSMgX0xUX1NIRUxMX0lOSVQKKwogCiAKICMgX0xUX1BST0dfRUNIT19CQUNLU0xBU0gKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQWRkIHNvbWUgY29kZSB0byB0aGUgc3RhcnQgb2YgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0IHdoaWNoCi0jIHdpbGwgZmluZCBhbiBlY2hvIGNvbW1hbmQgd2hpY2ggZG9lc24ndCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCisjIEZpbmQgaG93IHdlIGNhbiBmYWtlIGFuIGVjaG8gY29tbWFuZCB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xhc2guCisjIEluIHBhcnRpY3VsYXIsIHdpdGggQXV0b2NvbmYgMi42MCBvciBsYXRlciB3ZSBhZGQgc29tZSBjb2RlIHRvIHRoZSBzdGFydAorIyBvZiB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQgd2hpY2ggd2lsbCBmaW5kIGEgc2hlbGwgd2l0aCBhIGJ1aWx0aW4KKyMgcHJpbnRmICh3aGljaCB3ZSBjYW4gdXNlIGFzIGFuIGVjaG8gY29tbWFuZCkuCiBtNF9kZWZ1bihbX0xUX1BST0dfRUNIT19CQUNLU0xBU0hdLAotW19MVF9TSEVMTF9JTklUKFsKLSMgQ2hlY2sgdGhhdCB3ZSBhcmUgcnVubmluZyB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KLVNIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9CitbRUNITz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKK0VDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITworRUNITz0kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPJEVDSE8KIAotY2FzZSBYJGx0X0VDSE8gaW4KLVgqLS1mYWxsYmFjay1lY2hvKQotICAjIFJlbW92ZSBvbmUgbGV2ZWwgb2YgcXVvdGF0aW9uICh3aGljaCB3YXMgcmVxdWlyZWQgZm9yIE1ha2UpLgotICBFQ0hPPWBlY2hvICIkbHRfRUNITyIgfCBzZWQgJ3MsXFxcXFxbJF1cXFskXTAsJ1skXTAnLCdgCi0gIDs7CitBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBwcmludCBzdHJpbmdzXSkKKyMgVGVzdCBwcmludCBmaXJzdCwgYmVjYXVzZSBpdCB3aWxsIGJlIGEgYnVpbHRpbiBpZiBwcmVzZW50LgoraWYgdGVzdCAiWGAoIHByaW50IC1yIC0tIC1uICkgMj4vZGV2L251bGxgIiA9IFgtbiAmJiBcCisgICB0ZXN0ICJYYHByaW50IC1yIC0tICRFQ0hPIDI+L2Rldi9udWxsYCIgPSAiWCRFQ0hPIjsgdGhlbgorICBFQ0hPPSdwcmludCAtciAtLScKK2VsaWYgdGVzdCAiWGBwcmludGYgJXMgJEVDSE8gMj4vZGV2L251bGxgIiA9ICJYJEVDSE8iOyB0aGVuCisgIEVDSE89J3ByaW50ZiAlc1xuJworZWxzZQorICAjIFVzZSB0aGlzIGZ1bmN0aW9uIGFzIGEgZmFsbGJhY2sgdGhhdCBhbHdheXMgd29ya3MuCisgIGZ1bmNfZmFsbGJhY2tfZWNobyAoKQorICB7CisgICAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKKyRbXTEKK19MVEVDSE9fRU9GJworICB9CisgIEVDSE89J2Z1bmNfZmFsbGJhY2tfZWNobycKK2ZpCisKKyMgZnVuY19lY2hvX2FsbCBhcmcuLi4KKyMgSW52b2tlICRFQ0hPIHdpdGggYWxsIGFyZ3MsIHNwYWNlLXNlcGFyYXRlZC4KK2Z1bmNfZWNob19hbGwgKCkKK3sKKyAgICAkRUNITyAiJCoiIAorfQorCitjYXNlICIkRUNITyIgaW4KKyAgcHJpbnRmKikgQUNfTVNHX1JFU1VMVChbcHJpbnRmXSkgOzsKKyAgcHJpbnQqKSBBQ19NU0dfUkVTVUxUKFtwcmludCAtcl0pIDs7CisgICopIEFDX01TR19SRVNVTFQoW2NhdF0pIDs7CiBlc2FjCiAKLUVDSE89JHtsdF9FQ0hPLWVjaG99Ci1pZiB0ZXN0ICJYWyRdMSIgPSBYLS1uby1yZWV4ZWM7IHRoZW4KLSAgIyBEaXNjYXJkIHRoZSAtLW5vLXJlZXhlYyBmbGFnLCBhbmQgY29udGludWUuCi0gIHNoaWZ0Ci1lbGlmIHRlc3QgIlhbJF0xIiA9IFgtLWZhbGxiYWNrLWVjaG87IHRoZW4KLSAgIyBBdm9pZCBpbmxpbmUgZG9jdW1lbnQgaGVyZSwgaXQgbWF5IGJlIGxlZnQgb3ZlcgotICA6Ci1lbGlmIHRlc3QgIlhgeyAkRUNITyAnXHQnOyB9IDI+L2Rldi9udWxsYCIgPSAnWFx0JyA7IHRoZW4KLSAgIyBZaXBwZWUsICRFQ0hPIHdvcmtzIQotICA6Ci1lbHNlCi0gICMgUmVzdGFydCB1bmRlciB0aGUgY29ycmVjdCBzaGVsbC4KLSAgZXhlYyAkU0hFTEwgIlskXTAiIC0tbm8tcmVleGVjICR7MSsiWyRdQCJ9Ci1maQorbTRfaWZkZWYoW19BU19ERVRFQ1RfU1VHR0VTVEVEXSwKK1tfQVNfREVURUNUX1NVR0dFU1RFRChbCisgIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSR7QkFTSF9WRVJTSU9OK3NldH0iIHx8ICgKKyAgICBFQ0hPPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJworICAgIEVDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITworICAgIEVDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPCisgICAgUEFUSD0vZW1wdHkgRlBBVEg9L2VtcHR5OyBleHBvcnQgUEFUSCBGUEFUSAorICAgIHRlc3QgIlhgcHJpbnRmICVzICRFQ0hPYCIgPSAiWCRFQ0hPIiBcCisgICAgICB8fCB0ZXN0ICJYYHByaW50IC1yIC0tICRFQ0hPYCIgPSAiWCRFQ0hPIiApXSldKQogCi1pZiB0ZXN0ICJYWyRdMSIgPSBYLS1mYWxsYmFjay1lY2hvOyB0aGVuCi0gICMgdXNlZCBhcyBmYWxsYmFjayBlY2hvCi0gIHNoaWZ0Ci0gIGNhdCA8PF9MVF9FT0YKLVskXSoKLV9MVF9FT0YKLSAgZXhpdCAwCi1maQotCi0jIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotIyBpZiBDRFBBVEggaXMgc2V0LgotKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFUSAotCi1pZiB0ZXN0IC16ICIkbHRfRUNITyI7IHRoZW4KLSAgaWYgdGVzdCAiWCR7ZWNob190ZXN0X3N0cmluZytzZXR9IiAhPSBYc2V0OyB0aGVuCi0gICAgIyBmaW5kIGEgc3RyaW5nIGFzIGxhcmdlIGFzIHBvc3NpYmxlLCBhcyBsb25nIGFzIHRoZSBzaGVsbCBjYW4gY29wZSB3aXRoIGl0Ci0gICAgZm9yIGNtZCBpbiAnc2VkIDUwcSAiWyRdMCInICdzZWQgMjBxICJbJF0wIicgJ3NlZCAxMHEgIlskXTAiJyAnc2VkIDJxICJbJF0wIicgJ2VjaG8gdGVzdCc7IGRvCi0gICAgICAjIGV4cGVjdGVkIHNpemVzOiBsZXNzIHRoYW4gMktiLCAxS2IsIDUxMiBieXRlcywgMTYgYnl0ZXMsIC4uLgotICAgICAgaWYgeyBlY2hvX3Rlc3Rfc3RyaW5nPWBldmFsICRjbWRgOyB9IDI+L2Rldi9udWxsICYmCi0JIHsgdGVzdCAiWCRlY2hvX3Rlc3Rfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsCi0gICAgICB0aGVuCi0gICAgICAgIGJyZWFrCi0gICAgICBmaQotICAgIGRvbmUKLSAgZmkKLQotICBpZiB0ZXN0ICJYYHsgJEVDSE8gJ1x0JzsgfSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKLSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSAgICA6Ci0gIGVsc2UKLSAgICAjIFRoZSBTb2xhcmlzLCBBSVgsIGFuZCBEaWdpdGFsIFVuaXggZGVmYXVsdCBlY2hvIHByb2dyYW1zIHVucXVvdGUKLSAgICAjIGJhY2tzbGFzaGVzLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIHF1b3RlIGJhY2tzbGFzaGVzIHVzaW5nCi0gICAgIyAgIGVjaG8gIiRzb21ldGhpbmciIHwgc2VkICdzL1xcL1xcXFwvZycKLSAgICAjCi0gICAgIyBTbywgZmlyc3Qgd2UgbG9vayBmb3IgYSB3b3JraW5nIGVjaG8gaW4gdGhlIHVzZXIncyBQQVRILgotCi0gICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0gICAgZm9yIGRpciBpbiAkUEFUSCAvdXNyL3VjYjsgZG8KLSAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotICAgICAgaWYgKHRlc3QgLWYgJGRpci9lY2hvIHx8IHRlc3QgLWYgJGRpci9lY2hvJGFjX2V4ZWV4dCkgJiYKLSAgICAgICAgIHRlc3QgIlhgKCRkaXIvZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAiID0gJ1hcdCcgJiYKLSAgICAgICAgIGVjaG9fdGVzdGluZ19zdHJpbmc9YCgkZGlyL2VjaG8gIiRlY2hvX3Rlc3Rfc3RyaW5nIikgMj4vZGV2L251bGxgICYmCi0gICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSAgICAgICAgRUNITz0iJGRpci9lY2hvIgotICAgICAgICBicmVhawotICAgICAgZmkKLSAgICBkb25lCi0gICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0KLSAgICBpZiB0ZXN0ICJYJEVDSE8iID0gWGVjaG87IHRoZW4KLSAgICAgICMgV2UgZGlkbid0IGZpbmQgYSBiZXR0ZXIgZWNobywgc28gbG9vayBmb3IgYWx0ZXJuYXRpdmVzLgotICAgICAgaWYgdGVzdCAiWGB7IHByaW50IC1yICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCi0gICAgICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWB7IHByaW50IC1yICIkZWNob190ZXN0X3N0cmluZyI7IH0gMj4vZGV2L251bGxgICYmCi0gICAgICAgICB0ZXN0ICJYJGVjaG9fdGVzdGluZ19zdHJpbmciID0gIlgkZWNob190ZXN0X3N0cmluZyI7IHRoZW4KLSAgICAgICAgIyBUaGlzIHNoZWxsIGhhcyBhIGJ1aWx0aW4gcHJpbnQgLXIgdGhhdCBkb2VzIHRoZSB0cmljay4KLSAgICAgICAgRUNITz0ncHJpbnQgLXInCi0gICAgICBlbGlmIHsgdGVzdCAtZiAvYmluL2tzaCB8fCB0ZXN0IC1mIC9iaW4va3NoJGFjX2V4ZWV4dDsgfSAmJgotCSAgIHRlc3QgIlgkQ09ORklHX1NIRUxMIiAhPSBYL2Jpbi9rc2g7IHRoZW4KLSAgICAgICAgIyBJZiB3ZSBoYXZlIGtzaCwgdHJ5IHJ1bm5pbmcgY29uZmlndXJlIGFnYWluIHdpdGggaXQuCi0gICAgICAgIE9SSUdJTkFMX0NPTkZJR19TSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3NofQotICAgICAgICBleHBvcnQgT1JJR0lOQUxfQ09ORklHX1NIRUxMCi0gICAgICAgIENPTkZJR19TSEVMTD0vYmluL2tzaAotICAgICAgICBleHBvcnQgQ09ORklHX1NIRUxMCi0gICAgICAgIGV4ZWMgJENPTkZJR19TSEVMTCAiWyRdMCIgLS1uby1yZWV4ZWMgJHsxKyJbJF1AIn0KLSAgICAgIGVsc2UKLSAgICAgICAgIyBUcnkgdXNpbmcgcHJpbnRmLgotICAgICAgICBFQ0hPPSdwcmludGYgJXNcbicKLSAgICAgICAgaWYgdGVzdCAiWGB7ICRFQ0hPICdcdCc7IH0gMj4vZGV2L251bGxgIiA9ICdYXHQnICYmCi0JICAgZWNob190ZXN0aW5nX3N0cmluZz1geyAkRUNITyAiJGVjaG9fdGVzdF9zdHJpbmciOyB9IDI+L2Rldi9udWxsYCAmJgotCSAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotCSAgIyBDb29sLCBwcmludGYgd29ya3MKLQkgIDoKLSAgICAgICAgZWxpZiBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICdcdCcpIDI+L2Rldi9udWxsYCAmJgotCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICdYXHQnICYmCi0JICAgICBlY2hvX3Rlc3Rpbmdfc3RyaW5nPWAoJE9SSUdJTkFMX0NPTkZJR19TSEVMTCAiWyRdMCIgLS1mYWxsYmFjay1lY2hvICIkZWNob190ZXN0X3N0cmluZyIpIDI+L2Rldi9udWxsYCAmJgotCSAgICAgdGVzdCAiWCRlY2hvX3Rlc3Rpbmdfc3RyaW5nIiA9ICJYJGVjaG9fdGVzdF9zdHJpbmciOyB0aGVuCi0JICBDT05GSUdfU0hFTEw9JE9SSUdJTkFMX0NPTkZJR19TSEVMTAotCSAgZXhwb3J0IENPTkZJR19TSEVMTAotCSAgU0hFTEw9IiRDT05GSUdfU0hFTEwiCi0JICBleHBvcnQgU0hFTEwKLQkgIEVDSE89IiRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iCi0gICAgICAgIGVsaWYgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAnXHQnKSAyPi9kZXYvbnVsbGAgJiYKLQkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAnWFx0JyAmJgotCSAgICAgZWNob190ZXN0aW5nX3N0cmluZz1gKCRDT05GSUdfU0hFTEwgIlskXTAiIC0tZmFsbGJhY2stZWNobyAiJGVjaG9fdGVzdF9zdHJpbmciKSAyPi9kZXYvbnVsbGAgJiYKLQkgICAgIHRlc3QgIlgkZWNob190ZXN0aW5nX3N0cmluZyIgPSAiWCRlY2hvX3Rlc3Rfc3RyaW5nIjsgdGhlbgotCSAgRUNITz0iJENPTkZJR19TSEVMTCBbJF0wIC0tZmFsbGJhY2stZWNobyIKLSAgICAgICAgZWxzZQotCSAgIyBtYXliZSB3aXRoIGEgc21hbGxlciBzdHJpbmcuLi4KLQkgIHByZXY9OgotCi0JICBmb3IgY21kIGluICdlY2hvIHRlc3QnICdzZWQgMnEgIlskXTAiJyAnc2VkIDEwcSAiWyRdMCInICdzZWQgMjBxICJbJF0wIicgJ3NlZCA1MHEgIlskXTAiJzsgZG8KLQkgICAgaWYgeyB0ZXN0ICJYJGVjaG9fdGVzdF9zdHJpbmciID0gIlhgZXZhbCAkY21kYCI7IH0gMj4vZGV2L251bGwKLQkgICAgdGhlbgotCSAgICAgIGJyZWFrCi0JICAgIGZpCi0JICAgIHByZXY9IiRjbWQiCi0JICBkb25lCi0KLQkgIGlmIHRlc3QgIiRwcmV2IiAhPSAnc2VkIDUwcSAiWyRdMCInOyB0aGVuCi0JICAgIGVjaG9fdGVzdF9zdHJpbmc9YGV2YWwgJHByZXZgCi0JICAgIGV4cG9ydCBlY2hvX3Rlc3Rfc3RyaW5nCi0JICAgIGV4ZWMgJHtPUklHSU5BTF9DT05GSUdfU0hFTEwtJHtDT05GSUdfU0hFTEwtL2Jpbi9zaH19ICJbJF0wIiAkezErIlskXUAifQotCSAgZWxzZQotCSAgICAjIE9vcHMuICBXZSBsb3N0IGNvbXBsZXRlbHksIHNvIGp1c3Qgc3RpY2sgd2l0aCBlY2hvLgotCSAgICBFQ0hPPWVjaG8KLQkgIGZpCi0gICAgICAgIGZpCi0gICAgICBmaQotICAgIGZpCi0gIGZpCi1maQotCi0jIENvcHkgZWNobyBhbmQgcXVvdGUgdGhlIGNvcHkgc3VpdGFibHkgZm9yIHBhc3NpbmcgdG8gbGlidG9vbCBmcm9tCi0jIHRoZSBNYWtlZmlsZSwgaW5zdGVhZCBvZiBxdW90aW5nIHRoZSBvcmlnaW5hbCwgd2hpY2ggaXMgdXNlZCBsYXRlci4KLWx0X0VDSE89JEVDSE8KLWlmIHRlc3QgIlgkbHRfRUNITyIgPSAiWCRDT05GSUdfU0hFTEwgWyRdMCAtLWZhbGxiYWNrLWVjaG8iOyB0aGVuCi0gICBsdF9FQ0hPPSIkQ09ORklHX1NIRUxMIFxcXCRcWyRdMCAtLWZhbGxiYWNrLWVjaG8iCi1maQotCi1BQ19TVUJTVChsdF9FQ0hPKQotXSkKIF9MVF9ERUNMKFtdLCBbU0hFTExdLCBbMV0sIFtTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzXSkKLV9MVF9ERUNMKFtdLCBbRUNIT10sIFsxXSwKLSAgICBbQW4gZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzXSkKK19MVF9ERUNMKFtdLCBbRUNIT10sIFsxXSwgW0FuIGVjaG8gcHJvZ3JhbSB0aGF0IHByb3RlY3RzIGJhY2tzbGFzaGVzXSkKIF0pIyBfTFRfUFJPR19FQ0hPX0JBQ0tTTEFTSAogCiAKKyMgX0xUX1dJVEhfU1lTUk9PVAorIyAtLS0tLS0tLS0tLS0tLS0tCitBQ19ERUZVTihbX0xUX1dJVEhfU1lTUk9PVF0sCitbQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3lzcm9vdF0pCitBQ19BUkdfV0lUSChbc3lzcm9vdF0sCitbICAtLXdpdGgtc3lzcm9vdFs9RElSXSBTZWFyY2ggZm9yIGRlcGVuZGVudCBsaWJyYXJpZXMgd2l0aGluIERJUgorICAgICAgICAgICAgICAgICAgICAgICAgKG9yIHRoZSBjb21waWxlcidzIHN5c3Jvb3QgaWYgbm90IHNwZWNpZmllZCkuXSwKK1tdLCBbd2l0aF9zeXNyb290PW5vXSkKKworZG5sIGx0X3N5c3Jvb3Qgd2lsbCBhbHdheXMgYmUgcGFzc2VkIHVucXVvdGVkLiAgV2UgcXVvdGUgaXQgaGVyZQorZG5sIGluIGNhc2UgdGhlIHVzZXIgcGFzc2VkIGEgZGlyZWN0b3J5IG5hbWUuCitsdF9zeXNyb290PQorY2FzZSAke3dpdGhfc3lzcm9vdH0gaW4gIygKKyB5ZXMpCisgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorICAgICBsdF9zeXNyb290PWAkQ0MgLS1wcmludC1zeXNyb290IDI+L2Rldi9udWxsYAorICAgZmkKKyAgIDs7ICMoCisgLyopCisgICBsdF9zeXNyb290PWBlY2hvICIkd2l0aF9zeXNyb290IiB8IHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCisgICA7OyAjKAorIG5vfCcnKQorICAgOzsgIygKKyAqKQorICAgQUNfTVNHX1JFU1VMVChbJHt3aXRoX3N5c3Jvb3R9XSkKKyAgIEFDX01TR19FUlJPUihbVGhlIHN5c3Jvb3QgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pCisgICA7OworZXNhYworCisgQUNfTVNHX1JFU1VMVChbJHtsdF9zeXNyb290Oi1ub31dKQorX0xUX0RFQ0woW10sIFtsdF9zeXNyb290XSwgWzBdLCBbVGhlIHJvb3Qgd2hlcmUgdG8gc2VhcmNoIGZvciBdZG5sCitbZGVwZW5kZW50IGxpYnJhcmllcywgYW5kIGluIHdoaWNoIG91ciBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZC5dKV0pCisKICMgX0xUX0VOQUJMRV9MT0NLCiAjIC0tLS0tLS0tLS0tLS0tLQogbTRfZGVmdW4oW19MVF9FTkFCTEVfTE9DS10sCkBAIC0xMjM2LDcgKzEyODEsNyBAQAogICA7OwogKi0qLWlyaXg2KikKICAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotICBlY2hvICdbI11saW5lIF9fb2xpbmVfXyAiY29uZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0CisgIGVjaG8gJ1sjXWxpbmUgJyRMSU5FTk8nICJjb25maWd1cmUiJyA+IGNvbmZ0ZXN0LiRhY19leHQKICAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KICAgICBpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCiAgICAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCkBAIC0xMzI5LDE0ICsxMzc0LDI3IEBACiAgICAgQ0ZMQUdTPSIkU0FWRV9DRkxBR1MiCiAgIGZpCiAgIDs7Ci1zcGFyYyotKnNvbGFyaXMqKQorKi0qc29sYXJpcyopCiAgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KICAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKICAgaWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4KICAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCiAgICAgKjY0LWJpdCopCiAgICAgICBjYXNlICRsdF9jdl9wcm9nX2dudV9sZCBpbgotICAgICAgeWVzKikgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIiA7OworICAgICAgeWVzKikKKyAgICAgICAgY2FzZSAkaG9zdCBpbgorICAgICAgICBpPzg2LSotc29sYXJpcyopCisgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjQiCisgICAgICAgICAgOzsKKyAgICAgICAgc3BhcmMqLSotc29sYXJpcyopCisgICAgICAgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3NwYXJjIgorICAgICAgICAgIDs7CisgICAgICAgIGVzYWMKKyAgICAgICAgIyBHTlUgbGQgMi4yMSBpbnRyb2R1Y2VkIF9zb2wyIGVtdWxhdGlvbnMuICBVc2UgdGhlbSBpZiBhdmFpbGFibGUuCisgICAgICAgIGlmICR7TEQtbGR9IC1WIHwgZ3JlcCBfc29sMiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgICAgICAgICBMRD0iJHtMRC1sZH1fc29sMiIKKyAgICAgICAgZmkKKyAgICAgICAgOzsKICAgICAgICopCiAJaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAJICBMRD0iJHtMRC1sZH0gLTY0IgpAQCAtMTM1NCwxNCArMTQxMiw0NyBAQAogXSkjIF9MVF9FTkFCTEVfTE9DSwogCiAKKyMgX0xUX1BST0dfQVIKKyMgLS0tLS0tLS0tLS0KK200X2RlZnVuKFtfTFRfUFJPR19BUl0sCitbQUNfQ0hFQ0tfVE9PTFMoQVIsIFthcl0sIGZhbHNlKQorOiAke0FSPWFyfQorOiAke0FSX0ZMQUdTPWNydX0KK19MVF9ERUNMKFtdLCBbQVJdLCBbMV0sIFtUaGUgYXJjaGl2ZXJdKQorX0xUX0RFQ0woW10sIFtBUl9GTEFHU10sIFsxXSwgW0ZsYWdzIHRvIGNyZWF0ZSBhbiBhcmNoaXZlXSkKKworQUNfQ0FDSEVfQ0hFQ0soW2ZvciBhcmNoaXZlciBARklMRSBzdXBwb3J0XSwgW2x0X2N2X2FyX2F0X2ZpbGVdLAorICBbbHRfY3ZfYXJfYXRfZmlsZT1ubworICAgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTV0sCisgICAgIFtlY2hvIGNvbmZ0ZXN0LiRhY19vYmpleHQgPiBjb25mdGVzdC5sc3QKKyAgICAgIGx0X2FyX3RyeT0nJEFSICRBUl9GTEFHUyBsaWJjb25mdGVzdC5hIEBjb25mdGVzdC5sc3QgPiZBU19NRVNTQUdFX0xPR19GRCcKKyAgICAgIEFDX1RSWV9FVkFMKFtsdF9hcl90cnldKQorICAgICAgaWYgdGVzdCAiJGFjX3N0YXR1cyIgLWVxIDA7IHRoZW4KKwkjIEVuc3VyZSB0aGUgYXJjaGl2ZXIgZmFpbHMgdXBvbiBib2d1cyBmaWxlIG5hbWVzLgorCXJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQgbGliY29uZnRlc3QuYQorCUFDX1RSWV9FVkFMKFtsdF9hcl90cnldKQorCWlmIHRlc3QgIiRhY19zdGF0dXMiIC1uZSAwOyB0aGVuCisgICAgICAgICAgbHRfY3ZfYXJfYXRfZmlsZT1ACisgICAgICAgIGZpCisgICAgICBmaQorICAgICAgcm0gLWYgY29uZnRlc3QuKiBsaWJjb25mdGVzdC5hCisgICAgIF0pCisgIF0pCisKK2lmIHRlc3QgIngkbHRfY3ZfYXJfYXRfZmlsZSIgPSB4bm87IHRoZW4KKyAgYXJjaGl2ZXJfbGlzdF9zcGVjPQorZWxzZQorICBhcmNoaXZlcl9saXN0X3NwZWM9JGx0X2N2X2FyX2F0X2ZpbGUKK2ZpCitfTFRfREVDTChbXSwgW2FyY2hpdmVyX2xpc3Rfc3BlY10sIFsxXSwKKyAgW0hvdyB0byBmZWVkIGEgZmlsZSBsaXN0aW5nIHRvIHRoZSBhcmNoaXZlcl0pCitdKSMgX0xUX1BST0dfQVIKKworCiAjIF9MVF9DTURfT0xEX0FSQ0hJVkUKICMgLS0tLS0tLS0tLS0tLS0tLS0tLQogbTRfZGVmdW4oW19MVF9DTURfT0xEX0FSQ0hJVkVdLAotW0FDX0NIRUNLX1RPT0woQVIsIGFyLCBmYWxzZSkKLXRlc3QgLXogIiRBUiIgJiYgQVI9YXIKLXRlc3QgLXogIiRBUl9GTEFHUyIgJiYgQVJfRkxBR1M9Y3J1Ci1fTFRfREVDTChbXSwgW0FSXSwgWzFdLCBbVGhlIGFyY2hpdmVyXSkKLV9MVF9ERUNMKFtdLCBbQVJfRkxBR1NdLCBbMV0pCitbX0xUX1BST0dfQVIKIAogQUNfQ0hFQ0tfVE9PTChTVFJJUCwgc3RyaXAsIDopCiB0ZXN0IC16ICIkU1RSSVAiICYmIFNUUklQPToKQEAgLTEzODAsMTggKzE0NzEsMjcgQEAKIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCiAgIGNhc2UgJGhvc3Rfb3MgaW4KICAgb3BlbmJzZCopCi0gICAgb2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiAtdCBcJG9sZGxpYiIKKyAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIC10IFwkdG9vbF9vbGRsaWIiCiAgICAgOzsKICAgKikKLSAgICBvbGRfcG9zdGluc3RhbGxfY21kcz0iJG9sZF9wb3N0aW5zdGFsbF9jbWRzflwkUkFOTElCIFwkb2xkbGliIgorICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCR0b29sX29sZGxpYiIKICAgICA7OwogICBlc2FjCi0gIG9sZF9hcmNoaXZlX2NtZHM9IiRvbGRfYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkb2xkbGliIgorICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJHRvb2xfb2xkbGliIgogZmkKKworY2FzZSAkaG9zdF9vcyBpbgorICBkYXJ3aW4qKQorICAgIGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj15ZXMgOzsKKyAgKikKKyAgICBsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb249bm8gOzsKK2VzYWMKIF9MVF9ERUNMKFtdLCBbb2xkX3Bvc3RpbnN0YWxsX2NtZHNdLCBbMl0pCiBfTFRfREVDTChbXSwgW29sZF9wb3N0dW5pbnN0YWxsX2NtZHNdLCBbMl0pCiBfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2NtZHNdLCBbMl0sCiAgICAgW0NvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYW4gb2xkLXN0eWxlIGFyY2hpdmVdKQorX0xUX0RFQ0woW10sIFtsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb25dLCBbMF0sCisgICAgW1doZXRoZXIgdG8gdXNlIGEgbG9jayBmb3Igb2xkIGFyY2hpdmUgZXh0cmFjdGlvbl0pCiBdKSMgX0xUX0NNRF9PTERfQVJDSElWRQogCiAKQEAgLTE0MTYsMTUgKzE1MTYsMTUgQEAKICAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKICAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAogICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSAgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICRsdF9jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKICAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCiAgICBhY19zdGF0dXM9JD8KICAgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAotICAgZWNobyAiJGFzX21lOl9fb2xpbmVfXzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19GRAorICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVTU0FHRV9MT0dfRkQKICAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgogICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAogICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgotICAgICAkRUNITyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCisgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCiAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgogICAgICBpZiB0ZXN0ICEgLXMgY29uZnRlc3QuZXIyIHx8IGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCiAgICAgICAgJDI9eWVzCkBAIC0xNDY0LDcgKzE1NjQsNyBAQAogICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgogICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCiAgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiZBU19NRVNTQUdFX0xPR19GRAotICAgICAgICRFQ0hPICJYJF9sdF9saW5rZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgLWUgJy9eJC9kJyA+IGNvbmZ0ZXN0LmV4cAorICAgICAgICRFQ0hPICIkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBjb25mdGVzdC5leHAKICAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKICAgICAgICBpZiBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgogICAgICAgICAgJDI9eWVzCkBAIC0xNTI3LDYgKzE2MjcsMTEgQEAKICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKICAgICA7OwogCisgIG1pbnQqKQorICAgICMgT24gTWlOVCB0aGlzIGNhbiB0YWtlIGEgbG9uZyB0aW1lIGFuZCBydW4gb3V0IG9mIG1lbW9yeS4KKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49ODE5MjsKKyAgICA7OworCiAgIGFtaWdhb3MqKQogICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVyYWxseS4KICAgICAjIFNvIHdlIGp1c3QgcHVudCBhbmQgdXNlIGEgbWluaW11bSBsaW5lIGxlbmd0aCBvZiA4MTkyLgpAQCAtMTU1Miw2ICsxNjU3LDExIEBACiAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAogICAgIDs7CiAKKyAgb3MyKikKKyAgICAjIFRoZSB0ZXN0IHRha2VzIGEgbG9uZyB0aW1lIG9uIE9TLzIuCisgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTIKKyAgICA7OworCiAgIG9zZiopCiAgICAgIyBEci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmljIHJ1bm5pbmcgY29uZmlndXJlCiAgICAgIyBkdWUgdG8gdGhpcyB0ZXN0IHdoZW4gZXhlY19kaXNhYmxlX2FyZ19saW1pdCBpcyAxIG9uIFRydTY0LiBJdCBpcyBub3QKQEAgLTE1OTEsOCArMTcwMSw4IEBACiAgICAgICAjIElmIHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQtaW4sIHdlJ2xsIHByb2JhYmx5IGVuZCB1cCBjb21wdXRpbmcgYQogICAgICAgIyBtYXhpbXVtIGxlbmd0aCB0aGF0IGlzIG9ubHkgaGFsZiBvZiB0aGUgYWN0dWFsIG1heGltdW0gbGVuZ3RoLCBidXQKICAgICAgICMgd2UgY2FuJ3QgdGVsbC4KLSAgICAgIHdoaWxlIHsgdGVzdCAiWCJgJFNIRUxMIFskXTAgLS1mYWxsYmFjay1lY2hvICJYJHRlc3RzdHJpbmckdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKLQkgICAgICAgICA9ICJYWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgorICAgICAgd2hpbGUgeyB0ZXN0ICJYImBlbnYgZWNobyAiJHRlc3RzdHJpbmckdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKKwkgICAgICAgICA9ICJYJHRlc3RzdHJpbmckdGVzdHN0cmluZyI7IH0gPi9kZXYvbnVsbCAyPiYxICYmCiAJICAgICAgdGVzdCAkaSAhPSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCiAgICAgICBkbwogICAgICAgICBpPWBleHByICRpICsgMWAKQEAgLTE2NDMsNyArMTc1Myw3IEBACiAgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIKICAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLVsjbGluZSBfX29saW5lX18gImNvbmZpZ3VyZSIKK1sjbGluZSAkTElORU5PICJjb25maWd1cmUiCiAjaW5jbHVkZSAiY29uZmRlZnMuaCIKIAogI2lmIEhBVkVfRExGQ05fSApAQCAtMTY4NCw3ICsxNzk0LDEzIEBACiAjICBlbmRpZgogI2VuZGlmCiAKLXZvaWQgZm5vcmQoKSB7IGludCBpPTQyO30KKy8qIFdoZW4gLWZ2aXNiaWxpdHk9aGlkZGVuIGlzIHVzZWQsIGFzc3VtZSB0aGUgY29kZSBoYXMgYmVlbiBhbm5vdGF0ZWQKKyAgIGNvcnJlc3BvbmRpbmdseSBmb3IgdGhlIHN5bWJvbHMgbmVlZGVkLiAgKi8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAoKChfX0dOVUNfXyA9PSAzKSAmJiAoX19HTlVDX01JTk9SX18gPj0gMykpIHx8IChfX0dOVUNfXyA+IDMpKQoraW50IGZub3JkICgpIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpOworI2VuZGlmCisKK2ludCBmbm9yZCAoKSB7IHJldHVybiA0MjsgfQogaW50IG1haW4gKCkKIHsKICAgdm9pZCAqc2VsZiA9IGRsb3BlbiAoMCwgTFRfRExHTE9CQUx8TFRfRExMQVpZX09SX05PVyk7CkBAIC0xNjkzLDcgKzE4MDksMTEgQEAKICAgaWYgKHNlbGYpCiAgICAgewogICAgICAgaWYgKGRsc3ltIChzZWxmLCJmbm9yZCIpKSAgICAgICBzdGF0dXMgPSAkbHRfZGxub191c2NvcmU7Ci0gICAgICBlbHNlIGlmIChkbHN5bSggc2VsZiwiX2Zub3JkIikpIHN0YXR1cyA9ICRsdF9kbG5lZWRfdXNjb3JlOworICAgICAgZWxzZQorICAgICAgICB7CisJICBpZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSAgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7CisgICAgICAgICAgZWxzZSBwdXRzIChkbGVycm9yICgpKTsKKwl9CiAgICAgICAvKiBkbGNsb3NlIChzZWxmKTsgKi8KICAgICB9CiAgIGVsc2UKQEAgLTE4NjksMTYgKzE5ODksMTYgQEAKICAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKICAgIC1lICdzOiBbW14gXV0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAogICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSAgIChldmFsIGVjaG8gIlwiXCRhc19tZTpfX29saW5lX186ICRsdF9jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKICAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQogICAgYWNfc3RhdHVzPSQ/CiAgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9HX0ZECi0gICBlY2hvICIkYXNfbWU6X19vbGluZV9fOiBcJD8gPSAkYWNfc3RhdHVzIiA+JkFTX01FU1NBR0VfTE9HX0ZECisgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiZBU19NRVNTQUdFX0xPR19GRAogICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKICAgIHRoZW4KICAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKICAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0gICAgICRFQ0hPICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCAtZSAnL14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAorICAgICAkRUNITyAiJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQvZCcgPiBvdXQvY29uZnRlc3QuZXhwCiAgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCiAgICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KICAgICAgICBfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9eWVzCkBAIC0yMDM3LDYgKzIxNTcsNyBAQAogbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCiBtNF9yZXF1aXJlKFtfTFRfREVDTF9PQkpEVU1QXSlkbmwKIG00X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCittNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfU0hFTExfRkVBVFVSRVNdKWRubAogQUNfTVNHX0NIRUNLSU5HKFtkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3NdKQogbTRfaWYoWyQxXSwKIAlbXSwgWwpAQCAtMjA0NSwxNiArMjE2NiwyMyBAQAogICAgIGRhcndpbiopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8sL0xSLyIgOzsKICAgICAqKSBsdF9hd2tfYXJnPSIvXmxpYnJhcmllczovIiA7OwogICBlc2FjCi0gIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBhd2sgJGx0X2F3a19hcmcgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCi0gIGlmICRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkR1JFUCAnOycgPi9kZXYvbnVsbCA7IHRoZW4KKyAgY2FzZSAkaG9zdF9vcyBpbgorICAgIG1pbmd3KiB8IGNlZ2NjKikgbHRfc2VkX3N0cmlwX2VxPSJzLD1cKFtbQS1aYS16XV06XCksXDEsZyIgOzsKKyAgICAqKSBsdF9zZWRfc3RyaXBfZXE9InMsPS8sLyxnIiA7OworICBlc2FjCisgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRpcnMgfCBhd2sgJGx0X2F3a19hcmcgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICRsdF9zZWRfc3RyaXBfZXFgCisgIGNhc2UgJGx0X3NlYXJjaF9wYXRoX3NwZWMgaW4KKyAgKlw7KikKICAgICAjIGlmIHRoZSBwYXRoIGNvbnRhaW5zICI7IiB0aGVuIHdlIGFzc3VtZSBpdCB0byBiZSB0aGUgc2VwYXJhdG9yCiAgICAgIyBvdGhlcndpc2UgZGVmYXVsdCB0byB0aGUgc3RhbmRhcmQgcGF0aCBzZXBhcmF0b3IgKGkuZS4gIjoiKSAtIGl0IGlzCiAgICAgIyBhc3N1bWVkIHRoYXQgbm8gcGFydCBvZiBhIG5vcm1hbCBwYXRobmFtZSBjb250YWlucyAiOyIgYnV0IHRoYXQgc2hvdWxkCiAgICAgIyBva2F5IGluIHRoZSByZWFsIHdvcmxkIHdoZXJlICI7IiBpbiBkaXJwYXRocyBpcyBpdHNlbGYgcHJvYmxlbWF0aWMuCi0gICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cnYAotICBlbHNlCi0gICAgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotICBmaQorICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICdzLzsvIC9nJ2AKKyAgICA7OworICAqKQorICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorICAgIDs7CisgIGVzYWMKICAgIyBPaywgbm93IHdlIGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRocm91Z2ggaXQKICAgIyBhbmQgYWRkIG11bHRpbGliIGRpciBpZiBuZWNlc3NhcnkuCiAgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPQpAQCAtMjA2Nyw3ICsyMTk1LDcgQEAKIAlsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNfcGF0aCIKICAgICBmaQogICBkb25lCi0gIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyB8IGF3ayAnCisgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMiIHwgYXdrICcKIEJFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKICAgbHRfZm9vPSIiOwogICBsdF9jb3VudD0wOwpAQCAtMjA4Nyw3ICsyMjE1LDEzIEBACiAgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJlcVtbbHRfZm9vXV0rKzsgfQogICBpZiAobHRfZnJlcVtbbHRfZm9vXV0gPT0gMSkgeyBwcmludCBsdF9mb287IH0KIH0nYAotICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICRsdF9zZWFyY2hfcGF0aF9zcGVjYAorICAjIEFXSyBwcm9ncmFtIGFib3ZlIGVycm9uZW91c2x5IHByZXBlbmRzICcvJyB0byBDOi9kb3MvcGF0aHMKKyAgIyBmb3IgdGhlc2UgaG9zdHMuCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICBtaW5ndyogfCBjZWdjYyopIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfFwKKyAgICAgICRTRUQgJ3MsL1woW1tBLVphLXpdXTpcKSxcMSxnJ2AgOzsKKyAgZXNhYworICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkbHRfTkwyU1BgCiBlbHNlCiAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKIGZpXSkKQEAgLTIxMTMsNyArMjI0Nyw3IEBACiAKIGNhc2UgJGhvc3Rfb3MgaW4KIGFpeDMqKQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUuYScKICAgc2hsaWJwYXRoX3Zhcj1MSUJQQVRICiAKQEAgLTIxMjIsNyArMjI1Niw3IEBACiAgIDs7CiAKIGFpeFtbNC05XV0qKQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBuZWVkX2xpYl9wcmVmaXg9bm8KICAgbmVlZF92ZXJzaW9uPW5vCiAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKQEAgLTIxNzUsNyArMjMwOSw3IEBACiAgIG02OGspCiAgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKICAgICAjIENyZWF0ZSAke2xpYm5hbWV9X2l4bGlicmFyeS5hIGVudHJpZXMgaW4gL3N5cy9saWJzLgotICAgIGZpbmlzaF9ldmFsPSdmb3IgbGliIGluIGBscyAkbGliZGlyLyouaXhsaWJyYXJ5IDI+L2Rldi9udWxsYDsgZG8gbGlibmFtZT1gJEVDSE8gIlgkbGliIiB8ICRYc2VkIC1lICdcJydzJV4uKi9cKFtbXi9dXSpcKVwuaXhsaWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7IGRvbmUnCisgICAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWBmdW5jX2VjaG9fYWxsICIkbGliIiB8ICRTRUQgJ1wnJ3MlXi4qL1woW1teL11dKlwpXC5peGxpYnJhcnkkJVwxJSdcJydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNkIC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9uZScKICAgICA7OwogICBlc2FjCiAgIDs7CkBAIC0yMTg3LDcgKzIzMjEsNyBAQAogICA7OwogCiBic2RpW1s0NV1dKikKLSAgdmVyc2lvbl90eXBlPWxpbnV4CisgIHZlcnNpb25fdHlwZT1saW51eCAjIGNvcnJlY3QgdG8gZ251L2xpbnV4IGR1cmluZyB0aGUgbmV4dCBiaWcgcmVmYWN0b3IKICAgbmVlZF92ZXJzaW9uPW5vCiAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwogICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwpAQCAtMjIwNiw4ICsyMzQwLDkgQEAKICAgbmVlZF92ZXJzaW9uPW5vCiAgIG5lZWRfbGliX3ByZWZpeD1ubwogCi0gIGNhc2UgJEdDQywkaG9zdF9vcyBpbgotICB5ZXMsY3lnd2luKiB8IHllcyxtaW5ndyogfCB5ZXMscHczMiogfCB5ZXMsY2VnY2MqKQorICBjYXNlICRHQ0MsJGNjX2Jhc2VuYW1lIGluCisgIHllcywqKQorICAgICMgZ2NjCiAgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwuYScKICAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCiAgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CkBAIC0yMjI4LDM2ICsyMzYzLDgzIEBACiAgICAgY3lnd2luKikKICAgICAgICMgQ3lnd2luIERMTHMgdXNlICdjeWcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwogICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0gICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliIC9saWIvdzMyYXBpIC9saWIgL3Vzci9sb2NhbC9saWIiCittNF9pZihbJDFdLCBbXSxbCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMgL3Vzci9saWIvdzMyYXBpIl0pCiAgICAgICA7OwogICAgIG1pbmd3KiB8IGNlZ2NjKikKICAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4CiAgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJENDIC1wcmludC1zZWFyY2gtZGlycyB8ICRHUkVQICJebGlicmFyaWVzOiIgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICJzLD0vLC8sZyJgCi0gICAgICBpZiAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCBbJEdSRVAgJztbYy16Qy1aXTovJyA+L2Rldi9udWxsXTsgdGhlbgotICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRIIHByaW50ZWQgYnkKLSAgICAgICAgIyBtaW5ndyBnY2MsIGJ1dCB3ZSBhcmUgcnVubmluZyBvbiBDeWd3aW4uIEdjYyBwcmludHMgaXRzIHNlYXJjaAotICAgICAgICAjIHBhdGggd2l0aCA7IHNlcGFyYXRvcnMsIGFuZCB3aXRoIGRyaXZlIGxldHRlcnMuIFdlIGNhbiBoYW5kbGUgdGhlCi0gICAgICAgICMgZHJpdmUgbGV0dGVycyAoY3lnd2luIGZpbGV1dGlscyB1bmRlcnN0YW5kcyB0aGVtKSwgc28gbGVhdmUgdGhlbSwKLSAgICAgICAgIyBlc3BlY2lhbGx5IGFzIHdlIG1pZ2h0IHBhc3MgZmlsZXMgZm91bmQgdGhlcmUgdG8gYSBtaW5ndyBvYmpkdW1wLAotICAgICAgICAjIHdoaWNoIHdvdWxkbid0IHVuZGVyc3RhbmQgYSBjeWd3aW5pZmllZCBwYXRoLiBBaGguCi0gICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAncy87LyAvZydgCi0gICAgICBlbHNlCi0gICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0gICAgICBmaQogICAgICAgOzsKICAgICBwdzMyKikKICAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwogICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCiAgICAgICA7OwogICAgIGVzYWMKKyAgICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhlJworICAgIDs7CisKKyAgKixjbCopCisgICAgIyBOYXRpdmUgTVNWQworICAgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCisgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9LmRsbC5saWInCisKKyAgICBjYXNlICRidWlsZF9vcyBpbgorICAgIG1pbmd3KikKKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0KKyAgICAgIGx0X3NhdmVfaWZzPSRJRlMKKyAgICAgIElGUz0nOycKKyAgICAgIGZvciBsdF9wYXRoIGluICRMSUIKKyAgICAgIGRvCisgICAgICAgIElGUz0kbHRfc2F2ZV9pZnMKKyAgICAgICAgIyBMZXQgRE9TIHZhcmlhYmxlIGV4cGFuc2lvbiBwcmludCB0aGUgc2hvcnQgOC4zIHN0eWxlIGZpbGUgbmFtZS4KKyAgICAgICAgbHRfcGF0aD1gY2QgIiRsdF9wYXRoIiAyPi9kZXYvbnVsbCAmJiBjbWQgLy9DICJmb3IgJWkgaW4gKCIuIikgZG8gQGVjaG8gJX5zaSJgCisgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAkbHRfcGF0aCIKKyAgICAgIGRvbmUKKyAgICAgIElGUz0kbHRfc2F2ZV9pZnMKKyAgICAgICMgQ29udmVydCB0byBNU1lTIHN0eWxlLgorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCBzZWQgLWUgJ3N8XFxcXHwvfGcnIC1lICdzfCBcXChbW2EtekEtWl1dXFwpOnwgL1xcMXxnJyAtZSAnc3xeIHx8J2AKKyAgICAgIDs7CisgICAgY3lnd2luKikKKyAgICAgICMgQ29udmVydCB0byB1bml4IGZvcm0sIHRoZW4gdG8gZG9zIGZvcm0sIHRoZW4gYmFjayB0byB1bml4IGZvcm0KKyAgICAgICMgYnV0IHRoaXMgdGltZSBkb3Mgc3R5bGUgKG5vIHNwYWNlcyEpIHNvIHRoYXQgdGhlIHVuaXggZm9ybSBsb29rcworICAgICAgIyBsaWtlIC9jeWdkcml2ZS9jL1BST0dSQX4xOi9jeWdkci4uLgorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0aCAtLXVuaXggIiRMSUIiYAorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0aCAtLWRvcyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgMj4vZGV2L251bGxgCisgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGN5Z3BhdGggLS1wYXRoIC0tdW5peCAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorICAgICAgOzsKKyAgICAqKQorICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkTElCIgorICAgICAgaWYgJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgWyRHUkVQICc7W2MtekMtWl06LycgPi9kZXYvbnVsbF07IHRoZW4KKyAgICAgICAgIyBJdCBpcyBtb3N0IHByb2JhYmx5IGEgV2luZG93cyBmb3JtYXQgUEFUSC4KKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKKyAgICAgIGVsc2UKKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICJzLyRQQVRIX1NFUEFSQVRPUi8gL2ciYAorICAgICAgZmkKKyAgICAgICMgRklYTUU6IGZpbmQgdGhlIHNob3J0IG5hbWUgb3IgdGhlIHBhdGggY29tcG9uZW50cywgYXMgc3BhY2VzIGFyZQorICAgICAgIyBjb21tb24uIChlLmcuICJQcm9ncmFtIEZpbGVzIiAtPiAiUFJPR1JBfjEiKQorICAgICAgOzsKKyAgICBlc2FjCisKKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCisgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtmaWxlfWB+CisgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgorICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgorICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1wIFwkZGxkaXJ+CisgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRkbG5hbWUnCisgICAgcG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4KKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+CisgICAgICAgJFJNIFwkZGxwYXRoJworICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKKyAgICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGluay5leGUnCiAgICAgOzsKIAogICAqKQorICAgICMgQXNzdW1lIE1TVkMgd3JhcHBlcgogICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCisgICAgZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKICAgICA7OwogICBlc2FjCi0gIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCiAgICMgRklYTUU6IGZpcnN0IHdlIHNob3VsZCBzZWFyY2ggLiBhbmQgdGhlIGRpcmVjdG9yeSB0aGUgZXhlY3V0YWJsZSBpcyBpbgogICBzaGxpYnBhdGhfdmFyPVBBVEgKICAgOzsKQEAgLTIyNzgsNyArMjQ2MCw3IEBACiAgIDs7CiAKIGRndXgqKQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBuZWVkX2xpYl9wcmVmaXg9bm8KICAgbmVlZF92ZXJzaW9uPW5vCiAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUkc2hhcmVkX2V4dCcKQEAgLTIyODYsMTAgKzI0NjgsNiBAQAogICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAogICA7OwogCi1mcmVlYnNkMSopCi0gIGR5bmFtaWNfbGlua2VyPW5vCi0gIDs7Ci0KIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKICAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5IGltcGxlbWVudCBhIG5ldwogICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KQEAgLTIyOTcsNyArMjQ3NSw3IEBACiAgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCiAgIGVsc2UKICAgICBjYXNlICRob3N0X29zIGluCi0gICAgZnJlZWJzZFtbMTIzXV0qKSBvYmpmb3JtYXQ9YW91dCA7OworICAgIGZyZWVic2RbWzIzXV0uKikgb2JqZm9ybWF0PWFvdXQgOzsKICAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7CiAgICAgZXNhYwogICBmaQpAQCAtMjMxNSw3ICsyNDkzLDcgQEAKICAgZXNhYwogICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAogICBjYXNlICRob3N0X29zIGluCi0gIGZyZWVic2QyKikKKyAgZnJlZWJzZDIuKikKICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCiAgICAgOzsKICAgZnJlZWJzZDMuW1swMV1dKiB8IGZyZWVic2RlbGYzLltbMDFdXSopCkBAIC0yMzM1LDEyICsyNTEzLDI2IEBACiAgIDs7CiAKIGdudSopCi0gIHZlcnNpb25fdHlwZT1saW51eAorICB2ZXJzaW9uX3R5cGU9bGludXggIyBjb3JyZWN0IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCiAgIG5lZWRfbGliX3ByZWZpeD1ubwogICBuZWVkX3ZlcnNpb249bm8KICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwogICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwogICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAorICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKyAgaGFyZGNvZGVfaW50b19saWJzPXllcworICA7OworCitoYWlrdSopCisgIHZlcnNpb25fdHlwZT1saW51eCAjIGNvcnJlY3QgdG8gZ251L2xpbnV4IGR1cmluZyB0aGUgbmV4dCBiaWcgcmVmYWN0b3IKKyAgbmVlZF9saWJfcHJlZml4PW5vCisgIG5lZWRfdmVyc2lvbj1ubworICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgcnVudGltZV9sb2FkZXIiCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcworICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL2Jvb3QvaG9tZS9jb25maWcvbGliIC9ib290L2NvbW1vbi9saWIgL2Jvb3Qvc3lzdGVtL2xpYicKICAgaGFyZGNvZGVfaW50b19saWJzPXllcwogICA7OwogCkBAIC0yMzg2LDEyICsyNTc4LDE0IEBACiAgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKICAgICA7OwogICBlc2FjCi0gICMgSFAtVVggcnVucyAqcmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LgorICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFyZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NSwgLi4uCiAgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJworICAjIG9yIGZhaWxzIG91dHJpZ2h0LCBzbyBvdmVycmlkZSBhdG9taWNhbGx5OgorICBpbnN0YWxsX292ZXJyaWRlX21vZGU9NTU1CiAgIDs7CiAKIGludGVyaXhbWzMtOV1dKikKLSAgdmVyc2lvbl90eXBlPWxpbnV4CisgIHZlcnNpb25fdHlwZT1saW51eCAjIGNvcnJlY3QgdG8gZ251L2xpbnV4IGR1cmluZyB0aGUgbmV4dCBiaWcgcmVmYWN0b3IKICAgbmVlZF9saWJfcHJlZml4PW5vCiAgIG5lZWRfdmVyc2lvbj1ubwogICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwpAQCAtMjQwNyw3ICsyNjAxLDcgQEAKICAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7CiAgICAgKikKIAlpZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0JCXZlcnNpb25fdHlwZT1saW51eAorCQl2ZXJzaW9uX3R5cGU9bGludXggIyBjb3JyZWN0IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCiAJZWxzZQogCQl2ZXJzaW9uX3R5cGU9aXJpeAogCWZpIDs7CkBAIC0yNDQ0LDkgKzI2MzgsOSBAQAogICBkeW5hbWljX2xpbmtlcj1ubwogICA7OwogCi0jIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi1saW51eCogfCBrKmJzZCotZ251KQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyMgVGhpcyBtdXN0IGJlIGdsaWJjL0VMRi4KK2xpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBuZWVkX2xpYl9wcmVmaXg9bm8KICAgbmVlZF92ZXJzaW9uPW5vCiAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwpAQCAtMjQ1NCwyOSArMjY0OCwzMSBAQAogICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwogICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAogICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKwogICAjIFNvbWUgYmludXRpbHMgbGQgYXJlIHBhdGNoZWQgdG8gc2V0IERUX1JVTlBBVEgKLSAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCi0gIHNhdmVfbGliZGlyPSRsaWJkaXIKLSAgZXZhbCAibGliZGlyPS9mb287IHdsPVwiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpXCI7IFwKLSAgICAgICBMREZMQUdTPVwiXCRMREZMQUdTICRfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKVwiIgotICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCi0gICAgW0FTX0lGKFsgKCRPQkpEVU1QIC1wIGNvbmZ0ZXN0JGFjX2V4ZWV4dCkgMj4vZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rldi9udWxsXSwKLSAgICAgICBbc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllc10pXSkKLSAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCi0gIGxpYmRpcj0kc2F2ZV9saWJkaXIKKyAgQUNfQ0FDSEVfVkFMKFtsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGhdLAorICAgIFtsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KKyAgICBzYXZlX0xERkxBR1M9JExERkxBR1MKKyAgICBzYXZlX2xpYmRpcj0kbGliZGlyCisgICAgZXZhbCAibGliZGlyPS9mb287IHdsPVwiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpXCI7IFwKKwkgTERGTEFHUz1cIlwkTERGTEFHUyAkX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSlcIiIKKyAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtdKV0sCisgICAgICBbQVNfSUYoWyAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGxdLAorCSBbbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllc10pXSkKKyAgICBMREZMQUdTPSRzYXZlX0xERkxBR1MKKyAgICBsaWJkaXI9JHNhdmVfbGliZGlyCisgICAgXSkKKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKIAogICAjIFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KICAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCiAgICMgYmVmb3JlIHRoaXMgY2FuIGJlIGVuYWJsZWQuCiAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKIAotICAjIEFkZCBBQkktc3BlY2lmaWMgZGlyZWN0b3JpZXMgdG8gdGhlIHN5c3RlbSBsaWJyYXJ5IHBhdGguCi0gIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvbGliIC91c3IvbGliIgotCiAgICMgQXBwZW5kIGxkLnNvLmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCiAgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0gICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXFskXTIpKTsgc2tpcCA9IDE7IH0geyBpZiAoIXNraXApIHByaW50IFxbJF0wOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSogLyAvZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKLSAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjICRsdF9sZF9leHRyYSIKKyAgICBsdF9sZF9leHRyYT1gYXdrICcvXmluY2x1ZGUgLyB7IHN5c3RlbShzcHJpbnRmKCJjZCAvZXRjOyBjYXQgJXMgMj4vZGV2L251bGwiLCBcWyRdMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXFskXTA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2FwWwkgXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nO3MvIi8vZzsvXiQvZCcgfCB0ciAnXG4nICcgJ2AKKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNyL2xpYiAkbHRfbGRfZXh0cmEiCiAgIGZpCiAKICAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVzIG9uCkBAIC0yNDg4LDYgKzI2ODQsMTggQEAKICAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKICAgOzsKIAorbmV0YnNkZWxmKi1nbnUpCisgIHZlcnNpb25fdHlwZT1saW51eAorICBuZWVkX2xpYl9wcmVmaXg9bm8KKyAgbmVlZF92ZXJzaW9uPW5vCisgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCisgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCisgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICisgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubworICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCisgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJworICA7OworCiBuZXRic2QqKQogICB2ZXJzaW9uX3R5cGU9c3Vub3MKICAgbmVlZF9saWJfcHJlZml4PW5vCkBAIC0yNTA3LDcgKzI3MTUsNyBAQAogICA7OwogCiBuZXdzb3M2KQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwpAQCAtMjU3Niw3ICsyNzg0LDcgQEAKICAgOzsKIAogc29sYXJpcyopCi0gIHZlcnNpb25fdHlwZT1saW51eAorICB2ZXJzaW9uX3R5cGU9bGludXggIyBjb3JyZWN0IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCiAgIG5lZWRfbGliX3ByZWZpeD1ubwogICBuZWVkX3ZlcnNpb249bm8KICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCkBAIC0yNjAxLDcgKzI4MDksNyBAQAogICA7OwogCiBzeXN2NCB8IHN5c3Y0LjMqKQotICB2ZXJzaW9uX3R5cGU9bGludXgKKyAgdmVyc2lvbl90eXBlPWxpbnV4ICMgY29ycmVjdCB0byBnbnUvbGludXggZHVyaW5nIHRoZSBuZXh0IGJpZyByZWZhY3RvcgogICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKQEAgLTI2MjUsNyArMjgzMyw3IEBACiAKIHN5c3Y0Kk1QKikKICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotICAgIHZlcnNpb25fdHlwZT1saW51eAorICAgIHZlcnNpb25fdHlwZT1saW51eCAjIGNvcnJlY3QgdG8gZ251L2xpbnV4IGR1cmluZyB0aGUgbmV4dCBiaWcgcmVmYWN0b3IKICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwogICAgIHNvbmFtZV9zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJwogICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICkBAIC0yNjU2LDcgKzI4NjQsNyBAQAogCiB0cGYqKQogICAjIFRQRiBpcyBhIGNyb3NzLXRhcmdldCBvbmx5LiAgUHJlZmVycmVkIGNyb3NzLWhvc3QgPSBHTlUvTGludXguCi0gIHZlcnNpb25fdHlwZT1saW51eAorICB2ZXJzaW9uX3R5cGU9bGludXggIyBjb3JyZWN0IHRvIGdudS9saW51eCBkdXJpbmcgdGhlIG5leHQgYmlnIHJlZmFjdG9yCiAgIG5lZWRfbGliX3ByZWZpeD1ubwogICBuZWVkX3ZlcnNpb249bm8KICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCkBAIC0yNjY2LDcgKzI4NzQsNyBAQAogICA7OwogCiB1dHM0KikKLSAgdmVyc2lvbl90eXBlPWxpbnV4CisgIHZlcnNpb25fdHlwZT1saW51eCAjIGNvcnJlY3QgdG8gZ251L2xpbnV4IGR1cmluZyB0aGUgbmV4dCBiaWcgcmVmYWN0b3IKICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCiAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCiAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICkBAIC0yNzA4LDYgKzI5MTYsOCBAQAogICAgIFRoZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUVdXSkKIF9MVF9ERUNMKFtdLCBbc29uYW1lX3NwZWNdLCBbMV0sCiAgICAgW1tUaGUgY29kZWQgbmFtZSBvZiB0aGUgbGlicmFyeSwgaWYgZGlmZmVyZW50IGZyb20gdGhlIHJlYWwgbmFtZV1dKQorX0xUX0RFQ0woW10sIFtpbnN0YWxsX292ZXJyaWRlX21vZGVdLCBbMV0sCisgICAgW1Blcm1pc3Npb24gbW9kZSBvdmVycmlkZSBmb3IgaW5zdGFsbGF0aW9uIG9mIHNoYXJlZCBsaWJyYXJpZXNdKQogX0xUX0RFQ0woW10sIFtwb3N0aW5zdGFsbF9jbWRzXSwgWzJdLAogICAgIFtDb21tYW5kIHRvIHVzZSBhZnRlciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCiBfTFRfREVDTChbXSwgW3Bvc3R1bmluc3RhbGxfY21kc10sIFsyXSwKQEAgLTI4MjAsNiArMzAzMCw3IEBACiBBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAogbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKIG00X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKK200X3JlcXVpcmUoW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSlkbmwKIAogQUNfQVJHX1dJVEgoW2dudS1sZF0sCiAgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZ251LWxkXSwKQEAgLTI5NDEsNiArMzE1MiwxMSBAQAogZXNhYwogcmVsb2FkX2NtZHM9JyRMRCRyZWxvYWRfZmxhZyAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwogY2FzZSAkaG9zdF9vcyBpbgorICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisgICAgaWYgdGVzdCAiJEdDQyIgIT0geWVzOyB0aGVuCisgICAgICByZWxvYWRfY21kcz1mYWxzZQorICAgIGZpCisgICAgOzsKICAgZGFyd2luKikKICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgogICAgICAgcmVsb2FkX2NtZHM9JyRMVENDICRMVENGTEFHUyAtbm9zdGRsaWIgJHt3bH0tciAtbyAkb3V0cHV0JHJlbG9hZF9vYmpzJwpAQCAtMjk0OSw4ICszMTY1LDggQEAKICAgICBmaQogICAgIDs7CiBlc2FjCi1fTFRfREVDTChbXSwgW3JlbG9hZF9mbGFnXSwgWzFdLCBbSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBmaWxlc10pZG5sCi1fTFRfREVDTChbXSwgW3JlbG9hZF9jbWRzXSwgWzJdKWRubAorX0xUX1RBR0RFQ0woW10sIFtyZWxvYWRfZmxhZ10sIFsxXSwgW0hvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3QgZmlsZXNdKWRubAorX0xUX1RBR0RFQ0woW10sIFtyZWxvYWRfY21kc10sIFsyXSlkbmwKIF0pIyBfTFRfQ01EX1JFTE9BRAogCiAKQEAgLTMwMDIsMTYgKzMyMTgsMTggQEAKICAgIyBCYXNlIE1TWVMvTWluR1cgZG8gbm90IHByb3ZpZGUgdGhlICdmaWxlJyBjb21tYW5kIG5lZWRlZCBieQogICAjIGZ1bmNfd2luMzJfbGliaWQgc2hlbGwgZnVuY3Rpb24sIHNvIHVzZSBhIHdlYWtlciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJywKICAgIyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJlY2F1c2Ugd2UgYXJlIGNyb3NzLWNvbXBpbGluZy4KLSAgaWYgKCBmaWxlIC8gKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKyAgIyBmdW5jX3dpbjMyX2xpYmlkIGFzc3VtZXMgQlNEIG5tLCBzbyBkaXNhbGxvdyBpdCBpZiB1c2luZyBNUyBkdW1wYmluLgorICBpZiAoIHRlc3QgIiRsdF9jdl9ubV9pbnRlcmZhY2UiID0gIkJTRCBubSIgJiYgZmlsZSAvICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2IERMTCcKICAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nZnVuY193aW4zMl9saWJpZCcKICAgZWxzZQotICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIGZpbGUgZm9ybWF0IHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/JworICAgICMgS2VlcCB0aGlzIHBhdHRlcm4gaW4gc3luYyB3aXRoIHRoZSBvbmUgaW4gZnVuY193aW4zMl9saWJpZC4KKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBmaWxlIGZvcm1hdCAocGVpKi1pMzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT98cGUtYXJtLXdpbmNlfHBlLXg4Ni02NCknCiAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJwogICBmaQogICA7OwogCi1jZWdjYykKK2NlZ2NjKikKICAgIyB1c2UgdGhlIHdlYWtlciB0ZXN0IGJhc2VkIG9uICdvYmpkdW1wJy4gU2VlIG1pbmd3Ki4KICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGUtYXJtLS4qbGl0dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRPQkpEVU1QIC1mJwpAQCAtMzA0MSw2ICszMjU5LDEwIEBACiAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCiAgIDs7CiAKK2hhaWt1KikKKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKKyAgOzsKKwogaHB1eDEwLjIwKiB8IGhwdXgxMSopCiAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUKICAgY2FzZSAkaG9zdF9jcHUgaW4KQEAgLTMwNDksMTEgKzMyNzEsMTEgQEAKICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0vdXNyL2xpYi9ocHV4MzIvbGliYy5zbwogICAgIDs7CiAgIGhwcGEqNjQqKQotICAgIFtsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVkIG9iamVjdCBmaWxlIC0gUEEtUklTQyBbMC05XS5bMC05XSddCisgICAgW2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChzWzAtOV1bMC05XVswLTldfEVMRlsgLV1bMC05XVswLTldKSgtYml0KT8oIFtMTV1TQik/IHNoYXJlZCBvYmplY3QoIGZpbGUpP1ssIC1dKiBQQS1SSVNDIFswLTldXC5bMC05XSddCiAgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCiAgICAgOzsKICAgKikKLSAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxQQS1SSVNDW1swLTldXS5bWzAtOV1dKSBzaGFyZWQgbGlicmFyeScKKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxQQS1SSVNDW1swLTldXVwuW1swLTldXSkgc2hhcmVkIGxpYnJhcnknCiAgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vzci9saWIvbGliYy5zbAogICAgIDs7CiAgIGVzYWMKQEAgLTMwNzQsMTIgKzMyOTYsMTIgQEAKICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKICAgOzsKIAotIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotbGludXgqIHwgaypic2QqLWdudSkKKyMgVGhpcyBtdXN0IGJlIGdsaWJjL0VMRi4KK2xpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKICAgOzsKIAotbmV0YnNkKikKK25ldGJzZCogfCBuZXRic2RlbGYqLWdudSkKICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCiAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfF9waWNcLmEpJCcKICAgZWxzZQpAQCAtMzE1Myw2ICszMzc1LDIxIEBACiAgIDs7CiBlc2FjCiBdKQorCitmaWxlX21hZ2ljX2dsb2I9Cit3YW50X25vY2FzZWdsb2I9bm8KK2lmIHRlc3QgIiRidWlsZCIgPSAiJGhvc3QiOyB0aGVuCisgIGNhc2UgJGhvc3Rfb3MgaW4KKyAgbWluZ3cqIHwgcHczMiopCisgICAgaWYgKCBzaG9wdCB8IGdyZXAgbm9jYXNlZ2xvYiApID4vZGV2L251bGwgMj4mMTsgdGhlbgorICAgICAgd2FudF9ub2Nhc2VnbG9iPXllcworICAgIGVsc2UKKyAgICAgIGZpbGVfbWFnaWNfZ2xvYj1gZWNobyBhQWJCY0NkRGVFZkZnR2hIaUlqSmtLbExtTW5Ob09wUHFRclJzU3RUdVV2VndXeFh5WXpaIHwgJFNFRCAtZSAicy9cKC4uXCkvc1wvW1tcMV1dXC9bW1wxXV1cL2c7L2ciYAorICAgIGZpCisgICAgOzsKKyAgZXNhYworZmkKKwogZmlsZV9tYWdpY19jbWQ9JGx0X2N2X2ZpbGVfbWFnaWNfY21kCiBkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QKIHRlc3QgLXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgJiYgZGVwbGlic19jaGVja19tZXRob2Q9dW5rbm93bgpAQCAtMzE2MCw3ICszMzk3LDExIEBACiBfTFRfREVDTChbXSwgW2RlcGxpYnNfY2hlY2tfbWV0aG9kXSwgWzFdLAogICAgIFtNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFyZSBzaGFyZWQgb2JqZWN0c10pCiBfTFRfREVDTChbXSwgW2ZpbGVfbWFnaWNfY21kXSwgWzFdLAotICAgIFtDb21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID09ICJmaWxlX21hZ2ljIl0pCisgICAgW0NvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPSAiZmlsZV9tYWdpYyJdKQorX0xUX0RFQ0woW10sIFtmaWxlX21hZ2ljX2dsb2JdLCBbMV0sCisgICAgW0hvdyB0byBmaW5kIHBvdGVudGlhbCBmaWxlcyB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID0gImZpbGVfbWFnaWMiXSkKK19MVF9ERUNMKFtdLCBbd2FudF9ub2Nhc2VnbG9iXSwgWzFdLAorICAgIFtGaW5kIHBvdGVudGlhbCBmaWxlcyB1c2luZyBub2Nhc2VnbG9iIHdoZW4gZGVwbGlic19jaGVja19tZXRob2QgPSAiZmlsZV9tYWdpYyJdKQogXSkjIF9MVF9DSEVDS19NQUdJQ19NRVRIT0QKIAogCkBAIC0zMjE3LDcgKzM0NTgsMTkgQEAKICAgTk09IiRsdF9jdl9wYXRoX05NIgogZWxzZQogICAjIERpZG4ndCBmaW5kIGFueSBCU0QgY29tcGF0aWJsZSBuYW1lIGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KLSAgQUNfQ0hFQ0tfVE9PTFMoRFVNUEJJTiwgWyJkdW1wYmluIC1zeW1ib2xzIiAibGluayAtZHVtcCAtc3ltYm9scyJdLCA6KQorICBpZiB0ZXN0IC1uICIkRFVNUEJJTiI7IHRoZW4gOgorICAgICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorICBlbHNlCisgICAgQUNfQ0hFQ0tfVE9PTFMoRFVNUEJJTiwgW2R1bXBiaW4gImxpbmsgLWR1bXAiXSwgOikKKyAgICBjYXNlIGAkRFVNUEJJTiAtc3ltYm9scyAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgorICAgICpDT0ZGKikKKyAgICAgIERVTVBCSU49IiREVU1QQklOIC1zeW1ib2xzIgorICAgICAgOzsKKyAgICAqKQorICAgICAgRFVNUEJJTj06CisgICAgICA7OworICAgIGVzYWMKKyAgZmkKICAgQUNfU1VCU1QoW0RVTVBCSU5dKQogICBpZiB0ZXN0ICIkRFVNUEJJTiIgIT0gIjoiOyB0aGVuCiAgICAgTk09IiREVU1QQklOIgpAQCAtMzIzMCwxMyArMzQ4MywxMyBAQAogQUNfQ0FDSEVfQ0hFQ0soW3RoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2VdLCBbbHRfY3Zfbm1faW50ZXJmYWNlXSwKICAgW2x0X2N2X25tX2ludGVyZmFjZT0iQlNEIG5tIgogICBlY2hvICJpbnQgc29tZV92YXJpYWJsZSA9IDA7IiA+IGNvbmZ0ZXN0LiRhY19leHQKLSAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogJGFjX2NvbXBpbGVcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRMSU5FTk86ICRhY19jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCiAgIChldmFsICIkYWNfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCiAgIGNhdCBjb25mdGVzdC5lcnIgPiZBU19NRVNTQUdFX0xPR19GRAotICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6X19vbGluZV9fOiAkTk0gXFxcImNvbmZ0ZXN0LiRhY19vYmpleHRcXFwiXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkTk0gXFxcImNvbmZ0ZXN0LiRhY19vYmpleHRcXFwiXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCiAgIChldmFsICIkTk0gXCJjb25mdGVzdC4kYWNfb2JqZXh0XCIiIDI+Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0KQogICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSAgKGV2YWwgZWNobyAiXCJcJGFzX21lOl9fb2xpbmVfXzogb3V0cHV0XCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCisgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiBvdXRwdXRcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKICAgY2F0IGNvbmZ0ZXN0Lm91dCA+JkFTX01FU1NBR0VfTE9HX0ZECiAgIGlmICRHUkVQICdFeHRlcm5hbC4qc29tZV92YXJpYWJsZScgY29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCiAgICAgbHRfY3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgpAQCAtMzI1MSw2ICszNTA0LDY3IEBACiBkbmwgQUNfREVGVU4oW0FNX1BST0dfTk1dLCBbXSkKIGRubCBBQ19ERUZVTihbQUNfUFJPR19OTV0sIFtdKQogCisjIF9MVF9DSEVDS19TSEFSRURMSUJfRlJPTV9MSU5LTElCCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGhvdyB0byBkZXRlcm1pbmUgdGhlIG5hbWUgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5CisjIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIGxpbmsgbGlicmFyeS4KKyMgIC0tIFBPUlRNRSBmaWxsIGluIHdpdGggdGhlIGR5bmFtaWMgbGlicmFyeSBjaGFyYWN0ZXJpc3RpY3MKK200X2RlZnVuKFtfTFRfQ0hFQ0tfU0hBUkVETElCX0ZST01fTElOS0xJQl0sCitbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKQorbTRfcmVxdWlyZShbX0xUX0RFQ0xfT0JKRFVNUF0pCittNF9yZXF1aXJlKFtfTFRfREVDTF9ETExUT09MXSkKK0FDX0NBQ0hFX0NIRUNLKFtob3cgdG8gYXNzb2NpYXRlIHJ1bnRpbWUgYW5kIGxpbmsgbGlicmFyaWVzXSwKK2x0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kLAorW2x0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSd1bmtub3duJworCitjYXNlICRob3N0X29zIGluCitjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCisgICMgdHdvIGRpZmZlcmVudCBzaGVsbCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBsdG1haW4uc2gKKyAgIyBkZWNpZGUgd2hpY2ggdG8gdXNlIGJhc2VkIG9uIGNhcGFiaWxpdGllcyBvZiAkRExMVE9PTAorICBjYXNlIGAkRExMVE9PTCAtLWhlbHAgMj4mMWAgaW4KKyAgKi0taWRlbnRpZnktc3RyaWN0KikKKyAgICBsdF9jdl9zaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD1mdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWIKKyAgICA7OworICAqKQorICAgIGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPWZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYl9mYWxsYmFjaworICAgIDs7CisgIGVzYWMKKyAgOzsKKyopCisgICMgZmFsbGJhY2s6IGFzc3VtZSBsaW5rbGliIElTIHNoYXJlZGxpYgorICBsdF9jdl9zaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD0iJEVDSE8iCisgIDs7Citlc2FjCitdKQorc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9JGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kCit0ZXN0IC16ICIkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQiICYmIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSRFQ0hPCisKK19MVF9ERUNMKFtdLCBbc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWRdLCBbMV0sCisgICAgW0NvbW1hbmQgdG8gYXNzb2NpYXRlIHNoYXJlZCBhbmQgbGluayBsaWJyYXJpZXNdKQorXSkjIF9MVF9DSEVDS19TSEFSRURMSUJfRlJPTV9MSU5LTElCCisKKworIyBfTFRfUEFUSF9NQU5JRkVTVF9UT09MCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgbG9jYXRlIHRoZSBtYW5pZmVzdCB0b29sCittNF9kZWZ1bihbX0xUX1BBVEhfTUFOSUZFU1RfVE9PTF0sCitbQUNfQ0hFQ0tfVE9PTChNQU5JRkVTVF9UT09MLCBtdCwgOikKK3Rlc3QgLXogIiRNQU5JRkVTVF9UT09MIiAmJiBNQU5JRkVTVF9UT09MPW10CitBQ19DQUNIRV9DSEVDSyhbaWYgJE1BTklGRVNUX1RPT0wgaXMgYSBtYW5pZmVzdCB0b29sXSwgW2x0X2N2X3BhdGhfbWFpbmZlc3RfdG9vbF0sCisgIFtsdF9jdl9wYXRoX21haW5mZXN0X3Rvb2w9bm8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86ICRNQU5JRkVTVF9UT09MICctPyciID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgJE1BTklGRVNUX1RPT0wgJy0/JyAyPmNvbmZ0ZXN0LmVyciA+IGNvbmZ0ZXN0Lm91dAorICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKKyAgaWYgJEdSRVAgJ01hbmlmZXN0IFRvb2wnIGNvbmZ0ZXN0Lm91dCA+IC9kZXYvbnVsbDsgdGhlbgorICAgIGx0X2N2X3BhdGhfbWFpbmZlc3RfdG9vbD15ZXMKKyAgZmkKKyAgcm0gLWYgY29uZnRlc3QqXSkKK2lmIHRlc3QgIngkbHRfY3ZfcGF0aF9tYWluZmVzdF90b29sIiAhPSB4eWVzOyB0aGVuCisgIE1BTklGRVNUX1RPT0w9OgorZmkKK19MVF9ERUNMKFtdLCBbTUFOSUZFU1RfVE9PTF0sIFsxXSwgW01hbmlmZXN0IHRvb2xdKWRubAorXSkjIF9MVF9QQVRIX01BTklGRVNUX1RPT0wKKwogCiAjIExUX0xJQl9NCiAjIC0tLS0tLS0tCkBAIC0zMjU5LDcgKzM1NzMsNyBAQAogW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKIExJQk09CiBjYXNlICRob3N0IGluCi0qLSotYmVvcyogfCAqLSotY3lnd2luKiB8ICotKi1wdzMyKiB8ICotKi1kYXJ3aW4qKQorKi0qLWJlb3MqIHwgKi0qLWNlZ2NjKiB8ICotKi1jeWd3aW4qIHwgKi0qLWhhaWt1KiB8ICotKi1wdzMyKiB8ICotKi1kYXJ3aW4qKQogICAjIFRoZXNlIHN5c3RlbSBkb24ndCBoYXZlIGxpYm0sIG9yIGRvbid0IG5lZWQgaXQKICAgOzsKICotbmNyLXN5c3Y0LjMqKQpAQCAtMzI4Nyw3ICszNjAxLDEyIEBACiBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9CiAKIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0gIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWcsICQxKT0nIC1mbm8tYnVpbHRpbicKKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KKyAgbnZjYyopCisgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLVhjb21waWxlciAtZm5vLWJ1aWx0aW4nIDs7CisgICopCisgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJyA7OworICBlc2FjCiAKICAgX0xUX0NPTVBJTEVSX09QVElPTihbaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1mbm8tcnR0aSAtZm5vLWV4Y2VwdGlvbnNdLAogICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zLApAQCAtMzMwNCw2ICszNjIzLDcgQEAKIG00X2RlZnVuKFtfTFRfQ01EX0dMT0JBTF9TWU1CT0xTXSwKIFtBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCiBBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKK0FDX1JFUVVJUkUoW0FDX1BST0dfQVdLXSlkbmwKIEFDX1JFUVVJUkUoW0xUX1BBVEhfTk1dKWRubAogQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCiBtNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubApAQCAtMzM3MSw4ICszNjkxLDggQEAKIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCiAKICMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFuZCBzeW1ib2wgYWRkcmVzcwotbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKSAkLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKLWx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKSAkLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwobGliW1teIF1dKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcImxpYlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbW14gXV0qXClbWyBdXSokLyAge1xcXCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW1teIF1dKlwpIFwoW1teIF1dKlwpJC8gIHtcIlwyXCIsICh2b2lkICopIFwmXDJ9LC9wJyIKK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXg9InNlZCAtbiAtZSAncy9eOiBcKFtbXiBdXSpcKVtbIF1dKiQvICB7XFxcIlwxXFxcIiwgKHZvaWQgKikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChsaWJbW14gXV0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14kc3ltY29kZSogXChbW14gXV0qXCkgXChbW14gXV0qXCkkLyAge1wibGliXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIgogCiAjIEhhbmRsZSBDUkxGIGluIG1pbmd3IHRvb2wgY2hhaW4KIG9wdF9jcj0KQEAgLTMzOTYsNiArMzcxNiw3IEBACiAgICAgIyB3aGljaCBzdGFydCB3aXRoIEAgb3IgPy4KICAgICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSIkQVdLIFsnIlwKICIgICAgIHtsYXN0X3NlY3Rpb249c2VjdGlvbjsgc2VjdGlvbj1cJCAzfTsiXAorIiAgICAgL15DT0ZGIFNZTUJPTCBUQUJMRS97Zm9yKGkgaW4gaGlkZSkgZGVsZXRlIGhpZGVbaV19OyJcCiAiICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBhbnkpL3toaWRlW2xhc3Rfc2VjdGlvbl09MX07IlwKICIgICAgIFwkIDAhfi9FeHRlcm5hbCAqXHwve25leHR9OyJcCiAiICAgICAvIDArIFVOREVGIC97bmV4dH07IC8gVU5ERUYgXChbXnxdXCkqKCkve25leHR9OyJcCkBAIC0zNDA4LDYgKzM3MjksNyBAQAogICBlbHNlCiAgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1lICdzL14uKltbCSBdXVwoJHN5bWNvZGUkc3ltY29kZSpcKVtbCSBdXVtbCSBdXSokYWNfc3ltcHJmeCRzeW1wYXQkb3B0X2NyJC8kc3lteGZybS9wJyIKICAgZmkKKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0iJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUgfCBzZWQgJy8gX19nbnVfbHRvL2QnIgogCiAgICMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhlIHBpcGUgd29ya3MgY29ycmVjdGx5LgogICBwaXBlX3dvcmtzPW5vCkBAIC0zNDI5LDcgKzM3NTEsNyBAQAogICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgogICAgICMgTm93IHRyeSB0byBncmFiIHRoZSBzeW1ib2xzLgogICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCi0gICAgaWYgQUNfVFJZX0VWQUwoTk0gY29uZnRlc3QuJGFjX29iamV4dCBcfCAkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSBcPiAkbmxpc3QpICYmIHRlc3QgLXMgIiRubGlzdCI7IHRoZW4KKyAgICBpZiBBQ19UUllfRVZBTChOTSBjb25mdGVzdC4kYWNfb2JqZXh0IFx8ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgXD4gJG5saXN0KSAmJiB0ZXN0IC1zICIkbmxpc3QiOyB0aGVuCiAgICAgICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0LgogICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVuaXEgPiAiJG5saXN0IlQ7IHRoZW4KIAltdiAtZiAiJG5saXN0IlQgIiRubGlzdCIKQEAgLTM0NDEsNiArMzc2MywxOCBAQAogICAgICAgaWYgJEdSRVAgJyBubV90ZXN0X3ZhciQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KIAlpZiAkR1JFUCAnIG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KIAkgIGNhdCA8PF9MVF9FT0YgPiBjb25mdGVzdC4kYWNfZXh0CisvKiBLZWVwIHRoaXMgY29kZSBpbiBzeW5jIGJldHdlZW4gbGlidG9vbC5tNCwgbHRtYWluLCBsdF9zeXN0ZW0uaCwgYW5kIHRlc3RzLiAgKi8KKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9fKSB8fCBkZWZpbmVkKF9XSU4zMl9XQ0UpCisvKiBEQVRBIGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMyIGNvbid0IGJlIGNvbnN0LCBiZWNhdXNlIHJ1bnRpbWUKKyAgIHJlbG9jYXRpb25zIGFyZSBwZXJmb3JtZWQgLS0gc2VlIGxkJ3MgZG9jdW1lbnRhdGlvbiBvbiBwc2V1ZG8tcmVsb2NzLiAgKi8KKyMgZGVmaW5lIExUQCZ0QF9ETFNZTV9DT05TVAorI2VsaWYgZGVmaW5lZChfX29zZl9fKQorLyogVGhpcyBzeXN0ZW0gZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggcmVsb2NhdGlvbnMgaW4gY29uc3QgZGF0YS4gICovCisjIGRlZmluZSBMVEAmdEBfRExTWU1fQ09OU1QKKyNlbHNlCisjIGRlZmluZSBMVEAmdEBfRExTWU1fQ09OU1QgY29uc3QKKyNlbmRpZgorCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewogI2VuZGlmCkBAIC0zNDUyLDcgKzM3ODYsNyBAQAogCSAgY2F0IDw8X0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0CiAKIC8qIFRoZSBtYXBwaW5nIGJldHdlZW4gc3ltYm9sIG5hbWVzIGFuZCBzeW1ib2xzLiAgKi8KLWNvbnN0IHN0cnVjdCB7CitMVEAmdEBfRExTWU1fQ09OU1Qgc3RydWN0IHsKICAgY29uc3QgY2hhciAqbmFtZTsKICAgdm9pZCAgICAgICAqYWRkcmVzczsKIH0KQEAgLTM0NzgsMTUgKzM4MTIsMTUgQEAKIF9MVF9FT0YKIAkgICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCiAJICBtdiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0c3RtLiRhY19vYmpleHQKLQkgIGx0X3NhdmVfTElCUz0iJExJQlMiCi0JICBsdF9zYXZlX0NGTEFHUz0iJENGTEFHUyIKKwkgIGx0X2dsb2JzeW1fc2F2ZV9MSUJTPSRMSUJTCisJICBsdF9nbG9ic3ltX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKIAkgIExJQlM9ImNvbmZ0c3RtLiRhY19vYmpleHQiCiAJICBDRkxBR1M9IiRDRkxBR1MkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpIgogCSAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgogCSAgICBwaXBlX3dvcmtzPXllcwogCSAgZmkKLQkgIExJQlM9IiRsdF9zYXZlX0xJQlMiCi0JICBDRkxBR1M9IiRsdF9zYXZlX0NGTEFHUyIKKwkgIExJQlM9JGx0X2dsb2JzeW1fc2F2ZV9MSUJTCisJICBDRkxBR1M9JGx0X2dsb2JzeW1fc2F2ZV9DRkxBR1MKIAllbHNlCiAJICBlY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JkFTX01FU1NBR0VfTE9HX0ZECiAJZmkKQEAgLTM1MTksNiArMzg1MywxMyBAQAogICBBQ19NU0dfUkVTVUxUKG9rKQogZmkKIAorIyBSZXNwb25zZSBmaWxlIHN1cHBvcnQuCitpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBkdW1wYmluIjsgdGhlbgorICBubV9maWxlX2xpc3Rfc3BlYz0nQCcKK2VsaWYgJE5NIC0taGVscCAyPi9kZXYvbnVsbCB8IGdyZXAgJ1tbQF1dRklMRScgPi9kZXYvbnVsbDsgdGhlbgorICBubV9maWxlX2xpc3Rfc3BlYz0nQCcKK2ZpCisKIF9MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3BpcGVdLCBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sIFsxXSwKICAgICBbVGFrZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiByYXcgc3ltYm9scyBhbmQgQyBuYW1lc10pCiBfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jZGVjbF0sIFtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbF0sIFsxXSwKQEAgLTM1MjksNiArMzg3MCw4IEBACiBfTFRfREVDTChbZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4XSwKICAgICBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeF0sIFsxXSwKICAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyIHdoZW4gbGliIHByZWZpeCBpcyBuZWVkZWRdKQorX0xUX0RFQ0woW10sIFtubV9maWxlX2xpc3Rfc3BlY10sIFsxXSwKKyAgICBbU3BlY2lmeSBmaWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzIGZvciAkTk1dKQogXSkgIyBfTFRfQ01EX0dMT0JBTF9TWU1CT0xTCiAKIApAQCAtMzU0MCw3ICszODgzLDYgQEAKIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0KIAotQUNfTVNHX0NIRUNLSU5HKFtmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQ10pCiBtNF9pZihbJDFdLCBbQ1hYXSwgWwogICAjIEMrKyBzcGVjaWZpYyBjYXNlcyBmb3IgcGljLCBzdGF0aWMsIHdsLCBldGMuCiAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCkBAIC0zNTkxLDYgKzM5MzMsMTEgQEAKICAgICAgICMgREpHUFAgZG9lcyBub3Qgc3VwcG9ydCBzaGFyZWQgbGlicmFyaWVzIGF0IGFsbAogICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQogICAgICAgOzsKKyAgICBoYWlrdSopCisgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSGFpa3UuCisgICAgICAjIFRoZSAiLXN0YXRpYyIgZmxhZyBleGlzdHMsIGJ1dCBpcyBicm9rZW4uCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9CisgICAgICA7OwogICAgIGludGVyaXhbWzMtOV1dKikKICAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNvZGUuCiAgICAgICAjIEluc3RlYWQsIHdlIHJlbG9jYXRlIHNoYXJlZCBsaWJyYXJpZXMgYXQgcnVudGltZS4KQEAgLTM2NDAsNiArMzk4NywxMiBAQAogCSAgOzsKIAllc2FjCiAJOzsKKyAgICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdjYyopCisJIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBpcyBiZWluZworCSMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3VsZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCisJbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAorCSAgW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLURETExfRVhQT1JUJ10pCisJOzsKICAgICAgIGRndXgqKQogCWNhc2UgJGNjX2Jhc2VuYW1lIGluCiAJICBlYysrKikKQEAgLTM2OTYsNyArNDA0OSw3IEBACiAJICAgIDs7CiAJZXNhYwogCTs7Ci0gICAgICBsaW51eCogfCBrKmJzZCotZ251KQorICAgICAgbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQogCWNhc2UgJGNjX2Jhc2VuYW1lIGluCiAJICBLQ0MqKQogCSAgICAjIEtBSSBDKysgQ29tcGlsZXIKQEAgLTM3MjksOCArNDA4Miw4IEBACiAJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KIAkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKIAkgICAgOzsKLQkgIHhsYyogfCB4bEMqKQotCSAgICAjIElCTSBYTCA4LjAgb24gUFBDCisJICB4bGMqIHwgeGxDKiB8IGJneGxbW2NDXV0qIHwgbXBpeGxbW2NDXV0qKQorCSAgICAjIElCTSBYTCA4LjAsIDkuMCBvbiBQUEMgYW5kIEJsdWVHZW5lCiAJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwogCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xcGljJwogCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1xc3RhdGljbGluaycKQEAgLTM3NjAsNyArNDExMyw3IEBACiAJICAgIDs7CiAJZXNhYwogCTs7Ci0gICAgICBuZXRic2QqKQorICAgICAgbmV0YnNkKiB8IG5ldGJzZGVsZiotZ251KQogCTs7CiAgICAgICAqcW54KiB8ICpudG8qKQogICAgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90aGVyd2lzZQpAQCAtMzc5Miw3ICs0MTQ1LDcgQEAKIAk7OwogICAgICAgc29sYXJpcyopCiAJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLQkgIENDKikKKwkgIENDKiB8IHN1bkNDKikKIAkgICAgIyBTdW4gQysrIDQuMiwgNS54IGFuZCBDZW50ZXJsaW5lIEMrKwogCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwogCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwpAQCAtMzg5Niw2ICs0MjQ5LDEyIEBACiAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mbm8tY29tbW9uJwogICAgICAgOzsKIAorICAgIGhhaWt1KikKKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciBIYWlrdS4KKyAgICAgICMgVGhlICItc3RhdGljIiBmbGFnIGV4aXN0cywgYnV0IGlzIGJyb2tlbi4KKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0KKyAgICAgIDs7CisKICAgICBocHV4KikKICAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciA2NC1iaXQgUEEgSFAtVVgsIGJ1dCBub3QgZm9yIDMyLWJpdAogICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCkBAIC0zOTM4LDYgKzQyOTcsMTUgQEAKICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCiAgICAgICA7OwogICAgIGVzYWMKKworICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgbnZjYyopICMgQ3VkYSBDb21waWxlciBEcml2ZXIgMi4yCisgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVhsaW5rZXIgJworICAgICAgaWYgdGVzdCAtbiAiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSI7IHRoZW4KKyAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSItWGNvbXBpbGVyICRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSkiCisgICAgICBmaQorICAgICAgOzsKKyAgICBlc2FjCiAgIGVsc2UKICAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFncyB0aHJvdWdoIHRoZSBzeXN0ZW0gY29tcGlsZXIuCiAgICAgY2FzZSAkaG9zdF9vcyBpbgpAQCAtMzk4MCw3ICs0MzQ4LDcgQEAKICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCiAgICAgICA7OwogCi0gICAgbGludXgqIHwgaypic2QqLWdudSkKKyAgICBsaW51eCogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCiAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgogICAgICAgIyBvbGQgSW50ZWwgZm9yIHg4Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMuCiAgICAgICBlY2MqKQpAQCAtNDAwMSw3ICs0MzY5LDEzIEBACiAJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctLXNoYXJlZCcKIAlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy0tc3RhdGljJwogCTs7Ci0gICAgICBwZ2NjKiB8IHBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikKKyAgICAgIG5hZ2ZvciopCisJIyBOQUcgRm9ydHJhbiBjb21waWxlcgorCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsLVdsLCwnCisJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctUElDJworCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCisJOzsKKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqIHwgcGdmb3J0cmFuKikKICAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKIAkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBwcm9qZWN0KQogCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwpAQCAtNDAxMywyNSArNDM4Nyw0MCBAQAogICAgICAgICAjIEFsbCBBbHBoYSBjb2RlIGlzIFBJQy4KICAgICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKICAgICAgICAgOzsKLSAgICAgIHhsKikKLQkjIElCTSBYTCBDIDguMC9Gb3J0cmFuIDEwLjEgb24gUFBDCisgICAgICB4bCogfCBiZ3hsKiB8IGJnZiogfCBtcGl4bCopCisJIyBJQk0gWEwgQyA4LjAvRm9ydHJhbiAxMC4xLCAxMS4xIG9uIFBQQyBhbmQgQmx1ZUdlbmUKIAlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKIAlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1xcGljJwogCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXFzdGF0aWNsaW5rJwogCTs7CiAgICAgICAqKQogCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgorCSpTdW5cIENlcmVzXCBGb3J0cmFuKiB8ICpTdW4qRm9ydHJhbipcIFtbMS03XV0uKiB8ICpTdW4qRm9ydHJhbipcIDguW1swLTNdXSopCisJICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCisJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCisJICA7OworCSpTdW5cIEYqIHwgKlN1bipGb3J0cmFuKikKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCisJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJworCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKKwkgIDs7CiAJKlN1blwgQyopCiAJICAjIFN1biBDIDUuOQogCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKIAkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCiAJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKIAkgIDs7Ci0JKlN1blwgRiopCi0JICAjIFN1biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2VyCi0JICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJworICAgICAgICAqSW50ZWwqXCBbW0NGXV0qQ29tcGlsZXIqKQorCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCisJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJworCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctc3RhdGljJworCSAgOzsKKwkqUG9ydGxhbmRcIEdyb3VwKikKKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJworCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZnBpYycKIAkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0JICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nJwogCSAgOzsKIAllc2FjCiAJOzsKQEAgLTQwNjMsNyArNDQ1Miw3IEBACiAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwogICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0gICAgICBmNzcqIHwgZjkwKiB8IGY5NSopCisgICAgICBmNzcqIHwgZjkwKiB8IGY5NSogfCBzdW5mNzcqIHwgc3VuZjkwKiB8IHN1bmY5NSopCiAJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICc7OwogICAgICAgKikKIAlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCc7OwpAQCAtNDEyMCw5ICs0NTA5LDExIEBACiAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIkX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpQCZ0QG00X2lmKFskMV0sW10sWyAtRFBJQ10sW200X2lmKFskMV0sW0NYWF0sWyAtRFBJQ10sW10pXSkiCiAgICAgOzsKIGVzYWMKLUFDX01TR19SRVNVTFQoWyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSldKQotX0xUX1RBR0RFQ0woW3dsXSwgW2x0X3Byb2dfY29tcGlsZXJfd2xdLCBbMV0sCi0JW0hvdyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXJdKQorCitBQ19DQUNIRV9DSEVDSyhbZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUNdLAorICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYywgJDEpXSwKKyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9waWMsICQxKT0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpXSkKK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0kX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYywgJDEpCiAKICMKICMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KQEAgLTQxNDEsNiArNDUzMiw4IEBACiBfTFRfVEFHREVDTChbcGljX2ZsYWddLCBbbHRfcHJvZ19jb21waWxlcl9waWNdLCBbMV0sCiAJW0FkZGl0aW9uYWwgY29tcGlsZXIgZmxhZ3MgZm9yIGJ1aWxkaW5nIGxpYnJhcnkgb2JqZWN0c10pCiAKK19MVF9UQUdERUNMKFt3bF0sIFtsdF9wcm9nX2NvbXBpbGVyX3dsXSwgWzFdLAorCVtIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyXSkKICMKICMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KICMKQEAgLTQxNjEsNiArNDU1NCw3IEBACiBtNF9kZWZ1bihbX0xUX0xJTktFUl9TSExJQlNdLAogW0FDX1JFUVVJUkUoW0xUX1BBVEhfTERdKWRubAogQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5sCittNF9yZXF1aXJlKFtfTFRfUEFUSF9NQU5JRkVTVF9UT09MXSlkbmwKIG00X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAogbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAogbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKQEAgLTQxNjksMjcgKzQ1NjMsNDAgQEAKIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKIG00X2lmKFskMV0sIFtDWFhdLCBbCiAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQogICBjYXNlICRob3N0X29zIGluCiAgIGFpeFtbNC05XV0qKQogICAgICMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgogICAgICMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKyAgICAjIEFsc28sIEFJWCBubSB0cmVhdHMgd2VhayBkZWZpbmVkIHN5bWJvbHMgbGlrZSBvdGhlciBnbG9iYWwgZGVmaW5lZAorICAgICMgc3ltYm9scywgd2hlcmVhcyBHTlUgbm0gbWFya3MgdGhlbSBhcyAiVyIuCiAgICAgaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotICAgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSB8fCAoXCQgMiA9PSAiVyIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKICAgICBlbHNlCiAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKICAgICBmaQogICAgIDs7CiAgIHB3MzIqKQogICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSIkbHRkbGxfY21kcyIKLSAgOzsKKyAgICA7OwogICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2MqKQotICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERBVEEvOy9eLipbWyBdXV9fbm1fXy9zL14uKltbIF1dX19ubV9fXChbW14gXV0qXClbWyBdXVtbXiBdXSovXDEgREFUQS87L15JW1sgXV0vZDsvXltbQUlUV11dW1sgXV0vcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSAgOzsKKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgorICAgIGNsKikKKyAgICAgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9J19OVUxMX0lNUE9SVF9ERVNDUklQVE9SfF9JTVBPUlRfREVTQ1JJUFRPUl8uKicKKyAgICAgIDs7CisgICAgKikKKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERBVEEvO3MvXi4qW1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1teIF1dKi9cMSBEQVRBLzsvXklbWyBdXS9kOy9eW1tBSVRXXV1bWyBdXS9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworICAgICAgX0xUX1RBR1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKT1bJ1tfXStHTE9CQUxfT0ZGU0VUX1RBQkxFX3xbX10rR0xPQkFMX19bRklEXV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxbQS1aYS16MC05X10rX2RsbF9pbmFtZSddCisgICAgICA7OworICAgIGVzYWMKKyAgICA7OworICBsaW51eCogfCBrKmJzZCotZ251IHwgZ251KikKKyAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT1ubworICAgIDs7CiAgICopCiAgICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSAgOzsKKyAgICA7OwogICBlc2FjCi0gIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQogXSwgWwogICBydW5wYXRoX3Zhcj0KICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQpAQCAtNDIwNCw3ICs0NjExLDYgQEAKICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwogICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCiAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9CiAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCiAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3VwcG9ydGVkCkBAIC00MjQ5LDEwICs0NjU1LDM5IEBACiAgIG9wZW5ic2QqKQogICAgIHdpdGhfZ251X2xkPW5vCiAgICAgOzsKKyAgbGludXgqIHwgaypic2QqLWdudSB8IGdudSopCisgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9bm8KKyAgICA7OwogICBlc2FjCiAKICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKKworICAjIE9uIHNvbWUgdGFyZ2V0cywgR05VIGxkIGlzIGNvbXBhdGlibGUgZW5vdWdoIHdpdGggdGhlIG5hdGl2ZSBsaW5rZXIKKyAgIyB0aGF0IHdlJ3JlIGJldHRlciBvZmYgdXNpbmcgdGhlIG5hdGl2ZSBpbnRlcmZhY2UgZm9yIGJvdGguCisgIGx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlPW5vCiAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KKyAgICBjYXNlICRob3N0X29zIGluCisgICAgICBhaXgqKQorCSMgVGhlIEFJWCBwb3J0IG9mIEdOVSBsZCBoYXMgYWx3YXlzIGFzcGlyZWQgdG8gY29tcGF0aWJpbGl0eQorCSMgd2l0aCB0aGUgbmF0aXZlIGxpbmtlci4gIEhvd2V2ZXIsIGFzIHRoZSB3YXJuaW5nIGluIHRoZSBHTlUgbGQKKwkjIGJsb2NrIHNheXMsIHZlcnNpb25zIGJlZm9yZSAyLjE5LjUqIGNvdWxkbid0IHJlYWxseSBjcmVhdGUgd29ya2luZworCSMgc2hhcmVkIGxpYnJhcmllcywgcmVnYXJkbGVzcyBvZiB0aGUgaW50ZXJmYWNlIHVzZWQuCisJY2FzZSBgJExEIC12IDI+JjFgIGluCisJICAqXCBcKEdOVVwgQmludXRpbHNcKVwgMi4xOS41KikgOzsKKwkgICpcIFwoR05VXCBCaW51dGlsc1wpXCAyLltbMi05XV0qKSA7OworCSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIFtbMy05XV0qKSA7OworCSAgKikKKwkgICAgbHRfdXNlX2dudV9sZF9pbnRlcmZhY2U9eWVzCisJICAgIDs7CisJZXNhYworCTs7CisgICAgICAqKQorCWx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlPXllcworCTs7CisgICAgZXNhYworICBmaQorCisgIGlmIHRlc3QgIiRsdF91c2VfZ251X2xkX2ludGVyZmFjZSIgPSB5ZXM7IHRoZW4KICAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBlbXB0eQogICAgIHdsYXJjPScke3dsfScKIApAQCAtNDI3MCw2ICs0NzA1LDcgQEAKICAgICBmaQogICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubwogICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgorICAgICAgKkdOVVwgZ29sZCopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKICAgICAgICpcIFtbMDFdXS4qIHwgKlwgMi5bWzAtOV1dLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCiAgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgogICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgpAQCAtNDI4NSwxMSArNDcyMSwxMiBAQAogCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KIAljYXQgPDxfTFRfRU9GIDE+JjIKIAotKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuOS4xLCBpcyByZXBvcnRlZAorKioqIFdhcm5pbmc6IHRoZSBHTlUgbGlua2VyLCBhdCBsZWFzdCB1cCB0byByZWxlYXNlIDIuMTksIGlzIHJlcG9ydGVkCiAqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KICoqKiBUaGVyZWZvcmUsIGxpYnRvb2wgaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIElmIHlvdQotKioqIHJlYWxseSBjYXJlIGZvciBzaGFyZWQgbGlicmFyaWVzLCB5b3UgbWF5IHdhbnQgdG8gbW9kaWZ5IHlvdXIgUEFUSAotKioqIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZCwgYW5kIHRoZW4gcmVzdGFydC4KKyoqKiByZWFsbHkgY2FyZSBmb3Igc2hhcmVkIGxpYnJhcmllcywgeW91IG1heSB3YW50IHRvIGluc3RhbGwgYmludXRpbHMKKyoqKiAyLjIwIG9yIGFib3ZlLCBvciBtb2RpZnkgeW91ciBQQVRIIHNvIHRoYXQgYSBub24tR05VIGxpbmtlciBpcyBmb3VuZC4KKyoqKiBZb3Ugd2lsbCB0aGVuIG5lZWQgdG8gcmVzdGFydCB0aGUgY29uZmlndXJhdGlvbiBwcm9jZXNzLgogCiBfTFRfRU9GCiAgICAgICBmaQpAQCAtNDMyNSwxMCArNDc2MiwxMiBAQAogICAgICAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKICAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCiAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJworICAgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1hbGwtc3ltYm9scycKICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAogICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT1ubwogICAgICAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCi0gICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltbQUlUV11dW1sgXV0vcy8uKltbIF1dLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9cMSBEQVRBLztzL14uKltbIF1dX19ubV9fXChbW14gXV0qXClbWyBdXVtbXiBdXSovXDEgREFUQS87L15JW1sgXV0vZDsvXltbQUlUV11dW1sgXV0vcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKyAgICAgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydbX10rR0xPQkFMX09GRlNFVF9UQUJMRV98W19dK0dMT0JBTF9fW0ZJRF1fLip8W19dK2hlYWRfW0EtWmEtejAtOV9dK19kbGx8W0EtWmEtejAtOV9dK19kbGxfaW5hbWUnXQogCiAgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwpAQCAtNDM0Niw2ICs0Nzg1LDExIEBACiAgICAgICBmaQogICAgICAgOzsKIAorICAgIGhhaWt1KikKKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisgICAgICA7OworCiAgICAgaW50ZXJpeFtbMy05XV0qKQogICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwogICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KQEAgLTQzNjEsNyArNDgwNSw3IEBACiAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nc2VkICJzLF4sXywiICRleHBvcnRfc3ltYm9scyA+JG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW1+JENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1oLCRzb25hbWUgJHt3bH0tLXJldGFpbi1zeW1ib2xzLWZpbGUsJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHBzeW0gJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIgXCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKICAgICAgIDs7CiAKLSAgICBnbnUqIHwgbGludXgqIHwgdHBmKiB8IGsqYnNkKi1nbnUpCisgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCiAgICAgICB0bXBfZGlldD1ubwogICAgICAgaWYgdGVzdCAiJGhvc3Rfb3MiID0gbGludXgtZGlldGxpYmM7IHRoZW4KIAljYXNlICRjY19iYXNlbmFtZSBpbgpAQCAtNDM3MSwxNSArNDgxNSwxNiBAQAogICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgJEVHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGwgXAogCSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8KICAgICAgIHRoZW4KLQl0bXBfYWRkZmxhZz0KKwl0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKIAl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcKIAljYXNlICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4KICAgICAgICAgcGdjYyopCQkJCSMgUG9ydGxhbmQgR3JvdXAgQyBjb21waWxlcgotCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwogCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcnCiAJICA7OwotCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KikJIyBQb3J0bGFuZCBHcm91cCBmNzcgYW5kIGY5MCBjb21waWxlcnMKLQkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCXBnZjc3KiB8IHBnZjkwKiB8IHBnZjk1KiB8IHBnZm9ydHJhbiopCisJCQkJCSMgUG9ydGxhbmQgR3JvdXAgZjc3IGFuZCBmOTAgY29tcGlsZXJzCisJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwogCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcgLU1ub21haW4nIDs7CiAJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0CiAJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7CkBAIC00MzkwLDEzICs0ODM1LDE3IEBACiAJbGY5NSopCQkJCSMgTGFoZXkgRm9ydHJhbiA4LjEKIAkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KIAkgIHRtcF9zaGFyZWRmbGFnPSctLXNoYXJlZCcgOzsKLQl4bFtbY0NdXSopCQkJIyBJQk0gWEwgQyA4LjAgb24gUFBDIChkZWFsIHdpdGggeGxmIGJlbG93KQorCXhsW1tjQ11dKiB8IGJneGxbW2NDXV0qIHwgbXBpeGxbW2NDXV0qKSAjIElCTSBYTCBDIDguMCBvbiBQUEMgKGRlYWwgd2l0aCB4bGYgYmVsb3cpCiAJICB0bXBfc2hhcmVkZmxhZz0nLXFta3Nocm9iaicKIAkgIHRtcF9hZGRmbGFnPSA7OworCW52Y2MqKQkjIEN1ZGEgQ29tcGlsZXIgRHJpdmVyIDIuMgorCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCisJICA7OwogCWVzYWMKIAljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KIAkqU3VuXCBDKikJCQkjIFN1biBDIDUuOQotCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRFQ0hPIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKIAkgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCiAJICB0bXBfc2hhcmVkZmxhZz0nLUcnIDs7CiAJKlN1blwgRiopCQkJIyBTdW4gRm9ydHJhbiA4LjMKQEAgLTQ0MTIsMTcgKzQ4NjEsMTYgQEAKICAgICAgICAgZmkKIAogCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0JeGxmKikKKwl4bGYqIHwgYmdmKiB8IGJneGxmKiB8IG1waXhsZiopCiAJICAjIElCTSBYTCBGb3J0cmFuIDEwLjEgb24gUFBDIGNhbm5vdCBjcmVhdGUgc2hhcmVkIGxpYnMgaXRzZWxmCiAJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAtLW5vLXdob2xlLWFyY2hpdmUnCi0JICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KLQkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPSctcnBhdGggJGxpYmRpcicKLQkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLW8gJGxpYicKKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtbyAkbGliJwogCSAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgogCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KIAkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CiAJICAgICAgZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0JICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLXZlcnNpb24tc2NyaXB0ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwogCSAgZmkKIAkgIDs7CiAJZXNhYwpAQCAtNDQzMSwxMyArNDg3OSwxMyBAQAogICAgICAgZmkKICAgICAgIDs7CiAKLSAgICBuZXRic2QqKQorICAgIG5ldGJzZCogfCBuZXRic2RlbGYqLWdudSkKICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCiAJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW8gJGxpYicKIAl3bGFyYz0KICAgICAgIGVsc2UKLQlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCiAgICAgICBmaQogICAgICAgOzsKIApAQCAtNDQ1NSw4ICs0OTAzLDggQEAKIAogX0xUX0VPRgogICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwogICAgICAgZWxzZQogCV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KICAgICAgIGZpCkBAIC00NTAyLDggKzQ5NTAsOCBAQAogCiAgICAgKikKICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLQlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCiAgICAgICBlbHNlCiAJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwogICAgICAgZmkKQEAgLTQ1NDMsOCArNDk5MSwxMCBAQAogICAgICAgZWxzZQogCSMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgogCSMgLUMgbWVhbnMgZGVtYW5nbGUgdG8gQUlYIG5tLCBidXQgbWVhbnMgZG9uJ3QgZGVtYW5nbGUgd2l0aCBHTlUgbm0KKwkjIEFsc28sIEFJWCBubSB0cmVhdHMgd2VhayBkZWZpbmVkIHN5bWJvbHMgbGlrZSBvdGhlciBnbG9iYWwKKwkjIGRlZmluZWQgc3ltYm9scywgd2hlcmVhcyBHTlUgbm0gbWFya3MgdGhlbSBhcyAiVyIuCiAJaWYgJE5NIC1WIDI+JjEgfCAkR1JFUCAnR05VJyA+IC9kZXYvbnVsbDsgdGhlbgotCSAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAtQnBnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKKwkgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21kcywgJDEpPSckTk0gLUJwZyAkbGlib2JqcyAkY29udmVuaWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwgKFwkIDIgPT0gIkIiKSB8fCAoXCQgMiA9PSAiVyIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKIAllbHNlCiAJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKIAlmaQpAQCAtNDYwNiw2ICs1MDU2LDcgQEAKIAlpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KIAkgIHNoYXJlZF9mbGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwogCWZpCisJX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9bm8KICAgICAgIGVsc2UKIAkjIG5vdCB1c2luZyBnY2MKIAlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgpAQCAtNDYzMSw5ICs1MDgyLDkgQEAKIAlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Jy1iZXJvaycKICAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCiAgICAgICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KLSAgICAgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgKKyAgICAgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgoWyQxXSkKICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0gICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAkRUNITyAiWCR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKKyAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGZ1bmNfZWNob19hbGwgIiR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCiAgICAgICBlbHNlCiAJaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KIAkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKQEAgLTQ2NDIsMTQgKzUwOTMsMTkgQEAKIAllbHNlCiAJICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgogCSAjIGVtcHR5IGV4ZWN1dGFibGUuCi0JIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisJIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYKFskMV0pCiAJIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgogCSAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKIAkgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KIAkgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJwogCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tYmVyb2snCi0JICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKLQkgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJworCSAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgorCSAgICAjIFdlIG9ubHkgdXNlIHRoaXMgY29kZSBmb3IgR05VIGxkcyB0aGF0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlLgorCSAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCSAgZWxzZQorCSAgICAjIEV4cG9ydGVkIHN5bWJvbHMgY2FuIGJlIHB1bGxlZCBpbnRvIHNoYXJlZCBvYmplY3RzIGZyb20gYXJjaGl2ZXMKKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisJICBmaQogCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcwogCSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkIGxpYnJhcmllcy4KIAkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJHt3bH0tYm5vZW50cnkgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWJFOiRleHBvcnRfc3ltYm9scyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9fiRBUiAkQVJfRkxBR1MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUkcmVsZWFzZS5hICRvdXRwdXRfb2JqZGlyLyRzb25hbWUnCkBAIC00NjgxLDIwICs1MTM3LDY0IEBACiAgICAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgogICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwogICAgICAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScgJwotICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0gICAgICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgotICAgICAgbGliZXh0PWxpYgotICAgICAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCi0gICAgICBzaHJleHRfY21kcz0iLmRsbCIKLSAgICAgICMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KLSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJvYmpzICRjb21waWxlcl9mbGFncyBgJEVDSE8gIlgkZGVwbGlicyIgfCAkWHNlZCAtZSAnXCcncy8gLWxjJC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotICAgICAgIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KLSAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPSd0cnVlJwotICAgICAgIyBGSVhNRTogU2hvdWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KLSAgICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSdsaWIgLU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCi0gICAgICBfTFRfVEFHVkFSKGZpeF9zcmNmaWxlX3BhdGgsICQxKT0nYGN5Z3BhdGggLXcgIiRzcmNmaWxlImAnCi0gICAgICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAgICBjbCopCisJIyBOYXRpdmUgTVNWQworCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScgJworCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAorCV9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCisJX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPSdAJworCSMgVGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMuCisJbGliZXh0PWxpYgorCSMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgorCXNocmV4dF9jbWRzPSIuZGxsIgorCSMgRklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgJGRlcGxpYnMgLVdsLC1kbGx+bGlua25hbWVzPScKKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0naWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KKwkgICAgc2VkIC1uIC1lICdzL1xcXFxcXFwoLipcXFxcXFxcKS8tbGlua1xcXCAtRVhQT1JUOlxcXFxcXFwxLycgLWUgJzFcXFwhcCcgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cDsKKwkgIGVsc2UKKwkgICAgc2VkIC1lICdzL1xcXFxcXFwoLipcXFxcXFxcKS8tbGlua1xcXCAtRVhQT1JUOlxcXFxcXFwxLycgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cDsKKwkgIGZpfgorCSAgJENDIC1vICR0b29sX291dHB1dF9vYmpkaXIkc29uYW1lICRsaWJvYmpzICRjb21waWxlcl9mbGFncyAkZGVwbGlicyAiQCR0b29sX291dHB1dF9vYmpkaXIkc29uYW1lLmV4cCIgLVdsLC1ETEwsLUlNUExJQjoiJHRvb2xfb3V0cHV0X29iamRpciRsaWJuYW1lLmRsbC5saWIifgorCSAgbGlua25hbWVzPScKKwkjIFRoZSBsaW5rZXIgd2lsbCBub3QgYXV0b21hdGljYWxseSBidWlsZCBhIHN0YXRpYyBsaWIgaWYgd2UgYnVpbGQgYSBETEwuCisJIyBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKKwlfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKKwlfTFRfVEFHVkFSKGV4Y2x1ZGVfZXhwc3ltcywgJDEpPSdfTlVMTF9JTVBPUlRfREVTQ1JJUFRPUnxfSU1QT1JUX0RFU0NSSVBUT1JfLionCisJX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bW0JDREdSU11dW1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEsREFUQS8nXCcnIHwgJFNFRCAtZSAnXCcnL15bW0FJVFddXVtbIF1dL3MvLipbWyBdXS8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJworCSMgRG9uJ3QgdXNlIHJhbmxpYgorCV9MVF9UQUdWQVIob2xkX3Bvc3RpbnN0YWxsX2NtZHMsICQxKT0nY2htb2QgNjQ0ICRvbGRsaWInCisJX0xUX1RBR1ZBUihwb3N0bGlua19jbWRzLCAkMSk9J2x0X291dHB1dGZpbGU9IkBPVVRQVVRAIn4KKwkgIGx0X3Rvb2xfb3V0cHV0ZmlsZT0iQFRPT0xfT1VUUFVUQCJ+CisJICBjYXNlICRsdF9vdXRwdXRmaWxlIGluCisJICAgICouZXhlfCouRVhFKSA7OworCSAgICAqKQorCSAgICAgIGx0X291dHB1dGZpbGU9IiRsdF9vdXRwdXRmaWxlLmV4ZSIKKwkgICAgICBsdF90b29sX291dHB1dGZpbGU9IiRsdF90b29sX291dHB1dGZpbGUuZXhlIgorCSAgICAgIDs7CisJICBlc2FjfgorCSAgaWYgdGVzdCAiJE1BTklGRVNUX1RPT0wiICE9ICI6IiAmJiB0ZXN0IC1mICIkbHRfb3V0cHV0ZmlsZS5tYW5pZmVzdCI7IHRoZW4KKwkgICAgJE1BTklGRVNUX1RPT0wgLW1hbmlmZXN0ICIkbHRfdG9vbF9vdXRwdXRmaWxlLm1hbmlmZXN0IiAtb3V0cHV0cmVzb3VyY2U6IiRsdF90b29sX291dHB1dGZpbGUiIHx8IGV4aXQgMTsKKwkgICAgJFJNICIkbHRfb3V0cHV0ZmlsZS5tYW5pZmVzdCI7CisJICBmaScKKwk7OworICAgICAgKikKKwkjIEFzc3VtZSBNU1ZDIHdyYXBwZXIKKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nICcKKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgorCWxpYmV4dD1saWIKKwkjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KKwlzaHJleHRfY21kcz0iLmRsbCIKKwkjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRsaWIgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzIGBmdW5jX2VjaG9fYWxsICIkZGVwbGlicyIgfCAkU0VEICdcJydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxsfmxpbmtuYW1lcz0nCisJIyBUaGUgbGlua2VyIHdpbGwgYXV0b21hdGljYWxseSBidWlsZCBhIC5saWIgZmlsZSBpZiB3ZSBidWlsZCBhIERMTC4KKwlfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKKwkjIEZJWE1FOiBTaG91bGQgbGV0IHRoZSB1c2VyIHNwZWNpZnkgdGhlIGxpYiBwcm9ncmFtLgorCV9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSdsaWIgLU9VVDokb2xkbGliJG9sZG9ianMkb2xkX2RlcGxpYnMnCisJX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisJOzsKKyAgICAgIGVzYWMKICAgICAgIDs7CiAKICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQpAQCAtNDcwNywxMCArNTIwNyw2IEBACiAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwogICAgICAgOzsKIAotICAgIGZyZWVic2QxKikKLSAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSAgICAgIDs7Ci0KICAgICAjIEZyZWVCU0QgMi4yLlswMTJdIGFsbG93cyB1cyB0byBpbmNsdWRlIGMrK3J0MC5vIHRvIGdldCBDKysgY29uc3RydWN0b3IKICAgICAjIHN1cHBvcnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgYW4gZXhwbGljaXQgYysrcnQwLm8KICAgICAjIGRvZXMgbm90IGJyZWFrIGFueXRoaW5nLCBhbmQgaGVscHMgc2lnbmlmaWNhbnRseSAoYXQgdGhlIGNvc3Qgb2YgYSBsaXR0bGUKQEAgLTQ3MjMsNyArNTIxOSw3IEBACiAgICAgICA7OwogCiAgICAgIyBVbmZvcnR1bmF0ZWx5LCBvbGRlciB2ZXJzaW9ucyBvZiBGcmVlQlNEIDIgZG8gbm90IGhhdmUgdGhpcyBmZWF0dXJlLgotICAgIGZyZWVic2QyKikKKyAgICBmcmVlYnNkMi4qKQogICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCiAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKQEAgLTQ3MzIsNyArNTIyOCw3IEBACiAKICAgICAjIEZyZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJyYXJpZXMuCiAgICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCiAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwogICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCkBAIC00NzQwLDcgKzUyMzYsNyBAQAogCiAgICAgaHB1eDkqKQogICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLQlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwogICAgICAgZWxzZQogCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRMRCAtYiArYiAkaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJwogICAgICAgZmkKQEAgLTQ3NTUsMTQgKzUyNTEsMTMgQEAKICAgICAgIDs7CiAKICAgICBocHV4MTAqKQotICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXMgLWEgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1mUElDICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKICAgICAgIGVsc2UKIAlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwogICAgICAgZmkKICAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgogCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLQlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0nK2IgJGxpYmRpcicKIAlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CiAJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKIAlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcwpAQCAtNDc3NCwxNiArNTI2OSwxNiBAQAogICAgICAgOzsKIAogICAgIGhwdXgxMSopCi0gICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAtYSAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVuCisgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KIAljYXNlICRob3N0X2NwdSBpbgogCWhwcGEqNjQqKQogCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCiAJICA7OwogCWlhNjQqKQotCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCiAJICA7OwogCSopCi0JICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCiAJICA7OwogCWVzYWMKICAgICAgIGVsc2UKQEAgLTQ3OTUsNyArNTI5MCwxNCBAQAogCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwogCSAgOzsKIAkqKQotCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJbTRfaWYoJDEsIFtdLCBbCisJICAjIE9sZGVyIHZlcnNpb25zIG9mIHRoZSAxMS4wMCBjb21waWxlciBkbyBub3QgdW5kZXJzdGFuZCAtYiB5ZXQKKwkgICMgKEhQOTI0NTMtMDEgQS4xMS4wMS4yMCBkb2Vzbid0LCBIUDkyNDUzLTAxIEIuMTEuWC4zNTE3NS0zNTE3Ni5HUCBkb2VzKQorCSAgX0xUX0xJTktFUl9PUFRJT04oW2lmICRDQyB1bmRlcnN0YW5kcyAtYl0sCisJICAgIF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9fYiwgJDEpLCBbLWJdLAorCSAgICBbX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnXSwKKwkgICAgW19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnXSldLAorCSAgW19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJ10pCiAJICA7OwogCWVzYWMKICAgICAgIGZpCkBAIC00ODIzLDE5ICs1MzI1LDM0IEBACiAKICAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQogICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLQlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogCSMgVHJ5IHRvIHVzZSB0aGUgLWV4cG9ydGVkX3N5bWJvbCBsZCBvcHRpb24sIGlmIGl0IGRvZXMgbm90CiAJIyB3b3JrLCBhc3N1bWUgdGhhdCAtZXhwb3J0c19maWxlIGRvZXMgbm90IHdvcmsgZWl0aGVyIGFuZAogCSMgaW1wbGljaXRseSBleHBvcnQgYWxsIHN5bWJvbHMuCi0gICAgICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0gICAgICAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sICR7d2x9Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYvbnVsbCIKLSAgICAgICAgQUNfTElOS19JRkVMU0UoaW50IGZvbyh2b2lkKSB7fSwKLSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSAgICAgICAgKQotICAgICAgICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgorCSMgVGhpcyBzaG91bGQgYmUgdGhlIHNhbWUgZm9yIGFsbCBsYW5ndWFnZXMsIHNvIG5vIHBlci10YWcgY2FjaGUgdmFyaWFibGUuCisJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlICRob3N0X29zIGxpbmtlciBhY2NlcHRzIC1leHBvcnRlZF9zeW1ib2xdLAorCSAgW2x0X2N2X2lyaXhfZXhwb3J0ZWRfc3ltYm9sXSwKKwkgIFtzYXZlX0xERkxBR1M9IiRMREZMQUdTIgorCSAgIExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sICR7d2x9Zm9vICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYvbnVsbCIKKwkgICBBQ19MSU5LX0lGRUxTRSgKKwkgICAgIFtBQ19MQU5HX1NPVVJDRSgKKwkgICAgICAgIFtBQ19MQU5HX0NBU0UoW0NdLCBbW2ludCBmb28gKHZvaWQpIHsgcmV0dXJuIDA7IH1dXSwKKwkJCSAgICAgIFtDKytdLCBbW2ludCBmb28gKHZvaWQpIHsgcmV0dXJuIDA7IH1dXSwKKwkJCSAgICAgIFtGb3J0cmFuIDc3XSwgW1sKKyAgICAgIHN1YnJvdXRpbmUgZm9vCisgICAgICBlbmRdXSwKKwkJCSAgICAgIFtGb3J0cmFuXSwgW1sKKyAgICAgIHN1YnJvdXRpbmUgZm9vCisgICAgICBlbmRdXSldKV0sCisJICAgICAgW2x0X2N2X2lyaXhfZXhwb3J0ZWRfc3ltYm9sPXllc10sCisJICAgICAgW2x0X2N2X2lyaXhfZXhwb3J0ZWRfc3ltYm9sPW5vXSkKKyAgICAgICAgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyJdKQorCWlmIHRlc3QgIiRsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbCIgPSB5ZXM7IHRoZW4KKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKKwlmaQogICAgICAgZWxzZQotCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtZXhwb3J0c19maWxlICRleHBvcnRfc3ltYm9scyAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLWV4cG9ydHNfZmlsZSAkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKICAgICAgIGZpCiAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwogICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKQEAgLTQ4NDQsNyArNTM2MSw3IEBACiAgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKICAgICAgIDs7CiAKLSAgICBuZXRic2QqKQorICAgIG5ldGJzZCogfCBuZXRic2RlbGYqLWdudSkKICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCiAJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycgICMgYS5vdXQKICAgICAgIGVsc2UKQEAgLTQ4OTcsMTcgKzU0MTQsMTcgQEAKICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCiAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEVDSE8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gREFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIiBTSU5HTEUgTk9OU0hBUkVEIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJworICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEVDSE8gIkxJQlJBUlkgJGxpYm5hbWUgSU5JVElOU1RBTkNFIiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kRUNITyAiREVTQ1JJUFRJT04gXCIkbGlibmFtZVwiIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZWNobyBEQVRBID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lY2hvICIgU0lOR0xFIE5PTlNIQVJFRCIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVjaG8gRVhQT1JUUyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZW14ZXhwICRsaWJvYmpzID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn4kQ0MgLVpkbGwgLVpjcnRkbGwgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwogICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzLCAkMSk9J2VteGltcCAtbyAkb3V0cHV0X29iamRpci8kbGlibmFtZS5hICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKICAgICAgIDs7CiAKICAgICBvc2YzKikKICAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCiAJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLQlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogICAgICAgZWxzZQogCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLQlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogICAgICAgZmkKICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT0nbm8nCiAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwpAQCAtNDkxNywxMyArNTQzNCwxMyBAQAogICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0gZmxhZwogICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KIAlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciIHwgJFhzZWRgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKIAlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwogICAgICAgZWxzZQogCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLQlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IHByaW50ZiAiJXNcXG4iICItaGlkZGVuIj4+ICRsaWIuZXhwfgotCSRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAkY29tcGlsZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JFJNICRsaWIuZXhwJworCSRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHt3bH0taW5wdXQgJHt3bH0kbGliLmV4cCAkY29tcGlsZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+JFJNICRsaWIuZXhwJwogCiAJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBwb3J0IC1ycGF0aCBkaXJlY3RseQogCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKQEAgLTQ5MzYsOSArNTQ1Myw5IEBACiAgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAteiBkZWZzJwogICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KIAl3bGFyYz0nJHt3bH0nCi0JX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0teiAke3dsfXRleHQgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCisJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwogCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0JICAkQ0MgLXNoYXJlZCAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJworCSAgJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9LXogJHt3bH10ZXh0ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCiAgICAgICBlbHNlCiAJY2FzZSBgJENDIC1WIDI+JjFgIGluCiAJKiJDb21waWxlcnMgNS4wIiopCkBAIC01MTE0LDM2ICs1NjMxLDM4IEBACiAgICAgICAjIFRlc3Qgd2hldGhlciB0aGUgY29tcGlsZXIgaW1wbGljaXRseSBsaW5rcyB3aXRoIC1sYyBzaW5jZSBvbiBzb21lCiAgICAgICAjIHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBhc3NlcyAtbGMKICAgICAgICMgdG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgotICAgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW5dKQotICAgICAgJFJNIGNvbmZ0ZXN0KgotICAgICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0CisgICAgICBBQ19DQUNIRV9DSEVDSyhbd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluXSwKKwlbbHRfY3ZfXV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKSwKKwlbJFJNIGNvbmZ0ZXN0KgorCWVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAogCi0gICAgICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgotICAgICAgICBzb25hbWU9Y29uZnRlc3QKLSAgICAgICAgbGliPWNvbmZ0ZXN0Ci0gICAgICAgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAotICAgICAgICBkZXBsaWJzPQotICAgICAgICB3bD0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSkKLQlwaWNfZmxhZz0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpCi0gICAgICAgIGNvbXBpbGVyX2ZsYWdzPS12Ci0gICAgICAgIGxpbmtlcl9mbGFncz0tdgotICAgICAgICB2ZXJzdHJpbmc9Ci0gICAgICAgIG91dHB1dF9vYmpkaXI9LgotICAgICAgICBsaWJuYW1lPWNvbmZ0ZXN0Ci0gICAgICAgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKQotICAgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0gICAgICAgIGlmIEFDX1RSWV9FVkFMKF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpCi0gICAgICAgIHRoZW4KLQkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotICAgICAgICBlbHNlCi0JICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCi0gICAgICAgIGZpCi0gICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZwotICAgICAgZWxzZQotICAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSAgICAgIGZpCi0gICAgICAkUk0gY29uZnRlc3QqCi0gICAgICBBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpXSkKKwlpZiBBQ19UUllfRVZBTChhY19jb21waWxlKSAyPmNvbmZ0ZXN0LmVycjsgdGhlbgorCSAgc29uYW1lPWNvbmZ0ZXN0CisJICBsaWI9Y29uZnRlc3QKKwkgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAorCSAgZGVwbGlicz0KKwkgIHdsPSRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKQorCSAgcGljX2ZsYWc9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKQorCSAgY29tcGlsZXJfZmxhZ3M9LXYKKwkgIGxpbmtlcl9mbGFncz0tdgorCSAgdmVyc3RyaW5nPQorCSAgb3V0cHV0X29iamRpcj0uCisJICBsaWJuYW1lPWNvbmZ0ZXN0CisJICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSkKKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KKwkgIGlmIEFDX1RSWV9FVkFMKF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSkgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjEpCisJICB0aGVuCisJICAgIGx0X2N2X1tdX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCisJICBlbHNlCisJICAgIGx0X2N2X1tdX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPXllcworCSAgZmkKKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0kbHRfc2F2ZV9hbGxvd191bmRlZmluZWRfZmxhZworCWVsc2UKKwkgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQorCWZpCisJJFJNIGNvbmZ0ZXN0KgorCV0pCisgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9JGx0X2N2X1tdX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpCiAgICAgICA7OwogICAgIGVzYWMKICAgZmkKQEAgLTUxODAsOSArNTY5OSw2IEBACiBfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNdLCBbMV0sCiAgICAgW0ZsYWcgdG8gaGFyZGNvZGUgJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgogICAgIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2VzIG5vdCBleGlzdF0pCi1fTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGRdLCBbMV0sCi0gICAgW1tJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8gYSBiaW5hcnkKLSAgICBkdXJpbmcgbGlua2luZy4gIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYgJGxpYmRpciBkb2VzIG5vdCBleGlzdF1dKQogX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yXSwgWzFdLAogICAgIFtXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEgc2VwYXJhdGVkIGFyZ3VtZW50XSkKIF9MVF9UQUdERUNMKFtdLCBbaGFyZGNvZGVfZGlyZWN0XSwgWzBdLApAQCAtNTIwOCw4ICs1NzI0LDYgQEAKICAgICB0byBydW50aW1lIHBhdGggbGlzdF0pCiBfTFRfVEFHREVDTChbXSwgW2xpbmtfYWxsX2RlcGxpYnNdLCBbMF0sCiAgICAgW1doZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllc10pCi1fTFRfVEFHREVDTChbXSwgW2ZpeF9zcmNmaWxlX3BhdGhdLCBbMV0sCi0gICAgW0ZpeCB0aGUgc2hlbGwgdmFyaWFibGUgJHNyY2ZpbGUgZm9yIHRoZSBjb21waWxlcl0pCiBfTFRfVEFHREVDTChbXSwgW2Fsd2F5c19leHBvcnRfc3ltYm9sc10sIFswXSwKICAgICBbU2V0IHRvICJ5ZXMiIGlmIGV4cG9ydGVkIHN5bWJvbHMgYXJlIHJlcXVpcmVkXSkKIF9MVF9UQUdERUNMKFtdLCBbZXhwb3J0X3N5bWJvbHNfY21kc10sIFsyXSwKQEAgLTUyMjAsNiArNTczNCw4IEBACiAgICAgW1N5bWJvbHMgdGhhdCBtdXN0IGFsd2F5cyBiZSBleHBvcnRlZF0pCiBfTFRfVEFHREVDTChbXSwgW3ByZWxpbmtfY21kc10sIFsyXSwKICAgICBbQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2FpbnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXNdKQorX0xUX1RBR0RFQ0woW10sIFtwb3N0bGlua19jbWRzXSwgWzJdLAorICAgIFtDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGZpbmlzaGluZyBsaW5raW5nIHByb2dyYW1zXSkKIF9MVF9UQUdERUNMKFtdLCBbZmlsZV9saXN0X3NwZWNdLCBbMV0sCiAgICAgW1NwZWNpZnkgZmlsZW5hbWUgY29udGFpbmluZyBpbnB1dCBmaWxlc10pCiBkbmwgRklYTUU6IE5vdCB5ZXQgaW1wbGVtZW50ZWQKQEAgLTUzMTMsMTQgKzU4MjksMTUgQEAKIF0pIyBfTFRfTEFOR19DX0NPTkZJRwogCiAKLSMgX0xUX1BST0dfQ1hYCi0jIC0tLS0tLS0tLS0tLQotIyBTaW5jZSBBQ19QUk9HX0NYWCBpcyBicm9rZW4sIGluIHRoYXQgaXQgcmV0dXJucyBnKysgaWYgdGhlcmUgaXMgbm8gYysrCi0jIGNvbXBpbGVyLCB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBoZXJlLgotbTRfZGVmdW4oW19MVF9QUk9HX0NYWF0sCi1bCi1wdXNoZGVmKFtBQ19NU0dfRVJST1JdLCBbX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzXSkKLUFDX1BST0dfQ1hYCisjIF9MVF9MQU5HX0NYWF9DT05GSUcoW1RBR10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBDKysgY29tcGlsZXIgYXJlIHN1aXRhYmx5CisjIGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcgdG8gd3JpdGUKKyMgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgorbTRfZGVmdW4oW19MVF9MQU5HX0NYWF9DT05GSUddLAorW200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAorbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAorbTRfcmVxdWlyZShbX0xUX1BBVEhfTUFOSUZFU1RfVE9PTF0pZG5sCiBpZiB0ZXN0IC1uICIkQ1hYIiAmJiAoIHRlc3QgIlgkQ1hYIiAhPSAiWG5vIiAmJgogICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251bGwgMj4mMWAgKSB8fAogICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgpAQCAtNTMyOCwyMiArNTg0NSw2IEBACiBlbHNlCiAgIF9sdF9jYXVnaHRfQ1hYX2Vycm9yPXllcwogZmkKLXBvcGRlZihbQUNfTVNHX0VSUk9SXSkKLV0pIyBfTFRfUFJPR19DWFgKLQotZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotZG5sIEFDX0RFRlVOKFtfTFRfUFJPR19DWFhdLCBbXSkKLQotCi0jIF9MVF9MQU5HX0NYWF9DT05GSUcoW1RBR10pCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgYSBDKysgY29tcGlsZXIgYXJlIHN1aXRhYmx5Ci0jIGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcgdG8gd3JpdGUKLSMgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgotbTRfZGVmdW4oW19MVF9MQU5HX0NYWF9DT05GSUddLAotW0FDX1JFUVVJUkUoW19MVF9QUk9HX0NYWF0pZG5sCi1tNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLW00X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKIAogQUNfTEFOR19QVVNIKEMrKykKIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwpAQCAtNTM1NSw3ICs1ODU2LDYgQEAKIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CiBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCiBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZApAQCAtNTM2NSw2ICs1ODY1LDggQEAKIF9MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9CiBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtub3duCiBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0kb2xkX2FyY2hpdmVfY21kcworX0xUX1RBR1ZBUihyZWxvYWRfZmxhZywgJDEpPSRyZWxvYWRfZmxhZworX0xUX1RBR1ZBUihyZWxvYWRfY21kcywgJDEpPSRyZWxvYWRfY21kcwogX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPQogX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQogX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9bm8KQEAgLTUzOTYsNiArNTg5OCw3IEBACiAKICAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KICAgbHRfc2F2ZV9DQz0kQ0MKKyAgbHRfc2F2ZV9DRkxBR1M9JENGTEFHUwogICBsdF9zYXZlX0xEPSRMRAogICBsdF9zYXZlX0dDQz0kR0NDCiAgIEdDQz0kR1hYCkBAIC01NDEzLDYgKzU5MTYsNyBAQAogICBmaQogICB0ZXN0IC16ICIke0xEQ1hYK3NldH0iIHx8IExEPSRMRENYWAogICBDQz0ke0NYWC0iYysrIn0KKyAgQ0ZMQUdTPSRDWFhGTEFHUwogICBjb21waWxlcj0kQ0MKICAgX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwogICBfTFRfQ0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCkBAIC01NDM0LDggKzU5MzgsOCBAQAogICAgICAgIyBDaGVjayBpZiBHTlUgQysrIHVzZXMgR05VIGxkIGFzIHRoZSB1bmRlcmx5aW5nIGxpbmtlciwgc2luY2UgdGhlCiAgICAgICAjIGFyY2hpdmluZyBjb21tYW5kcyBiZWxvdyBhc3N1bWUgdGhhdCBHTlUgbGQgaXMgYmVpbmcgdXNlZC4KICAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJworICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgJHBpY19mbGFnIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDICRwaWNfZmxhZyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKIAogICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwogICAgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCkBAIC01NDY3LDcgKzU5NzEsNyBAQAogICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwogICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCiAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgLXYgIl5Db25maWd1cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJwogCiAgICAgZWxzZQogICAgICAgR1hYPW5vCkBAIC01NTc2LDEwICs2MDgwLDEwIEBACiAgICAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPSctYmVyb2snCiAgICAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5CiAgICAgICAgICAgIyBleGVjdXRhYmxlLgotICAgICAgICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisgICAgICAgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgoWyQxXSkKICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKIAotICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiAkRUNITyAiWCR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30iIHwgJFhzZWQ7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKKyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAieCI7IHRoZW4gZnVuY19lY2hvX2FsbCAiJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSI7IGVsc2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRfZmxhZyIKICAgICAgICAgZWxzZQogICAgICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCiAJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKQEAgLTU1ODgsMTQgKzYwOTIsMTkgQEAKICAgICAgICAgICBlbHNlCiAJICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgogCSAgICAjIGVtcHR5IGV4ZWN1dGFibGUuCi0JICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYCisJICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYKFskMV0pCiAJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgogCSAgICAjIFdhcm5pbmcgLSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW4gdGltZSBsb2FkaW5nIGZsYWdzLAogCSAgICAjIC1iZXJvayB3aWxsIGxpbmsgd2l0aG91dCBlcnJvciwgYnV0IG1heSBwcm9kdWNlIGEgYnJva2VuIGxpYnJhcnkuCiAJICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJwogCSAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1iZXJvaycKLQkgICAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCi0JICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJGNvbnZlbmllbmNlJworCSAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCisJICAgICAgIyBXZSBvbmx5IHVzZSB0aGlzIGNvZGUgZm9yIEdOVSBsZHMgdGhhdCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZS4KKwkgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCSAgICBlbHNlCisJICAgICAgIyBFeHBvcnRlZCBzeW1ib2xzIGNhbiBiZSBwdWxsZWQgaW50byBzaGFyZWQgb2JqZWN0cyBmcm9tIGFyY2hpdmVzCisJICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVuY2UnCisJICAgIGZpCiAJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT15ZXMKIAkgICAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBpdHMgc2hhcmVkCiAJICAgICMgbGlicmFyaWVzLgpAQCAtNTYyNSwyOCArNjEzNCw3NSBAQAogICAgICAgICA7OwogCiAgICAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0gICAgICAgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0gICAgICAgICMgYXMgdGhlcmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0gICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJkaXInCi0gICAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotICAgICAgICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0gICAgICAgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcworCWNhc2UgJEdYWCwkY2NfYmFzZW5hbWUgaW4KKwksY2wqIHwgbm8sY2wqKQorCSAgIyBOYXRpdmUgTVNWQworCSAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcworCSAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScgJworCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCisJICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEpPXllcworCSAgX0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPSdAJworCSAgIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmlsZXMsIG5vdCAuYSBmaWxlcy4KKwkgIGxpYmV4dD1saWIKKwkgICMgVGVsbCBsdG1haW4gdG8gbWFrZSAuZGxsIGZpbGVzLCBub3QgLnNvIGZpbGVzLgorCSAgc2hyZXh0X2NtZHM9Ii5kbGwiCisJICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCisJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3MgJGRlcGxpYnMgLVdsLC1kbGx+bGlua25hbWVzPScKKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorCSAgICAgICRTRUQgLW4gLWUgJ3MvXFxcXFxcXCguKlxcXFxcXFwpLy1saW5rXFxcIC1FWFBPUlQ6XFxcXFxcXDEvJyAtZSAnMVxcXCFwJyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwOworCSAgICBlbHNlCisJICAgICAgJFNFRCAtZSAncy9cXFxcXFxcKC4qXFxcXFxcXCkvLWxpbmtcXFwgLUVYUE9SVDpcXFxcXFxcMS8nIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5leHA7CisJICAgIGZpfgorCSAgICAkQ0MgLW8gJHRvb2xfb3V0cHV0X29iamRpciRzb25hbWUgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJzICJAJHRvb2xfb3V0cHV0X29iamRpciRzb25hbWUuZXhwIiAtV2wsLURMTCwtSU1QTElCOiIkdG9vbF9vdXRwdXRfb2JqZGlyJGxpYm5hbWUuZGxsLmxpYiJ+CisJICAgIGxpbmtuYW1lcz0nCisJICAjIFRoZSBsaW5rZXIgd2lsbCBub3QgYXV0b21hdGljYWxseSBidWlsZCBhIHN0YXRpYyBsaWIgaWYgd2UgYnVpbGQgYSBETEwuCisJICAjIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgJDEpPSd0cnVlJworCSAgX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9eWVzCisJICAjIERvbid0IHVzZSByYW5saWIKKwkgIF9MVF9UQUdWQVIob2xkX3Bvc3RpbnN0YWxsX2NtZHMsICQxKT0nY2htb2QgNjQ0ICRvbGRsaWInCisJICBfTFRfVEFHVkFSKHBvc3RsaW5rX2NtZHMsICQxKT0nbHRfb3V0cHV0ZmlsZT0iQE9VVFBVVEAifgorCSAgICBsdF90b29sX291dHB1dGZpbGU9IkBUT09MX09VVFBVVEAifgorCSAgICBjYXNlICRsdF9vdXRwdXRmaWxlIGluCisJICAgICAgKi5leGV8Ki5FWEUpIDs7CisJICAgICAgKikKKwkJbHRfb3V0cHV0ZmlsZT0iJGx0X291dHB1dGZpbGUuZXhlIgorCQlsdF90b29sX291dHB1dGZpbGU9IiRsdF90b29sX291dHB1dGZpbGUuZXhlIgorCQk7OworCSAgICBlc2FjfgorCSAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJGx0X291dHB1dGZpbGUifgorCSAgICBpZiB0ZXN0ICIkTUFOSUZFU1RfVE9PTCIgIT0gIjoiICYmIHRlc3QgLWYgIiRsdF9vdXRwdXRmaWxlLm1hbmlmZXN0IjsgdGhlbgorCSAgICAgICRNQU5JRkVTVF9UT09MIC1tYW5pZmVzdCAiJGx0X3Rvb2xfb3V0cHV0ZmlsZS5tYW5pZmVzdCIgLW91dHB1dHJlc291cmNlOiIkbHRfdG9vbF9vdXRwdXRmaWxlIiB8fCBleGl0IDE7CisJICAgICAgJFJNICIkbHRfb3V0cHV0ZmlsZS5tYW5pZmVzdCI7CisJICAgIGZpJworCSAgOzsKKwkqKQorCSAgIyBnKysKKwkgICMgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCisJICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgorCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKKwkgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtYWxsLXN5bWJvbHMnCisJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9dW5zdXBwb3J0ZWQKKwkgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KKwkgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcwogCi0gICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0gICAgICAgICAgIyBJZiB0aGUgZXhwb3J0LXN5bWJvbHMgZmlsZSBhbHJlYWR5IGlzIGEgLmRlZiBmaWxlICgxc3QgbGluZQotICAgICAgICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0gICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0JICAgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSAgICAgICAgICBlbHNlCi0JICAgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotCSAgICBjYXQgJGV4cG9ydF9zeW1ib2xzID4+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotICAgICAgICAgIGZpfgotICAgICAgICAgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSAgICAgICAgZWxzZQotICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSAgICAgICAgZmkKLSAgICAgICAgOzsKKwkgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJworCSAgICAjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCisJICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCisJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgorCSAgICAgIGNwICRleHBvcnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKKwkgICAgZWxzZQorCSAgICAgIGVjaG8gRVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOworCSAgICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7CisJICAgIGZpfgorCSAgICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWYgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJhc2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCisJICBlbHNlCisJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KKwkgIGZpCisJICA7OworCWVzYWMKKwk7OwogICAgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKICAgICAgICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMoJDEpCiAJOzsKQEAgLTU2NjksNyArNjIyNSw3IEBACiAgICAgICAgIGVzYWMKICAgICAgICAgOzsKIAotICAgICAgZnJlZWJzZFtbMTJdXSopCisgICAgICBmcmVlYnNkMi4qKQogICAgICAgICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVmb3JlCiAJIyBzd2l0Y2ggdG8gRUxGCiAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KQEAgLTU2ODgsNiArNjI0NCwxMSBAQAogICAgICAgZ251KikKICAgICAgICAgOzsKIAorICAgICAgaGFpa3UqKQorICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKyAgICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCisgICAgICAgIDs7CisKICAgICAgIGhwdXg5KikKICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwogICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06CkBAIC01NzEyLDExICs2MjczLDExIEBACiAgICAgICAgICAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQogICAgICAgICAgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQogICAgICAgICAgICAgIyBkZXBlbmRlbmNpZXMuCi0gICAgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisgICAgICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKICAgICAgICAgICAgIDs7CiAgICAgICAgICAgKikKICAgICAgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0gICAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGliJworICAgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHBpY19mbGFnICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAogICAgICAgICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCkBAIC01Nzc3LDcgKzYzMzgsNyBAQAogCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQogCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CiAJICAgICMgZGVwZW5kZW5jaWVzLgotCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgJEVDSE8gIlgkbGlzdCIgfCAkWHNlZCcKKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8ICRHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKIAkgICAgOzsKICAgICAgICAgICAqKQogCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgpAQCAtNTc4NywxMCArNjM0OCwxMCBAQAogCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKIAkgICAgICAgICAgICA7OwogCSAgICAgICAgICBpYTY0KikKLQkgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCisJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwaWNfZmxhZyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKIAkgICAgICAgICAgICA7OwogCSAgICAgICAgICAqKQotCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAtZlBJQyAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJworCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcGljX2ZsYWcgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKIAkgICAgICAgICAgICA7OwogCSAgICAgICAgZXNhYwogCSAgICAgIGZpCkBAIC01ODIwLDcgKzYzODEsNyBAQAogICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgogICAgICAgICAgIENDKikKIAkgICAgIyBTR0kgQysrCi0JICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1hbGwgLW11bHRpZ290ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAKIAkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCiAJICAgICMgIkNDIC1hciIsIHdoZXJlICJDQyIgaXMgdGhlIElSSVggQysrIGNvbXBpbGVyLiAgVGhpcyBpcwpAQCAtNTgzMSw5ICs2MzkyLDkgQEAKICAgICAgICAgICAqKQogCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgogCSAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAJICAgICAgZWxzZQotCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyIgfCAkWHNlZGAgLW8gJGxpYicKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgIC1vICRsaWInCiAJICAgICAgZmkKIAkgICAgZmkKIAkgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCkBAIC01ODQ0LDcgKzY0MDUsNyBAQAogICAgICAgICBfTFRfVEFHVkFSKGluaGVyaXRfcnBhdGgsICQxKT15ZXMKICAgICAgICAgOzsKIAotICAgICAgbGludXgqIHwgaypic2QqLWdudSkKKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKICAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KICAgICAgICAgICBLQ0MqKQogCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCkBAIC01ODYyLDcgKzY0MjMsNyBAQAogCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQogCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CiAJICAgICMgZGVwZW5kZW5jaWVzLgotCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxIHwgJEdSRVAgImxkImA7IHJtIC1mIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxIHwgJEdSRVAgImxkImA7IHJtIC1mIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQ7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBmdW5jX2VjaG9fYWxsICIkbGlzdCInCiAKIAkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCiAJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKQEAgLTU4OTksMjYgKzY0NjAsMjYgQEAKICAgICAgICAgICBwZ0NDKiB8IHBnY3BwKikKICAgICAgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCiAJICAgIGNhc2UgYCRDQyAtVmAgaW4KLQkgICAgKnBnQ0NcIFtbMS01XV0qIHwgKnBnY3BwXCBbWzEtNV1dKikKKwkgICAgKnBnQ0NcIFtbMS01XV0uKiB8ICpwZ2NwcFwgW1sxLTVdXS4qKQogCSAgICAgIF9MVF9UQUdWQVIocHJlbGlua19jbWRzLCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+CiAJCXJtIC1yZiAkdHBsZGlyfgogCQkkQ0MgLS1wcmVsaW5rX29iamVjdHMgLS1pbnN0YW50aWF0aW9uX2RpciAkdHBsZGlyICRvYmpzICRsaWJvYmpzICRjb21waWxlX2RlcGxpYnN+Ci0JCWNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCAkTkwyU1BgIicKKwkJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5kIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgIicKIAkgICAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KIAkJcm0gLXJmICR0cGxkaXJ+CiAJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+Ci0JCSRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGB+CisJCSRBUiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgfgogCQkkUkFOTElCICRvbGRsaWInCiAJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KIAkJcm0gLXJmICR0cGxkaXJ+CiAJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgotCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJworCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKIAkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KIAkJcm0gLXJmICR0cGxkaXJ+CiAJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgotCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCisJCSRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgYGZpbmQgJHRwbGRpciAtbmFtZSBcKi5vIHwgc29ydCB8ICROTDJTUGAgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCiAJICAgICAgOzsKLQkgICAgKikgIyBWZXJzaW9uIDYgd2lsbCB1c2Ugd2VhayBzeW1ib2xzCisJICAgICopICMgVmVyc2lvbiA2IGFuZCBhYm92ZSB1c2Ugd2VhayBzeW1ib2xzCiAJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIC1vICRsaWInCiAJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR7d2x9JGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCiAJICAgICAgOzsKQEAgLTU5MjYsNyArNjQ4Nyw3IEBACiAKIAkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCiAJICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKLQkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkRUNITyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgZnVuY19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCiAgICAgICAgICAgICA7OwogCSAgY3h4KikKIAkgICAgIyBDb21wYXEgQysrCkBAIC01OTQ1LDkgKzY1MDYsOSBAQAogCSAgICAjIGV4cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQogCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5CiAJICAgICMgZGVwZW5kZW5jaWVzLgotCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkImA7IHRlbXBsaXN0PWAkRUNITyAiWCR0ZW1wbGlzdCIgfCAkWHNlZCAtZSAicy9cKF4uKmxkLipcKVwoIC4qbGQgLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyAkRUNITyAiWCRsaXN0IiB8ICRYc2VkJworCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkImA7IHRlbXBsaXN0PWBmdW5jX2VjaG9fYWxsICIkdGVtcGxpc3QiIHwgJFNFRCAicy9cKF4uKmxkLipcKVwoIC4qbGQgLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBmdW5jX2VjaG9fYWxsICJYJGxpc3QiIHwgJFhzZWQnCiAJICAgIDs7Ci0JICB4bCopCisJICB4bCogfCBtcGl4bCogfCBiZ3hsKikKIAkgICAgIyBJQk0gWEwgOC4wIG9uIFBQQywgd2l0aCBHTlUgbGQKIAkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKIAkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwpAQCAtNTk2NywxMyArNjUyOCwxMyBAQAogCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKIAkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMnCiAJICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLQkgICAgICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYG5ld19jb252ZW5pZW5jZT07IGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLXogXCIkY29udlwiIHx8IG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJEVDSE8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCSAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKIAkgICAgICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllcwogCiAJICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgogCSAgICAgICMgJENDICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEKIAkgICAgICAjIHdvdWxkIGJlIGJldHRlci4KLQkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZnVuY19lY2hvX2FsbCcKIAogCSAgICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2luZwogCSAgICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwpAQCAtNjA0Miw3ICs2NjAzLDcgQEAKIAkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKIAkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwogCSAgZmkKLQkgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWVjaG8KKwkgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPWZ1bmNfZWNob19hbGwKIAllbHNlCiAJICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCiAJZmkKQEAgLTYwNzcsMTUgKzY2MzgsMTUgQEAKIAkgICAgY2FzZSAkaG9zdCBpbgogCSAgICAgIG9zZjMqKQogCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2ZWQgJHt3bH1cKicKLQkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWCR7d2x9LXNldF92ZXJzaW9uICR2ZXJzdHJpbmciIHwgJFhzZWRgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogCSAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKIAkJOzsKIAkgICAgICAqKQogCSAgICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJlc29sdmVkIFwqJwotCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiWC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nIiB8ICRYc2VkYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIgLWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZX4KIAkgICAgICAgICAgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLQkgICAgICAgICAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSAke3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIlgtc2V0X3ZlcnNpb24gJHZlcnN0cmluZyIgfCAkWHNlZGAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifgorCSAgICAgICAgICAkQ0MgLXNoYXJlZCRhbGxvd191bmRlZmluZWRfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lICR7d2x9LWlucHV0ICR7d2x9JGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWJ+CiAJICAgICAgICAgICRSTSAkbGliLmV4cCcKIAkgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctcnBhdGggJGxpYmRpcicKIAkJOzsKQEAgLTYxMDEsMTcgKzY2NjIsMTcgQEAKIAkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KIAkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBpbiB0aGUgbGlicmFyeQogCSAgICAjIGRlcGVuZGVuY2llcy4KLQkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCIgfCAkR1JFUCAtdiAibGQ6ImA7IHRlbXBsaXN0PWAkRUNITyAiWCR0ZW1wbGlzdCIgfCAkWHNlZCAtZSAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7ICRFQ0hPICJYJGxpc3QiIHwgJFhzZWQnCisJICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAibGQiIHwgJEdSRVAgLXYgImxkOiJgOyB0ZW1wbGlzdD1gZnVuY19lY2hvX2FsbCAiJHRlbXBsaXN0IiB8ICRTRUQgInMvXCheLipsZC4qXClcKCAuKmxkLiokXCkvXDEvImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBmdW5jX2VjaG9fYWxsICIkbGlzdCInCiAJICAgIDs7CiAJICAqKQogCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KIAkgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwogCSAgICAgIGNhc2UgJGhvc3QgaW4KIAkgICAgICAgIG9zZjMqKQotCSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICJYJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAJCSAgOzsKIAkgICAgICAgICopCi0JICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nIiB8ICRYc2VkYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCSAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW5vc3RkbGliICR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAJCSAgOzsKIAkgICAgICBlc2FjCiAKQEAgLTYxMjEsNyArNjY4Miw3IEBACiAJICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwogCSAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgogCSAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJlZCB3aXRoOiIgfCAkR1JFUCAiXC1MIicKIAogCSAgICBlbHNlCiAJICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CkBAIC02MTU3LDcgKzY3MTgsNyBAQAogCiAgICAgICBzb2xhcmlzKikKICAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSAgICAgICAgICBDQyopCisgICAgICAgICAgQ0MqIHwgc3VuQ0MqKQogCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCiAgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCQxKT15ZXMKIAkgICAgX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScgLXpkZWZzJwpAQCAtNjE3OCw3ICs2NzM5LDcgQEAKIAkgICAgZXNhYwogCSAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKIAotCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZWNobycKKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2Z1bmNfZWNob19hbGwnCiAKIAkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCiAJICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwpAQCAtNjE5OCwxNCArNjc1OSwxNCBAQAogCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KIAkgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS16ICR7d2x9ZGVmcycKIAkgICAgICBpZiAkQ0MgLS12ZXJzaW9uIHwgJEdSRVAgLXYgJ14yXC43JyA+IC9kZXYvbnVsbDsgdGhlbgotCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbm9zdGRsaWIgJExERkxBR1MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwogCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLQkJICAkQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHt3bH0tTSAkd2wkbGliLmV4cCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc34kUk0gJGxpYi5leHAnCisJCSAgJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAke3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKIAogCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwogCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCiAJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLQkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJcLUwiJworCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgLXYgIl5Db25maWd1cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJwogCSAgICAgIGVsc2UKIAkgICAgICAgICMgZysrIDIuNyBhcHBlYXJzIHRvIHJlcXVpcmUgYC1HJyBOT1QgYC1zaGFyZWQnIG9uIHRoaXMKIAkgICAgICAgICMgcGxhdGZvcm0uCkBAIC02MjE2LDcgKzY3NzcsNyBAQAogCSAgICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwogCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCiAJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLQkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAiXC1MIicKKwkgICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLUcgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwgJEdSRVAgIlwtTCInCiAJICAgICAgZmkKIAogCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1SICR3bCRsaWJkaXInCkBAIC02MjcwLDYgKzY4MzEsMTAgQEAKICAgICAgICAgICBDQyopCiAJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCiAJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJworCSAgICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC1UcHJlbGlua19vYmplY3RzICRvbGRvYmpzfgorCSAgICAgICciJF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpIgorCSAgICBfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JyRDQyAtVHByZWxpbmtfb2JqZWN0cyAkcmVsb2FkX29ianN+CisJICAgICAgJyIkX0xUX1RBR1ZBUihyZWxvYWRfY21kcywgJDEpIgogCSAgICA7OwogCSAgKikKIAkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwpAQCAtNjMyNSw2ICs2ODkwLDcgQEAKICAgZmkgIyB0ZXN0IC1uICIkY29tcGlsZXIiCiAKICAgQ0M9JGx0X3NhdmVfQ0MKKyAgQ0ZMQUdTPSRsdF9zYXZlX0NGTEFHUwogICBMRENYWD0kTEQKICAgTEQ9JGx0X3NhdmVfTEQKICAgR0NDPSRsdF9zYXZlX0dDQwpAQCAtNjMzOSw2ICs2OTA1LDI5IEBACiBdKSMgX0xUX0xBTkdfQ1hYX0NPTkZJRwogCiAKKyMgX0xUX0ZVTkNfU1RSSVBOQU1FX0NORgorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIGZ1bmNfc3RyaXBuYW1lX2NuZiBwcmVmaXggc3VmZml4IG5hbWUKKyMgc3RyaXAgUFJFRklYIGFuZCBTVUZGSVggb2ZmIG9mIE5BTUUuCisjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAorIyBjaGFyYWN0ZXJzLCBoYXNoZXMsIHBlcmNlbnQgc2lnbnMsIGJ1dCBTVUZGSVggbWF5IGNvbnRhaW4gYSBsZWFkaW5nCisjIGRvdCAoaW4gd2hpY2ggY2FzZSB0aGF0IG1hdGNoZXMgb25seSBhIGRvdCkuCisjCisjIFRoaXMgZnVuY3Rpb24gaXMgaWRlbnRpY2FsIHRvIHRoZSAobm9uLVhTSSkgdmVyc2lvbiBvZiBmdW5jX3N0cmlwbmFtZSwKKyMgZXhjZXB0IHRoaXMgb25lIGNhbiBiZSB1c2VkIGJ5IG00IGNvZGUgdGhhdCBtYXkgYmUgZXhlY3V0ZWQgYnkgY29uZmlndXJlLAorIyByYXRoZXIgdGhhbiB0aGUgbGlidG9vbCBzY3JpcHQuCittNF9kZWZ1bihbX0xUX0ZVTkNfU1RSSVBOQU1FX0NORl0sW2RubAorQUNfUkVRVUlSRShbX0xUX0RFQ0xfU0VEXSkKK0FDX1JFUVVJUkUoW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSkKK2Z1bmNfc3RyaXBuYW1lX2NuZiAoKQoreworICBjYXNlICR7Mn0gaW4KKyAgLiopIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7M30iIHwgJFNFRCAicyVeJHsxfSUlOyBzJVxcXFwkezJ9XCQlJSJgOzsKKyAgKikgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7M30iIHwgJFNFRCAicyVeJHsxfSUlOyBzJSR7Mn1cJCUlImA7OworICBlc2FjCit9ICMgZnVuY19zdHJpcG5hbWVfY25mCitdKSMgX0xUX0ZVTkNfU1RSSVBOQU1FX0NORgorCiAjIF9MVF9TWVNfSElEREVOX0xJQkRFUFMoW1RBR05BTUVdKQogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRmlndXJlIG91dCAiaGlkZGVuIiBsaWJyYXJ5IGRlcGVuZGVuY2llcyBmcm9tIHZlcmJvc2UKQEAgLTYzNDcsNiArNjkzNiw3IEBACiAjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KIG00X2RlZnVuKFtfTFRfU1lTX0hJRERFTl9MSUJERVBTXSwKIFttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKK0FDX1JFUVVJUkUoW19MVF9GVU5DX1NUUklQTkFNRV9DTkZdKWRubAogIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0IGJlaW5nIGxpbmtlZDoKIF9MVF9UQUdWQVIocHJlZGVwX29iamVjdHMsICQxKT0KIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9CkBAIC02Mzk2LDcgKzY5ODYsMjAgQEAKICAgfQogfTsKIF9MVF9FT0YKK10sIFskMV0sIFtHT10sIFtjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8X0xUX0VPRgorcGFja2FnZSBmb28KK2Z1bmMgZm9vKCkgeworfQorX0xUX0VPRgogXSkKKworX2x0X2xpYmRlcHNfc2F2ZV9DRkxBR1M9JENGTEFHUworY2FzZSAiJENDICRDRkxBR1MgIiBpbiAjKAorKlwgLWZsdG8qXCAqKSBDRkxBR1M9IiRDRkxBR1MgLWZuby1sdG8iIDs7CisqXCAtZndob3ByKlwgKikgQ0ZMQUdTPSIkQ0ZMQUdTIC1mbm8td2hvcHIiIDs7CisqXCAtZnVzZS1saW5rZXItcGx1Z2luKlwgKikgQ0ZMQUdTPSIkQ0ZMQUdTIC1mbm8tdXNlLWxpbmtlci1wbHVnaW4iIDs7Citlc2FjCisKIGRubCBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKIGRubCBvYmplY3RzLCBsaWJyYXJpZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCiBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgpAQCAtNjQwOCw3ICs3MDExLDcgQEAKICAgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZT1ubwogCiAgIGZvciBwIGluIGBldmFsICIkb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQiYDsgZG8KLSAgICBjYXNlICRwIGluCisgICAgY2FzZSAke3ByZXZ9JHtwfSBpbgogCiAgICAgLUwqIHwgLVIqIHwgLWwqKQogICAgICAgICMgU29tZSBjb21waWxlcnMgcGxhY2Ugc3BhY2UgYmV0d2VlbiAiLXtMLFJ9IiBhbmQgdGhlIHBhdGguCkBAIC02NDE3LDEzICs3MDIwLDIyIEBACiAgICAgICAgICAgdGVzdCAkcCA9ICItUiI7IHRoZW4KIAkgcHJldj0kcAogCSBjb250aW51ZQotICAgICAgIGVsc2UKLQkgcHJldj0KICAgICAgICBmaQogCisgICAgICAgIyBFeHBhbmQgdGhlIHN5c3Jvb3QgdG8gZWFzZSBleHRyYWN0aW5nIHRoZSBkaXJlY3RvcmllcyBsYXRlci4KKyAgICAgICBpZiB0ZXN0IC16ICIkcHJldiI7IHRoZW4KKyAgICAgICAgIGNhc2UgJHAgaW4KKyAgICAgICAgIC1MKikgZnVuY19zdHJpcG5hbWVfY25mICctTCcgJycgIiRwIjsgcHJldj0tTDsgcD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7CisgICAgICAgICAtUiopIGZ1bmNfc3RyaXBuYW1lX2NuZiAnLVInICcnICIkcCI7IHByZXY9LVI7IHA9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworICAgICAgICAgLWwqKSBmdW5jX3N0cmlwbmFtZV9jbmYgJy1sJyAnJyAiJHAiOyBwcmV2PS1sOyBwPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKKyAgICAgICAgIGVzYWMKKyAgICAgICBmaQorICAgICAgIGNhc2UgJHAgaW4KKyAgICAgICA9KikgZnVuY19zdHJpcG5hbWVfY25mICc9JyAnJyAiJHAiOyBwPSRsdF9zeXNyb290JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OworICAgICAgIGVzYWMKICAgICAgICBpZiB0ZXN0ICIkcHJlX3Rlc3Rfb2JqZWN0X2RlcHNfZG9uZSIgPSBubzsgdGhlbgotCSBjYXNlICRwIGluCi0JIC1MKiB8IC1SKikKKwkgY2FzZSAke3ByZXZ9IGluCisJIC1MIHwgLVIpCiAJICAgIyBJbnRlcm5hbCBjb21waWxlciBsaWJyYXJ5IHBhdGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCiAJICAgIyBwcm92aWRlZCB0aGUgdXNlci4gIFRoZSBwb3N0ZGVwcyBhbHJlYWR5IGNvbWUgYWZ0ZXIgdGhlCiAJICAgIyB1c2VyIHN1cHBsaWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0uCkBAIC02NDQzLDggKzcwNTUsMTAgQEAKIAkgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCAkMSk9IiR7X0xUX1RBR1ZBUihwb3N0ZGVwcywgJDEpfSAke3ByZXZ9JHtwfSIKIAkgZmkKICAgICAgICBmaQorICAgICAgIHByZXY9CiAgICAgICAgOzsKIAorICAgICoubHRvLiRvYmpleHQpIDs7ICMgSWdub3JlIEdDQyBMVE8gb2JqZWN0cwogICAgICouJG9iamV4dCkKICAgICAgICAjIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVjdCBmaWxlIG9ubHkgc2hvd3MgdXAKICAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91dHB1dC4KQEAgLTY0ODAsNiArNzA5NCw3IEBACiBmaQogCiAkUk0gLWYgY29uZmVzdC4kb2JqZXh0CitDRkxBR1M9JF9sdF9saWJkZXBzX3NhdmVfQ0ZMQUdTCiAKICMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMgYnJva2VuCiBtNF9pZihbJDFdLCBbQ1hYXSwKQEAgLTY1MTYsNyArNzEzMSw3IEBACiAKIHNvbGFyaXMqKQogICBjYXNlICRjY19iYXNlbmFtZSBpbgotICBDQyopCisgIENDKiB8IHN1bkNDKikKICAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKICAgICAjIGluY29tcGF0aWJsZSB3aXRoIHRoZSBDc3RkIGxpYnJhcnkuIEF2b2lkIHNwZWNpZnlpbmcKICAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCkBAIC02NTYwLDMyICs3MTc1LDE2IEBACiBdKSMgX0xUX1NZU19ISURERU5fTElCREVQUwogCiAKLSMgX0xUX1BST0dfRjc3Ci0jIC0tLS0tLS0tLS0tLQotIyBTaW5jZSBBQ19QUk9HX0Y3NyBpcyBicm9rZW4sIGluIHRoYXQgaXQgcmV0dXJucyB0aGUgZW1wdHkgc3RyaW5nCi0jIGlmIHRoZXJlIGlzIG5vIGZvcnRyYW4gY29tcGlsZXIsIHdlIGhhdmUgb3VyIG93biB2ZXJzaW9uIGhlcmUuCi1tNF9kZWZ1bihbX0xUX1BST0dfRjc3XSwKLVsKLXB1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfZGlzYWJsZV9GNzc9eWVzXSkKLUFDX1BST0dfRjc3Ci1pZiB0ZXN0IC16ICIkRjc3IiB8fCB0ZXN0ICJYJEY3NyIgPSAiWG5vIjsgdGhlbgotICBfbHRfZGlzYWJsZV9GNzc9eWVzCi1maQotcG9wZGVmKFtBQ19NU0dfRVJST1JdKQotXSkjIF9MVF9QUk9HX0Y3NwotCi1kbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci1kbmwgQUNfREVGVU4oW19MVF9QUk9HX0Y3N10sIFtdKQotCi0KICMgX0xUX0xBTkdfRjc3X0NPTkZJRyhbVEFHXSkKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZvcnRyYW4gNzcgY29tcGlsZXIgYXJlCiAjIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKICMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgogbTRfZGVmdW4oW19MVF9MQU5HX0Y3N19DT05GSUddLAotW0FDX1JFUVVJUkUoW19MVF9QUk9HX0Y3N10pZG5sCi1BQ19MQU5HX1BVU0goRm9ydHJhbiA3NykKK1tBQ19MQU5HX1BVU0goRm9ydHJhbiA3NykKK2lmIHRlc3QgLXogIiRGNzciIHx8IHRlc3QgIlgkRjc3IiA9ICJYbm8iOyB0aGVuCisgIF9sdF9kaXNhYmxlX0Y3Nz15ZXMKK2ZpCiAKIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwogX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQpAQCAtNjU5NSw3ICs3MTk0LDYgQEAKIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CiBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCiBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCkBAIC02NjA0LDYgKzcyMDIsOCBAQAogX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCitfTFRfVEFHVkFSKHJlbG9hZF9mbGFnLCAkMSk9JHJlbG9hZF9mbGFnCitfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JHJlbG9hZF9jbWRzCiBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CiBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CiBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwpAQCAtNjY0Myw3ICs3MjQzLDkgQEAKICAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KICAgbHRfc2F2ZV9DQz0iJENDIgogICBsdF9zYXZlX0dDQz0kR0NDCisgIGx0X3NhdmVfQ0ZMQUdTPSRDRkxBR1MKICAgQ0M9JHtGNzctImY3NyJ9CisgIENGTEFHUz0kRkZMQUdTCiAgIGNvbXBpbGVyPSRDQwogICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCiAgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKQEAgLTY2OTcsMzggKzcyOTksMjQgQEAKIAogICBHQ0M9JGx0X3NhdmVfR0NDCiAgIENDPSIkbHRfc2F2ZV9DQyIKKyAgQ0ZMQUdTPSIkbHRfc2F2ZV9DRkxBR1MiCiBmaSAjIHRlc3QgIiRfbHRfZGlzYWJsZV9GNzciICE9IHllcwogCiBBQ19MQU5HX1BPUAogXSkjIF9MVF9MQU5HX0Y3N19DT05GSUcKIAogCi0jIF9MVF9QUk9HX0ZDCi0jIC0tLS0tLS0tLS0tCi0jIFNpbmNlIEFDX1BST0dfRkMgaXMgYnJva2VuLCBpbiB0aGF0IGl0IHJldHVybnMgdGhlIGVtcHR5IHN0cmluZwotIyBpZiB0aGVyZSBpcyBubyBmb3J0cmFuIGNvbXBpbGVyLCB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBoZXJlLgotbTRfZGVmdW4oW19MVF9QUk9HX0ZDXSwKLVsKLXB1c2hkZWYoW0FDX01TR19FUlJPUl0sIFtfbHRfZGlzYWJsZV9GQz15ZXNdKQotQUNfUFJPR19GQwotaWYgdGVzdCAteiAiJEZDIiB8fCB0ZXN0ICJYJEZDIiA9ICJYbm8iOyB0aGVuCi0gIF9sdF9kaXNhYmxlX0ZDPXllcwotZmkKLXBvcGRlZihbQUNfTVNHX0VSUk9SXSkKLV0pIyBfTFRfUFJPR19GQwotCi1kbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci1kbmwgQUNfREVGVU4oW19MVF9QUk9HX0ZDXSwgW10pCi0KLQogIyBfTFRfTEFOR19GQ19DT05GSUcoW1RBR10pCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEZvcnRyYW4gY29tcGlsZXIgYXJlCiAjIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKICMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8gYGxpYnRvb2wnLgogbTRfZGVmdW4oW19MVF9MQU5HX0ZDX0NPTkZJR10sCi1bQUNfUkVRVUlSRShbX0xUX1BST0dfRkNdKWRubAotQUNfTEFOR19QVVNIKEZvcnRyYW4pCitbQUNfTEFOR19QVVNIKEZvcnRyYW4pCisKK2lmIHRlc3QgLXogIiRGQyIgfHwgdGVzdCAiWCRGQyIgPSAiWG5vIjsgdGhlbgorICBfbHRfZGlzYWJsZV9GQz15ZXMKK2ZpCiAKIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwogX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQpAQCAtNjczOCw3ICs3MzI2LDYgQEAKIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkLCAkMSk9CiBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCiBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywgJDEpPW5vCkBAIC02NzQ3LDYgKzczMzQsOCBAQAogX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2NtZHMsICQxKT0KIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVua25vd24KIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRvbGRfYXJjaGl2ZV9jbWRzCitfTFRfVEFHVkFSKHJlbG9hZF9mbGFnLCAkMSk9JHJlbG9hZF9mbGFnCitfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JHJlbG9hZF9jbWRzCiBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9CiBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9CiBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT1ubwpAQCAtNjc4Niw3ICs3Mzc1LDkgQEAKICAgIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KICAgbHRfc2F2ZV9DQz0iJENDIgogICBsdF9zYXZlX0dDQz0kR0NDCisgIGx0X3NhdmVfQ0ZMQUdTPSRDRkxBR1MKICAgQ0M9JHtGQy0iZjk1In0KKyAgQ0ZMQUdTPSRGQ0ZMQUdTCiAgIGNvbXBpbGVyPSRDQwogICBHQ0M9JGFjX2N2X2ZjX2NvbXBpbGVyX2dudQogCkBAIC02ODQyLDcgKzc0MzMsOCBAQAogICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIKIAogICBHQ0M9JGx0X3NhdmVfR0NDCi0gIENDPSIkbHRfc2F2ZV9DQyIKKyAgQ0M9JGx0X3NhdmVfQ0MKKyAgQ0ZMQUdTPSRsdF9zYXZlX0NGTEFHUwogZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHllcwogCiBBQ19MQU5HX1BPUApAQCAtNjg3OSwxMCArNzQ3MSwxMiBAQAogX0xUX0xJTktFUl9CT0lMRVJQTEFURQogCiAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgotbHRfc2F2ZV9DQz0iJENDIgorbHRfc2F2ZV9DQz0kQ0MKK2x0X3NhdmVfQ0ZMQUdTPSRDRkxBR1MKIGx0X3NhdmVfR0NDPSRHQ0MKIEdDQz15ZXMKIENDPSR7R0NKLSJnY2oifQorQ0ZMQUdTPSRHQ0pGTEFHUwogY29tcGlsZXI9JENDCiBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCiBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKQEAgLTY4OTIsNiArNzQ4Niw4IEBACiBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KIAogX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKK19MVF9UQUdWQVIocmVsb2FkX2ZsYWcsICQxKT0kcmVsb2FkX2ZsYWcKK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVsb2FkX2NtZHMKIAogIyMgQ0FWRUFUIEVNUFRPUjoKICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCkBAIC02OTExLDEwICs3NTA3LDgyIEBACiBBQ19MQU5HX1JFU1RPUkUKIAogR0NDPSRsdF9zYXZlX0dDQwotQ0M9IiRsdF9zYXZlX0NDIgorQ0M9JGx0X3NhdmVfQ0MKK0NGTEFHUz0kbHRfc2F2ZV9DRkxBR1MKIF0pIyBfTFRfTEFOR19HQ0pfQ09ORklHCiAKIAorIyBfTFRfTEFOR19HT19DT05GSUcoW1RBR10pCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyBmb3IgdGhlIEdOVSBHbyBjb21waWxlcgorIyBhcmUgc3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRworIyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCittNF9kZWZ1bihbX0xUX0xBTkdfR09fQ09ORklHXSwKK1tBQ19SRVFVSVJFKFtMVF9QUk9HX0dPXSlkbmwKK0FDX0xBTkdfU0FWRQorCisjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgR28gdGVzdCBzb3VyY2VzLgorYWNfZXh0PWdvCisKKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBHbyB0ZXN0IHNvdXJjZXMuCitvYmpleHQ9bworX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0CisKKyMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCitsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9InBhY2thZ2UgbWFpbjsgZnVuYyBtYWluKCkgeyB9IgorCisjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cworbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdwYWNrYWdlIG1haW47IGZ1bmMgbWFpbigpIHsgfScKKworIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgorX0xUX1RBR19DT01QSUxFUgorCisjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCitfTFRfTElOS0VSX0JPSUxFUlBMQVRFCisKKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCitsdF9zYXZlX0NDPSRDQworbHRfc2F2ZV9DRkxBR1M9JENGTEFHUworbHRfc2F2ZV9HQ0M9JEdDQworR0NDPXllcworQ0M9JHtHT0MtImdjY2dvIn0KK0NGTEFHUz0kR09GTEFHUworY29tcGlsZXI9JENDCitfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCitfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKK19MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKKworIyBHbyBkaWQgbm90IGV4aXN0IGF0IHRoZSB0aW1lIEdDQyBkaWRuJ3QgaW1wbGljaXRseSBsaW5rIGxpYmMgaW4uCitfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KKworX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKK19MVF9UQUdWQVIocmVsb2FkX2ZsYWcsICQxKT0kcmVsb2FkX2ZsYWcKK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVsb2FkX2NtZHMKKworIyMgQ0FWRUFUIEVNUFRPUjoKKyMjIFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCisjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQorIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCitpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCisgIF9MVF9DT01QSUxFUl9OT19SVFRJKCQxKQorICBfTFRfQ09NUElMRVJfUElDKCQxKQorICBfTFRfQ09NUElMRVJfQ19PKCQxKQorICBfTFRfQ09NUElMRVJfRklMRV9MT0NLUygkMSkKKyAgX0xUX0xJTktFUl9TSExJQlMoJDEpCisgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFUSCgkMSkKKworICBfTFRfQ09ORklHKCQxKQorZmkKKworQUNfTEFOR19SRVNUT1JFCisKK0dDQz0kbHRfc2F2ZV9HQ0MKK0NDPSRsdF9zYXZlX0NDCitDRkxBR1M9JGx0X3NhdmVfQ0ZMQUdTCitdKSMgX0xUX0xBTkdfR09fQ09ORklHCisKKwogIyBfTFRfTEFOR19SQ19DT05GSUcoW1RBR10pCiAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciB0aGUgV2luZG93cyByZXNvdXJjZSBjb21waWxlcgpAQCAtNjk0Niw5ICs3NjE0LDExIEBACiAKICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCiBsdF9zYXZlX0NDPSIkQ0MiCitsdF9zYXZlX0NGTEFHUz0kQ0ZMQUdTCiBsdF9zYXZlX0dDQz0kR0NDCiBHQ0M9CiBDQz0ke1JDLSJ3aW5kcmVzIn0KK0NGTEFHUz0KIGNvbXBpbGVyPSRDQwogX0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwogX0xUX0NDX0JBU0VOQU1FKFskY29tcGlsZXJdKQpAQCAtNjk2MSw3ICs3NjMxLDggQEAKIAogR0NDPSRsdF9zYXZlX0dDQwogQUNfTEFOR19SRVNUT1JFCi1DQz0iJGx0X3NhdmVfQ0MiCitDQz0kbHRfc2F2ZV9DQworQ0ZMQUdTPSRsdF9zYXZlX0NGTEFHUwogXSkjIF9MVF9MQU5HX1JDX0NPTkZJRwogCiAKQEAgLTY5ODEsNiArNzY1MiwxMyBAQAogZG5sIEFDX0RFRlVOKFtMVF9BQ19QUk9HX0dDSl0sIFtdKQogCiAKKyMgTFRfUFJPR19HTworIyAtLS0tLS0tLS0tCitBQ19ERUZVTihbTFRfUFJPR19HT10sCitbQUNfQ0hFQ0tfVE9PTChHT0MsIGdjY2dvLCkKK10pCisKKwogIyBMVF9QUk9HX1JDCiAjIC0tLS0tLS0tLS0KIEFDX0RFRlVOKFtMVF9QUk9HX1JDXSwKQEAgLTcwMjAsNiArNzY5OCwxNSBAQAogQUNfU1VCU1QoW09CSkRVTVBdKQogXSkKIAorIyBfTFRfREVDTF9ETExUT09MCisjIC0tLS0tLS0tLS0tLS0tLS0KKyMgRW5zdXJlIERMTFRPT0wgdmFyaWFibGUgaXMgc2V0LgorbTRfZGVmdW4oW19MVF9ERUNMX0RMTFRPT0xdLAorW0FDX0NIRUNLX1RPT0woRExMVE9PTCwgZGxsdG9vbCwgZmFsc2UpCit0ZXN0IC16ICIkRExMVE9PTCIgJiYgRExMVE9PTD1kbGx0b29sCitfTFRfREVDTChbXSwgW0RMTFRPT0xdLCBbMV0sIFtETEwgY3JlYXRpb24gcHJvZ3JhbV0pCitBQ19TVUJTVChbRExMVE9PTF0pCitdKQogCiAjIF9MVF9ERUNMX1NFRAogIyAtLS0tLS0tLS0tLS0KQEAgLTcxMTMsOCArNzgwMCw4IEBACiAjIFRyeSBzb21lIFhTSSBmZWF0dXJlcwogeHNpX3NoZWxsPW5vCiAoIF9sdF9kdW1teT0iYS9iL2MiCi0gIHRlc3QgIiR7X2x0X2R1bW15IyMqL30sJHtfbHRfZHVtbXklLyp9LCIke19sdF9kdW1teSUiJF9sdF9kdW1teSJ9LCBcCi0gICAgICA9IGMsYS9iLCwgXAorICB0ZXN0ICIke19sdF9kdW1teSMjKi99LCR7X2x0X2R1bW15JS8qfSwke19sdF9kdW1teSM/P30iJHtfbHRfZHVtbXklIiRfbHRfZHVtbXkifSwgXAorICAgICAgPSBjLGEvYixiL2MsIFwKICAgICAmJiBldmFsICd0ZXN0ICQoKCAxICsgMSApKSAtZXEgMiBcCiAgICAgJiYgdGVzdCAiJHsjX2x0X2R1bW15fSIgLWVxIDUnICkgPi9kZXYvbnVsbCAyPiYxIFwKICAgJiYgeHNpX3NoZWxsPXllcwpAQCAtNzE1MywyMDggKzc4NDAsMTYyIEBACiBdKSMgX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTCiAKIAotIyBfTFRfUFJPR19YU0lfU0hFTExGTlMKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEJvdXJuZSBhbmQgWFNJIGNvbXBhdGlibGUgdmFyaWFudHMgb2Ygc29tZSB1c2VmdWwgc2hlbGwgZnVuY3Rpb25zLgotbTRfZGVmdW4oW19MVF9QUk9HX1hTSV9TSEVMTEZOU10sCi1bY2FzZSAkeHNpX3NoZWxsIGluCi0gIHllcykKLSAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotCi0jIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKLSMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotZnVuY19kaXJuYW1lICgpCi17Ci0gIGNhc2UgJHsxfSBpbgotICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7Ci0gICAgKiAgKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IiA7OwotICBlc2FjCi19Ci0KLSMgZnVuY19iYXNlbmFtZSBmaWxlCi1mdW5jX2Jhc2VuYW1lICgpCi17Ci0gIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSIKLX0KLQotIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAotIyBwZXJmb3JtIGZ1bmNfYmFzZW5hbWUgYW5kIGZ1bmNfZGlybmFtZSBpbiBhIHNpbmdsZSBmdW5jdGlvbgotIyBjYWxsOgotIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25lbXB0eSwKLSMgICAgICAgICAgICAgYWRkIEFQUEVORCB0byB0aGUgcmVzdWx0LCBvdGhlcndpc2Ugc2V0IHJlc3VsdAotIyAgICAgICAgICAgICB0byBOT05ESVJfUkVQTEFDRU1FTlQuCi0jICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSMgICBiYXNlbmFtZTogQ29tcHV0ZSBmaWxlbmFtZSBvZiBGSUxFLgotIyAgICAgICAgICAgICB2YWx1ZSByZXR1bmVkIGluICIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0jIEltcGxlbWVudGF0aW9uIG11c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5hbWUKLSMgYW5kIGZ1bmNfYmFzZW5hbWUuIEZvciBlZmZpY2llbmN5LCB3ZSBkbyBub3QgZGVsZWdhdGUgdG8KLSMgdGhvc2UgZnVuY3Rpb25zIGJ1dCBpbnN0ZWFkIGR1cGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSBoZXJlLgotZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQotewotICBjYXNlICR7MX0gaW4KLSAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OwotICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKLSAgZXNhYwotICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iCi19Ci0KLSMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCi0jIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgotIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKLSMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZwotIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgotZnVuY19zdHJpcG5hbWUgKCkKLXsKLSAgIyBwZGtzaCA1LjIuMTQgZG9lcyBub3QgZG8gJHtYJSRZfSBjb3JyZWN0bHkgaWYgYm90aCBYIGFuZCBZIGFyZQotICAjIHBvc2l0aW9uYWwgcGFyYW1ldGVycywgc28gYXNzaWduIG9uZSB0byBvcmRpbmFyeSBwYXJhbWV0ZXIgZmlyc3QuCi0gIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0kezN9Ci0gIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCMiJHsxfSJ9Ci0gIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0ke2Z1bmNfc3RyaXBuYW1lX3Jlc3VsdCUiJHsyfSJ9Ci19Ci0KLSMgZnVuY19vcHRfc3BsaXQKLWZ1bmNfb3B0X3NwbGl0ICgpCi17Ci0gIGZ1bmNfb3B0X3NwbGl0X29wdD0kezElJT0qfQotICBmdW5jX29wdF9zcGxpdF9hcmc9JHsxIyo9fQotfQotCi0jIGZ1bmNfbG8ybyBvYmplY3QKLWZ1bmNfbG8ybyAoKQotewotICBjYXNlICR7MX0gaW4KLSAgICAqLmxvKSBmdW5jX2xvMm9fcmVzdWx0PSR7MSUubG99LiR7b2JqZXh0fSA7OwotICAgICopICAgIGZ1bmNfbG8yb19yZXN1bHQ9JHsxfSA7OwotICBlc2FjCi19Ci0KLSMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCi1mdW5jX3hmb3JtICgpCi17Ci0gIGZ1bmNfeGZvcm1fcmVzdWx0PSR7MSUuKn0ubG8KLX0KLQotIyBmdW5jX2FyaXRoIGFyaXRobWV0aWMtdGVybS4uLgotZnVuY19hcml0aCAoKQotewotICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCggJFsqXSApKQotfQotCi0jIGZ1bmNfbGVuIHN0cmluZwotIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgotZnVuY19sZW4gKCkKLXsKLSAgZnVuY19sZW5fcmVzdWx0PSR7IzF9Ci19Ci0KLV9MVF9FT0YKLSAgICA7OwotICAqKSAjIEJvdXJuZSBjb21wYXRpYmxlIGZ1bmN0aW9ucy4KLSAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotCi0jIGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSMgQ29tcHV0ZSB0aGUgZGlybmFtZSBvZiBGSUxFLiAgSWYgbm9uZW1wdHksIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwKLSMgb3RoZXJ3aXNlIHNldCByZXN1bHQgdG8gTk9ORElSX1JFUExBQ0VNRU5ULgotZnVuY19kaXJuYW1lICgpCi17Ci0gICMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0aGUgYXJndW1lbnQuCi0gIGZ1bmNfZGlybmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGRpcm5hbWUiYAotICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFtZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgotICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iCi0gIGVsc2UKLSAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1lX3Jlc3VsdCR7Mn0iCi0gIGZpCi19Ci0KLSMgZnVuY19iYXNlbmFtZSBmaWxlCi1mdW5jX2Jhc2VuYW1lICgpCi17Ci0gIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRiYXNlbmFtZSJgCi19Ci0KLWRubCBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lCi1kbmwgQSBwb3J0YWJsZSB2ZXJzaW9uIG9mIHRoaXMgZnVuY3Rpb24gaXMgYWxyZWFkeSBkZWZpbmVkIGluIGdlbmVyYWwubTRzaAotZG5sIHNvIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGl0IGhlcmUuCi0KLSMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCi0jIHN0cmlwIFBSRUZJWCBhbmQgU1VGRklYIG9mZiBvZiBOQU1FLgotIyBQUkVGSVggYW5kIFNVRkZJWCBtdXN0IG5vdCBjb250YWluIGdsb2JiaW5nIG9yIHJlZ2V4IHNwZWNpYWwKLSMgY2hhcmFjdGVycywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZwotIyBkb3QgKGluIHdoaWNoIGNhc2UgdGhhdCBtYXRjaGVzIG9ubHkgYSBkb3QpLgotIyBmdW5jX3N0cmlwX3N1ZmZpeCBwcmVmaXggbmFtZQotZnVuY19zdHJpcG5hbWUgKCkKLXsKLSAgY2FzZSAkezJ9IGluCi0gICAgLiopIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIlgkezN9IiBcCi0gICAgICAgICAgIHwgJFhzZWQgLWUgInMlXiR7MX0lJSIgLWUgInMlXFxcXCR7Mn1cJCUlImA7OwotICAgICopICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICJYJHszfSIgXAotICAgICAgICAgICB8ICRYc2VkIC1lICJzJV4kezF9JSUiIC1lICJzJSR7Mn1cJCUlImA7OwotICBlc2FjCi19Ci0KLSMgc2VkIHNjcmlwdHM6Ci1teV9zZWRfbG9uZ19vcHQ9JzFzL15cKC1bW149XV0qXCk9LiovXDEvO3EnCi1teV9zZWRfbG9uZ19hcmc9JzFzL14tW1tePV1dKj0vLycKLQotIyBmdW5jX29wdF9zcGxpdAotZnVuY19vcHRfc3BsaXQgKCkKLXsKLSAgZnVuY19vcHRfc3BsaXRfb3B0PWAkRUNITyAiWCR7MX0iIHwgJFhzZWQgLWUgIiRteV9zZWRfbG9uZ19vcHQiYAotICBmdW5jX29wdF9zcGxpdF9hcmc9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJG15X3NlZF9sb25nX2FyZyJgCi19Ci0KLSMgZnVuY19sbzJvIG9iamVjdAotZnVuY19sbzJvICgpCi17Ci0gIGZ1bmNfbG8yb19yZXN1bHQ9YCRFQ0hPICJYJHsxfSIgfCAkWHNlZCAtZSAiJGxvMm8iYAotfQotCi0jIGZ1bmNfeGZvcm0gbGlib2JqLW9yLXNvdXJjZQotZnVuY194Zm9ybSAoKQotewotICBmdW5jX3hmb3JtX3Jlc3VsdD1gJEVDSE8gIlgkezF9IiB8ICRYc2VkIC1lICdzL1wuW1teLl1dKiQvLmxvLydgCi19Ci0KLSMgZnVuY19hcml0aCBhcml0aG1ldGljLXRlcm0uLi4KLWZ1bmNfYXJpdGggKCkKLXsKLSAgZnVuY19hcml0aF9yZXN1bHQ9YGV4cHIgIiRbQF0iYAotfQotCi0jIGZ1bmNfbGVuIHN0cmluZwotIyBTVFJJTkcgbWF5IG5vdCBzdGFydCB3aXRoIGEgaHlwaGVuLgotZnVuY19sZW4gKCkKLXsKLSAgZnVuY19sZW5fcmVzdWx0PWBleHByICIkWzFdIiA6ICIuKiIgMj4vZGV2L251bGwgfHwgZWNobyAkbWF4X2NtZF9sZW5gCi19Ci0KLV9MVF9FT0YKLWVzYWMKLQotY2FzZSAkbHRfc2hlbGxfYXBwZW5kIGluCi0gIHllcykKLSAgICBjYXQgPDwgXF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotCi0jIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQotIyBBcHBlbmQgVkFMVUUgdG8gdGhlIGVuZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIuCi1mdW5jX2FwcGVuZCAoKQotewotICBldmFsICIkWzFdKz1cJFsyXSIKLX0KLV9MVF9FT0YKLSAgICA7OwotICAqKQotICAgIGNhdCA8PCBcX0xUX0VPRiA+PiAiJGNmZ2ZpbGUiCi0KLSMgZnVuY19hcHBlbmQgdmFyIHZhbHVlCi0jIEFwcGVuZCBWQUxVRSB0byB0aGUgZW5kIG9mIHNoZWxsIHZhcmlhYmxlIFZBUi4KLWZ1bmNfYXBwZW5kICgpCi17Ci0gIGV2YWwgIiRbMV09XCQkWzFdXCRbMl0iCi19Ci0KLV9MVF9FT0YKLSAgICA7OwotICBlc2FjCisjIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UgKEZVTkNOQU1FLCBSRVBMQUNFTUVOVC1CT0RZKQorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSW4gYCRjZmdmaWxlJywgbG9vayBmb3IgZnVuY3Rpb24gRlVOQ05BTUUgZGVsaW1pdGVkIGJ5IGBeRlVOQ05BTUUgKCkkJyBhbmQKKyMgJ159IEZVTkNOQU1FICcsIGFuZCByZXBsYWNlIGl0cyBib2R5IHdpdGggUkVQTEFDRU1FTlQtQk9EWS4KK200X2RlZnVuKFtfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFXSwKK1tkbmwgeworc2VkIC1lICcvXiQxICgpJC8sL159ICMgJDEgL2NcCiskMSAoKVwKK3tcCittNF9icGF0c3Vic3RzKFskMl0sIFskXSwgW1xcXSwgW15cKFsJIF1cKV0sIFtcXFwxXSkKK30gIyBFeHRlbmRlZC1zaGVsbCAkMSBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCisgICYmIG12IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAorICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCit0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgogXSkKKworCisjIF9MVF9QUk9HX1JFUExBQ0VfU0hFTExGTlMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBSZXBsYWNlIGV4aXN0aW5nIHBvcnRhYmxlIGltcGxlbWVudGF0aW9ucyBvZiBzZXZlcmFsIHNoZWxsIGZ1bmN0aW9ucyB3aXRoCisjIGVxdWl2YWxlbnQgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb25zIHdoZXJlIHRob3NlIGZlYXR1cmVzIGFyZSBhdmFpbGFibGUuLgorbTRfZGVmdW4oW19MVF9QUk9HX1JFUExBQ0VfU0hFTExGTlNdLAorW2lmIHRlc3QgeCIkeHNpX3NoZWxsIiA9IHh5ZXM7IHRoZW4KKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19kaXJuYW1lXSwgW2RubAorICAgIGNhc2UgJHsxfSBpbgorICAgICAgKi8qKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezElLyp9JHsyfSIgOzsKKyAgICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIgOzsKKyAgICBlc2FjXSkKKworICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2Jhc2VuYW1lXSwgW2RubAorICAgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSJdKQorCisgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWVdLCBbZG5sCisgICAgY2FzZSAkezF9IGluCisgICAgICAqLyopIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OworICAgICAgKiAgKSBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkezN9IiA7OworICAgIGVzYWMKKyAgICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30iXSkKKworICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX3N0cmlwbmFtZV0sIFtkbmwKKyAgICAjIHBka3NoIDUuMi4xNCBkb2VzIG5vdCBkbyAke1glJFl9IGNvcnJlY3RseSBpZiBib3RoIFggYW5kIFkgYXJlCisgICAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LgorICAgIGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdD0kezN9CisgICAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0IyIkezF9In0KKyAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9yZXN1bHQlIiR7Mn0ifV0pCisKKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19zcGxpdF9sb25nX29wdF0sIFtkbmwKKyAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X25hbWU9JHsxJSU9Kn0KKyAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X2FyZz0kezEjKj19XSkKKworICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX3NwbGl0X3Nob3J0X29wdF0sIFtkbmwKKyAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmc9JHsxIz8/fQorICAgIGZ1bmNfc3BsaXRfc2hvcnRfb3B0X25hbWU9JHsxJSIkZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnIn1dKQorCisgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfbG8yb10sIFtkbmwKKyAgICBjYXNlICR7MX0gaW4KKyAgICAgICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5sb30uJHtvYmpleHR9IDs7CisgICAgICAqKSAgICBmdW5jX2xvMm9fcmVzdWx0PSR7MX0gOzsKKyAgICBlc2FjXSkKKworICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX3hmb3JtXSwgWyAgICBmdW5jX3hmb3JtX3Jlc3VsdD0kezElLip9LmxvXSkKKworICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2FyaXRoXSwgWyAgICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCggJFsqXSApKV0pCisKKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19sZW5dLCBbICAgIGZ1bmNfbGVuX3Jlc3VsdD0keyMxfV0pCitmaQorCitpZiB0ZXN0IHgiJGx0X3NoZWxsX2FwcGVuZCIgPSB4eWVzOyB0aGVuCisgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfYXBwZW5kXSwgWyAgICBldmFsICIkezF9Kz1cXCR7Mn0iXSkKKworICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2FwcGVuZF9xdW90ZWRdLCBbZG5sCisgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHsyfSIKK2RubCBtNCBleHBhbnNpb24gdHVybnMgXFxcXCBpbnRvIFxcLCBhbmQgdGhlbiB0aGUgc2hlbGwgZXZhbCB0dXJucyB0aGF0IGludG8gXAorICAgIGV2YWwgIiR7MX0rPVxcXFwgXFwkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiXSkKKworICAjIFNhdmUgYSBgZnVuY19hcHBlbmQnIGZ1bmN0aW9uIGNhbGwgd2hlcmUgcG9zc2libGUgYnkgZGlyZWN0IHVzZSBvZiAnKz0nCisgIHNlZCAtZSAncyVmdW5jX2FwcGVuZCBcKFtbYS16QS1aX11dXHsxLFx9XCkgIiVcMSs9IiVnJyAkY2ZnZmlsZSA+ICRjZmdmaWxlLnRtcCBcCisgICAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCisgICAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQorICB0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgorZWxzZQorICAjIFNhdmUgYSBgZnVuY19hcHBlbmQnIGZ1bmN0aW9uIGNhbGwgZXZlbiB3aGVuICcrPScgaXMgbm90IGF2YWlsYWJsZQorICBzZWQgLWUgJ3MlZnVuY19hcHBlbmQgXChbW2EtekEtWl9dXVx7MSxcfVwpICIlXDE9IiRcMSVnJyAkY2ZnZmlsZSA+ICRjZmdmaWxlLnRtcCBcCisgICAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCisgICAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQorICB0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgorZmkKKworaWYgdGVzdCB4IiRfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsIiA9IHgiOiI7IHRoZW4KKyAgQUNfTVNHX1dBUk4oW1VuYWJsZSB0byBzdWJzdGl0dXRlIGV4dGVuZGVkIHNoZWxsIGZ1bmN0aW9ucyBpbiAkb2ZpbGVdKQorZmkKK10pCisKKyMgX0xUX1BBVEhfQ09OVkVSU0lPTl9GVU5DVElPTlMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgRGV0ZXJtaW5lIHdoaWNoIGZpbGUgbmFtZSBjb252ZXJzaW9uIGZ1bmN0aW9ucyBzaG91bGQgYmUgdXNlZCBieQorIyBmdW5jX3RvX2hvc3RfZmlsZSAoYW5kLCBpbXBsaWNpdGx5LCBieSBmdW5jX3RvX2hvc3RfcGF0aCkuICBUaGVzZSBhcmUgbmVlZGVkCisjIGZvciBjZXJ0YWluIGNyb3NzLWNvbXBpbGUgY29uZmlndXJhdGlvbnMgYW5kIG5hdGl2ZSBtaW5ndy4KK200X2RlZnVuKFtfTFRfUEFUSF9DT05WRVJTSU9OX0ZVTkNUSU9OU10sCitbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAorQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0JVSUxEXSlkbmwKK0FDX01TR19DSEVDS0lORyhbaG93IHRvIGNvbnZlcnQgJGJ1aWxkIGZpbGUgbmFtZXMgdG8gJGhvc3QgZm9ybWF0XSkKK0FDX0NBQ0hFX1ZBTChsdF9jdl90b19ob3N0X2ZpbGVfY21kLAorW2Nhc2UgJGhvc3QgaW4KKyAgKi0qLW1pbmd3KiApCisgICAgY2FzZSAkYnVpbGQgaW4KKyAgICAgICotKi1taW5ndyogKSAjIGFjdHVhbGx5IG1zeXMKKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgorICAgICAgICA7OworICAgICAgKi0qLWN5Z3dpbiogKQorICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX2N5Z3dpbl90b193MzIKKyAgICAgICAgOzsKKyAgICAgICogKSAjIG90aGVyd2lzZSwgYXNzdW1lICpuaXgKKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fdzMyCisgICAgICAgIDs7CisgICAgZXNhYworICAgIDs7CisgICotKi1jeWd3aW4qICkKKyAgICBjYXNlICRidWlsZCBpbgorICAgICAgKi0qLW1pbmd3KiApICMgYWN0dWFsbHkgbXN5cworICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fY3lnd2luCisgICAgICAgIDs7CisgICAgICAqLSotY3lnd2luKiApCisgICAgICAgIGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbm9vcAorICAgICAgICA7OworICAgICAgKiApICMgb3RoZXJ3aXNlLCBhc3N1bWUgKm5peAorICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25peF90b19jeWd3aW4KKyAgICAgICAgOzsKKyAgICBlc2FjCisgICAgOzsKKyAgKiApICMgdW5oYW5kbGVkIGhvc3RzIChhbmQgIm5vcm1hbCIgbmF0aXZlIGJ1aWxkcykKKyAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3AKKyAgICA7OworZXNhYworXSkKK3RvX2hvc3RfZmlsZV9jbWQ9JGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQKK0FDX01TR19SRVNVTFQoWyRsdF9jdl90b19ob3N0X2ZpbGVfY21kXSkKK19MVF9ERUNMKFt0b19ob3N0X2ZpbGVfY21kXSwgW2x0X2N2X3RvX2hvc3RfZmlsZV9jbWRdLAorICAgICAgICAgWzBdLCBbY29udmVydCAkYnVpbGQgZmlsZSBuYW1lcyB0byAkaG9zdCBmb3JtYXRdKWRubAorCitBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBjb252ZXJ0ICRidWlsZCBmaWxlIG5hbWVzIHRvIHRvb2xjaGFpbiBmb3JtYXRdKQorQUNfQ0FDSEVfVkFMKGx0X2N2X3RvX3Rvb2xfZmlsZV9jbWQsCitbI2Fzc3VtZSBvcmRpbmFyeSBjcm9zcyB0b29scywgb3IgbmF0aXZlIGJ1aWxkLgorbHRfY3ZfdG9fdG9vbF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9ub29wCitjYXNlICRob3N0IGluCisgICotKi1taW5ndyogKQorICAgIGNhc2UgJGJ1aWxkIGluCisgICAgICAqLSotbWluZ3cqICkgIyBhY3R1YWxseSBtc3lzCisgICAgICAgIGx0X2N2X3RvX3Rvb2xfZmlsZV9jbWQ9ZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKKyAgICAgICAgOzsKKyAgICBlc2FjCisgICAgOzsKK2VzYWMKK10pCit0b190b29sX2ZpbGVfY21kPSRsdF9jdl90b190b29sX2ZpbGVfY21kCitBQ19NU0dfUkVTVUxUKFskbHRfY3ZfdG9fdG9vbF9maWxlX2NtZF0pCitfTFRfREVDTChbdG9fdG9vbF9maWxlX2NtZF0sIFtsdF9jdl90b190b29sX2ZpbGVfY21kXSwKKyAgICAgICAgIFswXSwgW2NvbnZlcnQgJGJ1aWxkIGZpbGVzIHRvIHRvb2xjaGFpbiBmb3JtYXRdKWRubAorXSkjIF9MVF9QQVRIX0NPTlZFUlNJT05fRlVOQ1RJT05TCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2x0b3B0aW9ucy5tNCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvbHRvcHRpb25zLm00CmluZGV4IDM0MTUxYTMuLjVkOWFjZDggMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvbHRvcHRpb25zLm00CisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvbHRvcHRpb25zLm00CkBAIC0xLDEzICsxLDE0IEBACiAjIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9wdGlvbiBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KICMKLSMgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKKyMgICBJbmMuCiAjICAgV3JpdHRlbiBieSBHYXJ5IFYuIFZhdWdoYW4sIDIwMDQKICMKICMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKICMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgogCi0jIHNlcmlhbCA2IGx0b3B0aW9ucy5tNAorIyBzZXJpYWwgNyBsdG9wdGlvbnMubTQKIAogIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3JvcywgYXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4KIEFDX0RFRlVOKFtMVE9QVElPTlNfVkVSU0lPTl0sIFttNF9pZihbMV0pXSkKQEAgLTEyNSw3ICsxMjYsNyBAQAogW2VuYWJsZV93aW4zMl9kbGw9eWVzCiAKIGNhc2UgJGhvc3QgaW4KLSotKi1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotY2VnY2MqKQorKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLWNlZ2NjKikKICAgQUNfQ0hFQ0tfVE9PTChBUywgYXMsIGZhbHNlKQogICBBQ19DSEVDS19UT09MKERMTFRPT0wsIGRsbHRvb2wsIGZhbHNlKQogICBBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1bXAsIGZhbHNlKQpAQCAtMTMzLDEzICsxMzQsMTMgQEAKIGVzYWMKIAogdGVzdCAteiAiJEFTIiAmJiBBUz1hcwotX0xUX0RFQ0woW10sIFtBU10sICAgICAgWzBdLCBbQXNzZW1ibGVyIHByb2dyYW1dKWRubAorX0xUX0RFQ0woW10sIFtBU10sICAgICAgWzFdLCBbQXNzZW1ibGVyIHByb2dyYW1dKWRubAogCiB0ZXN0IC16ICIkRExMVE9PTCIgJiYgRExMVE9PTD1kbGx0b29sCi1fTFRfREVDTChbXSwgW0RMTFRPT0xdLCBbMF0sIFtETEwgY3JlYXRpb24gcHJvZ3JhbV0pZG5sCitfTFRfREVDTChbXSwgW0RMTFRPT0xdLCBbMV0sIFtETEwgY3JlYXRpb24gcHJvZ3JhbV0pZG5sCiAKIHRlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1bXAKLV9MVF9ERUNMKFtdLCBbT0JKRFVNUF0sIFswXSwgW09iamVjdCBkdW1wZXIgcHJvZ3JhbV0pZG5sCitfTFRfREVDTChbXSwgW09CSkRVTVBdLCBbMV0sIFtPYmplY3QgZHVtcGVyIHByb2dyYW1dKWRubAogXSkjIHdpbjMyLWRsbAogCiBBVV9ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExdLApAQCAtMzI1LDkgKzMyNiwyNCBAQAogIyBNT0RFIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYGJvdGgnLgogbTRfZGVmaW5lKFtfTFRfV0lUSF9QSUNdLAogW0FDX0FSR19XSVRIKFtwaWNdLAotICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLXBpY10sCisgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtcGljQDw6QD1QS0dTQDo+QF0sCiAJW3RyeSB0byB1c2Ugb25seSBQSUMvbm9uLVBJQyBvYmplY3RzIEA8OkBkZWZhdWx0PXVzZSBib3RoQDo+QF0pXSwKLSAgICBbcGljX21vZGU9IiR3aXRodmFsIl0sCisgICAgW2x0X3A9JHtQQUNLQUdFLWRlZmF1bHR9CisgICAgY2FzZSAkd2l0aHZhbCBpbgorICAgIHllc3xubykgcGljX21vZGU9JHdpdGh2YWwgOzsKKyAgICAqKQorICAgICAgcGljX21vZGU9ZGVmYXVsdAorICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgorICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCisgICAgICBmb3IgbHRfcGtnIGluICR3aXRodmFsOyBkbworCUlGUz0iJGx0X3NhdmVfaWZzIgorCWlmIHRlc3QgIlgkbHRfcGtnIiA9ICJYJGx0X3AiOyB0aGVuCisJICBwaWNfbW9kZT15ZXMKKwlmaQorICAgICAgZG9uZQorICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCisgICAgICA7OworICAgIGVzYWNdLAogICAgIFtwaWNfbW9kZT1kZWZhdWx0XSkKIAogdGVzdCAteiAiJHBpY19tb2RlIiAmJiBwaWNfbW9kZT1tNF9kZWZhdWx0KFskMV0sIFtkZWZhdWx0XSkKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvbHR2ZXJzaW9uLm00IGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9sdHZlcnNpb24ubTQKaW5kZXggYjhlMTU0Zi4uMDdhODYwMiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9sdHZlcnNpb24ubTQKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9sdHZlcnNpb24ubTQKQEAgLTcsMTcgKzcsMTcgQEAKICMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgogCi0jIEdlbmVyYXRlZCBmcm9tIGx0dmVyc2lvbi5pbi4KKyMgQGNvbmZpZ3VyZV9pbnB1dEAKIAotIyBzZXJpYWwgMzAxMiBsdHZlcnNpb24ubTQKKyMgc2VyaWFsIDMzMzcgbHR2ZXJzaW9uLm00CiAjIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBMaWJ0b29sCiAKLW00X2RlZmluZShbTFRfUEFDS0FHRV9WRVJTSU9OXSwgWzIuMi42XSkKLW00X2RlZmluZShbTFRfUEFDS0FHRV9SRVZJU0lPTl0sIFsxLjMwMTJdKQorbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1ZFUlNJT05dLCBbMi40LjJdKQorbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1JFVklTSU9OXSwgWzEuMzMzN10pCiAKIEFDX0RFRlVOKFtMVFZFUlNJT05fVkVSU0lPTl0sCi1bbWFjcm9fdmVyc2lvbj0nMi4yLjYnCi1tYWNyb19yZXZpc2lvbj0nMS4zMDEyJworW21hY3JvX3ZlcnNpb249JzIuNC4yJworbWFjcm9fcmV2aXNpb249JzEuMzMzNycKIF9MVF9ERUNMKCwgbWFjcm9fdmVyc2lvbiwgMCwgW1doaWNoIHJlbGVhc2Ugb2YgbGlidG9vbC5tNCB3YXMgdXNlZD9dKQogX0xUX0RFQ0woLCBtYWNyb19yZXZpc2lvbiwgMCkKIF0pCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2x0fm9ic29sZXRlLm00IGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tNC9sdH5vYnNvbGV0ZS5tNAppbmRleCA2MzdiYjIwLi5jNTczZGE5IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL200L2x0fm9ic29sZXRlLm00CisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbTQvbHR+b2Jzb2xldGUubTQKQEAgLTEsMTMgKzEsMTMgQEAKICMgbHR+b2Jzb2xldGUubTQgLS0gYWNsb2NhbCBzYXRpc2Z5aW5nIG9ic29sZXRlIGRlZmluaXRpb25zLiAgICAtKi1BdXRvY29uZi0qLQogIwotIyAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAjICAgV3JpdHRlbiBieSBTY290dCBKYW1lcyBSZW1uYW50LCAyMDA0LgogIwogIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwogIyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCiAKLSMgc2VyaWFsIDQgbHR+b2Jzb2xldGUubTQKKyMgc2VyaWFsIDUgbHR+b2Jzb2xldGUubTQKIAogIyBUaGVzZSBleGlzdCBlbnRpcmVseSB0byBmb29sIGFjbG9jYWwgd2hlbiBib290c3RyYXBwaW5nIGxpYnRvb2wuCiAjCkBAIC03Nyw3ICs3Nyw2IEBACiBtNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NYWF0sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NYWF0pXSkKIG00X2lmbmRlZihbX0xUX0FDX0xBTkdfRjc3XSwJCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfRjc3XSldKQogbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pdLAkJW0FDX0RFRlVOKFtfTFRfQUNfTEFOR19HQ0pdKV0pCi1tNF9pZm5kZWYoW0FDX0xJQlRPT0xfUkNdLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1JDXSldKQogbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfTEFOR19DX0NPTkZJR10pXSkKIG00X2lmbmRlZihbX0xUX0FDX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NfQ09ORklHXSldKQogbTRfaWZuZGVmKFtBQ19MSUJUT09MX0xBTkdfQ1hYX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUddKV0pCkBAIC05MCwzICs4OSwxMCBAQAogbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19SQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX1JDX0NPTkZJR10pXSkKIG00X2lmbmRlZihbQUNfTElCVE9PTF9DT05GSUddLAkJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0NPTkZJR10pXSkKIG00X2lmbmRlZihbX0xUX0FDX0ZJTEVfTFRETExfQ10sCVtBQ19ERUZVTihbX0xUX0FDX0ZJTEVfTFRETExfQ10pXSkKK200X2lmbmRlZihbX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1NdLAlbQUNfREVGVU4oW19MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTXSldKQorbTRfaWZuZGVmKFtfTFRfQUNfUFJPR19DWFhDUFBdLAkJW0FDX0RFRlVOKFtfTFRfQUNfUFJPR19DWFhDUFBdKV0pCittNF9pZm5kZWYoW19MVF9QUkVQQVJFX1NFRF9RVU9URV9WQVJTXSwJW0FDX0RFRlVOKFtfTFRfUFJFUEFSRV9TRURfUVVPVEVfVkFSU10pXSkKK200X2lmbmRlZihbX0xUX1BST0dfRUNIT19CQUNLU0xBU0hdLAlbQUNfREVGVU4oW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSldKQorbTRfaWZuZGVmKFtfTFRfUFJPR19GNzddLAkJW0FDX0RFRlVOKFtfTFRfUFJPR19GNzddKV0pCittNF9pZm5kZWYoW19MVF9QUk9HX0ZDXSwJCVtBQ19ERUZVTihbX0xUX1BST0dfRkNdKV0pCittNF9pZm5kZWYoW19MVF9QUk9HX0NYWF0sCQlbQUNfREVGVU4oW19MVF9QUk9HX0NYWF0pXSkKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWFuL01ha2VmaWxlLmFtIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tYW4vTWFrZWZpbGUuYW0KaW5kZXggMjUxOTI3Ny4uYWZjYmZiNiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tYW4vTWFrZWZpbGUuYW0KKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tYW4vTWFrZWZpbGUuYW0KQEAgLTIsNyArMiw3IEBACiAKIEFVVE9NQUtFX09QVElPTlM9Zm9yZWlnbgogCi1FWFRSQV9ESVNUID0gZmZpLjMgZmZpX2NhbGwuMyBmZmlfcHJlcF9jaWYuMworRVhUUkFfRElTVCA9IGZmaS4zIGZmaV9jYWxsLjMgZmZpX3ByZXBfY2lmLjMgZmZpX3ByZXBfY2lmX3Zhci4zCiAKLW1hbl9NQU5TID0gZmZpLjMgZmZpX2NhbGwuMyBmZmlfcHJlcF9jaWYuMworbWFuX01BTlMgPSBmZmkuMyBmZmlfY2FsbC4zIGZmaV9wcmVwX2NpZi4zIGZmaV9wcmVwX2NpZl92YXIuMwogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL21hbi9NYWtlZmlsZS5pbiBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWFuL01ha2VmaWxlLmluCmluZGV4IDNlNDBiZTIuLmIyOWZiMTUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWFuL01ha2VmaWxlLmluCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWFuL01ha2VmaWxlLmluCkBAIC0xLDkgKzEsOSBAQAotIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMSBmcm9tIE1ha2VmaWxlLmFtLgorIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4zIGZyb20gTWFrZWZpbGUuYW0uCiAjIEBjb25maWd1cmVfaW5wdXRACiAKICMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0jIEluYy4KKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4KICMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCiAjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCiAjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KQEAgLTY4LDYgKzY4LDEyIEBACiBhbV9fYmFzZV9saXN0ID0gXAogICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnIHwgXAogICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCithbV9fdW5pbnN0YWxsX2ZpbGVzX2Zyb21fZGlyID0geyBcCisgIHRlc3QgLXogIiQkZmlsZXMiIFwKKyAgICB8fCB7IHRlc3QgISAtZCAiJCRkaXIiICYmIHRlc3QgISAtZiAiJCRkaXIiICYmIHRlc3QgISAtciAiJCRkaXIiOyB9IFwKKyAgICB8fCB7IGVjaG8gIiAoIGNkICckJGRpcicgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCisgICAgICAgICAkKGFtX19jZCkgIiQkZGlyIiAmJiBybSAtZiAkJGZpbGVzOyB9OyBcCisgIH0KIG1hbjNkaXIgPSAkKG1hbmRpcikvbWFuMwogYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKG1hbjNkaXIpIgogTlJPRkYgPSBucm9mZgpAQCAtNzYsNiArODIsNyBAQAogQUNMT0NBTCA9IEBBQ0xPQ0FMQAogQUxMT0NBID0gQEFMTE9DQUAKIEFNVEFSID0gQEFNVEFSQAorQU1fTFRMREZMQUdTID0gQEFNX0xUTERGTEFHU0AKIEFNX1JVTlRFU1RGTEFHUyA9IEBBTV9SVU5URVNURkxBR1NACiBBUiA9IEBBUkAKIEFVVE9DT05GID0gQEFVVE9DT05GQApAQCAtOTMsNiArMTAwLDcgQEAKIENZR1BBVEhfVyA9IEBDWUdQQVRIX1dACiBERUZTID0gQERFRlNACiBERVBESVIgPSBAREVQRElSQAorRExMVE9PTCA9IEBETExUT09MQAogRFNZTVVUSUwgPSBARFNZTVVUSUxACiBEVU1QQklOID0gQERVTVBCSU5ACiBFQ0hPX0MgPSBARUNIT19DQApAQCAtMTAwLDYgKzEwOCw3IEBACiBFQ0hPX1QgPSBARUNIT19UQAogRUdSRVAgPSBARUdSRVBACiBFWEVFWFQgPSBARVhFRVhUQAorRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRSA9IEBGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFQAogRkdSRVAgPSBARkdSRVBACiBHUkVQID0gQEdSRVBACiBIQVZFX0xPTkdfRE9VQkxFID0gQEhBVkVfTE9OR19ET1VCTEVACkBAIC0xMTgsNiArMTI3LDcgQEAKIExUTElCT0JKUyA9IEBMVExJQk9CSlNACiBNQUlOVCA9IEBNQUlOVEAKIE1BS0VJTkZPID0gQE1BS0VJTkZPQAorTUFOSUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAogTUtESVJfUCA9IEBNS0RJUl9QQAogTk0gPSBATk1ACiBOTUVESVQgPSBATk1FRElUQApAQCAtMTMwLDYgKzE0MCw3IEBACiBQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAogUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACiBQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAorUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACiBQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAogUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACiBSQU5MSUIgPSBAUkFOTElCQApAQCAtMTQ0LDYgKzE1NSw3IEBACiBhYnNfc3JjZGlyID0gQGFic19zcmNkaXJACiBhYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACiBhYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKK2FjX2N0X0FSID0gQGFjX2N0X0FSQAogYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACiBhY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACiBhbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKQEAgLTE3Niw3ICsxODgsNiBAQAogbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAogbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKIGxvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLWx0X0VDSE8gPSBAbHRfRUNIT0AKIG1hbmRpciA9IEBtYW5kaXJACiBta2Rpcl9wID0gQG1rZGlyX3BACiBvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACkBAIC0xOTksOCArMjEwLDggQEAKIHRvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACiB0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACiBBVVRPTUFLRV9PUFRJT05TID0gZm9yZWlnbgotRVhUUkFfRElTVCA9IGZmaS4zIGZmaV9jYWxsLjMgZmZpX3ByZXBfY2lmLjMKLW1hbl9NQU5TID0gZmZpLjMgZmZpX2NhbGwuMyBmZmlfcHJlcF9jaWYuMworRVhUUkFfRElTVCA9IGZmaS4zIGZmaV9jYWxsLjMgZmZpX3ByZXBfY2lmLjMgZmZpX3ByZXBfY2lmX3Zhci4zCittYW5fTUFOUyA9IGZmaS4zIGZmaV9jYWxsLjMgZmZpX3ByZXBfY2lmLjMgZmZpX3ByZXBfY2lmX3Zhci4zCiBhbGw6IGFsbC1hbQogCiAuU1VGRklYRVM6CkBAIC0yNzUsOSArMjg2LDcgQEAKIAkgIHNlZCAtbiAnL1wuM1thLXpdKiQkL3AnOyBcCiAJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteM11bMC05YS16XSokJCwzLDt4JyBcCiAJICAgICAgLWUgJ3MsXC5bMC05YS16XSokJCwsOyQodHJhbnNmb3JtKTtHO3MsXG4sLiwnYDsgXAotCXRlc3QgLXogIiQkZmlsZXMiIHx8IHsgXAotCSAgZWNobyAiICggY2QgJyQoREVTVERJUikkKG1hbjNkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKLQkgIGNkICIkKERFU1RESVIpJChtYW4zZGlyKSIgJiYgcm0gLWYgJCRmaWxlczsgfQorCWRpcj0nJChERVNURElSKSQobWFuM2RpciknOyAkKGFtX191bmluc3RhbGxfZmlsZXNfZnJvbV9kaXIpCiB0YWdzOiBUQUdTCiBUQUdTOgogCkBAIC0zNDUsMTAgKzM1NCwxNSBAQAogCiBpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQogaW5zdGFsbC1zdHJpcDoKLQkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0JICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLQkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKKwlpZiB0ZXN0IC16ICckKFNUUklQKSc7IHRoZW4gXAorCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgICAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICAgICAgaW5zdGFsbDsgXAorCWVsc2UgXAorCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKKwkgICAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCisJICAgICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknIiBpbnN0YWxsOyBcCisJZmkKIG1vc3RseWNsZWFuLWdlbmVyaWM6CiAKIGNsZWFuLWdlbmVyaWM6CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL21hbi9mZmkuMyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWFuL2ZmaS4zCmluZGV4IDE4YjVkNWQuLjFmMWQzMDMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWFuL2ZmaS4zCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWFuL2ZmaS4zCkBAIC0xNiw2ICsxNiwxNSBAQAogLkZhICJmZmlfdHlwZSAqKmF0eXBlcyIKIC5GYwogLkZ0IHZvaWQKKy5GbyBmZmlfcHJlcF9jaWZfdmFyCisuRmEgImZmaV9jaWYgKmNpZiIKKy5GYSAiZmZpX2FiaSBhYmkiCisuRmEgInVuc2lnbmVkIGludCBuZml4ZWRhcmdzIgorLkZhICJ1bnNpZ25lZCBpbnQgbnRvdGFsYXJncyIKKy5GYSAiZmZpX3R5cGUgKnJ0eXBlIgorLkZhICJmZmlfdHlwZSAqKmF0eXBlcyIKKy5GYworLkZ0IHZvaWQKIC5GbyBmZmlfY2FsbAogLkZhICJmZmlfY2lmICpjaWYiCiAuRmEgInZvaWQgKCpmbikodm9pZCkiCkBAIC0yOCw0ICszNyw1IEBACiB0aGUgY2FsbGVkIGZ1bmN0aW9uJ3MgaW50ZXJmYWNlIGF0IGNvbXBpbGUgdGltZS4KIC5TaCBTRUUgQUxTTwogLlhyIGZmaV9wcmVwX2NpZiAzICwKKy5YciBmZmlfcHJlcF9jaWZfdmFyIDMgLAogLlhyIGZmaV9jYWxsIDMKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWFuL2ZmaV9wcmVwX2NpZi4zIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tYW4vZmZpX3ByZXBfY2lmLjMKaW5kZXggOTQzNmIzMS4uZTFiZGJkNyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tYW4vZmZpX3ByZXBfY2lmLjMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tYW4vZmZpX3ByZXBfY2lmLjMKQEAgLTM3LDcgKzM3LDkgQEAKIHBvaW50cyB0byBhbgogLk5tIGZmaV90eXBlCiB0aGF0IGRlc2NyaWJlcyB0aGUgZGF0YSB0eXBlLCBzaXplIGFuZCBhbGlnbm1lbnQgb2YgdGhlCi1yZXR1cm4gdmFsdWUuCityZXR1cm4gdmFsdWUuIE5vdGUgdGhhdCB0byBjYWxsIGEgdmFyaWFkaWMgZnVuY3Rpb24KKy5ObSBmZmlfcHJlcF9jaWZfdmFyCittdXN0IGJlIHVzZWQgaW5zdGVhZC4KIC5TaCBSRVRVUk4gVkFMVUVTCiBVcG9uIHN1Y2Nlc3NmdWwgY29tcGxldGlvbiwKIC5ObSBmZmlfcHJlcF9jaWYKQEAgLTYzLDQgKzY1LDYgQEAKIC4KIC5TaCBTRUUgQUxTTwogLlhyIGZmaSAzICwKLS5YciBmZmlfY2FsbCAzIAorLlhyIGZmaV9jYWxsIDMgLAorLlhyIGZmaV9wcmVwX2NpZl92YXIgMworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL21hbi9mZmlfcHJlcF9jaWZfdmFyLjMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL21hbi9mZmlfcHJlcF9jaWZfdmFyLjMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2UxOWQwYgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWFuL2ZmaV9wcmVwX2NpZl92YXIuMwpAQCAtMCwwICsxLDczIEBACisuRGQgSmFudWFyeSAyNSwgMjAxMQorLkR0IGZmaV9wcmVwX2NpZl92YXIgMworLlNoIE5BTUUKKy5ObSBmZmlfcHJlcF9jaWZfdmFyCisuTmQgUHJlcGFyZSBhCisuTm0gZmZpX2NpZgorc3RydWN0dXJlIGZvciB1c2Ugd2l0aAorLk5tIGZmaV9jYWxsCitmb3IgdmFyaWFkaWMgZnVuY3Rpb25zLgorLlNoIFNZTk9QU0lTCisuSW4gZmZpLmgKKy5GdCBmZmlfc3RhdHVzCisuRm8gZmZpX3ByZXBfY2lmX3ZhcgorLkZhICJmZmlfY2lmICpjaWYiCisuRmEgImZmaV9hYmkgYWJpIgorLkZhICJ1bnNpZ25lZCBpbnQgbmZpeGVkYXJncyIKKy5GYSAidW5zaWduZWQgaW50IG50b3RhbGFyZ3MiCisuRmEgImZmaV90eXBlICpydHlwZSIKKy5GYSAiZmZpX3R5cGUgKiphdHlwZXMiCisuRmMKKy5TaCBERVNDUklQVElPTgorVGhlCisuTm0gZmZpX3ByZXBfY2lmX3ZhcgorZnVuY3Rpb24gcHJlcGFyZXMgYQorLk5tIGZmaV9jaWYKK3N0cnVjdHVyZSBmb3IgdXNlIHdpdGgKKy5ObSBmZmlfY2FsbAorZm9yIHZhcmlhZGljIGZ1bmN0aW9ucy4KKy5GYSBhYmkKK3NwZWNpZmllcyBhIHNldCBvZiBjYWxsaW5nIGNvbnZlbnRpb25zIHRvIHVzZS4KKy5GYSBhdHlwZXMKK2lzIGFuIGFycmF5IG9mCisuRmEgbnRvdGFsYXJncworcG9pbnRlcnMgdG8KKy5ObSBmZmlfdHlwZQorc3RydWN0cyB0aGF0IGRlc2NyaWJlIHRoZSBkYXRhIHR5cGUsIHNpemUgYW5kIGFsaWdubWVudCBvZiBlYWNoIGFyZ3VtZW50LgorLkZhIHJ0eXBlCitwb2ludHMgdG8gYW4KKy5ObSBmZmlfdHlwZQordGhhdCBkZXNjcmliZXMgdGhlIGRhdGEgdHlwZSwgc2l6ZSBhbmQgYWxpZ25tZW50IG9mIHRoZQorcmV0dXJuIHZhbHVlLgorLkZhIG5maXhlZGFyZ3MKK211c3QgY29udGFpbiB0aGUgbnVtYmVyIG9mIGZpeGVkIChub24tdmFyaWFkaWMpIGFyZ3VtZW50cy4KK05vdGUgdGhhdCB0byBjYWxsIGEgbm9uLXZhcmlhZGljIGZ1bmN0aW9uCisuTm0gZmZpX3ByZXBfY2lmCittdXN0IGJlIHVzZWQuCisuU2ggUkVUVVJOIFZBTFVFUworVXBvbiBzdWNjZXNzZnVsIGNvbXBsZXRpb24sCisuTm0gZmZpX3ByZXBfY2lmX3ZhcgorcmV0dXJucworLk5tIEZGSV9PSyAuCitJdCB3aWxsIHJldHVybgorLk5tIEZGSV9CQURfVFlQRURFRgoraWYKKy5GYSBjaWYKK2lzCisuTm0gTlVMTAorb3IKKy5GYSBhdHlwZXMKK29yCisuRmEgcnR5cGUKK2lzIG1hbGZvcm1lZC4gSWYKKy5GYSBhYmkKK2RvZXMgbm90IHJlZmVyIHRvIGEgdmFsaWQgQUJJLAorLk5tIEZGSV9CQURfQUJJCit3aWxsIGJlIHJldHVybmVkLiBBdmFpbGFibGUgQUJJcyBhcmUKK2RlZmluZWQgaW4KKy5ObSA8ZmZpdGFyZ2V0Lmg+CisuCisuU2ggU0VFIEFMU08KKy5YciBmZmkgMyAsCisuWHIgZmZpX2NhbGwgMyAsCisuWHIgZmZpX3ByZXBfY2lmIDMKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWlzc2luZyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvbWlzc2luZwppbmRleCA4OTRlNzg2Li4yODA1NWQyIDEwMDc1NQotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL21pc3NpbmcKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9taXNzaW5nCkBAIC0xLDEwICsxLDEwIEBACiAjISAvYmluL3NoCiAjIENvbW1vbiBzdHViIGZvciBhIGZldyBtaXNzaW5nIEdOVSBwcm9ncmFtcyB3aGlsZSBpbnN0YWxsaW5nLgogCi1zY3JpcHR2ZXJzaW9uPTIwMDUtMDYtMDguMjEKK3NjcmlwdHZlcnNpb249MjAwOS0wNC0yOC4yMTsgIyBVVEMKIAotIyBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTksIDIwMDAsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUKLSMgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk5LCAyMDAwLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LAorIyAyMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogIyBPcmlnaW5hbGx5IGJ5IEZyYW4sY29pcyBQaW5hcmQgPHBpbmFyZEBpcm8udW1vbnRyZWFsLmNhPiwgMTk5Ni4KIAogIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQpAQCAtMTgsOSArMTgsNyBAQAogIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogCiAjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0jIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0jIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKLSMgMDIxMTAtMTMwMSwgVVNBLgorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIAogIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CiAjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQpAQCAtMzMsNiArMzEsOCBAQAogZmkKIAogcnVuPToKK3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRbID1dXChbXiBdKlwpLiovXDEvcCcKK3NlZF9taW51c289J3MvLiogLW8gXChbXiBdKlwpLiovXDEvcCcKIAogIyBJbiB0aGUgY2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVuIGluIHRoZQogIyBzcmNkaXIgYWxyZWFkeS4KQEAgLTQ0LDcgKzQ0LDcgQEAKIAogbXNnPSJtaXNzaW5nIG9uIHlvdXIgc3lzdGVtIgogCi1jYXNlICIkMSIgaW4KK2Nhc2UgJDEgaW4KIC0tcnVuKQogICAjIFRyeSB0byBydW4gcmVxdWVzdGVkIHByb2dyYW0sIGFuZCBqdXN0IGV4aXQgaWYgaXQgc3VjY2VlZHMuCiAgIHJ1bj0KQEAgLTc3LDYgKzc3LDcgQEAKICAgYWNsb2NhbCAgICAgIHRvdWNoIGZpbGUgXGBhY2xvY2FsLm00JwogICBhdXRvY29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZpZ3VyZScKICAgYXV0b2hlYWRlciAgIHRvdWNoIGZpbGUgXGBjb25maWcuaC5pbicKKyAgYXV0b200dGUgICAgIHRvdWNoIHRoZSBvdXRwdXQgZmlsZSwgb3IgY3JlYXRlIGEgc3R1YiBvbmUKICAgYXV0b21ha2UgICAgIHRvdWNoIGFsbCBcYE1ha2VmaWxlLmluJyBmaWxlcwogICBiaXNvbiAgICAgICAgY3JlYXRlIFxgeS50YWIuW2NoXScsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5bY2hdCiAgIGZsZXggICAgICAgICBjcmVhdGUgXGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCkBAIC04Niw2ICs4Nyw5IEBACiAgIHRhciAgICAgICAgICB0cnkgdGFyLCBnbnV0YXIsIGd0YXIsIHRoZW4gdGFyIHdpdGhvdXQgbm9uLXBvcnRhYmxlIGZsYWdzCiAgIHlhY2MgICAgICAgICBjcmVhdGUgXGB5LnRhYi5bY2hdJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLltjaF0KIAorVmVyc2lvbiBzdWZmaXhlcyB0byBQUk9HUkFNIGFzIHdlbGwgYXMgdGhlIHByZWZpeGVzIFxgZ251LScsIFxgZ251JywgYW5kCitcYGcnIGFyZSBpZ25vcmVkIHdoZW4gY2hlY2tpbmcgdGhlIG5hbWUuCisKIFNlbmQgYnVnIHJlcG9ydHMgdG8gPGJ1Zy1hdXRvbWFrZUBnbnUub3JnPi4iCiAgICAgZXhpdCAkPwogICAgIDs7CkBAIC0xMDMsMTUgKzEwNywyMiBAQAogCiBlc2FjCiAKKyMgbm9ybWFsaXplIHByb2dyYW0gbmFtZSB0byBjaGVjayBmb3IuCitwcm9ncmFtPWBlY2hvICIkMSIgfCBzZWQgJworICBzL15nbnUtLy87IHQKKyAgcy9eZ251Ly87IHQKKyAgcy9eZy8vOyB0J2AKKwogIyBOb3cgZXhpdCBpZiB3ZSBoYXZlIGl0LCBidXQgaXQgZmFpbGVkLiAgQWxzbyBleGl0IG5vdyBpZiB3ZQogIyBkb24ndCBoYXZlIGl0IGFuZCAtLXZlcnNpb24gd2FzIHBhc3NlZCAobW9zdCBsaWtlbHkgdG8gZGV0ZWN0Ci0jIHRoZSBwcm9ncmFtKS4KLWNhc2UgIiQxIiBpbgotICBsZXh8eWFjYykKKyMgdGhlIHByb2dyYW0pLiAgVGhpcyBpcyBhYm91dCBub24tR05VIHByb2dyYW1zLCBzbyB1c2UgJDEgbm90CisjICRwcm9ncmFtLgorY2FzZSAkMSBpbgorICBsZXgqfHlhY2MqKQogICAgICMgTm90IEdOVSBwcm9ncmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lvbi4KICAgICA7OwogCi0gIHRhcikKKyAgdGFyKikKICAgICBpZiB0ZXN0IC1uICIkcnVuIjsgdGhlbgogICAgICAgIGVjaG8gMT4mMiAiRVJST1I6IFxgdGFyJyByZXF1aXJlcyAtLXJ1biIKICAgICAgICBleGl0IDEKQEAgLTEzNSw3ICsxNDYsNyBAQAogCiAjIElmIGl0IGRvZXMgbm90IGV4aXN0LCBvciBmYWlscyB0byBydW4gKHBvc3NpYmx5IGFuIG91dGRhdGVkIHZlcnNpb24pLAogIyB0cnkgdG8gZW11bGF0ZSBpdC4KLWNhc2UgIiQxIiBpbgorY2FzZSAkcHJvZ3JhbSBpbgogICBhY2xvY2FsKikKICAgICBlY2hvIDE+JjIgIlwKIFdBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgpAQCAtMTQ1LDcgKzE1Niw3IEBACiAgICAgdG91Y2ggYWNsb2NhbC5tNAogICAgIDs7CiAKLSAgYXV0b2NvbmYpCisgIGF1dG9jb25mKikKICAgICBlY2hvIDE+JjIgIlwKIFdBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgogICAgICAgICAgeW91IG1vZGlmaWVkIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlCkBAIC0xNTQsNyArMTY1LDcgQEAKICAgICB0b3VjaCBjb25maWd1cmUKICAgICA7OwogCi0gIGF1dG9oZWFkZXIpCisgIGF1dG9oZWFkZXIqKQogICAgIGVjaG8gMT4mMiAiXAogV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCiAgICAgICAgICB5b3UgbW9kaWZpZWQgXGBhY2NvbmZpZy5oJyBvciBcYCR7Y29uZmlndXJlX2FjfScuICBZb3UgbWlnaHQgd2FudApAQCAtMTY0LDcgKzE3NSw3IEBACiAgICAgdGVzdCAteiAiJGZpbGVzIiAmJiBmaWxlcz0iY29uZmlnLmgiCiAgICAgdG91Y2hfZmlsZXM9CiAgICAgZm9yIGYgaW4gJGZpbGVzOyBkbwotICAgICAgY2FzZSAiJGYiIGluCisgICAgICBjYXNlICRmIGluCiAgICAgICAqOiopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgImBlY2hvICIkZiIgfAogCQkJCSAgICAgICBzZWQgLWUgJ3MvXlteOl0qOi8vJyAtZSAncy86LiovLydgOzsKICAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYuaW4iOzsKQEAgLTE4NCw3ICsxOTUsNyBAQAogCSAgIHdoaWxlIHJlYWQgZjsgZG8gdG91Y2ggIiRmIjsgZG9uZQogICAgIDs7CiAKLSAgYXV0b200dGUpCisgIGF1dG9tNHRlKikKICAgICBlY2hvIDE+JjIgIlwKIFdBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYnV0IGlzICRtc2cuCiAgICAgICAgICBZb3UgbWlnaHQgaGF2ZSBtb2RpZmllZCBzb21lIGZpbGVzIHdpdGhvdXQgaGF2aW5nIHRoZQpAQCAtMTkyLDggKzIwMyw4IEBACiAgICAgICAgICBZb3UgY2FuIGdldCBcYCQxJyBhcyBwYXJ0IG9mIFxgQXV0b2NvbmYnIGZyb20gYW55IEdOVQogICAgICAgICAgYXJjaGl2ZSBzaXRlLiIKIAotICAgIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAncy8uKi0tb3V0cHV0WyA9XSpcKFteIF0qXCkuKi9cMS9wJ2AKLSAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICdzLy4qLW9bIF0qXChbXiBdKlwpLiovXDEvcCdgCisgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCisgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAogICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgogCXRvdWNoICRmaWxlCiAgICAgZWxzZQpAQCAtMjA3LDgwICsyMTgsNzggQEAKICAgICBmaQogICAgIDs7CiAKLSAgYmlzb258eWFjYykKKyAgYmlzb24qfHlhY2MqKQogICAgIGVjaG8gMT4mMiAiXAogV0FSTklORzogXGAkMScgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCiAgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC55JyBmaWxlLiAgWW91IG1heSBuZWVkIHRoZSBcYEJpc29uJyBwYWNrYWdlCiAgICAgICAgICBpbiBvcmRlciBmb3IgdGhvc2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0CiAgICAgICAgICBcYEJpc29uJyBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKICAgICBybSAtZiB5LnRhYi5jIHkudGFiLmgKLSAgICBpZiBbICQjIC1uZSAxIF07IHRoZW4KKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCiAgICAgICAgIGV2YWwgTEFTVEFSRz0iXCR7JCN9IgotCWNhc2UgIiRMQVNUQVJHIiBpbgorCWNhc2UgJExBU1RBUkcgaW4KIAkqLnkpCiAJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9jLydgCi0JICAgIGlmIFsgLWYgIiRTUkNGSUxFIiBdOyB0aGVuCisJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgogCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50YWIuYwogCSAgICBmaQogCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvaC8nYAotCSAgICBpZiBbIC1mICIkU1JDRklMRSIgXTsgdGhlbgorCSAgICBpZiB0ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KIAkgICAgICAgICBjcCAiJFNSQ0ZJTEUiIHkudGFiLmgKIAkgICAgZmkKIAkgIDs7CiAJZXNhYwogICAgIGZpCi0gICAgaWYgWyAhIC1mIHkudGFiLmggXTsgdGhlbgorICAgIGlmIHRlc3QgISAtZiB5LnRhYi5oOyB0aGVuCiAJZWNobyA+eS50YWIuaAogICAgIGZpCi0gICAgaWYgWyAhIC1mIHkudGFiLmMgXTsgdGhlbgorICAgIGlmIHRlc3QgISAtZiB5LnRhYi5jOyB0aGVuCiAJZWNobyAnbWFpbigpIHsgcmV0dXJuIDA7IH0nID55LnRhYi5jCiAgICAgZmkKICAgICA7OwogCi0gIGxleHxmbGV4KQorICBsZXgqfGZsZXgqKQogICAgIGVjaG8gMT4mMiAiXAogV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCiAgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC5sJyBmaWxlLiAgWW91IG1heSBuZWVkIHRoZSBcYEZsZXgnIHBhY2thZ2UKICAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKICAgICAgICAgIFxgRmxleCcgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCiAgICAgcm0gLWYgbGV4Lnl5LmMKLSAgICBpZiBbICQjIC1uZSAxIF07IHRoZW4KKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCiAgICAgICAgIGV2YWwgTEFTVEFSRz0iXCR7JCN9IgotCWNhc2UgIiRMQVNUQVJHIiBpbgorCWNhc2UgJExBU1RBUkcgaW4KIAkqLmwpCiAJICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy9sJC9jLydgCi0JICAgIGlmIFsgLWYgIiRTUkNGSUxFIiBdOyB0aGVuCisJICAgIGlmIHRlc3QgLWYgIiRTUkNGSUxFIjsgdGhlbgogCSAgICAgICAgIGNwICIkU1JDRklMRSIgbGV4Lnl5LmMKIAkgICAgZmkKIAkgIDs7CiAJZXNhYwogICAgIGZpCi0gICAgaWYgWyAhIC1mIGxleC55eS5jIF07IHRoZW4KKyAgICBpZiB0ZXN0ICEgLWYgbGV4Lnl5LmM7IHRoZW4KIAllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPmxleC55eS5jCiAgICAgZmkKICAgICA7OwogCi0gIGhlbHAybWFuKQorICBoZWxwMm1hbiopCiAgICAgZWNobyAxPiYyICJcCiBXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKIAkgeW91IG1vZGlmaWVkIGEgZGVwZW5kZW5jeSBvZiBhIG1hbnVhbCBwYWdlLiAgWW91IG1heSBuZWVkIHRoZQogCSBcYEhlbHAybWFuJyBwYWNrYWdlIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRha2UKIAkgZWZmZWN0LiAgWW91IGNhbiBnZXQgXGBIZWxwMm1hbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCiAKLSAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gJ3MvLiotbyBcKFteIF0qXCkuKi9cMS9wJ2AKLSAgICBpZiB0ZXN0IC16ICIkZmlsZSI7IHRoZW4KLQlmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gJ3MvLiotLW91dHB1dD1cKFteIF0qXCkuKi9cMS9wJ2AKLSAgICBmaQotICAgIGlmIFsgLWYgIiRmaWxlIiBdOyB0aGVuCisgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCisgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAorICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsgdGhlbgogCXRvdWNoICRmaWxlCiAgICAgZWxzZQogCXRlc3QgLXogIiRmaWxlIiB8fCBleGVjID4kZmlsZQogCWVjaG8gIi5hYiBoZWxwMm1hbiBpcyByZXF1aXJlZCB0byBnZW5lcmF0ZSB0aGlzIHBhZ2UiCi0JZXhpdCAxCisJZXhpdCAkPwogICAgIGZpCiAgICAgOzsKIAotICBtYWtlaW5mbykKKyAgbWFrZWluZm8qKQogICAgIGVjaG8gMT4mMiAiXAogV0FSTklORzogXGAkMScgaXMgJG1zZy4gIFlvdSBzaG91bGQgb25seSBuZWVkIGl0IGlmCiAgICAgICAgICB5b3UgbW9kaWZpZWQgYSBcYC50ZXhpJyBvciBcYC50ZXhpbmZvJyBmaWxlLCBvciBhbnkgb3RoZXIgZmlsZQpAQCAtMjg5LDExICsyOTgsMTcgQEAKICAgICAgICAgIERVLCBJUklYKS4gIFlvdSBtaWdodCB3YW50IHRvIGluc3RhbGwgdGhlIFxgVGV4aW5mbycgcGFja2FnZSBvcgogICAgICAgICAgdGhlIFxgR05VIG1ha2UnIHBhY2thZ2UuICBHcmFiIGVpdGhlciBmcm9tIGFueSBHTlUgYXJjaGl2ZSBzaXRlLiIKICAgICAjIFRoZSBmaWxlIHRvIHRvdWNoIGlzIHRoYXQgc3BlY2lmaWVkIHdpdGggLW8gLi4uCi0gICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICdzLy4qLW8gXChbXiBdKlwpLiovXDEvcCdgCisgICAgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX291dHB1dCJgCisgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9taW51c28iYAogICAgIGlmIHRlc3QgLXogIiRmaWxlIjsgdGhlbgogICAgICAgIyAuLi4gb3IgaXQgaXMgdGhlIG9uZSBzcGVjaWZpZWQgd2l0aCBAc2V0ZmlsZW5hbWUgLi4uCiAgICAgICBpbmZpbGU9YGVjaG8gIiQqIiB8IHNlZCAncy8uKiBcKFteIF0qXCkgKiQvXDEvJ2AKLSAgICAgIGZpbGU9YHNlZCAtbiAnL15Ac2V0ZmlsZW5hbWUvIHsgcy8uKiBcKFteIF0qXCkgKiQvXDEvOyBwOyBxOyB9JyAkaW5maWxlYAorICAgICAgZmlsZT1gc2VkIC1uICcKKwkvXkBzZXRmaWxlbmFtZS97CisJICBzLy4qIFwoW14gXSpcKSAqJC9cMS8KKwkgIHAKKwkgIHEKKwl9JyAkaW5maWxlYAogICAgICAgIyAuLi4gb3IgaXQgaXMgZGVyaXZlZCBmcm9tIHRoZSBzb3VyY2UgbmFtZSAoZGlyL2YudGV4aSBiZWNvbWVzIGYuaW5mbykKICAgICAgIHRlc3QgLXogIiRmaWxlIiAmJiBmaWxlPWBlY2hvICIkaW5maWxlIiB8IHNlZCAncywuKi8sLDtzLC5bXi5dKiQsLCdgLmluZm8KICAgICBmaQpAQCAtMzAzLDcgKzMxOCw3IEBACiAgICAgdG91Y2ggJGZpbGUKICAgICA7OwogCi0gIHRhcikKKyAgdGFyKikKICAgICBzaGlmdAogCiAgICAgIyBXZSBoYXZlIGFscmVhZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCkBAIC0zMTcsMTMgKzMzMiwxMyBAQAogICAgIGZpCiAgICAgZmlyc3Rhcmc9IiQxIgogICAgIGlmIHNoaWZ0OyB0aGVuCi0JY2FzZSAiJGZpcnN0YXJnIiBpbgorCWNhc2UgJGZpcnN0YXJnIGluCiAJKm8qKQogCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL28vL2AKIAkgICAgdGFyICIkZmlyc3RhcmciICIkQCIgJiYgZXhpdCAwCiAJICAgIDs7CiAJZXNhYwotCWNhc2UgIiRmaXJzdGFyZyIgaW4KKwljYXNlICRmaXJzdGFyZyBpbgogCSpoKikKIAkgICAgZmlyc3Rhcmc9YGVjaG8gIiRmaXJzdGFyZyIgfCBzZWQgcy9oLy9gCiAJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMApAQCAtMzU2LDUgKzM3MSw2IEBACiAjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKICMgdGltZS1zdGFtcC1zdGFydDogInNjcmlwdHZlcnNpb249IgogIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0lMDJtLSUwMmQuJTAySCIKLSMgdGltZS1zdGFtcC1lbmQ6ICIkIgorIyB0aW1lLXN0YW1wLXRpbWUtem9uZTogIlVUQyIKKyMgdGltZS1zdGFtcC1lbmQ6ICI7ICMgVVRDIgogIyBFbmQ6CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL21zdmNjLnNoIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tc3ZjYy5zaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDgzMDE4MzkuLmRjZGJlYWIKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9tc3ZjYy5zaAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL21zdmNjLnNoCkBAIC00MiwxMyArNDIsMTEgQEAKICMgZm9ybWF0IGFuZCB0cmFuc2xhdGVkIGludG8gc29tZXRoaW5nIHNlbnNpYmxlIGZvciBjbCBvciBtbC4KICMKIAotIyBEaXNhYmxlIHNwZWNpZmljIHdhcm5pbmdzLCBhbmQgZW5hYmxlIHdhcm5pbmdzLWFzLWVycm9ycyBzbyB3ZSBjYXRjaCBhbnkKLSMgbWlzdHJhbnNsYXRlZCBhcmdzLgotbm93YXJuPSItd2Q0MTI3IC13ZDQ4MjAgLXdkNDcwNiAtd2Q0MTAwIC13ZDQyNTUgLXdkNDY2OCAtd2Q0MDUzIC13ZDQzMjQiCi1hcmdzPSItbm9sb2dvIC1XMyAtV1ggJG5vd2FybiIKK2FyZ3M9Ii1ub2xvZ28gLVczIgogbWQ9LU1ECiBjbD0iY2wiCiBtbD0ibWwiCitzYWZlc2VoPSItc2FmZXNlaCIKIG91dHB1dD0KIAogd2hpbGUgWyAkIyAtZ3QgMCBdCkBAIC02NiwxNSArNjQsMjggQEAKICAgICAtbTY0KQogICAgICAgY2w9ImNsIiAgICMgIiRNU1ZDL3g4Nl9hbWQ2NC9jbCIKICAgICAgIG1sPSJtbDY0IiAjICIkTVNWQy94ODZfYW1kNjQvbWw2NCIKKyAgICAgIHNhZmVzZWg9CisgICAgICBzaGlmdCAxCisgICAgOzsKKyAgICAtTzApCisgICAgICBhcmdzPSIkYXJncyAtT2QiCiAgICAgICBzaGlmdCAxCiAgICAgOzsKICAgICAtTyopCi0gICAgICBhcmdzPSIkYXJncyAkMSIKKyAgICAgICMgSWYgd2UncmUgb3B0aW1pemluZywgbWFrZSBzdXJlIHdlIGV4cGxpY2l0bHkgdHVybiBvbiBzb21lIG9wdGltaXphdGlvbnMKKyAgICAgICMgdGhhdCBhcmUgaW1wbGljaXRseSBkaXNhYmxlZCBieSBkZWJ1ZyBzeW1ib2xzICgtWmkpLgorICAgICAgYXJncz0iJGFyZ3MgJDEgLU9QVDpSRUYgLU9QVDpJQ0YgLUlOQ1JFTUVOVEFMOk5PIgogICAgICAgc2hpZnQgMQogICAgIDs7CiAgICAgLWcpCi0gICAgICAjIENhbid0IHNwZWNpZnkgLVJUQzEgb3IgLVppIGluIG9wdC4gLUd5IGlzIG9rLiBVc2UgLU9QVDpSRUY/Ci0gICAgICBhcmdzPSIkYXJncyAtRF9ERUJVRyAtUlRDMSAtWmkiCisgICAgICAjIEVuYWJsZSBkZWJ1ZyBzeW1ib2wgZ2VuZXJhdGlvbi4KKyAgICAgIGFyZ3M9IiRhcmdzIC1aaSAtREVCVUciCisgICAgICBzaGlmdCAxCisgICAgOzsKKyAgICAtREZGSV9ERUJVRykKKyAgICAgICMgTGluayBhZ2FpbnN0IGRlYnVnIENSVCBhbmQgZW5hYmxlIHJ1bnRpbWUgZXJyb3IgY2hlY2tzLgorICAgICAgYXJncz0iJGFyZ3MgLVJUQzEiCisgICAgICBkZWZpbmVzPSIkZGVmaW5lcyAkMSIKICAgICAgIG1kPS1NRGQKICAgICAgIHNoaWZ0IDEKICAgICA7OwpAQCAtMTExLDcgKzEyMiw4IEBACiAgICAgICBzaGlmdCAxCiAgICAgOzsKICAgICAtV2FsbCkKLSAgICAgIGFyZ3M9IiRhcmdzIC1XYWxsIgorICAgICAgIyAtV2FsbCBvbiBNU1ZDIGlzIG92ZXJ6ZWFsb3VzLCBhbmQgd2UgYWxyZWFkeSBidWlsZCB3aXRoIC1XMy4gTm90aGluZworICAgICAgIyB0byBkbyBoZXJlLgogICAgICAgc2hpZnQgMQogICAgIDs7CiAgICAgLVdlcnJvcikKQEAgLTE2Niw3ICsxNzgsNyBAQAogICAgIGVjaG8gIiRjbCAtbm9sb2dvIC1FUCAkaW5jbHVkZXMgJGRlZmluZXMgJHNyYyA+ICRwcHNyYyIKICAgICAiJGNsIiAtbm9sb2dvIC1FUCAkaW5jbHVkZXMgJGRlZmluZXMgJHNyYyA+ICRwcHNyYyB8fCBleGl0ICQ/CiAgICAgb3V0cHV0PSIkKGVjaG8gJG91dHB1dCB8IHNlZCAncyUvRltkcGFdW14gXSolJWcnKSIKLSAgICBhcmdzPSItbm9sb2dvIC1zYWZlc2VoICRzaW5nbGUgJG91dHB1dCAkcHBzcmMiCisgICAgYXJncz0iLW5vbG9nbyAkc2FmZXNlaCAkc2luZ2xlICRvdXRwdXQgJHBwc3JjIgogCiAgICAgZWNobyAiJG1sICRhcmdzIgogICAgIGV2YWwgIlwiJG1sXCIgJGFyZ3MiCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hbHBoYS9mZmkuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FscGhhL2ZmaS5jCmluZGV4IDhkNmIyYmEuLjE5MmY2OTEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FscGhhL2ZmaS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FscGhhL2ZmaS5jCkBAIC0xLDUgKzEsNiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgIGZmaS5jIC0gQ29weXJpZ2h0IChjKSAxOTk4LCAyMDAxLCAyMDA3LCAyMDA4ICBSZWQgSGF0LCBJbmMuCisgICBmZmkuYyAtIENvcHlyaWdodCAoYykgMjAxMiAgQW50aG9ueSBHcmVlbgorICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTgsIDIwMDEsIDIwMDcsIDIwMDggIFJlZCBIYXQsIEluYy4KICAgIAogICAgQWxwaGEgRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UgCiAKQEAgLTE3OCw2ICsxNzksOSBAQAogewogICB1bnNpZ25lZCBpbnQgKnRyYW1wOwogCisgIGlmIChjaWYtPmFiaSAhPSBGRklfT1NGKQorICAgIHJldHVybiBGRklfQkFEX0FCSTsKKwogICB0cmFtcCA9ICh1bnNpZ25lZCBpbnQgKikgJmNsb3N1cmUtPnRyYW1wWzBdOwogICB0cmFtcFswXSA9IDB4NDdmYjA0MDE7CS8qIG1vdiAkMjcsJDEJCSovCiAgIHRyYW1wWzFdID0gMHhhNzdiMDAxMDsJLyogbGRxICQyNywxNigkMjcpCSovCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hbHBoYS9mZml0YXJnZXQuaCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FscGhhL2ZmaXRhcmdldC5oCmluZGV4IDdkMDZlYjAuLmFmMTQ1YmMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FscGhhL2ZmaXRhcmdldC5oCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FscGhhL2ZmaXRhcmdldC5oCkBAIC0xLDUgKzEsNiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLUMtKi0KLSAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAxOTk2LTIwMDMgIFJlZCBIYXQsIEluYy4KKyAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAyMDEyICBBbnRob255IEdyZWVuCisgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzICBSZWQgSGF0LCBJbmMuCiAgICBUYXJnZXQgY29uZmlndXJhdGlvbiBtYWNyb3MgZm9yIEFscGhhLgogCiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKQEAgLTI3LDYgKzI4LDEwIEBACiAjaWZuZGVmIExJQkZGSV9UQVJHRVRfSAogI2RlZmluZSBMSUJGRklfVEFSR0VUX0gKIAorI2lmbmRlZiBMSUJGRklfSAorI2Vycm9yICJQbGVhc2UgZG8gbm90IGluY2x1ZGUgZmZpdGFyZ2V0LmggZGlyZWN0bHkgaW50byB5b3VyIHNvdXJjZS4gIFVzZSBmZmkuaCBpbnN0ZWFkLiIKKyNlbmRpZgorCiAjaWZuZGVmIExJQkZGSV9BU00KIHR5cGVkZWYgdW5zaWduZWQgbG9uZyAgICAgICAgICBmZmlfYXJnOwogdHlwZWRlZiBzaWduZWQgbG9uZyAgICAgICAgICAgIGZmaV9zYXJnOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvYWxwaGEvb3NmLlMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hbHBoYS9vc2YuUwppbmRleCBkMGU3NzgyLi42YjlmNGRmIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hbHBoYS9vc2YuUworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hbHBoYS9vc2YuUwpAQCAtMSw1ICsxLDUgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBvc2YuUyAtIENvcHlyaWdodCAoYykgMTk5OCwgMjAwMSwgMjAwNywgMjAwOCBSZWQgSGF0CisgICBvc2YuUyAtIENvcHlyaWdodCAoYykgMTk5OCwgMjAwMSwgMjAwNywgMjAwOCwgMjAxMSBSZWQgSGF0CiAgICAKICAgIEFscGhhL09TRiBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZSAKIApAQCAtMjk5LDMzICsyOTksNTEgQEAKICNlbmRpZgogCiAjaWZkZWYgX19FTEZfXworIyBkZWZpbmUgVUFfU0kJCS40Ynl0ZQorIyBkZWZpbmUgRkRFX0VOQ09ESU5HCTB4MWIJLyogcGNyZWwgc2RhdGE0ICovCisjIGRlZmluZSBGREVfRU5DT0RFKFgpCS40Ynl0ZSBYLS4KKyMgZGVmaW5lIEZERV9BUkFOR0UoWCkJLjRieXRlIFgKKyNlbGlmIGRlZmluZWQgX19vc2ZfXworIyBkZWZpbmUgVUFfU0kJCS5hbGlnbiAwOyAubG9uZworIyBkZWZpbmUgRkRFX0VOQ09ESU5HCTB4NTAJLyogYWxpZ25lZCBhYnNvbHV0ZSAqLworIyBkZWZpbmUgRkRFX0VOQ09ERShYKQkuYWxpZ24gMzsgLnF1YWQgWAorIyBkZWZpbmUgRkRFX0FSQU5HRShYKQkuYWxpZ24gMDsgLnF1YWQgWAorI2VuZGlmCisKKyNpZmRlZiBfX0VMRl9fCiAJLnNlY3Rpb24JLmVoX2ZyYW1lLEVIX0ZSQU1FX0ZMQUdTLEBwcm9nYml0cworI2VsaWYgZGVmaW5lZCBfX29zZl9fCisJLmRhdGEKKwkuYWxpZ24gMworCS5nbG9ibCBfR0xPQkFMX19GX2ZmaV9jYWxsX29zZgorX0dMT0JBTF9fRl9mZmlfY2FsbF9vc2Y6CisjZW5kaWYKIF9fRlJBTUVfQkVHSU5fXzoKLQkuNGJ5dGUJJExFQ0lFMS0kTFNDSUUxCSMgTGVuZ3RoIG9mIENvbW1vbiBJbmZvcm1hdGlvbiBFbnRyeQorCVVBX1NJCSRMRUNJRTEtJExTQ0lFMQkjIExlbmd0aCBvZiBDb21tb24gSW5mb3JtYXRpb24gRW50cnkKICRMU0NJRTE6Ci0JLjRieXRlCTB4MAkJIyBDSUUgSWRlbnRpZmllciBUYWcKKwlVQV9TSQkweDAJCSMgQ0lFIElkZW50aWZpZXIgVGFnCiAJLmJ5dGUJMHgxCQkjIENJRSBWZXJzaW9uCiAJLmFzY2lpICJ6UlwwIgkJIyBDSUUgQXVnbWVudGF0aW9uCiAJLmJ5dGUJMHgxCQkjIHVsZWIxMjggMHgxOyBDSUUgQ29kZSBBbGlnbm1lbnQgRmFjdG9yCiAJLmJ5dGUJMHg3OAkJIyBzbGViMTI4IC04OyBDSUUgRGF0YSBBbGlnbm1lbnQgRmFjdG9yCiAJLmJ5dGUJMjYJCSMgQ0lFIFJBIENvbHVtbgogCS5ieXRlCTB4MQkJIyB1bGViMTI4IDB4MTsgQXVnbWVudGF0aW9uIHNpemUKLQkuYnl0ZQkweDFiCQkjIEZERSBFbmNvZGluZyAocGNyZWwgc2RhdGE0KQorCS5ieXRlCUZERV9FTkNPRElORwkjIEZERSBFbmNvZGluZwogCS5ieXRlCTB4YwkJIyBEV19DRkFfZGVmX2NmYQogCS5ieXRlCTMwCQkjIHVsZWIxMjggY29sdW1uIDMwCiAJLmJ5dGUJMAkJIyB1bGViMTI4IG9mZnNldCAwCiAJLmFsaWduIDMKICRMRUNJRTE6CiAkTFNGREUxOgotCS40Ynl0ZQkkTEVGREUxLSRMQVNGREUxCQkjIEZERSBMZW5ndGgKKwlVQV9TSQkkTEVGREUxLSRMQVNGREUxCQkjIEZERSBMZW5ndGgKICRMQVNGREUxOgotCS40Ynl0ZQkkTEFTRkRFMS1fX0ZSQU1FX0JFR0lOX18JIyBGREUgQ0lFIG9mZnNldAotCS40Ynl0ZQkkTEZCMS0uCQkjIEZERSBpbml0aWFsIGxvY2F0aW9uCi0JLjRieXRlCSRMRkUxLSRMRkIxCSMgRkRFIGFkZHJlc3MgcmFuZ2UKKwlVQV9TSQkkTEFTRkRFMS1fX0ZSQU1FX0JFR0lOX18JIyBGREUgQ0lFIG9mZnNldAorCUZERV9FTkNPREUoJExGQjEpCQkJIyBGREUgaW5pdGlhbCBsb2NhdGlvbgorCUZERV9BUkFOR0UoJExGRTEtJExGQjEpCQkJIyBGREUgYWRkcmVzcyByYW5nZQogCS5ieXRlCTB4MAkJIyB1bGViMTI4IDB4MDsgQXVnbWVudGF0aW9uIHNpemUKIAogCS5ieXRlCTB4NAkJIyBEV19DRkFfYWR2YW5jZV9sb2M0Ci0JLjRieXRlCSRMQ0ZJMS0kTEZCMQorCVVBX1NJCSRMQ0ZJMS0kTEZCMQogCS5ieXRlCTB4OWEJCSMgRFdfQ0ZBX29mZnNldCwgY29sdW1uIDI2CiAJLmJ5dGUJNAkJIyB1bGViMTI4IDQqLTgKIAkuYnl0ZQkweDhmCQkjIERXX0NGQV9vZmZzZXQsIGNvbHVtbiAxNQpAQCAtMzM1LDMyICszNTMsMzUgQEAKIAkuYnl0ZQkzMgkJIyB1bGViMTI4IG9mZnNldCAzMgogCiAJLmJ5dGUJMHg0CQkjIERXX0NGQV9hZHZhbmNlX2xvYzQKLQkuNGJ5dGUJJExDRkkyLSRMQ0ZJMQorCVVBX1NJCSRMQ0ZJMi0kTENGSTEKIAkuYnl0ZQkweGRhCQkjIERXX0NGQV9yZXN0b3JlLCBjb2x1bW4gMjYKIAkuYWxpZ24gMwogJExFRkRFMToKIAogJExTRkRFMzoKLQkuNGJ5dGUJJExFRkRFMy0kTEFTRkRFMwkJIyBGREUgTGVuZ3RoCisJVUFfU0kJJExFRkRFMy0kTEFTRkRFMwkJIyBGREUgTGVuZ3RoCiAkTEFTRkRFMzoKLQkuNGJ5dGUJJExBU0ZERTMtX19GUkFNRV9CRUdJTl9fCSMgRkRFIENJRSBvZmZzZXQKLQkuNGJ5dGUJJExGQjItLgkJIyBGREUgaW5pdGlhbCBsb2NhdGlvbgotCS40Ynl0ZQkkTEZFMi0kTEZCMgkjIEZERSBhZGRyZXNzIHJhbmdlCisJVUFfU0kJJExBU0ZERTMtX19GUkFNRV9CRUdJTl9fCSMgRkRFIENJRSBvZmZzZXQKKwlGREVfRU5DT0RFKCRMRkIyKQkJCSMgRkRFIGluaXRpYWwgbG9jYXRpb24KKwlGREVfQVJBTkdFKCRMRkUyLSRMRkIyKQkJCSMgRkRFIGFkZHJlc3MgcmFuZ2UKIAkuYnl0ZQkweDAJCSMgdWxlYjEyOCAweDA7IEF1Z21lbnRhdGlvbiBzaXplCiAKIAkuYnl0ZQkweDQJCSMgRFdfQ0ZBX2FkdmFuY2VfbG9jNAotCS40Ynl0ZQkkTENGSTUtJExGQjIKKwlVQV9TSQkkTENGSTUtJExGQjIKIAkuYnl0ZQkweGUJCSMgRFdfQ0ZBX2RlZl9jZmFfb2Zmc2V0CiAJLmJ5dGUJMHg4MCwweDEJIyB1bGViMTI4IDEyOAogCiAJLmJ5dGUJMHg0CQkjIERXX0NGQV9hZHZhbmNlX2xvYzQKLQkuNGJ5dGUJJExDRkk2LSRMQ0ZJNQorCVVBX1NJCSRMQ0ZJNi0kTENGSTUKIAkuYnl0ZQkweDlhCQkjIERXX0NGQV9vZmZzZXQsIGNvbHVtbiAyNgogCS5ieXRlCTE2CQkjIHVsZWIxMjggb2Zmc2V0IDE2Ki04CiAJLmFsaWduIDMKICRMRUZERTM6Ci0KLSNpZmRlZiBfX2xpbnV4X18KLQkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCisjaWYgZGVmaW5lZCBfX29zZl9fCisJLmFsaWduIDAKKwkubG9uZwkwCQkjIEVuZCBvZiBUYWJsZQogI2VuZGlmCisKKyNpZiBkZWZpbmVkIF9fRUxGX18gJiYgZGVmaW5lZCBfX2xpbnV4X18KKwkuc2VjdGlvbgkubm90ZS5HTlUtc3RhY2ssIiIsQHByb2diaXRzCiAjZW5kaWYKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FybS9mZmkuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FybS9mZmkuYwppbmRleCBmNmE2NDc1Li4zY2NjZWI5IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hcm0vZmZpLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvYXJtL2ZmaS5jCkBAIC0xLDYgKzEsMTAgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBmZmkuYyAtIENvcHlyaWdodCAoYykgMTk5OCwgMjAwOCAgUmVkIEhhdCwgSW5jLgotICAgCisgICBmZmkuYyAtIENvcHlyaWdodCAoYykgMjAxMSBUaW1vdGh5IFdhbGwKKyAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDExIFBsYXVzaWJsZSBMYWJzIENvb3BlcmF0aXZlLCBJbmMuCisgICAgICAgICAgIENvcHlyaWdodCAoYykgMjAxMSBBbnRob255IEdyZWVuCisJICAgQ29weXJpZ2h0IChjKSAyMDExIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgorICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTgsIDIwMDgsIDIwMTEgIFJlZCBIYXQsIEluYy4KKwkgICAKICAgIEFSTSBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZSAKIAogICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCkBAIC0yOSwxMiArMzMsMjAgQEAKIAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogCi0vKiBmZmlfcHJlcF9hcmdzIGlzIGNhbGxlZCBieSB0aGUgYXNzZW1ibHkgcm91dGluZSBvbmNlIHN0YWNrIHNwYWNlCi0gICBoYXMgYmVlbiBhbGxvY2F0ZWQgZm9yIHRoZSBmdW5jdGlvbidzIGFyZ3VtZW50cyAqLworLyogRm9yd2FyZCBkZWNsYXJlcy4gKi8KK3N0YXRpYyBpbnQgdmZwX3R5cGVfcCAoZmZpX3R5cGUgKik7CitzdGF0aWMgdm9pZCBsYXlvdXRfdmZwX2FyZ3MgKGZmaV9jaWYgKik7CiAKLXZvaWQgZmZpX3ByZXBfYXJncyhjaGFyICpzdGFjaywgZXh0ZW5kZWRfY2lmICplY2lmKQorLyogZmZpX3ByZXBfYXJncyBpcyBjYWxsZWQgYnkgdGhlIGFzc2VtYmx5IHJvdXRpbmUgb25jZSBzdGFjayBzcGFjZQorICAgaGFzIGJlZW4gYWxsb2NhdGVkIGZvciB0aGUgZnVuY3Rpb24ncyBhcmd1bWVudHMKKyAgIAorICAgVGhlIHZmcF9zcGFjZSBwYXJhbWV0ZXIgaXMgdGhlIGxvYWQgYXJlYSBmb3IgVkZQIHJlZ3MsIHRoZSByZXR1cm4KKyAgIHZhbHVlIGlzIGNpZi0+dmZwX3VzZWQgKHdvcmQgYml0c2V0IG9mIFZGUCByZWdzIHVzZWQgZm9yIHBhc3NpbmcKKyAgIGFyZ3VtZW50cykuIFRoZXNlIGFyZSBvbmx5IHVzZWQgZm9yIHRoZSBWRlAgaGFyZC1mbG9hdCBBQkkuCisqLworaW50IGZmaV9wcmVwX2FyZ3MoY2hhciAqc3RhY2ssIGV4dGVuZGVkX2NpZiAqZWNpZiwgZmxvYXQgKnZmcF9zcGFjZSkKIHsKLSAgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGk7CisgIHJlZ2lzdGVyIHVuc2lnbmVkIGludCBpLCB2aSA9IDA7CiAgIHJlZ2lzdGVyIHZvaWQgKipwX2FyZ3Y7CiAgIHJlZ2lzdGVyIGNoYXIgKmFyZ3A7CiAgIHJlZ2lzdGVyIGZmaV90eXBlICoqcF9hcmc7CkBAIC01MywxMCArNjUsMzEgQEAKICAgICAgICBpLS0sIHBfYXJnKyspCiAgICAgewogICAgICAgc2l6ZV90IHo7CisgICAgICBzaXplX3QgYWxpZ25tZW50OworCisgICAgICAvKiBBbGxvY2F0ZWQgaW4gVkZQIHJlZ2lzdGVycy4gKi8KKyAgICAgIGlmIChlY2lmLT5jaWYtPmFiaSA9PSBGRklfVkZQCisJICAmJiB2aSA8IGVjaWYtPmNpZi0+dmZwX25hcmdzICYmIHZmcF90eXBlX3AgKCpwX2FyZykpCisJeworCSAgZmxvYXQqIHZmcF9zbG90ID0gdmZwX3NwYWNlICsgZWNpZi0+Y2lmLT52ZnBfYXJnc1t2aSsrXTsKKwkgIGlmICgoKnBfYXJnKS0+dHlwZSA9PSBGRklfVFlQRV9GTE9BVCkKKwkgICAgKigoZmxvYXQqKXZmcF9zbG90KSA9ICooKGZsb2F0KikqcF9hcmd2KTsKKwkgIGVsc2UgaWYgKCgqcF9hcmcpLT50eXBlID09IEZGSV9UWVBFX0RPVUJMRSkKKwkgICAgKigoZG91YmxlKil2ZnBfc2xvdCkgPSAqKChkb3VibGUqKSpwX2FyZ3YpOworCSAgZWxzZQorCSAgICBtZW1jcHkodmZwX3Nsb3QsICpwX2FyZ3YsICgqcF9hcmcpLT5zaXplKTsKKwkgIHBfYXJndisrOworCSAgY29udGludWU7CisJfQogCiAgICAgICAvKiBBbGlnbiBpZiBuZWNlc3NhcnkgKi8KLSAgICAgIGlmICgoKCpwX2FyZyktPmFsaWdubWVudCAtIDEpICYgKHVuc2lnbmVkKSBhcmdwKSB7Ci0JYXJncCA9IChjaGFyICopIEFMSUdOKGFyZ3AsICgqcF9hcmcpLT5hbGlnbm1lbnQpOworICAgICAgYWxpZ25tZW50ID0gKCpwX2FyZyktPmFsaWdubWVudDsKKyNpZmRlZiBfV0lOMzJfV0NFCisgICAgICBpZiAoYWxpZ25tZW50ID4gNCkKKwlhbGlnbm1lbnQgPSA0OworI2VuZGlmCisgICAgICBpZiAoKGFsaWdubWVudCAtIDEpICYgKHVuc2lnbmVkKSBhcmdwKSB7CisJYXJncCA9IChjaGFyICopIEFMSUdOKGFyZ3AsIGFsaWdubWVudCk7CiAgICAgICB9CiAKICAgICAgIGlmICgoKnBfYXJnKS0+dHlwZSA9PSBGRklfVFlQRV9TVFJVQ1QpCkBAIC0xMDMsMTMgKzEzNiwxNSBAQAogCSAgcF9hcmd2Kys7CiAJICBhcmdwICs9IHo7CiAgICAgfQotICAKLSAgcmV0dXJuOworCisgIC8qIEluZGljYXRlIHRoZSBWRlAgcmVnaXN0ZXJzIHVzZWQuICovCisgIHJldHVybiBlY2lmLT5jaWYtPnZmcF91c2VkOwogfQogCiAvKiBQZXJmb3JtIG1hY2hpbmUgZGVwZW5kZW50IGNpZiBwcm9jZXNzaW5nICovCiBmZmlfc3RhdHVzIGZmaV9wcmVwX2NpZl9tYWNoZGVwKGZmaV9jaWYgKmNpZikKIHsKKyAgaW50IHR5cGVfY29kZTsKICAgLyogUm91bmQgdGhlIHN0YWNrIHVwIHRvIGEgbXVsdGlwbGUgb2YgOCBieXRlcy4gIFRoaXMgaXNuJ3QgbmVlZGVkIAogICAgICBldmVyeXdoZXJlLCBidXQgaXQgaXMgb24gc29tZSBwbGF0Zm9ybXMsIGFuZCBpdCBkb2Vzbid0IGhhcm0gYW55dGhpbmcKICAgICAgd2hlbiBpdCBpc24ndCBuZWVkZWQuICAqLwpAQCAtMTMwLDcgKzE2NSwxNCBAQAogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEZGSV9UWVBFX1NUUlVDVDoKLSAgICAgIGlmIChjaWYtPnJ0eXBlLT5zaXplIDw9IDQpCisgICAgICBpZiAoY2lmLT5hYmkgPT0gRkZJX1ZGUAorCSAgJiYgKHR5cGVfY29kZSA9IHZmcF90eXBlX3AgKGNpZi0+cnR5cGUpKSAhPSAwKQorCXsKKwkgIC8qIEEgQ29tcG9zaXRlIFR5cGUgcGFzc2VkIGluIFZGUCByZWdpc3RlcnMsIGVpdGhlcgorCSAgICAgRkZJX1RZUEVfU1RSVUNUX1ZGUF9GTE9BVCBvciBGRklfVFlQRV9TVFJVQ1RfVkZQX0RPVUJMRS4gKi8KKwkgIGNpZi0+ZmxhZ3MgPSAodW5zaWduZWQpIHR5cGVfY29kZTsKKwl9CisgICAgICBlbHNlIGlmIChjaWYtPnJ0eXBlLT5zaXplIDw9IDQpCiAJLyogQSBDb21wb3NpdGUgVHlwZSBub3QgbGFyZ2VyIHRoYW4gNCBieXRlcyBpcyByZXR1cm5lZCBpbiByMC4gICovCiAJY2lmLT5mbGFncyA9ICh1bnNpZ25lZClGRklfVFlQRV9JTlQ7CiAgICAgICBlbHNlCkBAIC0xNDUsMTEgKzE4NywzMCBAQAogICAgICAgYnJlYWs7CiAgICAgfQogCisgIC8qIE1hcCBvdXQgdGhlIHJlZ2lzdGVyIHBsYWNlbWVudHMgb2YgVkZQIHJlZ2lzdGVyIGFyZ3MuCisgICAgIFRoZSBWRlAgaGFyZC1mbG9hdCBjYWxsaW5nIGNvbnZlbnRpb25zIGFyZSBzbGlnaHRseSBtb3JlIHNvcGhpc3RpY2F0ZWQgdGhhbgorICAgICB0aGUgYmFzZSBjYWxsaW5nIGNvbnZlbnRpb25zLCBzbyB3ZSBkbyBpdCBoZXJlIGluc3RlYWQgb2YgaW4gZmZpX3ByZXBfYXJncygpLiAqLworICBpZiAoY2lmLT5hYmkgPT0gRkZJX1ZGUCkKKyAgICBsYXlvdXRfdmZwX2FyZ3MgKGNpZik7CisKICAgcmV0dXJuIEZGSV9PSzsKIH0KIAotZXh0ZXJuIHZvaWQgZmZpX2NhbGxfU1lTVih2b2lkICgqKShjaGFyICosIGV4dGVuZGVkX2NpZiAqKSwgZXh0ZW5kZWRfY2lmICosCi0JCQkgIHVuc2lnbmVkLCB1bnNpZ25lZCwgdW5zaWduZWQgKiwgdm9pZCAoKmZuKSh2b2lkKSk7CisvKiBQZXJmb3JtIG1hY2hpbmUgZGVwZW5kZW50IGNpZiBwcm9jZXNzaW5nIGZvciB2YXJpYWRpYyBjYWxscyAqLworZmZpX3N0YXR1cyBmZmlfcHJlcF9jaWZfbWFjaGRlcF92YXIoZmZpX2NpZiAqY2lmLAorCQkJCSAgICB1bnNpZ25lZCBpbnQgbmZpeGVkYXJncywKKwkJCQkgICAgdW5zaWduZWQgaW50IG50b3RhbGFyZ3MpCit7CisgIC8qIFZGUCB2YXJpYWRpYyBjYWxscyBhY3R1YWxseSB1c2UgdGhlIFNZU1YgQUJJICovCisgIGlmIChjaWYtPmFiaSA9PSBGRklfVkZQKQorCWNpZi0+YWJpID0gRkZJX1NZU1Y7CisKKyAgcmV0dXJuIGZmaV9wcmVwX2NpZl9tYWNoZGVwKGNpZik7Cit9CisKKy8qIFByb3RvdHlwZXMgZm9yIGFzc2VtYmx5IGZ1bmN0aW9ucywgaW4gc3lzdi5TICovCitleHRlcm4gdm9pZCBmZmlfY2FsbF9TWVNWICh2b2lkICgqZm4pKHZvaWQpLCBleHRlbmRlZF9jaWYgKiwgdW5zaWduZWQsIHVuc2lnbmVkLCB1bnNpZ25lZCAqKTsKK2V4dGVybiB2b2lkIGZmaV9jYWxsX1ZGUCAodm9pZCAoKmZuKSh2b2lkKSwgZXh0ZW5kZWRfY2lmICosIHVuc2lnbmVkLCB1bnNpZ25lZCwgdW5zaWduZWQgKik7CiAKIHZvaWQgZmZpX2NhbGwoZmZpX2NpZiAqY2lmLCB2b2lkICgqZm4pKHZvaWQpLCB2b2lkICpydmFsdWUsIHZvaWQgKiphdmFsdWUpCiB7CkBAIC0xNTcsNiArMjE4LDggQEAKIAogICBpbnQgc21hbGxfc3RydWN0ID0gKGNpZi0+ZmxhZ3MgPT0gRkZJX1RZUEVfSU5UIAogCQkgICAgICAmJiBjaWYtPnJ0eXBlLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCk7CisgIGludCB2ZnBfc3RydWN0ID0gKGNpZi0+ZmxhZ3MgPT0gRkZJX1RZUEVfU1RSVUNUX1ZGUF9GTE9BVAorCQkgICAgfHwgY2lmLT5mbGFncyA9PSBGRklfVFlQRV9TVFJVQ1RfVkZQX0RPVUJMRSk7CiAKICAgZWNpZi5jaWYgPSBjaWY7CiAgIGVjaWYuYXZhbHVlID0gYXZhbHVlOwpAQCAtMTczLDM4ICsyMzYsNTMgQEAKICAgICB9CiAgIGVsc2UgaWYgKHNtYWxsX3N0cnVjdCkKICAgICBlY2lmLnJ2YWx1ZSA9ICZ0ZW1wOworICBlbHNlIGlmICh2ZnBfc3RydWN0KQorICAgIHsKKyAgICAgIC8qIExhcmdlc3QgY2FzZSBpcyBkb3VibGUgeCA0LiAqLworICAgICAgZWNpZi5ydmFsdWUgPSBhbGxvY2EoMzIpOworICAgIH0KICAgZWxzZQogICAgIGVjaWYucnZhbHVlID0gcnZhbHVlOwogCiAgIHN3aXRjaCAoY2lmLT5hYmkpIAogICAgIHsKICAgICBjYXNlIEZGSV9TWVNWOgotICAgICAgZmZpX2NhbGxfU1lTVihmZmlfcHJlcF9hcmdzLCAmZWNpZiwgY2lmLT5ieXRlcywgY2lmLT5mbGFncywgZWNpZi5ydmFsdWUsCi0JCSAgICBmbik7Ci0KKyAgICAgIGZmaV9jYWxsX1NZU1YgKGZuLCAmZWNpZiwgY2lmLT5ieXRlcywgY2lmLT5mbGFncywgZWNpZi5ydmFsdWUpOwogICAgICAgYnJlYWs7CisKKyAgICBjYXNlIEZGSV9WRlA6CisjaWZkZWYgX19BUk1fRUFCSV9fCisgICAgICBmZmlfY2FsbF9WRlAgKGZuLCAmZWNpZiwgY2lmLT5ieXRlcywgY2lmLT5mbGFncywgZWNpZi5ydmFsdWUpOworICAgICAgYnJlYWs7CisjZW5kaWYKKwogICAgIGRlZmF1bHQ6CiAgICAgICBGRklfQVNTRVJUKDApOwogICAgICAgYnJlYWs7CiAgICAgfQogICBpZiAoc21hbGxfc3RydWN0KQogICAgIG1lbWNweSAocnZhbHVlLCAmdGVtcCwgY2lmLT5ydHlwZS0+c2l6ZSk7CisgIGVsc2UgaWYgKHZmcF9zdHJ1Y3QpCisgICAgbWVtY3B5IChydmFsdWUsIGVjaWYucnZhbHVlLCBjaWYtPnJ0eXBlLT5zaXplKTsKIH0KIAogLyoqIHByaXZhdGUgbWVtYmVycyAqKi8KIAogc3RhdGljIHZvaWQgZmZpX3ByZXBfaW5jb21pbmdfYXJnc19TWVNWIChjaGFyICpzdGFjaywgdm9pZCAqKnJldCwKLQkJCQkJIHZvaWQqKiBhcmdzLCBmZmlfY2lmKiBjaWYpOworCQkJCQkgdm9pZCoqIGFyZ3MsIGZmaV9jaWYqIGNpZiwgZmxvYXQgKnZmcF9zdGFjayk7CiAKIHZvaWQgZmZpX2Nsb3N1cmVfU1lTViAoZmZpX2Nsb3N1cmUgKik7CiAKK3ZvaWQgZmZpX2Nsb3N1cmVfVkZQIChmZmlfY2xvc3VyZSAqKTsKKwogLyogVGhpcyBmdW5jdGlvbiBpcyBqdW1wZWQgdG8gYnkgdGhlIHRyYW1wb2xpbmUgKi8KIAogdW5zaWduZWQgaW50Ci1mZmlfY2xvc3VyZV9TWVNWX2lubmVyIChjbG9zdXJlLCByZXNwcCwgYXJncykKK2ZmaV9jbG9zdXJlX1NZU1ZfaW5uZXIgKGNsb3N1cmUsIHJlc3BwLCBhcmdzLCB2ZnBfYXJncykKICAgICAgZmZpX2Nsb3N1cmUgKmNsb3N1cmU7CiAgICAgIHZvaWQgKipyZXNwcDsKICAgICAgdm9pZCAqYXJnczsKKyAgICAgdm9pZCAqdmZwX2FyZ3M7CiB7CiAgIC8vIG91ciB2YXJpb3VzIHRoaW5ncy4uLgogICBmZmlfY2lmICAgICAgICpjaWY7CkBAIC0yMTksNyArMjk3LDcgQEAKICAgICogYSBzdHJ1Y3R1cmUsIGl0IHdpbGwgcmUtc2V0IFJFU1AgdG8gcG9pbnQgdG8gdGhlCiAgICAqIHN0cnVjdHVyZSByZXR1cm4gYWRkcmVzcy4gICovCiAKLSAgZmZpX3ByZXBfaW5jb21pbmdfYXJnc19TWVNWKGFyZ3MsIHJlc3BwLCBhcmdfYXJlYSwgY2lmKTsKKyAgZmZpX3ByZXBfaW5jb21pbmdfYXJnc19TWVNWKGFyZ3MsIHJlc3BwLCBhcmdfYXJlYSwgY2lmLCB2ZnBfYXJncyk7CiAKICAgKGNsb3N1cmUtPmZ1bikgKGNpZiwgKnJlc3BwLCBhcmdfYXJlYSwgY2xvc3VyZS0+dXNlcl9kYXRhKTsKIApAQCAtMjI5LDEwICszMDcsMTIgQEAKIC8qQC1leHBvcnRoZWFkZXJAKi8KIHN0YXRpYyB2b2lkIAogZmZpX3ByZXBfaW5jb21pbmdfYXJnc19TWVNWKGNoYXIgKnN0YWNrLCB2b2lkICoqcnZhbHVlLAotCQkJICAgIHZvaWQgKiphdmFsdWUsIGZmaV9jaWYgKmNpZikKKwkJCSAgICB2b2lkICoqYXZhbHVlLCBmZmlfY2lmICpjaWYsCisJCQkgICAgLyogVXNlZCBvbmx5IHVuZGVyIFZGUCBoYXJkLWZsb2F0IEFCSS4gKi8KKwkJCSAgICBmbG9hdCAqdmZwX3N0YWNrKQogLypAPWV4cG9ydGhlYWRlckAqLwogewotICByZWdpc3RlciB1bnNpZ25lZCBpbnQgaTsKKyAgcmVnaXN0ZXIgdW5zaWduZWQgaW50IGksIHZpID0gMDsKICAgcmVnaXN0ZXIgdm9pZCAqKnBfYXJndjsKICAgcmVnaXN0ZXIgY2hhciAqYXJncDsKICAgcmVnaXN0ZXIgZmZpX3R5cGUgKipwX2FyZzsKQEAgLTI0OSwxMCArMzI5LDIzIEBACiAgIGZvciAoaSA9IGNpZi0+bmFyZ3MsIHBfYXJnID0gY2lmLT5hcmdfdHlwZXM7IChpICE9IDApOyBpLS0sIHBfYXJnKyspCiAgICAgewogICAgICAgc2l6ZV90IHo7CisgICAgICBzaXplX3QgYWxpZ25tZW50OworICAKKyAgICAgIGlmIChjaWYtPmFiaSA9PSBGRklfVkZQCisJICAmJiB2aSA8IGNpZi0+dmZwX25hcmdzICYmIHZmcF90eXBlX3AgKCpwX2FyZykpCisJeworCSAgKnBfYXJndisrID0gKHZvaWQqKSh2ZnBfc3RhY2sgKyBjaWYtPnZmcF9hcmdzW3ZpKytdKTsKKwkgIGNvbnRpbnVlOworCX0KIAotICAgICAgc2l6ZV90IGFsaWdubWVudCA9ICgqcF9hcmcpLT5hbGlnbm1lbnQ7CisgICAgICBhbGlnbm1lbnQgPSAoKnBfYXJnKS0+YWxpZ25tZW50OwogICAgICAgaWYgKGFsaWdubWVudCA8IDQpCiAJYWxpZ25tZW50ID0gNDsKKyNpZmRlZiBfV0lOMzJfV0NFCisgICAgICBlbHNlCisJaWYgKGFsaWdubWVudCA+IDQpCisJICBhbGlnbm1lbnQgPSA0OworI2VuZGlmCiAgICAgICAvKiBBbGlnbiBpZiBuZWNlc3NhcnkgKi8KICAgICAgIGlmICgoYWxpZ25tZW50IC0gMSkgJiAodW5zaWduZWQpIGFyZ3ApIHsKIAlhcmdwID0gKGNoYXIgKikgQUxJR04oYXJncCwgYWxpZ25tZW50KTsKQEAgLTI3MywxOCArMzY2LDIzNyBAQAogCiAvKiBIb3cgdG8gbWFrZSBhIHRyYW1wb2xpbmUuICAqLwogCitleHRlcm4gdW5zaWduZWQgaW50IGZmaV9hcm1fdHJhbXBvbGluZVszXTsKKworI2lmIEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUKKworI2luY2x1ZGUgPG1hY2gvbWFjaC5oPgorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCitleHRlcm4gdm9pZCAqZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZV9wYWdlOworCit0eXBlZGVmIHN0cnVjdCBmZmlfdHJhbXBvbGluZV90YWJsZSBmZmlfdHJhbXBvbGluZV90YWJsZTsKK3R5cGVkZWYgc3RydWN0IGZmaV90cmFtcG9saW5lX3RhYmxlX2VudHJ5IGZmaV90cmFtcG9saW5lX3RhYmxlX2VudHJ5OworCitzdHJ1Y3QgZmZpX3RyYW1wb2xpbmVfdGFibGUgeworICAvKiBjb250aWdpb3VzIHdyaXRhYmxlIGFuZCBleGVjdXRhYmxlIHBhZ2VzICovCisgIHZtX2FkZHJlc3NfdCBjb25maWdfcGFnZTsKKyAgdm1fYWRkcmVzc190IHRyYW1wb2xpbmVfcGFnZTsKKworICAvKiBmcmVlIGxpc3QgdHJhY2tpbmcgKi8KKyAgdWludDE2X3QgZnJlZV9jb3VudDsKKyAgZmZpX3RyYW1wb2xpbmVfdGFibGVfZW50cnkgKmZyZWVfbGlzdDsKKyAgZmZpX3RyYW1wb2xpbmVfdGFibGVfZW50cnkgKmZyZWVfbGlzdF9wb29sOworCisgIGZmaV90cmFtcG9saW5lX3RhYmxlICpwcmV2OworICBmZmlfdHJhbXBvbGluZV90YWJsZSAqbmV4dDsKK307CisKK3N0cnVjdCBmZmlfdHJhbXBvbGluZV90YWJsZV9lbnRyeSB7CisgIHZvaWQgKigqdHJhbXBvbGluZSkoKTsKKyAgZmZpX3RyYW1wb2xpbmVfdGFibGVfZW50cnkgKm5leHQ7Cit9OworCisvKiBPdmVycmlkZSB0aGUgc3RhbmRhcmQgYXJjaGl0ZWN0dXJlIHRyYW1wb2xpbmUgc2l6ZSAqLworLy8gWFhYIFRPRE8gLSBGaXgKKyN1bmRlZiBGRklfVFJBTVBPTElORV9TSVpFCisjZGVmaW5lIEZGSV9UUkFNUE9MSU5FX1NJWkUgMTIKKworLyogVGhlIHRyYW1wb2xpbmUgY29uZmlndXJhdGlvbiBpcyBwbGFjZWQgYXQgNDA4MCBieXRlcyBwcmlvciB0byB0aGUgdHJhbXBvbGluZSdzIGVudHJ5IHBvaW50ICovCisjZGVmaW5lIEZGSV9UUkFNUE9MSU5FX0NPREVMT0NfQ09ORklHKGNvZGVsb2MpICgodm9pZCAqKikgKCgodWludDhfdCAqKSBjb2RlbG9jKSAtIDQwODApKTsKKworLyogVGhlIGZpcnN0IDE2IGJ5dGVzIG9mIHRoZSBjb25maWcgcGFnZSBhcmUgdW51c2VkLCBhcyB0aGV5IGFyZSB1bmFkZHJlc3NhYmxlIGZyb20gdGhlIHRyYW1wb2xpbmUgcGFnZS4gKi8KKyNkZWZpbmUgRkZJX1RSQU1QT0xJTkVfQ09ORklHX1BBR0VfT0ZGU0VUIDE2CisKKy8qIFRvdGFsIG51bWJlciBvZiB0cmFtcG9saW5lcyB0aGF0IGZpdCBpbiBvbmUgdHJhbXBvbGluZSB0YWJsZSAqLworI2RlZmluZSBGRklfVFJBTVBPTElORV9DT1VOVCAoKFBBR0VfU0laRSAtIEZGSV9UUkFNUE9MSU5FX0NPTkZJR19QQUdFX09GRlNFVCkgLyBGRklfVFJBTVBPTElORV9TSVpFKQorCitzdGF0aWMgcHRocmVhZF9tdXRleF90IGZmaV90cmFtcG9saW5lX2xvY2sgPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOworc3RhdGljIGZmaV90cmFtcG9saW5lX3RhYmxlICpmZmlfdHJhbXBvbGluZV90YWJsZXMgPSBOVUxMOworCitzdGF0aWMgZmZpX3RyYW1wb2xpbmVfdGFibGUgKgorZmZpX3RyYW1wb2xpbmVfdGFibGVfYWxsb2MgKCkKK3sKKyAgZmZpX3RyYW1wb2xpbmVfdGFibGUgKnRhYmxlID0gTlVMTDsKKworICAvKiBMb29wIHVudGlsIHdlIGNhbiBhbGxvY2F0ZSB0d28gY29udGlnaW91cyBwYWdlcyAqLworICB3aGlsZSAodGFibGUgPT0gTlVMTCkgeworICAgIHZtX2FkZHJlc3NfdCBjb25maWdfcGFnZSA9IDB4MDsKKyAgICBrZXJuX3JldHVybl90IGt0OworCisgICAgLyogVHJ5IHRvIGFsbG9jYXRlIHR3byBwYWdlcyAqLworICAgIGt0ID0gdm1fYWxsb2NhdGUgKG1hY2hfdGFza19zZWxmICgpLCAmY29uZmlnX3BhZ2UsIFBBR0VfU0laRSoyLCBWTV9GTEFHU19BTllXSEVSRSk7CisgICAgaWYgKGt0ICE9IEtFUk5fU1VDQ0VTUykgeworICAgICAgZnByaW50ZihzdGRlcnIsICJ2bV9hbGxvY2F0ZSgpIGZhaWx1cmU6ICVkIGF0ICVzOiVkXG4iLCBrdCwgX19GSUxFX18sIF9fTElORV9fKTsKKyAgICAgIGJyZWFrOworICAgIH0KKworICAgIC8qIE5vdyBkcm9wIHRoZSBzZWNvbmQgaGFsZiBvZiB0aGUgYWxsb2NhdGlvbiB0byBtYWtlIHJvb20gZm9yIHRoZSB0cmFtcG9saW5lIHRhYmxlICovCisgICAgdm1fYWRkcmVzc190IHRyYW1wb2xpbmVfcGFnZSA9IGNvbmZpZ19wYWdlK1BBR0VfU0laRTsKKyAgICBrdCA9IHZtX2RlYWxsb2NhdGUgKG1hY2hfdGFza19zZWxmICgpLCB0cmFtcG9saW5lX3BhZ2UsIFBBR0VfU0laRSk7CisgICAgaWYgKGt0ICE9IEtFUk5fU1VDQ0VTUykgeworICAgICAgZnByaW50ZihzdGRlcnIsICJ2bV9kZWFsbG9jYXRlKCkgZmFpbHVyZTogJWQgYXQgJXM6JWRcbiIsIGt0LCBfX0ZJTEVfXywgX19MSU5FX18pOworICAgICAgYnJlYWs7CisgICAgfQorCisgICAgLyogUmVtYXAgdGhlIHRyYW1wb2xpbmUgdGFibGUgdG8gZGlyZWN0bHkgZm9sbG93IHRoZSBjb25maWcgcGFnZSAqLworICAgIHZtX3Byb3RfdCBjdXJfcHJvdDsKKyAgICB2bV9wcm90X3QgbWF4X3Byb3Q7CisKKyAgICBrdCA9IHZtX3JlbWFwIChtYWNoX3Rhc2tfc2VsZiAoKSwgJnRyYW1wb2xpbmVfcGFnZSwgUEFHRV9TSVpFLCAweDAsIEZBTFNFLCBtYWNoX3Rhc2tfc2VsZiAoKSwgKHZtX2FkZHJlc3NfdCkgJmZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGVfcGFnZSwgRkFMU0UsICZjdXJfcHJvdCwgJm1heF9wcm90LCBWTV9JTkhFUklUX1NIQVJFKTsKKworICAgIC8qIElmIHdlIGxvc3QgYWNjZXNzIHRvIHRoZSBkZXN0aW5hdGlvbiB0cmFtcG9saW5lIHBhZ2UsIGRyb3Agb3VyIGNvbmZpZyBhbGxvY2F0aW9uIG1hcHBpbmcgYW5kIHJldHJ5ICovCisgICAgaWYgKGt0ICE9IEtFUk5fU1VDQ0VTUykgeworICAgICAgLyogTG9nIHVuZXhwZWN0ZWQgZmFpbHVyZXMgKi8KKyAgICAgIGlmIChrdCAhPSBLRVJOX05PX1NQQUNFKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAidm1fcmVtYXAoKSBmYWlsdXJlOiAlZCBhdCAlczolZFxuIiwga3QsIF9fRklMRV9fLCBfX0xJTkVfXyk7CisgICAgICB9CisKKyAgICAgIHZtX2RlYWxsb2NhdGUgKG1hY2hfdGFza19zZWxmICgpLCBjb25maWdfcGFnZSwgUEFHRV9TSVpFKTsKKyAgICAgIGNvbnRpbnVlOworICAgIH0KKworICAgIC8qIFdlIGhhdmUgdmFsaWQgdHJhbXBvbGluZSBhbmQgY29uZmlnIHBhZ2VzICovCisgICAgdGFibGUgPSBjYWxsb2MgKDEsIHNpemVvZihmZmlfdHJhbXBvbGluZV90YWJsZSkpOworICAgIHRhYmxlLT5mcmVlX2NvdW50ID0gRkZJX1RSQU1QT0xJTkVfQ09VTlQ7CisgICAgdGFibGUtPmNvbmZpZ19wYWdlID0gY29uZmlnX3BhZ2U7CisgICAgdGFibGUtPnRyYW1wb2xpbmVfcGFnZSA9IHRyYW1wb2xpbmVfcGFnZTsKKworICAgIC8qIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSB0aGUgZnJlZSBsaXN0ICovCisgICAgdGFibGUtPmZyZWVfbGlzdF9wb29sID0gY2FsbG9jKEZGSV9UUkFNUE9MSU5FX0NPVU5ULCBzaXplb2YoZmZpX3RyYW1wb2xpbmVfdGFibGVfZW50cnkpKTsKKworICAgIHVpbnQxNl90IGk7CisgICAgZm9yIChpID0gMDsgaSA8IHRhYmxlLT5mcmVlX2NvdW50OyBpKyspIHsKKyAgICAgIGZmaV90cmFtcG9saW5lX3RhYmxlX2VudHJ5ICplbnRyeSA9ICZ0YWJsZS0+ZnJlZV9saXN0X3Bvb2xbaV07CisgICAgICBlbnRyeS0+dHJhbXBvbGluZSA9ICh2b2lkICopICh0YWJsZS0+dHJhbXBvbGluZV9wYWdlICsgKGkgKiBGRklfVFJBTVBPTElORV9TSVpFKSk7CisKKyAgICAgIGlmIChpIDwgdGFibGUtPmZyZWVfY291bnQgLSAxKQorICAgICAgICBlbnRyeS0+bmV4dCA9ICZ0YWJsZS0+ZnJlZV9saXN0X3Bvb2xbaSsxXTsKKyAgICB9CisKKyAgICB0YWJsZS0+ZnJlZV9saXN0ID0gdGFibGUtPmZyZWVfbGlzdF9wb29sOworICB9CisKKyAgcmV0dXJuIHRhYmxlOworfQorCit2b2lkICoKK2ZmaV9jbG9zdXJlX2FsbG9jIChzaXplX3Qgc2l6ZSwgdm9pZCAqKmNvZGUpCit7CisgIC8qIENyZWF0ZSB0aGUgY2xvc3VyZSAqLworICBmZmlfY2xvc3VyZSAqY2xvc3VyZSA9IG1hbGxvYyhzaXplKTsKKyAgaWYgKGNsb3N1cmUgPT0gTlVMTCkKKyAgICByZXR1cm4gTlVMTDsKKworICBwdGhyZWFkX211dGV4X2xvY2soJmZmaV90cmFtcG9saW5lX2xvY2spOworCisgIC8qIENoZWNrIGZvciBhbiBhY3RpdmUgdHJhbXBvbGluZSB0YWJsZSB3aXRoIGF2YWlsYWJsZSBlbnRyaWVzLiAqLworICBmZmlfdHJhbXBvbGluZV90YWJsZSAqdGFibGUgPSBmZmlfdHJhbXBvbGluZV90YWJsZXM7CisgIGlmICh0YWJsZSA9PSBOVUxMIHx8IHRhYmxlLT5mcmVlX2xpc3QgPT0gTlVMTCkgeworICAgIHRhYmxlID0gZmZpX3RyYW1wb2xpbmVfdGFibGVfYWxsb2MgKCk7CisgICAgaWYgKHRhYmxlID09IE5VTEwpIHsKKyAgICAgIGZyZWUoY2xvc3VyZSk7CisgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBJbnNlcnQgdGhlIG5ldyB0YWJsZSBhdCB0aGUgdG9wIG9mIHRoZSBsaXN0ICovCisgICAgdGFibGUtPm5leHQgPSBmZmlfdHJhbXBvbGluZV90YWJsZXM7CisgICAgaWYgKHRhYmxlLT5uZXh0ICE9IE5VTEwpCisgICAgICAgIHRhYmxlLT5uZXh0LT5wcmV2ID0gdGFibGU7CisKKyAgICBmZmlfdHJhbXBvbGluZV90YWJsZXMgPSB0YWJsZTsKKyAgfQorCisgIC8qIENsYWltIHRoZSBmcmVlIGVudHJ5ICovCisgIGZmaV90cmFtcG9saW5lX3RhYmxlX2VudHJ5ICplbnRyeSA9IGZmaV90cmFtcG9saW5lX3RhYmxlcy0+ZnJlZV9saXN0OworICBmZmlfdHJhbXBvbGluZV90YWJsZXMtPmZyZWVfbGlzdCA9IGVudHJ5LT5uZXh0OworICBmZmlfdHJhbXBvbGluZV90YWJsZXMtPmZyZWVfY291bnQtLTsKKyAgZW50cnktPm5leHQgPSBOVUxMOworCisgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZmZmlfdHJhbXBvbGluZV9sb2NrKTsKKworICAvKiBJbml0aWFsaXplIHRoZSByZXR1cm4gdmFsdWVzICovCisgICpjb2RlID0gZW50cnktPnRyYW1wb2xpbmU7CisgIGNsb3N1cmUtPnRyYW1wb2xpbmVfdGFibGUgPSB0YWJsZTsKKyAgY2xvc3VyZS0+dHJhbXBvbGluZV90YWJsZV9lbnRyeSA9IGVudHJ5OworCisgIHJldHVybiBjbG9zdXJlOworfQorCit2b2lkCitmZmlfY2xvc3VyZV9mcmVlICh2b2lkICpwdHIpCit7CisgIGZmaV9jbG9zdXJlICpjbG9zdXJlID0gcHRyOworCisgIHB0aHJlYWRfbXV0ZXhfbG9jaygmZmZpX3RyYW1wb2xpbmVfbG9jayk7CisKKyAgLyogRmV0Y2ggdGhlIHRhYmxlIGFuZCBlbnRyeSByZWZlcmVuY2VzICovCisgIGZmaV90cmFtcG9saW5lX3RhYmxlICp0YWJsZSA9IGNsb3N1cmUtPnRyYW1wb2xpbmVfdGFibGU7CisgIGZmaV90cmFtcG9saW5lX3RhYmxlX2VudHJ5ICplbnRyeSA9IGNsb3N1cmUtPnRyYW1wb2xpbmVfdGFibGVfZW50cnk7CisKKyAgLyogUmV0dXJuIHRoZSBlbnRyeSB0byB0aGUgZnJlZSBsaXN0ICovCisgIGVudHJ5LT5uZXh0ID0gdGFibGUtPmZyZWVfbGlzdDsKKyAgdGFibGUtPmZyZWVfbGlzdCA9IGVudHJ5OworICB0YWJsZS0+ZnJlZV9jb3VudCsrOworCisgIC8qIElmIGFsbCB0cmFtcG9saW5lcyB3aXRoaW4gdGhpcyB0YWJsZSBhcmUgZnJlZSwgYW5kIGF0IGxlYXN0IG9uZSBvdGhlciB0YWJsZSBleGlzdHMsIGRlYWxsb2NhdGUKKyAgICogdGhlIHRhYmxlICovCisgIGlmICh0YWJsZS0+ZnJlZV9jb3VudCA9PSBGRklfVFJBTVBPTElORV9DT1VOVCAmJiBmZmlfdHJhbXBvbGluZV90YWJsZXMgIT0gdGFibGUpIHsKKyAgICAvKiBSZW1vdmUgZnJvbSB0aGUgbGlzdCAqLworICAgIGlmICh0YWJsZS0+cHJldiAhPSBOVUxMKQorICAgICAgdGFibGUtPnByZXYtPm5leHQgPSB0YWJsZS0+bmV4dDsKKworICAgIGlmICh0YWJsZS0+bmV4dCAhPSBOVUxMKQorICAgICAgdGFibGUtPm5leHQtPnByZXYgPSB0YWJsZS0+cHJldjsKKworICAgIC8qIERlYWxsb2NhdGUgcGFnZXMgKi8KKyAgICBrZXJuX3JldHVybl90IGt0OworICAgIGt0ID0gdm1fZGVhbGxvY2F0ZSAobWFjaF90YXNrX3NlbGYgKCksIHRhYmxlLT5jb25maWdfcGFnZSwgUEFHRV9TSVpFKTsKKyAgICBpZiAoa3QgIT0gS0VSTl9TVUNDRVNTKQorICAgICAgZnByaW50ZihzdGRlcnIsICJ2bV9kZWFsbG9jYXRlKCkgZmFpbHVyZTogJWQgYXQgJXM6JWRcbiIsIGt0LCBfX0ZJTEVfXywgX19MSU5FX18pOworCisgICAga3QgPSB2bV9kZWFsbG9jYXRlIChtYWNoX3Rhc2tfc2VsZiAoKSwgdGFibGUtPnRyYW1wb2xpbmVfcGFnZSwgUEFHRV9TSVpFKTsKKyAgICBpZiAoa3QgIT0gS0VSTl9TVUNDRVNTKQorICAgICAgZnByaW50ZihzdGRlcnIsICJ2bV9kZWFsbG9jYXRlKCkgZmFpbHVyZTogJWQgYXQgJXM6JWRcbiIsIGt0LCBfX0ZJTEVfXywgX19MSU5FX18pOworCisgICAgLyogRGVhbGxvY2F0ZSBmcmVlIGxpc3QgKi8KKyAgICBmcmVlICh0YWJsZS0+ZnJlZV9saXN0X3Bvb2wpOworICAgIGZyZWUgKHRhYmxlKTsKKyAgfSBlbHNlIGlmIChmZmlfdHJhbXBvbGluZV90YWJsZXMgIT0gdGFibGUpIHsKKyAgICAvKiBPdGhlcndpc2UsIGJ1bXAgdGhpcyB0YWJsZSB0byB0aGUgdG9wIG9mIHRoZSBsaXN0ICovCisgICAgdGFibGUtPnByZXYgPSBOVUxMOworICAgIHRhYmxlLT5uZXh0ID0gZmZpX3RyYW1wb2xpbmVfdGFibGVzOworICAgIGlmIChmZmlfdHJhbXBvbGluZV90YWJsZXMgIT0gTlVMTCkKKyAgICAgIGZmaV90cmFtcG9saW5lX3RhYmxlcy0+cHJldiA9IHRhYmxlOworCisgICAgZmZpX3RyYW1wb2xpbmVfdGFibGVzID0gdGFibGU7CisgIH0KKworICBwdGhyZWFkX211dGV4X3VubG9jayAoJmZmaV90cmFtcG9saW5lX2xvY2spOworCisgIC8qIEZyZWUgdGhlIGNsb3N1cmUgKi8KKyAgZnJlZSAoY2xvc3VyZSk7Cit9CisKKyNlbHNlCisKICNkZWZpbmUgRkZJX0lOSVRfVFJBTVBPTElORShUUkFNUCxGVU4sQ1RYKQkJCQlcCiAoeyB1bnNpZ25lZCBjaGFyICpfX3RyYW1wID0gKHVuc2lnbmVkIGNoYXIqKShUUkFNUCk7CQkJXAogICAgdW5zaWduZWQgaW50ICBfX2Z1biA9ICh1bnNpZ25lZCBpbnQpKEZVTik7CQkJCVwKICAgIHVuc2lnbmVkIGludCAgX19jdHggPSAodW5zaWduZWQgaW50KShDVFgpOwkJCQlcCi0gICAqKHVuc2lnbmVkIGludCopICZfX3RyYW1wWzBdID0gMHhlOTJkMDAwZjsgLyogc3RtZmQgc3AhLCB7cjAtcjN9ICovCVwKLSAgICoodW5zaWduZWQgaW50KikgJl9fdHJhbXBbNF0gPSAweGU1OWYwMDAwOyAvKiBsZHIgcjAsIFtwY10gKi8JXAotICAgKih1bnNpZ25lZCBpbnQqKSAmX190cmFtcFs4XSA9IDB4ZTU5ZmYwMDA7IC8qIGxkciBwYywgW3BjXSAqLwlcCisgICB1bnNpZ25lZCBjaGFyICppbnNucyA9ICh1bnNpZ25lZCBjaGFyICopKENUWCk7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICBtZW1jcHkgKF9fdHJhbXAsIGZmaV9hcm1fdHJhbXBvbGluZSwgc2l6ZW9mIGZmaV9hcm1fdHJhbXBvbGluZSk7ICAgICBcCiAgICAqKHVuc2lnbmVkIGludCopICZfX3RyYW1wWzEyXSA9IF9fY3R4OwkJCQlcCiAgICAqKHVuc2lnbmVkIGludCopICZfX3RyYW1wWzE2XSA9IF9fZnVuOwkJCQlcCi0gICBfX2NsZWFyX2NhY2hlKCgmX190cmFtcFswXSksICgmX190cmFtcFsxOV0pKTsJCQlcCisgICBfX2NsZWFyX2NhY2hlKCgmX190cmFtcFswXSksICgmX190cmFtcFsxOV0pKTsgLyogQ2xlYXIgZGF0YSBtYXBwaW5nLiAgKi8gXAorICAgX19jbGVhcl9jYWNoZShpbnNucywgaW5zbnMgKyAzICogc2l6ZW9mICh1bnNpZ25lZCBpbnQpKTsgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENsZWFyIGluc3RydWN0aW9uICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHBpbmcuICAqLyAgICAgICAgXAogIH0pCiAKKyNlbmRpZgogCiAvKiB0aGUgY2lmIG11c3QgYWxyZWFkeSBiZSBwcmVwJ2VkICovCiAKQEAgLTI5NSwxNSArNjA3LDE1MCBAQAogCQkgICAgICB2b2lkICp1c2VyX2RhdGEsCiAJCSAgICAgIHZvaWQgKmNvZGVsb2MpCiB7Ci0gIEZGSV9BU1NFUlQgKGNpZi0+YWJpID09IEZGSV9TWVNWKTsKKyAgdm9pZCAoKmNsb3N1cmVfZnVuYykoZmZpX2Nsb3N1cmUqKSA9IE5VTEw7CiAKLSAgRkZJX0lOSVRfVFJBTVBPTElORSAoJmNsb3N1cmUtPnRyYW1wWzBdLCBcCi0JCSAgICAgICAmZmZpX2Nsb3N1cmVfU1lTViwgIFwKLQkJICAgICAgIGNvZGVsb2MpOworICBpZiAoY2lmLT5hYmkgPT0gRkZJX1NZU1YpCisgICAgY2xvc3VyZV9mdW5jID0gJmZmaV9jbG9zdXJlX1NZU1Y7CisjaWZkZWYgX19BUk1fRUFCSV9fCisgIGVsc2UgaWYgKGNpZi0+YWJpID09IEZGSV9WRlApCisgICAgY2xvc3VyZV9mdW5jID0gJmZmaV9jbG9zdXJlX1ZGUDsKKyNlbmRpZgorICBlbHNlCisgICAgcmV0dXJuIEZGSV9CQURfQUJJOwogICAgIAorI2lmIEZGSV9FWEVDX1RSQU1QT0xJTkVfVEFCTEUKKyAgdm9pZCAqKmNvbmZpZyA9IEZGSV9UUkFNUE9MSU5FX0NPREVMT0NfQ09ORklHKGNvZGVsb2MpOworICBjb25maWdbMF0gPSBjbG9zdXJlOworICBjb25maWdbMV0gPSBjbG9zdXJlX2Z1bmM7CisjZWxzZQorICBGRklfSU5JVF9UUkFNUE9MSU5FICgmY2xvc3VyZS0+dHJhbXBbMF0sIFwKKwkJICAgICAgIGNsb3N1cmVfZnVuYywgIFwKKwkJICAgICAgIGNvZGVsb2MpOworI2VuZGlmCisKICAgY2xvc3VyZS0+Y2lmICA9IGNpZjsKICAgY2xvc3VyZS0+dXNlcl9kYXRhID0gdXNlcl9kYXRhOwogICBjbG9zdXJlLT5mdW4gID0gZnVuOwogCiAgIHJldHVybiBGRklfT0s7CiB9CisKKy8qIEJlbG93IGFyZSByb3V0aW5lcyBmb3IgVkZQIGhhcmQtZmxvYXQgc3VwcG9ydC4gKi8KKworc3RhdGljIGludCByZWNfdmZwX3R5cGVfcCAoZmZpX3R5cGUgKnQsIGludCAqZWx0LCBpbnQgKmVsbnVtKQoreworICBzd2l0Y2ggKHQtPnR5cGUpCisgICAgeworICAgIGNhc2UgRkZJX1RZUEVfRkxPQVQ6CisgICAgY2FzZSBGRklfVFlQRV9ET1VCTEU6CisgICAgICAqZWx0ID0gKGludCkgdC0+dHlwZTsKKyAgICAgICplbG51bSA9IDE7CisgICAgICByZXR1cm4gMTsKKworICAgIGNhc2UgRkZJX1RZUEVfU1RSVUNUX1ZGUF9GTE9BVDoKKyAgICAgICplbHQgPSBGRklfVFlQRV9GTE9BVDsKKyAgICAgICplbG51bSA9IHQtPnNpemUgLyBzaXplb2YgKGZsb2F0KTsKKyAgICAgIHJldHVybiAxOworCisgICAgY2FzZSBGRklfVFlQRV9TVFJVQ1RfVkZQX0RPVUJMRToKKyAgICAgICplbHQgPSBGRklfVFlQRV9ET1VCTEU7CisgICAgICAqZWxudW0gPSB0LT5zaXplIC8gc2l6ZW9mIChkb3VibGUpOworICAgICAgcmV0dXJuIDE7CisKKyAgICBjYXNlIEZGSV9UWVBFX1NUUlVDVDo7CisgICAgICB7CisJaW50IGJhc2VfZWx0ID0gMCwgdG90YWxfZWxudW0gPSAwOworCWZmaV90eXBlICoqZWwgPSB0LT5lbGVtZW50czsKKwl3aGlsZSAoKmVsKQorCSAgeworCSAgICBpbnQgZWxfZWx0ID0gMCwgZWxfZWxudW0gPSAwOworCSAgICBpZiAoISByZWNfdmZwX3R5cGVfcCAoKmVsLCAmZWxfZWx0LCAmZWxfZWxudW0pCisJCXx8IChiYXNlX2VsdCAmJiBiYXNlX2VsdCAhPSBlbF9lbHQpCisJCXx8IHRvdGFsX2VsbnVtICsgZWxfZWxudW0gPiA0KQorCSAgICAgIHJldHVybiAwOworCSAgICBiYXNlX2VsdCA9IGVsX2VsdDsKKwkgICAgdG90YWxfZWxudW0gKz0gZWxfZWxudW07CisJICAgIGVsKys7CisJICB9CisJKmVsbnVtID0gdG90YWxfZWxudW07CisJKmVsdCA9IGJhc2VfZWx0OworCXJldHVybiAxOworICAgICAgfQorICAgIGRlZmF1bHQ6IDsKKyAgICB9CisgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50IHZmcF90eXBlX3AgKGZmaV90eXBlICp0KQoreworICBpbnQgZWx0LCBlbG51bTsKKyAgaWYgKHJlY192ZnBfdHlwZV9wICh0LCAmZWx0LCAmZWxudW0pKQorICAgIHsKKyAgICAgIGlmICh0LT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCkKKwl7CisJICBpZiAoZWxudW0gPT0gMSkKKwkgICAgdC0+dHlwZSA9IGVsdDsKKwkgIGVsc2UKKwkgICAgdC0+dHlwZSA9IChlbHQgPT0gRkZJX1RZUEVfRkxPQVQKKwkJICAgICAgID8gRkZJX1RZUEVfU1RSVUNUX1ZGUF9GTE9BVAorCQkgICAgICAgOiBGRklfVFlQRV9TVFJVQ1RfVkZQX0RPVUJMRSk7CisJfQorICAgICAgcmV0dXJuIChpbnQpIHQtPnR5cGU7CisgICAgfQorICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQgcGxhY2VfdmZwX2FyZyAoZmZpX2NpZiAqY2lmLCBmZmlfdHlwZSAqdCkKK3sKKyAgaW50IHJlZyA9IGNpZi0+dmZwX3JlZ19mcmVlOworICBpbnQgbnJlZ3MgPSB0LT5zaXplIC8gc2l6ZW9mIChmbG9hdCk7CisgIGludCBhbGlnbiA9ICgodC0+dHlwZSA9PSBGRklfVFlQRV9TVFJVQ1RfVkZQX0ZMT0FUCisJCXx8IHQtPnR5cGUgPT0gRkZJX1RZUEVfRkxPQVQpID8gMSA6IDIpOworICAvKiBBbGlnbiByZWdpc3RlciBudW1iZXIuICovCisgIGlmICgocmVnICYgMSkgJiYgYWxpZ24gPT0gMikKKyAgICByZWcrKzsKKyAgd2hpbGUgKHJlZyArIG5yZWdzIDw9IDE2KQorICAgIHsKKyAgICAgIGludCBzLCBuZXdfdXNlZCA9IDA7CisgICAgICBmb3IgKHMgPSByZWc7IHMgPCByZWcgKyBucmVnczsgcysrKQorCXsKKwkgIG5ld191c2VkIHw9ICgxIDw8IHMpOworCSAgaWYgKGNpZi0+dmZwX3VzZWQgJiAoMSA8PCBzKSkKKwkgICAgeworCSAgICAgIHJlZyArPSBhbGlnbjsKKwkgICAgICBnb3RvIG5leHRfcmVnOworCSAgICB9CisJfQorICAgICAgLyogRm91bmQgcmVncyB0byBhbGxvY2F0ZS4gKi8KKyAgICAgIGNpZi0+dmZwX3VzZWQgfD0gbmV3X3VzZWQ7CisgICAgICBjaWYtPnZmcF9hcmdzW2NpZi0+dmZwX25hcmdzKytdID0gcmVnOworCisgICAgICAvKiBVcGRhdGUgdmZwX3JlZ19mcmVlLiAqLworICAgICAgaWYgKGNpZi0+dmZwX3VzZWQgJiAoMSA8PCBjaWYtPnZmcF9yZWdfZnJlZSkpCisJeworCSAgcmVnICs9IG5yZWdzOworCSAgd2hpbGUgKGNpZi0+dmZwX3VzZWQgJiAoMSA8PCByZWcpKQorCSAgICByZWcgKz0gMTsKKwkgIGNpZi0+dmZwX3JlZ19mcmVlID0gcmVnOworCX0KKyAgICAgIHJldHVybjsKKyAgICBuZXh0X3JlZzogOworICAgIH0KK30KKworc3RhdGljIHZvaWQgbGF5b3V0X3ZmcF9hcmdzIChmZmlfY2lmICpjaWYpCit7CisgIGludCBpOworICAvKiBJbml0IFZGUCBmaWVsZHMgKi8KKyAgY2lmLT52ZnBfdXNlZCA9IDA7CisgIGNpZi0+dmZwX25hcmdzID0gMDsKKyAgY2lmLT52ZnBfcmVnX2ZyZWUgPSAwOworICBtZW1zZXQgKGNpZi0+dmZwX2FyZ3MsIC0xLCAxNik7IC8qIEluaXQgdG8gLTEuICovCisKKyAgZm9yIChpID0gMDsgaSA8IGNpZi0+bmFyZ3M7IGkrKykKKyAgICB7CisgICAgICBmZmlfdHlwZSAqdCA9IGNpZi0+YXJnX3R5cGVzW2ldOworICAgICAgaWYgKHZmcF90eXBlX3AgKHQpKQorCXBsYWNlX3ZmcF9hcmcgKGNpZiwgdCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvYXJtL2ZmaXRhcmdldC5oIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvYXJtL2ZmaXRhcmdldC5oCmluZGV4IGE5NTc0MjYuLjI2ZDQ5NGQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FybS9mZml0YXJnZXQuaAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hcm0vZmZpdGFyZ2V0LmgKQEAgLTEsNSArMSw4IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSotQy0qLQotICAgZmZpdGFyZ2V0LmggLSBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMyAgUmVkIEhhdCwgSW5jLgorICAgZmZpdGFyZ2V0LmggLSBDb3B5cmlnaHQgKGMpIDIwMTIgIEFudGhvbnkgR3JlZW4KKyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDEwICBDb2RlU291cmNlcnkKKyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk2LTIwMDMgIFJlZCBIYXQsIEluYy4KKwogICAgVGFyZ2V0IGNvbmZpZ3VyYXRpb24gbWFjcm9zIGZvciBBUk0uCiAKICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwpAQCAtMjcsNiArMzAsMTAgQEAKICNpZm5kZWYgTElCRkZJX1RBUkdFVF9ICiAjZGVmaW5lIExJQkZGSV9UQVJHRVRfSAogCisjaWZuZGVmIExJQkZGSV9ICisjZXJyb3IgIlBsZWFzZSBkbyBub3QgaW5jbHVkZSBmZml0YXJnZXQuaCBkaXJlY3RseSBpbnRvIHlvdXIgc291cmNlLiAgVXNlIGZmaS5oIGluc3RlYWQuIgorI2VuZGlmCisKICNpZm5kZWYgTElCRkZJX0FTTQogdHlwZWRlZiB1bnNpZ25lZCBsb25nICAgICAgICAgIGZmaV9hcmc7CiB0eXBlZGVmIHNpZ25lZCBsb25nICAgICAgICAgICAgZmZpX3Nhcmc7CkBAIC0zNCwxMSArNDEsMjcgQEAKIHR5cGVkZWYgZW51bSBmZmlfYWJpIHsKICAgRkZJX0ZJUlNUX0FCSSA9IDAsCiAgIEZGSV9TWVNWLAorICBGRklfVkZQLAorICBGRklfTEFTVF9BQkksCisjaWZkZWYgX19BUk1fUENTX1ZGUAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfVkZQLAorI2Vsc2UKICAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1NZU1YsCi0gIEZGSV9MQVNUX0FCSSA9IEZGSV9ERUZBVUxUX0FCSSArIDEKKyNlbmRpZgogfSBmZmlfYWJpOwogI2VuZGlmCiAKKyNkZWZpbmUgRkZJX0VYVFJBX0NJRl9GSUVMRFMJCQlcCisgIGludCB2ZnBfdXNlZDsJCQkJCVwKKyAgc2hvcnQgdmZwX3JlZ19mcmVlLCB2ZnBfbmFyZ3M7CQlcCisgIHNpZ25lZCBjaGFyIHZmcF9hcmdzWzE2XQkJCVwKKworLyogSW50ZXJuYWxseSB1c2VkLiAqLworI2RlZmluZSBGRklfVFlQRV9TVFJVQ1RfVkZQX0ZMT0FUICAoRkZJX1RZUEVfTEFTVCArIDEpCisjZGVmaW5lIEZGSV9UWVBFX1NUUlVDVF9WRlBfRE9VQkxFIChGRklfVFlQRV9MQVNUICsgMikKKworI2RlZmluZSBGRklfVEFSR0VUX1NQRUNJRklDX1ZBUklBRElDCisKIC8qIC0tLS0gRGVmaW5pdGlvbnMgZm9yIGNsb3N1cmVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKICNkZWZpbmUgRkZJX0NMT1NVUkVTIDEKQEAgLTQ2LDQgKzY5LDMgQEAKICNkZWZpbmUgRkZJX05BVElWRV9SQVdfQVBJIDAKIAogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FybS9nZW50cmFtcC5zaCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FybS9nZW50cmFtcC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGYwYjg2Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvYXJtL2dlbnRyYW1wLnNoCkBAIC0wLDAgKzEsMTE4IEBACisjIS9iaW4vc2gKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAgZ2VudHJhbXAuc2ggLSBDb3B5cmlnaHQgKGMpIDIwMTAsIFBsYXVzaWJsZSBMYWJzIENvb3BlcmF0aXZlLCBJbmMuCisjICAKKyMgIEFSTSBUcmFtcG9saW5lIFBhZ2UgR2VuZXJhdG9yCisjCisjICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKKyMgIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorIyAgYGBTb2Z0d2FyZScnKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisjICB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisjICBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KKyMgIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworIyAgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorIworIyAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyMgIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorIworIyAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyMgIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorIyAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyMgIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVAorIyAgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksCisjICBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKyMgIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyMgIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1BST0dOQU1FPSQwCisKKyMgRWFjaCB0cmFtcG9saW5lIGlzIGV4YWN0bHkgMyBpbnN0cnVjdGlvbnMsIG9yIDEyIGJ5dGVzLiBJZiBhbnkgb2YgdGhlc2UgdmFsdWVzIGNoYW5nZSwKKyMgdGhlIGVudGlyZSBhcm0gdHJhbXBvbGluZSBpbXBsZW1lbnRhdGlvbiBtdXN0IGJlIHVwZGF0ZWQgdG8gbWF0Y2gsIHRvby4KKworIyBTaXplIG9mIGFuIGluZGl2aWR1YWwgdHJhbXBvbGluZSwgaW4gYnl0ZXMKK1RSQU1QT0xJTkVfU0laRT0xMgorCisjIFBhZ2Ugc2l6ZSwgaW4gYnl0ZXMKK1BBR0VfU0laRT00MDk2CisKKyMgQ29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUgcmVhY2hhYmxlIGNvbmZpZyBwYWdlOyBUaGUgZmlyc3QgMTYgYnl0ZXMgb2YgdGhlIGNvbmZpZyBwYWdlCisjIGFyZSB1bnJlYWNoYWJsZSBkdWUgdG8gb3VyIG1heGltdW0gcGMtcmVsYXRpdmUgbGRyIG9mZnNldC4KK1BBR0VfQVZBSUw9YGV4cHIgJFBBR0VfU0laRSAtIDE2YAorCisjIENvbXB1dGUgdGhlIG51bWJlciBvZiBvZiBhdmFpbGFibGUgdHJhbXBvbGluZXMuIAorVFJBTVBPTElORV9DT1VOVD1gZXhwciAkUEFHRV9BVkFJTCAvICRUUkFNUE9MSU5FX1NJWkVgCisKK2hlYWRlciAoKSB7CisgICAgZWNobyAiIyBHRU5FUkFURUQgQ09ERSAtIERPIE5PVCBFRElUIgorICAgIGVjaG8gIiMgVGhpcyBmaWxlIHdhcyBnZW5lcmF0ZWQgYnkgJFBST0dOQU1FIgorICAgIGVjaG8gIiIKKworICAgICMgV3JpdGUgb3V0IHRoZSBsaWNlbnNlIGhlYWRlcgorY2F0IDw8IEVPRgorIyAgQ29weXJpZ2h0IChjKSAyMDEwLCBQbGF1c2libGUgTGFicyBDb29wZXJhdGl2ZSwgSW5jLgorIyAgCisjICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKKyMgIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQorIyAgYGBTb2Z0d2FyZScnKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisjICB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisjICBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KKyMgIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworIyAgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorIworIyAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyMgIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorIworIyAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKKyMgIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgorIyAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKKyMgIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVAorIyAgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksCisjICBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKKyMgIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKKyMgIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyMgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0VPRgorCisgICAgIyBXcml0ZSBvdXQgdGhlIHRyYW1wb2xpbmUgdGFibGUsIGFsaWduZWQgdG8gdGhlIHBhZ2UgYm91bmRhcnkKKyAgICBlY2hvICIudGV4dCIKKyAgICBlY2hvICIuYWxpZ24gMTIiCisgICAgZWNobyAiLmdsb2JsIF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlX3BhZ2UiCisgICAgZWNobyAiX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGVfcGFnZToiCit9CisKKworIyBXQVJOSU5HIC0gRG9uJ3QgbW9kaWZ5IHRoZSB0cmFtcG9saW5lIGNvZGUgc2l6ZSB3aXRob3V0IGFsc28gdXBkYXRpbmcgdGhlIHJlbGV2ZW50IGxpYmZmaSBjb2RlCit0cmFtcG9saW5lICgpIHsKKyAgICBjYXQgPDwgRU5ECisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworRU5ECit9CisKK21haW4gKCkgeworICAgICMgV3JpdGUgb3V0IHRoZSBoZWFkZXIKKyAgICBoZWFkZXIKKworICAgICMgV3JpdGUgb3V0IHRoZSB0cmFtcG9saW5lcworICAgIGxvY2FsIGk9MAorICAgIHdoaWxlIFsgJGkgLWx0ICR7VFJBTVBPTElORV9DT1VOVH0gXTsgZG8KKyAgICAgICAgdHJhbXBvbGluZQorICAgICAgICBsb2NhbCBpPWBleHByICRpICsgMWAKKyAgICBkb25lCit9CisKK21haW4KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FybS9zeXN2LlMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hcm0vc3lzdi5TCmluZGV4IDkwNjQzMTguLmZiMzhjZDYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FybS9zeXN2LlMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvYXJtL3N5c3YuUwpAQCAtMSw1ICsxLDYgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBzeXN2LlMgLSBDb3B5cmlnaHQgKGMpIDE5OTgsIDIwMDggUmVkIEhhdCwgSW5jLgorICAgc3lzdi5TIC0gQ29weXJpZ2h0IChjKSAxOTk4LCAyMDA4LCAyMDExIFJlZCBIYXQsIEluYy4KKwkgICAgQ29weXJpZ2h0IChjKSAyMDExIFBsYXVzaWJsZSBMYWJzIENvb3BlcmF0aXZlLCBJbmMuCiAgICAKICAgIEFSTSBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZSAKIApAQCAtMzksNyArNDAsMTEgQEAKICNlbHNlCiAjZGVmaW5lIENOQU1FKHgpIHgKICNlbmRpZgorI2lmZGVmIF9fQVBQTEVfXworI2RlZmluZSBFTlRSWSh4KSAuZ2xvYmwgXyMjeDsgXyMjeDoKKyNlbHNlCiAjZGVmaW5lIEVOVFJZKHgpIC5nbG9ibCBDTkFNRSh4KTsgLnR5cGUgQ05BTUUoeCksJWZ1bmN0aW9uOyBDTkFNRSh4KToKKyNlbmRpZiAvKiBfX0FQUExFX18gKi8KICNlbmRpZgogCiAjaWZkZWYgX19FTEZfXwpAQCAtNDgsNiArNTMsMTIgQEAKICNkZWZpbmUgTFNZTSh4KSB4CiAjZW5kaWYKIAorLyogVXNlIHRoZSBTT0ZURlAgcmV0dXJuIHZhbHVlIEFCSSBvbiBNYWMgT1MgWCwgYXMgcGVyIHRoZSBpT1MgQUJJCisgIEZ1bmN0aW9uIENhbGwgR3VpZGUgKi8KKyNpZmRlZiBfX0FQUExFX18KKyNkZWZpbmUgX19TT0ZURlBfXworI2VuZGlmCisKIC8qIFdlIG5lZWQgYSBiZXR0ZXIgd2F5IG9mIHRlc3RpbmcgZm9yIHRoaXMsIGJ1dCBmb3Igbm93LCB0aGlzIGlzIGFsbCAKICAgIHdlIGNhbiBkby4gICovCiBAIFRoaXMgc2VsZWN0cyB0aGUgbWluaW11bSBhcmNoaXRlY3R1cmUgbGV2ZWwgcmVxdWlyZWQuCkBAIC0xMDUsMjEgKzExNiwzMyBAQAogCS5hbGlnbiAwCiAJLnRodW1iCiAJLnRodW1iX2Z1bmMKKyNpZmRlZiBfX0FQUExFX18KKwlFTlRSWSgkMCkKKyNlbHNlCiAJRU5UUlkoXG5hbWUpCisjZW5kaWYKIAlieAlwYwogCW5vcAogCS5hcm0KIAlVTldJTkQgLmZuc3RhcnQKIC8qIEEgaG9vayB0byB0ZWxsIGdkYiB0aGF0IHdlJ3ZlIHN3aXRjaGVkIHRvIEFSTSBtb2RlLiAgQWxzbyB1c2VkIHRvIGNhbGwKICAgIGRpcmVjdGx5IGZyb20gb3RoZXIgbG9jYWwgYXJtIHJvdXRpbmVzLiAgKi8KLV9MX19cbmFtZToJCQorI2lmZGVmIF9fQVBQTEVfXworX0xfXyQwOgorI2Vsc2UKK19MX19cbmFtZToKKyNlbmRpZgogLmVuZG0KICNlbHNlCiAubWFjcm8JQVJNX0ZVTkNfU1RBUlQgbmFtZQogCS50ZXh0CiAJLmFsaWduIDAKIAkuYXJtCisjaWZkZWYgX19BUFBMRV9fCisJRU5UUlkoJDApCisjZWxzZQogCUVOVFJZKFxuYW1lKQorI2VuZGlmCiAJVU5XSU5EIC5mbnN0YXJ0CiAuZW5kbQogI2VuZGlmCkBAIC0xNDEsMTMgKzE2NCwxMSBAQAogI2VuZGlmCiAuZW5kbQogCi0KIAlAIHIwOiAgIGZmaV9wcmVwX2FyZ3MKIAlAIHIxOiAgICZlY2lmCiAJQCByMjogICBjaWYtPmJ5dGVzCiAJQCByMzogICBmaWctPmZsYWdzCiAJQCBzcCswOiBlY2lmLnJ2YWx1ZQotCUAgc3ArNDogZm4KIAogCUAgVGhpcyBhc3N1bWVzIHdlIGFyZSB1c2luZyBnYXMuCiBBUk1fRlVOQ19TVEFSVCBmZmlfY2FsbF9TWVNWCkBAIC0xNjIsMjQgKzE4MywyMyBAQAogCXN1YglzcCwgZnAsIHIyCiAKIAlAIFBsYWNlIGFsbCBvZiB0aGUgZmZpX3ByZXBfYXJncyBpbiBwb3NpdGlvbgotCW1vdglpcCwgcjAKIAltb3YJcjAsIHNwCiAJQCAgICAgcjEgYWxyZWFkeSBzZXQKIAogCUAgQ2FsbCBmZmlfcHJlcF9hcmdzKHN0YWNrLCAmZWNpZikKLQljYWxsX3JlZyhpcCkKKwlibAlDTkFNRShmZmlfcHJlcF9hcmdzKQogCiAJQCBtb3ZlIGZpcnN0IDQgcGFyYW1ldGVycyBpbiByZWdpc3RlcnMKIAlsZG1pYQlzcCwge3IwLXIzfQogCiAJQCBhbmQgYWRqdXN0IHN0YWNrCi0JbGRyCWlwLCBbZnAsICM4XQotICAgICAgICBjbXAJaXAsICMxNgotCW1vdmhzCWlwLCAjMTYKLSAgICAgICAgYWRkCXNwLCBzcCwgaXAKKwlzdWIJbHIsIGZwLCBzcAlAIGNpZi0+Ynl0ZXMgPT0gZnAgLSBzcAorCWxkcglpcCwgW2ZwXQlAIGxvYWQgZm4oKSBpbiBhZHZhbmNlCisJY21wCWxyLCAjMTYKKwltb3ZocwlsciwgIzE2CisJYWRkCXNwLCBzcCwgbHIKIAogCUAgY2FsbCAoZm4pICguLi4pCi0JbGRyCWlwLCBbZnAsICMyOF0KIAljYWxsX3JlZyhpcCkKIAkKIAlAIFJlbW92ZSB0aGUgc3BhY2Ugd2UgcHVzaGVkIGZvciB0aGUgYXJncwpAQCAtMjI0LDExICsyNDQsMTkgQEAKICNlbmRpZgogCiBMU1lNKExlcGlsb2d1ZSk6Ci0JUkVUTERNCSJyMC1yMyxmcCIKKyNpZiBkZWZpbmVkIChfX0lOVEVSV09SS0lOR19fKQorCWxkbWlhICAgc3AhLCB7cjAtcjMsZnAsIGxyfQorCWJ4CWxyCisjZWxzZQorCWxkbWlhICAgc3AhLCB7cjAtcjMsZnAsIHBjfQorI2VuZGlmCiAKIC5mZmlfY2FsbF9TWVNWX2VuZDoKIAlVTldJTkQgLmZuZW5kCisjaWZkZWYgX19FTEZfXwogICAgICAgICAuc2l6ZSAgICBDTkFNRShmZmlfY2FsbF9TWVNWKSwuZmZpX2NhbGxfU1lTVl9lbmQtQ05BTUUoZmZpX2NhbGxfU1lTVikKKyNlbmRpZgorCiAKIC8qCiAJdW5zaWduZWQgaW50IEZGSV9ISURERU4KQEAgLTI0NCwxMSArMjcyLDExIEBACiAJc3RtZmQJc3AhLCB7aXAsIGxyfQogCVVOV0lORCAuc2F2ZQl7cjAsIGxyfQogCWFkZAlyMiwgc3AsICM4Ci0JLnBhZCAjMTYKKwlVTldJTkQgLnBhZCAjMTYKIAlzdWIJc3AsIHNwLCAjMTYKIAlzdHIJc3AsIFtzcCwgIzhdCiAJYWRkCXIxLCBzcCwgIzgKLQlibAlmZmlfY2xvc3VyZV9TWVNWX2lubmVyCisJYmwJQ05BTUUoZmZpX2Nsb3N1cmVfU1lTVl9pbm5lcikKIAljbXAJcjAsICNGRklfVFlQRV9JTlQKIAliZXEJLkxyZXRpbnQKIApAQCAtMzAwLDcgKzMyOCwxNzcgQEAKIAogLmZmaV9jbG9zdXJlX1NZU1ZfZW5kOgogCVVOV0lORCAuZm5lbmQKKyNpZmRlZiBfX0VMRl9fCiAgICAgICAgIC5zaXplICAgIENOQU1FKGZmaV9jbG9zdXJlX1NZU1YpLC5mZmlfY2xvc3VyZV9TWVNWX2VuZC1DTkFNRShmZmlfY2xvc3VyZV9TWVNWKQorI2VuZGlmCisKKworLyogQmVsb3cgYXJlIFZGUCBoYXJkLWZsb2F0IEFCSSBjYWxsIGFuZCBjbG9zdXJlIGltcGxlbWVudGF0aW9ucy4KKyAgIEFkZCBWRlAgRlBVIGRpcmVjdGl2ZSBoZXJlLiBUaGlzIGlzIG9ubHkgY29tcGlsZWQgaW50byB0aGUgbGlicmFyeQorICAgdW5kZXIgRUFCSS4gICovCisjaWZkZWYgX19BUk1fRUFCSV9fCisJLmZwdQl2ZnAKKworCUAgcjA6ICAgZm4KKwlAIHIxOiAgICZlY2lmCisJQCByMjogICBjaWYtPmJ5dGVzCisJQCByMzogICBmaWctPmZsYWdzCisJQCBzcCswOiBlY2lmLnJ2YWx1ZQorCitBUk1fRlVOQ19TVEFSVCBmZmlfY2FsbF9WRlAKKwlAIFNhdmUgcmVnaXN0ZXJzCisgICAgICAgIHN0bWZkCXNwISwge3IwLXIzLCBmcCwgbHJ9CisJVU5XSU5EIC5zYXZlCXtyMC1yMywgZnAsIGxyfQorCW1vdglmcCwgc3AKKwlVTldJTkQgLnNldGZwCWZwLCBzcAorCisJQCBNYWtlIHJvb20gZm9yIGFsbCBvZiB0aGUgbmV3IGFyZ3MuCisJc3ViCXNwLCBzcCwgcjIKKworCUAgTWFrZSByb29tIGZvciBsb2FkaW5nIFZGUCBhcmdzCisJc3ViCXNwLCBzcCwgIzY0CisKKwlAIFBsYWNlIGFsbCBvZiB0aGUgZmZpX3ByZXBfYXJncyBpbiBwb3NpdGlvbgorCW1vdglyMCwgc3AKKwlAICAgICByMSBhbHJlYWR5IHNldAorCXN1YglyMiwgZnAsICM2NCAgIEAgVkZQIHNjcmF0Y2ggc3BhY2UKKworCUAgQ2FsbCBmZmlfcHJlcF9hcmdzKHN0YWNrLCAmZWNpZiwgdmZwX3NwYWNlKQorCWJsCUNOQU1FKGZmaV9wcmVwX2FyZ3MpCisKKwlAIExvYWQgVkZQIHJlZ2lzdGVyIGFyZ3MgaWYgbmVlZGVkCisJY21wCXIwLCAjMAorCWJlcQlMU1lNKExiYXNlX2FyZ3MpCisKKwlAIExvYWQgb25seSBkMCBpZiBwb3NzaWJsZQorCWNtcAlyMCwgIzMKKwlzdWIJaXAsIGZwLCAjNjQKKwlmbGRkbGUJZDAsIFtpcF0KKwlmbGRtaWFkZ3QJaXAsIHtkMC1kN30KKworTFNZTShMYmFzZV9hcmdzKToKKwlAIG1vdmUgZmlyc3QgNCBwYXJhbWV0ZXJzIGluIHJlZ2lzdGVycworCWxkbWlhCXNwLCB7cjAtcjN9CisKKwlAIGFuZCBhZGp1c3Qgc3RhY2sKKwlzdWIJbHIsIGlwLCBzcAlAIGNpZi0+Ynl0ZXMgPT0gKGZwIC0gNjQpIC0gc3AKKwlsZHIJaXAsIFtmcF0JQCBsb2FkIGZuKCkgaW4gYWR2YW5jZQorICAgICAgICBjbXAJbHIsICMxNgorCW1vdmhzCWxyLCAjMTYKKyAgICAgICAgYWRkCXNwLCBzcCwgbHIKKworCUAgY2FsbCAoZm4pICguLi4pCisJY2FsbF9yZWcoaXApCisKKwlAIFJlbW92ZSB0aGUgc3BhY2Ugd2UgcHVzaGVkIGZvciB0aGUgYXJncworCW1vdglzcCwgZnAKKworCUAgTG9hZCByMiB3aXRoIHRoZSBwb2ludGVyIHRvIHN0b3JhZ2UgZm9yCisJQCB0aGUgcmV0dXJuIHZhbHVlCisJbGRyCXIyLCBbc3AsICMyNF0KKworCUAgTG9hZCByMyB3aXRoIHRoZSByZXR1cm4gdHlwZSBjb2RlIAorCWxkcglyMywgW3NwLCAjMTJdCisKKwlAIElmIHRoZSByZXR1cm4gdmFsdWUgcG9pbnRlciBpcyBOVUxMLAorCUAgYXNzdW1lIG5vIHJldHVybiB2YWx1ZS4KKwljbXAJcjIsICMwCisJYmVxCUxTWU0oTGVwaWxvZ3VlX3ZmcCkKKworCWNtcAlyMywgI0ZGSV9UWVBFX0lOVAorCXN0cmVxCXIwLCBbcjJdCisJYmVxCUxTWU0oTGVwaWxvZ3VlX3ZmcCkKKworCWNtcAlyMywgI0ZGSV9UWVBFX1NJTlQ2NAorCXN0bWVxaWEJcjIsIHtyMCwgcjF9CisJYmVxCUxTWU0oTGVwaWxvZ3VlX3ZmcCkKKworCWNtcAlyMywgI0ZGSV9UWVBFX0ZMT0FUCisJZnN0c2VxCXMwLCBbcjJdCisJYmVxCUxTWU0oTGVwaWxvZ3VlX3ZmcCkKKwkKKwljbXAJcjMsICNGRklfVFlQRV9ET1VCTEUKKwlmc3RkZXEJZDAsIFtyMl0KKwliZXEJTFNZTShMZXBpbG9ndWVfdmZwKQorCisJY21wCXIzLCAjRkZJX1RZUEVfU1RSVUNUX1ZGUF9GTE9BVAorCWNtcG5lCXIzLCAjRkZJX1RZUEVfU1RSVUNUX1ZGUF9ET1VCTEUKKwlmc3RtaWFkZXEJcjIsIHtkMC1kM30KKworTFNZTShMZXBpbG9ndWVfdmZwKToKKwlSRVRMRE0JInIwLXIzLGZwIgorCisuZmZpX2NhbGxfVkZQX2VuZDoKKwlVTldJTkQgLmZuZW5kCisgICAgICAgIC5zaXplICAgIENOQU1FKGZmaV9jYWxsX1ZGUCksLmZmaV9jYWxsX1ZGUF9lbmQtQ05BTUUoZmZpX2NhbGxfVkZQKQorCisKK0FSTV9GVU5DX1NUQVJUIGZmaV9jbG9zdXJlX1ZGUAorCWZzdG1mZGQJc3AhLCB7ZDAtZDd9CisJQCByMC1yMywgdGhlbiBkMC1kNworCVVOV0lORCAucGFkICM4MAorCWFkZAlpcCwgc3AsICM4MAorCXN0bWZkCXNwISwge2lwLCBscn0KKwlVTldJTkQgLnNhdmUJe3IwLCBscn0KKwlhZGQJcjIsIHNwLCAjNzIKKwlhZGQJcjMsIHNwLCAjOAorCVVOV0lORCAucGFkICM3MgorCXN1YglzcCwgc3AsICM3MgorCXN0cglzcCwgW3NwLCAjNjRdCisJYWRkCXIxLCBzcCwgIzY0CisJYmwJQ05BTUUoZmZpX2Nsb3N1cmVfU1lTVl9pbm5lcikKKworCWNtcAlyMCwgI0ZGSV9UWVBFX0lOVAorCWJlcQkuTHJldGludF92ZnAKKworCWNtcAlyMCwgI0ZGSV9UWVBFX0ZMT0FUCisJYmVxCS5McmV0ZmxvYXRfdmZwCisKKwljbXAJcjAsICNGRklfVFlQRV9ET1VCTEUKKwljbXBuZQlyMCwgI0ZGSV9UWVBFX0xPTkdET1VCTEUKKwliZXEJLkxyZXRkb3VibGVfdmZwCisKKwljbXAJcjAsICNGRklfVFlQRV9TSU5UNjQKKwliZXEJLkxyZXRsb25nbG9uZ192ZnAKKworCWNtcAlyMCwgI0ZGSV9UWVBFX1NUUlVDVF9WRlBfRkxPQVQKKwliZXEJLkxyZXRmbG9hdF9zdHJ1Y3RfdmZwCisKKwljbXAJcjAsICNGRklfVFlQRV9TVFJVQ1RfVkZQX0RPVUJMRQorCWJlcQkuTHJldGRvdWJsZV9zdHJ1Y3RfdmZwCisJCisuTGNsb3N1cmVfZXBpbG9ndWVfdmZwOgorCWFkZAlzcCwgc3AsICM3MgorCWxkbWZkCXNwLCB7c3AsIHBjfQorCisuTHJldGZsb2F0X3ZmcDoKKwlmbGRzCXMwLCBbc3BdCisJYgkuTGNsb3N1cmVfZXBpbG9ndWVfdmZwCisuTHJldGRvdWJsZV92ZnA6CisJZmxkZAlkMCwgW3NwXQorCWIJLkxjbG9zdXJlX2VwaWxvZ3VlX3ZmcAorLkxyZXRpbnRfdmZwOgorCWxkcglyMCwgW3NwXQorCWIJLkxjbG9zdXJlX2VwaWxvZ3VlX3ZmcAorLkxyZXRsb25nbG9uZ192ZnA6CisJbGRtaWEJc3AsIHtyMCwgcjF9CisJYgkuTGNsb3N1cmVfZXBpbG9ndWVfdmZwCisuTHJldGZsb2F0X3N0cnVjdF92ZnA6CisJZmxkbWlhZAlzcCwge2QwLWQxfQorCWIJLkxjbG9zdXJlX2VwaWxvZ3VlX3ZmcAorLkxyZXRkb3VibGVfc3RydWN0X3ZmcDoKKwlmbGRtaWFkCXNwLCB7ZDAtZDN9CisJYgkuTGNsb3N1cmVfZXBpbG9ndWVfdmZwCisKKy5mZmlfY2xvc3VyZV9WRlBfZW5kOgorCVVOV0lORCAuZm5lbmQKKyAgICAgICAgLnNpemUgICAgQ05BTUUoZmZpX2Nsb3N1cmVfVkZQKSwuZmZpX2Nsb3N1cmVfVkZQX2VuZC1DTkFNRShmZmlfY2xvc3VyZV9WRlApCisjZW5kaWYKKworRU5UUlkoZmZpX2FybV90cmFtcG9saW5lKQorCXN0bWZkIHNwISwge3IwLXIzfQorCWxkciByMCwgW3BjXQorCWxkciBwYywgW3BjXQogCiAjaWYgZGVmaW5lZCBfX0VMRl9fICYmIGRlZmluZWQgX19saW51eF9fCiAJLnNlY3Rpb24JLm5vdGUuR05VLXN0YWNrLCIiLCVwcm9nYml0cwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvYXJtL3RyYW1wb2xpbmUuUyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FybS90cmFtcG9saW5lLlMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM1ZThkZQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2FybS90cmFtcG9saW5lLlMKQEAgLTAsMCArMSw0NDUwIEBACisjIEdFTkVSQVRFRCBDT0RFIC0gRE8gTk9UIEVESVQKKyMgVGhpcyBmaWxlIHdhcyBnZW5lcmF0ZWQgYnkgc3JjL2FybS9nZW50cmFtcC5zaAorCisjICBDb3B5cmlnaHQgKGMpIDIwMTAsIFBsYXVzaWJsZSBMYWJzIENvb3BlcmF0aXZlLCBJbmMuCisjICAKKyMgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZworIyAgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCisjICBTb2Z0d2FyZScnKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCisjICB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCisjICBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8KKyMgIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bworIyAgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorIworIyAgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQKKyMgIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorIworIyAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIEFTIElTJycsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCisjICBFWFBSRVNTIE9SIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YKKyMgIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5ECisjICBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQKKyMgIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLAorIyAgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCisjICBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSCisjICBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisjICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisudGV4dAorLmFsaWduIDEyCisuZ2xvYmwgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGVfcGFnZQorX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGVfcGFnZToKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCisKKyAgICAvLyB0cmFtcG9saW5lCisgICAgLy8gU2F2ZSB0byBzdGFjaworICAgIHN0bWZkIHNwISwge3IwLXIzfQorCisgICAgLy8gTG9hZCB0aGUgY29udGV4dCBhcmd1bWVudCBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICAvLyBUaGlzIHBsYWNlcyB0aGUgZmlyc3QgdXNhYmxlIGNvbmZpZyB2YWx1ZSBhdCBfZmZpX2Nsb3N1cmVfdHJhbXBvbGluZV90YWJsZS00MDgwCisgICAgLy8gVGhpcyBhY2NvdW50cyBmb3IgdGhlIGFib3ZlIDQtYnl0ZSBzdG1mZCBpbnN0cnVjdGlvbiwgcGx1cyA4IGJ5dGVzIGNvbnN0YW50IHdoZW4gbG9hZGluZyBmcm9tIHBjLgorICAgIGxkciByMCwgW3BjLCAjLTQwOTJdCisKKyAgICAvLyBMb2FkIHRoZSBqdW1wIGFkZHJlc3MgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgbGRyIHBjLCBbcGMsICMtNDA5Ml0KKworCisgICAgLy8gdHJhbXBvbGluZQorICAgIC8vIFNhdmUgdG8gc3RhY2sKKyAgICBzdG1mZCBzcCEsIHtyMC1yM30KKworICAgIC8vIExvYWQgdGhlIGNvbnRleHQgYXJndW1lbnQgZnJvbSB0aGUgY29uZmlnIHBhZ2UuCisgICAgLy8gVGhpcyBwbGFjZXMgdGhlIGZpcnN0IHVzYWJsZSBjb25maWcgdmFsdWUgYXQgX2ZmaV9jbG9zdXJlX3RyYW1wb2xpbmVfdGFibGUtNDA4MAorICAgIC8vIFRoaXMgYWNjb3VudHMgZm9yIHRoZSBhYm92ZSA0LWJ5dGUgc3RtZmQgaW5zdHJ1Y3Rpb24sIHBsdXMgOCBieXRlcyBjb25zdGFudCB3aGVuIGxvYWRpbmcgZnJvbSBwYy4KKyAgICBsZHIgcjAsIFtwYywgIy00MDkyXQorCisgICAgLy8gTG9hZCB0aGUganVtcCBhZGRyZXNzIGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIGxkciBwYywgW3BjLCAjLTQwOTJdCisKKworICAgIC8vIHRyYW1wb2xpbmUKKyAgICAvLyBTYXZlIHRvIHN0YWNrCisgICAgc3RtZmQgc3AhLCB7cjAtcjN9CisKKyAgICAvLyBMb2FkIHRoZSBjb250ZXh0IGFyZ3VtZW50IGZyb20gdGhlIGNvbmZpZyBwYWdlLgorICAgIC8vIFRoaXMgcGxhY2VzIHRoZSBmaXJzdCB1c2FibGUgY29uZmlnIHZhbHVlIGF0IF9mZmlfY2xvc3VyZV90cmFtcG9saW5lX3RhYmxlLTQwODAKKyAgICAvLyBUaGlzIGFjY291bnRzIGZvciB0aGUgYWJvdmUgNC1ieXRlIHN0bWZkIGluc3RydWN0aW9uLCBwbHVzIDggYnl0ZXMgY29uc3RhbnQgd2hlbiBsb2FkaW5nIGZyb20gcGMuCisgICAgbGRyIHIwLCBbcGMsICMtNDA5Ml0KKworICAgIC8vIExvYWQgdGhlIGp1bXAgYWRkcmVzcyBmcm9tIHRoZSBjb25maWcgcGFnZS4KKyAgICBsZHIgcGMsIFtwYywgIy00MDkyXQorCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hdnIzMi9mZmkuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2F2cjMyL2ZmaS5jCmluZGV4IDM5ZmJhMmIuLjNkNDMzOTcgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2F2cjMyL2ZmaS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2F2cjMyL2ZmaS5jCkBAIC0xLDUgKzEsNiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgIGZmaS5jIC0gQ29weXJpZ2h0IChjKSAyMDA5ICBCcmFkbGV5IFNtaXRoIDxicmFkQGJyYWQtc21pdGguY28udWs+CisgICBmZmkuYyAtIENvcHlyaWdodCAoYykgMjAxMSAgQW50aG9ueSBHcmVlbgorICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMDkgIEJyYWRsZXkgU21pdGggPGJyYWRAYnJhZC1zbWl0aC5jby51az4KIAogICAgQVZSMzIgRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UKIApAQCAtMzk0LDcgKzM5NSw4IEBACiAgICAgdm9pZCAoKmZ1bikoZmZpX2NpZiosIHZvaWQqLCB2b2lkKiosIHZvaWQqKSwgdm9pZCAqdXNlcl9kYXRhLAogICAgIHZvaWQgKmNvZGVsb2MpCiB7Ci0gICAgRkZJX0FTU0VSVChjaWYtPmFiaSA9PSBGRklfU1lTVik7CisgICAgaWYgKGNpZi0+YWJpICE9IEZGSV9TWVNWKQorICAgICAgcmV0dXJuIEZGSV9CQURfQUJJOwogCiAgICAgdW5zaWduZWQgY2hhciAqX190cmFtcCA9ICh1bnNpZ25lZCBjaGFyKikoJmNsb3N1cmUtPnRyYW1wWzBdKTsKICAgICB1bnNpZ25lZCBpbnQgIF9fZnVuID0gKHVuc2lnbmVkIGludCkoJmZmaV9jbG9zdXJlX1NZU1YpOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvYXZyMzIvZmZpdGFyZ2V0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hdnIzMi9mZml0YXJnZXQuaAppbmRleCAxYzc5OWIxLi5kMGM3NTg2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hdnIzMi9mZml0YXJnZXQuaAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9hdnIzMi9mZml0YXJnZXQuaApAQCAtMSw1ICsxLDYgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi1DLSotCi0gICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMjAwOSAgQnJhZGxleSBTbWl0aCA8YnJhZEBicmFkLXNtaXRoLmNvLnVrPgorICAgZmZpdGFyZ2V0LmggLSBDb3B5cmlnaHQgKGMpIDIwMTIgIEFudGhvbnkgR3JlZW4KKyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDA5ICBCcmFkbGV5IFNtaXRoIDxicmFkQGJyYWQtc21pdGguY28udWs+CiAgICBUYXJnZXQgY29uZmlndXJhdGlvbiBtYWNyb3MgZm9yIEFWUjMyLgogCiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKQEAgLTI3LDYgKzI4LDEwIEBACiAjaWZuZGVmIExJQkZGSV9UQVJHRVRfSAogI2RlZmluZSBMSUJGRklfVEFSR0VUX0gKIAorI2lmbmRlZiBMSUJGRklfSAorI2Vycm9yICJQbGVhc2UgZG8gbm90IGluY2x1ZGUgZmZpdGFyZ2V0LmggZGlyZWN0bHkgaW50byB5b3VyIHNvdXJjZS4gIFVzZSBmZmkuaCBpbnN0ZWFkLiIKKyNlbmRpZgorCiAjaWZuZGVmIExJQkZGSV9BU00KIHR5cGVkZWYgdW5zaWduZWQgbG9uZyAgICAgICAgICBmZmlfYXJnOwogdHlwZWRlZiBzaWduZWQgbG9uZyAgICAgICAgICAgIGZmaV9zYXJnOwpAQCAtMzQsOCArMzksOCBAQAogdHlwZWRlZiBlbnVtIGZmaV9hYmkgewogICBGRklfRklSU1RfQUJJID0gMCwKICAgRkZJX1NZU1YsCi0gIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9TWVNWLAotICBGRklfTEFTVF9BQkkgPSBGRklfREVGQVVMVF9BQkkgKyAxCisgIEZGSV9MQVNUX0FCSSwKKyAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1NZU1YKIH0gZmZpX2FiaTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9jbG9zdXJlcy5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvY2xvc3VyZXMuYwppbmRleCAwYjE1NmUwLi4xYjM3ODI3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9jbG9zdXJlcy5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2Nsb3N1cmVzLmMKQEAgLTEsNiArMSw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgY2xvc3VyZXMuYyAtIENvcHlyaWdodCAoYykgMjAwNyAgUmVkIEhhdCwgSW5jLgotICAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jCisgICBjbG9zdXJlcy5jIC0gQ29weXJpZ2h0IChjKSAyMDA3LCAyMDA5LCAyMDEwICBSZWQgSGF0LCBJbmMuCisgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jCisgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDExIFBsYXVzaWJsZSBMYWJzIENvb3BlcmF0aXZlLCBJbmMuCiAKICAgIENvZGUgdG8gYWxsb2NhdGUgYW5kIGRlYWxsb2NhdGUgbWVtb3J5IGZvciBjbG9zdXJlcy4KIApAQCAtMzIsNyArMzMsNyBAQAogI2luY2x1ZGUgPGZmaS5oPgogI2luY2x1ZGUgPGZmaV9jb21tb24uaD4KIAotI2lmbmRlZiBGRklfTU1BUF9FWEVDX1dSSVQKKyNpZiAhRkZJX01NQVBfRVhFQ19XUklUICYmICFGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFCiAjIGlmIF9fZ251X2xpbnV4X18KIC8qIFRoaXMgbWFjcm8gaW5kaWNhdGVzIGl0IG1heSBiZSBmb3JiaWRkZW4gdG8gbWFwIGFub255bW91cyBtZW1vcnkKICAgIHdpdGggYm90aCB3cml0ZSBhbmQgZXhlY3V0ZSBwZXJtaXNzaW9uLiAgQ29kZSBjb21waWxlZCB3aGVuIHRoaXMKQEAgLTQ0LDcgKzQ1LDcgQEAKICMgIGRlZmluZSBGRklfTU1BUF9FWEVDX1dSSVQgMQogIyAgZGVmaW5lIEhBVkVfTU5URU5UIDEKICMgZW5kaWYKLSMgaWYgZGVmaW5lZChYODZfV0lOMzIpIHx8IGRlZmluZWQoWDg2X1dJTjY0KQorIyBpZiBkZWZpbmVkKFg4Nl9XSU4zMikgfHwgZGVmaW5lZChYODZfV0lONjQpIHx8IGRlZmluZWQoX19PUzJfXykKIC8qIFdpbmRvd3Mgc3lzdGVtcyBtYXkgaGF2ZSBEYXRhIEV4ZWN1dGlvbiBQcm90ZWN0aW9uIChERVApIGVuYWJsZWQsIAogICAgd2hpY2ggcmVxdWlyZXMgdGhlIHVzZSBvZiBWaXJ0dWFsTWFsbG9jL1ZpcnR1YWxGcmVlIHRvIGFsbG9jL2ZyZWUKICAgIGV4ZWN1dGFibGUgbWVtb3J5LiAqLwpAQCAtNjMsNyArNjQsMTEgQEAKIAogI2lmIEZGSV9DTE9TVVJFUwogCi0jIGlmIEZGSV9NTUFQX0VYRUNfV1JJVAorIyBpZiBGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFCisKKy8vIFBlci10YXJnZXQgaW1wbGVtZW50YXRpb247IEl0J3MgdW5jbGVhciB3aGF0IGNhbiByZWFzb25hYmxlIGJlIHNoYXJlZCBiZXR3ZWVuIHR3byBPUy9hcmNoaXRlY3R1cmUgaW1wbGVtZW50YXRpb25zLgorCisjIGVsaWYgRkZJX01NQVBfRVhFQ19XUklUIC8qICFGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFICovCiAKICNkZWZpbmUgVVNFX0xPQ0tTIDEKICNkZWZpbmUgVVNFX0RMX1BSRUZJWCAxCkBAIC0xNDYsNyArMTUxLDcgQEAKICAgICAgIHAgPSBzdHJjaHIgKHAgKyAxLCAnICcpOwogICAgICAgaWYgKHAgPT0gTlVMTCkKICAgICAgICAgYnJlYWs7Ci0gICAgICBpZiAoc3RybmNtcCAocCArIDEsICJzZWxpbnV4ZnMgIiwgMTApICE9IDApCisgICAgICBpZiAoc3RybmNtcCAocCArIDEsICJzZWxpbnV4ZnMgIiwgMTApID09IDApCiAgICAgICAgIHsKICAgICAgICAgICBmcmVlIChidWYpOwogICAgICAgICAgIGZjbG9zZSAoZik7CkBAIC0xNjcsNyArMTcyLDcgQEAKIAogI2VuZGlmIC8qICFGRklfTU1BUF9FWEVDX1NFTElOVVggKi8KIAotI2VsaWYgZGVmaW5lZCAoX19DWUdXSU5fXykKKyNlbGlmIGRlZmluZWQgKF9fQ1lHV0lOX18pIHx8IGRlZmluZWQoX19JTlRFUklYKQogCiAjaW5jbHVkZSA8c3lzL21tYW4uaD4KIApAQCAtMTkzLDExICsxOTgsMTEgQEAKIHN0YXRpYyBzaXplX3QgZGxtYWxsb2NfdXNhYmxlX3NpemUodm9pZCopIE1BWUJFX1VOVVNFRDsKIHN0YXRpYyB2b2lkIGRsbWFsbG9jX3N0YXRzKHZvaWQpIE1BWUJFX1VOVVNFRDsKIAotI2lmICEoZGVmaW5lZChYODZfV0lOMzIpIHx8IGRlZmluZWQoWDg2X1dJTjY0KSkgfHwgZGVmaW5lZCAoX19DWUdXSU5fXykKKyNpZiAhKGRlZmluZWQoWDg2X1dJTjMyKSB8fCBkZWZpbmVkKFg4Nl9XSU42NCkgfHwgZGVmaW5lZChfX09TMl9fKSkgfHwgZGVmaW5lZCAoX19DWUdXSU5fXykgfHwgZGVmaW5lZChfX0lOVEVSSVgpCiAvKiBVc2UgdGhlc2UgZm9yIG1tYXAgYW5kIG11bm1hcCB3aXRoaW4gZGxtYWxsb2MuYy4gICovCiBzdGF0aWMgdm9pZCAqZGxtbWFwKHZvaWQgKiwgc2l6ZV90LCBpbnQsIGludCwgaW50LCBvZmZfdCk7CiBzdGF0aWMgaW50IGRsbXVubWFwKHZvaWQgKiwgc2l6ZV90KTsKLSNlbmRpZiAvKiAhKGRlZmluZWQoWDg2X1dJTjMyKSB8fCBkZWZpbmVkKFg4Nl9XSU42NCkpIHx8IGRlZmluZWQgKF9fQ1lHV0lOX18pICovCisjZW5kaWYgLyogIShkZWZpbmVkKFg4Nl9XSU4zMikgfHwgZGVmaW5lZChYODZfV0lONjQpIHx8IGRlZmluZWQoX19PUzJfXykpIHx8IGRlZmluZWQgKF9fQ1lHV0lOX18pIHx8IGRlZmluZWQoX19JTlRFUklYKSAqLwogCiAjZGVmaW5lIG1tYXAgZGxtbWFwCiAjZGVmaW5lIG11bm1hcCBkbG11bm1hcApAQCAtMjA3LDcgKzIxMiw3IEBACiAjdW5kZWYgbW1hcAogI3VuZGVmIG11bm1hcAogCi0jaWYgIShkZWZpbmVkKFg4Nl9XSU4zMikgfHwgZGVmaW5lZChYODZfV0lONjQpKSB8fCBkZWZpbmVkIChfX0NZR1dJTl9fKQorI2lmICEoZGVmaW5lZChYODZfV0lOMzIpIHx8IGRlZmluZWQoWDg2X1dJTjY0KSB8fCBkZWZpbmVkKF9fT1MyX18pKSB8fCBkZWZpbmVkIChfX0NZR1dJTl9fKSB8fCBkZWZpbmVkKF9fSU5URVJJWCkKIAogLyogQSBtdXRleCB1c2VkIHRvIHN5bmNocm9uaXplIGFjY2VzcyB0byAqZXhlYyogdmFyaWFibGVzIGluIHRoaXMgZmlsZS4gICovCiBzdGF0aWMgcHRocmVhZF9tdXRleF90IG9wZW5fdGVtcF9leGVjX2ZpbGVfbXV0ZXggPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOwpAQCAtMjk0LDcgKzI5OSw3IEBACiAgICAgICBzdHJ1Y3QgbW50ZW50IG1udDsKICAgICAgIGNoYXIgYnVmW01BWFBBVEhMRU4gKiAzXTsKIAotICAgICAgaWYgKGdldG1udGVudF9yIChsYXN0X21udGVudCwgJm1udCwgYnVmLCBzaXplb2YgKGJ1ZikpKQorICAgICAgaWYgKGdldG1udGVudF9yIChsYXN0X21udGVudCwgJm1udCwgYnVmLCBzaXplb2YgKGJ1ZikpID09IE5VTEwpCiAJcmV0dXJuIC0xOwogCiAgICAgICBpZiAoaGFzbW50b3B0ICgmbW50LCAicm8iKQpAQCAtNTIyLDcgKzUyNyw3IEBACiB9CiAjZW5kaWYKIAotI2VuZGlmIC8qICEoZGVmaW5lZChYODZfV0lOMzIpIHx8IGRlZmluZWQoWDg2X1dJTjY0KSkgfHwgZGVmaW5lZCAoX19DWUdXSU5fXykgKi8KKyNlbmRpZiAvKiAhKGRlZmluZWQoWDg2X1dJTjMyKSB8fCBkZWZpbmVkKFg4Nl9XSU42NCkgfHwgZGVmaW5lZChfX09TMl9fKSkgfHwgZGVmaW5lZCAoX19DWUdXSU5fXykgfHwgZGVmaW5lZChfX0lOVEVSSVgpICovCiAKIC8qIEFsbG9jYXRlIGEgY2h1bmsgb2YgbWVtb3J5IHdpdGggdGhlIGdpdmVuIHNpemUuICBSZXR1cm5zIGEgcG9pbnRlcgogICAgdG8gdGhlIHdyaXRhYmxlIGFkZHJlc3MsIGFuZCBzZXRzICpDT0RFIHRvIHRoZSBleGVjdXRhYmxlCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9jcmlzL2ZmaS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvY3Jpcy9mZmkuYwppbmRleCBlOWMzOTUzLi5hYWNhNWIxIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9jcmlzL2ZmaS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2NyaXMvZmZpLmMKQEAgLTE1MywyMSArMTUzLDI0IEBACiAgIHJldHVybiAoc3RydWN0X2NvdW50KTsKIH0KIAotZmZpX3N0YXR1cwotZmZpX3ByZXBfY2lmIChmZmlfY2lmICogY2lmLAotCSAgICAgIGZmaV9hYmkgYWJpLCB1bnNpZ25lZCBpbnQgbmFyZ3MsCi0JICAgICAgZmZpX3R5cGUgKiBydHlwZSwgZmZpX3R5cGUgKiogYXR5cGVzKQorZmZpX3N0YXR1cyBGRklfSElEREVOCitmZmlfcHJlcF9jaWZfY29yZSAoZmZpX2NpZiAqIGNpZiwKKwkgICAgICAgICAgIGZmaV9hYmkgYWJpLCB1bnNpZ25lZCBpbnQgaXN2YXJpYWRpYywKKwkJICAgdW5zaWduZWQgaW50IG5maXhlZGFyZ3MsIHVuc2lnbmVkIGludCBudG90YWxhcmdzLAorCSAgICAgICAgICAgZmZpX3R5cGUgKiBydHlwZSwgZmZpX3R5cGUgKiogYXR5cGVzKQogewogICB1bnNpZ25lZCBieXRlcyA9IDA7CiAgIHVuc2lnbmVkIGludCBpOwogICBmZmlfdHlwZSAqKnB0cjsKIAogICBGRklfQVNTRVJUIChjaWYgIT0gTlVMTCk7Ci0gIEZGSV9BU1NFUlQgKChhYmkgPiBGRklfRklSU1RfQUJJKSAmJiAoYWJpIDw9IEZGSV9ERUZBVUxUX0FCSSkpOworICBGRklfQVNTRVJUKCghaXN2YXJpYWRpYykgfHwgKG5maXhlZGFyZ3MgPj0gMSkpOworICBGRklfQVNTRVJUKG5maXhlZGFyZ3MgPD0gbnRvdGFsYXJncyk7CisgIEZGSV9BU1NFUlQgKGFiaSA+IEZGSV9GSVJTVF9BQkkgJiYgYWJpIDwgRkZJX0xBU1RfQUJJKTsKIAogICBjaWYtPmFiaSA9IGFiaTsKICAgY2lmLT5hcmdfdHlwZXMgPSBhdHlwZXM7Ci0gIGNpZi0+bmFyZ3MgPSBuYXJnczsKKyAgY2lmLT5uYXJncyA9IG50b3RhbGFyZ3M7CiAgIGNpZi0+cnR5cGUgPSBydHlwZTsKIAogICBjaWYtPmZsYWdzID0gMDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2NyaXMvZmZpdGFyZ2V0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9jcmlzL2ZmaXRhcmdldC5oCmluZGV4IDQyNTdmMTAuLmI4MzdlOTcgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2NyaXMvZmZpdGFyZ2V0LmgKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvY3Jpcy9mZml0YXJnZXQuaApAQCAtMSw1ICsxLDYgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi1DLSotCi0gICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzICBSZWQgSGF0LCBJbmMuCisgICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMjAxMiAgQW50aG9ueSBHcmVlbgorICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMyAgUmVkIEhhdCwgSW5jLgogICAgVGFyZ2V0IGNvbmZpZ3VyYXRpb24gbWFjcm9zIGZvciBDUklTLgogCiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKQEAgLTI3LDYgKzI4LDEwIEBACiAjaWZuZGVmIExJQkZGSV9UQVJHRVRfSAogI2RlZmluZSBMSUJGRklfVEFSR0VUX0gKIAorI2lmbmRlZiBMSUJGRklfSAorI2Vycm9yICJQbGVhc2UgZG8gbm90IGluY2x1ZGUgZmZpdGFyZ2V0LmggZGlyZWN0bHkgaW50byB5b3VyIHNvdXJjZS4gIFVzZSBmZmkuaCBpbnN0ZWFkLiIKKyNlbmRpZgorCiAjaWZuZGVmIExJQkZGSV9BU00KIHR5cGVkZWYgdW5zaWduZWQgbG9uZyAgICAgICAgICBmZmlfYXJnOwogdHlwZWRlZiBzaWduZWQgbG9uZyAgICAgICAgICAgIGZmaV9zYXJnOwpAQCAtMzQsOCArMzksOCBAQAogdHlwZWRlZiBlbnVtIGZmaV9hYmkgewogICBGRklfRklSU1RfQUJJID0gMCwKICAgRkZJX1NZU1YsCi0gIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9TWVNWLAotICBGRklfTEFTVF9BQkkgPSBGRklfREVGQVVMVF9BQkkgKyAxCisgIEZGSV9MQVNUX0FCSSwKKyAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1NZU1YKIH0gZmZpX2FiaTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9kbG1hbGxvYy5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvZGxtYWxsb2MuYwppbmRleCA1ODJkZGMzLi4yNzczOTUzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9kbG1hbGxvYy5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2RsbWFsbG9jLmMKQEAgLTQ2NCw2ICs0NjQsMTQgQEAKICNkZWZpbmUgX0dOVV9TT1VSQ0UgMQogI2VuZGlmICAvKiBXSU4zMiAqLwogCisjaWZkZWYgX19PUzJfXworI2RlZmluZSBJTkNMX0RPUworI2luY2x1ZGUgPG9zMi5oPgorI2RlZmluZSBIQVZFX01NQVAgMQorI2RlZmluZSBIQVZFX01PUkVDT1JFIDAKKyNkZWZpbmUgTEFDS1NfU1lTX01NQU5fSAorI2VuZGlmICAvKiBfX09TMl9fICovCisKICNpZiBkZWZpbmVkKERBUldJTikgfHwgZGVmaW5lZChfREFSV0lOKQogLyogTWFjIE9TWCBkb2NzIGFkdmlzZSBub3QgdG8gdXNlIHNicms7IGl0IHNlZW1zIGJldHRlciB0byB1c2UgbW1hcCAqLwogI2lmbmRlZiBIQVZFX01PUkVDT1JFCkBAIC02MTksNiArNjI3LDkgQEAKICNpbmNsdWRlICIvdXNyL2luY2x1ZGUvbWFsbG9jLmgiCiAjZWxzZSAvKiBIQVZFX1VTUl9JTkNMVURFX01BTExPQ19IICovCiAKKy8qIEhQLVVYJ3Mgc3RkbGliLmggcmVkZWZpbmVzIG1hbGxpbmZvIHVubGVzcyBfU1RSVUNUX01BTExJTkZPIGlzIGRlZmluZWQgKi8KKyNkZWZpbmUgX1NUUlVDVF9NQUxMSU5GTworCiBzdHJ1Y3QgbWFsbGluZm8gewogICBNQUxMSU5GT19GSUVMRF9UWVBFIGFyZW5hOyAgICAvKiBub24tbW1hcHBlZCBzcGFjZSBhbGxvY2F0ZWQgZnJvbSBzeXN0ZW0gKi8KICAgTUFMTElORk9fRklFTERfVFlQRSBvcmRibGtzOyAgLyogbnVtYmVyIG9mIGZyZWUgY2h1bmtzICovCkBAIC0xMjkzLDcgKzEzMDQsNyBAQAogI2RlZmluZSBJU19NTUFQUEVEX0JJVCAgICAgICAoU0laRV9UX09ORSkKICNkZWZpbmUgVVNFX01NQVBfQklUICAgICAgICAgKFNJWkVfVF9PTkUpCiAKLSNpZm5kZWYgV0lOMzIKKyNpZiAhZGVmaW5lZChXSU4zMikgJiYgIWRlZmluZWQgKF9fT1MyX18pCiAjZGVmaW5lIENBTExfTVVOTUFQKGEsIHMpICAgIG11bm1hcCgoYSksIChzKSkKICNkZWZpbmUgTU1BUF9QUk9UICAgICAgICAgICAgKFBST1RfUkVBRHxQUk9UX1dSSVRFKQogI2lmICFkZWZpbmVkKE1BUF9BTk9OWU1PVVMpICYmIGRlZmluZWQoTUFQX0FOT04pCkBAIC0xMzE2LDYgKzEzMjcsNDIgQEAKICNlbmRpZiAvKiBNQVBfQU5PTllNT1VTICovCiAKICNkZWZpbmUgRElSRUNUX01NQVAocykgICAgICAgQ0FMTF9NTUFQKHMpCisKKyNlbGlmIGRlZmluZWQoX19PUzJfXykKKworLyogT1MvMiBNTUFQIHZpYSBEb3NBbGxvY01lbSAqLworc3RhdGljIHZvaWQqIG9zMm1tYXAoc2l6ZV90IHNpemUpIHsKKyAgdm9pZCogcHRyOworICBpZiAoRG9zQWxsb2NNZW0oJnB0ciwgc2l6ZSwgT0JKX0FOWXxQQUdfQ09NTUlUfFBBR19SRUFEfFBBR19XUklURSkgJiYKKyAgICAgIERvc0FsbG9jTWVtKCZwdHIsIHNpemUsIFBBR19DT01NSVR8UEFHX1JFQUR8UEFHX1dSSVRFKSkKKyAgICByZXR1cm4gTUZBSUw7CisgIHJldHVybiBwdHI7Cit9CisKKyNkZWZpbmUgb3MyZGlyZWN0X21tYXAobikgICAgIG9zMm1tYXAobikKKworLyogVGhpcyBmdW5jdGlvbiBzdXBwb3J0cyByZWxlYXNpbmcgY29hbGVzZWQgc2VnbWVudHMgKi8KK3N0YXRpYyBpbnQgb3MybXVubWFwKHZvaWQqIHB0ciwgc2l6ZV90IHNpemUpIHsKKyAgd2hpbGUgKHNpemUpIHsKKyAgICBVTE9ORyB1bFNpemUgPSBzaXplOworICAgIFVMT05HIHVsRmxhZ3MgPSAwOworICAgIGlmIChEb3NRdWVyeU1lbShwdHIsICZ1bFNpemUsICZ1bEZsYWdzKSAhPSAwKQorICAgICAgcmV0dXJuIC0xOworICAgIGlmICgodWxGbGFncyAmIFBBR19CQVNFKSA9PSAwIHx8KHVsRmxhZ3MgJiBQQUdfQ09NTUlUKSA9PSAwIHx8CisgICAgICAgIHVsU2l6ZSA+IHNpemUpCisgICAgICByZXR1cm4gLTE7CisgICAgaWYgKERvc0ZyZWVNZW0ocHRyKSAhPSAwKQorICAgICAgcmV0dXJuIC0xOworICAgIHB0ciA9ICggdm9pZCAqICkgKCAoIGNoYXIgKiApIHB0ciArIHVsU2l6ZSApOworICAgIHNpemUgLT0gdWxTaXplOworICB9CisgIHJldHVybiAwOworfQorCisjZGVmaW5lIENBTExfTU1BUChzKSAgICAgICAgIG9zMm1tYXAocykKKyNkZWZpbmUgQ0FMTF9NVU5NQVAoYSwgcykgICAgb3MybXVubWFwKChhKSwgKHMpKQorI2RlZmluZSBESVJFQ1RfTU1BUChzKSAgICAgICBvczJkaXJlY3RfbW1hcChzKQorCiAjZWxzZSAvKiBXSU4zMiAqLwogCiAvKiBXaW4zMiBNTUFQIHZpYSBWaXJ0dWFsQWxsb2MgKi8KQEAgLTEzOTIsNyArMTQzOSw3IEBACiAgICAgdW5pcXVlIG1wYXJhbXMgdmFsdWVzIGFyZSBpbml0aWFsaXplZCBvbmx5IG9uY2UuCiAqLwogCi0jaWZuZGVmIFdJTjMyCisjaWYgIWRlZmluZWQoV0lOMzIpICYmICFkZWZpbmVkKF9fT1MyX18pCiAvKiBCeSBkZWZhdWx0IHVzZSBwb3NpeCBsb2NrcyAqLwogI2luY2x1ZGUgPHB0aHJlYWQuaD4KICNkZWZpbmUgTUxPQ0tfVCBwdGhyZWFkX211dGV4X3QKQEAgLTE0MDYsNiArMTQ1MywxNiBAQAogCiBzdGF0aWMgTUxPQ0tfVCBtYWdpY19pbml0X211dGV4ID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKIAorI2VsaWYgZGVmaW5lZChfX09TMl9fKQorI2RlZmluZSBNTE9DS19UIEhNVFgKKyNkZWZpbmUgSU5JVElBTF9MT0NLKGwpICAgICAgRG9zQ3JlYXRlTXV0ZXhTZW0oMCwgbCwgMCwgRkFMU0UpCisjZGVmaW5lIEFDUVVJUkVfTE9DSyhsKSAgICAgIERvc1JlcXVlc3RNdXRleFNlbSgqbCwgU0VNX0lOREVGSU5JVEVfV0FJVCkKKyNkZWZpbmUgUkVMRUFTRV9MT0NLKGwpICAgICAgRG9zUmVsZWFzZU11dGV4U2VtKCpsKQorI2lmIEhBVkVfTU9SRUNPUkUKK3N0YXRpYyBNTE9DS19UIG1vcmVjb3JlX211dGV4OworI2VuZGlmIC8qIEhBVkVfTU9SRUNPUkUgKi8KK3N0YXRpYyBNTE9DS19UIG1hZ2ljX2luaXRfbXV0ZXg7CisKICNlbHNlIC8qIFdJTjMyICovCiAvKgogICAgQmVjYXVzZSBsb2NrLXByb3RlY3RlZCByZWdpb25zIGhhdmUgYm91bmRlZCB0aW1lcywgYW5kIHRoZXJlCkBAIC0yNDk3LDEwICsyNTU0LDE1IEBACiAgICAgfQogICAgIFJFTEVBU0VfTUFHSUNfSU5JVF9MT0NLKCk7CiAKLSNpZm5kZWYgV0lOMzIKKyNpZiAhZGVmaW5lZChXSU4zMikgJiYgIWRlZmluZWQoX19PUzJfXykKICAgICBtcGFyYW1zLnBhZ2Vfc2l6ZSA9IG1hbGxvY19nZXRwYWdlc2l6ZTsKICAgICBtcGFyYW1zLmdyYW51bGFyaXR5ID0gKChERUZBVUxUX0dSQU5VTEFSSVRZICE9IDApPwogICAgICAgICAgICAgICAgICAgICAgICAgICAgREVGQVVMVF9HUkFOVUxBUklUWSA6IG1wYXJhbXMucGFnZV9zaXplKTsKKyNlbGlmIGRlZmluZWQgKF9fT1MyX18pCisgLyogaWYgbG93LW1lbW9yeSBpcyB1c2VkLCBvczJtdW5tYXAoKSB3b3VsZCBicmVhaworICAgIGlmIGl0IHdlcmUgYW55dGhpbmcgb3RoZXIgdGhhbiA2NGsgKi8KKyAgICBtcGFyYW1zLnBhZ2Vfc2l6ZSA9IDQwOTZ1OworICAgIG1wYXJhbXMuZ3JhbnVsYXJpdHkgPSA2NTUzNnU7CiAjZWxzZSAvKiBXSU4zMiAqLwogICAgIHsKICAgICAgIFNZU1RFTV9JTkZPIHN5c3RlbV9pbmZvOwpAQCAtNDE5Nyw3ICs0MjU5LDcgQEAKIAogdm9pZCBkbGZyZWUodm9pZCogbWVtKSB7CiAgIC8qCi0gICAgIENvbnNvbGlkYXRlIGZyZWVkIGNodW5rcyB3aXRoIHByZWNlZWRpbmcgb3Igc3VjY2VlZGluZyBib3JkZXJpbmcKKyAgICAgQ29uc29saWRhdGUgZnJlZWQgY2h1bmtzIHdpdGggcHJlY2VkaW5nIG9yIHN1Y2NlZWRpbmcgYm9yZGVyaW5nCiAgICAgIGZyZWUgY2h1bmtzLCBpZiB0aGV5IGV4aXN0LCBhbmQgdGhlbiBwbGFjZSBpbiBhIGJpbi4gIEludGVybWl4ZWQKICAgICAgd2l0aCBzcGVjaWFsIGNhc2VzIGZvciB0b3AsIGR2LCBtbWFwcGVkIGNodW5rcywgYW5kIHVzYWdlIGVycm9ycy4KICAgKi8KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2Zydi9mZml0YXJnZXQuaCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2Zydi9mZml0YXJnZXQuaAppbmRleCAxYzMxOWVhLi5kNDI1NDBlIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9mcnYvZmZpdGFyZ2V0LmgKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvZnJ2L2ZmaXRhcmdldC5oCkBAIC0xLDUgKzEsNiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLUMtKi0KLSAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAxOTk2LTIwMDQgIFJlZCBIYXQsIEluYy4KKyAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAyMDEyICBBbnRob255IEdyZWVuCisgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ni0yMDA0ICBSZWQgSGF0LCBJbmMuCiAgICBUYXJnZXQgY29uZmlndXJhdGlvbiBtYWNyb3MgZm9yIEZSLVYKIAogICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCkBAIC0yNyw2ICsyOCwxMCBAQAogI2lmbmRlZiBMSUJGRklfVEFSR0VUX0gKICNkZWZpbmUgTElCRkZJX1RBUkdFVF9ICiAKKyNpZm5kZWYgTElCRkZJX0gKKyNlcnJvciAiUGxlYXNlIGRvIG5vdCBpbmNsdWRlIGZmaXRhcmdldC5oIGRpcmVjdGx5IGludG8geW91ciBzb3VyY2UuICBVc2UgZmZpLmggaW5zdGVhZC4iCisjZW5kaWYKKwogLyogLS0tLSBTeXN0ZW0gc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2lmbmRlZiBMSUJGRklfQVNNCkBAIC0zNSwxMyArNDAsOSBAQAogCiB0eXBlZGVmIGVudW0gZmZpX2FiaSB7CiAgIEZGSV9GSVJTVF9BQkkgPSAwLAotCi0jaWZkZWYgRlJWCiAgIEZGSV9FQUJJLAotICBGRklfREVGQVVMVF9BQkkgPSBGRklfRUFCSSwKLSNlbmRpZgotCi0gIEZGSV9MQVNUX0FCSSA9IEZGSV9ERUZBVUxUX0FCSSArIDEKKyAgRkZJX0xBU1RfQUJJLAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfRUFCSQogfSBmZmlfYWJpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2lhNjQvZmZpLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9pYTY0L2ZmaS5jCmluZGV4IDNmOGZjYzUuLjk1MzNlZjYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2lhNjQvZmZpLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvaWE2NC9mZmkuYwpAQCAtMSw2ICsxLDcgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBmZmkuYyAtIENvcHlyaWdodCAoYykgMTk5OCwgMjAwNywgMjAwOCBSZWQgSGF0LCBJbmMuCisgICBmZmkuYyAtIENvcHlyaWdodCAoYykgMTk5OCwgMjAwNywgMjAwOCwgMjAxMiBSZWQgSGF0LCBJbmMuCiAJICAgQ29weXJpZ2h0IChjKSAyMDAwIEhld2xldHQgUGFja2FyZCBDb21wYW55CisJICAgQ29weXJpZ2h0IChjKSAyMDExIEFudGhvbnkgR3JlZW4KICAgIAogICAgSUE2NCBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZSAKIApAQCAtMjI1LDcgKzIyNiw3IEBACiAgIGludCBmbGFnczsKIAogICAvKiBBZGp1c3QgY2lmLT5ieXRlcyB0byBpbmNsdWRlIHNwYWNlIGZvciB0aGUgYml0cyBvZiB0aGUgaWE2NF9hcmdzIGZyYW1lCi0gICAgIHRoYXQgcHJlY2VlZHMgdGhlIGludGVnZXIgcmVnaXN0ZXIgcG9ydGlvbi4gIFRoZSBlc3RpbWF0ZSB0aGF0IHRoZSAKKyAgICAgdGhhdCBwcmVjZWRlcyB0aGUgaW50ZWdlciByZWdpc3RlciBwb3J0aW9uLiAgVGhlIGVzdGltYXRlIHRoYXQgdGhlCiAgICAgIGdlbmVyaWMgYml0cyBkaWQgZm9yIHRoZSBhcmd1bWVudCBzcGFjZSByZXF1aXJlZCBpcyBnb29kIGVub3VnaCBmb3IgdGhlCiAgICAgIGludGVnZXIgY29tcG9uZW50LiAgKi8KICAgY2lmLT5ieXRlcyArPSBvZmZzZXRvZihzdHJ1Y3QgaWE2NF9hcmdzLCBncF9yZWdzWzBdKTsKQEAgLTMyNCwxMyArMzI1LDE3IEBACiAJY2FzZSBGRklfVFlQRV9GTE9BVDoKIAkgIGlmIChncGNvdW50IDwgOCAmJiBmcGNvdW50IDwgOCkKIAkgICAgc3RmX3NwaWxsICgmc3RhY2stPmZwX3JlZ3NbZnBjb3VudCsrXSwgKihmbG9hdCAqKWF2YWx1ZVtpXSk7Ci0JICBzdGFjay0+Z3BfcmVnc1tncGNvdW50KytdID0gKihVSU5UMzIgKilhdmFsdWVbaV07CisJICB7CisJICAgIFVJTlQzMiB0bXA7CisJICAgIG1lbWNweSAoJnRtcCwgYXZhbHVlW2ldLCBzaXplb2YgKFVJTlQzMikpOworCSAgICBzdGFjay0+Z3BfcmVnc1tncGNvdW50KytdID0gdG1wOworCSAgfQogCSAgYnJlYWs7CiAKIAljYXNlIEZGSV9UWVBFX0RPVUJMRToKIAkgIGlmIChncGNvdW50IDwgOCAmJiBmcGNvdW50IDwgOCkKIAkgICAgc3RmX3NwaWxsICgmc3RhY2stPmZwX3JlZ3NbZnBjb3VudCsrXSwgKihkb3VibGUgKilhdmFsdWVbaV0pOwotCSAgc3RhY2stPmdwX3JlZ3NbZ3Bjb3VudCsrXSA9ICooVUlOVDY0ICopYXZhbHVlW2ldOworCSAgbWVtY3B5ICgmc3RhY2stPmdwX3JlZ3NbZ3Bjb3VudCsrXSwgYXZhbHVlW2ldLCBzaXplb2YgKFVJTlQ2NCkpOwogCSAgYnJlYWs7CiAKIAljYXNlIEZGSV9UWVBFX0xPTkdET1VCTEU6CkBAIC00MjUsNyArNDMwLDggQEAKICAgc3RydWN0IGZmaV9pYTY0X3RyYW1wb2xpbmVfc3RydWN0ICp0cmFtcDsKICAgc3RydWN0IGlhNjRfZmQgKmZkOwogCi0gIEZGSV9BU1NFUlQgKGNpZi0+YWJpID09IEZGSV9VTklYKTsKKyAgaWYgKGNpZi0+YWJpICE9IEZGSV9VTklYKQorICAgIHJldHVybiBGRklfQkFEX0FCSTsKIAogICB0cmFtcCA9IChzdHJ1Y3QgZmZpX2lhNjRfdHJhbXBvbGluZV9zdHJ1Y3QgKiljbG9zdXJlLT50cmFtcDsKICAgZmQgPSAoc3RydWN0IGlhNjRfZmQgKikodm9pZCAqKWZmaV9jbG9zdXJlX3VuaXg7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9pYTY0L2ZmaXRhcmdldC5oIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvaWE2NC9mZml0YXJnZXQuaAppbmRleCBkODVjMDQ5Li5lNjhjZWE2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9pYTY0L2ZmaXRhcmdldC5oCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2lhNjQvZmZpdGFyZ2V0LmgKQEAgLTEsNSArMSw2IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSotQy0qLQotICAgZmZpdGFyZ2V0LmggLSBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMyAgUmVkIEhhdCwgSW5jLgorICAgZmZpdGFyZ2V0LmggLSBDb3B5cmlnaHQgKGMpIDIwMTIgIEFudGhvbnkgR3JlZW4KKyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk2LTIwMDMgIFJlZCBIYXQsIEluYy4KICAgIFRhcmdldCBjb25maWd1cmF0aW9uIG1hY3JvcyBmb3IgSUEtNjQuCiAKICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwpAQCAtMjcsNiArMjgsMTAgQEAKICNpZm5kZWYgTElCRkZJX1RBUkdFVF9ICiAjZGVmaW5lIExJQkZGSV9UQVJHRVRfSAogCisjaWZuZGVmIExJQkZGSV9ICisjZXJyb3IgIlBsZWFzZSBkbyBub3QgaW5jbHVkZSBmZml0YXJnZXQuaCBkaXJlY3RseSBpbnRvIHlvdXIgc291cmNlLiAgVXNlIGZmaS5oIGluc3RlYWQuIgorI2VuZGlmCisKICNpZm5kZWYgTElCRkZJX0FTTQogdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgICAgICAgICAgZmZpX2FyZzsKIHR5cGVkZWYgc2lnbmVkIGxvbmcgbG9uZyAgICAgICAgICAgIGZmaV9zYXJnOwpAQCAtMzQsOCArMzksOCBAQAogdHlwZWRlZiBlbnVtIGZmaV9hYmkgewogICBGRklfRklSU1RfQUJJID0gMCwKICAgRkZJX1VOSVgsICAgCS8qIExpbnV4IGFuZCBhbGwgVW5peCB2YXJpYW50cyB1c2UgdGhlIHNhbWUgY29udmVudGlvbnMJKi8KLSAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1VOSVgsCi0gIEZGSV9MQVNUX0FCSSA9IEZGSV9ERUZBVUxUX0FCSSArIDEKKyAgRkZJX0xBU1RfQUJJLAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfVU5JWAogfSBmZmlfYWJpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL2phdmFfcmF3X2FwaS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvamF2YV9yYXdfYXBpLmMKaW5kZXggOWM1MzgzZS4uNTIyYzhiZiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvamF2YV9yYXdfYXBpLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvamF2YV9yYXdfYXBpLmMKQEAgLTMxMSw3ICszMTEsNyBAQAogICBmZmlfcmF3X2Nsb3N1cmUgKmNsID0gKGZmaV9yYXdfY2xvc3VyZSopdXNlcl9kYXRhOwogCiAgIGZmaV9qYXZhX3B0cmFycmF5X3RvX3JhdyAoY2lmLCBhdmFsdWUsIHJhdyk7Ci0gICgqY2wtPmZ1bikgKGNpZiwgcnZhbHVlLCByYXcsIGNsLT51c2VyX2RhdGEpOworICAoKmNsLT5mdW4pIChjaWYsIHJ2YWx1ZSwgKGZmaV9yYXcqKXJhdywgY2wtPnVzZXJfZGF0YSk7CiAgIGZmaV9qYXZhX3Jhd190b19ydmFsdWUgKGNpZiwgcnZhbHVlKTsKIH0KIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbTMyci9mZml0YXJnZXQuaCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL20zMnIvZmZpdGFyZ2V0LmgKaW5kZXggNmE3NjFmNi4uNmMzNDgwMSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbTMyci9mZml0YXJnZXQuaAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9tMzJyL2ZmaXRhcmdldC5oCkBAIC0xLDUgKzEsNiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLUMtKi0KLSAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAyMDA0ICBSZW5lc2FzIFRlY2hub2xvZ3kuCisgICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMjAxMiAgQW50aG9ueSBHcmVlbgorICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMDQgIFJlbmVzYXMgVGVjaG5vbG9neS4KICAgIFRhcmdldCBjb25maWd1cmF0aW9uIG1hY3JvcyBmb3IgTTMyUi4KIAogICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCkBAIC0yNiw2ICsyNywxMCBAQAogI2lmbmRlZiBMSUJGRklfVEFSR0VUX0gKICNkZWZpbmUgTElCRkZJX1RBUkdFVF9ICiAKKyNpZm5kZWYgTElCRkZJX0gKKyNlcnJvciAiUGxlYXNlIGRvIG5vdCBpbmNsdWRlIGZmaXRhcmdldC5oIGRpcmVjdGx5IGludG8geW91ciBzb3VyY2UuICBVc2UgZmZpLmggaW5zdGVhZC4iCisjZW5kaWYKKwogLyogLS0tLSBHZW5lcmljIHR5cGUgZGVmaW5pdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2lmbmRlZiBMSUJGRklfQVNNCkBAIC0zNiw4ICs0MSw4IEBACiAgIHsKICAgICBGRklfRklSU1RfQUJJID0gMCwKICAgICBGRklfU1lTViwKLSAgICBGRklfREVGQVVMVF9BQkkgPSBGRklfU1lTViwKLSAgICBGRklfTEFTVF9BQkkgPSBGRklfREVGQVVMVF9BQkkgKyAxCisgICAgRkZJX0xBU1RfQUJJLAorICAgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9TWVNWCiAgIH0gZmZpX2FiaTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9tNjhrL2ZmaS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbTY4ay9mZmkuYwppbmRleCA2MDBjZjIwLi4zN2EwNzg0IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9tNjhrL2ZmaS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL202OGsvZmZpLmMKQEAgLTEsNyArMSw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgZmZpLmMKLSAgIAotICAgbTY4ayBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZSAKKworICAgbTY4ayBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2luY2x1ZGUgPGZmaS5oPgpAQCAtOSw4ICs5LDE3IEBACiAKICNpbmNsdWRlIDxzdGRsaWIuaD4KICNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpZmRlZiBfX3J0ZW1zX18KK3ZvaWQgcnRlbXNfY2FjaGVfZmx1c2hfbXVsdGlwbGVfZGF0YV9saW5lcyggY29uc3Qgdm9pZCAqLCBzaXplX3QgKTsKKyNlbHNlCiAjaW5jbHVkZSA8c3lzL3N5c2NhbGwuaD4KKyNpZmRlZiBfX01JTlRfXworI2luY2x1ZGUgPG1pbnQvbWludGJpbmQuaD4KKyNpbmNsdWRlIDxtaW50L3NzeXN0ZW0uaD4KKyNlbHNlCiAjaW5jbHVkZSA8YXNtL2NhY2hlY3RsLmg+CisjZW5kaWYKKyNlbmRpZgogCiB2b2lkIGZmaV9jYWxsX1NZU1YgKGV4dGVuZGVkX2NpZiAqLAogCQkgICAgdW5zaWduZWQsIHVuc2lnbmVkLApAQCAtMzUsOCArNDQsMTIgQEAKIAogICBhcmdwID0gc3RhY2s7CiAKLSAgaWYgKGVjaWYtPmNpZi0+cnR5cGUtPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUCi0gICAgICAmJiAhZWNpZi0+Y2lmLT5mbGFncykKKyAgaWYgKAorI2lmZGVmIF9fTUlOVF9fCisgICAgICAoZWNpZi0+Y2lmLT5ydHlwZS0+dHlwZSA9PSBGRklfVFlQRV9MT05HRE9VQkxFKSB8fAorI2VuZGlmCisgICAgICAoKChlY2lmLT5jaWYtPnJ0eXBlLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCkKKyAgICAgICAgJiYgIWVjaWYtPmNpZi0+ZmxhZ3MpKSkKICAgICBzdHJ1Y3RfdmFsdWVfcHRyID0gZWNpZi0+cnZhbHVlOwogICBlbHNlCiAgICAgc3RydWN0X3ZhbHVlX3B0ciA9IE5VTEw7CkBAIC00NywxMiArNjAsMTIgQEAKICAgICAgICBpICE9IDA7CiAgICAgICAgaS0tLCBwX2FyZysrKQogICAgIHsKLSAgICAgIHNpemVfdCB6OworICAgICAgc2l6ZV90IHogPSAoKnBfYXJnKS0+c2l6ZTsKKyAgICAgIGludCB0eXBlID0gKCpwX2FyZyktPnR5cGU7CiAKLSAgICAgIHogPSAoKnBfYXJnKS0+c2l6ZTsKICAgICAgIGlmICh6IDwgc2l6ZW9mIChpbnQpKQogCXsKLQkgIHN3aXRjaCAoKCpwX2FyZyktPnR5cGUpCisJICBzd2l0Y2ggKHR5cGUpCiAJICAgIHsKIAkgICAgY2FzZSBGRklfVFlQRV9TSU5UODoKIAkgICAgICAqKHNpZ25lZCBpbnQgKikgYXJncCA9IChzaWduZWQgaW50KSAqKFNJTlQ4ICopICpwX2FyZ3Y7CkBAIC03MSw3ICs4NCwxNCBAQAogCSAgICAgIGJyZWFrOwogCiAJICAgIGNhc2UgRkZJX1RZUEVfU1RSVUNUOgorI2lmZGVmIF9fTUlOVF9fCisJICAgICAgaWYgKHogPT0gMSB8fCB6ID09IDIpCisJCW1lbWNweSAoYXJncCArIDIsICpwX2FyZ3YsIHopOworICAgICAgICAgICAgICBlbHNlCisJCW1lbWNweSAoYXJncCwgKnBfYXJndiwgeik7CisjZWxzZQogCSAgICAgIG1lbWNweSAoYXJncCArIHNpemVvZiAoaW50KSAtIHosICpwX2FyZ3YsIHopOworI2VuZGlmCiAJICAgICAgYnJlYWs7CiAKIAkgICAgZGVmYXVsdDoKQEAgLTExNiwxNyArMTM2LDM0IEBACiAgICAgICBicmVhazsKIAogICAgIGNhc2UgRkZJX1RZUEVfU1RSVUNUOgorICAgICAgaWYgKGNpZi0+cnR5cGUtPmVsZW1lbnRzWzBdLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCAmJgorICAgICAgICAgIGNpZi0+cnR5cGUtPmVsZW1lbnRzWzFdKQorICAgICAgICB7CisgICAgICAgICAgY2lmLT5mbGFncyA9IDA7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwogICAgICAgc3dpdGNoIChjaWYtPnJ0eXBlLT5zaXplKQogCXsKIAljYXNlIDE6CisjaWZkZWYgX19NSU5UX18KKwkgIGNpZi0+ZmxhZ3MgPSBDSUZfRkxBR1NfU1RSVUNUMjsKKyNlbHNlCiAJICBjaWYtPmZsYWdzID0gQ0lGX0ZMQUdTX1NUUlVDVDE7CisjZW5kaWYKIAkgIGJyZWFrOwogCWNhc2UgMjoKIAkgIGNpZi0+ZmxhZ3MgPSBDSUZfRkxBR1NfU1RSVUNUMjsKIAkgIGJyZWFrOworI2lmZGVmIF9fTUlOVF9fCisJY2FzZSAzOgorI2VuZGlmCiAJY2FzZSA0OgogCSAgY2lmLT5mbGFncyA9IENJRl9GTEFHU19JTlQ7CiAJICBicmVhazsKKyNpZmRlZiBfX01JTlRfXworCWNhc2UgNzoKKyNlbmRpZgogCWNhc2UgODoKIAkgIGNpZi0+ZmxhZ3MgPSBDSUZfRkxBR1NfRElOVDsKIAkgIGJyZWFrOwpAQCAtMTQ0LDkgKzE4MSwxNSBAQAogICAgICAgY2lmLT5mbGFncyA9IENJRl9GTEFHU19ET1VCTEU7CiAgICAgICBicmVhazsKIAorI2lmIChGRklfVFlQRV9MT05HRE9VQkxFICE9IEZGSV9UWVBFX0RPVUJMRSkKICAgICBjYXNlIEZGSV9UWVBFX0xPTkdET1VCTEU6CisjaWZkZWYgX19NSU5UX18KKyAgICAgIGNpZi0+ZmxhZ3MgPSAwOworI2Vsc2UKICAgICAgIGNpZi0+ZmxhZ3MgPSBDSUZfRkxBR1NfTERPVUJMRTsKKyNlbmRpZgogICAgICAgYnJlYWs7CisjZW5kaWYKIAogICAgIGNhc2UgRkZJX1RZUEVfUE9JTlRFUjoKICAgICAgIGNpZi0+ZmxhZ3MgPSBDSUZfRkxBR1NfUE9JTlRFUjsKQEAgLTIxMiw2ICsyNTUsMjYgQEAKICAgICAgIHNpemVfdCB6OwogCiAgICAgICB6ID0gKCpwX2FyZyktPnNpemU7CisjaWZkZWYgX19NSU5UX18KKyAgICAgIGlmIChjaWYtPmZsYWdzICYmCisgICAgICAgICAgY2lmLT5ydHlwZS0+dHlwZSA9PSBGRklfVFlQRV9TVFJVQ1QgJiYKKyAgICAgICAgICAoeiA9PSAxIHx8IHogPT0gMikpCisgCXsKKwkgICpwX2FyZ3YgPSAodm9pZCAqKSAoYXJncCArIDIpOworCisJICB6ID0gNDsKKwl9CisgICAgICBlbHNlCisgICAgICBpZiAoY2lmLT5mbGFncyAmJgorICAgICAgICAgIGNpZi0+cnR5cGUtPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUICYmCisgICAgICAgICAgKHogPT0gMyB8fCB6ID09IDQpKQorIAl7CisJICAqcF9hcmd2ID0gKHZvaWQgKikgKGFyZ3ApOworCisJICB6ID0gNDsKKwl9CisgICAgICBlbHNlCisjZW5kaWYKICAgICAgIGlmICh6IDw9IDQpCiAJewogCSAgKnBfYXJndiA9ICh2b2lkICopIChhcmdwICsgNCAtIHopOwpAQCAtMjU1LDE5ICszMTgsMzEgQEAKIAkJICAgICAgdm9pZCAqdXNlcl9kYXRhLAogCQkgICAgICB2b2lkICpjb2RlbG9jKQogewotICBGRklfQVNTRVJUIChjaWYtPmFiaSA9PSBGRklfU1lTVik7CisgIGlmIChjaWYtPmFiaSAhPSBGRklfU1lTVikKKyAgICByZXR1cm4gRkZJX0JBRF9BQkk7CiAKICAgKih1bnNpZ25lZCBzaG9ydCAqKWNsb3N1cmUtPnRyYW1wID0gMHgyMDdjOwogICAqKHZvaWQgKiopKGNsb3N1cmUtPnRyYW1wICsgMikgPSBjb2RlbG9jOwogICAqKHVuc2lnbmVkIHNob3J0ICopKGNsb3N1cmUtPnRyYW1wICsgNikgPSAweDRlZjk7Ci0gIGlmIChjaWYtPnJ0eXBlLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVAotICAgICAgJiYgIWNpZi0+ZmxhZ3MpCisKKyAgaWYgKAorI2lmZGVmIF9fTUlOVF9fCisgICAgICAoY2lmLT5ydHlwZS0+dHlwZSA9PSBGRklfVFlQRV9MT05HRE9VQkxFKSB8fAorI2VuZGlmCisgICAgICAoKChjaWYtPnJ0eXBlLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCkKKyAgICAgICAgICYmICFjaWYtPmZsYWdzKSkpCiAgICAgKih2b2lkICoqKShjbG9zdXJlLT50cmFtcCArIDgpID0gZmZpX2Nsb3N1cmVfc3RydWN0X1NZU1Y7CiAgIGVsc2UKICAgICAqKHZvaWQgKiopKGNsb3N1cmUtPnRyYW1wICsgOCkgPSBmZmlfY2xvc3VyZV9TWVNWOwogCisjaWZkZWYgX19ydGVtc19fCisgIHJ0ZW1zX2NhY2hlX2ZsdXNoX211bHRpcGxlX2RhdGFfbGluZXMoIGNvZGVsb2MsIEZGSV9UUkFNUE9MSU5FX1NJWkUgKTsKKyNlbGlmIGRlZmluZWQoX19NSU5UX18pCisgIFNzeXN0ZW0oU19GTFVTSENBQ0hFLCBjb2RlbG9jLCBGRklfVFJBTVBPTElORV9TSVpFKTsKKyNlbHNlCiAgIHN5c2NhbGwoU1lTX2NhY2hlZmx1c2gsIGNvZGVsb2MsIEZMVVNIX1NDT1BFX0xJTkUsCiAJICBGTFVTSF9DQUNIRV9CT1RILCBGRklfVFJBTVBPTElORV9TSVpFKTsKKyNlbmRpZgogCiAgIGNsb3N1cmUtPmNpZiAgPSBjaWY7CiAgIGNsb3N1cmUtPnVzZXJfZGF0YSA9IHVzZXJfZGF0YTsKQEAgLTI3NSw0ICszNTAsMyBAQAogCiAgIHJldHVybiBGRklfT0s7CiB9Ci0KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL202OGsvZmZpdGFyZ2V0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9tNjhrL2ZmaXRhcmdldC5oCmluZGV4IDYzMzcxN2IuLmU4MWRkZTIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL202OGsvZmZpdGFyZ2V0LmgKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbTY4ay9mZml0YXJnZXQuaApAQCAtMSw1ICsxLDYgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi1DLSotCi0gICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzICBSZWQgSGF0LCBJbmMuCisgICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMjAxMiAgQW50aG9ueSBHcmVlbgorICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMyAgUmVkIEhhdCwgSW5jLgogICAgVGFyZ2V0IGNvbmZpZ3VyYXRpb24gbWFjcm9zIGZvciBNb3Rvcm9sYSA2OEsuCiAKICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwpAQCAtMjcsNiArMjgsMTAgQEAKICNpZm5kZWYgTElCRkZJX1RBUkdFVF9ICiAjZGVmaW5lIExJQkZGSV9UQVJHRVRfSAogCisjaWZuZGVmIExJQkZGSV9ICisjZXJyb3IgIlBsZWFzZSBkbyBub3QgaW5jbHVkZSBmZml0YXJnZXQuaCBkaXJlY3RseSBpbnRvIHlvdXIgc291cmNlLiAgVXNlIGZmaS5oIGluc3RlYWQuIgorI2VuZGlmCisKICNpZm5kZWYgTElCRkZJX0FTTQogdHlwZWRlZiB1bnNpZ25lZCBsb25nICAgICAgICAgIGZmaV9hcmc7CiB0eXBlZGVmIHNpZ25lZCBsb25nICAgICAgICAgICAgZmZpX3Nhcmc7CkBAIC0zNCw4ICszOSw4IEBACiB0eXBlZGVmIGVudW0gZmZpX2FiaSB7CiAgIEZGSV9GSVJTVF9BQkkgPSAwLAogICBGRklfU1lTViwKLSAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1NZU1YsCi0gIEZGSV9MQVNUX0FCSSA9IEZGSV9ERUZBVUxUX0FCSSArIDEKKyAgRkZJX0xBU1RfQUJJLAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfU1lTVgogfSBmZmlfYWJpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL202OGsvc3lzdi5TIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbTY4ay9zeXN2LlMKaW5kZXggNTg4MjJlMC4uZjZmNGVmOSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbTY4ay9zeXN2LlMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbTY4ay9zeXN2LlMKQEAgLTEsNSArMSw3IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgc3lzdi5TIC0gQ29weXJpZ2h0IChjKSAxOTk4IEFuZHJlYXMgU2Nod2FiCisJCisgICBzeXN2LlMgLSBDb3B5cmlnaHQgKGMpIDIwMTIgQWxhbiBIb3VyaWhhbmUKKwkgICAgQ29weXJpZ2h0IChjKSAxOTk4LCAyMDEyIEFuZHJlYXMgU2Nod2FiCiAJICAgIENvcHlyaWdodCAoYykgMjAwOCBSZWQgSGF0LCBJbmMuIAogICAgCiAgICBtNjhrIEZvcmVpZ24gRnVuY3Rpb24gSW50ZXJmYWNlIApAQCAtNDEsMTMgKzQzLDE5IEBACiAjZGVmaW5lIENGSV9FTkRQUk9DKCkKICNlbmRpZgogCisjaWZkZWYgX19NSU5UX18KKyNkZWZpbmUgQ0FMTEZVTkMoZnVuY25hbWUpIF8gIyMgZnVuY25hbWUKKyNlbHNlCisjZGVmaW5lIENBTExGVU5DKGZ1bmNuYW1lKSBmdW5jbmFtZQorI2VuZGlmCisKIAkudGV4dAogCi0JLmdsb2JsCWZmaV9jYWxsX1NZU1YKLQkudHlwZQlmZmlfY2FsbF9TWVNWLEBmdW5jdGlvbgorCS5nbG9ibAlDQUxMRlVOQyhmZmlfY2FsbF9TWVNWKQorCS50eXBlCUNBTExGVU5DKGZmaV9jYWxsX1NZU1YpLEBmdW5jdGlvbgogCS5hbGlnbgk0CiAKLWZmaV9jYWxsX1NZU1Y6CitDQUxMRlVOQyhmZmlfY2FsbF9TWVNWKToKIAlDRklfU1RBUlRQUk9DKCkKIAlsaW5rCSVmcCwjMAogCUNGSV9PRkZTRVQoMTQsLTgpCkBAIC02MiwxNCArNzAsMTggQEAKIAltb3ZlLmwJOCglZnApLC0oJXNwKQogCXBlYQk0KCVzcCkKICNpZiAhZGVmaW5lZCBfX1BJQ19fCi0JanNyCWZmaV9wcmVwX2FyZ3MKKwlqc3IJQ0FMTEZVTkMoZmZpX3ByZXBfYXJncykKICNlbHNlCi0JYnNyLmwJZmZpX3ByZXBfYXJnc0BQTFRQQworCWJzci5sCUNBTExGVU5DKGZmaV9wcmVwX2FyZ3NAUExUUEMpCiAjZW5kaWYKIAlhZGRxLmwJIzgsJXNwCQogCiAJfCBQYXNzIHBvaW50ZXIgdG8gc3RydWN0IHZhbHVlLCBpZiBhbnkKKyNpZmRlZiBfX01JTlRfXworCW1vdmUubAklZDAsJWExCisjZWxzZQogCW1vdmUubAklYTAsJWExCisjZW5kaWYKIAogCXwgQ2FsbCB0aGUgZnVuY3Rpb24KIAltb3ZlLmwJMjQoJWZwKSwlYTAKQEAgLTg1LDcgKzk3LDEyIEBACiAJbW92ZS5sCTE2KCVmcCksJWQyCiAKIAl8IElmIHRoZSByZXR1cm4gdmFsdWUgcG9pbnRlciBpcyBOVUxMLCBhc3N1bWUgbm8gcmV0dXJuIHZhbHVlLgorCXwgTk9URTogT24gdGhlIG1jNjgwMDAsIHRzdCBvbiBhbiBhZGRyZXNzIHJlZ2lzdGVyIGlzIG5vdCBzdXBwb3J0ZWQuCisjaWYgIWRlZmluZWQoX19tYzY4MDIwX18pICYmICFkZWZpbmVkKF9fbWM2ODAzMF9fKSAmJiAhZGVmaW5lZChfX21jNjgwNDBfXykgJiYgIWRlZmluZWQoX19tYzY4MDYwX18pICYmICFkZWZpbmVkKF9fbWNvbGRmaXJlX18pCisJY21wLncJIzAsICVhMQorI2Vsc2UKIAl0c3QubAklYTEKKyNlbmRpZgogCWpiZXEJbm9yZXR2YWwKIAogCWJ0c3QJIzAsJWQyCkBAIC0xMDMsMjUgKzEyMCw0NCBAQAogcmV0ZmxvYXQ6CiAJYnRzdAkjMiwlZDIKIAlqYmVxCXJldGRvdWJsZQorI2lmIGRlZmluZWQoX19NQzY4ODgxX18pIHx8IGRlZmluZWQoX19IQVZFXzY4ODgxX18pCiAJZm1vdmUucwklZnAwLCglYTEpCisjZWxzZQorCW1vdmUubAklZDAsKCVhMSkKKyNlbmRpZgogCWpicmEJZXBpbG9ndWUKIAogcmV0ZG91YmxlOgogCWJ0c3QJIzMsJWQyCiAJamJlcQlyZXRsb25nZG91YmxlCisjaWYgZGVmaW5lZChfX01DNjg4ODFfXykgfHwgZGVmaW5lZChfX0hBVkVfNjg4ODFfXykKIAlmbW92ZS5kCSVmcDAsKCVhMSkKKyNlbHNlCisJbW92ZS5sCSVkMCwoJWExKSsKKwltb3ZlLmwJJWQxLCglYTEpCisjZW5kaWYKIAlqYnJhCWVwaWxvZ3VlCiAKIHJldGxvbmdkb3VibGU6CiAJYnRzdAkjNCwlZDIKIAlqYmVxCXJldHBvaW50ZXIKKyNpZiBkZWZpbmVkKF9fTUM2ODg4MV9fKSB8fCBkZWZpbmVkKF9fSEFWRV82ODg4MV9fKQogCWZtb3ZlLngJJWZwMCwoJWExKQorI2Vsc2UKKwltb3ZlLmwJJWQwLCglYTEpKworCW1vdmUubAklZDEsKCVhMSkrCisJbW92ZS5sCSVkMiwoJWExKQorI2VuZGlmCiAJamJyYQllcGlsb2d1ZQogCiByZXRwb2ludGVyOgogCWJ0c3QJIzUsJWQyCiAJamJlcQlyZXRzdHJ1Y3QxCisjaWZkZWYgX19NSU5UX18KKwltb3ZlLmwJJWQwLCglYTEpCisjZWxzZQogCW1vdmUubAklYTAsKCVhMSkKKyNlbmRpZgogCWpicmEJZXBpbG9ndWUKIAogcmV0c3RydWN0MToKQEAgLTE0MSwxMyArMTc3LDEzIEBACiAJdW5sawklZnAKIAlydHMKIAlDRklfRU5EUFJPQygpCi0JLnNpemUJZmZpX2NhbGxfU1lTViwuLWZmaV9jYWxsX1NZU1YKKwkuc2l6ZQlDQUxMRlVOQyhmZmlfY2FsbF9TWVNWKSwuLUNBTExGVU5DKGZmaV9jYWxsX1NZU1YpCiAKLQkuZ2xvYmwJZmZpX2Nsb3N1cmVfU1lTVgotCS50eXBlCWZmaV9jbG9zdXJlX1NZU1YsIEBmdW5jdGlvbgorCS5nbG9ibAlDQUxMRlVOQyhmZmlfY2xvc3VyZV9TWVNWKQorCS50eXBlCUNBTExGVU5DKGZmaV9jbG9zdXJlX1NZU1YpLCBAZnVuY3Rpb24KIAkuYWxpZ24JNAogCi1mZmlfY2xvc3VyZV9TWVNWOgorQ0FMTEZVTkMoZmZpX2Nsb3N1cmVfU1lTVik6CiAJQ0ZJX1NUQVJUUFJPQygpCiAJbGluawklZnAsIy0xMgogCUNGSV9PRkZTRVQoMTQsLTgpCkBAIC0xNTcsOSArMTkzLDkgQEAKIAlwZWEJLTEyKCVmcCkKIAltb3ZlLmwJJWEwLC0oJXNwKQogI2lmICFkZWZpbmVkIF9fUElDX18KLQlqc3IJZmZpX2Nsb3N1cmVfU1lTVl9pbm5lcgorCWpzcglDQUxMRlVOQyhmZmlfY2xvc3VyZV9TWVNWX2lubmVyKQogI2Vsc2UKLQlic3IubAlmZmlfY2xvc3VyZV9TWVNWX2lubmVyQFBMVFBDCisJYnNyLmwJQ0FMTEZVTkMoZmZpX2Nsb3N1cmVfU1lTVl9pbm5lckBQTFRQQykKICNlbmRpZgogCiAJbHNyLmwJIzEsJWQwCkBAIC0xNzgsMTYgKzIxNCwzMSBAQAogCW1vdmUubAkoJWEwKSwlZDEKIAlqcmEJLkxjbHNfZXBpbG9ndWUKIC5MY2xzX3JldF9mbG9hdDoKKyNpZiBkZWZpbmVkKF9fTUM2ODg4MV9fKSB8fCBkZWZpbmVkKF9fSEFWRV82ODg4MV9fKQogCWZtb3ZlLnMJKCVhMCksJWZwMAorI2Vsc2UKKwltb3ZlLmwJKCVhMCksJWQwCisjZW5kaWYKIAlqcmEJLkxjbHNfZXBpbG9ndWUKIDE6CiAJbHNyLmwJIzIsJWQwCiAJam5lCTFmCiAJamNzCS5MY2xzX3JldF9sZG91YmxlCisjaWYgZGVmaW5lZChfX01DNjg4ODFfXykgfHwgZGVmaW5lZChfX0hBVkVfNjg4ODFfXykKIAlmbW92ZS5kCSglYTApLCVmcDAKKyNlbHNlCisJbW92ZS5sCSglYTApKywlZDAKKwltb3ZlLmwJKCVhMCksJWQxCisjZW5kaWYKIAlqcmEJLkxjbHNfZXBpbG9ndWUKIC5MY2xzX3JldF9sZG91YmxlOgorI2lmIGRlZmluZWQoX19NQzY4ODgxX18pIHx8IGRlZmluZWQoX19IQVZFXzY4ODgxX18pCiAJZm1vdmUueAkoJWEwKSwlZnAwCisjZWxzZQorCW1vdmUubAkoJWEwKSssJWQwCisJbW92ZS5sCSglYTApKywlZDEKKwltb3ZlLmwJKCVhMCksJWQyCisjZW5kaWYKIAlqcmEJLkxjbHNfZXBpbG9ndWUKIDE6CiAJbHNyLmwJIzIsJWQwCkBAIC0yMDQsMTMgKzI1NSwxMyBAQAogCWpyYQkuTGNsc19lcGlsb2d1ZQogCUNGSV9FTkRQUk9DKCkKIAotCS5zaXplCWZmaV9jbG9zdXJlX1NZU1YsLi1mZmlfY2xvc3VyZV9TWVNWCisJLnNpemUJQ0FMTEZVTkMoZmZpX2Nsb3N1cmVfU1lTViksLi1DQUxMRlVOQyhmZmlfY2xvc3VyZV9TWVNWKQogCi0JLmdsb2JsCWZmaV9jbG9zdXJlX3N0cnVjdF9TWVNWCi0JLnR5cGUJZmZpX2Nsb3N1cmVfc3RydWN0X1NZU1YsIEBmdW5jdGlvbgorCS5nbG9ibAlDQUxMRlVOQyhmZmlfY2xvc3VyZV9zdHJ1Y3RfU1lTVikKKwkudHlwZQlDQUxMRlVOQyhmZmlfY2xvc3VyZV9zdHJ1Y3RfU1lTViksIEBmdW5jdGlvbgogCS5hbGlnbgk0CiAKLWZmaV9jbG9zdXJlX3N0cnVjdF9TWVNWOgorQ0FMTEZVTkMoZmZpX2Nsb3N1cmVfc3RydWN0X1NZU1YpOgogCUNGSV9TVEFSVFBST0MoKQogCWxpbmsJJWZwLCMwCiAJQ0ZJX09GRlNFVCgxNCwtOCkKQEAgLTIyMCwxNCArMjcxLDE0IEBACiAJbW92ZS5sCSVhMSwtKCVzcCkKIAltb3ZlLmwJJWEwLC0oJXNwKQogI2lmICFkZWZpbmVkIF9fUElDX18KLQlqc3IJZmZpX2Nsb3N1cmVfU1lTVl9pbm5lcgorCWpzcglDQUxMRlVOQyhmZmlfY2xvc3VyZV9TWVNWX2lubmVyKQogI2Vsc2UKLQlic3IubAlmZmlfY2xvc3VyZV9TWVNWX2lubmVyQFBMVFBDCisJYnNyLmwJQ0FMTEZVTkMoZmZpX2Nsb3N1cmVfU1lTVl9pbm5lckBQTFRQQykKICNlbmRpZgogCXVubGsJJWZwCiAJcnRzCiAJQ0ZJX0VORFBST0MoKQotCS5zaXplCWZmaV9jbG9zdXJlX3N0cnVjdF9TWVNWLC4tZmZpX2Nsb3N1cmVfc3RydWN0X1NZU1YKKwkuc2l6ZQlDQUxMRlVOQyhmZmlfY2xvc3VyZV9zdHJ1Y3RfU1lTViksLi1DQUxMRlVOQyhmZmlfY2xvc3VyZV9zdHJ1Y3RfU1lTVikKIAogI2lmIGRlZmluZWQgX19FTEZfXyAmJiBkZWZpbmVkIF9fbGludXhfXwogCS5zZWN0aW9uCS5ub3RlLkdOVS1zdGFjaywiIixAcHJvZ2JpdHMKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL21pcHMvZmZpLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9taXBzL2ZmaS5jCmluZGV4IGQ3MTRjYzkuLjc5Y2ZmOWIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL21pcHMvZmZpLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbWlwcy9mZmkuYwpAQCAtMSw2ICsxLDcgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBmZmkuYyAtIENvcHlyaWdodCAoYykgMTk5NiwgMjAwNywgMjAwOCAgUmVkIEhhdCwgSW5jLgotICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMDggICAgICAgRGF2aWQgRGFuZXkKKyAgIGZmaS5jIC0gQ29weXJpZ2h0IChjKSAyMDExICBBbnRob255IEdyZWVuCisgICAgICAgICAgIENvcHlyaWdodCAoYykgMjAwOCAgRGF2aWQgRGFuZXkKKyAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk2LCAyMDA3LCAyMDA4LCAyMDExICBSZWQgSGF0LCBJbmMuCiAgICAKICAgIE1JUFMgRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UgCiAKQEAgLTM3LDcgKzM4LDExIEBACiAjZW5kaWYKIAogI2lmbmRlZiBVU0VfX0JVSUxUSU5fX19DTEVBUl9DQUNIRQotI2luY2x1ZGUgPHN5cy9jYWNoZWN0bC5oPgorIyAgaWYgZGVmaW5lZChfX09wZW5CU0RfXykKKyMgICAgaW5jbHVkZSA8bWlwczY0L3N5c2FyY2guaD4KKyMgIGVsc2UKKyMgICAgaW5jbHVkZSA8c3lzL2NhY2hlY3RsLmg+CisjICBlbmRpZgogI2VuZGlmCiAKICNpZmRlZiBGRklfREVCVUcKQEAgLTY2MiwxMCArNjY3LDEyIEBACiAgIGNoYXIgKmNsZWFyX2xvY2F0aW9uID0gKGNoYXIgKikgY29kZWxvYzsKIAogI2lmIGRlZmluZWQoRkZJX01JUFNfTzMyKQotICBGRklfQVNTRVJUKGNpZi0+YWJpID09IEZGSV9PMzIgfHwgY2lmLT5hYmkgPT0gRkZJX08zMl9TT0ZUX0ZMT0FUKTsKKyAgaWYgKGNpZi0+YWJpICE9IEZGSV9PMzIgJiYgY2lmLT5hYmkgIT0gRkZJX08zMl9TT0ZUX0ZMT0FUKQorICAgIHJldHVybiBGRklfQkFEX0FCSTsKICAgZm4gPSBmZmlfY2xvc3VyZV9PMzI7CiAjZWxzZSAvKiBGRklfTUlQU19OMzIgKi8KLSAgRkZJX0FTU0VSVChjaWYtPmFiaSA9PSBGRklfTjMyIHx8IGNpZi0+YWJpID09IEZGSV9ONjQpOworICBpZiAoY2lmLT5hYmkgIT0gRkZJX04zMiAmJiBjaWYtPmFiaSAhPSBGRklfTjY0KQorICAgIHJldHVybiBGRklfQkFEX0FCSTsKICAgZm4gPSBmZmlfY2xvc3VyZV9OMzI7CiAjZW5kaWYgLyogRkZJX01JUFNfTzMyICovCiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL21pcHMvZmZpdGFyZ2V0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9taXBzL2ZmaXRhcmdldC5oCmluZGV4IGM1ZjRlMDUuLjcxN2Q2NTkgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL21pcHMvZmZpdGFyZ2V0LmgKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbWlwcy9mZml0YXJnZXQuaApAQCAtMSw1ICsxLDYgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi1DLSotCi0gICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzICBSZWQgSGF0LCBJbmMuCisgICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMjAxMiAgQW50aG9ueSBHcmVlbgorICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMyAgUmVkIEhhdCwgSW5jLgogICAgVGFyZ2V0IGNvbmZpZ3VyYXRpb24gbWFjcm9zIGZvciBNSVBTLgogCiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKQEAgLTI3LDExICsyOCwyMyBAQAogI2lmbmRlZiBMSUJGRklfVEFSR0VUX0gKICNkZWZpbmUgTElCRkZJX1RBUkdFVF9ICiAKKyNpZm5kZWYgTElCRkZJX0gKKyNlcnJvciAiUGxlYXNlIGRvIG5vdCBpbmNsdWRlIGZmaXRhcmdldC5oIGRpcmVjdGx5IGludG8geW91ciBzb3VyY2UuICBVc2UgZmZpLmggaW5zdGVhZC4iCisjZW5kaWYKKwogI2lmZGVmIGxpbnV4CiAjIGluY2x1ZGUgPGFzbS9zZ2lkZWZzLmg+Ci0jZWxzZQorI2VsaWYgZGVmaW5lZChfX3J0ZW1zX18pCisvKgorICogU3VicHJvZ3JhbSBjYWxsaW5nIGNvbnZlbnRpb24gLSBjb3BpZWQgZnJvbSBzZ2lkZWZzLmgKKyAqLworI2RlZmluZSBfTUlQU19TSU1fQUJJMzIJCTEKKyNkZWZpbmUgX01JUFNfU0lNX05BQkkzMgkyCisjZGVmaW5lIF9NSVBTX1NJTV9BQkk2NAkJMworI2VsaWYgIWRlZmluZWQoX19PcGVuQlNEX18pCiAjIGluY2x1ZGUgPHNnaWRlZnMuaD4KICNlbmRpZgorCiAjICBpZm5kZWYgX0FCSU4zMgogIyAgICBkZWZpbmUgX0FCSU4zMiBfTUlQU19TSU1fTkFCSTMyCiAjICBlbmRpZgpAQCAtNDMsNyArNTYsNyBAQAogIyAgZW5kaWYKIAogI2lmICFkZWZpbmVkKF9NSVBTX1NJTSkKLS0tIHNvbWV0aGluZyBpcyB2ZXJ5IHdyb25nIC0tCisjIGVycm9yIC0tIHNvbWV0aGluZyBpcyB2ZXJ5IHdyb25nIC0tCiAjZWxzZQogIyAgaWYgKF9NSVBTX1NJTT09X0FCSU4zMiAmJiBkZWZpbmVkKF9BQklOMzIpKSB8fCAoX01JUFNfU0lNPT1fQUJJNjQgJiYgZGVmaW5lZChfQUJJNjQpKQogIyAgICBkZWZpbmUgRkZJX01JUFNfTjMyCkBAIC01MSw3ICs2NCw3IEBACiAjICAgIGlmIChfTUlQU19TSU09PV9BQklPMzIgJiYgZGVmaW5lZChfQUJJTzMyKSkKICMgICAgICBkZWZpbmUgRkZJX01JUFNfTzMyCiAjICAgIGVsc2UKLS0tIHRoaXMgaXMgYW4gdW5zdXBwb3J0ZWQgcGxhdGZvcm0gLS0KKyMgICAgIGVycm9yIC0tIHRoaXMgaXMgYW4gdW5zdXBwb3J0ZWQgcGxhdGZvcm0gLS0KICMgICAgZW5kaWYKICMgIGVuZGlmCiAjZW5kaWYKQEAgLTE4NiwzMCArMTk5LDI5IEBACiAgIEZGSV9PMzJfU09GVF9GTE9BVCwKICAgRkZJX04zMl9TT0ZUX0ZMT0FULAogICBGRklfTjY0X1NPRlRfRkxPQVQsCisgIEZGSV9MQVNUX0FCSSwKIAogI2lmZGVmIEZGSV9NSVBTX08zMgogI2lmZGVmIF9fbWlwc19zb2Z0X2Zsb2F0Ci0gIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9PMzJfU09GVF9GTE9BVCwKKyAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX08zMl9TT0ZUX0ZMT0FUCiAjZWxzZQotICBGRklfREVGQVVMVF9BQkkgPSBGRklfTzMyLAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfTzMyCiAjZW5kaWYKICNlbHNlCiAjIGlmIF9NSVBTX1NJTT09X0FCSTY0CiAjICBpZmRlZiBfX21pcHNfc29mdF9mbG9hdAotICBGRklfREVGQVVMVF9BQkkgPSBGRklfTjY0X1NPRlRfRkxPQVQsCisgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9ONjRfU09GVF9GTE9BVAogIyAgZWxzZQotICBGRklfREVGQVVMVF9BQkkgPSBGRklfTjY0LAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfTjY0CiAjICBlbmRpZgogIyBlbHNlCiAjICBpZmRlZiBfX21pcHNfc29mdF9mbG9hdAotICBGRklfREVGQVVMVF9BQkkgPSBGRklfTjMyX1NPRlRfRkxPQVQsCisgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9OMzJfU09GVF9GTE9BVAogIyAgZWxzZQotICBGRklfREVGQVVMVF9BQkkgPSBGRklfTjMyLAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfTjMyCiAjICBlbmRpZgogIyBlbmRpZgogI2VuZGlmCi0KLSAgRkZJX0xBU1RfQUJJID0gRkZJX0RFRkFVTFRfQUJJICsgMQogfSBmZmlfYWJpOwogCiAjZGVmaW5lIEZGSV9FWFRSQV9DSUZfRklFTERTIHVuc2lnbmVkIHJzdHJ1Y3RfZmxhZwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbWlwcy9uMzIuUyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL21pcHMvbjMyLlMKaW5kZXggYWUyMzA5NC4uZmY0YmJjZSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbWlwcy9uMzIuUworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9taXBzL24zMi5TCkBAIC00Myw2ICs0Myw3IEBACiAjaWZkZWYgX19HTlVDX18KIAkuYWJpY2FsbHMKICNlbmRpZgorCS5zZXQgbWlwczQKIAkudGV4dAogCS5hbGlnbgkyCiAJLmdsb2JsCWZmaV9jYWxsX04zMgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvbW94aWUvZmZpdGFyZ2V0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9tb3hpZS9mZml0YXJnZXQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjUzMDVkMS4uMDAwMDAwMAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9tb3hpZS9mZml0YXJnZXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi1DLSotCi0gICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMjAwOSBBbnRob255IEdyZWVuCi0gICBUYXJnZXQgY29uZmlndXJhdGlvbiBtYWNyb3MgZm9yIE1veGllCi0KLSAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwotICAgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCi0gICBgYFNvZnR3YXJlJycpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKLSAgIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKLSAgIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwotICAgcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCi0gICB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0KLSAgIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkCi0gICBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLQotICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIGBgQVMgSVMnJywgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwKLSAgIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRgotICAgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKLSAgIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVAotICAgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksCi0gICBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSwKLSAgIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIKLSAgIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KLQotICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotI2lmbmRlZiBMSUJGRklfVEFSR0VUX0gKLSNkZWZpbmUgTElCRkZJX1RBUkdFVF9ICi0KLS8qIC0tLS0gU3lzdGVtIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLSNpZm5kZWYgTElCRkZJX0FTTQotdHlwZWRlZiB1bnNpZ25lZCBsb25nICAgICAgICAgIGZmaV9hcmc7Ci10eXBlZGVmIHNpZ25lZCBsb25nICAgICAgICAgICAgZmZpX3Nhcmc7Ci0KLXR5cGVkZWYgZW51bSBmZmlfYWJpIHsKLSAgRkZJX0ZJUlNUX0FCSSA9IDAsCi0KLSNpZmRlZiBNT1hJRQotICBGRklfRUFCSSwKLSAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX0VBQkksCi0jZW5kaWYKLQotICBGRklfTEFTVF9BQkkgPSBGRklfREVGQVVMVF9BQkkgKyAxCi19IGZmaV9hYmk7Ci0jZW5kaWYKLQotLyogLS0tLSBEZWZpbml0aW9ucyBmb3IgY2xvc3VyZXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotI2RlZmluZSBGRklfQ0xPU1VSRVMgMAotI2RlZmluZSBGRklfTkFUSVZFX1JBV19BUEkgMAotCi0vKiBUcmFtcG9saW5lcyBhcmUgNSA0LWJ5dGUgaW5zdHJ1Y3Rpb25zIGxvbmcuICAqLwotI2RlZmluZSBGRklfVFJBTVBPTElORV9TSVpFICg1KjQpCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcGEvZmZpLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wYS9mZmkuYwppbmRleCA2ZDc2MDZmLi40Y2UyYmM2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wYS9mZmkuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wYS9mZmkuYwpAQCAtMSw5ICsxLDExIEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgZmZpLmMgLSAoYykgMjAwMy0yMDA0IFJhbmRvbHBoIENodW5nIDx0YXVzcUBkZWJpYW4ub3JnPgorICAgZmZpLmMgLSAoYykgMjAxMSBBbnRob255IEdyZWVuCiAgICAgICAgICAgIChjKSAyMDA4IFJlZCBIYXQsIEluYy4KLQorCSAgIChjKSAyMDA2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgICAgICAgICAoYykgMjAwMy0yMDA0IFJhbmRvbHBoIENodW5nIDx0YXVzcUBkZWJpYW4ub3JnPgorICAgICAgICAgICAKICAgIEhQUEEgRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UKLSAgIEhQLVVYIFBBIEFCSSBzdXBwb3J0IChjKSAyMDA2IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgSFAtVVggUEEgQUJJIHN1cHBvcnQgCiAKICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwogICAgYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlCkBAIC02MzMsNyArNjM1LDggQEAKICAgVUlOVDMyICp0bXA7CiAjZW5kaWYKIAotICBGRklfQVNTRVJUIChjaWYtPmFiaSA9PSBGRklfUEEzMik7CisgIGlmIChjaWYtPmFiaSAhPSBGRklfUEEzMikKKyAgICByZXR1cm4gRkZJX0JBRF9BQkk7CiAKICAgLyogTWFrZSBhIHNtYWxsIHRyYW1wb2xpbmUgdGhhdCB3aWxsIGJyYW5jaCB0byBvdXIKICAgICAgaGFuZGxlciBmdW5jdGlvbi4gVXNlIFBDLXJlbGF0aXZlIGFkZHJlc3NpbmcuICAqLwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcGEvZmZpdGFyZ2V0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wYS9mZml0YXJnZXQuaAppbmRleCAwMDFmODkxLi41ZTM2NGQzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wYS9mZml0YXJnZXQuaAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wYS9mZml0YXJnZXQuaApAQCAtMSw1ICsxLDYgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi1DLSotCi0gICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzICBSZWQgSGF0LCBJbmMuCisgICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMjAxMiAgQW50aG9ueSBHcmVlbgorICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMyAgUmVkIEhhdCwgSW5jLgogICAgVGFyZ2V0IGNvbmZpZ3VyYXRpb24gbWFjcm9zIGZvciBocHBhLgogCiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKQEAgLTI3LDYgKzI4LDEwIEBACiAjaWZuZGVmIExJQkZGSV9UQVJHRVRfSAogI2RlZmluZSBMSUJGRklfVEFSR0VUX0gKIAorI2lmbmRlZiBMSUJGRklfSAorI2Vycm9yICJQbGVhc2UgZG8gbm90IGluY2x1ZGUgZmZpdGFyZ2V0LmggZGlyZWN0bHkgaW50byB5b3VyIHNvdXJjZS4gIFVzZSBmZmkuaCBpbnN0ZWFkLiIKKyNlbmRpZgorCiAvKiAtLS0tIFN5c3RlbSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjaWZuZGVmIExJQkZGSV9BU00KQEAgLTM4LDIxICs0MywyMiBAQAogCiAjaWZkZWYgUEFfTElOVVgKICAgRkZJX1BBMzIsCi0gIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9QQTMyLAorICBGRklfTEFTVF9BQkksCisgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9QQTMyCiAjZW5kaWYKIAogI2lmZGVmIFBBX0hQVVgKICAgRkZJX1BBMzIsCi0gIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9QQTMyLAorICBGRklfTEFTVF9BQkksCisgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9QQTMyCiAjZW5kaWYKIAogI2lmZGVmIFBBNjRfSFBVWAogI2Vycm9yICJQQTY0X0hQVVggRkZJIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCiAgIEZGSV9QQTY0LAotICBGRklfREVGQVVMVF9BQkkgPSBGRklfUEE2NCwKKyAgRkZJX0xBU1RfQUJJLAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfUEE2NAogI2VuZGlmCi0KLSAgRkZJX0xBU1RfQUJJID0gRkZJX0RFRkFVTFRfQUJJICsgMQogfSBmZmlfYWJpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvYWl4LlMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL2FpeC5TCmluZGV4IGM2Zjg3NjQuLjIxM2YyZGIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvYWl4LlMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9haXguUwpAQCAtMSw1ICsxLDUgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBhaXguUyAtIENvcHlyaWdodCAoYykgMjAwMiwyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgYWl4LlMgLSBDb3B5cmlnaHQgKGMpIDIwMDIsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICBiYXNlZCBvbiBkYXJ3aW4uUyBieSBKb2huIEhvcm5rdmlzdAogCiAgICBQb3dlclBDIEFzc2VtYmx5IGdsdWUuCkBAIC03OSw2ICs3OSw4IEBACiAJLnNldCBmMjAsMjAKIAkuc2V0IGYyMSwyMQogCisJLmV4dGVybiAuZmZpX3ByZXBfYXJncworCiAjZGVmaW5lIExJQkZGSV9BU00KICNpbmNsdWRlIDxmZmljb25maWcuaD4KICNpbmNsdWRlIDxmZmkuaD4KQEAgLTEyNSw2ICsxMjcsNyBAQAogCS8qIENhbGwgZmZpX3ByZXBfYXJncy4gICovCiAJbXIJcjQsIHIxCiAJYmwJLmZmaV9wcmVwX2FyZ3MKKwlub3AKIAogCS8qIE5vdyBkbyB0aGUgY2FsbC4gICovCiAJbGQJcjAsIDAocjI5KQpAQCAtMjI2LDYgKzIyOSw3IEBACiAJLyogQ2FsbCBmZmlfcHJlcF9hcmdzLiAgKi8KIAltcglyNCwgcjEKIAlibAkuZmZpX3ByZXBfYXJncworCW5vcAogCiAJLyogTm93IGRvIHRoZSBjYWxsLiAgKi8KIAlsd3oJcjAsIDAocjI5KQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9haXhfY2xvc3VyZS5TIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9haXhfY2xvc3VyZS5TCmluZGV4IDVjNzQ0NDguLmFhYmQzYzMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvYWl4X2Nsb3N1cmUuUworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL2FpeF9jbG9zdXJlLlMKQEAgLTc5LDYgKzc5LDggQEAKIAkuc2V0IGYyMCwyMAogCS5zZXQgZjIxLDIxCiAKKwkuZXh0ZXJuIC5mZmlfY2xvc3VyZV9oZWxwZXJfREFSV0lOCisKICNkZWZpbmUgTElCRkZJX0FTTQogI2RlZmluZSBKVU1QVEFSR0VUKG5hbWUpIG5hbWUKICNkZWZpbmUgTCh4KSB4CkBAIC0xNjUsNiArMTY3LDcgQEAKIAogCS8qIGxvb2sgdXAgdGhlIHByb3BlciBzdGFydGluZyBwb2ludCBpbiB0YWJsZSAgKi8KIAkvKiBieSB1c2luZyByZXR1cm4gdHlwZSBhcyBvZmZzZXQgKi8KKwlsaHoJcjMsIDEwKHIzKQkvKiBsb2FkIHR5cGUgZnJvbSByZXR1cm4gdHlwZSAqLwogCWxkCXI0LCBMQy4uNjAoMikJLyogZ2V0IGFkZHJlc3Mgb2YganVtcCB0YWJsZSAqLwogCXNsZGkJcjMsIHIzLCA0CS8qIG5vdyBtdWx0aXBseSByZXR1cm4gdHlwZSBieSAxNiAqLwogCWxkCXIwLCAyNDArMTYocjEpCS8qIGxvYWQgcmV0dXJuIGFkZHJlc3MgKi8KQEAgLTMzNyw4ICszNDAsOSBAQAogCiAJLyogbG9vayB1cCB0aGUgcHJvcGVyIHN0YXJ0aW5nIHBvaW50IGluIHRhYmxlICAqLwogCS8qIGJ5IHVzaW5nIHJldHVybiB0eXBlIGFzIG9mZnNldCAqLworCWxoeglyMywgNihyMykJLyogbG9hZCB0eXBlIGZyb20gcmV0dXJuIHR5cGUgKi8KIAlsd3oJcjQsIExDLi42MCgyKQkvKiBnZXQgYWRkcmVzcyBvZiBqdW1wIHRhYmxlICovCi0Jc2x3aQlyMywgcjMsIDQJLyogbm93IG11bHRpcGx5IHJldHVybiB0eXBlIGJ5IDQgKi8KKwlzbHdpCXIzLCByMywgNAkvKiBub3cgbXVsdGlwbHkgcmV0dXJuIHR5cGUgYnkgMTYgKi8KIAlsd3oJcjAsIDE3Nis4KHIxKQkvKiBsb2FkIHJldHVybiBhZGRyZXNzICovCiAJYWRkCXIzLCByMywgcjQJLyogYWRkIGNvbnRlbnRzIG9mIHRhYmxlIHRvIHRhYmxlIGFkZHJlc3MgKi8KIAltdGN0cglyMwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9hc20uaCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvYXNtLmgKaW5kZXggZTg2ZTZiMC4uOTk0ZjYyZCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9hc20uaAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL2FzbS5oCkBAIC00Miw3ICs0Miw3IEBACiAKIC8qIElmIGNvbXBpbGVkIGZvciBwcm9maWxpbmcsIGNhbGwgYF9tY291bnQnIGF0IHRoZSBzdGFydCBvZiBlYWNoIGZ1bmN0aW9uLiAgKi8KICNpZmRlZglQUk9GCi0vKiBUaGUgbWNvdW50IGNvZGUgcmVsaWVzIG9uIGEgdGhlIHJldHVybiBhZGRyZXNzIGJlaW5nIG9uIHRoZSBzdGFjaworLyogVGhlIG1jb3VudCBjb2RlIHJlbGllcyBvbiB0aGUgcmV0dXJuIGFkZHJlc3MgYmVpbmcgb24gdGhlIHN0YWNrCiAgICB0byBsb2NhdGUgb3VyIGNhbGxlciBhbmQgc28gaXQgY2FuIHJlc3RvcmUgaXQ7IHNvIHN0b3JlIG9uZSBqdXN0CiAgICBmb3IgaXRzIGJlbmVmaXQuICAqLwogI2lmZGVmIFBJQwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9kYXJ3aW4uUyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvZGFyd2luLlMKaW5kZXggZDhhMWRmNS4uNGY5ODdkYyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9kYXJ3aW4uUworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL2Rhcndpbi5TCkBAIC0xLDYgKzEsNiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGRhcndpbi5TIC0gQ29weXJpZ2h0IChjKSAyMDAwIEpvaG4gSG9ybmt2aXN0Ci0JICAgICAgQ29weXJpZ2h0IChjKSAyMDA0IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCSAgICAgIENvcHlyaWdodCAoYykgMjAwNCwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgUG93ZXJQQyBBc3NlbWJseSBnbHVlLgogCkBAIC0yNCw1MSArMjQsOTIgQEAKICAgIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKKyNkZWZpbmUgTElCRkZJX0FTTQogI2lmIGRlZmluZWQoX19wcGM2NF9fKQogI2RlZmluZSBNT0RFX0NIT0lDRSh4LCB5KSB5CiAjZWxzZQogI2RlZmluZSBNT0RFX0NIT0lDRSh4LCB5KSB4CiAjZW5kaWYKIAotI2RlZmluZSBnX2xvbmcgIE1PREVfQ0hPSUNFKGxvbmcsIHF1YWQpICAgICAgICAgLyogdXNhZ2UgaXMgIi5nX2xvbmciICovCisjZGVmaW5lIG1hY2hpbmVfY2hvaWNlCU1PREVfQ0hPSUNFKHBwYzc0MDAscHBjNjQpCiAKLSNkZWZpbmUgTE9HMl9HUFJfQllURVMgIE1PREVfQ0hPSUNFKDIsMykgICAgICAgIC8qIGxvZzIoR1BSX0JZVEVTKSAqLworOyBEZWZpbmUgc29tZSBwc2V1ZG8tb3Bjb2RlcyBmb3Igc2l6ZS1pbmRlcGVuZGVudCBsb2FkICYgc3RvcmUgb2YgR1BScyAuLi4KKyNkZWZpbmUgbGd1CQlNT0RFX0NIT0lDRShsd3p1LCBsZHUpCisjZGVmaW5lIGxnCQlNT0RFX0NIT0lDRShsd3osbGQpCisjZGVmaW5lIHNnCQlNT0RFX0NIT0lDRShzdHcsc3RkKQorI2RlZmluZSBzZ3UJCU1PREVfQ0hPSUNFKHN0d3Usc3RkdSkKKyNkZWZpbmUgc2d1eAkJTU9ERV9DSE9JQ0Uoc3R3dXgsc3RkdXgpCiAKLSNkZWZpbmUgTElCRkZJX0FTTQorOyAuLi4gYW5kIHRoZSBzaXplIG9mIEdQUnMgYW5kIHRoZWlyIHN0b3JhZ2UgaW5kaWNhdG9yLgorI2RlZmluZSBHUFJfQllURVMJTU9ERV9DSE9JQ0UoNCw4KQorI2RlZmluZSBMT0cyX0dQUl9CWVRFUwlNT0RFX0NIT0lDRSgyLDMpCS8qIGxvZzIoR1BSX0JZVEVTKSAqLworI2RlZmluZSBnX2xvbmcJCU1PREVfQ0hPSUNFKGxvbmcsIHF1YWQpCS8qIHVzYWdlIGlzICIuZ19sb25nIiAqLworCis7IEZyb20gdGhlIEFCSSBkb2M6ICJNYWMgT1MgWCBBQkkgRnVuY3Rpb24gQ2FsbCBHdWlkZSIgVmVyc2lvbiAyMDA5LTAyLTA0LgorI2RlZmluZSBMSU5LQUdFX1NJWkUJTU9ERV9DSE9JQ0UoMjQsNDgpCisjZGVmaW5lIFBBUkFNX0FSRUEJTU9ERV9DSE9JQ0UoMzIsNjQpCisjZGVmaW5lIFNBVkVEX0xSX09GRlNFVAlNT0RFX0NIT0lDRSg4LDE2KQkvKiBzYXZlIHBvc2l0aW9uIGZvciBsciAqLworCisvKiBJZiB0aGVyZSBpcyBhbnkgRlAgc3R1ZmYgd2UgbWFrZSBzcGFjZSBmb3IgYWxsIG9mIHRoZSByZWdzLiAgKi8KKyNkZWZpbmUgU0FWRURfRlBSX0NPVU5UIDEzCisjZGVmaW5lIEZQUl9TSVpFCTgKKyNkZWZpbmUgUkVTVUxUX0JZVEVTCTE2CisKKy8qIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3RlcCB3aXRoIHRoZSBzYW1lIHZhbHVlIGluIGZmaV9kYXJ3aW4uYy4gICovCisjZGVmaW5lIEFTTV9ORUVEU19SRUdJU1RFUlMgNAorI2RlZmluZSBTQVZFX1JFR1NfU0laRSAoQVNNX05FRURTX1JFR0lTVEVSUyAqIEdQUl9CWVRFUykKKwogI2luY2x1ZGUgPGZmaWNvbmZpZy5oPgogI2luY2x1ZGUgPGZmaS5oPgorCiAjZGVmaW5lIEpVTVBUQVJHRVQobmFtZSkgbmFtZQogI2RlZmluZSBMKHgpIHgKLS50ZXh0Ci0JLmFsaWduIDIKLS5nbG9ibCBfZmZpX3ByZXBfYXJncwogCi0udGV4dAorCS50ZXh0CiAJLmFsaWduIDIKLS5nbG9ibCBfZmZpX2NhbGxfREFSV0lOCi0udGV4dAorCS5nbG9ibCBfZmZpX3ByZXBfYXJncworCiAJLmFsaWduIDIKKwkuZ2xvYmwgX2ZmaV9jYWxsX0RBUldJTgorCisJLyogV2UgYXJyaXZlIGhlcmUgd2l0aDoKKwkgICByMyA9IHB0ciB0byBleHRlbmRlZCBjaWYuCisJICAgcjQgPSAtYnl0ZXMuCisJICAgcjUgPSBjaWYgZmxhZ3MuCisJICAgcjYgPSBwdHIgdG8gcmV0dXJuIHZhbHVlLgorCSAgIHI3ID0gZm4gcG9pbnRlciAodXNlciBmdW5jKS4KKwkgICByOCA9IGZuIHBvaW50ZXIgKGZmaV9wcmVwX2FyZ3MpLgorCSAgIHI5ID0gZmZpX3R5cGUqIGZvciB0aGUgcmV0IHZhbC4gICovCisKIF9mZmlfY2FsbF9EQVJXSU46Ci1MRkIwOgorTHN0YXJ0Y29kZToKIAltciAgIAlyMTIscjgJLyogV2Ugb25seSBuZWVkIHIxMiB1bnRpbCB0aGUgY2FsbCwKLQkJCSAgIHNvIGl0IGRvZXNuJ3QgaGF2ZSB0byBiZSBzYXZlZC4gICovCisJCQkgICBzbyBpdCBkb2VzIG5vdCBoYXZlIHRvIGJlIHNhdmVkLiAgKi8KIExGQjE6CiAJLyogU2F2ZSB0aGUgb2xkIHN0YWNrIHBvaW50ZXIgYXMgQVAuICAqLwogCW1yCXI4LHIxCiBMQ0ZJMDoKKwkKKwkvKiBTYXZlIHRoZSByZXR2YWwgdHlwZSBpbiBwYXJlbnRzIGZyYW1lLiAgKi8KKwlzZwlyOSwoTElOS0FHRV9TSVpFKzYqR1BSX0JZVEVTKShyOCkKKwogCS8qIEFsbG9jYXRlIHRoZSBzdGFjayBzcGFjZSB3ZSBuZWVkLiAgKi8KLQlzdHd1eAlyMSxyMSxyNAorCXNndXgJcjEscjEscjQKIAogCS8qIFNhdmUgcmVnaXN0ZXJzIHdlIHVzZS4gICovCiAJbWZscglyOQorCXNnCXI5LFNBVkVEX0xSX09GRlNFVChyOCkKIAotCXN0dwlyMjgsLTE2KHI4KQkKLQlzdHcJcjI5LC0xMihyOCkKLQlzdHcJcjMwLC04KHI4KQotCXN0dwlyMzEsLTQocjgpCisJc2cJcjI4LC0oNCAqIEdQUl9CWVRFUykocjgpCQorCXNnCXIyOSwtKDMgKiBHUFJfQllURVMpKHI4KQorCXNnCXIzMCwtKDIgKiBHUFJfQllURVMpKHI4KQorCXNnCXIzMSwtKCAgICBHUFJfQllURVMpKHI4KQogCi0Jc3R3CXI5LDgocjgpCi0Jc3R3CXIyLDIwKHIxKQorI2lmICFkZWZpbmVkKFBPV0VSUENfREFSV0lOKQorCS8qIFRoZSBUT0Mgc2xvdCBpcyByZXNlcnZlZCBpbiB0aGUgRGFyd2luIEFCSSBhbmQgcjIgaXMgdm9sYXRpbGUuICAqLworCXNnCXIyLCg1ICogR1BSX0JZVEVTKShyMSkKKyNlbmRpZgorCiBMQ0ZJMToKIAogCS8qIFNhdmUgYXJndW1lbnRzIG92ZXIgY2FsbC4gICovCkBAIC03NywxNCArMTE4LDE3IEBACiAJbXIJcjI5LHI3CS8qIGZ1bmN0aW9uIGFkZHJlc3MsICAqLwogCW1yCXIyOCxyOAkvKiBvdXIgQVAuICAqLwogTENGSTI6Ci0JLyogQ2FsbCBmZmlfcHJlcF9hcmdzLiAgKi8KKwkvKiBDYWxsIGZmaV9wcmVwX2FyZ3MuIHIzID0gZXh0ZW5kZWQgY2lmLCByNCA9IHN0YWNrIHB0ciBjb3B5LiAgKi8KIAltcglyNCxyMQogCWxpCXI5LDAKIAogCW10Y3RyCXIxMiAvKiByMTIgaG9sZHMgYWRkcmVzcyBvZiBfZmZpX3ByZXBfYXJncy4gICovCiAJYmN0cmwKLQlsd3ogICAgIHIyLDIwKHIxKQogCisjaWYgIWRlZmluZWQoUE9XRVJQQ19EQVJXSU4pCisJLyogVGhlIFRPQyBzbG90IGlzIHJlc2VydmVkIGluIHRoZSBEYXJ3aW4gQUJJIGFuZCByMiBpcyB2b2xhdGlsZS4gICovCisJbGcgICAgIHIyLCg1ICogR1BSX0JZVEVTKShyMSkKKyNlbmRpZgogCS8qIE5vdyBkbyB0aGUgY2FsbC4KIAkgICBTZXQgdXAgY3IxIHdpdGggYml0cyA0LTcgb2YgdGhlIGZsYWdzLiAgKi8KIAltdGNyZgkweDQwLHIzMQpAQCAtOTIsNzEgKzEzNiwxMzAgQEAKIAltdGN0cglyMjkKIAkvKiBMb2FkIGFsbCB0aG9zZSBhcmd1bWVudCByZWdpc3RlcnMuCiAJICAgV2UgaGF2ZSBzZXQgdXAgYSBuaWNlIHN0YWNrIGZyYW1lLCBqdXN0IGxvYWQgaXQgaW50byByZWdpc3RlcnMuICAqLwotCWx3eiAgICAgcjMsMjArKDEqNCkocjEpCi0JbHd6ICAgICByNCwyMCsoMio0KShyMSkKLQlsd3ogICAgIHI1LDIwKygzKjQpKHIxKQotCWx3eiAgICAgcjYsMjArKDQqNCkocjEpCisJbGcgICAgIHIzLCAoTElOS0FHRV9TSVpFICAgICAgICAgICAgICAgICkocjEpCisJbGcgICAgIHI0LCAoTElOS0FHRV9TSVpFICsgICAgIEdQUl9CWVRFUykocjEpCisJbGcgICAgIHI1LCAoTElOS0FHRV9TSVpFICsgMiAqIEdQUl9CWVRFUykocjEpCisJbGcgICAgIHI2LCAoTElOS0FHRV9TSVpFICsgMyAqIEdQUl9CWVRFUykocjEpCiAJbm9wCi0JbHd6ICAgICByNywyMCsoNSo0KShyMSkKLQlsd3ogICAgIHI4LDIwKyg2KjQpKHIxKQotCWx3eiAgICAgcjksMjArKDcqNCkocjEpCi0JbHd6ICAgICByMTAsMjArKDgqNCkocjEpCisJbGcgICAgIHI3LCAoTElOS0FHRV9TSVpFICsgNCAqIEdQUl9CWVRFUykocjEpCisJbGcgICAgIHI4LCAoTElOS0FHRV9TSVpFICsgNSAqIEdQUl9CWVRFUykocjEpCisJbGcgICAgIHI5LCAoTElOS0FHRV9TSVpFICsgNiAqIEdQUl9CWVRFUykocjEpCisJbGcgICAgIHIxMCwoTElOS0FHRV9TSVpFICsgNyAqIEdQUl9CWVRFUykocjEpCiAKIEwxOgotCS8qIExvYWQgYWxsIHRoZSBGUCByZWdpc3RlcnMuICAqLworCS8qIC4uLiBMb2FkIGFsbCB0aGUgRlAgcmVnaXN0ZXJzLiAgKi8KIAliZgk2LEwyCS8qIE5vIGZsb2F0cyB0byBsb2FkLiAgKi8KLQlsZmQJZjEsLTE2LSgxMyo4KShyMjgpCi0JbGZkCWYyLC0xNi0oMTIqOCkocjI4KQotCWxmZAlmMywtMTYtKDExKjgpKHIyOCkKLQlsZmQJZjQsLTE2LSgxMCo4KShyMjgpCisJbGZkCWYxLCAtU0FWRV9SRUdTX1NJWkUtKDEzKkZQUl9TSVpFKShyMjgpCisJbGZkCWYyLCAtU0FWRV9SRUdTX1NJWkUtKDEyKkZQUl9TSVpFKShyMjgpCisJbGZkCWYzLCAtU0FWRV9SRUdTX1NJWkUtKDExKkZQUl9TSVpFKShyMjgpCisJbGZkCWY0LCAtU0FWRV9SRUdTX1NJWkUtKDEwKkZQUl9TSVpFKShyMjgpCiAJbm9wCi0JbGZkCWY1LC0xNi0oOSo4KShyMjgpCi0JbGZkCWY2LC0xNi0oOCo4KShyMjgpCi0JbGZkCWY3LC0xNi0oNyo4KShyMjgpCi0JbGZkCWY4LC0xNi0oNio4KShyMjgpCisJbGZkCWY1LCAtU0FWRV9SRUdTX1NJWkUtKCA5KkZQUl9TSVpFKShyMjgpCisJbGZkCWY2LCAtU0FWRV9SRUdTX1NJWkUtKCA4KkZQUl9TSVpFKShyMjgpCisJbGZkCWY3LCAtU0FWRV9SRUdTX1NJWkUtKCA3KkZQUl9TSVpFKShyMjgpCisJbGZkCWY4LCAtU0FWRV9SRUdTX1NJWkUtKCA2KkZQUl9TSVpFKShyMjgpCiAJbm9wCi0JbGZkICAgICBmOSwtMTYtKDUqOCkocjI4KQotCWxmZCAgICAgZjEwLC0xNi0oNCo4KShyMjgpCi0JbGZkICAgICBmMTEsLTE2LSgzKjgpKHIyOCkKLQlsZmQgICAgIGYxMiwtMTYtKDIqOCkocjI4KQorCWxmZCAgICAgZjksIC1TQVZFX1JFR1NfU0laRS0oIDUqRlBSX1NJWkUpKHIyOCkKKwlsZmQgICAgIGYxMCwtU0FWRV9SRUdTX1NJWkUtKCA0KkZQUl9TSVpFKShyMjgpCisJbGZkICAgICBmMTEsLVNBVkVfUkVHU19TSVpFLSggMypGUFJfU0laRSkocjI4KQorCWxmZCAgICAgZjEyLC1TQVZFX1JFR1NfU0laRS0oIDIqRlBSX1NJWkUpKHIyOCkKIAlub3AKLQlsZmQgICAgIGYxMywtMTYtKDEqOCkocjI4KQorCWxmZCAgICAgZjEzLC1TQVZFX1JFR1NfU0laRS0oIDEqRlBSX1NJWkUpKHIyOCkKIAogTDI6CiAJbXIJcjEyLHIyOQkvKiBQdXQgdGhlIHRhcmdldCBhZGRyZXNzIGluIHIxMiBhcyBzcGVjaWZpZWQuICAqLwogCW10Y3RyICAJcjEyCiAJbm9wCiAJbm9wCisKIAkvKiBNYWtlIHRoZSBjYWxsLiAgKi8KIAliY3RybAogCiAJLyogTm93LCBkZWFsIHdpdGggdGhlIHJldHVybiB2YWx1ZS4gICovCi0JbXRjcmYJMHgwMSxyMzEKIAotCWJ0CTMwLEwoZG9uZV9yZXR1cm5fdmFsdWUpCi0JYnQJMjksTChmcF9yZXR1cm5fdmFsdWUpCi0Jc3R3CXIzLDAocjMwKQotCWJmCTI4LEwoZG9uZV9yZXR1cm5fdmFsdWUpCi0Jc3R3CXI0LDQocjMwKQorCS8qIG02NCBzdHJ1Y3R1cmUgcmV0dXJucyBjYW4gb2NjdXB5IHRoZSBzYW1lIHNldCBvZiByZWdpc3RlcnMgYXMKKwkgICB3b3VsZCBiZSB1c2VkIHRvIHBhc3Mgc3VjaCBhIHN0cnVjdHVyZSBhcyBhcmcwIC0gc28gdGFrZSBjYXJlIAorCSAgIG5vdCB0byBzdGVwIG9uIGFueSBwb3NzaWJseSBob3QgcmVncy4gICovCiAKLQkvKiBGYWxsIHRocm91Z2guICAqLworCS8qIEdldCB0aGUgZmxhZ3MuLiAqLworCW10Y3JmCTB4MDMscjMxIDsgd2UgbmVlZCBjNiAmIGNyNyBub3cuCisJOyBGTEFHX1JFVFVSTlNfTk9USElORyBhbHNvIGNvdmVycyBzdHJ1Y3QgcmV0LWJ5LXJlZi4KKwlidAkzMCxMKGRvbmVfcmV0dXJuX3ZhbHVlKQkgIDsgRkxBR19SRVRVUk5TX05PVEhJTkcKKwliZgkyNyxMKHNjYWxhcl9yZXR1cm5fdmFsdWUpIDsgbm90IEZMQUdfUkVUVVJOU19TVFJVQ1QKKwkKKwkvKiBPSywgc28gd2UgaGF2ZSBhIHN0cnVjdC4gICovCisjaWYgZGVmaW5lZChfX3BwYzY0X18pCisJYnQJMzEsTChtYXliZV9yZXR1cm5fMTI4KSA7IEZMQUdfUkVUVVJOU18xMjhCSVRTLCBzcGVjaWFsIGNhc2UgCiAKLUwoZG9uZV9yZXR1cm5fdmFsdWUpOgotCS8qIFJlc3RvcmUgdGhlIHJlZ2lzdGVycyB3ZSB1c2VkIGFuZCByZXR1cm4uICAqLwotCWx3eglyOSw4KHIyOCkKLQlsd3oJcjMxLC00KHIyOCkKLQltdGxyCXI5Ci0JbHd6CXIzMCwtOChyMjgpCi0JbHd6CXIyOSwtMTIocjI4KQotCWx3eglyMjgsLTE2KHIyOCkKLQlsd3oJcjEsMChyMSkKLQlibHIKKwkvKiBPSywgd2UgaGF2ZSB0byBtYXAgdGhlIHJldHVybiBiYWNrIHRvIGEgbWVtIHN0cnVjdC4KKwkgICBXZSBhcmUgYWJvdXQgdG8gdHJhbXBsZSB0aGUgcGFyZW50cyBwYXJhbSBhcmVhLCBzbyByZWNvdmVyIHRoZQorCSAgIHJldHVybiB0eXBlLiAgcjI5IGlzIGZyZWUsIHNpbmNlIHRoZSBjYWxsIGlzIGRvbmUuICAqLworCWxnCXIyOSwoTElOS0FHRV9TSVpFICsgNiAqIEdQUl9CWVRFUykocjI4KQorCisJc2cJcjMsIChMSU5LQUdFX1NJWkUgICAgICAgICAgICAgICAgKShyMjgpCisJc2cJcjQsIChMSU5LQUdFX1NJWkUgKyAgICAgR1BSX0JZVEVTKShyMjgpCisJc2cJcjUsIChMSU5LQUdFX1NJWkUgKyAyICogR1BSX0JZVEVTKShyMjgpCisJc2cJcjYsIChMSU5LQUdFX1NJWkUgKyAzICogR1BSX0JZVEVTKShyMjgpCisJbm9wCisJc2cJcjcsIChMSU5LQUdFX1NJWkUgKyA0ICogR1BSX0JZVEVTKShyMjgpCisJc2cJcjgsIChMSU5LQUdFX1NJWkUgKyA1ICogR1BSX0JZVEVTKShyMjgpCisJc2cJcjksIChMSU5LQUdFX1NJWkUgKyA2ICogR1BSX0JZVEVTKShyMjgpCisJc2cJcjEwLChMSU5LQUdFX1NJWkUgKyA3ICogR1BSX0JZVEVTKShyMjgpCisJLyogT0ssIHNvIGRvIHRoZSBibG9jayBtb3ZlIC0gd2UgdHJ1c3QgdGhhdCBtZW1jcHkgd2lsbCBub3QgdHJhbXBsZQorCSAgIHRoZSBmcHJzLi4uICAqLworCW1yIAlyMyxyMzAgOyBkZXN0CisJYWRkaQlyNCxyMjgsTElOS0FHRV9TSVpFIDsgc291cmNlCisJLyogVGhlIHNpemUgaXMgYSBzaXplX3QsIHNob3VsZCBiZSBsb25nLiAgKi8KKwlsZwlyNSwwKHIyOSkKKwkvKiBGaWd1cmUgb3V0IHNtYWxsIHN0cnVjdHMgKi8KKwljbXBpCTAscjUsNAorCWJndAlMMwk7IDEsIDIgYW5kIDQgYnl0ZXMgaGF2ZSBzcGVjaWFsIHJ1bGVzLgorCWNtcGkJMCxyNSwzCisJYmVxCUwzCTsgbm90IDMKKwlhZGRpCXI0LHI0LDgKKwlzdWJmCXI0LHI1LHI0CitMMzoKKwlibAlfbWVtY3B5CisJCisJLyogLi4uIGRvIHdlIG5lZWQgdGhlIEZQIHJlZ2lzdGVycz8gLSByZWNvdmVyIHRoZSBmbGFncy4uICovCisJbXRjcmYJMHgwMyxyMzEgOyB3ZSBuZWVkIGM2ICYgY3I3IG5vdy4KKwliZgkyOSxMKGRvbmVfcmV0dXJuX3ZhbHVlKQkvKiBObyBmbG9hdHMgaW4gdGhlIHN0cnVjdC4gICovCisJc3RmZAlmMSwgLVNBVkVfUkVHU19TSVpFLSgxMypGUFJfU0laRSkocjI4KQorCXN0ZmQJZjIsIC1TQVZFX1JFR1NfU0laRS0oMTIqRlBSX1NJWkUpKHIyOCkKKwlzdGZkCWYzLCAtU0FWRV9SRUdTX1NJWkUtKDExKkZQUl9TSVpFKShyMjgpCisJc3RmZAlmNCwgLVNBVkVfUkVHU19TSVpFLSgxMCpGUFJfU0laRSkocjI4KQorCW5vcAorCXN0ZmQJZjUsIC1TQVZFX1JFR1NfU0laRS0oIDkqRlBSX1NJWkUpKHIyOCkKKwlzdGZkCWY2LCAtU0FWRV9SRUdTX1NJWkUtKCA4KkZQUl9TSVpFKShyMjgpCisJc3RmZAlmNywgLVNBVkVfUkVHU19TSVpFLSggNypGUFJfU0laRSkocjI4KQorCXN0ZmQJZjgsIC1TQVZFX1JFR1NfU0laRS0oIDYqRlBSX1NJWkUpKHIyOCkKKwlub3AKKwlzdGZkCWY5LCAtU0FWRV9SRUdTX1NJWkUtKCA1KkZQUl9TSVpFKShyMjgpCisJc3RmZAlmMTAsLVNBVkVfUkVHU19TSVpFLSggNCpGUFJfU0laRSkocjI4KQorCXN0ZmQJZjExLC1TQVZFX1JFR1NfU0laRS0oIDMqRlBSX1NJWkUpKHIyOCkKKwlzdGZkCWYxMiwtU0FWRV9SRUdTX1NJWkUtKCAyKkZQUl9TSVpFKShyMjgpCisJbm9wCisJc3RmZAlmMTMsLVNBVkVfUkVHU19TSVpFLSggMSpGUFJfU0laRSkocjI4KQorCisJbXIJcjMscjI5CTsgZmZpX3R5cGUgKgorCW1yCXI0LHIzMAk7IGRlc3QKKwlhZGRpCXI1LHIyOCwtU0FWRV9SRUdTX1NJWkUtKDEzKkZQUl9TSVpFKSA7IGZwcnMKKwl4b3IJcjYscjYscjYKKwlzZwlyNiwoTElOS0FHRV9TSVpFICsgNyAqIEdQUl9CWVRFUykocjI4KQorCWFkZGkJcjYscjI4LChMSU5LQUdFX1NJWkUgKyA3ICogR1BSX0JZVEVTKSA7IHBvaW50IHRvIGEgemVyb2VkIGNvdW50ZXIuCisJYmwgCV9kYXJ3aW42NF9zdHJ1Y3RfZmxvYXRzX3RvX21lbQorCisJYiBMKGRvbmVfcmV0dXJuX3ZhbHVlKQorI2Vsc2UKKwlzdHcJcjMsMChyMzApIDsgbTMyIHRoZSBvbmx5IHN0cnVjdCByZXR1cm4gaW4gcmVnIGlzIDQgYnl0ZXMuCisjZW5kaWYKKwliIEwoZG9uZV9yZXR1cm5fdmFsdWUpCiAKIEwoZnBfcmV0dXJuX3ZhbHVlKToKIAkvKiBEbyB3ZSBoYXZlIGxvbmcgZG91YmxlIHRvIHN0b3JlPyAgKi8KLQliZgkzMSxMKGZkX3JldHVybl92YWx1ZSkKKwliZgkzMSxMKGZkX3JldHVybl92YWx1ZSkgOyBGTEFHX1JFVFVSTlNfMTI4QklUUwogCXN0ZmQJZjEsMChyMzApCi0Jc3RmZAlmMiw4KHIzMCkKKwlzdGZkCWYyLEZQUl9TSVpFKHIzMCkKIAliCUwoZG9uZV9yZXR1cm5fdmFsdWUpCiAKIEwoZmRfcmV0dXJuX3ZhbHVlKToKQEAgLTE3MCwyMSArMjczLDU3IEBACiAJc3RmcwlmMSwwKHIzMCkKIAliCUwoZG9uZV9yZXR1cm5fdmFsdWUpCiAKK0woc2NhbGFyX3JldHVybl92YWx1ZSk6CisJYnQJMjksTChmcF9yZXR1cm5fdmFsdWUpCTsgRkxBR19SRVRVUk5TX0ZQCisJOyBmZmlfYXJnIGlzIGRlZmluZWQgYXMgdW5zaWduZWQgbG9uZy4gCisJc2cJcjMsMChyMzApCQk7IFNhdmUgdGhlIHJlZy4KKwliZgkyOCxMKGRvbmVfcmV0dXJuX3ZhbHVlKSA7IG5vdCBGTEFHX1JFVFVSTlNfNjRCSVRTIAorCisjaWYgZGVmaW5lZChfX3BwYzY0X18pCitMKG1heWJlX3JldHVybl8xMjgpOgorCXN0ZAlyMywwKHIzMCkKKwliZgkzMSxMKGRvbmVfcmV0dXJuX3ZhbHVlKSA7IG5vdCBGTEFHX1JFVFVSTlNfMTI4QklUUyAKKwlzdGQJcjQsOChyMzApCisjZWxzZQorCXN0dwlyNCw0KHIzMCkKKyNlbmRpZgorCisJLyogRmFsbCB0aHJvdWdoLiAgKi8KKwkvKiBXZSB3YW50IHRoaXMgYXQgdGhlIGVuZCB0byBzaW1wbGlmeSBlaCBlcGlsb2cgY29tcHV0YXRpb24uICAqLworCitMKGRvbmVfcmV0dXJuX3ZhbHVlKToKKwkvKiBSZXN0b3JlIHRoZSByZWdpc3RlcnMgd2UgdXNlZCBhbmQgcmV0dXJuLiAgKi8KKwlsZwlyMjksU0FWRURfTFJfT0ZGU0VUKHIyOCkKKwk7IGVwaWxvZworCWxnCXIzMSwtKDEgKiBHUFJfQllURVMpKHIyOCkKKwltdGxyCXIyOQorCWxnCXIzMCwtKDIgKiBHUFJfQllURVMpKHIyOCkKKwlsZwlyMjksLSgzICogR1BSX0JZVEVTKShyMjgpCisJbGcJcjI4LC0oNCAqIEdQUl9CWVRFUykocjI4KQorCWxnCXIxLDAocjEpCisJYmxyCiBMRkUxOgorCS5hbGlnbgkxCiAvKiBFTkQoX2ZmaV9jYWxsX0RBUldJTikgICovCiAKIC8qIFByb3ZpZGUgYSBudWxsIGRlZmluaXRpb24gb2YgX2ZmaV9jYWxsX0FJWC4gICovCi0udGV4dAotCS5hbGlnbiAyCi0uZ2xvYmwgX2ZmaV9jYWxsX0FJWAotLnRleHQKKwkudGV4dAorCS5nbG9ibCBfZmZpX2NhbGxfQUlYCiAJLmFsaWduIDIKIF9mZmlfY2FsbF9BSVg6CiAJYmxyCiAvKiBFTkQoX2ZmaV9jYWxsX0FJWCkgICovCiAKLS5kYXRhCi0uc2VjdGlvbiBfX1RFWFQsX19laF9mcmFtZSxjb2FsZXNjZWQsbm9fdG9jK3N0cmlwX3N0YXRpY19zeW1zCisvKiBFSCBzdHVmZi4gICovCisKKyNkZWZpbmUgRUhfREFUQV9BTElHTl9GQUNUIE1PREVfQ0hPSUNFKDB4N2MsMHg3OCkKKworCS5zdGF0aWNfZGF0YQorCS5hbGlnbiBMT0cyX0dQUl9CWVRFUworTExGQjAkbm9uX2xhenlfcHRyOgorCS5nX2xvbmcgTHN0YXJ0Y29kZQorCisJLnNlY3Rpb24gX19URVhULF9fZWhfZnJhbWUsY29hbGVzY2VkLG5vX3RvYytzdHJpcF9zdGF0aWNfc3ltcytsaXZlX3N1cHBvcnQKIEVIX2ZyYW1lMToKIAkuc2V0CUwkc2V0JDAsTEVDSUUxLUxTQ0lFMQogCS5sb25nCUwkc2V0JDAJOyBMZW5ndGggb2YgQ29tbW9uIEluZm9ybWF0aW9uIEVudHJ5CkBAIC0xOTMsMTYgKzMzMiwxNyBAQAogCS5ieXRlCTB4MQk7IENJRSBWZXJzaW9uCiAJLmFzY2lpCSJ6UlwwIgk7IENJRSBBdWdtZW50YXRpb24KIAkuYnl0ZQkweDEJOyB1bGViMTI4IDB4MTsgQ0lFIENvZGUgQWxpZ25tZW50IEZhY3RvcgotCS5ieXRlCTB4N2MJOyBzbGViMTI4IC00OyBDSUUgRGF0YSBBbGlnbm1lbnQgRmFjdG9yCisJLmJ5dGUJRUhfREFUQV9BTElHTl9GQUNUIDsgc2xlYjEyOCAtNDsgQ0lFIERhdGEgQWxpZ25tZW50IEZhY3RvcgogCS5ieXRlCTB4NDEJOyBDSUUgUkEgQ29sdW1uCiAJLmJ5dGUJMHgxCTsgdWxlYjEyOCAweDE7IEF1Z21lbnRhdGlvbiBzaXplCi0JLmJ5dGUJMHg5MAk7IEZERSBFbmNvZGluZyAoaW5kaXJlY3QgcGNyZWwpCisJLmJ5dGUJMHgxMAk7IEZERSBFbmNvZGluZyAoaW5kaXJlY3QgcGNyZWwpCiAJLmJ5dGUJMHhjCTsgRFdfQ0ZBX2RlZl9jZmEKIAkuYnl0ZQkweDEJOyB1bGViMTI4IDB4MQogCS5ieXRlCTB4MAk7IHVsZWIxMjggMHgwCiAJLmFsaWduCUxPRzJfR1BSX0JZVEVTCiBMRUNJRTE6Ci0uZ2xvYmwgX2ZmaV9jYWxsX0RBUldJTi5laAorCisJLmdsb2JsIF9mZmlfY2FsbF9EQVJXSU4uZWgKIF9mZmlfY2FsbF9EQVJXSU4uZWg6CiBMU0ZERTE6CiAJLnNldAlMJHNldCQxLExFRkRFMS1MQVNGREUxCkBAIC0yMTAsMTEgKzM1MCwxMSBAQAogTEFTRkRFMToKIAkubG9uZwlMQVNGREUxLUVIX2ZyYW1lMSA7IEZERSBDSUUgb2Zmc2V0CiAJLmdfbG9uZwlMTEZCMCRub25fbGF6eV9wdHItLgk7IEZERSBpbml0aWFsIGxvY2F0aW9uCi0JLnNldAlMJHNldCQzLExGRTEtTEZCMAorCS5zZXQJTCRzZXQkMyxMRkUxLUxzdGFydGNvZGUKIAkuZ19sb25nCUwkc2V0JDMJOyBGREUgYWRkcmVzcyByYW5nZQogCS5ieXRlICAgMHgwICAgICA7IHVsZWIxMjggMHgwOyBBdWdtZW50YXRpb24gc2l6ZQogCS5ieXRlCTB4NAk7IERXX0NGQV9hZHZhbmNlX2xvYzQKLQkuc2V0CUwkc2V0JDQsTENGSTAtTEZCMQorCS5zZXQJTCRzZXQkNCxMQ0ZJMC1Mc3RhcnRjb2RlCiAJLmxvbmcJTCRzZXQkNAogCS5ieXRlCTB4ZAk7IERXX0NGQV9kZWZfY2ZhX3JlZ2lzdGVyCiAJLmJ5dGUJMHgwOAk7IHVsZWIxMjggMHgwOApAQCAtMjM5LDcgKzM3OSw1IEBACiAJLmJ5dGUJMHgxYwk7IHVsZWIxMjggMHgxYwogCS5hbGlnbiBMT0cyX0dQUl9CWVRFUwogTEVGREUxOgotLmRhdGEKLQkuYWxpZ24gTE9HMl9HUFJfQllURVMKLUxMRkIwJG5vbl9sYXp5X3B0cjoKLQkuZ19sb25nIExGQjAKKwkuYWxpZ24gMQorCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL2Rhcndpbl9jbG9zdXJlLlMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL2Rhcndpbl9jbG9zdXJlLlMKaW5kZXggNzk1OTgzOC4uM2Y2NzkwZiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9kYXJ3aW5fY2xvc3VyZS5TCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvZGFyd2luX2Nsb3N1cmUuUwpAQCAtMSw2ICsxLDcgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBkYXJ3aW5fY2xvc3VyZS5TIC0gQ29weXJpZ2h0IChjKSAyMDAyLCAyMDAzLCAyMDA0LCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0gICBJbmMuIGJhc2VkIG9uIHBwY19jbG9zdXJlLlMKKyAgIGRhcndpbl9jbG9zdXJlLlMgLSBDb3B5cmlnaHQgKGMpIDIwMDIsIDIwMDMsIDIwMDQsIDIwMTAsIAorICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuIAorICAgYmFzZWQgb24gcHBjX2Nsb3N1cmUuUwogCiAgICBQb3dlclBDIEFzc2VtYmx5IGdsdWUuCiAKQEAgLTMzLDkxICszNCwxNzcgQEAKICNkZWZpbmUgTU9ERV9DSE9JQ0UoeCwgeSkgeAogI2VuZGlmCiAKLSNkZWZpbmUgbGd1ICAgICBNT0RFX0NIT0lDRShsd3p1LCBsZHUpCisjZGVmaW5lIG1hY2hpbmVfY2hvaWNlCU1PREVfQ0hPSUNFKHBwYzc0MDAscHBjNjQpCiAKLSNkZWZpbmUgZ19sb25nICBNT0RFX0NIT0lDRShsb25nLCBxdWFkKSAgICAgICAgIC8qIHVzYWdlIGlzICIuZ19sb25nIiAqLworOyBEZWZpbmUgc29tZSBwc2V1ZG8tb3Bjb2RlcyBmb3Igc2l6ZS1pbmRlcGVuZGVudCBsb2FkICYgc3RvcmUgb2YgR1BScyAuLi4KKyNkZWZpbmUgbGd1CQlNT0RFX0NIT0lDRShsd3p1LCBsZHUpCisjZGVmaW5lIGxnCQlNT0RFX0NIT0lDRShsd3osbGQpCisjZGVmaW5lIHNnCQlNT0RFX0NIT0lDRShzdHcsc3RkKQorI2RlZmluZSBzZ3UJCU1PREVfQ0hPSUNFKHN0d3Usc3RkdSkKIAotI2RlZmluZSBMT0cyX0dQUl9CWVRFUyAgTU9ERV9DSE9JQ0UoMiwzKSAgICAgICAgLyogbG9nMihHUFJfQllURVMpICovCis7IC4uLiBhbmQgdGhlIHNpemUgb2YgR1BScyBhbmQgdGhlaXIgc3RvcmFnZSBpbmRpY2F0b3IuCisjZGVmaW5lIEdQUl9CWVRFUwlNT0RFX0NIT0lDRSg0LDgpCisjZGVmaW5lIExPRzJfR1BSX0JZVEVTCU1PREVfQ0hPSUNFKDIsMykJLyogbG9nMihHUFJfQllURVMpICovCisjZGVmaW5lIGdfbG9uZwkJTU9ERV9DSE9JQ0UobG9uZywgcXVhZCkJLyogdXNhZ2UgaXMgIi5nX2xvbmciICovCisKKzsgRnJvbSB0aGUgQUJJIGRvYzogIk1hYyBPUyBYIEFCSSBGdW5jdGlvbiBDYWxsIEd1aWRlIiBWZXJzaW9uIDIwMDktMDItMDQuCisjZGVmaW5lIExJTktBR0VfU0laRQlNT0RFX0NIT0lDRSgyNCw0OCkKKyNkZWZpbmUgUEFSQU1fQVJFQQlNT0RFX0NIT0lDRSgzMiw2NCkKKworI2RlZmluZSBTQVZFRF9DUl9PRkZTRVQJTU9ERV9DSE9JQ0UoNCw4KQkvKiBzYXZlIHBvc2l0aW9uIGZvciBDUiAqLworI2RlZmluZSBTQVZFRF9MUl9PRkZTRVQJTU9ERV9DSE9JQ0UoOCwxNikJLyogc2F2ZSBwb3NpdGlvbiBmb3IgbHIgKi8KKworLyogV0FSTklORzogaWYgZmZpX3R5cGUgaXMgY2hhbmdlZC4uLiBoZXJlIGJlIG1vbnN0ZXJzLiAgCisgICBPZmZzZXRzIG9mIGl0ZW1zIHdpdGhpbiB0aGUgcmVzdWx0IHR5cGUuICAqLworI2RlZmluZSBGRklfVFlQRV9UWVBFCU1PREVfQ0hPSUNFKDYsMTApCisjZGVmaW5lIEZGSV9UWVBFX0VMRU0JTU9ERV9DSE9JQ0UoOCwxNikKKworI2RlZmluZSBTQVZFRF9GUFJfQ09VTlQgMTMKKyNkZWZpbmUgRlBSX1NJWkUJOAorLyogYmlnZ2VzdCBtNjQgc3RydWN0IHJldCBpcyA4R1BSUyArIDEzRlBSUyA9IDE2OCBieXRlcyAtIHJvdW5kZWQgdG8gMTZieXRlcyA9IDE3Ni4gKi8KKyNkZWZpbmUgUkVTVUxUX0JZVEVTCU1PREVfQ0hPSUNFKDE2LDE3NikKKworOyBUaGUgd2hvbGUgc3RhY2sgZnJhbWUgKipNVVNUKiogYmUgMTZieXRlLWFsaWduZWQuCisjZGVmaW5lIFNBVkVfU0laRSAoKChMSU5LQUdFX1NJWkUrUEFSQU1fQVJFQStTQVZFRF9GUFJfQ09VTlQqRlBSX1NJWkUrUkVTVUxUX0JZVEVTKSsxNSkgJiAtMTZMTCkKKyNkZWZpbmUgUEFEX1NJWkUgKFNBVkVfU0laRS0oTElOS0FHRV9TSVpFK1BBUkFNX0FSRUErU0FWRURfRlBSX0NPVU5UKkZQUl9TSVpFK1JFU1VMVF9CWVRFUykpCisKKyNkZWZpbmUgUEFSRU5UX1BBUk1fQkFTRSAoU0FWRV9TSVpFK0xJTktBR0VfU0laRSkKKyNkZWZpbmUgRlBfU0FWRV9CQVNFIChMSU5LQUdFX1NJWkUrUEFSQU1fQVJFQSkKKworI2lmIGRlZmluZWQoX19FTlZJUk9OTUVOVF9NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRF9fKSAmJiBfX0VOVklST05NRU5UX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEX18gPj0gMTA1MAorOyBXZSBubyBsb25nZXIgbmVlZCB0aGUgcGljIHN5bWJvbCBzdHViIGZvciBEYXJ3aW4gPj0gOS4KKyNkZWZpbmUgQkxDTFNfSEVMUCBfZmZpX2Nsb3N1cmVfaGVscGVyX0RBUldJTgorI2RlZmluZSBTVFJVQ1RfUkVUVkFMVUVfUCBfZGFyd2luNjRfc3RydWN0X3JldF9ieV92YWx1ZV9wCisjZGVmaW5lIFBBU1NfU1RSX0ZMT0FUUyBfZGFyd2luNjRfcGFzc19zdHJ1Y3RfZmxvYXRzCisjdW5kZWYgV0FOVF9TVFVCCisjZWxzZQorI2RlZmluZSBCTENMU19IRUxQIExfZmZpX2Nsb3N1cmVfaGVscGVyX0RBUldJTiRzdHViCisjZGVmaW5lIFNUUlVDVF9SRVRWQUxVRV9QIExfZGFyd2luNjRfc3RydWN0X3JldF9ieV92YWx1ZV9wJHN0dWIKKyNkZWZpbmUgUEFTU19TVFJfRkxPQVRTIExfZGFyd2luNjRfcGFzc19zdHJ1Y3RfZmxvYXRzJHN0dWIKKyNkZWZpbmUgV0FOVF9TVFVCCisjZW5kaWYKKworLyogbTMyL202NAorCisgICBUaGUgc3RhY2sgbGF5b3V0IGxvb2tzIGxpa2UgdGhpczoKKworICAgfCAgIEFkZGl0aW9uYWwgcGFyYW1zLi4uCQkJfCB8ICAgICBIaWdoZXIgYWRkcmVzcworICAgfgkJCQkJCX4gfgorICAgfCAgIFBhcmFtZXRlcnMgICAgICAoYXQgbGVhc3QgOCo0Lzg9MzIvNjQpCXwgfCBOVU1fR1BSX0FSR19SRUdJU1RFUlMKKyAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgfAorICAgfCAgIFRPQz1SMiAoQUlYKSBSZXNlcnZlZCAoRGFyd2luKSAgIDQvOAl8IHwKKyAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgfAorICAgfCAgIFJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAyKjQvOAl8IHwKKyAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgfAorICAgfCAgIFNwYWNlIGZvciBjYWxsZWVgcyBMUgkJNC84CXwgfAorICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8CisgICB8ICAgU2F2ZWQgQ1IgW2xvdyB3b3JkIGZvciBtNjRdICAgICAgNC84CXwgfAorICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8CisgICB8ICAgQ3VycmVudCBiYWNrY2hhaW4gcG9pbnRlcgk0LzgJfC0vIFBhcmVudGBzIGZyYW1lLgorICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCA8KyA8PDwgb24gZW50cnkgdG8KKyAgIHwgICBSZXN1bHQgQnl0ZXMJCSAgICAgICAxNi8xNzYJfCB8CisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwKKyAgIH4gICBwYWRkaW5nIHRvIDE2LWJ5dGUgYWxpZ25tZW50CQl+IH4KKyAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgfAorICAgfCAgIE5VTV9GUFJfQVJHX1JFR0lTVEVSUyBzbG90cwkJfCB8CisgICB8ICAgaGVyZSBmcDEzIC4uIGZwMQkJICAgICAgIDEzKjgJfCB8CisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwKKyAgIHwgICBSMy4uUjEwCQkJICA4KjQvOD0zMi82NAl8IHwgTlVNX0dQUl9BUkdfUkVHSVNURVJTCisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwKKyAgIHwgICBUT0M9UjIgKEFJWCkgUmVzZXJ2ZWQgKERhcndpbikgICA0LzgJfCB8CisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwJc3RhY2sJfAorICAgfCAgIFJlc2VydmVkIFtjb21waWxlcixiaW5kZXJdICAgICAyKjQvOAl8IHwJZ3Jvd3MJfAorICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8CWRvd24JVgorICAgfCAgIFNwYWNlIGZvciBjYWxsZWVzIExSCQk0LzgJfCB8CisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwJbG93ZXIgYWRkcmVzc2VzCisgICB8ICAgU2F2ZWQgQ1IgW2xvdyB3b3JkIGZvciBtNjRdICAgICAgNC84CXwgfAorICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8ICAgICBzdGFjayBwb2ludGVyIGhlcmUKKyAgIHwgICBDdXJyZW50IGJhY2tjaGFpbiBwb2ludGVyCTQvOAl8LS8JZHVyaW5nCisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18ICAgPDw8CWNhbGwuCisKKyovCiAKIAkuZmlsZQkiZGFyd2luX2Nsb3N1cmUuUyIKLS50ZXh0Ci0JLmFsaWduIExPRzJfR1BSX0JZVEVTCi0uZ2xvYmwgX2ZmaV9jbG9zdXJlX0FTTQogCi0udGV4dAorCS5tYWNoaW5lIG1hY2hpbmVfY2hvaWNlCisKKwkudGV4dAorCS5nbG9ibCBfZmZpX2Nsb3N1cmVfQVNNCiAJLmFsaWduIExPRzJfR1BSX0JZVEVTCiBfZmZpX2Nsb3N1cmVfQVNNOgogTEZCMToKLQltZmxyCXIwCQkvKiBleHRyYWN0IHJldHVybiBhZGRyZXNzICAqLwotCXN0dwlyMCw4KHIxKQkvKiBzYXZlIHRoZSByZXR1cm4gYWRkcmVzcyAgKi8KK0xzdGFydGNvZGU6CisJbWZscglyMAkJCS8qIGV4dHJhY3QgcmV0dXJuIGFkZHJlc3MgICovCisJc2cJcjAsU0FWRURfTFJfT0ZGU0VUKHIxKQkvKiBzYXZlIHRoZSByZXR1cm4gYWRkcmVzcyAgKi8KIExDRkkwOgotCS8qIDI0IEJ5dGVzIChMaW5rYWdlIEFyZWEpCi0JICAgMzIgQnl0ZXMgKG91dGdvaW5nIHBhcmFtZXRlciBhcmVhLCBhbHdheXMgcmVzZXJ2ZWQpCi0JICAgMTA0IEJ5dGVzICgxMyo4IGZyb20gRlBSKQotCSAgIDE2IEJ5dGVzIChyZXN1bHQpCi0JICAgMTc2IEJ5dGVzICAqLwotCi0Jc3R3dQlyMSwtMTc2KHIxKQkvKiBza2lwIG92ZXIgY2FsbGVyIHNhdmUgYXJlYQotCQkJCWtlZXAgc3RhY2sgYWxpZ25lZCB0byAxNi4gICovCisJc2d1CXIxLC1TQVZFX1NJWkUocjEpCS8qIHNraXAgb3ZlciBjYWxsZXIgc2F2ZSBhcmVhCisJCQkJCWtlZXAgc3RhY2sgYWxpZ25lZCB0byAxNi4gICovCiBMQ0ZJMToKIAkvKiBXZSB3YW50IHRvIGJ1aWxkIHVwIGFuIGFyZWEgZm9yIHRoZSBwYXJhbWV0ZXJzIHBhc3NlZAogCSAgIGluIHJlZ2lzdGVycy4gKGJvdGggZmxvYXRpbmcgcG9pbnQgYW5kIGludGVnZXIpICAqLwogCi0JLyogV2Ugc3RvcmUgZ3ByIDMgdG8gZ3ByIDEwIChhbGlnbmVkIHRvIDQpCi0JICAgaW4gdGhlIHBhcmVudHMgb3V0Z29pbmcgYXJlYS4gICovCi0Jc3R3ICAgcjMsMjAwKHIxKQotCXN0dyAgIHI0LDIwNChyMSkKLQlzdHcgICByNSwyMDgocjEpCi0Jc3R3ICAgcjYsMjEyKHIxKQotCXN0dyAgIHI3LDIxNihyMSkKLQlzdHcgICByOCwyMjAocjEpCi0Jc3R3ICAgcjksMjI0KHIxKQotCXN0dyAgIHIxMCwyMjgocjEpCisJLyogUHV0IGdwciAzIHRvIGdwciAxMCBpbiB0aGUgcGFyZW50cyBvdXRnb2luZyBhcmVhLi4uCisJICAgLi4uIHRoZSByZW1haW5kZXIgb2YgYW55IHBhcmFtcyB0aGF0IG92ZXJmbG93ZWQgdGhlIHJlZ3Mgd2lsbAorCSAgIGZvbGxvdyBoZXJlLiAgKi8KKwlzZwlyMywgKFBBUkVOVF9QQVJNX0JBU0UgICAgICAgICAgICAgICAgKShyMSkKKwlzZwlyNCwgKFBBUkVOVF9QQVJNX0JBU0UgKyBHUFJfQllURVMgICAgKShyMSkKKwlzZwlyNSwgKFBBUkVOVF9QQVJNX0JBU0UgKyBHUFJfQllURVMgKiAyKShyMSkKKwlzZwlyNiwgKFBBUkVOVF9QQVJNX0JBU0UgKyBHUFJfQllURVMgKiAzKShyMSkKKwlzZwlyNywgKFBBUkVOVF9QQVJNX0JBU0UgKyBHUFJfQllURVMgKiA0KShyMSkKKwlzZwlyOCwgKFBBUkVOVF9QQVJNX0JBU0UgKyBHUFJfQllURVMgKiA1KShyMSkKKwlzZwlyOSwgKFBBUkVOVF9QQVJNX0JBU0UgKyBHUFJfQllURVMgKiA2KShyMSkKKwlzZwlyMTAsKFBBUkVOVF9QQVJNX0JBU0UgKyBHUFJfQllURVMgKiA3KShyMSkKIAotCS8qIFdlIHNhdmUgZnByIDEgdG8gZnByIDEzLiAoYWxpZ25lZCB0byA4KSAgKi8KLQlzdGZkICBmMSw1NihyMSkKLQlzdGZkICBmMiw2NChyMSkKLQlzdGZkICBmMyw3MihyMSkKLQlzdGZkICBmNCw4MChyMSkKLQlzdGZkICBmNSw4OChyMSkKLQlzdGZkICBmNiw5NihyMSkKLQlzdGZkICBmNywxMDQocjEpCi0Jc3RmZCAgZjgsMTEyKHIxKQotCXN0ZmQgIGY5LDEyMChyMSkKLQlzdGZkICBmMTAsMTI4KHIxKQotCXN0ZmQgIGYxMSwxMzYocjEpCi0Jc3RmZCAgZjEyLDE0NChyMSkKLQlzdGZkICBmMTMsMTUyKHIxKQorCS8qIFdlIHNhdmUgZnByIDEgdG8gZnByIDE0IGluIG91ciBvd24gc2F2ZSBmcmFtZS4gICovCisJc3RmZAlmMSwgKEZQX1NBVkVfQkFTRSAgICAgICAgICAgICAgICAgKShyMSkKKwlzdGZkCWYyLCAoRlBfU0FWRV9CQVNFICsgIEZQUl9TSVpFICAgICApKHIxKQorCXN0ZmQJZjMsIChGUF9TQVZFX0JBU0UgKyAgRlBSX1NJWkUgKiAyICkocjEpCisJc3RmZAlmNCwgKEZQX1NBVkVfQkFTRSArICBGUFJfU0laRSAqIDMgKShyMSkKKwlzdGZkCWY1LCAoRlBfU0FWRV9CQVNFICsgIEZQUl9TSVpFICogNCApKHIxKQorCXN0ZmQJZjYsIChGUF9TQVZFX0JBU0UgKyAgRlBSX1NJWkUgKiA1ICkocjEpCisJc3RmZAlmNywgKEZQX1NBVkVfQkFTRSArICBGUFJfU0laRSAqIDYgKShyMSkKKwlzdGZkCWY4LCAoRlBfU0FWRV9CQVNFICsgIEZQUl9TSVpFICogNyApKHIxKQorCXN0ZmQJZjksIChGUF9TQVZFX0JBU0UgKyAgRlBSX1NJWkUgKiA4ICkocjEpCisJc3RmZAlmMTAsKEZQX1NBVkVfQkFTRSArICBGUFJfU0laRSAqIDkgKShyMSkKKwlzdGZkCWYxMSwoRlBfU0FWRV9CQVNFICsgIEZQUl9TSVpFICogMTApKHIxKQorCXN0ZmQJZjEyLChGUF9TQVZFX0JBU0UgKyAgRlBSX1NJWkUgKiAxMSkocjEpCisJc3RmZAlmMTMsKEZQX1NBVkVfQkFTRSArICBGUFJfU0laRSAqIDEyKShyMSkKIAogCS8qIFNldCB1cCByZWdpc3RlcnMgZm9yIHRoZSByb3V0aW5lIHRoYXQgYWN0dWFsbHkgZG9lcyB0aGUgd29yawogCSAgIGdldCB0aGUgY29udGV4dCBwb2ludGVyIGZyb20gdGhlIHRyYW1wb2xpbmUuICAqLwotCW1yIHIzLHIxMQorCW1yCXIzLHIxMQogCiAJLyogTm93IGxvYWQgdXAgdGhlIHBvaW50ZXIgdG8gdGhlIHJlc3VsdCBzdG9yYWdlLiAgKi8KLQlhZGRpIHI0LHIxLDE2MAorCWFkZGkJcjQscjEsKFNBVkVfU0laRS1SRVNVTFRfQllURVMpCiAKIAkvKiBOb3cgbG9hZCB1cCB0aGUgcG9pbnRlciB0byB0aGUgc2F2ZWQgZ3ByIHJlZ2lzdGVycy4gICovCi0JYWRkaSByNSxyMSwyMDAKKwlhZGRpCXI1LHIxLFBBUkVOVF9QQVJNX0JBU0UKIAogCS8qIE5vdyBsb2FkIHVwIHRoZSBwb2ludGVyIHRvIHRoZSBzYXZlZCBmcHIgcmVnaXN0ZXJzLiAgKi8KLQlhZGRpIHI2LHIxLDU2CisJYWRkaQlyNixyMSxGUF9TQVZFX0JBU0UKIAogCS8qIE1ha2UgdGhlIGNhbGwuICAqLwotCWJsCUxmZmlfY2xvc3VyZV9oZWxwZXJfREFSV0lOJHN0dWIKKwlibAlCTENMU19IRUxQCiAKLQkvKiBOb3cgcjMgY29udGFpbnMgdGhlIHJldHVybiB0eXBlCi0JICAgc28gdXNlIGl0IHRvIGxvb2sgdXAgaW4gYSB0YWJsZQorCS8qIHIzIGNvbnRhaW5zIHRoZSBydHlwZSBwb2ludGVyLi4uIHNhdmUgaXQgc2luY2Ugd2Ugd2lsbCBuZWVkCisJICAgaXQgbGF0ZXIuICAqLworCXNnCXIzLExJTktBR0VfU0laRShyMSkJOyBmZmlfdHlwZSAqIHJlc3VsdF90eXBlCisJbGcJcjAsMChyMykJCTsgc2l6ZSA9PiByMAorCWxoeglyMyxGRklfVFlQRV9UWVBFKHIzKQk7IHR5cGUgPT4gcjMKKworCS8qIFRoZSBoZWxwZXIgd2lsbCBoYXZlIGludGVyY2VwdGVkIHN0cnV0dXJlIHJldHVybnMgYW5kIGluc2VydGVkCisJICAgdGhlIGNhbGxlcmBzIGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yIHN0cnVjdHMgcmV0dXJuZWQgYnkgcmVmLiAgKi8KKworCS8qIHIzIGNvbnRhaW5zIHRoZSByZXR1cm4gdHlwZSAgc28gdXNlIGl0IHRvIGxvb2sgdXAgaW4gYSB0YWJsZQogCSAgIHNvIHdlIGtub3cgaG93IHRvIGRlYWwgd2l0aCBlYWNoIHR5cGUuICAqLwogCi0JLyogTG9vayB1cCB0aGUgcHJvcGVyIHN0YXJ0aW5nIHBvaW50IGluIHRhYmxlCi0JICAgYnkgdXNpbmcgcmV0dXJuIHR5cGUgYXMgb2Zmc2V0LiAgKi8KLQlhZGRpICByNSxyMSwxNjAJCSAgLyogR2V0IHBvaW50ZXIgdG8gcmVzdWx0cyBhcmVhLiAgKi8KLQlibCAgICBMZ2V0X3JldF90eXBlMF9hZGRyIC8qIEdldCBwb2ludGVyIHRvIExyZXRfdHlwZTAgaW50byBMUi4gICovCi0JbWZsciAgcjQJCSAgLyogTW92ZSB0byByNC4gICovCi0Jc2x3aSAgcjMscjMsNAkJICAvKiBOb3cgbXVsdGlwbHkgcmV0dXJuIHR5cGUgYnkgMTYuICAqLwotCWFkZCAgIHIzLHIzLHI0CQkgIC8qIEFkZCBjb250ZW50cyBvZiB0YWJsZSB0byB0YWJsZSBhZGRyZXNzLiAgKi8KLQltdGN0ciByMwotCWJjdHIJCQkgIC8qIEp1bXAgdG8gaXQuICAqLworCWFkZGkJcjUscjEsKFNBVkVfU0laRS1SRVNVTFRfQllURVMpIC8qIE90aGVyd2lzZSwgb3VyIHJldHVybiBpcyBoZXJlLiAgKi8KKwlibAlMZ2V0X3JldF90eXBlMF9hZGRyCS8qIEdldCBwb2ludGVyIHRvIExyZXRfdHlwZTAgaW50byBMUi4gICovCisJbWZscglyNAkJCS8qIE1vdmUgdG8gcjQuICAqLworCXNsd2kJcjMscjMsNAkJCS8qIE5vdyBtdWx0aXBseSByZXR1cm4gdHlwZSBieSAxNi4gICovCisJYWRkCXIzLHIzLHI0CQkvKiBBZGQgY29udGVudHMgb2YgdGFibGUgdG8gdGFibGUgYWRkcmVzcy4gICovCisJbXRjdHIJcjMKKwliY3RyCQkJIAkgLyogSnVtcCB0byBpdC4gICovCiBMRkUxOgogLyogRWFjaCBvZiB0aGUgcmV0X3R5cGVYIGNvZGUgZnJhZ21lbnRzIGhhcyB0byBiZSBleGFjdGx5IDE2IGJ5dGVzIGxvbmcKICAgICg0IGluc3RydWN0aW9ucykuIEZvciBjYWNoZSBlZmZlY3RpdmVuZXNzIHdlIGFsaWduIHRvIGEgMTYgYnl0ZSBib3VuZGFyeQpAQCAtMTQwLDcgKzIyNyw3IEBACiAKIC8qIGNhc2UgRkZJX1RZUEVfSU5UICAqLwogTHJldF90eXBlMToKLQlsd3oJcjMsMChyNSkKKwlsZwlyMywwKHI1KQogCWIJTGZpbmlzaAogCW5vcAogCW5vcApAQCAtMTY4LDg1ICsyNTUsMjI0IEBACiAKIC8qIGNhc2UgRkZJX1RZUEVfVUlOVDggICovCiBMcmV0X3R5cGU1OgorI2lmIGRlZmluZWQoX19wcGM2NF9fKQorCWxieglyMyw3KHI1KQorI2Vsc2UKIAlsYnoJcjMsMyhyNSkKKyNlbmRpZgogCWIJTGZpbmlzaAogCW5vcAogCW5vcAogCiAvKiBjYXNlIEZGSV9UWVBFX1NJTlQ4ICAqLwogTHJldF90eXBlNjoKKyNpZiBkZWZpbmVkKF9fcHBjNjRfXykKKwlsYnoJcjMsNyhyNSkKKyNlbHNlCiAJbGJ6CXIzLDMocjUpCisjZW5kaWYKIAlleHRzYglyMyxyMwogCWIJTGZpbmlzaAogCW5vcAogCiAvKiBjYXNlIEZGSV9UWVBFX1VJTlQxNiAgKi8KIExyZXRfdHlwZTc6CisjaWYgZGVmaW5lZChfX3BwYzY0X18pCisJbGh6CXIzLDYocjUpCisjZWxzZQogCWxoeglyMywyKHI1KQorI2VuZGlmCiAJYglMZmluaXNoCiAJbm9wCiAJbm9wCiAKIC8qIGNhc2UgRkZJX1RZUEVfU0lOVDE2ICAqLwogTHJldF90eXBlODoKKyNpZiBkZWZpbmVkKF9fcHBjNjRfXykKKwlsaGEJcjMsNihyNSkKKyNlbHNlCiAJbGhhCXIzLDIocjUpCisjZW5kaWYKIAliCUxmaW5pc2gKIAlub3AKIAlub3AKIAogLyogY2FzZSBGRklfVFlQRV9VSU5UMzIgICovCiBMcmV0X3R5cGU5OgorI2lmIGRlZmluZWQoX19wcGM2NF9fKQorCWx3eglyMyw0KHI1KQorI2Vsc2UKIAlsd3oJcjMsMChyNSkKKyNlbmRpZgogCWIJTGZpbmlzaAogCW5vcAogCW5vcAogCiAvKiBjYXNlIEZGSV9UWVBFX1NJTlQzMiAgKi8KIExyZXRfdHlwZTEwOgorI2lmIGRlZmluZWQoX19wcGM2NF9fKQorCWx3eglyMyw0KHI1KQorI2Vsc2UKIAlsd3oJcjMsMChyNSkKKyNlbmRpZgogCWIJTGZpbmlzaAogCW5vcAogCW5vcAogCiAvKiBjYXNlIEZGSV9UWVBFX1VJTlQ2NCAgKi8KIExyZXRfdHlwZTExOgorI2lmIGRlZmluZWQoX19wcGM2NF9fKQorCWxnCXIzLDAocjUpCisJYglMZmluaXNoCisJbm9wCisjZWxzZQogCWx3eglyMywwKHI1KQogCWx3eglyNCw0KHI1KQogCWIJTGZpbmlzaAorI2VuZGlmCiAJbm9wCiAKIC8qIGNhc2UgRkZJX1RZUEVfU0lOVDY0ICAqLwogTHJldF90eXBlMTI6CisjaWYgZGVmaW5lZChfX3BwYzY0X18pCisJbGcJcjMsMChyNSkKKwliCUxmaW5pc2gKKwlub3AKKyNlbHNlCiAJbHd6CXIzLDAocjUpCiAJbHd6CXI0LDQocjUpCiAJYglMZmluaXNoCisjZW5kaWYKIAlub3AKIAogLyogY2FzZSBGRklfVFlQRV9TVFJVQ1QgICovCiBMcmV0X3R5cGUxMzoKKyNpZiBkZWZpbmVkKF9fcHBjNjRfXykKKwlsZwlyMywwKHI1KQkJOyB3ZSBuZWVkIGF0IGxlYXN0IHRoaXMuLi4KKwljbXBpCTAscjAsNAorCWJndAlMc3RydWN0ZW5kCQk7IG5vdCBhIHNwZWNpYWwgc21hbGwgY2FzZQorCWIJTHNtYWxsc3RydWN0CQk7IHNlZSBpZiB3ZSBuZWVkIG1vcmUuCisjZWxzZQorCWNtcGkJMCxyMCw0CisJYmd0CUxmaW5pc2gJCTsgbm90IGJ5IHZhbHVlCisJbGcJcjMsMChyNSkKIAliCUxmaW5pc2gKLQlub3AKKyNlbmRpZgorLyogY2FzZSBGRklfVFlQRV9QT0lOVEVSICAqLworTHJldF90eXBlMTQ6CisJbGcJcjMsMChyNSkKKwliCUxmaW5pc2gKIAlub3AKIAlub3AKIAotLyogY2FzZSBGRklfVFlQRV9QT0lOVEVSICAqLwotTHJldF90eXBlMTQ6Ci0JbHd6CXIzLDAocjUpCi0JYglMZmluaXNoCi0Jbm9wCi0Jbm9wCisjaWYgZGVmaW5lZChfX3BwYzY0X18pCitMc21hbGxzdHJ1Y3Q6CisJYmVxCUxmb3VyCQkJOyBjb250aW51YXRpb24gb2YgTHJldDEzLgorCWNtcGkJMCxyMCwzCisJYmVxCUxmaW5pc2gJCQk7IGRvbmB0IGFkanVzdCB0aGlzIC0gY2FuYHQgYmUgYW55IGZsb2F0cyBoZXJlLi4uCisJc3JkaQlyMyxyMyw0OAorCWNtcGkJMCxyMCwyCisJYmVxCUxmaW5pc2gJCQk7IC4uIG9yIGhlcmUgLi4KKwlzcmRpCXIzLHIzLDgKKwliIAlMZmluaXNoCQkJOyAuLiBvciBoZXJlLgorCitMZm91cjoKKwlsZwlyNixMSU5LQUdFX1NJWkUocjEpCTsgZ2V0IHRoZSByZXN1bHQgdHlwZQorCWxnCXI2LEZGSV9UWVBFX0VMRU0ocjYpCTsgZWxlbWVudHMgYXJyYXkgcG9pbnRlcgorCWxnCXI2LDAocjYpCQk7IGZpcnN0IGVsZW1lbnQKKwlsaHoJcjAsRkZJX1RZUEVfVFlQRShyNikJOyBPSyBnbyB0aGUgdHlwZQorCWNtcGkJMCxyMCwyCQkJOyBGRklfVFlQRV9GTE9BVAorCWJuZQlMZm91cmludAorCWxmcwlmMSwwKHI1KQkJOyBqdXN0IG9uZSBmbG9hdCBpbiB0aGUgc3RydWN0LgorCWIgCUxmaW5pc2gKKworTGZvdXJpbnQ6CisJc3JkaQlyMyxyMywzMgkJOyBmb3VyIGJ5dGVzLgorCWIgCUxmaW5pc2gKKworTHN0cnVjdGVuZDoKKwlsZwlyMyxMSU5LQUdFX1NJWkUocjEpCTsgZ2V0IHRoZSByZXN1bHQgdHlwZQorCWJsCVNUUlVDVF9SRVRWQUxVRV9QCisJY21waQkwLHIzLDAKKwliZXEJTGZpbmlzaAkJCTsgbm9wZS4KKwkvKiBSZWNvdmVyIGEgcG9pbnRlciB0byB0aGUgcmVzdWx0cy4gICovCisJYWRkaQlyMTEscjEsKFNBVkVfU0laRS1SRVNVTFRfQllURVMpCisJbGcJcjMsMChyMTEpCQk7IHdlIG5lZWQgYXQgbGVhc3QgdGhpcy4uLgorCWxnCXI0LDgocjExKQorCWNtcGkJMCxyMCwxNgorCWJlcQlMZmluaXNoCQk7IHNwZWNpYWwgY2FzZSAxNiBieXRlcyB3ZSBkb24ndCBjb25zaWRlciBmbG9hdHMuCisKKwkvKiBPSywgZnJ1c3RyYXRpbmdseSwgdGhlIHByb2Nlc3Mgb2Ygc2F2aW5nIHRoZSBzdHJ1Y3QgdG8gbWVtIG1pZ2h0IGhhdmUKKwkgICBtZXNzZWQgd2l0aCB0aGUgRlBScywgc28gd2UgaGF2ZSB0byByZS1sb2FkIHRoZW0gOiguCisJICAgV2VgbGwgdXNlIG91ciBGUFJzIHNwYWNlIGFnYWluIC0gY2FsbGluZzogCisJICAgdm9pZCBkYXJ3aW42NF9wYXNzX3N0cnVjdF9mbG9hdHMgKGZmaV90eXBlICpzLCBjaGFyICpzcmMsIAorCQkJCQkgICAgIHVuc2lnbmVkICpuZnByLCBkb3VibGUgKipmcHJzKSAKKwkgICBXZWBsbCB0ZW1wb3JhcmlseSBwaW5jaCB0aGUgZmlyc3QgdHdvIHNsb3RzIG9mIHRoZSBwYXJhbSBhcmVhIGZvciBsb2NhbAorCSAgIHZhcnMgdXNlZCBieSB0aGUgcm91dGluZS4gICovCisJeG9yCXI2LHI2LHI2CisJYWRkaQlyNSxyMSxQQVJFTlRfUEFSTV9CQVNFCQk7IHNvbWUgc3BhY2UKKwlzZwlyNiwwKHI1KQkJCTsgKm5mcHIgemVyb2VkLgorCWFkZGkJcjYscjUsOAkJCQk7ICoqZnBycworCWFkZGkJcjMscjEsRlBfU0FWRV9CQVNFCQk7IHBvaW50ZXIgdG8gRlBScyBzcGFjZQorCXNnCXIzLDAocjYpCisJbXIJcjQscjExCQkJCTsgdGhlIHN0cnVjdCBpcyBoZXJlLi4uCisJbGcJcjMsTElOS0FHRV9TSVpFKHIxKQkJOyBmZmlfdHlwZSAqIHJlc3VsdF90eXBlLgorCWJsCVBBU1NfU1RSX0ZMT0FUUwkJCTsgZ2V0IHN0cnVjdCBmbG9hdHMgaW50byBGUFIgc2F2ZSBzcGFjZS4KKwkvKiBTZWUgaWYgd2UgdXNlZCBhbnkgZmxvYXRzICAqLworCWx3eglyMCwoU0FWRV9TSVpFLVJFU1VMVF9CWVRFUykocjEpCQorCWNtcGkJMCxyMCwwCisJYmVxCUxzdHJ1Y3RpbnRzCQkJOyBub3BlLgorCS8qIE9LIGxvYWQgYGVtIHVwLi4uICovCisJbGZkCWYxLCAoRlBfU0FWRV9CQVNFICAgICAgICAgICAgICAgICApKHIxKQorCWxmZAlmMiwgKEZQX1NBVkVfQkFTRSArICBGUFJfU0laRSAgICAgKShyMSkKKwlsZmQJZjMsIChGUF9TQVZFX0JBU0UgKyAgRlBSX1NJWkUgKiAyICkocjEpCisJbGZkCWY0LCAoRlBfU0FWRV9CQVNFICsgIEZQUl9TSVpFICogMyApKHIxKQorCWxmZAlmNSwgKEZQX1NBVkVfQkFTRSArICBGUFJfU0laRSAqIDQgKShyMSkKKwlsZmQJZjYsIChGUF9TQVZFX0JBU0UgKyAgRlBSX1NJWkUgKiA1ICkocjEpCisJbGZkCWY3LCAoRlBfU0FWRV9CQVNFICsgIEZQUl9TSVpFICogNiApKHIxKQorCWxmZAlmOCwgKEZQX1NBVkVfQkFTRSArICBGUFJfU0laRSAqIDcgKShyMSkKKwlsZmQJZjksIChGUF9TQVZFX0JBU0UgKyAgRlBSX1NJWkUgKiA4ICkocjEpCisJbGZkCWYxMCwoRlBfU0FWRV9CQVNFICsgIEZQUl9TSVpFICogOSApKHIxKQorCWxmZAlmMTEsKEZQX1NBVkVfQkFTRSArICBGUFJfU0laRSAqIDEwKShyMSkKKwlsZmQJZjEyLChGUF9TQVZFX0JBU0UgKyAgRlBSX1NJWkUgKiAxMSkocjEpCisJbGZkCWYxMywoRlBfU0FWRV9CQVNFICsgIEZQUl9TSVpFICogMTIpKHIxKQorCisJLyogcG9pbnQgYmFjayBhdCBvdXIgc2F2ZWQgc3RydWN0LiAgKi8KK0xzdHJ1Y3RpbnRzOgorCWFkZGkJcjExLHIxLChTQVZFX1NJWkUtUkVTVUxUX0JZVEVTKQorCWxnCXIzLDAocjExKQkJCTsgd2UgZW5kIHVwIHBpY2tpbmcgdGhlCisJbGcJcjQsOChyMTEpCQkJOyBmaXJzdCB0d28gYWdhaW4uCisJbGcJcjUsMTYocjExKQorCWxnCXI2LDI0KHIxMSkKKwlsZwlyNywzMihyMTEpCisJbGcJcjgsNDAocjExKQorCWxnCXI5LDQ4KHIxMSkKKwlsZwlyMTAsNTYocjExKQorI2VuZGlmCiAKIC8qIGNhc2UgZG9uZSAgKi8KIExmaW5pc2g6Ci0JYWRkaQlyMSxyMSwxNzYJLyogUmVzdG9yZSBzdGFjayBwb2ludGVyLiAgKi8KLQlsd3oJcjAsOChyMSkJLyogR2V0IHJldHVybiBhZGRyZXNzLiAgKi8KLQltdGxyCXIwCQkvKiBSZXNldCBsaW5rIHJlZ2lzdGVyLiAgKi8KKwlhZGRpCXIxLHIxLFNBVkVfU0laRQkJLyogUmVzdG9yZSBzdGFjayBwb2ludGVyLiAgKi8KKwlsZwlyMCxTQVZFRF9MUl9PRkZTRVQocjEpCS8qIEdldCByZXR1cm4gYWRkcmVzcy4gICovCisJbXRscglyMAkJCS8qIFJlc2V0IGxpbmsgcmVnaXN0ZXIuICAqLwogCWJscgotCitMZW5kY29kZToKKwkuYWxpZ24gMQorCQogLyogRU5EKGZmaV9jbG9zdXJlX0FTTSkgICovCiAKLS5kYXRhCi0uc2VjdGlvbiBfX1RFWFQsX19laF9mcmFtZSxjb2FsZXNjZWQsbm9fdG9jK3N0cmlwX3N0YXRpY19zeW1zK2xpdmVfc3VwcG9ydAorLyogRUggZnJhbWUgc3R1ZmYuICAqLworI2RlZmluZSBFSF9EQVRBX0FMSUdOX0ZBQ1QgTU9ERV9DSE9JQ0UoMHg3YywweDc4KQorLyogMTc2LCA0MDAgKi8KKyNkZWZpbmUgRUhfRlJBTUVfT0ZGU0VUQSBNT0RFX0NIT0lDRSgxNzYsMHg5MCkKKyNkZWZpbmUgRUhfRlJBTUVfT0ZGU0VUQiBNT0RFX0NIT0lDRSgxLDMpCisKKwkuc3RhdGljX2RhdGEKKwkuYWxpZ24gTE9HMl9HUFJfQllURVMKK0xMRkIxJG5vbl9sYXp5X3B0cjoKKwkuZ19sb25nIExzdGFydGNvZGUKKworCS5zZWN0aW9uIF9fVEVYVCxfX2VoX2ZyYW1lLGNvYWxlc2NlZCxub190b2Mrc3RyaXBfc3RhdGljX3N5bXMrbGl2ZV9zdXBwb3J0CiBFSF9mcmFtZTE6CiAJLnNldAlMJHNldCQwLExFQ0lFMS1MU0NJRTEKIAkubG9uZwlMJHNldCQwCTsgTGVuZ3RoIG9mIENvbW1vbiBJbmZvcm1hdGlvbiBFbnRyeQpAQCAtMjU1LDE2ICs0ODEsMTYgQEAKIAkuYnl0ZQkweDEJOyBDSUUgVmVyc2lvbgogCS5hc2NpaQkielJcMCIJOyBDSUUgQXVnbWVudGF0aW9uCiAJLmJ5dGUJMHgxCTsgdWxlYjEyOCAweDE7IENJRSBDb2RlIEFsaWdubWVudCBGYWN0b3IKLQkuYnl0ZQkweDdjCTsgc2xlYjEyOCAtNDsgQ0lFIERhdGEgQWxpZ25tZW50IEZhY3RvcgorCS5ieXRlCUVIX0RBVEFfQUxJR05fRkFDVCA7IHNsZWIxMjggLTQ7IENJRSBEYXRhIEFsaWdubWVudCBGYWN0b3IKIAkuYnl0ZQkweDQxCTsgQ0lFIFJBIENvbHVtbgogCS5ieXRlCTB4MQk7IHVsZWIxMjggMHgxOyBBdWdtZW50YXRpb24gc2l6ZQotCS5ieXRlCTB4OTAJOyBGREUgRW5jb2RpbmcgKGluZGlyZWN0IHBjcmVsKQorCS5ieXRlCTB4MTAJOyBGREUgRW5jb2RpbmcgKGluZGlyZWN0IHBjcmVsKQogCS5ieXRlCTB4Ywk7IERXX0NGQV9kZWZfY2ZhCiAJLmJ5dGUJMHgxCTsgdWxlYjEyOCAweDEKIAkuYnl0ZQkweDAJOyB1bGViMTI4IDB4MAogCS5hbGlnbglMT0cyX0dQUl9CWVRFUwogTEVDSUUxOgotLmdsb2JsIF9mZmlfY2xvc3VyZV9BU00uZWgKKwkuZ2xvYmwgX2ZmaV9jbG9zdXJlX0FTTS5laAogX2ZmaV9jbG9zdXJlX0FTTS5laDoKIExTRkRFMToKIAkuc2V0CUwkc2V0JDEsTEVGREUxLUxBU0ZERTEKQEAgLTI3Myw0NSArNDk5LDc4IEBACiBMQVNGREUxOgogCS5sb25nCUxBU0ZERTEtRUhfZnJhbWUxCTsgRkRFIENJRSBvZmZzZXQKIAkuZ19sb25nCUxMRkIxJG5vbl9sYXp5X3B0ci0uCTsgRkRFIGluaXRpYWwgbG9jYXRpb24KLQkuc2V0CUwkc2V0JDMsTEZFMS1MRkIxCisJLnNldAlMJHNldCQzLExGRTEtTHN0YXJ0Y29kZQogCS5nX2xvbmcJTCRzZXQkMwk7IEZERSBhZGRyZXNzIHJhbmdlCiAJLmJ5dGUgICAweDAgICAgIDsgdWxlYjEyOCAweDA7IEF1Z21lbnRhdGlvbiBzaXplCiAJLmJ5dGUJMHg0CTsgRFdfQ0ZBX2FkdmFuY2VfbG9jNAogCS5zZXQJTCRzZXQkMyxMQ0ZJMS1MQ0ZJMAogCS5sb25nCUwkc2V0JDMKIAkuYnl0ZQkweGUJOyBEV19DRkFfZGVmX2NmYV9vZmZzZXQKLQkuYnl0ZQkxNzYsMQk7IHVsZWIxMjggMTc2CisJLmJ5dGUJRUhfRlJBTUVfT0ZGU0VUQSxFSF9GUkFNRV9PRkZTRVRCCTsgdWxlYjEyOCAxNzYsMS8xOTAsMwogCS5ieXRlCTB4NAk7IERXX0NGQV9hZHZhbmNlX2xvYzQKLQkuc2V0CUwkc2V0JDQsTENGSTAtTEZCMQorCS5zZXQJTCRzZXQkNCxMQ0ZJMC1Mc3RhcnRjb2RlCiAJLmxvbmcJTCRzZXQkNAogCS5ieXRlICAgMHgxMSAgICA7IERXX0NGQV9vZmZzZXRfZXh0ZW5kZWRfc2YKIAkuYnl0ZQkweDQxCTsgdWxlYjEyOCAweDQxCiAJLmJ5dGUgICAweDdlICAgIDsgc2xlYjEyOCAtMgogCS5hbGlnbglMT0cyX0dQUl9CWVRFUwogTEVGREUxOgotLmRhdGEKLQkuYWxpZ24JTE9HMl9HUFJfQllURVMKLUxERkNNMDoKLS5zZWN0aW9uIF9fVEVYVCxfX3BpY3N5bWJvbHN0dWIxLHN5bWJvbF9zdHVicyxwdXJlX2luc3RydWN0aW9ucywzMgotCS5hbGlnbglMT0cyX0dQUl9CWVRFUwotTGZmaV9jbG9zdXJlX2hlbHBlcl9EQVJXSU4kc3R1YjoKLSNpZiAxCisJLmFsaWduIAkxCisKKyNpZmRlZiBXQU5UX1NUVUIKKwkuc2VjdGlvbiBfX1RFWFQsX19waWNzeW1ib2xzdHViMSxzeW1ib2xfc3R1YnMscHVyZV9pbnN0cnVjdGlvbnMsMzIKKwkuYWxpZ24gNQorTF9mZmlfY2xvc3VyZV9oZWxwZXJfREFSV0lOJHN0dWI6CiAJLmluZGlyZWN0X3N5bWJvbCBfZmZpX2Nsb3N1cmVfaGVscGVyX0RBUldJTgotCW1mbHIJcjAKLQliY2wJMjAsMzEsTE8kZmZpX2Nsb3N1cmVfaGVscGVyX0RBUldJTgotTE8kZmZpX2Nsb3N1cmVfaGVscGVyX0RBUldJTjoKLQltZmxyCXIxMQotCWFkZGlzCXIxMSxyMTEsaGExNihMX2ZmaV9jbG9zdXJlX2hlbHBlcl9EQVJXSU4kbGF6eV9wdHIgLSBMTyRmZmlfY2xvc3VyZV9oZWxwZXJfREFSV0lOKQotCW10bHIJcjAKLQlsZ3UJcjEyLGxvMTYoTF9mZmlfY2xvc3VyZV9oZWxwZXJfREFSV0lOJGxhenlfcHRyIC0gTE8kZmZpX2Nsb3N1cmVfaGVscGVyX0RBUldJTikocjExKQotCW10Y3RyCXIxMgorCW1mbHIgcjAKKwliY2wgMjAsMzEsIkwwMDAwMDAwMDAwMSRzcGIiCisiTDAwMDAwMDAwMDAxJHNwYiI6CisJbWZsciByMTEKKwlhZGRpcyByMTEscjExLGhhMTYoTF9mZmlfY2xvc3VyZV9oZWxwZXJfREFSV0lOJGxhenlfcHRyLSJMMDAwMDAwMDAwMDEkc3BiIikKKwltdGxyIHIwCisJbHd6dSByMTIsbG8xNihMX2ZmaV9jbG9zdXJlX2hlbHBlcl9EQVJXSU4kbGF6eV9wdHItIkwwMDAwMDAwMDAwMSRzcGIiKShyMTEpCisJbXRjdHIgcjEyCiAJYmN0cgotLmxhenlfc3ltYm9sX3BvaW50ZXIKKwkubGF6eV9zeW1ib2xfcG9pbnRlcgogTF9mZmlfY2xvc3VyZV9oZWxwZXJfREFSV0lOJGxhenlfcHRyOgogCS5pbmRpcmVjdF9zeW1ib2wgX2ZmaV9jbG9zdXJlX2hlbHBlcl9EQVJXSU4KLQkuZ19sb25nIGR5bGRfc3R1Yl9iaW5kaW5nX2hlbHBlcgorCS5nX2xvbmcJZHlsZF9zdHViX2JpbmRpbmdfaGVscGVyCisKKyNpZiBkZWZpbmVkKF9fcHBjNjRfXykKKwkuc2VjdGlvbiBfX1RFWFQsX19waWNzeW1ib2xzdHViMSxzeW1ib2xfc3R1YnMscHVyZV9pbnN0cnVjdGlvbnMsMzIKKwkuYWxpZ24gNQorTF9kYXJ3aW42NF9zdHJ1Y3RfcmV0X2J5X3ZhbHVlX3Akc3R1YjoKKwkuaW5kaXJlY3Rfc3ltYm9sIF9kYXJ3aW42NF9zdHJ1Y3RfcmV0X2J5X3ZhbHVlX3AKKwltZmxyIHIwCisJYmNsIDIwLDMxLCJMMDAwMDAwMDAwMDIkc3BiIgorIkwwMDAwMDAwMDAwMiRzcGIiOgorCW1mbHIgcjExCisJYWRkaXMgcjExLHIxMSxoYTE2KExfZGFyd2luNjRfc3RydWN0X3JldF9ieV92YWx1ZV9wJGxhenlfcHRyLSJMMDAwMDAwMDAwMDIkc3BiIikKKwltdGxyIHIwCisJbHd6dSByMTIsbG8xNihMX2RhcndpbjY0X3N0cnVjdF9yZXRfYnlfdmFsdWVfcCRsYXp5X3B0ci0iTDAwMDAwMDAwMDAyJHNwYiIpKHIxMSkKKwltdGN0ciByMTIKKwliY3RyCisJLmxhenlfc3ltYm9sX3BvaW50ZXIKK0xfZGFyd2luNjRfc3RydWN0X3JldF9ieV92YWx1ZV9wJGxhenlfcHRyOgorCS5pbmRpcmVjdF9zeW1ib2wgX2RhcndpbjY0X3N0cnVjdF9yZXRfYnlfdmFsdWVfcAorCS5nX2xvbmcJZHlsZF9zdHViX2JpbmRpbmdfaGVscGVyCisKKwkuc2VjdGlvbiBfX1RFWFQsX19waWNzeW1ib2xzdHViMSxzeW1ib2xfc3R1YnMscHVyZV9pbnN0cnVjdGlvbnMsMzIKKwkuYWxpZ24gNQorTF9kYXJ3aW42NF9wYXNzX3N0cnVjdF9mbG9hdHMkc3R1YjoKKwkuaW5kaXJlY3Rfc3ltYm9sIF9kYXJ3aW42NF9wYXNzX3N0cnVjdF9mbG9hdHMKKwltZmxyIHIwCisJYmNsIDIwLDMxLCJMMDAwMDAwMDAwMDMkc3BiIgorIkwwMDAwMDAwMDAwMyRzcGIiOgorCW1mbHIgcjExCisJYWRkaXMgcjExLHIxMSxoYTE2KExfZGFyd2luNjRfcGFzc19zdHJ1Y3RfZmxvYXRzJGxhenlfcHRyLSJMMDAwMDAwMDAwMDMkc3BiIikKKwltdGxyIHIwCisJbHd6dSByMTIsbG8xNihMX2RhcndpbjY0X3Bhc3Nfc3RydWN0X2Zsb2F0cyRsYXp5X3B0ci0iTDAwMDAwMDAwMDAzJHNwYiIpKHIxMSkKKwltdGN0ciByMTIKKwliY3RyCisJLmxhenlfc3ltYm9sX3BvaW50ZXIKK0xfZGFyd2luNjRfcGFzc19zdHJ1Y3RfZmxvYXRzJGxhenlfcHRyOgorCS5pbmRpcmVjdF9zeW1ib2wgX2RhcndpbjY0X3Bhc3Nfc3RydWN0X2Zsb2F0cworCS5nX2xvbmcJZHlsZF9zdHViX2JpbmRpbmdfaGVscGVyCisjICBlbmRpZgogI2VuZGlmCi0uZGF0YQotCS5hbGlnbiBMT0cyX0dQUl9CWVRFUwotTExGQjEkbm9uX2xhenlfcHRyOgotCS5nX2xvbmcgTEZCMQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9mZmkuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvZmZpLmMKaW5kZXggNzU3ODRhOS4uYmFjYTY5NCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9mZmkuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL2ZmaS5jCkBAIC0xLDcgKzEsOSBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgIGZmaS5jIC0gQ29weXJpZ2h0IChjKSAxOTk4IEdlb2ZmcmV5IEtlYXRpbmcKLSAgIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYwotICAgQ29weXJpZ2h0IChDKSAyMDA4IFJlZCBIYXQsIEluYworICAgZmZpLmMgLSBDb3B5cmlnaHQgKEMpIDIwMTEgQW50aG9ueSBHcmVlbgorICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDIwMTEgS3lsZSBNb2ZmZXR0CisgICAgICAgICAgIENvcHlyaWdodCAoQykgMjAwOCBSZWQgSGF0LCBJbmMKKyAgICAgICAgICAgQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jCisJICAgQ29weXJpZ2h0IChjKSAxOTk4IEdlb2ZmcmV5IEtlYXRpbmcKIAogICAgUG93ZXJQQyBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZQogCkBAIC0zOSwzMiArNDEsMjggQEAKICAgLyogVGhlIGFzc2VtYmx5IGRlcGVuZHMgb24gdGhlc2UgZXhhY3QgZmxhZ3MuICAqLwogICBGTEFHX1JFVFVSTlNfU01TVAk9IDEgPDwgKDMxLTMxKSwgLyogVXNlZCBmb3IgRkZJX1NZU1Ygc21hbGwgc3RydWN0cy4gICovCiAgIEZMQUdfUkVUVVJOU19OT1RISU5HICA9IDEgPDwgKDMxLTMwKSwgLyogVGhlc2UgZ28gaW4gY3I3ICovCisjaWZuZGVmIF9fTk9fRlBSU19fCiAgIEZMQUdfUkVUVVJOU19GUCAgICAgICA9IDEgPDwgKDMxLTI5KSwKKyNlbmRpZgogICBGTEFHX1JFVFVSTlNfNjRCSVRTICAgPSAxIDw8ICgzMS0yOCksCiAKICAgRkxBR19SRVRVUk5TXzEyOEJJVFMgID0gMSA8PCAoMzEtMjcpLCAvKiBjcjYgICovCi0gIEZMQUdfU1lTVl9TTVNUX1I0ICAgICA9IDEgPDwgKDMxLTI2KSwgLyogdXNlIHI0IGZvciBGRklfU1lTViA4IGJ5dGUKLQkJCQkJICAgc3RydWN0cy4gICovCi0gIEZMQUdfU1lTVl9TTVNUX1IzICAgICA9IDEgPDwgKDMxLTI1KSwgLyogdXNlIHIzIGZvciBGRklfU1lTViA0IGJ5dGUKLQkJCQkJICAgc3RydWN0cy4gICovCi0gIC8qIEJpdHMgKDMxLTI0KSB0aHJvdWdoICgzMS0xOSkgc3RvcmUgc2hpZnQgdmFsdWUgZm9yIFNNU1QgKi8KIAogICBGTEFHX0FSR19ORUVEU19DT1BZICAgPSAxIDw8ICgzMS0gNyksCisjaWZuZGVmIF9fTk9fRlBSU19fCiAgIEZMQUdfRlBfQVJHVU1FTlRTICAgICA9IDEgPDwgKDMxLSA2KSwgLyogY3IxLmVxOyBzcGVjaWZpZWQgYnkgQUJJICovCisjZW5kaWYKICAgRkxBR180X0dQUl9BUkdVTUVOVFMgID0gMSA8PCAoMzEtIDUpLAogICBGTEFHX1JFVFZBTF9SRUZFUkVOQ0UgPSAxIDw8ICgzMS0gNCkKIH07CiAKIC8qIEFib3V0IHRoZSBTWVNWIEFCSS4gICovCi11bnNpZ25lZCBpbnQgTlVNX0dQUl9BUkdfUkVHSVNURVJTID0gODsKKyNkZWZpbmUgQVNNX05FRURTX1JFR0lTVEVSUyA0CisjZGVmaW5lIE5VTV9HUFJfQVJHX1JFR0lTVEVSUyA4CiAjaWZuZGVmIF9fTk9fRlBSU19fCi11bnNpZ25lZCBpbnQgTlVNX0ZQUl9BUkdfUkVHSVNURVJTID0gODsKLSNlbHNlCi11bnNpZ25lZCBpbnQgTlVNX0ZQUl9BUkdfUkVHSVNURVJTID0gMDsKKyMgZGVmaW5lIE5VTV9GUFJfQVJHX1JFR0lTVEVSUyA4CiAjZW5kaWYKIAotZW51bSB7IEFTTV9ORUVEU19SRUdJU1RFUlMgPSA0IH07Ci0KIC8qIGZmaV9wcmVwX2FyZ3NfU1lTViBpcyBjYWxsZWQgYnkgdGhlIGFzc2VtYmx5IHJvdXRpbmUgb25jZSBzdGFjayBzcGFjZQogICAgaGFzIGJlZW4gYWxsb2NhdGVkIGZvciB0aGUgZnVuY3Rpb24ncyBhcmd1bWVudHMuCiAKQEAgLTExMywxMCArMTExLDEyIEBACiAgIHZhbHAgZ3ByX2Jhc2U7CiAgIGludCBpbnRhcmdfY291bnQ7CiAKKyNpZm5kZWYgX19OT19GUFJTX18KICAgLyogJ2Zwcl9iYXNlJyBwb2ludHMgYXQgdGhlIHNwYWNlIGZvciBmcHIxLCBhbmQgZ3Jvd3MgdXB3YXJkcyBhcwogICAgICB3ZSB1c2UgRlBSIHJlZ2lzdGVycy4gICovCiAgIHZhbHAgZnByX2Jhc2U7CiAgIGludCBmcGFyZ19jb3VudDsKKyNlbmRpZgogCiAgIC8qICdjb3B5X3NwYWNlJyBncm93cyBkb3duIGFzIHdlIHB1dCBzdHJ1Y3R1cmVzIGluIGl0LiAgSXQgc2hvdWxkCiAgICAgIHN0YXkgMTYtYnl0ZSBhbGlnbmVkLiAgKi8KQEAgLTEyNSw5ICsxMjUsOCBAQAogICAvKiAnbmV4dF9hcmcnIGdyb3dzIHVwIGFzIHdlIHB1dCBwYXJhbWV0ZXJzIGluIGl0LiAgKi8KICAgdmFscCBuZXh0X2FyZzsKIAotICBpbnQgaSwgaWkgTUFZQkVfVU5VU0VEOworICBpbnQgaTsKICAgZmZpX3R5cGUgKipwdHI7Ci0gIGRvdWJsZSBkb3VibGVfdG1wOwogICB1bmlvbiB7CiAgICAgdm9pZCAqKnY7CiAgICAgY2hhciAqKmM7CkBAIC0xNDMsMjEgKzE0MiwyMyBAQAogICBzaXplX3Qgc3RydWN0X2NvcHlfc2l6ZTsKICAgdW5zaWduZWQgZ3BydmFsdWU7CiAKLSAgaWYgKGVjaWYtPmNpZi0+YWJpID09IEZGSV9MSU5VWF9TT0ZUX0ZMT0FUKQotICAgIE5VTV9GUFJfQVJHX1JFR0lTVEVSUyA9IDA7Ci0KICAgc3RhY2t0b3AuYyA9IChjaGFyICopIHN0YWNrICsgYnl0ZXM7CiAgIGdwcl9iYXNlLnUgPSBzdGFja3RvcC51IC0gQVNNX05FRURTX1JFR0lTVEVSUyAtIE5VTV9HUFJfQVJHX1JFR0lTVEVSUzsKICAgaW50YXJnX2NvdW50ID0gMDsKKyNpZm5kZWYgX19OT19GUFJTX18KKyAgZG91YmxlIGRvdWJsZV90bXA7CiAgIGZwcl9iYXNlLmQgPSBncHJfYmFzZS5kIC0gTlVNX0ZQUl9BUkdfUkVHSVNURVJTOwogICBmcGFyZ19jb3VudCA9IDA7CiAgIGNvcHlfc3BhY2UuYyA9ICgoZmxhZ3MgJiBGTEFHX0ZQX0FSR1VNRU5UUykgPyBmcHJfYmFzZS5jIDogZ3ByX2Jhc2UuYyk7CisjZWxzZQorICBjb3B5X3NwYWNlLmMgPSBncHJfYmFzZS5jOworI2VuZGlmCiAgIG5leHRfYXJnLnUgPSBzdGFjayArIDI7CiAKICAgLyogQ2hlY2sgdGhhdCBldmVyeXRoaW5nIHN0YXJ0cyBhbGlnbmVkIHByb3Blcmx5LiAgKi8KLSAgRkZJX0FTU0VSVCAoKCh1bnNpZ25lZCkgKGNoYXIgKikgc3RhY2sgJiAweEYpID09IDApOwotICBGRklfQVNTRVJUICgoKHVuc2lnbmVkKSBjb3B5X3NwYWNlLmMgJiAweEYpID09IDApOwotICBGRklfQVNTRVJUICgoKHVuc2lnbmVkKSBzdGFja3RvcC5jICYgMHhGKSA9PSAwKTsKKyAgRkZJX0FTU0VSVCAoKCh1bnNpZ25lZCBsb25nKSAoY2hhciAqKSBzdGFjayAmIDB4RikgPT0gMCk7CisgIEZGSV9BU1NFUlQgKCgodW5zaWduZWQgbG9uZykgY29weV9zcGFjZS5jICYgMHhGKSA9PSAwKTsKKyAgRkZJX0FTU0VSVCAoKCh1bnNpZ25lZCBsb25nKSBzdGFja3RvcC5jICYgMHhGKSA9PSAwKTsKICAgRkZJX0FTU0VSVCAoKGJ5dGVzICYgMHhGKSA9PSAwKTsKICAgRkZJX0FTU0VSVCAoY29weV9zcGFjZS5jID49IG5leHRfYXJnLmMpOwogCkBAIC0xNzQsMTIgKzE3NSwyOCBAQAogICAgICAgIGkgPiAwOwogICAgICAgIGktLSwgcHRyKyssIHBfYXJndi52KyspCiAgICAgewotICAgICAgc3dpdGNoICgoKnB0ciktPnR5cGUpCi0JeworICAgICAgdW5zaWduZWQgc2hvcnQgdHlwZW51bSA9ICgqcHRyKS0+dHlwZTsKKworICAgICAgLyogV2UgbWF5IG5lZWQgdG8gaGFuZGxlIHNvbWUgdmFsdWVzIGRlcGVuZGluZyBvbiBBQkkgKi8KKyAgICAgIGlmIChlY2lmLT5jaWYtPmFiaSA9PSBGRklfTElOVVhfU09GVF9GTE9BVCkgeworCQlpZiAodHlwZW51bSA9PSBGRklfVFlQRV9GTE9BVCkKKwkJCXR5cGVudW0gPSBGRklfVFlQRV9VSU5UMzI7CisJCWlmICh0eXBlbnVtID09IEZGSV9UWVBFX0RPVUJMRSkKKwkJCXR5cGVudW0gPSBGRklfVFlQRV9VSU5UNjQ7CisJCWlmICh0eXBlbnVtID09IEZGSV9UWVBFX0xPTkdET1VCTEUpCisJCQl0eXBlbnVtID0gRkZJX1RZUEVfVUlOVDEyODsKKyAgICAgIH0gZWxzZSBpZiAoZWNpZi0+Y2lmLT5hYmkgIT0gRkZJX0xJTlVYKSB7CisjaWYgRkZJX1RZUEVfTE9OR0RPVUJMRSAhPSBGRklfVFlQRV9ET1VCTEUKKwkJaWYgKHR5cGVudW0gPT0gRkZJX1RZUEVfTE9OR0RPVUJMRSkKKwkJCXR5cGVudW0gPSBGRklfVFlQRV9TVFJVQ1Q7CisjZW5kaWYKKyAgICAgIH0KKworICAgICAgLyogTm93IHRlc3QgdGhlIHRyYW5zbGF0ZWQgdmFsdWUgKi8KKyAgICAgIHN3aXRjaCAodHlwZW51bSkgeworI2lmbmRlZiBfX05PX0ZQUlNfXwogCWNhc2UgRkZJX1RZUEVfRkxPQVQ6CiAJICAvKiBXaXRoIEZGSV9MSU5VWF9TT0ZUX0ZMT0FUIGZsb2F0cyBhcmUgaGFuZGxlZCBsaWtlIFVJTlQzMi4gICovCi0JICBpZiAoZWNpZi0+Y2lmLT5hYmkgPT0gRkZJX0xJTlVYX1NPRlRfRkxPQVQpCi0JICAgIGdvdG8gc29mdF9mbG9hdF9wcmVwOwogCSAgZG91YmxlX3RtcCA9ICoqcF9hcmd2LmY7CiAJICBpZiAoZnBhcmdfY291bnQgPj0gTlVNX0ZQUl9BUkdfUkVHSVNURVJTKQogCSAgICB7CkBAIC0xOTUsOCArMjEyLDYgQEAKIAogCWNhc2UgRkZJX1RZUEVfRE9VQkxFOgogCSAgLyogV2l0aCBGRklfTElOVVhfU09GVF9GTE9BVCBkb3VibGVzIGFyZSBoYW5kbGVkIGxpa2UgVUlOVDY0LiAgKi8KLQkgIGlmIChlY2lmLT5jaWYtPmFiaSA9PSBGRklfTElOVVhfU09GVF9GTE9BVCkKLQkgICAgZ290byBzb2Z0X2RvdWJsZV9wcmVwOwogCSAgZG91YmxlX3RtcCA9ICoqcF9hcmd2LmQ7CiAKIAkgIGlmIChmcGFyZ19jb3VudCA+PSBOVU1fRlBSX0FSR19SRUdJU1RFUlMpCkBAIC0yMTgsNDMgKzIzMyw2IEBACiAKICNpZiBGRklfVFlQRV9MT05HRE9VQkxFICE9IEZGSV9UWVBFX0RPVUJMRQogCWNhc2UgRkZJX1RZUEVfTE9OR0RPVUJMRToKLQkgIGlmICgoZWNpZi0+Y2lmLT5hYmkgIT0gRkZJX0xJTlVYKQotCQkmJiAoZWNpZi0+Y2lmLT5hYmkgIT0gRkZJX0xJTlVYX1NPRlRfRkxPQVQpKQotCSAgICBnb3RvIGRvX3N0cnVjdDsKLQkgIC8qIFRoZSBzb2Z0IGZsb2F0IEFCSSBmb3IgbG9uZyBkb3VibGVzIHdvcmtzIGxpa2UgdGhpcywKLQkgICAgIGEgbG9uZyBkb3VibGUgaXMgcGFzc2VkIGluIGZvdXIgY29uc2VjdXRpdmUgZ3BycyBpZiBhdmFpbGFibGUuCi0JICAgICBBIG1heGltdW0gb2YgMiBsb25nIGRvdWJsZXMgY2FuIGJlIHBhc3NlZCBpbiBncHJzLgotCSAgICAgSWYgd2UgZG8gbm90IGhhdmUgNCBncHJzIGxlZnQsIHRoZSBsb25nIGRvdWJsZSBpcyBwYXNzZWQgb24gdGhlCi0JICAgICBzdGFjaywgNC1ieXRlIGFsaWduZWQuICAqLwotCSAgaWYgKGVjaWYtPmNpZi0+YWJpID09IEZGSV9MSU5VWF9TT0ZUX0ZMT0FUKQotCSAgICB7Ci0JICAgICAgdW5zaWduZWQgaW50IGludF90bXAgPSAoKnBfYXJndi51aSlbMF07Ci0JICAgICAgaWYgKGludGFyZ19jb3VudCA+PSBOVU1fR1BSX0FSR19SRUdJU1RFUlMgLSAzKQotCQl7Ci0JCSAgaWYgKGludGFyZ19jb3VudCA8IE5VTV9HUFJfQVJHX1JFR0lTVEVSUykKLQkJICAgIGludGFyZ19jb3VudCArPSBOVU1fR1BSX0FSR19SRUdJU1RFUlMgLSBpbnRhcmdfY291bnQ7Ci0JCSAgKm5leHRfYXJnLnUgPSBpbnRfdG1wOwotCQkgIG5leHRfYXJnLnUrKzsKLQkJICBmb3IgKGlpID0gMTsgaWkgPCA0OyBpaSsrKQotCQkgICAgewotCQkgICAgICBpbnRfdG1wID0gKCpwX2FyZ3YudWkpW2lpXTsKLQkJICAgICAgKm5leHRfYXJnLnUgPSBpbnRfdG1wOwotCQkgICAgICBuZXh0X2FyZy51Kys7Ci0JCSAgICB9Ci0JCX0KLQkgICAgICBlbHNlCi0JCXsKLQkJICAqZ3ByX2Jhc2UudSsrID0gaW50X3RtcDsKLQkJICBmb3IgKGlpID0gMTsgaWkgPCA0OyBpaSsrKQotCQkgICAgewotCQkgICAgICBpbnRfdG1wID0gKCpwX2FyZ3YudWkpW2lpXTsKLQkJICAgICAgKmdwcl9iYXNlLnUrKyA9IGludF90bXA7Ci0JCSAgICB9Ci0JCX0KLQkgICAgICBpbnRhcmdfY291bnQgKz00OwotCSAgICB9Ci0JICBlbHNlCi0JICAgIHsKIAkgICAgICBkb3VibGVfdG1wID0gKCpwX2FyZ3YuZClbMF07CiAKIAkgICAgICBpZiAoZnBhcmdfY291bnQgPj0gTlVNX0ZQUl9BUkdfUkVHSVNURVJTIC0gMSkKQEAgLTI4MCwxMyArMjU4LDQwIEBACiAKIAkgICAgICBmcGFyZ19jb3VudCArPSAyOwogCSAgICAgIEZGSV9BU1NFUlQgKGZsYWdzICYgRkxBR19GUF9BUkdVTUVOVFMpOwotCSAgICB9CiAJICBicmVhazsKICNlbmRpZgorI2VuZGlmIC8qIGhhdmUgRlBScyAqLworCisJLyoKKwkgKiBUaGUgc29mdCBmbG9hdCBBQkkgZm9yIGxvbmcgZG91YmxlcyB3b3JrcyBsaWtlIHRoaXMsIGEgbG9uZyBkb3VibGUKKwkgKiBpcyBwYXNzZWQgaW4gZm91ciBjb25zZWN1dGl2ZSBHUFJzIGlmIGF2YWlsYWJsZS4gIEEgbWF4aW11bSBvZiAyCisJICogbG9uZyBkb3VibGVzIGNhbiBiZSBwYXNzZWQgaW4gZ3Bycy4gIElmIHdlIGRvIG5vdCBoYXZlIDQgR1BScworCSAqIGxlZnQsIHRoZSBsb25nIGRvdWJsZSBpcyBwYXNzZWQgb24gdGhlIHN0YWNrLCA0LWJ5dGUgYWxpZ25lZC4KKwkgKi8KKwljYXNlIEZGSV9UWVBFX1VJTlQxMjg6IHsKKwkJdW5zaWduZWQgaW50IGludF90bXAgPSAoKnBfYXJndi51aSlbMF07CisJCXVuc2lnbmVkIGludCBpaTsKKwkJaWYgKGludGFyZ19jb3VudCA+PSBOVU1fR1BSX0FSR19SRUdJU1RFUlMgLSAzKSB7CisJCQlpZiAoaW50YXJnX2NvdW50IDwgTlVNX0dQUl9BUkdfUkVHSVNURVJTKQorCQkJCWludGFyZ19jb3VudCArPSBOVU1fR1BSX0FSR19SRUdJU1RFUlMgLSBpbnRhcmdfY291bnQ7CisJCQkqKG5leHRfYXJnLnUrKykgPSBpbnRfdG1wOworCQkJZm9yIChpaSA9IDE7IGlpIDwgNDsgaWkrKykgeworCQkJCWludF90bXAgPSAoKnBfYXJndi51aSlbaWldOworCQkJCSoobmV4dF9hcmcudSsrKSA9IGludF90bXA7CisJCQl9CisJCX0gZWxzZSB7CisJCQkqKGdwcl9iYXNlLnUrKykgPSBpbnRfdG1wOworCQkJZm9yIChpaSA9IDE7IGlpIDwgNDsgaWkrKykgeworCQkJCWludF90bXAgPSAoKnBfYXJndi51aSlbaWldOworCQkJCSooZ3ByX2Jhc2UudSsrKSA9IGludF90bXA7CisJCQl9CisJCX0KKwkJaW50YXJnX2NvdW50ICs9IDQ7CisJCWJyZWFrOworCX0KIAogCWNhc2UgRkZJX1RZUEVfVUlOVDY0OgogCWNhc2UgRkZJX1RZUEVfU0lOVDY0OgotCXNvZnRfZG91YmxlX3ByZXA6CiAJICBpZiAoaW50YXJnX2NvdW50ID09IE5VTV9HUFJfQVJHX1JFR0lTVEVSUy0xKQogCSAgICBpbnRhcmdfY291bnQrKzsKIAkgIGlmIChpbnRhcmdfY291bnQgPj0gTlVNX0dQUl9BUkdfUkVHSVNURVJTKQpAQCAtMzE5LDkgKzMyNCw2IEBACiAJICBicmVhazsKIAogCWNhc2UgRkZJX1RZUEVfU1RSVUNUOgotI2lmIEZGSV9UWVBFX0xPTkdET1VCTEUgIT0gRkZJX1RZUEVfRE9VQkxFCi0JZG9fc3RydWN0OgotI2VuZGlmCiAJICBzdHJ1Y3RfY29weV9zaXplID0gKCgqcHRyKS0+c2l6ZSArIDE1KSAmIH4weEY7CiAJICBjb3B5X3NwYWNlLmMgLT0gc3RydWN0X2NvcHlfc2l6ZTsKIAkgIG1lbWNweSAoY29weV9zcGFjZS5jLCAqcF9hcmd2LmMsICgqcHRyKS0+c2l6ZSk7CkBAIC0zNDksNyArMzUxLDYgQEAKIAljYXNlIEZGSV9UWVBFX1VJTlQzMjoKIAljYXNlIEZGSV9UWVBFX1NJTlQzMjoKIAljYXNlIEZGSV9UWVBFX1BPSU5URVI6Ci0Jc29mdF9mbG9hdF9wcmVwOgogCiAJICBncHJ2YWx1ZSA9ICoqcF9hcmd2LnVpOwogCkBAIC0zNjYsOCArMzY3LDEwIEBACiAgIC8qIENoZWNrIHRoYXQgd2UgZGlkbid0IG92ZXJydW4gdGhlIHN0YWNrLi4uICAqLwogICBGRklfQVNTRVJUIChjb3B5X3NwYWNlLmMgPj0gbmV4dF9hcmcuYyk7CiAgIEZGSV9BU1NFUlQgKGdwcl9iYXNlLnUgPD0gc3RhY2t0b3AudSAtIEFTTV9ORUVEU19SRUdJU1RFUlMpOworI2lmbmRlZiBfX05PX0ZQUlNfXwogICBGRklfQVNTRVJUIChmcHJfYmFzZS51CiAJICAgICAgPD0gc3RhY2t0b3AudSAtIEFTTV9ORUVEU19SRUdJU1RFUlMgLSBOVU1fR1BSX0FSR19SRUdJU1RFUlMpOworI2VuZGlmCiAgIEZGSV9BU1NFUlQgKGZsYWdzICYgRkxBR180X0dQUl9BUkdVTUVOVFMgfHwgaW50YXJnX2NvdW50IDw9IDQpOwogfQogCkBAIC02MDQsOSArNjA3LDYgQEAKICAgdW5zaWduZWQgdHlwZSA9IGNpZi0+cnR5cGUtPnR5cGU7CiAgIHVuc2lnbmVkIHNpemUgPSBjaWYtPnJ0eXBlLT5zaXplOwogCi0gIGlmIChjaWYtPmFiaSA9PSBGRklfTElOVVhfU09GVF9GTE9BVCkKLSAgICBOVU1fRlBSX0FSR19SRUdJU1RFUlMgPSAwOwotCiAgIGlmIChjaWYtPmFiaSAhPSBGRklfTElOVVg2NCkKICAgICB7CiAgICAgICAvKiBBbGwgdGhlIG1hY2hpbmUtaW5kZXBlbmRlbnQgY2FsY3VsYXRpb24gb2YgY2lmLT5ieXRlcyB3aWxsIGJlIHdyb25nLgpAQCAtNjQ2LDYyICs2NDYsNTYgQEAKICAgICAgLSBTaW5nbGUvZG91YmxlIEZQIHZhbHVlcyBpbiBmcHIxLCBsb25nIGRvdWJsZSBpbiBmcHIxLGZwcjIuCiAgICAgIC0gc29mdC1mbG9hdCBmbG9hdC9kb3VibGVzIGFyZSB0cmVhdGVkIGFzIFVJTlQzMi9VSU5UNjQgcmVzcGVjdGl2bGV5LgogICAgICAtIHNvZnQtZmxvYXQgbG9uZyBkb3VibGVzIGFyZSByZXR1cm5lZCBpbiBncHIzLWdwcjYuICAqLworICAvKiBGaXJzdCB0cmFuc2xhdGUgZm9yIHNvZnRmbG9hdC9ub25saW51eCAqLworICBpZiAoY2lmLT5hYmkgPT0gRkZJX0xJTlVYX1NPRlRfRkxPQVQpIHsKKwlpZiAodHlwZSA9PSBGRklfVFlQRV9GTE9BVCkKKwkJdHlwZSA9IEZGSV9UWVBFX1VJTlQzMjsKKwlpZiAodHlwZSA9PSBGRklfVFlQRV9ET1VCTEUpCisJCXR5cGUgPSBGRklfVFlQRV9VSU5UNjQ7CisJaWYgKHR5cGUgPT0gRkZJX1RZUEVfTE9OR0RPVUJMRSkKKwkJdHlwZSA9IEZGSV9UWVBFX1VJTlQxMjg7CisgIH0gZWxzZSBpZiAoY2lmLT5hYmkgIT0gRkZJX0xJTlVYICYmIGNpZi0+YWJpICE9IEZGSV9MSU5VWDY0KSB7CisjaWYgRkZJX1RZUEVfTE9OR0RPVUJMRSAhPSBGRklfVFlQRV9ET1VCTEUKKwlpZiAodHlwZSA9PSBGRklfVFlQRV9MT05HRE9VQkxFKQorCQl0eXBlID0gRkZJX1RZUEVfU1RSVUNUOworI2VuZGlmCisgIH0KKwogICBzd2l0Y2ggKHR5cGUpCiAgICAgewotI2lmIEZGSV9UWVBFX0xPTkdET1VCTEUgIT0gRkZJX1RZUEVfRE9VQkxFCisjaWZuZGVmIF9fTk9fRlBSU19fCiAgICAgY2FzZSBGRklfVFlQRV9MT05HRE9VQkxFOgotICAgICAgaWYgKGNpZi0+YWJpICE9IEZGSV9MSU5VWCAmJiBjaWYtPmFiaSAhPSBGRklfTElOVVg2NAotCSYmIGNpZi0+YWJpICE9IEZGSV9MSU5VWF9TT0ZUX0ZMT0FUKQotCWdvdG8gYnlyZWY7CiAgICAgICBmbGFncyB8PSBGTEFHX1JFVFVSTlNfMTI4QklUUzsKICAgICAgIC8qIEZhbGwgdGhyb3VnaC4gICovCi0jZW5kaWYKICAgICBjYXNlIEZGSV9UWVBFX0RPVUJMRToKICAgICAgIGZsYWdzIHw9IEZMQUdfUkVUVVJOU182NEJJVFM7CiAgICAgICAvKiBGYWxsIHRocm91Z2guICAqLwogICAgIGNhc2UgRkZJX1RZUEVfRkxPQVQ6Ci0gICAgICAvKiBXaXRoIEZGSV9MSU5VWF9TT0ZUX0ZMT0FUIG5vIGZwIHJlZ2lzdGVycyBhcmUgdXNlZC4gICovCi0gICAgICBpZiAoY2lmLT5hYmkgIT0gRkZJX0xJTlVYX1NPRlRfRkxPQVQpCi0JZmxhZ3MgfD0gRkxBR19SRVRVUk5TX0ZQOworICAgICAgZmxhZ3MgfD0gRkxBR19SRVRVUk5TX0ZQOwogICAgICAgYnJlYWs7CisjZW5kaWYKIAorICAgIGNhc2UgRkZJX1RZUEVfVUlOVDEyODoKKyAgICAgIGZsYWdzIHw9IEZMQUdfUkVUVVJOU18xMjhCSVRTOworICAgICAgLyogRmFsbCB0aHJvdWdoLiAgKi8KICAgICBjYXNlIEZGSV9UWVBFX1VJTlQ2NDoKICAgICBjYXNlIEZGSV9UWVBFX1NJTlQ2NDoKICAgICAgIGZsYWdzIHw9IEZMQUdfUkVUVVJOU182NEJJVFM7CiAgICAgICBicmVhazsKIAogICAgIGNhc2UgRkZJX1RZUEVfU1RSVUNUOgotICAgICAgaWYgKGNpZi0+YWJpID09IEZGSV9TWVNWKQotCXsKLQkgIC8qIFRoZSBmaW5hbCBTWVNWIEFCSSBzYXlzIHRoYXQgc3RydWN0dXJlcyBzbWFsbGVyIG9yIGVxdWFsIDggYnl0ZXMKLQkgICAgIGFyZSByZXR1cm5lZCBpbiByMy9yNC4gVGhlIEZGSV9HQ0NfU1lTViBBQkkgaW5zdGVhZCByZXR1cm5zIHRoZW0KLQkgICAgIGluIG1lbW9yeS4gICovCi0KLQkgIC8qIFRyZWF0IHN0cnVjdHMgd2l0aCBzaXplIDw9IDggYnl0ZXMuICAqLwotCSAgaWYgKHNpemUgPD0gOCkKLQkgICAgewotCSAgICAgIGZsYWdzIHw9IEZMQUdfUkVUVVJOU19TTVNUOwotCSAgICAgIC8qIFRoZXNlIHN0cnVjdHMgYXJlIHJldHVybmVkIGluIHIzLiBXZSBwYWNrIHRoZSB0eXBlIGFuZCB0aGUKLQkJIHByZWNhbGN1bGF0ZWQgc2hpZnQgdmFsdWUgKG5lZWRlZCBpbiB0aGUgc3lzdi5TKSBpbnRvIGZsYWdzLgotCQkgVGhlIHNhbWUgYXBwbGllcyBmb3IgdGhlIHN0cnVjdHMgcmV0dXJuZWQgaW4gcjMvcjQuICAqLwotCSAgICAgIGlmIChzaXplIDw9IDQpCi0JCXsKLQkJICBmbGFncyB8PSBGTEFHX1NZU1ZfU01TVF9SMzsKLQkJICBmbGFncyB8PSA4ICogKDQgLSBzaXplKSA8PCA4OwotCQkgIGJyZWFrOwotCQl9Ci0JICAgICAgLyogVGhlc2Ugc3RydWN0cyBhcmUgcmV0dXJuZWQgaW4gcjMgYW5kIHI0LiBTZWUgYWJvdmUuICAgKi8KLQkgICAgICBpZiAgKHNpemUgPD0gOCkKLQkJewotCQkgIGZsYWdzIHw9IEZMQUdfU1lTVl9TTVNUX1IzIHwgRkxBR19TWVNWX1NNU1RfUjQ7Ci0JCSAgZmxhZ3MgfD0gOCAqICg4IC0gc2l6ZSkgPDwgODsKLQkJICBicmVhazsKLQkJfQotCSAgICB9Ci0JfQotI2lmIEZGSV9UWVBFX0xPTkdET1VCTEUgIT0gRkZJX1RZUEVfRE9VQkxFCi0gICAgYnlyZWY6Ci0jZW5kaWYKKyAgICAgIC8qCisgICAgICAgKiBUaGUgZmluYWwgU1lTViBBQkkgc2F5cyB0aGF0IHN0cnVjdHVyZXMgc21hbGxlciBvciBlcXVhbCA4IGJ5dGVzCisgICAgICAgKiBhcmUgcmV0dXJuZWQgaW4gcjMvcjQuIFRoZSBGRklfR0NDX1NZU1YgQUJJIGluc3RlYWQgcmV0dXJucyB0aGVtCisgICAgICAgKiBpbiBtZW1vcnkuCisgICAgICAgKgorICAgICAgICogTk9URTogVGhlIGFzc2VtYmx5IGNvZGUgY2FuIHNhZmVseSBhc3N1bWUgdGhhdCBpdCBqdXN0IG5lZWRzIHRvCisgICAgICAgKiAgICAgICBzdG9yZSBib3RoIHIzIGFuZCByNCBpbnRvIGEgOC1ieXRlIHdvcmQtYWxpZ25lZCBidWZmZXIsIGFzCisgICAgICAgKiAgICAgICB3ZSBhbGxvY2F0ZSBhIHRlbXBvcmFyeSBidWZmZXIgaW4gZmZpX2NhbGwoKSBpZiB0aGlzIGZsYWcgaXMKKyAgICAgICAqICAgICAgIHNldC4KKyAgICAgICAqLworICAgICAgaWYgKGNpZi0+YWJpID09IEZGSV9TWVNWICYmIHNpemUgPD0gOCkKKwlmbGFncyB8PSBGTEFHX1JFVFVSTlNfU01TVDsKICAgICAgIGludGFyZ19jb3VudCsrOwogICAgICAgZmxhZ3MgfD0gRkxBR19SRVRWQUxfUkVGRVJFTkNFOwogICAgICAgLyogRmFsbCB0aHJvdWdoLiAgKi8KQEAgLTcyMiwzOSArNzE2LDM2IEBACiAgICAgICAgU3R1ZmYgb24gdGhlIHN0YWNrIG5lZWRzIHRvIGtlZXAgcHJvcGVyIGFsaWdubWVudC4gICovCiAgICAgZm9yIChwdHIgPSBjaWYtPmFyZ190eXBlcywgaSA9IGNpZi0+bmFyZ3M7IGkgPiAwOyBpLS0sIHB0cisrKQogICAgICAgewotCXN3aXRjaCAoKCpwdHIpLT50eXBlKQotCSAgeworCXVuc2lnbmVkIHNob3J0IHR5cGVudW0gPSAoKnB0ciktPnR5cGU7CisKKwkvKiBXZSBtYXkgbmVlZCB0byBoYW5kbGUgc29tZSB2YWx1ZXMgZGVwZW5kaW5nIG9uIEFCSSAqLworCWlmIChjaWYtPmFiaSA9PSBGRklfTElOVVhfU09GVF9GTE9BVCkgeworCQlpZiAodHlwZW51bSA9PSBGRklfVFlQRV9GTE9BVCkKKwkJCXR5cGVudW0gPSBGRklfVFlQRV9VSU5UMzI7CisJCWlmICh0eXBlbnVtID09IEZGSV9UWVBFX0RPVUJMRSkKKwkJCXR5cGVudW0gPSBGRklfVFlQRV9VSU5UNjQ7CisJCWlmICh0eXBlbnVtID09IEZGSV9UWVBFX0xPTkdET1VCTEUpCisJCQl0eXBlbnVtID0gRkZJX1RZUEVfVUlOVDEyODsKKwl9IGVsc2UgaWYgKGNpZi0+YWJpICE9IEZGSV9MSU5VWCAmJiBjaWYtPmFiaSAhPSBGRklfTElOVVg2NCkgeworI2lmIEZGSV9UWVBFX0xPTkdET1VCTEUgIT0gRkZJX1RZUEVfRE9VQkxFCisJCWlmICh0eXBlbnVtID09IEZGSV9UWVBFX0xPTkdET1VCTEUpCisJCQl0eXBlbnVtID0gRkZJX1RZUEVfU1RSVUNUOworI2VuZGlmCisJfQorCisJc3dpdGNoICh0eXBlbnVtKSB7CisjaWZuZGVmIF9fTk9fRlBSU19fCiAJICBjYXNlIEZGSV9UWVBFX0ZMT0FUOgotCSAgICAvKiBXaXRoIEZGSV9MSU5VWF9TT0ZUX0ZMT0FUIGZsb2F0cyBhcmUgaGFuZGxlZCBsaWtlIFVJTlQzMi4gICovCi0JICAgIGlmIChjaWYtPmFiaSA9PSBGRklfTElOVVhfU09GVF9GTE9BVCkKLQkgICAgICBnb3RvIHNvZnRfZmxvYXRfY2lmOwogCSAgICBmcGFyZ19jb3VudCsrOwogCSAgICAvKiBmbG9hdGluZyBzaW5nbGVzIGFyZSBub3QgOC1hbGlnbmVkIG9uIHN0YWNrICovCiAJICAgIGJyZWFrOwogCiAjaWYgRkZJX1RZUEVfTE9OR0RPVUJMRSAhPSBGRklfVFlQRV9ET1VCTEUKIAkgIGNhc2UgRkZJX1RZUEVfTE9OR0RPVUJMRToKLQkgICAgaWYgKGNpZi0+YWJpICE9IEZGSV9MSU5VWCAmJiBjaWYtPmFiaSAhPSBGRklfTElOVVhfU09GVF9GTE9BVCkKLQkgICAgICBnb3RvIGRvX3N0cnVjdDsKLQkgICAgaWYgKGNpZi0+YWJpID09IEZGSV9MSU5VWF9TT0ZUX0ZMT0FUKQotCSAgICAgIHsKLQkJaWYgKGludGFyZ19jb3VudCA+PSBOVU1fR1BSX0FSR19SRUdJU1RFUlMgLSAzCi0JCSAgfHwgaW50YXJnX2NvdW50IDwgTlVNX0dQUl9BUkdfUkVHSVNURVJTKQotCQkgIC8qIEEgbG9uZyBkb3VibGUgaW4gRkZJX0xJTlVYX1NPRlRfRkxPQVQgY2FuIHVzZSBvbmx5Ci0JCSAgICAgYSBzZXQgb2YgZm91ciBjb25zZWN1dGl2ZSBncHJzLiBJZiB3ZSBoYXZlIG5vdCBlbm91Z2gsCi0JCSAgICAgd2UgaGF2ZSB0byBhZGp1c3QgdGhlIGludGFyZ19jb3VudCB2YWx1ZS4gICovCi0JCSAgaW50YXJnX2NvdW50ICs9IE5VTV9HUFJfQVJHX1JFR0lTVEVSUyAtIGludGFyZ19jb3VudDsKLQkJaW50YXJnX2NvdW50ICs9IDQ7Ci0JCWJyZWFrOwotCSAgICAgIH0KLQkgICAgZWxzZQotCSAgICAgIGZwYXJnX2NvdW50Kys7CisJICAgIGZwYXJnX2NvdW50Kys7CiAJICAgIC8qIEZhbGwgdGhydSAqLwogI2VuZGlmCiAJICBjYXNlIEZGSV9UWVBFX0RPVUJMRToKLQkgICAgLyogV2l0aCBGRklfTElOVVhfU09GVF9GTE9BVCBkb3VibGVzIGFyZSBoYW5kbGVkIGxpa2UgVUlOVDY0LiAgKi8KLQkgICAgaWYgKGNpZi0+YWJpID09IEZGSV9MSU5VWF9TT0ZUX0ZMT0FUKQotCSAgICAgIGdvdG8gc29mdF9kb3VibGVfY2lmOwogCSAgICBmcGFyZ19jb3VudCsrOwogCSAgICAvKiBJZiB0aGlzIEZQIGFyZyBpcyBnb2luZyBvbiB0aGUgc3RhY2ssIGl0IG11c3QgYmUKIAkgICAgICAgOC1ieXRlLWFsaWduZWQuICAqLwpAQCAtNzYzLDEwICs3NTQsMjEgQEAKIAkJJiYgaW50YXJnX2NvdW50ICUgMiAhPSAwKQogCSAgICAgIGludGFyZ19jb3VudCsrOwogCSAgICBicmVhazsKKyNlbmRpZgorCSAgY2FzZSBGRklfVFlQRV9VSU5UMTI4OgorCQkvKgorCQkgKiBBIGxvbmcgZG91YmxlIGluIEZGSV9MSU5VWF9TT0ZUX0ZMT0FUIGNhbiB1c2Ugb25seSBhIHNldAorCQkgKiBvZiBmb3VyIGNvbnNlY3V0aXZlIGdwcnMuIElmIHdlIGRvIG5vdCBoYXZlIGVub3VnaCwgd2UKKwkJICogaGF2ZSB0byBhZGp1c3QgdGhlIGludGFyZ19jb3VudCB2YWx1ZS4KKwkJICovCisJCWlmIChpbnRhcmdfY291bnQgPj0gTlVNX0dQUl9BUkdfUkVHSVNURVJTIC0gMworCQkJCSYmIGludGFyZ19jb3VudCA8IE5VTV9HUFJfQVJHX1JFR0lTVEVSUykKKwkJCWludGFyZ19jb3VudCA9IE5VTV9HUFJfQVJHX1JFR0lTVEVSUzsKKwkJaW50YXJnX2NvdW50ICs9IDQ7CisJCWJyZWFrOwogCiAJICBjYXNlIEZGSV9UWVBFX1VJTlQ2NDoKIAkgIGNhc2UgRkZJX1RZUEVfU0lOVDY0OgotCSAgc29mdF9kb3VibGVfY2lmOgogCSAgICAvKiAnbG9uZyBsb25nJyBhcmd1bWVudHMgYXJlIHBhc3NlZCBhcyB0d28gd29yZHMsIGJ1dAogCSAgICAgICBlaXRoZXIgYm90aCB3b3JkcyBtdXN0IGZpdCBpbiByZWdpc3RlcnMgb3IgYm90aCBnbwogCSAgICAgICBvbiB0aGUgc3RhY2suICBJZiB0aGV5IGdvIG9uIHRoZSBzdGFjaywgdGhleSBtdXN0CkBAIC03ODMsOSArNzg1LDYgQEAKIAkgICAgYnJlYWs7CiAKIAkgIGNhc2UgRkZJX1RZUEVfU1RSVUNUOgotI2lmIEZGSV9UWVBFX0xPTkdET1VCTEUgIT0gRkZJX1RZUEVfRE9VQkxFCi0JICBkb19zdHJ1Y3Q6Ci0jZW5kaWYKIAkgICAgLyogV2UgbXVzdCBhbGxvY2F0ZSBzcGFjZSBmb3IgYSBjb3B5IG9mIHRoZXNlIHRvIGVuZm9yY2UKIAkgICAgICAgcGFzcy1ieS12YWx1ZS4gIFBhZCB0aGUgc3BhY2UgdXAgdG8gYSBtdWx0aXBsZSBvZiAxNgogCSAgICAgICBieXRlcyAodGhlIG1heGltdW0gYWxpZ25tZW50IHJlcXVpcmVkIGZvciBhbnl0aGluZyB1bmRlcgpAQCAtNzkzLDEyICs3OTIsMjAgQEAKIAkgICAgc3RydWN0X2NvcHlfc2l6ZSArPSAoKCpwdHIpLT5zaXplICsgMTUpICYgfjB4RjsKIAkgICAgLyogRmFsbCB0aHJvdWdoIChhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIHBvaW50ZXIpLiAgKi8KIAotCSAgZGVmYXVsdDoKLQkgIHNvZnRfZmxvYXRfY2lmOgorCSAgY2FzZSBGRklfVFlQRV9QT0lOVEVSOgorCSAgY2FzZSBGRklfVFlQRV9JTlQ6CisJICBjYXNlIEZGSV9UWVBFX1VJTlQzMjoKKwkgIGNhc2UgRkZJX1RZUEVfU0lOVDMyOgorCSAgY2FzZSBGRklfVFlQRV9VSU5UMTY6CisJICBjYXNlIEZGSV9UWVBFX1NJTlQxNjoKKwkgIGNhc2UgRkZJX1RZUEVfVUlOVDg6CisJICBjYXNlIEZGSV9UWVBFX1NJTlQ4OgogCSAgICAvKiBFdmVyeXRoaW5nIGVsc2UgaXMgcGFzc2VkIGFzIGEgNC1ieXRlIHdvcmQgaW4gYSBHUFIsIGVpdGhlcgogCSAgICAgICB0aGUgb2JqZWN0IGl0c2VsZiBvciBhIHBvaW50ZXIgdG8gaXQuICAqLwogCSAgICBpbnRhcmdfY291bnQrKzsKIAkgICAgYnJlYWs7CisJICBkZWZhdWx0OgorCQlGRklfQVNTRVJUICgwKTsKIAkgIH0KICAgICAgIH0KICAgZWxzZQpAQCAtODI3LDE2ICs4MzQsMjkgQEAKIAkgICAgaW50YXJnX2NvdW50ICs9ICgoKnB0ciktPnNpemUgKyA3KSAvIDg7CiAJICAgIGJyZWFrOwogCi0JICBkZWZhdWx0OgorCSAgY2FzZSBGRklfVFlQRV9QT0lOVEVSOgorCSAgY2FzZSBGRklfVFlQRV9VSU5UNjQ6CisJICBjYXNlIEZGSV9UWVBFX1NJTlQ2NDoKKwkgIGNhc2UgRkZJX1RZUEVfSU5UOgorCSAgY2FzZSBGRklfVFlQRV9VSU5UMzI6CisJICBjYXNlIEZGSV9UWVBFX1NJTlQzMjoKKwkgIGNhc2UgRkZJX1RZUEVfVUlOVDE2OgorCSAgY2FzZSBGRklfVFlQRV9TSU5UMTY6CisJICBjYXNlIEZGSV9UWVBFX1VJTlQ4OgorCSAgY2FzZSBGRklfVFlQRV9TSU5UODoKIAkgICAgLyogRXZlcnl0aGluZyBlbHNlIGlzIHBhc3NlZCBhcyBhIDgtYnl0ZSB3b3JkIGluIGEgR1BSLCBlaXRoZXIKIAkgICAgICAgdGhlIG9iamVjdCBpdHNlbGYgb3IgYSBwb2ludGVyIHRvIGl0LiAgKi8KIAkgICAgaW50YXJnX2NvdW50Kys7CiAJICAgIGJyZWFrOworCSAgZGVmYXVsdDoKKwkJRkZJX0FTU0VSVCAoMCk7CiAJICB9CiAgICAgICB9CiAKKyNpZm5kZWYgX19OT19GUFJTX18KICAgaWYgKGZwYXJnX2NvdW50ICE9IDApCiAgICAgZmxhZ3MgfD0gRkxBR19GUF9BUkdVTUVOVFM7CisjZW5kaWYKICAgaWYgKGludGFyZ19jb3VudCA+IDQpCiAgICAgZmxhZ3MgfD0gRkxBR180X0dQUl9BUkdVTUVOVFM7CiAgIGlmIChzdHJ1Y3RfY29weV9zaXplICE9IDApCkBAIC04NDQsMjEgKzg2NCwyNyBAQAogCiAgIGlmIChjaWYtPmFiaSAhPSBGRklfTElOVVg2NCkKICAgICB7CisjaWZuZGVmIF9fTk9fRlBSU19fCiAgICAgICAvKiBTcGFjZSBmb3IgdGhlIEZQUiByZWdpc3RlcnMsIGlmIG5lZWRlZC4gICovCiAgICAgICBpZiAoZnBhcmdfY291bnQgIT0gMCkKIAlieXRlcyArPSBOVU1fRlBSX0FSR19SRUdJU1RFUlMgKiBzaXplb2YgKGRvdWJsZSk7CisjZW5kaWYKIAogICAgICAgLyogU3RhY2sgc3BhY2UuICAqLwogICAgICAgaWYgKGludGFyZ19jb3VudCA+IE5VTV9HUFJfQVJHX1JFR0lTVEVSUykKIAlieXRlcyArPSAoaW50YXJnX2NvdW50IC0gTlVNX0dQUl9BUkdfUkVHSVNURVJTKSAqIHNpemVvZiAoaW50KTsKKyNpZm5kZWYgX19OT19GUFJTX18KICAgICAgIGlmIChmcGFyZ19jb3VudCA+IE5VTV9GUFJfQVJHX1JFR0lTVEVSUykKIAlieXRlcyArPSAoZnBhcmdfY291bnQgLSBOVU1fRlBSX0FSR19SRUdJU1RFUlMpICogc2l6ZW9mIChkb3VibGUpOworI2VuZGlmCiAgICAgfQogICBlbHNlCiAgICAgeworI2lmbmRlZiBfX05PX0ZQUlNfXwogICAgICAgLyogU3BhY2UgZm9yIHRoZSBGUFIgcmVnaXN0ZXJzLCBpZiBuZWVkZWQuICAqLwogICAgICAgaWYgKGZwYXJnX2NvdW50ICE9IDApCiAJYnl0ZXMgKz0gTlVNX0ZQUl9BUkdfUkVHSVNURVJTNjQgKiBzaXplb2YgKGRvdWJsZSk7CisjZW5kaWYKIAogICAgICAgLyogU3RhY2sgc3BhY2UuICAqLwogICAgICAgaWYgKGludGFyZ19jb3VudCA+IE5VTV9HUFJfQVJHX1JFR0lTVEVSUzY0KQpAQCAtODg2LDI4ICs5MTIsNDEgQEAKIHZvaWQKIGZmaV9jYWxsKGZmaV9jaWYgKmNpZiwgdm9pZCAoKmZuKSh2b2lkKSwgdm9pZCAqcnZhbHVlLCB2b2lkICoqYXZhbHVlKQogeworICAvKgorICAgKiBUaGUgZmluYWwgU1lTViBBQkkgc2F5cyB0aGF0IHN0cnVjdHVyZXMgc21hbGxlciBvciBlcXVhbCA4IGJ5dGVzCisgICAqIGFyZSByZXR1cm5lZCBpbiByMy9yNC4gVGhlIEZGSV9HQ0NfU1lTViBBQkkgaW5zdGVhZCByZXR1cm5zIHRoZW0KKyAgICogaW4gbWVtb3J5LgorICAgKgorICAgKiBKdXN0IHRvIGtlZXAgdGhpbmdzIHNpbXBsZSBmb3IgdGhlIGFzc2VtYmx5IGNvZGUsIHdlIHdpbGwgYWx3YXlzCisgICAqIGJvdW5jZS1idWZmZXIgc3RydWN0IHJldHVybiB2YWx1ZXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDggYnl0ZXMuCisgICAqIFRoaXMgYWxsb3dzIHRoZSBBU00gdG8gaGFuZGxlIFNZU1Ygc21hbGwgc3RydWN0dXJlcyBieSBkaXJlY3RseQorICAgKiB3cml0aW5nIHIzIGFuZCByNCB0byBtZW1vcnkgd2l0aG91dCB3b3JyeWluZyBhYm91dCBzdHJ1Y3Qgc2l6ZS4KKyAgICovCisgIHVuc2lnbmVkIGludCBzbXN0X2J1ZmZlclsyXTsKICAgZXh0ZW5kZWRfY2lmIGVjaWY7CisgIHVuc2lnbmVkIGludCByc2l6ZSA9IDA7CiAKICAgZWNpZi5jaWYgPSBjaWY7CiAgIGVjaWYuYXZhbHVlID0gYXZhbHVlOwogCi0gIC8qIElmIHRoZSByZXR1cm4gdmFsdWUgaXMgYSBzdHJ1Y3QgYW5kIHdlIGRvbid0IGhhdmUgYSByZXR1cm4JKi8KLSAgLyogdmFsdWUgYWRkcmVzcyB0aGVuIHdlIG5lZWQgdG8gbWFrZSBvbmUJCSAgICAgICAgKi8KLQotICBpZiAoKHJ2YWx1ZSA9PSBOVUxMKSAmJiAoY2lmLT5ydHlwZS0+dHlwZSA9PSBGRklfVFlQRV9TVFJVQ1QpKQotICAgIHsKLSAgICAgIGVjaWYucnZhbHVlID0gYWxsb2NhKGNpZi0+cnR5cGUtPnNpemUpOwotICAgIH0KLSAgZWxzZQotICAgIGVjaWYucnZhbHVlID0gcnZhbHVlOwotCisgIC8qIEVuc3VyZSB0aGF0IHdlIGhhdmUgYSB2YWxpZCBzdHJ1Y3QgcmV0dXJuIHZhbHVlICovCisgIGVjaWYucnZhbHVlID0gcnZhbHVlOworICBpZiAoY2lmLT5ydHlwZS0+dHlwZSA9PSBGRklfVFlQRV9TVFJVQ1QpIHsKKyAgICByc2l6ZSA9IGNpZi0+cnR5cGUtPnNpemU7CisgICAgaWYgKHJzaXplIDw9IDgpCisgICAgICBlY2lmLnJ2YWx1ZSA9IHNtc3RfYnVmZmVyOworICAgIGVsc2UgaWYgKCFydmFsdWUpCisgICAgICBlY2lmLnJ2YWx1ZSA9IGFsbG9jYShyc2l6ZSk7CisgIH0KIAogICBzd2l0Y2ggKGNpZi0+YWJpKQogICAgIHsKICNpZm5kZWYgUE9XRVJQQzY0CisjIGlmbmRlZiBfX05PX0ZQUlNfXwogICAgIGNhc2UgRkZJX1NZU1Y6CiAgICAgY2FzZSBGRklfR0NDX1NZU1Y6CiAgICAgY2FzZSBGRklfTElOVVg6CisjIGVuZGlmCiAgICAgY2FzZSBGRklfTElOVVhfU09GVF9GTE9BVDoKICAgICAgIGZmaV9jYWxsX1NZU1YgKCZlY2lmLCAtY2lmLT5ieXRlcywgY2lmLT5mbGFncywgZWNpZi5ydmFsdWUsIGZuKTsKICAgICAgIGJyZWFrOwpAQCAtOTIwLDYgKzk1OSwxMCBAQAogICAgICAgRkZJX0FTU0VSVCAoMCk7CiAgICAgICBicmVhazsKICAgICB9CisKKyAgLyogQ2hlY2sgZm9yIGEgYm91bmNlLWJ1ZmZlcmVkIHJldHVybiB2YWx1ZSAqLworICBpZiAocnZhbHVlICYmIGVjaWYucnZhbHVlID09IHNtc3RfYnVmZmVyKQorICAgIG1lbWNweShydmFsdWUsIHNtc3RfYnVmZmVyLCByc2l6ZSk7CiB9CiAKIApAQCAtOTQ5LDE0ICs5OTIsMTkgQEAKICNpZmRlZiBQT1dFUlBDNjQKICAgdm9pZCAqKnRyYW1wID0gKHZvaWQgKiopICZjbG9zdXJlLT50cmFtcFswXTsKIAotICBGRklfQVNTRVJUIChjaWYtPmFiaSA9PSBGRklfTElOVVg2NCk7CisgIGlmIChjaWYtPmFiaSAhPSBGRklfTElOVVg2NCkKKyAgICByZXR1cm4gRkZJX0JBRF9BQkk7CiAgIC8qIENvcHkgZnVuY3Rpb24gYWRkcmVzcyBhbmQgVE9DIGZyb20gZmZpX2Nsb3N1cmVfTElOVVg2NC4gICovCiAgIG1lbWNweSAodHJhbXAsIChjaGFyICopIGZmaV9jbG9zdXJlX0xJTlVYNjQsIDE2KTsKICAgdHJhbXBbMl0gPSBjb2RlbG9jOwogI2Vsc2UKICAgdW5zaWduZWQgaW50ICp0cmFtcDsKIAotICBGRklfQVNTRVJUIChjaWYtPmFiaSA9PSBGRklfR0NDX1NZU1YgfHwgY2lmLT5hYmkgPT0gRkZJX1NZU1YpOworICBpZiAoISAoY2lmLT5hYmkgPT0gRkZJX0dDQ19TWVNWIAorCSB8fCBjaWYtPmFiaSA9PSBGRklfU1lTVgorCSB8fCBjaWYtPmFiaSA9PSBGRklfTElOVVgKKwkgfHwgY2lmLT5hYmkgPT0gRkZJX0xJTlVYX1NPRlRfRkxPQVQpKQorICAgIHJldHVybiBGRklfQkFEX0FCSTsKIAogICB0cmFtcCA9ICh1bnNpZ25lZCBpbnQgKikgJmNsb3N1cmUtPnRyYW1wWzBdOwogICB0cmFtcFswXSA9IDB4N2MwODAyYTY7ICAvKiAgIG1mbHIgICAgcjAgKi8KQEAgLTEwMTEsMzIgKzEwNTksMzggQEAKICAgdm9pZCAqKiAgICAgICAgICBhdmFsdWU7CiAgIGZmaV90eXBlICoqICAgICAgYXJnX3R5cGVzOwogICBsb25nICAgICAgICAgICAgIGksIGF2bjsKLSAgbG9uZyAgICAgICAgICAgICBuZjsgICAvKiBudW1iZXIgb2YgZmxvYXRpbmcgcmVnaXN0ZXJzIGFscmVhZHkgdXNlZCAqLwotICBsb25nICAgICAgICAgICAgIG5nOyAgIC8qIG51bWJlciBvZiBnZW5lcmFsIHJlZ2lzdGVycyBhbHJlYWR5IHVzZWQgKi8KLSAgZmZpX2NpZiAqICAgICAgICBjaWY7Ci0gIGRvdWJsZSAgICAgICAgICAgdGVtcDsKLSAgdW5zaWduZWQgICAgICAgICBzaXplOworI2lmbmRlZiBfX05PX0ZQUlNfXworICBsb25nICAgICAgICAgICAgIG5mID0gMDsgICAvKiBudW1iZXIgb2YgZmxvYXRpbmcgcmVnaXN0ZXJzIGFscmVhZHkgdXNlZCAqLworI2VuZGlmCisgIGxvbmcgICAgICAgICAgICAgbmcgPSAwOyAgIC8qIG51bWJlciBvZiBnZW5lcmFsIHJlZ2lzdGVycyBhbHJlYWR5IHVzZWQgKi8KIAotICBjaWYgPSBjbG9zdXJlLT5jaWY7CisgIGZmaV9jaWYgKmNpZiA9IGNsb3N1cmUtPmNpZjsKKyAgdW5zaWduZWQgICAgICAgc2l6ZSAgICAgPSBjaWYtPnJ0eXBlLT5zaXplOworICB1bnNpZ25lZCBzaG9ydCBydHlwZW51bSA9IGNpZi0+cnR5cGUtPnR5cGU7CisKICAgYXZhbHVlID0gYWxsb2NhIChjaWYtPm5hcmdzICogc2l6ZW9mICh2b2lkICopKTsKLSAgc2l6ZSA9IGNpZi0+cnR5cGUtPnNpemU7CiAKLSAgbmYgPSAwOwotICBuZyA9IDA7CisgIC8qIEZpcnN0IHRyYW5zbGF0ZSBmb3Igc29mdGZsb2F0L25vbmxpbnV4ICovCisgIGlmIChjaWYtPmFiaSA9PSBGRklfTElOVVhfU09GVF9GTE9BVCkgeworCWlmIChydHlwZW51bSA9PSBGRklfVFlQRV9GTE9BVCkKKwkJcnR5cGVudW0gPSBGRklfVFlQRV9VSU5UMzI7CisJaWYgKHJ0eXBlbnVtID09IEZGSV9UWVBFX0RPVUJMRSkKKwkJcnR5cGVudW0gPSBGRklfVFlQRV9VSU5UNjQ7CisJaWYgKHJ0eXBlbnVtID09IEZGSV9UWVBFX0xPTkdET1VCTEUpCisJCXJ0eXBlbnVtID0gRkZJX1RZUEVfVUlOVDEyODsKKyAgfSBlbHNlIGlmIChjaWYtPmFiaSAhPSBGRklfTElOVVggJiYgY2lmLT5hYmkgIT0gRkZJX0xJTlVYNjQpIHsKKyNpZiBGRklfVFlQRV9MT05HRE9VQkxFICE9IEZGSV9UWVBFX0RPVUJMRQorCWlmIChydHlwZW51bSA9PSBGRklfVFlQRV9MT05HRE9VQkxFKQorCQlydHlwZW51bSA9IEZGSV9UWVBFX1NUUlVDVDsKKyNlbmRpZgorICB9CisKIAogICAvKiBDb3B5IHRoZSBjYWxsZXIncyBzdHJ1Y3R1cmUgcmV0dXJuIHZhbHVlIGFkZHJlc3Mgc28gdGhhdCB0aGUgY2xvc3VyZQogICAgICByZXR1cm5zIHRoZSBkYXRhIGRpcmVjdGx5IHRvIHRoZSBjYWxsZXIuCiAgICAgIEZvciBGRklfU1lTViB0aGUgcmVzdWx0IGlzIHBhc3NlZCBpbiByMy9yNCBpZiB0aGUgc3RydWN0IHNpemUgaXMgbGVzcwogICAgICBvciBlcXVhbCA4IGJ5dGVzLiAgKi8KLQotICBpZiAoKGNpZi0+cnR5cGUtPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUCi0gICAgICAgJiYgISgoY2lmLT5hYmkgPT0gRkZJX1NZU1YpICYmIChzaXplIDw9IDgpKSkKLSNpZiBGRklfVFlQRV9MT05HRE9VQkxFICE9IEZGSV9UWVBFX0RPVUJMRQotICAgICAgfHwgKGNpZi0+cnR5cGUtPnR5cGUgPT0gRkZJX1RZUEVfTE9OR0RPVUJMRQotCSAgJiYgY2lmLT5hYmkgIT0gRkZJX0xJTlVYICYmIGNpZi0+YWJpICE9IEZGSV9MSU5VWF9TT0ZUX0ZMT0FUKQotI2VuZGlmCi0gICAgICApCi0gICAgeworICBpZiAocnR5cGVudW0gPT0gRkZJX1RZUEVfU1RSVUNUICYmICgoY2lmLT5hYmkgIT0gRkZJX1NZU1YpIHx8IChzaXplID4gOCkpKSB7CiAgICAgICBydmFsdWUgPSAodm9pZCAqKSAqcGdyOwogICAgICAgbmcrKzsKICAgICAgIHBncisrOwpAQCAtMTA0NywxMCArMTEwMSwxMDkgQEAKICAgYXJnX3R5cGVzID0gY2lmLT5hcmdfdHlwZXM7CiAKICAgLyogR3JhYiB0aGUgYWRkcmVzc2VzIG9mIHRoZSBhcmd1bWVudHMgZnJvbSB0aGUgc3RhY2sgZnJhbWUuICAqLwotICB3aGlsZSAoaSA8IGF2bikKLSAgICB7Ci0gICAgICBzd2l0Y2ggKGFyZ190eXBlc1tpXS0+dHlwZSkKLQl7CisgIHdoaWxlIChpIDwgYXZuKSB7CisgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlbnVtID0gYXJnX3R5cGVzW2ldLT50eXBlOworCisgICAgICAvKiBXZSBtYXkgbmVlZCB0byBoYW5kbGUgc29tZSB2YWx1ZXMgZGVwZW5kaW5nIG9uIEFCSSAqLworICAgICAgaWYgKGNpZi0+YWJpID09IEZGSV9MSU5VWF9TT0ZUX0ZMT0FUKSB7CisJCWlmICh0eXBlbnVtID09IEZGSV9UWVBFX0ZMT0FUKQorCQkJdHlwZW51bSA9IEZGSV9UWVBFX1VJTlQzMjsKKwkJaWYgKHR5cGVudW0gPT0gRkZJX1RZUEVfRE9VQkxFKQorCQkJdHlwZW51bSA9IEZGSV9UWVBFX1VJTlQ2NDsKKwkJaWYgKHR5cGVudW0gPT0gRkZJX1RZUEVfTE9OR0RPVUJMRSkKKwkJCXR5cGVudW0gPSBGRklfVFlQRV9VSU5UMTI4OworICAgICAgfSBlbHNlIGlmIChjaWYtPmFiaSAhPSBGRklfTElOVVggJiYgY2lmLT5hYmkgIT0gRkZJX0xJTlVYNjQpIHsKKyNpZiBGRklfVFlQRV9MT05HRE9VQkxFICE9IEZGSV9UWVBFX0RPVUJMRQorCQlpZiAodHlwZW51bSA9PSBGRklfVFlQRV9MT05HRE9VQkxFKQorCQkJdHlwZW51bSA9IEZGSV9UWVBFX1NUUlVDVDsKKyNlbmRpZgorICAgICAgfQorCisgICAgICBzd2l0Y2ggKHR5cGVudW0pIHsKKyNpZm5kZWYgX19OT19GUFJTX18KKwljYXNlIEZGSV9UWVBFX0ZMT0FUOgorCSAgLyogdW5mb3J0dW5hdGVseSBmbG9hdCB2YWx1ZXMgYXJlIHN0b3JlZCBhcyBkb3VibGVzCisJICAgKiBpbiB0aGUgZmZpX2Nsb3N1cmVfU1lTViBjb2RlIChzaW5jZSB3ZSBkb24ndCBjaGVjaworCSAgICogdGhlIHR5cGUgaW4gdGhhdCByb3V0aW5lKS4KKwkgICAqLworCisJICAvKiB0aGVyZSBhcmUgOCA2NGJpdCBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgKi8KKworCSAgaWYgKG5mIDwgOCkKKwkgICAgeworCSAgICAgIGRvdWJsZSB0ZW1wID0gcGZyLT5kOworCSAgICAgIHBmci0+ZiA9IChmbG9hdCkgdGVtcDsKKwkgICAgICBhdmFsdWVbaV0gPSBwZnI7CisJICAgICAgbmYrKzsKKwkgICAgICBwZnIrKzsKKwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgLyogRklYTUU/IGhlcmUgd2UgYXJlIHJlYWxseSBjaGFuZ2luZyB0aGUgdmFsdWVzCisJICAgICAgICogc3RvcmVkIGluIHRoZSBvcmlnaW5hbCBjYWxsaW5nIHJvdXRpbmVzIG91dGdvaW5nCisJICAgICAgICogcGFyYW1ldGVyIHN0YWNrLiAgVGhpcyBpcyBwcm9iYWJseSBhIHJlYWxseQorCSAgICAgICAqIG5hdWdodHkgdGhpbmcgdG8gZG8gYnV0Li4uCisJICAgICAgICovCisJICAgICAgYXZhbHVlW2ldID0gcHN0OworCSAgICAgIHBzdCArPSAxOworCSAgICB9CisJICBicmVhazsKKworCWNhc2UgRkZJX1RZUEVfRE9VQkxFOgorCSAgLyogT24gdGhlIG91dGdvaW5nIHN0YWNrIGFsbCB2YWx1ZXMgYXJlIGFsaWduZWQgdG8gOCAqLworCSAgLyogdGhlcmUgYXJlIDggNjRiaXQgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzICovCisKKwkgIGlmIChuZiA8IDgpCisJICAgIHsKKwkgICAgICBhdmFsdWVbaV0gPSBwZnI7CisJICAgICAgbmYrKzsKKwkgICAgICBwZnIrKzsKKwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgaWYgKCgobG9uZykgcHN0KSAmIDQpCisJCXBzdCsrOworCSAgICAgIGF2YWx1ZVtpXSA9IHBzdDsKKwkgICAgICBwc3QgKz0gMjsKKwkgICAgfQorCSAgYnJlYWs7CisKKyNpZiBGRklfVFlQRV9MT05HRE9VQkxFICE9IEZGSV9UWVBFX0RPVUJMRQorCWNhc2UgRkZJX1RZUEVfTE9OR0RPVUJMRToKKwkgIGlmIChuZiA8IDcpCisJICAgIHsKKwkgICAgICBhdmFsdWVbaV0gPSBwZnI7CisJICAgICAgcGZyICs9IDI7CisJICAgICAgbmYgKz0gMjsKKwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgaWYgKCgobG9uZykgcHN0KSAmIDQpCisJCXBzdCsrOworCSAgICAgIGF2YWx1ZVtpXSA9IHBzdDsKKwkgICAgICBwc3QgKz0gNDsKKwkgICAgICBuZiA9IDg7CisJICAgIH0KKwkgIGJyZWFrOworI2VuZGlmCisjZW5kaWYgLyogaGF2ZSBGUFJTICovCisKKwljYXNlIEZGSV9UWVBFX1VJTlQxMjg6CisJCS8qCisJCSAqIFRlc3QgaWYgZm9yIHRoZSB3aG9sZSBsb25nIGRvdWJsZSwgNCBncHJzIGFyZSBhdmFpbGFibGUuCisJCSAqIG90aGVyd2lzZSB0aGUgc3R1ZmYgZW5kcyB1cCBvbiB0aGUgc3RhY2suCisJCSAqLworCQlpZiAobmcgPCA1KSB7CisJCQlhdmFsdWVbaV0gPSBwZ3I7CisJCQlwZ3IgKz0gNDsKKwkJCW5nICs9IDQ7CisJCX0gZWxzZSB7CisJCQlhdmFsdWVbaV0gPSBwc3Q7CisJCQlwc3QgKz0gNDsKKwkJCW5nID0gOCs0OworCQl9CisJCWJyZWFrOworCiAJY2FzZSBGRklfVFlQRV9TSU5UODoKIAljYXNlIEZGSV9UWVBFX1VJTlQ4OgogCSAgLyogdGhlcmUgYXJlIDggZ3ByIHJlZ2lzdGVycyB1c2VkIHRvIHBhc3MgdmFsdWVzICovCkBAIC0xMDg2LDcgKzEyMzksNiBAQAogCWNhc2UgRkZJX1RZUEVfU0lOVDMyOgogCWNhc2UgRkZJX1RZUEVfVUlOVDMyOgogCWNhc2UgRkZJX1RZUEVfUE9JTlRFUjoKLQlzb2Z0X2Zsb2F0X2Nsb3N1cmU6CiAJICAvKiB0aGVyZSBhcmUgOCBncHIgcmVnaXN0ZXJzIHVzZWQgdG8gcGFzcyB2YWx1ZXMgKi8KIAkgIGlmIChuZyA8IDgpCiAJICAgIHsKQEAgLTExMDIsOSArMTI1NCw2IEBACiAJICBicmVhazsKIAogCWNhc2UgRkZJX1RZUEVfU1RSVUNUOgotI2lmIEZGSV9UWVBFX0xPTkdET1VCTEUgIT0gRkZJX1RZUEVfRE9VQkxFCi0JZG9fc3RydWN0OgotI2VuZGlmCiAJICAvKiBTdHJ1Y3RzIGFyZSBwYXNzZWQgYnkgcmVmZXJlbmNlLiBUaGUgYWRkcmVzcyB3aWxsIGFwcGVhciBpbiBhCiAJICAgICBncHIgaWYgaXQgaXMgb25lIG9mIHRoZSBmaXJzdCA4IGFyZ3VtZW50cy4gICovCiAJICBpZiAobmcgPCA4KQpAQCAtMTEyMiw3ICsxMjcxLDYgQEAKIAogCWNhc2UgRkZJX1RZUEVfU0lOVDY0OgogCWNhc2UgRkZJX1RZUEVfVUlOVDY0OgotCXNvZnRfZG91YmxlX2Nsb3N1cmU6CiAJICAvKiBwYXNzaW5nIGxvbmcgbG9uZyBpbnRzIGFyZSBjb21wbGV4LCB0aGV5IG11c3QKIAkgICAqIGJlIHBhc3NlZCBpbiBzdWl0YWJsZSByZWdpc3RlciBwYWlycyBzdWNoIGFzCiAJICAgKiAocjMscjQpIG9yIChyNSxyNikgb3IgKHI2LHI3KSwgb3IgKHI3LHI4KSBvciAocjkscjEwKQpAQCAtMTE1NCw5OSArMTMwMiw4IEBACiAJICAgIH0KIAkgIGJyZWFrOwogCi0JY2FzZSBGRklfVFlQRV9GTE9BVDoKLQkgIC8qIFdpdGggRkZJX0xJTlVYX1NPRlRfRkxPQVQgZmxvYXRzIGFyZSBoYW5kbGVkIGxpa2UgVUlOVDMyLiAgKi8KLQkgIGlmIChjaWYtPmFiaSA9PSBGRklfTElOVVhfU09GVF9GTE9BVCkKLQkgICAgZ290byBzb2Z0X2Zsb2F0X2Nsb3N1cmU7Ci0JICAvKiB1bmZvcnR1bmF0ZWx5IGZsb2F0IHZhbHVlcyBhcmUgc3RvcmVkIGFzIGRvdWJsZXMKLQkgICAqIGluIHRoZSBmZmlfY2xvc3VyZV9TWVNWIGNvZGUgKHNpbmNlIHdlIGRvbid0IGNoZWNrCi0JICAgKiB0aGUgdHlwZSBpbiB0aGF0IHJvdXRpbmUpLgotCSAgICovCi0KLQkgIC8qIHRoZXJlIGFyZSA4IDY0Yml0IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyAqLwotCi0JICBpZiAobmYgPCA4KQotCSAgICB7Ci0JICAgICAgdGVtcCA9IHBmci0+ZDsKLQkgICAgICBwZnItPmYgPSAoZmxvYXQpIHRlbXA7Ci0JICAgICAgYXZhbHVlW2ldID0gcGZyOwotCSAgICAgIG5mKys7Ci0JICAgICAgcGZyKys7Ci0JICAgIH0KLQkgIGVsc2UKLQkgICAgewotCSAgICAgIC8qIEZJWE1FPyBoZXJlIHdlIGFyZSByZWFsbHkgY2hhbmdpbmcgdGhlIHZhbHVlcwotCSAgICAgICAqIHN0b3JlZCBpbiB0aGUgb3JpZ2luYWwgY2FsbGluZyByb3V0aW5lcyBvdXRnb2luZwotCSAgICAgICAqIHBhcmFtZXRlciBzdGFjay4gIFRoaXMgaXMgcHJvYmFibHkgYSByZWFsbHkKLQkgICAgICAgKiBuYXVnaHR5IHRoaW5nIHRvIGRvIGJ1dC4uLgotCSAgICAgICAqLwotCSAgICAgIGF2YWx1ZVtpXSA9IHBzdDsKLQkgICAgICBwc3QgKz0gMTsKLQkgICAgfQotCSAgYnJlYWs7Ci0KLQljYXNlIEZGSV9UWVBFX0RPVUJMRToKLQkgIC8qIFdpdGggRkZJX0xJTlVYX1NPRlRfRkxPQVQgZG91YmxlcyBhcmUgaGFuZGxlZCBsaWtlIFVJTlQ2NC4gICovCi0JICBpZiAoY2lmLT5hYmkgPT0gRkZJX0xJTlVYX1NPRlRfRkxPQVQpCi0JICAgIGdvdG8gc29mdF9kb3VibGVfY2xvc3VyZTsKLQkgIC8qIE9uIHRoZSBvdXRnb2luZyBzdGFjayBhbGwgdmFsdWVzIGFyZSBhbGlnbmVkIHRvIDggKi8KLQkgIC8qIHRoZXJlIGFyZSA4IDY0Yml0IGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyAqLwotCi0JICBpZiAobmYgPCA4KQotCSAgICB7Ci0JICAgICAgYXZhbHVlW2ldID0gcGZyOwotCSAgICAgIG5mKys7Ci0JICAgICAgcGZyKys7Ci0JICAgIH0KLQkgIGVsc2UKLQkgICAgewotCSAgICAgIGlmICgoKGxvbmcpIHBzdCkgJiA0KQotCQlwc3QrKzsKLQkgICAgICBhdmFsdWVbaV0gPSBwc3Q7Ci0JICAgICAgcHN0ICs9IDI7Ci0JICAgIH0KLQkgIGJyZWFrOwotCi0jaWYgRkZJX1RZUEVfTE9OR0RPVUJMRSAhPSBGRklfVFlQRV9ET1VCTEUKLQljYXNlIEZGSV9UWVBFX0xPTkdET1VCTEU6Ci0JICBpZiAoY2lmLT5hYmkgIT0gRkZJX0xJTlVYICYmIGNpZi0+YWJpICE9IEZGSV9MSU5VWF9TT0ZUX0ZMT0FUKQotCSAgICBnb3RvIGRvX3N0cnVjdDsKLQkgIGlmIChjaWYtPmFiaSA9PSBGRklfTElOVVhfU09GVF9GTE9BVCkKLQkgICAgeyAvKiBUZXN0IGlmIGZvciB0aGUgd2hvbGUgbG9uZyBkb3VibGUsIDQgZ3BycyBhcmUgYXZhaWxhYmxlLgotCQkgb3RoZXJ3aXNlIHRoZSBzdHVmZiBlbmRzIHVwIG9uIHRoZSBzdGFjay4gICovCi0JICAgICAgaWYgKG5nIDwgNSkKLQkJewotCQkgIGF2YWx1ZVtpXSA9IHBncjsKLQkJICBwZ3IgKz0gNDsKLQkJICBuZyArPSA0OwotCQl9Ci0JICAgICAgZWxzZQotCQl7Ci0JCSAgYXZhbHVlW2ldID0gcHN0OwotCQkgIHBzdCArPSA0OwotCQkgIG5nID0gODsKLQkJfQotCSAgICAgIGJyZWFrOwotCSAgICB9Ci0JICBpZiAobmYgPCA3KQotCSAgICB7Ci0JICAgICAgYXZhbHVlW2ldID0gcGZyOwotCSAgICAgIHBmciArPSAyOwotCSAgICAgIG5mICs9IDI7Ci0JICAgIH0KLQkgIGVsc2UKLQkgICAgewotCSAgICAgIGlmICgoKGxvbmcpIHBzdCkgJiA0KQotCQlwc3QrKzsKLQkgICAgICBhdmFsdWVbaV0gPSBwc3Q7Ci0JICAgICAgcHN0ICs9IDQ7Ci0JICAgICAgbmYgPSA4OwotCSAgICB9Ci0JICBicmVhazsKLSNlbmRpZgotCiAJZGVmYXVsdDoKLQkgIEZGSV9BU1NFUlQgKDApOworCQlGRklfQVNTRVJUICgwKTsKIAl9CiAKICAgICAgIGkrKzsKQEAgLTEyNjMsMzkgKzEzMjAsOSBAQAogICAgICBhbHJlYWR5IHVzZWQgYW5kIHdlIG5ldmVyIGhhdmUgYSBzdHJ1Y3Qgd2l0aCBzaXplIHplcm8uIFRoYXQgaXMgdGhlIHJlYXNvbgogICAgICBmb3IgdGhlIHN1YnRyYWN0aW9uIG9mIDEuIFNlZSB0aGUgY29tbWVudCBpbiBmZml0YXJnZXQuaCBhYm91dCBvcmRlcmluZy4KICAgKi8KLSAgaWYgKGNpZi0+YWJpID09IEZGSV9TWVNWICYmIGNpZi0+cnR5cGUtPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUCi0gICAgICAmJiBzaXplIDw9IDgpCisgIGlmIChjaWYtPmFiaSA9PSBGRklfU1lTViAmJiBydHlwZW51bSA9PSBGRklfVFlQRV9TVFJVQ1QgJiYgc2l6ZSA8PSA4KQogICAgIHJldHVybiAoRkZJX1NZU1ZfVFlQRV9TTUFMTF9TVFJVQ1QgLSAxKSArIHNpemU7Ci0jaWYgRkZJX1RZUEVfTE9OR0RPVUJMRSAhPSBGRklfVFlQRV9ET1VCTEUKLSAgZWxzZSBpZiAoY2lmLT5ydHlwZS0+dHlwZSA9PSBGRklfVFlQRV9MT05HRE9VQkxFCi0JICAgJiYgY2lmLT5hYmkgIT0gRkZJX0xJTlVYICYmIGNpZi0+YWJpICE9IEZGSV9MSU5VWF9TT0ZUX0ZMT0FUKQotICAgIHJldHVybiBGRklfVFlQRV9TVFJVQ1Q7Ci0jZW5kaWYKLSAgLyogV2l0aCBGRklfTElOVVhfU09GVF9GTE9BVCBmbG9hdHMgYW5kIGRvdWJsZXMgYXJlIGhhbmRsZWQgbGlrZSBVSU5UMzIKLSAgICAgcmVzcGVjdGl2bGV5IFVJTlQ2NC4gICovCi0gIGlmIChjaWYtPmFiaSA9PSBGRklfTElOVVhfU09GVF9GTE9BVCkKLSAgICB7Ci0gICAgICBzd2l0Y2ggKGNpZi0+cnR5cGUtPnR5cGUpCi0JewotCWNhc2UgRkZJX1RZUEVfRkxPQVQ6Ci0JICByZXR1cm4gRkZJX1RZUEVfVUlOVDMyOwotCSAgYnJlYWs7Ci0JY2FzZSBGRklfVFlQRV9ET1VCTEU6Ci0JICByZXR1cm4gRkZJX1RZUEVfVUlOVDY0OwotCSAgYnJlYWs7Ci0jaWYgRkZJX1RZUEVfTE9OR0RPVUJMRSAhPSBGRklfVFlQRV9ET1VCTEUKLQljYXNlIEZGSV9UWVBFX0xPTkdET1VCTEU6Ci0JICByZXR1cm4gRkZJX1RZUEVfVUlOVDEyODsKLQkgIGJyZWFrOwotI2VuZGlmCi0JZGVmYXVsdDoKLQkgIHJldHVybiBjaWYtPnJ0eXBlLT50eXBlOwotCX0KLSAgICB9Ci0gIGVsc2UKLSAgICB7Ci0gICAgICByZXR1cm4gY2lmLT5ydHlwZS0+dHlwZTsKLSAgICB9CisgIHJldHVybiBydHlwZW51bTsKIH0KIAogaW50IEZGSV9ISURERU4gZmZpX2Nsb3N1cmVfaGVscGVyX0xJTlVYNjQgKGZmaV9jbG9zdXJlICosIHZvaWQgKiwKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvZmZpX2Rhcndpbi5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9mZmlfZGFyd2luLmMKaW5kZXggZDg0ZjFjMy4uZGQ4OTdmNCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9mZmlfZGFyd2luLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9mZmlfZGFyd2luLmMKQEAgLTMsNyArMyw3IEBACiAKICAgIENvcHlyaWdodCAoQykgMTk5OCBHZW9mZnJleSBLZWF0aW5nCiAgICBDb3B5cmlnaHQgKEMpIDIwMDEgSm9obiBIb3Jua3Zpc3QKLSAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNiwgMjAwNywgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgRkZJIHN1cHBvcnQgZm9yIERhcndpbiBhbmQgQUlYLgogICAgCkBAIC0zNSwxMSArMzUsMTcgQEAKIGV4dGVybiB2b2lkIGZmaV9jbG9zdXJlX0FTTSAodm9pZCk7CiAKIGVudW0gewotICAvKiBUaGUgYXNzZW1ibHkgZGVwZW5kcyBvbiB0aGVzZSBleGFjdCBmbGFncy4gICovCi0gIEZMQUdfUkVUVVJOU19OT1RISU5HICA9IDEgPDwgKDMxLTMwKSwgLyogVGhlc2UgZ28gaW4gY3I3ICAqLwotICBGTEFHX1JFVFVSTlNfRlAgICAgICAgPSAxIDw8ICgzMS0yOSksCi0gIEZMQUdfUkVUVVJOU182NEJJVFMgICA9IDEgPDwgKDMxLTI4KSwKLSAgRkxBR19SRVRVUk5TXzEyOEJJVFMgID0gMSA8PCAoMzEtMzEpLAorICAvKiBUaGUgYXNzZW1ibHkgZGVwZW5kcyBvbiB0aGVzZSBleGFjdCBmbGFncy4gIAorICAgICBGb3IgRGFyd2luNjQgKHdoZW4gRkxBR19SRVRVUk5TX1NUUlVDVCBpcyBzZXQpOgorICAgICAgIEZMQUdfUkVUVVJOU19GUCBpbmRpY2F0ZXMgdGhhdCB0aGUgc3RydWN0dXJlIGVtYmVkcyBGUCBkYXRhLgorICAgICAgIEZMQUdfUkVUVVJOU18xMjhCSVRTIHNpZ25hbHMgYSBzcGVjaWFsIHN0cnVjdCBzaXplIHRoYXQgaXMgbm90CisgICAgICAgZXhwYW5kZWQgZm9yIGZsb2F0IGNvbnRlbnQuICAqLworICBGTEFHX1JFVFVSTlNfMTI4QklUUwk9IDEgPDwgKDMxLTMxKSwgLyogVGhlc2UgZ28gaW4gY3I3ICAqLworICBGTEFHX1JFVFVSTlNfTk9USElORwk9IDEgPDwgKDMxLTMwKSwKKyAgRkxBR19SRVRVUk5TX0ZQCT0gMSA8PCAoMzEtMjkpLAorICBGTEFHX1JFVFVSTlNfNjRCSVRTCT0gMSA8PCAoMzEtMjgpLAorCisgIEZMQUdfUkVUVVJOU19TVFJVQ1QJPSAxIDw8ICgzMS0yNyksIC8qIFRoaXMgZ29lcyBpbiBjcjYgICovCiAKICAgRkxBR19BUkdfTkVFRFNfQ09QWSAgID0gMSA8PCAoMzEtIDcpLAogICBGTEFHX0ZQX0FSR1VNRU5UUyAgICAgPSAxIDw8ICgzMS0gNiksIC8qIGNyMS5lcTsgc3BlY2lmaWVkIGJ5IEFCSSAgKi8KQEAgLTUwLDQzICs1Niw2MSBAQAogLyogQWJvdXQgdGhlIERBUldJTiBBQkkuICAqLwogZW51bSB7CiAgIE5VTV9HUFJfQVJHX1JFR0lTVEVSUyA9IDgsCi0gIE5VTV9GUFJfQVJHX1JFR0lTVEVSUyA9IDEzCisgIE5VTV9GUFJfQVJHX1JFR0lTVEVSUyA9IDEzLAorICBMSU5LQUdFX0FSRUFfR1BSUyA9IDYKIH07Ci1lbnVtIHsgQVNNX05FRURTX1JFR0lTVEVSUyA9IDQgfTsKKworZW51bSB7IEFTTV9ORUVEU19SRUdJU1RFUlMgPSA0IH07IC8qIHIyOC1yMzEgKi8KIAogLyogZmZpX3ByZXBfYXJncyBpcyBjYWxsZWQgYnkgdGhlIGFzc2VtYmx5IHJvdXRpbmUgb25jZSBzdGFjayBzcGFjZQogICAgaGFzIGJlZW4gYWxsb2NhdGVkIGZvciB0aGUgZnVuY3Rpb24ncyBhcmd1bWVudHMuCisgICAKKyAgIG0zMi9tNjQKIAogICAgVGhlIHN0YWNrIGxheW91dCB3ZSB3YW50IGxvb2tzIGxpa2UgdGhpczoKIAogICAgfCAgIFJldHVybiBhZGRyZXNzIGZyb20gZmZpX2NhbGxfREFSV0lOICAgICAgfAloaWdoZXIgYWRkcmVzc2VzCiAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18Ci0gICB8ICAgUHJldmlvdXMgYmFja2NoYWluIHBvaW50ZXIJNAl8CXN0YWNrIHBvaW50ZXIgaGVyZQorICAgfCAgIFByZXZpb3VzIGJhY2tjaGFpbiBwb2ludGVyCTQvOAl8CXN0YWNrIHBvaW50ZXIgaGVyZQogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfDwrIDw8PAlvbiBlbnRyeSB0bwotICAgfCAgIFNhdmVkIHIyOC1yMzEJCQk0KjQJfCB8CWZmaV9jYWxsX0RBUldJTgorICAgfCAgIEFTTV9ORUVEU19SRUdJU1RFUlM9cjI4LXIzMSAgIDQqKDQvOCkJfCB8CWZmaV9jYWxsX0RBUldJTgogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8Ci0gICB8ICAgUGFyYW1ldGVycyAgICAgICAgICAgICAoYXQgbGVhc3QgOCo0PTMyKSB8IHwKKyAgIHwgICBXaGVuIHdlIGhhdmUgYW55IEZQIGFjdGl2aXR5Li4uIHRoZQl8IHwKKyAgIHwgICBGUFJzIG9jY3VweSBOVU1fRlBSX0FSR19SRUdJU1RFUlMgc2xvdHMJfCB8CisgICB8ICAgaGVyZSBmcDEzIC4uIGZwMSBmcm9tIGhpZ2ggdG8gbG93IGFkZHIuCXwgfAorICAgfgkJCQkJCX4gfgorICAgfCAgIFBhcmFtZXRlcnMgICAgICAoYXQgbGVhc3QgOCo0Lzg9MzIvNjQpCXwgfCBOVU1fR1BSX0FSR19SRUdJU1RFUlMKICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgfAotICAgfCAgIFNwYWNlIGZvciBHUFIyICAgICAgICAgICAgICAgICAgIDQgICAgICAgfCB8CisgICB8ICAgVE9DPVIyIChBSVgpIFJlc2VydmVkIChEYXJ3aW4pICAgNC84CXwgfAogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8CXN0YWNrCXwKLSAgIHwgICBSZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgMio0ICAgICAgIHwgfAlncm93cwl8CisgICB8ICAgUmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgIDIqNC84CXwgfAlncm93cwl8CiAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwJZG93bglWCi0gICB8ICAgU3BhY2UgZm9yIGNhbGxlZSdzIExSCQk0CXwgfAorICAgfCAgIFNwYWNlIGZvciBjYWxsZWUncyBMUgkJNC84CXwgfAogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8CWxvd2VyIGFkZHJlc3NlcwotICAgfCAgIFNhdmVkIENSICAgICAgICAgICAgICAgICAgICAgICAgIDQgICAgICAgfCB8CisgICB8ICAgU2F2ZWQgQ1IgW2xvdyB3b3JkIGZvciBtNjRdICAgICAgNC84CXwgfAogICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8ICAgICBzdGFjayBwb2ludGVyIGhlcmUKLSAgIHwgICBDdXJyZW50IGJhY2tjaGFpbiBwb2ludGVyCTQJfC0vCWR1cmluZworICAgfCAgIEN1cnJlbnQgYmFja2NoYWluIHBvaW50ZXIJNC84CXwtLwlkdXJpbmcKICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgICA8PDwJZmZpX2NhbGxfREFSV0lOCiAKICAgICovCiAKKyNpZiBkZWZpbmVkKFBPV0VSUENfREFSV0lONjQpCitzdGF0aWMgdm9pZAorZGFyd2luNjRfcGFzc19zdHJ1Y3RfYnlfdmFsdWUgCisgIChmZmlfdHlwZSAqLCBjaGFyICosIHVuc2lnbmVkLCB1bnNpZ25lZCAqLCBkb3VibGUgKiosIHVuc2lnbmVkIGxvbmcgKiopOworI2VuZGlmCisKKy8qIFRoaXMgZGVwZW5kcyBvbiBHUFJfU0laRSA9IHNpemVvZiAodW5zaWduZWQgbG9uZykgKi8KKwogdm9pZAogZmZpX3ByZXBfYXJncyAoZXh0ZW5kZWRfY2lmICplY2lmLCB1bnNpZ25lZCBsb25nICpjb25zdCBzdGFjaykKIHsKICAgY29uc3QgdW5zaWduZWQgYnl0ZXMgPSBlY2lmLT5jaWYtPmJ5dGVzOwogICBjb25zdCB1bnNpZ25lZCBmbGFncyA9IGVjaWYtPmNpZi0+ZmxhZ3M7CiAgIGNvbnN0IHVuc2lnbmVkIG5hcmdzID0gZWNpZi0+Y2lmLT5uYXJnczsKKyNpZiAhZGVmaW5lZChQT1dFUlBDX0RBUldJTjY0KSAKICAgY29uc3QgZmZpX2FiaSBhYmkgPSBlY2lmLT5jaWYtPmFiaTsKKyNlbmRpZgogCiAgIC8qICdzdGFja3RvcCcgcG9pbnRzIGF0IHRoZSBwcmV2aW91cyBiYWNrY2hhaW4gcG9pbnRlci4gICovCiAgIHVuc2lnbmVkIGxvbmcgKmNvbnN0IHN0YWNrdG9wID0gc3RhY2sgKyAoYnl0ZXMgLyBzaXplb2YodW5zaWduZWQgbG9uZykpOwpAQCAtOTQsMTggKzExOCwxOSBAQAogICAvKiAnZnByX2Jhc2UnIHBvaW50cyBhdCB0aGUgc3BhY2UgZm9yIGZwcjEsIGFuZCBncm93cyB1cHdhcmRzIGFzCiAgICAgIHdlIHVzZSBGUFIgcmVnaXN0ZXJzLiAgKi8KICAgZG91YmxlICpmcHJfYmFzZSA9IChkb3VibGUgKikgKHN0YWNrdG9wIC0gQVNNX05FRURTX1JFR0lTVEVSUykgLSBOVU1fRlBSX0FSR19SRUdJU1RFUlM7Ci0gIGludCBmcGFyZ19jb3VudCA9IDA7Ci0KKyAgaW50IGdwX2NvdW50ID0gMCwgZnBhcmdfY291bnQgPSAwOwogCiAgIC8qICduZXh0X2FyZycgZ3Jvd3MgdXAgYXMgd2UgcHV0IHBhcmFtZXRlcnMgaW4gaXQuICAqLwotICB1bnNpZ25lZCBsb25nICpuZXh0X2FyZyA9IHN0YWNrICsgNjsgLyogNiByZXNlcnZlZCBwb3NpdGlvbnMuICAqLworICB1bnNpZ25lZCBsb25nICpuZXh0X2FyZyA9IHN0YWNrICsgTElOS0FHRV9BUkVBX0dQUlM7IC8qIDYgcmVzZXJ2ZWQgcG9zaXRpb25zLiAgKi8KIAogICBpbnQgaTsKICAgZG91YmxlIGRvdWJsZV90bXA7CiAgIHZvaWQgKipwX2FyZ3YgPSBlY2lmLT5hdmFsdWU7CiAgIHVuc2lnbmVkIGxvbmcgZ3BydmFsdWU7CiAgIGZmaV90eXBlKiogcHRyID0gZWNpZi0+Y2lmLT5hcmdfdHlwZXM7CisjaWYgIWRlZmluZWQoUE9XRVJQQ19EQVJXSU42NCkgCiAgIGNoYXIgKmRlc3RfY3B5OworI2VuZGlmCiAgIHVuc2lnbmVkIHNpemVfYWwgPSAwOwogCiAgIC8qIENoZWNrIHRoYXQgZXZlcnl0aGluZyBzdGFydHMgYWxpZ25lZCBwcm9wZXJseS4gICovCkBAIC0xMzAsMjUgKzE1NSwzMCBAQAogCSAgIHRoZSBzaXplIG9mIHRoZSBmbG9hdGluZy1wb2ludCBwYXJhbWV0ZXIgYXJlIHNraXBwZWQuICAqLwogCWNhc2UgRkZJX1RZUEVfRkxPQVQ6CiAJICBkb3VibGVfdG1wID0gKihmbG9hdCAqKSAqcF9hcmd2OwotCSAgaWYgKGZwYXJnX2NvdW50ID49IE5VTV9GUFJfQVJHX1JFR0lTVEVSUykKLQkgICAgKihkb3VibGUgKiluZXh0X2FyZyA9IGRvdWJsZV90bXA7Ci0JICBlbHNlCisJICBpZiAoZnBhcmdfY291bnQgPCBOVU1fRlBSX0FSR19SRUdJU1RFUlMpCiAJICAgICpmcHJfYmFzZSsrID0gZG91YmxlX3RtcDsKKyNpZiBkZWZpbmVkKFBPV0VSUENfREFSV0lOKQorCSAgKihmbG9hdCAqKW5leHRfYXJnID0gKihmbG9hdCAqKSAqcF9hcmd2OworI2Vsc2UKKwkgICooZG91YmxlICopbmV4dF9hcmcgPSBkb3VibGVfdG1wOworI2VuZGlmCiAJICBuZXh0X2FyZysrOworCSAgZ3BfY291bnQrKzsKIAkgIGZwYXJnX2NvdW50Kys7CiAJICBGRklfQVNTRVJUKGZsYWdzICYgRkxBR19GUF9BUkdVTUVOVFMpOwogCSAgYnJlYWs7CiAKIAljYXNlIEZGSV9UWVBFX0RPVUJMRToKIAkgIGRvdWJsZV90bXAgPSAqKGRvdWJsZSAqKSAqcF9hcmd2OwotCSAgaWYgKGZwYXJnX2NvdW50ID49IE5VTV9GUFJfQVJHX1JFR0lTVEVSUykKLQkgICAgKihkb3VibGUgKiluZXh0X2FyZyA9IGRvdWJsZV90bXA7Ci0JICBlbHNlCisJICBpZiAoZnBhcmdfY291bnQgPCBOVU1fRlBSX0FSR19SRUdJU1RFUlMpCiAJICAgICpmcHJfYmFzZSsrID0gZG91YmxlX3RtcDsKKwkgICooZG91YmxlICopbmV4dF9hcmcgPSBkb3VibGVfdG1wOwogI2lmZGVmIFBPV0VSUEM2NAogCSAgbmV4dF9hcmcrKzsKKwkgIGdwX2NvdW50Kys7CiAjZWxzZQogCSAgbmV4dF9hcmcgKz0gMjsKKwkgIGdwX2NvdW50ICs9IDI7CiAjZW5kaWYKIAkgIGZwYXJnX2NvdW50Kys7CiAJICBGRklfQVNTRVJUKGZsYWdzICYgRkxBR19GUF9BUkdVTUVOVFMpOwpAQCAtMTU3LDMwICsxODcsNDEgQEAKICNpZiBGRklfVFlQRV9MT05HRE9VQkxFICE9IEZGSV9UWVBFX0RPVUJMRQogCiAJY2FzZSBGRklfVFlQRV9MT05HRE9VQkxFOgotI2lmZGVmIFBPV0VSUEM2NAorIyAgaWYgZGVmaW5lZChQT1dFUlBDNjQpICYmICFkZWZpbmVkKFBPV0VSUENfREFSV0lONjQpCisJICAvKiA/Pz8gVGhpcyB3aWxsIGV4Y2VlZCB0aGUgcmVncyBjb3VudCB3aGVuIHRoZSB2YWx1ZSBzdGFydHMgYXQgZnAxMworCSAgICAgYW5kIGl0IHdpbGwgbm90IHB1dCB0aGUgZXh0cmEgYml0IG9uIHRoZSBzdGFjay4gICovCiAJICBpZiAoZnBhcmdfY291bnQgPCBOVU1fRlBSX0FSR19SRUdJU1RFUlMpCiAJICAgICoobG9uZyBkb3VibGUgKikgZnByX2Jhc2UrKyA9ICoobG9uZyBkb3VibGUgKikgKnBfYXJndjsKIAkgIGVsc2UKIAkgICAgKihsb25nIGRvdWJsZSAqKSBuZXh0X2FyZyA9ICoobG9uZyBkb3VibGUgKikgKnBfYXJndjsKIAkgIG5leHRfYXJnICs9IDI7CiAJICBmcGFyZ19jb3VudCArPSAyOwotI2Vsc2UKKyMgIGVsc2UKIAkgIGRvdWJsZV90bXAgPSAoKGRvdWJsZSAqKSAqcF9hcmd2KVswXTsKIAkgIGlmIChmcGFyZ19jb3VudCA8IE5VTV9GUFJfQVJHX1JFR0lTVEVSUykKIAkgICAgKmZwcl9iYXNlKysgPSBkb3VibGVfdG1wOwotCSAgZWxzZQotCSAgICAqKGRvdWJsZSAqKSBuZXh0X2FyZyA9IGRvdWJsZV90bXA7CisJICAqKGRvdWJsZSAqKSBuZXh0X2FyZyA9IGRvdWJsZV90bXA7CisjICAgIGlmIGRlZmluZWQoUE9XRVJQQ19EQVJXSU42NCkKKwkgIG5leHRfYXJnKys7CisJICBncF9jb3VudCsrOworIyAgICBlbHNlCiAJICBuZXh0X2FyZyArPSAyOworCSAgZ3BfY291bnQgKz0gMjsKKyMgICAgZW5kaWYKIAkgIGZwYXJnX2NvdW50Kys7Ci0KIAkgIGRvdWJsZV90bXAgPSAoKGRvdWJsZSAqKSAqcF9hcmd2KVsxXTsKIAkgIGlmIChmcGFyZ19jb3VudCA8IE5VTV9GUFJfQVJHX1JFR0lTVEVSUykKIAkgICAgKmZwcl9iYXNlKysgPSBkb3VibGVfdG1wOwotCSAgZWxzZQotCSAgICAqKGRvdWJsZSAqKSBuZXh0X2FyZyA9IGRvdWJsZV90bXA7CisJICAqKGRvdWJsZSAqKSBuZXh0X2FyZyA9IGRvdWJsZV90bXA7CisjICAgIGlmIGRlZmluZWQoUE9XRVJQQ19EQVJXSU42NCkKKwkgIG5leHRfYXJnKys7CisJICBncF9jb3VudCsrOworIyAgICBlbHNlCiAJICBuZXh0X2FyZyArPSAyOworCSAgZ3BfY291bnQgKz0gMjsKKyMgICAgZW5kaWYKIAkgIGZwYXJnX2NvdW50Kys7Ci0jZW5kaWYKKyMgIGVuZGlmCiAJICBGRklfQVNTRVJUKGZsYWdzICYgRkxBR19GUF9BUkdVTUVOVFMpOwogCSAgYnJlYWs7CiAjZW5kaWYKQEAgLTE5Miw2ICsyMzMsNyBAQAogI2Vsc2UKIAkgICoobG9uZyBsb25nICopIG5leHRfYXJnID0gKihsb25nIGxvbmcgKikgKnBfYXJndjsKIAkgIG5leHRfYXJnICs9IDI7CisJICBncF9jb3VudCArPSAyOwogI2VuZGlmCiAJICBicmVhazsKIAljYXNlIEZGSV9UWVBFX1BPSU5URVI6CkBAIC0yMTEsMzIgKzI1MywzNSBAQAogCSAgZ290byBwdXRncHI7CiAKIAljYXNlIEZGSV9UWVBFX1NUUlVDVDoKLSNpZmRlZiBQT1dFUlBDNjQKLQkgIGRlc3RfY3B5ID0gKGNoYXIgKikgbmV4dF9hcmc7CiAJICBzaXplX2FsID0gKCpwdHIpLT5zaXplOwotCSAgaWYgKCgqcHRyKS0+ZWxlbWVudHNbMF0tPnR5cGUgPT0gMykKLQkgICAgc2l6ZV9hbCA9IEFMSUdOKCgqcHRyKS0+c2l6ZSwgOCk7Ci0JICBpZiAoc2l6ZV9hbCA8IDMgJiYgYWJpID09IEZGSV9EQVJXSU4pCi0JICAgIGRlc3RfY3B5ICs9IDQgLSBzaXplX2FsOwotCi0JICBtZW1jcHkgKChjaGFyICopIGRlc3RfY3B5LCAoY2hhciAqKSAqcF9hcmd2LCBzaXplX2FsKTsKLQkgIG5leHRfYXJnICs9IChzaXplX2FsICsgNykgLyA4OworI2lmIGRlZmluZWQoUE9XRVJQQ19EQVJXSU42NCkKKwkgIG5leHRfYXJnID0gKHVuc2lnbmVkIGxvbmcgKilBTElHTigoY2hhciAqKW5leHRfYXJnLCAoKnB0ciktPmFsaWdubWVudCk7CisJICBkYXJ3aW42NF9wYXNzX3N0cnVjdF9ieV92YWx1ZSAoKnB0ciwgKGNoYXIgKikgKnBfYXJndiwgCisJCQkJCSAodW5zaWduZWQpIHNpemVfYWwsCisJCQkJCSAodW5zaWduZWQgaW50ICopICZmcGFyZ19jb3VudCwKKwkJCQkJICZmcHJfYmFzZSwgJm5leHRfYXJnKTsKICNlbHNlCiAJICBkZXN0X2NweSA9IChjaGFyICopIG5leHRfYXJnOwogCisJICAvKiBJZiB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSBzdHJ1Y3QgaXMgYSBkb3VibGUsIHRoZW4gaW5jbHVkZSBlbm91Z2gKKwkgICAgIHBhZGRpbmcgaW4gdGhlIHN0cnVjdCBzaXplIHRvIGFsaWduIGl0IHRvIGRvdWJsZS13b3JkLiAgKi8KKwkgIGlmICgoKnB0ciktPmVsZW1lbnRzWzBdLT50eXBlID09IEZGSV9UWVBFX0RPVUJMRSkKKwkgICAgc2l6ZV9hbCA9IEFMSUdOKCgqcHRyKS0+c2l6ZSwgOCk7CisKKyMgIGlmIGRlZmluZWQoUE9XRVJQQzY0KSAKKwkgIEZGSV9BU1NFUlQgKGFiaSAhPSBGRklfREFSV0lOKTsKKwkgIG1lbWNweSAoKGNoYXIgKikgZGVzdF9jcHksIChjaGFyICopICpwX2FyZ3YsIHNpemVfYWwpOworCSAgbmV4dF9hcmcgKz0gKHNpemVfYWwgKyA3KSAvIDg7CisjICBlbHNlCiAJICAvKiBTdHJ1Y3R1cmVzIHRoYXQgbWF0Y2ggdGhlIGJhc2ljIG1vZGVzIChRSSAxIGJ5dGUsIEhJIDIgYnl0ZXMsCiAJICAgICBTSSA0IGJ5dGVzKSBhcmUgYWxpZ25lZCBhcyBpZiB0aGV5IHdlcmUgdGhvc2UgbW9kZXMuCiAJICAgICBTdHJ1Y3R1cmVzIHdpdGggMyBieXRlIGluIHNpemUgYXJlIHBhZGRlZCB1cHdhcmRzLiAgKi8KLQkgIHNpemVfYWwgPSAoKnB0ciktPnNpemU7Ci0JICAvKiBJZiB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSBzdHJ1Y3QgaXMgYSBkb3VibGUsIHRoZW4gYWxpZ24KLQkgICAgIHRoZSBzdHJ1Y3QgdG8gZG91YmxlLXdvcmQuICAqLwotCSAgaWYgKCgqcHRyKS0+ZWxlbWVudHNbMF0tPnR5cGUgPT0gRkZJX1RZUEVfRE9VQkxFKQotCSAgICBzaXplX2FsID0gQUxJR04oKCpwdHIpLT5zaXplLCA4KTsKIAkgIGlmIChzaXplX2FsIDwgMyAmJiBhYmkgPT0gRkZJX0RBUldJTikKIAkgICAgZGVzdF9jcHkgKz0gNCAtIHNpemVfYWw7CiAKIAkgIG1lbWNweSgoY2hhciAqKSBkZXN0X2NweSwgKGNoYXIgKikgKnBfYXJndiwgc2l6ZV9hbCk7CiAJICBuZXh0X2FyZyArPSAoc2l6ZV9hbCArIDMpIC8gNDsKKyMgIGVuZGlmCiAjZW5kaWYKIAkgIGJyZWFrOwogCkBAIC0yNDksNiArMjk0LDcgQEAKIAkgIGdwcnZhbHVlID0gKih1bnNpZ25lZCBpbnQgKikgKnBfYXJndjsKIAlwdXRncHI6CiAJICAqbmV4dF9hcmcrKyA9IGdwcnZhbHVlOworCSAgZ3BfY291bnQrKzsKIAkgIGJyZWFrOwogCWRlZmF1bHQ6CiAJICBicmVhazsKQEAgLTI2Miw4ICszMDgsMjY5IEBACiAgIC8vRkZJX0FTU0VSVChmbGFncyAmIEZMQUdfNF9HUFJfQVJHVU1FTlRTIHx8IGludGFyZ19jb3VudCA8PSA0KTsKIH0KIAorI2lmIGRlZmluZWQoUE9XRVJQQ19EQVJXSU42NCkKKworLyogU2VlIGlmIHdlIGNhbiBwdXQgc29tZSBvZiB0aGUgc3RydWN0IGludG8gZnBycy4KKyAgIFRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIHN0cnVjdHVyZXMgb2Ygc2l6ZSAxNiBieXRlcywgc2luY2UgdGhlc2UgYXJlIG5vdAorICAgYnJva2VuIG91dCB0aGlzIHdheS4gICovCitzdGF0aWMgdm9pZAorZGFyd2luNjRfc2Nhbl9zdHJ1Y3RfZm9yX2Zsb2F0cyAoZmZpX3R5cGUgKnMsIHVuc2lnbmVkICpuZnByKQoreworICBpbnQgaTsKKworICBGRklfQVNTRVJUIChzLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCkKKworICBmb3IgKGkgPSAwOyBzLT5lbGVtZW50c1tpXSAhPSBOVUxMOyBpKyspCisgICAgeworICAgICAgZmZpX3R5cGUgKnAgPSBzLT5lbGVtZW50c1tpXTsKKyAgICAgIHN3aXRjaCAocC0+dHlwZSkKKwl7CisJICBjYXNlIEZGSV9UWVBFX1NUUlVDVDoKKwkgICAgZGFyd2luNjRfc2Nhbl9zdHJ1Y3RfZm9yX2Zsb2F0cyAocCwgbmZwcik7CisJICAgIGJyZWFrOworCSAgY2FzZSBGRklfVFlQRV9MT05HRE9VQkxFOgorCSAgICAoKm5mcHIpICs9IDI7CisJICAgIGJyZWFrOworCSAgY2FzZSBGRklfVFlQRV9ET1VCTEU6CisJICBjYXNlIEZGSV9UWVBFX0ZMT0FUOgorCSAgICAoKm5mcHIpICs9IDE7CisJICAgIGJyZWFrOworCSAgZGVmYXVsdDoKKwkgICAgYnJlYWs7ICAgIAorCX0KKyAgICB9Cit9CisKK3N0YXRpYyBpbnQKK2RhcndpbjY0X3N0cnVjdF9zaXplX2V4Y2VlZHNfZ3Byc19wIChmZmlfdHlwZSAqcywgY2hhciAqc3JjLCB1bnNpZ25lZCAqbmZwcikKK3sKKyAgdW5zaWduZWQgc3RydWN0X29mZnNldD0wLCBpOworCisgIGZvciAoaSA9IDA7IHMtPmVsZW1lbnRzW2ldICE9IE5VTEw7IGkrKykKKyAgICB7CisgICAgICBjaGFyICppdGVtX2Jhc2U7CisgICAgICBmZmlfdHlwZSAqcCA9IHMtPmVsZW1lbnRzW2ldOworICAgICAgLyogRmluZCB0aGUgc3RhcnQgb2YgdGhpcyBpdGVtICgwIGZvciB0aGUgZmlyc3Qgb25lKS4gICovCisgICAgICBpZiAoaSA+IDApCisgICAgICAgIHN0cnVjdF9vZmZzZXQgPSBBTElHTihzdHJ1Y3Rfb2Zmc2V0LCBwLT5hbGlnbm1lbnQpOworCisgICAgICBpdGVtX2Jhc2UgPSBzcmMgKyBzdHJ1Y3Rfb2Zmc2V0OworCisgICAgICBzd2l0Y2ggKHAtPnR5cGUpCisJeworCSAgY2FzZSBGRklfVFlQRV9TVFJVQ1Q6CisJICAgIGlmIChkYXJ3aW42NF9zdHJ1Y3Rfc2l6ZV9leGNlZWRzX2dwcnNfcCAocCwgaXRlbV9iYXNlLCBuZnByKSkKKwkgICAgICByZXR1cm4gMTsKKwkgICAgYnJlYWs7CisJICBjYXNlIEZGSV9UWVBFX0xPTkdET1VCTEU6CisJICAgIGlmICgqbmZwciA+PSBOVU1fRlBSX0FSR19SRUdJU1RFUlMpCisJICAgICAgcmV0dXJuIDE7CisJICAgICgqbmZwcikgKz0gMTsKKwkgICAgaXRlbV9iYXNlICs9IDg7CisJICAvKiBGQUxMIFRIUk9VR0ggKi8KKwkgIGNhc2UgRkZJX1RZUEVfRE9VQkxFOgorCSAgICBpZiAoKm5mcHIgPj0gTlVNX0ZQUl9BUkdfUkVHSVNURVJTKQorCSAgICAgIHJldHVybiAxOworCSAgICAoKm5mcHIpICs9IDE7CisJICAgIGJyZWFrOworCSAgY2FzZSBGRklfVFlQRV9GTE9BVDoKKwkgICAgaWYgKCpuZnByID49IE5VTV9GUFJfQVJHX1JFR0lTVEVSUykKKwkgICAgICByZXR1cm4gMTsKKwkgICAgKCpuZnByKSArPSAxOworCSAgICBicmVhazsKKwkgIGRlZmF1bHQ6CisJICAgIC8qIElmIHdlIHRyeSBhbmQgcGxhY2UgYW55IGl0ZW0sIHRoYXQgaXMgbm9uLWZsb2F0LCBvbmNlIHdlJ3ZlCisJICAgICAgIGV4Y2VlZGVkIHRoZSA4IEdQUiBtYXJrLCB0aGVuIHdlIGNhbid0IGZpdCB0aGUgc3RydWN0LiAgKi8KKwkgICAgaWYgKCh1bnNpZ25lZCBsb25nKWl0ZW1fYmFzZSA+PSA4KjgpIAorCSAgICAgIHJldHVybiAxOworCSAgICBicmVhazsgICAgCisJfQorICAgICAgLyogbm93IGNvdW50IHRoZSBzaXplIG9mIHdoYXQgd2UganVzdCB1c2VkLiAgKi8KKyAgICAgIHN0cnVjdF9vZmZzZXQgKz0gcC0+c2l6ZTsKKyAgICB9CisgIHJldHVybiAwOworfQorCisvKiBDYW4gdGhpcyBzdHJ1Y3QgYmUgcmV0dXJuZWQgYnkgdmFsdWU/ICAqLworaW50IAorZGFyd2luNjRfc3RydWN0X3JldF9ieV92YWx1ZV9wIChmZmlfdHlwZSAqcykKK3sKKyAgdW5zaWduZWQgbmZwID0gMDsKKworICBGRklfQVNTRVJUIChzICYmIHMtPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUKTsKKyAgCisgIC8qIFRoZSBsYXJnZXN0IHN0cnVjdHVyZSB3ZSBjYW4gcmV0dXJuIGlzIDhsb25nICsgMTMgZG91Ymxlcy4gICovCisgIGlmIChzLT5zaXplID4gMTY4KQorICAgIHJldHVybiAwOworICAKKyAgLyogV2UgY2FuJ3QgcGFzcyBtb3JlIHRoYW4gMTMgZmxvYXRzLiAgKi8KKyAgZGFyd2luNjRfc2Nhbl9zdHJ1Y3RfZm9yX2Zsb2F0cyAocywgJm5mcCk7CisgIGlmIChuZnAgPiAxMykKKyAgICByZXR1cm4gMDsKKyAgCisgIC8qIElmIHRoZXJlIGFyZSBub3QgdG9vIG1hbnkgZmxvYXRzLCBhbmQgdGhlIHN0cnVjdCBpcworICAgICBzbWFsbCBlbm91Z2ggdG8gYWNjb21tb2RhdGUgaW4gdGhlIEdQUnMsIHRoZW4gaXQgbXVzdCBiZSBPSy4gICovCisgIGlmIChzLT5zaXplIDw9IDY0KQorICAgIHJldHVybiAxOworICAKKyAgLyogV2VsbCwgd2UgaGF2ZSB0byBsb29rIGhhcmRlci4gICovCisgIG5mcCA9IDA7CisgIGlmIChkYXJ3aW42NF9zdHJ1Y3Rfc2l6ZV9leGNlZWRzX2dwcnNfcCAocywgTlVMTCwgJm5mcCkpCisgICAgcmV0dXJuIDA7CisgIAorICByZXR1cm4gMTsKK30KKwordm9pZAorZGFyd2luNjRfcGFzc19zdHJ1Y3RfZmxvYXRzIChmZmlfdHlwZSAqcywgY2hhciAqc3JjLCAKKwkJCSAgICAgdW5zaWduZWQgKm5mcHIsIGRvdWJsZSAqKmZwcnMpCit7CisgIGludCBpOworICBkb3VibGUgKmZwcl9iYXNlID0gKmZwcnM7CisgIHVuc2lnbmVkIHN0cnVjdF9vZmZzZXQgPSAwOworCisgIC8qIFdlIGRvbid0IGFzc3VtZSBhbnl0aGluZyBhYm91dCB0aGUgYWxpZ25tZW50IG9mIHRoZSBzb3VyY2UuICAqLworICBmb3IgKGkgPSAwOyBzLT5lbGVtZW50c1tpXSAhPSBOVUxMOyBpKyspCisgICAgeworICAgICAgY2hhciAqaXRlbV9iYXNlOworICAgICAgZmZpX3R5cGUgKnAgPSBzLT5lbGVtZW50c1tpXTsKKyAgICAgIC8qIEZpbmQgdGhlIHN0YXJ0IG9mIHRoaXMgaXRlbSAoMCBmb3IgdGhlIGZpcnN0IG9uZSkuICAqLworICAgICAgaWYgKGkgPiAwKQorICAgICAgICBzdHJ1Y3Rfb2Zmc2V0ID0gQUxJR04oc3RydWN0X29mZnNldCwgcC0+YWxpZ25tZW50KTsKKyAgICAgIGl0ZW1fYmFzZSA9IHNyYyArIHN0cnVjdF9vZmZzZXQ7CisKKyAgICAgIHN3aXRjaCAocC0+dHlwZSkKKwl7CisJICBjYXNlIEZGSV9UWVBFX1NUUlVDVDoKKwkgICAgZGFyd2luNjRfcGFzc19zdHJ1Y3RfZmxvYXRzIChwLCBpdGVtX2Jhc2UsIG5mcHIsCisJCQkJCSAgICZmcHJfYmFzZSk7CisJICAgIGJyZWFrOworCSAgY2FzZSBGRklfVFlQRV9MT05HRE9VQkxFOgorCSAgICBpZiAoKm5mcHIgPCBOVU1fRlBSX0FSR19SRUdJU1RFUlMpCisJICAgICAgKmZwcl9iYXNlKysgPSAqKGRvdWJsZSAqKWl0ZW1fYmFzZTsKKwkgICAgKCpuZnByKSArPSAxOworCSAgICBpdGVtX2Jhc2UgKz0gODsKKwkgIC8qIEZBTEwgVEhST1VHSCAqLworCSAgY2FzZSBGRklfVFlQRV9ET1VCTEU6CisJICAgIGlmICgqbmZwciA8IE5VTV9GUFJfQVJHX1JFR0lTVEVSUykKKwkgICAgICAqZnByX2Jhc2UrKyA9ICooZG91YmxlICopaXRlbV9iYXNlOworCSAgICAoKm5mcHIpICs9IDE7CisJICAgIGJyZWFrOworCSAgY2FzZSBGRklfVFlQRV9GTE9BVDoKKwkgICAgaWYgKCpuZnByIDwgTlVNX0ZQUl9BUkdfUkVHSVNURVJTKQorCSAgICAgICpmcHJfYmFzZSsrID0gKGRvdWJsZSkgKihmbG9hdCAqKWl0ZW1fYmFzZTsKKwkgICAgKCpuZnByKSArPSAxOworCSAgICBicmVhazsKKwkgIGRlZmF1bHQ6CisJICAgIGJyZWFrOyAgICAKKwl9CisgICAgICAvKiBub3cgY291bnQgdGhlIHNpemUgb2Ygd2hhdCB3ZSBqdXN0IHVzZWQuICAqLworICAgICAgc3RydWN0X29mZnNldCArPSBwLT5zaXplOworICAgIH0KKyAgLyogVXBkYXRlIHRoZSBzY29yZXMuICAqLworICAqZnBycyA9IGZwcl9iYXNlOworfQorCisvKiBEYXJ3aW42NCBzcGVjaWFsIHJ1bGVzLgorICAgQnJlYWsgb3V0IGEgc3RydWN0IGludG8gcGFyYW1zIGFuZCBmbG9hdCByZWdpc3RlcnMuICAqLworc3RhdGljIHZvaWQKK2RhcndpbjY0X3Bhc3Nfc3RydWN0X2J5X3ZhbHVlIChmZmlfdHlwZSAqcywgY2hhciAqc3JjLCB1bnNpZ25lZCBzaXplLAorCQkJICAgICAgIHVuc2lnbmVkICpuZnByLCBkb3VibGUgKipmcHJzLCB1bnNpZ25lZCBsb25nICoqYXJnKQoreworICB1bnNpZ25lZCBsb25nICpuZXh0X2FyZyA9ICphcmc7CisgIGNoYXIgKmRlc3RfY3B5ID0gKGNoYXIgKiluZXh0X2FyZzsKKworICBGRklfQVNTRVJUIChzLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCkKKworICBpZiAoIXNpemUpCisgICAgcmV0dXJuOworCisgIC8qIEZpcnN0Li4uIHNwZWNpYWwgY2FzZXMuICAqLworICBpZiAoc2l6ZSA8IDMKKyAgICAgIHx8IChzaXplID09IDQgCisJICAmJiBzLT5lbGVtZW50c1swXSAKKwkgICYmIHMtPmVsZW1lbnRzWzBdLT50eXBlICE9IEZGSV9UWVBFX0ZMT0FUKSkKKyAgICB7CisgICAgICAvKiBNdXN0IGJlIGF0IGxlYXN0IG9uZSBHUFIsIHBhZGRpbmcgaXMgdW5zcGVjaWZpZWQgaW4gdmFsdWUsIAorCSBsZXQncyBtYWtlIGl0IHplcm8uICAqLworICAgICAgKm5leHRfYXJnID0gMFVMOyAKKyAgICAgIGRlc3RfY3B5ICs9IDggLSBzaXplOworICAgICAgbWVtY3B5ICgoY2hhciAqKSBkZXN0X2NweSwgc3JjLCBzaXplKTsKKyAgICAgIG5leHRfYXJnKys7CisgICAgfQorICBlbHNlIGlmIChzaXplID09IDE2KQorICAgIHsKKyAgICAgIG1lbWNweSAoKGNoYXIgKikgZGVzdF9jcHksIHNyYywgc2l6ZSk7CisgICAgICBuZXh0X2FyZyArPSAyOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIG5vdyB0aGUgZ2VuZXJhbCBjYXNlLCB3ZSBjb25zaWRlciBlbWJlZGRlZCBmbG9hdHMuICAqLworICAgICAgbWVtY3B5ICgoY2hhciAqKSBkZXN0X2NweSwgc3JjLCBzaXplKTsKKyAgICAgIGRhcndpbjY0X3Bhc3Nfc3RydWN0X2Zsb2F0cyAocywgc3JjLCBuZnByLCBmcHJzKTsKKyAgICAgIG5leHRfYXJnICs9IChzaXplKzcpLzg7CisgICAgfQorICAgIAorICAqYXJnID0gbmV4dF9hcmc7Cit9CisKK2RvdWJsZSAqCitkYXJ3aW42NF9zdHJ1Y3RfZmxvYXRzX3RvX21lbSAoZmZpX3R5cGUgKnMsIGNoYXIgKmRlc3QsIGRvdWJsZSAqZnBycywgdW5zaWduZWQgKm5mKQoreworICBpbnQgaTsKKyAgdW5zaWduZWQgc3RydWN0X29mZnNldCA9IDA7CisKKyAgLyogV2UgZG9uJ3QgYXNzdW1lIGFueXRoaW5nIGFib3V0IHRoZSBhbGlnbm1lbnQgb2YgdGhlIHNvdXJjZS4gICovCisgIGZvciAoaSA9IDA7IHMtPmVsZW1lbnRzW2ldICE9IE5VTEw7IGkrKykKKyAgICB7CisgICAgICBjaGFyICppdGVtX2Jhc2U7CisgICAgICBmZmlfdHlwZSAqcCA9IHMtPmVsZW1lbnRzW2ldOworICAgICAgLyogRmluZCB0aGUgc3RhcnQgb2YgdGhpcyBpdGVtICgwIGZvciB0aGUgZmlyc3Qgb25lKS4gICovCisgICAgICBpZiAoaSA+IDApCisgICAgICAgIHN0cnVjdF9vZmZzZXQgPSBBTElHTihzdHJ1Y3Rfb2Zmc2V0LCBwLT5hbGlnbm1lbnQpOworICAgICAgaXRlbV9iYXNlID0gZGVzdCArIHN0cnVjdF9vZmZzZXQ7CisKKyAgICAgIHN3aXRjaCAocC0+dHlwZSkKKwl7CisJICBjYXNlIEZGSV9UWVBFX1NUUlVDVDoKKwkgICAgZnBycyA9IGRhcndpbjY0X3N0cnVjdF9mbG9hdHNfdG9fbWVtIChwLCBpdGVtX2Jhc2UsIGZwcnMsIG5mKTsKKwkgICAgYnJlYWs7CisJICBjYXNlIEZGSV9UWVBFX0xPTkdET1VCTEU6CisJICAgIGlmICgqbmYgPCBOVU1fRlBSX0FSR19SRUdJU1RFUlMpCisJICAgICAgeworCQkqKGRvdWJsZSAqKWl0ZW1fYmFzZSA9ICpmcHJzKysgOworCQkoKm5mKSArPSAxOworCSAgICAgIH0KKwkgICAgaXRlbV9iYXNlICs9IDg7CisJICAvKiBGQUxMIFRIUk9VR0ggKi8KKwkgIGNhc2UgRkZJX1RZUEVfRE9VQkxFOgorCSAgICBpZiAoKm5mIDwgTlVNX0ZQUl9BUkdfUkVHSVNURVJTKQorCSAgICAgIHsKKwkJKihkb3VibGUgKilpdGVtX2Jhc2UgPSAqZnBycysrIDsKKwkJKCpuZikgKz0gMTsKKwkgICAgICB9CisJICAgIGJyZWFrOworCSAgY2FzZSBGRklfVFlQRV9GTE9BVDoKKwkgICAgaWYgKCpuZiA8IE5VTV9GUFJfQVJHX1JFR0lTVEVSUykKKwkgICAgICB7CisJCSooZmxvYXQgKilpdGVtX2Jhc2UgPSAoZmxvYXQpICpmcHJzKysgOworCQkoKm5mKSArPSAxOworCSAgICAgIH0KKwkgICAgYnJlYWs7CisJICBkZWZhdWx0OgorCSAgICBicmVhazsgICAgCisJfQorICAgICAgLyogbm93IGNvdW50IHRoZSBzaXplIG9mIHdoYXQgd2UganVzdCB1c2VkLiAgKi8KKyAgICAgIHN0cnVjdF9vZmZzZXQgKz0gcC0+c2l6ZTsKKyAgICB9CisgIHJldHVybiBmcHJzOworfQorCisjZW5kaWYKKwogLyogQWRqdXN0IHRoZSBzaXplIG9mIFMgdG8gYmUgY29ycmVjdCBmb3IgRGFyd2luLgotICAgT24gRGFyd2luLCB0aGUgZmlyc3QgZmllbGQgb2YgYSBzdHJ1Y3R1cmUgaGFzIG5hdHVyYWwgYWxpZ25tZW50LiAgKi8KKyAgIE9uIERhcndpbiBtMzIsIHRoZSBmaXJzdCBmaWVsZCBvZiBhIHN0cnVjdHVyZSBoYXMgbmF0dXJhbCBhbGlnbm1lbnQuICAKKyAgIE9uIERhcndpbiBtNjQsIGFsbCBmaWVsZHMgaGF2ZSBuYXR1cmFsIGFsaWdubWVudC4gICovCiAKIHN0YXRpYyB2b2lkCiBkYXJ3aW5fYWRqdXN0X2FnZ3JlZ2F0ZV9zaXplcyAoZmZpX3R5cGUgKnMpCkBAIC0yODAsMjIgKzU4NywyOSBAQAogICAgICAgaW50IGFsaWduOwogICAgICAgCiAgICAgICBwID0gcy0+ZWxlbWVudHNbaV07Ci0gICAgICBkYXJ3aW5fYWRqdXN0X2FnZ3JlZ2F0ZV9zaXplcyAocCk7Ci0gICAgICBpZiAoaSA9PSAwCi0JICAmJiAocC0+dHlwZSA9PSBGRklfVFlQRV9VSU5UNjQKLQkgICAgICB8fCBwLT50eXBlID09IEZGSV9UWVBFX1NJTlQ2NAotCSAgICAgIHx8IHAtPnR5cGUgPT0gRkZJX1RZUEVfRE9VQkxFCi0JICAgICAgfHwgcC0+YWxpZ25tZW50ID09IDgpKQotCWFsaWduID0gODsKKyAgICAgIGlmIChwLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCkKKwlkYXJ3aW5fYWRqdXN0X2FnZ3JlZ2F0ZV9zaXplcyAocCk7CisjaWYgZGVmaW5lZChQT1dFUlBDX0RBUldJTjY0KQorICAgICAgLyogTmF0dXJhbCBhbGlnbm1lbnQgZm9yIGFsbCBpdGVtcy4gICovCisgICAgICBhbGlnbiA9IHAtPmFsaWdubWVudDsKKyNlbHNlCisgICAgICAvKiBOYXRydWFsIGFsaWdubWVudCBmb3IgdGhlIGZpcnN0IGl0ZW0uLi4gKi8KKyAgICAgIGlmIChpID09IDApCisJYWxpZ24gPSBwLT5hbGlnbm1lbnQ7CiAgICAgICBlbHNlIGlmIChwLT5hbGlnbm1lbnQgPT0gMTYgfHwgcC0+YWxpZ25tZW50IDwgNCkKKwkvKiAuLiBzdWJzZXF1ZW50IGl0ZW1zIHdpdGggdmVjdG9yIG9yIGFsaWduIDwgNCBoYXZlIG5hdHVyYWwgYWxpZ24uICAqLwogCWFsaWduID0gcC0+YWxpZ25tZW50OwogICAgICAgZWxzZQorCS8qIC4uIG9yIGFsaWduIGlzIDQuICAqLwogCWFsaWduID0gNDsKKyNlbmRpZgorICAgICAgLyogUGFkLCBpZiBuZWNlc3NhcnksIGJlZm9yZSBhZGRpbmcgdGhlIGN1cnJlbnQgaXRlbS4gICovCiAgICAgICBzLT5zaXplID0gQUxJR04ocy0+c2l6ZSwgYWxpZ24pICsgcC0+c2l6ZTsKICAgICB9CiAgIAogICBzLT5zaXplID0gQUxJR04ocy0+c2l6ZSwgcy0+YWxpZ25tZW50KTsKICAgCisgIC8qIFRoaXMgc2hvdWxkIG5vdCBiZSBuZWNlc3Nhcnkgb24gbTY0LCBidXQgaGFybWxlc3MuICAqLwogICBpZiAocy0+ZWxlbWVudHNbMF0tPnR5cGUgPT0gRkZJX1RZUEVfVUlOVDY0CiAgICAgICB8fCBzLT5lbGVtZW50c1swXS0+dHlwZSA9PSBGRklfVFlQRV9TSU5UNjQKICAgICAgIHx8IHMtPmVsZW1lbnRzWzBdLT50eXBlID09IEZGSV9UWVBFX0RPVUJMRQpAQCAtMzQ0LDEwICs2NTgsMTAgQEAKIGZmaV9wcmVwX2NpZl9tYWNoZGVwIChmZmlfY2lmICpjaWYpCiB7CiAgIC8qIEFsbCB0aGlzIGlzIGZvciB0aGUgREFSV0lOIEFCSS4gICovCi0gIGludCBpOworICB1bnNpZ25lZCBpOwogICBmZmlfdHlwZSAqKnB0cjsKICAgdW5zaWduZWQgYnl0ZXM7Ci0gIGludCBmcGFyZ19jb3VudCA9IDAsIGludGFyZ19jb3VudCA9IDA7CisgIHVuc2lnbmVkIGZwYXJnX2NvdW50ID0gMCwgaW50YXJnX2NvdW50ID0gMDsKICAgdW5zaWduZWQgZmxhZ3MgPSAwOwogICB1bnNpZ25lZCBzaXplX2FsID0gMDsKIApAQCAtMzcyLDE2ICs2ODYsMjUgQEAKICAgLyogU3BhY2UgZm9yIHRoZSBmcmFtZSBwb2ludGVyLCBjYWxsZWUncyBMUiwgQ1IsIGV0YywgYW5kIGZvcgogICAgICB0aGUgYXNtJ3MgdGVtcCByZWdzLiAgKi8KIAotICBieXRlcyA9ICg2ICsgQVNNX05FRURTX1JFR0lTVEVSUykgKiBzaXplb2YobG9uZyk7CisgIGJ5dGVzID0gKExJTktBR0VfQVJFQV9HUFJTICsgQVNNX05FRURTX1JFR0lTVEVSUykgKiBzaXplb2YodW5zaWduZWQgbG9uZyk7CiAKLSAgLyogUmV0dXJuIHZhbHVlIGhhbmRsaW5nLiAgVGhlIHJ1bGVzIGFyZSBhcyBmb2xsb3dzOgorICAvKiBSZXR1cm4gdmFsdWUgaGFuZGxpbmcuICAKKyAgICBUaGUgcnVsZXMgbTMyIGFyZSBhcyBmb2xsb3dzOgogICAgICAtIDMyLWJpdCAob3IgbGVzcykgaW50ZWdlciB2YWx1ZXMgYXJlIHJldHVybmVkIGluIGdwcjM7Ci0gICAgIC0gU3RydWN0dXJlcyBvZiBzaXplIDw9IDQgYnl0ZXMgYWxzbyByZXR1cm5lZCBpbiBncHIzOwotICAgICAtIDY0LWJpdCBpbnRlZ2VyIHZhbHVlcyBhbmQgc3RydWN0dXJlcyBiZXR3ZWVuIDUgYW5kIDggYnl0ZXMgYXJlIHJldHVybmVkCi0gICAgICAgaW4gZ3ByMyBhbmQgZ3ByNDsKKyAgICAgLSBzdHJ1Y3R1cmVzIG9mIHNpemUgPD0gNCBieXRlcyBhbHNvIHJldHVybmVkIGluIGdwcjM7CisgICAgIC0gNjQtYml0IGludGVnZXIgdmFsdWVzIFs/Pz8gYW5kIHN0cnVjdHVyZXMgYmV0d2VlbiA1IGFuZCA4IGJ5dGVzXSBhcmUKKyAgICAgICByZXR1cm5lZCBpbiBncHIzIGFuZCBncHI0OwogICAgICAtIFNpbmdsZS9kb3VibGUgRlAgdmFsdWVzIGFyZSByZXR1cm5lZCBpbiBmcHIxOwogICAgICAtIExvbmcgZG91YmxlIEZQIChpZiBub3QgZXF1aXZhbGVudCB0byBkb3VibGUpIHZhbHVlcyBhcmUgcmV0dXJuZWQgaW4KICAgICAgICBmcHIxIGFuZCBmcHIyOworICAgICBtNjQ6CisgICAgIC0gNjQtYml0IG9yIHNtYWxsZXIgaW50ZWdyYWwgdmFsdWVzIGFyZSByZXR1cm5lZCBpbiBHUFIzCisgICAgIC0gU2luZ2xlL2RvdWJsZSBGUCB2YWx1ZXMgYXJlIHJldHVybmVkIGluIGZwcjE7CisgICAgIC0gTG9uZyBkb3VibGUgRlAgdmFsdWVzIGFyZSByZXR1cm5lZCBpbiBmcHIxIGFuZCBmcHIyOworICAgICBtNjQgU3RydWN0dXJlczoKKyAgICAgLSBJZiB0aGUgc3RydWN0dXJlIGNvdWxkIGJlIGFjY29tbW9kYXRlZCBpbiByZWdpc3RlcnMgd2VyZSBpdCB0byBiZSB0aGUKKyAgICAgICBmaXJzdCBhcmd1bWVudCB0byBhIHJvdXRpbmUsIHRoZW4gaXQgaXMgcmV0dXJuZWQgaW4gdGhvc2UgcmVnaXN0ZXJzLgorICAgICBtMzIvbTY0IHN0cnVjdHVyZXMgb3RoZXJ3aXNlOgogICAgICAtIExhcmdlciBzdHJ1Y3R1cmVzIHZhbHVlcyBhcmUgYWxsb2NhdGVkIHNwYWNlIGFuZCBhIHBvaW50ZXIgaXMgcGFzc2VkCiAgICAgICAgYXMgdGhlIGZpcnN0IGFyZ3VtZW50LiAgKi8KICAgc3dpdGNoIChjaWYtPnJ0eXBlLT50eXBlKQpAQCAtNDEwLDkgKzczMyw0MiBAQAogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEZGSV9UWVBFX1NUUlVDVDoKKyNpZiBkZWZpbmVkKFBPV0VSUENfREFSV0lONjQpCisgICAgICB7CisJLyogQ2FuIHdlIGZpdCB0aGUgc3RydWN0IGludG8gcmVncz8gICovCisJaWYgKGRhcndpbjY0X3N0cnVjdF9yZXRfYnlfdmFsdWVfcCAoY2lmLT5ydHlwZSkpCisJICB7CisJICAgIHVuc2lnbmVkIG5mcHIgPSAwOworCSAgICBmbGFncyB8PSBGTEFHX1JFVFVSTlNfU1RSVUNUOworCSAgICBpZiAoY2lmLT5ydHlwZS0+c2l6ZSAhPSAxNikKKwkgICAgICBkYXJ3aW42NF9zY2FuX3N0cnVjdF9mb3JfZmxvYXRzIChjaWYtPnJ0eXBlLCAmbmZwcikgOworCSAgICBlbHNlCisJICAgICAgZmxhZ3MgfD0gRkxBR19SRVRVUk5TXzEyOEJJVFM7CisJICAgIC8qIFdpbGwgYmUgMCBmb3IgMTZieXRlIHN0cnVjdC4gICovCisJICAgIGlmIChuZnByKQorCSAgICAgIGZsYWdzIHw9IEZMQUdfUkVUVVJOU19GUDsKKwkgIH0KKwllbHNlIC8qIEJ5IHJlZi4gKi8KKwkgIHsKKwkgICAgZmxhZ3MgfD0gRkxBR19SRVRWQUxfUkVGRVJFTkNFOworCSAgICBmbGFncyB8PSBGTEFHX1JFVFVSTlNfTk9USElORzsKKwkgICAgaW50YXJnX2NvdW50Kys7CisJICB9CisgICAgICB9CisjZWxpZiBkZWZpbmVkKERBUldJTl9QUEMpCisgICAgICBpZiAoY2lmLT5ydHlwZS0+c2l6ZSA8PSA0KQorCWZsYWdzIHw9IEZMQUdfUkVUVVJOU19TVFJVQ1Q7CisgICAgICBlbHNlIC8qIGVsc2UgYnkgcmVmZXJlbmNlLiAgKi8KKwl7CisJICBmbGFncyB8PSBGTEFHX1JFVFZBTF9SRUZFUkVOQ0U7CisJICBmbGFncyB8PSBGTEFHX1JFVFVSTlNfTk9USElORzsKKwkgIGludGFyZ19jb3VudCsrOworCX0KKyNlbHNlIC8qIGFzc3VtZSB3ZSBwYXNzIGJ5IHJlZi4gICovCiAgICAgICBmbGFncyB8PSBGTEFHX1JFVFZBTF9SRUZFUkVOQ0U7CiAgICAgICBmbGFncyB8PSBGTEFHX1JFVFVSTlNfTk9USElORzsKICAgICAgIGludGFyZ19jb3VudCsrOworI2VuZGlmCiAgICAgICBicmVhazsKICAgICBjYXNlIEZGSV9UWVBFX1ZPSUQ6CiAgICAgICBmbGFncyB8PSBGTEFHX1JFVFVSTlNfTk9USElORzsKQEAgLTQyNSw1NyArNzgxLDgzIEBACiAKICAgLyogVGhlIGZpcnN0IE5VTV9HUFJfQVJHX1JFR0lTVEVSUyB3b3JkcyBvZiBpbnRlZ2VyIGFyZ3VtZW50cywgYW5kIHRoZQogICAgICBmaXJzdCBOVU1fRlBSX0FSR19SRUdJU1RFUlMgZnAgYXJndW1lbnRzLCBnbyBpbiByZWdpc3RlcnM7IHRoZSByZXN0Ci0gICAgIGdvZXMgb24gdGhlIHN0YWNrLiAgU3RydWN0dXJlcyBhcmUgcGFzc2VkIGFzIGEgcG9pbnRlciB0byBhIGNvcHkgb2YKLSAgICAgdGhlIHN0cnVjdHVyZS4gU3R1ZmYgb24gdGhlIHN0YWNrIG5lZWRzIHRvIGtlZXAgcHJvcGVyIGFsaWdubWVudC4gICovCisgICAgIGdvZXMgb24gdGhlIHN0YWNrLiAgCisgICAgID8/PyBTdHJ1Y3R1cmVzIGFyZSBwYXNzZWQgYXMgYSBwb2ludGVyIHRvIGEgY29weSBvZiB0aGUgc3RydWN0dXJlLiAKKyAgICAgU3R1ZmYgb24gdGhlIHN0YWNrIG5lZWRzIHRvIGtlZXAgcHJvcGVyIGFsaWdubWVudC4gIAorICAgICBGb3IgbTY0IHRoZSBjb3VudCBpcyBlZmZlY3RpdmVseSBvZiBoYWxmLUdQUnMuICAqLwogICBmb3IgKHB0ciA9IGNpZi0+YXJnX3R5cGVzLCBpID0gY2lmLT5uYXJnczsgaSA+IDA7IGktLSwgcHRyKyspCiAgICAgeworICAgICAgdW5zaWduZWQgYWxpZ25fd29yZHM7CiAgICAgICBzd2l0Y2ggKCgqcHRyKS0+dHlwZSkKIAl7CiAJY2FzZSBGRklfVFlQRV9GTE9BVDoKIAljYXNlIEZGSV9UWVBFX0RPVUJMRToKIAkgIGZwYXJnX2NvdW50Kys7CisjaWYgIWRlZmluZWQoUE9XRVJQQ19EQVJXSU42NCkKIAkgIC8qIElmIHRoaXMgRlAgYXJnIGlzIGdvaW5nIG9uIHRoZSBzdGFjaywgaXQgbXVzdCBiZQogCSAgICAgOC1ieXRlLWFsaWduZWQuICAqLwogCSAgaWYgKGZwYXJnX2NvdW50ID4gTlVNX0ZQUl9BUkdfUkVHSVNURVJTCi0JICAgICAgJiYgaW50YXJnX2NvdW50JTIgIT0gMCkKKwkgICAgICAmJiAoaW50YXJnX2NvdW50ICYgMHgwMSkgIT0gMCkKIAkgICAgaW50YXJnX2NvdW50Kys7CisjZW5kaWYKIAkgIGJyZWFrOwogCiAjaWYgRkZJX1RZUEVfTE9OR0RPVUJMRSAhPSBGRklfVFlQRV9ET1VCTEUKLQogCWNhc2UgRkZJX1RZUEVfTE9OR0RPVUJMRToKIAkgIGZwYXJnX2NvdW50ICs9IDI7CiAJICAvKiBJZiB0aGlzIEZQIGFyZyBpcyBnb2luZyBvbiB0aGUgc3RhY2ssIGl0IG11c3QgYmUKLQkgICAgIDgtYnl0ZS1hbGlnbmVkLiAgKi8KLQkgIGlmIChmcGFyZ19jb3VudCA+IE5VTV9GUFJfQVJHX1JFR0lTVEVSUwotCSAgICAgICYmIGludGFyZ19jb3VudCUyICE9IDApCi0JICAgIGludGFyZ19jb3VudCsrOwotCSAgaW50YXJnX2NvdW50ICs9MjsKKwkgICAgIDE2LWJ5dGUtYWxpZ25lZC4gICovCisJICBpZiAoZnBhcmdfY291bnQgPj0gTlVNX0ZQUl9BUkdfUkVHSVNURVJTKQorI2lmIGRlZmluZWQgKFBPV0VSUEM2NCkKKwkgICAgaW50YXJnX2NvdW50ID0gQUxJR04oaW50YXJnX2NvdW50LCAyKTsKKyNlbHNlCisJICAgIGludGFyZ19jb3VudCA9IEFMSUdOKGludGFyZ19jb3VudCwgNCk7CisjZW5kaWYKIAkgIGJyZWFrOwogI2VuZGlmCiAKIAljYXNlIEZGSV9UWVBFX1VJTlQ2NDoKIAljYXNlIEZGSV9UWVBFX1NJTlQ2NDoKKyNpZiBkZWZpbmVkKFBPV0VSUEM2NCkKKwkgIGludGFyZ19jb3VudCsrOworI2Vsc2UKIAkgIC8qICdsb25nIGxvbmcnIGFyZ3VtZW50cyBhcmUgcGFzc2VkIGFzIHR3byB3b3JkcywgYnV0CiAJICAgICBlaXRoZXIgYm90aCB3b3JkcyBtdXN0IGZpdCBpbiByZWdpc3RlcnMgb3IgYm90aCBnbwogCSAgICAgb24gdGhlIHN0YWNrLiAgSWYgdGhleSBnbyBvbiB0aGUgc3RhY2ssIHRoZXkgbXVzdAogCSAgICAgYmUgOC1ieXRlLWFsaWduZWQuICAqLwogCSAgaWYgKGludGFyZ19jb3VudCA9PSBOVU1fR1BSX0FSR19SRUdJU1RFUlMtMQotCSAgICAgIHx8IChpbnRhcmdfY291bnQgPj0gTlVNX0dQUl9BUkdfUkVHSVNURVJTICYmIGludGFyZ19jb3VudCUyICE9IDApKQorCSAgICAgIHx8IChpbnRhcmdfY291bnQgPj0gTlVNX0dQUl9BUkdfUkVHSVNURVJTIAorCSAgICAgICAgICAmJiAoaW50YXJnX2NvdW50ICYgMHgwMSkgIT0gMCkpCiAJICAgIGludGFyZ19jb3VudCsrOwogCSAgaW50YXJnX2NvdW50ICs9IDI7CisjZW5kaWYKIAkgIGJyZWFrOwogCiAJY2FzZSBGRklfVFlQRV9TVFJVQ1Q6CiAJICBzaXplX2FsID0gKCpwdHIpLT5zaXplOwotCSAgLyogSWYgdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgc3RydWN0IGlzIGEgZG91YmxlLCB0aGVuIGFsaWduCi0JICAgICB0aGUgc3RydWN0IHRvIGRvdWJsZS13b3JkLiAgKi8KLQkgIGlmICgoKnB0ciktPmVsZW1lbnRzWzBdLT50eXBlID09IEZGSV9UWVBFX0RPVUJMRSkKLQkgICAgc2l6ZV9hbCA9IEFMSUdOKCgqcHRyKS0+c2l6ZSwgOCk7Ci0jaWZkZWYgUE9XRVJQQzY0CisjaWYgZGVmaW5lZChQT1dFUlBDX0RBUldJTjY0KQorCSAgYWxpZ25fd29yZHMgPSAoKnB0ciktPmFsaWdubWVudCA+PiAzOworCSAgaWYgKGFsaWduX3dvcmRzKQorCSAgICBpbnRhcmdfY291bnQgPSBBTElHTihpbnRhcmdfY291bnQsIGFsaWduX3dvcmRzKTsKKwkgIC8qIEJhc2Ugc2l6ZSBvZiB0aGUgc3RydWN0LiAgKi8KIAkgIGludGFyZ19jb3VudCArPSAoc2l6ZV9hbCArIDcpIC8gODsKKwkgIC8qIElmIDE2IGJ5dGVzIHRoZW4gZG9uJ3Qgd29ycnkgYWJvdXQgZmxvYXRzLiAgKi8KKwkgIGlmIChzaXplX2FsICE9IDE2KQorCSAgICAvKiBTY2FuIHRocm91Z2ggZm9yIGZsb2F0cyB0byBiZSBwbGFjZWQgaW4gcmVncy4gICovCisJICAgIGRhcndpbjY0X3NjYW5fc3RydWN0X2Zvcl9mbG9hdHMgKCpwdHIsICZmcGFyZ19jb3VudCkgOwogI2Vsc2UKKwkgIGFsaWduX3dvcmRzID0gKCpwdHIpLT5hbGlnbm1lbnQgPj4gMjsKKwkgIGlmIChhbGlnbl93b3JkcykKKwkgICAgaW50YXJnX2NvdW50ID0gQUxJR04oaW50YXJnX2NvdW50LCBhbGlnbl93b3Jkcyk7CisJICAvKiBJZiB0aGUgZmlyc3QgbWVtYmVyIG9mIHRoZSBzdHJ1Y3QgaXMgYSBkb3VibGUsIHRoZW4gYWxpZ24KKwkgICAgIHRoZSBzdHJ1Y3QgdG8gZG91YmxlLXdvcmQuIAorCSAgaWYgKCgqcHRyKS0+ZWxlbWVudHNbMF0tPnR5cGUgPT0gRkZJX1RZUEVfRE9VQkxFKQorCSAgICBzaXplX2FsID0gQUxJR04oKCpwdHIpLT5zaXplLCA4KTsgKi8KKyMgIGlmZGVmIFBPV0VSUEM2NAorCSAgaW50YXJnX2NvdW50ICs9IChzaXplX2FsICsgNykgLyA4OworIyAgZWxzZQogCSAgaW50YXJnX2NvdW50ICs9IChzaXplX2FsICsgMykgLyA0OworIyAgZW5kaWYKICNlbmRpZgogCSAgYnJlYWs7CiAKQEAgLTQ5MCw5ICs4NzIsMTggQEAKICAgaWYgKGZwYXJnX2NvdW50ICE9IDApCiAgICAgZmxhZ3MgfD0gRkxBR19GUF9BUkdVTUVOVFM7CiAKKyNpZiBkZWZpbmVkKFBPV0VSUENfREFSV0lONjQpCisgIC8qIFNwYWNlIHRvIGltYWdlIHRoZSBGUFIgcmVnaXN0ZXJzLCBpZiBuZWVkZWQgLSB3aGljaCBpbmNsdWRlcyB3aGVuIHRoZXkgbWlnaHQgYmUKKyAgICAgdXNlZCBpbiBhIHN0cnVjdCByZXR1cm4uICAqLworICBpZiAoZnBhcmdfY291bnQgIT0gMCAKKyAgICAgIHx8ICgoZmxhZ3MgJiBGTEFHX1JFVFVSTlNfU1RSVUNUKQorCSAgICYmIChmbGFncyAmIEZMQUdfUkVUVVJOU19GUCkpKQorICAgIGJ5dGVzICs9IE5VTV9GUFJfQVJHX1JFR0lTVEVSUyAqIHNpemVvZihkb3VibGUpOworI2Vsc2UKICAgLyogU3BhY2UgZm9yIHRoZSBGUFIgcmVnaXN0ZXJzLCBpZiBuZWVkZWQuICAqLwogICBpZiAoZnBhcmdfY291bnQgIT0gMCkKICAgICBieXRlcyArPSBOVU1fRlBSX0FSR19SRUdJU1RFUlMgKiBzaXplb2YoZG91YmxlKTsKKyNlbmRpZgogCiAgIC8qIFN0YWNrIHNwYWNlLiAgKi8KICNpZmRlZiBQT1dFUlBDNjQKQEAgLTUwNiw3ICs4OTcsNyBAQAogICAgIGJ5dGVzICs9IE5VTV9HUFJfQVJHX1JFR0lTVEVSUyAqIHNpemVvZihsb25nKTsKIAogICAvKiBUaGUgc3RhY2sgc3BhY2UgYWxsb2NhdGVkIG5lZWRzIHRvIGJlIGEgbXVsdGlwbGUgb2YgMTYgYnl0ZXMuICAqLwotICBieXRlcyA9IChieXRlcyArIDE1KSAmIH4weEY7CisgIGJ5dGVzID0gQUxJR04oYnl0ZXMsIDE2KSA7CiAKICAgY2lmLT5mbGFncyA9IGZsYWdzOwogICBjaWYtPmJ5dGVzID0gYnl0ZXM7CkBAIC01MTYsOCArOTA3LDkgQEAKIAogZXh0ZXJuIHZvaWQgZmZpX2NhbGxfQUlYKGV4dGVuZGVkX2NpZiAqLCBsb25nLCB1bnNpZ25lZCwgdW5zaWduZWQgKiwKIAkJCSB2b2lkICgqZm4pKHZvaWQpLCB2b2lkICgqZm4yKSh2b2lkKSk7CisKIGV4dGVybiB2b2lkIGZmaV9jYWxsX0RBUldJTihleHRlbmRlZF9jaWYgKiwgbG9uZywgdW5zaWduZWQsIHVuc2lnbmVkICosCi0JCQkgICAgdm9pZCAoKmZuKSh2b2lkKSwgdm9pZCAoKmZuMikodm9pZCkpOworCQkJICAgIHZvaWQgKCpmbikodm9pZCksIHZvaWQgKCpmbjIpKHZvaWQpLCBmZmlfdHlwZSopOwogCiB2b2lkCiBmZmlfY2FsbCAoZmZpX2NpZiAqY2lmLCB2b2lkICgqZm4pKHZvaWQpLCB2b2lkICpydmFsdWUsIHZvaWQgKiphdmFsdWUpCkBAIC01NDIsMTEgKzkzNCwxMSBAQAogICAgIHsKICAgICBjYXNlIEZGSV9BSVg6CiAgICAgICBmZmlfY2FsbF9BSVgoJmVjaWYsIC0obG9uZyljaWYtPmJ5dGVzLCBjaWYtPmZsYWdzLCBlY2lmLnJ2YWx1ZSwgZm4sCi0JCSAgIGZmaV9wcmVwX2FyZ3MpOworCQkgICBGRklfRk4oZmZpX3ByZXBfYXJncykpOwogICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRklfREFSV0lOOgogICAgICAgZmZpX2NhbGxfREFSV0lOKCZlY2lmLCAtKGxvbmcpY2lmLT5ieXRlcywgY2lmLT5mbGFncywgZWNpZi5ydmFsdWUsIGZuLAotCQkgICAgICBmZmlfcHJlcF9hcmdzKTsKKwkJICAgICAgRkZJX0ZOKGZmaV9wcmVwX2FyZ3MpLCBjaWYtPnJ0eXBlKTsKICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICBGRklfQVNTRVJUKDApOwpAQCAtNTY2LDU4ICs5NTgsNDggQEAKIH0gYWl4X2ZkOwogCiAvKiBoZXJlIEknZCBsaWtlIHRvIGFkZCB0aGUgc3RhY2sgZnJhbWUgbGF5b3V0IHdlIHVzZSBpbiBkYXJ3aW5fY2xvc3VyZS5TCi0gICBhbmQgYWl4X2Nsc291cmUuUworICAgYW5kIGFpeF9jbG9zdXJlLlMKIAotICAgU1AgcHJldmlvdXMgLT4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgPC0tLSBjaGlsZCBmcmFtZQotCQkgIHwgYmFjayBjaGFpbiB0byBjYWxsZXIgNCAgICAgICAgICAgICAgICB8Ci0JCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgNAotCQkgIHwgc2F2ZWQgQ1IgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0JCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgOAotCQkgIHwgc2F2ZWQgTFIgNCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0JCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgMTIKLQkJICB8IHJlc2VydmVkIGZvciBjb21waWxlcnMgNCAgICAgICAgICAgICAgfAotCQkgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDE2Ci0JCSAgfCByZXNlcnZlZCBmb3IgYmluZGVycyA0ICAgICAgICAgICAgICAgIHwKLQkJICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAyMAotCQkgIHwgc2F2ZWQgVE9DIHBvaW50ZXIgNCAgICAgICAgICAgICAgICAgICB8Ci0JCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgMjQKLQkJICB8IGFsd2F5cyByZXNlcnZlZCA4KjQ9MzIgKHByZXZpb3VzIEdQUnMpfAotCQkgIHwgYWNjb3JkaW5nIHRvIHRoZSBsaW5rYWdlIGNvbnZlbnRpb24gICB8Ci0JCSAgfCBmcm9tIEFJWCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQkJICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyA1NgotCQkgIHwgb3VyIEZQUiBhcmVhIDEzKjg9MTA0ICAgICAgICAgICAgICAgICB8Ci0JCSAgfCBmMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQkJICB8IC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotCQkgIHwgZjEzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0JCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgMTYwCi0JCSAgfCByZXN1bHQgYXJlYSA4ICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQkJICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAxNjgKLQkJICB8IGFsaWduZW1lbnQgdG8gdGhlIG5leHQgbXVsdGlwbGUgb2YgMTYgfAotU1AgY3VycmVudCAtLT4gICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgMTc2IDwtIHBhcmVudCBmcmFtZQotCQkgIHwgYmFjayBjaGFpbiB0byBjYWxsZXIgNCAgICAgICAgICAgICAgICB8Ci0JCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgMTgwCi0JCSAgfCBzYXZlZCBDUiA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQkJICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAxODQKLQkJICB8IHNhdmVkIExSIDQgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotCQkgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDE4OAotCQkgIHwgcmVzZXJ2ZWQgZm9yIGNvbXBpbGVycyA0ICAgICAgICAgICAgICB8Ci0JCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgMTkyCi0JCSAgfCByZXNlcnZlZCBmb3IgYmluZGVycyA0ICAgICAgICAgICAgICAgIHwKLQkJICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAxOTYKLQkJICB8IHNhdmVkIFRPQyBwb2ludGVyIDQgICAgICAgICAgICAgICAgICAgfAotCQkgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIDIwMAotCQkgIHwgYWx3YXlzIHJlc2VydmVkIDgqND0zMiAgd2Ugc3RvcmUgb3VyICB8Ci0JCSAgfCBHUFJzIGhlcmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQkJICB8IHIzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAotCQkgIHwgLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0JCSAgfCByMTAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQkJICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKyAyMzIKLQkJICB8IG92ZXJmbG93IHBhcnQgICAgICAgICAgICAgICAgICAgICAgICAgfAotCQkgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHh4eAotCQkgIHwgPz8/PyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0JCSAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsgeHh4CisgICBtMzIvbTY0CisKKyAgIFRoZSBzdGFjayBsYXlvdXQgbG9va3MgbGlrZSB0aGlzOgorCisgICB8ICAgQWRkaXRpb25hbCBwYXJhbXMuLi4JCQl8IHwgICAgIEhpZ2hlciBhZGRyZXNzCisgICB+CQkJCQkJfiB+CisgICB8ICAgUGFyYW1ldGVycyAgICAgIChhdCBsZWFzdCA4KjQvOD0zMi82NCkJfCB8IE5VTV9HUFJfQVJHX1JFR0lTVEVSUworICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8CisgICB8ICAgVE9DPVIyIChBSVgpIFJlc2VydmVkIChEYXJ3aW4pICAgNC84CXwgfAorICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8CisgICB8ICAgUmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgIDIqNC84CXwgfAorICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8CisgICB8ICAgU3BhY2UgZm9yIGNhbGxlZSdzIExSCQk0LzgJfCB8CisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwKKyAgIHwgICBTYXZlZCBDUiBbbG93IHdvcmQgZm9yIG02NF0gICAgICA0LzgJfCB8CisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwKKyAgIHwgICBDdXJyZW50IGJhY2tjaGFpbiBwb2ludGVyCTQvOAl8LS8gUGFyZW50J3MgZnJhbWUuCisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IDwrIDw8PCBvbiBlbnRyeSB0byBmZmlfY2xvc3VyZV9BU00KKyAgIHwgICBSZXN1bHQgQnl0ZXMJCQkxNgl8IHwKKyAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgfAorICAgfiAgIHBhZGRpbmcgdG8gMTYtYnl0ZSBhbGlnbm1lbnQJCX4gfgorICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8CisgICB8ICAgTlVNX0ZQUl9BUkdfUkVHSVNURVJTIHNsb3RzCQl8IHwKKyAgIHwgICBoZXJlIGZwMTMgLi4gZnAxCQkgICAgICAgMTMqOAl8IHwKKyAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgfAorICAgfCAgIFIzLi5SMTAJCQkgIDgqNC84PTMyLzY0CXwgfCBOVU1fR1BSX0FSR19SRUdJU1RFUlMKKyAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgfAorICAgfCAgIFRPQz1SMiAoQUlYKSBSZXNlcnZlZCAoRGFyd2luKSAgIDQvOAl8IHwKKyAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwgfAlzdGFjawl8CisgICB8ICAgUmVzZXJ2ZWQgW2NvbXBpbGVyLGJpbmRlcl0gICAgIDIqNC84CXwgfAlncm93cwl8CisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwJZG93bglWCisgICB8ICAgU3BhY2UgZm9yIGNhbGxlZSdzIExSCQk0LzgJfCB8CisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18IHwJbG93ZXIgYWRkcmVzc2VzCisgICB8ICAgU2F2ZWQgQ1IgW2xvdyB3b3JkIGZvciBtNjRdICAgICAgNC84CXwgfAorICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfCB8ICAgICBzdGFjayBwb2ludGVyIGhlcmUKKyAgIHwgICBDdXJyZW50IGJhY2tjaGFpbiBwb2ludGVyCTQvOAl8LS8JZHVyaW5nCisgICB8LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18ICAgPDw8CWZmaV9jbG9zdXJlX0FTTS4KIAogKi8KKwogZmZpX3N0YXR1cwogZmZpX3ByZXBfY2xvc3VyZV9sb2MgKGZmaV9jbG9zdXJlKiBjbG9zdXJlLAogCQkgICAgICBmZmlfY2lmKiBjaWYsCkBAIC02MzEsMzAgKzEwMTMsNDQgQEAKIAogICBzd2l0Y2ggKGNpZi0+YWJpKQogICAgIHsKLSAgICBjYXNlIEZGSV9EQVJXSU46CisgICAgICBjYXNlIEZGSV9EQVJXSU46CiAKLSAgICAgIEZGSV9BU1NFUlQgKGNpZi0+YWJpID09IEZGSV9EQVJXSU4pOworCUZGSV9BU1NFUlQgKGNpZi0+YWJpID09IEZGSV9EQVJXSU4pOwogCi0gICAgICB0cmFtcCA9ICh1bnNpZ25lZCBpbnQgKikgJmNsb3N1cmUtPnRyYW1wWzBdOwotICAgICAgdHJhbXBbMF0gPSAweDdjMDgwMmE2OyAgLyogICBtZmxyICAgIHIwICAqLwotICAgICAgdHJhbXBbMV0gPSAweDQyOWYwMDBkOyAgLyogICBiY2wtICAgIDIwLDQqY3I3K3NvLDB4MTAgICovCi0gICAgICB0cmFtcFs0XSA9IDB4N2Q2ODAyYTY7ICAvKiAgIG1mbHIgICAgcjExICAqLwotICAgICAgdHJhbXBbNV0gPSAweDgxOGIwMDAwOyAgLyogICBsd3ogICAgIHIxMiwwKHIxMSkgZnVuY3Rpb24gYWRkcmVzcyAgKi8KLSAgICAgIHRyYW1wWzZdID0gMHg3YzA4MDNhNjsgIC8qICAgbXRsciAgICByMCAgICovCi0gICAgICB0cmFtcFs3XSA9IDB4N2Q4OTAzYTY7ICAvKiAgIG10Y3RyICAgcjEyICAqLwotICAgICAgdHJhbXBbOF0gPSAweDgxNmIwMDA0OyAgLyogICBsd3ogICAgIHIxMSw0KHIxMSkgc3RhdGljIGNoYWluICAqLwotICAgICAgdHJhbXBbOV0gPSAweDRlODAwNDIwOyAgLyogICBiY3RyICAqLwotICAgICAgdHJhbXBbMl0gPSAodW5zaWduZWQgbG9uZykgZmZpX2Nsb3N1cmVfQVNNOyAvKiBmdW5jdGlvbiAgKi8KLSAgICAgIHRyYW1wWzNdID0gKHVuc2lnbmVkIGxvbmcpIGNvZGVsb2M7IC8qIGNvbnRleHQgICovCisJdHJhbXAgPSAodW5zaWduZWQgaW50ICopICZjbG9zdXJlLT50cmFtcFswXTsKKyNpZiBkZWZpbmVkKFBPV0VSUENfREFSV0lONjQpCisJdHJhbXBbMF0gPSAweDdjMDgwMmE2OyAgLyogICBtZmxyICAgIHIwICAqLworCXRyYW1wWzFdID0gMHg0MjlmMDAxNTsgIC8qICAgYmNsLSAgICAyMCw0KmNyNytzbywgICsweDE4IChMMSkgICovCisJLyogV2UgcHV0IHRoZSBhZGRyZXNzZXMgaGVyZS4gICovCisJdHJhbXBbNl0gPSAweDdkNjgwMmE2OyAgLypMMTogICBtZmxyICAgIHIxMSAgKi8KKwl0cmFtcFs3XSA9IDB4ZTk4YjAwMDA7ICAvKiAgIGxkICAgICByMTIsMChyMTEpIGZ1bmN0aW9uIGFkZHJlc3MgICovCisJdHJhbXBbOF0gPSAweDdjMDgwM2E2OyAgLyogICBtdGxyICAgIHIwICAgKi8KKwl0cmFtcFs5XSA9IDB4N2Q4OTAzYTY7ICAvKiAgIG10Y3RyICAgcjEyICAqLworCXRyYW1wWzEwXSA9IDB4ZTk2YjAwMDg7ICAvKiAgIGx3eiAgICAgcjExLDgocjExKSBzdGF0aWMgY2hhaW4gICovCisJdHJhbXBbMTFdID0gMHg0ZTgwMDQyMDsgIC8qICAgYmN0ciAgKi8KIAotICAgICAgY2xvc3VyZS0+Y2lmID0gY2lmOwotICAgICAgY2xvc3VyZS0+ZnVuID0gZnVuOwotICAgICAgY2xvc3VyZS0+dXNlcl9kYXRhID0gdXNlcl9kYXRhOworCSooKHVuc2lnbmVkIGxvbmcgKikmdHJhbXBbMl0pID0gKHVuc2lnbmVkIGxvbmcpIGZmaV9jbG9zdXJlX0FTTTsgLyogZnVuY3Rpb24gICovCisJKigodW5zaWduZWQgbG9uZyAqKSZ0cmFtcFs0XSkgPSAodW5zaWduZWQgbG9uZykgY29kZWxvYzsgLyogY29udGV4dCAgKi8KKyNlbHNlCisJdHJhbXBbMF0gPSAweDdjMDgwMmE2OyAgLyogICBtZmxyICAgIHIwICAqLworCXRyYW1wWzFdID0gMHg0MjlmMDAwZDsgIC8qICAgYmNsLSAgICAyMCw0KmNyNytzbywweDEwICAqLworCXRyYW1wWzRdID0gMHg3ZDY4MDJhNjsgIC8qICAgbWZsciAgICByMTEgICovCisJdHJhbXBbNV0gPSAweDgxOGIwMDAwOyAgLyogICBsd3ogICAgIHIxMiwwKHIxMSkgZnVuY3Rpb24gYWRkcmVzcyAgKi8KKwl0cmFtcFs2XSA9IDB4N2MwODAzYTY7ICAvKiAgIG10bHIgICAgcjAgICAqLworCXRyYW1wWzddID0gMHg3ZDg5MDNhNjsgIC8qICAgbXRjdHIgICByMTIgICovCisJdHJhbXBbOF0gPSAweDgxNmIwMDA0OyAgLyogICBsd3ogICAgIHIxMSw0KHIxMSkgc3RhdGljIGNoYWluICAqLworCXRyYW1wWzldID0gMHg0ZTgwMDQyMDsgIC8qICAgYmN0ciAgKi8KKwl0cmFtcFsyXSA9ICh1bnNpZ25lZCBsb25nKSBmZmlfY2xvc3VyZV9BU007IC8qIGZ1bmN0aW9uICAqLworCXRyYW1wWzNdID0gKHVuc2lnbmVkIGxvbmcpIGNvZGVsb2M7IC8qIGNvbnRleHQgICovCisjZW5kaWYKKwljbG9zdXJlLT5jaWYgPSBjaWY7CisJY2xvc3VyZS0+ZnVuID0gZnVuOworCWNsb3N1cmUtPnVzZXJfZGF0YSA9IHVzZXJfZGF0YTsKIAotICAgICAgLyogRmx1c2ggdGhlIGljYWNoZS4gT25seSBuZWNlc3Nhcnkgb24gRGFyd2luLiAgKi8KLSAgICAgIGZsdXNoX3JhbmdlKGNvZGVsb2MsIEZGSV9UUkFNUE9MSU5FX1NJWkUpOworCS8qIEZsdXNoIHRoZSBpY2FjaGUuIE9ubHkgbmVjZXNzYXJ5IG9uIERhcndpbi4gICovCisJZmx1c2hfcmFuZ2UoY29kZWxvYywgRkZJX1RSQU1QT0xJTkVfU0laRSk7CiAKLSAgICAgIGJyZWFrOworCWJyZWFrOwogCiAgICAgY2FzZSBGRklfQUlYOgogCkBAIC02NjksMTAgKzEwNjUsMTAgQEAKICAgICAgIGNsb3N1cmUtPmNpZiA9IGNpZjsKICAgICAgIGNsb3N1cmUtPmZ1biA9IGZ1bjsKICAgICAgIGNsb3N1cmUtPnVzZXJfZGF0YSA9IHVzZXJfZGF0YTsKKyAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKLQotICAgICAgRkZJX0FTU0VSVCgwKTsKKyAgICAgIHJldHVybiBGRklfQkFEX0FCSTsKICAgICAgIGJyZWFrOwogICAgIH0KICAgcmV0dXJuIEZGSV9PSzsKQEAgLTcwOCw3ICsxMTA0LDcgQEAKICAgZG91YmxlIGQ7CiB9IGZmaV9kYmxmbDsKIAotaW50CitmZmlfdHlwZSAqCiBmZmlfY2xvc3VyZV9oZWxwZXJfREFSV0lOIChmZmlfY2xvc3VyZSAqLCB2b2lkICosCiAJCQkgICB1bnNpZ25lZCBsb25nICosIGZmaV9kYmxmbCAqKTsKIApAQCAtNzE5LDcgKzExMTUsNyBAQAogICAgdXAgc3BhY2UgZm9yIGEgcmV0dXJuIHZhbHVlLCBmZmlfY2xvc3VyZV9BU00gaW52b2tlcyB0aGUKICAgIGZvbGxvd2luZyBoZWxwZXIgZnVuY3Rpb24gdG8gZG8gbW9zdCBvZiB0aGUgd29yay4gICovCiAKLWludAorZmZpX3R5cGUgKgogZmZpX2Nsb3N1cmVfaGVscGVyX0RBUldJTiAoZmZpX2Nsb3N1cmUgKmNsb3N1cmUsIHZvaWQgKnJ2YWx1ZSwKIAkJCSAgIHVuc2lnbmVkIGxvbmcgKnBnciwgZmZpX2RibGZsICpwZnIpCiB7CkBAIC03NDEsMTYgKzExMzcsMzIgQEAKICAgZmZpX2NpZiAqICAgICAgICBjaWY7CiAgIGZmaV9kYmxmbCAqICAgICAgZW5kX3BmciA9IHBmciArIE5VTV9GUFJfQVJHX1JFR0lTVEVSUzsKICAgdW5zaWduZWQgICAgICAgICBzaXplX2FsOworI2lmIGRlZmluZWQoUE9XRVJQQ19EQVJXSU42NCkKKyAgdW5zaWduZWQgCSAgIGZwc3VzZWQgPSAwOworI2VuZGlmCiAKICAgY2lmID0gY2xvc3VyZS0+Y2lmOwogICBhdmFsdWUgPSBhbGxvY2EgKGNpZi0+bmFyZ3MgKiBzaXplb2Yodm9pZCAqKSk7CiAKLSAgLyogQ29weSB0aGUgY2FsbGVyJ3Mgc3RydWN0dXJlIHJldHVybiB2YWx1ZSBhZGRyZXNzIHNvIHRoYXQgdGhlIGNsb3N1cmUKLSAgICAgcmV0dXJucyB0aGUgZGF0YSBkaXJlY3RseSB0byB0aGUgY2FsbGVyLiAgKi8KICAgaWYgKGNpZi0+cnR5cGUtPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUKQogICAgIHsKKyNpZiBkZWZpbmVkKFBPV0VSUENfREFSV0lONjQpCisgICAgICBpZiAoIWRhcndpbjY0X3N0cnVjdF9yZXRfYnlfdmFsdWVfcCAoY2lmLT5ydHlwZSkpCisJeworICAgIAkgIC8qIFdvbid0IGZpdCBpbnRvIHRoZSByZWdzIC0gcmV0dXJuIGJ5IHJlZi4gICovCisJICBydmFsdWUgPSAodm9pZCAqKSAqcGdyOworCSAgcGdyKys7CisJfQorI2VsaWYgZGVmaW5lZChEQVJXSU5fUFBDKQorICAgICAgaWYgKGNpZi0+cnR5cGUtPnNpemUgPiA0KQorCXsKKwkgIHJ2YWx1ZSA9ICh2b2lkICopICpwZ3I7CisJICBwZ3IrKzsKKwl9CisjZWxzZSAvKiBhc3N1bWUgd2UgcmV0dXJuIGJ5IHJlZi4gICovCiAgICAgICBydmFsdWUgPSAodm9pZCAqKSAqcGdyOwogICAgICAgcGdyKys7CisjZW5kaWYKICAgICB9CiAKICAgaSA9IDA7CkBAIC03NjQsNyArMTE3Niw3IEBACiAJewogCWNhc2UgRkZJX1RZUEVfU0lOVDg6CiAJY2FzZSBGRklfVFlQRV9VSU5UODoKLSNpZmRlZiBQT1dFUlBDNjQKKyNpZiAgZGVmaW5lZChQT1dFUlBDNjQpCiAJICBhdmFsdWVbaV0gPSAoY2hhciAqKSBwZ3IgKyA3OwogI2Vsc2UKIAkgIGF2YWx1ZVtpXSA9IChjaGFyICopIHBnciArIDM7CkBAIC03NzQsNyArMTE4Niw3IEBACiAKIAljYXNlIEZGSV9UWVBFX1NJTlQxNjoKIAljYXNlIEZGSV9UWVBFX1VJTlQxNjoKLSNpZmRlZiBQT1dFUlBDNjQKKyNpZiAgZGVmaW5lZChQT1dFUlBDNjQpCiAJICBhdmFsdWVbaV0gPSAoY2hhciAqKSBwZ3IgKyA2OwogI2Vsc2UKIAkgIGF2YWx1ZVtpXSA9IChjaGFyICopIHBnciArIDI7CkBAIC03ODQsNyArMTE5Niw3IEBACiAKIAljYXNlIEZGSV9UWVBFX1NJTlQzMjoKIAljYXNlIEZGSV9UWVBFX1VJTlQzMjoKLSNpZmRlZiBQT1dFUlBDNjQKKyNpZiAgZGVmaW5lZChQT1dFUlBDNjQpCiAJICBhdmFsdWVbaV0gPSAoY2hhciAqKSBwZ3IgKyA0OwogI2Vsc2UKIAljYXNlIEZGSV9UWVBFX1BPSU5URVI6CkBAIC03OTQsMzQgKzEyMDYsNTMgQEAKIAkgIGJyZWFrOwogCiAJY2FzZSBGRklfVFlQRV9TVFJVQ1Q6Ci0jaWZkZWYgUE9XRVJQQzY0CiAJICBzaXplX2FsID0gYXJnX3R5cGVzW2ldLT5zaXplOwotCSAgaWYgKGFyZ190eXBlc1tpXS0+ZWxlbWVudHNbMF0tPnR5cGUgPT0gRkZJX1RZUEVfRE9VQkxFKQotCSAgICBzaXplX2FsID0gQUxJR04gKGFyZ190eXBlc1tpXS0+c2l6ZSwgOCk7Ci0JICBpZiAoc2l6ZV9hbCA8IDMgJiYgY2lmLT5hYmkgPT0gRkZJX0RBUldJTikKLQkgICAgYXZhbHVlW2ldID0gKHZvaWQgKikgcGdyICsgOCAtIHNpemVfYWw7Ci0JICBlbHNlCi0JICAgIGF2YWx1ZVtpXSA9ICh2b2lkICopIHBncjsKKyNpZiBkZWZpbmVkKFBPV0VSUENfREFSV0lONjQpCisJICBwZ3IgPSAodW5zaWduZWQgbG9uZyAqKUFMSUdOKChjaGFyICopcGdyLCBhcmdfdHlwZXNbaV0tPmFsaWdubWVudCk7CisJICBpZiAoc2l6ZV9hbCA8IDMgfHwgc2l6ZV9hbCA9PSA0KQorCSAgICB7CisJICAgICAgYXZhbHVlW2ldID0gKChjaGFyICopcGdyKSs4LXNpemVfYWw7CisJICAgICAgaWYgKGFyZ190eXBlc1tpXS0+ZWxlbWVudHNbMF0tPnR5cGUgPT0gRkZJX1RZUEVfRkxPQVQKKwkJICAmJiBmcHN1c2VkIDwgTlVNX0ZQUl9BUkdfUkVHSVNURVJTKQorCQl7CisJCSAgKihmbG9hdCAqKXBnciA9IChmbG9hdCkgKihkb3VibGUgKilwZnI7CisJCSAgcGZyKys7CisJCSAgZnBzdXNlZCsrOworCQl9CisJICAgIH0KKwkgIGVsc2UgCisJICAgIHsKKwkgICAgICBpZiAoc2l6ZV9hbCAhPSAxNikKKwkJcGZyID0gKGZmaV9kYmxmbCAqKSAKKwkJICAgIGRhcndpbjY0X3N0cnVjdF9mbG9hdHNfdG9fbWVtIChhcmdfdHlwZXNbaV0sIChjaGFyICopcGdyLAorCQkJCQkJICAgKGRvdWJsZSAqKXBmciwgJmZwc3VzZWQpOworCSAgICAgIGF2YWx1ZVtpXSA9IHBncjsKKwkgICAgfQogCSAgcGdyICs9IChzaXplX2FsICsgNykgLyA4OwogI2Vsc2UKLQkgIC8qIFN0cnVjdHVyZXMgdGhhdCBtYXRjaCB0aGUgYmFzaWMgbW9kZXMgKFFJIDEgYnl0ZSwgSEkgMiBieXRlcywKLQkgICAgIFNJIDQgYnl0ZXMpIGFyZSBhbGlnbmVkIGFzIGlmIHRoZXkgd2VyZSB0aG9zZSBtb2Rlcy4gICovCi0JICBzaXplX2FsID0gYXJnX3R5cGVzW2ldLT5zaXplOwogCSAgLyogSWYgdGhlIGZpcnN0IG1lbWJlciBvZiB0aGUgc3RydWN0IGlzIGEgZG91YmxlLCB0aGVuIGFsaWduCiAJICAgICB0aGUgc3RydWN0IHRvIGRvdWJsZS13b3JkLiAgKi8KIAkgIGlmIChhcmdfdHlwZXNbaV0tPmVsZW1lbnRzWzBdLT50eXBlID09IEZGSV9UWVBFX0RPVUJMRSkKIAkgICAgc2l6ZV9hbCA9IEFMSUdOKGFyZ190eXBlc1tpXS0+c2l6ZSwgOCk7CisjICBpZiBkZWZpbmVkKFBPV0VSUEM2NCkKKwkgIEZGSV9BU1NFUlQgKGNpZi0+YWJpICE9IEZGSV9EQVJXSU4pOworCSAgYXZhbHVlW2ldID0gcGdyOworCSAgcGdyICs9IChzaXplX2FsICsgNykgLyA4OworIyAgZWxzZQorCSAgLyogU3RydWN0dXJlcyB0aGF0IG1hdGNoIHRoZSBiYXNpYyBtb2RlcyAoUUkgMSBieXRlLCBISSAyIGJ5dGVzLAorCSAgICAgU0kgNCBieXRlcykgYXJlIGFsaWduZWQgYXMgaWYgdGhleSB3ZXJlIHRob3NlIG1vZGVzLiAgKi8KIAkgIGlmIChzaXplX2FsIDwgMyAmJiBjaWYtPmFiaSA9PSBGRklfREFSV0lOKQotCSAgICBhdmFsdWVbaV0gPSAodm9pZCopIHBnciArIDQgLSBzaXplX2FsOworCSAgICBhdmFsdWVbaV0gPSAoY2hhciopIHBnciArIDQgLSBzaXplX2FsOwogCSAgZWxzZQotCSAgICBhdmFsdWVbaV0gPSAodm9pZCopIHBncjsKKwkgICAgYXZhbHVlW2ldID0gcGdyOwogCSAgcGdyICs9IChzaXplX2FsICsgMykgLyA0OworIyAgZW5kaWYKICNlbmRpZgogCSAgYnJlYWs7CiAKIAljYXNlIEZGSV9UWVBFX1NJTlQ2NDoKIAljYXNlIEZGSV9UWVBFX1VJTlQ2NDoKLSNpZmRlZiBQT1dFUlBDNjQKKyNpZiAgZGVmaW5lZChQT1dFUlBDNjQpCiAJY2FzZSBGRklfVFlQRV9QT0lOVEVSOgogCSAgYXZhbHVlW2ldID0gcGdyOwogCSAgcGdyKys7CkBAIC05MjQsNSArMTM1NSw1IEBACiAgIChjbG9zdXJlLT5mdW4pIChjaWYsIHJ2YWx1ZSwgYXZhbHVlLCBjbG9zdXJlLT51c2VyX2RhdGEpOwogCiAgIC8qIFRlbGwgZmZpX2Nsb3N1cmVfQVNNIHRvIHBlcmZvcm0gcmV0dXJuIHR5cGUgcHJvbW90aW9ucy4gICovCi0gIHJldHVybiBjaWYtPnJ0eXBlLT50eXBlOworICByZXR1cm4gY2lmLT5ydHlwZTsKIH0KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvZmZpdGFyZ2V0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL2ZmaXRhcmdldC5oCmluZGV4IGI0Zjk5MmUuLjNjOWRiNDkgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvZmZpdGFyZ2V0LmgKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9mZml0YXJnZXQuaApAQCAtMSw2ICsxLDggQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi1DLSotCi0gICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzICBSZWQgSGF0LCBJbmMuCi0gICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMKKyAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAyMDEyICBBbnRob255IEdyZWVuCisgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYworICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMyAgUmVkIEhhdCwgSW5jLgorCiAgICBUYXJnZXQgY29uZmlndXJhdGlvbiBtYWNyb3MgZm9yIFBvd2VyUEMuCiAKICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwpAQCAtMjgsMTUgKzMwLDI4IEBACiAjaWZuZGVmIExJQkZGSV9UQVJHRVRfSAogI2RlZmluZSBMSUJGRklfVEFSR0VUX0gKIAorI2lmbmRlZiBMSUJGRklfSAorI2Vycm9yICJQbGVhc2UgZG8gbm90IGluY2x1ZGUgZmZpdGFyZ2V0LmggZGlyZWN0bHkgaW50byB5b3VyIHNvdXJjZS4gIFVzZSBmZmkuaCBpbnN0ZWFkLiIKKyNlbmRpZgorCiAvKiAtLS0tIFN5c3RlbSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjaWYgZGVmaW5lZCAoUE9XRVJQQykgJiYgZGVmaW5lZCAoX19wb3dlcnBjNjRfXykJLyogbGludXg2NCAqLworI2lmbmRlZiBQT1dFUlBDNjQKICNkZWZpbmUgUE9XRVJQQzY0Ci0jZWxpZiBkZWZpbmVkIChQT1dFUlBDX0RBUldJTikgJiYgZGVmaW5lZCAoX19wcGM2NF9fKQkvKiBEYXJ3aW4gKi8KKyNlbmRpZgorI2VsaWYgZGVmaW5lZCAoUE9XRVJQQ19EQVJXSU4pICYmIGRlZmluZWQgKF9fcHBjNjRfXykJLyogRGFyd2luNjQgKi8KKyNpZm5kZWYgUE9XRVJQQzY0CiAjZGVmaW5lIFBPV0VSUEM2NAorI2VuZGlmCisjaWZuZGVmIFBPV0VSUENfREFSV0lONjQKKyNkZWZpbmUgUE9XRVJQQ19EQVJXSU42NAorI2VuZGlmCiAjZWxpZiBkZWZpbmVkIChQT1dFUlBDX0FJWCkgJiYgZGVmaW5lZCAoX182NEJJVF9fKQkvKiBBSVg2NCAqLworI2lmbmRlZiBQT1dFUlBDNjQKICNkZWZpbmUgUE9XRVJQQzY0CiAjZW5kaWYKKyNlbmRpZgogCiAjaWZuZGVmIExJQkZGSV9BU00KIHR5cGVkZWYgdW5zaWduZWQgbG9uZyAgICAgICAgICBmZmlfYXJnOwpAQCAtNTEsMTggKzY2LDE0IEBACiAgIEZGSV9MSU5VWDY0LAogICBGRklfTElOVVgsCiAgIEZGSV9MSU5VWF9TT0ZUX0ZMT0FULAotIyBpZmRlZiBQT1dFUlBDNjQKKyMgaWYgZGVmaW5lZChQT1dFUlBDNjQpCiAgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9MSU5VWDY0LAotIyBlbHNlCi0jICBpZiAoIWRlZmluZWQoX19OT19GUFJTX18pICYmIChfX0xEQkxfTUFOVF9ESUdfXyA9PSAxMDYpKQotICBGRklfREVGQVVMVF9BQkkgPSBGRklfTElOVVgsCi0jICBlbHNlCi0jICAgaWZkZWYgX19OT19GUFJTX18KKyMgZWxpZiBkZWZpbmVkKF9fTk9fRlBSU19fKQogICBGRklfREVGQVVMVF9BQkkgPSBGRklfTElOVVhfU09GVF9GTE9BVCwKLSMgICBlbHNlCisjIGVsaWYgKF9fTERCTF9NQU5UX0RJR19fID09IDEwNikKKyAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX0xJTlVYLAorIyBlbHNlCiAgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9HQ0NfU1lTViwKLSMgICBlbmRpZgotIyAgZW5kaWYKICMgZW5kaWYKICNlbmRpZgogCkBAIC0xMDgsOSArMTE5LDEzIEBACiAjZGVmaW5lIEZGSV9TWVNWX1RZUEVfU01BTExfU1RSVUNUIChGRklfVFlQRV9MQVNUICsgMikKIAogI2lmIGRlZmluZWQoUE9XRVJQQzY0KSB8fCBkZWZpbmVkKFBPV0VSUENfQUlYKQotI2RlZmluZSBGRklfVFJBTVBPTElORV9TSVpFIDI0CisjICBpZiBkZWZpbmVkKFBPV0VSUENfREFSV0lONjQpCisjICAgIGRlZmluZSBGRklfVFJBTVBPTElORV9TSVpFIDQ4CisjICBlbHNlCisjICAgIGRlZmluZSBGRklfVFJBTVBPTElORV9TSVpFIDI0CisjICBlbmRpZgogI2Vsc2UgLyogUE9XRVJQQyB8fCBQT1dFUlBDX0FJWCAqLwotI2RlZmluZSBGRklfVFJBTVBPTElORV9TSVpFIDQwCisjICBkZWZpbmUgRkZJX1RSQU1QT0xJTkVfU0laRSA0MAogI2VuZGlmCiAKICNpZm5kZWYgTElCRkZJX0FTTQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9wcGNfY2xvc3VyZS5TIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9wcGNfY2xvc3VyZS5TCmluZGV4IDU2ZjdkMWEuLjQxZmI4ODUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3Bvd2VycGMvcHBjX2Nsb3N1cmUuUworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL3BwY19jbG9zdXJlLlMKQEAgLTEyMiwyMiArMTIyLDQxIEBACiAJYmxyCiAKICMgY2FzZSBGRklfVFlQRV9GTE9BVAorI2lmbmRlZiBfX05PX0ZQUlNfXwogCWxmcyAlZjEsMTEyKzAoJXIxKQogCW10bHIgJXIwCiAJYWRkaSAlcjEsJXIxLDE0NAorI2Vsc2UKKwlub3AKKwlub3AKKwlub3AKKyNlbmRpZgogCWJscgogCiAjIGNhc2UgRkZJX1RZUEVfRE9VQkxFCisjaWZuZGVmIF9fTk9fRlBSU19fCiAJbGZkICVmMSwxMTIrMCglcjEpCiAJbXRsciAlcjAKIAlhZGRpICVyMSwlcjEsMTQ0CisjZWxzZQorCW5vcAorCW5vcAorCW5vcAorI2VuZGlmCiAJYmxyCiAKICMgY2FzZSBGRklfVFlQRV9MT05HRE9VQkxFCisjaWZuZGVmIF9fTk9fRlBSU19fCiAJbGZkICVmMSwxMTIrMCglcjEpCiAJbGZkICVmMiwxMTIrOCglcjEpCiAJbXRsciAlcjAKIAliIC5MZmluaXNoCisjZWxzZQorCW5vcAorCW5vcAorCW5vcAorCWJscgorI2VuZGlmCiAKICMgY2FzZSBGRklfVFlQRV9VSU5UOAogCWxieiAlcjMsMTEyKzMoJXIxKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcG93ZXJwYy9zeXN2LlMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL3N5c3YuUwppbmRleCA5NmVhMjJiLi42NzVlZDAzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL3N5c3YuUworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wb3dlcnBjL3N5c3YuUwpAQCAtODMsNiArODMsNyBAQAogCW5vcAogMToKIAorI2lmbmRlZiBfX05PX0ZQUlNfXwogCS8qIExvYWQgYWxsIHRoZSBGUCByZWdpc3RlcnMuICAqLwogCWJmLQk2LDJmCiAJbGZkCSVmMSwtMTYtKDgqNCktKDgqOCkoJXIyOCkKQEAgLTk0LDYgKzk1LDcgQEAKIAlsZmQJJWY2LC0xNi0oOCo0KS0oMyo4KSglcjI4KQogCWxmZAklZjcsLTE2LSg4KjQpLSgyKjgpKCVyMjgpCiAJbGZkCSVmOCwtMTYtKDgqNCktKDEqOCkoJXIyOCkKKyNlbmRpZgogMjoKIAogCS8qIE1ha2UgdGhlIGNhbGwuICAqLwpAQCAtMTAzLDcgKzEwNSw5IEBACiAJbXRjcmYJMHgwMSwlcjMxIC8qIGNyNyAgKi8KIAlidC0JMzEsTChzbWFsbF9zdHJ1Y3RfcmV0dXJuX3ZhbHVlKQogCWJ0LQkzMCxMKGRvbmVfcmV0dXJuX3ZhbHVlKQorI2lmbmRlZiBfX05PX0ZQUlNfXwogCWJ0LQkyOSxMKGZwX3JldHVybl92YWx1ZSkKKyNlbmRpZgogCXN0dwklcjMsMCglcjMwKQogCWJmKwkyOCxMKGRvbmVfcmV0dXJuX3ZhbHVlKQogCXN0dwklcjQsNCglcjMwKQpAQCAtMTI0LDYgKzEyOCw3IEBACiAJbHd6CSVyMSwwKCVyMSkKIAlibHIKIAorI2lmbmRlZiBfX05PX0ZQUlNfXwogTChmcF9yZXR1cm5fdmFsdWUpOgogCWJmCTI4LEwoZmxvYXRfcmV0dXJuX3ZhbHVlKQogCXN0ZmQJJWYxLDAoJXIzMCkKQEAgLTEzNCwyMSArMTM5LDE3IEBACiBMKGZsb2F0X3JldHVybl92YWx1ZSk6CiAJc3RmcwklZjEsMCglcjMwKQogCWIJTChkb25lX3JldHVybl92YWx1ZSkKKyNlbmRpZgogCiBMKHNtYWxsX3N0cnVjdF9yZXR1cm5fdmFsdWUpOgotCWV4dHJ3aQklcjYsJXIzMSwyLDE5ICAgICAgICAgLyogbnVtYmVyIG9mIGJ5dGVzIHBhZGRpbmcgPSBzaGlmdC84ICovCi0JbXRjcmYJMHgwMiwlcjMxCSAgICAgIC8qIGNvcHkgZmxhZ3MgdG8gY3JbMjQ6MjddIChjcjYpICovCi0JZXh0cndpCSVyNSwlcjMxLDUsMTkgICAgICAgICAvKiByNSA8LSBudW1iZXIgb2YgYml0cyBvZiBwYWRkaW5nICovCi0Jc3ViZmljICAlcjYsJXI2LDQgICAgICAgICAgICAgLyogcjYgPC0gbnVtYmVyIG9mIHVzZWZ1bCBieXRlcyBpbiByMyAqLwotCWJmLQkyNSxMKGRvbmVfcmV0dXJuX3ZhbHVlKSAvKiBzdHJ1Y3QgaW4gcjMgPyBpZiBub3QsIGRvbmUuICovCi0vKiBzbXN0X29uZV9yZWdpc3RlcjogKi8KLQlzbHcJJXIzLCVyMywlcjUgICAgICAgICAgIC8qIExlZnQtanVzdGlmeSB2YWx1ZSBpbiByMyAqLwotCW10eGVyCSVyNiAgICAgICAgICAgICAgICAgICAvKiBtb3ZlIGJ5dGUgY291bnQgdG8gWEVSIC4uLiAqLwotCXN0c3d4CSVyMywwLCVyMzAgICAgICAgICAgICAvKiAuLi4gYW5kIHN0b3JlIHRoYXQgbWFueSBieXRlcyAqLwotCWJmKwkyNixMKGRvbmVfcmV0dXJuX3ZhbHVlKSAgLyogc3RydWN0IGluIHIzOnI0ID8gKi8KLQlhZGQJJXI2LCVyNiwlcjMwICAgICAgICAgIC8qIGFkanVzdCBwb2ludGVyICovCi0Jc3Rzd2kJJXI0LCVyNiw0ICAgICAgICAgICAgIC8qIHN0b3JlIGxhc3QgZm91ciBieXRlcyAqLwotCWIJTChkb25lX3JldHVybl92YWx1ZSkKKwkvKgorCSAqIFRoZSBDIGNvZGUgYWx3YXlzIGFsbG9jYXRlcyBhIHByb3Blcmx5LWFsaWduZWQgOC1ieXRlIGJvdW5jZQorCSAqIGJ1ZmZlciB0byBtYWtlIHRoaXMgYXNzZW1ibHkgY29kZSB2ZXJ5IHNpbXBsZS4gIEp1c3Qgd3JpdGUgb3V0CisJICogcjMgYW5kIHI0IHRvIHRoZSBidWZmZXIgdG8gYWxsb3cgdGhlIEMgY29kZSB0byBoYW5kbGUgdGhlIHJlc3QuCisJICovCisJc3R3ICVyMywgMCglcjMwKQorCXN0dyAlcjQsIDQoJXIzMCkKKwliIEwoZG9uZV9yZXR1cm5fdmFsdWUpCiAKIC5MRkUxOgogRU5EKGZmaV9jYWxsX1NZU1YpCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wcmVwX2NpZi5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvcHJlcF9jaWYuYwppbmRleCBjMWMzYjlhLi5lYjY4MzQxIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9wcmVwX2NpZi5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3ByZXBfY2lmLmMKQEAgLTEsNSArMSw2IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgcHJlcF9jaWYuYyAtIENvcHlyaWdodCAoYykgMTk5NiwgMTk5OCwgMjAwNyAgUmVkIEhhdCwgSW5jLgorICAgcHJlcF9jaWYuYyAtIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiAgQW50aG9ueSBHcmVlbgorICAgICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5NiwgMTk5OCwgMjAwNyAgUmVkIEhhdCwgSW5jLgogCiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKICAgIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZQpAQCAtMzcsMTcgKzM4LDIxIEBACiB7CiAgIGZmaV90eXBlICoqcHRyOwogCi0gIEZGSV9BU1NFUlQoYXJnICE9IE5VTEwpOworICBpZiAoVU5MSUtFTFkoYXJnID09IE5VTEwgfHwgYXJnLT5lbGVtZW50cyA9PSBOVUxMKSkKKyAgICByZXR1cm4gRkZJX0JBRF9UWVBFREVGOwogCi0gIEZGSV9BU1NFUlQoYXJnLT5lbGVtZW50cyAhPSBOVUxMKTsKLSAgRkZJX0FTU0VSVChhcmctPnNpemUgPT0gMCk7Ci0gIEZGSV9BU1NFUlQoYXJnLT5hbGlnbm1lbnQgPT0gMCk7CisgIGFyZy0+c2l6ZSA9IDA7CisgIGFyZy0+YWxpZ25tZW50ID0gMDsKIAogICBwdHIgPSAmKGFyZy0+ZWxlbWVudHNbMF0pOwogCisgIGlmIChVTkxJS0VMWShwdHIgPT0gMCkpCisgICAgcmV0dXJuIEZGSV9CQURfVFlQRURFRjsKKwogICB3aGlsZSAoKCpwdHIpICE9IE5VTEwpCiAgICAgewotICAgICAgaWYgKCgoKnB0ciktPnNpemUgPT0gMCkgJiYgKGluaXRpYWxpemVfYWdncmVnYXRlKCgqcHRyKSkgIT0gRkZJX09LKSkKKyAgICAgIGlmIChVTkxJS0VMWSgoKCpwdHIpLT5zaXplID09IDApCisJCSAgICAmJiAoaW5pdGlhbGl6ZV9hZ2dyZWdhdGUoKCpwdHIpKSAhPSBGRklfT0spKSkKIAlyZXR1cm4gRkZJX0JBRF9UWVBFREVGOwogCiAgICAgICAvKiBQZXJmb3JtIGEgc2FuaXR5IGNoZWNrIG9uIHRoZSBhcmd1bWVudCB0eXBlICovCkBAIC04NSwxOSArOTAsMzggQEAKIC8qIFBlcmZvcm0gbWFjaGluZSBpbmRlcGVuZGVudCBmZmlfY2lmIHByZXBhcmF0aW9uLCB0aGVuIGNhbGwKICAgIG1hY2hpbmUgZGVwZW5kZW50IHJvdXRpbmUuICovCiAKLWZmaV9zdGF0dXMgZmZpX3ByZXBfY2lmKGZmaV9jaWYgKmNpZiwgZmZpX2FiaSBhYmksIHVuc2lnbmVkIGludCBuYXJncywKLQkJCWZmaV90eXBlICpydHlwZSwgZmZpX3R5cGUgKiphdHlwZXMpCisvKiBGb3Igbm9uIHZhcmlhZGljIGZ1bmN0aW9ucyBpc3ZhcmlhZGljIHNob3VsZCBiZSAwIGFuZAorICAgbmZpeGVkYXJncz09bnRvdGFsYXJncy4KKworICAgRm9yIHZhcmlhZGljIGNhbGxzLCBpc3ZhcmlhZGljIHNob3VsZCBiZSAxIGFuZCBuZml4ZWRhcmdzCisgICBhbmQgbnRvdGFsYXJncyBzZXQgYXMgYXBwcm9wcmlhdGUuIG5maXhlZGFyZ3MgbXVzdCBhbHdheXMgYmUgPj0xICovCisKKworZmZpX3N0YXR1cyBGRklfSElEREVOIGZmaV9wcmVwX2NpZl9jb3JlKGZmaV9jaWYgKmNpZiwgZmZpX2FiaSBhYmksCisJCQkgICAgIHVuc2lnbmVkIGludCBpc3ZhcmlhZGljLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbmZpeGVkYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG50b3RhbGFyZ3MsCisJCQkgICAgIGZmaV90eXBlICpydHlwZSwgZmZpX3R5cGUgKiphdHlwZXMpCiB7CiAgIHVuc2lnbmVkIGJ5dGVzID0gMDsKICAgdW5zaWduZWQgaW50IGk7CiAgIGZmaV90eXBlICoqcHRyOwogCiAgIEZGSV9BU1NFUlQoY2lmICE9IE5VTEwpOwotICBGRklfQVNTRVJUKChhYmkgPiBGRklfRklSU1RfQUJJKSAmJiAoYWJpIDw9IEZGSV9ERUZBVUxUX0FCSSkpOworICBGRklfQVNTRVJUKCghaXN2YXJpYWRpYykgfHwgKG5maXhlZGFyZ3MgPj0gMSkpOworICBGRklfQVNTRVJUKG5maXhlZGFyZ3MgPD0gbnRvdGFsYXJncyk7CisKKyNpZm5kZWYgWDg2X1dJTjMyCisgIGlmICghIChhYmkgPiBGRklfRklSU1RfQUJJICYmIGFiaSA8IEZGSV9MQVNUX0FCSSkpCisgICAgcmV0dXJuIEZGSV9CQURfQUJJOworI2Vsc2UKKyAgaWYgKCEgKGFiaSA+IEZGSV9GSVJTVF9BQkkgJiYgYWJpIDwgRkZJX0xBU1RfQUJJIHx8IGFiaSA9PSBGRklfVEhJU0NBTEwpKQorICAgIHJldHVybiBGRklfQkFEX0FCSTsKKyNlbmRpZgogCiAgIGNpZi0+YWJpID0gYWJpOwogICBjaWYtPmFyZ190eXBlcyA9IGF0eXBlczsKLSAgY2lmLT5uYXJncyA9IG5hcmdzOworICBjaWYtPm5hcmdzID0gbnRvdGFsYXJnczsKICAgY2lmLT5ydHlwZSA9IHJ0eXBlOwogCiAgIGNpZi0+ZmxhZ3MgPSAwOwpAQCAtMTEwLDcgKzEzNCw3IEBACiAgIEZGSV9BU1NFUlRfVkFMSURfVFlQRShjaWYtPnJ0eXBlKTsKIAogICAvKiB4ODYsIHg4Ni02NCBhbmQgczM5MCBzdGFjayBzcGFjZSBhbGxvY2F0aW9uIGlzIGhhbmRsZWQgaW4gcHJlcF9tYWNoZGVwLiAqLwotI2lmICFkZWZpbmVkIE02OEsgJiYgIWRlZmluZWQgX19pMzg2X18gJiYgIWRlZmluZWQgX194ODZfNjRfXyAmJiAhZGVmaW5lZCBTMzkwICYmICFkZWZpbmVkIFBBCisjaWYgIWRlZmluZWQgTTY4SyAmJiAhZGVmaW5lZCBYODZfQU5ZICYmICFkZWZpbmVkIFMzOTAgJiYgIWRlZmluZWQgUEEKICAgLyogTWFrZSBzcGFjZSBmb3IgdGhlIHJldHVybiBzdHJ1Y3R1cmUgcG9pbnRlciAqLwogICBpZiAoY2lmLT5ydHlwZS0+dHlwZSA9PSBGRklfVFlQRV9TVFJVQ1QKICNpZmRlZiBTUEFSQwpAQCAtMTMxLDcgKzE1NSw3IEBACiAJIGNoZWNrIGFmdGVyIHRoZSBpbml0aWFsaXphdGlvbi4gICovCiAgICAgICBGRklfQVNTRVJUX1ZBTElEX1RZUEUoKnB0cik7CiAKLSNpZiAhZGVmaW5lZCBfX2kzODZfXyAmJiAhZGVmaW5lZCBfX3g4Nl82NF9fICYmICFkZWZpbmVkIFMzOTAgJiYgIWRlZmluZWQgUEEKKyNpZiAhZGVmaW5lZCBYODZfQU5ZICYmICFkZWZpbmVkIFMzOTAgJiYgIWRlZmluZWQgUEEKICNpZmRlZiBTUEFSQwogICAgICAgaWYgKCgoKnB0ciktPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUCiAJICAgJiYgKCgqcHRyKS0+c2l6ZSA+IDE2IHx8IGNpZi0+YWJpICE9IEZGSV9WOSkpCkBAIC0xNTMsMTAgKzE3NywzMSBAQAogICBjaWYtPmJ5dGVzID0gYnl0ZXM7CiAKICAgLyogUGVyZm9ybSBtYWNoaW5lIGRlcGVuZGVudCBjaWYgcHJvY2Vzc2luZyAqLworI2lmZGVmIEZGSV9UQVJHRVRfU1BFQ0lGSUNfVkFSSUFESUMKKyAgaWYgKGlzdmFyaWFkaWMpCisJcmV0dXJuIGZmaV9wcmVwX2NpZl9tYWNoZGVwX3ZhcihjaWYsIG5maXhlZGFyZ3MsIG50b3RhbGFyZ3MpOworI2VuZGlmCisKICAgcmV0dXJuIGZmaV9wcmVwX2NpZl9tYWNoZGVwKGNpZik7CiB9CiAjZW5kaWYgLyogbm90IF9fQ1JJU19fICovCiAKK2ZmaV9zdGF0dXMgZmZpX3ByZXBfY2lmKGZmaV9jaWYgKmNpZiwgZmZpX2FiaSBhYmksIHVuc2lnbmVkIGludCBuYXJncywKKwkJCSAgICAgZmZpX3R5cGUgKnJ0eXBlLCBmZmlfdHlwZSAqKmF0eXBlcykKK3sKKyAgcmV0dXJuIGZmaV9wcmVwX2NpZl9jb3JlKGNpZiwgYWJpLCAwLCBuYXJncywgbmFyZ3MsIHJ0eXBlLCBhdHlwZXMpOworfQorCitmZmlfc3RhdHVzIGZmaV9wcmVwX2NpZl92YXIoZmZpX2NpZiAqY2lmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZmaV9hYmkgYWJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBuZml4ZWRhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBudG90YWxhcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZmaV90eXBlICpydHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZmlfdHlwZSAqKmF0eXBlcykKK3sKKyAgcmV0dXJuIGZmaV9wcmVwX2NpZl9jb3JlKGNpZiwgYWJpLCAxLCBuZml4ZWRhcmdzLCBudG90YWxhcmdzLCBydHlwZSwgYXR5cGVzKTsKK30KKwogI2lmIEZGSV9DTE9TVVJFUwogCiBmZmlfc3RhdHVzCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zMzkwL2ZmaXRhcmdldC5oIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvczM5MC9mZml0YXJnZXQuaAppbmRleCA3OGYzYzY1Li45N2ZhNWM0IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zMzkwL2ZmaXRhcmdldC5oCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3MzOTAvZmZpdGFyZ2V0LmgKQEAgLTEsNSArMSw2IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSotQy0qLQotICAgZmZpdGFyZ2V0LmggLSBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMyAgUmVkIEhhdCwgSW5jLgorICAgZmZpdGFyZ2V0LmggLSBDb3B5cmlnaHQgKGMpIDIwMTIgIEFudGhvbnkgR3JlZW4KKyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk2LTIwMDMgIFJlZCBIYXQsIEluYy4KICAgIFRhcmdldCBjb25maWd1cmF0aW9uIG1hY3JvcyBmb3IgUzM5MC4KIAogICAgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nCkBAIC0yNyw5ICsyOCwxNSBAQAogI2lmbmRlZiBMSUJGRklfVEFSR0VUX0gKICNkZWZpbmUgTElCRkZJX1RBUkdFVF9ICiAKKyNpZm5kZWYgTElCRkZJX0gKKyNlcnJvciAiUGxlYXNlIGRvIG5vdCBpbmNsdWRlIGZmaXRhcmdldC5oIGRpcmVjdGx5IGludG8geW91ciBzb3VyY2UuICBVc2UgZmZpLmggaW5zdGVhZC4iCisjZW5kaWYKKwogI2lmIGRlZmluZWQgKF9fczM5MHhfXykKKyNpZm5kZWYgUzM5MFgKICNkZWZpbmUgUzM5MFgKICNlbmRpZgorI2VuZGlmCiAKIC8qIC0tLS0gU3lzdGVtIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKQEAgLTQwLDggKzQ3LDggQEAKIHR5cGVkZWYgZW51bSBmZmlfYWJpIHsKICAgRkZJX0ZJUlNUX0FCSSA9IDAsCiAgIEZGSV9TWVNWLAotICBGRklfREVGQVVMVF9BQkkgPSBGRklfU1lTViwKLSAgRkZJX0xBU1RfQUJJID0gRkZJX0RFRkFVTFRfQUJJICsgMQorICBGRklfTEFTVF9BQkksCisgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9TWVNWCiB9IGZmaV9hYmk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvc2gvZmZpLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zaC9mZmkuYwppbmRleCA2OWJkMDI1Li4zNTE1YjkxIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zaC9mZmkuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zaC9mZmkuYwpAQCAtMSw1ICsxLDUgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBmZmkuYyAtIENvcHlyaWdodCAoYykgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBLYXogS29qaW1hCisgICBmZmkuYyAtIENvcHlyaWdodCAoYykgMjAwMi0yMDA4LCAyMDEyIEtheiBLb2ppbWEKICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDA4IFJlZCBIYXQsIEluYy4KICAgIAogICAgU3VwZXJIIEZvcmVpZ24gRnVuY3Rpb24gSW50ZXJmYWNlIApAQCAtNDYzLDcgKzQ2Myw4IEBACiAgIHVuc2lnbmVkIGludCAqdHJhbXA7CiAgIHVuc2lnbmVkIGludCBpbnNuOwogCi0gIEZGSV9BU1NFUlQgKGNpZi0+YWJpID09IEZGSV9HQ0NfU1lTVik7CisgIGlmIChjaWYtPmFiaSAhPSBGRklfU1lTVikKKyAgICByZXR1cm4gRkZJX0JBRF9BQkk7CiAKICAgdHJhbXAgPSAodW5zaWduZWQgaW50ICopICZjbG9zdXJlLT50cmFtcFswXTsKICAgLyogU2V0IFQgYml0IGlmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgc3RydWN0IHBvaW50ZWQgd2l0aCBSMi4gICovCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zaC9mZml0YXJnZXQuaCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NoL2ZmaXRhcmdldC5oCmluZGV4IDIxOGFlM2QuLmEzNmJmNDIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NoL2ZmaXRhcmdldC5oCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NoL2ZmaXRhcmdldC5oCkBAIC0xLDUgKzEsNiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLUMtKi0KLSAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAxOTk2LTIwMDMgIFJlZCBIYXQsIEluYy4KKyAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAyMDEyIEFudGhvbnkgR3JlZW4KKyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk2LTIwMDMgIFJlZCBIYXQsIEluYy4KICAgIFRhcmdldCBjb25maWd1cmF0aW9uIG1hY3JvcyBmb3IgU3VwZXJILgogCiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKQEAgLTI3LDYgKzI4LDEwIEBACiAjaWZuZGVmIExJQkZGSV9UQVJHRVRfSAogI2RlZmluZSBMSUJGRklfVEFSR0VUX0gKIAorI2lmbmRlZiBMSUJGRklfSAorI2Vycm9yICJQbGVhc2UgZG8gbm90IGluY2x1ZGUgZmZpdGFyZ2V0LmggZGlyZWN0bHkgaW50byB5b3VyIHNvdXJjZS4gIFVzZSBmZmkuaCBpbnN0ZWFkLiIKKyNlbmRpZgorCiAvKiAtLS0tIEdlbmVyaWMgdHlwZSBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjaWZuZGVmIExJQkZGSV9BU00KQEAgLTM2LDggKzQxLDggQEAKIHR5cGVkZWYgZW51bSBmZmlfYWJpIHsKICAgRkZJX0ZJUlNUX0FCSSA9IDAsCiAgIEZGSV9TWVNWLAotICBGRklfREVGQVVMVF9BQkkgPSBGRklfU1lTViwKLSAgRkZJX0xBU1RfQUJJID0gRkZJX0RFRkFVTFRfQUJJICsgMQorICBGRklfTEFTVF9BQkksCisgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9TWVNWCiB9IGZmaV9hYmk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvc2g2NC9mZmkuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NoNjQvZmZpLmMKaW5kZXggOGZiYzA1Yy4uMTIzYjg3YSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvc2g2NC9mZmkuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zaDY0L2ZmaS5jCkBAIC0xLDUgKzEsNSBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgIGZmaS5jIC0gQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA0LCAyMDA2LCAyMDA3IEtheiBLb2ppbWEKKyAgIGZmaS5jIC0gQ29weXJpZ2h0IChjKSAyMDAzLCAyMDA0LCAyMDA2LCAyMDA3LCAyMDEyIEtheiBLb2ppbWEKICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDA4IEFudGhvbnkgR3JlZW4KICAgIAogICAgU3VwZXJIIFNIbWVkaWEgRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UgCkBAIC0zMDIsNyArMzAyLDggQEAKIHsKICAgdW5zaWduZWQgaW50ICp0cmFtcDsKIAotICBGRklfQVNTRVJUIChjaWYtPmFiaSA9PSBGRklfR0NDX1NZU1YpOworICBpZiAoY2lmLT5hYmkgIT0gRkZJX1NZU1YpCisgICAgcmV0dXJuIEZGSV9CQURfQUJJOwogCiAgIHRyYW1wID0gKHVuc2lnbmVkIGludCAqKSAmY2xvc3VyZS0+dHJhbXBbMF07CiAgIC8qIFNpbmNlIGZmaV9jbG9zdXJlIGlzIGFuIGFsaWduZWQgb2JqZWN0LCB0aGUgZmZpIHRyYW1wb2xpbmUgaXMKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NoNjQvZmZpdGFyZ2V0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zaDY0L2ZmaXRhcmdldC5oCmluZGV4IDRlOTIyZmMuLjA4YTZmZTkgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NoNjQvZmZpdGFyZ2V0LmgKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvc2g2NC9mZml0YXJnZXQuaApAQCAtMSw1ICsxLDYgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi1DLSotCi0gICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzICBSZWQgSGF0LCBJbmMuCisgICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMjAxMiAgQW50aG9ueSBHcmVlbgorICAgICAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTYtMjAwMyAgUmVkIEhhdCwgSW5jLgogICAgVGFyZ2V0IGNvbmZpZ3VyYXRpb24gbWFjcm9zIGZvciBTdXBlckggLSBTSG1lZGlhLgogCiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKQEAgLTI3LDYgKzI4LDEwIEBACiAjaWZuZGVmIExJQkZGSV9UQVJHRVRfSAogI2RlZmluZSBMSUJGRklfVEFSR0VUX0gKIAorI2lmbmRlZiBMSUJGRklfSAorI2Vycm9yICJQbGVhc2UgZG8gbm90IGluY2x1ZGUgZmZpdGFyZ2V0LmggZGlyZWN0bHkgaW50byB5b3VyIHNvdXJjZS4gIFVzZSBmZmkuaCBpbnN0ZWFkLiIKKyNlbmRpZgorCiAvKiAtLS0tIEdlbmVyaWMgdHlwZSBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCiAjaWZuZGVmIExJQkZGSV9BU00KQEAgLTM2LDggKzQxLDggQEAKIHR5cGVkZWYgZW51bSBmZmlfYWJpIHsKICAgRkZJX0ZJUlNUX0FCSSA9IDAsCiAgIEZGSV9TWVNWLAotICBGRklfREVGQVVMVF9BQkkgPSBGRklfU1lTViwKLSAgRkZJX0xBU1RfQUJJID0gRkZJX0RFRkFVTFRfQUJJICsgMQorICBGRklfTEFTVF9BQkksCisgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9TWVNWCiB9IGZmaV9hYmk7CiAKICNkZWZpbmUgRkZJX0VYVFJBX0NJRl9GSUVMRFMgbG9uZyBsb25nIGZsYWdzMgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvc3BhcmMvZmZpLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zcGFyYy9mZmkuYwppbmRleCAxZDAxZjU5Li4xYWM1ZDQ2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zcGFyYy9mZmkuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zcGFyYy9mZmkuYwpAQCAtMSw1ICsxLDYgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICBmZmkuYyAtIENvcHlyaWdodCAoYykgMTk5NiwgMjAwMywgMjAwNCwgMjAwNywgMjAwOCBSZWQgSGF0LCBJbmMuCisgICBmZmkuYyAtIENvcHlyaWdodCAoYykgMjAxMSBBbnRob255IEdyZWVuCisgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5NiwgMjAwMy0yMDA0LCAyMDA3LTIwMDggUmVkIEhhdCwgSW5jLgogICAgCiAgICBTUEFSQyBGb3JlaWduIEZ1bmN0aW9uIEludGVyZmFjZSAKIApAQCAtNDA2LDggKzQwNyw1MCBAQAogICAgICAgLyogV2UgZG9uJ3QgeWV0IHN1cHBvcnQgY2FsbGluZyAzMmJpdCBjb2RlIGZyb20gNjRiaXQgKi8KICAgICAgIEZGSV9BU1NFUlQoMCk7CiAjZWxzZQotICAgICAgZmZpX2NhbGxfdjgoZmZpX3ByZXBfYXJnc192OCwgJmVjaWYsIGNpZi0+Ynl0ZXMsIAotCQkgIGNpZi0+ZmxhZ3MsIHJ2YWx1ZSwgZm4pOworICAgICAgaWYgKHJ2YWx1ZSAmJiAoY2lmLT5ydHlwZS0+dHlwZSA9PSBGRklfVFlQRV9TVFJVQ1QKKyNpZiBGRklfVFlQRV9MT05HRE9VQkxFICE9IEZGSV9UWVBFX0RPVUJMRQorCSAgfHwgY2lmLT5mbGFncyA9PSBGRklfVFlQRV9MT05HRE9VQkxFCisjZW5kaWYKKwkgICkpCisJeworCSAgLyogRm9yIHY4LCB3ZSBuZWVkIGFuICJ1bmltcCIgd2l0aCBzaXplIG9mIHJldHVybmluZyBzdHJ1Y3QgKi8KKwkgIC8qIGJlaGluZCAiY2FsbCIsIHNvIHdlIGFsbG9jIHNvbWUgZXhlY3V0YWJsZSBzcGFjZSBmb3IgaXQuICovCisJICAvKiBsNyBpcyB1c2VkLCB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB2OC5TIGRvZXNuJ3QgdXNlICVsNy4gICAqLworCSAgdW5zaWduZWQgaW50ICpjYWxsX3N0cnVjdCA9IE5VTEw7CisJICBmZmlfY2xvc3VyZV9hbGxvYygzMiwgJmNhbGxfc3RydWN0KTsKKwkgIGlmIChjYWxsX3N0cnVjdCkKKwkgICAgeworCSAgICAgIHVuc2lnbmVkIGxvbmcgZiA9ICh1bnNpZ25lZCBsb25nKWZuOworCSAgICAgIGNhbGxfc3RydWN0WzBdID0gMHhhZTEwMDAxZjsJCSAvKiBtb3YgICAlaTcsICVsNwkgKi8KKwkgICAgICBjYWxsX3N0cnVjdFsxXSA9IDB4YmUxMDAwMGY7CQkgLyogbW92ICAgJW83LCAlaTcJICovCisJICAgICAgY2FsbF9zdHJ1Y3RbMl0gPSAweDAzMDAwMDAwIHwgZiA+PiAxMDsgICAgIC8qIHNldGhpICVoaShmbiksICVnMQkgKi8KKwkgICAgICBjYWxsX3N0cnVjdFszXSA9IDB4OWZjMDYwMDAgfCAoZiAmIDB4M2ZmKTsgLyogam1wICVnMSslbG8oZm4pLCAlbzcgKi8KKwkgICAgICBjYWxsX3N0cnVjdFs0XSA9IDB4MDEwMDAwMDA7CQkgLyogbm9wCQkJICovCisJICAgICAgaWYgKGNpZi0+cnR5cGUtPnNpemUgPCAweDdmKQorCQljYWxsX3N0cnVjdFs1XSA9IGNpZi0+cnR5cGUtPnNpemU7CSAvKiB1bmltcAkJICovCisJICAgICAgZWxzZQorCQljYWxsX3N0cnVjdFs1XSA9IDB4MDEwMDAwMDA7CSAgICAgCSAvKiBub3AJCQkgKi8KKwkgICAgICBjYWxsX3N0cnVjdFs2XSA9IDB4ODFjN2UwMDg7CQkgLyogcmV0CQkJICovCisJICAgICAgY2FsbF9zdHJ1Y3RbN10gPSAweGJlMTAwMDE3OwkJIC8qIG1vdiAgICVsNywgJWk3CSAqLworCSAgICAgIGFzbSB2b2xhdGlsZSAoImlmbHVzaCAlMDsgaWZsdXNoICUwKzg7IGlmbHVzaCAlMCsxNjsgaWZsdXNoICUwKzI0IiA6IDoKKwkJCSAgICAiciIgKGNhbGxfc3RydWN0KSA6ICJtZW1vcnkiKTsKKwkgICAgICAvKiBTUEFSQyB2OCByZXF1aXJlcyA1IGluc3RydWN0aW9ucyBmb3IgZmx1c2ggdG8gYmUgdmlzaWJsZSAqLworCSAgICAgIGFzbSB2b2xhdGlsZSAoIm5vcDsgbm9wOyBub3A7IG5vcDsgbm9wIik7CisJICAgICAgZmZpX2NhbGxfdjgoZmZpX3ByZXBfYXJnc192OCwgJmVjaWYsIGNpZi0+Ynl0ZXMsCisJCQkgIGNpZi0+ZmxhZ3MsIHJ2YWx1ZSwgY2FsbF9zdHJ1Y3QpOworCSAgICAgIGZmaV9jbG9zdXJlX2ZyZWUoY2FsbF9zdHJ1Y3QpOworCSAgICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICBmZmlfY2FsbF92OChmZmlfcHJlcF9hcmdzX3Y4LCAmZWNpZiwgY2lmLT5ieXRlcywKKwkJCSAgY2lmLT5mbGFncywgcnZhbHVlLCBmbik7CisJICAgIH0KKwl9CisgICAgICBlbHNlCisJeworCSAgZmZpX2NhbGxfdjgoZmZpX3ByZXBfYXJnc192OCwgJmVjaWYsIGNpZi0+Ynl0ZXMsCisJCSAgICAgIGNpZi0+ZmxhZ3MsIHJ2YWx1ZSwgZm4pOworCX0KICNlbmRpZgogICAgICAgYnJlYWs7CiAgICAgY2FzZSBGRklfVjk6CkBAIC00MjUsNyArNDY4LDYgQEAKICAgICAgIEZGSV9BU1NFUlQoMCk7CiAgICAgICBicmVhazsKICAgICB9Ci0KIH0KIAogCkBAIC00NDcsNyArNDg5LDggQEAKICNpZmRlZiBTUEFSQzY0CiAgIC8qIFRyYW1wb2xpbmUgYWRkcmVzcyBpcyBlcXVhbCB0byB0aGUgY2xvc3VyZSBhZGRyZXNzLiAgV2UgdGFrZSBhZHZhbnRhZ2UKICAgICAgb2YgdGhhdCB0byByZWR1Y2UgdGhlIHRyYW1wb2xpbmUgc2l6ZSBieSA4IGJ5dGVzLiAqLwotICBGRklfQVNTRVJUIChjaWYtPmFiaSA9PSBGRklfVjkpOworICBpZiAoY2lmLT5hYmkgIT0gRkZJX1Y5KQorICAgIHJldHVybiBGRklfQkFEX0FCSTsKICAgZm4gPSAodW5zaWduZWQgbG9uZykgZmZpX2Nsb3N1cmVfdjk7CiAgIHRyYW1wWzBdID0gMHg4MzQxNDAwMDsJLyogcmQJJXBjLCAlZzEJKi8KICAgdHJhbXBbMV0gPSAweGNhNTg2MDEwOwkvKiBsZHgJWyVnMSsxNl0sICVnNQkqLwpAQCAtNDU2LDcgKzQ5OSw4IEBACiAgICooKHVuc2lnbmVkIGxvbmcgKikgJnRyYW1wWzRdKSA9IGZuOwogI2Vsc2UKICAgdW5zaWduZWQgbG9uZyBjdHggPSAodW5zaWduZWQgbG9uZykgY29kZWxvYzsKLSAgRkZJX0FTU0VSVCAoY2lmLT5hYmkgPT0gRkZJX1Y4KTsKKyAgaWYgKGNpZi0+YWJpICE9IEZGSV9WOCkKKyAgICByZXR1cm4gRkZJX0JBRF9BQkk7CiAgIGZuID0gKHVuc2lnbmVkIGxvbmcpIGZmaV9jbG9zdXJlX3Y4OwogICB0cmFtcFswXSA9IDB4MDMwMDAwMDAgfCBmbiA+PiAxMDsJLyogc2V0aGkgJWhpKGZuKSwgJWcxCSovCiAgIHRyYW1wWzFdID0gMHgwNTAwMDAwMCB8IGN0eCA+PiAxMDsJLyogc2V0aGkgJWhpKGN0eCksICVnMgkqLwpAQCAtNDY4LDEzICs1MTIsMTMgQEAKICAgY2xvc3VyZS0+ZnVuID0gZnVuOwogICBjbG9zdXJlLT51c2VyX2RhdGEgPSB1c2VyX2RhdGE7CiAKLSAgLyogRmx1c2ggdGhlIEljYWNoZS4gIEZJWE1FOiBhbGlnbm1lbnQgaXNuJ3QgY2VydGFpbiwgYXNzdW1lIDggYnl0ZXMgKi8KKyAgLyogRmx1c2ggdGhlIEljYWNoZS4gIGNsb3N1cmUgaXMgOCBieXRlcyBhbGlnbmVkLiAgKi8KICNpZmRlZiBTUEFSQzY0Ci0gIGFzbSB2b2xhdGlsZSAoImZsdXNoCSUwIiA6IDogInIiIChjbG9zdXJlKSA6ICJtZW1vcnkiKTsKLSAgYXNtIHZvbGF0aWxlICgiZmx1c2gJJTAiIDogOiAiciIgKCgoY2hhciAqKSBjbG9zdXJlKSArIDgpIDogIm1lbW9yeSIpOworICBhc20gdm9sYXRpbGUgKCJmbHVzaAklMDsgZmx1c2ggJTArOCIgOiA6ICJyIiAoY2xvc3VyZSkgOiAibWVtb3J5Iik7CiAjZWxzZQotICBhc20gdm9sYXRpbGUgKCJpZmx1c2gJJTAiIDogOiAiciIgKGNsb3N1cmUpIDogIm1lbW9yeSIpOwotICBhc20gdm9sYXRpbGUgKCJpZmx1c2gJJTAiIDogOiAiciIgKCgoY2hhciAqKSBjbG9zdXJlKSArIDgpIDogIm1lbW9yeSIpOworICBhc20gdm9sYXRpbGUgKCJpZmx1c2gJJTA7IGlmbHVzaCAlMCs4IiA6IDogInIiIChjbG9zdXJlKSA6ICJtZW1vcnkiKTsKKyAgLyogU1BBUkMgdjggcmVxdWlyZXMgNSBpbnN0cnVjdGlvbnMgZm9yIGZsdXNoIHRvIGJlIHZpc2libGUgKi8KKyAgYXNtIHZvbGF0aWxlICgibm9wOyBub3A7IG5vcDsgbm9wOyBub3AiKTsKICNlbmRpZgogCiAgIHJldHVybiBGRklfT0s7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zcGFyYy9mZml0YXJnZXQuaCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NwYXJjL2ZmaXRhcmdldC5oCmluZGV4IDFhMWExYWMuLmQ4OWY3ODcgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NwYXJjL2ZmaXRhcmdldC5oCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NwYXJjL2ZmaXRhcmdldC5oCkBAIC0xLDUgKzEsNiBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLUMtKi0KLSAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAxOTk2LTIwMDMgIFJlZCBIYXQsIEluYy4KKyAgIGZmaXRhcmdldC5oIC0gQ29weXJpZ2h0IChjKSAyMDEyICBBbnRob255IEdyZWVuCisgICAgICAgICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzICBSZWQgSGF0LCBJbmMuCiAgICBUYXJnZXQgY29uZmlndXJhdGlvbiBtYWNyb3MgZm9yIFNQQVJDLgogCiAgICBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKQEAgLTI3LDExICsyOCwxNyBAQAogI2lmbmRlZiBMSUJGRklfVEFSR0VUX0gKICNkZWZpbmUgTElCRkZJX1RBUkdFVF9ICiAKKyNpZm5kZWYgTElCRkZJX0gKKyNlcnJvciAiUGxlYXNlIGRvIG5vdCBpbmNsdWRlIGZmaXRhcmdldC5oIGRpcmVjdGx5IGludG8geW91ciBzb3VyY2UuICBVc2UgZmZpLmggaW5zdGVhZC4iCisjZW5kaWYKKwogLyogLS0tLSBTeXN0ZW0gc3BlY2lmaWMgY29uZmlndXJhdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogI2lmIGRlZmluZWQoX19hcmNoNjRfXykgfHwgZGVmaW5lZChfX3NwYXJjdjkpCisjaWZuZGVmIFNQQVJDNjQKICNkZWZpbmUgU1BBUkM2NAogI2VuZGlmCisjZW5kaWYKIAogI2lmbmRlZiBMSUJGRklfQVNNCiB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgICAgICAgICAgZmZpX2FyZzsKQEAgLTQyLDEyICs0OSwxMiBAQAogICBGRklfVjgsCiAgIEZGSV9WOFBMVVMsCiAgIEZGSV9WOSwKKyAgRkZJX0xBU1RfQUJJLAogI2lmZGVmIFNQQVJDNjQKLSAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1Y5LAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfVjkKICNlbHNlCi0gIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9WOCwKKyAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1Y4CiAjZW5kaWYKLSAgRkZJX0xBU1RfQUJJID0gRkZJX0RFRkFVTFRfQUJJICsgMQogfSBmZmlfYWJpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NwYXJjL3Y5LlMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy9zcGFyYy92OS5TCmluZGV4IDQ4OWZmMDIuLmJmMzFhMmIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3NwYXJjL3Y5LlMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMvc3BhcmMvdjkuUwpAQCAtMzIsNyArMzIsNyBAQAogLyogT25seSBjb21waWxlIHRoaXMgaW4gZm9yIDY0Yml0IGJ1aWxkcywgYmVjYXVzZSBvdGhlcndpc2UgdGhlIG9iamVjdCBmaWxlCiAgICB3aWxsIGhhdmUgaW5wcm9wZXIgYXJjaGl0ZWN0dXJlIGR1ZSB0byB1c2VkIGluc3RydWN0aW9ucy4gICovCiAKLSNkZWZpbmUgU1RBQ0tGUkFNRSAxMjgJCS8qIE1pbmltdW0gc3RhY2sgZnJhbWVzaXplIGZvciBTUEFSQyAqLworI2RlZmluZSBTVEFDS0ZSQU1FIDE3NgkJLyogTWluaW11bSBzdGFjayBmcmFtZXNpemUgZm9yIFNQQVJDIDY0LWJpdCAqLwogI2RlZmluZSBTVEFDS19CSUFTIDIwNDcKICNkZWZpbmUgQVJHUyAoMTI4KQkJLyogT2Zmc2V0IG9mIHJlZ2lzdGVyIGFyZWEgaW4gZnJhbWUgKi8KIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L2ZmaS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L2ZmaS5jCmluZGV4IDgwNDk2NTMuLjYxMWUyMjEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni9mZmkuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy94ODYvZmZpLmMKQEAgLTMsNyArMyw3IEBACiAgICAgICAgICAgIENvcHlyaWdodCAoYykgMjAwMiAgUmFuaml0IE1hdGhldwogICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMDIgIEJvIFRob3JzZW4KICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAyMDAyICBSb2dlciBTYXlsZQotICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgICAgICAgICBDb3B5cmlnaHQgKEMpIDIwMDgsIDIwMTAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAgICB4ODYgRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UKIApAQCAtNDgsMTAgKzQ4LDE4IEBACiAgIHJlZ2lzdGVyIHZvaWQgKipwX2FyZ3Y7CiAgIHJlZ2lzdGVyIGNoYXIgKmFyZ3A7CiAgIHJlZ2lzdGVyIGZmaV90eXBlICoqcF9hcmc7CisjaWZkZWYgWDg2X1dJTjMyCisgIHNpemVfdCBwX3N0YWNrX2FyZ3NbMl07CisgIHZvaWQgKnBfc3RhY2tfZGF0YVsyXTsKKyAgY2hhciAqYXJncDIgPSBzdGFjazsKKyAgaW50IHN0YWNrX2FyZ3NfY291bnQgPSAwOworICBpbnQgY2FiaSA9IGVjaWYtPmNpZi0+YWJpOworI2VuZGlmCiAKICAgYXJncCA9IHN0YWNrOwogCi0gIGlmIChlY2lmLT5jaWYtPmZsYWdzID09IEZGSV9UWVBFX1NUUlVDVAorICBpZiAoKGVjaWYtPmNpZi0+ZmxhZ3MgPT0gRkZJX1RZUEVfU1RSVUNUCisgICAgICAgfHwgZWNpZi0+Y2lmLT5mbGFncyA9PSBGRklfVFlQRV9NU19TVFJVQ1QpCiAjaWZkZWYgWDg2X1dJTjY0CiAgICAgICAmJiAoZWNpZi0+Y2lmLT5ydHlwZS0+c2l6ZSAhPSAxICYmIGVjaWYtPmNpZi0+cnR5cGUtPnNpemUgIT0gMgogICAgICAgICAgICYmIGVjaWYtPmNpZi0+cnR5cGUtPnNpemUgIT0gNCAmJiBlY2lmLT5jaWYtPnJ0eXBlLT5zaXplICE9IDgpCkBAIC01OSw2ICs2NywxNiBAQAogICAgICAgKQogICAgIHsKICAgICAgICoodm9pZCAqKikgYXJncCA9IGVjaWYtPnJ2YWx1ZTsKKyNpZmRlZiBYODZfV0lOMzIKKyAgICAgIC8qIEZvciBmYXN0Y2FsbC90aGlzY2FsbCB0aGlzIGlzIGZpcnN0IHJlZ2lzdGVyLXBhc3NlZAorICAgICAgICAgYXJndW1lbnQuICAqLworICAgICAgaWYgKGNhYmkgPT0gRkZJX1RISVNDQUxMIHx8IGNhYmkgPT0gRkZJX0ZBU1RDQUxMKQorCXsKKwkgIHBfc3RhY2tfYXJnc1tzdGFja19hcmdzX2NvdW50XSA9IHNpemVvZiAodm9pZCopOworCSAgcF9zdGFja19kYXRhW3N0YWNrX2FyZ3NfY291bnRdID0gYXJncDsKKwkgICsrc3RhY2tfYXJnc19jb3VudDsKKwl9CisjZW5kaWYKICAgICAgIGFyZ3AgKz0gc2l6ZW9mKHZvaWQqKTsKICAgICB9CiAKQEAgLTEzNCw2ICsxNTIsMjQgQEAKICAgICAgICAgewogICAgICAgICAgIG1lbWNweShhcmdwLCAqcF9hcmd2LCB6KTsKICAgICAgICAgfQorCisjaWZkZWYgWDg2X1dJTjMyCisgICAgLyogRm9yIHRoaXNjYWxsL2Zhc3RjYWxsIGNvbnZlbnRpb24gcmVnaXN0ZXItcGFzc2VkIGFyZ3VtZW50cworICAgICAgIGFyZSB0aGUgZmlyc3QgdHdvIG5vbmUtZmxvYXRpbmctcG9pbnQgYXJndW1lbnRzIHdpdGggYSBzaXplCisgICAgICAgc21hbGxlciBvciBlcXVhbCB0byBzaXplb2YgKHZvaWQqKS4gICovCisgICAgaWYgKChjYWJpID09IEZGSV9USElTQ0FMTCAmJiBzdGFja19hcmdzX2NvdW50IDwgMSkKKyAgICAgICAgfHwgKGNhYmkgPT0gRkZJX0ZBU1RDQUxMICYmIHN0YWNrX2FyZ3NfY291bnQgPCAyKSkKKyAgICAgIHsKKwlpZiAoeiA8PSA0CisJICAgICYmICgoKnBfYXJnKS0+dHlwZSAhPSBGRklfVFlQRV9GTE9BVAorCSAgICAgICAgJiYgKCpwX2FyZyktPnR5cGUgIT0gRkZJX1RZUEVfU1RSVUNUKSkKKwkgIHsKKwkgICAgcF9zdGFja19hcmdzW3N0YWNrX2FyZ3NfY291bnRdID0gejsKKwkgICAgcF9zdGFja19kYXRhW3N0YWNrX2FyZ3NfY291bnRdID0gYXJncDsKKwkgICAgKytzdGFja19hcmdzX2NvdW50OworCSAgfQorICAgICAgfQorI2VuZGlmCiAgICAgICBwX2FyZ3YrKzsKICNpZmRlZiBYODZfV0lONjQKICAgICAgIGFyZ3AgKz0gKHogKyBzaXplb2Yodm9pZCopIC0gMSkgJiB+KHNpemVvZih2b2lkKikgLSAxKTsKQEAgLTE0MSw3ICsxNzcsNDUgQEAKICAgICAgIGFyZ3AgKz0gejsKICNlbmRpZgogICAgIH0KLSAgCisKKyNpZmRlZiBYODZfV0lOMzIKKyAgLyogV2UgbmVlZCB0byBtb3ZlIHRoZSByZWdpc3Rlci1wYXNzZWQgYXJndW1lbnRzIGZvciB0aGlzY2FsbC9mYXN0Y2FsbAorICAgICBvbiB0b3Agb2Ygc3RhY2ssIHNvIHRoYXQgdGhvc2UgY2FuIGJlIG1vdmVkIHRvIHJlZ2lzdGVycyBlY3gvZWR4IGJ5CisgICAgIGNhbGwtaGFuZGxlci4gICovCisgIGlmIChzdGFja19hcmdzX2NvdW50ID4gMCkKKyAgICB7CisgICAgICBzaXplX3QgenogPSAocF9zdGFja19hcmdzWzBdICsgMykgJiB+MzsKKyAgICAgIGNoYXIgKmg7CisKKyAgICAgIC8qIE1vdmUgZmlyc3QgYXJndW1lbnQgdG8gdG9wLXN0YWNrIHBvc2l0aW9uLiAgKi8KKyAgICAgIGlmIChwX3N0YWNrX2RhdGFbMF0gIT0gYXJncDIpCisJeworCSAgaCA9IGFsbG9jYSAoenogKyAxKTsKKwkgIG1lbWNweSAoaCwgcF9zdGFja19kYXRhWzBdLCB6eik7CisJICBtZW1tb3ZlIChhcmdwMiArIHp6LCBhcmdwMiwKKwkgICAgICAgICAgIChzaXplX3QpICgoY2hhciAqKSBwX3N0YWNrX2RhdGFbMF0gLSAoY2hhciopYXJncDIpKTsKKwkgIG1lbWNweSAoYXJncDIsIGgsIHp6KTsKKwl9CisKKyAgICAgIGFyZ3AyICs9IHp6OworICAgICAgLS1zdGFja19hcmdzX2NvdW50OworICAgICAgaWYgKHp6ID4gNCkKKwlzdGFja19hcmdzX2NvdW50ID0gMDsKKworICAgICAgLyogSWYgd2UgaGF2ZSBhIHNlY29uZCBhcmd1bWVudCwgdGhlbiBtb3ZlIGl0IG9uIHRvcAorICAgICAgICAgYWZ0ZXIgdGhlIGZpcnN0IG9uZS4gICovCisgICAgICBpZiAoc3RhY2tfYXJnc19jb3VudCA+IDAgJiYgcF9zdGFja19kYXRhWzFdICE9IGFyZ3AyKQorCXsKKwkgIHp6ID0gcF9zdGFja19hcmdzWzFdOworCSAgenogPSAoenogKyAzKSAmIH4zOworCSAgaCA9IGFsbG9jYSAoenogKyAxKTsKKwkgIGggPSBhbGxvY2EgKHp6ICsgMSk7CisJICBtZW1jcHkgKGgsIHBfc3RhY2tfZGF0YVsxXSwgenopOworCSAgbWVtbW92ZSAoYXJncDIgKyB6eiwgYXJncDIsIChzaXplX3QpICgoY2hhciopIHBfc3RhY2tfZGF0YVsxXSAtIChjaGFyKilhcmdwMikpOworCSAgbWVtY3B5IChhcmdwMiwgaCwgenopOworCX0KKyAgICB9CisjZW5kaWYKICAgcmV0dXJuOwogfQogCkBAIC0xNTUsMTIgKzIyOSwxMCBAQAogICBzd2l0Y2ggKGNpZi0+cnR5cGUtPnR5cGUpCiAgICAgewogICAgIGNhc2UgRkZJX1RZUEVfVk9JRDoKLSNpZiBkZWZpbmVkKFg4NikgfHwgZGVmaW5lZCAoWDg2X1dJTjMyKSB8fCBkZWZpbmVkKFg4Nl9GUkVFQlNEKSB8fCBkZWZpbmVkKFg4Nl9EQVJXSU4pIHx8IGRlZmluZWQoWDg2X1dJTjY0KQogICAgIGNhc2UgRkZJX1RZUEVfVUlOVDg6CiAgICAgY2FzZSBGRklfVFlQRV9VSU5UMTY6CiAgICAgY2FzZSBGRklfVFlQRV9TSU5UODoKICAgICBjYXNlIEZGSV9UWVBFX1NJTlQxNjoKLSNlbmRpZgogI2lmZGVmIFg4Nl9XSU42NAogICAgIGNhc2UgRkZJX1RZUEVfVUlOVDMyOgogICAgIGNhc2UgRkZJX1RZUEVfU0lOVDMyOgpAQCAtMjA4LDggKzI4MCwxMyBAQAogICAgICAgZWxzZQogI2VuZGlmCiAgICAgICAgIHsKLSAgICAgICAgICBjaWYtPmZsYWdzID0gRkZJX1RZUEVfU1RSVUNUOwotICAgICAgICAgIC8vIGFsbG9jYXRlIHNwYWNlIGZvciByZXR1cm4gdmFsdWUgcG9pbnRlcgorI2lmZGVmIFg4Nl9XSU4zMgorICAgICAgICAgIGlmIChjaWYtPmFiaSA9PSBGRklfTVNfQ0RFQ0wpCisgICAgICAgICAgICBjaWYtPmZsYWdzID0gRkZJX1RZUEVfTVNfU1RSVUNUOworICAgICAgICAgIGVsc2UKKyNlbmRpZgorICAgICAgICAgICAgY2lmLT5mbGFncyA9IEZGSV9UWVBFX1NUUlVDVDsKKyAgICAgICAgICAvKiBhbGxvY2F0ZSBzcGFjZSBmb3IgcmV0dXJuIHZhbHVlIHBvaW50ZXIgKi8KICAgICAgICAgICBjaWYtPmJ5dGVzICs9IEFMSUdOKHNpemVvZih2b2lkKiksIEZGSV9TSVpFT0ZfQVJHKTsKICAgICAgICAgfQogICAgICAgYnJlYWs7CkBAIC0yMzQsNyArMzExLDcgQEAKICAgICB9CiAKICNpZmRlZiBYODZfV0lONjQKLSAgLy8gZW5zdXJlIHNwYWNlIGZvciBzdG9yaW5nIGZvdXIgcmVnaXN0ZXJzCisgIC8qIGVuc3VyZSBzcGFjZSBmb3Igc3RvcmluZyBmb3VyIHJlZ2lzdGVycyAqLwogICBjaWYtPmJ5dGVzICs9IDQgKiBzaXplb2YoZmZpX2FyZyk7CiAjZW5kaWYKIApAQCAtMjUyLDcgKzMyOSw3IEBACiAjZWxpZiBkZWZpbmVkKFg4Nl9XSU4zMikKIGV4dGVybiB2b2lkCiBmZmlfY2FsbF93aW4zMih2b2lkICgqKShjaGFyICosIGV4dGVuZGVkX2NpZiAqKSwgZXh0ZW5kZWRfY2lmICosCi0gICAgICAgICAgICAgICB1bnNpZ25lZCwgdW5zaWduZWQsIHVuc2lnbmVkICosIHZvaWQgKCpmbikodm9pZCkpOworICAgICAgICAgICAgICAgdW5zaWduZWQsIHVuc2lnbmVkLCB1bnNpZ25lZCwgdW5zaWduZWQgKiwgdm9pZCAoKmZuKSh2b2lkKSk7CiAjZWxzZQogZXh0ZXJuIHZvaWQgZmZpX2NhbGxfU1lTVih2b2lkICgqKShjaGFyICosIGV4dGVuZGVkX2NpZiAqKSwgZXh0ZW5kZWRfY2lmICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkLCB1bnNpZ25lZCwgdW5zaWduZWQgKiwgdm9pZCAoKmZuKSh2b2lkKSk7CkBAIC0yNzgsNyArMzU1LDggQEAKICAgICB9CiAjZWxzZQogICBpZiAocnZhbHVlID09IE5VTEwKLSAgICAgICYmIGNpZi0+ZmxhZ3MgPT0gRkZJX1RZUEVfU1RSVUNUKQorICAgICAgJiYgKGNpZi0+ZmxhZ3MgPT0gRkZJX1RZUEVfU1RSVUNUCisgICAgICAgICAgfHwgY2lmLT5mbGFncyA9PSBGRklfVFlQRV9NU19TVFJVQ1QpKQogICAgIHsKICAgICAgIGVjaWYucnZhbHVlID0gYWxsb2NhKGNpZi0+cnR5cGUtPnNpemUpOwogICAgIH0KQEAgLTI5MSwzMyArMzY5LDQ0IEBACiAgICAgewogI2lmZGVmIFg4Nl9XSU42NAogICAgIGNhc2UgRkZJX1dJTjY0OgotICAgICAgewotICAgICAgICAvLyBNYWtlIGNvcGllcyBvZiBhbGwgc3RydWN0IGFyZ3VtZW50cwotICAgICAgICAvLyBOT1RFOiBub3Qgc3VyZSBpZiByZXNwb25zaWJpbGl0eSBzaG91bGQgYmUgaGVyZSBvciBpbiBjYWxsZXIKLSAgICAgICAgdW5zaWduZWQgaW50IGk7Ci0gICAgICAgIGZvciAoaT0wOyBpIDwgY2lmLT5uYXJncztpKyspIHsKLSAgICAgICAgICBzaXplX3Qgc2l6ZSA9IGNpZi0+YXJnX3R5cGVzW2ldLT5zaXplOwotICAgICAgICAgIGlmICgoY2lmLT5hcmdfdHlwZXNbaV0tPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUCi0gICAgICAgICAgICAgICAmJiAoc2l6ZSAhPSAxICYmIHNpemUgIT0gMiAmJiBzaXplICE9IDQgJiYgc2l6ZSAhPSA4KSkKLSNpZiBGRklfVFlQRV9MT05HRE9VQkxFICE9IEZGSV9UWVBFX0RPVUJMRQotICAgICAgICAgICAgICB8fCBjaWYtPmFyZ190eXBlc1tpXS0+dHlwZSA9PSBGRklfVFlQRV9MT05HRE9VQkxFCi0jZW5kaWYKLSAgICAgICAgICAgICAgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICB2b2lkICpsb2NhbCA9IGFsbG9jYShzaXplKTsKLSAgICAgICAgICAgICAgbWVtY3B5KGxvY2FsLCBhdmFsdWVbaV0sIHNpemUpOwotICAgICAgICAgICAgICBhdmFsdWVbaV0gPSBsb2NhbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBmZmlfY2FsbF93aW42NChmZmlfcHJlcF9hcmdzLCAmZWNpZiwgY2lmLT5ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgY2lmLT5mbGFncywgZWNpZi5ydmFsdWUsIGZuKTsKLSAgICAgIH0KKyAgICAgIGZmaV9jYWxsX3dpbjY0KGZmaV9wcmVwX2FyZ3MsICZlY2lmLCBjaWYtPmJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgY2lmLT5mbGFncywgZWNpZi5ydmFsdWUsIGZuKTsKICAgICAgIGJyZWFrOwogI2VsaWYgZGVmaW5lZChYODZfV0lOMzIpCiAgICAgY2FzZSBGRklfU1lTVjoKICAgICBjYXNlIEZGSV9TVERDQUxMOgotICAgICAgZmZpX2NhbGxfd2luMzIoZmZpX3ByZXBfYXJncywgJmVjaWYsIGNpZi0+Ynl0ZXMsIGNpZi0+ZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICBlY2lmLnJ2YWx1ZSwgZm4pOworICAgIGNhc2UgRkZJX01TX0NERUNMOgorICAgICAgZmZpX2NhbGxfd2luMzIoZmZpX3ByZXBfYXJncywgJmVjaWYsIGNpZi0+YWJpLCBjaWYtPmJ5dGVzLCBjaWYtPmZsYWdzLAorCQkgICAgIGVjaWYucnZhbHVlLCBmbik7CisgICAgICBicmVhazsKKyAgICBjYXNlIEZGSV9USElTQ0FMTDoKKyAgICBjYXNlIEZGSV9GQVNUQ0FMTDoKKyAgICAgIHsKKwl1bnNpZ25lZCBpbnQgYWJpID0gY2lmLT5hYmk7CisJdW5zaWduZWQgaW50IGksIHBhc3NlZF9yZWdzID0gMDsKKworCWlmIChjaWYtPmZsYWdzID09IEZGSV9UWVBFX1NUUlVDVCkKKwkgICsrcGFzc2VkX3JlZ3M7CisKKwlmb3IgKGk9MDsgaSA8IGNpZi0+bmFyZ3MgJiYgcGFzc2VkX3JlZ3MgPCAyO2krKykKKwkgIHsKKwkgICAgc2l6ZV90IHN6OworCisJICAgIGlmIChjaWYtPmFyZ190eXBlc1tpXS0+dHlwZSA9PSBGRklfVFlQRV9GTE9BVAorCSAgICAgICAgfHwgY2lmLT5hcmdfdHlwZXNbaV0tPnR5cGUgPT0gRkZJX1RZUEVfU1RSVUNUKQorCSAgICAgIGNvbnRpbnVlOworCSAgICBzeiA9IChjaWYtPmFyZ190eXBlc1tpXS0+c2l6ZSArIDMpICYgfjM7CisJICAgIGlmIChzeiA9PSAwIHx8IHN6ID4gNCkKKwkgICAgICBjb250aW51ZTsKKwkgICAgKytwYXNzZWRfcmVnczsKKwkgIH0KKwlpZiAocGFzc2VkX3JlZ3MgPCAyICYmIGFiaSA9PSBGRklfRkFTVENBTEwpCisJICBhYmkgPSBGRklfVEhJU0NBTEw7CisJaWYgKHBhc3NlZF9yZWdzIDwgMSAmJiBhYmkgPT0gRkZJX1RISVNDQUxMKQorCSAgYWJpID0gRkZJX1NURENBTEw7CisgICAgICAgIGZmaV9jYWxsX3dpbjMyKGZmaV9wcmVwX2FyZ3MsICZlY2lmLCBhYmksIGNpZi0+Ynl0ZXMsIGNpZi0+ZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgIGVjaWYucnZhbHVlLCBmbik7CisgICAgICB9CiAgICAgICBicmVhazsKICNlbHNlCiAgICAgY2FzZSBGRklfU1lTVjoKQEAgLTM0NSw4ICs0MzQsMTIgQEAKIHZvaWQgRkZJX0hJRERFTiBmZmlfY2xvc3VyZV9yYXdfU1lTViAoZmZpX3Jhd19jbG9zdXJlICopCiAgICAgIF9fYXR0cmlidXRlX18gKChyZWdwYXJtKDEpKSk7CiAjaWZkZWYgWDg2X1dJTjMyCit2b2lkIEZGSV9ISURERU4gZmZpX2Nsb3N1cmVfcmF3X1RISVNDQUxMIChmZmlfcmF3X2Nsb3N1cmUgKikKKyAgICAgX19hdHRyaWJ1dGVfXyAoKHJlZ3Bhcm0oMSkpKTsKIHZvaWQgRkZJX0hJRERFTiBmZmlfY2xvc3VyZV9TVERDQUxMIChmZmlfY2xvc3VyZSAqKQogICAgICBfX2F0dHJpYnV0ZV9fICgocmVncGFybSgxKSkpOwordm9pZCBGRklfSElEREVOIGZmaV9jbG9zdXJlX1RISVNDQUxMIChmZmlfY2xvc3VyZSAqKQorICAgICBfX2F0dHJpYnV0ZV9fICgocmVncGFybSgxKSkpOwogI2VuZGlmCiAjaWZkZWYgWDg2X1dJTjY0CiB2b2lkIEZGSV9ISURERU4gZmZpX2Nsb3N1cmVfd2luNjQgKGZmaV9jbG9zdXJlICopOwpAQCAtNDI4LDcgKzUyMSw4IEBACiAgICAgYXJncCArPSBzaXplb2Yodm9pZCAqKTsKICAgfQogI2Vsc2UKLSAgaWYgKCBjaWYtPmZsYWdzID09IEZGSV9UWVBFX1NUUlVDVCApIHsKKyAgaWYgKCBjaWYtPmZsYWdzID09IEZGSV9UWVBFX1NUUlVDVAorICAgICAgIHx8IGNpZi0+ZmxhZ3MgPT0gRkZJX1RZUEVfTVNfU1RSVUNUICkgewogICAgICpydmFsdWUgPSAqKHZvaWQgKiopIGFyZ3A7CiAgICAgYXJncCArPSBzaXplb2Yodm9pZCAqKTsKICAgfQpAQCAtNTA2LDYgKzYwMCwzMyBAQAogICAgKih1bnNpZ25lZCBpbnQqKSAgJl9fdHJhbXBbNl0gPSBfX2RpczsgLyogam1wIF9fZnVuICAqLyBcCiAgfQogCisjZGVmaW5lIEZGSV9JTklUX1RSQU1QT0xJTkVfVEhJU0NBTEwoVFJBTVAsRlVOLENUWCxTSVpFKSBcCit7IHVuc2lnbmVkIGNoYXIgKl9fdHJhbXAgPSAodW5zaWduZWQgY2hhciopKFRSQU1QKTsgXAorICAgdW5zaWduZWQgaW50ICBfX2Z1biA9ICh1bnNpZ25lZCBpbnQpKEZVTik7IFwKKyAgIHVuc2lnbmVkIGludCAgX19jdHggPSAodW5zaWduZWQgaW50KShDVFgpOyBcCisgICB1bnNpZ25lZCBpbnQgIF9fZGlzID0gX19mdW4gLSAoX19jdHggKyA0OSk7ICBcCisgICB1bnNpZ25lZCBzaG9ydCBfX3NpemUgPSAodW5zaWduZWQgc2hvcnQpKFNJWkUpOyBcCisgICAqKHVuc2lnbmVkIGludCAqKSAmX190cmFtcFswXSA9IDB4ODMyNDA0OGI7CS8qIG1vdiAoJWVzcCksICVlYXggKi8gXAorICAgKih1bnNpZ25lZCBpbnQgKikgJl9fdHJhbXBbNF0gPSAweDRjODkwY2VjOwkvKiBzdWIgJDEyLCAlZXNwICovIFwKKyAgICoodW5zaWduZWQgaW50ICopICZfX3RyYW1wWzhdID0gMHgwNDg5MDQyNDsJLyogbW92ICVlY3gsIDQoJWVzcCkgKi8gXAorICAgKih1bnNpZ25lZCBjaGFyKikgJl9fdHJhbXBbMTJdID0gMHgyNDsJLyogbW92ICVlYXgsICglZXNwKSAqLyBcCisgICAqKHVuc2lnbmVkIGNoYXIqKSAmX190cmFtcFsxM10gPSAweGI4OyBcCisgICAqKHVuc2lnbmVkIGludCAqKSAmX190cmFtcFsxNF0gPSBfX3NpemU7CS8qIG1vdiBfX3NpemUsICVlYXggKi8gXAorICAgKih1bnNpZ25lZCBpbnQgKikgJl9fdHJhbXBbMThdID0gMHgwODI0NGM4ZDsJLyogbGVhIDgoJWVzcCksICVlY3ggKi8gXAorICAgKih1bnNpZ25lZCBpbnQgKikgJl9fdHJhbXBbMjJdID0gMHg0ODAyZThjMTsgLyogc2hyICQyLCAlZWF4IDsgZGVjICVlYXggKi8gXAorICAgKih1bnNpZ25lZCBzaG9ydCopICZfX3RyYW1wWzI2XSA9IDB4MGI3NDsJLyoganogMWYgKi8gXAorICAgKih1bnNpZ25lZCBpbnQgKikgJl9fdHJhbXBbMjhdID0gMHg4OTA4NTE4YjsJLyogMmI6IG1vdiA4KCVlY3gpLCAlZWR4ICovIFwKKyAgICoodW5zaWduZWQgaW50ICopICZfX3RyYW1wWzMyXSA9IDB4MDRjMTgzMTE7IC8qIG1vdiAlZWR4LCAoJWVjeCkgOyBhZGQgJDQsICVlY3ggKi8gXAorICAgKih1bnNpZ25lZCBjaGFyKikgJl9fdHJhbXBbMzZdID0gMHg0ODsJLyogZGVjICVlYXggKi8gXAorICAgKih1bnNpZ25lZCBzaG9ydCopICZfX3RyYW1wWzM3XSA9IDB4ZjU3NTsJLyogam56IDJiIDsgMWY6ICovIFwKKyAgICoodW5zaWduZWQgY2hhciopICZfX3RyYW1wWzM5XSA9IDB4Yjg7IFwKKyAgICoodW5zaWduZWQgaW50KikgICZfX3RyYW1wWzQwXSA9IF9fY3R4OyAvKiBtb3ZsIF9fY3R4LCAlZWF4ICovIFwKKyAgICoodW5zaWduZWQgY2hhciAqKSAgJl9fdHJhbXBbNDRdID0gMHhlODsgXAorICAgKih1bnNpZ25lZCBpbnQqKSAgJl9fdHJhbXBbNDVdID0gX19kaXM7IC8qIGNhbGwgX19mdW4gICovIFwKKyAgICoodW5zaWduZWQgY2hhciopICAmX190cmFtcFs0OV0gPSAweGMyOyAvKiByZXQgICovIFwKKyAgICoodW5zaWduZWQgc2hvcnQqKSAgJl9fdHJhbXBbNTBdID0gKF9fc2l6ZSArIDgpOyAvKiByZXQgKF9fc2l6ZSArIDgpICAqLyBcCisgfQorCiAjZGVmaW5lIEZGSV9JTklUX1RSQU1QT0xJTkVfU1REQ0FMTChUUkFNUCxGVU4sQ1RYLFNJWkUpICBcCiB7IHVuc2lnbmVkIGNoYXIgKl9fdHJhbXAgPSAodW5zaWduZWQgY2hhciopKFRSQU1QKTsgXAogICAgdW5zaWduZWQgaW50ICBfX2Z1biA9ICh1bnNpZ25lZCBpbnQpKEZVTik7IFwKQEAgLTU0OCwxMiArNjY5LDI1IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopY29kZWxvYyk7CiAgICAgfQogI2lmZGVmIFg4Nl9XSU4zMgorICBlbHNlIGlmIChjaWYtPmFiaSA9PSBGRklfVEhJU0NBTEwpCisgICAgeworICAgICAgRkZJX0lOSVRfVFJBTVBPTElORV9USElTQ0FMTCAoJmNsb3N1cmUtPnRyYW1wWzBdLAorCQkJCSAgICAmZmZpX2Nsb3N1cmVfVEhJU0NBTEwsCisJCQkJICAgICh2b2lkKiljb2RlbG9jLAorCQkJCSAgICBjaWYtPmJ5dGVzKTsKKyAgICB9CiAgIGVsc2UgaWYgKGNpZi0+YWJpID09IEZGSV9TVERDQUxMKQogICAgIHsKICAgICAgIEZGSV9JTklUX1RSQU1QT0xJTkVfU1REQ0FMTCAoJmNsb3N1cmUtPnRyYW1wWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmZpX2Nsb3N1cmVfU1REQ0FMTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKWNvZGVsb2MsIGNpZi0+Ynl0ZXMpOwogICAgIH0KKyAgZWxzZSBpZiAoY2lmLT5hYmkgPT0gRkZJX01TX0NERUNMKQorICAgIHsKKyAgICAgIEZGSV9JTklUX1RSQU1QT0xJTkUgKCZjbG9zdXJlLT50cmFtcFswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZmZmlfY2xvc3VyZV9TWVNWLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKWNvZGVsb2MpOworICAgIH0KICNlbmRpZiAvKiBYODZfV0lOMzIgKi8KICNlbmRpZiAvKiAhWDg2X1dJTjY0ICovCiAgIGVsc2UKQEAgLTU4Miw2ICs3MTYsOSBAQAogICBpbnQgaTsKIAogICBpZiAoY2lmLT5hYmkgIT0gRkZJX1NZU1YpIHsKKyNpZmRlZiBYODZfV0lOMzIKKyAgICBpZiAoY2lmLT5hYmkgIT0gRkZJX1RISVNDQUxMKQorI2VuZGlmCiAgICAgcmV0dXJuIEZGSV9CQURfQUJJOwogICB9CiAKQEAgLTU5NiwxMCArNzMzLDIwIEBACiAgICAgICBGRklfQVNTRVJUIChjaWYtPmFyZ190eXBlc1tpXS0+dHlwZSAhPSBGRklfVFlQRV9MT05HRE9VQkxFKTsKICAgICB9CiAgIAotCisjaWZkZWYgWDg2X1dJTjMyCisgIGlmIChjaWYtPmFiaSA9PSBGRklfU1lTVikKKyAgICB7CisjZW5kaWYKICAgRkZJX0lOSVRfVFJBTVBPTElORSAoJmNsb3N1cmUtPnRyYW1wWzBdLCAmZmZpX2Nsb3N1cmVfcmF3X1NZU1YsCiAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVsb2MpOwotICAgIAorI2lmZGVmIFg4Nl9XSU4zMgorICAgIH0KKyAgZWxzZSBpZiAoY2lmLT5hYmkgPT0gRkZJX1RISVNDQUxMKQorICAgIHsKKyAgICAgIEZGSV9JTklUX1RSQU1QT0xJTkVfVEhJU0NBTEwgKCZjbG9zdXJlLT50cmFtcFswXSwgJmZmaV9jbG9zdXJlX3Jhd19USElTQ0FMTCwKKwkJCQkgICAgY29kZWxvYywgY2lmLT5ieXRlcyk7CisgICAgfQorI2VuZGlmCiAgIGNsb3N1cmUtPmNpZiAgPSBjaWY7CiAgIGNsb3N1cmUtPnVzZXJfZGF0YSA9IHVzZXJfZGF0YTsKICAgY2xvc3VyZS0+ZnVuICA9IGZ1bjsKQEAgLTYzMCw4ICs3NzcsOSBAQAogICAvKiBJZiB0aGUgcmV0dXJuIHZhbHVlIGlzIGEgc3RydWN0IGFuZCB3ZSBkb24ndCBoYXZlIGEgcmV0dXJuICovCiAgIC8qIHZhbHVlIGFkZHJlc3MgdGhlbiB3ZSBuZWVkIHRvIG1ha2Ugb25lICAgICAgICAgICAgICAgICAgICAgKi8KIAotICBpZiAoKHJ2YWx1ZSA9PSBOVUxMKSAmJiAKLSAgICAgIChjaWYtPnJ0eXBlLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCkpCisgIGlmIChydmFsdWUgPT0gTlVMTAorICAgICAgJiYgKGNpZi0+ZmxhZ3MgPT0gRkZJX1RZUEVfU1RSVUNUCisgICAgICAgICAgfHwgY2lmLT5mbGFncyA9PSBGRklfVFlQRV9NU19TVFJVQ1QpKQogICAgIHsKICAgICAgIGVjaWYucnZhbHVlID0gYWxsb2NhKGNpZi0+cnR5cGUtPnNpemUpOwogICAgIH0KQEAgLTY0NCw4ICs3OTIsMzggQEAKICNpZmRlZiBYODZfV0lOMzIKICAgICBjYXNlIEZGSV9TWVNWOgogICAgIGNhc2UgRkZJX1NURENBTEw6Ci0gICAgICBmZmlfY2FsbF93aW4zMihmZmlfcHJlcF9hcmdzX3JhdywgJmVjaWYsIGNpZi0+Ynl0ZXMsIGNpZi0+ZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICBlY2lmLnJ2YWx1ZSwgZm4pOworICAgIGNhc2UgRkZJX01TX0NERUNMOgorICAgICAgZmZpX2NhbGxfd2luMzIoZmZpX3ByZXBfYXJnc19yYXcsICZlY2lmLCBjaWYtPmFiaSwgY2lmLT5ieXRlcywgY2lmLT5mbGFncywKKwkJICAgICBlY2lmLnJ2YWx1ZSwgZm4pOworICAgICAgYnJlYWs7CisgICAgY2FzZSBGRklfVEhJU0NBTEw6CisgICAgY2FzZSBGRklfRkFTVENBTEw6CisgICAgICB7CisJdW5zaWduZWQgaW50IGFiaSA9IGNpZi0+YWJpOworCXVuc2lnbmVkIGludCBpLCBwYXNzZWRfcmVncyA9IDA7CisKKwlpZiAoY2lmLT5mbGFncyA9PSBGRklfVFlQRV9TVFJVQ1QpCisJICArK3Bhc3NlZF9yZWdzOworCisJZm9yIChpPTA7IGkgPCBjaWYtPm5hcmdzICYmIHBhc3NlZF9yZWdzIDwgMjtpKyspCisJICB7CisJICAgIHNpemVfdCBzejsKKworCSAgICBpZiAoY2lmLT5hcmdfdHlwZXNbaV0tPnR5cGUgPT0gRkZJX1RZUEVfRkxPQVQKKwkgICAgICAgIHx8IGNpZi0+YXJnX3R5cGVzW2ldLT50eXBlID09IEZGSV9UWVBFX1NUUlVDVCkKKwkgICAgICBjb250aW51ZTsKKwkgICAgc3ogPSAoY2lmLT5hcmdfdHlwZXNbaV0tPnNpemUgKyAzKSAmIH4zOworCSAgICBpZiAoc3ogPT0gMCB8fCBzeiA+IDQpCisJICAgICAgY29udGludWU7CisJICAgICsrcGFzc2VkX3JlZ3M7CisJICB9CisJaWYgKHBhc3NlZF9yZWdzIDwgMiAmJiBhYmkgPT0gRkZJX0ZBU1RDQUxMKQorCSAgY2lmLT5hYmkgPSBhYmkgPSBGRklfVEhJU0NBTEw7CisJaWYgKHBhc3NlZF9yZWdzIDwgMSAmJiBhYmkgPT0gRkZJX1RISVNDQUxMKQorCSAgY2lmLT5hYmkgPSBhYmkgPSBGRklfU1REQ0FMTDsKKyAgICAgICAgZmZpX2NhbGxfd2luMzIoZmZpX3ByZXBfYXJnc19yYXcsICZlY2lmLCBhYmksIGNpZi0+Ynl0ZXMsIGNpZi0+ZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgIGVjaWYucnZhbHVlLCBmbik7CisgICAgICB9CiAgICAgICBicmVhazsKICNlbHNlCiAgICAgY2FzZSBGRklfU1lTVjoKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni9mZmk2NC5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L2ZmaTY0LmMKaW5kZXggMDdhMjYyNy4uMWRhYTFjMCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L2ZmaTY0LmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L2ZmaTY0LmMKQEAgLTEsNyArMSw4IEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgZmZpNjQuYyAtIENvcHlyaWdodCAoYykgMjAwMiwgMjAwNyAgQm8gVGhvcnNlbiA8Ym9Ac3VzZS5kZT4KLSAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMDggIFJlZCBIYXQsIEluYy4KLSAgIAorICAgZmZpNjQuYyAtIENvcHlyaWdodCAoYykgMjAwMTEgIEFudGhvbnkgR3JlZW4KKyAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTAgIFJlZCBIYXQsIEluYy4KKyAgICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDIwMDIsIDIwMDcgIEJvIFRob3JzZW4gPGJvQHN1c2UuZGU+CisgICAgICAgICAgICAgCiAgICB4ODYtNjQgRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UgCiAKICAgIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZwpAQCAtMzYsMTEgKzM3LDE3IEBACiAjZGVmaW5lIE1BWF9HUFJfUkVHUyA2CiAjZGVmaW5lIE1BWF9TU0VfUkVHUyA4CiAKKyNpZmRlZiBfX0lOVEVMX0NPTVBJTEVSCisjZGVmaW5lIFVJTlQxMjggX19tMTI4CisjZWxzZQorI2RlZmluZSBVSU5UMTI4IF9faW50MTI4X3QKKyNlbmRpZgorCiBzdHJ1Y3QgcmVnaXN0ZXJfYXJncwogewogICAvKiBSZWdpc3RlcnMgZm9yIGFyZ3VtZW50IHBhc3NpbmcuICAqLwogICBVSU5UNjQgZ3ByW01BWF9HUFJfUkVHU107Ci0gIF9faW50MTI4X3Qgc3NlW01BWF9TU0VfUkVHU107CisgIFVJTlQxMjggc3NlW01BWF9TU0VfUkVHU107CiB9OwogCiBleHRlcm4gdm9pZCBmZmlfY2FsbF91bml4NjQgKHZvaWQgKmFyZ3MsIHVuc2lnbmVkIGxvbmcgYnl0ZXMsIHVuc2lnbmVkIGZsYWdzLApAQCAtMzc4LDcgKzM4NSw3IEBACiAJICBpZiAoYWxpZ24gPCA4KQogCSAgICBhbGlnbiA9IDg7CiAKLQkgIGJ5dGVzID0gQUxJR04oYnl0ZXMsIGFsaWduKTsKKwkgIGJ5dGVzID0gQUxJR04gKGJ5dGVzLCBhbGlnbik7CiAJICBieXRlcyArPSBjaWYtPmFyZ190eXBlc1tpXS0+c2l6ZTsKIAl9CiAgICAgICBlbHNlCkBAIC0zOTAsNyArMzk3LDcgQEAKICAgaWYgKHNzZWNvdW50KQogICAgIGZsYWdzIHw9IDEgPDwgMTE7CiAgIGNpZi0+ZmxhZ3MgPSBmbGFnczsKLSAgY2lmLT5ieXRlcyA9IGJ5dGVzOworICBjaWYtPmJ5dGVzID0gQUxJR04gKGJ5dGVzLCA4KTsKIAogICByZXR1cm4gRkZJX09LOwogfQpAQCAtNDI2LDcgKzQzMyw3IEBACiAgIC8qIElmIHRoZSByZXR1cm4gdmFsdWUgaXMgcGFzc2VkIGluIG1lbW9yeSwgYWRkIHRoZSBwb2ludGVyIGFzIHRoZQogICAgICBmaXJzdCBpbnRlZ2VyIGFyZ3VtZW50LiAgKi8KICAgaWYgKHJldF9pbl9tZW1vcnkpCi0gICAgcmVnX2FyZ3MtPmdwcltncHJjb3VudCsrXSA9IChsb25nKSBydmFsdWU7CisgICAgcmVnX2FyZ3MtPmdwcltncHJjb3VudCsrXSA9ICh1bnNpZ25lZCBsb25nKSBydmFsdWU7CiAKICAgYXZuID0gY2lmLT5uYXJnczsKICAgYXJnX3R5cGVzID0gY2lmLT5hcmdfdHlwZXM7CkBAIC00OTgsMTIgKzUwNSwyMSBAQAogewogICB2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqdHJhbXA7CiAKKyAgLyogU2FuaXR5IGNoZWNrIG9uIHRoZSBjaWYgQUJJLiAgKi8KKyAgeworICAgIGludCBhYmkgPSBjaWYtPmFiaTsKKyAgICBpZiAoVU5MSUtFTFkgKCEgKGFiaSA+IEZGSV9GSVJTVF9BQkkgJiYgYWJpIDwgRkZJX0xBU1RfQUJJKSkpCisgICAgICByZXR1cm4gRkZJX0JBRF9BQkk7CisgIH0KKwogICB0cmFtcCA9ICh2b2xhdGlsZSB1bnNpZ25lZCBzaG9ydCAqKSAmY2xvc3VyZS0+dHJhbXBbMF07CiAKICAgdHJhbXBbMF0gPSAweGJiNDk7CQkvKiBtb3YgPGNvZGU+LCAlcjExCSovCi0gICoodm9pZCAqIHZvbGF0aWxlICopICZ0cmFtcFsxXSA9IGZmaV9jbG9zdXJlX3VuaXg2NDsKKyAgKigodW5zaWduZWQgbG9uZyBsb25nICogdm9sYXRpbGUpICZ0cmFtcFsxXSkKKyAgICA9ICh1bnNpZ25lZCBsb25nKSBmZmlfY2xvc3VyZV91bml4NjQ7CiAgIHRyYW1wWzVdID0gMHhiYTQ5OwkJLyogbW92IDxkYXRhPiwgJXIxMAkqLwotICAqKHZvaWQgKiB2b2xhdGlsZSAqKSAmdHJhbXBbNl0gPSBjb2RlbG9jOworICAqKCh1bnNpZ25lZCBsb25nIGxvbmcgKiB2b2xhdGlsZSkgJnRyYW1wWzZdKQorICAgID0gKHVuc2lnbmVkIGxvbmcpIGNvZGVsb2M7CiAKICAgLyogU2V0IHRoZSBjYXJyeSBiaXQgaWZmIHRoZSBmdW5jdGlvbiB1c2VzIGFueSBzc2UgcmVnaXN0ZXJzLgogICAgICBUaGlzIGlzIGNsYyBvciBzdGMsIHRvZ2V0aGVyIHdpdGggdGhlIGZpcnN0IGJ5dGUgb2YgdGhlIGptcC4gICovCkBAIC01NDIsNyArNTU4LDcgQEAKIAl7CiAJICAvKiBUaGUgcmV0dXJuIHZhbHVlIGdvZXMgaW4gbWVtb3J5LiAgQXJyYW5nZSBmb3IgdGhlIGNsb3N1cmUKIAkgICAgIHJldHVybiB2YWx1ZSB0byBnbyBkaXJlY3RseSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBjYWxsZXIuICAqLwotCSAgcnZhbHVlID0gKHZvaWQgKikgcmVnX2FyZ3MtPmdwcltncHJjb3VudCsrXTsKKwkgIHJ2YWx1ZSA9ICh2b2lkICopICh1bnNpZ25lZCBsb25nKSByZWdfYXJncy0+Z3ByW2dwcmNvdW50KytdOwogCSAgLyogV2UgZG9uJ3QgaGF2ZSB0byBkbyBhbnl0aGluZyBpbiBhc20gZm9yIHRoZSByZXR1cm4uICAqLwogCSAgcmV0ID0gRkZJX1RZUEVfVk9JRDsKIAl9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy94ODYvZmZpdGFyZ2V0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy94ODYvZmZpdGFyZ2V0LmgKaW5kZXggODlhODk4My4uZjQ0MjY1NCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L2ZmaXRhcmdldC5oCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni9mZml0YXJnZXQuaApAQCAtMSw2ICsxLDcgQEAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi1DLSotCi0gICBmZml0YXJnZXQuaCAtIENvcHlyaWdodCAoYykgMTk5Ni0yMDAzLCAyMDEwICBSZWQgSGF0LCBJbmMuCi0gICBDb3B5cmlnaHQgKEMpIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgZmZpdGFyZ2V0LmggLSBDb3B5cmlnaHQgKGMpIDIwMTIgIEFudGhvbnkgR3JlZW4KKyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk2LTIwMDMsIDIwMTAgIFJlZCBIYXQsIEluYy4KKyAgICAgICAgICAgICAgICAgQ29weXJpZ2h0IChDKSAyMDA4ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogICAgVGFyZ2V0IGNvbmZpZ3VyYXRpb24gbWFjcm9zIGZvciB4ODYgYW5kIHg4Ni02NC4KIApAQCAtMjksOCArMzAsMTUgQEAKICNpZm5kZWYgTElCRkZJX1RBUkdFVF9ICiAjZGVmaW5lIExJQkZGSV9UQVJHRVRfSAogCisjaWZuZGVmIExJQkZGSV9ICisjZXJyb3IgIlBsZWFzZSBkbyBub3QgaW5jbHVkZSBmZml0YXJnZXQuaCBkaXJlY3RseSBpbnRvIHlvdXIgc291cmNlLiAgVXNlIGZmaS5oIGluc3RlYWQuIgorI2VuZGlmCisKIC8qIC0tLS0gU3lzdGVtIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKKy8qIEZvciBjb2RlIGNvbW1vbiB0byBhbGwgcGxhdGZvcm1zIG9uIHg4NiBhbmQgeDg2XzY0LiAqLworI2RlZmluZSBYODZfQU5ZCisKICNpZiBkZWZpbmVkIChYODZfNjQpICYmIGRlZmluZWQgKF9faTM4Nl9fKQogI3VuZGVmIFg4Nl82NAogI2RlZmluZSBYODYKQEAgLTM4LDcgKzQ2LDcgQEAKIAogI2lmZGVmIFg4Nl9XSU42NAogI2RlZmluZSBGRklfU0laRU9GX0FSRyA4Ci0jZGVmaW5lIFVTRV9CVUlMVElOX0ZGUyAwIC8vIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gbWluZ3ctNjQgCisjZGVmaW5lIFVTRV9CVUlMVElOX0ZGUyAwIC8qIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gbWluZ3ctNjQgKi8KICNlbmRpZgogCiAvKiAtLS0tIEdlbmVyaWMgdHlwZSBkZWZpbml0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtNTMsOSArNjEsMTUgQEAKIHR5cGVkZWYgbG9uZyBsb25nICAgICAgICAgICAgICBmZmlfc2FyZzsKICNlbmRpZgogI2Vsc2UKKyNpZiBkZWZpbmVkIF9feDg2XzY0X18gJiYgIWRlZmluZWQgX19MUDY0X18KKyNkZWZpbmUgRkZJX1NJWkVPRl9BUkcgOAordHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgICAgIGZmaV9hcmc7Cit0eXBlZGVmIGxvbmcgbG9uZyAgICAgICAgICAgICAgZmZpX3Nhcmc7CisjZWxzZQogdHlwZWRlZiB1bnNpZ25lZCBsb25nICAgICAgICAgIGZmaV9hcmc7CiB0eXBlZGVmIHNpZ25lZCBsb25nICAgICAgICAgICAgZmZpX3Nhcmc7CiAjZW5kaWYKKyNlbmRpZgogCiB0eXBlZGVmIGVudW0gZmZpX2FiaSB7CiAgIEZGSV9GSVJTVF9BQkkgPSAwLApAQCAtNjQsMjggKzc4LDMyIEBACiAjaWZkZWYgWDg2X1dJTjMyCiAgIEZGSV9TWVNWLAogICBGRklfU1REQ0FMTCwKLSAgLyogVE9ETzogQWRkIGZhc3RjYWxsIHN1cHBvcnQgZm9yIHRoZSBzYWtlIG9mIGNvbXBsZXRlbmVzcyAqLwotICBGRklfREVGQVVMVF9BQkkgPSBGRklfU1lTViwKKyAgRkZJX1RISVNDQUxMLAorICBGRklfRkFTVENBTEwsCisgIEZGSV9NU19DREVDTCwKKyAgRkZJX0xBU1RfQUJJLAorI2lmZGVmIF9NU0NfVkVSCisgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9NU19DREVDTAorI2Vsc2UKKyAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1NZU1YKICNlbmRpZgogCi0jaWZkZWYgWDg2X1dJTjY0CisjZWxpZiBkZWZpbmVkKFg4Nl9XSU42NCkKICAgRkZJX1dJTjY0LAotICBGRklfREVGQVVMVF9BQkkgPSBGRklfV0lONjQsCi0jZWxzZQorICBGRklfTEFTVF9BQkksCisgIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9XSU42NAogCisjZWxzZQogICAvKiAtLS0tIEludGVsIHg4NiBhbmQgQU1EIHg4Ni02NCAtICovCi0jaWYgIWRlZmluZWQoWDg2X1dJTjMyKSAmJiAoZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX2FtZDY0KSkKICAgRkZJX1NZU1YsCiAgIEZGSV9VTklYNjQsICAgLyogVW5peCB2YXJpYW50cyBhbGwgdXNlIHRoZSBzYW1lIEFCSSBmb3IgeDg2LTY0ICAqLworICBGRklfTEFTVF9BQkksCiAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2kzODYpCi0gIEZGSV9ERUZBVUxUX0FCSSA9IEZGSV9TWVNWLAorICBGRklfREVGQVVMVF9BQkkgPSBGRklfU1lTVgogI2Vsc2UKLSAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1VOSVg2NCwKKyAgRkZJX0RFRkFVTFRfQUJJID0gRkZJX1VOSVg2NAogI2VuZGlmCiAjZW5kaWYKLSNlbmRpZiAvKiBYODZfV0lONjQgKi8KLQotICBGRklfTEFTVF9BQkkgPSBGRklfREVGQVVMVF9BQkkgKyAxCiB9IGZmaV9hYmk7CiAjZW5kaWYKIApAQCAtOTUsMTMgKzExMywxNCBAQAogI2RlZmluZSBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfMUIgKEZGSV9UWVBFX0xBU1QgKyAxKQogI2RlZmluZSBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfMkIgKEZGSV9UWVBFX0xBU1QgKyAyKQogI2RlZmluZSBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfNEIgKEZGSV9UWVBFX0xBU1QgKyAzKQorI2RlZmluZSBGRklfVFlQRV9NU19TVFJVQ1QgICAgICAgKEZGSV9UWVBFX0xBU1QgKyA0KQogCiAjaWYgZGVmaW5lZCAoWDg2XzY0KSB8fCAoZGVmaW5lZCAoX194ODZfNjRfXykgJiYgZGVmaW5lZCAoWDg2X0RBUldJTikpCiAjZGVmaW5lIEZGSV9UUkFNUE9MSU5FX1NJWkUgMjQKICNkZWZpbmUgRkZJX05BVElWRV9SQVdfQVBJIDAKICNlbHNlCiAjaWZkZWYgWDg2X1dJTjMyCi0jZGVmaW5lIEZGSV9UUkFNUE9MSU5FX1NJWkUgMTMKKyNkZWZpbmUgRkZJX1RSQU1QT0xJTkVfU0laRSA1MgogI2Vsc2UKICNpZmRlZiBYODZfV0lONjQKICNkZWZpbmUgRkZJX1RSQU1QT0xJTkVfU0laRSAyOQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L3N5c3YuUyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni9zeXN2LlMKaW5kZXggZjRiNmMxZS4uZjEwOGRkOCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L3N5c3YuUworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy94ODYvc3lzdi5TCkBAIC0xLDUgKzEsNSBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgIHN5c3YuUyAtIENvcHlyaWdodCAoYykgMTk5NiwgMTk5OCwgMjAwMS0yMDAzLCAyMDA1LCAyMDA4ICBSZWQgSGF0LCBJbmMuCisgICBzeXN2LlMgLSBDb3B5cmlnaHQgKGMpIDE5OTYsIDE5OTgsIDIwMDEtMjAwMywgMjAwNSwgMjAwOCwgMjAxMCAgUmVkIEhhdCwgSW5jLgogICAgCiAgICBYODYgRm9yZWlnbiBGdW5jdGlvbiBJbnRlcmZhY2UgCiAKQEAgLTQ4LDYgKzQ4LDkgQEAKIAltb3ZsICAxNiglZWJwKSwlZWN4CiAJc3VibCAgJWVjeCwlZXNwCiAKKyAgICAgICAgLyogQWxpZ24gdGhlIHN0YWNrIHBvaW50ZXIgdG8gMTYtYnl0ZXMgKi8KKyAgICAgICAgYW5kbCAgJDB4ZmZmZmZmZjAsICVlc3AKKwogCW1vdmwgICVlc3AsJWVheAogCiAJLyogUGxhY2UgYWxsIG9mIHRoZSBmZmlfcHJlcF9hcmdzIGluIHBvc2l0aW9uICAqLwpAQCAtMzI1LDIzICszMjgsNTIgQEAKIAkuc2l6ZQlmZmlfY2xvc3VyZV9yYXdfU1lTViwgLi1mZmlfY2xvc3VyZV9yYXdfU1lTVgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkIF9fUElDX18KKyMgaWYgZGVmaW5lZCBfX3N1bl9fICYmIGRlZmluZWQgX19zdnI0X18KKy8qIDMyLWJpdCBTb2xhcmlzIDIveDg2IHVzZXMgZGF0YXJlbCBlbmNvZGluZyBmb3IgUElDLiAgR05VIGxkIGJlZm9yZSAyLjIyCisgICBkb2Vzbid0IGNvcnJlY3RseSBzb3J0IC5laF9mcmFtZV9oZHIgd2l0aCBtaXhlZCBlbmNvZGluZ3MsIHNvIG1hdGNoIHRoaXMuICAqLworIyAgZGVmaW5lIEZERV9FTkNPRElORwkJMHgzMAkvKiBkYXRhcmVsICovCisjICBkZWZpbmUgRkRFX0VOQ09ERShYKQkJWEBHT1RPRkYKKyMgZWxzZQorIyAgZGVmaW5lIEZERV9FTkNPRElORwkJMHgxYgkvKiBwY3JlbCBzZGF0YTQgKi8KKyMgIGlmIGRlZmluZWQgSEFWRV9BU19YODZfUENSRUwKKyMgICBkZWZpbmUgRkRFX0VOQ09ERShYKQlYLS4KKyMgIGVsc2UKKyMgICBkZWZpbmUgRkRFX0VOQ09ERShYKQlYQHJlbAorIyAgZW5kaWYKKyMgZW5kaWYKKyNlbHNlCisjIGRlZmluZSBGREVfRU5DT0RJTkcJCTAJLyogYWJzb2x1dGUgKi8KKyMgZGVmaW5lIEZERV9FTkNPREUoWCkJCVgKKyNlbmRpZgorCiAJLnNlY3Rpb24JLmVoX2ZyYW1lLEVIX0ZSQU1FX0ZMQUdTLEBwcm9nYml0cwogLkxmcmFtZTE6CiAJLmxvbmcJLkxFQ0lFMS0uTFNDSUUxCS8qIExlbmd0aCBvZiBDb21tb24gSW5mb3JtYXRpb24gRW50cnkgKi8KIC5MU0NJRTE6CiAJLmxvbmcJMHgwCS8qIENJRSBJZGVudGlmaWVyIFRhZyAqLwogCS5ieXRlCTB4MQkvKiBDSUUgVmVyc2lvbiAqLworI2lmZGVmIEhBVkVfQVNfQVNDSUlfUFNFVURPX09QCiAjaWZkZWYgX19QSUNfXwogCS5hc2NpaSAielJcMCIJLyogQ0lFIEF1Z21lbnRhdGlvbiAqLwogI2Vsc2UKIAkuYXNjaWkgIlwwIgkvKiBDSUUgQXVnbWVudGF0aW9uICovCiAjZW5kaWYKKyNlbGlmIGRlZmluZWQgSEFWRV9BU19TVFJJTkdfUFNFVURPX09QCisjaWZkZWYgX19QSUNfXworCS5zdHJpbmcgInpSIgkvKiBDSUUgQXVnbWVudGF0aW9uICovCisjZWxzZQorCS5zdHJpbmcgIiIJLyogQ0lFIEF1Z21lbnRhdGlvbiAqLworI2VuZGlmCisjZWxzZQorI2Vycm9yIG1pc3NpbmcgLmFzY2lpLy5zdHJpbmcKKyNlbmRpZgogCS5ieXRlCTB4MQkvKiAudWxlYjEyOCAweDE7IENJRSBDb2RlIEFsaWdubWVudCBGYWN0b3IgKi8KIAkuYnl0ZQkweDdjCS8qIC5zbGViMTI4IC00OyBDSUUgRGF0YSBBbGlnbm1lbnQgRmFjdG9yICovCiAJLmJ5dGUJMHg4CS8qIENJRSBSQSBDb2x1bW4gKi8KICNpZmRlZiBfX1BJQ19fCiAJLmJ5dGUJMHgxCS8qIC51bGViMTI4IDB4MTsgQXVnbWVudGF0aW9uIHNpemUgKi8KLQkuYnl0ZQkweDFiCS8qIEZERSBFbmNvZGluZyAocGNyZWwgc2RhdGE0KSAqLworCS5ieXRlCUZERV9FTkNPRElORwogI2VuZGlmCiAJLmJ5dGUJMHhjCS8qIERXX0NGQV9kZWZfY2ZhICovCiAJLmJ5dGUJMHg0CS8qIC51bGViMTI4IDB4NCAqLwpAQCAtMzU0LDE0ICszODYsOCBAQAogCS5sb25nCS5MRUZERTEtLkxBU0ZERTEJLyogRkRFIExlbmd0aCAqLwogLkxBU0ZERTE6CiAJLmxvbmcJLkxBU0ZERTEtLkxmcmFtZTEJLyogRkRFIENJRSBvZmZzZXQgKi8KLSNpZiBkZWZpbmVkIF9fUElDX18gJiYgZGVmaW5lZCBIQVZFX0FTX1g4Nl9QQ1JFTAotCS5sb25nCS5MRkIxLS4JLyogRkRFIGluaXRpYWwgbG9jYXRpb24gKi8KLSNlbGlmIGRlZmluZWQgX19QSUNfXwotCS5sb25nCS5MRkIxQHJlbAotI2Vsc2UKLQkubG9uZwkuTEZCMQotI2VuZGlmCi0JLmxvbmcJLkxGRTEtLkxGQjEJLyogRkRFIGFkZHJlc3MgcmFuZ2UgKi8KKwkubG9uZwlGREVfRU5DT0RFKC5MRkIxKQkvKiBGREUgaW5pdGlhbCBsb2NhdGlvbiAqLworCS5sb25nCS5MRkUxLS5MRkIxCQkvKiBGREUgYWRkcmVzcyByYW5nZSAqLwogI2lmZGVmIF9fUElDX18KIAkuYnl0ZQkweDAJLyogLnVsZWIxMjggMHgwOyBBdWdtZW50YXRpb24gc2l6ZSAqLwogI2VuZGlmCkBAIC0zODEsMTQgKzQwNyw4IEBACiAJLmxvbmcJLkxFRkRFMi0uTEFTRkRFMgkvKiBGREUgTGVuZ3RoICovCiAuTEFTRkRFMjoKIAkubG9uZwkuTEFTRkRFMi0uTGZyYW1lMQkvKiBGREUgQ0lFIG9mZnNldCAqLwotI2lmIGRlZmluZWQgX19QSUNfXyAmJiBkZWZpbmVkIEhBVkVfQVNfWDg2X1BDUkVMCi0JLmxvbmcJLkxGQjItLgkvKiBGREUgaW5pdGlhbCBsb2NhdGlvbiAqLwotI2VsaWYgZGVmaW5lZCBfX1BJQ19fCi0JLmxvbmcJLkxGQjJAcmVsCi0jZWxzZQotCS5sb25nCS5MRkIyCi0jZW5kaWYKLQkubG9uZwkuTEZFMi0uTEZCMgkvKiBGREUgYWRkcmVzcyByYW5nZSAqLworCS5sb25nCUZERV9FTkNPREUoLkxGQjIpCS8qIEZERSBpbml0aWFsIGxvY2F0aW9uICovCisJLmxvbmcJLkxGRTItLkxGQjIJCS8qIEZERSBhZGRyZXNzIHJhbmdlICovCiAjaWZkZWYgX19QSUNfXwogCS5ieXRlCTB4MAkvKiAudWxlYjEyOCAweDA7IEF1Z21lbnRhdGlvbiBzaXplICovCiAjZW5kaWYKQEAgLTQxNywxNCArNDM3LDggQEAKIAkubG9uZwkuTEVGREUzLS5MQVNGREUzCS8qIEZERSBMZW5ndGggKi8KIC5MQVNGREUzOgogCS5sb25nCS5MQVNGREUzLS5MZnJhbWUxCS8qIEZERSBDSUUgb2Zmc2V0ICovCi0jaWYgZGVmaW5lZCBfX1BJQ19fICYmIGRlZmluZWQgSEFWRV9BU19YODZfUENSRUwKLQkubG9uZwkuTEZCMy0uCS8qIEZERSBpbml0aWFsIGxvY2F0aW9uICovCi0jZWxpZiBkZWZpbmVkIF9fUElDX18KLQkubG9uZwkuTEZCM0ByZWwKLSNlbHNlCi0JLmxvbmcJLkxGQjMKLSNlbmRpZgotCS5sb25nCS5MRkUzLS5MRkIzCS8qIEZERSBhZGRyZXNzIHJhbmdlICovCisJLmxvbmcJRkRFX0VOQ09ERSguTEZCMykJLyogRkRFIGluaXRpYWwgbG9jYXRpb24gKi8KKwkubG9uZwkuTEZFMy0uTEZCMwkJLyogRkRFIGFkZHJlc3MgcmFuZ2UgKi8KICNpZmRlZiBfX1BJQ19fCiAJLmJ5dGUJMHgwCS8qIC51bGViMTI4IDB4MDsgQXVnbWVudGF0aW9uIHNpemUgKi8KICNlbmRpZgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L3VuaXg2NC5TIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS9zcmMveDg2L3VuaXg2NC5TCmluZGV4IGZlM2Y0ZmQuLjdhNjYxOWEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni91bml4NjQuUworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy94ODYvdW5peDY0LlMKQEAgLTMyNCw3ICszMjQsMTEgQEAKIC5MVVc5OgogCS5zaXplCWZmaV9jbG9zdXJlX3VuaXg2NCwuLWZmaV9jbG9zdXJlX3VuaXg2NAogCisjaWZkZWYgSEFWRV9BU19YODZfNjRfVU5XSU5EX1NFQ1RJT05fVFlQRQorCS5zZWN0aW9uCS5laF9mcmFtZSwiYSIsQHVud2luZAorI2Vsc2UKIAkuc2VjdGlvbgkuZWhfZnJhbWUsImEiLEBwcm9nYml0cworI2VuZGlmCiAuTGZyYW1lMToKIAkubG9uZwkuTEVDSUUxLS5MU0NJRTEJCS8qIENJRSBMZW5ndGggKi8KIC5MU0NJRTE6CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy94ODYvd2luMzIuUyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni93aW4zMi5TCmluZGV4IGFjMWVkNmYuLjI0YjdiYmQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni93aW4zMi5TCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni93aW4zMi5TCkBAIC00NSw2ICs0NSw3IEBACiBmZmlfY2FsbF93aW4zMiBQUk9DIE5FQVIsCiAgICAgZmZpX3ByZXBfYXJncyA6IE5FQVIgUFRSIERXT1JELAogICAgIGVjaWYgICAgICAgICAgOiBORUFSIFBUUiBEV09SRCwKKyAgICBjaWZfYWJpICAgICAgIDogRFdPUkQsCiAgICAgY2lmX2J5dGVzICAgICA6IERXT1JELAogICAgIGNpZl9mbGFncyAgICAgOiBEV09SRCwKICAgICBydmFsdWUgICAgICAgIDogTkVBUiBQVFIgRFdPUkQsCkBAIC02NCw2ICs2NSwxOSBAQAogICAgICAgICA7OyBSZXR1cm4gc3RhY2sgdG8gcHJldmlvdXMgc3RhdGUgYW5kIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgICAgIGFkZCAgZXNwLCA4CiAKKwk7OyBIYW5kbGUgdGhpc2NhbGwgYW5kIGZhc3RjYWxsCisJY21wIGNpZl9hYmksIDMgOzsgRkZJX1RISVNDQUxMCisJanogZG9fdGhpc2NhbGwKKwljbXAgY2lmX2FiaSwgNCA7OyBGRklfRkFTVENBTEwKKwlqbnogZG9fc3RkY2FsbAorCW1vdiBlY3gsIERXT1JEIFBUUiBbZXNwXQorCW1vdiBlZHgsIERXT1JEIFBUUiBbZXNwKzRdCisJYWRkIGVzcCwgOAorCWptcCBkb19zdGRjYWxsCitkb190aGlzY2FsbDoKKwltb3YgZWN4LCBEV09SRCBQVFIgW2VzcF0KKwlhZGQgZXNwLCA0Citkb19zdGRjYWxsOgogICAgICAgICBjYWxsIGZuCiAKICAgICAgICAgOzsgY2RlY2w6ICAgd2UgcmVzdG9yZSBlc3AgaW4gdGhlIGVwaWxvZ3VlLCBzbyB0aGVyZSdzIG5vIG5lZWQgdG8KQEAgLTk0LDMxICsxMDgsMzcgQEAKICAgICAgICAgZGQgb2Zmc2V0IGNhX3JldGZsb2F0ICAgICAgIDs7IEZGSV9UWVBFX0ZMT0FUCiAgICAgICAgIGRkIG9mZnNldCBjYV9yZXRkb3VibGUgICAgICA7OyBGRklfVFlQRV9ET1VCTEUKICAgICAgICAgZGQgb2Zmc2V0IGNhX3JldGxvbmdkb3VibGUgIDs7IEZGSV9UWVBFX0xPTkdET1VCTEUKLSAgICAgICAgZGQgb2Zmc2V0IGNhX3JldGludDggICAgICAgIDs7IEZGSV9UWVBFX1VJTlQ4Ci0gICAgICAgIGRkIG9mZnNldCBjYV9yZXRpbnQ4ICAgICAgICA7OyBGRklfVFlQRV9TSU5UOAotICAgICAgICBkZCBvZmZzZXQgY2FfcmV0aW50MTYgICAgICAgOzsgRkZJX1RZUEVfVUlOVDE2Ci0gICAgICAgIGRkIG9mZnNldCBjYV9yZXRpbnQxNiAgICAgICA7OyBGRklfVFlQRV9TSU5UMTYKKyAgICAgICAgZGQgb2Zmc2V0IGNhX3JldHVpbnQ4ICAgICAgIDs7IEZGSV9UWVBFX1VJTlQ4CisgICAgICAgIGRkIG9mZnNldCBjYV9yZXRzaW50OCAgICAgICA7OyBGRklfVFlQRV9TSU5UOAorICAgICAgICBkZCBvZmZzZXQgY2FfcmV0dWludDE2ICAgICAgOzsgRkZJX1RZUEVfVUlOVDE2CisgICAgICAgIGRkIG9mZnNldCBjYV9yZXRzaW50MTYgICAgICA7OyBGRklfVFlQRV9TSU5UMTYKICAgICAgICAgZGQgb2Zmc2V0IGNhX3JldGludCAgICAgICAgIDs7IEZGSV9UWVBFX1VJTlQzMgogICAgICAgICBkZCBvZmZzZXQgY2FfcmV0aW50ICAgICAgICAgOzsgRkZJX1RZUEVfU0lOVDMyCiAgICAgICAgIGRkIG9mZnNldCBjYV9yZXRpbnQ2NCAgICAgICA7OyBGRklfVFlQRV9VSU5UNjQKICAgICAgICAgZGQgb2Zmc2V0IGNhX3JldGludDY0ICAgICAgIDs7IEZGSV9UWVBFX1NJTlQ2NAogICAgICAgICBkZCBvZmZzZXQgY2FfZXBpbG9ndWUgICAgICAgOzsgRkZJX1RZUEVfU1RSVUNUCiAgICAgICAgIGRkIG9mZnNldCBjYV9yZXRpbnQgICAgICAgICA7OyBGRklfVFlQRV9QT0lOVEVSCi0gICAgICAgIGRkIG9mZnNldCBjYV9yZXRpbnQ4ICAgICAgICA7OyBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfMUIKLSAgICAgICAgZGQgb2Zmc2V0IGNhX3JldGludDE2ICAgICAgIDs7IEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8yQgorICAgICAgICBkZCBvZmZzZXQgY2FfcmV0c3RydWN0MWIgICAgOzsgRkZJX1RZUEVfU01BTExfU1RSVUNUXzFCCisgICAgICAgIGRkIG9mZnNldCBjYV9yZXRzdHJ1Y3QyYiAgICA7OyBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfMkIKICAgICAgICAgZGQgb2Zmc2V0IGNhX3JldGludCAgICAgICAgIDs7IEZGSV9UWVBFX1NNQUxMX1NUUlVDVF80QgorICAgICAgICBkZCBvZmZzZXQgY2FfZXBpbG9ndWUgICAgICAgOzsgRkZJX1RZUEVfTVNfU1RSVUNUCiAKLWNhX3JldGludDg6Ci0gICAgICAgIDs7IExvYWQgJWVjeCB3aXRoIHRoZSBwb2ludGVyIHRvIHN0b3JhZ2UgZm9yIHRoZSByZXR1cm4gdmFsdWUKLSAgICAgICAgbW92ICAgZWN4LCBydmFsdWUKLSAgICAgICAgbW92ICAgW2VjeCArIDBdLCBhbAotICAgICAgICBqbXAgICBjYV9lcGlsb2d1ZQorICAgICAgICAvKiBTaWduL3plcm8gZXh0ZW5kIGFzIGFwcHJvcHJpYXRlLiAgKi8KK2NhX3JldHVpbnQ4OgorICAgICAgICBtb3Z6eCBlYXgsIGFsCisgICAgICAgIGptcCAgIGNhX3JldGludAogCi1jYV9yZXRpbnQxNjoKLSAgICAgICAgOzsgTG9hZCAlZWN4IHdpdGggdGhlIHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIHJldHVybiB2YWx1ZQotICAgICAgICBtb3YgICBlY3gsIHJ2YWx1ZQotICAgICAgICBtb3YgICBbZWN4ICsgMF0sIGF4Ci0gICAgICAgIGptcCAgIGNhX2VwaWxvZ3VlCitjYV9yZXRzaW50ODoKKyAgICAgICAgbW92c3ggZWF4LCBhbAorICAgICAgICBqbXAgICBjYV9yZXRpbnQKKworY2FfcmV0dWludDE2OgorICAgICAgICBtb3Z6eCBlYXgsIGF4CisgICAgICAgIGptcCAgIGNhX3JldGludAorCitjYV9yZXRzaW50MTY6CisgICAgICAgIG1vdnN4IGVheCwgYXgKKyAgICAgICAgam1wICAgY2FfcmV0aW50CiAKIGNhX3JldGludDoKICAgICAgICAgOzsgTG9hZCAlZWN4IHdpdGggdGhlIHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIHJldHVybiB2YWx1ZQpAQCAtMTUxLDExICsxNzEsMzEgQEAKICAgICAgICAgZnN0cCAgVEJZVEUgUFRSIFtlY3hdCiAgICAgICAgIGptcCAgIGNhX2VwaWxvZ3VlCiAKK2NhX3JldHN0cnVjdDFiOgorICAgICAgICA7OyBMb2FkICVlY3ggd2l0aCB0aGUgcG9pbnRlciB0byBzdG9yYWdlIGZvciB0aGUgcmV0dXJuIHZhbHVlCisgICAgICAgIG1vdiAgIGVjeCwgcnZhbHVlCisgICAgICAgIG1vdiAgIFtlY3ggKyAwXSwgYWwKKyAgICAgICAgam1wICAgY2FfZXBpbG9ndWUKKworY2FfcmV0c3RydWN0MmI6CisgICAgICAgIDs7IExvYWQgJWVjeCB3aXRoIHRoZSBwb2ludGVyIHRvIHN0b3JhZ2UgZm9yIHRoZSByZXR1cm4gdmFsdWUKKyAgICAgICAgbW92ICAgZWN4LCBydmFsdWUKKyAgICAgICAgbW92ICAgW2VjeCArIDBdLCBheAorICAgICAgICBqbXAgICBjYV9lcGlsb2d1ZQorCiBjYV9lcGlsb2d1ZToKICAgICAgICAgOzsgRXBpbG9ndWUgY29kZSBpcyBhdXRvZ2VuZXJhdGVkLgogICAgICAgICByZXQKIGZmaV9jYWxsX3dpbjMyIEVORFAKIAorZmZpX2Nsb3N1cmVfVEhJU0NBTEwgUFJPQyBORUFSIEZPUkNFRlJBTUUKKwlzdWIJZXNwLCA0MAorCWxlYQllZHgsIFtlYnAgLTI0XQorCW1vdglbZWJwIC0gMTJdLCBlZHgJLyogcmVzcCAqLworCWxlYQllZHgsIFtlYnAgKyAxMl0gIC8qIGFjY291bnQgZm9yIHN0dWIgcmV0dXJuIGFkZHJlc3Mgb24gc3RhY2sgKi8KKwlqbXAJc3R1YgorZmZpX2Nsb3N1cmVfVEhJU0NBTEwgRU5EUAorCiBmZmlfY2xvc3VyZV9TWVNWIFBST0MgTkVBUiBGT1JDRUZSQU1FCiAgICAgOzsgdGhlIGZmaV9jbG9zdXJlIGN0eCBpcyBwYXNzZWQgaW4gZWF4IGJ5IHRoZSB0cmFtcG9saW5lLgogCkBAIC0xNjMsNiArMjAzLDcgQEAKICAgICAgICAgbGVhICBlZHgsIFtlYnAgLSAyNF0KICAgICAgICAgbW92ICBbZWJwIC0gMTJdLCBlZHggICAgICAgICA7OyByZXNwCiAgICAgICAgIGxlYSAgZWR4LCBbZWJwICsgOF0KK3N0dWI6OgogICAgICAgICBtb3YgIFtlc3AgKyA4XSwgZWR4ICAgICAgICAgIDs7IGFyZ3MKICAgICAgICAgbGVhICBlZHgsIFtlYnAgLSAxMl0KICAgICAgICAgbW92ICBbZXNwICsgNF0sIGVkeCAgICAgICAgICA7OyAmcmVzcApAQCAtMTc5LDI2ICsyMjAsMzUgQEAKICAgICAgICAgZGQgb2Zmc2V0IGNzX3JldGZsb2F0ICAgICAgIDs7IEZGSV9UWVBFX0ZMT0FUCiAgICAgICAgIGRkIG9mZnNldCBjc19yZXRkb3VibGUgICAgICA7OyBGRklfVFlQRV9ET1VCTEUKICAgICAgICAgZGQgb2Zmc2V0IGNzX3JldGxvbmdkb3VibGUgIDs7IEZGSV9UWVBFX0xPTkdET1VCTEUKLSAgICAgICAgZGQgb2Zmc2V0IGNzX3JldGludDggICAgICAgIDs7IEZGSV9UWVBFX1VJTlQ4Ci0gICAgICAgIGRkIG9mZnNldCBjc19yZXRpbnQ4ICAgICAgICA7OyBGRklfVFlQRV9TSU5UOAotICAgICAgICBkZCBvZmZzZXQgY3NfcmV0aW50MTYgICAgICAgOzsgRkZJX1RZUEVfVUlOVDE2Ci0gICAgICAgIGRkIG9mZnNldCBjc19yZXRpbnQxNiAgICAgICA7OyBGRklfVFlQRV9TSU5UMTYKKyAgICAgICAgZGQgb2Zmc2V0IGNzX3JldHVpbnQ4ICAgICAgIDs7IEZGSV9UWVBFX1VJTlQ4CisgICAgICAgIGRkIG9mZnNldCBjc19yZXRzaW50OCAgICAgICA7OyBGRklfVFlQRV9TSU5UOAorICAgICAgICBkZCBvZmZzZXQgY3NfcmV0dWludDE2ICAgICAgOzsgRkZJX1RZUEVfVUlOVDE2CisgICAgICAgIGRkIG9mZnNldCBjc19yZXRzaW50MTYgICAgICA7OyBGRklfVFlQRV9TSU5UMTYKICAgICAgICAgZGQgb2Zmc2V0IGNzX3JldGludCAgICAgICAgIDs7IEZGSV9UWVBFX1VJTlQzMgogICAgICAgICBkZCBvZmZzZXQgY3NfcmV0aW50ICAgICAgICAgOzsgRkZJX1RZUEVfU0lOVDMyCiAgICAgICAgIGRkIG9mZnNldCBjc19yZXRpbnQ2NCAgICAgICA7OyBGRklfVFlQRV9VSU5UNjQKICAgICAgICAgZGQgb2Zmc2V0IGNzX3JldGludDY0ICAgICAgIDs7IEZGSV9UWVBFX1NJTlQ2NAogICAgICAgICBkZCBvZmZzZXQgY3NfcmV0c3RydWN0ICAgICAgOzsgRkZJX1RZUEVfU1RSVUNUCiAgICAgICAgIGRkIG9mZnNldCBjc19yZXRpbnQgICAgICAgICA7OyBGRklfVFlQRV9QT0lOVEVSCi0gICAgICAgIGRkIG9mZnNldCBjc19yZXRpbnQ4ICAgICAgICA7OyBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfMUIKLSAgICAgICAgZGQgb2Zmc2V0IGNzX3JldGludDE2ICAgICAgIDs7IEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8yQgorICAgICAgICBkZCBvZmZzZXQgY3NfcmV0c2ludDggICAgICAgOzsgRkZJX1RZUEVfU01BTExfU1RSVUNUXzFCCisgICAgICAgIGRkIG9mZnNldCBjc19yZXRzaW50MTYgICAgICA7OyBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfMkIKICAgICAgICAgZGQgb2Zmc2V0IGNzX3JldGludCAgICAgICAgIDs7IEZGSV9UWVBFX1NNQUxMX1NUUlVDVF80QgorICAgICAgICBkZCBvZmZzZXQgY3NfcmV0bXNzdHJ1Y3QgICAgOzsgRkZJX1RZUEVfTVNfU1RSVUNUCiAKLWNzX3JldGludDg6Ci0gICAgICAgIG1vdiAgIGFsLCBbZWN4XQorY3NfcmV0dWludDg6CisgICAgICAgIG1vdnp4IGVheCwgQllURSBQVFIgW2VjeF0KICAgICAgICAgam1wICAgY3NfZXBpbG9ndWUKIAotY3NfcmV0aW50MTY6Ci0gICAgICAgIG1vdiAgIGF4LCBbZWN4XQorY3NfcmV0c2ludDg6CisgICAgICAgIG1vdnN4IGVheCwgQllURSBQVFIgW2VjeF0KKyAgICAgICAgam1wICAgY3NfZXBpbG9ndWUKKworY3NfcmV0dWludDE2OgorICAgICAgICBtb3Z6eCBlYXgsIFdPUkQgUFRSIFtlY3hdCisgICAgICAgIGptcCAgIGNzX2VwaWxvZ3VlCisKK2NzX3JldHNpbnQxNjoKKyAgICAgICAgbW92c3ggZWF4LCBXT1JEIFBUUiBbZWN4XQogICAgICAgICBqbXAgICBjc19lcGlsb2d1ZQogCiBjc19yZXRpbnQ6CkBAIC0yMjcsNiArMjc3LDEyIEBACiAgICAgICAgIDs7IEVwaWxvZ3VlIGNvZGUgaXMgYXV0b2dlbmVyYXRlZC4KICAgICAgICAgcmV0CTQKIAorY3NfcmV0bXNzdHJ1Y3Q6CisgICAgICAgIDs7IENhbGxlciBleHBlY3RzIHVzIHRvIHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIHJlYWwgcmV0dXJuIHZhbHVlLgorICAgICAgICBtb3YgICBlYXgsIGVjeAorICAgICAgICA7OyBDYWxsZXIgZG9lc24ndCBleHBlY3RzIHVzIHRvIHBvcCBzdHJ1Y3QgcmV0dXJuIHZhbHVlIHBvaW50ZXIgaGlkZGVuIGFyZy4KKyAgICAgICAgam1wICAgY3NfZXBpbG9ndWUKKwogY3NfZXBpbG9ndWU6CiAgICAgICAgIDs7IEVwaWxvZ3VlIGNvZGUgaXMgYXV0b2dlbmVyYXRlZC4KICAgICAgICAgcmV0CkBAIC0yMzksNyArMjk1LDE2IEBACiAjZGVmaW5lIFJBV19DTE9TVVJFX1VTRVJfREFUQV9PRkZTRVQgKFJBV19DTE9TVVJFX0ZVTl9PRkZTRVQgKyA0KQogI2RlZmluZSBDSUZfRkxBR1NfT0ZGU0VUIDIwCiAKLWZmaV9jbG9zdXJlX3Jhd19TWVNWIFBST0MgTkVBUiBVU0VTIGVzaQorZmZpX2Nsb3N1cmVfcmF3X1RISVNDQUxMIFBST0MgTkVBUiBVU0VTIGVzaSBGT1JDRUZSQU1FCisJc3ViIGVzcCwgMzYKKwltb3YgIGVzaSwgW2VheCArIFJBV19DTE9TVVJFX0NJRl9PRkZTRVRdICAgICAgICA7OyBjbG9zdXJlLT5jaWYKKwltb3YgIGVkeCwgW2VheCArIFJBV19DTE9TVVJFX1VTRVJfREFUQV9PRkZTRVRdICA7OyBjbG9zdXJlLT51c2VyX2RhdGEKKwltb3YgW2VzcCArIDEyXSwgZWR4CisJbGVhIGVkeCwgW2VicCArIDEyXQorCWptcCBzdHVicmF3CitmZmlfY2xvc3VyZV9yYXdfVEhJU0NBTEwgRU5EUAorCitmZmlfY2xvc3VyZV9yYXdfU1lTViBQUk9DIE5FQVIgVVNFUyBlc2kgRk9SQ0VGUkFNRQogICAgIDs7IHRoZSBmZmlfY2xvc3VyZSBjdHggaXMgcGFzc2VkIGluIGVheCBieSB0aGUgdHJhbXBvbGluZS4KIAogICAgICAgICBzdWIgIGVzcCwgNDAKQEAgLTI0Nyw2ICszMTIsNyBAQAogICAgICAgICBtb3YgIGVkeCwgW2VheCArIFJBV19DTE9TVVJFX1VTRVJfREFUQV9PRkZTRVRdICA7OyBjbG9zdXJlLT51c2VyX2RhdGEKICAgICAgICAgbW92ICBbZXNwICsgMTJdLCBlZHggICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgdXNlcl9kYXRhCiAgICAgICAgIGxlYSAgZWR4LCBbZWJwICsgOF0KK3N0dWJyYXc6OgogICAgICAgICBtb3YgIFtlc3AgKyA4XSwgZWR4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyByYXdfYXJncwogICAgICAgICBsZWEgIGVkeCwgW2VicCAtIDI0XQogICAgICAgICBtb3YgIFtlc3AgKyA0XSwgZWR4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyAmcmVzCkBAIC0yNjQsMjYgKzMzMCwzNSBAQAogICAgICAgICBkZCBvZmZzZXQgY3JfcmV0ZmxvYXQgICAgICAgOzsgRkZJX1RZUEVfRkxPQVQKICAgICAgICAgZGQgb2Zmc2V0IGNyX3JldGRvdWJsZSAgICAgIDs7IEZGSV9UWVBFX0RPVUJMRQogICAgICAgICBkZCBvZmZzZXQgY3JfcmV0bG9uZ2RvdWJsZSAgOzsgRkZJX1RZUEVfTE9OR0RPVUJMRQotICAgICAgICBkZCBvZmZzZXQgY3JfcmV0aW50OCAgICAgICAgOzsgRkZJX1RZUEVfVUlOVDgKLSAgICAgICAgZGQgb2Zmc2V0IGNyX3JldGludDggICAgICAgIDs7IEZGSV9UWVBFX1NJTlQ4Ci0gICAgICAgIGRkIG9mZnNldCBjcl9yZXRpbnQxNiAgICAgICA7OyBGRklfVFlQRV9VSU5UMTYKLSAgICAgICAgZGQgb2Zmc2V0IGNyX3JldGludDE2ICAgICAgIDs7IEZGSV9UWVBFX1NJTlQxNgorICAgICAgICBkZCBvZmZzZXQgY3JfcmV0dWludDggICAgICAgOzsgRkZJX1RZUEVfVUlOVDgKKyAgICAgICAgZGQgb2Zmc2V0IGNyX3JldHNpbnQ4ICAgICAgIDs7IEZGSV9UWVBFX1NJTlQ4CisgICAgICAgIGRkIG9mZnNldCBjcl9yZXR1aW50MTYgICAgICA7OyBGRklfVFlQRV9VSU5UMTYKKyAgICAgICAgZGQgb2Zmc2V0IGNyX3JldHNpbnQxNiAgICAgIDs7IEZGSV9UWVBFX1NJTlQxNgogICAgICAgICBkZCBvZmZzZXQgY3JfcmV0aW50ICAgICAgICAgOzsgRkZJX1RZUEVfVUlOVDMyCiAgICAgICAgIGRkIG9mZnNldCBjcl9yZXRpbnQgICAgICAgICA7OyBGRklfVFlQRV9TSU5UMzIKICAgICAgICAgZGQgb2Zmc2V0IGNyX3JldGludDY0ICAgICAgIDs7IEZGSV9UWVBFX1VJTlQ2NAogICAgICAgICBkZCBvZmZzZXQgY3JfcmV0aW50NjQgICAgICAgOzsgRkZJX1RZUEVfU0lOVDY0CiAgICAgICAgIGRkIG9mZnNldCBjcl9lcGlsb2d1ZSAgICAgICA7OyBGRklfVFlQRV9TVFJVQ1QKICAgICAgICAgZGQgb2Zmc2V0IGNyX3JldGludCAgICAgICAgIDs7IEZGSV9UWVBFX1BPSU5URVIKLSAgICAgICAgZGQgb2Zmc2V0IGNyX3JldGludDggICAgICAgIDs7IEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8xQgotICAgICAgICBkZCBvZmZzZXQgY3JfcmV0aW50MTYgICAgICAgOzsgRkZJX1RZUEVfU01BTExfU1RSVUNUXzJCCisgICAgICAgIGRkIG9mZnNldCBjcl9yZXRzaW50OCAgICAgICA7OyBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfMUIKKyAgICAgICAgZGQgb2Zmc2V0IGNyX3JldHNpbnQxNiAgICAgIDs7IEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8yQgogICAgICAgICBkZCBvZmZzZXQgY3JfcmV0aW50ICAgICAgICAgOzsgRkZJX1RZUEVfU01BTExfU1RSVUNUXzRCCisgICAgICAgIGRkIG9mZnNldCBjcl9lcGlsb2d1ZSAgICAgICA7OyBGRklfVFlQRV9NU19TVFJVQ1QKIAotY3JfcmV0aW50ODoKLSAgICAgICAgbW92ICAgYWwsIFtlY3hdCitjcl9yZXR1aW50ODoKKyAgICAgICAgbW92enggZWF4LCBCWVRFIFBUUiBbZWN4XQogICAgICAgICBqbXAgICBjcl9lcGlsb2d1ZQogCi1jcl9yZXRpbnQxNjoKLSAgICAgICAgbW92ICAgYXgsIFtlY3hdCitjcl9yZXRzaW50ODoKKyAgICAgICAgbW92c3ggZWF4LCBCWVRFIFBUUiBbZWN4XQorICAgICAgICBqbXAgICBjcl9lcGlsb2d1ZQorCitjcl9yZXR1aW50MTY6CisgICAgICAgIG1vdnp4IGVheCwgV09SRCBQVFIgW2VjeF0KKyAgICAgICAgam1wICAgY3JfZXBpbG9ndWUKKworY3JfcmV0c2ludDE2OgorICAgICAgICBtb3ZzeCBlYXgsIFdPUkQgUFRSIFtlY3hdCiAgICAgICAgIGptcCAgIGNyX2VwaWxvZ3VlCiAKIGNyX3JldGludDoKQEAgLTMzNywyNiArNDEyLDM0IEBACiAgICAgICAgIGRkIG9mZnNldCBjZF9yZXRmbG9hdCAgICAgICA7OyBGRklfVFlQRV9GTE9BVAogICAgICAgICBkZCBvZmZzZXQgY2RfcmV0ZG91YmxlICAgICAgOzsgRkZJX1RZUEVfRE9VQkxFCiAgICAgICAgIGRkIG9mZnNldCBjZF9yZXRsb25nZG91YmxlICA7OyBGRklfVFlQRV9MT05HRE9VQkxFCi0gICAgICAgIGRkIG9mZnNldCBjZF9yZXRpbnQ4ICAgICAgICA7OyBGRklfVFlQRV9VSU5UOAotICAgICAgICBkZCBvZmZzZXQgY2RfcmV0aW50OCAgICAgICAgOzsgRkZJX1RZUEVfU0lOVDgKLSAgICAgICAgZGQgb2Zmc2V0IGNkX3JldGludDE2ICAgICAgIDs7IEZGSV9UWVBFX1VJTlQxNgotICAgICAgICBkZCBvZmZzZXQgY2RfcmV0aW50MTYgICAgICAgOzsgRkZJX1RZUEVfU0lOVDE2CisgICAgICAgIGRkIG9mZnNldCBjZF9yZXR1aW50OCAgICAgICA7OyBGRklfVFlQRV9VSU5UOAorICAgICAgICBkZCBvZmZzZXQgY2RfcmV0c2ludDggICAgICAgOzsgRkZJX1RZUEVfU0lOVDgKKyAgICAgICAgZGQgb2Zmc2V0IGNkX3JldHVpbnQxNiAgICAgIDs7IEZGSV9UWVBFX1VJTlQxNgorICAgICAgICBkZCBvZmZzZXQgY2RfcmV0c2ludDE2ICAgICAgOzsgRkZJX1RZUEVfU0lOVDE2CiAgICAgICAgIGRkIG9mZnNldCBjZF9yZXRpbnQgICAgICAgICA7OyBGRklfVFlQRV9VSU5UMzIKICAgICAgICAgZGQgb2Zmc2V0IGNkX3JldGludCAgICAgICAgIDs7IEZGSV9UWVBFX1NJTlQzMgogICAgICAgICBkZCBvZmZzZXQgY2RfcmV0aW50NjQgICAgICAgOzsgRkZJX1RZUEVfVUlOVDY0CiAgICAgICAgIGRkIG9mZnNldCBjZF9yZXRpbnQ2NCAgICAgICA7OyBGRklfVFlQRV9TSU5UNjQKICAgICAgICAgZGQgb2Zmc2V0IGNkX2VwaWxvZ3VlICAgICAgIDs7IEZGSV9UWVBFX1NUUlVDVAogICAgICAgICBkZCBvZmZzZXQgY2RfcmV0aW50ICAgICAgICAgOzsgRkZJX1RZUEVfUE9JTlRFUgotICAgICAgICBkZCBvZmZzZXQgY2RfcmV0aW50OCAgICAgICAgOzsgRkZJX1RZUEVfU01BTExfU1RSVUNUXzFCCi0gICAgICAgIGRkIG9mZnNldCBjZF9yZXRpbnQxNiAgICAgICA7OyBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfMkIKKyAgICAgICAgZGQgb2Zmc2V0IGNkX3JldHNpbnQ4ICAgICAgIDs7IEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8xQgorICAgICAgICBkZCBvZmZzZXQgY2RfcmV0c2ludDE2ICAgICAgOzsgRkZJX1RZUEVfU01BTExfU1RSVUNUXzJCCiAgICAgICAgIGRkIG9mZnNldCBjZF9yZXRpbnQgICAgICAgICA7OyBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfNEIKIAotY2RfcmV0aW50ODoKLSAgICAgICAgbW92ICAgYWwsIFtlY3hdCitjZF9yZXR1aW50ODoKKyAgICAgICAgbW92enggZWF4LCBCWVRFIFBUUiBbZWN4XQogICAgICAgICBqbXAgICBjZF9lcGlsb2d1ZQogCi1jZF9yZXRpbnQxNjoKLSAgICAgICAgbW92ICAgYXgsIFtlY3hdCitjZF9yZXRzaW50ODoKKyAgICAgICAgbW92c3ggZWF4LCBCWVRFIFBUUiBbZWN4XQorICAgICAgICBqbXAgICBjZF9lcGlsb2d1ZQorCitjZF9yZXR1aW50MTY6CisgICAgICAgIG1vdnp4IGVheCwgV09SRCBQVFIgW2VjeF0KKyAgICAgICAgam1wICAgY2RfZXBpbG9ndWUKKworY2RfcmV0c2ludDE2OgorICAgICAgICBtb3ZzeCBlYXgsIFdPUkQgUFRSIFtlY3hdCiAgICAgICAgIGptcCAgIGNkX2VwaWxvZ3VlCiAKIGNkX3JldGludDoKQEAgLTM5NSw3ICs0NzgsOSBAQAogICAgICAgICAjIFRoaXMgYXNzdW1lcyB3ZSBhcmUgdXNpbmcgZ2FzLgogICAgICAgICAuYmFsaWduIDE2CiAJLmdsb2JsCV9mZmlfY2FsbF93aW4zMgorI2lmbmRlZiBfX09TMl9fCiAJLmRlZglfZmZpX2NhbGxfd2luMzI7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZgorI2VuZGlmCiBfZmZpX2NhbGxfd2luMzI6CiAuTEZCMToKICAgICAgICAgcHVzaGwgJWVicApAQCAtNDAzLDcgKzQ4OCw3IEBACiAgICAgICAgIG1vdmwgICVlc3AsJWVicAogLkxDRkkxOgogICAgICAgICAjIE1ha2Ugcm9vbSBmb3IgYWxsIG9mIHRoZSBuZXcgYXJncy4KLSAgICAgICAgbW92bCAgMTYoJWVicCksJWVjeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIG1vdmwgIDIwKCVlYnApLCVlY3ggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICBzdWJsICAlZWN4LCVlc3AKICAKICAgICAgICAgbW92bCAgJWVzcCwlZWF4CkBAIC00MTUsMTkgKzUwMCwzNCBAQAogIAogICAgICAgICAjIFJldHVybiBzdGFjayB0byBwcmV2aW91cyBzdGF0ZSBhbmQgY2FsbCB0aGUgZnVuY3Rpb24KICAgICAgICAgYWRkbCAgJDgsJWVzcAotIAorCisJIyBIYW5kbGUgZmFzdGNhbGwgYW5kIHRoaXNjYWxsCisJY21wbCAkMywgMTYoJWVicCkgICMgRkZJX1RISVNDQUxMCisJanogLmRvX3RoaXNjYWxsCisJY21wbCAkNCwgMTYoJWVicCkgIyBGRklfRkFTVENBTEwKKwlqbnogLmRvX2ZuY2FsbAorCW1vdmwgKCVlc3ApLCAlZWN4CisJbW92bCA0KCVlc3ApLCAlZWR4CisJYWRkbCAkOCwgJWVzcAorCWptcCAuZG9fZm5jYWxsCisuZG9fdGhpc2NhbGw6CisJbW92bCAoJWVzcCksICVlY3gKKwlhZGRsICQ0LCAlZXNwCisKKy5kb19mbmNhbGw6CisJIAogICAgICAgICAjIEZJWE1FOiBBbGlnbiB0aGUgc3RhY2sgdG8gYSAxMjgtYml0IGJvdW5kYXJ5IHRvIGF2b2lkCiAgICAgICAgICMgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGhpdHMuCiAKLSAgICAgICAgY2FsbCAgKjI4KCVlYnApCisgICAgICAgIGNhbGwgICozMiglZWJwKQogIAogICAgICAgICAjIHN0ZGNhbGwgZnVuY3Rpb25zIHBvcCBhcmd1bWVudHMgb2ZmIHRoZSBzdGFjayB0aGVtc2VsdmVzCiAKICAgICAgICAgIyBMb2FkICVlY3ggd2l0aCB0aGUgcmV0dXJuIHR5cGUgY29kZQotICAgICAgICBtb3ZsICAyMCglZWJwKSwlZWN4CisgICAgICAgIG1vdmwgIDI0KCVlYnApLCVlY3gKICAKICAgICAgICAgIyBJZiB0aGUgcmV0dXJuIHZhbHVlIHBvaW50ZXIgaXMgTlVMTCwgYXNzdW1lIG5vIHJldHVybiB2YWx1ZS4KLSAgICAgICAgY21wbCAgJDAsMjQoJWVicCkKKyAgICAgICAgY21wbCAgJDAsMjgoJWVicCkKICAgICAgICAgam5lICAgMGYKICAKICAgICAgICAgIyBFdmVuIGlmIHRoZXJlIGlzIG5vIHNwYWNlIGZvciB0aGUgcmV0dXJuIHZhbHVlLCB3ZSBhcmUKQEAgLTQ2MCw2ICs1NjAsNyBAQAogCS5sb25nCS5McmV0c3RydWN0MWIJCS8qIEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8xQiAqLwogCS5sb25nCS5McmV0c3RydWN0MmIJCS8qIEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8yQiAqLwogCS5sb25nCS5McmV0c3RydWN0NGIJCS8qIEZGSV9UWVBFX1NNQUxMX1NUUlVDVF80QiAqLworCS5sb25nCS5McmV0c3RydWN0CQkvKiBGRklfVFlQRV9NU19TVFJVQ1QgKi8KIDE6CiAJYWRkCSVlY3gsICVlY3gKIAlhZGQJJWVjeCwgJWVjeApAQCAtNDg2LDUwICs1ODcsNTAgQEAKIAogLkxyZXRpbnQ6CiAgICAgICAgICMgTG9hZCAlZWN4IHdpdGggdGhlIHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIHJldHVybiB2YWx1ZQotICAgICAgICBtb3ZsICAyNCglZWJwKSwlZWN4CisgICAgICAgIG1vdmwgIDI4KCVlYnApLCVlY3gKICAgICAgICAgbW92bCAgJWVheCwwKCVlY3gpCiAgICAgICAgIGptcCAgIC5MZXBpbG9ndWUKICAKIC5McmV0ZmxvYXQ6CiAgICAgICAgICAjIExvYWQgJWVjeCB3aXRoIHRoZSBwb2ludGVyIHRvIHN0b3JhZ2UgZm9yIHRoZSByZXR1cm4gdmFsdWUKLSAgICAgICAgbW92bCAgMjQoJWVicCksJWVjeAorICAgICAgICBtb3ZsICAyOCglZWJwKSwlZWN4CiAgICAgICAgIGZzdHBzICglZWN4KQogICAgICAgICBqbXAgICAuTGVwaWxvZ3VlCiAgCiAuTHJldGRvdWJsZToKICAgICAgICAgIyBMb2FkICVlY3ggd2l0aCB0aGUgcG9pbnRlciB0byBzdG9yYWdlIGZvciB0aGUgcmV0dXJuIHZhbHVlCi0gICAgICAgIG1vdmwgIDI0KCVlYnApLCVlY3gKKyAgICAgICAgbW92bCAgMjgoJWVicCksJWVjeAogICAgICAgICBmc3RwbCAoJWVjeCkKICAgICAgICAgam1wICAgLkxlcGlsb2d1ZQogIAogLkxyZXRsb25nZG91YmxlOgogICAgICAgICAjIExvYWQgJWVjeCB3aXRoIHRoZSBwb2ludGVyIHRvIHN0b3JhZ2UgZm9yIHRoZSByZXR1cm4gdmFsdWUKLSAgICAgICAgbW92bCAgMjQoJWVicCksJWVjeAorICAgICAgICBtb3ZsICAyOCglZWJwKSwlZWN4CiAgICAgICAgIGZzdHB0ICglZWN4KQogICAgICAgICBqbXAgICAuTGVwaWxvZ3VlCiAgCiAuTHJldGludDY0OgogICAgICAgICAjIExvYWQgJWVjeCB3aXRoIHRoZSBwb2ludGVyIHRvIHN0b3JhZ2UgZm9yIHRoZSByZXR1cm4gdmFsdWUKLSAgICAgICAgbW92bCAgMjQoJWVicCksJWVjeAorICAgICAgICBtb3ZsICAyOCglZWJwKSwlZWN4CiAgICAgICAgIG1vdmwgICVlYXgsMCglZWN4KQogICAgICAgICBtb3ZsICAlZWR4LDQoJWVjeCkKIAlqbXAgICAuTGVwaWxvZ3VlCiAKIC5McmV0c3RydWN0MWI6CiAgICAgICAgICMgTG9hZCAlZWN4IHdpdGggdGhlIHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIHJldHVybiB2YWx1ZQotICAgICAgICBtb3ZsICAyNCglZWJwKSwlZWN4CisgICAgICAgIG1vdmwgIDI4KCVlYnApLCVlY3gKICAgICAgICAgbW92YiAgJWFsLDAoJWVjeCkKICAgICAgICAgam1wICAgLkxlcGlsb2d1ZQogIAogLkxyZXRzdHJ1Y3QyYjoKICAgICAgICAgIyBMb2FkICVlY3ggd2l0aCB0aGUgcG9pbnRlciB0byBzdG9yYWdlIGZvciB0aGUgcmV0dXJuIHZhbHVlCi0gICAgICAgIG1vdmwgIDI0KCVlYnApLCVlY3gKKyAgICAgICAgbW92bCAgMjgoJWVicCksJWVjeAogICAgICAgICBtb3Z3ICAlYXgsMCglZWN4KQogICAgICAgICBqbXAgICAuTGVwaWxvZ3VlCiAKIC5McmV0c3RydWN0NGI6CiAgICAgICAgICMgTG9hZCAlZWN4IHdpdGggdGhlIHBvaW50ZXIgdG8gc3RvcmFnZSBmb3IgdGhlIHJldHVybiB2YWx1ZQotICAgICAgICBtb3ZsICAyNCglZWJwKSwlZWN4CisgICAgICAgIG1vdmwgIDI4KCVlYnApLCVlY3gKICAgICAgICAgbW92bCAgJWVheCwwKCVlY3gpCiAgICAgICAgIGptcCAgIC5MZXBpbG9ndWUKIApAQCAtNTQyLDEyICs2NDMsMjcgQEAKICAgICAgICAgcG9wbCAlZWJwCiAgICAgICAgIHJldAogLmZmaV9jYWxsX3dpbjMyX2VuZDoKKyAgICAgICAgLmJhbGlnbiAxNgorCS5nbG9ibAlfZmZpX2Nsb3N1cmVfVEhJU0NBTEwKKyNpZm5kZWYgX19PUzJfXworCS5kZWYJX2ZmaV9jbG9zdXJlX1RISVNDQUxMOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYKKyNlbmRpZgorX2ZmaV9jbG9zdXJlX1RISVNDQUxMOgorCXB1c2hsCSVlYnAKKwltb3ZsCSVlc3AsICVlYnAKKwlzdWJsCSQ0MCwgJWVzcAorCWxlYWwJLTI0KCVlYnApLCAlZWR4CisJbW92bAklZWR4LCAtMTIoJWVicCkJLyogcmVzcCAqLworCWxlYWwJMTIoJWVicCksICVlZHggIC8qIGFjY291bnQgZm9yIHN0dWIgcmV0dXJuIGFkZHJlc3Mgb24gc3RhY2sgKi8KKwlqbXAJLnN0dWIKIC5MRkUxOgogCiAgICAgICAgICMgVGhpcyBhc3N1bWVzIHdlIGFyZSB1c2luZyBnYXMuCiAgICAgICAgIC5iYWxpZ24gMTYKIAkuZ2xvYmwJX2ZmaV9jbG9zdXJlX1NZU1YKKyNpZm5kZWYgX19PUzJfXwogCS5kZWYJX2ZmaV9jbG9zdXJlX1NZU1Y7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZgorI2VuZGlmCiBfZmZpX2Nsb3N1cmVfU1lTVjoKIC5MRkIzOgogCXB1c2hsCSVlYnAKQEAgLTU1OCw2ICs2NzQsNyBAQAogCWxlYWwJLTI0KCVlYnApLCAlZWR4CiAJbW92bAklZWR4LCAtMTIoJWVicCkJLyogcmVzcCAqLwogCWxlYWwJOCglZWJwKSwgJWVkeAorLnN0dWI6CiAJbW92bAklZWR4LCA0KCVlc3ApCS8qIGFyZ3MgPSBfX2J1aWx0aW5fZHdhcmZfY2ZhICgpICovCiAJbGVhbAktMTIoJWVicCksICVlZHgKIAltb3ZsCSVlZHgsICglZXNwKQkvKiAmcmVzcCAqLwpAQCAtNTg2LDYgKzcwMyw3IEBACiAJLmxvbmcJLkxjbHNfcmV0c3RydWN0MQkvKiBGRklfVFlQRV9TTUFMTF9TVFJVQ1RfMUIgKi8KIAkubG9uZwkuTGNsc19yZXRzdHJ1Y3QyCS8qIEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8yQiAqLwogCS5sb25nCS5MY2xzX3JldHN0cnVjdDQJLyogRkZJX1RZUEVfU01BTExfU1RSVUNUXzRCICovCisJLmxvbmcJLkxjbHNfcmV0bXNzdHJ1Y3QJLyogRkZJX1RZUEVfTVNfU1RSVUNUICovCiAKIDE6CiAJYWRkCSVlYXgsICVlYXgKQEAgLTY1MCw2ICs3NjgsMTIgQEAKIAlwb3BsCSVlYnAKIAlyZXQJJDB4NAogCisuTGNsc19yZXRtc3N0cnVjdDoKKwkjIENhbGxlciBleHBlY3RzIHVzIHRvIHJldHVybiBhIHBvaW50ZXIgdG8gdGhlIHJlYWwgcmV0dXJuIHZhbHVlLgorCW1vdgklZWN4LCAlZWF4CisJIyBDYWxsZXIgZG9lc24ndCBleHBlY3RzIHVzIHRvIHBvcCBzdHJ1Y3QgcmV0dXJuIHZhbHVlIHBvaW50ZXIgaGlkZGVuIGFyZy4KKwlqbXAJLkxjbHNfZXBpbG9ndWUKKwogLkxjbHNfbm9yZXR2YWw6CiAuTGNsc19lcGlsb2d1ZToKIAltb3ZsCSVlYnAsICVlc3AKQEAgLTY2NCwxMSArNzg4LDI3IEBACiAjZGVmaW5lIFJBV19DTE9TVVJFX0ZVTl9PRkZTRVQgKFJBV19DTE9TVVJFX0NJRl9PRkZTRVQgKyA0KQogI2RlZmluZSBSQVdfQ0xPU1VSRV9VU0VSX0RBVEFfT0ZGU0VUIChSQVdfQ0xPU1VSRV9GVU5fT0ZGU0VUICsgNCkKICNkZWZpbmUgQ0lGX0ZMQUdTX09GRlNFVCAyMAotCisgICAgICAgIC5iYWxpZ24gMTYKKwkuZ2xvYmwJX2ZmaV9jbG9zdXJlX3Jhd19USElTQ0FMTAorI2lmbmRlZiBfX09TMl9fCisJLmRlZglfZmZpX2Nsb3N1cmVfcmF3X1RISVNDQUxMOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYKKyNlbmRpZgorX2ZmaV9jbG9zdXJlX3Jhd19USElTQ0FMTDoKKwlwdXNobAklZWJwCisJbW92bAklZXNwLCAlZWJwCisJcHVzaGwJJWVzaQorCXN1YmwJJDM2LCAlZXNwCisJbW92bAlSQVdfQ0xPU1VSRV9DSUZfT0ZGU0VUKCVlYXgpLCAlZXNpCSAvKiBjbG9zdXJlLT5jaWYgKi8KKwltb3ZsCVJBV19DTE9TVVJFX1VTRVJfREFUQV9PRkZTRVQoJWVheCksICVlZHggLyogY2xvc3VyZS0+dXNlcl9kYXRhICovCisJbW92bAklZWR4LCAxMiglZXNwKQkvKiB1c2VyX2RhdGEgKi8KKwlsZWFsCTEyKCVlYnApLCAlZWR4CS8qIF9fYnVpbHRpbl9kd2FyZl9jZmEgKCkgKi8KKwlqbXAJLnN0dWJyYXcKICAgICAgICAgIyBUaGlzIGFzc3VtZXMgd2UgYXJlIHVzaW5nIGdhcy4KICAgICAgICAgLmJhbGlnbiAxNgogCS5nbG9ibAlfZmZpX2Nsb3N1cmVfcmF3X1NZU1YKKyNpZm5kZWYgX19PUzJfXwogCS5kZWYJX2ZmaV9jbG9zdXJlX3Jhd19TWVNWOwkuc2NsCTI7CS50eXBlCTMyOwkuZW5kZWYKKyNlbmRpZgogX2ZmaV9jbG9zdXJlX3Jhd19TWVNWOgogLkxGQjQ6CiAJcHVzaGwJJWVicApAQCAtNjgyLDYgKzgyMiw3IEBACiAJbW92bAlSQVdfQ0xPU1VSRV9VU0VSX0RBVEFfT0ZGU0VUKCVlYXgpLCAlZWR4IC8qIGNsb3N1cmUtPnVzZXJfZGF0YSAqLwogCW1vdmwJJWVkeCwgMTIoJWVzcCkJLyogdXNlcl9kYXRhICovCiAJbGVhbAk4KCVlYnApLCAlZWR4CS8qIF9fYnVpbHRpbl9kd2FyZl9jZmEgKCkgKi8KKy5zdHVicmF3OgogCW1vdmwJJWVkeCwgOCglZXNwKQkvKiByYXdfYXJncyAqLwogCWxlYWwJLTI0KCVlYnApLCAlZWR4CiAJbW92bAklZWR4LCA0KCVlc3ApCS8qICZyZXMgKi8KQEAgLTcxMCw2ICs4NTEsNyBAQAogCS5sb25nCS5McmNsc19yZXRzdHJ1Y3QxCS8qIEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8xQiAqLwogCS5sb25nCS5McmNsc19yZXRzdHJ1Y3QyCS8qIEZGSV9UWVBFX1NNQUxMX1NUUlVDVF8yQiAqLwogCS5sb25nCS5McmNsc19yZXRzdHJ1Y3Q0CS8qIEZGSV9UWVBFX1NNQUxMX1NUUlVDVF80QiAqLworCS5sb25nCS5McmNsc19yZXRzdHJ1Y3QJLyogRkZJX1RZUEVfTVNfU1RSVUNUICovCiAxOgogCWFkZAklZWF4LCAlZWF4CiAJYWRkCSVlYXgsICVlYXgKQEAgLTc4NCw3ICs5MjYsOSBAQAogICAgICAgICAjIFRoaXMgYXNzdW1lcyB3ZSBhcmUgdXNpbmcgZ2FzLgogCS5iYWxpZ24JMTYKIAkuZ2xvYmwJX2ZmaV9jbG9zdXJlX1NURENBTEwKKyNpZm5kZWYgX19PUzJfXwogCS5kZWYJX2ZmaV9jbG9zdXJlX1NURENBTEw7CS5zY2wJMjsJLnR5cGUJMzI7CS5lbmRlZgorI2VuZGlmCiBfZmZpX2Nsb3N1cmVfU1REQ0FMTDoKIC5MRkI1OgogCXB1c2hsCSVlYnAKQEAgLTg5MCw3ICsxMDM0LDkgQEAKIC5mZmlfY2xvc3VyZV9TVERDQUxMX2VuZDoKIC5MRkU1OgogCisjaWZuZGVmIF9fT1MyX18KIAkuc2VjdGlvbgkuZWhfZnJhbWUsInciCisjZW5kaWYKIC5MZnJhbWUxOgogLkxTQ0lFMToKIAkubG9uZwkuTEVDSUUxLS5MQVNDSUUxICAvKiBMZW5ndGggb2YgQ29tbW9uIEluZm9ybWF0aW9uIEVudHJ5ICovCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3NyYy94ODYvd2luNjQuUyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni93aW42NC5TCmluZGV4IDZlOTE4MTguLmZjZGIyNzAgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni93aW42NC5TCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvc3JjL3g4Ni93aW42NC5TCkBAIC0yMzIsMTAgKzIzMiwxOCBAQAogZmZpX2NhbGxfd2luNjQgRU5EUAogX1RFWFQJRU5EUwogRU5ECi0jZWxzZSAgICAgICAgCisKKyNlbHNlCisKKyNpZmRlZiBTWU1CT0xfVU5ERVJTQ09SRQorI2RlZmluZSBTWU1CT0xfTkFNRShuYW1lKSBfIyNuYW1lCisjZWxzZQorI2RlZmluZSBTWU1CT0xfTkFNRShuYW1lKSBuYW1lCisjZW5kaWYKKwogLnRleHQKIAotLmV4dGVybiBfZmZpX2Nsb3N1cmVfd2luNjRfaW5uZXIKKy5leHRlcm4gU1lNQk9MX05BTUUoZmZpX2Nsb3N1cmVfd2luNjRfaW5uZXIpCiAKICMgZmZpX2Nsb3N1cmVfd2luNjQgd2lsbCBiZSBjYWxsZWQgd2l0aCB0aGVzZSByZWdpc3RlcnMgc2V0OgogIyAgICByYXggcG9pbnRzIHRvICdjbG9zdXJlJwpAQCAtMjQ2LDggKzI1NCw4IEBACiAjIGNhbGwgZmZpX2Nsb3N1cmVfd2luNjRfaW5uZXIgZm9yIHRoZSBhY3R1YWwgd29yaywgdGhlbiByZXR1cm4gdGhlIHJlc3VsdC4KICMgCiAJLmJhbGlnbiAxNgotICAgICAgICAuZ2xvYmwgX2ZmaV9jbG9zdXJlX3dpbjY0CQotX2ZmaV9jbG9zdXJlX3dpbjY0OiAgICAgCisgICAgICAgIC5nbG9ibCBTWU1CT0xfTkFNRShmZmlfY2xvc3VyZV93aW42NCkKK1NZTUJPTF9OQU1FKGZmaV9jbG9zdXJlX3dpbjY0KToKIAkjIGNvcHkgcmVnaXN0ZXIgYXJndW1lbnRzIG9udG8gc3RhY2sKIAl0ZXN0CSQxLCVyMTEKIAlqbmUJLkxmaXJzdF9pc19mbG9hdAkKQEAgLTI4Nyw3ICsyOTUsNyBAQAogCW1vdgklcmF4LCAlcmN4CSMgY29udGV4dCBpcyBmaXJzdCBwYXJhbWV0ZXIKIAltb3YJJXJzcCwgJXJkeAkjIHN0YWNrIGlzIHNlY29uZCBwYXJhbWV0ZXIKIAlhZGQJJDQ4LCAlcmR4CSMgcG9pbnQgdG8gc3RhcnQgb2YgYXJndW1lbnRzCi0JbW92CSRfZmZpX2Nsb3N1cmVfd2luNjRfaW5uZXIsICVyYXgKKwltb3YJJFNZTUJPTF9OQU1FKGZmaV9jbG9zdXJlX3dpbjY0X2lubmVyKSwgJXJheAogCWNhbGxxCSolcmF4CQkjIGNhbGwgdGhlIHJlYWwgY2xvc3VyZSBmdW5jdGlvbgogCWFkZAkkNDAsICVyc3AKIAltb3ZxCSVyYXgsICV4bW0wCSMgSWYgdGhlIGNsb3N1cmUgcmV0dXJuZWQgYSBmbG9hdCwKQEAgLTI5Niw4ICszMDQsOCBAQAogLmZmaV9jbG9zdXJlX3dpbjY0X2VuZDoKIAogCS5iYWxpZ24gMTYKLSAgICAgICAgLmdsb2JsCV9mZmlfY2FsbF93aW42NAotX2ZmaV9jYWxsX3dpbjY0OiAgICAgICAgCisgICAgICAgIC5nbG9ibAlTWU1CT0xfTkFNRShmZmlfY2FsbF93aW42NCkKK1NZTUJPTF9OQU1FKGZmaV9jYWxsX3dpbjY0KToKICAgICAgICAgIyBjb3B5IHJlZ2lzdGVycyBvbnRvIHN0YWNrCiAJbW92CSVyOSwzMiglcnNwKQogCW1vdgklcjgsMjQoJXJzcCkKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL01ha2VmaWxlLmFtIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvTWFrZWZpbGUuYW0KaW5kZXggZWFlM2Q3NC4uMTQ2ZmRmOSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvTWFrZWZpbGUuYW0KKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvTWFrZWZpbGUuYW0KQEAgLTE1LDY2ICsxNSw3MSBAQAogCiBDTEVBTkZJTEVTID0gKi5leGUgY29yZSogKi5sb2cgKi5zdW0KIAotRVhUUkFfRElTVCA9IGxpYmZmaS5zcGVjaWFsL3NwZWNpYWwuZXhwCVwKLWxpYmZmaS5zcGVjaWFsL3Vud2luZHRlc3RfZmZpX2NhbGwuY2MgbGliZmZpLnNwZWNpYWwvdW53aW5kdGVzdC5jYyBcCi1saWJmZmkuc3BlY2lhbC9mZml0ZXN0Y3h4LmggY29uZmlnL2RlZmF1bHQuZXhwIGxpYi90YXJnZXQtbGlicGF0aC5leHAgXAotbGliL2xpYmZmaS1kZy5leHAgbGliL3dyYXBwZXIuZXhwIGxpYmZmaS5jYWxsL2Zsb2F0LmMgXAotbGliZmZpLmNhbGwvY2xzX211bHRpX3NjaGFyLmMgbGliZmZpLmNhbGwvZmxvYXQzLmMgXAotbGliZmZpLmNhbGwvY2xzXzNfMWJ5dGUuYyBsaWJmZmkuY2FsbC9zdHJldF9sYXJnZTIuYyBcCi1saWJmZmkuY2FsbC9jbHNfNV8xX2J5dGUuYyBsaWJmZmkuY2FsbC9zdHJldF9tZWRpdW0uYyBcCi1saWJmZmkuY2FsbC9wcm9tb3Rpb24uYyBsaWJmZmkuY2FsbC9jbHNfZGJsc19zdHJ1Y3QuYyBcCi1saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0LmMgbGliZmZpLmNhbGwvY2xvc3VyZV9mbjEuYyBcCi1saWJmZmkuY2FsbC9jbHNfNF8xYnl0ZS5jIGxpYmZmaS5jYWxsL2Nsc19mbG9hdC5jIFwKLWxpYmZmaS5jYWxsL2Nsc18yYnl0ZS5jIGxpYmZmaS5jYWxsL2Nsb3N1cmVfZm40LmMgXAotbGliZmZpLmNhbGwvcmV0dXJuX2ZsMi5jIGxpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q3LmMgXAotbGliZmZpLmNhbGwvY2xzX3VpbnQuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDY0LmMgXAotbGliZmZpLmNhbGwvZmxvYXQxLmMgbGliZmZpLmNhbGwvY2xzXzE5Ynl0ZS5jIFwKLWxpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QxLmMgbGliZmZpLmNhbGwvY2xzXzRieXRlLmMgXAotbGliZmZpLmNhbGwvcmV0dXJuX2ZsMS5jIGxpYmZmaS5jYWxsL2Nsc19hbGlnbl9wb2ludGVyLmMgXAotbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDQuYyBsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0My5jIFwKLWxpYmZmaS5jYWxsL3N0cnVjdDcuYyBsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0OS5jIFwKLWxpYmZmaS5jYWxsL2Nsc19zc2hvcnQuYyBsaWJmZmkuY2FsbC9jbHNfdWxvbmdsb25nLmMgXAotbGliZmZpLmNhbGwvY2xzX3BvaW50ZXJfc3RhY2suYyBsaWJmZmkuY2FsbC9jbHNfbXVsdGlfdWNoYXIuYyBcCi1saWJmZmkuY2FsbC90ZXN0Y2xvc3VyZS5jIGxpYmZmaS5jYWxsL2Nsc18zYnl0ZTEuYyBcCi1saWJmZmkuY2FsbC9zdHJ1Y3Q2LmMgbGliZmZpLmNhbGwvcmV0dXJuX3VjLmMgbGliZmZpLmNhbGwvcmV0dXJuX2xsMS5jIFwKLWxpYmZmaS5jYWxsL2Nsc191c2hvcnQuYyBsaWJmZmkuY2FsbC9zdHJldF9tZWRpdW0yLmMgXAotbGliZmZpLmNhbGwvY2xzX211bHRpX3VzaG9ydGNoYXIuYyBsaWJmZmkuY2FsbC9yZXR1cm5fZGJsMi5jIFwKLWxpYmZmaS5jYWxsL2Nsb3N1cmVfbG9jX2ZuMC5jIGxpYmZmaS5jYWxsL3JldHVybl9zYy5jIFwKLWxpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q4LmMgbGliZmZpLmNhbGwvY2xzXzdfMV9ieXRlLmMJXAotbGliZmZpLmNhbGwvcmV0dXJuX2xsLmMgbGliZmZpLmNhbGwvY2xzX3BvaW50ZXIuYyBcCi1saWJmZmkuY2FsbC9lcnJfYmFkX2FiaS5jIGxpYmZmaS5jYWxsL3JldHVybl9kYmwxLmMgXAotbGliZmZpLmNhbGwvY2FsbC5leHAgbGliZmZpLmNhbGwvZmZpdGVzdC5oIGxpYmZmaS5jYWxsL3N0cmxlbi5jCVwKLWxpYmZmaS5jYWxsL3JldHVybl9zbC5jIGxpYmZmaS5jYWxsL2Nsc18xXzFieXRlLmMgXAotbGliZmZpLmNhbGwvc3RydWN0MS5jIGxpYmZmaS5jYWxsL2Nsc182NGJ5dGUuYyBsaWJmZmkuY2FsbC9yZXR1cm5fdWwuYyBcCi1saWJmZmkuY2FsbC9jbHNfZG91YmxlLmMgbGliZmZpLmNhbGwvbWFueV93aW4zMi5jIFwKLWxpYmZmaS5jYWxsL2Nsc18xNmJ5dGUuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fZG91YmxlLmMJXAotbGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQxNi5jIGxpYmZmaS5jYWxsL2Nsc185Ynl0ZTEuYwlcCi1saWJmZmkuY2FsbC9jbHNfbXVsdGlfc3Nob3J0Y2hhci5jIGxpYmZmaS5jYWxsL2Nsc19tdWx0aV91c2hvcnQuYyBcCi1saWJmZmkuY2FsbC9jbG9zdXJlX3N0ZGNhbGwuYyBsaWJmZmkuY2FsbC9yZXR1cm5fZmwuYyBcCi1saWJmZmkuY2FsbC9zdHJsZW5fd2luMzIuYyBsaWJmZmkuY2FsbC9yZXR1cm5fbGRsLmMgXAotbGliZmZpLmNhbGwvY2xzX2FsaWduX2Zsb2F0LmMgbGliZmZpLmNhbGwvc3RydWN0My5jIFwKLWxpYmZmaS5jYWxsL2Nsc191Y2hhci5jIGxpYmZmaS5jYWxsL2Nsc19zaW50LmMgbGliZmZpLmNhbGwvZmxvYXQyLmMgXAotbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGVfc3BsaXQuYyBcCi1saWJmZmkuY2FsbC9jbHNfbG9uZ2RvdWJsZV92YS5jIGxpYmZmaS5jYWxsL2Nsc19tdWx0aV9zc2hvcnQuYyBcCi1saWJmZmkuY2FsbC9zdHJldF9sYXJnZS5jIGxpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50MTYuYyBcCi1saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Ni5jIGxpYmZmaS5jYWxsL2Nsc181Ynl0ZS5jIFwKLWxpYmZmaS5jYWxsL3JldHVybl9kYmwuYyBsaWJmZmkuY2FsbC9jbHNfMjBieXRlLmMgXAotbGliZmZpLmNhbGwvY2xzXzhieXRlLmMgbGliZmZpLmNhbGwvcHlvYmpjLXRjLmMJXAotbGliZmZpLmNhbGwvY2xzXzI0Ynl0ZS5jIGxpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlX3NwbGl0Mi5jIFwKLWxpYmZmaS5jYWxsL2Nsc182XzFfYnl0ZS5jIGxpYmZmaS5jYWxsL2Nsc19zY2hhci5jIFwKLWxpYmZmaS5jYWxsL2Nsc18xOGJ5dGUuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuMy5jIFwKLWxpYmZmaS5jYWxsL2Vycl9iYWRfdHlwZWRlZi5jIGxpYmZmaS5jYWxsL2Nsb3N1cmVfZm4yLmMJXAotbGliZmZpLmNhbGwvc3RydWN0Mi5jIGxpYmZmaS5jYWxsL2Nsc18zYnl0ZTIuYyBcCi1saWJmZmkuY2FsbC9jbHNfYWxpZ25fbG9uZ2RvdWJsZS5jIGxpYmZmaS5jYWxsL2Nsc18yMGJ5dGUxLmMgXAotbGliZmZpLmNhbGwvcmV0dXJuX2ZsMy5jIGxpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50MzIuYwlcCi1saWJmZmkuY2FsbC9wcm9ibGVtMS5jIGxpYmZmaS5jYWxsL2Zsb2F0NC5jIFwKLWxpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50NjQuYyBsaWJmZmkuY2FsbC9zdHJ1Y3Q5LmMgXAotbGliZmZpLmNhbGwvY2xvc3VyZV9mbjUuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDMyLmMgXAotbGliZmZpLmNhbGwvY2xvc3VyZV9mbjAuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuNi5jIFwKLWxpYmZmaS5jYWxsL3N0cnVjdDQuYyBsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Mi5jIFwKLWxpYmZmaS5jYWxsL2Nsc182Ynl0ZS5jIGxpYmZmaS5jYWxsL2Nsc183Ynl0ZS5jIGxpYmZmaS5jYWxsL21hbnkuYyBcCi1saWJmZmkuY2FsbC9zdHJ1Y3Q4LmMgbGliZmZpLmNhbGwvbmVnaW50LmMgbGliZmZpLmNhbGwvc3RydWN0NS5jIFwKLWxpYmZmaS5jYWxsL2Nsc18xMmJ5dGUuYyBsaWJmZmkuY2FsbC9jbHNfZG91YmxlX3ZhLmMgXAotbGliZmZpLmNhbGwvY2xzX2xvbmdkb3VibGUuYyBsaWJmZmkuY2FsbC9jbHNfOWJ5dGUyLmMgXAorRVhUUkFfRElTVCA9IGNvbmZpZy9kZWZhdWx0LmV4cCBsaWJmZmkuY2FsbC9jbHNfMTlieXRlLmMgXAorbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGVfc3BsaXQuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX2xvY19mbjAuYyBcCitsaWJmZmkuY2FsbC9jbHNfc2NoYXIuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuMS5jIFwKK2xpYmZmaS5jYWxsL21hbnkyX3dpbjMyLmMgbGliZmZpLmNhbGwvcmV0dXJuX3VsLmMgXAorbGliZmZpLmNhbGwvY2xzX2FsaWduX2RvdWJsZS5jIGxpYmZmaS5jYWxsL3JldHVybl9mbDIuYyBcCitsaWJmZmkuY2FsbC9jbHNfMV8xYnl0ZS5jIGxpYmZmaS5jYWxsL2Nsc182NGJ5dGUuYyBcCitsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Ny5jIGxpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50MzIuYyBcCitsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Mi5jIGxpYmZmaS5jYWxsL2ZmaXRlc3QuaCBcCitsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0NC5jIGxpYmZmaS5jYWxsL2Nsc19tdWx0aV91c2hvcnQuYyBcCitsaWJmZmkuY2FsbC9zdHJ1Y3QzLmMgbGliZmZpLmNhbGwvY2xzXzNieXRlMS5jIFwKK2xpYmZmaS5jYWxsL2Nsc18xNmJ5dGUuYyBsaWJmZmkuY2FsbC9zdHJ1Y3Q4LmMgXAorbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDguYyBsaWJmZmkuY2FsbC9jbHNfbXVsdGlfc3Nob3J0LmMgXAorbGliZmZpLmNhbGwvY2xzXzNieXRlMi5jIGxpYmZmaS5jYWxsL2Zhc3R0aGlzMl93aW4zMi5jIFwKK2xpYmZmaS5jYWxsL2Nsc19wb2ludGVyLmMgbGliZmZpLmNhbGwvZXJyX2JhZF90eXBlZGVmLmMgXAorbGliZmZpLmNhbGwvY2xzXzRfMWJ5dGUuYyBsaWJmZmkuY2FsbC9jbHNfOWJ5dGUyLmMgXAorbGliZmZpLmNhbGwvY2xzX211bHRpX3NjaGFyLmMgbGliZmZpLmNhbGwvc3RyZXRfbWVkaXVtMi5jIFwKK2xpYmZmaS5jYWxsL2Nsc181XzFfYnl0ZS5jIGxpYmZmaS5jYWxsL2NhbGwuZXhwIFwKK2xpYmZmaS5jYWxsL2Nsc19kb3VibGUuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDE2LmMgXAorbGliZmZpLmNhbGwvY2xzX3VpbnQuYyBsaWJmZmkuY2FsbC9yZXR1cm5fbGwxLmMgXAorbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDMuYyBsaWJmZmkuY2FsbC9jbHNfMjBieXRlMS5jIFwKK2xpYmZmaS5jYWxsL2Nsb3N1cmVfZm40LmMgbGliZmZpLmNhbGwvY2xzX3VjaGFyLmMgXAorbGliZmZpLmNhbGwvc3RydWN0Mi5jIGxpYmZmaS5jYWxsL2Nsc183Ynl0ZS5jIGxpYmZmaS5jYWxsL3N0cmxlbi5jIFwKK2xpYmZmaS5jYWxsL21hbnkuYyBsaWJmZmkuY2FsbC90ZXN0Y2xvc3VyZS5jIGxpYmZmaS5jYWxsL3JldHVybl9mbC5jIFwKK2xpYmZmaS5jYWxsL3N0cnVjdDUuYyBsaWJmZmkuY2FsbC9jbHNfMTJieXRlLmMgXAorbGliZmZpLmNhbGwvY2xzX211bHRpX3NzaG9ydGNoYXIuYyBcCitsaWJmZmkuY2FsbC9jbHNfYWxpZ25fbG9uZ2RvdWJsZV9zcGxpdDIuYyBsaWJmZmkuY2FsbC9yZXR1cm5fZGJsMi5jIFwKK2xpYmZmaS5jYWxsL3JldHVybl9mbDMuYyBsaWJmZmkuY2FsbC9zdHJldF9tZWRpdW0uYyBcCitsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Ni5jIGxpYmZmaS5jYWxsL2Eub3V0IFwKK2xpYmZmaS5jYWxsL2Nsb3N1cmVfZm4zLmMgbGliZmZpLmNhbGwvZmxvYXQzLmMgbGliZmZpLmNhbGwvbWFueTIuYyBcCitsaWJmZmkuY2FsbC9jbG9zdXJlX3N0ZGNhbGwuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDE2LmMgXAorbGliZmZpLmNhbGwvY2xzXzlieXRlMS5jIGxpYmZmaS5jYWxsL2Nsb3N1cmVfZm42LmMgXAorbGliZmZpLmNhbGwvY2xzX2RvdWJsZV92YS5jIGxpYmZmaS5jYWxsL2Nsc19hbGlnbl9wb2ludGVyLmMgXAorbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGUuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuMi5jIFwKK2xpYmZmaS5jYWxsL2Nsc19zc2hvcnQuYyBsaWJmZmkuY2FsbC9tYW55X3dpbjMyLmMgXAorbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdC5jIGxpYmZmaS5jYWxsL2Nsc18yMGJ5dGUuYyBcCitsaWJmZmkuY2FsbC9jbHNfbG9uZ2RvdWJsZS5jIGxpYmZmaS5jYWxsL2Nsc19tdWx0aV91Y2hhci5jIFwKK2xpYmZmaS5jYWxsL3JldHVybl91Yy5jIGxpYmZmaS5jYWxsL2Nsb3N1cmVfdGhpc2NhbGwuYyBcCitsaWJmZmkuY2FsbC9jbHNfMThieXRlLmMgbGliZmZpLmNhbGwvY2xzXzhieXRlLmMgXAorbGliZmZpLmNhbGwvcHJvbW90aW9uLmMgbGliZmZpLmNhbGwvc3RydWN0MV93aW4zMi5jIFwKK2xpYmZmaS5jYWxsL3JldHVybl9kYmwuYyBsaWJmZmkuY2FsbC9jbHNfMjRieXRlLmMgXAorbGliZmZpLmNhbGwvc3RydWN0NC5jIGxpYmZmaS5jYWxsL2Nsc182Ynl0ZS5jIFwKK2xpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50MzIuYyBsaWJmZmkuY2FsbC9mbG9hdC5jIFwKK2xpYmZmaS5jYWxsL2Zsb2F0MS5jIGxpYmZmaS5jYWxsL2Zsb2F0X3ZhLmMgbGliZmZpLmNhbGwvbmVnaW50LmMgXAorbGliZmZpLmNhbGwvcmV0dXJuX2RibDEuYyBsaWJmZmkuY2FsbC9jbHNfM18xYnl0ZS5jIFwKK2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9mbG9hdC5jIGxpYmZmaS5jYWxsL3JldHVybl9mbDEuYyBcCiBsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0MTAuYyBsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0NS5jIFwKLWxpYmZmaS5jYWxsL2h1Z2Vfc3RydWN0LmMKK2xpYmZmaS5jYWxsL2Zhc3R0aGlzMV93aW4zMi5jIGxpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50NjQuYyBcCitsaWJmZmkuY2FsbC9zdHJldF9sYXJnZTIuYyBsaWJmZmkuY2FsbC9yZXR1cm5fc2wuYyBcCitsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuMC5jIGxpYmZmaS5jYWxsL2Nsc181Ynl0ZS5jIFwKK2xpYmZmaS5jYWxsL2Nsc18yYnl0ZS5jIGxpYmZmaS5jYWxsL2Zsb2F0Mi5jIFwKK2xpYmZmaS5jYWxsL2Nsc19kYmxzX3N0cnVjdC5jIGxpYmZmaS5jYWxsL2Nsc19zaW50LmMgXAorbGliZmZpLmNhbGwvc3RyZXRfbGFyZ2UuYyBsaWJmZmkuY2FsbC9jbHNfdWxvbmdsb25nLmMgXAorbGliZmZpLmNhbGwvY2xzX3VzaG9ydC5jIGxpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QxLmMgXAorbGliZmZpLmNhbGwvZXJyX2JhZF9hYmkuYyBsaWJmZmkuY2FsbC9jbHNfbG9uZ2RvdWJsZV92YS5jIFwKK2xpYmZmaS5jYWxsL2Nsc19mbG9hdC5jIGxpYmZmaS5jYWxsL2Nsc19wb2ludGVyX3N0YWNrLmMgXAorbGliZmZpLmNhbGwvcHlvYmpjLXRjLmMgbGliZmZpLmNhbGwvY2xzX211bHRpX3VzaG9ydGNoYXIuYyBcCitsaWJmZmkuY2FsbC9zdHJ1Y3QxLmMgbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDkuYyBcCitsaWJmZmkuY2FsbC9odWdlX3N0cnVjdC5jIGxpYmZmaS5jYWxsL3Byb2JsZW0xLmMgbGliZmZpLmNhbGwvZmxvYXQ0LmMgXAorbGliZmZpLmNhbGwvZmFzdHRoaXMzX3dpbjMyLmMgbGliZmZpLmNhbGwvcmV0dXJuX2xkbC5jIFwKK2xpYmZmaS5jYWxsL3N0cmxlbjJfd2luMzIuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuNS5jIFwKK2xpYmZmaS5jYWxsL3N0cnVjdDJfd2luMzIuYyBsaWJmZmkuY2FsbC9zdHJ1Y3Q2LmMgXAorbGliZmZpLmNhbGwvcmV0dXJuX2xsLmMgbGliZmZpLmNhbGwvc3RydWN0OS5jIGxpYmZmaS5jYWxsL3JldHVybl9zYy5jIFwKK2xpYmZmaS5jYWxsL3N0cnVjdDcuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDY0LmMgXAorbGliZmZpLmNhbGwvY2xzXzRieXRlLmMgbGliZmZpLmNhbGwvc3RybGVuX3dpbjMyLmMgXAorbGliZmZpLmNhbGwvY2xzXzZfMV9ieXRlLmMgbGliZmZpLmNhbGwvY2xzXzdfMV9ieXRlLmMgXAorbGliZmZpLnNwZWNpYWwvdW53aW5kdGVzdC5jYyBsaWJmZmkuc3BlY2lhbC9zcGVjaWFsLmV4cCBcCitsaWJmZmkuc3BlY2lhbC91bndpbmR0ZXN0X2ZmaV9jYWxsLmNjIGxpYmZmaS5zcGVjaWFsL2ZmaXRlc3RjeHguaCBcCitsaWIvd3JhcHBlci5leHAgbGliL3RhcmdldC1saWJwYXRoLmV4cCBsaWIvbGliZmZpLmV4cApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvTWFrZWZpbGUuaW4gYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9NYWtlZmlsZS5pbgppbmRleCA2OThjNDYxLi40Y2Y0MGNhIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9NYWtlZmlsZS5pbgorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9NYWtlZmlsZS5pbgpAQCAtMSw5ICsxLDkgQEAKLSMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEgZnJvbSBNYWtlZmlsZS5hbS4KKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMyBmcm9tIE1ha2VmaWxlLmFtLgogIyBAY29uZmlndXJlX2lucHV0QAogCiAjIENvcHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotIyBJbmMuCisjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuCiAjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgogIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAogIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCkBAIC01Myw2ICs1Myw3IEBACiBBQ0xPQ0FMID0gQEFDTE9DQUxACiBBTExPQ0EgPSBAQUxMT0NBQAogQU1UQVIgPSBAQU1UQVJACitBTV9MVExERkxBR1MgPSBAQU1fTFRMREZMQUdTQAogQU1fUlVOVEVTVEZMQUdTID0gCiBBUiA9IEBBUkAKIEFVVE9DT05GID0gQEFVVE9DT05GQApAQCAtNzAsNiArNzEsNyBAQAogQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKIERFRlMgPSBAREVGU0AKIERFUERJUiA9IEBERVBESVJACitETExUT09MID0gQERMTFRPT0xACiBEU1lNVVRJTCA9IEBEU1lNVVRJTEAKIERVTVBCSU4gPSBARFVNUEJJTkAKIEVDSE9fQyA9IEBFQ0hPX0NACkBAIC03Nyw2ICs3OSw3IEBACiBFQ0hPX1QgPSBARUNIT19UQAogRUdSRVAgPSBARUdSRVBACiBFWEVFWFQgPSBARVhFRVhUQAorRkZJX0VYRUNfVFJBTVBPTElORV9UQUJMRSA9IEBGRklfRVhFQ19UUkFNUE9MSU5FX1RBQkxFQAogRkdSRVAgPSBARkdSRVBACiBHUkVQID0gQEdSRVBACiBIQVZFX0xPTkdfRE9VQkxFID0gQEhBVkVfTE9OR19ET1VCTEVACkBAIC05NSw2ICs5OCw3IEBACiBMVExJQk9CSlMgPSBATFRMSUJPQkpTQAogTUFJTlQgPSBATUFJTlRACiBNQUtFSU5GTyA9IEBNQUtFSU5GT0AKK01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKIE1LRElSX1AgPSBATUtESVJfUEAKIE5NID0gQE5NQAogTk1FRElUID0gQE5NRURJVEAKQEAgLTEwNyw2ICsxMTEsNyBAQAogUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKIFBBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAogUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAogUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKIFBBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAogUkFOTElCID0gQFJBTkxJQkAKQEAgLTEyMSw2ICsxMjYsNyBAQAogYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAogYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAogYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACithY19jdF9BUiA9IEBhY19jdF9BUkAKIGFjX2N0X0NDID0gQGFjX2N0X0NDQAogYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAogYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACkBAIC0xNTMsNyArMTU5LDYgQEAKIGxpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKIGxvY2FsZWRpciA9IEBsb2NhbGVkaXJACiBsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi1sdF9FQ0hPID0gQGx0X0VDSE9ACiBtYW5kaXIgPSBAbWFuZGlyQAogbWtkaXJfcCA9IEBta2Rpcl9wQAogb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQApAQCAtMTg3LDY5ICsxOTIsNzQgQEAKIAkgICAgZWxzZSBlY2hvIHJ1bnRlc3Q7IGZpYAogCiBDTEVBTkZJTEVTID0gKi5leGUgY29yZSogKi5sb2cgKi5zdW0KLUVYVFJBX0RJU1QgPSBsaWJmZmkuc3BlY2lhbC9zcGVjaWFsLmV4cAlcCi1saWJmZmkuc3BlY2lhbC91bndpbmR0ZXN0X2ZmaV9jYWxsLmNjIGxpYmZmaS5zcGVjaWFsL3Vud2luZHRlc3QuY2MgXAotbGliZmZpLnNwZWNpYWwvZmZpdGVzdGN4eC5oIGNvbmZpZy9kZWZhdWx0LmV4cCBsaWIvdGFyZ2V0LWxpYnBhdGguZXhwIFwKLWxpYi9saWJmZmktZGcuZXhwIGxpYi93cmFwcGVyLmV4cCBsaWJmZmkuY2FsbC9mbG9hdC5jIFwKLWxpYmZmaS5jYWxsL2Nsc19tdWx0aV9zY2hhci5jIGxpYmZmaS5jYWxsL2Zsb2F0My5jIFwKLWxpYmZmaS5jYWxsL2Nsc18zXzFieXRlLmMgbGliZmZpLmNhbGwvc3RyZXRfbGFyZ2UyLmMgXAotbGliZmZpLmNhbGwvY2xzXzVfMV9ieXRlLmMgbGliZmZpLmNhbGwvc3RyZXRfbWVkaXVtLmMgXAotbGliZmZpLmNhbGwvcHJvbW90aW9uLmMgbGliZmZpLmNhbGwvY2xzX2RibHNfc3RydWN0LmMgXAotbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdC5jIGxpYmZmaS5jYWxsL2Nsb3N1cmVfZm4xLmMgXAotbGliZmZpLmNhbGwvY2xzXzRfMWJ5dGUuYyBsaWJmZmkuY2FsbC9jbHNfZmxvYXQuYyBcCi1saWJmZmkuY2FsbC9jbHNfMmJ5dGUuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuNC5jIFwKLWxpYmZmaS5jYWxsL3JldHVybl9mbDIuYyBsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Ny5jIFwKLWxpYmZmaS5jYWxsL2Nsc191aW50LmMgbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQ2NC5jIFwKLWxpYmZmaS5jYWxsL2Zsb2F0MS5jIGxpYmZmaS5jYWxsL2Nsc18xOWJ5dGUuYyBcCi1saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0MS5jIGxpYmZmaS5jYWxsL2Nsc180Ynl0ZS5jIFwKLWxpYmZmaS5jYWxsL3JldHVybl9mbDEuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fcG9pbnRlci5jIFwKLWxpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q0LmMgbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDMuYyBcCi1saWJmZmkuY2FsbC9zdHJ1Y3Q3LmMgbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDkuYyBcCi1saWJmZmkuY2FsbC9jbHNfc3Nob3J0LmMgbGliZmZpLmNhbGwvY2xzX3Vsb25nbG9uZy5jIFwKLWxpYmZmaS5jYWxsL2Nsc19wb2ludGVyX3N0YWNrLmMgbGliZmZpLmNhbGwvY2xzX211bHRpX3VjaGFyLmMgXAotbGliZmZpLmNhbGwvdGVzdGNsb3N1cmUuYyBsaWJmZmkuY2FsbC9jbHNfM2J5dGUxLmMgXAotbGliZmZpLmNhbGwvc3RydWN0Ni5jIGxpYmZmaS5jYWxsL3JldHVybl91Yy5jIGxpYmZmaS5jYWxsL3JldHVybl9sbDEuYyBcCi1saWJmZmkuY2FsbC9jbHNfdXNob3J0LmMgbGliZmZpLmNhbGwvc3RyZXRfbWVkaXVtMi5jIFwKLWxpYmZmaS5jYWxsL2Nsc19tdWx0aV91c2hvcnRjaGFyLmMgbGliZmZpLmNhbGwvcmV0dXJuX2RibDIuYyBcCi1saWJmZmkuY2FsbC9jbG9zdXJlX2xvY19mbjAuYyBsaWJmZmkuY2FsbC9yZXR1cm5fc2MuYyBcCi1saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0OC5jIGxpYmZmaS5jYWxsL2Nsc183XzFfYnl0ZS5jCVwKLWxpYmZmaS5jYWxsL3JldHVybl9sbC5jIGxpYmZmaS5jYWxsL2Nsc19wb2ludGVyLmMgXAotbGliZmZpLmNhbGwvZXJyX2JhZF9hYmkuYyBsaWJmZmkuY2FsbC9yZXR1cm5fZGJsMS5jIFwKLWxpYmZmaS5jYWxsL2NhbGwuZXhwIGxpYmZmaS5jYWxsL2ZmaXRlc3QuaCBsaWJmZmkuY2FsbC9zdHJsZW4uYwlcCi1saWJmZmkuY2FsbC9yZXR1cm5fc2wuYyBsaWJmZmkuY2FsbC9jbHNfMV8xYnl0ZS5jIFwKLWxpYmZmaS5jYWxsL3N0cnVjdDEuYyBsaWJmZmkuY2FsbC9jbHNfNjRieXRlLmMgbGliZmZpLmNhbGwvcmV0dXJuX3VsLmMgXAotbGliZmZpLmNhbGwvY2xzX2RvdWJsZS5jIGxpYmZmaS5jYWxsL21hbnlfd2luMzIuYyBcCi1saWJmZmkuY2FsbC9jbHNfMTZieXRlLmMgbGliZmZpLmNhbGwvY2xzX2FsaWduX2RvdWJsZS5jCVwKLWxpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50MTYuYyBsaWJmZmkuY2FsbC9jbHNfOWJ5dGUxLmMJXAotbGliZmZpLmNhbGwvY2xzX211bHRpX3NzaG9ydGNoYXIuYyBsaWJmZmkuY2FsbC9jbHNfbXVsdGlfdXNob3J0LmMgXAotbGliZmZpLmNhbGwvY2xvc3VyZV9zdGRjYWxsLmMgbGliZmZpLmNhbGwvcmV0dXJuX2ZsLmMgXAotbGliZmZpLmNhbGwvc3RybGVuX3dpbjMyLmMgbGliZmZpLmNhbGwvcmV0dXJuX2xkbC5jIFwKLWxpYmZmaS5jYWxsL2Nsc19hbGlnbl9mbG9hdC5jIGxpYmZmaS5jYWxsL3N0cnVjdDMuYyBcCi1saWJmZmkuY2FsbC9jbHNfdWNoYXIuYyBsaWJmZmkuY2FsbC9jbHNfc2ludC5jIGxpYmZmaS5jYWxsL2Zsb2F0Mi5jIFwKLWxpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlX3NwbGl0LmMgXAotbGliZmZpLmNhbGwvY2xzX2xvbmdkb3VibGVfdmEuYyBsaWJmZmkuY2FsbC9jbHNfbXVsdGlfc3Nob3J0LmMgXAotbGliZmZpLmNhbGwvc3RyZXRfbGFyZ2UuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDE2LmMgXAotbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDYuYyBsaWJmZmkuY2FsbC9jbHNfNWJ5dGUuYyBcCi1saWJmZmkuY2FsbC9yZXR1cm5fZGJsLmMgbGliZmZpLmNhbGwvY2xzXzIwYnl0ZS5jIFwKLWxpYmZmaS5jYWxsL2Nsc184Ynl0ZS5jIGxpYmZmaS5jYWxsL3B5b2JqYy10Yy5jCVwKLWxpYmZmaS5jYWxsL2Nsc18yNGJ5dGUuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fbG9uZ2RvdWJsZV9zcGxpdDIuYyBcCi1saWJmZmkuY2FsbC9jbHNfNl8xX2J5dGUuYyBsaWJmZmkuY2FsbC9jbHNfc2NoYXIuYyBcCi1saWJmZmkuY2FsbC9jbHNfMThieXRlLmMgbGliZmZpLmNhbGwvY2xvc3VyZV9mbjMuYyBcCi1saWJmZmkuY2FsbC9lcnJfYmFkX3R5cGVkZWYuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuMi5jCVwKLWxpYmZmaS5jYWxsL3N0cnVjdDIuYyBsaWJmZmkuY2FsbC9jbHNfM2J5dGUyLmMgXAotbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGUuYyBsaWJmZmkuY2FsbC9jbHNfMjBieXRlMS5jIFwKLWxpYmZmaS5jYWxsL3JldHVybl9mbDMuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDMyLmMJXAotbGliZmZpLmNhbGwvcHJvYmxlbTEuYyBsaWJmZmkuY2FsbC9mbG9hdDQuYyBcCi1saWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDY0LmMgbGliZmZpLmNhbGwvc3RydWN0OS5jIFwKLWxpYmZmaS5jYWxsL2Nsb3N1cmVfZm41LmMgbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQzMi5jIFwKLWxpYmZmaS5jYWxsL2Nsb3N1cmVfZm4wLmMgbGliZmZpLmNhbGwvY2xvc3VyZV9mbjYuYyBcCi1saWJmZmkuY2FsbC9zdHJ1Y3Q0LmMgbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDIuYyBcCi1saWJmZmkuY2FsbC9jbHNfNmJ5dGUuYyBsaWJmZmkuY2FsbC9jbHNfN2J5dGUuYyBsaWJmZmkuY2FsbC9tYW55LmMgXAotbGliZmZpLmNhbGwvc3RydWN0OC5jIGxpYmZmaS5jYWxsL25lZ2ludC5jIGxpYmZmaS5jYWxsL3N0cnVjdDUuYyBcCi1saWJmZmkuY2FsbC9jbHNfMTJieXRlLmMgbGliZmZpLmNhbGwvY2xzX2RvdWJsZV92YS5jIFwKLWxpYmZmaS5jYWxsL2Nsc19sb25nZG91YmxlLmMgbGliZmZpLmNhbGwvY2xzXzlieXRlMi5jIFwKK0VYVFJBX0RJU1QgPSBjb25maWcvZGVmYXVsdC5leHAgbGliZmZpLmNhbGwvY2xzXzE5Ynl0ZS5jIFwKK2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlX3NwbGl0LmMgbGliZmZpLmNhbGwvY2xvc3VyZV9sb2NfZm4wLmMgXAorbGliZmZpLmNhbGwvY2xzX3NjaGFyLmMgbGliZmZpLmNhbGwvY2xvc3VyZV9mbjEuYyBcCitsaWJmZmkuY2FsbC9tYW55Ml93aW4zMi5jIGxpYmZmaS5jYWxsL3JldHVybl91bC5jIFwKK2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9kb3VibGUuYyBsaWJmZmkuY2FsbC9yZXR1cm5fZmwyLmMgXAorbGliZmZpLmNhbGwvY2xzXzFfMWJ5dGUuYyBsaWJmZmkuY2FsbC9jbHNfNjRieXRlLmMgXAorbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDcuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDMyLmMgXAorbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDIuYyBsaWJmZmkuY2FsbC9mZml0ZXN0LmggXAorbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDQuYyBsaWJmZmkuY2FsbC9jbHNfbXVsdGlfdXNob3J0LmMgXAorbGliZmZpLmNhbGwvc3RydWN0My5jIGxpYmZmaS5jYWxsL2Nsc18zYnl0ZTEuYyBcCitsaWJmZmkuY2FsbC9jbHNfMTZieXRlLmMgbGliZmZpLmNhbGwvc3RydWN0OC5jIFwKK2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q4LmMgbGliZmZpLmNhbGwvY2xzX211bHRpX3NzaG9ydC5jIFwKK2xpYmZmaS5jYWxsL2Nsc18zYnl0ZTIuYyBsaWJmZmkuY2FsbC9mYXN0dGhpczJfd2luMzIuYyBcCitsaWJmZmkuY2FsbC9jbHNfcG9pbnRlci5jIGxpYmZmaS5jYWxsL2Vycl9iYWRfdHlwZWRlZi5jIFwKK2xpYmZmaS5jYWxsL2Nsc180XzFieXRlLmMgbGliZmZpLmNhbGwvY2xzXzlieXRlMi5jIFwKK2xpYmZmaS5jYWxsL2Nsc19tdWx0aV9zY2hhci5jIGxpYmZmaS5jYWxsL3N0cmV0X21lZGl1bTIuYyBcCitsaWJmZmkuY2FsbC9jbHNfNV8xX2J5dGUuYyBsaWJmZmkuY2FsbC9jYWxsLmV4cCBcCitsaWJmZmkuY2FsbC9jbHNfZG91YmxlLmMgbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQxNi5jIFwKK2xpYmZmaS5jYWxsL2Nsc191aW50LmMgbGliZmZpLmNhbGwvcmV0dXJuX2xsMS5jIFwKK2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QzLmMgbGliZmZpLmNhbGwvY2xzXzIwYnl0ZTEuYyBcCitsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuNC5jIGxpYmZmaS5jYWxsL2Nsc191Y2hhci5jIFwKK2xpYmZmaS5jYWxsL3N0cnVjdDIuYyBsaWJmZmkuY2FsbC9jbHNfN2J5dGUuYyBsaWJmZmkuY2FsbC9zdHJsZW4uYyBcCitsaWJmZmkuY2FsbC9tYW55LmMgbGliZmZpLmNhbGwvdGVzdGNsb3N1cmUuYyBsaWJmZmkuY2FsbC9yZXR1cm5fZmwuYyBcCitsaWJmZmkuY2FsbC9zdHJ1Y3Q1LmMgbGliZmZpLmNhbGwvY2xzXzEyYnl0ZS5jIFwKK2xpYmZmaS5jYWxsL2Nsc19tdWx0aV9zc2hvcnRjaGFyLmMgXAorbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGVfc3BsaXQyLmMgbGliZmZpLmNhbGwvcmV0dXJuX2RibDIuYyBcCitsaWJmZmkuY2FsbC9yZXR1cm5fZmwzLmMgbGliZmZpLmNhbGwvc3RyZXRfbWVkaXVtLmMgXAorbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDYuYyBsaWJmZmkuY2FsbC9hLm91dCBcCitsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuMy5jIGxpYmZmaS5jYWxsL2Zsb2F0My5jIGxpYmZmaS5jYWxsL21hbnkyLmMgXAorbGliZmZpLmNhbGwvY2xvc3VyZV9zdGRjYWxsLmMgbGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQxNi5jIFwKK2xpYmZmaS5jYWxsL2Nsc185Ynl0ZTEuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX2ZuNi5jIFwKK2xpYmZmaS5jYWxsL2Nsc19kb3VibGVfdmEuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fcG9pbnRlci5jIFwKK2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlLmMgbGliZmZpLmNhbGwvY2xvc3VyZV9mbjIuYyBcCitsaWJmZmkuY2FsbC9jbHNfc3Nob3J0LmMgbGliZmZpLmNhbGwvbWFueV93aW4zMi5jIFwKK2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QuYyBsaWJmZmkuY2FsbC9jbHNfMjBieXRlLmMgXAorbGliZmZpLmNhbGwvY2xzX2xvbmdkb3VibGUuYyBsaWJmZmkuY2FsbC9jbHNfbXVsdGlfdWNoYXIuYyBcCitsaWJmZmkuY2FsbC9yZXR1cm5fdWMuYyBsaWJmZmkuY2FsbC9jbG9zdXJlX3RoaXNjYWxsLmMgXAorbGliZmZpLmNhbGwvY2xzXzE4Ynl0ZS5jIGxpYmZmaS5jYWxsL2Nsc184Ynl0ZS5jIFwKK2xpYmZmaS5jYWxsL3Byb21vdGlvbi5jIGxpYmZmaS5jYWxsL3N0cnVjdDFfd2luMzIuYyBcCitsaWJmZmkuY2FsbC9yZXR1cm5fZGJsLmMgbGliZmZpLmNhbGwvY2xzXzI0Ynl0ZS5jIFwKK2xpYmZmaS5jYWxsL3N0cnVjdDQuYyBsaWJmZmkuY2FsbC9jbHNfNmJ5dGUuYyBcCitsaWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDMyLmMgbGliZmZpLmNhbGwvZmxvYXQuYyBcCitsaWJmZmkuY2FsbC9mbG9hdDEuYyBsaWJmZmkuY2FsbC9mbG9hdF92YS5jIGxpYmZmaS5jYWxsL25lZ2ludC5jIFwKK2xpYmZmaS5jYWxsL3JldHVybl9kYmwxLmMgbGliZmZpLmNhbGwvY2xzXzNfMWJ5dGUuYyBcCitsaWJmZmkuY2FsbC9jbHNfYWxpZ25fZmxvYXQuYyBsaWJmZmkuY2FsbC9yZXR1cm5fZmwxLmMgXAogbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDEwLmMgbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDUuYyBcCi1saWJmZmkuY2FsbC9odWdlX3N0cnVjdC5jCitsaWJmZmkuY2FsbC9mYXN0dGhpczFfd2luMzIuYyBsaWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDY0LmMgXAorbGliZmZpLmNhbGwvc3RyZXRfbGFyZ2UyLmMgbGliZmZpLmNhbGwvcmV0dXJuX3NsLmMgXAorbGliZmZpLmNhbGwvY2xvc3VyZV9mbjAuYyBsaWJmZmkuY2FsbC9jbHNfNWJ5dGUuYyBcCitsaWJmZmkuY2FsbC9jbHNfMmJ5dGUuYyBsaWJmZmkuY2FsbC9mbG9hdDIuYyBcCitsaWJmZmkuY2FsbC9jbHNfZGJsc19zdHJ1Y3QuYyBsaWJmZmkuY2FsbC9jbHNfc2ludC5jIFwKK2xpYmZmaS5jYWxsL3N0cmV0X2xhcmdlLmMgbGliZmZpLmNhbGwvY2xzX3Vsb25nbG9uZy5jIFwKK2xpYmZmaS5jYWxsL2Nsc191c2hvcnQuYyBsaWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0MS5jIFwKK2xpYmZmaS5jYWxsL2Vycl9iYWRfYWJpLmMgbGliZmZpLmNhbGwvY2xzX2xvbmdkb3VibGVfdmEuYyBcCitsaWJmZmkuY2FsbC9jbHNfZmxvYXQuYyBsaWJmZmkuY2FsbC9jbHNfcG9pbnRlcl9zdGFjay5jIFwKK2xpYmZmaS5jYWxsL3B5b2JqYy10Yy5jIGxpYmZmaS5jYWxsL2Nsc19tdWx0aV91c2hvcnRjaGFyLmMgXAorbGliZmZpLmNhbGwvc3RydWN0MS5jIGxpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q5LmMgXAorbGliZmZpLmNhbGwvaHVnZV9zdHJ1Y3QuYyBsaWJmZmkuY2FsbC9wcm9ibGVtMS5jIGxpYmZmaS5jYWxsL2Zsb2F0NC5jIFwKK2xpYmZmaS5jYWxsL2Zhc3R0aGlzM193aW4zMi5jIGxpYmZmaS5jYWxsL3JldHVybl9sZGwuYyBcCitsaWJmZmkuY2FsbC9zdHJsZW4yX3dpbjMyLmMgbGliZmZpLmNhbGwvY2xvc3VyZV9mbjUuYyBcCitsaWJmZmkuY2FsbC9zdHJ1Y3QyX3dpbjMyLmMgbGliZmZpLmNhbGwvc3RydWN0Ni5jIFwKK2xpYmZmaS5jYWxsL3JldHVybl9sbC5jIGxpYmZmaS5jYWxsL3N0cnVjdDkuYyBsaWJmZmkuY2FsbC9yZXR1cm5fc2MuYyBcCitsaWJmZmkuY2FsbC9zdHJ1Y3Q3LmMgbGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQ2NC5jIFwKK2xpYmZmaS5jYWxsL2Nsc180Ynl0ZS5jIGxpYmZmaS5jYWxsL3N0cmxlbl93aW4zMi5jIFwKK2xpYmZmaS5jYWxsL2Nsc182XzFfYnl0ZS5jIGxpYmZmaS5jYWxsL2Nsc183XzFfYnl0ZS5jIFwKK2xpYmZmaS5zcGVjaWFsL3Vud2luZHRlc3QuY2MgbGliZmZpLnNwZWNpYWwvc3BlY2lhbC5leHAgXAorbGliZmZpLnNwZWNpYWwvdW53aW5kdGVzdF9mZmlfY2FsbC5jYyBsaWJmZmkuc3BlY2lhbC9mZml0ZXN0Y3h4LmggXAorbGliL3dyYXBwZXIuZXhwIGxpYi90YXJnZXQtbGlicGF0aC5leHAgbGliL2xpYmZmaS5leHAKIAogYWxsOiBhbGwtYW0KIApAQCAtMjk4LDcgKzMwOCw3IEBACiAKIAogY2hlY2stREVKQUdOVTogc2l0ZS5leHAKLQlzcmNkaXI9YCQoYW1fX2NkKSAkKHNyY2RpcikgJiYgcHdkYDsgZXhwb3J0IHNyY2RpcjsgXAorCXNyY2Rpcj0nJChzcmNkaXIpJzsgZXhwb3J0IHNyY2RpcjsgXAogCUVYUEVDVD0kKEVYUEVDVCk7IGV4cG9ydCBFWFBFQ1Q7IFwKIAlydW50ZXN0PSQoUlVOVEVTVCk7IFwKIAlpZiAkKFNIRUxMKSAtYyAiJCRydW50ZXN0IC0tdmVyc2lvbiIgPiAvZGV2L251bGwgMj4mMTsgdGhlbiBcCkBAIC0zMDksMTIgKzMxOSwxMiBAQAogCWVsc2UgZWNobyAiV0FSTklORzogY291bGQgbm90IGZpbmQgXGBydW50ZXN0JyIgMT4mMjsgOjtcCiAJZmk7IFwKIAlleGl0ICQkZXhpdF9zdGF0dXMKLXNpdGUuZXhwOiBNYWtlZmlsZQorc2l0ZS5leHA6IE1ha2VmaWxlICQoRVhUUkFfREVKQUdOVV9TSVRFX0NPTkZJRykKIAlAZWNobyAnTWFraW5nIGEgbmV3IHNpdGUuZXhwIGZpbGUuLi4nCiAJQGVjaG8gJyMjIHRoZXNlIHZhcmlhYmxlcyBhcmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgbWFrZSAjIycgPnNpdGUudG1wCiAJQGVjaG8gJyMgRG8gbm90IGVkaXQgaGVyZS4gIElmIHlvdSB3aXNoIHRvIG92ZXJyaWRlIHRoZXNlIHZhbHVlcycgPj5zaXRlLnRtcAogCUBlY2hvICcjIGVkaXQgdGhlIGxhc3Qgc2VjdGlvbicgPj5zaXRlLnRtcAotCUBlY2hvICdzZXQgc3JjZGlyICQoc3JjZGlyKScgPj5zaXRlLnRtcAorCUBlY2hvICdzZXQgc3JjZGlyICIkKHNyY2RpcikiJyA+PnNpdGUudG1wCiAJQGVjaG8gInNldCBvYmpkaXIgYHB3ZGAiID4+c2l0ZS50bXAKIAlAZWNobyAnc2V0IGJ1aWxkX2FsaWFzICIkKGJ1aWxkX2FsaWFzKSInID4+c2l0ZS50bXAKIAlAZWNobyAnc2V0IGJ1aWxkX3RyaXBsZXQgJChidWlsZF90cmlwbGV0KScgPj5zaXRlLnRtcApAQCAtMzIyLDkgKzMzMiwxNiBAQAogCUBlY2hvICdzZXQgaG9zdF90cmlwbGV0ICQoaG9zdF90cmlwbGV0KScgPj5zaXRlLnRtcAogCUBlY2hvICdzZXQgdGFyZ2V0X2FsaWFzICIkKHRhcmdldF9hbGlhcykiJyA+PnNpdGUudG1wCiAJQGVjaG8gJ3NldCB0YXJnZXRfdHJpcGxldCAkKHRhcmdldF90cmlwbGV0KScgPj5zaXRlLnRtcAotCUBlY2hvICcjIyBBbGwgdmFyaWFibGVzIGFib3ZlIGFyZSBnZW5lcmF0ZWQgYnkgY29uZmlndXJlLiBEbyBOb3QgRWRpdCAjIycgPj5zaXRlLnRtcAotCUB0ZXN0ICEgLWYgc2l0ZS5leHAgfHwgXAotCSAgc2VkICcxLC9eIyMgQWxsIHZhcmlhYmxlcyBhYm92ZSBhcmUuKiMjLyBkJyBzaXRlLmV4cCA+PiBzaXRlLnRtcAorCUBsaXN0PSckKEVYVFJBX0RFSkFHTlVfU0lURV9DT05GSUcpJzsgZm9yIGYgaW4gJCRsaXN0OyBkbyBcCisJICBlY2hvICIjIyBCZWdpbiBjb250ZW50IGluY2x1ZGVkIGZyb20gZmlsZSAkJGYuICBEbyBub3QgbW9kaWZ5LiAjIyIgXAorCSAgICYmIGNhdCBgdGVzdCAtZiAiJCRmIiB8fCBlY2hvICckKHNyY2RpcikvJ2AkJGYgXAorCSAgICYmIGVjaG8gIiMjIEVuZCBjb250ZW50IGluY2x1ZGVkIGZyb20gZmlsZSAkJGYuICMjIiBcCisJICAgfHwgZXhpdCAxOyBcCisJIGRvbmUgPj4gc2l0ZS50bXAKKwlAZWNobyAiIyMgRW5kIG9mIGF1dG8tZ2VuZXJhdGVkIGNvbnRlbnQ7IHlvdSBjYW4gZWRpdCBmcm9tIGhlcmUuICMjIiA+PiBzaXRlLnRtcAorCUBpZiB0ZXN0IC1mIHNpdGUuZXhwOyB0aGVuIFwKKwkgICBzZWQgLWUgJzEsL14jIyBFbmQgb2YgYXV0by1nZW5lcmF0ZWQgY29udGVudC4qIyMvZCcgc2l0ZS5leHAgPj4gc2l0ZS50bXA7IFwKKwkgZmkKIAlALXJtIC1mIHNpdGUuYmFrCiAJQHRlc3QgISAtZiBzaXRlLmV4cCB8fCBtdiBzaXRlLmV4cCBzaXRlLmJhawogCUBtdiBzaXRlLnRtcCBzaXRlLmV4cApAQCAtMzgwLDEwICszOTcsMTUgQEAKIAogaW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KIGluc3RhbGwtc3RyaXA6Ci0JJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLQkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0JICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCisJaWYgdGVzdCAteiAnJChTVFJJUCknOyB0aGVuIFwKKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICAgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgICAgIGluc3RhbGw7IFwKKwllbHNlIFwKKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCisJICAgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAorCSAgICAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyIgaW5zdGFsbDsgXAorCWZpCiBtb3N0bHljbGVhbi1nZW5lcmljOgogCiBjbGVhbi1nZW5lcmljOgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliL2xpYmZmaS1kZy5leHAgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWIvbGliZmZpLmV4cApzaW1pbGFyaXR5IGluZGV4IDgyJQpyZW5hbWUgZnJvbSBNb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWIvbGliZmZpLWRnLmV4cApyZW5hbWUgdG8gTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliL2xpYmZmaS5leHAKaW5kZXggODM4YTMwNi4uNGE2NWVkMSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliL2xpYmZmaS1kZy5leHAKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliL2xpYmZmaS5leHAKQEAgLTEsNCArMSw0IEBACi0jICAgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAyMDA4LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgIENvcHlyaWdodCAoQykgMjAwMywgMjAwNSwgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMTEsOCArMTEsOCBAQAogIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogIwogIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQorIyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAKIHByb2MgbG9hZF9nY2NfbGliIHsgZmlsZW5hbWUgfSB7CiAgICAgZ2xvYmFsIHNyY2RpcgpAQCAtMTAxLDcgKzEwMSw3IEBACiAgICAgZ2xvYmFsIHRvb2xfcm9vdF9kaXIKICAgICBnbG9iYWwgbGRfbGlicmFyeV9wYXRoCiAKLSAgICBzZXQgYmxkZGlyZmZpIFtwd2RdLy4uCisgICAgc2V0IGJsZGRpcmZmaSBbcHdkXS8uLiAKICAgICB2ZXJib3NlICJsaWJmZmkgJGJsZGRpcmZmaSIKIAogICAgIHNldCBnY2NkaXIgW2xvb2tmb3JfZmlsZSAkdG9vbF9yb290X2RpciBnY2MvbGliZ2NjLmFdCkBAIC0yNjYsNiArMjY2LDU2IEBACiAgICAgfQogfQogCitwcm9jIGNoZWNrLWZsYWdzIHsgYXJncyB9IHsKKworICAgICMgVGhlIGFyZ3MgYXJlIHdpdGhpbiBhbm90aGVyIGxpc3Q7IHB1bGwgdGhlbSBvdXQuCisgICAgc2V0IGFyZ3MgW2xpbmRleCAkYXJncyAwXQorCisgICAgIyBUaGUgbmV4dCB0d28gYXJndW1lbnRzIGFyZSBvcHRpb25hbC4gIElmIHRoZXkgd2VyZSBub3Qgc3BlY2lmaWVkLAorICAgICMgdXNlIHRoZSBkZWZhdWx0cy4KKyAgICBpZiB7IFtsbGVuZ3RoICRhcmdzXSA9PSAyIH0geworCWxhcHBlbmQgJGFyZ3MgW2xpc3QgIioiXQorICAgIH0KKyAgICBpZiB7IFtsbGVuZ3RoICRhcmdzXSA9PSAzIH0geworCWxhcHBlbmQgJGFyZ3MgW2xpc3QgIiJdCisgICAgfQorCisgICAgIyBJZiB0aGUgb3B0aW9uIHN0cmluZ3MgYXJlIHRoZSBkZWZhdWx0cywgb3IgdGhlIHNhbWUgYXMgdGhlCisgICAgIyBkZWZhdWx0cywgdGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIGNoZWNrX2NvbmRpdGlvbmFsX3hmYWlsIHRvCisgICAgIyBjb21wYXJlIHRoZW0gdG8gdGhlIGFjdHVhbCBvcHRpb25zLgorICAgIGlmIHsgW3N0cmluZyBjb21wYXJlIFtsaW5kZXggJGFyZ3MgMl0gIioiXSA9PSAwCisJICYmIFtzdHJpbmcgY29tcGFyZSBbbGluZGV4ICRhcmdzIDNdICIiIF0gPT0gMCB9IHsKKwlzZXQgcmVzdWx0IDEgICAgCisgICAgfSBlbHNlIHsKKwkjIFRoZSB0YXJnZXQgbGlzdCBtaWdodCBiZSBhbiBlZmZlY3RpdmUtdGFyZ2V0IGtleXdvcmQsIHNvIHJlcGxhY2UKKwkjIHRoZSBvcmlnaW5hbCBsaXN0IHdpdGggIiotKi0qIiwgc2luY2Ugd2UgYWxyZWFkeSBrbm93IGl0IG1hdGNoZXMuCisJc2V0IHJlc3VsdCBbY2hlY2tfY29uZGl0aW9uYWxfeGZhaWwgW2xyZXBsYWNlICRhcmdzIDEgMSAiKi0qLSoiXV0KKyAgICB9CisKKyAgICByZXR1cm4gJHJlc3VsdAorfQorCitwcm9jIGRnLXNraXAtaWYgeyBhcmdzIH0geworICAgICMgVmVyaWZ5IHRoZSBudW1iZXIgb2YgYXJndW1lbnRzLiAgVGhlIGxhc3QgdHdvIGFyZSBvcHRpb25hbC4KKyAgICBzZXQgYXJncyBbbHJlcGxhY2UgJGFyZ3MgMCAwXQorICAgIGlmIHsgW2xsZW5ndGggJGFyZ3NdIDwgMiB8fCBbbGxlbmd0aCAkYXJnc10gPiA0IH0geworICAgICAgICBlcnJvciAiZGctc2tpcC1pZiAyOiBuZWVkIDIsIDMsIG9yIDQgYXJndW1lbnRzIgorICAgIH0KKworICAgICMgRG9uJ3QgYm90aGVyIGlmIHdlJ3JlIGFscmVhZHkgc2tpcHBpbmcgdGhlIHRlc3QuCisgICAgdXB2YXIgZGctZG8td2hhdCBkZy1kby13aGF0CisgICAgaWYgeyBbbGluZGV4ICR7ZGctZG8td2hhdH0gMV0gPT0gIk4iIH0geworICAgICAgcmV0dXJuCisgICAgfQorCisgICAgc2V0IHNlbGVjdG9yIFtsaXN0IHRhcmdldCBbbGluZGV4ICRhcmdzIDFdXQorICAgIGlmIHsgW2RnLXByb2Nlc3MtdGFyZ2V0ICRzZWxlY3Rvcl0gPT0gIlMiIH0geworICAgICAgICBpZiBbY2hlY2stZmxhZ3MgJGFyZ3NdIHsKKyAgICAgICAgICAgIHVwdmFyIGRnLWRvLXdoYXQgZGctZG8td2hhdAorICAgICAgICAgICAgc2V0IGRnLWRvLXdoYXQgW2xpc3QgW2xpbmRleCAke2RnLWRvLXdoYXR9IDBdICJOIiAiUCJdCisgICAgICAgIH0KKyAgICB9Cit9CiAKICMgV2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBhZGRpdGlvbmFsX2ZpbGVzIGFuZCBhZGRpdGlvbmFsX3NvdXJjZXMKICMgYXJlIGJvdGggY2xlYXJlZCBvdXQgYWZ0ZXIgZXZlcnkgdGVzdC4gIEl0IGlzIG5vdCBlbm91Z2ggdG8gY2xlYXIKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYi90YXJnZXQtbGlicGF0aC5leHAgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWIvdGFyZ2V0LWxpYnBhdGguZXhwCmluZGV4IDg5OTlhYTQuLjZiN2JlYmEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYi90YXJnZXQtbGlicGF0aC5leHAKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliL3RhcmdldC1saWJwYXRoLmV4cApAQCAtMjUsNyArMjUsNyBAQAogc2V0IG9yaWdfbGRfbGlicmFyeV9wYXRoXzMyX3NhdmVkIDAKIHNldCBvcmlnX2xkX2xpYnJhcnlfcGF0aF82NF9zYXZlZCAwCiBzZXQgb3JpZ19keWxkX2xpYnJhcnlfcGF0aF9zYXZlZCAwCi0KK3NldCBvcmlnX3BhdGhfc2F2ZWQgMAogCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgcHJvYyBzZXRfbGRfbGlicmFyeV9wYXRoX2Vudl92YXJzIHsgfQpAQCAtNDIsNiArNDIsNyBAQAogICBnbG9iYWwgb3JpZ19sZF9saWJyYXJ5X3BhdGhfMzJfc2F2ZWQKICAgZ2xvYmFsIG9yaWdfbGRfbGlicmFyeV9wYXRoXzY0X3NhdmVkCiAgIGdsb2JhbCBvcmlnX2R5bGRfbGlicmFyeV9wYXRoX3NhdmVkCisgIGdsb2JhbCBvcmlnX3BhdGhfc2F2ZWQKICAgZ2xvYmFsIG9yaWdfbGRfbGlicmFyeV9wYXRoCiAgIGdsb2JhbCBvcmlnX2xkX3J1bl9wYXRoCiAgIGdsb2JhbCBvcmlnX3NobGliX3BhdGgKQEAgLTUwLDYgKzUxLDcgQEAKICAgZ2xvYmFsIG9yaWdfbGRfbGlicmFyeV9wYXRoXzMyCiAgIGdsb2JhbCBvcmlnX2xkX2xpYnJhcnlfcGF0aF82NAogICBnbG9iYWwgb3JpZ19keWxkX2xpYnJhcnlfcGF0aAorICBnbG9iYWwgb3JpZ19wYXRoCiAgIGdsb2JhbCBHQ0NfRVhFQ19QUkVGSVgKIAogICAjIFNldCB0aGUgcmVsb2NhdGVkIGNvbXBpbGVyIHByZWZpeCwgYnV0IG9ubHkgaWYgdGhlIHVzZXIgaGFzbid0IHNwZWNpZmllZCBvbmUuCkBAIC0xMDAsNiArMTAyLDEwIEBACiAgICAgICBzZXQgb3JpZ19keWxkX2xpYnJhcnlfcGF0aCAiJGVudihEWUxEX0xJQlJBUllfUEFUSCkiCiAgICAgICBzZXQgb3JpZ19keWxkX2xpYnJhcnlfcGF0aF9zYXZlZCAxCiAgICAgfQorICAgIGlmIFtpbmZvIGV4aXN0cyBlbnYoUEFUSCldIHsKKyAgICAgIHNldCBvcmlnX3BhdGggIiRlbnYoUEFUSCkiCisgICAgICBzZXQgb3JpZ19wYXRoX3NhdmVkIDEKKyAgICB9CiAgIH0KIAogICAjIFdlIG5lZWQgdG8gc2V0IGxkIGxpYnJhcnkgcGF0aCBpbiB0aGUgZW52aXJvbm1lbnQuICBDdXJyZW50bHksCkBAIC0xNjksNiArMTc1LDEzIEBACiAgIH0gZWxzZSB7CiAgICAgc2V0ZW52IERZTERfTElCUkFSWV9QQVRIICIkbGRfbGlicmFyeV9wYXRoIgogICB9CisgIGlmIHsgW2lzdGFyZ2V0ICotKi1jeWd3aW4qXSB8fCBbaXN0YXJnZXQgKi0qLW1pbmd3Kl0gfSB7CisgICAgaWYgeyAkb3JpZ19wYXRoX3NhdmVkIH0geworICAgICAgc2V0ZW52IFBBVEggIiRsZF9saWJyYXJ5X3BhdGg6JG9yaWdfcGF0aCIKKyAgICB9IGVsc2UgeworICAgICAgc2V0ZW52IFBBVEggIiRsZF9saWJyYXJ5X3BhdGgiCisgICAgfQorICB9CiAKICAgdmVyYm9zZSAtbG9nICJzZXRfbGRfbGlicmFyeV9wYXRoX2Vudl92YXJzOiBsZF9saWJyYXJ5X3BhdGg9JGxkX2xpYnJhcnlfcGF0aCIKIH0KQEAgLTE4Nyw2ICsyMDAsNyBAQAogICBnbG9iYWwgb3JpZ19sZF9saWJyYXJ5X3BhdGhfMzJfc2F2ZWQKICAgZ2xvYmFsIG9yaWdfbGRfbGlicmFyeV9wYXRoXzY0X3NhdmVkCiAgIGdsb2JhbCBvcmlnX2R5bGRfbGlicmFyeV9wYXRoX3NhdmVkCisgIGdsb2JhbCBvcmlnX3BhdGhfc2F2ZWQKICAgZ2xvYmFsIG9yaWdfbGRfbGlicmFyeV9wYXRoCiAgIGdsb2JhbCBvcmlnX2xkX3J1bl9wYXRoCiAgIGdsb2JhbCBvcmlnX3NobGliX3BhdGgKQEAgLTE5NSw2ICsyMDksNyBAQAogICBnbG9iYWwgb3JpZ19sZF9saWJyYXJ5X3BhdGhfMzIKICAgZ2xvYmFsIG9yaWdfbGRfbGlicmFyeV9wYXRoXzY0CiAgIGdsb2JhbCBvcmlnX2R5bGRfbGlicmFyeV9wYXRoCisgIGdsb2JhbCBvcmlnX3BhdGgKIAogICBpZiB7ICRvcmlnX2Vudmlyb25tZW50X3NhdmVkID09IDAgfSB7CiAgICAgcmV0dXJuCkBAIC0yNDAsNiArMjU1LDExIEBACiAgIH0gZWxzZWlmIFtpbmZvIGV4aXN0cyBlbnYoRFlMRF9MSUJSQVJZX1BBVEgpXSB7CiAgICAgdW5zZXRlbnYgRFlMRF9MSUJSQVJZX1BBVEgKICAgfQorICBpZiB7ICRvcmlnX3BhdGhfc2F2ZWQgfSB7CisgICAgc2V0ZW52IFBBVEggIiRvcmlnX3BhdGgiCisgIH0gZWxzZWlmIFtpbmZvIGV4aXN0cyBlbnYoUEFUSCldIHsKKyAgICB1bnNldGVudiBQQVRICisgIH0KIH0KIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9hLm91dCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Eub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkzZWU4NWIKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9hLm91dApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jYWxsLmV4cCBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2NhbGwuZXhwCmluZGV4IDFlOTk4NWUuLjI2YWNkODEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2NhbGwuZXhwCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2NhbGwuZXhwCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisjIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIAogIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMTQsMTAgKzE0LDYgQEAKICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICMgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogCi0jIGxpYmZmaSB0ZXN0c3VpdGUgdGhhdCB1c2VzIHRoZSAnZGcuZXhwJyBkcml2ZXIuCi0KLWxvYWRfbGliIGxpYmZmaS1kZy5leHAKLQogZGctaW5pdAogbGliZmZpLWluaXQKIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xvc3VyZV9zdGRjYWxsLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbG9zdXJlX3N0ZGNhbGwuYwppbmRleCA2YmZjYzFmLi4xNDA3ZjAyIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbG9zdXJlX3N0ZGNhbGwuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbG9zdXJlX3N0ZGNhbGwuYwpAQCAtNDksOSArNDksMTcgQEAKICAgQ0hFQ0soZmZpX3ByZXBfY2xvc3VyZV9sb2MocGNsLCAmY2lmLCBjbG9zdXJlX3Rlc3Rfc3RkY2FsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgMyAvKiB1c2VyZGF0YSAqLywgY29kZSkgPT0gRkZJX09LKTsKIAorI2lmZGVmIF9NU0NfVkVSCisgIF9fYXNtIHsgbW92IHNwX3ByZSwgZXNwIH0KKyNlbHNlCiAgIGFzbSB2b2xhdGlsZSAoIiBtb3ZsICUlZXNwLCUwIiA6ICI9ZyIgKHNwX3ByZSkpOworI2VuZGlmCiAgIHJlcyA9ICgqKGNsb3N1cmVfdGVzdF90eXBlMCljb2RlKSgwLCAxLCAyLCAzKTsKKyNpZmRlZiBfTVNDX1ZFUgorICBfX2FzbSB7IG1vdiBzcF9wb3N0LCBlc3AgfQorI2Vsc2UKICAgYXNtIHZvbGF0aWxlICgiIG1vdmwgJSVlc3AsJTAiIDogIj1nIiAoc3BfcG9zdCkpOworI2VuZGlmCiAgIC8qIHsgZGctb3V0cHV0ICIwIDEgMiAzOiA5IiB9ICovCiAKICAgcHJpbnRmKCJyZXM6ICVkXG4iLHJlcyk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbG9zdXJlX3RoaXNjYWxsLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbG9zdXJlX3RoaXNjYWxsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGY5MzY0OQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsb3N1cmVfdGhpc2NhbGwuYwpAQCAtMCwwICsxLDcyIEBACisvKiBBcmVhOgljbG9zdXJlX2NhbGwgKHRoaXNjYWxsIGNvbnZlbnRpb24pCisgICBQdXJwb3NlOglDaGVjayBoYW5kbGluZyB3aGVuIGNhbGxlciBleHBlY3RzIHRoaXNjYWxsIGNhbGxlZQorICAgTGltaXRhdGlvbnM6CW5vbmUuCisgICBQUjoJCW5vbmUuCisgICBPcmlnaW5hdG9yOgk8a3RpZXR6QHJlZGhhdC5jb20+ICovCisKKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IGk/ODYtKi1jeWd3aW4qIGk/ODYtKi1taW5ndyogfSB9ICovCisjaW5jbHVkZSAiZmZpdGVzdC5oIgorCitzdGF0aWMgdm9pZAorY2xvc3VyZV90ZXN0X3RoaXNjYWxsKGZmaV9jaWYqIGNpZiBfX1VOVVNFRF9fLCB2b2lkKiByZXNwLCB2b2lkKiogYXJncywKKwkJICAgICAgdm9pZCogdXNlcmRhdGEpCit7CisgICooZmZpX2FyZyopcmVzcCA9CisgICAgKGludCkqKGludCAqKWFyZ3NbMF0gKyAoaW50KSgqKGludCAqKWFyZ3NbMV0pCisgICAgKyAoaW50KSgqKGludCAqKWFyZ3NbMl0pICArIChpbnQpKCooaW50ICopYXJnc1szXSkKKyAgICArIChpbnQpKGludHB0cl90KXVzZXJkYXRhOworCisgIHByaW50ZigiJWQgJWQgJWQgJWQ6ICVkXG4iLAorCSAoaW50KSooaW50ICopYXJnc1swXSwgKGludCkoKihpbnQgKilhcmdzWzFdKSwKKwkgKGludCkoKihpbnQgKilhcmdzWzJdKSwgKGludCkoKihpbnQgKilhcmdzWzNdKSwKKyAgICAgICAgIChpbnQpKihmZmlfYXJnICopcmVzcCk7CisKK30KKwordHlwZWRlZiBpbnQgKF9fdGhpc2NhbGwgKmNsb3N1cmVfdGVzdF90eXBlMCkoaW50LCBpbnQsIGludCwgaW50KTsKKworaW50IG1haW4gKHZvaWQpCit7CisgIGZmaV9jaWYgY2lmOworICB2b2lkICpjb2RlOworICBmZmlfY2xvc3VyZSAqcGNsID0gZmZpX2Nsb3N1cmVfYWxsb2Moc2l6ZW9mKGZmaV9jbG9zdXJlKSwgJmNvZGUpOworICBmZmlfdHlwZSAqIGNsX2FyZ190eXBlc1sxN107CisgIGludCByZXM7CisgIHZvaWQqIHNwX3ByZTsKKyAgdm9pZCogc3BfcG9zdDsKKyAgY2hhciBidWZbMTAyNF07CisKKyAgY2xfYXJnX3R5cGVzWzBdID0gJmZmaV90eXBlX3VpbnQ7CisgIGNsX2FyZ190eXBlc1sxXSA9ICZmZmlfdHlwZV91aW50OworICBjbF9hcmdfdHlwZXNbMl0gPSAmZmZpX3R5cGVfdWludDsKKyAgY2xfYXJnX3R5cGVzWzNdID0gJmZmaV90eXBlX3VpbnQ7CisgIGNsX2FyZ190eXBlc1s0XSA9IE5VTEw7CisKKyAgLyogSW5pdGlhbGl6ZSB0aGUgY2lmICovCisgIENIRUNLKGZmaV9wcmVwX2NpZigmY2lmLCBGRklfVEhJU0NBTEwsIDQsCisJCSAgICAgJmZmaV90eXBlX3NpbnQsIGNsX2FyZ190eXBlcykgPT0gRkZJX09LKTsKKworICBDSEVDSyhmZmlfcHJlcF9jbG9zdXJlX2xvYyhwY2wsICZjaWYsIGNsb3N1cmVfdGVzdF90aGlzY2FsbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikgMyAvKiB1c2VyZGF0YSAqLywgY29kZSkgPT0gRkZJX09LKTsKKworI2lmZGVmIF9NU0NfVkVSCisgIF9fYXNtIHsgbW92IHNwX3ByZSwgZXNwIH0KKyNlbHNlCisgIGFzbSB2b2xhdGlsZSAoIiBtb3ZsICUlZXNwLCUwIiA6ICI9ZyIgKHNwX3ByZSkpOworI2VuZGlmCisgIHJlcyA9ICgqKGNsb3N1cmVfdGVzdF90eXBlMCljb2RlKSgwLCAxLCAyLCAzKTsKKyNpZmRlZiBfTVNDX1ZFUgorICBfX2FzbSB7IG1vdiBzcF9wb3N0LCBlc3AgfQorI2Vsc2UKKyAgYXNtIHZvbGF0aWxlICgiIG1vdmwgJSVlc3AsJTAiIDogIj1nIiAoc3BfcG9zdCkpOworI2VuZGlmCisgIC8qIHsgZGctb3V0cHV0ICIwIDEgMiAzOiA5IiB9ICovCisKKyAgcHJpbnRmKCJyZXM6ICVkXG4iLHJlcyk7CisgIC8qIHsgZGctb3V0cHV0ICJcbnJlczogOSIgfSAqLworCisgIHNwcmludGYoYnVmLCAibWlzbWF0Y2g6IHByZT0lcCB2cyBwb3N0PSVwIiwgc3BfcHJlLCBzcF9wb3N0KTsKKyAgcHJpbnRmKCJzdGFjayBwb2ludGVyICVzXG4iLCAoc3BfcHJlID09IHNwX3Bvc3QgPyAibWF0Y2giIDogYnVmKSk7CisgIC8qIHsgZGctb3V0cHV0ICJcbnN0YWNrIHBvaW50ZXIgbWF0Y2giIH0gKi8KKyAgZXhpdCgwKTsKK30KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xMmJ5dGUuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xMmJ5dGUuYwppbmRleCBmMGEzMzRmLi5lYTA4MjVkIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTJieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzEyYnl0ZS5jCkBAIC00OSwxNSArNDksMTUgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF8xMmJ5dGUgaF9kYmwgPSB7IDcsIDQsIDkgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfMTJieXRlIGpfZGJsID0geyAxLCA1LCAzIH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzEyYnl0ZSByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF8xMmJ5dGUgaF9kYmwgPSB7IDcsIDQsIDkgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMTJieXRlIGpfZGJsID0geyAxLCA1LCAzIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzEyYnl0ZSByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3NpbnQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3NpbnQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX3NpbnQ7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTZieXRlLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTZieXRlLmMKaW5kZXggOWI5MjkyYS4uODlhMDhhMiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzE2Ynl0ZS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xNmJ5dGUuYwpAQCAtNTAsMTUgKzUwLDE1IEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZTsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKKyAgc3RydWN0IGNsc19zdHJ1Y3RfMTZieXRlIGhfZGJsID0geyA3LCA4LjAsIDkgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfMTZieXRlIGpfZGJsID0geyAxLCA5LjAsIDMgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfMTZieXRlIHJlc19kYmw7CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwogCi0gIHN0cnVjdCBjbHNfc3RydWN0XzE2Ynl0ZSBoX2RibCA9IHsgNywgOC4wLCA5IH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzE2Ynl0ZSBqX2RibCA9IHsgMSwgOS4wLCAzIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzE2Ynl0ZSByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3NpbnQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX2RvdWJsZTsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSAmZmZpX3R5cGVfc2ludDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xOGJ5dGUuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xOGJ5dGUuYwppbmRleCA0MGM4YzZkLi45Zjc1ZGE4IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMThieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzE4Ynl0ZS5jCkBAIC01NCwxNSArNTQsMTUgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1szXTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF8xOGJ5dGUgZ19kYmwgPSB7IDEuMCwgMTI3LCAxMjYsIDMuMCB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8xOGJ5dGUgZl9kYmwgPSB7IDQuMCwgMTI1LCAxMjQsIDUuMCB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8xOGJ5dGUgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMThieXRlIGdfZGJsID0geyAxLjAsIDEyNywgMTI2LCAzLjAgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMThieXRlIGZfZGJsID0geyA0LjAsIDEyNSwgMTI0LCA1LjAgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMThieXRlIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfZG91YmxlOwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSAmZmZpX3R5cGVfdWNoYXI7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTlieXRlLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMTlieXRlLmMKaW5kZXggYWE2NDI0OC4uMjc4Nzk0YiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzE5Ynl0ZS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xOWJ5dGUuYwpAQCAtNTcsMTUgKzU3LDE1IEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZTsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbM107CiAKKyAgc3RydWN0IGNsc19zdHJ1Y3RfMTlieXRlIGdfZGJsID0geyAxLjAsIDEyNywgMTI2LCAzLjAsIDEyMCB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8xOWJ5dGUgZl9kYmwgPSB7IDQuMCwgMTI1LCAxMjQsIDUuMCwgMTE5IH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzE5Ynl0ZSByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF8xOWJ5dGUgZ19kYmwgPSB7IDEuMCwgMTI3LCAxMjYsIDMuMCwgMTIwIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzE5Ynl0ZSBmX2RibCA9IHsgNC4wLCAxMjUsIDEyNCwgNS4wLCAxMTkgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMTlieXRlIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfZG91YmxlOwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSAmZmZpX3R5cGVfdWNoYXI7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMV8xYnl0ZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzFfMWJ5dGUuYwppbmRleCBiOTQwMmQ2Li44MjQ5MmMwIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMV8xYnl0ZS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18xXzFieXRlLmMKQEAgLTUwLDE1ICs1MCwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzFfMWJ5dGUgZ19kYmwgPSB7IDEyIH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzFfMWJ5dGUgZl9kYmwgPSB7IDE3OCB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8xXzFieXRlIHJlc19kYmw7CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwogCi0gIHN0cnVjdCBjbHNfc3RydWN0XzFfMWJ5dGUgZ19kYmwgPSB7IDEyIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzFfMWJ5dGUgZl9kYmwgPSB7IDE3OCB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF8xXzFieXRlIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gTlVMTDsKIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzIwYnl0ZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzIwYnl0ZS5jCmluZGV4IDgwZGQ3YWMuLjNmOGJiMjggMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18yMGJ5dGUuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMjBieXRlLmMKQEAgLTUwLDE1ICs1MCwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzIwYnl0ZSBnX2RibCA9IHsgMS4wLCAyLjAsIDMgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfMjBieXRlIGZfZGJsID0geyA0LjAsIDUuMCwgNyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8yMGJ5dGUgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMjBieXRlIGdfZGJsID0geyAxLjAsIDIuMCwgMyB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF8yMGJ5dGUgZl9kYmwgPSB7IDQuMCwgNS4wLCA3IH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzIwYnl0ZSByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX2RvdWJsZTsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfZG91YmxlOwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV9zaW50OwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzIwYnl0ZTEuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18yMGJ5dGUxLmMKaW5kZXggNTBiY2JiZi4uNjU2MjcyNyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzIwYnl0ZTEuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMjBieXRlMS5jCkBAIC01MiwxNSArNTIsMTUgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1szXTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF8yMGJ5dGUgZ19kYmwgPSB7IDEsIDIuMCwgMy4wIH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzIwYnl0ZSBmX2RibCA9IHsgNCwgNS4wLCA3LjAgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfMjBieXRlIHJlc19kYmw7CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwogCi0gIHN0cnVjdCBjbHNfc3RydWN0XzIwYnl0ZSBnX2RibCA9IHsgMSwgMi4wLCAzLjAgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMjBieXRlIGZfZGJsID0geyA0LCA1LjAsIDcuMCB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF8yMGJ5dGUgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV9zaW50OwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV9kb3VibGU7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX2RvdWJsZTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18yNGJ5dGUuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18yNGJ5dGUuYwppbmRleCA0NmE2ZWI0Li4xZDgyZjZlIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfMjRieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzI0Ynl0ZS5jCkBAIC02MSwxNyArNjEsMTcgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAotICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7Ci0gIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwotICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKLSAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7Ci0KICAgc3RydWN0IGNsc19zdHJ1Y3RfMjRieXRlIGVfZGJsID0geyA5LjAsIDIuMCwgNiwgNS4wIH07CiAgIHN0cnVjdCBjbHNfc3RydWN0XzI0Ynl0ZSBmX2RibCA9IHsgMS4wLCAyLjAsIDMsIDcuMCB9OwogICBzdHJ1Y3QgY2xzX3N0cnVjdF8yNGJ5dGUgZ19kYmwgPSB7IDQuMCwgNS4wLCA3LCA5LjAgfTsKICAgc3RydWN0IGNsc19zdHJ1Y3RfMjRieXRlIGhfZGJsID0geyA4LjAsIDYuMCwgMSwgNC4wIH07CiAgIHN0cnVjdCBjbHNfc3RydWN0XzI0Ynl0ZSByZXNfZGJsOwogCisgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKKyAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CisgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOworICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKKwogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV9kb3VibGU7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX2RvdWJsZTsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSAmZmZpX3R5cGVfc2ludDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18yYnl0ZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzJieXRlLmMKaW5kZXggMTAxZTEzMC4uODFiYjBhNiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzJieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzJieXRlLmMKQEAgLTUwLDE1ICs1MCwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzJieXRlIGdfZGJsID0geyAxMiwgMTI3IH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzJieXRlIGZfZGJsID0geyAxLCAxMyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8yYnl0ZSByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF8yYnl0ZSBnX2RibCA9IHsgMTIsIDEyNyB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF8yYnl0ZSBmX2RibCA9IHsgMSwgMTMgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMmJ5dGUgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gTlVMTDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18zXzFieXRlLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfM18xYnl0ZS5jCmluZGV4IGZjNzgwYzMuLmI3ODI3NDYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18zXzFieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzNfMWJ5dGUuYwpAQCAtNTQsMTUgKzU0LDE1IEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZTsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKKyAgc3RydWN0IGNsc19zdHJ1Y3RfM18xYnl0ZSBnX2RibCA9IHsgMTIsIDEzLCAxNCB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8zXzFieXRlIGZfZGJsID0geyAxNzgsIDE3OSwgMTgwIH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzNfMWJ5dGUgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfM18xYnl0ZSBnX2RibCA9IHsgMTIsIDEzLCAxNCB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF8zXzFieXRlIGZfZGJsID0geyAxNzgsIDE3OSwgMTgwIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzNfMWJ5dGUgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX3VjaGFyOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzNieXRlMS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzNieXRlMS5jCmluZGV4IDU3MDVjZTMuLmEwMmM0NjMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18zYnl0ZTEuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfM2J5dGUxLmMKQEAgLTUwLDE1ICs1MCwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzNieXRlIGdfZGJsID0geyAxMiwgMTE5IH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzNieXRlIGZfZGJsID0geyAxLCAxNSB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8zYnl0ZSByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF8zYnl0ZSBnX2RibCA9IHsgMTIsIDExOSB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF8zYnl0ZSBmX2RibCA9IHsgMSwgMTUgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfM2J5dGUgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91c2hvcnQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9IE5VTEw7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfM2J5dGUyLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfM2J5dGUyLmMKaW5kZXggMDE3NzBhMC4uYzcyNTFjZSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzNieXRlMi5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc18zYnl0ZTIuYwpAQCAtNTAsMTUgKzUwLDE1IEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZTsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKKyAgc3RydWN0IGNsc19zdHJ1Y3RfM2J5dGVfMSBnX2RibCA9IHsgMTUsIDEyNSB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8zYnl0ZV8xIGZfZGJsID0geyA5LCAxOSB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8zYnl0ZV8xIHJlc19kYmw7CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwogCi0gIHN0cnVjdCBjbHNfc3RydWN0XzNieXRlXzEgZ19kYmwgPSB7IDE1LCAxMjUgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfM2J5dGVfMSBmX2RibCA9IHsgOSwgMTkgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfM2J5dGVfMSByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV91c2hvcnQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gTlVMTDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc180XzFieXRlLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNF8xYnl0ZS5jCmluZGV4IGYzODA2ZDcuLjJkNmQ4YjYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc180XzFieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzRfMWJ5dGUuYwpAQCAtNTYsMTUgKzU2LDE1IEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZTsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKKyAgc3RydWN0IGNsc19zdHJ1Y3RfNF8xYnl0ZSBnX2RibCA9IHsgMTIsIDEzLCAxNCwgMTUgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfNF8xYnl0ZSBmX2RibCA9IHsgMTc4LCAxNzksIDE4MCwgMTgxIH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzRfMWJ5dGUgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfNF8xYnl0ZSBnX2RibCA9IHsgMTIsIDEzLCAxNCwgMTUgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfNF8xYnl0ZSBmX2RibCA9IHsgMTc4LCAxNzksIDE4MCwgMTgxIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzRfMWJ5dGUgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX3VjaGFyOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzRieXRlLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNGJ5dGUuYwppbmRleCBhMWFiYTNjLi40YWMzNzg3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNGJ5dGUuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNGJ5dGUuYwpAQCAtNTAsMTUgKzUwLDE1IEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZTsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKKyAgc3RydWN0IGNsc19zdHJ1Y3RfNGJ5dGUgZ19kYmwgPSB7IDEyNywgMTIwIH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzRieXRlIGZfZGJsID0geyAxMiwgMTI4IH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzRieXRlIHJlc19kYmw7CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwogCi0gIHN0cnVjdCBjbHNfc3RydWN0XzRieXRlIGdfZGJsID0geyAxMjcsIDEyMCB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF80Ynl0ZSBmX2RibCA9IHsgMTIsIDEyOCB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF80Ynl0ZSByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3VzaG9ydDsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfdXNob3J0OwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9IE5VTEw7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNV8xX2J5dGUuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc181XzFfYnl0ZS5jCmluZGV4IDJjZWJhM2QuLmFkOWQ1MWMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc181XzFfYnl0ZS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc181XzFfYnl0ZS5jCkBAIC01OCwxNSArNTgsMTUgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF81Ynl0ZSBnX2RibCA9IHsgMTI3LCAxMjAsIDEsIDMsIDQgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfNWJ5dGUgZl9kYmwgPSB7IDEyLCAxMjgsIDksIDMsIDQgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfNWJ5dGUgcmVzX2RibCA9IHsgMCwgMCwgMCwgMCwgMCB9OworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF81Ynl0ZSBnX2RibCA9IHsgMTI3LCAxMjAsIDEsIDMsIDQgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfNWJ5dGUgZl9kYmwgPSB7IDEyLCAxMjgsIDksIDMsIDQgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfNWJ5dGUgcmVzX2RibCA9IHsgMCwgMCwgMCwgMCwgMCB9OwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSAmZmZpX3R5cGVfdWNoYXI7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNWJ5dGUuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc181Ynl0ZS5jCmluZGV4IDYxZDU5NWMuLjRlMGMwMDAgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc181Ynl0ZS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc181Ynl0ZS5jCkBAIC01MywxNSArNTMsMTUgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF81Ynl0ZSBnX2RibCA9IHsgMTI3LCAxMjAsIDEgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfNWJ5dGUgZl9kYmwgPSB7IDEyLCAxMjgsIDkgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfNWJ5dGUgcmVzX2RibCA9IHsgMCwgMCwgMCB9OworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF81Ynl0ZSBnX2RibCA9IHsgMTI3LCAxMjAsIDEgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfNWJ5dGUgZl9kYmwgPSB7IDEyLCAxMjgsIDkgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfNWJ5dGUgcmVzX2RibCA9IHsgMCwgMCwgMCB9OwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3VzaG9ydDsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfdXNob3J0OwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV91Y2hhcjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc182NGJ5dGUuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc182NGJ5dGUuYwppbmRleCA1NzZlYmUwLi5hNTVlZGMyIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfNjRieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzY0Ynl0ZS5jCkBAIC02NiwxNyArNjYsMTcgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAotICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7Ci0gIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwotICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKLSAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7Ci0KICAgc3RydWN0IGNsc19zdHJ1Y3RfNjRieXRlIGVfZGJsID0geyA5LjAsIDIuMCwgNi4wLCA1LjAsIDMuMCwgNC4wLCA4LjAsIDEuMCB9OwogICBzdHJ1Y3QgY2xzX3N0cnVjdF82NGJ5dGUgZl9kYmwgPSB7IDEuMCwgMi4wLCAzLjAsIDcuMCwgMi4wLCA1LjAsIDYuMCwgNy4wIH07CiAgIHN0cnVjdCBjbHNfc3RydWN0XzY0Ynl0ZSBnX2RibCA9IHsgNC4wLCA1LjAsIDcuMCwgOS4wLCAxLjAsIDEuMCwgMi4wLCA5LjAgfTsKICAgc3RydWN0IGNsc19zdHJ1Y3RfNjRieXRlIGhfZGJsID0geyA4LjAsIDYuMCwgMS4wLCA0LjAsIDAuMCwgMy4wLCAzLjAsIDEuMCB9OwogICBzdHJ1Y3QgY2xzX3N0cnVjdF82NGJ5dGUgcmVzX2RibDsKIAorICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CisgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOworICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKKyAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CisKICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfZG91YmxlOwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV9kb3VibGU7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX2RvdWJsZTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc182XzFfYnl0ZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzZfMV9ieXRlLmMKaW5kZXggOWYyZWZmNi4uYjRkY2RiYSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzZfMV9ieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzZfMV9ieXRlLmMKQEAgLTYwLDE1ICs2MCwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzZieXRlIGdfZGJsID0geyAxMjcsIDEyMCwgMSwgMywgNCwgNSB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF82Ynl0ZSBmX2RibCA9IHsgMTIsIDEyOCwgOSwgMywgNCwgNSB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF82Ynl0ZSByZXNfZGJsID0geyAwLCAwLCAwLCAwLCAwLCAwIH07CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwogCi0gIHN0cnVjdCBjbHNfc3RydWN0XzZieXRlIGdfZGJsID0geyAxMjcsIDEyMCwgMSwgMywgNCwgNSB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF82Ynl0ZSBmX2RibCA9IHsgMTIsIDEyOCwgOSwgMywgNCwgNSB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF82Ynl0ZSByZXNfZGJsID0geyAwLCAwLCAwLCAwLCAwLCAwIH07Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV91Y2hhcjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc182Ynl0ZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzZieXRlLmMKaW5kZXggNzMyNTdiMC4uNzQwNjc4MCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzZieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzZieXRlLmMKQEAgLTU2LDE1ICs1NiwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzZieXRlIGdfZGJsID0geyAxMjcsIDEyMCwgMSwgMTI4IH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzZieXRlIGZfZGJsID0geyAxMiwgMTI4LCA5LCAxMjcgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfNmJ5dGUgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfNmJ5dGUgZ19kYmwgPSB7IDEyNywgMTIwLCAxLCAxMjggfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfNmJ5dGUgZl9kYmwgPSB7IDEyLCAxMjgsIDksIDEyNyB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF82Ynl0ZSByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3VzaG9ydDsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfdXNob3J0OwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV91Y2hhcjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc183XzFfYnl0ZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzdfMV9ieXRlLmMKaW5kZXggNTBkMDljOS4uMTRhN2U5NiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzdfMV9ieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzdfMV9ieXRlLmMKQEAgLTYyLDE1ICs2MiwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzdieXRlIGdfZGJsID0geyAxMjcsIDEyMCwgMSwgMywgNCwgNSwgNiB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF83Ynl0ZSBmX2RibCA9IHsgMTIsIDEyOCwgOSwgMywgNCwgNSwgNiB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF83Ynl0ZSByZXNfZGJsID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwIH07CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwogCi0gIHN0cnVjdCBjbHNfc3RydWN0XzdieXRlIGdfZGJsID0geyAxMjcsIDEyMCwgMSwgMywgNCwgNSwgNiB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF83Ynl0ZSBmX2RibCA9IHsgMTIsIDEyOCwgOSwgMywgNCwgNSwgNiB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF83Ynl0ZSByZXNfZGJsID0geyAwLCAwLCAwLCAwLCAwLCAwLCAwIH07Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV91Y2hhcjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc183Ynl0ZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzdieXRlLmMKaW5kZXggZjVjMDAwMC4uMTY0NWNjNiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzdieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzdieXRlLmMKQEAgLTU1LDE1ICs1NSwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzdieXRlIGdfZGJsID0geyAxMjcsIDEyMCwgMSwgMjU0IH07CisgIHN0cnVjdCBjbHNfc3RydWN0XzdieXRlIGZfZGJsID0geyAxMiwgMTI4LCA5LCAyNTUgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfN2J5dGUgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfN2J5dGUgZ19kYmwgPSB7IDEyNywgMTIwLCAxLCAyNTQgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfN2J5dGUgZl9kYmwgPSB7IDEyLCAxMjgsIDksIDI1NSB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF83Ynl0ZSByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3VzaG9ydDsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfdXNob3J0OwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV91Y2hhcjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc184Ynl0ZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzhieXRlLmMKaW5kZXggNGFhOTlkMS4uZjZjMWVhNSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzhieXRlLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzhieXRlLmMKQEAgLTQ5LDE1ICs0OSwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzhieXRlIGdfZGJsID0geyAxLCAyLjAgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfOGJ5dGUgZl9kYmwgPSB7IDQsIDUuMCB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF84Ynl0ZSByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF84Ynl0ZSBnX2RibCA9IHsgMSwgMi4wIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzhieXRlIGZfZGJsID0geyA0LCA1LjAgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfOGJ5dGUgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV9zaW50OwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV9mbG9hdDsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSBOVUxMOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzlieXRlMS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzlieXRlMS5jCmluZGV4IGNjNWU5ZDYuLjBiODU3MjIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc185Ynl0ZTEuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfOWJ5dGUxLmMKQEAgLTUwLDE1ICs1MCwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzNdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzlieXRlIGhfZGJsID0geyA3LCA4LjB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF85Ynl0ZSBqX2RibCA9IHsgMSwgOS4wfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfOWJ5dGUgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfOWJ5dGUgaF9kYmwgPSB7IDcsIDguMH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzlieXRlIGpfZGJsID0geyAxLCA5LjB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF85Ynl0ZSByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3NpbnQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX2RvdWJsZTsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSBOVUxMOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzlieXRlMi5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzXzlieXRlMi5jCmluZGV4IDVjMGJhMGQuLmVkZjk5MWQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc185Ynl0ZTIuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfOWJ5dGUyLmMKQEAgLTUwLDE1ICs1MCwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzNdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0XzlieXRlIGhfZGJsID0geyA3LjAsIDh9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF85Ynl0ZSBqX2RibCA9IHsgMS4wLCA5fTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfOWJ5dGUgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfOWJ5dGUgaF9kYmwgPSB7IDcuMCwgOH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzlieXRlIGpfZGJsID0geyAxLjAsIDl9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF85Ynl0ZSByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX2RvdWJsZTsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfc2ludDsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSBOVUxMOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2RvdWJsZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2RvdWJsZS5jCmluZGV4IDIyYjk0ZDUuLmFhZDVmM2MgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9kb3VibGUuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fZG91YmxlLmMKQEAgLTUyLDE1ICs1MiwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGdfZGJsID0geyAxMiwgNDk1MSwgMTI3IH07CisgIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGZfZGJsID0geyAxLCA5MzIwLCAxMyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMTIsIDQ5NTEsIDEyNyB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgMSwgOTMyMCwgMTMgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfZG91YmxlOwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV91Y2hhcjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9mbG9hdC5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2Zsb2F0LmMKaW5kZXggNjI2MzdmMi4uMzdlMDg1NSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2Zsb2F0LmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2Zsb2F0LmMKQEAgLTUwLDE1ICs1MCwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGdfZGJsID0geyAxMiwgNDk1MSwgMTI3IH07CisgIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGZfZGJsID0geyAxLCA5MzIwLCAxMyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMTIsIDQ5NTEsIDEyNyB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgMSwgOTMyMCwgMTMgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfZmxvYXQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX3VjaGFyOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGUuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlLmMKaW5kZXggYWYzODA2MC4uYjMzMjJkOCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGUuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fbG9uZ2RvdWJsZS5jCkBAIC01MSwxNSArNTEsMTUgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMTIsIDQ5NTEsIDEyNyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgMSwgOTMyMCwgMTMgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZ19kYmwgPSB7IDEyLCA0OTUxLCAxMjcgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZl9kYmwgPSB7IDEsIDkzMjAsIDEzIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX2xvbmdkb3VibGU7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX3VjaGFyOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGVfc3BsaXQuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9sb25nZG91YmxlX3NwbGl0LmMKaW5kZXggNDI3NGFmMS4uMTVmOTM2NSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGVfc3BsaXQuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fbG9uZ2RvdWJsZV9zcGxpdC5jCkBAIC02LDcgKzYsNyBAQAogCiAvKiB7IGRnLWV4Y2Vzcy1lcnJvcnMgIm5vIGxvbmcgZG91YmxlIGZvcm1hdCIgeyB4ZmFpbCB4ODZfNjQtKi1taW5ndyogeDg2XzY0LSotY3lnd2luKiB9IH0gKi8KIC8qIHsgZGctZG8gcnVuIHsgeGZhaWwgc3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgLW1sb25nLWRvdWJsZS0xMjggeyB0YXJnZXQgcG93ZXJwYzY0Ki0qLSogfSB9ICovCisvKiB7IGRnLW9wdGlvbnMgLW1sb25nLWRvdWJsZS0xMjggeyB0YXJnZXQgcG93ZXJwYzY0Ki0qLWxpbnV4KiB9IH0gKi8KIC8qIHsgZGctb3V0cHV0ICIiIHsgeGZhaWwgeDg2XzY0LSotbWluZ3cqIHg4Nl82NC0qLWN5Z3dpbiogfSB9ICovCiAKICNpbmNsdWRlICJmZml0ZXN0LmgiCkBAIC04NywxNSArODcsMTUgQEAKIAlmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAJZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbM107CiAKKwlzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMSwgMiwgMywgNCwgNSwgNiwgNyB9OworCXN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGZfZGJsID0geyA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQgfTsKKwlzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiByZXNfZGJsOworCiAJY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogCWNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogCWNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogCWNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwogCi0Jc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZ19kYmwgPSB7IDEsIDIsIDMsIDQsIDUsIDYsIDcgfTsKLQlzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0IH07Ci0Jc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKLQogCWNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX2xvbmdkb3VibGU7CiAJY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfbG9uZ2RvdWJsZTsKIAljbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV9sb25nZG91YmxlOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX2xvbmdkb3VibGVfc3BsaXQyLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fbG9uZ2RvdWJsZV9zcGxpdDIuYwppbmRleCAwODhmMGQzLi5jYTFjMzU2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fbG9uZ2RvdWJsZV9zcGxpdDIuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fbG9uZ2RvdWJsZV9zcGxpdDIuYwpAQCAtNyw3ICs3LDcgQEAKIAogLyogeyBkZy1leGNlc3MtZXJyb3JzICJubyBsb25nIGRvdWJsZSBmb3JtYXQiIHsgeGZhaWwgeDg2XzY0LSotbWluZ3cqIHg4Nl82NC0qLWN5Z3dpbiogfSB9ICovCiAvKiB7IGRnLWRvIHJ1biB7IHhmYWlsIHN0cm9uZ2FybSotKi0qIH0gfSAqLwotLyogeyBkZy1vcHRpb25zIC1tbG9uZy1kb3VibGUtMTI4IHsgdGFyZ2V0IHBvd2VycGM2NCotKi0qIH0gfSAqLworLyogeyBkZy1vcHRpb25zIC1tbG9uZy1kb3VibGUtMTI4IHsgdGFyZ2V0IHBvd2VycGM2NCotKi1saW51eCogfSB9ICovCiAvKiB7IGRnLW91dHB1dCAiIiB7IHhmYWlsIHg4Nl82NC0qLW1pbmd3KiB4ODZfNjQtKi1jeWd3aW4qIH0gfSAqLwogCiAjaW5jbHVkZSAiZmZpdGVzdC5oIgpAQCAtNjcsMTUgKzY3LDE1IEBACiAJZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogCWZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzNdOwogCisJc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZ19kYmwgPSB7IDEsIDIsIDMsIDQsIDUsIDYsIDcgfTsKKwlzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0IH07CisJc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKKwogCWNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKIAljbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKIAljbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKIAljbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotCXN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGdfZGJsID0geyAxLCAyLCAzLCA0LCA1LCA2LCA3IH07Ci0Jc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZl9kYmwgPSB7IDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCB9OwotCXN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHJlc19kYmw7Ci0KIAljbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV9sb25nZG91YmxlOwogCWNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX2xvbmdkb3VibGU7CiAJY2xzX3N0cnVjdF9maWVsZHNbMl0gPSAmZmZpX3R5cGVfbG9uZ2RvdWJsZTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9wb2ludGVyLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fcG9pbnRlci5jCmluZGV4IGNiYzRmOTUuLjhmYmYzNmEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9wb2ludGVyLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3BvaW50ZXIuYwpAQCAtNTQsMTUgKzU0LDE1IEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZTsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKKyAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZ19kYmwgPSB7IDEyLCAodm9pZCAqKTQ5NTEsIDEyNyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgMSwgKHZvaWQgKik5MzIwLCAxMyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMTIsICh2b2lkICopNDk1MSwgMTI3IH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGZfZGJsID0geyAxLCAodm9pZCAqKTkzMjAsIDEzIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3BvaW50ZXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX3VjaGFyOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQxNi5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQxNi5jCmluZGV4IDM4M2VhNDEuLjAzOWI4NzQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50MTYuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDE2LmMKQEAgLTUwLDE1ICs1MCwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGdfZGJsID0geyAxMiwgNDk1MSwgMTI3IH07CisgIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGZfZGJsID0geyAxLCA5MzIwLCAxMyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMTIsIDQ5NTEsIDEyNyB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgMSwgOTMyMCwgMTMgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfc3Nob3J0OwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV91Y2hhcjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50MzIuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50MzIuYwppbmRleCA3MDVkNzhjLi5jOTZjNmQxIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDMyLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQzMi5jCkBAIC01MCwxNSArNTAsMTUgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMTIsIDQ5NTEsIDEyNyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgMSwgOTMyMCwgMTMgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZ19kYmwgPSB7IDEyLCA0OTUxLCAxMjcgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZl9kYmwgPSB7IDEsIDkzMjAsIDEzIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3NpbnQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX3VjaGFyOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQ2NC5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3NpbnQ2NC5jCmluZGV4IDMxZDUzYWYuLjlhYTdiZGQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl9zaW50NjQuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fc2ludDY0LmMKQEAgLTUxLDE1ICs1MSwxNSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCisgIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGdfZGJsID0geyAxMiwgNDk1MSwgMTI3IH07CisgIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGZfZGJsID0geyAxLCA5MzIwLCAxMyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMTIsIDQ5NTEsIDEyNyB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgMSwgOTMyMCwgMTMgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfc2ludDY0OwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV91Y2hhcjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50MTYuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50MTYuYwppbmRleCBjYjZiNzQ4Li45NzYyMGI3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDE2LmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQxNi5jCkBAIC01MCwxNSArNTAsMTUgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMTIsIDQ5NTEsIDEyNyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgMSwgOTMyMCwgMTMgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZ19kYmwgPSB7IDEyLCA0OTUxLCAxMjcgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZl9kYmwgPSB7IDEsIDkzMjAsIDEzIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3VzaG9ydDsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSAmZmZpX3R5cGVfdWNoYXI7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDMyLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDMyLmMKaW5kZXggZTQ1M2QzZS4uNTc2NmZhZCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQzMi5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50MzIuYwpAQCAtNTAsMTUgKzUwLDE1IEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZTsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKKyAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZ19kYmwgPSB7IDEyLCA0OTUxLCAxMjcgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZl9kYmwgPSB7IDEsIDkzMjAsIDEzIH07CisgIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHJlc19kYmw7CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwogCi0gIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGdfZGJsID0geyAxMiwgNDk1MSwgMTI3IH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIGZfZGJsID0geyAxLCA5MzIwLCAxMyB9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV91aW50OwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV91Y2hhcjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50NjQuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19hbGlnbl91aW50NjQuYwppbmRleCA0OTVjNzlmLi5hNTJjYjg5IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfYWxpZ25fdWludDY0LmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2FsaWduX3VpbnQ2NC5jCkBAIC01MiwxNSArNTIsMTUgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBnX2RibCA9IHsgMTIsIDQ5NTEsIDEyNyB9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9hbGlnbiBmX2RibCA9IHsgMSwgOTMyMCwgMTMgfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZ19kYmwgPSB7IDEyLCA0OTUxLCAxMjcgfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfYWxpZ24gZl9kYmwgPSB7IDEsIDkzMjAsIDEzIH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0X2FsaWduIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3VpbnQ2NDsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSAmZmZpX3R5cGVfdWNoYXI7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfZGJsc19zdHJ1Y3QuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19kYmxzX3N0cnVjdC5jCmluZGV4IDY2MGRhYmIuLmQ2NjM3OTEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19kYmxzX3N0cnVjdC5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19kYmxzX3N0cnVjdC5jCkBAIC0zNyw2ICszNyw4IEBACiAJZmZpX3R5cGUJdHMxX3R5cGU7CiAJZmZpX3R5cGUqCXRzMV90eXBlX2VsZW1lbnRzWzRdOwogCisJRGJscyBhcmcgPSB7IDEuMCwgMi4wIH07CisKIAl0czFfdHlwZS5zaXplID0gMDsKIAl0czFfdHlwZS5hbGlnbm1lbnQgPSAwOwogCXRzMV90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CkBAIC00OCw4ICs1MCw2IEBACiAKIAljbF9hcmdfdHlwZXNbMF0gPSAmdHMxX3R5cGU7CiAKLQlEYmxzIGFyZyA9IHsgMS4wLCAyLjAgfTsKLQogCS8qIEluaXRpYWxpemUgdGhlIGNpZiAqLwogCUNIRUNLKGZmaV9wcmVwX2NpZigmY2lmLCBGRklfREVGQVVMVF9BQkksIDEsCiAJCQkJICZmZmlfdHlwZV92b2lkLCBjbF9hcmdfdHlwZXMpID09IEZGSV9PSyk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfZG91YmxlX3ZhLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfZG91YmxlX3ZhLmMKaW5kZXggMDY5NTg3NC4uZGJmMjAwMCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2RvdWJsZV92YS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19kb3VibGVfdmEuYwpAQCAtNiw2ICs2LDggQEAKIAogLyogeyBkZy1kbyBydW4geyB4ZmFpbCBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KIC8qIHsgZGctb3V0cHV0ICIiIHsgeGZhaWwgYXZyMzIqLSotKiB9IH0gKi8KKy8qIHsgZGctb3V0cHV0ICIiIHsgeGZhaWwgbWlwcy1zZ2ktaXJpeDYqIH0gfSBQUiBsaWJmZmkvNDY2NjAgKi8KKwogI2luY2x1ZGUgImZmaXRlc3QuaCIKIAogc3RhdGljIHZvaWQKQEAgLTM0LDcgKzM2LDggQEAKIAlhcmdfdHlwZXNbMV0gPSAmZmZpX3R5cGVfZG91YmxlOwogCWFyZ190eXBlc1syXSA9IE5VTEw7CiAKLQlDSEVDSyhmZmlfcHJlcF9jaWYoJmNpZiwgRkZJX0RFRkFVTFRfQUJJLCAyLCAmZmZpX3R5cGVfc2ludCwKKwkvKiBUaGlzIHByaW50ZiBjYWxsIGlzIHZhcmlhZGljICovCisJQ0hFQ0soZmZpX3ByZXBfY2lmX3ZhcigmY2lmLCBGRklfREVGQVVMVF9BQkksIDEsIDIsICZmZmlfdHlwZV9zaW50LAogCQlhcmdfdHlwZXMpID09IEZGSV9PSyk7CiAKIAlhcmdzWzBdID0gJmZvcm1hdDsKQEAgLTQ2LDYgKzQ5LDkgQEAKIAlwcmludGYoInJlczogJWRcbiIsIChpbnQpIHJlcyk7CiAJLy8geyBkZy1vdXRwdXQgIlxucmVzOiA0IiB9CiAKKwkvKiBUaGUgY2FsbCB0byBjbHNfZG91YmxlX3ZhX2ZuIGlzIHN0YXRpYywgc28gaGF2ZSB0byB1c2UgYSBub3JtYWwgcHJlcF9jaWYgKi8KKwlDSEVDSyhmZmlfcHJlcF9jaWYoJmNpZiwgRkZJX0RFRkFVTFRfQUJJLCAyLCAmZmZpX3R5cGVfc2ludCwgYXJnX3R5cGVzKSA9PSBGRklfT0spOworCiAJQ0hFQ0soZmZpX3ByZXBfY2xvc3VyZV9sb2MocGNsLCAmY2lmLCBjbHNfZG91YmxlX3ZhX2ZuLCBOVUxMLCBjb2RlKSA9PSBGRklfT0spOwogCiAJcmVzCT0gKChpbnQoKikoY2hhciosIGRvdWJsZSkpKGNvZGUpKShmb3JtYXQsIGRvdWJsZUFyZyk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfbG9uZ2RvdWJsZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2xvbmdkb3VibGUuYwppbmRleCA1MmFmNmNmLi5lNmJhYzFmIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfbG9uZ2RvdWJsZS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19sb25nZG91YmxlLmMKQEAgLTYsNyArNiw3IEBACiAKIC8qIHsgZGctZXhjZXNzLWVycm9ycyAibm8gbG9uZyBkb3VibGUgZm9ybWF0IiB7IHhmYWlsIHg4Nl82NC0qLW1pbmd3KiB4ODZfNjQtKi1jeWd3aW4qIH0gfSAqLwogLyogeyBkZy1kbyBydW4geyB4ZmFpbCBhcm0qLSotKiBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KLS8qIHsgZGctb3B0aW9ucyAtbWxvbmctZG91YmxlLTEyOCB7IHRhcmdldCBwb3dlcnBjNjQqLSotKiB9IH0gKi8KKy8qIHsgZGctb3B0aW9ucyAtbWxvbmctZG91YmxlLTEyOCB7IHRhcmdldCBwb3dlcnBjNjQqLSotbGludXgqIH0gfSAqLwogLyogeyBkZy1vdXRwdXQgIiIgeyB4ZmFpbCB4ODZfNjQtKi1taW5ndyogeDg2XzY0LSotY3lnd2luKiB9IH0gKi8KIAogI2luY2x1ZGUgImZmaXRlc3QuaCIKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19sb25nZG91YmxlX3ZhLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfbG9uZ2RvdWJsZV92YS5jCmluZGV4IDM4NTY0Y2IuLjRmYTFlYTIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19sb25nZG91YmxlX3ZhLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX2xvbmdkb3VibGVfdmEuYwpAQCAtNiw2ICs2LDggQEAKIAogLyogeyBkZy1kbyBydW4geyB4ZmFpbCBzdHJvbmdhcm0qLSotKiB4c2NhbGUqLSotKiB9IH0gKi8KIC8qIHsgZGctb3V0cHV0ICIiIHsgeGZhaWwgYXZyMzIqLSotKiB4ODZfNjQtKi1taW5ndyogfSB9ICovCisvKiB7IGRnLW91dHB1dCAiIiB7IHhmYWlsIG1pcHMtc2dpLWlyaXg2KiB9IH0gUFIgbGliZmZpLzQ2NjYwICovCisKICNpbmNsdWRlICJmZml0ZXN0LmgiCiAKIHN0YXRpYyB2b2lkCkBAIC0zNCw3ICszNiw4IEBACiAJYXJnX3R5cGVzWzFdID0gJmZmaV90eXBlX2xvbmdkb3VibGU7CiAJYXJnX3R5cGVzWzJdID0gTlVMTDsKIAotCUNIRUNLKGZmaV9wcmVwX2NpZigmY2lmLCBGRklfREVGQVVMVF9BQkksIDIsICZmZmlfdHlwZV9zaW50LAorCS8qIFRoaXMgcHJpbnRmIGNhbGwgaXMgdmFyaWFkaWMgKi8KKwlDSEVDSyhmZmlfcHJlcF9jaWZfdmFyKCZjaWYsIEZGSV9ERUZBVUxUX0FCSSwgMSwgMiwgJmZmaV90eXBlX3NpbnQsCiAJCWFyZ190eXBlcykgPT0gRkZJX09LKTsKIAogCWFyZ3NbMF0gPSAmZm9ybWF0OwpAQCAtNDYsNiArNDksMTAgQEAKIAlwcmludGYoInJlczogJWRcbiIsIChpbnQpIHJlcyk7CiAJLy8geyBkZy1vdXRwdXQgIlxucmVzOiA0IiB9CiAKKwkvKiBUaGUgY2FsbCB0byBjbHNfbG9uZ2RvdWJsZV92YV9mbiBpcyBzdGF0aWMsIHNvIGhhdmUgdG8gdXNlIGEgbm9ybWFsIHByZXBfY2lmICovCisJQ0hFQ0soZmZpX3ByZXBfY2lmKCZjaWYsIEZGSV9ERUZBVUxUX0FCSSwgMiwgJmZmaV90eXBlX3NpbnQsCisJCWFyZ190eXBlcykgPT0gRkZJX09LKTsKKwogCUNIRUNLKGZmaV9wcmVwX2Nsb3N1cmVfbG9jKHBjbCwgJmNpZiwgY2xzX2xvbmdkb3VibGVfdmFfZm4sIE5VTEwsIGNvZGUpID09IEZGSV9PSyk7CiAKIAlyZXMJPSAoKGludCgqKShjaGFyKiwgbG9uZyBkb3VibGUpKShjb2RlKSkoZm9ybWF0LCBsZEFyZyk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfcG9pbnRlci5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX3BvaW50ZXIuYwppbmRleCBmYWRkMzUzLi5jZjAzOTkzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfcG9pbnRlci5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19wb2ludGVyLmMKQEAgLTY1LDcgKzY1LDcgQEAKIAogCUNIRUNLKGZmaV9wcmVwX2Nsb3N1cmVfbG9jKHBjbCwgJmNpZiwgY2xzX3BvaW50ZXJfZ24sIE5VTEwsIGNvZGUpID09IEZGSV9PSyk7CiAKLQlyZXMgPSAoZmZpX2FyZykoKHZvaWQqKCopKHZvaWQqLCB2b2lkKikpKGNvZGUpKShhcmcxLCBhcmcyKTsKKwlyZXMgPSAoZmZpX2FyZykodWludHB0cl90KSgodm9pZCooKikodm9pZCosIHZvaWQqKSkoY29kZSkpKGFyZzEsIGFyZzIpOwogCS8qIHsgZGctb3V0cHV0ICJcbjB4MTIzNDU2NzggMHg4OWFiY2RlZjogMHg5YmUwMjQ2NyIgfSAqLwogCXByaW50ZigicmVzOiAweCUwOHhcbiIsICh1bnNpZ25lZCBpbnQpIHJlcyk7CiAJLyogeyBkZy1vdXRwdXQgIlxucmVzOiAweDliZTAyNDY3IiB9ICovCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfcG9pbnRlcl9zdGFjay5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvY2xzX3BvaW50ZXJfc3RhY2suYwppbmRleCA2OTdmMjcxLi5lMzExMzllIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9jbHNfcG9pbnRlcl9zdGFjay5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Nsc19wb2ludGVyX3N0YWNrLmMKQEAgLTI4LDExICsyOCwxMiBAQAogCWNoYXIJCXRyYW1wbGU2CT0gdHJhbXBsZTQgKyAoKGNoYXIqKSZhMilbMV07CiAJbG9uZyBkb3VibGUJdHJhbXBsZTcJPSAoaW50cHRyX3QpdHJhbXBsZTUgKyAoaW50cHRyX3QpdHJhbXBsZTE7CiAJY2hhcgkJdHJhbXBsZTgJPSB0cmFtcGxlNiArIHRyYW1wbGUyOworCXZvaWQqCQlyZXN1bHQ7CiAKIAlkdW1teVZhcgk9IGR1bW15X2Z1bmModHJhbXBsZTEsIHRyYW1wbGUyLCB0cmFtcGxlMywgdHJhbXBsZTQsCiAJCXRyYW1wbGU1LCB0cmFtcGxlNiwgdHJhbXBsZTcsIHRyYW1wbGU4KTsKIAotCXZvaWQqCXJlc3VsdAk9ICh2b2lkKikoKGludHB0cl90KWExICsgKGludHB0cl90KWEyKTsKKwlyZXN1bHQJPSAodm9pZCopKChpbnRwdHJfdClhMSArIChpbnRwdHJfdClhMik7CiAKIAlwcmludGYoIjB4JTA4eCAweCUwOHg6IDB4JTA4eFxuIiwgCiAJICAgICAgICh1bnNpZ25lZCBpbnQpKHVpbnRwdHJfdCkgYTEsCkBAIC01MiwxMSArNTMsMTIgQEAKIAljaGFyCQl0cmFtcGxlNgk9IHRyYW1wbGU0ICsgKChjaGFyKikmYTIpWzFdOwogCWxvbmcgZG91YmxlCXRyYW1wbGU3CT0gKGludHB0cl90KXRyYW1wbGU1ICsgKGludHB0cl90KXRyYW1wbGUxOwogCWNoYXIJCXRyYW1wbGU4CT0gdHJhbXBsZTYgKyB0cmFtcGxlMjsKKwl2b2lkKgkJcmVzdWx0OwogCiAJZHVtbXlWYXIJPSBkdW1teV9mdW5jKHRyYW1wbGUxLCB0cmFtcGxlMiwgdHJhbXBsZTMsIHRyYW1wbGU0LAogCQl0cmFtcGxlNSwgdHJhbXBsZTYsIHRyYW1wbGU3LCB0cmFtcGxlOCk7CiAKLQl2b2lkKglyZXN1bHQJPSAodm9pZCopKChpbnRwdHJfdClhMSArIChpbnRwdHJfdClhMik7CisJcmVzdWx0CT0gKHZvaWQqKSgoaW50cHRyX3QpYTEgKyAoaW50cHRyX3QpYTIpOwogCiAJcHJpbnRmKCIweCUwOHggMHglMDh4OiAweCUwOHhcbiIsCiAgICAgICAgICAgICAgICAodW5zaWduZWQgaW50KShpbnRwdHJfdCkgYTEsCkBAIC0xMjksNyArMTMxLDcgQEAKIAogCUNIRUNLKGZmaV9wcmVwX2Nsb3N1cmVfbG9jKHBjbCwgJmNpZiwgY2xzX3BvaW50ZXJfZ24sIE5VTEwsIGNvZGUpID09IEZGSV9PSyk7CiAKLQlyZXMgPSAoZmZpX2FyZykoKHZvaWQqKCopKHZvaWQqLCB2b2lkKikpKGNvZGUpKShhcmcxLCBhcmcyKTsKKwlyZXMgPSAoZmZpX2FyZykodWludHB0cl90KSgodm9pZCooKikodm9pZCosIHZvaWQqKSkoY29kZSkpKGFyZzEsIGFyZzIpOwogCiAJcHJpbnRmKCJyZXM6IDB4JTA4eFxuIiwgKHVuc2lnbmVkIGludCkgcmVzKTsKIAkvLyB7IGRnLW91dHB1dCAiXG4weDAxMjM0NTY3IDB4ODlhYmNkZWY6IDB4OGFjZjEzNTYiIH0KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Vycl9iYWRfYWJpLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9lcnJfYmFkX2FiaS5jCmluZGV4IGEyMWEzZmQuLmY1YTczMTcgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Vycl9iYWRfYWJpLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvZXJyX2JhZF9hYmkuYwpAQCAtNCw3ICs0LDggQEAKICAgIFBSOgkJCW5vbmUuCiAgICBPcmlnaW5hdG9yOglCbGFrZSBDaGFmZmluIDYvNi8yMDA3CSAqLwogCi0vKiB7IGRnLWRvIHJ1biB7IHhmYWlsICotKi0qIH0gfSAqLworLyogeyBkZy1kbyBydW4gfSAqLworCiAjaW5jbHVkZSAiZmZpdGVzdC5oIgogCiBzdGF0aWMgdm9pZApAQCAtMTcsMTEgKzE4LDkgQEAKIAlmZmlfY2lmIGNpZjsKICAgICAgICAgdm9pZCAqY29kZTsKIAlmZmlfY2xvc3VyZSAqcGNsID0gZmZpX2Nsb3N1cmVfYWxsb2Moc2l6ZW9mKGZmaV9jbG9zdXJlKSwgJmNvZGUpOwotCXZvaWQqIGFyZ3NbMV07CiAJZmZpX3R5cGUqIGFyZ190eXBlc1sxXTsKIAogCWFyZ190eXBlc1swXSA9IE5VTEw7Ci0JYXJnc1swXSA9IE5VTEw7CiAKIAlDSEVDSyhmZmlfcHJlcF9jaWYoJmNpZiwgMjU1LCAwLCAmZmZpX3R5cGVfdm9pZCwKIAkJYXJnX3R5cGVzKSA9PSBGRklfQkFEX0FCSSk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9lcnJfYmFkX3R5cGVkZWYuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Vycl9iYWRfdHlwZWRlZi5jCmluZGV4IGJkMmZjNTQuLmJmNjAxNjEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Vycl9iYWRfdHlwZWRlZi5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Vycl9iYWRfdHlwZWRlZi5jCkBAIC00LDcgKzQsOCBAQAogICAgUFI6CQkJbm9uZS4KICAgIE9yaWdpbmF0b3I6CUJsYWtlIENoYWZmaW4gNi82LzIwMDcJICovCiAKLS8qIHsgZGctZG8gcnVuIHsgeGZhaWwgKi0qLSogfSB9ICovCisvKiB7IGRnLWRvIHJ1biB9ICovCisKICNpbmNsdWRlICJmZml0ZXN0LmgiCiAKIGludCBtYWluICh2b2lkKQpAQCAtMTIsMTAgKzEzLDEwIEBACiAJZmZpX2NpZiBjaWY7CiAJZmZpX3R5cGUqIGFyZ190eXBlc1sxXTsKIAotCWFyZ190eXBlc1swXSA9IE5VTEw7Ci0KIAlmZmlfdHlwZQliYWRUeXBlCT0gZmZpX3R5cGVfdm9pZDsKIAorCWFyZ190eXBlc1swXSA9IE5VTEw7CisKIAliYWRUeXBlLnNpemUgPSAwOwogCiAJQ0hFQ0soZmZpX3ByZXBfY2lmKCZjaWYsIEZGSV9ERUZBVUxUX0FCSSwgMCwgJmJhZFR5cGUsCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9mYXN0dGhpczFfd2luMzIuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Zhc3R0aGlzMV93aW4zMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiYzQ3MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9mYXN0dGhpczFfd2luMzIuYwpAQCAtMCwwICsxLDUwIEBACisvKiBBcmVhOglmZmlfY2FsbAorICAgUHVycG9zZToJQ2hlY2sgZmFzdGNhbGwgZmN0IGNhbGwgb24gWDg2X1dJTjMyIHN5c3RlbXMuCisgICBMaW1pdGF0aW9uczoJbm9uZS4KKyAgIFBSOgkJbm9uZS4KKyAgIE9yaWdpbmF0b3I6CUZyb20gdGhlIG9yaWdpbmFsIGZmaXRlc3QuYyAgKi8KKworLyogeyBkZy1kbyBydW4geyB0YXJnZXQgaT84Ni0qLWN5Z3dpbiogaT84Ni0qLW1pbmd3KiB9IH0gKi8KKworI2luY2x1ZGUgImZmaXRlc3QuaCIKKworc3RhdGljIHNpemVfdCBfX0ZBU1RDQUxMX18gbXlfZmFzdGNhbGxfZihjaGFyICpzLCBmbG9hdCBhKQoreworICByZXR1cm4gKHNpemVfdCkgKChpbnQpIHN0cmxlbihzKSArIChpbnQpIGEpOworfQorCitpbnQgbWFpbiAodm9pZCkKK3sKKyAgZmZpX2NpZiBjaWY7CisgIGZmaV90eXBlICphcmdzW01BWF9BUkdTXTsKKyAgdm9pZCAqdmFsdWVzW01BWF9BUkdTXTsKKyAgZmZpX2FyZyByaW50OworICBjaGFyICpzOworICBmbG9hdCB2MjsKKyAgYXJnc1swXSA9ICZmZmlfdHlwZV9wb2ludGVyOworICBhcmdzWzFdID0gJmZmaV90eXBlX2Zsb2F0OworICB2YWx1ZXNbMF0gPSAodm9pZCopICZzOworICB2YWx1ZXNbMV0gPSAodm9pZCopICZ2MjsKKyAgCisgIC8qIEluaXRpYWxpemUgdGhlIGNpZiAqLworICBDSEVDSyhmZmlfcHJlcF9jaWYoJmNpZiwgRkZJX0ZBU1RDQUxMLCAyLAorCQkgICAgICAgJmZmaV90eXBlX3NpbnQsIGFyZ3MpID09IEZGSV9PSyk7CisgIAorICBzID0gImEiOworICB2MiA9IDAuMDsKKyAgZmZpX2NhbGwoJmNpZiwgRkZJX0ZOKG15X2Zhc3RjYWxsX2YpLCAmcmludCwgdmFsdWVzKTsKKyAgQ0hFQ0socmludCA9PSAxKTsKKyAgCisgIHMgPSAiMTIzNDU2NyI7CisgIHYyID0gLTEuMDsKKyAgZmZpX2NhbGwoJmNpZiwgRkZJX0ZOKG15X2Zhc3RjYWxsX2YpLCAmcmludCwgdmFsdWVzKTsKKyAgQ0hFQ0socmludCA9PSA2KTsKKyAgCisgIHMgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSI7CisgIHYyID0gMS4wOworICBmZmlfY2FsbCgmY2lmLCBGRklfRk4obXlfZmFzdGNhbGxfZiksICZyaW50LCB2YWx1ZXMpOworICBDSEVDSyhyaW50ID09IDI2KTsKKyAgCisgIHByaW50ZigiZmFzdGNhbGwgZmN0MSB0ZXN0cyBwYXNzZWRcbiIpOworICBleGl0KDApOworfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvZmFzdHRoaXMyX3dpbjMyLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9mYXN0dGhpczJfd2luMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmRkMGUxCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvZmFzdHRoaXMyX3dpbjMyLmMKQEAgLTAsMCArMSw1MCBAQAorLyogQXJlYToJZmZpX2NhbGwKKyAgIFB1cnBvc2U6CUNoZWNrIGZhc3RjYWxsIGZjdCBjYWxsIG9uIFg4Nl9XSU4zMiBzeXN0ZW1zLgorICAgTGltaXRhdGlvbnM6CW5vbmUuCisgICBQUjoJCW5vbmUuCisgICBPcmlnaW5hdG9yOglGcm9tIHRoZSBvcmlnaW5hbCBmZml0ZXN0LmMgICovCisKKy8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IGk/ODYtKi1jeWd3aW4qIGk/ODYtKi1taW5ndyogfSB9ICovCisKKyNpbmNsdWRlICJmZml0ZXN0LmgiCisKK3N0YXRpYyBzaXplX3QgX19GQVNUQ0FMTF9fIG15X2Zhc3RjYWxsX2YoZmxvYXQgYSwgY2hhciAqcykKK3sKKyAgcmV0dXJuIChzaXplX3QpICgoaW50KSBzdHJsZW4ocykgKyAoaW50KSBhKTsKK30KKworaW50IG1haW4gKHZvaWQpCit7CisgIGZmaV9jaWYgY2lmOworICBmZmlfdHlwZSAqYXJnc1tNQVhfQVJHU107CisgIHZvaWQgKnZhbHVlc1tNQVhfQVJHU107CisgIGZmaV9hcmcgcmludDsKKyAgY2hhciAqczsKKyAgZmxvYXQgdjI7CisgIGFyZ3NbMV0gPSAmZmZpX3R5cGVfcG9pbnRlcjsKKyAgYXJnc1swXSA9ICZmZmlfdHlwZV9mbG9hdDsKKyAgdmFsdWVzWzFdID0gKHZvaWQqKSAmczsKKyAgdmFsdWVzWzBdID0gKHZvaWQqKSAmdjI7CisgIAorICAvKiBJbml0aWFsaXplIHRoZSBjaWYgKi8KKyAgQ0hFQ0soZmZpX3ByZXBfY2lmKCZjaWYsIEZGSV9GQVNUQ0FMTCwgMiwKKwkJICAgICAgICZmZmlfdHlwZV9zaW50LCBhcmdzKSA9PSBGRklfT0spOworICAKKyAgcyA9ICJhIjsKKyAgdjIgPSAwLjA7CisgIGZmaV9jYWxsKCZjaWYsIEZGSV9GTihteV9mYXN0Y2FsbF9mKSwgJnJpbnQsIHZhbHVlcyk7CisgIENIRUNLKHJpbnQgPT0gMSk7CisgIAorICBzID0gIjEyMzQ1NjciOworICB2MiA9IC0xLjA7CisgIGZmaV9jYWxsKCZjaWYsIEZGSV9GTihteV9mYXN0Y2FsbF9mKSwgJnJpbnQsIHZhbHVlcyk7CisgIENIRUNLKHJpbnQgPT0gNik7CisgIAorICBzID0gIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDUiOworICB2MiA9IDEuMDsKKyAgZmZpX2NhbGwoJmNpZiwgRkZJX0ZOKG15X2Zhc3RjYWxsX2YpLCAmcmludCwgdmFsdWVzKTsKKyAgQ0hFQ0socmludCA9PSAyNik7CisgIAorICBwcmludGYoImZhc3RjYWxsIGZjdDIgdGVzdHMgcGFzc2VkXG4iKTsKKyAgZXhpdCgwKTsKK30KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Zhc3R0aGlzM193aW4zMi5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvZmFzdHRoaXMzX3dpbjMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVkNjA2ZAotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Zhc3R0aGlzM193aW4zMi5jCkBAIC0wLDAgKzEsNTYgQEAKKy8qIEFyZWE6CWZmaV9jYWxsCisgICBQdXJwb3NlOglDaGVjayBmYXN0Y2FsbCBmIGNhbGwgb24gWDg2X1dJTjMyIHN5c3RlbXMuCisgICBMaW1pdGF0aW9uczoJbm9uZS4KKyAgIFBSOgkJbm9uZS4KKyAgIE9yaWdpbmF0b3I6CUZyb20gdGhlIG9yaWdpbmFsIGZmaXRlc3QuYyAgKi8KKworLyogeyBkZy1kbyBydW4geyB0YXJnZXQgaT84Ni0qLWN5Z3dpbiogaT84Ni0qLW1pbmd3KiB9IH0gKi8KKworI2luY2x1ZGUgImZmaXRlc3QuaCIKKworc3RhdGljIHNpemVfdCBfX0ZBU1RDQUxMX18gbXlfZmFzdGNhbGxfZihmbG9hdCBhLCBjaGFyICpzLCBpbnQgaSkKK3sKKyAgcmV0dXJuIChzaXplX3QpICgoaW50KSBzdHJsZW4ocykgKyAoaW50KSBhICsgaSk7Cit9CisKK2ludCBtYWluICh2b2lkKQoreworICBmZmlfY2lmIGNpZjsKKyAgZmZpX3R5cGUgKmFyZ3NbTUFYX0FSR1NdOworICB2b2lkICp2YWx1ZXNbTUFYX0FSR1NdOworICBmZmlfYXJnIHJpbnQ7CisgIGNoYXIgKnM7CisgIGludCB2MTsKKyAgZmxvYXQgdjI7CisgIGFyZ3NbMl0gPSAmZmZpX3R5cGVfc2ludDsKKyAgYXJnc1sxXSA9ICZmZmlfdHlwZV9wb2ludGVyOworICBhcmdzWzBdID0gJmZmaV90eXBlX2Zsb2F0OworICB2YWx1ZXNbMl0gPSAodm9pZCopICZ2MTsKKyAgdmFsdWVzWzFdID0gKHZvaWQqKSAmczsKKyAgdmFsdWVzWzBdID0gKHZvaWQqKSAmdjI7CisgIAorICAvKiBJbml0aWFsaXplIHRoZSBjaWYgKi8KKyAgQ0hFQ0soZmZpX3ByZXBfY2lmKCZjaWYsIEZGSV9GQVNUQ0FMTCwgMywKKwkJICAgICAgICZmZmlfdHlwZV9zaW50LCBhcmdzKSA9PSBGRklfT0spOworICAKKyAgcyA9ICJhIjsKKyAgdjEgPSAxOworICB2MiA9IDAuMDsKKyAgZmZpX2NhbGwoJmNpZiwgRkZJX0ZOKG15X2Zhc3RjYWxsX2YpLCAmcmludCwgdmFsdWVzKTsKKyAgQ0hFQ0socmludCA9PSAyKTsKKyAgCisgIHMgPSAiMTIzNDU2NyI7CisgIHYyID0gLTEuMDsKKyAgdjEgPSAtMjsKKyAgZmZpX2NhbGwoJmNpZiwgRkZJX0ZOKG15X2Zhc3RjYWxsX2YpLCAmcmludCwgdmFsdWVzKTsKKyAgQ0hFQ0socmludCA9PSA0KTsKKyAgCisgIHMgPSAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NSI7CisgIHYyID0gMS4wOworICB2MSA9IDI7CisgIGZmaV9jYWxsKCZjaWYsIEZGSV9GTihteV9mYXN0Y2FsbF9mKSwgJnJpbnQsIHZhbHVlcyk7CisgIENIRUNLKHJpbnQgPT0gMjgpOworICAKKyAgcHJpbnRmKCJmYXN0Y2FsbCBmY3QzIHRlc3RzIHBhc3NlZFxuIik7CisgIGV4aXQoMCk7Cit9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9mZml0ZXN0LmggYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9mZml0ZXN0LmgKaW5kZXggMmNiOTg0OS4uZDgxZDRkYSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvZmZpdGVzdC5oCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2ZmaXRlc3QuaApAQCAtMjUsNiArMjUsMTQgQEAKICNkZWZpbmUgX19VTlVTRURfXwogI2VuZGlmCiAKKy8qIERlZmluZSBfX0ZBU1RDQUxMX18gc28gdGhhdCBvdGhlciBjb21waWxlcnMgdGhhbiBnY2MgY2FuIHJ1biB0aGUgdGVzdHMuICAqLworI3VuZGVmIF9fRkFTVENBTExfXworI2lmIGRlZmluZWQgX01TQ19WRVIKKyNkZWZpbmUgX19GQVNUQ0FMTF9fIF9fZmFzdGNhbGwKKyNlbHNlCisjZGVmaW5lIF9fRkFTVENBTExfXyBfX2F0dHJpYnV0ZV9fKChmYXN0Y2FsbCkpCisjZW5kaWYKKwogLyogUHJlZmVyIE1BUF9BTk9OKFlNT1VTKSB0byAvZGV2L3plcm8sIHNpbmNlIHdlIGRvbid0IG5lZWQgdG8ga2VlcCBhCiAgICBmaWxlIG9wZW4uICAqLwogI2lmZGVmIEhBVkVfTU1BUF9BTk9OCkBAIC02Nyw2ICs3NSw4IEBACiAjZGVmaW5lIFBSSWRMTCAibGQiCiAjdW5kZWYgUFJJdUxMCiAjZGVmaW5lIFBSSXVMTCAibHUiCisjZGVmaW5lIFBSSWQ4ICJoZCIKKyNkZWZpbmUgUFJJdTggImh1IgogI2RlZmluZSBQUklkNjQgImxkIgogI2RlZmluZSBQUkl1NjQgImx1IgogI2RlZmluZSBQUkl1UFRSICJsdSIKQEAgLTc3LDYgKzg3LDI4IEBACiAjZGVmaW5lIFBSSXVQVFIgImx1IgogI2VuZGlmCiAKKy8qIElSSVgga2x1ZGdlLiAgKi8KKyNpZiBkZWZpbmVkKF9fc2dpKQorLyogSVJJWCA2LjUgPGludHR5cGVzLmg+IHByb3ZpZGVzIGFsbCBkZWZpbml0aW9ucywgYnV0IG9ubHkgZm9yIEM5OQorICAgY29tcGlsYXRpb25zLiAgKi8KKyNkZWZpbmUgUFJJZDggImhoZCIKKyNkZWZpbmUgUFJJdTggImhodSIKKyNpZiAoX01JUFNfU1pMT05HID09IDMyKQorI2RlZmluZSBQUklkNjQgImxsZCIKKyNkZWZpbmUgUFJJdTY0ICJsbHUiCisjZW5kaWYKKy8qIFRoaXMgZG9lc24ndCBtYXRjaCA8aW50dHlwZXMuaD4sIHdoaWNoIGFsd2F5cyBoYXMgImxsZCIgaGVyZSwgYnV0IHRoZQorICAgYXJndW1lbnRzIGFyZSB1aW50NjRfdCwgaW50NjRfdCwgd2hpY2ggYXJlIHVuc2lnbmVkIGxvbmcsIGxvbmcgZm9yCisgICA2NC1iaXQgaW4gPHNnaWRlZnMuaD4uICAqLworI2lmIChfTUlQU19TWkxPTkcgPT0gNjQpCisjZGVmaW5lIFBSSWQ2NCAibGQiCisjZGVmaW5lIFBSSXU2NCAibHUiCisjZW5kaWYKKy8qIFRoaXMgZG9lc24ndCBtYXRjaCA8aW50dHlwZXMuaD4sIHdoaWNoIGhhcyAidSIgaGVyZSwgYnV0IHRoZSBhcmd1bWVudHMKKyAgIGFyZSB1aW50cHRyX3QsIHdoaWNoIGlzIGFsd2F5cyB1bnNpZ25lZCBsb25nLiAgKi8KKyNkZWZpbmUgUFJJdVBUUiAibHUiCisjZW5kaWYKKwogLyogU29sYXJpcyA8IDEwIGtsdWRnZS4gICovCiAjaWYgZGVmaW5lZChfX3N1bl9fKSAmJiBkZWZpbmVkKF9fc3ZyNF9fKSAmJiAhZGVmaW5lZChQUkl1UFRSKQogI2lmIGRlZmluZWQoX19hcmNoNjRfXykgfHwgZGVmaW5lZCAoX194ODZfNjRfXykKQEAgLTg2LDYgKzExOCwxNSBAQAogI2VuZGlmCiAjZW5kaWYKIAorLyogTVNWQyBrbHVkZ2UuICAqLworI2lmIGRlZmluZWQgX01TQ19WRVIKKyNkZWZpbmUgUFJJdVBUUiAibHUiCisjZGVmaW5lIFBSSXU4ICJ1IgorI2RlZmluZSBQUklkOCAiZCIKKyNkZWZpbmUgUFJJdTY0ICJJNjR1IgorI2RlZmluZSBQUklkNjQgIkk2NGQiCisjZW5kaWYKKwogI2lmZGVmIFVTSU5HX01NQVAKIHN0YXRpYyBpbmxpbmUgdm9pZCAqCiBhbGxvY2F0ZV9tbWFwIChzaXplX3Qgc2l6ZSkKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2Zsb2F0X3ZhLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9mbG9hdF92YS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhZTE1OGUKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9mbG9hdF92YS5jCkBAIC0wLDAgKzEsMTA3IEBACisvKiBBcmVhOiAgICAgICAgZnAgYW5kIHZhcmlhZGljcworICAgUHVycG9zZTogICAgIGNoZWNrIGZwIGlucHV0cyBhbmQgcmV0dXJucyB3b3JrIG9uIHZhcmlhZGljcywgZXZlbiB0aGUgZml4ZWQgcGFyYW1zCisgICBMaW1pdGF0aW9uczogTm9uZQorICAgUFI6ICAgICAgICAgIG5vbmUKKyAgIE9yaWdpbmF0b3I6ICA8ZGF2aWQuZ2lsYmVydEBsaW5hcm8ub3JnPiAyMDExLTAxLTI1CisKKyAgIEludGVuZGVkIHRvIHN0cmVzcyB0aGUgZGlmZmVyZW5jZSBpbiBBQkkgb24gQVJNIHZmcAorKi8KKworLyogeyBkZy1kbyBydW4gfSAqLworCisjaW5jbHVkZSA8c3RkYXJnLmg+CisKKyNpbmNsdWRlICJmZml0ZXN0LmgiCisKKy8qIHByaW50cyBvdXQgYWxsIHRoZSBwYXJhbWV0ZXJzLCBhbmQgcmV0dXJucyB0aGUgc3VtIG9mIHRoZW0gYWxsLgorICogJ3gnIGlzIHRoZSBudW1iZXIgb2YgdmFyaWFkaWMgcGFyYW1ldGVycyBhbGwgb2Ygd2hpY2ggYXJlIGRvdWJsZSBpbiB0aGlzIHRlc3QKKyAqLworZG91YmxlIGZsb2F0X3ZhX2ZuKHVuc2lnbmVkIGludCB4LCBkb3VibGUgeSwuLi4pCit7CisgIGRvdWJsZSB0b3RhbD0wLjA7CisgIHZhX2xpc3QgYXA7CisgIHVuc2lnbmVkIGludCBpOworCisgIHRvdGFsKz0oZG91YmxlKXg7CisgIHRvdGFsKz15OworCisgIHByaW50ZigiJXU6ICUuMWYgOiIsIHgsIHkpOworCisgIHZhX3N0YXJ0KGFwLCB5KTsKKyAgZm9yKGk9MDtpPHg7aSsrKQorICB7CisgICAgZG91YmxlIGFyZz12YV9hcmcoYXAsIGRvdWJsZSk7CisgICAgdG90YWwrPWFyZzsKKyAgICBwcmludGYoIiAlZDolLjFmICIsIGksIGFyZyk7CisgIH0KKyAgdmFfZW5kKGFwKTsKKworICBwcmludGYoIiB0b3RhbDogJS4xZlxuIiwgdG90YWwpOworCisgIHJldHVybiB0b3RhbDsKK30KKworaW50IG1haW4gKHZvaWQpCit7CisgIGZmaV9jaWYgICAgY2lmOworCisgIGZmaV90eXBlICAgICphcmdfdHlwZXNbNV07CisgIHZvaWQgICAgICAgICp2YWx1ZXNbNV07CisgIGRvdWJsZSAgICAgICAgZG91Ymxlc1s1XTsKKyAgdW5zaWduZWQgaW50IGZpcnN0YXJnOworICBkb3VibGUgICAgICAgIHJlc2ZwOworCisgIC8qIEZpcnN0IHRlc3QsIHBhc3MgZmxvYXRfdmFfZm4oMCwyLjApIC0gbm90ZSB0aGVyZSBhcmUgbm8gYWN0dWFsCisgICAqIHZhcmlhZGljIHBhcmFtZXRlcnMsIGJ1dCBpdCdzIGRlY2xhcmVkIHZhcmlhZGljIHNvIHRoZSBBQkkgbWF5IGJlCisgICAqIGRpZmZlcmVudC4gKi8KKyAgLyogQ2FsbCBpdCBzdGF0aWNhbGx5IGFuZCB0aGVuIHZpYSBmZmkgKi8KKyAgcmVzZnA9ZmxvYXRfdmFfZm4oMCwyLjApOworICAvLyB7IGRnLW91dHB1dCAiMDogMi4wIDogdG90YWw6IDIuMCIgfQorICBwcmludGYoImNvbXBpbGVkOiAlLjFmXG4iLCByZXNmcCk7CisgIC8vIHsgZGctb3V0cHV0ICJcbmNvbXBpbGVkOiAyLjAiIH0KKworICBhcmdfdHlwZXNbMF0gPSAmZmZpX3R5cGVfdWludDsKKyAgYXJnX3R5cGVzWzFdID0gJmZmaV90eXBlX2RvdWJsZTsKKyAgYXJnX3R5cGVzWzJdID0gTlVMTDsKKyAgQ0hFQ0soZmZpX3ByZXBfY2lmX3ZhcigmY2lmLCBGRklfREVGQVVMVF9BQkksIDIsIDIsCisgICAgICAgICZmZmlfdHlwZV9kb3VibGUsIGFyZ190eXBlcykgPT0gRkZJX09LKTsKKworICBmaXJzdGFyZyA9IDA7CisgIGRvdWJsZXNbMF0gPSAyLjA7CisgIHZhbHVlc1swXSA9ICZmaXJzdGFyZzsKKyAgdmFsdWVzWzFdID0gJmRvdWJsZXNbMF07CisgIGZmaV9jYWxsKCZjaWYsIEZGSV9GTihmbG9hdF92YV9mbiksICZyZXNmcCwgdmFsdWVzKTsKKyAgLy8geyBkZy1vdXRwdXQgIlxuMDogMi4wIDogdG90YWw6IDIuMCIgfQorICBwcmludGYoImZmaTogJS4xZlxuIiwgcmVzZnApOworICAvLyB7IGRnLW91dHB1dCAiXG5mZmk6IDIuMCIgfQorCisgIC8qIFNlY29uZCB0ZXN0LCBmbG9hdF92YV9mbigyLDIuMCwzLjAsNC4wKSwgbm93IHdpdGggdmFyaWFkaWMgcGFyYW1zICovCisgIC8qIENhbGwgaXQgc3RhdGljYWxseSBhbmQgdGhlbiB2aWEgZmZpICovCisgIHJlc2ZwPWZsb2F0X3ZhX2ZuKDIsMi4wLDMuMCw0LjApOworICAvLyB7IGRnLW91dHB1dCAiXG4yOiAyLjAgOiAwOjMuMCAgMTo0LjAgIHRvdGFsOiAxMS4wIiB9CisgIHByaW50ZigiY29tcGlsZWQ6ICUuMWZcbiIsIHJlc2ZwKTsKKyAgLy8geyBkZy1vdXRwdXQgIlxuY29tcGlsZWQ6IDExLjAiIH0KKworICBhcmdfdHlwZXNbMF0gPSAmZmZpX3R5cGVfdWludDsKKyAgYXJnX3R5cGVzWzFdID0gJmZmaV90eXBlX2RvdWJsZTsKKyAgYXJnX3R5cGVzWzJdID0gJmZmaV90eXBlX2RvdWJsZTsKKyAgYXJnX3R5cGVzWzNdID0gJmZmaV90eXBlX2RvdWJsZTsKKyAgYXJnX3R5cGVzWzRdID0gTlVMTDsKKyAgQ0hFQ0soZmZpX3ByZXBfY2lmX3ZhcigmY2lmLCBGRklfREVGQVVMVF9BQkksIDIsIDQsCisgICAgICAgICZmZmlfdHlwZV9kb3VibGUsIGFyZ190eXBlcykgPT0gRkZJX09LKTsKKworICBmaXJzdGFyZyA9IDI7CisgIGRvdWJsZXNbMF0gPSAyLjA7CisgIGRvdWJsZXNbMV0gPSAzLjA7CisgIGRvdWJsZXNbMl0gPSA0LjA7CisgIHZhbHVlc1swXSA9ICZmaXJzdGFyZzsKKyAgdmFsdWVzWzFdID0gJmRvdWJsZXNbMF07CisgIHZhbHVlc1syXSA9ICZkb3VibGVzWzFdOworICB2YWx1ZXNbM10gPSAmZG91Ymxlc1syXTsKKyAgZmZpX2NhbGwoJmNpZiwgRkZJX0ZOKGZsb2F0X3ZhX2ZuKSwgJnJlc2ZwLCB2YWx1ZXMpOworICAvLyB7IGRnLW91dHB1dCAiXG4yOiAyLjAgOiAwOjMuMCAgMTo0LjAgIHRvdGFsOiAxMS4wIiB9CisgIHByaW50ZigiZmZpOiAlLjFmXG4iLCByZXNmcCk7CisgIC8vIHsgZGctb3V0cHV0ICJcbmZmaTogMTEuMCIgfQorCisgIGV4aXQoMCk7Cit9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9odWdlX3N0cnVjdC5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvaHVnZV9zdHJ1Y3QuYwppbmRleCA5Y2ZmYjcxLi4zODBmZWRmIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9odWdlX3N0cnVjdC5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL2h1Z2Vfc3RydWN0LmMKQEAgLTcsNyArNyw3IEBACiAKIC8qIHsgZGctZXhjZXNzLWVycm9ycyAiIiB7IHRhcmdldCB4ODZfNjQtKi1taW5ndyogeDg2XzY0LSotY3lnd2luKiB9IH0gKi8KIC8qIHsgZGctZG8gcnVuIHsgeGZhaWwgc3Ryb25nYXJtKi0qLSogeHNjYWxlKi0qLSogfSB9ICovCi0vKiB7IGRnLW9wdGlvbnMgLW1sb25nLWRvdWJsZS0xMjggeyB0YXJnZXQgcG93ZXJwYzY0Ki0qLSogfSB9ICovCisvKiB7IGRnLW9wdGlvbnMgLW1sb25nLWRvdWJsZS0xMjggeyB0YXJnZXQgcG93ZXJwYzY0Ki0qLWxpbnV4KiB9IH0gKi8KIC8qIHsgZGctb3V0cHV0ICIiIHsgeGZhaWwgeDg2XzY0LSotbWluZ3cqIHg4Nl82NC0qLWN5Z3dpbiogfSB9ICovCiAKICNpbmNsdWRlICJmZml0ZXN0LmgiCkBAIC0xMjksMTQgKzEyOSwxNCBAQAogCQkJdWk2NF80ICsgNCwgc2k2NF80ICsgNCwgZl80ICsgNCwgZF80ICsgNCwgbGRfNCArIDQsIChjaGFyKikoKGludHB0cl90KXBfNCArIDQpLCAKIAkJdWk4XzUgKyA1LCBzaThfNSArIDV9OwogCi0JcHJpbnRmKCIlaGh1ICVoaGQgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAiCi0JCSIlaGh1ICVoaGQgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAiCi0JCSIlaGh1ICVoaGQgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAiCi0JCSIlaGh1ICVoaGQgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAlaGh1ICVoaGQ6ICIKLQkJIiVoaHUgJWhoZCAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICIKLQkJIiVoaHUgJWhoZCAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICIKLQkJIiVoaHUgJWhoZCAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICIKLQkJIiVoaHUgJWhoZCAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICVoaHUgJWhoZFxuIiwKKwlwcmludGYoIiUiIFBSSXU4ICIgJSIgUFJJZDggIiAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICIKKwkJIiUiIFBSSXU4ICIgJSIgUFJJZDggIiAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICIKKwkJIiUiIFBSSXU4ICIgJSIgUFJJZDggIiAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICIKKwkJIiUiIFBSSXU4ICIgJSIgUFJJZDggIiAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICUiIFBSSXU4ICIgJSIgUFJJZDggIjogIgorCQkiJSIgUFJJdTggIiAlIiBQUklkOCAiICVodSAlaGQgJXUgJWQgJSIgUFJJdTY0ICIgJSIgUFJJZDY0ICIgJS4wZiAlLjBmICUuMExmICUjbHggIgorCQkiJSIgUFJJdTggIiAlIiBQUklkOCAiICVodSAlaGQgJXUgJWQgJSIgUFJJdTY0ICIgJSIgUFJJZDY0ICIgJS4wZiAlLjBmICUuMExmICUjbHggIgorCQkiJSIgUFJJdTggIiAlIiBQUklkOCAiICVodSAlaGQgJXUgJWQgJSIgUFJJdTY0ICIgJSIgUFJJZDY0ICIgJS4wZiAlLjBmICUuMExmICUjbHggIgorCQkiJSIgUFJJdTggIiAlIiBQUklkOCAiICVodSAlaGQgJXUgJWQgJSIgUFJJdTY0ICIgJSIgUFJJZDY0ICIgJS4wZiAlLjBmICUuMExmICUjbHggJSIgUFJJdTggIiAlIiBQUklkOCAiXG4iLAogCSAgICAgICB1aThfMSwgc2k4XzEsIHVpMTZfMSwgc2kxNl8xLCB1aTMyXzEsIHNpMzJfMSwgdWk2NF8xLCBzaTY0XzEsIGZfMSwgZF8xLCBsZF8xLCAodW5zaWduZWQgbG9uZylwXzEsCiAJCXVpOF8yLCBzaThfMiwgdWkxNl8yLCBzaTE2XzIsIHVpMzJfMiwgc2kzMl8yLCB1aTY0XzIsIHNpNjRfMiwgZl8yLCBkXzIsIGxkXzIsICh1bnNpZ25lZCBsb25nKXBfMiwKIAkJdWk4XzMsIHNpOF8zLCB1aTE2XzMsIHNpMTZfMywgdWkzMl8zLCBzaTMyXzMsIHVpNjRfMywgc2k2NF8zLCBmXzMsIGRfMywgbGRfMywgKHVuc2lnbmVkIGxvbmcpcF8zLApAQCAtMjI5LDYgKzIyOSwxOSBAQAogCWZmaV90eXBlKglzdF9maWVsZHNbNTFdOwogCUJpZ1N0cnVjdAlyZXRWYWw7CiAKKwl1aW50OF90CQl1aTgJCT0gMTsKKwlpbnQ4X3QJCXNpOAkJPSAyOworCXVpbnQxNl90CXVpMTYJPSAzOworCWludDE2X3QJCXNpMTYJPSA0OworCXVpbnQzMl90CXVpMzIJPSA1OworCWludDMyX3QJCXNpMzIJPSA2OworCXVpbnQ2NF90CXVpNjQJPSA3OworCWludDY0X3QJCXNpNjQJPSA4OworCWZsb2F0CQlmCQk9IDk7CisJZG91YmxlCQlkCQk9IDEwOworCWxvbmcgZG91YmxlCWxkCQk9IDExOworCWNoYXIqCQlwCQk9IChjaGFyKikweDEyMzQ1Njc4OworCiAJbWVtc2V0ICgmcmV0VmFsLCAwLCBzaXplb2YocmV0VmFsKSk7CiAKIAlyZXRfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CkBAIC0yNTEsMTkgKzI2NCw2IEBACiAKIAlzdF9maWVsZHNbNTBdID0gTlVMTDsKIAotCXVpbnQ4X3QJCXVpOAkJPSAxOwotCWludDhfdAkJc2k4CQk9IDI7Ci0JdWludDE2X3QJdWkxNgk9IDM7Ci0JaW50MTZfdAkJc2kxNgk9IDQ7Ci0JdWludDMyX3QJdWkzMgk9IDU7Ci0JaW50MzJfdAkJc2kzMgk9IDY7Ci0JdWludDY0X3QJdWk2NAk9IDc7Ci0JaW50NjRfdAkJc2k2NAk9IDg7Ci0JZmxvYXQJCWYJCT0gOTsKLQlkb3VibGUJCWQJCT0gMTA7Ci0JbG9uZyBkb3VibGUJbGQJCT0gMTE7Ci0JY2hhcioJCXAJCT0gKGNoYXIqKTB4MTIzNDU2Nzg7Ci0KIAlhcmdUeXBlc1swXQkJPSBhcmdUeXBlc1sxMl0JPSBhcmdUeXBlc1syNF0JPSBhcmdUeXBlc1szNl0JPSBhcmdUeXBlc1s0OF0JPSAmZmZpX3R5cGVfdWludDg7CiAJYXJnVmFsdWVzWzBdCT0gYXJnVmFsdWVzWzEyXQk9IGFyZ1ZhbHVlc1syNF0JPSBhcmdWYWx1ZXNbMzZdCT0gYXJnVmFsdWVzWzQ4XQk9ICZ1aTg7CiAJYXJnVHlwZXNbMV0JCT0gYXJnVHlwZXNbMTNdCT0gYXJnVHlwZXNbMjVdCT0gYXJnVHlwZXNbMzddCT0gYXJnVHlwZXNbNDldCT0gJmZmaV90eXBlX3NpbnQ4OwpAQCAtMjk2LDEwICsyOTYsMTAgQEAKIAogCWZmaV9jYWxsKCZjaWYsIEZGSV9GTih0ZXN0X2xhcmdlX2ZuKSwgJnJldFZhbCwgYXJnVmFsdWVzKTsKIAkvLyB7IGRnLW91dHB1dCAiMSAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMHgxMjM0NTY3OCAxIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAweDEyMzQ1Njc4IDEgMiAzIDQgNSA2IDcgOCA5IDEwIDExIDB4MTIzNDU2NzggMSAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMHgxMjM0NTY3OCAxIDI6IDIgMyA0IDUgNiA3IDggOSAxMCAxMSAxMiAweDEyMzQ1Njc5IDMgNCA1IDYgNyA4IDkgMTAgMTEgMTIgMTMgMHgxMjM0NTY3YSA0IDUgNiA3IDggOSAxMCAxMSAxMiAxMyAxNCAweDEyMzQ1NjdiIDUgNiA3IDggOSAxMCAxMSAxMiAxMyAxNCAxNSAweDEyMzQ1NjdjIDYgNyIgfQotCXByaW50ZigicmVzOiAlaGh1ICVoaGQgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAiCi0JCSIlaGh1ICVoaGQgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAiCi0JCSIlaGh1ICVoaGQgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAiCi0JCSIlaGh1ICVoaGQgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAlaGh1ICVoaGRcbiIsCisJcHJpbnRmKCJyZXM6ICUiIFBSSXU4ICIgJSIgUFJJZDggIiAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICIKKwkJIiUiIFBSSXU4ICIgJSIgUFJJZDggIiAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICIKKwkJIiUiIFBSSXU4ICIgJSIgUFJJZDggIiAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICIKKwkJIiUiIFBSSXU4ICIgJSIgUFJJZDggIiAlaHUgJWhkICV1ICVkICUiIFBSSXU2NCAiICUiIFBSSWQ2NCAiICUuMGYgJS4wZiAlLjBMZiAlI2x4ICUiIFBSSXU4ICIgJSIgUFJJZDggIlxuIiwKIAkJcmV0VmFsLmEsIHJldFZhbC5iLCByZXRWYWwuYywgcmV0VmFsLmQsIHJldFZhbC5lLCByZXRWYWwuZiwKIAkgICAgICAgcmV0VmFsLmcsIHJldFZhbC5oLCByZXRWYWwuaSwgcmV0VmFsLmosIHJldFZhbC5rLCAodW5zaWduZWQgbG9uZylyZXRWYWwubCwKIAkJcmV0VmFsLm0sIHJldFZhbC5uLCByZXRWYWwubywgcmV0VmFsLnAsIHJldFZhbC5xLCByZXRWYWwuciwKQEAgLTMyNCwxMCArMzI0LDEwIEBACiAJCXVpOCwgc2k4LCB1aTE2LCBzaTE2LCB1aTMyLCBzaTMyLCB1aTY0LCBzaTY0LCBmLCBkLCBsZCwgcCwKIAkJdWk4LCBzaTgpOwogCS8vIHsgZGctb3V0cHV0ICJcbjEgMiAzIDQgNSA2IDcgOCA5IDEwIDExIDB4MTIzNDU2NzggMSAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMHgxMjM0NTY3OCAxIDIgMyA0IDUgNiA3IDggOSAxMCAxMSAweDEyMzQ1Njc4IDEgMiAzIDQgNSA2IDcgOCA5IDEwIDExIDB4MTIzNDU2NzggMSAyOiAyIDMgNCA1IDYgNyA4IDkgMTAgMTEgMTIgMHgxMjM0NTY3OSAzIDQgNSA2IDcgOCA5IDEwIDExIDEyIDEzIDB4MTIzNDU2N2EgNCA1IDYgNyA4IDkgMTAgMTEgMTIgMTMgMTQgMHgxMjM0NTY3YiA1IDYgNyA4IDkgMTAgMTEgMTIgMTMgMTQgMTUgMHgxMjM0NTY3YyA2IDciIH0KLQlwcmludGYoInJlczogJWhodSAlaGhkICVodSAlaGQgJXUgJWQgJSIgUFJJdTY0ICIgJSIgUFJJZDY0ICIgJS4wZiAlLjBmICUuMExmICUjbHggIgotCQkiJWhodSAlaGhkICVodSAlaGQgJXUgJWQgJSIgUFJJdTY0ICIgJSIgUFJJZDY0ICIgJS4wZiAlLjBmICUuMExmICUjbHggIgotCQkiJWhodSAlaGhkICVodSAlaGQgJXUgJWQgJSIgUFJJdTY0ICIgJSIgUFJJZDY0ICIgJS4wZiAlLjBmICUuMExmICUjbHggIgotCQkiJWhodSAlaGhkICVodSAlaGQgJXUgJWQgJSIgUFJJdTY0ICIgJSIgUFJJZDY0ICIgJS4wZiAlLjBmICUuMExmICUjbHggJWhodSAlaGhkXG4iLAorCXByaW50ZigicmVzOiAlIiBQUkl1OCAiICUiIFBSSWQ4ICIgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAiCisJCSIlIiBQUkl1OCAiICUiIFBSSWQ4ICIgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAiCisJCSIlIiBQUkl1OCAiICUiIFBSSWQ4ICIgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAiCisJCSIlIiBQUkl1OCAiICUiIFBSSWQ4ICIgJWh1ICVoZCAldSAlZCAlIiBQUkl1NjQgIiAlIiBQUklkNjQgIiAlLjBmICUuMGYgJS4wTGYgJSNseCAlIiBQUkl1OCAiICUiIFBSSWQ4ICJcbiIsCiAJCXJldFZhbC5hLCByZXRWYWwuYiwgcmV0VmFsLmMsIHJldFZhbC5kLCByZXRWYWwuZSwgcmV0VmFsLmYsCiAJICAgICAgIHJldFZhbC5nLCByZXRWYWwuaCwgcmV0VmFsLmksIHJldFZhbC5qLCByZXRWYWwuaywgKHVuc2lnbmVkIGxvbmcpcmV0VmFsLmwsCiAJCXJldFZhbC5tLCByZXRWYWwubiwgcmV0VmFsLm8sIHJldFZhbC5wLCByZXRWYWwucSwgcmV0VmFsLnIsCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9tYW55Mi5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbWFueTIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDc3MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbWFueTIuYwpAQCAtMCwwICsxLDU0IEBACisvKiBBcmVhOiAgICAgICAgZmZpX2NhbGwKKyAgIFB1cnBvc2U6ICAgICBDaGVjayB1aW50OF90IGFyZ3VtZW50cy4KKyAgIExpbWl0YXRpb25zOiBub25lLgorICAgUFI6ICAgICAgICAgIFBSNDU2NzcuCisgICBPcmlnaW5hdG9yOiAgRGFuIFdpdHRlIDxkd2l0dGVAZ21haWwuY29tPiAyMDEwMDkxNiAgKi8KKworLyogeyBkZy1kbyBydW4gfSAqLworCisjaW5jbHVkZSAiZmZpdGVzdC5oIgorCisjZGVmaW5lIE5BUkdTIDcKKwordHlwZWRlZiB1bnNpZ25lZCBjaGFyIHU4OworCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIHVpbnQ4X3QKK2ZvbyAodWludDhfdCBhLCB1aW50OF90IGIsIHVpbnQ4X3QgYywgdWludDhfdCBkLAorICAgICB1aW50OF90IGUsIHVpbnQ4X3QgZiwgdWludDhfdCBnKQoreworICByZXR1cm4gYSArIGIgKyBjICsgZCArIGUgKyBmICsgZzsKK30KKwordWludDhfdAorYmFyICh1aW50OF90IGEsIHVpbnQ4X3QgYiwgdWludDhfdCBjLCB1aW50OF90IGQsCisgICAgIHVpbnQ4X3QgZSwgdWludDhfdCBmLCB1aW50OF90IGcpCit7CisgIHJldHVybiBmb28gKGEsIGIsIGMsIGQsIGUsIGYsIGcpOworfQorCitpbnQKK21haW4gKHZvaWQpCit7CisgIGZmaV90eXBlICpmZml0eXBlc1tOQVJHU107CisgIGludCBpOworICBmZmlfY2lmIGNpZjsKKyAgZmZpX2FyZyByZXN1bHQgPSAwOworICB1aW50OF90IGFyZ3NbTkFSR1NdOworICB2b2lkICphcmdwdHJzW05BUkdTXTsKKworICBmb3IgKGkgPSAwOyBpIDwgTkFSR1M7ICsraSkKKyAgICBmZml0eXBlc1tpXSA9ICZmZmlfdHlwZV91aW50ODsKKworICBDSEVDSyAoZmZpX3ByZXBfY2lmICgmY2lmLCBGRklfREVGQVVMVF9BQkksIE5BUkdTLAorCQkgICAgICAgJmZmaV90eXBlX3VpbnQ4LCBmZml0eXBlcykgPT0gRkZJX09LKTsKKworICBmb3IgKGkgPSAwOyBpIDwgTkFSR1M7ICsraSkKKyAgICB7CisgICAgICBhcmdzW2ldID0gaTsKKyAgICAgIGFyZ3B0cnNbaV0gPSAmYXJnc1tpXTsKKyAgICB9CisgIGZmaV9jYWxsICgmY2lmLCBGRklfRk4gKGJhciksICZyZXN1bHQsIGFyZ3B0cnMpOworCisgIENIRUNLIChyZXN1bHQgPT0gMjEpOworICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL21hbnkyX3dpbjMyLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9tYW55Ml93aW4zMi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRhZGJlNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9tYW55Ml93aW4zMi5jCkBAIC0wLDAgKzEsNjMgQEAKKy8qIEFyZWE6CWZmaV9jYWxsCisgICBQdXJwb3NlOglDaGVjayBzdGRjYWxsIG1hbnkgY2FsbCBvbiBYODZfV0lOMzIgc3lzdGVtcy4KKyAgIExpbWl0YXRpb25zOglub25lLgorICAgUFI6CQlub25lLgorICAgT3JpZ2luYXRvcjoJRnJvbSB0aGUgb3JpZ2luYWwgZmZpdGVzdC5jICAqLworCisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBpPzg2LSotY3lnd2luKiBpPzg2LSotbWluZ3cqIH0gfSAqLworCisjaW5jbHVkZSAiZmZpdGVzdC5oIgorI2luY2x1ZGUgPGZsb2F0Lmg+CisKK3N0YXRpYyBmbG9hdCBfX2F0dHJpYnV0ZV9fKChmYXN0Y2FsbCkpIGZhc3RjYWxsX21hbnkoZmxvYXQgZjEsCisJCQkJCQkgICBmbG9hdCBmMiwKKwkJCQkJCSAgIGZsb2F0IGYzLAorCQkJCQkJICAgZmxvYXQgZjQsCisJCQkJCQkgICBmbG9hdCBmNSwKKwkJCQkJCSAgIGZsb2F0IGY2LAorCQkJCQkJICAgZmxvYXQgZjcsCisJCQkJCQkgICBmbG9hdCBmOCwKKwkJCQkJCSAgIGZsb2F0IGY5LAorCQkJCQkJICAgZmxvYXQgZjEwLAorCQkJCQkJICAgZmxvYXQgZjExLAorCQkJCQkJICAgZmxvYXQgZjEyLAorCQkJCQkJICAgZmxvYXQgZjEzKQoreworICByZXR1cm4gKChmMS9mMitmMy9mNCtmNS9mNitmNy9mOCtmOS9mMTArZjExL2YxMikgKiBmMTMpOworfQorCitpbnQgbWFpbiAodm9pZCkKK3sKKyAgZmZpX2NpZiBjaWY7CisgIGZmaV90eXBlICphcmdzWzEzXTsKKyAgdm9pZCAqdmFsdWVzWzEzXTsKKyAgZmxvYXQgZmFbMTNdOworICBmbG9hdCBmLCBmZjsKKyAgdW5zaWduZWQgbG9uZyB1bDsKKworICBmb3IgKHVsID0gMDsgdWwgPCAxMzsgdWwrKykKKyAgICB7CisgICAgICBhcmdzW3VsXSA9ICZmZmlfdHlwZV9mbG9hdDsKKyAgICAgIHZhbHVlc1t1bF0gPSAmZmFbdWxdOworCWZhW3VsXSA9IChmbG9hdCkgdWw7CisgICAgfQorCisgIC8qIEluaXRpYWxpemUgdGhlIGNpZiAqLworICBDSEVDSyhmZmlfcHJlcF9jaWYoJmNpZiwgRkZJX0ZBU1RDQUxMLCAxMywKKwkJICAgICAmZmZpX3R5cGVfZmxvYXQsIGFyZ3MpID09IEZGSV9PSyk7CisKKyAgZmYgPSAgZmFzdGNhbGxfbWFueShmYVswXSwgZmFbMV0sCisJCSAgICAgZmFbMl0sIGZhWzNdLAorCQkgICAgIGZhWzRdLCBmYVs1XSwKKwkJICAgICBmYVs2XSwgZmFbN10sCisJCSAgICAgZmFbOF0sIGZhWzldLAorCQkgICAgIGZhWzEwXSwgZmFbMTFdLCBmYVsxMl0pOworCisgIGZmaV9jYWxsKCZjaWYsIEZGSV9GTihmYXN0Y2FsbF9tYW55KSwgJmYsIHZhbHVlcyk7CisKKyAgaWYgKGYgLSBmZiA8IEZMVF9FUFNJTE9OKQorICAgIHByaW50ZigiZmFzdGNhbGwgbWFueSBhcmcgdGVzdHMgb2shXG4iKTsKKyAgZWxzZQorICAgIENIRUNLKDApOworICBleGl0KDApOworfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdC5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdC5jCmluZGV4IDhhYTUyN2UuLmMxNWUzYTAgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0LmMKQEAgLTc3LDYgKzc3LDEyIEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZSwgY2xzX3N0cnVjdF90eXBlMSwgY2xzX3N0cnVjdF90eXBlMjsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKKyAgc3RydWN0IGNsc19zdHJ1Y3RfMTZieXRlMSBlX2RibCA9IHsgOS4wLCAyLjAsIDZ9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF8xNmJ5dGUyIGZfZGJsID0geyAxLCAyLjAsIDMuMH07CisgIHN0cnVjdCBjbHNfc3RydWN0X2NvbWJpbmVkIGdfZGJsID0ge3s0LjAsIDUuMCwgNn0sCisJCQkJICAgICAgezMsIDEuMCwgOC4wfX07CisgIHN0cnVjdCBjbHNfc3RydWN0X2NvbWJpbmVkIHJlc19kYmw7CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CkBAIC05MiwxMiArOTgsNiBAQAogICBjbHNfc3RydWN0X3R5cGUyLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZTIuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczI7CiAKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMTZieXRlMSBlX2RibCA9IHsgOS4wLCAyLjAsIDZ9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF8xNmJ5dGUyIGZfZGJsID0geyAxLCAyLjAsIDMuMH07Ci0gIHN0cnVjdCBjbHNfc3RydWN0X2NvbWJpbmVkIGdfZGJsID0ge3s0LjAsIDUuMCwgNn0sCi0JCQkJICAgICAgezMsIDEuMCwgOC4wfX07Ci0gIHN0cnVjdCBjbHNfc3RydWN0X2NvbWJpbmVkIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfZG91YmxlOwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV9mbG9hdDsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSAmZmZpX3R5cGVfc2ludDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QxLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0MS5jCmluZGV4IDJhOWY1MTUuLjEwODdmN2IgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QxLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDEuYwpAQCAtODEsNiArODEsMTMgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlLCBjbHNfc3RydWN0X3R5cGUxLCBjbHNfc3RydWN0X3R5cGUyOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF8xNmJ5dGUxIGVfZGJsID0geyA5LjAsIDIuMCwgNn07CisgIHN0cnVjdCBjbHNfc3RydWN0XzE2Ynl0ZTIgZl9kYmwgPSB7IDEsIDIuMCwgMy4wfTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfY29tYmluZWQgZ19kYmwgPSB7ezQuMCwgNS4wLCA2fSwKKwkJCQkgICAgICB7MywgMS4wLCA4LjB9fTsKKyAgc3RydWN0IGNsc19zdHJ1Y3RfMTZieXRlMSBoX2RibCA9IHsgMy4wLCAyLjAsIDR9OworICBzdHJ1Y3QgY2xzX3N0cnVjdF9jb21iaW5lZCByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwpAQCAtOTYsMTMgKzEwMyw2IEBACiAgIGNsc19zdHJ1Y3RfdHlwZTIudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlMi5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzMjsKIAotICBzdHJ1Y3QgY2xzX3N0cnVjdF8xNmJ5dGUxIGVfZGJsID0geyA5LjAsIDIuMCwgNn07Ci0gIHN0cnVjdCBjbHNfc3RydWN0XzE2Ynl0ZTIgZl9kYmwgPSB7IDEsIDIuMCwgMy4wfTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfY29tYmluZWQgZ19kYmwgPSB7ezQuMCwgNS4wLCA2fSwKLQkJCQkgICAgICB7MywgMS4wLCA4LjB9fTsKLSAgc3RydWN0IGNsc19zdHJ1Y3RfMTZieXRlMSBoX2RibCA9IHsgMy4wLCAyLjAsIDR9OwotICBzdHJ1Y3QgY2xzX3N0cnVjdF9jb21iaW5lZCByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX2RvdWJsZTsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfZmxvYXQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX3NpbnQ7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0MTAuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QxMC5jCmluZGV4IGQ2YTcxOGIuLjM0YTc0ZTcgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QxMC5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QxMC5jCkBAIC02Nyw2ICs2NywxMiBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGUsIGNsc19zdHJ1Y3RfdHlwZTEsIGNsc19zdHJ1Y3RfdHlwZTI7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzRdOwogCisgIHN0cnVjdCBBIGVfZGJsID0geyAxTEwsIDd9OworICBzdHJ1Y3QgQiBmX2RibCA9IHsgOTksIHsxMkxMICwgMTI3fSwgMjU1fTsKKyAgc3RydWN0IEMgZ19kYmwgPSB7IDJMTCwgOX07CisKKyAgc3RydWN0IEIgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKQEAgLTgyLDEyICs4OCw2IEBACiAgIGNsc19zdHJ1Y3RfdHlwZTIudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlMi5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzMjsKIAotICBzdHJ1Y3QgQSBlX2RibCA9IHsgMUxMLCA3fTsKLSAgc3RydWN0IEIgZl9kYmwgPSB7IDk5LCB7MTJMTCAsIDEyN30sIDI1NX07Ci0gIHN0cnVjdCBDIGdfZGJsID0geyAyTEwsIDl9OwotCi0gIHN0cnVjdCBCIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfdWludDY0OwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSBOVUxMOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDIuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QyLmMKaW5kZXggZGUxNTg0Yy4uNjkyNjhjZCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDIuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Mi5jCkBAIC01Nyw2ICs1NywxMSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGUsIGNsc19zdHJ1Y3RfdHlwZTE7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzNdOwogCisgIHN0cnVjdCBBIGVfZGJsID0geyAxLCA3fTsKKyAgc3RydWN0IEIgZl9kYmwgPSB7ezEyICwgMTI3fSwgOTl9OworCisgIHN0cnVjdCBCIHJlc19kYmw7CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CkBAIC02NywxMSArNzIsNiBAQAogICBjbHNfc3RydWN0X3R5cGUxLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZTEuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczE7CiAKLSAgc3RydWN0IEEgZV9kYmwgPSB7IDEsIDd9OwotICBzdHJ1Y3QgQiBmX2RibCA9IHt7MTIgLCAxMjd9LCA5OX07Ci0KLSAgc3RydWN0IEIgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91bG9uZzsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gTlVMTDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QzLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0My5jCmluZGV4IDU4YWE4NTMuLmFiMThjYWQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3QzLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDMuYwpAQCAtNTgsNiArNTgsMTEgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlLCBjbHNfc3RydWN0X3R5cGUxOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1szXTsKIAorICBzdHJ1Y3QgQSBlX2RibCA9IHsgMUxMLCA3fTsKKyAgc3RydWN0IEIgZl9kYmwgPSB7ezEyTEwgLCAxMjd9LCA5OX07CisKKyAgc3RydWN0IEIgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKQEAgLTY4LDExICs3Myw2IEBACiAgIGNsc19zdHJ1Y3RfdHlwZTEudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlMS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzMTsKIAotICBzdHJ1Y3QgQSBlX2RibCA9IHsgMUxMLCA3fTsKLSAgc3RydWN0IEIgZl9kYmwgPSB7ezEyTEwgLCAxMjd9LCA5OX07Ci0KLSAgc3RydWN0IEIgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91aW50NjQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9IE5VTEw7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0NC5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDQuYwppbmRleCA5OGU0OTFlLi4yZmZiNGQ2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0NC5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q0LmMKQEAgLTU4LDYgKzU4LDExIEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZSwgY2xzX3N0cnVjdF90eXBlMTsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbM107CiAKKyAgc3RydWN0IEEgZV9kYmwgPSB7IDEuMCwgN307CisgIHN0cnVjdCBCIGZfZGJsID0ge3sxMi4wICwgMTI3fSwgOTl9OworCisgIHN0cnVjdCBCIHJlc19kYmw7CisKICAgY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwogICBjbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CkBAIC02OCwxMSArNzMsNiBAQAogICBjbHNfc3RydWN0X3R5cGUxLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CiAgIGNsc19zdHJ1Y3RfdHlwZTEuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczE7CiAKLSAgc3RydWN0IEEgZV9kYmwgPSB7IDEuMCwgN307Ci0gIHN0cnVjdCBCIGZfZGJsID0ge3sxMi4wICwgMTI3fSwgOTl9OwotCi0gIHN0cnVjdCBCIHJlc19kYmw7Ci0KICAgY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfZG91YmxlOwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV91Y2hhcjsKICAgY2xzX3N0cnVjdF9maWVsZHNbMl0gPSBOVUxMOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDUuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q1LmMKaW5kZXggZDhlMzUzNy4uNmM3OTg0NSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDUuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0NS5jCkBAIC01OCw2ICs1OCwxMSBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGUsIGNsc19zdHJ1Y3RfdHlwZTE7CiAgIGZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzNdOwogCisgIHN0cnVjdCBBIGVfZGJsID0geyAxLjAsIDd9OworICBzdHJ1Y3QgQiBmX2RibCA9IHt7MTIuMCAsIDEyN30sIDk5fTsKKworICBzdHJ1Y3QgQiByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwpAQCAtNjgsMTEgKzczLDYgQEAKICAgY2xzX3N0cnVjdF90eXBlMS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUxLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHMxOwogCi0gIHN0cnVjdCBBIGVfZGJsID0geyAxLjAsIDd9OwotICBzdHJ1Y3QgQiBmX2RibCA9IHt7MTIuMCAsIDEyN30sIDk5fTsKLQotICBzdHJ1Y3QgQiByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX2xvbmdkb3VibGU7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9IE5VTEw7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Ni5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDYuYwppbmRleCAyZjJiMjVhLi41OWQzNTc5IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Ni5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q2LmMKQEAgLTY2LDYgKzY2LDEyIEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZSwgY2xzX3N0cnVjdF90eXBlMSwgY2xzX3N0cnVjdF90eXBlMjsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNF07CiAKKyAgc3RydWN0IEEgZV9kYmwgPSB7IDEuMCwgN307CisgIHN0cnVjdCBCIGZfZGJsID0ge3sxMi4wICwgMTI3fSwgOTl9OworICBzdHJ1Y3QgQyBnX2RibCA9IHsgMiwgOX07CisKKyAgc3RydWN0IEIgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKQEAgLTgxLDEyICs4Nyw2IEBACiAgIGNsc19zdHJ1Y3RfdHlwZTIudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlMi5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzMjsKIAotICBzdHJ1Y3QgQSBlX2RibCA9IHsgMS4wLCA3fTsKLSAgc3RydWN0IEIgZl9kYmwgPSB7ezEyLjAgLCAxMjd9LCA5OX07Ci0gIHN0cnVjdCBDIGdfZGJsID0geyAyLCA5fTsKLQotICBzdHJ1Y3QgQiByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX2RvdWJsZTsKICAgY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfdWNoYXI7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gTlVMTDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q3LmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0Ny5jCmluZGV4IDE0YzcwMjMuLjI3NTk1ZTYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q3LmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDcuYwpAQCAtNTgsNiArNTgsMTEgQEAKICAgZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlLCBjbHNfc3RydWN0X3R5cGUxOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1szXTsKIAorICBzdHJ1Y3QgQSBlX2RibCA9IHsgMUxMLCA3fTsKKyAgc3RydWN0IEIgZl9kYmwgPSB7ezEyLjAgLCAxMjd9LCA5OX07CisKKyAgc3RydWN0IEIgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKQEAgLTY4LDExICs3Myw2IEBACiAgIGNsc19zdHJ1Y3RfdHlwZTEudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlMS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzMTsKIAotICBzdHJ1Y3QgQSBlX2RibCA9IHsgMUxMLCA3fTsKLSAgc3RydWN0IEIgZl9kYmwgPSB7ezEyLjAgLCAxMjd9LCA5OX07Ci0KLSAgc3RydWN0IEIgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91aW50NjQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9IE5VTEw7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0OC5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDguYwppbmRleCBiYjc3ZWFkLi4wZTZjNjgyIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0OC5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q4LmMKQEAgLTY2LDYgKzY2LDEyIEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZSwgY2xzX3N0cnVjdF90eXBlMSwgY2xzX3N0cnVjdF90eXBlMjsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNF07CiAKKyAgc3RydWN0IEEgZV9kYmwgPSB7IDFMTCwgN307CisgIHN0cnVjdCBCIGZfZGJsID0ge3sxMkxMICwgMTI3fSwgOTl9OworICBzdHJ1Y3QgQyBnX2RibCA9IHsgMkxMLCA5fTsKKworICBzdHJ1Y3QgQiByZXNfZGJsOworCiAgIGNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKICAgY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwpAQCAtODEsMTIgKzg3LDYgQEAKICAgY2xzX3N0cnVjdF90eXBlMi50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUyLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHMyOwogCi0gIHN0cnVjdCBBIGVfZGJsID0geyAxTEwsIDd9OwotICBzdHJ1Y3QgQiBmX2RibCA9IHt7MTJMTCAsIDEyN30sIDk5fTsKLSAgc3RydWN0IEMgZ19kYmwgPSB7IDJMTCwgOX07Ci0KLSAgc3RydWN0IEIgcmVzX2RibDsKLQogICBjbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV91aW50NjQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1syXSA9IE5VTEw7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0OS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvbmVzdGVkX3N0cnVjdDkuYwppbmRleCBlOWY1NDFjLi41ZjdhYzY3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9uZXN0ZWRfc3RydWN0OS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL25lc3RlZF9zdHJ1Y3Q5LmMKQEAgLTY2LDYgKzY2LDEyIEBACiAgIGZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZSwgY2xzX3N0cnVjdF90eXBlMSwgY2xzX3N0cnVjdF90eXBlMjsKICAgZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNF07CiAKKyAgc3RydWN0IEEgZV9kYmwgPSB7IDEsIDdMTH07CisgIHN0cnVjdCBCIGZfZGJsID0ge3sxMi4wICwgMTI3fSwgOTl9OworICBzdHJ1Y3QgQyBnX2RibCA9IHsgMiwgOX07CisKKyAgc3RydWN0IEIgcmVzX2RibDsKKwogICBjbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwogICBjbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKQEAgLTgxLDEyICs4Nyw2IEBACiAgIGNsc19zdHJ1Y3RfdHlwZTIudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKICAgY2xzX3N0cnVjdF90eXBlMi5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzMjsKIAotICBzdHJ1Y3QgQSBlX2RibCA9IHsgMSwgN0xMfTsKLSAgc3RydWN0IEIgZl9kYmwgPSB7ezEyLjAgLCAxMjd9LCA5OX07Ci0gIHN0cnVjdCBDIGdfZGJsID0geyAyLCA5fTsKLQotICBzdHJ1Y3QgQiByZXNfZGJsOwotCiAgIGNsc19zdHJ1Y3RfZmllbGRzWzBdID0gJmZmaV90eXBlX3VjaGFyOwogICBjbHNfc3RydWN0X2ZpZWxkc1sxXSA9ICZmZmlfdHlwZV91aW50NjQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzWzJdID0gTlVMTDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3JldHVybl9zYy5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvcmV0dXJuX3NjLmMKaW5kZXggMTk2MDhlZS4uYTM2Y2YzZSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvcmV0dXJuX3NjLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvcmV0dXJuX3NjLmMKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICBzYyA8IChzaWduZWQgY2hhcikgMTI3OyBzYysrKQogICAgIHsKICAgICAgIGZmaV9jYWxsKCZjaWYsIEZGSV9GTihyZXR1cm5fc2MpLCAmcmludCwgdmFsdWVzKTsKLSAgICAgIENIRUNLKHJpbnQgPT0gKGZmaV9hcmcpIHNjKTsKKyAgICAgIENIRUNLKChzaWduZWQgY2hhcilyaW50ID09IHNjKTsKICAgICB9CiAgIGV4aXQoMCk7CiB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJldF9sYXJnZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RyZXRfbGFyZ2UuYwppbmRleCAyM2E5M2I5Li5mMzI5MzhjIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJldF9sYXJnZS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X2xhcmdlLmMKQEAgLTgyLDE3ICs4MiwxNyBAQAogCWZmaV90eXBlIGNsc19zdHJ1Y3RfdHlwZTsKIAlmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAotCWNsc19zdHJ1Y3RfdHlwZS5zaXplID0gMDsKLQljbHNfc3RydWN0X3R5cGUuYWxpZ25tZW50ID0gMDsKLQljbHNfc3RydWN0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKLQljbHNfc3RydWN0X3R5cGUuZWxlbWVudHMgPSBjbHNfc3RydWN0X2ZpZWxkczsKLQogCXN0cnVjdF8xMDhieXRlIGVfZGJsID0geyA5LjAsIDIuMCwgNi4wLCA1LjAsIDMuMCwgNC4wLCA4LjAsIDEuMCwgMS4wLCAyLjAsIDMuMCwgNy4wLCAyLjAsIDcgfTsKIAlzdHJ1Y3RfMTA4Ynl0ZSBmX2RibCA9IHsgMS4wLCAyLjAsIDMuMCwgNy4wLCAyLjAsIDUuMCwgNi4wLCA3LjAsIDQuMCwgNS4wLCA3LjAsIDkuMCwgMS4wLCA0IH07CiAJc3RydWN0XzEwOGJ5dGUgZ19kYmwgPSB7IDQuMCwgNS4wLCA3LjAsIDkuMCwgMS4wLCAxLjAsIDIuMCwgOS4wLCA4LjAsIDYuMCwgMS4wLCA0LjAsIDAuMCwgMyB9OwogCXN0cnVjdF8xMDhieXRlIGhfZGJsID0geyA4LjAsIDYuMCwgMS4wLCA0LjAsIDAuMCwgMy4wLCAzLjAsIDEuMCwgOS4wLCAyLjAsIDYuMCwgNS4wLCAzLjAsIDIgfTsKIAlzdHJ1Y3RfMTA4Ynl0ZSByZXNfZGJsOwogCisJY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOworCWNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOworCWNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOworCWNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOworCiAJY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfZG91YmxlOwogCWNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX2RvdWJsZTsKIAljbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV9kb3VibGU7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJldF9sYXJnZTIuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X2xhcmdlMi5jCmluZGV4IGUyNTk5ZDIuLjNiMGVmOWEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X2xhcmdlMi5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X2xhcmdlMi5jCkBAIC04NCwxNyArODQsMTcgQEAKIAlmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAJZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKLQljbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7Ci0JY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7Ci0JY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7Ci0JY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7Ci0KIAlzdHJ1Y3RfMTE2Ynl0ZSBlX2RibCA9IHsgOS4wLCAyLjAsIDYuMCwgNS4wLCAzLjAsIDQuMCwgOC4wLCAxLjAsIDEuMCwgMi4wLCAzLjAsIDcuMCwgMi4wLCA1LjAsIDcgfTsKIAlzdHJ1Y3RfMTE2Ynl0ZSBmX2RibCA9IHsgMS4wLCAyLjAsIDMuMCwgNy4wLCAyLjAsIDUuMCwgNi4wLCA3LjAsIDQuMCwgNS4wLCA3LjAsIDkuMCwgMS4wLCA2LjAsIDQgfTsKIAlzdHJ1Y3RfMTE2Ynl0ZSBnX2RibCA9IHsgNC4wLCA1LjAsIDcuMCwgOS4wLCAxLjAsIDEuMCwgMi4wLCA5LjAsIDguMCwgNi4wLCAxLjAsIDQuMCwgMC4wLCA3LjAsIDMgfTsKIAlzdHJ1Y3RfMTE2Ynl0ZSBoX2RibCA9IHsgOC4wLCA2LjAsIDEuMCwgNC4wLCAwLjAsIDMuMCwgMy4wLCAxLjAsIDkuMCwgMi4wLCA2LjAsIDUuMCwgMy4wLCA4LjAsIDIgfTsKIAlzdHJ1Y3RfMTE2Ynl0ZSByZXNfZGJsOwogCisJY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOworCWNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOworCWNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOworCWNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOworCiAJY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfZG91YmxlOwogCWNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX2RvdWJsZTsKIAljbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV9kb3VibGU7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJldF9tZWRpdW0uYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X21lZGl1bS5jCmluZGV4IDFmYzZhOWUuLjk3M2VlMDIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X21lZGl1bS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X21lZGl1bS5jCkBAIC02OCwxNyArNjgsMTcgQEAKIAlmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGU7CiAJZmZpX3R5cGUqIGRibF9hcmdfdHlwZXNbNV07CiAKLQljbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7Ci0JY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7Ci0JY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7Ci0JY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7Ci0KIAlzdHJ1Y3RfNzJieXRlIGVfZGJsID0geyA5LjAsIDIuMCwgNi4wLCA1LjAsIDMuMCwgNC4wLCA4LjAsIDEuMCwgNy4wIH07CiAJc3RydWN0XzcyYnl0ZSBmX2RibCA9IHsgMS4wLCAyLjAsIDMuMCwgNy4wLCAyLjAsIDUuMCwgNi4wLCA3LjAsIDQuMCB9OwogCXN0cnVjdF83MmJ5dGUgZ19kYmwgPSB7IDQuMCwgNS4wLCA3LjAsIDkuMCwgMS4wLCAxLjAsIDIuMCwgOS4wLCAzLjAgfTsKIAlzdHJ1Y3RfNzJieXRlIGhfZGJsID0geyA4LjAsIDYuMCwgMS4wLCA0LjAsIDAuMCwgMy4wLCAzLjAsIDEuMCwgMi4wIH07CiAJc3RydWN0XzcyYnl0ZSByZXNfZGJsOwogCisJY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOworCWNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOworCWNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOworCWNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOworCiAJY2xzX3N0cnVjdF9maWVsZHNbMF0gPSAmZmZpX3R5cGVfZG91YmxlOwogCWNsc19zdHJ1Y3RfZmllbGRzWzFdID0gJmZmaV90eXBlX2RvdWJsZTsKIAljbHNfc3RydWN0X2ZpZWxkc1syXSA9ICZmZmlfdHlwZV9kb3VibGU7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJldF9tZWRpdW0yLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJldF9tZWRpdW0yLmMKaW5kZXggY2IyZjJmYi4uODQzMjNkMSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RyZXRfbWVkaXVtMi5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmV0X21lZGl1bTIuYwpAQCAtNjksMTcgKzY5LDE3IEBACiAJZmZpX3R5cGUgY2xzX3N0cnVjdF90eXBlOwogCWZmaV90eXBlKiBkYmxfYXJnX3R5cGVzWzVdOwogCi0JY2xzX3N0cnVjdF90eXBlLnNpemUgPSAwOwotCWNsc19zdHJ1Y3RfdHlwZS5hbGlnbm1lbnQgPSAwOwotCWNsc19zdHJ1Y3RfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwotCWNsc19zdHJ1Y3RfdHlwZS5lbGVtZW50cyA9IGNsc19zdHJ1Y3RfZmllbGRzOwotCiAJc3RydWN0XzcyYnl0ZSBlX2RibCA9IHsgOS4wLCAyLjAsIDYuMCwgNS4wLCAzLjAsIDQuMCwgOC4wLCAxLjAsIDcgfTsKIAlzdHJ1Y3RfNzJieXRlIGZfZGJsID0geyAxLjAsIDIuMCwgMy4wLCA3LjAsIDIuMCwgNS4wLCA2LjAsIDcuMCwgNCB9OwogCXN0cnVjdF83MmJ5dGUgZ19kYmwgPSB7IDQuMCwgNS4wLCA3LjAsIDkuMCwgMS4wLCAxLjAsIDIuMCwgOS4wLCAzIH07CiAJc3RydWN0XzcyYnl0ZSBoX2RibCA9IHsgOC4wLCA2LjAsIDEuMCwgNC4wLCAwLjAsIDMuMCwgMy4wLCAxLjAsIDIgfTsKIAlzdHJ1Y3RfNzJieXRlIHJlc19kYmw7CiAKKwljbHNfc3RydWN0X3R5cGUuc2l6ZSA9IDA7CisJY2xzX3N0cnVjdF90eXBlLmFsaWdubWVudCA9IDA7CisJY2xzX3N0cnVjdF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CisJY2xzX3N0cnVjdF90eXBlLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHM7CisKIAljbHNfc3RydWN0X2ZpZWxkc1swXSA9ICZmZmlfdHlwZV9kb3VibGU7CiAJY2xzX3N0cnVjdF9maWVsZHNbMV0gPSAmZmZpX3R5cGVfZG91YmxlOwogCWNsc19zdHJ1Y3RfZmllbGRzWzJdID0gJmZmaV90eXBlX2RvdWJsZTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmxlbjJfd2luMzIuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cmxlbjJfd2luMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDgxMDYxCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RybGVuMl93aW4zMi5jCkBAIC0wLDAgKzEsNDQgQEAKKy8qIEFyZWE6CWZmaV9jYWxsCisgICBQdXJwb3NlOglDaGVjayBmYXN0Y2FsbCBzdHJsZW4gY2FsbCBvbiBYODZfV0lOMzIgc3lzdGVtcy4KKyAgIExpbWl0YXRpb25zOglub25lLgorICAgUFI6CQlub25lLgorICAgT3JpZ2luYXRvcjoJRnJvbSB0aGUgb3JpZ2luYWwgZmZpdGVzdC5jICAqLworCisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBpPzg2LSotY3lnd2luKiBpPzg2LSotbWluZ3cqIH0gfSAqLworCisjaW5jbHVkZSAiZmZpdGVzdC5oIgorCitzdGF0aWMgc2l6ZV90IF9fRkFTVENBTExfXyBteV9mYXN0Y2FsbF9zdHJsZW4oY2hhciAqcykKK3sKKyAgcmV0dXJuIChzdHJsZW4ocykpOworfQorCitpbnQgbWFpbiAodm9pZCkKK3sKKyAgZmZpX2NpZiBjaWY7CisgIGZmaV90eXBlICphcmdzW01BWF9BUkdTXTsKKyAgdm9pZCAqdmFsdWVzW01BWF9BUkdTXTsKKyAgZmZpX2FyZyByaW50OworICBjaGFyICpzOworICBhcmdzWzBdID0gJmZmaV90eXBlX3BvaW50ZXI7CisgIHZhbHVlc1swXSA9ICh2b2lkKikgJnM7CisgIAorICAvKiBJbml0aWFsaXplIHRoZSBjaWYgKi8KKyAgQ0hFQ0soZmZpX3ByZXBfY2lmKCZjaWYsIEZGSV9GQVNUQ0FMTCwgMSwKKwkJICAgICAgICZmZmlfdHlwZV9zaW50LCBhcmdzKSA9PSBGRklfT0spOworICAKKyAgcyA9ICJhIjsKKyAgZmZpX2NhbGwoJmNpZiwgRkZJX0ZOKG15X2Zhc3RjYWxsX3N0cmxlbiksICZyaW50LCB2YWx1ZXMpOworICBDSEVDSyhyaW50ID09IDEpOworICAKKyAgcyA9ICIxMjM0NTY3IjsKKyAgZmZpX2NhbGwoJmNpZiwgRkZJX0ZOKG15X2Zhc3RjYWxsX3N0cmxlbiksICZyaW50LCB2YWx1ZXMpOworICBDSEVDSyhyaW50ID09IDcpOworICAKKyAgcyA9ICIxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1IjsKKyAgZmZpX2NhbGwoJmNpZiwgRkZJX0ZOKG15X2Zhc3RjYWxsX3N0cmxlbiksICZyaW50LCB2YWx1ZXMpOworICBDSEVDSyhyaW50ID09IDI1KTsKKyAgCisgIHByaW50ZigiZmFzdGNhbGwgc3RybGVuIHRlc3RzIHBhc3NlZFxuIik7CisgIGV4aXQoMCk7Cit9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QxLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QxLmMKaW5kZXggZWE3NmM4NS4uYmZjMjNmNiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0MS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDEuYwpAQCAtMzAsNiArMzAsMTMgQEAKICAgdm9pZCAqdmFsdWVzW01BWF9BUkdTXTsKICAgZmZpX3R5cGUgdHMxX3R5cGU7CiAgIGZmaV90eXBlICp0czFfdHlwZV9lbGVtZW50c1s0XTsKKworICB0ZXN0X3N0cnVjdHVyZV8xIHRzMV9hcmc7CisKKyAgLyogVGhpcyBpcyBhIGhhY2sgdG8gZ2V0IGEgcHJvcGVybHkgYWxpZ25lZCByZXN1bHQgYnVmZmVyICovCisgIHRlc3Rfc3RydWN0dXJlXzEgKnRzMV9yZXN1bHQgPQorICAgICh0ZXN0X3N0cnVjdHVyZV8xICopIG1hbGxvYyAoc2l6ZW9mKHRlc3Rfc3RydWN0dXJlXzEpKTsKKwogICB0czFfdHlwZS5zaXplID0gMDsKICAgdHMxX3R5cGUuYWxpZ25tZW50ID0gMDsKICAgdHMxX3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKQEAgLTM5LDExICs0Niw2IEBACiAgIHRzMV90eXBlX2VsZW1lbnRzWzJdID0gJmZmaV90eXBlX3VpbnQ7CiAgIHRzMV90eXBlX2VsZW1lbnRzWzNdID0gTlVMTDsKICAgCi0gIHRlc3Rfc3RydWN0dXJlXzEgdHMxX2FyZzsKLSAgLyogVGhpcyBpcyBhIGhhY2sgdG8gZ2V0IGEgcHJvcGVybHkgYWxpZ25lZCByZXN1bHQgYnVmZmVyICovCi0gIHRlc3Rfc3RydWN0dXJlXzEgKnRzMV9yZXN1bHQgPSAKLSAgICAodGVzdF9zdHJ1Y3R1cmVfMSAqKSBtYWxsb2MgKHNpemVvZih0ZXN0X3N0cnVjdHVyZV8xKSk7Ci0gIAogICBhcmdzWzBdID0gJnRzMV90eXBlOwogICB2YWx1ZXNbMF0gPSAmdHMxX2FyZzsKICAgCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QxX3dpbjMyLmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QxX3dpbjMyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjc1NmY1YQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDFfd2luMzIuYwpAQCAtMCwwICsxLDY3IEBACisvKiBBcmVhOglmZmlfY2FsbAorICAgUHVycG9zZToJQ2hlY2sgc3RydWN0dXJlcyB3aXRoIGZhc3RjYWxsL3RoaXNjYWxsIGNvbnZlbnRpb24uCisgICBMaW1pdGF0aW9uczoJbm9uZS4KKyAgIFBSOgkJbm9uZS4KKyAgIE9yaWdpbmF0b3I6CUZyb20gdGhlIG9yaWdpbmFsIGZmaXRlc3QuYyAgKi8KKworLyogeyBkZy1kbyBydW4geyB0YXJnZXQgaT84Ni0qLWN5Z3dpbiogaT84Ni0qLW1pbmd3KiB9IH0gKi8KKyNpbmNsdWRlICJmZml0ZXN0LmgiCisKK3R5cGVkZWYgc3RydWN0Cit7CisgIHVuc2lnbmVkIGNoYXIgdWM7CisgIGRvdWJsZSBkOworICB1bnNpZ25lZCBpbnQgdWk7Cit9IHRlc3Rfc3RydWN0dXJlXzE7CisKK3N0YXRpYyB0ZXN0X3N0cnVjdHVyZV8xIF9fRkFTVENBTExfXyBzdHJ1Y3QxKHRlc3Rfc3RydWN0dXJlXzEgdHMpCit7CisgIHRzLnVjKys7CisgIHRzLmQtLTsKKyAgdHMudWkrKzsKKworICByZXR1cm4gdHM7Cit9CisKK2ludCBtYWluICh2b2lkKQoreworICBmZmlfY2lmIGNpZjsKKyAgZmZpX3R5cGUgKmFyZ3NbTUFYX0FSR1NdOworICB2b2lkICp2YWx1ZXNbTUFYX0FSR1NdOworICBmZmlfdHlwZSB0czFfdHlwZTsKKyAgZmZpX3R5cGUgKnRzMV90eXBlX2VsZW1lbnRzWzRdOworCisgIHRlc3Rfc3RydWN0dXJlXzEgdHMxX2FyZzsKKworICAvKiBUaGlzIGlzIGEgaGFjayB0byBnZXQgYSBwcm9wZXJseSBhbGlnbmVkIHJlc3VsdCBidWZmZXIgKi8KKyAgdGVzdF9zdHJ1Y3R1cmVfMSAqdHMxX3Jlc3VsdCA9CisgICAgKHRlc3Rfc3RydWN0dXJlXzEgKikgbWFsbG9jIChzaXplb2YodGVzdF9zdHJ1Y3R1cmVfMSkpOworCisgIHRzMV90eXBlLnNpemUgPSAwOworICB0czFfdHlwZS5hbGlnbm1lbnQgPSAwOworICB0czFfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOworICB0czFfdHlwZS5lbGVtZW50cyA9IHRzMV90eXBlX2VsZW1lbnRzOworICB0czFfdHlwZV9lbGVtZW50c1swXSA9ICZmZmlfdHlwZV91Y2hhcjsKKyAgdHMxX3R5cGVfZWxlbWVudHNbMV0gPSAmZmZpX3R5cGVfZG91YmxlOworICB0czFfdHlwZV9lbGVtZW50c1syXSA9ICZmZmlfdHlwZV91aW50OworICB0czFfdHlwZV9lbGVtZW50c1szXSA9IE5VTEw7CisgIAorICBhcmdzWzBdID0gJnRzMV90eXBlOworICB2YWx1ZXNbMF0gPSAmdHMxX2FyZzsKKyAgCisgIC8qIEluaXRpYWxpemUgdGhlIGNpZiAqLworICBDSEVDSyhmZmlfcHJlcF9jaWYoJmNpZiwgRkZJX0ZBU1RDQUxMLCAxLCAKKwkJICAgICAmdHMxX3R5cGUsIGFyZ3MpID09IEZGSV9PSyk7CisgIAorICB0czFfYXJnLnVjID0gJ1x4MDEnOworICB0czFfYXJnLmQgPSAzLjE0MTU5OworICB0czFfYXJnLnVpID0gNTU1OworCisgIGZmaV9jYWxsKCZjaWYsIEZGSV9GTihzdHJ1Y3QxKSwgdHMxX3Jlc3VsdCwgdmFsdWVzKTsKKyAgCisgIENIRUNLKHRzMV9yZXN1bHQtPnVpID09IDU1Nik7CisgIENIRUNLKHRzMV9yZXN1bHQtPmQgPT0gMy4xNDE1OSAtIDEpOworIAorICBmcmVlICh0czFfcmVzdWx0KTsKKyAgZXhpdCgwKTsKK30KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDIuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDIuYwppbmRleCAxNGJjOWZkLi5kODUzODVlIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QyLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0Mi5jCkBAIC0yOSw2ICsyOSwxMSBAQAogICB0ZXN0X3N0cnVjdHVyZV8yIHRzMl9hcmc7CiAgIGZmaV90eXBlIHRzMl90eXBlOwogICBmZmlfdHlwZSAqdHMyX3R5cGVfZWxlbWVudHNbM107CisKKyAgLyogVGhpcyBpcyBhIGhhY2sgdG8gZ2V0IGEgcHJvcGVybHkgYWxpZ25lZCByZXN1bHQgYnVmZmVyICovCisgIHRlc3Rfc3RydWN0dXJlXzIgKnRzMl9yZXN1bHQgPQorICAgICh0ZXN0X3N0cnVjdHVyZV8yICopIG1hbGxvYyAoc2l6ZW9mKHRlc3Rfc3RydWN0dXJlXzIpKTsKKwogICB0czJfdHlwZS5zaXplID0gMDsKICAgdHMyX3R5cGUuYWxpZ25tZW50ID0gMDsKICAgdHMyX3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKQEAgLTM3LDExICs0Miw2IEBACiAgIHRzMl90eXBlX2VsZW1lbnRzWzFdID0gJmZmaV90eXBlX2RvdWJsZTsKICAgdHMyX3R5cGVfZWxlbWVudHNbMl0gPSBOVUxMOwogCi0gIAotICAvKiBUaGlzIGlzIGEgaGFjayB0byBnZXQgYSBwcm9wZXJseSBhbGlnbmVkIHJlc3VsdCBidWZmZXIgKi8KLSAgdGVzdF9zdHJ1Y3R1cmVfMiAqdHMyX3Jlc3VsdCA9IAotICAgICh0ZXN0X3N0cnVjdHVyZV8yICopIG1hbGxvYyAoc2l6ZW9mKHRlc3Rfc3RydWN0dXJlXzIpKTsKLSAgCiAgIGFyZ3NbMF0gPSAmdHMyX3R5cGU7CiAgIHZhbHVlc1swXSA9ICZ0czJfYXJnOwogICAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDJfd2luMzIuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDJfd2luMzIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZDAyMjg1Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0Ml93aW4zMi5jCkBAIC0wLDAgKzEsNjcgQEAKKy8qIEFyZWE6CWZmaV9jYWxsCisgICBQdXJwb3NlOglDaGVjayBzdHJ1Y3R1cmVzIGluIGZhc3RjYWxsL3N0ZGNhbGwgZnVuY3Rpb24KKyAgIExpbWl0YXRpb25zOglub25lLgorICAgUFI6CQlub25lLgorICAgT3JpZ2luYXRvcjoJRnJvbSB0aGUgb3JpZ2luYWwgZmZpdGVzdC5jICAqLworCisvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBpPzg2LSotY3lnd2luKiBpPzg2LSotbWluZ3cqIH0gfSAqLworI2luY2x1ZGUgImZmaXRlc3QuaCIKKwordHlwZWRlZiBzdHJ1Y3QKK3sKKyAgZG91YmxlIGQxOworICBkb3VibGUgZDI7Cit9IHRlc3Rfc3RydWN0dXJlXzI7CisKK3N0YXRpYyB0ZXN0X3N0cnVjdHVyZV8yIF9fRkFTVENBTExfXyBzdHJ1Y3QyKHRlc3Rfc3RydWN0dXJlXzIgdHMpCit7CisgIHRzLmQxLS07CisgIHRzLmQyLS07CisKKyAgcmV0dXJuIHRzOworfQorCitpbnQgbWFpbiAodm9pZCkKK3sKKyAgZmZpX2NpZiBjaWY7CisgIGZmaV90eXBlICphcmdzW01BWF9BUkdTXTsKKyAgdm9pZCAqdmFsdWVzW01BWF9BUkdTXTsKKyAgdGVzdF9zdHJ1Y3R1cmVfMiB0czJfYXJnOworICBmZmlfdHlwZSB0czJfdHlwZTsKKyAgZmZpX3R5cGUgKnRzMl90eXBlX2VsZW1lbnRzWzNdOworCisgIC8qIFRoaXMgaXMgYSBoYWNrIHRvIGdldCBhIHByb3Blcmx5IGFsaWduZWQgcmVzdWx0IGJ1ZmZlciAqLworICB0ZXN0X3N0cnVjdHVyZV8yICp0czJfcmVzdWx0ID0KKyAgICAodGVzdF9zdHJ1Y3R1cmVfMiAqKSBtYWxsb2MgKHNpemVvZih0ZXN0X3N0cnVjdHVyZV8yKSk7CisKKyAgdHMyX3R5cGUuc2l6ZSA9IDA7CisgIHRzMl90eXBlLmFsaWdubWVudCA9IDA7CisgIHRzMl90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CisgIHRzMl90eXBlLmVsZW1lbnRzID0gdHMyX3R5cGVfZWxlbWVudHM7CisgIHRzMl90eXBlX2VsZW1lbnRzWzBdID0gJmZmaV90eXBlX2RvdWJsZTsKKyAgdHMyX3R5cGVfZWxlbWVudHNbMV0gPSAmZmZpX3R5cGVfZG91YmxlOworICB0czJfdHlwZV9lbGVtZW50c1syXSA9IE5VTEw7CisKKyAgYXJnc1swXSA9ICZ0czJfdHlwZTsKKyAgdmFsdWVzWzBdID0gJnRzMl9hcmc7CisgIAorICAvKiBJbml0aWFsaXplIHRoZSBjaWYgKi8KKyAgQ0hFQ0soZmZpX3ByZXBfY2lmKCZjaWYsIEZGSV9GQVNUQ0FMTCwgMSwgJnRzMl90eXBlLCBhcmdzKSA9PSBGRklfT0spOworICAKKyAgdHMyX2FyZy5kMSA9IDUuNTU7CisgIHRzMl9hcmcuZDIgPSA2LjY2OworICAKKyAgcHJpbnRmICgiJWdcbiIsIHRzMl9hcmcuZDEpOworICBwcmludGYgKCIlZ1xuIiwgdHMyX2FyZy5kMik7CisgIAorICBmZmlfY2FsbCgmY2lmLCBGRklfRk4oc3RydWN0MiksIHRzMl9yZXN1bHQsIHZhbHVlcyk7CisgIAorICBwcmludGYgKCIlZ1xuIiwgdHMyX3Jlc3VsdC0+ZDEpOworICBwcmludGYgKCIlZ1xuIiwgdHMyX3Jlc3VsdC0+ZDIpOworICAKKyAgQ0hFQ0sodHMyX3Jlc3VsdC0+ZDEgPT0gNS41NSAtIDEpOworICBDSEVDSyh0czJfcmVzdWx0LT5kMiA9PSA2LjY2IC0gMSk7CisgIAorICBmcmVlICh0czJfcmVzdWx0KTsKKyAgZXhpdCgwKTsKK30KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDMuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDMuYwppbmRleCBlMGJiMDliLi5kZTg4M2MyIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3QzLmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0My5jCkBAIC0yNyw2ICsyNywxMSBAQAogICBpbnQgY29tcGFyZV92YWx1ZTsKICAgZmZpX3R5cGUgdHMzX3R5cGU7CiAgIGZmaV90eXBlICp0czNfdHlwZV9lbGVtZW50c1syXTsKKworICB0ZXN0X3N0cnVjdHVyZV8zIHRzM19hcmc7CisgIHRlc3Rfc3RydWN0dXJlXzMgKnRzM19yZXN1bHQgPQorICAgICh0ZXN0X3N0cnVjdHVyZV8zICopIG1hbGxvYyAoc2l6ZW9mKHRlc3Rfc3RydWN0dXJlXzMpKTsKKwogICB0czNfdHlwZS5zaXplID0gMDsKICAgdHMzX3R5cGUuYWxpZ25tZW50ID0gMDsKICAgdHMzX3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKQEAgLTM0LDEwICszOSw2IEBACiAgIHRzM190eXBlX2VsZW1lbnRzWzBdID0gJmZmaV90eXBlX3NpbnQ7CiAgIHRzM190eXBlX2VsZW1lbnRzWzFdID0gTlVMTDsKIAotICB0ZXN0X3N0cnVjdHVyZV8zIHRzM19hcmc7Ci0gIHRlc3Rfc3RydWN0dXJlXzMgKnRzM19yZXN1bHQgPSAKLSAgICAodGVzdF9zdHJ1Y3R1cmVfMyAqKSBtYWxsb2MgKHNpemVvZih0ZXN0X3N0cnVjdHVyZV8zKSk7Ci0gIAogICBhcmdzWzBdID0gJnRzM190eXBlOwogICB2YWx1ZXNbMF0gPSAmdHMzX2FyZzsKICAgCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3Q0LmMgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3Q0LmMKaW5kZXggMGFkMGE4My4uNDhlMDM0OSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0NC5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDQuYwpAQCAtMjgsMjEgKzI4LDIyIEBACiAgIHZvaWQgKnZhbHVlc1tNQVhfQVJHU107CiAgIGZmaV90eXBlIHRzNF90eXBlOwogICBmZmlfdHlwZSAqdHM0X3R5cGVfZWxlbWVudHNbNF07ICAKKworICB0ZXN0X3N0cnVjdHVyZV80IHRzNF9hcmc7CisKKyAgLyogVGhpcyBpcyBhIGhhY2sgdG8gZ2V0IGEgcHJvcGVybHkgYWxpZ25lZCByZXN1bHQgYnVmZmVyICovCisgIHRlc3Rfc3RydWN0dXJlXzQgKnRzNF9yZXN1bHQgPQorICAgICh0ZXN0X3N0cnVjdHVyZV80ICopIG1hbGxvYyAoc2l6ZW9mKHRlc3Rfc3RydWN0dXJlXzQpKTsKKwogICB0czRfdHlwZS5zaXplID0gMDsKICAgdHM0X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgdHM0X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKLSAgdGVzdF9zdHJ1Y3R1cmVfNCB0czRfYXJnOwogICB0czRfdHlwZS5lbGVtZW50cyA9IHRzNF90eXBlX2VsZW1lbnRzOwogICB0czRfdHlwZV9lbGVtZW50c1swXSA9ICZmZmlfdHlwZV91aW50OwogICB0czRfdHlwZV9lbGVtZW50c1sxXSA9ICZmZmlfdHlwZV91aW50OwogICB0czRfdHlwZV9lbGVtZW50c1syXSA9ICZmZmlfdHlwZV91aW50OwogICB0czRfdHlwZV9lbGVtZW50c1szXSA9IE5VTEw7CiAKLSAgCi0gIC8qIFRoaXMgaXMgYSBoYWNrIHRvIGdldCBhIHByb3Blcmx5IGFsaWduZWQgcmVzdWx0IGJ1ZmZlciAqLwotICB0ZXN0X3N0cnVjdHVyZV80ICp0czRfcmVzdWx0ID0gCi0gICAgKHRlc3Rfc3RydWN0dXJlXzQgKikgbWFsbG9jIChzaXplb2YodGVzdF9zdHJ1Y3R1cmVfNCkpOwotICAKICAgYXJnc1swXSA9ICZ0czRfdHlwZTsKICAgdmFsdWVzWzBdID0gJnRzNF9hcmc7CiAgIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0NS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0NS5jCmluZGV4IGMwM2NjOTcuLjI4YjFmMGMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDUuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3Q1LmMKQEAgLTI3LDYgKzI3LDEzIEBACiAgIHZvaWQgKnZhbHVlc1tNQVhfQVJHU107CiAgIGZmaV90eXBlIHRzNV90eXBlOwogICBmZmlfdHlwZSAqdHM1X3R5cGVfZWxlbWVudHNbM107CisKKyAgdGVzdF9zdHJ1Y3R1cmVfNSB0czVfYXJnMSwgdHM1X2FyZzI7CisKKyAgLyogVGhpcyBpcyBhIGhhY2sgdG8gZ2V0IGEgcHJvcGVybHkgYWxpZ25lZCByZXN1bHQgYnVmZmVyICovCisgIHRlc3Rfc3RydWN0dXJlXzUgKnRzNV9yZXN1bHQgPQorICAgICh0ZXN0X3N0cnVjdHVyZV81ICopIG1hbGxvYyAoc2l6ZW9mKHRlc3Rfc3RydWN0dXJlXzUpKTsKKwogICB0czVfdHlwZS5zaXplID0gMDsKICAgdHM1X3R5cGUuYWxpZ25tZW50ID0gMDsKICAgdHM1X3R5cGUudHlwZSA9IEZGSV9UWVBFX1NUUlVDVDsKQEAgLTM1LDEyICs0Miw2IEBACiAgIHRzNV90eXBlX2VsZW1lbnRzWzFdID0gJmZmaV90eXBlX3NjaGFyOwogICB0czVfdHlwZV9lbGVtZW50c1syXSA9IE5VTEw7CiAKLSAgdGVzdF9zdHJ1Y3R1cmVfNSB0czVfYXJnMSwgdHM1X2FyZzI7Ci0gIAotICAvKiBUaGlzIGlzIGEgaGFjayB0byBnZXQgYSBwcm9wZXJseSBhbGlnbmVkIHJlc3VsdCBidWZmZXIgKi8KLSAgdGVzdF9zdHJ1Y3R1cmVfNSAqdHM1X3Jlc3VsdCA9IAotICAgICh0ZXN0X3N0cnVjdHVyZV81ICopIG1hbGxvYyAoc2l6ZW9mKHRlc3Rfc3RydWN0dXJlXzUpKTsKLSAgCiAgIGFyZ3NbMF0gPSAmdHM1X3R5cGU7CiAgIGFyZ3NbMV0gPSAmdHM1X3R5cGU7CiAgIHZhbHVlc1swXSA9ICZ0czVfYXJnMTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDYuYyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDYuYwppbmRleCA4M2RiOWFmLi4wZTI2NzQ2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3Q2LmMKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0Ni5jCkBAIC0yNyw2ICsyNywxMyBAQAogICB2b2lkICp2YWx1ZXNbTUFYX0FSR1NdOwogICBmZmlfdHlwZSB0czZfdHlwZTsKICAgZmZpX3R5cGUgKnRzNl90eXBlX2VsZW1lbnRzWzNdOworCisgIHRlc3Rfc3RydWN0dXJlXzYgdHM2X2FyZzsKKworICAvKiBUaGlzIGlzIGEgaGFjayB0byBnZXQgYSBwcm9wZXJseSBhbGlnbmVkIHJlc3VsdCBidWZmZXIgKi8KKyAgdGVzdF9zdHJ1Y3R1cmVfNiAqdHM2X3Jlc3VsdCA9CisgICAgKHRlc3Rfc3RydWN0dXJlXzYgKikgbWFsbG9jIChzaXplb2YodGVzdF9zdHJ1Y3R1cmVfNikpOworCiAgIHRzNl90eXBlLnNpemUgPSAwOwogICB0czZfdHlwZS5hbGlnbm1lbnQgPSAwOwogICB0czZfdHlwZS50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwpAQCAtMzUsMTMgKzQyLDYgQEAKICAgdHM2X3R5cGVfZWxlbWVudHNbMV0gPSAmZmZpX3R5cGVfZG91YmxlOwogICB0czZfdHlwZV9lbGVtZW50c1syXSA9IE5VTEw7CiAKLQotICB0ZXN0X3N0cnVjdHVyZV82IHRzNl9hcmc7Ci0KLSAgLyogVGhpcyBpcyBhIGhhY2sgdG8gZ2V0IGEgcHJvcGVybHkgYWxpZ25lZCByZXN1bHQgYnVmZmVyICovCi0gIHRlc3Rfc3RydWN0dXJlXzYgKnRzNl9yZXN1bHQgPSAKLSAgICAodGVzdF9zdHJ1Y3R1cmVfNiAqKSBtYWxsb2MgKHNpemVvZih0ZXN0X3N0cnVjdHVyZV82KSk7Ci0gIAogICBhcmdzWzBdID0gJnRzNl90eXBlOwogICB2YWx1ZXNbMF0gPSAmdHM2X2FyZzsKIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0Ny5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0Ny5jCmluZGV4IDU4YWFjNGMuLjhmMmJiZmQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDcuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3Q3LmMKQEAgLTI5LDYgKzI5LDEzIEBACiAgIHZvaWQgKnZhbHVlc1tNQVhfQVJHU107CiAgIGZmaV90eXBlIHRzN190eXBlOwogICBmZmlfdHlwZSAqdHM3X3R5cGVfZWxlbWVudHNbNF07CisKKyAgdGVzdF9zdHJ1Y3R1cmVfNyB0czdfYXJnOworCisgIC8qIFRoaXMgaXMgYSBoYWNrIHRvIGdldCBhIHByb3Blcmx5IGFsaWduZWQgcmVzdWx0IGJ1ZmZlciAqLworICB0ZXN0X3N0cnVjdHVyZV83ICp0czdfcmVzdWx0ID0KKyAgICAodGVzdF9zdHJ1Y3R1cmVfNyAqKSBtYWxsb2MgKHNpemVvZih0ZXN0X3N0cnVjdHVyZV83KSk7CisKICAgdHM3X3R5cGUuc2l6ZSA9IDA7CiAgIHRzN190eXBlLmFsaWdubWVudCA9IDA7CiAgIHRzN190eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CkBAIC0zOCwxMyArNDUsNiBAQAogICB0czdfdHlwZV9lbGVtZW50c1syXSA9ICZmZmlfdHlwZV9kb3VibGU7CiAgIHRzN190eXBlX2VsZW1lbnRzWzNdID0gTlVMTDsKIAotCi0gIHRlc3Rfc3RydWN0dXJlXzcgdHM3X2FyZzsKLSAgCi0gIC8qIFRoaXMgaXMgYSBoYWNrIHRvIGdldCBhIHByb3Blcmx5IGFsaWduZWQgcmVzdWx0IGJ1ZmZlciAqLwotICB0ZXN0X3N0cnVjdHVyZV83ICp0czdfcmVzdWx0ID0gCi0gICAgKHRlc3Rfc3RydWN0dXJlXzcgKikgbWFsbG9jIChzaXplb2YodGVzdF9zdHJ1Y3R1cmVfNykpOwotICAKICAgYXJnc1swXSA9ICZ0czdfdHlwZTsKICAgdmFsdWVzWzBdID0gJnRzN19hcmc7CiAgIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0OC5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0OC5jCmluZGV4IGM3NzNhYzcuLjI2NmUxZjAgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDguYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3Q4LmMKQEAgLTMxLDYgKzMxLDEzIEBACiAgIHZvaWQgKnZhbHVlc1tNQVhfQVJHU107CiAgIGZmaV90eXBlIHRzOF90eXBlOwogICBmZmlfdHlwZSAqdHM4X3R5cGVfZWxlbWVudHNbNV07CisKKyAgdGVzdF9zdHJ1Y3R1cmVfOCB0czhfYXJnOworCisgIC8qIFRoaXMgaXMgYSBoYWNrIHRvIGdldCBhIHByb3Blcmx5IGFsaWduZWQgcmVzdWx0IGJ1ZmZlciAqLworICB0ZXN0X3N0cnVjdHVyZV84ICp0czhfcmVzdWx0ID0KKyAgICAodGVzdF9zdHJ1Y3R1cmVfOCAqKSBtYWxsb2MgKHNpemVvZih0ZXN0X3N0cnVjdHVyZV84KSk7CisKICAgdHM4X3R5cGUuc2l6ZSA9IDA7CiAgIHRzOF90eXBlLmFsaWdubWVudCA9IDA7CiAgIHRzOF90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CkBAIC00MSwxMiArNDgsNiBAQAogICB0czhfdHlwZV9lbGVtZW50c1szXSA9ICZmZmlfdHlwZV9mbG9hdDsKICAgdHM4X3R5cGVfZWxlbWVudHNbNF0gPSBOVUxMOwogCi0gIHRlc3Rfc3RydWN0dXJlXzggdHM4X2FyZzsKLSAgCi0gIC8qIFRoaXMgaXMgYSBoYWNrIHRvIGdldCBhIHByb3Blcmx5IGFsaWduZWQgcmVzdWx0IGJ1ZmZlciAqLwotICB0ZXN0X3N0cnVjdHVyZV84ICp0czhfcmVzdWx0ID0gCi0gICAgKHRlc3Rfc3RydWN0dXJlXzggKikgbWFsbG9jIChzaXplb2YodGVzdF9zdHJ1Y3R1cmVfOCkpOwotICAKICAgYXJnc1swXSA9ICZ0czhfdHlwZTsKICAgdmFsdWVzWzBdID0gJnRzOF9hcmc7CiAgIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0OS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvc3RydWN0OS5jCmluZGV4IGYzMDA5MWYuLmVmZWI3MTYgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3N0cnVjdDkuYworKysgYi9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC9zdHJ1Y3Q5LmMKQEAgLTI4LDYgKzI4LDEzIEBACiAgIHZvaWQgKnZhbHVlc1tNQVhfQVJHU107CiAgIGZmaV90eXBlIHRzOV90eXBlOwogICBmZmlfdHlwZSAqdHM5X3R5cGVfZWxlbWVudHNbM107CisKKyAgdGVzdF9zdHJ1Y3R1cmVfOSB0czlfYXJnOworCisgIC8qIFRoaXMgaXMgYSBoYWNrIHRvIGdldCBhIHByb3Blcmx5IGFsaWduZWQgcmVzdWx0IGJ1ZmZlciAqLworICB0ZXN0X3N0cnVjdHVyZV85ICp0czlfcmVzdWx0ID0KKyAgICAodGVzdF9zdHJ1Y3R1cmVfOSAqKSBtYWxsb2MgKHNpemVvZih0ZXN0X3N0cnVjdHVyZV85KSk7CisKICAgdHM5X3R5cGUuc2l6ZSA9IDA7CiAgIHRzOV90eXBlLmFsaWdubWVudCA9IDA7CiAgIHRzOV90eXBlLnR5cGUgPSBGRklfVFlQRV9TVFJVQ1Q7CkBAIC0zNiwxMiArNDMsNiBAQAogICB0czlfdHlwZV9lbGVtZW50c1sxXSA9ICZmZmlfdHlwZV9zaW50OwogICB0czlfdHlwZV9lbGVtZW50c1syXSA9IE5VTEw7CiAKLSAgdGVzdF9zdHJ1Y3R1cmVfOSB0czlfYXJnOwotICAKLSAgLyogVGhpcyBpcyBhIGhhY2sgdG8gZ2V0IGEgcHJvcGVybHkgYWxpZ25lZCByZXN1bHQgYnVmZmVyICovCi0gIHRlc3Rfc3RydWN0dXJlXzkgKnRzOV9yZXN1bHQgPSAKLSAgICAodGVzdF9zdHJ1Y3R1cmVfOSAqKSBtYWxsb2MgKHNpemVvZih0ZXN0X3N0cnVjdHVyZV85KSk7Ci0gIAogICBhcmdzWzBdID0gJnRzOV90eXBlOwogICB2YWx1ZXNbMF0gPSAmdHM5X2FyZzsKICAgCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC90ZXN0Y2xvc3VyZS5jIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLmNhbGwvdGVzdGNsb3N1cmUuYwppbmRleCAxNjFjYzg5Li5jYTMxMDU2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvbGliZmZpL3Rlc3RzdWl0ZS9saWJmZmkuY2FsbC90ZXN0Y2xvc3VyZS5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5jYWxsL3Rlc3RjbG9zdXJlLmMKQEAgLTQzLDEzICs0MywxMyBAQAogICBmZmlfdHlwZSBjbHNfc3RydWN0X3R5cGUwOwogICBmZmlfdHlwZSogZGJsX2FyZ190eXBlc1s1XTsKIAorICBzdHJ1Y3QgY2xzX3N0cnVjdF9jb21iaW5lZCBnX2RibCA9IHs0LjAsIDUuMCwgMS4wLCA4LjB9OworCiAgIGNsc19zdHJ1Y3RfdHlwZTAuc2l6ZSA9IDA7CiAgIGNsc19zdHJ1Y3RfdHlwZTAuYWxpZ25tZW50ID0gMDsKICAgY2xzX3N0cnVjdF90eXBlMC50eXBlID0gRkZJX1RZUEVfU1RSVUNUOwogICBjbHNfc3RydWN0X3R5cGUwLmVsZW1lbnRzID0gY2xzX3N0cnVjdF9maWVsZHMwOwogCi0gIHN0cnVjdCBjbHNfc3RydWN0X2NvbWJpbmVkIGdfZGJsID0gezQuMCwgNS4wLCAxLjAsIDguMH07Ci0KICAgY2xzX3N0cnVjdF9maWVsZHMwWzBdID0gJmZmaV90eXBlX2Zsb2F0OwogICBjbHNfc3RydWN0X2ZpZWxkczBbMV0gPSAmZmZpX3R5cGVfZmxvYXQ7CiAgIGNsc19zdHJ1Y3RfZmllbGRzMFsyXSA9ICZmZmlfdHlwZV9mbG9hdDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N0eXBlcy9saWJmZmkvdGVzdHN1aXRlL2xpYmZmaS5zcGVjaWFsL3NwZWNpYWwuZXhwIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLnNwZWNpYWwvc3BlY2lhbC5leHAKaW5kZXggZTE2N2U4Ni4uNzQ2NzFiMSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLnNwZWNpYWwvc3BlY2lhbC5leHAKKysrIGIvTW9kdWxlcy9fY3R5cGVzL2xpYmZmaS90ZXN0c3VpdGUvbGliZmZpLnNwZWNpYWwvc3BlY2lhbC5leHAKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDA5LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiAjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC0xNCw4ICsxNCw2IEBACiAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAjIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIAotbG9hZF9saWIgbGliZmZpLWRnLmV4cAotCiBkZy1pbml0CiBsaWJmZmktaW5pdAogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19jdHlwZXMvc3RnZGljdC5jIGIvTW9kdWxlcy9fY3R5cGVzL3N0Z2RpY3QuYwppbmRleCAyNjJkMGI0Li5lNWIwZTRjIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19jdHlwZXMvc3RnZGljdC5jCisrKyBiL01vZHVsZXMvX2N0eXBlcy9zdGdkaWN0LmMKQEAgLTQyNiw5ICs0MjYsOSBAQAogICAgICAgICBTdGdEaWN0T2JqZWN0ICpkaWN0OwogICAgICAgICBpbnQgYml0c2l6ZSA9IDA7CiAKLSAgICAgICAgaWYgKCFwYWlyIHx8ICFQeUFyZ19QYXJzZVR1cGxlKHBhaXIsICJPT3xpIiwgJm5hbWUsICZkZXNjLCAmYml0c2l6ZSkpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19BdHRyaWJ1dGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJ19maWVsZHNfJyBtdXN0IGJlIGEgc2VxdWVuY2Ugb2YgcGFpcnMiKTsKKyAgICAgICAgaWYgKCFwYWlyIHx8ICFQeUFyZ19QYXJzZVR1cGxlKHBhaXIsICJVT3xpIiwgJm5hbWUsICZkZXNjLCAmYml0c2l6ZSkpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIidfZmllbGRzXycgbXVzdCBiZSBhIHNlcXVlbmNlIG9mIChuYW1lLCBDIHR5cGUpIHBhaXJzIik7CiAgICAgICAgICAgICBQeV9YREVDUkVGKHBhaXIpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CkBAIC00NzgsNiArNDc4LDcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBiaXRzaXplID0gMDsKKwogICAgICAgICBpZiAoaXNTdHJ1Y3QgJiYgIWlzUGFja2VkKSB7CiAgICAgICAgICAgICBjaGFyICpmaWVsZGZtdCA9IGRpY3QtPmZvcm1hdCA/IGRpY3QtPmZvcm1hdCA6ICJCIjsKICAgICAgICAgICAgIGNoYXIgKmZpZWxkbmFtZSA9IF9QeVVuaWNvZGVfQXNTdHJpbmcobmFtZSk7CkBAIC00ODcsMTAgKzQ4OCw2IEBACiAKICAgICAgICAgICAgIGlmIChmaWVsZG5hbWUgPT0gTlVMTCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RydWN0dXJlIGZpZWxkIG5hbWUgbXVzdCBiZSBzdHJpbmcgbm90ICVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZS0+b2JfdHlwZS0+dHBfbmFtZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihwYWlyKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICB9CkBAIC01MTUsNiArNTEyLDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKwogICAgICAgICBpZiAoaXNTdHJ1Y3QpIHsKICAgICAgICAgICAgIHByb3AgPSBQeUNGaWVsZF9Gcm9tRGVzYyhkZXNjLCBpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZmllbGRfc2l6ZSwgYml0c2l6ZSwgJmJpdG9mcywKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N1cnNlc19wYW5lbC5jIGIvTW9kdWxlcy9fY3Vyc2VzX3BhbmVsLmMKaW5kZXggODU2MWEyZS4uMWM3ZDA4NCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3Vyc2VzX3BhbmVsLmMKKysrIGIvTW9kdWxlcy9fY3Vyc2VzX3BhbmVsLmMKQEAgLTE2LDggKzE2LDM3IEBACiAKICNpbmNsdWRlIDxwYW5lbC5oPgogCi1zdGF0aWMgUHlPYmplY3QgKlB5Q3Vyc2VzRXJyb3I7Cit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3QgKlB5Q3Vyc2VzRXJyb3I7CisgICAgUHlPYmplY3QgKlB5Q3Vyc2VzUGFuZWxfVHlwZTsKK30gX2N1cnNlc19wYW5lbHN0YXRlOwogCisjZGVmaW5lIF9jdXJzZXNfcGFuZWxzdGF0ZShvKSAoKF9jdXJzZXNfcGFuZWxzdGF0ZSAqKVB5TW9kdWxlX0dldFN0YXRlKG8pKQorCitzdGF0aWMgaW50CitfY3Vyc2VzX3BhbmVsX2NsZWFyKFB5T2JqZWN0ICptKQoreworICAgIFB5X0NMRUFSKF9jdXJzZXNfcGFuZWxzdGF0ZShtKS0+UHlDdXJzZXNFcnJvcik7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK19jdXJzZXNfcGFuZWxfdHJhdmVyc2UoUHlPYmplY3QgKm0sIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQoreworICAgIFB5X1ZJU0lUKF9jdXJzZXNfcGFuZWxzdGF0ZShtKS0+UHlDdXJzZXNFcnJvcik7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitfY3Vyc2VzX3BhbmVsX2ZyZWUodm9pZCAqbSkKK3sKKyAgICBfY3Vyc2VzX3BhbmVsX2NsZWFyKChQeU9iamVjdCAqKSBtKTsKK30KKworc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiBfY3Vyc2VzX3BhbmVsbW9kdWxlOworCisjZGVmaW5lIF9jdXJzZXNfcGFuZWxzdGF0ZV9nbG9iYWwgXAorKChfY3Vyc2VzX3BhbmVsc3RhdGUgKikgUHlNb2R1bGVfR2V0U3RhdGUoUHlTdGF0ZV9GaW5kTW9kdWxlKCZfY3Vyc2VzX3BhbmVsbW9kdWxlKSkpCiAKIC8qIFV0aWxpdHkgRnVuY3Rpb25zICovCiAKQEAgLTM0LDkgKzYzLDkgQEAKICAgICAgICAgcmV0dXJuIFB5X05vbmU7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKGZuYW1lID09IE5VTEwpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUN1cnNlc0Vycm9yLCBjYXRjaGFsbF9FUlIpOworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKF9jdXJzZXNfcGFuZWxzdGF0ZV9nbG9iYWwtPlB5Q3Vyc2VzRXJyb3IsIGNhdGNoYWxsX0VSUik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlDdXJzZXNFcnJvciwgIiVzKCkgcmV0dXJuZWQgRVJSIiwgZm5hbWUpOworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KF9jdXJzZXNfcGFuZWxzdGF0ZV9nbG9iYWwtPlB5Q3Vyc2VzRXJyb3IsICIlcygpIHJldHVybmVkIEVSUiIsIGZuYW1lKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC01NCw5ICs4Myw4IEBACiAgICAgUHlDdXJzZXNXaW5kb3dPYmplY3QgKndvOyAgIC8qIGZvciByZWZlcmVuY2UgY291bnRzICovCiB9IFB5Q3Vyc2VzUGFuZWxPYmplY3Q7CiAKLVB5VHlwZU9iamVjdCBQeUN1cnNlc1BhbmVsX1R5cGU7Ci0KLSNkZWZpbmUgUHlDdXJzZXNQYW5lbF9DaGVjayh2KSAgIChQeV9UWVBFKHYpID09ICZQeUN1cnNlc1BhbmVsX1R5cGUpCisjZGVmaW5lIFB5Q3Vyc2VzUGFuZWxfQ2hlY2sodikgIFwKKyAoUHlfVFlQRSh2KSA9PSBfY3Vyc2VzX3BhbmVsc3RhdGVfZ2xvYmFsLT5QeUN1cnNlc1BhbmVsX1R5cGUpCiAKIC8qIFNvbWUgaGVscGVyIGZ1bmN0aW9ucy4gVGhlIHByb2JsZW0gaXMgdGhhdCB0aGVyZSdzIGFsd2F5cyBhIHdpbmRvdwogICAgYXNzb2NpYXRlZCB3aXRoIGEgcGFuZWwuIFRvIGVuc3VyZSB0aGF0IFB5dGhvbidzIEdDIGRvZXNuJ3QgcHVsbApAQCAtMTc1LDcgKzIwMyw4IEBACiB7CiAgICAgUHlDdXJzZXNQYW5lbE9iamVjdCAqcG87CiAKLSAgICBwbyA9IFB5T2JqZWN0X05FVyhQeUN1cnNlc1BhbmVsT2JqZWN0LCAmUHlDdXJzZXNQYW5lbF9UeXBlKTsKKyAgICBwbyA9IFB5T2JqZWN0X05FVyhQeUN1cnNlc1BhbmVsT2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgIChQeVR5cGVPYmplY3QgKikoX2N1cnNlc19wYW5lbHN0YXRlX2dsb2JhbCktPlB5Q3Vyc2VzUGFuZWxfVHlwZSk7CiAgICAgaWYgKHBvID09IE5VTEwpIHJldHVybiBOVUxMOwogICAgIHBvLT5wYW4gPSBwYW47CiAgICAgaWYgKGluc2VydF9sb3AocG8pIDwgMCkgewpAQCAtMjgwLDcgKzMwOSw3IEBACiAKICAgICBydG4gPSByZXBsYWNlX3BhbmVsKHNlbGYtPnBhbiwgdGVtcC0+d2luKTsKICAgICBpZiAocnRuID09IEVSUikgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlDdXJzZXNFcnJvciwgInJlcGxhY2VfcGFuZWwoKSByZXR1cm5lZCBFUlIiKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKF9jdXJzZXNfcGFuZWxzdGF0ZV9nbG9iYWwtPlB5Q3Vyc2VzRXJyb3IsICJyZXBsYWNlX3BhbmVsKCkgcmV0dXJuZWQgRVJSIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBQeV9ERUNSRUYocG8tPndvKTsKQEAgLTMwNSw3ICszMzQsNyBAQAogICAgIFB5Q3Vyc2VzSW5pdGlhbGlzZWQ7CiAgICAgb2JqID0gKFB5T2JqZWN0ICopIHBhbmVsX3VzZXJwdHIoc2VsZi0+cGFuKTsKICAgICBpZiAob2JqID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5Q3Vyc2VzRXJyb3IsICJubyB1c2VycHRyIHNldCIpOworICAgICAgICBQeUVycl9TZXRTdHJpbmcoX2N1cnNlc19wYW5lbHN0YXRlX2dsb2JhbC0+UHlDdXJzZXNFcnJvciwgIm5vIHVzZXJwdHIgc2V0Iik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIApAQCAtMzM0LDM2ICszNjMsMTggQEAKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAKLVB5VHlwZU9iamVjdCBQeUN1cnNlc1BhbmVsX1R5cGUgPSB7Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi0gICAgIl9jdXJzZXNfcGFuZWwuY3Vyc2VzIHBhbmVsIiwgICAgICAgLyp0cF9uYW1lKi8KLSAgICBzaXplb2YoUHlDdXJzZXNQYW5lbE9iamVjdCksICAgICAgICAvKnRwX2Jhc2ljc2l6ZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2l0ZW1zaXplKi8KLSAgICAvKiBtZXRob2RzICovCi0gICAgKGRlc3RydWN0b3IpUHlDdXJzZXNQYW5lbF9EZWFsbG9jLCAvKnRwX2RlYWxsb2MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9wcmludCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2dldGF0dHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfcmVzZXJ2ZWQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9yZXByKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbnVtYmVyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfYXNfc2VxdWVuY2UqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9hc19tYXBwaW5nKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfaGFzaCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2NhbGwqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9zdHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9nZXRhdHRybyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX3NldGF0dHJvKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfYXNfYnVmZmVyKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQsIC8qdHBfZmxhZ3MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9kb2MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF90cmF2ZXJzZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2NsZWFyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfcmljaGNvbXBhcmUqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF93ZWFrbGlzdG9mZnNldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2l0ZXIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9pdGVybmV4dCovCi0gICAgUHlDdXJzZXNQYW5lbF9NZXRob2RzLCAvKnRwX21ldGhvZHMqLworc3RhdGljIFB5VHlwZV9TbG90IFB5Q3Vyc2VzUGFuZWxfVHlwZV9zbG90c1tdID0geworICAgIHtQeV90cF9kZWFsbG9jLCBQeUN1cnNlc1BhbmVsX0RlYWxsb2N9LAorICAgIHtQeV90cF9tZXRob2RzLCBQeUN1cnNlc1BhbmVsX01ldGhvZHN9LAorICAgIHswLCAwfSwKK307CisKK3N0YXRpYyBQeVR5cGVfU3BlYyBQeUN1cnNlc1BhbmVsX1R5cGVfc3BlYyA9IHsKKyAgICAiX2N1cnNlc19wYW5lbC5jdXJzZXMgcGFuZWwiLAorICAgIHNpemVvZihQeUN1cnNlc1BhbmVsT2JqZWN0KSwKKyAgICAwLAorICAgIFB5X1RQRkxBR1NfREVGQVVMVCwKKyAgICBQeUN1cnNlc1BhbmVsX1R5cGVfc2xvdHMKIH07CiAKIC8qIFdyYXBwZXIgZm9yIHBhbmVsX2Fib3ZlKE5VTEwpLiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGJvdHRvbQpAQCAtNDA1LDcgKzQxNiw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIHBhbiA9IG5ld19wYW5lbCh3aW4tPndpbik7CiAgICAgaWYgKHBhbiA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUN1cnNlc0Vycm9yLCBjYXRjaGFsbF9OVUxMKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKF9jdXJzZXNfcGFuZWxzdGF0ZV9nbG9iYWwtPlB5Q3Vyc2VzRXJyb3IsIGNhdGNoYWxsX05VTEwpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgcmV0dXJuIChQeU9iamVjdCAqKVB5Q3Vyc2VzUGFuZWxfTmV3KHBhbiwgd2luKTsKQEAgLTQ2NywxMiArNDc4LDEyIEBACiAgICAgICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKICAgICAgICAgIl9jdXJzZXNfcGFuZWwiLAogICAgICAgICBOVUxMLAotICAgICAgICAtMSwKKyAgICAgICAgc2l6ZW9mKF9jdXJzZXNfcGFuZWxzdGF0ZSksCiAgICAgICAgIFB5Q3Vyc2VzX21ldGhvZHMsCiAgICAgICAgIE5VTEwsCi0gICAgICAgIE5VTEwsCi0gICAgICAgIE5VTEwsCi0gICAgICAgIE5VTEwKKyAgICAgICAgX2N1cnNlc19wYW5lbF90cmF2ZXJzZSwKKyAgICAgICAgX2N1cnNlc19wYW5lbF9jbGVhciwKKyAgICAgICAgX2N1cnNlc19wYW5lbF9mcmVlCiB9OwogCiBQeU1PRElOSVRfRlVOQwpAQCAtNDgwLDIxICs0OTEsMjMgQEAKIHsKICAgICBQeU9iamVjdCAqbSwgKmQsICp2OwogCi0gICAgLyogSW5pdGlhbGl6ZSBvYmplY3QgdHlwZSAqLwotICAgIGlmIChQeVR5cGVfUmVhZHkoJlB5Q3Vyc2VzUGFuZWxfVHlwZSkgPCAwKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGltcG9ydF9jdXJzZXMoKTsKLQogICAgIC8qIENyZWF0ZSB0aGUgbW9kdWxlIGFuZCBhZGQgdGhlIGZ1bmN0aW9ucyAqLwogICAgIG0gPSBQeU1vZHVsZV9DcmVhdGUoJl9jdXJzZXNfcGFuZWxtb2R1bGUpOwogICAgIGlmIChtID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBnb3RvIGZhaWw7CiAgICAgZCA9IFB5TW9kdWxlX0dldERpY3QobSk7CiAKKyAgICAvKiBJbml0aWFsaXplIG9iamVjdCB0eXBlICovCisgICAgX2N1cnNlc19wYW5lbHN0YXRlKG0pLT5QeUN1cnNlc1BhbmVsX1R5cGUgPSBcCisgICAgICAgIFB5VHlwZV9Gcm9tU3BlYygmUHlDdXJzZXNQYW5lbF9UeXBlX3NwZWMpOworICAgIGlmIChfY3Vyc2VzX3BhbmVsc3RhdGUobSktPlB5Q3Vyc2VzUGFuZWxfVHlwZSA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWw7CisKKyAgICBpbXBvcnRfY3Vyc2VzKCk7CisKICAgICAvKiBGb3IgZXhjZXB0aW9uIF9jdXJzZXNfcGFuZWwuZXJyb3IgKi8KLSAgICBQeUN1cnNlc0Vycm9yID0gUHlFcnJfTmV3RXhjZXB0aW9uKCJfY3Vyc2VzX3BhbmVsLmVycm9yIiwgTlVMTCwgTlVMTCk7Ci0gICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgImVycm9yIiwgUHlDdXJzZXNFcnJvcik7CisgICAgX2N1cnNlc19wYW5lbHN0YXRlKG0pLT5QeUN1cnNlc0Vycm9yID0gUHlFcnJfTmV3RXhjZXB0aW9uKCJfY3Vyc2VzX3BhbmVsLmVycm9yIiwgTlVMTCwgTlVMTCk7CisgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgImVycm9yIiwgX2N1cnNlc19wYW5lbHN0YXRlKG0pLT5QeUN1cnNlc0Vycm9yKTsKIAogICAgIC8qIE1ha2UgdGhlIHZlcnNpb24gYXZhaWxhYmxlICovCiAgICAgdiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKFB5Q3Vyc2VzVmVyc2lvbik7CkBAIC01MDIsNCArNTE1LDcgQEAKICAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiX192ZXJzaW9uX18iLCB2KTsKICAgICBQeV9ERUNSRUYodik7CiAgICAgcmV0dXJuIG07CisgIGZhaWw6CisgICAgUHlfWERFQ1JFRihtKTsKKyAgICByZXR1cm4gTlVMTDsKIH0KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2N1cnNlc21vZHVsZS5jIGIvTW9kdWxlcy9fY3Vyc2VzbW9kdWxlLmMKaW5kZXggNWUxYWZhOS4uZGU0NWY1MSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fY3Vyc2VzbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9fY3Vyc2VzbW9kdWxlLmMKQEAgLTEwNSwxMCArMTA1LDYgQEAKICNpbmNsdWRlICJQeXRob24uaCIKIAogCi0jaWZkZWYgX19vc2ZfXwotI2RlZmluZSBTVFJJQ1RfU1lTVl9DVVJTRVMgICAgICAvKiBEb24ndCB1c2UgbmN1cnNlcyBleHRlbnNpb25zICovCi0jZW5kaWYKLQogI2lmZGVmIF9faHB1eAogI2RlZmluZSBTVFJJQ1RfU1lTVl9DVVJTRVMKICNlbmRpZgpAQCAtMTI1LDYgKzEyMSwxMCBAQAogI2luY2x1ZGUgPHRlcm0uaD4KICNlbmRpZgogCisjaWZkZWYgSEFWRV9MQU5HSU5GT19ICisjaW5jbHVkZSA8bGFuZ2luZm8uaD4KKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoSEFWRV9OQ1VSU0VTX0gpICYmIChkZWZpbmVkKHNnaSkgfHwgZGVmaW5lZChfX3N1bikgfHwgZGVmaW5lZChTQ081KSkKICNkZWZpbmUgU1RSSUNUX1NZU1ZfQ1VSU0VTICAgICAgIC8qIERvbid0IHVzZSBuY3Vyc2VzIGV4dGVuc2lvbnMgKi8KIHR5cGVkZWYgY2h0eXBlIGF0dHJfdDsgICAgICAgICAgIC8qIE5vIGF0dHJfdCB0eXBlIGlzIGF2YWlsYWJsZSAqLwpAQCAtMTQ3LDYgKzE0Nyw4IEBACiAvKiBUZWxscyB3aGV0aGVyIHN0YXJ0X2NvbG9yKCkgaGFzIGJlZW4gY2FsbGVkIHRvIGluaXRpYWxpc2UgY29sb3IgdXNhZ2UuICovCiBzdGF0aWMgaW50IGluaXRpYWxpc2VkY29sb3JzID0gRkFMU0U7CiAKK3N0YXRpYyBjaGFyICpzY3JlZW5fZW5jb2RpbmcgPSBOVUxMOworCiAvKiBVdGlsaXR5IE1hY3JvcyAqLwogI2RlZmluZSBQeUN1cnNlc1NldHVwVGVybUNhbGxlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIGlmIChpbml0aWFsaXNlZF9zZXR1cHRlcm0gIT0gVFJVRSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXApAQCAtMTc5LDcgKzE4MSw3IEBACiAgKi8KIAogc3RhdGljIFB5T2JqZWN0ICoKLVB5Q3Vyc2VzQ2hlY2tFUlIoaW50IGNvZGUsIGNoYXIgKmZuYW1lKQorUHlDdXJzZXNDaGVja0VSUihpbnQgY29kZSwgY29uc3QgY2hhciAqZm5hbWUpCiB7CiAgICAgaWYgKGNvZGUgIT0gRVJSKSB7CiAgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKQEAgLTE5NCwyNSArMTk2LDE5MyBAQAogICAgIH0KIH0KIAorLyogQ29udmVydCBhbiBvYmplY3QgdG8gYSBieXRlIChhbiBpbnRlZ2VyIG9mIHR5cGUgY2h0eXBlKToKKworICAgLSBpbnQKKyAgIC0gYnl0ZXMgb2YgbGVuZ3RoIDEKKyAgIC0gc3RyIG9mIGxlbmd0aCAxCisKKyAgIFJldHVybiAxIG9uIHN1Y2Nlc3MsIDAgb24gZXJyb3IgKGludmFsaWQgdHlwZSBvciBpbnRlZ2VyIG92ZXJmbG93KS4gKi8KIHN0YXRpYyBpbnQKLVB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZShQeU9iamVjdCAqb2JqLCBjaHR5cGUgKmNoKQorUHlDdXJzZXNfQ29udmVydFRvQ2h0eXBlKFB5Q3Vyc2VzV2luZG93T2JqZWN0ICp3aW4sIFB5T2JqZWN0ICpvYmosIGNodHlwZSAqY2gpCiB7Ci0gICAgaWYgKFB5TG9uZ19DaGVja0V4YWN0KG9iaikpIHsKLSAgICAgICAgaW50IG92ZXJmbG93OwotICAgICAgICAvKiBYWFggc2hvdWxkIHRoZSB0cnVuY2F0aW9uIGJ5IHRoZSBjYXN0IGFsc28gYmUgcmVwb3J0ZWQKLSAgICAgICAgICAgYXMgYW4gZXJyb3I/ICovCi0gICAgICAgICpjaCA9IChjaHR5cGUpIFB5TG9uZ19Bc0xvbmdBbmRPdmVyZmxvdyhvYmosICZvdmVyZmxvdyk7Ci0gICAgICAgIGlmIChvdmVyZmxvdykKKyAgICBsb25nIHZhbHVlOworICAgIGlmKFB5Qnl0ZXNfQ2hlY2sob2JqKSAmJiBQeUJ5dGVzX1NpemUob2JqKSA9PSAxKSB7CisgICAgICAgIHZhbHVlID0gKHVuc2lnbmVkIGNoYXIpUHlCeXRlc19Bc1N0cmluZyhvYmopWzBdOworICAgIH0KKyAgICBlbHNlIGlmIChQeVVuaWNvZGVfQ2hlY2sob2JqKSkgeworICAgICAgICBpZiAoUHlVbmljb2RlX0dldExlbmd0aChvYmopICE9IDEpIHsKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdCBieXRlcyBvciBzdHIgb2YgbGVuZ3RoIDEsIG9yIGludCwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJnb3QgYSBzdHIgb2YgbGVuZ3RoICV6aSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgob2JqKSk7CiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICB9IGVsc2UgaWYoUHlCeXRlc19DaGVjayhvYmopCi0gICAgICAgICAgICAgICYmIChQeUJ5dGVzX1NpemUob2JqKSA9PSAxKSkgewotICAgICAgICAqY2ggPSAoY2h0eXBlKSAqUHlCeXRlc19Bc1N0cmluZyhvYmopOwotICAgIH0gZWxzZSBpZiAoUHlVbmljb2RlX0NoZWNrKG9iaikgJiYgUHlVbmljb2RlX0dldFNpemUob2JqKSA9PSAxKSB7Ci0gICAgICAgICpjaCA9IChjaHR5cGUpICpQeVVuaWNvZGVfQVNfVU5JQ09ERShvYmopOwotICAgIH0gZWxzZSB7CisgICAgICAgIH0KKyAgICAgICAgdmFsdWUgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKG9iaiwgMCk7CisgICAgICAgIGlmICgxMjggPCB2YWx1ZSkgeworICAgICAgICAgICAgUHlPYmplY3QgKmJ5dGVzOworICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2Rpbmc7CisgICAgICAgICAgICBpZiAod2luKQorICAgICAgICAgICAgICAgIGVuY29kaW5nID0gd2luLT5lbmNvZGluZzsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBlbmNvZGluZyA9IHNjcmVlbl9lbmNvZGluZzsKKyAgICAgICAgICAgIGJ5dGVzID0gUHlVbmljb2RlX0FzRW5jb2RlZE9iamVjdChvYmosIGVuY29kaW5nLCBOVUxMKTsKKyAgICAgICAgICAgIGlmIChieXRlcyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgaWYgKFB5Qnl0ZXNfR0VUX1NJWkUoYnl0ZXMpID09IDEpCisgICAgICAgICAgICAgICAgdmFsdWUgPSAodW5zaWduZWQgY2hhcilQeUJ5dGVzX0FTX1NUUklORyhieXRlcylbMF07CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdmFsdWUgPSAtMTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihieXRlcyk7CisgICAgICAgICAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gb3ZlcmZsb3c7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoUHlMb25nX0NoZWNrRXhhY3Qob2JqKSkgeworICAgICAgICBpbnQgbG9uZ19vdmVyZmxvdzsKKyAgICAgICAgdmFsdWUgPSBQeUxvbmdfQXNMb25nQW5kT3ZlcmZsb3cob2JqLCAmbG9uZ19vdmVyZmxvdyk7CisgICAgICAgIGlmIChsb25nX292ZXJmbG93KQorICAgICAgICAgICAgZ290byBvdmVyZmxvdzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0IGJ5dGVzIG9yIHN0ciBvZiBsZW5ndGggMSwgb3IgaW50LCBnb3QgJXMiLAorICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShvYmopLT50cF9uYW1lKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQorICAgICpjaCA9IChjaHR5cGUpdmFsdWU7CisgICAgaWYgKChsb25nKSpjaCAhPSB2YWx1ZSkKKyAgICAgICAgZ290byBvdmVyZmxvdzsKICAgICByZXR1cm4gMTsKKworb3ZlcmZsb3c6CisgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICJieXRlIGRvZXNuJ3QgZml0IGluIGNodHlwZSIpOworICAgIHJldHVybiAwOworfQorCisvKiBDb252ZXJ0IGFuIG9iamVjdCB0byBhIGJ5dGUgKGNodHlwZSkgb3IgYSBjaGFyYWN0ZXIgKGNjaGFyX3QpOgorCisgICAgLSBpbnQKKyAgICAtIGJ5dGVzIG9mIGxlbmd0aCAxCisgICAgLSBzdHIgb2YgbGVuZ3RoIDEKKworICAgUmV0dXJuOgorCisgICAgLSAyIGlmIG9iaiBpcyBhIGNoYXJhY3RlciAod3JpdHRlbiBpbnRvICp3Y2gpCisgICAgLSAxIGlmIG9iaiBpcyBhIGJ5dGUgKHdyaXR0ZW4gaW50byAqY2gpCisgICAgLSAwIG9uIGVycm9yOiByYWlzZSBhbiBleGNlcHRpb24gKi8KK3N0YXRpYyBpbnQKK1B5Q3Vyc2VzX0NvbnZlcnRUb0NjaGFyX3QoUHlDdXJzZXNXaW5kb3dPYmplY3QgKndpbiwgUHlPYmplY3QgKm9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2h0eXBlICpjaAorI2lmZGVmIEhBVkVfTkNVUlNFU1cKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLCBjY2hhcl90ICp3Y2gKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICApCit7CisgICAgaW50IHJldCA9IDA7CisgICAgbG9uZyB2YWx1ZTsKKyNpZmRlZiBIQVZFX05DVVJTRVNXCisgICAgd2NoYXJfdCBidWZmZXJbMl07CisjZW5kaWYKKworICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sob2JqKSkgeworI2lmZGVmIEhBVkVfTkNVUlNFU1cKKyAgICAgICAgaWYgKFB5VW5pY29kZV9Bc1dpZGVDaGFyKG9iaiwgYnVmZmVyLCAyKSAhPSAxKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3QgYnl0ZXMgb3Igc3RyIG9mIGxlbmd0aCAxLCBvciBpbnQsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZ290IGEgc3RyIG9mIGxlbmd0aCAlemkiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKG9iaikpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgbWVtc2V0KHdjaC0+Y2hhcnMsIDAsIHNpemVvZih3Y2gtPmNoYXJzKSk7CisgICAgICAgIHdjaC0+Y2hhcnNbMF0gPSBidWZmZXJbMF07CisgICAgICAgIHJldHVybiAyOworI2Vsc2UKKyAgICAgICAgcmV0dXJuIFB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZSh3aW4sIG9iaiwgY2gpOworI2VuZGlmCisgICAgfQorICAgIGVsc2UgaWYoUHlCeXRlc19DaGVjayhvYmopICYmIFB5Qnl0ZXNfU2l6ZShvYmopID09IDEpIHsKKyAgICAgICAgdmFsdWUgPSAodW5zaWduZWQgY2hhcilQeUJ5dGVzX0FzU3RyaW5nKG9iailbMF07CisgICAgICAgIHJldCA9IDE7CisgICAgfQorICAgIGVsc2UgaWYgKFB5TG9uZ19DaGVja0V4YWN0KG9iaikpIHsKKyAgICAgICAgaW50IG92ZXJmbG93OworICAgICAgICB2YWx1ZSA9IFB5TG9uZ19Bc0xvbmdBbmRPdmVyZmxvdyhvYmosICZvdmVyZmxvdyk7CisgICAgICAgIGlmIChvdmVyZmxvdykgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludCBkb2Vzbid0IGZpdCBpbiBsb25nIik7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorI2lmZGVmIEhBVkVfTkNVUlNFU1cKKyAgICAgICAgcmV0ID0gMjsKKyNlbHNlCisgICAgICAgIHJldCA9IDE7CisjZW5kaWYKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0IGJ5dGVzIG9yIHN0ciBvZiBsZW5ndGggMSwgb3IgaW50LCBnb3QgJXMiLAorICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShvYmopLT50cF9uYW1lKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2lmZGVmIEhBVkVfTkNVUlNFU1cKKyAgICBpZiAocmV0ID09IDIpIHsKKyAgICAgICAgbWVtc2V0KHdjaC0+Y2hhcnMsIDAsIHNpemVvZih3Y2gtPmNoYXJzKSk7CisgICAgICAgIHdjaC0+Y2hhcnNbMF0gPSAod2NoYXJfdCl2YWx1ZTsKKyAgICAgICAgaWYgKChsb25nKXdjaC0+Y2hhcnNbMF0gIT0gdmFsdWUpIHsKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19PdmVyZmxvd0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJjaGFyYWN0ZXIgZG9lc24ndCBmaXQgaW4gd2NoYXJfdCIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZQorI2VuZGlmCisgICAgeworICAgICAgICAqY2ggPSAoY2h0eXBlKXZhbHVlOworICAgICAgICBpZiAoKGxvbmcpKmNoICE9IHZhbHVlKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfT3ZlcmZsb3dFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiYnl0ZSBkb2Vzbid0IGZpdCBpbiBjaHR5cGUiKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKKy8qIENvbnZlcnQgYW4gb2JqZWN0IHRvIGEgYnl0ZSBzdHJpbmcgKGNoYXIqKSBvciBhIHdpZGUgY2hhcmFjdGVyIHN0cmluZworICAgKHdjaGFyX3QqKS4gUmV0dXJuOgorCisgICAgLSAyIGlmIG9iaiBpcyBhIGNoYXJhY3RlciBzdHJpbmcgKHdyaXR0ZW4gaW50byAqd2NoKQorICAgIC0gMSBpZiBvYmogaXMgYSBieXRlIHN0cmluZyAod3JpdHRlbiBpbnRvICpieXRlcykKKyAgICAtIDAgb24gZXJyb3I6IHJhaXNlIGFuIGV4Y2VwdGlvbiAqLworc3RhdGljIGludAorUHlDdXJzZXNfQ29udmVydFRvU3RyaW5nKFB5Q3Vyc2VzV2luZG93T2JqZWN0ICp3aW4sIFB5T2JqZWN0ICpvYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKipieXRlcywgd2NoYXJfdCAqKndzdHIpCit7CisgICAgaWYgKFB5VW5pY29kZV9DaGVjayhvYmopKSB7CisjaWZkZWYgSEFWRV9OQ1VSU0VTVworICAgICAgICBhc3NlcnQgKHdzdHIgIT0gTlVMTCk7CisgICAgICAgICp3c3RyID0gUHlVbmljb2RlX0FzV2lkZUNoYXJTdHJpbmcob2JqLCBOVUxMKTsKKyAgICAgICAgaWYgKCp3c3RyID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIDI7CisjZWxzZQorICAgICAgICBhc3NlcnQgKHdzdHIgPT0gTlVMTCk7CisgICAgICAgICpieXRlcyA9IFB5VW5pY29kZV9Bc0VuY29kZWRPYmplY3Qob2JqLCB3aW4tPmVuY29kaW5nLCBOVUxMKTsKKyAgICAgICAgaWYgKCpieXRlcyA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiAxOworI2VuZGlmCisgICAgfQorICAgIGVsc2UgaWYgKFB5Qnl0ZXNfQ2hlY2sob2JqKSkgeworICAgICAgICBQeV9JTkNSRUYob2JqKTsKKyAgICAgICAgKmJ5dGVzID0gb2JqOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiZXhwZWN0IGJ5dGVzIG9yIHN0ciwgZ290ICVzIiwKKyAgICAgICAgICAgICAgICAgUHlfVFlQRShvYmopLT50cF9uYW1lKTsKKyAgICByZXR1cm4gMDsKIH0KIAogLyogRnVuY3Rpb24gdmVyc2lvbnMgb2YgdGhlIDMgZnVuY3Rpb25zIGZvciB0ZXN0aW5nIHdoZXRoZXIgY3Vyc2VzIGhhcyBiZWVuCkBAIC0zNTgsMTMgKzUyOCwzNyBAQAogLyogQWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uIG9mIFdpbmRvdyBPYmplY3RzICovCiAKIHN0YXRpYyBQeU9iamVjdCAqCi1QeUN1cnNlc1dpbmRvd19OZXcoV0lORE9XICp3aW4pCitQeUN1cnNlc1dpbmRvd19OZXcoV0lORE9XICp3aW4sIGNvbnN0IGNoYXIgKmVuY29kaW5nKQogewogICAgIFB5Q3Vyc2VzV2luZG93T2JqZWN0ICp3bzsKIAorICAgIGlmIChlbmNvZGluZyA9PSBOVUxMKSB7CisjaWYgZGVmaW5lZChNU19XSU5ET1dTKQorICAgICAgICBjaGFyICpidWZmZXJbMTAwXTsKKyAgICAgICAgVUlOVCBjcDsKKyAgICAgICAgY3AgPSBHZXRDb25zb2xlT3V0cHV0Q1AoKTsKKyAgICAgICAgaWYgKGNwICE9IDApIHsKKyAgICAgICAgICAgIFB5T1Nfc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgImNwJXUiLCBjcCk7CisgICAgICAgICAgICBlbmNvZGluZyA9IGJ1ZmZlcjsKKyAgICAgICAgfQorI2VsaWYgZGVmaW5lZChDT0RFU0VUKQorICAgICAgICBjb25zdCBjaGFyICpjb2Rlc2V0ID0gbmxfbGFuZ2luZm8oQ09ERVNFVCk7CisgICAgICAgIGlmIChjb2Rlc2V0ICE9IE5VTEwgJiYgY29kZXNldFswXSAhPSAwKQorICAgICAgICAgICAgZW5jb2RpbmcgPSBjb2Rlc2V0OworI2VuZGlmCisgICAgICAgIGlmIChlbmNvZGluZyA9PSBOVUxMKQorICAgICAgICAgICAgZW5jb2RpbmcgPSAidXRmLTgiOworICAgIH0KKwogICAgIHdvID0gUHlPYmplY3RfTkVXKFB5Q3Vyc2VzV2luZG93T2JqZWN0LCAmUHlDdXJzZXNXaW5kb3dfVHlwZSk7CiAgICAgaWYgKHdvID09IE5VTEwpIHJldHVybiBOVUxMOwogICAgIHdvLT53aW4gPSB3aW47CisgICAgd28tPmVuY29kaW5nID0gc3RyZHVwKGVuY29kaW5nKTsKKyAgICBpZiAod28tPmVuY29kaW5nID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKHdvKTsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogICAgIHJldHVybiAoUHlPYmplY3QgKil3bzsKIH0KIApAQCAtMzcyLDYgKzU2Niw4IEBACiBQeUN1cnNlc1dpbmRvd19EZWFsbG9jKFB5Q3Vyc2VzV2luZG93T2JqZWN0ICp3bykKIHsKICAgICBpZiAod28tPndpbiAhPSBzdGRzY3IpIGRlbHdpbih3by0+d2luKTsKKyAgICBpZiAod28tPmVuY29kaW5nICE9IE5VTEwpCisgICAgICAgIGZyZWUod28tPmVuY29kaW5nKTsKICAgICBQeU9iamVjdF9ERUwod28pOwogfQogCkBAIC0zODEsMjkgKzU3NywzNCBAQAogUHlDdXJzZXNXaW5kb3dfQWRkQ2goUHlDdXJzZXNXaW5kb3dPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIGludCBydG4sIHgsIHksIHVzZV94eSA9IEZBTFNFOwotICAgIFB5T2JqZWN0ICp0ZW1wOwotICAgIGNodHlwZSBjaCA9IDA7CisgICAgUHlPYmplY3QgKmNob2JqOworICAgIGludCB0eXBlOworICAgIGNodHlwZSBjaDsKKyNpZmRlZiBIQVZFX05DVVJTRVNXCisgICAgY2NoYXJfdCB3Y2g7CisjZW5kaWYKICAgICBhdHRyX3QgYXR0ciA9IEFfTk9STUFMOwogICAgIGxvbmcgbGF0dHI7CisgICAgY29uc3QgY2hhciAqZnVuY25hbWU7CiAKICAgICBzd2l0Y2ggKFB5VHVwbGVfU2l6ZShhcmdzKSkgewogICAgIGNhc2UgMToKLSAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPO2NoIG9yIGludCIsICZ0ZW1wKSkKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPO2NoIG9yIGludCIsICZjaG9iaikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAyOgotICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk9sO2NoIG9yIGludCxhdHRyIiwgJnRlbXAsICZsYXR0cikpCisgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT2w7Y2ggb3IgaW50LGF0dHIiLCAmY2hvYmosICZsYXR0cikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgYXR0ciA9IGxhdHRyOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDM6Ci0gICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaU87eSx4LGNoIG9yIGludCIsICZ5LCAmeCwgJnRlbXApKQorICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywiaWlPO3kseCxjaCBvciBpbnQiLCAmeSwgJngsICZjaG9iaikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgdXNlX3h5ID0gVFJVRTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSA0OgogICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywiaWlPbDt5LHgsY2ggb3IgaW50LCBhdHRyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ5LCAmeCwgJnRlbXAsICZsYXR0cikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmeSwgJngsICZjaG9iaiwgJmxhdHRyKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBhdHRyID0gbGF0dHI7CiAgICAgICAgIHVzZV94eSA9IFRSVUU7CkBAIC00MTMsMTcgKzYxNCwzMyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBpZiAoIVB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZSh0ZW1wLCAmY2gpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJhcmd1bWVudCAxIG9yIDMgbXVzdCBiZSBhIGNoIG9yIGFuIGludCIpOworI2lmZGVmIEhBVkVfTkNVUlNFU1cKKyAgICB0eXBlID0gUHlDdXJzZXNfQ29udmVydFRvQ2NoYXJfdChzZWxmLCBjaG9iaiwgJmNoLCAmd2NoKTsKKyAgICBpZiAodHlwZSA9PSAyKSB7CisgICAgICAgIGZ1bmNuYW1lID0gImFkZF93Y2giOworICAgICAgICB3Y2guYXR0ciA9IGF0dHI7CisgICAgICAgIGlmICh1c2VfeHkgPT0gVFJVRSkKKyAgICAgICAgICAgIHJ0biA9IG12d2FkZF93Y2goc2VsZi0+d2luLHkseCwgJndjaCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnRuID0gd2FkZF93Y2goc2VsZi0+d2luLCAmd2NoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlCisjZWxzZQorICAgIHR5cGUgPSBQeUN1cnNlc19Db252ZXJ0VG9DY2hhcl90KHNlbGYsIGNob2JqLCAmY2gpOworI2VuZGlmCisgICAgaWYgKHR5cGUgPT0gMSkgeworICAgICAgICBmdW5jbmFtZSA9ICJhZGRjaCI7CisgICAgICAgIGlmICh1c2VfeHkgPT0gVFJVRSkKKyAgICAgICAgICAgIHJ0biA9IG12d2FkZGNoKHNlbGYtPndpbix5LHgsIGNoIHwgYXR0cik7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcnRuID0gd2FkZGNoKHNlbGYtPndpbiwgY2ggfCBhdHRyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotCi0gICAgaWYgKHVzZV94eSA9PSBUUlVFKQotICAgICAgICBydG4gPSBtdndhZGRjaChzZWxmLT53aW4seSx4LCBjaCB8IGF0dHIpOwotICAgIGVsc2UgewotICAgICAgICBydG4gPSB3YWRkY2goc2VsZi0+d2luLCBjaCB8IGF0dHIpOwotICAgIH0KLSAgICByZXR1cm4gUHlDdXJzZXNDaGVja0VSUihydG4sICJhZGRjaCIpOworICAgIHJldHVybiBQeUN1cnNlc0NoZWNrRVJSKHJ0biwgZnVuY25hbWUpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtNDMxLDI5ICs2NDgsMzQgQEAKIHsKICAgICBpbnQgcnRuOwogICAgIGludCB4LCB5OwotICAgIGNoYXIgKnN0cjsKKyAgICBpbnQgc3RydHlwZTsKKyAgICBQeU9iamVjdCAqc3Ryb2JqLCAqYnl0ZXNvYmogPSBOVUxMOworI2lmZGVmIEhBVkVfTkNVUlNFU1cKKyAgICB3Y2hhcl90ICp3c3RyID0gTlVMTDsKKyNlbmRpZgogICAgIGF0dHJfdCBhdHRyID0gQV9OT1JNQUwgLCBhdHRyX29sZCA9IEFfTk9STUFMOwogICAgIGxvbmcgbGF0dHI7CiAgICAgaW50IHVzZV94eSA9IEZBTFNFLCB1c2VfYXR0ciA9IEZBTFNFOworICAgIGNvbnN0IGNoYXIgKmZ1bmNuYW1lOwogCiAgICAgc3dpdGNoIChQeVR1cGxlX1NpemUoYXJncykpIHsKICAgICBjYXNlIDE6Ci0gICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJzO3N0ciIsICZzdHIpKQorICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywiTztzdHIiLCAmc3Ryb2JqKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDI6Ci0gICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJzbDtzdHIsYXR0ciIsICZzdHIsICZsYXR0cikpCisgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJPbDtzdHIsYXR0ciIsICZzdHJvYmosICZsYXR0cikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgYXR0ciA9IGxhdHRyOwogICAgICAgICB1c2VfYXR0ciA9IFRSVUU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMzoKLSAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsImlpcztpbnQsaW50LHN0ciIsICZ5LCAmeCwgJnN0cikpCisgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaU87aW50LGludCxzdHIiLCAmeSwgJngsICZzdHJvYmopKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIHVzZV94eSA9IFRSVUU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgNDoKLSAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsImlpc2w7aW50LGludCxzdHIsYXR0ciIsICZ5LCAmeCwgJnN0ciwgJmxhdHRyKSkKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsImlpT2w7aW50LGludCxzdHIsYXR0ciIsICZ5LCAmeCwgJnN0cm9iaiwgJmxhdHRyKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBhdHRyID0gbGF0dHI7CiAgICAgICAgIHVzZV94eSA9IHVzZV9hdHRyID0gVFJVRTsKQEAgLTQ2Miw0NyArNjg0LDc0IEBACiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJhZGRzdHIgcmVxdWlyZXMgMSB0byA0IGFyZ3VtZW50cyIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0KKyNpZmRlZiBIQVZFX05DVVJTRVNXCisgICAgc3RydHlwZSA9IFB5Q3Vyc2VzX0NvbnZlcnRUb1N0cmluZyhzZWxmLCBzdHJvYmosICZieXRlc29iaiwgJndzdHIpOworI2Vsc2UKKyAgICBzdHJ0eXBlID0gUHlDdXJzZXNfQ29udmVydFRvU3RyaW5nKHNlbGYsIHN0cm9iaiwgJmJ5dGVzb2JqLCBOVUxMKTsKKyNlbmRpZgorICAgIGlmIChzdHJ0eXBlID09IDApCisgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmICh1c2VfYXR0ciA9PSBUUlVFKSB7CiAgICAgICAgIGF0dHJfb2xkID0gZ2V0YXR0cnMoc2VsZi0+d2luKTsKICAgICAgICAgKHZvaWQpd2F0dHJzZXQoc2VsZi0+d2luLGF0dHIpOwogICAgIH0KLSAgICBpZiAodXNlX3h5ID09IFRSVUUpCi0gICAgICAgIHJ0biA9IG12d2FkZHN0cihzZWxmLT53aW4seSx4LHN0cik7CisjaWZkZWYgSEFWRV9OQ1VSU0VTVworICAgIGlmIChzdHJ0eXBlID09IDIpIHsKKyAgICAgICAgZnVuY25hbWUgPSAiYWRkd3N0ciI7CisgICAgICAgIGlmICh1c2VfeHkgPT0gVFJVRSkKKyAgICAgICAgICAgIHJ0biA9IG12d2FkZHdzdHIoc2VsZi0+d2luLHkseCx3c3RyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnRuID0gd2FkZHdzdHIoc2VsZi0+d2luLHdzdHIpOworICAgICAgICBQeU1lbV9GcmVlKHdzdHIpOworICAgIH0KICAgICBlbHNlCi0gICAgICAgIHJ0biA9IHdhZGRzdHIoc2VsZi0+d2luLHN0cik7CisjZW5kaWYKKyAgICB7CisgICAgICAgIGNoYXIgKnN0ciA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGJ5dGVzb2JqKTsKKyAgICAgICAgZnVuY25hbWUgPSAiYWRkc3RyIjsKKyAgICAgICAgaWYgKHVzZV94eSA9PSBUUlVFKQorICAgICAgICAgICAgcnRuID0gbXZ3YWRkc3RyKHNlbGYtPndpbix5LHgsc3RyKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnRuID0gd2FkZHN0cihzZWxmLT53aW4sc3RyKTsKKyAgICAgICAgUHlfREVDUkVGKGJ5dGVzb2JqKTsKKyAgICB9CiAgICAgaWYgKHVzZV9hdHRyID09IFRSVUUpCiAgICAgICAgICh2b2lkKXdhdHRyc2V0KHNlbGYtPndpbixhdHRyX29sZCk7Ci0gICAgcmV0dXJuIFB5Q3Vyc2VzQ2hlY2tFUlIocnRuLCAiYWRkc3RyIik7CisgICAgcmV0dXJuIFB5Q3Vyc2VzQ2hlY2tFUlIocnRuLCBmdW5jbmFtZSk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBQeUN1cnNlc1dpbmRvd19BZGROU3RyKFB5Q3Vyc2VzV2luZG93T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBpbnQgcnRuLCB4LCB5LCBuOwotICAgIGNoYXIgKnN0cjsKKyAgICBpbnQgc3RydHlwZTsKKyAgICBQeU9iamVjdCAqc3Ryb2JqLCAqYnl0ZXNvYmogPSBOVUxMOworI2lmZGVmIEhBVkVfTkNVUlNFU1cKKyAgICB3Y2hhcl90ICp3c3RyID0gTlVMTDsKKyNlbmRpZgogICAgIGF0dHJfdCBhdHRyID0gQV9OT1JNQUwgLCBhdHRyX29sZCA9IEFfTk9STUFMOwogICAgIGxvbmcgbGF0dHI7CiAgICAgaW50IHVzZV94eSA9IEZBTFNFLCB1c2VfYXR0ciA9IEZBTFNFOworICAgIGNvbnN0IGNoYXIgKmZ1bmNuYW1lOwogCiAgICAgc3dpdGNoIChQeVR1cGxlX1NpemUoYXJncykpIHsKICAgICBjYXNlIDI6Ci0gICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJzaTtzdHIsbiIsICZzdHIsICZuKSkKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIk9pO3N0cixuIiwgJnN0cm9iaiwgJm4pKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgMzoKLSAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsInNpbDtzdHIsbixhdHRyIiwgJnN0ciwgJm4sICZsYXR0cikpCisgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJPaWw7c3RyLG4sYXR0ciIsICZzdHJvYmosICZuLCAmbGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGF0dHIgPSBsYXR0cjsKICAgICAgICAgdXNlX2F0dHIgPSBUUlVFOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDQ6Ci0gICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaXNpO3kseCxzdHIsbiIsICZ5LCAmeCwgJnN0ciwgJm4pKQorICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywiaWlPaTt5LHgsc3RyLG4iLCAmeSwgJngsICZzdHJvYmosICZuKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB1c2VfeHkgPSBUUlVFOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDU6Ci0gICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaXNpbDt5LHgsc3RyLG4sYXR0ciIsICZ5LCAmeCwgJnN0ciwgJm4sICZsYXR0cikpCisgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaU9pbDt5LHgsc3RyLG4sYXR0ciIsICZ5LCAmeCwgJnN0cm9iaiwgJm4sICZsYXR0cikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgYXR0ciA9IGxhdHRyOwogICAgICAgICB1c2VfeHkgPSB1c2VfYXR0ciA9IFRSVUU7CkBAIC01MTEsMTggKzc2MCw0MSBAQAogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiYWRkbnN0ciByZXF1aXJlcyAyIHRvIDUgYXJndW1lbnRzIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KKyNpZmRlZiBIQVZFX05DVVJTRVNXCisgICAgc3RydHlwZSA9IFB5Q3Vyc2VzX0NvbnZlcnRUb1N0cmluZyhzZWxmLCBzdHJvYmosICZieXRlc29iaiwgJndzdHIpOworI2Vsc2UKKyAgICBzdHJ0eXBlID0gUHlDdXJzZXNfQ29udmVydFRvU3RyaW5nKHNlbGYsIHN0cm9iaiwgJmJ5dGVzb2JqLCBOVUxMKTsKKyNlbmRpZgorICAgIGlmIChzdHJ0eXBlID09IDApCisgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgaWYgKHVzZV9hdHRyID09IFRSVUUpIHsKICAgICAgICAgYXR0cl9vbGQgPSBnZXRhdHRycyhzZWxmLT53aW4pOwogICAgICAgICAodm9pZCl3YXR0cnNldChzZWxmLT53aW4sYXR0cik7CiAgICAgfQotICAgIGlmICh1c2VfeHkgPT0gVFJVRSkKLSAgICAgICAgcnRuID0gbXZ3YWRkbnN0cihzZWxmLT53aW4seSx4LHN0cixuKTsKKyNpZmRlZiBIQVZFX05DVVJTRVNXCisgICAgaWYgKHN0cnR5cGUgPT0gMikgeworICAgICAgICBmdW5jbmFtZSA9ICJhZGRud3N0ciI7CisgICAgICAgIGlmICh1c2VfeHkgPT0gVFJVRSkKKyAgICAgICAgICAgIHJ0biA9IG12d2FkZG53c3RyKHNlbGYtPndpbix5LHgsd3N0cixuKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnRuID0gd2FkZG53c3RyKHNlbGYtPndpbix3c3RyLG4pOworICAgICAgICBQeU1lbV9GcmVlKHdzdHIpOworICAgIH0KICAgICBlbHNlCi0gICAgICAgIHJ0biA9IHdhZGRuc3RyKHNlbGYtPndpbixzdHIsbik7CisjZW5kaWYKKyAgICB7CisgICAgICAgIGNoYXIgKnN0ciA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGJ5dGVzb2JqKTsKKyAgICAgICAgZnVuY25hbWUgPSAiYWRkbnN0ciI7CisgICAgICAgIGlmICh1c2VfeHkgPT0gVFJVRSkKKyAgICAgICAgICAgIHJ0biA9IG12d2FkZG5zdHIoc2VsZi0+d2luLHkseCxzdHIsbik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJ0biA9IHdhZGRuc3RyKHNlbGYtPndpbixzdHIsbik7CisgICAgICAgIFB5X0RFQ1JFRihieXRlc29iaik7CisgICAgfQogICAgIGlmICh1c2VfYXR0ciA9PSBUUlVFKQogICAgICAgICAodm9pZCl3YXR0cnNldChzZWxmLT53aW4sYXR0cl9vbGQpOwotICAgIHJldHVybiBQeUN1cnNlc0NoZWNrRVJSKHJ0biwgImFkZG5zdHIiKTsKKyAgICByZXR1cm4gUHlDdXJzZXNDaGVja0VSUihydG4sIGZ1bmNuYW1lKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTU0OCwxMCArODIwLDggQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgaWYgKCFQeUN1cnNlc19Db252ZXJ0VG9DaHR5cGUodGVtcCwgJmJrZ2QpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJhcmd1bWVudCAxIG9yIDMgbXVzdCBiZSBhIGNoIG9yIGFuIGludCIpOworICAgIGlmICghUHlDdXJzZXNfQ29udmVydFRvQ2h0eXBlKHNlbGYsIHRlbXAsICZia2dkKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQogCiAgICAgcmV0dXJuIFB5Q3Vyc2VzQ2hlY2tFUlIod2JrZ2Qoc2VsZi0+d2luLCBia2dkIHwgYXR0ciksICJia2dkIik7CiB9CkBAIC02MDYsMTAgKzg3Niw4IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIGlmICghUHlDdXJzZXNfQ29udmVydFRvQ2h0eXBlKHRlbXAsICZia2dkKSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiYXJndW1lbnQgMSBtdXN0IGJlIGEgY2ggb3IgYW4gaW50Iik7CisgICAgaWYgKCFQeUN1cnNlc19Db252ZXJ0VG9DaHR5cGUoc2VsZiwgdGVtcCwgJmJrZ2QpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CiAKICAgICB3YmtnZHNldChzZWxmLT53aW4sIGJrZ2QgfCBhdHRyKTsKICAgICByZXR1cm4gUHlDdXJzZXNDaGVja0VSUigwLCAiYmtnZHNldCIpOwpAQCAtNjM0LDExICs5MDIsOCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGZvcihpPTA7IGk8ODsgaSsrKSB7Ci0gICAgICAgIGlmICh0ZW1wW2ldICE9IE5VTEwgJiYgIVB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZSh0ZW1wW2ldLCAmY2hbaV0pKSB7Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCAlaSBtdXN0IGJlIGEgY2ggb3IgYW4gaW50IiwgaSsxKTsKKyAgICAgICAgaWYgKHRlbXBbaV0gIT0gTlVMTCAmJiAhUHlDdXJzZXNfQ29udmVydFRvQ2h0eXBlKHNlbGYsIHRlbXBbaV0sICZjaFtpXSkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQogICAgIH0KIAogICAgIHdib3JkZXIoc2VsZi0+d2luLApAQCAtNzgzLDcgKzEwNDgsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICByZXR1cm4gKFB5T2JqZWN0ICopUHlDdXJzZXNXaW5kb3dfTmV3KHdpbik7CisgICAgcmV0dXJuIChQeU9iamVjdCAqKVB5Q3Vyc2VzV2luZG93X05ldyh3aW4sIE5VTEwpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtODExLDEwICsxMDc2LDggQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgaWYgKCFQeUN1cnNlc19Db252ZXJ0VG9DaHR5cGUodGVtcCwgJmNoKSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiYXJndW1lbnQgMSBtdXN0IGJlIGEgY2ggb3IgYW4gaW50Iik7CisgICAgaWYgKCFQeUN1cnNlc19Db252ZXJ0VG9DaHR5cGUoc2VsZiwgdGVtcCwgJmNoKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQogCiAjaWZkZWYgV0lORE9XX0hBU19GTEFHUwogICAgIGlmIChzZWxmLT53aW4tPl9mbGFncyAmIF9JU1BBRCkKQEAgLTkxMCw2ICsxMTczLDQwIEBACiAgICAgfQogfQogCisjaWZkZWYgSEFWRV9OQ1VSU0VTVworc3RhdGljIFB5T2JqZWN0ICoKK1B5Q3Vyc2VzV2luZG93X0dldF9XQ2goUHlDdXJzZXNXaW5kb3dPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCB4LCB5OworICAgIGludCBjdDsKKyAgICB3aW50X3QgcnRuOworCisgICAgc3dpdGNoIChQeVR1cGxlX1NpemUoYXJncykpIHsKKyAgICBjYXNlIDA6CisgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgY3QgPSB3Z2V0X3djaChzZWxmLT53aW4sJnJ0bik7CisgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMjoKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsImlpO3kseCIsJnksJngpKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgY3QgPSBtdndnZXRfd2NoKHNlbGYtPndpbix5LHgsJnJ0bik7CisgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJnZXRfd2NoIHJlcXVpcmVzIDAgb3IgMiBhcmd1bWVudHMiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChjdCA9PSBFUlIpIHsKKyAgICAgICAgLyogZ2V0X3djaCgpIHJldHVybnMgRVJSIGluIG5vZGVsYXkgbW9kZSAqLworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlDdXJzZXNFcnJvciwgIm5vIGlucHV0Iik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKHJ0bik7Cit9CisjZW5kaWYKKwogc3RhdGljIFB5T2JqZWN0ICoKIFB5Q3Vyc2VzV2luZG93X0dldFN0cihQeUN1cnNlc1dpbmRvd09iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CkBAIC0xMDAxLDExICsxMjk4LDggQEAKICAgICB9CiAKICAgICBpZiAoY29kZSAhPSBFUlIpIHsKLSAgICAgICAgaWYgKCFQeUN1cnNlc19Db252ZXJ0VG9DaHR5cGUodGVtcCwgJmNoKSkgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJndW1lbnQgMSBvciAzIG11c3QgYmUgYSBjaCBvciBhbiBpbnQiKTsKKyAgICAgICAgaWYgKCFQeUN1cnNlc19Db252ZXJ0VG9DaHR5cGUoc2VsZiwgdGVtcCwgJmNoKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9CiAgICAgICAgIHJldHVybiBQeUN1cnNlc0NoZWNrRVJSKHdobGluZShzZWxmLT53aW4sIGNoIHwgYXR0ciwgbiksICJobGluZSIpOwogICAgIH0gZWxzZQogICAgICAgICByZXR1cm4gUHlDdXJzZXNDaGVja0VSUihjb2RlLCAid21vdmUiKTsKQEAgLTEwNDYsMTEgKzEzNDAsOCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBpZiAoIVB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZSh0ZW1wLCAmY2gpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYXJndW1lbnQgMSBvciAzIG11c3QgYmUgYSBjaCBvciBhbiBpbnQiKTsKKyAgICBpZiAoIVB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZShzZWxmLCB0ZW1wLCAmY2gpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CiAKICAgICBpZiAodXNlX3h5ID09IFRSVUUpCiAgICAgICAgIHJ0biA9IG12d2luc2NoKHNlbGYtPndpbix5LHgsIGNoIHwgYXR0cik7CkBAIC0xMTIxLDI5ICsxNDEyLDM0IEBACiB7CiAgICAgaW50IHJ0bjsKICAgICBpbnQgeCwgeTsKLSAgICBjaGFyICpzdHI7CisgICAgaW50IHN0cnR5cGU7CisgICAgUHlPYmplY3QgKnN0cm9iaiwgKmJ5dGVzb2JqID0gTlVMTDsKKyNpZmRlZiBIQVZFX05DVVJTRVNXCisgICAgd2NoYXJfdCAqd3N0ciA9IE5VTEw7CisjZW5kaWYKICAgICBhdHRyX3QgYXR0ciA9IEFfTk9STUFMICwgYXR0cl9vbGQgPSBBX05PUk1BTDsKICAgICBsb25nIGxhdHRyOwogICAgIGludCB1c2VfeHkgPSBGQUxTRSwgdXNlX2F0dHIgPSBGQUxTRTsKKyAgICBjb25zdCBjaGFyICpmdW5jbmFtZTsKIAogICAgIHN3aXRjaCAoUHlUdXBsZV9TaXplKGFyZ3MpKSB7CiAgICAgY2FzZSAxOgotICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywicztzdHIiLCAmc3RyKSkKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIk87c3RyIiwgJnN0cm9iaikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAyOgotICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywic2w7c3RyLGF0dHIiLCAmc3RyLCAmbGF0dHIpKQorICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywiT2w7c3RyLGF0dHIiLCAmc3Ryb2JqLCAmbGF0dHIpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGF0dHIgPSBsYXR0cjsKICAgICAgICAgdXNlX2F0dHIgPSBUUlVFOwogICAgICAgICBicmVhazsKICAgICBjYXNlIDM6Ci0gICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaXM7eSx4LHN0ciIsICZ5LCAmeCwgJnN0cikpCisgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaU87eSx4LHN0ciIsICZ5LCAmeCwgJnN0cm9iaikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgdXNlX3h5ID0gVFJVRTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSA0OgotICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywiaWlzbDt5LHgsc3RyLGF0dHIiLCAmeSwgJngsICZzdHIsICZsYXR0cikpCisgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaU9sO3kseCxzdHIsYXR0ciIsICZ5LCAmeCwgJnN0cm9iaiwgJmxhdHRyKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBhdHRyID0gbGF0dHI7CiAgICAgICAgIHVzZV94eSA9IHVzZV9hdHRyID0gVFJVRTsKQEAgLTExNTMsNDYgKzE0NDksNzUgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCisjaWZkZWYgSEFWRV9OQ1VSU0VTVworICAgIHN0cnR5cGUgPSBQeUN1cnNlc19Db252ZXJ0VG9TdHJpbmcoc2VsZiwgc3Ryb2JqLCAmYnl0ZXNvYmosICZ3c3RyKTsKKyNlbHNlCisgICAgc3RydHlwZSA9IFB5Q3Vyc2VzX0NvbnZlcnRUb1N0cmluZyhzZWxmLCBzdHJvYmosICZieXRlc29iaiwgTlVMTCk7CisjZW5kaWYKKyAgICBpZiAoc3RydHlwZSA9PSAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIGlmICh1c2VfYXR0ciA9PSBUUlVFKSB7CiAgICAgICAgIGF0dHJfb2xkID0gZ2V0YXR0cnMoc2VsZi0+d2luKTsKICAgICAgICAgKHZvaWQpd2F0dHJzZXQoc2VsZi0+d2luLGF0dHIpOwogICAgIH0KLSAgICBpZiAodXNlX3h5ID09IFRSVUUpCi0gICAgICAgIHJ0biA9IG12d2luc3N0cihzZWxmLT53aW4seSx4LHN0cik7CisjaWZkZWYgSEFWRV9OQ1VSU0VTVworICAgIGlmIChzdHJ0eXBlID09IDIpIHsKKyAgICAgICAgZnVuY25hbWUgPSAiaW5zd3N0ciI7CisgICAgICAgIGlmICh1c2VfeHkgPT0gVFJVRSkKKyAgICAgICAgICAgIHJ0biA9IG12d2luc193c3RyKHNlbGYtPndpbix5LHgsd3N0cik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJ0biA9IHdpbnNfd3N0cihzZWxmLT53aW4sd3N0cik7CisgICAgICAgIFB5TWVtX0ZyZWUod3N0cik7CisgICAgfQogICAgIGVsc2UKLSAgICAgICAgcnRuID0gd2luc3N0cihzZWxmLT53aW4sc3RyKTsKKyNlbmRpZgorICAgIHsKKyAgICAgICAgY2hhciAqc3RyID0gUHlCeXRlc19BU19TVFJJTkcoYnl0ZXNvYmopOworICAgICAgICBmdW5jbmFtZSA9ICJpbnNzdHIiOworICAgICAgICBpZiAodXNlX3h5ID09IFRSVUUpCisgICAgICAgICAgICBydG4gPSBtdndpbnNzdHIoc2VsZi0+d2luLHkseCxzdHIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBydG4gPSB3aW5zc3RyKHNlbGYtPndpbixzdHIpOworICAgICAgICBQeV9ERUNSRUYoYnl0ZXNvYmopOworICAgIH0KICAgICBpZiAodXNlX2F0dHIgPT0gVFJVRSkKICAgICAgICAgKHZvaWQpd2F0dHJzZXQoc2VsZi0+d2luLGF0dHJfb2xkKTsKLSAgICByZXR1cm4gUHlDdXJzZXNDaGVja0VSUihydG4sICJpbnNzdHIiKTsKKyAgICByZXR1cm4gUHlDdXJzZXNDaGVja0VSUihydG4sIGZ1bmNuYW1lKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKIFB5Q3Vyc2VzV2luZG93X0luc05TdHIoUHlDdXJzZXNXaW5kb3dPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIGludCBydG4sIHgsIHksIG47Ci0gICAgY2hhciAqc3RyOworICAgIGludCBzdHJ0eXBlOworICAgIFB5T2JqZWN0ICpzdHJvYmosICpieXRlc29iaiA9IE5VTEw7CisjaWZkZWYgSEFWRV9OQ1VSU0VTVworICAgIHdjaGFyX3QgKndzdHIgPSBOVUxMOworI2VuZGlmCiAgICAgYXR0cl90IGF0dHIgPSBBX05PUk1BTCAsIGF0dHJfb2xkID0gQV9OT1JNQUw7CiAgICAgbG9uZyBsYXR0cjsKICAgICBpbnQgdXNlX3h5ID0gRkFMU0UsIHVzZV9hdHRyID0gRkFMU0U7CisgICAgY29uc3QgY2hhciAqZnVuY25hbWU7CiAKICAgICBzd2l0Y2ggKFB5VHVwbGVfU2l6ZShhcmdzKSkgewogICAgIGNhc2UgMjoKLSAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsInNpO3N0cixuIiwgJnN0ciwgJm4pKQorICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywiT2k7c3RyLG4iLCAmc3Ryb2JqLCAmbikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSAzOgotICAgICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywic2lsO3N0cixuLGF0dHIiLCAmc3RyLCAmbiwgJmxhdHRyKSkKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIk9pbDtzdHIsbixhdHRyIiwgJnN0cm9iaiwgJm4sICZsYXR0cikpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgYXR0ciA9IGxhdHRyOwogICAgICAgICB1c2VfYXR0ciA9IFRSVUU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgNDoKLSAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsImlpc2k7eSx4LHN0cixuIiwgJnksICZ4LCAmc3RyLCAmbikpCisgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJpaU9pO3kseCxzdHIsbiIsICZ5LCAmeCwgJnN0cm9iaiwgJm4pKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIHVzZV94eSA9IFRSVUU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgNToKLSAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsImlpc2lsO3kseCxzdHIsbixhdHRyIiwgJnksICZ4LCAmc3RyLCAmbiwgJmxhdHRyKSkKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsImlpT2lsO3kseCxzdHIsbixhdHRyIiwgJnksICZ4LCAmc3Ryb2JqLCAmbiwgJmxhdHRyKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBhdHRyID0gbGF0dHI7CiAgICAgICAgIHVzZV94eSA9IHVzZV9hdHRyID0gVFJVRTsKQEAgLTEyMDIsMTcgKzE1MjcsNDEgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCisjaWZkZWYgSEFWRV9OQ1VSU0VTVworICAgIHN0cnR5cGUgPSBQeUN1cnNlc19Db252ZXJ0VG9TdHJpbmcoc2VsZiwgc3Ryb2JqLCAmYnl0ZXNvYmosICZ3c3RyKTsKKyNlbHNlCisgICAgc3RydHlwZSA9IFB5Q3Vyc2VzX0NvbnZlcnRUb1N0cmluZyhzZWxmLCBzdHJvYmosICZieXRlc29iaiwgTlVMTCk7CisjZW5kaWYKKyAgICBpZiAoc3RydHlwZSA9PSAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIGlmICh1c2VfYXR0ciA9PSBUUlVFKSB7CiAgICAgICAgIGF0dHJfb2xkID0gZ2V0YXR0cnMoc2VsZi0+d2luKTsKICAgICAgICAgKHZvaWQpd2F0dHJzZXQoc2VsZi0+d2luLGF0dHIpOwogICAgIH0KLSAgICBpZiAodXNlX3h5ID09IFRSVUUpCi0gICAgICAgIHJ0biA9IG12d2luc25zdHIoc2VsZi0+d2luLHkseCxzdHIsbik7CisjaWZkZWYgSEFWRV9OQ1VSU0VTVworICAgIGlmIChzdHJ0eXBlID09IDIpIHsKKyAgICAgICAgZnVuY25hbWUgPSAiaW5zbl93c3RyIjsKKyAgICAgICAgaWYgKHVzZV94eSA9PSBUUlVFKQorICAgICAgICAgICAgcnRuID0gbXZ3aW5zX253c3RyKHNlbGYtPndpbix5LHgsd3N0cixuKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcnRuID0gd2luc19ud3N0cihzZWxmLT53aW4sd3N0cixuKTsKKyAgICAgICAgUHlNZW1fRnJlZSh3c3RyKTsKKyAgICB9CiAgICAgZWxzZQotICAgICAgICBydG4gPSB3aW5zbnN0cihzZWxmLT53aW4sc3RyLG4pOworI2VuZGlmCisgICAgeworICAgICAgICBjaGFyICpzdHIgPSBQeUJ5dGVzX0FTX1NUUklORyhieXRlc29iaik7CisgICAgICAgIGZ1bmNuYW1lID0gImluc25zdHIiOworICAgICAgICBpZiAodXNlX3h5ID09IFRSVUUpCisgICAgICAgICAgICBydG4gPSBtdndpbnNuc3RyKHNlbGYtPndpbix5LHgsc3RyLG4pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBydG4gPSB3aW5zbnN0cihzZWxmLT53aW4sc3RyLG4pOworICAgICAgICBQeV9ERUNSRUYoYnl0ZXNvYmopOworICAgIH0KICAgICBpZiAodXNlX2F0dHIgPT0gVFJVRSkKICAgICAgICAgKHZvaWQpd2F0dHJzZXQoc2VsZi0+d2luLGF0dHJfb2xkKTsKLSAgICByZXR1cm4gUHlDdXJzZXNDaGVja0VSUihydG4sICJpbnNuc3RyIik7CisgICAgcmV0dXJuIFB5Q3Vyc2VzQ2hlY2tFUlIocnRuLCBmdW5jbmFtZSk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0xMzg1LDEwICsxNzM0LDEyIEBACiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgY2hhciBidWZbQlVGU0laXTsKICAgICAgICAgUHlfc3NpemVfdCBuID0gZnJlYWQoYnVmLCAxLCBCVUZTSVosIGZwKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIod3JpdGUpOworCiAgICAgICAgIGlmIChuIDw9IDApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgUHlfREVDUkVGKHJlcyk7Ci0gICAgICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxNZXRob2Qoc3RyZWFtLCAid3JpdGUiLCAieSMiLCBidWYsIG4pOworICAgICAgICByZXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHN0cmVhbSwgJlB5SWRfd3JpdGUsICJ5IyIsIGJ1Ziwgbik7CiAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTE0OTMsNyArMTg0NCw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIHJldHVybiAoUHlPYmplY3QgKilQeUN1cnNlc1dpbmRvd19OZXcod2luKTsKKyAgICByZXR1cm4gKFB5T2JqZWN0ICopUHlDdXJzZXNXaW5kb3dfTmV3KHdpbiwgc2VsZi0+ZW5jb2RpbmcpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMTU2OSwxNiArMTkyMCw1MSBAQAogICAgIH0KIAogICAgIGlmIChjb2RlICE9IEVSUikgewotICAgICAgICBpZiAoIVB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZSh0ZW1wLCAmY2gpKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCAxIG9yIDMgbXVzdCBiZSBhIGNoIG9yIGFuIGludCIpOworICAgICAgICBpZiAoIVB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZShzZWxmLCB0ZW1wLCAmY2gpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KICAgICAgICAgcmV0dXJuIFB5Q3Vyc2VzQ2hlY2tFUlIod3ZsaW5lKHNlbGYtPndpbiwgY2ggfCBhdHRyLCBuKSwgInZsaW5lIik7CiAgICAgfSBlbHNlCiAgICAgICAgIHJldHVybiBQeUN1cnNlc0NoZWNrRVJSKGNvZGUsICJ3bW92ZSIpOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorUHlDdXJzZXNXaW5kb3dfZ2V0X2VuY29kaW5nKFB5Q3Vyc2VzV2luZG93T2JqZWN0ICpzZWxmLCB2b2lkICpjbG9zdXJlKQoreworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhzZWxmLT5lbmNvZGluZyk7Cit9CisKK3N0YXRpYyBpbnQKK1B5Q3Vyc2VzV2luZG93X3NldF9lbmNvZGluZyhQeUN1cnNlc1dpbmRvd09iamVjdCAqc2VsZiwgUHlPYmplY3QgKnZhbHVlKQoreworICAgIFB5T2JqZWN0ICphc2NpaTsKKyAgICBjaGFyICplbmNvZGluZzsKKworICAgIC8qIEl0IGlzIGlsbGVnYWwgdG8gZGVsIHdpbi5lbmNvZGluZyAqLworICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiZW5jb2RpbmcgbWF5IG5vdCBiZSBkZWxldGVkIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh2YWx1ZSkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJzZXR0aW5nIGVuY29kaW5nIHRvIGEgbm9uLXN0cmluZyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGFzY2lpID0gUHlVbmljb2RlX0FzQVNDSUlTdHJpbmcodmFsdWUpOworICAgIGlmIChhc2NpaSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisgICAgZW5jb2RpbmcgPSBzdHJkdXAoUHlCeXRlc19BU19TVFJJTkcoYXNjaWkpKTsKKyAgICBpZiAoZW5jb2RpbmcgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGZyZWUoc2VsZi0+ZW5jb2RpbmcpOworICAgIHNlbGYtPmVuY29kaW5nID0gZW5jb2Rpbmc7CisgICAgcmV0dXJuIDA7Cit9CisKKwogc3RhdGljIFB5TWV0aG9kRGVmIFB5Q3Vyc2VzV2luZG93X01ldGhvZHNbXSA9IHsKICAgICB7ImFkZGNoIiwgICAgICAgICAgIChQeUNGdW5jdGlvbilQeUN1cnNlc1dpbmRvd19BZGRDaCwgTUVUSF9WQVJBUkdTfSwKICAgICB7ImFkZG5zdHIiLCAgICAgICAgIChQeUNGdW5jdGlvbilQeUN1cnNlc1dpbmRvd19BZGROU3RyLCBNRVRIX1ZBUkFSR1N9LApAQCAtMTYwOCw2ICsxOTk0LDkgQEAKICAgICB7ImdldGJrZ2QiLCAgICAgICAgIChQeUNGdW5jdGlvbilQeUN1cnNlc1dpbmRvd19HZXRCa2dkLCBNRVRIX05PQVJHU30sCiAgICAgeyJnZXRjaCIsICAgICAgICAgICAoUHlDRnVuY3Rpb24pUHlDdXJzZXNXaW5kb3dfR2V0Q2gsIE1FVEhfVkFSQVJHU30sCiAgICAgeyJnZXRrZXkiLCAgICAgICAgICAoUHlDRnVuY3Rpb24pUHlDdXJzZXNXaW5kb3dfR2V0S2V5LCBNRVRIX1ZBUkFSR1N9LAorI2lmZGVmIEhBVkVfTkNVUlNFU1cKKyAgICB7ImdldF93Y2giLCAgICAgICAgIChQeUNGdW5jdGlvbilQeUN1cnNlc1dpbmRvd19HZXRfV0NoLCBNRVRIX1ZBUkFSR1N9LAorI2VuZGlmCiAgICAgeyJnZXRtYXh5eCIsICAgICAgICAoUHlDRnVuY3Rpb24pUHlDdXJzZXNXaW5kb3dfZ2V0bWF4eXgsIE1FVEhfTk9BUkdTfSwKICAgICB7ImdldHBhcnl4IiwgICAgICAgIChQeUNGdW5jdGlvbilQeUN1cnNlc1dpbmRvd19nZXRwYXJ5eCwgTUVUSF9OT0FSR1N9LAogICAgIHsiZ2V0c3RyIiwgICAgICAgICAgKFB5Q0Z1bmN0aW9uKVB5Q3Vyc2VzV2luZG93X0dldFN0ciwgTUVUSF9WQVJBUkdTfSwKQEAgLTE2NjMsNiArMjA1MiwxNCBAQAogICAgIHtOVUxMLCAgICAgICAgICAgICAgICAgIE5VTEx9ICAgLyogc2VudGluZWwgKi8KIH07CiAKK3N0YXRpYyBQeUdldFNldERlZiBQeUN1cnNlc1dpbmRvd19nZXRzZXRzW10gPSB7CisgICAgeyJlbmNvZGluZyIsCisgICAgIChnZXR0ZXIpUHlDdXJzZXNXaW5kb3dfZ2V0X2VuY29kaW5nLAorICAgICAoc2V0dGVyKVB5Q3Vyc2VzV2luZG93X3NldF9lbmNvZGluZywKKyAgICAgInRoZSB0eXBlY29kZSBjaGFyYWN0ZXIgdXNlZCB0byBjcmVhdGUgdGhlIGFycmF5In0sCisgICAge05VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfSAgLyogc2VudGluZWwgKi8KK307CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogCiBQeVR5cGVPYmplY3QgUHlDdXJzZXNXaW5kb3dfVHlwZSA9IHsKQEAgLTE2OTUsNiArMjA5Miw4IEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXRlciovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXRlcm5leHQqLwogICAgIFB5Q3Vyc2VzV2luZG93X01ldGhvZHMsICAgICAvKnRwX21ldGhvZHMqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCisgICAgUHlDdXJzZXNXaW5kb3dfZ2V0c2V0cywgICAgIC8qIHRwX2dldHNldCAqLwogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTg3NSw2ICsyMjc0LDcgQEAKICAgICBXSU5ET1cgKndpbjsKIAogICAgIFB5Q3Vyc2VzSW5pdGlhbGlzZWQ7CisgICAgX1B5X0lERU5USUZJRVIocmVhZCk7CiAKICAgICBzdHJjcHkoZm4sICIvdG1wL3B5LmN1cnNlcy5nZXR3aW4uWFhYWFhYIik7CiAgICAgZmQgPSBta3N0ZW1wKGZuKTsKQEAgLTE4ODYsNyArMjI4Niw3IEBACiAgICAgICAgIHJlbW92ZShmbik7CiAgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWUoUHlFeGNfSU9FcnJvciwgZm4pOwogICAgIH0KLSAgICBkYXRhID0gUHlPYmplY3RfQ2FsbE1ldGhvZChzdHJlYW0sICJyZWFkIiwgIiIpOworICAgIGRhdGEgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHN0cmVhbSwgJlB5SWRfcmVhZCwgIiIpOwogICAgIGlmIChkYXRhID09IE5VTEwpIHsKICAgICAgICAgZmNsb3NlKGZwKTsKICAgICAgICAgcmVtb3ZlKGZuKTsKQEAgLTE5MTcsNyArMjMxNyw3IEBACiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUN1cnNlc0Vycm9yLCBjYXRjaGFsbF9OVUxMKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBQeUN1cnNlc1dpbmRvd19OZXcod2luKTsKKyAgICByZXR1cm4gUHlDdXJzZXNXaW5kb3dfTmV3KHdpbiwgTlVMTCk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0xOTk1LDEwICsyMzk1LDExIEBACiBQeUN1cnNlc19Jbml0U2NyKFB5T2JqZWN0ICpzZWxmKQogewogICAgIFdJTkRPVyAqd2luOworICAgIFB5Q3Vyc2VzV2luZG93T2JqZWN0ICp3aW5vYmo7CiAKICAgICBpZiAoaW5pdGlhbGlzZWQgPT0gVFJVRSkgewogICAgICAgICB3cmVmcmVzaChzdGRzY3IpOwotICAgICAgICByZXR1cm4gKFB5T2JqZWN0ICopUHlDdXJzZXNXaW5kb3dfTmV3KHN0ZHNjcik7CisgICAgICAgIHJldHVybiAoUHlPYmplY3QgKilQeUN1cnNlc1dpbmRvd19OZXcoc3Rkc2NyLCBOVUxMKTsKICAgICB9CiAKICAgICB3aW4gPSBpbml0c2NyKCk7CkBAIC0yMDkwLDcgKzI0OTEsOSBAQAogICAgIFNldERpY3RJbnQoIkxJTkVTIiwgTElORVMpOwogICAgIFNldERpY3RJbnQoIkNPTFMiLCBDT0xTKTsKIAotICAgIHJldHVybiAoUHlPYmplY3QgKilQeUN1cnNlc1dpbmRvd19OZXcod2luKTsKKyAgICB3aW5vYmogPSAoUHlDdXJzZXNXaW5kb3dPYmplY3QgKilQeUN1cnNlc1dpbmRvd19OZXcod2luLCBOVUxMKTsKKyAgICBzY3JlZW5fZW5jb2RpbmcgPSB3aW5vYmotPmVuY29kaW5nOworICAgIHJldHVybiAoUHlPYmplY3QgKil3aW5vYmo7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0yMjkyLDcgKzI2OTUsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICByZXR1cm4gKFB5T2JqZWN0ICopUHlDdXJzZXNXaW5kb3dfTmV3KHdpbik7CisgICAgcmV0dXJuIChQeU9iamVjdCAqKVB5Q3Vyc2VzV2luZG93X05ldyh3aW4sIE5VTEwpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMjMyNCw3ICsyNzI3LDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgcmV0dXJuIChQeU9iamVjdCAqKVB5Q3Vyc2VzV2luZG93X05ldyh3aW4pOworICAgIHJldHVybiAoUHlPYmplY3QgKilQeUN1cnNlc1dpbmRvd19OZXcod2luLCBOVUxMKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTI0MTYsNiArMjgxOSw4IEBACiB7CiAgICAgUHlPYmplY3QgKm87CiAgICAgUHlPYmplY3QgKm0gPSBQeUltcG9ydF9JbXBvcnRNb2R1bGVOb0Jsb2NrKCJjdXJzZXMiKTsKKyAgICBfUHlfSURFTlRJRklFUihMSU5FUyk7CisgICAgX1B5X0lERU5USUZJRVIoQ09MUyk7CiAKICAgICBpZiAoIW0pCiAgICAgICAgIHJldHVybiAwOwpAQCAtMjQyNSwxMiArMjgzMCwxMyBAQAogICAgICAgICBQeV9ERUNSRUYobSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhtLCAiTElORVMiLCBvKSkgeworICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKG0sICZQeUlkX0xJTkVTLCBvKSkgewogICAgICAgICBQeV9ERUNSRUYobSk7CiAgICAgICAgIFB5X0RFQ1JFRihvKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhNb2REaWN0LCAiTElORVMiLCBvKSkgeworICAgIC8qIFB5SWRfTElORVMub2JqZWN0IHdpbGwgYmUgaW5pdGlhbGl6ZWQgaGVyZS4gKi8KKyAgICBpZiAoUHlEaWN0X1NldEl0ZW0oTW9kRGljdCwgUHlJZF9MSU5FUy5vYmplY3QsIG8pKSB7CiAgICAgICAgIFB5X0RFQ1JFRihtKTsKICAgICAgICAgUHlfREVDUkVGKG8pOwogICAgICAgICByZXR1cm4gMDsKQEAgLTI0NDEsMTIgKzI4NDcsMTIgQEAKICAgICAgICAgUHlfREVDUkVGKG0pOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcobSwgIkNPTFMiLCBvKSkgeworICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKG0sICZQeUlkX0NPTFMsIG8pKSB7CiAgICAgICAgIFB5X0RFQ1JFRihtKTsKICAgICAgICAgUHlfREVDUkVGKG8pOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKE1vZERpY3QsICJDT0xTIiwgbykpIHsKKyAgICBpZiAoUHlEaWN0X1NldEl0ZW0oTW9kRGljdCwgUHlJZF9DT0xTLm9iamVjdCwgbykpIHsKICAgICAgICAgUHlfREVDUkVGKG0pOwogICAgICAgICBQeV9ERUNSRUYobyk7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMjYzOCwxMCArMzA0NCw4IEBACiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywiTztjaCBvciBpbnQiLCZ0ZW1wKSkgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAoIVB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZSh0ZW1wLCAmY2gpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJhcmd1bWVudCBtdXN0IGJlIGEgY2ggb3IgYW4gaW50Iik7CisgICAgaWYgKCFQeUN1cnNlc19Db252ZXJ0VG9DaHR5cGUoTlVMTCwgdGVtcCwgJmNoKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQogCiAgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZyh1bmN0cmwoY2gpKTsKIH0KQEAgLTI2NTQsMTYgKzMwNTgsODAgQEAKIAogICAgIFB5Q3Vyc2VzSW5pdGlhbGlzZWQ7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywiTztjaCBvciBpbnQiLCZ0ZW1wKSkgcmV0dXJuIE5VTEw7Ci0KLSAgICBpZiAoIVB5Q3Vyc2VzX0NvbnZlcnRUb0NodHlwZSh0ZW1wLCAmY2gpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJhcmd1bWVudCBtdXN0IGJlIGEgY2ggb3IgYW4gaW50Iik7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIk87Y2ggb3IgaW50IiwmdGVtcCkpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KKworICAgIGlmICghUHlDdXJzZXNfQ29udmVydFRvQ2h0eXBlKE5VTEwsIHRlbXAsICZjaCkpCisgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgcmV0dXJuIFB5Q3Vyc2VzQ2hlY2tFUlIodW5nZXRjaChjaCksICJ1bmdldGNoIik7CiB9CiAKKyNpZmRlZiBIQVZFX05DVVJTRVNXCisvKiBDb252ZXJ0IGFuIG9iamVjdCB0byBhIGNoYXJhY3RlciAod2NoYXJfdCk6CisKKyAgICAtIGludAorICAgIC0gc3RyIG9mIGxlbmd0aCAxCisKKyAgIFJldHVybiAxIG9uIHN1Y2Nlc3MsIDAgb24gZXJyb3IuICovCitzdGF0aWMgaW50CitQeUN1cnNlc19Db252ZXJ0VG9XY2hhcl90KFB5T2JqZWN0ICpvYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgIHdjaGFyX3QgKndjaCkKK3sKKyAgICBpZiAoUHlVbmljb2RlX0NoZWNrKG9iaikpIHsKKyAgICAgICAgd2NoYXJfdCBidWZmZXJbMl07CisgICAgICAgIGlmIChQeVVuaWNvZGVfQXNXaWRlQ2hhcihvYmosIGJ1ZmZlciwgMikgIT0gMSkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0IGJ5dGVzIG9yIHN0ciBvZiBsZW5ndGggMSwgb3IgaW50LCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgImdvdCBhIHN0ciBvZiBsZW5ndGggJXppIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChvYmopKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgICp3Y2ggPSBidWZmZXJbMF07CisgICAgICAgIHJldHVybiAyOworICAgIH0KKyAgICBlbHNlIGlmIChQeUxvbmdfQ2hlY2tFeGFjdChvYmopKSB7CisgICAgICAgIGxvbmcgdmFsdWU7CisgICAgICAgIGludCBvdmVyZmxvdzsKKyAgICAgICAgdmFsdWUgPSBQeUxvbmdfQXNMb25nQW5kT3ZlcmZsb3cob2JqLCAmb3ZlcmZsb3cpOworICAgICAgICBpZiAob3ZlcmZsb3cpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnQgZG9lc24ndCBmaXQgaW4gbG9uZyIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgKndjaCA9ICh3Y2hhcl90KXZhbHVlOworICAgICAgICBpZiAoKGxvbmcpKndjaCAhPSB2YWx1ZSkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX092ZXJmbG93RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgImNoYXJhY3RlciBkb2Vzbid0IGZpdCBpbiB3Y2hhcl90Iik7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0IGJ5dGVzIG9yIHN0ciBvZiBsZW5ndGggMSwgb3IgaW50LCBnb3QgJXMiLAorICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShvYmopLT50cF9uYW1lKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCitzdGF0aWMgUHlPYmplY3QgKgorUHlDdXJzZXNfVW5nZXRfV2NoKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeU9iamVjdCAqb2JqOworICAgIHdjaGFyX3Qgd2NoOworCisgICAgUHlDdXJzZXNJbml0aWFsaXNlZDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCJPIiwgJm9iaikpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKCFQeUN1cnNlc19Db252ZXJ0VG9XY2hhcl90KG9iaiwgJndjaCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiBQeUN1cnNlc0NoZWNrRVJSKHVuZ2V0X3djaCh3Y2gpLCAidW5nZXRfd2NoIik7Cit9CisjZW5kaWYKKwogc3RhdGljIFB5T2JqZWN0ICoKIFB5Q3Vyc2VzX1VzZV9FbnYoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewpAQCAtMjc5MSw2ICszMjU5LDkgQEAKICAgICB7InR5cGVhaGVhZCIsICAgICAgICAgICAoUHlDRnVuY3Rpb24pUHlDdXJzZXNfVHlwZUFoZWFkLCBNRVRIX1ZBUkFSR1N9LAogICAgIHsidW5jdHJsIiwgICAgICAgICAgICAgIChQeUNGdW5jdGlvbilQeUN1cnNlc19VbkN0cmwsIE1FVEhfVkFSQVJHU30sCiAgICAgeyJ1bmdldGNoIiwgICAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKVB5Q3Vyc2VzX1VuZ2V0Q2gsIE1FVEhfVkFSQVJHU30sCisjaWZkZWYgSEFWRV9OQ1VSU0VTVworICAgIHsidW5nZXRfd2NoIiwgICAgICAgICAgIChQeUNGdW5jdGlvbilQeUN1cnNlc19VbmdldF9XY2gsIE1FVEhfVkFSQVJHU30sCisjZW5kaWYKICAgICB7InVzZV9lbnYiLCAgICAgICAgICAgICAoUHlDRnVuY3Rpb24pUHlDdXJzZXNfVXNlX0VudiwgTUVUSF9WQVJBUkdTfSwKICNpZm5kZWYgU1RSSUNUX1NZU1ZfQ1VSU0VTCiAgICAgeyJ1c2VfZGVmYXVsdF9jb2xvcnMiLCAgKFB5Q0Z1bmN0aW9uKVB5Q3Vyc2VzX1VzZV9EZWZhdWx0X0NvbG9ycywgTUVUSF9OT0FSR1N9LApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGF0ZXRpbWVtb2R1bGUuYyBiL01vZHVsZXMvX2RhdGV0aW1lbW9kdWxlLmMKaW5kZXggOGY1NzFhZC4uNmRmNWMwMyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fZGF0ZXRpbWVtb2R1bGUuYworKysgYi9Nb2R1bGVzL19kYXRldGltZW1vZHVsZS5jCkBAIC03LDggKzcsNiBAQAogCiAjaW5jbHVkZSA8dGltZS5oPgogCi0jaW5jbHVkZSAiX3RpbWUuaCIKLQogLyogRGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGJ1aWxkaW5nIHRoZSBjb3JlIG1vZHVsZSBhbmQgYnVpbGRpbmcgZXh0ZW5zaW9uCiAgKiBtb2R1bGVzLgogICovCkBAIC03NjYsOCArNzY0LDEwIEBACiAgICAgUHlPYmplY3QgKm5hbWU7CiB9IFB5RGF0ZVRpbWVfVGltZVpvbmU7CiAKLS8qIFRoZSBpbnRlcm5lZCBVVEMgdGltZXpvbmUgaW5zdGFuY2UgKi8gCisvKiBUaGUgaW50ZXJuZWQgVVRDIHRpbWV6b25lIGluc3RhbmNlICovCiBzdGF0aWMgUHlPYmplY3QgKlB5RGF0ZVRpbWVfVGltZVpvbmVfVVRDOworLyogVGhlIGludGVybmVkIEVwb2NoIGRhdGV0aW1lIGluc3RhbmNlICovCitzdGF0aWMgUHlPYmplY3QgKlB5RGF0ZVRpbWVfRXBvY2g7CiAKIC8qIENyZWF0ZSBuZXcgdGltZXpvbmUgaW5zdGFuY2UgY2hlY2tpbmcgb2Zmc2V0IHJhbmdlLiAgVGhpcwogICAgZnVuY3Rpb24gZG9lcyBub3QgY2hlY2sgdGhlIG5hbWUgYXJndW1lbnQuICBDYWxsZXIgbXVzdCBhc3N1cmUKQEAgLTgwOSwxNCArODA5LDE2IEBACiAgICAgfQogICAgIGlmIChHRVRfVERfTUlDUk9TRUNPTkRTKG9mZnNldCkgIT0gMCB8fCBHRVRfVERfU0VDT05EUyhvZmZzZXQpICUgNjAgIT0gMCkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwgIm9mZnNldCBtdXN0IGJlIGEgdGltZWRlbHRhIgotICAgICAgICAgICAgICAgICAgICAgIiByZXByZXNlbnRpbmcgYSB3aG9sZSBudW1iZXIgb2YgbWludXRlcyIpOworICAgICAgICAgICAgICAgICAgICAgIiByZXByZXNlbnRpbmcgYSB3aG9sZSBudW1iZXIgb2YgbWludXRlcywiCisgICAgICAgICAgICAgICAgICAgICAiIG5vdCAlUi4iLCBvZmZzZXQpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgaWYgKChHRVRfVERfREFZUyhvZmZzZXQpID09IC0xICYmIEdFVF9URF9TRUNPTkRTKG9mZnNldCkgPT0gMCkgfHwKICAgICAgICAgR0VUX1REX0RBWVMob2Zmc2V0KSA8IC0xIHx8IEdFVF9URF9EQVlTKG9mZnNldCkgPj0gMSkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwgIm9mZnNldCBtdXN0IGJlIGEgdGltZWRlbHRhIgogICAgICAgICAgICAgICAgICAgICAgIiBzdHJpY3RseSBiZXR3ZWVuIC10aW1lZGVsdGEoaG91cnM9MjQpIGFuZCIKLSAgICAgICAgICAgICAgICAgICAgICIgdGltZWRlbHRhKGhvdXJzPTI0KS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICIgdGltZWRlbHRhKGhvdXJzPTI0KSwiCisgICAgICAgICAgICAgICAgICAgICAiIG5vdCAlUi4iLCBvZmZzZXQpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTk0Niw2ICs5NDgsNyBAQAogY2FsbF90em5hbWUoUHlPYmplY3QgKnR6aW5mbywgUHlPYmplY3QgKnR6aW5mb2FyZykKIHsKICAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIF9QeV9JREVOVElGSUVSKHR6bmFtZSk7CiAKICAgICBhc3NlcnQodHppbmZvICE9IE5VTEwpOwogICAgIGFzc2VydChjaGVja190emluZm9fc3ViY2xhc3ModHppbmZvKSA+PSAwKTsKQEAgLTk1NCw3ICs5NTcsNyBAQAogICAgIGlmICh0emluZm8gPT0gUHlfTm9uZSkKICAgICAgICAgUHlfUkVUVVJOX05PTkU7CiAKLSAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHR6aW5mbywgInR6bmFtZSIsICJPIiwgdHppbmZvYXJnKTsKKyAgICByZXN1bHQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHR6aW5mbywgJlB5SWRfdHpuYW1lLCAiTyIsIHR6aW5mb2FyZyk7CiAKICAgICBpZiAocmVzdWx0ID09IE5VTEwgfHwgcmVzdWx0ID09IFB5X05vbmUpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC05ODUsOSArOTg4LDggQEAKICAgICBpZiAodHppbmZvID09IFB5X05vbmUpCiAgICAgICAgIHJldHVybiByZXByOwogICAgIC8qIEdldCByaWQgb2YgdGhlIHRyYWlsaW5nICcpJy4gKi8KLSAgICBhc3NlcnQoUHlVbmljb2RlX0FTX1VOSUNPREUocmVwcilbUHlVbmljb2RlX0dFVF9TSVpFKHJlcHIpLTFdID09ICcpJyk7Ci0gICAgdGVtcCA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXByKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHJlcHIpIC0gMSk7CisgICAgYXNzZXJ0KFB5VW5pY29kZV9SRUFEX0NIQVIocmVwciwgUHlVbmljb2RlX0dFVF9MRU5HVEgocmVwciktMSkgPT0gJyknKTsKKyAgICB0ZW1wID0gUHlVbmljb2RlX1N1YnN0cmluZyhyZXByLCAwLCBQeVVuaWNvZGVfR0VUX0xFTkdUSChyZXByKSAtIDEpOwogICAgIFB5X0RFQ1JFRihyZXByKTsKICAgICBpZiAodGVtcCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTEwNzksNiArMTA4MSw4IEBACiAgICAgUHlPYmplY3QgKnRlbXA7CiAgICAgUHlPYmplY3QgKnR6aW5mbyA9IGdldF90emluZm9fbWVtYmVyKG9iamVjdCk7CiAgICAgUHlPYmplY3QgKlpyZXBsYWNlbWVudCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCAwKTsKKyAgICBfUHlfSURFTlRJRklFUihyZXBsYWNlKTsKKwogICAgIGlmIChacmVwbGFjZW1lbnQgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKHR6aW5mbyA9PSBQeV9Ob25lIHx8IHR6aW5mbyA9PSBOVUxMKQpAQCAtMTA5OSw3ICsxMTAzLDcgQEAKICAgICAgKiBzdHJmdGltZSBkb2Vzbid0IHRyZWF0IHRoZW0gYXMgZm9ybWF0IGNvZGVzLgogICAgICAqLwogICAgIFB5X0RFQ1JFRihacmVwbGFjZW1lbnQpOwotICAgIFpyZXBsYWNlbWVudCA9IFB5T2JqZWN0X0NhbGxNZXRob2QodGVtcCwgInJlcGxhY2UiLCAic3MiLCAiJSIsICIlJSIpOworICAgIFpyZXBsYWNlbWVudCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQodGVtcCwgJlB5SWRfcmVwbGFjZSwgInNzIiwgIiUiLCAiJSUiKTsKICAgICBQeV9ERUNSRUYodGVtcCk7CiAgICAgaWYgKFpyZXBsYWNlbWVudCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTExNjYsMzEgKzExNzAsNiBAQAogICAgIGlmICghcGluKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIC8qIEdpdmUgdXAgaWYgdGhlIHllYXIgaXMgYmVmb3JlIDEwMDAuCi0gICAgICogUHl0aG9uIHN0cmZ0aW1lKCkgcGxheXMgZ2FtZXMgd2l0aCB0aGUgeWVhciwgYW5kIGRpZmZlcmVudAotICAgICAqIGdhbWVzIGRlcGVuZGluZyBvbiB3aGV0aGVyIGVudmFyIFBZVEhPTjJLIGlzIHNldC4gIFRoaXMgbWFrZXMKLSAgICAgKiB5ZWFycyBiZWZvcmUgMTAwMCBhIG5pZ2h0bWFyZSwgZXZlbiBpZiB0aGUgcGxhdGZvcm0gc3RyZnRpbWUKLSAgICAgKiBzdXBwb3J0cyB0aGVtIChhbmQgbm90IGFsbCBkbykuCi0gICAgICogV2UgY291bGQgZ2V0IGEgbG90IGZhcnRoZXIgaGVyZSBieSBhdm9pZGluZyBQeXRob24ncyBzdHJmdGltZQotICAgICAqIHdyYXBwZXIgYW5kIGNhbGxpbmcgdGhlIEMgc3RyZnRpbWUoKSBkaXJlY3RseSwgYnV0IHRoYXQgaXNuJ3QKLSAgICAgKiBhbiBvcHRpb24gaW4gdGhlIFB5dGhvbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1vZHVsZS4KLSAgICAgKi8KLSAgICB7Ci0gICAgICAgIGxvbmcgeWVhcjsKLSAgICAgICAgUHlPYmplY3QgKnB5eWVhciA9IFB5U2VxdWVuY2VfR2V0SXRlbSh0aW1ldHVwbGUsIDApOwotICAgICAgICBpZiAocHl5ZWFyID09IE5VTEwpIHJldHVybiBOVUxMOwotICAgICAgICBhc3NlcnQoUHlMb25nX0NoZWNrKHB5eWVhcikpOwotICAgICAgICB5ZWFyID0gUHlMb25nX0FzTG9uZyhweXllYXIpOwotICAgICAgICBQeV9ERUNSRUYocHl5ZWFyKTsKLSAgICAgICAgaWYgKHllYXIgPCAxMDAwKSB7Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwgInllYXI9JWxkIGlzIGJlZm9yZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIjEwMDA7IHRoZSBkYXRldGltZSBzdHJmdGltZSgpICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAibWV0aG9kcyByZXF1aXJlIHllYXIgPj0gMTAwMCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgeWVhcik7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgIH0KLQogICAgIC8qIFNjYW4gdGhlIGlucHV0IGZvcm1hdCwgbG9va2luZyBmb3IgJXovJVovJWYgZXNjYXBlcywgYnVpbGRpbmcKICAgICAgKiBhIG5ldyBmb3JtYXQuICBTaW5jZSBjb21wdXRpbmcgdGhlIHJlcGxhY2VtZW50cyBmb3IgdGhvc2UgY29kZXMKICAgICAgKiBpcyBleHBlbnNpdmUsIGRvbid0IHVubGVzcyB0aGV5J3JlIGFjdHVhbGx5IHVzZWQuCkBAIC0xMzA3LDEyICsxMjg2LDE1IEBACiAgICAgewogICAgICAgICBQeU9iamVjdCAqZm9ybWF0OwogICAgICAgICBQeU9iamVjdCAqdGltZSA9IFB5SW1wb3J0X0ltcG9ydE1vZHVsZU5vQmxvY2soInRpbWUiKTsKKwogICAgICAgICBpZiAodGltZSA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBEb25lOwogICAgICAgICBmb3JtYXQgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhQeUJ5dGVzX0FTX1NUUklORyhuZXdmbXQpKTsKICAgICAgICAgaWYgKGZvcm1hdCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHRpbWUsICJzdHJmdGltZSIsICJPTyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCwgdGltZXR1cGxlLCBOVUxMKTsKKyAgICAgICAgICAgIF9QeV9JREVOVElGSUVSKHN0cmZ0aW1lKTsKKworICAgICAgICAgICAgcmVzdWx0ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCh0aW1lLCAmUHlJZF9zdHJmdGltZSwgIk9PIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LCB0aW1ldHVwbGUsIE5VTEwpOwogICAgICAgICAgICAgUHlfREVDUkVGKGZvcm1hdCk7CiAgICAgICAgIH0KICAgICAgICAgUHlfREVDUkVGKHRpbWUpOwpAQCAtMTMzOCw3ICsxMzIwLDkgQEAKICAgICBQeU9iamVjdCAqdGltZSA9IFB5SW1wb3J0X0ltcG9ydE1vZHVsZU5vQmxvY2soInRpbWUiKTsKIAogICAgIGlmICh0aW1lICE9IE5VTEwpIHsKLSAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZCh0aW1lLCAidGltZSIsICIoKSIpOworICAgICAgICBfUHlfSURFTlRJRklFUih0aW1lKTsKKworICAgICAgICByZXN1bHQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHRpbWUsICZQeUlkX3RpbWUsICIoKSIpOwogICAgICAgICBQeV9ERUNSRUYodGltZSk7CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMzU1LDEzICsxMzM5LDE1IEBACiAKICAgICB0aW1lID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlTm9CbG9jaygidGltZSIpOwogICAgIGlmICh0aW1lICE9IE5VTEwpIHsKLSAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZCh0aW1lLCAic3RydWN0X3RpbWUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoKGlpaWlpaWlpaSkpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5LCBtLCBkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhoLCBtbSwgc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vla2RheSh5LCBtLCBkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlzX2JlZm9yZV9tb250aCh5LCBtKSArIGQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0ZmxhZyk7CisgICAgICAgIF9QeV9JREVOVElGSUVSKHN0cnVjdF90aW1lKTsKKworICAgICAgICByZXN1bHQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHRpbWUsICZQeUlkX3N0cnVjdF90aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoKGlpaWlpaWlpaSkpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5LCBtLCBkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhoLCBtbSwgc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Vla2RheSh5LCBtLCBkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlzX2JlZm9yZV9tb250aCh5LCBtKSArIGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0ZmxhZyk7CiAgICAgICAgIFB5X0RFQ1JFRih0aW1lKTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTE0NjEsNyArMTQ0Nyw3IEBACiAgICAgICAgIGdvdG8gRG9uZTsKICAgICBQeV9ERUNSRUYoeDEpOwogICAgIFB5X0RFQ1JFRih4Mik7Ci0gICAgeDEgPSB4MiA9IE5VTEw7CisgICAgLyogeDEgPSAqLyB4MiA9IE5VTEw7CiAKICAgICAvKiB4MyBoYXMgZGF5cytzZWNvbmRzIGluIHNlY29uZHMgKi8KICAgICB4MSA9IFB5TnVtYmVyX011bHRpcGx5KHgzLCB1c19wZXJfc2Vjb25kKTsgICAgICAgICAgLyogdXMgKi8KQEAgLTE1OTQsMTEgKzE1ODAsMTIgQEAKICAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKICAgICBQeU9iamVjdCAqcHl1c19pbiA9IE5VTEwsICp0ZW1wLCAqcHl1c19vdXQ7CiAgICAgUHlPYmplY3QgKnJhdGlvID0gTlVMTDsKKyAgICBfUHlfSURFTlRJRklFUihhc19pbnRlZ2VyX3JhdGlvKTsKIAogICAgIHB5dXNfaW4gPSBkZWx0YV90b19taWNyb3NlY29uZHMoZGVsdGEpOwogICAgIGlmIChweXVzX2luID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHJhdGlvID0gUHlPYmplY3RfQ2FsbE1ldGhvZChmbG9hdG9iaiwgImFzX2ludGVnZXJfcmF0aW8iLCBOVUxMKTsKKyAgICByYXRpbyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoZmxvYXRvYmosICZQeUlkX2FzX2ludGVnZXJfcmF0aW8sIE5VTEwpOwogICAgIGlmIChyYXRpbyA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogICAgIHRlbXAgPSBQeU51bWJlcl9NdWx0aXBseShweXVzX2luLCBQeVR1cGxlX0dFVF9JVEVNKHJhdGlvLCAwKSk7CkBAIC0xNjkyLDExICsxNjc5LDEyIEBACiAgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CiAgICAgUHlPYmplY3QgKnB5dXNfaW4gPSBOVUxMLCAqdGVtcCwgKnB5dXNfb3V0OwogICAgIFB5T2JqZWN0ICpyYXRpbyA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIoYXNfaW50ZWdlcl9yYXRpbyk7CiAKICAgICBweXVzX2luID0gZGVsdGFfdG9fbWljcm9zZWNvbmRzKGRlbHRhKTsKICAgICBpZiAocHl1c19pbiA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICByYXRpbyA9IFB5T2JqZWN0X0NhbGxNZXRob2QoZiwgImFzX2ludGVnZXJfcmF0aW8iLCBOVUxMKTsKKyAgICByYXRpbyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoZiwgJlB5SWRfYXNfaW50ZWdlcl9yYXRpbywgTlVMTCk7CiAgICAgaWYgKHJhdGlvID09IE5VTEwpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgdGVtcCA9IFB5TnVtYmVyX011bHRpcGx5KHB5dXNfaW4sIFB5VHVwbGVfR0VUX0lURU0ocmF0aW8sIDEpKTsKQEAgLTE4MzcsOCArMTgyNSw3IEBACiAgICAgICAgIHJldHVybiBkaWZmX3RvX2Jvb2woZGlmZiwgb3ApOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOworICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAgICAgfQogfQogCkBAIC0xOTM2LDEwICsxOTIzLDggQEAKICAgICBQeU9iamVjdCAqcHl1c19yZW1haW5kZXI7CiAgICAgUHlPYmplY3QgKnJlbWFpbmRlcjsKIAotICAgIGlmICghUHlEZWx0YV9DaGVjayhsZWZ0KSB8fCAhUHlEZWx0YV9DaGVjayhyaWdodCkpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZiAoIVB5RGVsdGFfQ2hlY2sobGVmdCkgfHwgIVB5RGVsdGFfQ2hlY2socmlnaHQpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAKICAgICBweXVzX2xlZnQgPSBkZWx0YV90b19taWNyb3NlY29uZHMoKFB5RGF0ZVRpbWVfRGVsdGEgKilsZWZ0KTsKICAgICBpZiAocHl1c19sZWZ0ID09IE5VTEwpCkBAIC0xOTc0LDEwICsxOTU5LDggQEAKICAgICBQeU9iamVjdCAqZGVsdGE7CiAgICAgUHlPYmplY3QgKnJlc3VsdDsKIAotICAgIGlmICghUHlEZWx0YV9DaGVjayhsZWZ0KSB8fCAhUHlEZWx0YV9DaGVjayhyaWdodCkpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZiAoIVB5RGVsdGFfQ2hlY2sobGVmdCkgfHwgIVB5RGVsdGFfQ2hlY2socmlnaHQpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAKICAgICBweXVzX2xlZnQgPSBkZWx0YV90b19taWNyb3NlY29uZHMoKFB5RGF0ZVRpbWVfRGVsdGEgKilsZWZ0KTsKICAgICBpZiAocHl1c19sZWZ0ID09IE5VTEwpCkBAIC0yNDYwLDI2ICsyNDQzLDI5IEBACiAKIC8qIFJldHVybiBuZXcgZGF0ZSBmcm9tIGxvY2FsdGltZSh0KS4gKi8KIHN0YXRpYyBQeU9iamVjdCAqCi1kYXRlX2xvY2FsX2Zyb21fdGltZV90KFB5T2JqZWN0ICpjbHMsIGRvdWJsZSB0cykKK2RhdGVfbG9jYWxfZnJvbV9vYmplY3QoUHlPYmplY3QgKmNscywgUHlPYmplY3QgKm9iaikKIHsKICAgICBzdHJ1Y3QgdG0gKnRtOwogICAgIHRpbWVfdCB0OwotICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwogCi0gICAgdCA9IF9QeVRpbWVfRG91YmxlVG9UaW1ldCh0cyk7Ci0gICAgaWYgKHQgPT0gKHRpbWVfdCktMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgIGlmIChfUHlUaW1lX09iamVjdFRvVGltZV90KG9iaiwgJnQpID09IC0xKQogICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIHRtID0gbG9jYWx0aW1lKCZ0KTsKLSAgICBpZiAodG0pCi0gICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihjbHMsICJpaWkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX3llYXIgKyAxOTAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX21vbiArIDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bS0+dG1fbWRheSk7Ci0gICAgZWxzZQotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIGZvciAiCi0gICAgICAgICAgICAgICAgICAgICAgICAicGxhdGZvcm0gbG9jYWx0aW1lKCkgZnVuY3Rpb24iKTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIGlmICh0bSA9PSBOVUxMKSB7CisgICAgICAgIC8qIHVuY29udmVydGlibGUgdGltZSAqLworI2lmZGVmIEVJTlZBTAorICAgICAgICBpZiAoZXJybm8gPT0gMCkKKyAgICAgICAgICAgIGVycm5vID0gRUlOVkFMOworI2VuZGlmCisgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIFB5T2JqZWN0X0NhbGxGdW5jdGlvbihjbHMsICJpaWkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX3llYXIgKyAxOTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX21vbiArIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bS0+dG1fbWRheSk7CiB9CiAKIC8qIFJldHVybiBuZXcgZGF0ZSBmcm9tIGN1cnJlbnQgdGltZS4KQEAgLTI0OTIsNiArMjQ3OCw3IEBACiB7CiAgICAgUHlPYmplY3QgKnRpbWU7CiAgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICBfUHlfSURFTlRJRklFUihmcm9tdGltZXN0YW1wKTsKIAogICAgIHRpbWUgPSB0aW1lX3RpbWUoKTsKICAgICBpZiAodGltZSA9PSBOVUxMKQpAQCAtMjUwMyw3ICsyNDkwLDcgQEAKICAgICAgKiB0aW1lLnRpbWUoKSBkZWxpdmVyczsgaWYgc29tZW9uZSB3ZXJlIGdvbnpvIGFib3V0IG9wdGltaXphdGlvbiwKICAgICAgKiBkYXRlLnRvZGF5KCkgY291bGQgZ2V0IGF3YXkgd2l0aCBwbGFpbiBDIHRpbWUoKS4KICAgICAgKi8KLSAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGNscywgImZyb210aW1lc3RhbXAiLCAiTyIsIHRpbWUpOworICAgIHJlc3VsdCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoY2xzLCAmUHlJZF9mcm9tdGltZXN0YW1wLCAiTyIsIHRpbWUpOwogICAgIFB5X0RFQ1JFRih0aW1lKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMjUxMiwxMSArMjQ5OSwxMSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGRhdGVfZnJvbXRpbWVzdGFtcChQeU9iamVjdCAqY2xzLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBkb3VibGUgdGltZXN0YW1wOworICAgIFB5T2JqZWN0ICp0aW1lc3RhbXA7CiAgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CiAKLSAgICBpZiAoUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiZDpmcm9tdGltZXN0YW1wIiwgJnRpbWVzdGFtcCkpCi0gICAgICAgIHJlc3VsdCA9IGRhdGVfbG9jYWxfZnJvbV90aW1lX3QoY2xzLCB0aW1lc3RhbXApOworICAgIGlmIChQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPOmZyb210aW1lc3RhbXAiLCAmdGltZXN0YW1wKSkKKyAgICAgICAgcmVzdWx0ID0gZGF0ZV9sb2NhbF9mcm9tX29iamVjdChjbHMsIHRpbWVzdGFtcCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMjU3MSwxMCArMjU1OCw5IEBACiBzdGF0aWMgUHlPYmplY3QgKgogZGF0ZV9hZGQoUHlPYmplY3QgKmxlZnQsIFB5T2JqZWN0ICpyaWdodCkKIHsKLSAgICBpZiAoUHlEYXRlVGltZV9DaGVjayhsZWZ0KSB8fCBQeURhdGVUaW1lX0NoZWNrKHJpZ2h0KSkgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7Ci0gICAgfQorICAgIGlmIChQeURhdGVUaW1lX0NoZWNrKGxlZnQpIHx8IFB5RGF0ZVRpbWVfQ2hlY2socmlnaHQpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CisKICAgICBpZiAoUHlEYXRlX0NoZWNrKGxlZnQpKSB7CiAgICAgICAgIC8qIGRhdGUgKyA/Pz8gKi8KICAgICAgICAgaWYgKFB5RGVsdGFfQ2hlY2socmlnaHQpKQpAQCAtMjU5MywxNyArMjU3OSwxNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlEYXRlVGltZV9EZWx0YSAqKSBsZWZ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKICAgICB9Ci0gICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogZGF0ZV9zdWJ0cmFjdChQeU9iamVjdCAqbGVmdCwgUHlPYmplY3QgKnJpZ2h0KQogewotICAgIGlmIChQeURhdGVUaW1lX0NoZWNrKGxlZnQpIHx8IFB5RGF0ZVRpbWVfQ2hlY2socmlnaHQpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKLSAgICB9CisgICAgaWYgKFB5RGF0ZVRpbWVfQ2hlY2sobGVmdCkgfHwgUHlEYXRlVGltZV9DaGVjayhyaWdodCkpCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKKwogICAgIGlmIChQeURhdGVfQ2hlY2sobGVmdCkpIHsKICAgICAgICAgaWYgKFB5RGF0ZV9DaGVjayhyaWdodCkpIHsKICAgICAgICAgICAgIC8qIGRhdGUgLSBkYXRlICovCkBAIC0yNjIyLDggKzI2MDYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKICAgICAgICAgfQogICAgIH0KLSAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKKyAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiB9CiAKIApAQCAtMjY0OCw3ICsyNjMxLDkgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBkYXRlX3N0cihQeURhdGVUaW1lX0RhdGUgKnNlbGYpCiB7Ci0gICAgcmV0dXJuIFB5T2JqZWN0X0NhbGxNZXRob2QoKFB5T2JqZWN0ICopc2VsZiwgImlzb2Zvcm1hdCIsICIoKSIpOworICAgIF9QeV9JREVOVElGSUVSKGlzb2Zvcm1hdCk7CisKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgoUHlPYmplY3QgKilzZWxmLCAmUHlJZF9pc29mb3JtYXQsICIoKSIpOwogfQogCiAKQEAgLTI2NjcsMTMgKzI2NTIsMTQgQEAKICAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIFB5T2JqZWN0ICp0dXBsZTsKICAgICBQeU9iamVjdCAqZm9ybWF0OworICAgIF9QeV9JREVOVElGSUVSKHRpbWV0dXBsZSk7CiAgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7ImZvcm1hdCIsIE5VTEx9OwogCiAgICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3LCAiVTpzdHJmdGltZSIsIGtleXdvcmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0KSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICB0dXBsZSA9IFB5T2JqZWN0X0NhbGxNZXRob2QoKFB5T2JqZWN0ICopc2VsZiwgInRpbWV0dXBsZSIsICIoKSIpOworICAgIHR1cGxlID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgoUHlPYmplY3QgKilzZWxmLCAmUHlJZF90aW1ldHVwbGUsICIoKSIpOwogICAgIGlmICh0dXBsZSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICByZXN1bHQgPSB3cmFwX3N0cmZ0aW1lKChQeU9iamVjdCAqKXNlbGYsIGZvcm1hdCwgdHVwbGUsCkBAIC0yNjg2LDE1ICsyNjcyLDE2IEBACiBkYXRlX2Zvcm1hdChQeURhdGVUaW1lX0RhdGUgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIFB5T2JqZWN0ICpmb3JtYXQ7CisgICAgX1B5X0lERU5USUZJRVIoc3RyZnRpbWUpOwogCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVOl9fZm9ybWF0X18iLCAmZm9ybWF0KSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBpZiB0aGUgZm9ybWF0IGlzIHplcm8gbGVuZ3RoLCByZXR1cm4gc3RyKHNlbGYpICovCi0gICAgaWYgKFB5VW5pY29kZV9HZXRTaXplKGZvcm1hdCkgPT0gMCkKKyAgICBpZiAoUHlVbmljb2RlX0dldExlbmd0aChmb3JtYXQpID09IDApCiAgICAgICAgIHJldHVybiBQeU9iamVjdF9TdHIoKFB5T2JqZWN0ICopc2VsZik7CiAKLSAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZCgoUHlPYmplY3QgKilzZWxmLCAic3RyZnRpbWUiLCAiTyIsIGZvcm1hdCk7CisgICAgcmV0dXJuIF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoKFB5T2JqZWN0ICopc2VsZiwgJlB5SWRfc3RyZnRpbWUsICJPIiwgZm9ybWF0KTsKIH0KIAogLyogSVNPIG1ldGhvZHMuICovCkBAIC0yNzQwLDEwICsyNzI3LDggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgX1B5RGF0ZVRpbWVfREFURV9EQVRBU0laRSk7CiAgICAgICAgIHJldHVybiBkaWZmX3RvX2Jvb2woZGlmZiwgb3ApOwogICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBlbHNlCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTI3NzUsMjcgKzI3NjAsMTAgQEAKICAgICByZXR1cm4gY2xvbmU7CiB9CiAKLS8qCi0gICAgQm9ycm93ZWQgZnJvbSBzdHJpbmdvYmplY3QuYywgb3JpZ2luYWxseSBpdCB3YXMgc3RyaW5nX2hhc2goKQotKi8KIHN0YXRpYyBQeV9oYXNoX3QKIGdlbmVyaWNfaGFzaCh1bnNpZ25lZCBjaGFyICpkYXRhLCBpbnQgbGVuKQogewotICAgIHJlZ2lzdGVyIHVuc2lnbmVkIGNoYXIgKnA7Ci0gICAgcmVnaXN0ZXIgUHlfaGFzaF90IHg7Ci0KLSAgICBhc3NlcnQoX1B5X0hhc2hTZWNyZXRfSW5pdGlhbGl6ZWQpOwotICAgIHAgPSAodW5zaWduZWQgY2hhciAqKSBkYXRhOwotICAgIHggPSBfUHlfSGFzaFNlY3JldC5wcmVmaXg7Ci0gICAgeCBePSAqcCA8PCA3OwotICAgIHdoaWxlICgtLWxlbiA+PSAwKQotICAgICAgICB4ID0gKDEwMDAwMDMqeCkgXiAqcCsrOwotICAgIHggXj0gbGVuOwotICAgIHggXj0gX1B5X0hhc2hTZWNyZXQuc3VmZml4OwotICAgIGlmICh4ID09IC0xKQotICAgICAgICB4ID0gLTI7Ci0KLSAgICByZXR1cm4geDsKKyAgICByZXR1cm4gX1B5X0hhc2hCeXRlcyhkYXRhLCBsZW4pOwogfQogCiAKQEAgLTMxMDAsMTIgKzMwNjgsMTQgQEAKIHsKICAgICBQeU9iamVjdCAqYXJncywgKnN0YXRlLCAqdG1wOwogICAgIFB5T2JqZWN0ICpnZXRpbml0YXJncywgKmdldHN0YXRlOworICAgIF9QeV9JREVOVElGSUVSKF9fZ2V0aW5pdGFyZ3NfXyk7CisgICAgX1B5X0lERU5USUZJRVIoX19nZXRzdGF0ZV9fKTsKIAogICAgIHRtcCA9IFB5VHVwbGVfTmV3KDApOwogICAgIGlmICh0bXAgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBnZXRpbml0YXJncyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoc2VsZiwgIl9fZ2V0aW5pdGFyZ3NfXyIpOworICAgIGdldGluaXRhcmdzID0gX1B5T2JqZWN0X0dldEF0dHJJZChzZWxmLCAmUHlJZF9fX2dldGluaXRhcmdzX18pOwogICAgIGlmIChnZXRpbml0YXJncyAhPSBOVUxMKSB7CiAgICAgICAgIGFyZ3MgPSBQeU9iamVjdF9DYWxsT2JqZWN0KGdldGluaXRhcmdzLCB0bXApOwogICAgICAgICBQeV9ERUNSRUYoZ2V0aW5pdGFyZ3MpOwpAQCAtMzEyMCw3ICszMDkwLDcgQEAKICAgICAgICAgUHlfSU5DUkVGKGFyZ3MpOwogICAgIH0KIAotICAgIGdldHN0YXRlID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhzZWxmLCAiX19nZXRzdGF0ZV9fIik7CisgICAgZ2V0c3RhdGUgPSBfUHlPYmplY3RfR2V0QXR0cklkKHNlbGYsICZQeUlkX19fZ2V0c3RhdGVfXyk7CiAgICAgaWYgKGdldHN0YXRlICE9IE5VTEwpIHsKICAgICAgICAgc3RhdGUgPSBQeU9iamVjdF9DYWxsT2JqZWN0KGdldHN0YXRlLCB0bXApOwogICAgICAgICBQeV9ERUNSRUYoZ2V0c3RhdGUpOwpAQCAtMzI0MywxMCArMzIxMyw4IEBACiB0aW1lem9uZV9yaWNoY29tcGFyZShQeURhdGVUaW1lX1RpbWVab25lICpzZWxmLAogICAgICAgICAgICAgICAgICAgICAgUHlEYXRlVGltZV9UaW1lWm9uZSAqb3RoZXIsIGludCBvcCkKIHsKLSAgICBpZiAob3AgIT0gUHlfRVEgJiYgb3AgIT0gUHlfTkUpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZiAob3AgIT0gUHlfRVEgJiYgb3AgIT0gUHlfTkUpCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICByZXR1cm4gZGVsdGFfcmljaGNvbXBhcmUoc2VsZi0+b2Zmc2V0LCBvdGhlci0+b2Zmc2V0LCBvcCk7CiB9CiAKQEAgLTMyOTEsNyArMzI1OSw2IEBACiBzdGF0aWMgUHlPYmplY3QgKgogdGltZXpvbmVfc3RyKFB5RGF0ZVRpbWVfVGltZVpvbmUgKnNlbGYpCiB7Ci0gICAgY2hhciBidWZbMTBdOwogICAgIGludCBob3VycywgbWludXRlcywgc2Vjb25kczsKICAgICBQeU9iamVjdCAqb2Zmc2V0OwogICAgIGNoYXIgc2lnbjsKQEAgLTMzMTcsMTEgKzMyODQsOSBAQAogICAgIFB5X0RFQ1JFRihvZmZzZXQpOwogICAgIG1pbnV0ZXMgPSBkaXZtb2Qoc2Vjb25kcywgNjAsICZzZWNvbmRzKTsKICAgICBob3VycyA9IGRpdm1vZChtaW51dGVzLCA2MCwgJm1pbnV0ZXMpOwotICAgIGFzc2VydChzZWNvbmRzID09IDApOwogICAgIC8qIFhYWCBpZ25vcmUgc3ViLW1pbnV0ZSBkYXRhLCBjdXJlbnRseSBub3QgYWxsb3dlZC4gKi8KLSAgICBQeU9TX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJVVEMlYyUwMmQ6JTAyZCIsIHNpZ24sIGhvdXJzLCBtaW51dGVzKTsKLQotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhidWYpOworICAgIGFzc2VydChzZWNvbmRzID09IDApOworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiVVRDJWMlMDJkOiUwMmQiLCBzaWduLCBob3VycywgbWludXRlcyk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0zNjE4LDcgKzM1ODMsOSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHRpbWVfc3RyKFB5RGF0ZVRpbWVfVGltZSAqc2VsZikKIHsKLSAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZCgoUHlPYmplY3QgKilzZWxmLCAiaXNvZm9ybWF0IiwgIigpIik7CisgICAgX1B5X0lERU5USUZJRVIoaXNvZm9ybWF0KTsKKworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKChQeU9iamVjdCAqKXNlbGYsICZQeUlkX2lzb2Zvcm1hdCwgIigpIik7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0zNjk1LDEwICszNjYyLDggQEAKICAgICBQeU9iamVjdCAqb2Zmc2V0MSwgKm9mZnNldDI7CiAgICAgaW50IGRpZmY7CiAKLSAgICBpZiAoISBQeVRpbWVfQ2hlY2sob3RoZXIpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKLSAgICB9CisgICAgaWYgKCEgUHlUaW1lX0NoZWNrKG90aGVyKSkKKyAgICAgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogCiAgICAgaWYgKEdFVF9USU1FX1RaSU5GTyhzZWxmKSA9PSBHRVRfVElNRV9UWklORk8ob3RoZXIpKSB7CiAgICAgICAgIGRpZmYgPSBtZW1jbXAoKChQeURhdGVUaW1lX1RpbWUgKilzZWxmKS0+ZGF0YSwKQEAgLTM3NDQsNiArMzcwOSwxNCBAQAogICAgICAgICAgICAgICAgICAgIFRJTUVfR0VUX01JQ1JPU0VDT05EKG90aGVyKTsKICAgICAgICAgcmVzdWx0ID0gZGlmZl90b19ib29sKGRpZmYsIG9wKTsKICAgICB9CisgICAgZWxzZSBpZiAob3AgPT0gUHlfRVEpIHsKKyAgICAgICAgcmVzdWx0ID0gUHlfRmFsc2U7CisgICAgICAgIFB5X0lOQ1JFRihyZXN1bHQpOworICAgIH0KKyAgICBlbHNlIGlmIChvcCA9PSBQeV9ORSkgeworICAgICAgICByZXN1bHQgPSBQeV9UcnVlOworICAgICAgICBQeV9JTkNSRUYocmVzdWx0KTsKKyAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiY2FuJ3QgY29tcGFyZSBvZmZzZXQtbmFpdmUgYW5kICIKQEAgLTQwOTksMzMgKzQwNzIsMzMgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp0emluZm8pCiB7CiAgICAgc3RydWN0IHRtICp0bTsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKIAogICAgIHRtID0gZigmdGltZXQpOwotICAgIGlmICh0bSkgewotICAgICAgICAvKiBUaGUgcGxhdGZvcm0gbG9jYWx0aW1lL2dtdGltZSBtYXkgaW5zZXJ0IGxlYXAgc2Vjb25kcywKLSAgICAgICAgICogaW5kaWNhdGVkIGJ5IHRtLT50bV9zZWMgPiA1OS4gIFdlIGRvbid0IGNhcmUgYWJvdXQgdGhlbSwKLSAgICAgICAgICogZXhjZXB0IHRvIHRoZSBleHRlbnQgdGhhdCBwYXNzaW5nIHRoZW0gb24gdG8gdGhlIGRhdGV0aW1lCi0gICAgICAgICAqIGNvbnN0cnVjdG9yIHdvdWxkIHJhaXNlIFZhbHVlRXJyb3IgZm9yIGEgcmVhc29uIHRoYXQKLSAgICAgICAgICogbWFkZSBubyBzZW5zZSB0byB0aGUgdXNlci4KLSAgICAgICAgICovCi0gICAgICAgIGlmICh0bS0+dG1fc2VjID4gNTkpCi0gICAgICAgICAgICB0bS0+dG1fc2VjID0gNTk7Ci0gICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihjbHMsICJpaWlpaWlpTyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bS0+dG1feWVhciArIDE5MDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bS0+dG1fbW9uICsgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtLT50bV9tZGF5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX2hvdXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bS0+dG1fbWluLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX3NlYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHppbmZvKTsKKyAgICBpZiAodG0gPT0gTlVMTCkgeworI2lmZGVmIEVJTlZBTAorICAgICAgICBpZiAoZXJybm8gPT0gMCkKKyAgICAgICAgICAgIGVycm5vID0gRUlOVkFMOworI2VuZGlmCisgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgfQotICAgIGVsc2UKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAidGltZXN0YW1wIG91dCBvZiByYW5nZSBmb3IgIgotICAgICAgICAgICAgICAgICAgICAgICAgInBsYXRmb3JtIGxvY2FsdGltZSgpL2dtdGltZSgpIGZ1bmN0aW9uIik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKworICAgIC8qIFRoZSBwbGF0Zm9ybSBsb2NhbHRpbWUvZ210aW1lIG1heSBpbnNlcnQgbGVhcCBzZWNvbmRzLAorICAgICAqIGluZGljYXRlZCBieSB0bS0+dG1fc2VjID4gNTkuICBXZSBkb24ndCBjYXJlIGFib3V0IHRoZW0sCisgICAgICogZXhjZXB0IHRvIHRoZSBleHRlbnQgdGhhdCBwYXNzaW5nIHRoZW0gb24gdG8gdGhlIGRhdGV0aW1lCisgICAgICogY29uc3RydWN0b3Igd291bGQgcmFpc2UgVmFsdWVFcnJvciBmb3IgYSByZWFzb24gdGhhdAorICAgICAqIG1hZGUgbm8gc2Vuc2UgdG8gdGhlIHVzZXIuCisgICAgICovCisgICAgaWYgKHRtLT50bV9zZWMgPiA1OSkKKyAgICAgICAgdG0tPnRtX3NlYyA9IDU5OworICAgIHJldHVybiBQeU9iamVjdF9DYWxsRnVuY3Rpb24oY2xzLCAiaWlpaWlpaU8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX3llYXIgKyAxOTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX21vbiArIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bS0+dG1fbWRheSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtLT50bV9ob3VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG0tPnRtX21pbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtLT50bV9zZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR6aW5mbyk7CiB9CiAKIC8qIEludGVybmFsIGhlbHBlci4KQEAgLTQxMzYsMzIgKzQxMDksMTUgQEAKICAqIHRvIGdldCB0aGF0IG11Y2ggcHJlY2lzaW9uIChlLmcuLCBDIHRpbWUoKSBpc24ndCBnb29kIGVub3VnaCkuCiAgKi8KIHN0YXRpYyBQeU9iamVjdCAqCi1kYXRldGltZV9mcm9tX3RpbWVzdGFtcChQeU9iamVjdCAqY2xzLCBUTV9GVU5DIGYsIGRvdWJsZSB0aW1lc3RhbXAsCitkYXRldGltZV9mcm9tX3RpbWVzdGFtcChQeU9iamVjdCAqY2xzLCBUTV9GVU5DIGYsIFB5T2JqZWN0ICp0aW1lc3RhbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdHppbmZvKQogewogICAgIHRpbWVfdCB0aW1ldDsKLSAgICBkb3VibGUgZnJhY3Rpb247Ci0gICAgaW50IHVzOworICAgIGxvbmcgdXM7CiAKLSAgICB0aW1ldCA9IF9QeVRpbWVfRG91YmxlVG9UaW1ldCh0aW1lc3RhbXApOwotICAgIGlmICh0aW1ldCA9PSAodGltZV90KS0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgaWYgKF9QeVRpbWVfT2JqZWN0VG9UaW1ldmFsKHRpbWVzdGFtcCwgJnRpbWV0LCAmdXMpID09IC0xKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBmcmFjdGlvbiA9IHRpbWVzdGFtcCAtIChkb3VibGUpdGltZXQ7Ci0gICAgdXMgPSAoaW50KXJvdW5kX3RvX2xvbmcoZnJhY3Rpb24gKiAxZTYpOwotICAgIGlmICh1cyA8IDApIHsKLSAgICAgICAgLyogVHJ1bmNhdGlvbiB0b3dhcmRzIHplcm8gaXMgbm90IHdoYXQgd2Ugd2FudGVkCi0gICAgICAgICAgIGZvciBuZWdhdGl2ZSBudW1iZXJzIChQeXRob24ncyBtb2Qgc2VtYW50aWNzKSAqLwotICAgICAgICB0aW1ldCAtPSAxOwotICAgICAgICB1cyArPSAxMDAwMDAwOwotICAgIH0KLSAgICAvKiBJZiB0aW1lc3RhbXAgaXMgbGVzcyB0aGFuIG9uZSBtaWNyb3NlY29uZCBzbWFsbGVyIHRoYW4gYQotICAgICAqIGZ1bGwgc2Vjb25kLCByb3VuZCB1cC4gT3RoZXJ3aXNlLCBWYWx1ZUVycm9ycyBhcmUgcmFpc2VkCi0gICAgICogZm9yIHNvbWUgZmxvYXRzLiAqLwotICAgIGlmICh1cyA9PSAxMDAwMDAwKSB7Ci0gICAgICAgIHRpbWV0ICs9IDE7Ci0gICAgICAgIHVzID0gMDsKLSAgICB9Ci0gICAgcmV0dXJuIGRhdGV0aW1lX2Zyb21fdGltZXRfYW5kX3VzKGNscywgZiwgdGltZXQsIHVzLCB0emluZm8pOworICAgIHJldHVybiBkYXRldGltZV9mcm9tX3RpbWV0X2FuZF91cyhjbHMsIGYsIHRpbWV0LCAoaW50KXVzLCB0emluZm8pOwogfQogCiAvKiBJbnRlcm5hbCBoZWxwZXIuCkBAIC00MTk5LDcgKzQxNTUsOSBAQAogICAgIGlmIChzZWxmICE9IE5VTEwgJiYgdHppbmZvICE9IFB5X05vbmUpIHsKICAgICAgICAgLyogQ29udmVydCBVVEMgdG8gdHppbmZvJ3Mgem9uZS4gKi8KICAgICAgICAgUHlPYmplY3QgKnRlbXAgPSBzZWxmOwotICAgICAgICBzZWxmID0gUHlPYmplY3RfQ2FsbE1ldGhvZCh0emluZm8sICJmcm9tdXRjIiwgIk8iLCBzZWxmKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoZnJvbXV0Yyk7CisKKyAgICAgICAgc2VsZiA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQodHppbmZvLCAmUHlJZF9mcm9tdXRjLCAiTyIsIHNlbGYpOwogICAgICAgICBQeV9ERUNSRUYodGVtcCk7CiAgICAgfQogICAgIHJldHVybiBzZWxmOwpAQCAtNDIxOSwxMSArNDE3NywxMSBAQAogZGF0ZXRpbWVfZnJvbXRpbWVzdGFtcChQeU9iamVjdCAqY2xzLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KQogewogICAgIFB5T2JqZWN0ICpzZWxmOwotICAgIGRvdWJsZSB0aW1lc3RhbXA7CisgICAgUHlPYmplY3QgKnRpbWVzdGFtcDsKICAgICBQeU9iamVjdCAqdHppbmZvID0gUHlfTm9uZTsKICAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsidGltZXN0YW1wIiwgInR6IiwgTlVMTH07CiAKLSAgICBpZiAoISBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3csICJkfE86ZnJvbXRpbWVzdGFtcCIsCisgICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3LCAiT3xPOmZyb210aW1lc3RhbXAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkcywgJnRpbWVzdGFtcCwgJnR6aW5mbykpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmIChjaGVja190emluZm9fc3ViY2xhc3ModHppbmZvKSA8IDApCkBAIC00MjM2LDcgKzQxOTQsOSBAQAogICAgIGlmIChzZWxmICE9IE5VTEwgJiYgdHppbmZvICE9IFB5X05vbmUpIHsKICAgICAgICAgLyogQ29udmVydCBVVEMgdG8gdHppbmZvJ3Mgem9uZS4gKi8KICAgICAgICAgUHlPYmplY3QgKnRlbXAgPSBzZWxmOwotICAgICAgICBzZWxmID0gUHlPYmplY3RfQ2FsbE1ldGhvZCh0emluZm8sICJmcm9tdXRjIiwgIk8iLCBzZWxmKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoZnJvbXV0Yyk7CisKKyAgICAgICAgc2VsZiA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQodHppbmZvLCAmUHlJZF9mcm9tdXRjLCAiTyIsIHNlbGYpOwogICAgICAgICBQeV9ERUNSRUYodGVtcCk7CiAgICAgfQogICAgIHJldHVybiBzZWxmOwpAQCAtNDI0NiwxMCArNDIwNiwxMCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGRhdGV0aW1lX3V0Y2Zyb210aW1lc3RhbXAoUHlPYmplY3QgKmNscywgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgZG91YmxlIHRpbWVzdGFtcDsKKyAgICBQeU9iamVjdCAqdGltZXN0YW1wOwogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwogCi0gICAgaWYgKFB5QXJnX1BhcnNlVHVwbGUoYXJncywgImQ6dXRjZnJvbXRpbWVzdGFtcCIsICZ0aW1lc3RhbXApKQorICAgIGlmIChQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPOnV0Y2Zyb210aW1lc3RhbXAiLCAmdGltZXN0YW1wKSkKICAgICAgICAgcmVzdWx0ID0gZGF0ZXRpbWVfZnJvbV90aW1lc3RhbXAoY2xzLCBnbXRpbWUsIHRpbWVzdGFtcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfTm9uZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTQyNjAsOSArNDIyMCwxMCBAQAogZGF0ZXRpbWVfc3RycHRpbWUoUHlPYmplY3QgKmNscywgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgc3RhdGljIFB5T2JqZWN0ICptb2R1bGUgPSBOVUxMOwotICAgIGNvbnN0IFB5X1VOSUNPREUgKnN0cmluZywgKmZvcm1hdDsKKyAgICBQeU9iamVjdCAqc3RyaW5nLCAqZm9ybWF0OworICAgIF9QeV9JREVOVElGSUVSKF9zdHJwdGltZV9kYXRldGltZSk7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInV1OnN0cnB0aW1lIiwgJnN0cmluZywgJmZvcm1hdCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVVTpzdHJwdGltZSIsICZzdHJpbmcsICZmb3JtYXQpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGlmIChtb2R1bGUgPT0gTlVMTCkgewpAQCAtNDI3MCw4ICs0MjMxLDggQEAKICAgICAgICAgaWYgKG1vZHVsZSA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKG1vZHVsZSwgIl9zdHJwdGltZV9kYXRldGltZSIsICJPdXUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscywgc3RyaW5nLCBmb3JtYXQpOworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKG1vZHVsZSwgJlB5SWRfX3N0cnB0aW1lX2RhdGV0aW1lLCAiT09PIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscywgc3RyaW5nLCBmb3JtYXQpOwogfQogCiAvKiBSZXR1cm4gbmV3IGRhdGV0aW1lIGZyb20gZGF0ZS9kYXRldGltZSBhbmQgdGltZSBhcmd1bWVudHMuICovCkBAIC00Mzg3LDggKzQzNDgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlEYXRlVGltZV9EZWx0YSAqKSBsZWZ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKTsKICAgICB9Ci0gICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtNDUxNyw3ICs0NDc3LDkgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBkYXRldGltZV9zdHIoUHlEYXRlVGltZV9EYXRlVGltZSAqc2VsZikKIHsKLSAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZCgoUHlPYmplY3QgKilzZWxmLCAiaXNvZm9ybWF0IiwgIihzKSIsICIgIik7CisgICAgX1B5X0lERU5USUZJRVIoaXNvZm9ybWF0KTsKKworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKChQeU9iamVjdCAqKXNlbGYsICZQeUlkX2lzb2Zvcm1hdCwgIihzKSIsICIgIik7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC00NTkwLDggKzQ1NTIsNyBAQAogICAgICAgICAgICAgICAgIFB5X1JFVFVSTl9UUlVFOwogICAgICAgICAgICAgcmV0dXJuIGNtcGVycm9yKHNlbGYsIG90aGVyKTsKICAgICAgICAgfQotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICB9CiAKICAgICBpZiAoR0VUX0RUX1RaSU5GTyhzZWxmKSA9PSBHRVRfRFRfVFpJTkZPKG90aGVyKSkgewpAQCAtNDYzMyw2ICs0NTk0LDE0IEBACiAgICAgICAgIFB5X0RFQ1JFRihkZWx0YSk7CiAgICAgICAgIHJlc3VsdCA9IGRpZmZfdG9fYm9vbChkaWZmLCBvcCk7CiAgICAgfQorICAgIGVsc2UgaWYgKG9wID09IFB5X0VRKSB7CisgICAgICAgIHJlc3VsdCA9IFB5X0ZhbHNlOworICAgICAgICBQeV9JTkNSRUYocmVzdWx0KTsKKyAgICB9CisgICAgZWxzZSBpZiAob3AgPT0gUHlfTkUpIHsKKyAgICAgICAgcmVzdWx0ID0gUHlfVHJ1ZTsKKyAgICAgICAgUHlfSU5DUkVGKHJlc3VsdCk7CisgICAgfQogICAgIGVsc2UgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgImNhbid0IGNvbXBhcmUgb2Zmc2V0LW5haXZlIGFuZCAiCkBAIC00NzE5LDE2ICs0Njg4LDgzIEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCitsb2NhbF90aW1lem9uZShQeURhdGVUaW1lX0RhdGVUaW1lICp1dGNfdGltZSkKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBzdHJ1Y3QgdG0gKnRpbWVwOworICAgIHRpbWVfdCB0aW1lc3RhbXA7CisgICAgUHlPYmplY3QgKmRlbHRhOworICAgIFB5T2JqZWN0ICpvbmVfc2Vjb25kOworICAgIFB5T2JqZWN0ICpzZWNvbmRzOworICAgIFB5T2JqZWN0ICpuYW1lbyA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqem9uZSA9IE5VTEw7CisKKyAgICBkZWx0YSA9IGRhdGV0aW1lX3N1YnRyYWN0KChQeU9iamVjdCAqKXV0Y190aW1lLCBQeURhdGVUaW1lX0Vwb2NoKTsKKyAgICBpZiAoZGVsdGEgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgb25lX3NlY29uZCA9IG5ld19kZWx0YSgwLCAxLCAwLCAwKTsKKyAgICBpZiAob25lX3NlY29uZCA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworICAgIHNlY29uZHMgPSBkaXZpZGVfdGltZWRlbHRhX3RpbWVkZWx0YSgoUHlEYXRlVGltZV9EZWx0YSAqKWRlbHRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlEYXRlVGltZV9EZWx0YSAqKW9uZV9zZWNvbmQpOworICAgIFB5X0RFQ1JFRihvbmVfc2Vjb25kKTsKKyAgICBpZiAoc2Vjb25kcyA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworICAgIFB5X0RFQ1JFRihkZWx0YSk7CisgICAgdGltZXN0YW1wID0gUHlMb25nX0FzTG9uZyhzZWNvbmRzKTsKKyAgICBQeV9ERUNSRUYoc2Vjb25kcyk7CisgICAgaWYgKHRpbWVzdGFtcCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB0aW1lcCA9IGxvY2FsdGltZSgmdGltZXN0YW1wKTsKKyNpZmRlZiBIQVZFX1NUUlVDVF9UTV9UTV9aT05FCisgICAgem9uZSA9IHRpbWVwLT50bV96b25lOworICAgIGRlbHRhID0gbmV3X2RlbHRhKDAsIHRpbWVwLT50bV9nbXRvZmYsIDAsIDEpOworI2Vsc2UgLyogSEFWRV9TVFJVQ1RfVE1fVE1fWk9ORSAqLworICAgIHsKKyAgICAgICAgUHlPYmplY3QgKmxvY2FsX3RpbWU7CisgICAgICAgIGxvY2FsX3RpbWUgPSBuZXdfZGF0ZXRpbWUodGltZXAtPnRtX3llYXIgKyAxOTAwLCB0aW1lcC0+dG1fbW9uICsgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lcC0+dG1fbWRheSwgdGltZXAtPnRtX2hvdXIsIHRpbWVwLT50bV9taW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXAtPnRtX3NlYywgREFURV9HRVRfTUlDUk9TRUNPTkQodXRjX3RpbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0Y190aW1lLT50emluZm8pOworICAgICAgICBpZiAobG9jYWxfdGltZSA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgZGVsdGEgPSBkYXRldGltZV9zdWJ0cmFjdChsb2NhbF90aW1lLCAoUHlPYmplY3QqKXV0Y190aW1lKTsKKyAgICAgICAgLyogWFhYOiBiZWZvcmUgcmVseWluZyBvbiB0em5hbWUsIHdlIHNob3VsZCBjb21wYXJlIGRlbHRhCisgICAgICAgICAgIHRvIHRoZSBvZmZzZXQgaW1wbGllZCBieSB0aW1lem9uZS9hbHR6b25lICovCisgICAgICAgIGlmIChkYXlsaWdodCAmJiB0aW1lcC0+dG1faXNkc3QgPj0gMCkKKyAgICAgICAgICAgIHpvbmUgPSB0em5hbWVbdGltZXAtPnRtX2lzZHN0ICUgMl07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHpvbmUgPSB0em5hbWVbMF07CisgICAgICAgIFB5X0RFQ1JFRihsb2NhbF90aW1lKTsKKyAgICB9CisjZW5kaWYgLyogSEFWRV9TVFJVQ1RfVE1fVE1fWk9ORSAqLworICAgIGlmICh6b25lICE9IE5VTEwpIHsKKyAgICAgICAgbmFtZW8gPSBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKHpvbmUsICJzdXJyb2dhdGVlc2NhcGUiKTsKKyAgICAgICAgaWYgKG5hbWVvID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyAgICByZXN1bHQgPSBuZXdfdGltZXpvbmUoZGVsdGEsIG5hbWVvKTsKKyAgICBQeV9ERUNSRUYobmFtZW8pOworICBlcnJvcjoKKyAgICBQeV9ERUNSRUYoZGVsdGEpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBQeURhdGVUaW1lX0RhdGVUaW1lICoKIGRhdGV0aW1lX2FzdGltZXpvbmUoUHlEYXRlVGltZV9EYXRlVGltZSAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprdykKIHsKLSAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5RGF0ZVRpbWVfRGF0ZVRpbWUgKnJlc3VsdDsKICAgICBQeU9iamVjdCAqb2Zmc2V0OwogICAgIFB5T2JqZWN0ICp0ZW1wOwotICAgIFB5T2JqZWN0ICp0emluZm87CisgICAgUHlPYmplY3QgKnR6aW5mbyA9IFB5X05vbmU7CisgICAgX1B5X0lERU5USUZJRVIoZnJvbXV0Yyk7CiAgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InR6IiwgTlVMTH07CiAKLSAgICBpZiAoISBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3csICJPITphc3RpbWV6b25lIiwga2V5d29yZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeURhdGVUaW1lX1RaSW5mb1R5cGUsICZ0emluZm8pKQorICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrdywgInxPOmFzdGltZXpvbmUiLCBrZXl3b3JkcywKKwkJCQkgICAgICAmdHppbmZvKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoY2hlY2tfdHppbmZvX3N1YmNsYXNzKHR6aW5mbykgPT0gLTEpCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgaWYgKCFIQVNUWklORk8oc2VsZikgfHwgc2VsZi0+dHppbmZvID09IFB5X05vbmUpCkBAIC00NzM3LDcgKzQ3NzMsNyBAQAogICAgIC8qIENvbnZlcnNpb24gdG8gc2VsZidzIG93biB0aW1lIHpvbmUgaXMgYSBOT1AuICovCiAgICAgaWYgKHNlbGYtPnR6aW5mbyA9PSB0emluZm8pIHsKICAgICAgICAgUHlfSU5DUkVGKHNlbGYpOwotICAgICAgICByZXR1cm4gKFB5T2JqZWN0ICopc2VsZjsKKyAgICAgICAgcmV0dXJuIHNlbGY7CiAgICAgfQogCiAgICAgLyogQ29udmVydCBzZWxmIHRvIFVUQy4gKi8KQEAgLTQ3NTMsMjAgKzQ3ODksMjkgQEAKICAgICB9CiAKICAgICAvKiByZXN1bHQgPSBzZWxmIC0gb2Zmc2V0ICovCi0gICAgcmVzdWx0ID0gYWRkX2RhdGV0aW1lX3RpbWVkZWx0YShzZWxmLAotICAgICAgICAgICAgICAgIChQeURhdGVUaW1lX0RlbHRhICopb2Zmc2V0LCAtMSk7CisgICAgcmVzdWx0ID0gKFB5RGF0ZVRpbWVfRGF0ZVRpbWUgKilhZGRfZGF0ZXRpbWVfdGltZWRlbHRhKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlEYXRlVGltZV9EZWx0YSAqKW9mZnNldCwgLTEpOwogICAgIFB5X0RFQ1JFRihvZmZzZXQpOwogICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBBdHRhY2ggbmV3IHR6aW5mbyBhbmQgbGV0IGZyb211dGMoKSBkbyB0aGUgcmVzdC4gKi8KLSAgICB0ZW1wID0gKChQeURhdGVUaW1lX0RhdGVUaW1lICopcmVzdWx0KS0+dHppbmZvOwotICAgICgoUHlEYXRlVGltZV9EYXRlVGltZSAqKXJlc3VsdCktPnR6aW5mbyA9IHR6aW5mbzsKLSAgICBQeV9JTkNSRUYodHppbmZvKTsKKyAgICB0ZW1wID0gcmVzdWx0LT50emluZm87CisgICAgaWYgKHR6aW5mbyA9PSBQeV9Ob25lKSB7CisgICAgICAgIHR6aW5mbyA9IGxvY2FsX3RpbWV6b25lKHJlc3VsdCk7CisgICAgICAgIGlmICh0emluZm8gPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlCisgICAgICBQeV9JTkNSRUYodHppbmZvKTsKKyAgICByZXN1bHQtPnR6aW5mbyA9IHR6aW5mbzsKICAgICBQeV9ERUNSRUYodGVtcCk7CiAKLSAgICB0ZW1wID0gcmVzdWx0OwotICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxNZXRob2QodHppbmZvLCAiZnJvbXV0YyIsICJPIiwgdGVtcCk7CisgICAgdGVtcCA9IChQeU9iamVjdCAqKXJlc3VsdDsKKyAgICByZXN1bHQgPSAoUHlEYXRlVGltZV9EYXRlVGltZSAqKQorICAgICAgICBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHR6aW5mbywgJlB5SWRfZnJvbXV0YywgIk8iLCB0ZW1wKTsKICAgICBQeV9ERUNSRUYodGVtcCk7CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNDc5OCw2ICs0ODQzLDQ0IEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCitkYXRldGltZV90aW1lc3RhbXAoUHlEYXRlVGltZV9EYXRlVGltZSAqc2VsZikKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0OworCisgICAgaWYgKEhBU1RaSU5GTyhzZWxmKSAmJiBzZWxmLT50emluZm8gIT0gUHlfTm9uZSkgeworICAgICAgICBQeU9iamVjdCAqZGVsdGE7CisgICAgICAgIGRlbHRhID0gZGF0ZXRpbWVfc3VidHJhY3QoKFB5T2JqZWN0ICopc2VsZiwgUHlEYXRlVGltZV9FcG9jaCk7CisgICAgICAgIGlmIChkZWx0YSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJlc3VsdCA9IGRlbHRhX3RvdGFsX3NlY29uZHMoZGVsdGEpOworICAgICAgICBQeV9ERUNSRUYoZGVsdGEpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgc3RydWN0IHRtIHRpbWU7CisgICAgICAgIHRpbWVfdCB0aW1lc3RhbXA7CisgICAgICAgIG1lbXNldCgodm9pZCAqKSAmdGltZSwgJ1wwJywgc2l6ZW9mKHN0cnVjdCB0bSkpOworICAgICAgICB0aW1lLnRtX3llYXIgPSBHRVRfWUVBUihzZWxmKSAtIDE5MDA7CisgICAgICAgIHRpbWUudG1fbW9uID0gR0VUX01PTlRIKHNlbGYpIC0gMTsKKyAgICAgICAgdGltZS50bV9tZGF5ID0gR0VUX0RBWShzZWxmKTsKKyAgICAgICAgdGltZS50bV9ob3VyID0gREFURV9HRVRfSE9VUihzZWxmKTsKKyAgICAgICAgdGltZS50bV9taW4gPSBEQVRFX0dFVF9NSU5VVEUoc2VsZik7CisgICAgICAgIHRpbWUudG1fc2VjID0gREFURV9HRVRfU0VDT05EKHNlbGYpOworICAgICAgICB0aW1lLnRtX3dkYXkgPSAtMTsKKyAgICAgICAgdGltZS50bV9pc2RzdCA9IC0xOworICAgICAgICB0aW1lc3RhbXAgPSBta3RpbWUoJnRpbWUpOworICAgICAgICAvKiBSZXR1cm4gdmFsdWUgb2YgLTEgZG9lcyBub3QgbmVjZXNzYXJpbHkgbWVhbiBhbiBlcnJvciwgYnV0IHRtX3dkYXkKKyAgICAgICAgICogY2Fubm90IHJlbWFpbiBzZXQgdG8gLTEgaWYgbWt0aW1lIHN1Y2NlZWRlZC4gKi8KKyAgICAgICAgaWYgKHRpbWVzdGFtcCA9PSAodGltZV90KSgtMSkgJiYgdGltZS50bV93ZGF5ID09IC0xKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGltZXN0YW1wIG91dCBvZiByYW5nZSIpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gUHlGbG9hdF9Gcm9tRG91YmxlKHRpbWVzdGFtcCArIERBVEVfR0VUX01JQ1JPU0VDT05EKHNlbGYpIC8gMWU2KTsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKIGRhdGV0aW1lX2dldGRhdGUoUHlEYXRlVGltZV9EYXRlVGltZSAqc2VsZikKIHsKICAgICByZXR1cm4gbmV3X2RhdGUoR0VUX1lFQVIoc2VsZiksCkBAIC00OTQ0LDYgKzUwMjcsOSBAQAogICAgIHsidGltZXR1cGxlIiwgICAoUHlDRnVuY3Rpb24pZGF0ZXRpbWVfdGltZXR1cGxlLCBNRVRIX05PQVJHUywKICAgICAgUHlEb2NfU1RSKCJSZXR1cm4gdGltZSB0dXBsZSwgY29tcGF0aWJsZSB3aXRoIHRpbWUubG9jYWx0aW1lKCkuIil9LAogCisgICAgeyJ0aW1lc3RhbXAiLCAgIChQeUNGdW5jdGlvbilkYXRldGltZV90aW1lc3RhbXAsIE1FVEhfTk9BUkdTLAorICAgICBQeURvY19TVFIoIlJldHVybiBQT1NJWCB0aW1lc3RhbXAgYXMgZmxvYXQuIil9LAorCiAgICAgeyJ1dGN0aW1ldHVwbGUiLCAgIChQeUNGdW5jdGlvbilkYXRldGltZV91dGN0aW1ldHVwbGUsIE1FVEhfTk9BUkdTLAogICAgICBQeURvY19TVFIoIlJldHVybiBVVEMgdGltZSB0dXBsZSwgY29tcGF0aWJsZSB3aXRoIHRpbWUubG9jYWx0aW1lKCkuIil9LAogCkBAIC01MjAxLDYgKzUyODcsMTIgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgUHlfREVDUkVGKHgpOwogCisgICAgLyogRXBvY2ggKi8KKyAgICBQeURhdGVUaW1lX0Vwb2NoID0gbmV3X2RhdGV0aW1lKDE5NzAsIDEsIDEsIDAsIDAsIDAsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeURhdGVUaW1lX1RpbWVab25lX1VUQyk7CisgICAgaWYgKFB5RGF0ZVRpbWVfRXBvY2ggPT0gTlVMTCkKKyAgICAgIHJldHVybiBOVUxMOworCiAgICAgLyogbW9kdWxlIGluaXRpYWxpemF0aW9uICovCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1JTllFQVIiLCBNSU5ZRUFSKTsKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTUFYWUVBUiIsIE1BWFlFQVIpOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGJtbW9kdWxlLmMgYi9Nb2R1bGVzL19kYm1tb2R1bGUuYwppbmRleCA4MjdhY2NlLi4zMjdiODczIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19kYm1tb2R1bGUuYworKysgYi9Nb2R1bGVzL19kYm1tb2R1bGUuYwpAQCAtMjEyLDYgKzIxMiw3IEBACiB7CiAgICAgZGJtb2JqZWN0ICpkcCA9IChkYm1vYmplY3QgKilzZWxmOwogICAgIGRhdHVtIGtleSwgdmFsOworICAgIFB5X3NzaXplX3Qgc2l6ZTsKIAogICAgIGlmICgoZHApLT5kaV9kYm0gPT0gTlVMTCkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoRGJtRXJyb3IsCkBAIC0yMTksOCArMjIwLDkgQEAKICAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhhcmcpKSB7Ci0gICAgICAgIGFyZyA9IF9QeVVuaWNvZGVfQXNEZWZhdWx0RW5jb2RlZFN0cmluZyhhcmcsIE5VTEwpOwotICAgICAgICBpZiAoYXJnID09IE5VTEwpCisgICAgICAgIGtleS5kcHRyID0gUHlVbmljb2RlX0FzVVRGOEFuZFNpemUoYXJnLCAmc2l6ZSk7CisgICAgICAgIGtleS5kc2l6ZSA9IHNpemU7CisgICAgICAgIGlmIChrZXkuZHB0ciA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICBpZiAoIVB5Qnl0ZXNfQ2hlY2soYXJnKSkgewpAQCAtMjI5LDggKzIzMSwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgYXJnLT5vYl90eXBlLT50cF9uYW1lKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KLSAgICBrZXkuZHB0ciA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGFyZyk7Ci0gICAga2V5LmRzaXplID0gUHlCeXRlc19HRVRfU0laRShhcmcpOworICAgIGVsc2UgeworICAgICAgICBrZXkuZHB0ciA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGFyZyk7CisgICAgICAgIGtleS5kc2l6ZSA9IFB5Qnl0ZXNfR0VUX1NJWkUoYXJnKTsKKyAgICB9CiAgICAgdmFsID0gZGJtX2ZldGNoKGRwLT5kaV9kYm0sIGtleSk7CiAgICAgcmV0dXJuIHZhbC5kcHRyICE9IE5VTEw7CiB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL1JFQURNRS50eHQgYi9Nb2R1bGVzL19kZWNpbWFsL1JFQURNRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2IxN2NmZgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvUkVBRE1FLnR4dApAQCAtMCwwICsxLDQ2IEBACisKKworQWJvdXQKKz09PT09CisKK19kZWNpbWFsLmMgaXMgYSB3cmFwcGVyIGZvciB0aGUgbGlibXBkZWMgbGlicmFyeS4gbGlibXBkZWMgaXMgYSBmYXN0IEMKK2xpYnJhcnkgZm9yIGNvcnJlY3RseS1yb3VuZGVkIGFyYml0cmFyeSBwcmVjaXNpb24gZGVjaW1hbCBmbG9hdGluZyBwb2ludAorYXJpdGhtZXRpYy4gSXQgaXMgYSBjb21wbGV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBNaWtlIENvd2xpc2hhdy9JQk0ncworR2VuZXJhbCBEZWNpbWFsIEFyaXRobWV0aWMgU3BlY2lmaWNhdGlvbi4KKworCitCdWlsZCBwcm9jZXNzIGZvciB0aGUgbW9kdWxlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0FzIHVzdWFsLCB0aGUgYnVpbGQgcHJvY2VzcyBmb3IgX2RlY2ltYWwuc28gaXMgZHJpdmVuIGJ5IHNldHVwLnB5IGluIHRoZSB0b3AKK2xldmVsIGRpcmVjdG9yeS4gc2V0dXAucHkgYXV0b2RldGVjdHMgdGhlIGZvbGxvd2luZyBidWlsZCBjb25maWd1cmF0aW9uczoKKworICAgMSkgeDY0ICAgICAgICAgLSA2NC1iaXQgUHl0aG9uLCB4ODZfNjQgcHJvY2Vzc29yIChBTUQsIEludGVsKQorCisgICAyKSB1aW50MTI4ICAgICAtIDY0LWJpdCBQeXRob24sIGNvbXBpbGVyIHByb3ZpZGVzIF9fdWludDEyOF90IChnY2MpCisKKyAgIDMpIGFuc2k2NCAgICAgIC0gNjQtYml0IFB5dGhvbiwgQU5TSSBDCisKKyAgIDQpIHBwcm8gICAgICAgIC0gMzItYml0IFB5dGhvbiwgeDg2IENQVSwgUGVudGl1bVBybyBvciBsYXRlcgorCisgICA1KSBhbnNpMzIgICAgICAtIDMyLWJpdCBQeXRob24sIEFOU0kgQworCisgICA2KSBhbnNpLWxlZ2FjeSAtIDMyLWJpdCBQeXRob24sIGNvbXBpbGVyIHdpdGhvdXQgdWludDY0X3QKKworICAgNykgdW5pdmVyc2FsICAgLSBNYWMgT1Mgb25seSAobXVsdGktYXJjaCkKKworCitJdCBpcyBwb3NzaWJsZSB0byBvdmVycmlkZSBhdXRvZGV0ZWN0aW9uIGJ5IGV4cG9ydGluZzoKKworICAgUFlUSE9OX0RFQ0lNQUxfV0lUSF9NQUNISU5FPXZhbHVlLCB3aGVyZSB2YWx1ZSBpcyBvbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMuCisKKworTk9URQorPT09PQorIAorZGVjaW1hbC5zbyBpcyBub3QgYnVpbHQgZnJvbSBhIHN0YXRpYyBsaWJtcGRlYy5hIHNpbmNlIGRvaW5nIHNvIGxlZCB0bworZmFpbHVyZXMgb24gQUlYICh1c2VyIHJlcG9ydCkgYW5kIFdpbmRvd3MgKG1peGluZyBzdGF0aWMgYW5kIGR5bmFtaWMgQ1JUcworY2F1c2VzIGxvY2FsZSBwcm9ibGVtcyBhbmQgbW9yZSkuCisKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL19kZWNpbWFsLmMgYi9Nb2R1bGVzL19kZWNpbWFsL19kZWNpbWFsLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBmYzY5NgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvX2RlY2ltYWwuYwpAQCAtMCwwICsxLDU2NDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlIDxQeXRob24uaD4KKyNpbmNsdWRlICJsb25naW50cmVwci5oIgorI2luY2x1ZGUgInB5dGhyZWFkLmgiCisjaW5jbHVkZSAic3RydWN0bWVtYmVyLmgiCisjaW5jbHVkZSAiY29tcGxleG9iamVjdC5oIgorI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorCisjaW5jbHVkZSA8c3RkbGliLmg+CisKKyNpbmNsdWRlICJkb2NzdHJpbmdzLmgiCisjaW5jbHVkZSAibWVtb3J5LmgiCisKKworLyoKKyAqIFR5cGUgc2l6ZXMgd2l0aCBhc3NlcnRpb25zIGluIG1wZGVjaW1hbC5oIGFuZCBweXBvcnQuaDoKKyAqICAgIHNpemVvZihzaXplX3QpID09IHNpemVvZihQeV9zc2l6ZV90KQorICogICAgc2l6ZW9mKHNpemVfdCkgPT0gc2l6ZW9mKG1wZF91aW50X3QpID09IHNpemVvZihtcGRfc3NpemVfdCkKKyAqLworCisjaWZkZWYgVEVTVF9DT1ZFUkFHRQorICAjdW5kZWYgUHlfTE9DQUxfSU5MSU5FCisgICNkZWZpbmUgUHlfTE9DQUxfSU5MSU5FIFB5X0xPQ0FMCisjZW5kaWYKKworI2RlZmluZSBNUERfRmxvYXRfb3BlcmF0aW9uIE1QRF9Ob3RfaW1wbGVtZW50ZWQKKworI2RlZmluZSBCT1VORFNfQ0hFQ0soeCwgTUlOLCBNQVgpIHggPSAoeCA8IE1JTiB8fCBNQVggPCB4KSA/IE1BWCA6IHgKKworCisvKiBfUHlfREVDX01JTkFMTE9DID49IE1QRF9NSU5BTExPQyAqLworI2RlZmluZSBfUHlfREVDX01JTkFMTE9DIDQKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICBQeV9oYXNoX3QgaGFzaDsKKyAgICBtcGRfdCBkZWM7CisgICAgbXBkX3VpbnRfdCBkYXRhW19QeV9ERUNfTUlOQUxMT0NdOworfSBQeURlY09iamVjdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICB1aW50MzJfdCAqZmxhZ3M7Cit9IFB5RGVjU2lnbmFsRGljdE9iamVjdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICBtcGRfY29udGV4dF90IGN0eDsKKyAgICBQeU9iamVjdCAqdHJhcHM7CisgICAgUHlPYmplY3QgKmZsYWdzOworICAgIGludCBjYXBpdGFsczsKKyNpZm5kZWYgV0lUSE9VVF9USFJFQURTCisgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlOworI2VuZGlmCit9IFB5RGVjQ29udGV4dE9iamVjdDsKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICBQeU9iamVjdCAqbG9jYWw7CisgICAgUHlPYmplY3QgKmdsb2JhbDsKK30gUHlEZWNDb250ZXh0TWFuYWdlck9iamVjdDsKKworCisjdW5kZWYgTVBECisjdW5kZWYgQ1RYCitzdGF0aWMgUHlUeXBlT2JqZWN0IFB5RGVjX1R5cGU7CitzdGF0aWMgUHlUeXBlT2JqZWN0ICpQeURlY1NpZ25hbERpY3RfVHlwZTsKK3N0YXRpYyBQeVR5cGVPYmplY3QgUHlEZWNDb250ZXh0X1R5cGU7CitzdGF0aWMgUHlUeXBlT2JqZWN0IFB5RGVjQ29udGV4dE1hbmFnZXJfVHlwZTsKKyNkZWZpbmUgUHlEZWNfQ2hlY2tFeGFjdCh2KSAoUHlfVFlQRSh2KSA9PSAmUHlEZWNfVHlwZSkKKyNkZWZpbmUgUHlEZWNfQ2hlY2sodikgUHlPYmplY3RfVHlwZUNoZWNrKHYsICZQeURlY19UeXBlKQorI2RlZmluZSBQeURlY1NpZ25hbERpY3RfQ2hlY2sodikgKFB5X1RZUEUodikgPT0gUHlEZWNTaWduYWxEaWN0X1R5cGUpCisjZGVmaW5lIFB5RGVjQ29udGV4dF9DaGVjayh2KSBQeU9iamVjdF9UeXBlQ2hlY2sodiwgJlB5RGVjQ29udGV4dF9UeXBlKQorI2RlZmluZSBNUEQodikgKCYoKFB5RGVjT2JqZWN0ICopdiktPmRlYykKKyNkZWZpbmUgU2RGbGFnQWRkcih2KSAoKChQeURlY1NpZ25hbERpY3RPYmplY3QgKil2KS0+ZmxhZ3MpCisjZGVmaW5lIFNkRmxhZ3ModikgKCooKFB5RGVjU2lnbmFsRGljdE9iamVjdCAqKXYpLT5mbGFncykKKyNkZWZpbmUgQ1RYKHYpICgmKChQeURlY0NvbnRleHRPYmplY3QgKil2KS0+Y3R4KQorI2RlZmluZSBDdHhDYXBzKHYpICgoKFB5RGVjQ29udGV4dE9iamVjdCAqKXYpLT5jYXBpdGFscykKKworCitQeV9MT0NBTF9JTkxJTkUoUHlPYmplY3QgKikKK2luY3JfdHJ1ZSh2b2lkKQoreworICAgIFB5X0lOQ1JFRihQeV9UcnVlKTsKKyAgICByZXR1cm4gUHlfVHJ1ZTsKK30KKworUHlfTE9DQUxfSU5MSU5FKFB5T2JqZWN0ICopCitpbmNyX2ZhbHNlKHZvaWQpCit7CisgICAgUHlfSU5DUkVGKFB5X0ZhbHNlKTsKKyAgICByZXR1cm4gUHlfRmFsc2U7Cit9CisKKworI2lmZGVmIFdJVEhPVVRfVEhSRUFEUworLyogRGVmYXVsdCBtb2R1bGUgY29udGV4dCAqLworc3RhdGljIFB5T2JqZWN0ICptb2R1bGVfY29udGV4dCA9IE5VTEw7CisjZWxzZQorLyogS2V5IGZvciB0aHJlYWQgc3RhdGUgZGljdGlvbmFyeSAqLworc3RhdGljIFB5T2JqZWN0ICp0bHNfY29udGV4dF9rZXkgPSBOVUxMOworLyogSW52YXJpYW50OiBOVUxMIG9yIHRoZSBtb3N0IHJlY2VudGx5IGFjY2Vzc2VkIHRocmVhZCBsb2NhbCBjb250ZXh0ICovCitzdGF0aWMgUHlEZWNDb250ZXh0T2JqZWN0ICpjYWNoZWRfY29udGV4dCA9IE5VTEw7CisjZW5kaWYKKworLyogVGVtcGxhdGUgZm9yIGNyZWF0aW5nIG5ldyB0aHJlYWQgY29udGV4dHMsIGNhbGxpbmcgQ29udGV4dCgpIHdpdGhvdXQKKyAqIGFyZ3VtZW50cyBhbmQgaW5pdGlhbGl6aW5nIHRoZSBtb2R1bGVfY29udGV4dCBvbiBmaXJzdCBhY2Nlc3MuICovCitzdGF0aWMgUHlPYmplY3QgKmRlZmF1bHRfY29udGV4dF90ZW1wbGF0ZSA9IE5VTEw7CisvKiBCYXNpYyBhbmQgZXh0ZW5kZWQgY29udGV4dCB0ZW1wbGF0ZXMgKi8KK3N0YXRpYyBQeU9iamVjdCAqYmFzaWNfY29udGV4dF90ZW1wbGF0ZSA9IE5VTEw7CitzdGF0aWMgUHlPYmplY3QgKmV4dGVuZGVkX2NvbnRleHRfdGVtcGxhdGUgPSBOVUxMOworCisKKy8qIEVycm9yIGNvZGVzIGZvciBmdW5jdGlvbnMgdGhhdCByZXR1cm4gc2lnbmFscyBvciBjb25kaXRpb25zICovCisjZGVmaW5lIERFQ19JTlZBTElEX1NJR05BTFMgKE1QRF9NYXhfc3RhdHVzKzFVKQorI2RlZmluZSBERUNfRVJSX09DQ1VSUkVEIChERUNfSU5WQUxJRF9TSUdOQUxTPDwxKQorI2RlZmluZSBERUNfRVJST1JTIChERUNfSU5WQUxJRF9TSUdOQUxTfERFQ19FUlJfT0NDVVJSRUQpCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBjb25zdCBjaGFyICpuYW1lOyAgIC8qIGNvbmRpdGlvbiBvciBzaWduYWwgbmFtZSAqLworICAgIGNvbnN0IGNoYXIgKmZxbmFtZTsgLyogZnVsbHkgcXVhbGlmaWVkIG5hbWUgKi8KKyAgICB1aW50MzJfdCBmbGFnOyAgICAgIC8qIGxpYm1wZGVjIGZsYWcgKi8KKyAgICBQeU9iamVjdCAqZXg7ICAgICAgIC8qIGNvcnJlc3BvbmRpbmcgZXhjZXB0aW9uICovCit9IERlY0NvbmRNYXA7CisKKy8qIFRvcCBsZXZlbCBFeGNlcHRpb247IGluaGVyaXRzIGZyb20gQXJpdGhtZXRpY0Vycm9yICovCitzdGF0aWMgUHlPYmplY3QgKkRlY2ltYWxFeGNlcHRpb24gPSBOVUxMOworCisvKiBFeGNlcHRpb25zIHRoYXQgY29ycmVzcG9uZCB0byBJRUVFIHNpZ25hbHMgKi8KKyNkZWZpbmUgU1VCTk9STUFMIDUKKyNkZWZpbmUgSU5FWEFDVCA2CisjZGVmaW5lIFJPVU5ERUQgNworI2RlZmluZSBTSUdOQUxfTUFQX0xFTiA5CitzdGF0aWMgRGVjQ29uZE1hcCBzaWduYWxfbWFwW10gPSB7CisgIHsiSW52YWxpZE9wZXJhdGlvbiIsICJkZWNpbWFsLkludmFsaWRPcGVyYXRpb24iLCBNUERfSUVFRV9JbnZhbGlkX29wZXJhdGlvbiwgTlVMTH0sCisgIHsiRmxvYXRPcGVyYXRpb24iLCAiZGVjaW1hbC5GbG9hdE9wZXJhdGlvbiIsIE1QRF9GbG9hdF9vcGVyYXRpb24sIE5VTEx9LAorICB7IkRpdmlzaW9uQnlaZXJvIiwgImRlY2ltYWwuRGl2aXNpb25CeVplcm8iLCBNUERfRGl2aXNpb25fYnlfemVybywgTlVMTH0sCisgIHsiT3ZlcmZsb3ciLCAiZGVjaW1hbC5PdmVyZmxvdyIsIE1QRF9PdmVyZmxvdywgTlVMTH0sCisgIHsiVW5kZXJmbG93IiwgImRlY2ltYWwuVW5kZXJmbG93IiwgTVBEX1VuZGVyZmxvdywgTlVMTH0sCisgIHsiU3Vibm9ybWFsIiwgImRlY2ltYWwuU3Vibm9ybWFsIiwgTVBEX1N1Ym5vcm1hbCwgTlVMTH0sCisgIHsiSW5leGFjdCIsICJkZWNpbWFsLkluZXhhY3QiLCBNUERfSW5leGFjdCwgTlVMTH0sCisgIHsiUm91bmRlZCIsICJkZWNpbWFsLlJvdW5kZWQiLCBNUERfUm91bmRlZCwgTlVMTH0sCisgIHsiQ2xhbXBlZCIsICJkZWNpbWFsLkNsYW1wZWQiLCBNUERfQ2xhbXBlZCwgTlVMTH0sCisgIHtOVUxMfQorfTsKKworLyogRXhjZXB0aW9ucyB0aGF0IGluaGVyaXQgZnJvbSBJbnZhbGlkT3BlcmF0aW9uICovCitzdGF0aWMgRGVjQ29uZE1hcCBjb25kX21hcFtdID0geworICB7IkludmFsaWRPcGVyYXRpb24iLCAiZGVjaW1hbC5JbnZhbGlkT3BlcmF0aW9uIiwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBOVUxMfSwKKyAgeyJDb252ZXJzaW9uU3ludGF4IiwgImRlY2ltYWwuQ29udmVyc2lvblN5bnRheCIsIE1QRF9Db252ZXJzaW9uX3N5bnRheCwgTlVMTH0sCisgIHsiRGl2aXNpb25JbXBvc3NpYmxlIiwgImRlY2ltYWwuRGl2aXNpb25JbXBvc3NpYmxlIiwgTVBEX0RpdmlzaW9uX2ltcG9zc2libGUsIE5VTEx9LAorICB7IkRpdmlzaW9uVW5kZWZpbmVkIiwgImRlY2ltYWwuRGl2aXNpb25VbmRlZmluZWQiLCBNUERfRGl2aXNpb25fdW5kZWZpbmVkLCBOVUxMfSwKKyAgeyJJbnZhbGlkQ29udGV4dCIsICJkZWNpbWFsLkludmFsaWRDb250ZXh0IiwgTVBEX0ludmFsaWRfY29udGV4dCwgTlVMTH0sCisjaWZkZWYgRVhUUkFfRlVOQ1RJT05BTElUWQorICB7Ik1hbGxvY0Vycm9yIiwgImRlY2ltYWwuTWFsbG9jRXJyb3IiLCBNUERfTWFsbG9jX2Vycm9yLCBOVUxMfSwKKyNlbmRpZgorICB7TlVMTH0KK307CisKK3N0YXRpYyBjb25zdCBjaGFyICpkZWNfc2lnbmFsX3N0cmluZ1tNUERfTlVNX0ZMQUdTXSA9IHsKKyAgICAiQ2xhbXBlZCIsCisgICAgIkludmFsaWRPcGVyYXRpb24iLAorICAgICJEaXZpc2lvbkJ5WmVybyIsCisgICAgIkludmFsaWRPcGVyYXRpb24iLAorICAgICJJbnZhbGlkT3BlcmF0aW9uIiwKKyAgICAiSW52YWxpZE9wZXJhdGlvbiIsCisgICAgIkluZXhhY3QiLAorICAgICJJbnZhbGlkT3BlcmF0aW9uIiwKKyAgICAiSW52YWxpZE9wZXJhdGlvbiIsCisgICAgIkludmFsaWRPcGVyYXRpb24iLAorICAgICJGbG9hdE9wZXJhdGlvbiIsCisgICAgIk92ZXJmbG93IiwKKyAgICAiUm91bmRlZCIsCisgICAgIlN1Ym5vcm1hbCIsCisgICAgIlVuZGVyZmxvdyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqaW52YWxpZF9yb3VuZGluZ19lcnIgPQorInZhbGlkIHZhbHVlcyBmb3Igcm91bmRpbmcgYXJlOlxuXAorICBbUk9VTkRfQ0VJTElORywgUk9VTkRfRkxPT1IsIFJPVU5EX1VQLCBST1VORF9ET1dOLFxuXAorICAgUk9VTkRfSEFMRl9VUCwgUk9VTkRfSEFMRl9ET1dOLCBST1VORF9IQUxGX0VWRU4sXG5cCisgICBST1VORF8wNVVQXSI7CisKK3N0YXRpYyBjb25zdCBjaGFyICppbnZhbGlkX3NpZ25hbHNfZXJyID0KKyJ2YWxpZCB2YWx1ZXMgZm9yIHNpZ25hbHMgYXJlOlxuXAorICBbSW52YWxpZE9wZXJhdGlvbiwgRmxvYXRPcGVyYXRpb24sIERpdmlzaW9uQnlaZXJvLFxuXAorICAgT3ZlcmZsb3csIFVuZGVyZmxvdywgU3Vibm9ybWFsLCBJbmV4YWN0LCBSb3VuZGVkLFxuXAorICAgQ2xhbXBlZF0iOworCisjaWZkZWYgRVhUUkFfRlVOQ1RJT05BTElUWQorc3RhdGljIGNvbnN0IGNoYXIgKmludmFsaWRfZmxhZ3NfZXJyID0KKyJ2YWxpZCB2YWx1ZXMgZm9yIF9mbGFncyBvciBfdHJhcHMgYXJlOlxuXAorICBzaWduYWxzOlxuXAorICAgIFtEZWNJRUVFSW52YWxpZE9wZXJhdGlvbiwgRGVjRmxvYXRPcGVyYXRpb24sIERlY0RpdmlzaW9uQnlaZXJvLFxuXAorICAgICBEZWNPdmVyZmxvdywgRGVjVW5kZXJmbG93LCBEZWNTdWJub3JtYWwsIERlY0luZXhhY3QsIERlY1JvdW5kZWQsXG5cCisgICAgIERlY0NsYW1wZWRdXG5cCisgIGNvbmRpdGlvbnMgd2hpY2ggdHJpZ2dlciBEZWNJRUVFSW52YWxpZE9wZXJhdGlvbjpcblwKKyAgICBbRGVjSW52YWxpZE9wZXJhdGlvbiwgRGVjQ29udmVyc2lvblN5bnRheCwgRGVjRGl2aXNpb25JbXBvc3NpYmxlLFxuXAorICAgICBEZWNEaXZpc2lvblVuZGVmaW5lZCwgRGVjRnB1RXJyb3IsIERlY0ludmFsaWRDb250ZXh0LCBEZWNNYWxsb2NFcnJvcl0iOworI2VuZGlmCisKK3N0YXRpYyBpbnQKK3ZhbHVlX2Vycm9yX2ludChjb25zdCBjaGFyICptZXNnKQoreworICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCBtZXNnKTsKKyAgICByZXR1cm4gLTE7Cit9CisKKyNpZmRlZiBDT05GSUdfMzIKK3N0YXRpYyBQeU9iamVjdCAqCit2YWx1ZV9lcnJvcl9wdHIoY29uc3QgY2hhciAqbWVzZykKK3sKKyAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgbWVzZyk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisjZW5kaWYKKworc3RhdGljIGludAordHlwZV9lcnJvcl9pbnQoY29uc3QgY2hhciAqbWVzZykKK3sKKyAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCBtZXNnKTsKKyAgICByZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit0eXBlX2Vycm9yX3B0cihjb25zdCBjaGFyICptZXNnKQoreworICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsIG1lc2cpOworICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW50CitydW50aW1lX2Vycm9yX2ludChjb25zdCBjaGFyICptZXNnKQoreworICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsIG1lc2cpOworICAgIHJldHVybiAtMTsKK30KKyNkZWZpbmUgSU5URVJOQUxfRVJST1JfSU5UKGZ1bmNuYW1lKSBcCisgICAgcmV0dXJuIHJ1bnRpbWVfZXJyb3JfaW50KCJpbnRlcm5hbCBlcnJvciBpbiAiIGZ1bmNuYW1lKQorCitzdGF0aWMgUHlPYmplY3QgKgorcnVudGltZV9lcnJvcl9wdHIoY29uc3QgY2hhciAqbWVzZykKK3sKKyAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLCBtZXNnKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKyNkZWZpbmUgSU5URVJOQUxfRVJST1JfUFRSKGZ1bmNuYW1lKSBcCisgICAgcmV0dXJuIHJ1bnRpbWVfZXJyb3JfcHRyKCJpbnRlcm5hbCBlcnJvciBpbiAiIGZ1bmNuYW1lKQorCitzdGF0aWMgdm9pZAorZGVjX3RyYXBoYW5kbGVyKG1wZF9jb250ZXh0X3QgKmN0eCBVTlVTRUQpIC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KK3sgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgIHJldHVybjsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZmxhZ3NfYXNfZXhjZXB0aW9uKHVpbnQzMl90IGZsYWdzKQoreworICAgIERlY0NvbmRNYXAgKmNtOworCisgICAgZm9yIChjbSA9IHNpZ25hbF9tYXA7IGNtLT5uYW1lICE9IE5VTEw7IGNtKyspIHsKKyAgICAgICAgaWYgKGZsYWdzJmNtLT5mbGFnKSB7CisgICAgICAgICAgICByZXR1cm4gY20tPmV4OworICAgICAgICB9CisgICAgfQorCisgICAgSU5URVJOQUxfRVJST1JfUFRSKCJmbGFnc19hc19leGNlcHRpb24iKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworfQorCitQeV9MT0NBTF9JTkxJTkUodWludDMyX3QpCitleGNlcHRpb25fYXNfZmxhZyhQeU9iamVjdCAqZXgpCit7CisgICAgRGVjQ29uZE1hcCAqY207CisKKyAgICBmb3IgKGNtID0gc2lnbmFsX21hcDsgY20tPm5hbWUgIT0gTlVMTDsgY20rKykgeworICAgICAgICBpZiAoY20tPmV4ID09IGV4KSB7CisgICAgICAgICAgICByZXR1cm4gY20tPmZsYWc7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfS2V5RXJyb3IsIGludmFsaWRfc2lnbmFsc19lcnIpOworICAgIHJldHVybiBERUNfSU5WQUxJRF9TSUdOQUxTOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZmxhZ3NfYXNfbGlzdCh1aW50MzJfdCBmbGFncykKK3sKKyAgICBQeU9iamVjdCAqbGlzdDsKKyAgICBEZWNDb25kTWFwICpjbTsKKworICAgIGxpc3QgPSBQeUxpc3RfTmV3KDApOworICAgIGlmIChsaXN0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZm9yIChjbSA9IGNvbmRfbWFwOyBjbS0+bmFtZSAhPSBOVUxMOyBjbSsrKSB7CisgICAgICAgIGlmIChmbGFncyZjbS0+ZmxhZykgeworICAgICAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQobGlzdCwgY20tPmV4KSA8IDApIHsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIGZvciAoY20gPSBzaWduYWxfbWFwKzE7IGNtLT5uYW1lICE9IE5VTEw7IGNtKyspIHsKKyAgICAgICAgaWYgKGZsYWdzJmNtLT5mbGFnKSB7CisgICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChsaXN0LCBjbS0+ZXgpIDwgMCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbGlzdDsKKworZXJyb3I6CisgICAgUHlfREVDUkVGKGxpc3QpOworICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorc2lnbmFsc19hc19saXN0KHVpbnQzMl90IGZsYWdzKQoreworICAgIFB5T2JqZWN0ICpsaXN0OworICAgIERlY0NvbmRNYXAgKmNtOworCisgICAgbGlzdCA9IFB5TGlzdF9OZXcoMCk7CisgICAgaWYgKGxpc3QgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBmb3IgKGNtID0gc2lnbmFsX21hcDsgY20tPm5hbWUgIT0gTlVMTDsgY20rKykgeworICAgICAgICBpZiAoZmxhZ3MmY20tPmZsYWcpIHsKKyAgICAgICAgICAgIGlmIChQeUxpc3RfQXBwZW5kKGxpc3QsIGNtLT5leCkgPCAwKSB7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGxpc3QpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGxpc3Q7Cit9CisKK3N0YXRpYyB1aW50MzJfdAorbGlzdF9hc19mbGFncyhQeU9iamVjdCAqbGlzdCkKK3sKKyAgICBQeU9iamVjdCAqaXRlbTsKKyAgICB1aW50MzJfdCBmbGFncywgeDsKKyAgICBQeV9zc2l6ZV90IG4sIGo7CisKKyAgICBhc3NlcnQoUHlMaXN0X0NoZWNrKGxpc3QpKTsKKworICAgIG4gPSBQeUxpc3RfU2l6ZShsaXN0KTsKKyAgICBmbGFncyA9IDA7CisgICAgZm9yIChqID0gMDsgaiA8IG47IGorKykgeworICAgICAgICBpdGVtID0gUHlMaXN0X0dldEl0ZW0obGlzdCwgaik7CisgICAgICAgIHggPSBleGNlcHRpb25fYXNfZmxhZyhpdGVtKTsKKyAgICAgICAgaWYgKHggJiBERUNfRVJST1JTKSB7CisgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgfQorICAgICAgICBmbGFncyB8PSB4OworICAgIH0KKworICAgIHJldHVybiBmbGFnczsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2ZsYWdzX2FzX2RpY3QodWludDMyX3QgZmxhZ3MpCit7CisgICAgRGVjQ29uZE1hcCAqY207CisgICAgUHlPYmplY3QgKmRpY3Q7CisKKyAgICBkaWN0ID0gUHlEaWN0X05ldygpOworICAgIGlmIChkaWN0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZm9yIChjbSA9IHNpZ25hbF9tYXA7IGNtLT5uYW1lICE9IE5VTEw7IGNtKyspIHsKKyAgICAgICAgUHlPYmplY3QgKmIgPSBmbGFncyZjbS0+ZmxhZyA/IFB5X1RydWUgOiBQeV9GYWxzZTsKKyAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtKGRpY3QsIGNtLT5leCwgYikgPCAwKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoZGljdCk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBkaWN0OworfQorCitzdGF0aWMgdWludDMyX3QKK2RpY3RfYXNfZmxhZ3MoUHlPYmplY3QgKnZhbCkKK3sKKyAgICBQeU9iamVjdCAqYjsKKyAgICBEZWNDb25kTWFwICpjbTsKKyAgICB1aW50MzJfdCBmbGFncyA9IDA7CisgICAgaW50IHg7CisKKyAgICBpZiAoIVB5RGljdF9DaGVjayh2YWwpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAiYXJndW1lbnQgbXVzdCBiZSBhIHNpZ25hbCBkaWN0Iik7CisgICAgICAgIHJldHVybiBERUNfSU5WQUxJRF9TSUdOQUxTOworICAgIH0KKworICAgIGlmIChQeURpY3RfU2l6ZSh2YWwpICE9IFNJR05BTF9NQVBfTEVOKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19LZXlFcnJvciwKKyAgICAgICAgICAgICJpbnZhbGlkIHNpZ25hbCBkaWN0Iik7CisgICAgICAgIHJldHVybiBERUNfSU5WQUxJRF9TSUdOQUxTOworICAgIH0KKworICAgIGZvciAoY20gPSBzaWduYWxfbWFwOyBjbS0+bmFtZSAhPSBOVUxMOyBjbSsrKSB7CisgICAgICAgIGIgPSBQeURpY3RfR2V0SXRlbVdpdGhFcnJvcih2YWwsIGNtLT5leCk7CisgICAgICAgIGlmIChiID09IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIERFQ19FUlJfT0NDVVJSRUQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfS2V5RXJyb3IsCisgICAgICAgICAgICAgICAgImludmFsaWQgc2lnbmFsIGRpY3QiKTsKKyAgICAgICAgICAgIHJldHVybiBERUNfSU5WQUxJRF9TSUdOQUxTOworICAgICAgICB9CisKKyAgICAgICAgeCA9IFB5T2JqZWN0X0lzVHJ1ZShiKTsKKyAgICAgICAgaWYgKHggPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gREVDX0VSUl9PQ0NVUlJFRDsKKyAgICAgICAgfQorICAgICAgICBpZiAoeCA9PSAxKSB7CisgICAgICAgICAgICBmbGFncyB8PSBjbS0+ZmxhZzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmbGFnczsKK30KKworI2lmZGVmIEVYVFJBX0ZVTkNUSU9OQUxJVFkKK3N0YXRpYyB1aW50MzJfdAorbG9uZ19hc19mbGFncyhQeU9iamVjdCAqdikKK3sKKyAgICBsb25nIHg7CisKKyAgICB4ID0gUHlMb25nX0FzTG9uZyh2KTsKKyAgICBpZiAoeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgIHJldHVybiBERUNfRVJSX09DQ1VSUkVEOworICAgIH0KKyAgICBpZiAoeCA8IDAgfHwgeCA+IChsb25nKU1QRF9NYXhfc3RhdHVzKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsIGludmFsaWRfZmxhZ3NfZXJyKTsKKyAgICAgICAgcmV0dXJuIERFQ19JTlZBTElEX1NJR05BTFM7CisgICAgfQorCisgICAgcmV0dXJuIHg7Cit9CisjZW5kaWYKKworc3RhdGljIGludAorZGVjX2FkZHN0YXR1cyhQeU9iamVjdCAqY29udGV4dCwgdWludDMyX3Qgc3RhdHVzKQoreworICAgIG1wZF9jb250ZXh0X3QgKmN0eCA9IENUWChjb250ZXh0KTsKKworICAgIGN0eC0+c3RhdHVzIHw9IHN0YXR1czsKKyAgICBpZiAoc3RhdHVzICYgKGN0eC0+dHJhcHN8TVBEX01hbGxvY19lcnJvcikpIHsKKyAgICAgICAgUHlPYmplY3QgKmV4LCAqc2lnbGlzdDsKKworICAgICAgICBpZiAoc3RhdHVzICYgTVBEX01hbGxvY19lcnJvcikgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisKKyAgICAgICAgZXggPSBmbGFnc19hc19leGNlcHRpb24oY3R4LT50cmFwcyZzdGF0dXMpOworICAgICAgICBpZiAoZXggPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIDE7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICAgICAgfQorICAgICAgICBzaWdsaXN0ID0gZmxhZ3NfYXNfbGlzdChjdHgtPnRyYXBzJnN0YXR1cyk7CisgICAgICAgIGlmIChzaWdsaXN0ID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisKKyAgICAgICAgUHlFcnJfU2V0T2JqZWN0KGV4LCBzaWdsaXN0KTsKKyAgICAgICAgUHlfREVDUkVGKHNpZ2xpc3QpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ25hbERpY3QgT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBUaGUgU2lnbmFsRGljdCBpcyBhIE11dGFibGVNYXBwaW5nIHRoYXQgcHJvdmlkZXMgYWNjZXNzIHRvIHRoZQorICAgbXBkX2NvbnRleHRfdCBmbGFncywgd2hpY2ggcmVzaWRlIGluIHRoZSBjb250ZXh0IG9iamVjdC4gV2hlbiBhCisgICBuZXcgY29udGV4dCBpcyBjcmVhdGVkLCBjb250ZXh0LnRyYXBzIGFuZCBjb250ZXh0LmZsYWdzIGFyZQorICAgaW5pdGlhbGl6ZWQgdG8gbmV3IFNpZ25hbERpY3RzLiBPbmNlIGEgU2lnbmFsRGljdCBpcyB0aWVkIHRvCisgICBhIGNvbnRleHQsIGl0IGNhbm5vdCBiZSBkZWxldGVkLiAqLworCitzdGF0aWMgaW50CitzaWduYWxkaWN0X2luaXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzIFVOVVNFRCwgUHlPYmplY3QgKmt3ZHMgVU5VU0VEKQoreworICAgIFNkRmxhZ0FkZHIoc2VsZikgPSBOVUxMOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUHlfc3NpemVfdAorc2lnbmFsZGljdF9sZW4oUHlPYmplY3QgKnNlbGYgVU5VU0VEKQoreworICAgIHJldHVybiBTSUdOQUxfTUFQX0xFTjsKK30KKworc3RhdGljIFB5T2JqZWN0ICpTaWduYWxUdXBsZTsKK3N0YXRpYyBQeU9iamVjdCAqCitzaWduYWxkaWN0X2l0ZXIoUHlPYmplY3QgKnNlbGYgVU5VU0VEKQoreworICAgIHJldHVybiBQeVR1cGxlX1R5cGUudHBfaXRlcihTaWduYWxUdXBsZSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitzaWduYWxkaWN0X2dldGl0ZW0oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICprZXkpCit7CisgICAgdWludDMyX3QgZmxhZzsKKworICAgIGZsYWcgPSBleGNlcHRpb25fYXNfZmxhZyhrZXkpOworICAgIGlmIChmbGFnICYgREVDX0VSUk9SUykgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gU2RGbGFncyhzZWxmKSZmbGFnID8gaW5jcl90cnVlKCkgOiBpbmNyX2ZhbHNlKCk7Cit9CisKK3N0YXRpYyBpbnQKK3NpZ25hbGRpY3Rfc2V0aXRlbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmtleSwgUHlPYmplY3QgKnZhbHVlKQoreworICAgIHVpbnQzMl90IGZsYWc7CisgICAgaW50IHg7CisKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gdmFsdWVfZXJyb3JfaW50KCJzaWduYWwga2V5cyBjYW5ub3QgYmUgZGVsZXRlZCIpOworICAgIH0KKworICAgIGZsYWcgPSBleGNlcHRpb25fYXNfZmxhZyhrZXkpOworICAgIGlmIChmbGFnICYgREVDX0VSUk9SUykgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgeCA9IFB5T2JqZWN0X0lzVHJ1ZSh2YWx1ZSk7CisgICAgaWYgKHggPCAwKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAoeCA9PSAxKSB7CisgICAgICAgIFNkRmxhZ3Moc2VsZikgfD0gZmxhZzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFNkRmxhZ3Moc2VsZikgJj0gfmZsYWc7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitzaWduYWxkaWN0X3JlcHIoUHlPYmplY3QgKnNlbGYpCit7CisgICAgRGVjQ29uZE1hcCAqY207CisgICAgY29uc3QgY2hhciAqbltTSUdOQUxfTUFQX0xFTl07IC8qIG5hbWUgKi8KKyAgICBjb25zdCBjaGFyICpiW1NJR05BTF9NQVBfTEVOXTsgLyogYm9vbCAqLworICAgIGludCBpOworCisgICAgYXNzZXJ0KFNJR05BTF9NQVBfTEVOID09IDkpOworCisgICAgZm9yIChjbT1zaWduYWxfbWFwLCBpPTA7IGNtLT5uYW1lICE9IE5VTEw7IGNtKyssIGkrKykgeworICAgICAgICBuW2ldID0gY20tPmZxbmFtZTsKKyAgICAgICAgYltpXSA9IFNkRmxhZ3Moc2VsZikmY20tPmZsYWcgPyAiVHJ1ZSIgOiAiRmFsc2UiOworICAgIH0KKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoCisgICAgICAgICJ7PGNsYXNzICclcyc+OiVzLCA8Y2xhc3MgJyVzJz46JXMsIDxjbGFzcyAnJXMnPjolcywgIgorICAgICAgICAgIjxjbGFzcyAnJXMnPjolcywgPGNsYXNzICclcyc+OiVzLCA8Y2xhc3MgJyVzJz46JXMsICIKKyAgICAgICAgICI8Y2xhc3MgJyVzJz46JXMsIDxjbGFzcyAnJXMnPjolcywgPGNsYXNzICclcyc+OiVzfSIsCisgICAgICAgICAgICBuWzBdLCBiWzBdLCBuWzFdLCBiWzFdLCBuWzJdLCBiWzJdLAorICAgICAgICAgICAgblszXSwgYlszXSwgbls0XSwgYls0XSwgbls1XSwgYls1XSwKKyAgICAgICAgICAgIG5bNl0sIGJbNl0sIG5bN10sIGJbN10sIG5bOF0sIGJbOF0pOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorc2lnbmFsZGljdF9yaWNoY29tcGFyZShQeU9iamVjdCAqdiwgUHlPYmplY3QgKncsIGludCBvcCkKK3sKKyAgICBQeU9iamVjdCAqcmVzID0gUHlfTm90SW1wbGVtZW50ZWQ7CisKKyAgICBhc3NlcnQoUHlEZWNTaWduYWxEaWN0X0NoZWNrKHYpKTsKKworICAgIGlmIChvcCA9PSBQeV9FUSB8fCBvcCA9PSBQeV9ORSkgeworICAgICAgICBpZiAoUHlEZWNTaWduYWxEaWN0X0NoZWNrKHcpKSB7CisgICAgICAgICAgICByZXMgPSAoU2RGbGFncyh2KT09U2RGbGFncyh3KSkgXiAob3A9PVB5X05FKSA/IFB5X1RydWUgOiBQeV9GYWxzZTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChQeURpY3RfQ2hlY2sodykpIHsKKyAgICAgICAgICAgIHVpbnQzMl90IGZsYWdzID0gZGljdF9hc19mbGFncyh3KTsKKyAgICAgICAgICAgIGlmIChmbGFncyAmIERFQ19FUlJPUlMpIHsKKyAgICAgICAgICAgICAgICBpZiAoZmxhZ3MgJiBERUNfSU5WQUxJRF9TSUdOQUxTKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG5vbi1jb21wYXJhYmxlOiBQeV9Ob3RJbXBsZW1lbnRlZCAqLworICAgICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgcmVzID0gKFNkRmxhZ3Modik9PWZsYWdzKSBeIChvcD09UHlfTkUpID8gUHlfVHJ1ZSA6IFB5X0ZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgUHlfSU5DUkVGKHJlcyk7CisgICAgcmV0dXJuIHJlczsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3NpZ25hbGRpY3RfY29weShQeU9iamVjdCAqc2VsZikKK3sKKyAgICByZXR1cm4gZmxhZ3NfYXNfZGljdChTZEZsYWdzKHNlbGYpKTsKK30KKworCitzdGF0aWMgUHlNYXBwaW5nTWV0aG9kcyBzaWduYWxkaWN0X2FzX21hcHBpbmcgPSB7CisgICAgKGxlbmZ1bmMpc2lnbmFsZGljdF9sZW4sICAgICAgICAgIC8qIG1wX2xlbmd0aCAqLworICAgIChiaW5hcnlmdW5jKXNpZ25hbGRpY3RfZ2V0aXRlbSwgICAvKiBtcF9zdWJzY3JpcHQgKi8KKyAgICAob2Jqb2JqYXJncHJvYylzaWduYWxkaWN0X3NldGl0ZW0gLyogbXBfYXNzX3N1YnNjcmlwdCAqLworfTsKKworc3RhdGljIFB5TWV0aG9kRGVmIHNpZ25hbGRpY3RfbWV0aG9kc1tdID0geworICAgIHsgImNvcHkiLCAoUHlDRnVuY3Rpb24pc2lnbmFsZGljdF9jb3B5LCBNRVRIX05PQVJHUywgTlVMTH0sCisgICAge05VTEwsIE5VTEx9Cit9OworCisKK3N0YXRpYyBQeVR5cGVPYmplY3QgUHlEZWNTaWduYWxEaWN0TWl4aW5fVHlwZSA9Cit7CisgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKDAsIDApCisgICAgImRlY2ltYWwuU2lnbmFsRGljdE1peGluIiwgICAgICAgICAgICAgICAgLyogdHBfbmFtZSAqLworICAgIHNpemVvZihQeURlY1NpZ25hbERpY3RPYmplY3QpLCAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXplICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVhbGxvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCisgICAgKGdldGF0dHJmdW5jKSAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0ciAqLworICAgIChzZXRhdHRyZnVuYykgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZlZCAqLworICAgIChyZXByZnVuYykgc2lnbmFsZGljdF9yZXByLCAgICAgICAgICAgICAgIC8qIHRwX3JlcHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19udW1iZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLworICAgICZzaWduYWxkaWN0X2FzX21hcHBpbmcsICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX21hcHBpbmcgKi8KKyAgICBQeU9iamVjdF9IYXNoTm90SW1wbGVtZW50ZWQsICAgICAgICAgICAgICAvKiB0cF9oYXNoICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLworICAgIChyZXByZnVuYykgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLworICAgIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyLCAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHJvICovCisgICAgKHNldGF0dHJvZnVuYykgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAoUHlCdWZmZXJQcm9jcyAqKSAwLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFR8UHlfVFBGTEFHU19CQVNFVFlQRXwKKyAgICBQeV9UUEZMQUdTX0hBVkVfR0MsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9mbGFncyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KKyAgICBzaWduYWxkaWN0X3JpY2hjb21wYXJlLCAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCisgICAgKGdldGl0ZXJmdW5jKXNpZ25hbGRpY3RfaXRlciwgICAgICAgICAgICAgLyogdHBfaXRlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCisgICAgc2lnbmFsZGljdF9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX2dldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3NldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KKyAgICAoaW5pdHByb2Mpc2lnbmFsZGljdF9pbml0LCAgICAgICAgICAgICAgICAvKiB0cF9pbml0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KKyAgICBQeVR5cGVfR2VuZXJpY05ldywgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9uZXcgKi8KK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRleHQgT2JqZWN0LCBQYXJ0IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIERlY19DT05URVhUX0dFVF9TU0laRShtZW0pIFwKK3N0YXRpYyBQeU9iamVjdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorY29udGV4dF9nZXQjI21lbShQeU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSBVTlVTRUQpICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KG1wZF9nZXQjI21lbShDVFgoc2VsZikpKTsgXAorfQorCisjZGVmaW5lIERlY19DT05URVhUX0dFVF9VTE9ORyhtZW0pIFwKK3N0YXRpYyBQeU9iamVjdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitjb250ZXh0X2dldCMjbWVtKFB5T2JqZWN0ICpzZWxmLCB2b2lkICpjbG9zdXJlIFVOVVNFRCkgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcobXBkX2dldCMjbWVtKENUWChzZWxmKSkpOyBcCit9CisKK0RlY19DT05URVhUX0dFVF9TU0laRShwcmVjKQorRGVjX0NPTlRFWFRfR0VUX1NTSVpFKGVtYXgpCitEZWNfQ09OVEVYVF9HRVRfU1NJWkUoZW1pbikKK0RlY19DT05URVhUX0dFVF9TU0laRShyb3VuZCkKK0RlY19DT05URVhUX0dFVF9TU0laRShjbGFtcCkKKworI2lmZGVmIEVYVFJBX0ZVTkNUSU9OQUxJVFkKK0RlY19DT05URVhUX0dFVF9VTE9ORyh0cmFwcykKK0RlY19DT05URVhUX0dFVF9VTE9ORyhzdGF0dXMpCisjZW5kaWYKKworc3RhdGljIFB5T2JqZWN0ICoKK2NvbnRleHRfZ2V0Y2FwaXRhbHMoUHlPYmplY3QgKnNlbGYsIHZvaWQgKmNsb3N1cmUgVU5VU0VEKQoreworICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoQ3R4Q2FwcyhzZWxmKSk7Cit9CisKKyNpZmRlZiBFWFRSQV9GVU5DVElPTkFMSVRZCitzdGF0aWMgUHlPYmplY3QgKgorY29udGV4dF9nZXRhbGxjcihQeU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSBVTlVTRUQpCit7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyhtcGRfZ2V0Y3IoQ1RYKHNlbGYpKSk7Cit9CisjZW5kaWYKKworc3RhdGljIFB5T2JqZWN0ICoKK2NvbnRleHRfZ2V0ZXRpbnkoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSBVTlVTRUQpCit7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChtcGRfZXRpbnkoQ1RYKHNlbGYpKSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitjb250ZXh0X2dldGV0b3AoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSBVTlVTRUQpCit7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChtcGRfZXRvcChDVFgoc2VsZikpKTsKK30KKworc3RhdGljIGludAorY29udGV4dF9zZXRwcmVjKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdmFsdWUsIHZvaWQgKmNsb3N1cmUgVU5VU0VEKQoreworICAgIG1wZF9jb250ZXh0X3QgKmN0eDsKKyAgICBtcGRfc3NpemVfdCB4OworCisgICAgeCA9IFB5TG9uZ19Bc1NzaXplX3QodmFsdWUpOworICAgIGlmICh4ID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGN0eCA9IENUWChzZWxmKTsKKyAgICBpZiAoIW1wZF9xc2V0cHJlYyhjdHgsIHgpKSB7CisgICAgICAgIHJldHVybiB2YWx1ZV9lcnJvcl9pbnQoCisgICAgICAgICAgICAidmFsaWQgcmFuZ2UgZm9yIHByZWMgaXMgWzEsIE1BWF9QUkVDXSIpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Citjb250ZXh0X3NldGVtaW4oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp2YWx1ZSwgdm9pZCAqY2xvc3VyZSBVTlVTRUQpCit7CisgICAgbXBkX2NvbnRleHRfdCAqY3R4OworICAgIG1wZF9zc2l6ZV90IHg7CisKKyAgICB4ID0gUHlMb25nX0FzU3NpemVfdCh2YWx1ZSk7CisgICAgaWYgKHggPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgY3R4ID0gQ1RYKHNlbGYpOworICAgIGlmICghbXBkX3FzZXRlbWluKGN0eCwgeCkpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlX2Vycm9yX2ludCgKKyAgICAgICAgICAgICJ2YWxpZCByYW5nZSBmb3IgRW1pbiBpcyBbTUlOX0VNSU4sIDBdIik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2NvbnRleHRfc2V0ZW1heChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnZhbHVlLCB2b2lkICpjbG9zdXJlIFVOVVNFRCkKK3sKKyAgICBtcGRfY29udGV4dF90ICpjdHg7CisgICAgbXBkX3NzaXplX3QgeDsKKworICAgIHggPSBQeUxvbmdfQXNTc2l6ZV90KHZhbHVlKTsKKyAgICBpZiAoeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBjdHggPSBDVFgoc2VsZik7CisgICAgaWYgKCFtcGRfcXNldGVtYXgoY3R4LCB4KSkgeworICAgICAgICByZXR1cm4gdmFsdWVfZXJyb3JfaW50KAorICAgICAgICAgICAgInZhbGlkIHJhbmdlIGZvciBFbWF4IGlzIFswLCBNQVhfRU1BWF0iKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworI2lmZGVmIENPTkZJR18zMgorc3RhdGljIFB5T2JqZWN0ICoKK2NvbnRleHRfdW5zYWZlX3NldHByZWMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp2YWx1ZSkKK3sKKyAgICBtcGRfY29udGV4dF90ICpjdHggPSBDVFgoc2VsZik7CisgICAgbXBkX3NzaXplX3QgeDsKKworICAgIHggPSBQeUxvbmdfQXNTc2l6ZV90KHZhbHVlKTsKKyAgICBpZiAoeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmICh4IDwgMSB8fCB4ID4gMTA3MDAwMDAwMEwpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlX2Vycm9yX3B0cigKKyAgICAgICAgICAgICJ2YWxpZCByYW5nZSBmb3IgdW5zYWZlIHByZWMgaXMgWzEsIDEwNzAwMDAwMDBdIik7CisgICAgfQorCisgICAgY3R4LT5wcmVjID0geDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2NvbnRleHRfdW5zYWZlX3NldGVtaW4oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp2YWx1ZSkKK3sKKyAgICBtcGRfY29udGV4dF90ICpjdHggPSBDVFgoc2VsZik7CisgICAgbXBkX3NzaXplX3QgeDsKKworICAgIHggPSBQeUxvbmdfQXNTc2l6ZV90KHZhbHVlKTsKKyAgICBpZiAoeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmICh4IDwgLTEwNzAwMDAwMDBMIHx8IHggPiAwKSB7CisgICAgICAgIHJldHVybiB2YWx1ZV9lcnJvcl9wdHIoCisgICAgICAgICAgICAidmFsaWQgcmFuZ2UgZm9yIHVuc2FmZSBlbWluIGlzIFstMTA3MDAwMDAwMCwgMF0iKTsKKyAgICB9CisKKyAgICBjdHgtPmVtaW4gPSB4OworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorY29udGV4dF91bnNhZmVfc2V0ZW1heChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnZhbHVlKQoreworICAgIG1wZF9jb250ZXh0X3QgKmN0eCA9IENUWChzZWxmKTsKKyAgICBtcGRfc3NpemVfdCB4OworCisgICAgeCA9IFB5TG9uZ19Bc1NzaXplX3QodmFsdWUpOworICAgIGlmICh4ID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKHggPCAwIHx8IHggPiAxMDcwMDAwMDAwTCkgeworICAgICAgICByZXR1cm4gdmFsdWVfZXJyb3JfcHRyKAorICAgICAgICAgICAgInZhbGlkIHJhbmdlIGZvciB1bnNhZmUgZW1heCBpcyBbMCwgMTA3MDAwMDAwMF0iKTsKKyAgICB9CisKKyAgICBjdHgtPmVtYXggPSB4OworICAgIFB5X1JFVFVSTl9OT05FOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK2NvbnRleHRfc2V0cm91bmQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp2YWx1ZSwgdm9pZCAqY2xvc3VyZSBVTlVTRUQpCit7CisgICAgbXBkX2NvbnRleHRfdCAqY3R4OworICAgIG1wZF9zc2l6ZV90IHg7CisKKyAgICB4ID0gUHlMb25nX0FzU3NpemVfdCh2YWx1ZSk7CisgICAgaWYgKHggPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIEJPVU5EU19DSEVDSyh4LCBJTlRfTUlOLCBJTlRfTUFYKTsKKworICAgIGN0eCA9IENUWChzZWxmKTsKKyAgICBpZiAoIW1wZF9xc2V0cm91bmQoY3R4LCAoaW50KXgpKSB7CisgICAgICAgIHJldHVybiB0eXBlX2Vycm9yX2ludChpbnZhbGlkX3JvdW5kaW5nX2Vycik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2NvbnRleHRfc2V0Y2FwaXRhbHMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp2YWx1ZSwgdm9pZCAqY2xvc3VyZSBVTlVTRUQpCit7CisgICAgbXBkX3NzaXplX3QgeDsKKworICAgIHggPSBQeUxvbmdfQXNTc2l6ZV90KHZhbHVlKTsKKyAgICBpZiAoeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAoeCAhPSAwICYmIHggIT0gMSkgeworICAgICAgICByZXR1cm4gdmFsdWVfZXJyb3JfaW50KAorICAgICAgICAgICAgInZhbGlkIHZhbHVlcyBmb3IgY2FwaXRhbHMgYXJlIDAgb3IgMSIpOworICAgIH0KKyAgICBDdHhDYXBzKHNlbGYpID0gKGludCl4OworCisgICAgcmV0dXJuIDA7Cit9CisKKyNpZmRlZiBFWFRSQV9GVU5DVElPTkFMSVRZCitzdGF0aWMgaW50Citjb250ZXh0X3NldHRyYXBzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdmFsdWUsIHZvaWQgKmNsb3N1cmUgVU5VU0VEKQoreworICAgIG1wZF9jb250ZXh0X3QgKmN0eDsKKyAgICB1aW50MzJfdCBmbGFnczsKKworICAgIGZsYWdzID0gbG9uZ19hc19mbGFncyh2YWx1ZSk7CisgICAgaWYgKGZsYWdzICYgREVDX0VSUk9SUykgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgY3R4ID0gQ1RYKHNlbGYpOworICAgIGlmICghbXBkX3FzZXR0cmFwcyhjdHgsIGZsYWdzKSkgeworICAgICAgICBJTlRFUk5BTF9FUlJPUl9JTlQoImNvbnRleHRfc2V0dHJhcHMiKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCitzdGF0aWMgaW50Citjb250ZXh0X3NldHRyYXBzX2xpc3QoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp2YWx1ZSkKK3sKKyAgICBtcGRfY29udGV4dF90ICpjdHg7CisgICAgdWludDMyX3QgZmxhZ3M7CisKKyAgICBmbGFncyA9IGxpc3RfYXNfZmxhZ3ModmFsdWUpOworICAgIGlmIChmbGFncyAmIERFQ19FUlJPUlMpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGN0eCA9IENUWChzZWxmKTsKKyAgICBpZiAoIW1wZF9xc2V0dHJhcHMoY3R4LCBmbGFncykpIHsKKyAgICAgICAgSU5URVJOQUxfRVJST1JfSU5UKCJjb250ZXh0X3NldHRyYXBzX2xpc3QiKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorY29udGV4dF9zZXR0cmFwc19kaWN0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdmFsdWUpCit7CisgICAgbXBkX2NvbnRleHRfdCAqY3R4OworICAgIHVpbnQzMl90IGZsYWdzOworCisgICAgaWYgKFB5RGVjU2lnbmFsRGljdF9DaGVjayh2YWx1ZSkpIHsKKyAgICAgICAgZmxhZ3MgPSBTZEZsYWdzKHZhbHVlKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGZsYWdzID0gZGljdF9hc19mbGFncyh2YWx1ZSk7CisgICAgICAgIGlmIChmbGFncyAmIERFQ19FUlJPUlMpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGN0eCA9IENUWChzZWxmKTsKKyAgICBpZiAoIW1wZF9xc2V0dHJhcHMoY3R4LCBmbGFncykpIHsKKyAgICAgICAgSU5URVJOQUxfRVJST1JfSU5UKCJjb250ZXh0X3NldHRyYXBzX2RpY3QiKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworI2lmZGVmIEVYVFJBX0ZVTkNUSU9OQUxJVFkKK3N0YXRpYyBpbnQKK2NvbnRleHRfc2V0c3RhdHVzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdmFsdWUsIHZvaWQgKmNsb3N1cmUgVU5VU0VEKQoreworICAgIG1wZF9jb250ZXh0X3QgKmN0eDsKKyAgICB1aW50MzJfdCBmbGFnczsKKworICAgIGZsYWdzID0gbG9uZ19hc19mbGFncyh2YWx1ZSk7CisgICAgaWYgKGZsYWdzICYgREVDX0VSUk9SUykgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgY3R4ID0gQ1RYKHNlbGYpOworICAgIGlmICghbXBkX3FzZXRzdGF0dXMoY3R4LCBmbGFncykpIHsKKyAgICAgICAgSU5URVJOQUxfRVJST1JfSU5UKCJjb250ZXh0X3NldHN0YXR1cyIpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK2NvbnRleHRfc2V0c3RhdHVzX2xpc3QoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp2YWx1ZSkKK3sKKyAgICBtcGRfY29udGV4dF90ICpjdHg7CisgICAgdWludDMyX3QgZmxhZ3M7CisKKyAgICBmbGFncyA9IGxpc3RfYXNfZmxhZ3ModmFsdWUpOworICAgIGlmIChmbGFncyAmIERFQ19FUlJPUlMpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGN0eCA9IENUWChzZWxmKTsKKyAgICBpZiAoIW1wZF9xc2V0c3RhdHVzKGN0eCwgZmxhZ3MpKSB7CisgICAgICAgIElOVEVSTkFMX0VSUk9SX0lOVCgiY29udGV4dF9zZXRzdGF0dXNfbGlzdCIpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Citjb250ZXh0X3NldHN0YXR1c19kaWN0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdmFsdWUpCit7CisgICAgbXBkX2NvbnRleHRfdCAqY3R4OworICAgIHVpbnQzMl90IGZsYWdzOworCisgICAgaWYgKFB5RGVjU2lnbmFsRGljdF9DaGVjayh2YWx1ZSkpIHsKKyAgICAgICAgZmxhZ3MgPSBTZEZsYWdzKHZhbHVlKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGZsYWdzID0gZGljdF9hc19mbGFncyh2YWx1ZSk7CisgICAgICAgIGlmIChmbGFncyAmIERFQ19FUlJPUlMpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGN0eCA9IENUWChzZWxmKTsKKyAgICBpZiAoIW1wZF9xc2V0c3RhdHVzKGN0eCwgZmxhZ3MpKSB7CisgICAgICAgIElOVEVSTkFMX0VSUk9SX0lOVCgiY29udGV4dF9zZXRzdGF0dXNfZGljdCIpOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Citjb250ZXh0X3NldGNsYW1wKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdmFsdWUsIHZvaWQgKmNsb3N1cmUgVU5VU0VEKQoreworICAgIG1wZF9jb250ZXh0X3QgKmN0eDsKKyAgICBtcGRfc3NpemVfdCB4OworCisgICAgeCA9IFB5TG9uZ19Bc1NzaXplX3QodmFsdWUpOworICAgIGlmICh4ID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBCT1VORFNfQ0hFQ0soeCwgSU5UX01JTiwgSU5UX01BWCk7CisKKyAgICBjdHggPSBDVFgoc2VsZik7CisgICAgaWYgKCFtcGRfcXNldGNsYW1wKGN0eCwgKGludCl4KSkgeworICAgICAgICByZXR1cm4gdmFsdWVfZXJyb3JfaW50KCJ2YWxpZCB2YWx1ZXMgZm9yIGNsYW1wIGFyZSAwIG9yIDEiKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworI2lmZGVmIEVYVFJBX0ZVTkNUSU9OQUxJVFkKK3N0YXRpYyBpbnQKK2NvbnRleHRfc2V0YWxsY3IoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp2YWx1ZSwgdm9pZCAqY2xvc3VyZSBVTlVTRUQpCit7CisgICAgbXBkX2NvbnRleHRfdCAqY3R4OworICAgIG1wZF9zc2l6ZV90IHg7CisKKyAgICB4ID0gUHlMb25nX0FzU3NpemVfdCh2YWx1ZSk7CisgICAgaWYgKHggPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIEJPVU5EU19DSEVDSyh4LCBJTlRfTUlOLCBJTlRfTUFYKTsKKworICAgIGN0eCA9IENUWChzZWxmKTsKKyAgICBpZiAoIW1wZF9xc2V0Y3IoY3R4LCAoaW50KXgpKSB7CisgICAgICAgIHJldHVybiB2YWx1ZV9lcnJvcl9pbnQoInZhbGlkIHZhbHVlcyBmb3IgX2FsbGNyIGFyZSAwIG9yIDEiKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCitzdGF0aWMgUHlPYmplY3QgKgorY29udGV4dF9nZXRhdHRyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqbmFtZSkKK3sKKyAgICBQeU9iamVjdCAqcmV0dmFsOworCisgICAgaWYgKFB5VW5pY29kZV9DaGVjayhuYW1lKSkgeworICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobmFtZSwgInRyYXBzIikgPT0gMCkgeworICAgICAgICAgICAgcmV0dmFsID0gKChQeURlY0NvbnRleHRPYmplY3QgKilzZWxmKS0+dHJhcHM7CisgICAgICAgICAgICBQeV9JTkNSRUYocmV0dmFsKTsKKyAgICAgICAgICAgIHJldHVybiByZXR2YWw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKG5hbWUsICJmbGFncyIpID09IDApIHsKKyAgICAgICAgICAgIHJldHZhbCA9ICgoUHlEZWNDb250ZXh0T2JqZWN0ICopc2VsZiktPmZsYWdzOworICAgICAgICAgICAgUHlfSU5DUkVGKHJldHZhbCk7CisgICAgICAgICAgICByZXR1cm4gcmV0dmFsOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyKHNlbGYsIG5hbWUpOworfQorCitzdGF0aWMgaW50Citjb250ZXh0X3NldGF0dHIoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpuYW1lLCBQeU9iamVjdCAqdmFsdWUpCit7CisgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0F0dHJpYnV0ZUVycm9yLAorICAgICAgICAgICAgImNvbnRleHQgYXR0cmlidXRlcyBjYW5ub3QgYmUgZGVsZXRlZCIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKFB5VW5pY29kZV9DaGVjayhuYW1lKSkgeworICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobmFtZSwgInRyYXBzIikgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIGNvbnRleHRfc2V0dHJhcHNfZGljdChzZWxmLCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKG5hbWUsICJmbGFncyIpID09IDApIHsKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0X3NldHN0YXR1c19kaWN0KHNlbGYsIHZhbHVlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBQeU9iamVjdF9HZW5lcmljU2V0QXR0cihzZWxmLCBuYW1lLCB2YWx1ZSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitjb250ZXh0X2NsZWFyX3RyYXBzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqZHVtbXkgVU5VU0VEKQoreworICAgIENUWChzZWxmKS0+dHJhcHMgPSAwOworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorY29udGV4dF9jbGVhcl9mbGFncyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmR1bW15IFVOVVNFRCkKK3sKKyAgICBDVFgoc2VsZiktPnN0YXR1cyA9IDA7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKKyNkZWZpbmUgREVDX0RGTFRfRU1BWCA5OTk5OTkKKyNkZWZpbmUgREVDX0RGTFRfRU1JTiAtOTk5OTk5CisKK3N0YXRpYyBtcGRfY29udGV4dF90IGRmbHRfY3R4ID0geworICAyOCwgREVDX0RGTFRfRU1BWCwgREVDX0RGTFRfRU1JTiwKKyAgTVBEX0lFRUVfSW52YWxpZF9vcGVyYXRpb258TVBEX0RpdmlzaW9uX2J5X3plcm98TVBEX092ZXJmbG93LAorICAwLCAwLCBNUERfUk9VTkRfSEFMRl9FVkVOLCAwLCAxCit9OworCitzdGF0aWMgUHlPYmplY3QgKgorY29udGV4dF9uZXcoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqYXJncyBVTlVTRUQsIFB5T2JqZWN0ICprd2RzIFVOVVNFRCkKK3sKKyAgICBQeURlY0NvbnRleHRPYmplY3QgKnNlbGYgPSBOVUxMOworICAgIG1wZF9jb250ZXh0X3QgKmN0eDsKKworICAgIGlmICh0eXBlID09ICZQeURlY0NvbnRleHRfVHlwZSkgeworICAgICAgICBzZWxmID0gUHlPYmplY3RfTmV3KFB5RGVjQ29udGV4dE9iamVjdCwgJlB5RGVjQ29udGV4dF9UeXBlKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHNlbGYgPSAoUHlEZWNDb250ZXh0T2JqZWN0ICopdHlwZS0+dHBfYWxsb2ModHlwZSwgMCk7CisgICAgfQorCisgICAgaWYgKHNlbGYgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBzZWxmLT50cmFwcyA9IFB5T2JqZWN0X0NhbGxPYmplY3QoKFB5T2JqZWN0ICopUHlEZWNTaWduYWxEaWN0X1R5cGUsIE5VTEwpOworICAgIGlmIChzZWxmLT50cmFwcyA9PSBOVUxMKSB7CisgICAgICAgIHNlbGYtPmZsYWdzID0gTlVMTDsKKyAgICAgICAgUHlfREVDUkVGKHNlbGYpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgc2VsZi0+ZmxhZ3MgPSBQeU9iamVjdF9DYWxsT2JqZWN0KChQeU9iamVjdCAqKVB5RGVjU2lnbmFsRGljdF9UeXBlLCBOVUxMKTsKKyAgICBpZiAoc2VsZi0+ZmxhZ3MgPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYoc2VsZik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGN0eCA9IENUWChzZWxmKTsKKworICAgIGlmIChkZWZhdWx0X2NvbnRleHRfdGVtcGxhdGUpIHsKKyAgICAgICAgKmN0eCA9ICpDVFgoZGVmYXVsdF9jb250ZXh0X3RlbXBsYXRlKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgICpjdHggPSBkZmx0X2N0eDsKKyAgICB9CisKKyAgICBTZEZsYWdBZGRyKHNlbGYtPnRyYXBzKSA9ICZjdHgtPnRyYXBzOworICAgIFNkRmxhZ0FkZHIoc2VsZi0+ZmxhZ3MpID0gJmN0eC0+c3RhdHVzOworCisgICAgQ3R4Q2FwcyhzZWxmKSA9IDE7CisjaWZuZGVmIFdJVEhPVVRfVEhSRUFEUworICAgIHNlbGYtPnRzdGF0ZSA9IE5VTEw7CisjZW5kaWYKKworICAgIHJldHVybiAoUHlPYmplY3QgKilzZWxmOworfQorCitzdGF0aWMgdm9pZAorY29udGV4dF9kZWFsbG9jKFB5RGVjQ29udGV4dE9iamVjdCAqc2VsZikKK3sKKyNpZm5kZWYgV0lUSE9VVF9USFJFQURTCisgICAgaWYgKHNlbGYgPT0gY2FjaGVkX2NvbnRleHQpIHsKKyAgICAgICAgY2FjaGVkX2NvbnRleHQgPSBOVUxMOworICAgIH0KKyNlbmRpZgorICAgIFB5X1hERUNSRUYoc2VsZi0+dHJhcHMpOworICAgIFB5X1hERUNSRUYoc2VsZi0+ZmxhZ3MpOworICAgIFB5X1RZUEUoc2VsZiktPnRwX2ZyZWUoc2VsZik7Cit9CisKK3N0YXRpYyBpbnQKK2dldHJvdW5kKFB5T2JqZWN0ICp2KQoreworICAgIGNvbnN0IGNoYXIgKnM7CisgICAgbG9uZyB4OworICAgIGludCBpOworCisgICAgaWYgKFB5TG9uZ19DaGVjayh2KSkgeworICAgICAgICB4ID0gUHlMb25nX0FzTG9uZyh2KTsKKyAgICAgICAgaWYgKHggPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIEJPVU5EU19DSEVDSyh4LCAwLCBJTlRfTUFYKTsKKyAgICAgICAgcmV0dXJuIChpbnQpeDsKKyAgICB9CisgICAgZWxzZSBpZiAoUHlVbmljb2RlX0NoZWNrKHYpKSB7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBNUERfUk9VTkRfR1VBUkQ7IGkrKykgeworICAgICAgICAgICAgcyA9IG1wZF9yb3VuZF9zdHJpbmdbaV07CisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcodiwgcykgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldHVybiBpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHR5cGVfZXJyb3JfaW50KCJpbnZhbGlkIHJvdW5kaW5nIG1vZGUiKTsKK30KKworc3RhdGljIGludAorY29udGV4dF9pbml0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geworICAgICAgInByZWMiLCAicm91bmRpbmciLCAiRW1pbiIsICJFbWF4IiwgImNhcGl0YWxzIiwgImNsYW1wIiwKKyAgICAgICJmbGFncyIsICJ0cmFwcyIsIE5VTEwKKyAgICB9OworICAgIFB5T2JqZWN0ICpyb3VuZGluZyA9IE5VTEw7CisgICAgUHlPYmplY3QgKnRyYXBzID0gTlVMTDsKKyAgICBQeU9iamVjdCAqc3RhdHVzID0gTlVMTDsKKyAgICBtcGRfY29udGV4dF90ICpjdHgsIHQ7CisgICAgaW50IGNhcGl0YWxzID0gMTsKKyAgICBpbnQgcmV0OworCisgICAgYXNzZXJ0KFB5VHVwbGVfQ2hlY2soYXJncykpOworICAgIGN0eCA9IENUWChzZWxmKTsKKworICAgIHQgPSAqY3R4OworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKAorICAgICAgICAgICAgYXJncywga3dkcywKKyAgICAgICAgICAgICJ8bk9ubmlpT08iLCBrd2xpc3QsCisgICAgICAgICAgICAmdC5wcmVjLCAmcm91bmRpbmcsICZ0LmVtaW4sICZ0LmVtYXgsICZjYXBpdGFscywgJnQuY2xhbXAsCisgICAgICAgICAgICAmc3RhdHVzLCAmdHJhcHMKKyAgICAgICAgICkpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAocm91bmRpbmcgIT0gTlVMTCkgeworICAgICAgICB0LnJvdW5kID0gZ2V0cm91bmQocm91bmRpbmcpOworICAgICAgICBpZiAodC5yb3VuZCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICghbXBkX3FzZXRwcmVjKGN0eCwgdC5wcmVjKSB8fAorICAgICAgICAhbXBkX3FzZXRlbWluKGN0eCwgdC5lbWluKSB8fAorICAgICAgICAhbXBkX3FzZXRlbWF4KGN0eCwgdC5lbWF4KSB8fAorICAgICAgICAhbXBkX3FzZXRjbGFtcChjdHgsIHQuY2xhbXApKSB7CisgICAgICAgIHJldHVybiB2YWx1ZV9lcnJvcl9pbnQoImludmFsaWQgY29udGV4dCIpOworICAgIH0KKyAgICBpZiAoIW1wZF9xc2V0cm91bmQoY3R4LCB0LnJvdW5kKSB8fAorICAgICAgICAhbXBkX3FzZXR0cmFwcyhjdHgsIHQudHJhcHMpIHx8CisgICAgICAgICFtcGRfcXNldHN0YXR1cyhjdHgsIHQuc3RhdHVzKSkgeworICAgICAgICByZXR1cm4gdHlwZV9lcnJvcl9pbnQoImludmFsaWQgY29udGV4dCIpOworICAgIH0KKworICAgIGlmIChjYXBpdGFscyAhPSAwICYmIGNhcGl0YWxzICE9IDEpIHsKKyAgICAgICAgcmV0dXJuIHZhbHVlX2Vycm9yX2ludCgiaW52YWxpZCBjb250ZXh0Iik7CisgICAgfQorICAgIEN0eENhcHMoc2VsZikgPSBjYXBpdGFsczsKKworICAgIGlmICh0cmFwcyAhPSBOVUxMKSB7CisgICAgICAgIGlmIChQeUxpc3RfQ2hlY2sodHJhcHMpKSB7CisgICAgICAgICAgICByZXQgPSBjb250ZXh0X3NldHRyYXBzX2xpc3Qoc2VsZiwgdHJhcHMpOworICAgICAgICB9CisjaWZkZWYgRVhUUkFfRlVOQ1RJT05BTElUWQorICAgICAgICBlbHNlIGlmIChQeUxvbmdfQ2hlY2sodHJhcHMpKSB7CisgICAgICAgICAgICByZXQgPSBjb250ZXh0X3NldHRyYXBzKHNlbGYsIHRyYXBzLCBOVUxMKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0ID0gY29udGV4dF9zZXR0cmFwc19kaWN0KHNlbGYsIHRyYXBzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAocmV0IDwgMCkgeworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoc3RhdHVzICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKFB5TGlzdF9DaGVjayhzdGF0dXMpKSB7CisgICAgICAgICAgICByZXQgPSBjb250ZXh0X3NldHN0YXR1c19saXN0KHNlbGYsIHN0YXR1cyk7CisgICAgICAgIH0KKyNpZmRlZiBFWFRSQV9GVU5DVElPTkFMSVRZCisgICAgICAgIGVsc2UgaWYgKFB5TG9uZ19DaGVjayhzdGF0dXMpKSB7CisgICAgICAgICAgICByZXQgPSBjb250ZXh0X3NldHN0YXR1cyhzZWxmLCBzdGF0dXMsIE5VTEwpOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXQgPSBjb250ZXh0X3NldHN0YXR1c19kaWN0KHNlbGYsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiByZXQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2NvbnRleHRfcmVwcihQeURlY0NvbnRleHRPYmplY3QgKnNlbGYpCit7CisgICAgbXBkX2NvbnRleHRfdCAqY3R4OworICAgIGNoYXIgZmxhZ3NbTVBEX01BWF9TSUdOQUxfTElTVF07CisgICAgY2hhciB0cmFwc1tNUERfTUFYX1NJR05BTF9MSVNUXTsKKyAgICBpbnQgbiwgbWVtOworCisgICAgYXNzZXJ0KFB5RGVjQ29udGV4dF9DaGVjayhzZWxmKSk7CisgICAgY3R4ID0gQ1RYKHNlbGYpOworCisgICAgbWVtID0gTVBEX01BWF9TSUdOQUxfTElTVDsKKyAgICBuID0gbXBkX2xzbnByaW50X3NpZ25hbHMoZmxhZ3MsIG1lbSwgY3R4LT5zdGF0dXMsIGRlY19zaWduYWxfc3RyaW5nKTsKKyAgICBpZiAobiA8IDAgfHwgbiA+PSBtZW0pIHsKKyAgICAgICAgSU5URVJOQUxfRVJST1JfUFRSKCJjb250ZXh0X3JlcHIiKTsKKyAgICB9CisKKyAgICBuID0gbXBkX2xzbnByaW50X3NpZ25hbHModHJhcHMsIG1lbSwgY3R4LT50cmFwcywgZGVjX3NpZ25hbF9zdHJpbmcpOworICAgIGlmIChuIDwgMCB8fCBuID49IG1lbSkgeworICAgICAgICBJTlRFUk5BTF9FUlJPUl9QVFIoImNvbnRleHRfcmVwciIpOworICAgIH0KKworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgKKyAgICAgICAgIkNvbnRleHQocHJlYz0lemQsIHJvdW5kaW5nPSVzLCBFbWluPSV6ZCwgRW1heD0lemQsICIKKyAgICAgICAgICAgICAgICAiY2FwaXRhbHM9JWQsIGNsYW1wPSVkLCBmbGFncz0lcywgdHJhcHM9JXMpIiwKKyAgICAgICAgIGN0eC0+cHJlYywgbXBkX3JvdW5kX3N0cmluZ1tjdHgtPnJvdW5kXSwgY3R4LT5lbWluLCBjdHgtPmVtYXgsCisgICAgICAgICBzZWxmLT5jYXBpdGFscywgY3R4LT5jbGFtcCwgZmxhZ3MsIHRyYXBzKTsKK30KKworc3RhdGljIHZvaWQKK2luaXRfYmFzaWNfY29udGV4dChQeU9iamVjdCAqdikKK3sKKyAgICBtcGRfY29udGV4dF90IGN0eCA9IGRmbHRfY3R4OworCisgICAgY3R4LnByZWMgPSA5OworICAgIGN0eC50cmFwcyB8PSAoTVBEX1VuZGVyZmxvd3xNUERfQ2xhbXBlZCk7CisgICAgY3R4LnJvdW5kID0gTVBEX1JPVU5EX0hBTEZfVVA7CisKKyAgICAqQ1RYKHYpID0gY3R4OworICAgIEN0eENhcHModikgPSAxOworfQorCitzdGF0aWMgdm9pZAoraW5pdF9leHRlbmRlZF9jb250ZXh0KFB5T2JqZWN0ICp2KQoreworICAgIG1wZF9jb250ZXh0X3QgY3R4ID0gZGZsdF9jdHg7CisKKyAgICBjdHgucHJlYyA9IDk7CisgICAgY3R4LnRyYXBzID0gMDsKKworICAgICpDVFgodikgPSBjdHg7CisgICAgQ3R4Q2Fwcyh2KSA9IDE7Cit9CisKKyNpZmRlZiBFWFRSQV9GVU5DVElPTkFMSVRZCisvKiBGYWN0b3J5IGZ1bmN0aW9uIGZvciBjcmVhdGluZyBJRUVFIGludGVyY2hhbmdlIGZvcm1hdCBjb250ZXh0cyAqLworc3RhdGljIFB5T2JqZWN0ICoKK2llZWVfY29udGV4dChQeU9iamVjdCAqZHVtbXkgVU5VU0VELCBQeU9iamVjdCAqdikKK3sKKyAgICBQeU9iamVjdCAqY29udGV4dDsKKyAgICBtcGRfc3NpemVfdCBiaXRzOworICAgIG1wZF9jb250ZXh0X3QgY3R4OworCisgICAgYml0cyA9IFB5TG9uZ19Bc1NzaXplX3Qodik7CisgICAgaWYgKGJpdHMgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKGJpdHMgPD0gMCB8fCBiaXRzID4gSU5UX01BWCkgeworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyAgICBpZiAobXBkX2llZWVfY29udGV4dCgmY3R4LCAoaW50KWJpdHMpIDwgMCkgeworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIGNvbnRleHQgPSBQeU9iamVjdF9DYWxsT2JqZWN0KChQeU9iamVjdCAqKSZQeURlY0NvbnRleHRfVHlwZSwgTlVMTCk7CisgICAgaWYgKGNvbnRleHQgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgKkNUWChjb250ZXh0KSA9IGN0eDsKKworICAgIHJldHVybiBjb250ZXh0OworCitlcnJvcjoKKyAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgImFyZ3VtZW50IG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMiwgd2l0aCBhIG1heGltdW0gb2YgJWQiLAorICAgICAgICBNUERfSUVFRV9DT05URVhUX01BWF9CSVRTKTsKKworICAgIHJldHVybiBOVUxMOworfQorI2VuZGlmCisKK3N0YXRpYyBQeU9iamVjdCAqCitjb250ZXh0X2NvcHkoUHlPYmplY3QgKnNlbGYpCit7CisgICAgUHlPYmplY3QgKmNvcHk7CisKKyAgICBjb3B5ID0gUHlPYmplY3RfQ2FsbE9iamVjdCgoUHlPYmplY3QgKikmUHlEZWNDb250ZXh0X1R5cGUsIE5VTEwpOworICAgIGlmIChjb3B5ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgKkNUWChjb3B5KSA9ICpDVFgoc2VsZik7CisgICAgQ1RYKGNvcHkpLT5uZXd0cmFwID0gMDsKKyAgICBDdHhDYXBzKGNvcHkpID0gQ3R4Q2FwcyhzZWxmKTsKKworICAgIHJldHVybiBjb3B5OworfQorCitzdGF0aWMgUHlPYmplY3QgKgorY29udGV4dF9yZWR1Y2UoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzIFVOVVNFRCkKK3sKKyAgICBQeU9iamVjdCAqZmxhZ3M7CisgICAgUHlPYmplY3QgKnRyYXBzOworICAgIFB5T2JqZWN0ICpyZXQ7CisgICAgbXBkX2NvbnRleHRfdCAqY3R4OworCisgICAgY3R4ID0gQ1RYKHNlbGYpOworCisgICAgZmxhZ3MgPSBzaWduYWxzX2FzX2xpc3QoY3R4LT5zdGF0dXMpOworICAgIGlmIChmbGFncyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICB0cmFwcyA9IHNpZ25hbHNfYXNfbGlzdChjdHgtPnRyYXBzKTsKKyAgICBpZiAodHJhcHMgPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYoZmxhZ3MpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXQgPSBQeV9CdWlsZFZhbHVlKAorICAgICAgICAgICAgIk8obnNubmlpT08pIiwKKyAgICAgICAgICAgIFB5X1RZUEUoc2VsZiksCisgICAgICAgICAgICBjdHgtPnByZWMsIG1wZF9yb3VuZF9zdHJpbmdbY3R4LT5yb3VuZF0sIGN0eC0+ZW1pbiwgY3R4LT5lbWF4LAorICAgICAgICAgICAgQ3R4Q2FwcyhzZWxmKSwgY3R4LT5jbGFtcCwgZmxhZ3MsIHRyYXBzCisgICAgKTsKKworICAgIFB5X0RFQ1JFRihmbGFncyk7CisgICAgUHlfREVDUkVGKHRyYXBzKTsKKyAgICByZXR1cm4gcmV0OworfQorCisKK3N0YXRpYyBQeUdldFNldERlZiBjb250ZXh0X2dldHNldHMgW10gPQoreworICB7ICJwcmVjIiwgKGdldHRlciljb250ZXh0X2dldHByZWMsIChzZXR0ZXIpY29udGV4dF9zZXRwcmVjLCBOVUxMLCBOVUxMfSwKKyAgeyAiRW1heCIsIChnZXR0ZXIpY29udGV4dF9nZXRlbWF4LCAoc2V0dGVyKWNvbnRleHRfc2V0ZW1heCwgTlVMTCwgTlVMTH0sCisgIHsgIkVtaW4iLCAoZ2V0dGVyKWNvbnRleHRfZ2V0ZW1pbiwgKHNldHRlciljb250ZXh0X3NldGVtaW4sIE5VTEwsIE5VTEx9LAorICB7ICJyb3VuZGluZyIsIChnZXR0ZXIpY29udGV4dF9nZXRyb3VuZCwgKHNldHRlciljb250ZXh0X3NldHJvdW5kLCBOVUxMLCBOVUxMfSwKKyAgeyAiY2FwaXRhbHMiLCAoZ2V0dGVyKWNvbnRleHRfZ2V0Y2FwaXRhbHMsIChzZXR0ZXIpY29udGV4dF9zZXRjYXBpdGFscywgTlVMTCwgTlVMTH0sCisgIHsgImNsYW1wIiwgKGdldHRlciljb250ZXh0X2dldGNsYW1wLCAoc2V0dGVyKWNvbnRleHRfc2V0Y2xhbXAsIE5VTEwsIE5VTEx9LAorI2lmZGVmIEVYVFJBX0ZVTkNUSU9OQUxJVFkKKyAgeyAiX2FsbGNyIiwgKGdldHRlciljb250ZXh0X2dldGFsbGNyLCAoc2V0dGVyKWNvbnRleHRfc2V0YWxsY3IsIE5VTEwsIE5VTEx9LAorICB7ICJfdHJhcHMiLCAoZ2V0dGVyKWNvbnRleHRfZ2V0dHJhcHMsIChzZXR0ZXIpY29udGV4dF9zZXR0cmFwcywgTlVMTCwgTlVMTH0sCisgIHsgIl9mbGFncyIsIChnZXR0ZXIpY29udGV4dF9nZXRzdGF0dXMsIChzZXR0ZXIpY29udGV4dF9zZXRzdGF0dXMsIE5VTEwsIE5VTEx9LAorI2VuZGlmCisgIHtOVUxMfQorfTsKKworCisjZGVmaW5lIENPTlRFWFRfQ0hFQ0sob2JqKSBcCisgICAgaWYgKCFQeURlY0NvbnRleHRfQ2hlY2sob2JqKSkgeyAgICAgICAgXAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAgIFwKKyAgICAgICAgICAgICJhcmd1bWVudCBtdXN0IGJlIGEgY29udGV4dCIpOyBcCisgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKworI2RlZmluZSBDT05URVhUX0NIRUNLX1ZBKG9iaikgXAorICAgIGlmICghUHlEZWNDb250ZXh0X0NoZWNrKG9iaikpIHsgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgICAgICAgICAgICBcCisgICAgICAgICAgICAib3B0aW9uYWwgYXJndW1lbnQgbXVzdCBiZSBhIGNvbnRleHQiKTsgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgIEdsb2JhbCwgdGhyZWFkIGxvY2FsIGFuZCB0ZW1wb3JhcnkgY29udGV4dHMgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgV0lUSE9VVF9USFJFQURTCisvKiBSZXR1cm4gYm9ycm93ZWQgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGNvbnRleHQuIFdoZW4gY29tcGlsZWQKKyAqIHdpdGhvdXQgdGhyZWFkcywgdGhpcyBpcyBhbHdheXMgdGhlIG1vZHVsZSBjb250ZXh0LiAqLworc3RhdGljIGludCBtb2R1bGVfY29udGV4dF9zZXQgPSAwOworc3RhdGljIFB5T2JqZWN0ICoKK2N1cnJlbnRfY29udGV4dCh2b2lkKQoreworICAgIC8qIEluIGRlY2ltYWwucHksIHRoZSBtb2R1bGUgY29udGV4dCBpcyBhdXRvbWF0aWNhbGx5IGluaXRpYWxpemVkCisgICAgICogZnJvbSB0aGUgRGVmYXVsdENvbnRleHQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4gVGhpcworICAgICAqIGNvbXBsaWNhdGVzIHRoZSBjb2RlIGFuZCBoYXMgYSBzcGVlZCBwZW5hbHR5IG9mIDEtMiUuICovCisgICAgaWYgKG1vZHVsZV9jb250ZXh0X3NldCkgeworICAgICAgICByZXR1cm4gbW9kdWxlX2NvbnRleHQ7CisgICAgfQorCisgICAgKkNUWChtb2R1bGVfY29udGV4dCkgPSAqQ1RYKGRlZmF1bHRfY29udGV4dF90ZW1wbGF0ZSk7CisgICAgQ1RYKG1vZHVsZV9jb250ZXh0KS0+c3RhdHVzID0gMDsKKyAgICBDVFgobW9kdWxlX2NvbnRleHQpLT5uZXd0cmFwID0gMDsKKyAgICBDdHhDYXBzKG1vZHVsZV9jb250ZXh0KSA9IEN0eENhcHMoZGVmYXVsdF9jb250ZXh0X3RlbXBsYXRlKTsKKworICAgIG1vZHVsZV9jb250ZXh0X3NldCA9IDE7CisgICAgcmV0dXJuIG1vZHVsZV9jb250ZXh0OworfQorCisvKiBjdHhvYmogOj0gYm9ycm93ZWQgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGNvbnRleHQgKi8KKyNkZWZpbmUgQ1VSUkVOVF9DT05URVhUKGN0eG9iaikgXAorICAgIGN0eG9iaiA9IGN1cnJlbnRfY29udGV4dCgpCisKKy8qIGN0eCA6PSBwb2ludGVyIHRvIHRoZSBtcGRfY29udGV4dF90IHN0cnVjdCBvZiB0aGUgY3VycmVudCBjb250ZXh0ICovCisjZGVmaW5lIENVUlJFTlRfQ09OVEVYVF9BRERSKGN0eCkgXAorICAgIGN0eCA9IENUWChjdXJyZW50X2NvbnRleHQoKSkKKworLyogUmV0dXJuIGEgbmV3IHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBjb250ZXh0ICovCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNfR2V0Q3VycmVudENvbnRleHQodm9pZCkKK3sKKyAgICBQeU9iamVjdCAqY29udGV4dDsKKworICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KTsKKworICAgIFB5X0lOQ1JFRihjb250ZXh0KTsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKworLyogU2V0IHRoZSBtb2R1bGUgY29udGV4dCB0byBhIG5ldyBjb250ZXh0LCBkZWNyZW1lbnQgb2xkIHJlZmVyZW5jZSAqLworc3RhdGljIFB5T2JqZWN0ICoKK1B5RGVjX1NldEN1cnJlbnRDb250ZXh0KFB5T2JqZWN0ICpzZWxmIFVOVVNFRCwgUHlPYmplY3QgKnYpCit7CisgICAgQ09OVEVYVF9DSEVDSyh2KTsKKworICAgIC8qIElmIHRoZSBuZXcgY29udGV4dCBpcyBvbmUgb2YgdGhlIHRlbXBsYXRlcywgbWFrZSBhIGNvcHkuCisgICAgICogVGhpcyBpcyB0aGUgY3VycmVudCBiZWhhdmlvciBvZiBkZWNpbWFsLnB5LiAqLworICAgIGlmICh2ID09IGRlZmF1bHRfY29udGV4dF90ZW1wbGF0ZSB8fAorICAgICAgICB2ID09IGJhc2ljX2NvbnRleHRfdGVtcGxhdGUgfHwKKyAgICAgICAgdiA9PSBleHRlbmRlZF9jb250ZXh0X3RlbXBsYXRlKSB7CisgICAgICAgIHYgPSBjb250ZXh0X2NvcHkodik7CisgICAgICAgIGlmICh2ID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIENUWCh2KS0+c3RhdHVzID0gMDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5X0lOQ1JFRih2KTsKKyAgICB9CisKKyAgICBQeV9YREVDUkVGKG1vZHVsZV9jb250ZXh0KTsKKyAgICBtb2R1bGVfY29udGV4dCA9IHY7CisgICAgbW9kdWxlX2NvbnRleHRfc2V0ID0gMTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKyNlbHNlCisvKgorICogVGhyZWFkIGxvY2FsIHN0b3JhZ2UgY3VycmVudGx5IGhhcyBhIHNwZWVkIHBlbmFsdHkgb2YgYWJvdXQgNCUuCisgKiBBbGwgZnVuY3Rpb25zIHRoYXQgbWFwIFB5dGhvbidzIGFyaXRobWV0aWMgb3BlcmF0b3JzIHRvIG1wZGVjaW1hbAorICogZnVuY3Rpb25zIGhhdmUgdG8gbG9vayB1cCB0aGUgY3VycmVudCBjb250ZXh0IGZvciBlYWNoIGFuZCBldmVyeQorICogb3BlcmF0aW9uLgorICovCisKKy8qIEdldCB0aGUgY29udGV4dCBmcm9tIHRoZSB0aHJlYWQgc3RhdGUgZGljdGlvbmFyeS4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitjdXJyZW50X2NvbnRleHRfZnJvbV9kaWN0KHZvaWQpCit7CisgICAgUHlPYmplY3QgKmRpY3Q7CisgICAgUHlPYmplY3QgKnRsX2NvbnRleHQ7CisgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlOworCisgICAgZGljdCA9IFB5VGhyZWFkU3RhdGVfR2V0RGljdCgpOworICAgIGlmIChkaWN0ID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICJjYW5ub3QgZ2V0IHRocmVhZCBzdGF0ZSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICB0bF9jb250ZXh0ID0gUHlEaWN0X0dldEl0ZW1XaXRoRXJyb3IoZGljdCwgdGxzX2NvbnRleHRfa2V5KTsKKyAgICBpZiAodGxfY29udGV4dCAhPSBOVUxMKSB7CisgICAgICAgIC8qIFdlIGFscmVhZHkgaGF2ZSBhIHRocmVhZCBsb2NhbCBjb250ZXh0LiAqLworICAgICAgICBDT05URVhUX0NIRUNLKHRsX2NvbnRleHQpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisKKyAgICAgICAgLyogU2V0IHVwIGEgbmV3IHRocmVhZCBsb2NhbCBjb250ZXh0LiAqLworICAgICAgICB0bF9jb250ZXh0ID0gY29udGV4dF9jb3B5KGRlZmF1bHRfY29udGV4dF90ZW1wbGF0ZSk7CisgICAgICAgIGlmICh0bF9jb250ZXh0ID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIENUWCh0bF9jb250ZXh0KS0+c3RhdHVzID0gMDsKKworICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW0oZGljdCwgdGxzX2NvbnRleHRfa2V5LCB0bF9jb250ZXh0KSA8IDApIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRih0bF9jb250ZXh0KTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIFB5X0RFQ1JFRih0bF9jb250ZXh0KTsKKyAgICB9CisKKyAgICAvKiBDYWNoZSB0aGUgY29udGV4dCBvZiB0aGUgY3VycmVudCB0aHJlYWQsIGFzc3VtaW5nIHRoYXQgaXQKKyAgICAgKiB3aWxsIGJlIGFjY2Vzc2VkIHNldmVyYWwgdGltZXMgYmVmb3JlIGEgdGhyZWFkIHN3aXRjaC4gKi8KKyAgICB0c3RhdGUgPSBQeVRocmVhZFN0YXRlX0dFVCgpOworICAgIGlmICh0c3RhdGUpIHsKKyAgICAgICAgY2FjaGVkX2NvbnRleHQgPSAoUHlEZWNDb250ZXh0T2JqZWN0ICopdGxfY29udGV4dDsKKyAgICAgICAgY2FjaGVkX2NvbnRleHQtPnRzdGF0ZSA9IHRzdGF0ZTsKKyAgICB9CisKKyAgICAvKiBCb3Jyb3dlZCByZWZlcmVuY2Ugd2l0aCByZWZjb3VudD09MSAqLworICAgIHJldHVybiB0bF9jb250ZXh0OworfQorCisvKiBSZXR1cm4gYm9ycm93ZWQgcmVmZXJlbmNlIHRvIHRocmVhZCBsb2NhbCBjb250ZXh0LiAqLworc3RhdGljIFB5T2JqZWN0ICoKK2N1cnJlbnRfY29udGV4dCh2b2lkKQoreworICAgIFB5VGhyZWFkU3RhdGUgKnRzdGF0ZTsKKworICAgIHRzdGF0ZSA9IFB5VGhyZWFkU3RhdGVfR0VUKCk7CisgICAgaWYgKGNhY2hlZF9jb250ZXh0ICYmIGNhY2hlZF9jb250ZXh0LT50c3RhdGUgPT0gdHN0YXRlKSB7CisgICAgICAgIHJldHVybiAoUHlPYmplY3QgKiljYWNoZWRfY29udGV4dDsKKyAgICB9CisKKyAgICByZXR1cm4gY3VycmVudF9jb250ZXh0X2Zyb21fZGljdCgpOworfQorCisvKiBjdHhvYmogOj0gYm9ycm93ZWQgcmVmZXJlbmNlIHRvIHRoZSBjdXJyZW50IGNvbnRleHQgKi8KKyNkZWZpbmUgQ1VSUkVOVF9DT05URVhUKGN0eG9iaikgXAorICAgIGN0eG9iaiA9IGN1cnJlbnRfY29udGV4dCgpOyBcCisgICAgaWYgKGN0eG9iaiA9PSBOVUxMKSB7ICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgXAorICAgIH0KKworLyogY3R4IDo9IHBvaW50ZXIgdG8gdGhlIG1wZF9jb250ZXh0X3Qgc3RydWN0IG9mIHRoZSBjdXJyZW50IGNvbnRleHQgKi8KKyNkZWZpbmUgQ1VSUkVOVF9DT05URVhUX0FERFIoY3R4KSB7IFwKKyAgICBQeU9iamVjdCAqX2NfdF94X29fYl9qID0gY3VycmVudF9jb250ZXh0KCk7IFwKKyAgICBpZiAoX2NfdF94X29fYl9qID09IE5VTEwpIHsgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBjdHggPSBDVFgoX2NfdF94X29fYl9qKTsgICAgICAgICAgICAgICAgICAgIFwKK30KKworLyogUmV0dXJuIGEgbmV3IHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBjb250ZXh0ICovCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNfR2V0Q3VycmVudENvbnRleHQodm9pZCkKK3sKKyAgICBQeU9iamVjdCAqY29udGV4dDsKKworICAgIGNvbnRleHQgPSBjdXJyZW50X2NvbnRleHQoKTsKKyAgICBpZiAoY29udGV4dCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIFB5X0lOQ1JFRihjb250ZXh0KTsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKworLyogU2V0IHRoZSB0aHJlYWQgbG9jYWwgY29udGV4dCB0byBhIG5ldyBjb250ZXh0LCBkZWNyZW1lbnQgb2xkIHJlZmVyZW5jZSAqLworc3RhdGljIFB5T2JqZWN0ICoKK1B5RGVjX1NldEN1cnJlbnRDb250ZXh0KFB5T2JqZWN0ICpzZWxmIFVOVVNFRCwgUHlPYmplY3QgKnYpCit7CisgICAgUHlPYmplY3QgKmRpY3Q7CisKKyAgICBDT05URVhUX0NIRUNLKHYpOworCisgICAgZGljdCA9IFB5VGhyZWFkU3RhdGVfR2V0RGljdCgpOworICAgIGlmIChkaWN0ID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICJjYW5ub3QgZ2V0IHRocmVhZCBzdGF0ZSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBJZiB0aGUgbmV3IGNvbnRleHQgaXMgb25lIG9mIHRoZSB0ZW1wbGF0ZXMsIG1ha2UgYSBjb3B5LgorICAgICAqIFRoaXMgaXMgdGhlIGN1cnJlbnQgYmVoYXZpb3Igb2YgZGVjaW1hbC5weS4gKi8KKyAgICBpZiAodiA9PSBkZWZhdWx0X2NvbnRleHRfdGVtcGxhdGUgfHwKKyAgICAgICAgdiA9PSBiYXNpY19jb250ZXh0X3RlbXBsYXRlIHx8CisgICAgICAgIHYgPT0gZXh0ZW5kZWRfY29udGV4dF90ZW1wbGF0ZSkgeworICAgICAgICB2ID0gY29udGV4dF9jb3B5KHYpOworICAgICAgICBpZiAodiA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBDVFgodiktPnN0YXR1cyA9IDA7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBQeV9JTkNSRUYodik7CisgICAgfQorCisgICAgY2FjaGVkX2NvbnRleHQgPSBOVUxMOworICAgIGlmIChQeURpY3RfU2V0SXRlbShkaWN0LCB0bHNfY29udGV4dF9rZXksIHYpIDwgMCkgeworICAgICAgICBQeV9ERUNSRUYodik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIFB5X0RFQ1JFRih2KTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKyNlbmRpZgorCisvKiBDb250ZXh0IG1hbmFnZXIgb2JqZWN0IGZvciB0aGUgJ3dpdGgnIHN0YXRlbWVudC4gVGhlIG1hbmFnZXIKKyAqIG93bnMgb25lIHJlZmVyZW5jZSB0byB0aGUgZ2xvYmFsIChvdXRlcikgY29udGV4dCBhbmQgb25lCisgKiB0byB0aGUgbG9jYWwgKGlubmVyKSBjb250ZXh0LiAqLworc3RhdGljIFB5T2JqZWN0ICoKK2N0eG1hbmFnZXJfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSBVTlVTRUQsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5RGVjQ29udGV4dE1hbmFnZXJPYmplY3QgKnNlbGY7CisgICAgUHlPYmplY3QgKmxvY2FsOworICAgIFB5T2JqZWN0ICpnbG9iYWw7CisKKyAgICBDVVJSRU5UX0NPTlRFWFQoZ2xvYmFsKTsKKyAgICBsb2NhbCA9IGdsb2JhbDsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxPIiwgJmxvY2FsKSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgQ09OVEVYVF9DSEVDS19WQShsb2NhbCk7CisKKyAgICBzZWxmID0gUHlPYmplY3RfTmV3KFB5RGVjQ29udGV4dE1hbmFnZXJPYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAmUHlEZWNDb250ZXh0TWFuYWdlcl9UeXBlKTsKKyAgICBpZiAoc2VsZiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHNlbGYtPmxvY2FsID0gY29udGV4dF9jb3B5KGxvY2FsKTsKKyAgICBpZiAoc2VsZi0+bG9jYWwgPT0gTlVMTCkgeworICAgICAgICBzZWxmLT5nbG9iYWwgPSBOVUxMOworICAgICAgICBQeV9ERUNSRUYoc2VsZik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBzZWxmLT5nbG9iYWwgPSBnbG9iYWw7CisgICAgUHlfSU5DUkVGKHNlbGYtPmdsb2JhbCk7CisKKyAgICByZXR1cm4gKFB5T2JqZWN0ICopc2VsZjsKK30KKworc3RhdGljIHZvaWQKK2N0eG1hbmFnZXJfZGVhbGxvYyhQeURlY0NvbnRleHRNYW5hZ2VyT2JqZWN0ICpzZWxmKQoreworICAgIFB5X1hERUNSRUYoc2VsZi0+bG9jYWwpOworICAgIFB5X1hERUNSRUYoc2VsZi0+Z2xvYmFsKTsKKyAgICBQeU9iamVjdF9EZWwoc2VsZik7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitjdHhtYW5hZ2VyX3NldF9sb2NhbChQeURlY0NvbnRleHRNYW5hZ2VyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncyBVTlVTRUQpCit7CisgICAgUHlPYmplY3QgKnJldDsKKworICAgIHJldCA9IFB5RGVjX1NldEN1cnJlbnRDb250ZXh0KE5VTEwsIHNlbGYtPmxvY2FsKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIFB5X0RFQ1JFRihyZXQpOworCisgICAgUHlfSU5DUkVGKHNlbGYtPmxvY2FsKTsKKyAgICByZXR1cm4gc2VsZi0+bG9jYWw7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitjdHhtYW5hZ2VyX3Jlc3RvcmVfZ2xvYmFsKFB5RGVjQ29udGV4dE1hbmFnZXJPYmplY3QgKnNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICphcmdzIFVOVVNFRCkKK3sKKyAgICBQeU9iamVjdCAqcmV0OworCisgICAgcmV0ID0gUHlEZWNfU2V0Q3VycmVudENvbnRleHQoTlVMTCwgc2VsZi0+Z2xvYmFsKTsKKyAgICBpZiAocmV0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIFB5X0RFQ1JFRihyZXQpOworCisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKKworc3RhdGljIFB5TWV0aG9kRGVmIGN0eG1hbmFnZXJfbWV0aG9kc1tdID0geworICB7Il9fZW50ZXJfXyIsIChQeUNGdW5jdGlvbiljdHhtYW5hZ2VyX3NldF9sb2NhbCwgTUVUSF9OT0FSR1MsIE5VTEx9LAorICB7Il9fZXhpdF9fIiwgKFB5Q0Z1bmN0aW9uKWN0eG1hbmFnZXJfcmVzdG9yZV9nbG9iYWwsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgIHtOVUxMLCBOVUxMfQorfTsKKworc3RhdGljIFB5VHlwZU9iamVjdCBQeURlY0NvbnRleHRNYW5hZ2VyX1R5cGUgPQoreworICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQorICAgICJkZWNpbWFsLkNvbnRleHRNYW5hZ2VyIiwgICAgICAgICAgICAgICAvKiB0cF9uYW1lICovCisgICAgc2l6ZW9mKFB5RGVjQ29udGV4dE1hbmFnZXJPYmplY3QpLCAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLworICAgIChkZXN0cnVjdG9yKSBjdHhtYW5hZ2VyX2RlYWxsb2MsICAgICAgICAvKiB0cF9kZWFsbG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCisgICAgKGdldGF0dHJmdW5jKSAwLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KKyAgICAoc2V0YXR0cmZ1bmMpIDAsICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZlZCAqLworICAgIChyZXByZnVuYykgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KKyAgICAoZ2V0YXR0cm9mdW5jKSBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAoc2V0YXR0cm9mdW5jKSAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAoUHlCdWZmZXJQcm9jcyAqKSAwLCAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfYnVmZmVyICovCisgICAgUHlfVFBGTEFHU19ERUZBVUxULCAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCisgICAgY3R4bWFuYWdlcl9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3IERlY2ltYWwgT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNUeXBlX05ldyhQeVR5cGVPYmplY3QgKnR5cGUpCit7CisgICAgUHlEZWNPYmplY3QgKmRlYzsKKworICAgIGlmICh0eXBlID09ICZQeURlY19UeXBlKSB7CisgICAgICAgIGRlYyA9IFB5T2JqZWN0X05ldyhQeURlY09iamVjdCwgJlB5RGVjX1R5cGUpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgZGVjID0gKFB5RGVjT2JqZWN0ICopdHlwZS0+dHBfYWxsb2ModHlwZSwgMCk7CisgICAgfQorICAgIGlmIChkZWMgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBkZWMtPmhhc2ggPSAtMTsKKworICAgIE1QRChkZWMpLT5mbGFncyA9IE1QRF9TVEFUSUN8TVBEX1NUQVRJQ19EQVRBOworICAgIE1QRChkZWMpLT5leHAgPSAwOworICAgIE1QRChkZWMpLT5kaWdpdHMgPSAwOworICAgIE1QRChkZWMpLT5sZW4gPSAwOworICAgIE1QRChkZWMpLT5hbGxvYyA9IF9QeV9ERUNfTUlOQUxMT0M7CisgICAgTVBEKGRlYyktPmRhdGEgPSBkZWMtPmRhdGE7CisKKyAgICByZXR1cm4gKFB5T2JqZWN0ICopZGVjOworfQorI2RlZmluZSBkZWNfYWxsb2MoKSBQeURlY1R5cGVfTmV3KCZQeURlY19UeXBlKQorCitzdGF0aWMgdm9pZAorZGVjX2RlYWxsb2MoUHlPYmplY3QgKmRlYykKK3sKKyAgICBtcGRfZGVsKE1QRChkZWMpKTsKKyAgICBQeV9UWVBFKGRlYyktPnRwX2ZyZWUoZGVjKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJzaW9ucyB0byBEZWNpbWFsICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1B5X0xPQ0FMX0lOTElORShpbnQpCitpc19zcGFjZShlbnVtIFB5VW5pY29kZV9LaW5kIGtpbmQsIHZvaWQgKmRhdGEsIFB5X3NzaXplX3QgcG9zKQoreworICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBwb3MpOworICAgIHJldHVybiBQeV9VTklDT0RFX0lTU1BBQ0UoY2gpOworfQorCisvKiBSZXR1cm4gdGhlIEFTQ0lJIHJlcHJlc2VudGF0aW9uIG9mIGEgbnVtZXJpYyBVbmljb2RlIHN0cmluZy4gVGhlIG51bWVyaWMKKyAgIHN0cmluZyBtYXkgY29udGFpbiBhc2NpaSBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSBbMSwgMTI3XSwgYW55IFVuaWNvZGUKKyAgIHNwYWNlIGFuZCBhbnkgdW5pY29kZSBkaWdpdC4gSWYgc3RyaXBfd3MgaXMgdHJ1ZSwgbGVhZGluZyBhbmQgdHJhaWxpbmcKKyAgIHdoaXRlc3BhY2UgaXMgc3RyaXBwZWQuCisKKyAgIFJldHVybiBOVUxMIGlmIG1hbGxvYyBmYWlscyBhbmQgYW4gZW1wdHkgc3RyaW5nIGlmIGludmFsaWQgY2hhcmFjdGVycworICAgYXJlIGZvdW5kLiAqLworc3RhdGljIGNoYXIgKgorbnVtZXJpY19hc19hc2NpaShjb25zdCBQeU9iamVjdCAqdSwgaW50IHN0cmlwX3dzKQoreworICAgIGVudW0gUHlVbmljb2RlX0tpbmQga2luZDsKKyAgICB2b2lkICpkYXRhOworICAgIFB5X1VDUzQgY2g7CisgICAgY2hhciAqcmVzLCAqY3A7CisgICAgUHlfc3NpemVfdCBqLCBsZW47CisgICAgaW50IGQ7CisKKyAgICBhc3NlcnQoUHlVbmljb2RlX0lTX1JFQURZKHUpKTsKKworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh1KTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEodSk7CisgICAgbGVuID0gIFB5VW5pY29kZV9HRVRfTEVOR1RIKHUpOworCisgICAgY3AgPSByZXMgPSBQeU1lbV9NYWxsb2MobGVuKzEpOworICAgIGlmIChyZXMgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBqID0gMDsKKyAgICBpZiAoc3RyaXBfd3MpIHsKKyAgICAgICAgd2hpbGUgKGxlbiA+IDAgJiYgaXNfc3BhY2Uoa2luZCwgZGF0YSwgbGVuLTEpKSB7CisgICAgICAgICAgICBsZW4tLTsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoaiA8IGxlbiAmJiBpc19zcGFjZShraW5kLCBkYXRhLCBqKSkgeworICAgICAgICAgICAgaisrOworICAgICAgICB9CisgICAgfQorCisgICAgZm9yICg7IGogPCBsZW47IGorKykgeworICAgICAgICBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGopOworICAgICAgICBpZiAoMCA8IGNoICYmIGNoIDw9IDEyNykgeworICAgICAgICAgICAgKmNwKysgPSBjaDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGlmIChQeV9VTklDT0RFX0lTU1BBQ0UoY2gpKSB7CisgICAgICAgICAgICAqY3ArKyA9ICcgJzsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIGQgPSBQeV9VTklDT0RFX1RPREVDSU1BTChjaCk7CisgICAgICAgIGlmIChkIDwgMCkgeworICAgICAgICAgICAgLyogZW1wdHkgc3RyaW5nIHRyaWdnZXJzIENvbnZlcnNpb25TeW50YXggKi8KKyAgICAgICAgICAgICpyZXMgPSAnXDAnOworICAgICAgICAgICAgcmV0dXJuIHJlczsKKyAgICAgICAgfQorICAgICAgICAqY3ArKyA9ICcwJyArIGQ7CisgICAgfQorICAgICpjcCA9ICdcMCc7CisgICAgcmV0dXJuIHJlczsKK30KKworLyogUmV0dXJuIGEgbmV3IFB5RGVjT2JqZWN0IG9yIGEgc3VidHlwZSBmcm9tIGEgQyBzdHJpbmcuIFVzZSB0aGUgY29udGV4dAorICAgZHVyaW5nIGNvbnZlcnNpb24uICovCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNUeXBlX0Zyb21DU3RyaW5nKFB5VHlwZU9iamVjdCAqdHlwZSwgY29uc3QgY2hhciAqcywKKyAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqY29udGV4dCkKK3sKKyAgICBQeU9iamVjdCAqZGVjOworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisKKyAgICBkZWMgPSBQeURlY1R5cGVfTmV3KHR5cGUpOworICAgIGlmIChkZWMgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtcGRfcXNldF9zdHJpbmcoTVBEKGRlYyksIHMsIENUWChjb250ZXh0KSwgJnN0YXR1cyk7CisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeworICAgICAgICBQeV9ERUNSRUYoZGVjKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBkZWM7Cit9CisKKy8qIFJldHVybiBhIG5ldyBQeURlY09iamVjdCBvciBhIHN1YnR5cGUgZnJvbSBhIEMgc3RyaW5nLiBBdHRlbXB0IGV4YWN0CisgICBjb252ZXJzaW9uLiBJZiB0aGUgb3BlcmFuZCBjYW5ub3QgYmUgY29udmVydGVkIGV4YWN0bHksIHNldAorICAgSW52YWxpZE9wZXJhdGlvbi4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitQeURlY1R5cGVfRnJvbUNTdHJpbmdFeGFjdChQeVR5cGVPYmplY3QgKnR5cGUsIGNvbnN0IGNoYXIgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqY29udGV4dCkKK3sKKyAgICBQeU9iamVjdCAqZGVjOworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisgICAgbXBkX2NvbnRleHRfdCBtYXhjdHg7CisKKyAgICBkZWMgPSBQeURlY1R5cGVfTmV3KHR5cGUpOworICAgIGlmIChkZWMgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtcGRfbWF4Y29udGV4dCgmbWF4Y3R4KTsKKworICAgIG1wZF9xc2V0X3N0cmluZyhNUEQoZGVjKSwgcywgJm1heGN0eCwgJnN0YXR1cyk7CisgICAgaWYgKHN0YXR1cyAmIChNUERfSW5leGFjdHxNUERfUm91bmRlZHxNUERfQ2xhbXBlZCkpIHsKKyAgICAgICAgLyogd2Ugd2FudCBleGFjdCByZXN1bHRzICovCisgICAgICAgIG1wZF9zZXRlcnJvcihNUEQoZGVjKSwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCAmc3RhdHVzKTsKKyAgICB9CisgICAgc3RhdHVzICY9IE1QRF9FcnJvcnM7CisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeworICAgICAgICBQeV9ERUNSRUYoZGVjKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIGRlYzsKK30KKworLyogUmV0dXJuIGEgbmV3IFB5RGVjT2JqZWN0IG9yIGEgc3VidHlwZSBmcm9tIGEgUHlVbmljb2RlT2JqZWN0LiAqLworc3RhdGljIFB5T2JqZWN0ICoKK1B5RGVjVHlwZV9Gcm9tVW5pY29kZShQeVR5cGVPYmplY3QgKnR5cGUsIGNvbnN0IFB5T2JqZWN0ICp1LAorICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpjb250ZXh0KQoreworICAgIFB5T2JqZWN0ICpkZWM7CisgICAgY2hhciAqczsKKworICAgIHMgPSBudW1lcmljX2FzX2FzY2lpKHUsIDApOworICAgIGlmIChzID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZGVjID0gUHlEZWNUeXBlX0Zyb21DU3RyaW5nKHR5cGUsIHMsIGNvbnRleHQpOworICAgIFB5TWVtX0ZyZWUocyk7CisgICAgcmV0dXJuIGRlYzsKK30KKworLyogUmV0dXJuIGEgbmV3IFB5RGVjT2JqZWN0IG9yIGEgc3VidHlwZSBmcm9tIGEgUHlVbmljb2RlT2JqZWN0LiBBdHRlbXB0IGV4YWN0CisgKiBjb252ZXJzaW9uLiBJZiB0aGUgY29udmVyc2lvbiBpcyBub3QgZXhhY3QsIGZhaWwgd2l0aCBJbnZhbGlkT3BlcmF0aW9uLgorICogQWxsb3cgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSBpbiB0aGUgaW5wdXQgb3BlcmFuZC4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitQeURlY1R5cGVfRnJvbVVuaWNvZGVFeGFjdFdTKFB5VHlwZU9iamVjdCAqdHlwZSwgY29uc3QgUHlPYmplY3QgKnUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpjb250ZXh0KQoreworICAgIFB5T2JqZWN0ICpkZWM7CisgICAgY2hhciAqczsKKworICAgIHMgPSBudW1lcmljX2FzX2FzY2lpKHUsIDEpOworICAgIGlmIChzID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZGVjID0gUHlEZWNUeXBlX0Zyb21DU3RyaW5nRXhhY3QodHlwZSwgcywgY29udGV4dCk7CisgICAgUHlNZW1fRnJlZShzKTsKKyAgICByZXR1cm4gZGVjOworfQorCisvKiBTZXQgUHlEZWNPYmplY3QgZnJvbSB0cmlwbGUgd2l0aG91dCBhbnkgZXJyb3IgY2hlY2tpbmcuICovCitQeV9MT0NBTF9JTkxJTkUodm9pZCkKK19kZWNfc2V0dHJpcGxlKFB5T2JqZWN0ICpkZWMsIHVpbnQ4X3Qgc2lnbiwgdWludDMyX3QgdiwgbXBkX3NzaXplX3QgZXhwKQoreworCisjaWZkZWYgQ09ORklHXzY0CisgICAgTVBEKGRlYyktPmRhdGFbMF0gPSB2OworICAgIE1QRChkZWMpLT5sZW4gPSAxOworI2Vsc2UKKyAgICB1aW50MzJfdCBxLCByOworICAgIHEgPSB2IC8gTVBEX1JBRElYOworICAgIHIgPSB2IC0gcSAqIE1QRF9SQURJWDsKKyAgICBNUEQoZGVjKS0+ZGF0YVsxXSA9IHE7CisgICAgTVBEKGRlYyktPmRhdGFbMF0gPSByOworICAgIE1QRChkZWMpLT5sZW4gPSBxID8gMiA6IDE7CisjZW5kaWYKKyAgICBtcGRfc2V0X2ZsYWdzKE1QRChkZWMpLCBzaWduKTsKKyAgICBNUEQoZGVjKS0+ZXhwID0gZXhwOworICAgIG1wZF9zZXRkaWdpdHMoTVBEKGRlYykpOworfQorCisvKiBSZXR1cm4gYSBuZXcgUHlEZWNPYmplY3QgZnJvbSBhbiBtcGRfc3NpemVfdC4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitQeURlY1R5cGVfRnJvbVNzaXplKFB5VHlwZU9iamVjdCAqdHlwZSwgbXBkX3NzaXplX3QgdiwgUHlPYmplY3QgKmNvbnRleHQpCit7CisgICAgUHlPYmplY3QgKmRlYzsKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworCisgICAgZGVjID0gUHlEZWNUeXBlX05ldyh0eXBlKTsKKyAgICBpZiAoZGVjID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbXBkX3FzZXRfc3NpemUoTVBEKGRlYyksIHYsIENUWChjb250ZXh0KSwgJnN0YXR1cyk7CisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeworICAgICAgICBQeV9ERUNSRUYoZGVjKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBkZWM7Cit9CisKKy8qIFJldHVybiBhIG5ldyBQeURlY09iamVjdCBmcm9tIGFuIG1wZF9zc2l6ZV90LiBDb252ZXJzaW9uIGlzIGV4YWN0LiAqLworc3RhdGljIFB5T2JqZWN0ICoKK1B5RGVjVHlwZV9Gcm9tU3NpemVFeGFjdChQeVR5cGVPYmplY3QgKnR5cGUsIG1wZF9zc2l6ZV90IHYsIFB5T2JqZWN0ICpjb250ZXh0KQoreworICAgIFB5T2JqZWN0ICpkZWM7CisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsKKyAgICBtcGRfY29udGV4dF90IG1heGN0eDsKKworICAgIGRlYyA9IFB5RGVjVHlwZV9OZXcodHlwZSk7CisgICAgaWYgKGRlYyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG1wZF9tYXhjb250ZXh0KCZtYXhjdHgpOworCisgICAgbXBkX3FzZXRfc3NpemUoTVBEKGRlYyksIHYsICZtYXhjdHgsICZzdGF0dXMpOworICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsKKyAgICAgICAgUHlfREVDUkVGKGRlYyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gZGVjOworfQorCisvKiBDb252ZXJ0IGZyb20gYSBQeUxvbmdPYmplY3QuIFRoZSBjb250ZXh0IGlzIG5vdCBtb2RpZmllZDsgZmxhZ3Mgc2V0CisgICBkdXJpbmcgY29udmVyc2lvbiBhcmUgYWNjdW11bGF0ZWQgaW4gdGhlIHN0YXR1cyBwYXJhbWV0ZXIuICovCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX2Zyb21fbG9uZyhQeVR5cGVPYmplY3QgKnR5cGUsIGNvbnN0IFB5T2JqZWN0ICp2LAorICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgUHlPYmplY3QgKmRlYzsKKyAgICBQeUxvbmdPYmplY3QgKmwgPSAoUHlMb25nT2JqZWN0ICopdjsKKyAgICBQeV9zc2l6ZV90IG9iX3NpemU7CisgICAgc2l6ZV90IGxlbjsKKyAgICB1aW50OF90IHNpZ247CisKKyAgICBkZWMgPSBQeURlY1R5cGVfTmV3KHR5cGUpOworICAgIGlmIChkZWMgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBvYl9zaXplID0gUHlfU0laRShsKTsKKyAgICBpZiAob2Jfc2l6ZSA9PSAwKSB7CisgICAgICAgIF9kZWNfc2V0dHJpcGxlKGRlYywgTVBEX1BPUywgMCwgMCk7CisgICAgICAgIHJldHVybiBkZWM7CisgICAgfQorCisgICAgaWYgKG9iX3NpemUgPCAwKSB7CisgICAgICAgIGxlbiA9IC1vYl9zaXplOworICAgICAgICBzaWduID0gTVBEX05FRzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGxlbiA9IG9iX3NpemU7CisgICAgICAgIHNpZ24gPSBNUERfUE9TOworICAgIH0KKworICAgIGlmIChsZW4gPT0gMSkgeworICAgICAgICBfZGVjX3NldHRyaXBsZShkZWMsIHNpZ24sICpsLT5vYl9kaWdpdCwgMCk7CisgICAgICAgIG1wZF9xZmluYWxpemUoTVBEKGRlYyksIGN0eCwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuIGRlYzsKKyAgICB9CisKKyNpZiBQWUxPTkdfQklUU19JTl9ESUdJVCA9PSAzMAorICAgIG1wZF9xaW1wb3J0X3UzMihNUEQoZGVjKSwgbC0+b2JfZGlnaXQsIGxlbiwgc2lnbiwgUHlMb25nX0JBU0UsCisgICAgICAgICAgICAgICAgICAgIGN0eCwgc3RhdHVzKTsKKyNlbGlmIFBZTE9OR19CSVRTX0lOX0RJR0lUID09IDE1CisgICAgbXBkX3FpbXBvcnRfdTE2KE1QRChkZWMpLCBsLT5vYl9kaWdpdCwgbGVuLCBzaWduLCBQeUxvbmdfQkFTRSwKKyAgICAgICAgICAgICAgICAgICAgY3R4LCBzdGF0dXMpOworI2Vsc2UKKyAgI2Vycm9yICJQWUxPTkdfQklUU19JTl9ESUdJVCBzaG91bGQgYmUgMTUgb3IgMzAiCisjZW5kaWYKKworICAgIHJldHVybiBkZWM7Cit9CisKKy8qIFJldHVybiBhIG5ldyBQeURlY09iamVjdCBmcm9tIGEgUHlMb25nT2JqZWN0LiBVc2UgdGhlIGNvbnRleHQgZm9yCisgICBjb252ZXJzaW9uLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK1B5RGVjVHlwZV9Gcm9tTG9uZyhQeVR5cGVPYmplY3QgKnR5cGUsIGNvbnN0IFB5T2JqZWN0ICpweWxvbmcsCisgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmNvbnRleHQpCit7CisgICAgUHlPYmplY3QgKmRlYzsKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworCisgICAgZGVjID0gZGVjX2Zyb21fbG9uZyh0eXBlLCBweWxvbmcsIENUWChjb250ZXh0KSwgJnN0YXR1cyk7CisgICAgaWYgKGRlYyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsKKyAgICAgICAgUHlfREVDUkVGKGRlYyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBkZWM7Cit9CisKKy8qIFJldHVybiBhIG5ldyBQeURlY09iamVjdCBmcm9tIGEgUHlMb25nT2JqZWN0LiBVc2UgYSBtYXhpbXVtIGNvbnRleHQKKyAgIGZvciBjb252ZXJzaW9uLiBJZiB0aGUgY29udmVyc2lvbiBpcyBub3QgZXhhY3QsIHNldCBJbnZhbGlkT3BlcmF0aW9uLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK1B5RGVjVHlwZV9Gcm9tTG9uZ0V4YWN0KFB5VHlwZU9iamVjdCAqdHlwZSwgY29uc3QgUHlPYmplY3QgKnB5bG9uZywKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpjb250ZXh0KQoreworICAgIFB5T2JqZWN0ICpkZWM7CisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsKKyAgICBtcGRfY29udGV4dF90IG1heGN0eDsKKworICAgIG1wZF9tYXhjb250ZXh0KCZtYXhjdHgpOworICAgIGRlYyA9IGRlY19mcm9tX2xvbmcodHlwZSwgcHlsb25nLCAmbWF4Y3R4LCAmc3RhdHVzKTsKKyAgICBpZiAoZGVjID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKHN0YXR1cyAmIChNUERfSW5leGFjdHxNUERfUm91bmRlZHxNUERfQ2xhbXBlZCkpIHsKKyAgICAgICAgLyogd2Ugd2FudCBleGFjdCByZXN1bHRzICovCisgICAgICAgIG1wZF9zZXRlcnJvcihNUEQoZGVjKSwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCAmc3RhdHVzKTsKKyAgICB9CisgICAgc3RhdHVzICY9IE1QRF9FcnJvcnM7CisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeworICAgICAgICBQeV9ERUNSRUYoZGVjKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIGRlYzsKK30KKworLyogUmV0dXJuIGEgUHlEZWNPYmplY3Qgb3IgYSBzdWJ0eXBlIGZyb20gYSBQeUZsb2F0T2JqZWN0LgorICAgQ29udmVyc2lvbiBpcyBleGFjdC4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitQeURlY1R5cGVfRnJvbUZsb2F0RXhhY3QoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqY29udGV4dCkKK3sKKyAgICBQeU9iamVjdCAqZGVjLCAqdG1wOworICAgIFB5T2JqZWN0ICpuLCAqZCwgKm5fZDsKKyAgICBtcGRfc3NpemVfdCBrOworICAgIGRvdWJsZSB4OworICAgIGludCBzaWduOworICAgIG1wZF90ICpkMSwgKmQyOworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisgICAgbXBkX2NvbnRleHRfdCBtYXhjdHg7CisKKworICAgIGFzc2VydChQeVR5cGVfSXNTdWJ0eXBlKHR5cGUsICZQeURlY19UeXBlKSk7CisKKyAgICBpZiAoUHlMb25nX0NoZWNrKHYpKSB7CisgICAgICAgIHJldHVybiBQeURlY1R5cGVfRnJvbUxvbmdFeGFjdCh0eXBlLCB2LCBjb250ZXh0KTsKKyAgICB9CisgICAgaWYgKCFQeUZsb2F0X0NoZWNrKHYpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAiYXJndW1lbnQgbXVzdCBiZSBpbnQgb2YgZmxvYXQiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgeCA9IFB5RmxvYXRfQXNEb3VibGUodik7CisgICAgaWYgKHggPT0gLTEuMCAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBzaWduID0gKGNvcHlzaWduKDEuMCwgeCkgPT0gMS4wKSA/IDAgOiAxOworCisgICAgaWYgKFB5X0lTX05BTih4KSB8fCBQeV9JU19JTkZJTklUWSh4KSkgeworICAgICAgICBkZWMgPSBQeURlY1R5cGVfTmV3KHR5cGUpOworICAgICAgICBpZiAoZGVjID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIGlmIChQeV9JU19OQU4oeCkpIHsKKyAgICAgICAgICAgIC8qIGRlY2ltYWwucHkgY2FsbHMgcmVwcihmbG9hdCgrLW5hbikpLAorICAgICAgICAgICAgICogd2hpY2ggYWx3YXlzIGdpdmVzIGEgcG9zaXRpdmUgcmVzdWx0LiAqLworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwoTVBEKGRlYyksIE1QRF9QT1MsIE1QRF9OQU4pOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwoTVBEKGRlYyksIHNpZ24sIE1QRF9JTkYpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZWM7CisgICAgfQorCisgICAgLyogYWJzb2x1dGUgdmFsdWUgb2YgdGhlIGZsb2F0ICovCisgICAgdG1wID0gUHlPYmplY3RfQ2FsbE1ldGhvZCh2LCAiX19hYnNfXyIsIE5VTEwpOworICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBmbG9hdCBhcyBpbnRlZ2VyIHJhdGlvOiBudW1lcmF0b3IvZGVub21pbmF0b3IgKi8KKyAgICBuX2QgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHRtcCwgImFzX2ludGVnZXJfcmF0aW8iLCBOVUxMKTsKKyAgICBQeV9ERUNSRUYodG1wKTsKKyAgICBpZiAobl9kID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIG4gPSBQeVR1cGxlX0dFVF9JVEVNKG5fZCwgMCk7CisgICAgZCA9IFB5VHVwbGVfR0VUX0lURU0obl9kLCAxKTsKKworICAgIHRtcCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoZCwgImJpdF9sZW5ndGgiLCBOVUxMKTsKKyAgICBpZiAodG1wID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKG5fZCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBrID0gUHlMb25nX0FzU3NpemVfdCh0bXApOworICAgIFB5X0RFQ1JFRih0bXApOworICAgIGlmIChrID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgUHlfREVDUkVGKG5fZCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBrLS07CisKKyAgICBkZWMgPSBQeURlY1R5cGVfRnJvbUxvbmdFeGFjdCh0eXBlLCBuLCBjb250ZXh0KTsKKyAgICBQeV9ERUNSRUYobl9kKTsKKyAgICBpZiAoZGVjID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZDEgPSBtcGRfcW5ldygpOworICAgIGlmIChkMSA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihkZWMpOworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZDIgPSBtcGRfcW5ldygpOworICAgIGlmIChkMiA9PSBOVUxMKSB7CisgICAgICAgIG1wZF9kZWwoZDEpOworICAgICAgICBQeV9ERUNSRUYoZGVjKTsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbXBkX21heGNvbnRleHQoJm1heGN0eCk7CisgICAgbXBkX3FzZXRfdWludChkMSwgNSwgJm1heGN0eCwgJnN0YXR1cyk7CisgICAgbXBkX3FzZXRfc3NpemUoZDIsIGssICZtYXhjdHgsICZzdGF0dXMpOworICAgIG1wZF9xcG93KGQxLCBkMSwgZDIsICZtYXhjdHgsICZzdGF0dXMpOworICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsKKyAgICAgICAgbXBkX2RlbChkMSk7CisgICAgICAgIG1wZF9kZWwoZDIpOworICAgICAgICBQeV9ERUNSRUYoZGVjKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogcmVzdWx0ID0gbiAqIDUqKmsgKi8KKyAgICBtcGRfcW11bChNUEQoZGVjKSwgTVBEKGRlYyksIGQxLCAmbWF4Y3R4LCAmc3RhdHVzKTsKKyAgICBtcGRfZGVsKGQxKTsKKyAgICBtcGRfZGVsKGQyKTsKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7CisgICAgICAgIFB5X0RFQ1JFRihkZWMpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgLyogcmVzdWx0ID0gKy0gbiAqIDUqKmsgKiAxMCoqLWsgKi8KKyAgICBtcGRfc2V0X3NpZ24oTVBEKGRlYyksIHNpZ24pOworICAgIE1QRChkZWMpLT5leHAgPSAtazsKKworICAgIHJldHVybiBkZWM7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitQeURlY1R5cGVfRnJvbUZsb2F0KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKnYsCisgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpjb250ZXh0KQoreworICAgIFB5T2JqZWN0ICpkZWM7CisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsKKworICAgIGRlYyA9IFB5RGVjVHlwZV9Gcm9tRmxvYXRFeGFjdCh0eXBlLCB2LCBjb250ZXh0KTsKKyAgICBpZiAoZGVjID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbXBkX3FmaW5hbGl6ZShNUEQoZGVjKSwgQ1RYKGNvbnRleHQpLCAmc3RhdHVzKTsKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7CisgICAgICAgIFB5X0RFQ1JFRihkZWMpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gZGVjOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorc2VxdWVuY2VfYXNfdHVwbGUoUHlPYmplY3QgKnYsIFB5T2JqZWN0ICpleCwgY29uc3QgY2hhciAqbWVzZykKK3sKKyAgICBpZiAoUHlUdXBsZV9DaGVjayh2KSkgeworICAgICAgICBQeV9JTkNSRUYodik7CisgICAgICAgIHJldHVybiB2OworICAgIH0KKyAgICBpZiAoUHlMaXN0X0NoZWNrKHYpKSB7CisgICAgICAgIHJldHVybiBQeUxpc3RfQXNUdXBsZSh2KTsKKyAgICB9CisKKyAgICBQeUVycl9TZXRTdHJpbmcoZXgsIG1lc2cpOworICAgIHJldHVybiBOVUxMOworfQorCisvKiBSZXR1cm4gYSBuZXcgQyBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYSBEZWNpbWFsVHVwbGUuICovCitzdGF0aWMgY2hhciAqCitkZWN0dXBsZV9hc19zdHIoUHlPYmplY3QgKmRlY3R1cGxlKQoreworICAgIFB5T2JqZWN0ICpkaWdpdHMgPSBOVUxMLCAqdG1wOworICAgIGNoYXIgKmRlY3N0cmluZyA9IE5VTEw7CisgICAgY2hhciBzaWduX3NwZWNpYWxbNl07CisgICAgY2hhciAqY3A7CisgICAgbG9uZyBzaWduLCBsOworICAgIG1wZF9zc2l6ZV90IGV4cCA9IDA7CisgICAgUHlfc3NpemVfdCBpLCBtZW0sIHRzaXplOworICAgIGludCBuOworCisgICAgYXNzZXJ0KFB5VHVwbGVfQ2hlY2soZGVjdHVwbGUpKTsKKworICAgIGlmIChQeVR1cGxlX1NpemUoZGVjdHVwbGUpICE9IDMpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAiYXJndW1lbnQgbXVzdCBiZSBhIHNlcXVlbmNlIG9mIGxlbmd0aCAzIik7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgLyogc2lnbiAqLworICAgIHRtcCA9IFB5VHVwbGVfR0VUX0lURU0oZGVjdHVwbGUsIDApOworICAgIGlmICghUHlMb25nX0NoZWNrKHRtcCkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAic2lnbiBtdXN0IGJlIGFuIGludGVnZXIgd2l0aCB0aGUgdmFsdWUgMCBvciAxIik7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorICAgIHNpZ24gPSBQeUxvbmdfQXNMb25nKHRtcCk7CisgICAgaWYgKHNpZ24gPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyAgICBpZiAoc2lnbiAhPSAwICYmIHNpZ24gIT0gMSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJzaWduIG11c3QgYmUgYW4gaW50ZWdlciB3aXRoIHRoZSB2YWx1ZSAwIG9yIDEiKTsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgc2lnbl9zcGVjaWFsWzBdID0gc2lnbiA/ICctJyA6ICcrJzsKKyAgICBzaWduX3NwZWNpYWxbMV0gPSAnXDAnOworCisgICAgLyogZXhwb25lbnQgb3IgZW5jb2RpbmcgZm9yIGEgc3BlY2lhbCBudW1iZXIgKi8KKyAgICB0bXAgPSBQeVR1cGxlX0dFVF9JVEVNKGRlY3R1cGxlLCAyKTsKKyAgICBpZiAoUHlVbmljb2RlX0NoZWNrKHRtcCkpIHsKKyAgICAgICAgLyogc3BlY2lhbCAqLworICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcodG1wLCAiRiIpID09IDApIHsKKyAgICAgICAgICAgIHN0cmNhdChzaWduX3NwZWNpYWwsICJJbmYiKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZyh0bXAsICJuIikgPT0gMCkgeworICAgICAgICAgICAgc3RyY2F0KHNpZ25fc3BlY2lhbCwgIk5hTiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKHRtcCwgIk4iKSA9PSAwKSB7CisgICAgICAgICAgICBzdHJjYXQoc2lnbl9zcGVjaWFsLCAic05hTiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgInN0cmluZyBhcmd1bWVudCBpbiB0aGUgdGhpcmQgcG9zaXRpb24gIgorICAgICAgICAgICAgICAgICJtdXN0IGJlICdGJywgJ24nIG9yICdOJyIpOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLyogZXhwb25lbnQgKi8KKyAgICAgICAgaWYgKCFQeUxvbmdfQ2hlY2sodG1wKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgImV4cG9uZW50IG11c3QgYmUgYW4gaW50ZWdlciIpOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICBleHAgPSBQeUxvbmdfQXNTc2l6ZV90KHRtcCk7CisgICAgICAgIGlmIChleHAgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIGNvZWZmaWNpZW50ICovCisgICAgZGlnaXRzID0gc2VxdWVuY2VfYXNfdHVwbGUoUHlUdXBsZV9HRVRfSVRFTShkZWN0dXBsZSwgMSksIFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvZWZmaWNpZW50IG11c3QgYmUgYSB0dXBsZSBvZiBkaWdpdHMiKTsKKyAgICBpZiAoZGlnaXRzID09IE5VTEwpIHsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyAgICB0c2l6ZSA9IFB5VHVwbGVfU2l6ZShkaWdpdHMpOworICAgIC8qIFtzaWduXVtjb2VmZmRpZ2l0cysxXVtFXVstXVtleHBkaWdpdHMrMV1bJ1wwJ10gKi8KKyAgICBtZW0gPSAxICsgdHNpemUgKyAzICsgTVBEX0VYUERJR0lUUyArIDI7CisgICAgY3AgPSBkZWNzdHJpbmcgPSBQeU1lbV9NYWxsb2MobWVtKTsKKyAgICBpZiAoZGVjc3RyaW5nID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyAgICBuID0gc25wcmludGYoY3AsIG1lbSwgIiVzIiwgc2lnbl9zcGVjaWFsKTsKKyAgICBpZiAobiA8IDAgfHwgbiA+PSBtZW0pIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICJpbnRlcm5hbCBlcnJvciBpbiBkZWNfc2VxdWVuY2VfYXNfc3RyIik7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorICAgIGNwICs9IG47CisKKyAgICBpZiAodHNpemUgPT0gMCAmJiBzaWduX3NwZWNpYWxbMV0gPT0gJ1wwJykgeworICAgICAgICAvKiBlbXB0eSB0dXBsZTogemVybyBjb2VmZmljaWVudCwgZXhjZXB0IGZvciBzcGVjaWFsIG51bWJlcnMgKi8KKyAgICAgICAgKmNwKysgPSAnMCc7CisgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCB0c2l6ZTsgaSsrKSB7CisgICAgICAgIHRtcCA9IFB5VHVwbGVfR0VUX0lURU0oZGlnaXRzLCBpKTsKKyAgICAgICAgaWYgKCFQeUxvbmdfQ2hlY2sodG1wKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgImNvZWZmaWNpZW50IG11c3QgYmUgYSB0dXBsZSBvZiBkaWdpdHMiKTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgbCA9IFB5TG9uZ19Bc0xvbmcodG1wKTsKKyAgICAgICAgaWYgKGwgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICBpZiAobCA8IDAgfHwgbCA+IDkpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICJjb2VmZmljaWVudCBtdXN0IGJlIGEgdHVwbGUgb2YgZGlnaXRzIik7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgICpjcCsrID0gKGNoYXIpbCArICcwJzsKKyAgICB9CisgICAgKmNwID0gJ1wwJzsKKworICAgIGlmIChzaWduX3NwZWNpYWxbMV0gPT0gJ1wwJykgeworICAgICAgICAvKiBub3QgYSBzcGVjaWFsIG51bWJlciAqLworICAgICAgICAqY3ArKyA9ICdFJzsKKyAgICAgICAgbiA9IHNucHJpbnRmKGNwLCBNUERfRVhQRElHSVRTKzIsICIlIiBQUklfbXBkX3NzaXplX3QsIGV4cCk7CisgICAgICAgIGlmIChuIDwgMCB8fCBuID49IE1QRF9FWFBESUdJVFMrMikgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICAgICAiaW50ZXJuYWwgZXJyb3IgaW4gZGVjX3NlcXVlbmNlX2FzX3N0ciIpOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIFB5X1hERUNSRUYoZGlnaXRzKTsKKyAgICByZXR1cm4gZGVjc3RyaW5nOworCisKK2Vycm9yOgorICAgIFB5X1hERUNSRUYoZGlnaXRzKTsKKyAgICBpZiAoZGVjc3RyaW5nKSBQeU1lbV9GcmVlKGRlY3N0cmluZyk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKKy8qIEN1cnJlbnRseSBhY2NlcHRzIHR1cGxlcyBhbmQgbGlzdHMuICovCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNUeXBlX0Zyb21TZXF1ZW5jZShQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICp2LAorICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqY29udGV4dCkKK3sKKyAgICBQeU9iamVjdCAqZGVjdHVwbGU7CisgICAgUHlPYmplY3QgKmRlYzsKKyAgICBjaGFyICpzOworCisgICAgZGVjdHVwbGUgPSBzZXF1ZW5jZV9hc190dXBsZSh2LCBQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJndW1lbnQgbXVzdCBiZSBhIHR1cGxlIG9yIGxpc3QiKTsKKyAgICBpZiAoZGVjdHVwbGUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBzID0gZGVjdHVwbGVfYXNfc3RyKGRlY3R1cGxlKTsKKyAgICBQeV9ERUNSRUYoZGVjdHVwbGUpOworICAgIGlmIChzID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZGVjID0gUHlEZWNUeXBlX0Zyb21DU3RyaW5nKHR5cGUsIHMsIGNvbnRleHQpOworCisgICAgUHlNZW1fRnJlZShzKTsKKyAgICByZXR1cm4gZGVjOworfQorCisvKiBDdXJyZW50bHkgYWNjZXB0cyB0dXBsZXMgYW5kIGxpc3RzLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK1B5RGVjVHlwZV9Gcm9tU2VxdWVuY2VFeGFjdChQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICp2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpjb250ZXh0KQoreworICAgIFB5T2JqZWN0ICpkZWN0dXBsZTsKKyAgICBQeU9iamVjdCAqZGVjOworICAgIGNoYXIgKnM7CisKKyAgICBkZWN0dXBsZSA9IHNlcXVlbmNlX2FzX3R1cGxlKHYsIFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAiYXJndW1lbnQgbXVzdCBiZSBhIHR1cGxlIG9yIGxpc3QiKTsKKyAgICBpZiAoZGVjdHVwbGUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBzID0gZGVjdHVwbGVfYXNfc3RyKGRlY3R1cGxlKTsKKyAgICBQeV9ERUNSRUYoZGVjdHVwbGUpOworICAgIGlmIChzID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZGVjID0gUHlEZWNUeXBlX0Zyb21DU3RyaW5nRXhhY3QodHlwZSwgcywgY29udGV4dCk7CisKKyAgICBQeU1lbV9GcmVlKHMpOworICAgIHJldHVybiBkZWM7Cit9CisKKyNkZWZpbmUgUHlEZWNfRnJvbUNTdHJpbmcoc3RyLCBjb250ZXh0KSBcCisgICAgICAgIFB5RGVjVHlwZV9Gcm9tQ1N0cmluZygmUHlEZWNfVHlwZSwgc3RyLCBjb250ZXh0KQorI2RlZmluZSBQeURlY19Gcm9tQ1N0cmluZ0V4YWN0KHN0ciwgY29udGV4dCkgXAorICAgICAgICBQeURlY1R5cGVfRnJvbUNTdHJpbmdFeGFjdCgmUHlEZWNfVHlwZSwgc3RyLCBjb250ZXh0KQorCisjZGVmaW5lIFB5RGVjX0Zyb21Vbmljb2RlKHVuaWNvZGUsIGNvbnRleHQpIFwKKyAgICAgICAgUHlEZWNUeXBlX0Zyb21Vbmljb2RlKCZQeURlY19UeXBlLCB1bmljb2RlLCBjb250ZXh0KQorI2RlZmluZSBQeURlY19Gcm9tVW5pY29kZUV4YWN0KHVuaWNvZGUsIGNvbnRleHQpIFwKKyAgICAgICAgUHlEZWNUeXBlX0Zyb21Vbmljb2RlRXhhY3QoJlB5RGVjX1R5cGUsIHVuaWNvZGUsIGNvbnRleHQpCisjZGVmaW5lIFB5RGVjX0Zyb21Vbmljb2RlRXhhY3RXUyh1bmljb2RlLCBjb250ZXh0KSBcCisgICAgICAgIFB5RGVjVHlwZV9Gcm9tVW5pY29kZUV4YWN0V1MoJlB5RGVjX1R5cGUsIHVuaWNvZGUsIGNvbnRleHQpCisKKyNkZWZpbmUgUHlEZWNfRnJvbVNzaXplKHYsIGNvbnRleHQpIFwKKyAgICAgICAgUHlEZWNUeXBlX0Zyb21Tc2l6ZSgmUHlEZWNfVHlwZSwgdiwgY29udGV4dCkKKyNkZWZpbmUgUHlEZWNfRnJvbVNzaXplRXhhY3QodiwgY29udGV4dCkgXAorICAgICAgICBQeURlY1R5cGVfRnJvbVNzaXplRXhhY3QoJlB5RGVjX1R5cGUsIHYsIGNvbnRleHQpCisKKyNkZWZpbmUgUHlEZWNfRnJvbUxvbmcocHlsb25nLCBjb250ZXh0KSBcCisgICAgICAgIFB5RGVjVHlwZV9Gcm9tTG9uZygmUHlEZWNfVHlwZSwgcHlsb25nLCBjb250ZXh0KQorI2RlZmluZSBQeURlY19Gcm9tTG9uZ0V4YWN0KHB5bG9uZywgY29udGV4dCkgXAorICAgICAgICBQeURlY1R5cGVfRnJvbUxvbmdFeGFjdCgmUHlEZWNfVHlwZSwgcHlsb25nLCBjb250ZXh0KQorCisjZGVmaW5lIFB5RGVjX0Zyb21GbG9hdChweWZsb2F0LCBjb250ZXh0KSBcCisgICAgICAgIFB5RGVjVHlwZV9Gcm9tRmxvYXQoJlB5RGVjX1R5cGUsIHB5ZmxvYXQsIGNvbnRleHQpCisjZGVmaW5lIFB5RGVjX0Zyb21GbG9hdEV4YWN0KHB5ZmxvYXQsIGNvbnRleHQpIFwKKyAgICAgICAgUHlEZWNUeXBlX0Zyb21GbG9hdEV4YWN0KCZQeURlY19UeXBlLCBweWZsb2F0LCBjb250ZXh0KQorCisjZGVmaW5lIFB5RGVjX0Zyb21TZXF1ZW5jZShzZXF1ZW5jZSwgY29udGV4dCkgXAorICAgICAgICBQeURlY1R5cGVfRnJvbVNlcXVlbmNlKCZQeURlY19UeXBlLCBzZXF1ZW5jZSwgY29udGV4dCkKKyNkZWZpbmUgUHlEZWNfRnJvbVNlcXVlbmNlRXhhY3Qoc2VxdWVuY2UsIGNvbnRleHQpIFwKKyAgICAgICAgUHlEZWNUeXBlX0Zyb21TZXF1ZW5jZUV4YWN0KCZQeURlY19UeXBlLCBzZXF1ZW5jZSwgY29udGV4dCkKKworLyogY2xhc3MgbWV0aG9kICovCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX2Zyb21fZmxvYXQoUHlPYmplY3QgKmRlYywgUHlPYmplY3QgKnB5ZmxvYXQpCit7CisgICAgUHlPYmplY3QgKmNvbnRleHQ7CisKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7CisgICAgcmV0dXJuIFB5RGVjVHlwZV9Gcm9tRmxvYXRFeGFjdCgoUHlUeXBlT2JqZWN0ICopZGVjLCBweWZsb2F0LCBjb250ZXh0KTsKK30KKworLyogY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdCAqLworc3RhdGljIFB5T2JqZWN0ICoKK2N0eF9mcm9tX2Zsb2F0KFB5T2JqZWN0ICpjb250ZXh0LCBQeU9iamVjdCAqdikKK3sKKyAgICByZXR1cm4gUHlEZWNfRnJvbUZsb2F0KHYsIGNvbnRleHQpOworfQorCisvKiBBcHBseSB0aGUgY29udGV4dCB0byB0aGUgaW5wdXQgb3BlcmFuZC4gUmV0dXJuIGEgbmV3IFB5RGVjT2JqZWN0LiAqLworc3RhdGljIFB5T2JqZWN0ICoKK2RlY19hcHBseShQeU9iamVjdCAqdiwgUHlPYmplY3QgKmNvbnRleHQpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworCisgICAgcmVzdWx0ID0gZGVjX2FsbG9jKCk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG1wZF9xY29weShNUEQocmVzdWx0KSwgTVBEKHYpLCAmc3RhdHVzKTsKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtcGRfcWZpbmFsaXplKE1QRChyZXN1bHQpLCBDVFgoY29udGV4dCksICZzdGF0dXMpOworICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsKKyAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qICd2JyBjYW4gaGF2ZSBhbnkgdHlwZSBhY2NlcHRlZCBieSB0aGUgRGVjaW1hbCBjb25zdHJ1Y3Rvci4gQXR0ZW1wdAorICAgYW4gZXhhY3QgY29udmVyc2lvbi4gSWYgdGhlIHJlc3VsdCBkb2VzIG5vdCBtZWV0IHRoZSByZXN0cmljdGlvbnMKKyAgIGZvciBhbiBtcGRfdCwgZmFpbCB3aXRoIEludmFsaWRPcGVyYXRpb24uICovCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNUeXBlX0Zyb21PYmplY3RFeGFjdChQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICp2LCBQeU9iamVjdCAqY29udGV4dCkKK3sKKyAgICBpZiAodiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBQeURlY1R5cGVfRnJvbVNzaXplRXhhY3QodHlwZSwgMCwgY29udGV4dCk7CisgICAgfQorICAgIGVsc2UgaWYgKFB5RGVjX0NoZWNrKHYpKSB7CisgICAgICAgIFB5X0lOQ1JFRih2KTsKKyAgICAgICAgcmV0dXJuIHY7CisgICAgfQorICAgIGVsc2UgaWYgKFB5VW5pY29kZV9DaGVjayh2KSkgeworICAgICAgICByZXR1cm4gUHlEZWNUeXBlX0Zyb21Vbmljb2RlRXhhY3RXUyh0eXBlLCB2LCBjb250ZXh0KTsKKyAgICB9CisgICAgZWxzZSBpZiAoUHlMb25nX0NoZWNrKHYpKSB7CisgICAgICAgIHJldHVybiBQeURlY1R5cGVfRnJvbUxvbmdFeGFjdCh0eXBlLCB2LCBjb250ZXh0KTsKKyAgICB9CisgICAgZWxzZSBpZiAoUHlUdXBsZV9DaGVjayh2KSB8fCBQeUxpc3RfQ2hlY2sodikpIHsKKyAgICAgICAgcmV0dXJuIFB5RGVjVHlwZV9Gcm9tU2VxdWVuY2VFeGFjdCh0eXBlLCB2LCBjb250ZXh0KTsKKyAgICB9CisgICAgZWxzZSBpZiAoUHlGbG9hdF9DaGVjayh2KSkgeworICAgICAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBNUERfRmxvYXRfb3BlcmF0aW9uKSkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFB5RGVjVHlwZV9Gcm9tRmxvYXRFeGFjdCh0eXBlLCB2LCBjb250ZXh0KTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAiY29udmVyc2lvbiBmcm9tICVzIHRvIERlY2ltYWwgaXMgbm90IHN1cHBvcnRlZCIsCisgICAgICAgICAgICB2LT5vYl90eXBlLT50cF9uYW1lKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBUaGUgY29udGV4dCBpcyB1c2VkIGR1cmluZyBjb252ZXJzaW9uLiBUaGlzIGZ1bmN0aW9uIGlzIHRoZQorICAgZXF1aXZhbGVudCBvZiBjb250ZXh0LmNyZWF0ZV9kZWNpbWFsKCkuICovCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNfRnJvbU9iamVjdChQeU9iamVjdCAqdiwgUHlPYmplY3QgKmNvbnRleHQpCit7CisgICAgaWYgKHYgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUHlEZWNfRnJvbVNzaXplKDAsIGNvbnRleHQpOworICAgIH0KKyAgICBlbHNlIGlmIChQeURlY19DaGVjayh2KSkgeworICAgICAgICBtcGRfY29udGV4dF90ICpjdHggPSBDVFgoY29udGV4dCk7CisgICAgICAgIGlmIChtcGRfaXNuYW4oTVBEKHYpKSAmJgorICAgICAgICAgICAgTVBEKHYpLT5kaWdpdHMgPiBjdHgtPnByZWMgLSBjdHgtPmNsYW1wKSB7CisgICAgICAgICAgICAvKiBTcGVjaWFsIGNhc2U6IHRvbyBtYW55IE5hTiBwYXlsb2FkIGRpZ2l0cyAqLworICAgICAgICAgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICAgICAgICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIE1QRF9Db252ZXJzaW9uX3N5bnRheCkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdCA9IGRlY19hbGxvYygpOworICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtcGRfc2V0c3BlY2lhbChNUEQocmVzdWx0KSwgTVBEX1BPUywgTVBEX05BTik7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHJldHVybiBkZWNfYXBwbHkodiwgY29udGV4dCk7CisgICAgfQorICAgIGVsc2UgaWYgKFB5VW5pY29kZV9DaGVjayh2KSkgeworICAgICAgICByZXR1cm4gUHlEZWNfRnJvbVVuaWNvZGUodiwgY29udGV4dCk7CisgICAgfQorICAgIGVsc2UgaWYgKFB5TG9uZ19DaGVjayh2KSkgeworICAgICAgICByZXR1cm4gUHlEZWNfRnJvbUxvbmcodiwgY29udGV4dCk7CisgICAgfQorICAgIGVsc2UgaWYgKFB5VHVwbGVfQ2hlY2sodikgfHwgUHlMaXN0X0NoZWNrKHYpKSB7CisgICAgICAgIHJldHVybiBQeURlY19Gcm9tU2VxdWVuY2UodiwgY29udGV4dCk7CisgICAgfQorICAgIGVsc2UgaWYgKFB5RmxvYXRfQ2hlY2sodikpIHsKKyAgICAgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgTVBEX0Zsb2F0X29wZXJhdGlvbikpIHsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHJldHVybiBQeURlY19Gcm9tRmxvYXQodiwgY29udGV4dCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgImNvbnZlcnNpb24gZnJvbSAlcyB0byBEZWNpbWFsIGlzIG5vdCBzdXBwb3J0ZWQiLAorICAgICAgICAgICAgdi0+b2JfdHlwZS0+dHBfbmFtZSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2RlY19uZXcoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJ2YWx1ZSIsICJjb250ZXh0IiwgTlVMTH07CisgICAgUHlPYmplY3QgKnYgPSBOVUxMOworICAgIFB5T2JqZWN0ICpjb250ZXh0OworCisgICAgQ1VSUkVOVF9DT05URVhUKGNvbnRleHQpOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJ8T08iLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnYsICZjb250ZXh0KSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgQ09OVEVYVF9DSEVDS19WQShjb250ZXh0KTsKKworICAgIHJldHVybiBQeURlY1R5cGVfRnJvbU9iamVjdEV4YWN0KHR5cGUsIHYsIGNvbnRleHQpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorY3R4X2NyZWF0ZV9kZWNpbWFsKFB5T2JqZWN0ICpjb250ZXh0LCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeU9iamVjdCAqdiA9IE5VTEw7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxPIiwgJnYpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBQeURlY19Gcm9tT2JqZWN0KHYsIGNvbnRleHQpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgIEltcGxpY2l0IGNvbnZlcnNpb25zIHRvIERlY2ltYWwgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVHJ5IHRvIGNvbnZlcnQgUHlPYmplY3QgdiB0byBhIG5ldyBQeURlY09iamVjdCBjb252LiBJZiB0aGUgY29udmVyc2lvbgorICAgZmFpbHMsIHNldCBjb252IHRvIE5VTEwgKGV4Y2VwdGlvbiBpcyBzZXQpLiBJZiB0aGUgY29udmVyc2lvbiBpcyBub3QKKyAgIGltcGxlbWVudGVkLCBzZXQgY29udiB0byBQeV9Ob3RJbXBsZW1lbnRlZC4gKi8KKyNkZWZpbmUgTk9UX0lNUEwgMAorI2RlZmluZSBUWVBFX0VSUiAxCitQeV9MT0NBTF9JTkxJTkUoaW50KQorY29udmVydF9vcChpbnQgdHlwZV9lcnIsIFB5T2JqZWN0ICoqY29udiwgUHlPYmplY3QgKnYsIFB5T2JqZWN0ICpjb250ZXh0KQoreworCisgICAgaWYgKFB5RGVjX0NoZWNrKHYpKSB7CisgICAgICAgICpjb252ID0gdjsKKyAgICAgICAgUHlfSU5DUkVGKHYpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgaWYgKFB5TG9uZ19DaGVjayh2KSkgeworICAgICAgICAqY29udiA9IFB5RGVjX0Zyb21Mb25nRXhhY3QodiwgY29udGV4dCk7CisgICAgICAgIGlmICgqY29udiA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAodHlwZV9lcnIpIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICJjb252ZXJzaW9uIGZyb20gJXMgdG8gRGVjaW1hbCBpcyBub3Qgc3VwcG9ydGVkIiwKKyAgICAgICAgICAgIHYtPm9iX3R5cGUtPnRwX25hbWUpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKKyAgICAgICAgKmNvbnYgPSBQeV9Ob3RJbXBsZW1lbnRlZDsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKy8qIFJldHVybiBOb3RJbXBsZW1lbnRlZCBmb3IgdW5zdXBwb3J0ZWQgdHlwZXMuICovCisjZGVmaW5lIENPTlZFUlRfT1AoYSwgdiwgY29udGV4dCkgXAorICAgIGlmICghY29udmVydF9vcChOT1RfSU1QTCwgYSwgdiwgY29udGV4dCkpIHsgXAorICAgICAgICByZXR1cm4gKihhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKworI2RlZmluZSBDT05WRVJUX0JJTk9QKGEsIGIsIHYsIHcsIGNvbnRleHQpIFwKKyAgICBpZiAoIWNvbnZlcnRfb3AoTk9UX0lNUEwsIGEsIHYsIGNvbnRleHQpKSB7IFwKKyAgICAgICAgcmV0dXJuICooYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIWNvbnZlcnRfb3AoTk9UX0lNUEwsIGIsIHcsIGNvbnRleHQpKSB7IFwKKyAgICAgICAgUHlfREVDUkVGKCooYSkpOyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuICooYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyNkZWZpbmUgQ09OVkVSVF9URVJOT1AoYSwgYiwgYywgdiwgdywgeCwgY29udGV4dCkgXAorICAgIGlmICghY29udmVydF9vcChOT1RfSU1QTCwgYSwgdiwgY29udGV4dCkpIHsgICBcCisgICAgICAgIHJldHVybiAqKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghY29udmVydF9vcChOT1RfSU1QTCwgYiwgdywgY29udGV4dCkpIHsgICBcCisgICAgICAgIFB5X0RFQ1JFRigqKGEpKTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuICooYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFjb252ZXJ0X29wKE5PVF9JTVBMLCBjLCB4LCBjb250ZXh0KSkgeyAgIFwKKyAgICAgICAgUHlfREVDUkVGKCooYSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYoKihiKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiAqKGMpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKy8qIFJhaXNlIFR5cGVFcnJvciBmb3IgdW5zdXBwb3J0ZWQgdHlwZXMuICovCisjZGVmaW5lIENPTlZFUlRfT1BfUkFJU0UoYSwgdiwgY29udGV4dCkgXAorICAgIGlmICghY29udmVydF9vcChUWVBFX0VSUiwgYSwgdiwgY29udGV4dCkpIHsgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0KKworI2RlZmluZSBDT05WRVJUX0JJTk9QX1JBSVNFKGEsIGIsIHYsIHcsIGNvbnRleHQpIFwKKyAgICBpZiAoIWNvbnZlcnRfb3AoVFlQRV9FUlIsIGEsIHYsIGNvbnRleHQpKSB7ICBcCisgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIWNvbnZlcnRfb3AoVFlQRV9FUlIsIGIsIHcsIGNvbnRleHQpKSB7ICBcCisgICAgICAgIFB5X0RFQ1JFRigqKGEpKTsgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyNkZWZpbmUgQ09OVkVSVF9URVJOT1BfUkFJU0UoYSwgYiwgYywgdiwgdywgeCwgY29udGV4dCkgXAorICAgIGlmICghY29udmVydF9vcChUWVBFX0VSUiwgYSwgdiwgY29udGV4dCkpIHsgICAgICAgICBcCisgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghY29udmVydF9vcChUWVBFX0VSUiwgYiwgdywgY29udGV4dCkpIHsgICAgICAgICBcCisgICAgICAgIFB5X0RFQ1JFRigqKGEpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFjb252ZXJ0X29wKFRZUEVfRVJSLCBjLCB4LCBjb250ZXh0KSkgeyAgICAgICAgIFwKKyAgICAgICAgUHlfREVDUkVGKCooYSkpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYoKihiKSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICBJbXBsaWNpdCBjb252ZXJzaW9ucyB0byBEZWNpbWFsIGZvciBjb21wYXJpc29uICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBDb252ZXJ0IHJhdGlvbmFscyBmb3IgY29tcGFyaXNvbiAqLworc3RhdGljIFB5T2JqZWN0ICpSYXRpb25hbCA9IE5VTEw7CitzdGF0aWMgUHlPYmplY3QgKgorbXVsdGlwbHlfYnlfZGVub21pbmF0b3IoUHlPYmplY3QgKnYsIFB5T2JqZWN0ICpyLCBQeU9iamVjdCAqY29udGV4dCkKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICp0bXAgPSBOVUxMOworICAgIFB5T2JqZWN0ICpkZW5vbSA9IE5VTEw7CisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsKKyAgICBtcGRfY29udGV4dF90IG1heGN0eDsKKyAgICBtcGRfc3NpemVfdCBleHA7CisgICAgbXBkX3QgKnZ2OworCisgICAgLyogdiBpcyBub3Qgc3BlY2lhbCwgciBpcyBhIHJhdGlvbmFsICovCisgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhyLCAiZGVub21pbmF0b3IiKTsKKyAgICBpZiAodG1wID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGRlbm9tID0gUHlEZWNfRnJvbUxvbmdFeGFjdCh0bXAsIGNvbnRleHQpOworICAgIFB5X0RFQ1JFRih0bXApOworICAgIGlmIChkZW5vbSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHZ2ID0gbXBkX3FuY29weShNUEQodikpOworICAgIGlmICh2diA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihkZW5vbSk7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXN1bHQgPSBkZWNfYWxsb2MoKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKGRlbm9tKTsKKyAgICAgICAgbXBkX2RlbCh2dik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG1wZF9tYXhjb250ZXh0KCZtYXhjdHgpOworICAgIC8qIFByZXZlbnQgT3ZlcmZsb3cgaW4gdGhlIGZvbGxvd2luZyBtdWx0aXBsaWNhdGlvbi4gVGhlIHJlc3VsdCBvZgorICAgICAgIHRoZSBtdWx0aXBsaWNhdGlvbiBpcyBvbmx5IHVzZWQgaW4gbXBkX3FjbXAsIHdoaWNoIGNhbiBoYW5kbGUKKyAgICAgICB2YWx1ZXMgdGhhdCBhcmUgdGVjaG5pY2FsbHkgb3V0IG9mIGJvdW5kcywgbGlrZSAoZm9yIDMyLWJpdCkKKyAgICAgICA5OTk5OTk5OTk5OTk5OTk5OTk5OS4uLjk5OTk5OTk5ZSs0MjUwMDAwMDAuICovCisgICAgZXhwID0gdnYtPmV4cDsKKyAgICB2di0+ZXhwID0gMDsKKyAgICBtcGRfcW11bChNUEQocmVzdWx0KSwgdnYsIE1QRChkZW5vbSksICZtYXhjdHgsICZzdGF0dXMpOworICAgIE1QRChyZXN1bHQpLT5leHAgPSBleHA7CisKKyAgICBQeV9ERUNSRUYoZGVub20pOworICAgIG1wZF9kZWwodnYpOworICAgIC8qIElmIGFueSBzdGF0dXMgaGFzIGJlZW4gYWNjdW11bGF0ZWQgZHVyaW5nIHRoZSBtdWx0aXBsaWNhdGlvbiwKKyAgICAgICB0aGUgcmVzdWx0IGlzIGludmFsaWQuIFRoaXMgaXMgdmVyeSB1bmxpa2VseSwgc2luY2UgZXZlbiB0aGUKKyAgICAgICAzMi1iaXQgdmVyc2lvbiBzdXBwb3J0cyA0MjUwMDAwMDAgZGlnaXRzLiAqLworICAgIGlmIChzdGF0dXMpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAiZXhhY3QgY29udmVyc2lvbiBmb3IgY29tcGFyaXNvbiBmYWlsZWQiKTsKKyAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitudW1lcmF0b3JfYXNfZGVjaW1hbChQeU9iamVjdCAqciwgUHlPYmplY3QgKmNvbnRleHQpCit7CisgICAgUHlPYmplY3QgKnRtcCwgKm51bTsKKworICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcociwgIm51bWVyYXRvciIpOworICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBudW0gPSBQeURlY19Gcm9tTG9uZ0V4YWN0KHRtcCwgY29udGV4dCk7CisgICAgUHlfREVDUkVGKHRtcCk7CisgICAgcmV0dXJuIG51bTsKK30KKworLyogQ29udmVydCB2IGFuZCB3IGZvciBjb21wYXJpc29uLiB2IGlzIGEgRGVjaW1hbC4gSWYgdyBpcyBhIFJhdGlvbmFsLCBib3RoCisgICB2IGFuZCB3IGhhdmUgdG8gYmUgdHJhbnNmb3JtZWQuIFJldHVybiAxIGZvciBzdWNjZXNzLCB3aXRoIG5ldyByZWZlcmVuY2VzCisgICB0byB0aGUgY29udmVydGVkIG9iamVjdHMgaW4gdmNtcCBhbmQgd2NtcC4gUmV0dXJuIDAgZm9yIGZhaWx1cmUuIEluIHRoYXQKKyAgIGNhc2Ugd2NtcCBpcyBlaXRoZXIgTlVMTCBvciBQeV9Ob3RJbXBsZW1lbnRlZCAobmV3IHJlZmVyZW5jZSkgYW5kIHZjbXAKKyAgIGlzIHVuZGVmaW5lZC4gKi8KK3N0YXRpYyBpbnQKK2NvbnZlcnRfb3BfY21wKFB5T2JqZWN0ICoqdmNtcCwgUHlPYmplY3QgKip3Y21wLCBQeU9iamVjdCAqdiwgUHlPYmplY3QgKncsCisgICAgICAgICAgICAgICBpbnQgb3AsIFB5T2JqZWN0ICpjb250ZXh0KQoreworICAgIG1wZF9jb250ZXh0X3QgKmN0eCA9IENUWChjb250ZXh0KTsKKworICAgICp2Y21wID0gdjsKKworICAgIGlmIChQeURlY19DaGVjayh3KSkgeworICAgICAgICBQeV9JTkNSRUYodyk7CisgICAgICAgICp3Y21wID0gdzsKKyAgICB9CisgICAgZWxzZSBpZiAoUHlMb25nX0NoZWNrKHcpKSB7CisgICAgICAgICp3Y21wID0gUHlEZWNfRnJvbUxvbmdFeGFjdCh3LCBjb250ZXh0KTsKKyAgICB9CisgICAgZWxzZSBpZiAoUHlGbG9hdF9DaGVjayh3KSkgeworICAgICAgICBpZiAob3AgIT0gUHlfRVEgJiYgb3AgIT0gUHlfTkUgJiYKKyAgICAgICAgICAgIGRlY19hZGRzdGF0dXMoY29udGV4dCwgTVBEX0Zsb2F0X29wZXJhdGlvbikpIHsKKyAgICAgICAgICAgICp3Y21wID0gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGN0eC0+c3RhdHVzIHw9IE1QRF9GbG9hdF9vcGVyYXRpb247CisgICAgICAgICAgICAqd2NtcCA9IFB5RGVjX0Zyb21GbG9hdEV4YWN0KHcsIGNvbnRleHQpOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKFB5Q29tcGxleF9DaGVjayh3KSAmJiAob3AgPT0gUHlfRVEgfHwgb3AgPT0gUHlfTkUpKSB7CisgICAgICAgIFB5X2NvbXBsZXggYyA9IFB5Q29tcGxleF9Bc0NDb21wbGV4KHcpOworICAgICAgICBpZiAoYy5yZWFsID09IC0xLjAgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgKndjbXAgPSBOVUxMOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGMuaW1hZyA9PSAwLjApIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp0bXAgPSBQeUZsb2F0X0Zyb21Eb3VibGUoYy5yZWFsKTsKKyAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICp3Y21wID0gTlVMTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGN0eC0+c3RhdHVzIHw9IE1QRF9GbG9hdF9vcGVyYXRpb247CisgICAgICAgICAgICAgICAgKndjbXAgPSBQeURlY19Gcm9tRmxvYXRFeGFjdCh0bXAsIGNvbnRleHQpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih0bXApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKKyAgICAgICAgICAgICp3Y21wID0gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoUHlPYmplY3RfSXNJbnN0YW5jZSh3LCBSYXRpb25hbCkpIHsKKyAgICAgICAgKndjbXAgPSBudW1lcmF0b3JfYXNfZGVjaW1hbCh3LCBjb250ZXh0KTsKKyAgICAgICAgaWYgKCp3Y21wICYmICFtcGRfaXNzcGVjaWFsKE1QRCh2KSkpIHsKKyAgICAgICAgICAgICp2Y21wID0gbXVsdGlwbHlfYnlfZGVub21pbmF0b3IodiwgdywgY29udGV4dCk7CisgICAgICAgICAgICBpZiAoKnZjbXAgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5X0NMRUFSKCp3Y21wKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKKyAgICAgICAgKndjbXAgPSBQeV9Ob3RJbXBsZW1lbnRlZDsKKyAgICB9CisKKyAgICBpZiAoKndjbXAgPT0gTlVMTCB8fCAqd2NtcCA9PSBQeV9Ob3RJbXBsZW1lbnRlZCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKCp2Y21wID09IHYpIHsKKyAgICAgICAgUHlfSU5DUkVGKHYpOworICAgIH0KKyAgICByZXR1cm4gMTsKK30KKworI2RlZmluZSBDT05WRVJUX0JJTk9QX0NNUCh2Y21wLCB3Y21wLCB2LCB3LCBvcCwgY3R4KSBcCisgICAgaWYgKCFjb252ZXJ0X29wX2NtcCh2Y21wLCB3Y21wLCB2LCB3LCBvcCwgY3R4KSkgeyAgXAorICAgICAgICByZXR1cm4gKih3Y21wKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICBDb252ZXJzaW9ucyBmcm9tIGRlY2ltYWwgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgUHlPYmplY3QgKgordW5pY29kZV9mcm9tYXNjaWkoY29uc3QgY2hhciAqcywgUHlfc3NpemVfdCBzaXplKQoreworICAgIFB5T2JqZWN0ICpyZXM7CisKKyAgICByZXMgPSBQeVVuaWNvZGVfTmV3KHNpemUsIDEyNyk7CisgICAgaWYgKHJlcyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG1lbWNweShQeVVuaWNvZGVfMUJZVEVfREFUQShyZXMpLCBzLCBzaXplKTsKKyAgICByZXR1cm4gcmVzOworfQorCisvKiBQeURlY09iamVjdCBhcyBhIHN0cmluZy4gVGhlIGRlZmF1bHQgbW9kdWxlIGNvbnRleHQgaXMgb25seSB1c2VkIGZvcgorICAgdGhlIHZhbHVlIG9mICdjYXBpdGFscycuICovCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX3N0cihQeU9iamVjdCAqZGVjKQoreworICAgIFB5T2JqZWN0ICpyZXMsICpjb250ZXh0OworICAgIG1wZF9zc2l6ZV90IHNpemU7CisgICAgY2hhciAqY3A7CisKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7CisgICAgc2l6ZSA9IG1wZF90b19zY2lfc2l6ZSgmY3AsIE1QRChkZWMpLCBDdHhDYXBzKGNvbnRleHQpKTsKKyAgICBpZiAoc2l6ZSA8IDApIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmVzID0gdW5pY29kZV9mcm9tYXNjaWkoY3AsIHNpemUpOworICAgIG1wZF9mcmVlKGNwKTsKKyAgICByZXR1cm4gcmVzOworfQorCisvKiBSZXByZXNlbnRhdGlvbiBvZiBhIFB5RGVjT2JqZWN0LiAqLworc3RhdGljIFB5T2JqZWN0ICoKK2RlY19yZXByKFB5T2JqZWN0ICpkZWMpCit7CisgICAgUHlPYmplY3QgKnJlcywgKmNvbnRleHQ7CisgICAgY2hhciAqY3A7CisKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7CisgICAgY3AgPSBtcGRfdG9fc2NpKE1QRChkZWMpLCBDdHhDYXBzKGNvbnRleHQpKTsKKyAgICBpZiAoY3AgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXMgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiRGVjaW1hbCgnJXMnKSIsIGNwKTsKKyAgICBtcGRfZnJlZShjcCk7CisgICAgcmV0dXJuIHJlczsKK30KKworLyogQ29udmVydCBkZWNpbWFsX3BvaW50IG9yIHRob3VzYW5kc19zZXAsIHdoaWNoIG1heSBiZSBtdWx0aWJ5dGUgb3IgaW4KKyAgIHRoZSByYW5nZSBbMTI4LCAyNTVdLCB0byBhIFVURjggc3RyaW5nLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK2RvdHNlcF9hc191dGY4KGNvbnN0IGNoYXIgKnMpCit7CisgICAgUHlPYmplY3QgKnV0Zjg7CisgICAgUHlPYmplY3QgKnRtcDsKKyAgICB3Y2hhcl90IGJ1ZlsyXTsKKyAgICBzaXplX3QgbjsKKworICAgIG4gPSBtYnN0b3djcyhidWYsIHMsIDIpOworICAgIGlmIChuICE9IDEpIHsgLyogSXNzdWUgIzc0NDIgKi8KKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAiaW52YWxpZCBkZWNpbWFsIHBvaW50IG9yIHVuc3VwcG9ydGVkICIKKyAgICAgICAgICAgICJjb21iaW5hdGlvbiBvZiBMQ19DVFlQRSBhbmQgTENfTlVNRVJJQyIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgdG1wID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcihidWYsIG4pOworICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgdXRmOCA9IFB5VW5pY29kZV9Bc1VURjhTdHJpbmcodG1wKTsKKyAgICBQeV9ERUNSRUYodG1wKTsKKyAgICByZXR1cm4gdXRmODsKK30KKworLyogRm9ybWF0dGVkIHJlcHJlc2VudGF0aW9uIG9mIGEgUHlEZWNPYmplY3QuICovCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX2Zvcm1hdChQeU9iamVjdCAqZGVjLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBQeU9iamVjdCAqb3ZlcnJpZGUgPSBOVUxMOworICAgIFB5T2JqZWN0ICpkb3QgPSBOVUxMOworICAgIFB5T2JqZWN0ICpzZXAgPSBOVUxMOworICAgIFB5T2JqZWN0ICpncm91cGluZyA9IE5VTEw7CisgICAgUHlPYmplY3QgKmZtdCA9IE5VTEw7CisgICAgUHlPYmplY3QgKmZtdGFyZzsKKyAgICBQeU9iamVjdCAqY29udGV4dDsKKyAgICBtcGRfc3BlY190IHNwZWM7CisgICAgY2hhciAqZGVjc3RyaW5nPSBOVUxMOworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisgICAgc2l6ZV90IG47CisKKworICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk98TyIsICZmbXRhcmcsICZvdmVycmlkZSkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKFB5VW5pY29kZV9DaGVjayhmbXRhcmcpKSB7CisgICAgICAgIGZtdCA9IFB5VW5pY29kZV9Bc1VURjhTdHJpbmcoZm10YXJnKTsKKyAgICAgICAgaWYgKGZtdCA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICJmb3JtYXQgYXJnIG11c3QgYmUgc3RyIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmICghbXBkX3BhcnNlX2ZtdF9zdHIoJnNwZWMsIFB5Qnl0ZXNfQVNfU1RSSU5HKGZtdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBDdHhDYXBzKGNvbnRleHQpKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJpbnZhbGlkIGZvcm1hdCBzdHJpbmciKTsKKyAgICAgICAgZ290byBmaW5pc2g7CisgICAgfQorICAgIGlmIChvdmVycmlkZSkgeworICAgICAgICAvKiBWYWx1ZXMgZm9yIGRlY2ltYWxfcG9pbnQsIHRob3VzYW5kc19zZXAgYW5kIGdyb3VwaW5nIGNhbgorICAgICAgICAgICBiZSBleHBsaWNpdGx5IHNwZWNpZmllZCBpbiB0aGUgb3ZlcnJpZGUgZGljdC4gVGhlc2UgdmFsdWVzCisgICAgICAgICAgIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSB2YWx1ZXMgb2J0YWluZWQgZnJvbSBsb2NhbGVjb252KCkKKyAgICAgICAgICAgaW4gbXBkX3BhcnNlX2ZtdF9zdHIoKS4gVGhlIGZlYXR1cmUgaXMgbm90IGRvY3VtZW50ZWQgYW5kCisgICAgICAgICAgIGlzIG9ubHkgdXNlZCBpbiB0ZXN0X2RlY2ltYWwuICovCisgICAgICAgIGlmICghUHlEaWN0X0NoZWNrKG92ZXJyaWRlKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAib3B0aW9uYWwgYXJndW1lbnQgbXVzdCBiZSBhIGRpY3QiKTsKKyAgICAgICAgICAgIGdvdG8gZmluaXNoOworICAgICAgICB9CisgICAgICAgIGlmICgoZG90ID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcob3ZlcnJpZGUsICJkZWNpbWFsX3BvaW50IikpKSB7CisgICAgICAgICAgICBpZiAoKGRvdCA9IFB5VW5pY29kZV9Bc1VURjhTdHJpbmcoZG90KSkgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGdvdG8gZmluaXNoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3BlYy5kb3QgPSBQeUJ5dGVzX0FTX1NUUklORyhkb3QpOworICAgICAgICB9CisgICAgICAgIGlmICgoc2VwID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcob3ZlcnJpZGUsICJ0aG91c2FuZHNfc2VwIikpKSB7CisgICAgICAgICAgICBpZiAoKHNlcCA9IFB5VW5pY29kZV9Bc1VURjhTdHJpbmcoc2VwKSkgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGdvdG8gZmluaXNoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3BlYy5zZXAgPSBQeUJ5dGVzX0FTX1NUUklORyhzZXApOworICAgICAgICB9CisgICAgICAgIGlmICgoZ3JvdXBpbmcgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhvdmVycmlkZSwgImdyb3VwaW5nIikpKSB7CisgICAgICAgICAgICBpZiAoKGdyb3VwaW5nID0gUHlVbmljb2RlX0FzVVRGOFN0cmluZyhncm91cGluZykpID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGZpbmlzaDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHNwZWMuZ3JvdXBpbmcgPSBQeUJ5dGVzX0FTX1NUUklORyhncm91cGluZyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1wZF92YWxpZGF0ZV9sY29udigmc3BlYykgPCAwKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAiaW52YWxpZCBvdmVycmlkZSBkaWN0Iik7CisgICAgICAgICAgICBnb3RvIGZpbmlzaDsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbiA9IHN0cmxlbihzcGVjLmRvdCk7CisgICAgICAgIGlmIChuID4gMSB8fCAobiA9PSAxICYmICFpc2FzY2lpKCh1Y2hhcilzcGVjLmRvdFswXSkpKSB7CisgICAgICAgICAgICAvKiBmaXggbG9jYWxlIGRlcGVuZGVudCBub24tYXNjaWkgY2hhcmFjdGVycyAqLworICAgICAgICAgICAgZG90ID0gZG90c2VwX2FzX3V0Zjgoc3BlYy5kb3QpOworICAgICAgICAgICAgaWYgKGRvdCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZ290byBmaW5pc2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzcGVjLmRvdCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGRvdCk7CisgICAgICAgIH0KKyAgICAgICAgbiA9IHN0cmxlbihzcGVjLnNlcCk7CisgICAgICAgIGlmIChuID4gMSB8fCAobiA9PSAxICYmICFpc2FzY2lpKCh1Y2hhcilzcGVjLnNlcFswXSkpKSB7CisgICAgICAgICAgICAvKiBmaXggbG9jYWxlIGRlcGVuZGVudCBub24tYXNjaWkgY2hhcmFjdGVycyAqLworICAgICAgICAgICAgc2VwID0gZG90c2VwX2FzX3V0Zjgoc3BlYy5zZXApOworICAgICAgICAgICAgaWYgKHNlcCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZ290byBmaW5pc2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzcGVjLnNlcCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHNlcCk7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIGRlY3N0cmluZyA9IG1wZF9xZm9ybWF0X3NwZWMoTVBEKGRlYyksICZzcGVjLCBDVFgoY29udGV4dCksICZzdGF0dXMpOworICAgIGlmIChkZWNzdHJpbmcgPT0gTlVMTCkgeworICAgICAgICBkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cyk7CisgICAgICAgIGdvdG8gZmluaXNoOworICAgIH0KKyAgICByZXN1bHQgPSBQeVVuaWNvZGVfRGVjb2RlVVRGOChkZWNzdHJpbmcsIHN0cmxlbihkZWNzdHJpbmcpLCBOVUxMKTsKKworCitmaW5pc2g6CisgICAgUHlfWERFQ1JFRihncm91cGluZyk7CisgICAgUHlfWERFQ1JFRihzZXApOworICAgIFB5X1hERUNSRUYoZG90KTsKKyAgICBQeV9YREVDUkVGKGZtdCk7CisgICAgaWYgKGRlY3N0cmluZykgbXBkX2ZyZWUoZGVjc3RyaW5nKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvKiBSZXR1cm4gYSBQeUxvbmdPYmplY3QgZnJvbSBhIFB5RGVjT2JqZWN0LCB1c2luZyB0aGUgc3BlY2lmaWVkIHJvdW5kaW5nCisgKiBtb2RlLiBUaGUgY29udGV4dCBwcmVjaXNpb24gaXMgbm90IG9ic2VydmVkLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK2RlY19hc19sb25nKFB5T2JqZWN0ICpkZWMsIFB5T2JqZWN0ICpjb250ZXh0LCBpbnQgcm91bmQpCit7CisgICAgUHlMb25nT2JqZWN0ICpweWxvbmc7CisgICAgZGlnaXQgKm9iX2RpZ2l0OworICAgIHNpemVfdCBuOworICAgIFB5X3NzaXplX3QgaTsKKyAgICBtcGRfdCAqeDsKKyAgICBtcGRfY29udGV4dF90IHdvcmtjdHg7CisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKE1QRChkZWMpKSkgeworICAgICAgICBpZiAobXBkX2lzbmFuKE1QRChkZWMpKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgImNhbm5vdCBjb252ZXJ0IE5hTiB0byBpbnRlZ2VyIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKKyAgICAgICAgICAgICAgICAiY2Fubm90IGNvbnZlcnQgSW5maW5pdHkgdG8gaW50ZWdlciIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHggPSBtcGRfcW5ldygpOworICAgIGlmICh4ID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHdvcmtjdHggPSAqQ1RYKGNvbnRleHQpOworICAgIHdvcmtjdHgucm91bmQgPSByb3VuZDsKKyAgICBtcGRfcXJvdW5kX3RvX2ludCh4LCBNUEQoZGVjKSwgJndvcmtjdHgsICZzdGF0dXMpOworICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsKKyAgICAgICAgbXBkX2RlbCh4KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgc3RhdHVzID0gMDsKKyAgICBvYl9kaWdpdCA9IE5VTEw7CisjaWYgUFlMT05HX0JJVFNfSU5fRElHSVQgPT0gMzAKKyAgICBuID0gbXBkX3FleHBvcnRfdTMyKCZvYl9kaWdpdCwgMCwgUHlMb25nX0JBU0UsIHgsICZzdGF0dXMpOworI2VsaWYgUFlMT05HX0JJVFNfSU5fRElHSVQgPT0gMTUKKyAgICBuID0gbXBkX3FleHBvcnRfdTE2KCZvYl9kaWdpdCwgMCwgUHlMb25nX0JBU0UsIHgsICZzdGF0dXMpOworI2Vsc2UKKyAgICAjZXJyb3IgIlBZTE9OR19CSVRTX0lOX0RJR0lUIHNob3VsZCBiZSAxNSBvciAzMCIKKyNlbmRpZgorCisgICAgaWYgKG4gPT0gU0laRV9NQVgpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgbXBkX2RlbCh4KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgYXNzZXJ0KG4gPiAwKTsKKyAgICBweWxvbmcgPSBfUHlMb25nX05ldyhuKTsKKyAgICBpZiAocHlsb25nID09IE5VTEwpIHsKKyAgICAgICAgbXBkX2ZyZWUob2JfZGlnaXQpOworICAgICAgICBtcGRfZGVsKHgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtZW1jcHkocHlsb25nLT5vYl9kaWdpdCwgb2JfZGlnaXQsIG4gKiBzaXplb2YoZGlnaXQpKTsKKyAgICBtcGRfZnJlZShvYl9kaWdpdCk7CisKKyAgICBpID0gbjsKKyAgICB3aGlsZSAoKGkgPiAwKSAmJiAocHlsb25nLT5vYl9kaWdpdFtpLTFdID09IDApKSB7CisgICAgICAgIGktLTsKKyAgICB9CisKKyAgICBQeV9TSVpFKHB5bG9uZykgPSBpOworICAgIGlmIChtcGRfaXNuZWdhdGl2ZSh4KSAmJiAhbXBkX2lzemVybyh4KSkgeworICAgICAgICBQeV9TSVpFKHB5bG9uZykgPSAtaTsKKyAgICB9CisKKyAgICBtcGRfZGVsKHgpOworICAgIHJldHVybiAoUHlPYmplY3QgKikgcHlsb25nOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNfVG9JbnRlZ3JhbFZhbHVlKFB5T2JqZWN0ICpkZWMsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7InJvdW5kaW5nIiwgImNvbnRleHQiLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICpjb250ZXh0OworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisgICAgbXBkX2NvbnRleHRfdCB3b3JrY3R4OworICAgIGludCByb3VuZCA9IC0xOworCisgICAgQ1VSUkVOVF9DT05URVhUKGNvbnRleHQpOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJ8aU8iLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJvdW5kLCAmY29udGV4dCkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIENPTlRFWFRfQ0hFQ0tfVkEoY29udGV4dCk7CisKKyAgICB3b3JrY3R4ID0gKkNUWChjb250ZXh0KTsKKyAgICBpZiAocm91bmQgPj0gMCkgeworICAgICAgICBpZiAoIW1wZF9xc2V0cm91bmQoJndvcmtjdHgsIHJvdW5kKSkgeworICAgICAgICAgICAgcmV0dXJuIHR5cGVfZXJyb3JfcHRyKGludmFsaWRfcm91bmRpbmdfZXJyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJlc3VsdCA9IGRlY19hbGxvYygpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtcGRfcXJvdW5kX3RvX2ludChNUEQocmVzdWx0KSwgTVBEKGRlYyksICZ3b3JrY3R4LCAmc3RhdHVzKTsKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNfVG9JbnRlZ3JhbEV4YWN0KFB5T2JqZWN0ICpkZWMsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7InJvdW5kaW5nIiwgImNvbnRleHQiLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICpjb250ZXh0OworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisgICAgbXBkX2NvbnRleHRfdCB3b3JrY3R4OworICAgIGludCByb3VuZCA9IC0xOworCisgICAgQ1VSUkVOVF9DT05URVhUKGNvbnRleHQpOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJ8aU8iLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJvdW5kLCAmY29udGV4dCkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIENPTlRFWFRfQ0hFQ0tfVkEoY29udGV4dCk7CisKKyAgICB3b3JrY3R4ID0gKkNUWChjb250ZXh0KTsKKyAgICBpZiAocm91bmQgPj0gMCkgeworICAgICAgICBpZiAoIW1wZF9xc2V0cm91bmQoJndvcmtjdHgsIHJvdW5kKSkgeworICAgICAgICAgICAgcmV0dXJuIHR5cGVfZXJyb3JfcHRyKGludmFsaWRfcm91bmRpbmdfZXJyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJlc3VsdCA9IGRlY19hbGxvYygpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtcGRfcXJvdW5kX3RvX2ludHgoTVBEKHJlc3VsdCksIE1QRChkZWMpLCAmd29ya2N0eCwgJnN0YXR1cyk7CisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeworICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK1B5RGVjX0FzRmxvYXQoUHlPYmplY3QgKmRlYykKK3sKKyAgICBQeU9iamVjdCAqZiwgKnM7CisKKyAgICBzID0gZGVjX3N0cihkZWMpOworICAgIGlmIChzID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZiA9IFB5RmxvYXRfRnJvbVN0cmluZyhzKTsKKyAgICBQeV9ERUNSRUYocyk7CisKKyAgICByZXR1cm4gZjsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK1B5RGVjX1JvdW5kKFB5T2JqZWN0ICpkZWMsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgUHlPYmplY3QgKnggPSBOVUxMOworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisgICAgUHlPYmplY3QgKmNvbnRleHQ7CisKKworICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxPIiwgJngpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmICh4KSB7CisgICAgICAgIG1wZF91aW50X3QgZHFbMV0gPSB7MX07CisgICAgICAgIG1wZF90IHEgPSB7TVBEX1NUQVRJQ3xNUERfQ09OU1RfREFUQSwwLDEsMSwxLGRxfTsKKyAgICAgICAgbXBkX3NzaXplX3QgeTsKKworICAgICAgICBpZiAoIVB5TG9uZ19DaGVjayh4KSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAib3B0aW9uYWwgYXJnIG11c3QgYmUgYW4gaW50ZWdlciIpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKworICAgICAgICB5ID0gUHlMb25nX0FzU3NpemVfdCh4KTsKKyAgICAgICAgaWYgKHkgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0ID0gZGVjX2FsbG9jKCk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKworICAgICAgICBxLmV4cCA9ICh5ID09IE1QRF9TU0laRV9NSU4pID8gTVBEX1NTSVpFX01BWCA6IC15OworICAgICAgICBtcGRfcXF1YW50aXplKE1QRChyZXN1bHQpLCBNUEQoZGVjKSwgJnEsIENUWChjb250ZXh0KSwgJnN0YXR1cyk7CisgICAgICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIGRlY19hc19sb25nKGRlYywgY29udGV4dCwgTVBEX1JPVU5EX0hBTEZfRVZFTik7CisgICAgfQorfQorCitQeU9iamVjdCAqRGVjaW1hbFR1cGxlID0gTlVMTDsKKy8qIFJldHVybiB0aGUgRGVjaW1hbFR1cGxlIHJlcHJlc2VudGF0aW9uIG9mIGEgUHlEZWNPYmplY3QuICovCitzdGF0aWMgUHlPYmplY3QgKgorUHlEZWNfQXNUdXBsZShQeU9iamVjdCAqZGVjLCBQeU9iamVjdCAqZHVtbXkgVU5VU0VEKQoreworICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOworICAgIFB5T2JqZWN0ICpzaWduID0gTlVMTDsKKyAgICBQeU9iamVjdCAqY29lZmYgPSBOVUxMOworICAgIFB5T2JqZWN0ICpleHB0ID0gTlVMTDsKKyAgICBQeU9iamVjdCAqdG1wID0gTlVMTDsKKyAgICBtcGRfdCAqeCA9IE5VTEw7CisgICAgY2hhciAqaW50c3RyaW5nID0gTlVMTDsKKyAgICBQeV9zc2l6ZV90IGludGxlbiwgaTsKKworCisgICAgeCA9IG1wZF9xbmNvcHkoTVBEKGRlYykpOworICAgIGlmICh4ID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgc2lnbiA9IFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKG1wZF9zaWduKE1QRChkZWMpKSk7CisgICAgaWYgKHNpZ24gPT0gTlVMTCkgeworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBpZiAobXBkX2lzaW5maW5pdGUoeCkpIHsKKyAgICAgICAgZXhwdCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJGIik7CisgICAgICAgIGlmIChleHB0ID09IE5VTEwpIHsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisgICAgICAgIC8qIGRlY2ltYWwucHkgaGFzIG5vbi1jb21wbGlhbnQgaW5maW5pdHkgcGF5bG9hZHMuICovCisgICAgICAgIGNvZWZmID0gUHlfQnVpbGRWYWx1ZSgiKGkpIiwgMCk7CisgICAgICAgIGlmIChjb2VmZiA9PSBOVUxMKSB7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKG1wZF9pc25hbih4KSkgeworICAgICAgICAgICAgZXhwdCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKG1wZF9pc3FuYW4oeCk/Im4iOiJOIik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBleHB0ID0gUHlMb25nX0Zyb21Tc2l6ZV90KE1QRChkZWMpLT5leHApOworICAgICAgICB9CisgICAgICAgIGlmIChleHB0ID09IE5VTEwpIHsKKyAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICB9CisKKyAgICAgICAgLyogY29lZmZpY2llbnQgaXMgZGVmaW5lZCAqLworICAgICAgICBpZiAoeC0+bGVuID4gMCkgeworCisgICAgICAgICAgICAvKiBtYWtlIGFuIGludGVnZXIgKi8KKyAgICAgICAgICAgIHgtPmV4cCA9IDA7CisgICAgICAgICAgICAvKiBjbGVhciBOYU4gYW5kIHNpZ24gKi8KKyAgICAgICAgICAgIG1wZF9jbGVhcl9mbGFncyh4KTsKKyAgICAgICAgICAgIGludHN0cmluZyA9IG1wZF90b19zY2koeCwgMSk7CisgICAgICAgICAgICBpZiAoaW50c3RyaW5nID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpbnRsZW4gPSBzdHJsZW4oaW50c3RyaW5nKTsKKyAgICAgICAgICAgIGNvZWZmID0gUHlUdXBsZV9OZXcoaW50bGVuKTsKKyAgICAgICAgICAgIGlmIChjb2VmZiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBpbnRsZW47IGkrKykgeworICAgICAgICAgICAgICAgIHRtcCA9IFB5TG9uZ19Gcm9tTG9uZyhpbnRzdHJpbmdbaV0tJzAnKTsKKyAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIFB5VHVwbGVfU0VUX0lURU0oY29lZmYsIGksIHRtcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBjb2VmZiA9IFB5VHVwbGVfTmV3KDApOworICAgICAgICAgICAgaWYgKGNvZWZmID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoRGVjaW1hbFR1cGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiwgY29lZmYsIGV4cHQsIE5VTEwpOworCitvdXQ6CisgICAgaWYgKHgpIG1wZF9kZWwoeCk7CisgICAgaWYgKGludHN0cmluZykgbXBkX2ZyZWUoaW50c3RyaW5nKTsKKyAgICBQeV9YREVDUkVGKHNpZ24pOworICAgIFB5X1hERUNSRUYoY29lZmYpOworICAgIFB5X1hERUNSRUYoZXhwdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICBNYWNyb3MgZm9yIGNvbnZlcnRpbmcgbXBkZWNpbWFsIGZ1bmN0aW9ucyB0byBEZWNpbWFsIG1ldGhvZHMgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFVuYXJ5IG51bWJlciBtZXRob2QgdGhhdCB1c2VzIHRoZSBkZWZhdWx0IG1vZHVsZSBjb250ZXh0LiAqLworI2RlZmluZSBEZWNfVW5hcnlOdW1iZXJNZXRob2QoTVBERlVOQykgXAorc3RhdGljIFB5T2JqZWN0ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorbm1fIyNNUERGVU5DKFB5T2JqZWN0ICpzZWxmKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpyZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpjb250ZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICgocmVzdWx0ID0gZGVjX2FsbG9jKCkpID09IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1QREZVTkMoTVBEKHJlc3VsdCksIE1QRChzZWxmKSwgQ1RYKGNvbnRleHQpLCAmc3RhdHVzKTsgXAorICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisvKiBCaW5hcnkgbnVtYmVyIG1ldGhvZCB0aGF0IHVzZXMgZGVmYXVsdCBtb2R1bGUgY29udGV4dC4gKi8KKyNkZWZpbmUgRGVjX0JpbmFyeU51bWJlck1ldGhvZChNUERGVU5DKSBcCitzdGF0aWMgUHlPYmplY3QgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK25tXyMjTVBERlVOQyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm90aGVyKSAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUHlPYmplY3QgKmEsICpiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpjb250ZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KSA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQ09OVkVSVF9CSU5PUCgmYSwgJmIsIHNlbGYsIG90aGVyLCBjb250ZXh0KTsgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICgocmVzdWx0ID0gZGVjX2FsbG9jKCkpID09IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFB5X0RFQ1JFRihhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlfREVDUkVGKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1QREZVTkMoTVBEKHJlc3VsdCksIE1QRChhKSwgTVBEKGIpLCBDVFgoY29udGV4dCksICZzdGF0dXMpOyBcCisgICAgUHlfREVDUkVGKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeV9ERUNSRUYoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisvKiBCb29sZWFuIGZ1bmN0aW9uIHdpdGhvdXQgYSBjb250ZXh0IGFyZy4gKi8KKyNkZWZpbmUgRGVjX0Jvb2xGdW5jKE1QREZVTkMpIFwKK3N0YXRpYyBQeU9iamVjdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2RlY18jI01QREZVTkMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSBVTlVTRUQpICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gTVBERlVOQyhNUEQoc2VsZikpID8gaW5jcl90cnVlKCkgOiBpbmNyX2ZhbHNlKCk7IFwKK30KKworLyogQm9vbGVhbiBmdW5jdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGNvbnRleHQgYXJnLiAqLworI2RlZmluZSBEZWNfQm9vbEZ1bmNWQShNUERGVU5DKSBcCitzdGF0aWMgUHlPYmplY3QgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2RlY18jI01QREZVTkMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJjb250ZXh0IiwgTlVMTH07ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqY29udGV4dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQ1VSUkVOVF9DT05URVhUKGNvbnRleHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE8iLCBrd2xpc3QsICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb250ZXh0KSkgeyAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENPTlRFWFRfQ0hFQ0tfVkEoY29udGV4dCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gTVBERlVOQyhNUEQoc2VsZiksIENUWChjb250ZXh0KSkgPyBpbmNyX3RydWUoKSA6IGluY3JfZmFsc2UoKTsgXAorfQorCisvKiBVbmFyeSBmdW5jdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGNvbnRleHQgYXJnLiAqLworI2RlZmluZSBEZWNfVW5hcnlGdW5jVkEoTVBERlVOQykgXAorc3RhdGljIFB5T2JqZWN0ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorZGVjXyMjTVBERlVOQyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKSAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsiY29udGV4dCIsIE5VTEx9OyAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpyZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpjb250ZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJ8TyIsIGt3bGlzdCwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb250ZXh0KSkgeyAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENPTlRFWFRfQ0hFQ0tfVkEoY29udGV4dCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICgocmVzdWx0ID0gZGVjX2FsbG9jKCkpID09IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1QREZVTkMoTVBEKHJlc3VsdCksIE1QRChzZWxmKSwgQ1RYKGNvbnRleHQpLCAmc3RhdHVzKTsgICAgXAorICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisvKiBVbmFyeSBmdW5jdGlvbiB3aXRoIGFuIG9wdGlvbmFsIGNvbnRleHQgYXJnLiBUaGUgYWN0dWFsIE1QREZVTkMKKyAgIG9ubHkgdGFrZXMgYSBzdGF0dXMgcGFyYW1ldGVyLiAqLworI2RlZmluZSBEZWNfVW5hcnlGdW5jVkFfTk9fQ1RYKE1QREZVTkMpIFwKK3N0YXRpYyBQeU9iamVjdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2RlY18jI01QREZVTkMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImNvbnRleHQiLCBOVUxMfTsgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqY29udGV4dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE8iLCBrd2xpc3QsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29udGV4dCkpIHsgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBDT05URVhUX0NIRUNLX1ZBKGNvbnRleHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoKHJlc3VsdCA9IGRlY19hbGxvYygpKSA9PSBOVUxMKSB7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNUERGVU5DKE1QRChyZXN1bHQpLCBNUEQoc2VsZiksICZzdGF0dXMpOyAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7ICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30KKworLyogQmluYXJ5IGZ1bmN0aW9uIHdpdGggYW4gb3B0aW9uYWwgY29udGV4dCBhcmcuICovCisjZGVmaW5lIERlY19CaW5hcnlGdW5jVkEoTVBERlVOQykgXAorc3RhdGljIFB5T2JqZWN0ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitkZWNfIyNNUERGVU5DKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsib3RoZXIiLCAiY29udGV4dCIsIE5VTEx9OyAgICAgICAgICBcCisgICAgUHlPYmplY3QgKm90aGVyLCAqY29udGV4dDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqYSwgKmI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpyZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98TyIsIGt3bGlzdCwgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3RoZXIsICZjb250ZXh0KSkgeyAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBDT05URVhUX0NIRUNLX1ZBKGNvbnRleHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENPTlZFUlRfQklOT1BfUkFJU0UoJmEsICZiLCBzZWxmLCBvdGhlciwgY29udGV4dCk7ICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoKHJlc3VsdCA9IGRlY19hbGxvYygpKSA9PSBOVUxMKSB7ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFB5X0RFQ1JFRihiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNUERGVU5DKE1QRChyZXN1bHQpLCBNUEQoYSksIE1QRChiKSwgQ1RYKGNvbnRleHQpLCAmc3RhdHVzKTsgXAorICAgIFB5X0RFQ1JFRihhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUHlfREVDUkVGKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30KKworLyogQmluYXJ5IGZ1bmN0aW9uIHdpdGggYW4gb3B0aW9uYWwgY29udGV4dCBhcmcuIEFjdHVhbCBNUERGVU5DIGRvZXMKKyAgIE5PVCB0YWtlIGEgY29udGV4dC4gVGhlIGNvbnRleHQgaXMgdXNlZCB0byByZWNvcmQgSW52YWxpZE9wZXJhdGlvbgorICAgaWYgdGhlIHNlY29uZCBvcGVyYW5kIGNhbm5vdCBiZSBjb252ZXJ0ZWQgZXhhY3RseS4gKi8KKyNkZWZpbmUgRGVjX0JpbmFyeUZ1bmNWQV9OT19DVFgoTVBERlVOQykgXAorc3RhdGljIFB5T2JqZWN0ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK2RlY18jI01QREZVTkMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsib3RoZXIiLCAiY29udGV4dCIsIE5VTEx9OyAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqb3RoZXIsICpjb250ZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUHlPYmplY3QgKmEsICpiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpyZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQ1VSUkVOVF9DT05URVhUKGNvbnRleHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJPfE8iLCBrd2xpc3QsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3RoZXIsICZjb250ZXh0KSkgeyAgICAgICBcCisgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBDT05URVhUX0NIRUNLX1ZBKGNvbnRleHQpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQ09OVkVSVF9CSU5PUF9SQUlTRSgmYSwgJmIsIHNlbGYsIG90aGVyLCBjb250ZXh0KTsgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoKHJlc3VsdCA9IGRlY19hbGxvYygpKSA9PSBOVUxMKSB7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFB5X0RFQ1JFRihhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNUERGVU5DKE1QRChyZXN1bHQpLCBNUEQoYSksIE1QRChiKSk7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUHlfREVDUkVGKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5X0RFQ1JFRihiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIHJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisvKiBUZXJuYXJ5IGZ1bmN0aW9uIHdpdGggYW4gb3B0aW9uYWwgY29udGV4dCBhcmcuICovCisjZGVmaW5lIERlY19UZXJuYXJ5RnVuY1ZBKE1QREZVTkMpIFwKK3N0YXRpYyBQeU9iamVjdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitkZWNfIyNNUERGVU5DKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7Im90aGVyIiwgInRoaXJkIiwgImNvbnRleHQiLCBOVUxMfTsgICAgICAgICBcCisgICAgUHlPYmplY3QgKm90aGVyLCAqdGhpcmQsICpjb250ZXh0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICphLCAqYiwgKmM7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk9PfE8iLCBrd2xpc3QsICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdGhlciwgJnRoaXJkLCAmY29udGV4dCkpIHsgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENPTlRFWFRfQ0hFQ0tfVkEoY29udGV4dCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBDT05WRVJUX1RFUk5PUF9SQUlTRSgmYSwgJmIsICZjLCBzZWxmLCBvdGhlciwgdGhpcmQsIGNvbnRleHQpOyAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICgocmVzdWx0ID0gZGVjX2FsbG9jKCkpID09IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlfREVDUkVGKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFB5X0RFQ1JFRihiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNUERGVU5DKE1QRChyZXN1bHQpLCBNUEQoYSksIE1QRChiKSwgTVBEKGMpLCBDVFgoY29udGV4dCksICZzdGF0dXMpOyBcCisgICAgUHlfREVDUkVGKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5X0RFQ1JFRihiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeV9ERUNSRUYoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgTnVtYmVyIG1ldGhvZHMgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitEZWNfVW5hcnlOdW1iZXJNZXRob2QobXBkX3FtaW51cykKK0RlY19VbmFyeU51bWJlck1ldGhvZChtcGRfcXBsdXMpCitEZWNfVW5hcnlOdW1iZXJNZXRob2QobXBkX3FhYnMpCisKK0RlY19CaW5hcnlOdW1iZXJNZXRob2QobXBkX3FhZGQpCitEZWNfQmluYXJ5TnVtYmVyTWV0aG9kKG1wZF9xc3ViKQorRGVjX0JpbmFyeU51bWJlck1ldGhvZChtcGRfcW11bCkKK0RlY19CaW5hcnlOdW1iZXJNZXRob2QobXBkX3FkaXYpCitEZWNfQmluYXJ5TnVtYmVyTWV0aG9kKG1wZF9xcmVtKQorRGVjX0JpbmFyeU51bWJlck1ldGhvZChtcGRfcWRpdmludCkKKworc3RhdGljIFB5T2JqZWN0ICoKK25tX2RlY19hc19sb25nKFB5T2JqZWN0ICpkZWMpCit7CisgICAgUHlPYmplY3QgKmNvbnRleHQ7CisKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7CisgICAgcmV0dXJuIGRlY19hc19sb25nKGRlYywgY29udGV4dCwgTVBEX1JPVU5EX0RPV04pOworfQorCitzdGF0aWMgaW50CitubV9ub256ZXJvKFB5T2JqZWN0ICp2KQoreworICAgIHJldHVybiAhbXBkX2lzemVybyhNUEQodikpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbm1fbXBkX3FkaXZtb2QoUHlPYmplY3QgKnYsIFB5T2JqZWN0ICp3KQoreworICAgIFB5T2JqZWN0ICphLCAqYjsKKyAgICBQeU9iamVjdCAqcSwgKnI7CisgICAgUHlPYmplY3QgKmNvbnRleHQ7CisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsKKyAgICBQeU9iamVjdCAqcmV0OworCisgICAgQ1VSUkVOVF9DT05URVhUKGNvbnRleHQpOworICAgIENPTlZFUlRfQklOT1AoJmEsICZiLCB2LCB3LCBjb250ZXh0KTsKKworICAgIHEgPSBkZWNfYWxsb2MoKTsKKyAgICBpZiAocSA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihhKTsKKyAgICAgICAgUHlfREVDUkVGKGIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgciA9IGRlY19hbGxvYygpOworICAgIGlmIChyID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKGEpOworICAgICAgICBQeV9ERUNSRUYoYik7CisgICAgICAgIFB5X0RFQ1JFRihxKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbXBkX3FkaXZtb2QoTVBEKHEpLCBNUEQociksIE1QRChhKSwgTVBEKGIpLCBDVFgoY29udGV4dCksICZzdGF0dXMpOworICAgIFB5X0RFQ1JFRihhKTsKKyAgICBQeV9ERUNSRUYoYik7CisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeworICAgICAgICBQeV9ERUNSRUYocik7CisgICAgICAgIFB5X0RFQ1JFRihxKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0ID0gUHlfQnVpbGRWYWx1ZSgiKE9PKSIsIHEsIHIpOworICAgIFB5X0RFQ1JFRihyKTsKKyAgICBQeV9ERUNSRUYocSk7CisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIG1wZF91aW50X3QgZGF0YV96ZXJvWzFdID0gezB9Oworc3RhdGljIGNvbnN0IG1wZF90IHplcm8gPSB7TVBEX1NUQVRJQ3xNUERfQ09OU1RfREFUQSwgMCwgMSwgMSwgMSwgZGF0YV96ZXJvfTsKKworc3RhdGljIFB5T2JqZWN0ICoKK25tX21wZF9xcG93KFB5T2JqZWN0ICpiYXNlLCBQeU9iamVjdCAqZXhwLCBQeU9iamVjdCAqbW9kKQoreworICAgIFB5T2JqZWN0ICphLCAqYiwgKmMgPSBOVUxMOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgUHlPYmplY3QgKmNvbnRleHQ7CisgICAgdWludDMyX3Qgc3RhdHVzID0gMDsKKworICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KTsKKyAgICBDT05WRVJUX0JJTk9QKCZhLCAmYiwgYmFzZSwgZXhwLCBjb250ZXh0KTsKKworICAgIGlmIChtb2QgIT0gUHlfTm9uZSkgeworICAgICAgICBpZiAoIWNvbnZlcnRfb3AoTk9UX0lNUEwsICZjLCBtb2QsIGNvbnRleHQpKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoYSk7CisgICAgICAgICAgICBQeV9ERUNSRUYoYik7CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJlc3VsdCA9IGRlY19hbGxvYygpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYoYSk7CisgICAgICAgIFB5X0RFQ1JFRihiKTsKKyAgICAgICAgUHlfWERFQ1JFRihjKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKGMgPT0gTlVMTCkgeworICAgICAgICBtcGRfcXBvdyhNUEQocmVzdWx0KSwgTVBEKGEpLCBNUEQoYiksCisgICAgICAgICAgICAgICAgIENUWChjb250ZXh0KSwgJnN0YXR1cyk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBtcGRfcXBvd21vZChNUEQocmVzdWx0KSwgTVBEKGEpLCBNUEQoYiksIE1QRChjKSwKKyAgICAgICAgICAgICAgICAgICAgQ1RYKGNvbnRleHQpLCAmc3RhdHVzKTsKKyAgICAgICAgc3RhdHVzID0gKHN0YXR1cyA9PSBNUERfQ2xhbXBlZCkgPyAwIDogc3RhdHVzOworICAgICAgICAvKiByZW1vdmUgaWRlYWwgZXhwb25lbnQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBkZWNpbWFsLnB5ICovCisgICAgICAgIG1wZF9xcXVhbnRpemUoTVBEKHJlc3VsdCksIE1QRChyZXN1bHQpLCAmemVybywKKyAgICAgICAgICAgICAgICAgICAgICBDVFgoY29udGV4dCksICZzdGF0dXMpOworICAgICAgICBQeV9ERUNSRUYoYyk7CisgICAgfQorICAgIFB5X0RFQ1JFRihhKTsKKyAgICBQeV9ERUNSRUYoYik7CisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeworICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgIERlY2ltYWwgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFVuYXJ5IGFyaXRobWV0aWMgZnVuY3Rpb25zLCBvcHRpb25hbCBjb250ZXh0IGFyZyAqLworRGVjX1VuYXJ5RnVuY1ZBKG1wZF9xZXhwKQorRGVjX1VuYXJ5RnVuY1ZBKG1wZF9xbG4pCitEZWNfVW5hcnlGdW5jVkEobXBkX3Fsb2cxMCkKK0RlY19VbmFyeUZ1bmNWQShtcGRfcW5leHRfbWludXMpCitEZWNfVW5hcnlGdW5jVkEobXBkX3FuZXh0X3BsdXMpCitEZWNfVW5hcnlGdW5jVkEobXBkX3FyZWR1Y2UpCitEZWNfVW5hcnlGdW5jVkEobXBkX3FzcXJ0KQorCisvKiBCaW5hcnkgYXJpdGhtZXRpYyBmdW5jdGlvbnMsIG9wdGlvbmFsIGNvbnRleHQgYXJnICovCitEZWNfQmluYXJ5RnVuY1ZBKG1wZF9xY29tcGFyZSkKK0RlY19CaW5hcnlGdW5jVkEobXBkX3Fjb21wYXJlX3NpZ25hbCkKK0RlY19CaW5hcnlGdW5jVkEobXBkX3FtYXgpCitEZWNfQmluYXJ5RnVuY1ZBKG1wZF9xbWF4X21hZykKK0RlY19CaW5hcnlGdW5jVkEobXBkX3FtaW4pCitEZWNfQmluYXJ5RnVuY1ZBKG1wZF9xbWluX21hZykKK0RlY19CaW5hcnlGdW5jVkEobXBkX3FuZXh0X3Rvd2FyZCkKK0RlY19CaW5hcnlGdW5jVkEobXBkX3FyZW1fbmVhcikKKworLyogVGVybmFyeSBhcml0aG1ldGljIGZ1bmN0aW9ucywgb3B0aW9uYWwgY29udGV4dCBhcmcgKi8KK0RlY19UZXJuYXJ5RnVuY1ZBKG1wZF9xZm1hKQorCisvKiBCb29sZWFuIGZ1bmN0aW9ucywgbm8gY29udGV4dCBhcmcgKi8KK0RlY19Cb29sRnVuYyhtcGRfaXNjYW5vbmljYWwpCitEZWNfQm9vbEZ1bmMobXBkX2lzZmluaXRlKQorRGVjX0Jvb2xGdW5jKG1wZF9pc2luZmluaXRlKQorRGVjX0Jvb2xGdW5jKG1wZF9pc25hbikKK0RlY19Cb29sRnVuYyhtcGRfaXNxbmFuKQorRGVjX0Jvb2xGdW5jKG1wZF9pc3NuYW4pCitEZWNfQm9vbEZ1bmMobXBkX2lzc2lnbmVkKQorRGVjX0Jvb2xGdW5jKG1wZF9pc3plcm8pCisKKy8qIEJvb2xlYW4gZnVuY3Rpb25zLCBvcHRpb25hbCBjb250ZXh0IGFyZyAqLworRGVjX0Jvb2xGdW5jVkEobXBkX2lzbm9ybWFsKQorRGVjX0Jvb2xGdW5jVkEobXBkX2lzc3Vibm9ybWFsKQorCisvKiBVbmFyeSBmdW5jdGlvbnMsIG5vIGNvbnRleHQgYXJnICovCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX21wZF9hZGpleHAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSBVTlVTRUQpCit7CisgICAgbXBkX3NzaXplX3QgcmV0dmFsOworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoTVBEKHNlbGYpKSkgeworICAgICAgICByZXR2YWwgPSAwOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dmFsID0gbXBkX2FkamV4cChNUEQoc2VsZikpOworICAgIH0KKworICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3QocmV0dmFsKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2RlY19jYW5vbmljYWwoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSBVTlVTRUQpCit7CisgICAgUHlfSU5DUkVGKHNlbGYpOworICAgIHJldHVybiBzZWxmOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX2Nvbmp1Z2F0ZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmR1bW15IFVOVVNFRCkKK3sKKyAgICBQeV9JTkNSRUYoc2VsZik7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitkZWNfbXBkX3JhZGl4KFB5T2JqZWN0ICpzZWxmIFVOVVNFRCwgUHlPYmplY3QgKmR1bW15IFVOVVNFRCkKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0OworCisgICAgcmVzdWx0ID0gZGVjX2FsbG9jKCk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIF9kZWNfc2V0dHJpcGxlKHJlc3VsdCwgTVBEX1BPUywgMTAsIDApOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qIFVuYXJ5IGZ1bmN0aW9ucywgb3B0aW9uYWwgY29udGV4dCBhcmcgZm9yIGNvbnZlcnNpb24gZXJyb3JzICovCitEZWNfVW5hcnlGdW5jVkFfTk9fQ1RYKG1wZF9xY29weV9hYnMpCitEZWNfVW5hcnlGdW5jVkFfTk9fQ1RYKG1wZF9xY29weV9uZWdhdGUpCisKKy8qIFVuYXJ5IGZ1bmN0aW9ucywgb3B0aW9uYWwgY29udGV4dCBhcmcgKi8KK0RlY19VbmFyeUZ1bmNWQShtcGRfcWludmVydCkKK0RlY19VbmFyeUZ1bmNWQShtcGRfcWxvZ2IpCisKK3N0YXRpYyBQeU9iamVjdCAqCitkZWNfbXBkX2NsYXNzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJjb250ZXh0IiwgTlVMTH07CisgICAgUHlPYmplY3QgKmNvbnRleHQ7CisgICAgY29uc3QgY2hhciAqY3A7CisKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgInxPIiwga3dsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb250ZXh0KSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgQ09OVEVYVF9DSEVDS19WQShjb250ZXh0KTsKKworICAgIGNwID0gbXBkX2NsYXNzKE1QRChzZWxmKSwgQ1RYKGNvbnRleHQpKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmcoY3ApOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX21wZF90b19lbmcoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImNvbnRleHQiLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICpjb250ZXh0OworICAgIG1wZF9zc2l6ZV90IHNpemU7CisgICAgY2hhciAqczsKKworICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE8iLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbnRleHQpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBDT05URVhUX0NIRUNLX1ZBKGNvbnRleHQpOworCisgICAgc2l6ZSA9IG1wZF90b19lbmdfc2l6ZSgmcywgTVBEKHNlbGYpLCBDdHhDYXBzKGNvbnRleHQpKTsKKyAgICBpZiAoc2l6ZSA8IDApIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmVzdWx0ID0gdW5pY29kZV9mcm9tYXNjaWkocywgc2l6ZSk7CisgICAgbXBkX2ZyZWUocyk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvKiBCaW5hcnkgZnVuY3Rpb25zLCBvcHRpb25hbCBjb250ZXh0IGFyZyBmb3IgY29udmVyc2lvbiBlcnJvcnMgKi8KK0RlY19CaW5hcnlGdW5jVkFfTk9fQ1RYKG1wZF9jb21wYXJlX3RvdGFsKQorRGVjX0JpbmFyeUZ1bmNWQV9OT19DVFgobXBkX2NvbXBhcmVfdG90YWxfbWFnKQorCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX21wZF9xY29weV9zaWduKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJvdGhlciIsICJjb250ZXh0IiwgTlVMTH07CisgICAgUHlPYmplY3QgKm90aGVyLCAqY29udGV4dDsKKyAgICBQeU9iamVjdCAqYSwgKmI7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworCisgICAgQ1VSUkVOVF9DT05URVhUKGNvbnRleHQpOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJPfE8iLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm90aGVyLCAmY29udGV4dCkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIENPTlRFWFRfQ0hFQ0tfVkEoY29udGV4dCk7CisgICAgQ09OVkVSVF9CSU5PUF9SQUlTRSgmYSwgJmIsIHNlbGYsIG90aGVyLCBjb250ZXh0KTsKKworICAgIHJlc3VsdCA9IGRlY19hbGxvYygpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYoYSk7CisgICAgICAgIFB5X0RFQ1JFRihiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbXBkX3Fjb3B5X3NpZ24oTVBEKHJlc3VsdCksIE1QRChhKSwgTVBEKGIpLCAmc3RhdHVzKTsKKyAgICBQeV9ERUNSRUYoYSk7CisgICAgUHlfREVDUkVGKGIpOworICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsKKyAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitkZWNfbXBkX3NhbWVfcXVhbnR1bShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQoreworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsib3RoZXIiLCAiY29udGV4dCIsIE5VTEx9OworICAgIFB5T2JqZWN0ICpvdGhlciwgKmNvbnRleHQ7CisgICAgUHlPYmplY3QgKmEsICpiOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98TyIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3RoZXIsICZjb250ZXh0KSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgQ09OVEVYVF9DSEVDS19WQShjb250ZXh0KTsKKyAgICBDT05WRVJUX0JJTk9QX1JBSVNFKCZhLCAmYiwgc2VsZiwgb3RoZXIsIGNvbnRleHQpOworCisgICAgcmVzdWx0ID0gbXBkX3NhbWVfcXVhbnR1bShNUEQoYSksIE1QRChiKSkgPyBpbmNyX3RydWUoKSA6IGluY3JfZmFsc2UoKTsKKyAgICBQeV9ERUNSRUYoYSk7CisgICAgUHlfREVDUkVGKGIpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLyogQmluYXJ5IGZ1bmN0aW9ucywgb3B0aW9uYWwgY29udGV4dCBhcmcgKi8KK0RlY19CaW5hcnlGdW5jVkEobXBkX3FhbmQpCitEZWNfQmluYXJ5RnVuY1ZBKG1wZF9xb3IpCitEZWNfQmluYXJ5RnVuY1ZBKG1wZF9xeG9yKQorCitEZWNfQmluYXJ5RnVuY1ZBKG1wZF9xcm90YXRlKQorRGVjX0JpbmFyeUZ1bmNWQShtcGRfcXNjYWxlYikKK0RlY19CaW5hcnlGdW5jVkEobXBkX3FzaGlmdCkKKworc3RhdGljIFB5T2JqZWN0ICoKK2RlY19tcGRfcXF1YW50aXplKFB5T2JqZWN0ICp2LCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJleHAiLCAicm91bmRpbmciLCAiY29udGV4dCIsIE5VTEx9OworICAgIFB5T2JqZWN0ICp3LCAqY29udGV4dDsKKyAgICBQeU9iamVjdCAqYSwgKmI7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworICAgIG1wZF9jb250ZXh0X3Qgd29ya2N0eDsKKyAgICBpbnQgcm91bmQgPSAtMTsKKworICAgIENVUlJFTlRfQ09OVEVYVChjb250ZXh0KTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiT3xpTyIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdywgJnJvdW5kLCAmY29udGV4dCkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIENPTlRFWFRfQ0hFQ0tfVkEoY29udGV4dCk7CisKKyAgICB3b3JrY3R4ID0gKkNUWChjb250ZXh0KTsKKyAgICBpZiAocm91bmQgPj0gMCkgeworICAgICAgICBpZiAoIW1wZF9xc2V0cm91bmQoJndvcmtjdHgsIHJvdW5kKSkgeworICAgICAgICAgICAgcmV0dXJuIHR5cGVfZXJyb3JfcHRyKGludmFsaWRfcm91bmRpbmdfZXJyKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIENPTlZFUlRfQklOT1BfUkFJU0UoJmEsICZiLCB2LCB3LCBjb250ZXh0KTsKKworICAgIHJlc3VsdCA9IGRlY19hbGxvYygpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYoYSk7CisgICAgICAgIFB5X0RFQ1JFRihiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbXBkX3FxdWFudGl6ZShNUEQocmVzdWx0KSwgTVBEKGEpLCBNUEQoYiksICZ3b3JrY3R4LCAmc3RhdHVzKTsKKyAgICBQeV9ERUNSRUYoYSk7CisgICAgUHlfREVDUkVGKGIpOworICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsKKyAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qIFNwZWNpYWwgbWV0aG9kcyAqLworc3RhdGljIFB5T2JqZWN0ICoKK2RlY19yaWNoY29tcGFyZShQeU9iamVjdCAqdiwgUHlPYmplY3QgKncsIGludCBvcCkKK3sKKyAgICBQeU9iamVjdCAqYTsKKyAgICBQeU9iamVjdCAqYjsKKyAgICBQeU9iamVjdCAqY29udGV4dDsKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworICAgIGludCBhX2lzc25hbiwgYl9pc3NuYW47CisgICAgaW50IHI7CisKKyAgICBhc3NlcnQoUHlEZWNfQ2hlY2sodikpOworCisgICAgQ1VSUkVOVF9DT05URVhUKGNvbnRleHQpOworICAgIENPTlZFUlRfQklOT1BfQ01QKCZhLCAmYiwgdiwgdywgb3AsIGNvbnRleHQpOworCisgICAgYV9pc3NuYW4gPSBtcGRfaXNzbmFuKE1QRChhKSk7CisgICAgYl9pc3NuYW4gPSBtcGRfaXNzbmFuKE1QRChiKSk7CisKKyAgICByID0gbXBkX3FjbXAoTVBEKGEpLCBNUEQoYiksICZzdGF0dXMpOworICAgIFB5X0RFQ1JFRihhKTsKKyAgICBQeV9ERUNSRUYoYik7CisgICAgaWYgKHIgPT0gSU5UX01BWCkgeworICAgICAgICAvKiBzTmFOcyBvciBvcD17bGUsZ2UsbHQsZ3R9IGFsd2F5cyBzaWduYWwuICovCisgICAgICAgIGlmIChhX2lzc25hbiB8fCBiX2lzc25hbiB8fCAob3AgIT0gUHlfRVEgJiYgb3AgIT0gUHlfTkUpKSB7CisgICAgICAgICAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLyogcU5hTiBjb21wYXJpc29uIHdpdGggb3A9e2VxLG5lfSBvciBjb21wYXJpc29uCisgICAgICAgICAqIHdpdGggSW52YWxpZE9wZXJhdGlvbiBkaXNhYmxlZC4gKi8KKyAgICAgICAgcmV0dXJuIChvcCA9PSBQeV9ORSkgPyBpbmNyX3RydWUoKSA6IGluY3JfZmFsc2UoKTsKKyAgICB9CisKKyAgICBzd2l0Y2ggKG9wKSB7CisgICAgY2FzZSBQeV9FUToKKyAgICAgICAgciA9IChyID09IDApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5X05FOgorICAgICAgICByID0gKHIgIT0gMCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlfTEU6CisgICAgICAgIHIgPSAociA8PSAwKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQeV9HRToKKyAgICAgICAgciA9IChyID49IDApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5X0xUOgorICAgICAgICByID0gKHIgPT0gLTEpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5X0dUOgorICAgICAgICByID0gKHIgPT0gMSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcocik7Cit9CisKKy8qIF9fY2VpbF9fICovCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX2NlaWwoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSBVTlVTRUQpCit7CisgICAgUHlPYmplY3QgKmNvbnRleHQ7CisKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7CisgICAgcmV0dXJuIGRlY19hc19sb25nKHNlbGYsIGNvbnRleHQsIE1QRF9ST1VORF9DRUlMSU5HKTsKK30KKworLyogX19jb21wbGV4X18gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitkZWNfY29tcGxleChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmR1bW15IFVOVVNFRCkKK3sKKyAgICBQeU9iamVjdCAqZjsKKyAgICBkb3VibGUgeDsKKworICAgIGYgPSBQeURlY19Bc0Zsb2F0KHNlbGYpOworICAgIGlmIChmID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgeCA9IFB5RmxvYXRfQXNEb3VibGUoZik7CisgICAgUHlfREVDUkVGKGYpOworICAgIGlmICh4ID09IC0xLjAgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gUHlDb21wbGV4X0Zyb21Eb3VibGVzKHgsIDApOworfQorCisvKiBfX2NvcHlfXyBhbmQgX19kZWVwY29weV9fICovCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX2NvcHkoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSBVTlVTRUQpCit7CisgICAgUHlfSU5DUkVGKHNlbGYpOworICAgIHJldHVybiBzZWxmOworfQorCisvKiBfX2Zsb29yX18gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitkZWNfZmxvb3IoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSBVTlVTRUQpCit7CisgICAgUHlPYmplY3QgKmNvbnRleHQ7CisKKyAgICBDVVJSRU5UX0NPTlRFWFQoY29udGV4dCk7CisgICAgcmV0dXJuIGRlY19hc19sb25nKHNlbGYsIGNvbnRleHQsIE1QRF9ST1VORF9GTE9PUik7Cit9CisKKy8qIEFsd2F5cyB1c2VzIHRoZSBtb2R1bGUgY29udGV4dCAqLworc3RhdGljIFB5X2hhc2hfdAorX2RlY19oYXNoKFB5RGVjT2JqZWN0ICp2KQoreworI2lmIGRlZmluZWQoQ09ORklHXzY0KSAmJiBfUHlIQVNIX0JJVFMgPT0gNjEKKyAgICAvKiAyKio2MSAtIDEgKi8KKyAgICBtcGRfdWludF90IHBfZGF0YVsxXSA9IHsyMzA1ODQzMDA5MjEzNjkzOTUxVUxMfTsKKyAgICBtcGRfdCBwID0ge01QRF9QT1N8TVBEX1NUQVRJQ3xNUERfQ09OU1RfREFUQSwgMCwgMTksIDEsIDEsIHBfZGF0YX07CisgICAgLyogSW52ZXJzZSBvZiAxMCBtb2R1bG8gcCAqLworICAgIG1wZF91aW50X3QgaW52MTBfcF9kYXRhWzFdID0gezIwNzUyNTg3MDgyOTIzMjQ1NTZVTEx9OworICAgIG1wZF90IGludjEwX3AgPSB7TVBEX1BPU3xNUERfU1RBVElDfE1QRF9DT05TVF9EQVRBLAorICAgICAgICAgICAgICAgICAgICAgMCwgMTksIDEsIDEsIGludjEwX3BfZGF0YX07CisjZWxpZiBkZWZpbmVkKENPTkZJR18zMikgJiYgX1B5SEFTSF9CSVRTID09IDMxCisgICAgLyogMioqMzEgLSAxICovCisgICAgbXBkX3VpbnRfdCBwX2RhdGFbMl0gPSB7MTQ3NDgzNjQ3VUwsIDJ9OworICAgIG1wZF90IHAgPSB7TVBEX1BPU3xNUERfU1RBVElDfE1QRF9DT05TVF9EQVRBLCAwLCAxMCwgMiwgMiwgcF9kYXRhfTsKKyAgICAvKiBJbnZlcnNlIG9mIDEwIG1vZHVsbyBwICovCisgICAgbXBkX3VpbnRfdCBpbnYxMF9wX2RhdGFbMl0gPSB7NTAzMjM4NTUzVUwsIDF9OworICAgIG1wZF90IGludjEwX3AgPSB7TVBEX1BPU3xNUERfU1RBVElDfE1QRF9DT05TVF9EQVRBLAorICAgICAgICAgICAgICAgICAgICAgMCwgMTAsIDIsIDIsIGludjEwX3BfZGF0YX07CisjZWxzZQorICAgICNlcnJvciAiTm8gdmFsaWQgY29tYmluYXRpb24gb2YgQ09ORklHXzY0LCBDT05GSUdfMzIgYW5kIF9QeUhBU0hfQklUUyIKKyNlbmRpZgorICAgIGNvbnN0IFB5X2hhc2hfdCBweV9oYXNoX2luZiA9IDMxNDE1OTsKKyAgICBjb25zdCBQeV9oYXNoX3QgcHlfaGFzaF9uYW4gPSAwOworICAgIG1wZF91aW50X3QgdGVuX2RhdGFbMV0gPSB7MTB9OworICAgIG1wZF90IHRlbiA9IHtNUERfUE9TfE1QRF9TVEFUSUN8TVBEX0NPTlNUX0RBVEEsCisgICAgICAgICAgICAgICAgIDAsIDIsIDEsIDEsIHRlbl9kYXRhfTsKKyAgICBQeV9oYXNoX3QgcmVzdWx0OworICAgIG1wZF90ICpleHBfaGFzaCA9IE5VTEw7CisgICAgbXBkX3QgKnRtcCA9IE5VTEw7CisgICAgbXBkX3NzaXplX3QgZXhwOworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisgICAgbXBkX2NvbnRleHRfdCBtYXhjdHg7CisgICAgUHlPYmplY3QgKmNvbnRleHQ7CisKKworICAgIGNvbnRleHQgPSBjdXJyZW50X2NvbnRleHQoKTsKKyAgICBpZiAoY29udGV4dCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChNUEQodikpKSB7CisgICAgICAgIGlmIChtcGRfaXNzbmFuKE1QRCh2KSkpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgIkNhbm5vdCBoYXNoIGEgc2lnbmFsaW5nIE5hTiB2YWx1ZSIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG1wZF9pc25hbihNUEQodikpKSB7CisgICAgICAgICAgICByZXR1cm4gcHlfaGFzaF9uYW47CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gcHlfaGFzaF9pbmYgKiBtcGRfYXJpdGhfc2lnbihNUEQodikpOworICAgICAgICB9CisgICAgfQorCisgICAgbXBkX21heGNvbnRleHQoJm1heGN0eCk7CisgICAgZXhwX2hhc2ggPSBtcGRfcW5ldygpOworICAgIGlmIChleHBfaGFzaCA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gbWFsbG9jX2Vycm9yOworICAgIH0KKyAgICB0bXAgPSBtcGRfcW5ldygpOworICAgIGlmICh0bXAgPT0gTlVMTCkgeworICAgICAgICBnb3RvIG1hbGxvY19lcnJvcjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIGV4cCh2KTogZXhwb25lbnQgb2YgdgorICAgICAqIGludCh2KTogY29lZmZpY2llbnQgb2YgdgorICAgICAqLworICAgIGV4cCA9IE1QRCh2KS0+ZXhwOworICAgIGlmIChleHAgPj0gMCkgeworICAgICAgICAvKiAxMCoqZXhwKHYpICUgcCAqLworICAgICAgICBtcGRfcXNzZXRfc3NpemUodG1wLCBleHAsICZtYXhjdHgsICZzdGF0dXMpOworICAgICAgICBtcGRfcXBvd21vZChleHBfaGFzaCwgJnRlbiwgdG1wLCAmcCwgJm1heGN0eCwgJnN0YXR1cyk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvKiBpbnYxMF9wKiooLWV4cCh2KSkgJSBwICovCisgICAgICAgIG1wZF9xc3NldF9zc2l6ZSh0bXAsIC1leHAsICZtYXhjdHgsICZzdGF0dXMpOworICAgICAgICBtcGRfcXBvd21vZChleHBfaGFzaCwgJmludjEwX3AsIHRtcCwgJnAsICZtYXhjdHgsICZzdGF0dXMpOworICAgIH0KKworICAgIC8qIGhhc2ggPSAoaW50KHYpICogZXhwX2hhc2gpICUgcCAqLworICAgIGlmICghbXBkX3Fjb3B5KHRtcCwgTVBEKHYpLCAmc3RhdHVzKSkgeworICAgICAgICBnb3RvIG1hbGxvY19lcnJvcjsKKyAgICB9CisgICAgdG1wLT5leHAgPSAwOworICAgIG1wZF9zZXRfcG9zaXRpdmUodG1wKTsKKyAgICBtcGRfcW11bCh0bXAsIHRtcCwgZXhwX2hhc2gsICZtYXhjdHgsICZzdGF0dXMpOworICAgIG1wZF9xcmVtKHRtcCwgdG1wLCAmcCwgJm1heGN0eCwgJnN0YXR1cyk7CisKKyAgICByZXN1bHQgPSBtcGRfcWdldF9zc2l6ZSh0bXAsICZzdGF0dXMpOworICAgIHJlc3VsdCA9IG1wZF9pc3Bvc2l0aXZlKE1QRCh2KSkgPyByZXN1bHQgOiAtcmVzdWx0OworICAgIHJlc3VsdCA9IChyZXN1bHQgPT0gLTEpID8gLTIgOiByZXN1bHQ7CisKKyAgICBpZiAoc3RhdHVzICE9IDApIHsKKyAgICAgICAgc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmVzdWx0ID0gLTE7CisgICAgICAgICAgICBnb3RvIGZpbmlzaDsKKyAgICAgICAgfQorICAgIH0KKworCitmaW5pc2g6CisgICAgaWYgKGV4cF9oYXNoKSBtcGRfZGVsKGV4cF9oYXNoKTsKKyAgICBpZiAodG1wKSBtcGRfZGVsKHRtcCk7CisgICAgcmV0dXJuIHJlc3VsdDsKKworbWFsbG9jX2Vycm9yOgorICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgcmVzdWx0ID0gLTE7CisgICAgZ290byBmaW5pc2g7Cit9CisKK3N0YXRpYyBQeV9oYXNoX3QKK2RlY19oYXNoKFB5RGVjT2JqZWN0ICpzZWxmKQoreworICAgIGlmIChzZWxmLT5oYXNoID09IC0xKSB7CisgICAgICAgIHNlbGYtPmhhc2ggPSBfZGVjX2hhc2goc2VsZik7CisgICAgfQorCisgICAgcmV0dXJuIHNlbGYtPmhhc2g7Cit9CisKKy8qIF9fcmVkdWNlX18gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitkZWNfcmVkdWNlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqZHVtbXkgVU5VU0VEKQoreworICAgIFB5T2JqZWN0ICpyZXN1bHQsICpzdHI7CisKKyAgICBzdHIgPSBkZWNfc3RyKHNlbGYpOworICAgIGlmIChzdHIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXN1bHQgPSBQeV9CdWlsZFZhbHVlKCJPKE8pIiwgUHlfVFlQRShzZWxmKSwgc3RyKTsKKyAgICBQeV9ERUNSRUYoc3RyKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qIF9fc2l6ZW9mX18gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitkZWNfc2l6ZW9mKFB5T2JqZWN0ICp2LCBQeU9iamVjdCAqZHVtbXkgVU5VU0VEKQoreworICAgIFB5X3NzaXplX3QgcmVzOworCisgICAgcmVzID0gc2l6ZW9mKFB5RGVjT2JqZWN0KTsKKyAgICBpZiAobXBkX2lzZHluYW1pY19kYXRhKE1QRCh2KSkpIHsKKyAgICAgICAgcmVzICs9IE1QRCh2KS0+YWxsb2MgKiBzaXplb2YobXBkX3VpbnRfdCk7CisgICAgfQorICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3QocmVzKTsKK30KKworLyogX190cnVuY19fICovCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX3RydW5jKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqZHVtbXkgVU5VU0VEKQoreworICAgIFB5T2JqZWN0ICpjb250ZXh0OworCisgICAgQ1VSUkVOVF9DT05URVhUKGNvbnRleHQpOworICAgIHJldHVybiBkZWNfYXNfbG9uZyhzZWxmLCBjb250ZXh0LCBNUERfUk9VTkRfRE9XTik7Cit9CisKKy8qIHJlYWwgYW5kIGltYWcgKi8KK3N0YXRpYyBQeU9iamVjdCAqCitkZWNfcmVhbChQeU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSBVTlVTRUQpCit7CisgICAgUHlfSU5DUkVGKHNlbGYpOworICAgIHJldHVybiBzZWxmOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZGVjX2ltYWcoUHlPYmplY3QgKnNlbGYgVU5VU0VELCB2b2lkICpjbG9zdXJlIFVOVVNFRCkKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0OworCisgICAgcmVzdWx0ID0gZGVjX2FsbG9jKCk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIF9kZWNfc2V0dHJpcGxlKHJlc3VsdCwgTVBEX1BPUywgMCwgMCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitzdGF0aWMgUHlHZXRTZXREZWYgZGVjX2dldHNldHMgW10gPQoreworICB7ICJyZWFsIiwgKGdldHRlcilkZWNfcmVhbCwgTlVMTCwgTlVMTCwgTlVMTH0sCisgIHsgImltYWciLCAoZ2V0dGVyKWRlY19pbWFnLCBOVUxMLCBOVUxMLCBOVUxMfSwKKyAge05VTEx9Cit9OworCitzdGF0aWMgUHlOdW1iZXJNZXRob2RzIGRlY19udW1iZXJfbWV0aG9kcyA9Cit7CisgICAgKGJpbmFyeWZ1bmMpIG5tX21wZF9xYWRkLAorICAgIChiaW5hcnlmdW5jKSBubV9tcGRfcXN1YiwKKyAgICAoYmluYXJ5ZnVuYykgbm1fbXBkX3FtdWwsCisgICAgKGJpbmFyeWZ1bmMpIG5tX21wZF9xcmVtLAorICAgIChiaW5hcnlmdW5jKSBubV9tcGRfcWRpdm1vZCwKKyAgICAodGVybmFyeWZ1bmMpIG5tX21wZF9xcG93LAorICAgICh1bmFyeWZ1bmMpIG5tX21wZF9xbWludXMsCisgICAgKHVuYXJ5ZnVuYykgbm1fbXBkX3FwbHVzLAorICAgICh1bmFyeWZ1bmMpIG5tX21wZF9xYWJzLAorICAgIChpbnF1aXJ5KSBubV9ub256ZXJvLAorICAgICh1bmFyeWZ1bmMpIDAsICAgLyogbm8gYml0LWNvbXBsZW1lbnQgKi8KKyAgICAoYmluYXJ5ZnVuYykgMCwgIC8qIG5vIHNoaWZ0bCAqLworICAgIChiaW5hcnlmdW5jKSAwLCAgLyogbm8gc2hpZnRyICovCisgICAgKGJpbmFyeWZ1bmMpIDAsICAvKiBubyBiaXQtYW5kICovCisgICAgKGJpbmFyeWZ1bmMpIDAsICAvKiBubyBiaXQteG9yICovCisgICAgKGJpbmFyeWZ1bmMpIDAsICAvKiBubyBiaXQtaW9yICovCisgICAgKHVuYXJ5ZnVuYykgbm1fZGVjX2FzX2xvbmcsCisgICAgMCwgICAgICAgICAgICAgICAvKiBuYl9yZXNlcnZlZCAqLworICAgICh1bmFyeWZ1bmMpIFB5RGVjX0FzRmxvYXQsCisgICAgMCwgICAgICAgICAgICAgICAvKiBiaW5hcnlmdW5jIG5iX2lucGxhY2VfYWRkOyAqLworICAgIDAsICAgICAgICAgICAgICAgLyogYmluYXJ5ZnVuYyBuYl9pbnBsYWNlX3N1YnRyYWN0OyAqLworICAgIDAsICAgICAgICAgICAgICAgLyogYmluYXJ5ZnVuYyBuYl9pbnBsYWNlX211bHRpcGx5OyAqLworICAgIDAsICAgICAgICAgICAgICAgLyogYmluYXJ5ZnVuYyBuYl9pbnBsYWNlX3JlbWFpbmRlcjsgKi8KKyAgICAwLCAgICAgICAgICAgICAgIC8qIHRlcm5hcnlmdW5jIG5iX2lucGxhY2VfcG93ZXI7ICovCisgICAgMCwgICAgICAgICAgICAgICAvKiBiaW5hcnlmdW5jIG5iX2lucGxhY2VfbHNoaWZ0OyAqLworICAgIDAsICAgICAgICAgICAgICAgLyogYmluYXJ5ZnVuYyBuYl9pbnBsYWNlX3JzaGlmdDsgKi8KKyAgICAwLCAgICAgICAgICAgICAgIC8qIGJpbmFyeWZ1bmMgbmJfaW5wbGFjZV9hbmQ7ICovCisgICAgMCwgICAgICAgICAgICAgICAvKiBiaW5hcnlmdW5jIG5iX2lucGxhY2VfeG9yOyAqLworICAgIDAsICAgICAgICAgICAgICAgLyogYmluYXJ5ZnVuYyBuYl9pbnBsYWNlX29yOyAqLworICAgIChiaW5hcnlmdW5jKSBubV9tcGRfcWRpdmludCwgIC8qIGJpbmFyeWZ1bmMgbmJfZmxvb3JfZGl2aWRlOyAqLworICAgIChiaW5hcnlmdW5jKSBubV9tcGRfcWRpdiwgICAgIC8qIGJpbmFyeWZ1bmMgbmJfdHJ1ZV9kaXZpZGU7ICovCisgICAgMCwgICAgICAgICAgICAgICAvKiBiaW5hcnlmdW5jIG5iX2lucGxhY2VfZmxvb3JfZGl2aWRlOyAqLworICAgIDAsICAgICAgICAgICAgICAgLyogYmluYXJ5ZnVuYyBuYl9pbnBsYWNlX3RydWVfZGl2aWRlOyAqLworfTsKKworc3RhdGljIFB5TWV0aG9kRGVmIGRlY19tZXRob2RzIFtdID0KK3sKKyAgLyogVW5hcnkgYXJpdGhtZXRpYyBmdW5jdGlvbnMsIG9wdGlvbmFsIGNvbnRleHQgYXJnICovCisgIHsgImV4cCIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3FleHAsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfZXhwIH0sCisgIHsgImxuIiwgKFB5Q0Z1bmN0aW9uKWRlY19tcGRfcWxuLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX2xuIH0sCisgIHsgImxvZzEwIiwgKFB5Q0Z1bmN0aW9uKWRlY19tcGRfcWxvZzEwLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX2xvZzEwIH0sCisgIHsgIm5leHRfbWludXMiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xbmV4dF9taW51cywgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19uZXh0X21pbnVzIH0sCisgIHsgIm5leHRfcGx1cyIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3FuZXh0X3BsdXMsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfbmV4dF9wbHVzIH0sCisgIHsgIm5vcm1hbGl6ZSIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3FyZWR1Y2UsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2Nfbm9ybWFsaXplIH0sCisgIHsgInRvX2ludGVncmFsIiwgKFB5Q0Z1bmN0aW9uKVB5RGVjX1RvSW50ZWdyYWxWYWx1ZSwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY190b19pbnRlZ3JhbCB9LAorICB7ICJ0b19pbnRlZ3JhbF9leGFjdCIsIChQeUNGdW5jdGlvbilQeURlY19Ub0ludGVncmFsRXhhY3QsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfdG9faW50ZWdyYWxfZXhhY3QgfSwKKyAgeyAidG9faW50ZWdyYWxfdmFsdWUiLCAoUHlDRnVuY3Rpb24pUHlEZWNfVG9JbnRlZ3JhbFZhbHVlLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX3RvX2ludGVncmFsX3ZhbHVlIH0sCisgIHsgInNxcnQiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xc3FydCwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19zcXJ0IH0sCisKKyAgLyogQmluYXJ5IGFyaXRobWV0aWMgZnVuY3Rpb25zLCBvcHRpb25hbCBjb250ZXh0IGFyZyAqLworICB7ICJjb21wYXJlIiwgKFB5Q0Z1bmN0aW9uKWRlY19tcGRfcWNvbXBhcmUsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfY29tcGFyZSB9LAorICB7ICJjb21wYXJlX3NpZ25hbCIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3Fjb21wYXJlX3NpZ25hbCwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19jb21wYXJlX3NpZ25hbCB9LAorICB7ICJtYXgiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xbWF4LCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX21heCB9LAorICB7ICJtYXhfbWFnIiwgKFB5Q0Z1bmN0aW9uKWRlY19tcGRfcW1heF9tYWcsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfbWF4X21hZyB9LAorICB7ICJtaW4iLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xbWluLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX21pbiB9LAorICB7ICJtaW5fbWFnIiwgKFB5Q0Z1bmN0aW9uKWRlY19tcGRfcW1pbl9tYWcsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfbWluX21hZyB9LAorICB7ICJuZXh0X3Rvd2FyZCIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3FuZXh0X3Rvd2FyZCwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19uZXh0X3Rvd2FyZCB9LAorICB7ICJxdWFudGl6ZSIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3FxdWFudGl6ZSwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19xdWFudGl6ZSB9LAorICB7ICJyZW1haW5kZXJfbmVhciIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3FyZW1fbmVhciwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19yZW1haW5kZXJfbmVhciB9LAorCisgIC8qIFRlcm5hcnkgYXJpdGhtZXRpYyBmdW5jdGlvbnMsIG9wdGlvbmFsIGNvbnRleHQgYXJnICovCisgIHsgImZtYSIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3FmbWEsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfZm1hIH0sCisKKyAgLyogQm9vbGVhbiBmdW5jdGlvbnMsIG5vIGNvbnRleHQgYXJnICovCisgIHsgImlzX2Nhbm9uaWNhbCIsIGRlY19tcGRfaXNjYW5vbmljYWwsIE1FVEhfTk9BUkdTLCBkb2NfaXNfY2Fub25pY2FsIH0sCisgIHsgImlzX2Zpbml0ZSIsIGRlY19tcGRfaXNmaW5pdGUsIE1FVEhfTk9BUkdTLCBkb2NfaXNfZmluaXRlIH0sCisgIHsgImlzX2luZmluaXRlIiwgZGVjX21wZF9pc2luZmluaXRlLCBNRVRIX05PQVJHUywgZG9jX2lzX2luZmluaXRlIH0sCisgIHsgImlzX25hbiIsIGRlY19tcGRfaXNuYW4sIE1FVEhfTk9BUkdTLCBkb2NfaXNfbmFuIH0sCisgIHsgImlzX3FuYW4iLCBkZWNfbXBkX2lzcW5hbiwgTUVUSF9OT0FSR1MsIGRvY19pc19xbmFuIH0sCisgIHsgImlzX3NuYW4iLCBkZWNfbXBkX2lzc25hbiwgTUVUSF9OT0FSR1MsIGRvY19pc19zbmFuIH0sCisgIHsgImlzX3NpZ25lZCIsIGRlY19tcGRfaXNzaWduZWQsIE1FVEhfTk9BUkdTLCBkb2NfaXNfc2lnbmVkIH0sCisgIHsgImlzX3plcm8iLCBkZWNfbXBkX2lzemVybywgTUVUSF9OT0FSR1MsIGRvY19pc196ZXJvIH0sCisKKyAgLyogQm9vbGVhbiBmdW5jdGlvbnMsIG9wdGlvbmFsIGNvbnRleHQgYXJnICovCisgIHsgImlzX25vcm1hbCIsIChQeUNGdW5jdGlvbilkZWNfbXBkX2lzbm9ybWFsLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX2lzX25vcm1hbCB9LAorICB7ICJpc19zdWJub3JtYWwiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9pc3N1Ym5vcm1hbCwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19pc19zdWJub3JtYWwgfSwKKworICAvKiBVbmFyeSBmdW5jdGlvbnMsIG5vIGNvbnRleHQgYXJnICovCisgIHsgImFkanVzdGVkIiwgZGVjX21wZF9hZGpleHAsIE1FVEhfTk9BUkdTLCBkb2NfYWRqdXN0ZWQgfSwKKyAgeyAiY2Fub25pY2FsIiwgZGVjX2Nhbm9uaWNhbCwgTUVUSF9OT0FSR1MsIGRvY19jYW5vbmljYWwgfSwKKyAgeyAiY29uanVnYXRlIiwgZGVjX2Nvbmp1Z2F0ZSwgTUVUSF9OT0FSR1MsIGRvY19jb25qdWdhdGUgfSwKKyAgeyAicmFkaXgiLCBkZWNfbXBkX3JhZGl4LCBNRVRIX05PQVJHUywgZG9jX3JhZGl4IH0sCisKKyAgLyogVW5hcnkgZnVuY3Rpb25zLCBvcHRpb25hbCBjb250ZXh0IGFyZyBmb3IgY29udmVyc2lvbiBlcnJvcnMgKi8KKyAgeyAiY29weV9hYnMiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xY29weV9hYnMsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfY29weV9hYnMgfSwKKyAgeyAiY29weV9uZWdhdGUiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xY29weV9uZWdhdGUsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfY29weV9uZWdhdGUgfSwKKworICAvKiBVbmFyeSBmdW5jdGlvbnMsIG9wdGlvbmFsIGNvbnRleHQgYXJnICovCisgIHsgImxvZ2IiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xbG9nYiwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19sb2diIH0sCisgIHsgImxvZ2ljYWxfaW52ZXJ0IiwgKFB5Q0Z1bmN0aW9uKWRlY19tcGRfcWludmVydCwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19sb2dpY2FsX2ludmVydCB9LAorICB7ICJudW1iZXJfY2xhc3MiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9jbGFzcywgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19udW1iZXJfY2xhc3MgfSwKKyAgeyAidG9fZW5nX3N0cmluZyIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3RvX2VuZywgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY190b19lbmdfc3RyaW5nIH0sCisKKyAgLyogQmluYXJ5IGZ1bmN0aW9ucywgb3B0aW9uYWwgY29udGV4dCBhcmcgZm9yIGNvbnZlcnNpb24gZXJyb3JzICovCisgIHsgImNvbXBhcmVfdG90YWwiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9jb21wYXJlX3RvdGFsLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX2NvbXBhcmVfdG90YWwgfSwKKyAgeyAiY29tcGFyZV90b3RhbF9tYWciLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9jb21wYXJlX3RvdGFsX21hZywgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19jb21wYXJlX3RvdGFsX21hZyB9LAorICB7ICJjb3B5X3NpZ24iLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xY29weV9zaWduLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX2NvcHlfc2lnbiB9LAorICB7ICJzYW1lX3F1YW50dW0iLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9zYW1lX3F1YW50dW0sIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2Nfc2FtZV9xdWFudHVtIH0sCisKKyAgLyogQmluYXJ5IGZ1bmN0aW9ucywgb3B0aW9uYWwgY29udGV4dCBhcmcgKi8KKyAgeyAibG9naWNhbF9hbmQiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xYW5kLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX2xvZ2ljYWxfYW5kIH0sCisgIHsgImxvZ2ljYWxfb3IiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xb3IsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfbG9naWNhbF9vciB9LAorICB7ICJsb2dpY2FsX3hvciIsIChQeUNGdW5jdGlvbilkZWNfbXBkX3F4b3IsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2NfbG9naWNhbF94b3IgfSwKKyAgeyAicm90YXRlIiwgKFB5Q0Z1bmN0aW9uKWRlY19tcGRfcXJvdGF0ZSwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19yb3RhdGUgfSwKKyAgeyAic2NhbGViIiwgKFB5Q0Z1bmN0aW9uKWRlY19tcGRfcXNjYWxlYiwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIGRvY19zY2FsZWIgfSwKKyAgeyAic2hpZnQiLCAoUHlDRnVuY3Rpb24pZGVjX21wZF9xc2hpZnQsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLCBkb2Nfc2hpZnQgfSwKKworICAvKiBNaXNjZWxsYW5lb3VzICovCisgIHsgImZyb21fZmxvYXQiLCBkZWNfZnJvbV9mbG9hdCwgTUVUSF9PfE1FVEhfQ0xBU1MsIGRvY19mcm9tX2Zsb2F0IH0sCisgIHsgImFzX3R1cGxlIiwgUHlEZWNfQXNUdXBsZSwgTUVUSF9OT0FSR1MsIGRvY19hc190dXBsZSB9LAorCisgIC8qIFNwZWNpYWwgbWV0aG9kcyAqLworICB7ICJfX2NvcHlfXyIsIGRlY19jb3B5LCBNRVRIX05PQVJHUywgTlVMTCB9LAorICB7ICJfX2RlZXBjb3B5X18iLCBkZWNfY29weSwgTUVUSF9PLCBOVUxMIH0sCisgIHsgIl9fZm9ybWF0X18iLCBkZWNfZm9ybWF0LCBNRVRIX1ZBUkFSR1MsIE5VTEwgfSwKKyAgeyAiX19yZWR1Y2VfXyIsIGRlY19yZWR1Y2UsIE1FVEhfTk9BUkdTLCBOVUxMIH0sCisgIHsgIl9fcm91bmRfXyIsIFB5RGVjX1JvdW5kLCBNRVRIX1ZBUkFSR1MsIE5VTEwgfSwKKyAgeyAiX19jZWlsX18iLCBkZWNfY2VpbCwgTUVUSF9OT0FSR1MsIE5VTEwgfSwKKyAgeyAiX19mbG9vcl9fIiwgZGVjX2Zsb29yLCBNRVRIX05PQVJHUywgTlVMTCB9LAorICB7ICJfX3RydW5jX18iLCBkZWNfdHJ1bmMsIE1FVEhfTk9BUkdTLCBOVUxMIH0sCisgIHsgIl9fY29tcGxleF9fIiwgZGVjX2NvbXBsZXgsIE1FVEhfTk9BUkdTLCBOVUxMIH0sCisgIHsgIl9fc2l6ZW9mX18iLCBkZWNfc2l6ZW9mLCBNRVRIX05PQVJHUywgTlVMTCB9LAorCisgIHsgTlVMTCwgTlVMTCwgMSB9Cit9OworCitzdGF0aWMgUHlUeXBlT2JqZWN0IFB5RGVjX1R5cGUgPQoreworICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQorICAgICJkZWNpbWFsLkRlY2ltYWwiLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9uYW1lICovCisgICAgc2l6ZW9mKFB5RGVjT2JqZWN0KSwgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLworICAgIChkZXN0cnVjdG9yKSBkZWNfZGVhbGxvYywgICAgICAgICAgICAgICAvKiB0cF9kZWFsbG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCisgICAgKGdldGF0dHJmdW5jKSAwLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KKyAgICAoc2V0YXR0cmZ1bmMpIDAsICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZlZCAqLworICAgIChyZXByZnVuYykgZGVjX3JlcHIsICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCisgICAgJmRlY19udW1iZXJfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCisgICAgKGhhc2hmdW5jKSBkZWNfaGFzaCwgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLworICAgIChyZXByZnVuYykgZGVjX3N0ciwgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KKyAgICAoZ2V0YXR0cm9mdW5jKSBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAoc2V0YXR0cm9mdW5jKSAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAoUHlCdWZmZXJQcm9jcyAqKSAwLCAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfYnVmZmVyICovCisgICAgKFB5X1RQRkxBR1NfREVGQVVMVHwKKyAgICAgUHlfVFBGTEFHU19CQVNFVFlQRSksICAgICAgICAgICAgICAgICAgLyogdHBfZmxhZ3MgKi8KKyAgICBkb2NfZGVjaW1hbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgZGVjX3JpY2hjb21wYXJlLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICBkZWNfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCisgICAgZGVjX2dldHNldHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3NldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2luaXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KKyAgICBkZWNfbmV3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCisgICAgUHlPYmplY3RfRGVsLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2ZyZWUgKi8KK307CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgIENvbnRleHQgT2JqZWN0LCBQYXJ0IDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgTWFjcm9zIGZvciBjb252ZXJ0aW5nIG1wZGVjaW1hbCBmdW5jdGlvbnMgdG8gQ29udGV4dCBtZXRob2RzICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogQm9vbGVhbiBjb250ZXh0IG1ldGhvZC4gKi8KKyNkZWZpbmUgRGVjQ3R4X0Jvb2xGdW5jKE1QREZVTkMpIFwKK3N0YXRpYyBQeU9iamVjdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitjdHhfIyNNUERGVU5DKFB5T2JqZWN0ICpjb250ZXh0LCBQeU9iamVjdCAqdikgICAgICAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqcmV0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUHlPYmplY3QgKmE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBDT05WRVJUX09QX1JBSVNFKCZhLCB2LCBjb250ZXh0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldCA9IE1QREZVTkMoTVBEKGEpLCBDVFgoY29udGV4dCkpID8gaW5jcl90cnVlKCkgOiBpbmNyX2ZhbHNlKCk7IFwKKyAgICBQeV9ERUNSRUYoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIHJldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisvKiBCb29sZWFuIGNvbnRleHQgbWV0aG9kLiBNUERGVU5DIGRvZXMgTk9UIHVzZSBhIGNvbnRleHQuICovCisjZGVmaW5lIERlY0N0eF9Cb29sRnVuY19OT19DVFgoTVBERlVOQykgXAorc3RhdGljIFB5T2JqZWN0ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitjdHhfIyNNUERGVU5DKFB5T2JqZWN0ICpjb250ZXh0LCBQeU9iamVjdCAqdikgICAgICAgICAgIFwKK3sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpyZXQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUHlPYmplY3QgKmE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENPTlZFUlRfT1BfUkFJU0UoJmEsIHYsIGNvbnRleHQpOyAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXQgPSBNUERGVU5DKE1QRChhKSkgPyBpbmNyX3RydWUoKSA6IGluY3JfZmFsc2UoKTsgXAorICAgIFB5X0RFQ1JFRihhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgcmV0dXJuIHJldDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30KKworLyogVW5hcnkgY29udGV4dCBtZXRob2QuICovCisjZGVmaW5lIERlY0N0eF9VbmFyeUZ1bmMoTVBERlVOQykgXAorc3RhdGljIFB5T2JqZWN0ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorY3R4XyMjTVBERlVOQyhQeU9iamVjdCAqY29udGV4dCwgUHlPYmplY3QgKnYpICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpyZXN1bHQsICphOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENPTlZFUlRfT1BfUkFJU0UoJmEsIHYsIGNvbnRleHQpOyAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICgocmVzdWx0ID0gZGVjX2FsbG9jKCkpID09IE5VTEwpIHsgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIE1QREZVTkMoTVBEKHJlc3VsdCksIE1QRChhKSwgQ1RYKGNvbnRleHQpLCAmc3RhdHVzKTsgXAorICAgIFB5X0RFQ1JFRihhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmIChkZWNfYWRkc3RhdHVzKGNvbnRleHQsIHN0YXR1cykpIHsgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorfQorCisvKiBCaW5hcnkgY29udGV4dCBtZXRob2QuICovCisjZGVmaW5lIERlY0N0eF9CaW5hcnlGdW5jKE1QREZVTkMpIFwKK3N0YXRpYyBQeU9iamVjdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorY3R4XyMjTVBERlVOQyhQeU9iamVjdCAqY29udGV4dCwgUHlPYmplY3QgKmFyZ3MpICAgICAgICAgICAgICAgICBcCit7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqdiwgKnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICphLCAqYjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUHlPYmplY3QgKnJlc3VsdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPTyIsICZ2LCAmdykpIHsgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBDT05WRVJUX0JJTk9QX1JBSVNFKCZhLCAmYiwgdiwgdywgY29udGV4dCk7ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKChyZXN1bHQgPSBkZWNfYWxsb2MoKSkgPT0gTlVMTCkgeyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlfREVDUkVGKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTVBERlVOQyhNUEQocmVzdWx0KSwgTVBEKGEpLCBNUEQoYiksIENUWChjb250ZXh0KSwgJnN0YXR1cyk7IFwKKyAgICBQeV9ERUNSRUYoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5X0RFQ1JFRihiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeyAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9CisKKy8qCisgKiBCaW5hcnkgY29udGV4dCBtZXRob2QuIFRoZSBjb250ZXh0IGlzIG9ubHkgdXNlZCBmb3IgY29udmVyc2lvbi4KKyAqIFRoZSBhY3R1YWwgTVBERlVOQyBkb2VzIE5PVCB0YWtlIGEgY29udGV4dCBhcmcuCisgKi8KKyNkZWZpbmUgRGVjQ3R4X0JpbmFyeUZ1bmNfTk9fQ1RYKE1QREZVTkMpIFwKK3N0YXRpYyBQeU9iamVjdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitjdHhfIyNNUERGVU5DKFB5T2JqZWN0ICpjb250ZXh0LCBQeU9iamVjdCAqYXJncykgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqdiwgKnc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUHlPYmplY3QgKmEsICpiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpyZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPTyIsICZ2LCAmdykpIHsgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIENPTlZFUlRfQklOT1BfUkFJU0UoJmEsICZiLCB2LCB3LCBjb250ZXh0KTsgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKChyZXN1bHQgPSBkZWNfYWxsb2MoKSkgPT0gTlVMTCkgeyAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYoYSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlfREVDUkVGKGIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgTVBERlVOQyhNUEQocmVzdWx0KSwgTVBEKGEpLCBNUEQoYikpOyAgICAgICAgXAorICAgIFB5X0RFQ1JFRihhKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeV9ERUNSRUYoYik7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHJldHVybiByZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKK30KKworLyogVGVybmFyeSBjb250ZXh0IG1ldGhvZC4gKi8KKyNkZWZpbmUgRGVjQ3R4X1Rlcm5hcnlGdW5jKE1QREZVTkMpIFwKK3N0YXRpYyBQeU9iamVjdCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCitjdHhfIyNNUERGVU5DKFB5T2JqZWN0ICpjb250ZXh0LCBQeU9iamVjdCAqYXJncykgICAgICAgICAgICAgICAgICAgICAgICAgXAoreyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeU9iamVjdCAqdiwgKncsICp4OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgUHlPYmplY3QgKmEsICpiLCAqYzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5T2JqZWN0ICpyZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT09PIiwgJnYsICZ3LCAmeCkpIHsgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBDT05WRVJUX1RFUk5PUF9SQUlTRSgmYSwgJmIsICZjLCB2LCB3LCB4LCBjb250ZXh0KTsgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGlmICgocmVzdWx0ID0gZGVjX2FsbG9jKCkpID09IE5VTEwpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlfREVDUkVGKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFB5X0RFQ1JFRihiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBNUERGVU5DKE1QRChyZXN1bHQpLCBNUEQoYSksIE1QRChiKSwgTVBEKGMpLCBDVFgoY29udGV4dCksICZzdGF0dXMpOyBcCisgICAgUHlfREVDUkVGKGEpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFB5X0RFQ1JFRihiKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBQeV9ERUNSRUYoYyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICByZXR1cm4gcmVzdWx0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCit9CisKKworLyogVW5hcnkgYXJpdGhtZXRpYyBmdW5jdGlvbnMgKi8KK0RlY0N0eF9VbmFyeUZ1bmMobXBkX3FhYnMpCitEZWNDdHhfVW5hcnlGdW5jKG1wZF9xZXhwKQorRGVjQ3R4X1VuYXJ5RnVuYyhtcGRfcWxuKQorRGVjQ3R4X1VuYXJ5RnVuYyhtcGRfcWxvZzEwKQorRGVjQ3R4X1VuYXJ5RnVuYyhtcGRfcW1pbnVzKQorRGVjQ3R4X1VuYXJ5RnVuYyhtcGRfcW5leHRfbWludXMpCitEZWNDdHhfVW5hcnlGdW5jKG1wZF9xbmV4dF9wbHVzKQorRGVjQ3R4X1VuYXJ5RnVuYyhtcGRfcXBsdXMpCitEZWNDdHhfVW5hcnlGdW5jKG1wZF9xcmVkdWNlKQorRGVjQ3R4X1VuYXJ5RnVuYyhtcGRfcXJvdW5kX3RvX2ludCkKK0RlY0N0eF9VbmFyeUZ1bmMobXBkX3Fyb3VuZF90b19pbnR4KQorRGVjQ3R4X1VuYXJ5RnVuYyhtcGRfcXNxcnQpCisKKy8qIEJpbmFyeSBhcml0aG1ldGljIGZ1bmN0aW9ucyAqLworRGVjQ3R4X0JpbmFyeUZ1bmMobXBkX3FhZGQpCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcWNvbXBhcmUpCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcWNvbXBhcmVfc2lnbmFsKQorRGVjQ3R4X0JpbmFyeUZ1bmMobXBkX3FkaXYpCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcWRpdmludCkKK0RlY0N0eF9CaW5hcnlGdW5jKG1wZF9xbWF4KQorRGVjQ3R4X0JpbmFyeUZ1bmMobXBkX3FtYXhfbWFnKQorRGVjQ3R4X0JpbmFyeUZ1bmMobXBkX3FtaW4pCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcW1pbl9tYWcpCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcW11bCkKK0RlY0N0eF9CaW5hcnlGdW5jKG1wZF9xbmV4dF90b3dhcmQpCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcXF1YW50aXplKQorRGVjQ3R4X0JpbmFyeUZ1bmMobXBkX3FyZW0pCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcXJlbV9uZWFyKQorRGVjQ3R4X0JpbmFyeUZ1bmMobXBkX3FzdWIpCisKK3N0YXRpYyBQeU9iamVjdCAqCitjdHhfbXBkX3FkaXZtb2QoUHlPYmplY3QgKmNvbnRleHQsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICp2LCAqdzsKKyAgICBQeU9iamVjdCAqYSwgKmI7CisgICAgUHlPYmplY3QgKnEsICpyOworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisgICAgUHlPYmplY3QgKnJldDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT08iLCAmdiwgJncpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIENPTlZFUlRfQklOT1BfUkFJU0UoJmEsICZiLCB2LCB3LCBjb250ZXh0KTsKKworICAgIHEgPSBkZWNfYWxsb2MoKTsKKyAgICBpZiAocSA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihhKTsKKyAgICAgICAgUHlfREVDUkVGKGIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgciA9IGRlY19hbGxvYygpOworICAgIGlmIChyID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKGEpOworICAgICAgICBQeV9ERUNSRUYoYik7CisgICAgICAgIFB5X0RFQ1JFRihxKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbXBkX3FkaXZtb2QoTVBEKHEpLCBNUEQociksIE1QRChhKSwgTVBEKGIpLCBDVFgoY29udGV4dCksICZzdGF0dXMpOworICAgIFB5X0RFQ1JFRihhKTsKKyAgICBQeV9ERUNSRUYoYik7CisgICAgaWYgKGRlY19hZGRzdGF0dXMoY29udGV4dCwgc3RhdHVzKSkgeworICAgICAgICBQeV9ERUNSRUYocik7CisgICAgICAgIFB5X0RFQ1JFRihxKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0ID0gUHlfQnVpbGRWYWx1ZSgiKE9PKSIsIHEsIHIpOworICAgIFB5X0RFQ1JFRihyKTsKKyAgICBQeV9ERUNSRUYocSk7CisgICAgcmV0dXJuIHJldDsKK30KKworLyogQmluYXJ5IG9yIHRlcm5hcnkgYXJpdGhtZXRpYyBmdW5jdGlvbnMgKi8KK3N0YXRpYyBQeU9iamVjdCAqCitjdHhfbXBkX3Fwb3coUHlPYmplY3QgKmNvbnRleHQsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImEiLCAiYiIsICJtb2R1bG8iLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqYmFzZSwgKmV4cCwgKm1vZCA9IE5VTEw7CisgICAgUHlPYmplY3QgKmEsICpiLCAqYyA9IE5VTEw7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk9PfE8iLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJhc2UsICZleHAsICZtb2QpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIENPTlZFUlRfQklOT1BfUkFJU0UoJmEsICZiLCBiYXNlLCBleHAsIGNvbnRleHQpOworCisgICAgaWYgKG1vZCAhPSBOVUxMKSB7CisgICAgICAgIGlmICghY29udmVydF9vcChUWVBFX0VSUiwgJmMsIG1vZCwgY29udGV4dCkpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihhKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihiKTsKKyAgICAgICAgICAgIHJldHVybiBjOworICAgICAgICB9CisgICAgfQorCisgICAgcmVzdWx0ID0gZGVjX2FsbG9jKCk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihhKTsKKyAgICAgICAgUHlfREVDUkVGKGIpOworICAgICAgICBQeV9YREVDUkVGKGMpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoYyA9PSBOVUxMKSB7CisgICAgICAgIG1wZF9xcG93KE1QRChyZXN1bHQpLCBNUEQoYSksIE1QRChiKSwKKyAgICAgICAgICAgICAgICAgQ1RYKGNvbnRleHQpLCAmc3RhdHVzKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIG1wZF9xcG93bW9kKE1QRChyZXN1bHQpLCBNUEQoYSksIE1QRChiKSwgTVBEKGMpLAorICAgICAgICAgICAgICAgICAgICBDVFgoY29udGV4dCksICZzdGF0dXMpOworICAgICAgICBzdGF0dXMgPSAoc3RhdHVzID09IE1QRF9DbGFtcGVkKSA/IDAgOiBzdGF0dXM7CisgICAgICAgIC8qIHJlbW92ZSBpZGVhbCBleHBvbmVudCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGRlY2ltYWwucHkgKi8KKyAgICAgICAgbXBkX3FxdWFudGl6ZShNUEQocmVzdWx0KSwgTVBEKHJlc3VsdCksICZ6ZXJvLAorICAgICAgICAgICAgICAgICAgICAgIENUWChjb250ZXh0KSwgJnN0YXR1cyk7CisgICAgICAgIFB5X0RFQ1JFRihjKTsKKyAgICB9CisgICAgUHlfREVDUkVGKGEpOworICAgIFB5X0RFQ1JFRihiKTsKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvKiBUZXJuYXJ5IGFyaXRobWV0aWMgZnVuY3Rpb25zICovCitEZWNDdHhfVGVybmFyeUZ1bmMobXBkX3FmbWEpCisKKy8qIE5vIGFyZ3VtZW50ICovCitzdGF0aWMgUHlPYmplY3QgKgorY3R4X21wZF9yYWRpeChQeU9iamVjdCAqY29udGV4dCwgUHlPYmplY3QgKmR1bW15KQoreworICAgIHJldHVybiBkZWNfbXBkX3JhZGl4KGNvbnRleHQsIGR1bW15KTsKK30KKworLyogQm9vbGVhbiBmdW5jdGlvbnM6IHNpbmdsZSBkZWNpbWFsIGFyZ3VtZW50ICovCitEZWNDdHhfQm9vbEZ1bmMobXBkX2lzbm9ybWFsKQorRGVjQ3R4X0Jvb2xGdW5jKG1wZF9pc3N1Ym5vcm1hbCkKK0RlY0N0eF9Cb29sRnVuY19OT19DVFgobXBkX2lzZmluaXRlKQorRGVjQ3R4X0Jvb2xGdW5jX05PX0NUWChtcGRfaXNpbmZpbml0ZSkKK0RlY0N0eF9Cb29sRnVuY19OT19DVFgobXBkX2lzbmFuKQorRGVjQ3R4X0Jvb2xGdW5jX05PX0NUWChtcGRfaXNxbmFuKQorRGVjQ3R4X0Jvb2xGdW5jX05PX0NUWChtcGRfaXNzaWduZWQpCitEZWNDdHhfQm9vbEZ1bmNfTk9fQ1RYKG1wZF9pc3NuYW4pCitEZWNDdHhfQm9vbEZ1bmNfTk9fQ1RYKG1wZF9pc3plcm8pCisKK3N0YXRpYyBQeU9iamVjdCAqCitjdHhfaXNjYW5vbmljYWwoUHlPYmplY3QgKmNvbnRleHQgVU5VU0VELCBQeU9iamVjdCAqdikKK3sKKyAgICBpZiAoIVB5RGVjX0NoZWNrKHYpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAiYXJndW1lbnQgbXVzdCBiZSBhIERlY2ltYWwiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIG1wZF9pc2Nhbm9uaWNhbChNUEQodikpID8gaW5jcl90cnVlKCkgOiBpbmNyX2ZhbHNlKCk7Cit9CisKKy8qIEZ1bmN0aW9ucyB3aXRoIGEgc2luZ2xlIGRlY2ltYWwgYXJndW1lbnQgKi8KK3N0YXRpYyBQeU9iamVjdCAqCitQeURlY0NvbnRleHRfQXBwbHkoUHlPYmplY3QgKmNvbnRleHQsIFB5T2JqZWN0ICp2KQoreworICAgIFB5T2JqZWN0ICpyZXN1bHQsICphOworCisgICAgQ09OVkVSVF9PUF9SQUlTRSgmYSwgdiwgY29udGV4dCk7CisKKyAgICByZXN1bHQgPSBkZWNfYXBwbHkoYSwgY29udGV4dCk7CisgICAgUHlfREVDUkVGKGEpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitjdHhfY2Fub25pY2FsKFB5T2JqZWN0ICpjb250ZXh0IFVOVVNFRCwgUHlPYmplY3QgKnYpCit7CisgICAgaWYgKCFQeURlY19DaGVjayh2KSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgImFyZ3VtZW50IG11c3QgYmUgYSBEZWNpbWFsIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIFB5X0lOQ1JFRih2KTsKKyAgICByZXR1cm4gdjsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2N0eF9tcGRfcWNvcHlfYWJzKFB5T2JqZWN0ICpjb250ZXh0LCBQeU9iamVjdCAqdikKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0LCAqYTsKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworCisgICAgQ09OVkVSVF9PUF9SQUlTRSgmYSwgdiwgY29udGV4dCk7CisKKyAgICByZXN1bHQgPSBkZWNfYWxsb2MoKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKGEpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtcGRfcWNvcHlfYWJzKE1QRChyZXN1bHQpLCBNUEQoYSksICZzdGF0dXMpOworICAgIFB5X0RFQ1JFRihhKTsKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgUHlPYmplY3QgKgorY3R4X2NvcHlfZGVjaW1hbChQeU9iamVjdCAqY29udGV4dCwgUHlPYmplY3QgKnYpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKworICAgIENPTlZFUlRfT1BfUkFJU0UoJnJlc3VsdCwgdiwgY29udGV4dCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2N0eF9tcGRfcWNvcHlfbmVnYXRlKFB5T2JqZWN0ICpjb250ZXh0LCBQeU9iamVjdCAqdikKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0LCAqYTsKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworCisgICAgQ09OVkVSVF9PUF9SQUlTRSgmYSwgdiwgY29udGV4dCk7CisKKyAgICByZXN1bHQgPSBkZWNfYWxsb2MoKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKGEpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtcGRfcWNvcHlfbmVnYXRlKE1QRChyZXN1bHQpLCBNUEQoYSksICZzdGF0dXMpOworICAgIFB5X0RFQ1JFRihhKTsKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitEZWNDdHhfVW5hcnlGdW5jKG1wZF9xbG9nYikKK0RlY0N0eF9VbmFyeUZ1bmMobXBkX3FpbnZlcnQpCisKK3N0YXRpYyBQeU9iamVjdCAqCitjdHhfbXBkX2NsYXNzKFB5T2JqZWN0ICpjb250ZXh0LCBQeU9iamVjdCAqdikKK3sKKyAgICBQeU9iamVjdCAqYTsKKyAgICBjb25zdCBjaGFyICpjcDsKKworICAgIENPTlZFUlRfT1BfUkFJU0UoJmEsIHYsIGNvbnRleHQpOworCisgICAgY3AgPSBtcGRfY2xhc3MoTVBEKGEpLCBDVFgoY29udGV4dCkpOworICAgIFB5X0RFQ1JFRihhKTsKKworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhjcCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitjdHhfbXBkX3RvX3NjaShQeU9iamVjdCAqY29udGV4dCwgUHlPYmplY3QgKnYpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICBQeU9iamVjdCAqYTsKKyAgICBtcGRfc3NpemVfdCBzaXplOworICAgIGNoYXIgKnM7CisKKyAgICBDT05WRVJUX09QX1JBSVNFKCZhLCB2LCBjb250ZXh0KTsKKworICAgIHNpemUgPSBtcGRfdG9fc2NpX3NpemUoJnMsIE1QRChhKSwgQ3R4Q2Fwcyhjb250ZXh0KSk7CisgICAgUHlfREVDUkVGKGEpOworICAgIGlmIChzaXplIDwgMCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXN1bHQgPSB1bmljb2RlX2Zyb21hc2NpaShzLCBzaXplKTsKKyAgICBtcGRfZnJlZShzKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitjdHhfbXBkX3RvX2VuZyhQeU9iamVjdCAqY29udGV4dCwgUHlPYmplY3QgKnYpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICBQeU9iamVjdCAqYTsKKyAgICBtcGRfc3NpemVfdCBzaXplOworICAgIGNoYXIgKnM7CisKKyAgICBDT05WRVJUX09QX1JBSVNFKCZhLCB2LCBjb250ZXh0KTsKKworICAgIHNpemUgPSBtcGRfdG9fZW5nX3NpemUoJnMsIE1QRChhKSwgQ3R4Q2Fwcyhjb250ZXh0KSk7CisgICAgUHlfREVDUkVGKGEpOworICAgIGlmIChzaXplIDwgMCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXN1bHQgPSB1bmljb2RlX2Zyb21hc2NpaShzLCBzaXplKTsKKyAgICBtcGRfZnJlZShzKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qIEZ1bmN0aW9ucyB3aXRoIHR3byBkZWNpbWFsIGFyZ3VtZW50cyAqLworRGVjQ3R4X0JpbmFyeUZ1bmNfTk9fQ1RYKG1wZF9jb21wYXJlX3RvdGFsKQorRGVjQ3R4X0JpbmFyeUZ1bmNfTk9fQ1RYKG1wZF9jb21wYXJlX3RvdGFsX21hZykKKworc3RhdGljIFB5T2JqZWN0ICoKK2N0eF9tcGRfcWNvcHlfc2lnbihQeU9iamVjdCAqY29udGV4dCwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKnYsICp3OworICAgIFB5T2JqZWN0ICphLCAqYjsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk9PIiwgJnYsICZ3KSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBDT05WRVJUX0JJTk9QX1JBSVNFKCZhLCAmYiwgdiwgdywgY29udGV4dCk7CisKKyAgICByZXN1bHQgPSBkZWNfYWxsb2MoKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKGEpOworICAgICAgICBQeV9ERUNSRUYoYik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG1wZF9xY29weV9zaWduKE1QRChyZXN1bHQpLCBNUEQoYSksIE1QRChiKSwgJnN0YXR1cyk7CisgICAgUHlfREVDUkVGKGEpOworICAgIFB5X0RFQ1JFRihiKTsKKyAgICBpZiAoZGVjX2FkZHN0YXR1cyhjb250ZXh0LCBzdGF0dXMpKSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcWFuZCkKK0RlY0N0eF9CaW5hcnlGdW5jKG1wZF9xb3IpCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcXhvcikKKworRGVjQ3R4X0JpbmFyeUZ1bmMobXBkX3Fyb3RhdGUpCitEZWNDdHhfQmluYXJ5RnVuYyhtcGRfcXNjYWxlYikKK0RlY0N0eF9CaW5hcnlGdW5jKG1wZF9xc2hpZnQpCisKK3N0YXRpYyBQeU9iamVjdCAqCitjdHhfbXBkX3NhbWVfcXVhbnR1bShQeU9iamVjdCAqY29udGV4dCwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKnYsICp3OworICAgIFB5T2JqZWN0ICphLCAqYjsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPTyIsICZ2LCAmdykpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgQ09OVkVSVF9CSU5PUF9SQUlTRSgmYSwgJmIsIHYsIHcsIGNvbnRleHQpOworCisgICAgcmVzdWx0ID0gbXBkX3NhbWVfcXVhbnR1bShNUEQoYSksIE1QRChiKSkgPyBpbmNyX3RydWUoKSA6IGluY3JfZmFsc2UoKTsKKyAgICBQeV9ERUNSRUYoYSk7CisgICAgUHlfREVDUkVGKGIpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitzdGF0aWMgUHlNZXRob2REZWYgY29udGV4dF9tZXRob2RzIFtdID0KK3sKKyAgLyogVW5hcnkgYXJpdGhtZXRpYyBmdW5jdGlvbnMgKi8KKyAgeyAiYWJzIiwgY3R4X21wZF9xYWJzLCBNRVRIX08sIGRvY19jdHhfYWJzIH0sCisgIHsgImV4cCIsIGN0eF9tcGRfcWV4cCwgTUVUSF9PLCBkb2NfY3R4X2V4cCB9LAorICB7ICJsbiIsIGN0eF9tcGRfcWxuLCBNRVRIX08sIGRvY19jdHhfbG4gfSwKKyAgeyAibG9nMTAiLCBjdHhfbXBkX3Fsb2cxMCwgTUVUSF9PLCBkb2NfY3R4X2xvZzEwIH0sCisgIHsgIm1pbnVzIiwgY3R4X21wZF9xbWludXMsIE1FVEhfTywgZG9jX2N0eF9taW51cyB9LAorICB7ICJuZXh0X21pbnVzIiwgY3R4X21wZF9xbmV4dF9taW51cywgTUVUSF9PLCBkb2NfY3R4X25leHRfbWludXMgfSwKKyAgeyAibmV4dF9wbHVzIiwgY3R4X21wZF9xbmV4dF9wbHVzLCBNRVRIX08sIGRvY19jdHhfbmV4dF9wbHVzIH0sCisgIHsgIm5vcm1hbGl6ZSIsIGN0eF9tcGRfcXJlZHVjZSwgTUVUSF9PLCBkb2NfY3R4X25vcm1hbGl6ZSB9LAorICB7ICJwbHVzIiwgY3R4X21wZF9xcGx1cywgTUVUSF9PLCBkb2NfY3R4X3BsdXMgfSwKKyAgeyAidG9faW50ZWdyYWwiLCBjdHhfbXBkX3Fyb3VuZF90b19pbnQsIE1FVEhfTywgZG9jX2N0eF90b19pbnRlZ3JhbCB9LAorICB7ICJ0b19pbnRlZ3JhbF9leGFjdCIsIGN0eF9tcGRfcXJvdW5kX3RvX2ludHgsIE1FVEhfTywgZG9jX2N0eF90b19pbnRlZ3JhbF9leGFjdCB9LAorICB7ICJ0b19pbnRlZ3JhbF92YWx1ZSIsIGN0eF9tcGRfcXJvdW5kX3RvX2ludCwgTUVUSF9PLCBkb2NfY3R4X3RvX2ludGVncmFsX3ZhbHVlIH0sCisgIHsgInNxcnQiLCBjdHhfbXBkX3FzcXJ0LCBNRVRIX08sIGRvY19jdHhfc3FydCB9LAorCisgIC8qIEJpbmFyeSBhcml0aG1ldGljIGZ1bmN0aW9ucyAqLworICB7ICJhZGQiLCBjdHhfbXBkX3FhZGQsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9hZGQgfSwKKyAgeyAiY29tcGFyZSIsIGN0eF9tcGRfcWNvbXBhcmUsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9jb21wYXJlIH0sCisgIHsgImNvbXBhcmVfc2lnbmFsIiwgY3R4X21wZF9xY29tcGFyZV9zaWduYWwsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9jb21wYXJlX3NpZ25hbCB9LAorICB7ICJkaXZpZGUiLCBjdHhfbXBkX3FkaXYsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9kaXZpZGUgfSwKKyAgeyAiZGl2aWRlX2ludCIsIGN0eF9tcGRfcWRpdmludCwgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X2RpdmlkZV9pbnQgfSwKKyAgeyAiZGl2bW9kIiwgY3R4X21wZF9xZGl2bW9kLCBNRVRIX1ZBUkFSR1MsIGRvY19jdHhfZGl2bW9kIH0sCisgIHsgIm1heCIsIGN0eF9tcGRfcW1heCwgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X21heCB9LAorICB7ICJtYXhfbWFnIiwgY3R4X21wZF9xbWF4X21hZywgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X21heF9tYWcgfSwKKyAgeyAibWluIiwgY3R4X21wZF9xbWluLCBNRVRIX1ZBUkFSR1MsIGRvY19jdHhfbWluIH0sCisgIHsgIm1pbl9tYWciLCBjdHhfbXBkX3FtaW5fbWFnLCBNRVRIX1ZBUkFSR1MsIGRvY19jdHhfbWluX21hZyB9LAorICB7ICJtdWx0aXBseSIsIGN0eF9tcGRfcW11bCwgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X211bHRpcGx5IH0sCisgIHsgIm5leHRfdG93YXJkIiwgY3R4X21wZF9xbmV4dF90b3dhcmQsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9uZXh0X3Rvd2FyZCB9LAorICB7ICJxdWFudGl6ZSIsIGN0eF9tcGRfcXF1YW50aXplLCBNRVRIX1ZBUkFSR1MsIGRvY19jdHhfcXVhbnRpemUgfSwKKyAgeyAicmVtYWluZGVyIiwgY3R4X21wZF9xcmVtLCBNRVRIX1ZBUkFSR1MsIGRvY19jdHhfcmVtYWluZGVyIH0sCisgIHsgInJlbWFpbmRlcl9uZWFyIiwgY3R4X21wZF9xcmVtX25lYXIsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9yZW1haW5kZXJfbmVhciB9LAorICB7ICJzdWJ0cmFjdCIsIGN0eF9tcGRfcXN1YiwgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X3N1YnRyYWN0IH0sCisKKyAgLyogQmluYXJ5IG9yIHRlcm5hcnkgYXJpdGhtZXRpYyBmdW5jdGlvbnMgKi8KKyAgeyAicG93ZXIiLCAoUHlDRnVuY3Rpb24pY3R4X21wZF9xcG93LCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywgZG9jX2N0eF9wb3dlciB9LAorCisgIC8qIFRlcm5hcnkgYXJpdGhtZXRpYyBmdW5jdGlvbnMgKi8KKyAgeyAiZm1hIiwgY3R4X21wZF9xZm1hLCBNRVRIX1ZBUkFSR1MsIGRvY19jdHhfZm1hIH0sCisKKyAgLyogTm8gYXJndW1lbnQgKi8KKyAgeyAiRXRpbnkiLCBjb250ZXh0X2dldGV0aW55LCBNRVRIX05PQVJHUywgZG9jX2N0eF9FdGlueSB9LAorICB7ICJFdG9wIiwgY29udGV4dF9nZXRldG9wLCBNRVRIX05PQVJHUywgZG9jX2N0eF9FdG9wIH0sCisgIHsgInJhZGl4IiwgY3R4X21wZF9yYWRpeCwgTUVUSF9OT0FSR1MsIGRvY19jdHhfcmFkaXggfSwKKworICAvKiBCb29sZWFuIGZ1bmN0aW9ucyAqLworICB7ICJpc19jYW5vbmljYWwiLCBjdHhfaXNjYW5vbmljYWwsIE1FVEhfTywgZG9jX2N0eF9pc19jYW5vbmljYWwgfSwKKyAgeyAiaXNfZmluaXRlIiwgY3R4X21wZF9pc2Zpbml0ZSwgTUVUSF9PLCBkb2NfY3R4X2lzX2Zpbml0ZSB9LAorICB7ICJpc19pbmZpbml0ZSIsIGN0eF9tcGRfaXNpbmZpbml0ZSwgTUVUSF9PLCBkb2NfY3R4X2lzX2luZmluaXRlIH0sCisgIHsgImlzX25hbiIsIGN0eF9tcGRfaXNuYW4sIE1FVEhfTywgZG9jX2N0eF9pc19uYW4gfSwKKyAgeyAiaXNfbm9ybWFsIiwgY3R4X21wZF9pc25vcm1hbCwgTUVUSF9PLCBkb2NfY3R4X2lzX25vcm1hbCB9LAorICB7ICJpc19xbmFuIiwgY3R4X21wZF9pc3FuYW4sIE1FVEhfTywgZG9jX2N0eF9pc19xbmFuIH0sCisgIHsgImlzX3NpZ25lZCIsIGN0eF9tcGRfaXNzaWduZWQsIE1FVEhfTywgZG9jX2N0eF9pc19zaWduZWQgfSwKKyAgeyAiaXNfc25hbiIsIGN0eF9tcGRfaXNzbmFuLCBNRVRIX08sIGRvY19jdHhfaXNfc25hbiB9LAorICB7ICJpc19zdWJub3JtYWwiLCBjdHhfbXBkX2lzc3Vibm9ybWFsLCBNRVRIX08sIGRvY19jdHhfaXNfc3Vibm9ybWFsIH0sCisgIHsgImlzX3plcm8iLCBjdHhfbXBkX2lzemVybywgTUVUSF9PLCBkb2NfY3R4X2lzX3plcm8gfSwKKworICAvKiBGdW5jdGlvbnMgd2l0aCBhIHNpbmdsZSBkZWNpbWFsIGFyZ3VtZW50ICovCisgIHsgIl9hcHBseSIsIFB5RGVjQ29udGV4dF9BcHBseSwgTUVUSF9PLCBOVUxMIH0sIC8qIGFsaWFzIGZvciBhcHBseSAqLworI2lmZGVmIEVYVFJBX0ZVTkNUSU9OQUxJVFkKKyAgeyAiYXBwbHkiLCBQeURlY0NvbnRleHRfQXBwbHksIE1FVEhfTywgZG9jX2N0eF9hcHBseSB9LAorI2VuZGlmCisgIHsgImNhbm9uaWNhbCIsIGN0eF9jYW5vbmljYWwsIE1FVEhfTywgZG9jX2N0eF9jYW5vbmljYWwgfSwKKyAgeyAiY29weV9hYnMiLCBjdHhfbXBkX3Fjb3B5X2FicywgTUVUSF9PLCBkb2NfY3R4X2NvcHlfYWJzIH0sCisgIHsgImNvcHlfZGVjaW1hbCIsIGN0eF9jb3B5X2RlY2ltYWwsIE1FVEhfTywgZG9jX2N0eF9jb3B5X2RlY2ltYWwgfSwKKyAgeyAiY29weV9uZWdhdGUiLCBjdHhfbXBkX3Fjb3B5X25lZ2F0ZSwgTUVUSF9PLCBkb2NfY3R4X2NvcHlfbmVnYXRlIH0sCisgIHsgImxvZ2IiLCBjdHhfbXBkX3Fsb2diLCBNRVRIX08sIGRvY19jdHhfbG9nYiB9LAorICB7ICJsb2dpY2FsX2ludmVydCIsIGN0eF9tcGRfcWludmVydCwgTUVUSF9PLCBkb2NfY3R4X2xvZ2ljYWxfaW52ZXJ0IH0sCisgIHsgIm51bWJlcl9jbGFzcyIsIGN0eF9tcGRfY2xhc3MsIE1FVEhfTywgZG9jX2N0eF9udW1iZXJfY2xhc3MgfSwKKyAgeyAidG9fc2NpX3N0cmluZyIsIGN0eF9tcGRfdG9fc2NpLCBNRVRIX08sIGRvY19jdHhfdG9fc2NpX3N0cmluZyB9LAorICB7ICJ0b19lbmdfc3RyaW5nIiwgY3R4X21wZF90b19lbmcsIE1FVEhfTywgZG9jX2N0eF90b19lbmdfc3RyaW5nIH0sCisKKyAgLyogRnVuY3Rpb25zIHdpdGggdHdvIGRlY2ltYWwgYXJndW1lbnRzICovCisgIHsgImNvbXBhcmVfdG90YWwiLCBjdHhfbXBkX2NvbXBhcmVfdG90YWwsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9jb21wYXJlX3RvdGFsIH0sCisgIHsgImNvbXBhcmVfdG90YWxfbWFnIiwgY3R4X21wZF9jb21wYXJlX3RvdGFsX21hZywgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X2NvbXBhcmVfdG90YWxfbWFnIH0sCisgIHsgImNvcHlfc2lnbiIsIGN0eF9tcGRfcWNvcHlfc2lnbiwgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X2NvcHlfc2lnbiB9LAorICB7ICJsb2dpY2FsX2FuZCIsIGN0eF9tcGRfcWFuZCwgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X2xvZ2ljYWxfYW5kIH0sCisgIHsgImxvZ2ljYWxfb3IiLCBjdHhfbXBkX3FvciwgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X2xvZ2ljYWxfb3IgfSwKKyAgeyAibG9naWNhbF94b3IiLCBjdHhfbXBkX3F4b3IsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9sb2dpY2FsX3hvciB9LAorICB7ICJyb3RhdGUiLCBjdHhfbXBkX3Fyb3RhdGUsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9yb3RhdGUgfSwKKyAgeyAic2FtZV9xdWFudHVtIiwgY3R4X21wZF9zYW1lX3F1YW50dW0sIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9zYW1lX3F1YW50dW0gfSwKKyAgeyAic2NhbGViIiwgY3R4X21wZF9xc2NhbGViLCBNRVRIX1ZBUkFSR1MsIGRvY19jdHhfc2NhbGViIH0sCisgIHsgInNoaWZ0IiwgY3R4X21wZF9xc2hpZnQsIE1FVEhfVkFSQVJHUywgZG9jX2N0eF9zaGlmdCB9LAorCisgIC8qIFNldCBjb250ZXh0IHZhbHVlcyAqLworICB7ICJjbGVhcl9mbGFncyIsIGNvbnRleHRfY2xlYXJfZmxhZ3MsIE1FVEhfTk9BUkdTLCBkb2NfY3R4X2NsZWFyX2ZsYWdzIH0sCisgIHsgImNsZWFyX3RyYXBzIiwgY29udGV4dF9jbGVhcl90cmFwcywgTUVUSF9OT0FSR1MsIGRvY19jdHhfY2xlYXJfdHJhcHMgfSwKKworI2lmZGVmIENPTkZJR18zMgorICAvKiBVbnNhZmUgc2V0IGZ1bmN0aW9ucyB3aXRoIHJlbGF4ZWQgcmFuZ2UgY2hlY2tzICovCisgIHsgIl91bnNhZmVfc2V0cHJlYyIsIGNvbnRleHRfdW5zYWZlX3NldHByZWMsIE1FVEhfTywgTlVMTCB9LAorICB7ICJfdW5zYWZlX3NldGVtaW4iLCBjb250ZXh0X3Vuc2FmZV9zZXRlbWluLCBNRVRIX08sIE5VTEwgfSwKKyAgeyAiX3Vuc2FmZV9zZXRlbWF4IiwgY29udGV4dF91bnNhZmVfc2V0ZW1heCwgTUVUSF9PLCBOVUxMIH0sCisjZW5kaWYKKworICAvKiBNaXNjZWxsYW5lb3VzICovCisgIHsgIl9fY29weV9fIiwgKFB5Q0Z1bmN0aW9uKWNvbnRleHRfY29weSwgTUVUSF9OT0FSR1MsIE5VTEwgfSwKKyAgeyAiX19yZWR1Y2VfXyIsIGNvbnRleHRfcmVkdWNlLCBNRVRIX05PQVJHUywgTlVMTCB9LAorICB7ICJjb3B5IiwgKFB5Q0Z1bmN0aW9uKWNvbnRleHRfY29weSwgTUVUSF9OT0FSR1MsIGRvY19jdHhfY29weSB9LAorICB7ICJjcmVhdGVfZGVjaW1hbCIsIGN0eF9jcmVhdGVfZGVjaW1hbCwgTUVUSF9WQVJBUkdTLCBkb2NfY3R4X2NyZWF0ZV9kZWNpbWFsIH0sCisgIHsgImNyZWF0ZV9kZWNpbWFsX2Zyb21fZmxvYXQiLCBjdHhfZnJvbV9mbG9hdCwgTUVUSF9PLCBkb2NfY3R4X2NyZWF0ZV9kZWNpbWFsX2Zyb21fZmxvYXQgfSwKKworICB7IE5VTEwsIE5VTEwsIDEgfQorfTsKKworc3RhdGljIFB5VHlwZU9iamVjdCBQeURlY0NvbnRleHRfVHlwZSA9Cit7CisgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCisgICAgImRlY2ltYWwuQ29udGV4dCIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICBzaXplb2YoUHlEZWNDb250ZXh0T2JqZWN0KSwgICAgICAgICAgICAgICAgLyogdHBfYmFzaWNzaXplICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXplICovCisgICAgKGRlc3RydWN0b3IpIGNvbnRleHRfZGVhbGxvYywgICAgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KKyAgICAoZ2V0YXR0cmZ1bmMpIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0ciAqLworICAgIChzZXRhdHRyZnVuYykgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3Jlc2VydmVkICovCisgICAgKHJlcHJmdW5jKSBjb250ZXh0X3JlcHIsICAgICAgICAgICAgICAgICAgIC8qIHRwX3JlcHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX21hcHBpbmcgKi8KKyAgICAoaGFzaGZ1bmMpIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCisgICAgKHJlcHJmdW5jKSBjb250ZXh0X3JlcHIsICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLworICAgIChnZXRhdHRyb2Z1bmMpIGNvbnRleHRfZ2V0YXR0ciwgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIChzZXRhdHRyb2Z1bmMpIGNvbnRleHRfc2V0YXR0ciwgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLworICAgIChQeUJ1ZmZlclByb2NzICopIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFR8UHlfVFBGTEFHU19CQVNFVFlQRSwgICAgLyogdHBfZmxhZ3MgKi8KKyAgICBkb2NfY29udGV4dCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICBjb250ZXh0X21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCisgICAgY29udGV4dF9nZXRzZXRzLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3NldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCisgICAgY29udGV4dF9pbml0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2luaXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KKyAgICBjb250ZXh0X25ldywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCisgICAgUHlPYmplY3RfRGVsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2ZyZWUgKi8KK307CisKKworc3RhdGljIFB5TWV0aG9kRGVmIF9kZWNpbWFsX21ldGhvZHMgW10gPQoreworICB7ICJnZXRjb250ZXh0IiwgKFB5Q0Z1bmN0aW9uKVB5RGVjX0dldEN1cnJlbnRDb250ZXh0LCBNRVRIX05PQVJHUywgZG9jX2dldGNvbnRleHR9LAorICB7ICJzZXRjb250ZXh0IiwgKFB5Q0Z1bmN0aW9uKVB5RGVjX1NldEN1cnJlbnRDb250ZXh0LCBNRVRIX08sIGRvY19zZXRjb250ZXh0fSwKKyAgeyAibG9jYWxjb250ZXh0IiwgKFB5Q0Z1bmN0aW9uKWN0eG1hbmFnZXJfbmV3LCBNRVRIX1ZBUkFSR1MsIGRvY19sb2NhbGNvbnRleHR9LAorI2lmZGVmIEVYVFJBX0ZVTkNUSU9OQUxJVFkKKyAgeyAiSUVFRUNvbnRleHQiLCAoUHlDRnVuY3Rpb24paWVlZV9jb250ZXh0LCBNRVRIX08sIGRvY19pZWVlX2NvbnRleHR9LAorI2VuZGlmCisgIHsgTlVMTCwgTlVMTCwgMSwgTlVMTCB9Cit9OworCitzdGF0aWMgc3RydWN0IFB5TW9kdWxlRGVmIF9kZWNpbWFsX21vZHVsZSA9IHsKKyAgICBQeU1vZHVsZURlZl9IRUFEX0lOSVQsCisgICAgImRlY2ltYWwiLAorICAgIGRvY19fZGVjaW1hbCwKKyAgICAtMSwKKyAgICBfZGVjaW1hbF9tZXRob2RzLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwKK307CisKK3N0cnVjdCBzc2l6ZV9jb25zdG1hcCB7IGNvbnN0IGNoYXIgKm5hbWU7IG1wZF9zc2l6ZV90IHZhbDsgfTsKK3N0YXRpYyBzdHJ1Y3Qgc3NpemVfY29uc3RtYXAgc3NpemVfY29uc3RhbnRzIFtdID0geworICAgIHsiTUFYX1BSRUMiLCBNUERfTUFYX1BSRUN9LAorICAgIHsiTUFYX0VNQVgiLCBNUERfTUFYX0VNQVh9LAorICAgIHsiTUlOX0VNSU4iLCAgTVBEX01JTl9FTUlOfSwKKyAgICB7Ik1JTl9FVElOWSIsIE1QRF9NSU5fRVRJTll9LAorICAgIHtOVUxMfQorfTsKKworc3RydWN0IGludF9jb25zdG1hcCB7IGNvbnN0IGNoYXIgKm5hbWU7IGludCB2YWw7IH07CitzdGF0aWMgc3RydWN0IGludF9jb25zdG1hcCBpbnRfY29uc3RhbnRzIFtdID0geworICAgIC8qIGludCBjb25zdGFudHMgKi8KKyNpZmRlZiBFWFRSQV9GVU5DVElPTkFMSVRZCisgICAgeyJERUNJTUFMMzIiLCBNUERfREVDSU1BTDMyfSwKKyAgICB7IkRFQ0lNQUw2NCIsIE1QRF9ERUNJTUFMNjR9LAorICAgIHsiREVDSU1BTDEyOCIsIE1QRF9ERUNJTUFMMTI4fSwKKyAgICB7IklFRUVfQ09OVEVYVF9NQVhfQklUUyIsIE1QRF9JRUVFX0NPTlRFWFRfTUFYX0JJVFN9LAorI2VuZGlmCisgICAgeyJST1VORF9DRUlMSU5HIiwgTVBEX1JPVU5EX0NFSUxJTkd9LAorICAgIHsiUk9VTkRfRkxPT1IiLCBNUERfUk9VTkRfRkxPT1J9LAorICAgIHsiUk9VTkRfVVAiLCBNUERfUk9VTkRfVVB9LAorICAgIHsiUk9VTkRfRE9XTiIsIE1QRF9ST1VORF9ET1dOfSwKKyAgICB7IlJPVU5EX0hBTEZfVVAiLCBNUERfUk9VTkRfSEFMRl9VUH0sCisgICAgeyJST1VORF9IQUxGX0RPV04iLCBNUERfUk9VTkRfSEFMRl9ET1dOfSwKKyAgICB7IlJPVU5EX0hBTEZfRVZFTiIsIE1QRF9ST1VORF9IQUxGX0VWRU59LAorICAgIHsiUk9VTkRfMDVVUCIsIE1QRF9ST1VORF8wNVVQfSwKKyNpZmRlZiBFWFRSQV9GVU5DVElPTkFMSVRZCisgICAgeyJST1VORF9UUlVOQyIsIE1QRF9ST1VORF9UUlVOQ30sCisgICAgLyogaW50IGNvbmRpdGlvbiBmbGFncyAqLworICAgIHsiRGVjQ2xhbXBlZCIsIE1QRF9DbGFtcGVkfSwKKyAgICB7IkRlY0NvbnZlcnNpb25TeW50YXgiLCBNUERfQ29udmVyc2lvbl9zeW50YXh9LAorICAgIHsiRGVjRGl2aXNpb25CeVplcm8iLCBNUERfRGl2aXNpb25fYnlfemVyb30sCisgICAgeyJEZWNEaXZpc2lvbkltcG9zc2libGUiLCBNUERfRGl2aXNpb25faW1wb3NzaWJsZX0sCisgICAgeyJEZWNEaXZpc2lvblVuZGVmaW5lZCIsIE1QRF9EaXZpc2lvbl91bmRlZmluZWR9LAorICAgIHsiRGVjRnB1RXJyb3IiLCBNUERfRnB1X2Vycm9yfSwKKyAgICB7IkRlY0luZXhhY3QiLCBNUERfSW5leGFjdH0sCisgICAgeyJEZWNJbnZhbGlkQ29udGV4dCIsIE1QRF9JbnZhbGlkX2NvbnRleHR9LAorICAgIHsiRGVjSW52YWxpZE9wZXJhdGlvbiIsIE1QRF9JbnZhbGlkX29wZXJhdGlvbn0sCisgICAgeyJEZWNJRUVFSW52YWxpZE9wZXJhdGlvbiIsIE1QRF9JRUVFX0ludmFsaWRfb3BlcmF0aW9ufSwKKyAgICB7IkRlY01hbGxvY0Vycm9yIiwgTVBEX01hbGxvY19lcnJvcn0sCisgICAgeyJEZWNGbG9hdE9wZXJhdGlvbiIsIE1QRF9GbG9hdF9vcGVyYXRpb259LAorICAgIHsiRGVjT3ZlcmZsb3ciLCBNUERfT3ZlcmZsb3d9LAorICAgIHsiRGVjUm91bmRlZCIsIE1QRF9Sb3VuZGVkfSwKKyAgICB7IkRlY1N1Ym5vcm1hbCIsIE1QRF9TdWJub3JtYWx9LAorICAgIHsiRGVjVW5kZXJmbG93IiwgTVBEX1VuZGVyZmxvd30sCisgICAgeyJEZWNFcnJvcnMiLCBNUERfRXJyb3JzfSwKKyAgICB7IkRlY1RyYXBzIiwgTVBEX1RyYXBzfSwKKyNlbmRpZgorICAgIHtOVUxMfQorfTsKKworCisjZGVmaW5lIENIRUNLX0lOVChleHByKSBcCisgICAgZG8geyBpZiAoKGV4cHIpIDwgMCkgZ290byBlcnJvcjsgfSB3aGlsZSAoMCkKKyNkZWZpbmUgQVNTSUdOX1BUUihyZXN1bHQsIGV4cHIpIFwKKyAgICBkbyB7IHJlc3VsdCA9IChleHByKTsgaWYgKHJlc3VsdCA9PSBOVUxMKSBnb3RvIGVycm9yOyB9IHdoaWxlICgwKQorI2RlZmluZSBDSEVDS19QVFIoZXhwcikgXAorICAgIGRvIHsgaWYgKChleHByKSA9PSBOVUxMKSBnb3RvIGVycm9yOyB9IHdoaWxlICgwKQorCitQeU1PRElOSVRfRlVOQworUHlJbml0X19kZWNpbWFsKHZvaWQpCit7CisgICAgUHlPYmplY3QgKm0gPSBOVUxMOworICAgIFB5T2JqZWN0ICpudW1iZXJzID0gTlVMTDsKKyAgICBQeU9iamVjdCAqTnVtYmVyID0gTlVMTDsKKyAgICBQeU9iamVjdCAqY29sbGVjdGlvbnMgPSBOVUxMOworICAgIFB5T2JqZWN0ICpNdXRhYmxlTWFwcGluZyA9IE5VTEw7CisgICAgUHlPYmplY3QgKm9iaiA9IE5VTEw7CisgICAgRGVjQ29uZE1hcCAqY207CisgICAgc3RydWN0IHNzaXplX2NvbnN0bWFwICpzc2l6ZV9jbTsKKyAgICBzdHJ1Y3QgaW50X2NvbnN0bWFwICppbnRfY207CisgICAgaW50IGk7CisKKworICAgIC8qIEluaXQgbGlibXBkZWMgKi8KKyAgICBtcGRfdHJhcGhhbmRsZXIgPSBkZWNfdHJhcGhhbmRsZXI7CisgICAgbXBkX21hbGxvY2Z1bmMgPSBQeU1lbV9NYWxsb2M7CisgICAgbXBkX3JlYWxsb2NmdW5jID0gUHlNZW1fUmVhbGxvYzsKKyAgICBtcGRfY2FsbG9jZnVuYyA9IG1wZF9jYWxsb2NmdW5jX2VtOworICAgIG1wZF9mcmVlID0gUHlNZW1fRnJlZTsKKyAgICBtcGRfc2V0bWluYWxsb2MoX1B5X0RFQ19NSU5BTExPQyk7CisKKworICAgIC8qIEluaXQgdHlwZXMgKi8KKyAgICBQeURlY19UeXBlLnRwX2Jhc2UgPSAmUHlCYXNlT2JqZWN0X1R5cGU7CisgICAgUHlEZWNDb250ZXh0X1R5cGUudHBfYmFzZSA9ICZQeUJhc2VPYmplY3RfVHlwZTsKKyAgICBQeURlY0NvbnRleHRNYW5hZ2VyX1R5cGUudHBfYmFzZSA9ICZQeUJhc2VPYmplY3RfVHlwZTsKKyAgICBQeURlY1NpZ25hbERpY3RNaXhpbl9UeXBlLnRwX2Jhc2UgPSAmUHlCYXNlT2JqZWN0X1R5cGU7CisKKyAgICBDSEVDS19JTlQoUHlUeXBlX1JlYWR5KCZQeURlY19UeXBlKSk7CisgICAgQ0hFQ0tfSU5UKFB5VHlwZV9SZWFkeSgmUHlEZWNDb250ZXh0X1R5cGUpKTsKKyAgICBDSEVDS19JTlQoUHlUeXBlX1JlYWR5KCZQeURlY1NpZ25hbERpY3RNaXhpbl9UeXBlKSk7CisgICAgQ0hFQ0tfSU5UKFB5VHlwZV9SZWFkeSgmUHlEZWNDb250ZXh0TWFuYWdlcl9UeXBlKSk7CisKKyAgICBBU1NJR05fUFRSKG9iaiwgUHlVbmljb2RlX0Zyb21TdHJpbmcoImRlY2ltYWwiKSk7CisgICAgQ0hFQ0tfSU5UKFB5RGljdF9TZXRJdGVtU3RyaW5nKFB5RGVjX1R5cGUudHBfZGljdCwgIl9fbW9kdWxlX18iLCBvYmopKTsKKyAgICBDSEVDS19JTlQoUHlEaWN0X1NldEl0ZW1TdHJpbmcoUHlEZWNDb250ZXh0X1R5cGUudHBfZGljdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fbW9kdWxlX18iLCBvYmopKTsKKyAgICBQeV9DTEVBUihvYmopOworCisKKyAgICAvKiBOdW1lcmljIGFic3RyYWN0IGJhc2UgY2xhc3NlcyAqLworICAgIEFTU0lHTl9QVFIobnVtYmVycywgUHlJbXBvcnRfSW1wb3J0TW9kdWxlKCJudW1iZXJzIikpOworICAgIEFTU0lHTl9QVFIoTnVtYmVyLCBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG51bWJlcnMsICJOdW1iZXIiKSk7CisgICAgLyogUmVnaXN0ZXIgRGVjaW1hbCB3aXRoIHRoZSBOdW1iZXIgYWJzdHJhY3QgYmFzZSBjbGFzcyAqLworICAgIEFTU0lHTl9QVFIob2JqLCBQeU9iamVjdF9DYWxsTWV0aG9kKE51bWJlciwgInJlZ2lzdGVyIiwgIihPKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFB5T2JqZWN0ICopJlB5RGVjX1R5cGUpKTsKKyAgICBQeV9DTEVBUihvYmopOworICAgIC8qIFJhdGlvbmFsIGlzIGEgZ2xvYmFsIHZhcmlhYmxlIHVzZWQgZm9yIGZyYWN0aW9uIGNvbXBhcmlzb25zLiAqLworICAgIEFTU0lHTl9QVFIoUmF0aW9uYWwsIFB5T2JqZWN0X0dldEF0dHJTdHJpbmcobnVtYmVycywgIlJhdGlvbmFsIikpOworICAgIC8qIERvbmUgd2l0aCBudW1iZXJzLCBOdW1iZXIgKi8KKyAgICBQeV9DTEVBUihudW1iZXJzKTsKKyAgICBQeV9DTEVBUihOdW1iZXIpOworCisgICAgLyogRGVjaW1hbFR1cGxlICovCisgICAgQVNTSUdOX1BUUihjb2xsZWN0aW9ucywgUHlJbXBvcnRfSW1wb3J0TW9kdWxlKCJjb2xsZWN0aW9ucyIpKTsKKyAgICBBU1NJR05fUFRSKERlY2ltYWxUdXBsZSwgUHlPYmplY3RfQ2FsbE1ldGhvZChjb2xsZWN0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lZHR1cGxlIiwgIihzcykiLCAiRGVjaW1hbFR1cGxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWduIGRpZ2l0cyBleHBvbmVudCIpKTsKKyAgICAvKiBNdXRhYmxlTWFwcGluZyAqLworICAgIEFTU0lHTl9QVFIoTXV0YWJsZU1hcHBpbmcsIFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoY29sbGVjdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTXV0YWJsZU1hcHBpbmciKSk7CisgICAgLyogQ3JlYXRlIFNpZ25hbERpY3QgdHlwZSAqLworICAgIEFTU0lHTl9QVFIoUHlEZWNTaWduYWxEaWN0X1R5cGUsCisgICAgICAgICAgICAgICAgICAgKFB5VHlwZU9iamVjdCAqKVB5T2JqZWN0X0NhbGxGdW5jdGlvbigKKyAgICAgICAgICAgICAgICAgICAoUHlPYmplY3QgKikmUHlUeXBlX1R5cGUsICJzKE9PKXt9IiwKKyAgICAgICAgICAgICAgICAgICAiU2lnbmFsRGljdCIsICZQeURlY1NpZ25hbERpY3RNaXhpbl9UeXBlLAorICAgICAgICAgICAgICAgICAgIE11dGFibGVNYXBwaW5nKSk7CisKKyAgICAvKiBEb25lIHdpdGggY29sbGVjdGlvbnMsIE11dGFibGVNYXBwaW5nICovCisgICAgUHlfQ0xFQVIoY29sbGVjdGlvbnMpOworICAgIFB5X0NMRUFSKE11dGFibGVNYXBwaW5nKTsKKworCisgICAgLyogQ3JlYXRlIHRoZSBtb2R1bGUgKi8KKyAgICBBU1NJR05fUFRSKG0sIFB5TW9kdWxlX0NyZWF0ZSgmX2RlY2ltYWxfbW9kdWxlKSk7CisKKworICAgIC8qIEFkZCB0eXBlcyB0byB0aGUgbW9kdWxlICovCisgICAgUHlfSU5DUkVGKCZQeURlY19UeXBlKTsKKyAgICBDSEVDS19JTlQoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJEZWNpbWFsIiwgKFB5T2JqZWN0ICopJlB5RGVjX1R5cGUpKTsKKyAgICBQeV9JTkNSRUYoJlB5RGVjQ29udGV4dF9UeXBlKTsKKyAgICBDSEVDS19JTlQoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJDb250ZXh0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQeU9iamVjdCAqKSZQeURlY0NvbnRleHRfVHlwZSkpOworICAgIFB5X0lOQ1JFRihEZWNpbWFsVHVwbGUpOworICAgIENIRUNLX0lOVChQeU1vZHVsZV9BZGRPYmplY3QobSwgIkRlY2ltYWxUdXBsZSIsIERlY2ltYWxUdXBsZSkpOworCisKKyAgICAvKiBDcmVhdGUgdG9wIGxldmVsIGV4Y2VwdGlvbiAqLworICAgIEFTU0lHTl9QVFIoRGVjaW1hbEV4Y2VwdGlvbiwgUHlFcnJfTmV3RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWNpbWFsLkRlY2ltYWxFeGNlcHRpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXhjX0FyaXRobWV0aWNFcnJvciwgTlVMTCkpOworICAgIFB5X0lOQ1JFRihEZWNpbWFsRXhjZXB0aW9uKTsKKyAgICBDSEVDS19JTlQoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJEZWNpbWFsRXhjZXB0aW9uIiwgRGVjaW1hbEV4Y2VwdGlvbikpOworCisgICAgLyogQ3JlYXRlIHNpZ25hbCB0dXBsZSAqLworICAgIEFTU0lHTl9QVFIoU2lnbmFsVHVwbGUsIFB5VHVwbGVfTmV3KFNJR05BTF9NQVBfTEVOKSk7CisKKyAgICAvKiBBZGQgZXhjZXB0aW9ucyB0aGF0IGNvcnJlc3BvbmQgdG8gSUVFRSBzaWduYWxzICovCisgICAgZm9yIChpID0gU0lHTkFMX01BUF9MRU4tMTsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgUHlPYmplY3QgKmJhc2U7CisKKyAgICAgICAgY20gPSBzaWduYWxfbWFwICsgaTsKKworICAgICAgICBzd2l0Y2ggKGNtLT5mbGFnKSB7CisgICAgICAgIGNhc2UgTVBEX0Zsb2F0X29wZXJhdGlvbjoKKyAgICAgICAgICAgIGJhc2UgPSBQeVR1cGxlX1BhY2soMiwgRGVjaW1hbEV4Y2VwdGlvbiwgUHlFeGNfVHlwZUVycm9yKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1QRF9EaXZpc2lvbl9ieV96ZXJvOgorICAgICAgICAgICAgYmFzZSA9IFB5VHVwbGVfUGFjaygyLCBEZWNpbWFsRXhjZXB0aW9uLCBQeUV4Y19aZXJvRGl2aXNpb25FcnJvcik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNUERfT3ZlcmZsb3c6CisgICAgICAgICAgICBiYXNlID0gUHlUdXBsZV9QYWNrKDIsIHNpZ25hbF9tYXBbSU5FWEFDVF0uZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ25hbF9tYXBbUk9VTkRFRF0uZXgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTVBEX1VuZGVyZmxvdzoKKyAgICAgICAgICAgIGJhc2UgPSBQeVR1cGxlX1BhY2soMywgc2lnbmFsX21hcFtJTkVYQUNUXS5leCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsX21hcFtST1VOREVEXS5leCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lnbmFsX21hcFtTVUJOT1JNQUxdLmV4KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYmFzZSA9IFB5VHVwbGVfUGFjaygxLCBEZWNpbWFsRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGJhc2UgPT0gTlVMTCkgeworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIEFTU0lHTl9QVFIoY20tPmV4LCBQeUVycl9OZXdFeGNlcHRpb24oKGNoYXIgKiljbS0+ZnFuYW1lLCBiYXNlLCBOVUxMKSk7CisgICAgICAgIFB5X0RFQ1JFRihiYXNlKTsKKworICAgICAgICAvKiBhZGQgdG8gbW9kdWxlICovCisgICAgICAgIFB5X0lOQ1JFRihjbS0+ZXgpOworICAgICAgICBDSEVDS19JTlQoUHlNb2R1bGVfQWRkT2JqZWN0KG0sIGNtLT5uYW1lLCBjbS0+ZXgpKTsKKworICAgICAgICAvKiBhZGQgdG8gc2lnbmFsIHR1cGxlICovCisgICAgICAgIFB5X0lOQ1JFRihjbS0+ZXgpOworICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKFNpZ25hbFR1cGxlLCBpLCBjbS0+ZXgpOworICAgIH0KKworICAgIC8qCisgICAgICogVW5mb3J0dW5hdGVseSwgSW52YWxpZE9wZXJhdGlvbiBpcyBhIHNpZ25hbCB0aGF0IGNvbXByaXNlcworICAgICAqIHNldmVyYWwgY29uZGl0aW9ucywgaW5jbHVkaW5nIEludmFsaWRPcGVyYXRpb24hIE5hbWluZyB0aGUKKyAgICAgKiBzaWduYWwgSUVFRUludmFsaWRPcGVyYXRpb24gd291bGQgcHJldmVudCB0aGUgY29uZnVzaW9uLgorICAgICAqLworICAgIGNvbmRfbWFwWzBdLmV4ID0gc2lnbmFsX21hcFswXS5leDsKKworICAgIC8qIEFkZCByZW1haW5pbmcgZXhjZXB0aW9ucywgaW5oZXJpdCBmcm9tIEludmFsaWRPcGVyYXRpb24gKi8KKyAgICBmb3IgKGNtID0gY29uZF9tYXArMTsgY20tPm5hbWUgIT0gTlVMTDsgY20rKykgeworICAgICAgICBQeU9iamVjdCAqYmFzZTsKKyAgICAgICAgaWYgKGNtLT5mbGFnID09IE1QRF9EaXZpc2lvbl91bmRlZmluZWQpIHsKKyAgICAgICAgICAgIGJhc2UgPSBQeVR1cGxlX1BhY2soMiwgc2lnbmFsX21hcFswXS5leCwgUHlFeGNfWmVyb0RpdmlzaW9uRXJyb3IpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYmFzZSA9IFB5VHVwbGVfUGFjaygxLCBzaWduYWxfbWFwWzBdLmV4KTsKKyAgICAgICAgfQorICAgICAgICBpZiAoYmFzZSA9PSBOVUxMKSB7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisKKyAgICAgICAgQVNTSUdOX1BUUihjbS0+ZXgsIFB5RXJyX05ld0V4Y2VwdGlvbigoY2hhciAqKWNtLT5mcW5hbWUsIGJhc2UsIE5VTEwpKTsKKyAgICAgICAgUHlfREVDUkVGKGJhc2UpOworCisgICAgICAgIFB5X0lOQ1JFRihjbS0+ZXgpOworICAgICAgICBDSEVDS19JTlQoUHlNb2R1bGVfQWRkT2JqZWN0KG0sIGNtLT5uYW1lLCBjbS0+ZXgpKTsKKyAgICB9CisKKworICAgIC8qIEluaXQgZGVmYXVsdCBjb250ZXh0IHRlbXBsYXRlIGZpcnN0ICovCisgICAgQVNTSUdOX1BUUihkZWZhdWx0X2NvbnRleHRfdGVtcGxhdGUsCisgICAgICAgICAgICAgICBQeU9iamVjdF9DYWxsT2JqZWN0KChQeU9iamVjdCAqKSZQeURlY0NvbnRleHRfVHlwZSwgTlVMTCkpOworICAgIFB5X0lOQ1JFRihkZWZhdWx0X2NvbnRleHRfdGVtcGxhdGUpOworICAgIENIRUNLX0lOVChQeU1vZHVsZV9BZGRPYmplY3QobSwgIkRlZmF1bHRDb250ZXh0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfY29udGV4dF90ZW1wbGF0ZSkpOworCisjaWZkZWYgV0lUSE9VVF9USFJFQURTCisgICAgLyogSW5pdCBtb2R1bGUgY29udGV4dCAqLworICAgIEFTU0lHTl9QVFIobW9kdWxlX2NvbnRleHQsCisgICAgICAgICAgICAgICBQeU9iamVjdF9DYWxsT2JqZWN0KChQeU9iamVjdCAqKSZQeURlY0NvbnRleHRfVHlwZSwgTlVMTCkpOworICAgIFB5X0lOQ1JFRihQeV9GYWxzZSk7CisgICAgQ0hFQ0tfSU5UKFB5TW9kdWxlX0FkZE9iamVjdChtLCAiSEFWRV9USFJFQURTIiwgUHlfRmFsc2UpKTsKKyNlbHNlCisgICAgQVNTSUdOX1BUUih0bHNfY29udGV4dF9rZXksIFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJfX19ERUNJTUFMX0NUWF9fIikpOworICAgIFB5X0lOQ1JFRihQeV9UcnVlKTsKKyAgICBDSEVDS19JTlQoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJIQVZFX1RIUkVBRFMiLCBQeV9UcnVlKSk7CisjZW5kaWYKKworICAgIC8qIEluaXQgYmFzaWMgY29udGV4dCB0ZW1wbGF0ZSAqLworICAgIEFTU0lHTl9QVFIoYmFzaWNfY29udGV4dF90ZW1wbGF0ZSwKKyAgICAgICAgICAgICAgIFB5T2JqZWN0X0NhbGxPYmplY3QoKFB5T2JqZWN0ICopJlB5RGVjQ29udGV4dF9UeXBlLCBOVUxMKSk7CisgICAgaW5pdF9iYXNpY19jb250ZXh0KGJhc2ljX2NvbnRleHRfdGVtcGxhdGUpOworICAgIFB5X0lOQ1JFRihiYXNpY19jb250ZXh0X3RlbXBsYXRlKTsKKyAgICBDSEVDS19JTlQoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJCYXNpY0NvbnRleHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzaWNfY29udGV4dF90ZW1wbGF0ZSkpOworCisgICAgLyogSW5pdCBleHRlbmRlZCBjb250ZXh0IHRlbXBsYXRlICovCisgICAgQVNTSUdOX1BUUihleHRlbmRlZF9jb250ZXh0X3RlbXBsYXRlLAorICAgICAgICAgICAgICAgUHlPYmplY3RfQ2FsbE9iamVjdCgoUHlPYmplY3QgKikmUHlEZWNDb250ZXh0X1R5cGUsIE5VTEwpKTsKKyAgICBpbml0X2V4dGVuZGVkX2NvbnRleHQoZXh0ZW5kZWRfY29udGV4dF90ZW1wbGF0ZSk7CisgICAgUHlfSU5DUkVGKGV4dGVuZGVkX2NvbnRleHRfdGVtcGxhdGUpOworICAgIENIRUNLX0lOVChQeU1vZHVsZV9BZGRPYmplY3QobSwgIkV4dGVuZGVkQ29udGV4dCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbmRlZF9jb250ZXh0X3RlbXBsYXRlKSk7CisKKworICAgIC8qIEluaXQgbXBkX3NzaXplX3QgY29uc3RhbnRzICovCisgICAgZm9yIChzc2l6ZV9jbSA9IHNzaXplX2NvbnN0YW50czsgc3NpemVfY20tPm5hbWUgIT0gTlVMTDsgc3NpemVfY20rKykgeworICAgICAgICBBU1NJR05fUFRSKG9iaiwgUHlMb25nX0Zyb21Tc2l6ZV90KHNzaXplX2NtLT52YWwpKTsKKyAgICAgICAgQ0hFQ0tfSU5UKFB5TW9kdWxlX0FkZE9iamVjdChtLCBzc2l6ZV9jbS0+bmFtZSwgb2JqKSk7CisgICAgICAgIG9iaiA9IE5VTEw7CisgICAgfQorCisgICAgLyogSW5pdCBpbnQgY29uc3RhbnRzICovCisgICAgZm9yIChpbnRfY20gPSBpbnRfY29uc3RhbnRzOyBpbnRfY20tPm5hbWUgIT0gTlVMTDsgaW50X2NtKyspIHsKKyAgICAgICAgQ0hFQ0tfSU5UKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sIGludF9jbS0+bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludF9jbS0+dmFsKSk7CisgICAgfQorCisgICAgLyogQWRkIHNwZWNpZmljYXRpb24gdmVyc2lvbiBudW1iZXIgKi8KKyAgICBDSEVDS19JTlQoUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQobSwgIl9fdmVyc2lvbl9fIiwgIiAxLjcwIikpOworCisKKyAgICByZXR1cm4gbTsKKworCitlcnJvcjoKKyAgICBQeV9DTEVBUihvYmopOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgUHlfQ0xFQVIobnVtYmVycyk7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICBQeV9DTEVBUihOdW1iZXIpOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgUHlfQ0xFQVIoUmF0aW9uYWwpOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgUHlfQ0xFQVIoY29sbGVjdGlvbnMpOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgUHlfQ0xFQVIoTXV0YWJsZU1hcHBpbmcpOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgUHlfQ0xFQVIoU2lnbmFsVHVwbGUpOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgUHlfQ0xFQVIoRGVjaW1hbFR1cGxlKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworI2lmZGVmIFdJVEhPVVRfVEhSRUFEUworICAgIFB5X0NMRUFSKG1vZHVsZV9jb250ZXh0KTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworI2Vsc2UKKyAgICBQeV9DTEVBUihkZWZhdWx0X2NvbnRleHRfdGVtcGxhdGUpOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgUHlfQ0xFQVIodGxzX2NvbnRleHRfa2V5KTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworI2VuZGlmCisgICAgUHlfQ0xFQVIoYmFzaWNfY29udGV4dF90ZW1wbGF0ZSk7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICBQeV9DTEVBUihleHRlbmRlZF9jb250ZXh0X3RlbXBsYXRlKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgIFB5X0NMRUFSKG0pOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisKKyAgICByZXR1cm4gTlVMTDsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworfQorCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvZG9jc3RyaW5ncy5oIGIvTW9kdWxlcy9fZGVjaW1hbC9kb2NzdHJpbmdzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2YxNTBjNwotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvZG9jc3RyaW5ncy5oCkBAIC0wLDAgKzEsNzUzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDAxLTIwMTIgUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBNb2RpZmllZCBhbmQgZXh0ZW5kZWQgYnkgU3RlZmFuIEtyYWguCisgKi8KKworCisjaWZuZGVmIERPQ1NUUklOR1NfSAorI2RlZmluZSBET0NTVFJJTkdTX0gKKworCisjaW5jbHVkZSAicHltYWNyby5oIgorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kdWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCitQeURvY19TVFJWQVIoZG9jX19kZWNpbWFsLAorIkMgZGVjaW1hbCBhcml0aG1ldGljIG1vZHVsZSIpOworCitQeURvY19TVFJWQVIoZG9jX2dldGNvbnRleHQsIlxuXAorZ2V0Y29udGV4dCgpIC0gR2V0IHRoZSBjdXJyZW50IGRlZmF1bHQgY29udGV4dC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2Nfc2V0Y29udGV4dCwiXG5cCitzZXRjb250ZXh0KGMpIC0gU2V0IGEgbmV3IGRlZmF1bHQgY29udGV4dC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfbG9jYWxjb250ZXh0LCJcblwKK2xvY2FsY29udGV4dChjKSAtIFJldHVybiBhIGNvbnRleHQgbWFuYWdlciB0aGF0IHdpbGwgc2V0IHRoZSBkZWZhdWx0IGNvbnRleHRcblwKK3RvIGEgY29weSBvZiBjIG9uIGVudHJ5IHRvIHRoZSB3aXRoLXN0YXRlbWVudCBhbmQgcmVzdG9yZSB0aGUgcHJldmlvdXMgZGVmYXVsdFxuXAorY29udGV4dCB3aGVuIGV4aXRpbmcgdGhlIHdpdGgtc3RhdGVtZW50LiBJZiBubyBjb250ZXh0IGlzIHNwZWNpZmllZCwgYSBjb3B5IG9mXG5cCit0aGUgY3VycmVudCBkZWZhdWx0IGNvbnRleHQgaXMgdXNlZC5cblwKK1xuIik7CisKKyNpZmRlZiBFWFRSQV9GVU5DVElPTkFMSVRZCitQeURvY19TVFJWQVIoZG9jX2llZWVfY29udGV4dCwiXG5cCitJRUVFQ29udGV4dChiaXRzKSAtIFJldHVybiBhIGNvbnRleHQgb2JqZWN0IGluaXRpYWxpemVkIHRvIHRoZSBwcm9wZXIgdmFsdWVzIGZvclxuXAorb25lIG9mIHRoZSBJRUVFIGludGVyY2hhbmdlIGZvcm1hdHMuIFRoZSBhcmd1bWVudCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMzIgYW5kXG5cCitsZXNzIHRoYW4gSUVFRV9DT05URVhUX01BWF9CSVRTLiBGb3IgdGhlIG1vc3QgY29tbW9uIHZhbHVlcywgdGhlIGNvbnN0YW50c1xuXAorREVDSU1BTDMyLCBERUNJTUFMNjQgYW5kIERFQ0lNQUwxMjggYXJlIHByb3ZpZGVkLlxuXAorXG4iKTsKKyNlbmRpZgorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgRGVjaW1hbCBPYmplY3QgYW5kIE1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUHlEb2NfU1RSVkFSKGRvY19kZWNpbWFsLCJcblwKK0RlY2ltYWwoW3ZhbHVlWywgY29udGV4dF1dKTogQ29uc3RydWN0IGEgbmV3IERlY2ltYWwgb2JqZWN0IGZyb20gdmFsdWUuXG5cCitcblwKK3ZhbHVlIGNhbiBiZSBhbiBpbnRlZ2VyLCBzdHJpbmcsIHR1cGxlLCBvciBhbm90aGVyIERlY2ltYWwgb2JqZWN0LlxuXAorSWYgbm8gdmFsdWUgaXMgZ2l2ZW4sIHJldHVybiBEZWNpbWFsKCcwJykuIFRoZSBjb250ZXh0IGRvZXMgbm90IGFmZmVjdFxuXAordGhlIGNvbnZlcnNpb24gYW5kIGlzIG9ubHkgcGFzc2VkIHRvIGRldGVybWluZSBpZiB0aGUgSW52YWxpZE9wZXJhdGlvblxuXAordHJhcCBpcyBhY3RpdmUuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2FkanVzdGVkLCJcblwKK2FkanVzdGVkKCkgLSBSZXR1cm4gdGhlIGFkanVzdGVkIGV4cG9uZW50IG9mIHRoZSBudW1iZXIuXG5cCitcblwKK0RlZmluZWQgYXMgZXhwICsgZGlnaXRzIC0gMS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfYXNfdHVwbGUsIlxuXAorYXNfdHVwbGUoKSAtIFJldHVybiBhIHR1cGxlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBudW1iZXIuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2Nhbm9uaWNhbCwiXG5cCitjYW5vbmljYWwoKSAtIFJldHVybiB0aGUgY2Fub25pY2FsIGVuY29kaW5nIG9mIHRoZSBhcmd1bWVudC4gQ3VycmVudGx5LFxuXAordGhlIGVuY29kaW5nIG9mIGEgRGVjaW1hbCBpbnN0YW5jZSBpcyBhbHdheXMgY2Fub25pY2FsLCBzbyB0aGlzIG9wZXJhdGlvblxuXAorcmV0dXJucyBpdHMgYXJndW1lbnQgdW5jaGFuZ2VkLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jb21wYXJlLCJcblwKK2NvbXBhcmUob3RoZXJbLCBjb250ZXh0XSkgLSBDb21wYXJlIHNlbGYgdG8gb3RoZXIuIFJldHVybiBhIGRlY2ltYWwgdmFsdWU6XG5cCitcblwKKyAgICBhIG9yIGIgaXMgYSBOYU4gPT0+IERlY2ltYWwoJ05hTicpXG5cCisgICAgYSA8IGIgICAgICAgICAgID09PiBEZWNpbWFsKCctMScpXG5cCisgICAgYSA9PSBiICAgICAgICAgID09PiBEZWNpbWFsKCcwJylcblwKKyAgICBhID4gYiAgICAgICAgICAgPT0+IERlY2ltYWwoJzEnKVxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jb21wYXJlX3NpZ25hbCwiXG5cCitjb21wYXJlX3NpZ25hbChvdGhlclssIGNvbnRleHRdKSAtIElkZW50aWNhbCB0byBjb21wYXJlLCBleGNlcHQgdGhhdFxuXAorYWxsIE5hTnMgc2lnbmFsLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jb21wYXJlX3RvdGFsLCJcblwKK2NvbXBhcmVfdG90YWwob3RoZXIpIC0gQ29tcGFyZSB0d28gb3BlcmFuZHMgdXNpbmcgdGhlaXIgYWJzdHJhY3QgcmVwcmVzZW50YXRpb25cblwKK3JhdGhlciB0aGFuIHRoZWlyIG51bWVyaWNhbCB2YWx1ZS4gU2ltaWxhciB0byB0aGUgY29tcGFyZSgpIG1ldGhvZCwgYnV0IHRoZVxuXAorcmVzdWx0IGdpdmVzIGEgdG90YWwgb3JkZXJpbmcgb24gRGVjaW1hbCBpbnN0YW5jZXMuIFR3byBEZWNpbWFsIGluc3RhbmNlcyB3aXRoXG5cCit0aGUgc2FtZSBudW1lcmljIHZhbHVlIGJ1dCBkaWZmZXJlbnQgcmVwcmVzZW50YXRpb25zIGNvbXBhcmUgdW5lcXVhbCBpbiB0aGlzXG5cCitvcmRlcmluZzpcblwKK1xuXAorICAgID4+PiBEZWNpbWFsKCcxMi4wJykuY29tcGFyZV90b3RhbChEZWNpbWFsKCcxMicpKVxuXAorICAgIERlY2ltYWwoJy0xJylcblwKK1xuXAorUXVpZXQgYW5kIHNpZ25hbGluZyBOYU5zIGFyZSBhbHNvIGluY2x1ZGVkIGluIHRoZSB0b3RhbCBvcmRlcmluZy4gVGhlIHJlc3VsdFxuXAorb2YgdGhpcyBmdW5jdGlvbiBpcyBEZWNpbWFsKCcwJykgaWYgYm90aCBvcGVyYW5kcyBoYXZlIHRoZSBzYW1lIHJlcHJlc2VudGF0aW9uLFxuXAorRGVjaW1hbCgnLTEnKSBpZiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBsb3dlciBpbiB0aGUgdG90YWwgb3JkZXIgdGhhbiB0aGUgc2Vjb25kLFxuXAorYW5kIERlY2ltYWwoJzEnKSBpZiB0aGUgZmlyc3Qgb3BlcmFuZCBpcyBoaWdoZXIgaW4gdGhlIHRvdGFsIG9yZGVyIHRoYW4gdGhlXG5cCitzZWNvbmQgb3BlcmFuZC4gU2VlIHRoZSBzcGVjaWZpY2F0aW9uIGZvciBkZXRhaWxzIG9mIHRoZSB0b3RhbCBvcmRlci5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY29tcGFyZV90b3RhbF9tYWcsIlxuXAorY29tcGFyZV90b3RhbF9tYWcob3RoZXIpIC0gQ29tcGFyZSB0d28gb3BlcmFuZHMgdXNpbmcgdGhlaXIgYWJzdHJhY3RcblwKK3JlcHJlc2VudGF0aW9uIHJhdGhlciB0aGFuIHRoZWlyIHZhbHVlIGFzIGluIGNvbXBhcmVfdG90YWwoKSwgYnV0XG5cCitpZ25vcmluZyB0aGUgc2lnbiBvZiBlYWNoIG9wZXJhbmQuICB4LmNvbXBhcmVfdG90YWxfbWFnKHkpIGlzXG5cCitlcXVpdmFsZW50IHRvIHguY29weV9hYnMoKS5jb21wYXJlX3RvdGFsKHkuY29weV9hYnMoKSkuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2Nvbmp1Z2F0ZSwiXG5cCitjb25qdWdhdGUoKSAtIFJldHVybiBzZWxmLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jb3B5X2FicywiXG5cCitjb3B5X2FicygpIC0gUmV0dXJuIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGUgYXJndW1lbnQuIFRoaXMgb3BlcmF0aW9uXG5cCitpcyB1bmFmZmVjdGVkIGJ5IHRoZSBjb250ZXh0IGFuZCBpcyBxdWlldDogbm8gZmxhZ3MgYXJlIGNoYW5nZWQgYW5kIG5vXG5cCityb3VuZGluZyBpcyBwZXJmb3JtZWQuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2NvcHlfbmVnYXRlLCJcblwKK2NvcHlfbmVnYXRlKCkgLSBSZXR1cm4gdGhlIG5lZ2F0aW9uIG9mIHRoZSBhcmd1bWVudC4gVGhpcyBvcGVyYXRpb24gaXNcblwKK3VuYWZmZWN0ZWQgYnkgdGhlIGNvbnRleHQgYW5kIGlzIHF1aWV0OiBubyBmbGFncyBhcmUgY2hhbmdlZCBhbmQgbm9cblwKK3JvdW5kaW5nIGlzIHBlcmZvcm1lZC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY29weV9zaWduLCJcblwKK2NvcHlfc2lnbihvdGhlcikgLSBSZXR1cm4gYSBjb3B5IG9mIHRoZSBmaXJzdCBvcGVyYW5kIHdpdGggdGhlIHNpZ24gc2V0XG5cCit0byBiZSB0aGUgc2FtZSBhcyB0aGUgc2lnbiBvZiB0aGUgc2Vjb25kIG9wZXJhbmQuIEZvciBleGFtcGxlOlxuXAorXG5cCisgICAgPj4+IERlY2ltYWwoJzIuMycpLmNvcHlfc2lnbihEZWNpbWFsKCctMS41JykpXG5cCisgICAgRGVjaW1hbCgnLTIuMycpXG5cCitcblwKK1RoaXMgb3BlcmF0aW9uIGlzIHVuYWZmZWN0ZWQgYnkgdGhlIGNvbnRleHQgYW5kIGlzIHF1aWV0OiBubyBmbGFncyBhcmVcblwKK2NoYW5nZWQgYW5kIG5vIHJvdW5kaW5nIGlzIHBlcmZvcm1lZC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfZXhwLCJcblwKK2V4cChbY29udGV4dF0pIC0gUmV0dXJuIHRoZSB2YWx1ZSBvZiB0aGUgKG5hdHVyYWwpIGV4cG9uZW50aWFsIGZ1bmN0aW9uIGUqKnhcblwKK2F0IHRoZSBnaXZlbiBudW1iZXIuIFRoZSBmdW5jdGlvbiBhbHdheXMgdXNlcyB0aGUgUk9VTkRfSEFMRl9FVkVOIG1vZGUgYW5kXG5cCit0aGUgcmVzdWx0IGlzIGNvcnJlY3RseSByb3VuZGVkLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19mcm9tX2Zsb2F0LCJcblwKK2Zyb21fZmxvYXQoZikgLSBDbGFzcyBtZXRob2QgdGhhdCBjb252ZXJ0cyBhIGZsb2F0IHRvIGEgZGVjaW1hbCBudW1iZXIsIGV4YWN0bHkuXG5cCitTaW5jZSAwLjEgaXMgbm90IGV4YWN0bHkgcmVwcmVzZW50YWJsZSBpbiBiaW5hcnkgZmxvYXRpbmcgcG9pbnQsXG5cCitEZWNpbWFsLmZyb21fZmxvYXQoMC4xKSBpcyBub3QgdGhlIHNhbWUgYXMgRGVjaW1hbCgnMC4xJykuXG5cCitcblwKKyAgICA+Pj4gRGVjaW1hbC5mcm9tX2Zsb2F0KDAuMSlcblwKKyAgICBEZWNpbWFsKCcwLjEwMDAwMDAwMDAwMDAwMDAwNTU1MTExNTEyMzEyNTc4MjcwMjExODE1ODM0MDQ1NDEwMTU2MjUnKVxuXAorICAgID4+PiBEZWNpbWFsLmZyb21fZmxvYXQoZmxvYXQoJ25hbicpKVxuXAorICAgIERlY2ltYWwoJ05hTicpXG5cCisgICAgPj4+IERlY2ltYWwuZnJvbV9mbG9hdChmbG9hdCgnaW5mJykpXG5cCisgICAgRGVjaW1hbCgnSW5maW5pdHknKVxuXAorICAgID4+PiBEZWNpbWFsLmZyb21fZmxvYXQoZmxvYXQoJy1pbmYnKSlcblwKKyAgICBEZWNpbWFsKCctSW5maW5pdHknKVxuXAorXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2ZtYSwiXG5cCitmbWEob3RoZXIsIHRoaXJkWywgY29udGV4dF0pIC0gRnVzZWQgbXVsdGlwbHktYWRkLiBSZXR1cm4gc2VsZipvdGhlcit0aGlyZFxuXAord2l0aCBubyByb3VuZGluZyBvZiB0aGUgaW50ZXJtZWRpYXRlIHByb2R1Y3Qgc2VsZipvdGhlci5cblwKK1xuXAorICAgID4+PiBEZWNpbWFsKDIpLmZtYSgzLCA1KVxuXAorICAgIERlY2ltYWwoJzExJylcblwKK1xuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19pc19jYW5vbmljYWwsIlxuXAoraXNfY2Fub25pY2FsKCkgLSBSZXR1cm4gVHJ1ZSBpZiB0aGUgYXJndW1lbnQgaXMgY2Fub25pY2FsIGFuZCBGYWxzZSBvdGhlcndpc2UuXG5cCitDdXJyZW50bHksIGEgRGVjaW1hbCBpbnN0YW5jZSBpcyBhbHdheXMgY2Fub25pY2FsLCBzbyB0aGlzIG9wZXJhdGlvbiBhbHdheXNcblwKK3JldHVybnMgVHJ1ZS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfaXNfZmluaXRlLCJcblwKK2lzX2Zpbml0ZSgpIC0gUmV0dXJuIFRydWUgaWYgdGhlIGFyZ3VtZW50IGlzIGEgZmluaXRlIG51bWJlciwgYW5kIEZhbHNlIGlmIHRoZVxuXAorYXJndW1lbnQgaXMgaW5maW5pdGUgb3IgYSBOYU4uXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2lzX2luZmluaXRlLCJcblwKK2lzX2luZmluaXRlKCkgLSBSZXR1cm4gVHJ1ZSBpZiB0aGUgYXJndW1lbnQgaXMgZWl0aGVyIHBvc2l0aXZlIG9yIG5lZ2F0aXZlXG5cCitpbmZpbml0eSBhbmQgRmFsc2Ugb3RoZXJ3aXNlLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19pc19uYW4sIlxuXAoraXNfbmFuKCkgLSBSZXR1cm4gVHJ1ZSBpZiB0aGUgYXJndW1lbnQgaXMgYSAocXVpZXQgb3Igc2lnbmFsaW5nKSBOYU4gYW5kXG5cCitGYWxzZSBvdGhlcndpc2UuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2lzX25vcm1hbCwiXG5cCitpc19ub3JtYWwoW2NvbnRleHRdKSAtIFJldHVybiBUcnVlIGlmIHRoZSBhcmd1bWVudCBpcyBhIG5vcm1hbCBmaW5pdGUgbm9uLXplcm9cblwKK251bWJlciB3aXRoIGFuIGFkanVzdGVkIGV4cG9uZW50IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byBFbWluLiBSZXR1cm4gRmFsc2VcblwKK2lmIHRoZSBhcmd1bWVudCBpcyB6ZXJvLCBzdWJub3JtYWwsIGluZmluaXRlIG9yIGEgTmFOLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19pc19xbmFuLCJcblwKK2lzX3FuYW4oKSAtIFJldHVybiBUcnVlIGlmIHRoZSBhcmd1bWVudCBpcyBhIHF1aWV0IE5hTiwgYW5kIEZhbHNlIG90aGVyd2lzZS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfaXNfc2lnbmVkLCJcblwKK2lzX3NpZ25lZCgpIC0gUmV0dXJuIFRydWUgaWYgdGhlIGFyZ3VtZW50IGhhcyBhIG5lZ2F0aXZlIHNpZ24gYW5kXG5cCitGYWxzZSBvdGhlcndpc2UuIE5vdGUgdGhhdCBib3RoIHplcm9zIGFuZCBOYU5zIGNhbiBjYXJyeSBzaWducy5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfaXNfc25hbiwiXG5cCitpc19zbmFuKCkgLSBSZXR1cm4gVHJ1ZSBpZiB0aGUgYXJndW1lbnQgaXMgYSBzaWduYWxpbmcgTmFOIGFuZCBGYWxzZSBvdGhlcndpc2UuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2lzX3N1Ym5vcm1hbCwiXG5cCitpc19zdWJub3JtYWwoW2NvbnRleHRdKSAtIFJldHVybiBUcnVlIGlmIHRoZSBhcmd1bWVudCBpcyBzdWJub3JtYWwsIGFuZCBGYWxzZVxuXAorb3RoZXJ3aXNlLiBBIG51bWJlciBpcyBzdWJub3JtYWwgaWYgaXQgaXMgbm9uLXplcm8sIGZpbml0ZSwgYW5kIGhhcyBhblxuXAorYWRqdXN0ZWQgZXhwb25lbnQgbGVzcyB0aGFuIEVtaW4uXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2lzX3plcm8sIlxuXAoraXNfemVybygpIC0gUmV0dXJuIFRydWUgaWYgdGhlIGFyZ3VtZW50IGlzIGEgKHBvc2l0aXZlIG9yIG5lZ2F0aXZlKSB6ZXJvIGFuZFxuXAorRmFsc2Ugb3RoZXJ3aXNlLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19sbiwiXG5cCitsbihbY29udGV4dF0pIC0gUmV0dXJuIHRoZSBuYXR1cmFsIChiYXNlIGUpIGxvZ2FyaXRobSBvZiB0aGUgb3BlcmFuZC5cblwKK1RoZSBmdW5jdGlvbiBhbHdheXMgdXNlcyB0aGUgUk9VTkRfSEFMRl9FVkVOIG1vZGUgYW5kIHRoZSByZXN1bHQgaXNcblwKK2NvcnJlY3RseSByb3VuZGVkLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19sb2cxMCwiXG5cCitsb2cxMChbY29udGV4dF0pIC0gUmV0dXJuIHRoZSBiYXNlIHRlbiBsb2dhcml0aG0gb2YgdGhlIG9wZXJhbmQuXG5cCitUaGUgZnVuY3Rpb24gYWx3YXlzIHVzZXMgdGhlIFJPVU5EX0hBTEZfRVZFTiBtb2RlIGFuZCB0aGUgcmVzdWx0IGlzXG5cCitjb3JyZWN0bHkgcm91bmRlZC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfbG9nYiwiXG5cCitsb2diKFtjb250ZXh0XSkgLSBGb3IgYSBub24temVybyBudW1iZXIsIHJldHVybiB0aGUgYWRqdXN0ZWQgZXhwb25lbnRcblwKK29mIHRoZSBvcGVyYW5kIGFzIGEgRGVjaW1hbCBpbnN0YW5jZS4gSWYgdGhlIG9wZXJhbmQgaXMgYSB6ZXJvLCB0aGVuXG5cCitEZWNpbWFsKCctSW5maW5pdHknKSBpcyByZXR1cm5lZCBhbmQgdGhlIERpdmlzaW9uQnlaZXJvIGNvbmRpdGlvbiBpc1xuXAorcmFpc2VkLiBJZiB0aGUgb3BlcmFuZCBpcyBhbiBpbmZpbml0eSB0aGVuIERlY2ltYWwoJ0luZmluaXR5JykgaXMgcmV0dXJuZWQuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2xvZ2ljYWxfYW5kLCJcblwKK2xvZ2ljYWxfYW5kKG90aGVyWywgY29udGV4dF0pIC0gUmV0dXJuIHRoZSBkaWdpdC13aXNlIGFuZCBvZiB0aGUgdHdvXG5cCisobG9naWNhbCkgb3BlcmFuZHMuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2xvZ2ljYWxfaW52ZXJ0LCJcblwKK2xvZ2ljYWxfaW52ZXJ0KFtjb250ZXh0XSkgLSBSZXR1cm4gdGhlIGRpZ2l0LXdpc2UgaW52ZXJzaW9uIG9mIHRoZVxuXAorKGxvZ2ljYWwpIG9wZXJhbmQuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2xvZ2ljYWxfb3IsIlxuXAorbG9naWNhbF9vcihvdGhlclssIGNvbnRleHRdKSAtIFJldHVybiB0aGUgZGlnaXQtd2lzZSBvciBvZiB0aGUgdHdvXG5cCisobG9naWNhbCkgb3BlcmFuZHMuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2xvZ2ljYWxfeG9yLCJcblwKK2xvZ2ljYWxfeG9yKG90aGVyWywgY29udGV4dF0pIC0gUmV0dXJuIHRoZSBkaWdpdC13aXNlIGV4Y2x1c2l2ZSBvciBvZiB0aGVcblwKK3R3byAobG9naWNhbCkgb3BlcmFuZHMuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX21heCwiXG5cCittYXgob3RoZXJbLCBjb250ZXh0XSkgLSBNYXhpbXVtIG9mIHNlbGYgYW5kIG90aGVyLiBJZiBvbmUgb3BlcmFuZCBpcyBhIHF1aWV0XG5cCitOYU4gYW5kIHRoZSBvdGhlciBpcyBudW1lcmljLCB0aGUgbnVtZXJpYyBvcGVyYW5kIGlzIHJldHVybmVkLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19tYXhfbWFnLCJcblwKK21heF9tYWcob3RoZXJbLCBjb250ZXh0XSkgLSBTaW1pbGFyIHRvIHRoZSBtYXgoKSBtZXRob2QsIGJ1dCB0aGUgY29tcGFyaXNvbiBpc1xuXAorZG9uZSB1c2luZyB0aGUgYWJzb2x1dGUgdmFsdWVzIG9mIHRoZSBvcGVyYW5kcy5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfbWluLCJcblwKK21pbihvdGhlclssIGNvbnRleHRdKSAtIE1pbmltdW0gb2Ygc2VsZiBhbmQgb3RoZXIuIElmIG9uZSBvcGVyYW5kIGlzIGEgcXVpZXRcblwKK05hTiBhbmQgdGhlIG90aGVyIGlzIG51bWVyaWMsIHRoZSBudW1lcmljIG9wZXJhbmQgaXMgcmV0dXJuZWQuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX21pbl9tYWcsIlxuXAorbWluX21hZyhvdGhlclssIGNvbnRleHRdKSAtIFNpbWlsYXIgdG8gdGhlIG1pbigpIG1ldGhvZCwgYnV0IHRoZSBjb21wYXJpc29uIGlzXG5cCitkb25lIHVzaW5nIHRoZSBhYnNvbHV0ZSB2YWx1ZXMgb2YgdGhlIG9wZXJhbmRzLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19uZXh0X21pbnVzLCJcblwKK25leHRfbWludXMoW2NvbnRleHRdKSAtIFJldHVybiB0aGUgbGFyZ2VzdCBudW1iZXIgcmVwcmVzZW50YWJsZSBpbiB0aGUgZ2l2ZW5cblwKK2NvbnRleHQgKG9yIGluIHRoZSBjdXJyZW50IGRlZmF1bHQgY29udGV4dCBpZiBubyBjb250ZXh0IGlzIGdpdmVuKSB0aGF0IGlzXG5cCitzbWFsbGVyIHRoYW4gdGhlIGdpdmVuIG9wZXJhbmQuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX25leHRfcGx1cywiXG5cCituZXh0X3BsdXMoW2NvbnRleHRdKSAtIFJldHVybiB0aGUgc21hbGxlc3QgbnVtYmVyIHJlcHJlc2VudGFibGUgaW4gdGhlIGdpdmVuXG5cCitjb250ZXh0IChvciBpbiB0aGUgY3VycmVudCBkZWZhdWx0IGNvbnRleHQgaWYgbm8gY29udGV4dCBpcyBnaXZlbikgdGhhdCBpc1xuXAorbGFyZ2VyIHRoYW4gdGhlIGdpdmVuIG9wZXJhbmQuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX25leHRfdG93YXJkLCJcblwKK25leHRfdG93YXJkKG90aGVyWywgY29udGV4dF0pIC0gSWYgdGhlIHR3byBvcGVyYW5kcyBhcmUgdW5lcXVhbCwgcmV0dXJuIHRoZVxuXAorbnVtYmVyIGNsb3Nlc3QgdG8gdGhlIGZpcnN0IG9wZXJhbmQgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgc2Vjb25kIG9wZXJhbmQuXG5cCitJZiBib3RoIG9wZXJhbmRzIGFyZSBudW1lcmljYWxseSBlcXVhbCwgcmV0dXJuIGEgY29weSBvZiB0aGUgZmlyc3Qgb3BlcmFuZFxuXAord2l0aCB0aGUgc2lnbiBzZXQgdG8gYmUgdGhlIHNhbWUgYXMgdGhlIHNpZ24gb2YgdGhlIHNlY29uZCBvcGVyYW5kLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19ub3JtYWxpemUsIlxuXAorbm9ybWFsaXplKFtjb250ZXh0XSkgLSBOb3JtYWxpemUgdGhlIG51bWJlciBieSBzdHJpcHBpbmcgdGhlIHJpZ2h0bW9zdCB0cmFpbGluZ1xuXAoremVyb3MgYW5kIGNvbnZlcnRpbmcgYW55IHJlc3VsdCBlcXVhbCB0byBEZWNpbWFsKCcwJykgdG8gRGVjaW1hbCgnMGUwJykuIFVzZWRcblwKK2ZvciBwcm9kdWNpbmcgY2Fub25pY2FsIHZhbHVlcyBmb3IgbWVtYmVycyBvZiBhbiBlcXVpdmFsZW5jZSBjbGFzcy4gRm9yIGV4YW1wbGUsXG5cCitEZWNpbWFsKCczMi4xMDAnKSBhbmQgRGVjaW1hbCgnMC4zMjEwMDBlKzInKSBib3RoIG5vcm1hbGl6ZSB0byB0aGUgZXF1aXZhbGVudFxuXAordmFsdWUgRGVjaW1hbCgnMzIuMScpLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19udW1iZXJfY2xhc3MsIlxuXAorbnVtYmVyX2NsYXNzKFtjb250ZXh0XSkgLSBSZXR1cm4gYSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY2xhc3Mgb2YgdGhlIG9wZXJhbmQuXG5cCitUaGUgcmV0dXJuZWQgdmFsdWUgaXMgb25lIG9mIHRoZSBmb2xsb3dpbmcgdGVuIHN0cmluZ3M6XG5cCitcblwKKyAgICAqICctSW5maW5pdHknLCBpbmRpY2F0aW5nIHRoYXQgdGhlIG9wZXJhbmQgaXMgbmVnYXRpdmUgaW5maW5pdHkuXG5cCisgICAgKiAnLU5vcm1hbCcsIGluZGljYXRpbmcgdGhhdCB0aGUgb3BlcmFuZCBpcyBhIG5lZ2F0aXZlIG5vcm1hbCBudW1iZXIuXG5cCisgICAgKiAnLVN1Ym5vcm1hbCcsIGluZGljYXRpbmcgdGhhdCB0aGUgb3BlcmFuZCBpcyBuZWdhdGl2ZSBhbmQgc3Vibm9ybWFsLlxuXAorICAgICogJy1aZXJvJywgaW5kaWNhdGluZyB0aGF0IHRoZSBvcGVyYW5kIGlzIGEgbmVnYXRpdmUgemVyby5cblwKKyAgICAqICcrWmVybycsIGluZGljYXRpbmcgdGhhdCB0aGUgb3BlcmFuZCBpcyBhIHBvc2l0aXZlIHplcm8uXG5cCisgICAgKiAnK1N1Ym5vcm1hbCcsIGluZGljYXRpbmcgdGhhdCB0aGUgb3BlcmFuZCBpcyBwb3NpdGl2ZSBhbmQgc3Vibm9ybWFsLlxuXAorICAgICogJytOb3JtYWwnLCBpbmRpY2F0aW5nIHRoYXQgdGhlIG9wZXJhbmQgaXMgYSBwb3NpdGl2ZSBub3JtYWwgbnVtYmVyLlxuXAorICAgICogJytJbmZpbml0eScsIGluZGljYXRpbmcgdGhhdCB0aGUgb3BlcmFuZCBpcyBwb3NpdGl2ZSBpbmZpbml0eS5cblwKKyAgICAqICdOYU4nLCBpbmRpY2F0aW5nIHRoYXQgdGhlIG9wZXJhbmQgaXMgYSBxdWlldCBOYU4gKE5vdCBhIE51bWJlcikuXG5cCisgICAgKiAnc05hTicsIGluZGljYXRpbmcgdGhhdCB0aGUgb3BlcmFuZCBpcyBhIHNpZ25hbGluZyBOYU4uXG5cCitcblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfcXVhbnRpemUsIlxuXAorcXVhbnRpemUoZXhwWywgcm91bmRpbmdbLCBjb250ZXh0XV0pIC0gUmV0dXJuIGEgdmFsdWUgZXF1YWwgdG8gdGhlIGZpcnN0XG5cCitvcGVyYW5kIGFmdGVyIHJvdW5kaW5nIGFuZCBoYXZpbmcgdGhlIGV4cG9uZW50IG9mIHRoZSBzZWNvbmQgb3BlcmFuZC5cblwKK1xuXAorICAgID4+PiBEZWNpbWFsKCcxLjQxNDIxMzU2JykucXVhbnRpemUoRGVjaW1hbCgnMS4wMDAnKSlcblwKKyAgICBEZWNpbWFsKCcxLjQxNCcpXG5cCitcblwKK1VubGlrZSBvdGhlciBvcGVyYXRpb25zLCBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBjb2VmZmljaWVudCBhZnRlciB0aGUgcXVhbnRpemVcblwKK29wZXJhdGlvbiB3b3VsZCBiZSBncmVhdGVyIHRoYW4gcHJlY2lzaW9uLCB0aGVuIGFuIEludmFsaWRPcGVyYXRpb24gaXMgc2lnbmFsZWQuXG5cCitUaGlzIGd1YXJhbnRlZXMgdGhhdCwgdW5sZXNzIHRoZXJlIGlzIGFuIGVycm9yIGNvbmRpdGlvbiwgdGhlIHF1YW50aXplZCBleHBvbmVudFxuXAoraXMgYWx3YXlzIGVxdWFsIHRvIHRoYXQgb2YgdGhlIHJpZ2h0LWhhbmQgb3BlcmFuZC5cblwKK1xuXAorQWxzbyB1bmxpa2Ugb3RoZXIgb3BlcmF0aW9ucywgcXVhbnRpemUgbmV2ZXIgc2lnbmFscyBVbmRlcmZsb3csIGV2ZW4gaWYgdGhlXG5cCityZXN1bHQgaXMgc3Vibm9ybWFsIGFuZCBpbmV4YWN0LlxuXAorXG5cCitJZiB0aGUgZXhwb25lbnQgb2YgdGhlIHNlY29uZCBvcGVyYW5kIGlzIGxhcmdlciB0aGFuIHRoYXQgb2YgdGhlIGZpcnN0LCB0aGVuXG5cCityb3VuZGluZyBtYXkgYmUgbmVjZXNzYXJ5LiBJbiB0aGlzIGNhc2UsIHRoZSByb3VuZGluZyBtb2RlIGlzIGRldGVybWluZWQgYnkgdGhlXG5cCityb3VuZGluZyBhcmd1bWVudCBpZiBnaXZlbiwgZWxzZSBieSB0aGUgZ2l2ZW4gY29udGV4dCBhcmd1bWVudDsgaWYgbmVpdGhlclxuXAorYXJndW1lbnQgaXMgZ2l2ZW4sIHRoZSByb3VuZGluZyBtb2RlIG9mIHRoZSBjdXJyZW50IHRocmVhZCdzIGNvbnRleHQgaXMgdXNlZC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfcmFkaXgsIlxuXAorcmFkaXgoKSAtIFJldHVybiBEZWNpbWFsKDEwKSwgdGhlIHJhZGl4IChiYXNlKSBpbiB3aGljaCB0aGUgRGVjaW1hbCBjbGFzcyBkb2VzXG5cCithbGwgaXRzIGFyaXRobWV0aWMuIEluY2x1ZGVkIGZvciBjb21wYXRpYmlsaXR5IHdpdGggdGhlIHNwZWNpZmljYXRpb24uXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX3JlbWFpbmRlcl9uZWFyLCJcblwKK3JlbWFpbmRlcl9uZWFyKG90aGVyWywgY29udGV4dF0pIC0gQ29tcHV0ZSB0aGUgbW9kdWxvIGFzIGVpdGhlciBhIHBvc2l0aXZlXG5cCitvciBuZWdhdGl2ZSB2YWx1ZSBkZXBlbmRpbmcgb24gd2hpY2ggaXMgY2xvc2VzdCB0byB6ZXJvLiBGb3IgaW5zdGFuY2UsXG5cCitEZWNpbWFsKDEwKS5yZW1haW5kZXJfbmVhcig2KSByZXR1cm5zIERlY2ltYWwoJy0yJyksIHdoaWNoIGlzIGNsb3NlciB0byB6ZXJvXG5cCit0aGFuIERlY2ltYWwoJzQnKS5cblwKK1xuXAorSWYgYm90aCBhcmUgZXF1YWxseSBjbG9zZSwgdGhlIG9uZSBjaG9zZW4gd2lsbCBoYXZlIHRoZSBzYW1lIHNpZ24gYXMgc2VsZi5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2Nfcm90YXRlLCJcblwKK3JvdGF0ZShvdGhlclssIGNvbnRleHRdKSAtIFJldHVybiB0aGUgcmVzdWx0IG9mIHJvdGF0aW5nIHRoZSBkaWdpdHMgb2YgdGhlXG5cCitmaXJzdCBvcGVyYW5kIGJ5IGFuIGFtb3VudCBzcGVjaWZpZWQgYnkgdGhlIHNlY29uZCBvcGVyYW5kLiBUaGUgc2Vjb25kIG9wZXJhbmRcblwKK211c3QgYmUgYW4gaW50ZWdlciBpbiB0aGUgcmFuZ2UgLXByZWNpc2lvbiB0aHJvdWdoIHByZWNpc2lvbi4gVGhlIGFic29sdXRlXG5cCit2YWx1ZSBvZiB0aGUgc2Vjb25kIG9wZXJhbmQgZ2l2ZXMgdGhlIG51bWJlciBvZiBwbGFjZXMgdG8gcm90YXRlLiBJZiB0aGUgc2Vjb25kXG5cCitvcGVyYW5kIGlzIHBvc2l0aXZlIHRoZW4gcm90YXRpb24gaXMgdG8gdGhlIGxlZnQ7IG90aGVyd2lzZSByb3RhdGlvbiBpcyB0byB0aGVcblwKK3JpZ2h0LiBUaGUgY29lZmZpY2llbnQgb2YgdGhlIGZpcnN0IG9wZXJhbmQgaXMgcGFkZGVkIG9uIHRoZSBsZWZ0IHdpdGggemVyb3MgdG9cblwKK2xlbmd0aCBwcmVjaXNpb24gaWYgbmVjZXNzYXJ5LiBUaGUgc2lnbiBhbmQgZXhwb25lbnQgb2YgdGhlIGZpcnN0IG9wZXJhbmQgYXJlXG5cCit1bmNoYW5nZWQuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX3NhbWVfcXVhbnR1bSwiXG5cCitzYW1lX3F1YW50dW0ob3RoZXJbLCBjb250ZXh0XSkgLSBUZXN0IHdoZXRoZXIgc2VsZiBhbmQgb3RoZXIgaGF2ZSB0aGVcblwKK3NhbWUgZXhwb25lbnQgb3Igd2hldGhlciBib3RoIGFyZSBOYU4uXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX3NjYWxlYiwiXG5cCitzY2FsZWIob3RoZXJbLCBjb250ZXh0XSkgLSBSZXR1cm4gdGhlIGZpcnN0IG9wZXJhbmQgd2l0aCB0aGUgZXhwb25lbnQgYWRqdXN0ZWRcblwKK3RoZSBzZWNvbmQuIEVxdWl2YWxlbnRseSwgcmV0dXJuIHRoZSBmaXJzdCBvcGVyYW5kIG11bHRpcGxpZWQgYnkgMTAqKm90aGVyLlxuXAorVGhlIHNlY29uZCBvcGVyYW5kIG11c3QgYmUgYW4gaW50ZWdlci5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2Nfc2hpZnQsIlxuXAorc2hpZnQob3RoZXJbLCBjb250ZXh0XSkgLSBSZXR1cm4gdGhlIHJlc3VsdCBvZiBzaGlmdGluZyB0aGUgZGlnaXRzIG9mXG5cCit0aGUgZmlyc3Qgb3BlcmFuZCBieSBhbiBhbW91bnQgc3BlY2lmaWVkIGJ5IHRoZSBzZWNvbmQgb3BlcmFuZC4gVGhlIHNlY29uZFxuXAorb3BlcmFuZCBtdXN0IGJlIGFuIGludGVnZXIgaW4gdGhlIHJhbmdlIC1wcmVjaXNpb24gdGhyb3VnaCBwcmVjaXNpb24uIFRoZVxuXAorYWJzb2x1dGUgdmFsdWUgb2YgdGhlIHNlY29uZCBvcGVyYW5kIGdpdmVzIHRoZSBudW1iZXIgb2YgcGxhY2VzIHRvIHNoaWZ0LlxuXAorSWYgdGhlIHNlY29uZCBvcGVyYW5kIGlzIHBvc2l0aXZlLCB0aGVuIHRoZSBzaGlmdCBpcyB0byB0aGUgbGVmdDsgb3RoZXJ3aXNlXG5cCit0aGUgc2hpZnQgaXMgdG8gdGhlIHJpZ2h0LiBEaWdpdHMgc2hpZnRlZCBpbnRvIHRoZSBjb2VmZmljaWVudCBhcmUgemVyb3MuXG5cCitUaGUgc2lnbiBhbmQgZXhwb25lbnQgb2YgdGhlIGZpcnN0IG9wZXJhbmQgYXJlIHVuY2hhbmdlZC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2Nfc3FydCwiXG5cCitzcXJ0KFtjb250ZXh0XSkgLSBSZXR1cm4gdGhlIHNxdWFyZSByb290IG9mIHRoZSBhcmd1bWVudCB0byBmdWxsIHByZWNpc2lvbi5cblwKK1RoZSByZXN1bHQgaXMgY29ycmVjdGx5IHJvdW5kZWQgdXNpbmcgdGhlIFJPVU5EX0hBTEZfRVZFTiByb3VuZGluZyBtb2RlLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY190b19lbmdfc3RyaW5nLCJcblwKK3RvX2VuZ19zdHJpbmcoW2NvbnRleHRdKSAtIENvbnZlcnQgdG8gYW4gZW5naW5lZXJpbmctdHlwZSBzdHJpbmcuXG5cCitFbmdpbmVlcmluZyBub3RhdGlvbiBoYXMgYW4gZXhwb25lbnQgd2hpY2ggaXMgYSBtdWx0aXBsZSBvZiAzLCBzb1xuXAordGhlcmUgYXJlIHVwIHRvIDMgZGlnaXRzIGxlZnQgb2YgdGhlIGRlY2ltYWwgcGxhY2UuIEZvciBleGFtcGxlLFxuXAorRGVjaW1hbCgnMTIzRSsxJykgaXMgY29udmVydGVkIHRvIERlY2ltYWwoJzEuMjNFKzMnKVxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY190b19pbnRlZ3JhbCwiXG5cCit0b19pbnRlZ3JhbChbcm91bmRpbmdbLCBjb250ZXh0XV0pIC0gSWRlbnRpY2FsIHRvIHRoZSB0b19pbnRlZ3JhbF92YWx1ZSgpXG5cCittZXRob2QuIFRoZSB0b19pbnRlZ3JhbCBuYW1lIGhhcyBiZWVuIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlclxuXAordmVyc2lvbnMuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX3RvX2ludGVncmFsX2V4YWN0LCJcblwKK3RvX2ludGVncmFsX2V4YWN0KFtyb3VuZGluZ1ssIGNvbnRleHRdXSkgLSBSb3VuZCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyLFxuXAorc2lnbmFsaW5nIEluZXhhY3Qgb3IgUm91bmRlZCBhcyBhcHByb3ByaWF0ZSBpZiByb3VuZGluZyBvY2N1cnMuIFRoZSByb3VuZGluZ1xuXAorbW9kZSBpcyBkZXRlcm1pbmVkIGJ5IHRoZSByb3VuZGluZyBwYXJhbWV0ZXIgaWYgZ2l2ZW4sIGVsc2UgYnkgdGhlIGdpdmVuXG5cCitjb250ZXh0LiBJZiBuZWl0aGVyIHBhcmFtZXRlciBpcyBnaXZlbiwgdGhlbiB0aGUgcm91bmRpbmcgbW9kZSBvZiB0aGUgY3VycmVudFxuXAorZGVmYXVsdCBjb250ZXh0IGlzIHVzZWQuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX3RvX2ludGVncmFsX3ZhbHVlLCJcblwKK3RvX2ludGVncmFsX3ZhbHVlKFtyb3VuZGluZ1ssIGNvbnRleHRdXSkgLSBSb3VuZCB0byB0aGUgbmVhcmVzdCBpbnRlZ2VyIHdpdGhvdXRcblwKK3NpZ25hbGluZyBJbmV4YWN0IG9yIFJvdW5kZWQuIFRoZSByb3VuZGluZyBtb2RlIGlzIGRldGVybWluZWQgYnkgdGhlIHJvdW5kaW5nXG5cCitwYXJhbWV0ZXIgaWYgZ2l2ZW4sIGVsc2UgYnkgdGhlIGdpdmVuIGNvbnRleHQuIElmIG5laXRoZXIgcGFyYW1ldGVyIGlzIGdpdmVuLFxuXAordGhlbiB0aGUgcm91bmRpbmcgbW9kZSBvZiB0aGUgY3VycmVudCBkZWZhdWx0IGNvbnRleHQgaXMgdXNlZC5cblwKK1xuIik7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICBDb250ZXh0IE9iamVjdCBhbmQgTWV0aG9kcyAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitQeURvY19TVFJWQVIoZG9jX2NvbnRleHQsIlxuXAorVGhlIGNvbnRleHQgYWZmZWN0cyBhbG1vc3QgYWxsIG9wZXJhdGlvbnMgYW5kIGNvbnRyb2xzIHJvdW5kaW5nLFxuXAorT3Zlci9VbmRlcmZsb3csIHJhaXNpbmcgb2YgZXhjZXB0aW9ucyBhbmQgbXVjaCBtb3JlLiBBIG5ldyBjb250ZXh0XG5cCitjYW4gYmUgY29uc3RydWN0ZWQgYXMgZm9sbG93czpcblwKK1xuXAorICAgID4+PiBjID0gQ29udGV4dChwcmVjPTI4LCBFbWluPS00MjUwMDAwMDAsIEVtYXg9NDI1MDAwMDAwLFxuXAorICAgIC4uLiAgICAgICAgICAgICByb3VuZGluZz1ST1VORF9IQUxGX0VWRU4sIGNhcGl0YWxzPTEsIGNsYW1wPTEsXG5cCisgICAgLi4uICAgICAgICAgICAgIHRyYXBzPVtJbnZhbGlkT3BlcmF0aW9uLCBEaXZpc2lvbkJ5WmVybywgT3ZlcmZsb3ddLFxuXAorICAgIC4uLiAgICAgICAgICAgICBmbGFncz1bXSlcblwKKyAgICA+Pj5cblwKK1xuXAorXG4iKTsKKworI2lmZGVmIEVYVFJBX0ZVTkNUSU9OQUxJVFkKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2FwcGx5LCJcblwKK2FwcGx5KHgpIC0gQXBwbHkgc2VsZiB0byBEZWNpbWFsIHguXG5cCitcbiIpOworI2VuZGlmCisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2NsZWFyX2ZsYWdzLCJcblwKK2NsZWFyX2ZsYWdzKCkgLSBSZXNldCBhbGwgZmxhZ3MgdG8gRmFsc2UuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9jbGVhcl90cmFwcywiXG5cCitjbGVhcl90cmFwcygpIC0gU2V0IGFsbCB0cmFwcyB0byBGYWxzZS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2NvcHksIlxuXAorY29weSgpIC0gUmV0dXJuIGEgZHVwbGljYXRlIG9mIHRoZSBjb250ZXh0IHdpdGggYWxsIGZsYWdzIGNsZWFyZWQuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9jb3B5X2RlY2ltYWwsIlxuXAorY29weV9kZWNpbWFsKHgpIC0gUmV0dXJuIGEgY29weSBvZiBEZWNpbWFsIHguXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9jcmVhdGVfZGVjaW1hbCwiXG5cCitjcmVhdGVfZGVjaW1hbCh4KSAtIENyZWF0ZSBhIG5ldyBEZWNpbWFsIGluc3RhbmNlIGZyb20geCwgdXNpbmcgc2VsZiBhcyB0aGVcblwKK2NvbnRleHQuIFVubGlrZSB0aGUgRGVjaW1hbCBjb25zdHJ1Y3RvciwgdGhpcyBmdW5jdGlvbiBvYnNlcnZlcyB0aGUgY29udGV4dFxuXAorbGltaXRzLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfY3JlYXRlX2RlY2ltYWxfZnJvbV9mbG9hdCwiXG5cCitjcmVhdGVfZGVjaW1hbF9mcm9tX2Zsb2F0KGYpIC0gQ3JlYXRlIGEgbmV3IERlY2ltYWwgaW5zdGFuY2UgZnJvbSBmbG9hdCBmLlxuXAorVW5saWtlIHRoZSBEZWNpbWFsLmZyb21fZmxvYXQoKSBjbGFzcyBtZXRob2QsIHRoaXMgZnVuY3Rpb24gb2JzZXJ2ZXMgdGhlXG5cCitjb250ZXh0IGxpbWl0cy5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X0V0aW55LCJcblwKK0V0aW55KCkgLSBSZXR1cm4gYSB2YWx1ZSBlcXVhbCB0byBFbWluIC0gcHJlYyArIDEsIHdoaWNoIGlzIHRoZSBtaW5pbXVtXG5cCitleHBvbmVudCB2YWx1ZSBmb3Igc3Vibm9ybWFsIHJlc3VsdHMuIFdoZW4gdW5kZXJmbG93IG9jY3VycywgdGhlIGV4cG9uZW50XG5cCitpcyBzZXQgdG8gRXRpbnkuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9FdG9wLCJcblwKK0V0b3AoKSAtIFJldHVybiBhIHZhbHVlIGVxdWFsIHRvIEVtYXggLSBwcmVjICsgMS4gVGhpcyBpcyB0aGUgbWF4aW11bSBleHBvbmVudFxuXAoraWYgdGhlIF9jbGFtcCBmaWVsZCBvZiB0aGUgY29udGV4dCBpcyBzZXQgdG8gMSAoSUVFRSBjbGFtcCBtb2RlKS4gRXRvcCgpIG11c3RcblwKK25vdCBiZSBuZWdhdGl2ZS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2FicywiXG5cCithYnMoeCkgLSBSZXR1cm4gdGhlIGFic29sdXRlIHZhbHVlIG9mIHguXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9hZGQsIlxuXAorYWRkKHgsIHkpIC0gUmV0dXJuIHRoZSBzdW0gb2YgeCBhbmQgeS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2Nhbm9uaWNhbCwiXG5cCitjYW5vbmljYWwoeCkgLSBSZXR1cm4gYSBuZXcgaW5zdGFuY2Ugb2YgeC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2NvbXBhcmUsIlxuXAorY29tcGFyZSh4LCB5KSAtIENvbXBhcmUgeCBhbmQgeSBudW1lcmljYWxseS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2NvbXBhcmVfc2lnbmFsLCJcblwKK2NvbXBhcmVfc2lnbmFsKHgsIHkpIC0gQ29tcGFyZSB4IGFuZCB5IG51bWVyaWNhbGx5LiBBbGwgTmFOcyBzaWduYWwuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9jb21wYXJlX3RvdGFsLCJcblwKK2NvbXBhcmVfdG90YWwoeCwgeSkgLSBDb21wYXJlIHggYW5kIHkgdXNpbmcgdGhlaXIgYWJzdHJhY3QgcmVwcmVzZW50YXRpb24uXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9jb21wYXJlX3RvdGFsX21hZywiXG5cCitjb21wYXJlX3RvdGFsX21hZyh4LCB5KSAtIENvbXBhcmUgeCBhbmQgeSB1c2luZyB0aGVpciBhYnN0cmFjdCByZXByZXNlbnRhdGlvbixcblwKK2lnbm9yaW5nIHNpZ24uXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9jb3B5X2FicywiXG5cCitjb3B5X2Ficyh4KSAtIFJldHVybiBhIGNvcHkgb2YgeCB3aXRoIHRoZSBzaWduIHNldCB0byAwLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfY29weV9uZWdhdGUsIlxuXAorY29weV9uZWdhdGUoeCkgLSBSZXR1cm4gYSBjb3B5IG9mIHggd2l0aCB0aGUgc2lnbiBpbnZlcnRlZC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2NvcHlfc2lnbiwiXG5cCitjb3B5X3NpZ24oeCwgeSkgLSBDb3B5IHRoZSBzaWduIGZyb20geSB0byB4LlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfZGl2aWRlLCJcblwKK2RpdmlkZSh4LCB5KSAtIFJldHVybiB4IGRpdmlkZWQgYnkgeS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2RpdmlkZV9pbnQsIlxuXAorZGl2aWRlX2ludCh4LCB5KSAtIFJldHVybiB4IGRpdmlkZWQgYnkgeSwgdHJ1bmNhdGVkIHRvIGFuIGludGVnZXIuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9kaXZtb2QsIlxuXAorZGl2bW9kKHgsIHkpIC0gUmV0dXJuIHF1b3RpZW50IGFuZCByZW1haW5kZXIgb2YgdGhlIGRpdmlzaW9uIHggLyB5LlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfZXhwLCJcblwKK2V4cCh4KSAtIFJldHVybiBlICoqIHguXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9mbWEsIlxuXAorZm1hKHgsIHksIHopIC0gUmV0dXJuIHggbXVsdGlwbGllZCBieSB5LCBwbHVzIHouXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9pc19jYW5vbmljYWwsIlxuXAoraXNfY2Fub25pY2FsKHgpIC0gUmV0dXJuIFRydWUgaWYgeCBpcyBjYW5vbmljYWwsIEZhbHNlIG90aGVyd2lzZS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2lzX2Zpbml0ZSwiXG5cCitpc19maW5pdGUoeCkgLSBSZXR1cm4gVHJ1ZSBpZiB4IGlzIGZpbml0ZSwgRmFsc2Ugb3RoZXJ3aXNlLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfaXNfaW5maW5pdGUsIlxuXAoraXNfaW5maW5pdGUoeCkgLSBSZXR1cm4gVHJ1ZSBpZiB4IGlzIGluZmluaXRlLCBGYWxzZSBvdGhlcndpc2UuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9pc19uYW4sIlxuXAoraXNfbmFuKHgpIC0gUmV0dXJuIFRydWUgaWYgeCBpcyBhIHFOYU4gb3Igc05hTiwgRmFsc2Ugb3RoZXJ3aXNlLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfaXNfbm9ybWFsLCJcblwKK2lzX25vcm1hbCh4KSAtIFJldHVybiBUcnVlIGlmIHggaXMgYSBub3JtYWwgbnVtYmVyLCBGYWxzZSBvdGhlcndpc2UuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9pc19xbmFuLCJcblwKK2lzX3FuYW4oeCkgLSBSZXR1cm4gVHJ1ZSBpZiB4IGlzIGEgcXVpZXQgTmFOLCBGYWxzZSBvdGhlcndpc2UuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9pc19zaWduZWQsIlxuXAoraXNfc2lnbmVkKHgpIC0gUmV0dXJuIFRydWUgaWYgeCBpcyBuZWdhdGl2ZSwgRmFsc2Ugb3RoZXJ3aXNlLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfaXNfc25hbiwiXG5cCitpc19zbmFuKCkgLSBSZXR1cm4gVHJ1ZSBpZiB4IGlzIGEgc2lnbmFsaW5nIE5hTiwgRmFsc2Ugb3RoZXJ3aXNlLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfaXNfc3Vibm9ybWFsLCJcblwKK2lzX3N1Ym5vcm1hbCh4KSAtIFJldHVybiBUcnVlIGlmIHggaXMgc3Vibm9ybWFsLCBGYWxzZSBvdGhlcndpc2UuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9pc196ZXJvLCJcblwKK2lzX3plcm8oeCkgLSBSZXR1cm4gVHJ1ZSBpZiB4IGlzIGEgemVybywgRmFsc2Ugb3RoZXJ3aXNlLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfbG4sIlxuXAorbG4oeCkgLSBSZXR1cm4gdGhlIG5hdHVyYWwgKGJhc2UgZSkgbG9nYXJpdGhtIG9mIHguXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9sb2cxMCwiXG5cCitsb2cxMCh4KSAtIFJldHVybiB0aGUgYmFzZSAxMCBsb2dhcml0aG0gb2YgeC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2xvZ2IsIlxuXAorbG9nYih4KSAtIFJldHVybiB0aGUgZXhwb25lbnQgb2YgdGhlIG1hZ25pdHVkZSBvZiB0aGUgb3BlcmFuZCdzIE1TRC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2xvZ2ljYWxfYW5kLCJcblwKK2xvZ2ljYWxfYW5kKHgsIHkpIC0gRGlnaXQtd2lzZSBhbmQgb2YgeCBhbmQgeS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2xvZ2ljYWxfaW52ZXJ0LCJcblwKK2xvZ2ljYWxfaW52ZXJ0KHgpIC0gSW52ZXJ0IGFsbCBkaWdpdHMgb2YgeC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2xvZ2ljYWxfb3IsIlxuXAorbG9naWNhbF9vcih4LCB5KSAtIERpZ2l0LXdpc2Ugb3Igb2YgeCBhbmQgeS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X2xvZ2ljYWxfeG9yLCJcblwKK2xvZ2ljYWxfeG9yKHgsIHkpIC0gRGlnaXQtd2lzZSB4b3Igb2YgeCBhbmQgeS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X21heCwiXG5cCittYXgoeCwgeSkgLSBDb21wYXJlIHRoZSB2YWx1ZXMgbnVtZXJpY2FsbHkgYW5kIHJldHVybiB0aGUgbWF4aW11bS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X21heF9tYWcsIlxuXAorbWF4X21hZyh4LCB5KSAtIENvbXBhcmUgdGhlIHZhbHVlcyBudW1lcmljYWxseSB3aXRoIHRoZWlyIHNpZ24gaWdub3JlZC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X21pbiwiXG5cCittaW4oeCwgeSkgLSBDb21wYXJlIHRoZSB2YWx1ZXMgbnVtZXJpY2FsbHkgYW5kIHJldHVybiB0aGUgbWluaW11bS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X21pbl9tYWcsIlxuXAorbWluX21hZyh4LCB5KSAtIENvbXBhcmUgdGhlIHZhbHVlcyBudW1lcmljYWxseSB3aXRoIHRoZWlyIHNpZ24gaWdub3JlZC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X21pbnVzLCJcblwKK21pbnVzKHgpIC0gTWludXMgY29ycmVzcG9uZHMgdG8gdGhlIHVuYXJ5IHByZWZpeCBtaW51cyBvcGVyYXRvciBpbiBQeXRob24sXG5cCitidXQgYXBwbGllcyB0aGUgY29udGV4dCB0byB0aGUgcmVzdWx0LlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfbXVsdGlwbHksIlxuXAorbXVsdGlwbHkoeCwgeSkgLSBSZXR1cm4gdGhlIHByb2R1Y3Qgb2YgeCBhbmQgeS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X25leHRfbWludXMsIlxuXAorbmV4dF9taW51cyh4KSAtIFJldHVybiB0aGUgbGFyZ2VzdCByZXByZXNlbnRhYmxlIG51bWJlciBzbWFsbGVyIHRoYW4geC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X25leHRfcGx1cywiXG5cCituZXh0X3BsdXMoeCkgLSBSZXR1cm4gdGhlIHNtYWxsZXN0IHJlcHJlc2VudGFibGUgbnVtYmVyIGxhcmdlciB0aGFuIHguXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9uZXh0X3Rvd2FyZCwiXG5cCituZXh0X3Rvd2FyZCh4KSAtIFJldHVybiB0aGUgbnVtYmVyIGNsb3Nlc3QgdG8geCwgaW4gdGhlIGRpcmVjdGlvbiB0b3dhcmRzIHkuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9ub3JtYWxpemUsIlxuXAorbm9ybWFsaXplKHgpIC0gUmVkdWNlIHggdG8gaXRzIHNpbXBsZXN0IGZvcm0uIEFsaWFzIGZvciByZWR1Y2UoeCkuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9udW1iZXJfY2xhc3MsIlxuXAorbnVtYmVyX2NsYXNzKHgpIC0gUmV0dXJuIGFuIGluZGljYXRpb24gb2YgdGhlIGNsYXNzIG9mIHguXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9wbHVzLCJcblwKK3BsdXMoeCkgLSBQbHVzIGNvcnJlc3BvbmRzIHRvIHRoZSB1bmFyeSBwcmVmaXggcGx1cyBvcGVyYXRvciBpbiBQeXRob24sXG5cCitidXQgYXBwbGllcyB0aGUgY29udGV4dCB0byB0aGUgcmVzdWx0LlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfcG93ZXIsIlxuXAorcG93ZXIoeCwgeSkgLSBDb21wdXRlIHgqKnkuIElmIHggaXMgbmVnYXRpdmUsIHRoZW4geSBtdXN0IGJlIGludGVncmFsLlxuXAorVGhlIHJlc3VsdCB3aWxsIGJlIGluZXhhY3QgdW5sZXNzIHkgaXMgaW50ZWdyYWwgYW5kIHRoZSByZXN1bHQgaXMgZmluaXRlXG5cCithbmQgY2FuIGJlIGV4cHJlc3NlZCBleGFjdGx5IGluICdwcmVjaXNpb24nIGRpZ2l0cy4gSW4gdGhlIFB5dGhvbiB2ZXJzaW9uXG5cCit0aGUgcmVzdWx0IGlzIGFsd2F5cyBjb3JyZWN0bHkgcm91bmRlZCwgaW4gdGhlIEMgdmVyc2lvbiB0aGUgcmVzdWx0IGlzXG5cCithbG1vc3QgYWx3YXlzIGNvcnJlY3RseSByb3VuZGVkLlxuXAorXG5cCitwb3dlcih4LCB5LCBtKSAtIENvbXB1dGUgKHgqKnkpICUgbS4gVGhlIGZvbGxvd2luZyByZXN0cmljdGlvbnMgaG9sZDpcblwKK1xuXAorICAgICogYWxsIHRocmVlIGFyZ3VtZW50cyBtdXN0IGJlIGludGVncmFsXG5cCisgICAgKiB5IG11c3QgYmUgbm9ubmVnYXRpdmVcblwKKyAgICAqIGF0IGxlYXN0IG9uZSBvZiB4IG9yIHkgbXVzdCBiZSBub256ZXJvXG5cCisgICAgKiBtIG11c3QgYmUgbm9uemVybyBhbmQgbGVzcyB0aGFuIDEwKipwcmVjIGluIGFic29sdXRlIHZhbHVlXG5cCitcblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X3F1YW50aXplLCJcblwKK3F1YW50aXplKHgsIHkpIC0gUmV0dXJuIGEgdmFsdWUgZXF1YWwgdG8geCAocm91bmRlZCksIGhhdmluZyB0aGUgZXhwb25lbnQgb2YgeS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X3JhZGl4LCJcblwKK3JhZGl4KCkgLSBSZXR1cm4gMTAuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9yZW1haW5kZXIsIlxuXAorcmVtYWluZGVyKHgsIHkpIC0gUmV0dXJuIHRoZSByZW1haW5kZXIgZnJvbSBpbnRlZ2VyIGRpdmlzaW9uLiBUaGUgc2lnbiBvZlxuXAordGhlIHJlc3VsdCwgaWYgbm9uLXplcm8sIGlzIHRoZSBzYW1lIGFzIHRoYXQgb2YgdGhlIG9yaWdpbmFsIGRpdmlkZW5kLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfcmVtYWluZGVyX25lYXIsIlxuXAorcmVtYWluZGVyX25lYXIoeCwgeSkgLSBSZXR1cm4geCAtIHkgKiBuLCB3aGVyZSBuIGlzIHRoZSBpbnRlZ2VyIG5lYXJlc3QgdGhlXG5cCitleGFjdCB2YWx1ZSBvZiB4IC8geSAoaWYgdGhlIHJlc3VsdCBpcyAwIHRoZW4gaXRzIHNpZ24gd2lsbCBiZSB0aGUgc2lnbiBvZiB4KS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X3JvdGF0ZSwiXG5cCityb3RhdGUoeCwgeSkgLSBSZXR1cm4gYSBjb3B5IG9mIHgsIHJvdGF0ZWQgYnkgeSBwbGFjZXMuXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF9zYW1lX3F1YW50dW0sIlxuXAorc2FtZV9xdWFudHVtKHgsIHkpIC0gUmV0dXJuIFRydWUgaWYgdGhlIHR3byBvcGVyYW5kcyBoYXZlIHRoZSBzYW1lIGV4cG9uZW50LlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfc2NhbGViLCJcblwKK3NjYWxlYih4LCB5KSAtIFJldHVybiB0aGUgZmlyc3Qgb3BlcmFuZCBhZnRlciBhZGRpbmcgdGhlIHNlY29uZCB2YWx1ZVxuXAordG8gaXRzIGV4cC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X3NoaWZ0LCJcblwKK3NoaWZ0KHgsIHkpIC0gUmV0dXJuIGEgY29weSBvZiB4LCBzaGlmdGVkIGJ5IHkgcGxhY2VzLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfc3FydCwiXG5cCitzcXJ0KHgpIC0gU3F1YXJlIHJvb3Qgb2YgYSBub24tbmVnYXRpdmUgbnVtYmVyIHRvIGNvbnRleHQgcHJlY2lzaW9uLlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfc3VidHJhY3QsIlxuXAorc3VidHJhY3QoeCwgeSkgLSBSZXR1cm4gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB4IGFuZCB5LlxuXAorXG4iKTsKKworUHlEb2NfU1RSVkFSKGRvY19jdHhfdG9fZW5nX3N0cmluZywiXG5cCit0b19lbmdfc3RyaW5nKHgpIC0gQ29udmVydCBhIG51bWJlciB0byBhIHN0cmluZywgdXNpbmcgZW5naW5lZXJpbmcgbm90YXRpb24uXG5cCitcbiIpOworCitQeURvY19TVFJWQVIoZG9jX2N0eF90b19pbnRlZ3JhbCwiXG5cCit0b19pbnRlZ3JhbCh4KSAtIElkZW50aWNhbCB0byB0b19pbnRlZ3JhbF92YWx1ZSh4KS5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X3RvX2ludGVncmFsX2V4YWN0LCJcblwKK3RvX2ludGVncmFsX2V4YWN0KHgpIC0gUm91bmQgdG8gYW4gaW50ZWdlci4gU2lnbmFsIGlmIHRoZSByZXN1bHQgaXNcblwKK3JvdW5kZWQgb3IgaW5leGFjdC5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X3RvX2ludGVncmFsX3ZhbHVlLCJcblwKK3RvX2ludGVncmFsX3ZhbHVlKHgpIC0gUm91bmQgdG8gYW4gaW50ZWdlci5cblwKK1xuIik7CisKK1B5RG9jX1NUUlZBUihkb2NfY3R4X3RvX3NjaV9zdHJpbmcsIlxuXAordG9fc2NpX3N0cmluZyh4KSAtIENvbnZlcnQgYSBudW1iZXIgdG8gYSBzdHJpbmcgdXNpbmcgc2NpZW50aWZpYyBub3RhdGlvbi5cblwKK1xuIik7CisKKworI2VuZGlmIC8qIERPQ1NUUklOR1NfSCAqLworCisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9SRUFETUUudHh0IGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9SRUFETUUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkOGY4OGMKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL1JFQURNRS50eHQKQEAgLTAsMCArMSw5MCBAQAorCisKK2xpYm1wZGVjCis9PT09PT09PQorCitsaWJtcGRlYyBpcyBhIGZhc3QgQy9DKysgbGlicmFyeSBmb3IgY29ycmVjdGx5LXJvdW5kZWQgYXJiaXRyYXJ5IHByZWNpc2lvbgorZGVjaW1hbCBmbG9hdGluZyBwb2ludCBhcml0aG1ldGljLiBJdCBpcyBhIGNvbXBsZXRlIGltcGxlbWVudGF0aW9uIG9mCitNaWtlIENvd2xpc2hhdy9JQk0ncyBHZW5lcmFsIERlY2ltYWwgQXJpdGhtZXRpYyBTcGVjaWZpY2F0aW9uLgorCisKK0ZpbGVzIHJlcXVpcmVkIGZvciB0aGUgUHl0aG9uIF9kZWNpbWFsIG1vZHVsZQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgQ29yZSBmaWxlcyBmb3Igc21hbGwgYW5kIG1lZGl1bSBwcmVjaXNpb24gYXJpdGhtZXRpYworICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBiYXNlYXJpdGgue2MsaH0gIC0+ICBDb3JlIGFyaXRobWV0aWMgaW4gYmFzZSAxMCoqOSBvciAxMCoqMTkuCisgICAgYml0cy5oICAgICAgICAgICAtPiAgUG9ydGFibGUgZGV0ZWN0aW9uIG9mIGxlYXN0L21vc3Qgc2lnbmlmaWNhbnQgb25lLWJpdC4KKyAgICBjb25zdGFudHMue2MsaH0gIC0+ICBDb25zdGFudHMgdGhhdCBhcmUgdXNlZCBpbiBtdWx0aXBsZSBmaWxlcy4KKyAgICBjb250ZXh0LmMgICAgICAgIC0+ICBDb250ZXh0IGZ1bmN0aW9ucy4KKyAgICBpby57YyxofSAgICAgICAgIC0+ICBDb252ZXJzaW9ucyBiZXR3ZWVuIG1wZF90IGFuZCBBU0NJSSBzdHJpbmdzLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1wZF90IGZvcm1hdHRpbmcgKGFsbG93cyBVVEYtOCBmaWxsIGNoYXJhY3RlcikuCisgICAgbWVtb3J5LntjLGh9ICAgICAtPiAgQWxsb2NhdGlvbiBoYW5kbGVycyB3aXRoIG92ZXJmbG93IGRldGVjdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBmdW5jdGlvbnMgZm9yIHN3aXRjaGluZyBiZXR3ZWVuIHN0YXRpYworICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkeW5hbWljIG1wZF90LgorICAgIG1wZGVjaW1hbC57YyxofSAgLT4gIEFsbCAocXVpZXQpIGZ1bmN0aW9ucyBvZiB0aGUgc3BlY2lmaWNhdGlvbi4KKyAgICB0eXBlYXJpdGguaCAgICAgIC0+ICBGYXN0IHByaW1pdGl2ZXMgZm9yIGRvdWJsZSB3b3JkIG11bHRpcGxpY2F0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgIGRpdmlzaW9uIGV0Yy4KKworICAgIFZpc3VhbCBTdHVkaW8gb25seToKKyAgICB+fn5+fn5+fn5+fn5+fn5+fn5+CisgICAgICB2Y2NvbXBhdC5oICAgIC0+ICBzbnByaW50ZiA8PT0+IHNwcmludGZfcyBhbmQgc2ltaWxhciB0aGluZ3MuCisgICAgICB2Y3N0ZGludC5oICAgIC0+ICBzdGRpbnQuaCAoaW5jbHVkZWQgaW4gVlMgMjAxMCBidXQgbm90IGluIFZTIDIwMDgpLgorICAgICAgdmNkaXY2NC5hc20gICAtPiAgRG91YmxlIHdvcmQgZGl2aXNpb24gdXNlZCBpbiB0eXBlYXJpdGguaC4gVlMgMjAwOCBkb2VzCisgICAgICAgICAgICAgICAgICAgICAgICBub3QgYWxsb3cgaW5saW5lIGFzbSBmb3IgeDY0LiBBbHNvLCBpdCBkb2VzIG5vdCBwcm92aWRlCisgICAgICAgICAgICAgICAgICAgICAgICBhbiBpbnRyaW5zaWMgZm9yIGRvdWJsZSB3b3JkIGRpdmlzaW9uLgorCisgIEZpbGVzIGZvciBiaWdudW0gYXJpdGhtZXRpYzoKKyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgVGhlIGZvbGxvd2luZyBmaWxlcyBpbXBsZW1lbnQgdGhlIEZhc3QgTnVtYmVyIFRoZW9yZXRpYyBUcmFuc2Zvcm0KKyAgICB1c2VkIGZvciBtdWx0aXBseWluZyBjb2VmZmljaWVudHMgd2l0aCBtb3JlIHRoYW4gMTAyNCB3b3JkcyAoc2VlCisgICAgbXBkZWNpbWFsLmM6IF9tcGRfZm50bXVsKCkpLgorCisgICAgICB1bW9kYXJpdGguaCAgICAgICAgLT4gIEZhc3QgbG93IGxldmVsIHJvdXRpbmVzIGZvciB1bnNpZ25lZCBtb2R1bGFyIGFyaXRobWV0aWMuCisgICAgICBudW1iZXJ0aGVvcnkue2MsaH0gLT4gIFJvdXRpbmVzIGZvciBzZXR0aW5nIHVwIHRoZSBOdW1iZXIgVGhlb3JldGljIFRyYW5zZm9ybS4KKyAgICAgIGRpZnJhZGl4Mi57YyxofSAgICAtPiAgRGVjaW1hdGlvbiBpbiBmcmVxdWVuY3kgdHJhbnNmb3JtLCB1c2VkIGFzIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFzZSBjYXNlIiBieSB0aGUgZm9sbG93aW5nIHRocmVlIGZpbGVzOgorCisgICAgICAgIGZudC57YyxofSAgICAgICAgLT4gIFRyYW5zZm9ybSBhcnJheXMgdXAgdG8gNDA5NiB3b3Jkcy4KKyAgICAgICAgc2l4c3RlcC57YyxofSAgICAtPiAgVHJhbnNmb3JtIGxhcmdlciBhcnJheXMgb2YgbGVuZ3RoIDIqKm4uCisgICAgICAgIGZvdXJzdGVwLntjLGh9ICAgLT4gIFRyYW5zZm9ybSBsYXJnZXIgYXJyYXlzIG9mIGxlbmd0aCAzICogMioqbi4KKworICAgICAgY29udm9sdXRlLntjLGh9ICAgIC0+ICBGYXN0IGNvbnZvbHV0aW9uIHVzaW5nIG9uZSBvZiB0aGUgdGhyZWUgdHJhbnNmb3JtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9ucy4KKyAgICAgIHRyYW5zcG9zZS57YyxofSAgICAtPiAgVHJhbnNwb3NpdGlvbnMgbmVlZGVkIGZvciB0aGUgc2l4c3RlcCBhbGdvcml0aG0uCisgICAgICBjcnQue2MsaH0gICAgICAgICAgLT4gIENoaW5lc2UgUmVtYWluZGVyIFRoZW9yZW06IHVzZSBpbmZvcm1hdGlvbiBmcm9tIHRocmVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybXMgbW9kdWxvIHRocmVlIGRpZmZlcmVudCBwcmltZXMgdG8gZ2V0IHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbCByZXN1bHQuCisKKworUG9pbnRlcnMgdG8gbGl0ZXJhdHVyZSwgcHJvb2ZzIGFuZCBtb3JlCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworICBsaXRlcmF0dXJlLworICAtLS0tLS0tLS0tLQorCisgICAgUkVGRVJFTkNFUy50eHQgIC0+ICBMaXN0IG9mIHJlbGV2YW50IHBhcGVycy4KKyAgICBiaWdudW0udHh0ICAgICAgLT4gIEV4cGxhbmF0aW9uIG9mIHRoZSBGYXN0IE51bWJlciBUaGVvcmV0aWMgVHJhbnNmb3JtIChGTlQpLgorICAgIGZudC5weSAgICAgICAgICAtPiAgVmVyaWZ5IGNvbnN0YW50cyB1c2VkIGluIHRoZSBGTlQ7IFB5dGhvbiBkZW1vIGZvciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgIE8oTioqMikgZGlzY3JldGUgdHJhbnNmb3JtLgorCisgICAgbWF0cml4LXRyYW5zZm9ybS50eHQgLT4gUHJvb2YgZm9yIHRoZSBNYXRyaXggRm91cmllciBUcmFuc2Zvcm0gdXNlZCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvdXJzdGVwLmMuCisgICAgc2l4LXN0ZXAudHh0ICAgICAgICAgLT4gU2hvdyB0aGF0IHRoZSBhbGdvcml0aG0gdXNlZCBpbiBzaXhzdGVwLmMgaXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhIHZhcmlhbnQgb2YgdGhlIE1hdHJpeCBGb3VyaWVyIFRyYW5zZm9ybS4KKyAgICBtdWxtb2QtNjQudHh0ICAgICAgICAtPiBQcm9vZiBmb3IgdGhlIG11bG1vZDY0IGFsZ29yaXRobSBmcm9tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW1vZGFyaXRoLmguCisgICAgbXVsbW9kLXBwcm8udHh0ICAgICAgLT4gUHJvb2YgZm9yIHRoZSB4ODcgRlBVIG1vZHVsYXIgbXVsdGlwbGljYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIHVtb2Rhcml0aC5oLgorICAgIHVtb2Rhcml0aC5saXNwICAgICAgIC0+IEFDTDIgcHJvb2ZzIGZvciBtYW55IGZ1bmN0aW9ucyBmcm9tIHVtb2Rhcml0aC5oLgorICAKKworTGlicmFyeSBBdXRob3IKKz09PT09PT09PT09PT09CisKKyAgU3RlZmFuIEtyYWggPHNrcmFoQGJ5dGVyZWVmLm9yZz4KKworCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvYmFzZWFyaXRoLmMgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2Jhc2Vhcml0aC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkMjFhN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2Jhc2Vhcml0aC5jCkBAIC0wLDAgKzEsNjU4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlICJjb25zdGFudHMuaCIKKyNpbmNsdWRlICJtZW1vcnkuaCIKKyNpbmNsdWRlICJ0eXBlYXJpdGguaCIKKyNpbmNsdWRlICJiYXNlYXJpdGguaCIKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgQ2FsY3VsYXRpb25zIGluIGJhc2UgTVBEX1JBRElYICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoKKyAqIEtudXRoLCBUQU9DUCwgVm9sdW1lIDIsIDQuMy4xOgorICogICAgdyA6PSBzdW0gb2YgdSAobGVuIG0pIGFuZCB2IChsZW4gbikKKyAqICAgIG4gPiAwIGFuZCBtID49IG4KKyAqIFRoZSBjYWxsaW5nIGZ1bmN0aW9uIGhhcyB0byBoYW5kbGUgYSBwb3NzaWJsZSBmaW5hbCBjYXJyeS4KKyAqLworbXBkX3VpbnRfdAorX21wZF9iYXNlYWRkKG1wZF91aW50X3QgKncsIGNvbnN0IG1wZF91aW50X3QgKnUsIGNvbnN0IG1wZF91aW50X3QgKnYsCisgICAgICAgICAgICAgbXBkX3NpemVfdCBtLCBtcGRfc2l6ZV90IG4pCit7CisgICAgbXBkX3VpbnRfdCBzOworICAgIG1wZF91aW50X3QgY2FycnkgPSAwOworICAgIG1wZF9zaXplX3QgaTsKKworICAgIGFzc2VydChuID4gMCAmJiBtID49IG4pOworCisgICAgLyogYWRkIG4gbWVtYmVycyBvZiB1IGFuZCB2ICovCisgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgICBzID0gdVtpXSArICh2W2ldICsgY2FycnkpOworICAgICAgICBjYXJyeSA9IChzIDwgdVtpXSkgfCAocyA+PSBNUERfUkFESVgpOworICAgICAgICB3W2ldID0gY2FycnkgPyBzLU1QRF9SQURJWCA6IHM7CisgICAgfQorICAgIC8qIGlmIHRoZXJlIGlzIGEgY2FycnksIHByb3BhZ2F0ZSBpdCAqLworICAgIGZvciAoOyBjYXJyeSAmJiBpIDwgbTsgaSsrKSB7CisgICAgICAgIHMgPSB1W2ldICsgY2Fycnk7CisgICAgICAgIGNhcnJ5ID0gKHMgPT0gTVBEX1JBRElYKTsKKyAgICAgICAgd1tpXSA9IGNhcnJ5ID8gMCA6IHM7CisgICAgfQorICAgIC8qIGNvcHkgdGhlIHJlc3Qgb2YgdSAqLworICAgIGZvciAoOyBpIDwgbTsgaSsrKSB7CisgICAgICAgIHdbaV0gPSB1W2ldOworICAgIH0KKworICAgIHJldHVybiBjYXJyeTsKK30KKworLyoKKyAqIEFkZCB0aGUgY29udGVudHMgb2YgdSB0byB3LiBDYXJyaWVzIGFyZSBwcm9wYWdhdGVkIGZ1cnRoZXIuIFRoZSBjYWxsZXIKKyAqIGhhcyB0byBtYWtlIHN1cmUgdGhhdCB3IGlzIGJpZyBlbm91Z2guCisgKi8KK3ZvaWQKK19tcGRfYmFzZWFkZHRvKG1wZF91aW50X3QgKncsIGNvbnN0IG1wZF91aW50X3QgKnUsIG1wZF9zaXplX3QgbikKK3sKKyAgICBtcGRfdWludF90IHM7CisgICAgbXBkX3VpbnRfdCBjYXJyeSA9IDA7CisgICAgbXBkX3NpemVfdCBpOworCisgICAgaWYgKG4gPT0gMCkgcmV0dXJuOworCisgICAgLyogYWRkIG4gbWVtYmVycyBvZiB1IHRvIHcgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgICAgIHMgPSB3W2ldICsgKHVbaV0gKyBjYXJyeSk7CisgICAgICAgIGNhcnJ5ID0gKHMgPCB3W2ldKSB8IChzID49IE1QRF9SQURJWCk7CisgICAgICAgIHdbaV0gPSBjYXJyeSA/IHMtTVBEX1JBRElYIDogczsKKyAgICB9CisgICAgLyogaWYgdGhlcmUgaXMgYSBjYXJyeSwgcHJvcGFnYXRlIGl0ICovCisgICAgZm9yICg7IGNhcnJ5OyBpKyspIHsKKyAgICAgICAgcyA9IHdbaV0gKyBjYXJyeTsKKyAgICAgICAgY2FycnkgPSAocyA9PSBNUERfUkFESVgpOworICAgICAgICB3W2ldID0gY2FycnkgPyAwIDogczsKKyAgICB9Cit9CisKKy8qCisgKiBBZGQgdiB0byB3IChsZW4gbSkuIFRoZSBjYWxsaW5nIGZ1bmN0aW9uIGhhcyB0byBoYW5kbGUgYSBwb3NzaWJsZQorICogZmluYWwgY2FycnkuIEFzc3VtcHRpb246IG0gPiAwLgorICovCittcGRfdWludF90CitfbXBkX3Nob3J0YWRkKG1wZF91aW50X3QgKncsIG1wZF9zaXplX3QgbSwgbXBkX3VpbnRfdCB2KQoreworICAgIG1wZF91aW50X3QgczsKKyAgICBtcGRfdWludF90IGNhcnJ5OworICAgIG1wZF9zaXplX3QgaTsKKworICAgIGFzc2VydChtID4gMCk7CisKKyAgICAvKiBhZGQgdiB0byB3ICovCisgICAgcyA9IHdbMF0gKyB2OworICAgIGNhcnJ5ID0gKHMgPCB2KSB8IChzID49IE1QRF9SQURJWCk7CisgICAgd1swXSA9IGNhcnJ5ID8gcy1NUERfUkFESVggOiBzOworCisgICAgLyogaWYgdGhlcmUgaXMgYSBjYXJyeSwgcHJvcGFnYXRlIGl0ICovCisgICAgZm9yIChpID0gMTsgY2FycnkgJiYgaSA8IG07IGkrKykgeworICAgICAgICBzID0gd1tpXSArIGNhcnJ5OworICAgICAgICBjYXJyeSA9IChzID09IE1QRF9SQURJWCk7CisgICAgICAgIHdbaV0gPSBjYXJyeSA/IDAgOiBzOworICAgIH0KKworICAgIHJldHVybiBjYXJyeTsKK30KKworLyogSW5jcmVtZW50IHUuIFRoZSBjYWxsaW5nIGZ1bmN0aW9uIGhhcyB0byBoYW5kbGUgYSBwb3NzaWJsZSBjYXJyeS4gKi8KK21wZF91aW50X3QKK19tcGRfYmFzZWluY3IobXBkX3VpbnRfdCAqdSwgbXBkX3NpemVfdCBuKQoreworICAgIG1wZF91aW50X3QgczsKKyAgICBtcGRfdWludF90IGNhcnJ5ID0gMTsKKyAgICBtcGRfc2l6ZV90IGk7CisKKyAgICBhc3NlcnQobiA+IDApOworCisgICAgLyogaWYgdGhlcmUgaXMgYSBjYXJyeSwgcHJvcGFnYXRlIGl0ICovCisgICAgZm9yIChpID0gMDsgY2FycnkgJiYgaSA8IG47IGkrKykgeworICAgICAgICBzID0gdVtpXSArIGNhcnJ5OworICAgICAgICBjYXJyeSA9IChzID09IE1QRF9SQURJWCk7CisgICAgICAgIHVbaV0gPSBjYXJyeSA/IDAgOiBzOworICAgIH0KKworICAgIHJldHVybiBjYXJyeTsKK30KKworLyoKKyAqIEtudXRoLCBUQU9DUCwgVm9sdW1lIDIsIDQuMy4xOgorICogICAgIHcgOj0gZGlmZmVyZW5jZSBvZiB1IChsZW4gbSkgYW5kIHYgKGxlbiBuKS4KKyAqICAgICBudW1iZXIgaW4gdSA+PSBudW1iZXIgaW4gdjsKKyAqLwordm9pZAorX21wZF9iYXNlc3ViKG1wZF91aW50X3QgKncsIGNvbnN0IG1wZF91aW50X3QgKnUsIGNvbnN0IG1wZF91aW50X3QgKnYsCisgICAgICAgICAgICAgbXBkX3NpemVfdCBtLCBtcGRfc2l6ZV90IG4pCit7CisgICAgbXBkX3VpbnRfdCBkOworICAgIG1wZF91aW50X3QgYm9ycm93ID0gMDsKKyAgICBtcGRfc2l6ZV90IGk7CisKKyAgICBhc3NlcnQobSA+IDAgJiYgbiA+IDApOworCisgICAgLyogc3VidHJhY3QgbiBtZW1iZXJzIG9mIHYgZnJvbSB1ICovCisgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgeworICAgICAgICBkID0gdVtpXSAtICh2W2ldICsgYm9ycm93KTsKKyAgICAgICAgYm9ycm93ID0gKHVbaV0gPCBkKTsKKyAgICAgICAgd1tpXSA9IGJvcnJvdyA/IGQgKyBNUERfUkFESVggOiBkOworICAgIH0KKyAgICAvKiBpZiB0aGVyZSBpcyBhIGJvcnJvdywgcHJvcGFnYXRlIGl0ICovCisgICAgZm9yICg7IGJvcnJvdyAmJiBpIDwgbTsgaSsrKSB7CisgICAgICAgIGQgPSB1W2ldIC0gYm9ycm93OworICAgICAgICBib3Jyb3cgPSAodVtpXSA9PSAwKTsKKyAgICAgICAgd1tpXSA9IGJvcnJvdyA/IE1QRF9SQURJWC0xIDogZDsKKyAgICB9CisgICAgLyogY29weSB0aGUgcmVzdCBvZiB1ICovCisgICAgZm9yICg7IGkgPCBtOyBpKyspIHsKKyAgICAgICAgd1tpXSA9IHVbaV07CisgICAgfQorfQorCisvKgorICogU3VidHJhY3QgdGhlIGNvbnRlbnRzIG9mIHUgZnJvbSB3LiB3IGlzIGxhcmdlciB0aGFuIHUuIEJvcnJvd3MgYXJlCisgKiBwcm9wYWdhdGVkIGZ1cnRoZXIsIGJ1dCBldmVudHVhbGx5IHcgY2FuIGFic29yYiB0aGUgZmluYWwgYm9ycm93LgorICovCit2b2lkCitfbXBkX2Jhc2VzdWJmcm9tKG1wZF91aW50X3QgKncsIGNvbnN0IG1wZF91aW50X3QgKnUsIG1wZF9zaXplX3QgbikKK3sKKyAgICBtcGRfdWludF90IGQ7CisgICAgbXBkX3VpbnRfdCBib3Jyb3cgPSAwOworICAgIG1wZF9zaXplX3QgaTsKKworICAgIGlmIChuID09IDApIHJldHVybjsKKworICAgIC8qIHN1YnRyYWN0IG4gbWVtYmVycyBvZiB1IGZyb20gdyAqLworICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAgICAgICAgZCA9IHdbaV0gLSAodVtpXSArIGJvcnJvdyk7CisgICAgICAgIGJvcnJvdyA9ICh3W2ldIDwgZCk7CisgICAgICAgIHdbaV0gPSBib3Jyb3cgPyBkICsgTVBEX1JBRElYIDogZDsKKyAgICB9CisgICAgLyogaWYgdGhlcmUgaXMgYSBib3Jyb3csIHByb3BhZ2F0ZSBpdCAqLworICAgIGZvciAoOyBib3Jyb3c7IGkrKykgeworICAgICAgICBkID0gd1tpXSAtIGJvcnJvdzsKKyAgICAgICAgYm9ycm93ID0gKHdbaV0gPT0gMCk7CisgICAgICAgIHdbaV0gPSBib3Jyb3cgPyBNUERfUkFESVgtMSA6IGQ7CisgICAgfQorfQorCisvKiB3IDo9IHByb2R1Y3Qgb2YgdSAobGVuIG4pIGFuZCB2IChzaW5nbGUgd29yZCkgKi8KK3ZvaWQKK19tcGRfc2hvcnRtdWwobXBkX3VpbnRfdCAqdywgY29uc3QgbXBkX3VpbnRfdCAqdSwgbXBkX3NpemVfdCBuLCBtcGRfdWludF90IHYpCit7CisgICAgbXBkX3VpbnRfdCBoaSwgbG87CisgICAgbXBkX3VpbnRfdCBjYXJyeSA9IDA7CisgICAgbXBkX3NpemVfdCBpOworCisgICAgYXNzZXJ0KG4gPiAwKTsKKworICAgIGZvciAoaT0wOyBpIDwgbjsgaSsrKSB7CisKKyAgICAgICAgX21wZF9tdWxfd29yZHMoJmhpLCAmbG8sIHVbaV0sIHYpOworICAgICAgICBsbyA9IGNhcnJ5ICsgbG87CisgICAgICAgIGlmIChsbyA8IGNhcnJ5KSBoaSsrOworCisgICAgICAgIF9tcGRfZGl2X3dvcmRzX3IoJmNhcnJ5LCAmd1tpXSwgaGksIGxvKTsKKyAgICB9CisgICAgd1tpXSA9IGNhcnJ5OworfQorCisvKgorICogS251dGgsIFRBT0NQLCBWb2x1bWUgMiwgNC4zLjE6CisgKiAgICAgdyA6PSBwcm9kdWN0IG9mIHUgKGxlbiBtKSBhbmQgdiAobGVuIG4pCisgKiAgICAgdyBtdXN0IGJlIGluaXRpYWxpemVkIHRvIHplcm8KKyAqLwordm9pZAorX21wZF9iYXNlbXVsKG1wZF91aW50X3QgKncsIGNvbnN0IG1wZF91aW50X3QgKnUsIGNvbnN0IG1wZF91aW50X3QgKnYsCisgICAgICAgICAgICAgbXBkX3NpemVfdCBtLCBtcGRfc2l6ZV90IG4pCit7CisgICAgbXBkX3VpbnRfdCBoaSwgbG87CisgICAgbXBkX3VpbnRfdCBjYXJyeTsKKyAgICBtcGRfc2l6ZV90IGksIGo7CisKKyAgICBhc3NlcnQobSA+IDAgJiYgbiA+IDApOworCisgICAgZm9yIChqPTA7IGogPCBuOyBqKyspIHsKKyAgICAgICAgY2FycnkgPSAwOworICAgICAgICBmb3IgKGk9MDsgaSA8IG07IGkrKykgeworCisgICAgICAgICAgICBfbXBkX211bF93b3JkcygmaGksICZsbywgdVtpXSwgdltqXSk7CisgICAgICAgICAgICBsbyA9IHdbaStqXSArIGxvOworICAgICAgICAgICAgaWYgKGxvIDwgd1tpK2pdKSBoaSsrOworICAgICAgICAgICAgbG8gPSBjYXJyeSArIGxvOworICAgICAgICAgICAgaWYgKGxvIDwgY2FycnkpIGhpKys7CisKKyAgICAgICAgICAgIF9tcGRfZGl2X3dvcmRzX3IoJmNhcnJ5LCAmd1tpK2pdLCBoaSwgbG8pOworICAgICAgICB9CisgICAgICAgIHdbaittXSA9IGNhcnJ5OworICAgIH0KK30KKworLyoKKyAqIEtudXRoLCBUQU9DUCBWb2x1bWUgMiwgNC4zLjEsIGV4ZXJjaXNlIDE2OgorICogICAgIHcgOj0gcXVvdGllbnQgb2YgdSAobGVuIG4pIGRpdmlkZWQgYnkgYSBzaW5nbGUgd29yZCB2CisgKi8KK21wZF91aW50X3QKK19tcGRfc2hvcnRkaXYobXBkX3VpbnRfdCAqdywgY29uc3QgbXBkX3VpbnRfdCAqdSwgbXBkX3NpemVfdCBuLCBtcGRfdWludF90IHYpCit7CisgICAgbXBkX3VpbnRfdCBoaSwgbG87CisgICAgbXBkX3VpbnRfdCByZW0gPSAwOworICAgIG1wZF9zaXplX3QgaTsKKworICAgIGFzc2VydChuID4gMCk7CisKKyAgICBmb3IgKGk9bi0xOyBpICE9IE1QRF9TSVpFX01BWDsgaS0tKSB7CisKKyAgICAgICAgX21wZF9tdWxfd29yZHMoJmhpLCAmbG8sIHJlbSwgTVBEX1JBRElYKTsKKyAgICAgICAgbG8gPSB1W2ldICsgbG87CisgICAgICAgIGlmIChsbyA8IHVbaV0pIGhpKys7CisKKyAgICAgICAgX21wZF9kaXZfd29yZHMoJndbaV0sICZyZW0sIGhpLCBsbywgdik7CisgICAgfQorCisgICAgcmV0dXJuIHJlbTsKK30KKworLyoKKyAqIEtudXRoLCBUQU9DUCBWb2x1bWUgMiwgNC4zLjE6CisgKiAgICAgcSwgciA6PSBxdW90aWVudCBhbmQgcmVtYWluZGVyIG9mIHVjb25zdCAobGVuIG5wbHVzbSkKKyAqICAgICAgICAgICAgIGRpdmlkZWQgYnkgdmNvbnN0IChsZW4gbikKKyAqICAgICBucGx1c20gPj0gbgorICoKKyAqIElmIHIgaXMgbm90IE5VTEwsIHIgd2lsbCBjb250YWluIHRoZSByZW1haW5kZXIuIElmIHIgaXMgTlVMTCwgdGhlCisgKiByZXR1cm4gdmFsdWUgaW5kaWNhdGVzIGlmIHRoZXJlIGlzIGEgcmVtYWluZGVyOiAxIGZvciB0cnVlLCAwIGZvcgorICogZmFsc2UuICBBIHJldHVybiB2YWx1ZSBvZiAtMSBpbmRpY2F0ZXMgYW4gZXJyb3IuCisgKi8KK2ludAorX21wZF9iYXNlZGl2bW9kKG1wZF91aW50X3QgKnEsIG1wZF91aW50X3QgKnIsCisgICAgICAgICAgICAgICAgY29uc3QgbXBkX3VpbnRfdCAqdWNvbnN0LCBjb25zdCBtcGRfdWludF90ICp2Y29uc3QsCisgICAgICAgICAgICAgICAgbXBkX3NpemVfdCBucGx1c20sIG1wZF9zaXplX3QgbikKK3sKKyAgICBtcGRfdWludF90IHVzdGF0aWNbTVBEX01JTkFMTE9DX01BWF07CisgICAgbXBkX3VpbnRfdCB2c3RhdGljW01QRF9NSU5BTExPQ19NQVhdOworICAgIG1wZF91aW50X3QgKnUgPSB1c3RhdGljOworICAgIG1wZF91aW50X3QgKnYgPSB2c3RhdGljOworICAgIG1wZF91aW50X3QgZCwgcWhhdCwgcmhhdCwgdzJbMl07CisgICAgbXBkX3VpbnRfdCBoaSwgbG8sIHg7CisgICAgbXBkX3VpbnRfdCBjYXJyeTsKKyAgICBtcGRfc2l6ZV90IGksIGosIG07CisgICAgaW50IHJldHZhbCA9IDA7CisKKyAgICBhc3NlcnQobiA+IDEgJiYgbnBsdXNtID49IG4pOworICAgIG0gPSBzdWJfc2l6ZV90KG5wbHVzbSwgbik7CisKKyAgICAvKiBEMTogbm9ybWFsaXplICovCisgICAgZCA9IE1QRF9SQURJWCAvICh2Y29uc3Rbbi0xXSArIDEpOworCisgICAgaWYgKG5wbHVzbSA+PSBNUERfTUlOQUxMT0NfTUFYKSB7CisgICAgICAgIGlmICgodSA9IG1wZF9hbGxvYyhucGx1c20rMSwgc2l6ZW9mICp1KSkgPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorICAgIGlmIChuID49IE1QRF9NSU5BTExPQ19NQVgpIHsKKyAgICAgICAgaWYgKCh2ID0gbXBkX2FsbG9jKG4rMSwgc2l6ZW9mICp2KSkgPT0gTlVMTCkgeworICAgICAgICAgICAgbXBkX2ZyZWUodSk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfbXBkX3Nob3J0bXVsKHUsIHVjb25zdCwgbnBsdXNtLCBkKTsKKyAgICBfbXBkX3Nob3J0bXVsKHYsIHZjb25zdCwgbiwgZCk7CisKKyAgICAvKiBEMjogbG9vcCAqLworICAgIGZvciAoaj1tOyBqICE9IE1QRF9TSVpFX01BWDsgai0tKSB7CisKKyAgICAgICAgLyogRDM6IGNhbGN1bGF0ZSBxaGF0IGFuZCByaGF0ICovCisgICAgICAgIHJoYXQgPSBfbXBkX3Nob3J0ZGl2KHcyLCB1K2orbi0xLCAyLCB2W24tMV0pOworICAgICAgICBxaGF0ID0gdzJbMV0gKiBNUERfUkFESVggKyB3MlswXTsKKworICAgICAgICB3aGlsZSAoMSkgeworICAgICAgICAgICAgaWYgKHFoYXQgPCBNUERfUkFESVgpIHsKKyAgICAgICAgICAgICAgICBfbXBkX3NpbmdsZW11bCh3MiwgcWhhdCwgdltuLTJdKTsKKyAgICAgICAgICAgICAgICBpZiAodzJbMV0gPD0gcmhhdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAodzJbMV0gIT0gcmhhdCB8fCB3MlswXSA8PSB1W2orbi0yXSkgeworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBxaGF0IC09IDE7CisgICAgICAgICAgICByaGF0ICs9IHZbbi0xXTsKKyAgICAgICAgICAgIGlmIChyaGF0IDwgdltuLTFdIHx8IHJoYXQgPj0gTVBEX1JBRElYKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLyogRDQ6IG11bHRpcGx5IGFuZCBzdWJ0cmFjdCAqLworICAgICAgICBjYXJyeSA9IDA7CisgICAgICAgIGZvciAoaT0wOyBpIDw9IG47IGkrKykgeworCisgICAgICAgICAgICBfbXBkX211bF93b3JkcygmaGksICZsbywgcWhhdCwgdltpXSk7CisKKyAgICAgICAgICAgIGxvID0gY2FycnkgKyBsbzsKKyAgICAgICAgICAgIGlmIChsbyA8IGNhcnJ5KSBoaSsrOworCisgICAgICAgICAgICBfbXBkX2Rpdl93b3Jkc19yKCZoaSwgJmxvLCBoaSwgbG8pOworCisgICAgICAgICAgICB4ID0gdVtpK2pdIC0gbG87CisgICAgICAgICAgICBjYXJyeSA9ICh1W2kral0gPCB4KTsKKyAgICAgICAgICAgIHVbaStqXSA9IGNhcnJ5ID8geCtNUERfUkFESVggOiB4OworICAgICAgICAgICAgY2FycnkgKz0gaGk7CisgICAgICAgIH0KKyAgICAgICAgcVtqXSA9IHFoYXQ7CisgICAgICAgIC8qIEQ1OiB0ZXN0IHJlbWFpbmRlciAqLworICAgICAgICBpZiAoY2FycnkpIHsKKyAgICAgICAgICAgIHFbal0gLT0gMTsKKyAgICAgICAgICAgIC8qIEQ2OiBhZGQgYmFjayAqLworICAgICAgICAgICAgKHZvaWQpX21wZF9iYXNlYWRkKHUraiwgdStqLCB2LCBuKzEsIG4pOworICAgICAgICB9CisgICAgfQorCisgICAgLyogRDg6IHVubm9ybWFsaXplICovCisgICAgaWYgKHIgIT0gTlVMTCkgeworICAgICAgICBfbXBkX3Nob3J0ZGl2KHIsIHUsIG4sIGQpOworICAgICAgICAvKiB3ZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gdGhlIHJldHVybiB2YWx1ZSBoZXJlICovCisgICAgICAgIHJldHZhbCA9IDA7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR2YWwgPSAhX21wZF9pc2FsbHplcm8odSwgbik7CisgICAgfQorCisKK2lmICh1ICE9IHVzdGF0aWMpIG1wZF9mcmVlKHUpOworaWYgKHYgIT0gdnN0YXRpYykgbXBkX2ZyZWUodik7CityZXR1cm4gcmV0dmFsOworfQorCisvKgorICogTGVmdCBzaGlmdCBvZiBzcmMgYnkgJ3NoaWZ0JyBkaWdpdHM7IHNyYyBtYXkgZXF1YWwgZGVzdC4KKyAqCisgKiAgZGVzdCA6PSBhcmVhIG9mIG4gbXBkX3VpbnRfdCB3aXRoIHNwYWNlIGZvciBzcmNkaWdpdHMrc2hpZnQgZGlnaXRzLgorICogIHNyYyAgOj0gY29lZmZpY2llbnQgd2l0aCBsZW5ndGggbS4KKyAqCisgKiBUaGUgY2FzZSBzcGxpdHMgaW4gdGhlIGZ1bmN0aW9uIGFyZSBub24tb2J2aW91cy4gVGhlIGZvbGxvd2luZworICogZXF1YXRpb25zIG1pZ2h0IGhlbHA6CisgKgorICogIExldCBtc2RpZ2l0cyBkZW5vdGUgdGhlIG51bWJlciBvZiBkaWdpdHMgaW4gdGhlIG1vc3Qgc2lnbmlmaWNhbnQKKyAqICB3b3JkIG9mIHNyYy4gVGhlbiAxIDw9IG1zZGlnaXRzIDw9IHJkaWdpdHMuCisgKgorICogICAxKSBzaGlmdCA9IHEgKiByZGlnaXRzICsgcgorICogICAyKSBzcmNkaWdpdHMgPSBxc3JjICogcmRpZ2l0cyArIG1zZGlnaXRzCisgKiAgIDMpIGRlc3RkaWdpdHMgPSBzaGlmdCArIHNyY2RpZ2l0cworICogICAgICAgICAgICAgICAgID0gcSAqIHJkaWdpdHMgKyByICsgcXNyYyAqIHJkaWdpdHMgKyBtc2RpZ2l0cworICogICAgICAgICAgICAgICAgID0gcSAqIHJkaWdpdHMgKyAocXNyYyAqIHJkaWdpdHMgKyAociArIG1zZGlnaXRzKSkKKyAqCisgKiAgVGhlIHJlc3VsdCBoYXMgcSB6ZXJvIHdvcmRzLCBmb2xsb3dlZCBieSB0aGUgY29lZmZpY2llbnQgdGhhdAorICogIGlzIGxlZnQtc2hpZnRlZCBieSByLiBUaGUgY2FzZSByID09IDAgaXMgdHJpdmlhbC4gRm9yIHIgPiAwLCBpdAorICogIGlzIGltcG9ydGFudCB0byBrZWVwIGluIG1pbmQgdGhhdCB3ZSBhbHdheXMgcmVhZCBtIHNvdXJjZSB3b3JkcywKKyAqICBidXQgd3JpdGUgbSsxIGRlc3RpbmF0aW9uIHdvcmRzIGlmIHIgKyBtc2RpZ2l0cyA+IHJkaWdpdHMsIG0gd29yZHMKKyAqICBvdGhlcndpc2UuCisgKi8KK3ZvaWQKK19tcGRfYmFzZXNoaWZ0bChtcGRfdWludF90ICpkZXN0LCBtcGRfdWludF90ICpzcmMsIG1wZF9zaXplX3QgbiwgbXBkX3NpemVfdCBtLAorICAgICAgICAgICAgICAgIG1wZF9zaXplX3Qgc2hpZnQpCit7CisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19JTlRFTF9DT01QSUxFUikgJiYgIWRlZmluZWQoX19jbGFuZ19fKQorICAgIC8qIHNwdXJpb3VzIHVuaW5pdGlhbGl6ZWQgd2FybmluZ3MgKi8KKyAgICBtcGRfdWludF90IGw9bCwgbHByZXY9bHByZXYsIGg9aDsKKyNlbHNlCisgICAgbXBkX3VpbnRfdCBsLCBscHJldiwgaDsKKyNlbmRpZgorICAgIG1wZF91aW50X3QgcSwgcjsKKyAgICBtcGRfdWludF90IHBoOworCisgICAgYXNzZXJ0KG0gPiAwICYmIG4gPj0gbSk7CisKKyAgICBfbXBkX2Rpdl93b3JkKCZxLCAmciwgKG1wZF91aW50X3Qpc2hpZnQsIE1QRF9SRElHSVRTKTsKKworICAgIGlmIChyICE9IDApIHsKKworICAgICAgICBwaCA9IG1wZF9wb3cxMFtyXTsKKworICAgICAgICAtLW07IC0tbjsKKyAgICAgICAgX21wZF9kaXZtb2RfcG93MTAoJmgsICZscHJldiwgc3JjW20tLV0sIE1QRF9SRElHSVRTLXIpOworICAgICAgICBpZiAoaCAhPSAwKSB7IC8qIHIgKyBtc2RpZ2l0cyA+IHJkaWdpdHMgPD09PiBoICE9IDAgKi8KKyAgICAgICAgICAgIGRlc3Rbbi0tXSA9IGg7CisgICAgICAgIH0KKyAgICAgICAgLyogd3JpdGUgbS0xIHNoaWZ0ZWQgd29yZHMgKi8KKyAgICAgICAgZm9yICg7IG0gIT0gTVBEX1NJWkVfTUFYOyBtLS0sbi0tKSB7CisgICAgICAgICAgICBfbXBkX2Rpdm1vZF9wb3cxMCgmaCwgJmwsIHNyY1ttXSwgTVBEX1JESUdJVFMtcik7CisgICAgICAgICAgICBkZXN0W25dID0gcGggKiBscHJldiArIGg7CisgICAgICAgICAgICBscHJldiA9IGw7CisgICAgICAgIH0KKyAgICAgICAgLyogd3JpdGUgbGVhc3Qgc2lnbmlmaWNhbnQgd29yZCAqLworICAgICAgICBkZXN0W3FdID0gcGggKiBscHJldjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHdoaWxlICgtLW0gIT0gTVBEX1NJWkVfTUFYKSB7CisgICAgICAgICAgICBkZXN0W20rcV0gPSBzcmNbbV07CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtcGRfdWludF96ZXJvKGRlc3QsIHEpOworfQorCisvKgorICogUmlnaHQgc2hpZnQgb2Ygc3JjIGJ5ICdzaGlmdCcgZGlnaXRzOyBzcmMgbWF5IGVxdWFsIGRlc3QuCisgKiBBc3N1bXB0aW9uOiBzcmNkaWdpdHMtc2hpZnQgPiAwLgorICoKKyAqICBkZXN0IDo9IGFyZWEgd2l0aCBzcGFjZSBmb3Igc3JjZGlnaXRzLXNoaWZ0IGRpZ2l0cy4KKyAqICBzcmMgIDo9IGNvZWZmaWNpZW50IHdpdGggbGVuZ3RoICdzbGVuJy4KKyAqCisgKiBUaGUgY2FzZSBzcGxpdHMgaW4gdGhlIGZ1bmN0aW9uIHJlbHkgb24gdGhlIGZvbGxvd2luZyBlcXVhdGlvbnM6CisgKgorICogIExldCBtc2RpZ2l0cyBkZW5vdGUgdGhlIG51bWJlciBvZiBkaWdpdHMgaW4gdGhlIG1vc3Qgc2lnbmlmaWNhbnQKKyAqICB3b3JkIG9mIHNyYy4gVGhlbiAxIDw9IG1zZGlnaXRzIDw9IHJkaWdpdHMuCisgKgorICogIDEpIHNoaWZ0ID0gcSAqIHJkaWdpdHMgKyByCisgKiAgMikgc3JjZGlnaXRzID0gcXNyYyAqIHJkaWdpdHMgKyBtc2RpZ2l0cworICogIDMpIGRlc3RkaWdpdHMgPSBzcmNkaWdpdHMgLSBzaGlmdAorICogICAgICAgICAgICAgICAgPSBxc3JjICogcmRpZ2l0cyArIG1zZGlnaXRzIC0gKHEgKiByZGlnaXRzICsgcikKKyAqICAgICAgICAgICAgICAgID0gKHFzcmMgLSBxKSAqIHJkaWdpdHMgKyBtc2RpZ2l0cyAtIHIKKyAqCisgKiBTaW5jZSBkZXN0ZGlnaXRzID4gMCBhbmQgMSA8PSBtc2RpZ2l0cyA8PSByZGlnaXRzOgorICoKKyAqICA0KSBxc3JjID49IHEKKyAqICA1KSBxc3JjID09IHEgID09PiAgbXNkaWdpdHMgPiByCisgKgorICogVGhlIHJlc3VsdCBoYXMgc2xlbi1xIHdvcmRzIGlmIG1zZGlnaXRzID4gciwgc2xlbi1xLTEgd29yZHMgb3RoZXJ3aXNlLgorICovCittcGRfdWludF90CitfbXBkX2Jhc2VzaGlmdHIobXBkX3VpbnRfdCAqZGVzdCwgbXBkX3VpbnRfdCAqc3JjLCBtcGRfc2l6ZV90IHNsZW4sCisgICAgICAgICAgICAgICAgbXBkX3NpemVfdCBzaGlmdCkKK3sKKyNpZiBkZWZpbmVkKF9fR05VQ19fKSAmJiAhZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKSAmJiAhZGVmaW5lZChfX2NsYW5nX18pCisgICAgLyogc3B1cmlvdXMgdW5pbml0aWFsaXplZCB3YXJuaW5ncyAqLworICAgIG1wZF91aW50X3QgbD1sLCBoPWgsIGhwcmV2PWhwcmV2OyAvKiBsb3csIGhpZ2gsIHByZXZpb3VzIGhpZ2ggKi8KKyNlbHNlCisgICAgbXBkX3VpbnRfdCBsLCBoLCBocHJldjsgLyogbG93LCBoaWdoLCBwcmV2aW91cyBoaWdoICovCisjZW5kaWYKKyAgICBtcGRfdWludF90IHJuZCwgcmVzdDsgICAvKiByb3VuZGluZyBkaWdpdCwgcmVzdCAqLworICAgIG1wZF91aW50X3QgcSwgcjsKKyAgICBtcGRfc2l6ZV90IGksIGo7CisgICAgbXBkX3VpbnRfdCBwaDsKKworICAgIGFzc2VydChzbGVuID4gMCk7CisKKyAgICBfbXBkX2Rpdl93b3JkKCZxLCAmciwgKG1wZF91aW50X3Qpc2hpZnQsIE1QRF9SRElHSVRTKTsKKworICAgIHJuZCA9IHJlc3QgPSAwOworICAgIGlmIChyICE9IDApIHsKKworICAgICAgICBwaCA9IG1wZF9wb3cxMFtNUERfUkRJR0lUUy1yXTsKKworICAgICAgICBfbXBkX2Rpdm1vZF9wb3cxMCgmaHByZXYsICZyZXN0LCBzcmNbcV0sIHIpOworICAgICAgICBfbXBkX2Rpdm1vZF9wb3cxMCgmcm5kLCAmcmVzdCwgcmVzdCwgci0xKTsKKworICAgICAgICBpZiAocmVzdCA9PSAwICYmIHEgPiAwKSB7CisgICAgICAgICAgICByZXN0ID0gIV9tcGRfaXNhbGx6ZXJvKHNyYywgcSk7CisgICAgICAgIH0KKyAgICAgICAgLyogd3JpdGUgc2xlbi1xLTEgd29yZHMgKi8KKyAgICAgICAgZm9yIChqPTAsaT1xKzE7IGk8c2xlbjsgaSsrLGorKykgeworICAgICAgICAgICAgX21wZF9kaXZtb2RfcG93MTAoJmgsICZsLCBzcmNbaV0sIHIpOworICAgICAgICAgICAgZGVzdFtqXSA9IHBoICogbCArIGhwcmV2OworICAgICAgICAgICAgaHByZXYgPSBoOworICAgICAgICB9CisgICAgICAgIC8qIHdyaXRlIG1vc3Qgc2lnbmlmaWNhbnQgd29yZCAqLworICAgICAgICBpZiAoaHByZXYgIT0gMCkgeyAvKiBhbHdheXMgdGhlIGNhc2UgaWYgc2xlbj09cS0xICovCisgICAgICAgICAgICBkZXN0W2pdID0gaHByZXY7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGlmIChxID4gMCkgeworICAgICAgICAgICAgX21wZF9kaXZtb2RfcG93MTAoJnJuZCwgJnJlc3QsIHNyY1txLTFdLCBNUERfUkRJR0lUUy0xKTsKKyAgICAgICAgICAgIC8qIGlzIHRoZXJlIGFueSBub24temVybyBkaWdpdCBiZWxvdyBybmQ/ICovCisgICAgICAgICAgICBpZiAocmVzdCA9PSAwKSByZXN0ID0gIV9tcGRfaXNhbGx6ZXJvKHNyYywgcS0xKTsKKyAgICAgICAgfQorICAgICAgICBmb3IgKGogPSAwOyBqIDwgc2xlbi1xOyBqKyspIHsKKyAgICAgICAgICAgIGRlc3Rbal0gPSBzcmNbcStqXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIDAtNCAgPT0+IHJuZCtyZXN0IDwgMC41ICAgKi8KKyAgICAvKiA1ICAgID09PiBybmQrcmVzdCA9PSAwLjUgICovCisgICAgLyogNi05ICA9PT4gcm5kK3Jlc3QgPiAwLjUgICAqLworICAgIHJldHVybiAocm5kID09IDAgfHwgcm5kID09IDUpID8gcm5kICsgISFyZXN0IDogcm5kOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICBDYWxjdWxhdGlvbnMgaW4gYmFzZSBiICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIEFkZCB2IHRvIHcgKGxlbiBtKS4gVGhlIGNhbGxpbmcgZnVuY3Rpb24gaGFzIHRvIGhhbmRsZSBhIHBvc3NpYmxlCisgKiBmaW5hbCBjYXJyeS4gQXNzdW1wdGlvbjogbSA+IDAuCisgKi8KK21wZF91aW50X3QKK19tcGRfc2hvcnRhZGRfYihtcGRfdWludF90ICp3LCBtcGRfc2l6ZV90IG0sIG1wZF91aW50X3QgdiwgbXBkX3VpbnRfdCBiKQoreworICAgIG1wZF91aW50X3QgczsKKyAgICBtcGRfdWludF90IGNhcnJ5OworICAgIG1wZF9zaXplX3QgaTsKKworICAgIGFzc2VydChtID4gMCk7CisKKyAgICAvKiBhZGQgdiB0byB3ICovCisgICAgcyA9IHdbMF0gKyB2OworICAgIGNhcnJ5ID0gKHMgPCB2KSB8IChzID49IGIpOworICAgIHdbMF0gPSBjYXJyeSA/IHMtYiA6IHM7CisKKyAgICAvKiBpZiB0aGVyZSBpcyBhIGNhcnJ5LCBwcm9wYWdhdGUgaXQgKi8KKyAgICBmb3IgKGkgPSAxOyBjYXJyeSAmJiBpIDwgbTsgaSsrKSB7CisgICAgICAgIHMgPSB3W2ldICsgY2Fycnk7CisgICAgICAgIGNhcnJ5ID0gKHMgPT0gYik7CisgICAgICAgIHdbaV0gPSBjYXJyeSA/IDAgOiBzOworICAgIH0KKworICAgIHJldHVybiBjYXJyeTsKK30KKworLyogdyA6PSBwcm9kdWN0IG9mIHUgKGxlbiBuKSBhbmQgdiAoc2luZ2xlIHdvcmQpLiBSZXR1cm4gY2FycnkuICovCittcGRfdWludF90CitfbXBkX3Nob3J0bXVsX2MobXBkX3VpbnRfdCAqdywgY29uc3QgbXBkX3VpbnRfdCAqdSwgbXBkX3NpemVfdCBuLCBtcGRfdWludF90IHYpCit7CisgICAgbXBkX3VpbnRfdCBoaSwgbG87CisgICAgbXBkX3VpbnRfdCBjYXJyeSA9IDA7CisgICAgbXBkX3NpemVfdCBpOworCisgICAgYXNzZXJ0KG4gPiAwKTsKKworICAgIGZvciAoaT0wOyBpIDwgbjsgaSsrKSB7CisKKyAgICAgICAgX21wZF9tdWxfd29yZHMoJmhpLCAmbG8sIHVbaV0sIHYpOworICAgICAgICBsbyA9IGNhcnJ5ICsgbG87CisgICAgICAgIGlmIChsbyA8IGNhcnJ5KSBoaSsrOworCisgICAgICAgIF9tcGRfZGl2X3dvcmRzX3IoJmNhcnJ5LCAmd1tpXSwgaGksIGxvKTsKKyAgICB9CisKKyAgICByZXR1cm4gY2Fycnk7Cit9CisKKy8qIHcgOj0gcHJvZHVjdCBvZiB1IChsZW4gbikgYW5kIHYgKHNpbmdsZSB3b3JkKSAqLworbXBkX3VpbnRfdAorX21wZF9zaG9ydG11bF9iKG1wZF91aW50X3QgKncsIGNvbnN0IG1wZF91aW50X3QgKnUsIG1wZF9zaXplX3QgbiwKKyAgICAgICAgICAgICAgICBtcGRfdWludF90IHYsIG1wZF91aW50X3QgYikKK3sKKyAgICBtcGRfdWludF90IGhpLCBsbzsKKyAgICBtcGRfdWludF90IGNhcnJ5ID0gMDsKKyAgICBtcGRfc2l6ZV90IGk7CisKKyAgICBhc3NlcnQobiA+IDApOworCisgICAgZm9yIChpPTA7IGkgPCBuOyBpKyspIHsKKworICAgICAgICBfbXBkX211bF93b3JkcygmaGksICZsbywgdVtpXSwgdik7CisgICAgICAgIGxvID0gY2FycnkgKyBsbzsKKyAgICAgICAgaWYgKGxvIDwgY2FycnkpIGhpKys7CisKKyAgICAgICAgX21wZF9kaXZfd29yZHMoJmNhcnJ5LCAmd1tpXSwgaGksIGxvLCBiKTsKKyAgICB9CisKKyAgICByZXR1cm4gY2Fycnk7Cit9CisKKy8qCisgKiBLbnV0aCwgVEFPQ1AgVm9sdW1lIDIsIDQuMy4xLCBleGVyY2lzZSAxNjoKKyAqICAgICB3IDo9IHF1b3RpZW50IG9mIHUgKGxlbiBuKSBkaXZpZGVkIGJ5IGEgc2luZ2xlIHdvcmQgdgorICovCittcGRfdWludF90CitfbXBkX3Nob3J0ZGl2X2IobXBkX3VpbnRfdCAqdywgY29uc3QgbXBkX3VpbnRfdCAqdSwgbXBkX3NpemVfdCBuLAorICAgICAgICAgICAgICAgIG1wZF91aW50X3QgdiwgbXBkX3VpbnRfdCBiKQoreworICAgIG1wZF91aW50X3QgaGksIGxvOworICAgIG1wZF91aW50X3QgcmVtID0gMDsKKyAgICBtcGRfc2l6ZV90IGk7CisKKyAgICBhc3NlcnQobiA+IDApOworCisgICAgZm9yIChpPW4tMTsgaSAhPSBNUERfU0laRV9NQVg7IGktLSkgeworCisgICAgICAgIF9tcGRfbXVsX3dvcmRzKCZoaSwgJmxvLCByZW0sIGIpOworICAgICAgICBsbyA9IHVbaV0gKyBsbzsKKyAgICAgICAgaWYgKGxvIDwgdVtpXSkgaGkrKzsKKworICAgICAgICBfbXBkX2Rpdl93b3Jkcygmd1tpXSwgJnJlbSwgaGksIGxvLCB2KTsKKyAgICB9CisKKyAgICByZXR1cm4gcmVtOworfQorCisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9iYXNlYXJpdGguaCBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvYmFzZWFyaXRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTAwNGIyYwotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvYmFzZWFyaXRoLmgKQEAgLTAsMCArMSwyMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgQkFTRUFSSVRIX0gKKyNkZWZpbmUgQkFTRUFSSVRIX0gKKworCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlICJ0eXBlYXJpdGguaCIKKworCittcGRfdWludF90IF9tcGRfYmFzZWFkZChtcGRfdWludF90ICp3LCBjb25zdCBtcGRfdWludF90ICp1LCBjb25zdCBtcGRfdWludF90ICp2LAorICAgICAgICAgICAgICAgICAgICAgICAgbXBkX3NpemVfdCBtLCBtcGRfc2l6ZV90IG4pOwordm9pZCBfbXBkX2Jhc2VhZGR0byhtcGRfdWludF90ICp3LCBjb25zdCBtcGRfdWludF90ICp1LCBtcGRfc2l6ZV90IG4pOworbXBkX3VpbnRfdCBfbXBkX3Nob3J0YWRkKG1wZF91aW50X3QgKncsIG1wZF9zaXplX3QgbSwgbXBkX3VpbnRfdCB2KTsKK21wZF91aW50X3QgX21wZF9zaG9ydGFkZF9iKG1wZF91aW50X3QgKncsIG1wZF9zaXplX3QgbSwgbXBkX3VpbnRfdCB2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbXBkX3VpbnRfdCBiKTsKK21wZF91aW50X3QgX21wZF9iYXNlaW5jcihtcGRfdWludF90ICp1LCBtcGRfc2l6ZV90IG4pOwordm9pZCBfbXBkX2Jhc2VzdWIobXBkX3VpbnRfdCAqdywgY29uc3QgbXBkX3VpbnRfdCAqdSwgY29uc3QgbXBkX3VpbnRfdCAqdiwKKyAgICAgICAgICAgICAgICAgIG1wZF9zaXplX3QgbSwgbXBkX3NpemVfdCBuKTsKK3ZvaWQgX21wZF9iYXNlc3ViZnJvbShtcGRfdWludF90ICp3LCBjb25zdCBtcGRfdWludF90ICp1LCBtcGRfc2l6ZV90IG4pOwordm9pZCBfbXBkX2Jhc2VtdWwobXBkX3VpbnRfdCAqdywgY29uc3QgbXBkX3VpbnRfdCAqdSwgY29uc3QgbXBkX3VpbnRfdCAqdiwKKyAgICAgICAgICAgICAgICAgIG1wZF9zaXplX3QgbSwgbXBkX3NpemVfdCBuKTsKK3ZvaWQgX21wZF9zaG9ydG11bChtcGRfdWludF90ICp3LCBjb25zdCBtcGRfdWludF90ICp1LCBtcGRfc2l6ZV90IG4sCisgICAgICAgICAgICAgICAgICAgbXBkX3VpbnRfdCB2KTsKK21wZF91aW50X3QgX21wZF9zaG9ydG11bF9jKG1wZF91aW50X3QgKncsIGNvbnN0IG1wZF91aW50X3QgKnUsIG1wZF9zaXplX3QgbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1wZF91aW50X3Qgdik7CittcGRfdWludF90IF9tcGRfc2hvcnRtdWxfYihtcGRfdWludF90ICp3LCBjb25zdCBtcGRfdWludF90ICp1LCBtcGRfc2l6ZV90IG4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtcGRfdWludF90IHYsIG1wZF91aW50X3QgYik7CittcGRfdWludF90IF9tcGRfc2hvcnRkaXYobXBkX3VpbnRfdCAqdywgY29uc3QgbXBkX3VpbnRfdCAqdSwgbXBkX3NpemVfdCBuLAorICAgICAgICAgICAgICAgICAgICAgICAgIG1wZF91aW50X3Qgdik7CittcGRfdWludF90IF9tcGRfc2hvcnRkaXZfYihtcGRfdWludF90ICp3LCBjb25zdCBtcGRfdWludF90ICp1LCBtcGRfc2l6ZV90IG4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtcGRfdWludF90IHYsIG1wZF91aW50X3QgYik7CitpbnQgX21wZF9iYXNlZGl2bW9kKG1wZF91aW50X3QgKnEsIG1wZF91aW50X3QgKnIsIGNvbnN0IG1wZF91aW50X3QgKnVjb25zdCwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgbXBkX3VpbnRfdCAqdmNvbnN0LCBtcGRfc2l6ZV90IG5wbHVzbSwgbXBkX3NpemVfdCBuKTsKK3ZvaWQgX21wZF9iYXNlc2hpZnRsKG1wZF91aW50X3QgKmRlc3QsIG1wZF91aW50X3QgKnNyYywgbXBkX3NpemVfdCBuLAorICAgICAgICAgICAgICAgICAgICAgbXBkX3NpemVfdCBtLCBtcGRfc2l6ZV90IHNoaWZ0KTsKK21wZF91aW50X3QgX21wZF9iYXNlc2hpZnRyKG1wZF91aW50X3QgKmRlc3QsIG1wZF91aW50X3QgKnNyYywgbXBkX3NpemVfdCBzbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbXBkX3NpemVfdCBzaGlmdCk7CisKKworCisjaWZkZWYgQ09ORklHXzY0CitleHRlcm4gY29uc3QgbXBkX3VpbnRfdCBtcHJpbWVfcmR4OworCisvKgorICogQWxnb3JpdGhtIGZyb206IERpdmlzaW9uIGJ5IEludmFyaWFudCBJbnRlZ2VycyB1c2luZyBNdWx0aXBsaWNhdGlvbiwKKyAqIFQuIEdyYW5sdW5kIGFuZCBQLiBMLiBNb250Z29tZXJ5LCBQcm9jZWVkaW5ncyBvZiB0aGUgU0lHUExBTiAnOTQKKyAqIENvbmZlcmVuY2Ugb24gUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgRGVzaWduIGFuZCBJbXBsZW1lbnRhdGlvbi4KKyAqCisgKiBodHRwOi8vZ21wbGliLm9yZy9+dGVnZS9kaXZjbnN0LXBsZGk5NC5wZGYKKyAqCisgKiBWYXJpYWJsZXMgZnJvbSB0aGUgcGFwZXIgYW5kIHRoZWlyIHRyYW5zbGF0aW9ucyAoU2VlIHNlY3Rpb24gOCk6CisgKgorICogIE4gOj0gNjQKKyAqICBkIDo9IE1QRF9SQURJWAorICogIGwgOj0gNjQKKyAqICBtJyA6PSBmbG9vcigoMioqKDY0KzY0KSAtIDEpL01QRF9SQURJWCkgLSAyKio2NAorICoKKyAqIFNpbmNlIE4tbCA9PSAwOgorICoKKyAqICBkbm9ybSA6PSBkCisgKiAgbjIgOj0gaGkKKyAqICBuMTAgOj0gbG8KKyAqCisgKiBBQ0wyIHByb29mOiBtcGQtZGl2LXdvcmRzLXItY29ycmVjdAorICovCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfZGl2X3dvcmRzX3IobXBkX3VpbnRfdCAqcSwgbXBkX3VpbnRfdCAqciwgbXBkX3VpbnRfdCBoaSwgbXBkX3VpbnRfdCBsbykKK3sKKyAgICBtcGRfdWludF90IG5fYWRqLCBoLCBsLCB0OworICAgIG1wZF91aW50X3QgbjFfbmVnOworCisgICAgLyogbjFfbmVnID0gaWYgbG8gPj0gMioqNjMgdGhlbiBNUERfVUlOVF9NQVggZWxzZSAwICovCisgICAgbjFfbmVnID0gKGxvICYgKDFVTEw8PDYzKSkgPyBNUERfVUlOVF9NQVggOiAwOworICAgIC8qIG5fYWRqID0gaWYgbG8gPj0gMioqNjMgdGhlbiBsbytNUERfUkFESVggZWxzZSBsbyAqLworICAgIG5fYWRqID0gbG8gKyAobjFfbmVnICYgTVBEX1JBRElYKTsKKworICAgIC8qIChoLCBsKSA9IGlmIGxvID49IDIqKjYzIHRoZW4gbScqKGhpKzEpIGVsc2UgbScqaGkgKi8KKyAgICBfbXBkX211bF93b3JkcygmaCwgJmwsIG1wcmltZV9yZHgsIGhpLW4xX25lZyk7CisgICAgbCA9IGwgKyBuX2FkajsKKyAgICBpZiAobCA8IG5fYWRqKSBoKys7CisgICAgdCA9IGggKyBoaTsKKyAgICAvKiBBdCB0aGlzIHBvaW50IHQgPT0gcWVzdCwgd2l0aCBxID09IHFlc3Qgb3IgcSA9PSBxZXN0KzE6CisgICAgICogICAxKSAwIDw9IDIqKjY0KmhpICsgbG8gLSBxZXN0Kk1QRF9SQURJWCA8IDIqTVBEX1JBRElYCisgICAgICovCisKKyAgICAvKiB0ID0gMioqNjQtMSAtIHFlc3QgPSAyKio2NCAtIChxZXN0KzEpICovCisgICAgdCA9IE1QRF9VSU5UX01BWCAtIHQ7CisKKyAgICAvKiAoaCwgbCkgPSAyKio2NCpNUERfUkFESVggLSAocWVzdCsxKSpNUERfUkFESVggKi8KKyAgICBfbXBkX211bF93b3JkcygmaCwgJmwsIHQsIE1QRF9SQURJWCk7CisgICAgbCA9IGwgKyBsbzsKKyAgICBpZiAobCA8IGxvKSBoKys7CisgICAgaCArPSBoaTsKKyAgICBoIC09IE1QRF9SQURJWDsKKyAgICAvKiAoaCwgbCkgPSAyKio2NCpoaSArIGxvIC0gKHFlc3QrMSkqTVBEX1JBRElYIChtb2QgMioqMTI4KQorICAgICAqIENhc2UgcSA9PSBxZXN0KzE6CisgICAgICogICAgIGEpIGggPT0gMCwgbCA9PSByCisgICAgICogICAgIGIpIHEgOj0gaCAtIHQgPT0gcWVzdCsxCisgICAgICogICAgIGMpIHIgOj0gbAorICAgICAqIENhc2UgcSA9PSBxZXN0OgorICAgICAqICAgICBhKSBoID09IE1QRF9VSU5UX01BWCwgbCA9PSAyKio2NC0oTVBEX1JBRElYLXIpCisgICAgICogICAgIGIpIHEgOj0gaCAtIHQgPT0gcWVzdAorICAgICAqICAgICBjKSByIDo9IGwgKyBNUERfUkFESVggPSByCisgICAgICovCisKKyAgICAqcSA9IChoIC0gdCk7CisgICAgKnIgPSBsICsgKE1QRF9SQURJWCAmIGgpOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9kaXZfd29yZHNfcihtcGRfdWludF90ICpxLCBtcGRfdWludF90ICpyLCBtcGRfdWludF90IGhpLCBtcGRfdWludF90IGxvKQoreworICAgIF9tcGRfZGl2X3dvcmRzKHEsIHIsIGhpLCBsbywgTVBEX1JBRElYKTsKK30KKyNlbmRpZgorCisKKy8qIE11bHRpcGx5IHR3byBzaW5nbGUgYmFzZSBNUERfUkFESVggd29yZHMsIHN0b3JlIHJlc3VsdCBpbiBhcnJheSB3WzJdLiAqLworc3RhdGljIGlubGluZSB2b2lkCitfbXBkX3NpbmdsZW11bChtcGRfdWludF90IHdbMl0sIG1wZF91aW50X3QgdSwgbXBkX3VpbnRfdCB2KQoreworICAgIG1wZF91aW50X3QgaGksIGxvOworCisgICAgX21wZF9tdWxfd29yZHMoJmhpLCAmbG8sIHUsIHYpOworICAgIF9tcGRfZGl2X3dvcmRzX3IoJndbMV0sICZ3WzBdLCBoaSwgbG8pOworfQorCisvKiBNdWx0aXBseSB1IChsZW4gMikgYW5kIHYgKGxlbiBtLCAxIDw9IG0gPD0gMikuICovCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfbXVsXzJfbGUyKG1wZF91aW50X3Qgd1s0XSwgbXBkX3VpbnRfdCB1WzJdLCBtcGRfdWludF90IHZbMl0sIG1wZF9zc2l6ZV90IG0pCit7CisgICAgbXBkX3VpbnRfdCBoaSwgbG87CisKKyAgICBfbXBkX211bF93b3JkcygmaGksICZsbywgdVswXSwgdlswXSk7CisgICAgX21wZF9kaXZfd29yZHNfcigmd1sxXSwgJndbMF0sIGhpLCBsbyk7CisKKyAgICBfbXBkX211bF93b3JkcygmaGksICZsbywgdVsxXSwgdlswXSk7CisgICAgbG8gPSB3WzFdICsgbG87CisgICAgaWYgKGxvIDwgd1sxXSkgaGkrKzsKKyAgICBfbXBkX2Rpdl93b3Jkc19yKCZ3WzJdLCAmd1sxXSwgaGksIGxvKTsKKyAgICBpZiAobSA9PSAxKSByZXR1cm47CisKKyAgICBfbXBkX211bF93b3JkcygmaGksICZsbywgdVswXSwgdlsxXSk7CisgICAgbG8gPSB3WzFdICsgbG87CisgICAgaWYgKGxvIDwgd1sxXSkgaGkrKzsKKyAgICBfbXBkX2Rpdl93b3Jkc19yKCZ3WzNdLCAmd1sxXSwgaGksIGxvKTsKKworICAgIF9tcGRfbXVsX3dvcmRzKCZoaSwgJmxvLCB1WzFdLCB2WzFdKTsKKyAgICBsbyA9IHdbMl0gKyBsbzsKKyAgICBpZiAobG8gPCB3WzJdKSBoaSsrOworICAgIGxvID0gd1szXSArIGxvOworICAgIGlmIChsbyA8IHdbM10pIGhpKys7CisgICAgX21wZF9kaXZfd29yZHNfcigmd1szXSwgJndbMl0sIGhpLCBsbyk7Cit9CisKKworLyoKKyAqIFRlc3QgaWYgYWxsIHdvcmRzIGZyb20gZGF0YVtsZW4tMV0gdG8gZGF0YVswXSBhcmUgemVyby4gSWYgbGVuIGlzIDAsIG5vdGhpbmcKKyAqIGlzIHRlc3RlZCBhbmQgdGhlIGNvZWZmaWNpZW50IGlzIHJlZ2FyZGVkIGFzICJhbGwgemVybyIuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50CitfbXBkX2lzYWxsemVybyhjb25zdCBtcGRfdWludF90ICpkYXRhLCBtcGRfc3NpemVfdCBsZW4pCit7CisgICAgd2hpbGUgKC0tbGVuID49IDApIHsKKyAgICAgICAgaWYgKGRhdGFbbGVuXSAhPSAwKSByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisKKy8qCisgKiBUZXN0IGlmIGFsbCBmdWxsIHdvcmRzIGZyb20gZGF0YVtsZW4tMV0gdG8gZGF0YVswXSBhcmUgTVBEX1JBRElYLTEKKyAqIChhbGwgbmluZXMpLiBSZXR1cm4gdHJ1ZSBpZiBsZW4gPT0gMC4KKyAqLworc3RhdGljIGlubGluZSBpbnQKK19tcGRfaXNhbGxuaW5lKGNvbnN0IG1wZF91aW50X3QgKmRhdGEsIG1wZF9zc2l6ZV90IGxlbikKK3sKKyAgICB3aGlsZSAoLS1sZW4gPj0gMCkgeworICAgICAgICBpZiAoZGF0YVtsZW5dICE9IE1QRF9SQURJWC0xKSByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisKKworI2VuZGlmIC8qIEJBU0VBUklUSF9IICovCisKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2JpdHMuaCBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvYml0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0OWVjOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2JpdHMuaApAQCAtMCwwICsxLDE5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBCSVRTX0gKKyNkZWZpbmUgQklUU19ICisKKworI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKworLyogQ2hlY2sgaWYgbiBpcyBhIHBvd2VyIG9mIDIuICovCitzdGF0aWMgaW5saW5lIGludAoraXNwb3dlcjIobXBkX3NpemVfdCBuKQoreworICAgIHJldHVybiBuICE9IDAgJiYgKG4gJiAobi0xKSkgPT0gMDsKK30KKworI2lmIGRlZmluZWQoQU5TSSkKKy8qCisgKiBSZXR1cm4gdGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IHBvc2l0aW9uIG9mIG4gZnJvbSAwIHRvIDMxICg2MykuCisgKiBBc3N1bXB0aW9uczogbiAhPSAwLgorICovCitzdGF0aWMgaW5saW5lIGludAorbXBkX2JzcihtcGRfc2l6ZV90IG4pCit7CisgICAgaW50IHBvcyA9IDA7CisgICAgbXBkX3NpemVfdCB0bXA7CisKKyNpZmRlZiBDT05GSUdfNjQKKyAgICB0bXAgPSBuID4+IDMyOworICAgIGlmICh0bXAgIT0gMCkgeyBuID0gdG1wOyBwb3MgKz0gMzI7IH0KKyNlbmRpZgorICAgIHRtcCA9IG4gPj4gMTY7CisgICAgaWYgKHRtcCAhPSAwKSB7IG4gPSB0bXA7IHBvcyArPSAxNjsgfQorICAgIHRtcCA9IG4gPj4gODsKKyAgICBpZiAodG1wICE9IDApIHsgbiA9IHRtcDsgcG9zICs9IDg7IH0KKyAgICB0bXAgPSBuID4+IDQ7CisgICAgaWYgKHRtcCAhPSAwKSB7IG4gPSB0bXA7IHBvcyArPSA0OyB9CisgICAgdG1wID0gbiA+PiAyOworICAgIGlmICh0bXAgIT0gMCkgeyBuID0gdG1wOyBwb3MgKz0gMjsgfQorICAgIHRtcCA9IG4gPj4gMTsKKyAgICBpZiAodG1wICE9IDApIHsgbiA9IHRtcDsgcG9zICs9IDE7IH0KKworICAgIHJldHVybiBwb3MgKyAoaW50KW4gLSAxOworfQorCisvKgorICogUmV0dXJuIHRoZSBsZWFzdCBzaWduaWZpY2FudCBiaXQgcG9zaXRpb24gb2YgbiBmcm9tIDAgdG8gMzEgKDYzKS4KKyAqIEFzc3VtcHRpb25zOiBuICE9IDAuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50CittcGRfYnNmKG1wZF9zaXplX3QgbikKK3sKKyAgICBpbnQgcG9zOworCisjaWZkZWYgQ09ORklHXzY0CisgICAgcG9zID0gNjM7CisgICAgaWYgKG4gJiAweDAwMDAwMDAwRkZGRkZGRkZVTEwpIHsgcG9zIC09IDMyOyB9IGVsc2UgeyBuID4+PSAzMjsgfQorICAgIGlmIChuICYgMHgwMDAwMDAwMDAwMDBGRkZGVUxMKSB7IHBvcyAtPSAxNjsgfSBlbHNlIHsgbiA+Pj0gMTY7IH0KKyAgICBpZiAobiAmIDB4MDAwMDAwMDAwMDAwMDBGRlVMTCkgeyBwb3MgLT0gIDg7IH0gZWxzZSB7IG4gPj49ICA4OyB9CisgICAgaWYgKG4gJiAweDAwMDAwMDAwMDAwMDAwMEZVTEwpIHsgcG9zIC09ICA0OyB9IGVsc2UgeyBuID4+PSAgNDsgfQorICAgIGlmIChuICYgMHgwMDAwMDAwMDAwMDAwMDAzVUxMKSB7IHBvcyAtPSAgMjsgfSBlbHNlIHsgbiA+Pj0gIDI7IH0KKyAgICBpZiAobiAmIDB4MDAwMDAwMDAwMDAwMDAwMVVMTCkgeyBwb3MgLT0gIDE7IH0KKyNlbHNlCisgICAgcG9zID0gMzE7CisgICAgaWYgKG4gJiAweDAwMDAwMDAwMDAwMEZGRkZVTCkgeyBwb3MgLT0gMTY7IH0gZWxzZSB7IG4gPj49IDE2OyB9CisgICAgaWYgKG4gJiAweDAwMDAwMDAwMDAwMDAwRkZVTCkgeyBwb3MgLT0gIDg7IH0gZWxzZSB7IG4gPj49ICA4OyB9CisgICAgaWYgKG4gJiAweDAwMDAwMDAwMDAwMDAwMEZVTCkgeyBwb3MgLT0gIDQ7IH0gZWxzZSB7IG4gPj49ICA0OyB9CisgICAgaWYgKG4gJiAweDAwMDAwMDAwMDAwMDAwMDNVTCkgeyBwb3MgLT0gIDI7IH0gZWxzZSB7IG4gPj49ICAyOyB9CisgICAgaWYgKG4gJiAweDAwMDAwMDAwMDAwMDAwMDFVTCkgeyBwb3MgLT0gIDE7IH0KKyNlbmRpZgorICAgIHJldHVybiBwb3M7Cit9CisvKiBFTkQgQU5TSSAqLworCisjZWxpZiBkZWZpbmVkKEFTTSkKKy8qCisgKiBCaXQgc2NhbiByZXZlcnNlLiBBc3N1bXB0aW9uczogYSAhPSAwLgorICovCitzdGF0aWMgaW5saW5lIGludAorbXBkX2JzcihtcGRfc2l6ZV90IGEpCit7CisgICAgbXBkX3NpemVfdCByZXR2YWw7CisKKyAgICBfX2FzbV9fICgKKyNpZmRlZiBDT05GSUdfNjQKKyAgICAgICAgImJzcnEgJTEsICUwXG5cdCIKKyNlbHNlCisgICAgICAgICJic3IgJTEsICUwXG5cdCIKKyNlbmRpZgorICAgICAgICA6Ij1yIiAocmV0dmFsKQorICAgICAgICA6InIiIChhKQorICAgICAgICA6ImNjIgorICAgICk7CisKKyAgICByZXR1cm4gKGludClyZXR2YWw7Cit9CisKKy8qCisgKiBCaXQgc2NhbiBmb3J3YXJkLiBBc3N1bXB0aW9uczogYSAhPSAwLgorICovCitzdGF0aWMgaW5saW5lIGludAorbXBkX2JzZihtcGRfc2l6ZV90IGEpCit7CisgICAgbXBkX3NpemVfdCByZXR2YWw7CisKKyAgICBfX2FzbV9fICgKKyNpZmRlZiBDT05GSUdfNjQKKyAgICAgICAgImJzZnEgJTEsICUwXG5cdCIKKyNlbHNlCisgICAgICAgICJic2YgJTEsICUwXG5cdCIKKyNlbmRpZgorICAgICAgICA6Ij1yIiAocmV0dmFsKQorICAgICAgICA6InIiIChhKQorICAgICAgICA6ImNjIgorICAgICk7CisKKyAgICByZXR1cm4gKGludClyZXR2YWw7Cit9CisvKiBFTkQgQVNNICovCisKKyNlbGlmIGRlZmluZWQoTUFTTSkKKyNpbmNsdWRlIDxpbnRyaW4uaD4KKy8qCisgKiBCaXQgc2NhbiByZXZlcnNlLiBBc3N1bXB0aW9uczogYSAhPSAwLgorICovCitzdGF0aWMgaW5saW5lIGludCBfX2NkZWNsCittcGRfYnNyKG1wZF9zaXplX3QgYSkKK3sKKyAgICB1bnNpZ25lZCBsb25nIHJldHZhbDsKKworI2lmZGVmIENPTkZJR182NAorICAgIF9CaXRTY2FuUmV2ZXJzZTY0KCZyZXR2YWwsIGEpOworI2Vsc2UKKyAgICBfQml0U2NhblJldmVyc2UoJnJldHZhbCwgYSk7CisjZW5kaWYKKworICAgIHJldHVybiAoaW50KXJldHZhbDsKK30KKworLyoKKyAqIEJpdCBzY2FuIGZvcndhcmQuIEFzc3VtcHRpb25zOiBhICE9IDAuCisgKi8KK3N0YXRpYyBpbmxpbmUgaW50IF9fY2RlY2wKK21wZF9ic2YobXBkX3NpemVfdCBhKQoreworICAgIHVuc2lnbmVkIGxvbmcgcmV0dmFsOworCisjaWZkZWYgQ09ORklHXzY0CisgICAgX0JpdFNjYW5Gb3J3YXJkNjQoJnJldHZhbCwgYSk7CisjZWxzZQorICAgIF9CaXRTY2FuRm9yd2FyZCgmcmV0dmFsLCBhKTsKKyNlbmRpZgorCisgICAgcmV0dXJuIChpbnQpcmV0dmFsOworfQorLyogRU5EIE1BU00gKF9NU0NfVkVSKSAqLworI2Vsc2UKKyAgI2Vycm9yICJtaXNzaW5nIHByZXByb2Nlc3NvciBkZWZpbml0aW9ucyIKKyNlbmRpZiAvKiBCU1IvQlNGICovCisKKworI2VuZGlmIC8qIEJJVFNfSCAqLworCisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9jb25zdGFudHMuYyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY29uc3RhbnRzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTJmNTg5MQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY29uc3RhbnRzLmMKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJtcGRlY2ltYWwuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgImNvbnN0YW50cy5oIgorCisKKyNpZiBkZWZpbmVkKENPTkZJR182NCkKKworICAvKiBudW1iZXItdGhlb3J5LmMgKi8KKyAgY29uc3QgbXBkX3VpbnRfdCBtcGRfbW9kdWxpWzNdID0geworICAgIDE4NDQ2NzQ0MDY5NDE0NTg0MzIxVUxMLCAxODQ0Njc0NDA1NjUyOTY4MjQzM1VMTCwgMTg0NDY3NDI5NzQxOTc5MjM4NDFVTEwKKyAgfTsKKyAgY29uc3QgbXBkX3VpbnRfdCBtcGRfcm9vdHNbM10gID0gezdVTEwsIDEwVUxMLCAxOVVMTH07CisKKyAgLyogY3J0LmMgKi8KKyAgY29uc3QgbXBkX3VpbnRfdCBJTlZfUDFfTU9EX1AyICAgPSAxODQ0Njc0NDA1NTA5ODAyNjY2OVVMTDsKKyAgY29uc3QgbXBkX3VpbnRfdCBJTlZfUDFQMl9NT0RfUDMgPSAyODcwNjQxNDM3MDgxNjBVTEw7CisgIGNvbnN0IG1wZF91aW50X3QgTEhfUDFQMiA9IDE4NDQ2NzQ0MDUyMjM0NzE1MTM3VUxMOyAgICAgLyogKFAxKlAyKSAlIDJeNjQgKi8KKyAgY29uc3QgbXBkX3VpbnRfdCBVSF9QMVAyID0gMTg0NDY3NDQwNTIyMzQ3MTUxNDFVTEw7ICAgICAvKiAoUDEqUDIpIC8gMl42NCAqLworCisgIC8qIHRyYW5zcG9zZS5jICovCisgIGNvbnN0IG1wZF9zaXplX3QgbXBkX2JpdHNbNjRdID0geworICAgIDEsIDIsIDQsIDgsIDE2LCAzMiwgNjQsIDEyOCwgMjU2LCA1MTIsIDEwMjQsICAyMDQ4LCA0MDk2LCA4MTkyLCAxNjM4NCwKKyAgICAzMjc2OCwgNjU1MzYsIDEzMTA3MiwgMjYyMTQ0LCA1MjQyODgsIDEwNDg1NzYsIDIwOTcxNTIsIDQxOTQzMDQsIDgzODg2MDgsCisgICAgMTY3NzcyMTYsIDMzNTU0NDMyLCA2NzEwODg2NCwgMTM0MjE3NzI4LCAyNjg0MzU0NTYsIDUzNjg3MDkxMiwgMTA3Mzc0MTgyNCwKKyAgICAyMTQ3NDgzNjQ4VUxMLCA0Mjk0OTY3Mjk2VUxMLCA4NTg5OTM0NTkyVUxMLCAxNzE3OTg2OTE4NFVMTCwgMzQzNTk3MzgzNjhVTEwsCisgICAgNjg3MTk0NzY3MzZVTEwsIDEzNzQzODk1MzQ3MlVMTCwgMjc0ODc3OTA2OTQ0VUxMLCA1NDk3NTU4MTM4ODhVTEwsCisgICAgMTA5OTUxMTYyNzc3NlVMTCwgMjE5OTAyMzI1NTU1MlVMTCwgNDM5ODA0NjUxMTEwNCwgODc5NjA5MzAyMjIwOFVMTCwKKyAgICAxNzU5MjE4NjA0NDQxNlVMTCwgMzUxODQzNzIwODg4MzJVTEwsIDcwMzY4NzQ0MTc3NjY0VUxMLCAxNDA3Mzc0ODgzNTUzMjhVTEwsCisgICAgMjgxNDc0OTc2NzEwNjU2VUxMLCA1NjI5NDk5NTM0MjEzMTJVTEwsIDExMjU4OTk5MDY4NDI2MjRVTEwsCisgICAgMjI1MTc5OTgxMzY4NTI0OFVMTCwgNDUwMzU5OTYyNzM3MDQ5NlVMTCwgOTAwNzE5OTI1NDc0MDk5MlVMTCwKKyAgICAxODAxNDM5ODUwOTQ4MTk4NFVMTCwgMzYwMjg3OTcwMTg5NjM5NjhVTEwsIDcyMDU3NTk0MDM3OTI3OTM2VUxMLAorICAgIDE0NDExNTE4ODA3NTg1NTg3MlVMTCwgMjg4MjMwMzc2MTUxNzExNzQ0VUxMLCA1NzY0NjA3NTIzMDM0MjM0ODhVTEwsCisgICAgMTE1MjkyMTUwNDYwNjg0Njk3NlVMTCwgMjMwNTg0MzAwOTIxMzY5Mzk1MlVMTCwgNDYxMTY4NjAxODQyNzM4NzkwNFVMTCwKKyAgICA5MjIzMzcyMDM2ODU0Nzc1ODA4VUxMCisgIH07CisKKyAgLyogbXBkZWNpbWFsLmMgKi8KKyAgY29uc3QgbXBkX3VpbnRfdCBtcGRfcG93MTBbTVBEX1JESUdJVFMrMV0gPSB7CisgICAgMSwxMCwxMDAsMTAwMCwxMDAwMCwxMDAwMDAsMTAwMDAwMCwxMDAwMDAwMCwxMDAwMDAwMDAsMTAwMDAwMDAwMCwKKyAgICAxMDAwMDAwMDAwMFVMTCwxMDAwMDAwMDAwMDBVTEwsMTAwMDAwMDAwMDAwMFVMTCwxMDAwMDAwMDAwMDAwMFVMTCwKKyAgICAxMDAwMDAwMDAwMDAwMDBVTEwsMTAwMDAwMDAwMDAwMDAwMFVMTCwxMDAwMDAwMDAwMDAwMDAwMFVMTCwKKyAgICAxMDAwMDAwMDAwMDAwMDAwMDBVTEwsMTAwMDAwMDAwMDAwMDAwMDAwMFVMTCwxMDAwMDAwMDAwMDAwMDAwMDAwMFVMTAorICB9OworCisgIC8qIG1hZ2ljIG51bWJlciBmb3IgY29uc3RhbnQgZGl2aXNpb24gYnkgTVBEX1JBRElYICovCisgIGNvbnN0IG1wZF91aW50X3QgbXByaW1lX3JkeCA9IDE1NTgxNDkyNjE4Mzg0Mjk0NzMwVUxMOworCisjZWxpZiBkZWZpbmVkKENPTkZJR18zMikKKworICAvKiBudW1iZXItdGhlb3J5LmMgKi8KKyAgY29uc3QgbXBkX3VpbnRfdCBtcGRfbW9kdWxpWzNdICA9IHsyMTEzOTI5MjE3VUwsIDIwMTMyNjU5MjFVTCwgMTgxMTkzOTMyOVVMfTsKKyAgY29uc3QgbXBkX3VpbnRfdCBtcGRfcm9vdHNbM10gICA9IHs1VUwsIDMxVUwsIDEzVUx9OworCisgIC8qIFBlbnRpdW1Qcm8gbW9kdWxhciBtdWx0aXBsaWNhdGlvbjogVGhlc2UgY29uc3RhbnRzIGhhdmUgdG8gYmUgbG9hZGVkIGFzCisgICAqIDgwIGJpdCBsb25nIGRvdWJsZXMsIHdoaWNoIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGNlcnRhaW4gY29tcGlsZXJzLiAqLworICBjb25zdCB1aW50MzJfdCBtcGRfaW52bW9kdWxpWzNdWzNdID0geworICAgIHs0MjkzODg1MTcwVSwgMjE4MTU3MDY4OFUsIDE2MzUyVX0sICAvKiAoKGxvbmcgZG91YmxlKSAxIC8gMjExMzkyOTIxN1VMKSAqLworICAgIHsxNjk4ODk4MTc3VSwgMjI5MDY0OTIyM1UsIDE2MzUyVX0sICAvKiAoKGxvbmcgZG91YmxlKSAxIC8gMjAxMzI2NTkyMVVMKSAqLworICAgIHsyNzE2MDIxODQ2VSwgMjU0NTE2NTgwM1UsIDE2MzUyVX0gICAvKiAoKGxvbmcgZG91YmxlKSAxIC8gMTgxMTkzOTMyOVVMKSAqLworICB9OworCisgIGNvbnN0IGZsb2F0IE1QRF9UV082MyA9IDkyMjMzNzIwMzY4NTQ3NzU4MDguMDsgLyogMl42MyAqLworCisgIC8qIGNydC5jICovCisgIGNvbnN0IG1wZF91aW50X3QgSU5WX1AxX01PRF9QMiAgID0gMjAxMzI2NTkwMVVMOworICBjb25zdCBtcGRfdWludF90IElOVl9QMVAyX01PRF9QMyA9IDU0VUw7CisgIGNvbnN0IG1wZF91aW50X3QgTEhfUDFQMiA9IDQxMjcxOTUxMzdVTDsgIC8qIChQMSpQMikgJSAyXjMyICovCisgIGNvbnN0IG1wZF91aW50X3QgVUhfUDFQMiA9IDk5MDkwNDMyMFVMOyAgIC8qIChQMSpQMikgLyAyXjMyICovCisKKyAgLyogdHJhbnNwb3NlLmMgKi8KKyAgY29uc3QgbXBkX3NpemVfdCBtcGRfYml0c1szMl0gPSB7CisgICAgMSwgMiwgNCwgOCwgMTYsIDMyLCA2NCwgMTI4LCAyNTYsIDUxMiwgIDEwMjQsICAyMDQ4LCA0MDk2LCA4MTkyLCAxNjM4NCwKKyAgICAzMjc2OCwgNjU1MzYsIDEzMTA3MiwgMjYyMTQ0LCA1MjQyODgsIDEwNDg1NzYsIDIwOTcxNTIsIDQxOTQzMDQsIDgzODg2MDgsCisgICAgMTY3NzcyMTYsIDMzNTU0NDMyLCA2NzEwODg2NCwgMTM0MjE3NzI4LCAyNjg0MzU0NTYsIDUzNjg3MDkxMiwgMTA3Mzc0MTgyNCwKKyAgICAyMTQ3NDgzNjQ4VUwKKyAgfTsKKworICAvKiBtcGRlY2ltYWwuYyAqLworICBjb25zdCBtcGRfdWludF90IG1wZF9wb3cxMFtNUERfUkRJR0lUUysxXSA9IHsKKyAgICAxLDEwLDEwMCwxMDAwLDEwMDAwLDEwMDAwMCwxMDAwMDAwLDEwMDAwMDAwLDEwMDAwMDAwMCwxMDAwMDAwMDAwCisgIH07CisKKyNlbHNlCisgICNlcnJvciAiQ09ORklHXzY0IG9yIENPTkZJR18zMiBtdXN0IGJlIGRlZmluZWQuIgorI2VuZGlmCisKK2NvbnN0IGNoYXIgKm1wZF9yb3VuZF9zdHJpbmdbTVBEX1JPVU5EX0dVQVJEXSA9IHsKKyAgICAiUk9VTkRfVVAiLCAgICAgICAgICAvKiByb3VuZCBhd2F5IGZyb20gMCAgICAgICAgICAgICAgICovCisgICAgIlJPVU5EX0RPV04iLCAgICAgICAgLyogcm91bmQgdG93YXJkIDAgKHRydW5jYXRlKSAgICAgICAqLworICAgICJST1VORF9DRUlMSU5HIiwgICAgIC8qIHJvdW5kIHRvd2FyZCAraW5maW5pdHkgICAgICAgICAgKi8KKyAgICAiUk9VTkRfRkxPT1IiLCAgICAgICAvKiByb3VuZCB0b3dhcmQgLWluZmluaXR5ICAgICAgICAgICovCisgICAgIlJPVU5EX0hBTEZfVVAiLCAgICAgLyogMC41IGlzIHJvdW5kZWQgdXAgICAgICAgICAgICAgICAqLworICAgICJST1VORF9IQUxGX0RPV04iLCAgIC8qIDAuNSBpcyByb3VuZGVkIGRvd24gICAgICAgICAgICAgKi8KKyAgICAiUk9VTkRfSEFMRl9FVkVOIiwgICAvKiAwLjUgaXMgcm91bmRlZCB0byBldmVuICAgICAgICAgICovCisgICAgIlJPVU5EXzA1VVAiLCAgICAgICAgLyogcm91bmQgemVybyBvciBmaXZlIGF3YXkgZnJvbSAwICAqLworICAgICJST1VORF9UUlVOQyIsICAgICAgIC8qIHRydW5jYXRlLCBidXQgc2V0IGluZmluaXR5ICAgICAgKi8KK307CisKK2NvbnN0IGNoYXIgKm1wZF9jbGFtcF9zdHJpbmdbTVBEX0NMQU1QX0dVQVJEXSA9IHsKKyAgICAiQ0xBTVBfREVGQVVMVCIsCisgICAgIkNMQU1QX0lFRUVfNzU0IgorfTsKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2NvbnN0YW50cy5oIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9jb25zdGFudHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDYzZDdlCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9jb25zdGFudHMuaApAQCAtMCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIENPTlNUQU5UU19ICisjZGVmaW5lIENPTlNUQU5UU19ICisKKworI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorCisKKy8qIGNob2ljZSBvZiBvcHRpbWl6ZWQgZnVuY3Rpb25zICovCisjaWYgZGVmaW5lZChDT05GSUdfNjQpCisvKiB4NjQgKi8KKyAgI2RlZmluZSBNVUxNT0QoYSwgYikgeDY0X211bG1vZChhLCBiLCB1bW9kKQorICAjZGVmaW5lIE1VTE1PRDJDKGEwLCBhMSwgdykgeDY0X211bG1vZDJjKGEwLCBhMSwgdywgdW1vZCkKKyAgI2RlZmluZSBNVUxNT0QyKGEwLCBiMCwgYTEsIGIxKSB4NjRfbXVsbW9kMihhMCwgYjAsIGExLCBiMSwgdW1vZCkKKyAgI2RlZmluZSBQT1dNT0QoYmFzZSwgZXhwKSB4NjRfcG93bW9kKGJhc2UsIGV4cCwgdW1vZCkKKyAgI2RlZmluZSBTRVRNT0RVTFVTKG1vZG51bSkgc3RkX3NldG1vZHVsdXMobW9kbnVtLCAmdW1vZCkKKyAgI2RlZmluZSBTSVpFM19OVFQoeDAsIHgxLCB4MiwgdzN0YWJsZSkgc3RkX3NpemUzX250dCh4MCwgeDEsIHgyLCB3M3RhYmxlLCB1bW9kKQorI2VsaWYgZGVmaW5lZChQUFJPKQorLyogUGVudGl1bVBybyAob3IgbGF0ZXIpIGdjYyBpbmxpbmUgYXNtICovCisgICNkZWZpbmUgTVVMTU9EKGEsIGIpIHBwcm9fbXVsbW9kKGEsIGIsICZkbW9kLCBkaW52bW9kKQorICAjZGVmaW5lIE1VTE1PRDJDKGEwLCBhMSwgdykgcHByb19tdWxtb2QyYyhhMCwgYTEsIHcsICZkbW9kLCBkaW52bW9kKQorICAjZGVmaW5lIE1VTE1PRDIoYTAsIGIwLCBhMSwgYjEpIHBwcm9fbXVsbW9kMihhMCwgYjAsIGExLCBiMSwgJmRtb2QsIGRpbnZtb2QpCisgICNkZWZpbmUgUE9XTU9EKGJhc2UsIGV4cCkgcHByb19wb3dtb2QoYmFzZSwgZXhwLCAmZG1vZCwgZGludm1vZCkKKyAgI2RlZmluZSBTRVRNT0RVTFVTKG1vZG51bSkgcHByb19zZXRtb2R1bHVzKG1vZG51bSwgJnVtb2QsICZkbW9kLCBkaW52bW9kKQorICAjZGVmaW5lIFNJWkUzX05UVCh4MCwgeDEsIHgyLCB3M3RhYmxlKSBwcHJvX3NpemUzX250dCh4MCwgeDEsIHgyLCB3M3RhYmxlLCB1bW9kLCAmZG1vZCwgZGludm1vZCkKKyNlbHNlCisgIC8qIEFOU0kgQzk5ICovCisgICNkZWZpbmUgTVVMTU9EKGEsIGIpIHN0ZF9tdWxtb2QoYSwgYiwgdW1vZCkKKyAgI2RlZmluZSBNVUxNT0QyQyhhMCwgYTEsIHcpIHN0ZF9tdWxtb2QyYyhhMCwgYTEsIHcsIHVtb2QpCisgICNkZWZpbmUgTVVMTU9EMihhMCwgYjAsIGExLCBiMSkgc3RkX211bG1vZDIoYTAsIGIwLCBhMSwgYjEsIHVtb2QpCisgICNkZWZpbmUgUE9XTU9EKGJhc2UsIGV4cCkgc3RkX3Bvd21vZChiYXNlLCBleHAsIHVtb2QpCisgICNkZWZpbmUgU0VUTU9EVUxVUyhtb2RudW0pIHN0ZF9zZXRtb2R1bHVzKG1vZG51bSwgJnVtb2QpCisgICNkZWZpbmUgU0laRTNfTlRUKHgwLCB4MSwgeDIsIHczdGFibGUpIHN0ZF9zaXplM19udHQoeDAsIHgxLCB4MiwgdzN0YWJsZSwgdW1vZCkKKyNlbmRpZgorCisvKiBQZW50aXVtUHJvIChvciBsYXRlcikgZ2NjIGlubGluZSBhc20gKi8KK2V4dGVybiBjb25zdCBmbG9hdCBNUERfVFdPNjM7CitleHRlcm4gY29uc3QgdWludDMyX3QgbXBkX2ludm1vZHVsaVszXVszXTsKKworZW51bSB7UDEsIFAyLCBQM307CisKK2V4dGVybiBjb25zdCBtcGRfdWludF90IG1wZF9tb2R1bGlbXTsKK2V4dGVybiBjb25zdCBtcGRfdWludF90IG1wZF9yb290c1tdOworZXh0ZXJuIGNvbnN0IG1wZF9zaXplX3QgbXBkX2JpdHNbXTsKK2V4dGVybiBjb25zdCBtcGRfdWludF90IG1wZF9wb3cxMFtdOworCitleHRlcm4gY29uc3QgbXBkX3VpbnRfdCBJTlZfUDFfTU9EX1AyOworZXh0ZXJuIGNvbnN0IG1wZF91aW50X3QgSU5WX1AxUDJfTU9EX1AzOworZXh0ZXJuIGNvbnN0IG1wZF91aW50X3QgTEhfUDFQMjsKK2V4dGVybiBjb25zdCBtcGRfdWludF90IFVIX1AxUDI7CisKKworI2VuZGlmIC8qIENPTlNUQU5UU19IICovCisKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2NvbnRleHQuYyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY29udGV4dC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1OWY4OGMKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2NvbnRleHQuYwpAQCAtMCwwICsxLDI4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisKKwordm9pZAorbXBkX2RmbHRfdHJhcGhhbmRsZXIobXBkX2NvbnRleHRfdCAqY3R4IFVOVVNFRCkKK3sKKyAgICByYWlzZShTSUdGUEUpOworfQorCit2b2lkICgqIG1wZF90cmFwaGFuZGxlcikobXBkX2NvbnRleHRfdCAqKSA9IG1wZF9kZmx0X3RyYXBoYW5kbGVyOworCisKKy8qIFNldCBndWFyYW50ZWVkIG1pbmltdW0gbnVtYmVyIG9mIGNvZWZmaWNpZW50IHdvcmRzLiBUaGUgZnVuY3Rpb24gbWF5CisgICBiZSB1c2VkIG9uY2UgYXQgcHJvZ3JhbSBzdGFydC4gU2V0dGluZyBNUERfTUlOQUxMT0MgdG8gb3V0LW9mLWJvdW5kcworICAgdmFsdWVzIGlzIGEgY2F0YXN0cm9waGljIGVycm9yLCBzbyBpbiB0aGF0IGNhc2UgdGhlIGZ1bmN0aW9uIGV4aXRzIHJhdGhlcgorICAgdGhhbiByZWx5aW5nIG9uIHRoZSB1c2VyIHRvIGNoZWNrIGEgcmV0dXJuIHZhbHVlLiAqLwordm9pZAorbXBkX3NldG1pbmFsbG9jKG1wZF9zc2l6ZV90IG4pCit7CisgICAgc3RhdGljIGludCBtaW5hbGxvY19pc19zZXQgPSAwOworCisgICAgaWYgKG1pbmFsbG9jX2lzX3NldCkgeworICAgICAgICBtcGRfZXJyX3dhcm4oIm1wZF9zZXRtaW5hbGxvYzogaWdub3JpbmcgcmVxdWVzdCB0byBzZXQgIgorICAgICAgICAgICAgICAgICAgICAgIk1QRF9NSU5BTExPQyBhIHNlY29uZCB0aW1lXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobiA8IE1QRF9NSU5BTExPQ19NSU4gfHwgbiA+IE1QRF9NSU5BTExPQ19NQVgpIHsKKyAgICAgICAgbXBkX2Vycl9mYXRhbCgiaWxsZWdhbCB2YWx1ZSBmb3IgTVBEX01JTkFMTE9DIik7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9CisgICAgTVBEX01JTkFMTE9DID0gbjsKKyAgICBtaW5hbGxvY19pc19zZXQgPSAxOworfQorCit2b2lkCittcGRfaW5pdChtcGRfY29udGV4dF90ICpjdHgsIG1wZF9zc2l6ZV90IHByZWMpCit7CisgICAgbXBkX3NzaXplX3QgaWRlYWxfbWluYWxsb2M7CisKKyAgICBtcGRfZGVmYXVsdGNvbnRleHQoY3R4KTsKKworICAgIGlmICghbXBkX3FzZXRwcmVjKGN0eCwgcHJlYykpIHsKKyAgICAgICAgbXBkX2FkZHN0YXR1c19yYWlzZShjdHgsIE1QRF9JbnZhbGlkX2NvbnRleHQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWRlYWxfbWluYWxsb2MgPSAyICogKChwcmVjK01QRF9SRElHSVRTLTEpIC8gTVBEX1JESUdJVFMpOworICAgIGlmIChpZGVhbF9taW5hbGxvYyA8IE1QRF9NSU5BTExPQ19NSU4pIGlkZWFsX21pbmFsbG9jID0gTVBEX01JTkFMTE9DX01JTjsKKyAgICBpZiAoaWRlYWxfbWluYWxsb2MgPiBNUERfTUlOQUxMT0NfTUFYKSBpZGVhbF9taW5hbGxvYyA9IE1QRF9NSU5BTExPQ19NQVg7CisKKyAgICBtcGRfc2V0bWluYWxsb2MoaWRlYWxfbWluYWxsb2MpOworfQorCit2b2lkCittcGRfbWF4Y29udGV4dChtcGRfY29udGV4dF90ICpjdHgpCit7CisgICAgY3R4LT5wcmVjPU1QRF9NQVhfUFJFQzsKKyAgICBjdHgtPmVtYXg9TVBEX01BWF9FTUFYOworICAgIGN0eC0+ZW1pbj1NUERfTUlOX0VNSU47CisgICAgY3R4LT5yb3VuZD1NUERfUk9VTkRfSEFMRl9FVkVOOworICAgIGN0eC0+dHJhcHM9TVBEX1RyYXBzOworICAgIGN0eC0+c3RhdHVzPTA7CisgICAgY3R4LT5uZXd0cmFwPTA7CisgICAgY3R4LT5jbGFtcD0wOworICAgIGN0eC0+YWxsY3I9MTsKK30KKwordm9pZAorbXBkX2RlZmF1bHRjb250ZXh0KG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICBjdHgtPnByZWM9MipNUERfUkRJR0lUUzsKKyAgICBjdHgtPmVtYXg9TVBEX01BWF9FTUFYOworICAgIGN0eC0+ZW1pbj1NUERfTUlOX0VNSU47CisgICAgY3R4LT5yb3VuZD1NUERfUk9VTkRfSEFMRl9VUDsKKyAgICBjdHgtPnRyYXBzPU1QRF9UcmFwczsKKyAgICBjdHgtPnN0YXR1cz0wOworICAgIGN0eC0+bmV3dHJhcD0wOworICAgIGN0eC0+Y2xhbXA9MDsKKyAgICBjdHgtPmFsbGNyPTE7Cit9CisKK3ZvaWQKK21wZF9iYXNpY2NvbnRleHQobXBkX2NvbnRleHRfdCAqY3R4KQoreworICAgIGN0eC0+cHJlYz05OworICAgIGN0eC0+ZW1heD1NUERfTUFYX0VNQVg7CisgICAgY3R4LT5lbWluPU1QRF9NSU5fRU1JTjsKKyAgICBjdHgtPnJvdW5kPU1QRF9ST1VORF9IQUxGX1VQOworICAgIGN0eC0+dHJhcHM9TVBEX1RyYXBzfE1QRF9DbGFtcGVkOworICAgIGN0eC0+c3RhdHVzPTA7CisgICAgY3R4LT5uZXd0cmFwPTA7CisgICAgY3R4LT5jbGFtcD0wOworICAgIGN0eC0+YWxsY3I9MTsKK30KKworaW50CittcGRfaWVlZV9jb250ZXh0KG1wZF9jb250ZXh0X3QgKmN0eCwgaW50IGJpdHMpCit7CisgICAgaWYgKGJpdHMgPD0gMCB8fCBiaXRzID4gTVBEX0lFRUVfQ09OVEVYVF9NQVhfQklUUyB8fCBiaXRzICUgMzIpIHsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGN0eC0+cHJlYyA9IDkgKiAoYml0cy8zMikgLSAyOworICAgIGN0eC0+ZW1heCA9IDMgKiAoKG1wZF9zc2l6ZV90KTE8PChiaXRzLzE2KzMpKTsKKyAgICBjdHgtPmVtaW4gPSAxIC0gY3R4LT5lbWF4OworICAgIGN0eC0+cm91bmQ9TVBEX1JPVU5EX0hBTEZfRVZFTjsKKyAgICBjdHgtPnRyYXBzPTA7CisgICAgY3R4LT5zdGF0dXM9MDsKKyAgICBjdHgtPm5ld3RyYXA9MDsKKyAgICBjdHgtPmNsYW1wPTE7CisgICAgY3R4LT5hbGxjcj0xOworCisgICAgcmV0dXJuIDA7Cit9CisKK21wZF9zc2l6ZV90CittcGRfZ2V0cHJlYyhjb25zdCBtcGRfY29udGV4dF90ICpjdHgpCit7CisgICAgcmV0dXJuIGN0eC0+cHJlYzsKK30KKworbXBkX3NzaXplX3QKK21wZF9nZXRlbWF4KGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICByZXR1cm4gY3R4LT5lbWF4OworfQorCittcGRfc3NpemVfdAorbXBkX2dldGVtaW4oY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4KQoreworICAgIHJldHVybiBjdHgtPmVtaW47Cit9CisKK2ludAorbXBkX2dldHJvdW5kKGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICByZXR1cm4gY3R4LT5yb3VuZDsKK30KKwordWludDMyX3QKK21wZF9nZXR0cmFwcyhjb25zdCBtcGRfY29udGV4dF90ICpjdHgpCit7CisgICAgcmV0dXJuIGN0eC0+dHJhcHM7Cit9CisKK3VpbnQzMl90CittcGRfZ2V0c3RhdHVzKGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICByZXR1cm4gY3R4LT5zdGF0dXM7Cit9CisKK2ludAorbXBkX2dldGNsYW1wKGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICByZXR1cm4gY3R4LT5jbGFtcDsKK30KKworaW50CittcGRfZ2V0Y3IoY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4KQoreworICAgIHJldHVybiBjdHgtPmFsbGNyOworfQorCisKK2ludAorbXBkX3FzZXRwcmVjKG1wZF9jb250ZXh0X3QgKmN0eCwgbXBkX3NzaXplX3QgcHJlYykKK3sKKyAgICBpZiAocHJlYyA8PSAwIHx8IHByZWMgPiBNUERfTUFYX1BSRUMpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGN0eC0+cHJlYyA9IHByZWM7CisgICAgcmV0dXJuIDE7Cit9CisKK2ludAorbXBkX3FzZXRlbWF4KG1wZF9jb250ZXh0X3QgKmN0eCwgbXBkX3NzaXplX3QgZW1heCkKK3sKKyAgICBpZiAoZW1heCA8IDAgfHwgZW1heCA+IE1QRF9NQVhfRU1BWCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgY3R4LT5lbWF4ID0gZW1heDsKKyAgICByZXR1cm4gMTsKK30KKworaW50CittcGRfcXNldGVtaW4obXBkX2NvbnRleHRfdCAqY3R4LCBtcGRfc3NpemVfdCBlbWluKQoreworICAgIGlmIChlbWluID4gMCB8fCBlbWluIDwgTVBEX01JTl9FTUlOKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBjdHgtPmVtaW4gPSBlbWluOworICAgIHJldHVybiAxOworfQorCitpbnQKK21wZF9xc2V0cm91bmQobXBkX2NvbnRleHRfdCAqY3R4LCBpbnQgcm91bmQpCit7CisgICAgaWYgKCEoMCA8PSByb3VuZCAmJiByb3VuZCA8IE1QRF9ST1VORF9HVUFSRCkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGN0eC0+cm91bmQgPSByb3VuZDsKKyAgICByZXR1cm4gMTsKK30KKworaW50CittcGRfcXNldHRyYXBzKG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgdHJhcHMpCit7CisgICAgaWYgKHRyYXBzID4gTVBEX01heF9zdGF0dXMpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGN0eC0+dHJhcHMgPSB0cmFwczsKKyAgICByZXR1cm4gMTsKK30KKworaW50CittcGRfcXNldHN0YXR1cyhtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90IGZsYWdzKQoreworICAgIGlmIChmbGFncyA+IE1QRF9NYXhfc3RhdHVzKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBjdHgtPnN0YXR1cyA9IGZsYWdzOworICAgIHJldHVybiAxOworfQorCitpbnQKK21wZF9xc2V0Y2xhbXAobXBkX2NvbnRleHRfdCAqY3R4LCBpbnQgYykKK3sKKyAgICBpZiAoYyAhPSAwICYmIGMgIT0gMSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgY3R4LT5jbGFtcCA9IGM7CisgICAgcmV0dXJuIDE7Cit9CisKK2ludAorbXBkX3FzZXRjcihtcGRfY29udGV4dF90ICpjdHgsIGludCBjKQoreworICAgIGlmIChjICE9IDAgJiYgYyAhPSAxKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBjdHgtPmFsbGNyID0gYzsKKyAgICByZXR1cm4gMTsKK30KKworCit2b2lkCittcGRfYWRkc3RhdHVzX3JhaXNlKG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgZmxhZ3MpCit7CisgICAgY3R4LT5zdGF0dXMgfD0gZmxhZ3M7CisgICAgaWYgKGZsYWdzJmN0eC0+dHJhcHMpIHsKKyAgICAgICAgY3R4LT5uZXd0cmFwID0gKGZsYWdzJmN0eC0+dHJhcHMpOworICAgICAgICBtcGRfdHJhcGhhbmRsZXIoY3R4KTsKKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9jb252b2x1dGUuYyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY29udm9sdXRlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjVmZTEzMQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY29udm9sdXRlLmMKQEAgLTAsMCArMSwxNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJtcGRlY2ltYWwuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgImJpdHMuaCIKKyNpbmNsdWRlICJjb25zdGFudHMuaCIKKyNpbmNsdWRlICJmbnQuaCIKKyNpbmNsdWRlICJmb3Vyc3RlcC5oIgorI2luY2x1ZGUgIm51bWJlcnRoZW9yeS5oIgorI2luY2x1ZGUgInNpeHN0ZXAuaCIKKyNpbmNsdWRlICJ1bW9kYXJpdGguaCIKKyNpbmNsdWRlICJjb252b2x1dGUuaCIKKworCisvKiBCaWdudW06IEZhc3QgY29udm9sdXRpb24gdXNpbmcgdGhlIE51bWJlciBUaGVvcmV0aWMgVHJhbnNmb3JtLiBVc2VkIGZvcgorICAgdGhlIG11bHRpcGxpY2F0aW9uIG9mIHZlcnkgbGFyZ2UgY29lZmZpY2llbnRzLiAqLworCisKKy8qIENvbnZvbHV0ZSB0aGUgZGF0YSBpbiBjMSBhbmQgYzIuIFJlc3VsdCBpcyBpbiBjMS4gKi8KK2ludAorZm50X2NvbnZvbHV0ZShtcGRfdWludF90ICpjMSwgbXBkX3VpbnRfdCAqYzIsIG1wZF9zaXplX3QgbiwgaW50IG1vZG51bSkKK3sKKyAgICBpbnQgKCpmbnQpKG1wZF91aW50X3QgKiwgbXBkX3NpemVfdCwgaW50KTsKKyAgICBpbnQgKCppbnZfZm50KShtcGRfdWludF90ICosIG1wZF9zaXplX3QsIGludCk7CisjaWZkZWYgUFBSTworICAgIGRvdWJsZSBkbW9kOworICAgIHVpbnQzMl90IGRpbnZtb2RbM107CisjZW5kaWYKKyAgICBtcGRfdWludF90IG5faW52LCB1bW9kOworICAgIG1wZF9zaXplX3QgaTsKKworCisgICAgU0VUTU9EVUxVUyhtb2RudW0pOworICAgIG5faW52ID0gUE9XTU9EKG4sICh1bW9kLTIpKTsKKworICAgIGlmIChpc3Bvd2VyMihuKSkgeworICAgICAgICBpZiAobiA+IFNJWF9TVEVQX1RIUkVTSE9MRCkgeworICAgICAgICAgICAgZm50ID0gc2l4X3N0ZXBfZm50OworICAgICAgICAgICAgaW52X2ZudCA9IGludl9zaXhfc3RlcF9mbnQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmbnQgPSBzdGRfZm50OworICAgICAgICAgICAgaW52X2ZudCA9IHN0ZF9pbnZfZm50OworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBmbnQgPSBmb3VyX3N0ZXBfZm50OworICAgICAgICBpbnZfZm50ID0gaW52X2ZvdXJfc3RlcF9mbnQ7CisgICAgfQorCisgICAgaWYgKCFmbnQoYzEsIG4sIG1vZG51bSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmICghZm50KGMyLCBuLCBtb2RudW0pKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgbi0xOyBpICs9IDIpIHsKKyAgICAgICAgbXBkX3VpbnRfdCB4MCA9IGMxW2ldOworICAgICAgICBtcGRfdWludF90IHkwID0gYzJbaV07CisgICAgICAgIG1wZF91aW50X3QgeDEgPSBjMVtpKzFdOworICAgICAgICBtcGRfdWludF90IHkxID0gYzJbaSsxXTsKKyAgICAgICAgTVVMTU9EMigmeDAsIHkwLCAmeDEsIHkxKTsKKyAgICAgICAgYzFbaV0gPSB4MDsKKyAgICAgICAgYzFbaSsxXSA9IHgxOworICAgIH0KKworICAgIGlmICghaW52X2ZudChjMSwgbiwgbW9kbnVtKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IG4tMzsgaSArPSA0KSB7CisgICAgICAgIG1wZF91aW50X3QgeDAgPSBjMVtpXTsKKyAgICAgICAgbXBkX3VpbnRfdCB4MSA9IGMxW2krMV07CisgICAgICAgIG1wZF91aW50X3QgeDIgPSBjMVtpKzJdOworICAgICAgICBtcGRfdWludF90IHgzID0gYzFbaSszXTsKKyAgICAgICAgTVVMTU9EMkMoJngwLCAmeDEsIG5faW52KTsKKyAgICAgICAgTVVMTU9EMkMoJngyLCAmeDMsIG5faW52KTsKKyAgICAgICAgYzFbaV0gPSB4MDsKKyAgICAgICAgYzFbaSsxXSA9IHgxOworICAgICAgICBjMVtpKzJdID0geDI7CisgICAgICAgIGMxW2krM10gPSB4MzsKKyAgICB9CisKKyAgICByZXR1cm4gMTsKK30KKworLyogQXV0b2NvbnZvbHV0ZSB0aGUgZGF0YSBpbiBjMS4gUmVzdWx0IGlzIGluIGMxLiAqLworaW50CitmbnRfYXV0b2NvbnZvbHV0ZShtcGRfdWludF90ICpjMSwgbXBkX3NpemVfdCBuLCBpbnQgbW9kbnVtKQoreworICAgIGludCAoKmZudCkobXBkX3VpbnRfdCAqLCBtcGRfc2l6ZV90LCBpbnQpOworICAgIGludCAoKmludl9mbnQpKG1wZF91aW50X3QgKiwgbXBkX3NpemVfdCwgaW50KTsKKyNpZmRlZiBQUFJPCisgICAgZG91YmxlIGRtb2Q7CisgICAgdWludDMyX3QgZGludm1vZFszXTsKKyNlbmRpZgorICAgIG1wZF91aW50X3Qgbl9pbnYsIHVtb2Q7CisgICAgbXBkX3NpemVfdCBpOworCisKKyAgICBTRVRNT0RVTFVTKG1vZG51bSk7CisgICAgbl9pbnYgPSBQT1dNT0QobiwgKHVtb2QtMikpOworCisgICAgaWYgKGlzcG93ZXIyKG4pKSB7CisgICAgICAgIGlmIChuID4gU0lYX1NURVBfVEhSRVNIT0xEKSB7CisgICAgICAgICAgICBmbnQgPSBzaXhfc3RlcF9mbnQ7CisgICAgICAgICAgICBpbnZfZm50ID0gaW52X3NpeF9zdGVwX2ZudDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZudCA9IHN0ZF9mbnQ7CisgICAgICAgICAgICBpbnZfZm50ID0gc3RkX2ludl9mbnQ7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGZudCA9IGZvdXJfc3RlcF9mbnQ7CisgICAgICAgIGludl9mbnQgPSBpbnZfZm91cl9zdGVwX2ZudDsKKyAgICB9CisKKyAgICBpZiAoIWZudChjMSwgbiwgbW9kbnVtKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IG4tMTsgaSArPSAyKSB7CisgICAgICAgIG1wZF91aW50X3QgeDAgPSBjMVtpXTsKKyAgICAgICAgbXBkX3VpbnRfdCB4MSA9IGMxW2krMV07CisgICAgICAgIE1VTE1PRDIoJngwLCB4MCwgJngxLCB4MSk7CisgICAgICAgIGMxW2ldID0geDA7CisgICAgICAgIGMxW2krMV0gPSB4MTsKKyAgICB9CisKKyAgICBpZiAoIWludl9mbnQoYzEsIG4sIG1vZG51bSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCBuLTM7IGkgKz0gNCkgeworICAgICAgICBtcGRfdWludF90IHgwID0gYzFbaV07CisgICAgICAgIG1wZF91aW50X3QgeDEgPSBjMVtpKzFdOworICAgICAgICBtcGRfdWludF90IHgyID0gYzFbaSsyXTsKKyAgICAgICAgbXBkX3VpbnRfdCB4MyA9IGMxW2krM107CisgICAgICAgIE1VTE1PRDJDKCZ4MCwgJngxLCBuX2ludik7CisgICAgICAgIE1VTE1PRDJDKCZ4MiwgJngzLCBuX2ludik7CisgICAgICAgIGMxW2ldID0geDA7CisgICAgICAgIGMxW2krMV0gPSB4MTsKKyAgICAgICAgYzFbaSsyXSA9IHgyOworICAgICAgICBjMVtpKzNdID0geDM7CisgICAgfQorCisgICAgcmV0dXJuIDE7Cit9CisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9jb252b2x1dGUuaCBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY29udm9sdXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY4ZDZkOAotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY29udm9sdXRlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBDT05WT0xVVEVfSAorI2RlZmluZSBDT05WT0xVVEVfSAorCisKKyNpbmNsdWRlICJtcGRlY2ltYWwuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorCisjZGVmaW5lIFNJWF9TVEVQX1RIUkVTSE9MRCA0MDk2CisKKworaW50IGZudF9jb252b2x1dGUobXBkX3VpbnRfdCAqYzEsIG1wZF91aW50X3QgKmMyLCBtcGRfc2l6ZV90IG4sIGludCBtb2RudW0pOworaW50IGZudF9hdXRvY29udm9sdXRlKG1wZF91aW50X3QgKmMxLCBtcGRfc2l6ZV90IG4sIGludCBtb2RudW0pOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9jcnQuYyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY3J0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzcxYzRlZQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY3J0LmMKQEAgLTAsMCArMSwxNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJtcGRlY2ltYWwuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgIm51bWJlcnRoZW9yeS5oIgorI2luY2x1ZGUgInVtb2Rhcml0aC5oIgorI2luY2x1ZGUgImNydC5oIgorCisKKy8qIEJpZ251bTogQ2hpbmVzZSBSZW1haW5kZXIgVGhlb3JlbSwgZXh0ZW5kcyB0aGUgbWF4aW11bSB0cmFuc2Zvcm0gbGVuZ3RoLiAqLworCisKKy8qIE11bHRpcGx5IFAxUDIgYnkgdiwgc3RvcmUgcmVzdWx0IGluIHcuICovCitzdGF0aWMgaW5saW5lIHZvaWQKK19jcnRfbXVsUDFQMl8zKG1wZF91aW50X3Qgd1szXSwgbXBkX3VpbnRfdCB2KQoreworICAgIG1wZF91aW50X3QgaGkxLCBoaTIsIGxvOworCisgICAgX21wZF9tdWxfd29yZHMoJmhpMSwgJmxvLCBMSF9QMVAyLCB2KTsKKyAgICB3WzBdID0gbG87CisKKyAgICBfbXBkX211bF93b3JkcygmaGkyLCAmbG8sIFVIX1AxUDIsIHYpOworICAgIGxvID0gaGkxICsgbG87CisgICAgaWYgKGxvIDwgaGkxKSBoaTIrKzsKKworICAgIHdbMV0gPSBsbzsKKyAgICB3WzJdID0gaGkyOworfQorCisvKiBBZGQgMyB3b3JkcyBmcm9tIHYgdG8gdy4gVGhlIHJlc3VsdCBpcyBrbm93biB0byBmaXQgaW4gdy4gKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorX2NydF9hZGQzKG1wZF91aW50X3Qgd1szXSwgbXBkX3VpbnRfdCB2WzNdKQoreworICAgIG1wZF91aW50X3QgY2Fycnk7CisgICAgbXBkX3VpbnRfdCBzOworCisgICAgcyA9IHdbMF0gKyB2WzBdOworICAgIGNhcnJ5ID0gKHMgPCB3WzBdKTsKKyAgICB3WzBdID0gczsKKworICAgIHMgPSB3WzFdICsgKHZbMV0gKyBjYXJyeSk7CisgICAgY2FycnkgPSAocyA8IHdbMV0pOworICAgIHdbMV0gPSBzOworCisgICAgd1syXSA9IHdbMl0gKyAodlsyXSArIGNhcnJ5KTsKK30KKworLyogRGl2aWRlIDMgd29yZHMgaW4gdSBieSB2LCBzdG9yZSByZXN1bHQgaW4gdywgcmV0dXJuIHJlbWFpbmRlci4gKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3VpbnRfdAorX2NydF9kaXYzKG1wZF91aW50X3QgKncsIGNvbnN0IG1wZF91aW50X3QgKnUsIG1wZF91aW50X3QgdikKK3sKKyAgICBtcGRfdWludF90IHIxID0gdVsyXTsKKyAgICBtcGRfdWludF90IHIyOworCisgICAgaWYgKHIxIDwgdikgeworICAgICAgICB3WzJdID0gMDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIF9tcGRfZGl2X3dvcmQoJndbMl0sICZyMSwgdVsyXSwgdik7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9CisKKyAgICBfbXBkX2Rpdl93b3Jkcygmd1sxXSwgJnIyLCByMSwgdVsxXSwgdik7CisgICAgX21wZF9kaXZfd29yZHMoJndbMF0sICZyMSwgcjIsIHVbMF0sIHYpOworCisgICAgcmV0dXJuIHIxOworfQorCisKKy8qCisgKiBDaGluZXNlIFJlbWFpbmRlciBUaGVvcmVtOgorICogQWxnb3JpdGhtIGZyb20gSm9lcmcgQXJuZHQsICJNYXR0ZXJzIENvbXB1dGF0aW9uYWwiLAorICogQ2hhcHRlciAzNy40LjEgW2h0dHA6Ly93d3cuampqLmRlL2Z4dC9dCisgKgorICogU2VlIGFsc28gS251dGgsIFRBT0NQLCBWb2x1bWUgMiwgNC4zLjIsIGV4ZXJjaXNlIDcuCisgKi8KKworLyoKKyAqIENSVCB3aXRoIGNhcnJ5OiB4MSwgeDIsIHgzIGNvbnRhaW4gbnVtYmVycyBtb2R1bG8gcDEsIHAyLCBwMy4gRm9yIGVhY2gKKyAqIHRyaXBsZSBvZiBtZW1iZXJzIG9mIHRoZSBhcnJheXMsIGZpbmQgdGhlIHVuaXF1ZSB6IG1vZHVsbyBwMSpwMipwMywgd2l0aAorICogem1heCA9IHAxKnAyKnAzIC0gMS4KKyAqCisgKiBJbiBlYWNoIGl0ZXJhdGlvbiBvZiB0aGUgbG9vcCwgc3BsaXQgeiBpbnRvIHJlc3VsdFtpXSA9IHogJSBNUERfUkFESVgKKyAqIGFuZCBjYXJyeSA9IHogLyBNUERfUkFESVguIExldCBOIGJlIHRoZSBzaXplIG9mIGNhcnJ5W10gYW5kIGNtYXggdGhlCisgKiBtYXhpbXVtIGNhcnJ5LgorICoKKyAqIExpbWl0cyBmb3IgdGhlIDMyLWJpdCBidWlsZDoKKyAqCisgKiAgIE4gICAgPSAyKio5NgorICogICBjbWF4ID0gNzcxMTQzNTU5MTMxMjM4MDI3NAorICoKKyAqIExpbWl0cyBmb3IgdGhlIDY0IGJpdCBidWlsZDoKKyAqCisgKiAgIE4gICAgPSAyKioxOTIKKyAqICAgY21heCA9IDYyNzcxMDEzNTM5MzQ3NTM4NTkwNDEyNDQwMTIyMDA0NjM3MTcxMAorICoKKyAqIFRoZSBmb2xsb3dpbmcgc3RhdGVtZW50cyBob2xkIGZvciBib3RoIHZlcnNpb25zOgorICoKKyAqICAgMSkgY21heCArIHptYXggPCBOLCBzbyB0aGUgYWRkaXRpb24gZG9lcyBub3Qgb3ZlcmZsb3cuCisgKgorICogICAyKSAoY21heCArIHptYXgpIC8gTVBEX1JBRElYID09IGNtYXguCisgKgorICogICAzKSBJZiBjIDw9IGNtYXgsIHRoZW4gY19uZXh0ID0gKGMgKyB6bWF4KSAvIE1QRF9SQURJWCA8PSBjbWF4LgorICovCit2b2lkCitjcnQzKG1wZF91aW50X3QgKngxLCBtcGRfdWludF90ICp4MiwgbXBkX3VpbnRfdCAqeDMsIG1wZF9zaXplX3QgcnNpemUpCit7CisgICAgbXBkX3VpbnRfdCBwMSA9IG1wZF9tb2R1bGlbUDFdOworICAgIG1wZF91aW50X3QgdW1vZDsKKyNpZmRlZiBQUFJPCisgICAgZG91YmxlIGRtb2Q7CisgICAgdWludDMyX3QgZGludm1vZFszXTsKKyNlbmRpZgorICAgIG1wZF91aW50X3QgYTEsIGEyLCBhMzsKKyAgICBtcGRfdWludF90IHM7CisgICAgbXBkX3VpbnRfdCB6WzNdLCB0WzNdOworICAgIG1wZF91aW50X3QgY2FycnlbM10gPSB7MCwwLDB9OworICAgIG1wZF91aW50X3QgaGksIGxvOworICAgIG1wZF9zaXplX3QgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCByc2l6ZTsgaSsrKSB7CisKKyAgICAgICAgYTEgPSB4MVtpXTsKKyAgICAgICAgYTIgPSB4MltpXTsKKyAgICAgICAgYTMgPSB4M1tpXTsKKworICAgICAgICBTRVRNT0RVTFVTKFAyKTsKKyAgICAgICAgcyA9IGV4dF9zdWJtb2QoYTIsIGExLCB1bW9kKTsKKyAgICAgICAgcyA9IE1VTE1PRChzLCBJTlZfUDFfTU9EX1AyKTsKKworICAgICAgICBfbXBkX211bF93b3JkcygmaGksICZsbywgcywgcDEpOworICAgICAgICBsbyA9IGxvICsgYTE7CisgICAgICAgIGlmIChsbyA8IGExKSBoaSsrOworCisgICAgICAgIFNFVE1PRFVMVVMoUDMpOworICAgICAgICBzID0gZHdfc3VibW9kKGEzLCBoaSwgbG8sIHVtb2QpOworICAgICAgICBzID0gTVVMTU9EKHMsIElOVl9QMVAyX01PRF9QMyk7CisKKyAgICAgICAgelswXSA9IGxvOworICAgICAgICB6WzFdID0gaGk7CisgICAgICAgIHpbMl0gPSAwOworCisgICAgICAgIF9jcnRfbXVsUDFQMl8zKHQsIHMpOworICAgICAgICBfY3J0X2FkZDMoeiwgdCk7CisgICAgICAgIF9jcnRfYWRkMyhjYXJyeSwgeik7CisKKyAgICAgICAgeDFbaV0gPSBfY3J0X2RpdjMoY2FycnksIGNhcnJ5LCBNUERfUkFESVgpOworICAgIH0KKworICAgIGFzc2VydChjYXJyeVswXSA9PSAwICYmIGNhcnJ5WzFdID09IDAgJiYgY2FycnlbMl0gPT0gMCk7Cit9CisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9jcnQuaCBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY3J0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGUwM2U1ZAotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvY3J0LmgKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBDUlRfSAorI2RlZmluZSBDUlRfSAorCisKKyNpbmNsdWRlICJtcGRlY2ltYWwuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorCisKK3ZvaWQgY3J0MyhtcGRfdWludF90ICp4MSwgbXBkX3VpbnRfdCAqeDIsIG1wZF91aW50X3QgKngzLCBtcGRfc2l6ZV90IG5tZW1iKTsKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvZGlmcmFkaXgyLmMgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2RpZnJhZGl4Mi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlYmIwYjUKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2RpZnJhZGl4Mi5jCkBAIC0wLDAgKzEsMTczIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlICJiaXRzLmgiCisjaW5jbHVkZSAibnVtYmVydGhlb3J5LmgiCisjaW5jbHVkZSAidW1vZGFyaXRoLmgiCisjaW5jbHVkZSAiZGlmcmFkaXgyLmgiCisKKworLyogQmlnbnVtOiBUaGUgYWN0dWFsIHRyYW5zZm9ybSByb3V0aW5lIChkZWNpbWF0aW9uIGluIGZyZXF1ZW5jeSkuICovCisKKworLyoKKyAqIEdlbmVyYXRlIGluZGV4IHBhaXJzICh4LCBiaXRyZXZlcnNlKHgpKSBhbmQgY2Fycnkgb3V0IHRoZSBwZXJtdXRhdGlvbi4KKyAqIG4gbXVzdCBiZSBhIHBvd2VyIG9mIHR3by4KKyAqIEFsZ29yaXRobSBkdWUgdG8gQnJlbnQvTGVobWFubiwgc2VlIEpvZXJnIEFybmR0LCAiTWF0dGVycyBDb21wdXRhdGlvbmFsIiwKKyAqIENoYXB0ZXIgMS4xNC40LiBbaHR0cDovL3d3dy5qamouZGUvZnh0L10KKyAqLworc3RhdGljIGlubGluZSB2b2lkCitiaXRyZXZlcnNlX3Blcm11dGUobXBkX3VpbnRfdCBhW10sIG1wZF9zaXplX3QgbikKK3sKKyAgICBtcGRfc2l6ZV90IHggPSAwOworICAgIG1wZF9zaXplX3QgciA9IDA7CisgICAgbXBkX3VpbnRfdCB0OworCisgICAgZG8geyAvKiBJbnZhcmlhbnQ6IHIgPSBiaXRyZXZlcnNlKHgpICovCisgICAgICAgIGlmIChyID4geCkgeworICAgICAgICAgICAgdCA9IGFbeF07CisgICAgICAgICAgICBhW3hdID0gYVtyXTsKKyAgICAgICAgICAgIGFbcl0gPSB0OworICAgICAgICB9CisgICAgICAgIC8qIEZsaXAgdHJhaWxpbmcgY29uc2VjdXRpdmUgMSBiaXRzIGFuZCB0aGUgZmlyc3QgemVybyBiaXQKKyAgICAgICAgICogdGhhdCBhYnNvcmJzIGEgcG9zc2libGUgY2FycnkuICovCisgICAgICAgIHggKz0gMTsKKyAgICAgICAgLyogTWlycm9yIHRoZSBvcGVyYXRpb24gb24gcjogRmxpcCBuX3RyYWlsaW5nX3plcm9zKHgpKzEKKyAgICAgICAgICAgaGlnaCBiaXRzIG9mIHIuICovCisgICAgICAgIHIgXj0gKG4gLSAobiA+PiAobXBkX2JzZih4KSsxKSkpOworICAgICAgICAvKiBUaGUgbG9vcCBpbnZhcmlhbnQgaXMgcHJlc2VydmVkLiAqLworICAgIH0gd2hpbGUgKHggPCBuKTsKK30KKworCisvKiBGYXN0IE51bWJlciBUaGVvcmV0aWMgVHJhbnNmb3JtLCBkZWNpbWF0aW9uIGluIGZyZXF1ZW5jeS4gKi8KK3ZvaWQKK2ZudF9kaWYyKG1wZF91aW50X3QgYVtdLCBtcGRfc2l6ZV90IG4sIHN0cnVjdCBmbnRfcGFyYW1zICp0cGFyYW1zKQoreworICAgIG1wZF91aW50X3QgKnd0YWJsZSA9IHRwYXJhbXMtPnd0YWJsZTsKKyAgICBtcGRfdWludF90IHVtb2Q7CisjaWZkZWYgUFBSTworICAgIGRvdWJsZSBkbW9kOworICAgIHVpbnQzMl90IGRpbnZtb2RbM107CisjZW5kaWYKKyAgICBtcGRfdWludF90IHUwLCB1MSwgdjAsIHYxOworICAgIG1wZF91aW50X3QgdywgdzAsIHcxLCB3c3RlcDsKKyAgICBtcGRfc2l6ZV90IG0sIG1oYWxmOworICAgIG1wZF9zaXplX3QgaiwgcjsKKworCisgICAgYXNzZXJ0KGlzcG93ZXIyKG4pKTsKKyAgICBhc3NlcnQobiA+PSA0KTsKKworICAgIFNFVE1PRFVMVVModHBhcmFtcy0+bW9kbnVtKTsKKworICAgIC8qIG0gPT0gbiAqLworICAgIG1oYWxmID0gbiAvIDI7CisgICAgZm9yIChqID0gMDsgaiA8IG1oYWxmOyBqICs9IDIpIHsKKworICAgICAgICB3MCA9IHd0YWJsZVtqXTsKKyAgICAgICAgdzEgPSB3dGFibGVbaisxXTsKKworICAgICAgICB1MCA9IGFbal07CisgICAgICAgIHYwID0gYVtqK21oYWxmXTsKKworICAgICAgICB1MSA9IGFbaisxXTsKKyAgICAgICAgdjEgPSBhW2orMSttaGFsZl07CisKKyAgICAgICAgYVtqXSA9IGFkZG1vZCh1MCwgdjAsIHVtb2QpOworICAgICAgICB2MCA9IHN1Ym1vZCh1MCwgdjAsIHVtb2QpOworCisgICAgICAgIGFbaisxXSA9IGFkZG1vZCh1MSwgdjEsIHVtb2QpOworICAgICAgICB2MSA9IHN1Ym1vZCh1MSwgdjEsIHVtb2QpOworCisgICAgICAgIE1VTE1PRDIoJnYwLCB3MCwgJnYxLCB3MSk7CisKKyAgICAgICAgYVtqK21oYWxmXSA9IHYwOworICAgICAgICBhW2orMSttaGFsZl0gPSB2MTsKKworICAgIH0KKworICAgIHdzdGVwID0gMjsKKyAgICBmb3IgKG0gPSBuLzI7IG0gPj0gMjsgbT4+PTEsIHdzdGVwPDw9MSkgeworCisgICAgICAgIG1oYWxmID0gbSAvIDI7CisKKyAgICAgICAgLyogaiA9PSAwICovCisgICAgICAgIGZvciAociA9IDA7IHIgPCBuOyByICs9IDIqbSkgeworCisgICAgICAgICAgICB1MCA9IGFbcl07CisgICAgICAgICAgICB2MCA9IGFbcittaGFsZl07CisKKyAgICAgICAgICAgIHUxID0gYVttK3JdOworICAgICAgICAgICAgdjEgPSBhW20rcittaGFsZl07CisKKyAgICAgICAgICAgIGFbcl0gPSBhZGRtb2QodTAsIHYwLCB1bW9kKTsKKyAgICAgICAgICAgIHYwID0gc3VibW9kKHUwLCB2MCwgdW1vZCk7CisKKyAgICAgICAgICAgIGFbbStyXSA9IGFkZG1vZCh1MSwgdjEsIHVtb2QpOworICAgICAgICAgICAgdjEgPSBzdWJtb2QodTEsIHYxLCB1bW9kKTsKKworICAgICAgICAgICAgYVtyK21oYWxmXSA9IHYwOworICAgICAgICAgICAgYVttK3IrbWhhbGZdID0gdjE7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKGogPSAxOyBqIDwgbWhhbGY7IGorKykgeworCisgICAgICAgICAgICB3ID0gd3RhYmxlW2oqd3N0ZXBdOworCisgICAgICAgICAgICBmb3IgKHIgPSAwOyByIDwgbjsgciArPSAyKm0pIHsKKworICAgICAgICAgICAgICAgIHUwID0gYVtyK2pdOworICAgICAgICAgICAgICAgIHYwID0gYVtyK2orbWhhbGZdOworCisgICAgICAgICAgICAgICAgdTEgPSBhW20rcitqXTsKKyAgICAgICAgICAgICAgICB2MSA9IGFbbStyK2orbWhhbGZdOworCisgICAgICAgICAgICAgICAgYVtyK2pdID0gYWRkbW9kKHUwLCB2MCwgdW1vZCk7CisgICAgICAgICAgICAgICAgdjAgPSBzdWJtb2QodTAsIHYwLCB1bW9kKTsKKworICAgICAgICAgICAgICAgIGFbbStyK2pdID0gYWRkbW9kKHUxLCB2MSwgdW1vZCk7CisgICAgICAgICAgICAgICAgdjEgPSBzdWJtb2QodTEsIHYxLCB1bW9kKTsKKworICAgICAgICAgICAgICAgIE1VTE1PRDJDKCZ2MCwgJnYxLCB3KTsKKworICAgICAgICAgICAgICAgIGFbcitqK21oYWxmXSA9IHYwOworICAgICAgICAgICAgICAgIGFbbStyK2orbWhhbGZdID0gdjE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgfQorCisgICAgfQorCisgICAgYml0cmV2ZXJzZV9wZXJtdXRlKGEsIG4pOworfQorCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvZGlmcmFkaXgyLmggYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2RpZnJhZGl4Mi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1OTQ0MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2RpZnJhZGl4Mi5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgRElGX1JBRElYMl9ICisjZGVmaW5lIERJRl9SQURJWDJfSAorCisKKyNpbmNsdWRlICJtcGRlY2ltYWwuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgIm51bWJlcnRoZW9yeS5oIgorCisKK3ZvaWQgZm50X2RpZjIobXBkX3VpbnRfdCBhW10sIG1wZF9zaXplX3Qgbiwgc3RydWN0IGZudF9wYXJhbXMgKnRwYXJhbXMpOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9mbnQuYyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvZm50LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMxMTY1MwotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvZm50LmMKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSAiYml0cy5oIgorI2luY2x1ZGUgImRpZnJhZGl4Mi5oIgorI2luY2x1ZGUgIm51bWJlcnRoZW9yeS5oIgorI2luY2x1ZGUgImZudC5oIgorCisKKy8qIEJpZ251bTogRmFzdCB0cmFuc2Zvcm0gZm9yIG1lZGl1bS1zaXplZCBjb2VmZmljaWVudHMuICovCisKKworLyogZm9yd2FyZCB0cmFuc2Zvcm0sIHNpZ24gPSAtMSAqLworaW50CitzdGRfZm50KG1wZF91aW50X3QgKmEsIG1wZF9zaXplX3QgbiwgaW50IG1vZG51bSkKK3sKKyAgICBzdHJ1Y3QgZm50X3BhcmFtcyAqdHBhcmFtczsKKworICAgIGFzc2VydChpc3Bvd2VyMihuKSk7CisgICAgYXNzZXJ0KG4gPj0gNCk7CisgICAgYXNzZXJ0KG4gPD0gMypNUERfTUFYVFJBTlNGT1JNXzJOKTsKKworICAgIGlmICgodHBhcmFtcyA9IF9tcGRfaW5pdF9mbnRfcGFyYW1zKG4sIC0xLCBtb2RudW0pKSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBmbnRfZGlmMihhLCBuLCB0cGFyYW1zKTsKKworICAgIG1wZF9mcmVlKHRwYXJhbXMpOworICAgIHJldHVybiAxOworfQorCisvKiByZXZlcnNlIHRyYW5zZm9ybSwgc2lnbiA9IDEgKi8KK2ludAorc3RkX2ludl9mbnQobXBkX3VpbnRfdCAqYSwgbXBkX3NpemVfdCBuLCBpbnQgbW9kbnVtKQoreworICAgIHN0cnVjdCBmbnRfcGFyYW1zICp0cGFyYW1zOworCisgICAgYXNzZXJ0KGlzcG93ZXIyKG4pKTsKKyAgICBhc3NlcnQobiA+PSA0KTsKKyAgICBhc3NlcnQobiA8PSAzKk1QRF9NQVhUUkFOU0ZPUk1fMk4pOworCisgICAgaWYgKCh0cGFyYW1zID0gX21wZF9pbml0X2ZudF9wYXJhbXMobiwgMSwgbW9kbnVtKSkgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZm50X2RpZjIoYSwgbiwgdHBhcmFtcyk7CisKKyAgICBtcGRfZnJlZSh0cGFyYW1zKTsKKyAgICByZXR1cm4gMTsKK30KKworCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvZm50LmggYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2ZudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkNzAxYjYKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2ZudC5oCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgRk5UX0gKKyNkZWZpbmUgRk5UX0gKKworCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKworCitpbnQgc3RkX2ZudChtcGRfdWludF90IGFbXSwgbXBkX3NpemVfdCBuLCBpbnQgbW9kbnVtKTsKK2ludCBzdGRfaW52X2ZudChtcGRfdWludF90IGFbXSwgbXBkX3NpemVfdCBuLCBpbnQgbW9kbnVtKTsKKworCisjZW5kaWYKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9mb3Vyc3RlcC5jIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9mb3Vyc3RlcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFhMzJjMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2ZvdXJzdGVwLmMKQEAgLTAsMCArMSwyNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJtcGRlY2ltYWwuaCIKKyNpbmNsdWRlIDxhc3NlcnQuaD4KKyNpbmNsdWRlICJudW1iZXJ0aGVvcnkuaCIKKyNpbmNsdWRlICJzaXhzdGVwLmgiCisjaW5jbHVkZSAidHJhbnNwb3NlLmgiCisjaW5jbHVkZSAidW1vZGFyaXRoLmgiCisjaW5jbHVkZSAiZm91cnN0ZXAuaCIKKworCisvKiBCaWdudW06IENhY2hlIGVmZmljaWVudCBNYXRyaXggRm91cmllciBUcmFuc2Zvcm0gZm9yIGFycmF5cyBvZiB0aGUKKyAgIGZvcm0gMyAqIDIqKm4gKFNlZSBsaXRlcmF0dXJlL21hdHJpeC10cmFuc2Zvcm0udHh0KS4gKi8KKworCisjaWZuZGVmIFBQUk8KK3N0YXRpYyBpbmxpbmUgdm9pZAorc3RkX3NpemUzX250dChtcGRfdWludF90ICp4MSwgbXBkX3VpbnRfdCAqeDIsIG1wZF91aW50X3QgKngzLAorICAgICAgICAgICAgICBtcGRfdWludF90IHczdGFibGVbM10sIG1wZF91aW50X3QgdW1vZCkKK3sKKyAgICBtcGRfdWludF90IHIxLCByMjsKKyAgICBtcGRfdWludF90IHc7CisgICAgbXBkX3VpbnRfdCBzLCB0bXA7CisKKworICAgIC8qIGsgPSAwIC0+IHcgPSAxICovCisgICAgcyA9ICp4MTsKKyAgICBzID0gYWRkbW9kKHMsICp4MiwgdW1vZCk7CisgICAgcyA9IGFkZG1vZChzLCAqeDMsIHVtb2QpOworCisgICAgcjEgPSBzOworCisgICAgLyogayA9IDEgKi8KKyAgICBzID0gKngxOworCisgICAgdyA9IHczdGFibGVbMV07CisgICAgdG1wID0gTVVMTU9EKCp4Miwgdyk7CisgICAgcyA9IGFkZG1vZChzLCB0bXAsIHVtb2QpOworCisgICAgdyA9IHczdGFibGVbMl07CisgICAgdG1wID0gTVVMTU9EKCp4Mywgdyk7CisgICAgcyA9IGFkZG1vZChzLCB0bXAsIHVtb2QpOworCisgICAgcjIgPSBzOworCisgICAgLyogayA9IDIgKi8KKyAgICBzID0gKngxOworCisgICAgdyA9IHczdGFibGVbMl07CisgICAgdG1wID0gTVVMTU9EKCp4Miwgdyk7CisgICAgcyA9IGFkZG1vZChzLCB0bXAsIHVtb2QpOworCisgICAgdyA9IHczdGFibGVbMV07CisgICAgdG1wID0gTVVMTU9EKCp4Mywgdyk7CisgICAgcyA9IGFkZG1vZChzLCB0bXAsIHVtb2QpOworCisgICAgKngzID0gczsKKyAgICAqeDIgPSByMjsKKyAgICAqeDEgPSByMTsKK30KKyNlbHNlIC8qIFBQUk8gKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorcHByb19zaXplM19udHQobXBkX3VpbnRfdCAqeDEsIG1wZF91aW50X3QgKngyLCBtcGRfdWludF90ICp4MywgbXBkX3VpbnRfdCB3M3RhYmxlWzNdLAorICAgICAgICAgICAgICAgbXBkX3VpbnRfdCB1bW9kLCBkb3VibGUgKmRtb2QsIHVpbnQzMl90IGRpbnZtb2RbM10pCit7CisgICAgbXBkX3VpbnRfdCByMSwgcjI7CisgICAgbXBkX3VpbnRfdCB3OworICAgIG1wZF91aW50X3QgcywgdG1wOworCisKKyAgICAvKiBrID0gMCAtPiB3ID0gMSAqLworICAgIHMgPSAqeDE7CisgICAgcyA9IGFkZG1vZChzLCAqeDIsIHVtb2QpOworICAgIHMgPSBhZGRtb2QocywgKngzLCB1bW9kKTsKKworICAgIHIxID0gczsKKworICAgIC8qIGsgPSAxICovCisgICAgcyA9ICp4MTsKKworICAgIHcgPSB3M3RhYmxlWzFdOworICAgIHRtcCA9IHBwcm9fbXVsbW9kKCp4MiwgdywgZG1vZCwgZGludm1vZCk7CisgICAgcyA9IGFkZG1vZChzLCB0bXAsIHVtb2QpOworCisgICAgdyA9IHczdGFibGVbMl07CisgICAgdG1wID0gcHByb19tdWxtb2QoKngzLCB3LCBkbW9kLCBkaW52bW9kKTsKKyAgICBzID0gYWRkbW9kKHMsIHRtcCwgdW1vZCk7CisKKyAgICByMiA9IHM7CisKKyAgICAvKiBrID0gMiAqLworICAgIHMgPSAqeDE7CisKKyAgICB3ID0gdzN0YWJsZVsyXTsKKyAgICB0bXAgPSBwcHJvX211bG1vZCgqeDIsIHcsIGRtb2QsIGRpbnZtb2QpOworICAgIHMgPSBhZGRtb2QocywgdG1wLCB1bW9kKTsKKworICAgIHcgPSB3M3RhYmxlWzFdOworICAgIHRtcCA9IHBwcm9fbXVsbW9kKCp4MywgdywgZG1vZCwgZGludm1vZCk7CisgICAgcyA9IGFkZG1vZChzLCB0bXAsIHVtb2QpOworCisgICAgKngzID0gczsKKyAgICAqeDIgPSByMjsKKyAgICAqeDEgPSByMTsKK30KKyNlbmRpZgorCisKKy8qIGZvcndhcmQgdHJhbnNmb3JtLCBzaWduID0gLTE7IHRyYW5zZm9ybSBsZW5ndGggPSAzICogMioqbiAqLworaW50Citmb3VyX3N0ZXBfZm50KG1wZF91aW50X3QgKmEsIG1wZF9zaXplX3QgbiwgaW50IG1vZG51bSkKK3sKKyAgICBtcGRfc2l6ZV90IFIgPSAzOyAvKiBudW1iZXIgb2Ygcm93cyAqLworICAgIG1wZF9zaXplX3QgQyA9IG4gLyAzOyAvKiBudW1iZXIgb2YgY29sdW1ucyAqLworICAgIG1wZF91aW50X3QgdzN0YWJsZVszXTsKKyAgICBtcGRfdWludF90IGtlcm5lbCwgdzAsIHcxLCB3c3RlcDsKKyAgICBtcGRfdWludF90ICpzLCAqcDAsICpwMSwgKnAyOworICAgIG1wZF91aW50X3QgdW1vZDsKKyNpZmRlZiBQUFJPCisgICAgZG91YmxlIGRtb2Q7CisgICAgdWludDMyX3QgZGludm1vZFszXTsKKyNlbmRpZgorICAgIG1wZF9zaXplX3QgaSwgazsKKworCisgICAgYXNzZXJ0KG4gPj0gNDgpOworICAgIGFzc2VydChuIDw9IDMqTVBEX01BWFRSQU5TRk9STV8yTik7CisKKworICAgIC8qIExlbmd0aCBSIHRyYW5zZm9ybSBvbiB0aGUgY29sdW1ucy4gKi8KKyAgICBTRVRNT0RVTFVTKG1vZG51bSk7CisgICAgX21wZF9pbml0X3czdGFibGUodzN0YWJsZSwgLTEsIG1vZG51bSk7CisgICAgZm9yIChwMD1hLCBwMT1wMCtDLCBwMj1wMCsyKkM7IHAwPGErQzsgcDArKyxwMSsrLHAyKyspIHsKKworICAgICAgICBTSVpFM19OVFQocDAsIHAxLCBwMiwgdzN0YWJsZSk7CisgICAgfQorCisgICAgLyogTXVsdGlwbHkgZWFjaCBtYXRyaXggZWxlbWVudCAoYWRkcmVzc2VkIGJ5IGkqQytrKSBieSByKiooaSprKS4gKi8KKyAgICBrZXJuZWwgPSBfbXBkX2dldGtlcm5lbChuLCAtMSwgbW9kbnVtKTsKKyAgICBmb3IgKGkgPSAxOyBpIDwgUjsgaSsrKSB7CisgICAgICAgIHcwID0gMTsgICAgICAgICAgICAgICAgICAvKiByKiooaSowKTogaW5pdGlhbCB2YWx1ZSBmb3Igaz0wICovCisgICAgICAgIHcxID0gUE9XTU9EKGtlcm5lbCwgaSk7ICAvKiByKiooaSoxKTogaW5pdGlhbCB2YWx1ZSBmb3Igaz0xICovCisgICAgICAgIHdzdGVwID0gTVVMTU9EKHcxLCB3MSk7ICAvKiByKiooMippKSAqLworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgQy0xOyBrICs9IDIpIHsKKyAgICAgICAgICAgIG1wZF91aW50X3QgeDAgPSBhW2kqQytrXTsKKyAgICAgICAgICAgIG1wZF91aW50X3QgeDEgPSBhW2kqQytrKzFdOworICAgICAgICAgICAgTVVMTU9EMigmeDAsIHcwLCAmeDEsIHcxKTsKKyAgICAgICAgICAgIE1VTE1PRDJDKCZ3MCwgJncxLCB3c3RlcCk7ICAvKiByKiooaSooaysyKSkgPSByKiooaSprKSAqIHIqKigyKmkpICovCisgICAgICAgICAgICBhW2kqQytrXSA9IHgwOworICAgICAgICAgICAgYVtpKkMraysxXSA9IHgxOworICAgICAgICB9CisgICAgfQorCisgICAgLyogTGVuZ3RoIEMgdHJhbnNmb3JtIG9uIHRoZSByb3dzLiAqLworICAgIGZvciAocyA9IGE7IHMgPCBhK247IHMgKz0gQykgeworICAgICAgICBpZiAoIXNpeF9zdGVwX2ZudChzLCBDLCBtb2RudW0pKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworI2lmIDAKKyAgICAvKiBBbiB1bm9yZGVyZWQgdHJhbnNmb3JtIGlzIHN1ZmZpY2llbnQgZm9yIGNvbnZvbHV0aW9uLiAqLworICAgIC8qIFRyYW5zcG9zZSB0aGUgbWF0cml4LiAqLworICAgIHRyYW5zcG9zZV8zeHBvdzIoYSwgUiwgQyk7CisjZW5kaWYKKworICAgIHJldHVybiAxOworfQorCisvKiBiYWNrd2FyZCB0cmFuc2Zvcm0sIHNpZ24gPSAxOyB0cmFuc2Zvcm0gbGVuZ3RoID0gMyAqIDIqKm4gKi8KK2ludAoraW52X2ZvdXJfc3RlcF9mbnQobXBkX3VpbnRfdCAqYSwgbXBkX3NpemVfdCBuLCBpbnQgbW9kbnVtKQoreworICAgIG1wZF9zaXplX3QgUiA9IDM7IC8qIG51bWJlciBvZiByb3dzICovCisgICAgbXBkX3NpemVfdCBDID0gbiAvIDM7IC8qIG51bWJlciBvZiBjb2x1bW5zICovCisgICAgbXBkX3VpbnRfdCB3M3RhYmxlWzNdOworICAgIG1wZF91aW50X3Qga2VybmVsLCB3MCwgdzEsIHdzdGVwOworICAgIG1wZF91aW50X3QgKnMsICpwMCwgKnAxLCAqcDI7CisgICAgbXBkX3VpbnRfdCB1bW9kOworI2lmZGVmIFBQUk8KKyAgICBkb3VibGUgZG1vZDsKKyAgICB1aW50MzJfdCBkaW52bW9kWzNdOworI2VuZGlmCisgICAgbXBkX3NpemVfdCBpLCBrOworCisKKyAgICBhc3NlcnQobiA+PSA0OCk7CisgICAgYXNzZXJ0KG4gPD0gMypNUERfTUFYVFJBTlNGT1JNXzJOKTsKKworCisjaWYgMAorICAgIC8qIEFuIHVub3JkZXJlZCB0cmFuc2Zvcm0gaXMgc3VmZmljaWVudCBmb3IgY29udm9sdXRpb24uICovCisgICAgLyogVHJhbnNwb3NlIHRoZSBtYXRyaXgsIHByb2R1Y2luZyBhbiBSKkMgbWF0cml4LiAqLworICAgIHRyYW5zcG9zZV8zeHBvdzIoYSwgQywgUik7CisjZW5kaWYKKworICAgIC8qIExlbmd0aCBDIHRyYW5zZm9ybSBvbiB0aGUgcm93cy4gKi8KKyAgICBmb3IgKHMgPSBhOyBzIDwgYStuOyBzICs9IEMpIHsKKyAgICAgICAgaWYgKCFpbnZfc2l4X3N0ZXBfZm50KHMsIEMsIG1vZG51bSkpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyogTXVsdGlwbHkgZWFjaCBtYXRyaXggZWxlbWVudCAoYWRkcmVzc2VkIGJ5IGkqQytrKSBieSByKiooaSprKS4gKi8KKyAgICBTRVRNT0RVTFVTKG1vZG51bSk7CisgICAga2VybmVsID0gX21wZF9nZXRrZXJuZWwobiwgMSwgbW9kbnVtKTsKKyAgICBmb3IgKGkgPSAxOyBpIDwgUjsgaSsrKSB7CisgICAgICAgIHcwID0gMTsKKyAgICAgICAgdzEgPSBQT1dNT0Qoa2VybmVsLCBpKTsKKyAgICAgICAgd3N0ZXAgPSBNVUxNT0QodzEsIHcxKTsKKyAgICAgICAgZm9yIChrID0gMDsgayA8IEM7IGsgKz0gMikgeworICAgICAgICAgICAgbXBkX3VpbnRfdCB4MCA9IGFbaSpDK2tdOworICAgICAgICAgICAgbXBkX3VpbnRfdCB4MSA9IGFbaSpDK2srMV07CisgICAgICAgICAgICBNVUxNT0QyKCZ4MCwgdzAsICZ4MSwgdzEpOworICAgICAgICAgICAgTVVMTU9EMkMoJncwLCAmdzEsIHdzdGVwKTsKKyAgICAgICAgICAgIGFbaSpDK2tdID0geDA7CisgICAgICAgICAgICBhW2kqQytrKzFdID0geDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBMZW5ndGggUiB0cmFuc2Zvcm0gb24gdGhlIGNvbHVtbnMuICovCisgICAgX21wZF9pbml0X3czdGFibGUodzN0YWJsZSwgMSwgbW9kbnVtKTsKKyAgICBmb3IgKHAwPWEsIHAxPXAwK0MsIHAyPXAwKzIqQzsgcDA8YStDOyBwMCsrLHAxKysscDIrKykgeworCisgICAgICAgIFNJWkUzX05UVChwMCwgcDEsIHAyLCB3M3RhYmxlKTsKKyAgICB9CisKKyAgICByZXR1cm4gMTsKK30KKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2ZvdXJzdGVwLmggYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2ZvdXJzdGVwLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjFkOWQ2YQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvZm91cnN0ZXAuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIEZPVVJfU1RFUF9ICisjZGVmaW5lIEZPVVJfU1RFUF9ICisKKworI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKworaW50IGZvdXJfc3RlcF9mbnQobXBkX3VpbnRfdCAqYSwgbXBkX3NpemVfdCBuLCBpbnQgbW9kbnVtKTsKK2ludCBpbnZfZm91cl9zdGVwX2ZudChtcGRfdWludF90ICphLCBtcGRfc2l6ZV90IG4sIGludCBtb2RudW0pOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9pby5jIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9pby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2NDgxMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2lvLmMKQEAgLTAsMCArMSwxNTc1IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxjdHlwZS5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8bG9jYWxlLmg+CisjaW5jbHVkZSAiYml0cy5oIgorI2luY2x1ZGUgImNvbnN0YW50cy5oIgorI2luY2x1ZGUgIm1lbW9yeS5oIgorI2luY2x1ZGUgInR5cGVhcml0aC5oIgorI2luY2x1ZGUgImlvLmgiCisKKworLyogVGhpcyBmaWxlIGNvbnRhaW5zIGZ1bmN0aW9ucyBmb3IgZGVjaW1hbCA8LT4gc3RyaW5nIGNvbnZlcnNpb25zLCBpbmNsdWRpbmcKKyAgIFBFUC0zMTAxIGZvcm1hdHRpbmcgZm9yIG51bWVyaWMgdHlwZXMuICovCisKKworLyoKKyAqIFdvcmsgYXJvdW5kIHRoZSBiZWhhdmlvciBvZiB0b2xvd2VyKCkgYW5kIHN0cmNhc2VjbXAoKSBpbiBjZXJ0YWluCisgKiBsb2NhbGVzLiBGb3IgZXhhbXBsZSwgaW4gdHJfVFIudXRmODoKKyAqCisgKiB0b2xvd2VyKCh1bnNpZ25lZCBjaGFyKSdJJykgPT0gJ0knCisgKgorICogdSBpcyB0aGUgZXhhY3QgdXBwZXJjYXNlIHZlcnNpb24gb2YgbDsgbiBpcyBzdHJsZW4obCkgb3Igc3RybGVuKGwpKzEKKyAqLworc3RhdGljIGlubGluZSBpbnQKK19tcGRfc3RybmVxKGNvbnN0IGNoYXIgKnMsIGNvbnN0IGNoYXIgKmwsIGNvbnN0IGNoYXIgKnUsIHNpemVfdCBuKQoreworICAgIHdoaWxlICgtLW4gIT0gU0laRV9NQVgpIHsKKyAgICAgICAgaWYgKCpzICE9ICpsICYmICpzICE9ICp1KSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBzKys7IHUrKzsgbCsrOworICAgIH0KKworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgbXBkX3NzaXplX3QKK3N0cnRvZXhwKGNvbnN0IGNoYXIgKnMpCit7CisgICAgY2hhciAqZW5kOworICAgIG1wZF9zc2l6ZV90IHJldHZhbDsKKworICAgIGVycm5vID0gMDsKKyAgICByZXR2YWwgPSBtcGRfc3RydG9zc2l6ZShzLCAmZW5kLCAxMCk7CisgICAgaWYgKGVycm5vID09IDAgJiYgISgqcyAhPSAnXDAnICYmICplbmQgPT0gJ1wwJykpCisgICAgICAgIGVycm5vID0gRUlOVkFMOworCisgICAgcmV0dXJuIHJldHZhbDsKK30KKworLyoKKyAqIFNjYW4gJ2xlbicgd29yZHMuIFRoZSBtb3N0IHNpZ25pZmljYW50IHdvcmQgY29udGFpbnMgJ3InIGRpZ2l0cywKKyAqIHRoZSByZW1haW5pbmcgd29yZHMgYXJlIGZ1bGwgd29yZHMuIFNraXAgZHBvaW50LiBUaGUgc3RyaW5nICdzJyBtdXN0CisgKiBjb25zaXN0IG9mIGRpZ2l0cyBhbmQgYW4gb3B0aW9uYWwgc2luZ2xlIGRlY2ltYWwgcG9pbnQgYXQgJ2Rwb2ludCcuCisgKi8KK3N0YXRpYyB2b2lkCitzdHJpbmdfdG9fY29lZmYobXBkX3VpbnRfdCAqZGF0YSwgY29uc3QgY2hhciAqcywgY29uc3QgY2hhciAqZHBvaW50LCBpbnQgciwKKyAgICAgICAgICAgICAgICBzaXplX3QgbGVuKQoreworICAgIGludCBqOworCisgICAgaWYgKHIgPiAwKSB7CisgICAgICAgIGRhdGFbLS1sZW5dID0gMDsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IHI7IGorKywgcysrKSB7CisgICAgICAgICAgICBpZiAocyA9PSBkcG9pbnQpIHMrKzsKKyAgICAgICAgICAgIGRhdGFbbGVuXSA9IDEwICogZGF0YVtsZW5dICsgKCpzIC0gJzAnKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHdoaWxlICgtLWxlbiAhPSBTSVpFX01BWCkgeworICAgICAgICBkYXRhW2xlbl0gPSAwOworICAgICAgICBmb3IgKGogPSAwOyBqIDwgTVBEX1JESUdJVFM7IGorKywgcysrKSB7CisgICAgICAgICAgICBpZiAocyA9PSBkcG9pbnQpIHMrKzsKKyAgICAgICAgICAgIGRhdGFbbGVuXSA9IDEwICogZGF0YVtsZW5dICsgKCpzIC0gJzAnKTsKKyAgICAgICAgfQorICAgIH0KK30KKworLyoKKyAqIFBhcnRpYWxseSB2ZXJpZnkgYSBudW1lcmljIHN0cmluZyBvZiB0aGUgZm9ybToKKyAqCisgKiAgICAgW2NkaWdpdHNdWy5dW2NkaWdpdHNdW2VFXVsrLV1bZWRpZ2l0c10KKyAqCisgKiBJZiBzdWNjZXNzZnVsLCByZXR1cm4gYSBwb2ludGVyIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgZmlyc3QKKyAqIHJlbGV2YW50IGNvZWZmaWNpZW50IGRpZ2l0LiBUaGlzIGRpZ2l0IGlzIGVpdGhlciBub24temVybyBvcgorICogcGFydCBvZiBvbmUgb2YgdGhlIGZvbGxvd2luZyBwYXR0ZXJuczoKKyAqCisgKiAgICAgWyIwXHgwMCIsICIwLlx4MDAiLCAiMC5FIiwgIjAuZSIsICIwRSIsICIwZSJdCisgKgorICogVGhlIGxvY2F0aW9ucyBvZiBhIHNpbmdsZSBvcHRpb25hbCBkb3Qgb3IgaW5kaWNhdG9yIGFyZSBzdG9yZWQKKyAqIGluICdkcG9pbnQnIGFuZCAnZXhwJy4KKyAqCisgKiBUaGUgZW5kIG9mIHRoZSBzdHJpbmcgaXMgc3RvcmVkIGluICdlbmQnLiBJZiBhbiBpbmRpY2F0b3IgW2VFXQorICogb2NjdXJzIHdpdGhvdXQgdHJhaWxpbmcgW2VkaWdpdHNdLCB0aGUgY29uZGl0aW9uIGlzIGNhdWdodAorICogbGF0ZXIgYnkgc3RydG9leHAoKS4KKyAqLworc3RhdGljIGNvbnN0IGNoYXIgKgorc2Nhbl9kcG9pbnRfZXhwKGNvbnN0IGNoYXIgKnMsIGNvbnN0IGNoYXIgKipkcG9pbnQsIGNvbnN0IGNoYXIgKipleHAsCisgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqKmVuZCkKK3sKKyAgICBjb25zdCBjaGFyICpjb2VmZiA9IE5VTEw7CisKKyAgICAqZHBvaW50ID0gTlVMTDsKKyAgICAqZXhwID0gTlVMTDsKKyAgICBmb3IgKDsgKnMgIT0gJ1wwJzsgcysrKSB7CisgICAgICAgIHN3aXRjaCAoKnMpIHsKKyAgICAgICAgY2FzZSAnLic6CisgICAgICAgICAgICBpZiAoKmRwb2ludCAhPSBOVUxMIHx8ICpleHAgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgICpkcG9pbnQgPSBzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJ0UnOiBjYXNlICdlJzoKKyAgICAgICAgICAgIGlmICgqZXhwICE9IE5VTEwpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICAqZXhwID0gczsKKyAgICAgICAgICAgIGlmICgqKHMrMSkgPT0gJysnIHx8ICoocysxKSA9PSAnLScpCisgICAgICAgICAgICAgICAgcysrOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoIWlzZGlnaXQoKHVjaGFyKSpzKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIGlmIChjb2VmZiA9PSBOVUxMICYmICpleHAgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGlmICgqcyA9PSAnMCcpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFpc2RpZ2l0KCh1Y2hhcikqKHMrMSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEoKihzKzEpID09ICcuJyAmJgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNkaWdpdCgodWNoYXIpKihzKzIpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29lZmYgPSBzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgY29lZmYgPSBzOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIH0KKyAgICB9CisKKyAgICAqZW5kID0gczsKKyAgICByZXR1cm4gY29lZmY7Cit9CisKKy8qIHNjYW4gdGhlIHBheWxvYWQgb2YgYSBOYU4gKi8KK3N0YXRpYyBjb25zdCBjaGFyICoKK3NjYW5fcGF5bG9hZChjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICoqZW5kKQoreworICAgIGNvbnN0IGNoYXIgKmNvZWZmOworCisgICAgd2hpbGUgKCpzID09ICcwJykKKyAgICAgICAgcysrOworICAgIGNvZWZmID0gczsKKworICAgIHdoaWxlIChpc2RpZ2l0KCh1Y2hhcikqcykpCisgICAgICAgIHMrKzsKKyAgICAqZW5kID0gczsKKworICAgIHJldHVybiAoKnMgPT0gJ1wwJykgPyBjb2VmZiA6IE5VTEw7Cit9CisKKy8qIGNvbnZlcnQgYSBjaGFyYWN0ZXIgc3RyaW5nIHRvIGEgZGVjaW1hbCAqLwordm9pZAorbXBkX3FzZXRfc3RyaW5nKG1wZF90ICpkZWMsIGNvbnN0IGNoYXIgKnMsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9zc2l6ZV90IHEsIHIsIGxlbjsKKyAgICBjb25zdCBjaGFyICpjb2VmZiwgKmVuZDsKKyAgICBjb25zdCBjaGFyICpkcG9pbnQgPSBOVUxMLCAqZXhwID0gTlVMTDsKKyAgICBzaXplX3QgZGlnaXRzOworICAgIHVpbnQ4X3Qgc2lnbiA9IE1QRF9QT1M7CisKKyAgICBtcGRfc2V0X2ZsYWdzKGRlYywgMCk7CisgICAgZGVjLT5sZW4gPSAwOworICAgIGRlYy0+ZXhwID0gMDsKKworICAgIC8qIHNpZ24gKi8KKyAgICBpZiAoKnMgPT0gJysnKSB7CisgICAgICAgIHMrKzsKKyAgICB9CisgICAgZWxzZSBpZiAoKnMgPT0gJy0nKSB7CisgICAgICAgIG1wZF9zZXRfbmVnYXRpdmUoZGVjKTsKKyAgICAgICAgc2lnbiA9IE1QRF9ORUc7CisgICAgICAgIHMrKzsKKyAgICB9CisKKyAgICBpZiAoX21wZF9zdHJuZXEocywgIm5hbiIsICJOQU4iLCAzKSkgeyAvKiBOYU4gKi8KKyAgICAgICAgcyArPSAzOworICAgICAgICBtcGRfc2V0c3BlY2lhbChkZWMsIHNpZ24sIE1QRF9OQU4pOworICAgICAgICBpZiAoKnMgPT0gJ1wwJykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgLyogdmFsaWRhdGUgcGF5bG9hZDogZGlnaXRzIG9ubHkgKi8KKyAgICAgICAgaWYgKChjb2VmZiA9IHNjYW5fcGF5bG9hZChzLCAmZW5kKSkgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gY29udmVyc2lvbl9lcnJvcjsKKyAgICAgICAgLyogcGF5bG9hZCBjb25zaXN0cyBlbnRpcmVseSBvZiB6ZXJvcyAqLworICAgICAgICBpZiAoKmNvZWZmID09ICdcMCcpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGRpZ2l0cyA9IGVuZCAtIGNvZWZmOworICAgICAgICAvKiBwcmVjID49IDEsIGNsYW1wIGlzIDAgb3IgMSAqLworICAgICAgICBpZiAoZGlnaXRzID4gKHNpemVfdCkoY3R4LT5wcmVjLWN0eC0+Y2xhbXApKQorICAgICAgICAgICAgZ290byBjb252ZXJzaW9uX2Vycm9yOworICAgIH0gLyogc05hTiAqLworICAgIGVsc2UgaWYgKF9tcGRfc3RybmVxKHMsICJzbmFuIiwgIlNOQU4iLCA0KSkgeworICAgICAgICBzICs9IDQ7CisgICAgICAgIG1wZF9zZXRzcGVjaWFsKGRlYywgc2lnbiwgTVBEX1NOQU4pOworICAgICAgICBpZiAoKnMgPT0gJ1wwJykKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgLyogdmFsaWRhdGUgcGF5bG9hZDogZGlnaXRzIG9ubHkgKi8KKyAgICAgICAgaWYgKChjb2VmZiA9IHNjYW5fcGF5bG9hZChzLCAmZW5kKSkgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gY29udmVyc2lvbl9lcnJvcjsKKyAgICAgICAgLyogcGF5bG9hZCBjb25zaXN0cyBlbnRpcmVseSBvZiB6ZXJvcyAqLworICAgICAgICBpZiAoKmNvZWZmID09ICdcMCcpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGRpZ2l0cyA9IGVuZCAtIGNvZWZmOworICAgICAgICBpZiAoZGlnaXRzID4gKHNpemVfdCkoY3R4LT5wcmVjLWN0eC0+Y2xhbXApKQorICAgICAgICAgICAgZ290byBjb252ZXJzaW9uX2Vycm9yOworICAgIH0KKyAgICBlbHNlIGlmIChfbXBkX3N0cm5lcShzLCAiaW5mIiwgIklORiIsIDMpKSB7CisgICAgICAgIHMgKz0gMzsKKyAgICAgICAgaWYgKCpzID09ICdcMCcgfHwgX21wZF9zdHJuZXEocywgImluaXR5IiwgIklOSVRZIiwgNikpIHsKKyAgICAgICAgICAgIC8qIG51bWVyaWMtdmFsdWU6IGluZmluaXR5ICovCisgICAgICAgICAgICBtcGRfc2V0c3BlY2lhbChkZWMsIHNpZ24sIE1QRF9JTkYpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGdvdG8gY29udmVyc2lvbl9lcnJvcjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIC8qIHNjYW4gZm9yIHN0YXJ0IG9mIGNvZWZmaWNpZW50LCBkZWNpbWFsIHBvaW50LCBpbmRpY2F0b3IsIGVuZCAqLworICAgICAgICBpZiAoKGNvZWZmID0gc2Nhbl9kcG9pbnRfZXhwKHMsICZkcG9pbnQsICZleHAsICZlbmQpKSA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBjb252ZXJzaW9uX2Vycm9yOworCisgICAgICAgIC8qIG51bWVyaWMtdmFsdWU6IFtleHBvbmVudC1wYXJ0XSAqLworICAgICAgICBpZiAoZXhwKSB7CisgICAgICAgICAgICAvKiBleHBvbmVudC1wYXJ0ICovCisgICAgICAgICAgICBlbmQgPSBleHA7IGV4cCsrOworICAgICAgICAgICAgZGVjLT5leHAgPSBzdHJ0b2V4cChleHApOworICAgICAgICAgICAgaWYgKGVycm5vKSB7CisgICAgICAgICAgICAgICAgaWYgKCEoZXJybm8gPT0gRVJBTkdFICYmCisgICAgICAgICAgICAgICAgICAgICAoZGVjLT5leHAgPT0gTVBEX1NTSVpFX01BWCB8fAorICAgICAgICAgICAgICAgICAgICAgIGRlYy0+ZXhwID09IE1QRF9TU0laRV9NSU4pKSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBjb252ZXJzaW9uX2Vycm9yOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgICAgIGRpZ2l0cyA9IGVuZCAtIGNvZWZmOworICAgICAgICBpZiAoZHBvaW50KSB7CisgICAgICAgICAgICBzaXplX3QgZnJhY2RpZ2l0cyA9IGVuZC1kcG9pbnQtMTsKKyAgICAgICAgICAgIGlmIChkcG9pbnQgPiBjb2VmZikgZGlnaXRzLS07CisKKyAgICAgICAgICAgIGlmIChmcmFjZGlnaXRzID4gTVBEX01BWF9QUkVDKSB7CisgICAgICAgICAgICAgICAgZ290byBjb252ZXJzaW9uX2Vycm9yOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGRlYy0+ZXhwIDwgTVBEX1NTSVpFX01JTisobXBkX3NzaXplX3QpZnJhY2RpZ2l0cykgeworICAgICAgICAgICAgICAgIGRlYy0+ZXhwID0gTVBEX1NTSVpFX01JTjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGRlYy0+ZXhwIC09IChtcGRfc3NpemVfdClmcmFjZGlnaXRzOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChkaWdpdHMgPiBNUERfTUFYX1BSRUMpIHsKKyAgICAgICAgICAgIGdvdG8gY29udmVyc2lvbl9lcnJvcjsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVjLT5leHAgPiBNUERfRVhQX0lORikgeworICAgICAgICAgICAgZGVjLT5leHAgPSBNUERfRVhQX0lORjsKKyAgICAgICAgfQorICAgICAgICBpZiAoZGVjLT5leHAgPT0gTVBEX1NTSVpFX01JTikgeworICAgICAgICAgICAgZGVjLT5leHAgPSBNUERfU1NJWkVfTUlOKzE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBfbXBkX2lkaXZfd29yZCgmcSwgJnIsIChtcGRfc3NpemVfdClkaWdpdHMsIE1QRF9SRElHSVRTKTsKKworICAgIGxlbiA9IChyID09IDApID8gcSA6IHErMTsKKyAgICBpZiAobGVuID09IDApIHsKKyAgICAgICAgZ290byBjb252ZXJzaW9uX2Vycm9yOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgfQorICAgIGlmICghbXBkX3FyZXNpemUoZGVjLCBsZW4sIHN0YXR1cykpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKGRlYywgTVBEX01hbGxvY19lcnJvciwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkZWMtPmxlbiA9IGxlbjsKKworICAgIHN0cmluZ190b19jb2VmZihkZWMtPmRhdGEsIGNvZWZmLCBkcG9pbnQsIChpbnQpciwgbGVuKTsKKworICAgIG1wZF9zZXRkaWdpdHMoZGVjKTsKKyAgICBtcGRfcWZpbmFsaXplKGRlYywgY3R4LCBzdGF0dXMpOworICAgIHJldHVybjsKKworY29udmVyc2lvbl9lcnJvcjoKKyAgICAvKiBzdGFuZGFyZCB3YW50cyBhIHBvc2l0aXZlIE5hTiAqLworICAgIG1wZF9zZXRlcnJvcihkZWMsIE1QRF9Db252ZXJzaW9uX3N5bnRheCwgc3RhdHVzKTsKK30KKworLyogUHJpbnQgd29yZCB4IHdpdGggbiBkZWNpbWFsIGRpZ2l0cyB0byBzdHJpbmcgcy4gZG90IGlzIGVpdGhlciBOVUxMCisgICBvciB0aGUgbG9jYXRpb24gb2YgYSBkZWNpbWFsIHBvaW50LiAqLworI2RlZmluZSBFWFRSQUNUX0RJR0lUKHMsIHgsIGQsIGRvdCkgXAorICAgICAgICBpZiAocyA9PSBkb3QpICpzKysgPSAnLic7ICpzKysgPSAnMCcgKyAoY2hhcikoeCAvIGQpOyB4ICU9IGQKK3N0YXRpYyBpbmxpbmUgY2hhciAqCit3b3JkX3RvX3N0cmluZyhjaGFyICpzLCBtcGRfdWludF90IHgsIGludCBuLCBjaGFyICpkb3QpCit7CisgICAgc3dpdGNoKG4pIHsKKyNpZmRlZiBDT05GSUdfNjQKKyAgICBjYXNlIDIwOiBFWFRSQUNUX0RJR0lUKHMsIHgsIDEwMDAwMDAwMDAwMDAwMDAwMDAwVUxMLCBkb3QpOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgY2FzZSAxOTogRVhUUkFDVF9ESUdJVChzLCB4LCAxMDAwMDAwMDAwMDAwMDAwMDAwVUxMLCBkb3QpOworICAgIGNhc2UgMTg6IEVYVFJBQ1RfRElHSVQocywgeCwgMTAwMDAwMDAwMDAwMDAwMDAwVUxMLCBkb3QpOworICAgIGNhc2UgMTc6IEVYVFJBQ1RfRElHSVQocywgeCwgMTAwMDAwMDAwMDAwMDAwMDBVTEwsIGRvdCk7CisgICAgY2FzZSAxNjogRVhUUkFDVF9ESUdJVChzLCB4LCAxMDAwMDAwMDAwMDAwMDAwVUxMLCBkb3QpOworICAgIGNhc2UgMTU6IEVYVFJBQ1RfRElHSVQocywgeCwgMTAwMDAwMDAwMDAwMDAwVUxMLCBkb3QpOworICAgIGNhc2UgMTQ6IEVYVFJBQ1RfRElHSVQocywgeCwgMTAwMDAwMDAwMDAwMDBVTEwsIGRvdCk7CisgICAgY2FzZSAxMzogRVhUUkFDVF9ESUdJVChzLCB4LCAxMDAwMDAwMDAwMDAwVUxMLCBkb3QpOworICAgIGNhc2UgMTI6IEVYVFJBQ1RfRElHSVQocywgeCwgMTAwMDAwMDAwMDAwVUxMLCBkb3QpOworICAgIGNhc2UgMTE6IEVYVFJBQ1RfRElHSVQocywgeCwgMTAwMDAwMDAwMDBVTEwsIGRvdCk7CisjZW5kaWYKKyAgICBjYXNlIDEwOiBFWFRSQUNUX0RJR0lUKHMsIHgsIDEwMDAwMDAwMDBVTCwgZG90KTsKKyAgICBjYXNlIDk6ICBFWFRSQUNUX0RJR0lUKHMsIHgsIDEwMDAwMDAwMFVMLCBkb3QpOworICAgIGNhc2UgODogIEVYVFJBQ1RfRElHSVQocywgeCwgMTAwMDAwMDBVTCwgZG90KTsKKyAgICBjYXNlIDc6ICBFWFRSQUNUX0RJR0lUKHMsIHgsIDEwMDAwMDBVTCwgZG90KTsKKyAgICBjYXNlIDY6ICBFWFRSQUNUX0RJR0lUKHMsIHgsIDEwMDAwMFVMLCBkb3QpOworICAgIGNhc2UgNTogIEVYVFJBQ1RfRElHSVQocywgeCwgMTAwMDBVTCwgZG90KTsKKyAgICBjYXNlIDQ6ICBFWFRSQUNUX0RJR0lUKHMsIHgsIDEwMDBVTCwgZG90KTsKKyAgICBjYXNlIDM6ICBFWFRSQUNUX0RJR0lUKHMsIHgsIDEwMFVMLCBkb3QpOworICAgIGNhc2UgMjogIEVYVFJBQ1RfRElHSVQocywgeCwgMTBVTCwgZG90KTsKKyAgICBkZWZhdWx0OiBpZiAocyA9PSBkb3QpICpzKysgPSAnLic7ICpzKysgPSAnMCcgKyAoY2hhcil4OworICAgIH0KKyAKKyAgICAqcyA9ICdcMCc7CisgICAgcmV0dXJuIHM7Cit9CisKKy8qIFByaW50IGV4cG9uZW50IHggdG8gc3RyaW5nIHMuIFVuZGVmaW5lZCBmb3IgTVBEX1NTSVpFX01JTi4gKi8KK3N0YXRpYyBpbmxpbmUgY2hhciAqCitleHBfdG9fc3RyaW5nKGNoYXIgKnMsIG1wZF9zc2l6ZV90IHgpCit7CisgICAgY2hhciBzaWduID0gJysnOworCisgICAgaWYgKHggPCAwKSB7CisgICAgICAgIHNpZ24gPSAnLSc7CisgICAgICAgIHggPSAteDsKKyAgICB9CisgICAgKnMrKyA9IHNpZ247CisKKyAgICByZXR1cm4gd29yZF90b19zdHJpbmcocywgeCwgbXBkX3dvcmRfZGlnaXRzKHgpLCBOVUxMKTsKK30KKworLyogUHJpbnQgdGhlIGNvZWZmaWNpZW50IG9mIGRlYyB0byBzdHJpbmcgcy4gbGVuKGRlYykgPiAwLiAqLworc3RhdGljIGlubGluZSBjaGFyICoKK2NvZWZmX3RvX3N0cmluZyhjaGFyICpzLCBjb25zdCBtcGRfdCAqZGVjKQoreworICAgIG1wZF91aW50X3QgeDsKKyAgICBtcGRfc3NpemVfdCBpOworCisgICAgLyogbW9zdCBzaWduaWZpY2FudCB3b3JkICovCisgICAgeCA9IG1wZF9tc3dvcmQoZGVjKTsKKyAgICBzID0gd29yZF90b19zdHJpbmcocywgeCwgbXBkX3dvcmRfZGlnaXRzKHgpLCBOVUxMKTsKKworICAgIC8qIHJlbWFpbmluZyBmdWxsIHdvcmRzICovCisgICAgZm9yIChpPWRlYy0+bGVuLTI7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIHggPSBkZWMtPmRhdGFbaV07CisgICAgICAgIHMgPSB3b3JkX3RvX3N0cmluZyhzLCB4LCBNUERfUkRJR0lUUywgTlVMTCk7CisgICAgfQorCisgICAgcmV0dXJuIHM7Cit9CisKKy8qIFByaW50IHRoZSBjb2VmZmljaWVudCBvZiBkZWMgdG8gc3RyaW5nIHMuIGxlbihkZWMpID4gMC4gZG90IGlzIGVpdGhlcgorICAgTlVMTCBvciBhIHBvaW50ZXIgdG8gdGhlIGxvY2F0aW9uIG9mIGEgZGVjaW1hbCBwb2ludC4gKi8KK3N0YXRpYyBpbmxpbmUgY2hhciAqCitjb2VmZl90b19zdHJpbmdfZG90KGNoYXIgKnMsIGNoYXIgKmRvdCwgY29uc3QgbXBkX3QgKmRlYykKK3sKKyAgICBtcGRfdWludF90IHg7CisgICAgbXBkX3NzaXplX3QgaTsKKworICAgIC8qIG1vc3Qgc2lnbmlmaWNhbnQgd29yZCAqLworICAgIHggPSBtcGRfbXN3b3JkKGRlYyk7CisgICAgcyA9IHdvcmRfdG9fc3RyaW5nKHMsIHgsIG1wZF93b3JkX2RpZ2l0cyh4KSwgZG90KTsKKworICAgIC8qIHJlbWFpbmluZyBmdWxsIHdvcmRzICovCisgICAgZm9yIChpPWRlYy0+bGVuLTI7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIHggPSBkZWMtPmRhdGFbaV07CisgICAgICAgIHMgPSB3b3JkX3RvX3N0cmluZyhzLCB4LCBNUERfUkRJR0lUUywgZG90KTsKKyAgICB9CisKKyAgICByZXR1cm4gczsKK30KKworLyogRm9ybWF0IHR5cGUgKi8KKyNkZWZpbmUgTVBEX0ZNVF9MT1dFUiAgICAgIDB4MDAwMDAwMDAKKyNkZWZpbmUgTVBEX0ZNVF9VUFBFUiAgICAgIDB4MDAwMDAwMDEKKyNkZWZpbmUgTVBEX0ZNVF9UT1NDSSAgICAgIDB4MDAwMDAwMDIKKyNkZWZpbmUgTVBEX0ZNVF9UT0VORyAgICAgIDB4MDAwMDAwMDQKKyNkZWZpbmUgTVBEX0ZNVF9FWFAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgTVBEX0ZNVF9GSVhFRCAgICAgIDB4MDAwMDAwMTAKKyNkZWZpbmUgTVBEX0ZNVF9QRVJDRU5UICAgIDB4MDAwMDAwMjAKKyNkZWZpbmUgTVBEX0ZNVF9TSUdOX1NQQUNFIDB4MDAwMDAwNDAKKyNkZWZpbmUgTVBEX0ZNVF9TSUdOX1BMVVMgIDB4MDAwMDAwODAKKworLyogRGVmYXVsdCBwbGFjZSBvZiB0aGUgZGVjaW1hbCBwb2ludCBmb3IgTVBEX0ZNVF9UT1NDSSwgTVBEX0ZNVF9FWFAgKi8KKyNkZWZpbmUgTVBEX0RFRkFVTFRfRE9UUExBQ0UgMQorCisvKgorICogU2V0ICpyZXN1bHQgdG8gdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiBhIGRlY2ltYWwuIFJldHVybiB0aGUgbGVuZ3RoCisgKiBvZiAqcmVzdWx0LCBub3QgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyAnXDAnIGNoYXJhY3Rlci4KKyAqCisgKiBGb3JtYXR0aW5nIGlzIGRvbmUgYWNjb3JkaW5nIHRvICdmbGFncycuIEEgcmV0dXJuIHZhbHVlIG9mIC0xIHdpdGggKnJlc3VsdAorICogc2V0IHRvIE5VTEwgaW5kaWNhdGVzIE1QRF9NYWxsb2NfZXJyb3IuCisgKgorICogJ2RwbGFjZScgaXMgdGhlIGRlZmF1bHQgcGxhY2Ugb2YgdGhlIGRlY2ltYWwgcG9pbnQuIEl0IGlzIGFsd2F5cyBzZXQgdG8KKyAqIE1QRF9ERUZBVUxUX0RPVFBMQUNFIGV4Y2VwdCBmb3IgemVyb3MgaW4gY29tYmluYXRpb24gd2l0aCBNUERfRk1UX0VYUC4KKyAqLworc3RhdGljIG1wZF9zc2l6ZV90CitfbXBkX3RvX3N0cmluZyhjaGFyICoqcmVzdWx0LCBjb25zdCBtcGRfdCAqZGVjLCBpbnQgZmxhZ3MsIG1wZF9zc2l6ZV90IGRwbGFjZSkKK3sKKyAgICBjaGFyICpkZWNzdHJpbmcgPSBOVUxMLCAqY3AgPSBOVUxMOworICAgIG1wZF9zc2l6ZV90IGxkaWdpdHM7CisgICAgbXBkX3NzaXplX3QgbWVtID0gMCwgazsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGRlYykpIHsKKworICAgICAgICBtZW0gPSBzaXplb2YgIi1JbmZpbml0eSI7CisgICAgICAgIGlmIChtcGRfaXNuYW4oZGVjKSAmJiBkZWMtPmxlbiA+IDApIHsKKyAgICAgICAgICAgIC8qIGRpYWdub3N0aWMgY29kZSAqLworICAgICAgICAgICAgbWVtICs9IGRlYy0+ZGlnaXRzOworICAgICAgICB9CisgICAgICAgIGNwID0gZGVjc3RyaW5nID0gbXBkX2FsbG9jKG1lbSwgc2l6ZW9mICpkZWNzdHJpbmcpOworICAgICAgICBpZiAoY3AgPT0gTlVMTCkgeworICAgICAgICAgICAgKnJlc3VsdCA9IE5VTEw7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBpZiAobXBkX2lzbmVnYXRpdmUoZGVjKSkgeworICAgICAgICAgICAgKmNwKysgPSAnLSc7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZmxhZ3MmTVBEX0ZNVF9TSUdOX1NQQUNFKSB7CisgICAgICAgICAgICAqY3ArKyA9ICcgJzsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChmbGFncyZNUERfRk1UX1NJR05fUExVUykgeworICAgICAgICAgICAgKmNwKysgPSAnKyc7CisgICAgICAgIH0KKworICAgICAgICBpZiAobXBkX2lzbmFuKGRlYykpIHsKKyAgICAgICAgICAgIGlmIChtcGRfaXNxbmFuKGRlYykpIHsKKyAgICAgICAgICAgICAgICBzdHJjcHkoY3AsICJOYU4iKTsKKyAgICAgICAgICAgICAgICBjcCArPSAzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgc3RyY3B5KGNwLCAic05hTiIpOworICAgICAgICAgICAgICAgIGNwICs9IDQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoZGVjLT5sZW4gPiAwKSB7IC8qIGRpYWdub3N0aWMgY29kZSAqLworICAgICAgICAgICAgICAgIGNwID0gY29lZmZfdG9fc3RyaW5nKGNwLCBkZWMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG1wZF9pc2luZmluaXRlKGRlYykpIHsKKyAgICAgICAgICAgIHN0cmNweShjcCwgIkluZmluaXR5Iik7CisgICAgICAgICAgICBjcCArPSA4OworICAgICAgICB9CisgICAgICAgIGVsc2UgeyAvKiBkZWJ1ZyAqLworICAgICAgICAgICAgYWJvcnQoKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBhc3NlcnQoZGVjLT5sZW4gPiAwKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBGb3IgZWFzaWVyIG1hbmlwdWxhdGlvbiBvZiB0aGUgZGVjaW1hbCBwb2ludCdzIGxvY2F0aW9uCisgICAgICAgICAqIGFuZCB0aGUgZXhwb25lbnQgdGhhdCBpcyBmaW5hbGx5IHByaW50ZWQsIHRoZSBudW1iZXIgaXMKKyAgICAgICAgICogcmVzY2FsZWQgdG8gYSB2aXJ0dWFsIHJlcHJlc2VudGF0aW9uIHdpdGggZXhwID0gMC4gSGVyZQorICAgICAgICAgKiBsZGlnaXRzIGRlbm90ZXMgdGhlIG51bWJlciBvZiBkZWNpbWFsIGRpZ2l0cyB0byB0aGUgbGVmdAorICAgICAgICAgKiBvZiB0aGUgZGVjaW1hbCBwb2ludCBhbmQgcmVtYWlucyBjb25zdGFudCBvbmNlIGluaXRpYWxpemVkLgorICAgICAgICAgKgorICAgICAgICAgKiBkcGxhY2UgaXMgdGhlIGxvY2F0aW9uIG9mIHRoZSBkZWNpbWFsIHBvaW50IHJlbGF0aXZlIHRvCisgICAgICAgICAqIHRoZSBzdGFydCBvZiB0aGUgY29lZmZpY2llbnQuIE5vdGUgdGhhdCAzKSBhbHdheXMgaG9sZHMKKyAgICAgICAgICogd2hlbiBkcGxhY2UgaXMgc2hpZnRlZC4KKyAgICAgICAgICoKKyAgICAgICAgICogICAxKSBsZGlnaXRzIDo9IGRlYy0+ZGlnaXRzIC0gZGVjLT5leHAKKyAgICAgICAgICogICAyKSBkcGxhY2UgIDo9IGxkaWdpdHMgICAgICAgICAgICAoaW5pdGlhbGx5KQorICAgICAgICAgKiAgIDMpIGV4cCAgICAgOj0gbGRpZ2l0cyAtIGRwbGFjZSAgIChpbml0aWFsbHkgZXhwID0gMCkKKyAgICAgICAgICoKKyAgICAgICAgICogICAwLjAwMDAwXy5fX19fLl9fX19fMDAwMDAwLgorICAgICAgICAgKiAgICBeICAgICAgXiAgICBeICAgICAgICAgICBeCisgICAgICAgICAqICAgIHwgICAgICB8ICAgIHwgICAgICAgICAgIHwKKyAgICAgICAgICogICAgfCAgICAgIHwgICAgfCAgICAgICAgICAgYC0gZHBsYWNlID49IGRpZ2l0cworICAgICAgICAgKiAgICB8ICAgICAgfCAgICBgLSBkcGxhY2UgaW4gdGhlIG1pZGRsZSBvZiB0aGUgY29lZmZpY2llbnQKKyAgICAgICAgICogICAgfCAgICAgIGAgZHBsYWNlID0gMSAoYWZ0ZXIgdGhlIGZpcnN0IGNvZWZmaWNpZW50IGRpZ2l0KQorICAgICAgICAgKiAgICBgLSBkcGxhY2UgPD0gMAorICAgICAgICAgKi8KKworICAgICAgICBsZGlnaXRzID0gZGVjLT5kaWdpdHMgKyBkZWMtPmV4cDsKKworICAgICAgICBpZiAoZmxhZ3MmTVBEX0ZNVF9FWFApIHsKKyAgICAgICAgICAgIDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChmbGFncyZNUERfRk1UX0ZJWEVEIHx8IChkZWMtPmV4cCA8PSAwICYmIGxkaWdpdHMgPiAtNikpIHsKKyAgICAgICAgICAgIC8qIE1QRF9GTVRfRklYRUQ6IGFsd2F5cyB1c2UgZml4ZWQgcG9pbnQgbm90YXRpb24uCisgICAgICAgICAgICAgKiBNUERfRk1UX1RPU0NJLCBNUERfRk1UX1RPRU5HOiBmb3IgYSBjZXJ0YWluIHJhbmdlLAorICAgICAgICAgICAgICogb3ZlcnJpZGUgZXhwb25lbnQgbm90YXRpb24uICovCisgICAgICAgICAgICBkcGxhY2UgPSBsZGlnaXRzOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGZsYWdzJk1QRF9GTVRfVE9FTkcpIHsKKyAgICAgICAgICAgIGlmIChtcGRfaXN6ZXJvKGRlYykpIHsKKyAgICAgICAgICAgICAgICAvKiBJZiB0aGUgZXhwb25lbnQgaXMgZGl2aXNpYmxlIGJ5IHRocmVlLAorICAgICAgICAgICAgICAgICAqIGRwbGFjZSA9IDEuIE90aGVyd2lzZSwgbW92ZSBkcGxhY2Ugb25lCisgICAgICAgICAgICAgICAgICogb3IgdHdvIHBsYWNlcyB0byB0aGUgbGVmdC4gKi8KKyAgICAgICAgICAgICAgICBkcGxhY2UgPSAtMSArIG1vZF9tcGRfc3NpemVfdChkZWMtPmV4cCsyLCAzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeyAvKiBsZGlnaXRzLTEgaXMgdGhlIGFkanVzdGVkIGV4cG9uZW50LCB3aGljaAorICAgICAgICAgICAgICAgICogc2hvdWxkIGJlIGRpdmlzaWJsZSBieSB0aHJlZS4gSWYgbm90LCBtb3ZlCisgICAgICAgICAgICAgICAgKiBkcGxhY2Ugb25lIG9yIHR3byBwbGFjZXMgdG8gdGhlIHJpZ2h0LiAqLworICAgICAgICAgICAgICAgIGRwbGFjZSArPSBtb2RfbXBkX3NzaXplX3QobGRpZ2l0cy0xLCAzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qCisgICAgICAgICAqIEJhc2ljIHNwYWNlIHJlcXVpcmVtZW50czoKKyAgICAgICAgICoKKyAgICAgICAgICogWy1dWy5dW2NvZWZmZGlnaXRzXVtFXVstXVtleHBkaWdpdHMrMV1bJV1bJ1wwJ10KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIGRlY2ltYWwgcG9pbnQgbGllcyBvdXRzaWRlIG9mIHRoZSBjb2VmZmljaWVudCBkaWdpdHMsCisgICAgICAgICAqIHNwYWNlIGlzIGFkanVzdGVkIGFjY29yZGluZ2x5LgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKGRwbGFjZSA8PSAwKSB7CisgICAgICAgICAgICBtZW0gPSAtZHBsYWNlICsgZGVjLT5kaWdpdHMgKyAyOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGRwbGFjZSA+PSBkZWMtPmRpZ2l0cykgeworICAgICAgICAgICAgbWVtID0gZHBsYWNlOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbWVtID0gZGVjLT5kaWdpdHM7CisgICAgICAgIH0KKyAgICAgICAgbWVtICs9IChNUERfRVhQRElHSVRTKzErNik7CisKKyAgICAgICAgY3AgPSBkZWNzdHJpbmcgPSBtcGRfYWxsb2MobWVtLCBzaXplb2YgKmRlY3N0cmluZyk7CisgICAgICAgIGlmIChjcCA9PSBOVUxMKSB7CisgICAgICAgICAgICAqcmVzdWx0ID0gTlVMTDsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisKKyAgICAgICAgaWYgKG1wZF9pc25lZ2F0aXZlKGRlYykpIHsKKyAgICAgICAgICAgICpjcCsrID0gJy0nOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGZsYWdzJk1QRF9GTVRfU0lHTl9TUEFDRSkgeworICAgICAgICAgICAgKmNwKysgPSAnICc7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZmxhZ3MmTVBEX0ZNVF9TSUdOX1BMVVMpIHsKKyAgICAgICAgICAgICpjcCsrID0gJysnOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGRwbGFjZSA8PSAwKSB7CisgICAgICAgICAgICAvKiBzcGFjZTogLWRwbGFjZStkZWMtPmRpZ2l0cysyICovCisgICAgICAgICAgICAqY3ArKyA9ICcwJzsKKyAgICAgICAgICAgICpjcCsrID0gJy4nOworICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IC1kcGxhY2U7IGsrKykgeworICAgICAgICAgICAgICAgICpjcCsrID0gJzAnOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY3AgPSBjb2VmZl90b19zdHJpbmcoY3AsIGRlYyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZHBsYWNlID49IGRlYy0+ZGlnaXRzKSB7CisgICAgICAgICAgICAvKiBzcGFjZTogZHBsYWNlICovCisgICAgICAgICAgICBjcCA9IGNvZWZmX3RvX3N0cmluZyhjcCwgZGVjKTsKKyAgICAgICAgICAgIGZvciAoayA9IDA7IGsgPCBkcGxhY2UtZGVjLT5kaWdpdHM7IGsrKykgeworICAgICAgICAgICAgICAgICpjcCsrID0gJzAnOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLyogc3BhY2U6IGRlYy0+ZGlnaXRzKzEgKi8KKyAgICAgICAgICAgIGNwID0gY29lZmZfdG9fc3RyaW5nX2RvdChjcCwgY3ArZHBsYWNlLCBkZWMpOworICAgICAgICB9CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQ29uZGl0aW9ucyBmb3IgcHJpbnRpbmcgYW4gZXhwb25lbnQ6CisgICAgICAgICAqCisgICAgICAgICAqICAgTVBEX0ZNVF9UT1NDSSwgTVBEX0ZNVF9UT0VORzogb25seSBpZiBsZGlnaXRzICE9IGRwbGFjZQorICAgICAgICAgKiAgIE1QRF9GTVRfRklYRUQ6ICAgICAgICAgICAgICAgIG5ldmVyIChsZGlnaXRzID09IGRwbGFjZSkKKyAgICAgICAgICogICBNUERfRk1UX0VYUDogICAgICAgICAgICAgICAgICBhbHdheXMKKyAgICAgICAgICovCisgICAgICAgIGlmIChsZGlnaXRzICE9IGRwbGFjZSB8fCBmbGFncyZNUERfRk1UX0VYUCkgeworICAgICAgICAgICAgLyogc3BhY2U6IGV4cGRpZ2l0cysyICovCisgICAgICAgICAgICAqY3ArKyA9IChmbGFncyZNUERfRk1UX1VQUEVSKSA/ICdFJyA6ICdlJzsKKyAgICAgICAgICAgIGNwID0gZXhwX3RvX3N0cmluZyhjcCwgbGRpZ2l0cy1kcGxhY2UpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZsYWdzJk1QRF9GTVRfUEVSQ0VOVCkgeworICAgICAgICAgICAgKmNwKysgPSAnJSc7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhc3NlcnQoY3AgPCBkZWNzdHJpbmcrbWVtKTsKKyAgICBhc3NlcnQoY3AtZGVjc3RyaW5nIDwgTVBEX1NTSVpFX01BWCk7CisKKyAgICAqY3AgPSAnXDAnOworICAgICpyZXN1bHQgPSBkZWNzdHJpbmc7CisgICAgcmV0dXJuIChtcGRfc3NpemVfdCkoY3AtZGVjc3RyaW5nKTsKK30KKworY2hhciAqCittcGRfdG9fc2NpKGNvbnN0IG1wZF90ICpkZWMsIGludCBmbXQpCit7CisgICAgY2hhciAqcmVzOworICAgIGludCBmbGFncyA9IE1QRF9GTVRfVE9TQ0k7CisKKyAgICBmbGFncyB8PSBmbXQgPyBNUERfRk1UX1VQUEVSIDogTVBEX0ZNVF9MT1dFUjsKKyAgICAodm9pZClfbXBkX3RvX3N0cmluZygmcmVzLCBkZWMsIGZsYWdzLCBNUERfREVGQVVMVF9ET1RQTEFDRSk7CisgICAgcmV0dXJuIHJlczsKK30KKworY2hhciAqCittcGRfdG9fZW5nKGNvbnN0IG1wZF90ICpkZWMsIGludCBmbXQpCit7CisgICAgY2hhciAqcmVzOworICAgIGludCBmbGFncyA9IE1QRF9GTVRfVE9FTkc7CisKKyAgICBmbGFncyB8PSBmbXQgPyBNUERfRk1UX1VQUEVSIDogTVBEX0ZNVF9MT1dFUjsKKyAgICAodm9pZClfbXBkX3RvX3N0cmluZygmcmVzLCBkZWMsIGZsYWdzLCBNUERfREVGQVVMVF9ET1RQTEFDRSk7CisgICAgcmV0dXJuIHJlczsKK30KKworbXBkX3NzaXplX3QKK21wZF90b19zY2lfc2l6ZShjaGFyICoqcmVzLCBjb25zdCBtcGRfdCAqZGVjLCBpbnQgZm10KQoreworICAgIGludCBmbGFncyA9IE1QRF9GTVRfVE9TQ0k7CisKKyAgICBmbGFncyB8PSBmbXQgPyBNUERfRk1UX1VQUEVSIDogTVBEX0ZNVF9MT1dFUjsKKyAgICByZXR1cm4gX21wZF90b19zdHJpbmcocmVzLCBkZWMsIGZsYWdzLCBNUERfREVGQVVMVF9ET1RQTEFDRSk7Cit9CisKK21wZF9zc2l6ZV90CittcGRfdG9fZW5nX3NpemUoY2hhciAqKnJlcywgY29uc3QgbXBkX3QgKmRlYywgaW50IGZtdCkKK3sKKyAgICBpbnQgZmxhZ3MgPSBNUERfRk1UX1RPRU5HOworCisgICAgZmxhZ3MgfD0gZm10ID8gTVBEX0ZNVF9VUFBFUiA6IE1QRF9GTVRfTE9XRVI7CisgICAgcmV0dXJuIF9tcGRfdG9fc3RyaW5nKHJlcywgZGVjLCBmbGFncywgTVBEX0RFRkFVTFRfRE9UUExBQ0UpOworfQorCisvKiBDb3B5IGEgc2luZ2xlIFVURi04IGNoYXIgdG8gZGVzdC4gU2VlOiBUaGUgVW5pY29kZSBTdGFuZGFyZCwgdmVyc2lvbiA1LjIsCisgICBjaGFwdGVyIDMuOTogV2VsbC1mb3JtZWQgVVRGLTggYnl0ZSBzZXF1ZW5jZXMuICovCitzdGF0aWMgaW50CitfbXBkX2NvcHlfdXRmOChjaGFyIGRlc3RbNV0sIGNvbnN0IGNoYXIgKnMpCit7CisgICAgY29uc3QgdWNoYXIgKmNwID0gKGNvbnN0IHVjaGFyICopczsKKyAgICB1Y2hhciBsYiwgdWI7CisgICAgaW50IGNvdW50LCBpOworCisKKyAgICBpZiAoKmNwID09IDApIHsKKyAgICAgICAgLyogZW1wdHkgc3RyaW5nICovCisgICAgICAgIGRlc3RbMF0gPSAnXDAnOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxzZSBpZiAoKmNwIDw9IDB4N2YpIHsKKyAgICAgICAgLyogYXNjaWkgKi8KKyAgICAgICAgZGVzdFswXSA9ICpjcDsKKyAgICAgICAgZGVzdFsxXSA9ICdcMCc7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBlbHNlIGlmICgweGMyIDw9ICpjcCAmJiAqY3AgPD0gMHhkZikgeworICAgICAgICBsYiA9IDB4ODA7IHViID0gMHhiZjsKKyAgICAgICAgY291bnQgPSAyOworICAgIH0KKyAgICBlbHNlIGlmICgqY3AgPT0gMHhlMCkgeworICAgICAgICBsYiA9IDB4YTA7IHViID0gMHhiZjsKKyAgICAgICAgY291bnQgPSAzOworICAgIH0KKyAgICBlbHNlIGlmICgqY3AgPD0gMHhlYykgeworICAgICAgICBsYiA9IDB4ODA7IHViID0gMHhiZjsKKyAgICAgICAgY291bnQgPSAzOworICAgIH0KKyAgICBlbHNlIGlmICgqY3AgPT0gMHhlZCkgeworICAgICAgICBsYiA9IDB4ODA7IHViID0gMHg5ZjsKKyAgICAgICAgY291bnQgPSAzOworICAgIH0KKyAgICBlbHNlIGlmICgqY3AgPD0gMHhlZikgeworICAgICAgICBsYiA9IDB4ODA7IHViID0gMHhiZjsKKyAgICAgICAgY291bnQgPSAzOworICAgIH0KKyAgICBlbHNlIGlmICgqY3AgPT0gMHhmMCkgeworICAgICAgICBsYiA9IDB4OTA7IHViID0gMHhiZjsKKyAgICAgICAgY291bnQgPSA0OworICAgIH0KKyAgICBlbHNlIGlmICgqY3AgPD0gMHhmMykgeworICAgICAgICBsYiA9IDB4ODA7IHViID0gMHhiZjsKKyAgICAgICAgY291bnQgPSA0OworICAgIH0KKyAgICBlbHNlIGlmICgqY3AgPT0gMHhmNCkgeworICAgICAgICBsYiA9IDB4ODA7IHViID0gMHg4ZjsKKyAgICAgICAgY291bnQgPSA0OworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLyogaW52YWxpZCAqLworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIGRlc3RbMF0gPSAqY3ArKzsKKyAgICBpZiAoKmNwIDwgbGIgfHwgdWIgPCAqY3ApIHsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgZGVzdFsxXSA9ICpjcCsrOworICAgIGZvciAoaSA9IDI7IGkgPCBjb3VudDsgaSsrKSB7CisgICAgICAgIGlmICgqY3AgPCAweDgwIHx8IDB4YmYgPCAqY3ApIHsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgZGVzdFtpXSA9ICpjcCsrOworICAgIH0KKyAgICBkZXN0W2ldID0gJ1wwJzsKKworICAgIHJldHVybiBjb3VudDsKKworZXJyb3I6CisgICAgZGVzdFswXSA9ICdcMCc7CisgICAgcmV0dXJuIC0xOworfQorCitpbnQKK21wZF92YWxpZGF0ZV9sY29udihtcGRfc3BlY190ICpzcGVjKQoreworICAgIHNpemVfdCBuOworI2lmIENIQVJfTUFYID09IFNDSEFSX01BWAorICAgIGNvbnN0IGNoYXIgKmNwID0gc3BlYy0+Z3JvdXBpbmc7CisgICAgd2hpbGUgKCpjcCAhPSAnXDAnKSB7CisgICAgICAgIGlmICgqY3ArKyA8IDApIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorICAgIG4gPSBzdHJsZW4oc3BlYy0+ZG90KTsKKyAgICBpZiAobiA9PSAwIHx8IG4gPiA0KSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKHN0cmxlbihzcGVjLT5zZXApID4gNCkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2ludAorbXBkX3BhcnNlX2ZtdF9zdHIobXBkX3NwZWNfdCAqc3BlYywgY29uc3QgY2hhciAqZm10LCBpbnQgY2FwcykKK3sKKyAgICBjaGFyICpjcCA9IChjaGFyICopZm10OworICAgIGludCBoYXZlX2FsaWduID0gMCwgbjsKKworICAgIC8qIGRlZmF1bHRzICovCisgICAgc3BlYy0+bWluX3dpZHRoID0gMDsKKyAgICBzcGVjLT5wcmVjID0gLTE7CisgICAgc3BlYy0+dHlwZSA9IGNhcHMgPyAnRycgOiAnZyc7CisgICAgc3BlYy0+YWxpZ24gPSAnPic7CisgICAgc3BlYy0+c2lnbiA9ICctJzsKKyAgICBzcGVjLT5kb3QgPSAiIjsKKyAgICBzcGVjLT5zZXAgPSAiIjsKKyAgICBzcGVjLT5ncm91cGluZyA9ICIiOworCisKKyAgICAvKiBwcmVzdW1lIHRoYXQgdGhlIGZpcnN0IGNoYXJhY3RlciBpcyBhIFVURi04IGZpbGwgY2hhcmFjdGVyICovCisgICAgaWYgKChuID0gX21wZF9jb3B5X3V0Zjgoc3BlYy0+ZmlsbCwgY3ApKSA8IDApIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyogYWxpZ25tZW50IGRpcmVjdGl2ZSwgcHJlZml4ZWQgYnkgYSBmaWxsIGNoYXJhY3RlciAqLworICAgIGlmICgqY3AgJiYgKCooY3ArbikgPT0gJzwnIHx8ICooY3ArbikgPT0gJz4nIHx8CisgICAgICAgICAgICAgICAgKihjcCtuKSA9PSAnPScgfHwgKihjcCtuKSA9PSAnXicpKSB7CisgICAgICAgIGNwICs9IG47CisgICAgICAgIHNwZWMtPmFsaWduID0gKmNwKys7CisgICAgICAgIGhhdmVfYWxpZ24gPSAxOworICAgIH0gLyogYWxpZ25tZW50IGRpcmVjdGl2ZSAqLworICAgIGVsc2UgeworICAgICAgICAvKiBkZWZhdWx0IGZpbGwgY2hhcmFjdGVyICovCisgICAgICAgIHNwZWMtPmZpbGxbMF0gPSAnICc7CisgICAgICAgIHNwZWMtPmZpbGxbMV0gPSAnXDAnOworICAgICAgICBpZiAoKmNwID09ICc8JyB8fCAqY3AgPT0gJz4nIHx8CisgICAgICAgICAgICAqY3AgPT0gJz0nIHx8ICpjcCA9PSAnXicpIHsKKyAgICAgICAgICAgIHNwZWMtPmFsaWduID0gKmNwKys7CisgICAgICAgICAgICBoYXZlX2FsaWduID0gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIHNpZ24gZm9ybWF0dGluZyAqLworICAgIGlmICgqY3AgPT0gJysnIHx8ICpjcCA9PSAnLScgfHwgKmNwID09ICcgJykgeworICAgICAgICBzcGVjLT5zaWduID0gKmNwKys7CisgICAgfQorCisgICAgLyogemVybyBwYWRkaW5nICovCisgICAgaWYgKCpjcCA9PSAnMCcpIHsKKyAgICAgICAgLyogemVybyBwYWRkaW5nIGltcGxpZXMgYWxpZ25tZW50LCB3aGljaCBzaG91bGQgbm90IGJlCisgICAgICAgICAqIHNwZWNpZmllZCB0d2ljZS4gKi8KKyAgICAgICAgaWYgKGhhdmVfYWxpZ24pIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHNwZWMtPmFsaWduID0gJ3onOworICAgICAgICBzcGVjLT5maWxsWzBdID0gKmNwKys7CisgICAgICAgIHNwZWMtPmZpbGxbMV0gPSAnXDAnOworICAgIH0KKworICAgIC8qIG1pbmltdW0gd2lkdGggKi8KKyAgICBpZiAoaXNkaWdpdCgodWNoYXIpKmNwKSkgeworICAgICAgICBpZiAoKmNwID09ICcwJykgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZXJybm8gPSAwOworICAgICAgICBzcGVjLT5taW5fd2lkdGggPSBtcGRfc3RydG9zc2l6ZShjcCwgJmNwLCAxMCk7CisgICAgICAgIGlmIChlcnJubyA9PSBFUkFOR0UgfHwgZXJybm8gPT0gRUlOVkFMKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIHRob3VzYW5kcyBzZXBhcmF0b3IgKi8KKyAgICBpZiAoKmNwID09ICcsJykgeworICAgICAgICBzcGVjLT5kb3QgPSAiLiI7CisgICAgICAgIHNwZWMtPnNlcCA9ICIsIjsKKyAgICAgICAgc3BlYy0+Z3JvdXBpbmcgPSAiXDAwM1wwMDMiOworICAgICAgICBjcCsrOworICAgIH0KKworICAgIC8qIGZyYWN0aW9uIGRpZ2l0cyBvciBzaWduaWZpY2FudCBkaWdpdHMgKi8KKyAgICBpZiAoKmNwID09ICcuJykgeworICAgICAgICBjcCsrOworICAgICAgICBpZiAoIWlzZGlnaXQoKHVjaGFyKSpjcCkpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGVycm5vID0gMDsKKyAgICAgICAgc3BlYy0+cHJlYyA9IG1wZF9zdHJ0b3NzaXplKGNwLCAmY3AsIDEwKTsKKyAgICAgICAgaWYgKGVycm5vID09IEVSQU5HRSB8fCBlcnJubyA9PSBFSU5WQUwpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgLyogdHlwZSAqLworICAgIGlmICgqY3AgPT0gJ0UnIHx8ICpjcCA9PSAnZScgfHwgKmNwID09ICdGJyB8fCAqY3AgPT0gJ2YnIHx8CisgICAgICAgICpjcCA9PSAnRycgfHwgKmNwID09ICdnJyB8fCAqY3AgPT0gJyUnKSB7CisgICAgICAgIHNwZWMtPnR5cGUgPSAqY3ArKzsKKyAgICB9CisgICAgZWxzZSBpZiAoKmNwID09ICdOJyB8fCAqY3AgPT0gJ24nKSB7CisgICAgICAgIC8qIGxvY2FsZSBzcGVjaWZpYyBjb252ZXJzaW9uICovCisgICAgICAgIHN0cnVjdCBsY29udiAqbGM7CisgICAgICAgIC8qIHNlcGFyYXRvciBoYXMgYWxyZWFkeSBiZWVuIHNwZWNpZmllZCAqLworICAgICAgICBpZiAoKnNwZWMtPnNlcCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgc3BlYy0+dHlwZSA9ICpjcCsrOworICAgICAgICBzcGVjLT50eXBlID0gKHNwZWMtPnR5cGUgPT0gJ04nKSA/ICdHJyA6ICdnJzsKKyAgICAgICAgbGMgPSBsb2NhbGVjb252KCk7CisgICAgICAgIHNwZWMtPmRvdCA9IGxjLT5kZWNpbWFsX3BvaW50OworICAgICAgICBzcGVjLT5zZXAgPSBsYy0+dGhvdXNhbmRzX3NlcDsKKyAgICAgICAgc3BlYy0+Z3JvdXBpbmcgPSBsYy0+Z3JvdXBpbmc7CisgICAgICAgIGlmIChtcGRfdmFsaWRhdGVfbGNvbnYoc3BlYykgPCAwKSB7CisgICAgICAgICAgICByZXR1cm4gMDsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgICAgICB9CisgICAgfQorCisgICAgLyogY2hlY2sgY29ycmVjdG5lc3MgKi8KKyAgICBpZiAoKmNwICE9ICdcMCcpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDE7Cit9CisKKy8qCisgKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyBhc3N1bWUgdGhhdCBzcGVjLT5taW5fd2lkdGggPD0gTVBEX01BWF9QUkVDLCB3aGljaAorICogaXMgbWFkZSBzdXJlIGluIG1wZF9xZm9ybWF0X3NwZWMuIFRoZW4sIGV2ZW4gd2l0aCBhIHNwZWMgdGhhdCBpbnNlcnRzIGEKKyAqIGZvdXItYnl0ZSBzZXBhcmF0b3IgYWZ0ZXIgZWFjaCBkaWdpdCwgbmJ5dGVzIGluIHRoZSBmb2xsb3dpbmcgc3RydWN0CisgKiBjYW5ub3Qgb3ZlcmZsb3cuCisgKi8KKworLyogTXVsdGlieXRlIHN0cmluZyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIG1wZF9zc2l6ZV90IG5ieXRlczsgLyogbGVuZ3RoIGluIGJ5dGVzICovCisgICAgbXBkX3NzaXplX3QgbmNoYXJzOyAvKiBsZW5ndGggaW4gY2hhcnMgKi8KKyAgICBtcGRfc3NpemVfdCBjdXI7ICAgIC8qIGN1cnJlbnQgd3JpdGUgaW5kZXggKi8KKyAgICBjaGFyICpkYXRhOworfSBtcGRfbWJzdHJfdDsKKworc3RhdGljIGlubGluZSB2b2lkCitfbXBkX2Jjb3B5KGNoYXIgKmRlc3QsIGNvbnN0IGNoYXIgKnNyYywgbXBkX3NzaXplX3QgbikKK3sKKyAgICB3aGlsZSAoLS1uID49IDApIHsKKyAgICAgICAgZGVzdFtuXSA9IHNyY1tuXTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21ic3RyX2NvcHlfY2hhcihtcGRfbWJzdHJfdCAqZGVzdCwgY29uc3QgY2hhciAqc3JjLCBtcGRfc3NpemVfdCBuKQoreworICAgIGRlc3QtPm5ieXRlcyArPSBuOworICAgIGRlc3QtPm5jaGFycyArPSAobiA+IDAgPyAxIDogMCk7CisgICAgZGVzdC0+Y3VyIC09IG47CisKKyAgICBpZiAoZGVzdC0+ZGF0YSAhPSBOVUxMKSB7CisgICAgICAgIF9tcGRfYmNvcHkoZGVzdC0+ZGF0YStkZXN0LT5jdXIsIHNyYywgbik7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK19tYnN0cl9jb3B5X2FzY2lpKG1wZF9tYnN0cl90ICpkZXN0LCBjb25zdCBjaGFyICpzcmMsIG1wZF9zc2l6ZV90IG4pCit7CisgICAgZGVzdC0+bmJ5dGVzICs9IG47CisgICAgZGVzdC0+bmNoYXJzICs9IG47CisgICAgZGVzdC0+Y3VyIC09IG47CisKKyAgICBpZiAoZGVzdC0+ZGF0YSAhPSBOVUxMKSB7CisgICAgICAgIF9tcGRfYmNvcHkoZGVzdC0+ZGF0YStkZXN0LT5jdXIsIHNyYywgbik7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK19tYnN0cl9jb3B5X3BhZChtcGRfbWJzdHJfdCAqZGVzdCwgbXBkX3NzaXplX3QgbikKK3sKKyAgICBkZXN0LT5uYnl0ZXMgKz0gbjsKKyAgICBkZXN0LT5uY2hhcnMgKz0gbjsKKyAgICBkZXN0LT5jdXIgLT0gbjsKKworICAgIGlmIChkZXN0LT5kYXRhICE9IE5VTEwpIHsKKyAgICAgICAgY2hhciAqY3AgPSBkZXN0LT5kYXRhICsgZGVzdC0+Y3VyOworICAgICAgICB3aGlsZSAoLS1uID49IDApIHsKKyAgICAgICAgICAgIGNwW25dID0gJzAnOworICAgICAgICB9CisgICAgfQorfQorCisvKgorICogQ29weSBhIG51bWVyaWMgc3RyaW5nIHRvIGRlc3QtPmRhdGEsIGFkZGluZyBzZXBhcmF0b3JzIGluIHRoZSBpbnRlZ2VyCisgKiBwYXJ0IGFjY29yZGluZyB0byBzcGVjLT5ncm91cGluZy4gSWYgbGVhZGluZyB6ZXJvIHBhZGRpbmcgaXMgZW5hYmxlZAorICogYW5kIHRoZSByZXN1bHQgaXMgc21hbGxlciB0aGFuIHNwZWMtPm1pbl93aWR0aCwgY29udGludWUgYWRkaW5nIHplcm9zCisgKiBhbmQgc2VwYXJhdG9ycyB1bnRpbCB0aGUgbWluaW11bSB3aWR0aCBpcyByZWFjaGVkLgorICoKKyAqIFRoZSBmaW5hbCBsZW5ndGggb2YgZGVzdC0+ZGF0YSBpcyBzdG9yZWQgaW4gZGVzdC0+bmJ5dGVzLiBUaGUgbnVtYmVyCisgKiBvZiBVVEYtOCBjaGFyYWN0ZXJzIGlzIHN0b3JlZCBpbiBkZXN0LT5uY2hhcnMuCisgKgorICogRmlyc3QgcnVuIChkZXN0LT5kYXRhID09IE5VTEwpOiBkZXRlcm1pbmUgdGhlIGxlbmd0aCBvZiB0aGUgcmVzdWx0CisgKiBzdHJpbmcgYW5kIHN0b3JlIGl0IGluIGRlc3QtPm5ieXRlcy4KKyAqCisgKiBTZWNvbmQgcnVuICh3cml0ZSB0byBkZXN0LT5kYXRhKTogZGF0YSBpcyB3cml0dGVuIGluIGNodW5rcyBhbmQgaW4KKyAqIHJldmVyc2Ugb3JkZXIsIHN0YXJ0aW5nIHdpdGggdGhlIHJlc3Qgb2YgdGhlIG51bWVyaWMgc3RyaW5nLgorICovCitzdGF0aWMgdm9pZAorX21wZF9hZGRfc2VwX2RvdChtcGRfbWJzdHJfdCAqZGVzdCwKKyAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc2lnbiwgLyogbG9jYXRpb24gb2Ygb3B0aW9uYWwgc2lnbiAqLworICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzcmMsIG1wZF9zc2l6ZV90IG5fc3JjLCAvKiBpbnRlZ2VyIHBhcnQgYW5kIGxlbmd0aCAqLworICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpkb3QsIC8qIGxvY2F0aW9uIG9mIG9wdGlvbmFsIGRlY2ltYWwgcG9pbnQgKi8KKyAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVzdCwgbXBkX3NzaXplX3Qgbl9yZXN0LCAvKiByZW1haW5pbmcgcGFydCBhbmQgbGVuZ3RoICovCisgICAgICAgICAgICAgICAgIGNvbnN0IG1wZF9zcGVjX3QgKnNwZWMpCit7CisgICAgbXBkX3NzaXplX3Qgbl9zZXAsIG5fc2lnbiwgY29uc3VtZTsKKyAgICBjb25zdCBjaGFyICpnOworICAgIGludCBwYWQgPSAwOworCisgICAgbl9zaWduID0gc2lnbiA/IDEgOiAwOworICAgIG5fc2VwID0gKG1wZF9zc2l6ZV90KXN0cmxlbihzcGVjLT5zZXApOworICAgIC8qIEluaXRpYWwgd3JpdGUgaW5kZXg6IHNldCB0byBsb2NhdGlvbiBvZiAnXDAnIGluIHRoZSBvdXRwdXQgc3RyaW5nLgorICAgICAqIElycmVsZXZhbnQgZm9yIHRoZSBmaXJzdCBydW4uICovCisgICAgZGVzdC0+Y3VyID0gZGVzdC0+bmJ5dGVzOworICAgIGRlc3QtPm5ieXRlcyA9IGRlc3QtPm5jaGFycyA9IDA7CisKKyAgICBfbWJzdHJfY29weV9hc2NpaShkZXN0LCByZXN0LCBuX3Jlc3QpOworCisgICAgaWYgKGRvdCkgeworICAgICAgICBfbWJzdHJfY29weV9jaGFyKGRlc3QsIGRvdCwgKG1wZF9zc2l6ZV90KXN0cmxlbihkb3QpKTsKKyAgICB9CisKKyAgICBnID0gc3BlYy0+Z3JvdXBpbmc7CisgICAgY29uc3VtZSA9ICpnOworICAgIHdoaWxlICgxKSB7CisgICAgICAgIC8qIElmIHRoZSBncm91cCBsZW5ndGggaXMgMCBvciBDSEFSX01BWCBvciBncmVhdGVyIHRoYW4gdGhlCisgICAgICAgICAqIG51bWJlciBvZiBzb3VyY2UgYnl0ZXMsIGNvbnN1bWUgYWxsIHJlbWFpbmluZyBieXRlcy4gKi8KKyAgICAgICAgaWYgKCpnID09IDAgfHwgKmcgPT0gQ0hBUl9NQVggfHwgY29uc3VtZSA+IG5fc3JjKSB7CisgICAgICAgICAgICBjb25zdW1lID0gbl9zcmM7CisgICAgICAgIH0KKyAgICAgICAgbl9zcmMgLT0gY29uc3VtZTsKKyAgICAgICAgaWYgKHBhZCkgeworICAgICAgICAgICAgX21ic3RyX2NvcHlfcGFkKGRlc3QsIGNvbnN1bWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgX21ic3RyX2NvcHlfYXNjaWkoZGVzdCwgc3JjK25fc3JjLCBjb25zdW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuX3NyYyA9PSAwKSB7CisgICAgICAgICAgICAvKiBFaXRoZXIgdGhlIHJlYWwgc291cmNlIG9mIGludHBhcnQgZGlnaXRzIG9yIHRoZSB2aXJ0dWFsCisgICAgICAgICAgICAgKiBzb3VyY2Ugb2YgcGFkZGluZyB6ZXJvcyBpcyBleGhhdXN0ZWQuICovCisgICAgICAgICAgICBpZiAoc3BlYy0+YWxpZ24gPT0gJ3onICYmCisgICAgICAgICAgICAgICAgZGVzdC0+bmNoYXJzICsgbl9zaWduIDwgc3BlYy0+bWluX3dpZHRoKSB7CisgICAgICAgICAgICAgICAgLyogWmVybyBwYWRkaW5nIGlzIHNldCBhbmQgbGVuZ3RoIDwgbWluX3dpZHRoOgorICAgICAgICAgICAgICAgICAqIEdlbmVyYXRlIG5fc3JjIGFkZGl0aW9uYWwgY2hhcmFjdGVycy4gKi8KKyAgICAgICAgICAgICAgICBuX3NyYyA9IHNwZWMtPm1pbl93aWR0aCAtIChkZXN0LT5uY2hhcnMgKyBuX3NpZ24pOworICAgICAgICAgICAgICAgIC8qIE5leHQgaXRlcmF0aW9uOgorICAgICAgICAgICAgICAgICAqICAgY2FzZSAqZyA9PSAwIHx8ICpnID09IENIQVJfTUFYOgorICAgICAgICAgICAgICAgICAqICAgICAgY29uc3VtZSBhbGwgcGFkZGluZyBjaGFyYWN0ZXJzCisgICAgICAgICAgICAgICAgICogICBjYXNlIGNvbnN1bWUgPCBnKjoKKyAgICAgICAgICAgICAgICAgKiAgICAgIGZpbGwgcmVtYWluZGVyIG9mIGN1cnJlbnQgZ3JvdXAKKyAgICAgICAgICAgICAgICAgKiAgIGNhc2UgY29uc3VtZSA9PSBnKgorICAgICAgICAgICAgICAgICAqICAgICAgY29weWluZyBpcyBhIG5vLW9wICovCisgICAgICAgICAgICAgICAgY29uc3VtZSA9ICpnIC0gY29uc3VtZTsKKyAgICAgICAgICAgICAgICAvKiBTd2l0Y2ggb24gdmlydHVhbCBzb3VyY2Ugb2YgemVyb3MuICovCisgICAgICAgICAgICAgICAgcGFkID0gMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG5fc2VwID4gMCkgeworICAgICAgICAgICAgLyogSWYgcGFkZGluZyBpcyBzd2l0Y2hlZCBvbiwgc2VwYXJhdG9ycyBhcmUgY291bnRlZAorICAgICAgICAgICAgICogYXMgcGFkZGluZyBjaGFyYWN0ZXJzLiBUaGlzIHJ1bGUgZG9lcyBub3QgYXBwbHkgaWYKKyAgICAgICAgICAgICAqIHRoZSBzZXBhcmF0b3Igd291bGQgYmUgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUKKyAgICAgICAgICAgICAqIHJlc3VsdCBzdHJpbmcuICovCisgICAgICAgICAgICBpZiAocGFkICYmIG5fc3JjID4gMSkgbl9zcmMgLT0gMTsKKyAgICAgICAgICAgIF9tYnN0cl9jb3B5X2NoYXIoZGVzdCwgc3BlYy0+c2VwLCBuX3NlcCk7CisgICAgICAgIH0KKworICAgICAgICAvKiBJZiBub24tTlVMLCB1c2UgdGhlIG5leHQgdmFsdWUgZm9yIGdyb3VwaW5nLiAqLworICAgICAgICBpZiAoKmcgJiYgKihnKzEpKSBnKys7CisgICAgICAgIGNvbnN1bWUgPSAqZzsKKyAgICB9CisKKyAgICBpZiAoc2lnbikgeworICAgICAgICBfbWJzdHJfY29weV9hc2NpaShkZXN0LCBzaWduLCAxKTsKKyAgICB9CisKKyAgICBpZiAoZGVzdC0+ZGF0YSkgeworICAgICAgICBkZXN0LT5kYXRhW2Rlc3QtPm5ieXRlc10gPSAnXDAnOworICAgIH0KK30KKworLyoKKyAqIENvbnZlcnQgYSBudW1lcmljLXN0cmluZyB0byBpdHMgbG9jYWxlLXNwZWNpZmljIGFwcGVhcmFuY2UuCisgKiBUaGUgc3RyaW5nIG11c3QgaGF2ZSBvbmUgb2YgdGhlc2UgZm9ybXM6CisgKgorICogICAgIDEpIFtzaWduXSBkaWdpdHMgW2V4cG9uZW50LXBhcnRdCisgKiAgICAgMikgW3NpZ25dIGRpZ2l0cyAnLicgW2RpZ2l0c10gW2V4cG9uZW50LXBhcnRdCisgKgorICogTm90IGFsbG93ZWQsIHNpbmNlIF9tcGRfdG9fc3RyaW5nKCkgbmV2ZXIgcmV0dXJucyB0aGlzIGZvcm06CisgKgorICogICAgIDMpIFtzaWduXSAnLicgZGlnaXRzIFtleHBvbmVudC1wYXJ0XQorICogCisgKiBJbnB1dDogcmVzdWx0LT5kYXRhIDo9IG9yaWdpbmFsIG51bWVyaWMgc3RyaW5nIChBU0NJSSkKKyAqICAgICAgICByZXN1bHQtPmJ5dGVzIDo9IHN0cmxlbihyZXN1bHQtPmRhdGEpCisgKiAgICAgICAgcmVzdWx0LT5uY2hhcnMgOj0gc3RybGVuKHJlc3VsdC0+ZGF0YSkKKyAqCisgKiBPdXRwdXQ6IHJlc3VsdC0+ZGF0YSA6PSBtb2RpZmllZCBvciBvcmlnaW5hbCBzdHJpbmcKKyAqICAgICAgICAgcmVzdWx0LT5ieXRlcyA6PSBzdHJsZW4ocmVzdWx0LT5kYXRhKQorICogICAgICAgICByZXN1bHQtPm5jaGFycyA6PSBudW1iZXIgb2YgY2hhcmFjdGVycyAocG9zc2libHkgVVRGLTgpCisgKi8KK3N0YXRpYyBpbnQKK19tcGRfYXBwbHlfbGNvbnYobXBkX21ic3RyX3QgKnJlc3VsdCwgY29uc3QgbXBkX3NwZWNfdCAqc3BlYywgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBjb25zdCBjaGFyICpzaWduID0gTlVMTCwgKmludHBhcnQgPSBOVUxMLCAqZG90ID0gTlVMTDsKKyAgICBjb25zdCBjaGFyICpyZXN0LCAqZHA7CisgICAgY2hhciAqZGVjc3RyaW5nOworICAgIG1wZF9zc2l6ZV90IG5faW50LCBuX3Jlc3Q7CisKKyAgICAvKiBvcmlnaW5hbCBudW1lcmljIHN0cmluZyAqLworICAgIGRwID0gcmVzdWx0LT5kYXRhOworCisgICAgLyogc2lnbiAqLworICAgIGlmICgqZHAgPT0gJysnIHx8ICpkcCA9PSAnLScgfHwgKmRwID09ICcgJykgeworICAgICAgICBzaWduID0gZHArKzsKKyAgICB9CisgICAgLyogaW50ZWdlciBwYXJ0ICovCisgICAgYXNzZXJ0KGlzZGlnaXQoKHVjaGFyKSpkcCkpOworICAgIGludHBhcnQgPSBkcCsrOworICAgIHdoaWxlIChpc2RpZ2l0KCh1Y2hhcikqZHApKSB7CisgICAgICAgIGRwKys7CisgICAgfQorICAgIG5faW50ID0gKG1wZF9zc2l6ZV90KShkcC1pbnRwYXJ0KTsKKyAgICAvKiBkZWNpbWFsIHBvaW50ICovCisgICAgaWYgKCpkcCA9PSAnLicpIHsKKyAgICAgICAgZHArKzsgZG90ID0gc3BlYy0+ZG90OworICAgIH0KKyAgICAvKiByZXN0ICovCisgICAgcmVzdCA9IGRwOworICAgIG5fcmVzdCA9IHJlc3VsdC0+bmJ5dGVzIC0gKG1wZF9zc2l6ZV90KShkcC1yZXN1bHQtPmRhdGEpOworCisgICAgaWYgKGRvdCA9PSBOVUxMICYmICgqc3BlYy0+c2VwID09ICdcMCcgfHwgKnNwZWMtPmdyb3VwaW5nID09ICdcMCcpKSB7CisgICAgICAgIC8qIF9tcGRfYWRkX3NlcF9kb3QoKSB3b3VsZCBub3QgY2hhbmdlIGFueXRoaW5nICovCisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIC8qIERldGVybWluZSB0aGUgc2l6ZSBvZiB0aGUgbmV3IGRlY2ltYWwgc3RyaW5nIGFmdGVyIGluc2VydGluZyB0aGUKKyAgICAgKiBkZWNpbWFsIHBvaW50LCBvcHRpb25hbCBzZXBhcmF0b3JzIGFuZCBvcHRpb25hbCBwYWRkaW5nLiAqLworICAgIGRlY3N0cmluZyA9IHJlc3VsdC0+ZGF0YTsKKyAgICByZXN1bHQtPmRhdGEgPSBOVUxMOworICAgIF9tcGRfYWRkX3NlcF9kb3QocmVzdWx0LCBzaWduLCBpbnRwYXJ0LCBuX2ludCwgZG90LAorICAgICAgICAgICAgICAgICAgICAgcmVzdCwgbl9yZXN0LCBzcGVjKTsKKworICAgIHJlc3VsdC0+ZGF0YSA9IG1wZF9hbGxvYyhyZXN1bHQtPm5ieXRlcysxLCAxKTsKKyAgICBpZiAocmVzdWx0LT5kYXRhID09IE5VTEwpIHsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfTWFsbG9jX2Vycm9yOworICAgICAgICBtcGRfZnJlZShkZWNzdHJpbmcpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKiBQZXJmb3JtIGFjdHVhbCB3cml0ZXMuICovCisgICAgX21wZF9hZGRfc2VwX2RvdChyZXN1bHQsIHNpZ24sIGludHBhcnQsIG5faW50LCBkb3QsCisgICAgICAgICAgICAgICAgICAgICByZXN0LCBuX3Jlc3QsIHNwZWMpOworCisgICAgbXBkX2ZyZWUoZGVjc3RyaW5nKTsKKyAgICByZXR1cm4gMTsKK30KKworLyogQWRkIHBhZGRpbmcgdG8gdGhlIGZvcm1hdHRlZCBzdHJpbmcgaWYgbmVjZXNzYXJ5LiAqLworc3RhdGljIGludAorX21wZF9hZGRfcGFkKG1wZF9tYnN0cl90ICpyZXN1bHQsIGNvbnN0IG1wZF9zcGVjX3QgKnNwZWMsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKHJlc3VsdC0+bmNoYXJzIDwgc3BlYy0+bWluX3dpZHRoKSB7CisgICAgICAgIG1wZF9zc2l6ZV90IGFkZF9jaGFycywgYWRkX2J5dGVzOworICAgICAgICBzaXplX3QgbHBhZCA9IDAsIHJwYWQgPSAwOworICAgICAgICBzaXplX3Qgbl9maWxsLCBsZW4sIGksIGo7CisgICAgICAgIGNoYXIgYWxpZ24gPSBzcGVjLT5hbGlnbjsKKyAgICAgICAgdWludDhfdCBlcnIgPSAwOworICAgICAgICBjaGFyICpjcDsKKworICAgICAgICBuX2ZpbGwgPSBzdHJsZW4oc3BlYy0+ZmlsbCk7CisgICAgICAgIGFkZF9jaGFycyA9IChzcGVjLT5taW5fd2lkdGggLSByZXN1bHQtPm5jaGFycyk7CisgICAgICAgIC8qIG1heCB2YWx1ZTogTVBEX01BWF9QUkVDICogNCAqLworICAgICAgICBhZGRfYnl0ZXMgPSBhZGRfY2hhcnMgKiAobXBkX3NzaXplX3Qpbl9maWxsOworCisgICAgICAgIGNwID0gcmVzdWx0LT5kYXRhID0gbXBkX3JlYWxsb2MocmVzdWx0LT5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0+bmJ5dGVzK2FkZF9ieXRlcysxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAqcmVzdWx0LT5kYXRhLCAmZXJyKTsKKyAgICAgICAgaWYgKGVycikgeworICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfTWFsbG9jX2Vycm9yOworICAgICAgICAgICAgbXBkX2ZyZWUocmVzdWx0LT5kYXRhKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGFsaWduID09ICd6JykgeworICAgICAgICAgICAgYWxpZ24gPSAnPSc7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYWxpZ24gPT0gJzwnKSB7CisgICAgICAgICAgICBycGFkID0gYWRkX2NoYXJzOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGFsaWduID09ICc+JyB8fCBhbGlnbiA9PSAnPScpIHsKKyAgICAgICAgICAgIGxwYWQgPSBhZGRfY2hhcnM7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7IC8qIGFsaWduID09ICdeJyAqLworICAgICAgICAgICAgbHBhZCA9IGFkZF9jaGFycy8yOworICAgICAgICAgICAgcnBhZCA9IGFkZF9jaGFycy1scGFkOworICAgICAgICB9CisKKyAgICAgICAgbGVuID0gcmVzdWx0LT5uYnl0ZXM7CisgICAgICAgIGlmIChhbGlnbiA9PSAnPScgJiYgKCpjcCA9PSAnLScgfHwgKmNwID09ICcrJyB8fCAqY3AgPT0gJyAnKSkgeworICAgICAgICAgICAgLyogbGVhdmUgc2lnbiBpbiB0aGUgbGVhZGluZyBwb3NpdGlvbiAqLworICAgICAgICAgICAgY3ArKzsgbGVuLS07CisgICAgICAgIH0KKworICAgICAgICBtZW1tb3ZlKGNwK25fZmlsbCpscGFkLCBjcCwgbGVuKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGxwYWQ7IGkrKykgeworICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IG5fZmlsbDsgaisrKSB7CisgICAgICAgICAgICAgICAgY3BbaSpuX2ZpbGwral0gPSBzcGVjLT5maWxsW2pdOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNwICs9IChuX2ZpbGwqbHBhZCArIGxlbik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBycGFkOyBpKyspIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBuX2ZpbGw7IGorKykgeworICAgICAgICAgICAgICAgIGNwW2kqbl9maWxsK2pdID0gc3BlYy0+ZmlsbFtqXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdC0+bmJ5dGVzICs9IGFkZF9ieXRlczsKKyAgICAgICAgcmVzdWx0LT5uY2hhcnMgKz0gYWRkX2NoYXJzOworICAgICAgICByZXN1bHQtPmRhdGFbcmVzdWx0LT5uYnl0ZXNdID0gJ1wwJzsKKyAgICB9CisKKyAgICByZXR1cm4gMTsKK30KKworLyogUm91bmQgYSBudW1iZXIgdG8gcHJlYyBkaWdpdHMuIFRoZSBhZGp1c3RlZCBleHBvbmVudCBzdGF5cyB0aGUgc2FtZQorICAgb3IgaW5jcmVhc2VzIGJ5IG9uZSBpZiByb3VuZGluZyB1cCBjcm9zc2VzIGEgcG93ZXIgb2YgdGVuIGJvdW5kYXJ5LgorICAgSWYgcmVzdWx0LT5kaWdpdHMgd291bGQgZXhjZWVkIE1QRF9NQVhfUFJFQysxLCBNUERfSW52YWxpZF9vcGVyYXRpb24KKyAgIGlzIHNldCBhbmQgdGhlIHJlc3VsdCBpcyBOYU4uICovCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfcm91bmQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9zc2l6ZV90IHByZWMsCisgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfc3NpemVfdCBleHAgPSBhLT5leHAgKyBhLT5kaWdpdHMgLSBwcmVjOworCisgICAgaWYgKHByZWMgPD0gMCkgeworICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICAgICAgcmV0dXJuOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgfQorICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpIHx8IG1wZF9pc3plcm8oYSkpIHsKKyAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgICAgICByZXR1cm47IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9CisKKyAgICBtcGRfcXJlc2NhbGVfZm10KHJlc3VsdCwgYSwgZXhwLCBjdHgsIHN0YXR1cyk7CisgICAgaWYgKHJlc3VsdC0+ZGlnaXRzID4gcHJlYykgeworICAgICAgICBtcGRfcXJlc2NhbGVfZm10KHJlc3VsdCwgcmVzdWx0LCBleHArMSwgY3R4LCBzdGF0dXMpOworICAgIH0KK30KKworLyoKKyAqIFJldHVybiB0aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIG1wZF90LCBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvICdzcGVjJy4KKyAqIFRoZSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBpcyBhc3N1bWVkIHRvIGJlIHZhbGlkLiBNZW1vcnkgZXJyb3JzIGFyZSBpbmRpY2F0ZWQKKyAqIGFzIHVzdWFsLiBUaGlzIGZ1bmN0aW9uIGlzIHF1aWV0LgorICovCitjaGFyICoKK21wZF9xZm9ybWF0X3NwZWMoY29uc3QgbXBkX3QgKmRlYywgY29uc3QgbXBkX3NwZWNfdCAqc3BlYywKKyAgICAgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF91aW50X3QgZHRbTVBEX01JTkFMTE9DX01BWF07CisgICAgbXBkX3QgdG1wID0ge01QRF9TVEFUSUN8TVBEX1NUQVRJQ19EQVRBLDAsMCwwLE1QRF9NSU5BTExPQ19NQVgsZHR9OworICAgIG1wZF9zc2l6ZV90IGRwbGFjZSA9IE1QRF9ERUZBVUxUX0RPVFBMQUNFOworICAgIG1wZF9tYnN0cl90IHJlc3VsdDsKKyAgICBtcGRfc3BlY190IHN0YWNrc3BlYzsKKyAgICBjaGFyIHR5cGUgPSBzcGVjLT50eXBlOworICAgIGludCBmbGFncyA9IDA7CisKKworICAgIGlmIChzcGVjLT5taW5fd2lkdGggPiBNUERfTUFYX1BSRUMpIHsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfSW52YWxpZF9vcGVyYXRpb247CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmIChpc3VwcGVyKCh1Y2hhcil0eXBlKSkgeworICAgICAgICB0eXBlID0gdG9sb3dlcigodWNoYXIpdHlwZSk7CisgICAgICAgIGZsYWdzIHw9IE1QRF9GTVRfVVBQRVI7CisgICAgfQorICAgIGlmIChzcGVjLT5zaWduID09ICcgJykgeworICAgICAgICBmbGFncyB8PSBNUERfRk1UX1NJR05fU1BBQ0U7CisgICAgfQorICAgIGVsc2UgaWYgKHNwZWMtPnNpZ24gPT0gJysnKSB7CisgICAgICAgIGZsYWdzIHw9IE1QRF9GTVRfU0lHTl9QTFVTOworICAgIH0KKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGRlYykpIHsKKyAgICAgICAgaWYgKHNwZWMtPmFsaWduID09ICd6JykgeworICAgICAgICAgICAgc3RhY2tzcGVjID0gKnNwZWM7CisgICAgICAgICAgICBzdGFja3NwZWMuZmlsbFswXSA9ICcgJzsKKyAgICAgICAgICAgIHN0YWNrc3BlYy5maWxsWzFdID0gJ1wwJzsKKyAgICAgICAgICAgIHN0YWNrc3BlYy5hbGlnbiA9ICc+JzsKKyAgICAgICAgICAgIHNwZWMgPSAmc3RhY2tzcGVjOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICB1aW50MzJfdCB3b3Jrc3RhdHVzID0gMDsKKyAgICAgICAgbXBkX3NzaXplX3QgcHJlYzsKKworICAgICAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICAgICAgY2FzZSAnZyc6IGZsYWdzIHw9IE1QRF9GTVRfVE9TQ0k7IGJyZWFrOworICAgICAgICBjYXNlICdlJzogZmxhZ3MgfD0gTVBEX0ZNVF9FWFA7IGJyZWFrOworICAgICAgICBjYXNlICclJzogZmxhZ3MgfD0gTVBEX0ZNVF9QRVJDRU5UOworICAgICAgICAgICAgICAgICAgaWYgKCFtcGRfcWNvcHkoJnRtcCwgZGVjLCBzdGF0dXMpKSB7CisgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICB0bXAuZXhwICs9IDI7CisgICAgICAgICAgICAgICAgICBkZWMgPSAmdG1wOworICAgICAgICAgICAgICAgICAgdHlwZSA9ICdmJzsgLyogZmFsbCB0aHJvdWdoICovCisgICAgICAgIGNhc2UgJ2YnOiBmbGFncyB8PSBNUERfRk1UX0ZJWEVEOyBicmVhazsKKyAgICAgICAgZGVmYXVsdDogYWJvcnQoKTsgLyogZGVidWc6IEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICAgICAgfQorCisgICAgICAgIGlmIChzcGVjLT5wcmVjID49IDApIHsKKyAgICAgICAgICAgIGlmIChzcGVjLT5wcmVjID4gTVBEX01BWF9QUkVDKSB7CisgICAgICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfSW52YWxpZF9vcGVyYXRpb247CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgICAgICBjYXNlICdnJzoKKyAgICAgICAgICAgICAgICBwcmVjID0gKHNwZWMtPnByZWMgPT0gMCkgPyAxIDogc3BlYy0+cHJlYzsKKyAgICAgICAgICAgICAgICBpZiAoZGVjLT5kaWdpdHMgPiBwcmVjKSB7CisgICAgICAgICAgICAgICAgICAgIF9tcGRfcm91bmQoJnRtcCwgZGVjLCBwcmVjLCBjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJndvcmtzdGF0dXMpOworICAgICAgICAgICAgICAgICAgICBkZWMgPSAmdG1wOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2UnOgorICAgICAgICAgICAgICAgIGlmIChtcGRfaXN6ZXJvKGRlYykpIHsKKyAgICAgICAgICAgICAgICAgICAgZHBsYWNlID0gMS1zcGVjLT5wcmVjOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgX21wZF9yb3VuZCgmdG1wLCBkZWMsIHNwZWMtPnByZWMrMSwgY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ3b3Jrc3RhdHVzKTsKKyAgICAgICAgICAgICAgICAgICAgZGVjID0gJnRtcDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdmJzoKKyAgICAgICAgICAgICAgICBtcGRfcXJlc2NhbGUoJnRtcCwgZGVjLCAtc3BlYy0+cHJlYywgY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd29ya3N0YXR1cyk7CisgICAgICAgICAgICAgICAgZGVjID0gJnRtcDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmICh0eXBlID09ICdmJykgeworICAgICAgICAgICAgaWYgKG1wZF9pc3plcm8oZGVjKSAmJiBkZWMtPmV4cCA+IDApIHsKKyAgICAgICAgICAgICAgICBtcGRfcXJlc2NhbGUoJnRtcCwgZGVjLCAwLCBjdHgsICZ3b3Jrc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBkZWMgPSAmdG1wOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKHdvcmtzdGF0dXMmTVBEX0Vycm9ycykgeworICAgICAgICAgICAgKnN0YXR1cyB8PSAod29ya3N0YXR1cyZNUERfRXJyb3JzKTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKgorICAgICAqIEF0IHRoaXMgcG9pbnQsIGZvciBhbGwgc2NhbGVkIG9yIG5vbi1zY2FsZWQgZGVjaW1hbHM6CisgICAgICogICAxKSAxIDw9IGRpZ2l0cyA8PSBNQVhfUFJFQysxCisgICAgICogICAyKSBhZGpleHAoc2NhbGVkKSA9IGFkamV4cChvcmlnKSBbKzFdCisgICAgICogICAzKSAgIGNhc2UgJ2cnOiBNSU5fRVRJTlkgPD0gZXhwIDw9IE1BWF9FTUFYKzEKKyAgICAgKiAgICAgICAgY2FzZSAnZSc6IE1JTl9FVElOWS1NQVhfUFJFQyA8PSBleHAgPD0gTUFYX0VNQVgrMQorICAgICAqICAgICAgICBjYXNlICdmJzogTUlOX0VUSU5ZIDw9IGV4cCA8PSBNQVhfRU1BWCsxCisgICAgICogICA0KSBtYXggbWVtb3J5IGFsbG9jIGluIF9tcGRfdG9fc3RyaW5nOgorICAgICAqICAgICAgICBjYXNlICdnJzogTUFYX1BSRUMrMzYKKyAgICAgKiAgICAgICAgY2FzZSAnZSc6IE1BWF9QUkVDKzM2CisgICAgICogICAgICAgIGNhc2UgJ2YnOiAyKk1QRF9NQVhfUFJFQyszMAorICAgICAqLworICAgIHJlc3VsdC5uYnl0ZXMgPSBfbXBkX3RvX3N0cmluZygmcmVzdWx0LmRhdGEsIGRlYywgZmxhZ3MsIGRwbGFjZSk7CisgICAgcmVzdWx0Lm5jaGFycyA9IHJlc3VsdC5uYnl0ZXM7CisgICAgaWYgKHJlc3VsdC5uYnl0ZXMgPCAwKSB7CisgICAgICAgICpzdGF0dXMgfD0gTVBEX01hbGxvY19lcnJvcjsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyAgICBpZiAoKnNwZWMtPmRvdCAhPSAnXDAnICYmICFtcGRfaXNzcGVjaWFsKGRlYykpIHsKKyAgICAgICAgaWYgKHJlc3VsdC5uY2hhcnMgPiBNUERfTUFYX1BSRUMrMzYpIHsKKyAgICAgICAgICAgIC8qIFNpbmNlIGEgZ3JvdXAgbGVuZ3RoIG9mIG9uZSBpcyBub3QgZXhwbGljaXRseQorICAgICAgICAgICAgICogZGlzYWxsb3dlZCwgZW5zdXJlIHRoYXQgaXQgaXMgYWx3YXlzIHBvc3NpYmxlIHRvCisgICAgICAgICAgICAgKiBpbnNlcnQgYSBmb3VyIGJ5dGUgc2VwYXJhdG9yIGFmdGVyIGVhY2ggZGlnaXQuICovCisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgICAgIG1wZF9mcmVlKHJlc3VsdC5kYXRhKTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFfbXBkX2FwcGx5X2xjb252KCZyZXN1bHQsIHNwZWMsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoc3BlYy0+bWluX3dpZHRoKSB7CisgICAgICAgIGlmICghX21wZF9hZGRfcGFkKCZyZXN1bHQsIHNwZWMsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtcGRfZGVsKCZ0bXApOworICAgIHJldHVybiByZXN1bHQuZGF0YTsKKworZXJyb3I6CisgICAgbXBkX2RlbCgmdG1wKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworY2hhciAqCittcGRfcWZvcm1hdChjb25zdCBtcGRfdCAqZGVjLCBjb25zdCBjaGFyICpmbXQsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3NwZWNfdCBzcGVjOworCisgICAgaWYgKCFtcGRfcGFyc2VfZm10X3N0cigmc3BlYywgZm10LCAxKSkgeworICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIG1wZF9xZm9ybWF0X3NwZWMoZGVjLCAmc3BlYywgY3R4LCBzdGF0dXMpOworfQorCisvKgorICogVGhlIHNwZWNpZmljYXRpb24gaGFzIGEgKmNvbmRpdGlvbiogY2FsbGVkIEludmFsaWRfb3BlcmF0aW9uIGFuZCBhbgorICogSUVFRSAqc2lnbmFsKiBjYWxsZWQgSW52YWxpZF9vcGVyYXRpb24uIFRoZSBmb3JtZXIgY29ycmVzcG9uZHMgdG8KKyAqIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgdGhlIGxhdHRlciB0byBNUERfSUVFRV9JbnZhbGlkX29wZXJhdGlvbi4KKyAqIE1QRF9JRUVFX0ludmFsaWRfb3BlcmF0aW9uIGNvbXByaXNlcyB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogW01QRF9Db252ZXJzaW9uX3N5bnRheCwgTVBEX0RpdmlzaW9uX2ltcG9zc2libGUsIE1QRF9EaXZpc2lvbl91bmRlZmluZWQsCisgKiAgTVBEX0ZwdV9lcnJvciwgTVBEX0ludmFsaWRfY29udGV4dCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLAorICogIE1QRF9NYWxsb2NfZXJyb3JdCisgKgorICogSW4gdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMsICdmbGFnJyBkZW5vdGVzIHRoZSBjb25kaXRpb24sICdzaWduYWwnCisgKiBkZW5vdGVzIHRoZSBJRUVFIHNpZ25hbC4KKyAqLworCitzdGF0aWMgY29uc3QgY2hhciAqbXBkX2ZsYWdfc3RyaW5nW01QRF9OVU1fRkxBR1NdID0geworICAgICJDbGFtcGVkIiwKKyAgICAiQ29udmVyc2lvbl9zeW50YXgiLAorICAgICJEaXZpc2lvbl9ieV96ZXJvIiwKKyAgICAiRGl2aXNpb25faW1wb3NzaWJsZSIsCisgICAgIkRpdmlzaW9uX3VuZGVmaW5lZCIsCisgICAgIkZwdV9lcnJvciIsCisgICAgIkluZXhhY3QiLAorICAgICJJbnZhbGlkX2NvbnRleHQiLAorICAgICJJbnZhbGlkX29wZXJhdGlvbiIsCisgICAgIk1hbGxvY19lcnJvciIsCisgICAgIk5vdF9pbXBsZW1lbnRlZCIsCisgICAgIk92ZXJmbG93IiwKKyAgICAiUm91bmRlZCIsCisgICAgIlN1Ym5vcm1hbCIsCisgICAgIlVuZGVyZmxvdyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqbXBkX3NpZ25hbF9zdHJpbmdbTVBEX05VTV9GTEFHU10gPSB7CisgICAgIkNsYW1wZWQiLAorICAgICJJRUVFX0ludmFsaWRfb3BlcmF0aW9uIiwKKyAgICAiRGl2aXNpb25fYnlfemVybyIsCisgICAgIklFRUVfSW52YWxpZF9vcGVyYXRpb24iLAorICAgICJJRUVFX0ludmFsaWRfb3BlcmF0aW9uIiwKKyAgICAiSUVFRV9JbnZhbGlkX29wZXJhdGlvbiIsCisgICAgIkluZXhhY3QiLAorICAgICJJRUVFX0ludmFsaWRfb3BlcmF0aW9uIiwKKyAgICAiSUVFRV9JbnZhbGlkX29wZXJhdGlvbiIsCisgICAgIklFRUVfSW52YWxpZF9vcGVyYXRpb24iLAorICAgICJOb3RfaW1wbGVtZW50ZWQiLAorICAgICJPdmVyZmxvdyIsCisgICAgIlJvdW5kZWQiLAorICAgICJTdWJub3JtYWwiLAorICAgICJVbmRlcmZsb3ciLAorfTsKKworLyogcHJpbnQgY29uZGl0aW9ucyB0byBidWZmZXIsIHNlcGFyYXRlZCBieSBzcGFjZXMgKi8KK2ludAorbXBkX3NucHJpbnRfZmxhZ3MoY2hhciAqZGVzdCwgaW50IG5tZW1iLCB1aW50MzJfdCBmbGFncykKK3sKKyAgICBjaGFyICpjcDsKKyAgICBpbnQgbiwgajsKKworICAgIGFzc2VydChubWVtYiA+PSBNUERfTUFYX0ZMQUdfU1RSSU5HKTsKKworICAgICpkZXN0ID0gJ1wwJzsgY3AgPSBkZXN0OworICAgIGZvciAoaiA9IDA7IGogPCBNUERfTlVNX0ZMQUdTOyBqKyspIHsKKyAgICAgICAgaWYgKGZsYWdzICYgKDFVPDxqKSkgeworICAgICAgICAgICAgbiA9IHNucHJpbnRmKGNwLCBubWVtYiwgIiVzICIsIG1wZF9mbGFnX3N0cmluZ1tqXSk7CisgICAgICAgICAgICBpZiAobiA8IDAgfHwgbiA+PSBubWVtYikgcmV0dXJuIC0xOworICAgICAgICAgICAgY3AgKz0gbjsgbm1lbWIgLT0gbjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChjcCAhPSBkZXN0KSB7CisgICAgICAgICooLS1jcCkgPSAnXDAnOworICAgIH0KKworICAgIHJldHVybiAoaW50KShjcC1kZXN0KTsKK30KKworLyogcHJpbnQgY29uZGl0aW9ucyB0byBidWZmZXIsIGluIGxpc3QgZm9ybSAqLworaW50CittcGRfbHNucHJpbnRfZmxhZ3MoY2hhciAqZGVzdCwgaW50IG5tZW1iLCB1aW50MzJfdCBmbGFncywgY29uc3QgY2hhciAqZmxhZ19zdHJpbmdbXSkKK3sKKyAgICBjaGFyICpjcDsKKyAgICBpbnQgbiwgajsKKworICAgIGFzc2VydChubWVtYiA+PSBNUERfTUFYX0ZMQUdfTElTVCk7CisgICAgaWYgKGZsYWdfc3RyaW5nID09IE5VTEwpIHsKKyAgICAgICAgZmxhZ19zdHJpbmcgPSBtcGRfZmxhZ19zdHJpbmc7CisgICAgfQorCisgICAgKmRlc3QgPSAnWyc7CisgICAgKihkZXN0KzEpID0gJ1wwJzsKKyAgICBjcCA9IGRlc3QrMTsKKyAgICAtLW5tZW1iOworCisgICAgZm9yIChqID0gMDsgaiA8IE1QRF9OVU1fRkxBR1M7IGorKykgeworICAgICAgICBpZiAoZmxhZ3MgJiAoMVU8PGopKSB7CisgICAgICAgICAgICBuID0gc25wcmludGYoY3AsIG5tZW1iLCAiJXMsICIsIGZsYWdfc3RyaW5nW2pdKTsKKyAgICAgICAgICAgIGlmIChuIDwgMCB8fCBuID49IG5tZW1iKSByZXR1cm4gLTE7CisgICAgICAgICAgICBjcCArPSBuOyBubWVtYiAtPSBuOworICAgICAgICB9CisgICAgfQorCisgICAgLyogZXJhc2UgdGhlIGxhc3QgIiwgIiAqLworICAgIGlmIChjcCAhPSBkZXN0KzEpIHsKKyAgICAgICAgY3AgLT0gMjsKKyAgICB9CisKKyAgICAqY3ArKyA9ICddJzsKKyAgICAqY3AgPSAnXDAnOworCisgICAgcmV0dXJuIChpbnQpKGNwLWRlc3QpOyAvKiBzdHJsZW4sIHdpdGhvdXQgTlVMIHRlcm1pbmF0b3IgKi8KK30KKworLyogcHJpbnQgc2lnbmFscyB0byBidWZmZXIsIGluIGxpc3QgZm9ybSAqLworaW50CittcGRfbHNucHJpbnRfc2lnbmFscyhjaGFyICpkZXN0LCBpbnQgbm1lbWIsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBjaGFyICpzaWduYWxfc3RyaW5nW10pCit7CisgICAgY2hhciAqY3A7CisgICAgaW50IG4sIGo7CisgICAgaW50IGllZWVfaW52YWxpZF9kb25lID0gMDsKKworICAgIGFzc2VydChubWVtYiA+PSBNUERfTUFYX1NJR05BTF9MSVNUKTsKKyAgICBpZiAoc2lnbmFsX3N0cmluZyA9PSBOVUxMKSB7CisgICAgICAgIHNpZ25hbF9zdHJpbmcgPSBtcGRfc2lnbmFsX3N0cmluZzsKKyAgICB9CisKKyAgICAqZGVzdCA9ICdbJzsKKyAgICAqKGRlc3QrMSkgPSAnXDAnOworICAgIGNwID0gZGVzdCsxOworICAgIC0tbm1lbWI7CisKKyAgICBmb3IgKGogPSAwOyBqIDwgTVBEX05VTV9GTEFHUzsgaisrKSB7CisgICAgICAgIHVpbnQzMl90IGYgPSBmbGFncyAmICgxVTw8aik7CisgICAgICAgIGlmIChmKSB7CisgICAgICAgICAgICBpZiAoZiZNUERfSUVFRV9JbnZhbGlkX29wZXJhdGlvbikgeworICAgICAgICAgICAgICAgIGlmIChpZWVlX2ludmFsaWRfZG9uZSkgeworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWVlZV9pbnZhbGlkX2RvbmUgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbiA9IHNucHJpbnRmKGNwLCBubWVtYiwgIiVzLCAiLCBzaWduYWxfc3RyaW5nW2pdKTsKKyAgICAgICAgICAgIGlmIChuIDwgMCB8fCBuID49IG5tZW1iKSByZXR1cm4gLTE7CisgICAgICAgICAgICBjcCArPSBuOyBubWVtYiAtPSBuOworICAgICAgICB9CisgICAgfQorCisgICAgLyogZXJhc2UgdGhlIGxhc3QgIiwgIiAqLworICAgIGlmIChjcCAhPSBkZXN0KzEpIHsKKyAgICAgICAgY3AgLT0gMjsKKyAgICB9CisKKyAgICAqY3ArKyA9ICddJzsKKyAgICAqY3AgPSAnXDAnOworCisgICAgcmV0dXJuIChpbnQpKGNwLWRlc3QpOyAvKiBzdHJsZW4sIHdpdGhvdXQgTlVMIHRlcm1pbmF0b3IgKi8KK30KKworLyogVGhlIGZvbGxvd2luZyB0d28gZnVuY3Rpb25zIGFyZSBtYWlubHkgaW50ZW5kZWQgZm9yIGRlYnVnZ2luZy4gKi8KK3ZvaWQKK21wZF9mcHJpbnQoRklMRSAqZmlsZSwgY29uc3QgbXBkX3QgKmRlYykKK3sKKyAgICBjaGFyICpkZWNzdHJpbmc7CisKKyAgICBkZWNzdHJpbmcgPSBtcGRfdG9fc2NpKGRlYywgMSk7CisgICAgaWYgKGRlY3N0cmluZyAhPSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoZmlsZSwgIiVzXG4iLCBkZWNzdHJpbmcpOworICAgICAgICBtcGRfZnJlZShkZWNzdHJpbmcpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgZnB1dHMoIm1wZF9mcHJpbnQ6IG91dHB1dCBlcnJvclxuIiwgZmlsZSk7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9Cit9CisKK3ZvaWQKK21wZF9wcmludChjb25zdCBtcGRfdCAqZGVjKQoreworICAgIGNoYXIgKmRlY3N0cmluZzsKKworICAgIGRlY3N0cmluZyA9IG1wZF90b19zY2koZGVjLCAxKTsKKyAgICBpZiAoZGVjc3RyaW5nICE9IE5VTEwpIHsKKyAgICAgICAgcHJpbnRmKCIlc1xuIiwgZGVjc3RyaW5nKTsKKyAgICAgICAgbXBkX2ZyZWUoZGVjc3RyaW5nKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGZwdXRzKCJtcGRfZnByaW50OiBvdXRwdXQgZXJyb3JcbiIsIHN0ZGVycik7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9Cit9CisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9pby5oIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9pby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkZmNlNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2lvLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBJT19ICisjZGVmaW5lIElPX0gKKworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlICJtcGRlY2ltYWwuaCIKKworCisjaWYgU0laRV9NQVggPT0gTVBEX1NJWkVfTUFYCisgICNkZWZpbmUgbXBkX3N0cnRvc3NpemUgX21wZF9zdHJ0b3NzaXplCisjZWxzZQorc3RhdGljIGlubGluZSBtcGRfc3NpemVfdAorbXBkX3N0cnRvc3NpemUoY29uc3QgY2hhciAqcywgY2hhciAqKmVuZCwgaW50IGJhc2UpCit7CisgICAgaW50NjRfdCByZXR2YWw7CisKKyAgICBlcnJubyA9IDA7CisgICAgcmV0dmFsID0gX21wZF9zdHJ0b3NzaXplKHMsIGVuZCwgYmFzZSk7CisgICAgaWYgKGVycm5vID09IDAgJiYgKHJldHZhbCA+IE1QRF9TU0laRV9NQVggfHwgcmV0dmFsIDwgTVBEX1NTSVpFX01JTikpIHsKKyAgICAgICAgZXJybm8gPSBFUkFOR0U7CisgICAgfQorICAgIGlmIChlcnJubyA9PSBFUkFOR0UpIHsKKyAgICAgICAgcmV0dXJuIChyZXR2YWwgPCAwKSA/IE1QRF9TU0laRV9NSU4gOiBNUERfU1NJWkVfTUFYOworICAgIH0KKworICAgIHJldHVybiAobXBkX3NzaXplX3QpcmV0dmFsOworfQorI2VuZGlmCisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvUkVGRVJFTkNFUy50eHQgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvUkVGRVJFTkNFUy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWVkNTc4MgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbGl0ZXJhdHVyZS9SRUZFUkVOQ0VTLnR4dApAQCAtMCwwICsxLDUxIEBACisKKworVGhpcyBkb2N1bWVudCBjb250YWlucyBsaW5rcyB0byB0aGUgbGl0ZXJhdHVyZSB1c2VkIGluIHRoZSBwcm9jZXNzIG9mCitjcmVhdGluZyB0aGUgbGlicmFyeS4gVGhlIGxpc3QgaXMgcHJvYmFibHkgbm90IGNvbXBsZXRlLgorCisKK01pa2UgQ293bGlzaGF3OiBHZW5lcmFsIERlY2ltYWwgQXJpdGhtZXRpYyBTcGVjaWZpY2F0aW9uCitodHRwOi8vc3BlbGVvdHJvdmUuY29tL2RlY2ltYWwvZGVjYXJpdGguaHRtbAorCisKK0plYW4tTWljaGVsIE11bGxlcjogT24gdGhlIGRlZmluaXRpb24gb2YgdWxwICh4KQorbGFyYS5pbmlzdC5mci9iaXRzdHJlYW0vMjMzMi81MTgvMS9MSVAtUlIyMDA1LTA5LnBkZgorCisKK1QuIEUuIEh1bGwsIEEuIEFicmhhbTogUHJvcGVybHkgcm91bmRlZCB2YXJpYWJsZSBwcmVjaXNpb24gc3F1YXJlIHJvb3QKK2h0dHA6Ly9wb3J0YWwuYWNtLm9yZy9jaXRhdGlvbi5jZm0/aWQ9MjE0NDEzCisKKworVC4gRS4gSHVsbCwgQS4gQWJyaGFtOiBWYXJpYWJsZSBwcmVjaXNpb24gZXhwb25lbnRpYWwgZnVuY3Rpb24KK2h0dHA6Ly9wb3J0YWwuYWNtLm9yZy9jaXRhdGlvbi5jZm0/aWQ9NjQ5OAorCisKK1JvbWFuIEUuIE1hZWRlcjogU3RvcmFnZSBhbGxvY2F0aW9uIGZvciB0aGUgS2FyYXRzdWJhIGludGVnZXIgbXVsdGlwbGljYXRpb24KK2FsZ29yaXRobS4gIGh0dHA6Ly93d3cuc3ByaW5nZXJsaW5rLmNvbS9jb250ZW50L3cxNTA1OG1qNnY1OXQ1NjUvCisKKworSi4gTS4gUG9sbGFyZDogVGhlIGZhc3QgRm91cmllciB0cmFuc2Zvcm0gaW4gYSBmaW5pdGUgZmllbGQKK2h0dHA6Ly93d3cuYW1zLm9yZy9qb3VybmFscy9tY29tLzE5NzEtMjUtMTE0L1MwMDI1LTU3MTgtMTk3MS0wMzAxOTY2LTAvaG9tZS5odG1sCisKKworRGF2aWQgSC4gQmFpbGV5OiBGRlRzIGluIEV4dGVybmFsIG9yIEhpZXJhcmNoaWNhbCBNZW1vcnkKK2h0dHA6Ly9jcmQubGJsLmdvdi9+ZGhiYWlsZXkvZGhicGFwZXJzLworCisKK1cuIE1vcnZlbiBHZW50bGVtYW46IE1hdHJpeCBNdWx0aXBsaWNhdGlvbiBhbmQgRmFzdCBGb3VyaWVyIFRyYW5zZm9ybXMKK2h0dHA6Ly93d3cuYWxjYXRlbC1sdWNlbnQuY29tL2JzdGovdm9sNDctMTk2OC9hcnRpY2xlcy9ic3RqNDctNi0xMDk5LnBkZgorCisKK01pa2tvIFRvbW1pbGE6IEFwZmxvYXQgZG9jdW1lbnRhdGlvbgoraHR0cDovL3d3dy5hcGZsb2F0Lm9yZy9hcGZsb2F0LzIuNDEvYXBmbG9hdC5wZGYKKworCitKb2VyZyBBcm5kdDogIk1hdHRlcnMgQ29tcHV0YXRpb25hbCIKK2h0dHA6Ly93d3cuampqLmRlL2Z4dC8KKworCitLYXJsIEhhc3NlbHN0cm9tOiBGYXN0IERpdmlzaW9uIG9mIExhcmdlIEludGVnZXJzCit3d3cudHJlc2thbC5jb20va2FsbGUvZXhqb2JiL29yaWdpbmFsLXJlcG9ydC5wZGYKKworCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbGl0ZXJhdHVyZS9iaWdudW0udHh0IGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9saXRlcmF0dXJlL2JpZ251bS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGE4NzMxZAotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbGl0ZXJhdHVyZS9iaWdudW0udHh0CkBAIC0wLDAgKzEsODMgQEAKKworCitCaWdudW0gc3VwcG9ydCAoRmFzdCBOdW1iZXIgVGhlb3JldGljIFRyYW5zZm9ybSBvciBGTlQpOgorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQmlnbnVtIGFyaXRobWV0aWMgaW4gbGlibXBkZWMgdXNlcyB0aGUgc2NoZW1lIGZvciBmYXN0IGNvbnZvbHV0aW9uCitvZiBpbnRlZ2VyIHNlcXVlbmNlcyBmcm9tOgorCitKLiBNLiBQb2xsYXJkOiBUaGUgZmFzdCBGb3VyaWVyIHRyYW5zZm9ybSBpbiBhIGZpbml0ZSBmaWVsZAoraHR0cDovL3d3dy5hbXMub3JnL2pvdXJuYWxzL21jb20vMTk3MS0yNS0xMTQvUzAwMjUtNTcxOC0xOTcxLTAzMDE5NjYtMC9ob21lLmh0bWwKKworCitUaGUgdHJhbnNmb3JtIGluIGEgZmluaXRlIGZpZWxkIGNhbiBiZSB1c2VkIGZvciBjb252b2x1dGlvbiBpbiB0aGUgc2FtZQord2F5IGFzIHRoZSBGb3VyaWVyIFRyYW5zZm9ybS4gVGhlIG1haW4gYWR2YW50YWdlcyBvZiB0aGUgTnVtYmVyIFRoZW9yZXRpYworVHJhbnNmb3JtIGFyZSB0aGF0IGl0IGlzIGJvdGggZXhhY3QgYW5kIHZlcnkgbWVtb3J5IGVmZmljaWVudC4KKworCitDb252b2x1dGlvbiBpbiBwc2V1ZG8tY29kZToKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgIGZudF9jb252b2x1dGUoYSwgYik6CisgICAgeCA9IGZudChhKSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmb3J3YXJkIHRyYW5zZm9ybSBvZiBhCisgICAgeSA9IGZudChiKSAgICAgICAgICAgICAgICAgICAgICAgICAgIyBmb3J3YXJkIHRyYW5zZm9ybSBvZiBiCisgICAgeiA9IHBhaXJ3aXNlIG11bHRpcGx5IHhbaV0gYW5kIHlbaV0KKyAgICByZXN1bHQgPSBpbnZfZm50KHopICAgICAgICAgICAgICAgICAjIGJhY2t3YXJkIHRyYW5zZm9ybSBvZiB6LgorIAorCitFeHRlbmRpbmcgdGhlIG1heGltdW0gdHJhbnNmb3JtIGxlbmd0aCAoQ2hpbmVzZSBSZW1haW5kZXIgVGhlb3JlbSk6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZSBtYXhpbXVtIHRyYW5zZm9ybSBsZW5ndGggaXMgcXVpdGUgbGltaXRlZCB3aGVuIHVzaW5nIGEgc2luZ2xlCitwcmltZSBmaWVsZC4gSG93ZXZlciwgaXQgaXMgcG9zc2libGUgdG8gdXNlIG11bHRpcGxlIHByaW1lcyBhbmQKK3JlY292ZXIgdGhlIHJlc3VsdCB1c2luZyB0aGUgQ2hpbmVzZSBSZW1haW5kZXIgVGhlb3JlbS4KKworCitNdWx0aXBsaWNhdGlvbiBpbiBwc2V1ZG8tY29kZToKK35+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgorCisgIF9tcGRfZm50bXVsKHUsIHYpOgorICAgIGMxID0gZm50X2NvbnZvbHV0ZSh1LCB2LCBQMSkgICMgY29udm9sdXRlIG1vZHVsbyBwcmltZTEKKyAgICBjMiA9IGZudF9jb252b2x1dGUodSwgdiwgUDIpICAjIGNvbnZvbHV0ZSBtb2R1bG8gcHJpbWUyCisgICAgYzMgPSBmbnRfY29udm9sdXRlKHUsIHYsIFAzKSAgIyBjb252b2x1dGUgbW9kdWxvIHByaW1lMworICAgIHJlc3VsdCA9IGNydDMoYzEsIGMyLCBjMykgICAgICMgQ2hpbmVzZSBSZW1haW5kZXIgVGhlb3JlbQorCisKK09wdGltaXplZCB0cmFuc2Zvcm0gZnVuY3Rpb25zOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK1RoZXJlIGFyZSB0aHJlZSBkaWZmZXJlbnQgZm50KCkgZnVuY3Rpb25zOgorCisgICBzdGRfZm50OiAic3RhbmRhcmQiIGRlY2ltYXRpb24gaW4gZnJlcXVlbmN5IHRyYW5zZm9ybSBmb3IgYXJyYXkgbGVuZ3RocworICAgICAgICAgICAgb2YgMioqbi4gUGVyZm9ybXMgd2VsbCB1cCB0byAxMDI0IHdvcmRzLgorCisgICBzaXhzdGVwOiBDYWNoZS1mcmllbmRseSBhbGdvcml0aG0gZm9yIGFycmF5IGxlbmd0aHMgb2YgMioqbi4gT3V0cGVyZm9ybXMKKyAgICAgICAgICAgIHN0ZF9mbnQgZm9yIGxhcmdlIGFycmF5cy4KKworICAgZm91cnN0ZXA6IEFsZ29yaXRobSBmb3IgYXJyYXkgbGVuZ3RocyBvZiAzICogMioqbi4gQWxzbyBjYWNoZSBmcmllbmRseQorICAgICAgICAgICAgIGluIGxhcmdlIHBhcnRzLgorCisKK0xpc3Qgb2YgYmlnbnVtLW9ubHkgZmlsZXM6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitGdW5jdGlvbnMgZnJvbSB0aGVzZSBmaWxlcyBhcmUgb25seSB1c2VkIGluIF9tcGRfZm50bXVsKCkuCisKKyAgdW1vZGFyaXRoLmggICAgLT4gZmFzdCBsb3cgbGV2ZWwgcm91dGluZXMgZm9yIHVuc2lnbmVkIG1vZHVsYXIgYXJpdGhtZXRpYworICBudW1iZXJ0aGVvcnkuYyAtPiByb3V0aW5lcyBmb3Igc2V0dGluZyB1cCB0aGUgRk5UCisgIGRpZnJhZGl4Mi5jICAgIC0+IGRlY2ltYXRpb24gaW4gZnJlcXVlbmN5IHRyYW5zZm9ybSwgdXNlZCBhcyB0aGUKKyAgICAgICAgICAgICAgICAgICAgImJhc2UgY2FzZSIgYnkgdGhlIGZvbGxvd2luZyB0aHJlZSBmaWxlczoKKworICAgICAgZm50LmMgICAgICAgICAgLT4gc3RhbmRhcmQgdHJhbnNmb3JtIGZvciBzbWFsbGVyIGFycmF5cworICAgICAgc2l4c3RlcC5jICAgICAgLT4gdHJhbnNmb3JtIGxhcmdlIGFycmF5cyBvZiBsZW5ndGggMioqbgorICAgICAgZm91cnN0ZXAuYyAgICAgLT4gdHJhbnNmb3JtIGFycmF5cyBvZiBsZW5ndGggMyAqIDIqKm4KKworICBjb252b2x1dGUuYyAgICAtPiBkbyB0aGUgYWN0dWFsIGZhc3QgY29udm9sdXRpb24sIHVzaW5nIG9uZSBvZgorICAgICAgICAgICAgICAgICAgICB0aGUgdGhyZWUgdHJhbnNmb3JtIGZ1bmN0aW9ucy4KKyAgdHJhbnNwb3NlLmMgICAgLT4gdHJhbnNwb3NpdGlvbnMgbmVlZGVkIGZvciB0aGUgc2l4c3RlcCBhbGdvcml0aG0uCisgIGNydC5jICAgICAgICAgIC0+IENoaW5lc2UgUmVtYWluZGVyIFRoZW9yZW06IHVzZSBpbmZvcm1hdGlvbiBmcm9tIHRocmVlCisgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybXMgbW9kdWxvIHRocmVlIGRpZmZlcmVudCBwcmltZXMgdG8gZ2V0IHRoZQorICAgICAgICAgICAgICAgICAgICBmaW5hbCByZXN1bHQuCisKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvZm50LnB5IGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9saXRlcmF0dXJlL2ZudC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjkzNzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9saXRlcmF0dXJlL2ZudC5weQpAQCAtMCwwICsxLDIwOCBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisjIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisjIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisjIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorIyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorIyBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisjIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyMgU1VDSCBEQU1BR0UuCisjCisKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyAgVGhpcyBmaWxlIGxpc3RzIGFuZCBjaGVja3Mgc29tZSBvZiB0aGUgY29uc3RhbnRzIGFuZCBsaW1pdHMgdXNlZCAgIworIyAgaW4gbGlibXBkZWMncyBOdW1iZXIgVGhlb3JldGljIFRyYW5zZm9ybS4gQXQgdGhlIGVuZCBvZiB0aGUgZmlsZSAgIworIyAgdGhlcmUgaXMgYW4gZXhhbXBsZSBmdW5jdGlvbiBmb3IgdGhlIHBsYWluIERGVCB0cmFuc2Zvcm0uICAgICAgICAgIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKKyMKKyMgTnVtYmVyIHRoZW9yZXRpYyB0cmFuc2Zvcm1zIGFyZSBkb25lIGluIHN1YmZpZWxkcyBvZiBGKHApLiBQW2ldCisjIGFyZSB0aGUgcHJpbWVzLCBEW2ldID0gUFtpXSAtIDEgYXJlIGhpZ2hseSBjb21wb3NpdGUgYW5kIHdbaV0KKyMgYXJlIHRoZSByZXNwZWN0aXZlIHByaW1pdGl2ZSByb290cyBvZiBGKHApLgorIworIyBUaGUgc3RyYXRlZ3kgaXMgdG8gY29udm9sdXRlIHR3byBjb2VmZmljaWVudHMgbW9kdWxvIGFsbCB0aHJlZQorIyBwcmltZXMsIHRoZW4gdXNlIHRoZSBDaGluZXNlIFJlbWFpbmRlciBUaGVvcmVtIG9uIHRoZSB0aHJlZQorIyByZXN1bHQgYXJyYXlzIHRvIHJlY292ZXIgdGhlIHJlc3VsdCBpbiB0aGUgdXN1YWwgYmFzZSBSQURJWAorIyBmb3JtLgorIworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmltaXRpdmUgcm9vdHMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisjCisjIFZlcmlmeSBwcmltaXRpdmUgcm9vdHM6CisjCisjIEZvciBhIHByaW1lIGZpZWxkLCByIGlzIGEgcHJpbWl0aXZlIHJvb3QgaWYgYW5kIG9ubHkgaWYgZm9yIGFsbCBwcmltZQorIyBmYWN0b3JzIGYgb2YgcC0xLCByKiooKHAtMSkvZikgPS89IDEgIChtb2QgcCkuCisjCitkZWYgcHJvZChGLCBFKToKKyAgICAiIiJDaGVjayB0aGF0IHRoZSBmYWN0b3JpemF0aW9uIG9mIFAtMSBpcyBjb3JyZWN0LiBGIGlzIHRoZSBsaXN0IG9mCisgICAgICAgZmFjdG9ycyBvZiBQLTEsIEUgbGlzdHMgdGhlIG51bWJlciBvZiBvY2N1cnJlbmNlcyBvZiBlYWNoIGZhY3Rvci4iIiIKKyAgICB4ID0gMQorICAgIGZvciB5LCB6IGluIHppcChGLCBFKToKKyAgICAgICAgeCAqPSB5Kip6CisgICAgcmV0dXJuIHgKKworZGVmIGlzX3ByaW1pdGl2ZV9yb290KHIsIHAsIGZhY3RvcnMsIGV4cG9uZW50cyk6CisgICAgIiIiQ2hlY2sgaWYgciBpcyBhIHByaW1pdGl2ZSByb290IG9mIEYocCkuIiIiCisgICAgaWYgcCAhPSBwcm9kKGZhY3RvcnMsIGV4cG9uZW50cykgKyAxOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBmb3IgZiBpbiBmYWN0b3JzOgorICAgICAgICBxLCBjb250cm9sID0gZGl2bW9kKHAtMSwgZikKKyAgICAgICAgaWYgY29udHJvbCAhPSAwOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIHBvdyhyLCBxLCBwKSA9PSAxOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIFRydWUKKworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjICAgICAgICAgICAgIENvbnN0YW50cyBhbmQgbGltaXRzIGZvciB0aGUgNjQtYml0IHZlcnNpb24KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworUkFESVggPSAxMCoqMTkKKworIyBQcmltZXMgUDEsIFAyIGFuZCBQMzoKK1AgPSBbMioqNjQtMioqMzIrMSwgMioqNjQtMioqMzQrMSwgMioqNjQtMioqNDArMV0KKworIyBQLTEsIGhpZ2hseSBjb21wb3NpdGUuIFRoZSB0cmFuc2Zvcm0gbGVuZ3RoIGQgaXMgdmFyaWFibGUgYW5kCisjIG11c3QgZGl2aWRlIEQgPSBQLTEuIFNpbmNlIGFsbCBEIGFyZSBkaXZpc2libGUgYnkgMyAqIDIqKjMyLAorIyB0cmFuc2Zvcm0gbGVuZ3RocyBjYW4gYmUgMioqbiBvciAzICogMioqbiAod2hlcmUgbiA8PSAzMikuCitEID0gWzIqKjMyICogMyAgICAqICg1ICogMTcgKiAyNTcgKiA2NTUzNyksCisgICAgIDIqKjM0ICogMyoqMiAqICg3ICogMTEgKiAzMSAqIDE1MSAqIDMzMSksCisgICAgIDIqKjQwICogMyoqMiAqICg1ICogNyAqIDEzICogMTcgKiAyNDEpXQorCisjIFByaW1lIGZhY3RvcnMgb2YgUC0xIGFuZCB0aGVpciBleHBvbmVudHM6CitGID0gWygyLDMsNSwxNywyNTcsNjU1MzcpLCAoMiwzLDcsMTEsMzEsMTUxLDMzMSksICgyLDMsNSw3LDEzLDE3LDI0MSldCitFID0gWygzMiwxLDEsMSwxLDEpLCAoMzQsMiwxLDEsMSwxLDEpLCAoNDAsMiwxLDEsMSwxLDEpXQorCisjIE1heGltdW0gdHJhbnNmb3JtIGxlbmd0aCBmb3IgMioqbi4gQWJvdmUgdGhhdCBvbmx5IDMgKiAyKiozMQorIyBvciAzICogMioqMzIgYXJlIHBvc3NpYmxlLgorTVBEX01BWFRSQU5TRk9STV8yTiA9IDIqKjMyCisKKworIyBMaW1pdHMgaW4gdGhlIHRlcm1pbm9sb2d5IG9mIFBvbGxhcmQncyBwYXBlcjoKK20yID0gKE1QRF9NQVhUUkFOU0ZPUk1fMk4gKiAzKSAvLyAyICMgTWF4aW11bSBsZW5ndGggb2YgdGhlIHNtYWxsZXIgYXJyYXkuCitNMSA9IE0yID0gUkFESVgtMSAgICAgICAgICAgICAgICAgICAjIE1heGltdW0gdmFsdWUgcGVyIHNpbmdsZSB3b3JkLgorTCA9IG0yICogTTEgKiBNMgorUFswXSAqIFBbMV0gKiBQWzJdID4gMiAqIEwKKworCisjIFByaW1pdGl2ZSByb290cyBvZiBGKFAxKSwgRihQMikgYW5kIEYoUDMpOgordyA9IFs3LCAxMCwgMTldCisKKyMgVGhlIHByaW1pdGl2ZSByb290cyBhcmUgY29ycmVjdDoKK2ZvciBpIGluIHJhbmdlKDMpOgorICAgIGlmIG5vdCBpc19wcmltaXRpdmVfcm9vdCh3W2ldLCBQW2ldLCBGW2ldLCBFW2ldKToKKyAgICAgICAgcHJpbnQoIkZBSUwiKQorCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICAgICAgICAgQ29uc3RhbnRzIGFuZCBsaW1pdHMgZm9yIHRoZSAzMi1iaXQgdmVyc2lvbgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitSQURJWCA9IDEwKio5CisKKyMgUHJpbWVzIFAxLCBQMiBhbmQgUDM6CitQID0gWzIxMTM5MjkyMTcsIDIwMTMyNjU5MjEsIDE4MTE5MzkzMjldCisKKyMgUC0xLCBoaWdobHkgY29tcG9zaXRlLiBBbGwgRCA9IFAtMSBhcmUgZGl2aXNpYmxlIGJ5IDMgKiAyKioyNSwKKyMgYWxsb3dpbmcgZm9yIHRyYW5zZm9ybSBsZW5ndGhzIHVwIHRvIDMgKiAyKioyNSB3b3Jkcy4KK0QgPSBbMioqMjUgKiAzKioyICogNywKKyAgICAgMioqMjcgKiAzICAgICogNSwKKyAgICAgMioqMjYgKiAzKiozXQorCisjIFByaW1lIGZhY3RvcnMgb2YgUC0xIGFuZCB0aGVpciBleHBvbmVudHM6CitGID0gWygyLDMsNyksICgyLDMsNSksICgyLDMpXQorRSA9IFsoMjUsMiwxKSwgKDI3LDEsMSksICgyNiwzKV0KKworIyBNYXhpbXVtIHRyYW5zZm9ybSBsZW5ndGggZm9yIDIqKm4uIEFib3ZlIHRoYXQgb25seSAzICogMioqMjQgb3IKKyMgMyAqIDIqKjI1IGFyZSBwb3NzaWJsZS4KK01QRF9NQVhUUkFOU0ZPUk1fMk4gPSAyKioyNQorCisKKyMgTGltaXRzIGluIHRoZSB0ZXJtaW5vbG9neSBvZiBQb2xsYXJkJ3MgcGFwZXI6CittMiA9IChNUERfTUFYVFJBTlNGT1JNXzJOICogMykgLy8gMiAjIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBzbWFsbGVyIGFycmF5LgorTTEgPSBNMiA9IFJBRElYLTEgICAgICAgICAgICAgICAgICAgIyBNYXhpbXVtIHZhbHVlIHBlciBzaW5nbGUgd29yZC4KK0wgPSBtMiAqIE0xICogTTIKK1BbMF0gKiBQWzFdICogUFsyXSA+IDIgKiBMCisKKworIyBQcmltaXRpdmUgcm9vdHMgb2YgRihQMSksIEYoUDIpIGFuZCBGKFAzKToKK3cgPSBbNSwgMzEsIDEzXQorCisjIFRoZSBwcmltaXRpdmUgcm9vdHMgYXJlIGNvcnJlY3Q6Citmb3IgaSBpbiByYW5nZSgzKToKKyAgICBpZiBub3QgaXNfcHJpbWl0aXZlX3Jvb3Qod1tpXSwgUFtpXSwgRltpXSwgRVtpXSk6CisgICAgICAgIHByaW50KCJGQUlMIikKKworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICAgICAgICAgICAgIEV4YW1wbGUgdHJhbnNmb3JtIHVzaW5nIGEgc2luZ2xlIHByaW1lCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworZGVmIG50dChsc3QsIGRpcik6CisgICAgIiIiUGVyZm9ybSBhIHRyYW5zZm9ybSBvbiB0aGUgZWxlbWVudHMgb2YgbHN0LiBsZW4obHN0KSBtdXN0CisgICAgICAgYmUgMioqbiBvciAzICogMioqbiwgd2hlcmUgbiA8PSAyNS4gVGhpcyBpcyB0aGUgc2xvdyBERlQuIiIiCisgICAgcCA9IDIxMTM5MjkyMTcgICAgICAgICAgICAgIyBwcmltZQorICAgIGQgPSBsZW4obHN0KSAgICAgICAgICAgICAgICMgdHJhbnNmb3JtIGxlbmd0aAorICAgIGRfcHJpbWUgPSBwb3coZCwgKHAtMiksIHApICMgaW52ZXJzZSBvZiBkCisgICAgeGkgPSAocC0xKS8vZAorICAgIHcgPSA1ICAgICAgICAgICAgICAgICAgICAgICAgICMgcHJpbWl0aXZlIHJvb3Qgb2YgRihwKQorICAgIHIgPSBwb3codywgeGksIHApICAgICAgICAgICAgICMgcHJpbWl0aXZlIHJvb3Qgb2YgdGhlIHN1YmZpZWxkCisgICAgcl9wcmltZSA9IHBvdyh3LCAocC0xLXhpKSwgcCkgIyBpbnZlcnNlIG9mIHIKKyAgICBpZiBkaXIgPT0gMTogICAgICAjIGZvcndhcmQgdHJhbnNmb3JtCisgICAgICAgIGEgPSBsc3QgICAgICAgIyBpbnB1dCBhcnJheQorICAgICAgICBBID0gWzBdICogZCAgICMgdHJhbnNmb3JtZWQgdmFsdWVzCisgICAgICAgIGZvciBpIGluIHJhbmdlKGQpOgorICAgICAgICAgICAgcyA9IDAKKyAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKGQpOgorICAgICAgICAgICAgICAgIHMgKz0gYVtqXSAqIHBvdyhyLCBpKmosIHApCisgICAgICAgICAgICBBW2ldID0gcyAlIHAKKyAgICAgICAgcmV0dXJuIEEKKyAgICBlbGlmIGRpciA9PSAtMTogIyBiYWNrd2FyZCB0cmFuc2Zvcm0KKyAgICAgICAgQSA9IGxzdCAgICAgIyBpbnB1dCBhcnJheQorICAgICAgICBhID0gWzBdICogZCAjIHRyYW5zZm9ybWVkIHZhbHVlcworICAgICAgICBmb3IgaiBpbiByYW5nZShkKToKKyAgICAgICAgICAgIHMgPSAwCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShkKToKKyAgICAgICAgICAgICAgICBzICs9IEFbaV0gKiBwb3cocl9wcmltZSwgaSpqLCBwKQorICAgICAgICAgICAgYVtqXSA9IChkX3ByaW1lICogcykgJSBwCisgICAgICAgIHJldHVybiBhCisKK2RlZiBudHRfY29udm9sdXRlKGEsIGIpOgorICAgICIiImNvbnZvbHV0ZSBhcnJheXMgYSBhbmQgYi4iIiIKKyAgICBhc3NlcnQobGVuKGEpID09IGxlbihiKSkKKyAgICB4ID0gbnR0KGEsIDEpCisgICAgeSA9IG50dChiLCAxKQorICAgIGZvciBpIGluIHJhbmdlKGxlbihhKSk6CisgICAgICAgIHlbaV0gPSB5W2ldICogeFtpXQorICAgIHIgPSBudHQoeSwgLTEpCisgICAgcmV0dXJuIHIKKworCisjIEV4YW1wbGU6IFR3byBhcnJheXMgcmVwcmVzZW50aW5nIDIxIGFuZCA4MSBpbiBsaXR0bGUtZW5kaWFuOgorYSA9IFsxLCAyLCAwLCAwXQorYiA9IFsxLCA4LCAwLCAwXQorCithc3NlcnQobnR0X2NvbnZvbHV0ZShhLCBiKSA9PSBbMSwgICAgICAgIDEwLCAgICAgICAgMTYsICAgICAgICAwXSkKK2Fzc2VydCgyMSAqIDgxICAgICAgICAgICAgID09ICgxKjEwKiowICsgMTAqMTAqKjEgKyAxNioxMCoqMiArIDAqMTAqKjMpKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9saXRlcmF0dXJlL21hdHJpeC10cmFuc2Zvcm0udHh0IGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9saXRlcmF0dXJlL21hdHJpeC10cmFuc2Zvcm0udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNjIxOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvbWF0cml4LXRyYW5zZm9ybS50eHQKQEAgLTAsMCArMSwyNTYgQEAKKworCisoKiBDb3B5cmlnaHQgKGMpIDIwMTEgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuICopCisKKworVGhlIE1hdHJpeCBGb3VyaWVyIFRyYW5zZm9ybToKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKK0luIGxpYm1wZGVjLCB0aGUgTWF0cml4IEZvdXJpZXIgVHJhbnNmb3JtIFsxXSBpcyBjYWxsZWQgZm91ci1zdGVwIHRyYW5zZm9ybQorYWZ0ZXIgYSB2YXJpYW50IHRoYXQgYXBwZWFycyBpbiBbMl0uIFRoZSBhbGdvcml0aG0gcmVxdWlyZXMgdGhhdCB0aGUgaW5wdXQKK2FycmF5IGNhbiBiZSB2aWV3ZWQgYXMgYW4gUipDIG1hdHJpeC4KKworQWxsIG9wZXJhdGlvbnMgYXJlIGRvbmUgbW9kdWxvIHAuIEZvciByZWFkYWJpbGl0eSwgdGhlIHByb29mcyBkcm9wIGFsbAoraW5zdGFuY2VzIG9mIChtb2QgcCkuCisKKworQWxnb3JpdGhtIGZvdXItc3RlcCAoZm9yd2FyZCB0cmFuc2Zvcm0pOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgIGEgOj0gaW5wdXQgYXJyYXkKKyAgZCA6PSBsZW4oYSkgPSBSICogQworICBwIDo9IHByaW1lCisgIHcgOj0gcHJpbWl0aXZlIHJvb3Qgb2YgdW5pdHkgb2YgdGhlIHByaW1lIGZpZWxkCisgIHIgOj0gdyoqKChwLTEpL2QpCisgIEEgOj0gb3V0cHV0IGFycmF5CisKKyAgMSkgQXBwbHkgYSBsZW5ndGggUiBGTlQgdG8gZWFjaCBjb2x1bW4uCisKKyAgMikgTXVsdGlwbHkgZWFjaCBtYXRyaXggZWxlbWVudCAoYWRkcmVzc2VkIGJ5IGoqQyttKSBieSByKiooaiptKS4KKworICAzKSBBcHBseSBhIGxlbmd0aCBDIEZOVCB0byBlYWNoIHJvdy4KKworICA0KSBUcmFuc3Bvc2UgdGhlIG1hdHJpeC4KKworCitQcm9vZiAoZm9yd2FyZCB0cmFuc2Zvcm0pOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBUaGUgYWxnb3JpdGhtIGNhbiBiZSBkZXJpdmVkIHN0YXJ0aW5nIGZyb20gdGhlIHJlZ3VsYXIgZGVmaW5pdGlvbiBvZgorICB0aGUgZmluaXRlLWZpZWxkIHRyYW5zZm9ybSBvZiBsZW5ndGggZDoKKworICAgICAgICAgICAgZC0xCisgICAgICAgICAgICwtLS0tCisgICAgICAgICAgIFwKKyAgICBBW2tdID0gIHwgIGFbbF0gICogcioqKGsgKiBsKQorICAgICAgICAgICAvCisgICAgICAgICAgIGAtLS0tCisgICAgICAgICAgIGwgPSAwCisKKworICBUaGUgc3VtIGNhbiBiZSByZWFycmFuZ2VkIGludG8gdGhlIHN1bSBvZiB0aGUgc3VtcyBvZiBjb2x1bW5zOgorCisgICAgICAgICAgICBDLTEgICAgIFItMQorICAgICAgICAgICAsLS0tLSAgICwtLS0tCisgICAgICAgICAgIFwgICAgICAgXAorICAgICAgICAgPSAgfCAgICAgICB8ICBhW2kgKiBDICsgal0gKiByKiooayAqIChpICogQyArIGopKQorICAgICAgICAgICAvICAgICAgIC8KKyAgICAgICAgICAgYC0tLS0gICBgLS0tLQorICAgICAgICAgICBqID0gMCAgIGkgPSAwCisKKworICBFeHRyYWN0aW5nIGEgY29uc3RhbnQgZnJvbSB0aGUgaW5uZXIgc3VtOgorCisgICAgICAgICAgICBDLTEgICAgICAgICAgIFItMQorICAgICAgICAgICAsLS0tLSAgICAgICAgICwtLS0tCisgICAgICAgICAgIFwgICAgICAgICAgICAgXAorICAgICAgICAgPSAgfCAgcioqaypqICAqICB8ICBhW2kgKiBDICsgal0gKiByKiooayAqIGkgKiBDKQorICAgICAgICAgICAvICAgICAgICAgICAgIC8KKyAgICAgICAgICAgYC0tLS0gICAgICAgICBgLS0tLQorICAgICAgICAgICBqID0gMCAgICAgICAgIGkgPSAwCisKKworICBXaXRob3V0IGFueSBsb3NzIG9mIGdlbmVyYWxpdHksIGxldCBrID0gbiAqIFIgKyBtLAorICB3aGVyZSBuIDwgQyBhbmQgbSA8IFI6CisKKyAgICAgICAgICAgICAgICBDLTEgICAgICAgICAgICAgICAgICAgICAgICAgIFItMQorICAgICAgICAgICAgICAgLC0tLS0gICAgICAgICAgICAgICAgICAgICAgICAsLS0tLQorICAgICAgICAgICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQVtuKlIrbV0gPSAgfCAgcioqKFIqbipqKSAqIHIqKihtKmopICAqICB8ICBhW2kqQytqXSAqIHIqKihSKkMqbippKSAqIHIqKihDKm0qaSkKKyAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAgICAgICAgICAgLworICAgICAgICAgICAgICAgYC0tLS0gICAgICAgICAgICAgICAgICAgICAgICBgLS0tLQorICAgICAgICAgICAgICAgaiA9IDAgICAgICAgICAgICAgICAgICAgICAgICBpID0gMAorCisKKyAgU2luY2UgciA9IHcgKiogKChwLTEpIC8gKFIqQykpOgorCisgICAgIGEpIHIqKihSKkMqbippKSA9IHcqKigocC0xKSpuKmkpID0gMQorCisgICAgIGIpIHIqKihDKm0qaSkgPSB3KiooKHAtMSkgLyBSKSAqKiAobSppKSA9IHJfUiAqKiAobSppKQorCisgICAgIGMpIHIqKihSKm4qaikgPSB3KiooKHAtMSkgLyBDKSAqKiAobipqKSA9IHJfQyAqKiAobipqKQorCisgICAgIHJfUiA6PSByb290IG9mIHRoZSBzdWJmaWVsZCBvZiBsZW5ndGggUi4KKyAgICAgcl9DIDo9IHJvb3Qgb2YgdGhlIHN1YmZpZWxkIG9mIGxlbmd0aCBDLgorCisKKyAgICAgICAgICAgICAgICBDLTEgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFItMQorICAgICAgICAgICAgICAgLC0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAsLS0tLQorICAgICAgICAgICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgQVtuKlIrbV0gPSAgfCAgcl9DKioobipqKSAqIFsgcioqKG0qaikgICogICB8ICBhW2kqQytqXSAqIHJfUioqKG0qaSkgXQorICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgICAvCisgICAgICAgICAgICAgICBgLS0tLSAgICAgICAgICAgICAgICAgfCAgICAgICAgIGAtLS0tICAgIDEpIHRyYW5zZm9ybSB0aGUgY29sdW1ucworICAgICAgICAgICAgICAgaiA9IDAgICAgICAgICAgICAgICAgIHwgICAgICAgICBpID0gMAorICAgICAgICAgICAgICAgICBeICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICBgLS0gMikgbXVsdGlwbHkKKyAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICBgLS0gMykgdHJhbnNmb3JtIHRoZSByb3dzCisKKworICAgTm90ZSB0aGF0IHRoZSBlbnRpcmUgUkhTIGlzIGEgZnVuY3Rpb24gb2YgbiBhbmQgbSBhbmQgdGhhdCB0aGUgcmVzdWx0cworICAgZm9yIGVhY2ggcGFpciAobiwgbSkgYXJlIHN0b3JlZCBpbiBGb3J0cmFuIG9yZGVyLgorCisgICBMZXQgdGhlIHRlcm0gaW4gc3F1YXJlIGJyYWNrZXRzIGJlIGYobSwgaikuIFN0ZXAgMSkgYW5kIDIpIHByZWNhbGN1bGF0ZQorICAgdGhlIHRlcm0gZm9yIGFsbCAobSwgaikuIEFmdGVyIHRoYXQsIHRoZSBvcmlnaW5hbCBtYXRyaXggaXMgbm93IGEgbG9va3VwCisgICB0YWJsZSB3aXRoIHRoZSBtdGggZWxlbWVudCBpbiB0aGUganRoIGNvbHVtbiBhdCBsb2NhdGlvbiBtICogQyArIGouCisKKyAgIExldCB0aGUgY29tcGxldGUgUkhTIGJlIGcobSwgbikuIFN0ZXAgMykgZG9lcyBhbiBpbi1wbGFjZSB0cmFuc2Zvcm0gb2YKKyAgIGxlbmd0aCBuIG9uIGFsbCByb3dzLiBBZnRlciB0aGF0LCB0aGUgb3JpZ2luYWwgbWF0cml4IGlzIG5vdyBhIGxvb2t1cAorICAgdGFibGUgd2l0aCB0aGUgbXRoIGVsZW1lbnQgaW4gdGhlIG50aCBjb2x1bW4gYXQgbG9jYXRpb24gbSAqIEMgKyBuLgorCisgICBCdXQgZWFjaCAobSwgbikgcGFpciBzaG91bGQgYmUgd3JpdHRlbiB0byBsb2NhdGlvbiBuICogUiArIG0uIFRoZXJlZm9yZSwKKyAgIHN0ZXAgNCkgdHJhbnNwb3NlcyB0aGUgcmVzdWx0IG9mIHN0ZXAgMykuCisKKworCitBbGdvcml0aG0gZm91ci1zdGVwIChpbnZlcnNlIHRyYW5zZm9ybSk6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgQSAgOj0gaW5wdXQgYXJyYXkKKyAgZCAgOj0gbGVuKEEpID0gUiAqIEMKKyAgcCAgOj0gcHJpbWUKKyAgZCcgOj0gZCoqKHAtMikgICAgICAgICAgICAgIyBpbnZlcnNlIG9mIGQKKyAgdyAgOj0gcHJpbWl0aXZlIHJvb3Qgb2YgdW5pdHkgb2YgdGhlIHByaW1lIGZpZWxkCisgIHIgIDo9IHcqKigocC0xKS9kKSAgICAgICAgICMgcm9vdCBvZiB0aGUgc3ViZmllbGQKKyAgcicgOj0gdyoqKChwLTEpIC0gKHAtMSkvZCkgIyBpbnZlcnNlIG9mIHIKKyAgYSAgOj0gb3V0cHV0IGFycmF5CisKKyAgMCkgVmlldyB0aGUgbWF0cml4IGFzIGEgQypSIG1hdHJpeC4KKworICAxKSBUcmFuc3Bvc2UgdGhlIG1hdHJpeCwgcHJvZHVjaW5nIGFuIFIqQyBtYXRyaXguCisKKyAgMikgQXBwbHkgYSBsZW5ndGggQyBGTlQgdG8gZWFjaCByb3cuCisKKyAgMykgTXVsdGlwbHkgZWFjaCBtYXRyaXggZWxlbWVudCAoYWRkcmVzc2VkIGJ5IGkqQytuKSBieSByKiooaSpuKS4KKworICA0KSBBcHBseSBhIGxlbmd0aCBSIEZOVCB0byBlYWNoIGNvbHVtbi4KKworCitQcm9vZiAoaW52ZXJzZSB0cmFuc2Zvcm0pOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICBUaGUgYWxnb3JpdGhtIGNhbiBiZSBkZXJpdmVkIHN0YXJ0aW5nIGZyb20gdGhlIHJlZ3VsYXIgZGVmaW5pdGlvbiBvZgorICB0aGUgZmluaXRlLWZpZWxkIGludmVyc2UgdHJhbnNmb3JtIG9mIGxlbmd0aCBkOgorCisgICAgICAgICAgICAgICAgICBkLTEKKyAgICAgICAgICAgICAgICAgLC0tLS0KKyAgICAgICAgICAgICAgICAgXAorICAgIGFba10gPSAgZCcgKiAgfCAgQVtsXSAgKiByJyAqKiAoayAqIGwpCisgICAgICAgICAgICAgICAgIC8KKyAgICAgICAgICAgICAgICAgYC0tLS0KKyAgICAgICAgICAgICAgICAgbCA9IDAKKworCisgIFRoZSBzdW0gY2FuIGJlIHJlYXJyYW5nZWQgaW50byB0aGUgc3VtIG9mIHRoZSBzdW1zIG9mIGNvbHVtbnMuIE5vdGUKKyAgdGhhdCBhdCB0aGlzIHN0YWdlIHdlIHN0aWxsIGhhdmUgYSBDKlIgbWF0cml4LCBzbyBDIGRlbm90ZXMgdGhlIG51bWJlcgorICBvZiByb3dzOgorCisgICAgICAgICAgICAgICAgICBSLTEgICAgIEMtMQorICAgICAgICAgICAgICAgICAsLS0tLSAgICwtLS0tCisgICAgICAgICAgICAgICAgIFwgICAgICAgXAorICAgICAgICAgPSAgZCcgKiAgfCAgICAgICB8ICBhW2ogKiBSICsgaV0gKiByJyAqKiAoayAqIChqICogUiArIGkpKQorICAgICAgICAgICAgICAgICAvICAgICAgIC8KKyAgICAgICAgICAgICAgICAgYC0tLS0gICBgLS0tLQorICAgICAgICAgICAgICAgICBpID0gMCAgIGogPSAwCisKKworICBFeHRyYWN0aW5nIGEgY29uc3RhbnQgZnJvbSB0aGUgaW5uZXIgc3VtOgorCisgICAgICAgICAgICAgICAgICBSLTEgICAgICAgICAgICAgICAgQy0xCisgICAgICAgICAgICAgICAgICwtLS0tICAgICAgICAgICAgICAsLS0tLQorICAgICAgICAgICAgICAgICBcICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgPSAgZCcgKiAgfCAgcicgKiogKGsqaSkgICogIHwgIGFbaiAqIFIgKyBpXSAqIHInICoqIChrICogaiAqIFIpCisgICAgICAgICAgICAgICAgIC8gICAgICAgICAgICAgICAgICAvCisgICAgICAgICAgICAgICAgIGAtLS0tICAgICAgICAgICAgICBgLS0tLQorICAgICAgICAgICAgICAgICBpID0gMCAgICAgICAgICAgICAgaiA9IDAKKworCisgIFdpdGhvdXQgYW55IGxvc3Mgb2YgZ2VuZXJhbGl0eSwgbGV0IGsgPSBtICogQyArIG4sCisgIHdoZXJlIG0gPCBSIGFuZCBuIDwgQzoKKworICAgICAgICAgICAgICAgICAgICAgUi0xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEMtMQorICAgICAgICAgICAgICAgICAgICAsLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLC0tLS0KKyAgICAgICAgICAgICAgICAgICAgXCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBBW20qQytuXSA9IGQnICogIHwgIHInICoqIChDKm0qaSkgKiAgcicgKiogKG4qaSkgICAqICB8ICBhW2oqUitpXSAqIHInICoqIChSKkMqbSpqKSAqIHInICoqIChSKm4qaikKKyAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8KKyAgICAgICAgICAgICAgICAgICAgYC0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGAtLS0tCisgICAgICAgICAgICAgICAgICAgIGkgPSAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqID0gMAorCisKKyAgU2luY2UgcicgPSB3KiooKHAtMSkgLSAocC0xKS9kKSBhbmQgZCA9IFIqQzoKKworICAgICBhKSByJyAqKiAoUipDKm0qaikgPSB3KiooKHAtMSkqUipDKm0qaiAtIChwLTEpKm0qaikgPSAxCisKKyAgICAgYikgcicgKiogKEMqbSppKSA9IHcqKigocC0xKSpDIC0gKHAtMSkvUikgKiogKG0qaSkgPSByX1InICoqIChtKmkpCisKKyAgICAgYykgcicgKiogKFIqbipqKSA9IHJfQycgKiogKG4qaikKKworICAgICBkKSBkJyA9IGQqKihwLTIpID0gKFIqQykgKiogKHAtMikgPSBSKioocC0yKSAqIEMqKihwLTIpID0gUicgKiBDJworCisgICAgIHJfUicgOj0gaW52ZXJzZSBvZiB0aGUgcm9vdCBvZiB0aGUgc3ViZmllbGQgb2YgbGVuZ3RoIFIuCisgICAgIHJfQycgOj0gaW52ZXJzZSBvZiB0aGUgcm9vdCBvZiB0aGUgc3ViZmllbGQgb2YgbGVuZ3RoIEMuCisgICAgIFInICAgOj0gaW52ZXJzZSBvZiBSCisgICAgIEMnICAgOj0gaW52ZXJzZSBvZiBDCisKKworICAgICAgICAgICAgICAgICAgICAgUi0xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDLTEKKyAgICAgICAgICAgICAgICAgICAgLC0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsLS0tLSAgMikgdHJhbnNmb3JtIHRoZSByb3dzIG9mIGFeVAorICAgICAgICAgICAgICAgICAgICBcICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBBW20qQytuXSA9IFInICogIHwgIHJfUicgKiogKG0qaSkgKiBbIHInICoqIChuKmkpICogQycgKiAgfCAgYVtqKlIraV0gKiByX0MnICoqIChuKmopIF0KKyAgICAgICAgICAgICAgICAgICAgLyAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgICAgICAvICAgICAgIF4KKyAgICAgICAgICAgICAgICAgICAgYC0tLS0gICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICBgLS0tLSAgIHwKKyAgICAgICAgICAgICAgICAgICAgaSA9IDAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICBqID0gMCAgIHwKKyAgICAgICAgICAgICAgICAgICAgICBeICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIGAtLSAxKSBUcmFuc3Bvc2UgaW5wdXQgbWF0cml4CisgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICBgLS0gMykgbXVsdGlwbHkgICAgICAgICAgICAgdG8gYWRkcmVzcyBlbGVtZW50cyBieQorICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgKiBDICsgagorICAgICAgICAgICAgICAgICAgICAgIGAtLSAzKSB0cmFuc2Zvcm0gdGhlIGNvbHVtbnMKKworCisKKyAgIE5vdGUgdGhhdCB0aGUgZW50aXJlIFJIUyBpcyBhIGZ1bmN0aW9uIG9mIG0gYW5kIG4gYW5kIHRoYXQgdGhlIHJlc3VsdHMKKyAgIGZvciBlYWNoIHBhaXIgKG0sIG4pIGFyZSBzdG9yZWQgaW4gQyBvcmRlci4KKworICAgTGV0IHRoZSB0ZXJtIGluIHNxdWFyZSBicmFja2V0cyBiZSBmKG4sIGkpLiBXaXRob3V0IHN0ZXAgMSksIHRoZSBzdW0KKyAgIHdvdWxkIHBlcmZvcm0gYSBsZW5ndGggQyB0cmFuc2Zvcm0gb24gdGhlIGNvbHVtbnMgb2YgdGhlIGlucHV0IG1hdHJpeC4KKyAgIFRoaXMgaXMgYSkgaW5lZmZpY2llbnQgYW5kIGIpIHRoZSByZXN1bHRzIGFyZSBuZWVkZWQgaW4gQyBvcmRlciwgc28KKyAgIHN0ZXAgMSkgZXhjaGFuZ2VzIHJvd3MgYW5kIGNvbHVtbnMuCisKKyAgIFN0ZXAgMikgYW5kIDMpIHByZWNhbGN1bGF0ZSBmKG4sIGkpIGZvciBhbGwgKG4sIGkpLiBBZnRlciB0aGF0LCB0aGUKKyAgIG9yaWdpbmFsIG1hdHJpeCBpcyBub3cgYSBsb29rdXAgdGFibGUgd2l0aCB0aGUgaXRoIGVsZW1lbnQgaW4gdGhlIG50aAorICAgY29sdW1uIGF0IGxvY2F0aW9uIGkgKiBDICsgbi4KKworICAgTGV0IHRoZSBjb21wbGV0ZSBSSFMgYmUgZyhtLCBuKS4gU3RlcCA0KSBkb2VzIGFuIGluLXBsYWNlIHRyYW5zZm9ybSBvZgorICAgbGVuZ3RoIG0gb24gYWxsIGNvbHVtbnMuIEFmdGVyIHRoYXQsIHRoZSBvcmlnaW5hbCBtYXRyaXggaXMgbm93IGEgbG9va3VwCisgICB0YWJsZSB3aXRoIHRoZSBtdGggZWxlbWVudCBpbiB0aGUgbnRoIGNvbHVtbiBhdCBsb2NhdGlvbiBtICogQyArIG4sCisgICB3aGljaCBtZWFucyB0aGF0IGFsbCBBW2tdID0gQVttICogQyArIG5dIGFyZSBpbiB0aGUgY29ycmVjdCBvcmRlci4KKworCistLSAKKworICBbMV0gSm9lcmcgQXJuZHQ6ICJNYXR0ZXJzIENvbXB1dGF0aW9uYWwiCisgICAgICBodHRwOi8vd3d3Lmpqai5kZS9meHQvCisgIFsyXSBEYXZpZCBILiBCYWlsZXk6IEZGVHMgaW4gRXh0ZXJuYWwgb3IgSGllcmFyY2hpY2FsIE1lbW9yeQorICAgICAgaHR0cDovL2NyZC5sYmwuZ292L35kaGJhaWxleS9kaGJwYXBlcnMvCisKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvbXVsbW9kLTY0LnR4dCBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbGl0ZXJhdHVyZS9tdWxtb2QtNjQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzYmYyMmUKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvbXVsbW9kLTY0LnR4dApAQCAtMCwwICsxLDEyNyBAQAorCisKKygqIENvcHlyaWdodCAoYykgMjAxMSBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKikKKworCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAgICAgICAgICAgIENhbGN1bGF0ZSAoYSAqIGIpICUgcCB1c2luZyBzcGVjaWFsIHByaW1lcworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworQSBkZXNjcmlwdGlvbiBvZiB0aGUgYWxnb3JpdGhtIGNhbiBiZSBmb3VuZCBpbiB0aGUgYXBmbG9hdCBtYW51YWwgYnkKK1RvbW1pbGEgWzFdLgorCisKK0RlZmluaXRpb25zOgorLS0tLS0tLS0tLS0tCisKK0luIHRoZSB3aG9sZSBkb2N1bWVudCwgIj09IiBzdGFuZHMgZm9yICJpcyBjb25ncnVlbnQgd2l0aCIuCisKK1Jlc3VsdCBvZiBhICogYiBpbiB0ZXJtcyBvZiBoaWdoL2xvdyB3b3JkczoKKworICAgKDEpIGhpICogMioqNjQgKyBsbyA9IGEgKiBiCisKK1NwZWNpYWwgcHJpbWVzOgorCisgICAoMikgcCA9IDIqKjY0IC0geiArIDEsIHdoZXJlIHogPSAyKipuCisKK1NpbmdsZSBzdGVwIG1vZHVsYXIgcmVkdWN0aW9uOgorCisgICAoMykgUihoaSwgbG8pID0gaGkgKiB6IC0gaGkgKyBsbworCisKK1N0cmF0ZWd5OgorLS0tLS0tLS0tCisKKyAgIGEpIFNldCAoaGksIGxvKSB0byB0aGUgcmVzdWx0IG9mIGEgKiBiLgorCisgICBiKSBTZXQgKGhpJywgbG8nKSB0byB0aGUgcmVzdWx0IG9mIFIoaGksIGxvKS4KKworICAgYykgUmVwZWF0IHN0ZXAgYikgdW50aWwgMCA8PSBoaScgKiAyKio2NCArIGxvJyA8IDIqcC4KKworICAgZCkgSWYgdGhlIHJlc3VsdCBpcyBsZXNzIHRoYW4gcCwgcmV0dXJuIGxvJy4gT3RoZXJ3aXNlIHJldHVybiBsbycgLSBwLgorCisKK1RoZSByZWR1Y3Rpb24gc3RlcCBiKSBwcmVzZXJ2ZXMgY29uZ3J1ZW5jZToKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGhpICogMioqNjQgKyBsbyA9PSBoaSAqIHogLSBoaSArIGxvICAgKG1vZCBwKQorCisgICAgUHJvb2Y6CisgICAgfn5+fn5+CisKKyAgICAgICBoaSAqIDIqKjY0ICsgbG8gPSAoMioqNjQgLSB6ICsgMSkgKiBoaSArIHogKiBoaSAtIGhpICsgbG8KKworICAgICAgICAgICAgICAgICAgICAgICA9IHAgKiBoaSAgICAgICAgICAgICAgICsgeiAqIGhpIC0gaGkgKyBsbworCisgICAgICAgICAgICAgICAgICAgICAgID09IHogKiBoaSAtIGhpICsgbG8gICAobW9kIHApCisKKworTWF4aW11bSBudW1iZXJzIG9mIHN0ZXAgYik6CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUbyBhdm9pZCB1bm5lY2Nlc3NhcnkgZm9ybWFsaXNtLCBkZWZpbmU6CisKK2RlZiBSKGhpLCBsbywgeik6CisgICAgIHJldHVybiBkaXZtb2QoaGkgKiB6IC0gaGkgKyBsbywgMioqNjQpCisKKyMgRm9yIHNpbXBsaWNpdHksIGFzc3VtZSBoaT0yKio2NC0xLCBsbz0yKio2NC0xIGFmdGVyIHRoZQorIyBpbml0aWFsIG11bHRpcGxpY2F0aW9uIGEgKiBiLiBUaGlzIGlzIG9mIGNvdXJzZSBpbXBvc3NpYmxlCisjIGJ1dCBjZXJ0YWlubHkgY292ZXJzIGFsbCBjYXNlcy4KKworIyBUaGVuLCBmb3IgcDE6CitoaT0yKio2NC0xOyBsbz0yKio2NC0xOyB6PTIqKjMyCitwMSA9IDIqKjY0IC0geiArIDEKKworaGksIGxvID0gUihoaSwgbG8sIHopICAgICMgRmlyc3QgcmVkdWN0aW9uCitoaSwgbG8gPSBSKGhpLCBsbywgeikgICAgIyBTZWNvbmQgcmVkdWN0aW9uCitoaSAqIDIqKjY0ICsgbG8gPCAyICogcDEgIyBUcnVlCisKKyMgRm9yIHAyOgoraGk9MioqNjQtMTsgbG89MioqNjQtMTsgej0yKiozNAorcDIgPSAyKio2NCAtIHogKyAxCisKK2hpLCBsbyA9IFIoaGksIGxvLCB6KSAgICAjIEZpcnN0IHJlZHVjdGlvbgoraGksIGxvID0gUihoaSwgbG8sIHopICAgICMgU2Vjb25kIHJlZHVjdGlvbgoraGksIGxvID0gUihoaSwgbG8sIHopICAgICMgVGhpcmQgcmVkdWN0aW9uCitoaSAqIDIqKjY0ICsgbG8gPCAyICogcDIgIyBUcnVlCisKKyMgRm9yIHAzOgoraGk9MioqNjQtMTsgbG89MioqNjQtMTsgej0yKio0MAorcDMgPSAyKio2NCAtIHogKyAxCisKK2hpLCBsbyA9IFIoaGksIGxvLCB6KSAgICAjIEZpcnN0IHJlZHVjdGlvbgoraGksIGxvID0gUihoaSwgbG8sIHopICAgICMgU2Vjb25kIHJlZHVjdGlvbgoraGksIGxvID0gUihoaSwgbG8sIHopICAgICMgVGhpcmQgcmVkdWN0aW9uCitoaSAqIDIqKjY0ICsgbG8gPCAyICogcDMgIyBUcnVlCisKKworU3RlcCBkKSBwcmVzZXJ2ZXMgY29uZ3J1ZW5jZSBhbmQgeWllbGRzIGEgcmVzdWx0IDwgcDoKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgIENhc2UgaGkgPSAwOgorCisgICAgICAgQ2FzZSBsbyA8IHA6IHRyaXZpYWwuCisKKyAgICAgICBDYXNlIGxvID49IHA6CisKKyAgICAgICAgICBsbyA9PSBsbyAtIHAgICAobW9kIHApICAgICAgICAgICAgICMgcmVzdWx0IGlzIGNvbmdydWVudAorCisgICAgICAgICAgcCA8PSBsbyA8IDIqcCAgLT4gIDAgPD0gbG8gLSBwIDwgcCAjIHJlc3VsdCBpcyBpbiB0aGUgY29ycmVjdCByYW5nZQorCisgICBDYXNlIGhpID0gMToKKworICAgICAgIHAgPCAyKio2NCAvXCAyKio2NCArIGxvIDwgMipwICAtPiAgbG8gPCBwICAjIGxvIGlzIGFsd2F5cyBsZXNzIHRoYW4gcAorCisgICAgICAgMioqNjQgKyBsbyA9PSAyKio2NCArIChsbyAtIHApICAgKG1vZCBwKSAgICMgcmVzdWx0IGlzIGNvbmdydWVudAorCisgICAgICAgICAgICAgICAgICA9IGxvIC0gcCAgICMgZXhhY3RseSB0aGUgc2FtZSB2YWx1ZSBhcyB0aGUgcHJldmlvdXMgUkhTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaW4gdWludDY0X3QgYXJpdGhtZXRpYy4KKworICAgICAgIHAgPCAyKio2NCArIGxvIDwgMipwICAtPiAgMCA8IDIqKjY0ICsgKGxvIC0gcCkgPCBwICAjIGNvcnJlY3QgcmFuZ2UKKworCisKK1sxXSAgaHR0cDovL3d3dy5hcGZsb2F0Lm9yZy9hcGZsb2F0LzIuNDAvYXBmbG9hdC5wZGYKKworCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbGl0ZXJhdHVyZS9tdWxtb2QtcHByby50eHQgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvbXVsbW9kLXBwcm8udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzZTZlNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvbXVsbW9kLXBwcm8udHh0CkBAIC0wLDAgKzEsMjY5IEBACisKKworKCogQ29weXJpZ2h0IChjKSAyMDExIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAqKQorCisKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorICAgICAgICAgICAgIENhbGN1bGF0ZSAoYSAqIGIpICUgcCB1c2luZyB0aGUgODAtYml0IHg4NyBGUFUKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitBIGRlc2NyaXB0aW9uIG9mIHRoZSBhbGdvcml0aG0gY2FuIGJlIGZvdW5kIGluIHRoZSBhcGZsb2F0IG1hbnVhbCBieQorVG9tbWlsYSBbMV0uCisKK1RoZSBwcm9vZiBmb2xsb3dzIGFuIGFyZ3VtZW50IG1hZGUgYnkgR3Jhbmx1bmQvTW9udGdvbWVyeSBpbiBbMl0uCisKKworRGVmaW5pdGlvbnMgYW5kIGFzc3VtcHRpb25zOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitUaGUgODAtYml0IGV4dGVuZGVkIHByZWNpc2lvbiBmb3JtYXQgdXNlcyA2NCBiaXRzIGZvciB0aGUgc2lnbmlmaWNhbmQ6CisKKyAgKDEpIEYgPSA2NAorCitUaGUgbW9kdWx1cyBpcyBwcmltZSBhbmQgbGVzcyB0aGFuIDIqKjMxOgorCisgICgyKSAyIDw9IHAgPCAyKiozMQorCitUaGUgZmFjdG9ycyBhcmUgbGVzcyB0aGFuIHA6CisKKyAgKDMpIDAgPD0gYSA8IHAKKyAgKDQpIDAgPD0gYiA8IHAKKworVGhlIHByb2R1Y3QgYSAqIGIgaXMgbGVzcyB0aGFuIDIqKjYyIGFuZCBpcyB0aHVzIGV4YWN0IGluIDY0IGJpdHM6CisKKyAgKDUpIG4gPSBhICogYgorCitUaGUgcHJvZHVjdCBjYW4gYmUgcmVwcmVzZW50ZWQgaW4gdGVybXMgb2YgcXVvdGllbnQgYW5kIHJlbWFpbmRlcjoKKworICAoNikgbiA9IHEgKiBwICsgcgorCitVc2luZyAoMyksICg0KSBhbmQgdGhlIGZhY3QgdGhhdCBwIGlzIHByaW1lLCB0aGUgcmVtYWluZGVyIGlzIGFsd2F5cworZ3JlYXRlciB0aGFuIHplcm86CisKKyAgKDcpIDAgPD0gcSA8IHAgIC9cICAxIDw9IHIgPCBwCisKKworU3RyYXRlZ3k6CistLS0tLS0tLS0KKworUHJlY2FsY3VsYXRlIHRoZSA4MC1iaXQgbG9uZyBkb3VibGUgaW52ZXJzZSBvZiBwLCB3aXRoIGEgbWF4aW11bQorcmVsYXRpdmUgZXJyb3Igb2YgMioqKDEtRik6CisKKyAgKDgpIHBpbnYgPSAobG9uZyBkb3VibGUpMS4wIC8gcAorCitDYWxjdWxhdGUgYW4gZXN0aW1hdGUgZm9yIHEgPSBmbG9vcihuL3ApLiBUaGUgbXVsdGlwbGljYXRpb24gaGFzIGFub3RoZXIKK21heGltdW0gcmVsYXRpdmUgZXJyb3Igb2YgMioqKDEtRik6CisKKyAgKDkpIHFlc3QgPSBuICogcGludgorCitJZiB3ZSBjYW4gc2hvdyB0aGF0IHEgPCBxZXN0IDwgcSsxLCB0aGVuIHRydW5jKHFlc3QpID0gcS4gSXQgaXMgdGhlbgorZWFzeSB0byByZWNvdmVyIHRoZSByZW1haW5kZXIgci4gVGhlIGNvbXBsZXRlIGFsZ29yaXRobSBpczoKKworICBhKSBTZXQgdGhlIGNvbnRyb2wgd29yZCB0byA2NC1iaXQgcHJlY2lzaW9uIGFuZCB0cnVuY2F0aW9uIG1vZGUuCisKKyAgYikgbiA9IGEgKiBiICAgICAgICAgICAgICAjIENhbGN1bGF0ZSBleGFjdCBwcm9kdWN0LgorCisgIGMpIHFlc3QgPSBuICogcGludiAgICAgICAgIyBDYWxjdWxhdGUgZXN0aW1hdGUgZm9yIHRoZSBxdW90aWVudC4KKworICBkKSBxID0gKHFlc3QrMioqNjMpLTIqKjYzICMgVHJ1bmNhdGUgcWVzdCB0byB0aGUgZXhhY3QgcXVvdGllbnQuCisKKyAgZikgciA9IG4gLSBxICogcCAgICAgICAgICAjIENhbGN1bGF0ZSByZW1haW5kZXIuCisKKworUHJvb2YgZm9yIHEgPCBxZXN0IDwgcSsxOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitVc2luZyB0aGUgY3VtdWxhdGl2ZSBlcnJvciwgdGhlIGVycm9yIGJvdW5kcyBmb3IgcWVzdCBhcmU6CisKKyAgICAgICAgICAgICAgICBuICAgICAgICAgICAgICAgICAgICAgICBuICogKDEgKyAyKiooMS1GKSkqKjIKKyAgKDkpIC0tLS0tLS0tLS0tLS0tLS0tLS0tLSA8PSBxZXN0IDw9ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgIHAgKiAoMSArIDIqKigxLUYpKSoqMiAgICAgICAgICAgICAgICAgICAgICAgcAorCisKKyAgTGVtbWEgMToKKyAgLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgbiAgICAgICAgICAgICAgICAgICBxICogcCArIHIKKyAgICAoMTApIHEgPCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gPSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICBwICogKDEgKyAyKiooMS1GKSkqKjIgICBwICogKDEgKyAyKiooMS1GKSkqKjIKKworCisgICAgUHJvb2Y6CisgICAgfn5+fn5+CisKKyAgICAoSSkgICAgIHEgKiBwICogKDEgKyAyKiooMS1GKSkqKjIgPCBxICogcCArIHIKKworICAgIChJSSkgICAgcSAqIHAgKiAyKiooMi1GKSArIHEgKiBwICogMioqKDItMipGKSA8IHIKKworICAgIFVzaW5nICgxKSBhbmQgKDcpLCBpdCBpcyBzdWZmaWNpZW50IHRvIHNob3cgdGhhdDoKKworICAgIChJSUkpICAgcSAqIHAgKiAyKiooLTYyKSArIHEgKiBwICogMioqKC0xMjYpIDwgMSA8PSByCisKKyAgICAoSUlJKSBjYW4gZWFzaWx5IGJlIHZlcmlmaWVkIGJ5IHN1YnN0aXR1dGluZyB0aGUgbGFyZ2VzdCBwb3NzaWJsZQorICAgIHZhbHVlcyBwID0gMioqMzEtMSBhbmQgcSA9IDIqKjMxLTIuCisKKyAgICBUaGUgY3JpdGljYWwgY2FzZXMgb2NjdXIgd2hlbiByID0gMSwgbiA9IG0gKiBwICsgMS4gVGhlc2UgY2FzZXMKKyAgICBjYW4gYmUgZXhoYXVzdGl2ZWx5IHZlcmlmaWVkIHdpdGggYSB0ZXN0IHByb2dyYW0uCisKKworICBMZW1tYSAyOgorICAtLS0tLS0tLQorCisgICAgICAgICAgIG4gKiAoMSArIDIqKigxLUYpKSoqMiAgICAgKHEgKiBwICsgcikgKiAoMSArIDIqKigxLUYpKSoqMgorICAgICgxMSkgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gID0gIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIDwgIHEgKyAxCisgICAgICAgICAgICAgICAgICAgICBwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcAorCisgICAgUHJvb2Y6CisgICAgfn5+fn5+CisKKyAgICAoSSkgIChxICogcCArIHIpICsgKHEgKiBwICsgcikgKiAyKiooMi1GKSArIChxICogcCArIHIpICogMioqKDItMipGKSA8IHEgKiBwICsgcAorCisgICAgKElJKSAgKHEgKiBwICsgcikgKiAyKiooMi1GKSArIChxICogcCArIHIpICogMioqKDItMipGKSA8IHAgLSByCisKKyAgICBVc2luZyAoMSkgYW5kICg3KSwgaXQgaXMgc3VmZmljaWVudCB0byBzaG93IHRoYXQ6CisKKyAgICAoSUlJKSAocSAqIHAgKyByKSAqIDIqKigtNjIpICsgKHEgKiBwICsgcikgKiAyKiooLTEyNikgPCAxIDw9IHAgLSByCisKKyAgICAoSUlJKSBjYW4gZWFzaWx5IGJlIHZlcmlmaWVkIGJ5IHN1YnN0aXR1dGluZyB0aGUgbGFyZ2VzdCBwb3NzaWJsZQorICAgIHZhbHVlcyBwID0gMioqMzEtMSwgcSA9IDIqKjMxLTIgYW5kIHIgPSAyKiozMS0yLgorCisgICAgVGhlIGNyaXRpY2FsIGNhc2VzIG9jY3VyIHdoZW4gciA9IChwIC0gMSksIG4gPSBtICogcCAtIDEuIFRoZXNlIGNhc2VzCisgICAgY2FuIGJlIGV4aGF1c3RpdmVseSB2ZXJpZmllZCB3aXRoIGEgdGVzdCBwcm9ncmFtLgorCisKK1sxXSAgaHR0cDovL3d3dy5hcGZsb2F0Lm9yZy9hcGZsb2F0LzIuNDAvYXBmbG9hdC5wZGYKK1syXSAgaHR0cDovL2dtcGxpYi5vcmcvfnRlZ2UvZGl2Y25zdC1wbGRpOTQucGRmCisgICAgIFtTZWN0aW9uIDc6ICJVc2Ugb2YgZmxvYXRpbmcgcG9pbnQiXQorCisKKworKCogQ29xIHByb29mIGZvciAoMTApIGFuZCAoMTEpICopCisKK1JlcXVpcmUgSW1wb3J0IFpBcml0aC4KK1JlcXVpcmUgSW1wb3J0IFFBcml0aC4KK1JlcXVpcmUgSW1wb3J0IFFwb3dlci4KK1JlcXVpcmUgSW1wb3J0IFFhYnMuCitSZXF1aXJlIEltcG9ydCBQc2F0ei4KKworT3BlbiBTY29wZSBRX3Njb3BlLgorCisKK0x0YWMgcXJlZHVjZSBUIDo9CisgIHJld3JpdGUgPC0gKFFyZWRfY29ycmVjdCAoVCkpOyBzaW1wbCAoUXJlZCAoVCkpLgorCitUaGVvcmVtIFFsdF9tb3ZlX3JpZ2h0IDoKKyAgZm9yYWxsIHggeSB6OlEsIHggKyB6IDwgeSA8LT4geCA8IHkgLSB6LgorUHJvb2YuCisgIGludHJvcy4KKyAgc3BsaXQuCisgICAgaW50cm9zLgorICAgIHBzYXR6bCBRLgorICAgIGludHJvcy4KKyAgICBwc2F0emwgUS4KK1FlZC4KKworVGhlb3JlbSBRbHRfbXVsdF9ieV96IDoKKyAgZm9yYWxsIHggeSB6OlEsIDAgPCB6IC0+ICh4IDwgeSA8LT4geCAqIHogPCB5ICogeikuCitQcm9vZi4KKyAgaW50cm9zLgorICBzcGxpdC4KKyAgICBpbnRyb3MuCisgICAgYXBwbHkgUW11bHRfbHRfY29tcGF0X3IuIHRyaXZpYWwuIHRyaXZpYWwuCisgICAgaW50cm9zLgorICAgIHJld3JpdGUgPC0gKFFkaXZfbXVsdF9sIHggeikuIHJld3JpdGUgPC0gKFFkaXZfbXVsdF9sIHkgeikuCisgICAgYXBwbHkgUW11bHRfbHRfY29tcGF0X3IuCisgICAgYXBwbHkgUWx0X3NoaWZ0X2ludl9sLgorICAgIHRyaXZpYWwuIHBzYXR6bCBRLiB0cml2aWFsLiBwc2F0emwgUS4gcHNhdHpsIFEuCitRZWQuCisKK1RoZW9yZW0gUWxlX211bHRfcXVhZCA6CisgIGZvcmFsbCAoYSBiIGMgZDpRKSwKKyAgICAwIDw9IGEgLT4gYSA8PSBjIC0+CisgICAgMCA8PSBiIC0+IGIgPD0gZCAtPgorICAgICAgYSAqIGIgPD0gYyAqIGQuCisgIGludHJvcy4KKyAgcHNhdHogUS4KK1FlZC4KKworCitUaGVvcmVtIHFfbHRfcWVzdDoKKyAgZm9yYWxsIChwIHEgcjpRKSwKKyAgICAoMCA8IHApIC0+IChwIDw9ICgyIzEpXjMxIC0gMSkgLT4KKyAgICAoMCA8PSBxKSAtPiAocSA8PSBwIC0gMSkgLT4KKyAgICAoMSA8PSByKSAtPiAociA8PSBwIC0gMSkgLT4KKyAgICAgIHEgPCAocSAqIHAgKyByKSAvIChwICogKDEgKyAoMiMxKV4oLTYzKSleMikuCitQcm9vZi4KKyAgaW50cm9zLgorICByZXdyaXRlIFFsdF9tdWx0X2J5X3ogd2l0aCAoeiA6PSAocCAqICgxICsgKDIjMSleKC02MykpXjIpKS4KKworICB1bmZvbGQgUWRpdi4KKyAgcmV3cml0ZSA8LSBRbXVsdF9hc3NvYy4KKyAgcmV3cml0ZSAoUW11bHRfY29tbSAoLyAocCAqICgxICsgKDIgIyAxKSBeICgtNjMpKSBeIDIpKSAocCAqICgxICsgKDIgIyAxKSBeICgtNjMpKSBeIDIpKS4KKyAgcmV3cml0ZSBRbXVsdF9pbnZfci4KKyAgcmV3cml0ZSBRbXVsdF8xX3IuCisKKyAgYXNzZXJ0IChxICogKHAgKiAoMSArICgyICMgMSkgXiAoLTYzKSkgXiAyKSA9PSBxICogcCArIChxICogcCkgKiAoKDIgIyAxKSBeICgtNjIpICsgKDIgIyAxKSBeICgtMTI2KSkpLgorICBxcmVkdWNlICgoMSArICgyICMgMSkgXiAoLTYzKSkgXiAyKS4KKyAgcXJlZHVjZSAoKDIgIyAxKSBeICgtNjIpICsgKDIgIyAxKSBeICgtMTI2KSkuCisgIHJpbmdfc2ltcGxpZnkuCisgIHJlZmxleGl2aXR5LgorICByZXdyaXRlIEg1LgorCisgIHJld3JpdGUgUXBsdXNfY29tbS4KKyAgcmV3cml0ZSBRbHRfbW92ZV9yaWdodC4KKyAgcmluZ19zaW1wbGlmeSAocSAqIHAgKyByIC0gcSAqIHApLgorICBxcmVkdWNlICgoMiAjIDEpIF4gKC02MikgKyAoMiAjIDEpIF4gKC0xMjYpKS4KKworICBhcHBseSBRbHRfbGVfdHJhbnMgd2l0aCAoeSA6PSAxKS4KKyAgcmV3cml0ZSBRbHRfbXVsdF9ieV96IHdpdGggKHogOj0gODUwNzA1OTE3MzAyMzQ2MTU4NjU4NDM2NTE4NTc5NDIwNTI4NjQgIyAxODQ0Njc0NDA3MzcwOTU1MTYxNykuCisgIHJpbmdfc2ltcGxpZnkuCisKKyAgYXBwbHkgUWxlX2x0X3RyYW5zIHdpdGggKHkgOj0gKCgyICMgMSkgXiAzMSAtICgyIzEpKSAqICgoMiAjIDEpIF4gMzEgLSAxKSkuCisgIGFwcGx5IFFsZV9tdWx0X3F1YWQuCisgIGFzc3VtcHRpb24uIHBzYXR6bCBRLiBwc2F0emwgUS4gcHNhdHpsIFEuIHBzYXR6bCBRLiBwc2F0emwgUS4gYXNzdW1wdGlvbi4gcHNhdHpsIFEuIHBzYXR6bCBRLgorUWVkLgorCitUaGVvcmVtIHFlc3RfbHRfcXBsdXMxOgorICBmb3JhbGwgKHAgcSByOlEpLAorICAgICgwIDwgcCkgLT4gKHAgPD0gKDIjMSleMzEgLSAxKSAtPgorICAgICgwIDw9IHEpIC0+IChxIDw9IHAgLSAxKSAtPgorICAgICgxIDw9IHIpIC0+IChyIDw9IHAgLSAxKSAtPgorICAgICAgKChxICogcCArIHIpICogKDEgKyAoMiMxKV4oLTYzKSleMikgLyBwIDwgcSArIDEuCitQcm9vZi4KKyAgaW50cm9zLgorICByZXdyaXRlIFFsdF9tdWx0X2J5X3ogd2l0aCAoeiA6PSBwKS4KKworICB1bmZvbGQgUWRpdi4KKyAgcmV3cml0ZSA8LSBRbXVsdF9hc3NvYy4KKyAgcmV3cml0ZSAoUW11bHRfY29tbSAoLyBwKSBwKS4KKyAgcmV3cml0ZSBRbXVsdF9pbnZfci4KKyAgcmV3cml0ZSBRbXVsdF8xX3IuCisKKyAgYXNzZXJ0ICgocSAqIHAgKyByKSAqICgxICsgKDIgIyAxKSBeICgtNjMpKSBeIDIgPT0gcSAqIHAgKyByICsgKHEgKiBwICsgcikgKiAoKDIgIyAxKSBeICgtNjIpICsgKDIgIyAxKSBeICgtMTI2KSkpLgorICBxcmVkdWNlICgoMSArICgyICMgMSkgXiAoLTYzKSkgXiAyKS4KKyAgcXJlZHVjZSAoKDIgIyAxKSBeICgtNjIpICsgKDIgIyAxKSBeICgtMTI2KSkuCisgIHJpbmdfc2ltcGxpZnkuIHJlZmxleGl2aXR5LgorICByZXdyaXRlIEg1LgorCisgIHJld3JpdGUgPC0gUXBsdXNfYXNzb2MuIHJld3JpdGUgPC0gUXBsdXNfY29tbS4gcmV3cml0ZSBRbHRfbW92ZV9yaWdodC4KKyAgcmluZ19zaW1wbGlmeSAoKHEgKyAxKSAqIHAgLSBxICogcCkuCisKKyAgcmV3cml0ZSA8LSBRcGx1c19jb21tLiByZXdyaXRlIFFsdF9tb3ZlX3JpZ2h0LgorCisgIGFwcGx5IFFsdF9sZV90cmFucyB3aXRoICh5IDo9IDEpLgorICBxcmVkdWNlICgoMiAjIDEpIF4gKC02MikgKyAoMiAjIDEpIF4gKC0xMjYpKS4KKyAgCisgIHJld3JpdGUgUWx0X211bHRfYnlfeiB3aXRoICh6IDo9IDg1MDcwNTkxNzMwMjM0NjE1ODY1ODQzNjUxODU3OTQyMDUyODY0ICMgMTg0NDY3NDQwNzM3MDk1NTE2MTcpLgorICByaW5nX3NpbXBsaWZ5LgorCisgIHJpbmdfc2ltcGxpZnkgaW4gSDAuCisgIGFwcGx5IFFsZV9sdF90cmFucyB3aXRoICh5IDo9ICgyMTQ3NDgzNjQ2ICMgMSkgKiAoMjE0NzQ4MzY0NyAjIDEpICsgKDIxNDc0ODM2NDYgIyAxKSkuCisKKyAgYXBwbHkgUXBsdXNfbGVfY29tcGF0LgorICBhcHBseSBRbGVfbXVsdF9xdWFkLgorICBhc3N1bXB0aW9uLiBwc2F0emwgUS4gYXV0byB3aXRoIHFhcml0aC4gYXNzdW1wdGlvbi4gcHNhdHpsIFEuCisgIGF1dG8gd2l0aCBxYXJpdGguIGF1dG8gd2l0aCBxYXJpdGguCisgIHBzYXR6bCBRLiBwc2F0emwgUS4gYXNzdW1wdGlvbi4KK1FlZC4KKworCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbGl0ZXJhdHVyZS9zaXgtc3RlcC50eHQgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvc2l4LXN0ZXAudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1OTE0N2YKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvc2l4LXN0ZXAudHh0CkBAIC0wLDAgKzEsNjMgQEAKKworCisoKiBDb3B5cmlnaHQgKGMpIDIwMTEgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuICopCisKKworVGhlIFNpeCBTdGVwIFRyYW5zZm9ybToKKz09PT09PT09PT09PT09PT09PT09PT09CisKK0luIGxpYm1wZGVjLCB0aGUgc2l4LXN0ZXAgdHJhbnNmb3JtIGlzIHRoZSBNYXRyaXggRm91cmllciBUcmFuc2Zvcm0gKFNlZQorbWF0cml4LXRyYW5zZm9ybS50eHQpIGluIGRpc2d1aXNlLiBJdCBpcyBjYWxsZWQgc2l4LXN0ZXAgdHJhbnNmb3JtIGFmdGVyCithIHZhcmlhbnQgdGhhdCBhcHBlYXJzIGluIFsxXS4gVGhlIGFsZ29yaXRobSByZXF1aXJlcyB0aGF0IHRoZSBpbnB1dAorYXJyYXkgY2FuIGJlIHZpZXdlZCBhcyBhbiBSKkMgbWF0cml4LgorCisKK0FsZ29yaXRobSBzaXgtc3RlcCAoZm9yd2FyZCB0cmFuc2Zvcm0pOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgMWEpIFRyYW5zcG9zZSB0aGUgbWF0cml4LgorCisgIDFiKSBBcHBseSBhIGxlbmd0aCBSIEZOVCB0byBlYWNoIHJvdy4KKworICAxYykgVHJhbnNwb3NlIHRoZSBtYXRyaXguCisKKyAgMikgTXVsdGlwbHkgZWFjaCBtYXRyaXggZWxlbWVudCAoYWRkcmVzc2VkIGJ5IGoqQyttKSBieSByKiooaiptKS4KKworICAzKSBBcHBseSBhIGxlbmd0aCBDIEZOVCB0byBlYWNoIHJvdy4KKworICA0KSBUcmFuc3Bvc2UgdGhlIG1hdHJpeC4KKworTm90ZSB0aGF0IHN0ZXBzIDFhKSAtIDFjKSBhcmUgZXhhY3RseSBlcXVpdmFsZW50IHRvIHN0ZXAgMSkgb2YgdGhlIE1hdHJpeAorRm91cmllciBUcmFuc2Zvcm0uIEZvciBsYXJnZSBSLCBpdCBpcyBmYXN0ZXIgdG8gdHJhbnNwb3NlIHR3aWNlIGFuZCBkbworYSB0cmFuc2Zvcm0gb24gdGhlIHJvd3MgdGhhbiB0byBwZXJmb3JtIGEgY29sdW1uIHRyYW5zcG9zZSBkaXJlY3RseS4KKworCisKK0FsZ29yaXRobSBzaXgtc3RlcCAoaW52ZXJzZSB0cmFuc2Zvcm0pOgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgMCkgVmlldyB0aGUgbWF0cml4IGFzIGEgQypSIG1hdHJpeC4KKworICAxKSBUcmFuc3Bvc2UgdGhlIG1hdHJpeCwgcHJvZHVjaW5nIGFuIFIqQyBtYXRyaXguCisKKyAgMikgQXBwbHkgYSBsZW5ndGggQyBGTlQgdG8gZWFjaCByb3cuCisKKyAgMykgTXVsdGlwbHkgZWFjaCBtYXRyaXggZWxlbWVudCAoYWRkcmVzc2VkIGJ5IGkqQytuKSBieSByKiooaSpuKS4KKworICA0YSkgVHJhbnNwb3NlIHRoZSBtYXRyaXguCisKKyAgNGIpIEFwcGx5IGEgbGVuZ3RoIFIgRk5UIHRvIGVhY2ggcm93LgorCisgIDRjKSBUcmFuc3Bvc2UgdGhlIG1hdHJpeC4KKworQWdhaW4sIHN0ZXBzIDRhKSAtIDRjKSBhcmUgZXF1aXZhbGVudCB0byBzdGVwIDQpIG9mIHRoZSBNYXRyaXggRm91cmllcgorVHJhbnNmb3JtLgorCisKKworLS0gCisKKyAgWzFdIERhdmlkIEguIEJhaWxleTogRkZUcyBpbiBFeHRlcm5hbCBvciBIaWVyYXJjaGljYWwgTWVtb3J5CisgICAgICBodHRwOi8vY3JkLmxibC5nb3YvfmRoYmFpbGV5L2RoYnBhcGVycy8KKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvdW1vZGFyaXRoLmxpc3AgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL2xpdGVyYXR1cmUvdW1vZGFyaXRoLmxpc3AKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBhMTRhNAotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbGl0ZXJhdHVyZS91bW9kYXJpdGgubGlzcApAQCAtMCwwICsxLDY5MiBAQAorOworOyBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKzsKKzsgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cis7IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworOyBhcmUgbWV0OgorOworOyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorOyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCis7Cis7IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKzsgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKzsKKzsgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKzsgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCis7IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCis7IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCis7IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCis7IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCis7IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorOyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorOyBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCis7IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKzsgU1VDSCBEQU1BR0UuCis7CisKKworKGluLXBhY2thZ2UgIkFDTDIiKQorCisoaW5jbHVkZS1ib29rICJhcml0aG1ldGljL3RvcC13aXRoLW1ldGEiIDpkaXIgOnN5c3RlbSkKKyhpbmNsdWRlLWJvb2sgImFyaXRobWV0aWMtMi9mbG9vci1tb2QvZmxvb3ItbW9kIiA6ZGlyIDpzeXN0ZW0pCisKKworOzsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis7OyAgICAgICAgICAgIFByb29mcyBmb3Igc2V2ZXJhbCBmdW5jdGlvbnMgaW4gdW1vZGFyaXRoLmgKKzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisKKworOzsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cis7OyAgICAgICAgICAgICAgICAgICAgICAgICAgSGVscGVyIHRoZW9yZW1zCis7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKGRlZnRobSBlbGltLW1vZC1tPHg8MiptCisgIChpbXBsaWVzIChhbmQgKDw9IG0geCkKKyAgICAgICAgICAgICAgICAoPCB4ICgqIDIgbSkpCisgICAgICAgICAgICAgICAgKHJhdGlvbmFscCB4KSAocmF0aW9uYWxwIG0pKQorICAgICAgICAgICAoZXF1YWwgKG1vZCB4IG0pCisgICAgICAgICAgICAgICAgICAoKyB4ICgtIG0pKSkpKQorCisoZGVmdGhtIG1vZGF1eC0xYQorICAoaW1wbGllcyAoYW5kICg8IHggbSkgKDwgMCB4KSAoPCAwIG0pCisgICAgICAgICAgICAgICAgKHJhdGlvbmFscCB4KSAocmF0aW9uYWxwIG0pKQorICAgICAgICAgICAoZXF1YWwgKG1vZCAoLSB4KSBtKQorICAgICAgICAgICAgICAgICAgKCsgKC0geCkgbSkpKSkKKworKGRlZnRobSBtb2RhdXgtMWIKKyAgKGltcGxpZXMgKGFuZCAoPCAoLSB4KSBtKSAoPCB4IDApICg8IDAgbSkKKyAgICAgICAgICAgICAgICAocmF0aW9uYWxwIHgpIChyYXRpb25hbHAgbSkpCisgICAgICAgICAgIChlcXVhbCAobW9kIHggbSkKKyAgICAgICAgICAgICAgICAgICgrIHggbSkpKQorICA6aGludHMgKCgiR29hbCIgOnVzZSAoKDppbnN0YW5jZSBtb2RhdXgtMWEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHggKC0geCkpKSkpKSkKKworKGRlZnRobSBtb2RhdXgtMWMKKyAgKGltcGxpZXMgKGFuZCAoPCB4IG0pICg8IDAgeCkgKDwgMCBtKQorICAgICAgICAgICAgICAgIChyYXRpb25hbHAgeCkgKHJhdGlvbmFscCBtKSkKKyAgICAgICAgICAgKGVxdWFsIChtb2QgeCBtKQorICAgICAgICAgICAgICAgICAgeCkpKQorCisoZGVmdGhtIG1vZGF1eC0yYQorICAoaW1wbGllcyAoYW5kICg8IDAgYikgKDwgYiBtKQorICAgICAgICAgICAgICAgIChuYXRwIHgpIChuYXRwIGIpIChuYXRwIG0pCisgICAgICAgICAgICAgICAgKDwgKG1vZCAoKyBiIHgpIG0pIGIpKQorICAgICAgICAgICAoZXF1YWwgKG1vZCAoKyAoLSBtKSBiIHgpIG0pCisgICAgICAgICAgICAgICAgICAoKyAoLSBtKSBiIChtb2QgeCBtKSkpKSkKKworKGRlZnRobSBtb2RhdXgtMmIKKyAgKGltcGxpZXMgKGFuZCAoPCAwIGIpICg8IGIgbSkKKyAgICAgICAgICAgICAgICAobmF0cCB4KSAobmF0cCBiKSAobmF0cCBtKQorICAgICAgICAgICAgICAgICg8IChtb2QgKCsgYiB4KSBtKSBiKSkKKyAgICAgICAgICAgKGVxdWFsIChtb2QgKCsgYiB4KSBtKQorICAgICAgICAgICAgICAgICAgKCsgKC0gbSkgYiAobW9kIHggbSkpKSkKKyAgOmhpbnRzICgoIkdvYWwiIDp1c2UgKG1vZGF1eC0yYSkpKSkKKworKGRlZnRobSBsaW5lYXItbW9kLTEKKyAgKGltcGxpZXMgKGFuZCAoPCB4IG0pICg8IGIgbSkKKyAgICAgICAgICAgICAgICAobmF0cCB4KSAobmF0cCBiKQorICAgICAgICAgICAgICAgIChyYXRpb25hbHAgbSkpCisgICAgICAgICAoZXF1YWwgKDwgeCAobW9kICgrICgtIGIpIHgpIG0pKQorICAgICAgICAgICAgICAgICg8IHggYikpKQorICA6aGludHMgKCgiR29hbCIgOnVzZSAoKDppbnN0YW5jZSBtb2RhdXgtMWEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHggKCsgYiAoLSB4KSkpKSkpKSkKKworKGRlZnRobSBsaW5lYXItbW9kLTIKKyAgKGltcGxpZXMgKGFuZCAoPCAwIGIpICg8IGIgbSkKKyAgICAgICAgICAgICAgICAobmF0cCB4KSAobmF0cCBiKQorICAgICAgICAgICAgICAgIChuYXRwIG0pKQorICAgICAgICAgICAoZXF1YWwgKDwgKG1vZCB4IG0pCisgICAgICAgICAgICAgICAgICAgICAobW9kICgrICgtIGIpIHgpIG0pKQorICAgICAgICAgICAgICAgICAgKDwgKG1vZCB4IG0pIGIpKSkpCisKKyhkZWZ0aG0gbGluZWFyLW1vZC0zCisgIChpbXBsaWVzIChhbmQgKDwgeCBtKSAoPCBiIG0pCisgICAgICAgICAgICAgICAgKG5hdHAgeCkgKG5hdHAgYikKKyAgICAgICAgICAgICAgICAocmF0aW9uYWxwIG0pKQorICAgICAgICAgICAoZXF1YWwgKDw9IGIgKG1vZCAoKyBiIHgpIG0pKQorICAgICAgICAgICAgICAgICAgKDwgKCsgYiB4KSBtKSkpCisgIDpoaW50cyAoKCJHb2FsIiA6dXNlICgoOmluc3RhbmNlIGVsaW0tbW9kLW08eDwyKm0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHggKCsgYiB4KSkpKSkpKQorCisoZGVmdGhtIG1vZGF1eC0yYworICAoaW1wbGllcyAoYW5kICg8IDAgYikgKDwgYiBtKQorICAgICAgICAgICAgICAgIChuYXRwIHgpIChuYXRwIGIpIChuYXRwIG0pCisgICAgICAgICAgICAgICAgKDw9IGIgKG1vZCAoKyBiIHgpIG0pKSkKKyAgICAgICAgICAgKGVxdWFsIChtb2QgKCsgYiB4KSBtKQorICAgICAgICAgICAgICAgICAgKCsgYiAobW9kIHggbSkpKSkKKyAgOmhpbnRzICgoIlN1YmdvYWwgKjEvOCcnIiA6dXNlIChsaW5lYXItbW9kLTMpKSkpCisKKyhkZWZ0aG1kIG1vZGF1eC0yZAorICAoaW1wbGllcyAoYW5kICg8IHggbSkgKDwgMCB4KSAoPCAwIG0pCisgICAgICAgICAgICAgICAgKDwgKC0gbSkgYikgKDwgYiAwKSAocmF0aW9uYWxwIG0pCisgICAgICAgICAgICAgICAgKDw9IHggKG1vZCAoKyBiIHgpIG0pKQorICAgICAgICAgICAgICAgIChyYXRpb25hbHAgeCkgKHJhdGlvbmFscCBiKSkKKyAgICAgICAgICAgKGVxdWFsICgrICgtIG0pIChtb2QgKCsgYiB4KSBtKSkKKyAgICAgICAgICAgICAgICAgICgrIGIgeCkpKQorICA6aGludHMgKCgiR29hbCIgOmNhc2VzICgoPD0gMCAoKyBiIHgpKSkpCisgICAgICAgICAgKCJTdWJnb2FsIDInIiA6dXNlICgoOmluc3RhbmNlIG1vZGF1eC0xYgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4ICgrIGIgeCkpKSkpKSkKKworKGRlZnRobSBtb2QtbS1iCisgIChpbXBsaWVzIChhbmQgKDwgMCB4KSAoPCAwIGIpICg8IDAgbSkKKyAgICAgICAgICAgICAgICAoPCB4IGIpICg8IGIgbSkKKyAgICAgICAgICAgICAgICAobmF0cCB4KSAobmF0cCBiKSAobmF0cCBtKSkKKyAgICAgICAgICAgKGVxdWFsIChtb2QgKCsgKG1vZCAoLSB4KSBtKSBiKSBtKQorICAgICAgICAgICAgICAgICAgKG1vZCAoLSB4KSBiKSkpKQorCisKKzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorOzsgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZG1vZCwgc3VibW9kCis7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKGRlZnVuIGFkZG1vZCAoYSBiIG0gYmFzZSkKKyAgKGxldCogKChzIChtb2QgKCsgYSBiKSBiYXNlKSkKKyAgICAgICAgIChzIChpZiAoPCBzIGEpIChtb2QgKC0gcyBtKSBiYXNlKSBzKSkKKyAgICAgICAgIChzIChpZiAoPj0gcyBtKSAobW9kICgtIHMgbSkgYmFzZSkgcykpKQorICAgICAgICBzKSkKKworKGRlZnRobWQgYWRkbW9kLWNvcnJlY3QKKyAgKGltcGxpZXMgKGFuZCAoPCAwIG0pICg8IG0gYmFzZSkKKwkJKDwgYSBtKSAoPD0gYiBtKQorICAgICAgICAgICAgICAgIChuYXRwIG0pIChuYXRwIGJhc2UpCisgICAgICAgICAgICAgICAgKG5hdHAgYSkgKG5hdHAgYikpCisgICAgICAgICAgIChlcXVhbCAoYWRkbW9kIGEgYiBtIGJhc2UpCisgICAgICAgICAgICAgICAgICAobW9kICgrIGEgYikgbSkpKQorICA6aGludHMgKCgiR29hbCIgOmNhc2VzICgoPD0gYmFzZSAoKyBhIGIpKSkpCisgICAgICAgICAgKCJTdWJnb2FsIDIuMSciIDp1c2UgKCg6aW5zdGFuY2UgZWxpbS1tb2QtbTx4PDIqbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4ICgrIGEgYikpKSkpKSkKKworKGRlZnVuIHN1Ym1vZCAoYSBiIG0gYmFzZSkKKyAgKGxldCogKChkIChtb2QgKC0gYSBiKSBiYXNlKSkKKyAgICAgICAgIChkIChpZiAoPCBhIGQpIChtb2QgKCsgZCBtKSBiYXNlKSBkKSkpCisgICAgICAgIGQpKQorCisoZGVmdGhtZCBzdWJtb2QtYXV4MQorICAoaW1wbGllcyAoYW5kICg8IGEgKG1vZCAoKyBhICgtIGIpKSBiYXNlKSkKKyAgICAgICAgICAgICAgICAoPCAwIGJhc2UpICg8IGEgYmFzZSkgKDw9IGIgYmFzZSkKKyAgICAgICAgICAgICAgICAobmF0cCBiYXNlKSAobmF0cCBhKSAobmF0cCBiKSkKKyAgICAgICAgICAgKDwgYSBiKSkKKyAgOnJ1bGUtY2xhc3NlcyA6Zm9yd2FyZC1jaGFpbmluZykKKworKGRlZnRobWQgc3VibW9kLWF1eDIKKyAgKGltcGxpZXMgKGFuZCAoPD0gKG1vZCAoKyBhICgtIGIpKSBiYXNlKSBhKQorICAgICAgICAgICAgICAgICg8IDAgYmFzZSkgKDwgYSBiYXNlKSAoPCBiIGJhc2UpCisgICAgICAgICAgICAgICAgKG5hdHAgYmFzZSkgKG5hdHAgYSkgKG5hdHAgYikpCisgICAgICAgICAgICg8PSBiIGEpKQorICA6cnVsZS1jbGFzc2VzIDpmb3J3YXJkLWNoYWluaW5nKQorCisoZGVmdGhtZCBzdWJtb2QtY29ycmVjdAorICAoaW1wbGllcyAoYW5kICg8IDAgbSkgKDwgbSBiYXNlKQorCQkoPCBhIG0pICg8PSBiIG0pCisgICAgICAgICAgICAgICAgKG5hdHAgbSkgKG5hdHAgYmFzZSkKKyAgICAgICAgICAgICAgICAobmF0cCBhKSAobmF0cCBiKSkKKyAgICAgICAgICAgKGVxdWFsIChzdWJtb2QgYSBiIG0gYmFzZSkKKyAgICAgICAgICAgICAgICAgIChtb2QgKC0gYSBiKSBtKSkpCisgIDpoaW50cyAoKCJHb2FsIiA6Y2FzZXMgKCg8PSBiYXNlICgrIGEgYikpKSkKKyAgICAgICAgICAoIlN1YmdvYWwgMi4yIiA6dXNlICgoOmluc3RhbmNlIHN1Ym1vZC1hdXgxKSkpCisgICAgICAgICAgKCJTdWJnb2FsIDIuMicnJyIgOmNhc2VzICgoYW5kICg8IDAgKCsgYSAoLSBiKSBtKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDwgKCsgYSAoLSBiKSBtKSBtKSkpKQorICAgICAgICAgICgiU3ViZ29hbCAyLjEiIDp1c2UgKCg6aW5zdGFuY2Ugc3VibW9kLWF1eDIpKSkKKyAgICAgICAgICAoIlN1YmdvYWwgMS4yIiA6dXNlICgoOmluc3RhbmNlIHN1Ym1vZC1hdXgxKSkpCisgICAgICAgICAgKCJTdWJnb2FsIDEuMSIgOnVzZSAoKDppbnN0YW5jZSBzdWJtb2QtYXV4MikpKSkpCisKKworKGRlZnVuIHN1Ym1vZC0yIChhIGIgbSBiYXNlKQorICAobGV0KiAoKGQgKG1vZCAoLSBhIGIpIGJhc2UpKQorICAgICAgICAgKGQgKGlmICg8IGEgYikgKG1vZCAoKyBkIG0pIGJhc2UpIGQpKSkKKyAgICAgICAgZCkpCisKKyhkZWZ0aG0gc3VibW9kLTItY29ycmVjdAorICAoaW1wbGllcyAoYW5kICg8IDAgbSkgKDwgbSBiYXNlKQorCQkoPCBhIG0pICg8PSBiIG0pCisgICAgICAgICAgICAgICAgKG5hdHAgbSkgKG5hdHAgYmFzZSkKKyAgICAgICAgICAgICAgICAobmF0cCBhKSAobmF0cCBiKSkKKyAgICAgICAgICAgKGVxdWFsIChzdWJtb2QtMiBhIGIgbSBiYXNlKQorICAgICAgICAgICAgICAgICAgKG1vZCAoLSBhIGIpIG0pKSkKKyAgOmhpbnRzICgoIlN1YmdvYWwgMiciIDpjYXNlcyAoKGFuZCAoPCAwICgrIGEgKC0gYikgbSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDwgKCsgYSAoLSBiKSBtKSBtKSkpKSkpCisKKworOzsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorOzsgICAgICAgICAgICAgICAgICAgICAgICAgZXh0LXN1Ym1vZCBpcyBjb3JyZWN0Cis7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKzsgYSA8IDIqbSwgYiA8IDIqbQorKGRlZnVuIGV4dC1zdWJtb2QgKGEgYiBtIGJhc2UpCisgIChsZXQqICgoYSAoaWYgKD49IGEgbSkgKC0gYSBtKSBhKSkKKyAgICAgICAgIChiIChpZiAoPj0gYiBtKSAoLSBiIG0pIGIpKQorICAgICAgICAgKGQgKG1vZCAoLSBhIGIpIGJhc2UpKQorICAgICAgICAgKGQgKGlmICg8IGEgYikgKG1vZCAoKyBkIG0pIGJhc2UpIGQpKSkKKyAgICAgICAgZCkpCisKKzsgYSA8IDIqbSwgYiA8IDIqbQorKGRlZnVuIGV4dC1zdWJtb2QtMiAoYSBiIG0gYmFzZSkKKyAgKGxldCogKChhIChtb2QgYSBtKSkKKyAgICAgICAgIChiIChtb2QgYiBtKSkKKyAgICAgICAgIChkIChtb2QgKC0gYSBiKSBiYXNlKSkKKyAgICAgICAgIChkIChpZiAoPCBhIGIpIChtb2QgKCsgZCBtKSBiYXNlKSBkKSkpCisgICAgICAgIGQpKQorCisoZGVmdGhtZCBleHQtc3VibW9kLWV4dC1zdWJtb2QtMi1lcXVhbAorICAoaW1wbGllcyAoYW5kICg8IDAgbSkgKDwgbSBiYXNlKQorCQkoPCBhICgqIDIgbSkpICg8IGIgKCogMiBtKSkKKyAgICAgICAgICAgICAgICAobmF0cCBtKSAobmF0cCBiYXNlKQorICAgICAgICAgICAgICAgIChuYXRwIGEpIChuYXRwIGIpKQorICAgICAgICAgICAoZXF1YWwgKGV4dC1zdWJtb2QgYSBiIG0gYmFzZSkKKyAgICAgICAgICAgICAgICAgIChleHQtc3VibW9kLTIgYSBiIG0gYmFzZSkpKSkKKworKGRlZnRobWQgZXh0LXN1Ym1vZC0yLWNvcnJlY3QKKyAgKGltcGxpZXMgKGFuZCAoPCAwIG0pICg8IG0gYmFzZSkKKwkJKDwgYSAoKiAyIG0pKSAoPCBiICgqIDIgbSkpCisgICAgICAgICAgICAgICAgKG5hdHAgbSkgKG5hdHAgYmFzZSkKKyAgICAgICAgICAgICAgICAobmF0cCBhKSAobmF0cCBiKSkKKyAgICAgICAgICAgKGVxdWFsIChleHQtc3VibW9kLTIgYSBiIG0gYmFzZSkKKyAgICAgICAgICAgICAgICAgIChtb2QgKC0gYSBiKSBtKSkpKQorCisKKzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR3LXJlZHVjZSBpcyBjb3JyZWN0Cis7OyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyhkZWZ1biBkdy1yZWR1Y2UgKGhpIGxvIG0gYmFzZSkKKyAgKGxldCogKChyMSAobW9kIGhpIG0pKQorICAgICAgICAgKHIyIChtb2QgKCsgKCogcjEgYmFzZSkgbG8pIG0pKSkKKyAgICAgICAgcjIpKQorCisoZGVmdGhtZCBkdy1yZWR1Y2UtY29ycmVjdAorICAoaW1wbGllcyAoYW5kICg8IDAgbSkgKDwgbSBiYXNlKQorCQkoPCBoaSBiYXNlKSAoPCBsbyBiYXNlKQorICAgICAgICAgICAgICAgIChuYXRwIG0pIChuYXRwIGJhc2UpCisgICAgICAgICAgICAgICAgKG5hdHAgaGkpIChuYXRwIGxvKSkKKyAgICAgICAgICAgKGVxdWFsIChkdy1yZWR1Y2UgaGkgbG8gbSBiYXNlKQorICAgICAgICAgICAgICAgICAgKG1vZCAoKyAoKiBoaSBiYXNlKSBsbykgbSkpKSkKKworKGRlZnRobWQgPD0tbXVsdGlwbHktYm90aC1zaWRlcy1ieS16CisgIChpbXBsaWVzIChhbmQgKHJhdGlvbmFscCB4KSAocmF0aW9uYWxwIHkpCisgICAgICAgICAgICAgICAgKDwgMCB6KSAocmF0aW9uYWxwIHopKQorICAgICAgICAgICAoZXF1YWwgKDw9IHggeSkKKyAgICAgICAgICAgICAgICAgICg8PSAoKiB6IHgpICgqIHogeSkpKSkpCisKKyhkZWZ0aG1kIGR3LXJlZHVjZS1hdXgxCisgIChpbXBsaWVzIChhbmQgKDwgMCBtKSAoPCBtIGJhc2UpCisgICAgICAgICAgICAgICAgKG5hdHAgbSkgKG5hdHAgYmFzZSkKKyAgICAgICAgICAgICAgICAoPCBsbyBiYXNlKSAobmF0cCBsbykKKyAgICAgICAgICAgICAgICAoPCB4IG0pIChuYXRwIHgpKQorICAgICAgICAgICAoPCAoKyBsbyAoKiBiYXNlIHgpKSAoKiBiYXNlIG0pKSkKKyAgOmhpbnRzICgoIkdvYWwiIDpjYXNlcyAoKDw9ICgrIHggMSkgbSkpKQorICAgICAgICAgICgiU3ViZ29hbCAxJyciIDpjYXNlcyAoKDw9ICgqIGJhc2UgKCsgeCAxKSkgKCogYmFzZSBtKSkpKQorICAgICAgICAgICgic3ViZ29hbCAxLjIiIDp1c2UgKCg6aW5zdGFuY2UgPD0tbXVsdGlwbHktYm90aC1zaWRlcy1ieS16CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCAoKyAxIHgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHkgbSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh6IGJhc2UpKSkpKSkKKworKGRlZnRobSBkdy1yZWR1Y2UtYXV4MgorICAoaW1wbGllcyAoYW5kICg8IHggKCogYmFzZSBtKSkKKyAgICAgICAgICAgICAgICAoPCAwIG0pICg8IG0gYmFzZSkKKyAgICAgICAgICAgICAgICAobmF0cCBtKSAobmF0cCBiYXNlKSAobmF0cCB4KSkKKyAgICAgICAgICAgKDwgKGZsb29yIHggbSkgYmFzZSkpKQorCis7OyBUaGlzIGlzIHRoZSBuZWNlc3NhcnkgY29uZGl0aW9uIGZvciB1c2luZyBfbXBkX2Rpdl93b3JkcygpLgorKGRlZnRobWQgZHctcmVkdWNlLXNlY29uZC1xdW90aWVudC1maXRzLWluLXNpbmdsZS13b3JkCisgIChpbXBsaWVzIChhbmQgKDwgMCBtKSAoPCBtIGJhc2UpCisgICAgICAgICAgICAgICAgKDwgaGkgYmFzZSkgKDwgbG8gYmFzZSkKKyAgICAgICAgICAgICAgICAobmF0cCBtKSAobmF0cCBiYXNlKQorICAgICAgICAgICAgICAgIChuYXRwIGhpKSAobmF0cCBsbykKKyAgICAgICAgICAgICAgICAoZXF1YWwgcjEgKG1vZCBoaSBtKSkpCisgICAgICAgICAgICg8IChmbG9vciAoKyAoKiByMSBiYXNlKSBsbykgbSkKKyAgICAgICAgICAgICAgYmFzZSkpCisgIDpoaW50cyAoKCJHb2FsIiA6Y2FzZXMgKCg8IHIxIG0pKSkKKyAgICAgICAgICAoIlN1YmdvYWwgMScnIiA6Y2FzZXMgKCg8ICgrIGxvICgqIGJhc2UgKG1vZCBoaSBtKSkpICgqIGJhc2UgbSkpKSkKKyAgICAgICAgICAoIlN1YmdvYWwgMS4yIiA6dXNlICgoOmluc3RhbmNlIGR3LXJlZHVjZS1hdXgxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCAobW9kIGhpIG0pKSkpKSkpCisKKworOzsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHctc3VibW9kIGlzIGNvcnJlY3QKKzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworKGRlZnVuIGR3LXN1Ym1vZCAoYSBoaSBsbyBtIGJhc2UpCisgIChsZXQqICgociAoZHctcmVkdWNlIGhpIGxvIG0gYmFzZSkpCisgICAgICAgICAoZCAobW9kICgtIGEgcikgYmFzZSkpCisgICAgICAgICAoZCAoaWYgKDwgYSByKSAobW9kICgrIGQgbSkgYmFzZSkgZCkpKQorICAgICAgICBkKSkKKworKGRlZnRobWQgZHctc3VibW9kLWF1eDEKKyAgKGltcGxpZXMgKGFuZCAobmF0cCBhKSAoPCAwIG0pIChuYXRwIG0pCisgICAgICAgICAgICAgICAgKG5hdHAgeCkgKGVxdWFsIHIgKG1vZCB4IG0pKSkKKyAgICAgICAgICAgKGVxdWFsIChtb2QgKC0gYSB4KSBtKQorICAgICAgICAgICAgICAgICAgKG1vZCAoLSBhIHIpIG0pKSkpCisKKyhkZWZ0aG1kIGR3LXN1Ym1vZC1jb3JyZWN0CisgIChpbXBsaWVzIChhbmQgKDwgMCBtKSAoPCBtIGJhc2UpCisgICAgICAgICAgICAgICAgKG5hdHAgYSkgKDwgYSBtKSAKKwkJKDwgaGkgYmFzZSkgKDwgbG8gYmFzZSkKKyAgICAgICAgICAgICAgICAobmF0cCBtKSAobmF0cCBiYXNlKQorICAgICAgICAgICAgICAgIChuYXRwIGhpKSAobmF0cCBsbykpCisgICAgICAgICAgIChlcXVhbCAoZHctc3VibW9kIGEgaGkgbG8gbSBiYXNlKQorICAgICAgICAgICAgICAgICAgKG1vZCAoLSBhICgrICgqIGJhc2UgaGkpIGxvKSkgbSkpKQorICA6aGludHMgKCgiR29hbCIgOmluLXRoZW9yeSAoZGlzYWJsZSBkdy1yZWR1Y2UpCisgICAgICAgICAgICAgICAgICA6dXNlICgoOmluc3RhbmNlIGR3LXN1Ym1vZC1hdXgxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4ICgrIGxvICgqIGJhc2UgaGkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHIgKGR3LXJlZHVjZSBoaSBsbyBtIGJhc2UpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICg6aW5zdGFuY2UgZHctcmVkdWNlLWNvcnJlY3QpKSkpKQorCisKKzs7ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzs7ICAgICAgICAgICAgICAgICAgICAgIEFOU0kgQyBhcml0aG1ldGljIGZvciB1aW50NjRfdAorOzsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisoZGVmdW4gYWRkIChhIGIpCisgIChtb2QgKCsgYSBiKQorICAgICAgIChleHB0IDIgNjQpKSkKKworKGRlZnVuIHN1YiAoYSBiKQorICAobW9kICgtIGEgYikKKyAgICAgICAoZXhwdCAyIDY0KSkpCisKKyhkZWZ1biA8PCAodyBuKQorICAobW9kICgqIHcgKGV4cHQgMiBuKSkKKyAgICAgICAoZXhwdCAyIDY0KSkpCisKKyhkZWZ1biA+PiAodyBuKQorICAoZmxvb3IgdyAoZXhwdCAyIG4pKSkKKworOzsgam9pbiB1cHBlciBhbmQgbG93ZXIgaGFsZiBvZiBhIGRvdWJsZSB3b3JkLCB5aWVsZGluZyBhIDEyOCBiaXQgbnVtYmVyCisoZGVmdW4gam9pbiAoaGkgbG8pCisgICgrICgqIChleHB0IDIgNjQpIGhpKSBsbykpCisKKworOzsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKzs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFzdCBtb2R1bGFyIHJlZHVjdGlvbgorOzsgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworOzsgVGhlc2UgYXJlIHRoZSB0aHJlZSBwcmltZXMgdXNlZCBpbiB0aGUgTnVtYmVyIFRoZW9yZXRpYyBUcmFuc2Zvcm0uCis7OyBBIGZhc3QgbW9kdWxhciByZWR1Y3Rpb24gc2NoZW1lIGV4aXN0cyBmb3IgYWxsIG9mIHRoZW0uCisoZGVmbWFjcm8gcDEgKCkKKyAgKCsgKGV4cHQgMiA2NCkgKC0gKGV4cHQgMiAzMikpIDEpKQorCisoZGVmbWFjcm8gcDIgKCkKKyAgKCsgKGV4cHQgMiA2NCkgKC0gKGV4cHQgMiAzNCkpIDEpKQorCisoZGVmbWFjcm8gcDMgKCkKKyAgKCsgKGV4cHQgMiA2NCkgKC0gKGV4cHQgMiA0MCkpIDEpKQorCisKKzs7IHJlZHVjZSB0aGUgZG91YmxlIHdvcmQgbnVtYmVyIGhpKjIqKjY0ICsgbG8gKG1vZCBwMSkKKyhkZWZ1biBzaW1wbGUtbW9kLXJlZHVjZS1wMSAoaGkgbG8pCisgICgrICgqIChleHB0IDIgMzIpIGhpKSAoLSBoaSkgbG8pKQorCis7OyByZWR1Y2UgdGhlIGRvdWJsZSB3b3JkIG51bWJlciBoaSoyKio2NCArIGxvIChtb2QgcDIpCisoZGVmdW4gc2ltcGxlLW1vZC1yZWR1Y2UtcDIgKGhpIGxvKQorICAoKyAoKiAoZXhwdCAyIDM0KSBoaSkgKC0gaGkpIGxvKSkKKworOzsgcmVkdWNlIHRoZSBkb3VibGUgd29yZCBudW1iZXIgaGkqMioqNjQgKyBsbyAobW9kIHAzKQorKGRlZnVuIHNpbXBsZS1tb2QtcmVkdWNlLXAzIChoaSBsbykKKyAgKCsgKCogKGV4cHQgMiA0MCkgaGkpICgtIGhpKSBsbykpCisKKworOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis7ICAgICAgVGhlIG1vZHVsYXIgcmVkdWN0aW9ucyBnaXZlbiBhYm92ZSBhcmUgY29ycmVjdAorOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyhkZWZ0aG1kIGNvbmdydWVuY2UtcDEtYXV4CisgIChlcXVhbCAoKiAoZXhwdCAyIDY0KSBoaSkKKyAgICAgICAgICgrICgqIChwMSkgaGkpCisgICAgICAgICAgICAoKiAoZXhwdCAyIDMyKSBoaSkKKyAgICAgICAgICAgICgtIGhpKSkpKQorCisoZGVmdGhtZCBjb25ncnVlbmNlLXAyLWF1eAorICAoZXF1YWwgKCogKGV4cHQgMiA2NCkgaGkpCisgICAgICAgICAoKyAoKiAocDIpIGhpKQorICAgICAgICAgICAgKCogKGV4cHQgMiAzNCkgaGkpCisgICAgICAgICAgICAoLSBoaSkpKSkKKworKGRlZnRobWQgY29uZ3J1ZW5jZS1wMy1hdXgKKyAgKGVxdWFsICgqIChleHB0IDIgNjQpIGhpKQorICAgICAgICAgKCsgKCogKHAzKSBoaSkKKyAgICAgICAgICAgICgqIChleHB0IDIgNDApIGhpKQorICAgICAgICAgICAgKC0gaGkpKSkpCisKKyhkZWZ0aG1kIG1vZC1hdWdtZW50CisgIChpbXBsaWVzIChhbmQgKHJhdGlvbmFscCB4KQorICAgICAgICAgICAgICAgIChyYXRpb25hbHAgeSkKKyAgICAgICAgICAgICAgICAocmF0aW9uYWxwIG0pKQorICAgICAgICAgICAoZXF1YWwgKG1vZCAoKyB4IHkpIG0pCisgICAgICAgICAgICAgICAgICAobW9kICgrIHggKG1vZCB5IG0pKSBtKSkpKQorCisoZGVmdGhtZCBzaW1wbGUtbW9kLXJlZHVjZS1wMS1jb25ncnVlbnQKKyAgKGltcGxpZXMgKGFuZCAoaW50ZWdlcnAgaGkpCisgICAgICAgICAgICAgICAgKGludGVnZXJwIGxvKSkKKyAgICAgICAgICAgKGVxdWFsIChtb2QgKHNpbXBsZS1tb2QtcmVkdWNlLXAxIGhpIGxvKSAocDEpKQorICAgICAgICAgICAgICAgICAgKG1vZCAoam9pbiBoaSBsbykgKHAxKSkpKQorICA6aGludHMgKCgiR29hbCcnIiA6dXNlICgoOmluc3RhbmNlIGNvbmdydWVuY2UtcDEtYXV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoOmluc3RhbmNlIG1vZC1hdWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG0gKHAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCAoKyAoLSBoaSkgbG8gKCogKGV4cHQgMiAzMikgaGkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeSAoKiAocDEpIGhpKSkpKSkpKQorCisoZGVmdGhtZCBzaW1wbGUtbW9kLXJlZHVjZS1wMi1jb25ncnVlbnQKKyAgKGltcGxpZXMgKGFuZCAoaW50ZWdlcnAgaGkpCisgICAgICAgICAgICAgICAgKGludGVnZXJwIGxvKSkKKyAgICAgICAgICAgKGVxdWFsIChtb2QgKHNpbXBsZS1tb2QtcmVkdWNlLXAyIGhpIGxvKSAocDIpKQorICAgICAgICAgICAgICAgICAgKG1vZCAoam9pbiBoaSBsbykgKHAyKSkpKQorICA6aGludHMgKCgiR29hbCcnIiA6dXNlICgoOmluc3RhbmNlIGNvbmdydWVuY2UtcDItYXV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoOmluc3RhbmNlIG1vZC1hdWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG0gKHAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCAoKyAoLSBoaSkgbG8gKCogKGV4cHQgMiAzNCkgaGkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeSAoKiAocDIpIGhpKSkpKSkpKQorCisoZGVmdGhtZCBzaW1wbGUtbW9kLXJlZHVjZS1wMy1jb25ncnVlbnQKKyAgKGltcGxpZXMgKGFuZCAoaW50ZWdlcnAgaGkpCisgICAgICAgICAgICAgICAgKGludGVnZXJwIGxvKSkKKyAgICAgICAgICAgKGVxdWFsIChtb2QgKHNpbXBsZS1tb2QtcmVkdWNlLXAzIGhpIGxvKSAocDMpKQorICAgICAgICAgICAgICAgICAgKG1vZCAoam9pbiBoaSBsbykgKHAzKSkpKQorICA6aGludHMgKCgiR29hbCcnIiA6dXNlICgoOmluc3RhbmNlIGNvbmdydWVuY2UtcDMtYXV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAoOmluc3RhbmNlIG1vZC1hdWdtZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG0gKHAzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeCAoKyAoLSBoaSkgbG8gKCogKGV4cHQgMiA0MCkgaGkpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoeSAoKiAocDMpIGhpKSkpKSkpKQorCisKKzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis7ICBXZSBuZWVkIGEgbnVtYmVyIGxlc3MgdGhhbiAyKnAsIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGUgdHJpY2sgZnJvbQorOyAgZWxpbS1tb2QtbTx4PDIqbSBmb3IgdGhlIGZpbmFsIHJlZHVjdGlvbi4KKzsgIEZvciBwMSwgdHdvIG1vZHVsYXIgcmVkdWN0aW9ucyBhcmUgc3VmZmljaWVudCwgZm9yIHAyIGFuZCBwMyB0aHJlZS4KKzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKzs7IHAxOiB0aGUgZmlyc3QgcmVkdWN0aW9uIGlzIGxlc3MgdGhhbiAyKio5NgorKGRlZnRobWQgc2ltcGxlLW1vZC1yZWR1Y2UtcDEtPC0yKio5NgorICAoaW1wbGllcyAoYW5kICg8IGhpIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgICg8IGxvIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgIChuYXRwIGhpKSAobmF0cCBsbykpCisgICAgICAgICAgICg8IChzaW1wbGUtbW9kLXJlZHVjZS1wMSBoaSBsbykKKyAgICAgICAgICAgICAgKGV4cHQgMiA5NikpKSkKKworOzsgcDE6IHRoZSBzZWNvbmQgcmVkdWN0aW9uIGlzIGxlc3MgdGhhbiAyKnAxCisoZGVmdGhtZCBzaW1wbGUtbW9kLXJlZHVjZS1wMS08LTIqcDEKKyAgKGltcGxpZXMgKGFuZCAoPCBoaSAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAoPCBsbyAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAoPCAoam9pbiBoaSBsbykgKGV4cHQgMiA5NikpCisgICAgICAgICAgICAgICAgKG5hdHAgaGkpIChuYXRwIGxvKSkKKyAgICAgICAgICAgKDwgKHNpbXBsZS1tb2QtcmVkdWNlLXAxIGhpIGxvKQorICAgICAgICAgICAgICAoKiAyIChwMSkpKSkpCisKKworOzsgcDI6IHRoZSBmaXJzdCByZWR1Y3Rpb24gaXMgbGVzcyB0aGFuIDIqKjk4CisoZGVmdGhtZCBzaW1wbGUtbW9kLXJlZHVjZS1wMi08LTIqKjk4CisgIChpbXBsaWVzIChhbmQgKDwgaGkgKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKDwgbG8gKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKG5hdHAgaGkpIChuYXRwIGxvKSkKKyAgICAgICAgICAgKDwgKHNpbXBsZS1tb2QtcmVkdWNlLXAyIGhpIGxvKQorICAgICAgICAgICAgICAoZXhwdCAyIDk4KSkpKQorCis7OyBwMjogdGhlIHNlY29uZCByZWR1Y3Rpb24gaXMgbGVzcyB0aGFuIDIqKjY5CisoZGVmdGhtZCBzaW1wbGUtbW9kLXJlZHVjZS1wMi08LTIqNjkKKyAgKGltcGxpZXMgKGFuZCAoPCBoaSAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAoPCBsbyAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAoPCAoam9pbiBoaSBsbykgKGV4cHQgMiA5OCkpCisgICAgICAgICAgICAgICAgKG5hdHAgaGkpIChuYXRwIGxvKSkKKyAgICAgICAgICAgKDwgKHNpbXBsZS1tb2QtcmVkdWNlLXAyIGhpIGxvKQorICAgICAgICAgICAgICAoZXhwdCAyIDY5KSkpKQorCis7OyBwMzogdGhlIHRoaXJkIHJlZHVjdGlvbiBpcyBsZXNzIHRoYW4gMipwMgorKGRlZnRobWQgc2ltcGxlLW1vZC1yZWR1Y2UtcDItPC0yKnAyCisgIChpbXBsaWVzIChhbmQgKDwgaGkgKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKDwgbG8gKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKDwgKGpvaW4gaGkgbG8pIChleHB0IDIgNjkpKQorICAgICAgICAgICAgICAgIChuYXRwIGhpKSAobmF0cCBsbykpCisgICAgICAgICAgICg8IChzaW1wbGUtbW9kLXJlZHVjZS1wMiBoaSBsbykKKyAgICAgICAgICAgICAgKCogMiAocDIpKSkpKQorCisKKzs7IHAzOiB0aGUgZmlyc3QgcmVkdWN0aW9uIGlzIGxlc3MgdGhhbiAyKioxMDQKKyhkZWZ0aG1kIHNpbXBsZS1tb2QtcmVkdWNlLXAzLTwtMioqMTA0CisgIChpbXBsaWVzIChhbmQgKDwgaGkgKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKDwgbG8gKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKG5hdHAgaGkpIChuYXRwIGxvKSkKKyAgICAgICAgICAgKDwgKHNpbXBsZS1tb2QtcmVkdWNlLXAzIGhpIGxvKQorICAgICAgICAgICAgICAoZXhwdCAyIDEwNCkpKSkKKworOzsgcDM6IHRoZSBzZWNvbmQgcmVkdWN0aW9uIGlzIGxlc3MgdGhhbiAyKio4MQorKGRlZnRobWQgc2ltcGxlLW1vZC1yZWR1Y2UtcDMtPC0yKio4MQorICAoaW1wbGllcyAoYW5kICg8IGhpIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgICg8IGxvIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgICg8IChqb2luIGhpIGxvKSAoZXhwdCAyIDEwNCkpCisgICAgICAgICAgICAgICAgKG5hdHAgaGkpIChuYXRwIGxvKSkKKyAgICAgICAgICAgKDwgKHNpbXBsZS1tb2QtcmVkdWNlLXAzIGhpIGxvKQorICAgICAgICAgICAgICAoZXhwdCAyIDgxKSkpKQorCis7OyBwMzogdGhlIHRoaXJkIHJlZHVjdGlvbiBpcyBsZXNzIHRoYW4gMipwMworKGRlZnRobWQgc2ltcGxlLW1vZC1yZWR1Y2UtcDMtPC0yKnAzCisgIChpbXBsaWVzIChhbmQgKDwgaGkgKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKDwgbG8gKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKDwgKGpvaW4gaGkgbG8pIChleHB0IDIgODEpKQorICAgICAgICAgICAgICAgIChuYXRwIGhpKSAobmF0cCBsbykpCisgICAgICAgICAgICg8IChzaW1wbGUtbW9kLXJlZHVjZS1wMyBoaSBsbykKKyAgICAgICAgICAgICAgKCogMiAocDMpKSkpKQorCisKKzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorOyAgICAgIFRoZSBzaW1wbGUgbW9kdWxhciByZWR1Y3Rpb25zLCBhZGFwdGVkIGZvciBjb21waWxlciBmcmllbmRseSBDCis7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworKGRlZnVuIG1vZC1yZWR1Y2UtcDEgKGhpIGxvKQorICAobGV0KiAoKHkgaGkpCisgICAgICAgICAoeCB5KQorICAgICAgICAgKGhpICg+PiBoaSAzMikpCisgICAgICAgICAoeCAoc3ViIGxvIHgpKQorICAgICAgICAgKGhpIChpZiAoPiB4IGxvKSAoKyBoaSAtMSkgaGkpKQorICAgICAgICAgKHkgKDw8IHkgMzIpKQorICAgICAgICAgKGxvIChhZGQgeSB4KSkKKyAgICAgICAgIChoaSAoaWYgKDwgbG8geSkgKCsgaGkgMSkgaGkpKSkKKyAgICAgICAgKCsgKCogaGkgKGV4cHQgMiA2NCkpIGxvKSkpCisKKyhkZWZ1biBtb2QtcmVkdWNlLXAyIChoaSBsbykKKyAgKGxldCogKCh5IGhpKQorICAgICAgICAgKHggeSkKKyAgICAgICAgIChoaSAoPj4gaGkgMzApKQorICAgICAgICAgKHggKHN1YiBsbyB4KSkKKyAgICAgICAgIChoaSAoaWYgKD4geCBsbykgKCsgaGkgLTEpIGhpKSkKKyAgICAgICAgICh5ICg8PCB5IDM0KSkKKyAgICAgICAgIChsbyAoYWRkIHkgeCkpCisgICAgICAgICAoaGkgKGlmICg8IGxvIHkpICgrIGhpIDEpIGhpKSkpCisgICAgICAgICgrICgqIGhpIChleHB0IDIgNjQpKSBsbykpKQorCisoZGVmdW4gbW9kLXJlZHVjZS1wMyAoaGkgbG8pCisgIChsZXQqICgoeSBoaSkKKyAgICAgICAgICh4IHkpCisgICAgICAgICAoaGkgKD4+IGhpIDI0KSkKKyAgICAgICAgICh4IChzdWIgbG8geCkpCisgICAgICAgICAoaGkgKGlmICg+IHggbG8pICgrIGhpIC0xKSBoaSkpCisgICAgICAgICAoeSAoPDwgeSA0MCkpCisgICAgICAgICAobG8gKGFkZCB5IHgpKQorICAgICAgICAgKGhpIChpZiAoPCBsbyB5KSAoKyBoaSAxKSBoaSkpKQorICAgICAgICAoKyAoKiBoaSAoZXhwdCAyIDY0KSkgbG8pKSkKKworCis7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzsgICAgIFRoZSBjb21waWxlciBmcmllbmRseSB2ZXJzaW9ucyBhcmUgZXF1YWwgdG8gdGhlIHNpbXBsZSB2ZXJzaW9ucworOyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyhkZWZ0aG0gbW9kLXJlZHVjZS1hdXgxCisgIChpbXBsaWVzIChhbmQgKDw9IDAgYSkgKG5hdHAgYSkgKG5hdHAgbSkKKyAgICAgICAgICAgICAgICAoPCAoLSBtKSBiKSAoPD0gYiAwKQorICAgICAgICAgICAgICAgIChpbnRlZ2VycCBiKQorICAgICAgICAgICAgICAgICg8IChtb2QgKCsgYiBhKSBtKQorICAgICAgICAgICAgICAgICAgIChtb2QgYSBtKSkpCisgICAgICAgICAgIChlcXVhbCAobW9kICgrIGIgYSkgbSkKKyAgICAgICAgICAgICAgICAgICgrIGIgKG1vZCBhIG0pKSkpCisgIDpoaW50cyAoKCJTdWJnb2FsIDIiIDp1c2UgKCg6aW5zdGFuY2UgbW9kYXV4LTFiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHggKCsgYSBiKSkpKSkpKQorCisoZGVmdGhtIG1vZC1yZWR1Y2UtYXV4MgorICAoaW1wbGllcyAoYW5kICg8PSAwIGEpIChuYXRwIGEpIChuYXRwIG0pCisgICAgICAgICAgICAgICAgKDwgYiBtKSAobmF0cCBiKQorICAgICAgICAgICAgICAgICg8IChtb2QgKCsgYiBhKSBtKQorICAgICAgICAgICAgICAgICAgIChtb2QgYSBtKSkpCisgICAgICAgICAgIChlcXVhbCAoKyBtIChtb2QgKCsgYiBhKSBtKSkKKyAgICAgICAgICAgICAgICAgICgrIGIgKG1vZCBhIG0pKSkpKQorCisKKyhkZWZ0aG0gbW9kLXJlZHVjZS1hdXgzCisgIChpbXBsaWVzIChhbmQgKDwgMCBhKSAobmF0cCBhKSAobmF0cCBtKQorICAgICAgICAgICAgICAgICg8ICgtIG0pIGIpICg8IGIgMCkKKyAgICAgICAgICAgICAgICAoaW50ZWdlcnAgYikKKyAgICAgICAgICAgICAgICAoPD0gKG1vZCBhIG0pCisgICAgICAgICAgICAgICAgICAgIChtb2QgKCsgYiBhKSBtKSkpCisgICAgICAgICAgIChlcXVhbCAoKyAoLSBtKSAobW9kICgrIGIgYSkgbSkpCisgICAgICAgICAgICAgICAgICAoKyBiIChtb2QgYSBtKSkpKQorICA6aGludHMgKCgiU3ViZ29hbCAxLjInIiA6dXNlICgoOmluc3RhbmNlIG1vZGF1eC0xYgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4IGIpKSkpCisgICAgICAgICAgKCJTdWJnb2FsIDEnJyIgOnVzZSAoKDppbnN0YW5jZSBtb2RhdXgtMmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh4IEkpKSkpKSkKKworCisoZGVmdGhtIG1vZC1yZWR1Y2UtYXV4NAorICAoaW1wbGllcyAoYW5kICg8IDAgYSkgKG5hdHAgYSkgKG5hdHAgbSkKKyAgICAgICAgICAgICAgICAoPCBiIG0pIChuYXRwIGIpCisgICAgICAgICAgICAgICAgKDw9IChtb2QgYSBtKQorICAgICAgICAgICAgICAgICAgICAobW9kICgrIGIgYSkgbSkpKQorICAgICAgICAgICAoZXF1YWwgKG1vZCAoKyBiIGEpIG0pCisgICAgICAgICAgICAgICAgICAoKyBiIChtb2QgYSBtKSkpKSkKKworCisoZGVmdGhtIG1vZC1yZWR1Y2UtcDE9PXNpbXBsZS1tb2QtcmVkdWNlLXAxCisgIChpbXBsaWVzIChhbmQgKDwgaGkgKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKDwgbG8gKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgKG5hdHAgaGkpIChuYXRwIGxvKSkKKyAgICAgICAgICAgKGVxdWFsIChtb2QtcmVkdWNlLXAxIGhpIGxvKQorICAgICAgICAgICAgICAgICAgKHNpbXBsZS1tb2QtcmVkdWNlLXAxIGhpIGxvKSkpCisgIDpoaW50cyAoKCJHb2FsIiA6aW4tdGhlb3J5IChkaXNhYmxlIGV4cHQpCisgICAgICAgICAgICAgICAgICA6Y2FzZXMgKCg8IDAgaGkpKSkKKyAgICAgICAgICAoIlN1YmdvYWwgMS4yLjInIiA6dXNlICgoOmluc3RhbmNlIG1vZC1yZWR1Y2UtYXV4MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG0gKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiAoKyAoLSBISSkgTE8pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGEgKCogKGV4cHQgMiAzMikgaGkpKSkpKQorICAgICAgICAgICgiU3ViZ29hbCAxLjIuMSciIDp1c2UgKCg6aW5zdGFuY2UgbW9kLXJlZHVjZS1hdXgzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobSAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiICgrICgtIEhJKSBMTykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYSAoKiAoZXhwdCAyIDMyKSBoaSkpKSkpCisgICAgICAgICAgKCJTdWJnb2FsIDEuMS4yJyIgOnVzZSAoKDppbnN0YW5jZSBtb2QtcmVkdWNlLWF1eDIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgKCsgKC0gSEkpIExPKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhICgqIChleHB0IDIgMzIpIGhpKSkpKSkKKyAgICAgICAgICAoIlN1YmdvYWwgMS4xLjEnIiA6dXNlICgoOmluc3RhbmNlIG1vZC1yZWR1Y2UtYXV4NAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG0gKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiAoKyAoLSBISSkgTE8pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGEgKCogKGV4cHQgMiAzMikgaGkpKSkpKSkpCisKKworKGRlZnRobSBtb2QtcmVkdWNlLXAyPT1zaW1wbGUtbW9kLXJlZHVjZS1wMgorICAoaW1wbGllcyAoYW5kICg8IGhpIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgICg8IGxvIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgIChuYXRwIGhpKSAobmF0cCBsbykpCisgICAgICAgICAgIChlcXVhbCAobW9kLXJlZHVjZS1wMiBoaSBsbykKKyAgICAgICAgICAgICAgICAgIChzaW1wbGUtbW9kLXJlZHVjZS1wMiBoaSBsbykpKQorICA6aGludHMgKCgiR29hbCIgOmNhc2VzICgoPCAwIGhpKSkpCisgICAgICAgICAgKCJTdWJnb2FsIDEuMi4yJyIgOnVzZSAoKDppbnN0YW5jZSBtb2QtcmVkdWNlLWF1eDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgKCsgKC0gSEkpIExPKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhICgqIChleHB0IDIgMzQpIGhpKSkpKSkKKyAgICAgICAgICAoIlN1YmdvYWwgMS4yLjEnIiA6dXNlICgoOmluc3RhbmNlIG1vZC1yZWR1Y2UtYXV4MworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG0gKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiAoKyAoLSBISSkgTE8pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGEgKCogKGV4cHQgMiAzNCkgaGkpKSkpKQorICAgICAgICAgICgiU3ViZ29hbCAxLjEuMiciIDp1c2UgKCg6aW5zdGFuY2UgbW9kLXJlZHVjZS1hdXgyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobSAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiICgrICgtIEhJKSBMTykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYSAoKiAoZXhwdCAyIDM0KSBoaSkpKSkpCisgICAgICAgICAgKCJTdWJnb2FsIDEuMS4xJyIgOnVzZSAoKDppbnN0YW5jZSBtb2QtcmVkdWNlLWF1eDQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgKCsgKC0gSEkpIExPKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhICgqIChleHB0IDIgMzQpIGhpKSkpKSkpKQorCisKKyhkZWZ0aG0gbW9kLXJlZHVjZS1wMz09c2ltcGxlLW1vZC1yZWR1Y2UtcDMKKyAgKGltcGxpZXMgKGFuZCAoPCBoaSAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAoPCBsbyAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAobmF0cCBoaSkgKG5hdHAgbG8pKQorICAgICAgICAgICAoZXF1YWwgKG1vZC1yZWR1Y2UtcDMgaGkgbG8pCisgICAgICAgICAgICAgICAgICAoc2ltcGxlLW1vZC1yZWR1Y2UtcDMgaGkgbG8pKSkKKyAgOmhpbnRzICgoIkdvYWwiIDpjYXNlcyAoKDwgMCBoaSkpKQorICAgICAgICAgICgiU3ViZ29hbCAxLjIuMiciIDp1c2UgKCg6aW5zdGFuY2UgbW9kLXJlZHVjZS1hdXgxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobSAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiICgrICgtIEhJKSBMTykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYSAoKiAoZXhwdCAyIDQwKSBoaSkpKSkpCisgICAgICAgICAgKCJTdWJnb2FsIDEuMi4xJyIgOnVzZSAoKDppbnN0YW5jZSBtb2QtcmVkdWNlLWF1eDMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtIChleHB0IDIgNjQpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGIgKCsgKC0gSEkpIExPKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhICgqIChleHB0IDIgNDApIGhpKSkpKSkKKyAgICAgICAgICAoIlN1YmdvYWwgMS4xLjInIiA6dXNlICgoOmluc3RhbmNlIG1vZC1yZWR1Y2UtYXV4MgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG0gKGV4cHQgMiA2NCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYiAoKyAoLSBISSkgTE8pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGEgKCogKGV4cHQgMiA0MCkgaGkpKSkpKQorICAgICAgICAgICgiU3ViZ29hbCAxLjEuMSciIDp1c2UgKCg6aW5zdGFuY2UgbW9kLXJlZHVjZS1hdXg0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobSAoZXhwdCAyIDY0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiICgrICgtIEhJKSBMTykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYSAoKiAoZXhwdCAyIDQwKSBoaSkpKSkpKSkKKworCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbWVtb3J5LmMgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL21lbW9yeS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmNjM1MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL21lbW9yeS5jCkBAIC0wLDAgKzEsMjkyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlICJ0eXBlYXJpdGguaCIKKyNpbmNsdWRlICJtZW1vcnkuaCIKKworCisvKiBHdWFyYW50ZWVkIG1pbmltdW0gYWxsb2NhdGlvbiBmb3IgYSBjb2VmZmljaWVudC4gTWF5IGJlIGNoYW5nZWQgb25jZQorICAgYXQgcHJvZ3JhbSBzdGFydCB1c2luZyBtcGRfc2V0bWluYWxsb2MoKS4gKi8KK21wZF9zc2l6ZV90IE1QRF9NSU5BTExPQyA9IE1QRF9NSU5BTExPQ19NSU47CisKKy8qIEN1c3RvbSBhbGxvY2F0aW9uIGFuZCBmcmVlIGZ1bmN0aW9ucyAqLwordm9pZCAqKCogbXBkX21hbGxvY2Z1bmMpKHNpemVfdCBzaXplKSA9IG1hbGxvYzsKK3ZvaWQgKigqIG1wZF9yZWFsbG9jZnVuYykodm9pZCAqcHRyLCBzaXplX3Qgc2l6ZSkgPSByZWFsbG9jOwordm9pZCAqKCogbXBkX2NhbGxvY2Z1bmMpKHNpemVfdCBubWVtYiwgc2l6ZV90IHNpemUpID0gY2FsbG9jOwordm9pZCAoKiBtcGRfZnJlZSkodm9pZCAqcHRyKSA9IGZyZWU7CisKKworLyogZW11bGF0ZSBjYWxsb2MgaWYgaXQgaXMgbm90IGF2YWlsYWJsZSAqLwordm9pZCAqCittcGRfY2FsbG9jZnVuY19lbShzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplKQoreworICAgIHZvaWQgKnB0cjsKKyAgICBzaXplX3QgcmVxOworICAgIG1wZF9zaXplX3Qgb3ZlcmZsb3c7CisKKyNpZiBNUERfU0laRV9NQVggPCBTSVpFX01BWAorICAgIC8qIGZ1bGxfY292ZXJhZ2UgdGVzdCBvbmx5ICovCisgICAgaWYgKG5tZW1iID4gTVBEX1NJWkVfTUFYIHx8IHNpemUgPiBNUERfU0laRV9NQVgpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorI2VuZGlmCisKKyAgICByZXEgPSBtdWxfc2l6ZV90X292ZXJmbG93KChtcGRfc2l6ZV90KW5tZW1iLCAobXBkX3NpemVfdClzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm92ZXJmbG93KTsKKyAgICBpZiAob3ZlcmZsb3cpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcHRyID0gbXBkX21hbGxvY2Z1bmMocmVxKTsKKyAgICBpZiAocHRyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIC8qIHVzZWQgb24gdWludDMyX3Qgb3IgdWludDY0X3QgKi8KKyAgICBtZW1zZXQocHRyLCAwLCByZXEpOworCisgICAgcmV0dXJuIHB0cjsKK30KKworCisvKiBtYWxsb2Mgd2l0aCBvdmVyZmxvdyBjaGVja2luZyAqLwordm9pZCAqCittcGRfYWxsb2MobXBkX3NpemVfdCBubWVtYiwgbXBkX3NpemVfdCBzaXplKQoreworICAgIG1wZF9zaXplX3QgcmVxLCBvdmVyZmxvdzsKKworICAgIHJlcSA9IG11bF9zaXplX3Rfb3ZlcmZsb3cobm1lbWIsIHNpemUsICZvdmVyZmxvdyk7CisgICAgaWYgKG92ZXJmbG93KSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBtcGRfbWFsbG9jZnVuYyhyZXEpOworfQorCisvKiBjYWxsb2Mgd2l0aCBvdmVyZmxvdyBjaGVja2luZyAqLwordm9pZCAqCittcGRfY2FsbG9jKG1wZF9zaXplX3Qgbm1lbWIsIG1wZF9zaXplX3Qgc2l6ZSkKK3sKKyAgICBtcGRfc2l6ZV90IG92ZXJmbG93OworCisgICAgKHZvaWQpbXVsX3NpemVfdF9vdmVyZmxvdyhubWVtYiwgc2l6ZSwgJm92ZXJmbG93KTsKKyAgICBpZiAob3ZlcmZsb3cpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIG1wZF9jYWxsb2NmdW5jKG5tZW1iLCBzaXplKTsKK30KKworLyogcmVhbGxvYyB3aXRoIG92ZXJmbG93IGNoZWNraW5nICovCit2b2lkICoKK21wZF9yZWFsbG9jKHZvaWQgKnB0ciwgbXBkX3NpemVfdCBubWVtYiwgbXBkX3NpemVfdCBzaXplLCB1aW50OF90ICplcnIpCit7CisgICAgdm9pZCAqbmV3OworICAgIG1wZF9zaXplX3QgcmVxLCBvdmVyZmxvdzsKKworICAgIHJlcSA9IG11bF9zaXplX3Rfb3ZlcmZsb3cobm1lbWIsIHNpemUsICZvdmVyZmxvdyk7CisgICAgaWYgKG92ZXJmbG93KSB7CisgICAgICAgICplcnIgPSAxOworICAgICAgICByZXR1cm4gcHRyOworICAgIH0KKworICAgIG5ldyA9IG1wZF9yZWFsbG9jZnVuYyhwdHIsIHJlcSk7CisgICAgaWYgKG5ldyA9PSBOVUxMKSB7CisgICAgICAgICplcnIgPSAxOworICAgICAgICByZXR1cm4gcHRyOworICAgIH0KKworICAgIHJldHVybiBuZXc7Cit9CisKKy8qIHN0cnVjdCBoYWNrIG1hbGxvYyB3aXRoIG92ZXJmbG93IGNoZWNraW5nICovCit2b2lkICoKK21wZF9zaF9hbGxvYyhtcGRfc2l6ZV90IHN0cnVjdF9zaXplLCBtcGRfc2l6ZV90IG5tZW1iLCBtcGRfc2l6ZV90IHNpemUpCit7CisgICAgbXBkX3NpemVfdCByZXEsIG92ZXJmbG93OworCisgICAgcmVxID0gbXVsX3NpemVfdF9vdmVyZmxvdyhubWVtYiwgc2l6ZSwgJm92ZXJmbG93KTsKKyAgICBpZiAob3ZlcmZsb3cpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmVxID0gYWRkX3NpemVfdF9vdmVyZmxvdyhyZXEsIHN0cnVjdF9zaXplLCAmb3ZlcmZsb3cpOworICAgIGlmIChvdmVyZmxvdykgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gbXBkX21hbGxvY2Z1bmMocmVxKTsKK30KKworCisvKiBBbGxvY2F0ZSBhIG5ldyBkZWNpbWFsIHdpdGggYSBjb2VmZmljaWVudCBvZiBsZW5ndGggJ253b3JkcycuIEluIGNhc2UKKyAgIG9mIGFuIGVycm9yIHRoZSByZXR1cm4gdmFsdWUgaXMgTlVMTC4gKi8KK21wZF90ICoKK21wZF9xbmV3X3NpemUobXBkX3NzaXplX3QgbndvcmRzKQoreworICAgIG1wZF90ICpyZXN1bHQ7CisKKyAgICBud29yZHMgPSAobndvcmRzIDwgTVBEX01JTkFMTE9DKSA/IE1QRF9NSU5BTExPQyA6IG53b3JkczsKKworICAgIHJlc3VsdCA9IG1wZF9hbGxvYygxLCBzaXplb2YgKnJlc3VsdCk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJlc3VsdC0+ZGF0YSA9IG1wZF9hbGxvYyhud29yZHMsIHNpemVvZiAqcmVzdWx0LT5kYXRhKTsKKyAgICBpZiAocmVzdWx0LT5kYXRhID09IE5VTEwpIHsKKyAgICAgICAgbXBkX2ZyZWUocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmVzdWx0LT5mbGFncyA9IDA7CisgICAgcmVzdWx0LT5leHAgPSAwOworICAgIHJlc3VsdC0+ZGlnaXRzID0gMDsKKyAgICByZXN1bHQtPmxlbiA9IDA7CisgICAgcmVzdWx0LT5hbGxvYyA9IG53b3JkczsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qIEFsbG9jYXRlIGEgbmV3IGRlY2ltYWwgd2l0aCBhIGNvZWZmaWNpZW50IG9mIGxlbmd0aCBNUERfTUlOQUxMT0MuCisgICBJbiBjYXNlIG9mIGFuIGVycm9yIHRoZSByZXR1cm4gdmFsdWUgaXMgTlVMTC4gKi8KK21wZF90ICoKK21wZF9xbmV3KHZvaWQpCit7CisgICAgcmV0dXJuIG1wZF9xbmV3X3NpemUoTVBEX01JTkFMTE9DKTsKK30KKworLyogQWxsb2NhdGUgbmV3IGRlY2ltYWwuIENhbGxlciBjYW4gY2hlY2sgZm9yIE5VTEwgb3IgTVBEX01hbGxvY19lcnJvci4KKyAgIFJhaXNlcyBvbiBlcnJvci4gKi8KK21wZF90ICoKK21wZF9uZXcobXBkX2NvbnRleHRfdCAqY3R4KQoreworICAgIG1wZF90ICpyZXN1bHQ7CisKKyAgICByZXN1bHQgPSBtcGRfcW5ldygpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgeworICAgICAgICBtcGRfYWRkc3RhdHVzX3JhaXNlKGN0eCwgTVBEX01hbGxvY19lcnJvcik7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBJbnB1dDogJ3Jlc3VsdCcgaXMgYSBzdGF0aWMgbXBkX3Qgd2l0aCBhIHN0YXRpYyBjb2VmZmljaWVudC4KKyAqIEFzc3VtcHRpb246ICdud29yZHMnID49IHJlc3VsdC0+YWxsb2MuCisgKgorICogUmVzaXplIHRoZSBzdGF0aWMgY29lZmZpY2llbnQgdG8gYSBsYXJnZXIgZHluYW1pYyBvbmUgYW5kIGNvcHkgdGhlCisgKiBleGlzdGluZyBkYXRhLiBJZiBzdWNjZXNzZnVsLCB0aGUgdmFsdWUgb2YgJ3Jlc3VsdCcgaXMgdW5jaGFuZ2VkLgorICogT3RoZXJ3aXNlLCBzZXQgJ3Jlc3VsdCcgdG8gTmFOIGFuZCB1cGRhdGUgJ3N0YXR1cycgd2l0aCBNUERfTWFsbG9jX2Vycm9yLgorICovCitpbnQKK21wZF9zd2l0Y2hfdG9fZHluKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IG53b3JkcywgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfdWludF90ICpwID0gcmVzdWx0LT5kYXRhOworCisgICAgYXNzZXJ0KG53b3JkcyA+PSByZXN1bHQtPmFsbG9jKTsKKworICAgIHJlc3VsdC0+ZGF0YSA9IG1wZF9hbGxvYyhud29yZHMsIHNpemVvZiAqcmVzdWx0LT5kYXRhKTsKKyAgICBpZiAocmVzdWx0LT5kYXRhID09IE5VTEwpIHsKKyAgICAgICAgcmVzdWx0LT5kYXRhID0gcDsKKyAgICAgICAgbXBkX3NldF9xbmFuKHJlc3VsdCk7CisgICAgICAgIG1wZF9zZXRfcG9zaXRpdmUocmVzdWx0KTsKKyAgICAgICAgcmVzdWx0LT5leHAgPSByZXN1bHQtPmRpZ2l0cyA9IHJlc3VsdC0+bGVuID0gMDsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfTWFsbG9jX2Vycm9yOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBtZW1jcHkocmVzdWx0LT5kYXRhLCBwLCByZXN1bHQtPmFsbG9jICogKHNpemVvZiAqcmVzdWx0LT5kYXRhKSk7CisgICAgcmVzdWx0LT5hbGxvYyA9IG53b3JkczsKKyAgICBtcGRfc2V0X2R5bmFtaWNfZGF0YShyZXN1bHQpOworICAgIHJldHVybiAxOworfQorCisvKgorICogSW5wdXQ6ICdyZXN1bHQnIGlzIGEgc3RhdGljIG1wZF90IHdpdGggYSBzdGF0aWMgY29lZmZpY2llbnQuCisgKgorICogQ29udmVydCB0aGUgY29lZmZpY2llbnQgdG8gYSBkeW5hbWljIG9uZSB0aGF0IGlzIGluaXRpYWxpemVkIHRvIHplcm8uIElmCisgKiBtYWxsb2MgZmFpbHMsIHNldCAncmVzdWx0JyB0byBOYU4gYW5kIHVwZGF0ZSAnc3RhdHVzJyB3aXRoIE1QRF9NYWxsb2NfZXJyb3IuCisgKi8KK2ludAorbXBkX3N3aXRjaF90b19keW5femVybyhtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBud29yZHMsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3VpbnRfdCAqcCA9IHJlc3VsdC0+ZGF0YTsKKworICAgIHJlc3VsdC0+ZGF0YSA9IG1wZF9jYWxsb2MobndvcmRzLCBzaXplb2YgKnJlc3VsdC0+ZGF0YSk7CisgICAgaWYgKHJlc3VsdC0+ZGF0YSA9PSBOVUxMKSB7CisgICAgICAgIHJlc3VsdC0+ZGF0YSA9IHA7CisgICAgICAgIG1wZF9zZXRfcW5hbihyZXN1bHQpOworICAgICAgICBtcGRfc2V0X3Bvc2l0aXZlKHJlc3VsdCk7CisgICAgICAgIHJlc3VsdC0+ZXhwID0gcmVzdWx0LT5kaWdpdHMgPSByZXN1bHQtPmxlbiA9IDA7CisgICAgICAgICpzdGF0dXMgfD0gTVBEX01hbGxvY19lcnJvcjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmVzdWx0LT5hbGxvYyA9IG53b3JkczsKKyAgICBtcGRfc2V0X2R5bmFtaWNfZGF0YShyZXN1bHQpOworCisgICAgcmV0dXJuIDE7Cit9CisKKy8qCisgKiBJbnB1dDogJ3Jlc3VsdCcgaXMgYSBzdGF0aWMgb3IgYSBkeW5hbWljIG1wZF90IHdpdGggYSBkeW5hbWljIGNvZWZmaWNpZW50LgorICogUmVzaXplIHRoZSBjb2VmZmljaWVudCB0byBsZW5ndGggJ253b3Jkcyc6CisgKiAgIENhc2UgbndvcmRzID4gcmVzdWx0LT5hbGxvYzoKKyAqICAgICBJZiByZWFsbG9jIGlzIHN1Y2Nlc3NmdWw6CisgKiAgICAgICAncmVzdWx0JyBoYXMgYSBsYXJnZXIgY29lZmZpY2llbnQgYnV0IHRoZSBzYW1lIHZhbHVlLiBSZXR1cm4gMS4KKyAqICAgICBPdGhlcndpc2U6CisgKiAgICAgICBTZXQgJ3Jlc3VsdCcgdG8gTmFOLCB1cGRhdGUgc3RhdHVzIHdpdGggTVBEX01hbGxvY19lcnJvciBhbmQgcmV0dXJuIDAuCisgKiAgIENhc2UgbndvcmRzIDwgcmVzdWx0LT5hbGxvYzoKKyAqICAgICBJZiByZWFsbG9jIGlzIHN1Y2Nlc3NmdWw6CisgKiAgICAgICAncmVzdWx0JyBoYXMgYSBzbWFsbGVyIGNvZWZmaWNpZW50LiByZXN1bHQtPmxlbiBpcyB1bmRlZmluZWQuIFJldHVybiAxLgorICogICAgIE90aGVyd2lzZSAodW5saWtlbHkpOgorICogICAgICAgJ3Jlc3VsdCcgaXMgdW5jaGFuZ2VkLiBSZXVzZSB0aGUgbm93IG92ZXJzaXplZCBjb2VmZmljaWVudC4gUmV0dXJuIDEuCisgKi8KK2ludAorbXBkX3JlYWxsb2NfZHluKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IG53b3JkcywgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICB1aW50OF90IGVyciA9IDA7CisKKyAgICByZXN1bHQtPmRhdGEgPSBtcGRfcmVhbGxvYyhyZXN1bHQtPmRhdGEsIG53b3Jkcywgc2l6ZW9mICpyZXN1bHQtPmRhdGEsICZlcnIpOworICAgIGlmICghZXJyKSB7CisgICAgICAgIHJlc3VsdC0+YWxsb2MgPSBud29yZHM7CisgICAgfQorICAgIGVsc2UgaWYgKG53b3JkcyA+IHJlc3VsdC0+YWxsb2MpIHsKKyAgICAgICAgbXBkX3NldF9xbmFuKHJlc3VsdCk7CisgICAgICAgIG1wZF9zZXRfcG9zaXRpdmUocmVzdWx0KTsKKyAgICAgICAgcmVzdWx0LT5leHAgPSByZXN1bHQtPmRpZ2l0cyA9IHJlc3VsdC0+bGVuID0gMDsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfTWFsbG9jX2Vycm9yOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gMTsKK30KKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL21lbW9yeS5oIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9tZW1vcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iM2E0YTU2Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9tZW1vcnkuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIE1FTU9SWV9ICisjZGVmaW5lIE1FTU9SWV9ICisKKworI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorCisKK2ludCBtcGRfc3dpdGNoX3RvX2R5bihtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBzaXplLCB1aW50MzJfdCAqc3RhdHVzKTsKK2ludCBtcGRfc3dpdGNoX3RvX2R5bl96ZXJvKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IHNpemUsIHVpbnQzMl90ICpzdGF0dXMpOworaW50IG1wZF9yZWFsbG9jX2R5bihtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBzaXplLCB1aW50MzJfdCAqc3RhdHVzKTsKKworCisjZW5kaWYKKworCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbXBkZWNpbWFsLmMgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL21wZGVjaW1hbC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyMzQ0MDAKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL21wZGVjaW1hbC5jCkBAIC0wLDAgKzEsODEzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgImJhc2Vhcml0aC5oIgorI2luY2x1ZGUgImJpdHMuaCIKKyNpbmNsdWRlICJjb252b2x1dGUuaCIKKyNpbmNsdWRlICJjcnQuaCIKKyNpbmNsdWRlICJtZW1vcnkuaCIKKyNpbmNsdWRlICJ0eXBlYXJpdGguaCIKKyNpbmNsdWRlICJ1bW9kYXJpdGguaCIKKworI2lmZGVmIFBQUk8KKyAgI2lmIGRlZmluZWQoX01TQ19WRVIpCisgICAgI2luY2x1ZGUgPGZsb2F0Lmg+CisgICAgI3ByYWdtYSBmZW52X2FjY2VzcyhvbikKKyAgI2VsaWYgIWRlZmluZWQoX19PcGVuQlNEX18pICYmICFkZWZpbmVkKF9fTmV0QlNEX18pCisgICAgLyogQzk5ICovCisgICAgI2luY2x1ZGUgPGZlbnYuaD4KKyAgICAjcHJhZ21hIFNUREMgRkVOVl9BQ0NFU1MgT04KKyAgI2VuZGlmCisjZW5kaWYKKworCisjaWYgZGVmaW5lZChfTVNDX1ZFUikKKyAgI2RlZmluZSBBTFdBWVNfSU5MSU5FIF9fZm9yY2VpbmxpbmUKKyNlbGlmIGRlZmluZWQoTEVHQUNZX0NPTVBJTEVSKQorICAjZGVmaW5lIEFMV0FZU19JTkxJTkUKKyAgI3VuZGVmIGlubGluZQorICAjZGVmaW5lIGlubGluZQorI2Vsc2UKKyAgI2lmZGVmIFRFU1RfQ09WRVJBR0UKKyAgICAjZGVmaW5lIEFMV0FZU19JTkxJTkUKKyAgI2Vsc2UKKyAgICAjZGVmaW5lIEFMV0FZU19JTkxJTkUgaW5saW5lIF9fYXR0cmlidXRlX18gKChhbHdheXNfaW5saW5lKSkKKyAgI2VuZGlmCisjZW5kaWYKKworCisjZGVmaW5lIE1QRF9ORVdUT05ESVZfQ1VUT0ZGIDEwMjRMCisKKyNkZWZpbmUgTVBEX05FV19TVEFUSUMobmFtZSwgZmxhZ3MsIGV4cCwgZGlnaXRzLCBsZW4pIFwKKyAgICAgICAgbXBkX3VpbnRfdCBuYW1lIyNfZGF0YVtNUERfTUlOQUxMT0NfTUFYXTsgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbXBkX3QgbmFtZSA9IHtmbGFnc3xNUERfU1RBVElDfE1QRF9TVEFUSUNfREFUQSwgZXhwLCBkaWdpdHMsIFwKKyAgICAgICAgICAgICAgICAgICAgICBsZW4sIE1QRF9NSU5BTExPQ19NQVgsIG5hbWUjI19kYXRhfQorCisjZGVmaW5lIE1QRF9ORVdfQ09OU1QobmFtZSwgZmxhZ3MsIGV4cCwgZGlnaXRzLCBsZW4sIGFsbG9jLCBpbml0dmFsKSBcCisgICAgICAgIG1wZF91aW50X3QgbmFtZSMjX2RhdGFbYWxsb2NdID0ge2luaXR2YWx9OyAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIG1wZF90IG5hbWUgPSB7ZmxhZ3N8TVBEX1NUQVRJQ3xNUERfQ09OU1RfREFUQSwgZXhwLCBkaWdpdHMsICBcCisgICAgICAgICAgICAgICAgICAgICAgbGVuLCBhbGxvYywgbmFtZSMjX2RhdGF9CisKKyNkZWZpbmUgTVBEX05FV19TSEFSRUQobmFtZSwgYSkgXAorICAgICAgICBtcGRfdCBuYW1lID0geyhhLT5mbGFncyZ+TVBEX0RBVEFGTEFHUyl8TVBEX1NUQVRJQ3xNUERfU0hBUkVEX0RBVEEsIFwKKyAgICAgICAgICAgICAgICAgICAgICBhLT5leHAsIGEtPmRpZ2l0cywgYS0+bGVuLCBhLT5hbGxvYywgYS0+ZGF0YX0KKworCitzdGF0aWMgbXBkX3VpbnRfdCBkYXRhX29uZVsxXSA9IHsxfTsKK3N0YXRpYyBtcGRfdWludF90IGRhdGFfemVyb1sxXSA9IHswfTsKK3N0YXRpYyBjb25zdCBtcGRfdCBvbmUgPSB7TVBEX1NUQVRJQ3xNUERfQ09OU1RfREFUQSwgMCwgMSwgMSwgMSwgZGF0YV9vbmV9Oworc3RhdGljIGNvbnN0IG1wZF90IG1pbnVzX29uZSA9IHtNUERfTkVHfE1QRF9TVEFUSUN8TVBEX0NPTlNUX0RBVEEsIDAsIDEsIDEsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfb25lfTsKK3N0YXRpYyBjb25zdCBtcGRfdCB6ZXJvID0ge01QRF9TVEFUSUN8TVBEX0NPTlNUX0RBVEEsIDAsIDEsIDEsIDEsIGRhdGFfemVyb307CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBfbXBkX2NoZWNrX2V4cChtcGRfdCAqZGVjLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cyk7CitzdGF0aWMgdm9pZCBfc2V0dHJpcGxlKG1wZF90ICpyZXN1bHQsIHVpbnQ4X3Qgc2lnbiwgbXBkX3VpbnRfdCBhLAorICAgICAgICAgICAgICAgICAgICAgICBtcGRfc3NpemVfdCBleHApOworc3RhdGljIGlubGluZSBtcGRfc3NpemVfdCBfbXBkX3JlYWxfc2l6ZShtcGRfdWludF90ICpkYXRhLCBtcGRfc3NpemVfdCBzaXplKTsKKworc3RhdGljIHZvaWQgX21wZF9xYWRkKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworc3RhdGljIGlubGluZSB2b2lkIF9tcGRfcW11bChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7CitzdGF0aWMgdm9pZCBfbXBkX2Jhc2VfbmRpdm1vZChtcGRfdCAqcSwgbXBkX3QgKnIsIGNvbnN0IG1wZF90ICphLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbXBkX3QgKmIsIHVpbnQzMl90ICpzdGF0dXMpOworc3RhdGljIGlubGluZSB2b2lkIF9tcGRfcXBvd191aW50KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICpiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1wZF91aW50X3QgZXhwLCB1aW50OF90IHJlc3VsdHNpZ24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKKworbXBkX3VpbnRfdCBtcGRfcXNzaGlmdHIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9zc2l6ZV90IG4pOworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgIFBlcmZvcm1hbmNlIGNyaXRpY2FsIGlubGluZSBmdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmZGVmIENPTkZJR182NAorLyogRGlnaXRzIGluIGEgd29yZCwgcHJpbWFyaWx5IHVzZWZ1bCBmb3IgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgd29yZC4gKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfd29yZF9kaWdpdHMobXBkX3VpbnRfdCB3b3JkKQoreworICAgIGlmICh3b3JkIDwgbXBkX3BvdzEwWzldKSB7CisgICAgICAgIGlmICh3b3JkIDwgbXBkX3BvdzEwWzRdKSB7CisgICAgICAgICAgICBpZiAod29yZCA8IG1wZF9wb3cxMFsyXSkgeworICAgICAgICAgICAgICAgIHJldHVybiAod29yZCA8IG1wZF9wb3cxMFsxXSkgPyAxIDogMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAod29yZCA8IG1wZF9wb3cxMFszXSkgPyAzIDogNDsKKyAgICAgICAgfQorICAgICAgICBpZiAod29yZCA8IG1wZF9wb3cxMFs2XSkgeworICAgICAgICAgICAgcmV0dXJuICh3b3JkIDwgbXBkX3BvdzEwWzVdKSA/IDUgOiA2OworICAgICAgICB9CisgICAgICAgIGlmICh3b3JkIDwgbXBkX3BvdzEwWzhdKSB7CisgICAgICAgICAgICByZXR1cm4gKHdvcmQgPCBtcGRfcG93MTBbN10pID8gNyA6IDg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDk7CisgICAgfQorICAgIGlmICh3b3JkIDwgbXBkX3BvdzEwWzE0XSkgeworICAgICAgICBpZiAod29yZCA8IG1wZF9wb3cxMFsxMV0pIHsKKyAgICAgICAgICAgIHJldHVybiAod29yZCA8IG1wZF9wb3cxMFsxMF0pID8gMTAgOiAxMTsKKyAgICAgICAgfQorICAgICAgICBpZiAod29yZCA8IG1wZF9wb3cxMFsxM10pIHsKKyAgICAgICAgICAgIHJldHVybiAod29yZCA8IG1wZF9wb3cxMFsxMl0pID8gMTIgOiAxMzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMTQ7CisgICAgfQorICAgIGlmICh3b3JkIDwgbXBkX3BvdzEwWzE4XSkgeworICAgICAgICBpZiAod29yZCA8IG1wZF9wb3cxMFsxNl0pIHsKKyAgICAgICAgICAgIHJldHVybiAod29yZCA8IG1wZF9wb3cxMFsxNV0pID8gMTUgOiAxNjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKHdvcmQgPCBtcGRfcG93MTBbMTddKSA/IDE3IDogMTg7CisgICAgfQorCisgICAgcmV0dXJuICh3b3JkIDwgbXBkX3BvdzEwWzE5XSkgPyAxOSA6IDIwOworfQorI2Vsc2UKK0FMV0FZU19JTkxJTkUgaW50CittcGRfd29yZF9kaWdpdHMobXBkX3VpbnRfdCB3b3JkKQoreworICAgIGlmICh3b3JkIDwgbXBkX3BvdzEwWzRdKSB7CisgICAgICAgIGlmICh3b3JkIDwgbXBkX3BvdzEwWzJdKSB7CisgICAgICAgICAgICByZXR1cm4gKHdvcmQgPCBtcGRfcG93MTBbMV0pID8gMSA6IDI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICh3b3JkIDwgbXBkX3BvdzEwWzNdKSA/IDMgOiA0OworICAgIH0KKyAgICBpZiAod29yZCA8IG1wZF9wb3cxMFs2XSkgeworICAgICAgICByZXR1cm4gKHdvcmQgPCBtcGRfcG93MTBbNV0pID8gNSA6IDY7CisgICAgfQorICAgIGlmICh3b3JkIDwgbXBkX3BvdzEwWzhdKSB7CisgICAgICAgIHJldHVybiAod29yZCA8IG1wZF9wb3cxMFs3XSkgPyA3IDogODsKKyAgICB9CisKKyAgICByZXR1cm4gKHdvcmQgPCBtcGRfcG93MTBbOV0pID8gOSA6IDEwOworfQorI2VuZGlmCisKKworLyogQWRqdXN0ZWQgZXhwb25lbnQgKi8KK0FMV0FZU19JTkxJTkUgbXBkX3NzaXplX3QKK21wZF9hZGpleHAoY29uc3QgbXBkX3QgKmRlYykKK3sKKyAgICByZXR1cm4gKGRlYy0+ZXhwICsgZGVjLT5kaWdpdHMpIC0gMTsKK30KKworLyogRXRpbnkgKi8KK0FMV0FZU19JTkxJTkUgbXBkX3NzaXplX3QKK21wZF9ldGlueShjb25zdCBtcGRfY29udGV4dF90ICpjdHgpCit7CisgICAgcmV0dXJuIGN0eC0+ZW1pbiAtIChjdHgtPnByZWMgLSAxKTsKK30KKworLyogRXRvcDogdXNlZCBmb3IgZm9sZGluZyBkb3duIGluIElFRUUgY2xhbXBpbmcgKi8KK0FMV0FZU19JTkxJTkUgbXBkX3NzaXplX3QKK21wZF9ldG9wKGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICByZXR1cm4gY3R4LT5lbWF4IC0gKGN0eC0+cHJlYyAtIDEpOworfQorCisvKiBNb3N0IHNpZ25pZmljYW50IHdvcmQgKi8KK0FMV0FZU19JTkxJTkUgbXBkX3VpbnRfdAorbXBkX21zd29yZChjb25zdCBtcGRfdCAqZGVjKQoreworICAgIGFzc2VydChkZWMtPmxlbiA+IDApOworICAgIHJldHVybiBkZWMtPmRhdGFbZGVjLT5sZW4tMV07Cit9CisKKy8qIE1vc3Qgc2lnbmlmaWNhbnQgZGlnaXQgb2YgYSB3b3JkICovCitpbmxpbmUgbXBkX3VpbnRfdAorbXBkX21zZChtcGRfdWludF90IHdvcmQpCit7CisgICAgaW50IG47CisKKyAgICBuID0gbXBkX3dvcmRfZGlnaXRzKHdvcmQpOworICAgIHJldHVybiB3b3JkIC8gbXBkX3BvdzEwW24tMV07Cit9CisKKy8qIExlYXN0IHNpZ25pZmljYW50IGRpZ2l0IG9mIGEgd29yZCAqLworQUxXQVlTX0lOTElORSBtcGRfdWludF90CittcGRfbHNkKG1wZF91aW50X3Qgd29yZCkKK3sKKyAgICByZXR1cm4gd29yZCAlIDEwOworfQorCisvKiBDb2VmZmljaWVudCBzaXplIG5lZWRlZCB0byBzdG9yZSAnZGlnaXRzJyAqLworQUxXQVlTX0lOTElORSBtcGRfc3NpemVfdAorbXBkX2RpZ2l0c190b19zaXplKG1wZF9zc2l6ZV90IGRpZ2l0cykKK3sKKyAgICBtcGRfc3NpemVfdCBxLCByOworCisgICAgX21wZF9pZGl2X3dvcmQoJnEsICZyLCBkaWdpdHMsIE1QRF9SRElHSVRTKTsKKyAgICByZXR1cm4gKHIgPT0gMCkgPyBxIDogcSsxOworfQorCisvKiBOdW1iZXIgb2YgZGlnaXRzIGluIHRoZSBleHBvbmVudC4gTm90IGRlZmluZWQgZm9yIE1QRF9TU0laRV9NSU4uICovCitpbmxpbmUgaW50CittcGRfZXhwX2RpZ2l0cyhtcGRfc3NpemVfdCBleHApCit7CisgICAgZXhwID0gKGV4cCA8IDApID8gLWV4cCA6IGV4cDsKKyAgICByZXR1cm4gbXBkX3dvcmRfZGlnaXRzKGV4cCk7Cit9CisKKy8qIENhbm9uaWNhbCAqLworQUxXQVlTX0lOTElORSBpbnQKK21wZF9pc2Nhbm9uaWNhbChjb25zdCBtcGRfdCAqZGVjIFVOVVNFRCkKK3sKKyAgICByZXR1cm4gMTsKK30KKworLyogRmluaXRlICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX2lzZmluaXRlKGNvbnN0IG1wZF90ICpkZWMpCit7CisgICAgcmV0dXJuICEoZGVjLT5mbGFncyAmIE1QRF9TUEVDSUFMKTsKK30KKworLyogSW5maW5pdGUgKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfaXNpbmZpbml0ZShjb25zdCBtcGRfdCAqZGVjKQoreworICAgIHJldHVybiBkZWMtPmZsYWdzICYgTVBEX0lORjsKK30KKworLyogTmFOICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX2lzbmFuKGNvbnN0IG1wZF90ICpkZWMpCit7CisgICAgcmV0dXJuIGRlYy0+ZmxhZ3MgJiAoTVBEX05BTnxNUERfU05BTik7Cit9CisKKy8qIE5lZ2F0aXZlICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX2lzbmVnYXRpdmUoY29uc3QgbXBkX3QgKmRlYykKK3sKKyAgICByZXR1cm4gZGVjLT5mbGFncyAmIE1QRF9ORUc7Cit9CisKKy8qIFBvc2l0aXZlICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX2lzcG9zaXRpdmUoY29uc3QgbXBkX3QgKmRlYykKK3sKKyAgICByZXR1cm4gIShkZWMtPmZsYWdzICYgTVBEX05FRyk7Cit9CisKKy8qIHFOYU4gKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfaXNxbmFuKGNvbnN0IG1wZF90ICpkZWMpCit7CisgICAgcmV0dXJuIGRlYy0+ZmxhZ3MgJiBNUERfTkFOOworfQorCisvKiBTaWduZWQgKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfaXNzaWduZWQoY29uc3QgbXBkX3QgKmRlYykKK3sKKyAgICByZXR1cm4gZGVjLT5mbGFncyAmIE1QRF9ORUc7Cit9CisKKy8qIHNOYU4gKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfaXNzbmFuKGNvbnN0IG1wZF90ICpkZWMpCit7CisgICAgcmV0dXJuIGRlYy0+ZmxhZ3MgJiBNUERfU05BTjsKK30KKworLyogU3BlY2lhbCAqLworQUxXQVlTX0lOTElORSBpbnQKK21wZF9pc3NwZWNpYWwoY29uc3QgbXBkX3QgKmRlYykKK3sKKyAgICByZXR1cm4gZGVjLT5mbGFncyAmIE1QRF9TUEVDSUFMOworfQorCisvKiBaZXJvICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX2lzemVybyhjb25zdCBtcGRfdCAqZGVjKQoreworICAgIHJldHVybiAhbXBkX2lzc3BlY2lhbChkZWMpICYmIG1wZF9tc3dvcmQoZGVjKSA9PSAwOworfQorCisvKiBUZXN0IGZvciB6ZXJvIHdoZW4gc3BlY2lhbHMgaGF2ZSBiZWVuIHJ1bGVkIG91dCBhbHJlYWR5ICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX2lzemVyb2NvZWZmKGNvbnN0IG1wZF90ICpkZWMpCit7CisgICAgcmV0dXJuIG1wZF9tc3dvcmQoZGVjKSA9PSAwOworfQorCisvKiBOb3JtYWwgKi8KK2lubGluZSBpbnQKK21wZF9pc25vcm1hbChjb25zdCBtcGRfdCAqZGVjLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgpCit7CisgICAgaWYgKG1wZF9pc3NwZWNpYWwoZGVjKSkgcmV0dXJuIDA7CisgICAgaWYgKG1wZF9pc3plcm9jb2VmZihkZWMpKSByZXR1cm4gMDsKKworICAgIHJldHVybiBtcGRfYWRqZXhwKGRlYykgPj0gY3R4LT5lbWluOworfQorCisvKiBTdWJub3JtYWwgKi8KK2lubGluZSBpbnQKK21wZF9pc3N1Ym5vcm1hbChjb25zdCBtcGRfdCAqZGVjLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgpCit7CisgICAgaWYgKG1wZF9pc3NwZWNpYWwoZGVjKSkgcmV0dXJuIDA7CisgICAgaWYgKG1wZF9pc3plcm9jb2VmZihkZWMpKSByZXR1cm4gMDsKKworICAgIHJldHVybiBtcGRfYWRqZXhwKGRlYykgPCBjdHgtPmVtaW47Cit9CisKKy8qIE9kZCB3b3JkICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX2lzb2Rkd29yZChtcGRfdWludF90IHdvcmQpCit7CisgICAgcmV0dXJuIHdvcmQgJiAxOworfQorCisvKiBPZGQgY29lZmZpY2llbnQgKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfaXNvZGRjb2VmZihjb25zdCBtcGRfdCAqZGVjKQoreworICAgIHJldHVybiBtcGRfaXNvZGR3b3JkKGRlYy0+ZGF0YVswXSk7Cit9CisKKy8qIDAgaWYgZGVjIGlzIHBvc2l0aXZlLCAxIGlmIGRlYyBpcyBuZWdhdGl2ZSAqLworQUxXQVlTX0lOTElORSB1aW50OF90CittcGRfc2lnbihjb25zdCBtcGRfdCAqZGVjKQoreworICAgIHJldHVybiBkZWMtPmZsYWdzICYgTVBEX05FRzsKK30KKworLyogMSBpZiBkZWMgaXMgcG9zaXRpdmUsIC0xIGlmIGRlYyBpcyBuZWdhdGl2ZSAqLworQUxXQVlTX0lOTElORSBpbnQKK21wZF9hcml0aF9zaWduKGNvbnN0IG1wZF90ICpkZWMpCit7CisgICAgcmV0dXJuIDEgLSAyICogbXBkX2lzbmVnYXRpdmUoZGVjKTsKK30KKworLyogUmFkaXggKi8KK0FMV0FZU19JTkxJTkUgbG9uZworbXBkX3JhZGl4KHZvaWQpCit7CisgICAgcmV0dXJuIDEwOworfQorCisvKiBEeW5hbWljIGRlY2ltYWwgKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfaXNkeW5hbWljKG1wZF90ICpkZWMpCit7CisgICAgcmV0dXJuICEoZGVjLT5mbGFncyAmIE1QRF9TVEFUSUMpOworfQorCisvKiBTdGF0aWMgZGVjaW1hbCAqLworQUxXQVlTX0lOTElORSBpbnQKK21wZF9pc3N0YXRpYyhtcGRfdCAqZGVjKQoreworICAgIHJldHVybiBkZWMtPmZsYWdzICYgTVBEX1NUQVRJQzsKK30KKworLyogRGF0YSBvZiBkZWNpbWFsIGlzIGR5bmFtaWMgKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfaXNkeW5hbWljX2RhdGEobXBkX3QgKmRlYykKK3sKKyAgICByZXR1cm4gIShkZWMtPmZsYWdzICYgTVBEX0RBVEFGTEFHUyk7Cit9CisKKy8qIERhdGEgb2YgZGVjaW1hbCBpcyBzdGF0aWMgKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfaXNzdGF0aWNfZGF0YShtcGRfdCAqZGVjKQoreworICAgIHJldHVybiBkZWMtPmZsYWdzICYgTVBEX1NUQVRJQ19EQVRBOworfQorCisvKiBEYXRhIG9mIGRlY2ltYWwgaXMgc2hhcmVkICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX2lzc2hhcmVkX2RhdGEobXBkX3QgKmRlYykKK3sKKyAgICByZXR1cm4gZGVjLT5mbGFncyAmIE1QRF9TSEFSRURfREFUQTsKK30KKworLyogRGF0YSBvZiBkZWNpbWFsIGlzIGNvbnN0ICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX2lzY29uc3RfZGF0YShtcGRfdCAqZGVjKQoreworICAgIHJldHVybiBkZWMtPmZsYWdzICYgTVBEX0NPTlNUX0RBVEE7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgIElubGluZSBtZW1vcnkgaGFuZGxpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBGaWxsIGRlc3RpbmF0aW9uIHdpdGggemVyb3MgKi8KK0FMV0FZU19JTkxJTkUgdm9pZAorbXBkX3VpbnRfemVybyhtcGRfdWludF90ICpkZXN0LCBtcGRfc2l6ZV90IGxlbikKK3sKKyAgICBtcGRfc2l6ZV90IGk7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgZGVzdFtpXSA9IDA7CisgICAgfQorfQorCisvKiBGcmVlIGEgZGVjaW1hbCAqLworQUxXQVlTX0lOTElORSB2b2lkCittcGRfZGVsKG1wZF90ICpkZWMpCit7CisgICAgaWYgKG1wZF9pc2R5bmFtaWNfZGF0YShkZWMpKSB7CisgICAgICAgIG1wZF9mcmVlKGRlYy0+ZGF0YSk7CisgICAgfQorICAgIGlmIChtcGRfaXNkeW5hbWljKGRlYykpIHsKKyAgICAgICAgbXBkX2ZyZWUoZGVjKTsKKyAgICB9Cit9CisKKy8qCisgKiBSZXNpemUgdGhlIGNvZWZmaWNpZW50LiBFeGlzdGluZyBkYXRhIHVwIHRvICdud29yZHMnIGlzIGxlZnQgdW50b3VjaGVkLgorICogUmV0dXJuIDEgb24gc3VjY2VzcywgMCBvdGhlcndpc2UuCisgKgorICogSW5wdXQgaW52YXJpYW50OiBNUERfTUlOQUxMT0MgPD0gcmVzdWx0LT5hbGxvYy4KKyAqCisgKiBDYXNlIG53b3JkcyA9PSByZXN1bHQtPmFsbG9jOgorICogICAgICdyZXN1bHQnIGlzIHVuY2hhbmdlZC4gUmV0dXJuIDEuCisgKgorICogQ2FzZSBud29yZHMgPiByZXN1bHQtPmFsbG9jOgorICogICBDYXNlIHJlYWxsb2Mgc3VjY2VzczoKKyAqICAgICBUaGUgdmFsdWUgb2YgJ3Jlc3VsdCcgZG9lcyBub3QgY2hhbmdlLiBSZXR1cm4gMS4KKyAqICAgQ2FzZSByZWFsbG9jIGZhaWx1cmU6CisgKiAgICAgJ3Jlc3VsdCcgaXMgTmFOLCBzdGF0dXMgaXMgdXBkYXRlZCB3aXRoIE1QRF9NYWxsb2NfZXJyb3IuIFJldHVybiAwLgorICoKKyAqIENhc2UgbndvcmRzIDwgcmVzdWx0LT5hbGxvYzoKKyAqICAgQ2FzZSBpc19zdGF0aWNfZGF0YSBvciByZWFsbG9jIGZhaWx1cmUgWzFdOgorICogICAgICdyZXN1bHQnIGlzIHVuY2hhbmdlZC4gUmV0dXJuIDEuCisgKiAgIENhc2UgcmVhbGxvYyBzdWNjZXNzOgorICogICAgIFRoZSB2YWx1ZSBvZiByZXN1bHQgaXMgdW5kZWZpbmVkIChleHBlY3RlZCkuIFJldHVybiAxLgorICoKKyAqCisgKiBbMV0gSW4gdGhhdCBjYXNlIHRoZSBvbGQgKG5vdyBvdmVyc2l6ZWQpIGFyZWEgaXMgc3RpbGwgdmFsaWQuCisgKi8KK0FMV0FZU19JTkxJTkUgaW50CittcGRfcXJlc2l6ZShtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBud29yZHMsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgYXNzZXJ0KCFtcGRfaXNjb25zdF9kYXRhKHJlc3VsdCkpOyAvKiBpbGxlZ2FsIG9wZXJhdGlvbiBmb3IgYSBjb25zdCAqLworICAgIGFzc2VydCghbXBkX2lzc2hhcmVkX2RhdGEocmVzdWx0KSk7IC8qIGlsbGVnYWwgb3BlcmF0aW9uIGZvciBhIHNoYXJlZCAqLworICAgIGFzc2VydChNUERfTUlOQUxMT0MgPD0gcmVzdWx0LT5hbGxvYyk7CisKKyAgICBud29yZHMgPSAobndvcmRzIDw9IE1QRF9NSU5BTExPQykgPyBNUERfTUlOQUxMT0MgOiBud29yZHM7CisgICAgaWYgKG53b3JkcyA9PSByZXN1bHQtPmFsbG9jKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBpZiAobXBkX2lzc3RhdGljX2RhdGEocmVzdWx0KSkgeworICAgICAgICBpZiAobndvcmRzID4gcmVzdWx0LT5hbGxvYykgeworICAgICAgICAgICAgcmV0dXJuIG1wZF9zd2l0Y2hfdG9fZHluKHJlc3VsdCwgbndvcmRzLCBzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHJldHVybiBtcGRfcmVhbGxvY19keW4ocmVzdWx0LCBud29yZHMsIHN0YXR1cyk7Cit9CisKKy8qIFNhbWUgYXMgbXBkX3FyZXNpemUsIGJ1dCB0aGUgY29tcGxldGUgY29lZmZpY2llbnQgKGluY2x1ZGluZyB0aGUgb2xkCisgKiBtZW1vcnkgYXJlYSEpIGlzIGluaXRpYWxpemVkIHRvIHplcm8uICovCitBTFdBWVNfSU5MSU5FIGludAorbXBkX3FyZXNpemVfemVybyhtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBud29yZHMsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgYXNzZXJ0KCFtcGRfaXNjb25zdF9kYXRhKHJlc3VsdCkpOyAvKiBpbGxlZ2FsIG9wZXJhdGlvbiBmb3IgYSBjb25zdCAqLworICAgIGFzc2VydCghbXBkX2lzc2hhcmVkX2RhdGEocmVzdWx0KSk7IC8qIGlsbGVnYWwgb3BlcmF0aW9uIGZvciBhIHNoYXJlZCAqLworICAgIGFzc2VydChNUERfTUlOQUxMT0MgPD0gcmVzdWx0LT5hbGxvYyk7CisKKyAgICBud29yZHMgPSAobndvcmRzIDw9IE1QRF9NSU5BTExPQykgPyBNUERfTUlOQUxMT0MgOiBud29yZHM7CisgICAgaWYgKG53b3JkcyAhPSByZXN1bHQtPmFsbG9jKSB7CisgICAgICAgIGlmIChtcGRfaXNzdGF0aWNfZGF0YShyZXN1bHQpKSB7CisgICAgICAgICAgICBpZiAobndvcmRzID4gcmVzdWx0LT5hbGxvYykgeworICAgICAgICAgICAgICAgIHJldHVybiBtcGRfc3dpdGNoX3RvX2R5bl96ZXJvKHJlc3VsdCwgbndvcmRzLCBzdGF0dXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKCFtcGRfcmVhbGxvY19keW4ocmVzdWx0LCBud29yZHMsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgbXBkX3VpbnRfemVybyhyZXN1bHQtPmRhdGEsIG53b3Jkcyk7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qCisgKiBSZWR1Y2UgbWVtb3J5IHNpemUgZm9yIHRoZSBjb2VmZmljaWVudCB0byBNUERfTUlOQUxMT0MuIEluIHRoZW9yeSwKKyAqIHJlYWxsb2MgbWF5IGZhaWwgZXZlbiB3aGVuIHJlZHVjaW5nIHRoZSBtZW1vcnkgc2l6ZS4gQnV0IGluIHRoYXQgY2FzZQorICogdGhlIG9sZCBtZW1vcnkgYXJlYSBpcyBhbHdheXMgYmlnIGVub3VnaCwgc28gY2hlY2tpbmcgZm9yIE1QRF9NYWxsb2NfZXJyb3IKKyAqIGlzIG5vdCBpbXBlcmF0aXZlLgorICovCitBTFdBWVNfSU5MSU5FIHZvaWQKK21wZF9taW5hbGxvYyhtcGRfdCAqcmVzdWx0KQoreworICAgIGFzc2VydCghbXBkX2lzY29uc3RfZGF0YShyZXN1bHQpKTsgLyogaWxsZWdhbCBvcGVyYXRpb24gZm9yIGEgY29uc3QgKi8KKyAgICBhc3NlcnQoIW1wZF9pc3NoYXJlZF9kYXRhKHJlc3VsdCkpOyAvKiBpbGxlZ2FsIG9wZXJhdGlvbiBmb3IgYSBzaGFyZWQgKi8KKworICAgIGlmICghbXBkX2lzc3RhdGljX2RhdGEocmVzdWx0KSAmJiByZXN1bHQtPmFsbG9jID4gTVBEX01JTkFMTE9DKSB7CisgICAgICAgIHVpbnQ4X3QgZXJyID0gMDsKKyAgICAgICAgcmVzdWx0LT5kYXRhID0gbXBkX3JlYWxsb2MocmVzdWx0LT5kYXRhLCBNUERfTUlOQUxMT0MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiAqcmVzdWx0LT5kYXRhLCAmZXJyKTsKKyAgICAgICAgaWYgKCFlcnIpIHsKKyAgICAgICAgICAgIHJlc3VsdC0+YWxsb2MgPSBNUERfTUlOQUxMT0M7CisgICAgICAgIH0KKyAgICB9Cit9CisKK2ludAorbXBkX3Jlc2l6ZShtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBud29yZHMsIG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICB1aW50MzJfdCBzdGF0dXMgPSAwOworICAgIGlmICghbXBkX3FyZXNpemUocmVzdWx0LCBud29yZHMsICZzdGF0dXMpKSB7CisgICAgICAgIG1wZF9hZGRzdGF0dXNfcmFpc2UoY3R4LCBzdGF0dXMpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisKK2ludAorbXBkX3Jlc2l6ZV96ZXJvKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IG53b3JkcywgbXBkX2NvbnRleHRfdCAqY3R4KQoreworICAgIHVpbnQzMl90IHN0YXR1cyA9IDA7CisgICAgaWYgKCFtcGRfcXJlc2l6ZV96ZXJvKHJlc3VsdCwgbndvcmRzLCAmc3RhdHVzKSkgeworICAgICAgICBtcGRfYWRkc3RhdHVzX3JhaXNlKGN0eCwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiAxOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgU2V0IGF0dHJpYnV0ZXMgb2YgYSBkZWNpbWFsICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogU2V0IGRpZ2l0cy4gQXNzdW1wdGlvbjogcmVzdWx0LT5sZW4gaXMgaW5pdGlhbGl6ZWQgYW5kID4gMC4gKi8KK2lubGluZSB2b2lkCittcGRfc2V0ZGlnaXRzKG1wZF90ICpyZXN1bHQpCit7CisgICAgbXBkX3NzaXplX3Qgd2RpZ2l0cyA9IG1wZF93b3JkX2RpZ2l0cyhtcGRfbXN3b3JkKHJlc3VsdCkpOworICAgIHJlc3VsdC0+ZGlnaXRzID0gd2RpZ2l0cyArIChyZXN1bHQtPmxlbi0xKSAqIE1QRF9SRElHSVRTOworfQorCisvKiBTZXQgc2lnbiAqLworQUxXQVlTX0lOTElORSB2b2lkCittcGRfc2V0X3NpZ24obXBkX3QgKnJlc3VsdCwgdWludDhfdCBzaWduKQoreworICAgIHJlc3VsdC0+ZmxhZ3MgJj0gfk1QRF9ORUc7CisgICAgcmVzdWx0LT5mbGFncyB8PSBzaWduOworfQorCisvKiBDb3B5IHNpZ24gZnJvbSBhbm90aGVyIGRlY2ltYWwgKi8KK0FMV0FZU19JTkxJTkUgdm9pZAorbXBkX3NpZ25jcHkobXBkX3QgKnJlc3VsdCwgbXBkX3QgKmEpCit7CisgICAgdWludDhfdCBzaWduID0gYS0+ZmxhZ3MmTVBEX05FRzsKKworICAgIHJlc3VsdC0+ZmxhZ3MgJj0gfk1QRF9ORUc7CisgICAgcmVzdWx0LT5mbGFncyB8PSBzaWduOworfQorCisvKiBTZXQgaW5maW5pdHkgKi8KK0FMV0FZU19JTkxJTkUgdm9pZAorbXBkX3NldF9pbmZpbml0eShtcGRfdCAqcmVzdWx0KQoreworICAgIHJlc3VsdC0+ZmxhZ3MgJj0gfk1QRF9TUEVDSUFMOworICAgIHJlc3VsdC0+ZmxhZ3MgfD0gTVBEX0lORjsKK30KKworLyogU2V0IHFOYU4gKi8KK0FMV0FZU19JTkxJTkUgdm9pZAorbXBkX3NldF9xbmFuKG1wZF90ICpyZXN1bHQpCit7CisgICAgcmVzdWx0LT5mbGFncyAmPSB+TVBEX1NQRUNJQUw7CisgICAgcmVzdWx0LT5mbGFncyB8PSBNUERfTkFOOworfQorCisvKiBTZXQgc05hTiAqLworQUxXQVlTX0lOTElORSB2b2lkCittcGRfc2V0X3NuYW4obXBkX3QgKnJlc3VsdCkKK3sKKyAgICByZXN1bHQtPmZsYWdzICY9IH5NUERfU1BFQ0lBTDsKKyAgICByZXN1bHQtPmZsYWdzIHw9IE1QRF9TTkFOOworfQorCisvKiBTZXQgdG8gbmVnYXRpdmUgKi8KK0FMV0FZU19JTkxJTkUgdm9pZAorbXBkX3NldF9uZWdhdGl2ZShtcGRfdCAqcmVzdWx0KQoreworICAgIHJlc3VsdC0+ZmxhZ3MgfD0gTVBEX05FRzsKK30KKworLyogU2V0IHRvIHBvc2l0aXZlICovCitBTFdBWVNfSU5MSU5FIHZvaWQKK21wZF9zZXRfcG9zaXRpdmUobXBkX3QgKnJlc3VsdCkKK3sKKyAgICByZXN1bHQtPmZsYWdzICY9IH5NUERfTkVHOworfQorCisvKiBTZXQgdG8gZHluYW1pYyAqLworQUxXQVlTX0lOTElORSB2b2lkCittcGRfc2V0X2R5bmFtaWMobXBkX3QgKnJlc3VsdCkKK3sKKyAgICByZXN1bHQtPmZsYWdzICY9IH5NUERfU1RBVElDOworfQorCisvKiBTZXQgdG8gc3RhdGljICovCitBTFdBWVNfSU5MSU5FIHZvaWQKK21wZF9zZXRfc3RhdGljKG1wZF90ICpyZXN1bHQpCit7CisgICAgcmVzdWx0LT5mbGFncyB8PSBNUERfU1RBVElDOworfQorCisvKiBTZXQgZGF0YSB0byBkeW5hbWljICovCitBTFdBWVNfSU5MSU5FIHZvaWQKK21wZF9zZXRfZHluYW1pY19kYXRhKG1wZF90ICpyZXN1bHQpCit7CisgICAgcmVzdWx0LT5mbGFncyAmPSB+TVBEX0RBVEFGTEFHUzsKK30KKworLyogU2V0IGRhdGEgdG8gc3RhdGljICovCitBTFdBWVNfSU5MSU5FIHZvaWQKK21wZF9zZXRfc3RhdGljX2RhdGEobXBkX3QgKnJlc3VsdCkKK3sKKyAgICByZXN1bHQtPmZsYWdzICY9IH5NUERfREFUQUZMQUdTOworICAgIHJlc3VsdC0+ZmxhZ3MgfD0gTVBEX1NUQVRJQ19EQVRBOworfQorCisvKiBTZXQgZGF0YSB0byBzaGFyZWQgKi8KK0FMV0FZU19JTkxJTkUgdm9pZAorbXBkX3NldF9zaGFyZWRfZGF0YShtcGRfdCAqcmVzdWx0KQoreworICAgIHJlc3VsdC0+ZmxhZ3MgJj0gfk1QRF9EQVRBRkxBR1M7CisgICAgcmVzdWx0LT5mbGFncyB8PSBNUERfU0hBUkVEX0RBVEE7Cit9CisKKy8qIFNldCBkYXRhIHRvIGNvbnN0ICovCitBTFdBWVNfSU5MSU5FIHZvaWQKK21wZF9zZXRfY29uc3RfZGF0YShtcGRfdCAqcmVzdWx0KQoreworICAgIHJlc3VsdC0+ZmxhZ3MgJj0gfk1QRF9EQVRBRkxBR1M7CisgICAgcmVzdWx0LT5mbGFncyB8PSBNUERfQ09OU1RfREFUQTsKK30KKworLyogQ2xlYXIgZmxhZ3MsIHByZXNlcnZpbmcgbWVtb3J5IGF0dHJpYnV0ZXMuICovCitBTFdBWVNfSU5MSU5FIHZvaWQKK21wZF9jbGVhcl9mbGFncyhtcGRfdCAqcmVzdWx0KQoreworICAgIHJlc3VsdC0+ZmxhZ3MgJj0gKE1QRF9TVEFUSUN8TVBEX0RBVEFGTEFHUyk7Cit9CisKKy8qIFNldCBmbGFncywgcHJlc2VydmluZyBtZW1vcnkgYXR0cmlidXRlcy4gKi8KK0FMV0FZU19JTkxJTkUgdm9pZAorbXBkX3NldF9mbGFncyhtcGRfdCAqcmVzdWx0LCB1aW50OF90IGZsYWdzKQoreworICAgIHJlc3VsdC0+ZmxhZ3MgJj0gKE1QRF9TVEFUSUN8TVBEX0RBVEFGTEFHUyk7CisgICAgcmVzdWx0LT5mbGFncyB8PSBmbGFnczsKK30KKworLyogQ29weSBmbGFncywgcHJlc2VydmluZyBtZW1vcnkgYXR0cmlidXRlcyBvZiByZXN1bHQuICovCitBTFdBWVNfSU5MSU5FIHZvaWQKK21wZF9jb3B5X2ZsYWdzKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphKQoreworICAgIHVpbnQ4X3QgYWZsYWdzID0gYS0+ZmxhZ3M7CisgICAgcmVzdWx0LT5mbGFncyAmPSAoTVBEX1NUQVRJQ3xNUERfREFUQUZMQUdTKTsKKyAgICByZXN1bHQtPmZsYWdzIHw9IChhZmxhZ3MgJiB+KE1QRF9TVEFUSUN8TVBEX0RBVEFGTEFHUykpOworfQorCisvKiBJbml0aWFsaXplIGEgd29ya2NvbnRleHQgZnJvbSBjdHguIFNldCB0cmFwcywgZmxhZ3MgYW5kIG5ld3RyYXAgdG8gMC4gKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorbXBkX3dvcmtjb250ZXh0KG1wZF9jb250ZXh0X3QgKndvcmtjdHgsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICB3b3JrY3R4LT5wcmVjID0gY3R4LT5wcmVjOworICAgIHdvcmtjdHgtPmVtYXggPSBjdHgtPmVtYXg7CisgICAgd29ya2N0eC0+ZW1pbiA9IGN0eC0+ZW1pbjsKKyAgICB3b3JrY3R4LT5yb3VuZCA9IGN0eC0+cm91bmQ7CisgICAgd29ya2N0eC0+dHJhcHMgPSAwOworICAgIHdvcmtjdHgtPnN0YXR1cyA9IDA7CisgICAgd29ya2N0eC0+bmV3dHJhcCA9IDA7CisgICAgd29ya2N0eC0+Y2xhbXAgPSBjdHgtPmNsYW1wOworICAgIHdvcmtjdHgtPmFsbGNyID0gY3R4LT5hbGxjcjsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICBHZXR0aW5nIGFuZCBzZXR0aW5nIHBhcnRzIG9mIGRlY2ltYWxzICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIEZsaXAgdGhlIHNpZ24gb2YgYSBkZWNpbWFsICovCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfbmVnYXRlKG1wZF90ICpkZWMpCit7CisgICAgZGVjLT5mbGFncyBePSBNUERfTkVHOworfQorCisvKiBTZXQgY29lZmZpY2llbnQgdG8gemVybyAqLwordm9pZAorbXBkX3plcm9jb2VmZihtcGRfdCAqcmVzdWx0KQoreworICAgIG1wZF9taW5hbGxvYyhyZXN1bHQpOworICAgIHJlc3VsdC0+ZGlnaXRzID0gMTsKKyAgICByZXN1bHQtPmxlbiA9IDE7CisgICAgcmVzdWx0LT5kYXRhWzBdID0gMDsKK30KKworLyogU2V0IHRoZSBjb2VmZmljaWVudCB0byBhbGwgbmluZXMuICovCit2b2lkCittcGRfcW1heGNvZWZmKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfc3NpemVfdCBsZW4sIHI7CisKKyAgICBfbXBkX2lkaXZfd29yZCgmbGVuLCAmciwgY3R4LT5wcmVjLCBNUERfUkRJR0lUUyk7CisgICAgbGVuID0gKHIgPT0gMCkgPyBsZW4gOiBsZW4rMTsKKworICAgIGlmICghbXBkX3FyZXNpemUocmVzdWx0LCBsZW4sIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlc3VsdC0+bGVuID0gbGVuOworICAgIHJlc3VsdC0+ZGlnaXRzID0gY3R4LT5wcmVjOworCisgICAgLS1sZW47CisgICAgaWYgKHIgPiAwKSB7CisgICAgICAgIHJlc3VsdC0+ZGF0YVtsZW4tLV0gPSBtcGRfcG93MTBbcl0tMTsKKyAgICB9CisgICAgZm9yICg7IGxlbiA+PSAwOyAtLWxlbikgeworICAgICAgICByZXN1bHQtPmRhdGFbbGVuXSA9IE1QRF9SQURJWC0xOworICAgIH0KK30KKworLyoKKyAqIEN1dCBvZmYgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgZGlnaXRzIHNvIHRoYXQgdGhlIHJlc3QgZml0cyBpbiBjdHgtPnByZWMuCisgKiBDYW5ub3QgZmFpbC4KKyAqLworc3RhdGljIHZvaWQKK19tcGRfY2FwKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICB1aW50MzJfdCBkdW1teTsKKyAgICBtcGRfc3NpemVfdCBsZW4sIHI7CisKKyAgICBpZiAocmVzdWx0LT5sZW4gPiAwICYmIHJlc3VsdC0+ZGlnaXRzID4gY3R4LT5wcmVjKSB7CisgICAgICAgIF9tcGRfaWRpdl93b3JkKCZsZW4sICZyLCBjdHgtPnByZWMsIE1QRF9SRElHSVRTKTsKKyAgICAgICAgbGVuID0gKHIgPT0gMCkgPyBsZW4gOiBsZW4rMTsKKworICAgICAgICBpZiAociAhPSAwKSB7CisgICAgICAgICAgICByZXN1bHQtPmRhdGFbbGVuLTFdICU9IG1wZF9wb3cxMFtyXTsKKyAgICAgICAgfQorCisgICAgICAgIGxlbiA9IF9tcGRfcmVhbF9zaXplKHJlc3VsdC0+ZGF0YSwgbGVuKTsKKyAgICAgICAgLyogcmVzaXplIHRvIGZld2VyIHdvcmRzIGNhbm5vdCBmYWlsICovCisgICAgICAgIG1wZF9xcmVzaXplKHJlc3VsdCwgbGVuLCAmZHVtbXkpOworICAgICAgICByZXN1bHQtPmxlbiA9IGxlbjsKKyAgICAgICAgbXBkX3NldGRpZ2l0cyhyZXN1bHQpOworICAgIH0KKyAgICBpZiAobXBkX2lzemVybyhyZXN1bHQpKSB7CisgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCBtcGRfc2lnbihyZXN1bHQpLCAwLCByZXN1bHQtPmV4cCk7CisgICAgfQorfQorCisvKgorICogQ3V0IG9mZiB0aGUgbW9zdCBzaWduaWZpY2FudCBkaWdpdHMgb2YgYSBOYU4gcGF5bG9hZCBzbyB0aGF0IHRoZSByZXN0CisgKiBmaXRzIGluIGN0eC0+cHJlYyAtIGN0eC0+Y2xhbXAuIENhbm5vdCBmYWlsLgorICovCitzdGF0aWMgdm9pZAorX21wZF9maXhfbmFuKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICB1aW50MzJfdCBkdW1teTsKKyAgICBtcGRfc3NpemVfdCBwcmVjOworICAgIG1wZF9zc2l6ZV90IGxlbiwgcjsKKworICAgIHByZWMgPSBjdHgtPnByZWMgLSBjdHgtPmNsYW1wOworICAgIGlmIChyZXN1bHQtPmxlbiA+IDAgJiYgcmVzdWx0LT5kaWdpdHMgPiBwcmVjKSB7CisgICAgICAgIGlmIChwcmVjID09IDApIHsKKyAgICAgICAgICAgIG1wZF9taW5hbGxvYyhyZXN1bHQpOworICAgICAgICAgICAgcmVzdWx0LT5sZW4gPSByZXN1bHQtPmRpZ2l0cyA9IDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBfbXBkX2lkaXZfd29yZCgmbGVuLCAmciwgcHJlYywgTVBEX1JESUdJVFMpOworICAgICAgICAgICAgbGVuID0gKHIgPT0gMCkgPyBsZW4gOiBsZW4rMTsKKworICAgICAgICAgICAgaWYgKHIgIT0gMCkgeworICAgICAgICAgICAgICAgICByZXN1bHQtPmRhdGFbbGVuLTFdICU9IG1wZF9wb3cxMFtyXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbGVuID0gX21wZF9yZWFsX3NpemUocmVzdWx0LT5kYXRhLCBsZW4pOworICAgICAgICAgICAgLyogcmVzaXplIHRvIGZld2VyIHdvcmRzIGNhbm5vdCBmYWlsICovCisgICAgICAgICAgICBtcGRfcXJlc2l6ZShyZXN1bHQsIGxlbiwgJmR1bW15KTsKKyAgICAgICAgICAgIHJlc3VsdC0+bGVuID0gbGVuOworICAgICAgICAgICAgbXBkX3NldGRpZ2l0cyhyZXN1bHQpOworICAgICAgICAgICAgaWYgKG1wZF9pc3plcm9jb2VmZihyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgLyogTmFOMCBpcyBub3QgYSB2YWxpZCByZXByZXNlbnRhdGlvbiAqLworICAgICAgICAgICAgICAgIHJlc3VsdC0+bGVuID0gcmVzdWx0LT5kaWdpdHMgPSAwOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorfQorCisvKgorICogR2V0IG4gbW9zdCBzaWduaWZpY2FudCBkaWdpdHMgZnJvbSBhIGRlY2ltYWwsIHdoZXJlIDAgPCBuIDw9IE1QRF9VSU5UX0RJR0lUUy4KKyAqIEFzc3VtZXMgTVBEX1VJTlRfRElHSVRTID09IE1QRF9SRElHSVRTKzEsIHdoaWNoIGlzIHRydWUgZm9yIDMyIGFuZCA2NCBiaXQKKyAqIG1hY2hpbmVzLgorICoKKyAqIFRoZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbiB3aWxsIGJlIGluIGxvLiBJZiB0aGUgb3BlcmF0aW9uIGlzIGltcG9zc2libGUsCisgKiBoaSB3aWxsIGJlIG5vbnplcm8uIFRoaXMgaXMgdXNlZCB0byBpbmRpY2F0ZSBhbiBlcnJvci4KKyAqLworc3RhdGljIGlubGluZSB2b2lkCitfbXBkX2dldF9tc2RpZ2l0cyhtcGRfdWludF90ICpoaSwgbXBkX3VpbnRfdCAqbG8sIGNvbnN0IG1wZF90ICpkZWMsCisgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbikKK3sKKyAgICBtcGRfdWludF90IHIsIHRtcDsKKworICAgIGFzc2VydCgwIDwgbiAmJiBuIDw9IE1QRF9SRElHSVRTKzEpOworCisgICAgX21wZF9kaXZfd29yZCgmdG1wLCAmciwgZGVjLT5kaWdpdHMsIE1QRF9SRElHSVRTKTsKKyAgICByID0gKHIgPT0gMCkgPyBNUERfUkRJR0lUUyA6IHI7IC8qIGRpZ2l0cyBpbiB0aGUgbW9zdCBzaWduaWZpY2FudCB3b3JkICovCisKKyAgICAqaGkgPSAwOworICAgICpsbyA9IGRlYy0+ZGF0YVtkZWMtPmxlbi0xXTsKKyAgICBpZiAobiA8PSByKSB7CisgICAgICAgICpsbyAvPSBtcGRfcG93MTBbci1uXTsKKyAgICB9CisgICAgZWxzZSBpZiAoZGVjLT5sZW4gPiAxKSB7CisgICAgICAgIC8qIGF0IHRoaXMgcG9pbnQgMSA8PSByIDwgbiA8PSBNUERfUkRJR0lUUysxICovCisgICAgICAgIF9tcGRfbXVsX3dvcmRzKGhpLCBsbywgKmxvLCBtcGRfcG93MTBbbi1yXSk7CisgICAgICAgIHRtcCA9IGRlYy0+ZGF0YVtkZWMtPmxlbi0yXSAvIG1wZF9wb3cxMFtNUERfUkRJR0lUUy0obi1yKV07CisgICAgICAgICpsbyA9ICpsbyArIHRtcDsKKyAgICAgICAgaWYgKCpsbyA8IHRtcCkgKCpoaSkrKzsKKyAgICB9Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgIEdhdGhlcmluZyBpbmZvcm1hdGlvbiBhYm91dCBhIGRlY2ltYWwgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBUaGUgcmVhbCBzaXplIG9mIHRoZSBjb2VmZmljaWVudCB3aXRob3V0IGxlYWRpbmcgemVybyB3b3Jkcy4gKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3NzaXplX3QKK19tcGRfcmVhbF9zaXplKG1wZF91aW50X3QgKmRhdGEsIG1wZF9zc2l6ZV90IHNpemUpCit7CisgICAgd2hpbGUgKHNpemUgPiAxICYmIGRhdGFbc2l6ZS0xXSA9PSAwKSB7CisgICAgICAgIHNpemUtLTsKKyAgICB9CisKKyAgICByZXR1cm4gc2l6ZTsKK30KKworLyogUmV0dXJuIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvcy4gTm8gZXJyb3JzIGFyZSBwb3NzaWJsZS4gKi8KK21wZF9zc2l6ZV90CittcGRfdHJhaWxfemVyb3MoY29uc3QgbXBkX3QgKmRlYykKK3sKKyAgICBtcGRfdWludF90IHdvcmQ7CisgICAgbXBkX3NzaXplX3QgaSwgdHogPSAwOworCisgICAgZm9yIChpPTA7IGkgPCBkZWMtPmxlbjsgKytpKSB7CisgICAgICAgIGlmIChkZWMtPmRhdGFbaV0gIT0gMCkgeworICAgICAgICAgICAgd29yZCA9IGRlYy0+ZGF0YVtpXTsKKyAgICAgICAgICAgIHR6ID0gaSAqIE1QRF9SRElHSVRTOworICAgICAgICAgICAgd2hpbGUgKHdvcmQgJSAxMCA9PSAwKSB7CisgICAgICAgICAgICAgICAgd29yZCAvPSAxMDsKKyAgICAgICAgICAgICAgICB0eisrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gdHo7Cit9CisKKy8qIEludGVnZXI6IFVuZGVmaW5lZCBmb3Igc3BlY2lhbHMgKi8KK3N0YXRpYyBpbnQKK19tcGRfaXNpbnQoY29uc3QgbXBkX3QgKmRlYykKK3sKKyAgICBtcGRfc3NpemVfdCB0ejsKKworICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoZGVjKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICB0eiA9IG1wZF90cmFpbF96ZXJvcyhkZWMpOworICAgIHJldHVybiAoZGVjLT5leHAgKyB0eiA+PSAwKTsKK30KKworLyogSW50ZWdlciAqLworaW50CittcGRfaXNpbnRlZ2VyKGNvbnN0IG1wZF90ICpkZWMpCit7CisgICAgaWYgKG1wZF9pc3NwZWNpYWwoZGVjKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIF9tcGRfaXNpbnQoZGVjKTsKK30KKworLyogV29yZCBpcyBhIHBvd2VyIG9mIDEwICovCitzdGF0aWMgaW50CittcGRfd29yZF9pc3BvdzEwKG1wZF91aW50X3Qgd29yZCkKK3sKKyAgICBpbnQgbjsKKworICAgIG4gPSBtcGRfd29yZF9kaWdpdHMod29yZCk7CisgICAgaWYgKHdvcmQgPT0gbXBkX3BvdzEwW24tMV0pIHsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKKy8qIENvZWZmaWNpZW50IGlzIGEgcG93ZXIgb2YgMTAgKi8KK3N0YXRpYyBpbnQKK21wZF9jb2VmZl9pc3BvdzEwKGNvbnN0IG1wZF90ICpkZWMpCit7CisgICAgaWYgKG1wZF93b3JkX2lzcG93MTAobXBkX21zd29yZChkZWMpKSkgeworICAgICAgICBpZiAoX21wZF9pc2FsbHplcm8oZGVjLT5kYXRhLCBkZWMtPmxlbi0xKSkgeworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyogQWxsIGRpZ2l0cyBvZiBhIHdvcmQgYXJlIG5pbmVzICovCitzdGF0aWMgaW50CittcGRfd29yZF9pc2FsbG5pbmUobXBkX3VpbnRfdCB3b3JkKQoreworICAgIGludCBuOworCisgICAgbiA9IG1wZF93b3JkX2RpZ2l0cyh3b3JkKTsKKyAgICBpZiAod29yZCA9PSBtcGRfcG93MTBbbl0tMSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyogQWxsIGRpZ2l0cyBvZiB0aGUgY29lZmZpY2llbnQgYXJlIG5pbmVzICovCitzdGF0aWMgaW50CittcGRfY29lZmZfaXNhbGxuaW5lKGNvbnN0IG1wZF90ICpkZWMpCit7CisgICAgaWYgKG1wZF93b3JkX2lzYWxsbmluZShtcGRfbXN3b3JkKGRlYykpKSB7CisgICAgICAgIGlmIChfbXBkX2lzYWxsbmluZShkZWMtPmRhdGEsIGRlYy0+bGVuLTEpKSB7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKiBPZGQgZGVjaW1hbDogVW5kZWZpbmVkIGZvciBub24taW50ZWdlcnMhICovCitpbnQKK21wZF9pc29kZChjb25zdCBtcGRfdCAqZGVjKQoreworICAgIG1wZF91aW50X3QgcSwgcjsKKyAgICBhc3NlcnQobXBkX2lzaW50ZWdlcihkZWMpKTsKKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGRlYykpIHJldHVybiAwOworICAgIGlmIChkZWMtPmV4cCA8IDApIHsKKyAgICAgICAgX21wZF9kaXZfd29yZCgmcSwgJnIsIC1kZWMtPmV4cCwgTVBEX1JESUdJVFMpOworICAgICAgICBxID0gZGVjLT5kYXRhW3FdIC8gbXBkX3BvdzEwW3JdOworICAgICAgICByZXR1cm4gbXBkX2lzb2Rkd29yZChxKTsKKyAgICB9CisgICAgcmV0dXJuIGRlYy0+ZXhwID09IDAgJiYgbXBkX2lzb2Rkd29yZChkZWMtPmRhdGFbMF0pOworfQorCisvKiBFdmVuOiBVbmRlZmluZWQgZm9yIG5vbi1pbnRlZ2VycyEgKi8KK2ludAorbXBkX2lzZXZlbihjb25zdCBtcGRfdCAqZGVjKQoreworICAgIHJldHVybiAhbXBkX2lzb2RkKGRlYyk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICBHZXR0aW5nIGFuZCBzZXR0aW5nIGRlY2ltYWxzICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogSW50ZXJuYWwgZnVuY3Rpb246IFNldCBhIHN0YXRpYyBkZWNpbWFsIGZyb20gYSB0cmlwbGUsIG5vIGVycm9yIGNoZWNraW5nLiAqLworc3RhdGljIHZvaWQKK19zc2V0dHJpcGxlKG1wZF90ICpyZXN1bHQsIHVpbnQ4X3Qgc2lnbiwgbXBkX3VpbnRfdCBhLCBtcGRfc3NpemVfdCBleHApCit7CisgICAgbXBkX3NldF9mbGFncyhyZXN1bHQsIHNpZ24pOworICAgIHJlc3VsdC0+ZXhwID0gZXhwOworICAgIF9tcGRfZGl2X3dvcmQoJnJlc3VsdC0+ZGF0YVsxXSwgJnJlc3VsdC0+ZGF0YVswXSwgYSwgTVBEX1JBRElYKTsKKyAgICByZXN1bHQtPmxlbiA9IChyZXN1bHQtPmRhdGFbMV0gPT0gMCkgPyAxIDogMjsKKyAgICBtcGRfc2V0ZGlnaXRzKHJlc3VsdCk7Cit9CisKKy8qIEludGVybmFsIGZ1bmN0aW9uOiBTZXQgYSBkZWNpbWFsIGZyb20gYSB0cmlwbGUsIG5vIGVycm9yIGNoZWNraW5nLiAqLworc3RhdGljIHZvaWQKK19zZXR0cmlwbGUobXBkX3QgKnJlc3VsdCwgdWludDhfdCBzaWduLCBtcGRfdWludF90IGEsIG1wZF9zc2l6ZV90IGV4cCkKK3sKKyAgICBtcGRfbWluYWxsb2MocmVzdWx0KTsKKyAgICBtcGRfc2V0X2ZsYWdzKHJlc3VsdCwgc2lnbik7CisgICAgcmVzdWx0LT5leHAgPSBleHA7CisgICAgX21wZF9kaXZfd29yZCgmcmVzdWx0LT5kYXRhWzFdLCAmcmVzdWx0LT5kYXRhWzBdLCBhLCBNUERfUkFESVgpOworICAgIHJlc3VsdC0+bGVuID0gKHJlc3VsdC0+ZGF0YVsxXSA9PSAwKSA/IDEgOiAyOworICAgIG1wZF9zZXRkaWdpdHMocmVzdWx0KTsKK30KKworLyogU2V0IGEgc3BlY2lhbCBudW1iZXIgZnJvbSBhIHRyaXBsZSAqLwordm9pZAorbXBkX3NldHNwZWNpYWwobXBkX3QgKnJlc3VsdCwgdWludDhfdCBzaWduLCB1aW50OF90IHR5cGUpCit7CisgICAgbXBkX21pbmFsbG9jKHJlc3VsdCk7CisgICAgcmVzdWx0LT5mbGFncyAmPSB+KE1QRF9ORUd8TVBEX1NQRUNJQUwpOworICAgIHJlc3VsdC0+ZmxhZ3MgfD0gKHNpZ258dHlwZSk7CisgICAgcmVzdWx0LT5leHAgPSByZXN1bHQtPmRpZ2l0cyA9IHJlc3VsdC0+bGVuID0gMDsKK30KKworLyogU2V0IHJlc3VsdCBvZiBOYU4gd2l0aCBhbiBlcnJvciBzdGF0dXMgKi8KK3ZvaWQKK21wZF9zZXRlcnJvcihtcGRfdCAqcmVzdWx0LCB1aW50MzJfdCBmbGFncywgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfbWluYWxsb2MocmVzdWx0KTsKKyAgICBtcGRfc2V0X3FuYW4ocmVzdWx0KTsKKyAgICBtcGRfc2V0X3Bvc2l0aXZlKHJlc3VsdCk7CisgICAgcmVzdWx0LT5leHAgPSByZXN1bHQtPmRpZ2l0cyA9IHJlc3VsdC0+bGVuID0gMDsKKyAgICAqc3RhdHVzIHw9IGZsYWdzOworfQorCisvKiBxdWlldGx5IHNldCBhIHN0YXRpYyBkZWNpbWFsIGZyb20gYW4gbXBkX3NzaXplX3QgKi8KK3ZvaWQKK21wZF9xc3NldF9zc2l6ZShtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfdWludF90IHU7CisgICAgdWludDhfdCBzaWduID0gTVBEX1BPUzsKKworICAgIGlmIChhIDwgMCkgeworICAgICAgICBpZiAoYSA9PSBNUERfU1NJWkVfTUlOKSB7CisgICAgICAgICAgICB1ID0gKG1wZF91aW50X3QpTVBEX1NTSVpFX01BWCArCisgICAgICAgICAgICAgICAgKC0oTVBEX1NTSVpFX01JTitNUERfU1NJWkVfTUFYKSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB1ID0gLWE7CisgICAgICAgIH0KKyAgICAgICAgc2lnbiA9IE1QRF9ORUc7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICB1ID0gYTsKKyAgICB9CisgICAgX3NzZXR0cmlwbGUocmVzdWx0LCBzaWduLCB1LCAwKTsKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworfQorCisvKiBxdWlldGx5IHNldCBhIHN0YXRpYyBkZWNpbWFsIGZyb20gYW4gbXBkX3VpbnRfdCAqLwordm9pZAorbXBkX3Fzc2V0X3VpbnQobXBkX3QgKnJlc3VsdCwgbXBkX3VpbnRfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIF9zc2V0dHJpcGxlKHJlc3VsdCwgTVBEX1BPUywgYSwgMCk7CisgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsIGN0eCwgc3RhdHVzKTsKK30KKworLyogcXVpZXRseSBzZXQgYSBzdGF0aWMgZGVjaW1hbCBmcm9tIGFuIGludDMyX3QgKi8KK3ZvaWQKK21wZF9xc3NldF9pMzIobXBkX3QgKnJlc3VsdCwgaW50MzJfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3Fzc2V0X3NzaXplKHJlc3VsdCwgYSwgY3R4LCBzdGF0dXMpOworfQorCisvKiBxdWlldGx5IHNldCBhIHN0YXRpYyBkZWNpbWFsIGZyb20gYSB1aW50MzJfdCAqLwordm9pZAorbXBkX3Fzc2V0X3UzMihtcGRfdCAqcmVzdWx0LCB1aW50MzJfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3Fzc2V0X3VpbnQocmVzdWx0LCBhLCBjdHgsIHN0YXR1cyk7Cit9CisKKyNpZmRlZiBDT05GSUdfNjQKKy8qIHF1aWV0bHkgc2V0IGEgc3RhdGljIGRlY2ltYWwgZnJvbSBhbiBpbnQ2NF90ICovCit2b2lkCittcGRfcXNzZXRfaTY0KG1wZF90ICpyZXN1bHQsIGludDY0X3QgYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9xc3NldF9zc2l6ZShyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKTsKK30KKworLyogcXVpZXRseSBzZXQgYSBzdGF0aWMgZGVjaW1hbCBmcm9tIGEgdWludDY0X3QgKi8KK3ZvaWQKK21wZF9xc3NldF91NjQobXBkX3QgKnJlc3VsdCwgdWludDY0X3QgYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9xc3NldF91aW50KHJlc3VsdCwgYSwgY3R4LCBzdGF0dXMpOworfQorI2VuZGlmCisKKy8qIHF1aWV0bHkgc2V0IGEgZGVjaW1hbCBmcm9tIGFuIG1wZF9zc2l6ZV90ICovCit2b2lkCittcGRfcXNldF9zc2l6ZShtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9taW5hbGxvYyhyZXN1bHQpOworICAgIG1wZF9xc3NldF9zc2l6ZShyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKTsKK30KKworLyogcXVpZXRseSBzZXQgYSBkZWNpbWFsIGZyb20gYW4gbXBkX3VpbnRfdCAqLwordm9pZAorbXBkX3FzZXRfdWludChtcGRfdCAqcmVzdWx0LCBtcGRfdWludF90IGEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBfc2V0dHJpcGxlKHJlc3VsdCwgTVBEX1BPUywgYSwgMCk7CisgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsIGN0eCwgc3RhdHVzKTsKK30KKworLyogcXVpZXRseSBzZXQgYSBkZWNpbWFsIGZyb20gYW4gaW50MzJfdCAqLwordm9pZAorbXBkX3FzZXRfaTMyKG1wZF90ICpyZXN1bHQsIGludDMyX3QgYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3FzZXRfc3NpemUocmVzdWx0LCBhLCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qIHF1aWV0bHkgc2V0IGEgZGVjaW1hbCBmcm9tIGEgdWludDMyX3QgKi8KK3ZvaWQKK21wZF9xc2V0X3UzMihtcGRfdCAqcmVzdWx0LCB1aW50MzJfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfcXNldF91aW50KHJlc3VsdCwgYSwgY3R4LCBzdGF0dXMpOworfQorCisjaWYgZGVmaW5lZChDT05GSUdfMzIpICYmICFkZWZpbmVkKExFR0FDWV9DT01QSUxFUikKKy8qIHNldCBhIGRlY2ltYWwgZnJvbSBhIHVpbnQ2NF90ICovCitzdGF0aWMgdm9pZAorX2MzMnNldHU2NChtcGRfdCAqcmVzdWx0LCB1aW50NjRfdCB1LCB1aW50OF90IHNpZ24sIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3VpbnRfdCB3WzNdOworICAgIHVpbnQ2NF90IHE7CisgICAgaW50IGksIGxlbjsKKworICAgIGxlbiA9IDA7CisgICAgZG8geworICAgICAgICBxID0gdSAvIE1QRF9SQURJWDsKKyAgICAgICAgd1tsZW5dID0gKG1wZF91aW50X3QpKHUgLSBxICogTVBEX1JBRElYKTsKKyAgICAgICAgdSA9IHE7IGxlbisrOworICAgIH0gd2hpbGUgKHUgIT0gMCk7CisKKyAgICBpZiAoIW1wZF9xcmVzaXplKHJlc3VsdCwgbGVuLCBzdGF0dXMpKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgIHJlc3VsdC0+ZGF0YVtpXSA9IHdbaV07CisgICAgfQorCisgICAgbXBkX3NldF9zaWduKHJlc3VsdCwgc2lnbik7CisgICAgcmVzdWx0LT5leHAgPSAwOworICAgIHJlc3VsdC0+bGVuID0gbGVuOworICAgIG1wZF9zZXRkaWdpdHMocmVzdWx0KTsKK30KKworc3RhdGljIHZvaWQKK19jMzJfcXNldF91NjQobXBkX3QgKnJlc3VsdCwgdWludDY0X3QgYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIF9jMzJzZXR1NjQocmVzdWx0LCBhLCBNUERfUE9TLCBzdGF0dXMpOworICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qIHNldCBhIGRlY2ltYWwgZnJvbSBhbiBpbnQ2NF90ICovCitzdGF0aWMgdm9pZAorX2MzMl9xc2V0X2k2NChtcGRfdCAqcmVzdWx0LCBpbnQ2NF90IGEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICB1aW50NjRfdCB1OworICAgIHVpbnQ4X3Qgc2lnbiA9IE1QRF9QT1M7CisKKyAgICBpZiAoYSA8IDApIHsKKyAgICAgICAgaWYgKGEgPT0gSU5UNjRfTUlOKSB7CisgICAgICAgICAgICB1ID0gKHVpbnQ2NF90KUlOVDY0X01BWCArICgtKElOVDY0X01JTitJTlQ2NF9NQVgpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHUgPSAtYTsKKyAgICAgICAgfQorICAgICAgICBzaWduID0gTVBEX05FRzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHUgPSBhOworICAgIH0KKyAgICBfYzMyc2V0dTY0KHJlc3VsdCwgdSwgc2lnbiwgc3RhdHVzKTsKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworfQorI2VuZGlmIC8qIENPTkZJR18zMiAmJiAhTEVHQUNZX0NPTVBJTEVSICovCisKKyNpZm5kZWYgTEVHQUNZX0NPTVBJTEVSCisvKiBxdWlldGx5IHNldCBhIGRlY2ltYWwgZnJvbSBhbiBpbnQ2NF90ICovCit2b2lkCittcGRfcXNldF9pNjQobXBkX3QgKnJlc3VsdCwgaW50NjRfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyNpZmRlZiBDT05GSUdfNjQKKyAgICBtcGRfcXNldF9zc2l6ZShyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKTsKKyNlbHNlCisgICAgX2MzMl9xc2V0X2k2NChyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKTsKKyNlbmRpZgorfQorCisvKiBxdWlldGx5IHNldCBhIGRlY2ltYWwgZnJvbSBhIHVpbnQ2NF90ICovCit2b2lkCittcGRfcXNldF91NjQobXBkX3QgKnJlc3VsdCwgdWludDY0X3QgYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisjaWZkZWYgQ09ORklHXzY0CisgICAgbXBkX3FzZXRfdWludChyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKTsKKyNlbHNlCisgICAgX2MzMl9xc2V0X3U2NChyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKTsKKyNlbmRpZgorfQorI2VuZGlmIC8qICFMRUdBQ1lfQ09NUElMRVIgKi8KKworCisvKgorICogUXVpZXRseSBnZXQgYW4gbXBkX3VpbnRfdCBmcm9tIGEgZGVjaW1hbC4gQXNzdW1lcworICogTVBEX1VJTlRfRElHSVRTID09IE1QRF9SRElHSVRTKzEsIHdoaWNoIGlzIHRydWUgZm9yCisgKiAzMiBhbmQgNjQgYml0IG1hY2hpbmVzLgorICoKKyAqIElmIHRoZSBvcGVyYXRpb24gaXMgaW1wb3NzaWJsZSwgTVBEX0ludmFsaWRfb3BlcmF0aW9uIGlzIHNldC4KKyAqLworc3RhdGljIG1wZF91aW50X3QKK19tcGRfcWdldF91aW50KGludCB1c2Vfc2lnbiwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3QgdG1wOworICAgIG1wZF91aW50X3QgdG1wX2RhdGFbMl07CisgICAgbXBkX3VpbnRfdCBsbywgaGk7CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSkgeworICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIE1QRF9VSU5UX01BWDsKKyAgICB9CisgICAgaWYgKG1wZF9pc3plcm8oYSkpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmICh1c2Vfc2lnbiAmJiBtcGRfaXNuZWdhdGl2ZShhKSkgeworICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIE1QRF9VSU5UX01BWDsKKyAgICB9CisKKyAgICBpZiAoYS0+ZGlnaXRzK2EtPmV4cCA+IE1QRF9SRElHSVRTKzEpIHsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfSW52YWxpZF9vcGVyYXRpb247CisgICAgICAgIHJldHVybiBNUERfVUlOVF9NQVg7CisgICAgfQorCisgICAgaWYgKGEtPmV4cCA8IDApIHsKKyAgICAgICAgaWYgKCFfbXBkX2lzaW50KGEpKSB7CisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBNUERfVUlOVF9NQVg7CisgICAgICAgIH0KKyAgICAgICAgLyogQXQgdGhpcyBwb2ludCBhLT5kaWdpdHMrYS0+ZXhwIDw9IE1QRF9SRElHSVRTKzEsCisgICAgICAgICAqIHNvIHRoZSBzaGlmdCBmaXRzLiAqLworICAgICAgICB0bXAuZGF0YSA9IHRtcF9kYXRhOworICAgICAgICB0bXAuZmxhZ3MgPSBNUERfU1RBVElDfE1QRF9TVEFUSUNfREFUQTsKKyAgICAgICAgdG1wLmFsbG9jID0gMjsKKyAgICAgICAgbXBkX3Fzc2hpZnRyKCZ0bXAsIGEsIC1hLT5leHApOworICAgICAgICB0bXAuZXhwID0gMDsKKyAgICAgICAgYSA9ICZ0bXA7CisgICAgfQorCisgICAgX21wZF9nZXRfbXNkaWdpdHMoJmhpLCAmbG8sIGEsIE1QRF9SRElHSVRTKzEpOworICAgIGlmIChoaSkgeworICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgcmV0dXJuIE1QRF9VSU5UX01BWDsKKyAgICB9CisKKyAgICBpZiAoYS0+ZXhwID4gMCkgeworICAgICAgICBfbXBkX211bF93b3JkcygmaGksICZsbywgbG8sIG1wZF9wb3cxMFthLT5leHBdKTsKKyAgICAgICAgaWYgKGhpKSB7CisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBNUERfVUlOVF9NQVg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbG87Cit9CisKKy8qCisgKiBTZXRzIEludmFsaWRfb3BlcmF0aW9uIGZvcjoKKyAqICAgLSBzcGVjaWFscworICogICAtIG5lZ2F0aXZlIG51bWJlcnMgKGV4Y2VwdCBuZWdhdGl2ZSB6ZXJvKQorICogICAtIG5vbi1pbnRlZ2VycworICogICAtIG92ZXJmbG93CisgKi8KK21wZF91aW50X3QKK21wZF9xZ2V0X3VpbnQoY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgcmV0dXJuIF9tcGRfcWdldF91aW50KDEsIGEsIHN0YXR1cyk7Cit9CisKKy8qIFNhbWUgYXMgYWJvdmUsIGJ1dCBnZXRzIHRoZSBhYnNvbHV0ZSB2YWx1ZSwgaS5lLiB0aGUgc2lnbiBpcyBpZ25vcmVkLiAqLworbXBkX3VpbnRfdAorbXBkX3FhYnNfdWludChjb25zdCBtcGRfdCAqYSwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICByZXR1cm4gX21wZF9xZ2V0X3VpbnQoMCwgYSwgc3RhdHVzKTsKK30KKworLyogcXVpZXRseSBnZXQgYW4gbXBkX3NzaXplX3QgZnJvbSBhIGRlY2ltYWwgKi8KK21wZF9zc2l6ZV90CittcGRfcWdldF9zc2l6ZShjb25zdCBtcGRfdCAqYSwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfdWludF90IHU7CisgICAgaW50IGlzbmVnOworCisgICAgdSA9IG1wZF9xYWJzX3VpbnQoYSwgc3RhdHVzKTsKKyAgICBpZiAoKnN0YXR1cyZNUERfSW52YWxpZF9vcGVyYXRpb24pIHsKKyAgICAgICAgcmV0dXJuIE1QRF9TU0laRV9NQVg7CisgICAgfQorCisgICAgaXNuZWcgPSBtcGRfaXNuZWdhdGl2ZShhKTsKKyAgICBpZiAodSA8PSBNUERfU1NJWkVfTUFYKSB7CisgICAgICAgIHJldHVybiBpc25lZyA/IC0oKG1wZF9zc2l6ZV90KXUpIDogKG1wZF9zc2l6ZV90KXU7CisgICAgfQorICAgIGVsc2UgaWYgKGlzbmVnICYmIHUrKE1QRF9TU0laRV9NSU4rTVBEX1NTSVpFX01BWCkgPT0gTVBEX1NTSVpFX01BWCkgeworICAgICAgICByZXR1cm4gTVBEX1NTSVpFX01JTjsKKyAgICB9CisKKyAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICByZXR1cm4gTVBEX1NTSVpFX01BWDsKK30KKworI2lmZGVmIENPTkZJR182NAorLyogcXVpZXRseSBnZXQgYSB1aW50NjRfdCBmcm9tIGEgZGVjaW1hbCAqLwordWludDY0X3QKK21wZF9xZ2V0X3U2NChjb25zdCBtcGRfdCAqYSwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICByZXR1cm4gbXBkX3FnZXRfdWludChhLCBzdGF0dXMpOworfQorCisvKiBxdWlldGx5IGdldCBhbiBpbnQ2NF90IGZyb20gYSBkZWNpbWFsICovCitpbnQ2NF90CittcGRfcWdldF9pNjQoY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgcmV0dXJuIG1wZF9xZ2V0X3NzaXplKGEsIHN0YXR1cyk7Cit9CisjZWxzZQorLyogcXVpZXRseSBnZXQgYSB1aW50MzJfdCBmcm9tIGEgZGVjaW1hbCAqLwordWludDMyX3QKK21wZF9xZ2V0X3UzMihjb25zdCBtcGRfdCAqYSwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICByZXR1cm4gbXBkX3FnZXRfdWludChhLCBzdGF0dXMpOworfQorCisvKiBxdWlldGx5IGdldCBhbiBpbnQzMl90IGZyb20gYSBkZWNpbWFsICovCitpbnQzMl90CittcGRfcWdldF9pMzIoY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgcmV0dXJuIG1wZF9xZ2V0X3NzaXplKGEsIHN0YXR1cyk7Cit9CisjZW5kaWYKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICBGaWx0ZXJpbmcgaW5wdXQgb2YgZnVuY3Rpb25zLCBmaW5hbGl6aW5nIG91dHB1dCBvZiBmdW5jdGlvbnMgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBDaGVjayBpZiB0aGUgb3BlcmFuZCBpcyBOYU4sIGNvcHkgdG8gcmVzdWx0IGFuZCByZXR1cm4gMSBpZiB0aGlzIGlzCisgKiB0aGUgY2FzZS4gQ29weWluZyBjYW4gZmFpbCBzaW5jZSBOYU5zIGFyZSBhbGxvd2VkIHRvIGhhdmUgYSBwYXlsb2FkIHRoYXQKKyAqIGRvZXMgbm90IGZpdCBpbiBNUERfTUlOQUxMT0MuCisgKi8KK2ludAorbXBkX3FjaGVja19uYW4obXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKG1wZF9pc25hbihhKSkgeworICAgICAgICAqc3RhdHVzIHw9IG1wZF9pc3NuYW4oYSkgPyBNUERfSW52YWxpZF9vcGVyYXRpb24gOiAwOworICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpOworICAgICAgICBtcGRfc2V0X3FuYW4ocmVzdWx0KTsKKyAgICAgICAgX21wZF9maXhfbmFuKHJlc3VsdCwgY3R4KTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisvKgorICogQ2hlY2sgaWYgZWl0aGVyIG9wZXJhbmQgaXMgTmFOLCBjb3B5IHRvIHJlc3VsdCBhbmQgcmV0dXJuIDEgaWYgdGhpcworICogaXMgdGhlIGNhc2UuIENvcHlpbmcgY2FuIGZhaWwgc2luY2UgTmFOcyBhcmUgYWxsb3dlZCB0byBoYXZlIGEgcGF5bG9hZAorICogdGhhdCBkb2VzIG5vdCBmaXQgaW4gTVBEX01JTkFMTE9DLgorICovCitpbnQKK21wZF9xY2hlY2tfbmFucyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIGlmICgoYS0+ZmxhZ3N8Yi0+ZmxhZ3MpJihNUERfTkFOfE1QRF9TTkFOKSkgeworICAgICAgICBjb25zdCBtcGRfdCAqY2hvaWNlID0gYjsKKyAgICAgICAgaWYgKG1wZF9pc3NuYW4oYSkpIHsKKyAgICAgICAgICAgIGNob2ljZSA9IGE7CisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChtcGRfaXNzbmFuKGIpKSB7CisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChtcGRfaXNxbmFuKGEpKSB7CisgICAgICAgICAgICBjaG9pY2UgPSBhOworICAgICAgICB9CisgICAgICAgIG1wZF9xY29weShyZXN1bHQsIGNob2ljZSwgc3RhdHVzKTsKKyAgICAgICAgbXBkX3NldF9xbmFuKHJlc3VsdCk7CisgICAgICAgIF9tcGRfZml4X25hbihyZXN1bHQsIGN0eCk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIENoZWNrIGlmIG9uZSBvZiB0aGUgb3BlcmFuZHMgaXMgTmFOLCBjb3B5IHRvIHJlc3VsdCBhbmQgcmV0dXJuIDEgaWYgdGhpcworICogaXMgdGhlIGNhc2UuIENvcHlpbmcgY2FuIGZhaWwgc2luY2UgTmFOcyBhcmUgYWxsb3dlZCB0byBoYXZlIGEgcGF5bG9hZAorICogdGhhdCBkb2VzIG5vdCBmaXQgaW4gTVBEX01JTkFMTE9DLgorICovCitzdGF0aWMgaW50CittcGRfcWNoZWNrXzNuYW5zKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX3QgKmMsCisgICAgICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBpZiAoKGEtPmZsYWdzfGItPmZsYWdzfGMtPmZsYWdzKSYoTVBEX05BTnxNUERfU05BTikpIHsKKyAgICAgICAgY29uc3QgbXBkX3QgKmNob2ljZSA9IGM7CisgICAgICAgIGlmIChtcGRfaXNzbmFuKGEpKSB7CisgICAgICAgICAgICBjaG9pY2UgPSBhOworICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfSW52YWxpZF9vcGVyYXRpb247CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobXBkX2lzc25hbihiKSkgeworICAgICAgICAgICAgY2hvaWNlID0gYjsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX0ludmFsaWRfb3BlcmF0aW9uOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG1wZF9pc3NuYW4oYykpIHsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX0ludmFsaWRfb3BlcmF0aW9uOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG1wZF9pc3FuYW4oYSkpIHsKKyAgICAgICAgICAgIGNob2ljZSA9IGE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobXBkX2lzcW5hbihiKSkgeworICAgICAgICAgICAgY2hvaWNlID0gYjsKKyAgICAgICAgfQorICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBjaG9pY2UsIHN0YXR1cyk7CisgICAgICAgIG1wZF9zZXRfcW5hbihyZXN1bHQpOworICAgICAgICBfbXBkX2ZpeF9uYW4ocmVzdWx0LCBjdHgpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKy8qIENoZWNrIGlmIHJvdW5kaW5nIGRpZ2l0ICdybmQnIGxlYWRzIHRvIGFuIGluY3JlbWVudC4gKi8KK3N0YXRpYyBpbmxpbmUgaW50CitfbXBkX3JuZF9pbmNyKGNvbnN0IG1wZF90ICpkZWMsIG1wZF91aW50X3Qgcm5kLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgpCit7CisgICAgaW50IGxkOworCisgICAgc3dpdGNoIChjdHgtPnJvdW5kKSB7CisgICAgY2FzZSBNUERfUk9VTkRfRE9XTjogY2FzZSBNUERfUk9VTkRfVFJVTkM6CisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgTVBEX1JPVU5EX0hBTEZfVVA6CisgICAgICAgIHJldHVybiAocm5kID49IDUpOworICAgIGNhc2UgTVBEX1JPVU5EX0hBTEZfRVZFTjoKKyAgICAgICAgcmV0dXJuIChybmQgPiA1KSB8fCAoKHJuZCA9PSA1KSAmJiBtcGRfaXNvZGRjb2VmZihkZWMpKTsKKyAgICBjYXNlIE1QRF9ST1VORF9DRUlMSU5HOgorICAgICAgICByZXR1cm4gIShybmQgPT0gMCB8fCBtcGRfaXNuZWdhdGl2ZShkZWMpKTsKKyAgICBjYXNlIE1QRF9ST1VORF9GTE9PUjoKKyAgICAgICAgcmV0dXJuICEocm5kID09IDAgfHwgbXBkX2lzcG9zaXRpdmUoZGVjKSk7CisgICAgY2FzZSBNUERfUk9VTkRfSEFMRl9ET1dOOgorICAgICAgICByZXR1cm4gKHJuZCA+IDUpOworICAgIGNhc2UgTVBEX1JPVU5EX1VQOgorICAgICAgICByZXR1cm4gIShybmQgPT0gMCk7CisgICAgY2FzZSBNUERfUk9VTkRfMDVVUDoKKyAgICAgICAgbGQgPSAoaW50KW1wZF9sc2QoZGVjLT5kYXRhWzBdKTsKKyAgICAgICAgcmV0dXJuICghKHJuZCA9PSAwKSAmJiAobGQgPT0gMCB8fCBsZCA9PSA1KSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgLyogV2l0aG91dCBhIHZhbGlkIGNvbnRleHQsIGZ1cnRoZXIgcmVzdWx0cyB3aWxsIGJlIHVuZGVmaW5lZC4gKi8KKyAgICAgICAgcmV0dXJuIDA7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9Cit9CisKKy8qCisgKiBBcHBseSByb3VuZGluZyB0byBhIGRlY2ltYWwgdGhhdCBoYXMgYmVlbiByaWdodC1zaGlmdGVkIGludG8gYSBmdWxsCisgKiBwcmVjaXNpb24gZGVjaW1hbC4gSWYgYW4gaW5jcmVtZW50IGxlYWRzIHRvIGFuIG92ZXJmbG93IG9mIHRoZSBwcmVjaXNpb24sCisgKiBhZGp1c3QgdGhlIGNvZWZmaWNpZW50IGFuZCB0aGUgZXhwb25lbnQgYW5kIGNoZWNrIHRoZSBuZXcgZXhwb25lbnQgZm9yCisgKiBvdmVyZmxvdy4KKyAqLworc3RhdGljIGlubGluZSB2b2lkCitfbXBkX2FwcGx5X3JvdW5kKG1wZF90ICpkZWMsIG1wZF91aW50X3Qgcm5kLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKF9tcGRfcm5kX2luY3IoZGVjLCBybmQsIGN0eCkpIHsKKyAgICAgICAgLyogV2UgaGF2ZSBhIG51bWJlciB3aXRoIGV4YWN0bHkgY3R4LT5wcmVjIGRpZ2l0cy4gVGhlIGluY3JlbWVudAorICAgICAgICAgKiBjYW4gb25seSBsZWFkIHRvIGFuIG92ZXJmbG93IGlmIHRoZSBkZWNpbWFsIGlzIGFsbCBuaW5lcy4gSW4KKyAgICAgICAgICogdGhhdCBjYXNlLCB0aGUgcmVzdWx0IGlzIGEgcG93ZXIgb2YgdGVuIHdpdGggcHJlYysxIGRpZ2l0cy4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIHByZWNpc2lvbiBpcyBhIG11bHRpcGxlIG9mIE1QRF9SRElHSVRTLCB0aGlzIHNpdHVhdGlvbiBpcworICAgICAgICAgKiBkZXRlY3RlZCBieSBfbXBkX2Jhc2VpbmNyIHJldHVybmluZyBhIGNhcnJ5LgorICAgICAgICAgKiBJZiB0aGUgcHJlY2lzaW9uIGlzIG5vdCBhIG11bHRpcGxlIG9mIE1QRF9SRElHSVRTLCB3ZSBoYXZlIHRvCisgICAgICAgICAqIGNoZWNrIGlmIHRoZSByZXN1bHQgaGFzIG9uZSBkaWdpdCB0b28gbWFueS4KKyAgICAgICAgICovCisgICAgICAgIG1wZF91aW50X3QgY2FycnkgPSBfbXBkX2Jhc2VpbmNyKGRlYy0+ZGF0YSwgZGVjLT5sZW4pOworICAgICAgICBpZiAoY2FycnkpIHsKKyAgICAgICAgICAgIGRlYy0+ZGF0YVtkZWMtPmxlbi0xXSA9IG1wZF9wb3cxMFtNUERfUkRJR0lUUy0xXTsKKyAgICAgICAgICAgIGRlYy0+ZXhwICs9IDE7CisgICAgICAgICAgICBfbXBkX2NoZWNrX2V4cChkZWMsIGN0eCwgc3RhdHVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtcGRfc2V0ZGlnaXRzKGRlYyk7CisgICAgICAgIGlmIChkZWMtPmRpZ2l0cyA+IGN0eC0+cHJlYykgeworICAgICAgICAgICAgbXBkX3FzaGlmdHJfaW5wbGFjZShkZWMsIDEpOworICAgICAgICAgICAgZGVjLT5leHAgKz0gMTsKKyAgICAgICAgICAgIGRlYy0+ZGlnaXRzID0gY3R4LT5wcmVjOworICAgICAgICAgICAgX21wZF9jaGVja19leHAoZGVjLCBjdHgsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBBcHBseSByb3VuZGluZyB0byBhIGRlY2ltYWwuIEFsbG93IG92ZXJmbG93IG9mIHRoZSBwcmVjaXNpb24uCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9hcHBseV9yb3VuZF9leGNlc3MobXBkX3QgKmRlYywgbXBkX3VpbnRfdCBybmQsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKF9tcGRfcm5kX2luY3IoZGVjLCBybmQsIGN0eCkpIHsKKyAgICAgICAgbXBkX3VpbnRfdCBjYXJyeSA9IF9tcGRfYmFzZWluY3IoZGVjLT5kYXRhLCBkZWMtPmxlbik7CisgICAgICAgIGlmIChjYXJyeSkgeworICAgICAgICAgICAgaWYgKCFtcGRfcXJlc2l6ZShkZWMsIGRlYy0+bGVuKzEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBkZWMtPmRhdGFbZGVjLT5sZW5dID0gMTsKKyAgICAgICAgICAgIGRlYy0+bGVuICs9IDE7CisgICAgICAgIH0KKyAgICAgICAgbXBkX3NldGRpZ2l0cyhkZWMpOworICAgIH0KK30KKworLyoKKyAqIEFwcGx5IHJvdW5kaW5nIHRvIGEgZGVjaW1hbCB0aGF0IGhhcyBiZWVuIHJpZ2h0LXNoaWZ0ZWQgaW50byBhIGRlY2ltYWwKKyAqIHdpdGggZnVsbCBwcmVjaXNpb24gb3IgbGVzcy4gUmV0dXJuIGZhaWx1cmUgaWYgYW4gaW5jcmVtZW50IHdvdWxkCisgKiBvdmVyZmxvdyB0aGUgcHJlY2lzaW9uLgorICovCitzdGF0aWMgaW5saW5lIGludAorX21wZF9hcHBseV9yb3VuZF9maXQobXBkX3QgKmRlYywgbXBkX3VpbnRfdCBybmQsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKF9tcGRfcm5kX2luY3IoZGVjLCBybmQsIGN0eCkpIHsKKyAgICAgICAgbXBkX3VpbnRfdCBjYXJyeSA9IF9tcGRfYmFzZWluY3IoZGVjLT5kYXRhLCBkZWMtPmxlbik7CisgICAgICAgIGlmIChjYXJyeSkgeworICAgICAgICAgICAgaWYgKCFtcGRfcXJlc2l6ZShkZWMsIGRlYy0+bGVuKzEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRlYy0+ZGF0YVtkZWMtPmxlbl0gPSAxOworICAgICAgICAgICAgZGVjLT5sZW4gKz0gMTsKKyAgICAgICAgfQorICAgICAgICBtcGRfc2V0ZGlnaXRzKGRlYyk7CisgICAgICAgIGlmIChkZWMtPmRpZ2l0cyA+IGN0eC0+cHJlYykgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKGRlYywgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisKKy8qIENoZWNrIGEgbm9ybWFsIG51bWJlciBmb3Igb3ZlcmZsb3csIHVuZGVyZmxvdywgY2xhbXBpbmcuIElmIHRoZSBvcGVyYW5kCisgICBpcyBtb2RpZmllZCwgaXQgd2lsbCBiZSB6ZXJvLCBzcGVjaWFsIG9yIChzdWIpbm9ybWFsIHdpdGggYSBjb2VmZmljaWVudAorICAgdGhhdCBmaXRzIGludG8gdGhlIGN1cnJlbnQgY29udGV4dCBwcmVjaXNpb24uICovCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfY2hlY2tfZXhwKG1wZF90ICpkZWMsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfc3NpemVfdCBhZGpleHAsIGV0aW55LCBzaGlmdDsKKyAgICBpbnQgcm5kOworCisgICAgYWRqZXhwID0gbXBkX2FkamV4cChkZWMpOworICAgIGlmIChhZGpleHAgPiBjdHgtPmVtYXgpIHsKKworICAgICAgICBpZiAobXBkX2lzemVyb2NvZWZmKGRlYykpIHsKKyAgICAgICAgICAgIGRlYy0+ZXhwID0gY3R4LT5lbWF4OworICAgICAgICAgICAgaWYgKGN0eC0+Y2xhbXApIHsKKyAgICAgICAgICAgICAgICBkZWMtPmV4cCAtPSAoY3R4LT5wcmVjLTEpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbXBkX3plcm9jb2VmZihkZWMpOworICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfQ2xhbXBlZDsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAoY3R4LT5yb3VuZCkgeworICAgICAgICBjYXNlIE1QRF9ST1VORF9IQUxGX1VQOiBjYXNlIE1QRF9ST1VORF9IQUxGX0VWRU46CisgICAgICAgIGNhc2UgTVBEX1JPVU5EX0hBTEZfRE9XTjogY2FzZSBNUERfUk9VTkRfVVA6CisgICAgICAgIGNhc2UgTVBEX1JPVU5EX1RSVU5DOgorICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwoZGVjLCBtcGRfc2lnbihkZWMpLCBNUERfSU5GKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1QRF9ST1VORF9ET1dOOiBjYXNlIE1QRF9ST1VORF8wNVVQOgorICAgICAgICAgICAgbXBkX3FtYXhjb2VmZihkZWMsIGN0eCwgc3RhdHVzKTsKKyAgICAgICAgICAgIGRlYy0+ZXhwID0gY3R4LT5lbWF4IC0gY3R4LT5wcmVjICsgMTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIE1QRF9ST1VORF9DRUlMSU5HOgorICAgICAgICAgICAgaWYgKG1wZF9pc25lZ2F0aXZlKGRlYykpIHsKKyAgICAgICAgICAgICAgICBtcGRfcW1heGNvZWZmKGRlYywgY3R4LCBzdGF0dXMpOworICAgICAgICAgICAgICAgIGRlYy0+ZXhwID0gY3R4LT5lbWF4IC0gY3R4LT5wcmVjICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1wZF9zZXRzcGVjaWFsKGRlYywgTVBEX1BPUywgTVBEX0lORik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNUERfUk9VTkRfRkxPT1I6CisgICAgICAgICAgICBpZiAobXBkX2lzcG9zaXRpdmUoZGVjKSkgeworICAgICAgICAgICAgICAgIG1wZF9xbWF4Y29lZmYoZGVjLCBjdHgsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgZGVjLT5leHAgPSBjdHgtPmVtYXggLSBjdHgtPnByZWMgKyAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwoZGVjLCBNUERfTkVHLCBNUERfSU5GKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OiAvKiBkZWJ1ZyAqLworICAgICAgICAgICAgYWJvcnQoKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgICAgICB9CisKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfT3ZlcmZsb3d8TVBEX0luZXhhY3R8TVBEX1JvdW5kZWQ7CisKKyAgICB9IC8qIGZvbGQgZG93biAqLworICAgIGVsc2UgaWYgKGN0eC0+Y2xhbXAgJiYgZGVjLT5leHAgPiBtcGRfZXRvcChjdHgpKSB7CisgICAgICAgIC8qIEF0IHRoaXMgcG9pbnQgYWRqZXhwPWV4cCtkaWdpdHMtMSA8PSBlbWF4IGFuZCBleHAgPiBldG9wPWVtYXgtcHJlYysxOgorICAgICAgICAgKiAgICgxKSBzaGlmdCA9IGV4cCAtZW1heCtwcmVjLTEgPiAwCisgICAgICAgICAqICAgKDIpIGRpZ2l0cytzaGlmdCA9IGV4cCtkaWdpdHMtMSAtIGVtYXggKyBwcmVjIDw9IHByZWMgKi8KKyAgICAgICAgc2hpZnQgPSBkZWMtPmV4cCAtIG1wZF9ldG9wKGN0eCk7CisgICAgICAgIGlmICghbXBkX3FzaGlmdGwoZGVjLCBkZWMsIHNoaWZ0LCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZGVjLT5leHAgLT0gc2hpZnQ7CisgICAgICAgICpzdGF0dXMgfD0gTVBEX0NsYW1wZWQ7CisgICAgICAgIGlmICghbXBkX2lzemVyb2NvZWZmKGRlYykgJiYgYWRqZXhwIDwgY3R4LT5lbWluKSB7CisgICAgICAgICAgICAvKiBVbmRlcmZsb3cgaXMgaW1wb3NzaWJsZSwgc2luY2UgZXhwIDwgZXRpbnk9ZW1pbi1wcmVjKzEKKyAgICAgICAgICAgICAqIGFuZCBleHAgPiBldG9wPWVtYXgtcHJlYysxIHdvdWxkIGltcGx5IGVtYXggPCBlbWluLiAqLworICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfU3Vibm9ybWFsOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKGFkamV4cCA8IGN0eC0+ZW1pbikgeworCisgICAgICAgIGV0aW55ID0gbXBkX2V0aW55KGN0eCk7CisKKyAgICAgICAgaWYgKG1wZF9pc3plcm9jb2VmZihkZWMpKSB7CisgICAgICAgICAgICBpZiAoZGVjLT5leHAgPCBldGlueSkgeworICAgICAgICAgICAgICAgIGRlYy0+ZXhwID0gZXRpbnk7CisgICAgICAgICAgICAgICAgbXBkX3plcm9jb2VmZihkZWMpOworICAgICAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX0NsYW1wZWQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAqc3RhdHVzIHw9IE1QRF9TdWJub3JtYWw7CisgICAgICAgIGlmIChkZWMtPmV4cCA8IGV0aW55KSB7CisgICAgICAgICAgICAvKiBBdCB0aGlzIHBvaW50IGFkamV4cD1leHArZGlnaXRzLTEgPCBlbWluIGFuZCBleHAgPCBldGlueT1lbWluLXByZWMrMToKKyAgICAgICAgICAgICAqICAgKDEpIHNoaWZ0ID0gZW1pbi1wcmVjKzEgLSBleHAgPiAwCisgICAgICAgICAgICAgKiAgICgyKSBkaWdpdHMtc2hpZnQgPSBleHArZGlnaXRzLTEgLSBlbWluICsgcHJlYyA8IHByZWMgKi8KKyAgICAgICAgICAgIHNoaWZ0ID0gZXRpbnkgLSBkZWMtPmV4cDsKKyAgICAgICAgICAgIHJuZCA9IChpbnQpbXBkX3FzaGlmdHJfaW5wbGFjZShkZWMsIHNoaWZ0KTsKKyAgICAgICAgICAgIGRlYy0+ZXhwID0gZXRpbnk7CisgICAgICAgICAgICAvKiBXZSBhbHdheXMgaGF2ZSBhIHNwYXJlIGRpZ2l0IGluIGNhc2Ugb2YgYW4gaW5jcmVtZW50LiAqLworICAgICAgICAgICAgX21wZF9hcHBseV9yb3VuZF9leGNlc3MoZGVjLCBybmQsIGN0eCwgc3RhdHVzKTsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX1JvdW5kZWQ7CisgICAgICAgICAgICBpZiAocm5kKSB7CisgICAgICAgICAgICAgICAgKnN0YXR1cyB8PSAoTVBEX0luZXhhY3R8TVBEX1VuZGVyZmxvdyk7CisgICAgICAgICAgICAgICAgaWYgKG1wZF9pc3plcm9jb2VmZihkZWMpKSB7CisgICAgICAgICAgICAgICAgICAgIG1wZF96ZXJvY29lZmYoZGVjKTsKKyAgICAgICAgICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfQ2xhbXBlZDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgLyogQ2FzZSBleHAgPj0gZXRpbnk9ZW1pbi1wcmVjKzE6CisgICAgICAgICAqICAgKDEpIGFkamV4cD1leHArZGlnaXRzLTEgPCBlbWluCisgICAgICAgICAqICAgKDIpIGRpZ2l0cyA8IGVtaW4tZXhwKzEgPD0gcHJlYyAqLworICAgIH0KK30KKworLyogVHJhbnNjZW5kZW50YWwgZnVuY3Rpb25zIGRvIG5vdCBhbHdheXMgc2V0IFVuZGVyZmxvdyByZWxpYWJseSwKKyAqIHNpbmNlIHRoZXkgb25seSB1c2UgYXMgbXVjaCBwcmVjaXNpb24gYXMgaXMgbmVjZXNzYXJ5IGZvciBjb3JyZWN0CisgKiByb3VuZGluZy4gSWYgYSByZXN1bHQgbGlrZSAxLjAwMDAwMDAwMDBlLTEwMSBpcyBmaW5hbGl6ZWQsIHRoZXJlCisgKiBpcyBubyByb3VuZGluZyBkaWdpdCB0aGF0IHdvdWxkIHRyaWdnZXIgVW5kZXJmbG93LiBCdXQgd2UgY2FuCisgKiBhc3N1bWUgSW5leGFjdCwgc28gYSBzaG9ydCBjaGVjayBzdWZmaWNlcy4gKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorbXBkX2NoZWNrX3VuZGVyZmxvdyhtcGRfdCAqZGVjLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKG1wZF9hZGpleHAoZGVjKSA8IGN0eC0+ZW1pbiAmJiAhbXBkX2lzemVybyhkZWMpICYmCisgICAgICAgIGRlYy0+ZXhwIDwgbXBkX2V0aW55KGN0eCkpIHsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfVW5kZXJmbG93OworICAgIH0KK30KKworLyogQ2hlY2sgaWYgYSBub3JtYWwgbnVtYmVyIG11c3QgYmUgcm91bmRlZCBhZnRlciB0aGUgZXhwb25lbnQgaGFzIGJlZW4gY2hlY2tlZC4gKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9jaGVja19yb3VuZChtcGRfdCAqZGVjLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3VpbnRfdCBybmQ7CisgICAgbXBkX3NzaXplX3Qgc2hpZnQ7CisKKyAgICAvKiBtdXN0IGhhbmRsZSBzcGVjaWFsczogX21wZF9jaGVja19leHAoKSBjYW4gcHJvZHVjZSBpbmZpbml0aWVzIG9yIE5hTnMgKi8KKyAgICBpZiAobXBkX2lzc3BlY2lhbChkZWMpKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZGVjLT5kaWdpdHMgPiBjdHgtPnByZWMpIHsKKyAgICAgICAgc2hpZnQgPSBkZWMtPmRpZ2l0cyAtIGN0eC0+cHJlYzsKKyAgICAgICAgcm5kID0gbXBkX3FzaGlmdHJfaW5wbGFjZShkZWMsIHNoaWZ0KTsKKyAgICAgICAgZGVjLT5leHAgKz0gc2hpZnQ7CisgICAgICAgIF9tcGRfYXBwbHlfcm91bmQoZGVjLCBybmQsIGN0eCwgc3RhdHVzKTsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfUm91bmRlZDsKKyAgICAgICAgaWYgKHJuZCkgeworICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfSW5leGFjdDsKKyAgICAgICAgfQorICAgIH0KK30KKworLyogRmluYWxpemUgYWxsIG9wZXJhdGlvbnMuICovCit2b2lkCittcGRfcWZpbmFsaXplKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBpZiAobXBkX2lzc3BlY2lhbChyZXN1bHQpKSB7CisgICAgICAgIGlmIChtcGRfaXNuYW4ocmVzdWx0KSkgeworICAgICAgICAgICAgX21wZF9maXhfbmFuKHJlc3VsdCwgY3R4KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgX21wZF9jaGVja19leHAocmVzdWx0LCBjdHgsIHN0YXR1cyk7CisgICAgX21wZF9jaGVja19yb3VuZChyZXN1bHQsIGN0eCwgc3RhdHVzKTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3B5aW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIEludGVybmFsIGZ1bmN0aW9uOiBDb3B5IGEgZGVjaW1hbCwgc2hhcmUgZGF0YSB3aXRoIHNyYzogVVNFIFdJVEggQ0FSRSEgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9jb3B5X3NoYXJlZChtcGRfdCAqZGVzdCwgY29uc3QgbXBkX3QgKnNyYykKK3sKKyAgICBkZXN0LT5mbGFncyA9IHNyYy0+ZmxhZ3M7CisgICAgZGVzdC0+ZXhwID0gc3JjLT5leHA7CisgICAgZGVzdC0+ZGlnaXRzID0gc3JjLT5kaWdpdHM7CisgICAgZGVzdC0+bGVuID0gc3JjLT5sZW47CisgICAgZGVzdC0+YWxsb2MgPSBzcmMtPmFsbG9jOworICAgIGRlc3QtPmRhdGEgPSBzcmMtPmRhdGE7CisKKyAgICBtcGRfc2V0X3NoYXJlZF9kYXRhKGRlc3QpOworfQorCisvKgorICogQ29weSBhIGRlY2ltYWwuIEluIGNhc2Ugb2YgYW4gZXJyb3IsIHN0YXR1cyBpcyBzZXQgdG8gTVBEX01hbGxvY19lcnJvci4KKyAqLworaW50CittcGRfcWNvcHkobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKHJlc3VsdCA9PSBhKSByZXR1cm4gMTsKKworICAgIGlmICghbXBkX3FyZXNpemUocmVzdWx0LCBhLT5sZW4sIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbXBkX2NvcHlfZmxhZ3MocmVzdWx0LCBhKTsKKyAgICByZXN1bHQtPmV4cCA9IGEtPmV4cDsKKyAgICByZXN1bHQtPmRpZ2l0cyA9IGEtPmRpZ2l0czsKKyAgICByZXN1bHQtPmxlbiA9IGEtPmxlbjsKKyAgICBtZW1jcHkocmVzdWx0LT5kYXRhLCBhLT5kYXRhLCBhLT5sZW4gKiAoc2l6ZW9mICpyZXN1bHQtPmRhdGEpKTsKKworICAgIHJldHVybiAxOworfQorCisvKgorICogQ29weSB0byBhIGRlY2ltYWwgd2l0aCBhIHN0YXRpYyBidWZmZXIuIFRoZSBjYWxsZXIgaGFzIHRvIG1ha2Ugc3VyZSB0aGF0CisgKiB0aGUgYnVmZmVyIGlzIGJpZyBlbm91Z2guIENhbm5vdCBmYWlsLgorICovCitzdGF0aWMgdm9pZAorbXBkX3Fjb3B5X3N0YXRpYyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSkKK3sKKyAgICBpZiAocmVzdWx0ID09IGEpIHJldHVybjsKKworICAgIG1lbWNweShyZXN1bHQtPmRhdGEsIGEtPmRhdGEsIGEtPmxlbiAqIChzaXplb2YgKnJlc3VsdC0+ZGF0YSkpOworCisgICAgbXBkX2NvcHlfZmxhZ3MocmVzdWx0LCBhKTsKKyAgICByZXN1bHQtPmV4cCA9IGEtPmV4cDsKKyAgICByZXN1bHQtPmRpZ2l0cyA9IGEtPmRpZ2l0czsKKyAgICByZXN1bHQtPmxlbiA9IGEtPmxlbjsKK30KKworLyoKKyAqIFJldHVybiBhIG5ld2x5IGFsbG9jYXRlZCBjb3B5IG9mIHRoZSBvcGVyYW5kLiBJbiBjYXNlIG9mIGFuIGVycm9yLAorICogc3RhdHVzIGlzIHNldCB0byBNUERfTWFsbG9jX2Vycm9yIGFuZCB0aGUgcmV0dXJuIHZhbHVlIGlzIE5VTEwuCisgKi8KK21wZF90ICoKK21wZF9xbmNvcHkoY29uc3QgbXBkX3QgKmEpCit7CisgICAgbXBkX3QgKnJlc3VsdDsKKworICAgIGlmICgocmVzdWx0ID0gbXBkX3FuZXdfc2l6ZShhLT5sZW4pKSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBtZW1jcHkocmVzdWx0LT5kYXRhLCBhLT5kYXRhLCBhLT5sZW4gKiAoc2l6ZW9mICpyZXN1bHQtPmRhdGEpKTsKKyAgICBtcGRfY29weV9mbGFncyhyZXN1bHQsIGEpOworICAgIHJlc3VsdC0+ZXhwID0gYS0+ZXhwOworICAgIHJlc3VsdC0+ZGlnaXRzID0gYS0+ZGlnaXRzOworICAgIHJlc3VsdC0+bGVuID0gYS0+bGVuOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIENvcHkgYSBkZWNpbWFsIGFuZCBzZXQgdGhlIHNpZ24gdG8gcG9zaXRpdmUuIEluIGNhc2Ugb2YgYW4gZXJyb3IsIHRoZQorICogc3RhdHVzIGlzIHNldCB0byBNUERfTWFsbG9jX2Vycm9yLgorICovCitpbnQKK21wZF9xY29weV9hYnMobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKCFtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBtcGRfc2V0X3Bvc2l0aXZlKHJlc3VsdCk7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qCisgKiBDb3B5IGEgZGVjaW1hbCBhbmQgbmVnYXRlIHRoZSBzaWduLiBJbiBjYXNlIG9mIGFuIGVycm9yLCB0aGUKKyAqIHN0YXR1cyBpcyBzZXQgdG8gTVBEX01hbGxvY19lcnJvci4KKyAqLworaW50CittcGRfcWNvcHlfbmVnYXRlKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIGlmICghbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgX21wZF9uZWdhdGUocmVzdWx0KTsKKyAgICByZXR1cm4gMTsKK30KKworLyoKKyAqIENvcHkgYSBkZWNpbWFsLCBzZXR0aW5nIHRoZSBzaWduIG9mIHRoZSBmaXJzdCBvcGVyYW5kIHRvIHRoZSBzaWduIG9mIHRoZQorICogc2Vjb25kIG9wZXJhbmQuIEluIGNhc2Ugb2YgYW4gZXJyb3IsIHRoZSBzdGF0dXMgaXMgc2V0IHRvIE1QRF9NYWxsb2NfZXJyb3IuCisgKi8KK2ludAorbXBkX3Fjb3B5X3NpZ24obXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIHVpbnQ4X3Qgc2lnbl9iID0gbXBkX3NpZ24oYik7IC8qIHJlc3VsdCBtYXkgZXF1YWwgYiEgKi8KKworICAgIGlmICghbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgbXBkX3NldF9zaWduKHJlc3VsdCwgc2lnbl9iKTsKKyAgICByZXR1cm4gMTsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbXBhcmlzb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiBGb3IgYWxsIGZ1bmN0aW9ucyB0aGF0IGNvbXBhcmUgdHdvIG9wZXJhbmRzIGFuZCByZXR1cm4gYW4gaW50IHRoZSB1c3VhbAorICogY29udmVudGlvbiBhcHBsaWVzIHRvIHRoZSByZXR1cm4gdmFsdWU6CisgKgorICogLTEgaWYgb3AxIDwgb3AyCisgKiAgMCBpZiBvcDEgPT0gb3AyCisgKiAgMSBpZiBvcDEgPiBvcDIKKyAqCisgKiAgSU5UX01BWCBmb3IgZXJyb3IKKyAqLworCisKKy8qIENvbnZlbmllbmNlIG1hY3JvLiBJZiBhIGFuZCBiIGFyZSBub3QgZXF1YWwsIHJldHVybiBmcm9tIHRoZSBjYWxsaW5nCisgKiBmdW5jdGlvbiB3aXRoIHRoZSBjb3JyZWN0IGNvbXBhcmlzb24gdmFsdWUuICovCisjZGVmaW5lIENNUF9FUVVBTF9PUl9SRVRVUk4oYSwgYikgIFwKKyAgICAgICAgaWYgKGEgIT0gYikgeyAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGlmIChhIDwgYikgeyAgICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7IFwKKyAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHJldHVybiAxOyAgICAgICAgICBcCisgICAgICAgIH0KKworLyoKKyAqIENvbXBhcmUgdGhlIGRhdGEgb2YgYmlnIGFuZCBzbWFsbC4gVGhpcyBmdW5jdGlvbiBkb2VzIHRoZSBlcXVpdmFsZW50CisgKiBvZiBmaXJzdCBzaGlmdGluZyBzbWFsbCB0byB0aGUgbGVmdCBhbmQgdGhlbiBjb21wYXJpbmcgdGhlIGRhdGEgb2YKKyAqIGJpZyBhbmQgc21hbGwsIGV4Y2VwdCB0aGF0IG5vIGFsbG9jYXRpb24gZm9yIHRoZSBsZWZ0IHNoaWZ0IGlzIG5lZWRlZC4KKyAqLworc3RhdGljIGludAorX21wZF9iYXNlY21wKG1wZF91aW50X3QgKmJpZywgbXBkX3VpbnRfdCAqc21hbGwsIG1wZF9zaXplX3QgbiwgbXBkX3NpemVfdCBtLAorICAgICAgICAgICAgIG1wZF9zaXplX3Qgc2hpZnQpCit7CisjaWYgZGVmaW5lZChfX0dOVUNfXykgJiYgIWRlZmluZWQoX19JTlRFTF9DT01QSUxFUikgJiYgIWRlZmluZWQoX19jbGFuZ19fKQorICAgIC8qIHNwdXJpb3VzIHVuaW5pdGlhbGl6ZWQgd2FybmluZ3MgKi8KKyAgICBtcGRfdWludF90IGw9bCwgbHByZXY9bHByZXYsIGg9aDsKKyNlbHNlCisgICAgbXBkX3VpbnRfdCBsLCBscHJldiwgaDsKKyNlbmRpZgorICAgIG1wZF91aW50X3QgcSwgcjsKKyAgICBtcGRfdWludF90IHBoLCB4OworCisgICAgYXNzZXJ0KG0gPiAwICYmIG4gPj0gbSAmJiBzaGlmdCA+IDApOworCisgICAgX21wZF9kaXZfd29yZCgmcSwgJnIsIChtcGRfdWludF90KXNoaWZ0LCBNUERfUkRJR0lUUyk7CisKKyAgICBpZiAociAhPSAwKSB7CisKKyAgICAgICAgcGggPSBtcGRfcG93MTBbcl07CisKKyAgICAgICAgLS1tOyAtLW47CisgICAgICAgIF9tcGRfZGl2bW9kX3BvdzEwKCZoLCAmbHByZXYsIHNtYWxsW20tLV0sIE1QRF9SRElHSVRTLXIpOworICAgICAgICBpZiAoaCAhPSAwKSB7CisgICAgICAgICAgICBDTVBfRVFVQUxfT1JfUkVUVVJOKGJpZ1tuXSwgaCkKKyAgICAgICAgICAgIC0tbjsKKyAgICAgICAgfQorICAgICAgICBmb3IgKDsgbSAhPSBNUERfU0laRV9NQVg7IG0tLSxuLS0pIHsKKyAgICAgICAgICAgIF9tcGRfZGl2bW9kX3BvdzEwKCZoLCAmbCwgc21hbGxbbV0sIE1QRF9SRElHSVRTLXIpOworICAgICAgICAgICAgeCA9IHBoICogbHByZXYgKyBoOworICAgICAgICAgICAgQ01QX0VRVUFMX09SX1JFVFVSTihiaWdbbl0sIHgpCisgICAgICAgICAgICBscHJldiA9IGw7CisgICAgICAgIH0KKyAgICAgICAgeCA9IHBoICogbHByZXY7CisgICAgICAgIENNUF9FUVVBTF9PUl9SRVRVUk4oYmlnW3FdLCB4KQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgd2hpbGUgKC0tbSAhPSBNUERfU0laRV9NQVgpIHsKKyAgICAgICAgICAgIENNUF9FUVVBTF9PUl9SRVRVUk4oYmlnW20rcV0sIHNtYWxsW21dKQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuICFfbXBkX2lzYWxsemVybyhiaWcsIHEpOworfQorCisvKiBDb21wYXJlIHR3byBkZWNpbWFscyB3aXRoIHRoZSBzYW1lIGFkanVzdGVkIGV4cG9uZW50LiAqLworc3RhdGljIGludAorX21wZF9jbXBfc2FtZV9hZGpleHAoY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiKQoreworICAgIG1wZF9zc2l6ZV90IHNoaWZ0LCBpOworCisgICAgaWYgKGEtPmV4cCAhPSBiLT5leHApIHsKKyAgICAgICAgLyogQ2Fubm90IHdyYXA6IGEtPmV4cCArIGEtPmRpZ2l0cyA9IGItPmV4cCArIGItPmRpZ2l0cywgc28KKyAgICAgICAgICogYS0+ZXhwIC0gYi0+ZXhwID0gYi0+ZGlnaXRzIC0gYS0+ZGlnaXRzLiAqLworICAgICAgICBzaGlmdCA9IGEtPmV4cCAtIGItPmV4cDsKKyAgICAgICAgaWYgKHNoaWZ0ID4gMCkgeworICAgICAgICAgICAgcmV0dXJuIC0xICogX21wZF9iYXNlY21wKGItPmRhdGEsIGEtPmRhdGEsIGItPmxlbiwgYS0+bGVuLCBzaGlmdCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gX21wZF9iYXNlY21wKGEtPmRhdGEsIGItPmRhdGEsIGEtPmxlbiwgYi0+bGVuLCAtc2hpZnQpOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBBdCB0aGlzIHBvaW50IGFkamV4cChhKSA9PSBhZGpleHAoYikgYW5kIGEtPmV4cCA9PSBiLT5leHAsCisgICAgICogc28gYS0+ZGlnaXRzID09IGItPmRpZ2l0cywgdGhlcmVmb3JlIGEtPmxlbiA9PSBiLT5sZW4uCisgICAgICovCisgICAgZm9yIChpID0gYS0+bGVuLTE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgIENNUF9FUVVBTF9PUl9SRVRVUk4oYS0+ZGF0YVtpXSwgYi0+ZGF0YVtpXSkKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyogQ29tcGFyZSB0d28gbnVtZXJpY2FsIHZhbHVlcy4gKi8KK3N0YXRpYyBpbnQKK19tcGRfY21wKGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYikKK3sKKyAgICBtcGRfc3NpemVfdCBhZGpleHBfYSwgYWRqZXhwX2I7CisKKyAgICAvKiBlcXVhbCBwb2ludGVycyAqLworICAgIGlmIChhID09IGIpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyogaW5maW5pdGllcyAqLworICAgIGlmIChtcGRfaXNpbmZpbml0ZShhKSkgeworICAgICAgICBpZiAobXBkX2lzaW5maW5pdGUoYikpIHsKKyAgICAgICAgICAgIHJldHVybiBtcGRfaXNuZWdhdGl2ZShiKSAtIG1wZF9pc25lZ2F0aXZlKGEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtcGRfYXJpdGhfc2lnbihhKTsKKyAgICB9CisgICAgaWYgKG1wZF9pc2luZmluaXRlKGIpKSB7CisgICAgICAgIHJldHVybiAtbXBkX2FyaXRoX3NpZ24oYik7CisgICAgfQorCisgICAgLyogemVyb3MgKi8KKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGEpKSB7CisgICAgICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYikpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtbXBkX2FyaXRoX3NpZ24oYik7CisgICAgfQorICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYikpIHsKKyAgICAgICAgcmV0dXJuIG1wZF9hcml0aF9zaWduKGEpOworICAgIH0KKworICAgIC8qIGRpZmZlcmVudCBzaWducyAqLworICAgIGlmIChtcGRfc2lnbihhKSAhPSBtcGRfc2lnbihiKSkgeworICAgICAgICByZXR1cm4gbXBkX3NpZ24oYikgLSBtcGRfc2lnbihhKTsKKyAgICB9CisKKyAgICAvKiBkaWZmZXJlbnQgYWRqdXN0ZWQgZXhwb25lbnRzICovCisgICAgYWRqZXhwX2EgPSBtcGRfYWRqZXhwKGEpOworICAgIGFkamV4cF9iID0gbXBkX2FkamV4cChiKTsKKyAgICBpZiAoYWRqZXhwX2EgIT0gYWRqZXhwX2IpIHsKKyAgICAgICAgaWYgKGFkamV4cF9hIDwgYWRqZXhwX2IpIHsKKyAgICAgICAgICAgIHJldHVybiAtMSAqIG1wZF9hcml0aF9zaWduKGEpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBtcGRfYXJpdGhfc2lnbihhKTsKKyAgICB9CisKKyAgICAvKiBzYW1lIGFkanVzdGVkIGV4cG9uZW50cyAqLworICAgIHJldHVybiBfbXBkX2NtcF9zYW1lX2FkamV4cChhLCBiKSAqIG1wZF9hcml0aF9zaWduKGEpOworfQorCisvKiBDb21wYXJlIHRoZSBhYnNvbHV0ZXMgb2YgdHdvIG51bWVyaWNhbCB2YWx1ZXMuICovCitzdGF0aWMgaW50CitfbXBkX2NtcF9hYnMoY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiKQoreworICAgIG1wZF9zc2l6ZV90IGFkamV4cF9hLCBhZGpleHBfYjsKKworICAgIC8qIGVxdWFsIHBvaW50ZXJzICovCisgICAgaWYgKGEgPT0gYikgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKiBpbmZpbml0aWVzICovCisgICAgaWYgKG1wZF9pc2luZmluaXRlKGEpKSB7CisgICAgICAgIGlmIChtcGRfaXNpbmZpbml0ZShiKSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIGlmIChtcGRfaXNpbmZpbml0ZShiKSkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyogemVyb3MgKi8KKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGEpKSB7CisgICAgICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYikpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKG1wZF9pc3plcm9jb2VmZihiKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAvKiBkaWZmZXJlbnQgYWRqdXN0ZWQgZXhwb25lbnRzICovCisgICAgYWRqZXhwX2EgPSBtcGRfYWRqZXhwKGEpOworICAgIGFkamV4cF9iID0gbXBkX2FkamV4cChiKTsKKyAgICBpZiAoYWRqZXhwX2EgIT0gYWRqZXhwX2IpIHsKKyAgICAgICAgaWYgKGFkamV4cF9hIDwgYWRqZXhwX2IpIHsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICAvKiBzYW1lIGFkanVzdGVkIGV4cG9uZW50cyAqLworICAgIHJldHVybiBfbXBkX2NtcF9zYW1lX2FkamV4cChhLCBiKTsKK30KKworLyogQ29tcGFyZSB0d28gdmFsdWVzIGFuZCByZXR1cm4gYW4gaW50ZWdlciByZXN1bHQuICovCitpbnQKK21wZF9xY21wKGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSB8fCBtcGRfaXNzcGVjaWFsKGIpKSB7CisgICAgICAgIGlmIChtcGRfaXNuYW4oYSkgfHwgbXBkX2lzbmFuKGIpKSB7CisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgICAgIHJldHVybiBJTlRfTUFYOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIF9tcGRfY21wKGEsIGIpOworfQorCisvKgorICogQ29tcGFyZSBhIGFuZCBiLCBjb252ZXJ0IHRoZSB0aGUgdXN1YWwgaW50ZWdlciByZXN1bHQgdG8gYSBkZWNpbWFsIGFuZAorICogc3RvcmUgaXQgaW4gJ3Jlc3VsdCcuIEZvciBjb252ZW5pZW5jZSwgdGhlIGludGVnZXIgcmVzdWx0IG9mIHRoZSBjb21wYXJpc29uCisgKiBpcyByZXR1cm5lZC4gQ29tcGFyaXNvbnMgaW52b2x2aW5nIE5hTnMgcmV0dXJuIE5hTi9JTlRfTUFYLgorICovCitpbnQKK21wZF9xY29tcGFyZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIGludCBjOworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkgfHwgbXBkX2lzc3BlY2lhbChiKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW5zKHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm4gSU5UX01BWDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGMgPSBfbXBkX2NtcChhLCBiKTsKKyAgICBfc2V0dHJpcGxlKHJlc3VsdCwgKGMgPCAwKSwgKGMgIT0gMCksIDApOworICAgIHJldHVybiBjOworfQorCisvKiBTYW1lIGFzIG1wZF9jb21wYXJlKCksIGJ1dCBzaWduYWwgZm9yIGFsbCBOYU5zLCBpLmUuIGFsc28gZm9yIHF1aWV0IE5hTnMuICovCitpbnQKK21wZF9xY29tcGFyZV9zaWduYWwobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaW50IGM7CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSB8fCBtcGRfaXNzcGVjaWFsKGIpKSB7CisgICAgICAgIGlmIChtcGRfcWNoZWNrX25hbnMocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX0ludmFsaWRfb3BlcmF0aW9uOworICAgICAgICAgICAgcmV0dXJuIElOVF9NQVg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBjID0gX21wZF9jbXAoYSwgYik7CisgICAgX3NldHRyaXBsZShyZXN1bHQsIChjIDwgMCksIChjICE9IDApLCAwKTsKKyAgICByZXR1cm4gYzsKK30KKworLyogQ29tcGFyZSB0aGUgb3BlcmFuZHMgdXNpbmcgYSB0b3RhbCBvcmRlci4gKi8KK2ludAorbXBkX2NtcF90b3RhbChjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIpCit7CisgICAgbXBkX3QgYWEsIGJiOworICAgIGludCBuYW5fYSwgbmFuX2I7CisgICAgaW50IGM7CisKKyAgICBpZiAobXBkX3NpZ24oYSkgIT0gbXBkX3NpZ24oYikpIHsKKyAgICAgICAgcmV0dXJuIG1wZF9zaWduKGIpIC0gbXBkX3NpZ24oYSk7CisgICAgfQorCisKKyAgICBpZiAobXBkX2lzbmFuKGEpKSB7CisgICAgICAgIGMgPSAxOworICAgICAgICBpZiAobXBkX2lzbmFuKGIpKSB7CisgICAgICAgICAgICBuYW5fYSA9IChtcGRfaXNxbmFuKGEpKSA/IDEgOiAwOworICAgICAgICAgICAgbmFuX2IgPSAobXBkX2lzcW5hbihiKSkgPyAxIDogMDsKKyAgICAgICAgICAgIGlmIChuYW5fYiA9PSBuYW5fYSkgeworICAgICAgICAgICAgICAgIGlmIChhLT5sZW4gPiAwICYmIGItPmxlbiA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgX21wZF9jb3B5X3NoYXJlZCgmYWEsIGEpOworICAgICAgICAgICAgICAgICAgICBfbXBkX2NvcHlfc2hhcmVkKCZiYiwgYik7CisgICAgICAgICAgICAgICAgICAgIGFhLmV4cCA9IGJiLmV4cCA9IDA7CisgICAgICAgICAgICAgICAgICAgIC8qIGNvbXBhcmUgcGF5bG9hZCAqLworICAgICAgICAgICAgICAgICAgICBjID0gX21wZF9jbXBfYWJzKCZhYSwgJmJiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGMgPSAoYS0+bGVuID4gMCkgLSAoYi0+bGVuID4gMCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYyA9IG5hbl9hIC0gbmFuX2I7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAobXBkX2lzbmFuKGIpKSB7CisgICAgICAgIGMgPSAtMTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGMgPSBfbXBkX2NtcF9hYnMoYSwgYik7CisgICAgICAgIGlmIChjID09IDAgJiYgYS0+ZXhwICE9IGItPmV4cCkgeworICAgICAgICAgICAgYyA9IChhLT5leHAgPCBiLT5leHApID8gLTEgOiAxOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGMgKiBtcGRfYXJpdGhfc2lnbihhKTsKK30KKworLyoKKyAqIENvbXBhcmUgYSBhbmQgYiBhY2NvcmRpbmcgdG8gYSB0b3RhbCBvcmRlciwgY29udmVydCB0aGUgdXN1YWwgaW50ZWdlciByZXN1bHQKKyAqIHRvIGEgZGVjaW1hbCBhbmQgc3RvcmUgaXQgaW4gJ3Jlc3VsdCcuIEZvciBjb252ZW5pZW5jZSwgdGhlIGludGVnZXIgcmVzdWx0CisgKiBvZiB0aGUgY29tcGFyaXNvbiBpcyByZXR1cm5lZC4KKyAqLworaW50CittcGRfY29tcGFyZV90b3RhbChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIpCit7CisgICAgaW50IGM7CisKKyAgICBjID0gbXBkX2NtcF90b3RhbChhLCBiKTsKKyAgICBfc2V0dHJpcGxlKHJlc3VsdCwgKGMgPCAwKSwgKGMgIT0gMCksIDApOworICAgIHJldHVybiBjOworfQorCisvKiBDb21wYXJlIHRoZSBtYWduaXR1ZGUgb2YgdGhlIG9wZXJhbmRzIHVzaW5nIGEgdG90YWwgb3JkZXIuICovCitpbnQKK21wZF9jbXBfdG90YWxfbWFnKGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYikKK3sKKyAgICBtcGRfdCBhYSwgYmI7CisKKyAgICBfbXBkX2NvcHlfc2hhcmVkKCZhYSwgYSk7CisgICAgX21wZF9jb3B5X3NoYXJlZCgmYmIsIGIpOworCisgICAgbXBkX3NldF9wb3NpdGl2ZSgmYWEpOworICAgIG1wZF9zZXRfcG9zaXRpdmUoJmJiKTsKKworICAgIHJldHVybiBtcGRfY21wX3RvdGFsKCZhYSwgJmJiKTsKK30KKworLyoKKyAqIENvbXBhcmUgdGhlIG1hZ25pdHVkZSBvZiBhIGFuZCBiIGFjY29yZGluZyB0byBhIHRvdGFsIG9yZGVyLCBjb252ZXJ0IHRoZQorICogdGhlIHVzdWFsIGludGVnZXIgcmVzdWx0IHRvIGEgZGVjaW1hbCBhbmQgc3RvcmUgaXQgaW4gJ3Jlc3VsdCcuCisgKiBGb3IgY29udmVuaWVuY2UsIHRoZSBpbnRlZ2VyIHJlc3VsdCBvZiB0aGUgY29tcGFyaXNvbiBpcyByZXR1cm5lZC4KKyAqLworaW50CittcGRfY29tcGFyZV90b3RhbF9tYWcobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiKQoreworICAgIGludCBjOworCisgICAgYyA9IG1wZF9jbXBfdG90YWxfbWFnKGEsIGIpOworICAgIF9zZXR0cmlwbGUocmVzdWx0LCAoYyA8IDApLCAoYyAhPSAwKSwgMCk7CisgICAgcmV0dXJuIGM7Cit9CisKKy8qIERldGVybWluZSBhbiBvcmRlcmluZyBmb3Igb3BlcmFuZHMgdGhhdCBhcmUgbnVtZXJpY2FsbHkgZXF1YWwuICovCitzdGF0aWMgaW5saW5lIGludAorX21wZF9jbXBfbnVtZXF1YWwoY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiKQoreworICAgIGludCBzaWduX2EsIHNpZ25fYjsKKyAgICBpbnQgYzsKKworICAgIHNpZ25fYSA9IG1wZF9zaWduKGEpOworICAgIHNpZ25fYiA9IG1wZF9zaWduKGIpOworICAgIGlmIChzaWduX2EgIT0gc2lnbl9iKSB7CisgICAgICAgIGMgPSBzaWduX2IgLSBzaWduX2E7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBjID0gKGEtPmV4cCA8IGItPmV4cCkgPyAtMSA6IDE7CisgICAgICAgIGMgKj0gbXBkX2FyaXRoX3NpZ24oYSk7CisgICAgfQorCisgICAgcmV0dXJuIGM7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgIFNoaWZ0aW5nIHRoZSBjb2VmZmljaWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogU2hpZnQgdGhlIGNvZWZmaWNpZW50IG9mIHRoZSBvcGVyYW5kIHRvIHRoZSBsZWZ0LCBubyBjaGVjayBmb3Igc3BlY2lhbHMuCisgKiBCb3RoIG9wZXJhbmRzIG1heSBiZSB0aGUgc2FtZSBwb2ludGVyLiBJZiB0aGUgcmVzdWx0IGxlbmd0aCBoYXMgdG8gYmUKKyAqIGluY3JlYXNlZCwgbXBkX3FyZXNpemUoKSBtaWdodCBmYWlsIHdpdGggTVBEX01hbGxvY19lcnJvci4KKyAqLworaW50CittcGRfcXNoaWZ0bChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgbiwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfc3NpemVfdCBzaXplOworCisgICAgYXNzZXJ0KCFtcGRfaXNzcGVjaWFsKGEpKTsKKyAgICBhc3NlcnQobiA+PSAwKTsKKworICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYSkgfHwgbiA9PSAwKSB7CisgICAgICAgIHJldHVybiBtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpOworICAgIH0KKworICAgIHNpemUgPSBtcGRfZGlnaXRzX3RvX3NpemUoYS0+ZGlnaXRzK24pOworICAgIGlmICghbXBkX3FyZXNpemUocmVzdWx0LCBzaXplLCBzdGF0dXMpKSB7CisgICAgICAgIHJldHVybiAwOyAvKiByZXN1bHQgaXMgTmFOICovCisgICAgfQorCisgICAgX21wZF9iYXNlc2hpZnRsKHJlc3VsdC0+ZGF0YSwgYS0+ZGF0YSwgc2l6ZSwgYS0+bGVuLCBuKTsKKworICAgIG1wZF9jb3B5X2ZsYWdzKHJlc3VsdCwgYSk7CisgICAgcmVzdWx0LT5leHAgPSBhLT5leHA7CisgICAgcmVzdWx0LT5kaWdpdHMgPSBhLT5kaWdpdHMrbjsKKyAgICByZXN1bHQtPmxlbiA9IHNpemU7CisKKyAgICByZXR1cm4gMTsKK30KKworLyogRGV0ZXJtaW5lIHRoZSByb3VuZGluZyBpbmRpY2F0b3IgaWYgYWxsIGRpZ2l0cyBvZiB0aGUgY29lZmZpY2llbnQgYXJlIHNoaWZ0ZWQKKyAqIG91dCBvZiB0aGUgcGljdHVyZS4gKi8KK3N0YXRpYyBtcGRfdWludF90CitfbXBkX2dldF9ybmQoY29uc3QgbXBkX3VpbnRfdCAqZGF0YSwgbXBkX3NzaXplX3QgbGVuLCBpbnQgdXNlX21zZCkKK3sKKyAgICBtcGRfdWludF90IHJuZCA9IDAsIHJlc3QgPSAwLCB3b3JkOworCisgICAgd29yZCA9IGRhdGFbbGVuLTFdOworICAgIC8qIHNwZWNpYWwgdHJlYXRtZW50IGZvciB0aGUgbW9zdCBzaWduaWZpY2FudCBkaWdpdCBpZiBzaGlmdCA9PSBkaWdpdHMgKi8KKyAgICBpZiAodXNlX21zZCkgeworICAgICAgICBfbXBkX2Rpdm1vZF9wb3cxMCgmcm5kLCAmcmVzdCwgd29yZCwgbXBkX3dvcmRfZGlnaXRzKHdvcmQpLTEpOworICAgICAgICBpZiAobGVuID4gMSAmJiByZXN0ID09IDApIHsKKyAgICAgICAgICAgICByZXN0ID0gIV9tcGRfaXNhbGx6ZXJvKGRhdGEsIGxlbi0xKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmVzdCA9ICFfbXBkX2lzYWxsemVybyhkYXRhLCBsZW4pOworICAgIH0KKworICAgIHJldHVybiAocm5kID09IDAgfHwgcm5kID09IDUpID8gcm5kICsgISFyZXN0IDogcm5kOworfQorCisvKgorICogU2FtZSBhcyBtcGRfcXNoaWZ0cigpLCBidXQgJ3Jlc3VsdCcgaXMgYW4gbXBkX3Qgd2l0aCBhIHN0YXRpYyBjb2VmZmljaWVudC4KKyAqIEl0IGlzIHRoZSBjYWxsZXIncyByZXNwb25zaWJpbGl0eSB0byBlbnN1cmUgdGhhdCB0aGUgY29lZmZpY2llbnQgaXMgYmlnCisgKiBlbm91Z2guIFRoZSBmdW5jdGlvbiBjYW5ub3QgZmFpbC4KKyAqLworbXBkX3VpbnRfdAorbXBkX3Fzc2hpZnRyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfc3NpemVfdCBuKQoreworICAgIG1wZF91aW50X3Qgcm5kOworICAgIG1wZF9zc2l6ZV90IHNpemU7CisKKyAgICBhc3NlcnQoIW1wZF9pc3NwZWNpYWwoYSkpOworICAgIGFzc2VydChuID49IDApOworCisgICAgaWYgKG1wZF9pc3plcm9jb2VmZihhKSB8fCBuID09IDApIHsKKyAgICAgICAgbXBkX3Fjb3B5X3N0YXRpYyhyZXN1bHQsIGEpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAobiA+PSBhLT5kaWdpdHMpIHsKKyAgICAgICAgcm5kID0gX21wZF9nZXRfcm5kKGEtPmRhdGEsIGEtPmxlbiwgKG49PWEtPmRpZ2l0cykpOworICAgICAgICBtcGRfemVyb2NvZWZmKHJlc3VsdCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXN1bHQtPmRpZ2l0cyA9IGEtPmRpZ2l0cy1uOworICAgICAgICBzaXplID0gbXBkX2RpZ2l0c190b19zaXplKHJlc3VsdC0+ZGlnaXRzKTsKKyAgICAgICAgcm5kID0gX21wZF9iYXNlc2hpZnRyKHJlc3VsdC0+ZGF0YSwgYS0+ZGF0YSwgYS0+bGVuLCBuKTsKKyAgICAgICAgcmVzdWx0LT5sZW4gPSBzaXplOworICAgIH0KKworICAgIG1wZF9jb3B5X2ZsYWdzKHJlc3VsdCwgYSk7CisgICAgcmVzdWx0LT5leHAgPSBhLT5leHA7CisKKyAgICByZXR1cm4gcm5kOworfQorCisvKgorICogSW5wbGFjZSBzaGlmdCBvZiB0aGUgY29lZmZpY2llbnQgdG8gdGhlIHJpZ2h0LCBubyBjaGVjayBmb3Igc3BlY2lhbHMuCisgKiBSZXR1cm5zIHRoZSByb3VuZGluZyBpbmRpY2F0b3IgZm9yIG1wZF9ybmRfaW5jcigpLgorICogVGhlIGZ1bmN0aW9uIGNhbm5vdCBmYWlsLgorICovCittcGRfdWludF90CittcGRfcXNoaWZ0cl9pbnBsYWNlKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IG4pCit7CisgICAgdWludDMyX3QgZHVtbXk7CisgICAgbXBkX3VpbnRfdCBybmQ7CisgICAgbXBkX3NzaXplX3Qgc2l6ZTsKKworICAgIGFzc2VydCghbXBkX2lzc3BlY2lhbChyZXN1bHQpKTsKKyAgICBhc3NlcnQobiA+PSAwKTsKKworICAgIGlmIChtcGRfaXN6ZXJvY29lZmYocmVzdWx0KSB8fCBuID09IDApIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKG4gPj0gcmVzdWx0LT5kaWdpdHMpIHsKKyAgICAgICAgcm5kID0gX21wZF9nZXRfcm5kKHJlc3VsdC0+ZGF0YSwgcmVzdWx0LT5sZW4sIChuPT1yZXN1bHQtPmRpZ2l0cykpOworICAgICAgICBtcGRfemVyb2NvZWZmKHJlc3VsdCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBybmQgPSBfbXBkX2Jhc2VzaGlmdHIocmVzdWx0LT5kYXRhLCByZXN1bHQtPmRhdGEsIHJlc3VsdC0+bGVuLCBuKTsKKyAgICAgICAgcmVzdWx0LT5kaWdpdHMgLT0gbjsKKyAgICAgICAgc2l6ZSA9IG1wZF9kaWdpdHNfdG9fc2l6ZShyZXN1bHQtPmRpZ2l0cyk7CisgICAgICAgIC8qIHJlZHVjaW5nIHRoZSBzaXplIGNhbm5vdCBmYWlsICovCisgICAgICAgIG1wZF9xcmVzaXplKHJlc3VsdCwgc2l6ZSwgJmR1bW15KTsKKyAgICAgICAgcmVzdWx0LT5sZW4gPSBzaXplOworICAgIH0KKworICAgIHJldHVybiBybmQ7Cit9CisKKy8qCisgKiBTaGlmdCB0aGUgY29lZmZpY2llbnQgb2YgdGhlIG9wZXJhbmQgdG8gdGhlIHJpZ2h0LCBubyBjaGVjayBmb3Igc3BlY2lhbHMuCisgKiBCb3RoIG9wZXJhbmRzIG1heSBiZSB0aGUgc2FtZSBwb2ludGVyLiBSZXR1cm5zIHRoZSByb3VuZGluZyBpbmRpY2F0b3IgdG8KKyAqIGJlIHVzZWQgYnkgbXBkX3JuZF9pbmNyKCkuIElmIHRoZSByZXN1bHQgbGVuZ3RoIGhhcyB0byBiZSBpbmNyZWFzZWQsCisgKiBtcGRfcWNvcHkoKSBvciBtcGRfcXJlc2l6ZSgpIG1pZ2h0IGZhaWwgd2l0aCBNUERfTWFsbG9jX2Vycm9yLiBJbiB0aG9zZQorICogY2FzZXMsIE1QRF9VSU5UX01BWCBpcyByZXR1cm5lZC4KKyAqLworbXBkX3VpbnRfdAorbXBkX3FzaGlmdHIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9zc2l6ZV90IG4sIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3VpbnRfdCBybmQ7CisgICAgbXBkX3NzaXplX3Qgc2l6ZTsKKworICAgIGFzc2VydCghbXBkX2lzc3BlY2lhbChhKSk7CisgICAgYXNzZXJ0KG4gPj0gMCk7CisKKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGEpIHx8IG4gPT0gMCkgeworICAgICAgICBpZiAoIW1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybiBNUERfVUlOVF9NQVg7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKG4gPj0gYS0+ZGlnaXRzKSB7CisgICAgICAgIHJuZCA9IF9tcGRfZ2V0X3JuZChhLT5kYXRhLCBhLT5sZW4sIChuPT1hLT5kaWdpdHMpKTsKKyAgICAgICAgbXBkX3plcm9jb2VmZihyZXN1bHQpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmVzdWx0LT5kaWdpdHMgPSBhLT5kaWdpdHMtbjsKKyAgICAgICAgc2l6ZSA9IG1wZF9kaWdpdHNfdG9fc2l6ZShyZXN1bHQtPmRpZ2l0cyk7CisgICAgICAgIGlmIChyZXN1bHQgPT0gYSkgeworICAgICAgICAgICAgcm5kID0gX21wZF9iYXNlc2hpZnRyKHJlc3VsdC0+ZGF0YSwgYS0+ZGF0YSwgYS0+bGVuLCBuKTsKKyAgICAgICAgICAgIC8qIHJlZHVjaW5nIHRoZSBzaXplIGNhbm5vdCBmYWlsICovCisgICAgICAgICAgICBtcGRfcXJlc2l6ZShyZXN1bHQsIHNpemUsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoIW1wZF9xcmVzaXplKHJlc3VsdCwgc2l6ZSwgc3RhdHVzKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBNUERfVUlOVF9NQVg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBybmQgPSBfbXBkX2Jhc2VzaGlmdHIocmVzdWx0LT5kYXRhLCBhLT5kYXRhLCBhLT5sZW4sIG4pOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+bGVuID0gc2l6ZTsKKyAgICB9CisKKyAgICBtcGRfY29weV9mbGFncyhyZXN1bHQsIGEpOworICAgIHJlc3VsdC0+ZXhwID0gYS0+ZXhwOworCisgICAgcmV0dXJuIHJuZDsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgTWlzY2VsbGFuZW91cyBvcGVyYXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIExvZ2ljYWwgQW5kICovCit2b2lkCittcGRfcWFuZChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgY29uc3QgbXBkX3QgKmJpZyA9IGEsICpzbWFsbCA9IGI7CisgICAgbXBkX3VpbnRfdCB4LCB5LCB6LCB4Yml0LCB5Yml0OworICAgIGludCBrLCBtc3dkaWdpdHM7CisgICAgbXBkX3NzaXplX3QgaTsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpIHx8IG1wZF9pc3NwZWNpYWwoYikgfHwKKyAgICAgICAgbXBkX2lzbmVnYXRpdmUoYSkgfHwgbXBkX2lzbmVnYXRpdmUoYikgfHwKKyAgICAgICAgYS0+ZXhwICE9IDAgfHwgYi0+ZXhwICE9IDApIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChiLT5kaWdpdHMgPiBhLT5kaWdpdHMpIHsKKyAgICAgICAgYmlnID0gYjsKKyAgICAgICAgc21hbGwgPSBhOworICAgIH0KKyAgICBpZiAoIW1wZF9xcmVzaXplKHJlc3VsdCwgYmlnLT5sZW4sIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworCisgICAgLyogZnVsbCB3b3JkcyAqLworICAgIGZvciAoaSA9IDA7IGkgPCBzbWFsbC0+bGVuLTE7IGkrKykgeworICAgICAgICB4ID0gc21hbGwtPmRhdGFbaV07CisgICAgICAgIHkgPSBiaWctPmRhdGFbaV07CisgICAgICAgIHogPSAwOworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgTVBEX1JESUdJVFM7IGsrKykgeworICAgICAgICAgICAgeGJpdCA9IHggJSAxMDsKKyAgICAgICAgICAgIHggLz0gMTA7CisgICAgICAgICAgICB5Yml0ID0geSAlIDEwOworICAgICAgICAgICAgeSAvPSAxMDsKKyAgICAgICAgICAgIGlmICh4Yml0ID4gMSB8fCB5Yml0ID4gMSkgeworICAgICAgICAgICAgICAgIGdvdG8gaW52YWxpZF9vcGVyYXRpb247CisgICAgICAgICAgICB9CisgICAgICAgICAgICB6ICs9ICh4Yml0JnliaXQpID8gbXBkX3BvdzEwW2tdIDogMDsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQtPmRhdGFbaV0gPSB6OworICAgIH0KKyAgICAvKiBtb3N0IHNpZ25pZmljYW50IHdvcmQgb2Ygc21hbGwgKi8KKyAgICB4ID0gc21hbGwtPmRhdGFbaV07CisgICAgeSA9IGJpZy0+ZGF0YVtpXTsKKyAgICB6ID0gMDsKKyAgICBtc3dkaWdpdHMgPSBtcGRfd29yZF9kaWdpdHMoeCk7CisgICAgZm9yIChrID0gMDsgayA8IG1zd2RpZ2l0czsgaysrKSB7CisgICAgICAgIHhiaXQgPSB4ICUgMTA7CisgICAgICAgIHggLz0gMTA7CisgICAgICAgIHliaXQgPSB5ICUgMTA7CisgICAgICAgIHkgLz0gMTA7CisgICAgICAgIGlmICh4Yml0ID4gMSB8fCB5Yml0ID4gMSkgeworICAgICAgICAgICAgZ290byBpbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgfQorICAgICAgICB6ICs9ICh4Yml0JnliaXQpID8gbXBkX3BvdzEwW2tdIDogMDsKKyAgICB9CisgICAgcmVzdWx0LT5kYXRhW2krK10gPSB6OworCisgICAgLyogc2NhbiB0aGUgcmVzdCBvZiB5IGZvciBkaWdpdHMgPiAxICovCisgICAgZm9yICg7IGsgPCBNUERfUkRJR0lUUzsgaysrKSB7CisgICAgICAgIHliaXQgPSB5ICUgMTA7CisgICAgICAgIHkgLz0gMTA7CisgICAgICAgIGlmICh5Yml0ID4gMSkgeworICAgICAgICAgICAgZ290byBpbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBzY2FuIHRoZSByZXN0IG9mIGJpZyBmb3IgZGlnaXRzID4gMSAqLworICAgIGZvciAoOyBpIDwgYmlnLT5sZW47IGkrKykgeworICAgICAgICB5ID0gYmlnLT5kYXRhW2ldOworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgTVBEX1JESUdJVFM7IGsrKykgeworICAgICAgICAgICAgeWJpdCA9IHkgJSAxMDsKKyAgICAgICAgICAgIHkgLz0gMTA7CisgICAgICAgICAgICBpZiAoeWJpdCA+IDEpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGludmFsaWRfb3BlcmF0aW9uOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgbXBkX2NsZWFyX2ZsYWdzKHJlc3VsdCk7CisgICAgcmVzdWx0LT5leHAgPSAwOworICAgIHJlc3VsdC0+bGVuID0gX21wZF9yZWFsX3NpemUocmVzdWx0LT5kYXRhLCBzbWFsbC0+bGVuKTsKKyAgICBtcGRfcXJlc2l6ZShyZXN1bHQsIHJlc3VsdC0+bGVuLCBzdGF0dXMpOworICAgIG1wZF9zZXRkaWdpdHMocmVzdWx0KTsKKyAgICBfbXBkX2NhcChyZXN1bHQsIGN0eCk7CisgICAgcmV0dXJuOworCitpbnZhbGlkX29wZXJhdGlvbjoKKyAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7Cit9CisKKy8qIENsYXNzIG9mIGFuIG9wZXJhbmQuIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBjb25zdGFudCBuYW1lLiAqLworY29uc3QgY2hhciAqCittcGRfY2xhc3MoY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCkKK3sKKyAgICBpZiAobXBkX2lzbmFuKGEpKSB7CisgICAgICAgIGlmIChtcGRfaXNxbmFuKGEpKQorICAgICAgICAgICAgcmV0dXJuICJOYU4iOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gInNOYU4iOworICAgIH0KKyAgICBlbHNlIGlmIChtcGRfaXNwb3NpdGl2ZShhKSkgeworICAgICAgICBpZiAobXBkX2lzaW5maW5pdGUoYSkpCisgICAgICAgICAgICByZXR1cm4gIitJbmZpbml0eSI7CisgICAgICAgIGVsc2UgaWYgKG1wZF9pc3plcm8oYSkpCisgICAgICAgICAgICByZXR1cm4gIitaZXJvIjsKKyAgICAgICAgZWxzZSBpZiAobXBkX2lzbm9ybWFsKGEsIGN0eCkpCisgICAgICAgICAgICByZXR1cm4gIitOb3JtYWwiOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gIitTdWJub3JtYWwiOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKG1wZF9pc2luZmluaXRlKGEpKQorICAgICAgICAgICAgcmV0dXJuICItSW5maW5pdHkiOworICAgICAgICBlbHNlIGlmIChtcGRfaXN6ZXJvKGEpKQorICAgICAgICAgICAgcmV0dXJuICItWmVybyI7CisgICAgICAgIGVsc2UgaWYgKG1wZF9pc25vcm1hbChhLCBjdHgpKQorICAgICAgICAgICAgcmV0dXJuICItTm9ybWFsIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuICItU3Vibm9ybWFsIjsKKyAgICB9Cit9CisKKy8qIExvZ2ljYWwgWG9yICovCit2b2lkCittcGRfcWludmVydChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfdWludF90IHgsIHosIHhiaXQ7CisgICAgbXBkX3NzaXplX3QgaSwgZGlnaXRzLCBsZW47CisgICAgbXBkX3NzaXplX3QgcSwgcjsKKyAgICBpbnQgazsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpIHx8IG1wZF9pc25lZ2F0aXZlKGEpIHx8IGEtPmV4cCAhPSAwKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRpZ2l0cyA9IChhLT5kaWdpdHMgPCBjdHgtPnByZWMpID8gY3R4LT5wcmVjIDogYS0+ZGlnaXRzOworICAgIF9tcGRfaWRpdl93b3JkKCZxLCAmciwgZGlnaXRzLCBNUERfUkRJR0lUUyk7CisgICAgbGVuID0gKHIgPT0gMCkgPyBxIDogcSsxOworICAgIGlmICghbXBkX3FyZXNpemUocmVzdWx0LCBsZW4sIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICB4ID0gKGkgPCBhLT5sZW4pID8gYS0+ZGF0YVtpXSA6IDA7CisgICAgICAgIHogPSAwOworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgTVBEX1JESUdJVFM7IGsrKykgeworICAgICAgICAgICAgeGJpdCA9IHggJSAxMDsKKyAgICAgICAgICAgIHggLz0gMTA7CisgICAgICAgICAgICBpZiAoeGJpdCA+IDEpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGludmFsaWRfb3BlcmF0aW9uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeiArPSAheGJpdCA/IG1wZF9wb3cxMFtrXSA6IDA7CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LT5kYXRhW2ldID0gejsKKyAgICB9CisKKyAgICBtcGRfY2xlYXJfZmxhZ3MocmVzdWx0KTsKKyAgICByZXN1bHQtPmV4cCA9IDA7CisgICAgcmVzdWx0LT5sZW4gPSBfbXBkX3JlYWxfc2l6ZShyZXN1bHQtPmRhdGEsIGxlbik7CisgICAgbXBkX3FyZXNpemUocmVzdWx0LCByZXN1bHQtPmxlbiwgc3RhdHVzKTsKKyAgICBtcGRfc2V0ZGlnaXRzKHJlc3VsdCk7CisgICAgX21wZF9jYXAocmVzdWx0LCBjdHgpOworICAgIHJldHVybjsKKworaW52YWxpZF9vcGVyYXRpb246CisgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworfQorCisvKiBFeHBvbmVudCBvZiB0aGUgbWFnbml0dWRlIG9mIHRoZSBtb3N0IHNpZ25pZmljYW50IGRpZ2l0IG9mIHRoZSBvcGVyYW5kLiAqLwordm9pZAorbXBkX3Fsb2diKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW4ocmVzdWx0LCBhLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtcGRfc2V0c3BlY2lhbChyZXN1bHQsIE1QRF9QT1MsIE1QRF9JTkYpOworICAgIH0KKyAgICBlbHNlIGlmIChtcGRfaXN6ZXJvY29lZmYoYSkpIHsKKyAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCBNUERfTkVHLCBNUERfSU5GKTsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfRGl2aXNpb25fYnlfemVybzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIG1wZF9xc2V0X3NzaXplKHJlc3VsdCwgbXBkX2FkamV4cChhKSwgY3R4LCBzdGF0dXMpOworICAgIH0KK30KKworLyogTG9naWNhbCBPciAqLwordm9pZAorbXBkX3FvcihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBjb25zdCBtcGRfdCAqYmlnID0gYSwgKnNtYWxsID0gYjsKKyAgICBtcGRfdWludF90IHgsIHksIHosIHhiaXQsIHliaXQ7CisgICAgaW50IGssIG1zd2RpZ2l0czsKKyAgICBtcGRfc3NpemVfdCBpOworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkgfHwgbXBkX2lzc3BlY2lhbChiKSB8fAorICAgICAgICBtcGRfaXNuZWdhdGl2ZShhKSB8fCBtcGRfaXNuZWdhdGl2ZShiKSB8fAorICAgICAgICBhLT5leHAgIT0gMCB8fCBiLT5leHAgIT0gMCkgeworICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGItPmRpZ2l0cyA+IGEtPmRpZ2l0cykgeworICAgICAgICBiaWcgPSBiOworICAgICAgICBzbWFsbCA9IGE7CisgICAgfQorICAgIGlmICghbXBkX3FyZXNpemUocmVzdWx0LCBiaWctPmxlbiwgc3RhdHVzKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisKKyAgICAvKiBmdWxsIHdvcmRzICovCisgICAgZm9yIChpID0gMDsgaSA8IHNtYWxsLT5sZW4tMTsgaSsrKSB7CisgICAgICAgIHggPSBzbWFsbC0+ZGF0YVtpXTsKKyAgICAgICAgeSA9IGJpZy0+ZGF0YVtpXTsKKyAgICAgICAgeiA9IDA7CisgICAgICAgIGZvciAoayA9IDA7IGsgPCBNUERfUkRJR0lUUzsgaysrKSB7CisgICAgICAgICAgICB4Yml0ID0geCAlIDEwOworICAgICAgICAgICAgeCAvPSAxMDsKKyAgICAgICAgICAgIHliaXQgPSB5ICUgMTA7CisgICAgICAgICAgICB5IC89IDEwOworICAgICAgICAgICAgaWYgKHhiaXQgPiAxIHx8IHliaXQgPiAxKSB7CisgICAgICAgICAgICAgICAgZ290byBpbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHogKz0gKHhiaXR8eWJpdCkgPyBtcGRfcG93MTBba10gOiAwOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+ZGF0YVtpXSA9IHo7CisgICAgfQorICAgIC8qIG1vc3Qgc2lnbmlmaWNhbnQgd29yZCBvZiBzbWFsbCAqLworICAgIHggPSBzbWFsbC0+ZGF0YVtpXTsKKyAgICB5ID0gYmlnLT5kYXRhW2ldOworICAgIHogPSAwOworICAgIG1zd2RpZ2l0cyA9IG1wZF93b3JkX2RpZ2l0cyh4KTsKKyAgICBmb3IgKGsgPSAwOyBrIDwgbXN3ZGlnaXRzOyBrKyspIHsKKyAgICAgICAgeGJpdCA9IHggJSAxMDsKKyAgICAgICAgeCAvPSAxMDsKKyAgICAgICAgeWJpdCA9IHkgJSAxMDsKKyAgICAgICAgeSAvPSAxMDsKKyAgICAgICAgaWYgKHhiaXQgPiAxIHx8IHliaXQgPiAxKSB7CisgICAgICAgICAgICBnb3RvIGludmFsaWRfb3BlcmF0aW9uOworICAgICAgICB9CisgICAgICAgIHogKz0gKHhiaXR8eWJpdCkgPyBtcGRfcG93MTBba10gOiAwOworICAgIH0KKworICAgIC8qIHNjYW4gZm9yIGRpZ2l0cyA+IDEgYW5kIGNvcHkgdGhlIHJlc3Qgb2YgeSAqLworICAgIGZvciAoOyBrIDwgTVBEX1JESUdJVFM7IGsrKykgeworICAgICAgICB5Yml0ID0geSAlIDEwOworICAgICAgICB5IC89IDEwOworICAgICAgICBpZiAoeWJpdCA+IDEpIHsKKyAgICAgICAgICAgIGdvdG8gaW52YWxpZF9vcGVyYXRpb247CisgICAgICAgIH0KKyAgICAgICAgeiArPSB5Yml0Km1wZF9wb3cxMFtrXTsKKyAgICB9CisgICAgcmVzdWx0LT5kYXRhW2krK10gPSB6OworICAgIC8qIHNjYW4gZm9yIGRpZ2l0cyA+IDEgYW5kIGNvcHkgdGhlIHJlc3Qgb2YgYmlnICovCisgICAgZm9yICg7IGkgPCBiaWctPmxlbjsgaSsrKSB7CisgICAgICAgIHkgPSBiaWctPmRhdGFbaV07CisgICAgICAgIGZvciAoayA9IDA7IGsgPCBNUERfUkRJR0lUUzsgaysrKSB7CisgICAgICAgICAgICB5Yml0ID0geSAlIDEwOworICAgICAgICAgICAgeSAvPSAxMDsKKyAgICAgICAgICAgIGlmICh5Yml0ID4gMSkgeworICAgICAgICAgICAgICAgIGdvdG8gaW52YWxpZF9vcGVyYXRpb247CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmVzdWx0LT5kYXRhW2ldID0gYmlnLT5kYXRhW2ldOworICAgIH0KKworICAgIG1wZF9jbGVhcl9mbGFncyhyZXN1bHQpOworICAgIHJlc3VsdC0+ZXhwID0gMDsKKyAgICByZXN1bHQtPmxlbiA9IF9tcGRfcmVhbF9zaXplKHJlc3VsdC0+ZGF0YSwgYmlnLT5sZW4pOworICAgIG1wZF9xcmVzaXplKHJlc3VsdCwgcmVzdWx0LT5sZW4sIHN0YXR1cyk7CisgICAgbXBkX3NldGRpZ2l0cyhyZXN1bHQpOworICAgIF9tcGRfY2FwKHJlc3VsdCwgY3R4KTsKKyAgICByZXR1cm47CisKK2ludmFsaWRfb3BlcmF0aW9uOgorICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKK30KKworLyoKKyAqIFJvdGF0ZSB0aGUgY29lZmZpY2llbnQgb2YgJ2EnIGJ5ICdiJyBkaWdpdHMuICdiJyBtdXN0IGJlIGFuIGludGVnZXIgd2l0aAorICogZXhwb25lbnQgMC4KKyAqLwordm9pZAorbXBkX3Fyb3RhdGUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIHVpbnQzMl90IHdvcmtzdGF0dXMgPSAwOworICAgIE1QRF9ORVdfU1RBVElDKHRtcCwwLDAsMCwwKTsKKyAgICBNUERfTkVXX1NUQVRJQyhiaWcsMCwwLDAsMCk7CisgICAgTVBEX05FV19TVEFUSUMoc21hbGwsMCwwLDAsMCk7CisgICAgbXBkX3NzaXplX3QgbiwgbHNoaWZ0LCByc2hpZnQ7CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSB8fCBtcGRfaXNzcGVjaWFsKGIpKSB7CisgICAgICAgIGlmIChtcGRfcWNoZWNrX25hbnMocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoYi0+ZXhwICE9IDAgfHwgbXBkX2lzaW5maW5pdGUoYikpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbiA9IG1wZF9xZ2V0X3NzaXplKGIsICZ3b3Jrc3RhdHVzKTsKKyAgICBpZiAod29ya3N0YXR1cyZNUERfSW52YWxpZF9vcGVyYXRpb24pIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChuID4gY3R4LT5wcmVjIHx8IG4gPCAtY3R4LT5wcmVjKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzaW5maW5pdGUoYSkpIHsKKyAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChuID49IDApIHsKKyAgICAgICAgbHNoaWZ0ID0gbjsKKyAgICAgICAgcnNoaWZ0ID0gY3R4LT5wcmVjLW47CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBsc2hpZnQgPSBjdHgtPnByZWMrbjsKKyAgICAgICAgcnNoaWZ0ID0gLW47CisgICAgfQorCisgICAgaWYgKGEtPmRpZ2l0cyA+IGN0eC0+cHJlYykgeworICAgICAgICBpZiAoIW1wZF9xY29weSgmdG1wLCBhLCBzdGF0dXMpKSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfTWFsbG9jX2Vycm9yLCBzdGF0dXMpOworICAgICAgICAgICAgZ290byBmaW5pc2g7CisgICAgICAgIH0KKyAgICAgICAgX21wZF9jYXAoJnRtcCwgY3R4KTsKKyAgICAgICAgYSA9ICZ0bXA7CisgICAgfQorCisgICAgaWYgKCFtcGRfcXNoaWZ0bCgmYmlnLCBhLCBsc2hpZnQsIHN0YXR1cykpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX01hbGxvY19lcnJvciwgc3RhdHVzKTsKKyAgICAgICAgZ290byBmaW5pc2g7CisgICAgfQorICAgIF9tcGRfY2FwKCZiaWcsIGN0eCk7CisKKyAgICBpZiAobXBkX3FzaGlmdHIoJnNtYWxsLCBhLCByc2hpZnQsIHN0YXR1cykgPT0gTVBEX1VJTlRfTUFYKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgIGdvdG8gZmluaXNoOworICAgIH0KKyAgICBfbXBkX3FhZGQocmVzdWx0LCAmYmlnLCAmc21hbGwsIGN0eCwgc3RhdHVzKTsKKworCitmaW5pc2g6CisgICAgbXBkX2RlbCgmdG1wKTsKKyAgICBtcGRfZGVsKCZiaWcpOworICAgIG1wZF9kZWwoJnNtYWxsKTsKK30KKworLyoKKyAqIGIgbXVzdCBiZSBhbiBpbnRlZ2VyIHdpdGggZXhwb25lbnQgMCBhbmQgaW4gdGhlIHJhbmdlICstMiooZW1heCArIHByZWMpLgorICogWFhYOiBJbiBteSBvcGluaW9uICstKDIqZW1heCArIHByZWMpIHdvdWxkIGJlIG1vcmUgc2Vuc2libGUuCisgKiBUaGUgcmVzdWx0IGlzIGEgd2l0aCB0aGUgdmFsdWUgb2YgYiBhZGRlZCB0byBpdHMgZXhwb25lbnQuCisgKi8KK3ZvaWQKK21wZF9xc2NhbGViKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwKKyAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICB1aW50MzJfdCB3b3Jrc3RhdHVzID0gMDsKKyAgICBtcGRfdWludF90IG4sIG1heGp1bXA7CisjaWZuZGVmIExFR0FDWV9DT01QSUxFUgorICAgIGludDY0X3QgZXhwOworI2Vsc2UKKyAgICBtcGRfdWludF90IHg7CisgICAgaW50IHhfc2lnbiwgbl9zaWduOworICAgIG1wZF9zc2l6ZV90IGV4cDsKKyNlbmRpZgorCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkgfHwgbXBkX2lzc3BlY2lhbChiKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW5zKHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGItPmV4cCAhPSAwIHx8IG1wZF9pc2luZmluaXRlKGIpKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG4gPSBtcGRfcWFic191aW50KGIsICZ3b3Jrc3RhdHVzKTsKKyAgICAvKiB0aGUgc3BlYyBkZW1hbmRzIHRoaXMgKi8KKyAgICBtYXhqdW1wID0gMiAqIChtcGRfdWludF90KShjdHgtPmVtYXggKyBjdHgtPnByZWMpOworCisgICAgaWYgKG4gPiBtYXhqdW1wIHx8IHdvcmtzdGF0dXMmTVBEX0ludmFsaWRfb3BlcmF0aW9uKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzaW5maW5pdGUoYSkpIHsKKyAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworI2lmbmRlZiBMRUdBQ1lfQ09NUElMRVIKKyAgICBleHAgPSBhLT5leHAgKyAoaW50NjRfdCluICogbXBkX2FyaXRoX3NpZ24oYik7CisgICAgZXhwID0gKGV4cCA+IE1QRF9FWFBfSU5GKSA/IE1QRF9FWFBfSU5GIDogZXhwOworICAgIGV4cCA9IChleHAgPCBNUERfRVhQX0NMQU1QKSA/IE1QRF9FWFBfQ0xBTVAgOiBleHA7CisjZWxzZQorICAgIHggPSAoYS0+ZXhwIDwgMCkgPyAtYS0+ZXhwIDogYS0+ZXhwOworICAgIHhfc2lnbiA9IChhLT5leHAgPCAwKSA/IDEgOiAwOworICAgIG5fc2lnbiA9IG1wZF9pc25lZ2F0aXZlKGIpID8gMSA6IDA7CisKKyAgICBpZiAoeF9zaWduID09IG5fc2lnbikgeworICAgICAgICB4ID0geCArIG47CisgICAgICAgIGlmICh4IDwgbikgeCA9IE1QRF9VSU5UX01BWDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHhfc2lnbiA9ICh4ID49IG4pID8geF9zaWduIDogbl9zaWduOworICAgICAgICB4ID0gKHggPj0gbikgPyB4IC0gbiA6IG4gLSB4OworICAgIH0KKyAgICBpZiAoIXhfc2lnbiAmJiB4ID4gTVBEX0VYUF9JTkYpIHggPSBNUERfRVhQX0lORjsKKyAgICBpZiAoeF9zaWduICYmIHggPiAtTVBEX0VYUF9DTEFNUCkgeCA9IC1NUERfRVhQX0NMQU1QOworICAgIGV4cCA9IHhfc2lnbiA/IC0oKG1wZF9zc2l6ZV90KXgpIDogKG1wZF9zc2l6ZV90KXg7CisjZW5kaWYKKworICAgIG1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cyk7CisgICAgcmVzdWx0LT5leHAgPSAobXBkX3NzaXplX3QpZXhwOworCisgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsIGN0eCwgc3RhdHVzKTsKK30KKworLyoKKyAqIFNoaWZ0IHRoZSBjb2VmZmljaWVudCBieSBuIGRpZ2l0cywgcG9zaXRpdmUgbiBpcyBhIGxlZnQgc2hpZnQuIEluIHRoZSBjYXNlCisgKiBvZiBhIGxlZnQgc2hpZnQsIHRoZSByZXN1bHQgaXMgZGVjYXBpdGF0ZWQgdG8gZml0IHRoZSBjb250ZXh0IHByZWNpc2lvbi4gSWYKKyAqIHlvdSBkb24ndCB3YW50IHRoYXQsIHVzZSBtcGRfc2hpZnRsKCkuCisgKi8KK3ZvaWQKK21wZF9xc2hpZnRuKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfc3NpemVfdCBuLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpKSB7CisgICAgICAgIGlmIChtcGRfcWNoZWNrX25hbihyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobiA+PSAwICYmIG4gPD0gY3R4LT5wcmVjKSB7CisgICAgICAgIG1wZF9xc2hpZnRsKHJlc3VsdCwgYSwgbiwgc3RhdHVzKTsKKyAgICAgICAgX21wZF9jYXAocmVzdWx0LCBjdHgpOworICAgIH0KKyAgICBlbHNlIGlmIChuIDwgMCAmJiBuID49IC1jdHgtPnByZWMpIHsKKyAgICAgICAgaWYgKCFtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgX21wZF9jYXAocmVzdWx0LCBjdHgpOworICAgICAgICBtcGRfcXNoaWZ0cl9pbnBsYWNlKHJlc3VsdCwgLW4pOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgIH0KK30KKworLyoKKyAqIFNhbWUgYXMgbXBkX3NoaWZ0bigpLCBidXQgdGhlIHNoaWZ0IGlzIHNwZWNpZmllZCBieSB0aGUgZGVjaW1hbCBiLCB3aGljaAorICogbXVzdCBiZSBhbiBpbnRlZ2VyIHdpdGggYSB6ZXJvIGV4cG9uZW50LiBJbmZpbml0aWVzIHJlbWFpbiBpbmZpbml0aWVzLgorICovCit2b2lkCittcGRfcXNoaWZ0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIHVpbnQzMl90IHdvcmtzdGF0dXMgPSAwOworICAgIG1wZF9zc2l6ZV90IG47CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSB8fCBtcGRfaXNzcGVjaWFsKGIpKSB7CisgICAgICAgIGlmIChtcGRfcWNoZWNrX25hbnMocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoYi0+ZXhwICE9IDAgfHwgbXBkX2lzaW5maW5pdGUoYikpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbiA9IG1wZF9xZ2V0X3NzaXplKGIsICZ3b3Jrc3RhdHVzKTsKKyAgICBpZiAod29ya3N0YXR1cyZNUERfSW52YWxpZF9vcGVyYXRpb24pIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChuID4gY3R4LT5wcmVjIHx8IG4gPCAtY3R4LT5wcmVjKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzaW5maW5pdGUoYSkpIHsKKyAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChuID49IDApIHsKKyAgICAgICAgbXBkX3FzaGlmdGwocmVzdWx0LCBhLCBuLCBzdGF0dXMpOworICAgICAgICBfbXBkX2NhcChyZXN1bHQsIGN0eCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBpZiAoIW1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBfbXBkX2NhcChyZXN1bHQsIGN0eCk7CisgICAgICAgIG1wZF9xc2hpZnRyX2lucGxhY2UocmVzdWx0LCAtbik7CisgICAgfQorfQorCisvKiBMb2dpY2FsIFhvciAqLwordm9pZAorbXBkX3F4b3IobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgY29uc3QgbXBkX3QgKmJpZyA9IGEsICpzbWFsbCA9IGI7CisgICAgbXBkX3VpbnRfdCB4LCB5LCB6LCB4Yml0LCB5Yml0OworICAgIGludCBrLCBtc3dkaWdpdHM7CisgICAgbXBkX3NzaXplX3QgaTsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpIHx8IG1wZF9pc3NwZWNpYWwoYikgfHwKKyAgICAgICAgbXBkX2lzbmVnYXRpdmUoYSkgfHwgbXBkX2lzbmVnYXRpdmUoYikgfHwKKyAgICAgICAgYS0+ZXhwICE9IDAgfHwgYi0+ZXhwICE9IDApIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChiLT5kaWdpdHMgPiBhLT5kaWdpdHMpIHsKKyAgICAgICAgYmlnID0gYjsKKyAgICAgICAgc21hbGwgPSBhOworICAgIH0KKyAgICBpZiAoIW1wZF9xcmVzaXplKHJlc3VsdCwgYmlnLT5sZW4sIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworCisgICAgLyogZnVsbCB3b3JkcyAqLworICAgIGZvciAoaSA9IDA7IGkgPCBzbWFsbC0+bGVuLTE7IGkrKykgeworICAgICAgICB4ID0gc21hbGwtPmRhdGFbaV07CisgICAgICAgIHkgPSBiaWctPmRhdGFbaV07CisgICAgICAgIHogPSAwOworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgTVBEX1JESUdJVFM7IGsrKykgeworICAgICAgICAgICAgeGJpdCA9IHggJSAxMDsKKyAgICAgICAgICAgIHggLz0gMTA7CisgICAgICAgICAgICB5Yml0ID0geSAlIDEwOworICAgICAgICAgICAgeSAvPSAxMDsKKyAgICAgICAgICAgIGlmICh4Yml0ID4gMSB8fCB5Yml0ID4gMSkgeworICAgICAgICAgICAgICAgIGdvdG8gaW52YWxpZF9vcGVyYXRpb247CisgICAgICAgICAgICB9CisgICAgICAgICAgICB6ICs9ICh4Yml0XnliaXQpID8gbXBkX3BvdzEwW2tdIDogMDsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQtPmRhdGFbaV0gPSB6OworICAgIH0KKyAgICAvKiBtb3N0IHNpZ25pZmljYW50IHdvcmQgb2Ygc21hbGwgKi8KKyAgICB4ID0gc21hbGwtPmRhdGFbaV07CisgICAgeSA9IGJpZy0+ZGF0YVtpXTsKKyAgICB6ID0gMDsKKyAgICBtc3dkaWdpdHMgPSBtcGRfd29yZF9kaWdpdHMoeCk7CisgICAgZm9yIChrID0gMDsgayA8IG1zd2RpZ2l0czsgaysrKSB7CisgICAgICAgIHhiaXQgPSB4ICUgMTA7CisgICAgICAgIHggLz0gMTA7CisgICAgICAgIHliaXQgPSB5ICUgMTA7CisgICAgICAgIHkgLz0gMTA7CisgICAgICAgIGlmICh4Yml0ID4gMSB8fCB5Yml0ID4gMSkgeworICAgICAgICAgICAgZ290byBpbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgfQorICAgICAgICB6ICs9ICh4Yml0XnliaXQpID8gbXBkX3BvdzEwW2tdIDogMDsKKyAgICB9CisKKyAgICAvKiBzY2FuIGZvciBkaWdpdHMgPiAxIGFuZCBjb3B5IHRoZSByZXN0IG9mIHkgKi8KKyAgICBmb3IgKDsgayA8IE1QRF9SRElHSVRTOyBrKyspIHsKKyAgICAgICAgeWJpdCA9IHkgJSAxMDsKKyAgICAgICAgeSAvPSAxMDsKKyAgICAgICAgaWYgKHliaXQgPiAxKSB7CisgICAgICAgICAgICBnb3RvIGludmFsaWRfb3BlcmF0aW9uOworICAgICAgICB9CisgICAgICAgIHogKz0geWJpdCptcGRfcG93MTBba107CisgICAgfQorICAgIHJlc3VsdC0+ZGF0YVtpKytdID0gejsKKyAgICAvKiBzY2FuIGZvciBkaWdpdHMgPiAxIGFuZCBjb3B5IHRoZSByZXN0IG9mIGJpZyAqLworICAgIGZvciAoOyBpIDwgYmlnLT5sZW47IGkrKykgeworICAgICAgICB5ID0gYmlnLT5kYXRhW2ldOworICAgICAgICBmb3IgKGsgPSAwOyBrIDwgTVBEX1JESUdJVFM7IGsrKykgeworICAgICAgICAgICAgeWJpdCA9IHkgJSAxMDsKKyAgICAgICAgICAgIHkgLz0gMTA7CisgICAgICAgICAgICBpZiAoeWJpdCA+IDEpIHsKKyAgICAgICAgICAgICAgICBnb3RvIGludmFsaWRfb3BlcmF0aW9uOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+ZGF0YVtpXSA9IGJpZy0+ZGF0YVtpXTsKKyAgICB9CisKKyAgICBtcGRfY2xlYXJfZmxhZ3MocmVzdWx0KTsKKyAgICByZXN1bHQtPmV4cCA9IDA7CisgICAgcmVzdWx0LT5sZW4gPSBfbXBkX3JlYWxfc2l6ZShyZXN1bHQtPmRhdGEsIGJpZy0+bGVuKTsKKyAgICBtcGRfcXJlc2l6ZShyZXN1bHQsIHJlc3VsdC0+bGVuLCBzdGF0dXMpOworICAgIG1wZF9zZXRkaWdpdHMocmVzdWx0KTsKKyAgICBfbXBkX2NhcChyZXN1bHQsIGN0eCk7CisgICAgcmV0dXJuOworCitpbnZhbGlkX29wZXJhdGlvbjoKKyAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgIEFyaXRobWV0aWMgb3BlcmF0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogVGhlIGFic29sdXRlIHZhbHVlIG9mIGEuIElmIGEgaXMgbmVnYXRpdmUsIHRoZSByZXN1bHQgaXMgdGhlIHNhbWUKKyAqIGFzIHRoZSByZXN1bHQgb2YgdGhlIG1pbnVzIG9wZXJhdGlvbi4gT3RoZXJ3aXNlLCB0aGUgcmVzdWx0IGlzIHRoZQorICogcmVzdWx0IG9mIHRoZSBwbHVzIG9wZXJhdGlvbi4KKyAqLwordm9pZAorbXBkX3FhYnMobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfbmFuKHJlc3VsdCwgYSwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobXBkX2lzbmVnYXRpdmUoYSkpIHsKKyAgICAgICAgbXBkX3FtaW51cyhyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIG1wZF9xcGx1cyhyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9wdHJzd2FwKG1wZF90ICoqYSwgbXBkX3QgKipiKQoreworICAgIG1wZF90ICp0ID0gKmE7CisgICAgKmEgPSAqYjsKKyAgICAqYiA9IHQ7Cit9CisKKy8qIEFkZCBvciBzdWJ0cmFjdCBpbmZpbml0aWVzLiAqLworc3RhdGljIHZvaWQKK19tcGRfcWFkZHN1Yl9pbmYobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCB1aW50OF90IHNpZ25fYiwKKyAgICAgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBpZiAobXBkX2lzaW5maW5pdGUoYSkpIHsKKyAgICAgICAgaWYgKG1wZF9zaWduKGEpICE9IHNpZ25fYiAmJiBtcGRfaXNpbmZpbml0ZShiKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCBtcGRfc2lnbihhKSwgTVBEX0lORik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhc3NlcnQobXBkX2lzaW5maW5pdGUoYikpOworICAgIG1wZF9zZXRzcGVjaWFsKHJlc3VsdCwgc2lnbl9iLCBNUERfSU5GKTsKK30KKworLyogQWRkIG9yIHN1YnRyYWN0IG5vbi1zcGVjaWFsIG51bWJlcnMuICovCitzdGF0aWMgdm9pZAorX21wZF9xYWRkc3ViKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgdWludDhfdCBzaWduX2IsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF90ICpiaWcsICpzbWFsbDsKKyAgICBNUERfTkVXX1NUQVRJQyhiaWdfYWxpZ25lZCwwLDAsMCwwKTsKKyAgICBNUERfTkVXX0NPTlNUKHRpbnksMCwwLDEsMSwxLDEpOworICAgIG1wZF91aW50X3QgY2Fycnk7CisgICAgbXBkX3NzaXplX3QgbmV3c2l6ZSwgc2hpZnQ7CisgICAgbXBkX3NzaXplX3QgZXhwLCBpOworICAgIGludCBzd2FwID0gMDsKKworCisgICAgLyogY29tcGFyZSBleHBvbmVudHMgKi8KKyAgICBiaWcgPSAobXBkX3QgKilhOyBzbWFsbCA9IChtcGRfdCAqKWI7CisgICAgaWYgKGJpZy0+ZXhwICE9IHNtYWxsLT5leHApIHsKKyAgICAgICAgaWYgKHNtYWxsLT5leHAgPiBiaWctPmV4cCkgeworICAgICAgICAgICAgX21wZF9wdHJzd2FwKCZiaWcsICZzbWFsbCk7CisgICAgICAgICAgICBzd2FwKys7CisgICAgICAgIH0KKyAgICAgICAgLyogYWxpZ24gdGhlIGNvZWZmaWNpZW50cyAqLworICAgICAgICBpZiAoIW1wZF9pc3plcm9jb2VmZihiaWcpKSB7CisgICAgICAgICAgICBleHAgPSBiaWctPmV4cCAtIDE7CisgICAgICAgICAgICBleHAgKz0gKGJpZy0+ZGlnaXRzID4gY3R4LT5wcmVjKSA/IDAgOiBiaWctPmRpZ2l0cy1jdHgtPnByZWMtMTsKKyAgICAgICAgICAgIGlmIChtcGRfYWRqZXhwKHNtYWxsKSA8IGV4cCkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogQXZvaWQgaHVnZSBzaGlmdHMgYnkgc3Vic3RpdHV0aW5nIGEgdmFsdWUgZm9yIHNtYWxsIHRoYXQgaXMKKyAgICAgICAgICAgICAgICAgKiBndWFyYW50ZWVkIHRvIHByb2R1Y2UgdGhlIHNhbWUgcmVzdWx0cy4KKyAgICAgICAgICAgICAgICAgKgorICAgICAgICAgICAgICAgICAqIGFkamV4cChzbWFsbCkgPCBleHAgaWYgYW5kIG9ubHkgaWY6CisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiAgIGJkaWdpdHMgPD0gcHJlYyBBTkQKKyAgICAgICAgICAgICAgICAgKiAgIGJkaWdpdHMrc2hpZnQgPj0gcHJlYysyK3NkaWdpdHMgQU5ECisgICAgICAgICAgICAgICAgICogICBleHAgPSBiZXhwK2JkaWdpdHMtcHJlYy0yCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiAgICAgMTIzNDU2NzAwMDAwMDAwMCAgLT4gIGJkaWdpdHMgKyBzaGlmdAorICAgICAgICAgICAgICAgICAqICAgICAtLS0tLS0tLS0tWFgxMjM0ICAtPiAgc2RpZ2l0cworICAgICAgICAgICAgICAgICAqICAgICAtLS0tLS0tLS0tWDEgICAgICAtPiAgdGlueS1kaWdpdHMKKyAgICAgICAgICAgICAgICAgKiAgICAgfC0gcHJlYyAtfAorICAgICAgICAgICAgICAgICAqICAgICAKKyAgICAgICAgICAgICAgICAgKiAgICAgIE9SCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiAgIGJkaWdpdHMgPiBwcmVjIEFORAorICAgICAgICAgICAgICAgICAqICAgc2hpZnQgPiBzZGlnaXRzIEFORAorICAgICAgICAgICAgICAgICAqICAgZXhwID0gYmV4cC0xCisgICAgICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAgICAgKiAgICAgMTIzNDU2Nzg5MjEwMDAwMCAgLT4gIGJkaWdpdHMgKyBzaGlmdAorICAgICAgICAgICAgICAgICAqICAgICAtLS0tLS0tLS0tWFgxMjM0ICAtPiAgc2RpZ2l0cworICAgICAgICAgICAgICAgICAqICAgICAtLS0tLS0tLS0tWDEgICAgICAtPiAgdGlueS1kaWdpdHMKKyAgICAgICAgICAgICAgICAgKiAgICAgfC0gcHJlYyAtfAorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogSWYgdGlueSBpcyB6ZXJvLCBhZGRpbmcgb3Igc3VidHJhY3RpbmcgaXMgYSBuby1vcC4KKyAgICAgICAgICAgICAgICAgKiBPdGhlcndpc2UsIGFkZGluZyB0aW55IGdlbmVyYXRlcyBhIG5vbi16ZXJvIGRpZ2l0IGVpdGhlcgorICAgICAgICAgICAgICAgICAqIGJlbG93IHRoZSByb3VuZGluZyBkaWdpdCBvciB0aGUgbGVhc3Qgc2lnbmlmaWNhbnQgZGlnaXQKKyAgICAgICAgICAgICAgICAgKiBvZiBiaWcuIFdoZW4gc3VidHJhY3RpbmcsIHRpbnkgaXMgaW4gdGhlIHNhbWUgcG9zaXRpb24gYXMKKyAgICAgICAgICAgICAgICAgKiB0aGUgY2FycnkgdGhhdCB3b3VsZCBiZSBnZW5lcmF0ZWQgYnkgc3VidHJhY3Rpbmcgc2RpZ2l0cy4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBtcGRfY29weV9mbGFncygmdGlueSwgc21hbGwpOworICAgICAgICAgICAgICAgIHRpbnkuZXhwID0gZXhwOworICAgICAgICAgICAgICAgIHRpbnkuZGlnaXRzID0gMTsKKyAgICAgICAgICAgICAgICB0aW55LmxlbiA9IDE7CisgICAgICAgICAgICAgICAgdGlueS5kYXRhWzBdID0gbXBkX2lzemVyb2NvZWZmKHNtYWxsKSA/IDAgOiAxOworICAgICAgICAgICAgICAgIHNtYWxsID0gJnRpbnk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBUaGlzIGNhbm5vdCB3cmFwOiB0aGUgZGlmZmVyZW5jZSBpcyBwb3NpdGl2ZSBhbmQgPD0gbWF4cHJlYyAqLworICAgICAgICAgICAgc2hpZnQgPSBiaWctPmV4cCAtIHNtYWxsLT5leHA7CisgICAgICAgICAgICBpZiAoIW1wZF9xc2hpZnRsKCZiaWdfYWxpZ25lZCwgYmlnLCBzaGlmdCwgc3RhdHVzKSkgeworICAgICAgICAgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgZ290byBmaW5pc2g7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBiaWcgPSAmYmlnX2FsaWduZWQ7CisgICAgICAgIH0KKyAgICB9CisgICAgcmVzdWx0LT5leHAgPSBzbWFsbC0+ZXhwOworCisKKyAgICAvKiBjb21wYXJlIGxlbmd0aCBvZiBjb2VmZmljaWVudHMgKi8KKyAgICBpZiAoYmlnLT5sZW4gPCBzbWFsbC0+bGVuKSB7CisgICAgICAgIF9tcGRfcHRyc3dhcCgmYmlnLCAmc21hbGwpOworICAgICAgICBzd2FwKys7CisgICAgfQorCisgICAgbmV3c2l6ZSA9IGJpZy0+bGVuOworICAgIGlmICghbXBkX3FyZXNpemUocmVzdWx0LCBuZXdzaXplLCBzdGF0dXMpKSB7CisgICAgICAgIGdvdG8gZmluaXNoOworICAgIH0KKworICAgIGlmIChtcGRfc2lnbihhKSA9PSBzaWduX2IpIHsKKworICAgICAgICBjYXJyeSA9IF9tcGRfYmFzZWFkZChyZXN1bHQtPmRhdGEsIGJpZy0+ZGF0YSwgc21hbGwtPmRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpZy0+bGVuLCBzbWFsbC0+bGVuKTsKKworICAgICAgICBpZiAoY2FycnkpIHsKKyAgICAgICAgICAgIG5ld3NpemUgPSBiaWctPmxlbiArIDE7CisgICAgICAgICAgICBpZiAoIW1wZF9xcmVzaXplKHJlc3VsdCwgbmV3c2l6ZSwgc3RhdHVzKSkgeworICAgICAgICAgICAgICAgIGdvdG8gZmluaXNoOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzdWx0LT5kYXRhW25ld3NpemUtMV0gPSBjYXJyeTsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdC0+bGVuID0gbmV3c2l6ZTsKKyAgICAgICAgbXBkX3NldF9mbGFncyhyZXN1bHQsIHNpZ25fYik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBpZiAoYmlnLT5sZW4gPT0gc21hbGwtPmxlbikgeworICAgICAgICAgICAgZm9yIChpPWJpZy0+bGVuLTE7IGkgPj0gMDsgLS1pKSB7CisgICAgICAgICAgICAgICAgaWYgKGJpZy0+ZGF0YVtpXSAhPSBzbWFsbC0+ZGF0YVtpXSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoYmlnLT5kYXRhW2ldIDwgc21hbGwtPmRhdGFbaV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIF9tcGRfcHRyc3dhcCgmYmlnLCAmc21hbGwpOworICAgICAgICAgICAgICAgICAgICAgICAgc3dhcCsrOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIF9tcGRfYmFzZXN1YihyZXN1bHQtPmRhdGEsIGJpZy0+ZGF0YSwgc21hbGwtPmRhdGEsCisgICAgICAgICAgICAgICAgICAgICBiaWctPmxlbiwgc21hbGwtPmxlbik7CisgICAgICAgIG5ld3NpemUgPSBfbXBkX3JlYWxfc2l6ZShyZXN1bHQtPmRhdGEsIGJpZy0+bGVuKTsKKyAgICAgICAgLyogcmVzaXplIHRvIHNtYWxsZXIgY2Fubm90IGZhaWwgKi8KKyAgICAgICAgKHZvaWQpbXBkX3FyZXNpemUocmVzdWx0LCBuZXdzaXplLCBzdGF0dXMpOworCisgICAgICAgIHJlc3VsdC0+bGVuID0gbmV3c2l6ZTsKKyAgICAgICAgc2lnbl9iID0gKHN3YXAgJiAxKSA/IHNpZ25fYiA6IG1wZF9zaWduKGEpOworICAgICAgICBtcGRfc2V0X2ZsYWdzKHJlc3VsdCwgc2lnbl9iKTsKKworICAgICAgICBpZiAobXBkX2lzemVyb2NvZWZmKHJlc3VsdCkpIHsKKyAgICAgICAgICAgIG1wZF9zZXRfcG9zaXRpdmUocmVzdWx0KTsKKyAgICAgICAgICAgIGlmIChjdHgtPnJvdW5kID09IE1QRF9ST1VORF9GTE9PUikgeworICAgICAgICAgICAgICAgIG1wZF9zZXRfbmVnYXRpdmUocmVzdWx0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIG1wZF9zZXRkaWdpdHMocmVzdWx0KTsKKworZmluaXNoOgorICAgIG1wZF9kZWwoJmJpZ19hbGlnbmVkKTsKK30KKworLyogQWRkIGEgYW5kIGIuIE5vIHNwZWNpYWxzLCBubyBmaW5hbGl6aW5nLiAqLworc3RhdGljIHZvaWQKK19tcGRfcWFkZChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIF9tcGRfcWFkZHN1YihyZXN1bHQsIGEsIGIsIG1wZF9zaWduKGIpLCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qIFN1YnRyYWN0IGIgZnJvbSBhLiBObyBzcGVjaWFscywgbm8gZmluYWxpemluZy4gKi8KK3N0YXRpYyB2b2lkCitfbXBkX3FzdWIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICAgX21wZF9xYWRkc3ViKHJlc3VsdCwgYSwgYiwgIW1wZF9zaWduKGIpLCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qIEFkZCBhIGFuZCBiLiAqLwordm9pZAorbXBkX3FhZGQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpIHx8IG1wZF9pc3NwZWNpYWwoYikpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfbmFucyhyZXN1bHQsIGEsIGIsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIF9tcGRfcWFkZHN1Yl9pbmYocmVzdWx0LCBhLCBiLCBtcGRfc2lnbihiKSwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIF9tcGRfcWFkZHN1YihyZXN1bHQsIGEsIGIsIG1wZF9zaWduKGIpLCBjdHgsIHN0YXR1cyk7CisgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsIGN0eCwgc3RhdHVzKTsKK30KKworLyogQWRkIGEgYW5kIGIuIFNldCBOYU4vSW52YWxpZF9vcGVyYXRpb24gaWYgdGhlIHJlc3VsdCBpcyBpbmV4YWN0LiAqLworc3RhdGljIHZvaWQKK19tcGRfcWFkZF9leGFjdChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIHVpbnQzMl90IHdvcmtzdGF0dXMgPSAwOworCisgICAgbXBkX3FhZGQocmVzdWx0LCBhLCBiLCBjdHgsICZ3b3Jrc3RhdHVzKTsKKyAgICAqc3RhdHVzIHw9IHdvcmtzdGF0dXM7CisgICAgaWYgKHdvcmtzdGF0dXMgJiAoTVBEX0luZXhhY3R8TVBEX1JvdW5kZWR8TVBEX0NsYW1wZWQpKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICB9Cit9CisKKy8qIFN1YnRyYWN0IGIgZnJvbSBhLiAqLwordm9pZAorbXBkX3FzdWIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpIHx8IG1wZF9pc3NwZWNpYWwoYikpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfbmFucyhyZXN1bHQsIGEsIGIsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIF9tcGRfcWFkZHN1Yl9pbmYocmVzdWx0LCBhLCBiLCAhbXBkX3NpZ24oYiksIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBfbXBkX3FhZGRzdWIocmVzdWx0LCBhLCBiLCAhbXBkX3NpZ24oYiksIGN0eCwgc3RhdHVzKTsKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworfQorCisvKiBTdWJ0cmFjdCBiIGZyb20gYS4gU2V0IE5hTi9JbnZhbGlkX29wZXJhdGlvbiBpZiB0aGUgcmVzdWx0IGlzIGluZXhhY3QuICovCitzdGF0aWMgdm9pZAorX21wZF9xc3ViX2V4YWN0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwKKyAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgdWludDMyX3Qgd29ya3N0YXR1cyA9IDA7CisKKyAgICBtcGRfcXN1YihyZXN1bHQsIGEsIGIsIGN0eCwgJndvcmtzdGF0dXMpOworICAgICpzdGF0dXMgfD0gd29ya3N0YXR1czsKKyAgICBpZiAod29ya3N0YXR1cyAmIChNUERfSW5leGFjdHxNUERfUm91bmRlZHxNUERfQ2xhbXBlZCkpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgIH0KK30KKworLyogQWRkIGRlY2ltYWwgYW5kIG1wZF9zc2l6ZV90LiAqLwordm9pZAorbXBkX3FhZGRfc3NpemUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9zc2l6ZV90IGIsCisgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX2NvbnRleHRfdCBtYXhjb250ZXh0OworICAgIE1QRF9ORVdfU1RBVElDKGJiLDAsMCwwLDApOworCisgICAgbXBkX21heGNvbnRleHQoJm1heGNvbnRleHQpOworICAgIG1wZF9xc3NldF9zc2l6ZSgmYmIsIGIsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgIG1wZF9xYWRkKHJlc3VsdCwgYSwgJmJiLCBjdHgsIHN0YXR1cyk7CisgICAgbXBkX2RlbCgmYmIpOworfQorCisvKiBBZGQgZGVjaW1hbCBhbmQgbXBkX3VpbnRfdC4gKi8KK3ZvaWQKK21wZF9xYWRkX3VpbnQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF91aW50X3QgYiwKKyAgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9jb250ZXh0X3QgbWF4Y29udGV4dDsKKyAgICBNUERfTkVXX1NUQVRJQyhiYiwwLDAsMCwwKTsKKworICAgIG1wZF9tYXhjb250ZXh0KCZtYXhjb250ZXh0KTsKKyAgICBtcGRfcXNzZXRfdWludCgmYmIsIGIsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgIG1wZF9xYWRkKHJlc3VsdCwgYSwgJmJiLCBjdHgsIHN0YXR1cyk7CisgICAgbXBkX2RlbCgmYmIpOworfQorCisvKiBTdWJ0cmFjdCBtcGRfc3NpemVfdCBmcm9tIGRlY2ltYWwuICovCit2b2lkCittcGRfcXN1Yl9zc2l6ZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgYiwKKyAgICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IG1heGNvbnRleHQ7CisgICAgTVBEX05FV19TVEFUSUMoYmIsMCwwLDAsMCk7CisKKyAgICBtcGRfbWF4Y29udGV4dCgmbWF4Y29udGV4dCk7CisgICAgbXBkX3Fzc2V0X3NzaXplKCZiYiwgYiwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgbXBkX3FzdWIocmVzdWx0LCBhLCAmYmIsIGN0eCwgc3RhdHVzKTsKKyAgICBtcGRfZGVsKCZiYik7Cit9CisKKy8qIFN1YnRyYWN0IG1wZF91aW50X3QgZnJvbSBkZWNpbWFsLiAqLwordm9pZAorbXBkX3FzdWJfdWludChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3VpbnRfdCBiLAorICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX2NvbnRleHRfdCBtYXhjb250ZXh0OworICAgIE1QRF9ORVdfU1RBVElDKGJiLDAsMCwwLDApOworCisgICAgbXBkX21heGNvbnRleHQoJm1heGNvbnRleHQpOworICAgIG1wZF9xc3NldF91aW50KCZiYiwgYiwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgbXBkX3FzdWIocmVzdWx0LCBhLCAmYmIsIGN0eCwgc3RhdHVzKTsKKyAgICBtcGRfZGVsKCZiYik7Cit9CisKKy8qIEFkZCBkZWNpbWFsIGFuZCBpbnQzMl90LiAqLwordm9pZAorbXBkX3FhZGRfaTMyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBpbnQzMl90IGIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9xYWRkX3NzaXplKHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpOworfQorCisvKiBBZGQgZGVjaW1hbCBhbmQgdWludDMyX3QuICovCit2b2lkCittcGRfcWFkZF91MzIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90IGIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9xYWRkX3VpbnQocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cyk7Cit9CisKKyNpZmRlZiBDT05GSUdfNjQKKy8qIEFkZCBkZWNpbWFsIGFuZCBpbnQ2NF90LiAqLwordm9pZAorbXBkX3FhZGRfaTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBpbnQ2NF90IGIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9xYWRkX3NzaXplKHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpOworfQorCisvKiBBZGQgZGVjaW1hbCBhbmQgdWludDY0X3QuICovCit2b2lkCittcGRfcWFkZF91NjQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQ2NF90IGIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9xYWRkX3VpbnQocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cyk7Cit9CisjZW5kaWYKKworLyogU3VidHJhY3QgaW50MzJfdCBmcm9tIGRlY2ltYWwuICovCit2b2lkCittcGRfcXN1Yl9pMzIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDMyX3QgYiwKKyAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3FzdWJfc3NpemUocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qIFN1YnRyYWN0IHVpbnQzMl90IGZyb20gZGVjaW1hbC4gKi8KK3ZvaWQKK21wZF9xc3ViX3UzMihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgdWludDMyX3QgYiwKKyAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3FzdWJfdWludChyZXN1bHQsIGEsIGIsIGN0eCwgc3RhdHVzKTsKK30KKworI2lmZGVmIENPTkZJR182NAorLyogU3VidHJhY3QgaW50NjRfdCBmcm9tIGRlY2ltYWwuICovCit2b2lkCittcGRfcXN1Yl9pNjQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDY0X3QgYiwKKyAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3FzdWJfc3NpemUocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qIFN1YnRyYWN0IHVpbnQ2NF90IGZyb20gZGVjaW1hbC4gKi8KK3ZvaWQKK21wZF9xc3ViX3U2NChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgdWludDY0X3QgYiwKKyAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3FzdWJfdWludChyZXN1bHQsIGEsIGIsIGN0eCwgc3RhdHVzKTsKK30KKyNlbmRpZgorCisKKy8qIERpdmlkZSBpbmZpbml0aWVzLiAqLworc3RhdGljIHZvaWQKK19tcGRfcWRpdl9pbmYobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKG1wZF9pc2luZmluaXRlKGEpKSB7CisgICAgICAgIGlmIChtcGRfaXNpbmZpbml0ZShiKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1wZF9zZXRzcGVjaWFsKHJlc3VsdCwgbXBkX3NpZ24oYSlebXBkX3NpZ24oYiksIE1QRF9JTkYpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGFzc2VydChtcGRfaXNpbmZpbml0ZShiKSk7CisgICAgX3NldHRyaXBsZShyZXN1bHQsIG1wZF9zaWduKGEpXm1wZF9zaWduKGIpLCAwLCBtcGRfZXRpbnkoY3R4KSk7CisgICAgKnN0YXR1cyB8PSBNUERfQ2xhbXBlZDsKK30KKworZW51bSB7Tk9fSURFQUxfRVhQLCBTRVRfSURFQUxfRVhQfTsKKy8qIERpdmlkZSBhIGJ5IGIuICovCitzdGF0aWMgdm9pZAorX21wZF9xZGl2KGludCBhY3Rpb24sIG1wZF90ICpxLCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIE1QRF9ORVdfU1RBVElDKGFsaWduZWQsMCwwLDAsMCk7CisgICAgbXBkX3VpbnRfdCBsZDsKKyAgICBtcGRfc3NpemVfdCBzaGlmdCwgZXhwLCB0ejsKKyAgICBtcGRfc3NpemVfdCBuZXdzaXplOworICAgIG1wZF9zc2l6ZV90IGlkZWFsX2V4cDsKKyAgICBtcGRfdWludF90IHJlbTsKKyAgICB1aW50OF90IHNpZ25fYSA9IG1wZF9zaWduKGEpOworICAgIHVpbnQ4X3Qgc2lnbl9iID0gbXBkX3NpZ24oYik7CisKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpIHx8IG1wZF9pc3NwZWNpYWwoYikpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfbmFucyhxLCBhLCBiLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBfbXBkX3FkaXZfaW5mKHEsIGEsIGIsIGN0eCwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGIpKSB7CisgICAgICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYSkpIHsKKyAgICAgICAgICAgIG1wZF9zZXRlcnJvcihxLCBNUERfRGl2aXNpb25fdW5kZWZpbmVkLCBzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwocSwgc2lnbl9hXnNpZ25fYiwgTVBEX0lORik7CisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9EaXZpc2lvbl9ieV96ZXJvOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1wZF9pc3plcm9jb2VmZihhKSkgeworICAgICAgICBleHAgPSBhLT5leHAgLSBiLT5leHA7CisgICAgICAgIF9zZXR0cmlwbGUocSwgc2lnbl9hXnNpZ25fYiwgMCwgZXhwKTsKKyAgICAgICAgbXBkX3FmaW5hbGl6ZShxLCBjdHgsIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzaGlmdCA9IChiLT5kaWdpdHMgLSBhLT5kaWdpdHMpICsgY3R4LT5wcmVjICsgMTsKKyAgICBpZGVhbF9leHAgPSBhLT5leHAgLSBiLT5leHA7CisgICAgZXhwID0gaWRlYWxfZXhwIC0gc2hpZnQ7CisgICAgaWYgKHNoaWZ0ID4gMCkgeworICAgICAgICBpZiAoIW1wZF9xc2hpZnRsKCZhbGlnbmVkLCBhLCBzaGlmdCwgc3RhdHVzKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHEsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgICAgICBnb3RvIGZpbmlzaDsKKyAgICAgICAgfQorICAgICAgICBhID0gJmFsaWduZWQ7CisgICAgfQorICAgIGVsc2UgaWYgKHNoaWZ0IDwgMCkgeworICAgICAgICBzaGlmdCA9IC1zaGlmdDsKKyAgICAgICAgaWYgKCFtcGRfcXNoaWZ0bCgmYWxpZ25lZCwgYiwgc2hpZnQsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIG1wZF9zZXRlcnJvcihxLCBNUERfTWFsbG9jX2Vycm9yLCBzdGF0dXMpOworICAgICAgICAgICAgZ290byBmaW5pc2g7CisgICAgICAgIH0KKyAgICAgICAgYiA9ICZhbGlnbmVkOworICAgIH0KKworCisgICAgbmV3c2l6ZSA9IGEtPmxlbiAtIGItPmxlbiArIDE7CisgICAgaWYgKChxICE9IGIgJiYgcSAhPSBhKSB8fCAocSA9PSBiICYmIG5ld3NpemUgPiBiLT5sZW4pKSB7CisgICAgICAgIGlmICghbXBkX3FyZXNpemUocSwgbmV3c2l6ZSwgc3RhdHVzKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHEsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgICAgICBnb3RvIGZpbmlzaDsKKyAgICAgICAgfQorICAgIH0KKworCisgICAgaWYgKGItPmxlbiA9PSAxKSB7CisgICAgICAgIHJlbSA9IF9tcGRfc2hvcnRkaXYocS0+ZGF0YSwgYS0+ZGF0YSwgYS0+bGVuLCBiLT5kYXRhWzBdKTsKKyAgICB9CisgICAgZWxzZSBpZiAoYS0+bGVuIDwgMipNUERfTkVXVE9ORElWX0NVVE9GRiAmJgorICAgICAgICAgICAgIGItPmxlbiA8IE1QRF9ORVdUT05ESVZfQ1VUT0ZGKSB7CisgICAgICAgIGludCByZXQgPSBfbXBkX2Jhc2VkaXZtb2QocS0+ZGF0YSwgTlVMTCwgYS0+ZGF0YSwgYi0+ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLT5sZW4sIGItPmxlbik7CisgICAgICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocSwgTVBEX01hbGxvY19lcnJvciwgc3RhdHVzKTsKKyAgICAgICAgICAgIGdvdG8gZmluaXNoOworICAgICAgICB9CisgICAgICAgIHJlbSA9IHJldDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIE1QRF9ORVdfU1RBVElDKHIsMCwwLDAsMCk7CisgICAgICAgIF9tcGRfYmFzZV9uZGl2bW9kKHEsICZyLCBhLCBiLCBzdGF0dXMpOworICAgICAgICBpZiAobXBkX2lzc3BlY2lhbChxKSB8fCBtcGRfaXNzcGVjaWFsKCZyKSkgeworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwocSwgTVBEX1BPUywgTVBEX05BTik7CisgICAgICAgICAgICBtcGRfZGVsKCZyKTsKKyAgICAgICAgICAgIGdvdG8gZmluaXNoOworICAgICAgICB9CisgICAgICAgIHJlbSA9ICFtcGRfaXN6ZXJvY29lZmYoJnIpOworICAgICAgICBtcGRfZGVsKCZyKTsKKyAgICAgICAgbmV3c2l6ZSA9IHEtPmxlbjsKKyAgICB9CisKKyAgICBuZXdzaXplID0gX21wZF9yZWFsX3NpemUocS0+ZGF0YSwgbmV3c2l6ZSk7CisgICAgLyogcmVzaXplIHRvIHNtYWxsZXIgY2Fubm90IGZhaWwgKi8KKyAgICBtcGRfcXJlc2l6ZShxLCBuZXdzaXplLCBzdGF0dXMpOworICAgIG1wZF9zZXRfZmxhZ3MocSwgc2lnbl9hXnNpZ25fYik7CisgICAgcS0+bGVuID0gbmV3c2l6ZTsKKyAgICBtcGRfc2V0ZGlnaXRzKHEpOworCisgICAgc2hpZnQgPSBpZGVhbF9leHAgLSBleHA7CisgICAgaWYgKHJlbSkgeworICAgICAgICBsZCA9IG1wZF9sc2QocS0+ZGF0YVswXSk7CisgICAgICAgIGlmIChsZCA9PSAwIHx8IGxkID09IDUpIHsKKyAgICAgICAgICAgIHEtPmRhdGFbMF0gKz0gMTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIGlmIChhY3Rpb24gPT0gU0VUX0lERUFMX0VYUCAmJiBzaGlmdCA+IDApIHsKKyAgICAgICAgdHogPSBtcGRfdHJhaWxfemVyb3MocSk7CisgICAgICAgIHNoaWZ0ID0gKHR6ID4gc2hpZnQpID8gc2hpZnQgOiB0ejsKKyAgICAgICAgbXBkX3FzaGlmdHJfaW5wbGFjZShxLCBzaGlmdCk7CisgICAgICAgIGV4cCArPSBzaGlmdDsKKyAgICB9CisKKyAgICBxLT5leHAgPSBleHA7CisKKworZmluaXNoOgorICAgIG1wZF9kZWwoJmFsaWduZWQpOworICAgIG1wZF9xZmluYWxpemUocSwgY3R4LCBzdGF0dXMpOworfQorCisvKiBEaXZpZGUgYSBieSBiLiAqLwordm9pZAorbXBkX3FkaXYobXBkX3QgKnEsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwKKyAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBfbXBkX3FkaXYoU0VUX0lERUFMX0VYUCwgcSwgYSwgYiwgY3R4LCBzdGF0dXMpOworfQorCisvKiBJbnRlcm5hbCBmdW5jdGlvbi4gKi8KK3N0YXRpYyB2b2lkCitfbXBkX3FkaXZtb2QobXBkX3QgKnEsIG1wZF90ICpyLCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIE1QRF9ORVdfU1RBVElDKGFsaWduZWQsMCwwLDAsMCk7CisgICAgbXBkX3NzaXplX3QgcXNpemUsIHJzaXplOworICAgIG1wZF9zc2l6ZV90IGlkZWFsX2V4cCwgZXhwZGlmZiwgc2hpZnQ7CisgICAgdWludDhfdCBzaWduX2EgPSBtcGRfc2lnbihhKTsKKyAgICB1aW50OF90IHNpZ25fYWIgPSBtcGRfc2lnbihhKV5tcGRfc2lnbihiKTsKKworCisgICAgaWRlYWxfZXhwID0gKGEtPmV4cCA+IGItPmV4cCkgPyAgYi0+ZXhwIDogYS0+ZXhwOworICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYSkpIHsKKyAgICAgICAgaWYgKCFtcGRfcWNvcHkociwgYSwgc3RhdHVzKSkgeworICAgICAgICAgICAgZ290byBuYW5yZXN1bHQ7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICAgICAgfQorICAgICAgICByLT5leHAgPSBpZGVhbF9leHA7CisgICAgICAgIF9zZXR0cmlwbGUocSwgc2lnbl9hYiwgMCwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBleHBkaWZmID0gbXBkX2FkamV4cChhKSAtIG1wZF9hZGpleHAoYik7CisgICAgaWYgKGV4cGRpZmYgPCAwKSB7CisgICAgICAgIGlmIChhLT5leHAgPiBiLT5leHApIHsKKyAgICAgICAgICAgIC8qIHBvc2l0aXZlIGFuZCBsZXNzIHRoYW4gYi0+ZGlnaXRzIC0gYS0+ZGlnaXRzICovCisgICAgICAgICAgICBzaGlmdCA9IGEtPmV4cCAtIGItPmV4cDsKKyAgICAgICAgICAgIGlmICghbXBkX3FzaGlmdGwociwgYSwgc2hpZnQsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICBnb3RvIG5hbnJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHItPmV4cCA9IGlkZWFsX2V4cDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmICghbXBkX3Fjb3B5KHIsIGEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICBnb3RvIG5hbnJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBfc2V0dHJpcGxlKHEsIHNpZ25fYWIsIDAsIDApOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChleHBkaWZmID4gY3R4LT5wcmVjKSB7CisgICAgICAgICpzdGF0dXMgfD0gTVBEX0RpdmlzaW9uX2ltcG9zc2libGU7CisgICAgICAgIGdvdG8gbmFucmVzdWx0OworICAgIH0KKworCisgICAgLyoKKyAgICAgKiBBdCB0aGlzIHBvaW50IHdlIGhhdmU6CisgICAgICogICAoMSkgMCA8PSBhLT5leHAgKyBhLT5kaWdpdHMgLSBiLT5leHAgLSBiLT5kaWdpdHMgPD0gcHJlYworICAgICAqICAgKDIpIGEtPmV4cCAtIGItPmV4cCA+PSBiLT5kaWdpdHMgLSBhLT5kaWdpdHMKKyAgICAgKiAgICgzKSBhLT5leHAgLSBiLT5leHAgPD0gcHJlYyArIGItPmRpZ2l0cyAtIGEtPmRpZ2l0cworICAgICAqLworICAgIGlmIChhLT5leHAgIT0gYi0+ZXhwKSB7CisgICAgICAgIHNoaWZ0ID0gYS0+ZXhwIC0gYi0+ZXhwOworICAgICAgICBpZiAoc2hpZnQgPiAwKSB7CisgICAgICAgICAgICAvKiBieSAoMyksIGFmdGVyIHRoZSBzaGlmdCBhLT5kaWdpdHMgPD0gcHJlYyArIGItPmRpZ2l0cyAqLworICAgICAgICAgICAgaWYgKCFtcGRfcXNoaWZ0bCgmYWxpZ25lZCwgYSwgc2hpZnQsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICBnb3RvIG5hbnJlc3VsdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGEgPSAmYWxpZ25lZDsKKyAgICAgICAgfQorICAgICAgICBlbHNlICB7CisgICAgICAgICAgICBzaGlmdCA9IC1zaGlmdDsKKyAgICAgICAgICAgIC8qIGJ5ICgyKSwgYWZ0ZXIgdGhlIHNoaWZ0IGItPmRpZ2l0cyA8PSBhLT5kaWdpdHMgKi8KKyAgICAgICAgICAgIGlmICghbXBkX3FzaGlmdGwoJmFsaWduZWQsIGIsIHNoaWZ0LCBzdGF0dXMpKSB7CisgICAgICAgICAgICAgICAgZ290byBuYW5yZXN1bHQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBiID0gJmFsaWduZWQ7CisgICAgICAgIH0KKyAgICB9CisKKworICAgIHFzaXplID0gYS0+bGVuIC0gYi0+bGVuICsgMTsKKyAgICBpZiAoIShxID09IGEgJiYgcXNpemUgPCBhLT5sZW4pICYmICEocSA9PSBiICYmIHFzaXplIDwgYi0+bGVuKSkgeworICAgICAgICBpZiAoIW1wZF9xcmVzaXplKHEsIHFzaXplLCBzdGF0dXMpKSB7CisgICAgICAgICAgICBnb3RvIG5hbnJlc3VsdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJzaXplID0gYi0+bGVuOworICAgIGlmICghKHIgPT0gYSAmJiByc2l6ZSA8IGEtPmxlbikpIHsKKyAgICAgICAgaWYgKCFtcGRfcXJlc2l6ZShyLCByc2l6ZSwgc3RhdHVzKSkgeworICAgICAgICAgICAgZ290byBuYW5yZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoYi0+bGVuID09IDEpIHsKKyAgICAgICAgaWYgKGEtPmxlbiA9PSAxKSB7CisgICAgICAgICAgICBfbXBkX2Rpdl93b3JkKCZxLT5kYXRhWzBdLCAmci0+ZGF0YVswXSwgYS0+ZGF0YVswXSwgYi0+ZGF0YVswXSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByLT5kYXRhWzBdID0gX21wZF9zaG9ydGRpdihxLT5kYXRhLCBhLT5kYXRhLCBhLT5sZW4sIGItPmRhdGFbMF0pOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKGEtPmxlbiA8IDIqTVBEX05FV1RPTkRJVl9DVVRPRkYgJiYKKyAgICAgICAgICAgICBiLT5sZW4gPCBNUERfTkVXVE9ORElWX0NVVE9GRikgeworICAgICAgICBpbnQgcmV0OworICAgICAgICByZXQgPSBfbXBkX2Jhc2VkaXZtb2QocS0+ZGF0YSwgci0+ZGF0YSwgYS0+ZGF0YSwgYi0+ZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGEtPmxlbiwgYi0+bGVuKTsKKyAgICAgICAgaWYgKHJldCA9PSAtMSkgeworICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfTWFsbG9jX2Vycm9yOworICAgICAgICAgICAgZ290byBuYW5yZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIF9tcGRfYmFzZV9uZGl2bW9kKHEsIHIsIGEsIGIsIHN0YXR1cyk7CisgICAgICAgIGlmIChtcGRfaXNzcGVjaWFsKHEpIHx8IG1wZF9pc3NwZWNpYWwocikpIHsKKyAgICAgICAgICAgIGdvdG8gbmFucmVzdWx0OworICAgICAgICB9CisgICAgICAgIHFzaXplID0gcS0+bGVuOworICAgICAgICByc2l6ZSA9IHItPmxlbjsKKyAgICB9CisKKyAgICBxc2l6ZSA9IF9tcGRfcmVhbF9zaXplKHEtPmRhdGEsIHFzaXplKTsKKyAgICAvKiByZXNpemUgdG8gc21hbGxlciBjYW5ub3QgZmFpbCAqLworICAgIG1wZF9xcmVzaXplKHEsIHFzaXplLCBzdGF0dXMpOworICAgIHEtPmxlbiA9IHFzaXplOworICAgIG1wZF9zZXRkaWdpdHMocSk7CisgICAgbXBkX3NldF9mbGFncyhxLCBzaWduX2FiKTsKKyAgICBxLT5leHAgPSAwOworICAgIGlmIChxLT5kaWdpdHMgPiBjdHgtPnByZWMpIHsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfRGl2aXNpb25faW1wb3NzaWJsZTsKKyAgICAgICAgZ290byBuYW5yZXN1bHQ7CisgICAgfQorCisgICAgcnNpemUgPSBfbXBkX3JlYWxfc2l6ZShyLT5kYXRhLCByc2l6ZSk7CisgICAgLyogcmVzaXplIHRvIHNtYWxsZXIgY2Fubm90IGZhaWwgKi8KKyAgICBtcGRfcXJlc2l6ZShyLCByc2l6ZSwgc3RhdHVzKTsKKyAgICByLT5sZW4gPSByc2l6ZTsKKyAgICBtcGRfc2V0ZGlnaXRzKHIpOworICAgIG1wZF9zZXRfZmxhZ3Mociwgc2lnbl9hKTsKKyAgICByLT5leHAgPSBpZGVhbF9leHA7CisKK291dDoKKyAgICBtcGRfZGVsKCZhbGlnbmVkKTsKKyAgICByZXR1cm47CisKK25hbnJlc3VsdDoKKyAgICBtcGRfc2V0c3BlY2lhbChxLCBNUERfUE9TLCBNUERfTkFOKTsKKyAgICBtcGRfc2V0c3BlY2lhbChyLCBNUERfUE9TLCBNUERfTkFOKTsKKyAgICBnb3RvIG91dDsKK30KKworLyogSW50ZWdlciBkaXZpc2lvbiB3aXRoIHJlbWFpbmRlci4gKi8KK3ZvaWQKK21wZF9xZGl2bW9kKG1wZF90ICpxLCBtcGRfdCAqciwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIHVpbnQ4X3Qgc2lnbiA9IG1wZF9zaWduKGEpXm1wZF9zaWduKGIpOworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkgfHwgbXBkX2lzc3BlY2lhbChiKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW5zKHEsIGEsIGIsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgbXBkX3Fjb3B5KHIsIHEsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1wZF9pc2luZmluaXRlKGEpKSB7CisgICAgICAgICAgICBpZiAobXBkX2lzaW5maW5pdGUoYikpIHsKKyAgICAgICAgICAgICAgICBtcGRfc2V0c3BlY2lhbChxLCBNUERfUE9TLCBNUERfTkFOKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1wZF9zZXRzcGVjaWFsKHEsIHNpZ24sIE1QRF9JTkYpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwociwgTVBEX1BPUywgTVBEX05BTik7CisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9JbnZhbGlkX29wZXJhdGlvbjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobXBkX2lzaW5maW5pdGUoYikpIHsKKyAgICAgICAgICAgIGlmICghbXBkX3Fjb3B5KHIsIGEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocSwgTVBEX01hbGxvY19lcnJvciwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtcGRfcWZpbmFsaXplKHIsIGN0eCwgc3RhdHVzKTsKKyAgICAgICAgICAgIF9zZXR0cmlwbGUocSwgc2lnbiwgMCwgMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLyogZGVidWcgKi8KKyAgICAgICAgYWJvcnQoKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgIH0KKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGIpKSB7CisgICAgICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYSkpIHsKKyAgICAgICAgICAgIG1wZF9zZXRzcGVjaWFsKHEsIE1QRF9QT1MsIE1QRF9OQU4pOworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwociwgTVBEX1BPUywgTVBEX05BTik7CisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9EaXZpc2lvbl91bmRlZmluZWQ7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtcGRfc2V0c3BlY2lhbChxLCBzaWduLCBNUERfSU5GKTsKKyAgICAgICAgICAgIG1wZF9zZXRzcGVjaWFsKHIsIE1QRF9QT1MsIE1QRF9OQU4pOworICAgICAgICAgICAgKnN0YXR1cyB8PSAoTVBEX0RpdmlzaW9uX2J5X3plcm98TVBEX0ludmFsaWRfb3BlcmF0aW9uKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgX21wZF9xZGl2bW9kKHEsIHIsIGEsIGIsIGN0eCwgc3RhdHVzKTsKKyAgICBtcGRfcWZpbmFsaXplKHEsIGN0eCwgc3RhdHVzKTsKKyAgICBtcGRfcWZpbmFsaXplKHIsIGN0eCwgc3RhdHVzKTsKK30KKwordm9pZAorbXBkX3FkaXZpbnQobXBkX3QgKnEsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwKKyAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBNUERfTkVXX1NUQVRJQyhyLDAsMCwwLDApOworICAgIHVpbnQ4X3Qgc2lnbiA9IG1wZF9zaWduKGEpXm1wZF9zaWduKGIpOworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkgfHwgbXBkX2lzc3BlY2lhbChiKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW5zKHEsIGEsIGIsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChtcGRfaXNpbmZpbml0ZShhKSAmJiBtcGRfaXNpbmZpbml0ZShiKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHEsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobXBkX2lzaW5maW5pdGUoYSkpIHsKKyAgICAgICAgICAgIG1wZF9zZXRzcGVjaWFsKHEsIHNpZ24sIE1QRF9JTkYpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChtcGRfaXNpbmZpbml0ZShiKSkgeworICAgICAgICAgICAgX3NldHRyaXBsZShxLCBzaWduLCAwLCAwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAvKiBkZWJ1ZyAqLworICAgICAgICBhYm9ydCgpOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgfQorICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYikpIHsKKyAgICAgICAgaWYgKG1wZF9pc3plcm9jb2VmZihhKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHEsIE1QRF9EaXZpc2lvbl91bmRlZmluZWQsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtcGRfc2V0c3BlY2lhbChxLCBzaWduLCBNUERfSU5GKTsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX0RpdmlzaW9uX2J5X3plcm87CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworCisgICAgX21wZF9xZGl2bW9kKHEsICZyLCBhLCBiLCBjdHgsIHN0YXR1cyk7CisgICAgbXBkX2RlbCgmcik7CisgICAgbXBkX3FmaW5hbGl6ZShxLCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qIERpdmlkZSBkZWNpbWFsIGJ5IG1wZF9zc2l6ZV90LiAqLwordm9pZAorbXBkX3FkaXZfc3NpemUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9zc2l6ZV90IGIsCisgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX2NvbnRleHRfdCBtYXhjb250ZXh0OworICAgIE1QRF9ORVdfU1RBVElDKGJiLDAsMCwwLDApOworCisgICAgbXBkX21heGNvbnRleHQoJm1heGNvbnRleHQpOworICAgIG1wZF9xc3NldF9zc2l6ZSgmYmIsIGIsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgIG1wZF9xZGl2KHJlc3VsdCwgYSwgJmJiLCBjdHgsIHN0YXR1cyk7CisgICAgbXBkX2RlbCgmYmIpOworfQorCisvKiBEaXZpZGUgZGVjaW1hbCBieSBtcGRfdWludF90LiAqLwordm9pZAorbXBkX3FkaXZfdWludChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3VpbnRfdCBiLAorICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX2NvbnRleHRfdCBtYXhjb250ZXh0OworICAgIE1QRF9ORVdfU1RBVElDKGJiLDAsMCwwLDApOworCisgICAgbXBkX21heGNvbnRleHQoJm1heGNvbnRleHQpOworICAgIG1wZF9xc3NldF91aW50KCZiYiwgYiwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgbXBkX3FkaXYocmVzdWx0LCBhLCAmYmIsIGN0eCwgc3RhdHVzKTsKKyAgICBtcGRfZGVsKCZiYik7Cit9CisKKy8qIERpdmlkZSBkZWNpbWFsIGJ5IGludDMyX3QuICovCit2b2lkCittcGRfcWRpdl9pMzIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDMyX3QgYiwKKyAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3FkaXZfc3NpemUocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qIERpdmlkZSBkZWNpbWFsIGJ5IHVpbnQzMl90LiAqLwordm9pZAorbXBkX3FkaXZfdTMyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50MzJfdCBiLAorICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfcWRpdl91aW50KHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpOworfQorCisjaWZkZWYgQ09ORklHXzY0CisvKiBEaXZpZGUgZGVjaW1hbCBieSBpbnQ2NF90LiAqLwordm9pZAorbXBkX3FkaXZfaTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBpbnQ2NF90IGIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9xZGl2X3NzaXplKHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpOworfQorCisvKiBEaXZpZGUgZGVjaW1hbCBieSB1aW50NjRfdC4gKi8KK3ZvaWQKK21wZF9xZGl2X3U2NChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgdWludDY0X3QgYiwKKyAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3FkaXZfdWludChyZXN1bHQsIGEsIGIsIGN0eCwgc3RhdHVzKTsKK30KKyNlbmRpZgorCisvKiBQYWQgdGhlIHJlc3VsdCB3aXRoIHRyYWlsaW5nIHplcm9zIGlmIGl0IGhhcyBmZXdlciBkaWdpdHMgdGhhbiBwcmVjLiAqLworc3RhdGljIHZvaWQKK19tcGRfemVyb3BhZChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKCFtcGRfaXNzcGVjaWFsKHJlc3VsdCkgJiYgIW1wZF9pc3plcm8ocmVzdWx0KSAmJgorICAgICAgICByZXN1bHQtPmRpZ2l0cyA8IGN0eC0+cHJlYykgeworICAgICAgIG1wZF9zc2l6ZV90IHNoaWZ0ID0gY3R4LT5wcmVjIC0gcmVzdWx0LT5kaWdpdHM7CisgICAgICAgbXBkX3FzaGlmdGwocmVzdWx0LCByZXN1bHQsIHNoaWZ0LCBzdGF0dXMpOworICAgICAgIHJlc3VsdC0+ZXhwIC09IHNoaWZ0OworICAgIH0KK30KKworLyogQ2hlY2sgaWYgdGhlIHJlc3VsdCBpcyBndWFyYW50ZWVkIHRvIGJlIG9uZS4gKi8KK3N0YXRpYyBpbnQKK19tcGRfcWV4cF9jaGVja19vbmUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBNUERfTkVXX0NPTlNUKGxpbSwwLC0oY3R4LT5wcmVjKzEpLDEsMSwxLDkpOworICAgIE1QRF9ORVdfU0hBUkVEKGFhLCBhKTsKKworICAgIG1wZF9zZXRfcG9zaXRpdmUoJmFhKTsKKworICAgIC8qIGFicyhhKSA8PSA5ICogMTAqKigtcHJlYy0xKSAqLworICAgIGlmIChfbXBkX2NtcCgmYWEsICZsaW0pIDw9IDApIHsKKyAgICAgICAgX3NldHRyaXBsZShyZXN1bHQsIDAsIDEsIDApOworICAgICAgICAqc3RhdHVzIHw9IE1QRF9Sb3VuZGVkfE1QRF9JbmV4YWN0OworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsKK30KKworLyoKKyAqIEdldCB0aGUgbnVtYmVyIG9mIGl0ZXJhdGlvbnMgZm9yIHRoZSBIb3JuZXIgc2NoZW1lIGluIF9tcGRfcWV4cCgpLgorICovCitzdGF0aWMgaW5saW5lIG1wZF9zc2l6ZV90CitfbXBkX2dldF9leHBfaXRlcmF0aW9ucyhjb25zdCBtcGRfdCAqciwgbXBkX3NzaXplX3QgcCkKK3sKKyAgICBtcGRfc3NpemVfdCBsb2cxMHBieXI7IC8qIGxvd2VyIGJvdW5kIGZvciBsb2cxMChwIC8gYWJzKHIpKSAqLworICAgIG1wZF9zc2l6ZV90IG47CisKKyAgICBhc3NlcnQocCA+PSAxMCk7CisgICAgYXNzZXJ0KCFtcGRfaXN6ZXJvKHIpKTsKKyAgICBhc3NlcnQoLXAgPCBtcGRfYWRqZXhwKHIpICYmIG1wZF9hZGpleHAocikgPD0gLTEpOworCisjaWZkZWYgQ09ORklHXzY0CisgICAgaWYgKHAgPiAobXBkX3NzaXplX3QpKDFVTEw8PDUyKSkgeworICAgICAgICByZXR1cm4gTVBEX1NTSVpFX01BWDsKKyAgICB9CisjZW5kaWYKKworICAgIC8qCisgICAgICogTG93ZXIgYm91bmQgZm9yIGxvZzEwKHAgLyBhYnMocikpOiBhZGpleHAocCkgLSAoYWRqZXhwKHIpICsgMSkKKyAgICAgKiBBdCB0aGlzIHBvaW50IChmb3IgQ09ORklHXzY0LCBDT05GSUdfMzIgaXMgbm90IHByb2JsZW1hdGljKToKKyAgICAgKiAgICAxKSAxMCA8PSBwIDw9IDIqKjUyCisgICAgICogICAgMikgLXAgPCBhZGpleHAocikgPD0gLTEKKyAgICAgKiAgICAzKSAxIDw9IGxvZzEwcGJ5ciA8PSAyKio1MiArIDE0CisgICAgICovCisgICAgbG9nMTBwYnlyID0gKG1wZF93b3JkX2RpZ2l0cyhwKS0xKSAtIChtcGRfYWRqZXhwKHIpKzEpOworCisgICAgLyoKKyAgICAgKiBUaGUgbnVtZXJhdG9yIGluIHRoZSBwYXBlciBpcyAxLjQzNSAqIHAgLSAxLjE4MiwgY2FsY3VsYXRlZAorICAgICAqIGV4YWN0bHkuIFdlIGNvbXBlbnNhdGUgZm9yIHJvdW5kaW5nIGVycm9ycyBieSB1c2luZyAxLjQzNTAzLgorICAgICAqIEFDTDIgcHJvb2ZzOgorICAgICAqICAgIDEpIGV4cC1pdGVyLWFwcHJveC1sb3dlci1ib3VuZDogVGhlIHRlcm0gYmVsb3cgZXZhbHVhdGVkCisgICAgICogICAgICAgaW4gNTMtYml0IGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMgaXMgZ3JlYXRlciB0aGFuIG9yCisgICAgICogICAgICAgZXF1YWwgdG8gdGhlIGV4YWN0IHRlcm0gdXNlZCBpbiB0aGUgcGFwZXIuCisgICAgICogICAgMikgZXhwLWl0ZXItYXBwcm94LXVwcGVyLWJvdW5kOiBUaGUgdGVybSBiZWxvdyBpcyBsZXNzIHRoYW4KKyAgICAgKiAgICAgICBvciBlcXVhbCB0byAzLzIgKiBwIDw9IDMvMiAqIDIqKjUyLgorICAgICAqLworICAgIG4gPSAobXBkX3NzaXplX3QpY2VpbCgoMS40MzUwMyooZG91YmxlKXAgLSAxLjE4MikgLyAoZG91YmxlKWxvZzEwcGJ5cik7CisgICAgcmV0dXJuIG4gPj0gMyA/IG4gOiAzOworfQorCisvKgorICogSW50ZXJuYWwgZnVuY3Rpb24sIHNwZWNpYWxzIGhhdmUgYmVlbiBkZWFsdCB3aXRoLiBBcGFydCBmcm9tIE92ZXJmbG93CisgKiBhbmQgVW5kZXJmbG93LCB0d28gY2FzZXMgbXVzdCBiZSBjb25zaWRlcmVkIGZvciB0aGUgZXJyb3Igb2YgdGhlIHJlc3VsdDoKKyAqCisgKiAgIDEpIGFicyhhKSA8PSA5ICogMTAqKigtcHJlYy0xKSAgPT0+ICByZXN1bHQgPT0gMQorICoKKyAqICAgICAgQWJzb2x1dGUgZXJyb3I6IGFicygxIC0gZSoqeCkgPCAxMCoqKC1wcmVjKQorICogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogICAyKSBhYnMoYSkgPiA5ICogMTAqKigtcHJlYy0xKQorICoKKyAqICAgICAgUmVsYXRpdmUgZXJyb3I6IGFicyhyZXN1bHQgLSBlKip4KSA8IDAuNSAqIDEwKiooLXByZWMpICogZSoqeAorICogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogVGhlIGFsZ29yaXRobSBpcyBmcm9tIEh1bGwmQWJyaGFtLCBWYXJpYWJsZSBQcmVjaXNpb24gRXhwb25lbnRpYWwgRnVuY3Rpb24sCisgKiBBQ00gVHJhbnNhY3Rpb25zIG9uIE1hdGhlbWF0aWNhbCBTb2Z0d2FyZSwgVm9sLiAxMiwgTm8uIDIsIEp1bmUgMTk4Ni4KKyAqCisgKiBNYWluIGRpZmZlcmVuY2VzOgorICoKKyAqICAtIFRoZSBudW1iZXIgb2YgaXRlcmF0aW9ucyBmb3IgdGhlIEhvcm5lciBzY2hlbWUgaXMgY2FsY3VsYXRlZCB1c2luZworICogICAgNTMtYml0IGZsb2F0aW5nIHBvaW50IGFyaXRobWV0aWMuCisgKgorICogIC0gSW4gdGhlIGVycm9yIGFuYWx5c2lzIGZvciBFUiAocmVsYXRpdmUgZXJyb3IgYWNjdW11bGF0ZWQgaW4gdGhlCisgKiAgICBldmFsdWF0aW9uIG9mIHRoZSB0cnVuY2F0ZWQgc2VyaWVzKSB0aGUgcmVkdWNlZCBvcGVyYW5kIHIgbWF5CisgKiAgICBoYXZlIGFueSBudW1iZXIgb2YgZGlnaXRzLgorICogICAgQUNMMiBwcm9vZjogZXhwb25lbnQtcmVsYXRpdmUtZXJyb3IKKyAqCisgKiAgLSBUaGUgYW5hbHlzaXMgZm9yIGVhcmx5IGFib3J0aW9uIGhhcyBiZWVuIGFkYXB0ZWQgZm9yIHRoZSBtcGRfdAorICogICAgcmFuZ2VzLgorICovCitzdGF0aWMgdm9pZAorX21wZF9xZXhwKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IHdvcmtjdHg7CisgICAgTVBEX05FV19TVEFUSUModG1wLDAsMCwwLDApOworICAgIE1QRF9ORVdfU1RBVElDKHN1bSwwLDAsMCwwKTsKKyAgICBNUERfTkVXX0NPTlNUKHdvcmQsMCwwLDEsMSwxLDEpOworICAgIG1wZF9zc2l6ZV90IGosIG4sIHQ7CisKKyAgICBhc3NlcnQoIW1wZF9pc3NwZWNpYWwoYSkpOworCisgICAgaWYgKG1wZF9pc3plcm9jb2VmZihhKSkgeworICAgICAgICBfc2V0dHJpcGxlKHJlc3VsdCwgTVBEX1BPUywgMSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKgorICAgICAqIFdlIGFyZSBjYWxjdWxhdGluZyBlXnggPSBlXihyKjEwXnQpID0gKGVecileKDEwXnQpLCB3aGVyZSBhYnMocikgPCAxIGFuZCB0ID49IDAuCisgICAgICoKKyAgICAgKiBJZiB0ID4gMCwgd2UgaGF2ZToKKyAgICAgKgorICAgICAqICAgKDEpIDAuMSA8PSByIDwgMSwgc28gZV4wLjEgPD0gZV5yLiBJZiB0ID4gTUFYX1QsIG92ZXJmbG93IG9jY3VyczoKKyAgICAgKgorICAgICAqICAgICBNQVgtRU1BWCsxIDwgbG9nMTAoZV4oMC4xKjEwKnQpKSA8PSBsb2cxMChlXihyKjEwXnQpKSA8IGFkamV4cChlXihyKjEwXnQpKSsxCisgICAgICoKKyAgICAgKiAgICgyKSAtMSA8IHIgPD0gLTAuMSwgc28gZV5yIDw9IGVeLTAuMS4gSWYgdCA+IE1BWF9ULCB1bmRlcmZsb3cgb2NjdXJzOgorICAgICAqCisgICAgICogICAgIGFkamV4cChlXihyKjEwXnQpKSA8PSBsb2cxMChlXihyKjEwXnQpKSA8PSBsb2cxMChlXigtMC4xKjEwXnQpKSA8IE1JTi1FVElOWQorICAgICAqLworI2lmIGRlZmluZWQoQ09ORklHXzY0KQorICAgICNkZWZpbmUgTVBEX0VYUF9NQVhfVCAxOQorI2VsaWYgZGVmaW5lZChDT05GSUdfMzIpCisgICAgI2RlZmluZSBNUERfRVhQX01BWF9UIDEwCisjZW5kaWYKKyAgICB0ID0gYS0+ZGlnaXRzICsgYS0+ZXhwOworICAgIHQgPSAodCA+IDApID8gdCA6IDA7CisgICAgaWYgKHQgPiBNUERfRVhQX01BWF9UKSB7CisgICAgICAgIGlmIChtcGRfaXNwb3NpdGl2ZShhKSkgeworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCBNUERfUE9TLCBNUERfSU5GKTsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX092ZXJmbG93fE1QRF9JbmV4YWN0fE1QRF9Sb3VuZGVkOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgX3NldHRyaXBsZShyZXN1bHQsIE1QRF9QT1MsIDAsIG1wZF9ldGlueShjdHgpKTsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gKE1QRF9JbmV4YWN0fE1QRF9Sb3VuZGVkfE1QRF9TdWJub3JtYWx8CisgICAgICAgICAgICAgICAgICAgICAgICBNUERfVW5kZXJmbG93fE1QRF9DbGFtcGVkKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLyogYWJzKGEpIDw9IDkgKiAxMCoqKC1wcmVjLTEpICovCisgICAgaWYgKF9tcGRfcWV4cF9jaGVja19vbmUocmVzdWx0LCBhLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1wZF9tYXhjb250ZXh0KCZ3b3JrY3R4KTsKKyAgICB3b3JrY3R4LnByZWMgPSBjdHgtPnByZWMgKyB0ICsgMjsKKyAgICB3b3JrY3R4LnByZWMgPSAod29ya2N0eC5wcmVjIDwgMTApID8gMTAgOiB3b3JrY3R4LnByZWM7CisgICAgd29ya2N0eC5yb3VuZCA9IE1QRF9ST1VORF9IQUxGX0VWRU47CisKKyAgICBpZiAoIW1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICByZXN1bHQtPmV4cCAtPSB0OworCisgICAgLyoKKyAgICAgKiBBdCB0aGlzIHBvaW50OgorICAgICAqICAgIDEpIDkgKiAxMCoqKC1wcmVjLTEpIDwgYWJzKGEpCisgICAgICogICAgMikgOSAqIDEwKiooLXByZWMtdC0xKSA8IGFicyhyKQorICAgICAqICAgIDMpIGxvZzEwKDkpIC0gcHJlYyAtIHQgLSAxIDwgbG9nMTAoYWJzKHIpKSA8IGFkamV4cChhYnMocikpICsgMQorICAgICAqICAgIDQpIC0gcHJlYyAtIHQgLSAyIDwgYWRqZXhwKGFicyhyKSkgPD0gLTEKKyAgICAgKi8KKyAgICBuID0gX21wZF9nZXRfZXhwX2l0ZXJhdGlvbnMocmVzdWx0LCB3b3JrY3R4LnByZWMpOworICAgIGlmIChuID09IE1QRF9TU0laRV9NQVgpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgICAgIHJldHVybjsgLyogR0NPVl9VTkxJS0VMWSAqLworICAgIH0KKworICAgIF9zZXR0cmlwbGUoJnN1bSwgTVBEX1BPUywgMSwgMCk7CisKKyAgICBmb3IgKGogPSBuLTE7IGogPj0gMTsgai0tKSB7CisgICAgICAgIHdvcmQuZGF0YVswXSA9IGo7CisgICAgICAgIG1wZF9zZXRkaWdpdHMoJndvcmQpOworICAgICAgICBtcGRfcWRpdigmdG1wLCByZXN1bHQsICZ3b3JkLCAmd29ya2N0eCwgJndvcmtjdHguc3RhdHVzKTsKKyAgICAgICAgbXBkX3FmbWEoJnN1bSwgJnN1bSwgJnRtcCwgJm9uZSwgJndvcmtjdHgsICZ3b3JrY3R4LnN0YXR1cyk7CisgICAgfQorCisjaWZkZWYgQ09ORklHXzY0CisgICAgX21wZF9xcG93X3VpbnQocmVzdWx0LCAmc3VtLCBtcGRfcG93MTBbdF0sIE1QRF9QT1MsICZ3b3JrY3R4LCBzdGF0dXMpOworI2Vsc2UKKyAgICBpZiAodCA8PSBNUERfTUFYX1BPVzEwKSB7CisgICAgICAgIF9tcGRfcXBvd191aW50KHJlc3VsdCwgJnN1bSwgbXBkX3BvdzEwW3RdLCBNUERfUE9TLCAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHQgLT0gTVBEX01BWF9QT1cxMDsKKyAgICAgICAgX21wZF9xcG93X3VpbnQoJnRtcCwgJnN1bSwgbXBkX3BvdzEwW01QRF9NQVhfUE9XMTBdLCBNUERfUE9TLAorICAgICAgICAgICAgICAgICAgICAgICAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICAgICAgX21wZF9xcG93X3VpbnQocmVzdWx0LCAmdG1wLCBtcGRfcG93MTBbdF0sIE1QRF9QT1MsICZ3b3JrY3R4LCBzdGF0dXMpOworICAgIH0KKyNlbmRpZgorCisgICAgbXBkX2RlbCgmdG1wKTsKKyAgICBtcGRfZGVsKCZzdW0pOworICAgICpzdGF0dXMgfD0gKHdvcmtjdHguc3RhdHVzJk1QRF9FcnJvcnMpOworICAgICpzdGF0dXMgfD0gKE1QRF9JbmV4YWN0fE1QRF9Sb3VuZGVkKTsKK30KKworLyogZXhwKGEpICovCit2b2lkCittcGRfcWV4cChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IHdvcmtjdHg7CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW4ocmVzdWx0LCBhLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobXBkX2lzbmVnYXRpdmUoYSkpIHsKKyAgICAgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCBNUERfUE9TLCAwLCAwKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1wZF9zZXRzcGVjaWFsKHJlc3VsdCwgTVBEX1BPUywgTVBEX0lORik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGEpKSB7CisgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCBNUERfUE9TLCAxLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHdvcmtjdHggPSAqY3R4OworICAgIHdvcmtjdHgucm91bmQgPSBNUERfUk9VTkRfSEFMRl9FVkVOOworCisgICAgaWYgKGN0eC0+YWxsY3IpIHsKKyAgICAgICAgTVBEX05FV19TVEFUSUModDEsIDAsMCwwLDApOworICAgICAgICBNUERfTkVXX1NUQVRJQyh0MiwgMCwwLDAsMCk7CisgICAgICAgIE1QRF9ORVdfU1RBVElDKHVscCwgMCwwLDAsMCk7CisgICAgICAgIE1QRF9ORVdfU1RBVElDKGFhLCAwLDAsMCwwKTsKKyAgICAgICAgbXBkX3NzaXplX3QgcHJlYzsKKyAgICAgICAgbXBkX3NzaXplX3QgdWxwZXhwOworICAgICAgICB1aW50MzJfdCB3b3Jrc3RhdHVzOworCisgICAgICAgIGlmIChyZXN1bHQgPT0gYSkgeworICAgICAgICAgICAgaWYgKCFtcGRfcWNvcHkoJmFhLCBhLCBzdGF0dXMpKSB7CisgICAgICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX01hbGxvY19lcnJvciwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhID0gJmFhOworICAgICAgICB9CisKKyAgICAgICAgd29ya2N0eC5jbGFtcCA9IDA7CisgICAgICAgIHByZWMgPSBjdHgtPnByZWMgKyAzOworICAgICAgICB3aGlsZSAoMSkgeworICAgICAgICAgICAgd29ya2N0eC5wcmVjID0gcHJlYzsKKyAgICAgICAgICAgIHdvcmtzdGF0dXMgPSAwOworCisgICAgICAgICAgICBfbXBkX3FleHAocmVzdWx0LCBhLCAmd29ya2N0eCwgJndvcmtzdGF0dXMpOworICAgICAgICAgICAgKnN0YXR1cyB8PSB3b3Jrc3RhdHVzOworCisgICAgICAgICAgICB1bHBleHAgPSByZXN1bHQtPmV4cCArIHJlc3VsdC0+ZGlnaXRzIC0gd29ya2N0eC5wcmVjOworICAgICAgICAgICAgaWYgKHdvcmtzdGF0dXMgJiBNUERfVW5kZXJmbG93KSB7CisgICAgICAgICAgICAgICAgLyogVGhlIGVmZmVjdGl2ZSB3b3JrIHByZWNpc2lvbiBpcyByZXN1bHQtPmRpZ2l0cy4gKi8KKyAgICAgICAgICAgICAgICB1bHBleHAgPSByZXN1bHQtPmV4cDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF9zc2V0dHJpcGxlKCZ1bHAsIE1QRF9QT1MsIDEsIHVscGV4cCk7CisKKyAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgKiBBdCB0aGlzIHBvaW50IFsxXToKKyAgICAgICAgICAgICAqICAgMSkgYWJzKHJlc3VsdCAtIGUqKngpIDwgMC41ICogMTAqKigtcHJlYykgKiBlKip4CisgICAgICAgICAgICAgKiAgIDIpIHJlc3VsdCAtIHVscCA8IGUqKnggPCByZXN1bHQgKyB1bHAKKyAgICAgICAgICAgICAqICAgMykgcmVzdWx0IC0gdWxwIDwgcmVzdWx0IDwgcmVzdWx0ICsgdWxwCisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogSWYgcm91bmQocmVzdWx0LXVscCk9PXJvdW5kKHJlc3VsdCt1bHApLCB0aGVuCisgICAgICAgICAgICAgKiByb3VuZChyZXN1bHQpPT1yb3VuZChlKip4KS4gVGhlcmVmb3JlIHRoZSByZXN1bHQKKyAgICAgICAgICAgICAqIGlzIGNvcnJlY3RseSByb3VuZGVkLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFsxXSBJZiBhYnMoYSkgPD0gOSAqIDEwKiooLXByZWMtMSksIHVzZSB0aGUgYWJzb2x1dGUKKyAgICAgICAgICAgICAqICAgICBlcnJvciBmb3IgYSBzaW1pbGFyIGFyZ3VtZW50LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICB3b3JrY3R4LnByZWMgPSBjdHgtPnByZWM7CisgICAgICAgICAgICBtcGRfcWFkZCgmdDEsIHJlc3VsdCwgJnVscCwgJndvcmtjdHgsICZ3b3JrY3R4LnN0YXR1cyk7CisgICAgICAgICAgICBtcGRfcXN1YigmdDIsIHJlc3VsdCwgJnVscCwgJndvcmtjdHgsICZ3b3JrY3R4LnN0YXR1cyk7CisgICAgICAgICAgICBpZiAobXBkX2lzc3BlY2lhbChyZXN1bHQpIHx8IG1wZF9pc3plcm9jb2VmZihyZXN1bHQpIHx8CisgICAgICAgICAgICAgICAgbXBkX3FjbXAoJnQxLCAmdDIsIHN0YXR1cykgPT0gMCkgeworICAgICAgICAgICAgICAgIHdvcmtjdHguY2xhbXAgPSBjdHgtPmNsYW1wOworICAgICAgICAgICAgICAgIF9tcGRfemVyb3BhZChyZXN1bHQsICZ3b3JrY3R4LCBzdGF0dXMpOworICAgICAgICAgICAgICAgIG1wZF9jaGVja191bmRlcmZsb3cocmVzdWx0LCAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgJndvcmtjdHgsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmVjICs9IE1QRF9SRElHSVRTOworICAgICAgICB9CisgICAgICAgIG1wZF9kZWwoJnQxKTsKKyAgICAgICAgbXBkX2RlbCgmdDIpOworICAgICAgICBtcGRfZGVsKCZ1bHApOworICAgICAgICBtcGRfZGVsKCZhYSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBfbXBkX3FleHAocmVzdWx0LCBhLCAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICAgICAgX21wZF96ZXJvcGFkKHJlc3VsdCwgJndvcmtjdHgsIHN0YXR1cyk7CisgICAgICAgIG1wZF9jaGVja191bmRlcmZsb3cocmVzdWx0LCAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICAgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsICZ3b3JrY3R4LCBzdGF0dXMpOworICAgIH0KK30KKworLyogRnVzZWQgbXVsdGlwbHktYWRkOiAoYSAqIGIpICsgYywgd2l0aCBhIHNpbmdsZSBmaW5hbCByb3VuZGluZy4gKi8KK3ZvaWQKK21wZF9xZm1hKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX3QgKmMsCisgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgdWludDMyX3Qgd29ya3N0YXR1cyA9IDA7CisgICAgbXBkX3QgKmNjID0gKG1wZF90ICopYzsKKworICAgIGlmIChyZXN1bHQgPT0gYykgeworICAgICAgICBpZiAoKGNjID0gbXBkX3FuY29weShjKSkgPT0gTlVMTCkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX01hbGxvY19lcnJvciwgc3RhdHVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIF9tcGRfcW11bChyZXN1bHQsIGEsIGIsIGN0eCwgJndvcmtzdGF0dXMpOworICAgIGlmICghKHdvcmtzdGF0dXMmTVBEX0ludmFsaWRfb3BlcmF0aW9uKSkgeworICAgICAgICBtcGRfcWFkZChyZXN1bHQsIHJlc3VsdCwgY2MsIGN0eCwgJndvcmtzdGF0dXMpOworICAgIH0KKworICAgIGlmIChjYyAhPSBjKSBtcGRfZGVsKGNjKTsKKyAgICAqc3RhdHVzIHw9IHdvcmtzdGF0dXM7Cit9CisKKy8qCisgKiBTY2hlZHVsZSB0aGUgb3B0aW1hbCBwcmVjaXNpb24gaW5jcmVhc2UgZm9yIHRoZSBOZXd0b24gaXRlcmF0aW9uLgorICogICB2IDo9IGlucHV0IG9wZXJhbmQKKyAqICAgel8wIDo9IGluaXRpYWwgYXBwcm94aW1hdGlvbgorICogICBpbml0cHJlYyA6PSBuYXR1cmFsIG51bWJlciBzdWNoIHRoYXQgYWJzKGxvZyh2KSAtIHpfMCkgPCAxMCoqLWluaXRwcmVjCisgKiAgIG1heHByZWMgOj0gdGFyZ2V0IHByZWNpc2lvbgorICoKKyAqIEZvciBjb252ZW5pZW5jZSB0aGUgb3V0cHV0IGtsaXN0IGNvbnRhaW5zIHRoZSBlbGVtZW50cyBpbiByZXZlcnNlIG9yZGVyOgorICogICBrbGlzdCA6PSBba19uLTEsIC4uLiwga18wXSwgd2hlcmUKKyAqICAgICAxKSBrXzAgPD0gaW5pdHByZWMgYW5kCisgKiAgICAgMikgYWJzKGxvZyh2KSAtIHJlc3VsdCkgPCAxMCoqKC0yKmtfbi0xICsgMSkgPD0gMTAqKi1tYXhwcmVjLgorICovCitzdGF0aWMgaW5saW5lIGludAorbG5fc2NoZWR1bGVfcHJlYyhtcGRfc3NpemVfdCBrbGlzdFtNUERfTUFYX1BSRUNfTE9HMl0sIG1wZF9zc2l6ZV90IG1heHByZWMsCisgICAgICAgICAgICAgICAgIG1wZF9zc2l6ZV90IGluaXRwcmVjKQoreworICAgIG1wZF9zc2l6ZV90IGs7CisgICAgaW50IGk7CisKKyAgICBhc3NlcnQobWF4cHJlYyA+PSAyICYmIGluaXRwcmVjID49IDIpOworICAgIGlmIChtYXhwcmVjIDw9IGluaXRwcmVjKSByZXR1cm4gLTE7CisKKyAgICBpID0gMDsgayA9IG1heHByZWM7CisgICAgZG8geworICAgICAgICBrID0gKGsrMikgLyAyOworICAgICAgICBrbGlzdFtpKytdID0gazsKKyAgICB9IHdoaWxlIChrID4gaW5pdHByZWMpOworCisgICAgcmV0dXJuIGktMTsKK30KKworLyogVGhlIGNvbnN0YW50cyBoYXZlIGJlZW4gdmVyaWZpZWQgd2l0aCBib3RoIGRlY2ltYWwucHkgYW5kIG1wZnIuICovCisjaWZkZWYgQ09ORklHXzY0CisjaWYgTVBEX1JESUdJVFMgIT0gMTkKKyAgI2Vycm9yICJtcGRlY2ltYWwuYzogTVBEX1JESUdJVFMgbXVzdCBiZSAxOS4iCisjZW5kaWYKK3N0YXRpYyBjb25zdCBtcGRfdWludF90IG1wZF9sbjEwX2RhdGFbTVBEX01JTkFMTE9DX01BWF0gPSB7CisgIDY5ODM3MTYzMjg5ODIxNzQ0MDdVTEwsIDkwODk3MDQyODE5NzYzMzY1ODNVTEwsIDE1MTU5NjExMzU2NDg0NjU0NjFVTEwsCisgIDQ0MTY4MTYzMzU3Mjc1NTU3MDNVTEwsIDI5MDA5ODgwMzkxOTQxNzAyNjVVTEwsIDIzMDc5MjUwMzc0NzI5ODY1MDlVTEwsCisgICAxMDc1OTg0MzgzMTkxOTEyOTJVTEwsIDM0NjY2MjQxMDcxODQ2NjkyMzFVTEwsIDQ0NTAwOTk3ODEzMTE0NjkxNTlVTEwsCisgIDk4MDc4MjgwNTk3NTExOTM4NTRVTEwsIDc3MTM0NTY4NjIwOTE2NzA1ODRVTEwsIDE0OTIxOTg4NDk5Nzg3NDg4NzNVTEwsCisgIDY1Mjg3Mjg2OTY1MTEwODYyNTdVTEwsIDIzODUzOTIwNTE0NDYzNDE5NzJVTEwsIDg2OTIxODAyMDUxODkzMzk1MDdVTEwsCisgIDY1MTg3Njk3NTEwMzc0OTcwODhVTEwsIDIzNzUyNTM1NzcwOTc1MDUzOTVVTEwsIDkwOTU2MTAyOTkyOTE4MjQzMThVTEwsCisgICA5ODI3NDgyMzg1MDQ1NjQ4MDFVTEwsIDU0Mzg2MzU5MTc3ODExNzA1NDNVTEwsIDc1NDczMzE1NDE0MjE4MDg0MjdVTEwsCisgICA3NTIzNzEwMzMzMTAxMTk3ODVVTEwsIDMxNzE2NDMwOTUwNTk5NTA4NzhVTEwsIDk3ODUyNjUzODMyMDc2MDY3MjZVTEwsCisgIDI5MzIyNTgyNzk4NTAyNTg1NTBVTEwsIDU0OTczNDc3MjY2MjQyNTcwOTRVTEwsIDI5NzY5Nzk1MjIxMTA3MTgyNjRVTEwsCisgIDkyMjE0Nzc2NTY3NjM2OTM4NjZVTEwsIDE5Nzk2NTAwNDcxNDk1MTA1MDRVTEwsIDY2NzQxODM0ODU3MDQ0MjI1MDdVTEwsCisgIDk3MDI3NjY4NjA1OTUyNDk2NzFVTEwsIDkyNzgwOTY3NjI3MTI3NTc3NTNVTEwsIDkzMTQ4NDg1MjQ5NDg2NDQ4NzFVTEwsCisgIDY4MjY5MjgyODA4NDgxMTg0MjhVTEwsICA3NTQ0MDM3MDg0NzQ2OTk0MDFVTEwsICAyMzAxMDU3MDMwODk2MzQ1NzJVTEwsCisgIDE5MjkyMDMzMzc2NTg3MTQxNjZVTEwsIDc1ODk0MDI1Njc3NjMxMTM1NjlVTEwsIDQyMDgyNDEzMTQ2OTU2ODkwMTZVTEwsCisgIDI5MjI0NTU0NDA1NzU4OTI1NzJVTEwsIDkzNTY3MzQyMDY3MDU4MTEzNjRVTEwsIDI2ODQ5MTY3NDY1NTA1ODY4NTZVTEwsCisgICA2NDQ1MDcwNjQ4MDAwMjc3NTBVTEwsIDk0NzY4MzQ2MzYxNjc5MjEwMThVTEwsIDU2NTkxMjEzNzM0NTA3NDc4NTZVTEwsCisgIDI4MzU1MjIwMTE0ODA0NjYzNzFVTEwsIDY0NzA4MDY4NTU2Nzc0MzIxNjJVTEwsIDcxNDE3NDgwMDM2ODgwODQwMTJVTEwsCisgIDk2MTk0MDQ0MDAyMjIxMDUxMDFVTEwsIDU1MDQ4OTM0MzE0OTM5MzkxNDdVTEwsIDY2NzQ3NDQwNDI0MzI3NDM2NTFVTEwsCisgIDIyODc2OTgyMTk4ODY3NDY1NDNVTEwsIDc3NzMyNjI4ODQ2MTYzMzY2MjJVTEwsIDE5ODUyODM5MzUwNTMwODk2NTNVTEwsCisgIDQ2ODA4NDM3OTk4OTQ4MjYyMzNVTEwsIDgxNjg5NDgyOTA3MjA4MzI1NTVVTEwsIDgwNjc1NjY2NjI4NzM2OTA5ODdVTEwsCisgIDYyNDg2MzM0MDk1MjU0NjUwODJVTEwsIDk4Mjk4MzQxOTY3Nzg0MDQyMjhVTEwsIDM1MjQ4MDIzNTk5NzIwNTA4OTVVTEwsCisgIDMzMjc5MDA5Njc1NzI2MDk2NzdVTEwsICAxMTAxNDg4NjI4NzcyOTc2MDNVTEwsICAxNzk5MTQ1NDY4NDM2NDIwNzZVTEwsCisgIDIzMDI1ODUwOTI5OTQwNDU2ODRVTEwKK307CisjZWxzZQorI2lmIE1QRF9SRElHSVRTICE9IDkKKyAgI2Vycm9yICJtcGRlY2ltYWwuYzogTVBEX1JESUdJVFMgbXVzdCBiZSA5LiIKKyNlbmRpZgorc3RhdGljIGNvbnN0IG1wZF91aW50X3QgbXBkX2xuMTBfZGF0YVtNUERfTUlOQUxMT0NfTUFYXSA9IHsKKyAgNDAxNjgyNjkyVUwsIDcwODQ3NDY5OVVMLCA3MjA3NTQ0MDNVTCwgIDMwODk2MzQ1VUwsIDYwMjMwMTA1N1VMLCA3NjU4NzE0MTZVTCwKKyAgMTkyOTIwMzMzVUwsIDc2MzExMzU2OVVMLCA1ODk0MDI1NjdVTCwgOTU2ODkwMTY3VUwsICA4MjQxMzE0NlVMLCA1ODkyNTcyNDJVTCwKKyAgMjQ1NTQ0MDU3VUwsIDgxMTM2NDI5MlVMLCA3MzQyMDY3MDVVTCwgODY4NTY5MzU2VUwsIDE2NzQ2NTUwNVVMLCA3NzUwMjY4NDlVTCwKKyAgNzA2NDgwMDAyVUwsICAxODA2NDQ1MFVMLCA2MzYxNjc5MjFVTCwgNTY5NDc2ODM0VUwsIDczNDUwNzQ3OFVMLCAxNTY1OTEyMTNVTCwKKyAgMTQ4MDQ2NjM3VUwsIDI4MzU1MjIwMVVMLCA2Nzc0MzIxNjJVTCwgNDcwODA2ODU1VUwsIDg4MDg0MDEyNlVMLCA0MTc0ODAwMzZVTCwKKyAgMjEwNTEwMTcxVUwsIDk0MDQ0MDAyMlVMLCA5MzkxNDc5NjFVTCwgODkzNDMxNDkzVUwsIDQzNjUxNTUwNFVMLCA0NDA0MjQzMjdVTCwKKyAgNjU0MzY2NzQ3VUwsIDgyMTk4ODY3NFVMLCA2MjIyMjg3NjlVTCwgODg0NjE2MzM2VUwsIDUzNzc3MzI2MlVMLCAzNTA1MzA4OTZVTCwKKyAgMzE5ODUyODM5VUwsIDk4OTQ4MjYyM1VMLCA0NjgwODQzNzlVTCwgNzIwODMyNTU1VUwsIDE2ODk0ODI5MFVMLCA3MzY5MDk4NzhVTCwKKyAgNjc1NjY2NjI4VUwsIDU0NjUwODI4MFVMLCA4NjMzNDA5NTJVTCwgNDA0MjI4NjI0VUwsIDgzNDE5Njc3OFVMLCA1MDg5NTk4MjlVTCwKKyAgIDIzNTk5NzIwVUwsIDk2NzczNTI0OFVMLCAgOTY3NTcyNjBVTCwgNjAzMzMyNzkwVUwsIDg2Mjg3NzI5N1VMLCA3NjAxMTAxNDhVTCwKKyAgNDY4NDM2NDIwVUwsIDQwMTc5OTE0NVVMLCAyOTk0MDQ1NjhVTCwgMjMwMjU4NTA5VUwKK307CisjZW5kaWYKKy8qIF9tcGRfbG4xMCBpcyB1c2VkIGRpcmVjdGx5IGZvciBwcmVjaXNpb25zIHNtYWxsZXIgdGhhbiBNSU5BTExPQ19NQVgqUkRJR0lUUy4KKyAgIE90aGVyd2lzZSwgaXQgc2VydmVzIGFzIHRoZSBpbml0aWFsIGFwcHJveGltYXRpb24gZm9yIGNhbGN1bGF0aW5nIGxuKDEwKS4gKi8KK3N0YXRpYyBjb25zdCBtcGRfdCBfbXBkX2xuMTAgPSB7CisgIE1QRF9TVEFUSUN8TVBEX0NPTlNUX0RBVEEsIC0oTVBEX01JTkFMTE9DX01BWCpNUERfUkRJR0lUUy0xKSwKKyAgTVBEX01JTkFMTE9DX01BWCpNUERfUkRJR0lUUywgTVBEX01JTkFMTE9DX01BWCwgTVBEX01JTkFMTE9DX01BWCwKKyAgKG1wZF91aW50X3QgKiltcGRfbG4xMF9kYXRhCit9OworCisvKgorICogU2V0ICdyZXN1bHQnIHRvIGxvZygxMCkuCisgKiAgIFVscCBlcnJvcjogYWJzKHJlc3VsdCAtIGxvZygxMCkpIDwgdWxwKGxvZygxMCkpCisgKiAgIFJlbGF0aXZlIGVycm9yIDogYWJzKHJlc3VsdCAtIGxvZygxMCkpIDwgNSAqIDEwKiotcHJlYyAqIGxvZygxMCkKKyAqCisgKiBOT1RFOiBUaGUgcmVsYXRpdmUgZXJyb3IgaXMgbm90IGRlcml2ZWQgZnJvbSB0aGUgdWxwIGVycm9yLCBidXQKKyAqIGNhbGN1bGF0ZWQgc2VwYXJhdGVseSB1c2luZyB0aGUgZmFjdCB0aGF0IDIzLzEwIDwgbG9nKDEwKSA8IDI0LzEwLgorICovCit2b2lkCittcGRfcWxuMTAobXBkX3QgKnJlc3VsdCwgbXBkX3NzaXplX3QgcHJlYywgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IHZhcmNvbnRleHQsIG1heGNvbnRleHQ7CisgICAgTVBEX05FV19TVEFUSUModG1wLCAwLDAsMCwwKTsKKyAgICBNUERfTkVXX0NPTlNUKHN0YXRpYzEwLCAwLDAsMiwxLDEsMTApOworICAgIG1wZF9zc2l6ZV90IGtsaXN0W01QRF9NQVhfUFJFQ19MT0cyXTsKKyAgICBtcGRfdWludF90IHJuZDsKKyAgICBtcGRfc3NpemVfdCBzaGlmdDsKKyAgICBpbnQgaTsKKworICAgIGFzc2VydChwcmVjID49IDEpOworCisgICAgc2hpZnQgPSBNUERfTUlOQUxMT0NfTUFYKk1QRF9SRElHSVRTLXByZWM7CisgICAgc2hpZnQgPSBzaGlmdCA8IDAgPyAwIDogc2hpZnQ7CisKKyAgICBybmQgPSBtcGRfcXNoaWZ0cihyZXN1bHQsICZfbXBkX2xuMTAsIHNoaWZ0LCBzdGF0dXMpOworICAgIGlmIChybmQgPT0gTVBEX1VJTlRfTUFYKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcmVzdWx0LT5leHAgPSAtKHJlc3VsdC0+ZGlnaXRzLTEpOworCisgICAgbXBkX21heGNvbnRleHQoJm1heGNvbnRleHQpOworICAgIGlmIChwcmVjIDwgTVBEX01JTkFMTE9DX01BWCpNUERfUkRJR0lUUykgeworICAgICAgICBtYXhjb250ZXh0LnByZWMgPSBwcmVjOworICAgICAgICBfbXBkX2FwcGx5X3JvdW5kX2V4Y2VzcyhyZXN1bHQsIHJuZCwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgICAgICpzdGF0dXMgfD0gKE1QRF9JbmV4YWN0fE1QRF9Sb3VuZGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1wZF9tYXhjb250ZXh0KCZ2YXJjb250ZXh0KTsKKyAgICB2YXJjb250ZXh0LnJvdW5kID0gTVBEX1JPVU5EX1RSVU5DOworCisgICAgaSA9IGxuX3NjaGVkdWxlX3ByZWMoa2xpc3QsIHByZWMrMiwgLXJlc3VsdC0+ZXhwKTsKKyAgICBmb3IgKDsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgdmFyY29udGV4dC5wcmVjID0gMiprbGlzdFtpXSszOworICAgICAgICByZXN1bHQtPmZsYWdzIF49IE1QRF9ORUc7CisgICAgICAgIF9tcGRfcWV4cCgmdG1wLCByZXN1bHQsICZ2YXJjb250ZXh0LCBzdGF0dXMpOworICAgICAgICByZXN1bHQtPmZsYWdzIF49IE1QRF9ORUc7CisgICAgICAgIG1wZF9xbXVsKCZ0bXAsICZzdGF0aWMxMCwgJnRtcCwgJnZhcmNvbnRleHQsIHN0YXR1cyk7CisgICAgICAgIG1wZF9xc3ViKCZ0bXAsICZ0bXAsICZvbmUsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgICAgICBtcGRfcWFkZChyZXN1bHQsIHJlc3VsdCwgJnRtcCwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgICAgIGlmIChtcGRfaXNzcGVjaWFsKHJlc3VsdCkpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgbXBkX2RlbCgmdG1wKTsKKyAgICBtYXhjb250ZXh0LnByZWMgPSBwcmVjOworICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCAmbWF4Y29udGV4dCwgc3RhdHVzKTsKK30KKworLyoKKyAqIEluaXRpYWwgYXBwcm94aW1hdGlvbnMgZm9yIHRoZSBsbigpIGl0ZXJhdGlvbi4gVGhlIHZhbHVlcyBoYXZlIHRoZQorICogZm9sbG93aW5nIHByb3BlcnRpZXMgKGVzdGFibGlzaGVkIHdpdGggYm90aCBkZWNpbWFsLnB5IGFuZCBtcGZyKToKKyAqCisgKiBJbmRleCAwIC0gNDAwLCBsb2dhcml0aG1zIG9mIHggaW4gWzEuMDAsIDUuMDBdOgorICogICBhYnMobG5hcHByb3hbaV0gKiAxMCoqLTMgLSBsb2coKGkrMTAwKS8xMDApKSA8IDEwKiotMgorICogICBhYnMobG5hcHByb3hbaV0gKiAxMCoqLTMgLSBsb2coKGkrMSsxMDApLzEwMCkpIDwgMTAqKi0yCisgKgorICogSW5kZXggNDAxIC0gODk5LCBsb2dhcml0aG1zIG9mIHggaW4gKDAuNTAwLCAwLjk5OV06CisgKiAgIGFicygtbG5hcHByb3hbaV0gKiAxMCoqLTMgLSBsb2coKGkrMTAwKS8xMDAwKSkgPCAxMCoqLTIKKyAqICAgYWJzKC1sbmFwcHJveFtpXSAqIDEwKiotMyAtIGxvZygoaSsxKzEwMCkvMTAwMCkpIDwgMTAqKi0yCisgKi8KK3N0YXRpYyBjb25zdCB1aW50MTZfdCBsbmFwcHJveFs5MDBdID0geworICAvKiBpbmRleCAwIC0gNDAwOiBsb2coKGkrMTAwKS8xMDApICogMTAwMCAqLworICAwLCAxMCwgMjAsIDMwLCAzOSwgNDksIDU4LCA2OCwgNzcsIDg2LCA5NSwgMTA0LCAxMTMsIDEyMiwgMTMxLCAxNDAsIDE0OCwgMTU3LAorICAxNjYsIDE3NCwgMTgyLCAxOTEsIDE5OSwgMjA3LCAyMTUsIDIyMywgMjMxLCAyMzksIDI0NywgMjU1LCAyNjIsIDI3MCwgMjc4LAorICAyODUsIDI5MywgMzAwLCAzMDgsIDMxNSwgMzIyLCAzMjksIDMzNiwgMzQ0LCAzNTEsIDM1OCwgMzY1LCAzNzIsIDM3OCwgMzg1LAorICAzOTIsIDM5OSwgNDA2LCA0MTIsIDQxOSwgNDI1LCA0MzIsIDQzOCwgNDQ1LCA0NTEsIDQ1NywgNDY0LCA0NzAsIDQ3NiwgNDgyLAorICA0ODksIDQ5NSwgNTAxLCA1MDcsIDUxMywgNTE5LCA1MjUsIDUzMSwgNTM2LCA1NDIsIDU0OCwgNTU0LCA1NjAsIDU2NSwgNTcxLAorICA1NzcsIDU4MiwgNTg4LCA1OTMsIDU5OSwgNjA0LCA2MTAsIDYxNSwgNjIxLCA2MjYsIDYzMSwgNjM3LCA2NDIsIDY0NywgNjUyLAorICA2NTgsIDY2MywgNjY4LCA2NzMsIDY3OCwgNjgzLCA2ODgsIDY5MywgNjk4LCA3MDMsIDcwOCwgNzEzLCA3MTgsIDcyMywgNzI4LAorICA3MzIsIDczNywgNzQyLCA3NDcsIDc1MSwgNzU2LCA3NjEsIDc2NiwgNzcwLCA3NzUsIDc3OSwgNzg0LCA3ODgsIDc5MywgNzk4LAorICA4MDIsIDgwNiwgODExLCA4MTUsIDgyMCwgODI0LCA4MjksIDgzMywgODM3LCA4NDIsIDg0NiwgODUwLCA4NTQsIDg1OSwgODYzLAorICA4NjcsIDg3MSwgODc2LCA4ODAsIDg4NCwgODg4LCA4OTIsIDg5NiwgOTAwLCA5MDQsIDkwOCwgOTEyLCA5MTYsIDkyMCwgOTI0LAorICA5MjgsIDkzMiwgOTM2LCA5NDAsIDk0NCwgOTQ4LCA5NTIsIDk1NiwgOTU5LCA5NjMsIDk2NywgOTcxLCA5NzUsIDk3OCwgOTgyLAorICA5ODYsIDk5MCwgOTkzLCA5OTcsIDEwMDEsIDEwMDQsIDEwMDgsIDEwMTIsIDEwMTUsIDEwMTksIDEwMjIsIDEwMjYsIDEwMzAsCisgIDEwMzMsIDEwMzcsIDEwNDAsIDEwNDQsIDEwNDcsIDEwNTEsIDEwNTQsIDEwNTgsIDEwNjEsIDEwNjUsIDEwNjgsIDEwNzIsIDEwNzUsCisgIDEwNzgsIDEwODIsIDEwODUsIDEwODksIDEwOTIsIDEwOTUsIDEwOTksIDExMDIsIDExMDUsIDExMDksIDExMTIsIDExMTUsIDExMTgsCisgIDExMjIsIDExMjUsIDExMjgsIDExMzEsIDExMzUsIDExMzgsIDExNDEsIDExNDQsIDExNDcsIDExNTEsIDExNTQsIDExNTcsIDExNjAsCisgIDExNjMsIDExNjYsIDExNjksIDExNzIsIDExNzYsIDExNzksIDExODIsIDExODUsIDExODgsIDExOTEsIDExOTQsIDExOTcsIDEyMDAsCisgIDEyMDMsIDEyMDYsIDEyMDksIDEyMTIsIDEyMTUsIDEyMTgsIDEyMjEsIDEyMjQsIDEyMjcsIDEyMzAsIDEyMzMsIDEyMzUsIDEyMzgsCisgIDEyNDEsIDEyNDQsIDEyNDcsIDEyNTAsIDEyNTMsIDEyNTYsIDEyNTgsIDEyNjEsIDEyNjQsIDEyNjcsIDEyNzAsIDEyNzMsIDEyNzUsCisgIDEyNzgsIDEyODEsIDEyODQsIDEyODYsIDEyODksIDEyOTIsIDEyOTUsIDEyOTcsIDEzMDAsIDEzMDMsIDEzMDYsIDEzMDgsIDEzMTEsCisgIDEzMTQsIDEzMTYsIDEzMTksIDEzMjIsIDEzMjQsIDEzMjcsIDEzMzAsIDEzMzIsIDEzMzUsIDEzMzgsIDEzNDAsIDEzNDMsIDEzNDUsCisgIDEzNDgsIDEzNTEsIDEzNTMsIDEzNTYsIDEzNTgsIDEzNjEsIDEzNjQsIDEzNjYsIDEzNjksIDEzNzEsIDEzNzQsIDEzNzYsIDEzNzksCisgIDEzODEsIDEzODQsIDEzODYsIDEzODksIDEzOTEsIDEzOTQsIDEzOTYsIDEzOTksIDE0MDEsIDE0MDQsIDE0MDYsIDE0MDksIDE0MTEsCisgIDE0MTMsIDE0MTYsIDE0MTgsIDE0MjEsIDE0MjMsIDE0MjYsIDE0MjgsIDE0MzAsIDE0MzMsIDE0MzUsIDE0MzcsIDE0NDAsIDE0NDIsCisgIDE0NDUsIDE0NDcsIDE0NDksIDE0NTIsIDE0NTQsIDE0NTYsIDE0NTksIDE0NjEsIDE0NjMsIDE0NjYsIDE0NjgsIDE0NzAsIDE0NzIsCisgIDE0NzUsIDE0NzcsIDE0NzksIDE0ODIsIDE0ODQsIDE0ODYsIDE0ODgsIDE0OTEsIDE0OTMsIDE0OTUsIDE0OTcsIDE1MDAsIDE1MDIsCisgIDE1MDQsIDE1MDYsIDE1MDksIDE1MTEsIDE1MTMsIDE1MTUsIDE1MTcsIDE1MjAsIDE1MjIsIDE1MjQsIDE1MjYsIDE1MjgsIDE1MzAsCisgIDE1MzMsIDE1MzUsIDE1MzcsIDE1MzksIDE1NDEsIDE1NDMsIDE1NDUsIDE1NDgsIDE1NTAsIDE1NTIsIDE1NTQsIDE1NTYsIDE1NTgsCisgIDE1NjAsIDE1NjIsIDE1NjQsIDE1NjcsIDE1NjksIDE1NzEsIDE1NzMsIDE1NzUsIDE1NzcsIDE1NzksIDE1ODEsIDE1ODMsIDE1ODUsCisgIDE1ODcsIDE1ODksIDE1OTEsIDE1OTMsIDE1OTUsIDE1OTcsIDE1OTksIDE2MDEsIDE2MDMsIDE2MDUsIDE2MDcsIDE2MDksCisgIC8qIGluZGV4IDQwMSAtIDg5OTogLWxvZygoaSsxMDApLzEwMDApICogMTAwMCAqLworICA2OTEsIDY4OSwgNjg3LCA2ODUsIDY4MywgNjgxLCA2NzksIDY3NywgNjc1LCA2NzMsIDY3MSwgNjY5LCA2NjgsIDY2NiwgNjY0LAorICA2NjIsIDY2MCwgNjU4LCA2NTYsIDY1NCwgNjUyLCA2NTAsIDY0OCwgNjQ2LCA2NDQsIDY0MiwgNjQxLCA2MzksIDYzNywgNjM1LAorICA2MzMsIDYzMSwgNjI5LCA2MjcsIDYyNiwgNjI0LCA2MjIsIDYyMCwgNjE4LCA2MTYsIDYxNCwgNjEyLCA2MTEsIDYwOSwgNjA3LAorICA2MDUsIDYwMywgNjAyLCA2MDAsIDU5OCwgNTk2LCA1OTQsIDU5MiwgNTkxLCA1ODksIDU4NywgNTg1LCA1ODMsIDU4MiwgNTgwLAorICA1NzgsIDU3NiwgNTc0LCA1NzMsIDU3MSwgNTY5LCA1NjcsIDU2NiwgNTY0LCA1NjIsIDU2MCwgNTU5LCA1NTcsIDU1NSwgNTUzLAorICA1NTIsIDU1MCwgNTQ4LCA1NDYsIDU0NSwgNTQzLCA1NDEsIDU0MCwgNTM4LCA1MzYsIDUzNCwgNTMzLCA1MzEsIDUyOSwgNTI4LAorICA1MjYsIDUyNCwgNTIzLCA1MjEsIDUxOSwgNTE4LCA1MTYsIDUxNCwgNTEyLCA1MTEsIDUwOSwgNTA4LCA1MDYsIDUwNCwgNTAyLAorICA1MDEsIDQ5OSwgNDk4LCA0OTYsIDQ5NCwgNDkzLCA0OTEsIDQ4OSwgNDg4LCA0ODYsIDQ4NCwgNDgzLCA0ODEsIDQ4MCwgNDc4LAorICA0NzYsIDQ3NSwgNDczLCA0NzIsIDQ3MCwgNDY4LCA0NjcsIDQ2NSwgNDY0LCA0NjIsIDQ2MCwgNDU5LCA0NTcsIDQ1NiwgNDU0LAorICA0NTMsIDQ1MSwgNDQ5LCA0NDgsIDQ0NiwgNDQ1LCA0NDMsIDQ0MiwgNDQwLCA0MzgsIDQzNywgNDM1LCA0MzQsIDQzMiwgNDMxLAorICA0MjksIDQyOCwgNDI2LCA0MjUsIDQyMywgNDIyLCA0MjAsIDQxOSwgNDE3LCA0MTYsIDQxNCwgNDEyLCA0MTEsIDQxMCwgNDA4LAorICA0MDYsIDQwNSwgNDA0LCA0MDIsIDQwMCwgMzk5LCAzOTgsIDM5NiwgMzk0LCAzOTMsIDM5MiwgMzkwLCAzODksIDM4NywgMzg2LAorICAzODQsIDM4MywgMzgxLCAzODAsIDM3OCwgMzc3LCAzNzUsIDM3NCwgMzcyLCAzNzEsIDM3MCwgMzY4LCAzNjcsIDM2NSwgMzY0LAorICAzNjIsIDM2MSwgMzYwLCAzNTgsIDM1NywgMzU1LCAzNTQsIDM1MiwgMzUxLCAzNTAsIDM0OCwgMzQ3LCAzNDUsIDM0NCwgMzQyLAorICAzNDEsIDM0MCwgMzM4LCAzMzcsIDMzNiwgMzM0LCAzMzMsIDMzMSwgMzMwLCAzMjgsIDMyNywgMzI2LCAzMjQsIDMyMywgMzIyLAorICAzMjAsIDMxOSwgMzE4LCAzMTYsIDMxNSwgMzEzLCAzMTIsIDMxMSwgMzA5LCAzMDgsIDMwNiwgMzA1LCAzMDQsIDMwMiwgMzAxLAorICAzMDAsIDI5OCwgMjk3LCAyOTYsIDI5NCwgMjkzLCAyOTIsIDI5MCwgMjg5LCAyODgsIDI4NiwgMjg1LCAyODQsIDI4MiwgMjgxLAorICAyODAsIDI3OCwgMjc3LCAyNzYsIDI3NCwgMjczLCAyNzIsIDI3MCwgMjY5LCAyNjgsIDI2NywgMjY1LCAyNjQsIDI2MywgMjYxLAorICAyNjAsIDI1OSwgMjU4LCAyNTYsIDI1NSwgMjU0LCAyNTIsIDI1MSwgMjUwLCAyNDgsIDI0NywgMjQ2LCAyNDUsIDI0MywgMjQyLAorICAyNDEsIDI0MCwgMjM4LCAyMzcsIDIzNiwgMjM0LCAyMzMsIDIzMiwgMjMxLCAyMjksIDIyOCwgMjI3LCAyMjYsIDIyNCwgMjIzLAorICAyMjIsIDIyMSwgMjE5LCAyMTgsIDIxNywgMjE2LCAyMTQsIDIxMywgMjEyLCAyMTEsIDIxMCwgMjA4LCAyMDcsIDIwNiwgMjA1LAorICAyMDMsIDIwMiwgMjAxLCAyMDAsIDE5OCwgMTk3LCAxOTYsIDE5NSwgMTk0LCAxOTIsIDE5MSwgMTkwLCAxODksIDE4OCwgMTg2LAorICAxODUsIDE4NCwgMTgzLCAxODIsIDE4MCwgMTc5LCAxNzgsIDE3NywgMTc2LCAxNzQsIDE3MywgMTcyLCAxNzEsIDE3MCwgMTY4LAorICAxNjcsIDE2NiwgMTY1LCAxNjQsIDE2MiwgMTYxLCAxNjAsIDE1OSwgMTU4LCAxNTcsIDE1NiwgMTU0LCAxNTMsIDE1MiwgMTUxLAorICAxNTAsIDE0OCwgMTQ3LCAxNDYsIDE0NSwgMTQ0LCAxNDMsIDE0MiwgMTQwLCAxMzksIDEzOCwgMTM3LCAxMzYsIDEzNSwgMTM0LAorICAxMzIsIDEzMSwgMTMwLCAxMjksIDEyOCwgMTI3LCAxMjYsIDEyNCwgMTIzLCAxMjIsIDEyMSwgMTIwLCAxMTksIDExOCwgMTE2LAorICAxMTUsIDExNCwgMTEzLCAxMTIsIDExMSwgMTEwLCAxMDksIDEwOCwgMTA2LCAxMDUsIDEwNCwgMTAzLCAxMDIsIDEwMSwgMTAwLAorICA5OSwgOTgsIDk3LCA5NSwgOTQsIDkzLCA5MiwgOTEsIDkwLCA4OSwgODgsIDg3LCA4NiwgODQsIDgzLCA4MiwgODEsIDgwLCA3OSwKKyAgNzgsIDc3LCA3NiwgNzUsIDc0LCA3MywgNzIsIDcwLCA2OSwgNjgsIDY3LCA2NiwgNjUsIDY0LCA2MywgNjIsIDYxLCA2MCwgNTksCisgIDU4LCA1NywgNTYsIDU0LCA1MywgNTIsIDUxLCA1MCwgNDksIDQ4LCA0NywgNDYsIDQ1LCA0NCwgNDMsIDQyLCA0MSwgNDAsIDM5LAorICAzOCwgMzcsIDM2LCAzNSwgMzQsIDMzLCAzMSwgMzAsIDI5LCAyOCwgMjcsIDI2LCAyNSwgMjQsIDIzLCAyMiwgMjEsIDIwLCAxOSwKKyAgMTgsIDE3LCAxNiwgMTUsIDE0LCAxMywgMTIsIDExLCAxMCwgOSwgOCwgNywgNiwgNSwgNCwgMywgMiwgMQorfTsKKworLyoKKyAqIEludGVybmFsIGxuKCkgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBjaGVjayBmb3Igc3BlY2lhbHMsIHplcm8gb3Igb25lLgorICogUmVsYXRpdmUgZXJyb3I6IGFicyhyZXN1bHQgLSBsb2coYSkpIDwgMC4xICogMTAqKi1wcmVjICogYWJzKGxvZyhhKSkKKyAqLworc3RhdGljIHZvaWQKK19tcGRfcWxuKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9jb250ZXh0X3QgdmFyY29udGV4dCwgbWF4Y29udGV4dDsKKyAgICBtcGRfdCAqeiA9IChtcGRfdCAqKSByZXN1bHQ7CisgICAgTVBEX05FV19TVEFUSUModiwwLDAsMCwwKTsKKyAgICBNUERfTkVXX1NUQVRJQyh2dG1wLDAsMCwwLDApOworICAgIE1QRF9ORVdfU1RBVElDKHRtcCwwLDAsMCwwKTsKKyAgICBtcGRfc3NpemVfdCBrbGlzdFtNUERfTUFYX1BSRUNfTE9HMl07CisgICAgbXBkX3NzaXplX3QgbWF4cHJlYywgc2hpZnQsIHQ7CisgICAgbXBkX3NzaXplX3QgYV9kaWdpdHMsIGFfZXhwOworICAgIG1wZF91aW50X3QgZHVtbXksIHg7CisgICAgaW50IGk7CisKKyAgICBhc3NlcnQoIW1wZF9pc3NwZWNpYWwoYSkgJiYgIW1wZF9pc3plcm9jb2VmZihhKSk7CisKKyAgICAvKgorICAgICAqIFdlIGFyZSBjYWxjdWxhdGluZyBsbihhKSA9IGxuKHYgKiAxMF50KSA9IGxuKHYpICsgdCpsbigxMCksCisgICAgICogd2hlcmUgMC41IDwgdiA8PSA1LgorICAgICAqLworICAgIGlmICghbXBkX3Fjb3B5KCZ2LCBhLCBzdGF0dXMpKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgIGdvdG8gZmluaXNoOworICAgIH0KKworICAgIC8qIEluaXRpYWwgYXBwcm94aW1hdGlvbjogd2UgaGF2ZSBhdCBsZWFzdCBvbmUgbm9uLXplcm8gZGlnaXQgKi8KKyAgICBfbXBkX2dldF9tc2RpZ2l0cygmZHVtbXksICZ4LCAmdiwgMyk7CisgICAgaWYgKHggPCAxMCkgeCAqPSAxMDsKKyAgICBpZiAoeCA8IDEwMCkgeCAqPSAxMDsKKyAgICB4IC09IDEwMDsKKworICAgIC8qIGEgbWF5IGVxdWFsIHogKi8KKyAgICBhX2RpZ2l0cyA9IGEtPmRpZ2l0czsKKyAgICBhX2V4cCA9IGEtPmV4cDsKKworICAgIG1wZF9taW5hbGxvYyh6KTsKKyAgICBtcGRfY2xlYXJfZmxhZ3Moeik7CisgICAgei0+ZGF0YVswXSA9IGxuYXBwcm94W3hdOworICAgIHotPmxlbiA9IDE7CisgICAgei0+ZXhwID0gLTM7CisgICAgbXBkX3NldGRpZ2l0cyh6KTsKKworICAgIGlmICh4IDw9IDQwMCkgeworICAgICAgICAvKiBSZWR1Y2UgdGhlIGlucHV0IG9wZXJhbmQgdG8gMS4wMCA8PSB2IDw9IDUuMDAuIExldCB5ID0geCArIDEwMCwKKyAgICAgICAgICogc28gMTAwIDw9IHkgPD0gNTAwLiBTaW5jZSB5IGNvbnRhaW5zIHRoZSBtb3N0IHNpZ25pZmljYW50IGRpZ2l0cworICAgICAgICAgKiBvZiB2LCB5LzEwMCA8PSB2IDwgKHkrMSkvMTAwIGFuZCBhYnMoeiAtIGxvZyh2KSkgPCAxMCoqLTIuICovCisgICAgICAgIHYuZXhwID0gLShhX2RpZ2l0cyAtIDEpOworICAgICAgICB0ID0gYV9leHAgKyBhX2RpZ2l0cyAtIDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvKiBSZWR1Y2UgdGhlIGlucHV0IG9wZXJhbmQgdG8gMC41MDAgPCB2IDw9IDAuOTk5LiBMZXQgeSA9IHggKyAxMDAsCisgICAgICAgICAqIHNvIDUwMCA8IHkgPD0gOTk5LiBTaW5jZSB5IGNvbnRhaW5zIHRoZSBtb3N0IHNpZ25pZmljYW50IGRpZ2l0cworICAgICAgICAgKiBvZiB2LCB5LzEwMDAgPD0gdiA8ICh5KzEpLzEwMDAgYW5kIGFicyh6IC0gbG9nKHYpKSA8IDEwKiotMi4gKi8KKyAgICAgICAgdi5leHAgPSAtYV9kaWdpdHM7CisgICAgICAgIHQgPSBhX2V4cCArIGFfZGlnaXRzOworICAgICAgICBtcGRfc2V0X25lZ2F0aXZlKHopOworICAgIH0KKworICAgIG1wZF9tYXhjb250ZXh0KCZtYXhjb250ZXh0KTsKKyAgICBtcGRfbWF4Y29udGV4dCgmdmFyY29udGV4dCk7CisgICAgdmFyY29udGV4dC5yb3VuZCA9IE1QRF9ST1VORF9UUlVOQzsKKworICAgIG1heHByZWMgPSBjdHgtPnByZWMgKyAyOworICAgIGlmICh0ID09IDAgJiYgKHggPD0gMTUgfHwgeCA+PSA4MDApKSB7CisgICAgICAgIC8qIDAuOTAwIDw9IHYgPD0gMS4xNTogRXN0aW1hdGUgdGhlIG1hZ25pdHVkZSBvZiB0aGUgbG9nYXJpdGhtLgorICAgICAgICAgKiBJZiBsbih2KSB3aWxsIHVuZGVyZmxvdywgc2tpcCB0aGUgbG9vcC4gT3RoZXJ3aXNlLCBhZGp1c3QgdGhlCisgICAgICAgICAqIHByZWNpc2lvbiB1cHdhcmRzIGluIG9yZGVyIHRvIG9idGFpbiBhIHN1ZmZpY2llbnQgbnVtYmVyIG9mCisgICAgICAgICAqIHNpZ25pZmljYW50IGRpZ2l0cy4KKyAgICAgICAgICoKKyAgICAgICAgICogICBDYXNlIHYgPiAxOgorICAgICAgICAgKiAgICAgIGFicygodi0xKS8xMCkgPCBhYnMoKHYtMSkvdikgPCBhYnMobG4odikpIDwgYWJzKHYtMSkKKyAgICAgICAgICogICBDYXNlIHYgPCAxOgorICAgICAgICAgKiAgICAgIGFicyh2LTEpIDwgYWJzKGxuKHYpKSA8IGFicygodi0xKS92KSA8IGFicygodi0xKSoxMCkKKyAgICAgICAgICovCisgICAgICAgIGludCBjbXAgPSBfbXBkX2NtcCgmdiwgJm9uZSk7CisKKyAgICAgICAgLyogVXBwZXIgYm91bmQgKGFzc3VtZSB2ID4gMSk6IGFicyh2LTEpLCB1bnJvdW5kZWQgKi8KKyAgICAgICAgX21wZF9xc3ViKCZ0bXAsICZ2LCAmb25lLCAmbWF4Y29udGV4dCwgJm1heGNvbnRleHQuc3RhdHVzKTsKKyAgICAgICAgaWYgKG1heGNvbnRleHQuc3RhdHVzICYgTVBEX0Vycm9ycykgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX01hbGxvY19lcnJvciwgc3RhdHVzKTsKKyAgICAgICAgICAgIGdvdG8gZmluaXNoOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNtcCA8IDApIHsKKyAgICAgICAgICAgIC8qIHYgPCAxOiBhYnMoKHYtMSkqMTApICovCisgICAgICAgICAgICB0bXAuZXhwICs9IDE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1wZF9hZGpleHAoJnRtcCkgPCBtcGRfZXRpbnkoY3R4KSkgeworICAgICAgICAgICAgLyogVGhlIHVwcGVyIGJvdW5kIGlzIGxlc3MgdGhhbiBldGlueTogVW5kZXJmbG93IHRvIHplcm8gKi8KKyAgICAgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCAoY21wPDApLCAxLCBtcGRfZXRpbnkoY3R4KS0xKTsKKyAgICAgICAgICAgIGdvdG8gZmluaXNoOworICAgICAgICB9CisgICAgICAgIC8qIExvd2VyIGJvdW5kOiBhYnMoKHYtMSkvMTApIG9yIGFicyh2LTEpICovCisgICAgICAgIHRtcC5leHAgLT0gMTsKKyAgICAgICAgaWYgKG1wZF9hZGpleHAoJnRtcCkgPCAwKSB7CisgICAgICAgICAgICAvKiBBYnNvbHV0ZSBlcnJvciBvZiB0aGUgbG9vcDogYWJzKHogLSBsb2codikpIDwgMTAqKi1wLiBJZgorICAgICAgICAgICAgICogcCA9IGN0eC0+cHJlYysyLWFkamV4cChsb3dlciksIHRoZW4gdGhlIHJlbGF0aXZlIGVycm9yIG9mCisgICAgICAgICAgICAgKiB0aGUgcmVzdWx0IGlzICh1c2luZyAxMCoqYWRqZXhwKHgpIDw9IGFicyh4KSk6CisgICAgICAgICAgICAgKgorICAgICAgICAgICAgICogICBhYnMoeiAtIGxvZyh2KSkgLyBhYnMobG9nKHYpKSA8IDEwKiotcCAvIGFicyhsb2codikpCisgICAgICAgICAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw9IDEwKiooLWN0eC0+cHJlYy0yKQorICAgICAgICAgICAgICovCisgICAgICAgICAgICBtYXhwcmVjID0gbWF4cHJlYyAtIG1wZF9hZGpleHAoJnRtcCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpID0gbG5fc2NoZWR1bGVfcHJlYyhrbGlzdCwgbWF4cHJlYywgMik7CisgICAgZm9yICg7IGkgPj0gMDsgaS0tKSB7CisgICAgICAgIHZhcmNvbnRleHQucHJlYyA9IDIqa2xpc3RbaV0rMzsKKyAgICAgICAgei0+ZmxhZ3MgXj0gTVBEX05FRzsKKyAgICAgICAgX21wZF9xZXhwKCZ0bXAsIHosICZ2YXJjb250ZXh0LCBzdGF0dXMpOworICAgICAgICB6LT5mbGFncyBePSBNUERfTkVHOworCisgICAgICAgIGlmICh2LmRpZ2l0cyA+IHZhcmNvbnRleHQucHJlYykgeworICAgICAgICAgICAgc2hpZnQgPSB2LmRpZ2l0cyAtIHZhcmNvbnRleHQucHJlYzsKKyAgICAgICAgICAgIG1wZF9xc2hpZnRyKCZ2dG1wLCAmdiwgc2hpZnQsIHN0YXR1cyk7CisgICAgICAgICAgICB2dG1wLmV4cCArPSBzaGlmdDsKKyAgICAgICAgICAgIG1wZF9xbXVsKCZ0bXAsICZ2dG1wLCAmdG1wLCAmdmFyY29udGV4dCwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1wZF9xbXVsKCZ0bXAsICZ2LCAmdG1wLCAmdmFyY29udGV4dCwgc3RhdHVzKTsKKyAgICAgICAgfQorCisgICAgICAgIG1wZF9xc3ViKCZ0bXAsICZ0bXAsICZvbmUsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgICAgICBtcGRfcWFkZCh6LCB6LCAmdG1wLCAmbWF4Y29udGV4dCwgc3RhdHVzKTsKKyAgICAgICAgaWYgKG1wZF9pc3NwZWNpYWwoeikpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgLyoKKyAgICAgKiBDYXNlIHQgPT0gMDoKKyAgICAgKiAgICB0ICogbG9nKDEwKSA9PSAwLCB0aGUgcmVzdWx0IGRvZXMgbm90IGNoYW5nZSBhbmQgdGhlIGFuYWx5c2lzCisgICAgICogICAgYWJvdmUgYXBwbGllcy4gSWYgdiA8IDAuOTAwIG9yIHYgPiAxLjE1LCB0aGUgcmVsYXRpdmUgZXJyb3IgaXMKKyAgICAgKiAgICBsZXNzIHRoYW4gMTAqKigtY3R4LnByZWMtMSkuCisgICAgICogQ2FzZSB0ICE9IDA6CisgICAgICogICAgICB6IDo9IGFwcHJveChsb2codikpCisgICAgICogICAgICB5IDo9IGFwcHJveChsb2coMTApKQorICAgICAqICAgICAgcCA6PSBtYXhwcmVjID0gY3R4LT5wcmVjICsgMgorICAgICAqICAgQWJzb2x1dGUgZXJyb3JzOgorICAgICAqICAgICAgMSkgYWJzKHogLSBsb2codikpIDwgMTAqKi1wCisgICAgICogICAgICAyKSBhYnMoeSAtIGxvZygxMCkpIDwgMTAqKi1wCisgICAgICogICBUaGUgbXVsdGlwbGljYXRpb24gaXMgZXhhY3QsIHNvOgorICAgICAqICAgICAgMykgYWJzKHQqeSAtIHQqbG9nKDEwKSkgPCB0KjEwKiotcAorICAgICAqICAgVGhlIHN1bSBpcyBleGFjdCwgc286CisgICAgICogICAgICA0KSBhYnMoKHogKyB0KnkpIC0gKGxvZyh2KSArIHQqbG9nKDEwKSkpIDwgKGFicyh0KSArIDEpICogMTAqKi1wCisgICAgICogICBCb3VuZHMgZm9yIGxvZyh2KSBhbmQgbG9nKDEwKToKKyAgICAgKiAgICAgIDUpIC03LzEwIDwgbG9nKHYpIDwgMTcvMTAKKyAgICAgKiAgICAgIDYpIDIzLzEwIDwgbG9nKDEwKSA8IDI0LzEwCisgICAgICogICBVc2luZyA0KSwgNSksIDYpIGFuZCB0ICE9IDAsIHRoZSByZWxhdGl2ZSBlcnJvciBpczoKKyAgICAgKgorICAgICAqICAgICAgNykgcmVsZXJyIDwgKChhYnModCkgKyAxKSoxMCoqLXApIC8gYWJzKGxvZyh2KSArIHQqbG9nKDEwKSkKKyAgICAgKiAgICAgICAgICAgICAgICA8IDAuNSAqIDEwKiooLXAgKyAxKSA9IDAuNSAqIDEwKiooLWN0eC0+cHJlYy0xKQorICAgICAqLworICAgIG1wZF9xbG4xMCgmdiwgbWF4cHJlYysxLCBzdGF0dXMpOworICAgIG1wZF9xbXVsX3NzaXplKCZ0bXAsICZ2LCB0LCAmbWF4Y29udGV4dCwgc3RhdHVzKTsKKyAgICBtcGRfcWFkZChyZXN1bHQsICZ0bXAsIHosICZtYXhjb250ZXh0LCBzdGF0dXMpOworCisKK2ZpbmlzaDoKKyAgICAqc3RhdHVzIHw9IChNUERfSW5leGFjdHxNUERfUm91bmRlZCk7CisgICAgbXBkX2RlbCgmdik7CisgICAgbXBkX2RlbCgmdnRtcCk7CisgICAgbXBkX2RlbCgmdG1wKTsKK30KKworLyogbG4oYSkgKi8KK3ZvaWQKK21wZF9xbG4obXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IHdvcmtjdHg7CisgICAgbXBkX3NzaXplX3QgYWRqZXhwLCB0OworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfbmFuKHJlc3VsdCwgYSwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1wZF9pc25lZ2F0aXZlKGEpKSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCBNUERfUE9TLCBNUERfSU5GKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGEpKSB7CisgICAgICAgIG1wZF9zZXRzcGVjaWFsKHJlc3VsdCwgTVBEX05FRywgTVBEX0lORik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1wZF9pc25lZ2F0aXZlKGEpKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoX21wZF9jbXAoYSwgJm9uZSkgPT0gMCkgeworICAgICAgICBfc2V0dHJpcGxlKHJlc3VsdCwgTVBEX1BPUywgMCwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLyoKKyAgICAgKiBDaGVjayBpZiB0aGUgcmVzdWx0IHdpbGwgb3ZlcmZsb3cgKDAgPCB4LCB4ICE9IDEpOgorICAgICAqICAgMSkgbG9nMTAoeCkgPCAwIGlmZiBhZGpleHAoeCkgPCAwCisgICAgICogICAyKSAwIDwgeCAvXCB4IDw9IHkgPT0+IGFkamV4cCh4KSA8PSBhZGpleHAoeSkKKyAgICAgKiAgIDMpIDAgPCB4IC9cIHggIT0gMSA9PT4gMiAqIGFicyhsb2cxMCh4KSkgPCBhYnMobG9nKHgpKQorICAgICAqICAgNCkgYWRqZXhwKHgpIDw9IGxvZzEwKHgpIDwgYWRqZXhwKHgpICsgMQorICAgICAqCisgICAgICogQ2FzZSBhZGpleHAoeCkgPj0gMDoKKyAgICAgKiAgIDUpIDIgKiBhZGpleHAoeCkgPCBhYnMobG9nKHgpKQorICAgICAqICAgQ2FzZSBhZGpleHAoeCkgPiAwOgorICAgICAqICAgICA2KSBhZGpleHAoMiAqIGFkamV4cCh4KSkgPD0gYWRqZXhwKGFicyhsb2coeCkpKQorICAgICAqICAgQ2FzZSBhZGpleHAoeCkgPT0gMDoKKyAgICAgKiAgICAgbXBkX2V4cF9kaWdpdHModCktMSA9PSAwIDw9IGVtYXggKHRoZSBzaG9ydGN1dCBpcyBub3QgdHJpZ2dlcmVkKQorICAgICAqCisgICAgICogQ2FzZSBhZGpleHAoeCkgPCAwOgorICAgICAqICAgNykgMiAqICgtYWRqZXhwKHgpIC0gMSkgPCBhYnMobG9nKHgpKQorICAgICAqICAgQ2FzZSBhZGpleHAoeCkgPCAtMToKKyAgICAgKiAgICAgOCkgYWRqZXhwKDIgKiAoLWFkamV4cCh4KSAtIDEpKSA8PSBhZGpleHAoYWJzKGxvZyh4KSkpCisgICAgICogICBDYXNlIGFkamV4cCh4KSA9PSAtMToKKyAgICAgKiAgICAgbXBkX2V4cF9kaWdpdHModCktMSA9PSAwIDw9IGVtYXggKHRoZSBzaG9ydGN1dCBpcyBub3QgdHJpZ2dlcmVkKQorICAgICAqLworICAgIGFkamV4cCA9IG1wZF9hZGpleHAoYSk7CisgICAgdCA9IChhZGpleHAgPCAwKSA/IC1hZGpleHAtMSA6IGFkamV4cDsKKyAgICB0ICo9IDI7CisgICAgaWYgKG1wZF9leHBfZGlnaXRzKHQpLTEgPiBjdHgtPmVtYXgpIHsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfT3ZlcmZsb3d8TVBEX0luZXhhY3R8TVBEX1JvdW5kZWQ7CisgICAgICAgIG1wZF9zZXRzcGVjaWFsKHJlc3VsdCwgKGFkamV4cDwwKSwgTVBEX0lORik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB3b3JrY3R4ID0gKmN0eDsKKyAgICB3b3JrY3R4LnJvdW5kID0gTVBEX1JPVU5EX0hBTEZfRVZFTjsKKworICAgIGlmIChjdHgtPmFsbGNyKSB7CisgICAgICAgIE1QRF9ORVdfU1RBVElDKHQxLCAwLDAsMCwwKTsKKyAgICAgICAgTVBEX05FV19TVEFUSUModDIsIDAsMCwwLDApOworICAgICAgICBNUERfTkVXX1NUQVRJQyh1bHAsIDAsMCwwLDApOworICAgICAgICBNUERfTkVXX1NUQVRJQyhhYSwgMCwwLDAsMCk7CisgICAgICAgIG1wZF9zc2l6ZV90IHByZWM7CisKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBhKSB7CisgICAgICAgICAgICBpZiAoIW1wZF9xY29weSgmYWEsIGEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfTWFsbG9jX2Vycm9yLCBzdGF0dXMpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGEgPSAmYWE7CisgICAgICAgIH0KKworICAgICAgICB3b3JrY3R4LmNsYW1wID0gMDsKKyAgICAgICAgcHJlYyA9IGN0eC0+cHJlYyArIDM7CisgICAgICAgIHdoaWxlICgxKSB7CisgICAgICAgICAgICB3b3JrY3R4LnByZWMgPSBwcmVjOworICAgICAgICAgICAgX21wZF9xbG4ocmVzdWx0LCBhLCAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICAgICAgICAgIF9zc2V0dHJpcGxlKCZ1bHAsIE1QRF9QT1MsIDEsCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQtPmV4cCArIHJlc3VsdC0+ZGlnaXRzLXdvcmtjdHgucHJlYyk7CisKKyAgICAgICAgICAgIHdvcmtjdHgucHJlYyA9IGN0eC0+cHJlYzsKKyAgICAgICAgICAgIG1wZF9xYWRkKCZ0MSwgcmVzdWx0LCAmdWxwLCAmd29ya2N0eCwgJndvcmtjdHguc3RhdHVzKTsKKyAgICAgICAgICAgIG1wZF9xc3ViKCZ0MiwgcmVzdWx0LCAmdWxwLCAmd29ya2N0eCwgJndvcmtjdHguc3RhdHVzKTsKKyAgICAgICAgICAgIGlmIChtcGRfaXNzcGVjaWFsKHJlc3VsdCkgfHwgbXBkX2lzemVyb2NvZWZmKHJlc3VsdCkgfHwKKyAgICAgICAgICAgICAgICBtcGRfcWNtcCgmdDEsICZ0Miwgc3RhdHVzKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgd29ya2N0eC5jbGFtcCA9IGN0eC0+Y2xhbXA7CisgICAgICAgICAgICAgICAgbXBkX2NoZWNrX3VuZGVyZmxvdyhyZXN1bHQsICZ3b3JrY3R4LCBzdGF0dXMpOworICAgICAgICAgICAgICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHByZWMgKz0gTVBEX1JESUdJVFM7CisgICAgICAgIH0KKyAgICAgICAgbXBkX2RlbCgmdDEpOworICAgICAgICBtcGRfZGVsKCZ0Mik7CisgICAgICAgIG1wZF9kZWwoJnVscCk7CisgICAgICAgIG1wZF9kZWwoJmFhKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIF9tcGRfcWxuKHJlc3VsdCwgYSwgJndvcmtjdHgsIHN0YXR1cyk7CisgICAgICAgIG1wZF9jaGVja191bmRlcmZsb3cocmVzdWx0LCAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICAgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsICZ3b3JrY3R4LCBzdGF0dXMpOworICAgIH0KK30KKworLyoKKyAqIEludGVybmFsIGxvZzEwKCkgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBjaGVjayBmb3Igc3BlY2lhbHMsIHplcm8gb3Igb25lLgorICogQ2FzZSBTS0lQX0ZJTkFMSVpFOgorICogICBSZWxhdGl2ZSBlcnJvcjogYWJzKHJlc3VsdCAtIGxvZzEwKGEpKSA8IDAuMSAqIDEwKiotcHJlYyAqIGFicyhsb2cxMChhKSkKKyAqIENhc2UgRE9fRklOQUxJWkU6CisgKiAgIFVscCBlcnJvcjogYWJzKHJlc3VsdCAtIGxvZzEwKGEpKSA8IHVscChsb2cxMChhKSkKKyAqLworZW51bSB7U0tJUF9GSU5BTElaRSwgRE9fRklOQUxJWkV9Oworc3RhdGljIHZvaWQKK19tcGRfcWxvZzEwKGludCBhY3Rpb24sIG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLAorICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9jb250ZXh0X3Qgd29ya2N0eDsKKyAgICBNUERfTkVXX1NUQVRJQyhsbjEwLDAsMCwwLDApOworCisgICAgbXBkX21heGNvbnRleHQoJndvcmtjdHgpOworICAgIHdvcmtjdHgucHJlYyA9IGN0eC0+cHJlYyArIDM7CisgICAgLyogcmVsYXRpdmUgZXJyb3I6IDAuMSAqIDEwKiooLXAtMykuIFRoZSBzcGVjaWZpYyB1bmRlcmZsb3cgc2hvcnRjdXQKKyAgICAgKiBpbiBfbXBkX3FsbigpIGRvZXMgbm90IGNoYW5nZSB0aGUgZmluYWwgcmVzdWx0LiAqLworICAgIF9tcGRfcWxuKHJlc3VsdCwgYSwgJndvcmtjdHgsIHN0YXR1cyk7CisgICAgLyogcmVsYXRpdmUgZXJyb3I6IDUgKiAxMCoqKC1wLTMpICovCisgICAgbXBkX3FsbjEwKCZsbjEwLCB3b3JrY3R4LnByZWMsIHN0YXR1cyk7CisKKyAgICBpZiAoYWN0aW9uID09IERPX0ZJTkFMSVpFKSB7CisgICAgICAgIHdvcmtjdHggPSAqY3R4OworICAgICAgICB3b3JrY3R4LnJvdW5kID0gTVBEX1JPVU5EX0hBTEZfRVZFTjsKKyAgICB9CisgICAgLyogU0tJUF9GSU5BTElaRTogcmVsYXRpdmUgZXJyb3I6IDUgKiAxMCoqKC1wLTMpICovCisgICAgX21wZF9xZGl2KE5PX0lERUFMX0VYUCwgcmVzdWx0LCByZXN1bHQsICZsbjEwLCAmd29ya2N0eCwgc3RhdHVzKTsKKworICAgIG1wZF9kZWwoJmxuMTApOworfQorCisvKiBsb2cxMChhKSAqLwordm9pZAorbXBkX3Fsb2cxMChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9jb250ZXh0X3Qgd29ya2N0eDsKKyAgICBtcGRfc3NpemVfdCBhZGpleHAsIHQ7CisKKyAgICB3b3JrY3R4ID0gKmN0eDsKKyAgICB3b3JrY3R4LnJvdW5kID0gTVBEX1JPVU5EX0hBTEZfRVZFTjsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpKSB7CisgICAgICAgIGlmIChtcGRfcWNoZWNrX25hbihyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChtcGRfaXNuZWdhdGl2ZShhKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1wZF9zZXRzcGVjaWFsKHJlc3VsdCwgTVBEX1BPUywgTVBEX0lORik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1wZF9pc3plcm9jb2VmZihhKSkgeworICAgICAgICBtcGRfc2V0c3BlY2lhbChyZXN1bHQsIE1QRF9ORUcsIE1QRF9JTkYpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtcGRfaXNuZWdhdGl2ZShhKSkgeworICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1wZF9jb2VmZl9pc3BvdzEwKGEpKSB7CisgICAgICAgIHVpbnQ4X3Qgc2lnbiA9IDA7CisgICAgICAgIGFkamV4cCA9IG1wZF9hZGpleHAoYSk7CisgICAgICAgIGlmIChhZGpleHAgPCAwKSB7CisgICAgICAgICAgICBzaWduID0gMTsKKyAgICAgICAgICAgIGFkamV4cCA9IC1hZGpleHA7CisgICAgICAgIH0KKyAgICAgICAgX3NldHRyaXBsZShyZXN1bHQsIHNpZ24sIGFkamV4cCwgMCk7CisgICAgICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAvKgorICAgICAqIENoZWNrIGlmIHRoZSByZXN1bHQgd2lsbCBvdmVyZmxvdyAoMCA8IHgsIHggIT0gMSk6CisgICAgICogICAxKSBsb2cxMCh4KSA8IDAgaWZmIGFkamV4cCh4KSA8IDAKKyAgICAgKiAgIDIpIDAgPCB4IC9cIHggPD0geSA9PT4gYWRqZXhwKHgpIDw9IGFkamV4cCh5KQorICAgICAqICAgMykgYWRqZXhwKHgpIDw9IGxvZzEwKHgpIDwgYWRqZXhwKHgpICsgMQorICAgICAqCisgICAgICogQ2FzZSBhZGpleHAoeCkgPj0gMDoKKyAgICAgKiAgIDQpIGFkamV4cCh4KSA8PSBhYnMobG9nMTAoeCkpCisgICAgICogICBDYXNlIGFkamV4cCh4KSA+IDA6CisgICAgICogICAgIDUpIGFkamV4cChhZGpleHAoeCkpIDw9IGFkamV4cChhYnMobG9nMTAoeCkpKQorICAgICAqICAgQ2FzZSBhZGpleHAoeCkgPT0gMDoKKyAgICAgKiAgICAgbXBkX2V4cF9kaWdpdHModCktMSA9PSAwIDw9IGVtYXggKHRoZSBzaG9ydGN1dCBpcyBub3QgdHJpZ2dlcmVkKQorICAgICAqCisgICAgICogQ2FzZSBhZGpleHAoeCkgPCAwOgorICAgICAqICAgNikgLWFkamV4cCh4KSAtIDEgPCBhYnMobG9nMTAoeCkpCisgICAgICogICBDYXNlIGFkamV4cCh4KSA8IC0xOgorICAgICAqICAgICA3KSBhZGpleHAoLWFkamV4cCh4KSAtIDEpIDw9IGFkamV4cChhYnMobG9nKHgpKSkKKyAgICAgKiAgIENhc2UgYWRqZXhwKHgpID09IC0xOgorICAgICAqICAgICBtcGRfZXhwX2RpZ2l0cyh0KS0xID09IDAgPD0gZW1heCAodGhlIHNob3J0Y3V0IGlzIG5vdCB0cmlnZ2VyZWQpCisgICAgICovCisgICAgYWRqZXhwID0gbXBkX2FkamV4cChhKTsKKyAgICB0ID0gKGFkamV4cCA8IDApID8gLWFkamV4cC0xIDogYWRqZXhwOworICAgIGlmIChtcGRfZXhwX2RpZ2l0cyh0KS0xID4gY3R4LT5lbWF4KSB7CisgICAgICAgICpzdGF0dXMgfD0gTVBEX092ZXJmbG93fE1QRF9JbmV4YWN0fE1QRF9Sb3VuZGVkOworICAgICAgICBtcGRfc2V0c3BlY2lhbChyZXN1bHQsIChhZGpleHA8MCksIE1QRF9JTkYpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGN0eC0+YWxsY3IpIHsKKyAgICAgICAgTVBEX05FV19TVEFUSUModDEsIDAsMCwwLDApOworICAgICAgICBNUERfTkVXX1NUQVRJQyh0MiwgMCwwLDAsMCk7CisgICAgICAgIE1QRF9ORVdfU1RBVElDKHVscCwgMCwwLDAsMCk7CisgICAgICAgIE1QRF9ORVdfU1RBVElDKGFhLCAwLDAsMCwwKTsKKyAgICAgICAgbXBkX3NzaXplX3QgcHJlYzsKKworICAgICAgICBpZiAocmVzdWx0ID09IGEpIHsKKyAgICAgICAgICAgIGlmICghbXBkX3Fjb3B5KCZhYSwgYSwgc3RhdHVzKSkgeworICAgICAgICAgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYSA9ICZhYTsKKyAgICAgICAgfQorCisgICAgICAgIHdvcmtjdHguY2xhbXAgPSAwOworICAgICAgICBwcmVjID0gY3R4LT5wcmVjICsgMzsKKyAgICAgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgICAgIHdvcmtjdHgucHJlYyA9IHByZWM7CisgICAgICAgICAgICBfbXBkX3Fsb2cxMChTS0lQX0ZJTkFMSVpFLCByZXN1bHQsIGEsICZ3b3JrY3R4LCBzdGF0dXMpOworICAgICAgICAgICAgX3NzZXR0cmlwbGUoJnVscCwgTVBEX1BPUywgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC0+ZXhwICsgcmVzdWx0LT5kaWdpdHMtd29ya2N0eC5wcmVjKTsKKworICAgICAgICAgICAgd29ya2N0eC5wcmVjID0gY3R4LT5wcmVjOworICAgICAgICAgICAgbXBkX3FhZGQoJnQxLCByZXN1bHQsICZ1bHAsICZ3b3JrY3R4LCAmd29ya2N0eC5zdGF0dXMpOworICAgICAgICAgICAgbXBkX3FzdWIoJnQyLCByZXN1bHQsICZ1bHAsICZ3b3JrY3R4LCAmd29ya2N0eC5zdGF0dXMpOworICAgICAgICAgICAgaWYgKG1wZF9pc3NwZWNpYWwocmVzdWx0KSB8fCBtcGRfaXN6ZXJvY29lZmYocmVzdWx0KSB8fAorICAgICAgICAgICAgICAgIG1wZF9xY21wKCZ0MSwgJnQyLCBzdGF0dXMpID09IDApIHsKKyAgICAgICAgICAgICAgICB3b3JrY3R4LmNsYW1wID0gY3R4LT5jbGFtcDsKKyAgICAgICAgICAgICAgICBtcGRfY2hlY2tfdW5kZXJmbG93KHJlc3VsdCwgJndvcmtjdHgsIHN0YXR1cyk7CisgICAgICAgICAgICAgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsICZ3b3JrY3R4LCBzdGF0dXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcHJlYyArPSBNUERfUkRJR0lUUzsKKyAgICAgICAgfQorICAgICAgICBtcGRfZGVsKCZ0MSk7CisgICAgICAgIG1wZF9kZWwoJnQyKTsKKyAgICAgICAgbXBkX2RlbCgmdWxwKTsKKyAgICAgICAgbXBkX2RlbCgmYWEpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgX21wZF9xbG9nMTAoRE9fRklOQUxJWkUsIHJlc3VsdCwgYSwgJndvcmtjdHgsIHN0YXR1cyk7CisgICAgICAgIG1wZF9jaGVja191bmRlcmZsb3cocmVzdWx0LCAmd29ya2N0eCwgc3RhdHVzKTsKKyAgICB9Cit9CisKKy8qCisgKiBNYXhpbXVtIG9mIHRoZSB0d28gb3BlcmFuZHMuIEF0dGVudGlvbjogSWYgb25lIG9wZXJhbmQgaXMgYSBxdWlldCBOYU4gYW5kIHRoZQorICogb3RoZXIgaXMgbnVtZXJpYywgdGhlIG51bWVyaWMgb3BlcmFuZCBpcyByZXR1cm5lZC4gVGhpcyBtYXkgbm90IGJlIHdoYXQgb25lCisgKiBleHBlY3RzLgorICovCit2b2lkCittcGRfcW1heChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaW50IGM7CisKKyAgICBpZiAobXBkX2lzcW5hbihhKSAmJiAhbXBkX2lzbmFuKGIpKSB7CisgICAgICAgIG1wZF9xY29weShyZXN1bHQsIGIsIHN0YXR1cyk7CisgICAgfQorICAgIGVsc2UgaWYgKG1wZF9pc3FuYW4oYikgJiYgIW1wZF9pc25hbihhKSkgeworICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpOworICAgIH0KKyAgICBlbHNlIGlmIChtcGRfcWNoZWNrX25hbnMocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgYyA9IF9tcGRfY21wKGEsIGIpOworICAgICAgICBpZiAoYyA9PSAwKSB7CisgICAgICAgICAgICBjID0gX21wZF9jbXBfbnVtZXF1YWwoYSwgYik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYyA8IDApIHsKKyAgICAgICAgICAgIG1wZF9xY29weShyZXN1bHQsIGIsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpOworICAgICAgICB9CisgICAgfQorCisgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsIGN0eCwgc3RhdHVzKTsKK30KKworLyoKKyAqIE1heGltdW0gbWFnbml0dWRlOiBTYW1lIGFzIG1wZF9tYXgoKSwgYnV0IGNvbXBhcmVzIHRoZSBvcGVyYW5kcyB3aXRoIHRoZWlyCisgKiBzaWduIGlnbm9yZWQuCisgKi8KK3ZvaWQKK21wZF9xbWF4X21hZyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIGludCBjOworCisgICAgaWYgKG1wZF9pc3FuYW4oYSkgJiYgIW1wZF9pc25hbihiKSkgeworICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBiLCBzdGF0dXMpOworICAgIH0KKyAgICBlbHNlIGlmIChtcGRfaXNxbmFuKGIpICYmICFtcGRfaXNuYW4oYSkpIHsKKyAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKTsKKyAgICB9CisgICAgZWxzZSBpZiAobXBkX3FjaGVja19uYW5zKHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGMgPSBfbXBkX2NtcF9hYnMoYSwgYik7CisgICAgICAgIGlmIChjID09IDApIHsKKyAgICAgICAgICAgIGMgPSBfbXBkX2NtcF9udW1lcXVhbChhLCBiKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjIDwgMCkgeworICAgICAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYiwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworfQorCisvKgorICogTWluaW11bSBvZiB0aGUgdHdvIG9wZXJhbmRzLiBBdHRlbnRpb246IElmIG9uZSBvcGVyYW5kIGlzIGEgcXVpZXQgTmFOIGFuZCB0aGUKKyAqIG90aGVyIGlzIG51bWVyaWMsIHRoZSBudW1lcmljIG9wZXJhbmQgaXMgcmV0dXJuZWQuIFRoaXMgbWF5IG5vdCBiZSB3aGF0IG9uZQorICogZXhwZWN0cy4KKyAqLwordm9pZAorbXBkX3FtaW4obXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIGludCBjOworCisgICAgaWYgKG1wZF9pc3FuYW4oYSkgJiYgIW1wZF9pc25hbihiKSkgeworICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBiLCBzdGF0dXMpOworICAgIH0KKyAgICBlbHNlIGlmIChtcGRfaXNxbmFuKGIpICYmICFtcGRfaXNuYW4oYSkpIHsKKyAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKTsKKyAgICB9CisgICAgZWxzZSBpZiAobXBkX3FjaGVja19uYW5zKHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGMgPSBfbXBkX2NtcChhLCBiKTsKKyAgICAgICAgaWYgKGMgPT0gMCkgeworICAgICAgICAgICAgYyA9IF9tcGRfY21wX251bWVxdWFsKGEsIGIpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGMgPCAwKSB7CisgICAgICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYiwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qCisgKiBNaW5pbXVtIG1hZ25pdHVkZTogU2FtZSBhcyBtcGRfbWluKCksIGJ1dCBjb21wYXJlcyB0aGUgb3BlcmFuZHMgd2l0aCB0aGVpcgorICogc2lnbiBpZ25vcmVkLgorICovCit2b2lkCittcGRfcW1pbl9tYWcobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBpbnQgYzsKKworICAgIGlmIChtcGRfaXNxbmFuKGEpICYmICFtcGRfaXNuYW4oYikpIHsKKyAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYiwgc3RhdHVzKTsKKyAgICB9CisgICAgZWxzZSBpZiAobXBkX2lzcW5hbihiKSAmJiAhbXBkX2lzbmFuKGEpKSB7CisgICAgICAgIG1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cyk7CisgICAgfQorICAgIGVsc2UgaWYgKG1wZF9xY2hlY2tfbmFucyhyZXN1bHQsIGEsIGIsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBjID0gX21wZF9jbXBfYWJzKGEsIGIpOworICAgICAgICBpZiAoYyA9PSAwKSB7CisgICAgICAgICAgICBjID0gX21wZF9jbXBfbnVtZXF1YWwoYSwgYik7CisgICAgICAgIH0KKworICAgICAgICBpZiAoYyA8IDApIHsKKyAgICAgICAgICAgIG1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBiLCBzdGF0dXMpOworICAgICAgICB9CisgICAgfQorCisgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsIGN0eCwgc3RhdHVzKTsKK30KKworLyogTWluaW11bSBzcGFjZSBuZWVkZWQgZm9yIHRoZSByZXN1bHQgYXJyYXkgaW4gX2thcmF0c3ViYV9yZWMoKS4gKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3NpemVfdAorX2ttdWxfcmVzdWx0c2l6ZShtcGRfc2l6ZV90IGxhLCBtcGRfc2l6ZV90IGxiKQoreworICAgIG1wZF9zaXplX3QgbiwgbTsKKworICAgIG4gPSBhZGRfc2l6ZV90KGxhLCBsYik7CisgICAgbiA9IGFkZF9zaXplX3QobiwgMSk7CisKKyAgICBtID0gKGxhKzEpLzIgKyAxOworICAgIG0gPSBtdWxfc2l6ZV90KG0sIDMpOworCisgICAgcmV0dXJuIChtID4gbikgPyBtIDogbjsKK30KKworLyogV29yayBzcGFjZSBuZWVkZWQgaW4gX2thcmF0c3ViYV9yZWMoKS4gbGltID49IDQgKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3NpemVfdAorX2ttdWxfd29ya3NpemUobXBkX3NpemVfdCBuLCBtcGRfc2l6ZV90IGxpbSkKK3sKKyAgICBtcGRfc2l6ZV90IG07CisKKyAgICBpZiAobiA8PSBsaW0pIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgbSA9IChuKzEpLzIgKyAxOworCisgICAgcmV0dXJuIGFkZF9zaXplX3QobXVsX3NpemVfdChtLCAyKSwgX2ttdWxfd29ya3NpemUobSwgbGltKSk7Cit9CisKKworI2RlZmluZSBNUERfS0FSQVRTVUJBX0JBU0VDQVNFIDE2ICAvKiBtdXN0IGJlID49IDQgKi8KKworLyoKKyAqIEFkZCB0aGUgcHJvZHVjdCBvZiBhIGFuZCBiIHRvIGMuCisgKiBjIG11c3QgYmUgX2ttdWxfcmVzdWx0c2l6ZShsYSwgbGIpIGluIHNpemUuCisgKiB3IGlzIHVzZWQgYXMgYSB3b3JrIGFycmF5IGFuZCBtdXN0IGJlIF9rbXVsX3dvcmtzaXplKGEsIGxpbSkgaW4gc2l6ZS4KKyAqIFJvbWFuIEUuIE1hZWRlciwgU3RvcmFnZSBBbGxvY2F0aW9uIGZvciB0aGUgS2FyYXRzdWJhIEludGVnZXIgTXVsdGlwbGljYXRpb24KKyAqIEFsZ29yaXRobS4gSW4gIkRlc2lnbiBhbmQgaW1wbGVtZW50YXRpb24gb2Ygc3ltYm9saWMgY29tcHV0YXRpb24gc3lzdGVtcyIsCisgKiBTcHJpbmdlciwgMTk5MywgSVNCTiAzNTQwNTcyMzVYLCA5NzgzNTQwNTcyMzUwLgorICovCitzdGF0aWMgdm9pZAorX2thcmF0c3ViYV9yZWMobXBkX3VpbnRfdCAqYywgY29uc3QgbXBkX3VpbnRfdCAqYSwgY29uc3QgbXBkX3VpbnRfdCAqYiwKKyAgICAgICAgICAgICAgIG1wZF91aW50X3QgKncsIG1wZF9zaXplX3QgbGEsIG1wZF9zaXplX3QgbGIpCit7CisgICAgbXBkX3NpemVfdCBtLCBsdDsKKworICAgIGFzc2VydChsYSA+PSBsYiAmJiBsYiA+IDApOworICAgIGFzc2VydChsYSA8PSBNUERfS0FSQVRTVUJBX0JBU0VDQVNFIHx8IHcgIT0gTlVMTCk7CisKKyAgICBpZiAobGEgPD0gTVBEX0tBUkFUU1VCQV9CQVNFQ0FTRSkgeworICAgICAgICBfbXBkX2Jhc2VtdWwoYywgYSwgYiwgbGEsIGxiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG0gPSAobGErMSkvMjsgIC8vIGNlaWwobGEvMikKKworICAgIC8qIGxiIDw9IG0gPCBsYSAqLworICAgIGlmIChsYiA8PSBtKSB7CisKKyAgICAgICAgLyogbGIgY2FuIG5vdyBiZSBsYXJnZXIgdGhhbiBsYS1tICovCisgICAgICAgIGlmIChsYiA+IGxhLW0pIHsKKyAgICAgICAgICAgIGx0ID0gbGIgKyBsYiArIDE7ICAgICAgIC8vIHNwYWNlIG5lZWRlZCBmb3IgcmVzdWx0IGFycmF5CisgICAgICAgICAgICBtcGRfdWludF96ZXJvKHcsIGx0KTsgICAvLyBjbGVhciByZXN1bHQgYXJyYXkKKyAgICAgICAgICAgIF9rYXJhdHN1YmFfcmVjKHcsIGIsIGErbSwgdytsdCwgbGIsIGxhLW0pOyAvLyBiKmFoCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBsdCA9IChsYS1tKSArIChsYS1tKSArIDE7ICAvLyBzcGFjZSBuZWVkZWQgZm9yIHJlc3VsdCBhcnJheQorICAgICAgICAgICAgbXBkX3VpbnRfemVybyh3LCBsdCk7ICAgICAgLy8gY2xlYXIgcmVzdWx0IGFycmF5CisgICAgICAgICAgICBfa2FyYXRzdWJhX3JlYyh3LCBhK20sIGIsIHcrbHQsIGxhLW0sIGxiKTsgLy8gYWgqYgorICAgICAgICB9CisgICAgICAgIF9tcGRfYmFzZWFkZHRvKGMrbSwgdywgKGxhLW0pK2xiKTsgICAgICAvLyBhZGQgYWgqYipCKiptCisKKyAgICAgICAgbHQgPSBtICsgbSArIDE7ICAgICAgICAgLy8gc3BhY2UgbmVlZGVkIGZvciB0aGUgcmVzdWx0IGFycmF5CisgICAgICAgIG1wZF91aW50X3plcm8odywgbHQpOyAgIC8vIGNsZWFyIHJlc3VsdCBhcnJheQorICAgICAgICBfa2FyYXRzdWJhX3JlYyh3LCBhLCBiLCB3K2x0LCBtLCBsYik7ICAvLyBhbCpiCisgICAgICAgIF9tcGRfYmFzZWFkZHRvKGMsIHcsIG0rbGIpOyAgICAvLyBhZGQgYWwqYgorCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvKiBsYSA+PSBsYiA+IG0gKi8KKyAgICBtZW1jcHkodywgYSwgbSAqIHNpemVvZiAqdyk7CisgICAgd1ttXSA9IDA7CisgICAgX21wZF9iYXNlYWRkdG8odywgYSttLCBsYS1tKTsKKworICAgIG1lbWNweSh3KyhtKzEpLCBiLCBtICogc2l6ZW9mICp3KTsKKyAgICB3W20rMSttXSA9IDA7CisgICAgX21wZF9iYXNlYWRkdG8odysobSsxKSwgYittLCBsYi1tKTsKKworICAgIF9rYXJhdHN1YmFfcmVjKGMrbSwgdywgdysobSsxKSwgdysyKihtKzEpLCBtKzEsIG0rMSk7CisKKyAgICBsdCA9IChsYS1tKSArIChsYS1tKSArIDE7CisgICAgbXBkX3VpbnRfemVybyh3LCBsdCk7CisKKyAgICBfa2FyYXRzdWJhX3JlYyh3LCBhK20sIGIrbSwgdytsdCwgbGEtbSwgbGItbSk7CisKKyAgICBfbXBkX2Jhc2VhZGR0byhjKzIqbSwgdywgKGxhLW0pICsgKGxiLW0pKTsKKyAgICBfbXBkX2Jhc2VzdWJmcm9tKGMrbSwgdywgKGxhLW0pICsgKGxiLW0pKTsKKworICAgIGx0ID0gbSArIG0gKyAxOworICAgIG1wZF91aW50X3plcm8odywgbHQpOworCisgICAgX2thcmF0c3ViYV9yZWModywgYSwgYiwgdytsdCwgbSwgbSk7CisgICAgX21wZF9iYXNlYWRkdG8oYywgdywgbSttKTsKKyAgICBfbXBkX2Jhc2VzdWJmcm9tKGMrbSwgdywgbSttKTsKKworICAgIHJldHVybjsKK30KKworLyoKKyAqIE11bHRpcGx5IHUgYW5kIHYsIHVzaW5nIEthcmF0c3ViYSBtdWx0aXBsaWNhdGlvbi4gUmV0dXJucyBhIHBvaW50ZXIKKyAqIHRvIHRoZSByZXN1bHQgb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUgKG1hbGxvYyBlcnJvcikuCisgKiBDb25kaXRpb25zOiB1bGVuID49IHZsZW4sIHVsZW4gPj0gNAorICovCittcGRfdWludF90ICoKK19tcGRfa211bChjb25zdCBtcGRfdWludF90ICp1LCBjb25zdCBtcGRfdWludF90ICp2LAorICAgICAgICAgIG1wZF9zaXplX3QgdWxlbiwgbXBkX3NpemVfdCB2bGVuLAorICAgICAgICAgIG1wZF9zaXplX3QgKnJzaXplKQoreworICAgIG1wZF91aW50X3QgKnJlc3VsdCA9IE5VTEwsICp3ID0gTlVMTDsKKyAgICBtcGRfc2l6ZV90IG07CisKKyAgICBhc3NlcnQodWxlbiA+PSA0KTsKKyAgICBhc3NlcnQodWxlbiA+PSB2bGVuKTsKKworICAgICpyc2l6ZSA9IF9rbXVsX3Jlc3VsdHNpemUodWxlbiwgdmxlbik7CisgICAgaWYgKChyZXN1bHQgPSBtcGRfY2FsbG9jKCpyc2l6ZSwgc2l6ZW9mICpyZXN1bHQpKSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG0gPSBfa211bF93b3Jrc2l6ZSh1bGVuLCBNUERfS0FSQVRTVUJBX0JBU0VDQVNFKTsKKyAgICBpZiAobSAmJiAoKHcgPSBtcGRfY2FsbG9jKG0sIHNpemVvZiAqdykpID09IE5VTEwpKSB7CisgICAgICAgIG1wZF9mcmVlKHJlc3VsdCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIF9rYXJhdHN1YmFfcmVjKHJlc3VsdCwgdSwgdiwgdywgdWxlbiwgdmxlbik7CisKKworICAgIGlmICh3KSBtcGRfZnJlZSh3KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKKy8qCisgKiBEZXRlcm1pbmUgdGhlIG1pbmltdW0gbGVuZ3RoIGZvciB0aGUgbnVtYmVyIHRoZW9yZXRpYyB0cmFuc2Zvcm0uIFZhbGlkCisgKiB0cmFuc2Zvcm0gbGVuZ3RocyBhcmUgMioqbiBvciAzKjIqKm4sIHdoZXJlIDIqKm4gPD0gTVBEX01BWFRSQU5TRk9STV8yTi4KKyAqIFRoZSBmdW5jdGlvbiBmaW5kcyB0aGUgc2hvcnRlc3QgbGVuZ3RoIG0gc3VjaCB0aGF0IHJzaXplIDw9IG0uCisgKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3NpemVfdAorX21wZF9nZXRfdHJhbnNmb3JtX2xlbihtcGRfc2l6ZV90IHJzaXplKQoreworICAgIG1wZF9zaXplX3QgbG9nMnJzaXplOworICAgIG1wZF9zaXplX3QgeCwgc3RlcDsKKworICAgIGFzc2VydChyc2l6ZSA+PSA0KTsKKyAgICBsb2cycnNpemUgPSBtcGRfYnNyKHJzaXplKTsKKworICAgIGlmIChyc2l6ZSA8PSAxMDI0KSB7CisgICAgICAgIC8qIDIqKm4gaXMgZmFzdGVyIGluIHRoaXMgcmFuZ2UuICovCisgICAgICAgIHggPSAoKG1wZF9zaXplX3QpMSk8PGxvZzJyc2l6ZTsKKyAgICAgICAgcmV0dXJuIChyc2l6ZSA9PSB4KSA/IHggOiB4PDwxOworICAgIH0KKyAgICBlbHNlIGlmIChyc2l6ZSA8PSBNUERfTUFYVFJBTlNGT1JNXzJOKSB7CisgICAgICAgIHggPSAoKG1wZF9zaXplX3QpMSk8PGxvZzJyc2l6ZTsKKyAgICAgICAgaWYgKHJzaXplID09IHgpIHJldHVybiB4OworICAgICAgICBzdGVwID0geD4+MTsKKyAgICAgICAgeCArPSBzdGVwOworICAgICAgICByZXR1cm4gKHJzaXplIDw9IHgpID8geCA6IHggKyBzdGVwOworICAgIH0KKyAgICBlbHNlIGlmIChyc2l6ZSA8PSBNUERfTUFYVFJBTlNGT1JNXzJOK01QRF9NQVhUUkFOU0ZPUk1fMk4vMikgeworICAgICAgICByZXR1cm4gTVBEX01BWFRSQU5TRk9STV8yTitNUERfTUFYVFJBTlNGT1JNXzJOLzI7CisgICAgfQorICAgIGVsc2UgaWYgKHJzaXplIDw9IDMqTVBEX01BWFRSQU5TRk9STV8yTikgeworICAgICAgICByZXR1cm4gMypNUERfTUFYVFJBTlNGT1JNXzJOOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcmV0dXJuIE1QRF9TSVpFX01BWDsKKyAgICB9Cit9CisKKyNpZmRlZiBQUFJPCisjaWZuZGVmIF9NU0NfVkVSCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHNob3J0CitfbXBkX2dldF9jb250cm9sODcodm9pZCkKK3sKKyAgICB1bnNpZ25lZCBzaG9ydCBjdzsKKworICAgIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKGN3KSk7CisgICAgcmV0dXJuIGN3OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfc2V0X2NvbnRyb2w4Nyh1bnNpZ25lZCBzaG9ydCBjdykKK3sKKyAgICBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZsZGN3ICUwIiA6IDogIm0iIChjdykpOworfQorI2VuZGlmCisKK3Vuc2lnbmVkIGludAorbXBkX3NldF9mZW52KHZvaWQpCit7CisgICAgdW5zaWduZWQgaW50IGN3OworI2lmZGVmIF9NU0NfVkVSCisgICAgdW5zaWduZWQgaW50IGZsYWdzID0KKyAgICAgICAgX0VNX0lOVkFMSUR8X0VNX0RFTk9STUFMfF9FTV9aRVJPRElWSURFfF9FTV9PVkVSRkxPV3wKKyAgICAgICAgX0VNX1VOREVSRkxPV3xfRU1fSU5FWEFDVHxfUkNfQ0hPUHxfUENfNjQ7CisgICAgdW5zaWduZWQgaW50IG1hc2sgPSBfTUNXX0VNfF9NQ1dfUkN8X01DV19QQzsKKyAgICB1bnNpZ25lZCBpbnQgZHVtbXk7CisKKyAgICBfX2NvbnRyb2w4N18yKDAsIDAsICZjdywgTlVMTCk7CisgICAgX19jb250cm9sODdfMihmbGFncywgbWFzaywgJmR1bW15LCBOVUxMKTsKKyNlbHNlCisgICAgY3cgPSBfbXBkX2dldF9jb250cm9sODcoKTsKKyAgICBfbXBkX3NldF9jb250cm9sODcoY3d8MHhGM0YpOworI2VuZGlmCisgICAgcmV0dXJuIGN3OworfQorCit2b2lkCittcGRfcmVzdG9yZV9mZW52KHVuc2lnbmVkIGludCBjdykKK3sKKyNpZmRlZiBfTVNDX1ZFUgorICAgIHVuc2lnbmVkIGludCBtYXNrID0gX01DV19FTXxfTUNXX1JDfF9NQ1dfUEM7CisgICAgdW5zaWduZWQgaW50IGR1bW15OworCisgICAgX19jb250cm9sODdfMihjdywgbWFzaywgJmR1bW15LCBOVUxMKTsKKyNlbHNlCisgICAgX21wZF9zZXRfY29udHJvbDg3KCh1bnNpZ25lZCBzaG9ydCljdyk7CisjZW5kaWYKK30KKyNlbmRpZiAvKiBQUFJPICovCisKKy8qCisgKiBNdWx0aXBseSB1IGFuZCB2LCB1c2luZyB0aGUgZmFzdCBudW1iZXIgdGhlb3JldGljIHRyYW5zZm9ybS4gUmV0dXJucworICogYSBwb2ludGVyIHRvIHRoZSByZXN1bHQgb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUgKG1hbGxvYyBlcnJvcikuCisgKi8KK21wZF91aW50X3QgKgorX21wZF9mbnRtdWwoY29uc3QgbXBkX3VpbnRfdCAqdSwgY29uc3QgbXBkX3VpbnRfdCAqdiwKKyAgICAgICAgICAgIG1wZF9zaXplX3QgdWxlbiwgbXBkX3NpemVfdCB2bGVuLAorICAgICAgICAgICAgbXBkX3NpemVfdCAqcnNpemUpCit7CisgICAgbXBkX3VpbnRfdCAqYzEgPSBOVUxMLCAqYzIgPSBOVUxMLCAqYzMgPSBOVUxMLCAqdnRtcCA9IE5VTEw7CisgICAgbXBkX3NpemVfdCBuOworCisjaWZkZWYgUFBSTworICAgIHVuc2lnbmVkIGludCBjdzsKKyAgICBjdyA9IG1wZF9zZXRfZmVudigpOworI2VuZGlmCisKKyAgICAqcnNpemUgPSBhZGRfc2l6ZV90KHVsZW4sIHZsZW4pOworICAgIGlmICgobiA9IF9tcGRfZ2V0X3RyYW5zZm9ybV9sZW4oKnJzaXplKSkgPT0gTVBEX1NJWkVfTUFYKSB7CisgICAgICAgIGdvdG8gbWFsbG9jX2Vycm9yOworICAgIH0KKworICAgIGlmICgoYzEgPSBtcGRfY2FsbG9jKG4sIHNpemVvZiAqYzEpKSA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gbWFsbG9jX2Vycm9yOworICAgIH0KKyAgICBpZiAoKGMyID0gbXBkX2NhbGxvYyhuLCBzaXplb2YgKmMyKSkgPT0gTlVMTCkgeworICAgICAgICBnb3RvIG1hbGxvY19lcnJvcjsKKyAgICB9CisgICAgaWYgKChjMyA9IG1wZF9jYWxsb2Mobiwgc2l6ZW9mICpjMykpID09IE5VTEwpIHsKKyAgICAgICAgZ290byBtYWxsb2NfZXJyb3I7CisgICAgfQorCisgICAgbWVtY3B5KGMxLCB1LCB1bGVuICogKHNpemVvZiAqYzEpKTsKKyAgICBtZW1jcHkoYzIsIHUsIHVsZW4gKiAoc2l6ZW9mICpjMikpOworICAgIG1lbWNweShjMywgdSwgdWxlbiAqIChzaXplb2YgKmMzKSk7CisKKyAgICBpZiAodSA9PSB2KSB7CisgICAgICAgIGlmICghZm50X2F1dG9jb252b2x1dGUoYzEsIG4sIFAxKSB8fAorICAgICAgICAgICAgIWZudF9hdXRvY29udm9sdXRlKGMyLCBuLCBQMikgfHwKKyAgICAgICAgICAgICFmbnRfYXV0b2NvbnZvbHV0ZShjMywgbiwgUDMpKSB7CisgICAgICAgICAgICBnb3RvIG1hbGxvY19lcnJvcjsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKCh2dG1wID0gbXBkX2NhbGxvYyhuLCBzaXplb2YgKnZ0bXApKSA9PSBOVUxMKSB7CisgICAgICAgICAgICBnb3RvIG1hbGxvY19lcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweSh2dG1wLCB2LCB2bGVuICogKHNpemVvZiAqdnRtcCkpOworICAgICAgICBpZiAoIWZudF9jb252b2x1dGUoYzEsIHZ0bXAsIG4sIFAxKSkgeworICAgICAgICAgICAgbXBkX2ZyZWUodnRtcCk7CisgICAgICAgICAgICBnb3RvIG1hbGxvY19lcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIG1lbWNweSh2dG1wLCB2LCB2bGVuICogKHNpemVvZiAqdnRtcCkpOworICAgICAgICBtcGRfdWludF96ZXJvKHZ0bXArdmxlbiwgbi12bGVuKTsKKyAgICAgICAgaWYgKCFmbnRfY29udm9sdXRlKGMyLCB2dG1wLCBuLCBQMikpIHsKKyAgICAgICAgICAgIG1wZF9mcmVlKHZ0bXApOworICAgICAgICAgICAgZ290byBtYWxsb2NfZXJyb3I7CisgICAgICAgIH0KKworICAgICAgICBtZW1jcHkodnRtcCwgdiwgdmxlbiAqIChzaXplb2YgKnZ0bXApKTsKKyAgICAgICAgbXBkX3VpbnRfemVybyh2dG1wK3ZsZW4sIG4tdmxlbik7CisgICAgICAgIGlmICghZm50X2NvbnZvbHV0ZShjMywgdnRtcCwgbiwgUDMpKSB7CisgICAgICAgICAgICBtcGRfZnJlZSh2dG1wKTsKKyAgICAgICAgICAgIGdvdG8gbWFsbG9jX2Vycm9yOworICAgICAgICB9CisKKyAgICAgICAgbXBkX2ZyZWUodnRtcCk7CisgICAgfQorCisgICAgY3J0MyhjMSwgYzIsIGMzLCAqcnNpemUpOworCitvdXQ6CisjaWZkZWYgUFBSTworICAgIG1wZF9yZXN0b3JlX2ZlbnYoY3cpOworI2VuZGlmCisgICAgaWYgKGMyKSBtcGRfZnJlZShjMik7CisgICAgaWYgKGMzKSBtcGRfZnJlZShjMyk7CisgICAgcmV0dXJuIGMxOworCittYWxsb2NfZXJyb3I6CisgICAgaWYgKGMxKSBtcGRfZnJlZShjMSk7CisgICAgYzEgPSBOVUxMOworICAgIGdvdG8gb3V0OworfQorCisKKy8qCisgKiBLYXJhdHN1YmEgbXVsdGlwbGljYXRpb24gd2l0aCBGTlQvYmFzZW11bCBhcyB0aGUgYmFzZSBjYXNlLgorICovCitzdGF0aWMgaW50Citfa2FyYXRzdWJhX3JlY19mbnQobXBkX3VpbnRfdCAqYywgY29uc3QgbXBkX3VpbnRfdCAqYSwgY29uc3QgbXBkX3VpbnRfdCAqYiwKKyAgICAgICAgICAgICAgICAgICBtcGRfdWludF90ICp3LCBtcGRfc2l6ZV90IGxhLCBtcGRfc2l6ZV90IGxiKQoreworICAgIG1wZF9zaXplX3QgbSwgbHQ7CisKKyAgICBhc3NlcnQobGEgPj0gbGIgJiYgbGIgPiAwKTsKKyAgICBhc3NlcnQobGEgPD0gMyooTVBEX01BWFRSQU5TRk9STV8yTi8yKSB8fCB3ICE9IE5VTEwpOworCisgICAgaWYgKGxhIDw9IDMqKE1QRF9NQVhUUkFOU0ZPUk1fMk4vMikpIHsKKworICAgICAgICBpZiAobGIgPD0gMTkyKSB7CisgICAgICAgICAgICBfbXBkX2Jhc2VtdWwoYywgYiwgYSwgbGIsIGxhKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1wZF91aW50X3QgKnJlc3VsdDsKKyAgICAgICAgICAgIG1wZF9zaXplX3QgZHVtbXk7CisKKyAgICAgICAgICAgIGlmICgocmVzdWx0ID0gX21wZF9mbnRtdWwoYSwgYiwgbGEsIGxiLCAmZHVtbXkpKSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtZW1jcHkoYywgcmVzdWx0LCAobGErbGIpICogKHNpemVvZiAqcmVzdWx0KSk7CisgICAgICAgICAgICBtcGRfZnJlZShyZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIG0gPSAobGErMSkvMjsgIC8vIGNlaWwobGEvMikKKworICAgIC8qIGxiIDw9IG0gPCBsYSAqLworICAgIGlmIChsYiA8PSBtKSB7CisKKyAgICAgICAgLyogbGIgY2FuIG5vdyBiZSBsYXJnZXIgdGhhbiBsYS1tICovCisgICAgICAgIGlmIChsYiA+IGxhLW0pIHsKKyAgICAgICAgICAgIGx0ID0gbGIgKyBsYiArIDE7ICAgICAgIC8vIHNwYWNlIG5lZWRlZCBmb3IgcmVzdWx0IGFycmF5CisgICAgICAgICAgICBtcGRfdWludF96ZXJvKHcsIGx0KTsgICAvLyBjbGVhciByZXN1bHQgYXJyYXkKKyAgICAgICAgICAgIGlmICghX2thcmF0c3ViYV9yZWNfZm50KHcsIGIsIGErbSwgdytsdCwgbGIsIGxhLW0pKSB7IC8vIGIqYWgKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsgLyogR0NPVl9VTkxJS0VMWSAqLworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbHQgPSAobGEtbSkgKyAobGEtbSkgKyAxOyAgLy8gc3BhY2UgbmVlZGVkIGZvciByZXN1bHQgYXJyYXkKKyAgICAgICAgICAgIG1wZF91aW50X3plcm8odywgbHQpOyAgICAgIC8vIGNsZWFyIHJlc3VsdCBhcnJheQorICAgICAgICAgICAgaWYgKCFfa2FyYXRzdWJhX3JlY19mbnQodywgYSttLCBiLCB3K2x0LCBsYS1tLCBsYikpIHsgLy8gYWgqYgorICAgICAgICAgICAgICAgIHJldHVybiAwOyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgX21wZF9iYXNlYWRkdG8oYyttLCB3LCAobGEtbSkrbGIpOyAvLyBhZGQgYWgqYipCKiptCisKKyAgICAgICAgbHQgPSBtICsgbSArIDE7ICAgICAgICAgLy8gc3BhY2UgbmVlZGVkIGZvciB0aGUgcmVzdWx0IGFycmF5CisgICAgICAgIG1wZF91aW50X3plcm8odywgbHQpOyAgIC8vIGNsZWFyIHJlc3VsdCBhcnJheQorICAgICAgICBpZiAoIV9rYXJhdHN1YmFfcmVjX2ZudCh3LCBhLCBiLCB3K2x0LCBtLCBsYikpIHsgIC8vIGFsKmIKKyAgICAgICAgICAgIHJldHVybiAwOyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgICAgIH0KKyAgICAgICAgX21wZF9iYXNlYWRkdG8oYywgdywgbStsYik7ICAgICAgIC8vIGFkZCBhbCpiCisKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgLyogbGEgPj0gbGIgPiBtICovCisgICAgbWVtY3B5KHcsIGEsIG0gKiBzaXplb2YgKncpOworICAgIHdbbV0gPSAwOworICAgIF9tcGRfYmFzZWFkZHRvKHcsIGErbSwgbGEtbSk7CisKKyAgICBtZW1jcHkodysobSsxKSwgYiwgbSAqIHNpemVvZiAqdyk7CisgICAgd1ttKzErbV0gPSAwOworICAgIF9tcGRfYmFzZWFkZHRvKHcrKG0rMSksIGIrbSwgbGItbSk7CisKKyAgICBpZiAoIV9rYXJhdHN1YmFfcmVjX2ZudChjK20sIHcsIHcrKG0rMSksIHcrMioobSsxKSwgbSsxLCBtKzEpKSB7CisgICAgICAgIHJldHVybiAwOyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgfQorCisgICAgbHQgPSAobGEtbSkgKyAobGEtbSkgKyAxOworICAgIG1wZF91aW50X3plcm8odywgbHQpOworCisgICAgaWYgKCFfa2FyYXRzdWJhX3JlY19mbnQodywgYSttLCBiK20sIHcrbHQsIGxhLW0sIGxiLW0pKSB7CisgICAgICAgIHJldHVybiAwOyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgfQorCisgICAgX21wZF9iYXNlYWRkdG8oYysyKm0sIHcsIChsYS1tKSArIChsYi1tKSk7CisgICAgX21wZF9iYXNlc3ViZnJvbShjK20sIHcsIChsYS1tKSArIChsYi1tKSk7CisKKyAgICBsdCA9IG0gKyBtICsgMTsKKyAgICBtcGRfdWludF96ZXJvKHcsIGx0KTsKKworICAgIGlmICghX2thcmF0c3ViYV9yZWNfZm50KHcsIGEsIGIsIHcrbHQsIG0sIG0pKSB7CisgICAgICAgIHJldHVybiAwOyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgfQorICAgIF9tcGRfYmFzZWFkZHRvKGMsIHcsIG0rbSk7CisgICAgX21wZF9iYXNlc3ViZnJvbShjK20sIHcsIG0rbSk7CisKKyAgICByZXR1cm4gMTsKK30KKworLyoKKyAqIE11bHRpcGx5IHUgYW5kIHYsIHVzaW5nIEthcmF0c3ViYSBtdWx0aXBsaWNhdGlvbiB3aXRoIHRoZSBGTlQgYXMgdGhlCisgKiBiYXNlIGNhc2UuIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSByZXN1bHQgb3IgTlVMTCBpbiBjYXNlIG9mIGZhaWx1cmUKKyAqIChtYWxsb2MgZXJyb3IpLiBDb25kaXRpb25zOiB1bGVuID49IHZsZW4sIHVsZW4gPj0gNC4KKyAqLworbXBkX3VpbnRfdCAqCitfbXBkX2ttdWxfZm50KGNvbnN0IG1wZF91aW50X3QgKnUsIGNvbnN0IG1wZF91aW50X3QgKnYsCisgICAgICAgICAgICAgIG1wZF9zaXplX3QgdWxlbiwgbXBkX3NpemVfdCB2bGVuLAorICAgICAgICAgICAgICBtcGRfc2l6ZV90ICpyc2l6ZSkKK3sKKyAgICBtcGRfdWludF90ICpyZXN1bHQgPSBOVUxMLCAqdyA9IE5VTEw7CisgICAgbXBkX3NpemVfdCBtOworCisgICAgYXNzZXJ0KHVsZW4gPj0gNCk7CisgICAgYXNzZXJ0KHVsZW4gPj0gdmxlbik7CisKKyAgICAqcnNpemUgPSBfa211bF9yZXN1bHRzaXplKHVsZW4sIHZsZW4pOworICAgIGlmICgocmVzdWx0ID0gbXBkX2NhbGxvYygqcnNpemUsIHNpemVvZiAqcmVzdWx0KSkgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtID0gX2ttdWxfd29ya3NpemUodWxlbiwgMyooTVBEX01BWFRSQU5TRk9STV8yTi8yKSk7CisgICAgaWYgKG0gJiYgKCh3ID0gbXBkX2NhbGxvYyhtLCBzaXplb2YgKncpKSA9PSBOVUxMKSkgeworICAgICAgICBtcGRfZnJlZShyZXN1bHQpOyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgICAgIHJldHVybiBOVUxMOyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgfQorCisgICAgaWYgKCFfa2FyYXRzdWJhX3JlY19mbnQocmVzdWx0LCB1LCB2LCB3LCB1bGVuLCB2bGVuKSkgeworICAgICAgICBtcGRfZnJlZShyZXN1bHQpOworICAgICAgICByZXN1bHQgPSBOVUxMOworICAgIH0KKworCisgICAgaWYgKHcpIG1wZF9mcmVlKHcpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKworLyogRGVhbCB3aXRoIHRoZSBzcGVjaWFsIGNhc2VzIG9mIG11bHRpcGx5aW5nIGluZmluaXRpZXMuICovCitzdGF0aWMgdm9pZAorX21wZF9xbXVsX2luZihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKG1wZF9pc2luZmluaXRlKGEpKSB7CisgICAgICAgIGlmIChtcGRfaXN6ZXJvKGIpKSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtcGRfc2V0c3BlY2lhbChyZXN1bHQsIG1wZF9zaWduKGEpXm1wZF9zaWduKGIpLCBNUERfSU5GKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorICAgIGFzc2VydChtcGRfaXNpbmZpbml0ZShiKSk7CisgICAgaWYgKG1wZF9pc3plcm8oYSkpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCBtcGRfc2lnbihhKV5tcGRfc2lnbihiKSwgTVBEX0lORik7CisgICAgfQorfQorCisvKgorICogSW50ZXJuYWwgZnVuY3Rpb246IE11bHRpcGx5IGEgYW5kIGIuIF9tcGRfcW11bCBkZWFscyB3aXRoIHNwZWNpYWxzIGJ1dAorICogZG9lcyBOT1QgZmluYWxpemUgdGhlIHJlc3VsdC4gVGhpcyBpcyBmb3IgdXNlIGluIG1wZF9mbWEoKS4KKyAqLworc3RhdGljIGlubGluZSB2b2lkCitfbXBkX3FtdWwobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfdCAqYmlnID0gKG1wZF90ICopYSwgKnNtYWxsID0gKG1wZF90ICopYjsKKyAgICBtcGRfdWludF90ICpyZGF0YSA9IE5VTEw7CisgICAgbXBkX3VpbnRfdCByYnVmW01QRF9NSU5BTExPQ19NQVhdOworICAgIG1wZF9zaXplX3QgcnNpemUsIGk7CisKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpIHx8IG1wZF9pc3NwZWNpYWwoYikpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfbmFucyhyZXN1bHQsIGEsIGIsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIF9tcGRfcW11bF9pbmYocmVzdWx0LCBhLCBiLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHNtYWxsLT5sZW4gPiBiaWctPmxlbikgeworICAgICAgICBfbXBkX3B0cnN3YXAoJmJpZywgJnNtYWxsKTsKKyAgICB9CisKKyAgICByc2l6ZSA9IGJpZy0+bGVuICsgc21hbGwtPmxlbjsKKworICAgIGlmIChiaWctPmxlbiA9PSAxKSB7CisgICAgICAgIF9tcGRfc2luZ2xlbXVsKHJlc3VsdC0+ZGF0YSwgYmlnLT5kYXRhWzBdLCBzbWFsbC0+ZGF0YVswXSk7CisgICAgICAgIGdvdG8gZmluaXNoOworICAgIH0KKyAgICBpZiAocnNpemUgPD0gKG1wZF9zaXplX3QpTVBEX01JTkFMTE9DX01BWCkgeworICAgICAgICBpZiAoYmlnLT5sZW4gPT0gMikgeworICAgICAgICAgICAgX21wZF9tdWxfMl9sZTIocmJ1ZiwgYmlnLT5kYXRhLCBzbWFsbC0+ZGF0YSwgc21hbGwtPmxlbik7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtcGRfdWludF96ZXJvKHJidWYsIHJzaXplKTsKKyAgICAgICAgICAgIGlmIChzbWFsbC0+bGVuID09IDEpIHsKKyAgICAgICAgICAgICAgICBfbXBkX3Nob3J0bXVsKHJidWYsIGJpZy0+ZGF0YSwgYmlnLT5sZW4sIHNtYWxsLT5kYXRhWzBdKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIF9tcGRfYmFzZW11bChyYnVmLCBzbWFsbC0+ZGF0YSwgYmlnLT5kYXRhLCBzbWFsbC0+bGVuLCBiaWctPmxlbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFtcGRfcXJlc2l6ZShyZXN1bHQsIHJzaXplLCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgcnNpemU7IGkrKykgeworICAgICAgICAgICAgcmVzdWx0LT5kYXRhW2ldID0gcmJ1ZltpXTsKKyAgICAgICAgfQorICAgICAgICBnb3RvIGZpbmlzaDsKKyAgICB9CisKKworICAgIGlmIChzbWFsbC0+bGVuID09IDEpIHsKKyAgICAgICAgcmRhdGEgPSBtcGRfY2FsbG9jKHJzaXplLCBzaXplb2YgKnJkYXRhKTsKKyAgICAgICAgaWYgKHJkYXRhICE9IE5VTEwpIHsKKyAgICAgICAgICAgIF9tcGRfc2hvcnRtdWwocmRhdGEsIGJpZy0+ZGF0YSwgYmlnLT5sZW4sIHNtYWxsLT5kYXRhWzBdKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIGlmIChyc2l6ZSA8PSAxMDI0KSB7CisgICAgICAgIHJkYXRhID0gX21wZF9rbXVsKGJpZy0+ZGF0YSwgc21hbGwtPmRhdGEsIGJpZy0+bGVuLCBzbWFsbC0+bGVuLCAmcnNpemUpOworICAgIH0KKyAgICBlbHNlIGlmIChyc2l6ZSA8PSAzKk1QRF9NQVhUUkFOU0ZPUk1fMk4pIHsKKyAgICAgICAgcmRhdGEgPSBfbXBkX2ZudG11bChiaWctPmRhdGEsIHNtYWxsLT5kYXRhLCBiaWctPmxlbiwgc21hbGwtPmxlbiwgJnJzaXplKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHJkYXRhID0gX21wZF9rbXVsX2ZudChiaWctPmRhdGEsIHNtYWxsLT5kYXRhLCBiaWctPmxlbiwgc21hbGwtPmxlbiwgJnJzaXplKTsKKyAgICB9CisKKyAgICBpZiAocmRhdGEgPT0gTlVMTCkgeworICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfTWFsbG9jX2Vycm9yLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1wZF9pc2R5bmFtaWNfZGF0YShyZXN1bHQpKSB7CisgICAgICAgIG1wZF9mcmVlKHJlc3VsdC0+ZGF0YSk7CisgICAgfQorICAgIHJlc3VsdC0+ZGF0YSA9IHJkYXRhOworICAgIHJlc3VsdC0+YWxsb2MgPSByc2l6ZTsKKyAgICBtcGRfc2V0X2R5bmFtaWNfZGF0YShyZXN1bHQpOworCisKK2ZpbmlzaDoKKyAgICBtcGRfc2V0X2ZsYWdzKHJlc3VsdCwgbXBkX3NpZ24oYSlebXBkX3NpZ24oYikpOworICAgIHJlc3VsdC0+ZXhwID0gYmlnLT5leHAgKyBzbWFsbC0+ZXhwOworICAgIHJlc3VsdC0+bGVuID0gX21wZF9yZWFsX3NpemUocmVzdWx0LT5kYXRhLCByc2l6ZSk7CisgICAgLyogcmVzaXplIHRvIHNtYWxsZXIgY2Fubm90IGZhaWwgKi8KKyAgICBtcGRfcXJlc2l6ZShyZXN1bHQsIHJlc3VsdC0+bGVuLCBzdGF0dXMpOworICAgIG1wZF9zZXRkaWdpdHMocmVzdWx0KTsKK30KKworLyogTXVsdGlwbHkgYSBhbmQgYi4gKi8KK3ZvaWQKK21wZF9xbXVsKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwKKyAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBfbXBkX3FtdWwocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cyk7CisgICAgbXBkX3FmaW5hbGl6ZShyZXN1bHQsIGN0eCwgc3RhdHVzKTsKK30KKworLyogTXVsdGlwbHkgYSBhbmQgYi4gU2V0IE5hTi9JbnZhbGlkX29wZXJhdGlvbiBpZiB0aGUgcmVzdWx0IGlzIGluZXhhY3QuICovCitzdGF0aWMgdm9pZAorX21wZF9xbXVsX2V4YWN0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwKKyAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgdWludDMyX3Qgd29ya3N0YXR1cyA9IDA7CisKKyAgICBtcGRfcW11bChyZXN1bHQsIGEsIGIsIGN0eCwgJndvcmtzdGF0dXMpOworICAgICpzdGF0dXMgfD0gd29ya3N0YXR1czsKKyAgICBpZiAod29ya3N0YXR1cyAmIChNUERfSW5leGFjdHxNUERfUm91bmRlZHxNUERfQ2xhbXBlZCkpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgIH0KK30KKworLyogTXVsdGlwbHkgZGVjaW1hbCBhbmQgbXBkX3NzaXplX3QuICovCit2b2lkCittcGRfcW11bF9zc2l6ZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgYiwKKyAgICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IG1heGNvbnRleHQ7CisgICAgTVBEX05FV19TVEFUSUMoYmIsMCwwLDAsMCk7CisKKyAgICBtcGRfbWF4Y29udGV4dCgmbWF4Y29udGV4dCk7CisgICAgbXBkX3Fzc2V0X3NzaXplKCZiYiwgYiwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgbXBkX3FtdWwocmVzdWx0LCBhLCAmYmIsIGN0eCwgc3RhdHVzKTsKKyAgICBtcGRfZGVsKCZiYik7Cit9CisKKy8qIE11bHRpcGx5IGRlY2ltYWwgYW5kIG1wZF91aW50X3QuICovCit2b2lkCittcGRfcW11bF91aW50KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfdWludF90IGIsCisgICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IG1heGNvbnRleHQ7CisgICAgTVBEX05FV19TVEFUSUMoYmIsMCwwLDAsMCk7CisKKyAgICBtcGRfbWF4Y29udGV4dCgmbWF4Y29udGV4dCk7CisgICAgbXBkX3Fzc2V0X3VpbnQoJmJiLCBiLCAmbWF4Y29udGV4dCwgc3RhdHVzKTsKKyAgICBtcGRfcW11bChyZXN1bHQsIGEsICZiYiwgY3R4LCBzdGF0dXMpOworICAgIG1wZF9kZWwoJmJiKTsKK30KKwordm9pZAorbXBkX3FtdWxfaTMyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBpbnQzMl90IGIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9xbXVsX3NzaXplKHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpOworfQorCit2b2lkCittcGRfcW11bF91MzIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90IGIsCisgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9xbXVsX3VpbnQocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cyk7Cit9CisKKyNpZmRlZiBDT05GSUdfNjQKK3ZvaWQKK21wZF9xbXVsX2k2NChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgaW50NjRfdCBiLAorICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfcW11bF9zc2l6ZShyZXN1bHQsIGEsIGIsIGN0eCwgc3RhdHVzKTsKK30KKwordm9pZAorbXBkX3FtdWxfdTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50NjRfdCBiLAorICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfcW11bF91aW50KHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpOworfQorI2VuZGlmCisKKy8qIExpa2UgdGhlIG1pbnVzIG9wZXJhdG9yLiAqLwordm9pZAorbXBkX3FtaW51cyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpKSB7CisgICAgICAgIGlmIChtcGRfcWNoZWNrX25hbihyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG1wZF9pc3plcm8oYSkgJiYgY3R4LT5yb3VuZCAhPSBNUERfUk9VTkRfRkxPT1IpIHsKKyAgICAgICAgbXBkX3Fjb3B5X2FicyhyZXN1bHQsIGEsIHN0YXR1cyk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBtcGRfcWNvcHlfbmVnYXRlKHJlc3VsdCwgYSwgc3RhdHVzKTsKKyAgICB9CisKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworfQorCisvKiBMaWtlIHRoZSBwbHVzIG9wZXJhdG9yLiAqLwordm9pZAorbXBkX3FwbHVzKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW4ocmVzdWx0LCBhLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChtcGRfaXN6ZXJvKGEpICYmIGN0eC0+cm91bmQgIT0gTVBEX1JPVU5EX0ZMT09SKSB7CisgICAgICAgIG1wZF9xY29weV9hYnMocmVzdWx0LCBhLCBzdGF0dXMpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKTsKKyAgICB9CisKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworfQorCisvKiBUaGUgbGFyZ2VzdCByZXByZXNlbnRhYmxlIG51bWJlciB0aGF0IGlzIHNtYWxsZXIgdGhhbiB0aGUgb3BlcmFuZC4gKi8KK3ZvaWQKK21wZF9xbmV4dF9taW51cyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX2NvbnRleHRfdCB3b3JrY3R4OworICAgIE1QRF9ORVdfQ09OU1QodGlueSxNUERfUE9TLG1wZF9ldGlueShjdHgpLTEsMSwxLDEsMSk7CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW4ocmVzdWx0LCBhLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGFzc2VydChtcGRfaXNpbmZpbml0ZShhKSk7CisgICAgICAgIGlmIChtcGRfaXNuZWdhdGl2ZShhKSkgeworICAgICAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1wZF9jbGVhcl9mbGFncyhyZXN1bHQpOworICAgICAgICAgICAgbXBkX3FtYXhjb2VmZihyZXN1bHQsIGN0eCwgc3RhdHVzKTsKKyAgICAgICAgICAgIGlmIChtcGRfaXNuYW4ocmVzdWx0KSkgeworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlc3VsdC0+ZXhwID0gbXBkX2V0b3AoY3R4KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1wZF93b3JrY29udGV4dCgmd29ya2N0eCwgY3R4KTsKKyAgICB3b3JrY3R4LnJvdW5kID0gTVBEX1JPVU5EX0ZMT09SOworCisgICAgaWYgKCFtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgJndvcmtjdHgsICZ3b3JrY3R4LnN0YXR1cyk7CisgICAgaWYgKHdvcmtjdHguc3RhdHVzJihNUERfSW5leGFjdHxNUERfRXJyb3JzKSkgeworICAgICAgICAqc3RhdHVzIHw9ICh3b3JrY3R4LnN0YXR1cyZNUERfRXJyb3JzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHdvcmtjdHguc3RhdHVzID0gMDsKKyAgICBtcGRfcXN1YihyZXN1bHQsIGEsICZ0aW55LCAmd29ya2N0eCwgJndvcmtjdHguc3RhdHVzKTsKKyAgICAqc3RhdHVzIHw9ICh3b3JrY3R4LnN0YXR1cyZNUERfRXJyb3JzKTsKK30KKworLyogVGhlIHNtYWxsZXN0IHJlcHJlc2VudGFibGUgbnVtYmVyIHRoYXQgaXMgbGFyZ2VyIHRoYW4gdGhlIG9wZXJhbmQuICovCit2b2lkCittcGRfcW5leHRfcGx1cyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IHdvcmtjdHg7CisgICAgTVBEX05FV19DT05TVCh0aW55LE1QRF9QT1MsbXBkX2V0aW55KGN0eCktMSwxLDEsMSwxKTsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpKSB7CisgICAgICAgIGlmIChtcGRfcWNoZWNrX25hbihyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0KG1wZF9pc2luZmluaXRlKGEpKTsKKyAgICAgICAgaWYgKG1wZF9pc3Bvc2l0aXZlKGEpKSB7CisgICAgICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbXBkX2NsZWFyX2ZsYWdzKHJlc3VsdCk7CisgICAgICAgICAgICBtcGRfcW1heGNvZWZmKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworICAgICAgICAgICAgaWYgKG1wZF9pc25hbihyZXN1bHQpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbXBkX3NldF9mbGFncyhyZXN1bHQsIE1QRF9ORUcpOworICAgICAgICAgICAgcmVzdWx0LT5leHAgPSBtcGRfZXRvcChjdHgpOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtcGRfd29ya2NvbnRleHQoJndvcmtjdHgsIGN0eCk7CisgICAgd29ya2N0eC5yb3VuZCA9IE1QRF9ST1VORF9DRUlMSU5HOworCisgICAgaWYgKCFtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgJndvcmtjdHgsICZ3b3JrY3R4LnN0YXR1cyk7CisgICAgaWYgKHdvcmtjdHguc3RhdHVzICYgKE1QRF9JbmV4YWN0fE1QRF9FcnJvcnMpKSB7CisgICAgICAgICpzdGF0dXMgfD0gKHdvcmtjdHguc3RhdHVzJk1QRF9FcnJvcnMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgd29ya2N0eC5zdGF0dXMgPSAwOworICAgIG1wZF9xYWRkKHJlc3VsdCwgYSwgJnRpbnksICZ3b3JrY3R4LCAmd29ya2N0eC5zdGF0dXMpOworICAgICpzdGF0dXMgfD0gKHdvcmtjdHguc3RhdHVzJk1QRF9FcnJvcnMpOworfQorCisvKgorICogVGhlIG51bWJlciBjbG9zZXN0IHRvIHRoZSBmaXJzdCBvcGVyYW5kIHRoYXQgaXMgaW4gdGhlIGRpcmVjdGlvbiB0b3dhcmRzCisgKiB0aGUgc2Vjb25kIG9wZXJhbmQuCisgKi8KK3ZvaWQKK21wZF9xbmV4dF90b3dhcmQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaW50IGM7CisKKyAgICBpZiAobXBkX3FjaGVja19uYW5zKHJlc3VsdCwgYSwgYiwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjID0gX21wZF9jbXAoYSwgYik7CisgICAgaWYgKGMgPT0gMCkgeworICAgICAgICBtcGRfcWNvcHlfc2lnbihyZXN1bHQsIGEsIGIsIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoYyA8IDApIHsKKyAgICAgICAgbXBkX3FuZXh0X3BsdXMocmVzdWx0LCBhLCBjdHgsIHN0YXR1cyk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBtcGRfcW5leHRfbWludXMocmVzdWx0LCBhLCBjdHgsIHN0YXR1cyk7CisgICAgfQorCisgICAgaWYgKG1wZF9pc2luZmluaXRlKHJlc3VsdCkpIHsKKyAgICAgICAgKnN0YXR1cyB8PSAoTVBEX092ZXJmbG93fE1QRF9Sb3VuZGVkfE1QRF9JbmV4YWN0KTsKKyAgICB9CisgICAgZWxzZSBpZiAobXBkX2FkamV4cChyZXN1bHQpIDwgY3R4LT5lbWluKSB7CisgICAgICAgICpzdGF0dXMgfD0gKE1QRF9VbmRlcmZsb3d8TVBEX1N1Ym5vcm1hbHxNUERfUm91bmRlZHxNUERfSW5leGFjdCk7CisgICAgICAgIGlmIChtcGRfaXN6ZXJvKHJlc3VsdCkpIHsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX0NsYW1wZWQ7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBJbnRlcm5hbCBmdW5jdGlvbjogSW50ZWdlciBwb3dlciB3aXRoIG1wZF91aW50X3QgZXhwb25lbnQuIFRoZSBmdW5jdGlvbgorICogY2FuIGZhaWwgd2l0aCBNUERfTWFsbG9jX2Vycm9yLgorICoKKyAqIFRoZSBlcnJvciBpcyBlcXVhbCB0byB0aGUgZXJyb3IgaW5jdXJyZWQgaW4gay0xIG11bHRpcGxpY2F0aW9ucy4gQXNzdW1pbmcKKyAqIHRoZSB1cHBlciBib3VuZCBmb3IgdGhlIHJlbGF0aXZlIGVycm9yIGluIGVhY2ggb3BlcmF0aW9uOgorICoKKyAqICAgYWJzKGVycikgPSA1ICogMTAqKi1wcmVjCisgKiAgIHJlc3VsdCA9IHgqKmsgKiAoMSArIGVycikqKihrLTEpCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9xcG93X3VpbnQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmJhc2UsIG1wZF91aW50X3QgZXhwLAorICAgICAgICAgICAgICAgdWludDhfdCByZXN1bHRzaWduLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgdWludDMyX3Qgd29ya3N0YXR1cyA9IDA7CisgICAgbXBkX3VpbnRfdCBuOworCisgICAgaWYgKGV4cCA9PSAwKSB7CisgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCByZXN1bHRzaWduLCAxLCAwKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgICAgICByZXR1cm47IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9CisKKyAgICBpZiAoIW1wZF9xY29weShyZXN1bHQsIGJhc2UsIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG4gPSBtcGRfYml0c1ttcGRfYnNyKGV4cCldOworICAgIHdoaWxlIChuID4+PSAxKSB7CisgICAgICAgIG1wZF9xbXVsKHJlc3VsdCwgcmVzdWx0LCByZXN1bHQsIGN0eCwgJndvcmtzdGF0dXMpOworICAgICAgICBpZiAoZXhwICYgbikgeworICAgICAgICAgICAgbXBkX3FtdWwocmVzdWx0LCByZXN1bHQsIGJhc2UsIGN0eCwgJndvcmtzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIGlmIChtcGRfaXNzcGVjaWFsKHJlc3VsdCkgfHwKKyAgICAgICAgICAgIChtcGRfaXN6ZXJvY29lZmYocmVzdWx0KSAmJiAod29ya3N0YXR1cyAmIE1QRF9DbGFtcGVkKSkpIHsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgKnN0YXR1cyB8PSB3b3Jrc3RhdHVzOworICAgIG1wZF9zZXRfc2lnbihyZXN1bHQsIHJlc3VsdHNpZ24pOworfQorCisvKgorICogSW50ZXJuYWwgZnVuY3Rpb246IEludGVnZXIgcG93ZXIgd2l0aCBtcGRfdCBleHBvbmVudCwgdGJhc2UgYW5kIHRleHAKKyAqIGFyZSBtb2RpZmllZCEhIEZ1bmN0aW9uIGNhbiBmYWlsIHdpdGggTVBEX01hbGxvY19lcnJvci4KKyAqCisgKiBUaGUgZXJyb3IgaXMgZXF1YWwgdG8gdGhlIGVycm9yIGluY3VycmVkIGluIGsgbXVsdGlwbGljYXRpb25zLiBBc3N1bWluZworICogdGhlIHVwcGVyIGJvdW5kIGZvciB0aGUgcmVsYXRpdmUgZXJyb3IgaW4gZWFjaCBvcGVyYXRpb246CisgKgorICogICBhYnMoZXJyKSA9IDUgKiAxMCoqLXByZWMKKyAqICAgcmVzdWx0ID0geCoqayAqICgxICsgZXJyKSoqaworICovCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfcXBvd19tcGQobXBkX3QgKnJlc3VsdCwgbXBkX3QgKnRiYXNlLCBtcGRfdCAqdGV4cCwgdWludDhfdCByZXN1bHRzaWduLAorICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgdWludDMyX3Qgd29ya3N0YXR1cyA9IDA7CisgICAgbXBkX2NvbnRleHRfdCBtYXhjdHg7CisgICAgTVBEX05FV19DT05TVCh0d28sMCwwLDEsMSwxLDIpOworCisKKyAgICBtcGRfbWF4Y29udGV4dCgmbWF4Y3R4KTsKKworICAgIC8qIHJlc2l6ZSB0byBzbWFsbGVyIGNhbm5vdCBmYWlsICovCisgICAgbXBkX3Fjb3B5KHJlc3VsdCwgJm9uZSwgc3RhdHVzKTsKKworICAgIHdoaWxlICghbXBkX2lzemVybyh0ZXhwKSkgeworICAgICAgICBpZiAobXBkX2lzb2RkKHRleHApKSB7CisgICAgICAgICAgICBtcGRfcW11bChyZXN1bHQsIHJlc3VsdCwgdGJhc2UsIGN0eCwgJndvcmtzdGF0dXMpOworICAgICAgICAgICAgKnN0YXR1cyB8PSB3b3Jrc3RhdHVzOworICAgICAgICAgICAgaWYgKG1wZF9pc3NwZWNpYWwocmVzdWx0KSB8fAorICAgICAgICAgICAgICAgIChtcGRfaXN6ZXJvY29lZmYocmVzdWx0KSAmJiAod29ya3N0YXR1cyAmIE1QRF9DbGFtcGVkKSkpIHsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtcGRfcW11bCh0YmFzZSwgdGJhc2UsIHRiYXNlLCBjdHgsICZ3b3Jrc3RhdHVzKTsKKyAgICAgICAgbXBkX3FkaXZpbnQodGV4cCwgdGV4cCwgJnR3bywgJm1heGN0eCwgJndvcmtzdGF0dXMpOworICAgICAgICBpZiAobXBkX2lzbmFuKHRiYXNlKSB8fCBtcGRfaXNuYW4odGV4cCkpIHsKKyAgICAgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIHdvcmtzdGF0dXMmTVBEX0Vycm9ycywgc3RhdHVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBtcGRfc2V0X3NpZ24ocmVzdWx0LCByZXN1bHRzaWduKTsKK30KKworLyoKKyAqIFRoZSBwb3dlciBmdW5jdGlvbiBmb3IgaW50ZWdlciBleHBvbmVudHMuIFJlbGF0aXZlIGVycm9yIF9iZWZvcmVfIHRoZQorICogZmluYWwgcm91bmRpbmcgdG8gcHJlYzoKKyAqICAgYWJzKHJlc3VsdCAtIGJhc2UqKmV4cCkgPCAwLjEgKiAxMCoqLXByZWMgKiBhYnMoYmFzZSoqZXhwKQorICovCitzdGF0aWMgdm9pZAorX21wZF9xcG93X2ludChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYmFzZSwgY29uc3QgbXBkX3QgKmV4cCwKKyAgICAgICAgICAgICAgdWludDhfdCByZXN1bHRzaWduLAorICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX2NvbnRleHRfdCB3b3JrY3R4OworICAgIE1QRF9ORVdfU1RBVElDKHRiYXNlLDAsMCwwLDApOworICAgIE1QRF9ORVdfU1RBVElDKHRleHAsMCwwLDAsMCk7CisgICAgbXBkX3NzaXplX3QgbjsKKworCisgICAgbXBkX3dvcmtjb250ZXh0KCZ3b3JrY3R4LCBjdHgpOworICAgIHdvcmtjdHgucHJlYyArPSAoZXhwLT5kaWdpdHMgKyBleHAtPmV4cCArIDIpOworICAgIHdvcmtjdHgucm91bmQgPSBNUERfUk9VTkRfSEFMRl9FVkVOOworICAgIHdvcmtjdHguY2xhbXAgPSAwOworICAgIGlmIChtcGRfaXNuZWdhdGl2ZShleHApKSB7CisgICAgICAgIHdvcmtjdHgucHJlYyArPSAxOworICAgICAgICBtcGRfcWRpdigmdGJhc2UsICZvbmUsIGJhc2UsICZ3b3JrY3R4LCBzdGF0dXMpOworICAgICAgICBpZiAoKnN0YXR1cyZNUERfRXJyb3JzKSB7CisgICAgICAgICAgICBtcGRfc2V0c3BlY2lhbChyZXN1bHQsIE1QRF9QT1MsIE1QRF9OQU4pOworICAgICAgICAgICAgZ290byBmaW5pc2g7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGlmICghbXBkX3Fjb3B5KCZ0YmFzZSwgYmFzZSwgc3RhdHVzKSkgeworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCBNUERfUE9TLCBNUERfTkFOKTsKKyAgICAgICAgICAgIGdvdG8gZmluaXNoOworICAgICAgICB9CisgICAgfQorCisgICAgbiA9IG1wZF9xYWJzX3VpbnQoZXhwLCAmd29ya2N0eC5zdGF0dXMpOworICAgIGlmICh3b3JrY3R4LnN0YXR1cyZNUERfSW52YWxpZF9vcGVyYXRpb24pIHsKKyAgICAgICAgaWYgKCFtcGRfcWNvcHkoJnRleHAsIGV4cCwgc3RhdHVzKSkgeworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCBNUERfUE9TLCBNUERfTkFOKTsgLyogR0NPVl9VTkxJS0VMWSAqLworICAgICAgICAgICAgZ290byBmaW5pc2g7IC8qIEdDT1ZfVU5MSUtFTFkgKi8KKyAgICAgICAgfQorICAgICAgICBfbXBkX3Fwb3dfbXBkKHJlc3VsdCwgJnRiYXNlLCAmdGV4cCwgcmVzdWx0c2lnbiwgJndvcmtjdHgsIHN0YXR1cyk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBfbXBkX3Fwb3dfdWludChyZXN1bHQsICZ0YmFzZSwgbiwgcmVzdWx0c2lnbiwgJndvcmtjdHgsIHN0YXR1cyk7CisgICAgfQorCisgICAgaWYgKG1wZF9pc2luZmluaXRlKHJlc3VsdCkpIHsKKyAgICAgICAgLyogZm9yIFJPVU5EX0RPV04sIFJPVU5EX0ZMT09SLCBldGMuICovCisgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCByZXN1bHRzaWduLCAxLCBNUERfRVhQX0lORik7CisgICAgfQorCitmaW5pc2g6CisgICAgbXBkX2RlbCgmdGJhc2UpOworICAgIG1wZF9kZWwoJnRleHApOworICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qIAorICogSWYgdGhlIGV4cG9uZW50IGlzIGluZmluaXRlIGFuZCBiYXNlIGVxdWFscyBvbmUsIHRoZSByZXN1bHQgaXMgb25lCisgKiB3aXRoIGEgY29lZmZpY2llbnQgb2YgbGVuZ3RoIHByZWMuIE90aGVyd2lzZSwgcmVzdWx0IGlzIHVuZGVmaW5lZC4KKyAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGNvbXBhcmlzb24gYWdhaW5zdCBvbmUuCisgKi8KK3N0YXRpYyBpbnQKK19xY2hlY2tfcG93X29uZV9pbmYobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmJhc2UsIHVpbnQ4X3QgcmVzdWx0c2lnbiwKKyAgICAgICAgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9zc2l6ZV90IHNoaWZ0OworICAgIGludCBjbXA7CisKKyAgICBpZiAoKGNtcCA9IF9tcGRfY21wKGJhc2UsICZvbmUpKSA9PSAwKSB7CisgICAgICAgIHNoaWZ0ID0gY3R4LT5wcmVjLTE7CisgICAgICAgIG1wZF9xc2hpZnRsKHJlc3VsdCwgJm9uZSwgc2hpZnQsIHN0YXR1cyk7CisgICAgICAgIHJlc3VsdC0+ZXhwID0gLXNoaWZ0OworICAgICAgICBtcGRfc2V0X2ZsYWdzKHJlc3VsdCwgcmVzdWx0c2lnbik7CisgICAgICAgICpzdGF0dXMgfD0gKE1QRF9JbmV4YWN0fE1QRF9Sb3VuZGVkKTsKKyAgICB9CisKKyAgICByZXR1cm4gY21wOworfQorCisvKgorICogSWYgYWJzKGJhc2UpIGVxdWFscyBvbmUsIGNhbGN1bGF0ZSB0aGUgY29ycmVjdCBwb3dlciBvZiBvbmUgcmVzdWx0LgorICogT3RoZXJ3aXNlLCByZXN1bHQgaXMgdW5kZWZpbmVkLiBSZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBjb21wYXJpc29uCisgKiBhZ2FpbnN0IDEuCisgKgorICogVGhpcyBpcyBhbiBpbnRlcm5hbCBmdW5jdGlvbiB0aGF0IGRvZXMgbm90IGNoZWNrIGZvciBzcGVjaWFscy4KKyAqLworc3RhdGljIGludAorX3FjaGVja19wb3dfb25lKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICpiYXNlLCBjb25zdCBtcGRfdCAqZXhwLAorICAgICAgICAgICAgICAgIHVpbnQ4X3QgcmVzdWx0c2lnbiwKKyAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgdWludDMyX3Qgd29ya3N0YXR1cyA9IDA7CisgICAgbXBkX3NzaXplX3Qgc2hpZnQ7CisgICAgaW50IGNtcDsKKworICAgIGlmICgoY21wID0gX21wZF9jbXBfYWJzKGJhc2UsICZvbmUpKSA9PSAwKSB7CisgICAgICAgIGlmIChfbXBkX2lzaW50KGV4cCkpIHsKKyAgICAgICAgICAgIGlmIChtcGRfaXNuZWdhdGl2ZShleHApKSB7CisgICAgICAgICAgICAgICAgX3NldHRyaXBsZShyZXN1bHQsIHJlc3VsdHNpZ24sIDEsIDApOworICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogMS4wMDAqKjMgPSAxLjAwMDAwMDAwMCAqLworICAgICAgICAgICAgbXBkX3FtdWxfc3NpemUocmVzdWx0LCBleHAsIC1iYXNlLT5leHAsIGN0eCwgJndvcmtzdGF0dXMpOworICAgICAgICAgICAgaWYgKHdvcmtzdGF0dXMmTVBEX0Vycm9ycykgeworICAgICAgICAgICAgICAgICpzdGF0dXMgfD0gKHdvcmtzdGF0dXMmTVBEX0Vycm9ycyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAvKiBkaWdpdHMtMSBhZnRlciBleHBvbmVudGlhdGlvbiAqLworICAgICAgICAgICAgc2hpZnQgPSBtcGRfcWdldF9zc2l6ZShyZXN1bHQsICZ3b3Jrc3RhdHVzKTsKKyAgICAgICAgICAgIC8qIHNoaWZ0IGlzIE1QRF9TU0laRV9NQVggaWYgcmVzdWx0IGlzIHRvbyBsYXJnZSAqLworICAgICAgICAgICAgaWYgKHNoaWZ0ID4gY3R4LT5wcmVjLTEpIHsKKyAgICAgICAgICAgICAgICBzaGlmdCA9IGN0eC0+cHJlYy0xOworICAgICAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX1JvdW5kZWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobXBkX2lzcG9zaXRpdmUoYmFzZSkpIHsKKyAgICAgICAgICAgIHNoaWZ0ID0gY3R4LT5wcmVjLTE7CisgICAgICAgICAgICAqc3RhdHVzIHw9IChNUERfSW5leGFjdHxNUERfUm91bmRlZCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gLTI7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICAgICAgfQorICAgICAgICBpZiAoIW1wZF9xc2hpZnRsKHJlc3VsdCwgJm9uZSwgc2hpZnQsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+ZXhwID0gLXNoaWZ0OworICAgICAgICBtcGRfc2V0X2ZsYWdzKHJlc3VsdCwgcmVzdWx0c2lnbik7CisgICAgfQorCisgICAgcmV0dXJuIGNtcDsKK30KKworLyoKKyAqIERldGVjdCBjZXJ0YWluIG92ZXIvdW5kZXJmbG93IG9mIHgqKnkuCisgKiBBQ0wyIHByb29mOiBwb3ctYm91bmRzLmxpc3AuCisgKgorICogICBTeW1ib2xzOgorICoKKyAqICAgICBlOiBFWFBfSU5GIG9yIEVYUF9DTEFNUAorICogICAgIHg6IGJhc2UKKyAqICAgICB5OiBleHBvbmVudAorICoKKyAqICAgICBvbWVnYShlKSA9IGxvZzEwKGFicyhlKSkKKyAqICAgICB6ZXRhKHgpICA9IGxvZzEwKGFicyhsb2cxMCh4KSkpCisgKiAgICAgdGhldGEoeSkgPSBsb2cxMChhYnMoeSkpCisgKgorICogICBVcHBlciBhbmQgbG93ZXIgYm91bmRzOgorICoKKyAqICAgICB1Yl9vbWVnYShlKSA9IGNlaWwobG9nMTAoYWJzKGUpKSkKKyAqICAgICBsYl90aGV0YSh5KSA9IGZsb29yKGxvZzEwKGFicyh5KSkpCisgKgorICogICAgICAgICAgICAgICAgICB8IGZsb29yKGxvZzEwKGZsb29yKGFicyhsb2cxMCh4KSkpKSkgaWYgeCA8IDEvMTAgb3IgeCA+PSAxMAorICogICAgIGxiX3pldGEoeCkgPSB8IGZsb29yKGxvZzEwKGFicyh4LTEpLzEwKSkgaWYgMS8xMCA8PSB4IDwgMQorICogICAgICAgICAgICAgICAgICB8IGZsb29yKGxvZzEwKGFicygoeC0xKS8xMDApKSkgaWYgMSA8IHggPCAxMAorICoKKyAqICAgdWJfb21lZ2EoZSkgYW5kIGxiX3RoZXRhKHkpIGFyZSBvYnZpb3VzbHkgdXBwZXIgYW5kIGxvd2VyIGJvdW5kcworICogICBmb3Igb21lZ2EoZSkgYW5kIHRoZXRhKHkpLgorICoKKyAqICAgbGJfemV0YSBpcyBhIGxvd2VyIGJvdW5kIGZvciB6ZXRhKHgpOgorICoKKyAqICAgICB4IDwgMS8xMCBvciB4ID49IDEwOgorICoKKyAqICAgICAgIGFicyhsb2cxMCh4KSkgPj0gMSwgc28gdGhlIG91dGVyIGxvZzEwIGlzIHdlbGwgZGVmaW5lZC4gU2luY2UgbG9nMTAKKyAqICAgICAgIGlzIHN0cmljdGx5IGluY3JlYXNpbmcsIHRoZSBlbmQgcmVzdWx0IGlzIGEgbG93ZXIgYm91bmQuCisgKgorICogICAgIDEvMTAgPD0geCA8IDE6CisgKgorICogICAgICAgV2UgdXNlOiBsb2cxMCh4KSA8PSAoeC0xKS9sb2coMTApCisgKiAgICAgICAgICAgICAgIGFicyhsb2cxMCh4KSkgPj0gYWJzKHgtMSkvbG9nKDEwKQorICogICAgICAgICAgICAgICBhYnMobG9nMTAoeCkpID49IGFicyh4LTEpLzEwCisgKgorICogICAgIDEgPCB4IDwgMTA6CisgKgorICogICAgICAgV2UgdXNlOiAoeC0xKS8oeCpsb2coMTApKSA8IGxvZzEwKHgpCisgKiAgICAgICAgICAgICAgIGFicygoeC0xKS8xMDApIDwgYWJzKGxvZzEwKHgpKQorICoKKyAqICAgICAgIFhYWDogYWJzKCh4LTEpLzEwKSB3b3VsZCB3b3JrLCBuZWVkIEFDTDIgcHJvb2YuCisgKgorICoKKyAqICAgTGV0ICgwIDwgeCA8IDEgYW5kIHkgPCAwKSBvciAoeCA+IDEgYW5kIHkgPiAwKS4gICAgICAgICAgICAgICAgICAoSDEpCisgKiAgIExldCB1Yl9vbWVnYShleHBfaW5mKSA8IGxiX3pldGEoeCkgKyBsYl90aGV0YSh5KSAgICAgICAgICAgICAgICAgKEgyKQorICoKKyAqICAgVGhlbjoKKyAqICAgICAgIGxvZzEwKGFicyhleHBfaW5mKSkgPCBsb2cxMChhYnMobG9nMTAoeCkpKSArIGxvZzEwKGFicyh5KSkuICAgKDEpCisgKiAgICAgICAgICAgICAgICAgICBleHBfaW5mIDwgbG9nMTAoeCkgKiB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgyKQorICogICAgICAgICAgICAgICAxMCoqZXhwX2luZiA8IHgqKnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMykKKyAqCisgKiAgIExldCAoMCA8IHggPCAxIGFuZCB5ID4gMCkgb3IgKHggPiAxIGFuZCB5IDwgMCkuICAgICAgICAgICAgICAgICAgKEgzKQorICogICBMZXQgdWJfb21lZ2EoZXhwX2NsYW1wKSA8IGxiX3pldGEoeCkgKyBsYl90aGV0YSh5KSAgICAgICAgICAgICAgIChINCkKKyAqCisgKiAgIFRoZW46CisgKiAgICAgbG9nMTAoYWJzKGV4cF9jbGFtcCkpIDwgbG9nMTAoYWJzKGxvZzEwKHgpKSkgKyBsb2cxMChhYnMoeSkpLiAgICg0KQorICogICAgICAgICAgICAgIGxvZzEwKHgpICogeSA8IGV4cF9jbGFtcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoNSkKKyAqICAgICAgICAgICAgICAgICAgICAgIHgqKnkgPCAxMCoqZXhwX2NsYW1wICAgICAgICAgICAgICAgICAgICAgICAgICAgKDYpCisgKgorICovCitzdGF0aWMgbXBkX3NzaXplX3QKK19sb3dlcl9ib3VuZF96ZXRhKGNvbnN0IG1wZF90ICp4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9jb250ZXh0X3QgbWF4Y3R4OworICAgIE1QRF9ORVdfU1RBVElDKHNjcmF0Y2gsMCwwLDAsMCk7CisgICAgbXBkX3NzaXplX3QgdCwgdTsKKworICAgIHQgPSBtcGRfYWRqZXhwKHgpOworICAgIGlmICh0ID4gMCkgeworICAgICAgICAvKiB4ID49IDEwIC0+IGZsb29yKGxvZzEwKGZsb29yKGFicyhsb2cxMCh4KSkpKSkgKi8KKyAgICAgICAgcmV0dXJuIG1wZF9leHBfZGlnaXRzKHQpIC0gMTsKKyAgICB9CisgICAgZWxzZSBpZiAodCA8IC0xKSB7CisgICAgICAgIC8qIHggPCAxLzEwIC0+IGZsb29yKGxvZzEwKGZsb29yKGFicyhsb2cxMCh4KSkpKSkgKi8KKyAgICAgICAgcmV0dXJuIG1wZF9leHBfZGlnaXRzKHQrMSkgLSAxOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbXBkX21heGNvbnRleHQoJm1heGN0eCk7CisgICAgICAgIG1wZF9xc3ViKCZzY3JhdGNoLCB4LCAmb25lLCAmbWF4Y3R4LCBzdGF0dXMpOworICAgICAgICBpZiAobXBkX2lzc3BlY2lhbCgmc2NyYXRjaCkpIHsKKyAgICAgICAgICAgIG1wZF9kZWwoJnNjcmF0Y2gpOworICAgICAgICAgICAgcmV0dXJuIE1QRF9TU0laRV9NQVg7CisgICAgICAgIH0KKyAgICAgICAgdSA9IG1wZF9hZGpleHAoJnNjcmF0Y2gpOworICAgICAgICBtcGRfZGVsKCZzY3JhdGNoKTsKKworICAgICAgICAvKiB0ID09IC0xLCAxLzEwIDw9IHggPCAxIC0+IGZsb29yKGxvZzEwKGFicyh4LTEpLzEwKSkKKyAgICAgICAgICogdCA9PSAwLCAgMSA8IHggPCAxMCAgICAtPiBmbG9vcihsb2cxMChhYnMoeC0xKS8xMDApKSAqLworICAgICAgICByZXR1cm4gKHQgPT0gMCkgPyB1LTIgOiB1LTE7CisgICAgfQorfQorCisvKgorICogRGV0ZWN0IGNhc2VzIG9mIGNlcnRhaW4gb3ZlcmZsb3cvdW5kZXJmbG93IGluIHRoZSBwb3dlciBmdW5jdGlvbi4KKyAqIEFzc3VtcHRpb25zOiB4ICE9IDEsIHkgIT0gMC4gVGhlIHByb29mIGFib3ZlIGlzIGZvciBwb3NpdGl2ZSB4LgorICogSWYgeCBpcyBuZWdhdGl2ZSBhbmQgeSBpcyBhbiBvZGQgaW50ZWdlciwgeCoqeSA9PSAtKGFicyh4KSoqeSksCisgKiBzbyB0aGUgYW5hbHlzaXMgZG9lcyBub3QgY2hhbmdlLgorICovCitzdGF0aWMgaW50CitfcWNoZWNrX3Bvd19ib3VuZHMobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKngsIGNvbnN0IG1wZF90ICp5LAorICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgcmVzdWx0c2lnbiwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgTVBEX05FV19TSEFSRUQoYWJzX3gsIHgpOworICAgIG1wZF9zc2l6ZV90IHViX29tZWdhLCBsYl96ZXRhLCBsYl90aGV0YTsKKyAgICB1aW50OF90IHNpZ247CisKKyAgICBtcGRfc2V0X3Bvc2l0aXZlKCZhYnNfeCk7CisKKyAgICBsYl90aGV0YSA9IG1wZF9hZGpleHAoeSk7CisgICAgbGJfemV0YSA9IF9sb3dlcl9ib3VuZF96ZXRhKCZhYnNfeCwgc3RhdHVzKTsKKyAgICBpZiAobGJfemV0YSA9PSBNUERfU1NJWkVfTUFYKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIHNpZ24gPSAobXBkX2FkamV4cCgmYWJzX3gpIDwgMCkgXiBtcGRfc2lnbih5KTsKKyAgICBpZiAoc2lnbiA9PSAwKSB7CisgICAgICAgIC8qICgwIDwgfHh8IDwgMSBhbmQgeSA8IDApIG9yICh8eHwgPiAxIGFuZCB5ID4gMCkgKi8KKyAgICAgICAgdWJfb21lZ2EgPSBtcGRfZXhwX2RpZ2l0cyhjdHgtPmVtYXgpOworICAgICAgICBpZiAodWJfb21lZ2EgPCBsYl96ZXRhICsgbGJfdGhldGEpIHsKKyAgICAgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCByZXN1bHRzaWduLCAxLCBNUERfRVhQX0lORik7CisgICAgICAgICAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIC8qICgwIDwgfHh8IDwgMSBhbmQgeSA+IDApIG9yICh8eHwgPiAxIGFuZCB5IDwgMCkuICovCisgICAgICAgIHViX29tZWdhID0gbXBkX2V4cF9kaWdpdHMobXBkX2V0aW55KGN0eCkpOworICAgICAgICBpZiAodWJfb21lZ2EgPCBsYl96ZXRhICsgbGJfdGhldGEpIHsKKyAgICAgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCByZXN1bHRzaWduLCAxLCBtcGRfZXRpbnkoY3R4KS0xKTsKKyAgICAgICAgICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCBjdHgsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICogVE9ETzogSW1wbGVtZW50IGFsZ29yaXRobSBmb3IgY29tcHV0aW5nIGV4YWN0IHBvd2VycyBmcm9tIGRlY2ltYWwucHkuCisgKiBJbiBvcmRlciB0byBwcmV2ZW50IGluZmluaXRlIGxvb3BzLCB0aGlzIGhhcyB0byBiZSBjYWxsZWQgYmVmb3JlCisgKiB1c2luZyBaaXYncyBzdHJhdGVneSBmb3IgY29ycmVjdCByb3VuZGluZy4KKyAqLworLyoKK3N0YXRpYyBpbnQKK19tcGRfcXBvd19leGFjdChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYmFzZSwgY29uc3QgbXBkX3QgKmV4cCwKKyAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgcmV0dXJuIDA7Cit9CisqLworCisvKgorICogVGhlIHBvd2VyIGZ1bmN0aW9uIGZvciByZWFsIGV4cG9uZW50cy4KKyAqICAgUmVsYXRpdmUgZXJyb3I6IGFicyhyZXN1bHQgLSBlKip5KSA8IGUqKnkgKiAxLzUgKiAxMCoqKC1wcmVjIC0gMSkKKyAqLworc3RhdGljIHZvaWQKK19tcGRfcXBvd19yZWFsKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICpiYXNlLCBjb25zdCBtcGRfdCAqZXhwLAorICAgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9jb250ZXh0X3Qgd29ya2N0eDsKKyAgICBNUERfTkVXX1NUQVRJQyh0ZXhwLDAsMCwwLDApOworCisgICAgaWYgKCFtcGRfcWNvcHkoJnRleHAsIGV4cCwgc3RhdHVzKSkgeworICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfTWFsbG9jX2Vycm9yLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbXBkX21heGNvbnRleHQoJndvcmtjdHgpOworICAgIHdvcmtjdHgucHJlYyA9IChiYXNlLT5kaWdpdHMgPiBjdHgtPnByZWMpID8gYmFzZS0+ZGlnaXRzIDogY3R4LT5wcmVjOworICAgIHdvcmtjdHgucHJlYyArPSAoNCArIE1QRF9FWFBESUdJVFMpOworICAgIHdvcmtjdHgucm91bmQgPSBNUERfUk9VTkRfSEFMRl9FVkVOOworICAgIHdvcmtjdHguYWxsY3IgPSBjdHgtPmFsbGNyOworCisgICAgLyoKKyAgICAgKiBleHRyYSA6PSBNUERfRVhQRElHSVRTID0gTVBEX0VYUF9NQVhfVAorICAgICAqIHdwIDo9IHByZWMgKyA0ICsgZXh0cmEKKyAgICAgKiBhYnMoZXJyKSA8IDUgKiAxMCoqLXdwCisgICAgICogeSA6PSBsb2coYmFzZSkgKiBleHAKKyAgICAgKiBDYWxjdWxhdGU6CisgICAgICogICAxKSAgIGUqKih5ICogKDEgKyBlcnIpKioyKSAqICgxICsgZXJyKQorICAgICAqICAgICAgPSBlKip5ICogZSoqKHkgKiAoMiplcnIgKyBlcnIqKjIpKSAqICgxICsgZXJyKQorICAgICAqICAgICAgICBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgorICAgICAqIFJlbGF0aXZlIGVycm9yIG9mIHRoZSB1bmRlcmxpbmVkIHRlcm06CisgICAgICogICAyKSBhYnMoZSoqKHkgKiAoMiplcnIgKyBlcnIqKjIpKSAtIDEpCisgICAgICogQ2FzZSBhYnMoeSkgPj0gMTAqKmV4dHJhOgorICAgICAqICAgMykgYWRqZXhwKHkpKzEgPiBsb2cxMChhYnMoeSkpID49IGV4dHJhCisgICAgICogICBUaGlzIHRyaWdnZXJzIHRoZSBPdmVyZmxvdy9VbmRlcmZsb3cgc2hvcnRjdXQgaW4gX21wZF9xZXhwKCksCisgICAgICogICBzbyBubyBmdXJ0aGVyIGFuYWx5c2lzIGlzIG5lY2Vzc2FyeS4KKyAgICAgKiBDYXNlIGFicyh5KSA8IDEwKipleHRyYToKKyAgICAgKiAgIDQpIGFicyh5ICogKDIqZXJyICsgZXJyKioyKSkgPCAxLzUgKiAxMCoqKC1wcmVjIC0gMikKKyAgICAgKiAgIFVzZSAoc2VlIF9tcGRfcWV4cCk6CisgICAgICogICAgIDUpIGFicyh4KSA8PSA5LzEwICogMTAqKi1wID09PiBhYnMoZSoqeCAtIDEpIDwgMTAqKi1wCisgICAgICogICBXaXRoIDIpLCA0KSBhbmQgNSk6CisgICAgICogICAgIDYpIGFicyhlKiooeSAqICgyKmVyciArIGVycioqMikpIC0gMSkgPCAxMCoqKC1wcmVjIC0gMikKKyAgICAgKiAgIFRoZSBjb21wbGV0ZSByZWxhdGl2ZSBlcnJvciBvZiAxKSBpczoKKyAgICAgKiAgICAgNykgYWJzKHJlc3VsdCAtIGUqKnkpIDwgZSoqeSAqIDEvNSAqIDEwKiooLXByZWMgLSAxKQorICAgICAqLworICAgIG1wZF9xbG4ocmVzdWx0LCBiYXNlLCAmd29ya2N0eCwgJndvcmtjdHguc3RhdHVzKTsKKyAgICBtcGRfcW11bChyZXN1bHQsIHJlc3VsdCwgJnRleHAsICZ3b3JrY3R4LCAmd29ya2N0eC5zdGF0dXMpOworICAgIG1wZF9xZXhwKHJlc3VsdCwgcmVzdWx0LCAmd29ya2N0eCwgc3RhdHVzKTsKKworICAgIG1wZF9kZWwoJnRleHApOworICAgICpzdGF0dXMgfD0gKHdvcmtjdHguc3RhdHVzJk1QRF9FcnJvcnMpOworICAgICpzdGF0dXMgfD0gKE1QRF9JbmV4YWN0fE1QRF9Sb3VuZGVkKTsKK30KKworLyogVGhlIHBvd2VyIGZ1bmN0aW9uOiBiYXNlKipleHAgKi8KK3ZvaWQKK21wZF9xcG93KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICpiYXNlLCBjb25zdCBtcGRfdCAqZXhwLAorICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIHVpbnQ4X3QgcmVzdWx0c2lnbiA9IDA7CisgICAgaW50IGludGV4cCA9IDA7CisgICAgaW50IGNtcDsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGJhc2UpIHx8IG1wZF9pc3NwZWNpYWwoZXhwKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW5zKHJlc3VsdCwgYmFzZSwgZXhwLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAobXBkX2lzaW50ZWdlcihleHApKSB7CisgICAgICAgIGludGV4cCA9IDE7CisgICAgICAgIHJlc3VsdHNpZ24gPSBtcGRfaXNuZWdhdGl2ZShiYXNlKSAmJiBtcGRfaXNvZGQoZXhwKTsKKyAgICB9CisKKyAgICBpZiAobXBkX2lzemVybyhiYXNlKSkgeworICAgICAgICBpZiAobXBkX2lzemVybyhleHApKSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobXBkX2lzbmVnYXRpdmUoZXhwKSkgeworICAgICAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCByZXN1bHRzaWduLCBNUERfSU5GKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCByZXN1bHRzaWduLCAwLCAwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtcGRfaXNuZWdhdGl2ZShiYXNlKSkgeworICAgICAgICBpZiAoIWludGV4cCB8fCBtcGRfaXNpbmZpbml0ZShleHApKSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKG1wZF9pc2luZmluaXRlKGV4cCkpIHsKKyAgICAgICAgLyogcG93ZXIgb2Ygb25lICovCisgICAgICAgIGNtcCA9IF9xY2hlY2tfcG93X29uZV9pbmYocmVzdWx0LCBiYXNlLCByZXN1bHRzaWduLCBjdHgsIHN0YXR1cyk7CisgICAgICAgIGlmIChjbXAgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY21wICo9IG1wZF9hcml0aF9zaWduKGV4cCk7CisgICAgICAgICAgICBpZiAoY21wIDwgMCkgeworICAgICAgICAgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCByZXN1bHRzaWduLCAwLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG1wZF9zZXRzcGVjaWFsKHJlc3VsdCwgcmVzdWx0c2lnbiwgTVBEX0lORik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzaW5maW5pdGUoYmFzZSkpIHsKKyAgICAgICAgaWYgKG1wZF9pc3plcm8oZXhwKSkgeworICAgICAgICAgICAgX3NldHRyaXBsZShyZXN1bHQsIHJlc3VsdHNpZ24sIDEsIDApOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKG1wZF9pc25lZ2F0aXZlKGV4cCkpIHsKKyAgICAgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCByZXN1bHRzaWduLCAwLCAwKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG1wZF9zZXRzcGVjaWFsKHJlc3VsdCwgcmVzdWx0c2lnbiwgTVBEX0lORik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzemVybyhleHApKSB7CisgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCByZXN1bHRzaWduLCAxLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoX3FjaGVja19wb3dfb25lKHJlc3VsdCwgYmFzZSwgZXhwLCByZXN1bHRzaWduLCBjdHgsIHN0YXR1cykgPT0gMCkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChfcWNoZWNrX3Bvd19ib3VuZHMocmVzdWx0LCBiYXNlLCBleHAsIHJlc3VsdHNpZ24sIGN0eCwgc3RhdHVzKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGludGV4cCkgeworICAgICAgICBfbXBkX3Fwb3dfaW50KHJlc3VsdCwgYmFzZSwgZXhwLCByZXN1bHRzaWduLCBjdHgsIHN0YXR1cyk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBfbXBkX3Fwb3dfcmVhbChyZXN1bHQsIGJhc2UsIGV4cCwgY3R4LCBzdGF0dXMpOworICAgICAgICBpZiAoIW1wZF9pc3NwZWNpYWwocmVzdWx0KSAmJiBfbXBkX2NtcChyZXN1bHQsICZvbmUpID09IDApIHsKKyAgICAgICAgICAgIG1wZF9zc2l6ZV90IHNoaWZ0ID0gY3R4LT5wcmVjLTE7CisgICAgICAgICAgICBtcGRfcXNoaWZ0bChyZXN1bHQsICZvbmUsIHNoaWZ0LCBzdGF0dXMpOworICAgICAgICAgICAgcmVzdWx0LT5leHAgPSAtc2hpZnQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1wZF9pc2luZmluaXRlKHJlc3VsdCkpIHsKKyAgICAgICAgICAgIC8qIGZvciBST1VORF9ET1dOLCBST1VORF9GTE9PUiwgZXRjLiAqLworICAgICAgICAgICAgX3NldHRyaXBsZShyZXN1bHQsIE1QRF9QT1MsIDEsIE1QRF9FWFBfSU5GKTsKKyAgICAgICAgfQorICAgICAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworICAgIH0KK30KKworLyoKKyAqIEludGVybmFsIGZ1bmN0aW9uOiBJbnRlZ2VyIHBvd21vZCB3aXRoIG1wZF91aW50X3QgZXhwb25lbnQsIGJhc2UgaXMgbW9kaWZpZWQhCisgKiBGdW5jdGlvbiBjYW4gZmFpbCB3aXRoIE1QRF9NYWxsb2NfZXJyb3IuCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9xcG93bW9kX3VpbnQobXBkX3QgKnJlc3VsdCwgbXBkX3QgKmJhc2UsIG1wZF91aW50X3QgZXhwLAorICAgICAgICAgICAgICAgICAgbXBkX3QgKm1vZCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IG1heGNvbnRleHQ7CisKKyAgICBtcGRfbWF4Y29udGV4dCgmbWF4Y29udGV4dCk7CisKKyAgICAvKiByZXNpemUgdG8gc21hbGxlciBjYW5ub3QgZmFpbCAqLworICAgIG1wZF9xY29weShyZXN1bHQsICZvbmUsIHN0YXR1cyk7CisKKyAgICB3aGlsZSAoZXhwID4gMCkgeworICAgICAgICBpZiAoZXhwICYgMSkgeworICAgICAgICAgICAgbXBkX3FtdWwocmVzdWx0LCByZXN1bHQsIGJhc2UsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgICAgICAgICAgbXBkX3FyZW0ocmVzdWx0LCByZXN1bHQsIG1vZCwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgbXBkX3FtdWwoYmFzZSwgYmFzZSwgYmFzZSwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgICAgIG1wZF9xcmVtKGJhc2UsIGJhc2UsIG1vZCwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgICAgIGV4cCA+Pj0gMTsKKyAgICB9Cit9CisKKy8qIFRoZSBwb3dtb2QgZnVuY3Rpb246IChiYXNlKipleHApICUgbW9kICovCit2b2lkCittcGRfcXBvd21vZChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYmFzZSwgY29uc3QgbXBkX3QgKmV4cCwKKyAgICAgICAgICAgIGNvbnN0IG1wZF90ICptb2QsCisgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX2NvbnRleHRfdCBtYXhjb250ZXh0OworICAgIE1QRF9ORVdfU1RBVElDKHRiYXNlLDAsMCwwLDApOworICAgIE1QRF9ORVdfU1RBVElDKHRleHAsMCwwLDAsMCk7CisgICAgTVBEX05FV19TVEFUSUModG1vZCwwLDAsMCwwKTsKKyAgICBNUERfTkVXX1NUQVRJQyh0bXAsMCwwLDAsMCk7CisgICAgTVBEX05FV19DT05TVCh0d28sMCwwLDEsMSwxLDIpOworICAgIG1wZF9zc2l6ZV90IHRiYXNlX2V4cCwgdGV4cF9leHA7CisgICAgbXBkX3NzaXplX3QgaTsKKyAgICBtcGRfdCB0OworICAgIG1wZF91aW50X3QgcjsKKyAgICB1aW50OF90IHNpZ247CisKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGJhc2UpIHx8IG1wZF9pc3NwZWNpYWwoZXhwKSB8fCBtcGRfaXNzcGVjaWFsKG1vZCkpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfM25hbnMocmVzdWx0LCBiYXNlLCBleHAsIG1vZCwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisKKyAgICBpZiAoIV9tcGRfaXNpbnQoYmFzZSkgfHwgIV9tcGRfaXNpbnQoZXhwKSB8fCAhX21wZF9pc2ludChtb2QpKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKG1vZCkpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtb2QtPmRpZ2l0cyttb2QtPmV4cCA+IGN0eC0+cHJlYykgeworICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzaWduID0gKG1wZF9pc25lZ2F0aXZlKGJhc2UpKSAmJiAobXBkX2lzb2RkKGV4cCkpOworICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoZXhwKSkgeworICAgICAgICBpZiAobXBkX2lzemVyb2NvZWZmKGJhc2UpKSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgciA9IChfbXBkX2NtcF9hYnMobW9kLCAmb25lKT09MCkgPyAwIDogMTsKKyAgICAgICAgX3NldHRyaXBsZShyZXN1bHQsIHNpZ24sIHIsIDApOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtcGRfaXNuZWdhdGl2ZShleHApKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGJhc2UpKSB7CisgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCBzaWduLCAwLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbXBkX3Fjb3B5KCZ0bW9kLCBtb2QsIHN0YXR1cykpIHsKKyAgICAgICAgZ290byBtcGRfZXJyb3JzOworICAgIH0KKyAgICBtcGRfc2V0X3Bvc2l0aXZlKCZ0bW9kKTsKKworICAgIG1wZF9tYXhjb250ZXh0KCZtYXhjb250ZXh0KTsKKworICAgIG1wZF9xcm91bmRfdG9faW50KCZ0YmFzZSwgYmFzZSwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgbXBkX3Fyb3VuZF90b19pbnQoJnRleHAsIGV4cCwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgbXBkX3Fyb3VuZF90b19pbnQoJnRtb2QsICZ0bW9kLCAmbWF4Y29udGV4dCwgc3RhdHVzKTsKKworICAgIHRiYXNlX2V4cCA9IHRiYXNlLmV4cDsKKyAgICB0YmFzZS5leHAgPSAwOworICAgIHRleHBfZXhwID0gdGV4cC5leHA7CisgICAgdGV4cC5leHAgPSAwOworCisgICAgLyogYmFzZSA9IChiYXNlLmludCAlIG1vZHVsbyAqIHBvdygxMCwgYmFzZS5leHAsIG1vZHVsbykpICUgbW9kdWxvICovCisgICAgbXBkX3FyZW0oJnRiYXNlLCAmdGJhc2UsICZ0bW9kLCAmbWF4Y29udGV4dCwgc3RhdHVzKTsKKyAgICBfc2V0dHJpcGxlKHJlc3VsdCwgTVBEX1BPUywgMSwgdGJhc2VfZXhwKTsKKyAgICBtcGRfcXJlbShyZXN1bHQsIHJlc3VsdCwgJnRtb2QsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgIG1wZF9xbXVsKCZ0YmFzZSwgJnRiYXNlLCByZXN1bHQsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgIG1wZF9xcmVtKCZ0YmFzZSwgJnRiYXNlLCAmdG1vZCwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgaWYgKG1wZF9pc3NwZWNpYWwoJnRiYXNlKSB8fAorICAgICAgICBtcGRfaXNzcGVjaWFsKCZ0ZXhwKSB8fAorICAgICAgICBtcGRfaXNzcGVjaWFsKCZ0bW9kKSkgeworICAgICAgICBnb3RvIG1wZF9lcnJvcnM7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IHRleHBfZXhwOyBpKyspIHsKKyAgICAgICAgX21wZF9xcG93bW9kX3VpbnQoJnRtcCwgJnRiYXNlLCAxMCwgJnRtb2QsIHN0YXR1cyk7CisgICAgICAgIHQgPSB0bXA7CisgICAgICAgIHRtcCA9IHRiYXNlOworICAgICAgICB0YmFzZSA9IHQ7CisgICAgfQorICAgIGlmIChtcGRfaXNzcGVjaWFsKCZ0YmFzZSkpIHsKKyAgICAgICAgZ290byBtcGRfZXJyb3JzOyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgfQorCisgICAgLyogcmVzaXplIHRvIHNtYWxsZXIgY2Fubm90IGZhaWwgKi8KKyAgICBtcGRfcWNvcHkocmVzdWx0LCAmb25lLCBzdGF0dXMpOworICAgIHdoaWxlIChtcGRfaXNmaW5pdGUoJnRleHApICYmICFtcGRfaXN6ZXJvKCZ0ZXhwKSkgeworICAgICAgICBpZiAobXBkX2lzb2RkKCZ0ZXhwKSkgeworICAgICAgICAgICAgbXBkX3FtdWwocmVzdWx0LCByZXN1bHQsICZ0YmFzZSwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgICAgICAgICBtcGRfcXJlbShyZXN1bHQsIHJlc3VsdCwgJnRtb2QsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIG1wZF9xbXVsKCZ0YmFzZSwgJnRiYXNlLCAmdGJhc2UsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgICAgICBtcGRfcXJlbSgmdGJhc2UsICZ0YmFzZSwgJnRtb2QsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgICAgICBtcGRfcWRpdmludCgmdGV4cCwgJnRleHAsICZ0d28sICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgIH0KKyAgICBpZiAobXBkX2lzc3BlY2lhbCgmdGV4cCkgfHwgbXBkX2lzc3BlY2lhbCgmdGJhc2UpIHx8CisgICAgICAgIG1wZF9pc3NwZWNpYWwoJnRtb2QpIHx8IG1wZF9pc3NwZWNpYWwocmVzdWx0KSkgeworICAgICAgICAvKiBNUERfTWFsbG9jX2Vycm9yICovCisgICAgICAgIGdvdG8gbXBkX2Vycm9yczsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIG1wZF9zZXRfc2lnbihyZXN1bHQsIHNpZ24pOworICAgIH0KKworb3V0OgorICAgIG1wZF9kZWwoJnRiYXNlKTsKKyAgICBtcGRfZGVsKCZ0ZXhwKTsKKyAgICBtcGRfZGVsKCZ0bW9kKTsKKyAgICBtcGRfZGVsKCZ0bXApOworICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCBjdHgsIHN0YXR1cyk7CisgICAgcmV0dXJuOworCittcGRfZXJyb3JzOgorICAgIG1wZF9zZXRzcGVjaWFsKHJlc3VsdCwgTVBEX1BPUywgTVBEX05BTik7CisgICAgZ290byBvdXQ7Cit9CisKK3ZvaWQKK21wZF9xcXVhbnRpemUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgdWludDMyX3Qgd29ya3N0YXR1cyA9IDA7CisgICAgbXBkX3NzaXplX3QgYl9leHAgPSBiLT5leHA7CisgICAgbXBkX3NzaXplX3QgZXhwZGlmZiwgc2hpZnQ7CisgICAgbXBkX3VpbnRfdCBybmQ7CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSB8fCBtcGRfaXNzcGVjaWFsKGIpKSB7CisgICAgICAgIGlmIChtcGRfcWNoZWNrX25hbnMocmVzdWx0LCBhLCBiLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobXBkX2lzaW5maW5pdGUoYSkgJiYgbXBkX2lzaW5maW5pdGUoYikpIHsKKyAgICAgICAgICAgIG1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGItPmV4cCA+IGN0eC0+ZW1heCB8fCBiLT5leHAgPCBtcGRfZXRpbnkoY3R4KSkgeworICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobXBkX2lzemVybyhhKSkgeworICAgICAgICBfc2V0dHJpcGxlKHJlc3VsdCwgbXBkX3NpZ24oYSksIDAsIGItPmV4cCk7CisgICAgICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCBjdHgsIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKworICAgIGV4cGRpZmYgPSBhLT5leHAgLSBiLT5leHA7CisgICAgaWYgKGEtPmRpZ2l0cyArIGV4cGRpZmYgPiBjdHgtPnByZWMpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGV4cGRpZmYgPj0gMCkgeworICAgICAgICBzaGlmdCA9IGV4cGRpZmY7CisgICAgICAgIGlmICghbXBkX3FzaGlmdGwocmVzdWx0LCBhLCBzaGlmdCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+ZXhwID0gYl9leHA7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvKiBBdCB0aGlzIHBvaW50IGV4cGRpZmYgPCAwIGFuZCBhLT5kaWdpdHMrZXhwZGlmZiA8PSBwcmVjLAorICAgICAgICAgKiBzbyB0aGUgc2hpZnQgYmVmb3JlIGFuIGluY3JlbWVudCB3aWxsIGZpdCBpbiBwcmVjLiAqLworICAgICAgICBzaGlmdCA9IC1leHBkaWZmOworICAgICAgICBybmQgPSBtcGRfcXNoaWZ0cihyZXN1bHQsIGEsIHNoaWZ0LCBzdGF0dXMpOworICAgICAgICBpZiAocm5kID09IE1QRF9VSU5UX01BWCkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+ZXhwID0gYl9leHA7CisgICAgICAgIGlmICghX21wZF9hcHBseV9yb3VuZF9maXQocmVzdWx0LCBybmQsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHdvcmtzdGF0dXMgfD0gTVBEX1JvdW5kZWQ7CisgICAgICAgIGlmIChybmQpIHsKKyAgICAgICAgICAgIHdvcmtzdGF0dXMgfD0gTVBEX0luZXhhY3Q7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobXBkX2FkamV4cChyZXN1bHQpID4gY3R4LT5lbWF4IHx8CisgICAgICAgIG1wZF9hZGpleHAocmVzdWx0KSA8IG1wZF9ldGlueShjdHgpKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgICpzdGF0dXMgfD0gd29ya3N0YXR1czsKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworfQorCit2b2lkCittcGRfcXJlZHVjZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfc3NpemVfdCBzaGlmdCwgbWF4ZXhwLCBtYXhzaGlmdDsKKyAgICB1aW50OF90IHNpZ25fYSA9IG1wZF9zaWduKGEpOworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfbmFuKHJlc3VsdCwgYSwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbXBkX3Fjb3B5KHJlc3VsdCwgYSwgc3RhdHVzKSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCBjdHgsIHN0YXR1cyk7CisgICAgaWYgKG1wZF9pc3NwZWNpYWwocmVzdWx0KSkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtcGRfaXN6ZXJvKHJlc3VsdCkpIHsKKyAgICAgICAgX3NldHRyaXBsZShyZXN1bHQsIHNpZ25fYSwgMCwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzaGlmdCA9IG1wZF90cmFpbF96ZXJvcyhyZXN1bHQpOworICAgIG1heGV4cCA9IChjdHgtPmNsYW1wKSA/IG1wZF9ldG9wKGN0eCkgOiBjdHgtPmVtYXg7CisgICAgLyogQWZ0ZXIgdGhlIGZpbmFsaXppbmcgYWJvdmUgcmVzdWx0LT5leHAgPD0gbWF4ZXhwLiAqLworICAgIG1heHNoaWZ0ID0gbWF4ZXhwIC0gcmVzdWx0LT5leHA7CisgICAgc2hpZnQgPSAoc2hpZnQgPiBtYXhzaGlmdCkgPyBtYXhzaGlmdCA6IHNoaWZ0OworCisgICAgbXBkX3FzaGlmdHJfaW5wbGFjZShyZXN1bHQsIHNoaWZ0KTsKKyAgICByZXN1bHQtPmV4cCArPSBzaGlmdDsKK30KKwordm9pZAorbXBkX3FyZW0obXBkX3QgKnIsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBNUERfTkVXX1NUQVRJQyhxLDAsMCwwLDApOworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkgfHwgbXBkX2lzc3BlY2lhbChiKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW5zKHIsIGEsIGIsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChtcGRfaXNpbmZpbml0ZShhKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHIsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobXBkX2lzaW5maW5pdGUoYikpIHsKKyAgICAgICAgICAgIG1wZF9xY29weShyLCBhLCBzdGF0dXMpOworICAgICAgICAgICAgbXBkX3FmaW5hbGl6ZShyLCBjdHgsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLyogZGVidWcgKi8KKyAgICAgICAgYWJvcnQoKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgIH0KKyAgICBpZiAobXBkX2lzemVyb2NvZWZmKGIpKSB7CisgICAgICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYSkpIHsKKyAgICAgICAgICAgIG1wZF9zZXRlcnJvcihyLCBNUERfRGl2aXNpb25fdW5kZWZpbmVkLCBzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHIsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgX21wZF9xZGl2bW9kKCZxLCByLCBhLCBiLCBjdHgsIHN0YXR1cyk7CisgICAgbXBkX2RlbCgmcSk7CisgICAgbXBkX3FmaW5hbGl6ZShyLCBjdHgsIHN0YXR1cyk7Cit9CisKK3ZvaWQKK21wZF9xcmVtX25lYXIobXBkX3QgKnIsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwKKyAgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9jb250ZXh0X3Qgd29ya2N0eDsKKyAgICBNUERfTkVXX1NUQVRJQyhidG1wLDAsMCwwLDApOworICAgIE1QRF9ORVdfU1RBVElDKHEsMCwwLDAsMCk7CisgICAgbXBkX3NzaXplX3QgZXhwZGlmZiwgcWRpZ2l0czsKKyAgICBpbnQgY21wLCBpc29kZCwgYWxsbmluZTsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpIHx8IG1wZF9pc3NwZWNpYWwoYikpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfbmFucyhyLCBhLCBiLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobXBkX2lzaW5maW5pdGUoYSkpIHsKKyAgICAgICAgICAgIG1wZF9zZXRlcnJvcihyLCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1wZF9pc2luZmluaXRlKGIpKSB7CisgICAgICAgICAgICBtcGRfcWNvcHkociwgYSwgc3RhdHVzKTsKKyAgICAgICAgICAgIG1wZF9xZmluYWxpemUociwgY3R4LCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8qIGRlYnVnICovCisgICAgICAgIGFib3J0KCk7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9CisgICAgaWYgKG1wZF9pc3plcm9jb2VmZihiKSkgeworICAgICAgICBpZiAobXBkX2lzemVyb2NvZWZmKGEpKSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IociwgIE1QRF9EaXZpc2lvbl91bmRlZmluZWQsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IociwgIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKHIgPT0gYikgeworICAgICAgICBpZiAoIW1wZF9xY29weSgmYnRtcCwgYiwgc3RhdHVzKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHIsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgYiA9ICZidG1wOworICAgIH0KKworICAgIF9tcGRfcWRpdm1vZCgmcSwgciwgYSwgYiwgY3R4LCBzdGF0dXMpOworICAgIGlmIChtcGRfaXNuYW4oJnEpIHx8IG1wZF9pc25hbihyKSkgeworICAgICAgICBnb3RvIGZpbmlzaDsKKyAgICB9CisgICAgaWYgKG1wZF9pc3plcm9jb2VmZihyKSkgeworICAgICAgICBnb3RvIGZpbmlzaDsKKyAgICB9CisKKyAgICBleHBkaWZmID0gbXBkX2FkamV4cChiKSAtIG1wZF9hZGpleHAocik7CisgICAgaWYgKC0xIDw9IGV4cGRpZmYgJiYgZXhwZGlmZiA8PSAxKSB7CisKKyAgICAgICAgYWxsbmluZSA9IG1wZF9jb2VmZl9pc2FsbG5pbmUoJnEpOworICAgICAgICBxZGlnaXRzID0gcS5kaWdpdHM7CisgICAgICAgIGlzb2RkID0gbXBkX2lzb2RkKCZxKTsKKworICAgICAgICBtcGRfbWF4Y29udGV4dCgmd29ya2N0eCk7CisgICAgICAgIGlmIChtcGRfc2lnbihhKSA9PSBtcGRfc2lnbihiKSkgeworICAgICAgICAgICAgLyogc2lnbihyKSA9PSBzaWduKGIpICovCisgICAgICAgICAgICBfbXBkX3FzdWIoJnEsIHIsIGIsICZ3b3JrY3R4LCAmd29ya2N0eC5zdGF0dXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLyogc2lnbihyKSAhPSBzaWduKGIpICovCisgICAgICAgICAgICBfbXBkX3FhZGQoJnEsIHIsIGIsICZ3b3JrY3R4LCAmd29ya2N0eC5zdGF0dXMpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdvcmtjdHguc3RhdHVzJk1QRF9FcnJvcnMpIHsKKyAgICAgICAgICAgIG1wZF9zZXRlcnJvcihyLCB3b3JrY3R4LnN0YXR1cyZNUERfRXJyb3JzLCBzdGF0dXMpOworICAgICAgICAgICAgZ290byBmaW5pc2g7CisgICAgICAgIH0KKworICAgICAgICBjbXAgPSBfbXBkX2NtcF9hYnMoJnEsIHIpOworICAgICAgICBpZiAoY21wIDwgMCB8fCAoY21wID09IDAgJiYgaXNvZGQpKSB7CisgICAgICAgICAgICAvKiBhYnMocikgPiBhYnMoYikvMiBvciBhYnMocikgPT0gYWJzKGIpLzIgYW5kIGlzb2RkKHF1b3RpZW50KSAqLworICAgICAgICAgICAgaWYgKGFsbG5pbmUgJiYgcWRpZ2l0cyA9PSBjdHgtPnByZWMpIHsKKyAgICAgICAgICAgICAgICAvKiBhYnMocXVvdGllbnQpICsgMSA9PSAxMCoqcHJlYyAqLworICAgICAgICAgICAgICAgIG1wZF9zZXRlcnJvcihyLCBNUERfRGl2aXNpb25faW1wb3NzaWJsZSwgc3RhdHVzKTsKKyAgICAgICAgICAgICAgICBnb3RvIGZpbmlzaDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1wZF9xY29weShyLCAmcSwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgIH0KKworCitmaW5pc2g6CisgICAgbXBkX2RlbCgmYnRtcCk7CisgICAgbXBkX2RlbCgmcSk7CisgICAgbXBkX3FmaW5hbGl6ZShyLCBjdHgsIHN0YXR1cyk7Cit9CisKK3N0YXRpYyB2b2lkCitfbXBkX3FyZXNjYWxlKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfc3NpemVfdCBleHAsCisgICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfc3NpemVfdCBleHBkaWZmLCBzaGlmdDsKKyAgICBtcGRfdWludF90IHJuZDsKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpKSB7CisgICAgICAgIG1wZF9xY29weShyZXN1bHQsIGEsIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobXBkX2lzemVybyhhKSkgeworICAgICAgICBfc2V0dHJpcGxlKHJlc3VsdCwgbXBkX3NpZ24oYSksIDAsIGV4cCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBleHBkaWZmID0gYS0+ZXhwIC0gZXhwOworICAgIGlmIChleHBkaWZmID49IDApIHsKKyAgICAgICAgc2hpZnQgPSBleHBkaWZmOworICAgICAgICBpZiAoYS0+ZGlnaXRzICsgc2hpZnQgPiBNUERfTUFYX1BSRUMrMSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmICghbXBkX3FzaGlmdGwocmVzdWx0LCBhLCBzaGlmdCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHJlc3VsdC0+ZXhwID0gZXhwOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgc2hpZnQgPSAtZXhwZGlmZjsKKyAgICAgICAgcm5kID0gbXBkX3FzaGlmdHIocmVzdWx0LCBhLCBzaGlmdCwgc3RhdHVzKTsKKyAgICAgICAgaWYgKHJuZCA9PSBNUERfVUlOVF9NQVgpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICByZXN1bHQtPmV4cCA9IGV4cDsKKyAgICAgICAgX21wZF9hcHBseV9yb3VuZF9leGNlc3MocmVzdWx0LCBybmQsIGN0eCwgc3RhdHVzKTsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfUm91bmRlZDsKKyAgICAgICAgaWYgKHJuZCkgeworICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfSW5leGFjdDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChtcGRfaXNzdWJub3JtYWwocmVzdWx0LCBjdHgpKSB7CisgICAgICAgICpzdGF0dXMgfD0gTVBEX1N1Ym5vcm1hbDsKKyAgICB9Cit9CisKKy8qCisgKiBSZXNjYWxlIGEgbnVtYmVyIHNvIHRoYXQgaXQgaGFzIGV4cG9uZW50ICdleHAnLiBEb2VzIG5vdCByZWdhcmQgY29udGV4dAorICogcHJlY2lzaW9uLCBlbWF4LCBlbWluLCBidXQgdXNlcyB0aGUgcm91bmRpbmcgbW9kZS4gU3BlY2lhbCBudW1iZXJzIGFyZQorICogcXVpZXRseSBjb3BpZWQuIFJlc3RyaWN0aW9uczoKKyAqCisgKiAgICAgTVBEX01JTl9FVElOWSA8PSBleHAgPD0gTVBEX01BWF9FTUFYKzEKKyAqICAgICByZXN1bHQtPmRpZ2l0cyA8PSBNUERfTUFYX1BSRUMrMQorICovCit2b2lkCittcGRfcXJlc2NhbGUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9zc2l6ZV90IGV4cCwKKyAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKGV4cCA+IE1QRF9NQVhfRU1BWCsxIHx8IGV4cCA8IE1QRF9NSU5fRVRJTlkpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgX21wZF9xcmVzY2FsZShyZXN1bHQsIGEsIGV4cCwgY3R4LCBzdGF0dXMpOworfQorCisvKgorICogU2FtZSBhcyBtcGRfcXJlc2NhbGUsIGJ1dCB3aXRoIHJlbGF4ZWQgcmVzdHJpY3Rpb25zLiBUaGUgcmVzdWx0IG9mIHRoaXMKKyAqIGZ1bmN0aW9uIHNob3VsZCBvbmx5IGJlIHVzZWQgZm9yIGZvcm1hdHRpbmcgYSBudW1iZXIgYW5kIG5ldmVyIGFzIGlucHV0CisgKiBmb3Igb3RoZXIgb3BlcmF0aW9ucy4KKyAqCisgKiAgICAgTVBEX01JTl9FVElOWS1NUERfTUFYX1BSRUMgPD0gZXhwIDw9IE1QRF9NQVhfRU1BWCsxCisgKiAgICAgcmVzdWx0LT5kaWdpdHMgPD0gTVBEX01BWF9QUkVDKzEKKyAqLwordm9pZAorbXBkX3FyZXNjYWxlX2ZtdChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgZXhwLAorICAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgaWYgKGV4cCA+IE1QRF9NQVhfRU1BWCsxIHx8IGV4cCA8IE1QRF9NSU5fRVRJTlktTVBEX01BWF9QUkVDKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIF9tcGRfcXJlc2NhbGUocmVzdWx0LCBhLCBleHAsIGN0eCwgc3RhdHVzKTsKK30KKworLyogUm91bmQgdG8gYW4gaW50ZWdlciBhY2NvcmRpbmcgdG8gJ2FjdGlvbicgYW5kIGN0eC0+cm91bmQuICovCitlbnVtIHtUT19JTlRfRVhBQ1QsIFRPX0lOVF9TSUxFTlQsIFRPX0lOVF9UUlVOQ307CitzdGF0aWMgdm9pZAorX21wZF9xcm91bmRfdG9faW50ZWdyYWwoaW50IGFjdGlvbiwgbXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3VpbnRfdCBybmQ7CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChhKSkgeworICAgICAgICBpZiAobXBkX3FjaGVja19uYW4ocmVzdWx0LCBhLCBjdHgsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChhLT5leHAgPj0gMCkgeworICAgICAgICBtcGRfcWNvcHkocmVzdWx0LCBhLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChtcGRfaXN6ZXJvY29lZmYoYSkpIHsKKyAgICAgICAgX3NldHRyaXBsZShyZXN1bHQsIG1wZF9zaWduKGEpLCAwLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJuZCA9IG1wZF9xc2hpZnRyKHJlc3VsdCwgYSwgLWEtPmV4cCwgc3RhdHVzKTsKKyAgICBpZiAocm5kID09IE1QRF9VSU5UX01BWCkgeworICAgICAgICByZXR1cm47CisgICAgfQorICAgIHJlc3VsdC0+ZXhwID0gMDsKKworICAgIGlmIChhY3Rpb24gPT0gVE9fSU5UX0VYQUNUIHx8IGFjdGlvbiA9PSBUT19JTlRfU0lMRU5UKSB7CisgICAgICAgIF9tcGRfYXBwbHlfcm91bmRfZXhjZXNzKHJlc3VsdCwgcm5kLCBjdHgsIHN0YXR1cyk7CisgICAgICAgIGlmIChhY3Rpb24gPT0gVE9fSU5UX0VYQUNUKSB7CisgICAgICAgICAgICAqc3RhdHVzIHw9IE1QRF9Sb3VuZGVkOworICAgICAgICAgICAgaWYgKHJuZCkgeworICAgICAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX0luZXhhY3Q7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQKK21wZF9xcm91bmRfdG9faW50eChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LAorICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgKHZvaWQpX21wZF9xcm91bmRfdG9faW50ZWdyYWwoVE9fSU5UX0VYQUNULCByZXN1bHQsIGEsIGN0eCwgc3RhdHVzKTsKK30KKwordm9pZAorbXBkX3Fyb3VuZF90b19pbnQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgKHZvaWQpX21wZF9xcm91bmRfdG9faW50ZWdyYWwoVE9fSU5UX1NJTEVOVCwgcmVzdWx0LCBhLCBjdHgsIHN0YXR1cyk7Cit9CisKK3ZvaWQKK21wZF9xdHJ1bmMobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICAodm9pZClfbXBkX3Fyb3VuZF90b19pbnRlZ3JhbChUT19JTlRfVFJVTkMsIHJlc3VsdCwgYSwgY3R4LCBzdGF0dXMpOworfQorCit2b2lkCittcGRfcWZsb29yKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX2NvbnRleHRfdCB3b3JrY3R4ID0gKmN0eDsKKyAgICB3b3JrY3R4LnJvdW5kID0gTVBEX1JPVU5EX0ZMT09SOworICAgICh2b2lkKV9tcGRfcXJvdW5kX3RvX2ludGVncmFsKFRPX0lOVF9TSUxFTlQsIHJlc3VsdCwgYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd29ya2N0eCwgc3RhdHVzKTsKK30KKwordm9pZAorbXBkX3FjZWlsKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IHdvcmtjdHggPSAqY3R4OworICAgIHdvcmtjdHgucm91bmQgPSBNUERfUk9VTkRfQ0VJTElORzsKKyAgICAodm9pZClfbXBkX3Fyb3VuZF90b19pbnRlZ3JhbChUT19JTlRfU0lMRU5ULCByZXN1bHQsIGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJndvcmtjdHgsIHN0YXR1cyk7Cit9CisKK2ludAorbXBkX3NhbWVfcXVhbnR1bShjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIpCit7CisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkgfHwgbXBkX2lzc3BlY2lhbChiKSkgeworICAgICAgICByZXR1cm4gKChtcGRfaXNuYW4oYSkgJiYgbXBkX2lzbmFuKGIpKSB8fAorICAgICAgICAgICAgICAgIChtcGRfaXNpbmZpbml0ZShhKSAmJiBtcGRfaXNpbmZpbml0ZShiKSkpOworICAgIH0KKworICAgIHJldHVybiBhLT5leHAgPT0gYi0+ZXhwOworfQorCisvKiBTY2hlZHVsZSB0aGUgaW5jcmVhc2UgaW4gcHJlY2lzaW9uIGZvciB0aGUgTmV3dG9uIGl0ZXJhdGlvbi4gKi8KK3N0YXRpYyBpbmxpbmUgaW50CityZWNwcl9zY2hlZHVsZV9wcmVjKG1wZF9zc2l6ZV90IGtsaXN0W01QRF9NQVhfUFJFQ19MT0cyXSwKKyAgICAgICAgICAgICAgICAgICAgbXBkX3NzaXplX3QgbWF4cHJlYywgbXBkX3NzaXplX3QgaW5pdHByZWMpCit7CisgICAgbXBkX3NzaXplX3QgazsKKyAgICBpbnQgaTsKKworICAgIGFzc2VydChtYXhwcmVjID4gMCAmJiBpbml0cHJlYyA+IDApOworICAgIGlmIChtYXhwcmVjIDw9IGluaXRwcmVjKSByZXR1cm4gLTE7CisKKyAgICBpID0gMDsgayA9IG1heHByZWM7CisgICAgZG8geworICAgICAgICBrID0gKGsrMSkgLyAyOworICAgICAgICBrbGlzdFtpKytdID0gazsKKyAgICB9IHdoaWxlIChrID4gaW5pdHByZWMpOworCisgICAgcmV0dXJuIGktMTsKK30KKworLyoKKyAqIEluaXRpYWwgYXBwcm94aW1hdGlvbiBmb3IgdGhlIHJlY2lwcm9jYWw6CisgKiAgICBrXzAgOj0gTVBEX1JESUdJVFMtMgorICogICAgel8wIDo9IDEwKiooLWtfMCkgKiBmbG9vcigxMCoqKDIqa18wICsgMikgLyBmbG9vcih2ICogMTAqKihrXzAgKyAyKSkpCisgKiBBYnNvbHV0ZSBlcnJvcjoKKyAqICAgIHwxL3YgLSB6XzB8IDwgMTAqKigta18wKQorICogQUNMMiBwcm9vZjogbWF4ZXJyb3ItaW52ZXJzZS1hcHByb3gKKyAqLworc3RhdGljIHZvaWQKK19tcGRfcXJlY2lwcm9jYWxfYXBwcm94KG1wZF90ICp6LCBjb25zdCBtcGRfdCAqdiwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfdWludF90IHAxMGRhdGFbMl0gPSB7MCwgbXBkX3BvdzEwW01QRF9SRElHSVRTLTJdfTsKKyAgICBtcGRfdWludF90IGR1bW15LCB3b3JkOworICAgIGludCBuOworCisgICAgYXNzZXJ0KHYtPmV4cCA9PSAtdi0+ZGlnaXRzKTsKKworICAgIF9tcGRfZ2V0X21zZGlnaXRzKCZkdW1teSwgJndvcmQsIHYsIE1QRF9SRElHSVRTKTsKKyAgICBuID0gbXBkX3dvcmRfZGlnaXRzKHdvcmQpOworICAgIHdvcmQgKj0gbXBkX3BvdzEwW01QRF9SRElHSVRTLW5dOworCisgICAgbXBkX3FyZXNpemUoeiwgMiwgc3RhdHVzKTsKKyAgICAodm9pZClfbXBkX3Nob3J0ZGl2KHotPmRhdGEsIHAxMGRhdGEsIDIsIHdvcmQpOworCisgICAgbXBkX2NsZWFyX2ZsYWdzKHopOworICAgIHotPmV4cCA9IC0oTVBEX1JESUdJVFMtMik7CisgICAgei0+bGVuID0gKHotPmRhdGFbMV0gPT0gMCkgPyAxIDogMjsKKyAgICBtcGRfc2V0ZGlnaXRzKHopOworfQorCisvKgorICogUmVjaXByb2NhbCwgY2FsY3VsYXRlZCB3aXRoIE5ld3RvbidzIE1ldGhvZC4gQXNzdW1wdGlvbjogcmVzdWx0ICE9IGEuCisgKiBOT1RFOiBUaGUgY29tbWVudHMgaW4gdGhlIGZ1bmN0aW9uIHNob3cgdGhhdCBjZXJ0YWluIG9wZXJhdGlvbnMgYXJlCisgKiBleGFjdC4gVGhlIHByb29mIGZvciB0aGUgbWF4aW11bSBlcnJvciBpcyB0b28gbG9uZyB0byBmaXQgaW4gaGVyZS4KKyAqIEFDTDIgcHJvb2Y6IG1heGVycm9yLWludmVyc2UtY29tcGxldGUKKyAqLworc3RhdGljIHZvaWQKK19tcGRfcXJlY2lwcm9jYWwobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IHZhcmNvbnRleHQsIG1heGNvbnRleHQ7CisgICAgbXBkX3QgKnogPSByZXN1bHQ7ICAgICAgICAgLyogY3VycmVudCBhcHByb3hpbWF0aW9uICovCisgICAgbXBkX3QgKnY7ICAgICAgICAgICAgICAgICAgLyogYSwgbm9ybWFsaXplZCB0byBhIG51bWJlciBiZXR3ZWVuIDAuMSBhbmQgMSAqLworICAgIE1QRF9ORVdfU0hBUkVEKHZ0bXAsIGEpOyAgIC8qIHYgc2hhcmVzIGRhdGEgd2l0aCBhICovCisgICAgTVBEX05FV19TVEFUSUMocywwLDAsMCwwKTsgLyogdGVtcG9yYXJ5IHZhcmlhYmxlICovCisgICAgTVBEX05FV19TVEFUSUModCwwLDAsMCwwKTsgLyogdGVtcG9yYXJ5IHZhcmlhYmxlICovCisgICAgTVBEX05FV19DT05TVCh0d28sMCwwLDEsMSwxLDIpOyAvKiBjb25zdCAyICovCisgICAgbXBkX3NzaXplX3Qga2xpc3RbTVBEX01BWF9QUkVDX0xPRzJdOworICAgIG1wZF9zc2l6ZV90IGFkaiwgbWF4cHJlYywgaW5pdHByZWM7CisgICAgdWludDhfdCBzaWduID0gbXBkX3NpZ24oYSk7CisgICAgaW50IGk7CisKKyAgICBhc3NlcnQocmVzdWx0ICE9IGEpOworCisgICAgdiA9ICZ2dG1wOworICAgIG1wZF9jbGVhcl9mbGFncyh2KTsKKyAgICBhZGogPSB2LT5kaWdpdHMgKyB2LT5leHA7CisgICAgdi0+ZXhwID0gLXYtPmRpZ2l0czsKKworICAgIC8qIEluaXRpYWwgYXBwcm94aW1hdGlvbiAqLworICAgIF9tcGRfcXJlY2lwcm9jYWxfYXBwcm94KHosIHYsIHN0YXR1cyk7CisKKyAgICBtcGRfbWF4Y29udGV4dCgmdmFyY29udGV4dCk7CisgICAgbXBkX21heGNvbnRleHQoJm1heGNvbnRleHQpOworICAgIHZhcmNvbnRleHQucm91bmQgPSBtYXhjb250ZXh0LnJvdW5kID0gTVBEX1JPVU5EX1RSVU5DOworICAgIHZhcmNvbnRleHQuZW1heCA9IG1heGNvbnRleHQuZW1heCA9IE1QRF9NQVhfRU1BWCArIDEwMDsKKyAgICB2YXJjb250ZXh0LmVtaW4gPSBtYXhjb250ZXh0LmVtaW4gPSBNUERfTUlOX0VNSU4gLSAxMDA7CisgICAgbWF4Y29udGV4dC5wcmVjID0gTVBEX01BWF9QUkVDICsgMTAwOworCisgICAgbWF4cHJlYyA9IGN0eC0+cHJlYzsKKyAgICBtYXhwcmVjICs9IDI7CisgICAgaW5pdHByZWMgPSBNUERfUkRJR0lUUy0zOworCisgICAgaSA9IHJlY3ByX3NjaGVkdWxlX3ByZWMoa2xpc3QsIG1heHByZWMsIGluaXRwcmVjKTsKKyAgICBmb3IgKDsgaSA+PSAwOyBpLS0pIHsKKyAgICAgICAgIC8qIExvb3AgaW52YXJpYW50OiB6LT5kaWdpdHMgPD0ga2xpc3RbaV0rNyAqLworICAgICAgICAgLyogTGV0IHMgOj0geioqMiwgZXhhY3QgcmVzdWx0ICovCisgICAgICAgIF9tcGRfcW11bF9leGFjdCgmcywgeiwgeiwgJm1heGNvbnRleHQsIHN0YXR1cyk7CisgICAgICAgIHZhcmNvbnRleHQucHJlYyA9IDIqa2xpc3RbaV0gKyA1OworICAgICAgICBpZiAodi0+ZGlnaXRzID4gdmFyY29udGV4dC5wcmVjKSB7CisgICAgICAgICAgICAvKiBMZXQgdCA6PSB2LCB0cnVuY2F0ZWQgdG8gbiA+PSAyKmsrNSBmcmFjdGlvbiBkaWdpdHMgKi8KKyAgICAgICAgICAgIG1wZF9xc2hpZnRyKCZ0LCB2LCB2LT5kaWdpdHMtdmFyY29udGV4dC5wcmVjLCBzdGF0dXMpOworICAgICAgICAgICAgdC5leHAgPSAtdmFyY29udGV4dC5wcmVjOworICAgICAgICAgICAgLyogTGV0IHQgOj0gdHJ1bmModikqcywgdHJ1bmNhdGVkIHRvIG4gPj0gMiprKzEgZnJhY3Rpb24gZGlnaXRzICovCisgICAgICAgICAgICBtcGRfcW11bCgmdCwgJnQsICZzLCAmdmFyY29udGV4dCwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsgLyogdi0+ZGlnaXRzIDw9IDIqays1ICovCisgICAgICAgICAgICAvKiBMZXQgdCA6PSB2KnMsIHRydW5jYXRlZCB0byBuID49IDIqaysxIGZyYWN0aW9uIGRpZ2l0cyAqLworICAgICAgICAgICAgbXBkX3FtdWwoJnQsIHYsICZzLCAmdmFyY29udGV4dCwgc3RhdHVzKTsKKyAgICAgICAgfQorICAgICAgICAvKiBMZXQgcyA6PSAyKnosIGV4YWN0IHJlc3VsdCAqLworICAgICAgICBfbXBkX3FtdWxfZXhhY3QoJnMsIHosICZ0d28sICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgICAgICAvKiBzLmRpZ2l0cyA8IHQuZGlnaXRzIDw9IDIqays1LCB8YWRqZXhwKHMpLWFkamV4cCh0KXwgPD0gMSwKKyAgICAgICAgICogc28gdGhlIHN1YnRyYWN0aW9uIGdlbmVyYXRlcyBhdCBtb3N0IDIqays2IDw9IGtsaXN0W2krMV0rNworICAgICAgICAgKiBkaWdpdHMuIFRoZSBsb29wIGludmFyaWFudCBpcyBwcmVzZXJ2ZWQuICovCisgICAgICAgIF9tcGRfcXN1Yl9leGFjdCh6LCAmcywgJnQsICZtYXhjb250ZXh0LCBzdGF0dXMpOworICAgIH0KKworICAgIGlmICghbXBkX2lzc3BlY2lhbCh6KSkgeworICAgICAgICB6LT5leHAgLT0gYWRqOworICAgICAgICBtcGRfc2V0X2ZsYWdzKHosIHNpZ24pOworICAgIH0KKworICAgIG1wZF9kZWwoJnMpOworICAgIG1wZF9kZWwoJnQpOworICAgIG1wZF9xZmluYWxpemUoeiwgY3R4LCBzdGF0dXMpOworfQorCisvKgorICogSW50ZXJuYWwgZnVuY3Rpb24gZm9yIGxhcmdlIG51bWJlcnM6CisgKgorICogICAgIHEsIHIgPSBkaXZtb2QoY29lZmYoYSksIGNvZWZmKGIpKQorICoKKyAqIFN0cmF0ZWd5OiBNdWx0aXBseSB0aGUgZGl2aWRlbmQgYnkgdGhlIHJlY2lwcm9jYWwgb2YgdGhlIGRpdmlzb3IuIFRoZQorICogaW5leGFjdCByZXN1bHQgaXMgZml4ZWQgYnkgYSBzbWFsbCBsb29wLCB1c2luZyBhdCBtb3N0IG9uZSBpdGVyYXRpb24uCisgKgorICogQUNMMiBwcm9vZnM6CisgKiAtLS0tLS0tLS0tLS0KKyAqICAgIDEpIHEgaXMgYSBuYXR1cmFsIG51bWJlci4gIChuZGl2bW9kLXF1b3RpZW50LW5hdHApCisgKiAgICAyKSByIGlzIGEgbmF0dXJhbCBudW1iZXIuICAobmRpdm1vZC1yZW1haW5kZXItbmF0cCkKKyAqICAgIDMpIGEgPSBxICogYiArIHIgICAgICAgICAgIChuZGl2bW9kLXEqYityPT1hKQorICogICAgNCkgciA8IGIgICAgICAgICAgICAgICAgICAgKG5kaXZtb2QtcmVtYWluZGVyLTwtYikKKyAqLworc3RhdGljIHZvaWQKK19tcGRfYmFzZV9uZGl2bW9kKG1wZF90ICpxLCBtcGRfdCAqciwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLAorICAgICAgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfY29udGV4dF90IHdvcmtjdHg7CisgICAgbXBkX3QgKnFxID0gcSwgKnJyID0gcjsKKyAgICBtcGRfdCBhYSwgYmI7CisgICAgaW50IGs7CisKKyAgICBfbXBkX2NvcHlfc2hhcmVkKCZhYSwgYSk7CisgICAgX21wZF9jb3B5X3NoYXJlZCgmYmIsIGIpOworCisgICAgbXBkX3NldF9wb3NpdGl2ZSgmYWEpOworICAgIG1wZF9zZXRfcG9zaXRpdmUoJmJiKTsKKyAgICBhYS5leHAgPSAwOworICAgIGJiLmV4cCA9IDA7CisKKyAgICBpZiAocSA9PSBhIHx8IHEgPT0gYikgeworICAgICAgICBpZiAoKHFxID0gbXBkX3FuZXcoKSkgPT0gTlVMTCkgeworICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfTWFsbG9jX2Vycm9yOworICAgICAgICAgICAgZ290byBuYW5yZXN1bHQ7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHIgPT0gYSB8fCByID09IGIpIHsKKyAgICAgICAgaWYgKChyciA9IG1wZF9xbmV3KCkpID09IE5VTEwpIHsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX01hbGxvY19lcnJvcjsKKyAgICAgICAgICAgIGdvdG8gbmFucmVzdWx0OworICAgICAgICB9CisgICAgfQorCisgICAgbXBkX21heGNvbnRleHQoJndvcmtjdHgpOworCisgICAgLyogTGV0IHByZWMgOj0gYWRpZ2l0cyAtIGJkaWdpdHMgKyA0ICovCisgICAgd29ya2N0eC5wcmVjID0gYS0+ZGlnaXRzIC0gYi0+ZGlnaXRzICsgMSArIDM7CisgICAgaWYgKGEtPmRpZ2l0cyA+IE1QRF9NQVhfUFJFQyB8fCB3b3JrY3R4LnByZWMgPiBNUERfTUFYX1BSRUMpIHsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfRGl2aXNpb25faW1wb3NzaWJsZTsKKyAgICAgICAgZ290byBuYW5yZXN1bHQ7CisgICAgfQorCisgICAgLyogTGV0IHggOj0gX21wZF9xcmVjaXByb2NhbChiLCBwcmVjKSAKKyAgICAgKiBUaGVuIHggaXMgYm91bmRlZCBieToKKyAgICAgKiAgICAxKSAxL2IgLSAxMCoqKC1wcmVjIC0gYmRpZ2l0cykgPCB4IDwgMS9iICsgMTAqKigtcHJlYyAtIGJkaWdpdHMpCisgICAgICogICAgMikgMS9iIC0gMTAqKigtYWRpZ2l0cyAtIDQpIDwgeCA8IDEvYiArIDEwKiooLWFkaWdpdHMgLSA0KQorICAgICAqLworICAgIF9tcGRfcXJlY2lwcm9jYWwocnIsICZiYiwgJndvcmtjdHgsICZ3b3JrY3R4LnN0YXR1cyk7CisKKyAgICAvKiBHZXQgYW4gZXN0aW1hdGUgZm9yIHRoZSBxdW90aWVudC4gTGV0IHEgOj0gYSAqIHgKKyAgICAgKiBUaGVuIHEgaXMgYm91bmRlZCBieToKKyAgICAgKiAgICAzKSBhL2IgLSAxMCoqLTQgPCBxIDwgYS9iICsgMTAqKi00CisgICAgICovCisgICAgX21wZF9xbXVsKHFxLCAmYWEsIHJyLCAmd29ya2N0eCwgJndvcmtjdHguc3RhdHVzKTsKKyAgICAvKiBUcnVuY2F0ZSBxIHRvIGFuIGludGVnZXI6CisgICAgICogICAgNCkgYS9iIC0gMiA8IHRydW5jKHEpIDwgYS9iICsgMQorICAgICAqLworICAgIG1wZF9xdHJ1bmMocXEsIHFxLCAmd29ya2N0eCwgJndvcmtjdHguc3RhdHVzKTsKKworICAgIHdvcmtjdHgucHJlYyA9IGFhLmRpZ2l0cyArIDM7CisgICAgd29ya2N0eC5lbWF4ID0gTVBEX01BWF9FTUFYICsgMzsKKyAgICB3b3JrY3R4LmVtaW4gPSBNUERfTUlOX0VNSU4gLSAzOworICAgIC8qIE11bHRpcGx5IHRoZSBlc3RpbWF0ZSBmb3IgcSBieSBiOgorICAgICAqICAgIDUpIGEgLSAyICogYiA8IHRydW5jKHEpICogYiA8IGEgKyBiCisgICAgICovCisgICAgX21wZF9xbXVsKHJyLCAmYmIsIHFxLCAmd29ya2N0eCwgJndvcmtjdHguc3RhdHVzKTsKKyAgICAvKiBHZXQgdGhlIGVzdGltYXRlIGZvciByIHN1Y2ggdGhhdCBhID0gcSAqIGIgKyByLiAqLworICAgIF9tcGRfcXN1Yl9leGFjdChyciwgJmFhLCByciwgJndvcmtjdHgsICZ3b3JrY3R4LnN0YXR1cyk7CisKKyAgICAvKiBGaXggdGhlIHJlc3VsdC4gQXQgdGhpcyBwb2ludCAtYiA8IHIgPCAyKmIsIHNvIHRoZSBjb3JyZWN0aW9uIGxvb3AKKyAgICAgICB0YWtlcyBhdCBtb3N0IG9uZSBpdGVyYXRpb24uICovCisgICAgZm9yIChrID0gMDs7IGsrKykgeworICAgICAgICBpZiAobXBkX2lzc3BlY2lhbChxcSkgfHwgbXBkX2lzc3BlY2lhbChycikpIHsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gKHdvcmtjdHguc3RhdHVzJk1QRF9FcnJvcnMpOworICAgICAgICAgICAgZ290byBuYW5yZXN1bHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGsgPiAyKSB7IC8qIEFsbG93IHR3byBpdGVyYXRpb25zIGRlc3BpdGUgdGhlIHByb29mLiAqLworICAgICAgICAgICAgbXBkX2Vycl93YXJuKCJsaWJtcGRlYzogaW50ZXJuYWwgZXJyb3IgaW4gIiAgICAgICAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgICAgICAgICAgICAgICAgICAgICAgIl9tcGRfYmFzZV9uZGl2bW9kOiBwbGVhc2UgcmVwb3J0Iik7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX0ludmFsaWRfb3BlcmF0aW9uOyAgICAgICAgICAgICAgICAgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgICAgICAgICAgZ290byBuYW5yZXN1bHQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgICAgIH0KKyAgICAgICAgLyogciA8IDAgKi8KKyAgICAgICAgZWxzZSBpZiAoX21wZF9jbXAoJnplcm8sIHJyKSA9PSAxKSB7CisgICAgICAgICAgICBfbXBkX3FhZGRfZXhhY3QocnIsIHJyLCAmYmIsICZ3b3JrY3R4LCAmd29ya2N0eC5zdGF0dXMpOworICAgICAgICAgICAgX21wZF9xYWRkX2V4YWN0KHFxLCBxcSwgJm1pbnVzX29uZSwgJndvcmtjdHgsICZ3b3JrY3R4LnN0YXR1cyk7CisgICAgICAgIH0KKyAgICAgICAgLyogMCA8PSByIDwgYiAqLworICAgICAgICBlbHNlIGlmIChfbXBkX2NtcChyciwgJmJiKSA9PSAtMSkgeworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgLyogciA+PSBiICovCisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgX21wZF9xc3ViX2V4YWN0KHJyLCByciwgJmJiLCAmd29ya2N0eCwgJndvcmtjdHguc3RhdHVzKTsKKyAgICAgICAgICAgIF9tcGRfcWFkZF9leGFjdChxcSwgcXEsICZvbmUsICZ3b3JrY3R4LCAmd29ya2N0eC5zdGF0dXMpOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHFxICE9IHEpIHsKKyAgICAgICAgaWYgKCFtcGRfcWNvcHkocSwgcXEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIGdvdG8gbmFucmVzdWx0OyAvKiBHQ09WX1VOTElLRUxZICovCisgICAgICAgIH0KKyAgICAgICAgbXBkX2RlbChxcSk7CisgICAgfQorICAgIGlmIChyciAhPSByKSB7CisgICAgICAgIGlmICghbXBkX3Fjb3B5KHIsIHJyLCBzdGF0dXMpKSB7CisgICAgICAgICAgICBnb3RvIG5hbnJlc3VsdDsgLyogR0NPVl9VTkxJS0VMWSAqLworICAgICAgICB9CisgICAgICAgIG1wZF9kZWwocnIpOworICAgIH0KKworICAgICpzdGF0dXMgfD0gKHdvcmtjdHguc3RhdHVzJk1QRF9FcnJvcnMpOworICAgIHJldHVybjsKKworCituYW5yZXN1bHQ6CisgICAgaWYgKHFxICYmIHFxICE9IHEpIG1wZF9kZWwocXEpOworICAgIGlmIChyciAmJiByciAhPSByKSBtcGRfZGVsKHJyKTsKKyAgICBtcGRfc2V0c3BlY2lhbChxLCBNUERfUE9TLCBNUERfTkFOKTsKKyAgICBtcGRfc2V0c3BlY2lhbChyLCBNUERfUE9TLCBNUERfTkFOKTsKK30KKworc3RhdGljIGlubGluZSBpbnQKK2ludnJvb3Rfc2NoZWR1bGVfcHJlYyhtcGRfc3NpemVfdCBrbGlzdFtNUERfTUFYX1BSRUNfTE9HMl0sCisgICAgICAgICAgICAgICAgICAgICAgbXBkX3NzaXplX3QgbWF4cHJlYywgbXBkX3NzaXplX3QgaW5pdHByZWMpCit7CisgICAgbXBkX3NzaXplX3QgazsKKyAgICBpbnQgaTsKKworICAgIGFzc2VydChtYXhwcmVjID49IDMgJiYgaW5pdHByZWMgPj0gMyk7CisgICAgaWYgKG1heHByZWMgPD0gaW5pdHByZWMpIHJldHVybiAtMTsKKworICAgIGkgPSAwOyBrID0gbWF4cHJlYzsKKyAgICBkbyB7CisgICAgICAgIGsgPSAoayszKSAvIDI7CisgICAgICAgIGtsaXN0W2krK10gPSBrOworICAgIH0gd2hpbGUgKGsgPiBpbml0cHJlYyk7CisKKyAgICByZXR1cm4gaS0xOworfQorCisvKgorICogSW5pdGlhbCBhcHByb3hpbWF0aW9uIGZvciB0aGUgaW52ZXJzZSBzcXVhcmUgcm9vdC4KKyAqCisgKiAgIElucHV0OgorICogICAgIHYgOj0gNyBvciA4IGRlY2ltYWwgZGlnaXRzIHdpdGggYW4gaW1wbGljaXQgZXhwb25lbnQgb2YgMTAqKi02LAorICogICAgICAgICAgcmVwcmVzZW50aW5nIGEgbnVtYmVyIDEgPD0geCA8IDEwMC4KKyAqCisgKiAgIE91dHB1dDoKKyAqICAgICBBbiBhcHByb3hpbWF0aW9uIHRvIDEvc3FydCh2KQorICovCitzdGF0aWMgaW5saW5lIHZvaWQKK19pbnZyb290X2luaXRfYXBwcm94KG1wZF90ICp6LCBtcGRfdWludF90IHYpCit7CisgICAgbXBkX3VpbnRfdCBsbyA9IDEwMDA7CisgICAgbXBkX3VpbnRfdCBoaSA9IDEwMDAwOworICAgIG1wZF91aW50X3QgYSwgc3E7CisKKyAgICBhc3NlcnQodiA+PSBsbypsbyAmJiB2IDwgKGhpKzEpKihoaSsxKSk7CisKKyAgICBmb3IoOzspIHsKKyAgICAgICAgYSA9IChsbyArIGhpKSAvIDI7CisgICAgICAgIHNxID0gYSAqIGE7CisgICAgICAgIGlmICh2ID49IHNxKSB7CisgICAgICAgICAgICBpZiAodiA8IHNxICsgMiphICsgMSkgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG8gPSBhICsgMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGhpID0gYSAtIDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBBdCB0aGlzIHBvaW50IGEvMTAwMCBpcyBhbiBhcHByb3hpbWF0aW9uIHRvIHNxcnQodikuICovCisgICAgbXBkX21pbmFsbG9jKHopOworICAgIG1wZF9jbGVhcl9mbGFncyh6KTsKKyAgICB6LT5kYXRhWzBdID0gMTAwMDAwMDAwMFVMIC8gYTsKKyAgICB6LT5sZW4gPSAxOworICAgIHotPmV4cCA9IC02OworICAgIG1wZF9zZXRkaWdpdHMoeik7Cit9CisKK3N0YXRpYyB2b2lkCitfbXBkX3FpbnZyb290KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgdWludDMyX3Qgd29ya3N0YXR1cyA9IDA7CisgICAgbXBkX2NvbnRleHRfdCB2YXJjb250ZXh0LCBtYXhjb250ZXh0OworICAgIG1wZF90ICp6ID0gcmVzdWx0OyAgICAgICAgIC8qIGN1cnJlbnQgYXBwcm94aW1hdGlvbiAqLworICAgIG1wZF90ICp2OyAgICAgICAgICAgICAgICAgIC8qIGEsIG5vcm1hbGl6ZWQgdG8gYSBudW1iZXIgYmV0d2VlbiAxIGFuZCAxMDAgKi8KKyAgICBNUERfTkVXX1NIQVJFRCh2dG1wLCBhKTsgICAvKiBieSBkZWZhdWx0IHYgd2lsbCBzaGFyZSBkYXRhIHdpdGggYSAqLworICAgIE1QRF9ORVdfU1RBVElDKHMsMCwwLDAsMCk7IC8qIHRlbXBvcmFyeSB2YXJpYWJsZSAqLworICAgIE1QRF9ORVdfU1RBVElDKHQsMCwwLDAsMCk7IC8qIHRlbXBvcmFyeSB2YXJpYWJsZSAqLworICAgIE1QRF9ORVdfQ09OU1Qob25lX2hhbGYsMCwtMSwxLDEsMSw1KTsKKyAgICBNUERfTkVXX0NPTlNUKHRocmVlLDAsMCwxLDEsMSwzKTsKKyAgICBtcGRfc3NpemVfdCBrbGlzdFtNUERfTUFYX1BSRUNfTE9HMl07CisgICAgbXBkX3NzaXplX3QgaWRlYWxfZXhwLCBzaGlmdDsKKyAgICBtcGRfc3NpemVfdCBhZGosIHR6OworICAgIG1wZF9zc2l6ZV90IG1heHByZWMsIGZyYWNkaWdpdHM7CisgICAgbXBkX3VpbnRfdCB4LCBkdW1teTsKKyAgICBpbnQgaSwgbjsKKworCisgICAgaWRlYWxfZXhwID0gLShhLT5leHAgLSAoYS0+ZXhwICYgMSkpIC8gMjsKKworICAgIHYgPSAmdnRtcDsKKyAgICBpZiAocmVzdWx0ID09IGEpIHsKKyAgICAgICAgaWYgKCh2ID0gbXBkX3FuY29weShhKSkgPT0gTlVMTCkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX01hbGxvY19lcnJvciwgc3RhdHVzKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIG5vcm1hbGl6ZSBhIHRvIDEgPD0gdiA8IDEwMCAqLworICAgIGlmICgodi0+ZGlnaXRzK3YtPmV4cCkgJiAxKSB7CisgICAgICAgIGZyYWNkaWdpdHMgPSB2LT5kaWdpdHMgLSAxOworICAgICAgICB2LT5leHAgPSAtZnJhY2RpZ2l0czsKKyAgICAgICAgbiA9ICh2LT5kaWdpdHMgPiA3KSA/IDcgOiAoaW50KXYtPmRpZ2l0czsKKyAgICAgICAgX21wZF9nZXRfbXNkaWdpdHMoJmR1bW15LCAmeCwgdiwgbik7CisgICAgICAgIGlmIChuIDwgNykgeworICAgICAgICAgICAgeCAqPSBtcGRfcG93MTBbNy1uXTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgZnJhY2RpZ2l0cyA9IHYtPmRpZ2l0cyAtIDI7CisgICAgICAgIHYtPmV4cCA9IC1mcmFjZGlnaXRzOworICAgICAgICBuID0gKHYtPmRpZ2l0cyA+IDgpID8gOCA6IChpbnQpdi0+ZGlnaXRzOworICAgICAgICBfbXBkX2dldF9tc2RpZ2l0cygmZHVtbXksICZ4LCB2LCBuKTsKKyAgICAgICAgaWYgKG4gPCA4KSB7CisgICAgICAgICAgICB4ICo9IG1wZF9wb3cxMFs4LW5dOworICAgICAgICB9CisgICAgfQorICAgIGFkaiA9IChhLT5leHAtdi0+ZXhwKSAvIDI7CisKKyAgICAvKiBpbml0aWFsIGFwcHJveGltYXRpb24gKi8KKyAgICBfaW52cm9vdF9pbml0X2FwcHJveCh6LCB4KTsKKworICAgIG1wZF9tYXhjb250ZXh0KCZtYXhjb250ZXh0KTsKKyAgICBtcGRfbWF4Y29udGV4dCgmdmFyY29udGV4dCk7CisgICAgdmFyY29udGV4dC5yb3VuZCA9IE1QRF9ST1VORF9UUlVOQzsKKyAgICBtYXhwcmVjID0gY3R4LT5wcmVjICsgMjsKKworICAgIGkgPSBpbnZyb290X3NjaGVkdWxlX3ByZWMoa2xpc3QsIG1heHByZWMsIDMpOworICAgIGZvciAoOyBpID49IDA7IGktLSkgeworICAgICAgICB2YXJjb250ZXh0LnByZWMgPSAyKmtsaXN0W2ldKzI7CisgICAgICAgIG1wZF9xbXVsKCZzLCB6LCB6LCAmbWF4Y29udGV4dCwgJndvcmtzdGF0dXMpOworICAgICAgICBpZiAodi0+ZGlnaXRzID4gdmFyY29udGV4dC5wcmVjKSB7CisgICAgICAgICAgICBzaGlmdCA9IHYtPmRpZ2l0cyAtIHZhcmNvbnRleHQucHJlYzsKKyAgICAgICAgICAgIG1wZF9xc2hpZnRyKCZ0LCB2LCBzaGlmdCwgJndvcmtzdGF0dXMpOworICAgICAgICAgICAgdC5leHAgKz0gc2hpZnQ7CisgICAgICAgICAgICBtcGRfcW11bCgmdCwgJnQsICZzLCAmdmFyY29udGV4dCwgJndvcmtzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbXBkX3FtdWwoJnQsIHYsICZzLCAmdmFyY29udGV4dCwgJndvcmtzdGF0dXMpOworICAgICAgICB9CisgICAgICAgIG1wZF9xc3ViKCZ0LCAmdGhyZWUsICZ0LCAmbWF4Y29udGV4dCwgJndvcmtzdGF0dXMpOworICAgICAgICBtcGRfcW11bCh6LCB6LCAmdCwgJnZhcmNvbnRleHQsICZ3b3Jrc3RhdHVzKTsKKyAgICAgICAgbXBkX3FtdWwoeiwgeiwgJm9uZV9oYWxmLCAmbWF4Y29udGV4dCwgJndvcmtzdGF0dXMpOworICAgIH0KKworICAgIHotPmV4cCAtPSBhZGo7CisKKyAgICB0eiA9IG1wZF90cmFpbF96ZXJvcyhyZXN1bHQpOworICAgIHNoaWZ0ID0gaWRlYWxfZXhwIC0gcmVzdWx0LT5leHA7CisgICAgc2hpZnQgPSAodHogPiBzaGlmdCkgPyBzaGlmdCA6IHR6OworICAgIGlmIChzaGlmdCA+IDApIHsKKyAgICAgICAgbXBkX3FzaGlmdHJfaW5wbGFjZShyZXN1bHQsIHNoaWZ0KTsKKyAgICAgICAgcmVzdWx0LT5leHAgKz0gc2hpZnQ7CisgICAgfQorCisKKyAgICBtcGRfZGVsKCZzKTsKKyAgICBtcGRfZGVsKCZ0KTsKKyAgICBpZiAodiAhPSAmdnRtcCkgbXBkX2RlbCh2KTsKKyAgICAqc3RhdHVzIHw9ICh3b3Jrc3RhdHVzJk1QRF9FcnJvcnMpOworICAgIHZhcmNvbnRleHQgPSAqY3R4OworICAgIHZhcmNvbnRleHQucm91bmQgPSBNUERfUk9VTkRfSEFMRl9FVkVOOworICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCAmdmFyY29udGV4dCwgc3RhdHVzKTsKK30KKwordm9pZAorbXBkX3FpbnZyb290KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsCisgICAgICAgICAgICAgdWludDMyX3QgKnN0YXR1cykKK3sKKworICAgIGlmIChtcGRfaXNzcGVjaWFsKGEpKSB7CisgICAgICAgIGlmIChtcGRfcWNoZWNrX25hbihyZXN1bHQsIGEsIGN0eCwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChtcGRfaXNuZWdhdGl2ZShhKSkgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIC8qIHBvc2l0aXZlIGluZmluaXR5ICovCisgICAgICAgIF9zZXR0cmlwbGUocmVzdWx0LCBNUERfUE9TLCAwLCBtcGRfZXRpbnkoY3R4KSk7CisgICAgICAgICpzdGF0dXMgfD0gTVBEX0NsYW1wZWQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1wZF9pc3plcm8oYSkpIHsKKyAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCBtcGRfc2lnbihhKSwgTVBEX0lORik7CisgICAgICAgICpzdGF0dXMgfD0gTVBEX0RpdmlzaW9uX2J5X3plcm87CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1wZF9pc25lZ2F0aXZlKGEpKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIF9tcGRfcWludnJvb3QocmVzdWx0LCBhLCBjdHgsIHN0YXR1cyk7Cit9CisKKy8qCisgKiBFbnN1cmUgY29ycmVjdCByb3VuZGluZy4gQWxnb3JpdGhtIGFmdGVyIEh1bGwgJiBBYnJoYW0sICJQcm9wZXJseSBSb3VuZGVkCisgKiBWYXJpYWJsZSBQcmVjaXNpb24gU3F1YXJlIFJvb3QiLCBBQ00gVHJhbnNhY3Rpb25zIG9uIE1hdGhlbWF0aWNhbCBTb2Z0d2FyZSwKKyAqIFZvbC4gMTEsIE5vLiAzLgorICovCitzdGF0aWMgdm9pZAorX21wZF9maXhfc3FydChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3QgKnRtcCwKKyAgICAgICAgICAgICAgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9jb250ZXh0X3QgbWF4Y3R4OworICAgIE1QRF9ORVdfQ09OU1QodSwwLDAsMSwxLDEsNSk7CisKKyAgICBtcGRfbWF4Y29udGV4dCgmbWF4Y3R4KTsKKyAgICB1LmV4cCA9IHUuZGlnaXRzIC0gY3R4LT5wcmVjICsgcmVzdWx0LT5leHAgLSAxOworCisgICAgX21wZF9xc3ViKHRtcCwgcmVzdWx0LCAmdSwgJm1heGN0eCwgc3RhdHVzKTsKKyAgICBpZiAoKnN0YXR1cyZNUERfRXJyb3JzKSBnb3RvIG5hbnJlc3VsdDsKKworICAgIF9tcGRfcW11bCh0bXAsIHRtcCwgdG1wLCAmbWF4Y3R4LCBzdGF0dXMpOworICAgIGlmICgqc3RhdHVzJk1QRF9FcnJvcnMpIGdvdG8gbmFucmVzdWx0OworCisgICAgaWYgKF9tcGRfY21wKHRtcCwgYSkgPT0gMSkgeworICAgICAgICB1LmV4cCArPSAxOworICAgICAgICB1LmRhdGFbMF0gPSAxOworICAgICAgICBfbXBkX3FzdWIocmVzdWx0LCByZXN1bHQsICZ1LCAmbWF4Y3R4LCBzdGF0dXMpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgX21wZF9xYWRkKHRtcCwgcmVzdWx0LCAmdSwgJm1heGN0eCwgc3RhdHVzKTsKKyAgICAgICAgaWYgKCpzdGF0dXMmTVBEX0Vycm9ycykgZ290byBuYW5yZXN1bHQ7CisKKyAgICAgICAgX21wZF9xbXVsKHRtcCwgdG1wLCB0bXAsICZtYXhjdHgsIHN0YXR1cyk7CisgICAgICAgIGlmICgqc3RhdHVzJk1QRF9FcnJvcnMpIGdvdG8gbmFucmVzdWx0OworCisgICAgICAgIGlmIChfbXBkX2NtcCh0bXAsIGEpID09IC0xKSB7CisgICAgICAgICAgICB1LmV4cCArPSAxOworICAgICAgICAgICAgdS5kYXRhWzBdID0gMTsKKyAgICAgICAgICAgIF9tcGRfcWFkZChyZXN1bHQsIHJlc3VsdCwgJnUsICZtYXhjdHgsIHN0YXR1cyk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm47CisKK25hbnJlc3VsdDoKKyAgICBtcGRfc2V0c3BlY2lhbChyZXN1bHQsIE1QRF9QT1MsIE1QRF9OQU4pOworfQorCit2b2lkCittcGRfcXNxcnQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwKKyAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIHVpbnQzMl90IHdvcmtzdGF0dXMgPSAwOworICAgIG1wZF9jb250ZXh0X3QgdmFyY29udGV4dDsKKyAgICBtcGRfdCAqeiA9IHJlc3VsdDsgICAgICAgICAvKiBjdXJyZW50IGFwcHJveGltYXRpb24gKi8KKyAgICBNUERfTkVXX1NUQVRJQyh2LDAsMCwwLDApOyAvKiBhLCBub3JtYWxpemVkIHRvIGEgbnVtYmVyIGJldHdlZW4gMSBhbmQgMTAgKi8KKyAgICBNUERfTkVXX1NUQVRJQyh2dG1wLDAsMCwwLDApOworICAgIE1QRF9ORVdfU1RBVElDKHRtcCwwLDAsMCwwKTsKKyAgICBtcGRfc3NpemVfdCBpZGVhbF9leHAsIHNoaWZ0OworICAgIG1wZF9zc2l6ZV90IHRhcmdldF9wcmVjLCBmcmFjZGlnaXRzOworICAgIG1wZF9zc2l6ZV90IGFfZXhwLCBhX2RpZ2l0czsKKyAgICBtcGRfc3NpemVfdCBhZGosIHR6OworICAgIG1wZF91aW50X3QgZHVtbXksIHQ7CisgICAgaW50IGV4YWN0ID0gMDsKKworCisgICAgdmFyY29udGV4dCA9ICpjdHg7CisgICAgdmFyY29udGV4dC5yb3VuZCA9IE1QRF9ST1VORF9IQUxGX0VWRU47CisgICAgaWRlYWxfZXhwID0gKGEtPmV4cCAtIChhLT5leHAgJiAxKSkgLyAyOworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoYSkpIHsKKyAgICAgICAgaWYgKG1wZF9xY2hlY2tfbmFuKHJlc3VsdCwgYSwgY3R4LCBzdGF0dXMpKSB7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1wZF9pc25lZ2F0aXZlKGEpKSB7CisgICAgICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbXBkX3NldHNwZWNpYWwocmVzdWx0LCBNUERfUE9TLCBNUERfSU5GKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAobXBkX2lzemVybyhhKSkgeworICAgICAgICBfc2V0dHJpcGxlKHJlc3VsdCwgbXBkX3NpZ24oYSksIDAsIGlkZWFsX2V4cCk7CisgICAgICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCBjdHgsIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKG1wZF9pc25lZ2F0aXZlKGEpKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9JbnZhbGlkX29wZXJhdGlvbiwgc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbXBkX3Fjb3B5KCZ2LCBhLCBzdGF0dXMpKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgIGdvdG8gZmluaXNoOworICAgIH0KKworICAgIGFfZXhwID0gYS0+ZXhwOworICAgIGFfZGlnaXRzID0gYS0+ZGlnaXRzOworCisgICAgLyogbm9ybWFsaXplIGEgdG8gMSA8PSB2IDwgMTAwICovCisgICAgaWYgKCh2LmRpZ2l0cyt2LmV4cCkgJiAxKSB7CisgICAgICAgIGZyYWNkaWdpdHMgPSB2LmRpZ2l0cyAtIDE7CisgICAgICAgIHYuZXhwID0gLWZyYWNkaWdpdHM7CisgICAgICAgIF9tcGRfZ2V0X21zZGlnaXRzKCZkdW1teSwgJnQsICZ2LCAzKTsKKyAgICAgICAgdCA9IHQgPCAxMDAgPyB0KjEwIDogdDsKKyAgICAgICAgdCA9IHQgPCAxMDAgPyB0KjEwIDogdDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGZyYWNkaWdpdHMgPSB2LmRpZ2l0cyAtIDI7CisgICAgICAgIHYuZXhwID0gLWZyYWNkaWdpdHM7CisgICAgICAgIF9tcGRfZ2V0X21zZGlnaXRzKCZkdW1teSwgJnQsICZ2LCA0KTsKKyAgICAgICAgdCA9IHQgPCAxMDAwID8gdCoxMCA6IHQ7CisgICAgICAgIHQgPSB0IDwgMTAwMCA/IHQqMTAgOiB0OworICAgICAgICB0ID0gdCA8IDEwMDAgPyB0KjEwIDogdDsKKyAgICB9CisgICAgYWRqID0gKGFfZXhwLXYuZXhwKSAvIDI7CisKKworICAgIC8qIHVzZSBleGNlc3MgZGlnaXRzICovCisgICAgdGFyZ2V0X3ByZWMgPSAoYV9kaWdpdHMgPiBjdHgtPnByZWMpID8gYV9kaWdpdHMgOiBjdHgtPnByZWM7CisgICAgdGFyZ2V0X3ByZWMgKz0gMjsKKyAgICB2YXJjb250ZXh0LnByZWMgPSB0YXJnZXRfcHJlYyArIDM7CisKKyAgICAvKiBpbnZyb290IGlzIG11Y2ggZmFzdGVyIGZvciBsYXJnZSBudW1iZXJzICovCisgICAgX21wZF9xaW52cm9vdCgmdG1wLCAmdiwgJnZhcmNvbnRleHQsICZ3b3Jrc3RhdHVzKTsKKworICAgIHZhcmNvbnRleHQucHJlYyA9IHRhcmdldF9wcmVjOworICAgIF9tcGRfcWRpdihOT19JREVBTF9FWFAsIHosICZvbmUsICZ0bXAsICZ2YXJjb250ZXh0LCAmd29ya3N0YXR1cyk7CisKKworICAgIHR6ID0gbXBkX3RyYWlsX3plcm9zKHJlc3VsdCk7CisgICAgaWYgKChyZXN1bHQtPmRpZ2l0cy10eikqMi0xIDw9IHYuZGlnaXRzKSB7CisgICAgICAgIF9tcGRfcW11bCgmdG1wLCByZXN1bHQsIHJlc3VsdCwgJnZhcmNvbnRleHQsICZ3b3Jrc3RhdHVzKTsKKyAgICAgICAgaWYgKHdvcmtzdGF0dXMmTVBEX0Vycm9ycykgeworICAgICAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgd29ya3N0YXR1cyZNUERfRXJyb3JzLCBzdGF0dXMpOworICAgICAgICAgICAgZ290byBmaW5pc2g7CisgICAgICAgIH0KKyAgICAgICAgZXhhY3QgPSAoX21wZF9jbXAoJnRtcCwgJnYpID09IDApOworICAgIH0KKyAgICAqc3RhdHVzIHw9ICh3b3Jrc3RhdHVzJk1QRF9FcnJvcnMpOworCisgICAgaWYgKCFleGFjdCAmJiAhbXBkX2lzc3BlY2lhbChyZXN1bHQpICYmICFtcGRfaXN6ZXJvKHJlc3VsdCkpIHsKKyAgICAgICAgX21wZF9maXhfc3FydChyZXN1bHQsICZ2LCAmdG1wLCAmdmFyY29udGV4dCwgc3RhdHVzKTsKKyAgICAgICAgaWYgKG1wZF9pc3NwZWNpYWwocmVzdWx0KSkgZ290byBmaW5pc2g7CisgICAgICAgICpzdGF0dXMgfD0gKE1QRF9Sb3VuZGVkfE1QRF9JbmV4YWN0KTsKKyAgICB9CisKKyAgICByZXN1bHQtPmV4cCArPSBhZGo7CisgICAgaWYgKGV4YWN0KSB7CisgICAgICAgIHNoaWZ0ID0gaWRlYWxfZXhwIC0gcmVzdWx0LT5leHA7CisgICAgICAgIHNoaWZ0ID0gKHR6ID4gc2hpZnQpID8gc2hpZnQgOiB0ejsKKyAgICAgICAgaWYgKHNoaWZ0ID4gMCkgeworICAgICAgICAgICAgbXBkX3FzaGlmdHJfaW5wbGFjZShyZXN1bHQsIHNoaWZ0KTsKKyAgICAgICAgICAgIHJlc3VsdC0+ZXhwICs9IHNoaWZ0OworICAgICAgICB9CisgICAgfQorCisKK2ZpbmlzaDoKKyAgICBtcGRfZGVsKCZ2KTsKKyAgICBtcGRfZGVsKCZ2dG1wKTsKKyAgICBtcGRfZGVsKCZ0bXApOworICAgIHZhcmNvbnRleHQucHJlYyA9IGN0eC0+cHJlYzsKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgJnZhcmNvbnRleHQsIHN0YXR1cyk7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQmFzZSBjb252ZXJzaW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBTcGFjZSBuZWVkZWQgdG8gcmVwcmVzZW50IGFuIGludGVnZXIgbXBkX3QgaW4gYmFzZSAnYmFzZScuICovCitzaXplX3QKK21wZF9zaXplaW5iYXNlKGNvbnN0IG1wZF90ICphLCB1aW50MzJfdCBiYXNlKQoreworICAgIGRvdWJsZSB4OworICAgIHNpemVfdCBkaWdpdHM7CisKKyAgICBhc3NlcnQobXBkX2lzaW50ZWdlcihhKSk7CisgICAgYXNzZXJ0KGJhc2UgPj0gMik7CisKKyAgICBpZiAobXBkX2lzemVybyhhKSkgeworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBkaWdpdHMgPSBhLT5kaWdpdHMrYS0+ZXhwOworICAgIGFzc2VydChkaWdpdHMgPiAwKTsKKworI2lmZGVmIENPTkZJR182NAorICAgIC8qIGNlaWwoMjcxMTQzNzE1MjU5OTI5NCAvIGxvZzEwKDIpKSArIDQgPT0gMioqNTMgKi8KKyAgICBpZiAoZGlnaXRzID4gMjcxMTQzNzE1MjU5OTI5NFVMTCkgeworICAgICAgICByZXR1cm4gU0laRV9NQVg7CisgICAgfQorI2VuZGlmCisKKyAgICB4ID0gKGRvdWJsZSlkaWdpdHMgLyBsb2cxMChiYXNlKTsKKyAgICByZXR1cm4gKHggPiBTSVpFX01BWC0xKSA/IFNJWkVfTUFYIDogKHNpemVfdCl4ICsgMTsKK30KKworLyogU3BhY2UgbmVlZGVkIHRvIGltcG9ydCBhIGJhc2UgJ2Jhc2UnIGludGVnZXIgb2YgbGVuZ3RoICdzcmNsZW4nLiAqLworc3RhdGljIG1wZF9zc2l6ZV90CitfbXBkX2ltcG9ydHNpemUoc2l6ZV90IHNyY2xlbiwgdWludDMyX3QgYmFzZSkKK3sKKyAgICBkb3VibGUgeDsKKworICAgIGFzc2VydChzcmNsZW4gPiAwKTsKKyAgICBhc3NlcnQoYmFzZSA+PSAyKTsKKworI2lmIFNJWkVfTUFYID09IFVJTlQ2NF9NQVgKKyAgICBpZiAoc3JjbGVuID4gKDFVTEw8PDUzKSkgeworICAgICAgICByZXR1cm4gTVBEX1NTSVpFX01BWDsKKyAgICB9CisjZW5kaWYKKworICAgIHggPSAoZG91YmxlKXNyY2xlbiAqIChsb2cxMChiYXNlKS9NUERfUkRJR0lUUyk7CisgICAgcmV0dXJuICh4ID49IE1QRF9NQVhJTVBPUlQpID8gTVBEX1NTSVpFX01BWCA6IChtcGRfc3NpemVfdCl4ICsgMTsKK30KKworc3RhdGljIHVpbnQ4X3QKK21wZF9yZXNpemVfdTE2KHVpbnQxNl90ICoqdywgc2l6ZV90IG5tZW1iKQoreworICAgIHVpbnQ4X3QgZXJyID0gMDsKKyAgICAqdyA9IG1wZF9yZWFsbG9jKCp3LCBubWVtYiwgc2l6ZW9mICoqdywgJmVycik7CisgICAgcmV0dXJuICFlcnI7Cit9CisKK3N0YXRpYyB1aW50OF90CittcGRfcmVzaXplX3UzMih1aW50MzJfdCAqKncsIHNpemVfdCBubWVtYikKK3sKKyAgICB1aW50OF90IGVyciA9IDA7CisgICAgKncgPSBtcGRfcmVhbGxvYygqdywgbm1lbWIsIHNpemVvZiAqKncsICZlcnIpOworICAgIHJldHVybiAhZXJyOworfQorCitzdGF0aWMgc2l6ZV90CitfYmFzZWNvbnZfdG9fdTE2KHVpbnQxNl90ICoqdywgc2l6ZV90IHdsZW4sIG1wZF91aW50X3Qgd2Jhc2UsCisgICAgICAgICAgICAgICAgIG1wZF91aW50X3QgKnUsIG1wZF9zc2l6ZV90IHVsZW4pCit7CisgICAgc2l6ZV90IG4gPSAwOworCisgICAgYXNzZXJ0KHdsZW4gPiAwICYmIHVsZW4gPiAwKTsKKyAgICBhc3NlcnQod2Jhc2UgPD0gKDFVPDwxNikpOworCisgICAgZG8geworICAgICAgICBpZiAobiA+PSB3bGVuKSB7CisgICAgICAgICAgICBpZiAoIW1wZF9yZXNpemVfdTE2KHcsIG4rMSkpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gU0laRV9NQVg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3bGVuID0gbisxOworICAgICAgICB9CisgICAgICAgICgqdylbbisrXSA9ICh1aW50MTZfdClfbXBkX3Nob3J0ZGl2KHUsIHUsIHVsZW4sIHdiYXNlKTsKKyAgICAgICAgLyogdWxlbiBpcyBhdCBsZWFzdCAxLiB1W3VsZW4tMV0gY2FuIG9ubHkgYmUgemVybyBpZiB1bGVuID09IDEuICovCisgICAgICAgIHVsZW4gPSBfbXBkX3JlYWxfc2l6ZSh1LCB1bGVuKTsKKworICAgIH0gd2hpbGUgKHVbdWxlbi0xXSAhPSAwKTsKKworICAgIHJldHVybiBuOworfQorCitzdGF0aWMgc2l6ZV90CitfY29lZmZfZnJvbV91MTYobXBkX3QgKncsIG1wZF9zc2l6ZV90IHdsZW4sCisgICAgICAgICAgICAgICAgY29uc3QgbXBkX3VpbnRfdCAqdSwgc2l6ZV90IHVsZW4sIHVpbnQzMl90IHViYXNlLAorICAgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3NzaXplX3QgbiA9IDA7CisgICAgbXBkX3VpbnRfdCBjYXJyeTsKKworICAgIGFzc2VydCh3bGVuID4gMCAmJiB1bGVuID4gMCk7CisgICAgYXNzZXJ0KHViYXNlIDw9ICgxVTw8MTYpKTsKKworICAgIHctPmRhdGFbbisrXSA9IHVbLS11bGVuXTsKKyAgICB3aGlsZSAoLS11bGVuICE9IFNJWkVfTUFYKSB7CisgICAgICAgIGNhcnJ5ID0gX21wZF9zaG9ydG11bF9jKHctPmRhdGEsIHctPmRhdGEsIG4sIHViYXNlKTsKKyAgICAgICAgaWYgKGNhcnJ5KSB7CisgICAgICAgICAgICBpZiAobiA+PSB3bGVuKSB7CisgICAgICAgICAgICAgICAgaWYgKCFtcGRfcXJlc2l6ZSh3LCBuKzEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNJWkVfTUFYOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3bGVuID0gbisxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdy0+ZGF0YVtuKytdID0gY2Fycnk7CisgICAgICAgIH0KKyAgICAgICAgY2FycnkgPSBfbXBkX3Nob3J0YWRkKHctPmRhdGEsIG4sIHVbdWxlbl0pOworICAgICAgICBpZiAoY2FycnkpIHsKKyAgICAgICAgICAgIGlmIChuID49IHdsZW4pIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1wZF9xcmVzaXplKHcsIG4rMSwgc3RhdHVzKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gU0laRV9NQVg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdsZW4gPSBuKzE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3LT5kYXRhW24rK10gPSBjYXJyeTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBuOworfQorCisvKiB0YXJnZXQgYmFzZSB3YmFzZSA8IHNvdXJjZSBiYXNlIHViYXNlICovCitzdGF0aWMgc2l6ZV90CitfYmFzZWNvbnZfdG9fc21hbGxlcih1aW50MzJfdCAqKncsIHNpemVfdCB3bGVuLCB1aW50MzJfdCB3YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgIG1wZF91aW50X3QgKnUsIG1wZF9zc2l6ZV90IHVsZW4sIG1wZF91aW50X3QgdWJhc2UpCit7CisgICAgc2l6ZV90IG4gPSAwOworCisgICAgYXNzZXJ0KHdsZW4gPiAwICYmIHVsZW4gPiAwKTsKKyAgICBhc3NlcnQod2Jhc2UgPCB1YmFzZSk7CisKKyAgICBkbyB7CisgICAgICAgIGlmIChuID49IHdsZW4pIHsKKyAgICAgICAgICAgIGlmICghbXBkX3Jlc2l6ZV91MzIodywgbisxKSkgeworICAgICAgICAgICAgICAgIHJldHVybiBTSVpFX01BWDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHdsZW4gPSBuKzE7CisgICAgICAgIH0KKyAgICAgICAgKCp3KVtuKytdID0gKHVpbnQzMl90KV9tcGRfc2hvcnRkaXZfYih1LCB1LCB1bGVuLCB3YmFzZSwgdWJhc2UpOworICAgICAgICAvKiB1bGVuIGlzIGF0IGxlYXN0IDEuIHVbdWxlbi0xXSBjYW4gb25seSBiZSB6ZXJvIGlmIHVsZW4gPT0gMS4gKi8KKyAgICAgICAgdWxlbiA9IF9tcGRfcmVhbF9zaXplKHUsIHVsZW4pOworCisgICAgfSB3aGlsZSAodVt1bGVuLTFdICE9IDApOworCisgICAgcmV0dXJuIG47Cit9CisKKyNpZmRlZiBDT05GSUdfMzIKKy8qIHRhcmdldCBiYXNlICd3YmFzZScgPT0gc291cmNlIGJhc2UgJ3ViYXNlJyAqLworc3RhdGljIHNpemVfdAorX2NvcHlfZXF1YWxfYmFzZSh1aW50MzJfdCAqKncsIHNpemVfdCB3bGVuLAorICAgICAgICAgICAgICAgICBjb25zdCB1aW50MzJfdCAqdSwgc2l6ZV90IHVsZW4pCit7CisgICAgaWYgKHdsZW4gPCB1bGVuKSB7CisgICAgICAgIGlmICghbXBkX3Jlc2l6ZV91MzIodywgdWxlbikpIHsKKyAgICAgICAgICAgIHJldHVybiBTSVpFX01BWDsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1lbWNweSgqdywgdSwgdWxlbiAqIChzaXplb2YgKip3KSk7CisgICAgcmV0dXJuIHVsZW47Cit9CisKKy8qIHRhcmdldCBiYXNlICd3YmFzZScgPiBzb3VyY2UgYmFzZSAndWJhc2UnICovCitzdGF0aWMgc2l6ZV90CitfYmFzZWNvbnZfdG9fbGFyZ2VyKHVpbnQzMl90ICoqdywgc2l6ZV90IHdsZW4sIG1wZF91aW50X3Qgd2Jhc2UsCisgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1wZF91aW50X3QgKnUsIHNpemVfdCB1bGVuLCBtcGRfdWludF90IHViYXNlKQoreworICAgIHNpemVfdCBuID0gMDsKKyAgICBtcGRfdWludF90IGNhcnJ5OworCisgICAgYXNzZXJ0KHdsZW4gPiAwICYmIHVsZW4gPiAwKTsKKyAgICBhc3NlcnQodWJhc2UgPCB3YmFzZSk7CisKKyAgICAoKncpW24rK10gPSB1Wy0tdWxlbl07CisgICAgd2hpbGUgKC0tdWxlbiAhPSBTSVpFX01BWCkgeworICAgICAgICBjYXJyeSA9IF9tcGRfc2hvcnRtdWxfYigqdywgKncsIG4sIHViYXNlLCB3YmFzZSk7CisgICAgICAgIGlmIChjYXJyeSkgeworICAgICAgICAgICAgaWYgKG4gPj0gd2xlbikgeworICAgICAgICAgICAgICAgIGlmICghbXBkX3Jlc2l6ZV91MzIodywgbisxKSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gU0laRV9NQVg7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHdsZW4gPSBuKzE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAoKncpW24rK10gPSBjYXJyeTsKKyAgICAgICAgfQorICAgICAgICBjYXJyeSA9IF9tcGRfc2hvcnRhZGRfYigqdywgbiwgdVt1bGVuXSwgd2Jhc2UpOworICAgICAgICBpZiAoY2FycnkpIHsKKyAgICAgICAgICAgIGlmIChuID49IHdsZW4pIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1wZF9yZXNpemVfdTMyKHcsIG4rMSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNJWkVfTUFYOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3bGVuID0gbisxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgKCp3KVtuKytdID0gY2Fycnk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbjsKK30KKworLyogdGFyZ2V0IGJhc2Ugd2Jhc2UgPCBzb3VyY2UgYmFzZSB1YmFzZSAqLworc3RhdGljIHNpemVfdAorX2NvZWZmX2Zyb21fbGFyZ2VyX2Jhc2UobXBkX3QgKncsIHNpemVfdCB3bGVuLCBtcGRfdWludF90IHdiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgbXBkX3VpbnRfdCAqdSwgbXBkX3NzaXplX3QgdWxlbiwgbXBkX3VpbnRfdCB1YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgc2l6ZV90IG4gPSAwOworCisgICAgYXNzZXJ0KHdsZW4gPiAwICYmIHVsZW4gPiAwKTsKKyAgICBhc3NlcnQod2Jhc2UgPCB1YmFzZSk7CisKKyAgICBkbyB7CisgICAgICAgIGlmIChuID49IHdsZW4pIHsKKyAgICAgICAgICAgIGlmICghbXBkX3FyZXNpemUodywgbisxLCBzdGF0dXMpKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIFNJWkVfTUFYOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2xlbiA9IG4rMTsKKyAgICAgICAgfQorICAgICAgICB3LT5kYXRhW24rK10gPSAodWludDMyX3QpX21wZF9zaG9ydGRpdl9iKHUsIHUsIHVsZW4sIHdiYXNlLCB1YmFzZSk7CisgICAgICAgIC8qIHVsZW4gaXMgYXQgbGVhc3QgMS4gdVt1bGVuLTFdIGNhbiBvbmx5IGJlIHplcm8gaWYgdWxlbiA9PSAxLiAqLworICAgICAgICB1bGVuID0gX21wZF9yZWFsX3NpemUodSwgdWxlbik7CisKKyAgICB9IHdoaWxlICh1W3VsZW4tMV0gIT0gMCk7CisKKyAgICByZXR1cm4gbjsKK30KKyNlbmRpZgorCisvKiB0YXJnZXQgYmFzZSAnd2Jhc2UnID4gc291cmNlIGJhc2UgJ3ViYXNlJyAqLworc3RhdGljIHNpemVfdAorX2NvZWZmX2Zyb21fc21hbGxlcl9iYXNlKG1wZF90ICp3LCBtcGRfc3NpemVfdCB3bGVuLCBtcGRfdWludF90IHdiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICp1LCBzaXplX3QgdWxlbiwgbXBkX3VpbnRfdCB1YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqc3RhdHVzKQoreworICAgIG1wZF9zc2l6ZV90IG4gPSAwOworICAgIG1wZF91aW50X3QgY2Fycnk7CisKKyAgICBhc3NlcnQod2xlbiA+IDAgJiYgdWxlbiA+IDApOworICAgIGFzc2VydCh3YmFzZSA+IHViYXNlKTsKKworICAgIHctPmRhdGFbbisrXSA9IHVbLS11bGVuXTsKKyAgICB3aGlsZSAoLS11bGVuICE9IFNJWkVfTUFYKSB7CisgICAgICAgIGNhcnJ5ID0gX21wZF9zaG9ydG11bF9iKHctPmRhdGEsIHctPmRhdGEsIG4sIHViYXNlLCB3YmFzZSk7CisgICAgICAgIGlmIChjYXJyeSkgeworICAgICAgICAgICAgaWYgKG4gPj0gd2xlbikgeworICAgICAgICAgICAgICAgIGlmICghbXBkX3FyZXNpemUodywgbisxLCBzdGF0dXMpKSB7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBTSVpFX01BWDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgd2xlbiA9IG4rMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHctPmRhdGFbbisrXSA9IGNhcnJ5OworICAgICAgICB9CisgICAgICAgIGNhcnJ5ID0gX21wZF9zaG9ydGFkZF9iKHctPmRhdGEsIG4sIHVbdWxlbl0sIHdiYXNlKTsKKyAgICAgICAgaWYgKGNhcnJ5KSB7CisgICAgICAgICAgICBpZiAobiA+PSB3bGVuKSB7CisgICAgICAgICAgICAgICAgaWYgKCFtcGRfcXJlc2l6ZSh3LCBuKzEsIHN0YXR1cykpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFNJWkVfTUFYOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB3bGVuID0gbisxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdy0+ZGF0YVtuKytdID0gY2Fycnk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbjsKK30KKworLyoKKyAqIENvbnZlcnQgYW4gaW50ZWdlciBtcGRfdCB0byBhIG11bHRpcHJlY2lzaW9uIGludGVnZXIgd2l0aCBiYXNlIDw9IDIqKjE2LgorICogVGhlIGxlYXN0IHNpZ25pZmljYW50IHdvcmQgb2YgdGhlIHJlc3VsdCBpcyAoKnJkYXRhKVswXS4KKyAqCisgKiBJZiByZGF0YSBpcyBOVUxMLCBzcGFjZSBpcyBhbGxvY2F0ZWQgYnkgdGhlIGZ1bmN0aW9uIGFuZCBybGVuIGlzIGlycmVsZXZhbnQuCisgKiBJbiBjYXNlIG9mIGFuIGVycm9yIGFueSBhbGxvY2F0ZWQgc3RvcmFnZSBpcyBmcmVlZCBhbmQgcmRhdGEgaXMgc2V0IGJhY2sgdG8KKyAqIE5VTEwuCisgKgorICogSWYgcmRhdGEgaXMgbm9uLU5VTEwsIGl0IE1VU1QgYmUgYWxsb2NhdGVkIGJ5IG9uZSBvZiBsaWJtcGRlYydzIGFsbG9jYXRpb24KKyAqIGZ1bmN0aW9ucyBhbmQgcmxlbiBNVVNUIGJlIGNvcnJlY3QuIElmIG5lY2Vzc2FyeSwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVzaXplCisgKiByZGF0YS4gSW4gY2FzZSBvZiBhbiBlcnJvciB0aGUgY2FsbGVyIG11c3QgZnJlZSByZGF0YS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IEluIGNhc2Ugb2Ygc3VjY2VzcywgdGhlIGV4YWN0IGxlbmd0aCBvZiByZGF0YSwgU0laRV9NQVgKKyAqIG90aGVyd2lzZS4KKyAqLworc2l6ZV90CittcGRfcWV4cG9ydF91MTYodWludDE2X3QgKipyZGF0YSwgc2l6ZV90IHJsZW4sIHVpbnQzMl90IHJiYXNlLAorICAgICAgICAgICAgICAgIGNvbnN0IG1wZF90ICpzcmMsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgTVBEX05FV19TVEFUSUModHNyYywwLDAsMCwwKTsKKyAgICBpbnQgYWxsb2MgPSAwOyAvKiByZGF0YSA9PSBOVUxMICovCisgICAgc2l6ZV90IG47CisKKyAgICBhc3NlcnQocmJhc2UgPD0gKDFVPDwxNikpOworCisgICAgaWYgKG1wZF9pc3NwZWNpYWwoc3JjKSB8fCAhX21wZF9pc2ludChzcmMpKSB7CisgICAgICAgICpzdGF0dXMgfD0gTVBEX0ludmFsaWRfb3BlcmF0aW9uOworICAgICAgICByZXR1cm4gU0laRV9NQVg7CisgICAgfQorCisgICAgaWYgKCpyZGF0YSA9PSBOVUxMKSB7CisgICAgICAgIHJsZW4gPSBtcGRfc2l6ZWluYmFzZShzcmMsIHJiYXNlKTsKKyAgICAgICAgaWYgKHJsZW4gPT0gU0laRV9NQVgpIHsKKyAgICAgICAgICAgICpzdGF0dXMgfD0gTVBEX0ludmFsaWRfb3BlcmF0aW9uOworICAgICAgICAgICAgcmV0dXJuIFNJWkVfTUFYOworICAgICAgICB9CisgICAgICAgICpyZGF0YSA9IG1wZF9hbGxvYyhybGVuLCBzaXplb2YgKipyZGF0YSk7CisgICAgICAgIGlmICgqcmRhdGEgPT0gTlVMTCkgeworICAgICAgICAgICAgZ290byBtYWxsb2NfZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgYWxsb2MgPSAxOworICAgIH0KKworICAgIGlmIChtcGRfaXN6ZXJvKHNyYykpIHsKKyAgICAgICAgKipyZGF0YSA9IDA7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmIChzcmMtPmV4cCA+PSAwKSB7CisgICAgICAgIGlmICghbXBkX3FzaGlmdGwoJnRzcmMsIHNyYywgc3JjLT5leHAsIHN0YXR1cykpIHsKKyAgICAgICAgICAgIGdvdG8gbWFsbG9jX2Vycm9yOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBpZiAobXBkX3FzaGlmdHIoJnRzcmMsIHNyYywgLXNyYy0+ZXhwLCBzdGF0dXMpID09IE1QRF9VSU5UX01BWCkgeworICAgICAgICAgICAgZ290byBtYWxsb2NfZXJyb3I7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBuID0gX2Jhc2Vjb252X3RvX3UxNihyZGF0YSwgcmxlbiwgcmJhc2UsIHRzcmMuZGF0YSwgdHNyYy5sZW4pOworICAgIGlmIChuID09IFNJWkVfTUFYKSB7CisgICAgICAgIGdvdG8gbWFsbG9jX2Vycm9yOworICAgIH0KKworCitvdXQ6CisgICAgbXBkX2RlbCgmdHNyYyk7CisgICAgcmV0dXJuIG47CisKK21hbGxvY19lcnJvcjoKKyAgICBpZiAoYWxsb2MpIHsKKyAgICAgICAgbXBkX2ZyZWUoKnJkYXRhKTsKKyAgICAgICAgKnJkYXRhID0gTlVMTDsKKyAgICB9CisgICAgbiA9IFNJWkVfTUFYOworICAgICpzdGF0dXMgfD0gTVBEX01hbGxvY19lcnJvcjsKKyAgICBnb3RvIG91dDsKK30KKworLyoKKyAqIENvbnZlcnQgYW4gaW50ZWdlciBtcGRfdCB0byBhIG11bHRpcHJlY2lzaW9uIGludGVnZXIgd2l0aCBiYXNlPD1VSU5UMzJfTUFYLgorICogVGhlIGxlYXN0IHNpZ25pZmljYW50IHdvcmQgb2YgdGhlIHJlc3VsdCBpcyAoKnJkYXRhKVswXS4KKyAqCisgKiBJZiByZGF0YSBpcyBOVUxMLCBzcGFjZSBpcyBhbGxvY2F0ZWQgYnkgdGhlIGZ1bmN0aW9uIGFuZCBybGVuIGlzIGlycmVsZXZhbnQuCisgKiBJbiBjYXNlIG9mIGFuIGVycm9yIGFueSBhbGxvY2F0ZWQgc3RvcmFnZSBpcyBmcmVlZCBhbmQgcmRhdGEgaXMgc2V0IGJhY2sgdG8KKyAqIE5VTEwuCisgKgorICogSWYgcmRhdGEgaXMgbm9uLU5VTEwsIGl0IE1VU1QgYmUgYWxsb2NhdGVkIGJ5IG9uZSBvZiBsaWJtcGRlYydzIGFsbG9jYXRpb24KKyAqIGZ1bmN0aW9ucyBhbmQgcmxlbiBNVVNUIGJlIGNvcnJlY3QuIElmIG5lY2Vzc2FyeSwgdGhlIGZ1bmN0aW9uIHdpbGwgcmVzaXplCisgKiByZGF0YS4gSW4gY2FzZSBvZiBhbiBlcnJvciB0aGUgY2FsbGVyIG11c3QgZnJlZSByZGF0YS4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IEluIGNhc2Ugb2Ygc3VjY2VzcywgdGhlIGV4YWN0IGxlbmd0aCBvZiByZGF0YSwgU0laRV9NQVgKKyAqIG90aGVyd2lzZS4KKyAqLworc2l6ZV90CittcGRfcWV4cG9ydF91MzIodWludDMyX3QgKipyZGF0YSwgc2l6ZV90IHJsZW4sIHVpbnQzMl90IHJiYXNlLAorICAgICAgICAgICAgICAgIGNvbnN0IG1wZF90ICpzcmMsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgTVBEX05FV19TVEFUSUModHNyYywwLDAsMCwwKTsKKyAgICBpbnQgYWxsb2MgPSAwOyAvKiByZGF0YSA9PSBOVUxMICovCisgICAgc2l6ZV90IG47CisKKyAgICBpZiAobXBkX2lzc3BlY2lhbChzcmMpIHx8ICFfbXBkX2lzaW50KHNyYykpIHsKKyAgICAgICAgKnN0YXR1cyB8PSBNUERfSW52YWxpZF9vcGVyYXRpb247CisgICAgICAgIHJldHVybiBTSVpFX01BWDsKKyAgICB9CisKKyAgICBpZiAoKnJkYXRhID09IE5VTEwpIHsKKyAgICAgICAgcmxlbiA9IG1wZF9zaXplaW5iYXNlKHNyYywgcmJhc2UpOworICAgICAgICBpZiAocmxlbiA9PSBTSVpFX01BWCkgeworICAgICAgICAgICAgKnN0YXR1cyB8PSBNUERfSW52YWxpZF9vcGVyYXRpb247CisgICAgICAgICAgICByZXR1cm4gU0laRV9NQVg7CisgICAgICAgIH0KKyAgICAgICAgKnJkYXRhID0gbXBkX2FsbG9jKHJsZW4sIHNpemVvZiAqKnJkYXRhKTsKKyAgICAgICAgaWYgKCpyZGF0YSA9PSBOVUxMKSB7CisgICAgICAgICAgICBnb3RvIG1hbGxvY19lcnJvcjsKKyAgICAgICAgfQorICAgICAgICBhbGxvYyA9IDE7CisgICAgfQorCisgICAgaWYgKG1wZF9pc3plcm8oc3JjKSkgeworICAgICAgICAqKnJkYXRhID0gMDsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgaWYgKHNyYy0+ZXhwID49IDApIHsKKyAgICAgICAgaWYgKCFtcGRfcXNoaWZ0bCgmdHNyYywgc3JjLCBzcmMtPmV4cCwgc3RhdHVzKSkgeworICAgICAgICAgICAgZ290byBtYWxsb2NfZXJyb3I7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGlmIChtcGRfcXNoaWZ0cigmdHNyYywgc3JjLCAtc3JjLT5leHAsIHN0YXR1cykgPT0gTVBEX1VJTlRfTUFYKSB7CisgICAgICAgICAgICBnb3RvIG1hbGxvY19lcnJvcjsKKyAgICAgICAgfQorICAgIH0KKworI2lmZGVmIENPTkZJR182NAorICAgIG4gPSBfYmFzZWNvbnZfdG9fc21hbGxlcihyZGF0YSwgcmxlbiwgcmJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRzcmMuZGF0YSwgdHNyYy5sZW4sIE1QRF9SQURJWCk7CisjZWxzZQorICAgIGlmIChyYmFzZSA9PSBNUERfUkFESVgpIHsKKyAgICAgICAgbiA9IF9jb3B5X2VxdWFsX2Jhc2UocmRhdGEsIHJsZW4sIHRzcmMuZGF0YSwgdHNyYy5sZW4pOworICAgIH0KKyAgICBlbHNlIGlmIChyYmFzZSA8IE1QRF9SQURJWCkgeworICAgICAgICBuID0gX2Jhc2Vjb252X3RvX3NtYWxsZXIocmRhdGEsIHJsZW4sIHJiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHNyYy5kYXRhLCB0c3JjLmxlbiwgTVBEX1JBRElYKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIG4gPSBfYmFzZWNvbnZfdG9fbGFyZ2VyKHJkYXRhLCBybGVuLCByYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHNyYy5kYXRhLCB0c3JjLmxlbiwgTVBEX1JBRElYKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChuID09IFNJWkVfTUFYKSB7CisgICAgICAgIGdvdG8gbWFsbG9jX2Vycm9yOworICAgIH0KKworCitvdXQ6CisgICAgbXBkX2RlbCgmdHNyYyk7CisgICAgcmV0dXJuIG47CisKK21hbGxvY19lcnJvcjoKKyAgICBpZiAoYWxsb2MpIHsKKyAgICAgICAgbXBkX2ZyZWUoKnJkYXRhKTsKKyAgICAgICAgKnJkYXRhID0gTlVMTDsKKyAgICB9CisgICAgbiA9IFNJWkVfTUFYOworICAgICpzdGF0dXMgfD0gTVBEX01hbGxvY19lcnJvcjsKKyAgICBnb3RvIG91dDsKK30KKworCisvKgorICogQ29udmVydHMgYSBtdWx0aXByZWNpc2lvbiBpbnRlZ2VyIHdpdGggYmFzZSA8PSBVSU5UMTZfTUFYKzEgdG8gYW4gbXBkX3QuCisgKiBUaGUgbGVhc3Qgc2lnbmlmaWNhbnQgd29yZCBvZiB0aGUgc291cmNlIGlzIHNyY2RhdGFbMF0uCisgKi8KK3ZvaWQKK21wZF9xaW1wb3J0X3UxNihtcGRfdCAqcmVzdWx0LAorICAgICAgICAgICAgICAgIGNvbnN0IHVpbnQxNl90ICpzcmNkYXRhLCBzaXplX3Qgc3JjbGVuLAorICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc3Jjc2lnbiwgdWludDMyX3Qgc3JjYmFzZSwKKyAgICAgICAgICAgICAgICBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpCit7CisgICAgbXBkX3VpbnRfdCAqdXNyYzsgLyogdWludDE2X3Qgc3JjIGNvcGllZCB0byBhbiBtcGRfdWludF90IGFycmF5ICovCisgICAgbXBkX3NzaXplX3QgcmxlbjsgLyogbGVuZ3RoIG9mIHRoZSByZXN1bHQgKi8KKyAgICBzaXplX3QgbjsKKworICAgIGFzc2VydChzcmNsZW4gPiAwKTsKKyAgICBhc3NlcnQoc3JjYmFzZSA8PSAoMVU8PDE2KSk7CisKKyAgICBybGVuID0gX21wZF9pbXBvcnRzaXplKHNyY2xlbiwgc3JjYmFzZSk7CisgICAgaWYgKHJsZW4gPT0gTVBEX1NTSVpFX01BWCkgeworICAgICAgICBtcGRfc2V0ZXJyb3IocmVzdWx0LCBNUERfSW52YWxpZF9vcGVyYXRpb24sIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB1c3JjID0gbXBkX2FsbG9jKChtcGRfc2l6ZV90KXNyY2xlbiwgc2l6ZW9mICp1c3JjKTsKKyAgICBpZiAodXNyYyA9PSBOVUxMKSB7CisgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZm9yIChuID0gMDsgbiA8IHNyY2xlbjsgbisrKSB7CisgICAgICAgIHVzcmNbbl0gPSBzcmNkYXRhW25dOworICAgIH0KKworICAgIGlmICghbXBkX3FyZXNpemUocmVzdWx0LCBybGVuLCBzdGF0dXMpKSB7CisgICAgICAgIGdvdG8gZmluaXNoOworICAgIH0KKworICAgIG4gPSBfY29lZmZfZnJvbV91MTYocmVzdWx0LCBybGVuLCB1c3JjLCBzcmNsZW4sIHNyY2Jhc2UsIHN0YXR1cyk7CisgICAgaWYgKG4gPT0gU0laRV9NQVgpIHsKKyAgICAgICAgZ290byBmaW5pc2g7CisgICAgfQorCisgICAgbXBkX3NldF9mbGFncyhyZXN1bHQsIHNyY3NpZ24pOworICAgIHJlc3VsdC0+ZXhwID0gMDsKKyAgICByZXN1bHQtPmxlbiA9IG47CisgICAgbXBkX3NldGRpZ2l0cyhyZXN1bHQpOworCisgICAgbXBkX3FyZXNpemUocmVzdWx0LCByZXN1bHQtPmxlbiwgc3RhdHVzKTsKKyAgICBtcGRfcWZpbmFsaXplKHJlc3VsdCwgY3R4LCBzdGF0dXMpOworCisKK2ZpbmlzaDoKKyAgICBtcGRfZnJlZSh1c3JjKTsKK30KKworLyoKKyAqIENvbnZlcnRzIGEgbXVsdGlwcmVjaXNpb24gaW50ZWdlciB3aXRoIGJhc2UgPD0gVUlOVDMyX01BWCB0byBhbiBtcGRfdC4KKyAqIFRoZSBsZWFzdCBzaWduaWZpY2FudCB3b3JkIG9mIHRoZSBzb3VyY2UgaXMgc3JjZGF0YVswXS4KKyAqLwordm9pZAorbXBkX3FpbXBvcnRfdTMyKG1wZF90ICpyZXN1bHQsCisgICAgICAgICAgICAgICAgY29uc3QgdWludDMyX3QgKnNyY2RhdGEsIHNpemVfdCBzcmNsZW4sCisgICAgICAgICAgICAgICAgdWludDhfdCBzcmNzaWduLCB1aW50MzJfdCBzcmNiYXNlLAorICAgICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cykKK3sKKyAgICBtcGRfc3NpemVfdCBybGVuOyAvKiBsZW5ndGggb2YgdGhlIHJlc3VsdCAqLworICAgIHNpemVfdCBuOworCisgICAgYXNzZXJ0KHNyY2xlbiA+IDApOworCisgICAgcmxlbiA9IF9tcGRfaW1wb3J0c2l6ZShzcmNsZW4sIHNyY2Jhc2UpOworICAgIGlmIChybGVuID09IE1QRF9TU0laRV9NQVgpIHsKKyAgICAgICAgbXBkX3NldGVycm9yKHJlc3VsdCwgTVBEX0ludmFsaWRfb3BlcmF0aW9uLCBzdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtcGRfcXJlc2l6ZShyZXN1bHQsIHJsZW4sIHN0YXR1cykpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworI2lmZGVmIENPTkZJR182NAorICAgIG4gPSBfY29lZmZfZnJvbV9zbWFsbGVyX2Jhc2UocmVzdWx0LCBybGVuLCBNUERfUkFESVgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmNkYXRhLCBzcmNsZW4sIHNyY2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMpOworI2Vsc2UKKyAgICBpZiAoc3JjYmFzZSA9PSBNUERfUkFESVgpIHsKKyAgICAgICAgaWYgKCFtcGRfcXJlc2l6ZShyZXN1bHQsIHNyY2xlbiwgc3RhdHVzKSkgeworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIG1lbWNweShyZXN1bHQtPmRhdGEsIHNyY2RhdGEsIHNyY2xlbiAqIChzaXplb2YgKnNyY2RhdGEpKTsKKyAgICAgICAgbiA9IHNyY2xlbjsKKyAgICB9CisgICAgZWxzZSBpZiAoc3JjYmFzZSA8IE1QRF9SQURJWCkgeworICAgICAgICBuID0gX2NvZWZmX2Zyb21fc21hbGxlcl9iYXNlKHJlc3VsdCwgcmxlbiwgTVBEX1JBRElYLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY2RhdGEsIHNyY2xlbiwgc3JjYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbXBkX3VpbnRfdCAqdXNyYyA9IG1wZF9hbGxvYygobXBkX3NpemVfdClzcmNsZW4sIHNpemVvZiAqdXNyYyk7CisgICAgICAgIGlmICh1c3JjID09IE5VTEwpIHsKKyAgICAgICAgICAgIG1wZF9zZXRlcnJvcihyZXN1bHQsIE1QRF9NYWxsb2NfZXJyb3IsIHN0YXR1cyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgZm9yIChuID0gMDsgbiA8IHNyY2xlbjsgbisrKSB7CisgICAgICAgICAgICB1c3JjW25dID0gc3JjZGF0YVtuXTsKKyAgICAgICAgfQorCisgICAgICAgIG4gPSBfY29lZmZfZnJvbV9sYXJnZXJfYmFzZShyZXN1bHQsIHJsZW4sIE1QRF9SQURJWCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzcmMsIChtcGRfc3NpemVfdClzcmNsZW4sIHNyY2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMpOworICAgICAgICBtcGRfZnJlZSh1c3JjKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChuID09IFNJWkVfTUFYKSB7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtcGRfc2V0X2ZsYWdzKHJlc3VsdCwgc3Jjc2lnbik7CisgICAgcmVzdWx0LT5leHAgPSAwOworICAgIHJlc3VsdC0+bGVuID0gbjsKKyAgICBtcGRfc2V0ZGlnaXRzKHJlc3VsdCk7CisKKyAgICBtcGRfcXJlc2l6ZShyZXN1bHQsIHJlc3VsdC0+bGVuLCBzdGF0dXMpOworICAgIG1wZF9xZmluYWxpemUocmVzdWx0LCBjdHgsIHN0YXR1cyk7Cit9CisKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL21wZGVjaW1hbC5oIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9tcGRlY2ltYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMTMxYzcxCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9tcGRlY2ltYWwuaApAQCAtMCwwICsxLDgwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBNUERFQ0lNQUxfSAorI2RlZmluZSBNUERFQ0lNQUxfSAorCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZGVmaW5lIF9fU1REQ19MSU1JVF9NQUNST1MKKyNlbmRpZgorCisKKyNpZm5kZWYgX01TQ19WRVIKKyAgI2luY2x1ZGUgInB5Y29uZmlnLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8bGltaXRzLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisKKyNpZmRlZiBfTVNDX1ZFUgorICAjaW5jbHVkZSAidmNjb21wYXQuaCIKKyAgI2lmbmRlZiBVTlVTRUQKKyAgICAjZGVmaW5lIFVOVVNFRAorICAjZW5kaWYKKyAgI2RlZmluZSBFWFRJTkxJTkUgZXh0ZXJuIGlubGluZQorI2Vsc2UKKyAgI2lmZGVmIEhBVkVfU1RESU5UX0gKKyAgICAjaW5jbHVkZSA8c3RkaW50Lmg+CisgICNlbmRpZgorICAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICisgICAgI2luY2x1ZGUgPGludHR5cGVzLmg+CisgICNlbmRpZgorICAjaWZuZGVmIF9fR05VQ19TVERDX0lOTElORV9fCisgICAgI2RlZmluZSBfX0dOVUNfU1REQ19JTkxJTkVfXworICAjZW5kaWYKKyAgI2lmIGRlZmluZWQoX19HTlVDX18pICYmICFkZWZpbmVkKF9fSU5URUxfQ09NUElMRVIpCisgICAgI2RlZmluZSBVTlVTRUQgX19hdHRyaWJ1dGVfXygodW51c2VkKSkKKyAgI2Vsc2UKKyAgICAjZGVmaW5lIFVOVVNFRAorICAjZW5kaWYKKyAgI2RlZmluZSBFWFRJTkxJTkUKKyNlbmRpZgorCisKKyNpZiAhZGVmaW5lZChMRUdBQ1lfQ09NUElMRVIpCisgICNpZiAhZGVmaW5lZChVSU5UNjRfTUFYKQorICAgIC8qIFRoZSBmb2xsb3dpbmcgI2Vycm9yIGlzIGp1c3QgYSB3YXJuaW5nLiBJZiB0aGUgY29tcGlsZXIgaW5kZWVkIGRvZXMKKyAgICAgKiBub3QgaGF2ZSB1aW50NjRfdCwgaXQgaXMgcGVyZmVjdGx5IHNhZmUgdG8gY29tbWVudCBvdXQgdGhlICNlcnJvci4gKi8KKyAgICAjZXJyb3IgIldhcm5pbmc6IENvbXBpbGVyIHdpdGhvdXQgdWludDY0X3QuIENvbW1lbnQgb3V0IHRoaXMgbGluZS4iCisgICAgI2RlZmluZSBMRUdBQ1lfQ09NUElMRVIKKyAgI2VuZGlmCisjZW5kaWYKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNpZiBkZWZpbmVkKFVOSVZFUlNBTCkKKyAgI2lmIGRlZmluZWQoQ09ORklHXzY0KSB8fCBkZWZpbmVkKENPTkZJR18zMikKKyAgICAjZXJyb3IgImNhbm5vdCB1c2UgQ09ORklHXzY0IG9yIENPTkZJR18zMiB3aXRoIFVOSVZFUlNBTC4iCisgICNlbmRpZgorICAjaWYgZGVmaW5lZChfX3BwY19fKQorICAgICNkZWZpbmUgQ09ORklHXzMyCisgICAgI2RlZmluZSBBTlNJCisgICNlbGlmIGRlZmluZWQoX19wcGM2NF9fKQorICAgICNkZWZpbmUgQ09ORklHXzY0CisgICAgI2RlZmluZSBBTlNJCisgICNlbGlmIGRlZmluZWQoX19pMzg2X18pCisgICAgI2RlZmluZSBDT05GSUdfMzIKKyAgICAjZGVmaW5lIEFOU0kKKyAgI2VsaWYgZGVmaW5lZChfX3g4Nl82NF9fKQorICAgICNkZWZpbmUgQ09ORklHXzY0CisgICAgI2RlZmluZSBBU00KKyAgI2Vsc2UKKyAgICAjZXJyb3IgInVua25vd24gYXJjaGl0ZWN0dXJlIGZvciB1bml2ZXJzYWwgYnVpbGQuIgorICAjZW5kaWYKKyNlbmRpZgorCisKKy8qIEJFR0lOIENPTkZJR182NCAqLworI2lmIGRlZmluZWQoQ09ORklHXzY0KQorLyogdHlwZXMgZm9yIG1vZHVsYXIgYW5kIGJhc2UgYXJpdGhtZXRpYyAqLworI2RlZmluZSBNUERfVUlOVF9NQVggVUlOVDY0X01BWAorI2RlZmluZSBNUERfQklUU19QRVJfVUlOVCA2NAordHlwZWRlZiB1aW50NjRfdCBtcGRfdWludF90OyAgLyogdW5zaWduZWQgbW9kIHR5cGUgKi8KKworI2RlZmluZSBNUERfU0laRV9NQVggU0laRV9NQVgKK3R5cGVkZWYgc2l6ZV90IG1wZF9zaXplX3Q7IC8qIHVuc2lnbmVkIHNpemUgdHlwZSAqLworCisvKiB0eXBlIGZvciBleHAsIGRpZ2l0cywgbGVuLCBwcmVjICovCisjZGVmaW5lIE1QRF9TU0laRV9NQVggSU5UNjRfTUFYCisjZGVmaW5lIE1QRF9TU0laRV9NSU4gSU5UNjRfTUlOCit0eXBlZGVmIGludDY0X3QgbXBkX3NzaXplX3Q7CisjZGVmaW5lIF9tcGRfc3RydG9zc2l6ZSBzdHJ0b2xsCisKKy8qIGRlY2ltYWwgYXJpdGhtZXRpYyAqLworI2RlZmluZSBNUERfUkFESVggMTAwMDAwMDAwMDAwMDAwMDAwMDBVTEwgIC8qIDEwKioxOSAqLworI2RlZmluZSBNUERfUkRJR0lUUyAxOQorI2RlZmluZSBNUERfTUFYX1BPVzEwIDE5CisjZGVmaW5lIE1QRF9FWFBESUdJVFMgMTkgIC8qIE1QRF9FWFBESUdJVFMgPD0gTVBEX1JESUdJVFMrMSAqLworCisjZGVmaW5lIE1QRF9NQVhUUkFOU0ZPUk1fMk4gNDI5NDk2NzI5NlVMTCAgICAgIC8qIDIqKjMyICovCisjZGVmaW5lIE1QRF9NQVhfUFJFQyA5OTk5OTk5OTk5OTk5OTk5OTlMTAorI2RlZmluZSBNUERfTUFYX1BSRUNfTE9HMiA2NAorI2RlZmluZSBNUERfRUxJTUlUICAxMDAwMDAwMDAwMDAwMDAwMDAwTEwKKyNkZWZpbmUgTVBEX01BWF9FTUFYICAgOTk5OTk5OTk5OTk5OTk5OTk5TEwgICAgLyogRUxJTUlULTEgKi8KKyNkZWZpbmUgTVBEX01JTl9FTUlOICAoLTk5OTk5OTk5OTk5OTk5OTk5OUxMKSAgLyogLUVNQVggKi8KKyNkZWZpbmUgTVBEX01JTl9FVElOWSAoTVBEX01JTl9FTUlOLShNUERfTUFYX1BSRUMtMSkpCisjZGVmaW5lIE1QRF9FWFBfSU5GIDIwMDAwMDAwMDAwMDAwMDAwMDFMTAorI2RlZmluZSBNUERfRVhQX0NMQU1QICgtNDAwMDAwMDAwMDAwMDAwMDAwMUxMKQorI2RlZmluZSBNUERfTUFYSU1QT1JUIDEwNTI2MzE1Nzg5NDczNjg0MkwgLyogY2VpbCgoMipNUERfTUFYX1BSRUMpL01QRF9SRElHSVRTKSAqLworCisvKiBjb252ZXJzaW9uIHNwZWNpZmllcnMgKi8KKyNkZWZpbmUgUFJJX21wZF91aW50X3QgUFJJdTY0CisjZGVmaW5lIFBSSV9tcGRfc3NpemVfdCBQUklpNjQKKy8qIEVORCBDT05GSUdfNjQgKi8KKworCisvKiBCRUdJTiBDT05GSUdfMzIgKi8KKyNlbGlmIGRlZmluZWQoQ09ORklHXzMyKQorLyogdHlwZXMgZm9yIG1vZHVsYXIgYW5kIGJhc2UgYXJpdGhtZXRpYyAqLworI2RlZmluZSBNUERfVUlOVF9NQVggVUlOVDMyX01BWAorI2RlZmluZSBNUERfQklUU19QRVJfVUlOVCAzMgordHlwZWRlZiB1aW50MzJfdCBtcGRfdWludF90OyAgLyogdW5zaWduZWQgbW9kIHR5cGUgKi8KKworI2lmbmRlZiBMRUdBQ1lfQ09NUElMRVIKKyNkZWZpbmUgTVBEX1VVSU5UX01BWCBVSU5UNjRfTUFYCit0eXBlZGVmIHVpbnQ2NF90IG1wZF91dWludF90OyAvKiBkb3VibGUgd2lkdGggdW5zaWduZWQgbW9kIHR5cGUgKi8KKyNlbmRpZgorCisjZGVmaW5lIE1QRF9TSVpFX01BWCBTSVpFX01BWAordHlwZWRlZiBzaXplX3QgbXBkX3NpemVfdDsgLyogdW5zaWduZWQgc2l6ZSB0eXBlICovCisKKy8qIHR5cGUgZm9yIGRlYy0+bGVuLCBkZWMtPmV4cCwgY3R4LT5wcmVjICovCisjZGVmaW5lIE1QRF9TU0laRV9NQVggSU5UMzJfTUFYCisjZGVmaW5lIE1QRF9TU0laRV9NSU4gSU5UMzJfTUlOCit0eXBlZGVmIGludDMyX3QgbXBkX3NzaXplX3Q7CisjZGVmaW5lIF9tcGRfc3RydG9zc2l6ZSBzdHJ0b2wKKworLyogZGVjaW1hbCBhcml0aG1ldGljICovCisjZGVmaW5lIE1QRF9SQURJWCAxMDAwMDAwMDAwVUwgIC8qIDEwKio5ICovCisjZGVmaW5lIE1QRF9SRElHSVRTIDkKKyNkZWZpbmUgTVBEX01BWF9QT1cxMCA5CisjZGVmaW5lIE1QRF9FWFBESUdJVFMgMTAgLyogTVBEX0VYUERJR0lUUyA8PSBNUERfUkRJR0lUUysxICovCisKKyNkZWZpbmUgTVBEX01BWFRSQU5TRk9STV8yTiAzMzU1NDQzMlVMIC8qIDIqKjI1ICovCisjZGVmaW5lIE1QRF9NQVhfUFJFQyA0MjUwMDAwMDBMCisjZGVmaW5lIE1QRF9NQVhfUFJFQ19MT0cyIDMyCisjZGVmaW5lIE1QRF9FTElNSVQgNDI1MDAwMDAxTAorI2RlZmluZSBNUERfTUFYX0VNQVggNDI1MDAwMDAwTCAgICAgICAgLyogRUxJTUlULTEgKi8KKyNkZWZpbmUgTVBEX01JTl9FTUlOICgtNDI1MDAwMDAwTCkgICAgIC8qIC1FTUFYICovCisjZGVmaW5lIE1QRF9NSU5fRVRJTlkgKE1QRF9NSU5fRU1JTi0oTVBEX01BWF9QUkVDLTEpKQorI2RlZmluZSBNUERfRVhQX0lORiAxMDAwMDAwMDAxTCAgICAgIC8qIGFsbG93cyBmb3IgZW1heD05OTk5OTk5OTkgaW4gdGhlIHRlc3RzICovCisjZGVmaW5lIE1QRF9FWFBfQ0xBTVAgKC0yMDAwMDAwMDAxTCkgLyogYWxsb3dzIGZvciBlbWluPS05OTk5OTk5OTkgaW4gdGhlIHRlc3RzICovCisjZGVmaW5lIE1QRF9NQVhJTVBPUlQgOTQ0NDQ0NDVMICAgICAgLyogY2VpbCgoMipNUERfTUFYX1BSRUMpL01QRF9SRElHSVRTKSAqLworCisvKiBjb252ZXJzaW9uIHNwZWNpZmllcnMgKi8KKyNkZWZpbmUgUFJJX21wZF91aW50X3QgUFJJdTMyCisjZGVmaW5lIFBSSV9tcGRfc3NpemVfdCBQUklpMzIKKy8qIEVORCBDT05GSUdfMzIgKi8KKworI2Vsc2UKKyAgI2Vycm9yICJkZWZpbmUgQ09ORklHXzY0IG9yIENPTkZJR18zMiIKKyNlbmRpZgorLyogRU5EIENPTkZJRyAqLworCisKKyNpZiBNUERfU0laRV9NQVggIT0gTVBEX1VJTlRfTUFYCisgICNlcnJvciAidW5zdXBwb3J0ZWQgcGxhdGZvcm06IG5lZWQgbXBkX3NpemVfdCA9PSBtcGRfdWludF90IgorI2VuZGlmCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb250ZXh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitlbnVtIHsKKyAgICBNUERfUk9VTkRfVVAsICAgICAgICAgIC8qIHJvdW5kIGF3YXkgZnJvbSAwICAgICAgICAgICAgICAgKi8KKyAgICBNUERfUk9VTkRfRE9XTiwgICAgICAgIC8qIHJvdW5kIHRvd2FyZCAwICh0cnVuY2F0ZSkgICAgICAgKi8KKyAgICBNUERfUk9VTkRfQ0VJTElORywgICAgIC8qIHJvdW5kIHRvd2FyZCAraW5maW5pdHkgICAgICAgICAgKi8KKyAgICBNUERfUk9VTkRfRkxPT1IsICAgICAgIC8qIHJvdW5kIHRvd2FyZCAtaW5maW5pdHkgICAgICAgICAgKi8KKyAgICBNUERfUk9VTkRfSEFMRl9VUCwgICAgIC8qIDAuNSBpcyByb3VuZGVkIHVwICAgICAgICAgICAgICAgKi8KKyAgICBNUERfUk9VTkRfSEFMRl9ET1dOLCAgIC8qIDAuNSBpcyByb3VuZGVkIGRvd24gICAgICAgICAgICAgKi8KKyAgICBNUERfUk9VTkRfSEFMRl9FVkVOLCAgIC8qIDAuNSBpcyByb3VuZGVkIHRvIGV2ZW4gICAgICAgICAgKi8KKyAgICBNUERfUk9VTkRfMDVVUCwgICAgICAgIC8qIHJvdW5kIHplcm8gb3IgZml2ZSBhd2F5IGZyb20gMCAgKi8KKyAgICBNUERfUk9VTkRfVFJVTkMsICAgICAgIC8qIHRydW5jYXRlLCBidXQgc2V0IGluZmluaXR5ICAgICAgKi8KKyAgICBNUERfUk9VTkRfR1VBUkQKK307CisKK2VudW0geyBNUERfQ0xBTVBfREVGQVVMVCwgTVBEX0NMQU1QX0lFRUVfNzU0LCBNUERfQ0xBTVBfR1VBUkQgfTsKKworZXh0ZXJuIGNvbnN0IGNoYXIgKm1wZF9yb3VuZF9zdHJpbmdbTVBEX1JPVU5EX0dVQVJEXTsKK2V4dGVybiBjb25zdCBjaGFyICptcGRfY2xhbXBfc3RyaW5nW01QRF9DTEFNUF9HVUFSRF07CisKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIG1wZF9zc2l6ZV90IHByZWM7ICAgLyogcHJlY2lzaW9uICovCisgICAgbXBkX3NzaXplX3QgZW1heDsgICAvKiBtYXggcG9zaXRpdmUgZXhwICovCisgICAgbXBkX3NzaXplX3QgZW1pbjsgICAvKiBtaW4gbmVnYXRpdmUgZXhwICovCisgICAgdWludDMyX3QgdHJhcHM7ICAgICAvKiBzdGF0dXMgZXZlbnRzIHRoYXQgc2hvdWxkIGJlIHRyYXBwZWQgKi8KKyAgICB1aW50MzJfdCBzdGF0dXM7ICAgIC8qIHN0YXR1cyBmbGFncyAqLworICAgIHVpbnQzMl90IG5ld3RyYXA7ICAgLyogc2V0IGJ5IG1wZF9hZGRzdGF0dXNfcmFpc2UoKSAqLworICAgIGludCAgICAgIHJvdW5kOyAgICAgLyogcm91bmRpbmcgbW9kZSAqLworICAgIGludCAgICAgIGNsYW1wOyAgICAgLyogY2xhbXAgbW9kZSAqLworICAgIGludCAgICAgIGFsbGNyOyAgICAgLyogYWxsIGZ1bmN0aW9ucyBjb3JyZWN0bHkgcm91bmRlZCAqLworfSBtcGRfY29udGV4dF90OworCisKKy8qIFN0YXR1cyBmbGFncyAqLworI2RlZmluZSBNUERfQ2xhbXBlZCAgICAgICAgICAgICAweDAwMDAwMDAxVQorI2RlZmluZSBNUERfQ29udmVyc2lvbl9zeW50YXggICAweDAwMDAwMDAyVQorI2RlZmluZSBNUERfRGl2aXNpb25fYnlfemVybyAgICAweDAwMDAwMDA0VQorI2RlZmluZSBNUERfRGl2aXNpb25faW1wb3NzaWJsZSAweDAwMDAwMDA4VQorI2RlZmluZSBNUERfRGl2aXNpb25fdW5kZWZpbmVkICAweDAwMDAwMDEwVQorI2RlZmluZSBNUERfRnB1X2Vycm9yICAgICAgICAgICAweDAwMDAwMDIwVQorI2RlZmluZSBNUERfSW5leGFjdCAgICAgICAgICAgICAweDAwMDAwMDQwVQorI2RlZmluZSBNUERfSW52YWxpZF9jb250ZXh0ICAgICAweDAwMDAwMDgwVQorI2RlZmluZSBNUERfSW52YWxpZF9vcGVyYXRpb24gICAweDAwMDAwMTAwVQorI2RlZmluZSBNUERfTWFsbG9jX2Vycm9yICAgICAgICAweDAwMDAwMjAwVQorI2RlZmluZSBNUERfTm90X2ltcGxlbWVudGVkICAgICAweDAwMDAwNDAwVQorI2RlZmluZSBNUERfT3ZlcmZsb3cgICAgICAgICAgICAweDAwMDAwODAwVQorI2RlZmluZSBNUERfUm91bmRlZCAgICAgICAgICAgICAweDAwMDAxMDAwVQorI2RlZmluZSBNUERfU3Vibm9ybWFsICAgICAgICAgICAweDAwMDAyMDAwVQorI2RlZmluZSBNUERfVW5kZXJmbG93ICAgICAgICAgICAweDAwMDA0MDAwVQorI2RlZmluZSBNUERfTWF4X3N0YXR1cyAgICAgICAgICgweDAwMDA4MDAwVS0xVSkKKworLyogQ29uZGl0aW9ucyB0aGF0IHJlc3VsdCBpbiBhbiBJRUVFIDc1NCBleGNlcHRpb24gKi8KKyNkZWZpbmUgTVBEX0lFRUVfSW52YWxpZF9vcGVyYXRpb24gKE1QRF9Db252ZXJzaW9uX3N5bnRheCB8ICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVBEX0RpdmlzaW9uX2ltcG9zc2libGUgfCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNUERfRGl2aXNpb25fdW5kZWZpbmVkIHwgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRF9GcHVfZXJyb3IgfCAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVBEX0ludmFsaWRfY29udGV4dCB8ICAgICBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNUERfSW52YWxpZF9vcGVyYXRpb24gfCAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1QRF9NYWxsb2NfZXJyb3IpICAgICAgICAgXAorCisvKiBFcnJvcnMgdGhhdCByZXF1aXJlIHRoZSByZXN1bHQgb2YgYW4gb3BlcmF0aW9uIHRvIGJlIHNldCB0byBOYU4gKi8KKyNkZWZpbmUgTVBEX0Vycm9ycyAoTVBEX0lFRUVfSW52YWxpZF9vcGVyYXRpb24gfCBcCisgICAgICAgICAgICAgICAgICAgIE1QRF9EaXZpc2lvbl9ieV96ZXJvKQorCisvKiBEZWZhdWx0IHRyYXBzICovCisjZGVmaW5lIE1QRF9UcmFwcyAoTVBEX0lFRUVfSW52YWxpZF9vcGVyYXRpb24gfCBcCisgICAgICAgICAgICAgICAgICAgTVBEX0RpdmlzaW9uX2J5X3plcm8gfCAgICAgICBcCisgICAgICAgICAgICAgICAgICAgTVBEX092ZXJmbG93IHwgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgICAgTVBEX1VuZGVyZmxvdykKKworLyogT2ZmaWNpYWwgbmFtZSAqLworI2RlZmluZSBNUERfSW5zdWZmaWNpZW50X3N0b3JhZ2UgTVBEX01hbGxvY19lcnJvcgorCisvKiBJRUVFIDc1NCBpbnRlcmNoYW5nZSBmb3JtYXQgY29udGV4dHMgKi8KKyNkZWZpbmUgTVBEX0lFRUVfQ09OVEVYVF9NQVhfQklUUyA1MTIgLyogMTYqKGxvZzIoTVBEX01BWF9FTUFYIC8gMyktMykgKi8KKyNkZWZpbmUgTVBEX0RFQ0lNQUwzMiAzMgorI2RlZmluZSBNUERfREVDSU1BTDY0IDY0CisjZGVmaW5lIE1QRF9ERUNJTUFMMTI4IDEyOAorCisKKyNkZWZpbmUgTVBEX01JTkFMTE9DX01JTiAyCisjZGVmaW5lIE1QRF9NSU5BTExPQ19NQVggNjQKK2V4dGVybiBtcGRfc3NpemVfdCBNUERfTUlOQUxMT0M7CitleHRlcm4gdm9pZCAoKiBtcGRfdHJhcGhhbmRsZXIpKG1wZF9jb250ZXh0X3QgKik7Cit2b2lkIG1wZF9kZmx0X3RyYXBoYW5kbGVyKG1wZF9jb250ZXh0X3QgKik7CisKK3ZvaWQgbXBkX3NldG1pbmFsbG9jKG1wZF9zc2l6ZV90IG4pOwordm9pZCBtcGRfaW5pdChtcGRfY29udGV4dF90ICpjdHgsIG1wZF9zc2l6ZV90IHByZWMpOworCit2b2lkIG1wZF9tYXhjb250ZXh0KG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9kZWZhdWx0Y29udGV4dChtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfYmFzaWNjb250ZXh0KG1wZF9jb250ZXh0X3QgKmN0eCk7CitpbnQgbXBkX2llZWVfY29udGV4dChtcGRfY29udGV4dF90ICpjdHgsIGludCBiaXRzKTsKKworbXBkX3NzaXplX3QgbXBkX2dldHByZWMoY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4KTsKK21wZF9zc2l6ZV90IG1wZF9nZXRlbWF4KGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCk7CittcGRfc3NpemVfdCBtcGRfZ2V0ZW1pbihjb25zdCBtcGRfY29udGV4dF90ICpjdHgpOworaW50IG1wZF9nZXRyb3VuZChjb25zdCBtcGRfY29udGV4dF90ICpjdHgpOwordWludDMyX3QgbXBkX2dldHRyYXBzKGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCk7Cit1aW50MzJfdCBtcGRfZ2V0c3RhdHVzKGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCk7CitpbnQgbXBkX2dldGNsYW1wKGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCk7CitpbnQgbXBkX2dldGNyKGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCk7CisKK2ludCBtcGRfcXNldHByZWMobXBkX2NvbnRleHRfdCAqY3R4LCBtcGRfc3NpemVfdCBwcmVjKTsKK2ludCBtcGRfcXNldGVtYXgobXBkX2NvbnRleHRfdCAqY3R4LCBtcGRfc3NpemVfdCBlbWF4KTsKK2ludCBtcGRfcXNldGVtaW4obXBkX2NvbnRleHRfdCAqY3R4LCBtcGRfc3NpemVfdCBlbWluKTsKK2ludCBtcGRfcXNldHJvdW5kKG1wZF9jb250ZXh0X3QgKmN0eCwgaW50IG5ld3JvdW5kKTsKK2ludCBtcGRfcXNldHRyYXBzKG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgZmxhZ3MpOworaW50IG1wZF9xc2V0c3RhdHVzKG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgZmxhZ3MpOworaW50IG1wZF9xc2V0Y2xhbXAobXBkX2NvbnRleHRfdCAqY3R4LCBpbnQgYyk7CitpbnQgbXBkX3FzZXRjcihtcGRfY29udGV4dF90ICpjdHgsIGludCBjKTsKK3ZvaWQgbXBkX2FkZHN0YXR1c19yYWlzZShtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90IGZsYWdzKTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICBEZWNpbWFsIEFyaXRobWV0aWMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIG1wZF90IGZsYWdzICovCisjZGVmaW5lIE1QRF9QT1MgICAgICAgICAgICAgICAgICgodWludDhfdCkwKQorI2RlZmluZSBNUERfTkVHICAgICAgICAgICAgICAgICAoKHVpbnQ4X3QpMSkKKyNkZWZpbmUgTVBEX0lORiAgICAgICAgICAgICAgICAgKCh1aW50OF90KTIpCisjZGVmaW5lIE1QRF9OQU4gICAgICAgICAgICAgICAgICgodWludDhfdCk0KQorI2RlZmluZSBNUERfU05BTiAgICAgICAgICAgICAgICAoKHVpbnQ4X3QpOCkKKyNkZWZpbmUgTVBEX1NQRUNJQUwgKE1QRF9JTkZ8TVBEX05BTnxNUERfU05BTikKKyNkZWZpbmUgTVBEX1NUQVRJQyAgICAgICAgICAgICAgKCh1aW50OF90KTE2KQorI2RlZmluZSBNUERfU1RBVElDX0RBVEEgICAgICAgICAoKHVpbnQ4X3QpMzIpCisjZGVmaW5lIE1QRF9TSEFSRURfREFUQSAgICAgICAgICgodWludDhfdCk2NCkKKyNkZWZpbmUgTVBEX0NPTlNUX0RBVEEgICAgICAgICAgKCh1aW50OF90KTEyOCkKKyNkZWZpbmUgTVBEX0RBVEFGTEFHUyAoTVBEX1NUQVRJQ19EQVRBfE1QRF9TSEFSRURfREFUQXxNUERfQ09OU1RfREFUQSkKKworLyogbXBkX3QgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICB1aW50OF90IGZsYWdzOworICAgIG1wZF9zc2l6ZV90IGV4cDsKKyAgICBtcGRfc3NpemVfdCBkaWdpdHM7CisgICAgbXBkX3NzaXplX3QgbGVuOworICAgIG1wZF9zc2l6ZV90IGFsbG9jOworICAgIG1wZF91aW50X3QgKmRhdGE7Cit9IG1wZF90OworCisKK3R5cGVkZWYgdW5zaWduZWQgY2hhciB1Y2hhcjsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgIFF1aWV0LCB0aHJlYWQtc2FmZSBmdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIGZvcm1hdCBzcGVjaWZpY2F0aW9uICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgbXBkX3NzaXplX3QgbWluX3dpZHRoOyAvKiBtaW5pbXVtIGZpZWxkIHdpZHRoICovCisgICAgbXBkX3NzaXplX3QgcHJlYzsgICAgICAvKiBmcmFjdGlvbiBkaWdpdHMgb3Igc2lnbmlmaWNhbnQgZGlnaXRzICovCisgICAgY2hhciB0eXBlOyAgICAgICAgICAgICAvKiBjb252ZXJzaW9uIHNwZWNpZmllciAqLworICAgIGNoYXIgYWxpZ247ICAgICAgICAgICAgLyogYWxpZ25tZW50ICovCisgICAgY2hhciBzaWduOyAgICAgICAgICAgICAvKiBzaWduIHByaW50aW5nL2FsaWdubWVudCAqLworICAgIGNoYXIgZmlsbFs1XTsgICAgICAgICAgLyogZmlsbCBjaGFyYWN0ZXIgKi8KKyAgICBjb25zdCBjaGFyICpkb3Q7ICAgICAgIC8qIGRlY2ltYWwgcG9pbnQgKi8KKyAgICBjb25zdCBjaGFyICpzZXA7ICAgICAgIC8qIHRob3VzYW5kcyBzZXBhcmF0b3IgKi8KKyAgICBjb25zdCBjaGFyICpncm91cGluZzsgIC8qIGdyb3VwaW5nIG9mIGRpZ2l0cyAqLworfSBtcGRfc3BlY190OworCisvKiBvdXRwdXQgdG8gYSBzdHJpbmcgKi8KK2NoYXIgKm1wZF90b19zY2koY29uc3QgbXBkX3QgKmRlYywgaW50IGZtdCk7CitjaGFyICptcGRfdG9fZW5nKGNvbnN0IG1wZF90ICpkZWMsIGludCBmbXQpOworbXBkX3NzaXplX3QgbXBkX3RvX3NjaV9zaXplKGNoYXIgKipyZXMsIGNvbnN0IG1wZF90ICpkZWMsIGludCBmbXQpOworbXBkX3NzaXplX3QgbXBkX3RvX2VuZ19zaXplKGNoYXIgKipyZXMsIGNvbnN0IG1wZF90ICpkZWMsIGludCBmbXQpOworaW50IG1wZF92YWxpZGF0ZV9sY29udihtcGRfc3BlY190ICpzcGVjKTsKK2ludCBtcGRfcGFyc2VfZm10X3N0cihtcGRfc3BlY190ICpzcGVjLCBjb25zdCBjaGFyICpmbXQsIGludCBjYXBzKTsKK2NoYXIgKiBtcGRfcWZvcm1hdF9zcGVjKGNvbnN0IG1wZF90ICpkZWMsIGNvbnN0IG1wZF9zcGVjX3QgKnNwZWMsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7CitjaGFyICptcGRfcWZvcm1hdChjb25zdCBtcGRfdCAqZGVjLCBjb25zdCBjaGFyICpmbXQsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7CisKKyNkZWZpbmUgTVBEX05VTV9GTEFHUyAxNQorI2RlZmluZSBNUERfTUFYX0ZMQUdfU1RSSU5HIDIwOAorI2RlZmluZSBNUERfTUFYX0ZMQUdfTElTVCAoTVBEX01BWF9GTEFHX1NUUklORysxOCkKKyNkZWZpbmUgTVBEX01BWF9TSUdOQUxfTElTVCAxMjEKK2ludCBtcGRfc25wcmludF9mbGFncyhjaGFyICpkZXN0LCBpbnQgbm1lbWIsIHVpbnQzMl90IGZsYWdzKTsKK2ludCBtcGRfbHNucHJpbnRfZmxhZ3MoY2hhciAqZGVzdCwgaW50IG5tZW1iLCB1aW50MzJfdCBmbGFncywgY29uc3QgY2hhciAqZmxhZ19zdHJpbmdbXSk7CitpbnQgbXBkX2xzbnByaW50X3NpZ25hbHMoY2hhciAqZGVzdCwgaW50IG5tZW1iLCB1aW50MzJfdCBmbGFncywgY29uc3QgY2hhciAqc2lnbmFsX3N0cmluZ1tdKTsKKworLyogb3V0cHV0IHRvIGEgZmlsZSAqLwordm9pZCBtcGRfZnByaW50KEZJTEUgKmZpbGUsIGNvbnN0IG1wZF90ICpkZWMpOwordm9pZCBtcGRfcHJpbnQoY29uc3QgbXBkX3QgKmRlYyk7CisKKy8qIGFzc2lnbm1lbnQgZnJvbSBhIHN0cmluZyAqLwordm9pZCBtcGRfcXNldF9zdHJpbmcobXBkX3QgKmRlYywgY29uc3QgY2hhciAqcywgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKKworLyogc2V0IHRvIE5hTiB3aXRoIGVycm9yIGZsYWdzICovCit2b2lkIG1wZF9zZXRlcnJvcihtcGRfdCAqcmVzdWx0LCB1aW50MzJfdCBmbGFncywgdWludDMyX3QgKnN0YXR1cyk7CisvKiBzZXQgYSBzcGVjaWFsIHdpdGggc2lnbiBhbmQgdHlwZSAqLwordm9pZCBtcGRfc2V0c3BlY2lhbChtcGRfdCAqZGVjLCB1aW50OF90IHNpZ24sIHVpbnQ4X3QgdHlwZSk7CisvKiBzZXQgY29lZmZpY2llbnQgdG8gemVybyBvciBhbGwgbmluZXMgKi8KK3ZvaWQgbXBkX3plcm9jb2VmZihtcGRfdCAqcmVzdWx0KTsKK3ZvaWQgbXBkX3FtYXhjb2VmZihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworCisvKiBxdWlldGx5IGFzc2lnbiBhIEMgaW50ZWdlciB0eXBlIHRvIGFuIG1wZF90ICovCit2b2lkIG1wZF9xc2V0X3NzaXplKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IGEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xc2V0X2kzMihtcGRfdCAqcmVzdWx0LCBpbnQzMl90IGEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xc2V0X3VpbnQobXBkX3QgKnJlc3VsdCwgbXBkX3VpbnRfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXNldF91MzIobXBkX3QgKnJlc3VsdCwgdWludDMyX3QgYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKKyNpZm5kZWYgTEVHQUNZX0NPTVBJTEVSCit2b2lkIG1wZF9xc2V0X2k2NChtcGRfdCAqcmVzdWx0LCBpbnQ2NF90IGEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xc2V0X3U2NChtcGRfdCAqcmVzdWx0LCB1aW50NjRfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworI2VuZGlmCisKKy8qIHF1aWV0bHkgYXNzaWduIGEgQyBpbnRlZ2VyIHR5cGUgdG8gYW4gbXBkX3Qgd2l0aCBhIHN0YXRpYyBjb2VmZmljaWVudCAqLwordm9pZCBtcGRfcXNzZXRfc3NpemUobXBkX3QgKnJlc3VsdCwgbXBkX3NzaXplX3QgYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3Fzc2V0X2kzMihtcGRfdCAqcmVzdWx0LCBpbnQzMl90IGEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xc3NldF91aW50KG1wZF90ICpyZXN1bHQsIG1wZF91aW50X3QgYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3Fzc2V0X3UzMihtcGRfdCAqcmVzdWx0LCB1aW50MzJfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworCisvKiBxdWlldGx5IGdldCBhIEMgaW50ZWdlciB0eXBlIGZyb20gYW4gbXBkX3QgKi8KK21wZF9zc2l6ZV90IG1wZF9xZ2V0X3NzaXplKGNvbnN0IG1wZF90ICpkZWMsIHVpbnQzMl90ICpzdGF0dXMpOworbXBkX3VpbnRfdCBtcGRfcWdldF91aW50KGNvbnN0IG1wZF90ICpkZWMsIHVpbnQzMl90ICpzdGF0dXMpOworbXBkX3VpbnRfdCBtcGRfcWFic191aW50KGNvbnN0IG1wZF90ICpkZWMsIHVpbnQzMl90ICpzdGF0dXMpOworCisKKy8qIHF1aWV0IGZ1bmN0aW9ucyAqLworaW50IG1wZF9xY2hlY2tfbmFuKG1wZF90ICpuYW5yZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworaW50IG1wZF9xY2hlY2tfbmFucyhtcGRfdCAqbmFucmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xZmluYWxpemUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKKworY29uc3QgY2hhciAqIG1wZF9jbGFzcyhjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4KTsKKworaW50IG1wZF9xY29weShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgIHVpbnQzMl90ICpzdGF0dXMpOworbXBkX3QgKm1wZF9xbmNvcHkoY29uc3QgbXBkX3QgKmEpOworaW50IG1wZF9xY29weV9hYnMobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90ICpzdGF0dXMpOworaW50IG1wZF9xY29weV9uZWdhdGUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90ICpzdGF0dXMpOworaW50IG1wZF9xY29weV9zaWduKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgdWludDMyX3QgKnN0YXR1cyk7CisKK3ZvaWQgbXBkX3FhbmQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWludmVydChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3Fsb2diKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcW9yKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FzY2FsZWIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXhvcihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7CitpbnQgbXBkX3NhbWVfcXVhbnR1bShjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIpOworCit2b2lkIG1wZF9xcm90YXRlKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK2ludCBtcGRfcXNoaWZ0bChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgbiwgdWludDMyX3QgKnN0YXR1cyk7CittcGRfdWludF90IG1wZF9xc2hpZnRyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfc3NpemVfdCBuLCB1aW50MzJfdCAqc3RhdHVzKTsKK21wZF91aW50X3QgbXBkX3FzaGlmdHJfaW5wbGFjZShtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBuKTsKK3ZvaWQgbXBkX3FzaGlmdChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xc2hpZnRuKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfc3NpemVfdCBuLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworCitpbnQgbXBkX3FjbXAoY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCB1aW50MzJfdCAqc3RhdHVzKTsKK2ludCBtcGRfcWNvbXBhcmUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworaW50IG1wZF9xY29tcGFyZV9zaWduYWwobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworaW50IG1wZF9jbXBfdG90YWwoY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiKTsKK2ludCBtcGRfY21wX3RvdGFsX21hZyhjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIpOworaW50IG1wZF9jb21wYXJlX3RvdGFsKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYik7CitpbnQgbXBkX2NvbXBhcmVfdG90YWxfbWFnKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYik7CisKK3ZvaWQgbXBkX3Fyb3VuZF90b19pbnR4KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXJvdW5kX3RvX2ludChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3F0cnVuYyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FmbG9vcihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FjZWlsKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworCit2b2lkIG1wZF9xYWJzKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcW1heChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xbWF4X21hZyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xbWluKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FtaW5fbWFnKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FtaW51cyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FwbHVzKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcW5leHRfbWludXMobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xbmV4dF9wbHVzKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcW5leHRfdG93YXJkKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FxdWFudGl6ZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xcmVzY2FsZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgZXhwLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXJlc2NhbGVfZm10KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfc3NpemVfdCBleHAsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xcmVkdWNlKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWFkZChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xYWRkX3NzaXplKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfc3NpemVfdCBiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWFkZF9pMzIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDMyX3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FhZGRfdWludChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3VpbnRfdCBiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWFkZF91MzIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90IGIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xc3ViKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FzdWJfc3NpemUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9zc2l6ZV90IGIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xc3ViX2kzMihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgaW50MzJfdCBiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXN1Yl91aW50KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfdWludF90IGIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xc3ViX3UzMihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgdWludDMyX3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FtdWwobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcW11bF9zc2l6ZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FtdWxfaTMyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBpbnQzMl90IGIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xbXVsX3VpbnQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF91aW50X3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FtdWxfdTMyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50MzJfdCBiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWZtYShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIGNvbnN0IG1wZF90ICpjLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWRpdihtcGRfdCAqcSwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWRpdl9zc2l6ZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FkaXZfaTMyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBpbnQzMl90IGIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xZGl2X3VpbnQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF91aW50X3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FkaXZfdTMyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50MzJfdCBiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWRpdmludChtcGRfdCAqcSwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXJlbShtcGRfdCAqciwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXJlbV9uZWFyKG1wZF90ICpyLCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xZGl2bW9kKG1wZF90ICpxLCBtcGRfdCAqciwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXBvdyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYmFzZSwgY29uc3QgbXBkX3QgKmV4cCwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3Fwb3dtb2QobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmJhc2UsIGNvbnN0IG1wZF90ICpleHAsIGNvbnN0IG1wZF90ICptb2QsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xZXhwKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWxuMTAobXBkX3QgKnJlc3VsdCwgbXBkX3NzaXplX3QgcHJlYywgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xbG4obXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xbG9nMTAobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xc3FydChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FpbnZyb290KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworCisKK3NpemVfdCBtcGRfc2l6ZWluYmFzZShjb25zdCBtcGRfdCAqYSwgdWludDMyX3QgYmFzZSk7Cit2b2lkIG1wZF9xaW1wb3J0X3UxNihtcGRfdCAqcmVzdWx0LCBjb25zdCB1aW50MTZfdCAqc3JjZGF0YSwgc2l6ZV90IHNyY2xlbiwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc3Jjc2lnbiwgdWludDMyX3Qgc3JjYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7Cit2b2lkIG1wZF9xaW1wb3J0X3UzMihtcGRfdCAqcmVzdWx0LCBjb25zdCB1aW50MzJfdCAqc3JjZGF0YSwgc2l6ZV90IHNyY2xlbiwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc3Jjc2lnbiwgdWludDMyX3Qgc3JjYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7CitzaXplX3QgbXBkX3FleHBvcnRfdTE2KHVpbnQxNl90ICoqcmRhdGEsIHNpemVfdCBybGVuLCB1aW50MzJfdCBiYXNlLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBtcGRfdCAqc3JjLCB1aW50MzJfdCAqc3RhdHVzKTsKK3NpemVfdCBtcGRfcWV4cG9ydF91MzIodWludDMyX3QgKipyZGF0YSwgc2l6ZV90IHJsZW4sIHVpbnQzMl90IGJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1wZF90ICpzcmMsIHVpbnQzMl90ICpzdGF0dXMpOworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFNpZ25hbGxpbmcgZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworY2hhciAqIG1wZF9mb3JtYXQoY29uc3QgbXBkX3QgKmRlYywgY29uc3QgY2hhciAqZm10LCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfaW1wb3J0X3UxNihtcGRfdCAqcmVzdWx0LCBjb25zdCB1aW50MTZfdCAqc3JjZGF0YSwgc2l6ZV90IHNyY2xlbiwgdWludDhfdCBzcmNzaWduLCB1aW50MzJfdCBiYXNlLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfaW1wb3J0X3UzMihtcGRfdCAqcmVzdWx0LCBjb25zdCB1aW50MzJfdCAqc3JjZGF0YSwgc2l6ZV90IHNyY2xlbiwgdWludDhfdCBzcmNzaWduLCB1aW50MzJfdCBiYXNlLCBtcGRfY29udGV4dF90ICpjdHgpOworc2l6ZV90IG1wZF9leHBvcnRfdTE2KHVpbnQxNl90ICoqcmRhdGEsIHNpemVfdCBybGVuLCB1aW50MzJfdCBiYXNlLCBjb25zdCBtcGRfdCAqc3JjLCBtcGRfY29udGV4dF90ICpjdHgpOworc2l6ZV90IG1wZF9leHBvcnRfdTMyKHVpbnQzMl90ICoqcmRhdGEsIHNpemVfdCBybGVuLCB1aW50MzJfdCBiYXNlLCBjb25zdCBtcGRfdCAqc3JjLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfZmluYWxpemUobXBkX3QgKnJlc3VsdCwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK2ludCBtcGRfY2hlY2tfbmFuKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOworaW50IG1wZF9jaGVja19uYW5zKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX3NldF9zdHJpbmcobXBkX3QgKnJlc3VsdCwgY29uc3QgY2hhciAqcywgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX21heGNvZWZmKG1wZF90ICpyZXN1bHQsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9zc2V0X3NzaXplKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IGEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9zc2V0X2kzMihtcGRfdCAqcmVzdWx0LCBpbnQzMl90IGEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9zc2V0X3VpbnQobXBkX3QgKnJlc3VsdCwgbXBkX3VpbnRfdCBhLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfc3NldF91MzIobXBkX3QgKnJlc3VsdCwgdWludDMyX3QgYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX3NldF9zc2l6ZShtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBhLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfc2V0X2kzMihtcGRfdCAqcmVzdWx0LCBpbnQzMl90IGEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9zZXRfdWludChtcGRfdCAqcmVzdWx0LCBtcGRfdWludF90IGEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9zZXRfdTMyKG1wZF90ICpyZXN1bHQsIHVpbnQzMl90IGEsIG1wZF9jb250ZXh0X3QgKmN0eCk7CisjaWZuZGVmIExFR0FDWV9DT01QSUxFUgordm9pZCBtcGRfc2V0X2k2NChtcGRfdCAqcmVzdWx0LCBpbnQ2NF90IGEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9zZXRfdTY0KG1wZF90ICpyZXN1bHQsIHVpbnQ2NF90IGEsIG1wZF9jb250ZXh0X3QgKmN0eCk7CisjZW5kaWYKK21wZF9zc2l6ZV90IG1wZF9nZXRfc3NpemUoY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7CittcGRfdWludF90IG1wZF9nZXRfdWludChjb25zdCBtcGRfdCAqYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK21wZF91aW50X3QgbXBkX2Fic191aW50KGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfYW5kKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2NvcHkobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9jYW5vbmljYWwobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9jb3B5X2FicyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2NvcHlfbmVnYXRlKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfY29weV9zaWduKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2ludmVydChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2xvZ2IobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9vcihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9yb3RhdGUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfc2NhbGViKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX3NoaWZ0bChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgbiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK21wZF91aW50X3QgbXBkX3NoaWZ0cihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgbiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX3NoaWZ0bihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgbiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX3NoaWZ0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX3hvcihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9hYnMobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7CitpbnQgbXBkX2NtcChjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7CitpbnQgbXBkX2NvbXBhcmUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBtcGRfY29udGV4dF90ICpjdHgpOworaW50IG1wZF9jb21wYXJlX3NpZ25hbChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9hZGQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfYWRkX3NzaXplKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfc3NpemVfdCBiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfYWRkX2kzMihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgaW50MzJfdCBiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfYWRkX3VpbnQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF91aW50X3QgYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2FkZF91MzIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90IGIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9zdWIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfc3ViX3NzaXplKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfc3NpemVfdCBiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfc3ViX2kzMihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgaW50MzJfdCBiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfc3ViX3VpbnQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF91aW50X3QgYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX3N1Yl91MzIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQzMl90IGIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9kaXYobXBkX3QgKnEsIGNvbnN0IG1wZF90ICphLCBjb25zdCBtcGRfdCAqYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2Rpdl9zc2l6ZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2Rpdl9pMzIobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDMyX3QgYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2Rpdl91aW50KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfdWludF90IGIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9kaXZfdTMyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50MzJfdCBiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfZGl2bW9kKG1wZF90ICpxLCBtcGRfdCAqciwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfZGl2aW50KG1wZF90ICpxLCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9leHAobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9mbWEobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBjb25zdCBtcGRfdCAqYywgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2xuKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfbG9nMTAobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9tYXgobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfbWF4X21hZyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9taW4obXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfbWluX21hZyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9taW51cyhtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX211bChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9tdWxfc3NpemUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9zc2l6ZV90IGIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9tdWxfaTMyKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBpbnQzMl90IGIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9tdWxfdWludChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3VpbnRfdCBiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfbXVsX3UzMihtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgdWludDMyX3QgYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX25leHRfbWludXMobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9uZXh0X3BsdXMobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9uZXh0X3Rvd2FyZChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9wbHVzKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfcG93KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICpiYXNlLCBjb25zdCBtcGRfdCAqZXhwLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfcG93bW9kKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICpiYXNlLCBjb25zdCBtcGRfdCAqZXhwLCBjb25zdCBtcGRfdCAqbW9kLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfcXVhbnRpemUobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfcmVzY2FsZShtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX3NzaXplX3QgZXhwLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfcmVkdWNlKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfcmVtKG1wZF90ICpyLCBjb25zdCBtcGRfdCAqYSwgY29uc3QgbXBkX3QgKmIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9yZW1fbmVhcihtcGRfdCAqciwgY29uc3QgbXBkX3QgKmEsIGNvbnN0IG1wZF90ICpiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfcm91bmRfdG9faW50eChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX3JvdW5kX3RvX2ludChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX3RydW5jKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfZmxvb3IobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9jZWlsKG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfc3FydChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2ludnJvb3QobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIG1wZF9jb250ZXh0X3QgKmN0eCk7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIHNwZWNpZmljICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWZkZWYgQ09ORklHXzY0Cit2b2lkIG1wZF9xc3NldF9pNjQobXBkX3QgKnJlc3VsdCwgaW50NjRfdCBhLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXNzZXRfdTY0KG1wZF90ICpyZXN1bHQsIHVpbnQ2NF90IGEsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCwgdWludDMyX3QgKnN0YXR1cyk7CitpbnQ2NF90IG1wZF9xZ2V0X2k2NChjb25zdCBtcGRfdCAqZGVjLCB1aW50MzJfdCAqc3RhdHVzKTsKK3VpbnQ2NF90IG1wZF9xZ2V0X3U2NChjb25zdCBtcGRfdCAqZGVjLCB1aW50MzJfdCAqc3RhdHVzKTsKKwordm9pZCBtcGRfcWFkZF9pNjQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDY0X3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FhZGRfdTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50NjRfdCBiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcXN1Yl9pNjQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDY0X3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FzdWJfdTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50NjRfdCBiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcW11bF9pNjQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDY0X3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FtdWxfdTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50NjRfdCBiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfcWRpdl9pNjQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDY0X3QgYiwgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4LCB1aW50MzJfdCAqc3RhdHVzKTsKK3ZvaWQgbXBkX3FkaXZfdTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50NjRfdCBiLCBjb25zdCBtcGRfY29udGV4dF90ICpjdHgsIHVpbnQzMl90ICpzdGF0dXMpOworCit2b2lkIG1wZF9zc2V0X2k2NChtcGRfdCAqcmVzdWx0LCBpbnQ2NF90IGEsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9zc2V0X3U2NChtcGRfdCAqcmVzdWx0LCB1aW50NjRfdCBhLCBtcGRfY29udGV4dF90ICpjdHgpOworaW50NjRfdCBtcGRfZ2V0X2k2NChjb25zdCBtcGRfdCAqYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3VpbnQ2NF90IG1wZF9nZXRfdTY0KGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOworCit2b2lkIG1wZF9hZGRfaTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBpbnQ2NF90IGIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9hZGRfdTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50NjRfdCBiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfc3ViX2k2NChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgaW50NjRfdCBiLCBtcGRfY29udGV4dF90ICpjdHgpOwordm9pZCBtcGRfc3ViX3U2NChtcGRfdCAqcmVzdWx0LCBjb25zdCBtcGRfdCAqYSwgdWludDY0X3QgYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2Rpdl9pNjQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIGludDY0X3QgYiwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3ZvaWQgbXBkX2Rpdl91NjQobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEsIHVpbnQ2NF90IGIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9tdWxfaTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCBpbnQ2NF90IGIsIG1wZF9jb250ZXh0X3QgKmN0eCk7Cit2b2lkIG1wZF9tdWxfdTY0KG1wZF90ICpyZXN1bHQsIGNvbnN0IG1wZF90ICphLCB1aW50NjRfdCBiLCBtcGRfY29udGV4dF90ICpjdHgpOworI2Vsc2UKK2ludDMyX3QgbXBkX3FnZXRfaTMyKGNvbnN0IG1wZF90ICpkZWMsIHVpbnQzMl90ICpzdGF0dXMpOwordWludDMyX3QgbXBkX3FnZXRfdTMyKGNvbnN0IG1wZF90ICpkZWMsIHVpbnQzMl90ICpzdGF0dXMpOworaW50MzJfdCBtcGRfZ2V0X2kzMihjb25zdCBtcGRfdCAqYSwgbXBkX2NvbnRleHRfdCAqY3R4KTsKK3VpbnQzMl90IG1wZF9nZXRfdTMyKGNvbnN0IG1wZF90ICphLCBtcGRfY29udGV4dF90ICpjdHgpOworI2VuZGlmCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICBHZXQgYXR0cmlidXRlcyBvZiBhIGRlY2ltYWwgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitFWFRJTkxJTkUgbXBkX3NzaXplX3QgbXBkX2FkamV4cChjb25zdCBtcGRfdCAqZGVjKTsKK0VYVElOTElORSBtcGRfc3NpemVfdCBtcGRfZXRpbnkoY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4KTsKK0VYVElOTElORSBtcGRfc3NpemVfdCBtcGRfZXRvcChjb25zdCBtcGRfY29udGV4dF90ICpjdHgpOworRVhUSU5MSU5FIG1wZF91aW50X3QgbXBkX21zd29yZChjb25zdCBtcGRfdCAqZGVjKTsKK0VYVElOTElORSBpbnQgbXBkX3dvcmRfZGlnaXRzKG1wZF91aW50X3Qgd29yZCk7CisvKiBtb3N0IHNpZ25pZmljYW50IGRpZ2l0IG9mIGEgd29yZCAqLworRVhUSU5MSU5FIG1wZF91aW50X3QgbXBkX21zZChtcGRfdWludF90IHdvcmQpOworLyogbGVhc3Qgc2lnbmlmaWNhbnQgZGlnaXQgb2YgYSB3b3JkICovCitFWFRJTkxJTkUgbXBkX3VpbnRfdCBtcGRfbHNkKG1wZF91aW50X3Qgd29yZCk7CisvKiBjb2VmZmljaWVudCBzaXplIG5lZWRlZCB0byBzdG9yZSAnZGlnaXRzJyAqLworRVhUSU5MSU5FIG1wZF9zc2l6ZV90IG1wZF9kaWdpdHNfdG9fc2l6ZShtcGRfc3NpemVfdCBkaWdpdHMpOworLyogbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgZXhwb25lbnQsIHVuZGVmaW5lZCBmb3IgTVBEX1NTSVpFX01JTiAqLworRVhUSU5MSU5FIGludCBtcGRfZXhwX2RpZ2l0cyhtcGRfc3NpemVfdCBleHApOworRVhUSU5MSU5FIGludCBtcGRfaXNjYW5vbmljYWwoY29uc3QgbXBkX3QgKmRlYyBVTlVTRUQpOworRVhUSU5MSU5FIGludCBtcGRfaXNmaW5pdGUoY29uc3QgbXBkX3QgKmRlYyk7CitFWFRJTkxJTkUgaW50IG1wZF9pc2luZmluaXRlKGNvbnN0IG1wZF90ICpkZWMpOworRVhUSU5MSU5FIGludCBtcGRfaXNpbnRlZ2VyKGNvbnN0IG1wZF90ICpkZWMpOworRVhUSU5MSU5FIGludCBtcGRfaXNuYW4oY29uc3QgbXBkX3QgKmRlYyk7CitFWFRJTkxJTkUgaW50IG1wZF9pc25lZ2F0aXZlKGNvbnN0IG1wZF90ICpkZWMpOworRVhUSU5MSU5FIGludCBtcGRfaXNwb3NpdGl2ZShjb25zdCBtcGRfdCAqZGVjKTsKK0VYVElOTElORSBpbnQgbXBkX2lzcW5hbihjb25zdCBtcGRfdCAqZGVjKTsKK0VYVElOTElORSBpbnQgbXBkX2lzc2lnbmVkKGNvbnN0IG1wZF90ICpkZWMpOworRVhUSU5MSU5FIGludCBtcGRfaXNzbmFuKGNvbnN0IG1wZF90ICpkZWMpOworRVhUSU5MSU5FIGludCBtcGRfaXNzcGVjaWFsKGNvbnN0IG1wZF90ICpkZWMpOworRVhUSU5MSU5FIGludCBtcGRfaXN6ZXJvKGNvbnN0IG1wZF90ICpkZWMpOworLyogdW5kZWZpbmVkIGZvciBzcGVjaWFsIG51bWJlcnMgKi8KK0VYVElOTElORSBpbnQgbXBkX2lzemVyb2NvZWZmKGNvbnN0IG1wZF90ICpkZWMpOworRVhUSU5MSU5FIGludCBtcGRfaXNub3JtYWwoY29uc3QgbXBkX3QgKmRlYywgY29uc3QgbXBkX2NvbnRleHRfdCAqY3R4KTsKK0VYVElOTElORSBpbnQgbXBkX2lzc3Vibm9ybWFsKGNvbnN0IG1wZF90ICpkZWMsIGNvbnN0IG1wZF9jb250ZXh0X3QgKmN0eCk7CisvKiBvZGQgd29yZCAqLworRVhUSU5MSU5FIGludCBtcGRfaXNvZGR3b3JkKG1wZF91aW50X3Qgd29yZCk7CisvKiBvZGQgY29lZmZpY2llbnQgKi8KK0VYVElOTElORSBpbnQgbXBkX2lzb2RkY29lZmYoY29uc3QgbXBkX3QgKmRlYyk7CisvKiBvZGQgZGVjaW1hbCwgb25seSBkZWZpbmVkIGZvciBpbnRlZ2VycyAqLworaW50IG1wZF9pc29kZChjb25zdCBtcGRfdCAqZGVjKTsKKy8qIGV2ZW4gZGVjaW1hbCwgb25seSBkZWZpbmVkIGZvciBpbnRlZ2VycyAqLworaW50IG1wZF9pc2V2ZW4oY29uc3QgbXBkX3QgKmRlYyk7CisvKiAwIGlmIGRlYyBpcyBwb3NpdGl2ZSwgMSBpZiBkZWMgaXMgbmVnYXRpdmUgKi8KK0VYVElOTElORSB1aW50OF90IG1wZF9zaWduKGNvbnN0IG1wZF90ICpkZWMpOworLyogMSBpZiBkZWMgaXMgcG9zaXRpdmUsIC0xIGlmIGRlYyBpcyBuZWdhdGl2ZSAqLworRVhUSU5MSU5FIGludCBtcGRfYXJpdGhfc2lnbihjb25zdCBtcGRfdCAqZGVjKTsKK0VYVElOTElORSBsb25nIG1wZF9yYWRpeCh2b2lkKTsKK0VYVElOTElORSBpbnQgbXBkX2lzZHluYW1pYyhtcGRfdCAqZGVjKTsKK0VYVElOTElORSBpbnQgbXBkX2lzc3RhdGljKG1wZF90ICpkZWMpOworRVhUSU5MSU5FIGludCBtcGRfaXNkeW5hbWljX2RhdGEobXBkX3QgKmRlYyk7CitFWFRJTkxJTkUgaW50IG1wZF9pc3N0YXRpY19kYXRhKG1wZF90ICpkZWMpOworRVhUSU5MSU5FIGludCBtcGRfaXNzaGFyZWRfZGF0YShtcGRfdCAqZGVjKTsKK0VYVElOTElORSBpbnQgbXBkX2lzY29uc3RfZGF0YShtcGRfdCAqZGVjKTsKK0VYVElOTElORSBtcGRfc3NpemVfdCBtcGRfdHJhaWxfemVyb3MoY29uc3QgbXBkX3QgKmRlYyk7CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICBTZXQgYXR0cmlidXRlcyBvZiBhIGRlY2ltYWwgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBzZXQgbnVtYmVyIG9mIGRlY2ltYWwgZGlnaXRzIGluIHRoZSBjb2VmZmljaWVudCAqLworRVhUSU5MSU5FIHZvaWQgbXBkX3NldGRpZ2l0cyhtcGRfdCAqcmVzdWx0KTsKK0VYVElOTElORSB2b2lkIG1wZF9zZXRfc2lnbihtcGRfdCAqcmVzdWx0LCB1aW50OF90IHNpZ24pOworLyogY29weSBzaWduIGZyb20gYW5vdGhlciBkZWNpbWFsICovCitFWFRJTkxJTkUgdm9pZCBtcGRfc2lnbmNweShtcGRfdCAqcmVzdWx0LCBtcGRfdCAqYSk7CitFWFRJTkxJTkUgdm9pZCBtcGRfc2V0X2luZmluaXR5KG1wZF90ICpyZXN1bHQpOworRVhUSU5MSU5FIHZvaWQgbXBkX3NldF9xbmFuKG1wZF90ICpyZXN1bHQpOworRVhUSU5MSU5FIHZvaWQgbXBkX3NldF9zbmFuKG1wZF90ICpyZXN1bHQpOworRVhUSU5MSU5FIHZvaWQgbXBkX3NldF9uZWdhdGl2ZShtcGRfdCAqcmVzdWx0KTsKK0VYVElOTElORSB2b2lkIG1wZF9zZXRfcG9zaXRpdmUobXBkX3QgKnJlc3VsdCk7CitFWFRJTkxJTkUgdm9pZCBtcGRfc2V0X2R5bmFtaWMobXBkX3QgKnJlc3VsdCk7CitFWFRJTkxJTkUgdm9pZCBtcGRfc2V0X3N0YXRpYyhtcGRfdCAqcmVzdWx0KTsKK0VYVElOTElORSB2b2lkIG1wZF9zZXRfZHluYW1pY19kYXRhKG1wZF90ICpyZXN1bHQpOworRVhUSU5MSU5FIHZvaWQgbXBkX3NldF9zdGF0aWNfZGF0YShtcGRfdCAqcmVzdWx0KTsKK0VYVElOTElORSB2b2lkIG1wZF9zZXRfc2hhcmVkX2RhdGEobXBkX3QgKnJlc3VsdCk7CitFWFRJTkxJTkUgdm9pZCBtcGRfc2V0X2NvbnN0X2RhdGEobXBkX3QgKnJlc3VsdCk7CitFWFRJTkxJTkUgdm9pZCBtcGRfY2xlYXJfZmxhZ3MobXBkX3QgKnJlc3VsdCk7CitFWFRJTkxJTkUgdm9pZCBtcGRfc2V0X2ZsYWdzKG1wZF90ICpyZXN1bHQsIHVpbnQ4X3QgZmxhZ3MpOworRVhUSU5MSU5FIHZvaWQgbXBkX2NvcHlfZmxhZ3MobXBkX3QgKnJlc3VsdCwgY29uc3QgbXBkX3QgKmEpOworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yIE1hY3JvcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBtcGRfZXJyX2ZhdGFsKC4uLikgXAorICAgIGRvIHtmcHJpbnRmKHN0ZGVyciwgIiVzOiVkOiBlcnJvcjogIiwgX19GSUxFX18sIF9fTElORV9fKTsgXAorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgX19WQV9BUkdTX18pOyAgZnB1dGMoJ1xuJywgc3RkZXJyKTsgICAgXAorICAgICAgICBhYm9ydCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIG1wZF9lcnJfd2FybiguLi4pIFwKKyAgICBkbyB7ZnByaW50ZihzdGRlcnIsICIlczolZDogd2FybmluZzogIiwgX19GSUxFX18sIF9fTElORV9fKTsgXAorICAgICAgICBmcHJpbnRmKHN0ZGVyciwgX19WQV9BUkdTX18pOyBmcHV0YygnXG4nLCBzdGRlcnIpOyAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5IGhhbmRsaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK2V4dGVybiB2b2lkICooKiBtcGRfbWFsbG9jZnVuYykoc2l6ZV90IHNpemUpOworZXh0ZXJuIHZvaWQgKigqIG1wZF9jYWxsb2NmdW5jKShzaXplX3Qgbm1lbWIsIHNpemVfdCBzaXplKTsKK2V4dGVybiB2b2lkICooKiBtcGRfcmVhbGxvY2Z1bmMpKHZvaWQgKnB0ciwgc2l6ZV90IHNpemUpOworZXh0ZXJuIHZvaWQgKCogbXBkX2ZyZWUpKHZvaWQgKnB0cik7CisKK3ZvaWQgKm1wZF9jYWxsb2NmdW5jX2VtKHNpemVfdCBubWVtYiwgc2l6ZV90IHNpemUpOworCit2b2lkICptcGRfYWxsb2MobXBkX3NpemVfdCBubWVtYiwgbXBkX3NpemVfdCBzaXplKTsKK3ZvaWQgKm1wZF9jYWxsb2MobXBkX3NpemVfdCBubWVtYiwgbXBkX3NpemVfdCBzaXplKTsKK3ZvaWQgKm1wZF9yZWFsbG9jKHZvaWQgKnB0ciwgbXBkX3NpemVfdCBubWVtYiwgbXBkX3NpemVfdCBzaXplLCB1aW50OF90ICplcnIpOwordm9pZCAqbXBkX3NoX2FsbG9jKG1wZF9zaXplX3Qgc3RydWN0X3NpemUsIG1wZF9zaXplX3Qgbm1lbWIsIG1wZF9zaXplX3Qgc2l6ZSk7CisKK21wZF90ICptcGRfcW5ldyh2b2lkKTsKK21wZF90ICptcGRfbmV3KG1wZF9jb250ZXh0X3QgKmN0eCk7CittcGRfdCAqbXBkX3FuZXdfc2l6ZShtcGRfc3NpemVfdCBzaXplKTsKK3ZvaWQgbXBkX2RlbChtcGRfdCAqZGVjKTsKKwordm9pZCBtcGRfdWludF96ZXJvKG1wZF91aW50X3QgKmRlc3QsIG1wZF9zaXplX3QgbGVuKTsKK2ludCBtcGRfcXJlc2l6ZShtcGRfdCAqcmVzdWx0LCBtcGRfc3NpemVfdCBzaXplLCB1aW50MzJfdCAqc3RhdHVzKTsKK2ludCBtcGRfcXJlc2l6ZV96ZXJvKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IHNpemUsIHVpbnQzMl90ICpzdGF0dXMpOwordm9pZCBtcGRfbWluYWxsb2MobXBkX3QgKnJlc3VsdCk7CisKK2ludCBtcGRfcmVzaXplKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IHNpemUsIG1wZF9jb250ZXh0X3QgKmN0eCk7CitpbnQgbXBkX3Jlc2l6ZV96ZXJvKG1wZF90ICpyZXN1bHQsIG1wZF9zc2l6ZV90IHNpemUsIG1wZF9jb250ZXh0X3QgKmN0eCk7CisKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9IC8qIEVORCBleHRlcm4gIkMiICovCisjZW5kaWYKKworCisjZW5kaWYgLyogTVBERUNJTUFMX0ggKi8KKworCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvbnVtYmVydGhlb3J5LmMgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL251bWJlcnRoZW9yeS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwY2U2ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL251bWJlcnRoZW9yeS5jCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSAiYml0cy5oIgorI2luY2x1ZGUgInVtb2Rhcml0aC5oIgorI2luY2x1ZGUgIm51bWJlcnRoZW9yeS5oIgorCisKKy8qIEJpZ251bTogSW5pdGlhbGl6ZSB0aGUgTnVtYmVyIFRoZW9yZXRpYyBUcmFuc2Zvcm0uICovCisKKworLyoKKyAqIFJldHVybiB0aGUgbnRoIHJvb3Qgb2YgdW5pdHkgaW4gRihwKS4gVGhpcyBjb3JyZXNwb25kcyB0byBlKiooKDIqcGkqaSkvbikKKyAqIGluIHRoZSBGb3VyaWVyIHRyYW5zZm9ybS4gV2UgaGF2ZSB3KipuID09IDEgKG1vZCBwKS4KKyAqICAgIG4gOj0gdHJhbnNmb3JtIGxlbmd0aC4KKyAqICAgIHNpZ24gOj0gLTEgZm9yIGZvcndhcmQgdHJhbnNmb3JtLCAxIGZvciBiYWNrd2FyZCB0cmFuc2Zvcm0uCisgKiAgICBtb2RudW0gOj0gb25lIG9mIHtQMSwgUDIsIFAzfS4KKyAqLworbXBkX3VpbnRfdAorX21wZF9nZXRrZXJuZWwobXBkX3VpbnRfdCBuLCBpbnQgc2lnbiwgaW50IG1vZG51bSkKK3sKKyAgICBtcGRfdWludF90IHVtb2QsIHAsIHIsIHhpOworI2lmZGVmIFBQUk8KKyAgICBkb3VibGUgZG1vZDsKKyAgICB1aW50MzJfdCBkaW52bW9kWzNdOworI2VuZGlmCisKKyAgICBTRVRNT0RVTFVTKG1vZG51bSk7CisgICAgciA9IG1wZF9yb290c1ttb2RudW1dOyAvKiBwcmltaXRpdmUgcm9vdCBvZiBGKHApICovCisgICAgcCA9IHVtb2Q7CisgICAgeGkgPSAocC0xKSAvIG47CisKKyAgICBpZiAoc2lnbiA9PSAtMSkKKyAgICAgICAgcmV0dXJuIFBPV01PRChyLCAocC0xLXhpKSk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUE9XTU9EKHIsIHhpKTsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYW5kIHJldHVybiB0cmFuc2Zvcm0gcGFyYW1ldGVycy4KKyAqICAgIG4gOj0gdHJhbnNmb3JtIGxlbmd0aC4KKyAqICAgIHNpZ24gOj0gLTEgZm9yIGZvcndhcmQgdHJhbnNmb3JtLCAxIGZvciBiYWNrd2FyZCB0cmFuc2Zvcm0uCisgKiAgICBtb2RudW0gOj0gb25lIG9mIHtQMSwgUDIsIFAzfS4KKyAqLworc3RydWN0IGZudF9wYXJhbXMgKgorX21wZF9pbml0X2ZudF9wYXJhbXMobXBkX3NpemVfdCBuLCBpbnQgc2lnbiwgaW50IG1vZG51bSkKK3sKKyAgICBzdHJ1Y3QgZm50X3BhcmFtcyAqdHBhcmFtczsKKyAgICBtcGRfdWludF90IHVtb2Q7CisjaWZkZWYgUFBSTworICAgIGRvdWJsZSBkbW9kOworICAgIHVpbnQzMl90IGRpbnZtb2RbM107CisjZW5kaWYKKyAgICBtcGRfdWludF90IGtlcm5lbCwgdzsKKyAgICBtcGRfdWludF90IGk7CisgICAgbXBkX3NpemVfdCBuaGFsZjsKKworICAgIGFzc2VydChpc3Bvd2VyMihuKSk7CisgICAgYXNzZXJ0KHNpZ24gPT0gLTEgfHwgc2lnbiA9PSAxKTsKKyAgICBhc3NlcnQoUDEgPD0gbW9kbnVtICYmIG1vZG51bSA8PSBQMyk7CisKKyAgICBuaGFsZiA9IG4vMjsKKyAgICB0cGFyYW1zID0gbXBkX3NoX2FsbG9jKHNpemVvZiAqdHBhcmFtcywgbmhhbGYsIHNpemVvZiAobXBkX3VpbnRfdCkpOworICAgIGlmICh0cGFyYW1zID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgU0VUTU9EVUxVUyhtb2RudW0pOworICAgIGtlcm5lbCA9IF9tcGRfZ2V0a2VybmVsKG4sIHNpZ24sIG1vZG51bSk7CisKKyAgICB0cGFyYW1zLT5tb2RudW0gPSBtb2RudW07CisgICAgdHBhcmFtcy0+bW9kdWx1cyA9IHVtb2Q7CisgICAgdHBhcmFtcy0+a2VybmVsID0ga2VybmVsOworCisgICAgLyogd3RhYmxlW10gOj0gdyoqMCwgdyoqMSwgLi4uLCB3KioobmhhbGYtMSkgKi8KKyAgICB3ID0gMTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbmhhbGY7IGkrKykgeworICAgICAgICB0cGFyYW1zLT53dGFibGVbaV0gPSB3OworICAgICAgICB3ID0gTVVMTU9EKHcsIGtlcm5lbCk7CisgICAgfQorCisgICAgcmV0dXJuIHRwYXJhbXM7Cit9CisKKy8qIEluaXRpYWxpemUgd3RhYmxlIG9mIHNpemUgdGhyZWUuICovCit2b2lkCitfbXBkX2luaXRfdzN0YWJsZShtcGRfdWludF90IHczdGFibGVbM10sIGludCBzaWduLCBpbnQgbW9kbnVtKQoreworICAgIG1wZF91aW50X3QgdW1vZDsKKyNpZmRlZiBQUFJPCisgICAgZG91YmxlIGRtb2Q7CisgICAgdWludDMyX3QgZGludm1vZFszXTsKKyNlbmRpZgorICAgIG1wZF91aW50X3Qga2VybmVsOworCisgICAgU0VUTU9EVUxVUyhtb2RudW0pOworICAgIGtlcm5lbCA9IF9tcGRfZ2V0a2VybmVsKDMsIHNpZ24sIG1vZG51bSk7CisKKyAgICB3M3RhYmxlWzBdID0gMTsKKyAgICB3M3RhYmxlWzFdID0ga2VybmVsOworICAgIHczdGFibGVbMl0gPSBQT1dNT0Qoa2VybmVsLCAyKTsKK30KKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL251bWJlcnRoZW9yeS5oIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9udW1iZXJ0aGVvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTRkMTFkCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9udW1iZXJ0aGVvcnkuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIE5VTUJFUl9USEVPUllfSAorI2RlZmluZSBOVU1CRVJfVEhFT1JZX0gKKworCisjaW5jbHVkZSAiY29uc3RhbnRzLmgiCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisKKworLyogdHJhbnNmb3JtIHBhcmFtZXRlcnMgKi8KK3N0cnVjdCBmbnRfcGFyYW1zIHsKKyAgICBpbnQgbW9kbnVtOworICAgIG1wZF91aW50X3QgbW9kdWx1czsKKyAgICBtcGRfdWludF90IGtlcm5lbDsKKyAgICBtcGRfdWludF90IHd0YWJsZVtdOworfTsKKworCittcGRfdWludF90IF9tcGRfZ2V0a2VybmVsKG1wZF91aW50X3QgbiwgaW50IHNpZ24sIGludCBtb2RudW0pOworc3RydWN0IGZudF9wYXJhbXMgKl9tcGRfaW5pdF9mbnRfcGFyYW1zKG1wZF9zaXplX3QgbiwgaW50IHNpZ24sIGludCBtb2RudW0pOwordm9pZCBfbXBkX2luaXRfdzN0YWJsZShtcGRfdWludF90IHczdGFibGVbM10sIGludCBzaWduLCBpbnQgbW9kbnVtKTsKKworCisjaWZkZWYgUFBSTworc3RhdGljIGlubGluZSB2b2lkCitwcHJvX3NldG1vZHVsdXMoaW50IG1vZG51bSwgbXBkX3VpbnRfdCAqdW1vZCwgZG91YmxlICpkbW9kLCB1aW50MzJfdCBkaW52bW9kWzNdKQoreworICAgICpkbW9kID0gKnVtb2QgPSAgbXBkX21vZHVsaVttb2RudW1dOworICAgIGRpbnZtb2RbMF0gPSBtcGRfaW52bW9kdWxpW21vZG51bV1bMF07CisgICAgZGludm1vZFsxXSA9IG1wZF9pbnZtb2R1bGlbbW9kbnVtXVsxXTsKKyAgICBkaW52bW9kWzJdID0gbXBkX2ludm1vZHVsaVttb2RudW1dWzJdOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZAorc3RkX3NldG1vZHVsdXMoaW50IG1vZG51bSwgbXBkX3VpbnRfdCAqdW1vZCkKK3sKKyAgICAqdW1vZCA9ICBtcGRfbW9kdWxpW21vZG51bV07Cit9CisjZW5kaWYKKworCisjZW5kaWYKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL3NpeHN0ZXAuYyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvc2l4c3RlcC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdkMDU0MmQKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL3NpeHN0ZXAuYwpAQCAtMCwwICsxLDIxNCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8YXNzZXJ0Lmg+CisjaW5jbHVkZSAiYml0cy5oIgorI2luY2x1ZGUgImRpZnJhZGl4Mi5oIgorI2luY2x1ZGUgIm51bWJlcnRoZW9yeS5oIgorI2luY2x1ZGUgInRyYW5zcG9zZS5oIgorI2luY2x1ZGUgInVtb2Rhcml0aC5oIgorI2luY2x1ZGUgInNpeHN0ZXAuaCIKKworCisvKiBCaWdudW06IENhY2hlIGVmZmljaWVudCBNYXRyaXggRm91cmllciBUcmFuc2Zvcm0gZm9yIGFycmF5cyBvZiB0aGUKKyAgIGZvcm0gMioqbiAoU2VlIGxpdGVyYXR1cmUvc2l4LXN0ZXAudHh0KS4gKi8KKworCisvKiBmb3J3YXJkIHRyYW5zZm9ybSB3aXRoIHNpZ24gPSAtMSAqLworaW50CitzaXhfc3RlcF9mbnQobXBkX3VpbnRfdCAqYSwgbXBkX3NpemVfdCBuLCBpbnQgbW9kbnVtKQoreworICAgIHN0cnVjdCBmbnRfcGFyYW1zICp0cGFyYW1zOworICAgIG1wZF9zaXplX3QgbG9nMm4sIEMsIFI7CisgICAgbXBkX3VpbnRfdCBrZXJuZWw7CisgICAgbXBkX3VpbnRfdCB1bW9kOworI2lmZGVmIFBQUk8KKyAgICBkb3VibGUgZG1vZDsKKyAgICB1aW50MzJfdCBkaW52bW9kWzNdOworI2VuZGlmCisgICAgbXBkX3VpbnRfdCAqeCwgdzAsIHcxLCB3c3RlcDsKKyAgICBtcGRfc2l6ZV90IGksIGs7CisKKworICAgIGFzc2VydChpc3Bvd2VyMihuKSk7CisgICAgYXNzZXJ0KG4gPj0gMTYpOworICAgIGFzc2VydChuIDw9IE1QRF9NQVhUUkFOU0ZPUk1fMk4pOworCisgICAgbG9nMm4gPSBtcGRfYnNyKG4pOworICAgIEMgPSAoKG1wZF9zaXplX3QpMSkgPDwgKGxvZzJuIC8gMik7ICAvKiBudW1iZXIgb2YgY29sdW1ucyAqLworICAgIFIgPSAoKG1wZF9zaXplX3QpMSkgPDwgKGxvZzJuIC0gKGxvZzJuIC8gMikpOyAvKiBudW1iZXIgb2Ygcm93cyAqLworCisKKyAgICAvKiBUcmFuc3Bvc2UgdGhlIG1hdHJpeC4gKi8KKyAgICBpZiAoIXRyYW5zcG9zZV9wb3cyKGEsIFIsIEMpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qIExlbmd0aCBSIHRyYW5zZm9ybSBvbiB0aGUgcm93cy4gKi8KKyAgICBpZiAoKHRwYXJhbXMgPSBfbXBkX2luaXRfZm50X3BhcmFtcyhSLCAtMSwgbW9kbnVtKSkgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZm9yICh4ID0gYTsgeCA8IGErbjsgeCArPSBSKSB7CisgICAgICAgIGZudF9kaWYyKHgsIFIsIHRwYXJhbXMpOworICAgIH0KKworICAgIC8qIFRyYW5zcG9zZSB0aGUgbWF0cml4LiAqLworICAgIGlmICghdHJhbnNwb3NlX3BvdzIoYSwgQywgUikpIHsKKyAgICAgICAgbXBkX2ZyZWUodHBhcmFtcyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIC8qIE11bHRpcGx5IGVhY2ggbWF0cml4IGVsZW1lbnQgKGFkZHJlc3NlZCBieSBpKkMraykgYnkgcioqKGkqaykuICovCisgICAgU0VUTU9EVUxVUyhtb2RudW0pOworICAgIGtlcm5lbCA9IF9tcGRfZ2V0a2VybmVsKG4sIC0xLCBtb2RudW0pOworICAgIGZvciAoaSA9IDE7IGkgPCBSOyBpKyspIHsKKyAgICAgICAgdzAgPSAxOyAgICAgICAgICAgICAgICAgIC8qIHIqKihpKjApOiBpbml0aWFsIHZhbHVlIGZvciBrPTAgKi8KKyAgICAgICAgdzEgPSBQT1dNT0Qoa2VybmVsLCBpKTsgIC8qIHIqKihpKjEpOiBpbml0aWFsIHZhbHVlIGZvciBrPTEgKi8KKyAgICAgICAgd3N0ZXAgPSBNVUxNT0QodzEsIHcxKTsgIC8qIHIqKigyKmkpICovCisgICAgICAgIGZvciAoayA9IDA7IGsgPCBDOyBrICs9IDIpIHsKKyAgICAgICAgICAgIG1wZF91aW50X3QgeDAgPSBhW2kqQytrXTsKKyAgICAgICAgICAgIG1wZF91aW50X3QgeDEgPSBhW2kqQytrKzFdOworICAgICAgICAgICAgTVVMTU9EMigmeDAsIHcwLCAmeDEsIHcxKTsKKyAgICAgICAgICAgIE1VTE1PRDJDKCZ3MCwgJncxLCB3c3RlcCk7ICAvKiByKiooaSooaysyKSkgPSByKiooaSprKSAqIHIqKigyKmkpICovCisgICAgICAgICAgICBhW2kqQytrXSA9IHgwOworICAgICAgICAgICAgYVtpKkMraysxXSA9IHgxOworICAgICAgICB9CisgICAgfQorCisgICAgLyogTGVuZ3RoIEMgdHJhbnNmb3JtIG9uIHRoZSByb3dzLiAqLworICAgIGlmIChDICE9IFIpIHsKKyAgICAgICAgbXBkX2ZyZWUodHBhcmFtcyk7CisgICAgICAgIGlmICgodHBhcmFtcyA9IF9tcGRfaW5pdF9mbnRfcGFyYW1zKEMsIC0xLCBtb2RudW0pKSA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICBmb3IgKHggPSBhOyB4IDwgYStuOyB4ICs9IEMpIHsKKyAgICAgICAgZm50X2RpZjIoeCwgQywgdHBhcmFtcyk7CisgICAgfQorICAgIG1wZF9mcmVlKHRwYXJhbXMpOworCisjaWYgMAorICAgIC8qIEFuIHVub3JkZXJlZCB0cmFuc2Zvcm0gaXMgc3VmZmljaWVudCBmb3IgY29udm9sdXRpb24uICovCisgICAgLyogVHJhbnNwb3NlIHRoZSBtYXRyaXguICovCisgICAgaWYgKCF0cmFuc3Bvc2VfcG93MihhLCBSLCBDKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiAxOworfQorCisKKy8qIHJldmVyc2UgdHJhbnNmb3JtLCBzaWduID0gMSAqLworaW50CitpbnZfc2l4X3N0ZXBfZm50KG1wZF91aW50X3QgKmEsIG1wZF9zaXplX3QgbiwgaW50IG1vZG51bSkKK3sKKyAgICBzdHJ1Y3QgZm50X3BhcmFtcyAqdHBhcmFtczsKKyAgICBtcGRfc2l6ZV90IGxvZzJuLCBDLCBSOworICAgIG1wZF91aW50X3Qga2VybmVsOworICAgIG1wZF91aW50X3QgdW1vZDsKKyNpZmRlZiBQUFJPCisgICAgZG91YmxlIGRtb2Q7CisgICAgdWludDMyX3QgZGludm1vZFszXTsKKyNlbmRpZgorICAgIG1wZF91aW50X3QgKngsIHcwLCB3MSwgd3N0ZXA7CisgICAgbXBkX3NpemVfdCBpLCBrOworCisKKyAgICBhc3NlcnQoaXNwb3dlcjIobikpOworICAgIGFzc2VydChuID49IDE2KTsKKyAgICBhc3NlcnQobiA8PSBNUERfTUFYVFJBTlNGT1JNXzJOKTsKKworICAgIGxvZzJuID0gbXBkX2JzcihuKTsKKyAgICBDID0gKChtcGRfc2l6ZV90KTEpIDw8IChsb2cybiAvIDIpOyAvKiBudW1iZXIgb2YgY29sdW1ucyAqLworICAgIFIgPSAoKG1wZF9zaXplX3QpMSkgPDwgKGxvZzJuIC0gKGxvZzJuIC8gMikpOyAvKiBudW1iZXIgb2Ygcm93cyAqLworCisKKyNpZiAwCisgICAgLyogQW4gdW5vcmRlcmVkIHRyYW5zZm9ybSBpcyBzdWZmaWNpZW50IGZvciBjb252b2x1dGlvbi4gKi8KKyAgICAvKiBUcmFuc3Bvc2UgdGhlIG1hdHJpeCwgcHJvZHVjaW5nIGFuIFIqQyBtYXRyaXguICovCisgICAgaWYgKCF0cmFuc3Bvc2VfcG93MihhLCBDLCBSKSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5kaWYKKworICAgIC8qIExlbmd0aCBDIHRyYW5zZm9ybSBvbiB0aGUgcm93cy4gKi8KKyAgICBpZiAoKHRwYXJhbXMgPSBfbXBkX2luaXRfZm50X3BhcmFtcyhDLCAxLCBtb2RudW0pKSA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBmb3IgKHggPSBhOyB4IDwgYStuOyB4ICs9IEMpIHsKKyAgICAgICAgZm50X2RpZjIoeCwgQywgdHBhcmFtcyk7CisgICAgfQorCisgICAgLyogTXVsdGlwbHkgZWFjaCBtYXRyaXggZWxlbWVudCAoYWRkcmVzc2VkIGJ5IGkqQytrKSBieSByKiooaSprKS4gKi8KKyAgICBTRVRNT0RVTFVTKG1vZG51bSk7CisgICAga2VybmVsID0gX21wZF9nZXRrZXJuZWwobiwgMSwgbW9kbnVtKTsKKyAgICBmb3IgKGkgPSAxOyBpIDwgUjsgaSsrKSB7CisgICAgICAgIHcwID0gMTsKKyAgICAgICAgdzEgPSBQT1dNT0Qoa2VybmVsLCBpKTsKKyAgICAgICAgd3N0ZXAgPSBNVUxNT0QodzEsIHcxKTsKKyAgICAgICAgZm9yIChrID0gMDsgayA8IEM7IGsgKz0gMikgeworICAgICAgICAgICAgbXBkX3VpbnRfdCB4MCA9IGFbaSpDK2tdOworICAgICAgICAgICAgbXBkX3VpbnRfdCB4MSA9IGFbaSpDK2srMV07CisgICAgICAgICAgICBNVUxNT0QyKCZ4MCwgdzAsICZ4MSwgdzEpOworICAgICAgICAgICAgTVVMTU9EMkMoJncwLCAmdzEsIHdzdGVwKTsKKyAgICAgICAgICAgIGFbaSpDK2tdID0geDA7CisgICAgICAgICAgICBhW2kqQytrKzFdID0geDE7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBUcmFuc3Bvc2UgdGhlIG1hdHJpeC4gKi8KKyAgICBpZiAoIXRyYW5zcG9zZV9wb3cyKGEsIFIsIEMpKSB7CisgICAgICAgIG1wZF9mcmVlKHRwYXJhbXMpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKiBMZW5ndGggUiB0cmFuc2Zvcm0gb24gdGhlIHJvd3MuICovCisgICAgaWYgKFIgIT0gQykgeworICAgICAgICBtcGRfZnJlZSh0cGFyYW1zKTsKKyAgICAgICAgaWYgKCh0cGFyYW1zID0gX21wZF9pbml0X2ZudF9wYXJhbXMoUiwgMSwgbW9kbnVtKSkgPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgZm9yICh4ID0gYTsgeCA8IGErbjsgeCArPSBSKSB7CisgICAgICAgIGZudF9kaWYyKHgsIFIsIHRwYXJhbXMpOworICAgIH0KKyAgICBtcGRfZnJlZSh0cGFyYW1zKTsKKworICAgIC8qIFRyYW5zcG9zZSB0aGUgbWF0cml4LiAqLworICAgIGlmICghdHJhbnNwb3NlX3BvdzIoYSwgQywgUikpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIDE7Cit9CisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9zaXhzdGVwLmggYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL3NpeHN0ZXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZDI1MWRmCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy9zaXhzdGVwLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBTSVhfU1RFUF9ICisjZGVmaW5lIFNJWF9TVEVQX0gKKworCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisjaW5jbHVkZSA8c3RkaW8uaD4KKworCitpbnQgc2l4X3N0ZXBfZm50KG1wZF91aW50X3QgKmEsIG1wZF9zaXplX3QgbiwgaW50IG1vZG51bSk7CitpbnQgaW52X3NpeF9zdGVwX2ZudChtcGRfdWludF90ICphLCBtcGRfc2l6ZV90IG4sIGludCBtb2RudW0pOworCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy90cmFuc3Bvc2UuYyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvdHJhbnNwb3NlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWU1ZDRiNgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvdHJhbnNwb3NlLmMKQEAgLTAsMCArMSwyNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpbmNsdWRlICJtcGRlY2ltYWwuaCIKKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1ZGUgImJpdHMuaCIKKyNpbmNsdWRlICJjb25zdGFudHMuaCIKKyNpbmNsdWRlICJ0eXBlYXJpdGguaCIKKyNpbmNsdWRlICJ0cmFuc3Bvc2UuaCIKKworCisjZGVmaW5lIEJVRlNJWkUgNDA5NgorI2RlZmluZSBTSURFIDEyOAorCisKKy8qIEJpZ251bTogVGhlIHRyYW5zcG9zZSBmdW5jdGlvbnMgYXJlIHVzZWQgZm9yIHZlcnkgbGFyZ2UgdHJhbnNmb3JtcworICAgaW4gc2l4c3RlcC5jIGFuZCBmb3Vyc3RlcC5jLiAqLworCisKKy8qIERlZmluaXRpb24gb2YgdGhlIG1hdHJpeCB0cmFuc3Bvc2UgKi8KK3ZvaWQKK3N0ZF90cmFucyhtcGRfdWludF90IGRlc3RbXSwgbXBkX3VpbnRfdCBzcmNbXSwgbXBkX3NpemVfdCByb3dzLCBtcGRfc2l6ZV90IGNvbHMpCit7CisgICAgbXBkX3NpemVfdCBpZGVzdCwgaXNyYzsKKyAgICBtcGRfc2l6ZV90IHIsIGM7CisKKyAgICBmb3IgKHIgPSAwOyByIDwgcm93czsgcisrKSB7CisgICAgICAgIGlzcmMgPSByICogY29sczsKKyAgICAgICAgaWRlc3QgPSByOworICAgICAgICBmb3IgKGMgPSAwOyBjIDwgY29sczsgYysrKSB7CisgICAgICAgICAgICBkZXN0W2lkZXN0XSA9IHNyY1tpc3JjXTsKKyAgICAgICAgICAgIGlzcmMgKz0gMTsKKyAgICAgICAgICAgIGlkZXN0ICs9IHJvd3M7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBTd2FwIGhhbGYtcm93cyBvZiAyXm4gKiAoMioyXm4pIG1hdHJpeC4KKyAqIEZPUldBUkRfQ1lDTEU6IGV2ZW4vb2RkIHBlcm11dGF0aW9uIG9mIHRoZSBoYWxmcm93cy4KKyAqIEJBQ0tXQVJEX0NZQ0xFOiByZXZlcnNlIHRoZSBldmVuL29kZCBwZXJtdXRhdGlvbi4KKyAqLworc3RhdGljIGludAorc3dhcF9oYWxmcm93c19wb3cyKG1wZF91aW50X3QgKm1hdHJpeCwgbXBkX3NpemVfdCByb3dzLCBtcGRfc2l6ZV90IGNvbHMsIGludCBkaXIpCit7CisgICAgbXBkX3VpbnRfdCBidWYxW0JVRlNJWkVdOworICAgIG1wZF91aW50X3QgYnVmMltCVUZTSVpFXTsKKyAgICBtcGRfdWludF90ICpyZWFkYnVmLCAqd3JpdGVidWYsICpocDsKKyAgICBtcGRfc2l6ZV90ICpkb25lLCBkYml0czsKKyAgICBtcGRfc2l6ZV90IGIgPSBCVUZTSVpFLCBzdHJpZGU7CisgICAgbXBkX3NpemVfdCBobiwgaG1heDsgLyogaGFsZnJvdyBudW1iZXIgKi8KKyAgICBtcGRfc2l6ZV90IG0sIHI9MDsKKyAgICBtcGRfc2l6ZV90IG9mZnNldDsKKyAgICBtcGRfc2l6ZV90IG5leHQ7CisKKworICAgIGFzc2VydChjb2xzID09IG11bF9zaXplX3QoMiwgcm93cykpOworCisgICAgaWYgKGRpciA9PSBGT1JXQVJEX0NZQ0xFKSB7CisgICAgICAgIHIgPSByb3dzOworICAgIH0KKyAgICBlbHNlIGlmIChkaXIgPT0gQkFDS1dBUkRfQ1lDTEUpIHsKKyAgICAgICAgciA9IDI7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBhYm9ydCgpOyAvKiBHQ09WX05PVF9SRUFDSEVEICovCisgICAgfQorCisgICAgbSA9IGNvbHMgLSAxOworICAgIGhtYXggPSByb3dzOyAvKiBjeWNsZXMgc3RhcnQgYXQgb2RkIGhhbGZyb3dzICovCisgICAgZGJpdHMgPSA4ICogc2l6ZW9mICpkb25lOworICAgIGlmICgoZG9uZSA9IG1wZF9jYWxsb2MoaG1heC8oc2l6ZW9mICpkb25lKSArIDEsIHNpemVvZiAqZG9uZSkpID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgZm9yIChobiA9IDE7IGhuIDw9IGhtYXg7IGhuICs9IDIpIHsKKworICAgICAgICBpZiAoZG9uZVtobi9kYml0c10gJiBtcGRfYml0c1tobiVkYml0c10pIHsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgcmVhZGJ1ZiA9IGJ1ZjE7IHdyaXRlYnVmID0gYnVmMjsKKworICAgICAgICBmb3IgKG9mZnNldCA9IDA7IG9mZnNldCA8IGNvbHMvMjsgb2Zmc2V0ICs9IGIpIHsKKworICAgICAgICAgICAgc3RyaWRlID0gKG9mZnNldCArIGIgPCBjb2xzLzIpID8gYiA6IGNvbHMvMi1vZmZzZXQ7CisKKyAgICAgICAgICAgIGhwID0gbWF0cml4ICsgaG4qY29scy8yOworICAgICAgICAgICAgbWVtY3B5KHJlYWRidWYsIGhwK29mZnNldCwgc3RyaWRlKihzaXplb2YgKnJlYWRidWYpKTsKKyAgICAgICAgICAgIHBvaW50ZXJzd2FwKCZyZWFkYnVmLCAmd3JpdGVidWYpOworCisgICAgICAgICAgICBuZXh0ID0gbXVsbW9kX3NpemVfdChobiwgciwgbSk7CisgICAgICAgICAgICBocCA9IG1hdHJpeCArIG5leHQqY29scy8yOworCisgICAgICAgICAgICB3aGlsZSAobmV4dCAhPSBobikgeworCisgICAgICAgICAgICAgICAgbWVtY3B5KHJlYWRidWYsIGhwK29mZnNldCwgc3RyaWRlKihzaXplb2YgKnJlYWRidWYpKTsKKyAgICAgICAgICAgICAgICBtZW1jcHkoaHArb2Zmc2V0LCB3cml0ZWJ1Ziwgc3RyaWRlKihzaXplb2YgKndyaXRlYnVmKSk7CisgICAgICAgICAgICAgICAgcG9pbnRlcnN3YXAoJnJlYWRidWYsICZ3cml0ZWJ1Zik7CisKKyAgICAgICAgICAgICAgICBkb25lW25leHQvZGJpdHNdIHw9IG1wZF9iaXRzW25leHQlZGJpdHNdOworCisgICAgICAgICAgICAgICAgbmV4dCA9IG11bG1vZF9zaXplX3QobmV4dCwgciwgbSk7CisgICAgICAgICAgICAgICAgICAgIGhwID0gbWF0cml4ICsgbmV4dCpjb2xzLzI7CisKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbWVtY3B5KGhwK29mZnNldCwgd3JpdGVidWYsIHN0cmlkZSooc2l6ZW9mICp3cml0ZWJ1ZikpOworCisgICAgICAgICAgICBkb25lW2huL2RiaXRzXSB8PSBtcGRfYml0c1tobiVkYml0c107CisgICAgICAgIH0KKyAgICB9CisKKyAgICBtcGRfZnJlZShkb25lKTsKKyAgICByZXR1cm4gMTsKK30KKworLyogSW4tcGxhY2UgdHJhbnNwb3NlIG9mIGEgc3F1YXJlIG1hdHJpeCAqLworc3RhdGljIGlubGluZSB2b2lkCitzcXVhcmV0cmFucyhtcGRfdWludF90ICpidWYsIG1wZF9zaXplX3QgY29scykKK3sKKyAgICBtcGRfdWludF90IHRtcDsKKyAgICBtcGRfc2l6ZV90IGlkZXN0LCBpc3JjOworICAgIG1wZF9zaXplX3QgciwgYzsKKworICAgIGZvciAociA9IDA7IHIgPCBjb2xzOyByKyspIHsKKyAgICAgICAgYyA9IHIrMTsKKyAgICAgICAgaXNyYyA9IHIqY29scyArIGM7CisgICAgICAgIGlkZXN0ID0gYypjb2xzICsgcjsKKyAgICAgICAgZm9yIChjID0gcisxOyBjIDwgY29sczsgYysrKSB7CisgICAgICAgICAgICB0bXAgPSBidWZbaXNyY107CisgICAgICAgICAgICBidWZbaXNyY10gPSBidWZbaWRlc3RdOworICAgICAgICAgICAgYnVmW2lkZXN0XSA9IHRtcDsKKyAgICAgICAgICAgIGlzcmMgKz0gMTsKKyAgICAgICAgICAgIGlkZXN0ICs9IGNvbHM7CisgICAgICAgIH0KKyAgICB9Cit9CisKKy8qCisgKiBUcmFuc3Bvc2UgMl5uICogMl5uIG1hdHJpeC4gRm9yIGNhY2hlIGVmZmljaWVuY3ksIHRoZSBtYXRyaXggaXMgc3BsaXQgaW50bworICogc3F1YXJlIGJsb2NrcyB3aXRoIHNpZGUgbGVuZ3RoICdTSURFJy4gRmlyc3QsIHRoZSBibG9ja3MgYXJlIHRyYW5zcG9zZWQsCisgKiB0aGVuIGEgc3F1YXJlIHRyYW5wb3NpdGlvbiBpcyBkb25lIG9uIGVhY2ggaW5kaXZpZHVhbCBibG9jay4KKyAqLworc3RhdGljIHZvaWQKK3NxdWFyZXRyYW5zX3BvdzIobXBkX3VpbnRfdCAqbWF0cml4LCBtcGRfc2l6ZV90IHNpemUpCit7CisgICAgbXBkX3VpbnRfdCBidWYxW1NJREUqU0lERV07CisgICAgbXBkX3VpbnRfdCBidWYyW1NJREUqU0lERV07CisgICAgbXBkX3VpbnRfdCAqdG8sICpmcm9tOworICAgIG1wZF9zaXplX3QgYiA9IHNpemU7CisgICAgbXBkX3NpemVfdCByLCBjOworICAgIG1wZF9zaXplX3QgaTsKKworICAgIHdoaWxlIChiID4gU0lERSkgYiA+Pj0gMTsKKworICAgIGZvciAociA9IDA7IHIgPCBzaXplOyByICs9IGIpIHsKKworICAgICAgICBmb3IgKGMgPSByOyBjIDwgc2l6ZTsgYyArPSBiKSB7CisKKyAgICAgICAgICAgIGZyb20gPSBtYXRyaXggKyByKnNpemUgKyBjOworICAgICAgICAgICAgdG8gPSBidWYxOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGI7IGkrKykgeworICAgICAgICAgICAgICAgIG1lbWNweSh0bywgZnJvbSwgYiooc2l6ZW9mICp0bykpOworICAgICAgICAgICAgICAgIGZyb20gKz0gc2l6ZTsKKyAgICAgICAgICAgICAgICB0byArPSBiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3F1YXJldHJhbnMoYnVmMSwgYik7CisKKyAgICAgICAgICAgIGlmIChyID09IGMpIHsKKyAgICAgICAgICAgICAgICB0byA9IG1hdHJpeCArIHIqc2l6ZSArIGM7CisgICAgICAgICAgICAgICAgZnJvbSA9IGJ1ZjE7CisgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGI7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBtZW1jcHkodG8sIGZyb20sIGIqKHNpemVvZiAqdG8pKTsKKyAgICAgICAgICAgICAgICAgICAgZnJvbSArPSBiOworICAgICAgICAgICAgICAgICAgICB0byArPSBzaXplOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGZyb20gPSBtYXRyaXggKyBjKnNpemUgKyByOworICAgICAgICAgICAgICAgIHRvID0gYnVmMjsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIG1lbWNweSh0bywgZnJvbSwgYiooc2l6ZW9mICp0bykpOworICAgICAgICAgICAgICAgICAgICBmcm9tICs9IHNpemU7CisgICAgICAgICAgICAgICAgICAgIHRvICs9IGI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHNxdWFyZXRyYW5zKGJ1ZjIsIGIpOworCisgICAgICAgICAgICAgICAgdG8gPSBtYXRyaXggKyBjKnNpemUgKyByOworICAgICAgICAgICAgICAgIGZyb20gPSBidWYxOworICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBiOyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KHRvLCBmcm9tLCBiKihzaXplb2YgKnRvKSk7CisgICAgICAgICAgICAgICAgICAgIGZyb20gKz0gYjsKKyAgICAgICAgICAgICAgICAgICAgdG8gKz0gc2l6ZTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB0byA9IG1hdHJpeCArIHIqc2l6ZSArIGM7CisgICAgICAgICAgICAgICAgZnJvbSA9IGJ1ZjI7CisgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGI7IGkrKykgeworICAgICAgICAgICAgICAgICAgICBtZW1jcHkodG8sIGZyb20sIGIqKHNpemVvZiAqdG8pKTsKKyAgICAgICAgICAgICAgICAgICAgZnJvbSArPSBiOworICAgICAgICAgICAgICAgICAgICB0byArPSBzaXplOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworfQorCisvKgorICogSW4tcGxhY2UgdHJhbnNwb3NpdGlvbiBvZiBhIDJebiB4IDJebiBvciBhIDJebiB4ICgyKjJebikKKyAqIG9yIGEgKDIqMl5uKSB4IDJebiBtYXRyaXguCisgKi8KK2ludAordHJhbnNwb3NlX3BvdzIobXBkX3VpbnRfdCAqbWF0cml4LCBtcGRfc2l6ZV90IHJvd3MsIG1wZF9zaXplX3QgY29scykKK3sKKyAgICBtcGRfc2l6ZV90IHNpemUgPSBtdWxfc2l6ZV90KHJvd3MsIGNvbHMpOworCisgICAgYXNzZXJ0KGlzcG93ZXIyKHJvd3MpKTsKKyAgICBhc3NlcnQoaXNwb3dlcjIoY29scykpOworCisgICAgaWYgKGNvbHMgPT0gcm93cykgeworICAgICAgICBzcXVhcmV0cmFuc19wb3cyKG1hdHJpeCwgcm93cyk7CisgICAgfQorICAgIGVsc2UgaWYgKGNvbHMgPT0gbXVsX3NpemVfdCgyLCByb3dzKSkgeworICAgICAgICBpZiAoIXN3YXBfaGFsZnJvd3NfcG93MihtYXRyaXgsIHJvd3MsIGNvbHMsIEZPUldBUkRfQ1lDTEUpKSB7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBzcXVhcmV0cmFuc19wb3cyKG1hdHJpeCwgcm93cyk7CisgICAgICAgIHNxdWFyZXRyYW5zX3BvdzIobWF0cml4KyhzaXplLzIpLCByb3dzKTsKKyAgICB9CisgICAgZWxzZSBpZiAocm93cyA9PSBtdWxfc2l6ZV90KDIsIGNvbHMpKSB7CisgICAgICAgIHNxdWFyZXRyYW5zX3BvdzIobWF0cml4LCBjb2xzKTsKKyAgICAgICAgc3F1YXJldHJhbnNfcG93MihtYXRyaXgrKHNpemUvMiksIGNvbHMpOworICAgICAgICBpZiAoIXN3YXBfaGFsZnJvd3NfcG93MihtYXRyaXgsIGNvbHMsIHJvd3MsIEJBQ0tXQVJEX0NZQ0xFKSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGFib3J0KCk7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9CisKKyAgICByZXR1cm4gMTsKK30KKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL3RyYW5zcG9zZS5oIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy90cmFuc3Bvc2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZDBhZWM2Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy90cmFuc3Bvc2UuaApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworCisjaWZuZGVmIFRSQU5TUE9TRV9ICisjZGVmaW5lIFRSQU5TUE9TRV9ICisKKworI2luY2x1ZGUgIm1wZGVjaW1hbC5oIgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKKworZW51bSB7Rk9SV0FSRF9DWUNMRSwgQkFDS1dBUkRfQ1lDTEV9OworCisKK3ZvaWQgc3RkX3RyYW5zKG1wZF91aW50X3QgZGVzdFtdLCBtcGRfdWludF90IHNyY1tdLCBtcGRfc2l6ZV90IHJvd3MsIG1wZF9zaXplX3QgY29scyk7CitpbnQgdHJhbnNwb3NlX3BvdzIobXBkX3VpbnRfdCAqbWF0cml4LCBtcGRfc2l6ZV90IHJvd3MsIG1wZF9zaXplX3QgY29scyk7Cit2b2lkIHRyYW5zcG9zZV8zeHBvdzIobXBkX3VpbnRfdCAqbWF0cml4LCBtcGRfc2l6ZV90IHJvd3MsIG1wZF9zaXplX3QgY29scyk7CisKKworc3RhdGljIGlubGluZSB2b2lkIHBvaW50ZXJzd2FwKG1wZF91aW50X3QgKiphLCBtcGRfdWludF90ICoqYikKK3sKKyAgICBtcGRfdWludF90ICp0bXA7CisKKyAgICB0bXAgPSAqYjsKKyAgICAqYiA9ICphOworICAgICphID0gdG1wOworfQorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy90eXBlYXJpdGguaCBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvdHlwZWFyaXRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWViYThkZAotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvdHlwZWFyaXRoLmgKQEAgLTAsMCArMSw2NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgVFlQRUFSSVRIX0gKKyNkZWZpbmUgVFlQRUFSSVRIX0gKKworCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgIExvdyBsZXZlbCBuYXRpdmUgYXJpdGhtZXRpYyBvbiBiYXNpYyB0eXBlcyAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqKiAgICAgICAgICAgRG91YmxlIHdpZHRoIG11bHRpcGxpY2F0aW9uIGFuZCBkaXZpc2lvbgorICoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZiBkZWZpbmVkKENPTkZJR182NCkKKyNpZiBkZWZpbmVkKEFOU0kpCisjaWYgZGVmaW5lZChIQVZFX1VJTlQxMjhfVCkKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9tdWxfd29yZHMobXBkX3VpbnRfdCAqaGksIG1wZF91aW50X3QgKmxvLCBtcGRfdWludF90IGEsIG1wZF91aW50X3QgYikKK3sKKyAgICBfX3VpbnQxMjhfdCBobDsKKworICAgIGhsID0gKF9fdWludDEyOF90KWEgKiBiOworCisgICAgKmhpID0gaGwgPj4gNjQ7CisgICAgKmxvID0gKG1wZF91aW50X3QpaGw7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9kaXZfd29yZHMobXBkX3VpbnRfdCAqcSwgbXBkX3VpbnRfdCAqciwgbXBkX3VpbnRfdCBoaSwgbXBkX3VpbnRfdCBsbywKKyAgICAgICAgICAgICAgIG1wZF91aW50X3QgZCkKK3sKKyAgICBfX3VpbnQxMjhfdCBobDsKKworICAgIGhsID0gKChfX3VpbnQxMjhfdCloaTw8NjQpICsgbG87CisgICAgKnEgPSAobXBkX3VpbnRfdCkoaGwgLyBkKTsgLyogcXVvdGllbnQgaXMga25vd24gdG8gZml0ICovCisgICAgKnIgPSAobXBkX3VpbnRfdCkoaGwgLSAoX191aW50MTI4X3QpKCpxKSAqIGQpOworfQorI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9tdWxfd29yZHMobXBkX3VpbnRfdCAqaGksIG1wZF91aW50X3QgKmxvLCBtcGRfdWludF90IGEsIG1wZF91aW50X3QgYikKK3sKKyAgICB1aW50MzJfdCB3WzRdLCBjYXJyeTsKKyAgICB1aW50MzJfdCBhaCwgYWwsIGJoLCBibDsKKyAgICB1aW50NjRfdCBobDsKKworICAgIGFoID0gKHVpbnQzMl90KShhPj4zMik7IGFsID0gKHVpbnQzMl90KWE7CisgICAgYmggPSAodWludDMyX3QpKGI+PjMyKTsgYmwgPSAodWludDMyX3QpYjsKKworICAgIGhsID0gKHVpbnQ2NF90KWFsICogYmw7CisgICAgd1swXSA9ICh1aW50MzJfdClobDsKKyAgICBjYXJyeSA9ICh1aW50MzJfdCkoaGw+PjMyKTsKKworICAgIGhsID0gKHVpbnQ2NF90KWFoICogYmwgKyBjYXJyeTsKKyAgICB3WzFdID0gKHVpbnQzMl90KWhsOworICAgIHdbMl0gPSAodWludDMyX3QpKGhsPj4zMik7CisKKyAgICBobCA9ICh1aW50NjRfdClhbCAqIGJoICsgd1sxXTsKKyAgICB3WzFdID0gKHVpbnQzMl90KWhsOworICAgIGNhcnJ5ID0gKHVpbnQzMl90KShobD4+MzIpOworCisgICAgaGwgPSAoKHVpbnQ2NF90KWFoICogYmggKyB3WzJdKSArIGNhcnJ5OworICAgIHdbMl0gPSAodWludDMyX3QpaGw7CisgICAgd1szXSA9ICh1aW50MzJfdCkoaGw+PjMyKTsKKworICAgICpoaSA9ICgodWludDY0X3Qpd1szXTw8MzIpICsgd1syXTsKKyAgICAqbG8gPSAoKHVpbnQ2NF90KXdbMV08PDMyKSArIHdbMF07Cit9CisKKy8qCisgKiBCeSBIZW5yeSBTLiBXYXJyZW46IGh0dHA6Ly93d3cuaGFja2Vyc2RlbGlnaHQub3JnL0hEY29kZS9kaXZsdS5jLnR4dAorICogaHR0cDovL3d3dy5oYWNrZXJzZGVsaWdodC5vcmcvcGVybWlzc2lvbnMuaHRtOgorICogIllvdSBhcmUgZnJlZSB0byB1c2UsIGNvcHksIGFuZCBkaXN0cmlidXRlIGFueSBvZiB0aGUgY29kZSBvbiB0aGlzIHdlYgorICogIHNpdGUsIHdoZXRoZXIgbW9kaWZpZWQgYnkgeW91IG9yIG5vdC4gWW91IG5lZWQgbm90IGdpdmUgYXR0cmlidXRpb24uIgorICoKKyAqIFNsaWdodGx5IG1vZGlmaWVkLCBjb21tZW50cyBhcmUgbWluZS4KKyAqLworc3RhdGljIGlubGluZSBpbnQKK25seih1aW50NjRfdCB4KQoreworICAgIGludCBuOworCisgICAgaWYgKHggPT0gMCkgcmV0dXJuKDY0KTsKKworICAgIG4gPSAwOworICAgIGlmICh4IDw9IDB4MDAwMDAwMDBGRkZGRkZGRikge24gPSBuICszMjsgeCA9IHggPDwzMjt9CisgICAgaWYgKHggPD0gMHgwMDAwRkZGRkZGRkZGRkZGKSB7biA9IG4gKzE2OyB4ID0geCA8PDE2O30KKyAgICBpZiAoeCA8PSAweDAwRkZGRkZGRkZGRkZGRkYpIHtuID0gbiArIDg7IHggPSB4IDw8IDg7fQorICAgIGlmICh4IDw9IDB4MEZGRkZGRkZGRkZGRkZGRikge24gPSBuICsgNDsgeCA9IHggPDwgNDt9CisgICAgaWYgKHggPD0gMHgzRkZGRkZGRkZGRkZGRkZGKSB7biA9IG4gKyAyOyB4ID0geCA8PCAyO30KKyAgICBpZiAoeCA8PSAweDdGRkZGRkZGRkZGRkZGRkYpIHtuID0gbiArIDE7fQorCisgICAgcmV0dXJuIG47Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9kaXZfd29yZHMobXBkX3VpbnRfdCAqcSwgbXBkX3VpbnRfdCAqciwgbXBkX3VpbnRfdCB1MSwgbXBkX3VpbnRfdCB1MCwKKyAgICAgICAgICAgICAgIG1wZF91aW50X3QgdikKK3sKKyAgICBjb25zdCBtcGRfdWludF90IGIgPSA0Mjk0OTY3Mjk2OworICAgIG1wZF91aW50X3QgdW4xLCB1bjAsCisgICAgICAgICAgICAgICB2bjEsIHZuMCwKKyAgICAgICAgICAgICAgIHExLCBxMCwKKyAgICAgICAgICAgICAgIHVuMzIsIHVuMjEsIHVuMTAsCisgICAgICAgICAgICAgICByaGF0LCB0OworICAgIGludCBzOworCisgICAgYXNzZXJ0KHUxIDwgdik7CisKKyAgICBzID0gbmx6KHYpOworICAgIHYgPSB2IDw8IHM7CisgICAgdm4xID0gdiA+PiAzMjsKKyAgICB2bjAgPSB2ICYgMHhGRkZGRkZGRjsKKworICAgIHQgPSAocyA9PSAwKSA/IDAgOiB1MCA+PiAoNjQgLSBzKTsKKyAgICB1bjMyID0gKHUxIDw8IHMpIHwgdDsKKyAgICB1bjEwID0gdTAgPDwgczsKKworICAgIHVuMSA9IHVuMTAgPj4gMzI7CisgICAgdW4wID0gdW4xMCAmIDB4RkZGRkZGRkY7CisKKyAgICBxMSA9IHVuMzIgLyB2bjE7CisgICAgcmhhdCA9IHVuMzIgLSBxMSp2bjE7CithZ2FpbjE6CisgICAgaWYgKHExID49IGIgfHwgcTEqdm4wID4gYipyaGF0ICsgdW4xKSB7CisgICAgICAgIHExID0gcTEgLSAxOworICAgICAgICByaGF0ID0gcmhhdCArIHZuMTsKKyAgICAgICAgaWYgKHJoYXQgPCBiKSBnb3RvIGFnYWluMTsKKyAgICB9CisKKyAgICAvKgorICAgICAqICBCZWZvcmUgYWdhaW4xIHdlIGhhZDoKKyAgICAgKiAgICAgICgxKSBxMSp2bjEgICArIHJoYXQgICAgICAgICA9IHVuMzIKKyAgICAgKiAgICAgICgyKSBxMSp2bjEqYiArIHJoYXQqYiArIHVuMSA9IHVuMzIqYiArIHVuMQorICAgICAqCisgICAgICogIFRoZSBzdGF0ZW1lbnRzIGluc2lkZSB0aGUgaWYtY2xhdXNlIGRvIG5vdCBjaGFuZ2UgdGhlIHZhbHVlCisgICAgICogIG9mIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiAoMiksIGFuZCB0aGUgbG9vcCBpcyBvbmx5IGV4aXRlZAorICAgICAqICBpZiBxMSp2bjAgPD0gcmhhdCpiICsgdW4xLCBzbzoKKyAgICAgKgorICAgICAqICAgICAgKDMpIHExKnZuMSpiICsgcTEqdm4wIDw9IHVuMzIqYiArIHVuMQorICAgICAqICAgICAgKDQpICAgICAgICAgICAgICBxMSp2IDw9IHVuMzIqYiArIHVuMQorICAgICAqICAgICAgKDUpICAgICAgICAgICAgICAgICAwIDw9IHVuMzIqYiArIHVuMSAtIHExKnYKKyAgICAgKgorICAgICAqICBCeSAoNSkgd2UgYXJlIGNlcnRhaW4gdGhhdCB0aGUgcG9zc2libGUgYWRkLWJhY2sgc3RlcCBmcm9tCisgICAgICogIEtudXRoJ3MgYWxnb3JpdGhtIEQgaXMgbmV2ZXIgcmVxdWlyZWQuCisgICAgICoKKyAgICAgKiAgU2luY2UgdGhlIGZpbmFsIHF1b3RpZW50IGlzIGxlc3MgdGhhbiAyKio2NCwgdGhlIGZvbGxvd2luZworICAgICAqICBtdXN0IGJlIHRydWU6CisgICAgICoKKyAgICAgKiAgICAgICg2KSB1bjMyKmIgKyB1bjEgLSBxMSp2IDw9IFVJTlQ2NF9NQVgKKyAgICAgKgorICAgICAqICBUaGlzIG1lYW5zIHRoYXQgaW4gdGhlIGZvbGxvd2luZyBsaW5lLCB0aGUgaGlnaCB3b3JkcworICAgICAqICBvZiB1bjMyKmIgYW5kIHExKnYgY2FuIGJlIGRpc2NhcmRlZCB3aXRob3V0IGFueSBlZmZlY3QKKyAgICAgKiAgb24gdGhlIHJlc3VsdC4KKyAgICAgKi8KKyAgICB1bjIxID0gdW4zMipiICsgdW4xIC0gcTEqdjsKKworICAgIHEwID0gdW4yMSAvIHZuMTsKKyAgICByaGF0ID0gdW4yMSAtIHEwKnZuMTsKK2FnYWluMjoKKyAgICBpZiAocTAgPj0gYiB8fCBxMCp2bjAgPiBiKnJoYXQgKyB1bjApIHsKKyAgICAgICAgcTAgPSBxMCAtIDE7CisgICAgICAgIHJoYXQgPSByaGF0ICsgdm4xOworICAgICAgICBpZiAocmhhdCA8IGIpIGdvdG8gYWdhaW4yOworICAgIH0KKworICAgICpxID0gcTEqYiArIHEwOworICAgICpyID0gKHVuMjEqYiArIHVuMCAtIHEwKnYpID4+IHM7Cit9CisjZW5kaWYKKworLyogRU5EIEFOU0kgKi8KKyNlbGlmIGRlZmluZWQoQVNNKQorc3RhdGljIGlubGluZSB2b2lkCitfbXBkX211bF93b3JkcyhtcGRfdWludF90ICpoaSwgbXBkX3VpbnRfdCAqbG8sIG1wZF91aW50X3QgYSwgbXBkX3VpbnRfdCBiKQoreworICAgIG1wZF91aW50X3QgaCwgbDsKKworICAgIGFzbSAoICJtdWxxICUzXG5cdCIKKyAgICAgICAgICA6ICI9ZCIgKGgpLCAiPWEiIChsKQorICAgICAgICAgIDogIiVhIiAoYSksICJybSIgKGIpCisgICAgICAgICAgOiAiY2MiCisgICAgKTsKKworICAgICpoaSA9IGg7CisgICAgKmxvID0gbDsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitfbXBkX2Rpdl93b3JkcyhtcGRfdWludF90ICpxLCBtcGRfdWludF90ICpyLCBtcGRfdWludF90IGhpLCBtcGRfdWludF90IGxvLAorICAgICAgICAgICAgICAgbXBkX3VpbnRfdCBkKQoreworICAgIG1wZF91aW50X3QgcXEsIHJyOworCisgICAgYXNtICggImRpdnEgJTRcblx0IgorICAgICAgICAgIDogIj1hIiAocXEpLCAiPWQiIChycikKKyAgICAgICAgICA6ICJhIiAobG8pLCAiZCIgKGhpKSwgInJtIiAoZCkKKyAgICAgICAgICA6ICJjYyIKKyAgICApOworCisgICAgKnEgPSBxcTsKKyAgICAqciA9IHJyOworfQorLyogRU5EIEdDQyBBU00gKi8KKyNlbGlmIGRlZmluZWQoTUFTTSkKKyNpbmNsdWRlIDxpbnRyaW4uaD4KKyNwcmFnbWEgaW50cmluc2ljKF91bXVsMTI4KQorCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfbXVsX3dvcmRzKG1wZF91aW50X3QgKmhpLCBtcGRfdWludF90ICpsbywgbXBkX3VpbnRfdCBhLCBtcGRfdWludF90IGIpCit7CisgICAgKmxvID0gX3VtdWwxMjgoYSwgYiwgaGkpOworfQorCit2b2lkIF9tcGRfZGl2X3dvcmRzKG1wZF91aW50X3QgKnEsIG1wZF91aW50X3QgKnIsIG1wZF91aW50X3QgaGksIG1wZF91aW50X3QgbG8sCisgICAgICAgICAgICAgICAgICAgIG1wZF91aW50X3QgZCk7CisKKy8qIEVORCBNQVNNIChfTVNDX1ZFUikgKi8KKyNlbHNlCisgICNlcnJvciAibmVlZCBwbGF0Zm9ybSBzcGVjaWZpYyAxMjggYml0IG11bHRpcGxpY2F0aW9uIGFuZCBkaXZpc2lvbiIKKyNlbmRpZgorCisjZGVmaW5lIERJVk1PRChxLCByLCB2LCBkKSAqcSA9IHYgLyBkOyAqciA9IHYgLSAqcSAqIGQKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9kaXZtb2RfcG93MTAobXBkX3VpbnRfdCAqcSwgbXBkX3VpbnRfdCAqciwgbXBkX3VpbnRfdCB2LCBtcGRfdWludF90IGV4cCkKK3sKKyAgICBhc3NlcnQoZXhwIDw9IDE5KTsKKworICAgIGlmIChleHAgPD0gOSkgeworICAgICAgICBpZiAoZXhwIDw9IDQpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoZXhwKSB7CisgICAgICAgICAgICBjYXNlIDA6ICpxID0gdjsgKnIgPSAwOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTogRElWTU9EKHEsIHIsIHYsIDEwVUwpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMjogRElWTU9EKHEsIHIsIHYsIDEwMFVMKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDM6IERJVk1PRChxLCByLCB2LCAxMDAwVUwpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgNDogRElWTU9EKHEsIHIsIHYsIDEwMDAwVUwpOyBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHN3aXRjaCAoZXhwKSB7CisgICAgICAgICAgICBjYXNlIDU6IERJVk1PRChxLCByLCB2LCAxMDAwMDBVTCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSA2OiBESVZNT0QocSwgciwgdiwgMTAwMDAwMFVMKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDc6IERJVk1PRChxLCByLCB2LCAxMDAwMDAwMFVMKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDg6IERJVk1PRChxLCByLCB2LCAxMDAwMDAwMDBVTCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSA5OiBESVZNT0QocSwgciwgdiwgMTAwMDAwMDAwMFVMKTsgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGlmIChleHAgPD0gMTQpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoZXhwKSB7CisgICAgICAgICAgICBjYXNlIDEwOiBESVZNT0QocSwgciwgdiwgMTAwMDAwMDAwMDBVTEwpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTE6IERJVk1PRChxLCByLCB2LCAxMDAwMDAwMDAwMDBVTEwpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTI6IERJVk1PRChxLCByLCB2LCAxMDAwMDAwMDAwMDAwVUxMKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDEzOiBESVZNT0QocSwgciwgdiwgMTAwMDAwMDAwMDAwMDBVTEwpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgMTQ6IERJVk1PRChxLCByLCB2LCAxMDAwMDAwMDAwMDAwMDBVTEwpOyBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHN3aXRjaCAoZXhwKSB7CisgICAgICAgICAgICBjYXNlIDE1OiBESVZNT0QocSwgciwgdiwgMTAwMDAwMDAwMDAwMDAwMFVMTCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxNjogRElWTU9EKHEsIHIsIHYsIDEwMDAwMDAwMDAwMDAwMDAwVUxMKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE3OiBESVZNT0QocSwgciwgdiwgMTAwMDAwMDAwMDAwMDAwMDAwVUxMKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlIDE4OiBESVZNT0QocSwgciwgdiwgMTAwMDAwMDAwMDAwMDAwMDAwMFVMTCk7IGJyZWFrOworICAgICAgICAgICAgY2FzZSAxOTogRElWTU9EKHEsIHIsIHYsIDEwMDAwMDAwMDAwMDAwMDAwMDAwVUxMKTsgYnJlYWs7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyogRU5EIENPTkZJR182NCAqLworI2VsaWYgZGVmaW5lZChDT05GSUdfMzIpCisjaWYgZGVmaW5lZChBTlNJKQorI2lmICFkZWZpbmVkKExFR0FDWV9DT01QSUxFUikKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9tdWxfd29yZHMobXBkX3VpbnRfdCAqaGksIG1wZF91aW50X3QgKmxvLCBtcGRfdWludF90IGEsIG1wZF91aW50X3QgYikKK3sKKyAgICBtcGRfdXVpbnRfdCBobDsKKworICAgIGhsID0gKG1wZF91dWludF90KWEgKiBiOworCisgICAgKmhpID0gaGwgPj4gMzI7CisgICAgKmxvID0gKG1wZF91aW50X3QpaGw7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9kaXZfd29yZHMobXBkX3VpbnRfdCAqcSwgbXBkX3VpbnRfdCAqciwgbXBkX3VpbnRfdCBoaSwgbXBkX3VpbnRfdCBsbywKKyAgICAgICAgICAgICAgIG1wZF91aW50X3QgZCkKK3sKKyAgICBtcGRfdXVpbnRfdCBobDsKKworICAgIGhsID0gKChtcGRfdXVpbnRfdCloaTw8MzIpICsgbG87CisgICAgKnEgPSAobXBkX3VpbnRfdCkoaGwgLyBkKTsgLyogcXVvdGllbnQgaXMga25vd24gdG8gZml0ICovCisgICAgKnIgPSAobXBkX3VpbnRfdCkoaGwgLSAobXBkX3V1aW50X3QpKCpxKSAqIGQpOworfQorLyogRU5EIEFOU0kgKyB1aW50NjRfdCAqLworI2Vsc2UKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9tdWxfd29yZHMobXBkX3VpbnRfdCAqaGksIG1wZF91aW50X3QgKmxvLCBtcGRfdWludF90IGEsIG1wZF91aW50X3QgYikKK3sKKyAgICB1aW50MTZfdCB3WzRdLCBjYXJyeTsKKyAgICB1aW50MTZfdCBhaCwgYWwsIGJoLCBibDsKKyAgICB1aW50MzJfdCBobDsKKworICAgIGFoID0gKHVpbnQxNl90KShhPj4xNik7IGFsID0gKHVpbnQxNl90KWE7CisgICAgYmggPSAodWludDE2X3QpKGI+PjE2KTsgYmwgPSAodWludDE2X3QpYjsKKworICAgIGhsID0gKHVpbnQzMl90KWFsICogYmw7CisgICAgd1swXSA9ICh1aW50MTZfdClobDsKKyAgICBjYXJyeSA9ICh1aW50MTZfdCkoaGw+PjE2KTsKKworICAgIGhsID0gKHVpbnQzMl90KWFoICogYmwgKyBjYXJyeTsKKyAgICB3WzFdID0gKHVpbnQxNl90KWhsOworICAgIHdbMl0gPSAodWludDE2X3QpKGhsPj4xNik7CisKKyAgICBobCA9ICh1aW50MzJfdClhbCAqIGJoICsgd1sxXTsKKyAgICB3WzFdID0gKHVpbnQxNl90KWhsOworICAgIGNhcnJ5ID0gKHVpbnQxNl90KShobD4+MTYpOworCisgICAgaGwgPSAoKHVpbnQzMl90KWFoICogYmggKyB3WzJdKSArIGNhcnJ5OworICAgIHdbMl0gPSAodWludDE2X3QpaGw7CisgICAgd1szXSA9ICh1aW50MTZfdCkoaGw+PjE2KTsKKworICAgICpoaSA9ICgodWludDMyX3Qpd1szXTw8MTYpICsgd1syXTsKKyAgICAqbG8gPSAoKHVpbnQzMl90KXdbMV08PDE2KSArIHdbMF07Cit9CisKKy8qCisgKiBCeSBIZW5yeSBTLiBXYXJyZW46IGh0dHA6Ly93d3cuaGFja2Vyc2RlbGlnaHQub3JnL0hEY29kZS9kaXZsdS5jLnR4dAorICogaHR0cDovL3d3dy5oYWNrZXJzZGVsaWdodC5vcmcvcGVybWlzc2lvbnMuaHRtOgorICogIllvdSBhcmUgZnJlZSB0byB1c2UsIGNvcHksIGFuZCBkaXN0cmlidXRlIGFueSBvZiB0aGUgY29kZSBvbiB0aGlzIHdlYgorICogIHNpdGUsIHdoZXRoZXIgbW9kaWZpZWQgYnkgeW91IG9yIG5vdC4gWW91IG5lZWQgbm90IGdpdmUgYXR0cmlidXRpb24uIgorICoKKyAqIFNsaWdodGx5IG1vZGlmaWVkLCBjb21tZW50cyBhcmUgbWluZS4KKyAqLworc3RhdGljIGlubGluZSBpbnQKK25seih1aW50MzJfdCB4KQoreworICAgIGludCBuOworCisgICAgaWYgKHggPT0gMCkgcmV0dXJuKDMyKTsKKworICAgIG4gPSAwOworICAgIGlmICh4IDw9IDB4MDAwMEZGRkYpIHtuID0gbiArMTY7IHggPSB4IDw8MTY7fQorICAgIGlmICh4IDw9IDB4MDBGRkZGRkYpIHtuID0gbiArIDg7IHggPSB4IDw8IDg7fQorICAgIGlmICh4IDw9IDB4MEZGRkZGRkYpIHtuID0gbiArIDQ7IHggPSB4IDw8IDQ7fQorICAgIGlmICh4IDw9IDB4M0ZGRkZGRkYpIHtuID0gbiArIDI7IHggPSB4IDw8IDI7fQorICAgIGlmICh4IDw9IDB4N0ZGRkZGRkYpIHtuID0gbiArIDE7fQorCisgICAgcmV0dXJuIG47Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorX21wZF9kaXZfd29yZHMobXBkX3VpbnRfdCAqcSwgbXBkX3VpbnRfdCAqciwgbXBkX3VpbnRfdCB1MSwgbXBkX3VpbnRfdCB1MCwKKyAgICAgICAgICAgICAgIG1wZF91aW50X3QgdikKK3sKKyAgICBjb25zdCBtcGRfdWludF90IGIgPSA2NTUzNjsKKyAgICBtcGRfdWludF90IHVuMSwgdW4wLAorICAgICAgICAgICAgICAgdm4xLCB2bjAsCisgICAgICAgICAgICAgICBxMSwgcTAsCisgICAgICAgICAgICAgICB1bjMyLCB1bjIxLCB1bjEwLAorICAgICAgICAgICAgICAgcmhhdCwgdDsKKyAgICBpbnQgczsKKworICAgIGFzc2VydCh1MSA8IHYpOworCisgICAgcyA9IG5seih2KTsKKyAgICB2ID0gdiA8PCBzOworICAgIHZuMSA9IHYgPj4gMTY7CisgICAgdm4wID0gdiAmIDB4RkZGRjsKKworICAgIHQgPSAocyA9PSAwKSA/IDAgOiB1MCA+PiAoMzIgLSBzKTsKKyAgICB1bjMyID0gKHUxIDw8IHMpIHwgdDsKKyAgICB1bjEwID0gdTAgPDwgczsKKworICAgIHVuMSA9IHVuMTAgPj4gMTY7CisgICAgdW4wID0gdW4xMCAmIDB4RkZGRjsKKworICAgIHExID0gdW4zMiAvIHZuMTsKKyAgICByaGF0ID0gdW4zMiAtIHExKnZuMTsKK2FnYWluMToKKyAgICBpZiAocTEgPj0gYiB8fCBxMSp2bjAgPiBiKnJoYXQgKyB1bjEpIHsKKyAgICAgICAgcTEgPSBxMSAtIDE7CisgICAgICAgIHJoYXQgPSByaGF0ICsgdm4xOworICAgICAgICBpZiAocmhhdCA8IGIpIGdvdG8gYWdhaW4xOworICAgIH0KKworICAgIC8qCisgICAgICogIEJlZm9yZSBhZ2FpbjEgd2UgaGFkOgorICAgICAqICAgICAgKDEpIHExKnZuMSAgICsgcmhhdCAgICAgICAgID0gdW4zMgorICAgICAqICAgICAgKDIpIHExKnZuMSpiICsgcmhhdCpiICsgdW4xID0gdW4zMipiICsgdW4xCisgICAgICoKKyAgICAgKiAgVGhlIHN0YXRlbWVudHMgaW5zaWRlIHRoZSBpZi1jbGF1c2UgZG8gbm90IGNoYW5nZSB0aGUgdmFsdWUKKyAgICAgKiAgb2YgdGhlIGxlZnQtaGFuZCBzaWRlIG9mICgyKSwgYW5kIHRoZSBsb29wIGlzIG9ubHkgZXhpdGVkCisgICAgICogIGlmIHExKnZuMCA8PSByaGF0KmIgKyB1bjEsIHNvOgorICAgICAqCisgICAgICogICAgICAoMykgcTEqdm4xKmIgKyBxMSp2bjAgPD0gdW4zMipiICsgdW4xCisgICAgICogICAgICAoNCkgICAgICAgICAgICAgIHExKnYgPD0gdW4zMipiICsgdW4xCisgICAgICogICAgICAoNSkgICAgICAgICAgICAgICAgIDAgPD0gdW4zMipiICsgdW4xIC0gcTEqdgorICAgICAqCisgICAgICogIEJ5ICg1KSB3ZSBhcmUgY2VydGFpbiB0aGF0IHRoZSBwb3NzaWJsZSBhZGQtYmFjayBzdGVwIGZyb20KKyAgICAgKiAgS251dGgncyBhbGdvcml0aG0gRCBpcyBuZXZlciByZXF1aXJlZC4KKyAgICAgKgorICAgICAqICBTaW5jZSB0aGUgZmluYWwgcXVvdGllbnQgaXMgbGVzcyB0aGFuIDIqKjMyLCB0aGUgZm9sbG93aW5nCisgICAgICogIG11c3QgYmUgdHJ1ZToKKyAgICAgKgorICAgICAqICAgICAgKDYpIHVuMzIqYiArIHVuMSAtIHExKnYgPD0gVUlOVDMyX01BWAorICAgICAqCisgICAgICogIFRoaXMgbWVhbnMgdGhhdCBpbiB0aGUgZm9sbG93aW5nIGxpbmUsIHRoZSBoaWdoIHdvcmRzCisgICAgICogIG9mIHVuMzIqYiBhbmQgcTEqdiBjYW4gYmUgZGlzY2FyZGVkIHdpdGhvdXQgYW55IGVmZmVjdAorICAgICAqICBvbiB0aGUgcmVzdWx0LgorICAgICAqLworICAgIHVuMjEgPSB1bjMyKmIgKyB1bjEgLSBxMSp2OworCisgICAgcTAgPSB1bjIxIC8gdm4xOworICAgIHJoYXQgPSB1bjIxIC0gcTAqdm4xOworYWdhaW4yOgorICAgIGlmIChxMCA+PSBiIHx8IHEwKnZuMCA+IGIqcmhhdCArIHVuMCkgeworICAgICAgICBxMCA9IHEwIC0gMTsKKyAgICAgICAgcmhhdCA9IHJoYXQgKyB2bjE7CisgICAgICAgIGlmIChyaGF0IDwgYikgZ290byBhZ2FpbjI7CisgICAgfQorCisgICAgKnEgPSBxMSpiICsgcTA7CisgICAgKnIgPSAodW4yMSpiICsgdW4wIC0gcTAqdikgPj4gczsKK30KKyNlbmRpZiAvKiBFTkQgQU5TSSArIExFR0FDWV9DT01QSUxFUiAqLworCisvKiBFTkQgQU5TSSAqLworI2VsaWYgZGVmaW5lZChBU00pCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfbXVsX3dvcmRzKG1wZF91aW50X3QgKmhpLCBtcGRfdWludF90ICpsbywgbXBkX3VpbnRfdCBhLCBtcGRfdWludF90IGIpCit7CisgICAgbXBkX3VpbnRfdCBoLCBsOworCisgICAgYXNtICggIm11bGwgJTNcblx0IgorICAgICAgICAgIDogIj1kIiAoaCksICI9YSIgKGwpCisgICAgICAgICAgOiAiJWEiIChhKSwgInJtIiAoYikKKyAgICAgICAgICA6ICJjYyIKKyAgICApOworCisgICAgKmhpID0gaDsKKyAgICAqbG8gPSBsOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfZGl2X3dvcmRzKG1wZF91aW50X3QgKnEsIG1wZF91aW50X3QgKnIsIG1wZF91aW50X3QgaGksIG1wZF91aW50X3QgbG8sCisgICAgICAgICAgICAgICBtcGRfdWludF90IGQpCit7CisgICAgbXBkX3VpbnRfdCBxcSwgcnI7CisKKyAgICBhc20gKCAiZGl2bCAlNFxuXHQiCisgICAgICAgICAgOiAiPWEiIChxcSksICI9ZCIgKHJyKQorICAgICAgICAgIDogImEiIChsbyksICJkIiAoaGkpLCAicm0iIChkKQorICAgICAgICAgIDogImNjIgorICAgICk7CisKKyAgICAqcSA9IHFxOworICAgICpyID0gcnI7Cit9CisvKiBFTkQgR0NDIEFTTSAqLworI2VsaWYgZGVmaW5lZChNQVNNKQorc3RhdGljIGlubGluZSB2b2lkIF9fY2RlY2wKK19tcGRfbXVsX3dvcmRzKG1wZF91aW50X3QgKmhpLCBtcGRfdWludF90ICpsbywgbXBkX3VpbnRfdCBhLCBtcGRfdWludF90IGIpCit7CisgICAgbXBkX3VpbnRfdCBoLCBsOworCisgICAgX19hc20geworICAgICAgICBtb3YgZWF4LCBhCisgICAgICAgIG11bCBiCisgICAgICAgIG1vdiBoLCBlZHgKKyAgICAgICAgbW92IGwsIGVheAorICAgIH0KKworICAgICpoaSA9IGg7CisgICAgKmxvID0gbDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIF9fY2RlY2wKK19tcGRfZGl2X3dvcmRzKG1wZF91aW50X3QgKnEsIG1wZF91aW50X3QgKnIsIG1wZF91aW50X3QgaGksIG1wZF91aW50X3QgbG8sCisgICAgICAgICAgICAgICBtcGRfdWludF90IGQpCit7CisgICAgbXBkX3VpbnRfdCBxcSwgcnI7CisKKyAgICBfX2FzbSB7CisgICAgICAgIG1vdiBlYXgsIGxvCisgICAgICAgIG1vdiBlZHgsIGhpCisgICAgICAgIGRpdiBkCisgICAgICAgIG1vdiBxcSwgZWF4CisgICAgICAgIG1vdiByciwgZWR4CisgICAgfQorCisgICAgKnEgPSBxcTsKKyAgICAqciA9IHJyOworfQorLyogRU5EIE1BU00gKF9NU0NfVkVSKSAqLworI2Vsc2UKKyAgI2Vycm9yICJuZWVkIHBsYXRmb3JtIHNwZWNpZmljIDY0IGJpdCBtdWx0aXBsaWNhdGlvbiBhbmQgZGl2aXNpb24iCisjZW5kaWYKKworI2RlZmluZSBESVZNT0QocSwgciwgdiwgZCkgKnEgPSB2IC8gZDsgKnIgPSB2IC0gKnEgKiBkCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfZGl2bW9kX3BvdzEwKG1wZF91aW50X3QgKnEsIG1wZF91aW50X3QgKnIsIG1wZF91aW50X3QgdiwgbXBkX3VpbnRfdCBleHApCit7CisgICAgYXNzZXJ0KGV4cCA8PSA5KTsKKworICAgIGlmIChleHAgPD0gNCkgeworICAgICAgICBzd2l0Y2ggKGV4cCkgeworICAgICAgICBjYXNlIDA6ICpxID0gdjsgKnIgPSAwOyBicmVhazsKKyAgICAgICAgY2FzZSAxOiBESVZNT0QocSwgciwgdiwgMTBVTCk7IGJyZWFrOworICAgICAgICBjYXNlIDI6IERJVk1PRChxLCByLCB2LCAxMDBVTCk7IGJyZWFrOworICAgICAgICBjYXNlIDM6IERJVk1PRChxLCByLCB2LCAxMDAwVUwpOyBicmVhazsKKyAgICAgICAgY2FzZSA0OiBESVZNT0QocSwgciwgdiwgMTAwMDBVTCk7IGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBzd2l0Y2ggKGV4cCkgeworICAgICAgICBjYXNlIDU6IERJVk1PRChxLCByLCB2LCAxMDAwMDBVTCk7IGJyZWFrOworICAgICAgICBjYXNlIDY6IERJVk1PRChxLCByLCB2LCAxMDAwMDAwVUwpOyBicmVhazsKKyAgICAgICAgY2FzZSA3OiBESVZNT0QocSwgciwgdiwgMTAwMDAwMDBVTCk7IGJyZWFrOworICAgICAgICBjYXNlIDg6IERJVk1PRChxLCByLCB2LCAxMDAwMDAwMDBVTCk7IGJyZWFrOworICAgICAgICBjYXNlIDk6IERJVk1PRChxLCByLCB2LCAxMDAwMDAwMDAwVUwpOyBicmVhazsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgICAgICB9CisgICAgfQorfQorLyogRU5EIENPTkZJR18zMiAqLworCisvKiBOTyBDT05GSUcgKi8KKyNlbHNlCisgICNlcnJvciAiZGVmaW5lIENPTkZJR182NCBvciBDT05GSUdfMzIiCisjZW5kaWYgLyogQ09ORklHICovCisKKworc3RhdGljIGlubGluZSB2b2lkCitfbXBkX2Rpdl93b3JkKG1wZF91aW50X3QgKnEsIG1wZF91aW50X3QgKnIsIG1wZF91aW50X3QgdiwgbXBkX3VpbnRfdCBkKQoreworICAgICpxID0gdiAvIGQ7CisgICAgKnIgPSB2IC0gKnEgKiBkOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK19tcGRfaWRpdl93b3JkKG1wZF9zc2l6ZV90ICpxLCBtcGRfc3NpemVfdCAqciwgbXBkX3NzaXplX3QgdiwgbXBkX3NzaXplX3QgZCkKK3sKKyAgICAqcSA9IHYgLyBkOworICAgICpyID0gdiAtICpxICogZDsKK30KKworCisvKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiogICAgICAgICAgICAgIEFyaXRobWV0aWMgd2l0aCBvdmVyZmxvdyBjaGVja2luZworICoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKy8qIFRoZSBmb2xsb3dpbmcgbWFjcm9zIGRvIGNhbGwgZXhpdCgpIGluIGNhc2Ugb2YgYW4gb3ZlcmZsb3cuCisgICBJZiB0aGUgbGlicmFyeSBpcyB1c2VkIGNvcnJlY3RseSAoaS5lLiB3aXRoIHZhbGlkIGNvbnRleHQKKyAgIHBhcmFtZXRlcnMpLCBzdWNoIG92ZXJmbG93cyBjYW5ub3Qgb2NjdXIuIFRoZSBtYWNyb3MgYXJlIHVzZWQKKyAgIGFzIHNhbml0eSBjaGVja3MgaW4gYSBjb3VwbGUgb2Ygc3RyYXRlZ2ljIHBsYWNlcyBhbmQgc2hvdWxkCisgICBiZSB2aWV3ZWQgYXMgYSBoYW5kd3JpdHRlbiB2ZXJzaW9uIG9mIGdjYydzIC1mdHJhcHYgb3B0aW9uLiAqLworCitzdGF0aWMgaW5saW5lIG1wZF9zaXplX3QKK2FkZF9zaXplX3QobXBkX3NpemVfdCBhLCBtcGRfc2l6ZV90IGIpCit7CisgICAgaWYgKGEgPiBNUERfU0laRV9NQVggLSBiKSB7CisgICAgICAgIG1wZF9lcnJfZmF0YWwoImFkZF9zaXplX3QoKTogb3ZlcmZsb3c6IGNoZWNrIHRoZSBjb250ZXh0Iik7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9CisgICAgcmV0dXJuIGEgKyBiOworfQorCitzdGF0aWMgaW5saW5lIG1wZF9zaXplX3QKK3N1Yl9zaXplX3QobXBkX3NpemVfdCBhLCBtcGRfc2l6ZV90IGIpCit7CisgICAgaWYgKGIgPiBhKSB7CisgICAgICAgIG1wZF9lcnJfZmF0YWwoInN1Yl9zaXplX3QoKTogb3ZlcmZsb3c6IGNoZWNrIHRoZSBjb250ZXh0Iik7IC8qIEdDT1ZfTk9UX1JFQUNIRUQgKi8KKyAgICB9CisgICAgcmV0dXJuIGEgLSBiOworfQorCisjaWYgTVBEX1NJWkVfTUFYICE9IE1QRF9VSU5UX01BWAorICAjZXJyb3IgImFkYXB0IG11bF9zaXplX3QoKSBhbmQgbXVsbW9kX3NpemVfdCgpIgorI2VuZGlmCisKK3N0YXRpYyBpbmxpbmUgbXBkX3NpemVfdAorbXVsX3NpemVfdChtcGRfc2l6ZV90IGEsIG1wZF9zaXplX3QgYikKK3sKKyAgICBtcGRfdWludF90IGhpLCBsbzsKKworICAgIF9tcGRfbXVsX3dvcmRzKCZoaSwgJmxvLCAobXBkX3VpbnRfdClhLCAobXBkX3VpbnRfdCliKTsKKyAgICBpZiAoaGkpIHsKKyAgICAgICAgbXBkX2Vycl9mYXRhbCgibXVsX3NpemVfdCgpOiBvdmVyZmxvdzogY2hlY2sgdGhlIGNvbnRleHQiKTsgLyogR0NPVl9OT1RfUkVBQ0hFRCAqLworICAgIH0KKyAgICByZXR1cm4gbG87Cit9CisKK3N0YXRpYyBpbmxpbmUgbXBkX3NpemVfdAorYWRkX3NpemVfdF9vdmVyZmxvdyhtcGRfc2l6ZV90IGEsIG1wZF9zaXplX3QgYiwgbXBkX3NpemVfdCAqb3ZlcmZsb3cpCit7CisgICAgbXBkX3NpemVfdCByZXQ7CisKKyAgICAqb3ZlcmZsb3cgPSAwOworICAgIHJldCA9IGEgKyBiOworICAgIGlmIChyZXQgPCBhKSAqb3ZlcmZsb3cgPSAxOworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgbXBkX3NpemVfdAorbXVsX3NpemVfdF9vdmVyZmxvdyhtcGRfc2l6ZV90IGEsIG1wZF9zaXplX3QgYiwgbXBkX3NpemVfdCAqb3ZlcmZsb3cpCit7CisgICAgbXBkX3VpbnRfdCBsbzsKKworICAgIF9tcGRfbXVsX3dvcmRzKChtcGRfdWludF90ICopb3ZlcmZsb3csICZsbywgKG1wZF91aW50X3QpYSwKKyAgICAgICAgICAgICAgICAgICAobXBkX3VpbnRfdCliKTsKKyAgICByZXR1cm4gbG87Cit9CisKK3N0YXRpYyBpbmxpbmUgbXBkX3NzaXplX3QKK21vZF9tcGRfc3NpemVfdChtcGRfc3NpemVfdCBhLCBtcGRfc3NpemVfdCBtKQoreworICAgIG1wZF9zc2l6ZV90IHIgPSBhICUgbTsKKyAgICByZXR1cm4gKHIgPCAwKSA/IHIgKyBtIDogcjsKK30KKworc3RhdGljIGlubGluZSBtcGRfc2l6ZV90CittdWxtb2Rfc2l6ZV90KG1wZF9zaXplX3QgYSwgbXBkX3NpemVfdCBiLCBtcGRfc2l6ZV90IG0pCit7CisgICAgbXBkX3VpbnRfdCBoaSwgbG87CisgICAgbXBkX3VpbnRfdCBxLCByOworCisgICAgX21wZF9tdWxfd29yZHMoJmhpLCAmbG8sIChtcGRfdWludF90KWEsIChtcGRfdWludF90KWIpOworICAgIF9tcGRfZGl2X3dvcmRzKCZxLCAmciwgaGksIGxvLCAobXBkX3VpbnRfdCltKTsKKworICAgIHJldHVybiByOworfQorCisKKyNlbmRpZiAvKiBUWVBFQVJJVEhfSCAqLworCisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy91bW9kYXJpdGguaCBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvdW1vZGFyaXRoLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDZjZGUwYQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvdW1vZGFyaXRoLmgKQEAgLTAsMCArMSw2NTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisgKiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyAqIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgVU1PREFSSVRIX0gKKyNkZWZpbmUgVU1PREFSSVRIX0gKKworCisjaW5jbHVkZSAiY29uc3RhbnRzLmgiCisjaW5jbHVkZSAibXBkZWNpbWFsLmgiCisjaW5jbHVkZSAidHlwZWFyaXRoLmgiCisKKworLyogQmlnbnVtOiBMb3cgbGV2ZWwgcm91dGluZXMgZm9yIHVuc2lnbmVkIG1vZHVsYXIgYXJpdGhtZXRpYy4gVGhlc2UgYXJlCisgICB1c2VkIGluIHRoZSBmYXN0IGNvbnZvbHV0aW9uIGZ1bmN0aW9ucyBmb3IgdmVyeSBsYXJnZSBjb2VmZmljaWVudHMuICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICBBTlNJIG1vZHVsYXIgYXJpdGhtZXRpYyAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qCisgKiBSZXN0cmljdGlvbnM6IGEgPCBtIGFuZCBiIDwgbQorICogQUNMMiBwcm9vZjogdW1vZGFyaXRoLmxpc3A6IGFkZG1vZC1jb3JyZWN0CisgKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3VpbnRfdAorYWRkbW9kKG1wZF91aW50X3QgYSwgbXBkX3VpbnRfdCBiLCBtcGRfdWludF90IG0pCit7CisgICAgbXBkX3VpbnRfdCBzOworCisgICAgcyA9IGEgKyBiOworICAgIHMgPSAocyA8IGEpID8gcyAtIG0gOiBzOworICAgIHMgPSAocyA+PSBtKSA/IHMgLSBtIDogczsKKworICAgIHJldHVybiBzOworfQorCisvKgorICogUmVzdHJpY3Rpb25zOiBhIDwgbSBhbmQgYiA8IG0KKyAqIEFDTDIgcHJvb2Y6IHVtb2Rhcml0aC5saXNwOiBzdWJtb2QtMi1jb3JyZWN0CisgKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3VpbnRfdAorc3VibW9kKG1wZF91aW50X3QgYSwgbXBkX3VpbnRfdCBiLCBtcGRfdWludF90IG0pCit7CisgICAgbXBkX3VpbnRfdCBkOworCisgICAgZCA9IGEgLSBiOworICAgIGQgPSAoYSA8IGIpID8gZCArIG0gOiBkOworCisgICAgcmV0dXJuIGQ7Cit9CisKKy8qCisgKiBSZXN0cmljdGlvbnM6IGEgPCAybSBhbmQgYiA8IDJtCisgKiBBQ0wyIHByb29mOiB1bW9kYXJpdGgubGlzcDogc2VjdGlvbiBleHQtc3VibW9kCisgKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3VpbnRfdAorZXh0X3N1Ym1vZChtcGRfdWludF90IGEsIG1wZF91aW50X3QgYiwgbXBkX3VpbnRfdCBtKQoreworICAgIG1wZF91aW50X3QgZDsKKworICAgIGEgPSAoYSA+PSBtKSA/IGEgLSBtIDogYTsKKyAgICBiID0gKGIgPj0gbSkgPyBiIC0gbSA6IGI7CisKKyAgICBkID0gYSAtIGI7CisgICAgZCA9IChhIDwgYikgPyBkICsgbSA6IGQ7CisKKyAgICByZXR1cm4gZDsKK30KKworLyogCisgKiBSZWR1Y2UgZG91YmxlIHdvcmQgbW9kdWxvIG0uCisgKiBSZXN0cmljdGlvbnM6IG0gIT0gMAorICogQUNMMiBwcm9vZjogdW1vZGFyaXRoLmxpc3A6IHNlY3Rpb24gZHctcmVkdWNlCisgKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3VpbnRfdAorZHdfcmVkdWNlKG1wZF91aW50X3QgaGksIG1wZF91aW50X3QgbG8sIG1wZF91aW50X3QgbSkKK3sKKyAgICBtcGRfdWludF90IHIxLCByMiwgdzsKKworICAgIF9tcGRfZGl2X3dvcmQoJncsICZyMSwgaGksIG0pOworICAgIF9tcGRfZGl2X3dvcmRzKCZ3LCAmcjIsIHIxLCBsbywgbSk7CisKKyAgICByZXR1cm4gcjI7Cit9CisKKy8qCisgKiBTdWJ0cmFjdCBkb3VibGUgd29yZCBmcm9tIGEuCisgKiBSZXN0cmljdGlvbnM6IGEgPCBtCisgKiBBQ0wyIHByb29mOiB1bW9kYXJpdGgubGlzcDogc2VjdGlvbiBkdy1zdWJtb2QKKyAqLworc3RhdGljIGlubGluZSBtcGRfdWludF90Citkd19zdWJtb2QobXBkX3VpbnRfdCBhLCBtcGRfdWludF90IGhpLCBtcGRfdWludF90IGxvLCBtcGRfdWludF90IG0pCit7CisgICAgbXBkX3VpbnRfdCBkLCByOworCisgICAgciA9IGR3X3JlZHVjZShoaSwgbG8sIG0pOworICAgIGQgPSBhIC0gcjsKKyAgICBkID0gKGEgPCByKSA/IGQgKyBtIDogZDsKKworICAgIHJldHVybiBkOworfQorCisjaWZkZWYgQ09ORklHXzY0CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgNjQtYml0IG1vZHVsYXIgYXJpdGhtZXRpYyAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAqIEEgcHJvb2Ygb2YgdGhlIGFsZ29yaXRobSBpcyBpbiBsaXRlcmF0dXJlL211bG1vZC02NC50eHQuIEFuIEFDTDIKKyAqIHByb29mIGlzIGluIHVtb2Rhcml0aC5saXNwOiBzZWN0aW9uICJGYXN0IG1vZHVsYXIgcmVkdWN0aW9uIi4KKyAqCisgKiBBbGdvcml0aG06IGNhbGN1bGF0ZSAoYSAqIGIpICUgcDoKKyAqCisgKiAgIGEpIGhpLCBsbyA8LSBhICogYiAgICAgICAjIENhbGN1bGF0ZSBhICogYi4KKyAqCisgKiAgIGIpIGhpLCBsbyA8LSAgUihoaSwgbG8pICAjIFJlZHVjZSBtb2R1bG8gcC4KKyAqCisgKiAgIGMpIFJlcGVhdCBzdGVwIGIpIHVudGlsIDAgPD0gaGkgKiAyKio2NCArIGxvIDwgMipwLgorICoKKyAqICAgZCkgSWYgdGhlIHJlc3VsdCBpcyBsZXNzIHRoYW4gcCwgcmV0dXJuIGxvLiBPdGhlcndpc2UgcmV0dXJuIGxvIC0gcC4KKyAqLworCitzdGF0aWMgaW5saW5lIG1wZF91aW50X3QKK3g2NF9tdWxtb2QobXBkX3VpbnRfdCBhLCBtcGRfdWludF90IGIsIG1wZF91aW50X3QgbSkKK3sKKyAgICBtcGRfdWludF90IGhpLCBsbywgeCwgeTsKKworCisgICAgX21wZF9tdWxfd29yZHMoJmhpLCAmbG8sIGEsIGIpOworCisgICAgaWYgKG0gJiAoMVVMTDw8MzIpKSB7IC8qIFAxICovCisKKyAgICAgICAgLyogZmlyc3QgcmVkdWN0aW9uICovCisgICAgICAgIHggPSB5ID0gaGk7CisgICAgICAgIGhpID4+PSAzMjsKKworICAgICAgICB4ID0gbG8gLSB4OworICAgICAgICBpZiAoeCA+IGxvKSBoaS0tOworCisgICAgICAgIHkgPDw9IDMyOworICAgICAgICBsbyA9IHkgKyB4OworICAgICAgICBpZiAobG8gPCB5KSBoaSsrOworCisgICAgICAgIC8qIHNlY29uZCByZWR1Y3Rpb24gKi8KKyAgICAgICAgeCA9IHkgPSBoaTsKKyAgICAgICAgaGkgPj49IDMyOworCisgICAgICAgIHggPSBsbyAtIHg7CisgICAgICAgIGlmICh4ID4gbG8pIGhpLS07CisKKyAgICAgICAgeSA8PD0gMzI7CisgICAgICAgIGxvID0geSArIHg7CisgICAgICAgIGlmIChsbyA8IHkpIGhpKys7CisKKyAgICAgICAgcmV0dXJuIChoaSB8fCBsbyA+PSBtID8gbG8gLSBtIDogbG8pOworICAgIH0KKyAgICBlbHNlIGlmIChtICYgKDFVTEw8PDM0KSkgeyAvKiBQMiAqLworCisgICAgICAgIC8qIGZpcnN0IHJlZHVjdGlvbiAqLworICAgICAgICB4ID0geSA9IGhpOworICAgICAgICBoaSA+Pj0gMzA7CisKKyAgICAgICAgeCA9IGxvIC0geDsKKyAgICAgICAgaWYgKHggPiBsbykgaGktLTsKKworICAgICAgICB5IDw8PSAzNDsKKyAgICAgICAgbG8gPSB5ICsgeDsKKyAgICAgICAgaWYgKGxvIDwgeSkgaGkrKzsKKworICAgICAgICAvKiBzZWNvbmQgcmVkdWN0aW9uICovCisgICAgICAgIHggPSB5ID0gaGk7CisgICAgICAgIGhpID4+PSAzMDsKKworICAgICAgICB4ID0gbG8gLSB4OworICAgICAgICBpZiAoeCA+IGxvKSBoaS0tOworCisgICAgICAgIHkgPDw9IDM0OworICAgICAgICBsbyA9IHkgKyB4OworICAgICAgICBpZiAobG8gPCB5KSBoaSsrOworCisgICAgICAgIC8qIHRoaXJkIHJlZHVjdGlvbiAqLworICAgICAgICB4ID0geSA9IGhpOworICAgICAgICBoaSA+Pj0gMzA7CisKKyAgICAgICAgeCA9IGxvIC0geDsKKyAgICAgICAgaWYgKHggPiBsbykgaGktLTsKKworICAgICAgICB5IDw8PSAzNDsKKyAgICAgICAgbG8gPSB5ICsgeDsKKyAgICAgICAgaWYgKGxvIDwgeSkgaGkrKzsKKworICAgICAgICByZXR1cm4gKGhpIHx8IGxvID49IG0gPyBsbyAtIG0gOiBsbyk7CisgICAgfQorICAgIGVsc2UgeyAvKiBQMyAqLworCisgICAgICAgIC8qIGZpcnN0IHJlZHVjdGlvbiAqLworICAgICAgICB4ID0geSA9IGhpOworICAgICAgICBoaSA+Pj0gMjQ7CisKKyAgICAgICAgeCA9IGxvIC0geDsKKyAgICAgICAgaWYgKHggPiBsbykgaGktLTsKKworICAgICAgICB5IDw8PSA0MDsKKyAgICAgICAgbG8gPSB5ICsgeDsKKyAgICAgICAgaWYgKGxvIDwgeSkgaGkrKzsKKworICAgICAgICAvKiBzZWNvbmQgcmVkdWN0aW9uICovCisgICAgICAgIHggPSB5ID0gaGk7CisgICAgICAgIGhpID4+PSAyNDsKKworICAgICAgICB4ID0gbG8gLSB4OworICAgICAgICBpZiAoeCA+IGxvKSBoaS0tOworCisgICAgICAgIHkgPDw9IDQwOworICAgICAgICBsbyA9IHkgKyB4OworICAgICAgICBpZiAobG8gPCB5KSBoaSsrOworCisgICAgICAgIC8qIHRoaXJkIHJlZHVjdGlvbiAqLworICAgICAgICB4ID0geSA9IGhpOworICAgICAgICBoaSA+Pj0gMjQ7CisKKyAgICAgICAgeCA9IGxvIC0geDsKKyAgICAgICAgaWYgKHggPiBsbykgaGktLTsKKworICAgICAgICB5IDw8PSA0MDsKKyAgICAgICAgbG8gPSB5ICsgeDsKKyAgICAgICAgaWYgKGxvIDwgeSkgaGkrKzsKKworICAgICAgICByZXR1cm4gKGhpIHx8IGxvID49IG0gPyBsbyAtIG0gOiBsbyk7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3g2NF9tdWxtb2QyYyhtcGRfdWludF90ICphLCBtcGRfdWludF90ICpiLCBtcGRfdWludF90IHcsIG1wZF91aW50X3QgbSkKK3sKKyAgICAqYSA9IHg2NF9tdWxtb2QoKmEsIHcsIG0pOworICAgICpiID0geDY0X211bG1vZCgqYiwgdywgbSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAoreDY0X211bG1vZDIobXBkX3VpbnRfdCAqYTAsIG1wZF91aW50X3QgYjAsIG1wZF91aW50X3QgKmExLCBtcGRfdWludF90IGIxLAorICAgICAgICAgICAgbXBkX3VpbnRfdCBtKQoreworICAgICphMCA9IHg2NF9tdWxtb2QoKmEwLCBiMCwgbSk7CisgICAgKmExID0geDY0X211bG1vZCgqYTEsIGIxLCBtKTsKK30KKworc3RhdGljIGlubGluZSBtcGRfdWludF90Cit4NjRfcG93bW9kKG1wZF91aW50X3QgYmFzZSwgbXBkX3VpbnRfdCBleHAsIG1wZF91aW50X3QgdW1vZCkKK3sKKyAgICBtcGRfdWludF90IHIgPSAxOworCisgICAgd2hpbGUgKGV4cCA+IDApIHsKKyAgICAgICAgaWYgKGV4cCAmIDEpCisgICAgICAgICAgICByID0geDY0X211bG1vZChyLCBiYXNlLCB1bW9kKTsKKyAgICAgICAgYmFzZSA9IHg2NF9tdWxtb2QoYmFzZSwgYmFzZSwgdW1vZCk7CisgICAgICAgIGV4cCA+Pj0gMTsKKyAgICB9CisKKyAgICByZXR1cm4gcjsKK30KKworLyogRU5EIENPTkZJR182NCAqLworI2Vsc2UgLyogQ09ORklHXzMyICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAzMi1iaXQgbW9kdWxhciBhcml0aG1ldGljICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjaWYgZGVmaW5lZChBTlNJKQorI2lmICFkZWZpbmVkKExFR0FDWV9DT01QSUxFUikKKy8qIEhBVkVfVUlOVDY0X1QgKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3VpbnRfdAorc3RkX211bG1vZChtcGRfdWludF90IGEsIG1wZF91aW50X3QgYiwgbXBkX3VpbnRfdCBtKQoreworICAgIHJldHVybiAoKG1wZF91dWludF90KSBhICogYikgJSBtOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3N0ZF9tdWxtb2QyYyhtcGRfdWludF90ICphLCBtcGRfdWludF90ICpiLCBtcGRfdWludF90IHcsIG1wZF91aW50X3QgbSkKK3sKKyAgICAqYSA9ICgobXBkX3V1aW50X3QpICphICogdykgJSBtOworICAgICpiID0gKChtcGRfdXVpbnRfdCkgKmIgKiB3KSAlIG07Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc3RkX211bG1vZDIobXBkX3VpbnRfdCAqYTAsIG1wZF91aW50X3QgYjAsIG1wZF91aW50X3QgKmExLCBtcGRfdWludF90IGIxLAorICAgICAgICAgICAgbXBkX3VpbnRfdCBtKQoreworICAgICphMCA9ICgobXBkX3V1aW50X3QpICphMCAqIGIwKSAlIG07CisgICAgKmExID0gKChtcGRfdXVpbnRfdCkgKmExICogYjEpICUgbTsKK30KKy8qIEVORCBIQVZFX1VJTlQ2NF9UICovCisjZWxzZQorLyogTEVHQUNZX0NPTVBJTEVSICovCitzdGF0aWMgaW5saW5lIG1wZF91aW50X3QKK3N0ZF9tdWxtb2QobXBkX3VpbnRfdCBhLCBtcGRfdWludF90IGIsIG1wZF91aW50X3QgbSkKK3sKKyAgICBtcGRfdWludF90IGhpLCBsbywgcSwgcjsKKyAgICBfbXBkX211bF93b3JkcygmaGksICZsbywgYSwgYik7CisgICAgX21wZF9kaXZfd29yZHMoJnEsICZyLCBoaSwgbG8sIG0pOworICAgIHJldHVybiByOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQKK3N0ZF9tdWxtb2QyYyhtcGRfdWludF90ICphLCBtcGRfdWludF90ICpiLCBtcGRfdWludF90IHcsIG1wZF91aW50X3QgbSkKK3sKKyAgICAqYSA9IHN0ZF9tdWxtb2QoKmEsIHcsIG0pOworICAgICpiID0gc3RkX211bG1vZCgqYiwgdywgbSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZAorc3RkX211bG1vZDIobXBkX3VpbnRfdCAqYTAsIG1wZF91aW50X3QgYjAsIG1wZF91aW50X3QgKmExLCBtcGRfdWludF90IGIxLAorICAgICAgICAgICAgbXBkX3VpbnRfdCBtKQoreworICAgICphMCA9IHN0ZF9tdWxtb2QoKmEwLCBiMCwgbSk7CisgICAgKmExID0gc3RkX211bG1vZCgqYTEsIGIxLCBtKTsKK30KKy8qIEVORCBMRUdBQ1lfQ09NUElMRVIgKi8KKyNlbmRpZgorCitzdGF0aWMgaW5saW5lIG1wZF91aW50X3QKK3N0ZF9wb3dtb2QobXBkX3VpbnRfdCBiYXNlLCBtcGRfdWludF90IGV4cCwgbXBkX3VpbnRfdCB1bW9kKQoreworICAgIG1wZF91aW50X3QgciA9IDE7CisKKyAgICB3aGlsZSAoZXhwID4gMCkgeworICAgICAgICBpZiAoZXhwICYgMSkKKyAgICAgICAgICAgIHIgPSBzdGRfbXVsbW9kKHIsIGJhc2UsIHVtb2QpOworICAgICAgICBiYXNlID0gc3RkX211bG1vZChiYXNlLCBiYXNlLCB1bW9kKTsKKyAgICAgICAgZXhwID4+PSAxOworICAgIH0KKworICAgIHJldHVybiByOworfQorI2VuZGlmIC8qIEFOU0kgQ09ORklHXzMyICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgIFBlbnRpdW0gUHJvIG1vZHVsYXIgYXJpdGhtZXRpYyAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICogQSBwcm9vZiBvZiB0aGUgYWxnb3JpdGhtIGlzIGluIGxpdGVyYXR1cmUvbXVsbW9kLXBwcm8udHh0LiBUaGUgRlBVCisgKiBjb250cm9sIHdvcmQgbXVzdCBiZSBzZXQgdG8gNjQtYml0IHByZWNpc2lvbiBhbmQgdHJ1bmNhdGlvbiBtb2RlCisgKiBwcmlvciB0byB1c2luZyB0aGVzZSBmdW5jdGlvbnMuCisgKgorICogQWxnb3JpdGhtOiBjYWxjdWxhdGUgKGEgKiBiKSAlIHA6CisgKgorICogICBwICAgIDo9IHByaW1lIDwgMioqMzEKKyAqICAgcGludiA6PSAobG9uZyBkb3VibGUpMS4wIC8gcCAocHJlY2FsY3VsYXRlZCkKKyAqCisgKiAgIGEpIG4gPSBhICogYiAgICAgICAgICAgICAgIyBDYWxjdWxhdGUgZXhhY3QgcHJvZHVjdC4KKyAqICAgYikgcWVzdCA9IG4gKiBwaW52ICAgICAgICAjIENhbGN1bGF0ZSBlc3RpbWF0ZSBmb3IgcSA9IG4gLyBwLgorICogICBjKSBxID0gKHFlc3QrMioqNjMpLTIqKjYzICMgVHJ1bmNhdGUgcWVzdCB0byB0aGUgZXhhY3QgcXVvdGllbnQuCisgKiAgIGQpIHIgPSBuIC0gcSAqIHAgICAgICAgICAgIyBDYWxjdWxhdGUgcmVtYWluZGVyLgorICoKKyAqIFJlbWFya3M6CisgKgorICogICAtIHAgPSBkbW9kIGFuZCBwaW52ID0gZGludm1vZC4KKyAqICAgLSBkaW52bW9kIHBvaW50cyB0byBhbiBhcnJheSBvZiB0aHJlZSB1aW50MzJfdCwgd2hpY2ggaXMgaW50ZXJwcmV0ZWQKKyAqICAgICBhcyBhbiA4MCBiaXQgbG9uZyBkb3VibGUgYnkgZmxkdC4KKyAqICAgLSBJbnRlbCBjb21waWxlcnMgcHJpb3IgdG8gdmVyc2lvbiAxMSBkbyBub3Qgc2VlbSB0byBoYW5kbGUgdGhlCisgKiAgICAgX19HTlVDX18gaW5saW5lIGFzc2VtYmx5IGNvcnJlY3RseS4KKyAqICAgLSByYW5kb20gdGVzdHMgYXJlIHByb3ZpZGVkIGluIHRlc3RzL2V4dGVuZGVkL3Bwcm9fbXVsbW9kLmMKKyAqLworCisjaWYgZGVmaW5lZChQUFJPKQorI2lmIGRlZmluZWQoQVNNKQorCisvKiBSZXR1cm4gKGEgKiBiKSAlIGRtb2QgKi8KK3N0YXRpYyBpbmxpbmUgbXBkX3VpbnRfdAorcHByb19tdWxtb2QobXBkX3VpbnRfdCBhLCBtcGRfdWludF90IGIsIGRvdWJsZSAqZG1vZCwgdWludDMyX3QgKmRpbnZtb2QpCit7CisgICAgbXBkX3VpbnRfdCByZXR2YWw7CisKKyAgICBhc20gKAorICAgICAgICAiZmlsZGwgICUyXG5cdCIKKyAgICAgICAgImZpbGRsICAlMVxuXHQiCisgICAgICAgICJmbXVscCAgJSVzdCwgJSVzdCgxKVxuXHQiCisgICAgICAgICJmbGR0ICAgKCU0KVxuXHQiCisgICAgICAgICJmbXVsICAgJSVzdCgxKSwgJSVzdFxuXHQiCisgICAgICAgICJmbGRzICAgJTVcblx0IgorICAgICAgICAiZmFkZCAgICUlc3QsICUlc3QoMSlcblx0IgorICAgICAgICAiZnN1YnJwICUlc3QsICUlc3QoMSlcblx0IgorICAgICAgICAiZmxkbCAgICglMylcblx0IgorICAgICAgICAiZm11bHAgICUlc3QsICUlc3QoMSlcblx0IgorICAgICAgICAiZnN1YnJwICUlc3QsICUlc3QoMSlcblx0IgorICAgICAgICAiZmlzdHBsICUwXG5cdCIKKyAgICAgICAgOiAiPW0iIChyZXR2YWwpCisgICAgICAgIDogIm0iIChhKSwgIm0iIChiKSwgInIiIChkbW9kKSwgInIiIChkaW52bW9kKSwgIm0iIChNUERfVFdPNjMpCisgICAgICAgIDogInN0IiwgIm1lbW9yeSIKKyAgICApOworCisgICAgcmV0dXJuIHJldHZhbDsKK30KKworLyoKKyAqIFR3byBtb2R1bGFyIG11bHRpcGxpY2F0aW9ucyBpbiBwYXJhbGxlbDoKKyAqICAgICAgKmEwID0gKCphMCAqIHcpICUgZG1vZAorICogICAgICAqYTEgPSAoKmExICogdykgJSBkbW9kCisgKi8KK3N0YXRpYyBpbmxpbmUgdm9pZAorcHByb19tdWxtb2QyYyhtcGRfdWludF90ICphMCwgbXBkX3VpbnRfdCAqYTEsIG1wZF91aW50X3QgdywKKyAgICAgICAgICAgICAgZG91YmxlICpkbW9kLCB1aW50MzJfdCAqZGludm1vZCkKK3sKKyAgICBhc20gKAorICAgICAgICAiZmlsZGwgICUyXG5cdCIKKyAgICAgICAgImZpbGRsICAoJTEpXG5cdCIKKyAgICAgICAgImZtdWwgICAlJXN0KDEpLCAlJXN0XG5cdCIKKyAgICAgICAgImZ4Y2ggICAlJXN0KDEpXG5cdCIKKyAgICAgICAgImZpbGRsICAoJTApXG5cdCIKKyAgICAgICAgImZtdWxwICAlJXN0LCAlJXN0KDEpIFxuXHQiCisgICAgICAgICJmbGR0ICAgKCU0KVxuXHQiCisgICAgICAgICJmbGRzICAgJTVcblx0IgorICAgICAgICAiZmxkICAgICUlc3QoMilcblx0IgorICAgICAgICAiZm11bCAgICUlc3QoMilcblx0IgorICAgICAgICAiZmFkZCAgICUlc3QoMSlcblx0IgorICAgICAgICAiZnN1YiAgICUlc3QoMSlcblx0IgorICAgICAgICAiZm11bGwgICglMylcblx0IgorICAgICAgICAiZnN1YnJwICUlc3QsICUlc3QoMylcblx0IgorICAgICAgICAiZnhjaCAgICUlc3QoMilcblx0IgorICAgICAgICAiZmlzdHBsICglMClcblx0IgorICAgICAgICAiZm11bCAgICUlc3QoMilcblx0IgorICAgICAgICAiZmFkZCAgICUlc3QoMSlcblx0IgorICAgICAgICAiZnN1YnAgICUlc3QsICUlc3QoMSlcblx0IgorICAgICAgICAiZm11bGwgICglMylcblx0IgorICAgICAgICAiZnN1YnJwICUlc3QsICUlc3QoMSlcblx0IgorICAgICAgICAiZmlzdHBsICglMSlcblx0IgorICAgICAgICA6IDogInIiIChhMCksICJyIiAoYTEpLCAibSIgKHcpLAorICAgICAgICAgICAgInIiIChkbW9kKSwgInIiIChkaW52bW9kKSwKKyAgICAgICAgICAgICJtIiAoTVBEX1RXTzYzKQorICAgICAgICA6ICJzdCIsICJtZW1vcnkiCisgICAgKTsKK30KKworLyoKKyAqIFR3byBtb2R1bGFyIG11bHRpcGxpY2F0aW9ucyBpbiBwYXJhbGxlbDoKKyAqICAgICAgKmEwID0gKCphMCAqIGIwKSAlIGRtb2QKKyAqICAgICAgKmExID0gKCphMSAqIGIxKSAlIGRtb2QKKyAqLworc3RhdGljIGlubGluZSB2b2lkCitwcHJvX211bG1vZDIobXBkX3VpbnRfdCAqYTAsIG1wZF91aW50X3QgYjAsIG1wZF91aW50X3QgKmExLCBtcGRfdWludF90IGIxLAorICAgICAgICAgICAgIGRvdWJsZSAqZG1vZCwgdWludDMyX3QgKmRpbnZtb2QpCit7CisgICAgYXNtICgKKyAgICAgICAgImZpbGRsICAlM1xuXHQiCisgICAgICAgICJmaWxkbCAgKCUyKVxuXHQiCisgICAgICAgICJmbXVscCAgJSVzdCwgJSVzdCgxKVxuXHQiCisgICAgICAgICJmaWxkbCAgJTFcblx0IgorICAgICAgICAiZmlsZGwgICglMClcblx0IgorICAgICAgICAiZm11bHAgICUlc3QsICUlc3QoMSlcblx0IgorICAgICAgICAiZmxkdCAgICglNSlcblx0IgorICAgICAgICAiZmxkICAgICUlc3QoMilcblx0IgorICAgICAgICAiZm11bCAgICUlc3QoMSksICUlc3Rcblx0IgorICAgICAgICAiZnhjaCAgICUlc3QoMSlcblx0IgorICAgICAgICAiZm11bCAgICUlc3QoMiksICUlc3Rcblx0IgorICAgICAgICAiZmxkcyAgICU2XG5cdCIKKyAgICAgICAgImZsZGwgICAoJTQpXG5cdCIKKyAgICAgICAgImZ4Y2ggICAlJXN0KDMpXG5cdCIKKyAgICAgICAgImZhZGQgICAlJXN0KDEpLCAlJXN0XG5cdCIKKyAgICAgICAgImZ4Y2ggICAlJXN0KDIpXG5cdCIKKyAgICAgICAgImZhZGQgICAlJXN0KDEpLCAlJXN0XG5cdCIKKyAgICAgICAgImZ4Y2ggICAlJXN0KDIpXG5cdCIKKyAgICAgICAgImZzdWIgICAlJXN0KDEpLCAlJXN0XG5cdCIKKyAgICAgICAgImZ4Y2ggICAlJXN0KDIpXG5cdCIKKyAgICAgICAgImZzdWJwICAlJXN0LCAlJXN0KDEpXG5cdCIKKyAgICAgICAgImZ4Y2ggICAlJXN0KDEpXG5cdCIKKyAgICAgICAgImZtdWwgICAlJXN0KDIpLCAlJXN0XG5cdCIKKyAgICAgICAgImZ4Y2ggICAlJXN0KDEpXG5cdCIKKyAgICAgICAgImZtdWxwICAlJXN0LCAlJXN0KDIpXG5cdCIKKyAgICAgICAgImZzdWJycCAlJXN0LCAlJXN0KDMpXG5cdCIKKyAgICAgICAgImZzdWJycCAlJXN0LCAlJXN0KDEpXG5cdCIKKyAgICAgICAgImZ4Y2ggICAlJXN0KDEpXG5cdCIKKyAgICAgICAgImZpc3RwbCAoJTIpXG5cdCIKKyAgICAgICAgImZpc3RwbCAoJTApXG5cdCIKKyAgICAgICAgOiA6ICJyIiAoYTApLCAibSIgKGIwKSwgInIiIChhMSksICJtIiAoYjEpLAorICAgICAgICAgICAgInIiIChkbW9kKSwgInIiIChkaW52bW9kKSwKKyAgICAgICAgICAgICJtIiAoTVBEX1RXTzYzKQorICAgICAgICA6ICJzdCIsICJtZW1vcnkiCisgICAgKTsKK30KKy8qIEVORCBQUFJPIEdDQyBBU00gKi8KKyNlbGlmIGRlZmluZWQoTUFTTSkKKworLyogUmV0dXJuIChhICogYikgJSBkbW9kICovCitzdGF0aWMgaW5saW5lIG1wZF91aW50X3QgX19jZGVjbAorcHByb19tdWxtb2QobXBkX3VpbnRfdCBhLCBtcGRfdWludF90IGIsIGRvdWJsZSAqZG1vZCwgdWludDMyX3QgKmRpbnZtb2QpCit7CisgICAgbXBkX3VpbnRfdCByZXR2YWw7CisKKyAgICBfX2FzbSB7CisgICAgICAgIG1vdiAgICAgZWF4LCBkaW52bW9kCisgICAgICAgIG1vdiAgICAgZWR4LCBkbW9kCisgICAgICAgIGZpbGQgICAgYgorICAgICAgICBmaWxkICAgIGEKKyAgICAgICAgZm11bHAgICBzdCgxKSwgc3QKKyAgICAgICAgZmxkICAgICBUQllURSBQVFIgW2VheF0KKyAgICAgICAgZm11bCAgICBzdCwgc3QoMSkKKyAgICAgICAgZmxkICAgICBNUERfVFdPNjMKKyAgICAgICAgZmFkZCAgICBzdCgxKSwgc3QKKyAgICAgICAgZnN1YnAgICBzdCgxKSwgc3QKKyAgICAgICAgZmxkICAgICBRV09SRCBQVFIgW2VkeF0KKyAgICAgICAgZm11bHAgICBzdCgxKSwgc3QKKyAgICAgICAgZnN1YnAgICBzdCgxKSwgc3QKKyAgICAgICAgZmlzdHAgICByZXR2YWwKKyAgICB9CisKKyAgICByZXR1cm4gcmV0dmFsOworfQorCisvKgorICogVHdvIG1vZHVsYXIgbXVsdGlwbGljYXRpb25zIGluIHBhcmFsbGVsOgorICogICAgICAqYTAgPSAoKmEwICogdykgJSBkbW9kCisgKiAgICAgICphMSA9ICgqYTEgKiB3KSAlIGRtb2QKKyAqLworc3RhdGljIGlubGluZSBtcGRfdWludF90IF9fY2RlY2wKK3Bwcm9fbXVsbW9kMmMobXBkX3VpbnRfdCAqYTAsIG1wZF91aW50X3QgKmExLCBtcGRfdWludF90IHcsCisgICAgICAgICAgICAgIGRvdWJsZSAqZG1vZCwgdWludDMyX3QgKmRpbnZtb2QpCit7CisgICAgX19hc20geworICAgICAgICBtb3YgICAgIGVjeCwgZG1vZAorICAgICAgICBtb3YgICAgIGVkeCwgYTEKKyAgICAgICAgbW92ICAgICBlYngsIGRpbnZtb2QKKyAgICAgICAgbW92ICAgICBlYXgsIGEwCisgICAgICAgIGZpbGQgICAgdworICAgICAgICBmaWxkICAgIERXT1JEIFBUUiBbZWR4XQorICAgICAgICBmbXVsICAgIHN0LCBzdCgxKQorICAgICAgICBmeGNoICAgIHN0KDEpCisgICAgICAgIGZpbGQgICAgRFdPUkQgUFRSIFtlYXhdCisgICAgICAgIGZtdWxwICAgc3QoMSksIHN0CisgICAgICAgIGZsZCAgICAgVEJZVEUgUFRSIFtlYnhdCisgICAgICAgIGZsZCAgICAgTVBEX1RXTzYzCisgICAgICAgIGZsZCAgICAgc3QoMikKKyAgICAgICAgZm11bCAgICBzdCwgc3QoMikKKyAgICAgICAgZmFkZCAgICBzdCwgc3QoMSkKKyAgICAgICAgZnN1YiAgICBzdCwgc3QoMSkKKyAgICAgICAgZm11bCAgICBRV09SRCBQVFIgW2VjeF0KKyAgICAgICAgZnN1YnAgICBzdCgzKSwgc3QKKyAgICAgICAgZnhjaCAgICBzdCgyKQorICAgICAgICBmaXN0cCAgIERXT1JEIFBUUiBbZWF4XQorICAgICAgICBmbXVsICAgIHN0LCBzdCgyKQorICAgICAgICBmYWRkICAgIHN0LCBzdCgxKQorICAgICAgICBmc3VicnAgIHN0KDEpLCBzdAorICAgICAgICBmbXVsICAgIFFXT1JEIFBUUiBbZWN4XQorICAgICAgICBmc3VicCAgIHN0KDEpLCBzdAorICAgICAgICBmaXN0cCAgIERXT1JEIFBUUiBbZWR4XQorICAgIH0KK30KKworLyoKKyAqIFR3byBtb2R1bGFyIG11bHRpcGxpY2F0aW9ucyBpbiBwYXJhbGxlbDoKKyAqICAgICAgKmEwID0gKCphMCAqIGIwKSAlIGRtb2QKKyAqICAgICAgKmExID0gKCphMSAqIGIxKSAlIGRtb2QKKyAqLworc3RhdGljIGlubGluZSB2b2lkIF9fY2RlY2wKK3Bwcm9fbXVsbW9kMihtcGRfdWludF90ICphMCwgbXBkX3VpbnRfdCBiMCwgbXBkX3VpbnRfdCAqYTEsIG1wZF91aW50X3QgYjEsCisgICAgICAgICAgICAgZG91YmxlICpkbW9kLCB1aW50MzJfdCAqZGludm1vZCkKK3sKKyAgICBfX2FzbSB7CisgICAgICAgIG1vdiAgICAgZWN4LCBkbW9kCisgICAgICAgIG1vdiAgICAgZWR4LCBhMQorICAgICAgICBtb3YgICAgIGVieCwgZGludm1vZAorICAgICAgICBtb3YgICAgIGVheCwgYTAKKyAgICAgICAgZmlsZCAgICBiMQorICAgICAgICBmaWxkICAgIERXT1JEIFBUUiBbZWR4XQorICAgICAgICBmbXVscCAgIHN0KDEpLCBzdAorICAgICAgICBmaWxkICAgIGIwCisgICAgICAgIGZpbGQgICAgRFdPUkQgUFRSIFtlYXhdCisgICAgICAgIGZtdWxwICAgc3QoMSksIHN0CisgICAgICAgIGZsZCAgICAgVEJZVEUgUFRSIFtlYnhdCisgICAgICAgIGZsZCAgICAgc3QoMikKKyAgICAgICAgZm11bCAgICBzdCwgc3QoMSkKKyAgICAgICAgZnhjaCAgICBzdCgxKQorICAgICAgICBmbXVsICAgIHN0LCBzdCgyKQorICAgICAgICBmbGQgICAgIERXT1JEIFBUUiBNUERfVFdPNjMKKyAgICAgICAgZmxkICAgICBRV09SRCBQVFIgW2VjeF0KKyAgICAgICAgZnhjaCAgICBzdCgzKQorICAgICAgICBmYWRkICAgIHN0LCBzdCgxKQorICAgICAgICBmeGNoICAgIHN0KDIpCisgICAgICAgIGZhZGQgICAgc3QsIHN0KDEpCisgICAgICAgIGZ4Y2ggICAgc3QoMikKKyAgICAgICAgZnN1YiAgICBzdCwgc3QoMSkKKyAgICAgICAgZnhjaCAgICBzdCgyKQorICAgICAgICBmc3VicnAgIHN0KDEpLCBzdAorICAgICAgICBmeGNoICAgIHN0KDEpCisgICAgICAgIGZtdWwgICAgc3QsIHN0KDIpCisgICAgICAgIGZ4Y2ggICAgc3QoMSkKKyAgICAgICAgZm11bHAgICBzdCgyKSwgc3QKKyAgICAgICAgZnN1YnAgICBzdCgzKSwgc3QKKyAgICAgICAgZnN1YnAgICBzdCgxKSwgc3QKKyAgICAgICAgZnhjaCAgICBzdCgxKQorICAgICAgICBmaXN0cCAgIERXT1JEIFBUUiBbZWR4XQorICAgICAgICBmaXN0cCAgIERXT1JEIFBUUiBbZWF4XQorICAgIH0KK30KKyNlbmRpZiAvKiBQUFJPIE1BU00gKF9NU0NfVkVSKSAqLworCisKKy8qIFJldHVybiAoYmFzZSAqKiBleHApICUgZG1vZCAqLworc3RhdGljIGlubGluZSBtcGRfdWludF90CitwcHJvX3Bvd21vZChtcGRfdWludF90IGJhc2UsIG1wZF91aW50X3QgZXhwLCBkb3VibGUgKmRtb2QsIHVpbnQzMl90ICpkaW52bW9kKQoreworICAgIG1wZF91aW50X3QgciA9IDE7CisKKyAgICB3aGlsZSAoZXhwID4gMCkgeworICAgICAgICBpZiAoZXhwICYgMSkKKyAgICAgICAgICAgIHIgPSBwcHJvX211bG1vZChyLCBiYXNlLCBkbW9kLCBkaW52bW9kKTsKKyAgICAgICAgYmFzZSA9IHBwcm9fbXVsbW9kKGJhc2UsIGJhc2UsIGRtb2QsIGRpbnZtb2QpOworICAgICAgICBleHAgPj49IDE7CisgICAgfQorCisgICAgcmV0dXJuIHI7Cit9CisjZW5kaWYgLyogUFBSTyAqLworI2VuZGlmIC8qIENPTkZJR18zMiAqLworCisKKyNlbmRpZiAvKiBVTU9EQVJJVEhfSCAqLworCisKKwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy92Y2NvbXBhdC5oIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy92Y2NvbXBhdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3NmUwMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL3ZjY29tcGF0LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisgKiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorICogSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBWQ0NPTVBBVF9ICisjZGVmaW5lIFZDQ09NUEFUX0gKKworCisvKiBWaXN1YWwgQyBmaXhlczogbm8gc3RkaW50LmgsIG5vIHNucHJpbnRmIC4uLiAqLworI2lmZGVmIF9NU0NfVkVSCisgICNpbmNsdWRlICJ2Y3N0ZGludC5oIgorICAjdW5kZWYgaW5saW5lCisgICNkZWZpbmUgaW5saW5lIF9faW5saW5lCisgICN1bmRlZiByYW5kb20KKyAgI2RlZmluZSByYW5kb20gcmFuZAorICAjdW5kZWYgc3JhbmRvbQorICAjZGVmaW5lIHNyYW5kb20gc3JhbmQKKyAgI3VuZGVmIHNucHJpbnRmCisgICNkZWZpbmUgc25wcmludGYgc3ByaW50Zl9zCisgICNkZWZpbmUgSEFWRV9TTlBSSU5URgorICAjdW5kZWYgc3RybmNhc2VjbXAKKyAgI2RlZmluZSBzdHJuY2FzZWNtcCBfc3RybmljbXAKKyAgI3VuZGVmIHN0cmNhc2VjbXAKKyAgI2RlZmluZSBzdHJjYXNlY21wIF9zdHJpY21wCisgICN1bmRlZiBzdHJ0b2xsCisgICNkZWZpbmUgc3RydG9sbCBfc3RydG9pNjQKKyAgI2RlZmluZSBzdHJkdXAgX3N0cmR1cAorICAjZGVmaW5lIFBSSWk2NCAiSTY0aSIKKyAgI2RlZmluZSBQUkl1NjQgIkk2NHUiCisgICNkZWZpbmUgUFJJaTMyICJJMzJpIgorICAjZGVmaW5lIFBSSXUzMiAiSTMydSIKKyNlbmRpZgorCisKKyNlbmRpZiAvKiBWQ0NPTVBBVF9IICovCisKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL3ZjZGl2NjQuYXNtIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy92Y2RpdjY0LmFzbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMWJiYTA4Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC9saWJtcGRlYy92Y2RpdjY0LmFzbQpAQCAtMCwwICsxLDQ4IEBACis7Cis7IENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorOworOyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKzsgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCis7IGFyZSBtZXQ6Cis7Cis7IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cis7ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKzsKKzsgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKzsgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorOyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorOworOyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorOyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKzsgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKzsgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKzsgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKzsgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKzsgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCis7IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCis7IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKzsgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorOyBTVUNIIERBTUFHRS4KKzsKKworCitQVUJMSUMgICAgX21wZF9kaXZfd29yZHMKK19URVhUICAgIFNFR01FTlQKK3EkID0gOAorciQgPSAxNgoraGkkID0gMjQKK2xvJCA9IDMyCitkJCA9IDQwCitfbXBkX2Rpdl93b3JkcyBQUk9DCisgICAgbW92ICAgIHIxMCwgcmR4CisgICAgbW92ICAgIHJkeCwgcjgKKyAgICBtb3YgICAgcmF4LCByOQorICAgIGRpdiAgICBRV09SRCBQVFIgZCRbcnNwXQorICAgIG1vdiAgICBRV09SRCBQVFIgW3IxMF0sIHJkeAorICAgIG1vdiAgICBRV09SRCBQVFIgW3JjeF0sIHJheAorICAgIHJldCAgICAwCitfbXBkX2Rpdl93b3JkcyBFTkRQCitfVEVYVCAgICBFTkRTCitFTkQKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL3Zjc3RkaW50LmggYi9Nb2R1bGVzL19kZWNpbWFsL2xpYm1wZGVjL3Zjc3RkaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTAzMmZmMQotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvbGlibXBkZWMvdmNzdGRpbnQuaApAQCAtMCwwICsxLDIzMiBAQAorLy8gSVNPIEM5eCAgY29tcGxpYW50IHN0ZGludC5oIGZvciBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbworLy8gQmFzZWQgb24gSVNPL0lFQyA5ODk5OlRDMiBDb21taXR0ZWUgZHJhZnQgKE1heSA2LCAyMDA1KSBXRzE0L04xMTI0IAorLy8gCisvLyAgQ29weXJpZ2h0IChjKSAyMDA2LTIwMDggQWxleGFuZGVyIENoZW1lcmlzCisvLyAKKy8vIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisvLyAKKy8vICAgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorLy8gICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorLy8gCisvLyAgIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisvLyAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKy8vICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy8vIAorLy8gICAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cworLy8gICAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKy8vIAorLy8gVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRAorLy8gV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKKy8vIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PCisvLyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisvLyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisvLyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKy8vIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCAKKy8vIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisvLyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisvLyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKy8vIAorLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCisjaWZuZGVmIF9NU0NfVkVSIC8vIFsKKyNlcnJvciAiVXNlIHRoaXMgaGVhZGVyIG9ubHkgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIEMrKyBjb21waWxlcnMhIgorI2VuZGlmIC8vIF9NU0NfVkVSIF0KKworI2lmbmRlZiBfTVNDX1NURElOVF9IXyAvLyBbCisjZGVmaW5lIF9NU0NfU1RESU5UX0hfCisKKyNpZiBfTVNDX1ZFUiA+IDEwMDAKKyNwcmFnbWEgb25jZQorI2VuZGlmCisKKyNpbmNsdWRlIDxsaW1pdHMuaD4KKworLy8gRm9yIFZpc3VhbCBTdHVkaW8gNiBpbiBDKysgbW9kZSB3cmFwIDx3Y2hhci5oPiBpbmNsdWRlIHdpdGggJ2V4dGVybiAiQysrIiB7fScKKy8vIG9yIGNvbXBpbGVyIGdpdmUgbWFueSBlcnJvcnMgbGlrZSB0aGlzOgorLy8gICBlcnJvciBDMjczMzogc2Vjb25kIEMgbGlua2FnZSBvZiBvdmVybG9hZGVkIGZ1bmN0aW9uICd3bWVtY2hyJyBub3QgYWxsb3dlZAorI2lmIChfTVNDX1ZFUiA8IDEzMDApICYmIGRlZmluZWQoX19jcGx1c3BsdXMpCisgICBleHRlcm4gIkMrKyIgeworI2VuZGlmIAorIyAgICAgaW5jbHVkZSA8d2NoYXIuaD4KKyNpZiAoX01TQ19WRVIgPCAxMzAwKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorICAgfQorI2VuZGlmCisKKy8vIERlZmluZSBfVzY0IG1hY3JvcyB0byBtYXJrIHR5cGVzIGNoYW5naW5nIHRoZWlyIHNpemUsIGxpa2UgaW50cHRyX3QuCisjaWZuZGVmIF9XNjQKKyMgIGlmICFkZWZpbmVkKF9fbWlkbCkgJiYgKGRlZmluZWQoX1g4Nl8pIHx8IGRlZmluZWQoX01fSVg4NikpICYmIF9NU0NfVkVSID49IDEzMDAKKyMgICAgIGRlZmluZSBfVzY0IF9fdzY0CisjICBlbHNlCisjICAgICBkZWZpbmUgX1c2NAorIyAgZW5kaWYKKyNlbmRpZgorCisKKy8vIDcuMTguMSBJbnRlZ2VyIHR5cGVzCisKKy8vIDcuMTguMS4xIEV4YWN0LXdpZHRoIGludGVnZXIgdHlwZXMKK3R5cGVkZWYgX19pbnQ4ICAgICAgICAgICAgaW50OF90OwordHlwZWRlZiBfX2ludDE2ICAgICAgICAgICBpbnQxNl90OwordHlwZWRlZiBfX2ludDMyICAgICAgICAgICBpbnQzMl90OwordHlwZWRlZiBfX2ludDY0ICAgICAgICAgICBpbnQ2NF90OwordHlwZWRlZiB1bnNpZ25lZCBfX2ludDggICB1aW50OF90OwordHlwZWRlZiB1bnNpZ25lZCBfX2ludDE2ICB1aW50MTZfdDsKK3R5cGVkZWYgdW5zaWduZWQgX19pbnQzMiAgdWludDMyX3Q7Cit0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgIHVpbnQ2NF90OworCisvLyA3LjE4LjEuMiBNaW5pbXVtLXdpZHRoIGludGVnZXIgdHlwZXMKK3R5cGVkZWYgaW50OF90ICAgIGludF9sZWFzdDhfdDsKK3R5cGVkZWYgaW50MTZfdCAgIGludF9sZWFzdDE2X3Q7Cit0eXBlZGVmIGludDMyX3QgICBpbnRfbGVhc3QzMl90OwordHlwZWRlZiBpbnQ2NF90ICAgaW50X2xlYXN0NjRfdDsKK3R5cGVkZWYgdWludDhfdCAgIHVpbnRfbGVhc3Q4X3Q7Cit0eXBlZGVmIHVpbnQxNl90ICB1aW50X2xlYXN0MTZfdDsKK3R5cGVkZWYgdWludDMyX3QgIHVpbnRfbGVhc3QzMl90OwordHlwZWRlZiB1aW50NjRfdCAgdWludF9sZWFzdDY0X3Q7CisKKy8vIDcuMTguMS4zIEZhc3Rlc3QgbWluaW11bS13aWR0aCBpbnRlZ2VyIHR5cGVzCit0eXBlZGVmIGludDhfdCAgICBpbnRfZmFzdDhfdDsKK3R5cGVkZWYgaW50MTZfdCAgIGludF9mYXN0MTZfdDsKK3R5cGVkZWYgaW50MzJfdCAgIGludF9mYXN0MzJfdDsKK3R5cGVkZWYgaW50NjRfdCAgIGludF9mYXN0NjRfdDsKK3R5cGVkZWYgdWludDhfdCAgIHVpbnRfZmFzdDhfdDsKK3R5cGVkZWYgdWludDE2X3QgIHVpbnRfZmFzdDE2X3Q7Cit0eXBlZGVmIHVpbnQzMl90ICB1aW50X2Zhc3QzMl90OwordHlwZWRlZiB1aW50NjRfdCAgdWludF9mYXN0NjRfdDsKKworLy8gNy4xOC4xLjQgSW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIGhvbGRpbmcgb2JqZWN0IHBvaW50ZXJzCisjaWZkZWYgX1dJTjY0IC8vIFsKKyAgIHR5cGVkZWYgX19pbnQ2NCAgICAgICAgICAgaW50cHRyX3Q7CisgICB0eXBlZGVmIHVuc2lnbmVkIF9faW50NjQgIHVpbnRwdHJfdDsKKyNlbHNlIC8vIF9XSU42NCBdWworICAgdHlwZWRlZiBfVzY0IGludCAgICAgICAgICAgICAgIGludHB0cl90OworICAgdHlwZWRlZiBfVzY0IHVuc2lnbmVkIGludCAgICAgIHVpbnRwdHJfdDsKKyNlbmRpZiAvLyBfV0lONjQgXQorCisvLyA3LjE4LjEuNSBHcmVhdGVzdC13aWR0aCBpbnRlZ2VyIHR5cGVzCit0eXBlZGVmIGludDY0X3QgICBpbnRtYXhfdDsKK3R5cGVkZWYgdWludDY0X3QgIHVpbnRtYXhfdDsKKworCisvLyA3LjE4LjIgTGltaXRzIG9mIHNwZWNpZmllZC13aWR0aCBpbnRlZ2VyIHR5cGVzCisKKyNpZiAhZGVmaW5lZChfX2NwbHVzcGx1cykgfHwgZGVmaW5lZChfX1NURENfTElNSVRfTUFDUk9TKSAvLyBbICAgU2VlIGZvb3Rub3RlIDIyMCBhdCBwYWdlIDI1NyBhbmQgZm9vdG5vdGUgMjIxIGF0IHBhZ2UgMjU5CisKKy8vIDcuMTguMi4xIExpbWl0cyBvZiBleGFjdC13aWR0aCBpbnRlZ2VyIHR5cGVzCisjZGVmaW5lIElOVDhfTUlOICAgICAoKGludDhfdClfSThfTUlOKQorI2RlZmluZSBJTlQ4X01BWCAgICAgX0k4X01BWAorI2RlZmluZSBJTlQxNl9NSU4gICAgKChpbnQxNl90KV9JMTZfTUlOKQorI2RlZmluZSBJTlQxNl9NQVggICAgX0kxNl9NQVgKKyNkZWZpbmUgSU5UMzJfTUlOICAgICgoaW50MzJfdClfSTMyX01JTikKKyNkZWZpbmUgSU5UMzJfTUFYICAgIF9JMzJfTUFYCisjZGVmaW5lIElOVDY0X01JTiAgICAoKGludDY0X3QpX0k2NF9NSU4pCisjZGVmaW5lIElOVDY0X01BWCAgICBfSTY0X01BWAorI2RlZmluZSBVSU5UOF9NQVggICAgX1VJOF9NQVgKKyNkZWZpbmUgVUlOVDE2X01BWCAgIF9VSTE2X01BWAorI2RlZmluZSBVSU5UMzJfTUFYICAgX1VJMzJfTUFYCisjZGVmaW5lIFVJTlQ2NF9NQVggICBfVUk2NF9NQVgKKworLy8gNy4xOC4yLjIgTGltaXRzIG9mIG1pbmltdW0td2lkdGggaW50ZWdlciB0eXBlcworI2RlZmluZSBJTlRfTEVBU1Q4X01JTiAgICBJTlQ4X01JTgorI2RlZmluZSBJTlRfTEVBU1Q4X01BWCAgICBJTlQ4X01BWAorI2RlZmluZSBJTlRfTEVBU1QxNl9NSU4gICBJTlQxNl9NSU4KKyNkZWZpbmUgSU5UX0xFQVNUMTZfTUFYICAgSU5UMTZfTUFYCisjZGVmaW5lIElOVF9MRUFTVDMyX01JTiAgIElOVDMyX01JTgorI2RlZmluZSBJTlRfTEVBU1QzMl9NQVggICBJTlQzMl9NQVgKKyNkZWZpbmUgSU5UX0xFQVNUNjRfTUlOICAgSU5UNjRfTUlOCisjZGVmaW5lIElOVF9MRUFTVDY0X01BWCAgIElOVDY0X01BWAorI2RlZmluZSBVSU5UX0xFQVNUOF9NQVggICBVSU5UOF9NQVgKKyNkZWZpbmUgVUlOVF9MRUFTVDE2X01BWCAgVUlOVDE2X01BWAorI2RlZmluZSBVSU5UX0xFQVNUMzJfTUFYICBVSU5UMzJfTUFYCisjZGVmaW5lIFVJTlRfTEVBU1Q2NF9NQVggIFVJTlQ2NF9NQVgKKworLy8gNy4xOC4yLjMgTGltaXRzIG9mIGZhc3Rlc3QgbWluaW11bS13aWR0aCBpbnRlZ2VyIHR5cGVzCisjZGVmaW5lIElOVF9GQVNUOF9NSU4gICAgSU5UOF9NSU4KKyNkZWZpbmUgSU5UX0ZBU1Q4X01BWCAgICBJTlQ4X01BWAorI2RlZmluZSBJTlRfRkFTVDE2X01JTiAgIElOVDE2X01JTgorI2RlZmluZSBJTlRfRkFTVDE2X01BWCAgIElOVDE2X01BWAorI2RlZmluZSBJTlRfRkFTVDMyX01JTiAgIElOVDMyX01JTgorI2RlZmluZSBJTlRfRkFTVDMyX01BWCAgIElOVDMyX01BWAorI2RlZmluZSBJTlRfRkFTVDY0X01JTiAgIElOVDY0X01JTgorI2RlZmluZSBJTlRfRkFTVDY0X01BWCAgIElOVDY0X01BWAorI2RlZmluZSBVSU5UX0ZBU1Q4X01BWCAgIFVJTlQ4X01BWAorI2RlZmluZSBVSU5UX0ZBU1QxNl9NQVggIFVJTlQxNl9NQVgKKyNkZWZpbmUgVUlOVF9GQVNUMzJfTUFYICBVSU5UMzJfTUFYCisjZGVmaW5lIFVJTlRfRkFTVDY0X01BWCAgVUlOVDY0X01BWAorCisvLyA3LjE4LjIuNCBMaW1pdHMgb2YgaW50ZWdlciB0eXBlcyBjYXBhYmxlIG9mIGhvbGRpbmcgb2JqZWN0IHBvaW50ZXJzCisjaWZkZWYgX1dJTjY0IC8vIFsKKyMgIGRlZmluZSBJTlRQVFJfTUlOICAgSU5UNjRfTUlOCisjICBkZWZpbmUgSU5UUFRSX01BWCAgIElOVDY0X01BWAorIyAgZGVmaW5lIFVJTlRQVFJfTUFYICBVSU5UNjRfTUFYCisjZWxzZSAvLyBfV0lONjQgXVsKKyMgIGRlZmluZSBJTlRQVFJfTUlOICAgSU5UMzJfTUlOCisjICBkZWZpbmUgSU5UUFRSX01BWCAgIElOVDMyX01BWAorIyAgZGVmaW5lIFVJTlRQVFJfTUFYICBVSU5UMzJfTUFYCisjZW5kaWYgLy8gX1dJTjY0IF0KKworLy8gNy4xOC4yLjUgTGltaXRzIG9mIGdyZWF0ZXN0LXdpZHRoIGludGVnZXIgdHlwZXMKKyNkZWZpbmUgSU5UTUFYX01JTiAgIElOVDY0X01JTgorI2RlZmluZSBJTlRNQVhfTUFYICAgSU5UNjRfTUFYCisjZGVmaW5lIFVJTlRNQVhfTUFYICBVSU5UNjRfTUFYCisKKy8vIDcuMTguMyBMaW1pdHMgb2Ygb3RoZXIgaW50ZWdlciB0eXBlcworCisjaWZkZWYgX1dJTjY0IC8vIFsKKyMgIGRlZmluZSBQVFJESUZGX01JTiAgX0k2NF9NSU4KKyMgIGRlZmluZSBQVFJESUZGX01BWCAgX0k2NF9NQVgKKyNlbHNlICAvLyBfV0lONjQgXVsKKyMgIGRlZmluZSBQVFJESUZGX01JTiAgX0kzMl9NSU4KKyMgIGRlZmluZSBQVFJESUZGX01BWCAgX0kzMl9NQVgKKyNlbmRpZiAgLy8gX1dJTjY0IF0KKworI2RlZmluZSBTSUdfQVRPTUlDX01JTiAgSU5UX01JTgorI2RlZmluZSBTSUdfQVRPTUlDX01BWCAgSU5UX01BWAorCisjaWZuZGVmIFNJWkVfTUFYIC8vIFsKKyMgIGlmZGVmIF9XSU42NCAvLyBbCisjICAgICBkZWZpbmUgU0laRV9NQVggIF9VSTY0X01BWAorIyAgZWxzZSAvLyBfV0lONjQgXVsKKyMgICAgIGRlZmluZSBTSVpFX01BWCAgX1VJMzJfTUFYCisjICBlbmRpZiAvLyBfV0lONjQgXQorI2VuZGlmIC8vIFNJWkVfTUFYIF0KKworLy8gV0NIQVJfTUlOIGFuZCBXQ0hBUl9NQVggYXJlIGFsc28gZGVmaW5lZCBpbiA8d2NoYXIuaD4KKyNpZm5kZWYgV0NIQVJfTUlOIC8vIFsKKyMgIGRlZmluZSBXQ0hBUl9NSU4gIDAKKyNlbmRpZiAgLy8gV0NIQVJfTUlOIF0KKyNpZm5kZWYgV0NIQVJfTUFYIC8vIFsKKyMgIGRlZmluZSBXQ0hBUl9NQVggIF9VSTE2X01BWAorI2VuZGlmICAvLyBXQ0hBUl9NQVggXQorCisjZGVmaW5lIFdJTlRfTUlOICAwCisjZGVmaW5lIFdJTlRfTUFYICBfVUkxNl9NQVgKKworI2VuZGlmIC8vIF9fU1REQ19MSU1JVF9NQUNST1MgXQorCisKKy8vIDcuMTguNCBMaW1pdHMgb2Ygb3RoZXIgaW50ZWdlciB0eXBlcworCisjaWYgIWRlZmluZWQoX19jcGx1c3BsdXMpIHx8IGRlZmluZWQoX19TVERDX0NPTlNUQU5UX01BQ1JPUykgLy8gWyAgIFNlZSBmb290bm90ZSAyMjQgYXQgcGFnZSAyNjAKKworLy8gNy4xOC40LjEgTWFjcm9zIGZvciBtaW5pbXVtLXdpZHRoIGludGVnZXIgY29uc3RhbnRzCisKKyNkZWZpbmUgSU5UOF9DKHZhbCkgIHZhbCMjaTgKKyNkZWZpbmUgSU5UMTZfQyh2YWwpIHZhbCMjaTE2CisjZGVmaW5lIElOVDMyX0ModmFsKSB2YWwjI2kzMgorI2RlZmluZSBJTlQ2NF9DKHZhbCkgdmFsIyNpNjQKKworI2RlZmluZSBVSU5UOF9DKHZhbCkgIHZhbCMjdWk4CisjZGVmaW5lIFVJTlQxNl9DKHZhbCkgdmFsIyN1aTE2CisjZGVmaW5lIFVJTlQzMl9DKHZhbCkgdmFsIyN1aTMyCisjZGVmaW5lIFVJTlQ2NF9DKHZhbCkgdmFsIyN1aTY0CisKKy8vIDcuMTguNC4yIE1hY3JvcyBmb3IgZ3JlYXRlc3Qtd2lkdGggaW50ZWdlciBjb25zdGFudHMKKyNkZWZpbmUgSU5UTUFYX0MgICBJTlQ2NF9DCisjZGVmaW5lIFVJTlRNQVhfQyAgVUlOVDY0X0MKKworI2VuZGlmIC8vIF9fU1REQ19DT05TVEFOVF9NQUNST1MgXQorCisKKyNlbmRpZiAvLyBfTVNDX1NURElOVF9IXyBdCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL3Rlc3RzL1JFQURNRS50eHQgYi9Nb2R1bGVzL19kZWNpbWFsL3Rlc3RzL1JFQURNRS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdiNmZmNgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvdGVzdHMvUkVBRE1FLnR4dApAQCAtMCwwICsxLDE1IEBACisKKworVGhpcyBkaXJlY3RvcnkgY29udGFpbnMgZXh0ZW5kZWQgdGVzdHMgYW5kIGEgYmVuY2htYXJrIGFnYWluc3QgZGVjaW1hbC5weToKKworICBiZW5jaC5weSAgLT4gIEJlbmNobWFyayBmb3Igc21hbGwgYW5kIGxhcmdlIHByZWNpc2lvbnMuCisgIFVzYWdlOiAuLi8uLi8uLi9weXRob24gYmVuY2gucHkKKworICBmb3JtYXRoZWxwZXIucHkgICAtPgorICByYW5kZGVjLnB5ICAgICAgICAtPiAgR2VuZXJhdGUgdGVzdCBjYXNlcyBmb3IgZGVjY2hlY2sucHkuCisgIHJhbmRmbG9hdC5weSAgICAgIC0+CisKKyAgZGVjY2hlY2sucHkgIC0+ICBSdW4gZXh0ZW5kZWQgdGVzdHMuCisgIFVzYWdlOiAuLi8uLi8uLi9weXRob24gZGVjY2hlY2sucHkgWy0tc2hvcnR8LS1tZWRpdW18LS1sb25nfC0tYWxsXQorCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvdGVzdHMvYmVuY2gucHkgYi9Nb2R1bGVzL19kZWNpbWFsL3Rlc3RzL2JlbmNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxZjg1MWMKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL3Rlc3RzL2JlbmNoLnB5CkBAIC0wLDAgKzEsMTE5IEBACisjIS91c3IvYmluL2VudiBweXRob24KKworIworIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMiBQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyMgTW9kaWZpZWQgYW5kIGV4dGVuZGVkIGJ5IFN0ZWZhbiBLcmFoLgorIworCisjIFVzYWdlOiAuLi8uLi8uLi9weXRob24gYmVuY2gucHkKKworCitpbXBvcnQgdGltZQorZnJvbSBtYXRoIGltcG9ydCBsb2csIGNlaWwKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBpbXBvcnRfZnJlc2hfbW9kdWxlCisKK0MgPSBpbXBvcnRfZnJlc2hfbW9kdWxlKCdkZWNpbWFsJywgZnJlc2g9WydfZGVjaW1hbCddKQorUCA9IGltcG9ydF9mcmVzaF9tb2R1bGUoJ2RlY2ltYWwnLCBibG9ja2VkPVsnX2RlY2ltYWwnXSkKKworCisjIFBpIGZ1bmN0aW9uIGZyb20gdGhlIGRlY2ltYWwucHkgZG9jdW1lbnRhdGlvbgorZGVmIHBpX2Zsb2F0KCk6CisgICAgIiIibmF0aXZlIGZsb2F0IiIiCisgICAgbGFzdHMsIHQsIHMsIG4sIG5hLCBkLCBkYSA9IDAsIDMuMCwgMywgMSwgMCwgMCwgMjQKKyAgICB3aGlsZSBzICE9IGxhc3RzOgorICAgICAgICBsYXN0cyA9IHMKKyAgICAgICAgbiwgbmEgPSBuK25hLCBuYSs4CisgICAgICAgIGQsIGRhID0gZCtkYSwgZGErMzIKKyAgICAgICAgdCA9ICh0ICogbikgLyBkCisgICAgICAgIHMgKz0gdAorICAgIHJldHVybiBzCisKK2RlZiBwaV9jZGVjaW1hbCgpOgorICAgICIiImNkZWNpbWFsIiIiCisgICAgRCA9IEMuRGVjaW1hbAorICAgIGxhc3RzLCB0LCBzLCBuLCBuYSwgZCwgZGEgPSBEKDApLCBEKDMpLCBEKDMpLCBEKDEpLCBEKDApLCBEKDApLCBEKDI0KQorICAgIHdoaWxlIHMgIT0gbGFzdHM6CisgICAgICAgIGxhc3RzID0gcworICAgICAgICBuLCBuYSA9IG4rbmEsIG5hKzgKKyAgICAgICAgZCwgZGEgPSBkK2RhLCBkYSszMgorICAgICAgICB0ID0gKHQgKiBuKSAvIGQKKyAgICAgICAgcyArPSB0CisgICAgcmV0dXJuIHMKKworZGVmIHBpX2RlY2ltYWwoKToKKyAgICAiIiJkZWNpbWFsIiIiCisgICAgRCA9IFAuRGVjaW1hbAorICAgIGxhc3RzLCB0LCBzLCBuLCBuYSwgZCwgZGEgPSBEKDApLCBEKDMpLCBEKDMpLCBEKDEpLCBEKDApLCBEKDApLCBEKDI0KQorICAgIHdoaWxlIHMgIT0gbGFzdHM6CisgICAgICAgIGxhc3RzID0gcworICAgICAgICBuLCBuYSA9IG4rbmEsIG5hKzgKKyAgICAgICAgZCwgZGEgPSBkK2RhLCBkYSszMgorICAgICAgICB0ID0gKHQgKiBuKSAvIGQKKyAgICAgICAgcyArPSB0CisgICAgcmV0dXJuIHMKKworZGVmIGZhY3RvcmlhbChuLCBtKToKKyAgICBpZiAobiA+IG0pOgorICAgICAgICByZXR1cm4gZmFjdG9yaWFsKG0sIG4pCisgICAgZWxpZiBtID09IDA6CisgICAgICAgIHJldHVybiAxCisgICAgZWxpZiBuID09IG06CisgICAgICAgIHJldHVybiBuCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGZhY3RvcmlhbChuLCAobittKS8vMikgKiBmYWN0b3JpYWwoKG4rbSkvLzIgKyAxLCBtKQorCisKK3ByaW50KCJcbiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSIpCitwcmludCgiIyAgICAgICAgICAgICAgICAgICBDYWxjdWxhdGluZyBwaSwgMTAwMDAgaXRlcmF0aW9ucyIpCitwcmludCgiIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iKQorCitmb3IgcHJlYyBpbiBbOSwgMTldOgorICAgIHByaW50KCJcblByZWNpc2lvbjogJWQgZGVjaW1hbCBkaWdpdHNcbiIgJSBwcmVjKQorICAgIGZvciBmdW5jIGluIFtwaV9mbG9hdCwgcGlfY2RlY2ltYWwsIHBpX2RlY2ltYWxdOgorICAgICAgICBzdGFydCA9IHRpbWUudGltZSgpCisgICAgICAgIEMuZ2V0Y29udGV4dCgpLnByZWMgPSBwcmVjCisgICAgICAgIFAuZ2V0Y29udGV4dCgpLnByZWMgPSBwcmVjCisgICAgICAgIGZvciBpIGluIHJhbmdlKDEwMDAwKToKKyAgICAgICAgICAgIHggPSBmdW5jKCkKKyAgICAgICAgcHJpbnQoIiVzOiIgJSBmdW5jLl9fbmFtZV9fLnJlcGxhY2UoInBpXyIsICIiKSkKKyAgICAgICAgcHJpbnQoInJlc3VsdDogJXMiICUgc3RyKHgpKQorICAgICAgICBwcmludCgidGltZTogJWZzXG4iICUgKHRpbWUudGltZSgpLXN0YXJ0KSkKKworCitwcmludCgiXG4jID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iKQorcHJpbnQoIiMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFjdG9yaWFsIikKK3ByaW50KCIjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIpCisKK2MgPSBDLmdldGNvbnRleHQoKQorYy5wcmVjID0gQy5NQVhfUFJFQworYy5FbWF4ID0gQy5NQVhfRU1BWAorYy5FbWluID0gQy5NSU5fRU1JTgorCitmb3IgbiBpbiBbMTAwMDAwLCAxMDAwMDAwXToKKworICAgIHByaW50KCJuID0gJWRcbiIgJSBuKQorCisgICAgIyBDIHZlcnNpb24gb2YgZGVjaW1hbAorICAgIHN0YXJ0X2NhbGMgPSB0aW1lLnRpbWUoKQorICAgIHggPSBmYWN0b3JpYWwoQy5EZWNpbWFsKG4pLCAwKQorICAgIGVuZF9jYWxjID0gdGltZS50aW1lKCkKKyAgICBzdGFydF9jb252ID0gdGltZS50aW1lKCkKKyAgICBzeCA9IHN0cih4KQorICAgIGVuZF9jb252ID0gdGltZS50aW1lKCkKKyAgICBwcmludCgiY2RlY2ltYWw6IikKKyAgICBwcmludCgiY2FsY3VsYXRpb24gdGltZTogJWZzIiAlIChlbmRfY2FsYy1zdGFydF9jYWxjKSkKKyAgICBwcmludCgiY29udmVyc2lvbiB0aW1lOiAlZnNcbiIgJSAoZW5kX2NvbnYtc3RhcnRfY29udikpCisKKyAgICAjIFB5dGhvbiBpbnRlZ2VycworICAgIHN0YXJ0X2NhbGMgPSB0aW1lLnRpbWUoKQorICAgIHkgPSBmYWN0b3JpYWwobiwgMCkKKyAgICBlbmRfY2FsYyA9IHRpbWUudGltZSgpCisgICAgc3RhcnRfY29udiA9IHRpbWUudGltZSgpCisgICAgc3kgPSBzdHIoeSkKKyAgICBlbmRfY29udiA9ICB0aW1lLnRpbWUoKQorCisgICAgcHJpbnQoImludDoiKQorICAgIHByaW50KCJjYWxjdWxhdGlvbiB0aW1lOiAlZnMiICUgKGVuZF9jYWxjLXN0YXJ0X2NhbGMpKQorICAgIHByaW50KCJjb252ZXJzaW9uIHRpbWU6ICVmc1xuXG4iICUgKGVuZF9jb252LXN0YXJ0X2NvbnYpKQorCisgICAgYXNzZXJ0KHN4ID09IHN5KQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC90ZXN0cy9kZWNjaGVjay5weSBiL01vZHVsZXMvX2RlY2ltYWwvdGVzdHMvZGVjY2hlY2sucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzhkYTRkMAotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2RlY2ltYWwvdGVzdHMvZGVjY2hlY2sucHkKQEAgLTAsMCArMSwxMDc1IEBACisjIS91c3IvYmluL2VudiBweXRob24KKworIworIyBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMiBTdGVmYW4gS3JhaC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjCisjIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9SIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisjIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisjIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCisjIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCisjIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQorIyBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorIyBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisjIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyMgU1VDSCBEQU1BR0UuCisjCisKKyMKKyMgVXNhZ2U6IHB5dGhvbiBkZWNjaGVjay5weSBbLS1zaG9ydHwtLW1lZGl1bXwtLWxvbmd8LS1hbGxdCisjCisKK2ltcG9ydCBzeXMsIHJhbmRvbQorZnJvbSBjb3B5IGltcG9ydCBjb3B5Citmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorZnJvbSB0ZXN0LnN1cHBvcnQgaW1wb3J0IGltcG9ydF9mcmVzaF9tb2R1bGUKK2Zyb20gcmFuZGRlYyBpbXBvcnQgcmFuZGZsb2F0LCBhbGxfdW5hcnksIGFsbF9iaW5hcnksIGFsbF90ZXJuYXJ5Citmcm9tIGZvcm1hdGhlbHBlciBpbXBvcnQgcmFuZF9mb3JtYXQsIHJhbmRfbG9jYWxlCisKK0MgPSBpbXBvcnRfZnJlc2hfbW9kdWxlKCdkZWNpbWFsJywgZnJlc2g9WydfZGVjaW1hbCddKQorUCA9IGltcG9ydF9mcmVzaF9tb2R1bGUoJ2RlY2ltYWwnLCBibG9ja2VkPVsnX2RlY2ltYWwnXSkKK0VYSVRfU1RBVFVTID0gMAorCisKKyMgQ29udGFpbnMgYWxsIGNhdGVnb3JpZXMgb2YgRGVjaW1hbCBtZXRob2RzLgorRnVuY3Rpb25zID0geworICAgICMgUGxhaW4gdW5hcnk6CisgICAgJ3VuYXJ5JzogKAorICAgICAgICAnX19hYnNfXycsICdfX2Jvb2xfXycsICdfX2NlaWxfXycsICdfX2NvbXBsZXhfXycsICdfX2NvcHlfXycsCisgICAgICAgICdfX2Zsb29yX18nLCAnX19mbG9hdF9fJywgJ19faGFzaF9fJywgJ19faW50X18nLCAnX19uZWdfXycsCisgICAgICAgICdfX3Bvc19fJywgJ19fcmVkdWNlX18nLCAnX19yZXByX18nLCAnX19zdHJfXycsICdfX3RydW5jX18nLAorICAgICAgICAnYWRqdXN0ZWQnLCAnYXNfdHVwbGUnLCAnY2Fub25pY2FsJywgJ2Nvbmp1Z2F0ZScsICdjb3B5X2FicycsCisgICAgICAgICdjb3B5X25lZ2F0ZScsICdpc19jYW5vbmljYWwnLCAnaXNfZmluaXRlJywgJ2lzX2luZmluaXRlJywKKyAgICAgICAgJ2lzX25hbicsICdpc19xbmFuJywgJ2lzX3NpZ25lZCcsICdpc19zbmFuJywgJ2lzX3plcm8nLCAncmFkaXgnCisgICAgKSwKKyAgICAjIFVuYXJ5IHdpdGggb3B0aW9uYWwgY29udGV4dDoKKyAgICAndW5hcnlfY3R4JzogKAorICAgICAgICAnZXhwJywgJ2lzX25vcm1hbCcsICdpc19zdWJub3JtYWwnLCAnbG4nLCAnbG9nMTAnLCAnbG9nYicsCisgICAgICAgICdsb2dpY2FsX2ludmVydCcsICduZXh0X21pbnVzJywgJ25leHRfcGx1cycsICdub3JtYWxpemUnLAorICAgICAgICAnbnVtYmVyX2NsYXNzJywgJ3NxcnQnLCAndG9fZW5nX3N0cmluZycKKyAgICApLAorICAgICMgVW5hcnkgd2l0aCBvcHRpb25hbCByb3VuZGluZyBtb2RlIGFuZCBjb250ZXh0OgorICAgICd1bmFyeV9ybmRfY3R4JzogKCd0b19pbnRlZ3JhbCcsICd0b19pbnRlZ3JhbF9leGFjdCcsICd0b19pbnRlZ3JhbF92YWx1ZScpLAorICAgICMgUGxhaW4gYmluYXJ5OgorICAgICdiaW5hcnknOiAoCisgICAgICAgICdfX2FkZF9fJywgJ19fZGl2bW9kX18nLCAnX19lcV9fJywgJ19fZmxvb3JkaXZfXycsICdfX2dlX18nLCAnX19ndF9fJywKKyAgICAgICAgJ19fbGVfXycsICdfX2x0X18nLCAnX19tb2RfXycsICdfX211bF9fJywgJ19fbmVfXycsICdfX3Bvd19fJywKKyAgICAgICAgJ19fcmFkZF9fJywgJ19fcmRpdm1vZF9fJywgJ19fcmZsb29yZGl2X18nLCAnX19ybW9kX18nLCAnX19ybXVsX18nLAorICAgICAgICAnX19ycG93X18nLCAnX19yc3ViX18nLCAnX19ydHJ1ZWRpdl9fJywgJ19fc3ViX18nLCAnX190cnVlZGl2X18nLAorICAgICAgICAnY29tcGFyZV90b3RhbCcsICdjb21wYXJlX3RvdGFsX21hZycsICdjb3B5X3NpZ24nLCAncXVhbnRpemUnLAorICAgICAgICAnc2FtZV9xdWFudHVtJworICAgICksCisgICAgIyBCaW5hcnkgd2l0aCBvcHRpb25hbCBjb250ZXh0OgorICAgICdiaW5hcnlfY3R4JzogKAorICAgICAgICAnY29tcGFyZScsICdjb21wYXJlX3NpZ25hbCcsICdsb2dpY2FsX2FuZCcsICdsb2dpY2FsX29yJywgJ2xvZ2ljYWxfeG9yJywKKyAgICAgICAgJ21heCcsICdtYXhfbWFnJywgJ21pbicsICdtaW5fbWFnJywgJ25leHRfdG93YXJkJywgJ3JlbWFpbmRlcl9uZWFyJywKKyAgICAgICAgJ3JvdGF0ZScsICdzY2FsZWInLCAnc2hpZnQnCisgICAgKSwKKyAgICAjIFBsYWluIHRlcm5hcnk6CisgICAgJ3Rlcm5hcnknOiAoJ19fcG93X18nLCksCisgICAgIyBUZXJuYXJ5IHdpdGggb3B0aW9uYWwgY29udGV4dDoKKyAgICAndGVybmFyeV9jdHgnOiAoJ2ZtYScsKSwKKyAgICAjIFNwZWNpYWw6CisgICAgJ3NwZWNpYWwnOiAoJ19fZm9ybWF0X18nLCAnX19yZWR1Y2VfZXhfXycsICdfX3JvdW5kX18nLCAnZnJvbV9mbG9hdCcsCisgICAgICAgICAgICAgICAgJ3F1YW50aXplJyksCisgICAgIyBQcm9wZXJ0aWVzOgorICAgICdwcm9wZXJ0eSc6ICgncmVhbCcsICdpbWFnJykKK30KKworIyBDb250YWlucyBhbGwgY2F0ZWdvcmllcyBvZiBDb250ZXh0IG1ldGhvZHMuIFRoZSBuLWFyeSBjbGFzc2lmaWNhdGlvbgorIyBhcHBsaWVzIHRvIHRoZSBudW1iZXIgb2YgRGVjaW1hbCBhcmd1bWVudHMuCitDb250ZXh0RnVuY3Rpb25zID0geworICAgICMgUGxhaW4gbnVsbGFyeToKKyAgICAnbnVsbGFyeSc6ICgnY29udGV4dC5fX2hhc2hfXycsICdjb250ZXh0Ll9fcmVkdWNlX18nLCAnY29udGV4dC5yYWRpeCcpLAorICAgICMgUGxhaW4gdW5hcnk6CisgICAgJ3VuYXJ5JzogKCdjb250ZXh0LmFicycsICdjb250ZXh0LmNhbm9uaWNhbCcsICdjb250ZXh0LmNvcHlfYWJzJywKKyAgICAgICAgICAgICAgJ2NvbnRleHQuY29weV9kZWNpbWFsJywgJ2NvbnRleHQuY29weV9uZWdhdGUnLAorICAgICAgICAgICAgICAnY29udGV4dC5jcmVhdGVfZGVjaW1hbCcsICdjb250ZXh0LmV4cCcsICdjb250ZXh0LmlzX2Nhbm9uaWNhbCcsCisgICAgICAgICAgICAgICdjb250ZXh0LmlzX2Zpbml0ZScsICdjb250ZXh0LmlzX2luZmluaXRlJywgJ2NvbnRleHQuaXNfbmFuJywKKyAgICAgICAgICAgICAgJ2NvbnRleHQuaXNfbm9ybWFsJywgJ2NvbnRleHQuaXNfcW5hbicsICdjb250ZXh0LmlzX3NpZ25lZCcsCisgICAgICAgICAgICAgICdjb250ZXh0LmlzX3NuYW4nLCAnY29udGV4dC5pc19zdWJub3JtYWwnLCAnY29udGV4dC5pc196ZXJvJywKKyAgICAgICAgICAgICAgJ2NvbnRleHQubG4nLCAnY29udGV4dC5sb2cxMCcsICdjb250ZXh0LmxvZ2InLAorICAgICAgICAgICAgICAnY29udGV4dC5sb2dpY2FsX2ludmVydCcsICdjb250ZXh0Lm1pbnVzJywgJ2NvbnRleHQubmV4dF9taW51cycsCisgICAgICAgICAgICAgICdjb250ZXh0Lm5leHRfcGx1cycsICdjb250ZXh0Lm5vcm1hbGl6ZScsICdjb250ZXh0Lm51bWJlcl9jbGFzcycsCisgICAgICAgICAgICAgICdjb250ZXh0LnBsdXMnLCAnY29udGV4dC5zcXJ0JywgJ2NvbnRleHQudG9fZW5nX3N0cmluZycsCisgICAgICAgICAgICAgICdjb250ZXh0LnRvX2ludGVncmFsJywgJ2NvbnRleHQudG9faW50ZWdyYWxfZXhhY3QnLAorICAgICAgICAgICAgICAnY29udGV4dC50b19pbnRlZ3JhbF92YWx1ZScsICdjb250ZXh0LnRvX3NjaV9zdHJpbmcnCisgICAgKSwKKyAgICAjIFBsYWluIGJpbmFyeToKKyAgICAnYmluYXJ5JzogKCdjb250ZXh0LmFkZCcsICdjb250ZXh0LmNvbXBhcmUnLCAnY29udGV4dC5jb21wYXJlX3NpZ25hbCcsCisgICAgICAgICAgICAgICAnY29udGV4dC5jb21wYXJlX3RvdGFsJywgJ2NvbnRleHQuY29tcGFyZV90b3RhbF9tYWcnLAorICAgICAgICAgICAgICAgJ2NvbnRleHQuY29weV9zaWduJywgJ2NvbnRleHQuZGl2aWRlJywgJ2NvbnRleHQuZGl2aWRlX2ludCcsCisgICAgICAgICAgICAgICAnY29udGV4dC5kaXZtb2QnLCAnY29udGV4dC5sb2dpY2FsX2FuZCcsICdjb250ZXh0LmxvZ2ljYWxfb3InLAorICAgICAgICAgICAgICAgJ2NvbnRleHQubG9naWNhbF94b3InLCAnY29udGV4dC5tYXgnLCAnY29udGV4dC5tYXhfbWFnJywKKyAgICAgICAgICAgICAgICdjb250ZXh0Lm1pbicsICdjb250ZXh0Lm1pbl9tYWcnLCAnY29udGV4dC5tdWx0aXBseScsCisgICAgICAgICAgICAgICAnY29udGV4dC5uZXh0X3Rvd2FyZCcsICdjb250ZXh0LnBvd2VyJywgJ2NvbnRleHQucXVhbnRpemUnLAorICAgICAgICAgICAgICAgJ2NvbnRleHQucmVtYWluZGVyJywgJ2NvbnRleHQucmVtYWluZGVyX25lYXInLCAnY29udGV4dC5yb3RhdGUnLAorICAgICAgICAgICAgICAgJ2NvbnRleHQuc2FtZV9xdWFudHVtJywgJ2NvbnRleHQuc2NhbGViJywgJ2NvbnRleHQuc2hpZnQnLAorICAgICAgICAgICAgICAgJ2NvbnRleHQuc3VidHJhY3QnCisgICAgKSwKKyAgICAjIFBsYWluIHRlcm5hcnk6CisgICAgJ3Rlcm5hcnknOiAoJ2NvbnRleHQuZm1hJywgJ2NvbnRleHQucG93ZXInKSwKKyAgICAjIFNwZWNpYWw6CisgICAgJ3NwZWNpYWwnOiAoJ2NvbnRleHQuX19yZWR1Y2VfZXhfXycsICdjb250ZXh0LmNyZWF0ZV9kZWNpbWFsX2Zyb21fZmxvYXQnKQorfQorCisjIEZ1bmN0aW9ucyB0aGF0IHJlcXVpcmUgYSByZXN0cmljdGVkIGV4cG9uZW50IHJhbmdlIGZvciByZWFzb25hYmxlIHJ1bnRpbWVzLgorVW5hcnlSZXN0cmljdGVkID0gWworICAnX19jZWlsX18nLCAnX19mbG9vcl9fJywgJ19faW50X18nLCAnX19sb25nX18nLCAnX190cnVuY19fJywKKyAgJ3RvX2ludGVncmFsJywgJ3RvX2ludGVncmFsX3ZhbHVlJworXQorCitCaW5hcnlSZXN0cmljdGVkID0gWydfX3JvdW5kX18nXQorCitUZXJuYXJ5UmVzdHJpY3RlZCA9IFsnX19wb3dfXycsICdjb250ZXh0LnBvd2VyJ10KKworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgVW5pZmllZCBDb250ZXh0CisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBUcmFuc2xhdGUgc3ltYm9scy4KK0NvbmRNYXAgPSB7CisgICAgICAgIEMuQ2xhbXBlZDogICAgICAgICAgICAgUC5DbGFtcGVkLAorICAgICAgICBDLkNvbnZlcnNpb25TeW50YXg6ICAgIFAuQ29udmVyc2lvblN5bnRheCwKKyAgICAgICAgQy5EaXZpc2lvbkJ5WmVybzogICAgICBQLkRpdmlzaW9uQnlaZXJvLAorICAgICAgICBDLkRpdmlzaW9uSW1wb3NzaWJsZTogIFAuSW52YWxpZE9wZXJhdGlvbiwKKyAgICAgICAgQy5EaXZpc2lvblVuZGVmaW5lZDogICBQLkRpdmlzaW9uVW5kZWZpbmVkLAorICAgICAgICBDLkluZXhhY3Q6ICAgICAgICAgICAgIFAuSW5leGFjdCwKKyAgICAgICAgQy5JbnZhbGlkQ29udGV4dDogICAgICBQLkludmFsaWRDb250ZXh0LAorICAgICAgICBDLkludmFsaWRPcGVyYXRpb246ICAgIFAuSW52YWxpZE9wZXJhdGlvbiwKKyAgICAgICAgQy5PdmVyZmxvdzogICAgICAgICAgICBQLk92ZXJmbG93LAorICAgICAgICBDLlJvdW5kZWQ6ICAgICAgICAgICAgIFAuUm91bmRlZCwKKyAgICAgICAgQy5TdWJub3JtYWw6ICAgICAgICAgICBQLlN1Ym5vcm1hbCwKKyAgICAgICAgQy5VbmRlcmZsb3c6ICAgICAgICAgICBQLlVuZGVyZmxvdywKKyAgICAgICAgQy5GbG9hdE9wZXJhdGlvbjogICAgICBQLkZsb2F0T3BlcmF0aW9uLAorfQorCitSb3VuZE1hcCA9IHsKKyAgICAgICAgQy5ST1VORF9VUDogICAgICAgICAgIFAuUk9VTkRfVVAsCisgICAgICAgIEMuUk9VTkRfRE9XTjogICAgICAgICBQLlJPVU5EX0RPV04sCisgICAgICAgIEMuUk9VTkRfQ0VJTElORzogICAgICBQLlJPVU5EX0NFSUxJTkcsCisgICAgICAgIEMuUk9VTkRfRkxPT1I6ICAgICAgICBQLlJPVU5EX0ZMT09SLAorICAgICAgICBDLlJPVU5EX0hBTEZfVVA6ICAgICAgUC5ST1VORF9IQUxGX1VQLAorICAgICAgICBDLlJPVU5EX0hBTEZfRE9XTjogICAgUC5ST1VORF9IQUxGX0RPV04sCisgICAgICAgIEMuUk9VTkRfSEFMRl9FVkVOOiAgICBQLlJPVU5EX0hBTEZfRVZFTiwKKyAgICAgICAgQy5ST1VORF8wNVVQOiAgICAgICAgIFAuUk9VTkRfMDVVUAorfQorUm91bmRNb2RlcyA9IFJvdW5kTWFwLml0ZW1zKCkKKworCitjbGFzcyBDb250ZXh0KG9iamVjdCk6CisgICAgIiIiUHJvdmlkZXMgYSBjb252ZW5pZW50IHdheSBvZiBzeW5jaW5nIHRoZSBDIGFuZCBQIGNvbnRleHRzIiIiCisKKyAgICBfX3Nsb3RzX18gPSBbJ2MnLCAncCddCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgY19jdHg9Tm9uZSwgcF9jdHg9Tm9uZSk6CisgICAgICAgICIiIkluaXRpYWxpemF0aW9uIGlzIGZyb20gdGhlIEMgY29udGV4dCIiIgorICAgICAgICBzZWxmLmMgPSBDLmdldGNvbnRleHQoKSBpZiBjX2N0eCBpcyBOb25lIGVsc2UgY19jdHgKKyAgICAgICAgc2VsZi5wID0gUC5nZXRjb250ZXh0KCkgaWYgcF9jdHggaXMgTm9uZSBlbHNlIHBfY3R4CisgICAgICAgIHNlbGYucC5wcmVjID0gc2VsZi5jLnByZWMKKyAgICAgICAgc2VsZi5wLkVtaW4gPSBzZWxmLmMuRW1pbgorICAgICAgICBzZWxmLnAuRW1heCA9IHNlbGYuYy5FbWF4CisgICAgICAgIHNlbGYucC5yb3VuZGluZyA9IFJvdW5kTWFwW3NlbGYuYy5yb3VuZGluZ10KKyAgICAgICAgc2VsZi5wLmNhcGl0YWxzID0gc2VsZi5jLmNhcGl0YWxzCisgICAgICAgIHNlbGYuc2V0dHJhcHMoW3NpZyBmb3Igc2lnIGluIHNlbGYuYy50cmFwcyBpZiBzZWxmLmMudHJhcHNbc2lnXV0pCisgICAgICAgIHNlbGYuc2V0c3RhdHVzKFtzaWcgZm9yIHNpZyBpbiBzZWxmLmMuZmxhZ3MgaWYgc2VsZi5jLmZsYWdzW3NpZ11dKQorICAgICAgICBzZWxmLnAuY2xhbXAgPSBzZWxmLmMuY2xhbXAKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gc3RyKHNlbGYuYykgKyAnXG4nICsgc3RyKHNlbGYucCkKKworICAgIGRlZiBnZXRwcmVjKHNlbGYpOgorICAgICAgICBhc3NlcnQoc2VsZi5jLnByZWMgPT0gc2VsZi5wLnByZWMpCisgICAgICAgIHJldHVybiBzZWxmLmMucHJlYworCisgICAgZGVmIHNldHByZWMoc2VsZiwgdmFsKToKKyAgICAgICAgc2VsZi5jLnByZWMgPSB2YWwKKyAgICAgICAgc2VsZi5wLnByZWMgPSB2YWwKKworICAgIGRlZiBnZXRlbWluKHNlbGYpOgorICAgICAgICBhc3NlcnQoc2VsZi5jLkVtaW4gPT0gc2VsZi5wLkVtaW4pCisgICAgICAgIHJldHVybiBzZWxmLmMuRW1pbgorCisgICAgZGVmIHNldGVtaW4oc2VsZiwgdmFsKToKKyAgICAgICAgc2VsZi5jLkVtaW4gPSB2YWwKKyAgICAgICAgc2VsZi5wLkVtaW4gPSB2YWwKKworICAgIGRlZiBnZXRlbWF4KHNlbGYpOgorICAgICAgICBhc3NlcnQoc2VsZi5jLkVtYXggPT0gc2VsZi5wLkVtYXgpCisgICAgICAgIHJldHVybiBzZWxmLmMuRW1heAorCisgICAgZGVmIHNldGVtYXgoc2VsZiwgdmFsKToKKyAgICAgICAgc2VsZi5jLkVtYXggPSB2YWwKKyAgICAgICAgc2VsZi5wLkVtYXggPSB2YWwKKworICAgIGRlZiBnZXRyb3VuZChzZWxmKToKKyAgICAgICAgYXNzZXJ0KHNlbGYuYy5yb3VuZGluZyA9PSBSb3VuZE1hcFtzZWxmLnAucm91bmRpbmddKQorICAgICAgICByZXR1cm4gc2VsZi5jLnJvdW5kaW5nCisKKyAgICBkZWYgc2V0cm91bmQoc2VsZiwgdmFsKToKKyAgICAgICAgc2VsZi5jLnJvdW5kaW5nID0gdmFsCisgICAgICAgIHNlbGYucC5yb3VuZGluZyA9IFJvdW5kTWFwW3ZhbF0KKworICAgIGRlZiBnZXRjYXBpdGFscyhzZWxmKToKKyAgICAgICAgYXNzZXJ0KHNlbGYuYy5jYXBpdGFscyA9PSBzZWxmLnAuY2FwaXRhbHMpCisgICAgICAgIHJldHVybiBzZWxmLmMuY2FwaXRhbHMKKworICAgIGRlZiBzZXRjYXBpdGFscyhzZWxmLCB2YWwpOgorICAgICAgICBzZWxmLmMuY2FwaXRhbHMgPSB2YWwKKyAgICAgICAgc2VsZi5wLmNhcGl0YWxzID0gdmFsCisKKyAgICBkZWYgZ2V0Y2xhbXAoc2VsZik6CisgICAgICAgIGFzc2VydChzZWxmLmMuY2xhbXAgPT0gc2VsZi5wLmNsYW1wKQorICAgICAgICByZXR1cm4gc2VsZi5jLmNsYW1wCisKKyAgICBkZWYgc2V0Y2xhbXAoc2VsZiwgdmFsKToKKyAgICAgICAgc2VsZi5jLmNsYW1wID0gdmFsCisgICAgICAgIHNlbGYucC5jbGFtcCA9IHZhbAorCisgICAgcHJlYyA9IHByb3BlcnR5KGdldHByZWMsIHNldHByZWMpCisgICAgRW1pbiA9IHByb3BlcnR5KGdldGVtaW4sIHNldGVtaW4pCisgICAgRW1heCA9IHByb3BlcnR5KGdldGVtYXgsIHNldGVtYXgpCisgICAgcm91bmRpbmcgPSBwcm9wZXJ0eShnZXRyb3VuZCwgc2V0cm91bmQpCisgICAgY2xhbXAgPSBwcm9wZXJ0eShnZXRjbGFtcCwgc2V0Y2xhbXApCisgICAgY2FwaXRhbHMgPSBwcm9wZXJ0eShnZXRjYXBpdGFscywgc2V0Y2FwaXRhbHMpCisKKyAgICBkZWYgY2xlYXJfdHJhcHMoc2VsZik6CisgICAgICAgIHNlbGYuYy5jbGVhcl90cmFwcygpCisgICAgICAgIGZvciB0cmFwIGluIHNlbGYucC50cmFwczoKKyAgICAgICAgICAgIHNlbGYucC50cmFwc1t0cmFwXSA9IEZhbHNlCisKKyAgICBkZWYgY2xlYXJfc3RhdHVzKHNlbGYpOgorICAgICAgICBzZWxmLmMuY2xlYXJfZmxhZ3MoKQorICAgICAgICBzZWxmLnAuY2xlYXJfZmxhZ3MoKQorCisgICAgZGVmIHNldHRyYXBzKHNlbGYsIGxzdCk6CisgICAgICAgICIiImxzdDogQyBzaWduYWwgbGlzdCIiIgorICAgICAgICBzZWxmLmNsZWFyX3RyYXBzKCkKKyAgICAgICAgZm9yIHNpZ25hbCBpbiBsc3Q6CisgICAgICAgICAgICBzZWxmLmMudHJhcHNbc2lnbmFsXSA9IFRydWUKKyAgICAgICAgICAgIHNlbGYucC50cmFwc1tDb25kTWFwW3NpZ25hbF1dID0gVHJ1ZQorCisgICAgZGVmIHNldHN0YXR1cyhzZWxmLCBsc3QpOgorICAgICAgICAiIiJsc3Q6IEMgc2lnbmFsIGxpc3QiIiIKKyAgICAgICAgc2VsZi5jbGVhcl9zdGF0dXMoKQorICAgICAgICBmb3Igc2lnbmFsIGluIGxzdDoKKyAgICAgICAgICAgIHNlbGYuYy5mbGFnc1tzaWduYWxdID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5wLmZsYWdzW0NvbmRNYXBbc2lnbmFsXV0gPSBUcnVlCisKKyAgICBkZWYgYXNzZXJ0X2VxX3N0YXR1cyhzZWxmKToKKyAgICAgICAgIiIiYXNzZXJ0IGVxdWFsaXR5IG9mIEMgYW5kIFAgc3RhdHVzIiIiCisgICAgICAgIGZvciBzaWduYWwgaW4gc2VsZi5jLmZsYWdzOgorICAgICAgICAgICAgaWYgc2VsZi5jLmZsYWdzW3NpZ25hbF0gPT0gKG5vdCBzZWxmLnAuZmxhZ3NbQ29uZE1hcFtzaWduYWxdXSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKworIyBXZSBkb24ndCB3YW50IGV4Y2VwdGlvbnMgc28gdGhhdCB3ZSBjYW4gY29tcGFyZSB0aGUgc3RhdHVzIGZsYWdzLgorY29udGV4dCA9IENvbnRleHQoKQorY29udGV4dC5FbWluID0gQy5NSU5fRU1JTgorY29udGV4dC5FbWF4ID0gQy5NQVhfRU1BWAorY29udGV4dC5jbGVhcl90cmFwcygpCisKKyMgV2hlbiBjcmVhdGluZyBkZWNpbWFscywgX2RlY2ltYWwgaXMgdWx0aW1hdGVseSBsaW1pdGVkIGJ5IHRoZSBtYXhpbXVtCisjIGNvbnRleHQgdmFsdWVzLiBXZSBlbXVsYXRlIHRoaXMgcmVzdHJpY3Rpb24gZm9yIGRlY2ltYWwucHkuCittYXhjb250ZXh0ID0gUC5Db250ZXh0KAorICAgIHByZWM9Qy5NQVhfUFJFQywKKyAgICBFbWluPUMuTUlOX0VNSU4sCisgICAgRW1heD1DLk1BWF9FTUFYLAorICAgIHJvdW5kaW5nPVAuUk9VTkRfSEFMRl9VUCwKKyAgICBjYXBpdGFscz0xCispCittYXhjb250ZXh0LmNsYW1wID0gMAorCitkZWYgUmVzdHJpY3RlZERlY2ltYWwodmFsdWUpOgorICAgIG1heGNvbnRleHQudHJhcHMgPSBjb3B5KGNvbnRleHQucC50cmFwcykKKyAgICBtYXhjb250ZXh0LmNsZWFyX2ZsYWdzKCkKKyAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgorICAgICAgICB2YWx1ZSA9IHZhbHVlLnN0cmlwKCkKKyAgICBkZWMgPSBtYXhjb250ZXh0LmNyZWF0ZV9kZWNpbWFsKHZhbHVlKQorICAgIGlmIG1heGNvbnRleHQuZmxhZ3NbUC5JbmV4YWN0XSBvciBcCisgICAgICAgbWF4Y29udGV4dC5mbGFnc1tQLlJvdW5kZWRdIG9yIFwKKyAgICAgICBtYXhjb250ZXh0LmZsYWdzW1AuQ2xhbXBlZF0gb3IgXAorICAgICAgIG1heGNvbnRleHQuZmxhZ3NbUC5JbnZhbGlkT3BlcmF0aW9uXToKKyAgICAgICAgcmV0dXJuIGNvbnRleHQucC5fcmFpc2VfZXJyb3IoUC5JbnZhbGlkT3BlcmF0aW9uKQorICAgIGlmIG1heGNvbnRleHQuZmxhZ3NbUC5GbG9hdE9wZXJhdGlvbl06CisgICAgICAgIGNvbnRleHQucC5mbGFnc1tQLkZsb2F0T3BlcmF0aW9uXSA9IFRydWUKKyAgICByZXR1cm4gZGVjCisKKworIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjICAgICAgVGVzdFNldDogT3JnYW5pemUgZGF0YSBhbmQgZXZlbnRzIGR1cmluZyBhIHNpbmdsZSB0ZXN0IGNhc2UKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitjbGFzcyBSZXN0cmljdGVkTGlzdChsaXN0KToKKyAgICAiIiJMaXN0IHRoYXQgY2FuIG9ubHkgYmUgbW9kaWZpZWQgYnkgYXBwZW5kaW5nIGl0ZW1zLiIiIgorICAgIGRlZiBfX2dldGF0dHJpYnV0ZV9fKHNlbGYsIG5hbWUpOgorICAgICAgICBpZiBuYW1lICE9ICdhcHBlbmQnOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoInVuc3VwcG9ydGVkIG9wZXJhdGlvbiIpCisgICAgICAgIHJldHVybiBsaXN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwgbmFtZSkKKyAgICBkZWYgdW5zdXBwb3J0ZWQoc2VsZiwgKl8pOgorICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigidW5zdXBwb3J0ZWQgb3BlcmF0aW9uIikKKyAgICBfX2FkZF9fID0gX19kZWxhdHRyX18gPSBfX2RlbGl0ZW1fXyA9IF9faWFkZF9fID0gX19pbXVsX18gPSB1bnN1cHBvcnRlZAorICAgIF9fbXVsX18gPSBfX3JldmVyc2VkX18gPSBfX3JtdWxfXyA9IF9fc2V0YXR0cl9fID0gX19zZXRpdGVtX18gPSB1bnN1cHBvcnRlZAorCitjbGFzcyBUZXN0U2V0KG9iamVjdCk6CisgICAgIiIiQSBUZXN0U2V0IGNvbnRhaW5zIHRoZSBvcmlnaW5hbCBpbnB1dCBvcGVyYW5kcywgY29udmVydGVkIG9wZXJhbmRzLAorICAgICAgIFB5dGhvbiBleGNlcHRpb25zIHRoYXQgb2NjdXJyZWQgZWl0aGVyIGR1cmluZyBjb252ZXJzaW9uIG9yIGR1cmluZworICAgICAgIGV4ZWN1dGlvbiBvZiB0aGUgYWN0dWFsIGZ1bmN0aW9uLCBhbmQgdGhlIGZpbmFsIHJlc3VsdHMuCisKKyAgICAgICBGb3Igc2FmZXR5LCBtb3N0IGF0dHJpYnV0ZXMgYXJlIGxpc3RzIHRoYXQgb25seSBzdXBwb3J0IHRoZSBhcHBlbmQKKyAgICAgICBvcGVyYXRpb24uCisKKyAgICAgICBJZiBhIGZ1bmN0aW9uIG5hbWUgaXMgcHJlZml4ZWQgd2l0aCAnY29udGV4dC4nLCB0aGUgY29ycmVzcG9uZGluZworICAgICAgIGNvbnRleHQgbWV0aG9kIGlzIGNhbGxlZC4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY25hbWUsIG9wZXJhbmRzKToKKyAgICAgICAgaWYgZnVuY25hbWUuc3RhcnRzd2l0aCgiY29udGV4dC4iKToKKyAgICAgICAgICAgIHNlbGYuZnVuY25hbWUgPSBmdW5jbmFtZS5yZXBsYWNlKCJjb250ZXh0LiIsICIiKQorICAgICAgICAgICAgc2VsZi5jb250ZXh0ZnVuYyA9IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuZnVuY25hbWUgPSBmdW5jbmFtZQorICAgICAgICAgICAgc2VsZi5jb250ZXh0ZnVuYyA9IEZhbHNlCisgICAgICAgIHNlbGYub3AgPSBvcGVyYW5kcyAgICAgICAgICAgICAgICMgcmF3IG9wZXJhbmQgdHVwbGUKKyAgICAgICAgc2VsZi5jb250ZXh0ID0gY29udGV4dCAgICAgICAgICAgIyBjb250ZXh0IHVzZWQgZm9yIHRoZSBvcGVyYXRpb24KKyAgICAgICAgc2VsZi5jb3AgPSBSZXN0cmljdGVkTGlzdCgpICAgICAgIyBjb252ZXJ0ZWQgQy5EZWNpbWFsIG9wZXJhbmRzCisgICAgICAgIHNlbGYuY2V4ID0gUmVzdHJpY3RlZExpc3QoKSAgICAgICMgUHl0aG9uIGV4Y2VwdGlvbnMgZm9yIEMuRGVjaW1hbAorICAgICAgICBzZWxmLmNyZXN1bHRzID0gUmVzdHJpY3RlZExpc3QoKSAjIEMuRGVjaW1hbCByZXN1bHRzCisgICAgICAgIHNlbGYucG9wID0gUmVzdHJpY3RlZExpc3QoKSAgICAgICMgY29udmVydGVkIFAuRGVjaW1hbCBvcGVyYW5kcworICAgICAgICBzZWxmLnBleCA9IFJlc3RyaWN0ZWRMaXN0KCkgICAgICAjIFB5dGhvbiBleGNlcHRpb25zIGZvciBQLkRlY2ltYWwKKyAgICAgICAgc2VsZi5wcmVzdWx0cyA9IFJlc3RyaWN0ZWRMaXN0KCkgIyBQLkRlY2ltYWwgcmVzdWx0cworCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgICAgICAgICAgICAgICBTa2lwSGFuZGxlcjogc2tpcCBrbm93biBkaXNjcmVwYW5jaWVzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworY2xhc3MgU2tpcEhhbmRsZXI6CisgICAgIiIiSGFuZGxlIGtub3duIGRpc2NyZXBhbmNpZXMgYmV0d2VlbiBkZWNpbWFsLnB5IGFuZCBfZGVjaW1hbC5zby4KKyAgICAgICBUaGVzZSBhcmUgZWl0aGVyIFVMUCBkaWZmZXJlbmNlcyBpbiB0aGUgcG93ZXIgZnVuY3Rpb24gb3IKKyAgICAgICBleHRyZW1lbHkgbWlub3IgaXNzdWVzLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnVscGRpZmYgPSAwCisgICAgICAgIHNlbGYucG93bW9kX3plcm9zID0gMAorICAgICAgICBzZWxmLm1heGN0eCA9IFAuQ29udGV4dChFbWF4PTEwKioxOCwgRW1pbj0tMTAqKjE4KQorCisgICAgZGVmIGRlZmF1bHQoc2VsZiwgdCk6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIF9fZ2VfXyA9ICBfX2d0X18gPSBfX2xlX18gPSBfX2x0X18gPSBfX25lX18gPSBfX2VxX18gPSBkZWZhdWx0CisgICAgX19yZWR1Y2VfXyA9IF9fZm9ybWF0X18gPSBfX3JlcHJfXyA9IF9fc3RyX18gPSBkZWZhdWx0CisKKyAgICBkZWYgaGFycmlzb25fdWxwKHNlbGYsIGRlYyk6CisgICAgICAgICIiImZ0cDovL2Z0cC5pbnJpYS5mci9JTlJJQS9wdWJsaWNhdGlvbi9wdWJsaS1wZGYvUlIvUlItNTUwNC5wZGYiIiIKKyAgICAgICAgYSA9IGRlYy5uZXh0X3BsdXMoKQorICAgICAgICBiID0gZGVjLm5leHRfbWludXMoKQorICAgICAgICByZXR1cm4gYWJzKGEgLSBiKQorCisgICAgZGVmIHN0YW5kYXJkX3VscChzZWxmLCBkZWMsIHByZWMpOgorICAgICAgICByZXR1cm4gUC5fZGVjX2Zyb21fdHJpcGxlKDAsICcxJywgZGVjLl9leHArbGVuKGRlYy5faW50KS1wcmVjKQorCisgICAgZGVmIHJvdW5kaW5nX2RpcmVjdGlvbihzZWxmLCB4LCBtb2RlKToKKyAgICAgICAgIiIiRGV0ZXJtaW5lIHRoZSBlZmZlY3RpdmUgZGlyZWN0aW9uIG9mIHRoZSByb3VuZGluZyB3aGVuCisgICAgICAgICAgIHRoZSBleGFjdCByZXN1bHQgeCBpcyByb3VuZGVkIGFjY29yZGluZyB0byBtb2RlLgorICAgICAgICAgICBSZXR1cm4gLTEgZm9yIGRvd253YXJkcywgMCBmb3IgdW5kaXJlY3RlZCwgMSBmb3IgdXB3YXJkcywKKyAgICAgICAgICAgMiBmb3IgUk9VTkRfMDVVUC4iIiIKKyAgICAgICAgY21wID0gMSBpZiB4LmNvbXBhcmVfdG90YWwoUC5EZWNpbWFsKCIrMCIpKSA+PSAwIGVsc2UgLTEKKworICAgICAgICBpZiBtb2RlIGluIChQLlJPVU5EX0hBTEZfRVZFTiwgUC5ST1VORF9IQUxGX1VQLCBQLlJPVU5EX0hBTEZfRE9XTik6CisgICAgICAgICAgICByZXR1cm4gMAorICAgICAgICBlbGlmIG1vZGUgPT0gUC5ST1VORF9DRUlMSU5HOgorICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgZWxpZiBtb2RlID09IFAuUk9VTkRfRkxPT1I6CisgICAgICAgICAgICByZXR1cm4gLTEKKyAgICAgICAgZWxpZiBtb2RlID09IFAuUk9VTkRfVVA6CisgICAgICAgICAgICByZXR1cm4gY21wCisgICAgICAgIGVsaWYgbW9kZSA9PSBQLlJPVU5EX0RPV046CisgICAgICAgICAgICByZXR1cm4gLWNtcAorICAgICAgICBlbGlmIG1vZGUgPT0gUC5ST1VORF8wNVVQOgorICAgICAgICAgICAgcmV0dXJuIDIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVuZXhwZWN0ZWQgcm91bmRpbmcgbW9kZTogJXMiICUgbW9kZSkKKworICAgIGRlZiBjaGVja191bHBkaWZmKHNlbGYsIGV4YWN0LCByb3VuZGVkKToKKyAgICAgICAgIyBjdXJyZW50IHByZWNpc2lvbgorICAgICAgICBwID0gY29udGV4dC5wLnByZWMKKworICAgICAgICAjIENvbnZlcnQgaW5maW5pdGllcyB0byB0aGUgbGFyZ2VzdCByZXByZXNlbnRhYmxlIG51bWJlciArIDEuCisgICAgICAgIHggPSBleGFjdAorICAgICAgICBpZiBleGFjdC5pc19pbmZpbml0ZSgpOgorICAgICAgICAgICAgeCA9IFAuX2RlY19mcm9tX3RyaXBsZShleGFjdC5fc2lnbiwgJzEwJywgY29udGV4dC5wLkVtYXgpCisgICAgICAgIHkgPSByb3VuZGVkCisgICAgICAgIGlmIHJvdW5kZWQuaXNfaW5maW5pdGUoKToKKyAgICAgICAgICAgIHkgPSBQLl9kZWNfZnJvbV90cmlwbGUocm91bmRlZC5fc2lnbiwgJzEwJywgY29udGV4dC5wLkVtYXgpCisKKyAgICAgICAgIyBlcnIgPSAocm91bmRlZCAtIGV4YWN0KSAvIHVscChyb3VuZGVkKQorICAgICAgICBzZWxmLm1heGN0eC5wcmVjID0gcCAqIDIKKyAgICAgICAgdCA9IHNlbGYubWF4Y3R4LnN1YnRyYWN0KHksIHgpCisgICAgICAgIGlmIGNvbnRleHQuYy5mbGFnc1tDLkNsYW1wZWRdIG9yIFwKKyAgICAgICAgICAgY29udGV4dC5jLmZsYWdzW0MuVW5kZXJmbG93XToKKyAgICAgICAgICAgICMgVGhlIHN0YW5kYXJkIHVscCBkb2VzIG5vdCB3b3JrIGluIFVuZGVyZmxvdyB0ZXJyaXRvcnkuCisgICAgICAgICAgICB1bHAgPSBzZWxmLmhhcnJpc29uX3VscCh5KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdWxwID0gc2VsZi5zdGFuZGFyZF91bHAoeSwgcCkKKyAgICAgICAgIyBFcnJvciBpbiB1bHBzLgorICAgICAgICBlcnIgPSBzZWxmLm1heGN0eC5kaXZpZGUodCwgdWxwKQorCisgICAgICAgIGRpciA9IHNlbGYucm91bmRpbmdfZGlyZWN0aW9uKHgsIGNvbnRleHQucC5yb3VuZGluZykKKyAgICAgICAgaWYgZGlyID09IDA6CisgICAgICAgICAgICBpZiBQLkRlY2ltYWwoIi0wLjYiKSA8IGVyciA8IFAuRGVjaW1hbCgiMC42Iik6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZWxpZiBkaXIgPT0gMTogIyBkaXJlY3RlZCwgdXB3YXJkcworICAgICAgICAgICAgaWYgUC5EZWNpbWFsKCItMC4xIikgPCBlcnIgPCBQLkRlY2ltYWwoIjEuMSIpOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGVsaWYgZGlyID09IC0xOiAjIGRpcmVjdGVkLCBkb3dud2FyZHMKKyAgICAgICAgICAgIGlmIFAuRGVjaW1hbCgiLTEuMSIpIDwgZXJyIDwgUC5EZWNpbWFsKCIwLjEiKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOiAjIFJPVU5EXzA1VVAKKyAgICAgICAgICAgIGlmIFAuRGVjaW1hbCgiLTEuMSIpIDwgZXJyIDwgUC5EZWNpbWFsKCIxLjEiKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgICAgIHByaW50KCJ1bHA6ICVzICBlcnJvcjogJXMgIGV4YWN0OiAlcyAgY19yb3VuZGVkOiAlcyIKKyAgICAgICAgICAgICAgJSAodWxwLCBlcnIsIGV4YWN0LCByb3VuZGVkKSkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgYmluX3Jlc29sdmVfdWxwKHNlbGYsIHQpOgorICAgICAgICAiIiJDaGVjayBpZiByZXN1bHRzIG9mIF9kZWNpbWFsJ3MgcG93ZXIgZnVuY3Rpb24gYXJlIHdpdGhpbiB0aGUKKyAgICAgICAgICAgYWxsb3dlZCB1bHAgcmFuZ2VzLiIiIgorICAgICAgICAjIE5hTnMgYXJlIGJleW9uZCByZXBhaXIuCisgICAgICAgIGlmIHQucmMuaXNfbmFuKCkgb3IgdC5ycC5pc19uYW4oKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICMgImV4YWN0IiByZXN1bHQsIGRvdWJsZSBwcmVjaXNpb24sIGhhbGZfZXZlbgorICAgICAgICBzZWxmLm1heGN0eC5wcmVjID0gY29udGV4dC5wLnByZWMgKiAyCisKKyAgICAgICAgb3AxLCBvcDIgPSB0LnBvcFswXSwgdC5wb3BbMV0KKyAgICAgICAgaWYgdC5jb250ZXh0ZnVuYzoKKyAgICAgICAgICAgIGV4YWN0ID0gZ2V0YXR0cihzZWxmLm1heGN0eCwgdC5mdW5jbmFtZSkob3AxLCBvcDIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBleGFjdCA9IGdldGF0dHIob3AxLCB0LmZ1bmNuYW1lKShvcDIsIGNvbnRleHQ9c2VsZi5tYXhjdHgpCisKKyAgICAgICAgIyBfZGVjaW1hbCdzIHJvdW5kZWQgcmVzdWx0CisgICAgICAgIHJvdW5kZWQgPSBQLkRlY2ltYWwodC5jcmVzdWx0c1swXSkKKworICAgICAgICBzZWxmLnVscGRpZmYgKz0gMQorICAgICAgICByZXR1cm4gc2VsZi5jaGVja191bHBkaWZmKGV4YWN0LCByb3VuZGVkKQorCisgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBDb3JyZWN0IHJvdW5kaW5nICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgZGVmIHJlc29sdmVfdW5kZXJmbG93KHNlbGYsIHQpOgorICAgICAgICAiIiJJbiBleHRyZW1lbHkgcmFyZSBjYXNlcyB3aGVyZSB0aGUgaW5maW5pdGUgcHJlY2lzaW9uIHJlc3VsdCBpcyBqdXN0CisgICAgICAgICAgIGJlbG93IGV0aW55LCBjZGVjaW1hbCBkb2VzIG5vdCBzZXQgU3Vibm9ybWFsL1VuZGVyZmxvdy4gRXhhbXBsZToKKworICAgICAgICAgICBzZXRjb250ZXh0KENvbnRleHQocHJlYz0yMSwgcm91bmRpbmc9Uk9VTkRfVVAsIEVtaW49LTU1LCBFbWF4PTg1KSkKKyAgICAgICAgICAgRGVjaW1hbCgiMS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIKKyAgICAgICAgICAgICAgICAgICAiMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIKKyAgICAgICAgICAgICAgICAgICAiMDAwMDAwMDAwMDAwMDAyNSIpLmxuKCkKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHQuY3Jlc3VsdHMgIT0gdC5wcmVzdWx0czoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSAjIFJlc3VsdHMgbXVzdCBiZSBpZGVudGljYWwuCisgICAgICAgIGlmIGNvbnRleHQuYy5mbGFnc1tDLlJvdW5kZWRdIGFuZCBcCisgICAgICAgICAgIGNvbnRleHQuYy5mbGFnc1tDLkluZXhhY3RdIGFuZCBcCisgICAgICAgICAgIGNvbnRleHQucC5mbGFnc1tQLlJvdW5kZWRdIGFuZCBcCisgICAgICAgICAgIGNvbnRleHQucC5mbGFnc1tQLkluZXhhY3RdOgorICAgICAgICAgICAgcmV0dXJuIFRydWUgIyBTdWJub3JtYWwvVW5kZXJmbG93IG1heSBiZSBtaXNzaW5nLgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBleHAoc2VsZiwgdCk6CisgICAgICAgICIiIlJlc29sdmUgVW5kZXJmbG93IG9yIFVMUCBkaWZmZXJlbmNlLiIiIgorICAgICAgICByZXR1cm4gc2VsZi5yZXNvbHZlX3VuZGVyZmxvdyh0KQorCisgICAgZGVmIGxvZzEwKHNlbGYsIHQpOgorICAgICAgICAiIiJSZXNvbHZlIFVuZGVyZmxvdyBvciBVTFAgZGlmZmVyZW5jZS4iIiIKKyAgICAgICAgcmV0dXJuIHNlbGYucmVzb2x2ZV91bmRlcmZsb3codCkKKworICAgIGRlZiBsbihzZWxmLCB0KToKKyAgICAgICAgIiIiUmVzb2x2ZSBVbmRlcmZsb3cgb3IgVUxQIGRpZmZlcmVuY2UuIiIiCisgICAgICAgIHJldHVybiBzZWxmLnJlc29sdmVfdW5kZXJmbG93KHQpCisKKyAgICBkZWYgX19wb3dfXyhzZWxmLCB0KToKKyAgICAgICAgIiIiQWx3YXlzIGNhbGxzIHRoZSByZXNvbHZlIGZ1bmN0aW9uLiBDLkRlY2ltYWwgZG9lcyBub3QgaGF2ZSBjb3JyZWN0CisgICAgICAgICAgIHJvdW5kaW5nIGZvciB0aGUgcG93ZXIgZnVuY3Rpb24uIiIiCisgICAgICAgIGlmIGNvbnRleHQuYy5mbGFnc1tDLlJvdW5kZWRdIGFuZCBcCisgICAgICAgICAgIGNvbnRleHQuYy5mbGFnc1tDLkluZXhhY3RdIGFuZCBcCisgICAgICAgICAgIGNvbnRleHQucC5mbGFnc1tQLlJvdW5kZWRdIGFuZCBcCisgICAgICAgICAgIGNvbnRleHQucC5mbGFnc1tQLkluZXhhY3RdOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYmluX3Jlc29sdmVfdWxwKHQpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBwb3dlciA9IF9fcnBvd19fID0gX19wb3dfXworCisgICAgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFRlY2huaWNhbGl0aWVzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisgICAgZGVmIF9fZmxvYXRfXyhzZWxmLCB0KToKKyAgICAgICAgIiIiTmFOIGNvbXBhcmlzb24gaW4gdGhlIHZlcmlmeSgpIGZ1bmN0aW9uIG9idmlvdXNseSBnaXZlcyBhbgorICAgICAgICAgICBpbmNvcnJlY3QgYW5zd2VyOiAgbmFuID09IG5hbiAtPiBGYWxzZSIiIgorICAgICAgICBpZiB0LmNvcFswXS5pc19uYW4oKSBhbmQgdC5wb3BbMF0uaXNfbmFuKCk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBfX2NvbXBsZXhfXyA9IF9fZmxvYXRfXworCisgICAgZGVmIF9fcmFkZF9fKHNlbGYsIHQpOgorICAgICAgICAiIiJkZWNpbWFsLnB5IGdpdmVzIHByZWNlZGVuY2UgdG8gdGhlIGZpcnN0IE5hTjsgdGhpcyBpcworICAgICAgICAgICBub3QgaW1wb3J0YW50LCBhcyBfX3JhZGRfXyB3aWxsIG5vdCBiZSBjYWxsZWQgZm9yCisgICAgICAgICAgIHR3byBkZWNpbWFsIGFyZ3VtZW50cy4iIiIKKyAgICAgICAgaWYgdC5yYy5pc19uYW4oKSBhbmQgdC5ycC5pc19uYW4oKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorICAgIF9fcm11bF9fID0gX19yYWRkX18KKworICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIFZhcmlvdXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworICAgIGRlZiBfX3JvdW5kX18oc2VsZiwgdCk6CisgICAgICAgICIiIkV4Y2VwdGlvbjogRGVjaW1hbCgnMScpLl9fcm91bmRfXygtMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwKQorICAgICAgICAgICBTaG91bGQgaXQgcmVhbGx5IGJlIEludmFsaWRPcGVyYXRpb24/IiIiCisgICAgICAgIGlmIHQucmMgaXMgTm9uZSBhbmQgdC5ycC5pc19uYW4oKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCitzaGFuZGxlciA9IFNraXBIYW5kbGVyKCkKK2RlZiBza2lwX2Vycm9yKHQpOgorICAgIHJldHVybiBnZXRhdHRyKHNoYW5kbGVyLCB0LmZ1bmNuYW1lLCBzaGFuZGxlci5kZWZhdWx0KSh0KQorCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIyAgICAgICAgICAgICAgICAgICAgICBIYW5kbGluZyB2ZXJpZmljYXRpb24gZXJyb3JzCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworY2xhc3MgVmVyaWZ5RXJyb3IoRXhjZXB0aW9uKToKKyAgICAiIiJWZXJpZmljYXRpb24gZmFpbGVkLiIiIgorICAgIHBhc3MKKworZGVmIGZ1bmN0aW9uX2FzX3N0cmluZyh0KToKKyAgICBpZiB0LmNvbnRleHRmdW5jOgorICAgICAgICBjYXJncyA9IHQuY29wCisgICAgICAgIHBhcmdzID0gdC5wb3AKKyAgICAgICAgY2Z1bmMgPSAiY19mdW5jOiAlcygiICUgdC5mdW5jbmFtZQorICAgICAgICBwZnVuYyA9ICJwX2Z1bmM6ICVzKCIgJSB0LmZ1bmNuYW1lCisgICAgZWxzZToKKyAgICAgICAgY3NlbGYsIGNhcmdzID0gdC5jb3BbMF0sIHQuY29wWzE6XQorICAgICAgICBwc2VsZiwgcGFyZ3MgPSB0LnBvcFswXSwgdC5wb3BbMTpdCisgICAgICAgIGNmdW5jID0gImNfZnVuYzogJXMuJXMoIiAlIChyZXByKGNzZWxmKSwgdC5mdW5jbmFtZSkKKyAgICAgICAgcGZ1bmMgPSAicF9mdW5jOiAlcy4lcygiICUgKHJlcHIocHNlbGYpLCB0LmZ1bmNuYW1lKQorCisgICAgZXJyID0gY2Z1bmMKKyAgICBmb3IgYXJnIGluIGNhcmdzOgorICAgICAgICBlcnIgKz0gIiVzLCAiICUgcmVwcihhcmcpCisgICAgZXJyID0gZXJyLnJzdHJpcCgiLCAiKQorICAgIGVyciArPSAiKVxuIgorCisgICAgZXJyICs9IHBmdW5jCisgICAgZm9yIGFyZyBpbiBwYXJnczoKKyAgICAgICAgZXJyICs9ICIlcywgIiAlIHJlcHIoYXJnKQorICAgIGVyciA9IGVyci5yc3RyaXAoIiwgIikKKyAgICBlcnIgKz0gIikiCisKKyAgICByZXR1cm4gZXJyCisKK2RlZiByYWlzZV9lcnJvcih0KToKKyAgICBnbG9iYWwgRVhJVF9TVEFUVVMKKworICAgIGlmIHNraXBfZXJyb3IodCk6CisgICAgICAgIHJldHVybgorICAgIEVYSVRfU1RBVFVTID0gMQorCisgICAgZXJyID0gIkVycm9yIGluICVzOlxuXG4iICUgdC5mdW5jbmFtZQorICAgIGVyciArPSAiaW5wdXQgb3BlcmFuZHM6ICVzXG5cbiIgJSAodC5vcCwpCisgICAgZXJyICs9IGZ1bmN0aW9uX2FzX3N0cmluZyh0KQorICAgIGVyciArPSAiXG5cbmNfcmVzdWx0OiAlc1xucF9yZXN1bHQ6ICVzXG5cbiIgJSAodC5jcmVzdWx0cywgdC5wcmVzdWx0cykKKyAgICBlcnIgKz0gImNfZXhjZXB0aW9uczogJXNcbnBfZXhjZXB0aW9uczogJXNcblxuIiAlICh0LmNleCwgdC5wZXgpCisgICAgZXJyICs9ICIlc1xuXG4iICUgc3RyKHQuY29udGV4dCkKKworICAgIHJhaXNlIFZlcmlmeUVycm9yKGVycikKKworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICAgICAgICAgICAgICAgICAgICBNYWluIHRlc3RpbmcgZnVuY3Rpb25zCisjCisjICBUaGUgcHJvY2VkdXJlIGlzIGFsd2F5cyAodCBpcyB0aGUgVGVzdFNldCk6CisjCisjICAgY29udmVydCh0KSAtPiBJbml0aWFsaXplIHRoZSBUZXN0U2V0IGFzIG5lY2Vzc2FyeS4KKyMKKyMgICAgICAgICAgICAgICAgIFJldHVybiAwIGZvciBlYXJseSBhYm9ydGlvbiAoZS5nLiBpZiBhIFR5cGVFcnJvcgorIyAgICAgICAgICAgICAgICAgb2NjdXJzIGR1cmluZyBjb252ZXJzaW9uLCB0aGVyZSBpcyBub3RoaW5nIHRvIHRlc3QpLgorIworIyAgICAgICAgICAgICAgICAgUmV0dXJuIDEgZm9yIGNvbnRpbnVpbmcgd2l0aCB0aGUgdGVzdCBjYXNlLgorIworIyAgIGNhbGxmdW5jcyh0KSAtPiBDYWxsIHRoZSByZWxldmFudCBmdW5jdGlvbiBmb3IgZWFjaCBpbXBsZW1lbnRhdGlvbgorIyAgICAgICAgICAgICAgICAgICBhbmQgcmVjb3JkIHRoZSByZXN1bHRzIGluIHRoZSBUZXN0U2V0LgorIworIyAgIHZlcmlmeSh0KSAtPiBWZXJpZnkgdGhlIHJlc3VsdHMuIElmIHZlcmlmaWNhdGlvbiBmYWlscywgZGV0YWlscworIyAgICAgICAgICAgICAgICBhcmUgcHJpbnRlZCB0byBzdGRvdXQuCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworZGVmIGNvbnZlcnQodCwgY29udnN0cj1UcnVlKToKKyAgICAiIiIgdCBpcyB0aGUgdGVzdHNldC4gQXQgdGhpcyBzdGFnZSB0aGUgdGVzdHNldCBjb250YWlucyBhIHR1cGxlIG9mCisgICAgICAgIG9wZXJhbmRzIHQub3Agb2YgdmFyaW91cyB0eXBlcy4gRm9yIGRlY2ltYWwgbWV0aG9kcyB0aGUgZmlyc3QKKyAgICAgICAgb3BlcmFuZCAoc2VsZikgaXMgYWx3YXlzIGNvbnZlcnRlZCB0byBEZWNpbWFsLiBJZiAnY29udnN0cicgaXMKKyAgICAgICAgdHJ1ZSwgc3RyaW5nIG9wZXJhbmRzIGFyZSBjb252ZXJ0ZWQgYXMgd2VsbC4KKworICAgICAgICBDb250ZXh0IG9wZXJhbmRzIGFyZSBvZiB0eXBlIGRlY2NoZWNrLkNvbnRleHQsIHJvdW5kaW5nIG1vZGUKKyAgICAgICAgb3BlcmFuZHMgYXJlIGdpdmVuIGFzIGEgdHVwbGUgKEMucm91bmRpbmcsIFAucm91bmRpbmcpLgorCisgICAgICAgIE90aGVyIHR5cGVzIChmbG9hdCwgaW50LCBldGMuKSBhcmUgbGVmdCB1bmNoYW5nZWQuCisgICAgIiIiCisgICAgZm9yIGksIG9wIGluIGVudW1lcmF0ZSh0Lm9wKToKKworICAgICAgICBjb250ZXh0LmNsZWFyX3N0YXR1cygpCisKKyAgICAgICAgaWYgbm90IHQuY29udGV4dGZ1bmMgYW5kIGkgPT0gMCBvciBcCisgICAgICAgICAgIGNvbnZzdHIgYW5kIGlzaW5zdGFuY2Uob3AsIHN0cik6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYyA9IEMuRGVjaW1hbChvcCkKKyAgICAgICAgICAgICAgICBjZXggPSBOb25lCisgICAgICAgICAgICBleGNlcHQgKFR5cGVFcnJvciwgVmFsdWVFcnJvciwgT3ZlcmZsb3dFcnJvcikgYXMgZToKKyAgICAgICAgICAgICAgICBjID0gTm9uZQorICAgICAgICAgICAgICAgIGNleCA9IGUuX19jbGFzc19fCisKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBwID0gUmVzdHJpY3RlZERlY2ltYWwob3ApCisgICAgICAgICAgICAgICAgcGV4ID0gTm9uZQorICAgICAgICAgICAgZXhjZXB0IChUeXBlRXJyb3IsIFZhbHVlRXJyb3IsIE92ZXJmbG93RXJyb3IpIGFzIGU6CisgICAgICAgICAgICAgICAgcCA9IE5vbmUKKyAgICAgICAgICAgICAgICBwZXggPSBlLl9fY2xhc3NfXworCisgICAgICAgICAgICB0LmNvcC5hcHBlbmQoYykKKyAgICAgICAgICAgIHQuY2V4LmFwcGVuZChjZXgpCisgICAgICAgICAgICB0LnBvcC5hcHBlbmQocCkKKyAgICAgICAgICAgIHQucGV4LmFwcGVuZChwZXgpCisKKyAgICAgICAgICAgIGlmIGNleCBpcyBwZXg6CisgICAgICAgICAgICAgICAgaWYgc3RyKGMpICE9IHN0cihwKSBvciBub3QgY29udGV4dC5hc3NlcnRfZXFfc3RhdHVzKCk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlX2Vycm9yKHQpCisgICAgICAgICAgICAgICAgaWYgY2V4IGFuZCBwZXg6CisgICAgICAgICAgICAgICAgICAgICMgbm90aGluZyB0byB0ZXN0CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlX2Vycm9yKHQpCisKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9wLCBDb250ZXh0KToKKyAgICAgICAgICAgIHQuY29udGV4dCA9IG9wCisgICAgICAgICAgICB0LmNvcC5hcHBlbmQob3AuYykKKyAgICAgICAgICAgIHQucG9wLmFwcGVuZChvcC5wKQorCisgICAgICAgIGVsaWYgb3AgaW4gUm91bmRNb2RlczoKKyAgICAgICAgICAgIHQuY29wLmFwcGVuZChvcFswXSkKKyAgICAgICAgICAgIHQucG9wLmFwcGVuZChvcFsxXSkKKworICAgICAgICBlbHNlOgorICAgICAgICAgICAgdC5jb3AuYXBwZW5kKG9wKQorICAgICAgICAgICAgdC5wb3AuYXBwZW5kKG9wKQorCisgICAgcmV0dXJuIDEKKworZGVmIGNhbGxmdW5jcyh0KToKKyAgICAiIiIgdCBpcyB0aGUgdGVzdHNldC4gQXQgdGhpcyBzdGFnZSB0aGUgdGVzdHNldCBjb250YWlucyBvcGVyYW5kIGxpc3RzCisgICAgICAgIHQuY29wIGFuZCB0LnBvcCBmb3IgdGhlIEMgYW5kIFB5dGhvbiB2ZXJzaW9ucyBvZiBkZWNpbWFsLgorICAgICAgICBGb3IgRGVjaW1hbCBtZXRob2RzLCB0aGUgZmlyc3Qgb3BlcmFuZHMgYXJlIG9mIHR5cGUgQy5EZWNpbWFsIGFuZAorICAgICAgICBQLkRlY2ltYWwgcmVzcGVjdGl2ZWx5LiBUaGUgcmVtYWluaW5nIG9wZXJhbmRzIGNhbiBoYXZlIHZhcmlvdXMgdHlwZXMuCisgICAgICAgIEZvciBDb250ZXh0IG1ldGhvZHMsIGFsbCBvcGVyYW5kcyBjYW4gaGF2ZSBhbnkgdHlwZS4KKworICAgICAgICB0LnJjIGFuZCB0LnJwIGFyZSB0aGUgcmVzdWx0cyBvZiB0aGUgb3BlcmF0aW9uLgorICAgICIiIgorICAgIGNvbnRleHQuY2xlYXJfc3RhdHVzKCkKKworICAgIHRyeToKKyAgICAgICAgaWYgdC5jb250ZXh0ZnVuYzoKKyAgICAgICAgICAgIGNhcmdzID0gdC5jb3AKKyAgICAgICAgICAgIHQucmMgPSBnZXRhdHRyKGNvbnRleHQuYywgdC5mdW5jbmFtZSkoKmNhcmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY3NlbGYgPSB0LmNvcFswXQorICAgICAgICAgICAgY2FyZ3MgPSB0LmNvcFsxOl0KKyAgICAgICAgICAgIHQucmMgPSBnZXRhdHRyKGNzZWxmLCB0LmZ1bmNuYW1lKSgqY2FyZ3MpCisgICAgICAgIHQuY2V4LmFwcGVuZChOb25lKQorICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBWYWx1ZUVycm9yLCBPdmVyZmxvd0Vycm9yLCBNZW1vcnlFcnJvcikgYXMgZToKKyAgICAgICAgdC5yYyA9IE5vbmUKKyAgICAgICAgdC5jZXguYXBwZW5kKGUuX19jbGFzc19fKQorCisgICAgdHJ5OgorICAgICAgICBpZiB0LmNvbnRleHRmdW5jOgorICAgICAgICAgICAgcGFyZ3MgPSB0LnBvcAorICAgICAgICAgICAgdC5ycCA9IGdldGF0dHIoY29udGV4dC5wLCB0LmZ1bmNuYW1lKSgqcGFyZ3MpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwc2VsZiA9IHQucG9wWzBdCisgICAgICAgICAgICBwYXJncyA9IHQucG9wWzE6XQorICAgICAgICAgICAgdC5ycCA9IGdldGF0dHIocHNlbGYsIHQuZnVuY25hbWUpKCpwYXJncykKKyAgICAgICAgdC5wZXguYXBwZW5kKE5vbmUpCisgICAgZXhjZXB0IChUeXBlRXJyb3IsIFZhbHVlRXJyb3IsIE92ZXJmbG93RXJyb3IsIE1lbW9yeUVycm9yKSBhcyBlOgorICAgICAgICB0LnJwID0gTm9uZQorICAgICAgICB0LnBleC5hcHBlbmQoZS5fX2NsYXNzX18pCisKK2RlZiB2ZXJpZnkodCwgc3RhdCk6CisgICAgIiIiIHQgaXMgdGhlIHRlc3RzZXQuIEF0IHRoaXMgc3RhZ2UgdGhlIHRlc3RzZXQgY29udGFpbnMgdGhlIGZvbGxvd2luZworICAgICAgICB0dXBsZXM6CisKKyAgICAgICAgICAgIHQub3A6IG9yaWdpbmFsIG9wZXJhbmRzCisgICAgICAgICAgICB0LmNvcDogQy5EZWNpbWFsIG9wZXJhbmRzIChzZWUgY29udmVydCBmb3IgZGV0YWlscykKKyAgICAgICAgICAgIHQucG9wOiBQLkRlY2ltYWwgb3BlcmFuZHMgKHNlZSBjb252ZXJ0IGZvciBkZXRhaWxzKQorICAgICAgICAgICAgdC5yYzogQyByZXN1bHQKKyAgICAgICAgICAgIHQucnA6IFB5dGhvbiByZXN1bHQKKworICAgICAgICB0LnJjIGFuZCB0LnJwIGNhbiBoYXZlIHZhcmlvdXMgdHlwZXMuCisgICAgIiIiCisgICAgdC5jcmVzdWx0cy5hcHBlbmQoc3RyKHQucmMpKQorICAgIHQucHJlc3VsdHMuYXBwZW5kKHN0cih0LnJwKSkKKyAgICBpZiBpc2luc3RhbmNlKHQucmMsIEMuRGVjaW1hbCkgYW5kIGlzaW5zdGFuY2UodC5ycCwgUC5EZWNpbWFsKToKKyAgICAgICAgIyBHZW5lcmFsIGNhc2U6IGJvdGggcmVzdWx0cyBhcmUgRGVjaW1hbHMuCisgICAgICAgIHQuY3Jlc3VsdHMuYXBwZW5kKHQucmMudG9fZW5nX3N0cmluZygpKQorICAgICAgICB0LmNyZXN1bHRzLmFwcGVuZCh0LnJjLmFzX3R1cGxlKCkpCisgICAgICAgIHQuY3Jlc3VsdHMuYXBwZW5kKHN0cih0LnJjLmltYWcpKQorICAgICAgICB0LmNyZXN1bHRzLmFwcGVuZChzdHIodC5yYy5yZWFsKSkKKyAgICAgICAgdC5wcmVzdWx0cy5hcHBlbmQodC5ycC50b19lbmdfc3RyaW5nKCkpCisgICAgICAgIHQucHJlc3VsdHMuYXBwZW5kKHQucnAuYXNfdHVwbGUoKSkKKyAgICAgICAgdC5wcmVzdWx0cy5hcHBlbmQoc3RyKHQucnAuaW1hZykpCisgICAgICAgIHQucHJlc3VsdHMuYXBwZW5kKHN0cih0LnJwLnJlYWwpKQorCisgICAgICAgIG5jID0gdC5yYy5udW1iZXJfY2xhc3MoKS5sc3RyaXAoJystcycpCisgICAgICAgIHN0YXRbbmNdICs9IDEKKyAgICBlbHNlOgorICAgICAgICAjIFJlc3VsdHMgZnJvbSBlLmcuIF9fZGl2bW9kX18gY2FuIG9ubHkgYmUgY29tcGFyZWQgYXMgc3RyaW5ncy4KKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UodC5yYywgdHVwbGUpIGFuZCBub3QgaXNpbnN0YW5jZSh0LnJwLCB0dXBsZSk6CisgICAgICAgICAgICBpZiB0LnJjICE9IHQucnA6CisgICAgICAgICAgICAgICAgcmFpc2VfZXJyb3IodCkKKyAgICAgICAgc3RhdFt0eXBlKHQucmMpLl9fbmFtZV9fXSArPSAxCisKKyAgICAjIFRoZSByZXR1cm4gdmFsdWUgbGlzdHMgbXVzdCBiZSBlcXVhbC4KKyAgICBpZiB0LmNyZXN1bHRzICE9IHQucHJlc3VsdHM6CisgICAgICAgIHJhaXNlX2Vycm9yKHQpCisgICAgIyBUaGUgUHl0aG9uIGV4Y2VwdGlvbiBsaXN0cyAoVHlwZUVycm9yLCBldGMuKSBtdXN0IGJlIGVxdWFsLgorICAgIGlmIHQuY2V4ICE9IHQucGV4OgorICAgICAgICByYWlzZV9lcnJvcih0KQorICAgICMgVGhlIGNvbnRleHQgZmxhZ3MgbXVzdCBiZSBlcXVhbC4KKyAgICBpZiBub3QgdC5jb250ZXh0LmFzc2VydF9lcV9zdGF0dXMoKToKKyAgICAgICAgcmFpc2VfZXJyb3IodCkKKworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKyMgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWluIHRlc3QgbG9vcHMKKyMKKyMgIHRlc3RfbWV0aG9kKG1ldGhvZCwgdGVzdHNwZWNzLCB0ZXN0ZnVuYykgLT4KKyMKKyMgICAgIExvb3AgdGhyb3VnaCB2YXJpb3VzIGNvbnRleHQgc2V0dGluZ3MuIFRoZSBkZWdyZWUgb2YKKyMgICAgIHRob3JvdWdobmVzcyBpcyBkZXRlcm1pbmVkIGJ5ICd0ZXN0c3BlYycuIEZvciBlYWNoCisjICAgICBzZXR0aW5nLCBjYWxsICd0ZXN0ZnVuYycuIEdlbmVyYWxseSwgJ3Rlc3RmdW5jJyBpdHNlbGYKKyMgICAgIGEgbG9vcCwgaXRlcmF0aW5nIHRocm91Z2ggbWFueSB0ZXN0IGNhc2VzIGdlbmVyYXRlZAorIyAgICAgYnkgdGhlIGZ1bmN0aW9ucyBpbiByYW5kZGVjLnB5LgorIworIyAgdGVzdF9uLWFyeShtZXRob2QsIHByZWMsIGV4cF9yYW5nZSwgcmVzdHJpY3RlZF9yYW5nZSwgaXRyLCBzdGF0KSAtPgorIworIyAgICAgJ3Rlc3RfdW5hcnknLCAndGVzdF9iaW5hcnknIGFuZCAndGVzdF90ZXJuYXJ5JyBhcmUgdGhlCisjICAgICBtYWluIHRlc3QgZnVuY3Rpb25zIHBhc3NlZCB0byAndGVzdF9tZXRob2QnLiBUaGV5IGRlYWwKKyMgICAgIHdpdGggdGhlIHJlZ3VsYXIgY2FzZXMuIFRoZSB0aG9yb3VnaG5lc3Mgb2YgdGVzdGluZyBpcworIyAgICAgZGV0ZXJtaW5lZCBieSAnaXRyJy4KKyMKKyMgICAgICdwcmVjJywgJ2V4cF9yYW5nZScgYW5kICdyZXN0cmljdGVkX3JhbmdlJyBhcmUgcGFzc2VkCisjICAgICB0byB0aGUgdGVzdC1nZW5lcmF0aW5nIGZ1bmN0aW9ucyBhbmQgbGltaXQgdGhlIGdlbmVyYXRlZAorIyAgICAgdmFsdWVzLiBJbiBzb21lIGNhc2VzLCBmb3IgcmVhc29uYWJsZSBydW4gdGltZXMgYQorIyAgICAgbWF4aW11bSBleHBvbmVudCBvZiA5OTk5IGlzIHJlcXVpcmVkLgorIworIyAgICAgVGhlICdzdGF0JyBwYXJhbWV0ZXIgaXMgcGFzc2VkIGRvd24gdG8gdGhlICd2ZXJpZnknCisjICAgICBmdW5jdGlvbiwgd2hpY2ggcmVjb3JkcyBzdGF0aXN0aWNzIGZvciB0aGUgcmVzdWx0IHZhbHVlcy4KKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitkZWYgbG9nKGZtdCwgYXJncz1Ob25lKToKKyAgICBpZiBhcmdzOgorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCcnLmpvaW4oKGZtdCwgJ1xuJykpICUgYXJncykKKyAgICBlbHNlOgorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCcnLmpvaW4oKHN0cihmbXQpLCAnXG4nKSkpCisgICAgc3lzLnN0ZG91dC5mbHVzaCgpCisKK2RlZiB0ZXN0X21ldGhvZChtZXRob2QsIHRlc3RzcGVjcywgdGVzdGZ1bmMpOgorICAgICIiIkl0ZXJhdGUgYSB0ZXN0IGZ1bmN0aW9uIHRocm91Z2ggbWFueSBjb250ZXh0IHNldHRpbmdzLiIiIgorICAgIGxvZygidGVzdGluZyAlcyAuLi4iLCBtZXRob2QpCisgICAgc3RhdCA9IGRlZmF1bHRkaWN0KGludCkKKyAgICBmb3Igc3BlYyBpbiB0ZXN0c3BlY3M6CisgICAgICAgIGlmICdzYW1wbGVzJyBpbiBzcGVjOgorICAgICAgICAgICAgc3BlY1sncHJlYyddID0gc29ydGVkKHJhbmRvbS5zYW1wbGUocmFuZ2UoMSwgMTAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGVjWydzYW1wbGVzJ10pKQorICAgICAgICBmb3IgcHJlYyBpbiBzcGVjWydwcmVjJ106CisgICAgICAgICAgICBjb250ZXh0LnByZWMgPSBwcmVjCisgICAgICAgICAgICBmb3IgZXhwdHMgaW4gc3BlY1snZXhwdHMnXToKKyAgICAgICAgICAgICAgICBlbWluLCBlbWF4ID0gZXhwdHMKKyAgICAgICAgICAgICAgICBpZiBlbWluID09ICdyYW5kJzoKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5FbWluID0gcmFuZG9tLnJhbmRyYW5nZSgtMTAwMCwgMCkKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5FbWF4ID0gcmFuZG9tLnJhbmRyYW5nZShwcmVjLCAxMDAwKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNvbnRleHQuRW1pbiwgY29udGV4dC5FbWF4ID0gZW1pbiwgZW1heAorICAgICAgICAgICAgICAgIGlmIHByZWMgPiBjb250ZXh0LkVtYXg6IGNvbnRpbnVlCisgICAgICAgICAgICAgICAgbG9nKCIgICAgcHJlYzogJWQgIGVtaW46ICVkICBlbWF4OiAlZCIsCisgICAgICAgICAgICAgICAgICAgIChjb250ZXh0LnByZWMsIGNvbnRleHQuRW1pbiwgY29udGV4dC5FbWF4KSkKKyAgICAgICAgICAgICAgICByZXN0cl9yYW5nZSA9IDk5OTkgaWYgY29udGV4dC5FbWF4ID4gOTk5OSBlbHNlIGNvbnRleHQuRW1heCs5OQorICAgICAgICAgICAgICAgIGZvciByb3VuZGluZyBpbiBzb3J0ZWQoUm91bmRNYXApOgorICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnJvdW5kaW5nID0gcm91bmRpbmcKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dC5jYXBpdGFscyA9IHJhbmRvbS5yYW5kcmFuZ2UoMikKKyAgICAgICAgICAgICAgICAgICAgaWYgc3BlY1snY2xhbXAnXSA9PSAncmFuZCc6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmNsYW1wID0gcmFuZG9tLnJhbmRyYW5nZSgyKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5jbGFtcCA9IHNwZWNbJ2NsYW1wJ10KKyAgICAgICAgICAgICAgICAgICAgZXhwcmFuZ2UgPSBjb250ZXh0LmMuRW1heAorICAgICAgICAgICAgICAgICAgICB0ZXN0ZnVuYyhtZXRob2QsIHByZWMsIGV4cHJhbmdlLCByZXN0cl9yYW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlY1snaXRlciddLCBzdGF0KQorICAgIGxvZygiICAgIHJlc3VsdCB0eXBlczogJXMiICUgc29ydGVkKFt0IGZvciB0IGluIHN0YXQuaXRlbXMoKV0pKQorCitkZWYgdGVzdF91bmFyeShtZXRob2QsIHByZWMsIGV4cF9yYW5nZSwgcmVzdHJpY3RlZF9yYW5nZSwgaXRyLCBzdGF0KToKKyAgICAiIiJJdGVyYXRlIGEgdW5hcnkgZnVuY3Rpb24gdGhyb3VnaCBtYW55IHRlc3QgY2FzZXMuIiIiCisgICAgaWYgbWV0aG9kIGluIFVuYXJ5UmVzdHJpY3RlZDoKKyAgICAgICAgZXhwX3JhbmdlID0gcmVzdHJpY3RlZF9yYW5nZQorICAgIGZvciBvcCBpbiBhbGxfdW5hcnkocHJlYywgZXhwX3JhbmdlLCBpdHIpOgorICAgICAgICB0ID0gVGVzdFNldChtZXRob2QsIG9wKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBub3QgY29udmVydCh0KToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgY2FsbGZ1bmNzKHQpCisgICAgICAgICAgICB2ZXJpZnkodCwgc3RhdCkKKyAgICAgICAgZXhjZXB0IFZlcmlmeUVycm9yIGFzIGVycjoKKyAgICAgICAgICAgIGxvZyhlcnIpCisKK2RlZiB0ZXN0X2JpbmFyeShtZXRob2QsIHByZWMsIGV4cF9yYW5nZSwgcmVzdHJpY3RlZF9yYW5nZSwgaXRyLCBzdGF0KToKKyAgICAiIiJJdGVyYXRlIGEgYmluYXJ5IGZ1bmN0aW9uIHRocm91Z2ggbWFueSB0ZXN0IGNhc2VzLiIiIgorICAgIGlmIG1ldGhvZCBpbiBCaW5hcnlSZXN0cmljdGVkOgorICAgICAgICBleHBfcmFuZ2UgPSByZXN0cmljdGVkX3JhbmdlCisgICAgZm9yIG9wIGluIGFsbF9iaW5hcnkocHJlYywgZXhwX3JhbmdlLCBpdHIpOgorICAgICAgICB0ID0gVGVzdFNldChtZXRob2QsIG9wKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBub3QgY29udmVydCh0KToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgY2FsbGZ1bmNzKHQpCisgICAgICAgICAgICB2ZXJpZnkodCwgc3RhdCkKKyAgICAgICAgZXhjZXB0IFZlcmlmeUVycm9yIGFzIGVycjoKKyAgICAgICAgICAgIGxvZyhlcnIpCisKK2RlZiB0ZXN0X3Rlcm5hcnkobWV0aG9kLCBwcmVjLCBleHBfcmFuZ2UsIHJlc3RyaWN0ZWRfcmFuZ2UsIGl0ciwgc3RhdCk6CisgICAgIiIiSXRlcmF0ZSBhIHRlcm5hcnkgZnVuY3Rpb24gdGhyb3VnaCBtYW55IHRlc3QgY2FzZXMuIiIiCisgICAgaWYgbWV0aG9kIGluIFRlcm5hcnlSZXN0cmljdGVkOgorICAgICAgICBleHBfcmFuZ2UgPSByZXN0cmljdGVkX3JhbmdlCisgICAgZm9yIG9wIGluIGFsbF90ZXJuYXJ5KHByZWMsIGV4cF9yYW5nZSwgaXRyKToKKyAgICAgICAgdCA9IFRlc3RTZXQobWV0aG9kLCBvcCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgbm90IGNvbnZlcnQodCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGNhbGxmdW5jcyh0KQorICAgICAgICAgICAgdmVyaWZ5KHQsIHN0YXQpCisgICAgICAgIGV4Y2VwdCBWZXJpZnlFcnJvciBhcyBlcnI6CisgICAgICAgICAgICBsb2coZXJyKQorCitkZWYgdGVzdF9mb3JtYXQobWV0aG9kLCBwcmVjLCBleHBfcmFuZ2UsIHJlc3RyaWN0ZWRfcmFuZ2UsIGl0ciwgc3RhdCk6CisgICAgIiIiSXRlcmF0ZSB0aGUgX19mb3JtYXRfXyBtZXRob2QgdGhyb3VnaCBtYW55IHRlc3QgY2FzZXMuIiIiCisgICAgZm9yIG9wIGluIGFsbF91bmFyeShwcmVjLCBleHBfcmFuZ2UsIGl0cik6CisgICAgICAgIGZtdDEgPSByYW5kX2Zvcm1hdChjaHIocmFuZG9tLnJhbmRyYW5nZSgzMiwgMTI4KSksICdFZUdnbicpCisgICAgICAgIGZtdDIgPSByYW5kX2xvY2FsZSgpCisgICAgICAgIGZvciBmbXQgaW4gKGZtdDEsIGZtdDIpOgorICAgICAgICAgICAgZm10b3AgPSAob3BbMF0sIGZtdCkKKyAgICAgICAgICAgIHQgPSBUZXN0U2V0KG1ldGhvZCwgZm10b3ApCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgbm90IGNvbnZlcnQodCwgY29udnN0cj1GYWxzZSk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgY2FsbGZ1bmNzKHQpCisgICAgICAgICAgICAgICAgdmVyaWZ5KHQsIHN0YXQpCisgICAgICAgICAgICBleGNlcHQgVmVyaWZ5RXJyb3IgYXMgZXJyOgorICAgICAgICAgICAgICAgIGxvZyhlcnIpCisgICAgZm9yIG9wIGluIGFsbF91bmFyeShwcmVjLCA5OTk5LCBpdHIpOgorICAgICAgICBmbXQxID0gcmFuZF9mb3JtYXQoY2hyKHJhbmRvbS5yYW5kcmFuZ2UoMzIsIDEyOCkpLCAnRmYlJykKKyAgICAgICAgZm10MiA9IHJhbmRfbG9jYWxlKCkKKyAgICAgICAgZm9yIGZtdCBpbiAoZm10MSwgZm10Mik6CisgICAgICAgICAgICBmbXRvcCA9IChvcFswXSwgZm10KQorICAgICAgICAgICAgdCA9IFRlc3RTZXQobWV0aG9kLCBmbXRvcCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBub3QgY29udmVydCh0LCBjb252c3RyPUZhbHNlKToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBjYWxsZnVuY3ModCkKKyAgICAgICAgICAgICAgICB2ZXJpZnkodCwgc3RhdCkKKyAgICAgICAgICAgIGV4Y2VwdCBWZXJpZnlFcnJvciBhcyBlcnI6CisgICAgICAgICAgICAgICAgbG9nKGVycikKKworZGVmIHRlc3Rfcm91bmQobWV0aG9kLCBwcmVjLCBleHByYW5nZSwgcmVzdHJpY3RlZF9yYW5nZSwgaXRyLCBzdGF0KToKKyAgICAiIiJJdGVyYXRlIHRoZSBfX3JvdW5kX18gbWV0aG9kIHRocm91Z2ggbWFueSB0ZXN0IGNhc2VzLiIiIgorICAgIGZvciBvcCBpbiBhbGxfdW5hcnkocHJlYywgOTk5OSwgaXRyKToKKyAgICAgICAgbiA9IHJhbmRvbS5yYW5kcmFuZ2UoMTApCisgICAgICAgIHJvdW5kb3AgPSAob3BbMF0sIG4pCisgICAgICAgIHQgPSBUZXN0U2V0KG1ldGhvZCwgcm91bmRvcCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgbm90IGNvbnZlcnQodCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGNhbGxmdW5jcyh0KQorICAgICAgICAgICAgdmVyaWZ5KHQsIHN0YXQpCisgICAgICAgIGV4Y2VwdCBWZXJpZnlFcnJvciBhcyBlcnI6CisgICAgICAgICAgICBsb2coZXJyKQorCitkZWYgdGVzdF9mcm9tX2Zsb2F0KG1ldGhvZCwgcHJlYywgZXhwcmFuZ2UsIHJlc3RyaWN0ZWRfcmFuZ2UsIGl0ciwgc3RhdCk6CisgICAgIiIiSXRlcmF0ZSB0aGUgX19mbG9hdF9fIG1ldGhvZCB0aHJvdWdoIG1hbnkgdGVzdCBjYXNlcy4iIiIKKyAgICBmb3Igcm91bmRpbmcgaW4gc29ydGVkKFJvdW5kTWFwKToKKyAgICAgICAgY29udGV4dC5yb3VuZGluZyA9IHJvdW5kaW5nCisgICAgICAgIGZvciBpIGluIHJhbmdlKDEwMDApOgorICAgICAgICAgICAgZiA9IHJhbmRmbG9hdCgpCisgICAgICAgICAgICBvcCA9IChmLCkgaWYgbWV0aG9kLnN0YXJ0c3dpdGgoImNvbnRleHQuIikgZWxzZSAoInNOYU4iLCBmKQorICAgICAgICAgICAgdCA9IFRlc3RTZXQobWV0aG9kLCBvcCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBub3QgY29udmVydCh0KToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBjYWxsZnVuY3ModCkKKyAgICAgICAgICAgICAgICB2ZXJpZnkodCwgc3RhdCkKKyAgICAgICAgICAgIGV4Y2VwdCBWZXJpZnlFcnJvciBhcyBlcnI6CisgICAgICAgICAgICAgICAgbG9nKGVycikKKworZGVmIHJhbmRjb250ZXh0KGV4cHJhbmdlKToKKyAgICBjID0gQ29udGV4dChDLkNvbnRleHQoKSwgUC5Db250ZXh0KCkpCisgICAgYy5FbWF4ID0gcmFuZG9tLnJhbmRyYW5nZSgxLCBleHByYW5nZSsxKQorICAgIGMuRW1pbiA9IHJhbmRvbS5yYW5kcmFuZ2UoLWV4cHJhbmdlLCAwKQorICAgIG1heHByZWMgPSAxMDAgaWYgYy5FbWF4ID49IDEwMCBlbHNlIGMuRW1heAorICAgIGMucHJlYyA9IHJhbmRvbS5yYW5kcmFuZ2UoMSwgbWF4cHJlYysxKQorICAgIGMuY2xhbXAgPSByYW5kb20ucmFuZHJhbmdlKDIpCisgICAgYy5jbGVhcl90cmFwcygpCisgICAgcmV0dXJuIGMKKworZGVmIHRlc3RfcXVhbnRpemVfYXBpKG1ldGhvZCwgcHJlYywgZXhwcmFuZ2UsIHJlc3RyaWN0ZWRfcmFuZ2UsIGl0ciwgc3RhdCk6CisgICAgIiIiSXRlcmF0ZSB0aGUgJ3F1YW50aXplJyBtZXRob2QgdGhyb3VnaCBtYW55IHRlc3QgY2FzZXMsIHVzaW5nCisgICAgICAgdGhlIG9wdGlvbmFsIGFyZ3VtZW50cy4iIiIKKyAgICBmb3Igb3AgaW4gYWxsX2JpbmFyeShwcmVjLCByZXN0cmljdGVkX3JhbmdlLCBpdHIpOgorICAgICAgICBmb3Igcm91bmRpbmcgaW4gUm91bmRNb2RlczoKKyAgICAgICAgICAgIGMgPSByYW5kY29udGV4dChleHByYW5nZSkKKyAgICAgICAgICAgIHF1YW50aXplb3AgPSAob3BbMF0sIG9wWzFdLCByb3VuZGluZywgYykKKyAgICAgICAgICAgIHQgPSBUZXN0U2V0KG1ldGhvZCwgcXVhbnRpemVvcCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpZiBub3QgY29udmVydCh0KToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBjYWxsZnVuY3ModCkKKyAgICAgICAgICAgICAgICB2ZXJpZnkodCwgc3RhdCkKKyAgICAgICAgICAgIGV4Y2VwdCBWZXJpZnlFcnJvciBhcyBlcnI6CisgICAgICAgICAgICAgICAgbG9nKGVycikKKworCitkZWYgY2hlY2tfdW50ZXN0ZWQoZnVuY2RpY3QsIGNfY2xzLCBwX2Nscyk6CisgICAgIiIiRGV0ZXJtaW5lIHVudGVzdGVkLCBDLW9ubHkgYW5kIFB5dGhvbi1vbmx5IGF0dHJpYnV0ZXMuCisgICAgICAgVW5jb21tZW50IHByaW50IGxpbmVzIGZvciBkZWJ1Z2dpbmcuIiIiCisgICAgY19hdHRyID0gc2V0KGRpcihjX2NscykpCisgICAgcF9hdHRyID0gc2V0KGRpcihwX2NscykpCisgICAgaW50ZXJzZWN0ID0gY19hdHRyICYgcF9hdHRyCisKKyAgICBmdW5jZGljdFsnY19vbmx5J10gPSB0dXBsZShzb3J0ZWQoY19hdHRyLWludGVyc2VjdCkpCisgICAgZnVuY2RpY3RbJ3Bfb25seSddID0gdHVwbGUoc29ydGVkKHBfYXR0ci1pbnRlcnNlY3QpKQorCisgICAgdGVzdGVkID0gc2V0KCkKKyAgICBmb3IgbHN0IGluIGZ1bmNkaWN0LnZhbHVlcygpOgorICAgICAgICBmb3IgdiBpbiBsc3Q6CisgICAgICAgICAgICB2ID0gdi5yZXBsYWNlKCJjb250ZXh0LiIsICIiKSBpZiBjX2NscyA9PSBDLkNvbnRleHQgZWxzZSB2CisgICAgICAgICAgICB0ZXN0ZWQuYWRkKHYpCisKKyAgICBmdW5jZGljdFsndW50ZXN0ZWQnXSA9IHR1cGxlKHNvcnRlZChpbnRlcnNlY3QtdGVzdGVkKSkKKworICAgICNmb3Iga2V5IGluICgndW50ZXN0ZWQnLCAnY19vbmx5JywgJ3Bfb25seScpOgorICAgICMgICAgcyA9ICdDb250ZXh0JyBpZiBjX2NscyA9PSBDLkNvbnRleHQgZWxzZSAnRGVjaW1hbCcKKyAgICAjICAgIHByaW50KCJcbiVzICVzOlxuJXMiICUgKHMsIGtleSwgZnVuY2RpY3Rba2V5XSkpCisKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKworICAgIGltcG9ydCB0aW1lCisKKyAgICByYW5kc2VlZCA9IGludCh0aW1lLnRpbWUoKSkKKyAgICByYW5kb20uc2VlZChyYW5kc2VlZCkKKworICAgICMgU2V0IHVwIHRoZSB0ZXN0c3BlY3MgbGlzdC4gQSB0ZXN0c3BlYyBpcyBzaW1wbHkgYSBkaWN0aW9uYXJ5CisgICAgIyB0aGF0IGRldGVybWluZXMgdGhlIGFtb3VudCBvZiBkaWZmZXJlbnQgY29udGV4dHMgdGhhdCAndGVzdF9tZXRob2QnCisgICAgIyB3aWxsIGdlbmVyYXRlLgorICAgIGJhc2VfZXhwdHMgPSBbKEMuTUlOX0VNSU4sIEMuTUFYX0VNQVgpXQorICAgIGlmIEMuTUFYX0VNQVggPT0gOTk5OTk5OTk5OTk5OTk5OTk5OgorICAgICAgICBiYXNlX2V4cHRzLmFwcGVuZCgoLTk5OTk5OTk5OSwgOTk5OTk5OTk5KSkKKworICAgICMgQmFzaWMgY29udGV4dHMuCisgICAgYmFzZSA9IHsKKyAgICAgICAgJ2V4cHRzJzogYmFzZV9leHB0cywKKyAgICAgICAgJ3ByZWMnOiBbXSwKKyAgICAgICAgJ2NsYW1wJzogJ3JhbmQnLAorICAgICAgICAnaXRlcic6IE5vbmUsCisgICAgICAgICdzYW1wbGVzJzogTm9uZSwKKyAgICB9CisgICAgIyBDb250ZXh0cyB3aXRoIHNtYWxsIHZhbHVlcyBmb3IgcHJlYywgZW1pbiwgZW1heC4KKyAgICBzbWFsbCA9IHsKKyAgICAgICAgJ3ByZWMnOiBbMSwgMiwgMywgNCwgNV0sCisgICAgICAgICdleHB0cyc6IFsoLTEsIDEpLCAoLTIsIDIpLCAoLTMsIDMpLCAoLTQsIDQpLCAoLTUsIDUpXSwKKyAgICAgICAgJ2NsYW1wJzogJ3JhbmQnLAorICAgICAgICAnaXRlcic6IE5vbmUKKyAgICB9CisgICAgIyBJRUVFIGludGVyY2hhbmdlIGZvcm1hdC4KKyAgICBpZWVlID0gWworICAgICAgICAjIERFQ0lNQUwzMgorICAgICAgICB7J3ByZWMnOiBbN10sICdleHB0cyc6IFsoLTk1LCA5NildLCAnY2xhbXAnOiAxLCAnaXRlcic6IE5vbmV9LAorICAgICAgICAjIERFQ0lNQUw2NAorICAgICAgICB7J3ByZWMnOiBbMTZdLCAnZXhwdHMnOiBbKC0zODMsIDM4NCldLCAnY2xhbXAnOiAxLCAnaXRlcic6IE5vbmV9LAorICAgICAgICAjIERFQ0lNQUwxMjgKKyAgICAgICAgeydwcmVjJzogWzM0XSwgJ2V4cHRzJzogWygtNjE0MywgNjE0NCldLCAnY2xhbXAnOiAxLCAnaXRlcic6IE5vbmV9CisgICAgXQorCisgICAgaWYgJy0tbWVkaXVtJyBpbiBzeXMuYXJndjoKKyAgICAgICAgYmFzZVsnZXhwdHMnXS5hcHBlbmQoKCdyYW5kJywgJ3JhbmQnKSkKKyAgICAgICAgIyA1IHJhbmRvbSBwcmVjaXNpb25zCisgICAgICAgIGJhc2VbJ3NhbXBsZXMnXSA9IDUKKyAgICAgICAgdGVzdHNwZWNzID0gW3NtYWxsXSArIGllZWUgKyBbYmFzZV0KKyAgICBpZiAnLS1sb25nJyBpbiBzeXMuYXJndjoKKyAgICAgICAgYmFzZVsnZXhwdHMnXS5hcHBlbmQoKCdyYW5kJywgJ3JhbmQnKSkKKyAgICAgICAgIyAxMCByYW5kb20gcHJlY2lzaW9ucworICAgICAgICBiYXNlWydzYW1wbGVzJ10gPSAxMAorICAgICAgICB0ZXN0c3BlY3MgPSBbc21hbGxdICsgaWVlZSArIFtiYXNlXQorICAgIGVsaWYgJy0tYWxsJyBpbiBzeXMuYXJndjoKKyAgICAgICAgYmFzZVsnZXhwdHMnXS5hcHBlbmQoKCdyYW5kJywgJ3JhbmQnKSkKKyAgICAgICAgIyBBbGwgcHJlY2lzaW9ucyBpbiBbMSwgMTAwXQorICAgICAgICBiYXNlWydzYW1wbGVzJ10gPSAxMDAKKyAgICAgICAgdGVzdHNwZWNzID0gW3NtYWxsXSArIGllZWUgKyBbYmFzZV0KKyAgICBlbHNlOiAjIC0tc2hvcnQKKyAgICAgICAgcmFuZF9pZWVlID0gcmFuZG9tLmNob2ljZShpZWVlKQorICAgICAgICBiYXNlWydpdGVyJ10gPSBzbWFsbFsnaXRlciddID0gcmFuZF9pZWVlWydpdGVyJ10gPSAxCisgICAgICAgICMgMSByYW5kb20gcHJlY2lzaW9uIGFuZCBleHBvbmVudCBwYWlyCisgICAgICAgIGJhc2VbJ3NhbXBsZXMnXSA9IDEKKyAgICAgICAgYmFzZVsnZXhwdHMnXSA9IFtyYW5kb20uY2hvaWNlKGJhc2VfZXhwdHMpXQorICAgICAgICAjIDEgcmFuZG9tIHByZWNpc2lvbiBhbmQgZXhwb25lbnQgcGFpcgorICAgICAgICBwcmVjID0gcmFuZG9tLnJhbmRyYW5nZSgxLCA2KQorICAgICAgICBzbWFsbFsncHJlYyddID0gW3ByZWNdCisgICAgICAgIHNtYWxsWydleHB0cyddID0gWygtcHJlYywgcHJlYyldCisgICAgICAgIHRlc3RzcGVjcyA9IFtzbWFsbCwgcmFuZF9pZWVlLCBiYXNlXQorCisgICAgY2hlY2tfdW50ZXN0ZWQoRnVuY3Rpb25zLCBDLkRlY2ltYWwsIFAuRGVjaW1hbCkKKyAgICBjaGVja191bnRlc3RlZChDb250ZXh0RnVuY3Rpb25zLCBDLkNvbnRleHQsIFAuQ29udGV4dCkKKworCisgICAgbG9nKCJcblxuUmFuZG9tIHNlZWQ6ICVkXG5cbiIsIHJhbmRzZWVkKQorCisgICAgIyBEZWNpbWFsIG1ldGhvZHM6CisgICAgZm9yIG1ldGhvZCBpbiBGdW5jdGlvbnNbJ3VuYXJ5J10gKyBGdW5jdGlvbnNbJ3VuYXJ5X2N0eCddICsgXAorICAgICAgICAgICAgICAgICAgRnVuY3Rpb25zWyd1bmFyeV9ybmRfY3R4J106CisgICAgICAgIHRlc3RfbWV0aG9kKG1ldGhvZCwgdGVzdHNwZWNzLCB0ZXN0X3VuYXJ5KQorCisgICAgZm9yIG1ldGhvZCBpbiBGdW5jdGlvbnNbJ2JpbmFyeSddICsgRnVuY3Rpb25zWydiaW5hcnlfY3R4J106CisgICAgICAgIHRlc3RfbWV0aG9kKG1ldGhvZCwgdGVzdHNwZWNzLCB0ZXN0X2JpbmFyeSkKKworICAgIGZvciBtZXRob2QgaW4gRnVuY3Rpb25zWyd0ZXJuYXJ5J10gKyBGdW5jdGlvbnNbJ3Rlcm5hcnlfY3R4J106CisgICAgICAgIHRlc3RfbWV0aG9kKG1ldGhvZCwgdGVzdHNwZWNzLCB0ZXN0X3Rlcm5hcnkpCisKKyAgICB0ZXN0X21ldGhvZCgnX19mb3JtYXRfXycsIHRlc3RzcGVjcywgdGVzdF9mb3JtYXQpCisgICAgdGVzdF9tZXRob2QoJ19fcm91bmRfXycsIHRlc3RzcGVjcywgdGVzdF9yb3VuZCkKKyAgICB0ZXN0X21ldGhvZCgnZnJvbV9mbG9hdCcsIHRlc3RzcGVjcywgdGVzdF9mcm9tX2Zsb2F0KQorICAgIHRlc3RfbWV0aG9kKCdxdWFudGl6ZScsIHRlc3RzcGVjcywgdGVzdF9xdWFudGl6ZV9hcGkpCisKKyAgICAjIENvbnRleHQgbWV0aG9kczoKKyAgICBmb3IgbWV0aG9kIGluIENvbnRleHRGdW5jdGlvbnNbJ3VuYXJ5J106CisgICAgICAgIHRlc3RfbWV0aG9kKG1ldGhvZCwgdGVzdHNwZWNzLCB0ZXN0X3VuYXJ5KQorCisgICAgZm9yIG1ldGhvZCBpbiBDb250ZXh0RnVuY3Rpb25zWydiaW5hcnknXToKKyAgICAgICAgdGVzdF9tZXRob2QobWV0aG9kLCB0ZXN0c3BlY3MsIHRlc3RfYmluYXJ5KQorCisgICAgZm9yIG1ldGhvZCBpbiBDb250ZXh0RnVuY3Rpb25zWyd0ZXJuYXJ5J106CisgICAgICAgIHRlc3RfbWV0aG9kKG1ldGhvZCwgdGVzdHNwZWNzLCB0ZXN0X3Rlcm5hcnkpCisKKyAgICB0ZXN0X21ldGhvZCgnY29udGV4dC5jcmVhdGVfZGVjaW1hbF9mcm9tX2Zsb2F0JywgdGVzdHNwZWNzLCB0ZXN0X2Zyb21fZmxvYXQpCisKKworICAgIHN5cy5leGl0KEVYSVRfU1RBVFVTKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC90ZXN0cy9mb3JtYXRoZWxwZXIucHkgYi9Nb2R1bGVzL19kZWNpbWFsL3Rlc3RzL2Zvcm1hdGhlbHBlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZGEyYjM3Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC90ZXN0cy9mb3JtYXRoZWxwZXIucHkKQEAgLTAsMCArMSwzNDQgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDA4LTIwMTIgU3RlZmFuIEtyYWguIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIworIyAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorIyBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorIyBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorIyBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUworIyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikKKyMgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyMgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorIyBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisjIFNVQ0ggREFNQUdFLgorIworCisKKyMgR2VuZXJhdGUgUEVQLTMxMDEgZm9ybWF0IHN0cmluZ3MuCisKKworaW1wb3J0IG9zLCBzeXMsIGxvY2FsZSwgcmFuZG9tCitpbXBvcnQgcGxhdGZvcm0sIHN1YnByb2Nlc3MKK2Zyb20gdGVzdC5zdXBwb3J0IGltcG9ydCBpbXBvcnRfZnJlc2hfbW9kdWxlCitmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCisKK0MgPSBpbXBvcnRfZnJlc2hfbW9kdWxlKCdkZWNpbWFsJywgZnJlc2g9WydfZGVjaW1hbCddKQorUCA9IGltcG9ydF9mcmVzaF9tb2R1bGUoJ2RlY2ltYWwnLCBibG9ja2VkPVsnX2RlY2ltYWwnXSkKKworCit3aW5kb3dzX2xhbmdfc3RyaW5ncyA9IFsKKyAgImNoaW5lc2UiLCAiY2hpbmVzZS1zaW1wbGlmaWVkIiwgImNoaW5lc2UtdHJhZGl0aW9uYWwiLCAiY3plY2giLCAiZGFuaXNoIiwKKyAgImR1dGNoIiwgImJlbGdpYW4iLCAiZW5nbGlzaCIsICJhdXN0cmFsaWFuIiwgImNhbmFkaWFuIiwgImVuZ2xpc2gtbnoiLAorICAiZW5nbGlzaC11ayIsICJlbmdsaXNoLXVzIiwgImZpbm5pc2giLCAiZnJlbmNoIiwgImZyZW5jaC1iZWxnaWFuIiwKKyAgImZyZW5jaC1jYW5hZGlhbiIsICJmcmVuY2gtc3dpc3MiLCAiZ2VybWFuIiwgImdlcm1hbi1hdXN0cmlhbiIsCisgICJnZXJtYW4tc3dpc3MiLCAiZ3JlZWsiLCAiaHVuZ2FyaWFuIiwgImljZWxhbmRpYyIsICJpdGFsaWFuIiwgIml0YWxpYW4tc3dpc3MiLAorICAiamFwYW5lc2UiLCAia29yZWFuIiwgIm5vcndlZ2lhbiIsICJub3J3ZWdpYW4tYm9rbWFsIiwgIm5vcndlZ2lhbi1ueW5vcnNrIiwKKyAgInBvbGlzaCIsICJwb3J0dWd1ZXNlIiwgInBvcnR1Z3Vlc2UtYnJhemlsIiwgInJ1c3NpYW4iLCAic2xvdmFrIiwgInNwYW5pc2giLAorICAic3BhbmlzaC1tZXhpY2FuIiwgInNwYW5pc2gtbW9kZXJuIiwgInN3ZWRpc2giLCAidHVya2lzaCIsCitdCisKK3ByZWZlcnJlZF9lbmNvZGluZyA9IHsKKyAgJ2NzX0NaJzogJ0lTTzg4NTktMicsCisgICdjc19DWi5pc284ODU5Mic6ICdJU084ODU5LTInLAorICAnY3plY2gnOiAnSVNPODg1OS0yJywKKyAgJ2Vlc3RpJzogJ0lTTzg4NTktMScsCisgICdlc3Rvbmlhbic6ICdJU084ODU5LTEnLAorICAnZXRfRUUnOiAnSVNPODg1OS0xNScsCisgICdldF9FRS5JU08tODg1OS0xNSc6ICdJU084ODU5LTE1JywKKyAgJ2V0X0VFLmlzbzg4NTkxNSc6ICdJU084ODU5LTE1JywKKyAgJ2V0X0VFLmlzbzg4NTkxJzogJ0lTTzg4NTktMScsCisgICdmaV9GSS5pc284ODU5MSc6ICdJU084ODU5LTEnLAorICAnZmlfRkknOiAnSVNPODg1OS0xNScsCisgICdmaV9GSUBldXJvJzogJ0lTTzg4NTktMTUnLAorICAnZmlfRkkuaXNvODg1OTE1QGV1cm8nOiAnSVNPODg1OS0xNScsCisgICdmaW5uaXNoJzogJ0lTTzg4NTktMScsCisgICdsdl9MVic6ICdJU084ODU5LTEzJywKKyAgJ2x2X0xWLmlzbzg4NTkxMyc6ICdJU084ODU5LTEzJywKKyAgJ25iX05PJzogJ0lTTzg4NTktMScsCisgICduYl9OTy5pc284ODU5MSc6ICdJU084ODU5LTEnLAorICAnYm9rbWFsJzogJ0lTTzg4NTktMScsCisgICdubl9OTyc6ICdJU084ODU5LTEnLAorICAnbm5fTk8uaXNvODg1OTEnOiAnSVNPODg1OS0xJywKKyAgJ25vX05PJzogJ0lTTzg4NTktMScsCisgICdub3J3ZWdpYW4nOiAnSVNPODg1OS0xJywKKyAgJ255bm9yc2snOiAnSVNPODg1OS0xJywKKyAgJ3J1X1JVJzogJ0lTTzg4NTktNScsCisgICdydV9SVS5pc284ODU5NSc6ICdJU084ODU5LTUnLAorICAncnVzc2lhbic6ICdJU084ODU5LTUnLAorICAncnVfUlUuS09JOC1SJzogJ0tPSTgtUicsCisgICdydV9SVS5rb2k4cic6ICdLT0k4LVInLAorICAncnVfUlUuQ1AxMjUxJzogJ0NQMTI1MScsCisgICdydV9SVS5jcDEyNTEnOiAnQ1AxMjUxJywKKyAgJ3NrX1NLJzogJ0lTTzg4NTktMicsCisgICdza19TSy5pc284ODU5Mic6ICdJU084ODU5LTInLAorICAnc2xvdmFrJzogJ0lTTzg4NTktMicsCisgICdzdl9GSSc6ICdJU084ODU5LTEnLAorICAnc3ZfRkkuaXNvODg1OTEnOiAnSVNPODg1OS0xJywKKyAgJ3N2X0ZJQGV1cm8nOiAnSVNPODg1OS0xNScsCisgICdzdl9GSS5pc284ODU5MTVAZXVybyc6ICdJU084ODU5LTE1JywKKyAgJ3VrX1VBJzogJ0tPSTgtVScsCisgICd1a19VQS5rb2k4dSc6ICdLT0k4LVUnCit9CisKK2ludGVnZXJzID0gWworICAiIiwKKyAgIjEiLAorICAiMTIiLAorICAiMTIzIiwKKyAgIjEyMzQiLAorICAiMTIzNDUiLAorICAiMTIzNDU2IiwKKyAgIjEyMzQ1NjciLAorICAiMTIzNDU2NzgiLAorICAiMTIzNDU2Nzg5IiwKKyAgIjEyMzQ1Njc4OTAiLAorICAiMTIzNDU2Nzg5MDEiLAorICAiMTIzNDU2Nzg5MDEyIiwKKyAgIjEyMzQ1Njc4OTAxMjMiLAorICAiMTIzNDU2Nzg5MDEyMzQiLAorICAiMTIzNDU2Nzg5MDEyMzQ1IiwKKyAgIjEyMzQ1Njc4OTAxMjM0NTYiLAorICAiMTIzNDU2Nzg5MDEyMzQ1NjciLAorICAiMTIzNDU2Nzg5MDEyMzQ1Njc4IiwKKyAgIjEyMzQ1Njc4OTAxMjM0NTY3ODkiLAorICAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAiLAorICAiMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxIiwKKyAgIjEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiLAorXQorCitudW1iZXJzID0gWworICAiMCIsICItMCIsICIrMCIsCisgICIwLjAiLCAiLTAuMCIsICIrMC4wIiwKKyAgIjBlMCIsICItMGUwIiwgIiswZTAiLAorICAiLjAiLCAiLS4wIiwKKyAgIi4xIiwgIi0uMSIsCisgICIxLjEiLCAiLTEuMSIsCisgICIxZTEiLCAiLTFlMSIKK10KKworIyBHZXQgdGhlIGxpc3Qgb2YgYXZhaWxhYmxlIGxvY2FsZXMuCitpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAnV2luZG93cyc6CisgICAgbG9jYWxlX2xpc3QgPSB3aW5kb3dzX2xhbmdfc3RyaW5ncworZWxzZToKKyAgICBsb2NhbGVfbGlzdCA9IFsnQyddCisgICAgaWYgb3MucGF0aC5pc2ZpbGUoIi92YXIvbGliL2xvY2FsZXMvc3VwcG9ydGVkLmQvbG9jYWwiKToKKyAgICAgICAgIyBPbiBVYnVudHUsIGBsb2NhbGUgLWFgIGdpdmVzIHRoZSB3cm9uZyBjYXNlIGZvciBzb21lIGxvY2FsZXMsCisgICAgICAgICMgc28gd2UgZ2V0IHRoZSBjb3JyZWN0IG5hbWVzIGRpcmVjdGx5OgorICAgICAgICB3aXRoIG9wZW4oIi92YXIvbGliL2xvY2FsZXMvc3VwcG9ydGVkLmQvbG9jYWwiKSBhcyBmOgorICAgICAgICAgICAgbG9jYWxlX2xpc3QgPSBbbG9jLnNwbGl0KClbMF0gZm9yIGxvYyBpbiBmLnJlYWRsaW5lcygpIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBsb2Muc3RhcnRzd2l0aCgnIycpXQorICAgIGVsaWYgZmluZF9leGVjdXRhYmxlKCdsb2NhbGUnKToKKyAgICAgICAgbG9jYWxlX2xpc3QgPSBzdWJwcm9jZXNzLlBvcGVuKFsibG9jYWxlIiwgIi1hIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpLmNvbW11bmljYXRlKClbMF0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbG9jYWxlX2xpc3QgPSBsb2NhbGVfbGlzdC5kZWNvZGUoKQorICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgorICAgICAgICAgICAgIyBTb21lIGRpc3RyaWJ1dGlvbnMgaW5zaXN0IG9uIHVzaW5nIGxhdGluLTEgY2hhcmFjdGVycworICAgICAgICAgICAgIyBpbiB0aGVpciBsb2NhbGUgbmFtZXMuCisgICAgICAgICAgICBsb2NhbGVfbGlzdCA9IGxvY2FsZV9saXN0LmRlY29kZSgnbGF0aW4tMScpCisgICAgICAgIGxvY2FsZV9saXN0ID0gbG9jYWxlX2xpc3Quc3BsaXQoJ1xuJykKK3RyeToKKyAgICBsb2NhbGVfbGlzdC5yZW1vdmUoJycpCitleGNlcHQgVmFsdWVFcnJvcjoKKyAgICBwYXNzCisKKyMgRGViaWFuCitpZiBvcy5wYXRoLmlzZmlsZSgiL2V0Yy9sb2NhbGUuYWxpYXMiKToKKyAgICB3aXRoIG9wZW4oIi9ldGMvbG9jYWxlLmFsaWFzIikgYXMgZjoKKyAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBsaW5lID0gZi5yZWFkbGluZSgpCisgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBsaW5lID09ICIiOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJyMnKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgeCA9IGxpbmUuc3BsaXQoKQorICAgICAgICAgICAgaWYgbGVuKHgpID09IDI6CisgICAgICAgICAgICAgICAgaWYgeFswXSBpbiBsb2NhbGVfbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgbG9jYWxlX2xpc3QucmVtb3ZlKHhbMF0pCisKKyMgRnJlZUJTRAoraWYgcGxhdGZvcm0uc3lzdGVtKCkgPT0gJ0ZyZWVCU0QnOgorICAgICMgaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jZ2kvcXVlcnktcHIuY2dpP3ByPTE0MjE3MworICAgICMgZW5fR0IuVVMtQVNDSUkgaGFzIDE2MyBhcyB0aGUgY3VycmVuY3kgc3ltYm9sLgorICAgIGZvciBsb2MgaW4gWydpdF9DSC5JU084ODU5LTEnLCAnaXRfQ0guSVNPODg1OS0xNScsICdpdF9DSC5VVEYtOCcsCisgICAgICAgICAgICAgICAgJ2l0X0lULklTTzg4NTktMScsICdpdF9JVC5JU084ODU5LTE1JywgJ2l0X0lULlVURi04JywKKyAgICAgICAgICAgICAgICAnc2xfU0kuSVNPODg1OS0yJywgJ3NsX1NJLlVURi04JywKKyAgICAgICAgICAgICAgICAnZW5fR0IuVVMtQVNDSUknXToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbG9jYWxlX2xpc3QucmVtb3ZlKGxvYykKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICBwYXNzCisKKyMgUHJpbnQgYSB0ZXN0Y2FzZSBpbiB0aGUgZm9ybWF0IG9mIHRoZSBJQk0gdGVzdHMgKGZvciBydW50ZXN0LmMpOgorZGVmIGdldF9wcmVmZXJyZWRfZW5jb2RpbmcoKToKKyAgICBsb2MgPSBsb2NhbGUuc2V0bG9jYWxlKGxvY2FsZS5MQ19DVFlQRSkKKyAgICBpZiBsb2MgaW4gcHJlZmVycmVkX2VuY29kaW5nOgorICAgICAgICByZXR1cm4gcHJlZmVycmVkX2VuY29kaW5nW2xvY10KKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gbG9jYWxlLmdldHByZWZlcnJlZGVuY29kaW5nKCkKKworZGVmIHByaW50aXQodGVzdG5vLCBzLCBmbXQsIGVuY29kaW5nPU5vbmUpOgorICAgIGlmIG5vdCBlbmNvZGluZzoKKyAgICAgICAgZW5jb2RpbmcgPSBnZXRfcHJlZmVycmVkX2VuY29kaW5nKCkKKyAgICB0cnk6CisgICAgICAgIHJlc3VsdCA9IGZvcm1hdChQLkRlY2ltYWwocyksIGZtdCkKKyAgICAgICAgZm10ID0gc3RyKGZtdC5lbmNvZGUoZW5jb2RpbmcpKVsyOi0xXQorICAgICAgICByZXN1bHQgPSBzdHIocmVzdWx0LmVuY29kZShlbmNvZGluZykpWzI6LTFdCisgICAgICAgIGlmICInIiBpbiByZXN1bHQ6CisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJ4Zm10JWQgIGZvcm1hdCAgJXMgICclcycgIC0+ICBcIiVzXCJcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAodGVzdG5vLCBzLCBmbXQsIHJlc3VsdCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCJ4Zm10JWQgIGZvcm1hdCAgJXMgICclcycgIC0+ICAnJXMnXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHRlc3RubywgcywgZm10LCByZXN1bHQpKQorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXJyOgorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCIlcyAgJXMgICVzXG4iICUgKGVyciwgcywgZm10KSkKKworCisjIENoZWNrIGlmIGFuIGludGVnZXIgY2FuIGJlIGNvbnZlcnRlZCB0byBhIHZhbGlkIGZpbGwgY2hhcmFjdGVyLgorZGVmIGNoZWNrX2ZpbGxjaGFyKGkpOgorICAgIHRyeToKKyAgICAgICAgYyA9IGNocihpKQorICAgICAgICBjLmVuY29kZSgndXRmLTgnKS5kZWNvZGUoKQorICAgICAgICBmb3JtYXQoUC5EZWNpbWFsKDApLCBjICsgJzwxOWcnKQorICAgICAgICBpZiBjIGluICgiJyIsICciJywgJ1xcJyk6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gYworICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworIyBHZW5lcmF0ZSBhbGwgdW5pY29kZSBjaGFyYWN0ZXJzIHRoYXQgYXJlIGFjY2VwdGVkIGFzCisjIGZpbGwgY2hhcmFjdGVycyBieSBkZWNpbWFsLnB5LgorZGVmIGFsbF9maWxsY2hhcnMoKToKKyAgICBmb3IgaSBpbiByYW5nZSgzMiwgMHgxMTAwMDIpOgorICAgICAgICBjID0gY2hlY2tfZmlsbGNoYXIoaSkKKyAgICAgICAgaWYgYzogeWllbGQgYworCisjIFJldHVybiByYW5kb20gZmlsbCBjaGFyYWN0ZXIuCitkZWYgcmFuZF9maWxsY2hhcigpOgorICAgIHdoaWxlIDE6CisgICAgICAgIGkgPSByYW5kb20ucmFuZHJhbmdlKDMyLCAweDExMDAwMikKKyAgICAgICAgYyA9IGNoZWNrX2ZpbGxjaGFyKGkpCisgICAgICAgIGlmIGM6IHJldHVybiBjCisKKyMgR2VuZXJhdGUgcmFuZG9tIGZvcm1hdCBzdHJpbmdzCisjIFtbZmlsbF1hbGlnbl1bc2lnbl1bI11bMF1bd2lkdGhdWy5wcmVjaXNpb25dW3R5cGVdCitkZWYgcmFuZF9mb3JtYXQoZmlsbCwgdHlwZXNwZWM9J0VlR2dGZm4lJyk6CisgICAgYWN0aXZlID0gc29ydGVkKHJhbmRvbS5zYW1wbGUocmFuZ2UoNyksIHJhbmRvbS5yYW5kcmFuZ2UoOCkpKQorICAgIGhhdmVfYWxpZ24gPSAwCisgICAgcyA9ICcnCisgICAgZm9yIGVsZW0gaW4gYWN0aXZlOgorICAgICAgICBpZiBlbGVtID09IDA6ICMgZmlsbCthbGlnbgorICAgICAgICAgICAgcyArPSBmaWxsCisgICAgICAgICAgICBzICs9IHJhbmRvbS5jaG9pY2UoJzw+PV4nKQorICAgICAgICAgICAgaGF2ZV9hbGlnbiA9IDEKKyAgICAgICAgZWxpZiBlbGVtID09IDE6ICMgc2lnbgorICAgICAgICAgICAgcyArPSByYW5kb20uY2hvaWNlKCcrLSAnKQorICAgICAgICBlbGlmIGVsZW0gPT0gMiBhbmQgbm90IGhhdmVfYWxpZ246ICMgemVyb3BhZAorICAgICAgICAgICAgcyArPSAnMCcKKyAgICAgICAgZWxpZiBlbGVtID09IDM6ICMgd2lkdGgKKyAgICAgICAgICAgIHMgKz0gc3RyKHJhbmRvbS5yYW5kcmFuZ2UoMSwgMTAwKSkKKyAgICAgICAgZWxpZiBlbGVtID09IDQ6ICMgdGhvdXNhbmRzIHNlcGFyYXRvcgorICAgICAgICAgICAgcyArPSAnLCcKKyAgICAgICAgZWxpZiBlbGVtID09IDU6ICMgcHJlYworICAgICAgICAgICAgcyArPSAnLicKKyAgICAgICAgICAgIHMgKz0gc3RyKHJhbmRvbS5yYW5kcmFuZ2UoMTAwKSkKKyAgICAgICAgZWxpZiBlbGVtID09IDY6CisgICAgICAgICAgICBpZiA0IGluIGFjdGl2ZTogYyA9IHR5cGVzcGVjLnJlcGxhY2UoJ24nLCAnJykKKyAgICAgICAgICAgIGVsc2U6IGMgPSB0eXBlc3BlYworICAgICAgICAgICAgcyArPSByYW5kb20uY2hvaWNlKGMpCisgICAgcmV0dXJuIHMKKworIyBQYXJ0aWFsbHkgYnJ1dGUgZm9yY2UgYWxsIHBvc3NpYmxlIGZvcm1hdCBzdHJpbmdzIGNvbnRhaW5pbmcgYSB0aG91c2FuZHMKKyMgc2VwYXJhdG9yLiBGYWxsIGJhY2sgdG8gcmFuZG9tIHdoZXJlIHRoZSBydW50aW1lIHdvdWxkIGJlY29tZSBleGNlc3NpdmUuCisjIFtbZmlsbF1hbGlnbl1bc2lnbl1bI11bMF1bd2lkdGhdWyxdWy5wcmVjaXNpb25dW3R5cGVdCitkZWYgYWxsX2Zvcm1hdF9zZXAoKToKKyAgICBmb3IgYWxpZ24gaW4gKCcnLCAnPCcsICc+JywgJz0nLCAnXicpOgorICAgICAgICBmb3IgZmlsbCBpbiAoJycsICd4Jyk6CisgICAgICAgICAgICBpZiBhbGlnbiA9PSAnJzogZmlsbCA9ICcnCisgICAgICAgICAgICBmb3Igc2lnbiBpbiAoJycsICcrJywgJy0nLCAnICcpOgorICAgICAgICAgICAgICAgIGZvciB6ZXJvcGFkIGluICgnJywgJzAnKToKKyAgICAgICAgICAgICAgICAgICAgaWYgYWxpZ24gIT0gJyc6IHplcm9wYWQgPSAnJworICAgICAgICAgICAgICAgICAgICBmb3Igd2lkdGggaW4gWycnXStbc3RyKHkpIGZvciB5IGluIHJhbmdlKDEsIDE1KV0rWycxMDEnXToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBwcmVjIGluIFsnJ10rWycuJytzdHIoeSkgZm9yIHkgaW4gcmFuZ2UoMTUpXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZvciB0eXBlIGluICgnJywgJ0UnLCAnZScsICdHJywgJ2cnLCAnRicsICdmJywgJyUnKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gcmFuZG9tLmNob2ljZSgoJycsICdFJywgJ2UnLCAnRycsICdnJywgJ0YnLCAnZicsICclJykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgJycuam9pbigoZmlsbCwgYWxpZ24sIHNpZ24sIHplcm9wYWQsIHdpZHRoLCAnLCcsIHByZWMsIHR5cGUpKQorCisjIFBhcnRpYWxseSBicnV0ZSBmb3JjZSBhbGwgcG9zc2libGUgZm9ybWF0IHN0cmluZ3Mgd2l0aCBhbiAnbicgc3BlY2lmaWVyLgorIyBbW2ZpbGxdYWxpZ25dW3NpZ25dWyNdWzBdW3dpZHRoXVssXVsucHJlY2lzaW9uXVt0eXBlXQorZGVmIGFsbF9mb3JtYXRfbG9jKCk6CisgICAgZm9yIGFsaWduIGluICgnJywgJzwnLCAnPicsICc9JywgJ14nKToKKyAgICAgICAgZm9yIGZpbGwgaW4gKCcnLCAneCcpOgorICAgICAgICAgICAgaWYgYWxpZ24gPT0gJyc6IGZpbGwgPSAnJworICAgICAgICAgICAgZm9yIHNpZ24gaW4gKCcnLCAnKycsICctJywgJyAnKToKKyAgICAgICAgICAgICAgICBmb3IgemVyb3BhZCBpbiAoJycsICcwJyk6CisgICAgICAgICAgICAgICAgICAgIGlmIGFsaWduICE9ICcnOiB6ZXJvcGFkID0gJycKKyAgICAgICAgICAgICAgICAgICAgZm9yIHdpZHRoIGluIFsnJ10rW3N0cih5KSBmb3IgeSBpbiByYW5nZSgxLCAyMCldK1snMTAxJ106CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcHJlYyBpbiBbJyddK1snLicrc3RyKHkpIGZvciB5IGluIHJhbmdlKDEsIDIwKV06CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgJycuam9pbigoZmlsbCwgYWxpZ24sIHNpZ24sIHplcm9wYWQsIHdpZHRoLCBwcmVjLCAnbicpKQorCisjIEdlbmVyYXRlIHJhbmRvbSBmb3JtYXQgc3RyaW5ncyB3aXRoIGEgdW5pY29kZSBmaWxsIGNoYXJhY3RlcgorIyBbW2ZpbGxdYWxpZ25dW3NpZ25dWyNdWzBdW3dpZHRoXVssXVsucHJlY2lzaW9uXVt0eXBlXQorZGVmIHJhbmRmaWxsKGZpbGwpOgorICAgIGFjdGl2ZSA9IHNvcnRlZChyYW5kb20uc2FtcGxlKHJhbmdlKDUpLCByYW5kb20ucmFuZHJhbmdlKDYpKSkKKyAgICBzID0gJycKKyAgICBzICs9IHN0cihmaWxsKQorICAgIHMgKz0gcmFuZG9tLmNob2ljZSgnPD49XicpCisgICAgZm9yIGVsZW0gaW4gYWN0aXZlOgorICAgICAgICBpZiBlbGVtID09IDA6ICMgc2lnbgorICAgICAgICAgICAgcyArPSByYW5kb20uY2hvaWNlKCcrLSAnKQorICAgICAgICBlbGlmIGVsZW0gPT0gMTogIyB3aWR0aAorICAgICAgICAgICAgcyArPSBzdHIocmFuZG9tLnJhbmRyYW5nZSgxLCAxMDApKQorICAgICAgICBlbGlmIGVsZW0gPT0gMjogIyB0aG91c2FuZHMgc2VwYXJhdG9yCisgICAgICAgICAgICBzICs9ICcsJworICAgICAgICBlbGlmIGVsZW0gPT0gMzogIyBwcmVjCisgICAgICAgICAgICBzICs9ICcuJworICAgICAgICAgICAgcyArPSBzdHIocmFuZG9tLnJhbmRyYW5nZSgxMDApKQorICAgICAgICBlbGlmIGVsZW0gPT0gNDoKKyAgICAgICAgICAgIGlmIDIgaW4gYWN0aXZlOiBjID0gJ0VlR2dGZiUnCisgICAgICAgICAgICBlbHNlOiBjID0gJ0VlR2dGZm4lJworICAgICAgICAgICAgcyArPSByYW5kb20uY2hvaWNlKGMpCisgICAgcmV0dXJuIHMKKworIyBHZW5lcmF0ZSByYW5kb20gZm9ybWF0IHN0cmluZ3Mgd2l0aCByYW5kb20gbG9jYWxlIHNldHRpbmcKKyMgW1tmaWxsXWFsaWduXVtzaWduXVsjXVswXVt3aWR0aF1bLF1bLnByZWNpc2lvbl1bdHlwZV0KK2RlZiByYW5kX2xvY2FsZSgpOgorICAgIHRyeToKKyAgICAgICAgbG9jID0gcmFuZG9tLmNob2ljZShsb2NhbGVfbGlzdCkKKyAgICAgICAgbG9jYWxlLnNldGxvY2FsZShsb2NhbGUuTENfQUxMLCBsb2MpCisgICAgZXhjZXB0IGxvY2FsZS5FcnJvciBhcyBlcnI6CisgICAgICAgIHBhc3MKKyAgICBhY3RpdmUgPSBzb3J0ZWQocmFuZG9tLnNhbXBsZShyYW5nZSg1KSwgcmFuZG9tLnJhbmRyYW5nZSg2KSkpCisgICAgcyA9ICcnCisgICAgaGF2ZV9hbGlnbiA9IDAKKyAgICBmb3IgZWxlbSBpbiBhY3RpdmU6CisgICAgICAgIGlmIGVsZW0gPT0gMDogIyBmaWxsK2FsaWduCisgICAgICAgICAgICBzICs9IGNocihyYW5kb20ucmFuZHJhbmdlKDMyLCAxMjgpKQorICAgICAgICAgICAgcyArPSByYW5kb20uY2hvaWNlKCc8Pj1eJykKKyAgICAgICAgICAgIGhhdmVfYWxpZ24gPSAxCisgICAgICAgIGVsaWYgZWxlbSA9PSAxOiAjIHNpZ24KKyAgICAgICAgICAgIHMgKz0gcmFuZG9tLmNob2ljZSgnKy0gJykKKyAgICAgICAgZWxpZiBlbGVtID09IDIgYW5kIG5vdCBoYXZlX2FsaWduOiAjIHplcm9wYWQKKyAgICAgICAgICAgIHMgKz0gJzAnCisgICAgICAgIGVsaWYgZWxlbSA9PSAzOiAjIHdpZHRoCisgICAgICAgICAgICBzICs9IHN0cihyYW5kb20ucmFuZHJhbmdlKDEsIDEwMCkpCisgICAgICAgIGVsaWYgZWxlbSA9PSA0OiAjIHByZWMKKyAgICAgICAgICAgIHMgKz0gJy4nCisgICAgICAgICAgICBzICs9IHN0cihyYW5kb20ucmFuZHJhbmdlKDEwMCkpCisgICAgcyArPSAnbicKKyAgICByZXR1cm4gcwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC90ZXN0cy9yYW5kZGVjLnB5IGIvTW9kdWxlcy9fZGVjaW1hbC90ZXN0cy9yYW5kZGVjLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwODU4YmYKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL3Rlc3RzL3JhbmRkZWMucHkKQEAgLTAsMCArMSw1NTkgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorCisjCisjIENvcHlyaWdodCAoYykgMjAwOC0yMDEyIFN0ZWZhbiBLcmFoLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjCisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMKKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBBVVRIT1IgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyMgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyMgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMKKyMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisjIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisjIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyMgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorIyBTVUNIIERBTUFHRS4KKyMKKworCisjIEdlbmVyYXRlIHRlc3QgY2FzZXMgZm9yIGRlY2NoZWNrLnB5LgorCisKKyMKKyMgR3JhbW1hciBmcm9tIGh0dHA6Ly9zcGVsZW90cm92ZS5jb20vZGVjaW1hbC9kYWNvbnZzLmh0bWwKKyMKKyMgc2lnbiAgICAgICAgICAgOjo9ICAnKycgfCAnLScKKyMgZGlnaXQgICAgICAgICAgOjo9ICAnMCcgfCAnMScgfCAnMicgfCAnMycgfCAnNCcgfCAnNScgfCAnNicgfCAnNycgfAorIyAgICAgICAgICAgICAgICAgICAgICc4JyB8ICc5JworIyBpbmRpY2F0b3IgICAgICA6Oj0gICdlJyB8ICdFJworIyBkaWdpdHMgICAgICAgICA6Oj0gIGRpZ2l0IFtkaWdpdF0uLi4KKyMgZGVjaW1hbC1wYXJ0ICAgOjo9ICBkaWdpdHMgJy4nIFtkaWdpdHNdIHwgWycuJ10gZGlnaXRzCisjIGV4cG9uZW50LXBhcnQgIDo6PSAgaW5kaWNhdG9yIFtzaWduXSBkaWdpdHMKKyMgaW5maW5pdHkgICAgICAgOjo9ICAnSW5maW5pdHknIHwgJ0luZicKKyMgbmFuICAgICAgICAgICAgOjo9ICAnTmFOJyBbZGlnaXRzXSB8ICdzTmFOJyBbZGlnaXRzXQorIyBudW1lcmljLXZhbHVlICA6Oj0gIGRlY2ltYWwtcGFydCBbZXhwb25lbnQtcGFydF0gfCBpbmZpbml0eQorIyBudW1lcmljLXN0cmluZyA6Oj0gIFtzaWduXSBudW1lcmljLXZhbHVlIHwgW3NpZ25dIG5hbgorIworCisKK2Zyb20gcmFuZG9tIGltcG9ydCByYW5kcmFuZ2UsIHNhbXBsZQorZnJvbSBmcmFjdGlvbnMgaW1wb3J0IEZyYWN0aW9uCitmcm9tIHJhbmRmbG9hdCBpbXBvcnQgdW5fcmFuZGZsb2F0LCBiaW5fcmFuZGZsb2F0LCB0ZXJuX3JhbmRmbG9hdAorCisKK2RlZiBzaWduKCk6CisgICAgaWYgcmFuZHJhbmdlKDIpOgorICAgICAgICBpZiByYW5kcmFuZ2UoMik6IHJldHVybiAnKycKKyAgICAgICAgcmV0dXJuICcnCisgICAgcmV0dXJuICctJworCitkZWYgaW5kaWNhdG9yKCk6CisgICAgcmV0dXJuICJlRSJbcmFuZHJhbmdlKDIpXQorCitkZWYgZGlnaXRzKG1heHByZWMpOgorICAgIGlmIG1heHByZWMgPT0gMDogcmV0dXJuICcnCisgICAgcmV0dXJuIHN0cihyYW5kcmFuZ2UoMTAqKm1heHByZWMpKQorCitkZWYgZG90KCk6CisgICAgaWYgcmFuZHJhbmdlKDIpOiByZXR1cm4gJy4nCisgICAgcmV0dXJuICcnCisKK2RlZiBkZWNpbWFsX3BhcnQobWF4cHJlYyk6CisgICAgaWYgcmFuZHJhbmdlKDEwMCkgPiA2MDogIyBpbnRlZ2VycworICAgICAgICByZXR1cm4gZGlnaXRzKG1heHByZWMpCisgICAgaWYgcmFuZHJhbmdlKDIpOgorICAgICAgICBpbnRsZW4gPSByYW5kcmFuZ2UoMSwgbWF4cHJlYysxKQorICAgICAgICBmcmFjbGVuID0gbWF4cHJlYy1pbnRsZW4KKyAgICAgICAgaW50cGFydCA9IGRpZ2l0cyhpbnRsZW4pCisgICAgICAgIGZyYWNwYXJ0ID0gZGlnaXRzKGZyYWNsZW4pCisgICAgICAgIHJldHVybiAnJy5qb2luKChpbnRwYXJ0LCAnLicsIGZyYWNwYXJ0KSkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gJycuam9pbigoZG90KCksIGRpZ2l0cyhtYXhwcmVjKSkpCisKK2RlZiBleHBkaWdpdHMobWF4ZXhwKToKKyAgICByZXR1cm4gc3RyKHJhbmRyYW5nZShtYXhleHApKQorCitkZWYgZXhwb25lbnRfcGFydChtYXhleHApOgorICAgIHJldHVybiAnJy5qb2luKChpbmRpY2F0b3IoKSwgc2lnbigpLCBleHBkaWdpdHMobWF4ZXhwKSkpCisKK2RlZiBpbmZpbml0eSgpOgorICAgIGlmIHJhbmRyYW5nZSgyKTogcmV0dXJuICdJbmZpbml0eScKKyAgICByZXR1cm4gJ0luZicKKworZGVmIG5hbigpOgorICAgIGQgPSAnJworICAgIGlmIHJhbmRyYW5nZSgyKToKKyAgICAgICAgZCA9IGRpZ2l0cyhyYW5kcmFuZ2UoOTkpKQorICAgIGlmIHJhbmRyYW5nZSgyKToKKyAgICAgICAgcmV0dXJuICcnLmpvaW4oKCdOYU4nLCBkKSkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gJycuam9pbigoJ3NOYU4nLCBkKSkKKworZGVmIG51bWVyaWNfdmFsdWUobWF4cHJlYywgbWF4ZXhwKToKKyAgICBpZiByYW5kcmFuZ2UoMTAwKSA+IDkwOgorICAgICAgICByZXR1cm4gaW5maW5pdHkoKQorICAgIGV4cF9wYXJ0ID0gJycKKyAgICBpZiByYW5kcmFuZ2UoMTAwKSA+IDYwOgorICAgICAgICBleHBfcGFydCA9IGV4cG9uZW50X3BhcnQobWF4ZXhwKQorICAgIHJldHVybiAnJy5qb2luKChkZWNpbWFsX3BhcnQobWF4cHJlYyksIGV4cF9wYXJ0KSkKKworZGVmIG51bWVyaWNfc3RyaW5nKG1heHByZWMsIG1heGV4cCk6CisgICAgaWYgcmFuZHJhbmdlKDEwMCkgPiA5NToKKyAgICAgICAgcmV0dXJuICcnLmpvaW4oKHNpZ24oKSwgbmFuKCkpKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiAnJy5qb2luKChzaWduKCksIG51bWVyaWNfdmFsdWUobWF4cHJlYywgbWF4ZXhwKSkpCisKK2RlZiByYW5kZGVjKG1heHByZWMsIG1heGV4cCk6CisgICAgcmV0dXJuIG51bWVyaWNfc3RyaW5nKG1heHByZWMsIG1heGV4cCkKKworZGVmIHJhbmRfYWRqZXhwKG1heHByZWMsIG1heGFkamV4cCk6CisgICAgZCA9IGRpZ2l0cyhtYXhwcmVjKQorICAgIG1heGV4cCA9IG1heGFkamV4cC1sZW4oZCkrMQorICAgIGlmIG1heGV4cCA9PSAwOiBtYXhleHAgPSAxCisgICAgZXhwID0gc3RyKHJhbmRyYW5nZShtYXhleHAtMiooYWJzKG1heGV4cCkpLCBtYXhleHApKQorICAgIHJldHVybiAnJy5qb2luKChzaWduKCksIGQsICdFJywgZXhwKSkKKworCitkZWYgbmRpZ2l0cyhuKToKKyAgICBpZiBuIDwgMTogcmV0dXJuIDAKKyAgICByZXR1cm4gcmFuZHJhbmdlKDEwKioobi0xKSwgMTAqKm4pCisKK2RlZiByYW5kdHVwbGUobWF4cHJlYywgbWF4ZXhwKToKKyAgICBuID0gcmFuZHJhbmdlKDEwMCkKKyAgICBzaWduID0gcmFuZHJhbmdlKDIpCisgICAgY29lZmYgPSBuZGlnaXRzKG1heHByZWMpCisgICAgaWYgbiA+PSA5NToKKyAgICAgICAgY29lZmYgPSAoKQorICAgICAgICBleHAgPSAnRicKKyAgICBlbGlmIG4gPj0gODU6CisgICAgICAgIGNvZWZmID0gdHVwbGUobWFwKGludCwgc3RyKG5kaWdpdHMobWF4cHJlYykpKSkKKyAgICAgICAgZXhwID0gIm5OIltyYW5kcmFuZ2UoMildCisgICAgZWxzZToKKyAgICAgICAgY29lZmYgPSB0dXBsZShtYXAoaW50LCBzdHIobmRpZ2l0cyhtYXhwcmVjKSkpKQorICAgICAgICBleHAgPSByYW5kcmFuZ2UoLW1heGV4cCwgbWF4ZXhwKQorICAgIHJldHVybiAoc2lnbiwgY29lZmYsIGV4cCkKKworZGVmIGZyb21fdHJpcGxlKHNpZ24sIGNvZWZmLCBleHApOgorICAgIHJldHVybiAnJy5qb2luKChzdHIoc2lnbipjb2VmZiksIGluZGljYXRvcigpLCBzdHIoZXhwKSkpCisKKworIyBDbG9zZSB0byAxMCoqbgorZGVmIHVuX2Nsb3NlX3RvX3BvdzEwKHByZWMsIG1heGV4cCwgaXRyPU5vbmUpOgorICAgIGlmIGl0ciBpcyBOb25lOgorICAgICAgICBsc3QgPSByYW5nZShwcmVjKzMwKQorICAgIGVsc2U6CisgICAgICAgIGxzdCA9IHNhbXBsZShyYW5nZShwcmVjKzMwKSwgaXRyKQorICAgIG5pbmVzID0gWzEwKipuIC0gMSBmb3IgbiBpbiBsc3RdCisgICAgcG93MTAgPSBbMTAqKm4gZm9yIG4gaW4gbHN0XQorICAgIGZvciBjb2VmZiBpbiBuaW5lczoKKyAgICAgICAgeWllbGQgY29lZmYKKyAgICAgICAgeWllbGQgLWNvZWZmCisgICAgICAgIHlpZWxkIGZyb21fdHJpcGxlKDEsIGNvZWZmLCByYW5kcmFuZ2UoMiptYXhleHApKQorICAgICAgICB5aWVsZCBmcm9tX3RyaXBsZSgtMSwgY29lZmYsIHJhbmRyYW5nZSgyKm1heGV4cCkpCisgICAgZm9yIGNvZWZmIGluIHBvdzEwOgorICAgICAgICB5aWVsZCBjb2VmZgorICAgICAgICB5aWVsZCAtY29lZmYKKworIyBDbG9zZSB0byAxMCoqbgorZGVmIGJpbl9jbG9zZV90b19wb3cxMChwcmVjLCBtYXhleHAsIGl0cj1Ob25lKToKKyAgICBpZiBpdHIgaXMgTm9uZToKKyAgICAgICAgbHN0ID0gcmFuZ2UocHJlYyszMCkKKyAgICBlbHNlOgorICAgICAgICBsc3QgPSBzYW1wbGUocmFuZ2UocHJlYyszMCksIGl0cikKKyAgICBuaW5lcyA9IFsxMCoqbiAtIDEgZm9yIG4gaW4gbHN0XQorICAgIHBvdzEwID0gWzEwKipuIGZvciBuIGluIGxzdF0KKyAgICBmb3IgY29lZmYgaW4gbmluZXM6CisgICAgICAgIHlpZWxkIGNvZWZmLCAxCisgICAgICAgIHlpZWxkIC1jb2VmZiwgLTEKKyAgICAgICAgeWllbGQgMSwgY29lZmYKKyAgICAgICAgeWllbGQgLTEsIC1jb2VmZgorICAgICAgICB5aWVsZCBmcm9tX3RyaXBsZSgxLCBjb2VmZiwgcmFuZHJhbmdlKDIqbWF4ZXhwKSksIDEKKyAgICAgICAgeWllbGQgZnJvbV90cmlwbGUoLTEsIGNvZWZmLCByYW5kcmFuZ2UoMiptYXhleHApKSwgLTEKKyAgICAgICAgeWllbGQgMSwgZnJvbV90cmlwbGUoMSwgY29lZmYsIC1yYW5kcmFuZ2UoMiptYXhleHApKQorICAgICAgICB5aWVsZCAtMSwgZnJvbV90cmlwbGUoLTEsIGNvZWZmLCAtcmFuZHJhbmdlKDIqbWF4ZXhwKSkKKyAgICBmb3IgY29lZmYgaW4gcG93MTA6CisgICAgICAgIHlpZWxkIGNvZWZmLCAtMQorICAgICAgICB5aWVsZCAtY29lZmYsIDEKKyAgICAgICAgeWllbGQgMSwgLWNvZWZmCisgICAgICAgIHlpZWxkIC1jb2VmZiwgMQorCisjIENsb3NlIHRvIDE6CitkZWYgY2xvc2VfdG9fb25lX2dyZWF0ZXIocHJlYywgZW1heCwgZW1pbik6CisgICAgcnByZWMgPSAxMCoqcHJlYworICAgIHJldHVybiAnJy5qb2luKCgiMS4iLCAnMCcqcmFuZHJhbmdlKHByZWMpLAorICAgICAgICAgICAgICAgICAgIHN0cihyYW5kcmFuZ2UocnByZWMpKSkpCisKK2RlZiBjbG9zZV90b19vbmVfbGVzcyhwcmVjLCBlbWF4LCBlbWluKToKKyAgICBycHJlYyA9IDEwKipwcmVjCisgICAgcmV0dXJuICcnLmpvaW4oKCIwLjkiLCAnOScqcmFuZHJhbmdlKHByZWMpLAorICAgICAgICAgICAgICAgICAgIHN0cihyYW5kcmFuZ2UocnByZWMpKSkpCisKKyMgQ2xvc2UgdG8gMDoKK2RlZiBjbG9zZV90b196ZXJvX2dyZWF0ZXIocHJlYywgZW1heCwgZW1pbik6CisgICAgcnByZWMgPSAxMCoqcHJlYworICAgIHJldHVybiAnJy5qb2luKCgiMC4iLCAnMCcqcmFuZHJhbmdlKHByZWMpLAorICAgICAgICAgICAgICAgICAgIHN0cihyYW5kcmFuZ2UocnByZWMpKSkpCisKK2RlZiBjbG9zZV90b196ZXJvX2xlc3MocHJlYywgZW1heCwgZW1pbik6CisgICAgcnByZWMgPSAxMCoqcHJlYworICAgIHJldHVybiAnJy5qb2luKCgiLTAuIiwgJzAnKnJhbmRyYW5nZShwcmVjKSwKKyAgICAgICAgICAgICAgICAgICBzdHIocmFuZHJhbmdlKHJwcmVjKSkpKQorCisjIENsb3NlIHRvIGVtYXg6CitkZWYgY2xvc2VfdG9fZW1heF9sZXNzKHByZWMsIGVtYXgsIGVtaW4pOgorICAgIHJwcmVjID0gMTAqKnByZWMKKyAgICByZXR1cm4gJycuam9pbigoIjkuIiwgJzknKnJhbmRyYW5nZShwcmVjKSwKKyAgICAgICAgICAgICAgICAgICBzdHIocmFuZHJhbmdlKHJwcmVjKSksICJFIiwgc3RyKGVtYXgpKSkKKworZGVmIGNsb3NlX3RvX2VtYXhfZ3JlYXRlcihwcmVjLCBlbWF4LCBlbWluKToKKyAgICBycHJlYyA9IDEwKipwcmVjCisgICAgcmV0dXJuICcnLmpvaW4oKCIxLiIsICcwJypyYW5kcmFuZ2UocHJlYyksCisgICAgICAgICAgICAgICAgICAgc3RyKHJhbmRyYW5nZShycHJlYykpLCAiRSIsIHN0cihlbWF4KzEpKSkKKworIyBDbG9zZSB0byBlbWluOgorZGVmIGNsb3NlX3RvX2VtaW5fZ3JlYXRlcihwcmVjLCBlbWF4LCBlbWluKToKKyAgICBycHJlYyA9IDEwKipwcmVjCisgICAgcmV0dXJuICcnLmpvaW4oKCIxLiIsICcwJypyYW5kcmFuZ2UocHJlYyksCisgICAgICAgICAgICAgICAgICAgc3RyKHJhbmRyYW5nZShycHJlYykpLCAiRSIsIHN0cihlbWluKSkpCisKK2RlZiBjbG9zZV90b19lbWluX2xlc3MocHJlYywgZW1heCwgZW1pbik6CisgICAgcnByZWMgPSAxMCoqcHJlYworICAgIHJldHVybiAnJy5qb2luKCgiOS4iLCAnOScqcmFuZHJhbmdlKHByZWMpLAorICAgICAgICAgICAgICAgICAgIHN0cihyYW5kcmFuZ2UocnByZWMpKSwgIkUiLCBzdHIoZW1pbi0xKSkpCisKKyMgQ2xvc2UgdG8gZXRpbnk6CitkZWYgY2xvc2VfdG9fZXRpbnlfZ3JlYXRlcihwcmVjLCBlbWF4LCBlbWluKToKKyAgICBycHJlYyA9IDEwKipwcmVjCisgICAgZXRpbnkgPSBlbWluIC0gKHByZWMgLSAxKQorICAgIHJldHVybiAnJy5qb2luKCgiMS4iLCAnMCcqcmFuZHJhbmdlKHByZWMpLAorICAgICAgICAgICAgICAgICAgIHN0cihyYW5kcmFuZ2UocnByZWMpKSwgIkUiLCBzdHIoZXRpbnkpKSkKKworZGVmIGNsb3NlX3RvX2V0aW55X2xlc3MocHJlYywgZW1heCwgZW1pbik6CisgICAgcnByZWMgPSAxMCoqcHJlYworICAgIGV0aW55ID0gZW1pbiAtIChwcmVjIC0gMSkKKyAgICByZXR1cm4gJycuam9pbigoIjkuIiwgJzknKnJhbmRyYW5nZShwcmVjKSwKKyAgICAgICAgICAgICAgICAgICBzdHIocmFuZHJhbmdlKHJwcmVjKSksICJFIiwgc3RyKGV0aW55LTEpKSkKKworCitkZWYgY2xvc2VfdG9fbWluX2V0aW55X2dyZWF0ZXIocHJlYywgbWF4X3ByZWMsIG1pbl9lbWluKToKKyAgICBycHJlYyA9IDEwKipwcmVjCisgICAgZXRpbnkgPSBtaW5fZW1pbiAtIChtYXhfcHJlYyAtIDEpCisgICAgcmV0dXJuICcnLmpvaW4oKCIxLiIsICcwJypyYW5kcmFuZ2UocHJlYyksCisgICAgICAgICAgICAgICAgICAgc3RyKHJhbmRyYW5nZShycHJlYykpLCAiRSIsIHN0cihldGlueSkpKQorCitkZWYgY2xvc2VfdG9fbWluX2V0aW55X2xlc3MocHJlYywgbWF4X3ByZWMsIG1pbl9lbWluKToKKyAgICBycHJlYyA9IDEwKipwcmVjCisgICAgZXRpbnkgPSBtaW5fZW1pbiAtIChtYXhfcHJlYyAtIDEpCisgICAgcmV0dXJuICcnLmpvaW4oKCI5LiIsICc5JypyYW5kcmFuZ2UocHJlYyksCisgICAgICAgICAgICAgICAgICAgc3RyKHJhbmRyYW5nZShycHJlYykpLCAiRSIsIHN0cihldGlueS0xKSkpCisKKworY2xvc2VfZnVuY3MgPSBbCisgIGNsb3NlX3RvX29uZV9ncmVhdGVyLCBjbG9zZV90b19vbmVfbGVzcywgY2xvc2VfdG9femVyb19ncmVhdGVyLAorICBjbG9zZV90b196ZXJvX2xlc3MsIGNsb3NlX3RvX2VtYXhfbGVzcywgY2xvc2VfdG9fZW1heF9ncmVhdGVyLAorICBjbG9zZV90b19lbWluX2dyZWF0ZXIsIGNsb3NlX3RvX2VtaW5fbGVzcywgY2xvc2VfdG9fZXRpbnlfZ3JlYXRlciwKKyAgY2xvc2VfdG9fZXRpbnlfbGVzcywgY2xvc2VfdG9fbWluX2V0aW55X2dyZWF0ZXIsIGNsb3NlX3RvX21pbl9ldGlueV9sZXNzCitdCisKKworZGVmIHVuX2Nsb3NlX251bWJlcnMocHJlYywgZW1heCwgZW1pbiwgaXRyPU5vbmUpOgorICAgIGlmIGl0ciBpcyBOb25lOgorICAgICAgICBpdHIgPSAxMDAwCisgICAgZm9yIF8gaW4gcmFuZ2UoaXRyKToKKyAgICAgICAgZm9yIGZ1bmMgaW4gY2xvc2VfZnVuY3M6CisgICAgICAgICAgICB5aWVsZCBmdW5jKHByZWMsIGVtYXgsIGVtaW4pCisKK2RlZiBiaW5fY2xvc2VfbnVtYmVycyhwcmVjLCBlbWF4LCBlbWluLCBpdHI9Tm9uZSk6CisgICAgaWYgaXRyIGlzIE5vbmU6CisgICAgICAgIGl0ciA9IDEwMDAKKyAgICBmb3IgXyBpbiByYW5nZShpdHIpOgorICAgICAgICBmb3IgZnVuYzEgaW4gY2xvc2VfZnVuY3M6CisgICAgICAgICAgICBmb3IgZnVuYzIgaW4gY2xvc2VfZnVuY3M6CisgICAgICAgICAgICAgICAgeWllbGQgZnVuYzEocHJlYywgZW1heCwgZW1pbiksIGZ1bmMyKHByZWMsIGVtYXgsIGVtaW4pCisgICAgICAgIGZvciBmdW5jIGluIGNsb3NlX2Z1bmNzOgorICAgICAgICAgICAgeWllbGQgcmFuZGRlYyhwcmVjLCBlbWF4KSwgZnVuYyhwcmVjLCBlbWF4LCBlbWluKQorICAgICAgICAgICAgeWllbGQgZnVuYyhwcmVjLCBlbWF4LCBlbWluKSwgcmFuZGRlYyhwcmVjLCBlbWF4KQorCitkZWYgdGVybl9jbG9zZV9udW1iZXJzKHByZWMsIGVtYXgsIGVtaW4sIGl0cik6CisgICAgaWYgaXRyIGlzIE5vbmU6CisgICAgICAgIGl0ciA9IDEwMDAKKyAgICBmb3IgXyBpbiByYW5nZShpdHIpOgorICAgICAgICBmb3IgZnVuYzEgaW4gY2xvc2VfZnVuY3M6CisgICAgICAgICAgICBmb3IgZnVuYzIgaW4gY2xvc2VfZnVuY3M6CisgICAgICAgICAgICAgICAgZm9yIGZ1bmMzIGluIGNsb3NlX2Z1bmNzOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCAoZnVuYzEocHJlYywgZW1heCwgZW1pbiksIGZ1bmMyKHByZWMsIGVtYXgsIGVtaW4pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuYzMocHJlYywgZW1heCwgZW1pbikpCisgICAgICAgIGZvciBmdW5jIGluIGNsb3NlX2Z1bmNzOgorICAgICAgICAgICAgeWllbGQgKHJhbmRkZWMocHJlYywgZW1heCksIGZ1bmMocHJlYywgZW1heCwgZW1pbiksCisgICAgICAgICAgICAgICAgICAgZnVuYyhwcmVjLCBlbWF4LCBlbWluKSkKKyAgICAgICAgICAgIHlpZWxkIChmdW5jKHByZWMsIGVtYXgsIGVtaW4pLCByYW5kZGVjKHByZWMsIGVtYXgpLAorICAgICAgICAgICAgICAgICAgIGZ1bmMocHJlYywgZW1heCwgZW1pbikpCisgICAgICAgICAgICB5aWVsZCAoZnVuYyhwcmVjLCBlbWF4LCBlbWluKSwgZnVuYyhwcmVjLCBlbWF4LCBlbWluKSwKKyAgICAgICAgICAgICAgICAgICByYW5kZGVjKHByZWMsIGVtYXgpKQorICAgICAgICBmb3IgZnVuYyBpbiBjbG9zZV9mdW5jczoKKyAgICAgICAgICAgIHlpZWxkIChyYW5kZGVjKHByZWMsIGVtYXgpLCByYW5kZGVjKHByZWMsIGVtYXgpLAorICAgICAgICAgICAgICAgICAgIGZ1bmMocHJlYywgZW1heCwgZW1pbikpCisgICAgICAgICAgICB5aWVsZCAocmFuZGRlYyhwcmVjLCBlbWF4KSwgZnVuYyhwcmVjLCBlbWF4LCBlbWluKSwKKyAgICAgICAgICAgICAgICAgICByYW5kZGVjKHByZWMsIGVtYXgpKQorICAgICAgICAgICAgeWllbGQgKGZ1bmMocHJlYywgZW1heCwgZW1pbiksIHJhbmRkZWMocHJlYywgZW1heCksCisgICAgICAgICAgICAgICAgICAgcmFuZGRlYyhwcmVjLCBlbWF4KSkKKworCisjIElmIGl0ciA9PSBOb25lLCB0ZXN0IGFsbCBkaWdpdCBsZW5ndGhzIHVwIHRvIHByZWMgKyAzMAorZGVmIHVuX2luY3JfZGlnaXRzKHByZWMsIG1heGV4cCwgaXRyKToKKyAgICBpZiBpdHIgaXMgTm9uZToKKyAgICAgICAgbHN0ID0gcmFuZ2UocHJlYyszMCkKKyAgICBlbHNlOgorICAgICAgICBsc3QgPSBzYW1wbGUocmFuZ2UocHJlYyszMCksIGl0cikKKyAgICBmb3IgbSBpbiBsc3Q6CisgICAgICAgIHlpZWxkIGZyb21fdHJpcGxlKDEsIG5kaWdpdHMobSksIDApCisgICAgICAgIHlpZWxkIGZyb21fdHJpcGxlKC0xLCBuZGlnaXRzKG0pLCAwKQorICAgICAgICB5aWVsZCBmcm9tX3RyaXBsZSgxLCBuZGlnaXRzKG0pLCByYW5kcmFuZ2UobWF4ZXhwKSkKKyAgICAgICAgeWllbGQgZnJvbV90cmlwbGUoLTEsIG5kaWdpdHMobSksIHJhbmRyYW5nZShtYXhleHApKQorCisjIElmIGl0ciA9PSBOb25lLCB0ZXN0IGFsbCBkaWdpdCBsZW5ndGhzIHVwIHRvIHByZWMgKyAzMAorIyBBbHNvIG91dHB1dCBkZWNpbWFscyBpbSB0dXBsZSBmb3JtLgorZGVmIHVuX2luY3JfZGlnaXRzX3R1cGxlKHByZWMsIG1heGV4cCwgaXRyKToKKyAgICBpZiBpdHIgaXMgTm9uZToKKyAgICAgICAgbHN0ID0gcmFuZ2UocHJlYyszMCkKKyAgICBlbHNlOgorICAgICAgICBsc3QgPSBzYW1wbGUocmFuZ2UocHJlYyszMCksIGl0cikKKyAgICBmb3IgbSBpbiBsc3Q6CisgICAgICAgIHlpZWxkIGZyb21fdHJpcGxlKDEsIG5kaWdpdHMobSksIDApCisgICAgICAgIHlpZWxkIGZyb21fdHJpcGxlKC0xLCBuZGlnaXRzKG0pLCAwKQorICAgICAgICB5aWVsZCBmcm9tX3RyaXBsZSgxLCBuZGlnaXRzKG0pLCByYW5kcmFuZ2UobWF4ZXhwKSkKKyAgICAgICAgeWllbGQgZnJvbV90cmlwbGUoLTEsIG5kaWdpdHMobSksIHJhbmRyYW5nZShtYXhleHApKQorICAgICAgICAjIHRlc3QgZnJvbSB0dXBsZQorICAgICAgICB5aWVsZCAoMCwgdHVwbGUobWFwKGludCwgc3RyKG5kaWdpdHMobSkpKSksIDApCisgICAgICAgIHlpZWxkICgxLCB0dXBsZShtYXAoaW50LCBzdHIobmRpZ2l0cyhtKSkpKSwgMCkKKyAgICAgICAgeWllbGQgKDAsIHR1cGxlKG1hcChpbnQsIHN0cihuZGlnaXRzKG0pKSkpLCByYW5kcmFuZ2UobWF4ZXhwKSkKKyAgICAgICAgeWllbGQgKDEsIHR1cGxlKG1hcChpbnQsIHN0cihuZGlnaXRzKG0pKSkpLCByYW5kcmFuZ2UobWF4ZXhwKSkKKworIyBJZiBpdHIgPT0gTm9uZSwgdGVzdCBhbGwgY29tYmluYXRpb25zIG9mIGRpZ2l0IGxlbmd0aHMgdXAgdG8gcHJlYyArIDMwCitkZWYgYmluX2luY3JfZGlnaXRzKHByZWMsIG1heGV4cCwgaXRyKToKKyAgICBpZiBpdHIgaXMgTm9uZToKKyAgICAgICAgbHN0MSA9IHJhbmdlKHByZWMrMzApCisgICAgICAgIGxzdDIgPSByYW5nZShwcmVjKzMwKQorICAgIGVsc2U6CisgICAgICAgIGxzdDEgPSBzYW1wbGUocmFuZ2UocHJlYyszMCksIGl0cikKKyAgICAgICAgbHN0MiA9IHNhbXBsZShyYW5nZShwcmVjKzMwKSwgaXRyKQorICAgIGZvciBtIGluIGxzdDE6CisgICAgICAgIHggPSBmcm9tX3RyaXBsZSgxLCBuZGlnaXRzKG0pLCAwKQorICAgICAgICB5aWVsZCB4LCB4CisgICAgICAgIHggPSBmcm9tX3RyaXBsZSgtMSwgbmRpZ2l0cyhtKSwgMCkKKyAgICAgICAgeWllbGQgeCwgeAorICAgICAgICB4ID0gZnJvbV90cmlwbGUoMSwgbmRpZ2l0cyhtKSwgcmFuZHJhbmdlKG1heGV4cCkpCisgICAgICAgIHlpZWxkIHgsIHgKKyAgICAgICAgeCA9IGZyb21fdHJpcGxlKC0xLCBuZGlnaXRzKG0pLCByYW5kcmFuZ2UobWF4ZXhwKSkKKyAgICAgICAgeWllbGQgeCwgeAorICAgIGZvciBtIGluIGxzdDE6CisgICAgICAgIGZvciBuIGluIGxzdDI6CisgICAgICAgICAgICB4ID0gZnJvbV90cmlwbGUoMSwgbmRpZ2l0cyhtKSwgMCkKKyAgICAgICAgICAgIHkgPSBmcm9tX3RyaXBsZSgxLCBuZGlnaXRzKG4pLCAwKQorICAgICAgICAgICAgeWllbGQgeCwgeQorICAgICAgICAgICAgeCA9IGZyb21fdHJpcGxlKC0xLCBuZGlnaXRzKG0pLCAwKQorICAgICAgICAgICAgeSA9IGZyb21fdHJpcGxlKDEsIG5kaWdpdHMobiksIDApCisgICAgICAgICAgICB5aWVsZCB4LCB5CisgICAgICAgICAgICB4ID0gZnJvbV90cmlwbGUoMSwgbmRpZ2l0cyhtKSwgMCkKKyAgICAgICAgICAgIHkgPSBmcm9tX3RyaXBsZSgtMSwgbmRpZ2l0cyhuKSwgMCkKKyAgICAgICAgICAgIHlpZWxkIHgsIHkKKyAgICAgICAgICAgIHggPSBmcm9tX3RyaXBsZSgtMSwgbmRpZ2l0cyhtKSwgMCkKKyAgICAgICAgICAgIHkgPSBmcm9tX3RyaXBsZSgtMSwgbmRpZ2l0cyhuKSwgMCkKKyAgICAgICAgICAgIHlpZWxkIHgsIHkKKyAgICAgICAgICAgIHggPSBmcm9tX3RyaXBsZSgxLCBuZGlnaXRzKG0pLCByYW5kcmFuZ2UobWF4ZXhwKSkKKyAgICAgICAgICAgIHkgPSBmcm9tX3RyaXBsZSgxLCBuZGlnaXRzKG4pLCByYW5kcmFuZ2UobWF4ZXhwKSkKKyAgICAgICAgICAgIHlpZWxkIHgsIHkKKyAgICAgICAgICAgIHggPSBmcm9tX3RyaXBsZSgtMSwgbmRpZ2l0cyhtKSwgcmFuZHJhbmdlKG1heGV4cCkpCisgICAgICAgICAgICB5ID0gZnJvbV90cmlwbGUoMSwgbmRpZ2l0cyhuKSwgcmFuZHJhbmdlKG1heGV4cCkpCisgICAgICAgICAgICB5aWVsZCB4LCB5CisgICAgICAgICAgICB4ID0gZnJvbV90cmlwbGUoMSwgbmRpZ2l0cyhtKSwgcmFuZHJhbmdlKG1heGV4cCkpCisgICAgICAgICAgICB5ID0gZnJvbV90cmlwbGUoLTEsIG5kaWdpdHMobiksIHJhbmRyYW5nZShtYXhleHApKQorICAgICAgICAgICAgeWllbGQgeCwgeQorICAgICAgICAgICAgeCA9IGZyb21fdHJpcGxlKC0xLCBuZGlnaXRzKG0pLCByYW5kcmFuZ2UobWF4ZXhwKSkKKyAgICAgICAgICAgIHkgPSBmcm9tX3RyaXBsZSgtMSwgbmRpZ2l0cyhuKSwgcmFuZHJhbmdlKG1heGV4cCkpCisgICAgICAgICAgICB5aWVsZCB4LCB5CisKKworZGVmIHJhbmRzaWduKCk6CisgICAgcmV0dXJuICgxLCAtMSlbcmFuZHJhbmdlKDIpXQorCisjIElmIGl0ciA9PSBOb25lLCB0ZXN0IGFsbCBjb21iaW5hdGlvbnMgb2YgZGlnaXQgbGVuZ3RocyB1cCB0byBwcmVjICsgMzAKK2RlZiB0ZXJuX2luY3JfZGlnaXRzKHByZWMsIG1heGV4cCwgaXRyKToKKyAgICBpZiBpdHIgaXMgTm9uZToKKyAgICAgICAgbHN0MSA9IHJhbmdlKHByZWMrMzApCisgICAgICAgIGxzdDIgPSByYW5nZShwcmVjKzMwKQorICAgICAgICBsc3QzID0gcmFuZ2UocHJlYyszMCkKKyAgICBlbHNlOgorICAgICAgICBsc3QxID0gc2FtcGxlKHJhbmdlKHByZWMrMzApLCBpdHIpCisgICAgICAgIGxzdDIgPSBzYW1wbGUocmFuZ2UocHJlYyszMCksIGl0cikKKyAgICAgICAgbHN0MyA9IHNhbXBsZShyYW5nZShwcmVjKzMwKSwgaXRyKQorICAgIGZvciBtIGluIGxzdDE6CisgICAgICAgIGZvciBuIGluIGxzdDI6CisgICAgICAgICAgICBmb3IgcCBpbiBsc3QzOgorICAgICAgICAgICAgICAgIHggPSBmcm9tX3RyaXBsZShyYW5kc2lnbigpLCBuZGlnaXRzKG0pLCAwKQorICAgICAgICAgICAgICAgIHkgPSBmcm9tX3RyaXBsZShyYW5kc2lnbigpLCBuZGlnaXRzKG4pLCAwKQorICAgICAgICAgICAgICAgIHogPSBmcm9tX3RyaXBsZShyYW5kc2lnbigpLCBuZGlnaXRzKHApLCAwKQorICAgICAgICAgICAgICAgIHlpZWxkIHgsIHksIHoKKworCisjIFRlc3RzIGZvciB0aGUgJ2xvZ2ljYWwnIGZ1bmN0aW9ucworZGVmIGJpbmRpZ2l0cyhwcmVjKToKKyAgICB6ID0gMAorICAgIGZvciBpIGluIHJhbmdlKHByZWMpOgorICAgICAgICB6ICs9IHJhbmRyYW5nZSgyKSAqIDEwKippCisgICAgcmV0dXJuIHoKKworZGVmIGxvZ2ljYWxfdW5faW5jcl9kaWdpdHMocHJlYywgaXRyKToKKyAgICBpZiBpdHIgaXMgTm9uZToKKyAgICAgICAgbHN0ID0gcmFuZ2UocHJlYyszMCkKKyAgICBlbHNlOgorICAgICAgICBsc3QgPSBzYW1wbGUocmFuZ2UocHJlYyszMCksIGl0cikKKyAgICBmb3IgbSBpbiBsc3Q6CisgICAgICAgIHlpZWxkIGZyb21fdHJpcGxlKDEsIGJpbmRpZ2l0cyhtKSwgMCkKKworZGVmIGxvZ2ljYWxfYmluX2luY3JfZGlnaXRzKHByZWMsIGl0cik6CisgICAgaWYgaXRyIGlzIE5vbmU6CisgICAgICAgIGxzdDEgPSByYW5nZShwcmVjKzMwKQorICAgICAgICBsc3QyID0gcmFuZ2UocHJlYyszMCkKKyAgICBlbHNlOgorICAgICAgICBsc3QxID0gc2FtcGxlKHJhbmdlKHByZWMrMzApLCBpdHIpCisgICAgICAgIGxzdDIgPSBzYW1wbGUocmFuZ2UocHJlYyszMCksIGl0cikKKyAgICBmb3IgbSBpbiBsc3QxOgorICAgICAgICB4ID0gZnJvbV90cmlwbGUoMSwgYmluZGlnaXRzKG0pLCAwKQorICAgICAgICB5aWVsZCB4LCB4CisgICAgZm9yIG0gaW4gbHN0MToKKyAgICAgICAgZm9yIG4gaW4gbHN0MjoKKyAgICAgICAgICAgIHggPSBmcm9tX3RyaXBsZSgxLCBiaW5kaWdpdHMobSksIDApCisgICAgICAgICAgICB5ID0gZnJvbV90cmlwbGUoMSwgYmluZGlnaXRzKG4pLCAwKQorICAgICAgICAgICAgeWllbGQgeCwgeQorCisKK2RlZiByYW5kaW50KCk6CisgICAgcCA9IHJhbmRyYW5nZSgxLCAxMDApCisgICAgcmV0dXJuIG5kaWdpdHMocCkgKiAoMSwtMSlbcmFuZHJhbmdlKDIpXQorCitkZWYgcmFuZGZsb2F0KCk6CisgICAgcCA9IHJhbmRyYW5nZSgxLCAxMDApCisgICAgcyA9IG51bWVyaWNfdmFsdWUocCwgMzgzKQorICAgIHRyeToKKyAgICAgICAgZiA9IGZsb2F0KG51bWVyaWNfdmFsdWUocCwgMzgzKSkKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgZiA9IDAuMAorICAgIHJldHVybiBmCisKK2RlZiByYW5kY29tcGxleCgpOgorICAgIHJlYWwgPSByYW5kZmxvYXQoKQorICAgIGlmIHJhbmRyYW5nZSgxMDApID4gMzA6CisgICAgICAgIGltYWcgPSAwLjAKKyAgICBlbHNlOgorICAgICAgICBpbWFnID0gcmFuZGZsb2F0KCkKKyAgICByZXR1cm4gY29tcGxleChyZWFsLCBpbWFnKQorCitkZWYgcmFuZGZyYWN0aW9uKCk6CisgICAgbnVtID0gcmFuZGludCgpCisgICAgZGVub20gPSByYW5kaW50KCkKKyAgICBpZiBkZW5vbSA9PSAwOgorICAgICAgICBkZW5vbSA9IDEKKyAgICByZXR1cm4gRnJhY3Rpb24obnVtLCBkZW5vbSkKKworbnVtYmVyX2Z1bmNzID0gW3JhbmRpbnQsIHJhbmRmbG9hdCwgcmFuZGNvbXBsZXgsIHJhbmRmcmFjdGlvbl0KKworZGVmIHVuX3JhbmRvbV9taXhlZF9vcChpdHI9Tm9uZSk6CisgICAgaWYgaXRyIGlzIE5vbmU6CisgICAgICAgIGl0ciA9IDEwMDAKKyAgICBmb3IgXyBpbiByYW5nZShpdHIpOgorICAgICAgICBmb3IgZnVuYyBpbiBudW1iZXJfZnVuY3M6CisgICAgICAgICAgICB5aWVsZCBmdW5jKCkKKyAgICAjIFRlc3QgZ2FyYmFnZSBpbnB1dAorICAgIGZvciB4IGluIChbJ3gnXSwgKCd5JywpLCB7J3onfSwgezE6J3onfSk6CisgICAgICAgIHlpZWxkIHgKKworZGVmIGJpbl9yYW5kb21fbWl4ZWRfb3AocHJlYywgZW1heCwgZW1pbiwgaXRyPU5vbmUpOgorICAgIGlmIGl0ciBpcyBOb25lOgorICAgICAgICBpdHIgPSAxMDAwCisgICAgZm9yIF8gaW4gcmFuZ2UoaXRyKToKKyAgICAgICAgZm9yIGZ1bmMgaW4gbnVtYmVyX2Z1bmNzOgorICAgICAgICAgICAgeWllbGQgcmFuZGRlYyhwcmVjLCBlbWF4KSwgZnVuYygpCisgICAgICAgICAgICB5aWVsZCBmdW5jKCksIHJhbmRkZWMocHJlYywgZW1heCkKKyAgICAgICAgZm9yIG51bWJlciBpbiBudW1iZXJfZnVuY3M6CisgICAgICAgICAgICBmb3IgZGVjIGluIGNsb3NlX2Z1bmNzOgorICAgICAgICAgICAgICAgIHlpZWxkIGRlYyhwcmVjLCBlbWF4LCBlbWluKSwgbnVtYmVyKCkKKyAgICAjIFRlc3QgZ2FyYmFnZSBpbnB1dAorICAgIGZvciB4IGluIChbJ3gnXSwgKCd5JywpLCB7J3onfSwgezE6J3onfSk6CisgICAgICAgIGZvciB5IGluIChbJ3gnXSwgKCd5JywpLCB7J3onfSwgezE6J3onfSk6CisgICAgICAgICAgICB5aWVsZCB4LCB5CisKK2RlZiB0ZXJuX3JhbmRvbV9taXhlZF9vcChwcmVjLCBlbWF4LCBlbWluLCBpdHIpOgorICAgIGlmIGl0ciBpcyBOb25lOgorICAgICAgICBpdHIgPSAxMDAwCisgICAgZm9yIF8gaW4gcmFuZ2UoaXRyKToKKyAgICAgICAgZm9yIGZ1bmMgaW4gbnVtYmVyX2Z1bmNzOgorICAgICAgICAgICAgeWllbGQgcmFuZGRlYyhwcmVjLCBlbWF4KSwgcmFuZGRlYyhwcmVjLCBlbWF4KSwgZnVuYygpCisgICAgICAgICAgICB5aWVsZCByYW5kZGVjKHByZWMsIGVtYXgpLCBmdW5jKCksIGZ1bmMoKQorICAgICAgICAgICAgeWllbGQgZnVuYygpLCBmdW5jKCksIGZ1bmMoKQorICAgICMgVGVzdCBnYXJiYWdlIGlucHV0CisgICAgZm9yIHggaW4gKFsneCddLCAoJ3knLCksIHsneid9LCB7MToneid9KToKKyAgICAgICAgZm9yIHkgaW4gKFsneCddLCAoJ3knLCksIHsneid9LCB7MToneid9KToKKyAgICAgICAgICAgIGZvciB6IGluIChbJ3gnXSwgKCd5JywpLCB7J3onfSwgezE6J3onfSk6CisgICAgICAgICAgICAgICAgeWllbGQgeCwgeSwgegorCitkZWYgYWxsX3VuYXJ5KHByZWMsIGV4cF9yYW5nZSwgaXRyKToKKyAgICBmb3IgYSBpbiB1bl9jbG9zZV90b19wb3cxMChwcmVjLCBleHBfcmFuZ2UsIGl0cik6CisgICAgICAgIHlpZWxkIChhLCkKKyAgICBmb3IgYSBpbiB1bl9jbG9zZV9udW1iZXJzKHByZWMsIGV4cF9yYW5nZSwgLWV4cF9yYW5nZSwgaXRyKToKKyAgICAgICAgeWllbGQgKGEsKQorICAgIGZvciBhIGluIHVuX2luY3JfZGlnaXRzX3R1cGxlKHByZWMsIGV4cF9yYW5nZSwgaXRyKToKKyAgICAgICAgeWllbGQgKGEsKQorICAgIGZvciBhIGluIHVuX3JhbmRmbG9hdCgpOgorICAgICAgICB5aWVsZCAoYSwpCisgICAgZm9yIGEgaW4gdW5fcmFuZG9tX21peGVkX29wKGl0cik6CisgICAgICAgIHlpZWxkIChhLCkKKyAgICBmb3IgYSBpbiBsb2dpY2FsX3VuX2luY3JfZGlnaXRzKHByZWMsIGl0cik6CisgICAgICAgIHlpZWxkIChhLCkKKyAgICBmb3IgXyBpbiByYW5nZSgxMDApOgorICAgICAgICB5aWVsZCAocmFuZGRlYyhwcmVjLCBleHBfcmFuZ2UpLCkKKyAgICBmb3IgXyBpbiByYW5nZSgxMDApOgorICAgICAgICB5aWVsZCAocmFuZHR1cGxlKHByZWMsIGV4cF9yYW5nZSksKQorCitkZWYgYWxsX2JpbmFyeShwcmVjLCBleHBfcmFuZ2UsIGl0cik6CisgICAgZm9yIGEsIGIgaW4gYmluX2Nsb3NlX3RvX3BvdzEwKHByZWMsIGV4cF9yYW5nZSwgaXRyKToKKyAgICAgICAgeWllbGQgYSwgYgorICAgIGZvciBhLCBiIGluIGJpbl9jbG9zZV9udW1iZXJzKHByZWMsIGV4cF9yYW5nZSwgLWV4cF9yYW5nZSwgaXRyKToKKyAgICAgICAgeWllbGQgYSwgYgorICAgIGZvciBhLCBiIGluIGJpbl9pbmNyX2RpZ2l0cyhwcmVjLCBleHBfcmFuZ2UsIGl0cik6CisgICAgICAgIHlpZWxkIGEsIGIKKyAgICBmb3IgYSwgYiBpbiBiaW5fcmFuZGZsb2F0KCk6CisgICAgICAgIHlpZWxkIGEsIGIKKyAgICBmb3IgYSwgYiBpbiBiaW5fcmFuZG9tX21peGVkX29wKHByZWMsIGV4cF9yYW5nZSwgLWV4cF9yYW5nZSwgaXRyKToKKyAgICAgICAgeWllbGQgYSwgYgorICAgIGZvciBhLCBiIGluIGxvZ2ljYWxfYmluX2luY3JfZGlnaXRzKHByZWMsIGl0cik6CisgICAgICAgIHlpZWxkIGEsIGIKKyAgICBmb3IgXyBpbiByYW5nZSgxMDApOgorICAgICAgICB5aWVsZCByYW5kZGVjKHByZWMsIGV4cF9yYW5nZSksIHJhbmRkZWMocHJlYywgZXhwX3JhbmdlKQorCitkZWYgYWxsX3Rlcm5hcnkocHJlYywgZXhwX3JhbmdlLCBpdHIpOgorICAgIGZvciBhLCBiLCBjIGluIHRlcm5fY2xvc2VfbnVtYmVycyhwcmVjLCBleHBfcmFuZ2UsIC1leHBfcmFuZ2UsIGl0cik6CisgICAgICAgIHlpZWxkIGEsIGIsIGMKKyAgICBmb3IgYSwgYiwgYyBpbiB0ZXJuX2luY3JfZGlnaXRzKHByZWMsIGV4cF9yYW5nZSwgaXRyKToKKyAgICAgICAgeWllbGQgYSwgYiwgYworICAgIGZvciBhLCBiLCBjIGluIHRlcm5fcmFuZGZsb2F0KCk6CisgICAgICAgIHlpZWxkIGEsIGIsIGMKKyAgICBmb3IgYSwgYiwgYyBpbiB0ZXJuX3JhbmRvbV9taXhlZF9vcChwcmVjLCBleHBfcmFuZ2UsIC1leHBfcmFuZ2UsIGl0cik6CisgICAgICAgIHlpZWxkIGEsIGIsIGMKKyAgICBmb3IgXyBpbiByYW5nZSgxMDApOgorICAgICAgICBhID0gcmFuZGRlYyhwcmVjLCAyKmV4cF9yYW5nZSkKKyAgICAgICAgYiA9IHJhbmRkZWMocHJlYywgMipleHBfcmFuZ2UpCisgICAgICAgIGMgPSByYW5kZGVjKHByZWMsIDIqZXhwX3JhbmdlKQorICAgICAgICB5aWVsZCBhLCBiLCBjCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19kZWNpbWFsL3Rlc3RzL3JhbmRmbG9hdC5weSBiL01vZHVsZXMvX2RlY2ltYWwvdGVzdHMvcmFuZGZsb2F0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2ODczMDMKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL19kZWNpbWFsL3Rlc3RzL3JhbmRmbG9hdC5weQpAQCAtMCwwICsxLDI1MCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTAgUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24uIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjIEFkYXB0ZWQgZnJvbSBQeXRob24ncyBMaWIvdGVzdC90ZXN0X3N0cnRvZC5weSAoYnkgTWFyayBEaWNraW5zb24pCisKKyMgTW9yZSB0ZXN0IGNhc2VzIGZvciBkZWNjaGVjay5weS4KKworaW1wb3J0IHJhbmRvbQorCitURVNUX1NJWkUgPSAyCisKKworZGVmIHRlc3Rfc2hvcnRfaGFsZndheV9jYXNlcygpOgorICAgICMgZXhhY3QgaGFsZndheSBjYXNlcyB3aXRoIGEgc21hbGwgbnVtYmVyIG9mIHNpZ25pZmljYW50IGRpZ2l0cworICAgIGZvciBrIGluIDAsIDUsIDEwLCAxNSwgMjA6CisgICAgICAgICMgdXBwZXIgPSBzbWFsbGVzdCBpbnRlZ2VyID49IDIqKjU0LzUqKmsKKyAgICAgICAgdXBwZXIgPSAtKC0yKio1NC8vNSoqaykKKyAgICAgICAgIyBsb3dlciA9IHNtYWxsZXN0IG9kZCBudW1iZXIgPj0gMioqNTMvNSoqaworICAgICAgICBsb3dlciA9IC0oLTIqKjUzLy81KiprKQorICAgICAgICBpZiBsb3dlciAlIDIgPT0gMDoKKyAgICAgICAgICAgIGxvd2VyICs9IDEKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMTAgKiBURVNUX1NJWkUpOgorICAgICAgICAgICAgIyBTZWxlY3QgYSByYW5kb20gb2RkIG4gaW4gWzIqKjUzLzUqKmssCisgICAgICAgICAgICAjIDIqKjU0LzUqKmspLiBUaGVuIG4gKiAxMCoqayBnaXZlcyBhIGhhbGZ3YXkgY2FzZQorICAgICAgICAgICAgIyB3aXRoIHNtYWxsIG51bWJlciBvZiBzaWduaWZpY2FudCBkaWdpdHMuCisgICAgICAgICAgICBuLCBlID0gcmFuZG9tLnJhbmRyYW5nZShsb3dlciwgdXBwZXIsIDIpLCBrCisKKyAgICAgICAgICAgICMgUmVtb3ZlIGFueSBhZGRpdGlvbmFsIHBvd2VycyBvZiA1LgorICAgICAgICAgICAgd2hpbGUgbiAlIDUgPT0gMDoKKyAgICAgICAgICAgICAgICBuLCBlID0gbiAvLyA1LCBlICsgMQorICAgICAgICAgICAgYXNzZXJ0IG4gJSAxMCBpbiAoMSwgMywgNywgOSkKKworICAgICAgICAgICAgIyBUcnkgbnVtYmVycyBvZiB0aGUgZm9ybSBuICogMioqcDIgKiAxMCoqZSwgcDIgPj0gMCwKKyAgICAgICAgICAgICMgdW50aWwgbiAqIDIqKnAyIGhhcyBtb3JlIHRoYW4gMjAgc2lnbmlmaWNhbnQgZGlnaXRzLgorICAgICAgICAgICAgZGlnaXRzLCBleHBvbmVudCA9IG4sIGUKKyAgICAgICAgICAgIHdoaWxlIGRpZ2l0cyA8IDEwKioyMDoKKyAgICAgICAgICAgICAgICBzID0gJ3t9ZXt9Jy5mb3JtYXQoZGlnaXRzLCBleHBvbmVudCkKKyAgICAgICAgICAgICAgICB5aWVsZCBzCisgICAgICAgICAgICAgICAgIyBTYW1lIGFnYWluLCBidXQgd2l0aCBleHRyYSB0cmFpbGluZyB6ZXJvcy4KKyAgICAgICAgICAgICAgICBzID0gJ3t9ZXt9Jy5mb3JtYXQoZGlnaXRzICogMTAqKjQwLCBleHBvbmVudCAtIDQwKQorICAgICAgICAgICAgICAgIHlpZWxkIHMKKyAgICAgICAgICAgICAgICBkaWdpdHMgKj0gMgorCisgICAgICAgICAgICAjIFRyeSBudW1iZXJzIG9mIHRoZSBmb3JtIG4gKiA1KipwMiAqIDEwKiooZSAtIHA1KSwgcDUKKyAgICAgICAgICAgICMgPj0gMCwgd2l0aCBuICogNSoqcDUgPCAxMCoqMjAuCisgICAgICAgICAgICBkaWdpdHMsIGV4cG9uZW50ID0gbiwgZQorICAgICAgICAgICAgd2hpbGUgZGlnaXRzIDwgMTAqKjIwOgorICAgICAgICAgICAgICAgIHMgPSAne31le30nLmZvcm1hdChkaWdpdHMsIGV4cG9uZW50KQorICAgICAgICAgICAgICAgIHlpZWxkIHMKKyAgICAgICAgICAgICAgICAjIFNhbWUgYWdhaW4sIGJ1dCB3aXRoIGV4dHJhIHRyYWlsaW5nIHplcm9zLgorICAgICAgICAgICAgICAgIHMgPSAne31le30nLmZvcm1hdChkaWdpdHMgKiAxMCoqNDAsIGV4cG9uZW50IC0gNDApCisgICAgICAgICAgICAgICAgeWllbGQgcworICAgICAgICAgICAgICAgIGRpZ2l0cyAqPSA1CisgICAgICAgICAgICAgICAgZXhwb25lbnQgLT0gMQorCitkZWYgdGVzdF9oYWxmd2F5X2Nhc2VzKCk6CisgICAgIyB0ZXN0IGhhbGZ3YXkgY2FzZXMgZm9yIHRoZSByb3VuZC1oYWxmLXRvLWV2ZW4gcnVsZQorICAgIGZvciBpIGluIHJhbmdlKDEwMDApOgorICAgICAgICBmb3IgaiBpbiByYW5nZShURVNUX1NJWkUpOgorICAgICAgICAgICAgIyBiaXQgcGF0dGVybiBmb3IgYSByYW5kb20gZmluaXRlIHBvc2l0aXZlIChvciArMC4wKSBmbG9hdAorICAgICAgICAgICAgYml0cyA9IHJhbmRvbS5yYW5kcmFuZ2UoMjA0NyoyKio1MikKKworICAgICAgICAgICAgIyBjb252ZXJ0IGJpdCBwYXR0ZXJuIHRvIGEgbnVtYmVyIG9mIHRoZSBmb3JtIG0gKiAyKiplCisgICAgICAgICAgICBlLCBtID0gZGl2bW9kKGJpdHMsIDIqKjUyKQorICAgICAgICAgICAgaWYgZToKKyAgICAgICAgICAgICAgICBtLCBlID0gbSArIDIqKjUyLCBlIC0gMQorICAgICAgICAgICAgZSAtPSAxMDc0CisKKyAgICAgICAgICAgICMgYWRkIDAuNSB1bHBzCisgICAgICAgICAgICBtLCBlID0gMiptICsgMSwgZSAtIDEKKworICAgICAgICAgICAgIyBjb252ZXJ0IHRvIGEgZGVjaW1hbCBzdHJpbmcKKyAgICAgICAgICAgIGlmIGUgPj0gMDoKKyAgICAgICAgICAgICAgICBkaWdpdHMgPSBtIDw8IGUKKyAgICAgICAgICAgICAgICBleHBvbmVudCA9IDAKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBtICogMioqZSA9IChtICogNSoqLWUpICogMTAqKmUKKyAgICAgICAgICAgICAgICBkaWdpdHMgPSBtICogNSoqLWUKKyAgICAgICAgICAgICAgICBleHBvbmVudCA9IGUKKyAgICAgICAgICAgIHMgPSAne31le30nLmZvcm1hdChkaWdpdHMsIGV4cG9uZW50KQorICAgICAgICAgICAgeWllbGQgcworCitkZWYgdGVzdF9ib3VuZGFyaWVzKCk6CisgICAgIyBib3VuZGFyaWVzIGV4cHJlc3NlZCBhcyB0cmlwbGVzIChuLCBlLCB1KSwgd2hlcmUKKyAgICAjIG4qMTAqKmUgaXMgYW4gYXBwcm94aW1hdGlvbiB0byB0aGUgYm91bmRhcnkgdmFsdWUgYW5kCisgICAgIyB1KjEwKiplIGlzIDF1bHAKKyAgICBib3VuZGFyaWVzID0gWworICAgICAgICAoMTAwMDAwMDAwMDAwMDAwMDAwMDAsIC0xOSwgMTExMCksICAgIyBhIHBvd2VyIG9mIDIgYm91bmRhcnkgKDEuMCkKKyAgICAgICAgKDE3OTc2OTMxMzQ4NjIzMTU5MDc3LCAyODksIDE5OTUpLCAgICMgb3ZlcmZsb3cgYm91bmRhcnkgKDIuKioxMDI0KQorICAgICAgICAoMjIyNTA3Mzg1ODUwNzIwMTM4MzEsIC0zMjcsIDQ5NDEpLCAgIyBub3JtYWwvc3Vibm9ybWFsICgyLioqLTEwMjIpCisgICAgICAgICgwLCAtMzI3LCA0OTQxKSwgICAgICAgICAgICAgICAgICAgICAjIHplcm8KKyAgICAgICAgXQorICAgIGZvciBuLCBlLCB1IGluIGJvdW5kYXJpZXM6CisgICAgICAgIGZvciBqIGluIHJhbmdlKDEwMDApOgorICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoVEVTVF9TSVpFKToKKyAgICAgICAgICAgICAgICBkaWdpdHMgPSBuICsgcmFuZG9tLnJhbmRyYW5nZSgtMyp1LCAzKnUpCisgICAgICAgICAgICAgICAgZXhwb25lbnQgPSBlCisgICAgICAgICAgICAgICAgcyA9ICd7fWV7fScuZm9ybWF0KGRpZ2l0cywgZXhwb25lbnQpCisgICAgICAgICAgICAgICAgeWllbGQgcworICAgICAgICAgICAgbiAqPSAxMAorICAgICAgICAgICAgdSAqPSAxMAorICAgICAgICAgICAgZSAtPSAxCisKK2RlZiB0ZXN0X3VuZGVyZmxvd19ib3VuZGFyeSgpOgorICAgICMgdGVzdCB2YWx1ZXMgY2xvc2UgdG8gMioqLTEwNzUsIHRoZSB1bmRlcmZsb3cgYm91bmRhcnk7IHNpbWlsYXIKKyAgICAjIHRvIGJvdW5kYXJ5X3Rlc3RzLCBleGNlcHQgdGhhdCB0aGUgcmFuZG9tIGVycm9yIGRvZXNuJ3Qgc2NhbGUKKyAgICAjIHdpdGggbgorICAgIGZvciBleHBvbmVudCBpbiByYW5nZSgtNDAwLCAtMzIwKToKKyAgICAgICAgYmFzZSA9IDEwKiotZXhwb25lbnQgLy8gMioqMTA3NQorICAgICAgICBmb3IgaiBpbiByYW5nZShURVNUX1NJWkUpOgorICAgICAgICAgICAgZGlnaXRzID0gYmFzZSArIHJhbmRvbS5yYW5kcmFuZ2UoLTEwMDAsIDEwMDApCisgICAgICAgICAgICBzID0gJ3t9ZXt9Jy5mb3JtYXQoZGlnaXRzLCBleHBvbmVudCkKKyAgICAgICAgICAgIHlpZWxkIHMKKworZGVmIHRlc3RfYmlnY29tcCgpOgorICAgIGZvciBuZGlncyBpbiA1LCAxMCwgMTQsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMjAsIDQwLCA0MSwgNTA6CisgICAgICAgIGRpZzEwID0gMTAqKm5kaWdzCisgICAgICAgIGZvciBpIGluIHJhbmdlKDEwMCAqIFRFU1RfU0laRSk6CisgICAgICAgICAgICBkaWdpdHMgPSByYW5kb20ucmFuZHJhbmdlKGRpZzEwKQorICAgICAgICAgICAgZXhwb25lbnQgPSByYW5kb20ucmFuZHJhbmdlKC00MDAsIDQwMCkKKyAgICAgICAgICAgIHMgPSAne31le30nLmZvcm1hdChkaWdpdHMsIGV4cG9uZW50KQorICAgICAgICAgICAgeWllbGQgcworCitkZWYgdGVzdF9wYXJzaW5nKCk6CisgICAgIyBtYWtlICcwJyBtb3JlIGxpa2VseSB0byBiZSBjaG9zZW4gdGhhbiBvdGhlciBkaWdpdHMKKyAgICBkaWdpdHMgPSAnMDAwMDAwMTIzNDU2Nzg5JworICAgIHNpZ25zID0gKCcrJywgJy0nLCAnJykKKworICAgICMgcHV0IHRvZ2V0aGVyIHJhbmRvbSBzaG9ydCB2YWxpZCBzdHJpbmdzCisgICAgIyBcZCpbLlxkKl0/ZQorICAgIGZvciBpIGluIHJhbmdlKDEwMDApOgorICAgICAgICBmb3IgaiBpbiByYW5nZShURVNUX1NJWkUpOgorICAgICAgICAgICAgcyA9IHJhbmRvbS5jaG9pY2Uoc2lnbnMpCisgICAgICAgICAgICBpbnRwYXJ0X2xlbiA9IHJhbmRvbS5yYW5kcmFuZ2UoNSkKKyAgICAgICAgICAgIHMgKz0gJycuam9pbihyYW5kb20uY2hvaWNlKGRpZ2l0cykgZm9yIF8gaW4gcmFuZ2UoaW50cGFydF9sZW4pKQorICAgICAgICAgICAgaWYgcmFuZG9tLmNob2ljZShbVHJ1ZSwgRmFsc2VdKToKKyAgICAgICAgICAgICAgICBzICs9ICcuJworICAgICAgICAgICAgICAgIGZyYWNwYXJ0X2xlbiA9IHJhbmRvbS5yYW5kcmFuZ2UoNSkKKyAgICAgICAgICAgICAgICBzICs9ICcnLmpvaW4ocmFuZG9tLmNob2ljZShkaWdpdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKGZyYWNwYXJ0X2xlbikpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZyYWNwYXJ0X2xlbiA9IDAKKyAgICAgICAgICAgIGlmIHJhbmRvbS5jaG9pY2UoW1RydWUsIEZhbHNlXSk6CisgICAgICAgICAgICAgICAgcyArPSByYW5kb20uY2hvaWNlKFsnZScsICdFJ10pCisgICAgICAgICAgICAgICAgcyArPSByYW5kb20uY2hvaWNlKHNpZ25zKQorICAgICAgICAgICAgICAgIGV4cG9uZW50X2xlbiA9IHJhbmRvbS5yYW5kcmFuZ2UoMSwgNCkKKyAgICAgICAgICAgICAgICBzICs9ICcnLmpvaW4ocmFuZG9tLmNob2ljZShkaWdpdHMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBfIGluIHJhbmdlKGV4cG9uZW50X2xlbikpCisKKyAgICAgICAgICAgIGlmIGludHBhcnRfbGVuICsgZnJhY3BhcnRfbGVuOgorICAgICAgICAgICAgICAgIHlpZWxkIHMKKwordGVzdF9wYXJ0aWN1bGFyID0gWworICAgICAjIHNxdWFyZXMKKyAgICAnMS4wMDAwMDAwMDEwMDAwMDAwMDAyNScsCisgICAgJzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAyNScsCisgICAgJzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI1JywKKyAgICAnMS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAwMjUnLAorICAgICcwLjk5OTk5OTk5OTAwMDAwMDAwMDI1JywKKyAgICAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5JyAjLi4uCisgICAgJzk5OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMjUnLAorICAgICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknICMuLi4KKyAgICAnOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5JyAjLi4uCisgICAgJzk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5MDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnICMuLi4KKyAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjUnLAorCisgICAgJzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnICMuLi4KKyAgICAnMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMScsCisgICAgJzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnICMuLi4KKyAgICAnNTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNScsCisgICAgJzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnICMuLi4KKyAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMjUwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnICMuLi4KKyAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMScsCisgICAgJzEuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnICMuLi4KKyAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMjQ5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5JyAjLi4uCisgICAgJzk5OTk5OTk5OTk5OTk3OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OScgIy4uLgorICAgICc5OTk5OTk5OTk5OTk5OTk5OTk5OTk5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnICMuLi4KKyAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxJywKKworICAgICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknICMuLi4KKyAgICAnOTk5OTk5OTk5OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzAwMDAwMDAwMDAwMDAwMDAwMDI0OTk5OTk5OTk5OTk5OTk5ODAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAnICMuLi4KKyAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzAwMDAwMDAwMDAwMDAwMDAwMDEnLAorICAgICcwLjk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknICMuLi4KKyAgICAnOTk5OTk5OTk5OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzAwMDAwMDAwMDAwMDAwMDAwMDI1MDAwMDAwMTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OScgIy4uLgorICAgICc5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTAwMDAwMDAwMDAwMDAwMDAnICMuLi4KKyAgICAnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyAjLi4uCisgICAgJzEnLAorCisgICAgIyB0b3VnaCBjYXNlcyBmb3IgbG4gZXRjLgorICAgICcxLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcgIy4uLgorICAgICcwMDAxJywKKyAgICAnMC45OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknICMuLi4KKyAgICAnOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknICMuLi4KKyAgICAnOTk4OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknICMuLi4KKyAgICAnOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknICMuLi4KKyAgICAnOTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTknICMuLi4KKyAgICAnOTk5OScKKyAgICBdCisKKworVEVTVENBU0VTID0gWworICAgICAgW3ggZm9yIHggaW4gdGVzdF9zaG9ydF9oYWxmd2F5X2Nhc2VzKCldLAorICAgICAgW3ggZm9yIHggaW4gdGVzdF9oYWxmd2F5X2Nhc2VzKCldLAorICAgICAgW3ggZm9yIHggaW4gdGVzdF9ib3VuZGFyaWVzKCldLAorICAgICAgW3ggZm9yIHggaW4gdGVzdF91bmRlcmZsb3dfYm91bmRhcnkoKV0sCisgICAgICBbeCBmb3IgeCBpbiB0ZXN0X2JpZ2NvbXAoKV0sCisgICAgICBbeCBmb3IgeCBpbiB0ZXN0X3BhcnNpbmcoKV0sCisgICAgICB0ZXN0X3BhcnRpY3VsYXIKK10KKworZGVmIHVuX3JhbmRmbG9hdCgpOgorICAgIGZvciBpIGluIHJhbmdlKDEwMDApOgorICAgICAgICBsID0gcmFuZG9tLmNob2ljZShURVNUQ0FTRVNbOjZdKQorICAgICAgICB5aWVsZCByYW5kb20uY2hvaWNlKGwpCisgICAgZm9yIHYgaW4gdGVzdF9wYXJ0aWN1bGFyOgorICAgICAgICB5aWVsZCB2CisKK2RlZiBiaW5fcmFuZGZsb2F0KCk6CisgICAgZm9yIGkgaW4gcmFuZ2UoMTAwMCk6CisgICAgICAgIGwxID0gcmFuZG9tLmNob2ljZShURVNUQ0FTRVMpCisgICAgICAgIGwyID0gcmFuZG9tLmNob2ljZShURVNUQ0FTRVMpCisgICAgICAgIHlpZWxkIHJhbmRvbS5jaG9pY2UobDEpLCByYW5kb20uY2hvaWNlKGwyKQorCitkZWYgdGVybl9yYW5kZmxvYXQoKToKKyAgICBmb3IgaSBpbiByYW5nZSgxMDAwKToKKyAgICAgICAgbDEgPSByYW5kb20uY2hvaWNlKFRFU1RDQVNFUykKKyAgICAgICAgbDIgPSByYW5kb20uY2hvaWNlKFRFU1RDQVNFUykKKyAgICAgICAgbDMgPSByYW5kb20uY2hvaWNlKFRFU1RDQVNFUykKKyAgICAgICAgeWllbGQgcmFuZG9tLmNob2ljZShsMSksIHJhbmRvbS5jaG9pY2UobDIpLCByYW5kb20uY2hvaWNlKGwzKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fZGVjaW1hbC90ZXN0cy9ydW5hbGwtbWVtb3J5ZGVidWdnZXIuc2ggYi9Nb2R1bGVzL19kZWNpbWFsL3Rlc3RzL3J1bmFsbC1tZW1vcnlkZWJ1Z2dlci5zaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NGZmM2IzCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC90ZXN0cy9ydW5hbGwtbWVtb3J5ZGVidWdnZXIuc2gKQEAgLTAsMCArMSwxNzUgQEAKKyMhL2Jpbi9zaAorCisjCisjIFB1cnBvc2U6IHRlc3Qgd2l0aCBhbmQgd2l0aG91dCB0aHJlYWRzLCBhbGwgbWFjaGluZSBjb25maWd1cmF0aW9ucywgcHlkZWJ1ZywKKyMgICAgICAgICAgcmVmbGVha3MsIHJlbGVhc2UgYnVpbGQgYW5kIHJlbGVhc2UgYnVpbGQgd2l0aCB2YWxncmluZC4KKyMKKyMgU3lub3BzaXM6IC4vcnVuYWxsLW1lbW9yeWRlYnVnZ2VyLnNoIFstLWFsbC1jb25maWdzNjQgfCAtLWFsbC1jb25maWdzMzJdCisjCisjIFJlcXVpcmVtZW50czogdmFsZ3JpbmQKKyMKKworIyBTZXQgYWRkaXRpb25hbCBDRkxBR1MgZm9yIC4vY29uZmlndXJlCitBRERfQ0ZMQUdTPQorCisKK0NPTkZJR1NfNjQ9Ing2NCB1aW50MTI4IGFuc2k2NCB1bml2ZXJzYWwiCitDT05GSUdTXzMyPSJwcHJvIGFuc2kzMiBhbnNpLWxlZ2FjeSB1bml2ZXJzYWwiCisKK1ZBTEdSSU5EPSJ2YWxncmluZCAtLXRvb2w9bWVtY2hlY2sgLS1sZWFrLXJlc29sdXRpb249aGlnaCBcCisgICAgICAgICAgLS1kYi1hdHRhY2g9eWVzIC0tc3VwcHJlc3Npb25zPU1pc2MvdmFsZ3JpbmQtcHl0aG9uLnN1cHAiCisKKyMgR2V0IGFyZ3MKK2Nhc2UgJEAgaW4KKyAgICAgKi0tYWxsLWNvbmZpZ3M2NCopCisgICAgICAgICBDT05GSUdTPSRDT05GSUdTXzY0CisgICAgICAgICA7OworICAgICAqLS1hbGwtY29uZmlnczMyKikKKyAgICAgICAgIENPTkZJR1M9JENPTkZJR1NfMzIKKyAgICAgICAgIDs7CisgICAgICopCisgICAgICAgICBDT05GSUdTPSJhdXRvIgorICAgICAgICAgOzsKK2VzYWMKKworIyBnbWFrZSByZXF1aXJlZAorR01BS0U9YHdoaWNoIGdtYWtlYAoraWYgWyBYIiRHTUFLRSIgPSBYIiIgXTsgdGhlbgorICAgIEdNQUtFPW1ha2UKK2ZpCisKKyMgUHJldHR5IHByaW50IGNvbmZpZ3VyYXRpb25zCitwcmludF9jb25maWcgKCkKK3sKKyAgICBsZW49YGVjaG8gJEAgfCB3YyAtY2AKKyAgICBtYXJnaW49IiMlImBleHByIFwoIDc0IC0gJGxlbiBcKSAvIDJgInMiCisKKyAgICBlY2hvICIiCisgICAgZWNobyAiIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCisgICAgcHJpbnRmICRtYXJnaW4gIiIKKyAgICBlY2hvICRACisgICAgZWNobyAiIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0iCisgICAgZWNobyAiIgorfQorCisKK2NkIC4uCisKKyMgdGVzdF9kZWNpbWFsOiByZWZsZWFrLCByZWd1bGFyIGFuZCBWYWxncmluZCB0ZXN0cworZm9yIGFyZ3MgaW4gIi0td2l0aG91dC10aHJlYWRzIiAiIjsgZG8KKyAgICBmb3IgY29uZmlnIGluICRDT05GSUdTOyBkbworCisgICAgICAgIHVuc2V0IFBZVEhPTl9ERUNJTUFMX1dJVEhfTUFDSElORQorICAgICAgICBsaWJtcGRlY19jb25maWc9JGNvbmZpZworICAgICAgICBpZiBbIFgiJGNvbmZpZyIgIT0gWCJhdXRvIiBdOyB0aGVuCisgICAgICAgICAgICBQWVRIT05fREVDSU1BTF9XSVRIX01BQ0hJTkU9JGNvbmZpZworICAgICAgICAgICAgZXhwb3J0IFBZVEhPTl9ERUNJTUFMX1dJVEhfTUFDSElORQorICAgICAgICBlbHNlCisgICAgICAgICAgICBsaWJtcGRlY19jb25maWc9IiIKKyAgICAgICAgZmkKKworICAgICAgICAjIyMjIyMjIyMjIyMgcmVmbGVhayB0ZXN0cyAjIyMjIyMjIyMjIworICAgICAgICBwcmludF9jb25maWcgInJlZmxlYWsgdGVzdHM6IGNvbmZpZz0kY29uZmlnIiAkYXJncworICAgICAgICBwcmludGYgIlxuYnVpbGRpbmcgcHl0aG9uIC4uLlxuXG4iCisKKyAgICAgICAgY2QgLi4vLi4vCisgICAgICAgICRHTUFLRSBkaXN0Y2xlYW4gPiAvZGV2L251bGwgMj4mMQorICAgICAgICAuL2NvbmZpZ3VyZSBDRkxBR1M9IiRBRERfQ0ZMQUdTIiAtLXdpdGgtcHlkZWJ1ZyAkYXJncyA+IC9kZXYvbnVsbCAyPiYxCisgICAgICAgICRHTUFLRSB8IGdyZXAgX2RlY2ltYWwKKworICAgICAgICBwcmludGYgIlxuXG4jID09PT09PT09PT09PT09PT09PT09PT09PSByZWZsZWFrIHRlc3RzID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4iCisgICAgICAgIC4vcHl0aG9uIC1tIHRlc3QgLXVhbGwgLVIgMjoyIHRlc3RfZGVjaW1hbAorCisKKyAgICAgICAgIyMjIyMjIyMjIyMjIHJlZ3VsYXIgdGVzdHMgIyMjIyMjIyMjIyMKKyAgICAgICAgcHJpbnRfY29uZmlnICJyZWd1bGFyIHRlc3RzOiBjb25maWc9JGNvbmZpZyIgJGFyZ3MKKyAgICAgICAgcHJpbnRmICJcbmJ1aWxkaW5nIHB5dGhvbiAuLi5cblxuIgorCisgICAgICAgICRHTUFLRSBkaXN0Y2xlYW4gPiAvZGV2L251bGwgMj4mMQorICAgICAgICAuL2NvbmZpZ3VyZSBDRkxBR1M9IiRBRERfQ0ZMQUdTIiAkYXJncyA+IC9kZXYvbnVsbCAyPiYxCisgICAgICAgICRHTUFLRSB8IGdyZXAgX2RlY2ltYWwKKworICAgICAgICBwcmludGYgIlxuXG4jID09PT09PT09PT09PT09PT09PT09PT09PSByZWd1bGFyIHRlc3RzID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4iCisgICAgICAgIC4vcHl0aG9uIC1tIHRlc3QgLXVhbGwgdGVzdF9kZWNpbWFsCisKKworICAgICAgICAjIyMjIyMjIyMjIyB2YWxncmluZCB0ZXN0cyAjIyMjIyMjIyMjIworICAgICAgICB2YWxncmluZD0kVkFMR1JJTkQKKyAgICAgICAgY2FzZSAiJGNvbmZpZyIgaW4KKyAgICAgICAgICAgICMgVmFsZ3JpbmQgaGFzIG5vIHN1cHBvcnQgZm9yIDgwIGJpdCBsb25nIGRvdWJsZSBhcml0aG1ldGljLgorICAgICAgICAgICAgcHBybykgdmFsZ3JpbmQ9IDs7CisgICAgICAgICAgICBhdXRvKSBjYXNlIGB1bmFtZSAtbWAgaW4KKyAgICAgICAgICAgICAgICAgICAgICBpMzg2fGk0ODZ8aTU4NnxpNjg2KSB2YWxncmluZD0gOzsKKyAgICAgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgZXNhYworCisgICAgICAgIHByaW50X2NvbmZpZyAidmFsZ3JpbmQgdGVzdHM6IGNvbmZpZz0kY29uZmlnIiAkYXJncworICAgICAgICBwcmludGYgIlxuYnVpbGRpbmcgcHl0aG9uIC4uLlxuXG4iCisgICAgICAgICRHTUFLRSBkaXN0Y2xlYW4gPiAvZGV2L251bGwgMj4mMQorICAgICAgICAuL2NvbmZpZ3VyZSBDRkxBR1M9IiRBRERfQ0ZMQUdTIiAtLXdpdGhvdXQtcHltYWxsb2MgJGFyZ3MgPiAvZGV2L251bGwgMj4mMQorICAgICAgICAkR01BS0UgfCBncmVwIF9kZWNpbWFsCisKKyAgICAgICAgcHJpbnRmICJcblxuIyA9PT09PT09PT09PT09PT09PT09PT09PT0gdmFsZ3JpbmQgdGVzdHMgPT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiIKKyAgICAgICAgJHZhbGdyaW5kIC4vcHl0aG9uIC1tIHRlc3QgLXVhbGwgdGVzdF9kZWNpbWFsCisKKyAgICAgICAgY2QgTW9kdWxlcy9fZGVjaW1hbAorICAgIGRvbmUKK2RvbmUKKworIyBkZWNjaGVjaworY2QgLi4vLi4vCitmb3IgY29uZmlnIGluICRDT05GSUdTOyBkbworICAgIGZvciBhcmdzIGluICItLXdpdGhvdXQtdGhyZWFkcyIgIiI7IGRvCisKKyAgICAgICAgdW5zZXQgUFlUSE9OX0RFQ0lNQUxfV0lUSF9NQUNISU5FCisgICAgICAgIGlmIFsgWCIkY29uZmlnIiAhPSBYImF1dG8iIF07IHRoZW4KKyAgICAgICAgICAgIFBZVEhPTl9ERUNJTUFMX1dJVEhfTUFDSElORT0kY29uZmlnCisgICAgICAgICAgICBleHBvcnQgUFlUSE9OX0RFQ0lNQUxfV0lUSF9NQUNISU5FCisgICAgICAgIGZpCisKKyAgICAgICAgIyMjIyMjIyMjIyMjIGRlYnVnICMjIyMjIyMjIyMjIworICAgICAgICBwcmludF9jb25maWcgImRlY2NoZWNrOiBjb25maWc9JGNvbmZpZyAtLXdpdGgtcHlkZWJ1ZyIgJGFyZ3MKKyAgICAgICAgcHJpbnRmICJcbmJ1aWxkaW5nIHB5dGhvbiAuLi5cblxuIgorCisgICAgICAgICRHTUFLRSBkaXN0Y2xlYW4gPiAvZGV2L251bGwgMj4mMQorICAgICAgICAuL2NvbmZpZ3VyZSBDRkxBR1M9IiRBRERfQ0ZMQUdTIiAtLXdpdGgtcHlkZWJ1ZyAkYXJncyA+IC9kZXYvbnVsbCAyPiYxCisgICAgICAgICRHTUFLRSB8IGdyZXAgX2RlY2ltYWwKKworICAgICAgICBwcmludGYgIlxuXG4jID09PT09PT09PT09PT09PT09PT09PT09PT09IGRlYnVnID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4iCisgICAgICAgIC4vcHl0aG9uIE1vZHVsZXMvX2RlY2ltYWwvdGVzdHMvZGVjY2hlY2sucHkKKworICAgICAgICAjIyMjIyMjIyMjIyByZWd1bGFyICMjIyMjIyMjIyMjCisgICAgICAgIHByaW50X2NvbmZpZyAiZGVjY2hlY2s6IGNvbmZpZz0kY29uZmlnICIgJGFyZ3MKKyAgICAgICAgcHJpbnRmICJcbmJ1aWxkaW5nIHB5dGhvbiAuLi5cblxuIgorCisgICAgICAgICRHTUFLRSBkaXN0Y2xlYW4gPiAvZGV2L251bGwgMj4mMQorICAgICAgICAuL2NvbmZpZ3VyZSBDRkxBR1M9IiRBRERfQ0ZMQUdTIiAkYXJncyA+IC9kZXYvbnVsbCAyPiYxCisgICAgICAgICRHTUFLRSB8IGdyZXAgX2RlY2ltYWwKKworICAgICAgICBwcmludGYgIlxuXG4jID09PT09PT09PT09PT09PT09PT09PT09PSByZWd1bGFyID09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4iCisgICAgICAgIC4vcHl0aG9uIE1vZHVsZXMvX2RlY2ltYWwvdGVzdHMvZGVjY2hlY2sucHkKKworICAgICAgICAjIyMjIyMjIyMjIyB2YWxncmluZCAjIyMjIyMjIyMjIworICAgICAgICB2YWxncmluZD0kVkFMR1JJTkQKKyAgICAgICAgY2FzZSAiJGNvbmZpZyIgaW4KKyAgICAgICAgICAgICMgVmFsZ3JpbmQgaGFzIG5vIHN1cHBvcnQgZm9yIDgwIGJpdCBsb25nIGRvdWJsZSBhcml0aG1ldGljLgorICAgICAgICAgICAgcHBybykgdmFsZ3JpbmQ9IDs7CisgICAgICAgICAgICBhdXRvKSBjYXNlIGB1bmFtZSAtbWAgaW4KKyAgICAgICAgICAgICAgICAgICAgICBpMzg2fGk0ODZ8aTU4NnxpNjg2KSB2YWxncmluZD0gOzsKKyAgICAgICAgICAgICAgICAgIGVzYWMKKyAgICAgICAgZXNhYworCisgICAgICAgIHByaW50X2NvbmZpZyAidmFsZ3JpbmQgZGVjY2hlY2s6IGNvbmZpZz0kY29uZmlnICIgJGFyZ3MKKyAgICAgICAgcHJpbnRmICJcbmJ1aWxkaW5nIHB5dGhvbiAuLi5cblxuIgorCisgICAgICAgICRHTUFLRSBkaXN0Y2xlYW4gPiAvZGV2L251bGwgMj4mMQorICAgICAgICAuL2NvbmZpZ3VyZSBDRkxBR1M9IiRBRERfQ0ZMQUdTIiAtLXdpdGhvdXQtcHltYWxsb2MgJGFyZ3MgPiAvZGV2L251bGwgMj4mMQorICAgICAgICAkR01BS0UgfCBncmVwIF9kZWNpbWFsCisKKyAgICAgICAgcHJpbnRmICJcblxuIyA9PT09PT09PT09PT09PT09PT09PT09PT0gdmFsZ3JpbmQgPT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuIgorICAgICAgICAkdmFsZ3JpbmQgLi9weXRob24gTW9kdWxlcy9fZGVjaW1hbC90ZXN0cy9kZWNjaGVjay5weQorICAgIGRvbmUKK2RvbmUKKworCisKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2RlY2ltYWwvdGVzdHMvcnVuYWxsLmJhdCBiL01vZHVsZXMvX2RlY2ltYWwvdGVzdHMvcnVuYWxsLmJhdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YmM4NzJhCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fZGVjaW1hbC90ZXN0cy9ydW5hbGwuYmF0CkBAIC0wLDAgKzEsMTExIEBACitARUNITyBPRkYKKworcmVtIFRlc3QgYWxsIG1hY2hpbmUgY29uZmlndXJhdGlvbnMsIHB5ZGVidWcsIHJlZmxlYWtzLCByZWxlYXNlIGJ1aWxkLgorCitjZCAuLlwuLlwuLlwKKworCitlY2hvLgorZWNobyAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2VjaG8gIyAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZGluZyBQeXRob24KK2VjaG8gIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitlY2hvLgorCitjYWxsICIlVlMxMDBDT01OVE9PTFMlXC4uXC4uXFZDXHZjdmFyc2FsbC5iYXQiIHg2NAorbXNidWlsZCAvbm9jb25zb2xlbG9nZ2VyIC90YXJnZXQ6Y2xlYW4gUENidWlsZFxwY2J1aWxkLnNsbiAvcDpDb25maWd1cmF0aW9uPVJlbGVhc2UgL3A6UGxhdGZvcm1UYXJnZXQ9eDY0Cittc2J1aWxkIC9ub2NvbnNvbGVsb2dnZXIgL3RhcmdldDpjbGVhbiBQQ2J1aWxkXHBjYnVpbGQuc2xuIC9wOkNvbmZpZ3VyYXRpb249RGVidWcgL3A6UGxhdGZvcm1UYXJnZXQ9eDY0Cittc2J1aWxkIC9ub2NvbnNvbGVsb2dnZXIgUENidWlsZFxwY2J1aWxkLnNsbiAvcDpDb25maWd1cmF0aW9uPVJlbGVhc2UgL3A6UGxhdGZvcm09eDY0Cittc2J1aWxkIC9ub2NvbnNvbGVsb2dnZXIgUENidWlsZFxwY2J1aWxkLnNsbiAvcDpDb25maWd1cmF0aW9uPURlYnVnIC9wOlBsYXRmb3JtPXg2NAorCitjYWxsICIlVlMxMDBDT01OVE9PTFMlXC4uXC4uXFZDXHZjdmFyc2FsbC5iYXQiIHg4NgorbXNidWlsZCAvbm9jb25zb2xlbG9nZ2VyIFBDYnVpbGRccGNidWlsZC5zbG4gL3A6Q29uZmlndXJhdGlvbj1SZWxlYXNlIC9wOlBsYXRmb3JtPVdpbjMyCittc2J1aWxkIC9ub2NvbnNvbGVsb2dnZXIgUENidWlsZFxwY2J1aWxkLnNsbiAvcDpDb25maWd1cmF0aW9uPURlYnVnIC9wOlBsYXRmb3JtPVdpbjMyCitlY2hvLgorZWNoby4KKworZWNoby4KK2VjaG8gIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitlY2hvICMgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfZGVjaW1hbDogcGxhdGZvcm09eDY0CitlY2hvICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorZWNoby4KKworY2QgUENidWlsZFxhbWQ2NAorCitlY2hvICMgPT09PT09PT09PT09PT09PT09PT0gcmVmbGVhayB0ZXN0cyA9PT09PT09PT09PT09PT09PT09PT09PQorZWNoby4KK3B5dGhvbl9kLmV4ZSAtbSB0ZXN0IC11YWxsIC1SIDI6MiB0ZXN0X2RlY2ltYWwKK2VjaG8uCitlY2hvLgorCitlY2hvICMgPT09PT09PT09PT09PT09PT09PT0gcmVndWxhciB0ZXN0cyA9PT09PT09PT09PT09PT09PT09PT09PQorZWNoby4KK3B5dGhvbi5leGUgLW0gdGVzdCAtdWFsbCB0ZXN0X2RlY2ltYWwKK2VjaG8uCitlY2hvLgorCitjZCAuLgorCitlY2hvLgorZWNobyAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2VjaG8gIyAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9kZWNpbWFsOiBwbGF0Zm9ybT14ODYKK2VjaG8gIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CitlY2hvLgorCitlY2hvICMgPT09PT09PT09PT09PT09PT09PT0gcmVmbGVhayB0ZXN0cyA9PT09PT09PT09PT09PT09PT09PT09PQorZWNoby4KK3B5dGhvbl9kLmV4ZSAtbSB0ZXN0IC11YWxsIC1SIDI6MiB0ZXN0X2RlY2ltYWwKK2VjaG8uCitlY2hvLgorCitlY2hvICMgPT09PT09PT09PT09PT09PT09PT0gcmVndWxhciB0ZXN0cyA9PT09PT09PT09PT09PT09PT09PT09PQorZWNoby4KK3B5dGhvbi5leGUgLW0gdGVzdCAtdWFsbCB0ZXN0X2RlY2ltYWwKK2VjaG8uCitlY2hvLgorCitjZCBhbWQ2NAorCitlY2hvLgorZWNobyAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2VjaG8gIyAgICAgICAgICAgICAgICAgICAgICAgICBkZWNjaGVjazogcGxhdGZvcm09eDY0CitlY2hvICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorZWNoby4KKworZWNobyAjID09PT09PT09PT09PT09PT09PT09IGRlYnVnIGJ1aWxkID09PT09PT09PT09PT09PT09PT09PT09CitlY2hvLgorcHl0aG9uX2QuZXhlIC4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcdGVzdHNcZGVjY2hlY2sucHkKK2VjaG8uCitlY2hvLgorCitlY2hvICMgPT09PT09PT09PT09PT09PT09PSByZWxlYXNlIGJ1aWxkID09PT09PT09PT09PT09PT09PT09PT0KK2VjaG8uCitweXRob24uZXhlIC4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcdGVzdHNcZGVjY2hlY2sucHkKK2VjaG8uCitlY2hvLgorCitjZCAuLgorCitlY2hvLgorZWNobyAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK2VjaG8gIyAgICAgICAgICAgICAgICAgICAgICAgICBkZWNjaGVjazogcGxhdGZvcm09eDg2CitlY2hvICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorZWNoby4KK2VjaG8uCisKK2VjaG8gIyA9PT09PT09PT09PT09PT09PT09PSBkZWJ1ZyBidWlsZCA9PT09PT09PT09PT09PT09PT09PT09PQorZWNoby4KK3B5dGhvbl9kLmV4ZSAuLlxNb2R1bGVzXF9kZWNpbWFsXHRlc3RzXGRlY2NoZWNrLnB5CitlY2hvLgorZWNoby4KKworZWNobyAjID09PT09PT09PT09PT09PT09PT0gcmVsZWFzZSBidWlsZCA9PT09PT09PT09PT09PT09PT09PT09CitlY2hvLgorcHl0aG9uLmV4ZSAuLlxNb2R1bGVzXF9kZWNpbWFsXHRlc3RzXGRlY2NoZWNrLnB5CitlY2hvLgorZWNoby4KKworCitjZCAuLlxNb2R1bGVzXF9kZWNpbWFsXHRlc3RzCisKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19lbGVtZW50dHJlZS5jIGIvTW9kdWxlcy9fZWxlbWVudHRyZWUuYwppbmRleCA3ODg3NzIxLi42NDE1Nzk3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19lbGVtZW50dHJlZS5jCisrKyBiL01vZHVsZXMvX2VsZW1lbnR0cmVlLmMKQEAgLTQ4LDYgKzQ4LDcgQEAKIC8qIFNlZSBodHRwOi8vd3d3LnB5dGhvbi5vcmcvcHNmL2xpY2Vuc2UgZm9yIGxpY2Vuc2luZyBkZXRhaWxzLiAqLwogCiAjaW5jbHVkZSAiUHl0aG9uLmgiCisjaW5jbHVkZSAic3RydWN0bWVtYmVyLmgiCiAKICNkZWZpbmUgVkVSU0lPTiAiMS4wLjYiCiAKQEAgLTU3LDkgKzU4LDYgQEAKIC8qIExlYXZlIGRlZmluZWQgdG8gaW5jbHVkZSB0aGUgZXhwYXQtYmFzZWQgWE1MUGFyc2VyIHR5cGUgKi8KICNkZWZpbmUgVVNFX0VYUEFUCiAKLS8qIERlZmluZSB0byBkbyBhbGwgZXhwYXQgY2FsbHMgdmlhIHB5ZXhwYXQncyBlbWJlZGRlZCBleHBhdCBsaWJyYXJ5ICovCi0vKiAjZGVmaW5lIFVTRV9QWUVYUEFUX0NBUEkgKi8KLQogLyogQW4gZWxlbWVudCBjYW4gaG9sZCB0aGlzIG1hbnkgY2hpbGRyZW4gd2l0aG91dCBleHRyYSBtZW1vcnkKICAgIGFsbG9jYXRpb25zLiAqLwogI2RlZmluZSBTVEFUSUNfQ0hJTERSRU4gNApAQCAtNzAsNyArNjgsNyBAQAogICAgaGVscHMgaWYgeW91IGhhdmUgbG90cyBvZiBsZWFmIG5vZGVzIHdpdGggYXR0cmlidXRlcykuICovCiAKIC8qIEFsc28gbm90ZSB0aGF0IHB5bWFsbG9jIGFsd2F5cyBhbGxvY2F0ZXMgYmxvY2tzIGluIG11bHRpcGxlcyBvZgotICAgZWlnaHQgYnl0ZXMuICBGb3IgdGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBjRWxlbWVudFRyZWUsIHRoaXMgbWVhbnMKKyAgIGVpZ2h0IGJ5dGVzLiAgRm9yIHRoZSBjdXJyZW50IEMgdmVyc2lvbiBvZiBFbGVtZW50VHJlZSwgdGhpcyBtZWFucwogICAgdGhhdCB0aGUgbnVtYmVyIG9mIGNoaWxkcmVuIHNob3VsZCBiZSBhbiBldmVuIG51bWJlciwgYXQgbGVhc3Qgb24KICAgIDMyLWJpdCBwbGF0Zm9ybXMuICovCiAKQEAgLTk0LDI1ICs5Miw2IEBACiAjZGVmaW5lIExPQ0FMKHR5cGUpIHN0YXRpYyB0eXBlCiAjZW5kaWYKIAotLyogY29tcGF0aWJpbGl0eSBtYWNyb3MgKi8KLSNpZiAoUFlfVkVSU0lPTl9IRVggPCAweDAyMDYwMDAwKQotI2RlZmluZSBQeV9SRUZDTlQob2IpICgoKFB5T2JqZWN0Kikob2IpKS0+b2JfcmVmY250KQotI2RlZmluZSBQeV9UWVBFKG9iKSAoKChQeU9iamVjdCopKG9iKSktPm9iX3R5cGUpCi0jZW5kaWYKLQotI2lmIChQWV9WRVJTSU9OX0hFWCA8IDB4MDIwNTAwMDApCi10eXBlZGVmIGludCBQeV9zc2l6ZV90OwotI2RlZmluZSBsZW5mdW5jIGlucXVpcnkKLSNlbmRpZgotCi0jaWYgKFBZX1ZFUlNJT05fSEVYIDwgMHgwMjA0MDAwMCkKLSNkZWZpbmUgUHlEaWN0X0NoZWNrRXhhY3QgUHlEaWN0X0NoZWNrCi0KLSNpZiAhZGVmaW5lZChQeV9SRVRVUk5fTk9ORSkKLSNkZWZpbmUgUHlfUkVUVVJOX05PTkUgcmV0dXJuIFB5X0lOQ1JFRihQeV9Ob25lKSwgUHlfTm9uZQotI2VuZGlmCi0jZW5kaWYKLQogLyogbWFjcm9zIHVzZWQgdG8gc3RvcmUgJ2pvaW4nIGZsYWdzIGluIHN0cmluZyBvYmplY3QgcG9pbnRlcnMuICBub3RlCiAgICB0aGF0IGFsbCB1c2Ugb2YgdGV4dCBhbmQgdGFpbCBhcyBvYmplY3QgcG9pbnRlcnMgbXVzdCBiZSB3cmFwcGVkIGluCiAgICBKT0lOX09CSi4gIHNlZSBjb21tZW50cyBpbiB0aGUgRWxlbWVudE9iamVjdCBkZWZpbml0aW9uIGZvciBtb3JlCkBAIC0xMjMsMTAgKzEwMiw3IEBACiAKIC8qIGdsdWUgZnVuY3Rpb25zIChzZWUgdGhlIGluaXQgZnVuY3Rpb24gZm9yIGRldGFpbHMpICovCiBzdGF0aWMgUHlPYmplY3QqIGVsZW1lbnR0cmVlX3BhcnNlZXJyb3Jfb2JqOwotc3RhdGljIFB5T2JqZWN0KiBlbGVtZW50dHJlZV9jb3B5ZWxlbWVudF9vYmo7CiBzdGF0aWMgUHlPYmplY3QqIGVsZW1lbnR0cmVlX2RlZXBjb3B5X29iajsKLXN0YXRpYyBQeU9iamVjdCogZWxlbWVudHRyZWVfaXRlcl9vYmo7Ci1zdGF0aWMgUHlPYmplY3QqIGVsZW1lbnR0cmVlX2l0ZXJ0ZXh0X29iajsKIHN0YXRpYyBQeU9iamVjdCogZWxlbWVudHBhdGhfb2JqOwogCiAvKiBoZWxwZXJzICovCkBAIC0yMTAsOCArMTg2LDE3IEBACiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorLyogSXMgdGhlIGdpdmVuIG9iamVjdCBhbiBlbXB0eSBkaWN0aW9uYXJ5PworKi8KK3N0YXRpYyBpbnQKK2lzX2VtcHR5X2RpY3QoUHlPYmplY3QgKm9iaikKK3sKKyAgICByZXR1cm4gUHlEaWN0X0NoZWNrRXhhY3Qob2JqKSAmJiBQeURpY3RfU2l6ZShvYmopID09IDA7Cit9CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLS8qIHRoZSBlbGVtZW50IHR5cGUgKi8KKy8qIHRoZSBFbGVtZW50IHR5cGUgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgewogCkBAIC0yMjYsNyArMjExLDcgQEAKICAgICBQeU9iamVjdCogKmNoaWxkcmVuOwogCiAgICAgUHlPYmplY3QqIF9jaGlsZHJlbltTVEFUSUNfQ0hJTERSRU5dOwotICAgIAorCiB9IEVsZW1lbnRPYmplY3RFeHRyYTsKIAogdHlwZWRlZiBzdHJ1Y3QgewpAQCAtMjQ5LDYgKzIzNCw4IEBACiAKICAgICBFbGVtZW50T2JqZWN0RXh0cmEqIGV4dHJhOwogCisgICAgUHlPYmplY3QgKndlYWtyZWZsaXN0OyAvKiBGb3IgdHBfd2Vha2xpc3RvZmZzZXQgKi8KKwogfSBFbGVtZW50T2JqZWN0OwogCiBzdGF0aWMgUHlUeXBlT2JqZWN0IEVsZW1lbnRfVHlwZTsKQEAgLTI1NiwxMCArMjQzLDEwIEBACiAjZGVmaW5lIEVsZW1lbnRfQ2hlY2tFeGFjdChvcCkgKFB5X1RZUEUob3ApID09ICZFbGVtZW50X1R5cGUpCiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0vKiBlbGVtZW50IGNvbnN0cnVjdG9yIGFuZCBkZXN0cnVjdG9yICovCisvKiBFbGVtZW50IGNvbnN0cnVjdG9ycyBhbmQgZGVzdHJ1Y3RvciAqLwogCiBMT0NBTChpbnQpCi1lbGVtZW50X25ld19leHRyYShFbGVtZW50T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXR0cmliKQorY3JlYXRlX2V4dHJhKEVsZW1lbnRPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhdHRyaWIpCiB7CiAgICAgc2VsZi0+ZXh0cmEgPSBQeU9iamVjdF9NYWxsb2Moc2l6ZW9mKEVsZW1lbnRPYmplY3RFeHRyYSkpOwogICAgIGlmICghc2VsZi0+ZXh0cmEpCkBAIC0yNzksNDcgKzI2Niw0OCBAQAogfQogCiBMT0NBTCh2b2lkKQotZWxlbWVudF9kZWFsbG9jX2V4dHJhKEVsZW1lbnRPYmplY3QqIHNlbGYpCitkZWFsbG9jX2V4dHJhKEVsZW1lbnRPYmplY3QqIHNlbGYpCiB7CisgICAgRWxlbWVudE9iamVjdEV4dHJhICpteWV4dHJhOwogICAgIGludCBpOwogCi0gICAgUHlfREVDUkVGKHNlbGYtPmV4dHJhLT5hdHRyaWIpOworICAgIGlmICghc2VsZi0+ZXh0cmEpCisgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoaSA9IDA7IGkgPCBzZWxmLT5leHRyYS0+bGVuZ3RoOyBpKyspCi0gICAgICAgIFB5X0RFQ1JFRihzZWxmLT5leHRyYS0+Y2hpbGRyZW5baV0pOworICAgIC8qIEF2b2lkIERFQ1JFRnMgY2FsbGluZyBpbnRvIHRoaXMgY29kZSBhZ2FpbiAoY3ljbGVzLCBldGMuKQorICAgICovCisgICAgbXlleHRyYSA9IHNlbGYtPmV4dHJhOworICAgIHNlbGYtPmV4dHJhID0gTlVMTDsKIAotICAgIGlmIChzZWxmLT5leHRyYS0+Y2hpbGRyZW4gIT0gc2VsZi0+ZXh0cmEtPl9jaGlsZHJlbikKLSAgICAgICAgUHlPYmplY3RfRnJlZShzZWxmLT5leHRyYS0+Y2hpbGRyZW4pOworICAgIFB5X0RFQ1JFRihteWV4dHJhLT5hdHRyaWIpOwogCi0gICAgUHlPYmplY3RfRnJlZShzZWxmLT5leHRyYSk7CisgICAgZm9yIChpID0gMDsgaSA8IG15ZXh0cmEtPmxlbmd0aDsgaSsrKQorICAgICAgICBQeV9ERUNSRUYobXlleHRyYS0+Y2hpbGRyZW5baV0pOworCisgICAgaWYgKG15ZXh0cmEtPmNoaWxkcmVuICE9IG15ZXh0cmEtPl9jaGlsZHJlbikKKyAgICAgICAgUHlPYmplY3RfRnJlZShteWV4dHJhLT5jaGlsZHJlbik7CisKKyAgICBQeU9iamVjdF9GcmVlKG15ZXh0cmEpOwogfQogCisvKiBDb252ZW5pZW5jZSBpbnRlcm5hbCBmdW5jdGlvbiB0byBjcmVhdGUgbmV3IEVsZW1lbnQgb2JqZWN0cyB3aXRoIHRoZSBnaXZlbgorICogdGFnIGFuZCBhdHRyaWJ1dGVzLgorKi8KIExPQ0FMKFB5T2JqZWN0KikKLWVsZW1lbnRfbmV3KFB5T2JqZWN0KiB0YWcsIFB5T2JqZWN0KiBhdHRyaWIpCitjcmVhdGVfbmV3X2VsZW1lbnQoUHlPYmplY3QqIHRhZywgUHlPYmplY3QqIGF0dHJpYikKIHsKICAgICBFbGVtZW50T2JqZWN0KiBzZWxmOwogCi0gICAgc2VsZiA9IFB5T2JqZWN0X05ldyhFbGVtZW50T2JqZWN0LCAmRWxlbWVudF9UeXBlKTsKKyAgICBzZWxmID0gUHlPYmplY3RfR0NfTmV3KEVsZW1lbnRPYmplY3QsICZFbGVtZW50X1R5cGUpOwogICAgIGlmIChzZWxmID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgLyogdXNlIE5vbmUgZm9yIGVtcHR5IGRpY3Rpb25hcmllcyAqLwotICAgIGlmIChQeURpY3RfQ2hlY2tFeGFjdChhdHRyaWIpICYmICFQeURpY3RfU2l6ZShhdHRyaWIpKQotICAgICAgICBhdHRyaWIgPSBQeV9Ob25lOwotCiAgICAgc2VsZi0+ZXh0cmEgPSBOVUxMOwogCi0gICAgaWYgKGF0dHJpYiAhPSBQeV9Ob25lKSB7Ci0KLSAgICAgICAgaWYgKGVsZW1lbnRfbmV3X2V4dHJhKHNlbGYsIGF0dHJpYikgPCAwKSB7CisgICAgaWYgKGF0dHJpYiAhPSBQeV9Ob25lICYmICFpc19lbXB0eV9kaWN0KGF0dHJpYikpIHsKKyAgICAgICAgaWYgKGNyZWF0ZV9leHRyYShzZWxmLCBhdHRyaWIpIDwgMCkgewogICAgICAgICAgICAgUHlPYmplY3RfRGVsKHNlbGYpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KLQotICAgICAgICBzZWxmLT5leHRyYS0+bGVuZ3RoID0gMDsKLSAgICAgICAgc2VsZi0+ZXh0cmEtPmFsbG9jYXRlZCA9IFNUQVRJQ19DSElMRFJFTjsKLSAgICAgICAgc2VsZi0+ZXh0cmEtPmNoaWxkcmVuID0gc2VsZi0+ZXh0cmEtPl9jaGlsZHJlbjsKLQogICAgIH0KIAogICAgIFB5X0lOQ1JFRih0YWcpOwpAQCAtMzMxLDExICszMTksMTMxIEBACiAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwogICAgIHNlbGYtPnRhaWwgPSBQeV9Ob25lOwogCi0gICAgQUxMT0Moc2l6ZW9mKEVsZW1lbnRPYmplY3QpLCAiY3JlYXRlIGVsZW1lbnQiKTsKKyAgICBzZWxmLT53ZWFrcmVmbGlzdCA9IE5VTEw7CiAKKyAgICBBTExPQyhzaXplb2YoRWxlbWVudE9iamVjdCksICJjcmVhdGUgZWxlbWVudCIpOworICAgIFB5T2JqZWN0X0dDX1RyYWNrKHNlbGYpOwogICAgIHJldHVybiAoUHlPYmplY3QqKSBzZWxmOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorZWxlbWVudF9uZXcoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgRWxlbWVudE9iamVjdCAqZSA9IChFbGVtZW50T2JqZWN0ICopdHlwZS0+dHBfYWxsb2ModHlwZSwgMCk7CisgICAgaWYgKGUgIT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIGUtPnRhZyA9IFB5X05vbmU7CisKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICBlLT50ZXh0ID0gUHlfTm9uZTsKKworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIGUtPnRhaWwgPSBQeV9Ob25lOworCisgICAgICAgIGUtPmV4dHJhID0gTlVMTDsKKyAgICAgICAgZS0+d2Vha3JlZmxpc3QgPSBOVUxMOworICAgIH0KKyAgICByZXR1cm4gKFB5T2JqZWN0ICopZTsKK30KKworLyogSGVscGVyIGZ1bmN0aW9uIGZvciBleHRyYWN0aW5nIHRoZSBhdHRyaWIgZGljdGlvbmFyeSBmcm9tIGEga2V5d29yZHMgZGljdC4KKyAqIFRoaXMgaXMgcmVxdWlyZWQgYnkgc29tZSBjb25zdHJ1Y3RvcnMvZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIHRoYXQgY2FuCisgKiBlaXRoZXIgYWNjZXB0IGF0dHJpYiBhcyBhIGtleXdvcmQgYXJndW1lbnQgb3IgYWxsIGF0dHJpYnV0ZXMgc3BsYXNoZWQgCisgKiBkaXJlY3RseSBpbnRvICprd2RzLgorICogSWYgdGhlcmUgaXMgbm8gJ2F0dHJpYicga2V5d29yZCwgcmV0dXJuIGFuIGVtcHR5IGRpY3QuCisgKi8KK3N0YXRpYyBQeU9iamVjdCoKK2dldF9hdHRyaWJfZnJvbV9rZXl3b3JkcyhQeU9iamVjdCAqa3dkcykKK3sKKyAgICBQeU9iamVjdCAqYXR0cmliX3N0ciA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJhdHRyaWIiKTsKKyAgICBQeU9iamVjdCAqYXR0cmliID0gUHlEaWN0X0dldEl0ZW0oa3dkcywgYXR0cmliX3N0cik7CisKKyAgICBpZiAoYXR0cmliKSB7CisgICAgICAgIC8qIElmIGF0dHJpYiB3YXMgZm91bmQgaW4ga3dkcywgY29weSBpdHMgdmFsdWUgYW5kIHJlbW92ZSBpdCBmcm9tCisgICAgICAgICAqIGt3ZHMKKyAgICAgICAgICovCisgICAgICAgIGlmICghUHlEaWN0X0NoZWNrKGF0dHJpYikpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihhdHRyaWJfc3RyKTsKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJhdHRyaWIgbXVzdCBiZSBkaWN0LCBub3QgJS4xMDBzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQeV9UWVBFKGF0dHJpYiktPnRwX25hbWUpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgYXR0cmliID0gUHlEaWN0X0NvcHkoYXR0cmliKTsKKyAgICAgICAgUHlEaWN0X0RlbEl0ZW0oa3dkcywgYXR0cmliX3N0cik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXR0cmliID0gUHlEaWN0X05ldygpOworICAgIH0KKworICAgIFB5X0RFQ1JFRihhdHRyaWJfc3RyKTsKKworICAgIGlmIChhdHRyaWIpCisgICAgICAgIFB5RGljdF9VcGRhdGUoYXR0cmliLCBrd2RzKTsKKyAgICByZXR1cm4gYXR0cmliOworfQorCitzdGF0aWMgaW50CitlbGVtZW50X2luaXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBQeU9iamVjdCAqdGFnOworICAgIFB5T2JqZWN0ICp0bXA7CisgICAgUHlPYmplY3QgKmF0dHJpYiA9IE5VTEw7CisgICAgRWxlbWVudE9iamVjdCAqc2VsZl9lbGVtOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPfE8hOkVsZW1lbnQiLCAmdGFnLCAmUHlEaWN0X1R5cGUsICZhdHRyaWIpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAoYXR0cmliKSB7CisgICAgICAgIC8qIGF0dHJpYiBwYXNzZWQgYXMgcG9zaXRpb25hbCBhcmcgKi8KKyAgICAgICAgYXR0cmliID0gUHlEaWN0X0NvcHkoYXR0cmliKTsKKyAgICAgICAgaWYgKCFhdHRyaWIpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGlmIChrd2RzKSB7CisgICAgICAgICAgICBpZiAoUHlEaWN0X1VwZGF0ZShhdHRyaWIsIGt3ZHMpIDwgMCkgeworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0gZWxzZSBpZiAoa3dkcykgeworICAgICAgICAvKiBoYXZlIGtleXdvcmRzIGFyZ3MgKi8KKyAgICAgICAgYXR0cmliID0gZ2V0X2F0dHJpYl9mcm9tX2tleXdvcmRzKGt3ZHMpOworICAgICAgICBpZiAoIWF0dHJpYikKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICB9IGVsc2UgeworICAgICAgICAvKiBubyBhdHRyaWIgYXJnLCBubyBrd2RzLCBzbyBubyBhdHRyaWJ1dGVzICovCisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgYXR0cmliID0gUHlfTm9uZTsKKyAgICB9CisKKyAgICBzZWxmX2VsZW0gPSAoRWxlbWVudE9iamVjdCAqKXNlbGY7CisKKyAgICBpZiAoYXR0cmliICE9IFB5X05vbmUgJiYgIWlzX2VtcHR5X2RpY3QoYXR0cmliKSkgeworICAgICAgICBpZiAoY3JlYXRlX2V4dHJhKHNlbGZfZWxlbSwgYXR0cmliKSA8IDApIHsKKyAgICAgICAgICAgIFB5T2JqZWN0X0RlbChzZWxmX2VsZW0pOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorCisgICAgLyogV2Ugb3duIGEgcmVmZXJlbmNlIHRvIGF0dHJpYiBoZXJlIGFuZCBpdCdzIG5vIGxvbmdlciBuZWVkZWQuICovCisgICAgUHlfREVDUkVGKGF0dHJpYik7CisKKyAgICAvKiBSZXBsYWNlIHRoZSBvYmplY3RzIGFscmVhZHkgcG9pbnRlZCB0byBieSB0YWcsIHRleHQgYW5kIHRhaWwuICovCisgICAgdG1wID0gc2VsZl9lbGVtLT50YWc7CisgICAgc2VsZl9lbGVtLT50YWcgPSB0YWc7CisgICAgUHlfSU5DUkVGKHRhZyk7CisgICAgUHlfREVDUkVGKHRtcCk7CisKKyAgICB0bXAgPSBzZWxmX2VsZW0tPnRleHQ7CisgICAgc2VsZl9lbGVtLT50ZXh0ID0gUHlfTm9uZTsKKyAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgUHlfREVDUkVGKEpPSU5fT0JKKHRtcCkpOworCisgICAgdG1wID0gc2VsZl9lbGVtLT50YWlsOworICAgIHNlbGZfZWxlbS0+dGFpbCA9IFB5X05vbmU7CisgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgIFB5X0RFQ1JFRihKT0lOX09CSih0bXApKTsKKworICAgIHJldHVybiAwOworfQorCiBMT0NBTChpbnQpCiBlbGVtZW50X3Jlc2l6ZShFbGVtZW50T2JqZWN0KiBzZWxmLCBpbnQgZXh0cmEpCiB7CkBAIC0zNDYsNyArNDU0LDcgQEAKICAgICAgICBlbGVtZW50cy4gIHNldCBhbiBleGNlcHRpb24gYW5kIHJldHVybiAtMSBpZiBhbGxvY2F0aW9uIGZhaWxlZCAqLwogCiAgICAgaWYgKCFzZWxmLT5leHRyYSkKLSAgICAgICAgZWxlbWVudF9uZXdfZXh0cmEoc2VsZiwgTlVMTCk7CisgICAgICAgIGNyZWF0ZV9leHRyYShzZWxmLCBOVUxMKTsKIAogICAgIHNpemUgPSBzZWxmLT5leHRyYS0+bGVuZ3RoICsgZXh0cmE7CiAKQEAgLTM1NCwxNCArNDYyLDE0IEBACiAgICAgICAgIC8qIHVzZSBQeXRob24gMi40J3MgbGlzdCBncm93dGggc3RyYXRlZ3kgKi8KICAgICAgICAgc2l6ZSA9IChzaXplID4+IDMpICsgKHNpemUgPCA5ID8gMyA6IDYpICsgc2l6ZTsKICAgICAgICAgLyogQ292ZXJpdHkgQ0lEICMxODIgc2l6ZV9lcnJvcjogQWxsb2NhdGluZyAxIGJ5dGVzIHRvIHBvaW50ZXIgImNoaWxkcmVuIgotICAgICAgICAgKiB3aGljaCBuZWVkcyBhdCBsZWFzdCA0IGJ5dGVzLiAKLSAgICAgICAgICogQWx0aG91Z2ggaXQncyBhIGZhbHNlIGFsYXJtIGFsd2F5cyBhc3N1bWUgYXQgbGVhc3Qgb25lIGNoaWxkIHRvIAorICAgICAgICAgKiB3aGljaCBuZWVkcyBhdCBsZWFzdCA0IGJ5dGVzLgorICAgICAgICAgKiBBbHRob3VnaCBpdCdzIGEgZmFsc2UgYWxhcm0gYWx3YXlzIGFzc3VtZSBhdCBsZWFzdCBvbmUgY2hpbGQgdG8KICAgICAgICAgICogYmUgc2FmZS4KICAgICAgICAgICovCiAgICAgICAgIHNpemUgPSBzaXplID8gc2l6ZSA6IDE7CiAgICAgICAgIGlmIChzZWxmLT5leHRyYS0+Y2hpbGRyZW4gIT0gc2VsZi0+ZXh0cmEtPl9jaGlsZHJlbikgewogICAgICAgICAgICAgLyogQ292ZXJpdHkgQ0lEICMxODIgc2l6ZV9lcnJvcjogQWxsb2NhdGluZyAxIGJ5dGVzIHRvIHBvaW50ZXIKLSAgICAgICAgICAgICAqICJjaGlsZHJlbiIsIHdoaWNoIG5lZWRzIGF0IGxlYXN0IDQgYnl0ZXMuIEFsdGhvdWdoIGl0J3MgYSAKKyAgICAgICAgICAgICAqICJjaGlsZHJlbiIsIHdoaWNoIG5lZWRzIGF0IGxlYXN0IDQgYnl0ZXMuIEFsdGhvdWdoIGl0J3MgYQogICAgICAgICAgICAgICogZmFsc2UgYWxhcm0gYWx3YXlzIGFzc3VtZSBhdCBsZWFzdCBvbmUgY2hpbGQgdG8gYmUgc2FmZS4KICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgY2hpbGRyZW4gPSBQeU9iamVjdF9SZWFsbG9jKHNlbGYtPmV4dHJhLT5jaGlsZHJlbiwKQEAgLTQ2NCwzNiArNTcyLDcgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0KgotZWxlbWVudChQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MsIFB5T2JqZWN0KiBrdykKLXsKLSAgICBQeU9iamVjdCogZWxlbTsKLQotICAgIFB5T2JqZWN0KiB0YWc7Ci0gICAgUHlPYmplY3QqIGF0dHJpYiA9IE5VTEw7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPfE8hOkVsZW1lbnQiLCAmdGFnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlEaWN0X1R5cGUsICZhdHRyaWIpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmIChhdHRyaWIgfHwga3cpIHsKLSAgICAgICAgYXR0cmliID0gKGF0dHJpYikgPyBQeURpY3RfQ29weShhdHRyaWIpIDogUHlEaWN0X05ldygpOwotICAgICAgICBpZiAoIWF0dHJpYikKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBpZiAoa3cpCi0gICAgICAgICAgICBQeURpY3RfVXBkYXRlKGF0dHJpYiwga3cpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICAgICAgYXR0cmliID0gUHlfTm9uZTsKLSAgICB9Ci0KLSAgICBlbGVtID0gZWxlbWVudF9uZXcodGFnLCBhdHRyaWIpOwotCi0gICAgUHlfREVDUkVGKGF0dHJpYik7Ci0KLSAgICByZXR1cm4gZWxlbTsKLX0KLQotc3RhdGljIFB5T2JqZWN0Kgotc3ViZWxlbWVudChQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MsIFB5T2JqZWN0KiBrdykKK3N1YmVsZW1lbnQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKICAgICBQeU9iamVjdCogZWxlbTsKIApAQCAtNTA1LDE4ICs1ODQsMjggQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgJlB5RGljdF9UeXBlLCAmYXR0cmliKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAoYXR0cmliIHx8IGt3KSB7Ci0gICAgICAgIGF0dHJpYiA9IChhdHRyaWIpID8gUHlEaWN0X0NvcHkoYXR0cmliKSA6IFB5RGljdF9OZXcoKTsKKyAgICBpZiAoYXR0cmliKSB7CisgICAgICAgIC8qIGF0dHJpYiBwYXNzZWQgYXMgcG9zaXRpb25hbCBhcmcgKi8KKyAgICAgICAgYXR0cmliID0gUHlEaWN0X0NvcHkoYXR0cmliKTsKICAgICAgICAgaWYgKCFhdHRyaWIpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgaWYgKGt3KQotICAgICAgICAgICAgUHlEaWN0X1VwZGF0ZShhdHRyaWIsIGt3KTsKKyAgICAgICAgaWYgKGt3ZHMpIHsKKyAgICAgICAgICAgIGlmIChQeURpY3RfVXBkYXRlKGF0dHJpYiwga3dkcykgPCAwKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgaWYgKGt3ZHMpIHsKKyAgICAgICAgLyogaGF2ZSBrZXl3b3JkIGFyZ3MgKi8KKyAgICAgICAgYXR0cmliID0gZ2V0X2F0dHJpYl9mcm9tX2tleXdvcmRzKGt3ZHMpOworICAgICAgICBpZiAoIWF0dHJpYikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0gZWxzZSB7CisgICAgICAgIC8qIG5vIGF0dHJpYiBhcmcsIG5vIGt3ZHMsIHNvIG5vIGF0dHJpYnV0ZSAqLwogICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgICAgIGF0dHJpYiA9IFB5X05vbmU7CiAgICAgfQogCi0gICAgZWxlbSA9IGVsZW1lbnRfbmV3KHRhZywgYXR0cmliKTsKKyAgICBlbGVtID0gY3JlYXRlX25ld19lbGVtZW50KHRhZywgYXR0cmliKTsKIAogICAgIFB5X0RFQ1JFRihhdHRyaWIpOwogCkBAIC01MjgsMjAgKzYxNyw2NSBAQAogICAgIHJldHVybiBlbGVtOwogfQogCitzdGF0aWMgaW50CitlbGVtZW50X2djX3RyYXZlcnNlKEVsZW1lbnRPYmplY3QgKnNlbGYsIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQoreworICAgIFB5X1ZJU0lUKHNlbGYtPnRhZyk7CisgICAgUHlfVklTSVQoSk9JTl9PQkooc2VsZi0+dGV4dCkpOworICAgIFB5X1ZJU0lUKEpPSU5fT0JKKHNlbGYtPnRhaWwpKTsKKworICAgIGlmIChzZWxmLT5leHRyYSkgeworICAgICAgICBpbnQgaTsKKyAgICAgICAgUHlfVklTSVQoc2VsZi0+ZXh0cmEtPmF0dHJpYik7CisKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHNlbGYtPmV4dHJhLT5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIFB5X1ZJU0lUKHNlbGYtPmV4dHJhLT5jaGlsZHJlbltpXSk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CitlbGVtZW50X2djX2NsZWFyKEVsZW1lbnRPYmplY3QgKnNlbGYpCit7CisgICAgUHlfQ0xFQVIoc2VsZi0+dGFnKTsKKworICAgIC8qIFRoZSBmb2xsb3dpbmcgaXMgbGlrZSBQeV9DTEVBUiBmb3Igc2VsZi0+dGV4dCBhbmQgc2VsZi0+dGFpbCwgYnV0CisgICAgICogd3JpdHRlbiBleHBsaWNpdGlseSBiZWNhdXNlIHRoZSByZWFsIHBvaW50ZXJzIGhpZGUgYmVoaW5kIGFjY2VzcworICAgICAqIG1hY3Jvcy4KKyAgICAqLworICAgIGlmIChzZWxmLT50ZXh0KSB7CisgICAgICAgIFB5T2JqZWN0ICp0bXAgPSBKT0lOX09CSihzZWxmLT50ZXh0KTsKKyAgICAgICAgc2VsZi0+dGV4dCA9IE5VTEw7CisgICAgICAgIFB5X0RFQ1JFRih0bXApOworICAgIH0KKworICAgIGlmIChzZWxmLT50YWlsKSB7CisgICAgICAgIFB5T2JqZWN0ICp0bXAgPSBKT0lOX09CSihzZWxmLT50YWlsKTsKKyAgICAgICAgc2VsZi0+dGFpbCA9IE5VTEw7CisgICAgICAgIFB5X0RFQ1JFRih0bXApOworICAgIH0KKworICAgIC8qIEFmdGVyIGRyb3BwaW5nIGFsbCByZWZlcmVuY2VzIGZyb20gZXh0cmEsIGl0J3Mgbm8gbG9uZ2VyIHZhbGlkIGFueXdheSwKKyAgICAgKiBzbyBmdWxseSBkZWFsbG9jYXRlIGl0LgorICAgICovCisgICAgZGVhbGxvY19leHRyYShzZWxmKTsKKyAgICByZXR1cm4gMDsKK30KKwogc3RhdGljIHZvaWQKIGVsZW1lbnRfZGVhbGxvYyhFbGVtZW50T2JqZWN0KiBzZWxmKQogewotICAgIGlmIChzZWxmLT5leHRyYSkKLSAgICAgICAgZWxlbWVudF9kZWFsbG9jX2V4dHJhKHNlbGYpOworICAgIFB5T2JqZWN0X0dDX1VuVHJhY2soc2VsZik7CiAKLSAgICAvKiBkaXNjYXJkIGF0dHJpYnV0ZXMgKi8KLSAgICBQeV9ERUNSRUYoc2VsZi0+dGFnKTsKLSAgICBQeV9ERUNSRUYoSk9JTl9PQkooc2VsZi0+dGV4dCkpOwotICAgIFB5X0RFQ1JFRihKT0lOX09CSihzZWxmLT50YWlsKSk7CisgICAgaWYgKHNlbGYtPndlYWtyZWZsaXN0ICE9IE5VTEwpCisgICAgICAgIFB5T2JqZWN0X0NsZWFyV2Vha1JlZnMoKFB5T2JqZWN0ICopIHNlbGYpOworCisgICAgLyogZWxlbWVudF9nY19jbGVhciBjbGVhcnMgYWxsIHJlZmVyZW5jZXMgYW5kIGRlYWxsb2NhdGVzIGV4dHJhCisgICAgKi8KKyAgICBlbGVtZW50X2djX2NsZWFyKHNlbGYpOwogCiAgICAgUkVMRUFTRShzaXplb2YoRWxlbWVudE9iamVjdCksICJkZXN0cm95IGVsZW1lbnQiKTsKLQotICAgIFB5T2JqZWN0X0RlbChzZWxmKTsKKyAgICBQeV9UWVBFKHNlbGYpLT50cF9mcmVlKChQeU9iamVjdCAqKXNlbGYpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtNTYxLDE1ICs2OTUsMTIgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0KgotZWxlbWVudF9jbGVhcihFbGVtZW50T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKK2VsZW1lbnRfY2xlYXJtZXRob2QoRWxlbWVudE9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCiB7CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICI6Y2xlYXIiKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAoc2VsZi0+ZXh0cmEpIHsKLSAgICAgICAgZWxlbWVudF9kZWFsbG9jX2V4dHJhKHNlbGYpOwotICAgICAgICBzZWxmLT5leHRyYSA9IE5VTEw7Ci0gICAgfQorICAgIGRlYWxsb2NfZXh0cmEoc2VsZik7CiAKICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgUHlfREVDUkVGKEpPSU5fT0JKKHNlbGYtPnRleHQpKTsKQEAgLTU5MSw3ICs3MjIsNyBAQAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiOl9fY29weV9fIikpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgZWxlbWVudCA9IChFbGVtZW50T2JqZWN0KikgZWxlbWVudF9uZXcoCisgICAgZWxlbWVudCA9IChFbGVtZW50T2JqZWN0KikgY3JlYXRlX25ld19lbGVtZW50KAogICAgICAgICBzZWxmLT50YWcsIChzZWxmLT5leHRyYSkgPyBzZWxmLT5leHRyYS0+YXR0cmliIDogUHlfTm9uZQogICAgICAgICApOwogICAgIGlmICghZWxlbWVudCkKQEAgLTYwNiw3ICs3MzcsNyBAQAogICAgIFB5X0lOQ1JFRihKT0lOX09CSihlbGVtZW50LT50YWlsKSk7CiAKICAgICBpZiAoc2VsZi0+ZXh0cmEpIHsKLSAgICAgICAgCisKICAgICAgICAgaWYgKGVsZW1lbnRfcmVzaXplKGVsZW1lbnQsIHNlbGYtPmV4dHJhLT5sZW5ndGgpIDwgMCkgewogICAgICAgICAgICAgUHlfREVDUkVGKGVsZW1lbnQpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC02MTgsNyArNzQ5LDcgQEAKICAgICAgICAgfQogCiAgICAgICAgIGVsZW1lbnQtPmV4dHJhLT5sZW5ndGggPSBzZWxmLT5leHRyYS0+bGVuZ3RoOwotICAgICAgICAKKwogICAgIH0KIAogICAgIHJldHVybiAoUHlPYmplY3QqKSBlbGVtZW50OwpAQCAtNjU0LDE0ICs3ODUsMTQgQEAKICAgICAgICAgYXR0cmliID0gUHlfTm9uZTsKICAgICB9CiAKLSAgICBlbGVtZW50ID0gKEVsZW1lbnRPYmplY3QqKSBlbGVtZW50X25ldyh0YWcsIGF0dHJpYik7CisgICAgZWxlbWVudCA9IChFbGVtZW50T2JqZWN0KikgY3JlYXRlX25ld19lbGVtZW50KHRhZywgYXR0cmliKTsKIAogICAgIFB5X0RFQ1JFRih0YWcpOwogICAgIFB5X0RFQ1JFRihhdHRyaWIpOwogCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAKKwogICAgIHRleHQgPSBkZWVwY29weShKT0lOX09CSihzZWxmLT50ZXh0KSwgbWVtbyk7CiAgICAgaWYgKCF0ZXh0KQogICAgICAgICBnb3RvIGVycm9yOwpAQCAtNjc1LDcgKzgwNiw3IEBACiAgICAgZWxlbWVudC0+dGFpbCA9IEpPSU5fU0VUKHRhaWwsIEpPSU5fR0VUKHNlbGYtPnRhaWwpKTsKIAogICAgIGlmIChzZWxmLT5leHRyYSkgewotICAgICAgICAKKwogICAgICAgICBpZiAoZWxlbWVudF9yZXNpemUoZWxlbWVudCwgc2VsZi0+ZXh0cmEtPmxlbmd0aCkgPCAwKQogICAgICAgICAgICAgZ290byBlcnJvcjsKIApAQCAtNjg5LDcgKzgyMCw3IEBACiAgICAgICAgIH0KIAogICAgICAgICBlbGVtZW50LT5leHRyYS0+bGVuZ3RoID0gc2VsZi0+ZXh0cmEtPmxlbmd0aDsKLSAgICAgICAgCisKICAgICB9CiAKICAgICAvKiBhZGQgb2JqZWN0IHRvIG1lbW8gZGljdGlvbmFyeSAoc28gZGVlcGNvcHkgd29uJ3QgdmlzaXQgaXQgYWdhaW4pICovCkBAIC03MTEsNiArODQyLDE5IEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCoKK2VsZW1lbnRfc2l6ZW9mKFB5T2JqZWN0KiBfc2VsZiwgUHlPYmplY3QqIGFyZ3MpCit7CisgICAgRWxlbWVudE9iamVjdCAqc2VsZiA9IChFbGVtZW50T2JqZWN0Kilfc2VsZjsKKyAgICBQeV9zc2l6ZV90IHJlc3VsdCA9IHNpemVvZihFbGVtZW50T2JqZWN0KTsKKyAgICBpZiAoc2VsZi0+ZXh0cmEpIHsKKyAgICAgICAgcmVzdWx0ICs9IHNpemVvZihFbGVtZW50T2JqZWN0RXh0cmEpOworICAgICAgICBpZiAoc2VsZi0+ZXh0cmEtPmNoaWxkcmVuICE9IHNlbGYtPmV4dHJhLT5fY2hpbGRyZW4pCisgICAgICAgICAgICByZXN1bHQgKz0gc2l6ZW9mKFB5T2JqZWN0KikgKiBzZWxmLT5leHRyYS0+YWxsb2NhdGVkOworICAgIH0KKyAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KHJlc3VsdCk7Cit9CisKIExPQ0FMKGludCkKIGNoZWNrcGF0aChQeU9iamVjdCogdGFnKQogewpAQCAtNzIzLDEzICs4NjcsMTYgQEAKICAgICAoY2ggPT0gJy8nIHx8IGNoID09ICcqJyB8fCBjaCA9PSAnWycgfHwgY2ggPT0gJ0AnIHx8IGNoID09ICcuJykKIAogICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sodGFnKSkgewotICAgICAgICBQeV9VTklDT0RFICpwID0gUHlVbmljb2RlX0FTX1VOSUNPREUodGFnKTsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IFB5VW5pY29kZV9HRVRfU0laRSh0YWcpOyBpKyspIHsKLSAgICAgICAgICAgIGlmIChwW2ldID09ICd7JykKKyAgICAgICAgY29uc3QgUHlfc3NpemVfdCBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh0YWcpOworICAgICAgICB2b2lkICpkYXRhID0gUHlVbmljb2RlX0RBVEEodGFnKTsKKyAgICAgICAgdW5zaWduZWQgaW50IGtpbmQgPSBQeVVuaWNvZGVfS0lORCh0YWcpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKKyAgICAgICAgICAgIGlmIChjaCA9PSAneycpCiAgICAgICAgICAgICAgICAgY2hlY2sgPSAwOwotICAgICAgICAgICAgZWxzZSBpZiAocFtpXSA9PSAnfScpCisgICAgICAgICAgICBlbHNlIGlmIChjaCA9PSAnfScpCiAgICAgICAgICAgICAgICAgY2hlY2sgPSAxOwotICAgICAgICAgICAgZWxzZSBpZiAoY2hlY2sgJiYgUEFUSENIQVIocFtpXSkpCisgICAgICAgICAgICBlbHNlIGlmIChjaGVjayAmJiBQQVRIQ0hBUihjaCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIDA7CkBAIC03NzIsNiArOTE5LDE1IEBACiAgICAgc2VxbGVuID0gUHlTZXF1ZW5jZV9TaXplKHNlcSk7CiAgICAgZm9yIChpID0gMDsgaSA8IHNlcWxlbjsgaSsrKSB7CiAgICAgICAgIFB5T2JqZWN0KiBlbGVtZW50ID0gUHlTZXF1ZW5jZV9GYXN0X0dFVF9JVEVNKHNlcSwgaSk7CisgICAgICAgIGlmICghUHlPYmplY3RfSXNJbnN0YW5jZShlbGVtZW50LCAoUHlPYmplY3QgKikmRWxlbWVudF9UeXBlKSkgeworICAgICAgICAgICAgUHlfREVDUkVGKHNlcSk7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoCisgICAgICAgICAgICAgICAgUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICJleHBlY3RlZCBhbiBFbGVtZW50LCBub3QgXCIlLjIwMHNcIiIsCisgICAgICAgICAgICAgICAgUHlfVFlQRShlbGVtZW50KS0+dHBfbmFtZSk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorCiAgICAgICAgIGlmIChlbGVtZW50X2FkZF9zdWJlbGVtZW50KHNlbGYsIGVsZW1lbnQpIDwgMCkgewogICAgICAgICAgICAgUHlfREVDUkVGKHNlcSk7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTc4NCwyMyArOTQwLDI3IEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCoKLWVsZW1lbnRfZmluZChFbGVtZW50T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKK2VsZW1lbnRfZmluZChFbGVtZW50T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7CiAgICAgaW50IGk7Ci0KICAgICBQeU9iamVjdCogdGFnOwogICAgIFB5T2JqZWN0KiBuYW1lc3BhY2VzID0gUHlfTm9uZTsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk98TzpmaW5kIiwgJnRhZywgJm5hbWVzcGFjZXMpKQorICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsicGF0aCIsICJuYW1lc3BhY2VzIiwgMH07CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiT3xPOmZpbmQiLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRhZywgJm5hbWVzcGFjZXMpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmIChjaGVja3BhdGgodGFnKSB8fCBuYW1lc3BhY2VzICE9IFB5X05vbmUpCi0gICAgICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKAotICAgICAgICAgICAgZWxlbWVudHBhdGhfb2JqLCAiZmluZCIsICJPT08iLCBzZWxmLCB0YWcsIG5hbWVzcGFjZXMKKyAgICBpZiAoY2hlY2twYXRoKHRhZykgfHwgbmFtZXNwYWNlcyAhPSBQeV9Ob25lKSB7CisgICAgICAgIF9QeV9JREVOVElGSUVSKGZpbmQpOworICAgICAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgKKyAgICAgICAgICAgIGVsZW1lbnRwYXRoX29iaiwgJlB5SWRfZmluZCwgIk9PTyIsIHNlbGYsIHRhZywgbmFtZXNwYWNlcwogICAgICAgICAgICAgKTsKKyAgICB9CiAKICAgICBpZiAoIXNlbGYtPmV4dHJhKQogICAgICAgICBQeV9SRVRVUk5fTk9ORTsKLSAgICAgICAgCisKICAgICBmb3IgKGkgPSAwOyBpIDwgc2VsZi0+ZXh0cmEtPmxlbmd0aDsgaSsrKSB7CiAgICAgICAgIFB5T2JqZWN0KiBpdGVtID0gc2VsZi0+ZXh0cmEtPmNoaWxkcmVuW2ldOwogICAgICAgICBpZiAoRWxlbWVudF9DaGVja0V4YWN0KGl0ZW0pICYmCkBAIC04MTQsMTkgKzk3NCwyMiBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QqCi1lbGVtZW50X2ZpbmR0ZXh0KEVsZW1lbnRPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQorZWxlbWVudF9maW5kdGV4dChFbGVtZW50T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7CiAgICAgaW50IGk7Ci0KICAgICBQeU9iamVjdCogdGFnOwogICAgIFB5T2JqZWN0KiBkZWZhdWx0X3ZhbHVlID0gUHlfTm9uZTsKICAgICBQeU9iamVjdCogbmFtZXNwYWNlcyA9IFB5X05vbmU7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPfE9POmZpbmR0ZXh0IiwgJnRhZywgJmRlZmF1bHRfdmFsdWUsICZuYW1lc3BhY2VzKSkKKyAgICBfUHlfSURFTlRJRklFUihmaW5kdGV4dCk7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJwYXRoIiwgImRlZmF1bHQiLCAibmFtZXNwYWNlcyIsIDB9OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98T086ZmluZHRleHQiLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRhZywgJmRlZmF1bHRfdmFsdWUsICZuYW1lc3BhY2VzKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBpZiAoY2hlY2twYXRoKHRhZykgfHwgbmFtZXNwYWNlcyAhPSBQeV9Ob25lKQotICAgICAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZCgKLSAgICAgICAgICAgIGVsZW1lbnRwYXRoX29iaiwgImZpbmR0ZXh0IiwgIk9PT08iLCBzZWxmLCB0YWcsIGRlZmF1bHRfdmFsdWUsIG5hbWVzcGFjZXMKKyAgICAgICAgcmV0dXJuIF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoCisgICAgICAgICAgICBlbGVtZW50cGF0aF9vYmosICZQeUlkX2ZpbmR0ZXh0LCAiT09PTyIsIHNlbGYsIHRhZywgZGVmYXVsdF92YWx1ZSwgbmFtZXNwYWNlcwogICAgICAgICAgICAgKTsKIAogICAgIGlmICghc2VsZi0+ZXh0cmEpIHsKQEAgLTg1MSwyMCArMTAxNCwyNCBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QqCi1lbGVtZW50X2ZpbmRhbGwoRWxlbWVudE9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCitlbGVtZW50X2ZpbmRhbGwoRWxlbWVudE9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewogICAgIGludCBpOwogICAgIFB5T2JqZWN0KiBvdXQ7Ci0KICAgICBQeU9iamVjdCogdGFnOwogICAgIFB5T2JqZWN0KiBuYW1lc3BhY2VzID0gUHlfTm9uZTsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk98TzpmaW5kYWxsIiwgJnRhZywgJm5hbWVzcGFjZXMpKQorICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsicGF0aCIsICJuYW1lc3BhY2VzIiwgMH07CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiT3xPOmZpbmRhbGwiLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRhZywgJm5hbWVzcGFjZXMpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmIChjaGVja3BhdGgodGFnKSB8fCBuYW1lc3BhY2VzICE9IFB5X05vbmUpCi0gICAgICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKAotICAgICAgICAgICAgZWxlbWVudHBhdGhfb2JqLCAiZmluZGFsbCIsICJPT08iLCBzZWxmLCB0YWcsIG5hbWVzcGFjZXMKKyAgICBpZiAoY2hlY2twYXRoKHRhZykgfHwgbmFtZXNwYWNlcyAhPSBQeV9Ob25lKSB7CisgICAgICAgIF9QeV9JREVOVElGSUVSKGZpbmRhbGwpOworICAgICAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgKKyAgICAgICAgICAgIGVsZW1lbnRwYXRoX29iaiwgJlB5SWRfZmluZGFsbCwgIk9PTyIsIHNlbGYsIHRhZywgbmFtZXNwYWNlcwogICAgICAgICAgICAgKTsKKyAgICB9CiAKICAgICBvdXQgPSBQeUxpc3RfTmV3KDApOwogICAgIGlmICghb3V0KQpAQCAtODg4LDE1ICsxMDU1LDE5IEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCoKLWVsZW1lbnRfaXRlcmZpbmQoRWxlbWVudE9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCitlbGVtZW50X2l0ZXJmaW5kKEVsZW1lbnRPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKICAgICBQeU9iamVjdCogdGFnOwogICAgIFB5T2JqZWN0KiBuYW1lc3BhY2VzID0gUHlfTm9uZTsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk98TzppdGVyZmluZCIsICZ0YWcsICZuYW1lc3BhY2VzKSkKKyAgICBfUHlfSURFTlRJRklFUihpdGVyZmluZCk7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJwYXRoIiwgIm5hbWVzcGFjZXMiLCAwfTsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJPfE86aXRlcmZpbmQiLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRhZywgJm5hbWVzcGFjZXMpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKAotICAgICAgICBlbGVtZW50cGF0aF9vYmosICJpdGVyZmluZCIsICJPT08iLCBzZWxmLCB0YWcsIG5hbWVzcGFjZXMKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgKKyAgICAgICAgZWxlbWVudHBhdGhfb2JqLCAmUHlJZF9pdGVyZmluZCwgIk9PTyIsIHNlbGYsIHRhZywgbmFtZXNwYWNlcwogICAgICAgICApOwogfQogCkBAIC05NDksNjcgKzExMjAsMzIgQEAKICAgICByZXR1cm4gbGlzdDsKIH0KIAotc3RhdGljIFB5T2JqZWN0KgotZWxlbWVudF9pdGVyKEVsZW1lbnRPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQorCitzdGF0aWMgUHlPYmplY3QgKgorY3JlYXRlX2VsZW1lbnRpdGVyKEVsZW1lbnRPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp0YWcsIGludCBnZXR0ZXh0KTsKKworCitzdGF0aWMgUHlPYmplY3QgKgorZWxlbWVudF9pdGVyKEVsZW1lbnRPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIFB5T2JqZWN0KiByZXN1bHQ7Ci0gICAgCiAgICAgUHlPYmplY3QqIHRhZyA9IFB5X05vbmU7CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ8TzppdGVyIiwgJnRhZykpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgaWYgKCFlbGVtZW50dHJlZV9pdGVyX29iaikgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoCi0gICAgICAgICAgICBQeUV4Y19SdW50aW1lRXJyb3IsCi0gICAgICAgICAgICAiaXRlciBoZWxwZXIgbm90IGZvdW5kIgotICAgICAgICAgICAgKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgYXJncyA9IFB5VHVwbGVfTmV3KDIpOwotICAgIGlmICghYXJncykKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBQeV9JTkNSRUYoc2VsZik7IFB5VHVwbGVfU0VUX0lURU0oYXJncywgMCwgKFB5T2JqZWN0Kikgc2VsZik7Ci0gICAgUHlfSU5DUkVGKHRhZyk7ICBQeVR1cGxlX1NFVF9JVEVNKGFyZ3MsIDEsIChQeU9iamVjdCopIHRhZyk7Ci0KLSAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsT2JqZWN0KGVsZW1lbnR0cmVlX2l0ZXJfb2JqLCBhcmdzKTsKLQotICAgIFB5X0RFQ1JFRihhcmdzKTsKLQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGNyZWF0ZV9lbGVtZW50aXRlcihzZWxmLCB0YWcsIDApOwogfQogCiAKIHN0YXRpYyBQeU9iamVjdCoKIGVsZW1lbnRfaXRlcnRleHQoRWxlbWVudE9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCiB7Ci0gICAgUHlPYmplY3QqIHJlc3VsdDsKLSAgICAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIjppdGVydGV4dCIpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICghZWxlbWVudHRyZWVfaXRlcnRleHRfb2JqKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZygKLSAgICAgICAgICAgIFB5RXhjX1J1bnRpbWVFcnJvciwKLSAgICAgICAgICAgICJpdGVydGV4dCBoZWxwZXIgbm90IGZvdW5kIgotICAgICAgICAgICAgKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgYXJncyA9IFB5VHVwbGVfTmV3KDEpOwotICAgIGlmICghYXJncykKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBQeV9JTkNSRUYoc2VsZik7IFB5VHVwbGVfU0VUX0lURU0oYXJncywgMCwgKFB5T2JqZWN0Kikgc2VsZik7Ci0KLSAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsT2JqZWN0KGVsZW1lbnR0cmVlX2l0ZXJ0ZXh0X29iaiwgYXJncyk7Ci0KLSAgICBQeV9ERUNSRUYoYXJncyk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBjcmVhdGVfZWxlbWVudGl0ZXIoc2VsZiwgUHlfTm9uZSwgMSk7CiB9CiAKKwogc3RhdGljIFB5T2JqZWN0KgogZWxlbWVudF9nZXRpdGVtKFB5T2JqZWN0KiBzZWxmXywgUHlfc3NpemVfdCBpbmRleCkKIHsKQEAgLTEwMzksNyArMTE3NSw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgaWYgKCFzZWxmLT5leHRyYSkKLSAgICAgICAgZWxlbWVudF9uZXdfZXh0cmEoc2VsZiwgTlVMTCk7CisgICAgICAgIGNyZWF0ZV9leHRyYShzZWxmLCBOVUxMKTsKIAogICAgIGlmIChpbmRleCA8IDApIHsKICAgICAgICAgaW5kZXggKz0gc2VsZi0+ZXh0cmEtPmxlbmd0aDsKQEAgLTExMTAsNyArMTI0Niw3IEBACiAgICAgaWYgKCFhdHRyaWIpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgZWxlbSA9IGVsZW1lbnRfbmV3KHRhZywgYXR0cmliKTsKKyAgICBlbGVtID0gY3JlYXRlX25ld19lbGVtZW50KHRhZywgYXR0cmliKTsKIAogICAgIFB5X0RFQ1JFRihhdHRyaWIpOwogCkBAIC0xMTE4LDMxICsxMjU0LDYgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0KgotZWxlbWVudF9yZWR1Y2UoRWxlbWVudE9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCi17Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICI6X19yZWR1Y2VfXyIpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIC8qIEhhY2sgYWxlcnQ6IFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gd29yayBhcm91bmQgYSBfX2NvcHlfXwotICAgICAgIHByb2JsZW0gb24gY2VydGFpbiAyLjMgYW5kIDIuNCB2ZXJzaW9ucy4gIFRvIHNhdmUgdGltZSBhbmQKLSAgICAgICBzaW1wbGlmeSB0aGUgY29kZSwgd2UgY3JlYXRlIHRoZSBjb3B5IGluIGhlcmUsIGFuZCB1c2UgYSBkdW1teQotICAgICAgIGNvcHllbGVtZW50IGhlbHBlciB0byB0cmljayB0aGUgY29weSBtb2R1bGUgaW50byBkb2luZyB0aGUKLSAgICAgICByaWdodCB0aGluZy4gKi8KLQotICAgIGlmICghZWxlbWVudHRyZWVfY29weWVsZW1lbnRfb2JqKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZygKLSAgICAgICAgICAgIFB5RXhjX1J1bnRpbWVFcnJvciwKLSAgICAgICAgICAgICJjb3B5ZWxlbWVudCBoZWxwZXIgbm90IGZvdW5kIgotICAgICAgICAgICAgKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoCi0gICAgICAgICJPKE4pIiwgZWxlbWVudHRyZWVfY29weWVsZW1lbnRfb2JqLCBlbGVtZW50X2NvcHkoc2VsZiwgYXJncykKLSAgICAgICAgKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0KgogZWxlbWVudF9yZW1vdmUoRWxlbWVudE9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCiB7CiAgICAgaW50IGk7CkBAIC0xMTg5LDcgKzEzMDAsMTAgQEAKIHN0YXRpYyBQeU9iamVjdCoKIGVsZW1lbnRfcmVwcihFbGVtZW50T2JqZWN0KiBzZWxmKQogewotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiPEVsZW1lbnQgJVIgYXQgJXA+Iiwgc2VsZi0+dGFnLCBzZWxmKTsKKyAgICBpZiAoc2VsZi0+dGFnKQorICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjxFbGVtZW50ICVSIGF0ICVwPiIsIHNlbGYtPnRhZywgc2VsZik7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjxFbGVtZW50IGF0ICVwPiIsIHNlbGYpOwogfQogCiBzdGF0aWMgUHlPYmplY3QqCkBAIC0xMjAzLDcgKzEzMTcsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGlmICghc2VsZi0+ZXh0cmEpCi0gICAgICAgIGVsZW1lbnRfbmV3X2V4dHJhKHNlbGYsIE5VTEwpOworICAgICAgICBjcmVhdGVfZXh0cmEoc2VsZiwgTlVMTCk7CiAKICAgICBhdHRyaWIgPSBlbGVtZW50X2dldF9hdHRyaWIoc2VsZik7CiAgICAgaWYgKCFhdHRyaWIpCkBAIC0xMjUwLDEzICsxMzY0LDggQEAKIHsKICAgICBFbGVtZW50T2JqZWN0KiBzZWxmID0gKEVsZW1lbnRPYmplY3QqKSBzZWxmXzsKIAotI2lmIChQWV9WRVJTSU9OX0hFWCA8IDB4MDIwNTAwMDApCi0gICAgaWYgKFB5SW50X0NoZWNrKGl0ZW0pIHx8IFB5TG9uZ19DaGVjayhpdGVtKSkgewotICAgICAgICBsb25nIGkgPSBQeUludF9Bc0xvbmcoaXRlbSk7Ci0jZWxzZQogICAgIGlmIChQeUluZGV4X0NoZWNrKGl0ZW0pKSB7CiAgICAgICAgIFB5X3NzaXplX3QgaSA9IFB5TnVtYmVyX0FzU3NpemVfdChpdGVtLCBQeUV4Y19JbmRleEVycm9yKTsKLSNlbmRpZgogCiAgICAgICAgIGlmIChpID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpIHsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTMwNywxMyArMTQxNiw4IEBACiB7CiAgICAgRWxlbWVudE9iamVjdCogc2VsZiA9IChFbGVtZW50T2JqZWN0Kikgc2VsZl87CiAKLSNpZiAoUFlfVkVSU0lPTl9IRVggPCAweDAyMDUwMDAwKQotICAgIGlmIChQeUludF9DaGVjayhpdGVtKSB8fCBQeUxvbmdfQ2hlY2soaXRlbSkpIHsKLSAgICAgICAgbG9uZyBpID0gUHlJbnRfQXNMb25nKGl0ZW0pOwotI2Vsc2UKICAgICBpZiAoUHlJbmRleF9DaGVjayhpdGVtKSkgewogICAgICAgICBQeV9zc2l6ZV90IGkgPSBQeU51bWJlcl9Bc1NzaXplX3QoaXRlbSwgUHlFeGNfSW5kZXhFcnJvcik7Ci0jZW5kaWYKIAogICAgICAgICBpZiAoaSA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CiAgICAgICAgICAgICByZXR1cm4gLTE7CkBAIC0xMzI5LDcgKzE0MzMsNyBAQAogICAgICAgICBQeU9iamVjdCogc2VxID0gTlVMTDsKIAogICAgICAgICBpZiAoIXNlbGYtPmV4dHJhKQotICAgICAgICAgICAgZWxlbWVudF9uZXdfZXh0cmEoc2VsZiwgTlVMTCk7CisgICAgICAgICAgICBjcmVhdGVfZXh0cmEoc2VsZiwgTlVMTCk7CiAKICAgICAgICAgaWYgKFB5U2xpY2VfR2V0SW5kaWNlc0V4KGl0ZW0sCiAgICAgICAgICAgICAgICAgc2VsZi0+ZXh0cmEtPmxlbmd0aCwKQEAgLTEzMzcsOSArMTQ0MSw3NCBAQAogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHZhbHVlID09IE5VTEwpCi0gICAgICAgICAgICBuZXdsZW4gPSAwOworICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICAgICAgLyogRGVsZXRlIHNsaWNlICovCisgICAgICAgICAgICBzaXplX3QgY3VyOworICAgICAgICAgICAgUHlfc3NpemVfdCBpOworCisgICAgICAgICAgICBpZiAoc2xpY2VsZW4gPD0gMCkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICAgICAgLyogU2luY2Ugd2UncmUgZGVsZXRpbmcsIHRoZSBkaXJlY3Rpb24gb2YgdGhlIHJhbmdlIGRvZXNuJ3QgbWF0dGVyLAorICAgICAgICAgICAgICogc28gZm9yIHNpbXBsaWNpdHkgbWFrZSBpdCBhbHdheXMgYXNjZW5kaW5nLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChzdGVwIDwgMCkgeworICAgICAgICAgICAgICAgIHN0b3AgPSBzdGFydCArIDE7CisgICAgICAgICAgICAgICAgc3RhcnQgPSBzdG9wICsgc3RlcCAqIChzbGljZWxlbiAtIDEpIC0gMTsKKyAgICAgICAgICAgICAgICBzdGVwID0gLXN0ZXA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGFzc2VydCgoc2l6ZV90KXNsaWNlbGVuIDw9IFBZX1NJWkVfTUFYIC8gc2l6ZW9mKFB5T2JqZWN0ICopKTsKKworICAgICAgICAgICAgLyogcmVjeWNsZSBpcyBhIGxpc3QgdGhhdCB3aWxsIGNvbnRhaW4gYWxsIHRoZSBjaGlsZHJlbgorICAgICAgICAgICAgICogc2NoZWR1bGVkIGZvciByZW1vdmFsLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICghKHJlY3ljbGUgPSBQeUxpc3RfTmV3KHNsaWNlbGVuKSkpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogVGhpcyBsb29wIHdhbGtzIG92ZXIgYWxsIHRoZSBjaGlsZHJlbiB0aGF0IGhhdmUgdG8gYmUgZGVsZXRlZCwKKyAgICAgICAgICAgICAqIHdpdGggY3VyIHBvaW50aW5nIGF0IHRoZW0uIG51bV9tb3ZlZCBpcyB0aGUgYW1vdW50IG9mIGNoaWxkcmVuCisgICAgICAgICAgICAgKiB1bnRpbCB0aGUgbmV4dCBkZWxldGVkIGNoaWxkIHRoYXQgaGF2ZSB0byBiZSAic2hpZnRlZCBkb3duIiB0bworICAgICAgICAgICAgICogb2NjdXB5IHRoZSBkZWxldGVkJ3MgcGxhY2VzLgorICAgICAgICAgICAgICogTm90ZSB0aGF0IGluIHRoZSBpdGggaXRlcmF0aW9uLCBzaGlmdGluZyBpcyBkb25lIGkraSBwbGFjZXMgZG93bgorICAgICAgICAgICAgICogYmVjYXVzZSBpIGNoaWxkcmVuIHdlcmUgYWxyZWFkeSByZW1vdmVkLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGZvciAoY3VyID0gc3RhcnQsIGkgPSAwOyBjdXIgPCAoc2l6ZV90KXN0b3A7IGN1ciArPSBzdGVwLCArK2kpIHsKKyAgICAgICAgICAgICAgICAvKiBDb21wdXRlIGhvdyBtYW55IGNoaWxkcmVuIGhhdmUgdG8gYmUgbW92ZWQsIGNsaXBwaW5nIGF0IHRoZQorICAgICAgICAgICAgICAgICAqIGxpc3QgZW5kLgorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBudW1fbW92ZWQgPSBzdGVwIC0gMTsKKyAgICAgICAgICAgICAgICBpZiAoY3VyICsgc3RlcCA+PSAoc2l6ZV90KXNlbGYtPmV4dHJhLT5sZW5ndGgpIHsKKyAgICAgICAgICAgICAgICAgICAgbnVtX21vdmVkID0gc2VsZi0+ZXh0cmEtPmxlbmd0aCAtIGN1ciAtIDE7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgUHlMaXN0X1NFVF9JVEVNKHJlY3ljbGUsIGksIHNlbGYtPmV4dHJhLT5jaGlsZHJlbltjdXJdKTsKKworICAgICAgICAgICAgICAgIG1lbW1vdmUoCisgICAgICAgICAgICAgICAgICAgIHNlbGYtPmV4dHJhLT5jaGlsZHJlbiArIGN1ciAtIGksCisgICAgICAgICAgICAgICAgICAgIHNlbGYtPmV4dHJhLT5jaGlsZHJlbiArIGN1ciArIDEsCisgICAgICAgICAgICAgICAgICAgIG51bV9tb3ZlZCAqIHNpemVvZihQeU9iamVjdCAqKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8qIExlZnRvdmVyICJ0YWlsIiBhZnRlciB0aGUgbGFzdCByZW1vdmVkIGNoaWxkICovCisgICAgICAgICAgICBjdXIgPSBzdGFydCArIChzaXplX3Qpc2xpY2VsZW4gKiBzdGVwOworICAgICAgICAgICAgaWYgKGN1ciA8IChzaXplX3Qpc2VsZi0+ZXh0cmEtPmxlbmd0aCkgeworICAgICAgICAgICAgICAgIG1lbW1vdmUoCisgICAgICAgICAgICAgICAgICAgIHNlbGYtPmV4dHJhLT5jaGlsZHJlbiArIGN1ciAtIHNsaWNlbGVuLAorICAgICAgICAgICAgICAgICAgICBzZWxmLT5leHRyYS0+Y2hpbGRyZW4gKyBjdXIsCisgICAgICAgICAgICAgICAgICAgIChzZWxmLT5leHRyYS0+bGVuZ3RoIC0gY3VyKSAqIHNpemVvZihQeU9iamVjdCAqKSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlbGYtPmV4dHJhLT5sZW5ndGggLT0gc2xpY2VsZW47CisKKyAgICAgICAgICAgIC8qIERpc2NhcmQgdGhlIHJlY3ljbGUgbGlzdCB3aXRoIGFsbCB0aGUgZGVsZXRlZCBzdWItZWxlbWVudHMgKi8KKyAgICAgICAgICAgIFB5X1hERUNSRUYocmVjeWNsZSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQogICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8qIEEgbmV3IHNsaWNlIGlzIGFjdHVhbGx5IGJlaW5nIGFzc2lnbmVkICovCiAgICAgICAgICAgICBzZXEgPSBQeVNlcXVlbmNlX0Zhc3QodmFsdWUsICIiKTsKICAgICAgICAgICAgIGlmICghc2VxKSB7CiAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KApAQCAtMTM1NCwxOSArMTUyMywxMyBAQAogICAgICAgICBpZiAoc3RlcCAhPSAgMSAmJiBuZXdsZW4gIT0gc2xpY2VsZW4pCiAgICAgICAgIHsKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAotI2lmIChQWV9WRVJTSU9OX0hFWCA8IDB4MDIwNTAwMDApCi0gICAgICAgICAgICAgICAgImF0dGVtcHQgdG8gYXNzaWduIHNlcXVlbmNlIG9mIHNpemUgJWQgIgotICAgICAgICAgICAgICAgICJ0byBleHRlbmRlZCBzbGljZSBvZiBzaXplICVkIiwKLSNlbHNlCiAgICAgICAgICAgICAgICAgImF0dGVtcHQgdG8gYXNzaWduIHNlcXVlbmNlIG9mIHNpemUgJXpkICIKICAgICAgICAgICAgICAgICAidG8gZXh0ZW5kZWQgc2xpY2Ugb2Ygc2l6ZSAlemQiLAotI2VuZGlmCiAgICAgICAgICAgICAgICAgbmV3bGVuLCBzbGljZWxlbgogICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIH0KIAotCiAgICAgICAgIC8qIFJlc2l6ZSBiZWZvcmUgY3JlYXRpbmcgdGhlIHJlY3ljbGUgYmluLCB0byBwcmV2ZW50IHJlZmxlYWtzLiAqLwogICAgICAgICBpZiAobmV3bGVuID4gc2xpY2VsZW4pIHsKICAgICAgICAgICAgIGlmIChlbGVtZW50X3Jlc2l6ZShzZWxmLCBuZXdsZW4gLSBzbGljZWxlbikgPCAwKSB7CkBAIC0xNDMxLDE0ICsxNTk0LDE0IEBACiAKIHN0YXRpYyBQeU1ldGhvZERlZiBlbGVtZW50X21ldGhvZHNbXSA9IHsKIAotICAgIHsiY2xlYXIiLCAoUHlDRnVuY3Rpb24pIGVsZW1lbnRfY2xlYXIsIE1FVEhfVkFSQVJHU30sCisgICAgeyJjbGVhciIsIChQeUNGdW5jdGlvbikgZWxlbWVudF9jbGVhcm1ldGhvZCwgTUVUSF9WQVJBUkdTfSwKIAogICAgIHsiZ2V0IiwgKFB5Q0Z1bmN0aW9uKSBlbGVtZW50X2dldCwgTUVUSF9WQVJBUkdTfSwKICAgICB7InNldCIsIChQeUNGdW5jdGlvbikgZWxlbWVudF9zZXQsIE1FVEhfVkFSQVJHU30sCiAKLSAgICB7ImZpbmQiLCAoUHlDRnVuY3Rpb24pIGVsZW1lbnRfZmluZCwgTUVUSF9WQVJBUkdTfSwKLSAgICB7ImZpbmR0ZXh0IiwgKFB5Q0Z1bmN0aW9uKSBlbGVtZW50X2ZpbmR0ZXh0LCBNRVRIX1ZBUkFSR1N9LAotICAgIHsiZmluZGFsbCIsIChQeUNGdW5jdGlvbikgZWxlbWVudF9maW5kYWxsLCBNRVRIX1ZBUkFSR1N9LAorICAgIHsiZmluZCIsIChQeUNGdW5jdGlvbikgZWxlbWVudF9maW5kLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTfSwKKyAgICB7ImZpbmR0ZXh0IiwgKFB5Q0Z1bmN0aW9uKSBlbGVtZW50X2ZpbmR0ZXh0LCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTfSwKKyAgICB7ImZpbmRhbGwiLCAoUHlDRnVuY3Rpb24pIGVsZW1lbnRfZmluZGFsbCwgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEU30sCiAKICAgICB7ImFwcGVuZCIsIChQeUNGdW5jdGlvbikgZWxlbWVudF9hcHBlbmQsIE1FVEhfVkFSQVJHU30sCiAgICAgeyJleHRlbmQiLCAoUHlDRnVuY3Rpb24pIGVsZW1lbnRfZXh0ZW5kLCBNRVRIX1ZBUkFSR1N9LApAQCAtMTQ0Nyw3ICsxNjEwLDcgQEAKIAogICAgIHsiaXRlciIsIChQeUNGdW5jdGlvbikgZWxlbWVudF9pdGVyLCBNRVRIX1ZBUkFSR1N9LAogICAgIHsiaXRlcnRleHQiLCAoUHlDRnVuY3Rpb24pIGVsZW1lbnRfaXRlcnRleHQsIE1FVEhfVkFSQVJHU30sCi0gICAgeyJpdGVyZmluZCIsIChQeUNGdW5jdGlvbikgZWxlbWVudF9pdGVyZmluZCwgTUVUSF9WQVJBUkdTfSwKKyAgICB7Iml0ZXJmaW5kIiwgKFB5Q0Z1bmN0aW9uKSBlbGVtZW50X2l0ZXJmaW5kLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTfSwKIAogICAgIHsiZ2V0aXRlcmF0b3IiLCAoUHlDRnVuY3Rpb24pIGVsZW1lbnRfaXRlciwgTUVUSF9WQVJBUkdTfSwKICAgICB7ImdldGNoaWxkcmVuIiwgKFB5Q0Z1bmN0aW9uKSBlbGVtZW50X2dldGNoaWxkcmVuLCBNRVRIX1ZBUkFSR1N9LApAQCAtMTQ1OSwxOCArMTYyMiw3IEBACiAKICAgICB7Il9fY29weV9fIiwgKFB5Q0Z1bmN0aW9uKSBlbGVtZW50X2NvcHksIE1FVEhfVkFSQVJHU30sCiAgICAgeyJfX2RlZXBjb3B5X18iLCAoUHlDRnVuY3Rpb24pIGVsZW1lbnRfZGVlcGNvcHksIE1FVEhfVkFSQVJHU30sCi0KLSAgICAvKiBTb21lIDIuMyBhbmQgMi40IHZlcnNpb25zIGRvIG5vdCBoYW5kbGUgdGhlIF9fY29weV9fIG1ldGhvZCBvbgotICAgICAgIEMgb2JqZWN0cyBjb3JyZWN0bHksIHNvIHdlIGhhdmUgdG8gZmFrZSBpdCB1c2luZyBhIF9fcmVkdWNlX18tCi0gICAgICAgYmFzZWQgaGFjayAoc2VlIHRoZSBlbGVtZW50X3JlZHVjZSBpbXBsZW1lbnRhdGlvbiBhYm92ZSBmb3IKLSAgICAgICBkZXRhaWxzKS4gKi8KLQotICAgIC8qIFRoZSBiZWhhdmlvdXIgaGFzIGJlZW4gY2hhbmdlZCBpbiAyLjMuNSBhbmQgMi40LjEsIHNvIHdlJ3JlCi0gICAgICAgdXNpbmcgYSBydW50aW1lIHRlc3QgdG8gZmlndXJlIG91dCBpZiB3ZSBuZWVkIHRvIGZha2UgdGhpbmdzCi0gICAgICAgb3Igbm93IChzZWUgdGhlIGluaXQgY29kZSBiZWxvdykuICBUaGUgZm9sbG93aW5nIGVudHJ5IGlzCi0gICAgICAgZW5hYmxlZCBvbmx5IGlmIHRoZSBoYWNrIGlzIG5lZWRlZC4gKi8KLQotICAgIHsiIV9fcmVkdWNlX18iLCAoUHlDRnVuY3Rpb24pIGVsZW1lbnRfcmVkdWNlLCBNRVRIX1ZBUkFSR1N9LAorICAgIHsiX19zaXplb2ZfXyIsIGVsZW1lbnRfc2l6ZW9mLCBNRVRIX05PQVJHU30sCiAKICAgICB7TlVMTCwgTlVMTH0KIH07CkBAIC0xNDgzLDcgKzE2MzUsNyBAQAogCiAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhuYW1lb2JqKSkKICAgICAgICAgbmFtZSA9IF9QeVVuaWNvZGVfQXNTdHJpbmcobmFtZW9iaik7Ci0gICAgCisKICAgICBpZiAobmFtZSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIApAQCAtMTUxMCw3ICsxNjYyLDcgQEAKICAgICB9IGVsc2UgaWYgKHN0cmNtcChuYW1lLCAiYXR0cmliIikgPT0gMCkgewogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICBpZiAoIXNlbGYtPmV4dHJhKQotICAgICAgICAgICAgZWxlbWVudF9uZXdfZXh0cmEoc2VsZiwgTlVMTCk7CisgICAgICAgICAgICBjcmVhdGVfZXh0cmEoc2VsZiwgTlVMTCk7CiAgICAgICAgIHJlcyA9IGVsZW1lbnRfZ2V0X2F0dHJpYihzZWxmKTsKICAgICB9CiAKQEAgLTE1MjEsMTYgKzE2NzMsMTUgQEAKICAgICByZXR1cm4gcmVzOwogfQogCi1zdGF0aWMgaW50Ci1lbGVtZW50X3NldGF0dHIoRWxlbWVudE9iamVjdCogc2VsZiwgY29uc3QgY2hhciogbmFtZSwgUHlPYmplY3QqIHZhbHVlKQorc3RhdGljIFB5T2JqZWN0KgorZWxlbWVudF9zZXRhdHRybyhFbGVtZW50T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogbmFtZW9iaiwgUHlPYmplY3QqIHZhbHVlKQogewotICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZygKLSAgICAgICAgICAgIFB5RXhjX0F0dHJpYnV0ZUVycm9yLAotICAgICAgICAgICAgImNhbid0IGRlbGV0ZSBlbGVtZW50IGF0dHJpYnV0ZXMiCi0gICAgICAgICAgICApOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQorICAgIGNoYXIgKm5hbWUgPSAiIjsKKyAgICBpZiAoUHlVbmljb2RlX0NoZWNrKG5hbWVvYmopKQorICAgICAgICBuYW1lID0gX1B5VW5pY29kZV9Bc1N0cmluZyhuYW1lb2JqKTsKKworICAgIGlmIChuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgaWYgKHN0cmNtcChuYW1lLCAidGFnIikgPT0gMCkgewogICAgICAgICBQeV9ERUNSRUYoc2VsZi0+dGFnKTsKQEAgLTE1NDYsMTYgKzE2OTcsMTYgQEAKICAgICAgICAgUHlfSU5DUkVGKHNlbGYtPnRhaWwpOwogICAgIH0gZWxzZSBpZiAoc3RyY21wKG5hbWUsICJhdHRyaWIiKSA9PSAwKSB7CiAgICAgICAgIGlmICghc2VsZi0+ZXh0cmEpCi0gICAgICAgICAgICBlbGVtZW50X25ld19leHRyYShzZWxmLCBOVUxMKTsKKyAgICAgICAgICAgIGNyZWF0ZV9leHRyYShzZWxmLCBOVUxMKTsKICAgICAgICAgUHlfREVDUkVGKHNlbGYtPmV4dHJhLT5hdHRyaWIpOwogICAgICAgICBzZWxmLT5leHRyYS0+YXR0cmliID0gdmFsdWU7CiAgICAgICAgIFB5X0lOQ1JFRihzZWxmLT5leHRyYS0+YXR0cmliKTsKICAgICB9IGVsc2UgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQXR0cmlidXRlRXJyb3IsIG5hbWUpOwotICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBOVUxMOwogfQogCiBzdGF0aWMgUHlTZXF1ZW5jZU1ldGhvZHMgZWxlbWVudF9hc19zZXF1ZW5jZSA9IHsKQEAgLTE1NzgsNTYgKzE3MjksMzMxIEBACiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCiAgICAgIkVsZW1lbnQiLCBzaXplb2YoRWxlbWVudE9iamVjdCksIDAsCiAgICAgLyogbWV0aG9kcyAqLwotICAgIChkZXN0cnVjdG9yKWVsZW1lbnRfZGVhbGxvYywgLyogdHBfZGVhbGxvYyAqLwotICAgIDAsIC8qIHRwX3ByaW50ICovCi0gICAgMCwgLyogdHBfZ2V0YXR0ciAqLwotICAgIChzZXRhdHRyZnVuYyllbGVtZW50X3NldGF0dHIsIC8qIHRwX3NldGF0dHIgKi8KLSAgICAwLCAvKiB0cF9yZXNlcnZlZCAqLwotICAgIChyZXByZnVuYyllbGVtZW50X3JlcHIsIC8qIHRwX3JlcHIgKi8KLSAgICAwLCAvKiB0cF9hc19udW1iZXIgKi8KLSAgICAmZWxlbWVudF9hc19zZXF1ZW5jZSwgLyogdHBfYXNfc2VxdWVuY2UgKi8KLSAgICAmZWxlbWVudF9hc19tYXBwaW5nLCAvKiB0cF9hc19tYXBwaW5nICovCi0gICAgMCwgLyogdHBfaGFzaCAqLwotICAgIDAsIC8qIHRwX2NhbGwgKi8KLSAgICAwLCAvKiB0cF9zdHIgKi8KLSAgICAoZ2V0YXR0cm9mdW5jKWVsZW1lbnRfZ2V0YXR0cm8sIC8qIHRwX2dldGF0dHJvICovCi0gICAgMCwgLyogdHBfc2V0YXR0cm8gKi8KLSAgICAwLCAvKiB0cF9hc19idWZmZXIgKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQsIC8qIHRwX2ZsYWdzICovCi0gICAgMCwgLyogdHBfZG9jICovCi0gICAgMCwgLyogdHBfdHJhdmVyc2UgKi8KLSAgICAwLCAvKiB0cF9jbGVhciAqLwotICAgIDAsIC8qIHRwX3JpY2hjb21wYXJlICovCi0gICAgMCwgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICAwLCAvKiB0cF9pdGVyICovCi0gICAgMCwgLyogdHBfaXRlcm5leHQgKi8KLSAgICBlbGVtZW50X21ldGhvZHMsIC8qIHRwX21ldGhvZHMgKi8KLSAgICAwLCAvKiB0cF9tZW1iZXJzICovCisgICAgKGRlc3RydWN0b3IpZWxlbWVudF9kZWFsbG9jLCAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVhbGxvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZlZCAqLworICAgIChyZXByZnVuYyllbGVtZW50X3JlcHIsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JlcHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19udW1iZXIgKi8KKyAgICAmZWxlbWVudF9hc19zZXF1ZW5jZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLworICAgICZlbGVtZW50X2FzX21hcHBpbmcsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX21hcHBpbmcgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9oYXNoICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLworICAgIChnZXRhdHRyb2Z1bmMpZWxlbWVudF9nZXRhdHRybywgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHJvICovCisgICAgKHNldGF0dHJvZnVuYyllbGVtZW50X3NldGF0dHJvLCAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0JBU0VUWVBFIHwgUHlfVFBGTEFHU19IQVZFX0dDLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgKHRyYXZlcnNlcHJvYyllbGVtZW50X2djX3RyYXZlcnNlLCAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAoaW5xdWlyeSllbGVtZW50X2djX2NsZWFyLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgb2Zmc2V0b2YoRWxlbWVudE9iamVjdCwgd2Vha3JlZmxpc3QpLCAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICBlbGVtZW50X21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLworICAgIChpbml0cHJvYyllbGVtZW50X2luaXQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2luaXQgKi8KKyAgICBQeVR5cGVfR2VuZXJpY0FsbG9jLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLworICAgIGVsZW1lbnRfbmV3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2ZyZWUgKi8KIH07CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIEVsZW1lbnQgaXRlcmF0b3IgKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogRWxlbWVudEl0ZXJPYmplY3QgcmVwcmVzZW50cyB0aGUgaXRlcmF0aW9uIHN0YXRlIG92ZXIgYW4gWE1MIGVsZW1lbnQgaW4KKyAqIHByZS1vcmRlciB0cmF2ZXJzYWwuIFRvIGtlZXAgdHJhY2sgb2Ygd2hpY2ggc3ViLWVsZW1lbnQgc2hvdWxkIGJlIHJldHVybmVkCisgKiBuZXh0LCBhIHN0YWNrIG9mIHBhcmVudHMgaXMgbWFpbnRhaW5lZC4gVGhpcyBpcyBhIHN0YW5kYXJkIHN0YWNrLWJhc2VkCisgKiBpdGVyYXRpdmUgcHJlLW9yZGVyIHRyYXZlcnNhbCBvZiBhIHRyZWUuCisgKiBUaGUgc3RhY2sgaXMgbWFuYWdlZCB1c2luZyBhIHNpbmdsZS1saW5rZWQgbGlzdCBzdGFydGluZyBhdCBwYXJlbnRfc3RhY2suCisgKiBFYWNoIHN0YWNrIG5vZGUgY29udGFpbnMgdGhlIHNhdmVkIHBhcmVudCB0byB3aGljaCB3ZSBzaG91bGQgcmV0dXJuIGFmdGVyCisgKiB0aGUgY3VycmVudCBvbmUgaXMgZXhoYXVzdGVkLCBhbmQgdGhlIG5leHQgY2hpbGQgdG8gZXhhbWluZSBpbiB0aGF0IHBhcmVudC4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgUGFyZW50TG9jYXRvcl90IHsKKyAgICBFbGVtZW50T2JqZWN0ICpwYXJlbnQ7CisgICAgUHlfc3NpemVfdCBjaGlsZF9pbmRleDsKKyAgICBzdHJ1Y3QgUGFyZW50TG9jYXRvcl90ICpuZXh0OworfSBQYXJlbnRMb2NhdG9yOworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIFBhcmVudExvY2F0b3IgKnBhcmVudF9zdGFjazsKKyAgICBFbGVtZW50T2JqZWN0ICpyb290X2VsZW1lbnQ7CisgICAgUHlPYmplY3QgKnNvdWdodF90YWc7CisgICAgaW50IHJvb3RfZG9uZTsKKyAgICBpbnQgZ2V0dGV4dDsKK30gRWxlbWVudEl0ZXJPYmplY3Q7CisKKworc3RhdGljIHZvaWQKK2VsZW1lbnRpdGVyX2RlYWxsb2MoRWxlbWVudEl0ZXJPYmplY3QgKml0KQoreworICAgIFBhcmVudExvY2F0b3IgKnAgPSBpdC0+cGFyZW50X3N0YWNrOworICAgIHdoaWxlIChwKSB7CisgICAgICAgIFBhcmVudExvY2F0b3IgKnRlbXAgPSBwOworICAgICAgICBQeV9YREVDUkVGKHAtPnBhcmVudCk7CisgICAgICAgIHAgPSBwLT5uZXh0OworICAgICAgICBQeU9iamVjdF9GcmVlKHRlbXApOworICAgIH0KKworICAgIFB5X1hERUNSRUYoaXQtPnNvdWdodF90YWcpOworICAgIFB5X1hERUNSRUYoaXQtPnJvb3RfZWxlbWVudCk7CisKKyAgICBQeU9iamVjdF9HQ19VblRyYWNrKGl0KTsKKyAgICBQeU9iamVjdF9HQ19EZWwoaXQpOworfQorCitzdGF0aWMgaW50CitlbGVtZW50aXRlcl90cmF2ZXJzZShFbGVtZW50SXRlck9iamVjdCAqaXQsIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQoreworICAgIFBhcmVudExvY2F0b3IgKnAgPSBpdC0+cGFyZW50X3N0YWNrOworICAgIHdoaWxlIChwKSB7CisgICAgICAgIFB5X1ZJU0lUKHAtPnBhcmVudCk7CisgICAgICAgIHAgPSBwLT5uZXh0OworICAgIH0KKworICAgIFB5X1ZJU0lUKGl0LT5yb290X2VsZW1lbnQpOworICAgIFB5X1ZJU0lUKGl0LT5zb3VnaHRfdGFnKTsKKyAgICByZXR1cm4gMDsKK30KKworLyogSGVscGVyIGZ1bmN0aW9uIGZvciBlbGVtZW50aXRlcl9uZXh0LiBBZGQgYSBuZXcgcGFyZW50IHRvIHRoZSBwYXJlbnQgc3RhY2suCisgKi8KK3N0YXRpYyBQYXJlbnRMb2NhdG9yICoKK3BhcmVudF9zdGFja19wdXNoX25ldyhQYXJlbnRMb2NhdG9yICpzdGFjaywgRWxlbWVudE9iamVjdCAqcGFyZW50KQoreworICAgIFBhcmVudExvY2F0b3IgKm5ld19ub2RlID0gUHlPYmplY3RfTWFsbG9jKHNpemVvZihQYXJlbnRMb2NhdG9yKSk7CisgICAgaWYgKG5ld19ub2RlKSB7CisgICAgICAgIG5ld19ub2RlLT5wYXJlbnQgPSBwYXJlbnQ7CisgICAgICAgIFB5X0lOQ1JFRihwYXJlbnQpOworICAgICAgICBuZXdfbm9kZS0+Y2hpbGRfaW5kZXggPSAwOworICAgICAgICBuZXdfbm9kZS0+bmV4dCA9IHN0YWNrOworICAgIH0KKyAgICByZXR1cm4gbmV3X25vZGU7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitlbGVtZW50aXRlcl9uZXh0KEVsZW1lbnRJdGVyT2JqZWN0ICppdCkKK3sKKyAgICAvKiBTdWItZWxlbWVudCBpdGVyYXRvci4KKyAgICAgKiAKKyAgICAgKiBBIHNob3J0IG5vdGUgb24gZ2V0dGV4dDogdGhpcyBmdW5jdGlvbiBzZXJ2ZXMgYm90aCB0aGUgaXRlcigpIGFuZAorICAgICAqIGl0ZXJ0ZXh0KCkgbWV0aG9kcyB0byBhdm9pZCBjb2RlIGR1cGxpY2F0aW9uLiBIb3dldmVyLCB0aGVyZSBhcmUgYSBmZXcKKyAgICAgKiBzbWFsbCBkaWZmZXJlbmNlcyBpbiB0aGUgd2F5IHRoZXNlIGl0ZXJhdGlvbnMgd29yay4gTmFtZWx5OgorICAgICAqICAgLSBpdGVydGV4dCgpIG9ubHkgeWllbGRzIHRleHQgZnJvbSBub2RlcyB0aGF0IGhhdmUgaXQsIGFuZCBjb250aW51ZXMKKyAgICAgKiAgICAgaXRlcmF0aW5nIHdoZW4gYSBub2RlIGRvZXNuJ3QgaGF2ZSB0ZXh0IChzbyBpdCBkb2Vzbid0IHJldHVybiBhbnkKKyAgICAgKiAgICAgbm9kZSBsaWtlIGl0ZXIoKSkKKyAgICAgKiAgIC0gaXRlcnRleHQoKSBhbHNvIGhhcyB0byBoYW5kbGUgdGFpbCwgYWZ0ZXIgZmluaXNoaW5nIHdpdGggYWxsIHRoZQorICAgICAqICAgICBjaGlsZHJlbiBvZiBhIG5vZGUuCisgICAgICovCisgICAgRWxlbWVudE9iamVjdCAqY3VyX3BhcmVudDsKKyAgICBQeV9zc2l6ZV90IGNoaWxkX2luZGV4OworCisgICAgd2hpbGUgKDEpIHsKKyAgICAgICAgLyogSGFuZGxlIHRoZSBjYXNlIHJlYWNoZWQgaW4gdGhlIGJlZ2lubmluZyBhbmQgZW5kIG9mIGl0ZXJhdGlvbiwgd2hlcmUKKyAgICAgICAgICogdGhlIHBhcmVudCBzdGFjayBpcyBlbXB0eS4gVGhlIHJvb3RfZG9uZSBmbGFnIGdpdmVzIHVzIGluZGljYXRpb24KKyAgICAgICAgICogd2hldGhlciB3ZSd2ZSBqdXN0IHN0YXJ0ZWQgaXRlcmF0aW5nIChzbyByb290X2RvbmUgaXMgMCksIGluIHdoaWNoCisgICAgICAgICAqIGNhc2UgdGhlIHJvb3QgaXMgcmV0dXJuZWQuIElmIHJvb3RfZG9uZSBpcyAxIGFuZCB3ZSdyZSBoZXJlLCB0aGUKKyAgICAgICAgICogaXRlcmF0b3IgaXMgZXhoYXVzdGVkLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCFpdC0+cGFyZW50X3N0YWNrLT5wYXJlbnQpIHsKKyAgICAgICAgICAgIGlmIChpdC0+cm9vdF9kb25lKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0Tm9uZShQeUV4Y19TdG9wSXRlcmF0aW9uKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaXQtPnBhcmVudF9zdGFjayA9IHBhcmVudF9zdGFja19wdXNoX25ldyhpdC0+cGFyZW50X3N0YWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQtPnJvb3RfZWxlbWVudCk7CisgICAgICAgICAgICAgICAgaWYgKCFpdC0+cGFyZW50X3N0YWNrKSB7CisgICAgICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGl0LT5yb290X2RvbmUgPSAxOworICAgICAgICAgICAgICAgIGlmIChpdC0+c291Z2h0X3RhZyA9PSBQeV9Ob25lIHx8CisgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0X1JpY2hDb21wYXJlQm9vbChpdC0+cm9vdF9lbGVtZW50LT50YWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC0+c291Z2h0X3RhZywgUHlfRVEpID09IDEpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGl0LT5nZXR0ZXh0KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdGV4dCA9IEpPSU5fT0JKKGl0LT5yb290X2VsZW1lbnQtPnRleHQpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0lzVHJ1ZSh0ZXh0KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih0ZXh0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGV4dDsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihpdC0+cm9vdF9lbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoUHlPYmplY3QgKilpdC0+cm9vdF9lbGVtZW50OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgLyogU2VlIGlmIHRoZXJlIGFyZSBjaGlsZHJlbiBsZWZ0IHRvIHRyYXZlcnNlIGluIHRoZSBjdXJyZW50IHBhcmVudC4gSWYKKyAgICAgICAgICogeWVzLCB2aXNpdCB0aGUgbmV4dCBjaGlsZC4gSWYgbm90LCBwb3AgdGhlIHN0YWNrIGFuZCB0cnkgYWdhaW4uCisgICAgICAgICAqLworICAgICAgICBjdXJfcGFyZW50ID0gaXQtPnBhcmVudF9zdGFjay0+cGFyZW50OworICAgICAgICBjaGlsZF9pbmRleCA9IGl0LT5wYXJlbnRfc3RhY2stPmNoaWxkX2luZGV4OworICAgICAgICBpZiAoY3VyX3BhcmVudC0+ZXh0cmEgJiYgY2hpbGRfaW5kZXggPCBjdXJfcGFyZW50LT5leHRyYS0+bGVuZ3RoKSB7CisgICAgICAgICAgICBFbGVtZW50T2JqZWN0ICpjaGlsZCA9IChFbGVtZW50T2JqZWN0ICopCisgICAgICAgICAgICAgICAgY3VyX3BhcmVudC0+ZXh0cmEtPmNoaWxkcmVuW2NoaWxkX2luZGV4XTsKKyAgICAgICAgICAgIGl0LT5wYXJlbnRfc3RhY2stPmNoaWxkX2luZGV4Kys7CisgICAgICAgICAgICBpdC0+cGFyZW50X3N0YWNrID0gcGFyZW50X3N0YWNrX3B1c2hfbmV3KGl0LT5wYXJlbnRfc3RhY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkKTsKKyAgICAgICAgICAgIGlmICghaXQtPnBhcmVudF9zdGFjaykgeworICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpdC0+Z2V0dGV4dCkgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp0ZXh0ID0gSk9JTl9PQkooY2hpbGQtPnRleHQpOworICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9Jc1RydWUodGV4dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKHRleHQpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGV4dDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGl0LT5zb3VnaHRfdGFnID09IFB5X05vbmUgfHwKKyAgICAgICAgICAgICAgICBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2woY2hpbGQtPnRhZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQtPnNvdWdodF90YWcsIFB5X0VRKSA9PSAxKSB7CisgICAgICAgICAgICAgICAgUHlfSU5DUkVGKGNoaWxkKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKFB5T2JqZWN0ICopY2hpbGQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdGFpbCA9IGl0LT5nZXR0ZXh0ID8gSk9JTl9PQkooY3VyX3BhcmVudC0+dGFpbCkgOiBQeV9Ob25lOyAgICAgICAgICAgIAorICAgICAgICAgICAgUGFyZW50TG9jYXRvciAqbmV4dCA9IGl0LT5wYXJlbnRfc3RhY2stPm5leHQ7CisgICAgICAgICAgICBQeV9YREVDUkVGKGl0LT5wYXJlbnRfc3RhY2stPnBhcmVudCk7CisgICAgICAgICAgICBQeU9iamVjdF9GcmVlKGl0LT5wYXJlbnRfc3RhY2spOworICAgICAgICAgICAgaXQtPnBhcmVudF9zdGFjayA9IG5leHQ7CisKKyAgICAgICAgICAgIC8qIE5vdGUgdGhhdCBleHRyYSBjb25kaXRpb24gb24gaXQtPnBhcmVudF9zdGFjay0+cGFyZW50IGhlcmU7CisgICAgICAgICAgICAgKiB0aGlzIGlzIGJlY2F1c2UgaXRlcnRleHQoKSBpcyBzdXBwb3NlZCB0byBvbmx5IHJldHVybiAqaW5uZXIqCisgICAgICAgICAgICAgKiB0ZXh0LCBub3QgdGV4dCBmb2xsb3dpbmcgdGhlIGVsZW1lbnQgaXQgYmVnYW4gaXRlcmF0aW9uIHdpdGguCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmIChpdC0+cGFyZW50X3N0YWNrLT5wYXJlbnQgJiYgUHlPYmplY3RfSXNUcnVlKHRhaWwpKSB7CisgICAgICAgICAgICAgICAgUHlfSU5DUkVGKHRhaWwpOworICAgICAgICAgICAgICAgIHJldHVybiB0YWlsOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKKworc3RhdGljIFB5VHlwZU9iamVjdCBFbGVtZW50SXRlcl9UeXBlID0geworICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQorICAgICJfZWxlbWVudHRyZWUuX2VsZW1lbnRfaXRlcmF0b3IiLCAgICAgICAgICAgLyogdHBfbmFtZSAqLworICAgIHNpemVvZihFbGVtZW50SXRlck9iamVjdCksICAgICAgICAgICAgICAgICAgLyogdHBfYmFzaWNzaXplICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLworICAgIC8qIG1ldGhvZHMgKi8KKyAgICAoZGVzdHJ1Y3RvcillbGVtZW50aXRlcl9kZWFsbG9jLCAgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZlZCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVwciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbWFwcGluZyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCB8IFB5X1RQRkxBR1NfSEFWRV9HQywgICAgLyogdHBfZmxhZ3MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RvYyAqLworICAgICh0cmF2ZXJzZXByb2MpZWxlbWVudGl0ZXJfdHJhdmVyc2UsICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICBQeU9iamVjdF9TZWxmSXRlciwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAoaXRlcm5leHRmdW5jKWVsZW1lbnRpdGVyX25leHQsICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX2dldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pbml0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCit9OworCisKK3N0YXRpYyBQeU9iamVjdCAqCitjcmVhdGVfZWxlbWVudGl0ZXIoRWxlbWVudE9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnRhZywgaW50IGdldHRleHQpCit7CisgICAgRWxlbWVudEl0ZXJPYmplY3QgKml0OworICAgIFB5T2JqZWN0ICpzdGFyID0gTlVMTDsKKworICAgIGl0ID0gUHlPYmplY3RfR0NfTmV3KEVsZW1lbnRJdGVyT2JqZWN0LCAmRWxlbWVudEl0ZXJfVHlwZSk7CisgICAgaWYgKCFpdCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKCEoaXQtPnBhcmVudF9zdGFjayA9IFB5T2JqZWN0X01hbGxvYyhzaXplb2YoUGFyZW50TG9jYXRvcikpKSkgeworICAgICAgICBQeU9iamVjdF9HQ19EZWwoaXQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBpdC0+cGFyZW50X3N0YWNrLT5wYXJlbnQgPSBOVUxMOworICAgIGl0LT5wYXJlbnRfc3RhY2stPmNoaWxkX2luZGV4ID0gMDsKKyAgICBpdC0+cGFyZW50X3N0YWNrLT5uZXh0ID0gTlVMTDsKKworICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sodGFnKSkKKyAgICAgICAgc3RhciA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCIqIik7CisgICAgZWxzZSBpZiAoUHlCeXRlc19DaGVjayh0YWcpKQorICAgICAgICBzdGFyID0gUHlCeXRlc19Gcm9tU3RyaW5nKCIqIik7CisKKyAgICBpZiAoc3RhciAmJiBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2wodGFnLCBzdGFyLCBQeV9FUSkgPT0gMSkKKyAgICAgICAgdGFnID0gUHlfTm9uZTsKKworICAgIFB5X1hERUNSRUYoc3Rhcik7CisgICAgaXQtPnNvdWdodF90YWcgPSB0YWc7CisgICAgaXQtPnJvb3RfZG9uZSA9IDA7CisgICAgaXQtPmdldHRleHQgPSBnZXR0ZXh0OworICAgIGl0LT5yb290X2VsZW1lbnQgPSBzZWxmOworCisgICAgUHlfSU5DUkVGKHNlbGYpOworICAgIFB5X0lOQ1JFRih0YWcpOworCisgICAgUHlPYmplY3RfR0NfVHJhY2soaXQpOworICAgIHJldHVybiAoUHlPYmplY3QgKilpdDsKK30KKworCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwogLyogdGhlIHRyZWUgYnVpbGRlciB0eXBlICovCiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBQeU9iamVjdF9IRUFECiAKLSAgICBQeU9iamVjdCogcm9vdDsgLyogcm9vdCBub2RlIChmaXJzdCBjcmVhdGVkIG5vZGUpICovCisgICAgUHlPYmplY3QgKnJvb3Q7IC8qIHJvb3Qgbm9kZSAoZmlyc3QgY3JlYXRlZCBub2RlKSAqLwogCi0gICAgRWxlbWVudE9iamVjdCogdGhpczsgLyogY3VycmVudCBub2RlICovCi0gICAgRWxlbWVudE9iamVjdCogbGFzdDsgLyogbW9zdCByZWNlbnRseSBjcmVhdGVkIG5vZGUgKi8KKyAgICBFbGVtZW50T2JqZWN0ICp0aGlzOyAvKiBjdXJyZW50IG5vZGUgKi8KKyAgICBFbGVtZW50T2JqZWN0ICpsYXN0OyAvKiBtb3N0IHJlY2VudGx5IGNyZWF0ZWQgbm9kZSAqLwogCi0gICAgUHlPYmplY3QqIGRhdGE7IC8qIGRhdGEgY29sbGVjdG9yIChzdHJpbmcgb3IgbGlzdCksIG9yIE5VTEwgKi8KKyAgICBQeU9iamVjdCAqZGF0YTsgLyogZGF0YSBjb2xsZWN0b3IgKHN0cmluZyBvciBsaXN0KSwgb3IgTlVMTCAqLwogCi0gICAgUHlPYmplY3QqIHN0YWNrOyAvKiBlbGVtZW50IHN0YWNrICovCi0gICAgUHlfc3NpemVfdCBpbmRleDsgLyogY3VycmVudCBzdGFjayBzaXplICgwPWVtcHR5KSAqLworICAgIFB5T2JqZWN0ICpzdGFjazsgLyogZWxlbWVudCBzdGFjayAqLworICAgIFB5X3NzaXplX3QgaW5kZXg7IC8qIGN1cnJlbnQgc3RhY2sgc2l6ZSAoMCBtZWFucyBlbXB0eSkgKi8KKworICAgIFB5T2JqZWN0ICplbGVtZW50X2ZhY3Rvcnk7CiAKICAgICAvKiBlbGVtZW50IHRyYWNpbmcgKi8KLSAgICBQeU9iamVjdCogZXZlbnRzOyAvKiBsaXN0IG9mIGV2ZW50cywgb3IgTlVMTCBpZiBub3QgY29sbGVjdGluZyAqLwotICAgIFB5T2JqZWN0KiBzdGFydF9ldmVudF9vYmo7IC8qIGV2ZW50IG9iamVjdHMgKE5VTEwgdG8gaWdub3JlKSAqLwotICAgIFB5T2JqZWN0KiBlbmRfZXZlbnRfb2JqOwotICAgIFB5T2JqZWN0KiBzdGFydF9uc19ldmVudF9vYmo7Ci0gICAgUHlPYmplY3QqIGVuZF9uc19ldmVudF9vYmo7Ci0KKyAgICBQeU9iamVjdCAqZXZlbnRzOyAvKiBsaXN0IG9mIGV2ZW50cywgb3IgTlVMTCBpZiBub3QgY29sbGVjdGluZyAqLworICAgIFB5T2JqZWN0ICpzdGFydF9ldmVudF9vYmo7IC8qIGV2ZW50IG9iamVjdHMgKE5VTEwgdG8gaWdub3JlKSAqLworICAgIFB5T2JqZWN0ICplbmRfZXZlbnRfb2JqOworICAgIFB5T2JqZWN0ICpzdGFydF9uc19ldmVudF9vYmo7CisgICAgUHlPYmplY3QgKmVuZF9uc19ldmVudF9vYmo7CiB9IFRyZWVCdWlsZGVyT2JqZWN0OwogCiBzdGF0aWMgUHlUeXBlT2JqZWN0IFRyZWVCdWlsZGVyX1R5cGU7CkBAIC0xNjM3LDQ4ICsyMDYzLDcwIEBACiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgKi8KIAotTE9DQUwoUHlPYmplY3QqKQotdHJlZWJ1aWxkZXJfbmV3KHZvaWQpCitzdGF0aWMgUHlPYmplY3QgKgordHJlZWJ1aWxkZXJfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewotICAgIFRyZWVCdWlsZGVyT2JqZWN0KiBzZWxmOworICAgIFRyZWVCdWlsZGVyT2JqZWN0ICp0ID0gKFRyZWVCdWlsZGVyT2JqZWN0ICopdHlwZS0+dHBfYWxsb2ModHlwZSwgMCk7CisgICAgaWYgKHQgIT0gTlVMTCkgeworICAgICAgICB0LT5yb290ID0gTlVMTDsKIAotICAgIHNlbGYgPSBQeU9iamVjdF9OZXcoVHJlZUJ1aWxkZXJPYmplY3QsICZUcmVlQnVpbGRlcl9UeXBlKTsKLSAgICBpZiAoc2VsZiA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICB0LT50aGlzID0gKEVsZW1lbnRPYmplY3QgKilQeV9Ob25lOworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHQtPmxhc3QgPSAoRWxlbWVudE9iamVjdCAqKVB5X05vbmU7CiAKLSAgICBzZWxmLT5yb290ID0gTlVMTDsKKyAgICAgICAgdC0+ZGF0YSA9IE5VTEw7CisgICAgICAgIHQtPmVsZW1lbnRfZmFjdG9yeSA9IE5VTEw7CisgICAgICAgIHQtPnN0YWNrID0gUHlMaXN0X05ldygyMCk7CisgICAgICAgIGlmICghdC0+c3RhY2spIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRih0LT50aGlzKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRih0LT5sYXN0KTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHQtPmluZGV4ID0gMDsKIAotICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICBzZWxmLT50aGlzID0gKEVsZW1lbnRPYmplY3QqKSBQeV9Ob25lOwotCi0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHNlbGYtPmxhc3QgPSAoRWxlbWVudE9iamVjdCopIFB5X05vbmU7Ci0KLSAgICBzZWxmLT5kYXRhID0gTlVMTDsKLQotICAgIHNlbGYtPnN0YWNrID0gUHlMaXN0X05ldygyMCk7Ci0gICAgc2VsZi0+aW5kZXggPSAwOwotCi0gICAgc2VsZi0+ZXZlbnRzID0gTlVMTDsKLSAgICBzZWxmLT5zdGFydF9ldmVudF9vYmogPSBzZWxmLT5lbmRfZXZlbnRfb2JqID0gTlVMTDsKLSAgICBzZWxmLT5zdGFydF9uc19ldmVudF9vYmogPSBzZWxmLT5lbmRfbnNfZXZlbnRfb2JqID0gTlVMTDsKLQotICAgIEFMTE9DKHNpemVvZihUcmVlQnVpbGRlck9iamVjdCksICJjcmVhdGUgdHJlZWJ1aWxkZXIiKTsKLQotICAgIHJldHVybiAoUHlPYmplY3QqKSBzZWxmOworICAgICAgICB0LT5ldmVudHMgPSBOVUxMOworICAgICAgICB0LT5zdGFydF9ldmVudF9vYmogPSB0LT5lbmRfZXZlbnRfb2JqID0gTlVMTDsKKyAgICAgICAgdC0+c3RhcnRfbnNfZXZlbnRfb2JqID0gdC0+ZW5kX25zX2V2ZW50X29iaiA9IE5VTEw7CisgICAgfQorICAgIHJldHVybiAoUHlPYmplY3QgKil0OwogfQogCi1zdGF0aWMgUHlPYmplY3QqCi10cmVlYnVpbGRlcihQeU9iamVjdCogc2VsZl8sIFB5T2JqZWN0KiBhcmdzKQorc3RhdGljIGludAordHJlZWJ1aWxkZXJfaW5pdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiOlRyZWVCdWlsZGVyIikpCi0gICAgICAgIHJldHVybiBOVUxMOworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsiZWxlbWVudF9mYWN0b3J5IiwgMH07CisgICAgUHlPYmplY3QgKmVsZW1lbnRfZmFjdG9yeSA9IE5VTEw7CisgICAgVHJlZUJ1aWxkZXJPYmplY3QgKnNlbGZfdGIgPSAoVHJlZUJ1aWxkZXJPYmplY3QgKilzZWxmOwogCi0gICAgcmV0dXJuIHRyZWVidWlsZGVyX25ldygpOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJ8TzpUcmVlQnVpbGRlciIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZWxlbWVudF9mYWN0b3J5KSkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKGVsZW1lbnRfZmFjdG9yeSkgeworICAgICAgICBQeV9JTkNSRUYoZWxlbWVudF9mYWN0b3J5KTsKKyAgICAgICAgUHlfWERFQ1JFRihzZWxmX3RiLT5lbGVtZW50X2ZhY3RvcnkpOworICAgICAgICBzZWxmX3RiLT5lbGVtZW50X2ZhY3RvcnkgPSBlbGVtZW50X2ZhY3Rvcnk7CisgICAgfQorCisgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkCi10cmVlYnVpbGRlcl9kZWFsbG9jKFRyZWVCdWlsZGVyT2JqZWN0KiBzZWxmKQorc3RhdGljIGludAordHJlZWJ1aWxkZXJfZ2NfdHJhdmVyc2UoVHJlZUJ1aWxkZXJPYmplY3QgKnNlbGYsIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQoreworICAgIFB5X1ZJU0lUKHNlbGYtPnJvb3QpOworICAgIFB5X1ZJU0lUKHNlbGYtPnRoaXMpOworICAgIFB5X1ZJU0lUKHNlbGYtPmxhc3QpOworICAgIFB5X1ZJU0lUKHNlbGYtPmRhdGEpOworICAgIFB5X1ZJU0lUKHNlbGYtPnN0YWNrKTsKKyAgICBQeV9WSVNJVChzZWxmLT5lbGVtZW50X2ZhY3RvcnkpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit0cmVlYnVpbGRlcl9nY19jbGVhcihUcmVlQnVpbGRlck9iamVjdCAqc2VsZikKIHsKICAgICBQeV9YREVDUkVGKHNlbGYtPmVuZF9uc19ldmVudF9vYmopOwogICAgIFB5X1hERUNSRUYoc2VsZi0+c3RhcnRfbnNfZXZlbnRfb2JqKTsKQEAgLTE2ODksMjQgKzIxMzcsMjMgQEAKICAgICBQeV9YREVDUkVGKHNlbGYtPmRhdGEpOwogICAgIFB5X0RFQ1JFRihzZWxmLT5sYXN0KTsKICAgICBQeV9ERUNSRUYoc2VsZi0+dGhpcyk7CisgICAgUHlfQ0xFQVIoc2VsZi0+ZWxlbWVudF9mYWN0b3J5KTsKICAgICBQeV9YREVDUkVGKHNlbGYtPnJvb3QpOworICAgIHJldHVybiAwOworfQogCi0gICAgUkVMRUFTRShzaXplb2YoVHJlZUJ1aWxkZXJPYmplY3QpLCAiZGVzdHJveSB0cmVlYnVpbGRlciIpOwotCi0gICAgUHlPYmplY3RfRGVsKHNlbGYpOworc3RhdGljIHZvaWQKK3RyZWVidWlsZGVyX2RlYWxsb2MoVHJlZUJ1aWxkZXJPYmplY3QgKnNlbGYpCit7CisgICAgUHlPYmplY3RfR0NfVW5UcmFjayhzZWxmKTsKKyAgICB0cmVlYnVpbGRlcl9nY19jbGVhcihzZWxmKTsKKyAgICBQeV9UWVBFKHNlbGYpLT50cF9mcmVlKChQeU9iamVjdCAqKXNlbGYpOwogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogLyogaGFuZGxlcnMgKi8KIAogTE9DQUwoUHlPYmplY3QqKQotdHJlZWJ1aWxkZXJfaGFuZGxlX3htbChUcmVlQnVpbGRlck9iamVjdCogc2VsZiwgUHlPYmplY3QqIGVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCogc3RhbmRhbG9uZSkKLXsKLSAgICBQeV9SRVRVUk5fTk9ORTsKLX0KLQotTE9DQUwoUHlPYmplY3QqKQogdHJlZWJ1aWxkZXJfaGFuZGxlX3N0YXJ0KFRyZWVCdWlsZGVyT2JqZWN0KiBzZWxmLCBQeU9iamVjdCogdGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0KiBhdHRyaWIpCiB7CkBAIC0xNzI4LDkgKzIxNzUsMTQgQEAKICAgICAgICAgc2VsZi0+ZGF0YSA9IE5VTEw7CiAgICAgfQogCi0gICAgbm9kZSA9IGVsZW1lbnRfbmV3KHRhZywgYXR0cmliKTsKLSAgICBpZiAoIW5vZGUpCisgICAgaWYgKHNlbGYtPmVsZW1lbnRfZmFjdG9yeSkgeworICAgICAgICBub2RlID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKHNlbGYtPmVsZW1lbnRfZmFjdG9yeSwgIk9PIiwgdGFnLCBhdHRyaWIpOworICAgIH0gZWxzZSB7CisgICAgICAgIG5vZGUgPSBjcmVhdGVfbmV3X2VsZW1lbnQodGFnLCBhdHRyaWIpOworICAgIH0KKyAgICBpZiAoIW5vZGUpIHsKICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogCiAgICAgdGhpcyA9IChQeU9iamVjdCopIHNlbGYtPnRoaXM7CiAKQEAgLTE5NzcsMjIgKzI0MjksMTAgQEAKICAgICByZXR1cm4gdHJlZWJ1aWxkZXJfaGFuZGxlX3N0YXJ0KHNlbGYsIHRhZywgYXR0cmliKTsKIH0KIAotc3RhdGljIFB5T2JqZWN0KgotdHJlZWJ1aWxkZXJfeG1sKFRyZWVCdWlsZGVyT2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKLXsKLSAgICBQeU9iamVjdCogZW5jb2Rpbmc7Ci0gICAgUHlPYmplY3QqIHN0YW5kYWxvbmU7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPTzp4bWwiLCAmZW5jb2RpbmcsICZzdGFuZGFsb25lKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICByZXR1cm4gdHJlZWJ1aWxkZXJfaGFuZGxlX3htbChzZWxmLCBlbmNvZGluZywgc3RhbmRhbG9uZSk7Ci19Ci0KIHN0YXRpYyBQeU1ldGhvZERlZiB0cmVlYnVpbGRlcl9tZXRob2RzW10gPSB7CiAgICAgeyJkYXRhIiwgKFB5Q0Z1bmN0aW9uKSB0cmVlYnVpbGRlcl9kYXRhLCBNRVRIX1ZBUkFSR1N9LAogICAgIHsic3RhcnQiLCAoUHlDRnVuY3Rpb24pIHRyZWVidWlsZGVyX3N0YXJ0LCBNRVRIX1ZBUkFSR1N9LAogICAgIHsiZW5kIiwgKFB5Q0Z1bmN0aW9uKSB0cmVlYnVpbGRlcl9lbmQsIE1FVEhfVkFSQVJHU30sCi0gICAgeyJ4bWwiLCAoUHlDRnVuY3Rpb24pIHRyZWVidWlsZGVyX3htbCwgTUVUSF9WQVJBUkdTfSwKICAgICB7ImNsb3NlIiwgKFB5Q0Z1bmN0aW9uKSB0cmVlYnVpbGRlcl9jbG9zZSwgTUVUSF9WQVJBUkdTfSwKICAgICB7TlVMTCwgTlVMTH0KIH07CkBAIC0yMDAxLDMxICsyNDQxLDQyIEBACiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCiAgICAgIlRyZWVCdWlsZGVyIiwgc2l6ZW9mKFRyZWVCdWlsZGVyT2JqZWN0KSwgMCwKICAgICAvKiBtZXRob2RzICovCi0gICAgKGRlc3RydWN0b3IpdHJlZWJ1aWxkZXJfZGVhbGxvYywgLyogdHBfZGVhbGxvYyAqLwotICAgIDAsIC8qIHRwX3ByaW50ICovCi0gICAgMCwgLyogdHBfZ2V0YXR0ciAqLwotICAgIDAsIC8qIHRwX3NldGF0dHIgKi8KLSAgICAwLCAvKiB0cF9yZXNlcnZlZCAqLwotICAgIDAsIC8qIHRwX3JlcHIgKi8KLSAgICAwLCAvKiB0cF9hc19udW1iZXIgKi8KLSAgICAwLCAvKiB0cF9hc19zZXF1ZW5jZSAqLwotICAgIDAsIC8qIHRwX2FzX21hcHBpbmcgKi8KLSAgICAwLCAvKiB0cF9oYXNoICovCi0gICAgMCwgLyogdHBfY2FsbCAqLwotICAgIDAsIC8qIHRwX3N0ciAqLwotICAgIDAsIC8qIHRwX2dldGF0dHJvICovCi0gICAgMCwgLyogdHBfc2V0YXR0cm8gKi8KLSAgICAwLCAvKiB0cF9hc19idWZmZXIgKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQsIC8qIHRwX2ZsYWdzICovCi0gICAgMCwgLyogdHBfZG9jICovCi0gICAgMCwgLyogdHBfdHJhdmVyc2UgKi8KLSAgICAwLCAvKiB0cF9jbGVhciAqLwotICAgIDAsIC8qIHRwX3JpY2hjb21wYXJlICovCi0gICAgMCwgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICAwLCAvKiB0cF9pdGVyICovCi0gICAgMCwgLyogdHBfaXRlcm5leHQgKi8KLSAgICB0cmVlYnVpbGRlcl9tZXRob2RzLCAvKiB0cF9tZXRob2RzICovCi0gICAgMCwgLyogdHBfbWVtYmVycyAqLworICAgIChkZXN0cnVjdG9yKXRyZWVidWlsZGVyX2RlYWxsb2MsICAgICAgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVzZXJ2ZWQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NhbGwgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHJvICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfYnVmZmVyICovCisgICAgUHlfVFBGTEFHU19ERUZBVUxUIHwgUHlfVFBGTEFHU19CQVNFVFlQRSB8IFB5X1RQRkxBR1NfSEFWRV9HQywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9mbGFncyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RvYyAqLworICAgICh0cmF2ZXJzZXByb2MpdHJlZWJ1aWxkZXJfZ2NfdHJhdmVyc2UsICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCisgICAgKGlucXVpcnkpdHJlZWJ1aWxkZXJfZ2NfY2xlYXIsICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCisgICAgdHJlZWJ1aWxkZXJfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX2dldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3NldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KKyAgICAoaW5pdHByb2MpdHJlZWJ1aWxkZXJfaW5pdCwgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pbml0ICovCisgICAgUHlUeXBlX0dlbmVyaWNBbGxvYywgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KKyAgICB0cmVlYnVpbGRlcl9uZXcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9uZXcgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9mcmVlICovCiB9OwogCiAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwpAQCAtMjAzNCw0MCArMjQ4NSwzOSBAQAogI2lmIGRlZmluZWQoVVNFX0VYUEFUKQogCiAjaW5jbHVkZSAiZXhwYXQuaCIKLQotI2lmIGRlZmluZWQoVVNFX1BZRVhQQVRfQ0FQSSkKICNpbmNsdWRlICJweWV4cGF0LmgiCi1zdGF0aWMgc3RydWN0IFB5RXhwYXRfQ0FQSSogZXhwYXRfY2FwaTsKK3N0YXRpYyBzdHJ1Y3QgUHlFeHBhdF9DQVBJICpleHBhdF9jYXBpOwogI2RlZmluZSBFWFBBVChmdW5jKSAoZXhwYXRfY2FwaS0+ZnVuYykKLSNlbHNlCi0jZGVmaW5lIEVYUEFUKGZ1bmMpIChYTUxfIyNmdW5jKQotI2VuZGlmCisKK3N0YXRpYyBYTUxfTWVtb3J5X0hhbmRsaW5nX1N1aXRlIEV4cGF0TWVtb3J5SGFuZGxlciA9IHsKKyAgICBQeU9iamVjdF9NYWxsb2MsIFB5T2JqZWN0X1JlYWxsb2MsIFB5T2JqZWN0X0ZyZWV9OwogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgUHlPYmplY3RfSEVBRAogCiAgICAgWE1MX1BhcnNlciBwYXJzZXI7CiAKLSAgICBQeU9iamVjdCogdGFyZ2V0OwotICAgIFB5T2JqZWN0KiBlbnRpdHk7CisgICAgUHlPYmplY3QgKnRhcmdldDsKKyAgICBQeU9iamVjdCAqZW50aXR5OwogCi0gICAgUHlPYmplY3QqIG5hbWVzOworICAgIFB5T2JqZWN0ICpuYW1lczsKIAotICAgIFB5T2JqZWN0KiBoYW5kbGVfeG1sOworICAgIFB5T2JqZWN0ICpoYW5kbGVfc3RhcnQ7CisgICAgUHlPYmplY3QgKmhhbmRsZV9kYXRhOworICAgIFB5T2JqZWN0ICpoYW5kbGVfZW5kOwogCi0gICAgUHlPYmplY3QqIGhhbmRsZV9zdGFydDsKLSAgICBQeU9iamVjdCogaGFuZGxlX2RhdGE7Ci0gICAgUHlPYmplY3QqIGhhbmRsZV9lbmQ7CisgICAgUHlPYmplY3QgKmhhbmRsZV9jb21tZW50OworICAgIFB5T2JqZWN0ICpoYW5kbGVfcGk7CisgICAgUHlPYmplY3QgKmhhbmRsZV9kb2N0eXBlOwogCi0gICAgUHlPYmplY3QqIGhhbmRsZV9jb21tZW50OwotICAgIFB5T2JqZWN0KiBoYW5kbGVfcGk7Ci0KLSAgICBQeU9iamVjdCogaGFuZGxlX2Nsb3NlOworICAgIFB5T2JqZWN0ICpoYW5kbGVfY2xvc2U7CiAKIH0gWE1MUGFyc2VyT2JqZWN0OwogCiBzdGF0aWMgUHlUeXBlT2JqZWN0IFhNTFBhcnNlcl9UeXBlOwogCisjZGVmaW5lIFhNTFBhcnNlcl9DaGVja0V4YWN0KG9wKSAoUHlfVFlQRShvcCkgPT0gJlhNTFBhcnNlcl9UeXBlKQorCiAvKiBoZWxwZXJzICovCiAKIExPQ0FMKFB5T2JqZWN0KikKQEAgLTIxMTMsNyArMjU2Myw3IEBACiAgICAgICAgICAgICBQeV9JTkNSRUYoa2V5KTsKICAgICAgICAgICAgIHRhZyA9IGtleTsKICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICAvKiBkZWNvZGUgdW5pdmVyc2FsIG5hbWUgKi8KICAgICAgICAgcCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHRhZyk7CiAgICAgICAgIHZhbHVlID0gUHlVbmljb2RlX0RlY29kZVVURjgocCwgc2l6ZSwgInN0cmljdCIpOwpAQCAtMjEzNSwyMCArMjU4NSwzOSBAQAogICAgIHJldHVybiB2YWx1ZTsKIH0KIAorLyogU2V0IHRoZSBQYXJzZUVycm9yIGV4Y2VwdGlvbiB3aXRoIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLgorICogSWYgbWVzc2FnZSBpcyBub3QgTlVMTCwgaXQncyB1c2VkIGFzIHRoZSBlcnJvciBzdHJpbmcuIE90aGVyd2lzZSwgdGhlCisgKiBtZXNzYWdlIHN0cmluZyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlIGdpdmVuIGVycm9yX2NvZGUuCisqLwogc3RhdGljIHZvaWQKLWV4cGF0X3NldF9lcnJvcihjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgbGluZSwgaW50IGNvbHVtbikKK2V4cGF0X3NldF9lcnJvcihlbnVtIFhNTF9FcnJvciBlcnJvcl9jb2RlLCBpbnQgbGluZSwgaW50IGNvbHVtbiwgY2hhciAqbWVzc2FnZSkKIHsKLSAgICBQeU9iamVjdCAqZXJyb3I7Ci0gICAgUHlPYmplY3QgKnBvc2l0aW9uOwotICAgIGNoYXIgYnVmZmVyWzI1Nl07CisgICAgUHlPYmplY3QgKmVycm1zZywgKmVycm9yLCAqcG9zaXRpb24sICpjb2RlOwogCi0gICAgc3ByaW50ZihidWZmZXIsICIlLjEwMHM6IGxpbmUgJWQsIGNvbHVtbiAlZCIsIG1lc3NhZ2UsIGxpbmUsIGNvbHVtbik7CisgICAgZXJybXNnID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVzOiBsaW5lICVkLCBjb2x1bW4gJWQiLAorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPyBtZXNzYWdlIDogRVhQQVQoRXJyb3JTdHJpbmcpKGVycm9yX2NvZGUpLAorICAgICAgICAgICAgICAgIGxpbmUsIGNvbHVtbik7CisgICAgaWYgKGVycm1zZyA9PSBOVUxMKQorICAgICAgICByZXR1cm47CiAKLSAgICBlcnJvciA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihlbGVtZW50dHJlZV9wYXJzZWVycm9yX29iaiwgInMiLCBidWZmZXIpOworICAgIGVycm9yID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKGVsZW1lbnR0cmVlX3BhcnNlZXJyb3Jfb2JqLCAiTyIsIGVycm1zZyk7CisgICAgUHlfREVDUkVGKGVycm1zZyk7CiAgICAgaWYgKCFlcnJvcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgLyogYWRkIHBvc2l0aW9uIGF0dHJpYnV0ZSAqLworICAgIC8qIEFkZCBjb2RlIGFuZCBwb3NpdGlvbiBhdHRyaWJ1dGVzICovCisgICAgY29kZSA9IFB5TG9uZ19Gcm9tTG9uZygobG9uZyllcnJvcl9jb2RlKTsKKyAgICBpZiAoIWNvZGUpIHsKKyAgICAgICAgUHlfREVDUkVGKGVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhlcnJvciwgImNvZGUiLCBjb2RlKSA9PSAtMSkgeworICAgICAgICBQeV9ERUNSRUYoZXJyb3IpOworICAgICAgICBQeV9ERUNSRUYoY29kZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgUHlfREVDUkVGKGNvZGUpOworCiAgICAgcG9zaXRpb24gPSBQeV9CdWlsZFZhbHVlKCIoaWkpIiwgbGluZSwgY29sdW1uKTsKICAgICBpZiAoIXBvc2l0aW9uKSB7CiAgICAgICAgIFB5X0RFQ1JFRihlcnJvcik7CkBAIC0yMjAwLDkgKzI2NjksMTAgQEAKICAgICAgICAgY2hhciBtZXNzYWdlWzEyOF0gPSAidW5kZWZpbmVkIGVudGl0eSAiOwogICAgICAgICBzdHJuY2F0KG1lc3NhZ2UsIGRhdGFfaW4sIGRhdGFfbGVuIDwgMTAwP2RhdGFfbGVuOjEwMCk7CiAgICAgICAgIGV4cGF0X3NldF9lcnJvcigKLSAgICAgICAgICAgIG1lc3NhZ2UsCisgICAgICAgICAgICBYTUxfRVJST1JfVU5ERUZJTkVEX0VOVElUWSwKICAgICAgICAgICAgIEVYUEFUKEdldEVycm9yTGluZU51bWJlcikoc2VsZi0+cGFyc2VyKSwKLSAgICAgICAgICAgIEVYUEFUKEdldEVycm9yQ29sdW1uTnVtYmVyKShzZWxmLT5wYXJzZXIpCisgICAgICAgICAgICBFWFBBVChHZXRFcnJvckNvbHVtbk51bWJlcikoc2VsZi0+cGFyc2VyKSwKKyAgICAgICAgICAgIG1lc3NhZ2UKICAgICAgICAgICAgICk7CiAgICAgfQogCkBAIC0yMjUxLDE3ICsyNzIxLDIwIEBACiAgICAgICAgIGF0dHJpYiA9IFB5X05vbmU7CiAgICAgfQogCi0gICAgaWYgKFRyZWVCdWlsZGVyX0NoZWNrRXhhY3Qoc2VsZi0+dGFyZ2V0KSkKKyAgICAvKiBJZiB3ZSBnZXQgTm9uZSwgcGFzcyBhbiBlbXB0eSBkaWN0aW9uYXJ5IG9uICovCisgICAgaWYgKGF0dHJpYiA9PSBQeV9Ob25lKSB7CisgICAgICAgIFB5X0RFQ1JFRihhdHRyaWIpOworICAgICAgICBhdHRyaWIgPSBQeURpY3RfTmV3KCk7CisgICAgICAgIGlmICghYXR0cmliKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChUcmVlQnVpbGRlcl9DaGVja0V4YWN0KHNlbGYtPnRhcmdldCkpIHsKICAgICAgICAgLyogc2hvcnRjdXQgKi8KICAgICAgICAgcmVzID0gdHJlZWJ1aWxkZXJfaGFuZGxlX3N0YXJ0KChUcmVlQnVpbGRlck9iamVjdCopIHNlbGYtPnRhcmdldCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZywgYXR0cmliKTsKKyAgICB9CiAgICAgZWxzZSBpZiAoc2VsZi0+aGFuZGxlX3N0YXJ0KSB7Ci0gICAgICAgIGlmIChhdHRyaWIgPT0gUHlfTm9uZSkgewotICAgICAgICAgICAgUHlfREVDUkVGKGF0dHJpYik7Ci0gICAgICAgICAgICBhdHRyaWIgPSBQeURpY3RfTmV3KCk7Ci0gICAgICAgICAgICBpZiAoIWF0dHJpYikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KICAgICAgICAgcmVzID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKHNlbGYtPmhhbmRsZV9zdGFydCwgIk9PIiwgdGFnLCBhdHRyaWIpOwogICAgIH0gZWxzZQogICAgICAgICByZXMgPSBOVUxMOwpAQCAtMjM3MSw2ICsyODQ0LDc4IEBACiAgICAgfQogfQogCitzdGF0aWMgdm9pZCAKK2V4cGF0X3N0YXJ0X2RvY3R5cGVfaGFuZGxlcihYTUxQYXJzZXJPYmplY3QgKnNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgWE1MX0NoYXIgKmRvY3R5cGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBYTUxfQ2hhciAqc3lzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgWE1MX0NoYXIgKnB1YmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBoYXNfaW50ZXJuYWxfc3Vic2V0KQoreworICAgIFB5T2JqZWN0ICpzZWxmX3B5b2JqID0gKFB5T2JqZWN0ICopc2VsZjsKKyAgICBQeU9iamVjdCAqZG9jdHlwZV9uYW1lX29iaiwgKnN5c2lkX29iaiwgKnB1YmlkX29iajsKKyAgICBQeU9iamVjdCAqcGFyc2VyX2RvY3R5cGUgPSBOVUxMOworICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOworCisgICAgZG9jdHlwZV9uYW1lX29iaiA9IG1ha2V1bml2ZXJzYWwoc2VsZiwgZG9jdHlwZV9uYW1lKTsKKyAgICBpZiAoIWRvY3R5cGVfbmFtZV9vYmopCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChzeXNpZCkgeworICAgICAgICBzeXNpZF9vYmogPSBtYWtldW5pdmVyc2FsKHNlbGYsIHN5c2lkKTsKKyAgICAgICAgaWYgKCFzeXNpZF9vYmopIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihkb2N0eXBlX25hbWVfb2JqKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgc3lzaWRfb2JqID0gUHlfTm9uZTsKKyAgICB9CisKKyAgICBpZiAocHViaWQpIHsKKyAgICAgICAgcHViaWRfb2JqID0gbWFrZXVuaXZlcnNhbChzZWxmLCBwdWJpZCk7CisgICAgICAgIGlmICghcHViaWRfb2JqKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoZG9jdHlwZV9uYW1lX29iaik7CisgICAgICAgICAgICBQeV9ERUNSRUYoc3lzaWRfb2JqKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcHViaWRfb2JqID0gUHlfTm9uZTsKKyAgICB9CisKKyAgICAvKiBJZiB0aGUgdGFyZ2V0IGhhcyBhIGhhbmRsZXIgZm9yIGRvY3R5cGUsIGNhbGwgaXQuICovCisgICAgaWYgKHNlbGYtPmhhbmRsZV9kb2N0eXBlKSB7CisgICAgICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihzZWxmLT5oYW5kbGVfZG9jdHlwZSwgIk9PTyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0eXBlX25hbWVfb2JqLCBwdWJpZF9vYmosIHN5c2lkX29iaik7CisgICAgICAgIFB5X0NMRUFSKHJlcyk7CisgICAgfQorCisgICAgLyogTm93IHNlZSBpZiB0aGUgcGFyc2VyIGl0c2VsZiBoYXMgYSBkb2N0eXBlIG1ldGhvZC4gSWYgeWVzIGFuZCBpdCdzCisgICAgICogYSBzdWJjbGFzcywgY2FsbCBpdCBidXQgd2FybiBhYm91dCBkZXByZWNhdGlvbi4gSWYgaXQncyBub3QgYSBzdWJjbGFzcworICAgICAqIChpLmUuIHZhbmlsbGEgWE1MUGFyc2VyKSwgZG8gbm90aGluZy4KKyAgICAgKi8KKyAgICBwYXJzZXJfZG9jdHlwZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoc2VsZl9weW9iaiwgImRvY3R5cGUiKTsKKyAgICBpZiAocGFyc2VyX2RvY3R5cGUpIHsKKyAgICAgICAgaWYgKCFYTUxQYXJzZXJfQ2hlY2tFeGFjdChzZWxmX3B5b2JqKSkgeworICAgICAgICAgICAgaWYgKFB5RXJyX1dhcm5FeChQeUV4Y19EZXByZWNhdGlvbldhcm5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoaXMgbWV0aG9kIG9mIFhNTFBhcnNlciBpcyBkZXByZWNhdGVkLiAgRGVmaW5lIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZG9jdHlwZSgpIG1ldGhvZCBvbiB0aGUgVHJlZUJ1aWxkZXIgdGFyZ2V0LiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSkgPCAwKSB7CisgICAgICAgICAgICAgICAgZ290byBjbGVhcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihwYXJzZXJfZG9jdHlwZSwgIk9PTyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9jdHlwZV9uYW1lX29iaiwgcHViaWRfb2JqLCBzeXNpZF9vYmopOworICAgICAgICAgICAgUHlfQ0xFQVIocmVzKTsKKyAgICAgICAgfQorICAgIH0KKworY2xlYXI6CisgICAgUHlfWERFQ1JFRihwYXJzZXJfZG9jdHlwZSk7CisgICAgUHlfREVDUkVGKGRvY3R5cGVfbmFtZV9vYmopOworICAgIFB5X0RFQ1JFRihwdWJpZF9vYmopOworICAgIFB5X0RFQ1JFRihzeXNpZF9vYmopOworfQorCiBzdGF0aWMgdm9pZAogZXhwYXRfcGlfaGFuZGxlcihYTUxQYXJzZXJPYmplY3QqIHNlbGYsIGNvbnN0IFhNTF9DaGFyKiB0YXJnZXRfaW4sCiAgICAgICAgICAgICAgICAgIGNvbnN0IFhNTF9DaGFyKiBkYXRhX2luKQpAQCAtMjM5OSwyOSArMjk0NCwzMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9FbmNvZGluZyAqaW5mbykKIHsKICAgICBQeU9iamVjdCogdTsKLSAgICBQeV9VTklDT0RFKiBwOwogICAgIHVuc2lnbmVkIGNoYXIgc1syNTZdOwogICAgIGludCBpOworICAgIHZvaWQgKmRhdGE7CisgICAgdW5zaWduZWQgaW50IGtpbmQ7CiAKICAgICBtZW1zZXQoaW5mbywgMCwgc2l6ZW9mKFhNTF9FbmNvZGluZykpOwogCiAgICAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQogICAgICAgICBzW2ldID0gaTsKLSAgICAKKwogICAgIHUgPSBQeVVuaWNvZGVfRGVjb2RlKChjaGFyKikgcywgMjU2LCBuYW1lLCAicmVwbGFjZSIpOwogICAgIGlmICghdSkKICAgICAgICAgcmV0dXJuIFhNTF9TVEFUVVNfRVJST1I7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1KSkKKyAgICAgICAgcmV0dXJuIFhNTF9TVEFUVVNfRVJST1I7CiAKLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHUpICE9IDI1NikgeworICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSCh1KSAhPSAyNTYpIHsKICAgICAgICAgUHlfREVDUkVGKHUpOwogICAgICAgICByZXR1cm4gWE1MX1NUQVRVU19FUlJPUjsKICAgICB9CiAKLSAgICBwID0gUHlVbmljb2RlX0FTX1VOSUNPREUodSk7Ci0KKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQodSk7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHUpOwogICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewotICAgICAgICBpZiAocFtpXSAhPSBQeV9VTklDT0RFX1JFUExBQ0VNRU5UX0NIQVJBQ1RFUikKLSAgICAgICAgICAgIGluZm8tPm1hcFtpXSA9IHBbaV07CisgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKKyAgICAgICAgaWYgKGNoICE9IFB5X1VOSUNPREVfUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKQorICAgICAgICAgICAgaW5mby0+bWFwW2ldID0gY2g7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGluZm8tPm1hcFtpXSA9IC0xOwogICAgIH0KQEAgLTI0MzIsMTIyICsyOTgxLDEzMSBAQAogfQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotLyogY29uc3RydWN0b3IgYW5kIGRlc3RydWN0b3IgKi8KIAotc3RhdGljIFB5T2JqZWN0KgoteG1scGFyc2VyKFB5T2JqZWN0KiBzZWxmXywgUHlPYmplY3QqIGFyZ3MsIFB5T2JqZWN0KiBrdykKK3N0YXRpYyBQeU9iamVjdCAqCit4bWxwYXJzZXJfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewotICAgIFhNTFBhcnNlck9iamVjdCogc2VsZjsKLSAgICAvKiBGSVhNRTogZG9lcyB0aGlzIG5lZWQgdG8gYmUgc3RhdGljPyAqLwotICAgIHN0YXRpYyBYTUxfTWVtb3J5X0hhbmRsaW5nX1N1aXRlIG1lbW9yeV9oYW5kbGVyOwotCi0gICAgUHlPYmplY3QqIHRhcmdldCA9IE5VTEw7Ci0gICAgY2hhciogZW5jb2RpbmcgPSBOVUxMOwotICAgIHN0YXRpYyBjaGFyKiBrd2xpc3RbXSA9IHsgInRhcmdldCIsICJlbmNvZGluZyIsIE5VTEwgfTsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrdywgInxPejpYTUxQYXJzZXIiLCBrd2xpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnRhcmdldCwgJmVuY29kaW5nKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSNpZiBkZWZpbmVkKFVTRV9QWUVYUEFUX0NBUEkpCi0gICAgaWYgKCFleHBhdF9jYXBpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZygKLSAgICAgICAgICAgIFB5RXhjX1J1bnRpbWVFcnJvciwgImNhbm5vdCBsb2FkIGRpc3BhdGNoIHRhYmxlIGZyb20gcHlleHBhdCIKLSAgICAgICAgICAgICk7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgIFhNTFBhcnNlck9iamVjdCAqc2VsZiA9IChYTUxQYXJzZXJPYmplY3QgKil0eXBlLT50cF9hbGxvYyh0eXBlLCAwKTsKKyAgICBpZiAoc2VsZikgeworICAgICAgICBzZWxmLT5wYXJzZXIgPSBOVUxMOworICAgICAgICBzZWxmLT50YXJnZXQgPSBzZWxmLT5lbnRpdHkgPSBzZWxmLT5uYW1lcyA9IE5VTEw7CisgICAgICAgIHNlbGYtPmhhbmRsZV9zdGFydCA9IHNlbGYtPmhhbmRsZV9kYXRhID0gc2VsZi0+aGFuZGxlX2VuZCA9IE5VTEw7CisgICAgICAgIHNlbGYtPmhhbmRsZV9jb21tZW50ID0gc2VsZi0+aGFuZGxlX3BpID0gc2VsZi0+aGFuZGxlX2Nsb3NlID0gTlVMTDsKKyAgICAgICAgc2VsZi0+aGFuZGxlX2RvY3R5cGUgPSBOVUxMOwogICAgIH0KLSNlbmRpZgorICAgIHJldHVybiAoUHlPYmplY3QgKilzZWxmOworfQogCi0gICAgc2VsZiA9IFB5T2JqZWN0X05ldyhYTUxQYXJzZXJPYmplY3QsICZYTUxQYXJzZXJfVHlwZSk7Ci0gICAgaWYgKHNlbGYgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7CitzdGF0aWMgaW50Cit4bWxwYXJzZXJfaW5pdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQoreworICAgIFhNTFBhcnNlck9iamVjdCAqc2VsZl94cCA9IChYTUxQYXJzZXJPYmplY3QgKilzZWxmOworICAgIFB5T2JqZWN0ICp0YXJnZXQgPSBOVUxMLCAqaHRtbCA9IE5VTEw7CisgICAgY2hhciAqZW5jb2RpbmcgPSBOVUxMOworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsiaHRtbCIsICJ0YXJnZXQiLCAiZW5jb2RpbmciLCAwfTsKIAotICAgIHNlbGYtPmVudGl0eSA9IFB5RGljdF9OZXcoKTsKLSAgICBpZiAoIXNlbGYtPmVudGl0eSkgewotICAgICAgICBQeU9iamVjdF9EZWwoc2VsZik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICAgCi0gICAgc2VsZi0+bmFtZXMgPSBQeURpY3RfTmV3KCk7Ci0gICAgaWYgKCFzZWxmLT5uYW1lcykgewotICAgICAgICBQeU9iamVjdF9EZWwoc2VsZi0+ZW50aXR5KTsKLSAgICAgICAgUHlPYmplY3RfRGVsKHNlbGYpOwotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE9PejpYTUxQYXJzZXIiLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmh0bWwsICZ0YXJnZXQsICZlbmNvZGluZykpIHsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIG1lbW9yeV9oYW5kbGVyLm1hbGxvY19mY24gPSBQeU9iamVjdF9NYWxsb2M7Ci0gICAgbWVtb3J5X2hhbmRsZXIucmVhbGxvY19mY24gPSBQeU9iamVjdF9SZWFsbG9jOwotICAgIG1lbW9yeV9oYW5kbGVyLmZyZWVfZmNuID0gUHlPYmplY3RfRnJlZTsKKyAgICBzZWxmX3hwLT5lbnRpdHkgPSBQeURpY3RfTmV3KCk7CisgICAgaWYgKCFzZWxmX3hwLT5lbnRpdHkpCisgICAgICAgIHJldHVybiAtMTsKIAotICAgIHNlbGYtPnBhcnNlciA9IEVYUEFUKFBhcnNlckNyZWF0ZV9NTSkoZW5jb2RpbmcsICZtZW1vcnlfaGFuZGxlciwgIn0iKTsKLSAgICBpZiAoIXNlbGYtPnBhcnNlcikgewotICAgICAgICBQeU9iamVjdF9EZWwoc2VsZi0+bmFtZXMpOwotICAgICAgICBQeU9iamVjdF9EZWwoc2VsZi0+ZW50aXR5KTsKLSAgICAgICAgUHlPYmplY3RfRGVsKHNlbGYpOworICAgIHNlbGZfeHAtPm5hbWVzID0gUHlEaWN0X05ldygpOworICAgIGlmICghc2VsZl94cC0+bmFtZXMpIHsKKyAgICAgICAgUHlfWERFQ1JFRihzZWxmX3hwLT5lbnRpdHkpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgc2VsZl94cC0+cGFyc2VyID0gRVhQQVQoUGFyc2VyQ3JlYXRlX01NKShlbmNvZGluZywgJkV4cGF0TWVtb3J5SGFuZGxlciwgIn0iKTsKKyAgICBpZiAoIXNlbGZfeHAtPnBhcnNlcikgeworICAgICAgICBQeV9YREVDUkVGKHNlbGZfeHAtPmVudGl0eSk7CisgICAgICAgIFB5X1hERUNSRUYoc2VsZl94cC0+bmFtZXMpOwogICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIC8qIHNldHVwIHRhcmdldCBoYW5kbGVycyAqLwotICAgIGlmICghdGFyZ2V0KSB7Ci0gICAgICAgIHRhcmdldCA9IHRyZWVidWlsZGVyX25ldygpOwotICAgICAgICBpZiAoIXRhcmdldCkgewotICAgICAgICAgICAgRVhQQVQoUGFyc2VyRnJlZSkoc2VsZi0+cGFyc2VyKTsKLSAgICAgICAgICAgIFB5T2JqZWN0X0RlbChzZWxmLT5uYW1lcyk7Ci0gICAgICAgICAgICBQeU9iamVjdF9EZWwoc2VsZi0+ZW50aXR5KTsKLSAgICAgICAgICAgIFB5T2JqZWN0X0RlbChzZWxmKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgfSBlbHNlCisgICAgaWYgKHRhcmdldCkgewogICAgICAgICBQeV9JTkNSRUYodGFyZ2V0KTsKLSAgICBzZWxmLT50YXJnZXQgPSB0YXJnZXQ7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdGFyZ2V0ID0gdHJlZWJ1aWxkZXJfbmV3KCZUcmVlQnVpbGRlcl9UeXBlLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgaWYgKCF0YXJnZXQpIHsKKyAgICAgICAgICAgIFB5X1hERUNSRUYoc2VsZl94cC0+ZW50aXR5KTsKKyAgICAgICAgICAgIFB5X1hERUNSRUYoc2VsZl94cC0+bmFtZXMpOworICAgICAgICAgICAgRVhQQVQoUGFyc2VyRnJlZSkoc2VsZl94cC0+cGFyc2VyKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKyAgICBzZWxmX3hwLT50YXJnZXQgPSB0YXJnZXQ7CiAKLSAgICBzZWxmLT5oYW5kbGVfeG1sID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh0YXJnZXQsICJ4bWwiKTsKLSAgICBzZWxmLT5oYW5kbGVfc3RhcnQgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHRhcmdldCwgInN0YXJ0Iik7Ci0gICAgc2VsZi0+aGFuZGxlX2RhdGEgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHRhcmdldCwgImRhdGEiKTsKLSAgICBzZWxmLT5oYW5kbGVfZW5kID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh0YXJnZXQsICJlbmQiKTsKLSAgICBzZWxmLT5oYW5kbGVfY29tbWVudCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcodGFyZ2V0LCAiY29tbWVudCIpOwotICAgIHNlbGYtPmhhbmRsZV9waSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcodGFyZ2V0LCAicGkiKTsKLSAgICBzZWxmLT5oYW5kbGVfY2xvc2UgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHRhcmdldCwgImNsb3NlIik7CisgICAgc2VsZl94cC0+aGFuZGxlX3N0YXJ0ID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh0YXJnZXQsICJzdGFydCIpOworICAgIHNlbGZfeHAtPmhhbmRsZV9kYXRhID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh0YXJnZXQsICJkYXRhIik7CisgICAgc2VsZl94cC0+aGFuZGxlX2VuZCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcodGFyZ2V0LCAiZW5kIik7CisgICAgc2VsZl94cC0+aGFuZGxlX2NvbW1lbnQgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHRhcmdldCwgImNvbW1lbnQiKTsKKyAgICBzZWxmX3hwLT5oYW5kbGVfcGkgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHRhcmdldCwgInBpIik7CisgICAgc2VsZl94cC0+aGFuZGxlX2Nsb3NlID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh0YXJnZXQsICJjbG9zZSIpOworICAgIHNlbGZfeHAtPmhhbmRsZV9kb2N0eXBlID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh0YXJnZXQsICJkb2N0eXBlIik7CiAKICAgICBQeUVycl9DbGVhcigpOwotCisgICAgCiAgICAgLyogY29uZmlndXJlIHBhcnNlciAqLwotICAgIEVYUEFUKFNldFVzZXJEYXRhKShzZWxmLT5wYXJzZXIsIHNlbGYpOworICAgIEVYUEFUKFNldFVzZXJEYXRhKShzZWxmX3hwLT5wYXJzZXIsIHNlbGZfeHApOwogICAgIEVYUEFUKFNldEVsZW1lbnRIYW5kbGVyKSgKLSAgICAgICAgc2VsZi0+cGFyc2VyLAorICAgICAgICBzZWxmX3hwLT5wYXJzZXIsCiAgICAgICAgIChYTUxfU3RhcnRFbGVtZW50SGFuZGxlcikgZXhwYXRfc3RhcnRfaGFuZGxlciwKICAgICAgICAgKFhNTF9FbmRFbGVtZW50SGFuZGxlcikgZXhwYXRfZW5kX2hhbmRsZXIKICAgICAgICAgKTsKICAgICBFWFBBVChTZXREZWZhdWx0SGFuZGxlckV4cGFuZCkoCi0gICAgICAgIHNlbGYtPnBhcnNlciwKKyAgICAgICAgc2VsZl94cC0+cGFyc2VyLAogICAgICAgICAoWE1MX0RlZmF1bHRIYW5kbGVyKSBleHBhdF9kZWZhdWx0X2hhbmRsZXIKICAgICAgICAgKTsKICAgICBFWFBBVChTZXRDaGFyYWN0ZXJEYXRhSGFuZGxlcikoCi0gICAgICAgIHNlbGYtPnBhcnNlciwKKyAgICAgICAgc2VsZl94cC0+cGFyc2VyLAogICAgICAgICAoWE1MX0NoYXJhY3RlckRhdGFIYW5kbGVyKSBleHBhdF9kYXRhX2hhbmRsZXIKICAgICAgICAgKTsKLSAgICBpZiAoc2VsZi0+aGFuZGxlX2NvbW1lbnQpCisgICAgaWYgKHNlbGZfeHAtPmhhbmRsZV9jb21tZW50KQogICAgICAgICBFWFBBVChTZXRDb21tZW50SGFuZGxlcikoCi0gICAgICAgICAgICBzZWxmLT5wYXJzZXIsCisgICAgICAgICAgICBzZWxmX3hwLT5wYXJzZXIsCiAgICAgICAgICAgICAoWE1MX0NvbW1lbnRIYW5kbGVyKSBleHBhdF9jb21tZW50X2hhbmRsZXIKICAgICAgICAgICAgICk7Ci0gICAgaWYgKHNlbGYtPmhhbmRsZV9waSkKKyAgICBpZiAoc2VsZl94cC0+aGFuZGxlX3BpKQogICAgICAgICBFWFBBVChTZXRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25IYW5kbGVyKSgKLSAgICAgICAgICAgIHNlbGYtPnBhcnNlciwKKyAgICAgICAgICAgIHNlbGZfeHAtPnBhcnNlciwKICAgICAgICAgICAgIChYTUxfUHJvY2Vzc2luZ0luc3RydWN0aW9uSGFuZGxlcikgZXhwYXRfcGlfaGFuZGxlcgogICAgICAgICAgICAgKTsKKyAgICBFWFBBVChTZXRTdGFydERvY3R5cGVEZWNsSGFuZGxlcikoCisgICAgICAgIHNlbGZfeHAtPnBhcnNlciwKKyAgICAgICAgKFhNTF9TdGFydERvY3R5cGVEZWNsSGFuZGxlcikgZXhwYXRfc3RhcnRfZG9jdHlwZV9oYW5kbGVyCisgICAgICAgICk7CiAgICAgRVhQQVQoU2V0VW5rbm93bkVuY29kaW5nSGFuZGxlcikoCi0gICAgICAgIHNlbGYtPnBhcnNlciwKKyAgICAgICAgc2VsZl94cC0+cGFyc2VyLAogICAgICAgICAoWE1MX1Vua25vd25FbmNvZGluZ0hhbmRsZXIpIGV4cGF0X3Vua25vd25fZW5jb2RpbmdfaGFuZGxlciwgTlVMTAogICAgICAgICApOwogCi0gICAgQUxMT0Moc2l6ZW9mKFhNTFBhcnNlck9iamVjdCksICJjcmVhdGUgZXhwYXRwYXJzZXIiKTsKLQotICAgIHJldHVybiAoUHlPYmplY3QqKSBzZWxmOworICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZAoteG1scGFyc2VyX2RlYWxsb2MoWE1MUGFyc2VyT2JqZWN0KiBzZWxmKQorc3RhdGljIGludAoreG1scGFyc2VyX2djX3RyYXZlcnNlKFhNTFBhcnNlck9iamVjdCAqc2VsZiwgdmlzaXRwcm9jIHZpc2l0LCB2b2lkICphcmcpCit7CisgICAgUHlfVklTSVQoc2VsZi0+aGFuZGxlX2Nsb3NlKTsKKyAgICBQeV9WSVNJVChzZWxmLT5oYW5kbGVfcGkpOworICAgIFB5X1ZJU0lUKHNlbGYtPmhhbmRsZV9jb21tZW50KTsKKyAgICBQeV9WSVNJVChzZWxmLT5oYW5kbGVfZW5kKTsKKyAgICBQeV9WSVNJVChzZWxmLT5oYW5kbGVfZGF0YSk7CisgICAgUHlfVklTSVQoc2VsZi0+aGFuZGxlX3N0YXJ0KTsKKworICAgIFB5X1ZJU0lUKHNlbGYtPnRhcmdldCk7CisgICAgUHlfVklTSVQoc2VsZi0+ZW50aXR5KTsKKyAgICBQeV9WSVNJVChzZWxmLT5uYW1lcyk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAoreG1scGFyc2VyX2djX2NsZWFyKFhNTFBhcnNlck9iamVjdCAqc2VsZikKIHsKICAgICBFWFBBVChQYXJzZXJGcmVlKShzZWxmLT5wYXJzZXIpOwogCkBAIC0yNTU3LDE5ICszMTE1LDIyIEBACiAgICAgUHlfWERFQ1JFRihzZWxmLT5oYW5kbGVfZW5kKTsKICAgICBQeV9YREVDUkVGKHNlbGYtPmhhbmRsZV9kYXRhKTsKICAgICBQeV9YREVDUkVGKHNlbGYtPmhhbmRsZV9zdGFydCk7Ci0gICAgUHlfWERFQ1JFRihzZWxmLT5oYW5kbGVfeG1sKTsKKyAgICBQeV9YREVDUkVGKHNlbGYtPmhhbmRsZV9kb2N0eXBlKTsKIAotICAgIFB5X0RFQ1JFRihzZWxmLT50YXJnZXQpOwotICAgIFB5X0RFQ1JFRihzZWxmLT5lbnRpdHkpOwotICAgIFB5X0RFQ1JFRihzZWxmLT5uYW1lcyk7CisgICAgUHlfWERFQ1JFRihzZWxmLT50YXJnZXQpOworICAgIFB5X1hERUNSRUYoc2VsZi0+ZW50aXR5KTsKKyAgICBQeV9YREVDUkVGKHNlbGYtPm5hbWVzKTsKIAotICAgIFJFTEVBU0Uoc2l6ZW9mKFhNTFBhcnNlck9iamVjdCksICJkZXN0cm95IGV4cGF0cGFyc2VyIik7Ci0KLSAgICBQeU9iamVjdF9EZWwoc2VsZik7CisgICAgcmV0dXJuIDA7CiB9CiAKLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0vKiBtZXRob2RzIChpbiBhbHBoYWJldGljYWwgb3JkZXIpICovCitzdGF0aWMgdm9pZAoreG1scGFyc2VyX2RlYWxsb2MoWE1MUGFyc2VyT2JqZWN0KiBzZWxmKQoreworICAgIFB5T2JqZWN0X0dDX1VuVHJhY2soc2VsZik7CisgICAgeG1scGFyc2VyX2djX2NsZWFyKHNlbGYpOworICAgIFB5X1RZUEUoc2VsZiktPnRwX2ZyZWUoKFB5T2JqZWN0ICopc2VsZik7Cit9CiAKIExPQ0FMKFB5T2JqZWN0KikKIGV4cGF0X3BhcnNlKFhNTFBhcnNlck9iamVjdCogc2VsZiwgY2hhciogZGF0YSwgaW50IGRhdGFfbGVuLCBpbnQgZmluYWwpCkBAIC0yNTgzLDkgKzMxNDQsMTAgQEAKIAogICAgIGlmICghb2spIHsKICAgICAgICAgZXhwYXRfc2V0X2Vycm9yKAotICAgICAgICAgICAgRVhQQVQoRXJyb3JTdHJpbmcpKEVYUEFUKEdldEVycm9yQ29kZSkoc2VsZi0+cGFyc2VyKSksCisgICAgICAgICAgICBFWFBBVChHZXRFcnJvckNvZGUpKHNlbGYtPnBhcnNlciksCiAgICAgICAgICAgICBFWFBBVChHZXRFcnJvckxpbmVOdW1iZXIpKHNlbGYtPnBhcnNlciksCi0gICAgICAgICAgICBFWFBBVChHZXRFcnJvckNvbHVtbk51bWJlcikoc2VsZi0+cGFyc2VyKQorICAgICAgICAgICAgRVhQQVQoR2V0RXJyb3JDb2x1bW5OdW1iZXIpKHNlbGYtPnBhcnNlciksCisgICAgICAgICAgICBOVUxMCiAgICAgICAgICAgICApOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC0yNjM2LDYgKzMxOTgsNyBAQAogCiAgICAgUHlPYmplY3QqIHJlYWRlcjsKICAgICBQeU9iamVjdCogYnVmZmVyOworICAgIFB5T2JqZWN0KiB0ZW1wOwogICAgIFB5T2JqZWN0KiByZXM7CiAKICAgICBQeU9iamVjdCogZmlsZW9iajsKQEAgLTI2NDUsNyArMzIwOCw3IEBACiAgICAgcmVhZGVyID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhmaWxlb2JqLCAicmVhZCIpOwogICAgIGlmICghcmVhZGVyKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAKKwogICAgIC8qIHJlYWQgZnJvbSBvcGVuIGZpbGUgb2JqZWN0ICovCiAgICAgZm9yICg7OykgewogCkBAIC0yNjU3LDcgKzMyMjAsMjcgQEAKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFQeUJ5dGVzX0NoZWNrRXhhY3QoYnVmZmVyKSB8fCBQeUJ5dGVzX0dFVF9TSVpFKGJ1ZmZlcikgPT0gMCkgeworICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QoYnVmZmVyKSkgeworICAgICAgICAgICAgLyogQSB1bmljb2RlIG9iamVjdCBpcyBlbmNvZGVkIGludG8gYnl0ZXMgdXNpbmcgVVRGLTggKi8KKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUoYnVmZmVyKSA9PSAwKSB7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGJ1ZmZlcik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0ZW1wID0gUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyhidWZmZXIsICJ1dGYtOCIsICJzdXJyb2dhdGVwYXNzIik7CisgICAgICAgICAgICBpZiAoIXRlbXApIHsKKyAgICAgICAgICAgICAgICAvKiBQcm9wYWdhdGUgZXhjZXB0aW9uIGZyb20gUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyAqLworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihidWZmZXIpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZWFkZXIpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKiBIZXJlIHdlIG5vIGxvbmdlciBuZWVkIHRoZSBvcmlnaW5hbCBidWZmZXIgc2luY2UgaXQgY29udGFpbnMKKyAgICAgICAgICAgICAqIHVuaWNvZGUuIE1ha2UgaXQgcG9pbnQgdG8gdGhlIGVuY29kZWQgYnl0ZXMgb2JqZWN0LgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIFB5X0RFQ1JFRihidWZmZXIpOworICAgICAgICAgICAgYnVmZmVyID0gdGVtcDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICghUHlCeXRlc19DaGVja0V4YWN0KGJ1ZmZlcikgfHwgUHlCeXRlc19HRVRfU0laRShidWZmZXIpID09IDApIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihidWZmZXIpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTI2ODksNyArMzI3MiwxMyBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QqCi14bWxwYXJzZXJfc2V0ZXZlbnRzKFhNTFBhcnNlck9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCit4bWxwYXJzZXJfZG9jdHlwZShYTUxQYXJzZXJPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgUHlPYmplY3QqCit4bWxwYXJzZXJfc2V0ZXZlbnRzKFhNTFBhcnNlck9iamVjdCAqc2VsZiwgUHlPYmplY3QqIGFyZ3MpCiB7CiAgICAgLyogYWN0aXZhdGUgZWxlbWVudCBldmVudCByZXBvcnRpbmcgKi8KIApAQCAtMjcwNSw3ICszMjk0LDcgQEAKICAgICBpZiAoIVRyZWVCdWlsZGVyX0NoZWNrRXhhY3Qoc2VsZi0+dGFyZ2V0KSkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoCiAgICAgICAgICAgICBQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAiZXZlbnQgaGFuZGxpbmcgb25seSBzdXBwb3J0ZWQgZm9yIGNFbGVtZW50VHJlZS5UcmVlYnVpbGRlciAiCisgICAgICAgICAgICAiZXZlbnQgaGFuZGxpbmcgb25seSBzdXBwb3J0ZWQgZm9yIEVsZW1lbnRUcmVlLlRyZWVCdWlsZGVyICIKICAgICAgICAgICAgICJ0YXJnZXRzIgogICAgICAgICAgICAgKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0yNzkzLDEwICszMzgyLDExIEBACiAgICAgeyJjbG9zZSIsIChQeUNGdW5jdGlvbikgeG1scGFyc2VyX2Nsb3NlLCBNRVRIX1ZBUkFSR1N9LAogICAgIHsiX3BhcnNlIiwgKFB5Q0Z1bmN0aW9uKSB4bWxwYXJzZXJfcGFyc2UsIE1FVEhfVkFSQVJHU30sCiAgICAgeyJfc2V0ZXZlbnRzIiwgKFB5Q0Z1bmN0aW9uKSB4bWxwYXJzZXJfc2V0ZXZlbnRzLCBNRVRIX1ZBUkFSR1N9LAorICAgIHsiZG9jdHlwZSIsIChQeUNGdW5jdGlvbikgeG1scGFyc2VyX2RvY3R5cGUsIE1FVEhfVkFSQVJHU30sCiAgICAge05VTEwsIE5VTEx9CiB9OwogCi1zdGF0aWMgUHlPYmplY3QqICAKK3N0YXRpYyBQeU9iamVjdCoKIHhtbHBhcnNlcl9nZXRhdHRybyhYTUxQYXJzZXJPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBuYW1lb2JqKQogewogICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sobmFtZW9iaikpIHsKQEAgLTI4MjQsMzEgKzM0MTQsNDIgQEAKICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKICAgICAiWE1MUGFyc2VyIiwgc2l6ZW9mKFhNTFBhcnNlck9iamVjdCksIDAsCiAgICAgLyogbWV0aG9kcyAqLwotICAgIChkZXN0cnVjdG9yKXhtbHBhcnNlcl9kZWFsbG9jLCAvKiB0cF9kZWFsbG9jICovCi0gICAgMCwgLyogdHBfcHJpbnQgKi8KLSAgICAwLCAvKiB0cF9nZXRhdHRyICovCi0gICAgMCwgLyogdHBfc2V0YXR0ciAqLwotICAgIDAsIC8qIHRwX3Jlc2VydmVkICovCi0gICAgMCwgLyogdHBfcmVwciAqLwotICAgIDAsIC8qIHRwX2FzX251bWJlciAqLwotICAgIDAsIC8qIHRwX2FzX3NlcXVlbmNlICovCi0gICAgMCwgLyogdHBfYXNfbWFwcGluZyAqLwotICAgIDAsIC8qIHRwX2hhc2ggKi8KLSAgICAwLCAvKiB0cF9jYWxsICovCi0gICAgMCwgLyogdHBfc3RyICovCi0gICAgKGdldGF0dHJvZnVuYyl4bWxwYXJzZXJfZ2V0YXR0cm8sIC8qIHRwX2dldGF0dHJvICovCi0gICAgMCwgLyogdHBfc2V0YXR0cm8gKi8KLSAgICAwLCAvKiB0cF9hc19idWZmZXIgKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQsIC8qIHRwX2ZsYWdzICovCi0gICAgMCwgLyogdHBfZG9jICovCi0gICAgMCwgLyogdHBfdHJhdmVyc2UgKi8KLSAgICAwLCAvKiB0cF9jbGVhciAqLwotICAgIDAsIC8qIHRwX3JpY2hjb21wYXJlICovCi0gICAgMCwgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICAwLCAvKiB0cF9pdGVyICovCi0gICAgMCwgLyogdHBfaXRlcm5leHQgKi8KLSAgICB4bWxwYXJzZXJfbWV0aG9kcywgLyogdHBfbWV0aG9kcyAqLwotICAgIDAsIC8qIHRwX21lbWJlcnMgKi8KKyAgICAoZGVzdHJ1Y3Rvcil4bWxwYXJzZXJfZGVhbGxvYywgICAgICAgICAgICAgICAgICAvKiB0cF9kZWFsbG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3Jlc2VydmVkICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVwciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbWFwcGluZyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCisgICAgKGdldGF0dHJvZnVuYyl4bWxwYXJzZXJfZ2V0YXR0cm8sICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCB8IFB5X1RQRkxBR1NfQkFTRVRZUEUgfCBQeV9UUEZMQUdTX0hBVkVfR0MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZmxhZ3MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KKyAgICAodHJhdmVyc2Vwcm9jKXhtbHBhcnNlcl9nY190cmF2ZXJzZSwgICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgIChpbnF1aXJ5KXhtbHBhcnNlcl9nY19jbGVhciwgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLworICAgIHhtbHBhcnNlcl9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9zZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCisgICAgKGluaXRwcm9jKXhtbHBhcnNlcl9pbml0LCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLworICAgIFB5VHlwZV9HZW5lcmljQWxsb2MsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FsbG9jICovCisgICAgeG1scGFyc2VyX25ldywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZnJlZSAqLwogfTsKIAogI2VuZGlmCkBAIC0yODU3LDEzICszNDU4LDcgQEAKIC8qIHB5dGhvbiBtb2R1bGUgaW50ZXJmYWNlICovCiAKIHN0YXRpYyBQeU1ldGhvZERlZiBfZnVuY3Rpb25zW10gPSB7Ci0gICAgeyJFbGVtZW50IiwgKFB5Q0Z1bmN0aW9uKSBlbGVtZW50LCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEU30sCiAgICAgeyJTdWJFbGVtZW50IiwgKFB5Q0Z1bmN0aW9uKSBzdWJlbGVtZW50LCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEU30sCi0gICAgeyJUcmVlQnVpbGRlciIsIChQeUNGdW5jdGlvbikgdHJlZWJ1aWxkZXIsIE1FVEhfVkFSQVJHU30sCi0jaWYgZGVmaW5lZChVU0VfRVhQQVQpCi0gICAgeyJYTUxQYXJzZXIiLCAoUHlDRnVuY3Rpb24pIHhtbHBhcnNlciwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFN9LAotICAgIHsiWE1MVHJlZUJ1aWxkZXIiLCAoUHlDRnVuY3Rpb24pIHhtbHBhcnNlciwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFN9LAotI2VuZGlmCiAgICAge05VTEwsIE5VTEx9CiB9OwogCkBAIC0yODgzLDkgKzM0NzgsNyBAQAogUHlNT0RJTklUX0ZVTkMKIFB5SW5pdF9fZWxlbWVudHRyZWUodm9pZCkKIHsKLSAgICBQeU9iamVjdCogbTsKLSAgICBQeU9iamVjdCogZzsKLSAgICBjaGFyKiBib290c3RyYXA7CisgICAgUHlPYmplY3QgKm0sICp0ZW1wOwogCiAgICAgLyogSW5pdGlhbGl6ZSBvYmplY3QgdHlwZXMgKi8KICAgICBpZiAoUHlUeXBlX1JlYWR5KCZUcmVlQnVpbGRlcl9UeXBlKSA8IDApCkBAIC0yOTAxLDIxMiArMzQ5NCwxNSBAQAogICAgIGlmICghbSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICAvKiBUaGUgY29kZSBiZWxvdyByZXF1aXJlcyB0aGF0IHRoZSBtb2R1bGUgZ2V0cyBhbHJlYWR5IGFkZGVkCi0gICAgICAgdG8gc3lzLm1vZHVsZXMuICovCi0gICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoUHlJbXBvcnRfR2V0TW9kdWxlRGljdCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgIF9lbGVtZW50dHJlZW1vZHVsZS5tX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgbSk7CisgICAgaWYgKCEodGVtcCA9IFB5SW1wb3J0X0ltcG9ydE1vZHVsZSgiY29weSIpKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgZWxlbWVudHRyZWVfZGVlcGNvcHlfb2JqID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh0ZW1wLCAiZGVlcGNvcHkiKTsKKyAgICBQeV9YREVDUkVGKHRlbXApOwogCi0gICAgLyogcHl0aG9uIGdsdWUgY29kZSAqLwotCi0gICAgZyA9IFB5RGljdF9OZXcoKTsKLSAgICBpZiAoIWcpCisgICAgaWYgKCEoZWxlbWVudHBhdGhfb2JqID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlKCJ4bWwuZXRyZWUuRWxlbWVudFBhdGgiKSkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZywgIl9fYnVpbHRpbnNfXyIsIFB5RXZhbF9HZXRCdWlsdGlucygpKTsKLQotICAgIGJvb3RzdHJhcCA9ICgKLQotICAgICAgICAiZnJvbSBjb3B5IGltcG9ydCBjb3B5LCBkZWVwY29weVxuIgotCi0gICAgICAgICJ0cnk6XG4iCi0gICAgICAgICIgIGZyb20geG1sLmV0cmVlIGltcG9ydCBFbGVtZW50VHJlZVxuIgotICAgICAgICAiZXhjZXB0IEltcG9ydEVycm9yOlxuIgotICAgICAgICAiICBpbXBvcnQgRWxlbWVudFRyZWVcbiIKLSAgICAgICAgIkVUID0gRWxlbWVudFRyZWVcbiIKLSAgICAgICAgImRlbCBFbGVtZW50VHJlZVxuIgotCi0gICAgICAgICJpbXBvcnQgX2VsZW1lbnR0cmVlIGFzIGNFbGVtZW50VHJlZVxuIgotCi0gICAgICAgICJ0cnk6XG4iIC8qIGNoZWNrIGlmIGNvcHkgd29ya3MgYXMgaXMgKi8KLSAgICAgICAgIiAgY29weShjRWxlbWVudFRyZWUuRWxlbWVudCgneCcpKVxuIgotICAgICAgICAiZXhjZXB0OlxuIgotICAgICAgICAiICBkZWYgY29weWVsZW1lbnQoZWxlbSk6XG4iCi0gICAgICAgICIgICAgcmV0dXJuIGVsZW1cbiIKLQotICAgICAgICAiY2xhc3MgQ29tbWVudFByb3h5OlxuIgotICAgICAgICAiIGRlZiBfX2NhbGxfXyhzZWxmLCB0ZXh0PU5vbmUpOlxuIgotICAgICAgICAiICBlbGVtZW50ID0gY0VsZW1lbnRUcmVlLkVsZW1lbnQoRVQuQ29tbWVudClcbiIKLSAgICAgICAgIiAgZWxlbWVudC50ZXh0ID0gdGV4dFxuIgotICAgICAgICAiICByZXR1cm4gZWxlbWVudFxuIgotICAgICAgICAiIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOlxuIgotICAgICAgICAiICByZXR1cm4gRVQuQ29tbWVudCA9PSBvdGhlclxuIgotICAgICAgICAiY0VsZW1lbnRUcmVlLkNvbW1lbnQgPSBDb21tZW50UHJveHkoKVxuIgotCi0gICAgICAgICJjbGFzcyBFbGVtZW50VHJlZShFVC5FbGVtZW50VHJlZSk6XG4iIC8qIHB1YmxpYyAqLwotICAgICAgICAiICBkZWYgcGFyc2Uoc2VsZiwgc291cmNlLCBwYXJzZXI9Tm9uZSk6XG4iCi0gICAgICAgICIgICAgY2xvc2Vfc291cmNlID0gRmFsc2VcbiIKLSAgICAgICAgIiAgICBpZiBub3QgaGFzYXR0cihzb3VyY2UsICdyZWFkJyk6XG4iCi0gICAgICAgICIgICAgICBzb3VyY2UgPSBvcGVuKHNvdXJjZSwgJ3JiJylcbiIKLSAgICAgICAgIiAgICAgIGNsb3NlX3NvdXJjZSA9IFRydWVcbiIKLSAgICAgICAgIiAgICB0cnk6XG4iCi0gICAgICAgICIgICAgICBpZiBwYXJzZXIgaXMgbm90IE5vbmU6XG4iCi0gICAgICAgICIgICAgICAgIHdoaWxlIDE6XG4iCi0gICAgICAgICIgICAgICAgICAgZGF0YSA9IHNvdXJjZS5yZWFkKDY1NTM2KVxuIgotICAgICAgICAiICAgICAgICAgIGlmIG5vdCBkYXRhOlxuIgotICAgICAgICAiICAgICAgICAgICAgYnJlYWtcbiIKLSAgICAgICAgIiAgICAgICAgICBwYXJzZXIuZmVlZChkYXRhKVxuIgotICAgICAgICAiICAgICAgICBzZWxmLl9yb290ID0gcGFyc2VyLmNsb3NlKClcbiIKLSAgICAgICAgIiAgICAgIGVsc2U6XG4iIAotICAgICAgICAiICAgICAgICBwYXJzZXIgPSBjRWxlbWVudFRyZWUuWE1MUGFyc2VyKClcbiIKLSAgICAgICAgIiAgICAgICAgc2VsZi5fcm9vdCA9IHBhcnNlci5fcGFyc2Uoc291cmNlKVxuIgotICAgICAgICAiICAgICAgcmV0dXJuIHNlbGYuX3Jvb3RcbiIKLSAgICAgICAgIiAgICBmaW5hbGx5OlxuIgotICAgICAgICAiICAgICAgaWYgY2xvc2Vfc291cmNlOlxuIgotICAgICAgICAiICAgICAgICBzb3VyY2UuY2xvc2UoKVxuIgotICAgICAgICAiY0VsZW1lbnRUcmVlLkVsZW1lbnRUcmVlID0gRWxlbWVudFRyZWVcbiIKLQotICAgICAgICAiZGVmIGl0ZXIobm9kZSwgdGFnPU5vbmUpOlxuIiAvKiBoZWxwZXIgKi8KLSAgICAgICAgIiAgaWYgdGFnID09ICcqJzpcbiIKLSAgICAgICAgIiAgICB0YWcgPSBOb25lXG4iCi0gICAgICAgICIgIGlmIHRhZyBpcyBOb25lIG9yIG5vZGUudGFnID09IHRhZzpcbiIKLSAgICAgICAgIiAgICB5aWVsZCBub2RlXG4iCi0gICAgICAgICIgIGZvciBub2RlIGluIG5vZGU6XG4iCi0gICAgICAgICIgICAgZm9yIG5vZGUgaW4gaXRlcihub2RlLCB0YWcpOlxuIgotICAgICAgICAiICAgICAgeWllbGQgbm9kZVxuIgotCi0gICAgICAgICJkZWYgaXRlcnRleHQobm9kZSk6XG4iIC8qIGhlbHBlciAqLwotICAgICAgICAiICBpZiBub2RlLnRleHQ6XG4iCi0gICAgICAgICIgICAgeWllbGQgbm9kZS50ZXh0XG4iCi0gICAgICAgICIgIGZvciBlIGluIG5vZGU6XG4iCi0gICAgICAgICIgICAgZm9yIHMgaW4gZS5pdGVydGV4dCgpOlxuIgotICAgICAgICAiICAgICAgeWllbGQgc1xuIgotICAgICAgICAiICAgIGlmIGUudGFpbDpcbiIKLSAgICAgICAgIiAgICAgIHlpZWxkIGUudGFpbFxuIgotCi0gICAgICAgICJkZWYgcGFyc2Uoc291cmNlLCBwYXJzZXI9Tm9uZSk6XG4iIC8qIHB1YmxpYyAqLwotICAgICAgICAiICB0cmVlID0gRWxlbWVudFRyZWUoKVxuIgotICAgICAgICAiICB0cmVlLnBhcnNlKHNvdXJjZSwgcGFyc2VyKVxuIgotICAgICAgICAiICByZXR1cm4gdHJlZVxuIgotICAgICAgICAiY0VsZW1lbnRUcmVlLnBhcnNlID0gcGFyc2VcbiIKLQotICAgICAgICAiY2xhc3MgaXRlcnBhcnNlOlxuIgotICAgICAgICAiIHJvb3QgPSBOb25lXG4iCi0gICAgICAgICIgZGVmIF9faW5pdF9fKHNlbGYsIGZpbGUsIGV2ZW50cz1Ob25lKTpcbiIKLSAgICAgICAgIiAgc2VsZi5fY2xvc2VfZmlsZSA9IEZhbHNlXG4iCi0gICAgICAgICIgIGlmIG5vdCBoYXNhdHRyKGZpbGUsICdyZWFkJyk6XG4iCi0gICAgICAgICIgICAgZmlsZSA9IG9wZW4oZmlsZSwgJ3JiJylcbiIKLSAgICAgICAgIiAgICBzZWxmLl9jbG9zZV9maWxlID0gVHJ1ZVxuIgotICAgICAgICAiICBzZWxmLl9maWxlID0gZmlsZVxuIgotICAgICAgICAiICBzZWxmLl9ldmVudHMgPSBbXVxuIgotICAgICAgICAiICBzZWxmLl9pbmRleCA9IDBcbiIKLSAgICAgICAgIiAgc2VsZi5fZXJyb3IgPSBOb25lXG4iCi0gICAgICAgICIgIHNlbGYucm9vdCA9IHNlbGYuX3Jvb3QgPSBOb25lXG4iCi0gICAgICAgICIgIGIgPSBjRWxlbWVudFRyZWUuVHJlZUJ1aWxkZXIoKVxuIgotICAgICAgICAiICBzZWxmLl9wYXJzZXIgPSBjRWxlbWVudFRyZWUuWE1MUGFyc2VyKGIpXG4iCi0gICAgICAgICIgIHNlbGYuX3BhcnNlci5fc2V0ZXZlbnRzKHNlbGYuX2V2ZW50cywgZXZlbnRzKVxuIgotICAgICAgICAiIGRlZiBfX25leHRfXyhzZWxmKTpcbiIKLSAgICAgICAgIiAgd2hpbGUgMTpcbiIKLSAgICAgICAgIiAgICB0cnk6XG4iCi0gICAgICAgICIgICAgICBpdGVtID0gc2VsZi5fZXZlbnRzW3NlbGYuX2luZGV4XVxuIgotICAgICAgICAiICAgICAgc2VsZi5faW5kZXggKz0gMVxuIgotICAgICAgICAiICAgICAgcmV0dXJuIGl0ZW1cbiIKLSAgICAgICAgIiAgICBleGNlcHQgSW5kZXhFcnJvcjpcbiIKLSAgICAgICAgIiAgICAgIHBhc3NcbiIKLSAgICAgICAgIiAgICBpZiBzZWxmLl9lcnJvcjpcbiIKLSAgICAgICAgIiAgICAgIGUgPSBzZWxmLl9lcnJvclxuIgotICAgICAgICAiICAgICAgc2VsZi5fZXJyb3IgPSBOb25lXG4iCi0gICAgICAgICIgICAgICByYWlzZSBlXG4iCi0gICAgICAgICIgICAgaWYgc2VsZi5fcGFyc2VyIGlzIE5vbmU6XG4iCi0gICAgICAgICIgICAgICBzZWxmLnJvb3QgPSBzZWxmLl9yb290XG4iCi0gICAgICAgICIgICAgICBpZiBzZWxmLl9jbG9zZV9maWxlOlxuIgotICAgICAgICAiICAgICAgICBzZWxmLl9maWxlLmNsb3NlKClcbiIKLSAgICAgICAgIiAgICAgIHJhaXNlIFN0b3BJdGVyYXRpb25cbiIKLSAgICAgICAgIiAgICAjIGxvYWQgZXZlbnQgYnVmZmVyXG4iCi0gICAgICAgICIgICAgZGVsIHNlbGYuX2V2ZW50c1s6XVxuIgotICAgICAgICAiICAgIHNlbGYuX2luZGV4ID0gMFxuIgotICAgICAgICAiICAgIGRhdGEgPSBzZWxmLl9maWxlLnJlYWQoMTYzODQpXG4iCi0gICAgICAgICIgICAgaWYgZGF0YTpcbiIKLSAgICAgICAgIiAgICAgIHRyeTpcbiIKLSAgICAgICAgIiAgICAgICAgc2VsZi5fcGFyc2VyLmZlZWQoZGF0YSlcbiIKLSAgICAgICAgIiAgICAgIGV4Y2VwdCBTeW50YXhFcnJvciBhcyBleGM6XG4iCi0gICAgICAgICIgICAgICAgIHNlbGYuX2Vycm9yID0gZXhjXG4iCi0gICAgICAgICIgICAgZWxzZTpcbiIKLSAgICAgICAgIiAgICAgIHNlbGYuX3Jvb3QgPSBzZWxmLl9wYXJzZXIuY2xvc2UoKVxuIgotICAgICAgICAiICAgICAgc2VsZi5fcGFyc2VyID0gTm9uZVxuIgotICAgICAgICAiIGRlZiBfX2l0ZXJfXyhzZWxmKTpcbiIKLSAgICAgICAgIiAgcmV0dXJuIHNlbGZcbiIKLSAgICAgICAgImNFbGVtZW50VHJlZS5pdGVycGFyc2UgPSBpdGVycGFyc2VcbiIKLQotICAgICAgICAiY2xhc3MgUElQcm94eTpcbiIKLSAgICAgICAgIiBkZWYgX19jYWxsX18oc2VsZiwgdGFyZ2V0LCB0ZXh0PU5vbmUpOlxuIgotICAgICAgICAiICBlbGVtZW50ID0gY0VsZW1lbnRUcmVlLkVsZW1lbnQoRVQuUEkpXG4iCi0gICAgICAgICIgIGVsZW1lbnQudGV4dCA9IHRhcmdldFxuIgotICAgICAgICAiICBpZiB0ZXh0OlxuIgotICAgICAgICAiICAgIGVsZW1lbnQudGV4dCA9IGVsZW1lbnQudGV4dCArICcgJyArIHRleHRcbiIKLSAgICAgICAgIiAgcmV0dXJuIGVsZW1lbnRcbiIKLSAgICAgICAgIiBkZWYgX19lcV9fKHNlbGYsIG90aGVyKTpcbiIKLSAgICAgICAgIiAgcmV0dXJuIEVULlBJID09IG90aGVyXG4iCi0gICAgICAgICJjRWxlbWVudFRyZWUuUEkgPSBjRWxlbWVudFRyZWUuUHJvY2Vzc2luZ0luc3RydWN0aW9uID0gUElQcm94eSgpXG4iCi0KLSAgICAgICAgImRlZiBYTUwodGV4dCk6XG4iIC8qIHB1YmxpYyAqLwotICAgICAgICAiICBwYXJzZXIgPSBjRWxlbWVudFRyZWUuWE1MUGFyc2VyKClcbiIKLSAgICAgICAgIiAgcGFyc2VyLmZlZWQodGV4dClcbiIKLSAgICAgICAgIiAgcmV0dXJuIHBhcnNlci5jbG9zZSgpXG4iCi0gICAgICAgICJjRWxlbWVudFRyZWUuWE1MID0gY0VsZW1lbnRUcmVlLmZyb21zdHJpbmcgPSBYTUxcbiIKLQotICAgICAgICAiZGVmIFhNTElEKHRleHQpOlxuIiAvKiBwdWJsaWMgKi8KLSAgICAgICAgIiAgdHJlZSA9IFhNTCh0ZXh0KVxuIgotICAgICAgICAiICBpZHMgPSB7fVxuIgotICAgICAgICAiICBmb3IgZWxlbSBpbiB0cmVlLml0ZXIoKTpcbiIKLSAgICAgICAgIiAgICBpZCA9IGVsZW0uZ2V0KCdpZCcpXG4iCi0gICAgICAgICIgICAgaWYgaWQ6XG4iCi0gICAgICAgICIgICAgICBpZHNbaWRdID0gZWxlbVxuIgotICAgICAgICAiICByZXR1cm4gdHJlZSwgaWRzXG4iCi0gICAgICAgICJjRWxlbWVudFRyZWUuWE1MSUQgPSBYTUxJRFxuIgotCi0gICAgICAgICJ0cnk6XG4iCi0gICAgICAgICIgcmVnaXN0ZXJfbmFtZXNwYWNlID0gRVQucmVnaXN0ZXJfbmFtZXNwYWNlXG4iCi0gICAgICAgICJleGNlcHQgQXR0cmlidXRlRXJyb3I6XG4iCi0gICAgICAgICIgZGVmIHJlZ2lzdGVyX25hbWVzcGFjZShwcmVmaXgsIHVyaSk6XG4iCi0gICAgICAgICIgIEVULl9uYW1lc3BhY2VfbWFwW3VyaV0gPSBwcmVmaXhcbiIKLSAgICAgICAgImNFbGVtZW50VHJlZS5yZWdpc3Rlcl9uYW1lc3BhY2UgPSByZWdpc3Rlcl9uYW1lc3BhY2VcbiIKLQotICAgICAgICAiY0VsZW1lbnRUcmVlLmR1bXAgPSBFVC5kdW1wXG4iCi0gICAgICAgICJjRWxlbWVudFRyZWUuRWxlbWVudFBhdGggPSBFbGVtZW50UGF0aCA9IEVULkVsZW1lbnRQYXRoXG4iCi0gICAgICAgICJjRWxlbWVudFRyZWUuaXNlbGVtZW50ID0gRVQuaXNlbGVtZW50XG4iCi0gICAgICAgICJjRWxlbWVudFRyZWUuUU5hbWUgPSBFVC5RTmFtZVxuIgotICAgICAgICAiY0VsZW1lbnRUcmVlLnRvc3RyaW5nID0gRVQudG9zdHJpbmdcbiIKLSAgICAgICAgImNFbGVtZW50VHJlZS5mcm9tc3RyaW5nbGlzdCA9IEVULmZyb21zdHJpbmdsaXN0XG4iCi0gICAgICAgICJjRWxlbWVudFRyZWUudG9zdHJpbmdsaXN0ID0gRVQudG9zdHJpbmdsaXN0XG4iCi0gICAgICAgICJjRWxlbWVudFRyZWUuVkVSU0lPTiA9ICciIFZFUlNJT04gIidcbiIKLSAgICAgICAgImNFbGVtZW50VHJlZS5fX3ZlcnNpb25fXyA9ICciIFZFUlNJT04gIidcbiIKLQotICAgICAgICk7Ci0KLSAgICBpZiAoIVB5UnVuX1N0cmluZyhib290c3RyYXAsIFB5X2ZpbGVfaW5wdXQsIGcsIE5VTEwpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGVsZW1lbnRwYXRoX29iaiA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKGcsICJFbGVtZW50UGF0aCIpOwotCi0gICAgZWxlbWVudHRyZWVfY29weWVsZW1lbnRfb2JqID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcoZywgImNvcHllbGVtZW50Iik7Ci0gICAgaWYgKGVsZW1lbnR0cmVlX2NvcHllbGVtZW50X29iaikgewotICAgICAgICAvKiByZWR1Y2UgaGFjayBuZWVkZWQ7IGVuYWJsZSByZWR1Y2UgbWV0aG9kICovCi0gICAgICAgIFB5TWV0aG9kRGVmKiBtcDsKLSAgICAgICAgZm9yIChtcCA9IGVsZW1lbnRfbWV0aG9kczsgbXAtPm1sX25hbWU7IG1wKyspCi0gICAgICAgICAgICBpZiAobXAtPm1sX21ldGggPT0gKFB5Q0Z1bmN0aW9uKSBlbGVtZW50X3JlZHVjZSkgewotICAgICAgICAgICAgICAgIG1wLT5tbF9uYW1lID0gIl9fcmVkdWNlX18iOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgIH0gZWxzZQotICAgICAgICBQeUVycl9DbGVhcigpOwotCi0gICAgZWxlbWVudHRyZWVfZGVlcGNvcHlfb2JqID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcoZywgImRlZXBjb3B5Iik7Ci0gICAgZWxlbWVudHRyZWVfaXRlcl9vYmogPSBQeURpY3RfR2V0SXRlbVN0cmluZyhnLCAiaXRlciIpOwotICAgIGVsZW1lbnR0cmVlX2l0ZXJ0ZXh0X29iaiA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKGcsICJpdGVydGV4dCIpOwotCi0jaWYgZGVmaW5lZChVU0VfUFlFWFBBVF9DQVBJKQotICAgIC8qIGxpbmsgYWdhaW5zdCBweWV4cGF0LCBpZiBwb3NzaWJsZSAqLworICAgIC8qIGxpbmsgYWdhaW5zdCBweWV4cGF0ICovCiAgICAgZXhwYXRfY2FwaSA9IFB5Q2Fwc3VsZV9JbXBvcnQoUHlFeHBhdF9DQVBTVUxFX05BTUUsIDApOwogICAgIGlmIChleHBhdF9jYXBpKSB7CiAgICAgICAgIC8qIGNoZWNrIHRoYXQgaXQncyB1c2FibGUgKi8KQEAgLTMxMTQsMTYgKzM1MTAsMzMgQEAKICAgICAgICAgICAgIGV4cGF0X2NhcGktPnNpemUgPCBzaXplb2Yoc3RydWN0IFB5RXhwYXRfQ0FQSSkgfHwKICAgICAgICAgICAgIGV4cGF0X2NhcGktPk1BSk9SX1ZFUlNJT04gIT0gWE1MX01BSk9SX1ZFUlNJT04gfHwKICAgICAgICAgICAgIGV4cGF0X2NhcGktPk1JTk9SX1ZFUlNJT04gIT0gWE1MX01JTk9SX1ZFUlNJT04gfHwKLSAgICAgICAgICAgIGV4cGF0X2NhcGktPk1JQ1JPX1ZFUlNJT04gIT0gWE1MX01JQ1JPX1ZFUlNJT04pCisgICAgICAgICAgICBleHBhdF9jYXBpLT5NSUNST19WRVJTSU9OICE9IFhNTF9NSUNST19WRVJTSU9OKSB7CiAgICAgICAgICAgICBleHBhdF9jYXBpID0gTlVMTDsKKyAgICAgICAgfQogICAgIH0KLSNlbmRpZgorICAgIGlmICghZXhwYXRfY2FwaSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoCisgICAgICAgICAgICBQeUV4Y19SdW50aW1lRXJyb3IsICJjYW5ub3QgbG9hZCBkaXNwYXRjaCB0YWJsZSBmcm9tIHB5ZXhwYXQiCisgICAgICAgICAgICApOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAKICAgICBlbGVtZW50dHJlZV9wYXJzZWVycm9yX29iaiA9IFB5RXJyX05ld0V4Y2VwdGlvbigKLSAgICAgICAgImNFbGVtZW50VHJlZS5QYXJzZUVycm9yIiwgUHlFeGNfU3ludGF4RXJyb3IsIE5VTEwKKyAgICAgICAgInhtbC5ldHJlZS5FbGVtZW50VHJlZS5QYXJzZUVycm9yIiwgUHlFeGNfU3ludGF4RXJyb3IsIE5VTEwKICAgICAgICAgKTsKICAgICBQeV9JTkNSRUYoZWxlbWVudHRyZWVfcGFyc2VlcnJvcl9vYmopOwogICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiUGFyc2VFcnJvciIsIGVsZW1lbnR0cmVlX3BhcnNlZXJyb3Jfb2JqKTsKIAorICAgIFB5X0lOQ1JFRigoUHlPYmplY3QgKikmRWxlbWVudF9UeXBlKTsKKyAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgIkVsZW1lbnQiLCAoUHlPYmplY3QgKikmRWxlbWVudF9UeXBlKTsKKworICAgIFB5X0lOQ1JFRigoUHlPYmplY3QgKikmVHJlZUJ1aWxkZXJfVHlwZSk7CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJUcmVlQnVpbGRlciIsIChQeU9iamVjdCAqKSZUcmVlQnVpbGRlcl9UeXBlKTsKKworI2lmIGRlZmluZWQoVVNFX0VYUEFUKQorICAgIFB5X0lOQ1JFRigoUHlPYmplY3QgKikmWE1MUGFyc2VyX1R5cGUpOworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiWE1MUGFyc2VyIiwgKFB5T2JqZWN0ICopJlhNTFBhcnNlcl9UeXBlKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIG07CiB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19mcmVlemVfaW1wb3J0bGliLmMgYi9Nb2R1bGVzL19mcmVlemVfaW1wb3J0bGliLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDkwMGQzNwotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX2ZyZWV6ZV9pbXBvcnRsaWIuYwpAQCAtMCwwICsxLDEzMiBAQAorLyogVGhpcyBpcyBidWlsdCBhcyBhIHN0YW5kLWFsb25lIGV4ZWN1dGFibGUgYnkgdGhlIE1ha2VmaWxlLCBhbmQgaGVscHMgdHVybgorICAgTGliL2ltcG9ydGxpYi9fYm9vdHN0cmFwLnB5IGludG8gYSBmcm96ZW4gbW9kdWxlIGluIFB5dGhvbi9pbXBvcnRsaWIuaAorKi8KKworI2luY2x1ZGUgPFB5dGhvbi5oPgorI2luY2x1ZGUgPG1hcnNoYWwuaD4KKworI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL3N0YXQuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworCisvKiBUbyBhdm9pZCBhIGNpcmN1bGFyIGRlcGVuZGVuY3kgb24gZnJvemVuLm8sIHdlIGNyZWF0ZSBvdXIgb3duIHN0cnVjdHVyZQorICAgb2YgZnJvemVuIG1vZHVsZXMgaW5zdGVhZCwgbGVmdCBkZWxpYmVyYXRlbHkgYmxhbmsgc28gYXMgdG8gYXZvaWQKKyAgIHVuaW50ZW50aW9uYWwgaW1wb3J0IG9mIGEgc3RhbGUgdmVyc2lvbiBvZiBfZnJvemVuX2ltcG9ydGxpYi4gKi8KKworc3RhdGljIHN0cnVjdCBfZnJvemVuIF9QeUltcG9ydF9Gcm96ZW5Nb2R1bGVzW10gPSB7CisgICAgezAsIDAsIDB9IC8qIHNlbnRpbmVsICovCit9OworCitzdHJ1Y3QgX2Zyb3plbiAqUHlJbXBvcnRfRnJvemVuTW9kdWxlcyA9IF9QeUltcG9ydF9Gcm96ZW5Nb2R1bGVzOworCisKK2NvbnN0IGNoYXIgaGVhZGVyW10gPSAiLyogQXV0by1nZW5lcmF0ZWQgYnkgTW9kdWxlcy9fZnJlZXplX2ltcG9ydGxpYi5jICovIjsKKworaW50CittYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisgICAgY2hhciAqaW5wYXRoLCAqb3V0cGF0aDsKKyAgICBGSUxFICppbmZpbGUsICpvdXRmaWxlID0gTlVMTDsKKyAgICBzdHJ1Y3Qgc3RhdCBzdDsKKyAgICBzaXplX3QgdGV4dF9zaXplLCBkYXRhX3NpemUsIG47CisgICAgY2hhciAqdGV4dDsKKyAgICB1bnNpZ25lZCBjaGFyICpkYXRhOworICAgIFB5T2JqZWN0ICpjb2RlLCAqbWFyc2hhbGxlZDsKKworICAgIGlmIChhcmdjICE9IDMpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJuZWVkIHRvIHNwZWNpZnkgaW5wdXQgYW5kIG91dHB1dCBwYXRoc1xuIik7CisgICAgICAgIHJldHVybiAyOworICAgIH0KKyAgICBpbnBhdGggPSBhcmd2WzFdOworICAgIG91dHBhdGggPSBhcmd2WzJdOworICAgIGluZmlsZSA9IGZvcGVuKGlucGF0aCwgInJiIik7CisgICAgaWYgKGluZmlsZSA9PSBOVUxMKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiY2Fubm90IG9wZW4gJyVzJyBmb3IgcmVhZGluZ1xuIiwgaW5wYXRoKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIGlmIChmc3RhdChmaWxlbm8oaW5maWxlKSwgJnN0KSkgeworICAgICAgICBmY2xvc2UoaW5maWxlKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJjYW5ub3QgZnN0YXQgJyVzJ1xuIiwgaW5wYXRoKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHRleHRfc2l6ZSA9IHN0LnN0X3NpemU7CisgICAgdGV4dCA9IChjaGFyICopIG1hbGxvYyh0ZXh0X3NpemUgKyAxKTsKKyAgICBpZiAodGV4dCA9PSBOVUxMKSB7CisgICAgICAgIGZjbG9zZShpbmZpbGUpOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgImNvdWxkIG5vdCBhbGxvY2F0ZSAlbGQgYnl0ZXNcbiIsIChsb25nKSB0ZXh0X3NpemUpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgbiA9IGZyZWFkKHRleHQsIDEsIHRleHRfc2l6ZSwgaW5maWxlKTsKKyAgICBmY2xvc2UoaW5maWxlKTsKKyAgICBpbmZpbGUgPSBOVUxMOworICAgIGlmIChuIDwgdGV4dF9zaXplKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAicmVhZCB0b28gc2hvcnQ6IGdvdCAlbGQgaW5zdGVhZCBvZiAlbGQgYnl0ZXNcbiIsCisgICAgICAgICAgICAgICAgKGxvbmcpIG4sIChsb25nKSB0ZXh0X3NpemUpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgdGV4dFt0ZXh0X3NpemVdID0gJ1wwJzsKKworICAgIFB5X05vVXNlclNpdGVEaXJlY3RvcnkrKzsKKyAgICBQeV9Ob1NpdGVGbGFnKys7CisgICAgUHlfSWdub3JlRW52aXJvbm1lbnRGbGFnKys7CisKKyAgICBQeV9TZXRQcm9ncmFtTmFtZShMIi4vX2ZyZWV6ZV9pbXBvcnRsaWIiKTsKKyAgICAvKiBEb24ndCBpbnN0YWxsIGltcG9ydGxpYiwgc2luY2UgaXQgY291bGQgZXhlY3V0ZSBvdXRkYXRlZCBieXRlY29kZS4gKi8KKyAgICBfUHlfSW5pdGlhbGl6ZUV4X1ByaXZhdGUoMSwgMCk7CisKKyAgICBjb2RlID0gUHlfQ29tcGlsZVN0cmluZ0V4RmxhZ3ModGV4dCwgIjxmcm96ZW4gaW1wb3J0bGliLl9ib290c3RyYXA+IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfZmlsZV9pbnB1dCwgTlVMTCwgMCk7CisgICAgaWYgKGNvZGUgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICBtYXJzaGFsbGVkID0gUHlNYXJzaGFsX1dyaXRlT2JqZWN0VG9TdHJpbmcoY29kZSwgUHlfTUFSU0hBTF9WRVJTSU9OKTsKKyAgICBQeV9ERUNSRUYoY29kZSk7CisgICAgaWYgKG1hcnNoYWxsZWQgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKworICAgIGFzc2VydChQeUJ5dGVzX0NoZWNrRXhhY3QobWFyc2hhbGxlZCkpOworICAgIGRhdGEgPSAodW5zaWduZWQgY2hhciAqKSBQeUJ5dGVzX0FTX1NUUklORyhtYXJzaGFsbGVkKTsKKyAgICBkYXRhX3NpemUgPSBQeUJ5dGVzX0dFVF9TSVpFKG1hcnNoYWxsZWQpOworCisgICAgb3V0ZmlsZSA9IGZvcGVuKG91dHBhdGgsICJ3YiIpOworICAgIGlmIChvdXRmaWxlID09IE5VTEwpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJjYW5ub3Qgb3BlbiAnJXMnIGZvciB3cml0aW5nXG4iLCBvdXRwYXRoKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIGZwcmludGYob3V0ZmlsZSwgIiVzXG4iLCBoZWFkZXIpOworICAgIGZwcmludGYob3V0ZmlsZSwgInVuc2lnbmVkIGNoYXIgX1B5X01fX2ltcG9ydGxpYltdID0ge1xuIik7CisgICAgZm9yIChuID0gMDsgbiA8IGRhdGFfc2l6ZTsgbiArPSAxNikgeworICAgICAgICBzaXplX3QgaSwgZW5kID0gUHlfTUlOKG4gKyAxNiwgZGF0YV9zaXplKTsKKyAgICAgICAgZnByaW50ZihvdXRmaWxlLCAiICAgICIpOworICAgICAgICBmb3IgKGkgPSBuOyBpIDwgZW5kOyBpKyspIHsKKyAgICAgICAgICAgIGZwcmludGYob3V0ZmlsZSwgIiVkLCIsICh1bnNpZ25lZCBpbnQpIGRhdGFbaV0pOworICAgICAgICB9CisgICAgICAgIGZwcmludGYob3V0ZmlsZSwgIlxuIik7CisgICAgfQorICAgIGZwcmludGYob3V0ZmlsZSwgIn07XG4iKTsKKworICAgIFB5X0RFQ1JFRihtYXJzaGFsbGVkKTsKKworICAgIFB5X0ZpbmFsaXplKCk7CisgICAgaWYgKGluZmlsZSkKKyAgICAgICAgZmNsb3NlKGluZmlsZSk7CisgICAgaWYgKG91dGZpbGUpIHsKKyAgICAgICAgaWYgKGZlcnJvcihvdXRmaWxlKSkgeworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJlcnJvciB3aGVuIHdyaXRpbmcgdG8gJyVzJ1xuIiwgb3V0cGF0aCk7CisgICAgICAgICAgICBmY2xvc2Uob3V0ZmlsZSk7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICBmY2xvc2Uob3V0ZmlsZSk7CisgICAgfQorICAgIHJldHVybiAwOworCitlcnJvcjoKKyAgICBQeUVycl9QcmludCgpOworICAgIFB5X0ZpbmFsaXplKCk7CisgICAgaWYgKGluZmlsZSkKKyAgICAgICAgZmNsb3NlKGluZmlsZSk7CisgICAgaWYgKG91dGZpbGUpCisgICAgICAgIGZjbG9zZShvdXRmaWxlKTsKKyAgICByZXR1cm4gMTsKK30KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2Z1bmN0b29sc21vZHVsZS5jIGIvTW9kdWxlcy9fZnVuY3Rvb2xzbW9kdWxlLmMKaW5kZXggZDhhMjgzYi4uM2ZmMDdiYyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fZnVuY3Rvb2xzbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9fZnVuY3Rvb2xzbW9kdWxlLmMKQEAgLTE1NSw0NCArMTU1LDggQEAKICAgICB7TlVMTH0gIC8qIFNlbnRpbmVsICovCiB9OwogCi1zdGF0aWMgUHlPYmplY3QgKgotcGFydGlhbF9nZXRfZGljdChwYXJ0aWFsb2JqZWN0ICpwdG8pCi17Ci0gICAgaWYgKHB0by0+ZGljdCA9PSBOVUxMKSB7Ci0gICAgICAgIHB0by0+ZGljdCA9IFB5RGljdF9OZXcoKTsKLSAgICAgICAgaWYgKHB0by0+ZGljdCA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIFB5X0lOQ1JFRihwdG8tPmRpY3QpOwotICAgIHJldHVybiBwdG8tPmRpY3Q7Ci19Ci0KLXN0YXRpYyBpbnQKLXBhcnRpYWxfc2V0X2RpY3QocGFydGlhbG9iamVjdCAqcHRvLCBQeU9iamVjdCAqdmFsdWUpCi17Ci0gICAgUHlPYmplY3QgKnRtcDsKLQotICAgIC8qIEl0IGlzIGlsbGVnYWwgdG8gZGVsIHAuX19kaWN0X18gKi8KLSAgICBpZiAodmFsdWUgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgImEgcGFydGlhbCBvYmplY3QncyBkaWN0aW9uYXJ5IG1heSBub3QgYmUgZGVsZXRlZCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIC8qIENhbiBvbmx5IHNldCBfX2RpY3RfXyB0byBhIGRpY3Rpb25hcnkgKi8KLSAgICBpZiAoIVB5RGljdF9DaGVjayh2YWx1ZSkpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzZXR0aW5nIHBhcnRpYWwgb2JqZWN0J3MgZGljdGlvbmFyeSB0byBhIG5vbi1kaWN0Iik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgdG1wID0gcHRvLT5kaWN0OwotICAgIFB5X0lOQ1JFRih2YWx1ZSk7Ci0gICAgcHRvLT5kaWN0ID0gdmFsdWU7Ci0gICAgUHlfWERFQ1JFRih0bXApOwotICAgIHJldHVybiAwOwotfQotCiBzdGF0aWMgUHlHZXRTZXREZWYgcGFydGlhbF9nZXRzZXRsaXN0W10gPSB7Ci0gICAgeyJfX2RpY3RfXyIsIChnZXR0ZXIpcGFydGlhbF9nZXRfZGljdCwgKHNldHRlcilwYXJ0aWFsX3NldF9kaWN0fSwKKyAgICB7Il9fZGljdF9fIiwgUHlPYmplY3RfR2VuZXJpY0dldERpY3QsIFB5T2JqZWN0X0dlbmVyaWNTZXREaWN0fSwKICAgICB7TlVMTH0gLyogU2VudGluZWwgKi8KIH07CiAKQEAgLTMzMCw2ICsyOTQsMTc2IEBACiB9OwogCiAKKy8qIGNtcF90b19rZXkgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIFB5T2JqZWN0ICpjbXA7CisgICAgUHlPYmplY3QgKm9iamVjdDsKK30ga2V5b2JqZWN0OworCitzdGF0aWMgdm9pZAora2V5b2JqZWN0X2RlYWxsb2Moa2V5b2JqZWN0ICprbykKK3sKKyAgICBQeV9ERUNSRUYoa28tPmNtcCk7CisgICAgUHlfWERFQ1JFRihrby0+b2JqZWN0KTsKKyAgICBQeU9iamVjdF9GUkVFKGtvKTsKK30KKworc3RhdGljIGludAora2V5b2JqZWN0X3RyYXZlcnNlKGtleW9iamVjdCAqa28sIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQoreworICAgIFB5X1ZJU0lUKGtvLT5jbXApOworICAgIGlmIChrby0+b2JqZWN0KQorICAgICAgICBQeV9WSVNJVChrby0+b2JqZWN0KTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAora2V5b2JqZWN0X2NsZWFyKGtleW9iamVjdCAqa28pCit7CisgICAgUHlfQ0xFQVIoa28tPmNtcCk7CisgICAgaWYgKGtvLT5vYmplY3QpCisgICAgICAgIFB5X0NMRUFSKGtvLT5vYmplY3QpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUHlNZW1iZXJEZWYga2V5b2JqZWN0X21lbWJlcnNbXSA9IHsKKyAgICB7Im9iaiIsIFRfT0JKRUNULAorICAgICBvZmZzZXRvZihrZXlvYmplY3QsIG9iamVjdCksIDAsCisgICAgIFB5RG9jX1NUUigiVmFsdWUgd3JhcHBlZCBieSBhIGtleSBmdW5jdGlvbi4iKX0sCisgICAge05VTEx9Cit9OworCitzdGF0aWMgUHlPYmplY3QgKgora2V5b2JqZWN0X2NhbGwoa2V5b2JqZWN0ICprbywgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK2tleW9iamVjdF9yaWNoY29tcGFyZShQeU9iamVjdCAqa28sIFB5T2JqZWN0ICpvdGhlciwgaW50IG9wKTsKKworc3RhdGljIFB5VHlwZU9iamVjdCBrZXlvYmplY3RfdHlwZSA9IHsKKyAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoJlB5VHlwZV9UeXBlLCAwKQorICAgICJmdW5jdG9vbHMuS2V5V3JhcHBlciIsICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICBzaXplb2Yoa2V5b2JqZWN0KSwgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNpY3NpemUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLworICAgIC8qIG1ldGhvZHMgKi8KKyAgICAoZGVzdHJ1Y3RvcilrZXlvYmplY3RfZGVhbGxvYywgICAgICAvKiB0cF9kZWFsbG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3Jlc2VydmVkICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVwciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbWFwcGluZyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAodGVybmFyeWZ1bmMpa2V5b2JqZWN0X2NhbGwsICAgICAgICAvKiB0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCisgICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgKHRyYXZlcnNlcHJvYylrZXlvYmplY3RfdHJhdmVyc2UsICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAoaW5xdWlyeSlrZXlvYmplY3RfY2xlYXIsICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIGtleW9iamVjdF9yaWNoY29tcGFyZSwgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAga2V5b2JqZWN0X21lbWJlcnMsICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworfTsKKworc3RhdGljIFB5T2JqZWN0ICoKK2tleW9iamVjdF9jYWxsKGtleW9iamVjdCAqa28sIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBQeU9iamVjdCAqb2JqZWN0OworICAgIGtleW9iamVjdCAqcmVzdWx0OworICAgIHN0YXRpYyBjaGFyICprd2FyZ3NbXSA9IHsib2JqIiwgTlVMTH07CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiTzpLIiwga3dhcmdzLCAmb2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmVzdWx0ID0gUHlPYmplY3RfTmV3KGtleW9iamVjdCwgJmtleW9iamVjdF90eXBlKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfSU5DUkVGKGtvLT5jbXApOworICAgIHJlc3VsdC0+Y21wID0ga28tPmNtcDsKKyAgICBQeV9JTkNSRUYob2JqZWN0KTsKKyAgICByZXN1bHQtPm9iamVjdCA9IG9iamVjdDsKKyAgICByZXR1cm4gKFB5T2JqZWN0ICopcmVzdWx0OworfQorCitzdGF0aWMgUHlPYmplY3QgKgora2V5b2JqZWN0X3JpY2hjb21wYXJlKFB5T2JqZWN0ICprbywgUHlPYmplY3QgKm90aGVyLCBpbnQgb3ApCit7CisgICAgUHlPYmplY3QgKnJlczsKKyAgICBQeU9iamVjdCAqYXJnczsKKyAgICBQeU9iamVjdCAqeDsKKyAgICBQeU9iamVjdCAqeTsKKyAgICBQeU9iamVjdCAqY29tcGFyZTsKKyAgICBQeU9iamVjdCAqYW5zd2VyOworICAgIHN0YXRpYyBQeU9iamVjdCAqemVybzsKKworICAgIGlmICh6ZXJvID09IE5VTEwpIHsKKyAgICAgICAgemVybyA9IFB5TG9uZ19Gcm9tTG9uZygwKTsKKyAgICAgICAgaWYgKCF6ZXJvKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKFB5X1RZUEUob3RoZXIpICE9ICZrZXlvYmplY3RfdHlwZSl7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJvdGhlciBhcmd1bWVudCBtdXN0IGJlIEsgaW5zdGFuY2UiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGNvbXBhcmUgPSAoKGtleW9iamVjdCAqKSBrbyktPmNtcDsKKyAgICBhc3NlcnQoY29tcGFyZSAhPSBOVUxMKTsKKyAgICB4ID0gKChrZXlvYmplY3QgKikga28pLT5vYmplY3Q7CisgICAgeSA9ICgoa2V5b2JqZWN0ICopIG90aGVyKS0+b2JqZWN0OworICAgIGlmICgheCB8fCAheSl7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19BdHRyaWJ1dGVFcnJvciwgIm9iamVjdCIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBDYWxsIHRoZSB1c2VyJ3MgY29tcGFyaXNvbiBmdW5jdGlvbiBhbmQgdHJhbnNsYXRlIHRoZSAzLXdheQorICAgICAqIHJlc3VsdCBpbnRvIHRydWUgb3IgZmFsc2UgKG9yIGVycm9yKS4KKyAgICAgKi8KKyAgICBhcmdzID0gUHlUdXBsZV9OZXcoMik7CisgICAgaWYgKGFyZ3MgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfSU5DUkVGKHgpOworICAgIFB5X0lOQ1JFRih5KTsKKyAgICBQeVR1cGxlX1NFVF9JVEVNKGFyZ3MsIDAsIHgpOworICAgIFB5VHVwbGVfU0VUX0lURU0oYXJncywgMSwgeSk7CisgICAgcmVzID0gUHlPYmplY3RfQ2FsbChjb21wYXJlLCBhcmdzLCBOVUxMKTsKKyAgICBQeV9ERUNSRUYoYXJncyk7CisgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBhbnN3ZXIgPSBQeU9iamVjdF9SaWNoQ29tcGFyZShyZXMsIHplcm8sIG9wKTsKKyAgICBQeV9ERUNSRUYocmVzKTsKKyAgICByZXR1cm4gYW5zd2VyOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZnVuY3Rvb2xzX2NtcF90b19rZXkoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBQeU9iamVjdCAqY21wOworICAgIHN0YXRpYyBjaGFyICprd2FyZ3NbXSA9IHsibXljbXAiLCBOVUxMfTsKKyAgICBrZXlvYmplY3QgKm9iamVjdDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJPOmNtcF90b19rZXkiLCBrd2FyZ3MsICZjbXApKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBvYmplY3QgPSBQeU9iamVjdF9OZXcoa2V5b2JqZWN0LCAma2V5b2JqZWN0X3R5cGUpOworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9JTkNSRUYoY21wKTsKKyAgICBvYmplY3QtPmNtcCA9IGNtcDsKKyAgICBvYmplY3QtPm9iamVjdCA9IE5VTEw7CisgICAgcmV0dXJuIChQeU9iamVjdCAqKW9iamVjdDsKK30KKworUHlEb2NfU1RSVkFSKGZ1bmN0b29sc19jbXBfdG9fa2V5X2RvYywKKyJDb252ZXJ0IGEgY21wPSBmdW5jdGlvbiBpbnRvIGEga2V5PSBmdW5jdGlvbi4iKTsKKwogLyogcmVkdWNlICh1c2VkIHRvIGJlIGEgYnVpbHRpbikgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC00MTMsNiArNTQ3LDggQEAKIAogc3RhdGljIFB5TWV0aG9kRGVmIG1vZHVsZV9tZXRob2RzW10gPSB7CiAgICAgeyJyZWR1Y2UiLCAgICAgICAgICBmdW5jdG9vbHNfcmVkdWNlLCAgICAgTUVUSF9WQVJBUkdTLCBmdW5jdG9vbHNfcmVkdWNlX2RvY30sCisgICAgeyJjbXBfdG9fa2V5IiwgICAgICAoUHlDRnVuY3Rpb24pZnVuY3Rvb2xzX2NtcF90b19rZXksCisgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsIGZ1bmN0b29sc19jbXBfdG9fa2V5X2RvY30sCiAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KIH07CiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2dlc3RhbHQuYyBiL01vZHVsZXMvX2dlc3RhbHQuYwppbmRleCBhNDU3ODBmLi5jZDMwNjgzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19nZXN0YWx0LmMKKysrIGIvTW9kdWxlcy9fZ2VzdGFsdC5jCkBAIC0zMyw3ICszMyw3IEBACiBjb252ZXJ0X3RvX09TVHlwZShQeU9iamVjdCAqdiwgT1NUeXBlICpwcikKIHsKICAgICB1aW50MzJfdCB0bXA7Ci0gICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodikgfHwgUHlVbmljb2RlX0dldFNpemUodikgIT0gNCkgeworICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHYpIHx8IFB5VW5pY29kZV9HZXRMZW5ndGgodikgIT0gNCkgewogICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICJPU1R5cGUgYXJnIG11c3QgYmUgc3RyaW5nIG9mIDQgY2hhcnMiKTsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2hhc2hvcGVuc3NsLmMgYi9Nb2R1bGVzL19oYXNob3BlbnNzbC5jCmluZGV4IGRkNDMxN2YuLmQzNzY4OWUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2hhc2hvcGVuc3NsLmMKKysrIGIvTW9kdWxlcy9faGFzaG9wZW5zc2wuYwpAQCAtMjAxLDEzICsyMDEsMTEgQEAKIAogICAgIC8qIE1ha2UgaGV4IHZlcnNpb24gb2YgdGhlIGRpZ2VzdCAqLwogICAgIGZvcihpPWo9MDsgaTxkaWdlc3Rfc2l6ZTsgaSsrKSB7Ci0gICAgICAgIGNoYXIgYzsKKyAgICAgICAgdW5zaWduZWQgY2hhciBjOwogICAgICAgICBjID0gKGRpZ2VzdFtpXSA+PiA0KSAmIDB4ZjsKLSAgICAgICAgYyA9IChjPjkpID8gYysnYSctMTAgOiBjICsgJzAnOwotICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBjOworICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBQeV9oZXhkaWdpdHNbY107CiAgICAgICAgIGMgPSAoZGlnZXN0W2ldICYgMHhmKTsKLSAgICAgICAgYyA9IChjPjkpID8gYysnYSctMTAgOiBjICsgJzAnOwotICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBjOworICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBQeV9oZXhkaWdpdHNbY107CiAgICAgfQogICAgIHJldHZhbCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZShoZXhfZGlnZXN0LCBkaWdlc3Rfc2l6ZSAqIDIpOwogICAgIFB5TWVtX0ZyZWUoaGV4X2RpZ2VzdCk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19pby9faW9tb2R1bGUuYyBiL01vZHVsZXMvX2lvL19pb21vZHVsZS5jCmluZGV4IDRjOTA0MzMuLjYxYjlmNTIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2lvL19pb21vZHVsZS5jCisrKyBiL01vZHVsZXMvX2lvL19pb21vZHVsZS5jCkBAIC0xLDkgKzEsOSBAQAogLyoKICAgICBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbmV3IEkvTyBsaWIgYXMgZGVmaW5lZCBieSBQRVAgMzExNiAtICJOZXcgSS9PIgotICAgIAorCiAgICAgQ2xhc3NlcyBkZWZpbmVkIGhlcmU6IFVuc3VwcG9ydGVkT3BlcmF0aW9uLCBCbG9ja2luZ0lPRXJyb3IuCiAgICAgRnVuY3Rpb25zIGRlZmluZWQgaGVyZTogb3BlbigpLgotICAgIAorCiAgICAgTW9zdGx5IHdyaXR0ZW4gYnkgQW1hdXJ5IEZvcmdlb3QgZCdBcmMKICovCiAKQEAgLTM2LDYgKzM2LDcgQEAKIFB5T2JqZWN0ICpfUHlJT19zdHJfcmVhZDsKIFB5T2JqZWN0ICpfUHlJT19zdHJfcmVhZDE7CiBQeU9iamVjdCAqX1B5SU9fc3RyX3JlYWRhYmxlOworUHlPYmplY3QgKl9QeUlPX3N0cl9yZWFkYWxsOwogUHlPYmplY3QgKl9QeUlPX3N0cl9yZWFkaW50bzsKIFB5T2JqZWN0ICpfUHlJT19zdHJfcmVhZGxpbmU7CiBQeU9iamVjdCAqX1B5SU9fc3RyX3Jlc2V0OwpAQCAtOTAsOTQgKzkxLDExIEBACiAMCiAKIC8qCi0gKiBCbG9ja2luZ0lPRXJyb3IgZXh0ZW5kcyBJT0Vycm9yCi0gKi8KLQotc3RhdGljIGludAotYmxvY2tpbmdpb2Vycm9yX2luaXQoUHlCbG9ja2luZ0lPRXJyb3JPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLAotICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmt3ZHMpCi17Ci0gICAgUHlPYmplY3QgKm15ZXJybm8gPSBOVUxMLCAqc3RyZXJyb3IgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpiYXNlYXJncyA9IE5VTEw7Ci0gICAgUHlfc3NpemVfdCB3cml0dGVuID0gMDsKLQotICAgIGFzc2VydChQeVR1cGxlX0NoZWNrKGFyZ3MpKTsKLQotICAgIHNlbGYtPndyaXR0ZW4gPSAwOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT098bjpCbG9ja2luZ0lPRXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmbXllcnJubywgJnN0cmVycm9yLCAmd3JpdHRlbikpCi0gICAgICAgIHJldHVybiAtMTsKLQotICAgIGJhc2VhcmdzID0gUHlUdXBsZV9QYWNrKDIsIG15ZXJybm8sIHN0cmVycm9yKTsKLSAgICBpZiAoYmFzZWFyZ3MgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIC8qIFRoaXMgd2lsbCB0YWtlIGNhcmUgb2YgaW5pdGlhbGl6aW5nIG9mIG15ZXJybm8gYW5kIHN0cmVycm9yIG1lbWJlcnMgKi8KLSAgICBpZiAoKChQeVR5cGVPYmplY3QgKilQeUV4Y19JT0Vycm9yKS0+dHBfaW5pdCgKLSAgICAgICAgICAgICAgICAoUHlPYmplY3QgKilzZWxmLCBiYXNlYXJncywga3dkcykgPT0gLTEpIHsKLSAgICAgICAgUHlfREVDUkVGKGJhc2VhcmdzKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICBQeV9ERUNSRUYoYmFzZWFyZ3MpOwotCi0gICAgc2VsZi0+d3JpdHRlbiA9IHdyaXR0ZW47Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBQeU1lbWJlckRlZiBibG9ja2luZ2lvZXJyb3JfbWVtYmVyc1tdID0gewotICAgIHsiY2hhcmFjdGVyc193cml0dGVuIiwgVF9QWVNTSVpFVCwgb2Zmc2V0b2YoUHlCbG9ja2luZ0lPRXJyb3JPYmplY3QsIHdyaXR0ZW4pLCAwfSwKLSAgICB7TlVMTH0gIC8qIFNlbnRpbmVsICovCi19OwotCi1zdGF0aWMgUHlUeXBlT2JqZWN0IF9QeUV4Y19CbG9ja2luZ0lPRXJyb3IgPSB7Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi0gICAgIkJsb2NraW5nSU9FcnJvciIsIC8qdHBfbmFtZSovCi0gICAgc2l6ZW9mKFB5QmxvY2tpbmdJT0Vycm9yT2JqZWN0KSwgLyp0cF9iYXNpY3NpemUqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZW1zaXplKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kZWFsbG9jKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9wcmludCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0YXR0ciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfc2V0YXR0ciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfY29tcGFyZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3JlcHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX251bWJlciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfc2VxdWVuY2UqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX21hcHBpbmcqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2hhc2ggKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jYWxsKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zdHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2dldGF0dHJvKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRybyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfYnVmZmVyKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0JBU0VUWVBFLCAvKnRwX2ZsYWdzKi8KLSAgICBQeURvY19TVFIoIkV4Y2VwdGlvbiByYWlzZWQgd2hlbiBJL08gd291bGQgYmxvY2sgIgotICAgICAgICAgICAgICAib24gYSBub24tYmxvY2tpbmcgSS9PIHN0cmVhbSIpLCAvKiB0cF9kb2MgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCi0gICAgYmxvY2tpbmdpb2Vycm9yX21lbWJlcnMsICAgIC8qIHRwX21lbWJlcnMgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KLSAgICAoaW5pdHByb2MpYmxvY2tpbmdpb2Vycm9yX2luaXQsIC8qIHRwX2luaXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCi19OwotUHlPYmplY3QgKlB5RXhjX0Jsb2NraW5nSU9FcnJvciA9IChQeU9iamVjdCAqKSZfUHlFeGNfQmxvY2tpbmdJT0Vycm9yOwotDAotCi0vKgogICogVGhlIG1haW4gb3BlbigpIGZ1bmN0aW9uCiAgKi8KIFB5RG9jX1NUUlZBUihvcGVuX2RvYywKICJvcGVuKGZpbGUsIG1vZGU9J3InLCBidWZmZXJpbmc9LTEsIGVuY29kaW5nPU5vbmUsXG4iCi0iICAgICBlcnJvcnM9Tm9uZSwgbmV3bGluZT1Ob25lLCBjbG9zZWZkPVRydWUpIC0+IGZpbGUgb2JqZWN0XG4iCisiICAgICBlcnJvcnM9Tm9uZSwgbmV3bGluZT1Ob25lLCBjbG9zZWZkPVRydWUsIG9wZW5lcj1Ob25lKSAtPiBmaWxlIG9iamVjdFxuIgogIlxuIgogIk9wZW4gZmlsZSBhbmQgcmV0dXJuIGEgc3RyZWFtLiAgUmFpc2UgSU9FcnJvciB1cG9uIGZhaWx1cmUuXG4iCiAiXG4iCkBAIC0xOTAsMTggKzEwOCwyMCBAQAogIm1vZGUgaXMgYW4gb3B0aW9uYWwgc3RyaW5nIHRoYXQgc3BlY2lmaWVzIHRoZSBtb2RlIGluIHdoaWNoIHRoZSBmaWxlXG4iCiAiaXMgb3BlbmVkLiBJdCBkZWZhdWx0cyB0byAncicgd2hpY2ggbWVhbnMgb3BlbiBmb3IgcmVhZGluZyBpbiB0ZXh0XG4iCiAibW9kZS4gIE90aGVyIGNvbW1vbiB2YWx1ZXMgYXJlICd3JyBmb3Igd3JpdGluZyAodHJ1bmNhdGluZyB0aGUgZmlsZSBpZlxuIgotIml0IGFscmVhZHkgZXhpc3RzKSwgYW5kICdhJyBmb3IgYXBwZW5kaW5nICh3aGljaCBvbiBzb21lIFVuaXggc3lzdGVtcyxcbiIKLSJtZWFucyB0aGF0IGFsbCB3cml0ZXMgYXBwZW5kIHRvIHRoZSBlbmQgb2YgdGhlIGZpbGUgcmVnYXJkbGVzcyBvZiB0aGVcbiIKLSJjdXJyZW50IHNlZWsgcG9zaXRpb24pLiBJbiB0ZXh0IG1vZGUsIGlmIGVuY29kaW5nIGlzIG5vdCBzcGVjaWZpZWQgdGhlXG4iCi0iZW5jb2RpbmcgdXNlZCBpcyBwbGF0Zm9ybSBkZXBlbmRlbnQuIChGb3IgcmVhZGluZyBhbmQgd3JpdGluZyByYXdcbiIKLSJieXRlcyB1c2UgYmluYXJ5IG1vZGUgYW5kIGxlYXZlIGVuY29kaW5nIHVuc3BlY2lmaWVkLikgVGhlIGF2YWlsYWJsZVxuIgotIm1vZGVzIGFyZTpcbiIKKyJpdCBhbHJlYWR5IGV4aXN0cyksICd4JyBmb3IgY3JlYXRpbmcgYW5kIHdyaXRpbmcgdG8gYSBuZXcgZmlsZSwgYW5kXG4iCisiJ2EnIGZvciBhcHBlbmRpbmcgKHdoaWNoIG9uIHNvbWUgVW5peCBzeXN0ZW1zLCBtZWFucyB0aGF0IGFsbCB3cml0ZXNcbiIKKyJhcHBlbmQgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSByZWdhcmRsZXNzIG9mIHRoZSBjdXJyZW50IHNlZWsgcG9zaXRpb24pLlxuIgorIkluIHRleHQgbW9kZSwgaWYgZW5jb2RpbmcgaXMgbm90IHNwZWNpZmllZCB0aGUgZW5jb2RpbmcgdXNlZCBpcyBwbGF0Zm9ybVxuIgorImRlcGVuZGVudDogbG9jYWxlLmdldHByZWZlcnJlZGVuY29kaW5nKEZhbHNlKSBpcyBjYWxsZWQgdG8gZ2V0IHRoZVxuIgorImN1cnJlbnQgbG9jYWxlIGVuY29kaW5nLiAoRm9yIHJlYWRpbmcgYW5kIHdyaXRpbmcgcmF3IGJ5dGVzIHVzZSBiaW5hcnlcbiIKKyJtb2RlIGFuZCBsZWF2ZSBlbmNvZGluZyB1bnNwZWNpZmllZC4pIFRoZSBhdmFpbGFibGUgbW9kZXMgYXJlOlxuIgogIlxuIgogIj09PT09PT09PSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIKICJDaGFyYWN0ZXIgTWVhbmluZ1xuIgogIi0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIKICIncicgICAgICAgb3BlbiBmb3IgcmVhZGluZyAoZGVmYXVsdClcbiIKICIndycgICAgICAgb3BlbiBmb3Igd3JpdGluZywgdHJ1bmNhdGluZyB0aGUgZmlsZSBmaXJzdFxuIgorIid4JyAgICAgICBjcmVhdGUgYSBuZXcgZmlsZSBhbmQgb3BlbiBpdCBmb3Igd3JpdGluZ1xuIgogIidhJyAgICAgICBvcGVuIGZvciB3cml0aW5nLCBhcHBlbmRpbmcgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSBpZiBpdCBleGlzdHNcbiIKICInYicgICAgICAgYmluYXJ5IG1vZGVcbiIKICIndCcgICAgICAgdGV4dCBtb2RlIChkZWZhdWx0KVxuIgpAQCAtMjEyLDcgKzEzMiw4IEBACiAiXG4iCiAiVGhlIGRlZmF1bHQgbW9kZSBpcyAncnQnIChvcGVuIGZvciByZWFkaW5nIHRleHQpLiBGb3IgYmluYXJ5IHJhbmRvbVxuIgogImFjY2VzcywgdGhlIG1vZGUgJ3crYicgb3BlbnMgYW5kIHRydW5jYXRlcyB0aGUgZmlsZSB0byAwIGJ5dGVzLCB3aGlsZVxuIgotIidyK2InIG9wZW5zIHRoZSBmaWxlIHdpdGhvdXQgdHJ1bmNhdGlvbi5cbiIKKyIncitiJyBvcGVucyB0aGUgZmlsZSB3aXRob3V0IHRydW5jYXRpb24uIFRoZSAneCcgbW9kZSBpbXBsaWVzICd3JyBhbmRcbiIKKyJyYWlzZXMgYW4gYEZpbGVFeGlzdHNFcnJvcmAgaWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMuXG4iCiAiXG4iCiAiUHl0aG9uIGRpc3Rpbmd1aXNoZXMgYmV0d2VlbiBmaWxlcyBvcGVuZWQgaW4gYmluYXJ5IGFuZCB0ZXh0IG1vZGVzLFxuIgogImV2ZW4gd2hlbiB0aGUgdW5kZXJseWluZyBvcGVyYXRpbmcgc3lzdGVtIGRvZXNuJ3QuIEZpbGVzIG9wZW5lZCBpblxuIgpAQCAtMjcyLDYgKzE5MywxMiBAQAogIndoZW4gdGhlIGZpbGUgaXMgY2xvc2VkLiBUaGlzIGRvZXMgbm90IHdvcmsgd2hlbiBhIGZpbGUgbmFtZSBpcyBnaXZlblxuIgogImFuZCBtdXN0IGJlIFRydWUgaW4gdGhhdCBjYXNlLlxuIgogIlxuIgorIkEgY3VzdG9tIG9wZW5lciBjYW4gYmUgdXNlZCBieSBwYXNzaW5nIGEgY2FsbGFibGUgYXMgKm9wZW5lciouIFRoZVxuIgorInVuZGVybHlpbmcgZmlsZSBkZXNjcmlwdG9yIGZvciB0aGUgZmlsZSBvYmplY3QgaXMgdGhlbiBvYnRhaW5lZCBieVxuIgorImNhbGxpbmcgKm9wZW5lciogd2l0aCAoKmZpbGUqLCAqZmxhZ3MqKS4gKm9wZW5lciogbXVzdCByZXR1cm4gYW4gb3BlblxuIgorImZpbGUgZGVzY3JpcHRvciAocGFzc2luZyBvcy5vcGVuIGFzICpvcGVuZXIqIHJlc3VsdHMgaW4gZnVuY3Rpb25hbGl0eVxuIgorInNpbWlsYXIgdG8gcGFzc2luZyBOb25lKS5cbiIKKyJcbiIKICJvcGVuKCkgcmV0dXJucyBhIGZpbGUgb2JqZWN0IHdob3NlIHR5cGUgZGVwZW5kcyBvbiB0aGUgbW9kZSwgYW5kXG4iCiAidGhyb3VnaCB3aGljaCB0aGUgc3RhbmRhcmQgZmlsZSBvcGVyYXRpb25zIHN1Y2ggYXMgcmVhZGluZyBhbmQgd3JpdGluZ1xuIgogImFyZSBwZXJmb3JtZWQuIFdoZW4gb3BlbigpIGlzIHVzZWQgdG8gb3BlbiBhIGZpbGUgaW4gYSB0ZXh0IG1vZGUgKCd3JyxcbiIKQEAgLTI5MiwxNCArMjE5LDE0IEBACiB7CiAgICAgY2hhciAqa3dsaXN0W10gPSB7ImZpbGUiLCAibW9kZSIsICJidWZmZXJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICJlbmNvZGluZyIsICJlcnJvcnMiLCAibmV3bGluZSIsCi0gICAgICAgICAgICAgICAgICAgICAgImNsb3NlZmQiLCBOVUxMfTsKLSAgICBQeU9iamVjdCAqZmlsZTsKKyAgICAgICAgICAgICAgICAgICAgICAiY2xvc2VmZCIsICJvcGVuZXIiLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqZmlsZSwgKm9wZW5lciA9IFB5X05vbmU7CiAgICAgY2hhciAqbW9kZSA9ICJyIjsKICAgICBpbnQgYnVmZmVyaW5nID0gLTEsIGNsb3NlZmQgPSAxOwogICAgIGNoYXIgKmVuY29kaW5nID0gTlVMTCwgKmVycm9ycyA9IE5VTEwsICpuZXdsaW5lID0gTlVMTDsKICAgICB1bnNpZ25lZCBpOwogCi0gICAgaW50IHJlYWRpbmcgPSAwLCB3cml0aW5nID0gMCwgYXBwZW5kaW5nID0gMCwgdXBkYXRpbmcgPSAwOworICAgIGludCBjcmVhdGluZyA9IDAsIHJlYWRpbmcgPSAwLCB3cml0aW5nID0gMCwgYXBwZW5kaW5nID0gMCwgdXBkYXRpbmcgPSAwOwogICAgIGludCB0ZXh0ID0gMCwgYmluYXJ5ID0gMCwgdW5pdmVyc2FsID0gMDsKIAogICAgIGNoYXIgcmF3bW9kZVs1XSwgKm07CkBAIC0zMDcsMTAgKzIzNCwxNCBAQAogCiAgICAgUHlPYmplY3QgKnJhdywgKm1vZGVvYmogPSBOVUxMLCAqYnVmZmVyID0gTlVMTCwgKndyYXBwZXIgPSBOVUxMOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98c2l6enppOm9wZW4iLCBrd2xpc3QsCisgICAgX1B5X0lERU5USUZJRVIoaXNhdHR5KTsKKyAgICBfUHlfSURFTlRJRklFUihmaWxlbm8pOworICAgIF9QeV9JREVOVElGSUVSKG1vZGUpOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98c2l6enppTzpvcGVuIiwga3dsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaWxlLCAmbW9kZSwgJmJ1ZmZlcmluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZW5jb2RpbmcsICZlcnJvcnMsICZuZXdsaW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjbG9zZWZkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjbG9zZWZkLCAmb3BlbmVyKSkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTMyNiw2ICsyNTcsOSBAQAogICAgICAgICBjaGFyIGMgPSBtb2RlW2ldOwogCiAgICAgICAgIHN3aXRjaCAoYykgeworICAgICAgICBjYXNlICd4JzoKKyAgICAgICAgICAgIGNyZWF0aW5nID0gMTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdyJzoKICAgICAgICAgICAgIHJlYWRpbmcgPSAxOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zNjIsNiArMjk2LDcgQEAKICAgICB9CiAKICAgICBtID0gcmF3bW9kZTsKKyAgICBpZiAoY3JlYXRpbmcpICAqKG0rKykgPSAneCc7CiAgICAgaWYgKHJlYWRpbmcpICAgKihtKyspID0gJ3InOwogICAgIGlmICh3cml0aW5nKSAgICoobSsrKSA9ICd3JzsKICAgICBpZiAoYXBwZW5kaW5nKSAqKG0rKykgPSAnYSc7CkBAIC0zODQsOSArMzE5LDkgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgaWYgKHJlYWRpbmcgKyB3cml0aW5nICsgYXBwZW5kaW5nID4gMSkgeworICAgIGlmIChjcmVhdGluZyArIHJlYWRpbmcgKyB3cml0aW5nICsgYXBwZW5kaW5nID4gMSkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGhhdmUgZXhhY3RseSBvbmUgb2YgcmVhZC93cml0ZS9hcHBlbmQgbW9kZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgIm11c3QgaGF2ZSBleGFjdGx5IG9uZSBvZiBjcmVhdGUvcmVhZC93cml0ZS9hcHBlbmQgbW9kZSIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTQxMCw3ICszNDUsNyBAQAogCiAgICAgLyogQ3JlYXRlIHRoZSBSYXcgZmlsZSBzdHJlYW0gKi8KICAgICByYXcgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb24oKFB5T2JqZWN0ICopJlB5RmlsZUlPX1R5cGUsCi0JCQkJIk9zaSIsIGZpbGUsIHJhd21vZGUsIGNsb3NlZmQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT3NpTyIsIGZpbGUsIHJhd21vZGUsIGNsb3NlZmQsIG9wZW5lcik7CiAgICAgaWYgKHJhdyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIApAQCAtNDIwLDcgKzM1NSw3IEBACiAKICAgICAvKiBidWZmZXJpbmcgKi8KICAgICB7Ci0gICAgICAgIFB5T2JqZWN0ICpyZXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHJhdywgImlzYXR0eSIsIE5VTEwpOworICAgICAgICBQeU9iamVjdCAqcmVzID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChyYXcsICZQeUlkX2lzYXR0eSwgTlVMTCk7CiAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgIGlzYXR0eSA9IFB5TG9uZ19Bc0xvbmcocmVzKTsKQEAgLTQ0Miw3ICszNzcsNyBAQAogICAgICAgICB7CiAgICAgICAgICAgICBzdHJ1Y3Qgc3RhdCBzdDsKICAgICAgICAgICAgIGxvbmcgZmlsZW5vOwotICAgICAgICAgICAgUHlPYmplY3QgKnJlcyA9IFB5T2JqZWN0X0NhbGxNZXRob2QocmF3LCAiZmlsZW5vIiwgTlVMTCk7CisgICAgICAgICAgICBQeU9iamVjdCAqcmVzID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChyYXcsICZQeUlkX2ZpbGVubywgTlVMTCk7CiAgICAgICAgICAgICBpZiAocmVzID09IE5VTEwpCiAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKIApAQCAtNDgwLDcgKzQxNSw3IEBACiAKICAgICAgICAgaWYgKHVwZGF0aW5nKQogICAgICAgICAgICAgQnVmZmVyZWRfY2xhc3MgPSAoUHlPYmplY3QgKikmUHlCdWZmZXJlZFJhbmRvbV9UeXBlOwotICAgICAgICBlbHNlIGlmICh3cml0aW5nIHx8IGFwcGVuZGluZykKKyAgICAgICAgZWxzZSBpZiAoY3JlYXRpbmcgfHwgd3JpdGluZyB8fCBhcHBlbmRpbmcpCiAgICAgICAgICAgICBCdWZmZXJlZF9jbGFzcyA9IChQeU9iamVjdCAqKSZQeUJ1ZmZlcmVkV3JpdGVyX1R5cGU7CiAgICAgICAgIGVsc2UgaWYgKHJlYWRpbmcpCiAgICAgICAgICAgICBCdWZmZXJlZF9jbGFzcyA9IChQeU9iamVjdCAqKSZQeUJ1ZmZlcmVkUmVhZGVyX1R5cGU7CkBAIC01MTMsNyArNDQ4LDcgQEAKICAgICBpZiAod3JhcHBlciA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogCi0gICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcod3JhcHBlciwgIm1vZGUiLCBtb2Rlb2JqKSA8IDApCisgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQod3JhcHBlciwgJlB5SWRfbW9kZSwgbW9kZW9iaikgPCAwKQogICAgICAgICBnb3RvIGVycm9yOwogICAgIFB5X0RFQ1JFRihtb2Rlb2JqKTsKICAgICByZXR1cm4gd3JhcHBlcjsKQEAgLTU3Niw3ICs1MTEsNyBAQAogCiAKIC8qIEJhc2ljYWxseSB0aGUgIm4iIGZvcm1hdCBjb2RlIHdpdGggdGhlIGFiaWxpdHkgdG8gdHVybiBOb25lIGludG8gLTEuICovCi1pbnQgCitpbnQKIF9QeUlPX0NvbnZlcnRTc2l6ZV90KFB5T2JqZWN0ICpvYmosIHZvaWQgKnJlc3VsdCkgewogICAgIFB5X3NzaXplX3QgbGltaXQ7CiAgICAgaWYgKG9iaiA9PSBQeV9Ob25lKSB7CkBAIC02MDMsNyArNTM4LDYgQEAKICAgICBfUHlJT19TdGF0ZSAqc3RhdGUgPSBJT19NT0RfU1RBVEUobW9kKTsKICAgICBpZiAoIXN0YXRlLT5pbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgUHlfVklTSVQoc3RhdGUtPm9zX21vZHVsZSk7CiAgICAgaWYgKHN0YXRlLT5sb2NhbGVfbW9kdWxlICE9IE5VTEwpIHsKICAgICAgICAgUHlfVklTSVQoc3RhdGUtPmxvY2FsZV9tb2R1bGUpOwogICAgIH0KQEAgLTYxNyw3ICs1NTEsNiBAQAogICAgIF9QeUlPX1N0YXRlICpzdGF0ZSA9IElPX01PRF9TVEFURShtb2QpOwogICAgIGlmICghc3RhdGUtPmluaXRpYWxpemVkKQogICAgICAgICByZXR1cm4gMDsKLSAgICBQeV9DTEVBUihzdGF0ZS0+b3NfbW9kdWxlKTsKICAgICBpZiAoc3RhdGUtPmxvY2FsZV9tb2R1bGUgIT0gTlVMTCkKICAgICAgICAgUHlfQ0xFQVIoc3RhdGUtPmxvY2FsZV9tb2R1bGUpOwogICAgIFB5X0NMRUFSKHN0YXRlLT51bnN1cHBvcnRlZF9vcGVyYXRpb24pOwpAQCAtNjYxLDExICs1OTQsNiBAQAogICAgIHN0YXRlID0gSU9fTU9EX1NUQVRFKG0pOwogICAgIHN0YXRlLT5pbml0aWFsaXplZCA9IDA7CiAKLSAgICAvKiBwdXQgb3MgaW4gdGhlIG1vZHVsZSBzdGF0ZSAqLwotICAgIHN0YXRlLT5vc19tb2R1bGUgPSBQeUltcG9ydF9JbXBvcnRNb2R1bGUoIm9zIik7Ci0gICAgaWYgKHN0YXRlLT5vc19tb2R1bGUgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsOwotCiAjZGVmaW5lIEFERF9UWVBFKHR5cGUsIG5hbWUpIFwKICAgICBpZiAoUHlUeXBlX1JlYWR5KHR5cGUpIDwgMCkgXAogICAgICAgICBnb3RvIGZhaWw7IFwKQEAgLTY5MCw5ICs2MTgsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT51bnN1cHBvcnRlZF9vcGVyYXRpb24pIDwgMCkKICAgICAgICAgZ290byBmYWlsOwogCi0gICAgLyogQmxvY2tpbmdJT0Vycm9yICovCi0gICAgX1B5RXhjX0Jsb2NraW5nSU9FcnJvci50cF9iYXNlID0gKFB5VHlwZU9iamVjdCAqKSBQeUV4Y19JT0Vycm9yOwotICAgIEFERF9UWVBFKCZfUHlFeGNfQmxvY2tpbmdJT0Vycm9yLCAiQmxvY2tpbmdJT0Vycm9yIik7CisgICAgLyogQmxvY2tpbmdJT0Vycm9yLCBmb3IgY29tcGF0aWJpbGl0eSAqLworICAgIFB5X0lOQ1JFRihQeUV4Y19CbG9ja2luZ0lPRXJyb3IpOworICAgIGlmIChQeU1vZHVsZV9BZGRPYmplY3QobSwgIkJsb2NraW5nSU9FcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlPYmplY3QgKikgUHlFeGNfQmxvY2tpbmdJT0Vycm9yKSA8IDApCisgICAgICAgIGdvdG8gZmFpbDsKIAogICAgIC8qIENvbmNyZXRlIGJhc2UgdHlwZXMgb2YgdGhlIElPIEFCQ3MuCiAgICAgICAgKHRoZSBBQkNzIHRoZW1zZWx2ZXMgYXJlIGRlY2xhcmVkIHRocm91Z2ggaW5oZXJpdGFuY2UgaW4gaW8ucHkpCkBAIC03NTgsNiArNjg4LDcgQEAKICAgICBBRERfSU5URVJORUQocmVhZCkKICAgICBBRERfSU5URVJORUQocmVhZDEpCiAgICAgQUREX0lOVEVSTkVEKHJlYWRhYmxlKQorICAgIEFERF9JTlRFUk5FRChyZWFkYWxsKQogICAgIEFERF9JTlRFUk5FRChyZWFkaW50bykKICAgICBBRERfSU5URVJORUQocmVhZGxpbmUpCiAgICAgQUREX0lOVEVSTkVEKHJlc2V0KQpAQCAtNzg4LDcgKzcxOSw2IEBACiAgICAgcmV0dXJuIG07CiAKICAgZmFpbDoKLSAgICBQeV9YREVDUkVGKHN0YXRlLT5vc19tb2R1bGUpOwogICAgIFB5X1hERUNSRUYoc3RhdGUtPnVuc3VwcG9ydGVkX29wZXJhdGlvbik7CiAgICAgUHlfREVDUkVGKG0pOwogICAgIHJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9faW8vX2lvbW9kdWxlLmggYi9Nb2R1bGVzL19pby9faW9tb2R1bGUuaAppbmRleCBhYThiZmQ2Li4wZmU5MGEzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19pby9faW9tb2R1bGUuaAorKysgYi9Nb2R1bGVzL19pby9faW9tb2R1bGUuaApAQCAtNTAsMTIgKzUwLDEyIEBACiAgICBgKmNvbnN1bWVkYC4KICAgIElmIG5vdCBmb3VuZCwgcmV0dXJucyAtMSBhbmQgc2V0cyBgKmNvbnN1bWVkYCB0byB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMKICAgIHdoaWNoIGNhbiBiZSBzYWZlbHkgcHV0IGFzaWRlIHVudGlsIGFub3RoZXIgc2VhcmNoLgotICAgCi0gICBOT1RFOiBmb3IgcGVyZm9ybWFuY2UgcmVhc29ucywgYGVuZGAgbXVzdCBwb2ludCB0byBhIE5VTCBjaGFyYWN0ZXIgKCdcMCcpLiAKKworICAgTk9URTogZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIGBlbmRgIG11c3QgcG9pbnQgdG8gYSBOVUwgY2hhcmFjdGVyICgnXDAnKS4KICAgIE90aGVyd2lzZSwgdGhlIGZ1bmN0aW9uIHdpbGwgc2NhbiBmdXJ0aGVyIGFuZCByZXR1cm4gZ2FyYmFnZS4gKi8KIGV4dGVybiBQeV9zc2l6ZV90IF9QeUlPX2ZpbmRfbGluZV9lbmRpbmcoCiAgICAgaW50IHRyYW5zbGF0ZWQsIGludCB1bml2ZXJzYWwsIFB5T2JqZWN0ICpyZWFkbmwsCi0gICAgUHlfVU5JQ09ERSAqc3RhcnQsIFB5X1VOSUNPREUgKmVuZCwgUHlfc3NpemVfdCAqY29uc3VtZWQpOworICAgIGludCBraW5kLCBjaGFyICpzdGFydCwgY2hhciAqZW5kLCBQeV9zc2l6ZV90ICpjb25zdW1lZCk7CiAKIC8qIFJldHVybiAxIGlmIGFuIEVudmlyb25tZW50RXJyb3Igd2l0aCBlcnJubyA9PSBFSU5UUiBpcyBzZXQgKGFuZCB0aGVuCiAgICBjbGVhcnMgdGhlIGVycm9yIGluZGljYXRvciksIDAgb3RoZXJ3aXNlLgpAQCAtNjUsMTUgKzY1LDYgQEAKIAogI2RlZmluZSBERUZBVUxUX0JVRkZFUl9TSVpFICg4ICogMTAyNCkgIC8qIGJ5dGVzICovCiAKLXR5cGVkZWYgc3RydWN0IHsKLSAgICBQeUV4Y2VwdGlvbl9IRUFECi0gICAgUHlPYmplY3QgKm15ZXJybm87Ci0gICAgUHlPYmplY3QgKnN0cmVycm9yOwotICAgIFB5T2JqZWN0ICpmaWxlbmFtZTsgLyogTm90IHVzZWQsIGJ1dCBwYXJ0IG9mIHRoZSBJT0Vycm9yIG9iamVjdCAqLwotICAgIFB5X3NzaXplX3Qgd3JpdHRlbjsKLX0gUHlCbG9ja2luZ0lPRXJyb3JPYmplY3Q7Ci1leHRlcm4gUHlPYmplY3QgKlB5RXhjX0Jsb2NraW5nSU9FcnJvcjsKLQogLyoKICAqIE9mZnNldCB0eXBlIGZvciBwb3NpdGlvbmluZy4KICAqLwpAQCAtMTM4LDcgKzEyOSw2IEBACiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBpbnQgaW5pdGlhbGl6ZWQ7Ci0gICAgUHlPYmplY3QgKm9zX21vZHVsZTsKICAgICBQeU9iamVjdCAqbG9jYWxlX21vZHVsZTsKIAogICAgIFB5T2JqZWN0ICp1bnN1cHBvcnRlZF9vcGVyYXRpb247CkBAIC0xNjAsNiArMTUwLDcgQEAKIGV4dGVybiBQeU9iamVjdCAqX1B5SU9fc3RyX3JlYWQ7CiBleHRlcm4gUHlPYmplY3QgKl9QeUlPX3N0cl9yZWFkMTsKIGV4dGVybiBQeU9iamVjdCAqX1B5SU9fc3RyX3JlYWRhYmxlOworZXh0ZXJuIFB5T2JqZWN0ICpfUHlJT19zdHJfcmVhZGFsbDsKIGV4dGVybiBQeU9iamVjdCAqX1B5SU9fc3RyX3JlYWRpbnRvOwogZXh0ZXJuIFB5T2JqZWN0ICpfUHlJT19zdHJfcmVhZGxpbmU7CiBleHRlcm4gUHlPYmplY3QgKl9QeUlPX3N0cl9yZXNldDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX2lvL2J1ZmZlcmVkaW8uYyBiL01vZHVsZXMvX2lvL2J1ZmZlcmVkaW8uYwppbmRleCAyMWU2YjM2Li5mNzE3ODE3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19pby9idWZmZXJlZGlvLmMKKysrIGIvTW9kdWxlcy9faW8vYnVmZmVyZWRpby5jCkBAIC0xLDkgKzEsOSBAQAogLyoKICAgICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBCdWZmZXJlZCBJL08gYXMgZGVmaW5lZCBieSBQRVAgMzExNiAtICJOZXcgSS9PIgotICAgIAorCiAgICAgQ2xhc3NlcyBkZWZpbmVkIGhlcmU6IEJ1ZmZlcmVkSU9CYXNlLCBCdWZmZXJlZFJlYWRlciwgQnVmZmVyZWRXcml0ZXIsCiAgICAgQnVmZmVyZWRSYW5kb20uCi0gICAgCisKICAgICBXcml0dGVuIGJ5IEFtYXVyeSBGb3JnZW90IGQnQXJjIGFuZCBBbnRvaW5lIFBpdHJvdQogKi8KIApAQCAtMTMsNiArMTMsMjAgQEAKICNpbmNsdWRlICJweXRocmVhZC5oIgogI2luY2x1ZGUgIl9pb21vZHVsZS5oIgogCitfUHlfSURFTlRJRklFUihjbG9zZSk7CitfUHlfSURFTlRJRklFUihfZGVhbGxvY193YXJuKTsKK19QeV9JREVOVElGSUVSKGZsdXNoKTsKK19QeV9JREVOVElGSUVSKGlzYXR0eSk7CitfUHlfSURFTlRJRklFUihtb2RlKTsKK19QeV9JREVOVElGSUVSKG5hbWUpOworX1B5X0lERU5USUZJRVIocGVlayk7CitfUHlfSURFTlRJRklFUihyZWFkKTsKK19QeV9JREVOVElGSUVSKHJlYWQxKTsKK19QeV9JREVOVElGSUVSKHJlYWRhYmxlKTsKK19QeV9JREVOVElGSUVSKHJlYWRpbnRvKTsKK19QeV9JREVOVElGSUVSKHdyaXRhYmxlKTsKK19QeV9JREVOVElGSUVSKHdyaXRlKTsKKwogLyoKICAqIEJ1ZmZlcmVkSU9CYXNlIGNsYXNzLCBpbmhlcml0cyBmcm9tIElPQmFzZS4KICAqLwpAQCAtMzgsMTIgKzUyLDEzIEBACiAgICAgUHlfYnVmZmVyIGJ1ZjsKICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICBQeU9iamVjdCAqZGF0YTsKKyAgICBfUHlfSURFTlRJRklFUihyZWFkKTsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAidyo6cmVhZGludG8iLCAmYnVmKSkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBkYXRhID0gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLCAicmVhZCIsICJuIiwgYnVmLmxlbik7CisgICAgZGF0YSA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoc2VsZiwgJlB5SWRfcmVhZCwgIm4iLCBidWYubGVuKTsKICAgICBpZiAoZGF0YSA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogCkBAIC0xOTgsNyArMjEzLDcgQEAKICAgICBpbnQgcmVhZGFibGU7CiAgICAgaW50IHdyaXRhYmxlOwogICAgIGludCBkZWFsbG9jYXRpbmc7Ci0gICAgCisKICAgICAvKiBUcnVlIGlmIHRoaXMgaXMgYSB2YW5pbGxhIEJ1ZmZlcmVkIG9iamVjdCAocmF0aGVyIHRoYW4gYSB1c2VyIGRlcml2ZWQKICAgICAgICBjbGFzcykgKmFuZCogdGhlIHJhdyBzdHJlYW0gaXMgYSB2YW5pbGxhIEZpbGVJTyBvYmplY3QuICovCiAgICAgaW50IGZhc3RfY2xvc2VkX2NoZWNrczsKQEAgLTIzNyw3ICsyNTIsNyBAQAogCiAvKgogICAgIEltcGxlbWVudGF0aW9uIG5vdGVzOgotICAgIAorCiAgICAgKiBCdWZmZXJlZFJlYWRlciwgQnVmZmVyZWRXcml0ZXIgYW5kIEJ1ZmZlcmVkUmFuZG9tIHRyeSB0byBzaGFyZSBtb3N0CiAgICAgICBtZXRob2RzICh0aGlzIGlzIGhlbHBlZCBieSB0aGUgbWVtYmVycyBgcmVhZGFibGVgIGFuZCBgd3JpdGFibGVgLCB3aGljaAogICAgICAgYXJlIGluaXRpYWxpemVkIGluIHRoZSByZXNwZWN0aXZlIGNvbnN0cnVjdG9ycykKQEAgLTI1NSw3ICsyNzAsNyBAQAogICAgIE5PVEU6IHdlIHNob3VsZCB0cnkgdG8gbWFpbnRhaW4gYmxvY2sgYWxpZ25tZW50IG9mIHJlYWRzIGFuZCB3cml0ZXMgdG8gdGhlCiAgICAgcmF3IHN0cmVhbSAoYWNjb3JkaW5nIHRvIHRoZSBidWZmZXIgc2l6ZSksIGJ1dCBmb3Igbm93IGl0IGlzIG9ubHkgZG9uZQogICAgIGluIHJlYWQoKSBhbmQgZnJpZW5kcy4KLSAgICAKKwogKi8KIAogLyogVGhlc2UgbWFjcm9zIHByb3RlY3QgdGhlIGJ1ZmZlcmVkIG9iamVjdCBhZ2FpbnN0IGNvbmN1cnJlbnQgb3BlcmF0aW9ucy4gKi8KQEAgLTQxMCw3ICs0MjUsNyBAQAogewogICAgIGlmIChzZWxmLT5vayAmJiBzZWxmLT5yYXcpIHsKICAgICAgICAgUHlPYmplY3QgKnI7Ci0gICAgICAgIHIgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHNlbGYtPnJhdywgIl9kZWFsbG9jX3dhcm4iLCAiTyIsIHNvdXJjZSk7CisgICAgICAgIHIgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHNlbGYtPnJhdywgJlB5SWRfX2RlYWxsb2Nfd2FybiwgIk8iLCBzb3VyY2UpOwogICAgICAgICBpZiAocikKICAgICAgICAgICAgIFB5X0RFQ1JFRihyKTsKICAgICAgICAgZWxzZQpAQCAtNTQzLDE0ICs1NTgsMTQgQEAKIGJ1ZmZlcmVkX25hbWVfZ2V0KGJ1ZmZlcmVkICpzZWxmLCB2b2lkICpjb250ZXh0KQogewogICAgIENIRUNLX0lOSVRJQUxJWkVEKHNlbGYpCi0gICAgcmV0dXJuIFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoc2VsZi0+cmF3LCAibmFtZSIpOworICAgIHJldHVybiBfUHlPYmplY3RfR2V0QXR0cklkKHNlbGYtPnJhdywgJlB5SWRfbmFtZSk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBidWZmZXJlZF9tb2RlX2dldChidWZmZXJlZCAqc2VsZiwgdm9pZCAqY29udGV4dCkKIHsKICAgICBDSEVDS19JTklUSUFMSVpFRChzZWxmKQotICAgIHJldHVybiBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHNlbGYtPnJhdywgIm1vZGUiKTsKKyAgICByZXR1cm4gX1B5T2JqZWN0X0dldEF0dHJJZChzZWxmLT5yYXcsICZQeUlkX21vZGUpOwogfQogCiAvKiBMb3dlci1sZXZlbCBBUElzICovCkBAIC01ODksMTQgKzYwNCwxNSBAQAogc3RhdGljIHZvaWQKIF9idWZmZXJlZHdyaXRlcl9yZXNldF9idWYoYnVmZmVyZWQgKnNlbGYpOwogc3RhdGljIFB5T2JqZWN0ICoKLV9idWZmZXJlZHJlYWRlcl9wZWVrX3VubG9ja2VkKGJ1ZmZlcmVkICpzZWxmLCBQeV9zc2l6ZV90KTsKK19idWZmZXJlZHJlYWRlcl9wZWVrX3VubG9ja2VkKGJ1ZmZlcmVkICpzZWxmKTsKIHN0YXRpYyBQeU9iamVjdCAqCiBfYnVmZmVyZWRyZWFkZXJfcmVhZF9hbGwoYnVmZmVyZWQgKnNlbGYpOwogc3RhdGljIFB5T2JqZWN0ICoKIF9idWZmZXJlZHJlYWRlcl9yZWFkX2Zhc3QoYnVmZmVyZWQgKnNlbGYsIFB5X3NzaXplX3QpOwogc3RhdGljIFB5T2JqZWN0ICoKIF9idWZmZXJlZHJlYWRlcl9yZWFkX2dlbmVyaWMoYnVmZmVyZWQgKnNlbGYsIFB5X3NzaXplX3QpOwotCitzdGF0aWMgUHlfc3NpemVfdAorX2J1ZmZlcmVkcmVhZGVyX3Jhd19yZWFkKGJ1ZmZlcmVkICpzZWxmLCBjaGFyICpzdGFydCwgUHlfc3NpemVfdCBsZW4pOwogCiAvKgogICogSGVscGVycwpAQCAtNjIwLDE0ICs2MzYsMTQgQEAKIF9idWZmZXJlZF9jaGVja19ibG9ja2luZ19lcnJvcih2b2lkKQogewogICAgIFB5T2JqZWN0ICp0LCAqdiwgKnRiOwotICAgIFB5QmxvY2tpbmdJT0Vycm9yT2JqZWN0ICplcnI7CisgICAgUHlPU0Vycm9yT2JqZWN0ICplcnI7CiAKICAgICBQeUVycl9GZXRjaCgmdCwgJnYsICZ0Yik7CiAgICAgaWYgKHYgPT0gTlVMTCB8fCAhUHlFcnJfR2l2ZW5FeGNlcHRpb25NYXRjaGVzKHYsIFB5RXhjX0Jsb2NraW5nSU9FcnJvcikpIHsKICAgICAgICAgUHlFcnJfUmVzdG9yZSh0LCB2LCB0Yik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBlcnIgPSAoUHlCbG9ja2luZ0lPRXJyb3JPYmplY3QgKikgdjsKKyAgICBlcnIgPSAoUHlPU0Vycm9yT2JqZWN0ICopIHY7CiAgICAgLyogVE9ETzogc2FuaXR5IGNoZWNrIChlcnItPndyaXR0ZW4gPj0gMCkgKi8KICAgICBQeUVycl9SZXN0b3JlKHQsIHYsIHRiKTsKICAgICByZXR1cm4gJmVyci0+d3JpdHRlbjsKQEAgLTY0Nyw3ICs2NjMsNyBAQAogICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSU9FcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAiUmF3IHN0cmVhbSByZXR1cm5lZCBpbnZhbGlkIHBvc2l0aW9uICUiIFBZX1BSSWRPRkYsCi0JCQkgKFBZX09GRl9UX0NPTVBBVCluKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAoUFlfT0ZGX1RfQ09NUEFUKW4pOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIHNlbGYtPmFic19wb3MgPSBuOwpAQCAtNjgwLDcgKzY5Niw3IEBACiAgICAgICAgIGlmICghUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19JT0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICJSYXcgc3RyZWFtIHJldHVybmVkIGludmFsaWQgcG9zaXRpb24gJSIgUFlfUFJJZE9GRiwKLQkJCSAoUFlfT0ZGX1RfQ09NUEFUKW4pOworICAgICAgICAgICAgICAgICAgICAgICAgIChQWV9PRkZfVF9DT01QQVQpbik7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgICAgc2VsZi0+YWJzX3BvcyA9IG47CkBAIC04MjEsNyArODM3LDcgQEAKICAgICAgICAgICAgIGdvdG8gZW5kOwogICAgICAgICBQeV9DTEVBUihyZXMpOwogICAgIH0KLSAgICByZXMgPSBfYnVmZmVyZWRyZWFkZXJfcGVla191bmxvY2tlZChzZWxmLCBuKTsKKyAgICByZXMgPSBfYnVmZmVyZWRyZWFkZXJfcGVla191bmxvY2tlZChzZWxmKTsKIAogZW5kOgogICAgIExFQVZFX0JVRkZFUkVEKHNlbGYpCkBAIC04ODUsNjEgKzkwMSwxMTIgQEAKICAgICBpZiAobiA9PSAwKQogICAgICAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCAwKTsKIAotICAgIGlmICghRU5URVJfQlVGRkVSRUQoc2VsZikpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIAogICAgIC8qIFJldHVybiB1cCB0byBuIGJ5dGVzLiAgSWYgYXQgbGVhc3Qgb25lIGJ5dGUgaXMgYnVmZmVyZWQsIHdlCiAgICAgICAgb25seSByZXR1cm4gYnVmZmVyZWQgYnl0ZXMuICBPdGhlcndpc2UsIHdlIGRvIG9uZSByYXcgcmVhZC4gKi8KIAotICAgIC8qIFhYWDogdGhpcyBtaW1pY2tzIHRoZSBpby5weSBpbXBsZW1lbnRhdGlvbiBidXQgaXMgcHJvYmFibHkgd3JvbmcuCi0gICAgICAgSWYgd2UgbmVlZCB0byByZWFkIGZyb20gdGhlIHJhdyBzdHJlYW0sIHRoZW4gd2UgY291bGQgYWN0dWFsbHkgcmVhZAotICAgICAgIGFsbCBgbmAgYnl0ZXMgYXNrZWQgYnkgdGhlIGNhbGxlciAoYW5kIHBvc3NpYmx5IG1vcmUsIHNvIGFzIHRvIGZpbGwKLSAgICAgICBvdXIgYnVmZmVyIGZvciB0aGUgbmV4dCByZWFkcykuICovCi0KICAgICBoYXZlID0gUHlfU0FGRV9ET1dOQ0FTVChSRUFEQUhFQUQoc2VsZiksIFB5X29mZl90LCBQeV9zc2l6ZV90KTsKICAgICBpZiAoaGF2ZSA+IDApIHsKLSAgICAgICAgaWYgKG4gPiBoYXZlKQotICAgICAgICAgICAgbiA9IGhhdmU7Ci0gICAgICAgIHJlcyA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoc2VsZi0+YnVmZmVyICsgc2VsZi0+cG9zLCBuKTsKLSAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQotICAgICAgICAgICAgZ290byBlbmQ7Ci0gICAgICAgIHNlbGYtPnBvcyArPSBuOwotICAgICAgICBnb3RvIGVuZDsKKyAgICAgICAgbiA9IFB5X01JTihoYXZlLCBuKTsKKyAgICAgICAgcmVzID0gX2J1ZmZlcmVkcmVhZGVyX3JlYWRfZmFzdChzZWxmLCBuKTsKKyAgICAgICAgYXNzZXJ0KHJlcyAhPSBQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIHJlczsKICAgICB9Ci0KLSAgICBpZiAoc2VsZi0+d3JpdGFibGUpIHsKLSAgICAgICAgcmVzID0gYnVmZmVyZWRfZmx1c2hfYW5kX3Jld2luZF91bmxvY2tlZChzZWxmKTsKLSAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQotICAgICAgICAgICAgZ290byBlbmQ7CisgICAgcmVzID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBuKTsKKyAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmICghRU5URVJfQlVGRkVSRUQoc2VsZikpIHsKICAgICAgICAgUHlfREVDUkVGKHJlcyk7CisgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLQotICAgIC8qIEZpbGwgdGhlIGJ1ZmZlciBmcm9tIHRoZSByYXcgc3RyZWFtLCBhbmQgY29weSBpdCB0byB0aGUgcmVzdWx0LiAqLwogICAgIF9idWZmZXJlZHJlYWRlcl9yZXNldF9idWYoc2VsZik7Ci0gICAgciA9IF9idWZmZXJlZHJlYWRlcl9maWxsX2J1ZmZlcihzZWxmKTsKLSAgICBpZiAociA9PSAtMSkKLSAgICAgICAgZ290byBlbmQ7CisgICAgciA9IF9idWZmZXJlZHJlYWRlcl9yYXdfcmVhZChzZWxmLCBQeUJ5dGVzX0FTX1NUUklORyhyZXMpLCBuKTsKKyAgICBMRUFWRV9CVUZGRVJFRChzZWxmKQorICAgIGlmIChyID09IC0xKSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXMpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAgICAgaWYgKHIgPT0gLTIpCiAgICAgICAgIHIgPSAwOwogICAgIGlmIChuID4gcikKLSAgICAgICAgbiA9IHI7Ci0gICAgcmVzID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShzZWxmLT5idWZmZXIsIG4pOwotICAgIGlmIChyZXMgPT0gTlVMTCkKLSAgICAgICAgZ290byBlbmQ7Ci0gICAgc2VsZi0+cG9zID0gbjsKLQotZW5kOgotICAgIExFQVZFX0JVRkZFUkVEKHNlbGYpCisgICAgICAgIF9QeUJ5dGVzX1Jlc2l6ZSgmcmVzLCByKTsKICAgICByZXR1cm4gcmVzOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRfcmVhZGludG8oYnVmZmVyZWQgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogeworICAgIFB5X2J1ZmZlciBidWY7CisgICAgUHlfc3NpemVfdCBuLCB3cml0dGVuID0gMCwgcmVtYWluaW5nOworICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOworCiAgICAgQ0hFQ0tfSU5JVElBTElaRUQoc2VsZikKLSAgICAKLSAgICAvKiBUT0RPOiB1c2UgcmF3LnJlYWRpbnRvKCkgKG9yIGEgZGlyZWN0IGNvcHkgZnJvbSBvdXIgYnVmZmVyKSBpbnN0ZWFkISAqLwotICAgIHJldHVybiBidWZmZXJlZGlvYmFzZV9yZWFkaW50bygoUHlPYmplY3QgKilzZWxmLCBhcmdzKTsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAidyo6cmVhZGludG8iLCAmYnVmKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBuID0gUHlfU0FGRV9ET1dOQ0FTVChSRUFEQUhFQUQoc2VsZiksIFB5X29mZl90LCBQeV9zc2l6ZV90KTsKKyAgICBpZiAobiA+IDApIHsKKyAgICAgICAgaWYgKG4gPj0gYnVmLmxlbikgeworICAgICAgICAgICAgbWVtY3B5KGJ1Zi5idWYsIHNlbGYtPmJ1ZmZlciArIHNlbGYtPnBvcywgYnVmLmxlbik7CisgICAgICAgICAgICBzZWxmLT5wb3MgKz0gYnVmLmxlbjsKKyAgICAgICAgICAgIHJlcyA9IFB5TG9uZ19Gcm9tU3NpemVfdChidWYubGVuKTsKKyAgICAgICAgICAgIGdvdG8gZW5kX3VubG9ja2VkOworICAgICAgICB9CisgICAgICAgIG1lbWNweShidWYuYnVmLCBzZWxmLT5idWZmZXIgKyBzZWxmLT5wb3MsIG4pOworICAgICAgICBzZWxmLT5wb3MgKz0gbjsKKyAgICAgICAgd3JpdHRlbiA9IG47CisgICAgfQorCisgICAgaWYgKCFFTlRFUl9CVUZGRVJFRChzZWxmKSkKKyAgICAgICAgZ290byBlbmRfdW5sb2NrZWQ7CisKKyAgICBpZiAoc2VsZi0+d3JpdGFibGUpIHsKKyAgICAgICAgcmVzID0gYnVmZmVyZWRfZmx1c2hfYW5kX3Jld2luZF91bmxvY2tlZChzZWxmKTsKKyAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlbmQ7CisgICAgICAgIFB5X0NMRUFSKHJlcyk7CisgICAgfQorCisgICAgX2J1ZmZlcmVkcmVhZGVyX3Jlc2V0X2J1ZihzZWxmKTsKKyAgICBzZWxmLT5wb3MgPSAwOworCisgICAgZm9yIChyZW1haW5pbmcgPSBidWYubGVuIC0gd3JpdHRlbjsKKyAgICAgICAgIHJlbWFpbmluZyA+IDA7CisgICAgICAgICB3cml0dGVuICs9IG4sIHJlbWFpbmluZyAtPSBuKSB7CisgICAgICAgIC8qIElmIHJlbWFpbmluZyBieXRlcyBpcyBsYXJnZXIgdGhhbiBpbnRlcm5hbCBidWZmZXIgc2l6ZSwgY29weQorICAgICAgICAgKiBkaXJlY3RseSBpbnRvIGNhbGxlcidzIGJ1ZmZlci4gKi8KKyAgICAgICAgaWYgKHJlbWFpbmluZyA+IHNlbGYtPmJ1ZmZlcl9zaXplKSB7CisgICAgICAgICAgICBuID0gX2J1ZmZlcmVkcmVhZGVyX3Jhd19yZWFkKHNlbGYsIChjaGFyICopIGJ1Zi5idWYgKyB3cml0dGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1haW5pbmcpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbiA9IF9idWZmZXJlZHJlYWRlcl9maWxsX2J1ZmZlcihzZWxmKTsKKyAgICAgICAgICAgIGlmIChuID4gMCkgeworICAgICAgICAgICAgICAgIGlmIChuID4gcmVtYWluaW5nKQorICAgICAgICAgICAgICAgICAgICBuID0gcmVtYWluaW5nOworICAgICAgICAgICAgICAgIG1lbWNweSgoY2hhciAqKSBidWYuYnVmICsgd3JpdHRlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+YnVmZmVyICsgc2VsZi0+cG9zLCBuKTsKKyAgICAgICAgICAgICAgICBzZWxmLT5wb3MgKz0gbjsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsgLyogc2hvcnQgY2lyY3VpdCAqLworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmIChuID09IDAgfHwgKG4gPT0gLTIgJiYgd3JpdHRlbiA+IDApKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChuIDwgMCkgeworICAgICAgICAgICAgaWYgKG4gPT0gLTIpIHsKKyAgICAgICAgICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgICAgICAgICAgcmVzID0gUHlfTm9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGdvdG8gZW5kOworICAgICAgICB9CisgICAgfQorICAgIHJlcyA9IFB5TG9uZ19Gcm9tU3NpemVfdCh3cml0dGVuKTsKKworZW5kOgorICAgIExFQVZFX0JVRkZFUkVEKHNlbGYpOworZW5kX3VubG9ja2VkOgorICAgIFB5QnVmZmVyX1JlbGVhc2UoJmJ1Zik7CisgICAgcmV0dXJuIHJlczsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTEwOTAsOSArMTE1NywyMCBAQAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT3xpOnNlZWsiLCAmdGFyZ2V0b2JqLCAmd2hlbmNlKSkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgaWYgKHdoZW5jZSA8IDAgfHwgd2hlbmNlID4gMikgeworCisgICAgLyogRG8gc29tZSBlcnJvciBjaGVja2luZyBpbnN0ZWFkIG9mIHRydXN0aW5nIE9TICdzZWVrKCknCisgICAgKiogZXJyb3IgZGV0ZWN0aW9uLCBqdXN0IGluIGNhc2UuCisgICAgKi8KKyAgICBpZiAoKHdoZW5jZSA8IDAgfHwgd2hlbmNlID4yKQorI2lmZGVmIFNFRUtfSE9MRQorICAgICAgICAmJiAod2hlbmNlICE9IFNFRUtfSE9MRSkKKyNlbmRpZgorI2lmZGVmIFNFRUtfREFUQQorICAgICAgICAmJiAod2hlbmNlICE9IFNFRUtfREFUQSkKKyNlbmRpZgorICAgICAgICApIHsKICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAid2hlbmNlIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyLCBub3QgJWQiLCB3aGVuY2UpOworICAgICAgICAgICAgICAgICAgICAgIndoZW5jZSB2YWx1ZSAlZCB1bnN1cHBvcnRlZCIsIHdoZW5jZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIApAQCAtMTEwNSw3ICsxMTgzLDExIEBACiAgICAgaWYgKHRhcmdldCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICh3aGVuY2UgIT0gMiAmJiBzZWxmLT5yZWFkYWJsZSkgeworICAgIC8qIFNFRUtfU0VUIGFuZCBTRUVLX0NVUiBhcmUgc3BlY2lhbCBiZWNhdXNlIHdlIGNvdWxkIHNlZWsgaW5zaWRlIHRoZQorICAgICAgIGJ1ZmZlci4gT3RoZXIgd2hlbmNlIHZhbHVlcyBtdXN0IGJlIG1hbmFnZWQgd2l0aG91dCB0aGlzIG9wdGltaXphdGlvbi4KKyAgICAgICBTb21lIE9wZXJhdGluZyBTeXN0ZW1zIGNhbiBwcm92aWRlIGFkZGl0aW9uYWwgdmFsdWVzLCBsaWtlCisgICAgICAgU0VFS19IT0xFL1NFRUtfREFUQS4gKi8KKyAgICBpZiAoKCh3aGVuY2UgPT0gMCkgfHwgKHdoZW5jZSA9PSAxKSkgJiYgc2VsZi0+cmVhZGFibGUpIHsKICAgICAgICAgUHlfb2ZmX3QgY3VycmVudCwgYXZhaWw7CiAgICAgICAgIC8qIENoZWNrIGlmIHNlZWtpbmcgbGVhdmVzIHVzIGluc2lkZSB0aGUgY3VycmVudCBidWZmZXIsCiAgICAgICAgICAgIHNvIGFzIHRvIHJldHVybiBxdWlja2x5IGlmIHBvc3NpYmxlLiBBbHNvLCB3ZSBuZWVkbid0IHRha2UgdGhlCkBAIC0xMjMxLDcgKzEzMTMsNyBAQAogewogICAgIFB5T2JqZWN0ICpuYW1lb2JqLCAqcmVzOwogCi0gICAgbmFtZW9iaiA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoKFB5T2JqZWN0ICopIHNlbGYsICJuYW1lIik7CisgICAgbmFtZW9iaiA9IF9QeU9iamVjdF9HZXRBdHRySWQoKFB5T2JqZWN0ICopIHNlbGYsICZQeUlkX25hbWUpOwogICAgIGlmIChuYW1lb2JqID09IE5VTEwpIHsKICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKQEAgLTEzNTcsMzMgKzE0MzksNTggQEAKIF9idWZmZXJlZHJlYWRlcl9yZWFkX2FsbChidWZmZXJlZCAqc2VsZikKIHsKICAgICBQeV9zc2l6ZV90IGN1cnJlbnRfc2l6ZTsKLSAgICBQeU9iamVjdCAqcmVzLCAqZGF0YSA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKmNodW5rcyA9IFB5TGlzdF9OZXcoMCk7Ci0KLSAgICBpZiAoY2h1bmtzID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOworICAgIFB5T2JqZWN0ICpyZXMsICpkYXRhID0gTlVMTCwgKmNodW5rLCAqY2h1bmtzOwogCiAgICAgLyogRmlyc3QgY29weSB3aGF0IHdlIGhhdmUgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLiAqLwogICAgIGN1cnJlbnRfc2l6ZSA9IFB5X1NBRkVfRE9XTkNBU1QoUkVBREFIRUFEKHNlbGYpLCBQeV9vZmZfdCwgUHlfc3NpemVfdCk7CiAgICAgaWYgKGN1cnJlbnRfc2l6ZSkgewogICAgICAgICBkYXRhID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgKICAgICAgICAgICAgIHNlbGYtPmJ1ZmZlciArIHNlbGYtPnBvcywgY3VycmVudF9zaXplKTsKLSAgICAgICAgaWYgKGRhdGEgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlfREVDUkVGKGNodW5rcyk7CisgICAgICAgIGlmIChkYXRhID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQogICAgICAgICBzZWxmLT5wb3MgKz0gY3VycmVudF9zaXplOwogICAgIH0KICAgICAvKiBXZSdyZSBnb2luZyBwYXN0IHRoZSBidWZmZXIncyBib3VuZHMsIGZsdXNoIGl0ICovCiAgICAgaWYgKHNlbGYtPndyaXRhYmxlKSB7CiAgICAgICAgIHJlcyA9IGJ1ZmZlcmVkX2ZsdXNoX2FuZF9yZXdpbmRfdW5sb2NrZWQoc2VsZik7Ci0gICAgICAgIGlmIChyZXMgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlfREVDUkVGKGNodW5rcyk7CisgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9CiAgICAgICAgIFB5X0NMRUFSKHJlcyk7CiAgICAgfQogICAgIF9idWZmZXJlZHJlYWRlcl9yZXNldF9idWYoc2VsZik7CisKKyAgICBpZiAoUHlPYmplY3RfSGFzQXR0cihzZWxmLT5yYXcsIF9QeUlPX3N0cl9yZWFkYWxsKSkgeworICAgICAgICBjaHVuayA9IFB5T2JqZWN0X0NhbGxNZXRob2RPYmpBcmdzKHNlbGYtPnJhdywgX1B5SU9fc3RyX3JlYWRhbGwsIE5VTEwpOworICAgICAgICBpZiAoY2h1bmsgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBpZiAoY2h1bmsgIT0gUHlfTm9uZSAmJiAhUHlCeXRlc19DaGVjayhjaHVuaykpIHsKKyAgICAgICAgICAgIFB5X1hERUNSRUYoZGF0YSk7CisgICAgICAgICAgICBQeV9ERUNSRUYoY2h1bmspOworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlYWRhbGwoKSBzaG91bGQgcmV0dXJuIGJ5dGVzIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBpZiAoY2h1bmsgPT0gUHlfTm9uZSkgeworICAgICAgICAgICAgaWYgKGN1cnJlbnRfc2l6ZSA9PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBjaHVuazsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihjaHVuayk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoY3VycmVudF9zaXplKSB7CisgICAgICAgICAgICBQeUJ5dGVzX0NvbmNhdCgmZGF0YSwgY2h1bmspOworICAgICAgICAgICAgUHlfREVDUkVGKGNodW5rKTsKKyAgICAgICAgICAgIGlmIChkYXRhID09IE5VTEwpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICByZXR1cm4gZGF0YTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICByZXR1cm4gY2h1bms7CisgICAgfQorCisgICAgY2h1bmtzID0gUHlMaXN0X05ldygwKTsKKyAgICBpZiAoY2h1bmtzID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgaWYgKGRhdGEpIHsKICAgICAgICAgICAgIGlmIChQeUxpc3RfQXBwZW5kKGNodW5rcywgZGF0YSkgPCAwKSB7CkBAIC0xNTQ1LDcgKzE2NTIsNyBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotX2J1ZmZlcmVkcmVhZGVyX3BlZWtfdW5sb2NrZWQoYnVmZmVyZWQgKnNlbGYsIFB5X3NzaXplX3QgbikKK19idWZmZXJlZHJlYWRlcl9wZWVrX3VubG9ja2VkKGJ1ZmZlcmVkICpzZWxmKQogewogICAgIFB5X3NzaXplX3QgaGF2ZSwgcjsKIApAQCAtMTU4Nyw2ICsxNjk0LDcgQEAKICAgICB7InJlYWQiLCAoUHlDRnVuY3Rpb24pYnVmZmVyZWRfcmVhZCwgTUVUSF9WQVJBUkdTfSwKICAgICB7InBlZWsiLCAoUHlDRnVuY3Rpb24pYnVmZmVyZWRfcGVlaywgTUVUSF9WQVJBUkdTfSwKICAgICB7InJlYWQxIiwgKFB5Q0Z1bmN0aW9uKWJ1ZmZlcmVkX3JlYWQxLCBNRVRIX1ZBUkFSR1N9LAorICAgIHsicmVhZGludG8iLCAoUHlDRnVuY3Rpb24pYnVmZmVyZWRfcmVhZGludG8sIE1FVEhfVkFSQVJHU30sCiAgICAgeyJyZWFkbGluZSIsIChQeUNGdW5jdGlvbilidWZmZXJlZF9yZWFkbGluZSwgTUVUSF9WQVJBUkdTfSwKICAgICB7InNlZWsiLCAoUHlDRnVuY3Rpb24pYnVmZmVyZWRfc2VlaywgTUVUSF9WQVJBUkdTfSwKICAgICB7InRlbGwiLCAoUHlDRnVuY3Rpb24pYnVmZmVyZWRfdGVsbCwgTUVUSF9OT0FSR1N9LApAQCAtMTY1MSwxNSArMTc1OSw2IEBACiAMCiAKIAotc3RhdGljIGludAotY29tcGxhaW5fYWJvdXRfbWF4X2J1ZmZlcl9zaXplKHZvaWQpCi17Ci0gICAgaWYgKFB5RXJyX1dhcm5FeChQeUV4Y19EZXByZWNhdGlvbldhcm5pbmcsCi0gICAgICAgICAgICAgICAgICAgICAibWF4X2J1ZmZlcl9zaXplIGlzIGRlcHJlY2F0ZWQiLCAxKSA8IDApCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiAxOwotfQotCiAvKgogICogY2xhc3MgQnVmZmVyZWRXcml0ZXIKICAqLwpAQCAtMTY2OCw3ICsxNzY3LDcgQEAKICAgICAiXG4iCiAgICAgIlRoZSBjb25zdHJ1Y3RvciBjcmVhdGVzIGEgQnVmZmVyZWRXcml0ZXIgZm9yIHRoZSBnaXZlbiB3cml0ZWFibGUgcmF3XG4iCiAgICAgInN0cmVhbS4gSWYgdGhlIGJ1ZmZlcl9zaXplIGlzIG5vdCBnaXZlbiwgaXQgZGVmYXVsdHMgdG9cbiIKLSAgICAiREVGQVVMVF9CVUZGRVJfU0laRS4gbWF4X2J1ZmZlcl9zaXplIGlzbid0IHVzZWQgYW55bW9yZS5cbiIKKyAgICAiREVGQVVMVF9CVUZGRVJfU0laRS5cbiIKICAgICApOwogCiBzdGF0aWMgdm9pZApAQCAtMTY4MSwyMyArMTc4MCwxOCBAQAogc3RhdGljIGludAogYnVmZmVyZWR3cml0ZXJfaW5pdChidWZmZXJlZCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewotICAgIC8qIFRPRE86IHByb3Blcmx5IGRlcHJlY2F0ZSBtYXhfYnVmZmVyX3NpemUgKi8KLSAgICBjaGFyICprd2xpc3RbXSA9IHsicmF3IiwgImJ1ZmZlcl9zaXplIiwgIm1heF9idWZmZXJfc2l6ZSIsIE5VTEx9OworICAgIGNoYXIgKmt3bGlzdFtdID0geyJyYXciLCAiYnVmZmVyX3NpemUiLCBOVUxMfTsKICAgICBQeV9zc2l6ZV90IGJ1ZmZlcl9zaXplID0gREVGQVVMVF9CVUZGRVJfU0laRTsKLSAgICBQeV9zc2l6ZV90IG1heF9idWZmZXJfc2l6ZSA9IC0yMzQ7CiAgICAgUHlPYmplY3QgKnJhdzsKIAogICAgIHNlbGYtPm9rID0gMDsKICAgICBzZWxmLT5kZXRhY2hlZCA9IDA7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiT3xubjpCdWZmZXJlZFJlYWRlciIsIGt3bGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmF3LCAmYnVmZmVyX3NpemUsICZtYXhfYnVmZmVyX3NpemUpKSB7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98bjpCdWZmZXJlZFJlYWRlciIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmF3LCAmYnVmZmVyX3NpemUpKSB7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICBpZiAobWF4X2J1ZmZlcl9zaXplICE9IC0yMzQgJiYgIWNvbXBsYWluX2Fib3V0X21heF9idWZmZXJfc2l6ZSgpKQotICAgICAgICByZXR1cm4gLTE7Ci0KICAgICBpZiAoX1B5SU9CYXNlX2NoZWNrX3dyaXRhYmxlKHJhdywgUHlfVHJ1ZSkgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIC0xOwogCkBAIC0yMDc4LDE2ICsyMTcyLDEyIEBACiB7CiAgICAgUHlPYmplY3QgKnJlYWRlciwgKndyaXRlcjsKICAgICBQeV9zc2l6ZV90IGJ1ZmZlcl9zaXplID0gREVGQVVMVF9CVUZGRVJfU0laRTsKLSAgICBQeV9zc2l6ZV90IG1heF9idWZmZXJfc2l6ZSA9IC0yMzQ7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk9PfG5uOkJ1ZmZlcmVkUldQYWlyIiwgJnJlYWRlciwgJndyaXRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJmJ1ZmZlcl9zaXplLCAmbWF4X2J1ZmZlcl9zaXplKSkgeworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT098bjpCdWZmZXJlZFJXUGFpciIsICZyZWFkZXIsICZ3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZidWZmZXJfc2l6ZSkpIHsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIGlmIChtYXhfYnVmZmVyX3NpemUgIT0gLTIzNCAmJiAhY29tcGxhaW5fYWJvdXRfbWF4X2J1ZmZlcl9zaXplKCkpCi0gICAgICAgIHJldHVybiAtMTsKLQogICAgIGlmIChfUHlJT0Jhc2VfY2hlY2tfcmVhZGFibGUocmVhZGVyLCBQeV9UcnVlKSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgaWYgKF9QeUlPQmFzZV9jaGVja193cml0YWJsZSh3cml0ZXIsIFB5X1RydWUpID09IE5VTEwpCkBAIC0yMTM1LDEzICsyMjI1LDEzIEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1fZm9yd2FyZF9jYWxsKGJ1ZmZlcmVkICpzZWxmLCBjb25zdCBjaGFyICpuYW1lLCBQeU9iamVjdCAqYXJncykKK19mb3J3YXJkX2NhbGwoYnVmZmVyZWQgKnNlbGYsIF9QeV9JZGVudGlmaWVyICpuYW1lLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeU9iamVjdCAqZnVuYyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoKFB5T2JqZWN0ICopc2VsZiwgbmFtZSk7CisgICAgUHlPYmplY3QgKmZ1bmMgPSBfUHlPYmplY3RfR2V0QXR0cklkKChQeU9iamVjdCAqKXNlbGYsIG5hbWUpOwogICAgIFB5T2JqZWN0ICpyZXQ7CiAKICAgICBpZiAoZnVuYyA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19BdHRyaWJ1dGVFcnJvciwgbmFtZSk7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19BdHRyaWJ1dGVFcnJvciwgbmFtZS0+c3RyaW5nKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCkBAIC0yMTUzLDY2ICsyMjQzLDY2IEBACiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfcmVhZChyd3BhaXIgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIHJldHVybiBfZm9yd2FyZF9jYWxsKHNlbGYtPnJlYWRlciwgInJlYWQiLCBhcmdzKTsKKyAgICByZXR1cm4gX2ZvcndhcmRfY2FsbChzZWxmLT5yZWFkZXIsICZQeUlkX3JlYWQsIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfcGVlayhyd3BhaXIgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIHJldHVybiBfZm9yd2FyZF9jYWxsKHNlbGYtPnJlYWRlciwgInBlZWsiLCBhcmdzKTsKKyAgICByZXR1cm4gX2ZvcndhcmRfY2FsbChzZWxmLT5yZWFkZXIsICZQeUlkX3BlZWssIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfcmVhZDEocndwYWlyICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gX2ZvcndhcmRfY2FsbChzZWxmLT5yZWFkZXIsICJyZWFkMSIsIGFyZ3MpOworICAgIHJldHVybiBfZm9yd2FyZF9jYWxsKHNlbGYtPnJlYWRlciwgJlB5SWRfcmVhZDEsIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfcmVhZGludG8ocndwYWlyICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gX2ZvcndhcmRfY2FsbChzZWxmLT5yZWFkZXIsICJyZWFkaW50byIsIGFyZ3MpOworICAgIHJldHVybiBfZm9yd2FyZF9jYWxsKHNlbGYtPnJlYWRlciwgJlB5SWRfcmVhZGludG8sIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfd3JpdGUocndwYWlyICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gX2ZvcndhcmRfY2FsbChzZWxmLT53cml0ZXIsICJ3cml0ZSIsIGFyZ3MpOworICAgIHJldHVybiBfZm9yd2FyZF9jYWxsKHNlbGYtPndyaXRlciwgJlB5SWRfd3JpdGUsIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfZmx1c2gocndwYWlyICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gX2ZvcndhcmRfY2FsbChzZWxmLT53cml0ZXIsICJmbHVzaCIsIGFyZ3MpOworICAgIHJldHVybiBfZm9yd2FyZF9jYWxsKHNlbGYtPndyaXRlciwgJlB5SWRfZmx1c2gsIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfcmVhZGFibGUocndwYWlyICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gX2ZvcndhcmRfY2FsbChzZWxmLT5yZWFkZXIsICJyZWFkYWJsZSIsIGFyZ3MpOworICAgIHJldHVybiBfZm9yd2FyZF9jYWxsKHNlbGYtPnJlYWRlciwgJlB5SWRfcmVhZGFibGUsIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfd3JpdGFibGUocndwYWlyICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gX2ZvcndhcmRfY2FsbChzZWxmLT53cml0ZXIsICJ3cml0YWJsZSIsIGFyZ3MpOworICAgIHJldHVybiBfZm9yd2FyZF9jYWxsKHNlbGYtPndyaXRlciwgJlB5SWRfd3JpdGFibGUsIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfY2xvc2UocndwYWlyICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeU9iamVjdCAqcmV0ID0gX2ZvcndhcmRfY2FsbChzZWxmLT53cml0ZXIsICJjbG9zZSIsIGFyZ3MpOworICAgIFB5T2JqZWN0ICpyZXQgPSBfZm9yd2FyZF9jYWxsKHNlbGYtPndyaXRlciwgJlB5SWRfY2xvc2UsIGFyZ3MpOwogICAgIGlmIChyZXQgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgUHlfREVDUkVGKHJldCk7CiAKLSAgICByZXR1cm4gX2ZvcndhcmRfY2FsbChzZWxmLT5yZWFkZXIsICJjbG9zZSIsIGFyZ3MpOworICAgIHJldHVybiBfZm9yd2FyZF9jYWxsKHNlbGYtPnJlYWRlciwgJlB5SWRfY2xvc2UsIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogYnVmZmVyZWRyd3BhaXJfaXNhdHR5KHJ3cGFpciAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgUHlPYmplY3QgKnJldCA9IF9mb3J3YXJkX2NhbGwoc2VsZi0+d3JpdGVyLCAiaXNhdHR5IiwgYXJncyk7CisgICAgUHlPYmplY3QgKnJldCA9IF9mb3J3YXJkX2NhbGwoc2VsZi0+d3JpdGVyLCAmUHlJZF9pc2F0dHksIGFyZ3MpOwogCiAgICAgaWYgKHJldCAhPSBQeV9GYWxzZSkgewogICAgICAgICAvKiBlaXRoZXIgVHJ1ZSBvciBleGNlcHRpb24gKi8KQEAgLTIyMjAsNyArMjMxMCw3IEBACiAgICAgfQogICAgIFB5X0RFQ1JFRihyZXQpOwogCi0gICAgcmV0dXJuIF9mb3J3YXJkX2NhbGwoc2VsZi0+cmVhZGVyLCAiaXNhdHR5IiwgYXJncyk7CisgICAgcmV0dXJuIF9mb3J3YXJkX2NhbGwoc2VsZi0+cmVhZGVyLCAmUHlJZF9pc2F0dHksIGFyZ3MpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMjMxMiwyOCArMjQwMiwyNCBAQAogICAgICJcbiIKICAgICAiVGhlIGNvbnN0cnVjdG9yIGNyZWF0ZXMgYSByZWFkZXIgYW5kIHdyaXRlciBmb3IgYSBzZWVrYWJsZSBzdHJlYW0sXG4iCiAgICAgInJhdywgZ2l2ZW4gaW4gdGhlIGZpcnN0IGFyZ3VtZW50LiBJZiB0aGUgYnVmZmVyX3NpemUgaXMgb21pdHRlZCBpdFxuIgotICAgICJkZWZhdWx0cyB0byBERUZBVUxUX0JVRkZFUl9TSVpFLiBtYXhfYnVmZmVyX3NpemUgaXNuJ3QgdXNlZCBhbnltb3JlLlxuIgorICAgICJkZWZhdWx0cyB0byBERUZBVUxUX0JVRkZFUl9TSVpFLlxuIgogICAgICk7CiAKIHN0YXRpYyBpbnQKIGJ1ZmZlcmVkcmFuZG9tX2luaXQoYnVmZmVyZWQgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKLSAgICBjaGFyICprd2xpc3RbXSA9IHsicmF3IiwgImJ1ZmZlcl9zaXplIiwgIm1heF9idWZmZXJfc2l6ZSIsIE5VTEx9OworICAgIGNoYXIgKmt3bGlzdFtdID0geyJyYXciLCAiYnVmZmVyX3NpemUiLCBOVUxMfTsKICAgICBQeV9zc2l6ZV90IGJ1ZmZlcl9zaXplID0gREVGQVVMVF9CVUZGRVJfU0laRTsKLSAgICBQeV9zc2l6ZV90IG1heF9idWZmZXJfc2l6ZSA9IC0yMzQ7CiAgICAgUHlPYmplY3QgKnJhdzsKIAogICAgIHNlbGYtPm9rID0gMDsKICAgICBzZWxmLT5kZXRhY2hlZCA9IDA7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiT3xubjpCdWZmZXJlZFJlYWRlciIsIGt3bGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmF3LCAmYnVmZmVyX3NpemUsICZtYXhfYnVmZmVyX3NpemUpKSB7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98bjpCdWZmZXJlZFJlYWRlciIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmF3LCAmYnVmZmVyX3NpemUpKSB7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICBpZiAobWF4X2J1ZmZlcl9zaXplICE9IC0yMzQgJiYgIWNvbXBsYWluX2Fib3V0X21heF9idWZmZXJfc2l6ZSgpKQotICAgICAgICByZXR1cm4gLTE7Ci0KICAgICBpZiAoX1B5SU9CYXNlX2NoZWNrX3NlZWthYmxlKHJhdywgUHlfVHJ1ZSkgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIGlmIChfUHlJT0Jhc2VfY2hlY2tfcmVhZGFibGUocmF3LCBQeV9UcnVlKSA9PSBOVUxMKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9faW8vYnl0ZXNpby5jIGIvTW9kdWxlcy9faW8vYnl0ZXNpby5jCmluZGV4IGI0MDUxM2YuLjY1ZWM5MzEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2lvL2J5dGVzaW8uYworKysgYi9Nb2R1bGVzL19pby9ieXRlc2lvLmMKQEAgLTkzOCwxMyArOTM4LDExIEBACiBieXRlc2lvYnVmX2dldGJ1ZmZlcihieXRlc2lvYnVmICpvYmosIFB5X2J1ZmZlciAqdmlldywgaW50IGZsYWdzKQogewogICAgIGludCByZXQ7Ci0gICAgdm9pZCAqcHRyOwogICAgIGJ5dGVzaW8gKmIgPSAoYnl0ZXNpbyAqKSBvYmotPnNvdXJjZTsKICAgICBpZiAodmlldyA9PSBOVUxMKSB7CiAgICAgICAgIGItPmV4cG9ydHMrKzsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIHB0ciA9ICh2b2lkICopIG9iajsKICAgICByZXQgPSBQeUJ1ZmZlcl9GaWxsSW5mbyh2aWV3LCAoUHlPYmplY3QqKW9iaiwgYi0+YnVmLCBiLT5zdHJpbmdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBmbGFncyk7CiAgICAgaWYgKHJldCA+PSAwKSB7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19pby9maWxlaW8uYyBiL01vZHVsZXMvX2lvL2ZpbGVpby5jCmluZGV4IDYwNWFkNTEuLjZlMGJiZWUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2lvL2ZpbGVpby5jCisrKyBiL01vZHVsZXMvX2lvL2ZpbGVpby5jCkBAIC00Niw2ICs0Niw3IEBACiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgUHlPYmplY3RfSEVBRAogICAgIGludCBmZDsKKyAgICB1bnNpZ25lZCBpbnQgY3JlYXRlZCA6IDE7CiAgICAgdW5zaWduZWQgaW50IHJlYWRhYmxlIDogMTsKICAgICB1bnNpZ25lZCBpbnQgd3JpdGFibGUgOiAxOwogICAgIHNpZ25lZCBpbnQgc2Vla2FibGUgOiAyOyAvKiAtMSBtZWFucyB1bmtub3duICovCkBAIC0xMjIsNiArMTIzLDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBmaWxlaW9fY2xvc2UoZmlsZWlvICpzZWxmKQogeworICAgIF9QeV9JREVOVElGSUVSKGNsb3NlKTsKICAgICBpZiAoIXNlbGYtPmNsb3NlZmQpIHsKICAgICAgICAgc2VsZi0+ZmQgPSAtMTsKICAgICAgICAgUHlfUkVUVVJOX05PTkU7CkBAIC0xMzcsOCArMTM5LDggQEAKICAgICBpZiAoZXJybm8gPCAwKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKChQeU9iamVjdCopJlB5UmF3SU9CYXNlX1R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNsb3NlIiwgIk8iLCBzZWxmKTsKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgoUHlPYmplY3QqKSZQeVJhd0lPQmFzZV9UeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeUlkX2Nsb3NlLCAiTyIsIHNlbGYpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMTUxLDYgKzE1Myw3IEBACiAgICAgc2VsZiA9IChmaWxlaW8gKikgdHlwZS0+dHBfYWxsb2ModHlwZSwgMCk7CiAgICAgaWYgKHNlbGYgIT0gTlVMTCkgewogICAgICAgICBzZWxmLT5mZCA9IC0xOworICAgICAgICBzZWxmLT5jcmVhdGVkID0gMDsKICAgICAgICAgc2VsZi0+cmVhZGFibGUgPSAwOwogICAgICAgICBzZWxmLT53cml0YWJsZSA9IDA7CiAgICAgICAgIHNlbGYtPnNlZWthYmxlID0gLTE7CkBAIC0yMDQsOSArMjA3LDkgQEAKIGZpbGVpb19pbml0KFB5T2JqZWN0ICpvc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewogICAgIGZpbGVpbyAqc2VsZiA9IChmaWxlaW8gKikgb3NlbGY7Ci0gICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJmaWxlIiwgIm1vZGUiLCAiY2xvc2VmZCIsIE5VTEx9OworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsiZmlsZSIsICJtb2RlIiwgImNsb3NlZmQiLCAib3BlbmVyIiwgTlVMTH07CiAgICAgY29uc3QgY2hhciAqbmFtZSA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKm5hbWVvYmosICpzdHJpbmdvYmogPSBOVUxMOworICAgIFB5T2JqZWN0ICpuYW1lb2JqLCAqc3RyaW5nb2JqID0gTlVMTCwgKm9wZW5lciA9IFB5X05vbmU7CiAgICAgY2hhciAqbW9kZSA9ICJyIjsKICAgICBjaGFyICpzOwogI2lmZGVmIE1TX1dJTkRPV1MKQEAgLTIzMCw4ICsyMzMsOSBAQAogICAgICAgICAgICAgc2VsZi0+ZmQgPSAtMTsKICAgICB9CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiT3xzaTpmaWxlaW8iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3bGlzdCwgJm5hbWVvYmosICZtb2RlLCAmY2xvc2VmZCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98c2lPOmZpbGVpbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmbmFtZW9iaiwgJm1vZGUsICZjbG9zZWZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvcGVuZXIpKQogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAoUHlGbG9hdF9DaGVjayhuYW1lb2JqKSkgewpAQCAtMjU4LDkgKzI2MiwxMCBAQAogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJlbWJlZGRlZCBOVUwgY2hhcmFjdGVyIik7CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIH0KLSAgICAgICAgd2lkZW5hbWUgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShuYW1lb2JqKTsKLSAgICB9Ci0gICAgaWYgKHdpZGVuYW1lID09IE5VTEwpCisgICAgICAgIHdpZGVuYW1lID0gUHlVbmljb2RlX0FzVW5pY29kZShuYW1lb2JqKTsKKyAgICAgICAgaWYgKHdpZGVuYW1lID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgfSBlbHNlCiAjZW5kaWYKICAgICBpZiAoZmQgPCAwKQogICAgIHsKQEAgLTI3MywxNSArMjc4LDIzIEBACiAgICAgcyA9IG1vZGU7CiAgICAgd2hpbGUgKCpzKSB7CiAgICAgICAgIHN3aXRjaCAoKnMrKykgewotICAgICAgICBjYXNlICdyJzoKKyAgICAgICAgY2FzZSAneCc6CiAgICAgICAgICAgICBpZiAocndhKSB7CiAgICAgICAgICAgICBiYWRfbW9kZToKICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk11c3QgaGF2ZSBleGFjdGx5IG9uZSBvZiByZWFkL3dyaXRlL2FwcGVuZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNdXN0IGhhdmUgZXhhY3RseSBvbmUgb2YgY3JlYXRlL3JlYWQvd3JpdGUvYXBwZW5kICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZGUgYW5kIGF0IG1vc3Qgb25lIHBsdXMiKTsKICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcndhID0gMTsKKyAgICAgICAgICAgIHNlbGYtPmNyZWF0ZWQgPSAxOworICAgICAgICAgICAgc2VsZi0+d3JpdGFibGUgPSAxOworICAgICAgICAgICAgZmxhZ3MgfD0gT19FWENMIHwgT19DUkVBVDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdyJzoKKyAgICAgICAgICAgIGlmIChyd2EpCisgICAgICAgICAgICAgICAgZ290byBiYWRfbW9kZTsKKyAgICAgICAgICAgIHJ3YSA9IDE7CiAgICAgICAgICAgICBzZWxmLT5yZWFkYWJsZSA9IDE7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAndyc6CkBAIC0zNDcsMjAgKzM2MCw0MCBAQAogICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgfQogCi0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICAgICAgICAgZXJybm8gPSAwOworICAgICAgICBpZiAob3BlbmVyID09IFB5X05vbmUpIHsKKyAgICAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICNpZmRlZiBNU19XSU5ET1dTCi0gICAgICAgIGlmICh3aWRlbmFtZSAhPSBOVUxMKQotICAgICAgICAgICAgc2VsZi0+ZmQgPSBfd29wZW4od2lkZW5hbWUsIGZsYWdzLCAwNjY2KTsKLSAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKHdpZGVuYW1lICE9IE5VTEwpCisgICAgICAgICAgICAgICAgc2VsZi0+ZmQgPSBfd29wZW4od2lkZW5hbWUsIGZsYWdzLCAwNjY2KTsKKyAgICAgICAgICAgIGVsc2UKICNlbmRpZgotICAgICAgICAgICAgc2VsZi0+ZmQgPSBvcGVuKG5hbWUsIGZsYWdzLCAwNjY2KTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgICAgICAgICBzZWxmLT5mZCA9IG9wZW4obmFtZSwgZmxhZ3MsIDA2NjYpOworICAgICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpmZG9iaiA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuZXIsICJPaSIsIG5hbWVvYmosIGZsYWdzKTsKKyAgICAgICAgICAgIGlmIChmZG9iaiA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBpZiAoIVB5TG9uZ19DaGVjayhmZG9iaikpIHsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYoZmRvYmopOworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgaW50ZWdlciBmcm9tIG9wZW5lciIpOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHNlbGYtPmZkID0gUHlMb25nX0FzTG9uZyhmZG9iaik7CisgICAgICAgICAgICBQeV9ERUNSRUYoZmRvYmopOworICAgICAgICAgICAgaWYgKHNlbGYtPmZkID09IC0xKSB7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIGZkX2lzX293biA9IDE7CiAgICAgICAgIGlmIChzZWxmLT5mZCA8IDApIHsKICNpZmRlZiBNU19XSU5ET1dTCiAgICAgICAgICAgICBpZiAod2lkZW5hbWUgIT0gTlVMTCkKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm9XaXRoVW5pY29kZUZpbGVuYW1lKFB5RXhjX0lPRXJyb3IsIHdpZGVuYW1lKTsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWVPYmplY3QoUHlFeGNfSU9FcnJvciwgbmFtZW9iaik7CiAgICAgICAgICAgICBlbHNlCiAjZW5kaWYKICAgICAgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWUoUHlFeGNfSU9FcnJvciwgbmFtZSk7CkBAIC01MjksMzYgKzU2Miw1MyBAQAogfQogCiBzdGF0aWMgc2l6ZV90Ci1uZXdfYnVmZmVyc2l6ZShmaWxlaW8gKnNlbGYsIHNpemVfdCBjdXJyZW50c2l6ZSkKLXsKK25ld19idWZmZXJzaXplKGZpbGVpbyAqc2VsZiwgc2l6ZV90IGN1cnJlbnRzaXplCiAjaWZkZWYgSEFWRV9GU1RBVAotICAgIG9mZl90IHBvcywgZW5kOwotICAgIHN0cnVjdCBzdGF0IHN0OwotICAgIGlmIChmc3RhdChzZWxmLT5mZCwgJnN0KSA9PSAwKSB7Ci0gICAgICAgIGVuZCA9IHN0LnN0X3NpemU7Ci0gICAgICAgIHBvcyA9IGxzZWVrKHNlbGYtPmZkLCAwTCwgU0VFS19DVVIpOworICAgICAgICAgICAgICAgLCBQeV9vZmZfdCBwb3MsIFB5X29mZl90IGVuZAorI2VuZGlmCisgICAgICAgICAgICAgICApCit7CisgICAgc2l6ZV90IGFkZGVuZDsKKyNpZmRlZiBIQVZFX0ZTVEFUCisgICAgaWYgKGVuZCAhPSAoUHlfb2ZmX3QpLTEpIHsKICAgICAgICAgLyogRmlsZXMgY2xhaW1pbmcgYSBzaXplIHNtYWxsZXIgdGhhbiBTTUFMTENIVU5LIG1heQogICAgICAgICAgICBhY3R1YWxseSBiZSBzdHJlYW1pbmcgcHNldWRvLWZpbGVzLiBJbiB0aGlzIGNhc2UsIHdlCiAgICAgICAgICAgIGFwcGx5IHRoZSBtb3JlIGFnZ3Jlc3NpdmUgYWxnb3JpdGhtIGJlbG93LgogICAgICAgICAqLwogICAgICAgICBpZiAoZW5kID49IFNNQUxMQ0hVTksgJiYgZW5kID49IHBvcyAmJiBwb3MgPj0gMCkgewogICAgICAgICAgICAgLyogQWRkIDEgc28gaWYgdGhlIGZpbGUgd2VyZSB0byBncm93IHdlJ2Qgbm90aWNlLiAqLwotICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRzaXplICsgZW5kIC0gcG9zICsgMTsKKyAgICAgICAgICAgIFB5X29mZl90IGJ1ZnNpemUgPSBjdXJyZW50c2l6ZSArIGVuZCAtIHBvcyArIDE7CisgICAgICAgICAgICBpZiAoYnVmc2l6ZSA8IFBZX1NTSVpFX1RfTUFYKQorICAgICAgICAgICAgICAgIHJldHVybiAoc2l6ZV90KWJ1ZnNpemU7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIFBZX1NTSVpFX1RfTUFYOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAgICAgLyogRXhwYW5kIHRoZSBidWZmZXIgYnkgYW4gYW1vdW50IHByb3BvcnRpb25hbCB0byB0aGUgY3VycmVudCBzaXplLAotICAgICAgIGdpdmluZyB1cyBhbW9ydGl6ZWQgbGluZWFyLXRpbWUgYmVoYXZpb3IuIFVzZSBhIGxlc3MtdGhhbi1kb3VibGUKLSAgICAgICBncm93dGggZmFjdG9yIHRvIGF2b2lkIGV4Y2Vzc2l2ZSBhbGxvY2F0aW9uLiAqLwotICAgIHJldHVybiBjdXJyZW50c2l6ZSArIChjdXJyZW50c2l6ZSA+PiAzKSArIDY7CisgICAgICAgZ2l2aW5nIHVzIGFtb3J0aXplZCBsaW5lYXItdGltZSBiZWhhdmlvci4gIEZvciBiaWdnZXIgc2l6ZXMsIHVzZSBhCisgICAgICAgbGVzcy10aGFuLWRvdWJsZSBncm93dGggZmFjdG9yIHRvIGF2b2lkIGV4Y2Vzc2l2ZSBhbGxvY2F0aW9uLiAqLworICAgIGlmIChjdXJyZW50c2l6ZSA+IDY1NTM2KQorICAgICAgICBhZGRlbmQgPSBjdXJyZW50c2l6ZSA+PiAzOworICAgIGVsc2UKKyAgICAgICAgYWRkZW5kID0gMjU2ICsgY3VycmVudHNpemU7CisgICAgaWYgKGFkZGVuZCA8IFNNQUxMQ0hVTkspCisgICAgICAgIC8qIEF2b2lkIHRpbnkgcmVhZCgpIGNhbGxzLiAqLworICAgICAgICBhZGRlbmQgPSBTTUFMTENIVU5LOworICAgIHJldHVybiBhZGRlbmQgKyBjdXJyZW50c2l6ZTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKIGZpbGVpb19yZWFkYWxsKGZpbGVpbyAqc2VsZikKIHsKKyNpZmRlZiBIQVZFX0ZTVEFUCisgICAgc3RydWN0IHN0YXQgc3Q7CisgICAgUHlfb2ZmX3QgcG9zLCBlbmQ7CisjZW5kaWYKICAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIFB5X3NzaXplX3QgdG90YWwgPSAwOwogICAgIGludCBuOworICAgIHNpemVfdCBuZXdzaXplOwogCiAgICAgaWYgKHNlbGYtPmZkIDwgMCkKICAgICAgICAgcmV0dXJuIGVycl9jbG9zZWQoKTsKQEAgLTU2OSw4ICs2MTksMjMgQEAKICAgICBpZiAocmVzdWx0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCisjaWZkZWYgSEFWRV9GU1RBVAorI2lmIGRlZmluZWQoTVNfV0lONjQpIHx8IGRlZmluZWQoTVNfV0lORE9XUykKKyAgICBwb3MgPSBfbHNlZWtpNjQoc2VsZi0+ZmQsIDBMLCBTRUVLX0NVUik7CisjZWxzZQorICAgIHBvcyA9IGxzZWVrKHNlbGYtPmZkLCAwTCwgU0VFS19DVVIpOworI2VuZGlmCisgICAgaWYgKGZzdGF0KHNlbGYtPmZkLCAmc3QpID09IDApCisgICAgICAgIGVuZCA9IHN0LnN0X3NpemU7CisgICAgZWxzZQorICAgICAgICBlbmQgPSAoUHlfb2ZmX3QpLTE7CisjZW5kaWYKICAgICB3aGlsZSAoMSkgewotICAgICAgICBzaXplX3QgbmV3c2l6ZSA9IG5ld19idWZmZXJzaXplKHNlbGYsIHRvdGFsKTsKKyNpZmRlZiBIQVZFX0ZTVEFUCisgICAgICAgIG5ld3NpemUgPSBuZXdfYnVmZmVyc2l6ZShzZWxmLCB0b3RhbCwgcG9zLCBlbmQpOworI2Vsc2UKKyAgICAgICAgbmV3c2l6ZSA9IG5ld19idWZmZXJzaXplKHNlbGYsIHRvdGFsKTsKKyNlbmRpZgogICAgICAgICBpZiAobmV3c2l6ZSA+IFBZX1NTSVpFX1RfTUFYIHx8IG5ld3NpemUgPD0gMCkgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCiAgICAgICAgICAgICAgICAgInVuYm91bmRlZCByZWFkIHJldHVybmVkIG1vcmUgYnl0ZXMgIgpAQCAtNjE2LDYgKzY4MSw5IEBACiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogICAgICAgICB0b3RhbCArPSBuOworI2lmZGVmIEhBVkVfRlNUQVQKKyAgICAgICAgcG9zICs9IG47CisjZW5kaWYKICAgICB9CiAKICAgICBpZiAoUHlCeXRlc19HRVRfU0laRShyZXN1bHQpID4gdG90YWwpIHsKQEAgLTkyOSw2ICs5OTcsMTIgQEAKIHN0YXRpYyBjaGFyICoKIG1vZGVfc3RyaW5nKGZpbGVpbyAqc2VsZikKIHsKKyAgICBpZiAoc2VsZi0+Y3JlYXRlZCkgeworICAgICAgICBpZiAoc2VsZi0+cmVhZGFibGUpCisgICAgICAgICAgICByZXR1cm4gInhiKyI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAieGIiOworICAgIH0KICAgICBpZiAoc2VsZi0+cmVhZGFibGUpIHsKICAgICAgICAgaWYgKHNlbGYtPndyaXRhYmxlKQogICAgICAgICAgICAgcmV0dXJuICJyYisiOwpAQCAtOTQyLDEyICsxMDE2LDEzIEBACiBzdGF0aWMgUHlPYmplY3QgKgogZmlsZWlvX3JlcHIoZmlsZWlvICpzZWxmKQogeworICAgIF9QeV9JREVOVElGSUVSKG5hbWUpOwogICAgIFB5T2JqZWN0ICpuYW1lb2JqLCAqcmVzOwogCiAgICAgaWYgKHNlbGYtPmZkIDwgMCkKICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8X2lvLkZpbGVJTyBbY2xvc2VkXT4iKTsKIAotICAgIG5hbWVvYmogPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKChQeU9iamVjdCAqKSBzZWxmLCAibmFtZSIpOworICAgIG5hbWVvYmogPSBfUHlPYmplY3RfR2V0QXR0cklkKChQeU9iamVjdCAqKSBzZWxmLCAmUHlJZF9uYW1lKTsKICAgICBpZiAobmFtZW9iaiA9PSBOVUxMKSB7CiAgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0F0dHJpYnV0ZUVycm9yKSkKICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CkBAIC05ODcsMTMgKzEwNjIsMTkgQEAKIAogCiBQeURvY19TVFJWQVIoZmlsZWlvX2RvYywKLSJmaWxlKG5hbWU6IHN0clssIG1vZGU6IHN0cl0pIC0+IGZpbGUgSU8gb2JqZWN0XG4iCisiZmlsZShuYW1lOiBzdHJbLCBtb2RlOiBzdHJdWywgb3BlbmVyOiBOb25lXSkgLT4gZmlsZSBJTyBvYmplY3RcbiIKICJcbiIKLSJPcGVuIGEgZmlsZS4gIFRoZSBtb2RlIGNhbiBiZSAncicsICd3JyBvciAnYScgZm9yIHJlYWRpbmcgKGRlZmF1bHQpLFxuIgotIndyaXRpbmcgb3IgYXBwZW5kaW5nLiAgVGhlIGZpbGUgd2lsbCBiZSBjcmVhdGVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiIKLSJ3aGVuIG9wZW5lZCBmb3Igd3JpdGluZyBvciBhcHBlbmRpbmc7IGl0IHdpbGwgYmUgdHJ1bmNhdGVkIHdoZW5cbiIKLSJvcGVuZWQgZm9yIHdyaXRpbmcuICBBZGQgYSAnKycgdG8gdGhlIG1vZGUgdG8gYWxsb3cgc2ltdWx0YW5lb3VzXG4iCi0icmVhZGluZyBhbmQgd3JpdGluZy4iKTsKKyJPcGVuIGEgZmlsZS4gIFRoZSBtb2RlIGNhbiBiZSAncicsICd3JywgJ3gnIG9yICdhJyBmb3IgcmVhZGluZyAoZGVmYXVsdCksXG4iCisid3JpdGluZywgZXhjbHVzaXZlIGNyZWF0aW9uIG9yIGFwcGVuZGluZy4gIFRoZSBmaWxlIHdpbGwgYmUgY3JlYXRlZCBpZiBpdFxuIgorImRvZXNuJ3QgZXhpc3Qgd2hlbiBvcGVuZWQgZm9yIHdyaXRpbmcgb3IgYXBwZW5kaW5nOyBpdCB3aWxsIGJlIHRydW5jYXRlZFxuIgorIndoZW4gb3BlbmVkIGZvciB3cml0aW5nLiAgQSBgRmlsZUV4aXN0c0Vycm9yYCB3aWxsIGJlIHJhaXNlZCBpZiBpdCBhbHJlYWR5XG4iCisiZXhpc3RzIHdoZW4gb3BlbmVkIGZvciBjcmVhdGluZy4gT3BlbmluZyBhIGZpbGUgZm9yIGNyZWF0aW5nIGltcGxpZXNcbiIKKyJ3cml0aW5nIHNvIHRoaXMgbW9kZSBiZWhhdmVzIGluIGEgc2ltaWxhciB3YXkgdG8gJ3cnLkFkZCBhICcrJyB0byB0aGUgbW9kZVxuIgorInRvIGFsbG93IHNpbXVsdGFuZW91cyByZWFkaW5nIGFuZCB3cml0aW5nLiBBIGN1c3RvbSBvcGVuZXIgY2FuIGJlIHVzZWQgYnlcbiIKKyJwYXNzaW5nIGEgY2FsbGFibGUgYXMgKm9wZW5lciouIFRoZSB1bmRlcmx5aW5nIGZpbGUgZGVzY3JpcHRvciBmb3IgdGhlIGZpbGVcbiIKKyJvYmplY3QgaXMgdGhlbiBvYnRhaW5lZCBieSBjYWxsaW5nIG9wZW5lciB3aXRoICgqbmFtZSosICpmbGFncyopLlxuIgorIipvcGVuZXIqIG11c3QgcmV0dXJuIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yIChwYXNzaW5nIG9zLm9wZW4gYXMgKm9wZW5lcipcbiIKKyJyZXN1bHRzIGluIGZ1bmN0aW9uYWxpdHkgc2ltaWxhciB0byBwYXNzaW5nIE5vbmUpLiIpOwogCiBQeURvY19TVFJWQVIocmVhZF9kb2MsCiAicmVhZChzaXplOiBpbnQpIC0+IGJ5dGVzLiAgcmVhZCBhdCBtb3N0IHNpemUgYnl0ZXMsIHJldHVybmVkIGFzIGJ5dGVzLlxuIgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9faW8vaW9iYXNlLmMgYi9Nb2R1bGVzL19pby9pb2Jhc2UuYwppbmRleCAyYmJhMWJmLi5kZDA1MmFlIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19pby9pb2Jhc2UuYworKysgYi9Nb2R1bGVzL19pby9pb2Jhc2UuYwpAQCAtNTksOCArNTksOSBAQAogICAgb2YgdGhlIElPQmFzZSBvYmplY3QgcmF0aGVyIHRoYW4gdGhlIHZpcnR1YWwgYGNsb3NlZGAgYXR0cmlidXRlIGFzIHJldHVybmVkCiAgICBieSB3aGF0ZXZlciBzdWJjbGFzcy4gKi8KIAorX1B5X0lERU5USUZJRVIoX19JT0Jhc2VfY2xvc2VkKTsKICNkZWZpbmUgSVNfQ0xPU0VEKHNlbGYpIFwKLSAgICBQeU9iamVjdF9IYXNBdHRyU3RyaW5nKHNlbGYsICJfX0lPQmFzZV9jbG9zZWQiKQorICAgIF9QeU9iamVjdF9IYXNBdHRySWQoc2VsZiwgJlB5SWRfX19JT0Jhc2VfY2xvc2VkKQogCiAvKiBJbnRlcm5hbCBtZXRob2RzICovCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtOTcsNyArOTgsOSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGlvYmFzZV90ZWxsKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLCAic2VlayIsICJpaSIsIDAsIDEpOworICAgIF9QeV9JREVOVElGSUVSKHNlZWspOworCisgICAgcmV0dXJuIF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoc2VsZiwgJlB5SWRfc2VlaywgImlpIiwgMCwgMSk7CiB9CiAKIFB5RG9jX1NUUlZBUihpb2Jhc2VfdHJ1bmNhdGVfZG9jLApAQCAtMTU2LDE5ICsxNTksNiBAQAogICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoSVNfQ0xPU0VEKHNlbGYpKTsKIH0KIAotc3RhdGljIFB5T2JqZWN0ICoKLWlvYmFzZV9nZXRfZGljdChQeU9iamVjdCAqc2VsZikKLXsKLSAgICBQeU9iamVjdCAqKmRpY3RwdHIgPSBfUHlPYmplY3RfR2V0RGljdFB0cihzZWxmKTsKLSAgICBQeU9iamVjdCAqZGljdDsKLSAgICBhc3NlcnQoZGljdHB0cik7Ci0gICAgZGljdCA9ICpkaWN0cHRyOwotICAgIGlmIChkaWN0ID09IE5VTEwpCi0gICAgICAgIGRpY3QgPSAqZGljdHB0ciA9IFB5RGljdF9OZXcoKTsKLSAgICBQeV9YSU5DUkVGKGRpY3QpOwotICAgIHJldHVybiBkaWN0OwotfQotCiBQeU9iamVjdCAqCiBfUHlJT0Jhc2VfY2hlY2tfY2xvc2VkKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKQEAgLTE5MCwxMiArMTgwLDEzIEBACiBpb2Jhc2VfY2xvc2UoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIFB5T2JqZWN0ICpyZXM7CisgICAgX1B5X0lERU5USUZJRVIoX19JT0Jhc2VfY2xvc2VkKTsKIAogICAgIGlmIChJU19DTE9TRUQoc2VsZikpCiAgICAgICAgIFB5X1JFVFVSTl9OT05FOwogCiAgICAgcmVzID0gUHlPYmplY3RfQ2FsbE1ldGhvZE9iakFyZ3Moc2VsZiwgX1B5SU9fc3RyX2ZsdXNoLCBOVUxMKTsKLSAgICBQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHNlbGYsICJfX0lPQmFzZV9jbG9zZWQiLCBQeV9UcnVlKTsKKyAgICBfUHlPYmplY3RfU2V0QXR0cklkKHNlbGYsICZQeUlkX19fSU9CYXNlX2Nsb3NlZCwgUHlfVHJ1ZSk7CiAgICAgaWYgKHJlcyA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTQ2NCwxMiArNDU1LDE0IEBACiAgICAgaW50IGhhc19wZWVrID0gMDsKICAgICBQeU9iamVjdCAqYnVmZmVyLCAqcmVzdWx0OwogICAgIFB5X3NzaXplX3Qgb2xkX3NpemUgPSAtMTsKKyAgICBfUHlfSURFTlRJRklFUihyZWFkKTsKKyAgICBfUHlfSURFTlRJRklFUihwZWVrKTsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifE8mOnJlYWRsaW5lIiwgJl9QeUlPX0NvbnZlcnRTc2l6ZV90LCAmbGltaXQpKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKHNlbGYsICJwZWVrIikpCisgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQoc2VsZiwgJlB5SWRfcGVlaykpCiAgICAgICAgIGhhc19wZWVrID0gMTsKIAogICAgIGJ1ZmZlciA9IFB5Qnl0ZUFycmF5X0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIDApOwpAQCAtNDgxLDcgKzQ3NCw3IEBACiAgICAgICAgIFB5T2JqZWN0ICpiOwogCiAgICAgICAgIGlmIChoYXNfcGVlaykgewotICAgICAgICAgICAgUHlPYmplY3QgKnJlYWRhaGVhZCA9IFB5T2JqZWN0X0NhbGxNZXRob2Qoc2VsZiwgInBlZWsiLCAiaSIsIDEpOworICAgICAgICAgICAgUHlPYmplY3QgKnJlYWRhaGVhZCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoc2VsZiwgJlB5SWRfcGVlaywgImkiLCAxKTsKICAgICAgICAgICAgIGlmIChyZWFkYWhlYWQgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgIC8qIE5PVEU6IFB5RXJyX1NldEZyb21FcnJubygpIGNhbGxzIFB5RXJyX0NoZWNrU2lnbmFscygpCiAgICAgICAgICAgICAgICAgICAgd2hlbiBFSU5UUiBvY2N1cnMgc28gd2UgbmVlZG4ndCBkbyBpdCBvdXJzZWx2ZXMuICovCkBAIC01MjEsNyArNTE0LDcgQEAKICAgICAgICAgICAgIFB5X0RFQ1JFRihyZWFkYWhlYWQpOwogICAgICAgICB9CiAKLSAgICAgICAgYiA9IFB5T2JqZWN0X0NhbGxNZXRob2Qoc2VsZiwgInJlYWQiLCAibiIsIG5yZWFkYWhlYWQpOworICAgICAgICBiID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLCAmUHlJZF9yZWFkLCAibiIsIG5yZWFkYWhlYWQpOwogICAgICAgICBpZiAoYiA9PSBOVUxMKSB7CiAgICAgICAgICAgICAvKiBOT1RFOiBQeUVycl9TZXRGcm9tRXJybm8oKSBjYWxscyBQeUVycl9DaGVja1NpZ25hbHMoKQogICAgICAgICAgICAgICAgd2hlbiBFSU5UUiBvY2N1cnMgc28gd2UgbmVlZG4ndCBkbyBpdCBvdXJzZWx2ZXMuICovCkBAIC02MTMsNyArNjA2LDkgQEAKICAgICAgICAgLyogWFhYIHNwZWNpYWwtY2FzaW5nIHRoaXMgbWFkZSBzZW5zZSBpbiB0aGUgUHl0aG9uIHZlcnNpb24gaW4gb3JkZXIKICAgICAgICAgICAgdG8gcmVtb3ZlIHRoZSBieXRlY29kZSBpbnRlcnByZXRhdGlvbiBvdmVyaGVhZCwgYnV0IGl0IGNvdWxkCiAgICAgICAgICAgIHByb2JhYmx5IGJlIHJlbW92ZWQgaGVyZS4gKi8KLSAgICAgICAgUHlPYmplY3QgKnJldCA9IFB5T2JqZWN0X0NhbGxNZXRob2QocmVzdWx0LCAiZXh0ZW5kIiwgIk8iLCBzZWxmKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoZXh0ZW5kKTsKKyAgICAgICAgUHlPYmplY3QgKnJldCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQocmVzdWx0LCAmUHlJZF9leHRlbmQsICJPIiwgc2VsZik7CisKICAgICAgICAgaWYgKHJldCA9PSBOVUxMKSB7CiAgICAgICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNzE2LDcgKzcxMSw3IEBACiB9OwogCiBzdGF0aWMgUHlHZXRTZXREZWYgaW9iYXNlX2dldHNldFtdID0gewotICAgIHsiX19kaWN0X18iLCAoZ2V0dGVyKWlvYmFzZV9nZXRfZGljdCwgTlVMTCwgTlVMTH0sCisgICAgeyJfX2RpY3RfXyIsIFB5T2JqZWN0X0dlbmVyaWNHZXREaWN0LCBOVUxMLCBOVUxMfSwKICAgICB7ImNsb3NlZCIsIChnZXR0ZXIpaW9iYXNlX2Nsb3NlZF9nZXQsIE5VTEwsIE5VTEx9LAogICAgIHtOVUxMfQogfTsKQEAgLTc5Myw4ICs3ODgsMTEgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgaWYgKG4gPCAwKQotICAgICAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLCAicmVhZGFsbCIsIE5VTEwpOworICAgIGlmIChuIDwgMCkgeworICAgICAgICBfUHlfSURFTlRJRklFUihyZWFkYWxsKTsKKworICAgICAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLCAmUHlJZF9yZWFkYWxsLCBOVUxMKTsKKyAgICB9CiAKICAgICAvKiBUT0RPOiBhbGxvY2F0ZSBhIGJ5dGVzIG9iamVjdCBkaXJlY3RseSBpbnN0ZWFkIGFuZCBtYW51YWxseSBjb25zdHJ1Y3QKICAgICAgICBhIHdyaXRhYmxlIG1lbW9yeXZpZXcgcG9pbnRpbmcgdG8gaXQuICovCkBAIC04MzUsOCArODMzLDkgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICB3aGlsZSAoMSkgewotICAgICAgICBQeU9iamVjdCAqZGF0YSA9IFB5T2JqZWN0X0NhbGxNZXRob2Qoc2VsZiwgInJlYWQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImkiLCBERUZBVUxUX0JVRkZFUl9TSVpFKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIocmVhZCk7CisgICAgICAgIFB5T2JqZWN0ICpkYXRhID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLCAmUHlJZF9yZWFkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImkiLCBERUZBVUxUX0JVRkZFUl9TSVpFKTsKICAgICAgICAgaWYgKCFkYXRhKSB7CiAgICAgICAgICAgICAvKiBOT1RFOiBQeUVycl9TZXRGcm9tRXJybm8oKSBjYWxscyBQeUVycl9DaGVja1NpZ25hbHMoKQogICAgICAgICAgICAgICAgd2hlbiBFSU5UUiBvY2N1cnMgc28gd2UgbmVlZG4ndCBkbyBpdCBvdXJzZWx2ZXMuICovCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19pby9zdHJpbmdpby5jIGIvTW9kdWxlcy9faW8vc3RyaW5naW8uYwppbmRleCBjOWQxNGIxLi5hMWMzMWMwIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19pby9zdHJpbmdpby5jCisrKyBiL01vZHVsZXMvX2lvL3N0cmluZ2lvLmMKQEAgLTEsMTkgKzEsMzIgQEAKICNkZWZpbmUgUFlfU1NJWkVfVF9DTEVBTgogI2luY2x1ZGUgIlB5dGhvbi5oIgogI2luY2x1ZGUgInN0cnVjdG1lbWJlci5oIgorI2luY2x1ZGUgImFjY3UuaCIKICNpbmNsdWRlICJfaW9tb2R1bGUuaCIKIAogLyogSW1wbGVtZW50YXRpb24gbm90ZTogdGhlIGJ1ZmZlciBpcyBhbHdheXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciBsb25nZXIKICAgIHRoYW4gdGhlIGVuY2xvc2VkIHN0cmluZywgZm9yIHByb3BlciBmdW5jdGlvbmluZyBvZiBfUHlJT19maW5kX2xpbmVfZW5kaW5nLgogKi8KIAorI2RlZmluZSBTVEFURV9SRUFMSVpFRCAxCisjZGVmaW5lIFNUQVRFX0FDQ1VNVUxBVElORyAyCisKIHR5cGVkZWYgc3RydWN0IHsKICAgICBQeU9iamVjdF9IRUFECi0gICAgUHlfVU5JQ09ERSAqYnVmOworICAgIFB5X1VDUzQgKmJ1ZjsKICAgICBQeV9zc2l6ZV90IHBvczsKICAgICBQeV9zc2l6ZV90IHN0cmluZ19zaXplOwogICAgIHNpemVfdCBidWZfc2l6ZTsKIAorICAgIC8qIFRoZSBzdHJpbmdpbyBvYmplY3QgY2FuIGJlIGluIHR3byBzdGF0ZXM6IGFjY3VtdWxhdGluZyBvciByZWFsaXplZC4KKyAgICAgICBJbiBhY2N1bXVsYXRpbmcgc3RhdGUsIHRoZSBpbnRlcm5hbCBidWZmZXIgY29udGFpbnMgbm90aGluZyBhbmQKKyAgICAgICB0aGUgY29udGVudHMgYXJlIGdpdmVuIGJ5IHRoZSBlbWJlZGRlZCBfUHlBY2N1IHN0cnVjdHVyZS4KKyAgICAgICBJbiByZWFsaXplZCBzdGF0ZSwgdGhlIGludGVybmFsIGJ1ZmZlciBpcyBtZWFuaW5nZnVsIGFuZCB0aGUKKyAgICAgICBfUHlBY2N1IGlzIGRlc3Ryb3llZC4KKyAgICAqLworICAgIGludCBzdGF0ZTsKKyAgICBfUHlBY2N1IGFjY3U7CisKICAgICBjaGFyIG9rOyAvKiBpbml0aWFsaXplZD8gKi8KICAgICBjaGFyIGNsb3NlZDsKICAgICBjaGFyIHJlYWR1bml2ZXJzYWw7CkBAIC0yMSw3ICszNCw3IEBACiAgICAgUHlPYmplY3QgKmRlY29kZXI7CiAgICAgUHlPYmplY3QgKnJlYWRubDsKICAgICBQeU9iamVjdCAqd3JpdGVubDsKLSAgICAKKwogICAgIFB5T2JqZWN0ICpkaWN0OwogICAgIFB5T2JqZWN0ICp3ZWFrcmVmbGlzdDsKIH0gc3RyaW5naW87CkBAIC00MCw2ICs1MywxMSBAQAogICAgICAgICByZXR1cm4gTlVMTDsgXAogICAgIH0KIAorI2RlZmluZSBFTlNVUkVfUkVBTElaRUQoc2VsZikgXAorICAgIGlmIChyZWFsaXplKHNlbGYpIDwgMCkgeyBcCisgICAgICAgIHJldHVybiBOVUxMOyBcCisgICAgfQorCiBQeURvY19TVFJWQVIoc3RyaW5naW9fZG9jLAogICAgICJUZXh0IEkvTyBpbXBsZW1lbnRhdGlvbiB1c2luZyBhbiBpbi1tZW1vcnkgYnVmZmVyLlxuIgogICAgICJcbiIKQEAgLTU2LDcgKzc0LDcgQEAKICAgICAvKiBIZXJlLCB1bnNpZ25lZCB0eXBlcyBhcmUgdXNlZCB0byBhdm9pZCBkZWFsaW5nIHdpdGggc2lnbmVkIGludGVnZXIKICAgICAgICBvdmVyZmxvdywgd2hpY2ggaXMgdW5kZWZpbmVkIGluIEMuICovCiAgICAgc2l6ZV90IGFsbG9jID0gc2VsZi0+YnVmX3NpemU7Ci0gICAgUHlfVU5JQ09ERSAqbmV3X2J1ZiA9IE5VTEw7CisgICAgUHlfVUNTNCAqbmV3X2J1ZiA9IE5VTEw7CiAKICAgICBhc3NlcnQoc2VsZi0+YnVmICE9IE5VTEwpOwogCkBAIC04NCwxMCArMTAyLDkgQEAKICAgICAgICAgYWxsb2MgPSBzaXplICsgMTsKICAgICB9CiAKLSAgICBpZiAoYWxsb2MgPiAoKHNpemVfdCktMSkgLyBzaXplb2YoUHlfVU5JQ09ERSkpCisgICAgaWYgKGFsbG9jID4gUFlfU0laRV9NQVggLyBzaXplb2YoUHlfVUNTNCkpCiAgICAgICAgIGdvdG8gb3ZlcmZsb3c7Ci0gICAgbmV3X2J1ZiA9IChQeV9VTklDT0RFICopUHlNZW1fUmVhbGxvYyhzZWxmLT5idWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvYyAqIHNpemVvZihQeV9VTklDT0RFKSk7CisgICAgbmV3X2J1ZiA9IChQeV9VQ1M0ICopUHlNZW1fUmVhbGxvYyhzZWxmLT5idWYsIGFsbG9jICogc2l6ZW9mKFB5X1VDUzQpKTsKICAgICBpZiAobmV3X2J1ZiA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIHJldHVybiAtMTsKQEAgLTEwMywxNCArMTIwLDYyIEBACiAgICAgcmV0dXJuIC0xOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorbWFrZV9pbnRlcm1lZGlhdGUoc3RyaW5naW8gKnNlbGYpCit7CisgICAgUHlPYmplY3QgKmludGVybWVkaWF0ZSA9IF9QeUFjY3VfRmluaXNoKCZzZWxmLT5hY2N1KTsKKyAgICBzZWxmLT5zdGF0ZSA9IFNUQVRFX1JFQUxJWkVEOworICAgIGlmIChpbnRlcm1lZGlhdGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKF9QeUFjY3VfSW5pdCgmc2VsZi0+YWNjdSkgfHwKKyAgICAgICAgX1B5QWNjdV9BY2N1bXVsYXRlKCZzZWxmLT5hY2N1LCBpbnRlcm1lZGlhdGUpKSB7CisgICAgICAgIFB5X0RFQ1JFRihpbnRlcm1lZGlhdGUpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgc2VsZi0+c3RhdGUgPSBTVEFURV9BQ0NVTVVMQVRJTkc7CisgICAgcmV0dXJuIGludGVybWVkaWF0ZTsKK30KKworc3RhdGljIGludAorcmVhbGl6ZShzdHJpbmdpbyAqc2VsZikKK3sKKyAgICBQeV9zc2l6ZV90IGxlbjsKKyAgICBQeU9iamVjdCAqaW50ZXJtZWRpYXRlOworCisgICAgaWYgKHNlbGYtPnN0YXRlID09IFNUQVRFX1JFQUxJWkVEKQorICAgICAgICByZXR1cm4gMDsKKyAgICBhc3NlcnQoc2VsZi0+c3RhdGUgPT0gU1RBVEVfQUNDVU1VTEFUSU5HKTsKKyAgICBzZWxmLT5zdGF0ZSA9IFNUQVRFX1JFQUxJWkVEOworCisgICAgaW50ZXJtZWRpYXRlID0gX1B5QWNjdV9GaW5pc2goJnNlbGYtPmFjY3UpOworICAgIGlmIChpbnRlcm1lZGlhdGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgLyogQXBwZW5kIHRoZSBpbnRlcm1lZGlhdGUgc3RyaW5nIHRvIHRoZSBpbnRlcm5hbCBidWZmZXIuCisgICAgICAgVGhlIGxlbmd0aCBzaG91bGQgYmUgZXF1YWwgdG8gdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uLgorICAgICAqLworICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGludGVybWVkaWF0ZSk7CisgICAgaWYgKHJlc2l6ZV9idWZmZXIoc2VsZiwgbGVuKSA8IDApIHsKKyAgICAgICAgUHlfREVDUkVGKGludGVybWVkaWF0ZSk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKCFQeVVuaWNvZGVfQXNVQ1M0KGludGVybWVkaWF0ZSwgc2VsZi0+YnVmLCBsZW4sIDApKSB7CisgICAgICAgIFB5X0RFQ1JFRihpbnRlcm1lZGlhdGUpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgUHlfREVDUkVGKGludGVybWVkaWF0ZSk7CisgICAgcmV0dXJuIDA7Cit9CisKIC8qIEludGVybmFsIHJvdXRpbmUgZm9yIHdyaXRpbmcgYSB3aG9sZSBQeVVuaWNvZGUgb2JqZWN0IHRvIHRoZSBidWZmZXIgb2YgYQogICAgU3RyaW5nSU8gb2JqZWN0LiBSZXR1cm5zIDAgb24gc3VjY2Vzcywgb3IgLTEgb24gZXJyb3IuICovCiBzdGF0aWMgUHlfc3NpemVfdAogd3JpdGVfc3RyKHN0cmluZ2lvICpzZWxmLCBQeU9iamVjdCAqb2JqKQogewotICAgIFB5X1VOSUNPREUgKnN0cjsKICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICBQeU9iamVjdCAqZGVjb2RlZCA9IE5VTEw7CisKICAgICBhc3NlcnQoc2VsZi0+YnVmICE9IE5VTEwpOwogICAgIGFzc2VydChzZWxmLT5wb3MgPj0gMCk7CiAKQEAgLTEzMiw5ICsxOTcsMTEgQEAKICAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgYXNzZXJ0KFB5VW5pY29kZV9DaGVjayhkZWNvZGVkKSk7Ci0gICAgc3RyID0gUHlVbmljb2RlX0FTX1VOSUNPREUoZGVjb2RlZCk7Ci0gICAgbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKGRlY29kZWQpOwotCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShkZWNvZGVkKSkgeworICAgICAgICBQeV9ERUNSRUYoZGVjb2RlZCk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoZGVjb2RlZCk7CiAgICAgYXNzZXJ0KGxlbiA+PSAwKTsKIAogICAgIC8qIFRoaXMgb3ZlcmZsb3cgY2hlY2sgaXMgbm90IHN0cmljdGx5IG5lY2Vzc2FyeS4gSG93ZXZlciwgaXQgYXZvaWRzIHVzIHRvCkBAIC0xNDUsNiArMjEyLDE3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAibmV3IHBvc2l0aW9uIHRvbyBsYXJnZSIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQorCisgICAgaWYgKHNlbGYtPnN0YXRlID09IFNUQVRFX0FDQ1VNVUxBVElORykgeworICAgICAgICBpZiAoc2VsZi0+c3RyaW5nX3NpemUgPT0gc2VsZi0+cG9zKSB7CisgICAgICAgICAgICBpZiAoX1B5QWNjdV9BY2N1bXVsYXRlKCZzZWxmLT5hY2N1LCBkZWNvZGVkKSkKKyAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHJlYWxpemUoc2VsZikpCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCiAgICAgaWYgKHNlbGYtPnBvcyArIGxlbiA+IHNlbGYtPnN0cmluZ19zaXplKSB7CiAgICAgICAgIGlmIChyZXNpemVfYnVmZmVyKHNlbGYsIHNlbGYtPnBvcyArIGxlbikgPCAwKQogICAgICAgICAgICAgZ290byBmYWlsOwpAQCAtMTYxLDE4ICsyMzksMjIgQEAKIAogICAgICAgICAqLwogICAgICAgICBtZW1zZXQoc2VsZi0+YnVmICsgc2VsZi0+c3RyaW5nX3NpemUsICdcMCcsCi0gICAgICAgICAgICAgICAoc2VsZi0+cG9zIC0gc2VsZi0+c3RyaW5nX3NpemUpICogc2l6ZW9mKFB5X1VOSUNPREUpKTsKKyAgICAgICAgICAgICAgIChzZWxmLT5wb3MgLSBzZWxmLT5zdHJpbmdfc2l6ZSkgKiBzaXplb2YoUHlfVUNTNCkpOwogICAgIH0KIAogICAgIC8qIENvcHkgdGhlIGRhdGEgdG8gdGhlIGludGVybmFsIGJ1ZmZlciwgb3ZlcndyaXRpbmcgc29tZSBvZiB0aGUKICAgICAgICBleGlzdGluZyBkYXRhIGlmIHNlbGYtPnBvcyA8IHNlbGYtPnN0cmluZ19zaXplLiAqLwotICAgIG1lbWNweShzZWxmLT5idWYgKyBzZWxmLT5wb3MsIHN0ciwgbGVuICogc2l6ZW9mKFB5X1VOSUNPREUpKTsKLSAgICBzZWxmLT5wb3MgKz0gbGVuOworICAgIGlmICghUHlVbmljb2RlX0FzVUNTNChkZWNvZGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5idWYgKyBzZWxmLT5wb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmJ1Zl9zaXplIC0gc2VsZi0+cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAwKSkKKyAgICAgICAgZ290byBmYWlsOwogCitzdWNjZXNzOgogICAgIC8qIFNldCB0aGUgbmV3IGxlbmd0aCBvZiB0aGUgaW50ZXJuYWwgc3RyaW5nIGlmIGl0IGhhcyBjaGFuZ2VkLiAqLwotICAgIGlmIChzZWxmLT5zdHJpbmdfc2l6ZSA8IHNlbGYtPnBvcykgeworICAgIHNlbGYtPnBvcyArPSBsZW47CisgICAgaWYgKHNlbGYtPnN0cmluZ19zaXplIDwgc2VsZi0+cG9zKQogICAgICAgICBzZWxmLT5zdHJpbmdfc2l6ZSA9IHNlbGYtPnBvczsKLSAgICB9CiAKICAgICBQeV9ERUNSRUYoZGVjb2RlZCk7CiAgICAgcmV0dXJuIDA7CkBAIC0xOTAsNyArMjcyLDEwIEBACiB7CiAgICAgQ0hFQ0tfSU5JVElBTElaRUQoc2VsZik7CiAgICAgQ0hFQ0tfQ0xPU0VEKHNlbGYpOwotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoc2VsZi0+YnVmLCBzZWxmLT5zdHJpbmdfc2l6ZSk7CisgICAgaWYgKHNlbGYtPnN0YXRlID09IFNUQVRFX0FDQ1VNVUxBVElORykKKyAgICAgICAgcmV0dXJuIG1ha2VfaW50ZXJtZWRpYXRlKHNlbGYpOworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKFB5VW5pY29kZV80QllURV9LSU5ELCBzZWxmLT5idWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+c3RyaW5nX3NpemUpOwogfQogCiBQeURvY19TVFJWQVIoc3RyaW5naW9fdGVsbF9kb2MsCkBAIC0yMTQsNyArMjk5LDcgQEAKIHN0cmluZ2lvX3JlYWQoc3RyaW5naW8gKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIFB5X3NzaXplX3Qgc2l6ZSwgbjsKLSAgICBQeV9VTklDT0RFICpvdXRwdXQ7CisgICAgUHlfVUNTNCAqb3V0cHV0OwogICAgIFB5T2JqZWN0ICphcmcgPSBQeV9Ob25lOwogCiAgICAgQ0hFQ0tfSU5JVElBTElaRUQoc2VsZik7CkBAIC0yNDUsMjEgKzMzMCwyOSBAQAogICAgICAgICAgICAgc2l6ZSA9IDA7CiAgICAgfQogCisgICAgLyogT3B0aW1pemF0aW9uIGZvciBzZWVrKDApOyByZWFkKCkgKi8KKyAgICBpZiAoc2VsZi0+c3RhdGUgPT0gU1RBVEVfQUNDVU1VTEFUSU5HICYmIHNlbGYtPnBvcyA9PSAwICYmIHNpemUgPT0gbikgeworICAgICAgICBQeU9iamVjdCAqcmVzdWx0ID0gbWFrZV9pbnRlcm1lZGlhdGUoc2VsZik7CisgICAgICAgIHNlbGYtPnBvcyA9IHNlbGYtPnN0cmluZ19zaXplOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIEVOU1VSRV9SRUFMSVpFRChzZWxmKTsKICAgICBvdXRwdXQgPSBzZWxmLT5idWYgKyBzZWxmLT5wb3M7CiAgICAgc2VsZi0+cG9zICs9IHNpemU7Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tVW5pY29kZShvdXRwdXQsIHNpemUpOworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKFB5VW5pY29kZV80QllURV9LSU5ELCBvdXRwdXQsIHNpemUpOwogfQogCiAvKiBJbnRlcm5hbCBoZWxwZXIsIHVzZWQgYnkgc3RyaW5naW9fcmVhZGxpbmUgYW5kIHN0cmluZ2lvX2l0ZXJuZXh0ICovCiBzdGF0aWMgUHlPYmplY3QgKgogX3N0cmluZ2lvX3JlYWRsaW5lKHN0cmluZ2lvICpzZWxmLCBQeV9zc2l6ZV90IGxpbWl0KQogewotICAgIFB5X1VOSUNPREUgKnN0YXJ0LCAqZW5kLCBvbGRfY2hhcjsKKyAgICBQeV9VQ1M0ICpzdGFydCwgKmVuZCwgb2xkX2NoYXI7CiAgICAgUHlfc3NpemVfdCBsZW4sIGNvbnN1bWVkOwogCiAgICAgLyogSW4gY2FzZSBvZiBvdmVyc2VlaywgcmV0dXJuIHRoZSBlbXB0eSBzdHJpbmcgKi8KICAgICBpZiAoc2VsZi0+cG9zID49IHNlbGYtPnN0cmluZ19zaXplKQotICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmcoIiIpOworICAgICAgICByZXR1cm4gUHlVbmljb2RlX05ldygwLCAwKTsKIAogICAgIHN0YXJ0ID0gc2VsZi0+YnVmICsgc2VsZi0+cG9zOwogICAgIGlmIChsaW1pdCA8IDAgfHwgbGltaXQgPiBzZWxmLT5zdHJpbmdfc2l6ZSAtIHNlbGYtPnBvcykKQEAgLTI3MCwxNCArMzYzLDE0IEBACiAgICAgKmVuZCA9ICdcMCc7CiAgICAgbGVuID0gX1B5SU9fZmluZF9saW5lX2VuZGluZygKICAgICAgICAgc2VsZi0+cmVhZHRyYW5zbGF0ZSwgc2VsZi0+cmVhZHVuaXZlcnNhbCwgc2VsZi0+cmVhZG5sLAotICAgICAgICBzdGFydCwgZW5kLCAmY29uc3VtZWQpOworICAgICAgICBQeVVuaWNvZGVfNEJZVEVfS0lORCwgKGNoYXIqKXN0YXJ0LCAoY2hhciopZW5kLCAmY29uc3VtZWQpOwogICAgICplbmQgPSBvbGRfY2hhcjsKICAgICAvKiBJZiB3ZSBoYXZlbid0IGZvdW5kIGFueSBsaW5lIGVuZGluZywgd2UganVzdCByZXR1cm4gZXZlcnl0aGluZwogICAgICAgIChgY29uc3VtZWRgIGlzIGlnbm9yZWQpLiAqLwogICAgIGlmIChsZW4gPCAwKQogICAgICAgICBsZW4gPSBsaW1pdDsKICAgICBzZWxmLT5wb3MgKz0gbGVuOwotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoc3RhcnQsIGxlbik7CisgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tS2luZEFuZERhdGEoUHlVbmljb2RlXzRCWVRFX0tJTkQsIHN0YXJ0LCBsZW4pOwogfQogCiBQeURvY19TVFJWQVIoc3RyaW5naW9fcmVhZGxpbmVfZG9jLApAQCAtMjk1LDYgKzM4OCw3IEBACiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ8TzpyZWFkbGluZSIsICZhcmcpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBDSEVDS19DTE9TRUQoc2VsZik7CisgICAgRU5TVVJFX1JFQUxJWkVEKHNlbGYpOwogCiAgICAgaWYgKFB5TnVtYmVyX0NoZWNrKGFyZykpIHsKICAgICAgICAgbGltaXQgPSBQeU51bWJlcl9Bc1NzaXplX3QoYXJnLCBQeUV4Y19PdmVyZmxvd0Vycm9yKTsKQEAgLTMxNiw2ICs0MTAsNyBAQAogCiAgICAgQ0hFQ0tfSU5JVElBTElaRUQoc2VsZik7CiAgICAgQ0hFQ0tfQ0xPU0VEKHNlbGYpOworICAgIEVOU1VSRV9SRUFMSVpFRChzZWxmKTsKIAogICAgIGlmIChQeV9UWVBFKHNlbGYpID09ICZQeVN0cmluZ0lPX1R5cGUpIHsKICAgICAgICAgLyogU2tpcCBtZXRob2QgY2FsbCBvdmVyaGVhZCBmb3Igc3BlZWQgKi8KQEAgLTMzNyw3ICs0MzIsNyBAQAogICAgIGlmIChsaW5lID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRShsaW5lKSA9PSAwKSB7CisgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKGxpbmUpID09IDApIHsKICAgICAgICAgLyogUmVhY2hlZCBFT0YgKi8KICAgICAgICAgUHlfREVDUkVGKGxpbmUpOwogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTM4Niw2ICs0ODEsNyBAQAogICAgIH0KIAogICAgIGlmIChzaXplIDwgc2VsZi0+c3RyaW5nX3NpemUpIHsKKyAgICAgICAgRU5TVVJFX1JFQUxJWkVEKHNlbGYpOwogICAgICAgICBpZiAocmVzaXplX2J1ZmZlcihzZWxmLCBzaXplKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgc2VsZi0+c3RyaW5nX3NpemUgPSBzaXplOwpAQCAtNDYyLDggKzU1OCwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShvYmopLT50cF9uYW1lKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkob2JqKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgQ0hFQ0tfQ0xPU0VEKHNlbGYpOwotICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX1NJWkUob2JqKTsKKyAgICBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgob2JqKTsKIAogICAgIGlmIChzaXplID4gMCAmJiB3cml0ZV9zdHIoc2VsZiwgb2JqKSA8IDApCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNDg0LDYgKzU4Miw3IEBACiAgICAgLyogRnJlZSB1cCBzb21lIG1lbW9yeSAqLwogICAgIGlmIChyZXNpemVfYnVmZmVyKHNlbGYsIDApIDwgMCkKICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgX1B5QWNjdV9EZXN0cm95KCZzZWxmLT5hY2N1KTsKICAgICBQeV9DTEVBUihzZWxmLT5yZWFkbmwpOwogICAgIFB5X0NMRUFSKHNlbGYtPndyaXRlbmwpOwogICAgIFB5X0NMRUFSKHNlbGYtPmRlY29kZXIpOwpAQCAtNTEzLDYgKzYxMiw3IEBACiAgICAgICAgIFB5TWVtX0ZyZWUoc2VsZi0+YnVmKTsKICAgICAgICAgc2VsZi0+YnVmID0gTlVMTDsKICAgICB9CisgICAgX1B5QWNjdV9EZXN0cm95KCZzZWxmLT5hY2N1KTsKICAgICBQeV9DTEVBUihzZWxmLT5yZWFkbmwpOwogICAgIFB5X0NMRUFSKHNlbGYtPndyaXRlbmwpOwogICAgIFB5X0NMRUFSKHNlbGYtPmRlY29kZXIpOwpAQCAtNTM1LDcgKzYzNSw3IEBACiAgICAgLyogdHBfYWxsb2MgaW5pdGlhbGl6ZXMgYWxsIHRoZSBmaWVsZHMgdG8gemVyby4gU28gd2UgZG9uJ3QgaGF2ZSB0bwogICAgICAgIGluaXRpYWxpemUgdGhlbSBoZXJlLiAqLwogCi0gICAgc2VsZi0+YnVmID0gKFB5X1VOSUNPREUgKilQeU1lbV9NYWxsb2MoMCk7CisgICAgc2VsZi0+YnVmID0gKFB5X1VDUzQgKilQeU1lbV9NYWxsb2MoMCk7CiAgICAgaWYgKHNlbGYtPmJ1ZiA9PSBOVUxMKSB7CiAgICAgICAgIFB5X0RFQ1JFRihzZWxmKTsKICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CkBAIC01NTEsNiArNjUxLDcgQEAKICAgICBQeU9iamVjdCAqdmFsdWUgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpuZXdsaW5lX29iaiA9IE5VTEw7CiAgICAgY2hhciAqbmV3bGluZSA9ICJcbiI7CisgICAgUHlfc3NpemVfdCB2YWx1ZV9sZW47CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE9POl9faW5pdF9fIiwga3dsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2YWx1ZSwgJm5ld2xpbmVfb2JqKSkKQEAgLTU5Miw2ICs2OTMsNyBAQAogCiAgICAgc2VsZi0+b2sgPSAwOwogCisgICAgX1B5QWNjdV9EZXN0cm95KCZzZWxmLT5hY2N1KTsKICAgICBQeV9DTEVBUihzZWxmLT5yZWFkbmwpOwogICAgIFB5X0NMRUFSKHNlbGYtPndyaXRlbmwpOwogICAgIFB5X0NMRUFSKHNlbGYtPmRlY29kZXIpOwpAQCAtNjI4LDE5ICs3MzAsMjcgQEAKICAgICAvKiBOb3cgZXZlcnl0aGluZyBpcyBzZXQgdXAsIHJlc2l6ZSBidWZmZXIgdG8gc2l6ZSBvZiBpbml0aWFsIHZhbHVlLAogICAgICAgIGFuZCBjb3B5IGl0ICovCiAgICAgc2VsZi0+c3RyaW5nX3NpemUgPSAwOwotICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPSBQeV9Ob25lKSB7Ci0gICAgICAgIFB5X3NzaXplX3QgbGVuID0gUHlVbmljb2RlX0dldFNpemUodmFsdWUpOworICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPSBQeV9Ob25lKQorICAgICAgICB2YWx1ZV9sZW4gPSBQeVVuaWNvZGVfR2V0TGVuZ3RoKHZhbHVlKTsKKyAgICBlbHNlCisgICAgICAgIHZhbHVlX2xlbiA9IDA7CisgICAgaWYgKHZhbHVlX2xlbiA+IDApIHsKICAgICAgICAgLyogVGhpcyBpcyBhIGhldXJpc3RpYywgZm9yIG5ld2xpbmUgdHJhbnNsYXRpb24gbWlnaHQgY2hhbmdlCiAgICAgICAgICAgIHRoZSBzdHJpbmcgbGVuZ3RoLiAqLwotICAgICAgICBpZiAocmVzaXplX2J1ZmZlcihzZWxmLCBsZW4pIDwgMCkKKyAgICAgICAgaWYgKHJlc2l6ZV9idWZmZXIoc2VsZiwgMCkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBzZWxmLT5zdGF0ZSA9IFNUQVRFX1JFQUxJWkVEOwogICAgICAgICBzZWxmLT5wb3MgPSAwOwogICAgICAgICBpZiAod3JpdGVfc3RyKHNlbGYsIHZhbHVlKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIGVsc2UgeworICAgICAgICAvKiBFbXB0eSBzdHJpbmdpbyBvYmplY3QsIHdlIGNhbiBzdGFydCBieSBhY2N1bXVsYXRpbmcgKi8KICAgICAgICAgaWYgKHJlc2l6ZV9idWZmZXIoc2VsZiwgMCkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBpZiAoX1B5QWNjdV9Jbml0KCZzZWxmLT5hY2N1KSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgc2VsZi0+c3RhdGUgPSBTVEFURV9BQ0NVTVVMQVRJTkc7CiAgICAgfQogICAgIHNlbGYtPnBvcyA9IDA7CiAKQEAgLTc0NywxMSArODU3LDIyIEBACiAgICAgICAgb25jZSBieSBfX2luaXRfXy4gU28gd2UgZG8gbm90IHRha2UgYW55IGNoYW5jZSBhbmQgcmVwbGFjZSBvYmplY3QncwogICAgICAgIGJ1ZmZlciBjb21wbGV0ZWx5LiAqLwogICAgIHsKLSAgICAgICAgUHlfVU5JQ09ERSAqYnVmID0gUHlVbmljb2RlX0FTX1VOSUNPREUoUHlUdXBsZV9HRVRfSVRFTShzdGF0ZSwgMCkpOwotICAgICAgICBQeV9zc2l6ZV90IGJ1ZnNpemUgPSBQeVVuaWNvZGVfR0VUX1NJWkUoUHlUdXBsZV9HRVRfSVRFTShzdGF0ZSwgMCkpOwotICAgICAgICBpZiAocmVzaXplX2J1ZmZlcihzZWxmLCBidWZzaXplKSA8IDApCisgICAgICAgIFB5T2JqZWN0ICppdGVtOworICAgICAgICBQeV9VQ1M0ICpidWY7CisgICAgICAgIFB5X3NzaXplX3QgYnVmc2l6ZTsKKworICAgICAgICBpdGVtID0gUHlUdXBsZV9HRVRfSVRFTShzdGF0ZSwgMCk7CisgICAgICAgIGJ1ZiA9IFB5VW5pY29kZV9Bc1VDUzRDb3B5KGl0ZW0pOworICAgICAgICBpZiAoYnVmID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgbWVtY3B5KHNlbGYtPmJ1ZiwgYnVmLCBidWZzaXplICogc2l6ZW9mKFB5X1VOSUNPREUpKTsKKyAgICAgICAgYnVmc2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGl0ZW0pOworCisgICAgICAgIGlmIChyZXNpemVfYnVmZmVyKHNlbGYsIGJ1ZnNpemUpIDwgMCkgeworICAgICAgICAgICAgUHlNZW1fRnJlZShidWYpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgbWVtY3B5KHNlbGYtPmJ1ZiwgYnVmLCBidWZzaXplICogc2l6ZW9mKFB5X1VDUzQpKTsKKyAgICAgICAgUHlNZW1fRnJlZShidWYpOwogICAgICAgICBzZWxmLT5zdHJpbmdfc2l6ZSA9IGJ1ZnNpemU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19pby90ZXh0aW8uYyBiL01vZHVsZXMvX2lvL3RleHRpby5jCmluZGV4IGQ4NmExYzcuLmQzOTBkNWEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2lvL3RleHRpby5jCisrKyBiL01vZHVsZXMvX2lvL3RleHRpby5jCkBAIC0xMSw2ICsxMSwyNyBAQAogI2luY2x1ZGUgInN0cnVjdG1lbWJlci5oIgogI2luY2x1ZGUgIl9pb21vZHVsZS5oIgogCitfUHlfSURFTlRJRklFUihjbG9zZSk7CitfUHlfSURFTlRJRklFUihfZGVhbGxvY193YXJuKTsKK19QeV9JREVOVElGSUVSKGRlY29kZSk7CitfUHlfSURFTlRJRklFUihmaWxlbm8pOworX1B5X0lERU5USUZJRVIoZmx1c2gpOworX1B5X0lERU5USUZJRVIoZ2V0cHJlZmVycmVkZW5jb2RpbmcpOworX1B5X0lERU5USUZJRVIoaXNhdHR5KTsKK19QeV9JREVOVElGSUVSKG1vZGUpOworX1B5X0lERU5USUZJRVIobmFtZSk7CitfUHlfSURFTlRJRklFUihyYXcpOworX1B5X0lERU5USUZJRVIocmVhZCk7CitfUHlfSURFTlRJRklFUihyZWFkMSk7CitfUHlfSURFTlRJRklFUihyZWFkYWJsZSk7CitfUHlfSURFTlRJRklFUihyZXBsYWNlKTsKK19QeV9JREVOVElGSUVSKHJlc2V0KTsKK19QeV9JREVOVElGSUVSKHNlZWspOworX1B5X0lERU5USUZJRVIoc2Vla2FibGUpOworX1B5X0lERU5USUZJRVIoc2V0c3RhdGUpOworX1B5X0lERU5USUZJRVIodGVsbCk7CitfUHlfSURFTlRJRklFUih3cml0YWJsZSk7CisKIC8qIFRleHRJT0Jhc2UgKi8KIAogUHlEb2NfU1RSVkFSKHRleHRpb2Jhc2VfZG9jLApAQCAtMjc0LDE4ICsyOTUsMjYgQEAKICAgICAgICAgZ290byBlcnJvcjsKICAgICB9CiAKLSAgICBvdXRwdXRfbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKG91dHB1dCk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShvdXRwdXQpID09IC0xKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgb3V0cHV0X2xlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKG91dHB1dCk7CiAgICAgaWYgKHNlbGYtPnBlbmRpbmdjciAmJiAoZmluYWwgfHwgb3V0cHV0X2xlbiA+IDApKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgKm91dDsKLSAgICAgICAgUHlPYmplY3QgKm1vZGlmaWVkID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIG91dHB1dF9sZW4gKyAxKTsKKyAgICAgICAgLyogUHJlZml4IG91dHB1dCB3aXRoIENSICovCisgICAgICAgIGludCBraW5kOworICAgICAgICBQeU9iamVjdCAqbW9kaWZpZWQ7CisgICAgICAgIGNoYXIgKm91dDsKKworICAgICAgICBtb2RpZmllZCA9IFB5VW5pY29kZV9OZXcob3V0cHV0X2xlbiArIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUob3V0cHV0KSk7CiAgICAgICAgIGlmIChtb2RpZmllZCA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgb3V0ID0gUHlVbmljb2RlX0FTX1VOSUNPREUobW9kaWZpZWQpOwotICAgICAgICBvdXRbMF0gPSAnXHInOwotICAgICAgICBtZW1jcHkob3V0ICsgMSwgUHlVbmljb2RlX0FTX1VOSUNPREUob3V0cHV0KSwKLSAgICAgICAgICAgICAgIG91dHB1dF9sZW4gKiBzaXplb2YoUHlfVU5JQ09ERSkpOworICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQobW9kaWZpZWQpOworICAgICAgICBvdXQgPSBQeVVuaWNvZGVfREFUQShtb2RpZmllZCk7CisgICAgICAgIFB5VW5pY29kZV9XUklURShraW5kLCBQeVVuaWNvZGVfREFUQShtb2RpZmllZCksIDAsICdccicpOworICAgICAgICBtZW1jcHkob3V0ICsga2luZCwgUHlVbmljb2RlX0RBVEEob3V0cHV0KSwga2luZCAqIG91dHB1dF9sZW4pOwogICAgICAgICBQeV9ERUNSRUYob3V0cHV0KTsKLSAgICAgICAgb3V0cHV0ID0gbW9kaWZpZWQ7CisgICAgICAgIG91dHB1dCA9IG1vZGlmaWVkOyAvKiBvdXRwdXQgcmVtYWlucyByZWFkeSAqLwogICAgICAgICBzZWxmLT5wZW5kaW5nY3IgPSAwOwogICAgICAgICBvdXRwdXRfbGVuKys7CiAgICAgfQpAQCAtMjk1LDIxICszMjQsMTMgQEAKICAgICAgKi8KICAgICBpZiAoIWZpbmFsKSB7CiAgICAgICAgIGlmIChvdXRwdXRfbGVuID4gMAotICAgICAgICAgICAgJiYgUHlVbmljb2RlX0FTX1VOSUNPREUob3V0cHV0KVtvdXRwdXRfbGVuIC0gMV0gPT0gJ1xyJykgewotCi0gICAgICAgICAgICBpZiAoUHlfUkVGQ05UKG91dHB1dCkgPT0gMSkgewotICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUmVzaXplKCZvdXRwdXQsIG91dHB1dF9sZW4gLSAxKSA8IDApCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqbW9kaWZpZWQgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoCi0gICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKG91dHB1dCksCi0gICAgICAgICAgICAgICAgICAgIG91dHB1dF9sZW4gLSAxKTsKLSAgICAgICAgICAgICAgICBpZiAobW9kaWZpZWQgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYob3V0cHV0KTsKLSAgICAgICAgICAgICAgICBvdXRwdXQgPSBtb2RpZmllZDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICYmIFB5VW5pY29kZV9SRUFEX0NIQVIob3V0cHV0LCBvdXRwdXRfbGVuIC0gMSkgPT0gJ1xyJykKKyAgICAgICAgeworICAgICAgICAgICAgUHlPYmplY3QgKm1vZGlmaWVkID0gUHlVbmljb2RlX1N1YnN0cmluZyhvdXRwdXQsIDAsIG91dHB1dF9sZW4gLTEpOworICAgICAgICAgICAgaWYgKG1vZGlmaWVkID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihvdXRwdXQpOworICAgICAgICAgICAgb3V0cHV0ID0gbW9kaWZpZWQ7CiAgICAgICAgICAgICBzZWxmLT5wZW5kaW5nY3IgPSAxOwogICAgICAgICB9CiAgICAgfQpAQCAtMzE3LDEzICszMzgsMTUgQEAKICAgICAvKiBSZWNvcmQgd2hpY2ggbmV3bGluZXMgYXJlIHJlYWQgYW5kIGRvIG5ld2xpbmUgdHJhbnNsYXRpb24gaWYgZGVzaXJlZCwKICAgICAgICBhbGwgaW4gb25lIHBhc3MuICovCiAgICAgewotICAgICAgICBQeV9VTklDT0RFICppbl9zdHI7CisgICAgICAgIHZvaWQgKmluX3N0cjsKICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgIGludCBzZWVubmwgPSBzZWxmLT5zZWVubmw7CiAgICAgICAgIGludCBvbmx5X2xmID0gMDsKKyAgICAgICAgaW50IGtpbmQ7CiAKLSAgICAgICAgaW5fc3RyID0gUHlVbmljb2RlX0FTX1VOSUNPREUob3V0cHV0KTsKLSAgICAgICAgbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKG91dHB1dCk7CisgICAgICAgIGluX3N0ciA9IFB5VW5pY29kZV9EQVRBKG91dHB1dCk7CisgICAgICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKG91dHB1dCk7CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChvdXRwdXQpOwogCiAgICAgICAgIGlmIChsZW4gPT0gMCkKICAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7CkBAIC0zMzIsNyArMzU1LDcgQEAKICAgICAgICAgICAgZm9yIHRoZSBcciAqYnl0ZSogd2l0aCB0aGUgbGliYydzIG9wdGltaXplZCBtZW1jaHIuCiAgICAgICAgICAgICovCiAgICAgICAgIGlmIChzZWVubmwgPT0gU0VFTl9MRiB8fCBzZWVubmwgPT0gMCkgewotICAgICAgICAgICAgb25seV9sZiA9IChtZW1jaHIoaW5fc3RyLCAnXHInLCBsZW4gKiBzaXplb2YoUHlfVU5JQ09ERSkpID09IE5VTEwpOworICAgICAgICAgICAgb25seV9sZiA9IChtZW1jaHIoaW5fc3RyLCAnXHInLCBraW5kICogbGVuKSA9PSBOVUxMKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChvbmx5X2xmKSB7CkBAIC0zNDAsNTEgKzM2Myw1MSBAQAogICAgICAgICAgICAgICAgKHRoZXJlJ3Mgbm90aGluZyBlbHNlIHRvIGJlIGRvbmUsIGV2ZW4gd2hlbiBpbiB0cmFuc2xhdGlvbiBtb2RlKQogICAgICAgICAgICAgKi8KICAgICAgICAgICAgIGlmIChzZWVubmwgPT0gMCAmJgotICAgICAgICAgICAgICAgIG1lbWNocihpbl9zdHIsICdcbicsIGxlbiAqIHNpemVvZihQeV9VTklDT0RFKSkgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5X1VOSUNPREUgKnMsICplbmQ7Ci0gICAgICAgICAgICAgICAgcyA9IGluX3N0cjsKLSAgICAgICAgICAgICAgICBlbmQgPSBpbl9zdHIgKyBsZW47Ci0gICAgICAgICAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAgICAgICAgICBQeV9VTklDT0RFIGM7Ci0gICAgICAgICAgICAgICAgICAgIC8qIEZhc3QgbG9vcCBmb3Igbm9uLWNvbnRyb2wgY2hhcmFjdGVycyAqLwotICAgICAgICAgICAgICAgICAgICB3aGlsZSAoKnMgPiAnXG4nKQotICAgICAgICAgICAgICAgICAgICAgICAgcysrOwotICAgICAgICAgICAgICAgICAgICBjID0gKnMrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJykgewotICAgICAgICAgICAgICAgICAgICAgICAgc2Vlbm5sIHw9IFNFRU5fTEY7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBtZW1jaHIoaW5fc3RyLCAnXG4nLCBraW5kICogbGVuKSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQpCisgICAgICAgICAgICAgICAgICAgIHNlZW5ubCB8PSBTRUVOX0xGOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGkgPSAwOworICAgICAgICAgICAgICAgICAgICBmb3IgKDs7KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IGM7CisgICAgICAgICAgICAgICAgICAgICAgICAvKiBGYXN0IGxvb3AgZm9yIG5vbi1jb250cm9sIGNoYXJhY3RlcnMgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChQeVVuaWNvZGVfUkVBRChraW5kLCBpbl9zdHIsIGkpID4gJ1xuJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpKys7CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gUHlVbmljb2RlX1JFQUQoa2luZCwgaW5fc3RyLCBpKyspOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xuJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlZW5ubCB8PSBTRUVOX0xGOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPj0gbGVuKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzID4gZW5kKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgLyogRmluaXNoZWQ6IHdlIGhhdmUgc2Nhbm5lZCBmb3IgbmV3bGluZXMsIGFuZCBub25lIG9mIHRoZW0KICAgICAgICAgICAgICAgIG5lZWQgdHJhbnNsYXRpbmcgKi8KICAgICAgICAgfQogICAgICAgICBlbHNlIGlmICghc2VsZi0+dHJhbnNsYXRlKSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFICpzLCAqZW5kOworICAgICAgICAgICAgUHlfc3NpemVfdCBpID0gMDsKICAgICAgICAgICAgIC8qIFdlIGhhdmUgYWxyZWFkeSBzZWVuIGFsbCBuZXdsaW5lIHR5cGVzLCBubyBuZWVkIHRvIHNjYW4gYWdhaW4gKi8KICAgICAgICAgICAgIGlmIChzZWVubmwgPT0gU0VFTl9BTEwpCiAgICAgICAgICAgICAgICAgZ290byBlbmRzY2FuOwotICAgICAgICAgICAgcyA9IGluX3N0cjsKLSAgICAgICAgICAgIGVuZCA9IGluX3N0ciArIGxlbjsKICAgICAgICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgICAgICBQeV9VTklDT0RFIGM7CisgICAgICAgICAgICAgICAgUHlfVUNTNCBjOwogICAgICAgICAgICAgICAgIC8qIEZhc3QgbG9vcCBmb3Igbm9uLWNvbnRyb2wgY2hhcmFjdGVycyAqLwotICAgICAgICAgICAgICAgIHdoaWxlICgqcyA+ICdccicpCi0gICAgICAgICAgICAgICAgICAgIHMrKzsKLSAgICAgICAgICAgICAgICBjID0gKnMrKzsKKyAgICAgICAgICAgICAgICB3aGlsZSAoUHlVbmljb2RlX1JFQUQoa2luZCwgaW5fc3RyLCBpKSA+ICdccicpCisgICAgICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBjID0gUHlVbmljb2RlX1JFQUQoa2luZCwgaW5fc3RyLCBpKyspOwogICAgICAgICAgICAgICAgIGlmIChjID09ICdcbicpCiAgICAgICAgICAgICAgICAgICAgIHNlZW5ubCB8PSBTRUVOX0xGOwogICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJ1xyJykgewotICAgICAgICAgICAgICAgICAgICBpZiAoKnMgPT0gJ1xuJykgeworICAgICAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQUQoa2luZCwgaW5fc3RyLCBpKSA9PSAnXG4nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBzZWVubmwgfD0gU0VFTl9DUkxGOwotICAgICAgICAgICAgICAgICAgICAgICAgcysrOworICAgICAgICAgICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIHNlZW5ubCB8PSBTRUVOX0NSOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAocyA+IGVuZCkKKyAgICAgICAgICAgICAgICBpZiAoaSA+PSBsZW4pCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIGlmIChzZWVubmwgPT0gU0VFTl9BTEwpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzkzLDYxICs0MTYsNTEgQEAKICAgICAgICAgICAgIDsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFB5T2JqZWN0ICp0cmFuc2xhdGVkID0gTlVMTDsKLSAgICAgICAgICAgIFB5X1VOSUNPREUgKm91dF9zdHI7Ci0gICAgICAgICAgICBQeV9VTklDT0RFICppbiwgKm91dCwgKmVuZDsKLSAgICAgICAgICAgIGlmIChQeV9SRUZDTlQob3V0cHV0KSAhPSAxKSB7Ci0gICAgICAgICAgICAgICAgLyogV2UgY291bGQgdHJ5IHRvIG9wdGltaXplIHRoaXMgc28gdGhhdCB3ZSBvbmx5IGRvIGEgY29weQotICAgICAgICAgICAgICAgICAgIHdoZW4gdGhlcmUgaXMgc29tZXRoaW5nIHRvIHRyYW5zbGF0ZS4gT24gdGhlIG90aGVyIGhhbmQsCi0gICAgICAgICAgICAgICAgICAgbW9zdCBkZWNvZGVycyBzaG91bGQgb25seSBvdXRwdXQgbm9uLXNoYXJlZCBzdHJpbmdzLCBpLmUuCi0gICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24gaXMgZG9uZSBpbiBwbGFjZS4gKi8KLSAgICAgICAgICAgICAgICB0cmFuc2xhdGVkID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIGxlbik7Ci0gICAgICAgICAgICAgICAgaWYgKHRyYW5zbGF0ZWQgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgICAgICBhc3NlcnQoUHlfUkVGQ05UKHRyYW5zbGF0ZWQpID09IDEpOwotICAgICAgICAgICAgICAgIG1lbWNweShQeVVuaWNvZGVfQVNfVU5JQ09ERSh0cmFuc2xhdGVkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUob3V0cHV0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgbGVuICogc2l6ZW9mKFB5X1VOSUNPREUpKTsKKyAgICAgICAgICAgIHZvaWQgKnRyYW5zbGF0ZWQ7CisgICAgICAgICAgICBpbnQga2luZCA9IFB5VW5pY29kZV9LSU5EKG91dHB1dCk7CisgICAgICAgICAgICB2b2lkICppbl9zdHIgPSBQeVVuaWNvZGVfREFUQShvdXRwdXQpOworICAgICAgICAgICAgUHlfc3NpemVfdCBpbiwgb3V0OworICAgICAgICAgICAgLyogWFhYOiBQcmV2aW91cyBpbi1wbGFjZSB0cmFuc2xhdGlvbiBoZXJlIGlzIGRpc2FibGVkIGFzCisgICAgICAgICAgICAgICByZXNpemluZyBpcyBub3QgcG9zc2libGUgYW55bW9yZSAqLworICAgICAgICAgICAgLyogV2UgY291bGQgdHJ5IHRvIG9wdGltaXplIHRoaXMgc28gdGhhdCB3ZSBvbmx5IGRvIGEgY29weQorICAgICAgICAgICAgICAgd2hlbiB0aGVyZSBpcyBzb21ldGhpbmcgdG8gdHJhbnNsYXRlLiBPbiB0aGUgb3RoZXIgaGFuZCwKKyAgICAgICAgICAgICAgIHdlIGFscmVhZHkga25vdyB0aGVyZSBpcyBhIFxyIGJ5dGUsIHNvIGNoYW5jZXMgYXJlIGhpZ2gKKyAgICAgICAgICAgICAgIHRoYXQgc29tZXRoaW5nIG5lZWRzIHRvIGJlIGRvbmUuICovCisgICAgICAgICAgICB0cmFuc2xhdGVkID0gUHlNZW1fTWFsbG9jKGtpbmQgKiBsZW4pOworICAgICAgICAgICAgaWYgKHRyYW5zbGF0ZWQgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWQgPSBvdXRwdXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBvdXRfc3RyID0gUHlVbmljb2RlX0FTX1VOSUNPREUodHJhbnNsYXRlZCk7Ci0gICAgICAgICAgICBpbiA9IGluX3N0cjsKLSAgICAgICAgICAgIG91dCA9IG91dF9zdHI7Ci0gICAgICAgICAgICBlbmQgPSBpbl9zdHIgKyBsZW47CisgICAgICAgICAgICBpbiA9IG91dCA9IDA7CiAgICAgICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICAgICAgUHlfVU5JQ09ERSBjOworICAgICAgICAgICAgICAgIFB5X1VDUzQgYzsKICAgICAgICAgICAgICAgICAvKiBGYXN0IGxvb3AgZm9yIG5vbi1jb250cm9sIGNoYXJhY3RlcnMgKi8KLSAgICAgICAgICAgICAgICB3aGlsZSAoKGMgPSAqaW4rKykgPiAnXHInKQotICAgICAgICAgICAgICAgICAgICAqb3V0KysgPSBjOworICAgICAgICAgICAgICAgIHdoaWxlICgoYyA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGluX3N0ciwgaW4rKykpID4gJ1xyJykKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIHRyYW5zbGF0ZWQsIG91dCsrLCBjKTsKICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXG4nKSB7Ci0gICAgICAgICAgICAgICAgICAgICpvdXQrKyA9IGM7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShraW5kLCB0cmFuc2xhdGVkLCBvdXQrKywgYyk7CiAgICAgICAgICAgICAgICAgICAgIHNlZW5ubCB8PSBTRUVOX0xGOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ1xyJykgewotICAgICAgICAgICAgICAgICAgICBpZiAoKmluID09ICdcbicpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEKGtpbmQsIGluX3N0ciwgaW4pID09ICdcbicpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGluKys7CiAgICAgICAgICAgICAgICAgICAgICAgICBzZWVubmwgfD0gU0VFTl9DUkxGOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgIHNlZW5ubCB8PSBTRUVOX0NSOwotICAgICAgICAgICAgICAgICAgICAqb3V0KysgPSAnXG4nOworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgdHJhbnNsYXRlZCwgb3V0KyssICdcbicpOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGluID4gZW5kKQorICAgICAgICAgICAgICAgIGlmIChpbiA+IGxlbikKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgKm91dCsrID0gYzsKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgdHJhbnNsYXRlZCwgb3V0KyssIGMpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHRyYW5zbGF0ZWQgIT0gb3V0cHV0KSB7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKG91dHB1dCk7Ci0gICAgICAgICAgICAgICAgb3V0cHV0ID0gdHJhbnNsYXRlZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChvdXQgLSBvdXRfc3RyICE9IGxlbikgewotICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUmVzaXplKCZvdXRwdXQsIG91dCAtIG91dF9zdHIpIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFB5X0RFQ1JFRihvdXRwdXQpOworICAgICAgICAgICAgb3V0cHV0ID0gUHlVbmljb2RlX0Zyb21LaW5kQW5kRGF0YShraW5kLCB0cmFuc2xhdGVkLCBvdXQpOworICAgICAgICAgICAgUHlNZW1fRnJlZSh0cmFuc2xhdGVkKTsKKyAgICAgICAgICAgIGlmICghb3V0cHV0KQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgICAgIHNlbGYtPnNlZW5ubCB8PSBzZWVubmw7CiAgICAgfQpAQCAtNTE0LDggKzUyNyw4IEBACiAgICAgZmxhZyA+Pj0gMTsKIAogICAgIGlmIChzZWxmLT5kZWNvZGVyICE9IFB5X05vbmUpCi0gICAgICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKHNlbGYtPmRlY29kZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZXRzdGF0ZSIsICIoKE9LKSkiLCBidWZmZXIsIGZsYWcpOworICAgICAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLT5kZWNvZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlJZF9zZXRzdGF0ZSwgIigoT0spKSIsIGJ1ZmZlciwgZmxhZyk7CiAgICAgZWxzZQogICAgICAgICBQeV9SRVRVUk5fTk9ORTsKIH0KQEAgLTYxNyw3ICs2MzAsNyBAQAogICAgICJDaGFyYWN0ZXIgYW5kIGxpbmUgYmFzZWQgbGF5ZXIgb3ZlciBhIEJ1ZmZlcmVkSU9CYXNlIG9iamVjdCwgYnVmZmVyLlxuIgogICAgICJcbiIKICAgICAiZW5jb2RpbmcgZ2l2ZXMgdGhlIG5hbWUgb2YgdGhlIGVuY29kaW5nIHRoYXQgdGhlIHN0cmVhbSB3aWxsIGJlXG4iCi0gICAgImRlY29kZWQgb3IgZW5jb2RlZCB3aXRoLiBJdCBkZWZhdWx0cyB0byBsb2NhbGUuZ2V0cHJlZmVycmVkZW5jb2RpbmcuXG4iCisgICAgImRlY29kZWQgb3IgZW5jb2RlZCB3aXRoLiBJdCBkZWZhdWx0cyB0byBsb2NhbGUuZ2V0cHJlZmVycmVkZW5jb2RpbmcoRmFsc2UpLlxuIgogICAgICJcbiIKICAgICAiZXJyb3JzIGRldGVybWluZXMgdGhlIHN0cmljdG5lc3Mgb2YgZW5jb2RpbmcgYW5kIGRlY29kaW5nIChzZWUgdGhlXG4iCiAgICAgImNvZGVjcy5yZWdpc3RlcikgYW5kIGRlZmF1bHRzIHRvIFwic3RyaWN0XCIuXG4iCkBAIC02ODAsMTIgKzY5MywxNiBAQAogICAgIFB5T2JqZWN0ICpwZW5kaW5nX2J5dGVzOyAgICAgICAvKiBsaXN0IG9mIGJ5dGVzIG9iamVjdHMgd2FpdGluZyB0byBiZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0dGVuLCBvciBOVUxMICovCiAgICAgUHlfc3NpemVfdCBwZW5kaW5nX2J5dGVzX2NvdW50OwotICAgIFB5T2JqZWN0ICpzbmFwc2hvdDsKKwogICAgIC8qIHNuYXBzaG90IGlzIGVpdGhlciBOb25lLCBvciBhIHR1cGxlIChkZWNfZmxhZ3MsIG5leHRfaW5wdXQpIHdoZXJlCiAgICAgICogZGVjX2ZsYWdzIGlzIHRoZSBzZWNvbmQgKGludGVnZXIpIGl0ZW0gb2YgdGhlIGRlY29kZXIgc3RhdGUgYW5kCiAgICAgICogbmV4dF9pbnB1dCBpcyB0aGUgY2h1bmsgb2YgaW5wdXQgYnl0ZXMgdGhhdCBjb21lcyBuZXh0IGFmdGVyIHRoZQogICAgICAqIHNuYXBzaG90IHBvaW50LiAgV2UgdXNlIHRoaXMgdG8gcmVjb25zdHJ1Y3QgZGVjb2RlciBzdGF0ZXMgaW4gdGVsbCgpLgogICAgICAqLworICAgIFB5T2JqZWN0ICpzbmFwc2hvdDsKKyAgICAvKiBCeXRlcy10by1jaGFyYWN0ZXJzIHJhdGlvIGZvciB0aGUgY3VycmVudCBjaHVuay4gU2VydmVzIGFzIGlucHV0IGZvcgorICAgICAgIHRoZSBoZXVyaXN0aWMgaW4gdGVsbCgpLiAqLworICAgIGRvdWJsZSBiMmNyYXRpbzsKIAogICAgIC8qIENhY2hlIHJhdyBvYmplY3QgaWYgaXQncyBhIEZpbGVJTyBvYmplY3QgKi8KICAgICBQeU9iamVjdCAqcmF3OwpAQCAtNzAxLDI1ICs3MTgsMjEgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBhc2NpaV9lbmNvZGUodGV4dGlvICpzZWxmLCBQeU9iamVjdCAqdGV4dCkKIHsKLSAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZUFTQ0lJKFB5VW5pY29kZV9BU19VTklDT0RFKHRleHQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHRleHQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcoc2VsZi0+ZXJyb3JzKSk7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVfQXNBU0NJSVN0cmluZyh0ZXh0LCBQeUJ5dGVzX0FTX1NUUklORyhzZWxmLT5lcnJvcnMpKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKIHV0ZjE2YmVfZW5jb2RlKHRleHRpbyAqc2VsZiwgUHlPYmplY3QgKnRleHQpCiB7Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVVVEYxNihQeVVuaWNvZGVfQVNfVU5JQ09ERSh0ZXh0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh0ZXh0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5Qnl0ZXNfQVNfU1RSSU5HKHNlbGYtPmVycm9ycyksIDEpOworICAgIHJldHVybiBfUHlVbmljb2RlX0VuY29kZVVURjE2KHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcoc2VsZi0+ZXJyb3JzKSwgMSk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiB1dGYxNmxlX2VuY29kZSh0ZXh0aW8gKnNlbGYsIFB5T2JqZWN0ICp0ZXh0KQogewotICAgIHJldHVybiBQeVVuaWNvZGVfRW5jb2RlVVRGMTYoUHlVbmljb2RlX0FTX1VOSUNPREUodGV4dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodGV4dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0FTX1NUUklORyhzZWxmLT5lcnJvcnMpLCAtMSk7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVfRW5jb2RlVVRGMTYodGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0FTX1NUUklORyhzZWxmLT5lcnJvcnMpLCAtMSk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC03MzMsMjUgKzc0NiwyMiBAQAogICAgICAgICByZXR1cm4gdXRmMTZsZV9lbmNvZGUoc2VsZiwgdGV4dCk7CiAjZW5kaWYKICAgICB9Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVVVEYxNihQeVVuaWNvZGVfQVNfVU5JQ09ERSh0ZXh0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh0ZXh0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5Qnl0ZXNfQVNfU1RSSU5HKHNlbGYtPmVycm9ycyksIDApOworICAgIHJldHVybiBfUHlVbmljb2RlX0VuY29kZVVURjE2KHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcoc2VsZi0+ZXJyb3JzKSwgMCk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiB1dGYzMmJlX2VuY29kZSh0ZXh0aW8gKnNlbGYsIFB5T2JqZWN0ICp0ZXh0KQogewotICAgIHJldHVybiBQeVVuaWNvZGVfRW5jb2RlVVRGMzIoUHlVbmljb2RlX0FTX1VOSUNPREUodGV4dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodGV4dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0FTX1NUUklORyhzZWxmLT5lcnJvcnMpLCAxKTsKKyAgICByZXR1cm4gX1B5VW5pY29kZV9FbmNvZGVVVEYzMih0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5Qnl0ZXNfQVNfU1RSSU5HKHNlbGYtPmVycm9ycyksIDEpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogdXRmMzJsZV9lbmNvZGUodGV4dGlvICpzZWxmLCBQeU9iamVjdCAqdGV4dCkKIHsKLSAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZVVURjMyKFB5VW5pY29kZV9BU19VTklDT0RFKHRleHQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHRleHQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcoc2VsZi0+ZXJyb3JzKSwgLTEpOworICAgIHJldHVybiBfUHlVbmljb2RlX0VuY29kZVVURjMyKHRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcoc2VsZi0+ZXJyb3JzKSwgLTEpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtNzY1LDI1ICs3NzUsMjAgQEAKICAgICAgICAgcmV0dXJuIHV0ZjMybGVfZW5jb2RlKHNlbGYsIHRleHQpOwogI2VuZGlmCiAgICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfRW5jb2RlVVRGMzIoUHlVbmljb2RlX0FTX1VOSUNPREUodGV4dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodGV4dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0FTX1NUUklORyhzZWxmLT5lcnJvcnMpLCAwKTsKKyAgICByZXR1cm4gX1B5VW5pY29kZV9FbmNvZGVVVEYzMih0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5Qnl0ZXNfQVNfU1RSSU5HKHNlbGYtPmVycm9ycyksIDApOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogdXRmOF9lbmNvZGUodGV4dGlvICpzZWxmLCBQeU9iamVjdCAqdGV4dCkKIHsKLSAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZVVURjgoUHlVbmljb2RlX0FTX1VOSUNPREUodGV4dCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh0ZXh0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcoc2VsZi0+ZXJyb3JzKSk7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVfQXNVVEY4U3RyaW5nKHRleHQsIFB5Qnl0ZXNfQVNfU1RSSU5HKHNlbGYtPmVycm9ycykpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogbGF0aW4xX2VuY29kZSh0ZXh0aW8gKnNlbGYsIFB5T2JqZWN0ICp0ZXh0KQogewotICAgIHJldHVybiBQeVVuaWNvZGVfRW5jb2RlTGF0aW4xKFB5VW5pY29kZV9BU19VTklDT0RFKHRleHQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh0ZXh0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0FTX1NUUklORyhzZWxmLT5lcnJvcnMpKTsKKyAgICByZXR1cm4gX1B5VW5pY29kZV9Bc0xhdGluMVN0cmluZyh0ZXh0LCBQeUJ5dGVzX0FTX1NUUklORyhzZWxmLT5lcnJvcnMpKTsKIH0KIAogLyogTWFwIG5vcm1hbGl6ZWQgZW5jb2RpbmcgbmFtZXMgb250byB0aGUgc3BlY2lhbGl6ZWQgZW5jb2RpbmcgZnVuY3MgKi8KQEAgLTg1MiwxMSArODU3LDEyIEBACiAgICAgc2VsZi0+ZGVjb2RlZF9jaGFyc191c2VkID0gMDsKICAgICBzZWxmLT5wZW5kaW5nX2J5dGVzX2NvdW50ID0gMDsKICAgICBzZWxmLT5lbmNvZGVmdW5jID0gTlVMTDsKKyAgICBzZWxmLT5iMmNyYXRpbyA9IDAuMDsKIAogICAgIGlmIChlbmNvZGluZyA9PSBOVUxMKSB7CiAgICAgICAgIC8qIFRyeSBvcy5kZXZpY2VfZW5jb2RpbmcoZmlsZW5vKSAqLwogICAgICAgICBQeU9iamVjdCAqZmlsZW5vOwotICAgICAgICBmaWxlbm8gPSBQeU9iamVjdF9DYWxsTWV0aG9kKGJ1ZmZlciwgImZpbGVubyIsIE5VTEwpOworICAgICAgICBmaWxlbm8gPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKGJ1ZmZlciwgJlB5SWRfZmlsZW5vLCBOVUxMKTsKICAgICAgICAgLyogSWdub3JlIG9ubHkgQXR0cmlidXRlRXJyb3IgYW5kIFVuc3VwcG9ydGVkT3BlcmF0aW9uICovCiAgICAgICAgIGlmIChmaWxlbm8gPT0gTlVMTCkgewogICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpIHx8CkBAIC04NjgsOSArODc0LDEzIEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBzZWxmLT5lbmNvZGluZyA9IFB5T2JqZWN0X0NhbGxNZXRob2Qoc3RhdGUtPm9zX21vZHVsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGV2aWNlX2VuY29kaW5nIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTiIsIGZpbGVubyk7CisgICAgICAgICAgICBpbnQgZmQgPSAoaW50KSBQeUxvbmdfQXNMb25nKGZpbGVubyk7CisgICAgICAgICAgICBQeV9ERUNSRUYoZmlsZW5vKTsKKyAgICAgICAgICAgIGlmIChmZCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgc2VsZi0+ZW5jb2RpbmcgPSBfUHlfZGV2aWNlX2VuY29kaW5nKGZkKTsKICAgICAgICAgICAgIGlmIChzZWxmLT5lbmNvZGluZyA9PSBOVUxMKQogICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICBlbHNlIGlmICghUHlVbmljb2RlX0NoZWNrKHNlbGYtPmVuY29kaW5nKSkKQEAgLTg4Nyw4ICs4OTcsOCBAQAogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgIHVzZV9sb2NhbGU6Ci0gICAgICAgICAgICBzZWxmLT5lbmNvZGluZyA9IFB5T2JqZWN0X0NhbGxNZXRob2QoCi0gICAgICAgICAgICAgICAgc3RhdGUtPmxvY2FsZV9tb2R1bGUsICJnZXRwcmVmZXJyZWRlbmNvZGluZyIsIE5VTEwpOworICAgICAgICAgICAgc2VsZi0+ZW5jb2RpbmcgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKAorICAgICAgICAgICAgICAgIHN0YXRlLT5sb2NhbGVfbW9kdWxlLCAmUHlJZF9nZXRwcmVmZXJyZWRlbmNvZGluZywgIk8iLCBQeV9GYWxzZSk7CiAgICAgICAgICAgICBpZiAoc2VsZi0+ZW5jb2RpbmcgPT0gTlVMTCkgewogICAgICAgICAgICAgICBjYXRjaF9JbXBvcnRFcnJvcjoKICAgICAgICAgICAgICAgICAvKgpAQCAtOTUzLDcgKzk2Myw3IEBACiAjZW5kaWYKIAogICAgIC8qIEJ1aWxkIHRoZSBkZWNvZGVyIG9iamVjdCAqLwotICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxNZXRob2QoYnVmZmVyLCAicmVhZGFibGUiLCBOVUxMKTsKKyAgICByZXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKGJ1ZmZlciwgJlB5SWRfcmVhZGFibGUsIE5VTEwpOwogICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgZ290byBlcnJvcjsKICAgICByID0gUHlPYmplY3RfSXNUcnVlKHJlcyk7CkBAIC05NzgsNyArOTg4LDcgQEAKICAgICB9CiAKICAgICAvKiBCdWlsZCB0aGUgZW5jb2RlciBvYmplY3QgKi8KLSAgICByZXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGJ1ZmZlciwgIndyaXRhYmxlIiwgTlVMTCk7CisgICAgcmVzID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChidWZmZXIsICZQeUlkX3dyaXRhYmxlLCBOVUxMKTsKICAgICBpZiAocmVzID09IE5VTEwpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgciA9IFB5T2JqZWN0X0lzVHJ1ZShyZXMpOwpAQCAtOTk1LDcgKzEwMDUsNyBAQAogICAgICAgICBjaSA9IF9QeUNvZGVjX0xvb2t1cChlbmNvZGluZyk7CiAgICAgICAgIGlmIChjaSA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgcmVzID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhjaSwgIm5hbWUiKTsKKyAgICAgICAgcmVzID0gX1B5T2JqZWN0X0dldEF0dHJJZChjaSwgJlB5SWRfbmFtZSk7CiAgICAgICAgIFB5X0RFQ1JFRihjaSk7CiAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkgewogICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQpAQCAtMTAyMiw3ICsxMDMyLDcgQEAKICAgICBpZiAoUHlfVFlQRShidWZmZXIpID09ICZQeUJ1ZmZlcmVkUmVhZGVyX1R5cGUgfHwKICAgICAgICAgUHlfVFlQRShidWZmZXIpID09ICZQeUJ1ZmZlcmVkV3JpdGVyX1R5cGUgfHwKICAgICAgICAgUHlfVFlQRShidWZmZXIpID09ICZQeUJ1ZmZlcmVkUmFuZG9tX1R5cGUpIHsKLSAgICAgICAgcmF3ID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhidWZmZXIsICJyYXciKTsKKyAgICAgICAgcmF3ID0gX1B5T2JqZWN0X0dldEF0dHJJZChidWZmZXIsICZQeUlkX3Jhdyk7CiAgICAgICAgIC8qIENhY2hlIHRoZSByYXcgRmlsZUlPIG9iamVjdCB0byBzcGVlZCB1cCAnY2xvc2VkJyBjaGVja3MgKi8KICAgICAgICAgaWYgKHJhdyA9PSBOVUxMKSB7CiAgICAgICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19BdHRyaWJ1dGVFcnJvcikpCkBAIC0xMDM2LDEzICsxMDQ2LDEzIEBACiAgICAgICAgICAgICBQeV9ERUNSRUYocmF3KTsKICAgICB9CiAKLSAgICByZXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGJ1ZmZlciwgInNlZWthYmxlIiwgTlVMTCk7CisgICAgcmVzID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChidWZmZXIsICZQeUlkX3NlZWthYmxlLCBOVUxMKTsKICAgICBpZiAocmVzID09IE5VTEwpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgc2VsZi0+c2Vla2FibGUgPSBzZWxmLT50ZWxsaW5nID0gUHlPYmplY3RfSXNUcnVlKHJlcyk7CiAgICAgUHlfREVDUkVGKHJlcyk7CiAKLSAgICBzZWxmLT5oYXNfcmVhZDEgPSBQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGJ1ZmZlciwgInJlYWQxIik7CisgICAgc2VsZi0+aGFzX3JlYWQxID0gX1B5T2JqZWN0X0hhc0F0dHJJZChidWZmZXIsICZQeUlkX3JlYWQxKTsKIAogICAgIHNlbGYtPmVuY29kaW5nX3N0YXJ0X29mX3N0cmVhbSA9IDA7CiAgICAgaWYgKHNlbGYtPnNlZWthYmxlICYmIHNlbGYtPmVuY29kZXIpIHsKQEAgLTEyMDgsMTggKzEyMTgsNiBAQAogICAgIHJldHVybiBidWZmZXI7CiB9CiAKLVB5X0xPQ0FMX0lOTElORShjb25zdCBQeV9VTklDT0RFICopCi1maW5kY2hhcihjb25zdCBQeV9VTklDT0RFICpzLCBQeV9zc2l6ZV90IHNpemUsIFB5X1VOSUNPREUgY2gpCi17Ci0gICAgLyogbGlrZSB3Y3NjaHIsIGJ1dCBkb2Vzbid0IHN0b3AgYXQgTlVMTCBjaGFyYWN0ZXJzICovCi0gICAgd2hpbGUgKHNpemUtLSA+IDApIHsKLSAgICAgICAgaWYgKCpzID09IGNoKQotICAgICAgICAgICAgcmV0dXJuIHM7Ci0gICAgICAgIHMrKzsKLSAgICB9Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KIC8qIEZsdXNoIHRoZSBpbnRlcm5hbCB3cml0ZSBidWZmZXIuIFRoaXMgZG9lc24ndCBleHBsaWNpdGx5IGZsdXNoIHRoZQogICAgdW5kZXJseWluZyBidWZmZXJlZCBvYmplY3QsIHRob3VnaC4gKi8KIHN0YXRpYyBpbnQKQEAgLTEyNjQsNiArMTI2Miw5IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodGV4dCkgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgQ0hFQ0tfQ0xPU0VEKHNlbGYpOwogCiAgICAgaWYgKHNlbGYtPmVuY29kZXIgPT0gTlVMTCkKQEAgLTEyNzEsMTYgKzEyNzIsMTUgQEAKIAogICAgIFB5X0lOQ1JFRih0ZXh0KTsKIAotICAgIHRleHRsZW4gPSBQeVVuaWNvZGVfR2V0U2l6ZSh0ZXh0KTsKKyAgICB0ZXh0bGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodGV4dCk7CiAKICAgICBpZiAoKHNlbGYtPndyaXRldHJhbnNsYXRlICYmIHNlbGYtPndyaXRlbmwgIT0gTlVMTCkgfHwgc2VsZi0+bGluZV9idWZmZXJpbmcpCi0gICAgICAgIGlmIChmaW5kY2hhcihQeVVuaWNvZGVfQVNfVU5JQ09ERSh0ZXh0KSwKLSAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh0ZXh0KSwgJ1xuJykpCisgICAgICAgIGlmIChQeVVuaWNvZGVfRmluZENoYXIodGV4dCwgJ1xuJywgMCwgUHlVbmljb2RlX0dFVF9MRU5HVEgodGV4dCksIDEpICE9IC0xKQogICAgICAgICAgICAgaGFzbGYgPSAxOwogCiAgICAgaWYgKGhhc2xmICYmIHNlbGYtPndyaXRldHJhbnNsYXRlICYmIHNlbGYtPndyaXRlbmwgIT0gTlVMTCkgewotICAgICAgICBQeU9iamVjdCAqbmV3dGV4dCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoCi0gICAgICAgICAgICB0ZXh0LCAicmVwbGFjZSIsICJzcyIsICJcbiIsIHNlbGYtPndyaXRlbmwpOworICAgICAgICBQeU9iamVjdCAqbmV3dGV4dCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoCisgICAgICAgICAgICB0ZXh0LCAmUHlJZF9yZXBsYWNlLCAic3MiLCAiXG4iLCBzZWxmLT53cml0ZW5sKTsKICAgICAgICAgUHlfREVDUkVGKHRleHQpOwogICAgICAgICBpZiAobmV3dGV4dCA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0xMjkxLDggKzEyOTEsNyBAQAogICAgICAgICBuZWVkZmx1c2ggPSAxOwogICAgIGVsc2UgaWYgKHNlbGYtPmxpbmVfYnVmZmVyaW5nICYmCiAgICAgICAgIChoYXNsZiB8fAotICAgICAgICAgZmluZGNoYXIoUHlVbmljb2RlX0FTX1VOSUNPREUodGV4dCksCi0gICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodGV4dCksICdccicpKSkKKyAgICAgICAgIFB5VW5pY29kZV9GaW5kQ2hhcih0ZXh0LCAnXHInLCAwLCBQeVVuaWNvZGVfR0VUX0xFTkdUSCh0ZXh0KSwgMSkgIT0gLTEpKQogICAgICAgICBuZWVkZmx1c2ggPSAxOwogCiAgICAgLyogWFhYIFdoYXQgaWYgd2Ugd2VyZSBqdXN0IHJlYWRpbmc/ICovCkBAIC0xMzM2LDcgKzEzMzUsNyBAQAogICAgIFB5X0NMRUFSKHNlbGYtPnNuYXBzaG90KTsKIAogICAgIGlmIChzZWxmLT5kZWNvZGVyKSB7Ci0gICAgICAgIHJldCA9IFB5T2JqZWN0X0NhbGxNZXRob2Qoc2VsZi0+ZGVjb2RlciwgInJlc2V0IiwgTlVMTCk7CisgICAgICAgIHJldCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoc2VsZi0+ZGVjb2RlciwgJlB5SWRfcmVzZXQsIE5VTEwpOwogICAgICAgICBpZiAocmV0ID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgUHlfREVDUkVGKHJldCk7CkBAIC0xMzY0LDcgKzEzNjMsOCBAQAogICAgIGlmIChzZWxmLT5kZWNvZGVkX2NoYXJzID09IE5VTEwpCiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgMCk7CiAKLSAgICBhdmFpbCA9IChQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZi0+ZGVjb2RlZF9jaGFycykKKyAgICAvKiBkZWNvZGVkX2NoYXJzIGlzIGd1YXJhbnRlZWQgdG8gYmUgInJlYWR5Ii4gKi8KKyAgICBhdmFpbCA9IChQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmLT5kZWNvZGVkX2NoYXJzKQogICAgICAgICAgICAgIC0gc2VsZi0+ZGVjb2RlZF9jaGFyc191c2VkKTsKIAogICAgIGFzc2VydChhdmFpbCA+PSAwKTsKQEAgLTEzNzMsOSArMTM3Myw5IEBACiAgICAgICAgIG4gPSBhdmFpbDsKIAogICAgIGlmIChzZWxmLT5kZWNvZGVkX2NoYXJzX3VzZWQgPiAwIHx8IG4gPCBhdmFpbCkgewotICAgICAgICBjaGFycyA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZSgKLSAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYtPmRlY29kZWRfY2hhcnMpCi0gICAgICAgICAgICArIHNlbGYtPmRlY29kZWRfY2hhcnNfdXNlZCwgbik7CisgICAgICAgIGNoYXJzID0gUHlVbmljb2RlX1N1YnN0cmluZyhzZWxmLT5kZWNvZGVkX2NoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+ZGVjb2RlZF9jaGFyc191c2VkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+ZGVjb2RlZF9jaGFyc191c2VkICsgbik7CiAgICAgICAgIGlmIChjaGFycyA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQpAQCAtMTM5MSwxMiArMTM5MSwxMyBAQAogLyogUmVhZCBhbmQgZGVjb2RlIHRoZSBuZXh0IGNodW5rIG9mIGRhdGEgZnJvbSB0aGUgQnVmZmVyZWRSZWFkZXIuCiAgKi8KIHN0YXRpYyBpbnQKLXRleHRpb3dyYXBwZXJfcmVhZF9jaHVuayh0ZXh0aW8gKnNlbGYpCit0ZXh0aW93cmFwcGVyX3JlYWRfY2h1bmsodGV4dGlvICpzZWxmLCBQeV9zc2l6ZV90IHNpemVfaGludCkKIHsKICAgICBQeU9iamVjdCAqZGVjX2J1ZmZlciA9IE5VTEw7CiAgICAgUHlPYmplY3QgKmRlY19mbGFncyA9IE5VTEw7CiAgICAgUHlPYmplY3QgKmlucHV0X2NodW5rID0gTlVMTDsKICAgICBQeU9iamVjdCAqZGVjb2RlZF9jaGFycywgKmNodW5rX3NpemU7CisgICAgUHlfc3NpemVfdCBuYnl0ZXMsIG5jaGFyczsKICAgICBpbnQgZW9mOwogCiAgICAgLyogVGhlIHJldHVybiB2YWx1ZSBpcyBUcnVlIHVubGVzcyBFT0Ygd2FzIHJlYWNoZWQuICBUaGUgZGVjb2RlZCBzdHJpbmcgaXMKQEAgLTE0MzIsNyArMTQzMywxMCBAQAogICAgIH0KIAogICAgIC8qIFJlYWQgYSBjaHVuaywgZGVjb2RlIGl0LCBhbmQgcHV0IHRoZSByZXN1bHQgaW4gc2VsZi5fZGVjb2RlZF9jaGFycy4gKi8KLSAgICBjaHVua19zaXplID0gUHlMb25nX0Zyb21Tc2l6ZV90KHNlbGYtPmNodW5rX3NpemUpOworICAgIGlmIChzaXplX2hpbnQgPiAwKSB7CisgICAgICAgIHNpemVfaGludCA9IChQeV9zc2l6ZV90KShQeV9NQVgoc2VsZi0+YjJjcmF0aW8sIDEuMCkgKiBzaXplX2hpbnQpOworICAgIH0KKyAgICBjaHVua19zaXplID0gUHlMb25nX0Zyb21Tc2l6ZV90KFB5X01BWChzZWxmLT5jaHVua19zaXplLCBzaXplX2hpbnQpKTsKICAgICBpZiAoY2h1bmtfc2l6ZSA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWw7CiAgICAgaW5wdXRfY2h1bmsgPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyhzZWxmLT5idWZmZXIsCkBAIC0xNDQzLDcgKzE0NDcsOCBAQAogICAgICAgICBnb3RvIGZhaWw7CiAgICAgYXNzZXJ0KFB5Qnl0ZXNfQ2hlY2soaW5wdXRfY2h1bmspKTsKIAotICAgIGVvZiA9IChQeUJ5dGVzX1NpemUoaW5wdXRfY2h1bmspID09IDApOworICAgIG5ieXRlcyA9IFB5Qnl0ZXNfU2l6ZShpbnB1dF9jaHVuayk7CisgICAgZW9mID0gKG5ieXRlcyA9PSAwKTsKIAogICAgIGlmIChQeV9UWVBFKHNlbGYtPmRlY29kZXIpID09ICZQeUluY3JlbWVudGFsTmV3bGluZURlY29kZXJfVHlwZSkgewogICAgICAgICBkZWNvZGVkX2NoYXJzID0gX1B5SW5jcmVtZW50YWxOZXdsaW5lRGVjb2Rlcl9kZWNvZGUoCkBAIC0xNDU3LDggKzE0NjIsMTUgQEAKICAgICAvKiBUT0RPIHNhbml0eSBjaGVjazogaXNpbnN0YW5jZShkZWNvZGVkX2NoYXJzLCB1bmljb2RlKSAqLwogICAgIGlmIChkZWNvZGVkX2NoYXJzID09IE5VTEwpCiAgICAgICAgIGdvdG8gZmFpbDsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKGRlY29kZWRfY2hhcnMpID09IC0xKQorICAgICAgICBnb3RvIGZhaWw7CiAgICAgdGV4dGlvd3JhcHBlcl9zZXRfZGVjb2RlZF9jaGFycyhzZWxmLCBkZWNvZGVkX2NoYXJzKTsKLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKGRlY29kZWRfY2hhcnMpID4gMCkKKyAgICBuY2hhcnMgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChkZWNvZGVkX2NoYXJzKTsKKyAgICBpZiAobmNoYXJzID4gMCkKKyAgICAgICAgc2VsZi0+YjJjcmF0aW8gPSAoZG91YmxlKSBuYnl0ZXMgLyBuY2hhcnM7CisgICAgZWxzZQorICAgICAgICBzZWxmLT5iMmNyYXRpbyA9IDAuMDsKKyAgICBpZiAobmNoYXJzID4gMCkKICAgICAgICAgZW9mID0gMDsKIAogICAgIGlmIChzZWxmLT50ZWxsaW5nKSB7CkBAIC0xNTA1LDEyICsxNTE3LDE3IEBACiAKICAgICBpZiAobiA8IDApIHsKICAgICAgICAgLyogUmVhZCBldmVyeXRoaW5nICovCi0gICAgICAgIFB5T2JqZWN0ICpieXRlcyA9IFB5T2JqZWN0X0NhbGxNZXRob2Qoc2VsZi0+YnVmZmVyLCAicmVhZCIsIE5VTEwpOworICAgICAgICBQeU9iamVjdCAqYnl0ZXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHNlbGYtPmJ1ZmZlciwgJlB5SWRfcmVhZCwgTlVMTCk7CiAgICAgICAgIFB5T2JqZWN0ICpkZWNvZGVkOwogICAgICAgICBpZiAoYnl0ZXMgPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgZGVjb2RlZCA9IFB5T2JqZWN0X0NhbGxNZXRob2RPYmpBcmdzKHNlbGYtPmRlY29kZXIsIF9QeUlPX3N0cl9kZWNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieXRlcywgUHlfVHJ1ZSwgTlVMTCk7CisKKyAgICAgICAgaWYgKFB5X1RZUEUoc2VsZi0+ZGVjb2RlcikgPT0gJlB5SW5jcmVtZW50YWxOZXdsaW5lRGVjb2Rlcl9UeXBlKQorICAgICAgICAgICAgZGVjb2RlZCA9IF9QeUluY3JlbWVudGFsTmV3bGluZURlY29kZXJfZGVjb2RlKHNlbGYtPmRlY29kZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZXMsIDEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkZWNvZGVkID0gUHlPYmplY3RfQ2FsbE1ldGhvZE9iakFyZ3MoCisgICAgICAgICAgICAgICAgc2VsZi0+ZGVjb2RlciwgX1B5SU9fc3RyX2RlY29kZSwgYnl0ZXMsIFB5X1RydWUsIE5VTEwpOwogICAgICAgICBQeV9ERUNSRUYoYnl0ZXMpOwogICAgICAgICBpZiAoZGVjb2RlZCA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBmYWlsOwpAQCAtMTUzNiwxMSArMTU1MywxMyBAQAogICAgICAgICByZXN1bHQgPSB0ZXh0aW93cmFwcGVyX2dldF9kZWNvZGVkX2NoYXJzKHNlbGYsIG4pOwogICAgICAgICBpZiAocmVzdWx0ID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIHJlbWFpbmluZyAtPSBQeVVuaWNvZGVfR0VUX1NJWkUocmVzdWx0KTsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShyZXN1bHQpID09IC0xKQorICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICByZW1haW5pbmcgLT0gUHlVbmljb2RlX0dFVF9MRU5HVEgocmVzdWx0KTsKIAogICAgICAgICAvKiBLZWVwIHJlYWRpbmcgY2h1bmtzIHVudGlsIHdlIGhhdmUgbiBjaGFyYWN0ZXJzIHRvIHJldHVybiAqLwogICAgICAgICB3aGlsZSAocmVtYWluaW5nID4gMCkgewotICAgICAgICAgICAgcmVzID0gdGV4dGlvd3JhcHBlcl9yZWFkX2NodW5rKHNlbGYpOworICAgICAgICAgICAgcmVzID0gdGV4dGlvd3JhcHBlcl9yZWFkX2NodW5rKHNlbGYsIHJlbWFpbmluZyk7CiAgICAgICAgICAgICBpZiAocmVzIDwgMCkgewogICAgICAgICAgICAgICAgIC8qIE5PVEU6IFB5RXJyX1NldEZyb21FcnJubygpIGNhbGxzIFB5RXJyX0NoZWNrU2lnbmFscygpCiAgICAgICAgICAgICAgICAgICAgd2hlbiBFSU5UUiBvY2N1cnMgc28gd2UgbmVlZG4ndCBkbyBpdCBvdXJzZWx2ZXMuICovCkBAIC0xNTU2LDEzICsxNTc1LDE0IEBACiAgICAgICAgICAgICAgICAgaWYgKGNodW5rcyA9PSBOVUxMKQogICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChjaHVua3MsIHJlc3VsdCkgPCAwKQorICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlc3VsdCkgPiAwICYmCisgICAgICAgICAgICAgICAgUHlMaXN0X0FwcGVuZChjaHVua3MsIHJlc3VsdCkgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOwogICAgICAgICAgICAgcmVzdWx0ID0gdGV4dGlvd3JhcHBlcl9nZXRfZGVjb2RlZF9jaGFycyhzZWxmLCByZW1haW5pbmcpOwogICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgIHJlbWFpbmluZyAtPSBQeVVuaWNvZGVfR0VUX1NJWkUocmVzdWx0KTsKKyAgICAgICAgICAgIHJlbWFpbmluZyAtPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChyZXN1bHQpOwogICAgICAgICB9CiAgICAgICAgIGlmIChjaHVua3MgIT0gTlVMTCkgewogICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBOVUxMICYmIFB5TGlzdF9BcHBlbmQoY2h1bmtzLCByZXN1bHQpIDwgMCkKQEAgLTE1ODIsMzYgKzE2MDIsMzkgQEAKIH0KIAogCi0vKiBOT1RFOiBgZW5kYCBtdXN0IHBvaW50IHRvIHRoZSByZWFsIGVuZCBvZiB0aGUgUHlfVU5JQ09ERSBzdG9yYWdlLAorLyogTk9URTogYGVuZGAgbXVzdCBwb2ludCB0byB0aGUgcmVhbCBlbmQgb2YgdGhlIFB5X1VDUzQgc3RvcmFnZSwKICAgIHRoYXQgaXMgdG8gdGhlIE5VTCBjaGFyYWN0ZXIuIE90aGVyd2lzZSB0aGUgZnVuY3Rpb24gd2lsbCBwcm9kdWNlCiAgICBpbmNvcnJlY3QgcmVzdWx0cy4gKi8KLXN0YXRpYyBQeV9VTklDT0RFICoKLWZpbmRfY29udHJvbF9jaGFyKFB5X1VOSUNPREUgKnN0YXJ0LCBQeV9VTklDT0RFICplbmQsIFB5X1VOSUNPREUgY2gpCitzdGF0aWMgY2hhciAqCitmaW5kX2NvbnRyb2xfY2hhcihpbnQga2luZCwgY2hhciAqcywgY2hhciAqZW5kLCBQeV9VQ1M0IGNoKQogewotICAgIFB5X1VOSUNPREUgKnMgPSBzdGFydDsKKyAgICBpZiAoa2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCkgeworICAgICAgICBhc3NlcnQoY2ggPCAyNTYpOworICAgICAgICByZXR1cm4gKGNoYXIgKikgbWVtY2hyKCh2b2lkICopIHMsIChjaGFyKSBjaCwgZW5kIC0gcyk7CisgICAgfQogICAgIGZvciAoOzspIHsKLSAgICAgICAgd2hpbGUgKCpzID4gY2gpCi0gICAgICAgICAgICBzKys7Ci0gICAgICAgIGlmICgqcyA9PSBjaCkKKyAgICAgICAgd2hpbGUgKFB5VW5pY29kZV9SRUFEKGtpbmQsIHMsIDApID4gY2gpCisgICAgICAgICAgICBzICs9IGtpbmQ7CisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBzLCAwKSA9PSBjaCkKICAgICAgICAgICAgIHJldHVybiBzOwogICAgICAgICBpZiAocyA9PSBlbmQpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgcysrOworICAgICAgICBzICs9IGtpbmQ7CiAgICAgfQogfQogCiBQeV9zc2l6ZV90CiBfUHlJT19maW5kX2xpbmVfZW5kaW5nKAogICAgIGludCB0cmFuc2xhdGVkLCBpbnQgdW5pdmVyc2FsLCBQeU9iamVjdCAqcmVhZG5sLAotICAgIFB5X1VOSUNPREUgKnN0YXJ0LCBQeV9VTklDT0RFICplbmQsIFB5X3NzaXplX3QgKmNvbnN1bWVkKQorICAgIGludCBraW5kLCBjaGFyICpzdGFydCwgY2hhciAqZW5kLCBQeV9zc2l6ZV90ICpjb25zdW1lZCkKIHsKLSAgICBQeV9zc2l6ZV90IGxlbiA9IGVuZCAtIHN0YXJ0OworICAgIFB5X3NzaXplX3QgbGVuID0gKChjaGFyKillbmQgLSAoY2hhciopc3RhcnQpL2tpbmQ7CiAKICAgICBpZiAodHJhbnNsYXRlZCkgewogICAgICAgICAvKiBOZXdsaW5lcyBhcmUgYWxyZWFkeSB0cmFuc2xhdGVkLCBvbmx5IHNlYXJjaCBmb3IgXG4gKi8KLSAgICAgICAgUHlfVU5JQ09ERSAqcG9zID0gZmluZF9jb250cm9sX2NoYXIoc3RhcnQsIGVuZCwgJ1xuJyk7CisgICAgICAgIGNoYXIgKnBvcyA9IGZpbmRfY29udHJvbF9jaGFyKGtpbmQsIHN0YXJ0LCBlbmQsICdcbicpOwogICAgICAgICBpZiAocG9zICE9IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gcG9zIC0gc3RhcnQgKyAxOworICAgICAgICAgICAgcmV0dXJuIChwb3MgLSBzdGFydCkva2luZCArIDE7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgKmNvbnN1bWVkID0gbGVuOwogICAgICAgICAgICAgcmV0dXJuIC0xOwpAQCAtMTYyMSw2MyArMTY0NCw2NiBAQAogICAgICAgICAvKiBVbml2ZXJzYWwgbmV3bGluZSBzZWFyY2guIEZpbmQgYW55IG9mIFxyLCBcclxuLCBcbgogICAgICAgICAgKiBUaGUgZGVjb2RlciBlbnN1cmVzIHRoYXQgXHJcbiBhcmUgbm90IHNwbGl0IGluIHR3byBwaWVjZXMKICAgICAgICAgICovCi0gICAgICAgIFB5X1VOSUNPREUgKnMgPSBzdGFydDsKKyAgICAgICAgY2hhciAqcyA9IHN0YXJ0OwogICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFIGNoOworICAgICAgICAgICAgUHlfVUNTNCBjaDsKICAgICAgICAgICAgIC8qIEZhc3QgcGF0aCBmb3Igbm9uLWNvbnRyb2wgY2hhcnMuIFRoZSBsb29wIGFsd2F5cyBlbmRzCi0gICAgICAgICAgICAgICBzaW5jZSB0aGUgUHlfVU5JQ09ERSBzdG9yYWdlIGlzIE5VTC10ZXJtaW5hdGVkLiAqLwotICAgICAgICAgICAgd2hpbGUgKCpzID4gJ1xyJykKLSAgICAgICAgICAgICAgICBzKys7CisgICAgICAgICAgICAgICBzaW5jZSB0aGUgVW5pY29kZSBzdHJpbmcgaXMgTlVMLXRlcm1pbmF0ZWQuICovCisgICAgICAgICAgICB3aGlsZSAoUHlVbmljb2RlX1JFQUQoa2luZCwgcywgMCkgPiAnXHInKQorICAgICAgICAgICAgICAgIHMgKz0ga2luZDsKICAgICAgICAgICAgIGlmIChzID49IGVuZCkgewogICAgICAgICAgICAgICAgICpjb25zdW1lZCA9IGxlbjsKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjaCA9ICpzKys7CisgICAgICAgICAgICBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIHMsIDApOworICAgICAgICAgICAgcyArPSBraW5kOwogICAgICAgICAgICAgaWYgKGNoID09ICdcbicpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHMgLSBzdGFydDsKKyAgICAgICAgICAgICAgICByZXR1cm4gKHMgLSBzdGFydCkva2luZDsKICAgICAgICAgICAgIGlmIChjaCA9PSAnXHInKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCpzID09ICdcbicpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBzIC0gc3RhcnQgKyAxOworICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBzLCAwKSA9PSAnXG4nKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHMgLSBzdGFydCkva2luZCArIDE7CiAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcyAtIHN0YXJ0OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHMgLSBzdGFydCkva2luZDsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgLyogTm9uLXVuaXZlcnNhbCBtb2RlLiAqLwotICAgICAgICBQeV9zc2l6ZV90IHJlYWRubF9sZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUocmVhZG5sKTsKLSAgICAgICAgUHlfVU5JQ09ERSAqbmwgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZWFkbmwpOworICAgICAgICBQeV9zc2l6ZV90IHJlYWRubF9sZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChyZWFkbmwpOworICAgICAgICBjaGFyICpubCA9IFB5VW5pY29kZV9EQVRBKHJlYWRubCk7CisgICAgICAgIC8qIEFzc3VtZSB0aGF0IHJlYWRubCBpcyBhbiBBU0NJSSBjaGFyYWN0ZXIuICovCisgICAgICAgIGFzc2VydChQeVVuaWNvZGVfS0lORChyZWFkbmwpID09IFB5VW5pY29kZV8xQllURV9LSU5EKTsKICAgICAgICAgaWYgKHJlYWRubF9sZW4gPT0gMSkgewotICAgICAgICAgICAgUHlfVU5JQ09ERSAqcG9zID0gZmluZF9jb250cm9sX2NoYXIoc3RhcnQsIGVuZCwgbmxbMF0pOworICAgICAgICAgICAgY2hhciAqcG9zID0gZmluZF9jb250cm9sX2NoYXIoa2luZCwgc3RhcnQsIGVuZCwgbmxbMF0pOwogICAgICAgICAgICAgaWYgKHBvcyAhPSBOVUxMKQotICAgICAgICAgICAgICAgIHJldHVybiBwb3MgLSBzdGFydCArIDE7CisgICAgICAgICAgICAgICAgcmV0dXJuIChwb3MgLSBzdGFydCkva2luZCArIDE7CiAgICAgICAgICAgICAqY29uc3VtZWQgPSBsZW47CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFICpzID0gc3RhcnQ7Ci0gICAgICAgICAgICBQeV9VTklDT0RFICplID0gZW5kIC0gcmVhZG5sX2xlbiArIDE7Ci0gICAgICAgICAgICBQeV9VTklDT0RFICpwb3M7CisgICAgICAgICAgICBjaGFyICpzID0gc3RhcnQ7CisgICAgICAgICAgICBjaGFyICplID0gZW5kIC0gKHJlYWRubF9sZW4gLSAxKSpraW5kOworICAgICAgICAgICAgY2hhciAqcG9zOwogICAgICAgICAgICAgaWYgKGUgPCBzKQogICAgICAgICAgICAgICAgIGUgPSBzOwogICAgICAgICAgICAgd2hpbGUgKHMgPCBlKSB7CiAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgIFB5X1VOSUNPREUgKnBvcyA9IGZpbmRfY29udHJvbF9jaGFyKHMsIGVuZCwgbmxbMF0pOworICAgICAgICAgICAgICAgIGNoYXIgKnBvcyA9IGZpbmRfY29udHJvbF9jaGFyKGtpbmQsIHMsIGVuZCwgbmxbMF0pOwogICAgICAgICAgICAgICAgIGlmIChwb3MgPT0gTlVMTCB8fCBwb3MgPj0gZSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8IHJlYWRubF9sZW47IGkrKykgewotICAgICAgICAgICAgICAgICAgICBpZiAocG9zW2ldICE9IG5sW2ldKQorICAgICAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQUQoa2luZCwgcG9zLCBpKSAhPSBubFtpXSkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoaSA9PSByZWFkbmxfbGVuKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zIC0gc3RhcnQgKyByZWFkbmxfbGVuOwotICAgICAgICAgICAgICAgIHMgPSBwb3MgKyAxOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gKHBvcyAtIHN0YXJ0KS9raW5kICsgcmVhZG5sX2xlbjsKKyAgICAgICAgICAgICAgICBzID0gcG9zICsga2luZDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHBvcyA9IGZpbmRfY29udHJvbF9jaGFyKGUsIGVuZCwgbmxbMF0pOworICAgICAgICAgICAgcG9zID0gZmluZF9jb250cm9sX2NoYXIoa2luZCwgZSwgZW5kLCBubFswXSk7CiAgICAgICAgICAgICBpZiAocG9zID09IE5VTEwpCiAgICAgICAgICAgICAgICAgKmNvbnN1bWVkID0gbGVuOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICpjb25zdW1lZCA9IHBvcyAtIHN0YXJ0OworICAgICAgICAgICAgICAgICpjb25zdW1lZCA9IChwb3MgLSBzdGFydCkva2luZDsKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfQogICAgIH0KQEAgLTE2OTgsMTUgKzE3MjQsMTYgQEAKICAgICBjaHVua2VkID0gMDsKIAogICAgIHdoaWxlICgxKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgKnB0cjsKKyAgICAgICAgY2hhciAqcHRyOwogICAgICAgICBQeV9zc2l6ZV90IGxpbmVfbGVuOworICAgICAgICBpbnQga2luZDsKICAgICAgICAgUHlfc3NpemVfdCBjb25zdW1lZCA9IDA7CiAKICAgICAgICAgLyogRmlyc3QsIGdldCBzb21lIGRhdGEgaWYgbmVjZXNzYXJ5ICovCiAgICAgICAgIHJlcyA9IDE7CiAgICAgICAgIHdoaWxlICghc2VsZi0+ZGVjb2RlZF9jaGFycyB8fAotICAgICAgICAgICAgICAgIVB5VW5pY29kZV9HRVRfU0laRShzZWxmLT5kZWNvZGVkX2NoYXJzKSkgewotICAgICAgICAgICAgcmVzID0gdGV4dGlvd3JhcHBlcl9yZWFkX2NodW5rKHNlbGYpOworICAgICAgICAgICAgICAgIVB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYtPmRlY29kZWRfY2hhcnMpKSB7CisgICAgICAgICAgICByZXMgPSB0ZXh0aW93cmFwcGVyX3JlYWRfY2h1bmsoc2VsZiwgMCk7CiAgICAgICAgICAgICBpZiAocmVzIDwgMCkgewogICAgICAgICAgICAgICAgIC8qIE5PVEU6IFB5RXJyX1NldEZyb21FcnJubygpIGNhbGxzIFB5RXJyX0NoZWNrU2lnbmFscygpCiAgICAgICAgICAgICAgICAgICAgd2hlbiBFSU5UUiBvY2N1cnMgc28gd2UgbmVlZG4ndCBkbyBpdCBvdXJzZWx2ZXMuICovCkBAIC0xNzM2LDE4ICsxNzYzLDI0IEBACiAgICAgICAgICAgICBhc3NlcnQoc2VsZi0+ZGVjb2RlZF9jaGFyc191c2VkID09IDApOwogICAgICAgICAgICAgbGluZSA9IFB5VW5pY29kZV9Db25jYXQocmVtYWluaW5nLCBzZWxmLT5kZWNvZGVkX2NoYXJzKTsKICAgICAgICAgICAgIHN0YXJ0ID0gMDsKLSAgICAgICAgICAgIG9mZnNldF90b19idWZmZXIgPSBQeVVuaWNvZGVfR0VUX1NJWkUocmVtYWluaW5nKTsKKyAgICAgICAgICAgIG9mZnNldF90b19idWZmZXIgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChyZW1haW5pbmcpOwogICAgICAgICAgICAgUHlfQ0xFQVIocmVtYWluaW5nKTsKICAgICAgICAgICAgIGlmIChsaW5lID09IE5VTEwpCiAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkobGluZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgfQogCi0gICAgICAgIHB0ciA9IFB5VW5pY29kZV9BU19VTklDT0RFKGxpbmUpOwotICAgICAgICBsaW5lX2xlbiA9IFB5VW5pY29kZV9HRVRfU0laRShsaW5lKTsKKyAgICAgICAgcHRyID0gUHlVbmljb2RlX0RBVEEobGluZSk7CisgICAgICAgIGxpbmVfbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgobGluZSk7CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChsaW5lKTsKIAogICAgICAgICBlbmRwb3MgPSBfUHlJT19maW5kX2xpbmVfZW5kaW5nKAogICAgICAgICAgICAgc2VsZi0+cmVhZHRyYW5zbGF0ZSwgc2VsZi0+cmVhZHVuaXZlcnNhbCwgc2VsZi0+cmVhZG5sLAotICAgICAgICAgICAgcHRyICsgc3RhcnQsIHB0ciArIGxpbmVfbGVuLCAmY29uc3VtZWQpOworICAgICAgICAgICAga2luZCwKKyAgICAgICAgICAgIHB0ciArIGtpbmQgKiBzdGFydCwKKyAgICAgICAgICAgIHB0ciArIGtpbmQgKiBsaW5lX2xlbiwKKyAgICAgICAgICAgICZjb25zdW1lZCk7CiAgICAgICAgIGlmIChlbmRwb3MgPj0gMCkgewogICAgICAgICAgICAgZW5kcG9zICs9IHN0YXJ0OwogICAgICAgICAgICAgaWYgKGxpbWl0ID49IDAgJiYgKGVuZHBvcyAtIHN0YXJ0KSArIGNodW5rZWQgPj0gbGltaXQpCkBAIC0xNzcxLDIxICsxODA0LDIwIEBACiAgICAgICAgICAgICAgICAgaWYgKGNodW5rcyA9PSBOVUxMKQogICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcyA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShwdHIgKyBzdGFydCwgZW5kcG9zIC0gc3RhcnQpOworICAgICAgICAgICAgcyA9IFB5VW5pY29kZV9TdWJzdHJpbmcobGluZSwgc3RhcnQsIGVuZHBvcyk7CiAgICAgICAgICAgICBpZiAocyA9PSBOVUxMKQogICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChjaHVua3MsIHMpIDwgMCkgewogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihzKTsKICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY2h1bmtlZCArPSBQeVVuaWNvZGVfR0VUX1NJWkUocyk7CisgICAgICAgICAgICBjaHVua2VkICs9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHMpOwogICAgICAgICAgICAgUHlfREVDUkVGKHMpOwogICAgICAgICB9CiAgICAgICAgIC8qIFRoZXJlIG1heSBiZSBzb21lIHJlbWFpbmluZyBieXRlcyB3ZSdsbCBoYXZlIHRvIHByZXBlbmQgdG8gdGhlCiAgICAgICAgICAgIG5leHQgY2h1bmsgb2YgZGF0YSAqLwogICAgICAgICBpZiAoZW5kcG9zIDwgbGluZV9sZW4pIHsKLSAgICAgICAgICAgIHJlbWFpbmluZyA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZSgKLSAgICAgICAgICAgICAgICAgICAgcHRyICsgZW5kcG9zLCBsaW5lX2xlbiAtIGVuZHBvcyk7CisgICAgICAgICAgICByZW1haW5pbmcgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKGxpbmUsIGVuZHBvcywgbGluZV9sZW4pOwogICAgICAgICAgICAgaWYgKHJlbWFpbmluZyA9PSBOVUxMKQogICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgIH0KQEAgLTE3OTcsMTkgKzE4MjksMTIgQEAKICAgICBpZiAobGluZSAhPSBOVUxMKSB7CiAgICAgICAgIC8qIE91ciBsaW5lIGVuZHMgaW4gdGhlIGN1cnJlbnQgYnVmZmVyICovCiAgICAgICAgIHNlbGYtPmRlY29kZWRfY2hhcnNfdXNlZCA9IGVuZHBvcyAtIG9mZnNldF90b19idWZmZXI7Ci0gICAgICAgIGlmIChzdGFydCA+IDAgfHwgZW5kcG9zIDwgUHlVbmljb2RlX0dFVF9TSVpFKGxpbmUpKSB7Ci0gICAgICAgICAgICBpZiAoc3RhcnQgPT0gMCAmJiBQeV9SRUZDTlQobGluZSkgPT0gMSkgewotICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUmVzaXplKCZsaW5lLCBlbmRwb3MpIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpzID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKAotICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUobGluZSkgKyBzdGFydCwgZW5kcG9zIC0gc3RhcnQpOwotICAgICAgICAgICAgICAgIFB5X0NMRUFSKGxpbmUpOwotICAgICAgICAgICAgICAgIGlmIChzID09IE5VTEwpCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICAgICAgbGluZSA9IHM7Ci0gICAgICAgICAgICB9CisgICAgICAgIGlmIChzdGFydCA+IDAgfHwgZW5kcG9zIDwgUHlVbmljb2RlX0dFVF9MRU5HVEgobGluZSkpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpzID0gUHlVbmljb2RlX1N1YnN0cmluZyhsaW5lLCBzdGFydCwgZW5kcG9zKTsKKyAgICAgICAgICAgIFB5X0NMRUFSKGxpbmUpOworICAgICAgICAgICAgaWYgKHMgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgbGluZSA9IHM7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKHJlbWFpbmluZyAhPSBOVUxMKSB7CkBAIC0xODIzLDE2ICsxODQ4LDIwIEBACiAgICAgICAgIFB5X0NMRUFSKHJlbWFpbmluZyk7CiAgICAgfQogICAgIGlmIChjaHVua3MgIT0gTlVMTCkgewotICAgICAgICBpZiAobGluZSAhPSBOVUxMICYmIFB5TGlzdF9BcHBlbmQoY2h1bmtzLCBsaW5lKSA8IDApCi0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICBQeV9DTEVBUihsaW5lKTsKKyAgICAgICAgaWYgKGxpbmUgIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQoY2h1bmtzLCBsaW5lKSA8IDApCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsaW5lKTsKKyAgICAgICAgfQogICAgICAgICBsaW5lID0gUHlVbmljb2RlX0pvaW4oX1B5SU9fZW1wdHlfc3RyLCBjaHVua3MpOwogICAgICAgICBpZiAobGluZSA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgUHlfREVDUkVGKGNodW5rcyk7CisgICAgICAgIFB5X0NMRUFSKGNodW5rcyk7CiAgICAgfQotICAgIGlmIChsaW5lID09IE5VTEwpCi0gICAgICAgIGxpbmUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgMCk7CisgICAgaWYgKGxpbmUgPT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYoX1B5SU9fZW1wdHlfc3RyKTsKKyAgICAgICAgbGluZSA9IF9QeUlPX2VtcHR5X3N0cjsKKyAgICB9CiAKICAgICByZXR1cm4gbGluZTsKIApAQCAtMTk1NSw4ICsxOTg0LDggQEAKICAgICBpZiAoY29va2llLT5zdGFydF9wb3MgPT0gMCAmJiBjb29raWUtPmRlY19mbGFncyA9PSAwKQogICAgICAgICByZXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyhzZWxmLT5kZWNvZGVyLCBfUHlJT19zdHJfcmVzZXQsIE5VTEwpOwogICAgIGVsc2UKLSAgICAgICAgcmVzID0gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLT5kZWNvZGVyLCAic2V0c3RhdGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoKHlpKSkiLCAiIiwgY29va2llLT5kZWNfZmxhZ3MpOworICAgICAgICByZXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHNlbGYtPmRlY29kZXIsICZQeUlkX3NldHN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoKHlpKSkiLCAiIiwgY29va2llLT5kZWNfZmxhZ3MpOwogICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIFB5X0RFQ1JFRihyZXMpOwpAQCAtMjAyMCwxMyArMjA0OSwxMiBAQAogICAgICAgICAgKiBzeW5jIHRoZSB1bmRlcmx5aW5nIGJ1ZmZlciB3aXRoIHRoZSBjdXJyZW50IHBvc2l0aW9uLgogICAgICAgICAgKi8KICAgICAgICAgUHlfREVDUkVGKGNvb2tpZU9iaik7Ci0gICAgICAgIGNvb2tpZU9iaiA9IFB5T2JqZWN0X0NhbGxNZXRob2QoKFB5T2JqZWN0ICopc2VsZiwgInRlbGwiLCBOVUxMKTsKKyAgICAgICAgY29va2llT2JqID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgoUHlPYmplY3QgKilzZWxmLCAmUHlJZF90ZWxsLCBOVUxMKTsKICAgICAgICAgaWYgKGNvb2tpZU9iaiA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBmYWlsOwogICAgIH0KICAgICBlbHNlIGlmICh3aGVuY2UgPT0gMikgewogICAgICAgICAvKiBzZWVrIHJlbGF0aXZlIHRvIGVuZCBvZiBmaWxlICovCi0KICAgICAgICAgY21wID0gUHlPYmplY3RfUmljaENvbXBhcmVCb29sKGNvb2tpZU9iaiwgX1B5SU9femVybywgUHlfRVEpOwogICAgICAgICBpZiAoY21wIDwgMCkKICAgICAgICAgICAgIGdvdG8gZmFpbDsKQEAgLTIwMzYsNyArMjA2NCw3IEBACiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIH0KIAotICAgICAgICByZXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKChQeU9iamVjdCAqKXNlbGYsICJmbHVzaCIsIE5VTEwpOworICAgICAgICByZXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKChQeU9iamVjdCAqKXNlbGYsICZQeUlkX2ZsdXNoLCBOVUxMKTsKICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBmYWlsOwogICAgICAgICBQeV9ERUNSRUYocmVzKTsKQEAgLTIwNDQsMTMgKzIwNzIsMTMgQEAKICAgICAgICAgdGV4dGlvd3JhcHBlcl9zZXRfZGVjb2RlZF9jaGFycyhzZWxmLCBOVUxMKTsKICAgICAgICAgUHlfQ0xFQVIoc2VsZi0+c25hcHNob3QpOwogICAgICAgICBpZiAoc2VsZi0+ZGVjb2RlcikgewotICAgICAgICAgICAgcmVzID0gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLT5kZWNvZGVyLCAicmVzZXQiLCBOVUxMKTsKKyAgICAgICAgICAgIHJlcyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoc2VsZi0+ZGVjb2RlciwgJlB5SWRfcmVzZXQsIE5VTEwpOwogICAgICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXMpOwogICAgICAgICB9CiAKLSAgICAgICAgcmVzID0gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLT5idWZmZXIsICJzZWVrIiwgImlpIiwgMCwgMik7CisgICAgICAgIHJlcyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoc2VsZi0+YnVmZmVyLCAmUHlJZF9zZWVrLCAiaWkiLCAwLCAyKTsKICAgICAgICAgUHlfWERFQ1JFRihjb29raWVPYmopOwogICAgICAgICByZXR1cm4gcmVzOwogICAgIH0KQEAgLTIxMDMsOCArMjEzMSw4IEBACiAKICAgICBpZiAoY29va2llLmNoYXJzX3RvX3NraXApIHsKICAgICAgICAgLyogSnVzdCBsaWtlIF9yZWFkX2NodW5rLCBmZWVkIHRoZSBkZWNvZGVyIGFuZCBzYXZlIGEgc25hcHNob3QuICovCi0gICAgICAgIFB5T2JqZWN0ICppbnB1dF9jaHVuayA9IFB5T2JqZWN0X0NhbGxNZXRob2QoCi0gICAgICAgICAgICBzZWxmLT5idWZmZXIsICJyZWFkIiwgImkiLCBjb29raWUuYnl0ZXNfdG9fZmVlZCk7CisgICAgICAgIFB5T2JqZWN0ICppbnB1dF9jaHVuayA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoCisgICAgICAgICAgICBzZWxmLT5idWZmZXIsICZQeUlkX3JlYWQsICJpIiwgY29va2llLmJ5dGVzX3RvX2ZlZWQpOwogICAgICAgICBQeU9iamVjdCAqZGVjb2RlZDsKIAogICAgICAgICBpZiAoaW5wdXRfY2h1bmsgPT0gTlVMTCkKQEAgLTIxMTgsMTYgKzIxNDYsMjAgQEAKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgfQogCi0gICAgICAgIGRlY29kZWQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHNlbGYtPmRlY29kZXIsICJkZWNvZGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiT2kiLCBpbnB1dF9jaHVuaywgKGludCljb29raWUubmVlZF9lb2YpOworICAgICAgICBkZWNvZGVkID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLT5kZWNvZGVyLCAmUHlJZF9kZWNvZGUsCisgICAgICAgICAgICAiT2kiLCBpbnB1dF9jaHVuaywgKGludCljb29raWUubmVlZF9lb2YpOwogCiAgICAgICAgIGlmIChkZWNvZGVkID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoZGVjb2RlZCkgPT0gLTEpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihkZWNvZGVkKTsKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQogCiAgICAgICAgIHRleHRpb3dyYXBwZXJfc2V0X2RlY29kZWRfY2hhcnMoc2VsZiwgZGVjb2RlZCk7CiAKICAgICAgICAgLyogU2tpcCBjaGFyc190b19za2lwIG9mIHRoZSBkZWNvZGVkIGNoYXJhY3RlcnMuICovCi0gICAgICAgIGlmIChQeVVuaWNvZGVfR2V0U2l6ZShzZWxmLT5kZWNvZGVkX2NoYXJzKSA8IGNvb2tpZS5jaGFyc190b19za2lwKSB7CisgICAgICAgIGlmIChQeVVuaWNvZGVfR2V0TGVuZ3RoKHNlbGYtPmRlY29kZWRfY2hhcnMpIDwgY29va2llLmNoYXJzX3RvX3NraXApIHsKICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JT0Vycm9yLCAiY2FuJ3QgcmVzdG9yZSBsb2dpY2FsIGZpbGUgcG9zaXRpb24iKTsKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgfQpAQCAtMjE1OSw4ICsyMTkxLDEyIEBACiAgICAgY29va2llX3R5cGUgY29va2llID0gezAsMCwwLDAsMH07CiAgICAgUHlPYmplY3QgKm5leHRfaW5wdXQ7CiAgICAgUHlfc3NpemVfdCBjaGFyc190b19za2lwLCBjaGFyc19kZWNvZGVkOworICAgIFB5X3NzaXplX3Qgc2tpcF9ieXRlcywgc2tpcF9iYWNrOwogICAgIFB5T2JqZWN0ICpzYXZlZF9zdGF0ZSA9IE5VTEw7CiAgICAgY2hhciAqaW5wdXQsICppbnB1dF9lbmQ7CisgICAgY2hhciAqZGVjX2J1ZmZlcjsKKyAgICBQeV9zc2l6ZV90IGRlY19idWZmZXJfbGVuOworICAgIGludCBkZWNfZmxhZ3M7CiAKICAgICBDSEVDS19JTklUSUFMSVpFRChzZWxmKTsKICAgICBDSEVDS19DTE9TRUQoc2VsZik7CkBAIC0yMTc3LDE3ICsyMjEzLDE3IEBACiAKICAgICBpZiAoX3RleHRpb3dyYXBwZXJfd3JpdGVmbHVzaChzZWxmKSA8IDApCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxNZXRob2QoKFB5T2JqZWN0ICopc2VsZiwgImZsdXNoIiwgTlVMTCk7CisgICAgcmVzID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgoUHlPYmplY3QgKilzZWxmLCAmUHlJZF9mbHVzaCwgTlVMTCk7CiAgICAgaWYgKHJlcyA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWw7CiAgICAgUHlfREVDUkVGKHJlcyk7CiAKLSAgICBwb3NvYmogPSBQeU9iamVjdF9DYWxsTWV0aG9kKHNlbGYtPmJ1ZmZlciwgInRlbGwiLCBOVUxMKTsKKyAgICBwb3NvYmogPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHNlbGYtPmJ1ZmZlciwgJlB5SWRfdGVsbCwgTlVMTCk7CiAgICAgaWYgKHBvc29iaiA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWw7CiAKICAgICBpZiAoc2VsZi0+ZGVjb2RlciA9PSBOVUxMIHx8IHNlbGYtPnNuYXBzaG90ID09IE5VTEwpIHsKLSAgICAgICAgYXNzZXJ0IChzZWxmLT5kZWNvZGVkX2NoYXJzID09IE5VTEwgfHwgUHlVbmljb2RlX0dldFNpemUoc2VsZi0+ZGVjb2RlZF9jaGFycykgPT0gMCk7CisgICAgICAgIGFzc2VydCAoc2VsZi0+ZGVjb2RlZF9jaGFycyA9PSBOVUxMIHx8IFB5VW5pY29kZV9HZXRMZW5ndGgoc2VsZi0+ZGVjb2RlZF9jaGFycykgPT0gMCk7CiAgICAgICAgIHJldHVybiBwb3NvYmo7CiAgICAgfQogCkBAIC0yMTk2LDYgKzIyMzIsNyBAQAogI2Vsc2UKICAgICBjb29raWUuc3RhcnRfcG9zID0gUHlMb25nX0FzTG9uZyhwb3NvYmopOwogI2VuZGlmCisgICAgUHlfREVDUkVGKHBvc29iaik7CiAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgIGdvdG8gZmFpbDsKIApAQCAtMjIxMCw1NyArMjI0Nyw5OSBAQAogICAgIC8qIEhvdyBtYW55IGRlY29kZWQgY2hhcmFjdGVycyBoYXZlIGJlZW4gdXNlZCB1cCBzaW5jZSB0aGUgc25hcHNob3Q/ICovCiAgICAgaWYgKHNlbGYtPmRlY29kZWRfY2hhcnNfdXNlZCA9PSAwKSAgewogICAgICAgICAvKiBXZSBoYXZlbid0IG1vdmVkIGZyb20gdGhlIHNuYXBzaG90IHBvaW50LiAqLwotICAgICAgICBQeV9ERUNSRUYocG9zb2JqKTsKICAgICAgICAgcmV0dXJuIHRleHRpb3dyYXBwZXJfYnVpbGRfY29va2llKCZjb29raWUpOwogICAgIH0KIAogICAgIGNoYXJzX3RvX3NraXAgPSBzZWxmLT5kZWNvZGVkX2NoYXJzX3VzZWQ7CiAKLSAgICAvKiBTdGFydGluZyBmcm9tIHRoZSBzbmFwc2hvdCBwb3NpdGlvbiwgd2Ugd2lsbCB3YWxrIHRoZSBkZWNvZGVyCi0gICAgICogZm9yd2FyZCB1bnRpbCBpdCBnaXZlcyB1cyBlbm91Z2ggZGVjb2RlZCBjaGFyYWN0ZXJzLgotICAgICAqLworICAgIC8qIERlY29kZXIgc3RhdGUgd2lsbCBiZSByZXN0b3JlZCBhdCB0aGUgZW5kICovCiAgICAgc2F2ZWRfc3RhdGUgPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyhzZWxmLT5kZWNvZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1B5SU9fc3RyX2dldHN0YXRlLCBOVUxMKTsKICAgICBpZiAoc2F2ZWRfc3RhdGUgPT0gTlVMTCkKICAgICAgICAgZ290byBmYWlsOwogCi0gICAgLyogTm90ZSBvdXIgaW5pdGlhbCBzdGFydCBwb2ludC4gKi8KLSAgICBpZiAoX3RleHRpb3dyYXBwZXJfZGVjb2Rlcl9zZXRzdGF0ZShzZWxmLCAmY29va2llKSA8IDApCi0gICAgICAgIGdvdG8gZmFpbDsKKyNkZWZpbmUgREVDT0RFUl9HRVRTVEFURSgpIGRvIHsgXAorICAgICAgICBQeU9iamVjdCAqX3N0YXRlID0gUHlPYmplY3RfQ2FsbE1ldGhvZE9iakFyZ3Moc2VsZi0+ZGVjb2RlciwgXAorICAgICAgICAgICAgX1B5SU9fc3RyX2dldHN0YXRlLCBOVUxMKTsgXAorICAgICAgICBpZiAoX3N0YXRlID09IE5VTEwpIFwKKyAgICAgICAgICAgIGdvdG8gZmFpbDsgXAorICAgICAgICBpZiAoIVB5QXJnX1BhcnNlKF9zdGF0ZSwgIih5I2kpIiwgJmRlY19idWZmZXIsICZkZWNfYnVmZmVyX2xlbiwgJmRlY19mbGFncykpIHsgXAorICAgICAgICAgICAgUHlfREVDUkVGKF9zdGF0ZSk7IFwKKyAgICAgICAgICAgIGdvdG8gZmFpbDsgXAorICAgICAgICB9IFwKKyAgICAgICAgUHlfREVDUkVGKF9zdGF0ZSk7IFwKKyAgICB9IHdoaWxlICgwKQogCi0gICAgLyogRmVlZCB0aGUgZGVjb2RlciBvbmUgYnl0ZSBhdCBhIHRpbWUuICBBcyB3ZSBnbywgbm90ZSB0aGUKLSAgICAgKiBuZWFyZXN0ICJzYWZlIHN0YXJ0IHBvaW50IiBiZWZvcmUgdGhlIGN1cnJlbnQgbG9jYXRpb24KLSAgICAgKiAoYSBwb2ludCB3aGVyZSB0aGUgZGVjb2RlciBoYXMgbm90aGluZyBidWZmZXJlZCwgc28gc2VlaygpCisgICAgLyogVE9ETzogcmVwbGFjZSBhc3NlcnQgd2l0aCBleGNlcHRpb24gKi8KKyNkZWZpbmUgREVDT0RFUl9ERUNPREUoc3RhcnQsIGxlbiwgcmVzKSBkbyB7IFwKKyAgICAgICAgUHlPYmplY3QgKl9kZWNvZGVkID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCggXAorICAgICAgICAgICAgc2VsZi0+ZGVjb2RlciwgJlB5SWRfZGVjb2RlLCAieSMiLCBzdGFydCwgbGVuKTsgXAorICAgICAgICBpZiAoX2RlY29kZWQgPT0gTlVMTCkgXAorICAgICAgICAgICAgZ290byBmYWlsOyBcCisgICAgICAgIGFzc2VydCAoUHlVbmljb2RlX0NoZWNrKF9kZWNvZGVkKSk7IFwKKyAgICAgICAgcmVzID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoX2RlY29kZWQpOyBcCisgICAgICAgIFB5X0RFQ1JFRihfZGVjb2RlZCk7IFwKKyAgICB9IHdoaWxlICgwKQorCisgICAgLyogRmFzdCBzZWFyY2ggZm9yIGFuIGFjY2VwdGFibGUgc3RhcnQgcG9pbnQsIGNsb3NlIHRvIG91cgorICAgICAgIGN1cnJlbnQgcG9zICovCisgICAgc2tpcF9ieXRlcyA9IChQeV9zc2l6ZV90KSAoc2VsZi0+YjJjcmF0aW8gKiBjaGFyc190b19za2lwKTsKKyAgICBza2lwX2JhY2sgPSAxOworICAgIGFzc2VydChza2lwX2JhY2sgPD0gUHlCeXRlc19HRVRfU0laRShuZXh0X2lucHV0KSk7CisgICAgaW5wdXQgPSBQeUJ5dGVzX0FTX1NUUklORyhuZXh0X2lucHV0KTsKKyAgICB3aGlsZSAoc2tpcF9ieXRlcyA+IDApIHsKKyAgICAgICAgLyogRGVjb2RlIHVwIHRvIHRlbXB0YXRpdmUgc3RhcnQgcG9pbnQgKi8KKyAgICAgICAgaWYgKF90ZXh0aW93cmFwcGVyX2RlY29kZXJfc2V0c3RhdGUoc2VsZiwgJmNvb2tpZSkgPCAwKQorICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICBERUNPREVSX0RFQ09ERShpbnB1dCwgc2tpcF9ieXRlcywgY2hhcnNfZGVjb2RlZCk7CisgICAgICAgIGlmIChjaGFyc19kZWNvZGVkIDw9IGNoYXJzX3RvX3NraXApIHsKKyAgICAgICAgICAgIERFQ09ERVJfR0VUU1RBVEUoKTsKKyAgICAgICAgICAgIGlmIChkZWNfYnVmZmVyX2xlbiA9PSAwKSB7CisgICAgICAgICAgICAgICAgLyogQmVmb3JlIHBvcyBhbmQgbm8gYnl0ZXMgYnVmZmVyZWQgaW4gZGVjb2RlciA9PiBPSyAqLworICAgICAgICAgICAgICAgIGNvb2tpZS5kZWNfZmxhZ3MgPSBkZWNfZmxhZ3M7CisgICAgICAgICAgICAgICAgY2hhcnNfdG9fc2tpcCAtPSBjaGFyc19kZWNvZGVkOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogU2tpcCBiYWNrIGJ5IGJ1ZmZlcmVkIGFtb3VudCBhbmQgcmVzZXQgaGV1cmlzdGljICovCisgICAgICAgICAgICBza2lwX2J5dGVzIC09IGRlY19idWZmZXJfbGVuOworICAgICAgICAgICAgc2tpcF9iYWNrID0gMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIC8qIFdlJ3JlIHRvbyBmYXIgYWhlYWQsIHNraXAgYmFjayBhIGJpdCAqLworICAgICAgICAgICAgc2tpcF9ieXRlcyAtPSBza2lwX2JhY2s7CisgICAgICAgICAgICBza2lwX2JhY2sgKj0gMjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoc2tpcF9ieXRlcyA8PSAwKSB7CisgICAgICAgIHNraXBfYnl0ZXMgPSAwOworICAgICAgICBpZiAoX3RleHRpb3dyYXBwZXJfZGVjb2Rlcl9zZXRzdGF0ZShzZWxmLCAmY29va2llKSA8IDApCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLyogTm90ZSBvdXIgaW5pdGlhbCBzdGFydCBwb2ludC4gKi8KKyAgICBjb29raWUuc3RhcnRfcG9zICs9IHNraXBfYnl0ZXM7CisgICAgY29va2llLmNoYXJzX3RvX3NraXAgPSBjaGFyc190b19za2lwOworICAgIGlmIChjaGFyc190b19za2lwID09IDApCisgICAgICAgIGdvdG8gZmluYWxseTsKKworICAgIC8qIFdlIHNob3VsZCBiZSBjbG9zZSB0byB0aGUgZGVzaXJlZCBwb3NpdGlvbi4gIE5vdyBmZWVkIHRoZSBkZWNvZGVyIG9uZQorICAgICAqIGJ5dGUgYXQgYSB0aW1lIHVudGlsIHdlIHJlYWNoIHRoZSBgY2hhcnNfdG9fc2tpcGAgdGFyZ2V0LgorICAgICAqIEFzIHdlIGdvLCBub3RlIHRoZSBuZWFyZXN0ICJzYWZlIHN0YXJ0IHBvaW50IiBiZWZvcmUgdGhlIGN1cnJlbnQKKyAgICAgKiBsb2NhdGlvbiAoYSBwb2ludCB3aGVyZSB0aGUgZGVjb2RlciBoYXMgbm90aGluZyBidWZmZXJlZCwgc28gc2VlaygpCiAgICAgICogY2FuIHNhZmVseSBzdGFydCBmcm9tIHRoZXJlIGFuZCBhZHZhbmNlIHRvIHRoaXMgbG9jYXRpb24pLgogICAgICAqLwogICAgIGNoYXJzX2RlY29kZWQgPSAwOwogICAgIGlucHV0ID0gUHlCeXRlc19BU19TVFJJTkcobmV4dF9pbnB1dCk7CiAgICAgaW5wdXRfZW5kID0gaW5wdXQgKyBQeUJ5dGVzX0dFVF9TSVpFKG5leHRfaW5wdXQpOworICAgIGlucHV0ICs9IHNraXBfYnl0ZXM7CiAgICAgd2hpbGUgKGlucHV0IDwgaW5wdXRfZW5kKSB7Ci0gICAgICAgIFB5T2JqZWN0ICpzdGF0ZTsKLSAgICAgICAgY2hhciAqZGVjX2J1ZmZlcjsKLSAgICAgICAgUHlfc3NpemVfdCBkZWNfYnVmZmVyX2xlbjsKLSAgICAgICAgaW50IGRlY19mbGFnczsKKyAgICAgICAgUHlfc3NpemVfdCBuOwogCi0gICAgICAgIFB5T2JqZWN0ICpkZWNvZGVkID0gUHlPYmplY3RfQ2FsbE1ldGhvZCgKLSAgICAgICAgICAgIHNlbGYtPmRlY29kZXIsICJkZWNvZGUiLCAieSMiLCBpbnB1dCwgMSk7Ci0gICAgICAgIGlmIChkZWNvZGVkID09IE5VTEwpCi0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIGFzc2VydCAoUHlVbmljb2RlX0NoZWNrKGRlY29kZWQpKTsKLSAgICAgICAgY2hhcnNfZGVjb2RlZCArPSBQeVVuaWNvZGVfR0VUX1NJWkUoZGVjb2RlZCk7Ci0gICAgICAgIFB5X0RFQ1JFRihkZWNvZGVkKTsKLQorICAgICAgICBERUNPREVSX0RFQ09ERShpbnB1dCwgMSwgbik7CisgICAgICAgIC8qIFdlIGdvdCBuIGNoYXJzIGZvciAxIGJ5dGUgKi8KKyAgICAgICAgY2hhcnNfZGVjb2RlZCArPSBuOwogICAgICAgICBjb29raWUuYnl0ZXNfdG9fZmVlZCArPSAxOwotCi0gICAgICAgIHN0YXRlID0gUHlPYmplY3RfQ2FsbE1ldGhvZE9iakFyZ3Moc2VsZi0+ZGVjb2RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfUHlJT19zdHJfZ2V0c3RhdGUsIE5VTEwpOwotICAgICAgICBpZiAoc3RhdGUgPT0gTlVMTCkKLSAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgaWYgKCFQeUFyZ19QYXJzZShzdGF0ZSwgIih5I2kpIiwgJmRlY19idWZmZXIsICZkZWNfYnVmZmVyX2xlbiwgJmRlY19mbGFncykpIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihzdGF0ZSk7Ci0gICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgIH0KLSAgICAgICAgUHlfREVDUkVGKHN0YXRlKTsKKyAgICAgICAgREVDT0RFUl9HRVRTVEFURSgpOwogCiAgICAgICAgIGlmIChkZWNfYnVmZmVyX2xlbiA9PSAwICYmIGNoYXJzX2RlY29kZWQgPD0gY2hhcnNfdG9fc2tpcCkgewogICAgICAgICAgICAgLyogRGVjb2RlciBidWZmZXIgaXMgZW1wdHksIHNvIHRoaXMgaXMgYSBzYWZlIHN0YXJ0IHBvaW50LiAqLwpAQCAtMjI3NiwxMiArMjM1NSwxMiBAQAogICAgIH0KICAgICBpZiAoaW5wdXQgPT0gaW5wdXRfZW5kKSB7CiAgICAgICAgIC8qIFdlIGRpZG4ndCBnZXQgZW5vdWdoIGRlY29kZWQgZGF0YTsgc2lnbmFsIEVPRiB0byBnZXQgbW9yZS4gKi8KLSAgICAgICAgUHlPYmplY3QgKmRlY29kZWQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKAotICAgICAgICAgICAgc2VsZi0+ZGVjb2RlciwgImRlY29kZSIsICJ5aSIsICIiLCAvKiBmaW5hbCA9ICovIDEpOworICAgICAgICBQeU9iamVjdCAqZGVjb2RlZCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoCisgICAgICAgICAgICBzZWxmLT5kZWNvZGVyLCAmUHlJZF9kZWNvZGUsICJ5aSIsICIiLCAvKiBmaW5hbCA9ICovIDEpOwogICAgICAgICBpZiAoZGVjb2RlZCA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBmYWlsOwogICAgICAgICBhc3NlcnQgKFB5VW5pY29kZV9DaGVjayhkZWNvZGVkKSk7Ci0gICAgICAgIGNoYXJzX2RlY29kZWQgKz0gUHlVbmljb2RlX0dFVF9TSVpFKGRlY29kZWQpOworICAgICAgICBjaGFyc19kZWNvZGVkICs9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGRlY29kZWQpOwogICAgICAgICBQeV9ERUNSRUYoZGVjb2RlZCk7CiAgICAgICAgIGNvb2tpZS5uZWVkX2VvZiA9IDE7CiAKQEAgLTIyOTIsOSArMjM3MSw4IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvKiBmaW5hbGx5ICovCi0gICAgUHlfWERFQ1JFRihwb3NvYmopOwotICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxNZXRob2Qoc2VsZi0+ZGVjb2RlciwgInNldHN0YXRlIiwgIihPKSIsIHNhdmVkX3N0YXRlKTsKK2ZpbmFsbHk6CisgICAgcmVzID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLT5kZWNvZGVyLCAmUHlJZF9zZXRzdGF0ZSwgIihPKSIsIHNhdmVkX3N0YXRlKTsKICAgICBQeV9ERUNSRUYoc2F2ZWRfc3RhdGUpOwogICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0yMzA0LDEzICsyMzgyLDEyIEBACiAgICAgY29va2llLmNoYXJzX3RvX3NraXAgPSBQeV9TQUZFX0RPV05DQVNUKGNoYXJzX3RvX3NraXAsIFB5X3NzaXplX3QsIGludCk7CiAgICAgcmV0dXJuIHRleHRpb3dyYXBwZXJfYnVpbGRfY29va2llKCZjb29raWUpOwogCi0gIGZhaWw6Ci0gICAgUHlfWERFQ1JFRihwb3NvYmopOworZmFpbDoKICAgICBpZiAoc2F2ZWRfc3RhdGUpIHsKICAgICAgICAgUHlPYmplY3QgKnR5cGUsICp2YWx1ZSwgKnRyYWNlYmFjazsKICAgICAgICAgUHlFcnJfRmV0Y2goJnR5cGUsICZ2YWx1ZSwgJnRyYWNlYmFjayk7CiAKLSAgICAgICAgcmVzID0gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLT5kZWNvZGVyLCAic2V0c3RhdGUiLCAiKE8pIiwgc2F2ZWRfc3RhdGUpOworICAgICAgICByZXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHNlbGYtPmRlY29kZXIsICZQeUlkX3NldHN0YXRlLCAiKE8pIiwgc2F2ZWRfc3RhdGUpOwogICAgICAgICBQeV9ERUNSRUYoc2F2ZWRfc3RhdGUpOwogICAgICAgICBpZiAocmVzID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTIzNTAsNyArMjQyNyw3IEBACiAgICAgcmVzID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIjxfaW8uVGV4dElPV3JhcHBlciIpOwogICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgbmFtZW9iaiA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoKFB5T2JqZWN0ICopIHNlbGYsICJuYW1lIik7CisgICAgbmFtZW9iaiA9IF9QeU9iamVjdF9HZXRBdHRySWQoKFB5T2JqZWN0ICopIHNlbGYsICZQeUlkX25hbWUpOwogICAgIGlmIChuYW1lb2JqID09IE5VTEwpIHsKICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKQEAgLTIzNjYsNyArMjQ0Myw3IEBACiAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBtb2Rlb2JqID0gUHlPYmplY3RfR2V0QXR0clN0cmluZygoUHlPYmplY3QgKikgc2VsZiwgIm1vZGUiKTsKKyAgICBtb2Rlb2JqID0gX1B5T2JqZWN0X0dldEF0dHJJZCgoUHlPYmplY3QgKikgc2VsZiwgJlB5SWRfbW9kZSk7CiAgICAgaWYgKG1vZGVvYmogPT0gTlVMTCkgewogICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19BdHRyaWJ1dGVFcnJvcikpCiAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwpAQCAtMjM5OCwzNSArMjQ3NSwzNSBAQAogdGV4dGlvd3JhcHBlcl9maWxlbm8odGV4dGlvICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBDSEVDS19JTklUSUFMSVpFRChzZWxmKTsKLSAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLT5idWZmZXIsICJmaWxlbm8iLCBOVUxMKTsKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLT5idWZmZXIsICZQeUlkX2ZpbGVubywgTlVMTCk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiB0ZXh0aW93cmFwcGVyX3NlZWthYmxlKHRleHRpbyAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgQ0hFQ0tfSU5JVElBTElaRUQoc2VsZik7Ci0gICAgcmV0dXJuIFB5T2JqZWN0X0NhbGxNZXRob2Qoc2VsZi0+YnVmZmVyLCAic2Vla2FibGUiLCBOVUxMKTsKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLT5idWZmZXIsICZQeUlkX3NlZWthYmxlLCBOVUxMKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKIHRleHRpb3dyYXBwZXJfcmVhZGFibGUodGV4dGlvICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBDSEVDS19JTklUSUFMSVpFRChzZWxmKTsKLSAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLT5idWZmZXIsICJyZWFkYWJsZSIsIE5VTEwpOworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHNlbGYtPmJ1ZmZlciwgJlB5SWRfcmVhZGFibGUsIE5VTEwpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogdGV4dGlvd3JhcHBlcl93cml0YWJsZSh0ZXh0aW8gKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIENIRUNLX0lOSVRJQUxJWkVEKHNlbGYpOwotICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKHNlbGYtPmJ1ZmZlciwgIndyaXRhYmxlIiwgTlVMTCk7CisgICAgcmV0dXJuIF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoc2VsZi0+YnVmZmVyLCAmUHlJZF93cml0YWJsZSwgTlVMTCk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiB0ZXh0aW93cmFwcGVyX2lzYXR0eSh0ZXh0aW8gKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIENIRUNLX0lOSVRJQUxJWkVEKHNlbGYpOwotICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKHNlbGYtPmJ1ZmZlciwgImlzYXR0eSIsIE5VTEwpOworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHNlbGYtPmJ1ZmZlciwgJlB5SWRfaXNhdHR5LCBOVUxMKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTI0NDUsNyArMjUyMiw3IEBACiAgICAgc2VsZi0+dGVsbGluZyA9IHNlbGYtPnNlZWthYmxlOwogICAgIGlmIChfdGV4dGlvd3JhcHBlcl93cml0ZWZsdXNoKHNlbGYpIDwgMCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcmV0dXJuIFB5T2JqZWN0X0NhbGxNZXRob2Qoc2VsZi0+YnVmZmVyLCAiZmx1c2giLCBOVUxMKTsKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLT5idWZmZXIsICZQeUlkX2ZsdXNoLCBOVUxMKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTI0NjgsMjAgKzI1NDUsMjAgQEAKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIGlmIChzZWxmLT5kZWFsbG9jYXRpbmcpIHsKLSAgICAgICAgICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxNZXRob2Qoc2VsZi0+YnVmZmVyLCAiX2RlYWxsb2Nfd2FybiIsICJPIiwgc2VsZik7CisgICAgICAgICAgICByZXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHNlbGYtPmJ1ZmZlciwgJlB5SWRfX2RlYWxsb2Nfd2FybiwgIk8iLCBzZWxmKTsKICAgICAgICAgICAgIGlmIChyZXMpCiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHJlcyk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgfQotICAgICAgICByZXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKChQeU9iamVjdCAqKXNlbGYsICJmbHVzaCIsIE5VTEwpOworICAgICAgICByZXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKChQeU9iamVjdCAqKXNlbGYsICZQeUlkX2ZsdXNoLCBOVUxMKTsKICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKSB7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBQeV9ERUNSRUYocmVzKTsKIAotICAgICAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLT5idWZmZXIsICJjbG9zZSIsIE5VTEwpOworICAgICAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLT5idWZmZXIsICZQeUlkX2Nsb3NlLCBOVUxMKTsKICAgICB9CiB9CiAKQEAgLTI1MDksMTAgKzI1ODYsMTAgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChsaW5lID09IE5VTEwpCisgICAgaWYgKGxpbmUgPT0gTlVMTCB8fCBQeVVuaWNvZGVfUkVBRFkobGluZSkgPT0gLTEpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRShsaW5lKSA9PSAwKSB7CisgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKGxpbmUpID09IDApIHsKICAgICAgICAgLyogUmVhY2hlZCBFT0Ygb3Igd291bGQgaGF2ZSBibG9ja2VkICovCiAgICAgICAgIFB5X0RFQ1JFRihsaW5lKTsKICAgICAgICAgUHlfQ0xFQVIoc2VsZi0+c25hcHNob3QpOwpAQCAtMjUyNyw3ICsyNjA0LDcgQEAKIHRleHRpb3dyYXBwZXJfbmFtZV9nZXQodGV4dGlvICpzZWxmLCB2b2lkICpjb250ZXh0KQogewogICAgIENIRUNLX0lOSVRJQUxJWkVEKHNlbGYpOwotICAgIHJldHVybiBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHNlbGYtPmJ1ZmZlciwgIm5hbWUiKTsKKyAgICByZXR1cm4gX1B5T2JqZWN0X0dldEF0dHJJZChzZWxmLT5idWZmZXIsICZQeUlkX25hbWUpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fanNvbi5jIGIvTW9kdWxlcy9fanNvbi5jCmluZGV4IDJhNzFiOWYuLmZiOGJkNTkgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2pzb24uYworKysgYi9Nb2R1bGVzL19qc29uLmMKQEAgLTEsNSArMSw3IEBACiAjaW5jbHVkZSAiUHl0aG9uLmgiCiAjaW5jbHVkZSAic3RydWN0bWVtYmVyLmgiCisjaW5jbHVkZSAiYWNjdS5oIgorCiAjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAyMDYwMDAwICYmICFkZWZpbmVkKFB5X1RZUEUpCiAjZGVmaW5lIFB5X1RZUEUob2IpICAgICAoKChQeU9iamVjdCopKG9iKSktPm9iX3R5cGUpCiAjZW5kaWYKQEAgLTc2LDYgKzc4LDIxIEBACiB9OwogCiBzdGF0aWMgUHlPYmplY3QgKgoram9pbl9saXN0X3VuaWNvZGUoUHlPYmplY3QgKmxzdCkKK3sKKyAgICAvKiByZXR1cm4gdScnLmpvaW4obHN0KSAqLworICAgIHN0YXRpYyBQeU9iamVjdCAqc2VwID0gTlVMTDsKKyAgICBpZiAoc2VwID09IE5VTEwpIHsKKyAgICAgICAgc2VwID0gUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKCIiLCAwKTsKKyAgICAgICAgaWYgKHNlcCA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeVVuaWNvZGVfSm9pbihzZXAsIGxzdCk7Cit9CisKKy8qIEZvcndhcmQgZGVjbHMgKi8KKworc3RhdGljIFB5T2JqZWN0ICoKIGFzY2lpX2VzY2FwZV91bmljb2RlKFB5T2JqZWN0ICpweXN0cik7CiBzdGF0aWMgUHlPYmplY3QgKgogcHlfZW5jb2RlX2Jhc2VzdHJpbmdfYXNjaWkoUHlPYmplY3QqIHNlbGYgVU5VU0VELCBQeU9iamVjdCAqcHlzdHIpOwpAQCAtMTAxLDExICsxMTgsMTEgQEAKIHN0YXRpYyBpbnQKIGVuY29kZXJfY2xlYXIoUHlPYmplY3QgKnNlbGYpOwogc3RhdGljIGludAotZW5jb2Rlcl9saXN0ZW5jb2RlX2xpc3QoUHlFbmNvZGVyT2JqZWN0ICpzLCBQeU9iamVjdCAqcnZhbCwgUHlPYmplY3QgKnNlcSwgUHlfc3NpemVfdCBpbmRlbnRfbGV2ZWwpOworZW5jb2Rlcl9saXN0ZW5jb2RlX2xpc3QoUHlFbmNvZGVyT2JqZWN0ICpzLCBfUHlBY2N1ICphY2MsIFB5T2JqZWN0ICpzZXEsIFB5X3NzaXplX3QgaW5kZW50X2xldmVsKTsKIHN0YXRpYyBpbnQKLWVuY29kZXJfbGlzdGVuY29kZV9vYmooUHlFbmNvZGVyT2JqZWN0ICpzLCBQeU9iamVjdCAqcnZhbCwgUHlPYmplY3QgKm9iaiwgUHlfc3NpemVfdCBpbmRlbnRfbGV2ZWwpOworZW5jb2Rlcl9saXN0ZW5jb2RlX29iaihQeUVuY29kZXJPYmplY3QgKnMsIF9QeUFjY3UgKmFjYywgUHlPYmplY3QgKm9iaiwgUHlfc3NpemVfdCBpbmRlbnRfbGV2ZWwpOwogc3RhdGljIGludAotZW5jb2Rlcl9saXN0ZW5jb2RlX2RpY3QoUHlFbmNvZGVyT2JqZWN0ICpzLCBQeU9iamVjdCAqcnZhbCwgUHlPYmplY3QgKmRjdCwgUHlfc3NpemVfdCBpbmRlbnRfbGV2ZWwpOworZW5jb2Rlcl9saXN0ZW5jb2RlX2RpY3QoUHlFbmNvZGVyT2JqZWN0ICpzLCBfUHlBY2N1ICphY2MsIFB5T2JqZWN0ICpkY3QsIFB5X3NzaXplX3QgaW5kZW50X2xldmVsKTsKIHN0YXRpYyBQeU9iamVjdCAqCiBfZW5jb2RlZF9jb25zdChQeU9iamVjdCAqb2JqKTsKIHN0YXRpYyB2b2lkCkBAIC0xMjIsMTMgKzEzOSw2IEBACiAjZGVmaW5lIFNfQ0hBUihjKSAoYyA+PSAnICcgJiYgYyA8PSAnficgJiYgYyAhPSAnXFwnICYmIGMgIT0gJyInKQogI2RlZmluZSBJU19XSElURVNQQUNFKGMpICgoKGMpID09ICcgJykgfHwgKChjKSA9PSAnXHQnKSB8fCAoKGMpID09ICdcbicpIHx8ICgoYykgPT0gJ1xyJykpCiAKLSNkZWZpbmUgTUlOX0VYUEFOU0lPTiA2Ci0jaWZkZWYgUHlfVU5JQ09ERV9XSURFCi0jZGVmaW5lIE1BWF9FWFBBTlNJT04gKDIgKiBNSU5fRVhQQU5TSU9OKQotI2Vsc2UKLSNkZWZpbmUgTUFYX0VYUEFOU0lPTiBNSU5fRVhQQU5TSU9OCi0jZW5kaWYKLQogc3RhdGljIGludAogX2NvbnZlcnRQeUludF9Bc1NzaXplX3QoUHlPYmplY3QgKm8sIFB5X3NzaXplX3QgKnNpemVfcHRyKQogewpAQCAtMTQ3LDcgKzE1Nyw3IEBACiB9CiAKIHN0YXRpYyBQeV9zc2l6ZV90Ci1hc2NpaV9lc2NhcGVfdW5pY2hhcihQeV9VTklDT0RFIGMsIFB5X1VOSUNPREUgKm91dHB1dCwgUHlfc3NpemVfdCBjaGFycykKK2FzY2lpX2VzY2FwZV91bmljaGFyKFB5X1VDUzQgYywgdW5zaWduZWQgY2hhciAqb3V0cHV0LCBQeV9zc2l6ZV90IGNoYXJzKQogewogICAgIC8qIEVzY2FwZSB1bmljb2RlIGNvZGUgcG9pbnQgYyB0byBBU0NJSSBlc2NhcGUgc2VxdWVuY2VzCiAgICAgaW4gY2hhciAqb3V0cHV0LiBvdXRwdXQgbXVzdCBoYXZlIGF0IGxlYXN0IDEyIGJ5dGVzIHVudXNlZCB0bwpAQCAtMTYyLDI1ICsxNzIsMjMgQEAKICAgICAgICAgY2FzZSAnXHInOiBvdXRwdXRbY2hhcnMrK10gPSAncic7IGJyZWFrOwogICAgICAgICBjYXNlICdcdCc6IG91dHB1dFtjaGFycysrXSA9ICd0JzsgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6Ci0jaWZkZWYgUHlfVU5JQ09ERV9XSURFCiAgICAgICAgICAgICBpZiAoYyA+PSAweDEwMDAwKSB7CiAgICAgICAgICAgICAgICAgLyogVVRGLTE2IHN1cnJvZ2F0ZSBwYWlyICovCi0gICAgICAgICAgICAgICAgUHlfVU5JQ09ERSB2ID0gYyAtIDB4MTAwMDA7CisgICAgICAgICAgICAgICAgUHlfVUNTNCB2ID0gYyAtIDB4MTAwMDA7CiAgICAgICAgICAgICAgICAgYyA9IDB4ZDgwMCB8ICgodiA+PiAxMCkgJiAweDNmZik7CiAgICAgICAgICAgICAgICAgb3V0cHV0W2NoYXJzKytdID0gJ3UnOwotICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIlsoYyA+PiAxMikgJiAweGZdOwotICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIlsoYyA+PiAgOCkgJiAweGZdOwotICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIlsoYyA+PiAgNCkgJiAweGZdOwotICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIlsoYyAgICAgICkgJiAweGZdOworICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1soYyA+PiAxMikgJiAweGZdOworICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1soYyA+PiAgOCkgJiAweGZdOworICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1soYyA+PiAgNCkgJiAweGZdOworICAgICAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1soYyAgICAgICkgJiAweGZdOwogICAgICAgICAgICAgICAgIGMgPSAweGRjMDAgfCAodiAmIDB4M2ZmKTsKICAgICAgICAgICAgICAgICBvdXRwdXRbY2hhcnMrK10gPSAnXFwnOwogICAgICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgICAgICBvdXRwdXRbY2hhcnMrK10gPSAndSc7Ci0gICAgICAgICAgICBvdXRwdXRbY2hhcnMrK10gPSAiMDEyMzQ1Njc4OWFiY2RlZiJbKGMgPj4gMTIpICYgMHhmXTsKLSAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9ICIwMTIzNDU2Nzg5YWJjZGVmIlsoYyA+PiAgOCkgJiAweGZdOwotICAgICAgICAgICAgb3V0cHV0W2NoYXJzKytdID0gIjAxMjM0NTY3ODlhYmNkZWYiWyhjID4+ICA0KSAmIDB4Zl07Ci0gICAgICAgICAgICBvdXRwdXRbY2hhcnMrK10gPSAiMDEyMzQ1Njc4OWFiY2RlZiJbKGMgICAgICApICYgMHhmXTsKKyAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1soYyA+PiAxMikgJiAweGZdOworICAgICAgICAgICAgb3V0cHV0W2NoYXJzKytdID0gUHlfaGV4ZGlnaXRzWyhjID4+ICA4KSAmIDB4Zl07CisgICAgICAgICAgICBvdXRwdXRbY2hhcnMrK10gPSBQeV9oZXhkaWdpdHNbKGMgPj4gIDQpICYgMHhmXTsKKyAgICAgICAgICAgIG91dHB1dFtjaGFycysrXSA9IFB5X2hleGRpZ2l0c1soYyAgICAgICkgJiAweGZdOwogICAgIH0KICAgICByZXR1cm4gY2hhcnM7CiB9CkBAIC0xOTIsNTQgKzIwMCw1MyBAQAogICAgIFB5X3NzaXplX3QgaTsKICAgICBQeV9zc2l6ZV90IGlucHV0X2NoYXJzOwogICAgIFB5X3NzaXplX3Qgb3V0cHV0X3NpemU7Ci0gICAgUHlfc3NpemVfdCBtYXhfb3V0cHV0X3NpemU7CiAgICAgUHlfc3NpemVfdCBjaGFyczsKICAgICBQeU9iamVjdCAqcnZhbDsKLSAgICBQeV9VTklDT0RFICpvdXRwdXQ7Ci0gICAgUHlfVU5JQ09ERSAqaW5wdXRfdW5pY29kZTsKKyAgICB2b2lkICppbnB1dDsKKyAgICB1bnNpZ25lZCBjaGFyICpvdXRwdXQ7CisgICAgaW50IGtpbmQ7CiAKLSAgICBpbnB1dF9jaGFycyA9IFB5VW5pY29kZV9HRVRfU0laRShweXN0cik7Ci0gICAgaW5wdXRfdW5pY29kZSA9IFB5VW5pY29kZV9BU19VTklDT0RFKHB5c3RyKTsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHB5c3RyKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICAvKiBPbmUgY2hhciBpbnB1dCBjYW4gYmUgdXAgdG8gNiBjaGFycyBvdXRwdXQsIGVzdGltYXRlIDQgb2YgdGhlc2UgKi8KLSAgICBvdXRwdXRfc2l6ZSA9IDIgKyAoTUlOX0VYUEFOU0lPTiAqIDQpICsgaW5wdXRfY2hhcnM7Ci0gICAgbWF4X291dHB1dF9zaXplID0gMiArIChpbnB1dF9jaGFycyAqIE1BWF9FWFBBTlNJT04pOwotICAgIHJ2YWwgPSBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgb3V0cHV0X3NpemUpOworICAgIGlucHV0X2NoYXJzID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocHlzdHIpOworICAgIGlucHV0ID0gUHlVbmljb2RlX0RBVEEocHlzdHIpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChweXN0cik7CisKKyAgICAvKiBDb21wdXRlIHRoZSBvdXRwdXQgc2l6ZSAqLworICAgIGZvciAoaSA9IDAsIG91dHB1dF9zaXplID0gMjsgaSA8IGlucHV0X2NoYXJzOyBpKyspIHsKKyAgICAgICAgUHlfVUNTNCBjID0gUHlVbmljb2RlX1JFQUQoa2luZCwgaW5wdXQsIGkpOworICAgICAgICBpZiAoU19DSEFSKGMpKQorICAgICAgICAgICAgb3V0cHV0X3NpemUrKzsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzd2l0Y2goYykgeworICAgICAgICAgICAgY2FzZSAnXFwnOiBjYXNlICciJzogY2FzZSAnXGInOiBjYXNlICdcZic6CisgICAgICAgICAgICBjYXNlICdcbic6IGNhc2UgJ1xyJzogY2FzZSAnXHQnOgorICAgICAgICAgICAgICAgIG91dHB1dF9zaXplICs9IDI7IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBvdXRwdXRfc2l6ZSArPSBjID49IDB4MTAwMDAgPyAxMiA6IDY7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBydmFsID0gUHlVbmljb2RlX05ldyhvdXRwdXRfc2l6ZSwgMTI3KTsKICAgICBpZiAocnZhbCA9PSBOVUxMKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBvdXRwdXQgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShydmFsKTsKKyAgICBvdXRwdXQgPSBQeVVuaWNvZGVfMUJZVEVfREFUQShydmFsKTsKICAgICBjaGFycyA9IDA7CiAgICAgb3V0cHV0W2NoYXJzKytdID0gJyInOwogICAgIGZvciAoaSA9IDA7IGkgPCBpbnB1dF9jaGFyczsgaSsrKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgYyA9IGlucHV0X3VuaWNvZGVbaV07CisgICAgICAgIFB5X1VDUzQgYyA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGlucHV0LCBpKTsKICAgICAgICAgaWYgKFNfQ0hBUihjKSkgewogICAgICAgICAgICAgb3V0cHV0W2NoYXJzKytdID0gYzsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGNoYXJzID0gYXNjaWlfZXNjYXBlX3VuaWNoYXIoYywgb3V0cHV0LCBjaGFycyk7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKG91dHB1dF9zaXplIC0gY2hhcnMgPCAoMSArIE1BWF9FWFBBTlNJT04pKSB7Ci0gICAgICAgICAgICAvKiBUaGVyZSdzIG1vcmUgdGhhbiBmb3VyLCBzbyBsZXQncyByZXNpemUgYnkgYSBsb3QgKi8KLSAgICAgICAgICAgIFB5X3NzaXplX3QgbmV3X291dHB1dF9zaXplID0gb3V0cHV0X3NpemUgKiAyOwotICAgICAgICAgICAgLyogVGhpcyBpcyBhbiB1cHBlciBib3VuZCAqLwotICAgICAgICAgICAgaWYgKG5ld19vdXRwdXRfc2l6ZSA+IG1heF9vdXRwdXRfc2l6ZSkgewotICAgICAgICAgICAgICAgIG5ld19vdXRwdXRfc2l6ZSA9IG1heF9vdXRwdXRfc2l6ZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IHRoZSBvdXRwdXQgc2l6ZSBjaGFuZ2VkIGJlZm9yZSByZXNpemluZyAqLwotICAgICAgICAgICAgaWYgKG5ld19vdXRwdXRfc2l6ZSAhPSBvdXRwdXRfc2l6ZSkgewotICAgICAgICAgICAgICAgIG91dHB1dF9zaXplID0gbmV3X291dHB1dF9zaXplOwotICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUmVzaXplKCZydmFsLCBvdXRwdXRfc2l6ZSkgPT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG91dHB1dCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJ2YWwpOwotICAgICAgICAgICAgfQotICAgICAgICB9CiAgICAgfQogICAgIG91dHB1dFtjaGFycysrXSA9ICciJzsKLSAgICBpZiAoUHlVbmljb2RlX1Jlc2l6ZSgmcnZhbCwgY2hhcnMpID09IC0xKSB7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJ2YWwsIDEpKTsKICAgICByZXR1cm4gcnZhbDsKIH0KIApAQCAtMjY3LDE5ICsyNzQsNiBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotam9pbl9saXN0X3VuaWNvZGUoUHlPYmplY3QgKmxzdCkKLXsKLSAgICAvKiByZXR1cm4gdScnLmpvaW4obHN0KSAqLwotICAgIHN0YXRpYyBQeU9iamVjdCAqc2VwID0gTlVMTDsKLSAgICBpZiAoc2VwID09IE5VTEwpIHsKLSAgICAgICAgc2VwID0gUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKCIiLCAwKTsKLSAgICAgICAgaWYgKHNlcCA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfSm9pbihzZXAsIGxzdCk7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCiBfYnVpbGRfcnZhbF9pbmRleF90dXBsZShQeU9iamVjdCAqcnZhbCwgUHlfc3NpemVfdCBpZHgpIHsKICAgICAvKiByZXR1cm4gKHJ2YWwsIGlkeCkgdHVwbGUsIHN0ZWFsaW5nIHJlZmVyZW5jZSB0byBydmFsICovCiAgICAgUHlPYmplY3QgKnRwbDsKQEAgLTMzMywyMiArMzI3LDMwIEBACiAgICAgUmV0dXJuIHZhbHVlIGlzIGEgbmV3IFB5VW5pY29kZQogICAgICovCiAgICAgUHlPYmplY3QgKnJ2YWwgPSBOVUxMOwotICAgIFB5X3NzaXplX3QgbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKHB5c3RyKTsKKyAgICBQeV9zc2l6ZV90IGxlbjsKICAgICBQeV9zc2l6ZV90IGJlZ2luID0gZW5kIC0gMTsKLSAgICBQeV9zc2l6ZV90IG5leHQgPSBiZWdpbjsKLSAgICBjb25zdCBQeV9VTklDT0RFICpidWYgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShweXN0cik7CisgICAgUHlfc3NpemVfdCBuZXh0IC8qID0gYmVnaW4gKi87CisgICAgY29uc3Qgdm9pZCAqYnVmOworICAgIGludCBraW5kOwogICAgIFB5T2JqZWN0ICpjaHVua3MgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpjaHVuayA9IE5VTEw7CiAKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHB5c3RyKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChweXN0cik7CisgICAgYnVmID0gUHlVbmljb2RlX0RBVEEocHlzdHIpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChweXN0cik7CisKICAgICBpZiAoZW5kIDwgMCB8fCBsZW4gPD0gZW5kKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiZW5kIGlzIG91dCBvZiBib3VuZHMiKTsKICAgICAgICAgZ290byBiYWlsOwogICAgIH0KICAgICB3aGlsZSAoMSkgewogICAgICAgICAvKiBGaW5kIHRoZSBlbmQgb2YgdGhlIHN0cmluZyBvciB0aGUgbmV4dCBlc2NhcGUgKi8KLSAgICAgICAgUHlfVU5JQ09ERSBjID0gMDsKKyAgICAgICAgUHlfVUNTNCBjID0gMDsKICAgICAgICAgZm9yIChuZXh0ID0gZW5kOyBuZXh0IDwgbGVuOyBuZXh0KyspIHsKLSAgICAgICAgICAgIGMgPSBidWZbbmV4dF07CisgICAgICAgICAgICBjID0gUHlVbmljb2RlX1JFQUQoa2luZCwgYnVmLCBuZXh0KTsKICAgICAgICAgICAgIGlmIChjID09ICciJyB8fCBjID09ICdcXCcpIHsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTM2NCw3ICszNjYsMTAgQEAKICAgICAgICAgLyogUGljayB1cCB0aGlzIGNodW5rIGlmIGl0J3Mgbm90IHplcm8gbGVuZ3RoICovCiAgICAgICAgIGlmIChuZXh0ICE9IGVuZCkgewogICAgICAgICAgICAgQVBQRU5EX09MRF9DSFVOSwotICAgICAgICAgICAgY2h1bmsgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoJmJ1ZltlbmRdLCBuZXh0IC0gZW5kKTsKKyAgICAgICAgICAgICAgICBjaHVuayA9IFB5VW5pY29kZV9Gcm9tS2luZEFuZERhdGEoCisgICAgICAgICAgICAgICAgICAgIGtpbmQsCisgICAgICAgICAgICAgICAgICAgIChjaGFyKilidWYgKyBraW5kICogZW5kLAorICAgICAgICAgICAgICAgICAgICBuZXh0IC0gZW5kKTsKICAgICAgICAgICAgIGlmIChjaHVuayA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICAgICAgfQpAQCAtMzc4LDcgKzM4Myw3IEBACiAgICAgICAgICAgICByYWlzZV9lcnJtc2coIlVudGVybWluYXRlZCBzdHJpbmcgc3RhcnRpbmcgYXQiLCBweXN0ciwgYmVnaW4pOwogICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICB9Ci0gICAgICAgIGMgPSBidWZbbmV4dF07CisgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChraW5kLCBidWYsIG5leHQpOwogICAgICAgICBpZiAoYyAhPSAndScpIHsKICAgICAgICAgICAgIC8qIE5vbi11bmljb2RlIGJhY2tzbGFzaCBlc2NhcGVzICovCiAgICAgICAgICAgICBlbmQgPSBuZXh0ICsgMTsKQEAgLTQwOCw3ICs0MTMsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgLyogRGVjb2RlIDQgaGV4IGRpZ2l0cyAqLwogICAgICAgICAgICAgZm9yICg7IG5leHQgPCBlbmQ7IG5leHQrKykgewotICAgICAgICAgICAgICAgIFB5X1VOSUNPREUgZGlnaXQgPSBidWZbbmV4dF07CisgICAgICAgICAgICAgICAgUHlfVUNTNCBkaWdpdCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGJ1ZiwgbmV4dCk7CiAgICAgICAgICAgICAgICAgYyA8PD0gNDsKICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRpZ2l0KSB7CiAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzoKQEAgLTQyNSwyMiArNDMwLDIyIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGJhaWw7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotI2lmZGVmIFB5X1VOSUNPREVfV0lERQogICAgICAgICAgICAgLyogU3Vycm9nYXRlIHBhaXIgKi8KICAgICAgICAgICAgIGlmICgoYyAmIDB4ZmMwMCkgPT0gMHhkODAwKSB7Ci0gICAgICAgICAgICAgICAgUHlfVU5JQ09ERSBjMiA9IDA7CisgICAgICAgICAgICAgICAgUHlfVUNTNCBjMiA9IDA7CiAgICAgICAgICAgICAgICAgaWYgKGVuZCArIDYgPj0gbGVuKSB7CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlX2Vycm1zZygiVW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUiLCBweXN0ciwgZW5kIC0gNSk7CiAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGJ1ZltuZXh0KytdICE9ICdcXCcgfHwgYnVmW25leHQrK10gIT0gJ3UnKSB7CisgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEKGtpbmQsIGJ1ZiwgbmV4dCsrKSAhPSAnXFwnIHx8CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmQsIGJ1ZiwgbmV4dCsrKSAhPSAndScpIHsKICAgICAgICAgICAgICAgICAgICAgcmFpc2VfZXJybXNnKCJVbnBhaXJlZCBoaWdoIHN1cnJvZ2F0ZSIsIHB5c3RyLCBlbmQgLSA1KTsKICAgICAgICAgICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbmQgKz0gNjsKICAgICAgICAgICAgICAgICAvKiBEZWNvZGUgNCBoZXggZGlnaXRzICovCiAgICAgICAgICAgICAgICAgZm9yICg7IG5leHQgPCBlbmQ7IG5leHQrKykgewotICAgICAgICAgICAgICAgICAgICBQeV9VTklDT0RFIGRpZ2l0ID0gYnVmW25leHRdOworICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IGRpZ2l0ID0gUHlVbmljb2RlX1JFQUQoa2luZCwgYnVmLCBuZXh0KTsKICAgICAgICAgICAgICAgICAgICAgYzIgPDw9IDQ7CiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoZGlnaXQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOiBjYXNlICc0JzoKQEAgLTQ2NywxMCArNDcyLDkgQEAKICAgICAgICAgICAgICAgICByYWlzZV9lcnJtc2coIlVucGFpcmVkIGxvdyBzdXJyb2dhdGUiLCBweXN0ciwgZW5kIC0gNSk7CiAgICAgICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIH0KICAgICAgICAgQVBQRU5EX09MRF9DSFVOSwotICAgICAgICBjaHVuayA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZSgmYywgMSk7CisgICAgICAgIGNodW5rID0gUHlVbmljb2RlX0Zyb21LaW5kQW5kRGF0YShQeVVuaWNvZGVfNEJZVEVfS0lORCwgJmMsIDEpOwogICAgICAgICBpZiAoY2h1bmsgPT0gTlVMTCkgewogICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICB9CkBAIC02MDgsOCArNjEyLDkgQEAKIAogICAgIFJldHVybnMgYSBuZXcgUHlPYmplY3QgKHVzdWFsbHkgYSBkaWN0LCBidXQgb2JqZWN0X2hvb2sgY2FuIGNoYW5nZSB0aGF0KQogICAgICovCi0gICAgUHlfVU5JQ09ERSAqc3RyID0gUHlVbmljb2RlX0FTX1VOSUNPREUocHlzdHIpOwotICAgIFB5X3NzaXplX3QgZW5kX2lkeCA9IFB5VW5pY29kZV9HRVRfU0laRShweXN0cikgLSAxOworICAgIHZvaWQgKnN0cjsKKyAgICBpbnQga2luZDsKKyAgICBQeV9zc2l6ZV90IGVuZF9pZHg7CiAgICAgUHlPYmplY3QgKnZhbCA9IE5VTEw7CiAgICAgUHlPYmplY3QgKnJ2YWwgPSBOVUxMOwogICAgIFB5T2JqZWN0ICprZXkgPSBOVUxMOwpAQCAtNjE3LDYgKzYyMiwxMyBAQAogICAgIGludCBoYXNfcGFpcnNfaG9vayA9IChzLT5vYmplY3RfcGFpcnNfaG9vayAhPSBQeV9Ob25lKTsKICAgICBQeV9zc2l6ZV90IG5leHRfaWR4OwogCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShweXN0cikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgc3RyID0gUHlVbmljb2RlX0RBVEEocHlzdHIpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChweXN0cik7CisgICAgZW5kX2lkeCA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHB5c3RyKSAtIDE7CisKICAgICBpZiAoaGFzX3BhaXJzX2hvb2spCiAgICAgICAgIHJ2YWwgPSBQeUxpc3RfTmV3KDApOwogICAgIGVsc2UKQEAgLTYyNSwxNSArNjM3LDE1IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgLyogc2tpcCB3aGl0ZXNwYWNlIGFmdGVyIHsgKi8KLSAgICB3aGlsZSAoaWR4IDw9IGVuZF9pZHggJiYgSVNfV0hJVEVTUEFDRShzdHJbaWR4XSkpIGlkeCsrOworICAgIHdoaWxlIChpZHggPD0gZW5kX2lkeCAmJiBJU19XSElURVNQQUNFKFB5VW5pY29kZV9SRUFEKGtpbmQsc3RyLCBpZHgpKSkgaWR4Kys7CiAKICAgICAvKiBvbmx5IGxvb3AgaWYgdGhlIG9iamVjdCBpcyBub24tZW1wdHkgKi8KLSAgICBpZiAoaWR4IDw9IGVuZF9pZHggJiYgc3RyW2lkeF0gIT0gJ30nKSB7CisgICAgaWYgKGlkeCA8PSBlbmRfaWR4ICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSAhPSAnfScpIHsKICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4KSB7CiAgICAgICAgICAgICBQeU9iamVjdCAqbWVtb2tleTsKIAogICAgICAgICAgICAgLyogcmVhZCBrZXkgKi8KLSAgICAgICAgICAgIGlmIChzdHJbaWR4XSAhPSAnIicpIHsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgIT0gJyInKSB7CiAgICAgICAgICAgICAgICAgcmFpc2VfZXJybXNnKCJFeHBlY3RpbmcgcHJvcGVydHkgbmFtZSBlbmNsb3NlZCBpbiBkb3VibGUgcXVvdGVzIiwgcHlzdHIsIGlkeCk7CiAgICAgICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICAgICAgfQpAQCAtNjUzLDEzICs2NjUsMTMgQEAKICAgICAgICAgICAgIGlkeCA9IG5leHRfaWR4OwogCiAgICAgICAgICAgICAvKiBza2lwIHdoaXRlc3BhY2UgYmV0d2VlbiBrZXkgYW5kIDogZGVsaW1pdGVyLCByZWFkIDosIHNraXAgd2hpdGVzcGFjZSAqLwotICAgICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIElTX1dISVRFU1BBQ0Uoc3RyW2lkeF0pKSBpZHgrKzsKLSAgICAgICAgICAgIGlmIChpZHggPiBlbmRfaWR4IHx8IHN0cltpZHhdICE9ICc6JykgeworICAgICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIElTX1dISVRFU1BBQ0UoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpKSkgaWR4Kys7CisgICAgICAgICAgICBpZiAoaWR4ID4gZW5kX2lkeCB8fCBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgIT0gJzonKSB7CiAgICAgICAgICAgICAgICAgcmFpc2VfZXJybXNnKCJFeHBlY3RpbmcgJzonIGRlbGltaXRlciIsIHB5c3RyLCBpZHgpOwogICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlkeCsrOwotICAgICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIElTX1dISVRFU1BBQ0Uoc3RyW2lkeF0pKSBpZHgrKzsKKyAgICAgICAgICAgIHdoaWxlIChpZHggPD0gZW5kX2lkeCAmJiBJU19XSElURVNQQUNFKFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSkpIGlkeCsrOwogCiAgICAgICAgICAgICAvKiByZWFkIGFueSBKU09OIHRlcm0gKi8KICAgICAgICAgICAgIHZhbCA9IHNjYW5fb25jZV91bmljb2RlKHMsIHB5c3RyLCBpZHgsICZuZXh0X2lkeCk7CkBAIC02ODcsMjYgKzY5OSwyNiBAQAogICAgICAgICAgICAgaWR4ID0gbmV4dF9pZHg7CiAKICAgICAgICAgICAgIC8qIHNraXAgd2hpdGVzcGFjZSBiZWZvcmUgfSBvciAsICovCi0gICAgICAgICAgICB3aGlsZSAoaWR4IDw9IGVuZF9pZHggJiYgSVNfV0hJVEVTUEFDRShzdHJbaWR4XSkpIGlkeCsrOworICAgICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIElTX1dISVRFU1BBQ0UoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpKSkgaWR4Kys7CiAKICAgICAgICAgICAgIC8qIGJhaWwgaWYgdGhlIG9iamVjdCBpcyBjbG9zZWQgb3Igd2UgZGlkbid0IGdldCB0aGUgLCBkZWxpbWl0ZXIgKi8KICAgICAgICAgICAgIGlmIChpZHggPiBlbmRfaWR4KSBicmVhazsKLSAgICAgICAgICAgIGlmIChzdHJbaWR4XSA9PSAnfScpIHsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgPT0gJ30nKSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChzdHJbaWR4XSAhPSAnLCcpIHsKKyAgICAgICAgICAgIGVsc2UgaWYgKFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSAhPSAnLCcpIHsKICAgICAgICAgICAgICAgICByYWlzZV9lcnJtc2coIkV4cGVjdGluZyAnLCcgZGVsaW1pdGVyIiwgcHlzdHIsIGlkeCk7CiAgICAgICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWR4Kys7CiAKICAgICAgICAgICAgIC8qIHNraXAgd2hpdGVzcGFjZSBhZnRlciAsIGRlbGltaXRlciAqLwotICAgICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIElTX1dISVRFU1BBQ0Uoc3RyW2lkeF0pKSBpZHgrKzsKKyAgICAgICAgICAgIHdoaWxlIChpZHggPD0gZW5kX2lkeCAmJiBJU19XSElURVNQQUNFKFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSkpIGlkeCsrOwogICAgICAgICB9CiAgICAgfQogCiAgICAgLyogdmVyaWZ5IHRoYXQgaWR4IDwgZW5kX2lkeCwgc3RyW2lkeF0gc2hvdWxkIGJlICd9JyAqLwotICAgIGlmIChpZHggPiBlbmRfaWR4IHx8IHN0cltpZHhdICE9ICd9JykgeworICAgIGlmIChpZHggPiBlbmRfaWR4IHx8IFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSAhPSAnfScpIHsKICAgICAgICAgcmFpc2VfZXJybXNnKCJFeHBlY3Rpbmcgb2JqZWN0IiwgcHlzdHIsIGVuZF9pZHgpOwogICAgICAgICBnb3RvIGJhaWw7CiAgICAgfQpAQCAtNzQyLDE5ICs3NTQsMjcgQEAKIAogICAgIFJldHVybnMgYSBuZXcgUHlMaXN0CiAgICAgKi8KLSAgICBQeV9VTklDT0RFICpzdHIgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShweXN0cik7Ci0gICAgUHlfc3NpemVfdCBlbmRfaWR4ID0gUHlVbmljb2RlX0dFVF9TSVpFKHB5c3RyKSAtIDE7CisgICAgdm9pZCAqc3RyOworICAgIGludCBraW5kOworICAgIFB5X3NzaXplX3QgZW5kX2lkeDsKICAgICBQeU9iamVjdCAqdmFsID0gTlVMTDsKICAgICBQeU9iamVjdCAqcnZhbCA9IFB5TGlzdF9OZXcoMCk7CiAgICAgUHlfc3NpemVfdCBuZXh0X2lkeDsKICAgICBpZiAocnZhbCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIAorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkocHlzdHIpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHN0ciA9IFB5VW5pY29kZV9EQVRBKHB5c3RyKTsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQocHlzdHIpOworICAgIGVuZF9pZHggPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChweXN0cikgLSAxOworCiAgICAgLyogc2tpcCB3aGl0ZXNwYWNlIGFmdGVyIFsgKi8KLSAgICB3aGlsZSAoaWR4IDw9IGVuZF9pZHggJiYgSVNfV0hJVEVTUEFDRShzdHJbaWR4XSkpIGlkeCsrOworICAgIHdoaWxlIChpZHggPD0gZW5kX2lkeCAmJiBJU19XSElURVNQQUNFKFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSkpIGlkeCsrOwogCiAgICAgLyogb25seSBsb29wIGlmIHRoZSBhcnJheSBpcyBub24tZW1wdHkgKi8KLSAgICBpZiAoaWR4IDw9IGVuZF9pZHggJiYgc3RyW2lkeF0gIT0gJ10nKSB7CisgICAgaWYgKGlkeCA8PSBlbmRfaWR4ICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSAhPSAnXScpIHsKICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4KSB7CiAKICAgICAgICAgICAgIC8qIHJlYWQgYW55IEpTT04gdGVybSAgKi8KQEAgLTc2OSwyNiArNzg5LDI2IEBACiAgICAgICAgICAgICBpZHggPSBuZXh0X2lkeDsKIAogICAgICAgICAgICAgLyogc2tpcCB3aGl0ZXNwYWNlIGJldHdlZW4gdGVybSBhbmQgLCAqLwotICAgICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIElTX1dISVRFU1BBQ0Uoc3RyW2lkeF0pKSBpZHgrKzsKKyAgICAgICAgICAgIHdoaWxlIChpZHggPD0gZW5kX2lkeCAmJiBJU19XSElURVNQQUNFKFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSkpIGlkeCsrOwogCiAgICAgICAgICAgICAvKiBiYWlsIGlmIHRoZSBhcnJheSBpcyBjbG9zZWQgb3Igd2UgZGlkbid0IGdldCB0aGUgLCBkZWxpbWl0ZXIgKi8KICAgICAgICAgICAgIGlmIChpZHggPiBlbmRfaWR4KSBicmVhazsKLSAgICAgICAgICAgIGlmIChzdHJbaWR4XSA9PSAnXScpIHsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgPT0gJ10nKSB7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChzdHJbaWR4XSAhPSAnLCcpIHsKKyAgICAgICAgICAgIGVsc2UgaWYgKFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSAhPSAnLCcpIHsKICAgICAgICAgICAgICAgICByYWlzZV9lcnJtc2coIkV4cGVjdGluZyAnLCcgZGVsaW1pdGVyIiwgcHlzdHIsIGlkeCk7CiAgICAgICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWR4Kys7CiAKICAgICAgICAgICAgIC8qIHNraXAgd2hpdGVzcGFjZSBhZnRlciAsICovCi0gICAgICAgICAgICB3aGlsZSAoaWR4IDw9IGVuZF9pZHggJiYgSVNfV0hJVEVTUEFDRShzdHJbaWR4XSkpIGlkeCsrOworICAgICAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIElTX1dISVRFU1BBQ0UoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpKSkgaWR4Kys7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvKiB2ZXJpZnkgdGhhdCBpZHggPCBlbmRfaWR4LCBzdHJbaWR4XSBzaG91bGQgYmUgJ10nICovCi0gICAgaWYgKGlkeCA+IGVuZF9pZHggfHwgc3RyW2lkeF0gIT0gJ10nKSB7CisgICAgLyogdmVyaWZ5IHRoYXQgaWR4IDwgZW5kX2lkeCwgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpIHNob3VsZCBiZSAnXScgKi8KKyAgICBpZiAoaWR4ID4gZW5kX2lkeCB8fCBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgIT0gJ10nKSB7CiAgICAgICAgIHJhaXNlX2Vycm1zZygiRXhwZWN0aW5nIG9iamVjdCIsIHB5c3RyLCBlbmRfaWR4KTsKICAgICAgICAgZ290byBiYWlsOwogICAgIH0KQEAgLTgyMCw3ICs4NDAsNyBAQAogCiAgICAgLyogcnZhbCA9IHBhcnNlX2NvbnN0YW50KGNvbnN0YW50KSAqLwogICAgIHJ2YWwgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzKHMtPnBhcnNlX2NvbnN0YW50LCBjc3RyLCBOVUxMKTsKLSAgICBpZHggKz0gUHlVbmljb2RlX0dFVF9TSVpFKGNzdHIpOworICAgIGlkeCArPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChjc3RyKTsKICAgICBQeV9ERUNSRUYoY3N0cik7CiAgICAgKm5leHRfaWR4X3B0ciA9IGlkeDsKICAgICByZXR1cm4gcnZhbDsKQEAgLTgzNywxNSArODU3LDI0IEBACiAgICAgICAgIFB5SW50LCBQeUxvbmcsIG9yIFB5RmxvYXQuCiAgICAgICAgIE1heSByZXR1cm4gb3RoZXIgdHlwZXMgaWYgcGFyc2VfaW50IG9yIHBhcnNlX2Zsb2F0IGFyZSBzZXQKICAgICAqLwotICAgIFB5X1VOSUNPREUgKnN0ciA9IFB5VW5pY29kZV9BU19VTklDT0RFKHB5c3RyKTsKLSAgICBQeV9zc2l6ZV90IGVuZF9pZHggPSBQeVVuaWNvZGVfR0VUX1NJWkUocHlzdHIpIC0gMTsKKyAgICB2b2lkICpzdHI7CisgICAgaW50IGtpbmQ7CisgICAgUHlfc3NpemVfdCBlbmRfaWR4OwogICAgIFB5X3NzaXplX3QgaWR4ID0gc3RhcnQ7CiAgICAgaW50IGlzX2Zsb2F0ID0gMDsKICAgICBQeU9iamVjdCAqcnZhbDsKLSAgICBQeU9iamVjdCAqbnVtc3RyOworICAgIFB5T2JqZWN0ICpudW1zdHIgPSBOVUxMOworICAgIFB5T2JqZWN0ICpjdXN0b21fZnVuYzsKKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkocHlzdHIpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHN0ciA9IFB5VW5pY29kZV9EQVRBKHB5c3RyKTsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQocHlzdHIpOworICAgIGVuZF9pZHggPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChweXN0cikgLSAxOwogCiAgICAgLyogcmVhZCBhIHNpZ24gaWYgaXQncyB0aGVyZSwgbWFrZSBzdXJlIGl0J3Mgbm90IHRoZSBlbmQgb2YgdGhlIHN0cmluZyAqLwotICAgIGlmIChzdHJbaWR4XSA9PSAnLScpIHsKKyAgICBpZiAoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpID09ICctJykgewogICAgICAgICBpZHgrKzsKICAgICAgICAgaWYgKGlkeCA+IGVuZF9pZHgpIHsKICAgICAgICAgICAgIFB5RXJyX1NldE5vbmUoUHlFeGNfU3RvcEl0ZXJhdGlvbik7CkBAIC04NTQsMTIgKzg4MywxMiBAQAogICAgIH0KIAogICAgIC8qIHJlYWQgYXMgbWFueSBpbnRlZ2VyIGRpZ2l0cyBhcyB3ZSBmaW5kIGFzIGxvbmcgYXMgaXQgZG9lc24ndCBzdGFydCB3aXRoIDAgKi8KLSAgICBpZiAoc3RyW2lkeF0gPj0gJzEnICYmIHN0cltpZHhdIDw9ICc5JykgeworICAgIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgPj0gJzEnICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSA8PSAnOScpIHsKICAgICAgICAgaWR4Kys7Ci0gICAgICAgIHdoaWxlIChpZHggPD0gZW5kX2lkeCAmJiBzdHJbaWR4XSA+PSAnMCcgJiYgc3RyW2lkeF0gPD0gJzknKSBpZHgrKzsKKyAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSA+PSAnMCcgJiYgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpIDw9ICc5JykgaWR4Kys7CiAgICAgfQogICAgIC8qIGlmIGl0IHN0YXJ0cyB3aXRoIDAgd2Ugb25seSBleHBlY3Qgb25lIGludGVnZXIgZGlnaXQgKi8KLSAgICBlbHNlIGlmIChzdHJbaWR4XSA9PSAnMCcpIHsKKyAgICBlbHNlIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgPT0gJzAnKSB7CiAgICAgICAgIGlkeCsrOwogICAgIH0KICAgICAvKiBubyBpbnRlZ2VyIGRpZ2l0cywgZXJyb3IgKi8KQEAgLTg2OSwyNSArODk4LDI1IEBACiAgICAgfQogCiAgICAgLyogaWYgdGhlIG5leHQgY2hhciBpcyAnLicgZm9sbG93ZWQgYnkgYSBkaWdpdCB0aGVuIHJlYWQgYWxsIGZsb2F0IGRpZ2l0cyAqLwotICAgIGlmIChpZHggPCBlbmRfaWR4ICYmIHN0cltpZHhdID09ICcuJyAmJiBzdHJbaWR4ICsgMV0gPj0gJzAnICYmIHN0cltpZHggKyAxXSA8PSAnOScpIHsKKyAgICBpZiAoaWR4IDwgZW5kX2lkeCAmJiBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgPT0gJy4nICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgMSkgPj0gJzAnICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgMSkgPD0gJzknKSB7CiAgICAgICAgIGlzX2Zsb2F0ID0gMTsKICAgICAgICAgaWR4ICs9IDI7Ci0gICAgICAgIHdoaWxlIChpZHggPD0gZW5kX2lkeCAmJiBzdHJbaWR4XSA+PSAnMCcgJiYgc3RyW2lkeF0gPD0gJzknKSBpZHgrKzsKKyAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSA+PSAnMCcgJiYgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpIDw9ICc5JykgaWR4Kys7CiAgICAgfQogCiAgICAgLyogaWYgdGhlIG5leHQgY2hhciBpcyAnZScgb3IgJ0UnIHRoZW4gbWF5YmUgcmVhZCB0aGUgZXhwb25lbnQgKG9yIGJhY2t0cmFjaykgKi8KLSAgICBpZiAoaWR4IDwgZW5kX2lkeCAmJiAoc3RyW2lkeF0gPT0gJ2UnIHx8IHN0cltpZHhdID09ICdFJykpIHsKKyAgICBpZiAoaWR4IDwgZW5kX2lkeCAmJiAoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpID09ICdlJyB8fCBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgPT0gJ0UnKSkgewogICAgICAgICBQeV9zc2l6ZV90IGVfc3RhcnQgPSBpZHg7CiAgICAgICAgIGlkeCsrOwogCiAgICAgICAgIC8qIHJlYWQgYW4gZXhwb25lbnQgc2lnbiBpZiBwcmVzZW50ICovCi0gICAgICAgIGlmIChpZHggPCBlbmRfaWR4ICYmIChzdHJbaWR4XSA9PSAnLScgfHwgc3RyW2lkeF0gPT0gJysnKSkgaWR4Kys7CisgICAgICAgIGlmIChpZHggPCBlbmRfaWR4ICYmIChQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgPT0gJy0nIHx8IFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4KSA9PSAnKycpKSBpZHgrKzsKIAogICAgICAgICAvKiByZWFkIGFsbCBkaWdpdHMgKi8KLSAgICAgICAgd2hpbGUgKGlkeCA8PSBlbmRfaWR4ICYmIHN0cltpZHhdID49ICcwJyAmJiBzdHJbaWR4XSA8PSAnOScpIGlkeCsrOworICAgICAgICB3aGlsZSAoaWR4IDw9IGVuZF9pZHggJiYgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpID49ICcwJyAmJiBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCkgPD0gJzknKSBpZHgrKzsKIAogICAgICAgICAvKiBpZiB3ZSBnb3QgYSBkaWdpdCwgdGhlbiBwYXJzZSBhcyBmbG9hdC4gaWYgbm90LCBiYWNrdHJhY2sgKi8KLSAgICAgICAgaWYgKHN0cltpZHggLSAxXSA+PSAnMCcgJiYgc3RyW2lkeCAtIDFdIDw9ICc5JykgeworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggLSAxKSA+PSAnMCcgJiYgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggLSAxKSA8PSAnOScpIHsKICAgICAgICAgICAgIGlzX2Zsb2F0ID0gMTsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKQEAgLTg5NSwyMiArOTI0LDM5IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvKiBjb3B5IHRoZSBzZWN0aW9uIHdlIGRldGVybWluZWQgdG8gYmUgYSBudW1iZXIgKi8KLSAgICBudW1zdHIgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoJnN0cltzdGFydF0sIGlkeCAtIHN0YXJ0KTsKLSAgICBpZiAobnVtc3RyID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmIChpc19mbG9hdCkgewotICAgICAgICAvKiBwYXJzZSBhcyBhIGZsb2F0IHVzaW5nIGEgZmFzdCBwYXRoIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGNhbGwgdXNlciBkZWZpbmVkIG1ldGhvZCAqLwotICAgICAgICBpZiAocy0+cGFyc2VfZmxvYXQgIT0gKFB5T2JqZWN0ICopJlB5RmxvYXRfVHlwZSkgewotICAgICAgICAgICAgcnZhbCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3Mocy0+cGFyc2VfZmxvYXQsIG51bXN0ciwgTlVMTCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBydmFsID0gUHlGbG9hdF9Gcm9tU3RyaW5nKG51bXN0cik7Ci0gICAgICAgIH0KKyAgICBpZiAoaXNfZmxvYXQgJiYgcy0+cGFyc2VfZmxvYXQgIT0gKFB5T2JqZWN0ICopJlB5RmxvYXRfVHlwZSkKKyAgICAgICAgY3VzdG9tX2Z1bmMgPSBzLT5wYXJzZV9mbG9hdDsKKyAgICBlbHNlIGlmICghaXNfZmxvYXQgJiYgcy0+cGFyc2VfaW50ICE9IChQeU9iamVjdCAqKSAmUHlMb25nX1R5cGUpCisgICAgICAgIGN1c3RvbV9mdW5jID0gcy0+cGFyc2VfaW50OworICAgIGVsc2UKKyAgICAgICAgY3VzdG9tX2Z1bmMgPSBOVUxMOworCisgICAgaWYgKGN1c3RvbV9mdW5jKSB7CisgICAgICAgIC8qIGNvcHkgdGhlIHNlY3Rpb24gd2UgZGV0ZXJtaW5lZCB0byBiZSBhIG51bWJlciAqLworICAgICAgICBudW1zdHIgPSBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKGtpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIqKXN0ciArIGtpbmQgKiBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZHggLSBzdGFydCk7CisgICAgICAgIGlmIChudW1zdHIgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBydmFsID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhjdXN0b21fZnVuYywgbnVtc3RyLCBOVUxMKTsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIC8qIG5vIGZhc3QgcGF0aCBmb3IgdW5pY29kZSAtPiBpbnQsIGp1c3QgY2FsbCAqLwotICAgICAgICBydmFsID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhzLT5wYXJzZV9pbnQsIG51bXN0ciwgTlVMTCk7CisgICAgICAgIFB5X3NzaXplX3QgaSwgbjsKKyAgICAgICAgY2hhciAqYnVmOworICAgICAgICAvKiBTdHJhaWdodCBjb252ZXJzaW9uIHRvIEFTQ0lJLCB0byBhdm9pZCBjb3N0bHkgY29udmVyc2lvbiBvZgorICAgICAgICAgICBkZWNpbWFsIHVuaWNvZGUgZGlnaXRzICh3aGljaCBjYW5ub3QgYXBwZWFyIGhlcmUpICovCisgICAgICAgIG4gPSBpZHggLSBzdGFydDsKKyAgICAgICAgbnVtc3RyID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBuKTsKKyAgICAgICAgaWYgKG51bXN0ciA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGJ1ZiA9IFB5Qnl0ZXNfQVNfU1RSSU5HKG51bXN0cik7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAgICAgICAgICAgIGJ1ZltpXSA9IChjaGFyKSBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGkgKyBzdGFydCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGlzX2Zsb2F0KQorICAgICAgICAgICAgcnZhbCA9IFB5RmxvYXRfRnJvbVN0cmluZyhudW1zdHIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBydmFsID0gUHlMb25nX0Zyb21TdHJpbmcoYnVmLCBOVUxMLCAxMCk7CiAgICAgfQogICAgIFB5X0RFQ1JFRihudW1zdHIpOwogICAgICpuZXh0X2lkeF9wdHIgPSBpZHg7CkBAIC05MjgsMTMgKzk3NCwyMyBAQAogICAgIFJldHVybnMgYSBuZXcgUHlPYmplY3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIHRlcm0uCiAgICAgKi8KICAgICBQeU9iamVjdCAqcmVzOwotICAgIFB5X1VOSUNPREUgKnN0ciA9IFB5VW5pY29kZV9BU19VTklDT0RFKHB5c3RyKTsKLSAgICBQeV9zc2l6ZV90IGxlbmd0aCA9IFB5VW5pY29kZV9HRVRfU0laRShweXN0cik7CisgICAgdm9pZCAqc3RyOworICAgIGludCBraW5kOworICAgIFB5X3NzaXplX3QgbGVuZ3RoOworCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShweXN0cikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgc3RyID0gUHlVbmljb2RlX0RBVEEocHlzdHIpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChweXN0cik7CisgICAgbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocHlzdHIpOworCiAgICAgaWYgKGlkeCA+PSBsZW5ndGgpIHsKICAgICAgICAgUHlFcnJfU2V0Tm9uZShQeUV4Y19TdG9wSXRlcmF0aW9uKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHN3aXRjaCAoc3RyW2lkeF0pIHsKKworICAgIHN3aXRjaCAoUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHgpKSB7CiAgICAgICAgIGNhc2UgJyInOgogICAgICAgICAgICAgLyogc3RyaW5nICovCiAgICAgICAgICAgICByZXR1cm4gc2NhbnN0cmluZ191bmljb2RlKHB5c3RyLCBpZHggKyAxLApAQCAtOTU4LDcgKzEwMTQsNyBAQAogICAgICAgICAgICAgcmV0dXJuIHJlczsKICAgICAgICAgY2FzZSAnbic6CiAgICAgICAgICAgICAvKiBudWxsICovCi0gICAgICAgICAgICBpZiAoKGlkeCArIDMgPCBsZW5ndGgpICYmIHN0cltpZHggKyAxXSA9PSAndScgJiYgc3RyW2lkeCArIDJdID09ICdsJyAmJiBzdHJbaWR4ICsgM10gPT0gJ2wnKSB7CisgICAgICAgICAgICBpZiAoKGlkeCArIDMgPCBsZW5ndGgpICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgMSkgPT0gJ3UnICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgMikgPT0gJ2wnICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgMykgPT0gJ2wnKSB7CiAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwogICAgICAgICAgICAgICAgICpuZXh0X2lkeF9wdHIgPSBpZHggKyA0OwogICAgICAgICAgICAgICAgIHJldHVybiBQeV9Ob25lOwpAQCAtOTY2LDcgKzEwMjIsNyBAQAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgJ3QnOgogICAgICAgICAgICAgLyogdHJ1ZSAqLwotICAgICAgICAgICAgaWYgKChpZHggKyAzIDwgbGVuZ3RoKSAmJiBzdHJbaWR4ICsgMV0gPT0gJ3InICYmIHN0cltpZHggKyAyXSA9PSAndScgJiYgc3RyW2lkeCArIDNdID09ICdlJykgeworICAgICAgICAgICAgaWYgKChpZHggKyAzIDwgbGVuZ3RoKSAmJiBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDEpID09ICdyJyAmJiBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDIpID09ICd1JyAmJiBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDMpID09ICdlJykgewogICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihQeV9UcnVlKTsKICAgICAgICAgICAgICAgICAqbmV4dF9pZHhfcHRyID0gaWR4ICsgNDsKICAgICAgICAgICAgICAgICByZXR1cm4gUHlfVHJ1ZTsKQEAgLTk3NCw3ICsxMDMwLDEwIEBACiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSAnZic6CiAgICAgICAgICAgICAvKiBmYWxzZSAqLwotICAgICAgICAgICAgaWYgKChpZHggKyA0IDwgbGVuZ3RoKSAmJiBzdHJbaWR4ICsgMV0gPT0gJ2EnICYmIHN0cltpZHggKyAyXSA9PSAnbCcgJiYgc3RyW2lkeCArIDNdID09ICdzJyAmJiBzdHJbaWR4ICsgNF0gPT0gJ2UnKSB7CisgICAgICAgICAgICBpZiAoKGlkeCArIDQgPCBsZW5ndGgpICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgMSkgPT0gJ2EnICYmCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggKyAyKSA9PSAnbCcgJiYKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDMpID09ICdzJyAmJgorICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgNCkgPT0gJ2UnKSB7CiAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKFB5X0ZhbHNlKTsKICAgICAgICAgICAgICAgICAqbmV4dF9pZHhfcHRyID0gaWR4ICsgNTsKICAgICAgICAgICAgICAgICByZXR1cm4gUHlfRmFsc2U7CkBAIC05ODIsMTkgKzEwNDEsMzMgQEAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdOJzoKICAgICAgICAgICAgIC8qIE5hTiAqLwotICAgICAgICAgICAgaWYgKChpZHggKyAyIDwgbGVuZ3RoKSAmJiBzdHJbaWR4ICsgMV0gPT0gJ2EnICYmIHN0cltpZHggKyAyXSA9PSAnTicpIHsKKyAgICAgICAgICAgIGlmICgoaWR4ICsgMiA8IGxlbmd0aCkgJiYgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggKyAxKSA9PSAnYScgJiYKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDIpID09ICdOJykgewogICAgICAgICAgICAgICAgIHJldHVybiBfcGFyc2VfY29uc3RhbnQocywgIk5hTiIsIGlkeCwgbmV4dF9pZHhfcHRyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICdJJzoKICAgICAgICAgICAgIC8qIEluZmluaXR5ICovCi0gICAgICAgICAgICBpZiAoKGlkeCArIDcgPCBsZW5ndGgpICYmIHN0cltpZHggKyAxXSA9PSAnbicgJiYgc3RyW2lkeCArIDJdID09ICdmJyAmJiBzdHJbaWR4ICsgM10gPT0gJ2knICYmIHN0cltpZHggKyA0XSA9PSAnbicgJiYgc3RyW2lkeCArIDVdID09ICdpJyAmJiBzdHJbaWR4ICsgNl0gPT0gJ3QnICYmIHN0cltpZHggKyA3XSA9PSAneScpIHsKKyAgICAgICAgICAgIGlmICgoaWR4ICsgNyA8IGxlbmd0aCkgJiYgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggKyAxKSA9PSAnbicgJiYKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDIpID09ICdmJyAmJgorICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgMykgPT0gJ2knICYmCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggKyA0KSA9PSAnbicgJiYKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDUpID09ICdpJyAmJgorICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgNikgPT0gJ3QnICYmCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggKyA3KSA9PSAneScpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gX3BhcnNlX2NvbnN0YW50KHMsICJJbmZpbml0eSIsIGlkeCwgbmV4dF9pZHhfcHRyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlICctJzoKICAgICAgICAgICAgIC8qIC1JbmZpbml0eSAqLwotICAgICAgICAgICAgaWYgKChpZHggKyA4IDwgbGVuZ3RoKSAmJiBzdHJbaWR4ICsgMV0gPT0gJ0knICYmIHN0cltpZHggKyAyXSA9PSAnbicgJiYgc3RyW2lkeCArIDNdID09ICdmJyAmJiBzdHJbaWR4ICsgNF0gPT0gJ2knICYmIHN0cltpZHggKyA1XSA9PSAnbicgJiYgc3RyW2lkeCArIDZdID09ICdpJyAmJiBzdHJbaWR4ICsgN10gPT0gJ3QnICYmIHN0cltpZHggKyA4XSA9PSAneScpIHsKKyAgICAgICAgICAgIGlmICgoaWR4ICsgOCA8IGxlbmd0aCkgJiYgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggKyAxKSA9PSAnSScgJiYKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDIpID09ICduJyAmJgorICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgMykgPT0gJ2YnICYmCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggKyA0KSA9PSAnaScgJiYKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDUpID09ICduJyAmJgorICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmQsIHN0ciwgaWR4ICsgNikgPT0gJ2knICYmCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1JFQUQoa2luZCwgc3RyLCBpZHggKyA3KSA9PSAndCcgJiYKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRChraW5kLCBzdHIsIGlkeCArIDgpID09ICd5JykgewogICAgICAgICAgICAgICAgIHJldHVybiBfcGFyc2VfY29uc3RhbnQocywgIi1JbmZpbml0eSIsIGlkeCwgbmV4dF9pZHhfcHRyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTIxMCwyMiArMTI4MywyMiBAQAogICAgIC8qIFB5dGhvbiBjYWxsYWJsZSBpbnRlcmZhY2UgdG8gZW5jb2RlX2xpc3RlbmNvZGVfb2JqICovCiAgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJvYmoiLCAiX2N1cnJlbnRfaW5kZW50X2xldmVsIiwgTlVMTH07CiAgICAgUHlPYmplY3QgKm9iajsKLSAgICBQeU9iamVjdCAqcnZhbDsKICAgICBQeV9zc2l6ZV90IGluZGVudF9sZXZlbDsKICAgICBQeUVuY29kZXJPYmplY3QgKnM7CisgICAgX1B5QWNjdSBhY2M7CisKICAgICBhc3NlcnQoUHlFbmNvZGVyX0NoZWNrKHNlbGYpKTsKICAgICBzID0gKFB5RW5jb2Rlck9iamVjdCAqKXNlbGY7CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk9PJjpfaXRlcmVuY29kZSIsIGt3bGlzdCwKICAgICAgICAgJm9iaiwgX2NvbnZlcnRQeUludF9Bc1NzaXplX3QsICZpbmRlbnRfbGV2ZWwpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBydmFsID0gUHlMaXN0X05ldygwKTsKLSAgICBpZiAocnZhbCA9PSBOVUxMKQorICAgIGlmIChfUHlBY2N1X0luaXQoJmFjYykpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmIChlbmNvZGVyX2xpc3RlbmNvZGVfb2JqKHMsIHJ2YWwsIG9iaiwgaW5kZW50X2xldmVsKSkgewotICAgICAgICBQeV9ERUNSRUYocnZhbCk7CisgICAgaWYgKGVuY29kZXJfbGlzdGVuY29kZV9vYmoocywgJmFjYywgb2JqLCBpbmRlbnRfbGV2ZWwpKSB7CisgICAgICAgIF9QeUFjY3VfRGVzdHJveSgmYWNjKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBydmFsOworICAgIHJldHVybiBfUHlBY2N1X0ZpbmlzaEFzTGlzdCgmYWNjKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTEyOTcsMTggKzEzNzAsMTkgQEAKIH0KIAogc3RhdGljIGludAotX3N0ZWFsX2xpc3RfYXBwZW5kKFB5T2JqZWN0ICpsc3QsIFB5T2JqZWN0ICpzdG9sZW4pCitfc3RlYWxfYWNjdW11bGF0ZShfUHlBY2N1ICphY2MsIFB5T2JqZWN0ICpzdG9sZW4pCiB7CiAgICAgLyogQXBwZW5kIHN0b2xlbiBhbmQgdGhlbiBkZWNyZW1lbnQgaXRzIHJlZmVyZW5jZSBjb3VudCAqLwotICAgIGludCBydmFsID0gUHlMaXN0X0FwcGVuZChsc3QsIHN0b2xlbik7CisgICAgaW50IHJ2YWwgPSBfUHlBY2N1X0FjY3VtdWxhdGUoYWNjLCBzdG9sZW4pOwogICAgIFB5X0RFQ1JFRihzdG9sZW4pOwogICAgIHJldHVybiBydmFsOwogfQogCiBzdGF0aWMgaW50Ci1lbmNvZGVyX2xpc3RlbmNvZGVfb2JqKFB5RW5jb2Rlck9iamVjdCAqcywgUHlPYmplY3QgKnJ2YWwsIFB5T2JqZWN0ICpvYmosIFB5X3NzaXplX3QgaW5kZW50X2xldmVsKQorZW5jb2Rlcl9saXN0ZW5jb2RlX29iaihQeUVuY29kZXJPYmplY3QgKnMsIF9QeUFjY3UgKmFjYywKKyAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm9iaiwgUHlfc3NpemVfdCBpbmRlbnRfbGV2ZWwpCiB7Ci0gICAgLyogRW5jb2RlIFB5dGhvbiBvYmplY3Qgb2JqIHRvIGEgSlNPTiB0ZXJtLCBydmFsIGlzIGEgUHlMaXN0ICovCisgICAgLyogRW5jb2RlIFB5dGhvbiBvYmplY3Qgb2JqIHRvIGEgSlNPTiB0ZXJtICovCiAgICAgUHlPYmplY3QgKm5ld29iajsKICAgICBpbnQgcnY7CiAKQEAgLTEzMTYsMzggKzEzOTAsMzggQEAKICAgICAgICAgUHlPYmplY3QgKmNzdHIgPSBfZW5jb2RlZF9jb25zdChvYmopOwogICAgICAgICBpZiAoY3N0ciA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICByZXR1cm4gX3N0ZWFsX2xpc3RfYXBwZW5kKHJ2YWwsIGNzdHIpOworICAgICAgICByZXR1cm4gX3N0ZWFsX2FjY3VtdWxhdGUoYWNjLCBjc3RyKTsKICAgICB9CiAgICAgZWxzZSBpZiAoUHlVbmljb2RlX0NoZWNrKG9iaikpCiAgICAgewogICAgICAgICBQeU9iamVjdCAqZW5jb2RlZCA9IGVuY29kZXJfZW5jb2RlX3N0cmluZyhzLCBvYmopOwogICAgICAgICBpZiAoZW5jb2RlZCA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICByZXR1cm4gX3N0ZWFsX2xpc3RfYXBwZW5kKHJ2YWwsIGVuY29kZWQpOworICAgICAgICByZXR1cm4gX3N0ZWFsX2FjY3VtdWxhdGUoYWNjLCBlbmNvZGVkKTsKICAgICB9CiAgICAgZWxzZSBpZiAoUHlMb25nX0NoZWNrKG9iaikpIHsKICAgICAgICAgUHlPYmplY3QgKmVuY29kZWQgPSBQeU9iamVjdF9TdHIob2JqKTsKICAgICAgICAgaWYgKGVuY29kZWQgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgcmV0dXJuIF9zdGVhbF9saXN0X2FwcGVuZChydmFsLCBlbmNvZGVkKTsKKyAgICAgICAgcmV0dXJuIF9zdGVhbF9hY2N1bXVsYXRlKGFjYywgZW5jb2RlZCk7CiAgICAgfQogICAgIGVsc2UgaWYgKFB5RmxvYXRfQ2hlY2sob2JqKSkgewogICAgICAgICBQeU9iamVjdCAqZW5jb2RlZCA9IGVuY29kZXJfZW5jb2RlX2Zsb2F0KHMsIG9iaik7CiAgICAgICAgIGlmIChlbmNvZGVkID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIHJldHVybiBfc3RlYWxfbGlzdF9hcHBlbmQocnZhbCwgZW5jb2RlZCk7CisgICAgICAgIHJldHVybiBfc3RlYWxfYWNjdW11bGF0ZShhY2MsIGVuY29kZWQpOwogICAgIH0KICAgICBlbHNlIGlmIChQeUxpc3RfQ2hlY2sob2JqKSB8fCBQeVR1cGxlX0NoZWNrKG9iaikpIHsKICAgICAgICAgaWYgKFB5X0VudGVyUmVjdXJzaXZlQ2FsbCgiIHdoaWxlIGVuY29kaW5nIGEgSlNPTiBvYmplY3QiKSkKICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgcnYgPSBlbmNvZGVyX2xpc3RlbmNvZGVfbGlzdChzLCBydmFsLCBvYmosIGluZGVudF9sZXZlbCk7CisgICAgICAgIHJ2ID0gZW5jb2Rlcl9saXN0ZW5jb2RlX2xpc3QocywgYWNjLCBvYmosIGluZGVudF9sZXZlbCk7CiAgICAgICAgIFB5X0xlYXZlUmVjdXJzaXZlQ2FsbCgpOwogICAgICAgICByZXR1cm4gcnY7CiAgICAgfQogICAgIGVsc2UgaWYgKFB5RGljdF9DaGVjayhvYmopKSB7CiAgICAgICAgIGlmIChQeV9FbnRlclJlY3Vyc2l2ZUNhbGwoIiB3aGlsZSBlbmNvZGluZyBhIEpTT04gb2JqZWN0IikpCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIHJ2ID0gZW5jb2Rlcl9saXN0ZW5jb2RlX2RpY3QocywgcnZhbCwgb2JqLCBpbmRlbnRfbGV2ZWwpOworICAgICAgICBydiA9IGVuY29kZXJfbGlzdGVuY29kZV9kaWN0KHMsIGFjYywgb2JqLCBpbmRlbnRfbGV2ZWwpOwogICAgICAgICBQeV9MZWF2ZVJlY3Vyc2l2ZUNhbGwoKTsKICAgICAgICAgcmV0dXJuIHJ2OwogICAgIH0KQEAgLTEzNzgsNyArMTQ1Miw3IEBACiAKICAgICAgICAgaWYgKFB5X0VudGVyUmVjdXJzaXZlQ2FsbCgiIHdoaWxlIGVuY29kaW5nIGEgSlNPTiBvYmplY3QiKSkKICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgcnYgPSBlbmNvZGVyX2xpc3RlbmNvZGVfb2JqKHMsIHJ2YWwsIG5ld29iaiwgaW5kZW50X2xldmVsKTsKKyAgICAgICAgcnYgPSBlbmNvZGVyX2xpc3RlbmNvZGVfb2JqKHMsIGFjYywgbmV3b2JqLCBpbmRlbnRfbGV2ZWwpOwogICAgICAgICBQeV9MZWF2ZVJlY3Vyc2l2ZUNhbGwoKTsKIAogICAgICAgICBQeV9ERUNSRUYobmV3b2JqKTsKQEAgLTEzOTgsOSArMTQ3MiwxMCBAQAogfQogCiBzdGF0aWMgaW50Ci1lbmNvZGVyX2xpc3RlbmNvZGVfZGljdChQeUVuY29kZXJPYmplY3QgKnMsIFB5T2JqZWN0ICpydmFsLCBQeU9iamVjdCAqZGN0LCBQeV9zc2l6ZV90IGluZGVudF9sZXZlbCkKK2VuY29kZXJfbGlzdGVuY29kZV9kaWN0KFB5RW5jb2Rlck9iamVjdCAqcywgX1B5QWNjdSAqYWNjLAorICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmRjdCwgUHlfc3NpemVfdCBpbmRlbnRfbGV2ZWwpCiB7Ci0gICAgLyogRW5jb2RlIFB5dGhvbiBkaWN0IGRjdCBhIEpTT04gdGVybSwgcnZhbCBpcyBhIFB5TGlzdCAqLworICAgIC8qIEVuY29kZSBQeXRob24gZGljdCBkY3QgYSBKU09OIHRlcm0gKi8KICAgICBzdGF0aWMgUHlPYmplY3QgKm9wZW5fZGljdCA9IE5VTEw7CiAgICAgc3RhdGljIFB5T2JqZWN0ICpjbG9zZV9kaWN0ID0gTlVMTDsKICAgICBzdGF0aWMgUHlPYmplY3QgKmVtcHR5X2RpY3QgPSBOVUxMOwpAQCAtMTQyMCw3ICsxNDk1LDcgQEAKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgICAgaWYgKFB5X1NJWkUoZGN0KSA9PSAwKQotICAgICAgICByZXR1cm4gUHlMaXN0X0FwcGVuZChydmFsLCBlbXB0eV9kaWN0KTsKKyAgICAgICAgcmV0dXJuIF9QeUFjY3VfQWNjdW11bGF0ZShhY2MsIGVtcHR5X2RpY3QpOwogCiAgICAgaWYgKHMtPm1hcmtlcnMgIT0gUHlfTm9uZSkgewogICAgICAgICBpbnQgaGFzX2tleTsKQEAgLTE0MzgsNyArMTUxMyw3IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoUHlMaXN0X0FwcGVuZChydmFsLCBvcGVuX2RpY3QpKQorICAgIGlmIChfUHlBY2N1X0FjY3VtdWxhdGUoYWNjLCBvcGVuX2RpY3QpKQogICAgICAgICBnb3RvIGJhaWw7CiAKICAgICBpZiAocy0+aW5kZW50ICE9IFB5X05vbmUpIHsKQEAgLTE1MjUsNyArMTYwMCw3IEBACiAgICAgICAgIH0KIAogICAgICAgICBpZiAoaWR4KSB7Ci0gICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChydmFsLCBzLT5pdGVtX3NlcGFyYXRvcikpCisgICAgICAgICAgICBpZiAoX1B5QWNjdV9BY2N1bXVsYXRlKGFjYywgcy0+aXRlbV9zZXBhcmF0b3IpKQogICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgfQogCkBAIC0xNTMzLDE2ICsxNjA4LDE2IEBACiAgICAgICAgIFB5X0NMRUFSKGtzdHIpOwogICAgICAgICBpZiAoZW5jb2RlZCA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBiYWlsOwotICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChydmFsLCBlbmNvZGVkKSkgeworICAgICAgICBpZiAoX1B5QWNjdV9BY2N1bXVsYXRlKGFjYywgZW5jb2RlZCkpIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihlbmNvZGVkKTsKICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgfQogICAgICAgICBQeV9ERUNSRUYoZW5jb2RlZCk7Ci0gICAgICAgIGlmIChQeUxpc3RfQXBwZW5kKHJ2YWwsIHMtPmtleV9zZXBhcmF0b3IpKQorICAgICAgICBpZiAoX1B5QWNjdV9BY2N1bXVsYXRlKGFjYywgcy0+a2V5X3NlcGFyYXRvcikpCiAgICAgICAgICAgICBnb3RvIGJhaWw7CiAKICAgICAgICAgdmFsdWUgPSBQeVR1cGxlX0dFVF9JVEVNKGl0ZW0sIDEpOwotICAgICAgICBpZiAoZW5jb2Rlcl9saXN0ZW5jb2RlX29iaihzLCBydmFsLCB2YWx1ZSwgaW5kZW50X2xldmVsKSkKKyAgICAgICAgaWYgKGVuY29kZXJfbGlzdGVuY29kZV9vYmoocywgYWNjLCB2YWx1ZSwgaW5kZW50X2xldmVsKSkKICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgaWR4ICs9IDE7CiAgICAgICAgIFB5X0RFQ1JFRihpdGVtKTsKQEAgLTE1NTYsMTQgKzE2MzEsMTMgQEAKICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgUHlfQ0xFQVIoaWRlbnQpOwogICAgIH0KKyAgICAvKiBUT0RPIERPRVMgTk9UIFJVTjsgZGVhZCBjb2RlCiAgICAgaWYgKHMtPmluZGVudCAhPSBQeV9Ob25lKSB7Ci0gICAgICAgIC8qIFRPRE86IERPRVMgTk9UIFJVTiAqLwogICAgICAgICBpbmRlbnRfbGV2ZWwgLT0gMTsKLSAgICAgICAgLyoKLSAgICAgICAgICAgIHlpZWxkICdcbicgKyAoJyAnICogKF9pbmRlbnQgKiBfY3VycmVudF9pbmRlbnRfbGV2ZWwpKQotICAgICAgICAqLwotICAgIH0KLSAgICBpZiAoUHlMaXN0X0FwcGVuZChydmFsLCBjbG9zZV9kaWN0KSkKKworICAgICAgICB5aWVsZCAnXG4nICsgKCcgJyAqIChfaW5kZW50ICogX2N1cnJlbnRfaW5kZW50X2xldmVsKSkKKyAgICB9Ki8KKyAgICBpZiAoX1B5QWNjdV9BY2N1bXVsYXRlKGFjYywgY2xvc2VfZGljdCkpCiAgICAgICAgIGdvdG8gYmFpbDsKICAgICByZXR1cm4gMDsKIApAQCAtMTU3Nyw5ICsxNjUxLDEwIEBACiAKIAogc3RhdGljIGludAotZW5jb2Rlcl9saXN0ZW5jb2RlX2xpc3QoUHlFbmNvZGVyT2JqZWN0ICpzLCBQeU9iamVjdCAqcnZhbCwgUHlPYmplY3QgKnNlcSwgUHlfc3NpemVfdCBpbmRlbnRfbGV2ZWwpCitlbmNvZGVyX2xpc3RlbmNvZGVfbGlzdChQeUVuY29kZXJPYmplY3QgKnMsIF9QeUFjY3UgKmFjYywKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpzZXEsIFB5X3NzaXplX3QgaW5kZW50X2xldmVsKQogewotICAgIC8qIEVuY29kZSBQeXRob24gbGlzdCBzZXEgdG8gYSBKU09OIHRlcm0sIHJ2YWwgaXMgYSBQeUxpc3QgKi8KKyAgICAvKiBFbmNvZGUgUHl0aG9uIGxpc3Qgc2VxIHRvIGEgSlNPTiB0ZXJtICovCiAgICAgc3RhdGljIFB5T2JqZWN0ICpvcGVuX2FycmF5ID0gTlVMTDsKICAgICBzdGF0aWMgUHlPYmplY3QgKmNsb3NlX2FycmF5ID0gTlVMTDsKICAgICBzdGF0aWMgUHlPYmplY3QgKmVtcHR5X2FycmF5ID0gTlVMTDsKQEAgLTE2MDMsNyArMTY3OCw3IEBACiAgICAgbnVtX2l0ZW1zID0gUHlTZXF1ZW5jZV9GYXN0X0dFVF9TSVpFKHNfZmFzdCk7CiAgICAgaWYgKG51bV9pdGVtcyA9PSAwKSB7CiAgICAgICAgIFB5X0RFQ1JFRihzX2Zhc3QpOwotICAgICAgICByZXR1cm4gUHlMaXN0X0FwcGVuZChydmFsLCBlbXB0eV9hcnJheSk7CisgICAgICAgIHJldHVybiBfUHlBY2N1X0FjY3VtdWxhdGUoYWNjLCBlbXB0eV9hcnJheSk7CiAgICAgfQogCiAgICAgaWYgKHMtPm1hcmtlcnMgIT0gUHlfTm9uZSkgewpAQCAtMTYyMyw3ICsxNjk4LDcgQEAKICAgICB9CiAKICAgICBzZXFfaXRlbXMgPSBQeVNlcXVlbmNlX0Zhc3RfSVRFTVMoc19mYXN0KTsKLSAgICBpZiAoUHlMaXN0X0FwcGVuZChydmFsLCBvcGVuX2FycmF5KSkKKyAgICBpZiAoX1B5QWNjdV9BY2N1bXVsYXRlKGFjYywgb3Blbl9hcnJheSkpCiAgICAgICAgIGdvdG8gYmFpbDsKICAgICBpZiAocy0+aW5kZW50ICE9IFB5X05vbmUpIHsKICAgICAgICAgLyogVE9ETzogRE9FUyBOT1QgUlVOICovCkBAIC0xNjM3LDEwICsxNzEyLDEwIEBACiAgICAgZm9yIChpID0gMDsgaSA8IG51bV9pdGVtczsgaSsrKSB7CiAgICAgICAgIFB5T2JqZWN0ICpvYmogPSBzZXFfaXRlbXNbaV07CiAgICAgICAgIGlmIChpKSB7Ci0gICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChydmFsLCBzLT5pdGVtX3NlcGFyYXRvcikpCisgICAgICAgICAgICBpZiAoX1B5QWNjdV9BY2N1bXVsYXRlKGFjYywgcy0+aXRlbV9zZXBhcmF0b3IpKQogICAgICAgICAgICAgICAgIGdvdG8gYmFpbDsKICAgICAgICAgfQotICAgICAgICBpZiAoZW5jb2Rlcl9saXN0ZW5jb2RlX29iaihzLCBydmFsLCBvYmosIGluZGVudF9sZXZlbCkpCisgICAgICAgIGlmIChlbmNvZGVyX2xpc3RlbmNvZGVfb2JqKHMsIGFjYywgb2JqLCBpbmRlbnRfbGV2ZWwpKQogICAgICAgICAgICAgZ290byBiYWlsOwogICAgIH0KICAgICBpZiAoaWRlbnQgIT0gTlVMTCkgewpAQCAtMTY0OCwxNCArMTcyMywxNCBAQAogICAgICAgICAgICAgZ290byBiYWlsOwogICAgICAgICBQeV9DTEVBUihpZGVudCk7CiAgICAgfQorCisgICAgLyogVE9ETzogRE9FUyBOT1QgUlVOCiAgICAgaWYgKHMtPmluZGVudCAhPSBQeV9Ob25lKSB7Ci0gICAgICAgIC8qIFRPRE86IERPRVMgTk9UIFJVTiAqLwogICAgICAgICBpbmRlbnRfbGV2ZWwgLT0gMTsKLSAgICAgICAgLyoKLSAgICAgICAgICAgIHlpZWxkICdcbicgKyAoJyAnICogKF9pbmRlbnQgKiBfY3VycmVudF9pbmRlbnRfbGV2ZWwpKQotICAgICAgICAqLwotICAgIH0KLSAgICBpZiAoUHlMaXN0X0FwcGVuZChydmFsLCBjbG9zZV9hcnJheSkpCisKKyAgICAgICAgeWllbGQgJ1xuJyArICgnICcgKiAoX2luZGVudCAqIF9jdXJyZW50X2luZGVudF9sZXZlbCkpCisgICAgfSovCisgICAgaWYgKF9QeUFjY3VfQWNjdW11bGF0ZShhY2MsIGNsb3NlX2FycmF5KSkKICAgICAgICAgZ290byBiYWlsOwogICAgIFB5X0RFQ1JFRihzX2Zhc3QpOwogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fbG9jYWxlbW9kdWxlLmMgYi9Nb2R1bGVzL19sb2NhbGVtb2R1bGUuYwppbmRleCAxMDAxZGQyLi5jYzY4OGJhIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19sb2NhbGVtb2R1bGUuYworKysgYi9Nb2R1bGVzL19sb2NhbGVtb2R1bGUuYwpAQCAtNDIsNDMgKzQyLDYgQEAKIAogc3RhdGljIFB5T2JqZWN0ICpFcnJvcjsKIAotLyogQ29udmVydCBhIGNoYXIqIHRvIGEgVW5pY29kZSBvYmplY3QgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IGxvY2FsZSAqLwotc3RhdGljIFB5T2JqZWN0Kgotc3RyMnVuaShjb25zdCBjaGFyKiBzKQotewotI2lmZGVmIEhBVkVfQlJPS0VOX01CU1RPV0NTCi0gICAgc2l6ZV90IG5lZWRlZCA9IHN0cmxlbihzKTsKLSNlbHNlCi0gICAgc2l6ZV90IG5lZWRlZCA9IG1ic3Rvd2NzKE5VTEwsIHMsIDApOwotI2VuZGlmCi0gICAgc2l6ZV90IHJlczE7Ci0gICAgd2NoYXJfdCBzbWFsbGJ1ZlszMF07Ci0gICAgd2NoYXJfdCAqZGVzdDsKLSAgICBQeU9iamVjdCAqcmVzMjsKLSAgICBpZiAobmVlZGVkID09IChzaXplX3QpLTEpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJDYW5ub3QgY29udmVydCBieXRlIHRvIHN0cmluZyIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgaWYgKG5lZWRlZCpzaXplb2Yod2NoYXJfdCkgPCBzaXplb2Yoc21hbGxidWYpKQotICAgICAgICBkZXN0ID0gc21hbGxidWY7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGRlc3QgPSBQeU1lbV9NYWxsb2MoKG5lZWRlZCsxKSpzaXplb2Yod2NoYXJfdCkpOwotICAgICAgICBpZiAoIWRlc3QpCi0gICAgICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKLSAgICB9Ci0gICAgLyogVGhpcyBzaG91bGRuJ3QgZmFpbCBub3cgKi8KLSAgICByZXMxID0gbWJzdG93Y3MoZGVzdCwgcywgbmVlZGVkKzEpOwotI2lmZGVmIEhBVkVfQlJPS0VOX01CU1RPV0NTCi0gICAgYXNzZXJ0KHJlczEgIT0gKHNpemVfdCktMSk7Ci0jZWxzZQotICAgIGFzc2VydChyZXMxID09IG5lZWRlZCk7Ci0jZW5kaWYKLSAgICByZXMyID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcihkZXN0LCByZXMxKTsKLSAgICBpZiAoZGVzdCAhPSBzbWFsbGJ1ZikKLSAgICAgICAgUHlNZW1fRnJlZShkZXN0KTsKLSAgICByZXR1cm4gcmVzMjsKLX0KLQogLyogc3VwcG9ydCBmdW5jdGlvbnMgZm9yIGZvcm1hdHRpbmcgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyAqLwogCiBQeURvY19TVFJWQVIoc2V0bG9jYWxlX19kb2NfXywKQEAgLTE0OSw3ICsxMTIsNyBAQAogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKEVycm9yLCAidW5zdXBwb3J0ZWQgbG9jYWxlIHNldHRpbmciKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIHJlc3VsdF9vYmplY3QgPSBzdHIydW5pKHJlc3VsdCk7CisgICAgICAgIHJlc3VsdF9vYmplY3QgPSBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKHJlc3VsdCwgTlVMTCk7CiAgICAgICAgIGlmICghcmVzdWx0X29iamVjdCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0gZWxzZSB7CkBAIC0xNTksNyArMTIyLDcgQEAKICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhFcnJvciwgImxvY2FsZSBxdWVyeSBmYWlsZWQiKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIHJlc3VsdF9vYmplY3QgPSBzdHIydW5pKHJlc3VsdCk7CisgICAgICAgIHJlc3VsdF9vYmplY3QgPSBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKHJlc3VsdCwgTlVMTCk7CiAgICAgfQogICAgIHJldHVybiByZXN1bHRfb2JqZWN0OwogfQpAQCAtMTg1LDcgKzE0OCw3IEBACiAgICAgICAgaW52b2x2ZWQgaGVyZWluICovCiAKICNkZWZpbmUgUkVTVUxUX1NUUklORyhzKVwKLSAgICB4ID0gc3RyMnVuaShsLT5zKTsgICBcCisgICAgeCA9IFB5VW5pY29kZV9EZWNvZGVMb2NhbGUobC0+cywgTlVMTCk7ICAgXAogICAgIGlmICgheCkgZ290byBmYWlsZWQ7XAogICAgIFB5RGljdF9TZXRJdGVtU3RyaW5nKHJlc3VsdCwgI3MsIHgpO1wKICAgICBQeV9YREVDUkVGKHgpCkBAIC0yNzEsNTEgKzIzNCw0MyBAQAogc3RhdGljIFB5T2JqZWN0KgogUHlMb2NhbGVfc3RyeGZybShQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCiB7Ci0gICAgUHlfVU5JQ09ERSAqczA7Ci0gICAgUHlfc3NpemVfdCBuMDsKLSAgICB3Y2hhcl90ICpzLCAqYnVmID0gTlVMTDsKLSAgICBzaXplX3QgbjEsIG4yOworICAgIFB5T2JqZWN0ICpzdHI7CisgICAgUHlfc3NpemVfdCBuMTsKKyAgICB3Y2hhcl90ICpzID0gTlVMTCwgKmJ1ZiA9IE5VTEw7CisgICAgc2l6ZV90IG4yOwogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwotI2lmIFB5X1VOSUNPREVfU0laRSAhPSBTSVpFT0ZfV0NIQVJfVAotICAgIFB5X3NzaXplX3QgaTsKLSNlbmRpZgogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ1IzpzdHJ4ZnJtIiwgJnMwLCAmbjApKQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVTpzdHJ4ZnJtIiwgJnN0cikpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0jaWYgUHlfVU5JQ09ERV9TSVpFID09IFNJWkVPRl9XQ0hBUl9UCi0gICAgcyA9ICh3Y2hhcl90ICopIHMwOwotI2Vsc2UKLSAgICBzID0gUHlNZW1fTWFsbG9jKChuMCsxKSpzaXplb2Yod2NoYXJfdCkpOwotICAgIGlmICghcykKLSAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgZm9yIChpPTA7IGk8PW4wOyBpKyspCi0gICAgICAgIHNbaV0gPSBzMFtpXTsKLSNlbmRpZgorICAgIHMgPSBQeVVuaWNvZGVfQXNXaWRlQ2hhclN0cmluZyhzdHIsICZuMSk7CisgICAgaWYgKHMgPT0gTlVMTCkKKyAgICAgICAgZ290byBleGl0OwogCiAgICAgLyogYXNzdW1lIG5vIGNoYW5nZSBpbiBzaXplLCBmaXJzdCAqLwotICAgIG4xID0gd2NzbGVuKHMpICsgMTsKLSAgICBidWYgPSBQeU1lbV9NYWxsb2MobjEqc2l6ZW9mKHdjaGFyX3QpKTsKKyAgICBuMSA9IG4xICsgMTsKKyAgICBidWYgPSBQeU1lbV9NYWxsb2MobjEgKiBzaXplb2Yod2NoYXJfdCkpOwogICAgIGlmICghYnVmKSB7CiAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAgICAgbjIgPSB3Y3N4ZnJtKGJ1ZiwgcywgbjEpOwotICAgIGlmIChuMiA+PSBuMSkgeworICAgIGlmIChuMiA+PSAoc2l6ZV90KW4xKSB7CiAgICAgICAgIC8qIG1vcmUgc3BhY2UgbmVlZGVkICovCi0gICAgICAgIGJ1ZiA9IFB5TWVtX1JlYWxsb2MoYnVmLCAobjIrMSkqc2l6ZW9mKHdjaGFyX3QpKTsKLSAgICAgICAgaWYgKCFidWYpIHsKKyAgICAgICAgd2NoYXJfdCAqIG5ld19idWYgPSBQeU1lbV9SZWFsbG9jKGJ1ZiwgKG4yKzEpKnNpemVvZih3Y2hhcl90KSk7CisgICAgICAgIGlmICghbmV3X2J1ZikgewogICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKICAgICAgICAgICAgIGdvdG8gZXhpdDsKICAgICAgICAgfQorICAgICAgICBidWYgPSBuZXdfYnVmOwogICAgICAgICBuMiA9IHdjc3hmcm0oYnVmLCBzLCBuMisxKTsKICAgICB9CiAgICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcihidWYsIG4yKTsKLSBleGl0OgotICAgIGlmIChidWYpIFB5TWVtX0ZyZWUoYnVmKTsKLSNpZiBQeV9VTklDT0RFX1NJWkUgIT0gU0laRU9GX1dDSEFSX1QKLSAgICBQeU1lbV9GcmVlKHMpOwotI2VuZGlmCitleGl0OgorICAgIGlmIChidWYpCisgICAgICAgIFB5TWVtX0ZyZWUoYnVmKTsKKyAgICBpZiAocykKKyAgICAgICAgUHlNZW1fRnJlZShzKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogI2VuZGlmCkBAIC00ODUsNyArNDQwLDcgQEAKICAgICAgICAgICAgICAgIGluc3RlYWQgb2YgYW4gZW1wdHkgc3RyaW5nIGZvciBubF9sYW5naW5mbyhFUkEpLiAgKi8KICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnJlc3VsdCA9IG5sX2xhbmdpbmZvKGl0ZW0pOwogICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICE9IE5VTEwgPyByZXN1bHQgOiAiIjsKLSAgICAgICAgICAgIHJldHVybiBzdHIydW5pKHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0RlY29kZUxvY2FsZShyZXN1bHQsIE5VTEwpOwogICAgICAgICB9CiAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJ1bnN1cHBvcnRlZCBsYW5naW5mbyBjb25zdGFudCIpOwogICAgIHJldHVybiBOVUxMOwpAQCAtNTA0LDcgKzQ1OSw3IEBACiAgICAgY2hhciAqaW47CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzIiwgJmluKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0cjJ1bmkoZ2V0dGV4dChpbikpOworICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKGdldHRleHQoaW4pLCBOVUxMKTsKIH0KIAogUHlEb2NfU1RSVkFSKGRnZXR0ZXh0X19kb2NfXywKQEAgLTUxNyw3ICs0NzIsNyBAQAogICAgIGNoYXIgKmRvbWFpbiwgKmluOwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAienMiLCAmZG9tYWluLCAmaW4pKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc3RyMnVuaShkZ2V0dGV4dChkb21haW4sIGluKSk7CisgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVMb2NhbGUoZGdldHRleHQoZG9tYWluLCBpbiksIE5VTEwpOwogfQogCiBQeURvY19TVFJWQVIoZGNnZXR0ZXh0X19kb2NfXywKQEAgLTUzMSw3ICs0ODYsNyBAQAogICAgIGludCBjYXRlZ29yeTsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInpzaSIsICZkb21haW4sICZtc2dpZCwgJmNhdGVnb3J5KSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0cjJ1bmkoZGNnZXR0ZXh0KGRvbWFpbixtc2dpZCxjYXRlZ29yeSkpOworICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKGRjZ2V0dGV4dChkb21haW4sbXNnaWQsY2F0ZWdvcnkpLCBOVUxMKTsKIH0KIAogUHlEb2NfU1RSVkFSKHRleHRkb21haW5fX2RvY19fLApAQCAtNTQ5LDcgKzUwNCw3IEBACiAgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBzdHIydW5pKGRvbWFpbik7CisgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVMb2NhbGUoZG9tYWluLCBOVUxMKTsKIH0KIAogUHlEb2NfU1RSVkFSKGJpbmR0ZXh0ZG9tYWluX19kb2NfXywKQEAgLTU4MSw3ICs1MzYsNyBAQAogICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICByZXN1bHQgPSBzdHIydW5pKGN1cnJlbnRfZGlybmFtZSk7CisgICAgcmVzdWx0ID0gUHlVbmljb2RlX0RlY29kZUxvY2FsZShjdXJyZW50X2Rpcm5hbWUsIE5VTEwpOwogICAgIFB5X1hERUNSRUYoZGlybmFtZV9ieXRlcyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTU5OSw3ICs1NTQsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBjb2Rlc2V0ID0gYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoZG9tYWluLCBjb2Rlc2V0KTsKICAgICBpZiAoY29kZXNldCkKLSAgICAgICAgcmV0dXJuIHN0cjJ1bmkoY29kZXNldCk7CisgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKGNvZGVzZXQsIE5VTEwpOwogICAgIFB5X1JFVFVSTl9OT05FOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19sc3Byb2YuYyBiL01vZHVsZXMvX2xzcHJvZi5jCmluZGV4IGNjNDEyYmYuLmIwYTIyNmIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX2xzcHJvZi5jCisrKyBiL01vZHVsZXMvX2xzcHJvZi5jCkBAIC0xNzYsMzYgKzE3NiwyOSBAQAogICAgIGlmIChmbi0+bV9zZWxmID09IE5VTEwpIHsKICAgICAgICAgLyogYnVpbHQtaW4gZnVuY3Rpb246IGxvb2sgdXAgdGhlIG1vZHVsZSBuYW1lICovCiAgICAgICAgIFB5T2JqZWN0ICptb2QgPSBmbi0+bV9tb2R1bGU7Ci0gICAgICAgIGNvbnN0IGNoYXIgKm1vZG5hbWU7Ci0gICAgICAgIGlmIChtb2QgJiYgUHlVbmljb2RlX0NoZWNrKG1vZCkpIHsKLSAgICAgICAgICAgIC8qIFhYWDogVGhlIGZvbGxvd2luZyB3aWxsIHRydW5jYXRlIG1vZHVsZSBuYW1lcyB3aXRoIGVtYmVkZGVkCi0gICAgICAgICAgICAgKiBudWxsLWNoYXJhY3RlcnMuICBJdCBpcyB1bmxpa2VseSB0aGF0IHRoaXMgY2FuIGhhcHBlbiBpbgotICAgICAgICAgICAgICogcHJhY3RpY2UgYW5kIHRoZSBjb25jZXF1ZW5jZXMgYXJlIG5vdCBzZXJpb3VzIGVub3VnaCB0bwotICAgICAgICAgICAgICogaW50cm9kdWNlIGV4dHJhIGNoZWNrcyBoZXJlLgotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBtb2RuYW1lID0gX1B5VW5pY29kZV9Bc1N0cmluZyhtb2QpOwotICAgICAgICAgICAgaWYgKG1vZG5hbWUgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIG1vZG5hbWUgPSAiPGVuY29kaW5nIGVycm9yPiI7Ci0gICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgUHlPYmplY3QgKm1vZG5hbWUgPSBOVUxMOworICAgICAgICBpZiAobW9kICE9IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sobW9kKSkgeworICAgICAgICAgICAgICAgIG1vZG5hbWUgPSBtb2Q7CisgICAgICAgICAgICAgICAgUHlfSU5DUkVGKG1vZG5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoUHlNb2R1bGVfQ2hlY2sobW9kKSkgeworICAgICAgICAgICAgICAgIG1vZG5hbWUgPSBQeU1vZHVsZV9HZXROYW1lT2JqZWN0KG1vZCk7CisgICAgICAgICAgICAgICAgaWYgKG1vZG5hbWUgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChtb2QgJiYgUHlNb2R1bGVfQ2hlY2sobW9kKSkgewotICAgICAgICAgICAgbW9kbmFtZSA9IFB5TW9kdWxlX0dldE5hbWUobW9kKTsKLSAgICAgICAgICAgIGlmIChtb2RuYW1lID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgICAgIG1vZG5hbWUgPSAiYnVpbHRpbnMiOworICAgICAgICBpZiAobW9kbmFtZSAhPSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobW9kbmFtZSwgImJ1aWx0aW5zIikgIT0gMCkgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjwlVS4lcz4iLCBtb2RuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuLT5tX21sLT5tbF9uYW1lKTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYobW9kbmFtZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFB5X0RFQ1JFRihtb2RuYW1lKTsKICAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1vZG5hbWUgPSAiYnVpbHRpbnMiOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzdHJjbXAobW9kbmFtZSwgImJ1aWx0aW5zIikgIT0gMCkKLSAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiPCVzLiVzPiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbi0+bV9tbC0+bWxfbmFtZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiPCVzPiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm4tPm1fbWwtPm1sX25hbWUpOworICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjwlcz4iLCBmbi0+bV9tbC0+bWxfbmFtZSk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICAvKiBidWlsdC1pbiBtZXRob2Q6IHRyeSB0byByZXR1cm4KZGlmZiAtLWdpdCBhL01vZHVsZXMvX2x6bWFtb2R1bGUuYyBiL01vZHVsZXMvX2x6bWFtb2R1bGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDgyYTc3Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fbHptYW1vZHVsZS5jCkBAIC0wLDAgKzEsMTI4NiBAQAorLyogX2x6bWEgLSBMb3ctbGV2ZWwgUHl0aG9uIGludGVyZmFjZSB0byBsaWJsem1hLgorCisgICBJbml0aWFsIGltcGxlbWVudGF0aW9uIGJ5IFBlciDDmHl2aW5kIEthcmxzZW4uCisgICBSZXdyaXR0ZW4gYnkgTmFkZWVtIFZhd2RhLgorCisqLworCisjZGVmaW5lIFBZX1NTSVpFX1RfQ0xFQU4KKworI2luY2x1ZGUgIlB5dGhvbi5oIgorI2luY2x1ZGUgInN0cnVjdG1lbWJlci5oIgorI2lmZGVmIFdJVEhfVEhSRUFECisjaW5jbHVkZSAicHl0aHJlYWQuaCIKKyNlbmRpZgorCisjaW5jbHVkZSA8c3RkYXJnLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisKKyNpbmNsdWRlIDxsem1hLmg+CisKKworI2lmbmRlZiBQWV9MT05HX0xPTkcKKyNlcnJvciAiVGhpcyBtb2R1bGUgcmVxdWlyZXMgUFlfTE9OR19MT05HIHRvIGJlIGRlZmluZWQiCisjZW5kaWYKKworCisjaWZkZWYgV0lUSF9USFJFQUQKKyNkZWZpbmUgQUNRVUlSRV9MT0NLKG9iaikgZG8geyBcCisgICAgaWYgKCFQeVRocmVhZF9hY3F1aXJlX2xvY2soKG9iaiktPmxvY2ssIDApKSB7IFwKKyAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUyBcCisgICAgICAgIFB5VGhyZWFkX2FjcXVpcmVfbG9jaygob2JqKS0+bG9jaywgMSk7IFwKKyAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMgXAorICAgIH0gfSB3aGlsZSAoMCkKKyNkZWZpbmUgUkVMRUFTRV9MT0NLKG9iaikgUHlUaHJlYWRfcmVsZWFzZV9sb2NrKChvYmopLT5sb2NrKQorI2Vsc2UKKyNkZWZpbmUgQUNRVUlSRV9MT0NLKG9iaikKKyNkZWZpbmUgUkVMRUFTRV9MT0NLKG9iaikKKyNlbmRpZgorCisKKy8qIENvbnRhaW5lciBmb3JtYXRzOiAqLworZW51bSB7CisgICAgRk9STUFUX0FVVE8sCisgICAgRk9STUFUX1haLAorICAgIEZPUk1BVF9BTE9ORSwKKyAgICBGT1JNQVRfUkFXLAorfTsKKworI2RlZmluZSBMWk1BX0NIRUNLX1VOS05PV04gKExaTUFfQ0hFQ0tfSURfTUFYICsgMSkKKworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIGx6bWFfc3RyZWFtIGx6czsKKyAgICBpbnQgZmx1c2hlZDsKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrOworI2VuZGlmCit9IENvbXByZXNzb3I7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgbHptYV9zdHJlYW0gbHpzOworICAgIGludCBjaGVjazsKKyAgICBjaGFyIGVvZjsKKyAgICBQeU9iamVjdCAqdW51c2VkX2RhdGE7CisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBQeVRocmVhZF90eXBlX2xvY2sgbG9jazsKKyNlbmRpZgorfSBEZWNvbXByZXNzb3I7CisKKy8qIExaTUFFcnJvciBjbGFzcyBvYmplY3QuICovCitzdGF0aWMgUHlPYmplY3QgKkVycm9yOworCisvKiBBbiBlbXB0eSB0dXBsZSwgdXNlZCBieSB0aGUgZmlsdGVyIHNwZWNpZmllciBwYXJzaW5nIGNvZGUuICovCitzdGF0aWMgUHlPYmplY3QgKmVtcHR5X3R1cGxlOworCisKKy8qIEhlbHBlciBmdW5jdGlvbnMuICovCisKK3N0YXRpYyBpbnQKK2NhdGNoX2x6bWFfZXJyb3IobHptYV9yZXQgbHpyZXQpCit7CisgICAgc3dpdGNoIChsenJldCkgeworICAgICAgICBjYXNlIExaTUFfT0s6CisgICAgICAgIGNhc2UgTFpNQV9HRVRfQ0hFQ0s6CisgICAgICAgIGNhc2UgTFpNQV9OT19DSEVDSzoKKyAgICAgICAgY2FzZSBMWk1BX1NUUkVBTV9FTkQ6CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY2FzZSBMWk1BX1VOU1VQUE9SVEVEX0NIRUNLOgorICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKEVycm9yLCAiVW5zdXBwb3J0ZWQgaW50ZWdyaXR5IGNoZWNrIik7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY2FzZSBMWk1BX01FTV9FUlJPUjoKKyAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY2FzZSBMWk1BX01FTUxJTUlUX0VSUk9SOgorICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKEVycm9yLCAiTWVtb3J5IHVzYWdlIGxpbWl0IGV4Y2VlZGVkIik7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY2FzZSBMWk1BX0ZPUk1BVF9FUlJPUjoKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhFcnJvciwgIklucHV0IGZvcm1hdCBub3Qgc3VwcG9ydGVkIGJ5IGRlY29kZXIiKTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIExaTUFfT1BUSU9OU19FUlJPUjoKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhFcnJvciwgIkludmFsaWQgb3IgdW5zdXBwb3J0ZWQgb3B0aW9ucyIpOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIGNhc2UgTFpNQV9EQVRBX0VSUk9SOgorICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKEVycm9yLCAiQ29ycnVwdCBpbnB1dCBkYXRhIik7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgY2FzZSBMWk1BX0JVRl9FUlJPUjoKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhFcnJvciwgIkluc3VmZmljaWVudCBidWZmZXIgc3BhY2UiKTsKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBjYXNlIExaTUFfUFJPR19FUlJPUjoKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhFcnJvciwgIkludGVybmFsIGVycm9yIik7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChFcnJvciwgIlVucmVjb2duaXplZCBlcnJvciBmcm9tIGxpYmx6bWE6ICVkIiwgbHpyZXQpOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgfQorfQorCisjaWYgQlVGU0laIDwgODE5MgorI2RlZmluZSBJTklUSUFMX0JVRkZFUl9TSVpFIDgxOTIKKyNlbHNlCisjZGVmaW5lIElOSVRJQUxfQlVGRkVSX1NJWkUgQlVGU0laCisjZW5kaWYKKworc3RhdGljIGludAorZ3Jvd19idWZmZXIoUHlPYmplY3QgKipidWYpCit7CisgICAgc2l6ZV90IHNpemUgPSBQeUJ5dGVzX0dFVF9TSVpFKCpidWYpOworICAgIHJldHVybiBfUHlCeXRlc19SZXNpemUoYnVmLCBzaXplICsgKHNpemUgPj4gMykgKyA2KTsKK30KKworCisvKiBTb21lIGN1c3RvbSB0eXBlIGNvbnZlcnNpb25zIGZvciBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoKSwKKyAgIHNpbmNlIHRoZSBwcmVkZWZpbmVkIGNvbnZlcnNpb24gc3BlY2lmaWVycyBkbyBub3Qgc3VpdCBvdXIgbmVlZHM6CisKKyAgICAgIHVpbnQzMl90IC0gdGhlICJJIiAodW5zaWduZWQgaW50KSBzcGVjaWZpZXIgaXMgdGhlIHJpZ2h0IHNpemUsIGJ1dAorICAgICAgc2lsZW50bHkgaWdub3JlcyBvdmVyZmxvd3Mgb24gY29udmVyc2lvbi4KKworICAgICAgbHptYV92bGkgLSB0aGUgIksiICh1bnNpZ25lZCBQWV9MT05HX0xPTkcpIHNwZWNpZmllciBpcyB0aGUgcmlnaHQKKyAgICAgIHNpemUsIGJ1dCBsaWtlICJJIiBpdCBzaWxlbnRseSBpZ25vcmVzIG92ZXJmbG93cyBvbiBjb252ZXJzaW9uLgorCisgICAgICBsem1hX21vZGUgYW5kIGx6bWFfbWF0Y2hfZmluZGVyIC0gdGhlc2UgYXJlIGVudW1lcmF0aW9uIHR5cGVzLCBhbmQKKyAgICAgIHNvIHRoZSBzaXplIG9mIGVhY2ggaXMgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4gV29yc2UsIGRpZmZlcmVudAorICAgICAgZW51bSB0eXBlcyBjYW4gYmUgb2YgZGlmZmVyZW50IHNpemVzIHdpdGhpbiB0aGUgc2FtZSBwcm9ncmFtLCBzbworICAgICAgdG8gYmUgc3RyaWN0bHkgY29ycmVjdCwgd2UgbmVlZCB0byBkZWZpbmUgdHdvIHNlcGFyYXRlIGNvbnZlcnRlcnMuCisgKi8KKworI2RlZmluZSBJTlRfVFlQRV9DT05WRVJURVJfRlVOQyhUWVBFLCBGVU5DTkFNRSkgXAorICAgIHN0YXRpYyBpbnQgXAorICAgIEZVTkNOQU1FKFB5T2JqZWN0ICpvYmosIHZvaWQgKnB0cikgXAorICAgIHsgXAorICAgICAgICB1bnNpZ25lZCBQWV9MT05HX0xPTkcgdmFsOyBcCisgICAgICAgIFwKKyAgICAgICAgdmFsID0gUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZyhvYmopOyBcCisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKSBcCisgICAgICAgICAgICByZXR1cm4gMDsgXAorICAgICAgICBpZiAoKHVuc2lnbmVkIFBZX0xPTkdfTE9ORykoVFlQRSl2YWwgIT0gdmFsKSB7IFwKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIHRvbyBsYXJnZSBmb3IgIiAjVFlQRSAiIHR5cGUiKTsgXAorICAgICAgICAgICAgcmV0dXJuIDA7IFwKKyAgICAgICAgfSBcCisgICAgICAgICooVFlQRSAqKXB0ciA9IChUWVBFKXZhbDsgXAorICAgICAgICByZXR1cm4gMTsgXAorICAgIH0KKworSU5UX1RZUEVfQ09OVkVSVEVSX0ZVTkModWludDMyX3QsIHVpbnQzMl9jb252ZXJ0ZXIpCitJTlRfVFlQRV9DT05WRVJURVJfRlVOQyhsem1hX3ZsaSwgbHptYV92bGlfY29udmVydGVyKQorSU5UX1RZUEVfQ09OVkVSVEVSX0ZVTkMobHptYV9tb2RlLCBsem1hX21vZGVfY29udmVydGVyKQorSU5UX1RZUEVfQ09OVkVSVEVSX0ZVTkMobHptYV9tYXRjaF9maW5kZXIsIGx6bWFfbWZfY29udmVydGVyKQorCisjdW5kZWYgSU5UX1RZUEVfQ09OVkVSVEVSX0ZVTkMKKworCisvKiBGaWx0ZXIgc3BlY2lmaWVyIHBhcnNpbmcuCisKKyAgIFRoaXMgY29kZSBoYW5kbGVzIGNvbnZlcnRpbmcgZmlsdGVyIHNwZWNpZmllcnMgKFB5dGhvbiBkaWN0cykgaW50bworICAgdGhlIEMgbHptYV9maWx0ZXIgc3RydWN0cyBleHBlY3RlZCBieSBsaWJsem1hLiAqLworCitzdGF0aWMgdm9pZCAqCitwYXJzZV9maWx0ZXJfc3BlY19sem1hKFB5T2JqZWN0ICpzcGVjKQoreworICAgIHN0YXRpYyBjaGFyICpvcHRuYW1lc1tdID0geyJpZCIsICJwcmVzZXQiLCAiZGljdF9zaXplIiwgImxjIiwgImxwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGIiLCAibW9kZSIsICJuaWNlX2xlbiIsICJtZiIsICJkZXB0aCIsIE5VTEx9OworICAgIFB5T2JqZWN0ICppZDsKKyAgICBQeU9iamVjdCAqcHJlc2V0X29iajsKKyAgICB1aW50MzJfdCBwcmVzZXQgPSBMWk1BX1BSRVNFVF9ERUZBVUxUOworICAgIGx6bWFfb3B0aW9uc19sem1hICpvcHRpb25zOworCisgICAgLyogRmlyc3QsIGZpbGwgaW4gZGVmYXVsdCB2YWx1ZXMgZm9yIGFsbCB0aGUgb3B0aW9ucyB1c2luZyBhIHByZXNldC4KKyAgICAgICBUaGVuLCBvdmVycmlkZSB0aGUgZGVmYXVsdHMgd2l0aCBhbnkgdmFsdWVzIGdpdmVuIGJ5IHRoZSBjYWxsZXIuICovCisKKyAgICBwcmVzZXRfb2JqID0gUHlNYXBwaW5nX0dldEl0ZW1TdHJpbmcoc3BlYywgInByZXNldCIpOworICAgIGlmIChwcmVzZXRfb2JqID09IE5VTEwpIHsKKyAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfS2V5RXJyb3IpKQorICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IG9rID0gdWludDMyX2NvbnZlcnRlcihwcmVzZXRfb2JqLCAmcHJlc2V0KTsKKyAgICAgICAgUHlfREVDUkVGKHByZXNldF9vYmopOworICAgICAgICBpZiAoIW9rKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgb3B0aW9ucyA9IChsem1hX29wdGlvbnNfbHptYSAqKVB5TWVtX01hbGxvYyhzaXplb2YgKm9wdGlvbnMpOworICAgIGlmIChvcHRpb25zID09IE5VTEwpCisgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworICAgIG1lbXNldChvcHRpb25zLCAwLCBzaXplb2YgKm9wdGlvbnMpOworCisgICAgaWYgKGx6bWFfbHptYV9wcmVzZXQob3B0aW9ucywgcHJlc2V0KSkgeworICAgICAgICBQeU1lbV9GcmVlKG9wdGlvbnMpOworICAgICAgICBQeUVycl9Gb3JtYXQoRXJyb3IsICJJbnZhbGlkIGNvbXByZXNzaW9uIHByZXNldDogJWQiLCBwcmVzZXQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhlbXB0eV90dXBsZSwgc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAifE9PTyZPJk8mTyZPJk8mTyZPJiIsIG9wdG5hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpZCwgJnByZXNldF9vYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX2NvbnZlcnRlciwgJm9wdGlvbnMtPmRpY3Rfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfY29udmVydGVyLCAmb3B0aW9ucy0+bGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX2NvbnZlcnRlciwgJm9wdGlvbnMtPmxwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQzMl9jb252ZXJ0ZXIsICZvcHRpb25zLT5wYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsem1hX21vZGVfY29udmVydGVyLCAmb3B0aW9ucy0+bW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfY29udmVydGVyLCAmb3B0aW9ucy0+bmljZV9sZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHptYV9tZl9jb252ZXJ0ZXIsICZvcHRpb25zLT5tZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfY29udmVydGVyLCAmb3B0aW9ucy0+ZGVwdGgpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIkludmFsaWQgZmlsdGVyIHNwZWNpZmllciBmb3IgTFpNQSBmaWx0ZXIiKTsKKyAgICAgICAgUHlNZW1fRnJlZShvcHRpb25zKTsKKyAgICAgICAgb3B0aW9ucyA9IE5VTEw7CisgICAgfQorICAgIHJldHVybiBvcHRpb25zOworfQorCitzdGF0aWMgdm9pZCAqCitwYXJzZV9maWx0ZXJfc3BlY19kZWx0YShQeU9iamVjdCAqc3BlYykKK3sKKyAgICBzdGF0aWMgY2hhciAqb3B0bmFtZXNbXSA9IHsiaWQiLCAiZGlzdCIsIE5VTEx9OworICAgIFB5T2JqZWN0ICppZDsKKyAgICB1aW50MzJfdCBkaXN0ID0gMTsKKyAgICBsem1hX29wdGlvbnNfZGVsdGEgKm9wdGlvbnM7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhlbXB0eV90dXBsZSwgc3BlYywgInxPTyYiLCBvcHRuYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaWQsIHVpbnQzMl9jb252ZXJ0ZXIsICZkaXN0KSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIGZpbHRlciBzcGVjaWZpZXIgZm9yIGRlbHRhIGZpbHRlciIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBvcHRpb25zID0gKGx6bWFfb3B0aW9uc19kZWx0YSAqKVB5TWVtX01hbGxvYyhzaXplb2YgKm9wdGlvbnMpOworICAgIGlmIChvcHRpb25zID09IE5VTEwpCisgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworICAgIG1lbXNldChvcHRpb25zLCAwLCBzaXplb2YgKm9wdGlvbnMpOworICAgIG9wdGlvbnMtPnR5cGUgPSBMWk1BX0RFTFRBX1RZUEVfQllURTsKKyAgICBvcHRpb25zLT5kaXN0ID0gZGlzdDsKKyAgICByZXR1cm4gb3B0aW9uczsKK30KKworc3RhdGljIHZvaWQgKgorcGFyc2VfZmlsdGVyX3NwZWNfYmNqKFB5T2JqZWN0ICpzcGVjKQoreworICAgIHN0YXRpYyBjaGFyICpvcHRuYW1lc1tdID0geyJpZCIsICJzdGFydF9vZmZzZXQiLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqaWQ7CisgICAgdWludDMyX3Qgc3RhcnRfb2Zmc2V0ID0gMDsKKyAgICBsem1hX29wdGlvbnNfYmNqICpvcHRpb25zOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoZW1wdHlfdHVwbGUsIHNwZWMsICJ8T08mIiwgb3B0bmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlkLCB1aW50MzJfY29udmVydGVyLCAmc3RhcnRfb2Zmc2V0KSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIGZpbHRlciBzcGVjaWZpZXIgZm9yIEJDSiBmaWx0ZXIiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgb3B0aW9ucyA9IChsem1hX29wdGlvbnNfYmNqICopUHlNZW1fTWFsbG9jKHNpemVvZiAqb3B0aW9ucyk7CisgICAgaWYgKG9wdGlvbnMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CisgICAgbWVtc2V0KG9wdGlvbnMsIDAsIHNpemVvZiAqb3B0aW9ucyk7CisgICAgb3B0aW9ucy0+c3RhcnRfb2Zmc2V0ID0gc3RhcnRfb2Zmc2V0OworICAgIHJldHVybiBvcHRpb25zOworfQorCitzdGF0aWMgdm9pZCAqCitwYXJzZV9maWx0ZXJfc3BlYyhsem1hX2ZpbHRlciAqZiwgUHlPYmplY3QgKnNwZWMpCit7CisgICAgUHlPYmplY3QgKmlkX29iajsKKworICAgIGlmICghUHlNYXBwaW5nX0NoZWNrKHNwZWMpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiRmlsdGVyIHNwZWNpZmllciBtdXN0IGJlIGEgZGljdCBvciBkaWN0LWxpa2Ugb2JqZWN0Iik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZF9vYmogPSBQeU1hcHBpbmdfR2V0SXRlbVN0cmluZyhzcGVjLCAiaWQiKTsKKyAgICBpZiAoaWRfb2JqID09IE5VTEwpIHsKKyAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfS2V5RXJyb3IpKQorICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZpbHRlciBzcGVjaWZpZXIgbXVzdCBoYXZlIGFuIFwiaWRcIiBlbnRyeSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZi0+aWQgPSBQeUxvbmdfQXNVbnNpZ25lZExvbmdMb25nKGlkX29iaik7CisgICAgUHlfREVDUkVGKGlkX29iaik7CisgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgc3dpdGNoIChmLT5pZCkgeworICAgICAgICBjYXNlIExaTUFfRklMVEVSX0xaTUExOgorICAgICAgICBjYXNlIExaTUFfRklMVEVSX0xaTUEyOgorICAgICAgICAgICAgZi0+b3B0aW9ucyA9IHBhcnNlX2ZpbHRlcl9zcGVjX2x6bWEoc3BlYyk7CisgICAgICAgICAgICByZXR1cm4gZi0+b3B0aW9uczsKKyAgICAgICAgY2FzZSBMWk1BX0ZJTFRFUl9ERUxUQToKKyAgICAgICAgICAgIGYtPm9wdGlvbnMgPSBwYXJzZV9maWx0ZXJfc3BlY19kZWx0YShzcGVjKTsKKyAgICAgICAgICAgIHJldHVybiBmLT5vcHRpb25zOworICAgICAgICBjYXNlIExaTUFfRklMVEVSX1g4NjoKKyAgICAgICAgY2FzZSBMWk1BX0ZJTFRFUl9QT1dFUlBDOgorICAgICAgICBjYXNlIExaTUFfRklMVEVSX0lBNjQ6CisgICAgICAgIGNhc2UgTFpNQV9GSUxURVJfQVJNOgorICAgICAgICBjYXNlIExaTUFfRklMVEVSX0FSTVRIVU1COgorICAgICAgICBjYXNlIExaTUFfRklMVEVSX1NQQVJDOgorICAgICAgICAgICAgZi0+b3B0aW9ucyA9IHBhcnNlX2ZpbHRlcl9zcGVjX2JjaihzcGVjKTsKKyAgICAgICAgICAgIHJldHVybiBmLT5vcHRpb25zOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsICJJbnZhbGlkIGZpbHRlciBJRDogJWxsdSIsIGYtPmlkKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK2ZyZWVfZmlsdGVyX2NoYWluKGx6bWFfZmlsdGVyIGZpbHRlcnNbXSkKK3sKKyAgICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGZpbHRlcnNbaV0uaWQgIT0gTFpNQV9WTElfVU5LTk9XTjsgaSsrKQorICAgICAgICBQeU1lbV9GcmVlKGZpbHRlcnNbaV0ub3B0aW9ucyk7Cit9CisKK3N0YXRpYyBpbnQKK3BhcnNlX2ZpbHRlcl9jaGFpbl9zcGVjKGx6bWFfZmlsdGVyIGZpbHRlcnNbXSwgUHlPYmplY3QgKmZpbHRlcnNwZWNzKQoreworICAgIFB5X3NzaXplX3QgaSwgbnVtX2ZpbHRlcnM7CisKKyAgICBudW1fZmlsdGVycyA9IFB5U2VxdWVuY2VfTGVuZ3RoKGZpbHRlcnNwZWNzKTsKKyAgICBpZiAobnVtX2ZpbHRlcnMgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAobnVtX2ZpbHRlcnMgPiBMWk1BX0ZJTFRFUlNfTUFYKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIlRvbyBtYW55IGZpbHRlcnMgLSBsaWJsem1hIHN1cHBvcnRzIGEgbWF4aW11bSBvZiAlZCIsCisgICAgICAgICAgICAgICAgICAgICBMWk1BX0ZJTFRFUlNfTUFYKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBudW1fZmlsdGVyczsgaSsrKSB7CisgICAgICAgIGludCBvayA9IDE7CisgICAgICAgIFB5T2JqZWN0ICpzcGVjID0gUHlTZXF1ZW5jZV9HZXRJdGVtKGZpbHRlcnNwZWNzLCBpKTsKKyAgICAgICAgaWYgKHNwZWMgPT0gTlVMTCB8fCBwYXJzZV9maWx0ZXJfc3BlYygmZmlsdGVyc1tpXSwgc3BlYykgPT0gTlVMTCkKKyAgICAgICAgICAgIG9rID0gMDsKKyAgICAgICAgUHlfWERFQ1JFRihzcGVjKTsKKyAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgZmlsdGVyc1tpXS5pZCA9IExaTUFfVkxJX1VOS05PV047CisgICAgICAgICAgICBmcmVlX2ZpbHRlcl9jaGFpbihmaWx0ZXJzKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKyAgICBmaWx0ZXJzW251bV9maWx0ZXJzXS5pZCA9IExaTUFfVkxJX1VOS05PV047CisgICAgcmV0dXJuIDA7Cit9CisKKworLyogRmlsdGVyIHNwZWNpZmllciBjb25zdHJ1Y3Rpb24uCisKKyAgIFRoaXMgY29kZSBoYW5kbGVzIGNvbnZlcnRpbmcgQyBsem1hX2ZpbHRlciBzdHJ1Y3RzIGludG8KKyAgIFB5dGhvbi1sZXZlbCBmaWx0ZXIgc3BlY2lmaWVycyAocmVwcmVzZW50ZWQgYXMgZGljdHMpLiAqLworCitzdGF0aWMgaW50CitzcGVjX2FkZF9maWVsZChQeU9iamVjdCAqc3BlYywgX1B5X0lkZW50aWZpZXIgKmtleSwgdW5zaWduZWQgUFlfTE9OR19MT05HIHZhbHVlKQoreworICAgIGludCBzdGF0dXM7CisgICAgUHlPYmplY3QgKnZhbHVlX29iamVjdDsKKworICAgIHZhbHVlX29iamVjdCA9IFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nTG9uZyh2YWx1ZSk7CisgICAgaWYgKHZhbHVlX29iamVjdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBzdGF0dXMgPSBfUHlEaWN0X1NldEl0ZW1JZChzcGVjLCBrZXksIHZhbHVlX29iamVjdCk7CisgICAgUHlfREVDUkVGKHZhbHVlX29iamVjdCk7CisgICAgcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2J1aWxkX2ZpbHRlcl9zcGVjKGNvbnN0IGx6bWFfZmlsdGVyICpmKQoreworICAgIFB5T2JqZWN0ICpzcGVjOworCisgICAgc3BlYyA9IFB5RGljdF9OZXcoKTsKKyAgICBpZiAoc3BlYyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworI2RlZmluZSBBRERfRklFTEQoU09VUkNFLCBGSUVMRCkgXAorICAgIGRvIHsgXAorICAgICAgICBfUHlfSURFTlRJRklFUihGSUVMRCk7IFwKKyAgICAgICAgaWYgKHNwZWNfYWRkX2ZpZWxkKHNwZWMsICZQeUlkXyMjRklFTEQsIFNPVVJDRS0+RklFTEQpID09IC0xKSBcCisgICAgICAgICAgICBnb3RvIGVycm9yO1wKKyAgICB9IHdoaWxlICgwKQorCisgICAgQUREX0ZJRUxEKGYsIGlkKTsKKworICAgIHN3aXRjaCAoZi0+aWQpIHsKKyAgICAgICAgLyogRm9yIExaTUExIGZpbHRlcnMsIGx6bWFfcHJvcGVydGllc197ZW5jb2RlLGRlY29kZX0oKSBvbmx5IGxvb2sgYXQgdGhlCisgICAgICAgICAgIGxjLCBscCwgcGIsIGFuZCBkaWN0X3NpemUgZmllbGRzLiBGb3IgTFpNQTIgZmlsdGVycywgb25seSB0aGUKKyAgICAgICAgICAgZGljdF9zaXplIGZpZWxkIGlzIHVzZWQuICovCisgICAgICAgIGNhc2UgTFpNQV9GSUxURVJfTFpNQTE6IHsKKyAgICAgICAgICAgIGx6bWFfb3B0aW9uc19sem1hICpvcHRpb25zID0gZi0+b3B0aW9uczsKKyAgICAgICAgICAgIEFERF9GSUVMRChvcHRpb25zLCBsYyk7CisgICAgICAgICAgICBBRERfRklFTEQob3B0aW9ucywgbHApOworICAgICAgICAgICAgQUREX0ZJRUxEKG9wdGlvbnMsIHBiKTsKKyAgICAgICAgICAgIEFERF9GSUVMRChvcHRpb25zLCBkaWN0X3NpemUpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBMWk1BX0ZJTFRFUl9MWk1BMjogeworICAgICAgICAgICAgbHptYV9vcHRpb25zX2x6bWEgKm9wdGlvbnMgPSBmLT5vcHRpb25zOworICAgICAgICAgICAgQUREX0ZJRUxEKG9wdGlvbnMsIGRpY3Rfc2l6ZSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlIExaTUFfRklMVEVSX0RFTFRBOiB7CisgICAgICAgICAgICBsem1hX29wdGlvbnNfZGVsdGEgKm9wdGlvbnMgPSBmLT5vcHRpb25zOworICAgICAgICAgICAgQUREX0ZJRUxEKG9wdGlvbnMsIGRpc3QpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBMWk1BX0ZJTFRFUl9YODY6CisgICAgICAgIGNhc2UgTFpNQV9GSUxURVJfUE9XRVJQQzoKKyAgICAgICAgY2FzZSBMWk1BX0ZJTFRFUl9JQTY0OgorICAgICAgICBjYXNlIExaTUFfRklMVEVSX0FSTToKKyAgICAgICAgY2FzZSBMWk1BX0ZJTFRFUl9BUk1USFVNQjoKKyAgICAgICAgY2FzZSBMWk1BX0ZJTFRFUl9TUEFSQzogeworICAgICAgICAgICAgbHptYV9vcHRpb25zX2JjaiAqb3B0aW9ucyA9IGYtPm9wdGlvbnM7CisgICAgICAgICAgICBBRERfRklFTEQob3B0aW9ucywgc3RhcnRfb2Zmc2V0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwgIkludmFsaWQgZmlsdGVyIElEOiAlbGx1IiwgZi0+aWQpOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyN1bmRlZiBBRERfRklFTEQKKworICAgIHJldHVybiBzcGVjOworCitlcnJvcjoKKyAgICBQeV9ERUNSRUYoc3BlYyk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKKworLyogTFpNQUNvbXByZXNzb3IgY2xhc3MuICovCisKK3N0YXRpYyBQeU9iamVjdCAqCitjb21wcmVzcyhDb21wcmVzc29yICpjLCB1aW50OF90ICpkYXRhLCBzaXplX3QgbGVuLCBsem1hX2FjdGlvbiBhY3Rpb24pCit7CisgICAgc2l6ZV90IGRhdGFfc2l6ZSA9IDA7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKworICAgIHJlc3VsdCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgSU5JVElBTF9CVUZGRVJfU0laRSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBjLT5senMubmV4dF9pbiA9IGRhdGE7CisgICAgYy0+bHpzLmF2YWlsX2luID0gbGVuOworICAgIGMtPmx6cy5uZXh0X291dCA9ICh1aW50OF90ICopUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KTsKKyAgICBjLT5senMuYXZhaWxfb3V0ID0gUHlCeXRlc19HRVRfU0laRShyZXN1bHQpOworICAgIGZvciAoOzspIHsKKyAgICAgICAgbHptYV9yZXQgbHpyZXQ7CisKKyAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgICAgICBsenJldCA9IGx6bWFfY29kZSgmYy0+bHpzLCBhY3Rpb24pOworICAgICAgICBkYXRhX3NpemUgPSAoY2hhciAqKWMtPmx6cy5uZXh0X291dCAtIFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCk7CisgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgICAgIGlmIChjYXRjaF9sem1hX2Vycm9yKGx6cmV0KSkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIGlmICgoYWN0aW9uID09IExaTUFfUlVOICYmIGMtPmx6cy5hdmFpbF9pbiA9PSAwKSB8fAorICAgICAgICAgICAgKGFjdGlvbiA9PSBMWk1BX0ZJTklTSCAmJiBsenJldCA9PSBMWk1BX1NUUkVBTV9FTkQpKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfSBlbHNlIGlmIChjLT5senMuYXZhaWxfb3V0ID09IDApIHsKKyAgICAgICAgICAgIGlmIChncm93X2J1ZmZlcigmcmVzdWx0KSA9PSAtMSkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgYy0+bHpzLm5leHRfb3V0ID0gKHVpbnQ4X3QgKilQeUJ5dGVzX0FTX1NUUklORyhyZXN1bHQpICsgZGF0YV9zaXplOworICAgICAgICAgICAgYy0+bHpzLmF2YWlsX291dCA9IFB5Qnl0ZXNfR0VUX1NJWkUocmVzdWx0KSAtIGRhdGFfc2l6ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoZGF0YV9zaXplICE9IFB5Qnl0ZXNfR0VUX1NJWkUocmVzdWx0KSkKKyAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZSgmcmVzdWx0LCBkYXRhX3NpemUpID09IC0xKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICByZXR1cm4gcmVzdWx0OworCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKHJlc3VsdCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1B5RG9jX1NUUlZBUihDb21wcmVzc29yX2NvbXByZXNzX2RvYywKKyJjb21wcmVzcyhkYXRhKSAtPiBieXRlc1xuIgorIlxuIgorIlByb3ZpZGUgZGF0YSB0byB0aGUgY29tcHJlc3NvciBvYmplY3QuIFJldHVybnMgYSBjaHVuayBvZlxuIgorImNvbXByZXNzZWQgZGF0YSBpZiBwb3NzaWJsZSwgb3IgYlwiXCIgb3RoZXJ3aXNlLlxuIgorIlxuIgorIldoZW4geW91IGhhdmUgZmluaXNoZWQgcHJvdmlkaW5nIGRhdGEgdG8gdGhlIGNvbXByZXNzb3IsIGNhbGwgdGhlXG4iCisiZmx1c2goKSBtZXRob2QgdG8gZmluaXNoIHRoZSBjb252ZXJzaW9uIHByb2Nlc3MuXG4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK0NvbXByZXNzb3JfY29tcHJlc3MoQ29tcHJlc3NvciAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlfYnVmZmVyIGJ1ZmZlcjsKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSo6Y29tcHJlc3MiLCAmYnVmZmVyKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBBQ1FVSVJFX0xPQ0soc2VsZik7CisgICAgaWYgKHNlbGYtPmZsdXNoZWQpCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiQ29tcHJlc3NvciBoYXMgYmVlbiBmbHVzaGVkIik7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBjb21wcmVzcyhzZWxmLCBidWZmZXIuYnVmLCBidWZmZXIubGVuLCBMWk1BX1JVTik7CisgICAgUkVMRUFTRV9MT0NLKHNlbGYpOworICAgIFB5QnVmZmVyX1JlbGVhc2UoJmJ1ZmZlcik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworUHlEb2NfU1RSVkFSKENvbXByZXNzb3JfZmx1c2hfZG9jLAorImZsdXNoKCkgLT4gYnl0ZXNcbiIKKyJcbiIKKyJGaW5pc2ggdGhlIGNvbXByZXNzaW9uIHByb2Nlc3MuIFJldHVybnMgdGhlIGNvbXByZXNzZWQgZGF0YSBsZWZ0XG4iCisiaW4gaW50ZXJuYWwgYnVmZmVycy5cbiIKKyJcbiIKKyJUaGUgY29tcHJlc3NvciBvYmplY3QgY2Fubm90IGJlIHVzZWQgYWZ0ZXIgdGhpcyBtZXRob2QgaXMgY2FsbGVkLlxuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitDb21wcmVzc29yX2ZsdXNoKENvbXByZXNzb3IgKnNlbGYsIFB5T2JqZWN0ICpub2FyZ3MpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CisKKyAgICBBQ1FVSVJFX0xPQ0soc2VsZik7CisgICAgaWYgKHNlbGYtPmZsdXNoZWQpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJSZXBlYXRlZCBjYWxsIHRvIGZsdXNoKCkiKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzZWxmLT5mbHVzaGVkID0gMTsKKyAgICAgICAgcmVzdWx0ID0gY29tcHJlc3Moc2VsZiwgTlVMTCwgMCwgTFpNQV9GSU5JU0gpOworICAgIH0KKyAgICBSRUxFQVNFX0xPQ0soc2VsZik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludAorQ29tcHJlc3Nvcl9pbml0X3h6KGx6bWFfc3RyZWFtICpsenMsIGludCBjaGVjaywgdWludDMyX3QgcHJlc2V0LAorICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpmaWx0ZXJzcGVjcykKK3sKKyAgICBsem1hX3JldCBsenJldDsKKworICAgIGlmIChmaWx0ZXJzcGVjcyA9PSBQeV9Ob25lKSB7CisgICAgICAgIGx6cmV0ID0gbHptYV9lYXN5X2VuY29kZXIobHpzLCBwcmVzZXQsIGNoZWNrKTsKKyAgICB9IGVsc2UgeworICAgICAgICBsem1hX2ZpbHRlciBmaWx0ZXJzW0xaTUFfRklMVEVSU19NQVggKyAxXTsKKworICAgICAgICBpZiAocGFyc2VfZmlsdGVyX2NoYWluX3NwZWMoZmlsdGVycywgZmlsdGVyc3BlY3MpID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBsenJldCA9IGx6bWFfc3RyZWFtX2VuY29kZXIobHpzLCBmaWx0ZXJzLCBjaGVjayk7CisgICAgICAgIGZyZWVfZmlsdGVyX2NoYWluKGZpbHRlcnMpOworICAgIH0KKyAgICBpZiAoY2F0Y2hfbHptYV9lcnJvcihsenJldCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CitDb21wcmVzc29yX2luaXRfYWxvbmUobHptYV9zdHJlYW0gKmx6cywgdWludDMyX3QgcHJlc2V0LCBQeU9iamVjdCAqZmlsdGVyc3BlY3MpCit7CisgICAgbHptYV9yZXQgbHpyZXQ7CisKKyAgICBpZiAoZmlsdGVyc3BlY3MgPT0gUHlfTm9uZSkgeworICAgICAgICBsem1hX29wdGlvbnNfbHptYSBvcHRpb25zOworCisgICAgICAgIGlmIChsem1hX2x6bWFfcHJlc2V0KCZvcHRpb25zLCBwcmVzZXQpKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoRXJyb3IsICJJbnZhbGlkIGNvbXByZXNzaW9uIHByZXNldDogJWQiLCBwcmVzZXQpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGx6cmV0ID0gbHptYV9hbG9uZV9lbmNvZGVyKGx6cywgJm9wdGlvbnMpOworICAgIH0gZWxzZSB7CisgICAgICAgIGx6bWFfZmlsdGVyIGZpbHRlcnNbTFpNQV9GSUxURVJTX01BWCArIDFdOworCisgICAgICAgIGlmIChwYXJzZV9maWx0ZXJfY2hhaW5fc3BlYyhmaWx0ZXJzLCBmaWx0ZXJzcGVjcykgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGlmIChmaWx0ZXJzWzBdLmlkID09IExaTUFfRklMVEVSX0xaTUExICYmCisgICAgICAgICAgICBmaWx0ZXJzWzFdLmlkID09IExaTUFfVkxJX1VOS05PV04pIHsKKyAgICAgICAgICAgIGx6cmV0ID0gbHptYV9hbG9uZV9lbmNvZGVyKGx6cywgZmlsdGVyc1swXS5vcHRpb25zKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIGZpbHRlciBjaGFpbiBmb3IgRk9STUFUX0FMT05FIC0gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGJlIGEgc2luZ2xlIExaTUExIGZpbHRlciIpOworICAgICAgICAgICAgbHpyZXQgPSBMWk1BX1BST0dfRVJST1I7CisgICAgICAgIH0KKyAgICAgICAgZnJlZV9maWx0ZXJfY2hhaW4oZmlsdGVycyk7CisgICAgfQorICAgIGlmIChQeUVycl9PY2N1cnJlZCgpIHx8IGNhdGNoX2x6bWFfZXJyb3IobHpyZXQpKQorICAgICAgICByZXR1cm4gLTE7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorQ29tcHJlc3Nvcl9pbml0X3Jhdyhsem1hX3N0cmVhbSAqbHpzLCBQeU9iamVjdCAqZmlsdGVyc3BlY3MpCit7CisgICAgbHptYV9maWx0ZXIgZmlsdGVyc1tMWk1BX0ZJTFRFUlNfTUFYICsgMV07CisgICAgbHptYV9yZXQgbHpyZXQ7CisKKyAgICBpZiAoZmlsdGVyc3BlY3MgPT0gUHlfTm9uZSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJNdXN0IHNwZWNpZnkgZmlsdGVycyBmb3IgRk9STUFUX1JBVyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChwYXJzZV9maWx0ZXJfY2hhaW5fc3BlYyhmaWx0ZXJzLCBmaWx0ZXJzcGVjcykgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBsenJldCA9IGx6bWFfcmF3X2VuY29kZXIobHpzLCBmaWx0ZXJzKTsKKyAgICBmcmVlX2ZpbHRlcl9jaGFpbihmaWx0ZXJzKTsKKyAgICBpZiAoY2F0Y2hfbHptYV9lcnJvcihsenJldCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CitDb21wcmVzc29yX2luaXQoQ29tcHJlc3NvciAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCit7CisgICAgc3RhdGljIGNoYXIgKmFyZ19uYW1lc1tdID0geyJmb3JtYXQiLCAiY2hlY2siLCAicHJlc2V0IiwgImZpbHRlcnMiLCBOVUxMfTsKKyAgICBpbnQgZm9ybWF0ID0gRk9STUFUX1haOworICAgIGludCBjaGVjayA9IC0xOworICAgIHVpbnQzMl90IHByZXNldCA9IExaTUFfUFJFU0VUX0RFRkFVTFQ7CisgICAgUHlPYmplY3QgKnByZXNldF9vYmogPSBQeV9Ob25lOworICAgIFB5T2JqZWN0ICpmaWx0ZXJzcGVjcyA9IFB5X05vbmU7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInxpaU9POkxaTUFDb21wcmVzc29yIiwgYXJnX25hbWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb3JtYXQsICZjaGVjaywgJnByZXNldF9vYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbHRlcnNwZWNzKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKGZvcm1hdCAhPSBGT1JNQVRfWFogJiYgY2hlY2sgIT0gLTEgJiYgY2hlY2sgIT0gTFpNQV9DSEVDS19OT05FKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIkludGVncml0eSBjaGVja3MgYXJlIG9ubHkgc3VwcG9ydGVkIGJ5IEZPUk1BVF9YWiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaWYgKHByZXNldF9vYmogIT0gUHlfTm9uZSAmJiBmaWx0ZXJzcGVjcyAhPSBQeV9Ob25lKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBzcGVjaWZ5IGJvdGggcHJlc2V0IGFuZCBmaWx0ZXIgY2hhaW4iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChwcmVzZXRfb2JqICE9IFB5X05vbmUpCisgICAgICAgIGlmICghdWludDMyX2NvbnZlcnRlcihwcmVzZXRfb2JqLCAmcHJlc2V0KSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKworI2lmZGVmIFdJVEhfVEhSRUFECisgICAgc2VsZi0+bG9jayA9IFB5VGhyZWFkX2FsbG9jYXRlX2xvY2soKTsKKyAgICBpZiAoc2VsZi0+bG9jayA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19NZW1vcnlFcnJvciwgIlVuYWJsZSB0byBhbGxvY2F0ZSBsb2NrIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisjZW5kaWYKKworICAgIHNlbGYtPmZsdXNoZWQgPSAwOworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgICAgIGNhc2UgRk9STUFUX1haOgorICAgICAgICAgICAgaWYgKGNoZWNrID09IC0xKQorICAgICAgICAgICAgICAgIGNoZWNrID0gTFpNQV9DSEVDS19DUkM2NDsKKyAgICAgICAgICAgIGlmIChDb21wcmVzc29yX2luaXRfeHooJnNlbGYtPmx6cywgY2hlY2ssIHByZXNldCwgZmlsdGVyc3BlY3MpICE9IDApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBjYXNlIEZPUk1BVF9BTE9ORToKKyAgICAgICAgICAgIGlmIChDb21wcmVzc29yX2luaXRfYWxvbmUoJnNlbGYtPmx6cywgcHJlc2V0LCBmaWx0ZXJzcGVjcykgIT0gMCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIGNhc2UgRk9STUFUX1JBVzoKKyAgICAgICAgICAgIGlmIChDb21wcmVzc29yX2luaXRfcmF3KCZzZWxmLT5senMsIGZpbHRlcnNwZWNzKSAhPSAwKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIGNvbnRhaW5lciBmb3JtYXQ6ICVkIiwgZm9ybWF0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworI2lmZGVmIFdJVEhfVEhSRUFECisgICAgUHlUaHJlYWRfZnJlZV9sb2NrKHNlbGYtPmxvY2spOworICAgIHNlbGYtPmxvY2sgPSBOVUxMOworI2VuZGlmCisgICAgcmV0dXJuIC0xOworfQorCitzdGF0aWMgdm9pZAorQ29tcHJlc3Nvcl9kZWFsbG9jKENvbXByZXNzb3IgKnNlbGYpCit7CisgICAgbHptYV9lbmQoJnNlbGYtPmx6cyk7CisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBpZiAoc2VsZi0+bG9jayAhPSBOVUxMKQorICAgICAgICBQeVRocmVhZF9mcmVlX2xvY2soc2VsZi0+bG9jayk7CisjZW5kaWYKKyAgICBQeV9UWVBFKHNlbGYpLT50cF9mcmVlKChQeU9iamVjdCAqKXNlbGYpOworfQorCitzdGF0aWMgUHlNZXRob2REZWYgQ29tcHJlc3Nvcl9tZXRob2RzW10gPSB7CisgICAgeyJjb21wcmVzcyIsIChQeUNGdW5jdGlvbilDb21wcmVzc29yX2NvbXByZXNzLCBNRVRIX1ZBUkFSR1MsCisgICAgIENvbXByZXNzb3JfY29tcHJlc3NfZG9jfSwKKyAgICB7ImZsdXNoIiwgKFB5Q0Z1bmN0aW9uKUNvbXByZXNzb3JfZmx1c2gsIE1FVEhfTk9BUkdTLAorICAgICBDb21wcmVzc29yX2ZsdXNoX2RvY30sCisgICAge05VTEx9Cit9OworCitQeURvY19TVFJWQVIoQ29tcHJlc3Nvcl9kb2MsCisiTFpNQUNvbXByZXNzb3IoZm9ybWF0PUZPUk1BVF9YWiwgY2hlY2s9LTEsIHByZXNldD1Ob25lLCBmaWx0ZXJzPU5vbmUpXG4iCisiXG4iCisiQ3JlYXRlIGEgY29tcHJlc3NvciBvYmplY3QgZm9yIGNvbXByZXNzaW5nIGRhdGEgaW5jcmVtZW50YWxseS5cbiIKKyJcbiIKKyJmb3JtYXQgc3BlY2lmaWVzIHRoZSBjb250YWluZXIgZm9ybWF0IHRvIHVzZSBmb3IgdGhlIG91dHB1dC4gVGhpcyBjYW5cbiIKKyJiZSBGT1JNQVRfWFogKGRlZmF1bHQpLCBGT1JNQVRfQUxPTkUsIG9yIEZPUk1BVF9SQVcuXG4iCisiXG4iCisiY2hlY2sgc3BlY2lmaWVzIHRoZSBpbnRlZ3JpdHkgY2hlY2sgdG8gdXNlLiBGb3IgRk9STUFUX1haLCB0aGUgZGVmYXVsdFxuIgorImlzIENIRUNLX0NSQzY0LiBGT1JNQVRfQUxPTkUgYW5kIEZPUk1BVF9SQVcgZG8gbm90IHN1cG9ydCBpbnRlZ3JpdHlcbiIKKyJjaGVja3M7IGZvciB0aGVzZSBmb3JtYXRzLCBjaGVjayBtdXN0IGJlIG9taXR0ZWQsIG9yIGJlIENIRUNLX05PTkUuXG4iCisiXG4iCisiVGhlIHNldHRpbmdzIHVzZWQgYnkgdGhlIGNvbXByZXNzb3IgY2FuIGJlIHNwZWNpZmllZCBlaXRoZXIgYXMgYVxuIgorInByZXNldCBjb21wcmVzc2lvbiBsZXZlbCAod2l0aCB0aGUgJ3ByZXNldCcgYXJndW1lbnQpLCBvciBpbiBkZXRhaWxcbiIKKyJhcyBhIGN1c3RvbSBmaWx0ZXIgY2hhaW4gKHdpdGggdGhlICdmaWx0ZXJzJyBhcmd1bWVudCkuIEZvciBGT1JNQVRfWFpcbiIKKyJhbmQgRk9STUFUX0FMT05FLCB0aGUgZGVmYXVsdCBpcyB0byB1c2UgdGhlIFBSRVNFVF9ERUZBVUxUIHByZXNldFxuIgorImxldmVsLiBGb3IgRk9STUFUX1JBVywgdGhlIGNhbGxlciBtdXN0IGFsd2F5cyBzcGVjaWZ5IGEgZmlsdGVyIGNoYWluO1xuIgorInRoZSByYXcgY29tcHJlc3NvciBkb2VzIG5vdCBzdXBwb3J0IHByZXNldCBjb21wcmVzc2lvbiBsZXZlbHMuXG4iCisiXG4iCisicHJlc2V0IChpZiBwcm92aWRlZCkgc2hvdWxkIGJlIGFuIGludGVnZXIgaW4gdGhlIHJhbmdlIDAtOSwgb3B0aW9uYWxseVxuIgorIk9SLWVkIHdpdGggdGhlIGNvbnN0YW50IFBSRVNFVF9FWFRSRU1FLlxuIgorIlxuIgorImZpbHRlcnMgKGlmIHByb3ZpZGVkKSBzaG91bGQgYmUgYSBzZXF1ZW5jZSBvZiBkaWN0cy4gRWFjaCBkaWN0IHNob3VsZFxuIgorImhhdmUgYW4gZW50cnkgZm9yIFwiaWRcIiBpbmRpY2F0aW5nIHRoZSBJRCBvZiB0aGUgZmlsdGVyLCBwbHVzXG4iCisiYWRkaXRpb25hbCBlbnRyaWVzIGZvciBvcHRpb25zIHRvIHRoZSBmaWx0ZXIuXG4iCisiXG4iCisiRm9yIG9uZS1zaG90IGNvbXByZXNzaW9uLCB1c2UgdGhlIGNvbXByZXNzKCkgZnVuY3Rpb24gaW5zdGVhZC5cbiIpOworCitzdGF0aWMgUHlUeXBlT2JqZWN0IENvbXByZXNzb3JfdHlwZSA9IHsKKyAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKKyAgICAiX2x6bWEuTFpNQUNvbXByZXNzb3IiLCAgICAgICAgICAgICAvKiB0cF9uYW1lICovCisgICAgc2l6ZW9mKENvbXByZXNzb3IpLCAgICAgICAgICAgICAgICAgLyogdHBfYmFzaWNzaXplICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KKyAgICAoZGVzdHJ1Y3RvcilDb21wcmVzc29yX2RlYWxsb2MsICAgICAvKiB0cF9kZWFsbG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3Jlc2VydmVkICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVwciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbWFwcGluZyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgQ29tcHJlc3Nvcl9kb2MsICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICBDb21wcmVzc29yX21ldGhvZHMsICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLworICAgIChpbml0cHJvYylDb21wcmVzc29yX2luaXQsICAgICAgICAgIC8qIHRwX2luaXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLworICAgIFB5VHlwZV9HZW5lcmljTmV3LCAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLworfTsKKworCisvKiBMWk1BRGVjb21wcmVzc29yIGNsYXNzLiAqLworCitzdGF0aWMgUHlPYmplY3QgKgorZGVjb21wcmVzcyhEZWNvbXByZXNzb3IgKmQsIHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW4pCit7CisgICAgc2l6ZV90IGRhdGFfc2l6ZSA9IDA7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKworICAgIHJlc3VsdCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgSU5JVElBTF9CVUZGRVJfU0laRSk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBkLT5senMubmV4dF9pbiA9IGRhdGE7CisgICAgZC0+bHpzLmF2YWlsX2luID0gbGVuOworICAgIGQtPmx6cy5uZXh0X291dCA9ICh1aW50OF90ICopUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KTsKKyAgICBkLT5senMuYXZhaWxfb3V0ID0gUHlCeXRlc19HRVRfU0laRShyZXN1bHQpOworICAgIGZvciAoOzspIHsKKyAgICAgICAgbHptYV9yZXQgbHpyZXQ7CisKKyAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgICAgICBsenJldCA9IGx6bWFfY29kZSgmZC0+bHpzLCBMWk1BX1JVTik7CisgICAgICAgIGRhdGFfc2l6ZSA9IChjaGFyICopZC0+bHpzLm5leHRfb3V0IC0gUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KTsKKyAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgaWYgKGNhdGNoX2x6bWFfZXJyb3IobHpyZXQpKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgaWYgKGx6cmV0ID09IExaTUFfR0VUX0NIRUNLIHx8IGx6cmV0ID09IExaTUFfTk9fQ0hFQ0spCisgICAgICAgICAgICBkLT5jaGVjayA9IGx6bWFfZ2V0X2NoZWNrKCZkLT5senMpOworICAgICAgICBpZiAobHpyZXQgPT0gTFpNQV9TVFJFQU1fRU5EKSB7CisgICAgICAgICAgICBkLT5lb2YgPSAxOworICAgICAgICAgICAgaWYgKGQtPmx6cy5hdmFpbF9pbiA+IDApIHsKKyAgICAgICAgICAgICAgICBQeV9DTEVBUihkLT51bnVzZWRfZGF0YSk7CisgICAgICAgICAgICAgICAgZC0+dW51c2VkX2RhdGEgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKAorICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKilkLT5senMubmV4dF9pbiwgZC0+bHpzLmF2YWlsX2luKTsKKyAgICAgICAgICAgICAgICBpZiAoZC0+dW51c2VkX2RhdGEgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9IGVsc2UgaWYgKGQtPmx6cy5hdmFpbF9pbiA9PSAwKSB7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfSBlbHNlIGlmIChkLT5senMuYXZhaWxfb3V0ID09IDApIHsKKyAgICAgICAgICAgIGlmIChncm93X2J1ZmZlcigmcmVzdWx0KSA9PSAtMSkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgZC0+bHpzLm5leHRfb3V0ID0gKHVpbnQ4X3QgKilQeUJ5dGVzX0FTX1NUUklORyhyZXN1bHQpICsgZGF0YV9zaXplOworICAgICAgICAgICAgZC0+bHpzLmF2YWlsX291dCA9IFB5Qnl0ZXNfR0VUX1NJWkUocmVzdWx0KSAtIGRhdGFfc2l6ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoZGF0YV9zaXplICE9IFB5Qnl0ZXNfR0VUX1NJWkUocmVzdWx0KSkKKyAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZSgmcmVzdWx0LCBkYXRhX3NpemUpID09IC0xKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICByZXR1cm4gcmVzdWx0OworCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKHJlc3VsdCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1B5RG9jX1NUUlZBUihEZWNvbXByZXNzb3JfZGVjb21wcmVzc19kb2MsCisiZGVjb21wcmVzcyhkYXRhKSAtPiBieXRlc1xuIgorIlxuIgorIlByb3ZpZGUgZGF0YSB0byB0aGUgZGVjb21wcmVzc29yIG9iamVjdC4gUmV0dXJucyBhIGNodW5rIG9mXG4iCisiZGVjb21wcmVzc2VkIGRhdGEgaWYgcG9zc2libGUsIG9yIGJcIlwiIG90aGVyd2lzZS5cbiIKKyJcbiIKKyJBdHRlbXB0aW5nIHRvIGRlY29tcHJlc3MgZGF0YSBhZnRlciB0aGUgZW5kIG9mIHRoZSBzdHJlYW0gaXNcbiIKKyJyZWFjaGVkIHJhaXNlcyBhbiBFT0ZFcnJvci4gQW55IGRhdGEgZm91bmQgYWZ0ZXIgdGhlIGVuZCBvZiB0aGVcbiIKKyJzdHJlYW0gaXMgaWdub3JlZCwgYW5kIHNhdmVkIGluIHRoZSB1bnVzZWRfZGF0YSBhdHRyaWJ1dGUuXG4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK0RlY29tcHJlc3Nvcl9kZWNvbXByZXNzKERlY29tcHJlc3NvciAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlfYnVmZmVyIGJ1ZmZlcjsKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSo6ZGVjb21wcmVzcyIsICZidWZmZXIpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIEFDUVVJUkVfTE9DSyhzZWxmKTsKKyAgICBpZiAoc2VsZi0+ZW9mKQorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfRU9GRXJyb3IsICJBbHJlYWR5IGF0IGVuZCBvZiBzdHJlYW0iKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IGRlY29tcHJlc3Moc2VsZiwgYnVmZmVyLmJ1ZiwgYnVmZmVyLmxlbik7CisgICAgUkVMRUFTRV9MT0NLKHNlbGYpOworICAgIFB5QnVmZmVyX1JlbGVhc2UoJmJ1ZmZlcik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGludAorRGVjb21wcmVzc29yX2luaXRfcmF3KGx6bWFfc3RyZWFtICpsenMsIFB5T2JqZWN0ICpmaWx0ZXJzcGVjcykKK3sKKyAgICBsem1hX2ZpbHRlciBmaWx0ZXJzW0xaTUFfRklMVEVSU19NQVggKyAxXTsKKyAgICBsem1hX3JldCBsenJldDsKKworICAgIGlmIChwYXJzZV9maWx0ZXJfY2hhaW5fc3BlYyhmaWx0ZXJzLCBmaWx0ZXJzcGVjcykgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBsenJldCA9IGx6bWFfcmF3X2RlY29kZXIobHpzLCBmaWx0ZXJzKTsKKyAgICBmcmVlX2ZpbHRlcl9jaGFpbihmaWx0ZXJzKTsKKyAgICBpZiAoY2F0Y2hfbHptYV9lcnJvcihsenJldCkpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CitEZWNvbXByZXNzb3JfaW5pdChEZWNvbXByZXNzb3IgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIHN0YXRpYyBjaGFyICphcmdfbmFtZXNbXSA9IHsiZm9ybWF0IiwgIm1lbWxpbWl0IiwgImZpbHRlcnMiLCBOVUxMfTsKKyAgICBjb25zdCB1aW50MzJfdCBkZWNvZGVyX2ZsYWdzID0gTFpNQV9URUxMX0FOWV9DSEVDSyB8IExaTUFfVEVMTF9OT19DSEVDSzsKKyAgICBpbnQgZm9ybWF0ID0gRk9STUFUX0FVVE87CisgICAgdWludDY0X3QgbWVtbGltaXQgPSBVSU5UNjRfTUFYOworICAgIFB5T2JqZWN0ICptZW1saW1pdF9vYmogPSBQeV9Ob25lOworICAgIFB5T2JqZWN0ICpmaWx0ZXJzcGVjcyA9IFB5X05vbmU7CisgICAgbHptYV9yZXQgbHpyZXQ7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInxpT086TFpNQURlY29tcHJlc3NvciIsIGFyZ19uYW1lcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0LCAmbWVtbGltaXRfb2JqLCAmZmlsdGVyc3BlY3MpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAobWVtbGltaXRfb2JqICE9IFB5X05vbmUpIHsKKyAgICAgICAgaWYgKGZvcm1hdCA9PSBGT1JNQVRfUkFXKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2Fubm90IHNwZWNpZnkgbWVtb3J5IGxpbWl0IHdpdGggRk9STUFUX1JBVyIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIG1lbWxpbWl0ID0gUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZyhtZW1saW1pdF9vYmopOworICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAoZm9ybWF0ID09IEZPUk1BVF9SQVcgJiYgZmlsdGVyc3BlY3MgPT0gUHlfTm9uZSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJNdXN0IHNwZWNpZnkgZmlsdGVycyBmb3IgRk9STUFUX1JBVyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfSBlbHNlIGlmIChmb3JtYXQgIT0gRk9STUFUX1JBVyAmJiBmaWx0ZXJzcGVjcyAhPSBQeV9Ob25lKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBzcGVjaWZ5IGZpbHRlcnMgZXhjZXB0IHdpdGggRk9STUFUX1JBVyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBzZWxmLT5sb2NrID0gUHlUaHJlYWRfYWxsb2NhdGVfbG9jaygpOworICAgIGlmIChzZWxmLT5sb2NrID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX01lbW9yeUVycm9yLCAiVW5hYmxlIHRvIGFsbG9jYXRlIGxvY2siKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyNlbmRpZgorCisgICAgc2VsZi0+Y2hlY2sgPSBMWk1BX0NIRUNLX1VOS05PV047CisgICAgc2VsZi0+dW51c2VkX2RhdGEgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIDApOworICAgIGlmIChzZWxmLT51bnVzZWRfZGF0YSA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICAgICAgY2FzZSBGT1JNQVRfQVVUTzoKKyAgICAgICAgICAgIGx6cmV0ID0gbHptYV9hdXRvX2RlY29kZXIoJnNlbGYtPmx6cywgbWVtbGltaXQsIGRlY29kZXJfZmxhZ3MpOworICAgICAgICAgICAgaWYgKGNhdGNoX2x6bWFfZXJyb3IobHpyZXQpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgY2FzZSBGT1JNQVRfWFo6CisgICAgICAgICAgICBsenJldCA9IGx6bWFfc3RyZWFtX2RlY29kZXIoJnNlbGYtPmx6cywgbWVtbGltaXQsIGRlY29kZXJfZmxhZ3MpOworICAgICAgICAgICAgaWYgKGNhdGNoX2x6bWFfZXJyb3IobHpyZXQpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgY2FzZSBGT1JNQVRfQUxPTkU6CisgICAgICAgICAgICBzZWxmLT5jaGVjayA9IExaTUFfQ0hFQ0tfTk9ORTsKKyAgICAgICAgICAgIGx6cmV0ID0gbHptYV9hbG9uZV9kZWNvZGVyKCZzZWxmLT5senMsIG1lbWxpbWl0KTsKKyAgICAgICAgICAgIGlmIChjYXRjaF9sem1hX2Vycm9yKGx6cmV0KSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIGNhc2UgRk9STUFUX1JBVzoKKyAgICAgICAgICAgIHNlbGYtPmNoZWNrID0gTFpNQV9DSEVDS19OT05FOworICAgICAgICAgICAgaWYgKERlY29tcHJlc3Nvcl9pbml0X3Jhdygmc2VsZi0+bHpzLCBmaWx0ZXJzcGVjcykgPT0gLTEpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkludmFsaWQgY29udGFpbmVyIGZvcm1hdDogJWQiLCBmb3JtYXQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCitlcnJvcjoKKyAgICBQeV9DTEVBUihzZWxmLT51bnVzZWRfZGF0YSk7CisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBQeVRocmVhZF9mcmVlX2xvY2soc2VsZi0+bG9jayk7CisgICAgc2VsZi0+bG9jayA9IE5VTEw7CisjZW5kaWYKKyAgICByZXR1cm4gLTE7Cit9CisKK3N0YXRpYyB2b2lkCitEZWNvbXByZXNzb3JfZGVhbGxvYyhEZWNvbXByZXNzb3IgKnNlbGYpCit7CisgICAgbHptYV9lbmQoJnNlbGYtPmx6cyk7CisgICAgUHlfQ0xFQVIoc2VsZi0+dW51c2VkX2RhdGEpOworI2lmZGVmIFdJVEhfVEhSRUFECisgICAgaWYgKHNlbGYtPmxvY2sgIT0gTlVMTCkKKyAgICAgICAgUHlUaHJlYWRfZnJlZV9sb2NrKHNlbGYtPmxvY2spOworI2VuZGlmCisgICAgUHlfVFlQRShzZWxmKS0+dHBfZnJlZSgoUHlPYmplY3QgKilzZWxmKTsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIERlY29tcHJlc3Nvcl9tZXRob2RzW10gPSB7CisgICAgeyJkZWNvbXByZXNzIiwgKFB5Q0Z1bmN0aW9uKURlY29tcHJlc3Nvcl9kZWNvbXByZXNzLCBNRVRIX1ZBUkFSR1MsCisgICAgIERlY29tcHJlc3Nvcl9kZWNvbXByZXNzX2RvY30sCisgICAge05VTEx9Cit9OworCitQeURvY19TVFJWQVIoRGVjb21wcmVzc29yX2NoZWNrX2RvYywKKyJJRCBvZiB0aGUgaW50ZWdyaXR5IGNoZWNrIHVzZWQgYnkgdGhlIGlucHV0IHN0cmVhbS4iKTsKKworUHlEb2NfU1RSVkFSKERlY29tcHJlc3Nvcl9lb2ZfZG9jLAorIlRydWUgaWYgdGhlIGVuZC1vZi1zdHJlYW0gbWFya2VyIGhhcyBiZWVuIHJlYWNoZWQuIik7CisKK1B5RG9jX1NUUlZBUihEZWNvbXByZXNzb3JfdW51c2VkX2RhdGFfZG9jLAorIkRhdGEgZm91bmQgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgY29tcHJlc3NlZCBzdHJlYW0uIik7CisKK3N0YXRpYyBQeU1lbWJlckRlZiBEZWNvbXByZXNzb3JfbWVtYmVyc1tdID0geworICAgIHsiY2hlY2siLCBUX0lOVCwgb2Zmc2V0b2YoRGVjb21wcmVzc29yLCBjaGVjayksIFJFQURPTkxZLAorICAgICBEZWNvbXByZXNzb3JfY2hlY2tfZG9jfSwKKyAgICB7ImVvZiIsIFRfQk9PTCwgb2Zmc2V0b2YoRGVjb21wcmVzc29yLCBlb2YpLCBSRUFET05MWSwKKyAgICAgRGVjb21wcmVzc29yX2VvZl9kb2N9LAorICAgIHsidW51c2VkX2RhdGEiLCBUX09CSkVDVF9FWCwgb2Zmc2V0b2YoRGVjb21wcmVzc29yLCB1bnVzZWRfZGF0YSksIFJFQURPTkxZLAorICAgICBEZWNvbXByZXNzb3JfdW51c2VkX2RhdGFfZG9jfSwKKyAgICB7TlVMTH0KK307CisKK1B5RG9jX1NUUlZBUihEZWNvbXByZXNzb3JfZG9jLAorIkxaTUFEZWNvbXByZXNzb3IoZm9ybWF0PUZPUk1BVF9BVVRPLCBtZW1saW1pdD1Ob25lLCBmaWx0ZXJzPU5vbmUpXG4iCisiXG4iCisiQ3JlYXRlIGEgZGVjb21wcmVzc29yIG9iamVjdCBmb3IgZGVjb21wcmVzc2luZyBkYXRhIGluY3JlbWVudGFsbHkuXG4iCisiXG4iCisiZm9ybWF0IHNwZWNpZmllcyB0aGUgY29udGFpbmVyIGZvcm1hdCBvZiB0aGUgaW5wdXQgc3RyZWFtLiBJZiB0aGlzIGlzXG4iCisiRk9STUFUX0FVVE8gKHRoZSBkZWZhdWx0KSwgdGhlIGRlY29tcHJlc3NvciB3aWxsIGF1dG9tYXRpY2FsbHkgZGV0ZWN0XG4iCisid2hldGhlciB0aGUgaW5wdXQgaXMgRk9STUFUX1haIG9yIEZPUk1BVF9BTE9ORS4gU3RyZWFtcyBjcmVhdGVkIHdpdGhcbiIKKyJGT1JNQVRfUkFXIGNhbm5vdCBiZSBhdXRvZGV0ZWN0ZWQuXG4iCisiXG4iCisibWVtbGltaXQgY2FuIGJlIHNwZWNpZmllZCB0byBsaW1pdCB0aGUgYW1vdW50IG9mIG1lbW9yeSB1c2VkIGJ5IHRoZVxuIgorImRlY29tcHJlc3Nvci4gVGhpcyB3aWxsIGNhdXNlIGRlY29tcHJlc3Npb24gdG8gZmFpbCBpZiB0aGUgaW5wdXRcbiIKKyJjYW5ub3QgYmUgZGVjb21wcmVzc2VkIHdpdGhpbiB0aGUgZ2l2ZW4gbGltaXQuXG4iCisiXG4iCisiZmlsdGVycyBzcGVjaWZpZXMgYSBjdXN0b20gZmlsdGVyIGNoYWluLiBUaGlzIGFyZ3VtZW50IGlzIHJlcXVpcmVkIGZvclxuIgorIkZPUk1BVF9SQVcsIGFuZCBub3QgYWNjZXB0ZWQgd2l0aCBhbnkgb3RoZXIgZm9ybWF0LiBXaGVuIHByb3ZpZGVkLFxuIgorInRoaXMgc2hvdWxkIGJlIGEgc2VxdWVuY2Ugb2YgZGljdHMsIGVhY2ggaW5kaWNhdGluZyB0aGUgSUQgYW5kIG9wdGlvbnNcbiIKKyJmb3IgYSBzaW5nbGUgZmlsdGVyLlxuIgorIlxuIgorIkZvciBvbmUtc2hvdCBkZWNvbXByZXNzaW9uLCB1c2UgdGhlIGRlY29tcHJlc3MoKSBmdW5jdGlvbiBpbnN0ZWFkLlxuIik7CisKK3N0YXRpYyBQeVR5cGVPYmplY3QgRGVjb21wcmVzc29yX3R5cGUgPSB7CisgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCisgICAgIl9sem1hLkxaTUFEZWNvbXByZXNzb3IiLCAgICAgICAgICAgLyogdHBfbmFtZSAqLworICAgIHNpemVvZihEZWNvbXByZXNzb3IpLCAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXplICovCisgICAgKGRlc3RydWN0b3IpRGVjb21wcmVzc29yX2RlYWxsb2MsICAgLyogdHBfZGVhbGxvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZlZCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JlcHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19udW1iZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX21hcHBpbmcgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9oYXNoICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHJvICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQsICAgICAgICAgICAgICAgICAvKiB0cF9mbGFncyAqLworICAgIERlY29tcHJlc3Nvcl9kb2MsICAgICAgICAgICAgICAgICAgIC8qIHRwX2RvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCisgICAgRGVjb21wcmVzc29yX21ldGhvZHMsICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIERlY29tcHJlc3Nvcl9tZW1iZXJzLCAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX2dldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3NldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KKyAgICAoaW5pdHByb2MpRGVjb21wcmVzc29yX2luaXQsICAgICAgICAvKiB0cF9pbml0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KKyAgICBQeVR5cGVfR2VuZXJpY05ldywgICAgICAgICAgICAgICAgICAvKiB0cF9uZXcgKi8KK307CisKKworLyogTW9kdWxlLWxldmVsIGZ1bmN0aW9ucy4gKi8KKworUHlEb2NfU1RSVkFSKGlzX2NoZWNrX3N1cHBvcnRlZF9kb2MsCisiaXNfY2hlY2tfc3VwcG9ydGVkKGNoZWNrX2lkKSAtPiBib29sXG4iCisiXG4iCisiVGVzdCB3aGV0aGVyIHRoZSBnaXZlbiBpbnRlZ3JpdHkgY2hlY2sgaXMgc3VwcG9ydGVkLlxuIgorIlxuIgorIkFsd2F5cyByZXR1cm5zIFRydWUgZm9yIENIRUNLX05PTkUgYW5kIENIRUNLX0NSQzMyLlxuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitpc19jaGVja19zdXBwb3J0ZWQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCBjaGVja19pZDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaTppc19jaGVja19zdXBwb3J0ZWQiLCAmY2hlY2tfaWQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcobHptYV9jaGVja19pc19zdXBwb3J0ZWQoY2hlY2tfaWQpKTsKK30KKworCitQeURvY19TVFJWQVIoX2VuY29kZV9maWx0ZXJfcHJvcGVydGllc19kb2MsCisiX2VuY29kZV9maWx0ZXJfcHJvcGVydGllcyhmaWx0ZXIpIC0+IGJ5dGVzXG4iCisiXG4iCisiUmV0dXJuIGEgYnl0ZXMgb2JqZWN0IGVuY29kaW5nIHRoZSBvcHRpb25zIChwcm9wZXJ0aWVzKSBvZiB0aGUgZmlsdGVyXG4iCisic3BlY2lmaWVkIGJ5ICpmaWx0ZXIqIChhIGRpY3QpLlxuIgorIlxuIgorIlRoZSByZXN1bHQgZG9lcyBub3QgaW5jbHVkZSB0aGUgZmlsdGVyIElEIGl0c2VsZiwgb25seSB0aGUgb3B0aW9ucy5cbiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorX2VuY29kZV9maWx0ZXJfcHJvcGVydGllcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKmZpbHRlcnNwZWM7CisgICAgbHptYV9maWx0ZXIgZmlsdGVyOworICAgIGx6bWFfcmV0IGx6cmV0OworICAgIHVpbnQzMl90IGVuY29kZWRfc2l6ZTsKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTzpfZW5jb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzIiwgJmZpbHRlcnNwZWMpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChwYXJzZV9maWx0ZXJfc3BlYygmZmlsdGVyLCBmaWx0ZXJzcGVjKSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGx6cmV0ID0gbHptYV9wcm9wZXJ0aWVzX3NpemUoJmVuY29kZWRfc2l6ZSwgJmZpbHRlcik7CisgICAgaWYgKGNhdGNoX2x6bWFfZXJyb3IobHpyZXQpKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgcmVzdWx0ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBlbmNvZGVkX3NpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKworICAgIGx6cmV0ID0gbHptYV9wcm9wZXJ0aWVzX2VuY29kZSgKKyAgICAgICAgICAgICZmaWx0ZXIsICh1aW50OF90ICopUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KSk7CisgICAgaWYgKGNhdGNoX2x6bWFfZXJyb3IobHpyZXQpKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgUHlNZW1fRnJlZShmaWx0ZXIub3B0aW9ucyk7CisgICAgcmV0dXJuIHJlc3VsdDsKKworZXJyb3I6CisgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgIFB5TWVtX0ZyZWUoZmlsdGVyLm9wdGlvbnMpOworICAgIHJldHVybiBOVUxMOworfQorCisKK1B5RG9jX1NUUlZBUihfZGVjb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzX2RvYywKKyJfZGVjb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzKGZpbHRlcl9pZCwgZW5jb2RlZF9wcm9wcykgLT4gZGljdFxuIgorIlxuIgorIlJldHVybiBhIGRpY3QgZGVzY3JpYmluZyBhIGZpbHRlciB3aXRoIElEICpmaWx0ZXJfaWQqLCBhbmQgb3B0aW9uc1xuIgorIihwcm9wZXJ0aWVzKSBkZWNvZGVkIGZyb20gdGhlIGJ5dGVzIG9iamVjdCAqZW5jb2RlZF9wcm9wcyouXG4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK19kZWNvZGVfZmlsdGVyX3Byb3BlcnRpZXMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5X2J1ZmZlciBlbmNvZGVkX3Byb3BzOworICAgIGx6bWFfZmlsdGVyIGZpbHRlcjsKKyAgICBsem1hX3JldCBsenJldDsKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyZ5KjpfZGVjb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbHptYV92bGlfY29udmVydGVyLCAmZmlsdGVyLmlkLCAmZW5jb2RlZF9wcm9wcykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgbHpyZXQgPSBsem1hX3Byb3BlcnRpZXNfZGVjb2RlKAorICAgICAgICAgICAgJmZpbHRlciwgTlVMTCwgZW5jb2RlZF9wcm9wcy5idWYsIGVuY29kZWRfcHJvcHMubGVuKTsKKyAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZlbmNvZGVkX3Byb3BzKTsKKyAgICBpZiAoY2F0Y2hfbHptYV9lcnJvcihsenJldCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmVzdWx0ID0gYnVpbGRfZmlsdGVyX3NwZWMoJmZpbHRlcik7CisKKyAgICAvKiBXZSB1c2UgdmFuaWxsYSBmcmVlKCkgaGVyZSBpbnN0ZWFkIG9mIFB5TWVtX0ZyZWUoKSAtIGZpbHRlci5vcHRpb25zIHdhcworICAgICAgIGFsbG9jYXRlZCBieSBsem1hX3Byb3BlcnRpZXNfZGVjb2RlKCkgdXNpbmcgdGhlIGRlZmF1bHQgYWxsb2NhdG9yLiAqLworICAgIGZyZWUoZmlsdGVyLm9wdGlvbnMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKworLyogTW9kdWxlIGluaXRpYWxpemF0aW9uLiAqLworCitzdGF0aWMgUHlNZXRob2REZWYgbW9kdWxlX21ldGhvZHNbXSA9IHsKKyAgICB7ImlzX2NoZWNrX3N1cHBvcnRlZCIsIChQeUNGdW5jdGlvbilpc19jaGVja19zdXBwb3J0ZWQsCisgICAgIE1FVEhfVkFSQVJHUywgaXNfY2hlY2tfc3VwcG9ydGVkX2RvY30sCisgICAgeyJfZW5jb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzIiwgKFB5Q0Z1bmN0aW9uKV9lbmNvZGVfZmlsdGVyX3Byb3BlcnRpZXMsCisgICAgIE1FVEhfVkFSQVJHUywgX2VuY29kZV9maWx0ZXJfcHJvcGVydGllc19kb2N9LAorICAgIHsiX2RlY29kZV9maWx0ZXJfcHJvcGVydGllcyIsIChQeUNGdW5jdGlvbilfZGVjb2RlX2ZpbHRlcl9wcm9wZXJ0aWVzLAorICAgICBNRVRIX1ZBUkFSR1MsIF9kZWNvZGVfZmlsdGVyX3Byb3BlcnRpZXNfZG9jfSwKKyAgICB7TlVMTH0KK307CisKK3N0YXRpYyBQeU1vZHVsZURlZiBfbHptYW1vZHVsZSA9IHsKKyAgICBQeU1vZHVsZURlZl9IRUFEX0lOSVQsCisgICAgIl9sem1hIiwKKyAgICBOVUxMLAorICAgIC0xLAorICAgIG1vZHVsZV9tZXRob2RzLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwsCit9OworCisvKiBTb21lIG9mIG91ciBjb25zdGFudHMgYXJlIG1vcmUgdGhhbiAzMiBiaXRzIHdpZGUsIHNvIFB5TW9kdWxlX0FkZEludENvbnN0YW50CisgICB3b3VsZCBub3Qgd29yayBjb3JyZWN0bHkgb24gcGxhdGZvcm1zIHdpdGggMzItYml0IGxvbmdzLiAqLworc3RhdGljIGludAorbW9kdWxlX2FkZF9pbnRfY29uc3RhbnQoUHlPYmplY3QgKm0sIGNvbnN0IGNoYXIgKm5hbWUsIFBZX0xPTkdfTE9ORyB2YWx1ZSkKK3sKKyAgICBQeU9iamVjdCAqbyA9IFB5TG9uZ19Gcm9tTG9uZ0xvbmcodmFsdWUpOworICAgIGlmIChvID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG0sIG5hbWUsIG8pID09IDApCisgICAgICAgIHJldHVybiAwOworICAgIFB5X0RFQ1JFRihvKTsKKyAgICByZXR1cm4gLTE7Cit9CisKKyNkZWZpbmUgQUREX0lOVF9QUkVGSVhfTUFDUk8obSwgbWFjcm8pIFwKKyAgICBtb2R1bGVfYWRkX2ludF9jb25zdGFudChtLCAjbWFjcm8sIExaTUFfICMjIG1hY3JvKQorCitQeU1PRElOSVRfRlVOQworUHlJbml0X19sem1hKHZvaWQpCit7CisgICAgUHlPYmplY3QgKm07CisKKyAgICBlbXB0eV90dXBsZSA9IFB5VHVwbGVfTmV3KDApOworICAgIGlmIChlbXB0eV90dXBsZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIG0gPSBQeU1vZHVsZV9DcmVhdGUoJl9sem1hbW9kdWxlKTsKKyAgICBpZiAobSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGT1JNQVRfQVVUTykgPT0gLTEgfHwKKyAgICAgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgRk9STUFUX1haKSA9PSAtMSB8fAorICAgICAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBGT1JNQVRfQUxPTkUpID09IC0xIHx8CisgICAgICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEZPUk1BVF9SQVcpID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIENIRUNLX05PTkUpID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIENIRUNLX0NSQzMyKSA9PSAtMSB8fAorICAgICAgICBBRERfSU5UX1BSRUZJWF9NQUNSTyhtLCBDSEVDS19DUkM2NCkgPT0gLTEgfHwKKyAgICAgICAgQUREX0lOVF9QUkVGSVhfTUFDUk8obSwgQ0hFQ0tfU0hBMjU2KSA9PSAtMSB8fAorICAgICAgICBBRERfSU5UX1BSRUZJWF9NQUNSTyhtLCBDSEVDS19JRF9NQVgpID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIENIRUNLX1VOS05PV04pID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIEZJTFRFUl9MWk1BMSkgPT0gLTEgfHwKKyAgICAgICAgQUREX0lOVF9QUkVGSVhfTUFDUk8obSwgRklMVEVSX0xaTUEyKSA9PSAtMSB8fAorICAgICAgICBBRERfSU5UX1BSRUZJWF9NQUNSTyhtLCBGSUxURVJfREVMVEEpID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIEZJTFRFUl9YODYpID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIEZJTFRFUl9JQTY0KSA9PSAtMSB8fAorICAgICAgICBBRERfSU5UX1BSRUZJWF9NQUNSTyhtLCBGSUxURVJfQVJNKSA9PSAtMSB8fAorICAgICAgICBBRERfSU5UX1BSRUZJWF9NQUNSTyhtLCBGSUxURVJfQVJNVEhVTUIpID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIEZJTFRFUl9TUEFSQykgPT0gLTEgfHwKKyAgICAgICAgQUREX0lOVF9QUkVGSVhfTUFDUk8obSwgRklMVEVSX1BPV0VSUEMpID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIE1GX0hDMykgPT0gLTEgfHwKKyAgICAgICAgQUREX0lOVF9QUkVGSVhfTUFDUk8obSwgTUZfSEM0KSA9PSAtMSB8fAorICAgICAgICBBRERfSU5UX1BSRUZJWF9NQUNSTyhtLCBNRl9CVDIpID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIE1GX0JUMykgPT0gLTEgfHwKKyAgICAgICAgQUREX0lOVF9QUkVGSVhfTUFDUk8obSwgTUZfQlQ0KSA9PSAtMSB8fAorICAgICAgICBBRERfSU5UX1BSRUZJWF9NQUNSTyhtLCBNT0RFX0ZBU1QpID09IC0xIHx8CisgICAgICAgIEFERF9JTlRfUFJFRklYX01BQ1JPKG0sIE1PREVfTk9STUFMKSA9PSAtMSB8fAorICAgICAgICBBRERfSU5UX1BSRUZJWF9NQUNSTyhtLCBQUkVTRVRfREVGQVVMVCkgPT0gLTEgfHwKKyAgICAgICAgQUREX0lOVF9QUkVGSVhfTUFDUk8obSwgUFJFU0VUX0VYVFJFTUUpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIEVycm9yID0gUHlFcnJfTmV3RXhjZXB0aW9uV2l0aERvYygKKyAgICAgICAgICAgICJfbHptYS5MWk1BRXJyb3IiLCAiQ2FsbCB0byBsaWJsem1hIGZhaWxlZC4iLCBOVUxMLCBOVUxMKTsKKyAgICBpZiAoRXJyb3IgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfSU5DUkVGKEVycm9yKTsKKyAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJMWk1BRXJyb3IiLCBFcnJvcikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKFB5VHlwZV9SZWFkeSgmQ29tcHJlc3Nvcl90eXBlKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfSU5DUkVGKCZDb21wcmVzc29yX3R5cGUpOworICAgIGlmIChQeU1vZHVsZV9BZGRPYmplY3QobSwgIkxaTUFDb21wcmVzc29yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChQeU9iamVjdCAqKSZDb21wcmVzc29yX3R5cGUpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChQeVR5cGVfUmVhZHkoJkRlY29tcHJlc3Nvcl90eXBlKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfSU5DUkVGKCZEZWNvbXByZXNzb3JfdHlwZSk7CisgICAgaWYgKFB5TW9kdWxlX0FkZE9iamVjdChtLCAiTFpNQURlY29tcHJlc3NvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlPYmplY3QgKikmRGVjb21wcmVzc29yX3R5cGUpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBtOworfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL2Nvbm5lY3Rpb24uaCBiL01vZHVsZXMvX211bHRpcHJvY2Vzc2luZy9jb25uZWN0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMmQ1YWEuLjAwMDAwMDAKLS0tIGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL2Nvbm5lY3Rpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDUyNyArMCwwIEBACi0vKgotICogRGVmaW5pdGlvbiBvZiBhIGBDb25uZWN0aW9uYCB0eXBlLgotICogVXNlZCBieSBgc29ja2V0X2Nvbm5lY3Rpb24uY2AgYW5kIGBwaXBlX2Nvbm5lY3Rpb24uY2AuCi0gKgotICogY29ubmVjdGlvbi5oCi0gKgotICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDgsIFIgT3Vka2VyayAtLS0gc2VlIENPUFlJTkcudHh0Ci0gKi8KLQotI2lmbmRlZiBDT05ORUNUSU9OX0gKLSNkZWZpbmUgQ09OTkVDVElPTl9ICi0KLS8qCi0gKiBSZWFkL3dyaXRlIGZsYWdzCi0gKi8KLQotI2RlZmluZSBSRUFEQUJMRSAxCi0jZGVmaW5lIFdSSVRBQkxFIDIKLQotI2RlZmluZSBDSEVDS19SRUFEQUJMRShzZWxmKSBcCi0gICAgaWYgKCEoc2VsZi0+ZmxhZ3MgJiBSRUFEQUJMRSkpIHsgXAotICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JT0Vycm9yLCAiY29ubmVjdGlvbiBpcyB3cml0ZS1vbmx5Iik7IFwKLSAgICByZXR1cm4gTlVMTDsgXAotICAgIH0KLQotI2RlZmluZSBDSEVDS19XUklUQUJMRShzZWxmKSBcCi0gICAgaWYgKCEoc2VsZi0+ZmxhZ3MgJiBXUklUQUJMRSkpIHsgXAotICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JT0Vycm9yLCAiY29ubmVjdGlvbiBpcyByZWFkLW9ubHkiKTsgXAotICAgIHJldHVybiBOVUxMOyBcCi0gICAgfQotCi0vKgotICogQWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0aW9uCi0gKi8KLQotc3RhdGljIFB5T2JqZWN0ICoKLWNvbm5lY3Rpb25fbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQotewotICAgIENvbm5lY3Rpb25PYmplY3QgKnNlbGY7Ci0gICAgSEFORExFIGhhbmRsZTsKLSAgICBCT09MIHJlYWRhYmxlID0gVFJVRSwgd3JpdGFibGUgPSBUUlVFOwotCi0gICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJoYW5kbGUiLCAicmVhZGFibGUiLCAid3JpdGFibGUiLCBOVUxMfTsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsIEZfSEFORExFICJ8aWkiLCBrd2xpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbmRsZSwgJnJlYWRhYmxlLCAmd3JpdGFibGUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmIChoYW5kbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUgfHwgKFB5X3NzaXplX3QpaGFuZGxlIDwgMCkgewotICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSU9FcnJvciwgImludmFsaWQgaGFuZGxlICV6ZCIsCi0gICAgICAgICAgICAgICAgICAgICAoUHlfc3NpemVfdCloYW5kbGUpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBpZiAoIXJlYWRhYmxlICYmICF3cml0YWJsZSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJlaXRoZXIgcmVhZGFibGUgb3Igd3JpdGFibGUgbXVzdCBiZSB0cnVlIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIHNlbGYgPSBQeU9iamVjdF9OZXcoQ29ubmVjdGlvbk9iamVjdCwgdHlwZSk7Ci0gICAgaWYgKHNlbGYgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBzZWxmLT53ZWFrcmVmbGlzdCA9IE5VTEw7Ci0gICAgc2VsZi0+aGFuZGxlID0gaGFuZGxlOwotICAgIHNlbGYtPmZsYWdzID0gMDsKLQotICAgIGlmIChyZWFkYWJsZSkKLSAgICAgICAgc2VsZi0+ZmxhZ3MgfD0gUkVBREFCTEU7Ci0gICAgaWYgKHdyaXRhYmxlKQotICAgICAgICBzZWxmLT5mbGFncyB8PSBXUklUQUJMRTsKLSAgICBhc3NlcnQoc2VsZi0+ZmxhZ3MgPj0gMSAmJiBzZWxmLT5mbGFncyA8PSAzKTsKLQotICAgIHJldHVybiAoUHlPYmplY3QqKXNlbGY7Ci19Ci0KLXN0YXRpYyB2b2lkCi1jb25uZWN0aW9uX2RlYWxsb2MoQ29ubmVjdGlvbk9iamVjdCogc2VsZikKLXsKLSAgICBpZiAoc2VsZi0+d2Vha3JlZmxpc3QgIT0gTlVMTCkKLSAgICAgICAgUHlPYmplY3RfQ2xlYXJXZWFrUmVmcygoUHlPYmplY3QqKXNlbGYpOwotCi0gICAgaWYgKHNlbGYtPmhhbmRsZSAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkgewotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgIENMT1NFKHNlbGYtPmhhbmRsZSk7Ci0gICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgfQotICAgIFB5T2JqZWN0X0RlbChzZWxmKTsKLX0KLQotLyoKLSAqIEZ1bmN0aW9ucyBmb3IgdHJhbnNmZXJyaW5nIGJ1ZmZlcnMKLSAqLwotCi1zdGF0aWMgUHlPYmplY3QgKgotY29ubmVjdGlvbl9zZW5kYnl0ZXMoQ29ubmVjdGlvbk9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgUHlfYnVmZmVyIHBidWZmZXI7Ci0gICAgY2hhciAqYnVmZmVyOwotICAgIFB5X3NzaXplX3QgbGVuZ3RoLCBvZmZzZXQ9MCwgc2l6ZT1QWV9TU0laRV9UX01JTjsKLSAgICBpbnQgcmVzOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIEZfUkJVRkZFUiAiKnwiIEZfUFlfU1NJWkVfVCBGX1BZX1NTSVpFX1QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZwYnVmZmVyLCAmb2Zmc2V0LCAmc2l6ZSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGJ1ZmZlciA9IHBidWZmZXIuYnVmOwotICAgIGxlbmd0aCA9IHBidWZmZXIubGVuOwotCi0gICAgQ0hFQ0tfV1JJVEFCTEUoc2VsZik7IC8qIFhYWCByZWxlYXNlIGJ1ZmZlciBpbiBjYXNlIG9mIGZhaWx1cmUgKi8KLQotICAgIGlmIChvZmZzZXQgPCAwKSB7Ci0gICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBidWZmZXIpOwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIm9mZnNldCBpcyBuZWdhdGl2ZSIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgaWYgKGxlbmd0aCA8IG9mZnNldCkgewotICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwYnVmZmVyKTsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJidWZmZXIgbGVuZ3RoIDwgb2Zmc2V0Iik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGlmIChzaXplID09IFBZX1NTSVpFX1RfTUlOKSB7Ci0gICAgICAgIHNpemUgPSBsZW5ndGggLSBvZmZzZXQ7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKHNpemUgPCAwKSB7Ci0gICAgICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwYnVmZmVyKTsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAic2l6ZSBpcyBuZWdhdGl2ZSIpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG9mZnNldCArIHNpemUgPiBsZW5ndGgpIHsKLSAgICAgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBidWZmZXIpOwotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1ZmZlciBsZW5ndGggPCBvZmZzZXQgKyBzaXplIik7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJlcyA9IGNvbm5fc2VuZF9zdHJpbmcoc2VsZiwgYnVmZmVyICsgb2Zmc2V0LCBzaXplKTsKLQotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBidWZmZXIpOwotICAgIGlmIChyZXMgPCAwKSB7Ci0gICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiBtcF9TZXRFcnJvcihQeUV4Y19JT0Vycm9yLCByZXMpOwotICAgIH0KLQotICAgIFB5X1JFVFVSTl9OT05FOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotY29ubmVjdGlvbl9yZWN2Ynl0ZXMoQ29ubmVjdGlvbk9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgY2hhciAqZnJlZW1lID0gTlVMTDsKLSAgICBQeV9zc2l6ZV90IHJlcywgbWF4bGVuZ3RoID0gUFlfU1NJWkVfVF9NQVg7Ci0gICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInwiIEZfUFlfU1NJWkVfVCwgJm1heGxlbmd0aCkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgQ0hFQ0tfUkVBREFCTEUoc2VsZik7Ci0KLSAgICBpZiAobWF4bGVuZ3RoIDwgMCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIm1heGxlbmd0aCA8IDAiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgcmVzID0gY29ubl9yZWN2X3N0cmluZyhzZWxmLCBzZWxmLT5idWZmZXIsIENPTk5FQ1RJT05fQlVGRkVSX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmZnJlZW1lLCBtYXhsZW5ndGgpOwotCi0gICAgaWYgKHJlcyA8IDApIHsKLSAgICAgICAgaWYgKHJlcyA9PSBNUF9CQURfTUVTU0FHRV9MRU5HVEgpIHsKLSAgICAgICAgICAgIGlmICgoc2VsZi0+ZmxhZ3MgJiBXUklUQUJMRSkgPT0gMCkgewotICAgICAgICAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgICAgICAgICBDTE9TRShzZWxmLT5oYW5kbGUpOwotICAgICAgICAgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgICAgICAgICAgICAgc2VsZi0+aGFuZGxlID0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHNlbGYtPmZsYWdzID0gV1JJVEFCTEU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgbXBfU2V0RXJyb3IoUHlFeGNfSU9FcnJvciwgcmVzKTsKLSAgICB9IGVsc2UgewotICAgICAgICBpZiAoZnJlZW1lID09IE5VTEwpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoc2VsZi0+YnVmZmVyLCByZXMpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcmVzdWx0ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShmcmVlbWUsIHJlcyk7Ci0gICAgICAgICAgICBQeU1lbV9GcmVlKGZyZWVtZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotY29ubmVjdGlvbl9yZWN2Ynl0ZXNfaW50byhDb25uZWN0aW9uT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBjaGFyICpmcmVlbWUgPSBOVUxMLCAqYnVmZmVyID0gTlVMTDsKLSAgICBQeV9zc2l6ZV90IHJlcywgbGVuZ3RoLCBvZmZzZXQgPSAwOwotICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwotICAgIFB5X2J1ZmZlciBwYnVmOwotCi0gICAgQ0hFQ0tfUkVBREFCTEUoc2VsZik7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIncqfCIgRl9QWV9TU0laRV9ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAmcGJ1ZiwgJm9mZnNldCkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgYnVmZmVyID0gcGJ1Zi5idWY7Ci0gICAgbGVuZ3RoID0gcGJ1Zi5sZW47Ci0KLSAgICBpZiAob2Zmc2V0IDwgMCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIm5lZ2F0aXZlIG9mZnNldCIpOwotICAgICAgICBnb3RvIF9lcnJvcjsKLSAgICB9Ci0KLSAgICBpZiAob2Zmc2V0ID4gbGVuZ3RoKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAib2Zmc2V0IHRvbyBsYXJnZSIpOwotICAgICAgICBnb3RvIF9lcnJvcjsKLSAgICB9Ci0KLSAgICByZXMgPSBjb25uX3JlY3Zfc3RyaW5nKHNlbGYsIGJ1ZmZlcitvZmZzZXQsIGxlbmd0aC1vZmZzZXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmZnJlZW1lLCBQWV9TU0laRV9UX01BWCk7Ci0KLSAgICBpZiAocmVzIDwgMCkgewotICAgICAgICBpZiAocmVzID09IE1QX0JBRF9NRVNTQUdFX0xFTkdUSCkgewotICAgICAgICAgICAgaWYgKChzZWxmLT5mbGFncyAmIFdSSVRBQkxFKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICAgICAgICAgIENMT1NFKHNlbGYtPmhhbmRsZSk7Ci0gICAgICAgICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgICAgICAgICBzZWxmLT5oYW5kbGUgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2VsZi0+ZmxhZ3MgPSBXUklUQUJMRTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBtcF9TZXRFcnJvcihQeUV4Y19JT0Vycm9yLCByZXMpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChmcmVlbWUgPT0gTlVMTCkgewotICAgICAgICAgICAgcmVzdWx0ID0gUHlJbnRfRnJvbVNzaXplX3QocmVzKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihCdWZmZXJUb29TaG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGX1JCVUZGRVIgIiMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyZWVtZSwgcmVzKTsKLSAgICAgICAgICAgIFB5TWVtX0ZyZWUoZnJlZW1lKTsKLSAgICAgICAgICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRPYmplY3QoQnVmZmVyVG9vU2hvcnQsIHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBnb3RvIF9lcnJvcjsKLSAgICAgICAgfQotICAgIH0KLQotX2NsZWFudXA6Ci0gICAgUHlCdWZmZXJfUmVsZWFzZSgmcGJ1Zik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLQotX2Vycm9yOgotICAgIHJlc3VsdCA9IE5VTEw7Ci0gICAgZ290byBfY2xlYW51cDsKLX0KLQotLyoKLSAqIEZ1bmN0aW9ucyBmb3IgdHJhbnNmZXJyaW5nIG9iamVjdHMKLSAqLwotCi1zdGF0aWMgUHlPYmplY3QgKgotY29ubmVjdGlvbl9zZW5kX29iaihDb25uZWN0aW9uT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb2JqKQotewotICAgIGNoYXIgKmJ1ZmZlcjsKLSAgICBpbnQgcmVzOwotICAgIFB5X3NzaXplX3QgbGVuZ3RoOwotICAgIFB5T2JqZWN0ICpwaWNrbGVkX3N0cmluZyA9IE5VTEw7Ci0KLSAgICBDSEVDS19XUklUQUJMRShzZWxmKTsKLQotICAgIHBpY2tsZWRfc3RyaW5nID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhwaWNrbGVfZHVtcHMsIG9iaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlja2xlX3Byb3RvY29sLCBOVUxMKTsKLSAgICBpZiAoIXBpY2tsZWRfc3RyaW5nKQotICAgICAgICBnb3RvIGZhaWx1cmU7Ci0KLSAgICBpZiAoUHlCeXRlc19Bc1N0cmluZ0FuZFNpemUocGlja2xlZF9zdHJpbmcsICZidWZmZXIsICZsZW5ndGgpIDwgMCkKLSAgICAgICAgZ290byBmYWlsdXJlOwotCi0gICAgcmVzID0gY29ubl9zZW5kX3N0cmluZyhzZWxmLCBidWZmZXIsIChpbnQpbGVuZ3RoKTsKLQotICAgIGlmIChyZXMgPCAwKSB7Ci0gICAgICAgIG1wX1NldEVycm9yKFB5RXhjX0lPRXJyb3IsIHJlcyk7Ci0gICAgICAgIGdvdG8gZmFpbHVyZTsKLSAgICB9Ci0KLSAgICBQeV9YREVDUkVGKHBpY2tsZWRfc3RyaW5nKTsKLSAgICBQeV9SRVRVUk5fTk9ORTsKLQotICBmYWlsdXJlOgotICAgIFB5X1hERUNSRUYocGlja2xlZF9zdHJpbmcpOwotICAgIHJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotY29ubmVjdGlvbl9yZWN2X29iaihDb25uZWN0aW9uT2JqZWN0ICpzZWxmKQotewotICAgIGNoYXIgKmZyZWVtZSA9IE5VTEw7Ci0gICAgUHlfc3NpemVfdCByZXM7Ci0gICAgUHlPYmplY3QgKnRlbXAgPSBOVUxMLCAqcmVzdWx0ID0gTlVMTDsKLQotICAgIENIRUNLX1JFQURBQkxFKHNlbGYpOwotCi0gICAgcmVzID0gY29ubl9yZWN2X3N0cmluZyhzZWxmLCBzZWxmLT5idWZmZXIsIENPTk5FQ1RJT05fQlVGRkVSX1NJWkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmZnJlZW1lLCBQWV9TU0laRV9UX01BWCk7Ci0KLSAgICBpZiAocmVzIDwgMCkgewotICAgICAgICBpZiAocmVzID09IE1QX0JBRF9NRVNTQUdFX0xFTkdUSCkgewotICAgICAgICAgICAgaWYgKChzZWxmLT5mbGFncyAmIFdSSVRBQkxFKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICAgICAgICAgIENMT1NFKHNlbGYtPmhhbmRsZSk7Ci0gICAgICAgICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgICAgICAgICBzZWxmLT5oYW5kbGUgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2VsZi0+ZmxhZ3MgPSBXUklUQUJMRTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBtcF9TZXRFcnJvcihQeUV4Y19JT0Vycm9yLCByZXMpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmIChmcmVlbWUgPT0gTlVMTCkgewotICAgICAgICAgICAgdGVtcCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoc2VsZi0+YnVmZmVyLCByZXMpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGVtcCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoZnJlZW1lLCByZXMpOwotICAgICAgICAgICAgUHlNZW1fRnJlZShmcmVlbWUpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKHRlbXApCi0gICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MocGlja2xlX2xvYWRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAsIE5VTEwpOwotICAgIFB5X1hERUNSRUYodGVtcCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLyoKLSAqIE90aGVyIGZ1bmN0aW9ucwotICovCi0KLXN0YXRpYyBQeU9iamVjdCAqCi1jb25uZWN0aW9uX3BvbGwoQ29ubmVjdGlvbk9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgUHlPYmplY3QgKnRpbWVvdXRfb2JqID0gTlVMTDsKLSAgICBkb3VibGUgdGltZW91dCA9IDAuMDsKLSAgICBpbnQgcmVzOwotCi0gICAgQ0hFQ0tfUkVBREFCTEUoc2VsZik7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxPIiwgJnRpbWVvdXRfb2JqKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBpZiAodGltZW91dF9vYmogPT0gTlVMTCkgewotICAgICAgICB0aW1lb3V0ID0gMC4wOwotICAgIH0gZWxzZSBpZiAodGltZW91dF9vYmogPT0gUHlfTm9uZSkgewotICAgICAgICB0aW1lb3V0ID0gLTEuMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBibG9jayBmb3JldmVyICovCi0gICAgfSBlbHNlIHsKLSAgICAgICAgdGltZW91dCA9IFB5RmxvYXRfQXNEb3VibGUodGltZW91dF9vYmopOwotICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBpZiAodGltZW91dCA8IDAuMCkKLSAgICAgICAgICAgIHRpbWVvdXQgPSAwLjA7Ci0gICAgfQotCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJlcyA9IGNvbm5fcG9sbChzZWxmLCB0aW1lb3V0LCBfc2F2ZSk7Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLQotICAgIHN3aXRjaCAocmVzKSB7Ci0gICAgY2FzZSBUUlVFOgotICAgICAgICBQeV9SRVRVUk5fVFJVRTsKLSAgICBjYXNlIEZBTFNFOgotICAgICAgICBQeV9SRVRVUk5fRkFMU0U7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIG1wX1NldEVycm9yKFB5RXhjX0lPRXJyb3IsIHJlcyk7Ci0gICAgfQotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotY29ubmVjdGlvbl9maWxlbm8oQ29ubmVjdGlvbk9iamVjdCogc2VsZikKLXsKLSAgICBpZiAoc2VsZi0+aGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JT0Vycm9yLCAiaGFuZGxlIGlzIGludmFsaWQiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBQeUludF9Gcm9tTG9uZygobG9uZylzZWxmLT5oYW5kbGUpOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotY29ubmVjdGlvbl9jbG9zZShDb25uZWN0aW9uT2JqZWN0ICpzZWxmKQotewotICAgIGlmIChzZWxmLT5oYW5kbGUgIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKLSAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICBDTE9TRShzZWxmLT5oYW5kbGUpOwotICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgICAgICBzZWxmLT5oYW5kbGUgPSBJTlZBTElEX0hBTkRMRV9WQUxVRTsKLSAgICB9Ci0KLSAgICBQeV9SRVRVUk5fTk9ORTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLWNvbm5lY3Rpb25fcmVwcihDb25uZWN0aW9uT2JqZWN0ICpzZWxmKQotewotICAgIHN0YXRpYyBjaGFyICpjb25uX3R5cGVbXSA9IHsicmVhZC1vbmx5IiwgIndyaXRlLW9ubHkiLCAicmVhZC13cml0ZSJ9OwotCi0gICAgYXNzZXJ0KHNlbGYtPmZsYWdzID49IDEgJiYgc2VsZi0+ZmxhZ3MgPD0gMyk7Ci0gICAgcmV0dXJuIEZST01fRk9STUFUKCI8JXMgJXMsIGhhbmRsZSAlemQ+IiwKLSAgICAgICAgICAgICAgICAgICAgICAgY29ubl90eXBlW3NlbGYtPmZsYWdzIC0gMV0sCi0gICAgICAgICAgICAgICAgICAgICAgIENPTk5FQ1RJT05fTkFNRSwgKFB5X3NzaXplX3Qpc2VsZi0+aGFuZGxlKTsKLX0KLQotLyoKLSAqIEdldHRlcnMgYW5kIHNldHRlcnMKLSAqLwotCi1zdGF0aWMgUHlPYmplY3QgKgotY29ubmVjdGlvbl9jbG9zZWQoQ29ubmVjdGlvbk9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKLXsKLSAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKChsb25nKShzZWxmLT5oYW5kbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLWNvbm5lY3Rpb25fcmVhZGFibGUoQ29ubmVjdGlvbk9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKLXsKLSAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKChsb25nKShzZWxmLT5mbGFncyAmIFJFQURBQkxFKSk7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1jb25uZWN0aW9uX3dyaXRhYmxlKENvbm5lY3Rpb25PYmplY3QgKnNlbGYsIHZvaWQgKmNsb3N1cmUpCi17Ci0gICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygobG9uZykoc2VsZi0+ZmxhZ3MgJiBXUklUQUJMRSkpOwotfQotCi0vKgotICogVGFibGVzCi0gKi8KLQotc3RhdGljIFB5TWV0aG9kRGVmIGNvbm5lY3Rpb25fbWV0aG9kc1tdID0gewotICAgIHsic2VuZF9ieXRlcyIsIChQeUNGdW5jdGlvbiljb25uZWN0aW9uX3NlbmRieXRlcywgTUVUSF9WQVJBUkdTLAotICAgICAic2VuZCB0aGUgYnl0ZSBkYXRhIGZyb20gYSByZWFkYWJsZSBidWZmZXItbGlrZSBvYmplY3QifSwKLSAgICB7InJlY3ZfYnl0ZXMiLCAoUHlDRnVuY3Rpb24pY29ubmVjdGlvbl9yZWN2Ynl0ZXMsIE1FVEhfVkFSQVJHUywKLSAgICAgInJlY2VpdmUgYnl0ZSBkYXRhIGFzIGEgc3RyaW5nIn0sCi0gICAgeyJyZWN2X2J5dGVzX2ludG8iLChQeUNGdW5jdGlvbiljb25uZWN0aW9uX3JlY3ZieXRlc19pbnRvLE1FVEhfVkFSQVJHUywKLSAgICAgInJlY2VpdmUgYnl0ZSBkYXRhIGludG8gYSB3cml0ZWFibGUgYnVmZmVyLWxpa2Ugb2JqZWN0XG4iCi0gICAgICJyZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVhZCJ9LAotCi0gICAgeyJzZW5kIiwgKFB5Q0Z1bmN0aW9uKWNvbm5lY3Rpb25fc2VuZF9vYmosIE1FVEhfTywKLSAgICAgInNlbmQgYSAocGlja2xhYmxlKSBvYmplY3QifSwKLSAgICB7InJlY3YiLCAoUHlDRnVuY3Rpb24pY29ubmVjdGlvbl9yZWN2X29iaiwgTUVUSF9OT0FSR1MsCi0gICAgICJyZWNlaXZlIGEgKHBpY2tsYWJsZSkgb2JqZWN0In0sCi0KLSAgICB7InBvbGwiLCAoUHlDRnVuY3Rpb24pY29ubmVjdGlvbl9wb2xsLCBNRVRIX1ZBUkFSR1MsCi0gICAgICJ3aGV0aGVyIHRoZXJlIGlzIGFueSBpbnB1dCBhdmFpbGFibGUgdG8gYmUgcmVhZCJ9LAotICAgIHsiZmlsZW5vIiwgKFB5Q0Z1bmN0aW9uKWNvbm5lY3Rpb25fZmlsZW5vLCBNRVRIX05PQVJHUywKLSAgICAgImZpbGUgZGVzY3JpcHRvciBvciBoYW5kbGUgb2YgdGhlIGNvbm5lY3Rpb24ifSwKLSAgICB7ImNsb3NlIiwgKFB5Q0Z1bmN0aW9uKWNvbm5lY3Rpb25fY2xvc2UsIE1FVEhfTk9BUkdTLAotICAgICAiY2xvc2UgdGhlIGNvbm5lY3Rpb24ifSwKLQotICAgIHtOVUxMfSAgLyogU2VudGluZWwgKi8KLX07Ci0KLXN0YXRpYyBQeUdldFNldERlZiBjb25uZWN0aW9uX2dldHNldFtdID0gewotICAgIHsiY2xvc2VkIiwgKGdldHRlciljb25uZWN0aW9uX2Nsb3NlZCwgTlVMTCwKLSAgICAgIlRydWUgaWYgdGhlIGNvbm5lY3Rpb24gaXMgY2xvc2VkIiwgTlVMTH0sCi0gICAgeyJyZWFkYWJsZSIsIChnZXR0ZXIpY29ubmVjdGlvbl9yZWFkYWJsZSwgTlVMTCwKLSAgICAgIlRydWUgaWYgdGhlIGNvbm5lY3Rpb24gaXMgcmVhZGFibGUiLCBOVUxMfSwKLSAgICB7IndyaXRhYmxlIiwgKGdldHRlciljb25uZWN0aW9uX3dyaXRhYmxlLCBOVUxMLAotICAgICAiVHJ1ZSBpZiB0aGUgY29ubmVjdGlvbiBpcyB3cml0YWJsZSIsIE5VTEx9LAotICAgIHtOVUxMfQotfTsKLQotLyoKLSAqIENvbm5lY3Rpb24gdHlwZQotICovCi0KLVB5RG9jX1NUUlZBUihjb25uZWN0aW9uX2RvYywKLSAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0eXBlIHdob3NlIGNvbnN0cnVjdG9yIHNpZ25hdHVyZSBpc1xuXG4iCi0gICAgICAgICAgICAgIiAgICBDb25uZWN0aW9uKGhhbmRsZSwgcmVhZGFibGU9VHJ1ZSwgd3JpdGFibGU9VHJ1ZSkuXG5cbiIKLSAgICAgICAgICAgICAiVGhlIGNvbnN0cnVjdG9yIGRvZXMgKm5vdCogZHVwbGljYXRlIHRoZSBoYW5kbGUuIik7Ci0KLVB5VHlwZU9iamVjdCBDT05ORUNUSU9OX1RZUEUgPSB7Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi0gICAgLyogdHBfbmFtZSAgICAgICAgICAgKi8gIl9tdWx0aXByb2Nlc3NpbmcuIiBDT05ORUNUSU9OX05BTUUsCi0gICAgLyogdHBfYmFzaWNzaXplICAgICAgKi8gc2l6ZW9mKENvbm5lY3Rpb25PYmplY3QpLAotICAgIC8qIHRwX2l0ZW1zaXplICAgICAgICovIDAsCi0gICAgLyogdHBfZGVhbGxvYyAgICAgICAgKi8gKGRlc3RydWN0b3IpY29ubmVjdGlvbl9kZWFsbG9jLAotICAgIC8qIHRwX3ByaW50ICAgICAgICAgICovIDAsCi0gICAgLyogdHBfZ2V0YXR0ciAgICAgICAgKi8gMCwKLSAgICAvKiB0cF9zZXRhdHRyICAgICAgICAqLyAwLAotICAgIC8qIHRwX3Jlc2VydmVkICAgICAgICovIDAsCi0gICAgLyogdHBfcmVwciAgICAgICAgICAgKi8gKHJlcHJmdW5jKWNvbm5lY3Rpb25fcmVwciwKLSAgICAvKiB0cF9hc19udW1iZXIgICAgICAqLyAwLAotICAgIC8qIHRwX2FzX3NlcXVlbmNlICAgICovIDAsCi0gICAgLyogdHBfYXNfbWFwcGluZyAgICAgKi8gMCwKLSAgICAvKiB0cF9oYXNoICAgICAgICAgICAqLyAwLAotICAgIC8qIHRwX2NhbGwgICAgICAgICAgICovIDAsCi0gICAgLyogdHBfc3RyICAgICAgICAgICAgKi8gMCwKLSAgICAvKiB0cF9nZXRhdHRybyAgICAgICAqLyAwLAotICAgIC8qIHRwX3NldGF0dHJvICAgICAgICovIDAsCi0gICAgLyogdHBfYXNfYnVmZmVyICAgICAgKi8gMCwKLSAgICAvKiB0cF9mbGFncyAgICAgICAgICAqLyBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0JBU0VUWVBFIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9UUEZMQUdTX0hBVkVfV0VBS1JFRlMsCi0gICAgLyogdHBfZG9jICAgICAgICAgICAgKi8gY29ubmVjdGlvbl9kb2MsCi0gICAgLyogdHBfdHJhdmVyc2UgICAgICAgKi8gMCwKLSAgICAvKiB0cF9jbGVhciAgICAgICAgICAqLyAwLAotICAgIC8qIHRwX3JpY2hjb21wYXJlICAgICovIDAsCi0gICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8gb2Zmc2V0b2YoQ29ubmVjdGlvbk9iamVjdCwgd2Vha3JlZmxpc3QpLAotICAgIC8qIHRwX2l0ZXIgICAgICAgICAgICovIDAsCi0gICAgLyogdHBfaXRlcm5leHQgICAgICAgKi8gMCwKLSAgICAvKiB0cF9tZXRob2RzICAgICAgICAqLyBjb25uZWN0aW9uX21ldGhvZHMsCi0gICAgLyogdHBfbWVtYmVycyAgICAgICAgKi8gMCwKLSAgICAvKiB0cF9nZXRzZXQgICAgICAgICAqLyBjb25uZWN0aW9uX2dldHNldCwKLSAgICAvKiB0cF9iYXNlICAgICAgICAgICAqLyAwLAotICAgIC8qIHRwX2RpY3QgICAgICAgICAgICovIDAsCi0gICAgLyogdHBfZGVzY3JfZ2V0ICAgICAgKi8gMCwKLSAgICAvKiB0cF9kZXNjcl9zZXQgICAgICAqLyAwLAotICAgIC8qIHRwX2RpY3RvZmZzZXQgICAgICovIDAsCi0gICAgLyogdHBfaW5pdCAgICAgICAgICAgKi8gMCwKLSAgICAvKiB0cF9hbGxvYyAgICAgICAgICAqLyAwLAotICAgIC8qIHRwX25ldyAgICAgICAgICAgICovIGNvbm5lY3Rpb25fbmV3LAotfTsKLQotI2VuZGlmIC8qIENPTk5FQ1RJT05fSCAqLwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL211bHRpcHJvY2Vzc2luZy5jIGIvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL211bHRpcHJvY2Vzc2luZy5jCmluZGV4IGVlMjUwZTAuLmViMDVjNjIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX211bHRpcHJvY2Vzc2luZy9tdWx0aXByb2Nlc3NpbmcuYworKysgYi9Nb2R1bGVzL19tdWx0aXByb2Nlc3NpbmcvbXVsdGlwcm9jZXNzaW5nLmMKQEAgLTMsMjAgKzMsMTMgQEAKICAqCiAgKiBtdWx0aXByb2Nlc3NpbmcuYwogICoKLSAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA4LCBSIE91ZGtlcmsgLS0tIHNlZSBDT1BZSU5HLnR4dAorICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDgsIFIgT3Vka2VyaworICogTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50LgogICovCiAKICNpbmNsdWRlICJtdWx0aXByb2Nlc3NpbmcuaCIKIAotI2lmIChkZWZpbmVkKENNU0dfTEVOKSAmJiBkZWZpbmVkKFNDTV9SSUdIVFMpKQotICAgICNkZWZpbmUgSEFWRV9GRF9UUkFOU0ZFUiAxCi0jZWxzZQotICAgICNkZWZpbmUgSEFWRV9GRF9UUkFOU0ZFUiAwCi0jZW5kaWYKIAotUHlPYmplY3QgKmNyZWF0ZV93aW4zMl9uYW1lc3BhY2Uodm9pZCk7Ci0KLVB5T2JqZWN0ICpwaWNrbGVfZHVtcHMsICpwaWNrbGVfbG9hZHMsICpwaWNrbGVfcHJvdG9jb2w7CiBQeU9iamVjdCAqUHJvY2Vzc0Vycm9yLCAqQnVmZmVyVG9vU2hvcnQ7CiAKIC8qCkBAIC00OSwxNiArNDIsNiBAQAogICAgIGNhc2UgTVBfTUVNT1JZX0VSUk9SOgogICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIE1QX0VORF9PRl9GSUxFOgotICAgICAgICBQeUVycl9TZXROb25lKFB5RXhjX0VPRkVycm9yKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBNUF9FQVJMWV9FTkRfT0ZfRklMRToKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0lPRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiZ290IGVuZCBvZiBmaWxlIGR1cmluZyBtZXNzYWdlIik7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTVBfQkFEX01FU1NBR0VfTEVOR1RIOgotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSU9FcnJvciwgImJhZCBtZXNzYWdlIGxlbmd0aCIpOwotICAgICAgICBicmVhazsKICAgICBjYXNlIE1QX0VYQ0VQVElPTl9IQVNfQkVFTl9TRVQ6CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC02OCwxNzAgKzUxLDgyIEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKLQotLyoKLSAqIFdpbmRvd3Mgb25seQotICovCi0KICNpZmRlZiBNU19XSU5ET1dTCi0KLS8qIE9uIFdpbmRvd3Mgd2Ugc2V0IGFuIGV2ZW50IHRvIHNpZ25hbCBDdHJsLUM7IGNvbXBhcmUgd2l0aCB0aW1lbW9kdWxlLmMgKi8KLQotSEFORExFIHNpZ2ludF9ldmVudCA9IE5VTEw7Ci0KLXN0YXRpYyBCT09MIFdJTkFQSQotUHJvY2Vzc2luZ0N0cmxIYW5kbGVyKERXT1JEIGR3Q3RybFR5cGUpCi17Ci0gICAgU2V0RXZlbnQoc2lnaW50X2V2ZW50KTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLS8qCi0gKiBVbml4IG9ubHkKLSAqLwotCi0jZWxzZSAvKiAhTVNfV0lORE9XUyAqLwotCi0jaWYgSEFWRV9GRF9UUkFOU0ZFUgotCi0vKiBGdW5jdGlvbnMgZm9yIHRyYW5zZmVycmluZyBmaWxlIGRlc2NyaXB0b3JzIGJldHdlZW4gcHJvY2Vzc2VzLgotICAgUmVpbXBsZW1lbnRzIHNvbWUgb2YgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGZkY3JlZAotICAgbW9kdWxlIGF0IGh0dHA6Ly93d3cubWNhLWx0ZC5jb20vcmVzb3VyY2VzL2ZkY3JlZF8xLnRnei4gKi8KLS8qIEJhc2VkIGluIGh0dHA6Ly9yZXNpbi5jc29mdC5uZXQvY2dpLWJpbi9tYW4uY2dpP3NlY3Rpb249MyZ0b3BpYz1DTVNHX0RBVEEgKi8KLQogc3RhdGljIFB5T2JqZWN0ICoKLW11bHRpcHJvY2Vzc2luZ19zZW5kZmQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorbXVsdGlwcm9jZXNzaW5nX2Nsb3Nlc29ja2V0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBpbnQgY29ubiwgZmQsIHJlczsKLSAgICBzdHJ1Y3QgaW92ZWMgZHVtbXlfaW92OwotICAgIGNoYXIgZHVtbXlfY2hhcjsKLSAgICBzdHJ1Y3QgbXNnaGRyIG1zZzsKLSAgICBzdHJ1Y3QgY21zZ2hkciAqY21zZzsKLSAgICB1bmlvbiB7Ci0gICAgICAgIHN0cnVjdCBjbXNnaGRyIGhkcjsKLSAgICAgICAgdW5zaWduZWQgY2hhciBidWZbQ01TR19TUEFDRShzaXplb2YoaW50KSldOwotICAgIH0gY21zZ2J1ZjsKKyAgICBIQU5ETEUgaGFuZGxlOworICAgIGludCByZXQ7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImlpIiwgJmNvbm4sICZmZCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIEZfSEFORExFICI6Y2xvc2Vzb2NrZXQiICwgJmhhbmRsZSkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgZHVtbXlfaW92Lmlvdl9iYXNlID0gJmR1bW15X2NoYXI7Ci0gICAgZHVtbXlfaW92Lmlvdl9sZW4gPSAxOwotCi0gICAgbWVtc2V0KCZtc2csIDAsIHNpemVvZihtc2cpKTsKLSAgICBtc2cubXNnX2NvbnRyb2wgPSAmY21zZ2J1Zi5idWY7Ci0gICAgbXNnLm1zZ19jb250cm9sbGVuID0gc2l6ZW9mKGNtc2didWYuYnVmKTsKLSAgICBtc2cubXNnX2lvdiA9ICZkdW1teV9pb3Y7Ci0gICAgbXNnLm1zZ19pb3ZsZW4gPSAxOwotCi0gICAgY21zZyA9IENNU0dfRklSU1RIRFIoJm1zZyk7Ci0gICAgY21zZy0+Y21zZ19sZW4gPSBDTVNHX0xFTihzaXplb2YoaW50KSk7Ci0gICAgY21zZy0+Y21zZ19sZXZlbCA9IFNPTF9TT0NLRVQ7Ci0gICAgY21zZy0+Y21zZ190eXBlID0gU0NNX1JJR0hUUzsKLSAgICAqIChpbnQgKikgQ01TR19EQVRBKGNtc2cpID0gZmQ7Ci0KICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgcmVzID0gc2VuZG1zZyhjb25uLCAmbXNnLCAwKTsKKyAgICByZXQgPSBjbG9zZXNvY2tldCgoU09DS0VUKSBoYW5kbGUpOwogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKLSAgICBpZiAocmVzIDwgMCkKLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKKyAgICBpZiAocmV0KQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RXhjRnJvbVdpbmRvd3NFcnIoUHlFeGNfSU9FcnJvciwgV1NBR2V0TGFzdEVycm9yKCkpOwogICAgIFB5X1JFVFVSTl9OT05FOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotbXVsdGlwcm9jZXNzaW5nX3JlY3ZmZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCittdWx0aXByb2Nlc3NpbmdfcmVjdihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgaW50IGNvbm4sIGZkLCByZXM7Ci0gICAgY2hhciBkdW1teV9jaGFyOwotICAgIHN0cnVjdCBpb3ZlYyBkdW1teV9pb3Y7Ci0gICAgc3RydWN0IG1zZ2hkciBtc2cgPSB7MH07Ci0gICAgc3RydWN0IGNtc2doZHIgKmNtc2c7Ci0gICAgdW5pb24gewotICAgICAgICBzdHJ1Y3QgY21zZ2hkciBoZHI7Ci0gICAgICAgIHVuc2lnbmVkIGNoYXIgYnVmW0NNU0dfU1BBQ0Uoc2l6ZW9mKGludCkpXTsKLSAgICB9IGNtc2didWY7CisgICAgSEFORExFIGhhbmRsZTsKKyAgICBpbnQgc2l6ZSwgbnJlYWQ7CisgICAgUHlPYmplY3QgKmJ1ZjsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaSIsICZjb25uKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgRl9IQU5ETEUgImk6cmVjdiIgLCAmaGFuZGxlLCAmc2l6ZSkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgZHVtbXlfaW92Lmlvdl9iYXNlID0gJmR1bW15X2NoYXI7Ci0gICAgZHVtbXlfaW92Lmlvdl9sZW4gPSAxOwotCi0gICAgbWVtc2V0KCZtc2csIDAsIHNpemVvZihtc2cpKTsKLSAgICBtc2cubXNnX2NvbnRyb2wgPSAmY21zZ2J1Zi5idWY7Ci0gICAgbXNnLm1zZ19jb250cm9sbGVuID0gc2l6ZW9mKGNtc2didWYuYnVmKTsKLSAgICBtc2cubXNnX2lvdiA9ICZkdW1teV9pb3Y7Ci0gICAgbXNnLm1zZ19pb3ZsZW4gPSAxOwotCi0gICAgY21zZyA9IENNU0dfRklSU1RIRFIoJm1zZyk7Ci0gICAgY21zZy0+Y21zZ19sZXZlbCA9IFNPTF9TT0NLRVQ7Ci0gICAgY21zZy0+Y21zZ190eXBlID0gU0NNX1JJR0hUUzsKLSAgICBjbXNnLT5jbXNnX2xlbiA9IENNU0dfTEVOKHNpemVvZihpbnQpKTsKLSAgICBtc2cubXNnX2NvbnRyb2xsZW4gPSBjbXNnLT5jbXNnX2xlbjsKKyAgICBidWYgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIHNpemUpOworICAgIGlmICghYnVmKQorICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSByZWN2bXNnKGNvbm4sICZtc2csIDApOworICAgIG5yZWFkID0gcmVjdigoU09DS0VUKSBoYW5kbGUsIFB5Qnl0ZXNfQVNfU1RSSU5HKGJ1ZiksIHNpemUsIDApOwogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKLSAgICBpZiAocmVzIDwgMCkKLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKLQotICAgIGlmIChtc2cubXNnX2NvbnRyb2xsZW4gPCBDTVNHX0xFTihzaXplb2YoaW50KSkgfHwKLSAgICAgICAgKGNtc2cgPSBDTVNHX0ZJUlNUSERSKCZtc2cpKSA9PSBOVUxMIHx8Ci0gICAgICAgIGNtc2ctPmNtc2dfbGV2ZWwgIT0gU09MX1NPQ0tFVCB8fAotICAgICAgICBjbXNnLT5jbXNnX3R5cGUgIT0gU0NNX1JJR0hUUyB8fAotICAgICAgICBjbXNnLT5jbXNnX2xlbiA8IENNU0dfTEVOKHNpemVvZihpbnQpKSkgewotICAgICAgICAvKiBJZiBhdCBsZWFzdCBvbmUgY29udHJvbCBtZXNzYWdlIGlzIHByZXNlbnQsIHRoZXJlIHNob3VsZCBiZQotICAgICAgICAgICBubyByb29tIGZvciBhbnkgZnVydGhlciBkYXRhIGluIHRoZSBidWZmZXIuICovCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsICJObyBmaWxlIGRlc2NyaXB0b3IgcmVjZWl2ZWQiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKG5yZWFkIDwgMCkgeworICAgICAgICBQeV9ERUNSRUYoYnVmKTsKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyKFB5RXhjX0lPRXJyb3IsIFdTQUdldExhc3RFcnJvcigpKTsKICAgICB9Ci0KLSAgICBmZCA9ICogKGludCAqKSBDTVNHX0RBVEEoY21zZyk7Ci0gICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoImkiLCBmZCk7CisgICAgX1B5Qnl0ZXNfUmVzaXplKCZidWYsIG5yZWFkKTsKKyAgICByZXR1cm4gYnVmOwogfQogCi0jZW5kaWYgLyogSEFWRV9GRF9UUkFOU0ZFUiAqLwotCi0jZW5kaWYgLyogIU1TX1dJTkRPV1MgKi8KLQotCi0vKgotICogQWxsIHBsYXRmb3JtcwotICovCi0KLXN0YXRpYyBQeU9iamVjdCoKLW11bHRpcHJvY2Vzc2luZ19hZGRyZXNzX29mX2J1ZmZlcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm9iaikKK3N0YXRpYyBQeU9iamVjdCAqCittdWx0aXByb2Nlc3Npbmdfc2VuZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgdm9pZCAqYnVmZmVyOwotICAgIFB5X3NzaXplX3QgYnVmZmVyX2xlbjsKKyAgICBIQU5ETEUgaGFuZGxlOworICAgIFB5X2J1ZmZlciBidWY7CisgICAgaW50IHJldDsKIAotICAgIGlmIChQeU9iamVjdF9Bc1dyaXRlQnVmZmVyKG9iaiwgJmJ1ZmZlciwgJmJ1ZmZlcl9sZW4pIDwgMCkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgRl9IQU5ETEUgInkqOnNlbmQiICwgJmhhbmRsZSwgJmJ1ZikpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk4iIEZfUFlfU1NJWkVfVCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBQeUxvbmdfRnJvbVZvaWRQdHIoYnVmZmVyKSwgYnVmZmVyX2xlbik7CisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJldCA9IHNlbmQoKFNPQ0tFVCkgaGFuZGxlLCBidWYuYnVmLCBidWYubGVuLCAwKTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgUHlCdWZmZXJfUmVsZWFzZSgmYnVmKTsKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyKFB5RXhjX0lPRXJyb3IsIFdTQUdldExhc3RFcnJvcigpKTsKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKHJldCk7CiB9CiAKKyNlbmRpZgogCiAvKgogICogRnVuY3Rpb24gdGFibGUKICAqLwogCiBzdGF0aWMgUHlNZXRob2REZWYgbW9kdWxlX21ldGhvZHNbXSA9IHsKLSAgICB7ImFkZHJlc3Nfb2ZfYnVmZmVyIiwgbXVsdGlwcm9jZXNzaW5nX2FkZHJlc3Nfb2ZfYnVmZmVyLCBNRVRIX08sCi0gICAgICJhZGRyZXNzX29mX2J1ZmZlcihvYmopIC0+IGludFxuIgotICAgICAiUmV0dXJuIGFkZHJlc3Mgb2Ygb2JqIGFzc3VtaW5nIG9iaiBzdXBwb3J0cyBidWZmZXIgaW50ZWZhY2UifSwKLSNpZiBIQVZFX0ZEX1RSQU5TRkVSCi0gICAgeyJzZW5kZmQiLCBtdWx0aXByb2Nlc3Npbmdfc2VuZGZkLCBNRVRIX1ZBUkFSR1MsCi0gICAgICJzZW5kZmQoc29ja2ZkLCBmZCkgLT4gTm9uZVxuIgotICAgICAiU2VuZCBmaWxlIGRlc2NyaXB0b3IgZ2l2ZW4gYnkgZmQgb3ZlciB0aGUgdW5peCBkb21haW4gc29ja2V0XG4iCi0gICAgICJ3aG9zZSBmaWxlIGRlY3JpcHRvciBpcyBzb2NrZmQifSwKLSAgICB7InJlY3ZmZCIsIG11bHRpcHJvY2Vzc2luZ19yZWN2ZmQsIE1FVEhfVkFSQVJHUywKLSAgICAgInJlY3ZmZChzb2NrZmQpIC0+IGZkXG4iCi0gICAgICJSZWNlaXZlIGEgZmlsZSBkZXNjcmlwdG9yIG92ZXIgYSB1bml4IGRvbWFpbiBzb2NrZXRcbiIKLSAgICAgIndob3NlIGZpbGUgZGVjcmlwdG9yIGlzIHNvY2tmZCJ9LAorI2lmZGVmIE1TX1dJTkRPV1MKKyAgICB7ImNsb3Nlc29ja2V0IiwgbXVsdGlwcm9jZXNzaW5nX2Nsb3Nlc29ja2V0LCBNRVRIX1ZBUkFSR1MsICIifSwKKyAgICB7InJlY3YiLCBtdWx0aXByb2Nlc3NpbmdfcmVjdiwgTUVUSF9WQVJBUkdTLCAiIn0sCisgICAgeyJzZW5kIiwgbXVsdGlwcm9jZXNzaW5nX3NlbmQsIE1FVEhfVkFSQVJHUywgIiJ9LAogI2VuZGlmCiAgICAge05VTEx9CiB9OwpAQCAtMjU3LDIyICsxNTIsMTMgQEAKIFB5TU9ESU5JVF9GVU5DCiBQeUluaXRfX211bHRpcHJvY2Vzc2luZyh2b2lkKQogewotICAgIFB5T2JqZWN0ICptb2R1bGUsICp0ZW1wLCAqdmFsdWU7CisgICAgUHlPYmplY3QgKm1vZHVsZSwgKnRlbXAsICp2YWx1ZSA9IE5VTEw7CiAKICAgICAvKiBJbml0aWFsaXplIG1vZHVsZSAqLwogICAgIG1vZHVsZSA9IFB5TW9kdWxlX0NyZWF0ZSgmbXVsdGlwcm9jZXNzaW5nX21vZHVsZSk7CiAgICAgaWYgKCFtb2R1bGUpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgLyogR2V0IGNvcHkgb2Ygb2JqZWN0cyBmcm9tIHBpY2tsZSAqLwotICAgIHRlbXAgPSBQeUltcG9ydF9JbXBvcnRNb2R1bGUoUElDS0xFX01PRFVMRSk7Ci0gICAgaWYgKCF0ZW1wKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBwaWNrbGVfZHVtcHMgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHRlbXAsICJkdW1wcyIpOwotICAgIHBpY2tsZV9sb2FkcyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcodGVtcCwgImxvYWRzIik7Ci0gICAgcGlja2xlX3Byb3RvY29sID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh0ZW1wLCAiSElHSEVTVF9QUk9UT0NPTCIpOwotICAgIFB5X1hERUNSRUYodGVtcCk7Ci0KICAgICAvKiBHZXQgY29weSBvZiBCdWZmZXJUb29TaG9ydCAqLwogICAgIHRlbXAgPSBQeUltcG9ydF9JbXBvcnRNb2R1bGUoIm11bHRpcHJvY2Vzc2luZyIpOwogICAgIGlmICghdGVtcCkKQEAgLTI4MCwxMiArMTY2LDYgQEAKICAgICBCdWZmZXJUb29TaG9ydCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcodGVtcCwgIkJ1ZmZlclRvb1Nob3J0Iik7CiAgICAgUHlfWERFQ1JFRih0ZW1wKTsKIAotICAgIC8qIEFkZCBjb25uZWN0aW9uIHR5cGUgdG8gbW9kdWxlICovCi0gICAgaWYgKFB5VHlwZV9SZWFkeSgmQ29ubmVjdGlvblR5cGUpIDwgMCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgUHlfSU5DUkVGKCZDb25uZWN0aW9uVHlwZSk7Ci0gICAgUHlNb2R1bGVfQWRkT2JqZWN0KG1vZHVsZSwgIkNvbm5lY3Rpb24iLCAoUHlPYmplY3QqKSZDb25uZWN0aW9uVHlwZSk7Ci0KICNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgKGRlZmluZWQoSEFWRV9TRU1fT1BFTikgJiYgIWRlZmluZWQoUE9TSVhfU0VNQVBIT1JFU19OT1RfRU5BQkxFRCkpCiAgICAgLyogQWRkIFNlbUxvY2sgdHlwZSB0byBtb2R1bGUgKi8KQEAgLTMwOCwzMiArMTg4LDYgQEAKICAgICBQeU1vZHVsZV9BZGRPYmplY3QobW9kdWxlLCAiU2VtTG9jayIsIChQeU9iamVjdCopJlNlbUxvY2tUeXBlKTsKICNlbmRpZgogCi0jaWZkZWYgTVNfV0lORE9XUwotICAgIC8qIEFkZCBQaXBlQ29ubmVjdGlvbiB0byBtb2R1bGUgKi8KLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZQaXBlQ29ubmVjdGlvblR5cGUpIDwgMCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgUHlfSU5DUkVGKCZQaXBlQ29ubmVjdGlvblR5cGUpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtb2R1bGUsICJQaXBlQ29ubmVjdGlvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgIChQeU9iamVjdCopJlBpcGVDb25uZWN0aW9uVHlwZSk7Ci0KLSAgICAvKiBJbml0aWFsaXplIHdpbjMyIGNsYXNzIGFuZCBhZGQgdG8gbXVsdGlwcm9jZXNzaW5nICovCi0gICAgdGVtcCA9IGNyZWF0ZV93aW4zMl9uYW1lc3BhY2UoKTsKLSAgICBpZiAoIXRlbXApCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtb2R1bGUsICJ3aW4zMiIsIHRlbXApOwotCi0gICAgLyogSW5pdGlhbGl6ZSB0aGUgZXZlbnQgaGFuZGxlIHVzZWQgdG8gc2lnbmFsIEN0cmwtQyAqLwotICAgIHNpZ2ludF9ldmVudCA9IENyZWF0ZUV2ZW50KE5VTEwsIFRSVUUsIEZBTFNFLCBOVUxMKTsKLSAgICBpZiAoIXNpZ2ludF9ldmVudCkgewotICAgICAgICBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGlmICghU2V0Q29uc29sZUN0cmxIYW5kbGVyKFByb2Nlc3NpbmdDdHJsSGFuZGxlciwgVFJVRSkpIHsKLSAgICAgICAgUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSNlbmRpZgotCiAgICAgLyogQWRkIGNvbmZpZ3VyYXRpb24gbWFjcm9zICovCiAgICAgdGVtcCA9IFB5RGljdF9OZXcoKTsKICAgICBpZiAoIXRlbXApCkBAIC0zNDMsNyArMTk3LDcgQEAKICAgICB2YWx1ZSA9IFB5X0J1aWxkVmFsdWUoImkiLCBuYW1lKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBpZiAodmFsdWUgPT0gTlVMTCkgeyBQeV9ERUNSRUYodGVtcCk7IHJldHVybiBOVUxMOyB9ICAgICAgICAgIFwKICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcodGVtcCwgI25hbWUsIHZhbHVlKSA8IDApIHsgICAgICAgICAgIFwKLSAgICAgICAgUHlfREVDUkVGKHRlbXApOyBQeV9ERUNSRUYodmFsdWUpOyByZXR1cm4gTlVMTDsgfSAgICAgICAgICAgICAgICAgXAorICAgICAgICBQeV9ERUNSRUYodGVtcCk7IFB5X0RFQ1JFRih2YWx1ZSk7IHJldHVybiBOVUxMOyB9ICAgICAgICAgXAogICAgIFB5X0RFQ1JFRih2YWx1ZSkKIAogI2lmIGRlZmluZWQoSEFWRV9TRU1fT1BFTikgJiYgIWRlZmluZWQoUE9TSVhfU0VNQVBIT1JFU19OT1RfRU5BQkxFRCkKQEAgLTM1Miw5ICsyMDYsNiBAQAogI2lmZGVmIEhBVkVfU0VNX1RJTUVEV0FJVAogICAgIEFERF9GTEFHKEhBVkVfU0VNX1RJTUVEV0FJVCk7CiAjZW5kaWYKLSNpZmRlZiBIQVZFX0ZEX1RSQU5TRkVSCi0gICAgQUREX0ZMQUcoSEFWRV9GRF9UUkFOU0ZFUik7Ci0jZW5kaWYKICNpZmRlZiBIQVZFX0JST0tFTl9TRU1fR0VUVkFMVUUKICAgICBBRERfRkxBRyhIQVZFX0JST0tFTl9TRU1fR0VUVkFMVUUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19tdWx0aXByb2Nlc3NpbmcvbXVsdGlwcm9jZXNzaW5nLmggYi9Nb2R1bGVzL19tdWx0aXByb2Nlc3NpbmcvbXVsdGlwcm9jZXNzaW5nLmgKaW5kZXggMTQ0MjVkZS4uZTNkZTliYSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL211bHRpcHJvY2Vzc2luZy5oCisrKyBiL01vZHVsZXMvX211bHRpcHJvY2Vzc2luZy9tdWx0aXByb2Nlc3NpbmcuaApAQCAtMywxMiArMyw2IEBACiAKICNkZWZpbmUgUFlfU1NJWkVfVF9DTEVBTgogCi0jaWZkZWYgX19zdW4KLS8qIFRoZSBjb250cm9sIG1lc3NhZ2UgQVBJIGlzIG9ubHkgYXZhaWxhYmxlIG9uIFNvbGFyaXMgCi0gICBpZiBYUEcgNC4yIG9yIGxhdGVyIGlzIHJlcXVlc3RlZC4gKi8KLSNkZWZpbmUgX1hPUEVOX1NPVVJDRSA1MDAKLSNlbmRpZgotCiAjaW5jbHVkZSAiUHl0aG9uLmgiCiAjaW5jbHVkZSAic3RydWN0bWVtYmVyLmgiCiAjaW5jbHVkZSAicHl0aHJlYWQuaCIKQEAgLTI5LDEwICsyMyw2IEBACiAjICBkZWZpbmUgU0VNX1ZBTFVFX01BWCBMT05HX01BWAogI2Vsc2UKICMgIGluY2x1ZGUgPGZjbnRsLmg+ICAgICAgICAgICAgICAgICAvKiBPX0NSRUFUIGFuZCBPX0VYQ0wgKi8KLSMgIGluY2x1ZGUgPG5ldGluZXQvaW4uaD4KLSMgIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4KLSMgIGluY2x1ZGUgPHN5cy91aW8uaD4KLSMgIGluY2x1ZGUgPGFycGEvaW5ldC5oPiAgICAgICAgICAgICAvKiBodG9ubCgpIGFuZCBudG9obCgpICovCiAjICBpZiBkZWZpbmVkKEhBVkVfU0VNX09QRU4pICYmICFkZWZpbmVkKFBPU0lYX1NFTUFQSE9SRVNfTk9UX0VOQUJMRUQpCiAjICAgIGluY2x1ZGUgPHNlbWFwaG9yZS5oPgogICAgICB0eXBlZGVmIHNlbV90ICpTRU1fSEFORExFOwpAQCAtNjQsMjAgKzU0LDYgQEAKIAogCiAvKgotICogTWFrZSBzdXJlIFB5X3NzaXplX3QgYXZhaWxhYmxlCi0gKi8KLQotI2lmIFBZX1ZFUlNJT05fSEVYIDwgMHgwMjA1MDAwMCAmJiAhZGVmaW5lZChQWV9TU0laRV9UX01JTikKLSAgIHR5cGVkZWYgaW50IFB5X3NzaXplX3Q7Ci0jICBkZWZpbmUgUFlfU1NJWkVfVF9NQVggSU5UX01BWAotIyAgZGVmaW5lIFBZX1NTSVpFX1RfTUlOIElOVF9NSU4KLSMgIGRlZmluZSBGX1BZX1NTSVpFX1QgImkiCi0jICBkZWZpbmUgUHlJbnRfRnJvbVNzaXplX3QobikgUHlJbnRfRnJvbUxvbmcoKGxvbmcpbikKLSNlbHNlCi0jICBkZWZpbmUgRl9QWV9TU0laRV9UICJuIgotI2VuZGlmCi0KLS8qCiAgKiBGb3JtYXQgY29kZXMKICAqLwogCkBAIC0xMDUsMTIgKzgxLDYgQEAKICMgIGRlZmluZSBUX1NFTV9IQU5ETEUgVF9QT0lOVEVSCiAjZW5kaWYKIAotI2lmIFBZX1ZFUlNJT05fSEVYID49IDB4MDMwMDAwMDAKLSMgIGRlZmluZSBGX1JCVUZGRVIgInkiCi0jZWxzZQotIyAgZGVmaW5lIEZfUkJVRkZFUiAicyIKLSNlbmRpZgotCiAvKgogICogRXJyb3IgY29kZXMgd2hpY2ggY2FuIGJlIHJldHVybmVkIGJ5IGZ1bmN0aW9ucyBjYWxsZWQgd2l0aG91dCBHSUwKICAqLwpAQCAtMTE4LDExICs4OCw4IEBACiAjZGVmaW5lIE1QX1NVQ0NFU1MgKDApCiAjZGVmaW5lIE1QX1NUQU5EQVJEX0VSUk9SICgtMSkKICNkZWZpbmUgTVBfTUVNT1JZX0VSUk9SICgtMTAwMSkKLSNkZWZpbmUgTVBfRU5EX09GX0ZJTEUgKC0xMDAyKQotI2RlZmluZSBNUF9FQVJMWV9FTkRfT0ZfRklMRSAoLTEwMDMpCi0jZGVmaW5lIE1QX0JBRF9NRVNTQUdFX0xFTkdUSCAoLTEwMDQpCi0jZGVmaW5lIE1QX1NPQ0tFVF9FUlJPUiAoLTEwMDUpCi0jZGVmaW5lIE1QX0VYQ0VQVElPTl9IQVNfQkVFTl9TRVQgKC0xMDA2KQorI2RlZmluZSBNUF9TT0NLRVRfRVJST1IgKC0xMDAyKQorI2RlZmluZSBNUF9FWENFUFRJT05fSEFTX0JFRU5fU0VUICgtMTAwMykKIAogUHlPYmplY3QgKm1wX1NldEVycm9yKFB5T2JqZWN0ICpUeXBlLCBpbnQgbnVtKTsKIApAQCAtMTMwLDU3ICs5NywxNCBAQAogICogRXh0ZXJucyAtIG5vdCBhbGwgd2lsbCByZWFsbHkgZXhpc3Qgb24gYWxsIHBsYXRmb3JtcwogICovCiAKLWV4dGVybiBQeU9iamVjdCAqcGlja2xlX2R1bXBzOwotZXh0ZXJuIFB5T2JqZWN0ICpwaWNrbGVfbG9hZHM7Ci1leHRlcm4gUHlPYmplY3QgKnBpY2tsZV9wcm90b2NvbDsKIGV4dGVybiBQeU9iamVjdCAqQnVmZmVyVG9vU2hvcnQ7CiBleHRlcm4gUHlUeXBlT2JqZWN0IFNlbUxvY2tUeXBlOwotZXh0ZXJuIFB5VHlwZU9iamVjdCBDb25uZWN0aW9uVHlwZTsKIGV4dGVybiBQeVR5cGVPYmplY3QgUGlwZUNvbm5lY3Rpb25UeXBlOwotZXh0ZXJuIEhBTkRMRSBzaWdpbnRfZXZlbnQ7Ci0KLS8qCi0gKiBQeTNrIGNvbXBhdGliaWxpdHkKLSAqLwotCi0jaWYgUFlfVkVSU0lPTl9IRVggPj0gMHgwMzAwMDAwMAotIyAgZGVmaW5lIFBJQ0tMRV9NT0RVTEUgInBpY2tsZSIKLSMgIGRlZmluZSBGUk9NX0ZPUk1BVCBQeVVuaWNvZGVfRnJvbUZvcm1hdAotIyAgZGVmaW5lIFB5SW50X0Zyb21Mb25nIFB5TG9uZ19Gcm9tTG9uZwotIyAgZGVmaW5lIFB5SW50X0Zyb21Tc2l6ZV90IFB5TG9uZ19Gcm9tU3NpemVfdAotI2Vsc2UKLSMgIGRlZmluZSBQSUNLTEVfTU9EVUxFICJjUGlja2xlIgotIyAgZGVmaW5lIEZST01fRk9STUFUIFB5U3RyaW5nX0Zyb21Gb3JtYXQKLSNlbmRpZgotCi0jaWZuZGVmIFB5VmFyT2JqZWN0X0hFQURfSU5JVAotIyAgZGVmaW5lIFB5VmFyT2JqZWN0X0hFQURfSU5JVCh0eXBlLCBzaXplKSBQeU9iamVjdF9IRUFEX0lOSVQodHlwZSkgc2l6ZSwKLSNlbmRpZgotCi0jaWZuZGVmIFB5X1RQRkxBR1NfSEFWRV9XRUFLUkVGUwotIyAgZGVmaW5lIFB5X1RQRkxBR1NfSEFWRV9XRUFLUkVGUyAwCi0jZW5kaWYKLQotLyoKLSAqIENvbm5lY3Rpb24gZGVmaW5pdGlvbgotICovCi0KLSNkZWZpbmUgQ09OTkVDVElPTl9CVUZGRVJfU0laRSAxMDI0Ci0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBQeU9iamVjdF9IRUFECi0gICAgSEFORExFIGhhbmRsZTsKLSAgICBpbnQgZmxhZ3M7Ci0gICAgUHlPYmplY3QgKndlYWtyZWZsaXN0OwotICAgIGNoYXIgYnVmZmVyW0NPTk5FQ1RJT05fQlVGRkVSX1NJWkVdOwotfSBDb25uZWN0aW9uT2JqZWN0OwogCiAvKgogICogTWlzY2VsbGFuZW91cwogICovCiAKLSNkZWZpbmUgTUFYX01FU1NBR0VfTEVOR1RIIDB4N2ZmZmZmZmYKLQogI2lmbmRlZiBNSU4KICMgIGRlZmluZSBNSU4oeCwgeSkgKCh4KSA8ICh5KSA/IHggOiB5KQogIyAgZGVmaW5lIE1BWCh4LCB5KSAoKHgpID4gKHkpID8geCA6IHkpCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19tdWx0aXByb2Nlc3NpbmcvcGlwZV9jb25uZWN0aW9uLmMgYi9Nb2R1bGVzL19tdWx0aXByb2Nlc3NpbmcvcGlwZV9jb25uZWN0aW9uLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1ZGRlMGMuLjAwMDAwMDAKLS0tIGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL3BpcGVfY29ubmVjdGlvbi5jCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLS8qCi0gKiBBIHR5cGUgd2hpY2ggd3JhcHMgYSBwaXBlIGhhbmRsZSBpbiBtZXNzYWdlIG9yaWVudGVkIG1vZGUKLSAqCi0gKiBwaXBlX2Nvbm5lY3Rpb24uYwotICoKLSAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA4LCBSIE91ZGtlcmsgLS0tIHNlZSBDT1BZSU5HLnR4dAotICovCi0KLSNpbmNsdWRlICJtdWx0aXByb2Nlc3NpbmcuaCIKLQotI2RlZmluZSBDTE9TRShoKSBDbG9zZUhhbmRsZShoKQotCi0vKgotICogU2VuZCBzdHJpbmcgdG8gdGhlIHBpcGU7IGFzc3VtZXMgaW4gbWVzc2FnZSBvcmllbnRlZCBtb2RlCi0gKi8KLQotc3RhdGljIFB5X3NzaXplX3QKLWNvbm5fc2VuZF9zdHJpbmcoQ29ubmVjdGlvbk9iamVjdCAqY29ubiwgY2hhciAqc3RyaW5nLCBzaXplX3QgbGVuZ3RoKQotewotICAgIERXT1JEIGFtb3VudF93cml0dGVuOwotICAgIEJPT0wgcmV0OwotCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJldCA9IFdyaXRlRmlsZShjb25uLT5oYW5kbGUsIHN0cmluZywgbGVuZ3RoLCAmYW1vdW50X3dyaXR0ZW4sIE5VTEwpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBpZiAocmV0ID09IDAgJiYgR2V0TGFzdEVycm9yKCkgPT0gRVJST1JfTk9fU1lTVEVNX1JFU09VUkNFUykgewotICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwgIkNhbm5ub3Qgc2VuZCAlIiBQWV9GT1JNQVRfU0laRV9UICJkIGJ5dGVzIG92ZXIgY29ubmVjdGlvbiIsIGxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBNUF9TVEFOREFSRF9FUlJPUjsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0ID8gTVBfU1VDQ0VTUyA6IE1QX1NUQU5EQVJEX0VSUk9SOwotfQotCi0vKgotICogQXR0ZW1wdHMgdG8gcmVhZCBpbnRvIGJ1ZmZlciwgb3IgaWYgYnVmZmVyIHRvbyBzbWFsbCBpbnRvICpuZXdidWZmZXIuCi0gKgotICogUmV0dXJucyBudW1iZXIgb2YgYnl0ZXMgcmVhZC4gIEFzc3VtZXMgaW4gbWVzc2FnZSBvcmllbnRlZCBtb2RlLgotICovCi0KLXN0YXRpYyBQeV9zc2l6ZV90Ci1jb25uX3JlY3Zfc3RyaW5nKENvbm5lY3Rpb25PYmplY3QgKmNvbm4sIGNoYXIgKmJ1ZmZlciwKLSAgICAgICAgICAgICAgICAgc2l6ZV90IGJ1Zmxlbmd0aCwgY2hhciAqKm5ld2J1ZmZlciwgc2l6ZV90IG1heGxlbmd0aCkKLXsKLSAgICBEV09SRCBsZWZ0LCBsZW5ndGgsIGZ1bGxfbGVuZ3RoLCBlcnI7Ci0gICAgQk9PTCByZXQ7Ci0gICAgKm5ld2J1ZmZlciA9IE5VTEw7Ci0KLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgcmV0ID0gUmVhZEZpbGUoY29ubi0+aGFuZGxlLCBidWZmZXIsIE1JTihidWZsZW5ndGgsIG1heGxlbmd0aCksCi0gICAgICAgICAgICAgICAgICAmbGVuZ3RoLCBOVUxMKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIGlmIChyZXQpCi0gICAgICAgIHJldHVybiBsZW5ndGg7Ci0KLSAgICBlcnIgPSBHZXRMYXN0RXJyb3IoKTsKLSAgICBpZiAoZXJyICE9IEVSUk9SX01PUkVfREFUQSkgewotICAgICAgICBpZiAoZXJyID09IEVSUk9SX0JST0tFTl9QSVBFKQotICAgICAgICAgICAgcmV0dXJuIE1QX0VORF9PRl9GSUxFOwotICAgICAgICByZXR1cm4gTVBfU1RBTkRBUkRfRVJST1I7Ci0gICAgfQotCi0gICAgaWYgKCFQZWVrTmFtZWRQaXBlKGNvbm4tPmhhbmRsZSwgTlVMTCwgMCwgTlVMTCwgTlVMTCwgJmxlZnQpKQotICAgICAgICByZXR1cm4gTVBfU1RBTkRBUkRfRVJST1I7Ci0KLSAgICBmdWxsX2xlbmd0aCA9IGxlbmd0aCArIGxlZnQ7Ci0gICAgaWYgKGZ1bGxfbGVuZ3RoID4gbWF4bGVuZ3RoKQotICAgICAgICByZXR1cm4gTVBfQkFEX01FU1NBR0VfTEVOR1RIOwotCi0gICAgKm5ld2J1ZmZlciA9IFB5TWVtX01hbGxvYyhmdWxsX2xlbmd0aCk7Ci0gICAgaWYgKCpuZXdidWZmZXIgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE1QX01FTU9SWV9FUlJPUjsKLQotICAgIG1lbWNweSgqbmV3YnVmZmVyLCBidWZmZXIsIGxlbmd0aCk7Ci0KLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgcmV0ID0gUmVhZEZpbGUoY29ubi0+aGFuZGxlLCAqbmV3YnVmZmVyK2xlbmd0aCwgbGVmdCwgJmxlbmd0aCwgTlVMTCk7Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICBpZiAocmV0KSB7Ci0gICAgICAgIGFzc2VydChsZW5ndGggPT0gbGVmdCk7Ci0gICAgICAgIHJldHVybiBmdWxsX2xlbmd0aDsKLSAgICB9IGVsc2UgewotICAgICAgICBQeU1lbV9GcmVlKCpuZXdidWZmZXIpOwotICAgICAgICByZXR1cm4gTVBfU1RBTkRBUkRfRVJST1I7Ci0gICAgfQotfQotCi0vKgotICogQ2hlY2sgd2hldGhlciBhbnkgZGF0YSBpcyBhdmFpbGFibGUgZm9yIHJlYWRpbmcKLSAqLwotCi1zdGF0aWMgaW50Ci1jb25uX3BvbGwoQ29ubmVjdGlvbk9iamVjdCAqY29ubiwgZG91YmxlIHRpbWVvdXQsIFB5VGhyZWFkU3RhdGUgKl9zYXZlKQotewotICAgIERXT1JEIGJ5dGVzLCBkZWFkbGluZSwgZGVsYXk7Ci0gICAgaW50IGRpZmZlcmVuY2UsIHJlczsKLSAgICBCT09MIGJsb2NrID0gRkFMU0U7Ci0KLSAgICBpZiAoIVBlZWtOYW1lZFBpcGUoY29ubi0+aGFuZGxlLCBOVUxMLCAwLCBOVUxMLCAmYnl0ZXMsIE5VTEwpKQotICAgICAgICByZXR1cm4gTVBfU1RBTkRBUkRfRVJST1I7Ci0KLSAgICBpZiAodGltZW91dCA9PSAwLjApCi0gICAgICAgIHJldHVybiBieXRlcyA+IDA7Ci0KLSAgICBpZiAodGltZW91dCA8IDAuMCkKLSAgICAgICAgYmxvY2sgPSBUUlVFOwotICAgIGVsc2UKLSAgICAgICAgLyogWFhYIGRvZXMgbm90IGNoZWNrIGZvciBvdmVyZmxvdyAqLwotICAgICAgICBkZWFkbGluZSA9IEdldFRpY2tDb3VudCgpICsgKERXT1JEKSgxMDAwICogdGltZW91dCArIDAuNSk7Ci0KLSAgICBTbGVlcCgwKTsKLQotICAgIGZvciAoZGVsYXkgPSAxIDsgOyBkZWxheSArPSAxKSB7Ci0gICAgICAgIGlmICghUGVla05hbWVkUGlwZShjb25uLT5oYW5kbGUsIE5VTEwsIDAsIE5VTEwsICZieXRlcywgTlVMTCkpCi0gICAgICAgICAgICByZXR1cm4gTVBfU1RBTkRBUkRfRVJST1I7Ci0gICAgICAgIGVsc2UgaWYgKGJ5dGVzID4gMCkKLSAgICAgICAgICAgIHJldHVybiBUUlVFOwotCi0gICAgICAgIGlmICghYmxvY2spIHsKLSAgICAgICAgICAgIGRpZmZlcmVuY2UgPSBkZWFkbGluZSAtIEdldFRpY2tDb3VudCgpOwotICAgICAgICAgICAgaWYgKGRpZmZlcmVuY2UgPCAwKQotICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAgICAgIGlmICgoaW50KWRlbGF5ID4gZGlmZmVyZW5jZSkKLSAgICAgICAgICAgICAgICBkZWxheSA9IGRpZmZlcmVuY2U7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZGVsYXkgPiAyMCkKLSAgICAgICAgICAgIGRlbGF5ID0gMjA7Ci0KLSAgICAgICAgU2xlZXAoZGVsYXkpOwotCi0gICAgICAgIC8qIGNoZWNrIGZvciBzaWduYWxzICovCi0gICAgICAgIFB5X0JMT0NLX1RIUkVBRFMKLSAgICAgICAgcmVzID0gUHlFcnJfQ2hlY2tTaWduYWxzKCk7Ci0gICAgICAgIFB5X1VOQkxPQ0tfVEhSRUFEUwotCi0gICAgICAgIGlmIChyZXMpCi0gICAgICAgICAgICByZXR1cm4gTVBfRVhDRVBUSU9OX0hBU19CRUVOX1NFVDsKLSAgICB9Ci19Ci0KLS8qCi0gKiAiY29ubmVjdGlvbi5oIiBkZWZpbmVzIHRoZSBQaXBlQ29ubmVjdGlvbiB0eXBlIHVzaW5nIHRoZSBkZWZpbml0aW9ucyBhYm92ZQotICovCi0KLSNkZWZpbmUgQ09OTkVDVElPTl9OQU1FICJQaXBlQ29ubmVjdGlvbiIKLSNkZWZpbmUgQ09OTkVDVElPTl9UWVBFIFBpcGVDb25uZWN0aW9uVHlwZQotCi0jaW5jbHVkZSAiY29ubmVjdGlvbi5oIgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL3NlbWFwaG9yZS5jIGIvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL3NlbWFwaG9yZS5jCmluZGV4IDFmMzdkNmEuLjhlYTkyZjIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX211bHRpcHJvY2Vzc2luZy9zZW1hcGhvcmUuYworKysgYi9Nb2R1bGVzL19tdWx0aXByb2Nlc3Npbmcvc2VtYXBob3JlLmMKQEAgLTMsNyArMyw4IEBACiAgKgogICogc2VtYXBob3JlLmMKICAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrIC0tLSBzZWUgQ09QWUlORy50eHQKKyAqIENvcHlyaWdodCAoYykgMjAwNi0yMDA4LCBSIE91ZGtlcmsKKyAqIExpY2Vuc2VkIHRvIFBTRiB1bmRlciBhIENvbnRyaWJ1dG9yIEFncmVlbWVudC4KICAqLwogCiAjaW5jbHVkZSAibXVsdGlwcm9jZXNzaW5nLmgiCkBAIC02Miw3ICs2Myw4IEBACiAgICAgaW50IGJsb2NraW5nID0gMTsKICAgICBkb3VibGUgdGltZW91dDsKICAgICBQeU9iamVjdCAqdGltZW91dF9vYmogPSBQeV9Ob25lOwotICAgIERXT1JEIHJlcywgZnVsbF9tc2VjcywgbXNlY3MsIHN0YXJ0LCB0aWNrczsKKyAgICBEV09SRCByZXMsIGZ1bGxfbXNlY3MsIG5oYW5kbGVzOworICAgIEhBTkRMRSBoYW5kbGVzWzJdLCBzaWdpbnRfZXZlbnQ7CiAKICAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImJsb2NrIiwgInRpbWVvdXQiLCBOVUxMfTsKIApAQCAtOTYsNTMgKzk4LDQwIEBACiAgICAgICAgIFB5X1JFVFVSTl9UUlVFOwogICAgIH0KIAotICAgIC8qIGNoZWNrIHdoZXRoZXIgd2UgY2FuIGFjcXVpcmUgd2l0aG91dCBibG9ja2luZyAqLworICAgIC8qIGNoZWNrIHdoZXRoZXIgd2UgY2FuIGFjcXVpcmUgd2l0aG91dCByZWxlYXNpbmcgdGhlIEdJTCBhbmQgYmxvY2tpbmcgKi8KICAgICBpZiAoV2FpdEZvclNpbmdsZU9iamVjdChzZWxmLT5oYW5kbGUsIDApID09IFdBSVRfT0JKRUNUXzApIHsKICAgICAgICAgc2VsZi0+bGFzdF90aWQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICAgICAgKytzZWxmLT5jb3VudDsKICAgICAgICAgUHlfUkVUVVJOX1RSVUU7CiAgICAgfQogCi0gICAgbXNlY3MgPSBmdWxsX21zZWNzOwotICAgIHN0YXJ0ID0gR2V0VGlja0NvdW50KCk7Ci0KLSAgICBmb3IgKCA7IDsgKSB7Ci0gICAgICAgIEhBTkRMRSBoYW5kbGVzWzJdID0ge3NlbGYtPmhhbmRsZSwgc2lnaW50X2V2ZW50fTsKLQotICAgICAgICAvKiBkbyB0aGUgd2FpdCAqLwotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgIFJlc2V0RXZlbnQoc2lnaW50X2V2ZW50KTsKLSAgICAgICAgcmVzID0gV2FpdEZvck11bHRpcGxlT2JqZWN0cygyLCBoYW5kbGVzLCBGQUxTRSwgbXNlY3MpOwotICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotCi0gICAgICAgIC8qIGhhbmRsZSByZXN1bHQgKi8KLSAgICAgICAgaWYgKHJlcyAhPSBXQUlUX09CSkVDVF8wICsgMSkKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIC8qIGdvdCBTSUdJTlQgc28gZ2l2ZSBzaWduYWwgaGFuZGxlciBhIGNoYW5jZSB0byBydW4gKi8KLSAgICAgICAgU2xlZXAoMSk7Ci0KLSAgICAgICAgLyogaWYgdGhpcyBpcyBtYWluIHRocmVhZCBsZXQgS2V5Ym9hcmRJbnRlcnJ1cHQgYmUgcmFpc2VkICovCi0gICAgICAgIGlmIChQeUVycl9DaGVja1NpZ25hbHMoKSkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgICAgIC8qIHJlY2FsY3VsYXRlIHRpbWVvdXQgKi8KLSAgICAgICAgaWYgKG1zZWNzICE9IElORklOSVRFKSB7Ci0gICAgICAgICAgICB0aWNrcyA9IEdldFRpY2tDb3VudCgpOwotICAgICAgICAgICAgaWYgKChEV09SRCkodGlja3MgLSBzdGFydCkgPj0gZnVsbF9tc2VjcykKLSAgICAgICAgICAgICAgICBQeV9SRVRVUk5fRkFMU0U7Ci0gICAgICAgICAgICBtc2VjcyA9IGZ1bGxfbXNlY3MgLSAodGlja3MgLSBzdGFydCk7Ci0gICAgICAgIH0KKyAgICAvKiBwcmVwYXJlIGxpc3Qgb2YgaGFuZGxlcyAqLworICAgIG5oYW5kbGVzID0gMDsKKyAgICBoYW5kbGVzW25oYW5kbGVzKytdID0gc2VsZi0+aGFuZGxlOworICAgIGlmIChfUHlPU19Jc01haW5UaHJlYWQoKSkgeworICAgICAgICBzaWdpbnRfZXZlbnQgPSBfUHlPU19TaWdpbnRFdmVudCgpOworICAgICAgICBhc3NlcnQoc2lnaW50X2V2ZW50ICE9IE5VTEwpOworICAgICAgICBoYW5kbGVzW25oYW5kbGVzKytdID0gc2lnaW50X2V2ZW50OwogICAgIH0KIAorICAgIC8qIGRvIHRoZSB3YWl0ICovCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIGlmIChzaWdpbnRfZXZlbnQgIT0gTlVMTCkKKyAgICAgICAgUmVzZXRFdmVudChzaWdpbnRfZXZlbnQpOworICAgIHJlcyA9IFdhaXRGb3JNdWx0aXBsZU9iamVjdHMobmhhbmRsZXMsIGhhbmRsZXMsIEZBTFNFLCBmdWxsX21zZWNzKTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCiAgICAgLyogaGFuZGxlIHJlc3VsdCAqLwogICAgIHN3aXRjaCAocmVzKSB7CiAgICAgY2FzZSBXQUlUX1RJTUVPVVQ6CiAgICAgICAgIFB5X1JFVFVSTl9GQUxTRTsKLSAgICBjYXNlIFdBSVRfT0JKRUNUXzA6CisgICAgY2FzZSBXQUlUX09CSkVDVF8wICsgMDoKICAgICAgICAgc2VsZi0+bGFzdF90aWQgPSBHZXRDdXJyZW50VGhyZWFkSWQoKTsKICAgICAgICAgKytzZWxmLT5jb3VudDsKICAgICAgICAgUHlfUkVUVVJOX1RSVUU7CisgICAgY2FzZSBXQUlUX09CSkVDVF8wICsgMToKKyAgICAgICAgZXJybm8gPSBFSU5UUjsKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKICAgICBjYXNlIFdBSVRfRkFJTEVEOgogICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7CiAgICAgZGVmYXVsdDoKQEAgLTQ4Myw3ICs0NzIsNyBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHNlbWxvY2tfY291bnQoU2VtTG9ja09iamVjdCAqc2VsZikKIHsKLSAgICByZXR1cm4gUHlJbnRfRnJvbUxvbmcoKGxvbmcpc2VsZi0+Y291bnQpOworICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpc2VsZi0+Y291bnQpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtNTA3LDcgKzQ5Niw3IEBACiAgICAgICAgdGhlIG51bWJlciBvZiB3YWl0aW5nIHRocmVhZHMgKi8KICAgICBpZiAoc3ZhbCA8IDApCiAgICAgICAgIHN2YWwgPSAwOwotICAgIHJldHVybiBQeUludF9Gcm9tTG9uZygobG9uZylzdmFsKTsKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKChsb25nKXN2YWwpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvX211bHRpcHJvY2Vzc2luZy9zb2NrZXRfY29ubmVjdGlvbi5jIGIvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL3NvY2tldF9jb25uZWN0aW9uLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExNjljMGEuLjAwMDAwMDAKLS0tIGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL3NvY2tldF9jb25uZWN0aW9uLmMKKysrIC9kZXYvbnVsbApAQCAtMSwyMDUgKzAsMCBAQAotLyoKLSAqIEEgdHlwZSB3aGljaCB3cmFwcyBhIHNvY2tldAotICoKLSAqIHNvY2tldF9jb25uZWN0aW9uLmMKLSAqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDYtMjAwOCwgUiBPdWRrZXJrIC0tLSBzZWUgQ09QWUlORy50eHQKLSAqLwotCi0jaW5jbHVkZSAibXVsdGlwcm9jZXNzaW5nLmgiCi0KLSNpZmRlZiBNU19XSU5ET1dTCi0jICBkZWZpbmUgV1JJVEUoaCwgYnVmZmVyLCBsZW5ndGgpIHNlbmQoKFNPQ0tFVCloLCBidWZmZXIsIGxlbmd0aCwgMCkKLSMgIGRlZmluZSBSRUFEKGgsIGJ1ZmZlciwgbGVuZ3RoKSByZWN2KChTT0NLRVQpaCwgYnVmZmVyLCBsZW5ndGgsIDApCi0jICBkZWZpbmUgQ0xPU0UoaCkgY2xvc2Vzb2NrZXQoKFNPQ0tFVCloKQotI2Vsc2UKLSMgIGRlZmluZSBXUklURShoLCBidWZmZXIsIGxlbmd0aCkgd3JpdGUoaCwgYnVmZmVyLCBsZW5ndGgpCi0jICBkZWZpbmUgUkVBRChoLCBidWZmZXIsIGxlbmd0aCkgcmVhZChoLCBidWZmZXIsIGxlbmd0aCkKLSMgIGRlZmluZSBDTE9TRShoKSBjbG9zZShoKQotI2VuZGlmCi0KLS8qCi0gKiBTZW5kIHN0cmluZyB0byBmaWxlIGRlc2NyaXB0b3IKLSAqLwotCi1zdGF0aWMgUHlfc3NpemVfdAotX2Nvbm5fc2VuZGFsbChIQU5ETEUgaCwgY2hhciAqc3RyaW5nLCBzaXplX3QgbGVuZ3RoKQotewotICAgIGNoYXIgKnAgPSBzdHJpbmc7Ci0gICAgUHlfc3NpemVfdCByZXM7Ci0KLSAgICB3aGlsZSAobGVuZ3RoID4gMCkgewotICAgICAgICByZXMgPSBXUklURShoLCBwLCBsZW5ndGgpOwotICAgICAgICBpZiAocmVzIDwgMCkKLSAgICAgICAgICAgIHJldHVybiBNUF9TT0NLRVRfRVJST1I7Ci0gICAgICAgIGxlbmd0aCAtPSByZXM7Ci0gICAgICAgIHAgKz0gcmVzOwotICAgIH0KLQotICAgIHJldHVybiBNUF9TVUNDRVNTOwotfQotCi0vKgotICogUmVjZWl2ZSBzdHJpbmcgb2YgZXhhY3QgbGVuZ3RoIGZyb20gZmlsZSBkZXNjcmlwdG9yCi0gKi8KLQotc3RhdGljIFB5X3NzaXplX3QKLV9jb25uX3JlY3ZhbGwoSEFORExFIGgsIGNoYXIgKmJ1ZmZlciwgc2l6ZV90IGxlbmd0aCkKLXsKLSAgICBzaXplX3QgcmVtYWluaW5nID0gbGVuZ3RoOwotICAgIFB5X3NzaXplX3QgdGVtcDsKLSAgICBjaGFyICpwID0gYnVmZmVyOwotCi0gICAgd2hpbGUgKHJlbWFpbmluZyA+IDApIHsKLSAgICAgICAgdGVtcCA9IFJFQUQoaCwgcCwgcmVtYWluaW5nKTsKLSAgICAgICAgaWYgKHRlbXAgPD0gMCkgewotICAgICAgICAgICAgaWYgKHRlbXAgPT0gMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVtYWluaW5nID09IGxlbmd0aCA/Ci0gICAgICAgICAgICAgICAgICAgIE1QX0VORF9PRl9GSUxFIDogTVBfRUFSTFlfRU5EX09GX0ZJTEU7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIHRlbXA7Ci0gICAgICAgIH0KLSAgICAgICAgcmVtYWluaW5nIC09IHRlbXA7Ci0gICAgICAgIHAgKz0gdGVtcDsKLSAgICB9Ci0KLSAgICByZXR1cm4gTVBfU1VDQ0VTUzsKLX0KLQotLyoKLSAqIFNlbmQgYSBzdHJpbmcgcHJlcGVuZGVkIGJ5IHRoZSBzdHJpbmcgbGVuZ3RoIGluIG5ldHdvcmsgYnl0ZSBvcmRlcgotICovCi0KLXN0YXRpYyBQeV9zc2l6ZV90Ci1jb25uX3NlbmRfc3RyaW5nKENvbm5lY3Rpb25PYmplY3QgKmNvbm4sIGNoYXIgKnN0cmluZywgc2l6ZV90IGxlbmd0aCkKLXsKLSAgICBQeV9zc2l6ZV90IHJlczsKLSAgICAvKiBUaGUgImhlYWRlciIgb2YgdGhlIG1lc3NhZ2UgaXMgYSAzMiBiaXQgdW5zaWduZWQgbnVtYmVyIChpbgotICAgICAgIG5ldHdvcmsgb3JkZXIpIHdoaWNoIHNwZWNpZmllcyB0aGUgbGVuZ3RoIG9mIHRoZSAiYm9keSIuICBJZgotICAgICAgIHRoZSBtZXNzYWdlIGlzIHNob3J0ZXIgdGhhbiBhYm91dCAxNmtiIHRoZW4gaXQgaXMgcXVpY2tlciB0bwotICAgICAgIGNvbWJpbmUgdGhlICJoZWFkZXIiIGFuZCB0aGUgImJvZHkiIG9mIHRoZSBtZXNzYWdlIGFuZCBzZW5kCi0gICAgICAgdGhlbSBhdCBvbmNlLiAqLwotICAgIGlmIChsZW5ndGggPCAoMTYqMTAyNCkpIHsKLSAgICAgICAgY2hhciAqbWVzc2FnZTsKLQotICAgICAgICBtZXNzYWdlID0gUHlNZW1fTWFsbG9jKGxlbmd0aCs0KTsKLSAgICAgICAgaWYgKG1lc3NhZ2UgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBNUF9NRU1PUllfRVJST1I7Ci0KLSAgICAgICAgKihVSU5UMzIqKW1lc3NhZ2UgPSBodG9ubCgoVUlOVDMyKWxlbmd0aCk7Ci0gICAgICAgIG1lbWNweShtZXNzYWdlKzQsIHN0cmluZywgbGVuZ3RoKTsKLSAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICByZXMgPSBfY29ubl9zZW5kYWxsKGNvbm4tPmhhbmRsZSwgbWVzc2FnZSwgbGVuZ3RoKzQpOwotICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgICAgICBQeU1lbV9GcmVlKG1lc3NhZ2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIFVJTlQzMiBsZW5idWZmOwotCi0gICAgICAgIGlmIChsZW5ndGggPiBNQVhfTUVTU0FHRV9MRU5HVEgpCi0gICAgICAgICAgICByZXR1cm4gTVBfQkFEX01FU1NBR0VfTEVOR1RIOwotCi0gICAgICAgIGxlbmJ1ZmYgPSBodG9ubCgoVUlOVDMyKWxlbmd0aCk7Ci0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgcmVzID0gX2Nvbm5fc2VuZGFsbChjb25uLT5oYW5kbGUsIChjaGFyKikmbGVuYnVmZiwgNCkgfHwKLSAgICAgICAgICAgIF9jb25uX3NlbmRhbGwoY29ubi0+aGFuZGxlLCBzdHJpbmcsIGxlbmd0aCk7Ci0gICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgfQotICAgIHJldHVybiByZXM7Ci19Ci0KLS8qCi0gKiBBdHRlbXB0cyB0byByZWFkIGludG8gYnVmZmVyLCBvciBmYWlsaW5nIHRoYXQgaW50byAqbmV3YnVmZmVyCi0gKgotICogUmV0dXJucyBudW1iZXIgb2YgYnl0ZXMgcmVhZC4KLSAqLwotCi1zdGF0aWMgUHlfc3NpemVfdAotY29ubl9yZWN2X3N0cmluZyhDb25uZWN0aW9uT2JqZWN0ICpjb25uLCBjaGFyICpidWZmZXIsCi0gICAgICAgICAgICAgICAgIHNpemVfdCBidWZsZW5ndGgsIGNoYXIgKipuZXdidWZmZXIsIHNpemVfdCBtYXhsZW5ndGgpCi17Ci0gICAgUHlfc3NpemVfdCByZXM7Ci0gICAgVUlOVDMyIHVsZW5ndGg7Ci0KLSAgICAqbmV3YnVmZmVyID0gTlVMTDsKLQotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSBfY29ubl9yZWN2YWxsKGNvbm4tPmhhbmRsZSwgKGNoYXIqKSZ1bGVuZ3RoLCA0KTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIGlmIChyZXMgPCAwKQotICAgICAgICByZXR1cm4gcmVzOwotCi0gICAgdWxlbmd0aCA9IG50b2hsKHVsZW5ndGgpOwotICAgIGlmICh1bGVuZ3RoID4gbWF4bGVuZ3RoKQotICAgICAgICByZXR1cm4gTVBfQkFEX01FU1NBR0VfTEVOR1RIOwotCi0gICAgaWYgKHVsZW5ndGggPiBidWZsZW5ndGgpIHsKLSAgICAgICAgKm5ld2J1ZmZlciA9IGJ1ZmZlciA9IFB5TWVtX01hbGxvYygoc2l6ZV90KXVsZW5ndGgpOwotICAgICAgICBpZiAoYnVmZmVyID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTVBfTUVNT1JZX0VSUk9SOwotICAgIH0KLQotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSBfY29ubl9yZWN2YWxsKGNvbm4tPmhhbmRsZSwgYnVmZmVyLCAoc2l6ZV90KXVsZW5ndGgpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBpZiAocmVzID49IDApIHsKLSAgICAgICAgcmVzID0gKFB5X3NzaXplX3QpdWxlbmd0aDsKLSAgICB9IGVsc2UgaWYgKCpuZXdidWZmZXIgIT0gTlVMTCkgewotICAgICAgICBQeU1lbV9GcmVlKCpuZXdidWZmZXIpOwotICAgICAgICAqbmV3YnVmZmVyID0gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIHJlczsKLX0KLQotLyoKLSAqIENoZWNrIHdoZXRoZXIgYW55IGRhdGEgaXMgYXZhaWxhYmxlIGZvciByZWFkaW5nIC0tIG5lZyB0aW1lb3V0IGJsb2NrcwotICovCi0KLXN0YXRpYyBpbnQKLWNvbm5fcG9sbChDb25uZWN0aW9uT2JqZWN0ICpjb25uLCBkb3VibGUgdGltZW91dCwgUHlUaHJlYWRTdGF0ZSAqX3NhdmUpCi17Ci0gICAgaW50IHJlczsKLSAgICBmZF9zZXQgcmZkczsKLQotICAgIC8qCi0gICAgICogVmVyaWZ5IHRoZSBoYW5kbGUsIGlzc3VlIDMzMjEuIE5vdCByZXF1aXJlZCBmb3Igd2luZG93cy4KLSAgICAgKi8KLSAgICAjaWZuZGVmIE1TX1dJTkRPV1MKLSAgICAgICAgaWYgKCgoaW50KWNvbm4tPmhhbmRsZSkgPCAwIHx8ICgoaW50KWNvbm4tPmhhbmRsZSkgPj0gRkRfU0VUU0laRSkgewotICAgICAgICAgICAgUHlfQkxPQ0tfVEhSRUFEUwotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0lPRXJyb3IsICJoYW5kbGUgb3V0IG9mIHJhbmdlIGluIHNlbGVjdCgpIik7Ci0gICAgICAgICAgICBQeV9VTkJMT0NLX1RIUkVBRFMKLSAgICAgICAgICAgIHJldHVybiBNUF9FWENFUFRJT05fSEFTX0JFRU5fU0VUOwotICAgICAgICB9Ci0gICAgI2VuZGlmCi0KLSAgICBGRF9aRVJPKCZyZmRzKTsKLSAgICBGRF9TRVQoKFNPQ0tFVCljb25uLT5oYW5kbGUsICZyZmRzKTsKLQotICAgIGlmICh0aW1lb3V0IDwgMC4wKSB7Ci0gICAgICAgIHJlcyA9IHNlbGVjdCgoaW50KWNvbm4tPmhhbmRsZSsxLCAmcmZkcywgTlVMTCwgTlVMTCwgTlVMTCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3RydWN0IHRpbWV2YWwgdHY7Ci0gICAgICAgIHR2LnR2X3NlYyA9IChsb25nKXRpbWVvdXQ7Ci0gICAgICAgIHR2LnR2X3VzZWMgPSAobG9uZykoKHRpbWVvdXQgLSB0di50dl9zZWMpICogMWU2ICsgMC41KTsKLSAgICAgICAgcmVzID0gc2VsZWN0KChpbnQpY29ubi0+aGFuZGxlKzEsICZyZmRzLCBOVUxMLCBOVUxMLCAmdHYpOwotICAgIH0KLQotICAgIGlmIChyZXMgPCAwKSB7Ci0gICAgICAgIHJldHVybiBNUF9TT0NLRVRfRVJST1I7Ci0gICAgfSBlbHNlIGlmIChGRF9JU1NFVChjb25uLT5oYW5kbGUsICZyZmRzKSkgewotICAgICAgICByZXR1cm4gVFJVRTsKLSAgICB9IGVsc2UgewotICAgICAgICBhc3NlcnQocmVzID09IDApOwotICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgfQotfQotCi0vKgotICogImNvbm5lY3Rpb24uaCIgZGVmaW5lcyB0aGUgQ29ubmVjdGlvbiB0eXBlIHVzaW5nIGRlZnMgYWJvdmUKLSAqLwotCi0jZGVmaW5lIENPTk5FQ1RJT05fTkFNRSAiQ29ubmVjdGlvbiIKLSNkZWZpbmUgQ09OTkVDVElPTl9UWVBFIENvbm5lY3Rpb25UeXBlCi0KLSNpbmNsdWRlICJjb25uZWN0aW9uLmgiCmRpZmYgLS1naXQgYS9Nb2R1bGVzL19tdWx0aXByb2Nlc3Npbmcvd2luMzJfZnVuY3Rpb25zLmMgYi9Nb2R1bGVzL19tdWx0aXByb2Nlc3Npbmcvd2luMzJfZnVuY3Rpb25zLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlMzQ4YzQuLjAwMDAwMDAKLS0tIGEvTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL3dpbjMyX2Z1bmN0aW9ucy5jCisrKyAvZGV2L251bGwKQEAgLTEsMjY3ICswLDAgQEAKLS8qCi0gKiBXaW4zMiBmdW5jdGlvbnMgdXNlZCBieSBtdWx0aXByb2Nlc3NpbmcgcGFja2FnZQotICoKLSAqIHdpbjMyX2Z1bmN0aW9ucy5jCi0gKgotICogQ29weXJpZ2h0IChjKSAyMDA2LTIwMDgsIFIgT3Vka2VyayAtLS0gc2VlIENPUFlJTkcudHh0Ci0gKi8KLQotI2luY2x1ZGUgIm11bHRpcHJvY2Vzc2luZy5oIgotCi0KLSNkZWZpbmUgV0lOMzJfRlVOQ1RJT04oZnVuYykgXAotICAgIHsjZnVuYywgKFB5Q0Z1bmN0aW9uKXdpbjMyXyAjIyBmdW5jLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX1NUQVRJQywgIiJ9Ci0KLSNkZWZpbmUgV0lOMzJfQ09OU1RBTlQoZm10LCBjb24pIFwKLSAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhXaW4zMlR5cGUudHBfZGljdCwgI2NvbiwgUHlfQnVpbGRWYWx1ZShmbXQsIGNvbikpCi0KLQotc3RhdGljIFB5T2JqZWN0ICoKLXdpbjMyX0Nsb3NlSGFuZGxlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBIQU5ETEUgaE9iamVjdDsKLSAgICBCT09MIHN1Y2Nlc3M7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgRl9IQU5ETEUsICZoT2JqZWN0KSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgc3VjY2VzcyA9IENsb3NlSGFuZGxlKGhPYmplY3QpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKLQotICAgIFB5X1JFVFVSTl9OT05FOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotd2luMzJfQ29ubmVjdE5hbWVkUGlwZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgSEFORExFIGhOYW1lZFBpcGU7Ci0gICAgTFBPVkVSTEFQUEVEIGxwT3ZlcmxhcHBlZDsKLSAgICBCT09MIHN1Y2Nlc3M7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgRl9IQU5ETEUgRl9QT0lOVEVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmaE5hbWVkUGlwZSwgJmxwT3ZlcmxhcHBlZCkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHN1Y2Nlc3MgPSBDb25uZWN0TmFtZWRQaXBlKGhOYW1lZFBpcGUsIGxwT3ZlcmxhcHBlZCk7Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLQotICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKDApOwotCi0gICAgUHlfUkVUVVJOX05PTkU7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi13aW4zMl9DcmVhdGVGaWxlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBMUENUU1RSIGxwRmlsZU5hbWU7Ci0gICAgRFdPUkQgZHdEZXNpcmVkQWNjZXNzOwotICAgIERXT1JEIGR3U2hhcmVNb2RlOwotICAgIExQU0VDVVJJVFlfQVRUUklCVVRFUyBscFNlY3VyaXR5QXR0cmlidXRlczsKLSAgICBEV09SRCBkd0NyZWF0aW9uRGlzcG9zaXRpb247Ci0gICAgRFdPUkQgZHdGbGFnc0FuZEF0dHJpYnV0ZXM7Ci0gICAgSEFORExFIGhUZW1wbGF0ZUZpbGU7Ci0gICAgSEFORExFIGhhbmRsZTsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAicyIgRl9EV09SRCBGX0RXT1JEIEZfUE9JTlRFUgotICAgICAgICAgICAgICAgICAgICAgICAgICBGX0RXT1JEIEZfRFdPUkQgRl9IQU5ETEUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZscEZpbGVOYW1lLCAmZHdEZXNpcmVkQWNjZXNzLCAmZHdTaGFyZU1vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZscFNlY3VyaXR5QXR0cmlidXRlcywgJmR3Q3JlYXRpb25EaXNwb3NpdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJmR3RmxhZ3NBbmRBdHRyaWJ1dGVzLCAmaFRlbXBsYXRlRmlsZSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIGhhbmRsZSA9IENyZWF0ZUZpbGUobHBGaWxlTmFtZSwgZHdEZXNpcmVkQWNjZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgZHdTaGFyZU1vZGUsIGxwU2VjdXJpdHlBdHRyaWJ1dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgZHdDcmVhdGlvbkRpc3Bvc2l0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgZHdGbGFnc0FuZEF0dHJpYnV0ZXMsIGhUZW1wbGF0ZUZpbGUpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBpZiAoaGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQotICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7Ci0KLSAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZShGX0hBTkRMRSwgaGFuZGxlKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLXdpbjMyX0NyZWF0ZU5hbWVkUGlwZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgTFBDVFNUUiBscE5hbWU7Ci0gICAgRFdPUkQgZHdPcGVuTW9kZTsKLSAgICBEV09SRCBkd1BpcGVNb2RlOwotICAgIERXT1JEIG5NYXhJbnN0YW5jZXM7Ci0gICAgRFdPUkQgbk91dEJ1ZmZlclNpemU7Ci0gICAgRFdPUkQgbkluQnVmZmVyU2l6ZTsKLSAgICBEV09SRCBuRGVmYXVsdFRpbWVPdXQ7Ci0gICAgTFBTRUNVUklUWV9BVFRSSUJVVEVTIGxwU2VjdXJpdHlBdHRyaWJ1dGVzOwotICAgIEhBTkRMRSBoYW5kbGU7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInMiIEZfRFdPUkQgRl9EV09SRCBGX0RXT1JECi0gICAgICAgICAgICAgICAgICAgICAgICAgIEZfRFdPUkQgRl9EV09SRCBGX0RXT1JEIEZfUE9JTlRFUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJmxwTmFtZSwgJmR3T3Blbk1vZGUsICZkd1BpcGVNb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmbk1heEluc3RhbmNlcywgJm5PdXRCdWZmZXJTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmbkluQnVmZmVyU2l6ZSwgJm5EZWZhdWx0VGltZU91dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJmxwU2VjdXJpdHlBdHRyaWJ1dGVzKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgaGFuZGxlID0gQ3JlYXRlTmFtZWRQaXBlKGxwTmFtZSwgZHdPcGVuTW9kZSwgZHdQaXBlTW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbk1heEluc3RhbmNlcywgbk91dEJ1ZmZlclNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5JbkJ1ZmZlclNpemUsIG5EZWZhdWx0VGltZU91dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHBTZWN1cml0eUF0dHJpYnV0ZXMpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBpZiAoaGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQotICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7Ci0KLSAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZShGX0hBTkRMRSwgaGFuZGxlKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLXdpbjMyX0V4aXRQcm9jZXNzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBVSU5UIHVFeGl0Q29kZTsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiSSIsICZ1RXhpdENvZGUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgICNpZiBkZWZpbmVkKFB5X0RFQlVHKQotICAgICAgICBTZXRFcnJvck1vZGUoU0VNX0ZBSUxDUklUSUNBTEVSUk9SU3xTRU1fTk9BTElHTk1FTlRGQVVMVEVYQ0VQVHxTRU1fTk9HUEZBVUxURVJST1JCT1h8U0VNX05PT1BFTkZJTEVFUlJPUkJPWCk7Ci0gICAgICAgIF9DcnRTZXRSZXBvcnRNb2RlKF9DUlRfQVNTRVJULCBfQ1JUREJHX01PREVfREVCVUcpOwotICAgICNlbmRpZgotCi0KLSAgICBFeGl0UHJvY2Vzcyh1RXhpdENvZGUpOwotCi0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi13aW4zMl9HZXRMYXN0RXJyb3IoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKEZfRFdPUkQsIEdldExhc3RFcnJvcigpKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLXdpbjMyX09wZW5Qcm9jZXNzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBEV09SRCBkd0Rlc2lyZWRBY2Nlc3M7Ci0gICAgQk9PTCBiSW5oZXJpdEhhbmRsZTsKLSAgICBEV09SRCBkd1Byb2Nlc3NJZDsKLSAgICBIQU5ETEUgaGFuZGxlOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIEZfRFdPUkQgImkiIEZfRFdPUkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZkd0Rlc2lyZWRBY2Nlc3MsICZiSW5oZXJpdEhhbmRsZSwgJmR3UHJvY2Vzc0lkKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBoYW5kbGUgPSBPcGVuUHJvY2Vzcyhkd0Rlc2lyZWRBY2Nlc3MsIGJJbmhlcml0SGFuZGxlLCBkd1Byb2Nlc3NJZCk7Ci0gICAgaWYgKGhhbmRsZSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7Ci0KLSAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZShGX0hBTkRMRSwgaGFuZGxlKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLXdpbjMyX1NldE5hbWVkUGlwZUhhbmRsZVN0YXRlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBIQU5ETEUgaE5hbWVkUGlwZTsKLSAgICBQeU9iamVjdCAqb0FyZ3NbM107Ci0gICAgRFdPUkQgZHdBcmdzWzNdLCAqcEFyZ3NbM10gPSB7TlVMTCwgTlVMTCwgTlVMTH07Ci0gICAgaW50IGk7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgRl9IQU5ETEUgIk9PTyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZoTmFtZWRQaXBlLCAmb0FyZ3NbMF0sICZvQXJnc1sxXSwgJm9BcmdzWzJdKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBQeUVycl9DbGVhcigpOwotCi0gICAgZm9yIChpID0gMCA7IGkgPCAzIDsgaSsrKSB7Ci0gICAgICAgIGlmIChvQXJnc1tpXSAhPSBQeV9Ob25lKSB7Ci0gICAgICAgICAgICBkd0FyZ3NbaV0gPSBQeUxvbmdfQXNVbnNpZ25lZExvbmdNYXNrKG9BcmdzW2ldKTsKLSAgICAgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgcEFyZ3NbaV0gPSAmZHdBcmdzW2ldOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCFTZXROYW1lZFBpcGVIYW5kbGVTdGF0ZShoTmFtZWRQaXBlLCBwQXJnc1swXSwgcEFyZ3NbMV0sIHBBcmdzWzJdKSkKLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKDApOwotCi0gICAgUHlfUkVUVVJOX05PTkU7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi13aW4zMl9XYWl0TmFtZWRQaXBlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBMUENUU1RSIGxwTmFtZWRQaXBlTmFtZTsKLSAgICBEV09SRCBuVGltZU91dDsKLSAgICBCT09MIHN1Y2Nlc3M7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInMiIEZfRFdPUkQsICZscE5hbWVkUGlwZU5hbWUsICZuVGltZU91dCkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHN1Y2Nlc3MgPSBXYWl0TmFtZWRQaXBlKGxwTmFtZWRQaXBlTmFtZSwgblRpbWVPdXQpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKLQotICAgIFB5X1JFVFVSTl9OT05FOwotfQotCi1zdGF0aWMgUHlNZXRob2REZWYgd2luMzJfbWV0aG9kc1tdID0gewotICAgIFdJTjMyX0ZVTkNUSU9OKENsb3NlSGFuZGxlKSwKLSAgICBXSU4zMl9GVU5DVElPTihHZXRMYXN0RXJyb3IpLAotICAgIFdJTjMyX0ZVTkNUSU9OKE9wZW5Qcm9jZXNzKSwKLSAgICBXSU4zMl9GVU5DVElPTihFeGl0UHJvY2VzcyksCi0gICAgV0lOMzJfRlVOQ1RJT04oQ29ubmVjdE5hbWVkUGlwZSksCi0gICAgV0lOMzJfRlVOQ1RJT04oQ3JlYXRlRmlsZSksCi0gICAgV0lOMzJfRlVOQ1RJT04oQ3JlYXRlTmFtZWRQaXBlKSwKLSAgICBXSU4zMl9GVU5DVElPTihTZXROYW1lZFBpcGVIYW5kbGVTdGF0ZSksCi0gICAgV0lOMzJfRlVOQ1RJT04oV2FpdE5hbWVkUGlwZSksCi0gICAge05VTEx9Ci19OwotCi0KLVB5VHlwZU9iamVjdCBXaW4zMlR5cGUgPSB7Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi19OwotCi0KLVB5T2JqZWN0ICoKLWNyZWF0ZV93aW4zMl9uYW1lc3BhY2Uodm9pZCkKLXsKLSAgICBXaW4zMlR5cGUudHBfbmFtZSA9ICJfbXVsdGlwcm9jZXNzaW5nLndpbjMyIjsKLSAgICBXaW4zMlR5cGUudHBfbWV0aG9kcyA9IHdpbjMyX21ldGhvZHM7Ci0gICAgaWYgKFB5VHlwZV9SZWFkeSgmV2luMzJUeXBlKSA8IDApCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIFB5X0lOQ1JFRigmV2luMzJUeXBlKTsKLQotICAgIFdJTjMyX0NPTlNUQU5UKEZfRFdPUkQsIEVSUk9SX0FMUkVBRFlfRVhJU1RTKTsKLSAgICBXSU4zMl9DT05TVEFOVChGX0RXT1JELCBFUlJPUl9OT19EQVRBKTsKLSAgICBXSU4zMl9DT05TVEFOVChGX0RXT1JELCBFUlJPUl9QSVBFX0JVU1kpOwotICAgIFdJTjMyX0NPTlNUQU5UKEZfRFdPUkQsIEVSUk9SX1BJUEVfQ09OTkVDVEVEKTsKLSAgICBXSU4zMl9DT05TVEFOVChGX0RXT1JELCBFUlJPUl9TRU1fVElNRU9VVCk7Ci0gICAgV0lOMzJfQ09OU1RBTlQoRl9EV09SRCwgR0VORVJJQ19SRUFEKTsKLSAgICBXSU4zMl9DT05TVEFOVChGX0RXT1JELCBHRU5FUklDX1dSSVRFKTsKLSAgICBXSU4zMl9DT05TVEFOVChGX0RXT1JELCBJTkZJTklURSk7Ci0gICAgV0lOMzJfQ09OU1RBTlQoRl9EV09SRCwgTk1QV0FJVF9XQUlUX0ZPUkVWRVIpOwotICAgIFdJTjMyX0NPTlNUQU5UKEZfRFdPUkQsIE9QRU5fRVhJU1RJTkcpOwotICAgIFdJTjMyX0NPTlNUQU5UKEZfRFdPUkQsIFBJUEVfQUNDRVNTX0RVUExFWCk7Ci0gICAgV0lOMzJfQ09OU1RBTlQoRl9EV09SRCwgUElQRV9BQ0NFU1NfSU5CT1VORCk7Ci0gICAgV0lOMzJfQ09OU1RBTlQoRl9EV09SRCwgUElQRV9SRUFETU9ERV9NRVNTQUdFKTsKLSAgICBXSU4zMl9DT05TVEFOVChGX0RXT1JELCBQSVBFX1RZUEVfTUVTU0FHRSk7Ci0gICAgV0lOMzJfQ09OU1RBTlQoRl9EV09SRCwgUElQRV9VTkxJTUlURURfSU5TVEFOQ0VTKTsKLSAgICBXSU4zMl9DT05TVEFOVChGX0RXT1JELCBQSVBFX1dBSVQpOwotICAgIFdJTjMyX0NPTlNUQU5UKEZfRFdPUkQsIFBST0NFU1NfQUxMX0FDQ0VTUyk7Ci0KLSAgICBXSU4zMl9DT05TVEFOVCgiaSIsIE5VTEwpOwotCi0gICAgcmV0dXJuIChQeU9iamVjdCopJldpbjMyVHlwZTsKLX0KZGlmZiAtLWdpdCBhL01vZHVsZXMvX3BpY2tsZS5jIGIvTW9kdWxlcy9fcGlja2xlLmMKaW5kZXggZmM1Zjg3MS4uNWJhNTU5OSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fcGlja2xlLmMKKysrIGIvTW9kdWxlcy9fcGlja2xlLmMKQEAgLTMxOSw2ICszMTksNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RzIHRvIHN1cHBvcnQgc2VsZi1yZWZlcmVudGlhbCBvYmplY3RzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY2tsaW5nLiAqLwogICAgIFB5T2JqZWN0ICpwZXJzX2Z1bmM7ICAgICAgICAvKiBwZXJzaXN0ZW50X2lkKCkgbWV0aG9kLCBjYW4gYmUgTlVMTCAqLworICAgIFB5T2JqZWN0ICpkaXNwYXRjaF90YWJsZTsgICAvKiBwcml2YXRlIGRpc3BhdGNoX3RhYmxlLCBjYW4gYmUgTlVMTCAqLwogICAgIFB5T2JqZWN0ICphcmc7CiAKICAgICBQeU9iamVjdCAqd3JpdGU7ICAgICAgICAgICAgLyogd3JpdGUoKSBtZXRob2Qgb2YgdGhlIG91dHB1dCBzdHJlYW0uICovCkBAIC02MDUsNyArNjA2LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKiBIZWxwZXJzIGZvciBjcmVhdGluZyB0aGUgYXJndW1lbnQgdHVwbGUgcGFzc2VkIHRvIGZ1bmN0aW9ucy4gVGhpcyBoYXMgdGhlCi0gICBwZXJmb3JtYW5jZSBhZHZhbnRhZ2Ugb2YgY2FsbGluZyBQeVR1cGxlX05ldygpIG9ubHkgb25jZS4gCisgICBwZXJmb3JtYW5jZSBhZHZhbnRhZ2Ugb2YgY2FsbGluZyBQeVR1cGxlX05ldygpIG9ubHkgb25jZS4KIAogICAgWFhYKGF2YXNzYWxvdHRpKTogSW5saW5lIGRpcmVjdGx5IGluIF9QaWNrbGVyX0Zhc3RDYWxsKCkgYW5kCiAgICBfVW5waWNrbGVyX0Zhc3RDYWxsKCkuICovCkBAIC03NjQsNiArNzY1LDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBzZWxmLT5wZXJzX2Z1bmMgPSBOVUxMOworICAgIHNlbGYtPmRpc3BhdGNoX3RhYmxlID0gTlVMTDsKICAgICBzZWxmLT5hcmcgPSBOVUxMOwogICAgIHNlbGYtPndyaXRlID0gTlVMTDsKICAgICBzZWxmLT5wcm90byA9IDA7CkBAIC04MTMsNyArODE1LDcgQEAKICAgICBmaXhfaW1wb3J0cyA9IFB5T2JqZWN0X0lzVHJ1ZShmaXhfaW1wb3J0c19vYmopOwogICAgIGlmIChmaXhfaW1wb3J0cyA9PSAtMSkKICAgICAgICAgcmV0dXJuIC0xOwotICAgIAorCiAgICAgc2VsZi0+cHJvdG8gPSBwcm90bzsKICAgICBzZWxmLT5iaW4gPSBwcm90byA+IDA7CiAgICAgc2VsZi0+Zml4X2ltcG9ydHMgPSBmaXhfaW1wb3J0cyAmJiBwcm90byA8IDM7CkBAIC04MjYsOCArODI4LDkgQEAKIHN0YXRpYyBpbnQKIF9QaWNrbGVyX1NldE91dHB1dFN0cmVhbShQaWNrbGVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqZmlsZSkKIHsKKyAgICBfUHlfSURFTlRJRklFUih3cml0ZSk7CiAgICAgYXNzZXJ0KGZpbGUgIT0gTlVMTCk7Ci0gICAgc2VsZi0+d3JpdGUgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGZpbGUsICJ3cml0ZSIpOworICAgIHNlbGYtPndyaXRlID0gX1B5T2JqZWN0X0dldEF0dHJJZChmaWxlLCAmUHlJZF93cml0ZSk7CiAgICAgaWYgKHNlbGYtPndyaXRlID09IE5VTEwpIHsKICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKQEAgLTkwOSw3ICs5MTIsNyBAQAogICAgIFB5X3NzaXplX3QgcmVhZF9zaXplLCBwcmVmZXRjaGVkX3NpemUgPSAwOwogCiAgICAgYXNzZXJ0KHNlbGYtPnJlYWQgIT0gTlVMTCk7Ci0gICAgCisKICAgICBpZiAoX1VucGlja2xlcl9Ta2lwQ29uc3VtZWQoc2VsZikgPCAwKQogICAgICAgICByZXR1cm4gLTE7CiAKQEAgLTEwMzcsNyArMTA0MCw3IEBACiAgICAgICAgIHNlbGYtPm5leHRfcmVhZF9pZHggPSBudW1fcmVhZDsKICAgICAgICAgcmV0dXJuIF9VbnBpY2tsZXJfQ29weUxpbmUoc2VsZiwgc2VsZi0+aW5wdXRfYnVmZmVyLCBudW1fcmVhZCwgcmVzdWx0KTsKICAgICB9Ci0gCisKICAgICAvKiBJZiB3ZSBnZXQgaGVyZSwgd2UndmUgcnVuIG9mZiB0aGUgZW5kIG9mIHRoZSBpbnB1dCBzdHJpbmcuIFJldHVybiB0aGUKICAgICAgICByZW1haW5pbmcgc3RyaW5nIGFuZCBsZXQgdGhlIGNhbGxlciBmaWd1cmUgaXQgb3V0LiAqLwogICAgICpyZXN1bHQgPSBzZWxmLT5pbnB1dF9idWZmZXIgKyBzZWxmLT5uZXh0X3JlYWRfaWR4OwpAQCAtMTE3MywxNSArMTE3NiwxOSBAQAogc3RhdGljIGludAogX1VucGlja2xlcl9TZXRJbnB1dFN0cmVhbShVbnBpY2tsZXJPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpmaWxlKQogewotICAgIHNlbGYtPnBlZWsgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGZpbGUsICJwZWVrIik7CisgICAgX1B5X0lERU5USUZJRVIocGVlayk7CisgICAgX1B5X0lERU5USUZJRVIocmVhZCk7CisgICAgX1B5X0lERU5USUZJRVIocmVhZGxpbmUpOworCisgICAgc2VsZi0+cGVlayA9IF9QeU9iamVjdF9HZXRBdHRySWQoZmlsZSwgJlB5SWRfcGVlayk7CiAgICAgaWYgKHNlbGYtPnBlZWsgPT0gTlVMTCkgewogICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19BdHRyaWJ1dGVFcnJvcikpCiAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgfQotICAgIHNlbGYtPnJlYWQgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGZpbGUsICJyZWFkIik7Ci0gICAgc2VsZi0+cmVhZGxpbmUgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGZpbGUsICJyZWFkbGluZSIpOworICAgIHNlbGYtPnJlYWQgPSBfUHlPYmplY3RfR2V0QXR0cklkKGZpbGUsICZQeUlkX3JlYWQpOworICAgIHNlbGYtPnJlYWRsaW5lID0gX1B5T2JqZWN0X0dldEF0dHJJZChmaWxlLCAmUHlJZF9yZWFkbGluZSk7CiAgICAgaWYgKHNlbGYtPnJlYWRsaW5lID09IE5VTEwgfHwgc2VsZi0+cmVhZCA9PSBOVUxMKSB7CiAgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0F0dHJpYnV0ZUVycm9yKSkKICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCkBAIC0xNTQzLDcgKzE1NTAsMTAgQEAKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICB9CiAgICAgZWxzZQotICAgICAgICByZXR1cm4gc2F2ZV9pbnQoc2VsZiwgdmFsKTsKKyNpZiBTSVpFT0ZfTE9ORyA+IDQKKyAgICAgICAgaWYgKHZhbCA8PSAweDdmZmZmZmZmTCAmJiB2YWwgPj0gLTB4ODAwMDAwMDBMKQorI2VuZGlmCisgICAgICAgICAgICByZXR1cm4gc2F2ZV9pbnQoc2VsZiwgdmFsKTsKIAogICAgIGlmIChzZWxmLT5wcm90byA+PSAyKSB7CiAgICAgICAgIC8qIExpbmVhci10aW1lIHBpY2tsaW5nLiAqLwpAQCAtMTU5OCw3ICsxNjA4LDcgQEAKICAgICAgICAgICogYml0cy4KICAgICAgICAgICovCiAgICAgICAgIGlmIChzaWduIDwgMCAmJgotICAgICAgICAgICAgbmJ5dGVzID4gMSAmJiAKKyAgICAgICAgICAgIG5ieXRlcyA+IDEgJiYKICAgICAgICAgICAgIHBkYXRhW25ieXRlcyAtIDFdID09IDB4ZmYgJiYKICAgICAgICAgICAgIChwZGF0YVtuYnl0ZXMgLSAyXSAmIDB4ODApICE9IDApIHsKICAgICAgICAgICAgIG5ieXRlcy0tOwpAQCAtMTY2NCw3ICsxNjc0LDcgQEAKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgaWYgKF9QaWNrbGVyX1dyaXRlKHNlbGYsIHBkYXRhLCA5KSA8IDApCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICB9IAorICAgfQogICAgIGVsc2UgewogICAgICAgICBpbnQgcmVzdWx0ID0gLTE7CiAgICAgICAgIGNoYXIgKmJ1ZiA9IE5VTEw7CkBAIC0xNzk4LDkwICsxODA4LDY1IEBACiAvKiBBIGNvcHkgb2YgUHlVbmljb2RlX0VuY29kZVJhd1VuaWNvZGVFc2NhcGUoKSB0aGF0IGFsc28gdHJhbnNsYXRlcwogICAgYmFja3NsYXNoIGFuZCBuZXdsaW5lIGNoYXJhY3RlcnMgdG8gXHVYWFhYIGVzY2FwZXMuICovCiBzdGF0aWMgUHlPYmplY3QgKgotcmF3X3VuaWNvZGVfZXNjYXBlKGNvbnN0IFB5X1VOSUNPREUgKnMsIFB5X3NzaXplX3Qgc2l6ZSkKK3Jhd191bmljb2RlX2VzY2FwZShQeU9iamVjdCAqb2JqKQogewogICAgIFB5T2JqZWN0ICpyZXByLCAqcmVzdWx0OwogICAgIGNoYXIgKnA7Ci0gICAgY2hhciAqcTsKKyAgICBQeV9zc2l6ZV90IGksIHNpemUsIGV4cGFuZHNpemU7CisgICAgdm9pZCAqZGF0YTsKKyAgICB1bnNpZ25lZCBpbnQga2luZDsKIAotICAgIHN0YXRpYyBjb25zdCBjaGFyICpoZXhkaWdpdHMgPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKIAotI2lmZGVmIFB5X1VOSUNPREVfV0lERQotICAgIGNvbnN0IFB5X3NzaXplX3QgZXhwYW5kc2l6ZSA9IDEwOwotI2Vsc2UKLSAgICBjb25zdCBQeV9zc2l6ZV90IGV4cGFuZHNpemUgPSA2OwotI2VuZGlmCi0gICAgCisgICAgc2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKG9iaik7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKG9iaik7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKG9iaik7CisgICAgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzRCWVRFX0tJTkQpCisgICAgICAgIGV4cGFuZHNpemUgPSAxMDsKKyAgICBlbHNlCisgICAgICAgIGV4cGFuZHNpemUgPSA2OworCiAgICAgaWYgKHNpemUgPiBQWV9TU0laRV9UX01BWCAvIGV4cGFuZHNpemUpCiAgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwotICAgIAogICAgIHJlcHIgPSBQeUJ5dGVBcnJheV9Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBleHBhbmRzaXplICogc2l6ZSk7CiAgICAgaWYgKHJlcHIgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKHNpemUgPT0gMCkKICAgICAgICAgZ290byBkb25lOwogCi0gICAgcCA9IHEgPSBQeUJ5dGVBcnJheV9BU19TVFJJTkcocmVwcik7Ci0gICAgd2hpbGUgKHNpemUtLSA+IDApIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjaCA9ICpzKys7Ci0jaWZkZWYgUHlfVU5JQ09ERV9XSURFCisgICAgcCA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyhyZXByKTsKKyAgICBmb3IgKGk9MDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSk7CiAgICAgICAgIC8qIE1hcCAzMi1iaXQgY2hhcmFjdGVycyB0byAnXFV4eHh4eHh4eCcgKi8KICAgICAgICAgaWYgKGNoID49IDB4MTAwMDApIHsKICAgICAgICAgICAgICpwKysgPSAnXFwnOwogICAgICAgICAgICAgKnArKyA9ICdVJzsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDI4KSAmIDB4Zl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiAyNCkgJiAweGZdOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gMjApICYgMHhmXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDE2KSAmIDB4Zl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiAxMikgJiAweGZdOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gOCkgJiAweGZdOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gNCkgJiAweGZdOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1tjaCAmIDE1XTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDI4KSAmIDB4Zl07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjaCA+PiAyNCkgJiAweGZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gMjApICYgMHhmXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDE2KSAmIDB4Zl07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjaCA+PiAxMikgJiAweGZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gOCkgJiAweGZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gNCkgJiAweGZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1tjaCAmIDE1XTsKICAgICAgICAgfQotICAgICAgICBlbHNlCi0jZWxzZQotICAgICAgICAgICAgLyogTWFwIFVURi0xNiBzdXJyb2dhdGUgcGFpcnMgdG8gJ1xVMDB4eHh4eHgnICovCi0gICAgICAgICAgICBpZiAoY2ggPj0gMHhEODAwICYmIGNoIDwgMHhEQzAwKSB7Ci0gICAgICAgICAgICAgICAgUHlfVU5JQ09ERSBjaDI7Ci0gICAgICAgICAgICAgICAgUHlfVUNTNCB1Y3M7Ci0KLSAgICAgICAgICAgICAgICBjaDIgPSAqcysrOwotICAgICAgICAgICAgICAgIHNpemUtLTsKLSAgICAgICAgICAgICAgICBpZiAoY2gyID49IDB4REMwMCAmJiBjaDIgPD0gMHhERkZGKSB7Ci0gICAgICAgICAgICAgICAgICAgIHVjcyA9ICgoKGNoICYgMHgwM0ZGKSA8PCAxMCkgfCAoY2gyICYgMHgwM0ZGKSkgKyAweDAwMDEwMDAwOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gJ1xcJzsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9ICdVJzsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDI4KSAmIDB4Zl07Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiAyNCkgJiAweGZdOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gMjApICYgMHhmXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDE2KSAmIDB4Zl07Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiAxMikgJiAweGZdOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gOCkgJiAweGZdOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gNCkgJiAweGZdOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzW3VjcyAmIDB4Zl07Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvKiBGYWxsIHRocm91Z2g6IGlzb2xhdGVkIHN1cnJvZ2F0ZXMgYXJlIGNvcGllZCBhcy1pcyAqLwotICAgICAgICAgICAgICAgIHMtLTsKLSAgICAgICAgICAgICAgICBzaXplKys7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKICAgICAgICAgLyogTWFwIDE2LWJpdCBjaGFyYWN0ZXJzIHRvICdcdXh4eHgnICovCi0gICAgICAgIGlmIChjaCA+PSAyNTYgfHwgY2ggPT0gJ1xcJyB8fCBjaCA9PSAnXG4nKSB7CisgICAgICAgIGVsc2UgaWYgKGNoID49IDI1NiB8fCBjaCA9PSAnXFwnIHx8IGNoID09ICdcbicpIHsKICAgICAgICAgICAgICpwKysgPSAnXFwnOwogICAgICAgICAgICAgKnArKyA9ICd1JzsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDEyKSAmIDB4Zl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiA4KSAmIDB4Zl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiA0KSAmIDB4Zl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzW2NoICYgMTVdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gMTIpICYgMHhmXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDgpICYgMHhmXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDQpICYgMHhmXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbY2ggJiAxNV07CiAgICAgICAgIH0KICAgICAgICAgLyogQ29weSBldmVyeXRoaW5nIGVsc2UgYXMtaXMgKi8KICAgICAgICAgZWxzZQogICAgICAgICAgICAgKnArKyA9IChjaGFyKSBjaDsKICAgICB9Ci0gICAgc2l6ZSA9IHAgLSBxOworICAgIHNpemUgPSBwIC0gUHlCeXRlQXJyYXlfQVNfU1RSSU5HKHJlcHIpOwogCi0gIGRvbmU6Citkb25lOgogICAgIHJlc3VsdCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoUHlCeXRlQXJyYXlfQVNfU1RSSU5HKHJlcHIpLCBzaXplKTsKICAgICBQeV9ERUNSRUYocmVwcik7CiAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTE4OTYsOSArMTg4MSw3IEBACiAgICAgaWYgKHNlbGYtPmJpbikgewogICAgICAgICBjaGFyIHBkYXRhWzVdOwogCi0gICAgICAgIGVuY29kZWQgPSBQeVVuaWNvZGVfRW5jb2RlVVRGOChQeVVuaWNvZGVfQVNfVU5JQ09ERShvYmopLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKG9iaiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vycm9nYXRlcGFzcyIpOworICAgICAgICBlbmNvZGVkID0gUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyhvYmosICJ1dGYtOCIsICJzdXJyb2dhdGVwYXNzIik7CiAgICAgICAgIGlmIChlbmNvZGVkID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGVycm9yOwogCkBAIC0xOTI0LDggKzE5MDcsNyBAQAogICAgIGVsc2UgewogICAgICAgICBjb25zdCBjaGFyIHVuaWNvZGVfb3AgPSBVTklDT0RFOwogCi0gICAgICAgIGVuY29kZWQgPSByYXdfdW5pY29kZV9lc2NhcGUoUHlVbmljb2RlX0FTX1VOSUNPREUob2JqKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUob2JqKSk7CisgICAgICAgIGVuY29kZWQgPSByYXdfdW5pY29kZV9lc2NhcGUob2JqKTsKICAgICAgICAgaWYgKGVuY29kZWQgPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAKQEAgLTI1NDQsNyArMjUyNiw5IEBACiAgICAgICAgICAgICBzdGF0dXMgPSBiYXRjaF9kaWN0X2V4YWN0KHNlbGYsIG9iaik7CiAgICAgICAgICAgICBQeV9MZWF2ZVJlY3Vyc2l2ZUNhbGwoKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGl0ZW1zID0gUHlPYmplY3RfQ2FsbE1ldGhvZChvYmosICJpdGVtcyIsICIoKSIpOworICAgICAgICAgICAgX1B5X0lERU5USUZJRVIoaXRlbXMpOworCisgICAgICAgICAgICBpdGVtcyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQob2JqLCAmUHlJZF9pdGVtcywgIigpIik7CiAgICAgICAgICAgICBpZiAoaXRlbXMgPT0gTlVMTCkKICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgaXRlciA9IFB5T2JqZWN0X0dldEl0ZXIoaXRlbXMpOwpAQCAtMjgyOCw2ICsyODEyLDMwIEBACiB9CiAKIHN0YXRpYyBpbnQKK3NhdmVfZWxsaXBzaXMoUGlja2xlck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm9iaikKK3sKKyAgICBQeU9iamVjdCAqc3RyID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIkVsbGlwc2lzIik7CisgICAgaW50IHJlczsKKyAgICBpZiAoc3RyID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXMgPSBzYXZlX2dsb2JhbChzZWxmLCBQeV9FbGxpcHNpcywgc3RyKTsKKyAgICBQeV9ERUNSRUYoc3RyKTsKKyAgICByZXR1cm4gcmVzOworfQorCitzdGF0aWMgaW50CitzYXZlX25vdGltcGxlbWVudGVkKFBpY2tsZXJPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpvYmopCit7CisgICAgUHlPYmplY3QgKnN0ciA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJOb3RJbXBsZW1lbnRlZCIpOworICAgIGludCByZXM7CisgICAgaWYgKHN0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmVzID0gc2F2ZV9nbG9iYWwoc2VsZiwgUHlfTm90SW1wbGVtZW50ZWQsIHN0cik7CisgICAgUHlfREVDUkVGKHN0cik7CisgICAgcmV0dXJuIHJlczsKK30KKworc3RhdGljIGludAogc2F2ZV9wZXJzKFBpY2tsZXJPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpvYmosIFB5T2JqZWN0ICpmdW5jKQogewogICAgIFB5T2JqZWN0ICpwaWQgPSBOVUxMOwpAQCAtMjg4MSw2ICsyODg5LDI4IEBACiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK2dldF9jbGFzcyhQeU9iamVjdCAqb2JqKQoreworICAgIFB5T2JqZWN0ICpjbHM7CisgICAgc3RhdGljIFB5T2JqZWN0ICpzdHJfY2xhc3M7CisKKyAgICBpZiAoc3RyX2NsYXNzID09IE5VTEwpIHsKKyAgICAgICAgc3RyX2NsYXNzID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fY2xhc3NfXyIpOworICAgICAgICBpZiAoc3RyX2NsYXNzID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgY2xzID0gUHlPYmplY3RfR2V0QXR0cihvYmosIHN0cl9jbGFzcyk7CisgICAgaWYgKGNscyA9PSBOVUxMKSB7CisgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0F0dHJpYnV0ZUVycm9yKSkgeworICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgICAgIGNscyA9IChQeU9iamVjdCAqKSBQeV9UWVBFKG9iaik7CisgICAgICAgICAgICBQeV9JTkNSRUYoY2xzKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gY2xzOworfQorCiAvKiBXZSdyZSBzYXZpbmcgb2JqLCBhbmQgYXJncyBpcyB0aGUgMi10aHJ1LTUgdHVwbGUgcmV0dXJuZWQgYnkgdGhlCiAgKiBhcHByb3ByaWF0ZSBfX3JlZHVjZV9fIG1ldGhvZCBmb3Igb2JqLgogICovCkBAIC0yOTQ2LDE3ICsyOTc2LDE4IEBACiAgICAgLyogUHJvdG9jb2wgMiBzcGVjaWFsIGNhc2U6IGlmIGNhbGxhYmxlJ3MgbmFtZSBpcyBfX25ld29ial9fLCB1c2UKICAgICAgICBORVdPQkouICovCiAgICAgaWYgKHVzZV9uZXdvYmopIHsKLSAgICAgICAgc3RhdGljIFB5T2JqZWN0ICpuZXdvYmpfc3RyID0gTlVMTDsKLSAgICAgICAgUHlPYmplY3QgKm5hbWVfc3RyOworICAgICAgICBzdGF0aWMgUHlPYmplY3QgKm5ld29ial9zdHIgPSBOVUxMLCAqbmFtZV9zdHIgPSBOVUxMOworICAgICAgICBQeU9iamVjdCAqbmFtZTsKIAogICAgICAgICBpZiAobmV3b2JqX3N0ciA9PSBOVUxMKSB7CiAgICAgICAgICAgICBuZXdvYmpfc3RyID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fbmV3b2JqX18iKTsKLSAgICAgICAgICAgIGlmIChuZXdvYmpfc3RyID09IE5VTEwpCisgICAgICAgICAgICBuYW1lX3N0ciA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCJfX25hbWVfXyIpOworICAgICAgICAgICAgaWYgKG5ld29ial9zdHIgPT0gTlVMTCB8fCBuYW1lX3N0ciA9PSBOVUxMKQogICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfQogCi0gICAgICAgIG5hbWVfc3RyID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhjYWxsYWJsZSwgIl9fbmFtZV9fIik7Ci0gICAgICAgIGlmIChuYW1lX3N0ciA9PSBOVUxMKSB7CisgICAgICAgIG5hbWUgPSBQeU9iamVjdF9HZXRBdHRyKGNhbGxhYmxlLCBuYW1lX3N0cik7CisgICAgICAgIGlmIChuYW1lID09IE5VTEwpIHsKICAgICAgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0F0dHJpYnV0ZUVycm9yKSkKICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICAgICAgZWxzZQpAQCAtMjk2NCw5ICsyOTk1LDkgQEAKICAgICAgICAgICAgIHVzZV9uZXdvYmogPSAwOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgdXNlX25ld29iaiA9IFB5VW5pY29kZV9DaGVjayhuYW1lX3N0cikgJiYgCi0gICAgICAgICAgICAgICAgUHlVbmljb2RlX0NvbXBhcmUobmFtZV9zdHIsIG5ld29ial9zdHIpID09IDA7Ci0gICAgICAgICAgICBQeV9ERUNSRUYobmFtZV9zdHIpOworICAgICAgICAgICAgdXNlX25ld29iaiA9IFB5VW5pY29kZV9DaGVjayhuYW1lKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9Db21wYXJlKG5hbWUsIG5ld29ial9zdHIpID09IDA7CisgICAgICAgICAgICBQeV9ERUNSRUYobmFtZSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKHVzZV9uZXdvYmopIHsKQEAgLTI5ODIsMjAgKzMwMTMsMTQgQEAKICAgICAgICAgfQogCiAgICAgICAgIGNscyA9IFB5VHVwbGVfR0VUX0lURU0oYXJndHVwLCAwKTsKLSAgICAgICAgaWYgKCFQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGNscywgIl9fbmV3X18iKSkgeworICAgICAgICBpZiAoIVB5VHlwZV9DaGVjayhjbHMpKSB7CiAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUGlja2xpbmdFcnJvciwgImFyZ3NbMF0gZnJvbSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fbmV3b2JqX18gYXJncyBoYXMgbm8gX19uZXdfXyIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX25ld29ial9fIGFyZ3MgaXMgbm90IGEgdHlwZSIpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKG9iaiAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBvYmpfY2xhc3MgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIl9fY2xhc3NfXyIpOwotICAgICAgICAgICAgaWYgKG9ial9jbGFzcyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQotICAgICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgb2JqX2NsYXNzID0gZ2V0X2NsYXNzKG9iaik7CiAgICAgICAgICAgICBwID0gb2JqX2NsYXNzICE9IGNsczsgICAgLyogdHJ1ZSBpZmYgYSBwcm9ibGVtICovCiAgICAgICAgICAgICBQeV9ERUNSRUYob2JqX2NsYXNzKTsKICAgICAgICAgICAgIGlmIChwKSB7CkBAIC0zMDY5LDcgKzMwOTQsNyBAQAogICAgICAgICByZXR1cm4gLTE7CiAKICAgICBpZiAoc3RhdGUpIHsKLSAgICAgICAgaWYgKHNhdmUoc2VsZiwgc3RhdGUsIDApIDwgMCB8fCAKKyAgICAgICAgaWYgKHNhdmUoc2VsZiwgc3RhdGUsIDApIDwgMCB8fAogICAgICAgICAgICAgX1BpY2tsZXJfV3JpdGUoc2VsZiwgJmJ1aWxkX29wLCAxKSA8IDApCiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgfQpAQCAtMzExMyw2ICszMTM4LDE0IEBACiAgICAgICAgIHN0YXR1cyA9IHNhdmVfbm9uZShzZWxmLCBvYmopOwogICAgICAgICBnb3RvIGRvbmU7CiAgICAgfQorICAgIGVsc2UgaWYgKG9iaiA9PSBQeV9FbGxpcHNpcykgeworICAgICAgICBzdGF0dXMgPSBzYXZlX2VsbGlwc2lzKHNlbGYsIG9iaik7CisgICAgICAgIGdvdG8gZG9uZTsKKyAgICB9CisgICAgZWxzZSBpZiAob2JqID09IFB5X05vdEltcGxlbWVudGVkKSB7CisgICAgICAgIHN0YXR1cyA9IHNhdmVfbm90aW1wbGVtZW50ZWQoc2VsZiwgb2JqKTsKKyAgICAgICAgZ290byBkb25lOworICAgIH0KICAgICBlbHNlIGlmIChvYmogPT0gUHlfRmFsc2UgfHwgb2JqID09IFB5X1RydWUpIHsKICAgICAgICAgc3RhdHVzID0gc2F2ZV9ib29sKHNlbGYsIG9iaik7CiAgICAgICAgIGdvdG8gZG9uZTsKQEAgLTMxNzcsMTcgKzMyMTAsMjQgQEAKICAgICAvKiBYWFg6IFRoaXMgcGFydCBuZWVkcyBzb21lIHVuaXQgdGVzdHMuICovCiAKICAgICAvKiBHZXQgYSByZWR1Y3Rpb24gY2FsbGFibGUsIGFuZCBjYWxsIGl0LiAgVGhpcyBtYXkgY29tZSBmcm9tCi0gICAgICogY29weXJlZy5kaXNwYXRjaF90YWJsZSwgdGhlIG9iamVjdCdzIF9fcmVkdWNlX2V4X18gbWV0aG9kLAotICAgICAqIG9yIHRoZSBvYmplY3QncyBfX3JlZHVjZV9fIG1ldGhvZC4KKyAgICAgKiBzZWxmLmRpc3BhdGNoX3RhYmxlLCBjb3B5cmVnLmRpc3BhdGNoX3RhYmxlLCB0aGUgb2JqZWN0J3MKKyAgICAgKiBfX3JlZHVjZV9leF9fIG1ldGhvZCwgb3IgdGhlIG9iamVjdCdzIF9fcmVkdWNlX18gbWV0aG9kLgogICAgICAqLwotICAgIHJlZHVjZV9mdW5jID0gUHlEaWN0X0dldEl0ZW0oZGlzcGF0Y2hfdGFibGUsIChQeU9iamVjdCAqKXR5cGUpOworICAgIGlmIChzZWxmLT5kaXNwYXRjaF90YWJsZSA9PSBOVUxMKSB7CisgICAgICAgIHJlZHVjZV9mdW5jID0gUHlEaWN0X0dldEl0ZW0oZGlzcGF0Y2hfdGFibGUsIChQeU9iamVjdCAqKXR5cGUpOworICAgICAgICAvKiBQeURpY3RfR2V0SXRlbSgpIHVubGlrZSBQeU9iamVjdF9HZXRJdGVtKCkgYW5kCisgICAgICAgICAgIFB5T2JqZWN0X0dldEF0dHIoKSByZXR1cm5zIGEgYm9ycm93ZWQgcmVmICovCisgICAgICAgIFB5X1hJTkNSRUYocmVkdWNlX2Z1bmMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHJlZHVjZV9mdW5jID0gUHlPYmplY3RfR2V0SXRlbShzZWxmLT5kaXNwYXRjaF90YWJsZSwgKFB5T2JqZWN0ICopdHlwZSk7CisgICAgICAgIGlmIChyZWR1Y2VfZnVuYyA9PSBOVUxMKSB7CisgICAgICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19LZXlFcnJvcikpCisgICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgfQogICAgIGlmIChyZWR1Y2VfZnVuYyAhPSBOVUxMKSB7Ci0gICAgICAgIC8qIEhlcmUsIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIHJlZHVjZV9mdW5jIG9iamVjdCByZXR1cm5lZCBieQotICAgICAgICAgICBQeURpY3RfR2V0SXRlbSBuZWVkcyB0byBiZSBpbmNyZWFzZWQgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBvbmUKLSAgICAgICAgICAgcmV0dXJuZWQgYnkgUHlPYmplY3RfR2V0QXR0ci4gVGhpcyBpcyBhbGxvdyB1cyB0byBibGluZGx5IERFQ1JFRgotICAgICAgICAgICByZWR1Y2VfZnVuYyBhdCB0aGUgZW5kIG9mIHRoZSBzYXZlKCkgcm91dGluZS4KLSAgICAgICAgKi8KLSAgICAgICAgUHlfSU5DUkVGKHJlZHVjZV9mdW5jKTsKICAgICAgICAgUHlfSU5DUkVGKG9iaik7CiAgICAgICAgIHJlZHVjZV92YWx1ZSA9IF9QaWNrbGVyX0Zhc3RDYWxsKHNlbGYsIHJlZHVjZV9mdW5jLCBvYmopOwogICAgIH0KQEAgLTMzMjMsNyArMzM2Myw3IEBACiAgICAgICAgRGV2ZWxvcGVycyBvZnRlbiBmb3JnZXQgdG8gY2FsbCBfX2luaXRfXygpIGluIHRoZWlyIHN1YmNsYXNzZXMsIHdoaWNoCiAgICAgICAgd291bGQgdHJpZ2dlciBhIHNlZ2ZhdWx0IHdpdGhvdXQgdGhpcyBjaGVjay4gKi8KICAgICBpZiAoc2VsZi0+d3JpdGUgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9Gb3JtYXQoUGlja2xpbmdFcnJvciwgCisgICAgICAgIFB5RXJyX0Zvcm1hdChQaWNrbGluZ0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgIlBpY2tsZXIuX19pbml0X18oKSB3YXMgbm90IGNhbGxlZCBieSAlcy5fX2luaXRfXygpIiwKICAgICAgICAgICAgICAgICAgICAgIFB5X1RZUEUoc2VsZiktPnRwX25hbWUpOwogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTMzNjAsNiArMzQwMCw3IEBACiAgICAgUHlfWERFQ1JFRihzZWxmLT5vdXRwdXRfYnVmZmVyKTsKICAgICBQeV9YREVDUkVGKHNlbGYtPndyaXRlKTsKICAgICBQeV9YREVDUkVGKHNlbGYtPnBlcnNfZnVuYyk7CisgICAgUHlfWERFQ1JFRihzZWxmLT5kaXNwYXRjaF90YWJsZSk7CiAgICAgUHlfWERFQ1JFRihzZWxmLT5hcmcpOwogICAgIFB5X1hERUNSRUYoc2VsZi0+ZmFzdF9tZW1vKTsKIApAQCAtMzM3Myw2ICszNDE0LDcgQEAKIHsKICAgICBQeV9WSVNJVChzZWxmLT53cml0ZSk7CiAgICAgUHlfVklTSVQoc2VsZi0+cGVyc19mdW5jKTsKKyAgICBQeV9WSVNJVChzZWxmLT5kaXNwYXRjaF90YWJsZSk7CiAgICAgUHlfVklTSVQoc2VsZi0+YXJnKTsKICAgICBQeV9WSVNJVChzZWxmLT5mYXN0X21lbW8pOwogICAgIHJldHVybiAwOwpAQCAtMzM4NCw2ICszNDI2LDcgQEAKICAgICBQeV9DTEVBUihzZWxmLT5vdXRwdXRfYnVmZmVyKTsKICAgICBQeV9DTEVBUihzZWxmLT53cml0ZSk7CiAgICAgUHlfQ0xFQVIoc2VsZi0+cGVyc19mdW5jKTsKKyAgICBQeV9DTEVBUihzZWxmLT5kaXNwYXRjaF90YWJsZSk7CiAgICAgUHlfQ0xFQVIoc2VsZi0+YXJnKTsKICAgICBQeV9DTEVBUihzZWxmLT5mYXN0X21lbW8pOwogCkBAIC0zNDI3LDYgKzM0NzAsOCBAQAogICAgIFB5T2JqZWN0ICpmaWxlOwogICAgIFB5T2JqZWN0ICpwcm90b19vYmogPSBOVUxMOwogICAgIFB5T2JqZWN0ICpmaXhfaW1wb3J0cyA9IFB5X1RydWU7CisgICAgX1B5X0lERU5USUZJRVIocGVyc2lzdGVudF9pZCk7CisgICAgX1B5X0lERU5USUZJRVIoZGlzcGF0Y2hfdGFibGUpOwogCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98T086UGlja2xlciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmZmlsZSwgJnByb3RvX29iaiwgJmZpeF9pbXBvcnRzKSkKQEAgLTM0NjIsMTIgKzM1MDcsMTkgQEAKICAgICBzZWxmLT5mYXN0X25lc3RpbmcgPSAwOwogICAgIHNlbGYtPmZhc3RfbWVtbyA9IE5VTEw7CiAgICAgc2VsZi0+cGVyc19mdW5jID0gTlVMTDsKLSAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZygoUHlPYmplY3QgKilzZWxmLCAicGVyc2lzdGVudF9pZCIpKSB7Ci0gICAgICAgIHNlbGYtPnBlcnNfZnVuYyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoKFB5T2JqZWN0ICopc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGVyc2lzdGVudF9pZCIpOworICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKChQeU9iamVjdCAqKXNlbGYsICZQeUlkX3BlcnNpc3RlbnRfaWQpKSB7CisgICAgICAgIHNlbGYtPnBlcnNfZnVuYyA9IF9QeU9iamVjdF9HZXRBdHRySWQoKFB5T2JqZWN0ICopc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlJZF9wZXJzaXN0ZW50X2lkKTsKICAgICAgICAgaWYgKHNlbGYtPnBlcnNfZnVuYyA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KKyAgICBzZWxmLT5kaXNwYXRjaF90YWJsZSA9IE5VTEw7CisgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQoKFB5T2JqZWN0ICopc2VsZiwgJlB5SWRfZGlzcGF0Y2hfdGFibGUpKSB7CisgICAgICAgIHNlbGYtPmRpc3BhdGNoX3RhYmxlID0gX1B5T2JqZWN0X0dldEF0dHJJZCgoUHlPYmplY3QgKilzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlB5SWRfZGlzcGF0Y2hfdGFibGUpOworICAgICAgICBpZiAoc2VsZi0+ZGlzcGF0Y2hfdGFibGUgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICB9CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTM3NDksNiArMzgwMSw3IEBACiBzdGF0aWMgUHlNZW1iZXJEZWYgUGlja2xlcl9tZW1iZXJzW10gPSB7CiAgICAgeyJiaW4iLCBUX0lOVCwgb2Zmc2V0b2YoUGlja2xlck9iamVjdCwgYmluKX0sCiAgICAgeyJmYXN0IiwgVF9JTlQsIG9mZnNldG9mKFBpY2tsZXJPYmplY3QsIGZhc3QpfSwKKyAgICB7ImRpc3BhdGNoX3RhYmxlIiwgVF9PQkpFQ1RfRVgsIG9mZnNldG9mKFBpY2tsZXJPYmplY3QsIGRpc3BhdGNoX3RhYmxlKX0sCiAgICAge05VTEx9CiB9OwogCkBAIC0zODAzLDcgKzM4NTYsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXNfZ2MqLwogfTsKIAotLyogVGVtcG9yYXJ5IGhlbHBlciBmb3IgY2FsbGluZyBzZWxmLmZpbmRfY2xhc3MoKS4gCisvKiBUZW1wb3JhcnkgaGVscGVyIGZvciBjYWxsaW5nIHNlbGYuZmluZF9jbGFzcygpLgogCiAgICBYWFg6IEl0IHdvdWxkIGJlIG5pY2UgdG8gYWJsZSB0byBhdm9pZCBQeXRob24gZnVuY3Rpb24gY2FsbCBvdmVyaGVhZCwgYnkKICAgIHVzaW5nIGRpcmVjdGx5IHRoZSBDIHZlcnNpb24gb2YgZmluZF9jbGFzcygpLCB3aGVuIGZpbmRfY2xhc3MoKSBpcyBub3QKQEAgLTM4MTMsOCArMzg2NiwxMCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGZpbmRfY2xhc3MoVW5waWNrbGVyT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqbW9kdWxlX25hbWUsIFB5T2JqZWN0ICpnbG9iYWxfbmFtZSkKIHsKLSAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZCgoUHlPYmplY3QgKilzZWxmLCAiZmluZF9jbGFzcyIsICJPTyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlX25hbWUsIGdsb2JhbF9uYW1lKTsKKyAgICBfUHlfSURFTlRJRklFUihmaW5kX2NsYXNzKTsKKworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKChQeU9iamVjdCAqKXNlbGYsICZQeUlkX2ZpbmRfY2xhc3MsICJPTyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kdWxlX25hbWUsIGdsb2JhbF9uYW1lKTsKIH0KIAogc3RhdGljIFB5X3NzaXplX3QKQEAgLTM4NTYsNyArMzkxMSw3IEBACiAgICAgICAgIHJldHVybiBiYWRfcmVhZGxpbmUoKTsKIAogICAgIGVycm5vID0gMDsKLSAgICAvKiBYWFg6IFNob3VsZCB0aGUgYmFzZSBhcmd1bWVudCBvZiBzdHJ0b2woKSBiZSBleHBsaWNpdGx5IHNldCB0byAxMD8gCisgICAgLyogWFhYOiBTaG91bGQgdGhlIGJhc2UgYXJndW1lbnQgb2Ygc3RydG9sKCkgYmUgZXhwbGljaXRseSBzZXQgdG8gMTA/CiAgICAgICAgWFhYKGF2YXNzYWxvdHRpKTogU2hvdWxkIHRoaXMgdXNlcyBQeU9TX3N0cnRvbCgpPyAqLwogICAgIHggPSBzdHJ0b2wocywgJmVuZHB0ciwgMCk7CiAKQEAgLTQyMjEsNyArNDI3Niw3IEBACiAKICAgICB4ID0gY2FsY19iaW5pbnQocywgNCk7CiAgICAgaWYgKHggPCAwKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhVbnBpY2tsaW5nRXJyb3IsIAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoVW5waWNrbGluZ0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgIkJJTlNUUklORyBwaWNrbGUgaGFzIG5lZ2F0aXZlIGJ5dGUgY291bnQiKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KQEAgLTQ0MTgsMTYgKzQ0NzMsMTkgQEAKIGluc3RhbnRpYXRlKFB5T2JqZWN0ICpjbHMsIFB5T2JqZWN0ICphcmdzKQogewogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOworICAgIF9QeV9JREVOVElGSUVSKF9fZ2V0aW5pdGFyZ3NfXyk7CiAgICAgLyogQ2FsbGVyIG11c3QgYXNzdXJlIGFyZ3MgYXJlIGEgdHVwbGUuICBOb3JtYWxseSwgYXJncyBjb21lIGZyb20KICAgICAgICBQZGF0YV9wb3B0dXBsZSB3aGljaCBwYWNrcyBvYmplY3RzIGZyb20gdGhlIHRvcCBvZiB0aGUgc3RhY2sKICAgICAgICBpbnRvIGEgbmV3bHkgY3JlYXRlZCB0dXBsZS4gKi8KICAgICBhc3NlcnQoUHlUdXBsZV9DaGVjayhhcmdzKSk7CiAgICAgaWYgKFB5X1NJWkUoYXJncykgPiAwIHx8ICFQeVR5cGVfQ2hlY2soY2xzKSB8fAotICAgICAgICBQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGNscywgIl9fZ2V0aW5pdGFyZ3NfXyIpKSB7CisgICAgICAgIF9QeU9iamVjdF9IYXNBdHRySWQoY2xzLCAmUHlJZF9fX2dldGluaXRhcmdzX18pKSB7CiAgICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxPYmplY3QoY2xzLCBhcmdzKTsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoY2xzLCAiX19uZXdfXyIsICJPIiwgY2xzKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoX19uZXdfXyk7CisKKyAgICAgICAgcmVzdWx0ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChjbHMsICZQeUlkX19fbmV3X18sICJPIiwgY2xzKTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTQ5NjgsOCArNTAyNiw5IEBACiAgICAgfQogICAgIGVsc2UgewogICAgICAgICBQeU9iamVjdCAqYXBwZW5kX2Z1bmM7CisgICAgICAgIF9QeV9JREVOVElGSUVSKGFwcGVuZCk7CiAKLSAgICAgICAgYXBwZW5kX2Z1bmMgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGxpc3QsICJhcHBlbmQiKTsKKyAgICAgICAgYXBwZW5kX2Z1bmMgPSBfUHlPYmplY3RfR2V0QXR0cklkKGxpc3QsICZQeUlkX2FwcGVuZCk7CiAgICAgICAgIGlmIChhcHBlbmRfZnVuYyA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICBmb3IgKGkgPSB4OyBpIDwgbGVuOyBpKyspIHsKQEAgLTUwMTUsNyArNTA3NCw3IEBACiAgICAgICAgIHJldHVybiBzdGFja191bmRlcmZsb3coKTsKICAgICBpZiAobGVuID09IHgpICAvKiBub3RoaW5nIHRvIGRvICovCiAgICAgICAgIHJldHVybiAwOwotICAgIGlmICgobGVuIC0geCkgJSAyICE9IDApIHsgCisgICAgaWYgKChsZW4gLSB4KSAlIDIgIT0gMCkgewogICAgICAgICAvKiBDdXJydXB0IG9yIGhvc3RpbGUgcGlja2xlIC0tIHdlIG5ldmVyIHdyaXRlIG9uZSBsaWtlIHRoaXMuICovCiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhVbnBpY2tsaW5nRXJyb3IsICJvZGQgbnVtYmVyIG9mIGl0ZW1zIGZvciBTRVRJVEVNUyIpOwogICAgICAgICByZXR1cm4gLTE7CkBAIC01MDU2LDYgKzUxMTUsNyBAQAogICAgIFB5T2JqZWN0ICpzdGF0ZSwgKmluc3QsICpzbG90c3RhdGU7CiAgICAgUHlPYmplY3QgKnNldHN0YXRlOwogICAgIGludCBzdGF0dXMgPSAwOworICAgIF9QeV9JREVOVElGSUVSKF9fc2V0c3RhdGVfXyk7CiAKICAgICAvKiBTdGFjayBpcyAuLi4gaW5zdGFuY2UsIHN0YXRlLiAgV2Ugd2FudCB0byBsZWF2ZSBpbnN0YW5jZSBhdAogICAgICAqIHRoZSBzdGFjayB0b3AsIHBvc3NpYmx5IG11dGF0ZWQgdmlhIGluc3RhbmNlLl9fc2V0c3RhdGVfXyhzdGF0ZSkuCkBAIC01MDY5LDcgKzUxMjksNyBAQAogCiAgICAgaW5zdCA9IHNlbGYtPnN0YWNrLT5kYXRhW1B5X1NJWkUoc2VsZi0+c3RhY2spIC0gMV07CiAKLSAgICBzZXRzdGF0ZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoaW5zdCwgIl9fc2V0c3RhdGVfXyIpOworICAgIHNldHN0YXRlID0gX1B5T2JqZWN0X0dldEF0dHJJZChpbnN0LCAmUHlJZF9fX3NldHN0YXRlX18pOwogICAgIGlmIChzZXRzdGF0ZSA9PSBOVUxMKSB7CiAgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0F0dHJpYnV0ZUVycm9yKSkKICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CkBAIC01MTEyLDEyICs1MTcyLDEzIEBACiAgICAgICAgIFB5T2JqZWN0ICpkaWN0OwogICAgICAgICBQeU9iamVjdCAqZF9rZXksICpkX3ZhbHVlOwogICAgICAgICBQeV9zc2l6ZV90IGk7CisgICAgICAgIF9QeV9JREVOVElGSUVSKF9fZGljdF9fKTsKIAogICAgICAgICBpZiAoIVB5RGljdF9DaGVjayhzdGF0ZSkpIHsKICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhVbnBpY2tsaW5nRXJyb3IsICJzdGF0ZSBpcyBub3QgYSBkaWN0aW9uYXJ5Iik7CiAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICB9Ci0gICAgICAgIGRpY3QgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGluc3QsICJfX2RpY3RfXyIpOworICAgICAgICBkaWN0ID0gX1B5T2JqZWN0X0dldEF0dHJJZChpbnN0LCAmUHlJZF9fX2RpY3RfXyk7CiAgICAgICAgIGlmIChkaWN0ID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGVycm9yOwogCkBAIC01MzcyLDcgKzU0MzMsNyBAQAogICAgICAgIG5vdCBjYWxsIFVucGlja2xlci5fX2luaXRfXygpLiBIZXJlLCB3ZSBzaW1wbHkgZW5zdXJlIHRoYXQgc2VsZi0+cmVhZAogICAgICAgIGlzIG5vdCBOVUxMLiAqLwogICAgIGlmIChzZWxmLT5yZWFkID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFVucGlja2xpbmdFcnJvciwgCisgICAgICAgIFB5RXJyX0Zvcm1hdChVbnBpY2tsaW5nRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAiVW5waWNrbGVyLl9faW5pdF9fKCkgd2FzIG5vdCBjYWxsZWQgYnkgJXMuX19pbml0X18oKSIsCiAgICAgICAgICAgICAgICAgICAgICBQeV9UWVBFKHNlbGYpLT50cF9uYW1lKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC01NDc0LDcgKzU1MzUsNyBAQAogICAgICAgICBnbG9iYWwgPSBQeU9iamVjdF9HZXRBdHRyKG1vZHVsZSwgZ2xvYmFsX25hbWUpOwogICAgICAgICBQeV9ERUNSRUYobW9kdWxlKTsKICAgICB9Ci0gICAgZWxzZSB7IAorICAgIGVsc2UgewogICAgICAgICBnbG9iYWwgPSBQeU9iamVjdF9HZXRBdHRyKG1vZHVsZSwgZ2xvYmFsX25hbWUpOwogICAgIH0KICAgICByZXR1cm4gZ2xvYmFsOwpAQCAtNTU4Miw2ICs1NjQzLDcgQEAKICAgICBQeU9iamVjdCAqZml4X2ltcG9ydHMgPSBQeV9UcnVlOwogICAgIGNoYXIgKmVuY29kaW5nID0gTlVMTDsKICAgICBjaGFyICplcnJvcnMgPSBOVUxMOworICAgIF9QeV9JREVOVElGSUVSKHBlcnNpc3RlbnRfbG9hZCk7CiAKICAgICAvKiBYWFg6IFRoYXQgaXMgYW4gaG9ycmlibGUgZXJyb3IgbWVzc2FnZS4gQnV0LCBJIGRvbid0IGtub3cgaG93IHRvIGRvCiAgICAgICAgYmV0dGVyLi4uICovCkBAIC01NjE2LDkgKzU2NzgsOSBAQAogICAgIGlmIChzZWxmLT5maXhfaW1wb3J0cyA9PSAtMSkKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoKFB5T2JqZWN0ICopc2VsZiwgInBlcnNpc3RlbnRfbG9hZCIpKSB7Ci0gICAgICAgIHNlbGYtPnBlcnNfZnVuYyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoKFB5T2JqZWN0ICopc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGVyc2lzdGVudF9sb2FkIik7CisgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQoKFB5T2JqZWN0ICopc2VsZiwgJlB5SWRfcGVyc2lzdGVudF9sb2FkKSkgeworICAgICAgICBzZWxmLT5wZXJzX2Z1bmMgPSBfUHlPYmplY3RfR2V0QXR0cklkKChQeU9iamVjdCAqKXNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlB5SWRfcGVyc2lzdGVudF9sb2FkKTsKICAgICAgICAgaWYgKHNlbGYtPnBlcnNfZnVuYyA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KQEAgLTU2NTEsNyArNTcxMyw3IEBACiAgKiBpbnRlbnRpb25hbCwgYXMgdGhlc2Ugc2hvdWxkIGJlIHRyZWF0ZWQgYXMgYmxhY2stYm94IGltcGxlbWVudGF0aW9uIGRldGFpbHMuCiAgKgogICogV2UgZG8sIGhvd2V2ZXIsIGhhdmUgdG8gaW1wbGVtZW50IHBpY2tsaW5nL3VucGlja2xpbmcgc3VwcG9ydCBiZWNhdXNlIG9mCi0gKiByZWFsLXdvcmxkIGNvZGUgbGlrZSBjdnMyc3ZuLiAKKyAqIHJlYWwtd29ybGQgY29kZSBsaWtlIGN2czJzdm4uCiAgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgewpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fcG9zaXhzdWJwcm9jZXNzLmMgYi9Nb2R1bGVzL19wb3NpeHN1YnByb2Nlc3MuYwppbmRleCAyMWFkOTY2Li40YTE0Nzg4IDEwMDY0NAotLS0gYS9Nb2R1bGVzL19wb3NpeHN1YnByb2Nlc3MuYworKysgYi9Nb2R1bGVzL19wb3NpeHN1YnByb2Nlc3MuYwpAQCAtNDcsNyArNDcsOSBAQAogX2VuYWJsZV9nYyhQeU9iamVjdCAqZ2NfbW9kdWxlKQogewogICAgIFB5T2JqZWN0ICpyZXN1bHQ7Ci0gICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChnY19tb2R1bGUsICJlbmFibGUiLCBOVUxMKTsKKyAgICBfUHlfSURFTlRJRklFUihlbmFibGUpOworCisgICAgcmVzdWx0ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChnY19tb2R1bGUsICZQeUlkX2VuYWJsZSwgTlVMTCk7CiAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gMTsKICAgICBQeV9ERUNSRUYocmVzdWx0KTsKQEAgLTc4LDcgKzgwLDcgQEAKICAqIHRoYXQgcHJvcGVybHkgc3VwcG9ydHMgL2Rldi9mZC4KICAqLwogc3RhdGljIGludAotX2lzX2ZkZXNjZnNfbW91bnRlZF9vbl9kZXZfZmQoKQorX2lzX2ZkZXNjZnNfbW91bnRlZF9vbl9kZXZfZmQodm9pZCkKIHsKICAgICBzdHJ1Y3Qgc3RhdCBkZXZfc3RhdDsKICAgICBzdHJ1Y3Qgc3RhdCBkZXZfZmRfc3RhdDsKQEAgLTU0MSwxMCArNTQzLDEzIEBACiAgICAgLyogV2UgbmVlZCB0byBjYWxsIGdjLmRpc2FibGUoKSB3aGVuIHdlJ2xsIGJlIGNhbGxpbmcgcHJlZXhlY19mbiAqLwogICAgIGlmIChwcmVleGVjX2ZuICE9IFB5X05vbmUpIHsKICAgICAgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoaXNlbmFibGVkKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoZGlzYWJsZSk7CisgICAgICAgIAogICAgICAgICBnY19tb2R1bGUgPSBQeUltcG9ydF9JbXBvcnRNb2R1bGUoImdjIik7CiAgICAgICAgIGlmIChnY19tb2R1bGUgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGdjX21vZHVsZSwgImlzZW5hYmxlZCIsIE5VTEwpOworICAgICAgICByZXN1bHQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKGdjX21vZHVsZSwgJlB5SWRfaXNlbmFibGVkLCBOVUxMKTsKICAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CiAgICAgICAgICAgICBQeV9ERUNSRUYoZ2NfbW9kdWxlKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNTU1LDcgKzU2MCw3IEBACiAgICAgICAgICAgICBQeV9ERUNSRUYoZ2NfbW9kdWxlKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoZ2NfbW9kdWxlLCAiZGlzYWJsZSIsIE5VTEwpOworICAgICAgICByZXN1bHQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKGdjX21vZHVsZSwgJlB5SWRfZGlzYWJsZSwgTlVMTCk7CiAgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgewogICAgICAgICAgICAgUHlfREVDUkVGKGdjX21vZHVsZSk7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3JhbmRvbW1vZHVsZS5jIGIvTW9kdWxlcy9fcmFuZG9tbW9kdWxlLmMKaW5kZXggYmM5YjA0YS4uNDIxYTBkOCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fcmFuZG9tbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9fcmFuZG9tbW9kdWxlLmMKQEAgLTIxMCw3ICsyMTAsNyBAQAogICAgIFB5T2JqZWN0ICptYXNrbG93ZXIgPSBOVUxMOwogICAgIFB5T2JqZWN0ICp0aGlydHl0d28gPSBOVUxMOwogICAgIFB5T2JqZWN0ICpuID0gTlVMTDsKLSAgICB1bnNpZ25lZCBsb25nICprZXkgPSBOVUxMOworICAgIHVuc2lnbmVkIGxvbmcgKm5ld19rZXksICprZXkgPSBOVUxMOwogICAgIHVuc2lnbmVkIGxvbmcga2V5bWF4OyAgICAgICAgICAgICAgIC8qICMgb2YgYWxsb2NhdGVkIHNsb3RzIGluIGtleSAqLwogICAgIHVuc2lnbmVkIGxvbmcga2V5dXNlZDsgICAgICAgICAgICAgIC8qICMgb2YgdXNlZCBzbG90cyBpbiBrZXkgKi8KICAgICBpbnQgZXJyOwpAQCAtMjI4LDE2ICsyMjgsMTcgQEAKICAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwogICAgICAgICByZXR1cm4gUHlfTm9uZTsKICAgICB9Ci0gICAgLyogSWYgdGhlIGFyZyBpcyBhbiBpbnQgb3IgbG9uZywgdXNlIGl0cyBhYnNvbHV0ZSB2YWx1ZTsgZWxzZSB1c2UKLSAgICAgKiB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgaXRzIGhhc2ggY29kZS4KKyAgICAvKiBUaGlzIGFsZ29yaXRobSByZWxpZXMgb24gdGhlIG51bWJlciBiZWluZyB1bnNpZ25lZC4KKyAgICAgKiBTbzogaWYgdGhlIGFyZyBpcyBhIFB5TG9uZywgdXNlIGl0cyBhYnNvbHV0ZSB2YWx1ZS4KKyAgICAgKiBPdGhlcndpc2UgdXNlIGl0cyBoYXNoIHZhbHVlLCBjYXN0IHRvIHVuc2lnbmVkLgogICAgICAqLwogICAgIGlmIChQeUxvbmdfQ2hlY2soYXJnKSkKICAgICAgICAgbiA9IFB5TnVtYmVyX0Fic29sdXRlKGFyZyk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGxvbmcgaGFzaCA9IFB5T2JqZWN0X0hhc2goYXJnKTsKKyAgICAgICAgUHlfaGFzaF90IGhhc2ggPSBQeU9iamVjdF9IYXNoKGFyZyk7CiAgICAgICAgIGlmIChoYXNoID09IC0xKQogICAgICAgICAgICAgZ290byBEb25lOwotICAgICAgICBuID0gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcoKHVuc2lnbmVkIGxvbmcpaGFzaCk7CisgICAgICAgIG4gPSBQeUxvbmdfRnJvbVNpemVfdCgoc2l6ZV90KWhhc2gpOwogICAgIH0KICAgICBpZiAobiA9PSBOVUxMKQogICAgICAgICBnb3RvIERvbmU7CkBAIC0yODcsMTAgKzI4OCwxMSBAQAogICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgICAgICAgICAgZ290byBEb25lOwogICAgICAgICAgICAgfQotICAgICAgICAgICAga2V5ID0gKHVuc2lnbmVkIGxvbmcgKilQeU1lbV9SZWFsbG9jKGtleSwKKyAgICAgICAgICAgIG5ld19rZXkgPSAodW5zaWduZWQgbG9uZyAqKVB5TWVtX1JlYWxsb2Moa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlnZ2VyICogc2l6ZW9mKCprZXkpKTsKLSAgICAgICAgICAgIGlmIChrZXkgPT0gTlVMTCkKKyAgICAgICAgICAgIGlmIChuZXdfa2V5ID09IE5VTEwpCiAgICAgICAgICAgICAgICAgZ290byBEb25lOworICAgICAgICAgICAga2V5ID0gbmV3X2tleTsKICAgICAgICAgICAgIGtleW1heCA9IGJpZ2dlcjsKICAgICAgICAgfQogICAgICAgICBhc3NlcnQoa2V5dXNlZCA8IGtleW1heCk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19zcWxpdGUvY2FjaGUuYyBiL01vZHVsZXMvX3NxbGl0ZS9jYWNoZS5jCmluZGV4IDczNWEyNDIuLjM2OTMzNjMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NxbGl0ZS9jYWNoZS5jCisrKyBiL01vZHVsZXMvX3NxbGl0ZS9jYWNoZS5jCkBAIC0yMTcsOCArMjE3LDYgQEAKICAgICBweXNxbGl0ZV9Ob2RlKiBwdHI7CiAgICAgUHlPYmplY3QqIHByZXZrZXk7CiAgICAgUHlPYmplY3QqIG5leHRrZXk7Ci0gICAgUHlPYmplY3QqIGZtdF9hcmdzOwotICAgIFB5T2JqZWN0KiB0ZW1wbGF0ZTsKICAgICBQeU9iamVjdCogZGlzcGxheV9zdHI7CiAKICAgICBwdHIgPSBzZWxmLT5maXJzdDsKQEAgLTIyOSwzNiArMjI3LDIxIEBACiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwcmV2a2V5ID0gUHlfTm9uZTsKICAgICAgICAgfQotICAgICAgICBQeV9JTkNSRUYocHJldmtleSk7CiAKICAgICAgICAgaWYgKHB0ci0+bmV4dCkgewogICAgICAgICAgICAgbmV4dGtleSA9IHB0ci0+bmV4dC0+a2V5OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbmV4dGtleSA9IFB5X05vbmU7CiAgICAgICAgIH0KLSAgICAgICAgUHlfSU5DUkVGKG5leHRrZXkpOwogCi0gICAgICAgIGZtdF9hcmdzID0gUHlfQnVpbGRWYWx1ZSgiT09PIiwgcHJldmtleSwgcHRyLT5rZXksIG5leHRrZXkpOwotICAgICAgICBpZiAoIWZtdF9hcmdzKSB7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICB0ZW1wbGF0ZSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCIlcyA8LSAlcyAtPiVzXG4iKTsKLSAgICAgICAgaWYgKCF0ZW1wbGF0ZSkgewotICAgICAgICAgICAgUHlfREVDUkVGKGZtdF9hcmdzKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGRpc3BsYXlfc3RyID0gUHlVbmljb2RlX0Zvcm1hdCh0ZW1wbGF0ZSwgZm10X2FyZ3MpOwotICAgICAgICBQeV9ERUNSRUYodGVtcGxhdGUpOwotICAgICAgICBQeV9ERUNSRUYoZm10X2FyZ3MpOworICAgICAgICBkaXNwbGF5X3N0ciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlUyA8LSAlUyAtPiAlU1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2a2V5LCBwdHItPmtleSwgbmV4dGtleSk7CiAgICAgICAgIGlmICghZGlzcGxheV9zdHIpIHsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgICAgIFB5T2JqZWN0X1ByaW50KGRpc3BsYXlfc3RyLCBzdGRvdXQsIFB5X1BSSU5UX1JBVyk7CiAgICAgICAgIFB5X0RFQ1JFRihkaXNwbGF5X3N0cik7CiAKLSAgICAgICAgUHlfREVDUkVGKHByZXZrZXkpOwotICAgICAgICBQeV9ERUNSRUYobmV4dGtleSk7Ci0KICAgICAgICAgcHRyID0gcHRyLT5uZXh0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3FsaXRlL2Nvbm5lY3Rpb24uYyBiL01vZHVsZXMvX3NxbGl0ZS9jb25uZWN0aW9uLmMKaW5kZXggOWQ0YzcyZi4uYmM0Y2U1MCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fc3FsaXRlL2Nvbm5lY3Rpb24uYworKysgYi9Nb2R1bGVzL19zcWxpdGUvY29ubmVjdGlvbi5jCkBAIC02NzEsNyArNjcxLDcgQEAKIHsKICAgICBQeU9iamVjdCogZnVuY3Rpb25fcmVzdWx0ID0gTlVMTDsKICAgICBQeU9iamVjdCoqIGFnZ3JlZ2F0ZV9pbnN0YW5jZTsKLSAgICBQeU9iamVjdCogYWdncmVnYXRlX2NsYXNzOworICAgIF9QeV9JREVOVElGSUVSKGZpbmFsaXplKTsKIAogI2lmZGVmIFdJVEhfVEhSRUFECiAgICAgUHlHSUxTdGF0ZV9TVEFURSB0aHJlYWRzdGF0ZTsKQEAgLTY3OSw4ICs2NzksNiBAQAogICAgIHRocmVhZHN0YXRlID0gUHlHSUxTdGF0ZV9FbnN1cmUoKTsKICNlbmRpZgogCi0gICAgYWdncmVnYXRlX2NsYXNzID0gKFB5T2JqZWN0KilzcWxpdGUzX3VzZXJfZGF0YShjb250ZXh0KTsKLQogICAgIGFnZ3JlZ2F0ZV9pbnN0YW5jZSA9IChQeU9iamVjdCoqKXNxbGl0ZTNfYWdncmVnYXRlX2NvbnRleHQoY29udGV4dCwgc2l6ZW9mKFB5T2JqZWN0KikpOwogICAgIGlmICghKmFnZ3JlZ2F0ZV9pbnN0YW5jZSkgewogICAgICAgICAvKiB0aGlzIGJyYW5jaCBpcyBleGVjdXRlZCBpZiB0aGVyZSB3YXMgYW4gZXhjZXB0aW9uIGluIHRoZSBhZ2dyZWdhdGUncwpAQCAtNjg5LDcgKzY4Nyw3IEBACiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQogCi0gICAgZnVuY3Rpb25fcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZCgqYWdncmVnYXRlX2luc3RhbmNlLCAiZmluYWxpemUiLCAiIik7CisgICAgZnVuY3Rpb25fcmVzdWx0ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZCgqYWdncmVnYXRlX2luc3RhbmNlLCAmUHlJZF9maW5hbGl6ZSwgIiIpOwogICAgIGlmICghZnVuY3Rpb25fcmVzdWx0KSB7CiAgICAgICAgIGlmIChfZW5hYmxlX2NhbGxiYWNrX3RyYWNlYmFja3MpIHsKICAgICAgICAgICAgIFB5RXJyX1ByaW50KCk7CkBAIC05MDUsNiArOTAzLDM4IEBACiAgICAgcmV0dXJuIHJjOwogfQogCitzdGF0aWMgdm9pZCBfdHJhY2VfY2FsbGJhY2sodm9pZCogdXNlcl9hcmcsIGNvbnN0IGNoYXIqIHN0YXRlbWVudF9zdHJpbmcpCit7CisgICAgUHlPYmplY3QgKnB5X3N0YXRlbWVudCA9IE5VTEw7CisgICAgUHlPYmplY3QgKnJldCA9IE5VTEw7CisKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIFB5R0lMU3RhdGVfU1RBVEUgZ2lsc3RhdGU7CisKKyAgICBnaWxzdGF0ZSA9IFB5R0lMU3RhdGVfRW5zdXJlKCk7CisjZW5kaWYKKyAgICBweV9zdGF0ZW1lbnQgPSBQeVVuaWNvZGVfRGVjb2RlVVRGOChzdGF0ZW1lbnRfc3RyaW5nLAorICAgICAgICAgICAgc3RybGVuKHN0YXRlbWVudF9zdHJpbmcpLCAicmVwbGFjZSIpOworICAgIGlmIChweV9zdGF0ZW1lbnQpIHsKKyAgICAgICAgcmV0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncygoUHlPYmplY3QqKXVzZXJfYXJnLCBweV9zdGF0ZW1lbnQsIE5VTEwpOworICAgICAgICBQeV9ERUNSRUYocHlfc3RhdGVtZW50KTsKKyAgICB9CisKKyAgICBpZiAocmV0KSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChfZW5hYmxlX2NhbGxiYWNrX3RyYWNlYmFja3MpIHsKKyAgICAgICAgICAgIFB5RXJyX1ByaW50KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICB9CisgICAgfQorCisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBQeUdJTFN0YXRlX1JlbGVhc2UoZ2lsc3RhdGUpOworI2VuZGlmCit9CisKIHN0YXRpYyBQeU9iamVjdCogcHlzcWxpdGVfY29ubmVjdGlvbl9zZXRfYXV0aG9yaXplcihweXNxbGl0ZV9Db25uZWN0aW9uKiBzZWxmLCBQeU9iamVjdCogYXJncywgUHlPYmplY3QqIGt3YXJncykKIHsKICAgICBQeU9iamVjdCogYXV0aG9yaXplcl9jYjsKQEAgLTk2NCw2ICs5OTQsMzQgQEAKICAgICByZXR1cm4gUHlfTm9uZTsKIH0KIAorc3RhdGljIFB5T2JqZWN0KiBweXNxbGl0ZV9jb25uZWN0aW9uX3NldF90cmFjZV9jYWxsYmFjayhweXNxbGl0ZV9Db25uZWN0aW9uKiBzZWxmLCBQeU9iamVjdCogYXJncywgUHlPYmplY3QqIGt3YXJncykKK3sKKyAgICBQeU9iamVjdCogdHJhY2VfY2FsbGJhY2s7CisKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ICJ0cmFjZV9jYWxsYmFjayIsIE5VTEwgfTsKKworICAgIGlmICghcHlzcWxpdGVfY2hlY2tfdGhyZWFkKHNlbGYpIHx8ICFweXNxbGl0ZV9jaGVja19jb25uZWN0aW9uKHNlbGYpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk86c2V0X3RyYWNlX2NhbGxiYWNrIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmdHJhY2VfY2FsbGJhY2spKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmICh0cmFjZV9jYWxsYmFjayA9PSBQeV9Ob25lKSB7CisgICAgICAgIC8qIE5vbmUgY2xlYXJzIHRoZSB0cmFjZSBjYWxsYmFjayBwcmV2aW91c2x5IHNldCAqLworICAgICAgICBzcWxpdGUzX3RyYWNlKHNlbGYtPmRiLCAwLCAodm9pZCopMCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtKHNlbGYtPmZ1bmN0aW9uX3BpbmJvYXJkLCB0cmFjZV9jYWxsYmFjaywgUHlfTm9uZSkgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgc3FsaXRlM190cmFjZShzZWxmLT5kYiwgX3RyYWNlX2NhbGxiYWNrLCB0cmFjZV9jYWxsYmFjayk7CisgICAgfQorCisgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgIHJldHVybiBQeV9Ob25lOworfQorCiAjaWZkZWYgSEFWRV9MT0FEX0VYVEVOU0lPTgogc3RhdGljIFB5T2JqZWN0KiBweXNxbGl0ZV9lbmFibGVfbG9hZF9leHRlbnNpb24ocHlzcWxpdGVfQ29ubmVjdGlvbiogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCiB7CkBAIC0xMTY5LDggKzEyMjcsOSBAQAogICAgIFB5T2JqZWN0KiBjdXJzb3IgPSAwOwogICAgIFB5T2JqZWN0KiByZXN1bHQgPSAwOwogICAgIFB5T2JqZWN0KiBtZXRob2QgPSAwOworICAgIF9QeV9JREVOVElGSUVSKGN1cnNvcik7CiAKLSAgICBjdXJzb3IgPSBQeU9iamVjdF9DYWxsTWV0aG9kKChQeU9iamVjdCopc2VsZiwgImN1cnNvciIsICIiKTsKKyAgICBjdXJzb3IgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKChQeU9iamVjdCopc2VsZiwgJlB5SWRfY3Vyc29yLCAiIik7CiAgICAgaWYgKCFjdXJzb3IpIHsKICAgICAgICAgZ290byBlcnJvcjsKICAgICB9CkBAIC0xMTk4LDggKzEyNTcsOSBAQAogICAgIFB5T2JqZWN0KiBjdXJzb3IgPSAwOwogICAgIFB5T2JqZWN0KiByZXN1bHQgPSAwOwogICAgIFB5T2JqZWN0KiBtZXRob2QgPSAwOworICAgIF9QeV9JREVOVElGSUVSKGN1cnNvcik7CiAKLSAgICBjdXJzb3IgPSBQeU9iamVjdF9DYWxsTWV0aG9kKChQeU9iamVjdCopc2VsZiwgImN1cnNvciIsICIiKTsKKyAgICBjdXJzb3IgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKChQeU9iamVjdCopc2VsZiwgJlB5SWRfY3Vyc29yLCAiIik7CiAgICAgaWYgKCFjdXJzb3IpIHsKICAgICAgICAgZ290byBlcnJvcjsKICAgICB9CkBAIC0xMjI3LDggKzEyODcsOSBAQAogICAgIFB5T2JqZWN0KiBjdXJzb3IgPSAwOwogICAgIFB5T2JqZWN0KiByZXN1bHQgPSAwOwogICAgIFB5T2JqZWN0KiBtZXRob2QgPSAwOworICAgIF9QeV9JREVOVElGSUVSKGN1cnNvcik7CiAKLSAgICBjdXJzb3IgPSBQeU9iamVjdF9DYWxsTWV0aG9kKChQeU9iamVjdCopc2VsZiwgImN1cnNvciIsICIiKTsKKyAgICBjdXJzb3IgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKChQeU9iamVjdCopc2VsZiwgJlB5SWRfY3Vyc29yLCAiIik7CiAgICAgaWYgKCFjdXJzb3IpIHsKICAgICAgICAgZ290byBlcnJvcjsKICAgICB9CkBAIC0xMzc1LDEwICsxNDM2LDEyIEBACiAgICAgUHlPYmplY3QqIHVwcGVyY2FzZV9uYW1lID0gMDsKICAgICBQeU9iamVjdCogbmFtZTsKICAgICBQeU9iamVjdCogcmV0dmFsOwotICAgIFB5X1VOSUNPREUqIGNoazsKICAgICBQeV9zc2l6ZV90IGksIGxlbjsKKyAgICBfUHlfSURFTlRJRklFUih1cHBlcik7CiAgICAgY2hhciAqdXBwZXJjYXNlX25hbWVfc3RyOwogICAgIGludCByYzsKKyAgICB1bnNpZ25lZCBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOwogCiAgICAgaWYgKCFweXNxbGl0ZV9jaGVja190aHJlYWQoc2VsZikgfHwgIXB5c3FsaXRlX2NoZWNrX2Nvbm5lY3Rpb24oc2VsZikpIHsKICAgICAgICAgZ290byBmaW5hbGx5OwpAQCAtMTM4OCwxNyArMTQ1MSwyMSBAQAogICAgICAgICBnb3RvIGZpbmFsbHk7CiAgICAgfQogCi0gICAgdXBwZXJjYXNlX25hbWUgPSBQeU9iamVjdF9DYWxsTWV0aG9kKG5hbWUsICJ1cHBlciIsICIiKTsKKyAgICB1cHBlcmNhc2VfbmFtZSA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQobmFtZSwgJlB5SWRfdXBwZXIsICIiKTsKICAgICBpZiAoIXVwcGVyY2FzZV9uYW1lKSB7CiAgICAgICAgIGdvdG8gZmluYWxseTsKICAgICB9CiAKLSAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUodXBwZXJjYXNlX25hbWUpOwotICAgIGNoayA9IFB5VW5pY29kZV9BU19VTklDT0RFKHVwcGVyY2FzZV9uYW1lKTsKLSAgICBmb3IgKGk9MDsgaTxsZW47IGkrKywgY2hrKyspIHsKLSAgICAgICAgaWYgKCgqY2hrID49ICcwJyAmJiAqY2hrIDw9ICc5JykKLSAgICAgICAgIHx8ICgqY2hrID49ICdBJyAmJiAqY2hrIDw9ICdaJykKLSAgICAgICAgIHx8ICgqY2hrID09ICdfJykpCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1cHBlcmNhc2VfbmFtZSkpCisgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1cHBlcmNhc2VfbmFtZSk7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHVwcGVyY2FzZV9uYW1lKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEodXBwZXJjYXNlX25hbWUpOworICAgIGZvciAoaT0wOyBpPGxlbjsgaSsrKSB7CisgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKKyAgICAgICAgaWYgKChjaCA+PSAnMCcgJiYgY2ggPD0gJzknKQorICAgICAgICAgfHwgKGNoID49ICdBJyAmJiBjaCA8PSAnWicpCisgICAgICAgICB8fCAoY2ggPT0gJ18nKSkKICAgICAgICAgewogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xNTE3LDYgKzE1ODQsOCBAQAogICAgICNlbmRpZgogICAgIHsic2V0X3Byb2dyZXNzX2hhbmRsZXIiLCAoUHlDRnVuY3Rpb24pcHlzcWxpdGVfY29ubmVjdGlvbl9zZXRfcHJvZ3Jlc3NfaGFuZGxlciwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCiAgICAgICAgIFB5RG9jX1NUUigiU2V0cyBwcm9ncmVzcyBoYW5kbGVyIGNhbGxiYWNrLiBOb24tc3RhbmRhcmQuIil9LAorICAgIHsic2V0X3RyYWNlX2NhbGxiYWNrIiwgKFB5Q0Z1bmN0aW9uKXB5c3FsaXRlX2Nvbm5lY3Rpb25fc2V0X3RyYWNlX2NhbGxiYWNrLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywKKyAgICAgICAgUHlEb2NfU1RSKCJTZXRzIGEgdHJhY2UgY2FsbGJhY2sgY2FsbGVkIGZvciBlYWNoIFNRTCBzdGF0ZW1lbnQgKHBhc3NlZCBhcyB1bmljb2RlKS4gTm9uLXN0YW5kYXJkLiIpfSwKICAgICB7ImV4ZWN1dGUiLCAoUHlDRnVuY3Rpb24pcHlzcWxpdGVfY29ubmVjdGlvbl9leGVjdXRlLCBNRVRIX1ZBUkFSR1MsCiAgICAgICAgIFB5RG9jX1NUUigiRXhlY3V0ZXMgYSBTUUwgc3RhdGVtZW50LiBOb24tc3RhbmRhcmQuIil9LAogICAgIHsiZXhlY3V0ZW1hbnkiLCAoUHlDRnVuY3Rpb24pcHlzcWxpdGVfY29ubmVjdGlvbl9leGVjdXRlbWFueSwgTUVUSF9WQVJBUkdTLApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3FsaXRlL2Nvbm5lY3Rpb24uaCBiL01vZHVsZXMvX3NxbGl0ZS9jb25uZWN0aW9uLmgKaW5kZXggYzhlMmY3Yy4uMGM5NzM0YyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fc3FsaXRlL2Nvbm5lY3Rpb24uaAorKysgYi9Nb2R1bGVzL19zcWxpdGUvY29ubmVjdGlvbi5oCkBAIC04Myw4ICs4Myw3IEBACiAKICAgICAvKiBEZXRlcm1pbmVzIGhvdyBieXRlc3RyaW5ncyBmcm9tIFNRTGl0ZSBhcmUgY29udmVydGVkIHRvIFB5dGhvbiBvYmplY3RzOgogICAgICAqIC0gUHlVbmljb2RlX1R5cGU6ICAgICAgICBQeXRob24gVW5pY29kZSBvYmplY3RzIGFyZSBjb25zdHJ1Y3RlZCBmcm9tIFVURi04IGJ5dGVzdHJpbmdzCi0gICAgICogLSBPcHRpbWl6ZWRVbmljb2RlOiAgICAgIExpa2UgYmVmb3JlLCBidXQgZm9yIEFTQ0lJIGRhdGEsIG9ubHkgUHlTdHJpbmdzIGFyZSBjcmVhdGVkLgotICAgICAqIC0gUHlCeXRlc19UeXBlOiAgICAgICAgIFB5U3RyaW5ncyBhcmUgY3JlYXRlZCBhcy1pcy4KKyAgICAgKiAtIFB5Qnl0ZXNfVHlwZTogICAgICAgICAgVGhlIGJ5dGVzdHJpbmdzIGFyZSByZXR1cm5lZCBhcy1pcy4KICAgICAgKiAtIEFueSBjdXN0b20gY2FsbGFibGU6ICAgQW55IG9iamVjdCByZXR1cm5lZCBmcm9tIHRoZSBjYWxsYWJsZSBjYWxsZWQgd2l0aCB0aGUgYnl0ZXN0cmluZwogICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICBhcyBzaW5nbGUgcGFyYW1ldGVyLgogICAgICAqLwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3FsaXRlL2N1cnNvci5jIGIvTW9kdWxlcy9fc3FsaXRlL2N1cnNvci5jCmluZGV4IDg2ZmJkNGUuLjhhNTZkM2MgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NxbGl0ZS9jdXJzb3IuYworKysgYi9Nb2R1bGVzL19zcWxpdGUvY3Vyc29yLmMKQEAgLTEyNiwxMSArMTI2LDkgQEAKIAogc3RhdGljIHZvaWQgcHlzcWxpdGVfY3Vyc29yX2RlYWxsb2MocHlzcWxpdGVfQ3Vyc29yKiBzZWxmKQogewotICAgIGludCByYzsKLQogICAgIC8qIFJlc2V0IHRoZSBzdGF0ZW1lbnQgaWYgdGhlIHVzZXIgaGFzIG5vdCBjbG9zZWQgdGhlIGN1cnNvciAqLwogICAgIGlmIChzZWxmLT5zdGF0ZW1lbnQpIHsKLSAgICAgICAgcmMgPSBweXNxbGl0ZV9zdGF0ZW1lbnRfcmVzZXQoc2VsZi0+c3RhdGVtZW50KTsKKyAgICAgICAgcHlzcWxpdGVfc3RhdGVtZW50X3Jlc2V0KHNlbGYtPnN0YXRlbWVudCk7CiAgICAgICAgIFB5X0RFQ1JFRihzZWxmLT5zdGF0ZW1lbnQpOwogICAgIH0KIApAQCAtMTUyLDggKzE1MCw5IEBACiB7CiAgICAgUHlPYmplY3QqIHVwY2FzZV9rZXk7CiAgICAgUHlPYmplY3QqIHJldHZhbDsKKyAgICBfUHlfSURFTlRJRklFUih1cHBlcik7CiAKLSAgICB1cGNhc2Vfa2V5ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChrZXksICJ1cHBlciIsICIiKTsKKyAgICB1cGNhc2Vfa2V5ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChrZXksICZQeUlkX3VwcGVyLCAiIik7CiAgICAgaWYgKCF1cGNhc2Vfa2V5KSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTI2OCwxMSArMjY3LDYgQEAKICAgICB9CiB9CiAKLVB5T2JqZWN0KiBweXNxbGl0ZV91bmljb2RlX2Zyb21fc3RyaW5nKGNvbnN0IGNoYXIqIHZhbF9zdHIsIFB5X3NzaXplX3Qgc2l6ZSwgaW50IG9wdGltaXplKQotewotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUodmFsX3N0ciwgc2l6ZSk7Ci19Ci0KIC8qCiAgKiBSZXR1cm5zIGEgcm93IGZyb20gdGhlIGN1cnJlbnRseSBhY3RpdmUgU1FMaXRlIHN0YXRlbWVudAogICoKQEAgLTM1NiwxMiArMzUwLDggQEAKICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29sdHlwZSA9PSBTUUxJVEVfVEVYVCkgewogICAgICAgICAgICAgICAgIHZhbF9zdHIgPSAoY29uc3QgY2hhciopc3FsaXRlM19jb2x1bW5fdGV4dChzZWxmLT5zdGF0ZW1lbnQtPnN0LCBpKTsKICAgICAgICAgICAgICAgICBuYnl0ZXMgPSBzcWxpdGUzX2NvbHVtbl9ieXRlcyhzZWxmLT5zdGF0ZW1lbnQtPnN0LCBpKTsKLSAgICAgICAgICAgICAgICBpZiAoKHNlbGYtPmNvbm5lY3Rpb24tPnRleHRfZmFjdG9yeSA9PSAoUHlPYmplY3QqKSZQeVVuaWNvZGVfVHlwZSkKLSAgICAgICAgICAgICAgICAgICAgfHwgKHNlbGYtPmNvbm5lY3Rpb24tPnRleHRfZmFjdG9yeSA9PSBweXNxbGl0ZV9PcHRpbWl6ZWRVbmljb2RlKSkgewotCi0gICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCA9IHB5c3FsaXRlX3VuaWNvZGVfZnJvbV9zdHJpbmcodmFsX3N0ciwgbmJ5dGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+Y29ubmVjdGlvbi0+dGV4dF9mYWN0b3J5ID09IHB5c3FsaXRlX09wdGltaXplZFVuaWNvZGUgPyAxIDogMCk7Ci0KKyAgICAgICAgICAgICAgICBpZiAoc2VsZi0+Y29ubmVjdGlvbi0+dGV4dF9mYWN0b3J5ID09IChQeU9iamVjdCopJlB5VW5pY29kZV9UeXBlKSB7CisgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRlZCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZSh2YWxfc3RyLCBuYnl0ZXMpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnZlcnRlZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY29sbmFtZSA9IHNxbGl0ZTNfY29sdW1uX25hbWUoc2VsZi0+c3RhdGVtZW50LT5zdCwgaSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbG5hbWUpIHsKQEAgLTQ2MCw3ICs0NTAsNiBAQAogICAgIGludCBzdGF0ZW1lbnRfdHlwZTsKICAgICBQeU9iamVjdCogZGVzY3JpcHRvcjsKICAgICBQeU9iamVjdCogc2Vjb25kX2FyZ3VtZW50ID0gTlVMTDsKLSAgICBpbnQgYWxsb3dfOGJpdF9jaGFyczsKIAogICAgIGlmICghY2hlY2tfY3Vyc29yKHNlbGYpKSB7CiAgICAgICAgIGdvdG8gZXJyb3I7CkBAIC00NjksMTAgKzQ1OCw2IEBACiAgICAgc2VsZi0+bG9ja2VkID0gMTsKICAgICBzZWxmLT5yZXNldCA9IDA7CiAKLSAgICAvKiBNYWtlIHNob290aW5nIHlvdXJzZWxmIGluIHRoZSBmb290IHdpdGggbm90IHV0Zi04IGRlY29kYWJsZSA4LWJpdC1zdHJpbmdzIGhhcmRlciAqLwotICAgIGFsbG93XzhiaXRfY2hhcnMgPSAoKHNlbGYtPmNvbm5lY3Rpb24tPnRleHRfZmFjdG9yeSAhPSAoUHlPYmplY3QqKSZQeVVuaWNvZGVfVHlwZSkgJiYKLSAgICAgICAgKHNlbGYtPmNvbm5lY3Rpb24tPnRleHRfZmFjdG9yeSAhPSBweXNxbGl0ZV9PcHRpbWl6ZWRVbmljb2RlKSk7Ci0KICAgICBQeV9YREVDUkVGKHNlbGYtPm5leHRfcm93KTsKICAgICBzZWxmLT5uZXh0X3JvdyA9IE5VTEw7CiAKQEAgLTUzNiw3ICs1MjEsNyBAQAogCiAgICAgaWYgKHNlbGYtPnN0YXRlbWVudCAhPSBOVUxMKSB7CiAgICAgICAgIC8qIFRoZXJlIGlzIGFuIGFjdGl2ZSBzdGF0ZW1lbnQgKi8KLSAgICAgICAgcmMgPSBweXNxbGl0ZV9zdGF0ZW1lbnRfcmVzZXQoc2VsZi0+c3RhdGVtZW50KTsKKyAgICAgICAgcHlzcWxpdGVfc3RhdGVtZW50X3Jlc2V0KHNlbGYtPnN0YXRlbWVudCk7CiAgICAgfQogCiAgICAgb3BlcmF0aW9uX2NzdHIgPSBfUHlVbmljb2RlX0FzU3RyaW5nQW5kU2l6ZShvcGVyYXRpb24sICZvcGVyYXRpb25fbGVuKTsKQEAgLTYzMSw3ICs2MTYsNyBAQAogCiAgICAgICAgIHB5c3FsaXRlX3N0YXRlbWVudF9tYXJrX2RpcnR5KHNlbGYtPnN0YXRlbWVudCk7CiAKLSAgICAgICAgcHlzcWxpdGVfc3RhdGVtZW50X2JpbmRfcGFyYW1ldGVycyhzZWxmLT5zdGF0ZW1lbnQsIHBhcmFtZXRlcnMsIGFsbG93XzhiaXRfY2hhcnMpOworICAgICAgICBweXNxbGl0ZV9zdGF0ZW1lbnRfYmluZF9wYXJhbWV0ZXJzKHNlbGYtPnN0YXRlbWVudCwgcGFyYW1ldGVycyk7CiAgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKSB7CiAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICB9CkBAIC03NDEsNyArNzI2LDcgQEAKICAgICAgICAgfQogCiAgICAgICAgIGlmIChtdWx0aXBsZSkgewotICAgICAgICAgICAgcmMgPSBweXNxbGl0ZV9zdGF0ZW1lbnRfcmVzZXQoc2VsZi0+c3RhdGVtZW50KTsKKyAgICAgICAgICAgIHB5c3FsaXRlX3N0YXRlbWVudF9yZXNldChzZWxmLT5zdGF0ZW1lbnQpOwogICAgICAgICB9CiAgICAgICAgIFB5X1hERUNSRUYocGFyYW1ldGVycyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3FsaXRlL21pY3JvcHJvdG9jb2xzLmMgYi9Nb2R1bGVzL19zcWxpdGUvbWljcm9wcm90b2NvbHMuYwppbmRleCBjNzMwYWZhLi4yMjYxYjgwIDEwMDY0NAotLS0gYS9Nb2R1bGVzL19zcWxpdGUvbWljcm9wcm90b2NvbHMuYworKysgYi9Nb2R1bGVzL19zcWxpdGUvbWljcm9wcm90b2NvbHMuYwpAQCAtOTUsNyArOTUsOSBAQAogCiAgICAgLyogdHJ5IHRvIGhhdmUgdGhlIHByb3RvY29sIGFkYXB0IHRoaXMgb2JqZWN0Ki8KICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhwcm90bywgIl9fYWRhcHRfXyIpKSB7Ci0gICAgICAgIFB5T2JqZWN0ICphZGFwdGVkID0gUHlPYmplY3RfQ2FsbE1ldGhvZChwcm90bywgIl9fYWRhcHRfXyIsICJPIiwgb2JqKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoX19hZGFwdF9fKTsKKyAgICAgICAgUHlPYmplY3QgKmFkYXB0ZWQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHByb3RvLCAmUHlJZF9fX2FkYXB0X18sICJPIiwgb2JqKTsKKwogICAgICAgICBpZiAoYWRhcHRlZCkgewogICAgICAgICAgICAgaWYgKGFkYXB0ZWQgIT0gUHlfTm9uZSkgewogICAgICAgICAgICAgICAgIHJldHVybiBhZGFwdGVkOwpAQCAtMTEwLDcgKzExMiw5IEBACiAKICAgICAvKiBhbmQgZmluYWxseSB0cnkgdG8gaGF2ZSB0aGUgb2JqZWN0IGFkYXB0IGl0c2VsZiAqLwogICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgIl9fY29uZm9ybV9fIikpIHsKLSAgICAgICAgUHlPYmplY3QgKmFkYXB0ZWQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKG9iaiwgIl9fY29uZm9ybV9fIiwiTyIsIHByb3RvKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoX19jb25mb3JtX18pOworICAgICAgICBQeU9iamVjdCAqYWRhcHRlZCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQob2JqLCAmUHlJZF9fX2NvbmZvcm1fXywiTyIsIHByb3RvKTsKKwogICAgICAgICBpZiAoYWRhcHRlZCkgewogICAgICAgICAgICAgaWYgKGFkYXB0ZWQgIT0gUHlfTm9uZSkgewogICAgICAgICAgICAgICAgIHJldHVybiBhZGFwdGVkOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3FsaXRlL21vZHVsZS5jIGIvTW9kdWxlcy9fc3FsaXRlL21vZHVsZS5jCmluZGV4IGNiYzNiOGUuLmJlYTZkNmEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NxbGl0ZS9tb2R1bGUuYworKysgYi9Nb2R1bGVzL19zcWxpdGUvbW9kdWxlLmMKQEAgLTM3LDcgKzM3LDcgQEAKIAogUHlPYmplY3QqIHB5c3FsaXRlX0Vycm9yLCAqcHlzcWxpdGVfV2FybmluZywgKnB5c3FsaXRlX0ludGVyZmFjZUVycm9yLCAqcHlzcWxpdGVfRGF0YWJhc2VFcnJvciwKICAgICAqcHlzcWxpdGVfSW50ZXJuYWxFcnJvciwgKnB5c3FsaXRlX09wZXJhdGlvbmFsRXJyb3IsICpweXNxbGl0ZV9Qcm9ncmFtbWluZ0Vycm9yLAotICAgICpweXNxbGl0ZV9JbnRlZ3JpdHlFcnJvciwgKnB5c3FsaXRlX0RhdGFFcnJvciwgKnB5c3FsaXRlX05vdFN1cHBvcnRlZEVycm9yLCAqcHlzcWxpdGVfT3B0aW1pemVkVW5pY29kZTsKKyAgICAqcHlzcWxpdGVfSW50ZWdyaXR5RXJyb3IsICpweXNxbGl0ZV9EYXRhRXJyb3IsICpweXNxbGl0ZV9Ob3RTdXBwb3J0ZWRFcnJvcjsKIAogUHlPYmplY3QqIGNvbnZlcnRlcnM7CiBpbnQgX2VuYWJsZV9jYWxsYmFja190cmFjZWJhY2tzOwpAQCAtMTc5LDEzICsxNzksMTQgQEAKICAgICBQeU9iamVjdCogbmFtZSA9IE5VTEw7CiAgICAgUHlPYmplY3QqIGNhbGxhYmxlOwogICAgIFB5T2JqZWN0KiByZXR2YWwgPSBOVUxMOworICAgIF9QeV9JREVOVElGSUVSKHVwcGVyKTsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVU8iLCAmb3JpZ19uYW1lLCAmY2FsbGFibGUpKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAogICAgIC8qIGNvbnZlcnQgdGhlIG5hbWUgdG8gdXBwZXIgY2FzZSAqLwotICAgIG5hbWUgPSBQeU9iamVjdF9DYWxsTWV0aG9kKG9yaWdfbmFtZSwgInVwcGVyIiwgIiIpOworICAgIG5hbWUgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKG9yaWdfbmFtZSwgJlB5SWRfdXBwZXIsICIiKTsKICAgICBpZiAoIW5hbWUpIHsKICAgICAgICAgZ290byBlcnJvcjsKICAgICB9CkBAIC00MDYsMTMgKzQwNywxMyBAQAogICAgIH0KICAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhkaWN0LCAiTm90U3VwcG9ydGVkRXJyb3IiLCBweXNxbGl0ZV9Ob3RTdXBwb3J0ZWRFcnJvcik7CiAKLSAgICAvKiBXZSBqdXN0IG5lZWQgInNvbWV0aGluZyIgdW5pcXVlIGZvciBweXNxbGl0ZV9PcHRpbWl6ZWRVbmljb2RlLiBJdCBkb2VzIG5vdCByZWFsbHkKLSAgICAgKiBuZWVkIHRvIGJlIGEgc3RyaW5nIHN1YmNsYXNzLiBKdXN0IGFueXRoaW5nIHRoYXQgY2FuIGFjdCBhcyBhIHNwZWNpYWwKLSAgICAgKiBtYXJrZXIgZm9yIHVzLiBTbyBJIHB1bGxlZCBQeUNlbGxfVHlwZSBvdXQgb2YgbXkgbWFnaWMgaGF0LgotICAgICAqLwotICAgIFB5X0lOQ1JFRigoUHlPYmplY3QqKSZQeUNlbGxfVHlwZSk7Ci0gICAgcHlzcWxpdGVfT3B0aW1pemVkVW5pY29kZSA9IChQeU9iamVjdCopJlB5Q2VsbF9UeXBlOwotICAgIFB5RGljdF9TZXRJdGVtU3RyaW5nKGRpY3QsICJPcHRpbWl6ZWRVbmljb2RlIiwgcHlzcWxpdGVfT3B0aW1pemVkVW5pY29kZSk7CisgICAgLyogSW4gUHl0aG9uIDIueCwgc2V0dGluZyBDb25uZWN0aW9uLnRleHRfZmFjdG9yeSB0bworICAgICAgIE9wdGltaXplZFVuaWNvZGUgY2F1c2VkIFVuaWNvZGUgb2JqZWN0cyB0byBiZSByZXR1cm5lZCBmb3IKKyAgICAgICBub24tQVNDSUkgZGF0YSBhbmQgYnl0ZXN0cmluZ3MgdG8gYmUgcmV0dXJuZWQgZm9yIEFTQ0lJIGRhdGEuCisgICAgICAgTm93IE9wdGltaXplZFVuaWNvZGUgaXMgYW4gYWxpYXMgZm9yIHN0ciwgc28gaXQgaGFzIG5vCisgICAgICAgZWZmZWN0LiAqLworICAgIFB5X0lOQ1JFRigoUHlPYmplY3QqKSZQeVVuaWNvZGVfVHlwZSk7CisgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZGljdCwgIk9wdGltaXplZFVuaWNvZGUiLCAoUHlPYmplY3QqKSZQeVVuaWNvZGVfVHlwZSk7CiAKICAgICAvKiBTZXQgaW50ZWdlciBjb25zdGFudHMgKi8KICAgICBmb3IgKGkgPSAwOyBfaW50X2NvbnN0YW50c1tpXS5jb25zdGFudF9uYW1lICE9IDA7IGkrKykgewpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3FsaXRlL21vZHVsZS5oIGIvTW9kdWxlcy9fc3FsaXRlL21vZHVsZS5oCmluZGV4IDBlZGRiNjcuLmI1MTcyNGIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NxbGl0ZS9tb2R1bGUuaAorKysgYi9Nb2R1bGVzL19zcWxpdGUvbW9kdWxlLmgKQEAgLTM4LDggKzM4LDYgQEAKIGV4dGVybiBQeU9iamVjdCogcHlzcWxpdGVfRGF0YUVycm9yOwogZXh0ZXJuIFB5T2JqZWN0KiBweXNxbGl0ZV9Ob3RTdXBwb3J0ZWRFcnJvcjsKIAotZXh0ZXJuIFB5T2JqZWN0KiBweXNxbGl0ZV9PcHRpbWl6ZWRVbmljb2RlOwotCiAvKiB0aGUgZnVuY3Rpb25zIHRpbWUudGltZSgpIGFuZCB0aW1lLnNsZWVwKCkgKi8KIGV4dGVybiBQeU9iamVjdCogdGltZV90aW1lOwogZXh0ZXJuIFB5T2JqZWN0KiB0aW1lX3NsZWVwOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3FsaXRlL3Jvdy5jIGIvTW9kdWxlcy9fc3FsaXRlL3Jvdy5jCmluZGV4IDNkNDQwOTQuLmI1MDY1OGMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NxbGl0ZS9yb3cuYworKysgYi9Nb2R1bGVzL19zcWxpdGUvcm93LmMKQEAgLTE3MywxMCArMTczLDkgQEAKIAogc3RhdGljIFB5T2JqZWN0KiBweXNxbGl0ZV9yb3dfcmljaGNvbXBhcmUocHlzcWxpdGVfUm93ICpzZWxmLCBQeU9iamVjdCAqX290aGVyLCBpbnQgb3BpZCkKIHsKLSAgICBpZiAob3BpZCAhPSBQeV9FUSAmJiBvcGlkICE9IFB5X05FKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKLSAgICB9CisgICAgaWYgKG9waWQgIT0gUHlfRVEgJiYgb3BpZCAhPSBQeV9ORSkKKyAgICAgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOworCiAgICAgaWYgKFB5VHlwZV9Jc1N1YnR5cGUoUHlfVFlQRShfb3RoZXIpLCAmcHlzcWxpdGVfUm93VHlwZSkpIHsKICAgICAgICAgcHlzcWxpdGVfUm93ICpvdGhlciA9IChweXNxbGl0ZV9Sb3cgKilfb3RoZXI7CiAgICAgICAgIFB5T2JqZWN0ICpyZXMgPSBQeU9iamVjdF9SaWNoQ29tcGFyZShzZWxmLT5kZXNjcmlwdGlvbiwgb3RoZXItPmRlc2NyaXB0aW9uLCBvcGlkKTsKQEAgLTE4Niw4ICsxODUsNyBAQAogICAgICAgICAgICAgcmV0dXJuIFB5T2JqZWN0X1JpY2hDb21wYXJlKHNlbGYtPmRhdGEsIG90aGVyLT5kYXRhLCBvcGlkKTsKICAgICAgICAgfQogICAgIH0KLSAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKKyAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiB9CiAKIFB5TWFwcGluZ01ldGhvZHMgcHlzcWxpdGVfcm93X2FzX21hcHBpbmcgPSB7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19zcWxpdGUvc3RhdGVtZW50LmMgYi9Nb2R1bGVzL19zcWxpdGUvc3RhdGVtZW50LmMKaW5kZXggODBiY2MzOC4uOTg4NDg2MCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fc3FsaXRlL3N0YXRlbWVudC5jCisrKyBiL01vZHVsZXMvX3NxbGl0ZS9zdGF0ZW1lbnQuYwpAQCAtODcsNyArODcsNyBAQAogICAgIHJldHVybiByYzsKIH0KIAotaW50IHB5c3FsaXRlX3N0YXRlbWVudF9iaW5kX3BhcmFtZXRlcihweXNxbGl0ZV9TdGF0ZW1lbnQqIHNlbGYsIGludCBwb3MsIFB5T2JqZWN0KiBwYXJhbWV0ZXIsIGludCBhbGxvd184Yml0X2NoYXJzKQoraW50IHB5c3FsaXRlX3N0YXRlbWVudF9iaW5kX3BhcmFtZXRlcihweXNxbGl0ZV9TdGF0ZW1lbnQqIHNlbGYsIGludCBwb3MsIFB5T2JqZWN0KiBwYXJhbWV0ZXIpCiB7CiAgICAgaW50IHJjID0gU1FMSVRFX09LOwogICAgIFBZX0xPTkdfTE9ORyBsb25nbG9uZ3ZhbDsKQEAgLTE2Niw3ICsxNjYsNyBAQAogICAgIH0KIH0KIAotdm9pZCBweXNxbGl0ZV9zdGF0ZW1lbnRfYmluZF9wYXJhbWV0ZXJzKHB5c3FsaXRlX1N0YXRlbWVudCogc2VsZiwgUHlPYmplY3QqIHBhcmFtZXRlcnMsIGludCBhbGxvd184Yml0X2NoYXJzKQordm9pZCBweXNxbGl0ZV9zdGF0ZW1lbnRfYmluZF9wYXJhbWV0ZXJzKHB5c3FsaXRlX1N0YXRlbWVudCogc2VsZiwgUHlPYmplY3QqIHBhcmFtZXRlcnMpCiB7CiAgICAgUHlPYmplY3QqIGN1cnJlbnRfcGFyYW07CiAgICAgUHlPYmplY3QqIGFkYXB0ZWQ7CkBAIC0yMjAsNyArMjIwLDcgQEAKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIHJjID0gcHlzcWxpdGVfc3RhdGVtZW50X2JpbmRfcGFyYW1ldGVyKHNlbGYsIGkgKyAxLCBhZGFwdGVkLCBhbGxvd184Yml0X2NoYXJzKTsKKyAgICAgICAgICAgIHJjID0gcHlzcWxpdGVfc3RhdGVtZW50X2JpbmRfcGFyYW1ldGVyKHNlbGYsIGkgKyAxLCBhZGFwdGVkKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRihhZGFwdGVkKTsKIAogICAgICAgICAgICAgaWYgKHJjICE9IFNRTElURV9PSykgewpAQCAtMjY1LDcgKzI2NSw3IEBACiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICByYyA9IHB5c3FsaXRlX3N0YXRlbWVudF9iaW5kX3BhcmFtZXRlcihzZWxmLCBpLCBhZGFwdGVkLCBhbGxvd184Yml0X2NoYXJzKTsKKyAgICAgICAgICAgIHJjID0gcHlzcWxpdGVfc3RhdGVtZW50X2JpbmRfcGFyYW1ldGVyKHNlbGYsIGksIGFkYXB0ZWQpOwogICAgICAgICAgICAgUHlfREVDUkVGKGFkYXB0ZWQpOwogCiAgICAgICAgICAgICBpZiAocmMgIT0gU1FMSVRFX09LKSB7CkBAIC0zNjksMTEgKzM2OSw5IEBACiAKIHZvaWQgcHlzcWxpdGVfc3RhdGVtZW50X2RlYWxsb2MocHlzcWxpdGVfU3RhdGVtZW50KiBzZWxmKQogewotICAgIGludCByYzsKLQogICAgIGlmIChzZWxmLT5zdCkgewogICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgIHJjID0gc3FsaXRlM19maW5hbGl6ZShzZWxmLT5zdCk7CisgICAgICAgIHNxbGl0ZTNfZmluYWxpemUoc2VsZi0+c3QpOwogICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3FsaXRlL3N0YXRlbWVudC5oIGIvTW9kdWxlcy9fc3FsaXRlL3N0YXRlbWVudC5oCmluZGV4IGU1ZGE0MmUuLjQ2ODE0NDMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NxbGl0ZS9zdGF0ZW1lbnQuaAorKysgYi9Nb2R1bGVzL19zcWxpdGUvc3RhdGVtZW50LmgKQEAgLTQ2LDggKzQ2LDggQEAKIGludCBweXNxbGl0ZV9zdGF0ZW1lbnRfY3JlYXRlKHB5c3FsaXRlX1N0YXRlbWVudCogc2VsZiwgcHlzcWxpdGVfQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgUHlPYmplY3QqIHNxbCk7CiB2b2lkIHB5c3FsaXRlX3N0YXRlbWVudF9kZWFsbG9jKHB5c3FsaXRlX1N0YXRlbWVudCogc2VsZik7CiAKLWludCBweXNxbGl0ZV9zdGF0ZW1lbnRfYmluZF9wYXJhbWV0ZXIocHlzcWxpdGVfU3RhdGVtZW50KiBzZWxmLCBpbnQgcG9zLCBQeU9iamVjdCogcGFyYW1ldGVyLCBpbnQgYWxsb3dfOGJpdF9jaGFycyk7Ci12b2lkIHB5c3FsaXRlX3N0YXRlbWVudF9iaW5kX3BhcmFtZXRlcnMocHlzcWxpdGVfU3RhdGVtZW50KiBzZWxmLCBQeU9iamVjdCogcGFyYW1ldGVycywgaW50IGFsbG93XzhiaXRfY2hhcnMpOworaW50IHB5c3FsaXRlX3N0YXRlbWVudF9iaW5kX3BhcmFtZXRlcihweXNxbGl0ZV9TdGF0ZW1lbnQqIHNlbGYsIGludCBwb3MsIFB5T2JqZWN0KiBwYXJhbWV0ZXIpOwordm9pZCBweXNxbGl0ZV9zdGF0ZW1lbnRfYmluZF9wYXJhbWV0ZXJzKHB5c3FsaXRlX1N0YXRlbWVudCogc2VsZiwgUHlPYmplY3QqIHBhcmFtZXRlcnMpOwogCiBpbnQgcHlzcWxpdGVfc3RhdGVtZW50X3JlY29tcGlsZShweXNxbGl0ZV9TdGF0ZW1lbnQqIHNlbGYsIFB5T2JqZWN0KiBwYXJhbWV0ZXJzKTsKIGludCBweXNxbGl0ZV9zdGF0ZW1lbnRfZmluYWxpemUocHlzcWxpdGVfU3RhdGVtZW50KiBzZWxmKTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3NyZS5jIGIvTW9kdWxlcy9fc3JlLmMKaW5kZXggNDcyYjVhMy4uY2IxZjc5MSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fc3JlLmMKKysrIGIvTW9kdWxlcy9fc3JlLmMKQEAgLTE2MywyMSArMTYzLDE3IEBACiAKIC8qIHVuaWNvZGUtc3BlY2lmaWMgY2hhcmFjdGVyIHByZWRpY2F0ZXMgKi8KIAotI2lmIGRlZmluZWQoSEFWRV9VTklDT0RFKQotCi0jZGVmaW5lIFNSRV9VTklfSVNfRElHSVQoY2gpIFB5X1VOSUNPREVfSVNERUNJTUFMKChQeV9VTklDT0RFKShjaCkpCi0jZGVmaW5lIFNSRV9VTklfSVNfU1BBQ0UoY2gpIFB5X1VOSUNPREVfSVNTUEFDRSgoUHlfVU5JQ09ERSkoY2gpKQotI2RlZmluZSBTUkVfVU5JX0lTX0xJTkVCUkVBSyhjaCkgUHlfVU5JQ09ERV9JU0xJTkVCUkVBSygoUHlfVU5JQ09ERSkoY2gpKQotI2RlZmluZSBTUkVfVU5JX0lTX0FMTlVNKGNoKSBQeV9VTklDT0RFX0lTQUxOVU0oKFB5X1VOSUNPREUpKGNoKSkKLSNkZWZpbmUgU1JFX1VOSV9JU19XT1JEKGNoKSAoU1JFX1VOSV9JU19BTE5VTSgoY2gpKSB8fCAoY2gpID09ICdfJykKKyNkZWZpbmUgU1JFX1VOSV9JU19ESUdJVChjaCkgUHlfVU5JQ09ERV9JU0RFQ0lNQUwoY2gpCisjZGVmaW5lIFNSRV9VTklfSVNfU1BBQ0UoY2gpIFB5X1VOSUNPREVfSVNTUEFDRShjaCkKKyNkZWZpbmUgU1JFX1VOSV9JU19MSU5FQlJFQUsoY2gpIFB5X1VOSUNPREVfSVNMSU5FQlJFQUsoY2gpCisjZGVmaW5lIFNSRV9VTklfSVNfQUxOVU0oY2gpIFB5X1VOSUNPREVfSVNBTE5VTShjaCkKKyNkZWZpbmUgU1JFX1VOSV9JU19XT1JEKGNoKSAoU1JFX1VOSV9JU19BTE5VTShjaCkgfHwgKGNoKSA9PSAnXycpCiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgc3JlX2xvd2VyX3VuaWNvZGUodW5zaWduZWQgaW50IGNoKQogewotICAgIHJldHVybiAodW5zaWduZWQgaW50KSBQeV9VTklDT0RFX1RPTE9XRVIoKFB5X1VOSUNPREUpKGNoKSk7CisgICAgcmV0dXJuICh1bnNpZ25lZCBpbnQpIFB5X1VOSUNPREVfVE9MT1dFUihjaCk7CiB9CiAKLSNlbmRpZgotCiBMT0NBTChpbnQpCiBzcmVfY2F0ZWdvcnkoU1JFX0NPREUgY2F0ZWdvcnksIHVuc2lnbmVkIGludCBjaCkKIHsKQEAgLTIwNSw3ICsyMDEsNiBAQAogICAgIGNhc2UgU1JFX0NBVEVHT1JZX0xPQ19OT1RfV09SRDoKICAgICAgICAgcmV0dXJuICFTUkVfTE9DX0lTX1dPUkQoY2gpOwogCi0jaWYgZGVmaW5lZChIQVZFX1VOSUNPREUpCiAgICAgY2FzZSBTUkVfQ0FURUdPUllfVU5JX0RJR0lUOgogICAgICAgICByZXR1cm4gU1JFX1VOSV9JU19ESUdJVChjaCk7CiAgICAgY2FzZSBTUkVfQ0FURUdPUllfVU5JX05PVF9ESUdJVDoKQEAgLTIyMiwyNCArMjE3LDYgQEAKICAgICAgICAgcmV0dXJuIFNSRV9VTklfSVNfTElORUJSRUFLKGNoKTsKICAgICBjYXNlIFNSRV9DQVRFR09SWV9VTklfTk9UX0xJTkVCUkVBSzoKICAgICAgICAgcmV0dXJuICFTUkVfVU5JX0lTX0xJTkVCUkVBSyhjaCk7Ci0jZWxzZQotICAgIGNhc2UgU1JFX0NBVEVHT1JZX1VOSV9ESUdJVDoKLSAgICAgICAgcmV0dXJuIFNSRV9JU19ESUdJVChjaCk7Ci0gICAgY2FzZSBTUkVfQ0FURUdPUllfVU5JX05PVF9ESUdJVDoKLSAgICAgICAgcmV0dXJuICFTUkVfSVNfRElHSVQoY2gpOwotICAgIGNhc2UgU1JFX0NBVEVHT1JZX1VOSV9TUEFDRToKLSAgICAgICAgcmV0dXJuIFNSRV9JU19TUEFDRShjaCk7Ci0gICAgY2FzZSBTUkVfQ0FURUdPUllfVU5JX05PVF9TUEFDRToKLSAgICAgICAgcmV0dXJuICFTUkVfSVNfU1BBQ0UoY2gpOwotICAgIGNhc2UgU1JFX0NBVEVHT1JZX1VOSV9XT1JEOgotICAgICAgICByZXR1cm4gU1JFX0xPQ19JU19XT1JEKGNoKTsKLSAgICBjYXNlIFNSRV9DQVRFR09SWV9VTklfTk9UX1dPUkQ6Ci0gICAgICAgIHJldHVybiAhU1JFX0xPQ19JU19XT1JEKGNoKTsKLSAgICBjYXNlIFNSRV9DQVRFR09SWV9VTklfTElORUJSRUFLOgotICAgICAgICByZXR1cm4gU1JFX0lTX0xJTkVCUkVBSyhjaCk7Ci0gICAgY2FzZSBTUkVfQ0FURUdPUllfVU5JX05PVF9MSU5FQlJFQUs6Ci0gICAgICAgIHJldHVybiAhU1JFX0lTX0xJTkVCUkVBSyhjaCk7Ci0jZW5kaWYKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0yODAsNiArMjU3LDcgQEAKIC8qIGdlbmVyYXRlIDgtYml0IHZlcnNpb24gKi8KIAogI2RlZmluZSBTUkVfQ0hBUiB1bnNpZ25lZCBjaGFyCisjZGVmaW5lIFNSRV9DSEFSR0VUKHN0YXRlLCBidWYsIGluZGV4KSAoKHVuc2lnbmVkIGNoYXIqKWJ1ZilbaW5kZXhdCiAjZGVmaW5lIFNSRV9BVCBzcmVfYXQKICNkZWZpbmUgU1JFX0NPVU5UIHNyZV9jb3VudAogI2RlZmluZSBTUkVfQ0hBUlNFVCBzcmVfY2hhcnNldApAQCAtMjg3LDE1ICsyNjUsMTEgQEAKICNkZWZpbmUgU1JFX01BVENIIHNyZV9tYXRjaAogI2RlZmluZSBTUkVfTUFUQ0hfQ09OVEVYVCBzcmVfbWF0Y2hfY29udGV4dAogI2RlZmluZSBTUkVfU0VBUkNIIHNyZV9zZWFyY2gKLSNkZWZpbmUgU1JFX0xJVEVSQUxfVEVNUExBVEUgc3JlX2xpdGVyYWxfdGVtcGxhdGUKLQotI2lmIGRlZmluZWQoSEFWRV9VTklDT0RFKQogCiAjZGVmaW5lIFNSRV9SRUNVUlNJVkUKICNpbmNsdWRlICJfc3JlLmMiCiAjdW5kZWYgU1JFX1JFQ1VSU0lWRQogCi0jdW5kZWYgU1JFX0xJVEVSQUxfVEVNUExBVEUKICN1bmRlZiBTUkVfU0VBUkNICiAjdW5kZWYgU1JFX01BVENICiAjdW5kZWYgU1JFX01BVENIX0NPTlRFWFQKQEAgLTMwNCwxMCArMjc4LDE1IEBACiAjdW5kZWYgU1JFX0NPVU5UCiAjdW5kZWYgU1JFX0FUCiAjdW5kZWYgU1JFX0NIQVIKKyN1bmRlZiBTUkVfQ0hBUkdFVAogCi0vKiBnZW5lcmF0ZSAxNi1iaXQgdW5pY29kZSB2ZXJzaW9uICovCisvKiBnZW5lcmF0ZSA4LzE2LzMyLWJpdCB1bmljb2RlIHZlcnNpb24gKi8KIAotI2RlZmluZSBTUkVfQ0hBUiBQeV9VTklDT0RFCisjZGVmaW5lIFNSRV9DSEFSIHZvaWQKKyNkZWZpbmUgU1JFX0NIQVJHRVQoc3RhdGUsIGJ1ZiwgaW5kZXgpIFwKKyAgICAoKHN0YXRlLT5jaGFyc2l6ZT09MSkgPyAoKFB5X1VDUzEqKWJ1ZilbaW5kZXhdIDogXAorICAgICAoc3RhdGUtPmNoYXJzaXplPT0yKSA/ICgoUHlfVUNTMiopYnVmKVtpbmRleF0gOiBcCisgICAgICgoUHlfVUNTNCopYnVmKVtpbmRleF0pCiAjZGVmaW5lIFNSRV9BVCBzcmVfdWF0CiAjZGVmaW5lIFNSRV9DT1VOVCBzcmVfdWNvdW50CiAjZGVmaW5lIFNSRV9DSEFSU0VUIHNyZV91Y2hhcnNldApAQCAtMzE1LDggKzI5NCw2IEBACiAjZGVmaW5lIFNSRV9NQVRDSCBzcmVfdW1hdGNoCiAjZGVmaW5lIFNSRV9NQVRDSF9DT05URVhUIHNyZV91bWF0Y2hfY29udGV4dAogI2RlZmluZSBTUkVfU0VBUkNIIHNyZV91c2VhcmNoCi0jZGVmaW5lIFNSRV9MSVRFUkFMX1RFTVBMQVRFIHNyZV91bGl0ZXJhbF90ZW1wbGF0ZQotI2VuZGlmCiAKICNlbmRpZiAvKiBTUkVfUkVDVVJTSVZFICovCiAKQEAgLTMyNyw3ICszMDQsNyBAQAogICAgc2V0dGluZ3MgKi8KIAogTE9DQUwoaW50KQotU1JFX0FUKFNSRV9TVEFURSogc3RhdGUsIFNSRV9DSEFSKiBwdHIsIFNSRV9DT0RFIGF0KQorU1JFX0FUKFNSRV9TVEFURSogc3RhdGUsIGNoYXIqIHB0ciwgU1JFX0NPREUgYXQpCiB7CiAgICAgLyogY2hlY2sgaWYgcG9pbnRlciBpcyBhdCBnaXZlbiBwb3NpdGlvbiAqLwogCkBAIC0zNDEsMTYgKzMxOCwxNiBAQAogCiAgICAgY2FzZSBTUkVfQVRfQkVHSU5OSU5HX0xJTkU6CiAgICAgICAgIHJldHVybiAoKHZvaWQqKSBwdHIgPT0gc3RhdGUtPmJlZ2lubmluZyB8fAotICAgICAgICAgICAgICAgIFNSRV9JU19MSU5FQlJFQUsoKGludCkgcHRyWy0xXSkpOworICAgICAgICAgICAgICAgIFNSRV9JU19MSU5FQlJFQUsoKGludCkgU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgLTEpKSk7CiAKICAgICBjYXNlIFNSRV9BVF9FTkQ6Ci0gICAgICAgIHJldHVybiAoKCh2b2lkKikgKHB0cisxKSA9PSBzdGF0ZS0+ZW5kICYmCi0gICAgICAgICAgICAgICAgIFNSRV9JU19MSU5FQlJFQUsoKGludCkgcHRyWzBdKSkgfHwKKyAgICAgICAgcmV0dXJuICgoKHZvaWQqKSAocHRyK3N0YXRlLT5jaGFyc2l6ZSkgPT0gc3RhdGUtPmVuZCAmJgorICAgICAgICAgICAgICAgICBTUkVfSVNfTElORUJSRUFLKChpbnQpIFNSRV9DSEFSR0VUKHN0YXRlLCBwdHIsIDApKSkgfHwKICAgICAgICAgICAgICAgICAoKHZvaWQqKSBwdHIgPT0gc3RhdGUtPmVuZCkpOwogCiAgICAgY2FzZSBTUkVfQVRfRU5EX0xJTkU6CiAgICAgICAgIHJldHVybiAoKHZvaWQqKSBwdHIgPT0gc3RhdGUtPmVuZCB8fAotICAgICAgICAgICAgICAgIFNSRV9JU19MSU5FQlJFQUsoKGludCkgcHRyWzBdKSk7CisgICAgICAgICAgICAgICAgU1JFX0lTX0xJTkVCUkVBSygoaW50KSBTUkVfQ0hBUkdFVChzdGF0ZSwgcHRyLCAwKSkpOwogCiAgICAgY2FzZSBTUkVfQVRfRU5EX1NUUklORzoKICAgICAgICAgcmV0dXJuICgodm9pZCopIHB0ciA9PSBzdGF0ZS0+ZW5kKTsKQEAgLTM1OSw1NyArMzM2LDU1IEBACiAgICAgICAgIGlmIChzdGF0ZS0+YmVnaW5uaW5nID09IHN0YXRlLT5lbmQpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgdGhhdHAgPSAoKHZvaWQqKSBwdHIgPiBzdGF0ZS0+YmVnaW5uaW5nKSA/Ci0gICAgICAgICAgICBTUkVfSVNfV09SRCgoaW50KSBwdHJbLTFdKSA6IDA7CisgICAgICAgICAgICBTUkVfSVNfV09SRCgoaW50KSBTUkVfQ0hBUkdFVChzdGF0ZSwgcHRyLCAtMSkpIDogMDsKICAgICAgICAgdGhpc3AgPSAoKHZvaWQqKSBwdHIgPCBzdGF0ZS0+ZW5kKSA/Ci0gICAgICAgICAgICBTUkVfSVNfV09SRCgoaW50KSBwdHJbMF0pIDogMDsKKyAgICAgICAgICAgIFNSRV9JU19XT1JEKChpbnQpIFNSRV9DSEFSR0VUKHN0YXRlLCBwdHIsIDApKSA6IDA7CiAgICAgICAgIHJldHVybiB0aGlzcCAhPSB0aGF0cDsKIAogICAgIGNhc2UgU1JFX0FUX05PTl9CT1VOREFSWToKICAgICAgICAgaWYgKHN0YXRlLT5iZWdpbm5pbmcgPT0gc3RhdGUtPmVuZCkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB0aGF0cCA9ICgodm9pZCopIHB0ciA+IHN0YXRlLT5iZWdpbm5pbmcpID8KLSAgICAgICAgICAgIFNSRV9JU19XT1JEKChpbnQpIHB0clstMV0pIDogMDsKKyAgICAgICAgICAgIFNSRV9JU19XT1JEKChpbnQpIFNSRV9DSEFSR0VUKHN0YXRlLCBwdHIsIC0xKSkgOiAwOwogICAgICAgICB0aGlzcCA9ICgodm9pZCopIHB0ciA8IHN0YXRlLT5lbmQpID8KLSAgICAgICAgICAgIFNSRV9JU19XT1JEKChpbnQpIHB0clswXSkgOiAwOworICAgICAgICAgICAgU1JFX0lTX1dPUkQoKGludCkgU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgMCkpIDogMDsKICAgICAgICAgcmV0dXJuIHRoaXNwID09IHRoYXRwOwogCiAgICAgY2FzZSBTUkVfQVRfTE9DX0JPVU5EQVJZOgogICAgICAgICBpZiAoc3RhdGUtPmJlZ2lubmluZyA9PSBzdGF0ZS0+ZW5kKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIHRoYXRwID0gKCh2b2lkKikgcHRyID4gc3RhdGUtPmJlZ2lubmluZykgPwotICAgICAgICAgICAgU1JFX0xPQ19JU19XT1JEKChpbnQpIHB0clstMV0pIDogMDsKKyAgICAgICAgICAgIFNSRV9MT0NfSVNfV09SRCgoaW50KSBTUkVfQ0hBUkdFVChzdGF0ZSwgcHRyLCAtMSkpIDogMDsKICAgICAgICAgdGhpc3AgPSAoKHZvaWQqKSBwdHIgPCBzdGF0ZS0+ZW5kKSA/Ci0gICAgICAgICAgICBTUkVfTE9DX0lTX1dPUkQoKGludCkgcHRyWzBdKSA6IDA7CisgICAgICAgICAgICBTUkVfTE9DX0lTX1dPUkQoKGludCkgU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgMCkpIDogMDsKICAgICAgICAgcmV0dXJuIHRoaXNwICE9IHRoYXRwOwogCiAgICAgY2FzZSBTUkVfQVRfTE9DX05PTl9CT1VOREFSWToKICAgICAgICAgaWYgKHN0YXRlLT5iZWdpbm5pbmcgPT0gc3RhdGUtPmVuZCkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB0aGF0cCA9ICgodm9pZCopIHB0ciA+IHN0YXRlLT5iZWdpbm5pbmcpID8KLSAgICAgICAgICAgIFNSRV9MT0NfSVNfV09SRCgoaW50KSBwdHJbLTFdKSA6IDA7CisgICAgICAgICAgICBTUkVfTE9DX0lTX1dPUkQoKGludCkgU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgLTEpKSA6IDA7CiAgICAgICAgIHRoaXNwID0gKCh2b2lkKikgcHRyIDwgc3RhdGUtPmVuZCkgPwotICAgICAgICAgICAgU1JFX0xPQ19JU19XT1JEKChpbnQpIHB0clswXSkgOiAwOworICAgICAgICAgICAgU1JFX0xPQ19JU19XT1JEKChpbnQpIFNSRV9DSEFSR0VUKHN0YXRlLCBwdHIsIDApKSA6IDA7CiAgICAgICAgIHJldHVybiB0aGlzcCA9PSB0aGF0cDsKIAotI2lmIGRlZmluZWQoSEFWRV9VTklDT0RFKQogICAgIGNhc2UgU1JFX0FUX1VOSV9CT1VOREFSWToKICAgICAgICAgaWYgKHN0YXRlLT5iZWdpbm5pbmcgPT0gc3RhdGUtPmVuZCkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB0aGF0cCA9ICgodm9pZCopIHB0ciA+IHN0YXRlLT5iZWdpbm5pbmcpID8KLSAgICAgICAgICAgIFNSRV9VTklfSVNfV09SRCgoaW50KSBwdHJbLTFdKSA6IDA7CisgICAgICAgICAgICBTUkVfVU5JX0lTX1dPUkQoKGludCkgU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgLTEpKSA6IDA7CiAgICAgICAgIHRoaXNwID0gKCh2b2lkKikgcHRyIDwgc3RhdGUtPmVuZCkgPwotICAgICAgICAgICAgU1JFX1VOSV9JU19XT1JEKChpbnQpIHB0clswXSkgOiAwOworICAgICAgICAgICAgU1JFX1VOSV9JU19XT1JEKChpbnQpIFNSRV9DSEFSR0VUKHN0YXRlLCBwdHIsIDApKSA6IDA7CiAgICAgICAgIHJldHVybiB0aGlzcCAhPSB0aGF0cDsKIAogICAgIGNhc2UgU1JFX0FUX1VOSV9OT05fQk9VTkRBUlk6CiAgICAgICAgIGlmIChzdGF0ZS0+YmVnaW5uaW5nID09IHN0YXRlLT5lbmQpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgdGhhdHAgPSAoKHZvaWQqKSBwdHIgPiBzdGF0ZS0+YmVnaW5uaW5nKSA/Ci0gICAgICAgICAgICBTUkVfVU5JX0lTX1dPUkQoKGludCkgcHRyWy0xXSkgOiAwOworICAgICAgICAgICAgU1JFX1VOSV9JU19XT1JEKChpbnQpIFNSRV9DSEFSR0VUKHN0YXRlLCBwdHIsIC0xKSkgOiAwOwogICAgICAgICB0aGlzcCA9ICgodm9pZCopIHB0ciA8IHN0YXRlLT5lbmQpID8KLSAgICAgICAgICAgIFNSRV9VTklfSVNfV09SRCgoaW50KSBwdHJbMF0pIDogMDsKKyAgICAgICAgICAgIFNSRV9VTklfSVNfV09SRCgoaW50KSBTUkVfQ0hBUkdFVChzdGF0ZSwgcHRyLCAwKSkgOiAwOwogICAgICAgICByZXR1cm4gdGhpc3AgPT0gdGhhdHA7Ci0jZW5kaWYKIAogICAgIH0KIApAQCAtNDc2LDcgKzQ1MSw3IEBACiAgICAgICAgICAgICBjb3VudCA9ICooc2V0KyspOwogCiAgICAgICAgICAgICBpZiAoc2l6ZW9mKFNSRV9DT0RFKSA9PSAyKSB7Ci0gICAgICAgICAgICAgICAgYmxvY2sgPSAoKHVuc2lnbmVkIGNoYXIqKXNldClbY2ggPj4gOF07CisgICAgICAgICAgICAgICAgYmxvY2sgPSAoKGNoYXIqKXNldClbY2ggPj4gOF07CiAgICAgICAgICAgICAgICAgc2V0ICs9IDEyODsKICAgICAgICAgICAgICAgICBpZiAoc2V0W2Jsb2NrKjE2ICsgKChjaCAmIDI1NSk+PjQpXSAmICgxIDw8IChjaCAmIDE1KSkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvazsKQEAgLTQ4Niw3ICs0NjEsNyBAQAogICAgICAgICAgICAgICAgIC8qICEoYyAmIH5OKSA9PSAoYyA8IE4rMSkgZm9yIGFueSB1bnNpZ25lZCBjLCB0aGlzIGF2b2lkcwogICAgICAgICAgICAgICAgICAqIHdhcm5pbmdzIHdoZW4gYydzIHR5cGUgc3VwcG9ydHMgb25seSBudW1iZXJzIDwgTisxICovCiAgICAgICAgICAgICAgICAgaWYgKCEoY2ggJiB+NjU1MzUpKQotICAgICAgICAgICAgICAgICAgICBibG9jayA9ICgodW5zaWduZWQgY2hhciopc2V0KVtjaCA+PiA4XTsKKyAgICAgICAgICAgICAgICAgICAgYmxvY2sgPSAoKGNoYXIqKXNldClbY2ggPj4gOF07CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBibG9jayA9IC0xOwogICAgICAgICAgICAgICAgIHNldCArPSA2NDsKQEAgLTUxMiwyOCArNDg3LDI5IEBACiBTUkVfQ09VTlQoU1JFX1NUQVRFKiBzdGF0ZSwgU1JFX0NPREUqIHBhdHRlcm4sIFB5X3NzaXplX3QgbWF4Y291bnQpCiB7CiAgICAgU1JFX0NPREUgY2hyOwotICAgIFNSRV9DSEFSKiBwdHIgPSAoU1JFX0NIQVIgKilzdGF0ZS0+cHRyOwotICAgIFNSRV9DSEFSKiBlbmQgPSAoU1JFX0NIQVIgKilzdGF0ZS0+ZW5kOworICAgIGNoYXIqIHB0ciA9IChjaGFyICopc3RhdGUtPnB0cjsKKyAgICBjaGFyKiBlbmQgPSAoY2hhciAqKXN0YXRlLT5lbmQ7CiAgICAgUHlfc3NpemVfdCBpOwogCiAgICAgLyogYWRqdXN0IGVuZCAqLwogICAgIGlmIChtYXhjb3VudCA8IGVuZCAtIHB0ciAmJiBtYXhjb3VudCAhPSA2NTUzNSkKLSAgICAgICAgZW5kID0gcHRyICsgbWF4Y291bnQ7CisgICAgICAgIGVuZCA9IHB0ciArIG1heGNvdW50KnN0YXRlLT5jaGFyc2l6ZTsKIAogICAgIHN3aXRjaCAocGF0dGVyblswXSkgewogCiAgICAgY2FzZSBTUkVfT1BfSU46CiAgICAgICAgIC8qIHJlcGVhdGVkIHNldCAqLwogICAgICAgICBUUkFDRSgoInwlcHwlcHxDT1VOVCBJTlxuIiwgcGF0dGVybiwgcHRyKSk7Ci0gICAgICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgU1JFX0NIQVJTRVQocGF0dGVybiArIDIsICpwdHIpKQotICAgICAgICAgICAgcHRyKys7CisgICAgICAgIHdoaWxlIChwdHIgPCBlbmQgJiYKKyAgICAgICAgICAgICAgIFNSRV9DSEFSU0VUKHBhdHRlcm4gKyAyLCBTUkVfQ0hBUkdFVChzdGF0ZSwgcHRyLCAwKSkpCisgICAgICAgICAgICBwdHIgKz0gc3RhdGUtPmNoYXJzaXplOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgU1JFX09QX0FOWToKICAgICAgICAgLyogcmVwZWF0ZWQgZG90IHdpbGRjYXJkLiAqLwogICAgICAgICBUUkFDRSgoInwlcHwlcHxDT1VOVCBBTllcbiIsIHBhdHRlcm4sIHB0cikpOwotICAgICAgICB3aGlsZSAocHRyIDwgZW5kICYmICFTUkVfSVNfTElORUJSRUFLKCpwdHIpKQotICAgICAgICAgICAgcHRyKys7CisgICAgICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgIVNSRV9JU19MSU5FQlJFQUsoU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgMCkpKQorICAgICAgICAgICAgcHRyICs9IHN0YXRlLT5jaGFyc2l6ZTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFNSRV9PUF9BTllfQUxMOgpAQCAtNTQ3LDM4ICs1MjMsMzggQEAKICAgICAgICAgLyogcmVwZWF0ZWQgbGl0ZXJhbCAqLwogICAgICAgICBjaHIgPSBwYXR0ZXJuWzFdOwogICAgICAgICBUUkFDRSgoInwlcHwlcHxDT1VOVCBMSVRFUkFMICVkXG4iLCBwYXR0ZXJuLCBwdHIsIGNocikpOwotICAgICAgICB3aGlsZSAocHRyIDwgZW5kICYmIChTUkVfQ09ERSkgKnB0ciA9PSBjaHIpCi0gICAgICAgICAgICBwdHIrKzsKKyAgICAgICAgd2hpbGUgKHB0ciA8IGVuZCAmJiAoU1JFX0NPREUpIFNSRV9DSEFSR0VUKHN0YXRlLCBwdHIsIDApID09IGNocikKKyAgICAgICAgICAgIHB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBTUkVfT1BfTElURVJBTF9JR05PUkU6CiAgICAgICAgIC8qIHJlcGVhdGVkIGxpdGVyYWwgKi8KICAgICAgICAgY2hyID0gcGF0dGVyblsxXTsKICAgICAgICAgVFJBQ0UoKCJ8JXB8JXB8Q09VTlQgTElURVJBTF9JR05PUkUgJWRcbiIsIHBhdHRlcm4sIHB0ciwgY2hyKSk7Ci0gICAgICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKFNSRV9DT0RFKSBzdGF0ZS0+bG93ZXIoKnB0cikgPT0gY2hyKQotICAgICAgICAgICAgcHRyKys7CisgICAgICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKFNSRV9DT0RFKSBzdGF0ZS0+bG93ZXIoU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgMCkpID09IGNocikKKyAgICAgICAgICAgIHB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBTUkVfT1BfTk9UX0xJVEVSQUw6CiAgICAgICAgIC8qIHJlcGVhdGVkIG5vbi1saXRlcmFsICovCiAgICAgICAgIGNociA9IHBhdHRlcm5bMV07CiAgICAgICAgIFRSQUNFKCgifCVwfCVwfENPVU5UIE5PVF9MSVRFUkFMICVkXG4iLCBwYXR0ZXJuLCBwdHIsIGNocikpOwotICAgICAgICB3aGlsZSAocHRyIDwgZW5kICYmIChTUkVfQ09ERSkgKnB0ciAhPSBjaHIpCi0gICAgICAgICAgICBwdHIrKzsKKyAgICAgICAgd2hpbGUgKHB0ciA8IGVuZCAmJiAoU1JFX0NPREUpIFNSRV9DSEFSR0VUKHN0YXRlLCBwdHIsIDApICE9IGNocikKKyAgICAgICAgICAgIHB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBTUkVfT1BfTk9UX0xJVEVSQUxfSUdOT1JFOgogICAgICAgICAvKiByZXBlYXRlZCBub24tbGl0ZXJhbCAqLwogICAgICAgICBjaHIgPSBwYXR0ZXJuWzFdOwogICAgICAgICBUUkFDRSgoInwlcHwlcHxDT1VOVCBOT1RfTElURVJBTF9JR05PUkUgJWRcbiIsIHBhdHRlcm4sIHB0ciwgY2hyKSk7Ci0gICAgICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKFNSRV9DT0RFKSBzdGF0ZS0+bG93ZXIoKnB0cikgIT0gY2hyKQotICAgICAgICAgICAgcHRyKys7CisgICAgICAgIHdoaWxlIChwdHIgPCBlbmQgJiYgKFNSRV9DT0RFKSBzdGF0ZS0+bG93ZXIoU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgMCkpICE9IGNocikKKyAgICAgICAgICAgIHB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKICAgICAgICAgLyogcmVwZWF0ZWQgc2luZ2xlIGNoYXJhY3RlciBwYXR0ZXJuICovCiAgICAgICAgIFRSQUNFKCgifCVwfCVwfENPVU5UIFNVQlBBVFRFUk5cbiIsIHBhdHRlcm4sIHB0cikpOwotICAgICAgICB3aGlsZSAoKFNSRV9DSEFSKikgc3RhdGUtPnB0ciA8IGVuZCkgeworICAgICAgICB3aGlsZSAoKGNoYXIqKSBzdGF0ZS0+cHRyIDwgZW5kKSB7CiAgICAgICAgICAgICBpID0gU1JFX01BVENIKHN0YXRlLCBwYXR0ZXJuKTsKICAgICAgICAgICAgIGlmIChpIDwgMCkKICAgICAgICAgICAgICAgICByZXR1cm4gaTsKQEAgLTU4NiwxMiArNTYyLDEyIEBACiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgVFJBQ0UoKCJ8JXB8JXB8Q09VTlQgJWRcbiIsIHBhdHRlcm4sIHB0ciwKLSAgICAgICAgICAgICAgIChTUkVfQ0hBUiopIHN0YXRlLT5wdHIgLSBwdHIpKTsKLSAgICAgICAgcmV0dXJuIChTUkVfQ0hBUiopIHN0YXRlLT5wdHIgLSBwdHI7CisgICAgICAgICAgICAgICAoKGNoYXIqKXN0YXRlLT5wdHIgLSBwdHIpL3N0YXRlLT5jaGFyc2l6ZSkpOworICAgICAgICByZXR1cm4gKChjaGFyKilzdGF0ZS0+cHRyIC0gcHRyKS9zdGF0ZS0+Y2hhcnNpemU7CiAgICAgfQogCi0gICAgVFJBQ0UoKCJ8JXB8JXB8Q09VTlQgJWRcbiIsIHBhdHRlcm4sIHB0ciwgcHRyIC0gKFNSRV9DSEFSKikgc3RhdGUtPnB0cikpOwotICAgIHJldHVybiBwdHIgLSAoU1JFX0NIQVIqKSBzdGF0ZS0+cHRyOworICAgIFRSQUNFKCgifCVwfCVwfENPVU5UICVkXG4iLCBwYXR0ZXJuLCBwdHIsIChwdHIgLSAoY2hhciopIHN0YXRlLT5wdHIpL3N0YXRlLT5jaGFyc2l6ZSkpOworICAgIHJldHVybiAocHRyIC0gKGNoYXIqKSBzdGF0ZS0+cHRyKS9zdGF0ZS0+Y2hhcnNpemU7CiB9CiAKICNpZiAwIC8qIG5vdCB1c2VkIGluIHRoaXMgcmVsZWFzZSAqLwpAQCAtNjAyLDggKzU3OCw4IEBACiAgICAgICAgcmV0dXJucyB0aGUgbnVtYmVyIG9mIFNSRV9DT0RFIG9iamVjdHMgdG8gc2tpcCBpZiBzdWNjZXNzZnVsLCAwCiAgICAgICAgaWYgbm8gbWF0Y2ggKi8KIAotICAgIFNSRV9DSEFSKiBlbmQgPSBzdGF0ZS0+ZW5kOwotICAgIFNSRV9DSEFSKiBwdHIgPSBzdGF0ZS0+cHRyOworICAgIGNoYXIqIGVuZCA9IHN0YXRlLT5lbmQ7CisgICAgY2hhciogcHRyID0gc3RhdGUtPnB0cjsKICAgICBQeV9zc2l6ZV90IGk7CiAKICAgICAvKiBjaGVjayBtaW5pbWFsIGxlbmd0aCAqLwpAQCAtNjE0LDcgKzU5MCw3IEBACiAgICAgaWYgKHBhdHRlcm5bMl0gJiBTUkVfSU5GT19QUkVGSVggJiYgcGF0dGVybls1XSA+IDEpIHsKICAgICAgICAgLyogPGxlbmd0aD4gPHNraXA+IDxwcmVmaXggZGF0YT4gPG92ZXJsYXAgZGF0YT4gKi8KICAgICAgICAgZm9yIChpID0gMDsgaSA8IHBhdHRlcm5bNV07IGkrKykKLSAgICAgICAgICAgIGlmICgoU1JFX0NPREUpIHB0cltpXSAhPSBwYXR0ZXJuWzcgKyBpXSkKKyAgICAgICAgICAgIGlmICgoU1JFX0NPREUpIFNSRV9DSEFSR0VUKHN0YXRlLCBwdHIsIGkpICE9IHBhdHRlcm5bNyArIGldKQogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICByZXR1cm4gcGF0dGVyblswXSArIDIgKiBwYXR0ZXJuWzZdOwogICAgIH0KQEAgLTc4Myw3ICs3NTksNyBAQAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFB5X3NzaXplX3QgbGFzdF9jdHhfcG9zOwogICAgIFB5X3NzaXplX3QganVtcDsKLSAgICBTUkVfQ0hBUiogcHRyOworICAgIGNoYXIqIHB0cjsKICAgICBTUkVfQ09ERSogcGF0dGVybjsKICAgICBQeV9zc2l6ZV90IGNvdW50OwogICAgIFB5X3NzaXplX3QgbGFzdG1hcms7CkBAIC03OTksNyArNzc1LDcgQEAKIExPQ0FMKFB5X3NzaXplX3QpCiBTUkVfTUFUQ0goU1JFX1NUQVRFKiBzdGF0ZSwgU1JFX0NPREUqIHBhdHRlcm4pCiB7Ci0gICAgU1JFX0NIQVIqIGVuZCA9IChTUkVfQ0hBUiAqKXN0YXRlLT5lbmQ7CisgICAgY2hhciogZW5kID0gKGNoYXIqKXN0YXRlLT5lbmQ7CiAgICAgUHlfc3NpemVfdCBhbGxvY19wb3MsIGN0eF9wb3MgPSAtMTsKICAgICBQeV9zc2l6ZV90IGksIHJldCA9IDA7CiAgICAgUHlfc3NpemVfdCBqdW1wOwpAQCAtODE4LDEyICs3OTQsMTIgQEAKIAogZW50cmFuY2U6CiAKLSAgICBjdHgtPnB0ciA9IChTUkVfQ0hBUiAqKXN0YXRlLT5wdHI7CisgICAgY3R4LT5wdHIgPSAoY2hhciAqKXN0YXRlLT5wdHI7CiAKICAgICBpZiAoY3R4LT5wYXR0ZXJuWzBdID09IFNSRV9PUF9JTkZPKSB7CiAgICAgICAgIC8qIG9wdGltaXphdGlvbiBpbmZvIGJsb2NrICovCiAgICAgICAgIC8qIDxJTkZPPiA8MT1za2lwPiA8Mj1mbGFncz4gPDM9bWluPiAuLi4gKi8KLSAgICAgICAgaWYgKGN0eC0+cGF0dGVyblszXSAmJiAoZW5kIC0gY3R4LT5wdHIpIDwgY3R4LT5wYXR0ZXJuWzNdKSB7CisgICAgICAgIGlmIChjdHgtPnBhdHRlcm5bM10gJiYgKGVuZCAtIGN0eC0+cHRyKS9zdGF0ZS0+Y2hhcnNpemUgPCBjdHgtPnBhdHRlcm5bM10pIHsKICAgICAgICAgICAgIFRSQUNFKCgicmVqZWN0IChnb3QgJWQgY2hhcnMsIG5lZWQgJWQpXG4iLAogICAgICAgICAgICAgICAgICAgIChlbmQgLSBjdHgtPnB0ciksIGN0eC0+cGF0dGVyblszXSkpOwogICAgICAgICAgICAgUkVUVVJOX0ZBSUxVUkU7CkBAIC04NjUsMTAgKzg0MSwxMCBAQAogICAgICAgICAgICAgLyogPExJVEVSQUw+IDxjb2RlPiAqLwogICAgICAgICAgICAgVFJBQ0UoKCJ8JXB8JXB8TElURVJBTCAlZFxuIiwgY3R4LT5wYXR0ZXJuLAogICAgICAgICAgICAgICAgICAgIGN0eC0+cHRyLCAqY3R4LT5wYXR0ZXJuKSk7Ci0gICAgICAgICAgICBpZiAoY3R4LT5wdHIgPj0gZW5kIHx8IChTUkVfQ09ERSkgY3R4LT5wdHJbMF0gIT0gY3R4LT5wYXR0ZXJuWzBdKQorICAgICAgICAgICAgaWYgKGN0eC0+cHRyID49IGVuZCB8fCAoU1JFX0NPREUpIFNSRV9DSEFSR0VUKHN0YXRlLCBjdHgtPnB0ciwgMCkgIT0gY3R4LT5wYXR0ZXJuWzBdKQogICAgICAgICAgICAgICAgIFJFVFVSTl9GQUlMVVJFOwogICAgICAgICAgICAgY3R4LT5wYXR0ZXJuKys7Ci0gICAgICAgICAgICBjdHgtPnB0cisrOworICAgICAgICAgICAgY3R4LT5wdHIgKz0gc3RhdGUtPmNoYXJzaXplOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBTUkVfT1BfTk9UX0xJVEVSQUw6CkBAIC04NzYsMTAgKzg1MiwxMCBAQAogICAgICAgICAgICAgLyogPE5PVF9MSVRFUkFMPiA8Y29kZT4gKi8KICAgICAgICAgICAgIFRSQUNFKCgifCVwfCVwfE5PVF9MSVRFUkFMICVkXG4iLCBjdHgtPnBhdHRlcm4sCiAgICAgICAgICAgICAgICAgICAgY3R4LT5wdHIsICpjdHgtPnBhdHRlcm4pKTsKLSAgICAgICAgICAgIGlmIChjdHgtPnB0ciA+PSBlbmQgfHwgKFNSRV9DT0RFKSBjdHgtPnB0clswXSA9PSBjdHgtPnBhdHRlcm5bMF0pCisgICAgICAgICAgICBpZiAoY3R4LT5wdHIgPj0gZW5kIHx8IChTUkVfQ09ERSkgU1JFX0NIQVJHRVQoc3RhdGUsIGN0eC0+cHRyLCAwKSA9PSBjdHgtPnBhdHRlcm5bMF0pCiAgICAgICAgICAgICAgICAgUkVUVVJOX0ZBSUxVUkU7CiAgICAgICAgICAgICBjdHgtPnBhdHRlcm4rKzsKLSAgICAgICAgICAgIGN0eC0+cHRyKys7CisgICAgICAgICAgICBjdHgtPnB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFNSRV9PUF9TVUNDRVNTOgpAQCAtOTAyLDE5ICs4NzgsMTkgQEAKICAgICAgICAgICAgIC8qIDxDQVRFR09SWT4gPGNvZGU+ICovCiAgICAgICAgICAgICBUUkFDRSgoInwlcHwlcHxDQVRFR09SWSAlZFxuIiwgY3R4LT5wYXR0ZXJuLAogICAgICAgICAgICAgICAgICAgIGN0eC0+cHRyLCAqY3R4LT5wYXR0ZXJuKSk7Ci0gICAgICAgICAgICBpZiAoY3R4LT5wdHIgPj0gZW5kIHx8ICFzcmVfY2F0ZWdvcnkoY3R4LT5wYXR0ZXJuWzBdLCBjdHgtPnB0clswXSkpCisgICAgICAgICAgICBpZiAoY3R4LT5wdHIgPj0gZW5kIHx8ICFzcmVfY2F0ZWdvcnkoY3R4LT5wYXR0ZXJuWzBdLCBTUkVfQ0hBUkdFVChzdGF0ZSwgY3R4LT5wdHIsIDApKSkKICAgICAgICAgICAgICAgICBSRVRVUk5fRkFJTFVSRTsKICAgICAgICAgICAgIGN0eC0+cGF0dGVybisrOwotICAgICAgICAgICAgY3R4LT5wdHIrKzsKKyAgICAgICAgICAgIGN0eC0+cHRyICs9IHN0YXRlLT5jaGFyc2l6ZTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgU1JFX09QX0FOWToKICAgICAgICAgICAgIC8qIG1hdGNoIGFueXRoaW5nIChleGNlcHQgYSBuZXdsaW5lKSAqLwogICAgICAgICAgICAgLyogPEFOWT4gKi8KICAgICAgICAgICAgIFRSQUNFKCgifCVwfCVwfEFOWVxuIiwgY3R4LT5wYXR0ZXJuLCBjdHgtPnB0cikpOwotICAgICAgICAgICAgaWYgKGN0eC0+cHRyID49IGVuZCB8fCBTUkVfSVNfTElORUJSRUFLKGN0eC0+cHRyWzBdKSkKLSAgICAgICAgICAgICAgICBSRVRVUk5fRkFJTFVSRTsKLSAgICAgICAgICAgIGN0eC0+cHRyKys7CisgICAgICAgICAgICAgICAgaWYgKGN0eC0+cHRyID49IGVuZCB8fCBTUkVfSVNfTElORUJSRUFLKFNSRV9DSEFSR0VUKHN0YXRlLCBjdHgtPnB0ciwgMCkpKQorICAgICAgICAgICAgICAgICAgICBSRVRVUk5fRkFJTFVSRTsKKyAgICAgICAgICAgIGN0eC0+cHRyICs9IHN0YXRlLT5jaGFyc2l6ZTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgU1JFX09QX0FOWV9BTEw6CkBAIC05MjMsNDcgKzg5OSw0NyBAQAogICAgICAgICAgICAgVFJBQ0UoKCJ8JXB8JXB8QU5ZX0FMTFxuIiwgY3R4LT5wYXR0ZXJuLCBjdHgtPnB0cikpOwogICAgICAgICAgICAgaWYgKGN0eC0+cHRyID49IGVuZCkKICAgICAgICAgICAgICAgICBSRVRVUk5fRkFJTFVSRTsKLSAgICAgICAgICAgIGN0eC0+cHRyKys7CisgICAgICAgICAgICBjdHgtPnB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFNSRV9PUF9JTjoKICAgICAgICAgICAgIC8qIG1hdGNoIHNldCBtZW1iZXIgKG9yIG5vbl9tZW1iZXIpICovCiAgICAgICAgICAgICAvKiA8SU4+IDxza2lwPiA8c2V0PiAqLwogICAgICAgICAgICAgVFJBQ0UoKCJ8JXB8JXB8SU5cbiIsIGN0eC0+cGF0dGVybiwgY3R4LT5wdHIpKTsKLSAgICAgICAgICAgIGlmIChjdHgtPnB0ciA+PSBlbmQgfHwgIVNSRV9DSEFSU0VUKGN0eC0+cGF0dGVybiArIDEsICpjdHgtPnB0cikpCi0gICAgICAgICAgICAgICAgUkVUVVJOX0ZBSUxVUkU7CisgICAgICAgICAgICAgICAgaWYgKGN0eC0+cHRyID49IGVuZCB8fCAhU1JFX0NIQVJTRVQoY3R4LT5wYXR0ZXJuICsgMSwgU1JFX0NIQVJHRVQoc3RhdGUsIGN0eC0+cHRyLCAwKSkpCisgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9GQUlMVVJFOwogICAgICAgICAgICAgY3R4LT5wYXR0ZXJuICs9IGN0eC0+cGF0dGVyblswXTsKLSAgICAgICAgICAgIGN0eC0+cHRyKys7CisgICAgICAgICAgICBjdHgtPnB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFNSRV9PUF9MSVRFUkFMX0lHTk9SRToKICAgICAgICAgICAgIFRSQUNFKCgifCVwfCVwfExJVEVSQUxfSUdOT1JFICVkXG4iLAogICAgICAgICAgICAgICAgICAgIGN0eC0+cGF0dGVybiwgY3R4LT5wdHIsIGN0eC0+cGF0dGVyblswXSkpOwogICAgICAgICAgICAgaWYgKGN0eC0+cHRyID49IGVuZCB8fAotICAgICAgICAgICAgICAgIHN0YXRlLT5sb3dlcigqY3R4LT5wdHIpICE9IHN0YXRlLT5sb3dlcigqY3R4LT5wYXR0ZXJuKSkKKyAgICAgICAgICAgICAgICBzdGF0ZS0+bG93ZXIoU1JFX0NIQVJHRVQoc3RhdGUsIGN0eC0+cHRyLCAwKSkgIT0gc3RhdGUtPmxvd2VyKCpjdHgtPnBhdHRlcm4pKQogICAgICAgICAgICAgICAgIFJFVFVSTl9GQUlMVVJFOwogICAgICAgICAgICAgY3R4LT5wYXR0ZXJuKys7Ci0gICAgICAgICAgICBjdHgtPnB0cisrOworICAgICAgICAgICAgY3R4LT5wdHIgKz0gc3RhdGUtPmNoYXJzaXplOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBTUkVfT1BfTk9UX0xJVEVSQUxfSUdOT1JFOgogICAgICAgICAgICAgVFJBQ0UoKCJ8JXB8JXB8Tk9UX0xJVEVSQUxfSUdOT1JFICVkXG4iLAogICAgICAgICAgICAgICAgICAgIGN0eC0+cGF0dGVybiwgY3R4LT5wdHIsICpjdHgtPnBhdHRlcm4pKTsKICAgICAgICAgICAgIGlmIChjdHgtPnB0ciA+PSBlbmQgfHwKLSAgICAgICAgICAgICAgICBzdGF0ZS0+bG93ZXIoKmN0eC0+cHRyKSA9PSBzdGF0ZS0+bG93ZXIoKmN0eC0+cGF0dGVybikpCisgICAgICAgICAgICAgICAgc3RhdGUtPmxvd2VyKFNSRV9DSEFSR0VUKHN0YXRlLCBjdHgtPnB0ciwgMCkpID09IHN0YXRlLT5sb3dlcigqY3R4LT5wYXR0ZXJuKSkKICAgICAgICAgICAgICAgICBSRVRVUk5fRkFJTFVSRTsKICAgICAgICAgICAgIGN0eC0+cGF0dGVybisrOwotICAgICAgICAgICAgY3R4LT5wdHIrKzsKKyAgICAgICAgICAgIGN0eC0+cHRyICs9IHN0YXRlLT5jaGFyc2l6ZTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgU1JFX09QX0lOX0lHTk9SRToKICAgICAgICAgICAgIFRSQUNFKCgifCVwfCVwfElOX0lHTk9SRVxuIiwgY3R4LT5wYXR0ZXJuLCBjdHgtPnB0cikpOwogICAgICAgICAgICAgaWYgKGN0eC0+cHRyID49IGVuZAogICAgICAgICAgICAgICAgIHx8ICFTUkVfQ0hBUlNFVChjdHgtPnBhdHRlcm4rMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNSRV9DT0RFKXN0YXRlLT5sb3dlcigqY3R4LT5wdHIpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFNSRV9DT0RFKXN0YXRlLT5sb3dlcihTUkVfQ0hBUkdFVChzdGF0ZSwgY3R4LT5wdHIsIDApKSkpCiAgICAgICAgICAgICAgICAgUkVUVVJOX0ZBSUxVUkU7CiAgICAgICAgICAgICBjdHgtPnBhdHRlcm4gKz0gY3R4LT5wYXR0ZXJuWzBdOwotICAgICAgICAgICAgY3R4LT5wdHIrKzsKKyAgICAgICAgICAgIGN0eC0+cHRyICs9IHN0YXRlLT5jaGFyc2l6ZTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgU1JFX09QX0pVTVA6CkBAIC05ODYsMTEgKzk2MiwxMSBAQAogICAgICAgICAgICAgZm9yICg7IGN0eC0+cGF0dGVyblswXTsgY3R4LT5wYXR0ZXJuICs9IGN0eC0+cGF0dGVyblswXSkgewogICAgICAgICAgICAgICAgIGlmIChjdHgtPnBhdHRlcm5bMV0gPT0gU1JFX09QX0xJVEVSQUwgJiYKICAgICAgICAgICAgICAgICAgICAgKGN0eC0+cHRyID49IGVuZCB8fAotICAgICAgICAgICAgICAgICAgICAgKFNSRV9DT0RFKSAqY3R4LT5wdHIgIT0gY3R4LT5wYXR0ZXJuWzJdKSkKKyAgICAgICAgICAgICAgICAgICAgIChTUkVfQ09ERSkgU1JFX0NIQVJHRVQoc3RhdGUsIGN0eC0+cHRyLCAwKSAhPSBjdHgtPnBhdHRlcm5bMl0pKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICBpZiAoY3R4LT5wYXR0ZXJuWzFdID09IFNSRV9PUF9JTiAmJgogICAgICAgICAgICAgICAgICAgICAoY3R4LT5wdHIgPj0gZW5kIHx8Ci0gICAgICAgICAgICAgICAgICAgICAhU1JFX0NIQVJTRVQoY3R4LT5wYXR0ZXJuICsgMywgKFNSRV9DT0RFKSAqY3R4LT5wdHIpKSkKKyAgICAgICAgICAgICAgICAgICAgICFTUkVfQ0hBUlNFVChjdHgtPnBhdHRlcm4gKyAzLCAoU1JFX0NPREUpIFNSRV9DSEFSR0VUKHN0YXRlLCBjdHgtPnB0ciwgMCkpKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgc3RhdGUtPnB0ciA9IGN0eC0+cHRyOwogICAgICAgICAgICAgICAgIERPX0pVTVAoSlVNUF9CUkFOQ0gsIGp1bXBfYnJhbmNoLCBjdHgtPnBhdHRlcm4rMSk7CkBAIC0xMDIxLDcgKzk5Nyw3IEBACiAgICAgICAgICAgICBUUkFDRSgoInwlcHwlcHxSRVBFQVRfT05FICVkICVkXG4iLCBjdHgtPnBhdHRlcm4sIGN0eC0+cHRyLAogICAgICAgICAgICAgICAgICAgIGN0eC0+cGF0dGVyblsxXSwgY3R4LT5wYXR0ZXJuWzJdKSk7CiAKLSAgICAgICAgICAgIGlmIChjdHgtPnB0ciArIGN0eC0+cGF0dGVyblsxXSA+IGVuZCkKKyAgICAgICAgICAgIGlmIChjdHgtPnB0ciArIHN0YXRlLT5jaGFyc2l6ZSAqIGN0eC0+cGF0dGVyblsxXSA+IGVuZCkKICAgICAgICAgICAgICAgICBSRVRVUk5fRkFJTFVSRTsgLyogY2Fubm90IG1hdGNoICovCiAKICAgICAgICAgICAgIHN0YXRlLT5wdHIgPSBjdHgtPnB0cjsKQEAgLTEwMzAsNyArMTAwNiw3IEBACiAgICAgICAgICAgICBSRVRVUk5fT05fRVJST1IocmV0KTsKICAgICAgICAgICAgIERBVEFfTE9PS1VQX0FUKFNSRV9NQVRDSF9DT05URVhULCBjdHgsIGN0eF9wb3MpOwogICAgICAgICAgICAgY3R4LT5jb3VudCA9IHJldDsKLSAgICAgICAgICAgIGN0eC0+cHRyICs9IGN0eC0+Y291bnQ7CisgICAgICAgICAgICBjdHgtPnB0ciArPSBzdGF0ZS0+Y2hhcnNpemUgKiBjdHgtPmNvdW50OwogCiAgICAgICAgICAgICAvKiB3aGVuIHdlIGFycml2ZSBoZXJlLCBjb3VudCBjb250YWlucyB0aGUgbnVtYmVyIG9mCiAgICAgICAgICAgICAgICBtYXRjaGVzLCBhbmQgY3R4LT5wdHIgcG9pbnRzIHRvIHRoZSB0YWlsIG9mIHRoZSB0YXJnZXQKQEAgLTEwNTQsOCArMTAzMCw5IEBACiAgICAgICAgICAgICAgICAgY3R4LT51LmNociA9IGN0eC0+cGF0dGVybltjdHgtPnBhdHRlcm5bMF0rMV07CiAgICAgICAgICAgICAgICAgZm9yICg7OykgewogICAgICAgICAgICAgICAgICAgICB3aGlsZSAoY3R4LT5jb3VudCA+PSAoUHlfc3NpemVfdCkgY3R4LT5wYXR0ZXJuWzFdICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAoY3R4LT5wdHIgPj0gZW5kIHx8ICpjdHgtPnB0ciAhPSBjdHgtPnUuY2hyKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wdHItLTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChjdHgtPnB0ciA+PSBlbmQgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUkVfQ0hBUkdFVChzdGF0ZSwgY3R4LT5wdHIsIDApICE9IGN0eC0+dS5jaHIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPnB0ciAtPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICAgICAgICAgICAgICBjdHgtPmNvdW50LS07CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgaWYgKGN0eC0+Y291bnQgPCAoUHlfc3NpemVfdCkgY3R4LT5wYXR0ZXJuWzFdKQpAQCAtMTA3MCw3ICsxMDQ3LDcgQEAKIAogICAgICAgICAgICAgICAgICAgICBMQVNUTUFSS19SRVNUT1JFKCk7CiAKLSAgICAgICAgICAgICAgICAgICAgY3R4LT5wdHItLTsKKyAgICAgICAgICAgICAgICAgICAgY3R4LT5wdHIgLT0gc3RhdGUtPmNoYXJzaXplOwogICAgICAgICAgICAgICAgICAgICBjdHgtPmNvdW50LS07CiAgICAgICAgICAgICAgICAgfQogCkBAIC0xMDg0LDcgKzEwNjEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX09OX0VSUk9SKHJldCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBSRVRVUk5fU1VDQ0VTUzsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBjdHgtPnB0ci0tOworICAgICAgICAgICAgICAgICAgICBjdHgtPnB0ciAtPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICAgICAgICAgIGN0eC0+Y291bnQtLTsKICAgICAgICAgICAgICAgICAgICAgTEFTVE1BUktfUkVTVE9SRSgpOwogICAgICAgICAgICAgICAgIH0KQEAgLTExMDQsNyArMTA4MSw3IEBACiAgICAgICAgICAgICBUUkFDRSgoInwlcHwlcHxNSU5fUkVQRUFUX09ORSAlZCAlZFxuIiwgY3R4LT5wYXR0ZXJuLCBjdHgtPnB0ciwKICAgICAgICAgICAgICAgICAgICBjdHgtPnBhdHRlcm5bMV0sIGN0eC0+cGF0dGVyblsyXSkpOwogCi0gICAgICAgICAgICBpZiAoY3R4LT5wdHIgKyBjdHgtPnBhdHRlcm5bMV0gPiBlbmQpCisgICAgICAgICAgICBpZiAoY3R4LT5wdHIgKyBzdGF0ZS0+Y2hhcnNpemUgKiBjdHgtPnBhdHRlcm5bMV0gPiBlbmQpCiAgICAgICAgICAgICAgICAgUkVUVVJOX0ZBSUxVUkU7IC8qIGNhbm5vdCBtYXRjaCAqLwogCiAgICAgICAgICAgICBzdGF0ZS0+cHRyID0gY3R4LT5wdHI7CkBAIC0xMTIxLDcgKzEwOTgsNyBAQAogICAgICAgICAgICAgICAgICAgICBSRVRVUk5fRkFJTFVSRTsKICAgICAgICAgICAgICAgICAvKiBhZHZhbmNlIHBhc3QgbWluaW11bSBtYXRjaGVzIG9mIHJlcGVhdCAqLwogICAgICAgICAgICAgICAgIGN0eC0+Y291bnQgPSByZXQ7Ci0gICAgICAgICAgICAgICAgY3R4LT5wdHIgKz0gY3R4LT5jb3VudDsKKyAgICAgICAgICAgICAgICBjdHgtPnB0ciArPSBzdGF0ZS0+Y2hhcnNpemUgKiBjdHgtPmNvdW50OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoY3R4LT5wYXR0ZXJuW2N0eC0+cGF0dGVyblswXV0gPT0gU1JFX09QX1NVQ0NFU1MpIHsKQEAgLTExNDgsNyArMTEyNSw3IEBACiAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBhc3NlcnQocmV0ID09IDEpOwotICAgICAgICAgICAgICAgICAgICBjdHgtPnB0cisrOworICAgICAgICAgICAgICAgICAgICBjdHgtPnB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICAgICAgICAgIGN0eC0+Y291bnQrKzsKICAgICAgICAgICAgICAgICAgICAgTEFTVE1BUktfUkVTVE9SRSgpOwogICAgICAgICAgICAgICAgIH0KQEAgLTEzMjAsMTQgKzEyOTcsMTYgQEAKICAgICAgICAgICAgICAgICBpZiAoZ3JvdXByZWYgPj0gc3RhdGUtPmxhc3RtYXJrKSB7CiAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9GQUlMVVJFOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIFNSRV9DSEFSKiBwID0gKFNSRV9DSEFSKikgc3RhdGUtPm1hcmtbZ3JvdXByZWZdOwotICAgICAgICAgICAgICAgICAgICBTUkVfQ0hBUiogZSA9IChTUkVfQ0hBUiopIHN0YXRlLT5tYXJrW2dyb3VwcmVmKzFdOworICAgICAgICAgICAgICAgICAgICBjaGFyKiBwID0gKGNoYXIqKSBzdGF0ZS0+bWFya1tncm91cHJlZl07CisgICAgICAgICAgICAgICAgICAgIGNoYXIqIGUgPSAoY2hhciopIHN0YXRlLT5tYXJrW2dyb3VwcmVmKzFdOwogICAgICAgICAgICAgICAgICAgICBpZiAoIXAgfHwgIWUgfHwgZSA8IHApCiAgICAgICAgICAgICAgICAgICAgICAgICBSRVRVUk5fRkFJTFVSRTsKICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKHAgPCBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY3R4LT5wdHIgPj0gZW5kIHx8ICpjdHgtPnB0ciAhPSAqcCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdHgtPnB0ciA+PSBlbmQgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUkVfQ0hBUkdFVChzdGF0ZSwgY3R4LT5wdHIsIDApICE9IFNSRV9DSEFSR0VUKHN0YXRlLCBwLCAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRVRVUk5fRkFJTFVSRTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHArKzsgY3R4LT5wdHIrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIHAgKz0gc3RhdGUtPmNoYXJzaXplOworICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wdHIgKz0gc3RhdGUtPmNoYXJzaXplOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTM0NCwxNSArMTMyMywxNiBAQAogICAgICAgICAgICAgICAgIGlmIChncm91cHJlZiA+PSBzdGF0ZS0+bGFzdG1hcmspIHsKICAgICAgICAgICAgICAgICAgICAgUkVUVVJOX0ZBSUxVUkU7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgU1JFX0NIQVIqIHAgPSAoU1JFX0NIQVIqKSBzdGF0ZS0+bWFya1tncm91cHJlZl07Ci0gICAgICAgICAgICAgICAgICAgIFNSRV9DSEFSKiBlID0gKFNSRV9DSEFSKikgc3RhdGUtPm1hcmtbZ3JvdXByZWYrMV07CisgICAgICAgICAgICAgICAgICAgIGNoYXIqIHAgPSAoY2hhciopIHN0YXRlLT5tYXJrW2dyb3VwcmVmXTsKKyAgICAgICAgICAgICAgICAgICAgY2hhciogZSA9IChjaGFyKikgc3RhdGUtPm1hcmtbZ3JvdXByZWYrMV07CiAgICAgICAgICAgICAgICAgICAgIGlmICghcCB8fCAhZSB8fCBlIDwgcCkKICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9GQUlMVVJFOwogICAgICAgICAgICAgICAgICAgICB3aGlsZSAocCA8IGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdHgtPnB0ciA+PSBlbmQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+bG93ZXIoKmN0eC0+cHRyKSAhPSBzdGF0ZS0+bG93ZXIoKnApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5sb3dlcihTUkVfQ0hBUkdFVChzdGF0ZSwgY3R4LT5wdHIsIDApKSAhPSBzdGF0ZS0+bG93ZXIoKnApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9GQUlMVVJFOwotICAgICAgICAgICAgICAgICAgICAgICAgcCsrOyBjdHgtPnB0cisrOworICAgICAgICAgICAgICAgICAgICAgICAgcCsrOworICAgICAgICAgICAgICAgICAgICAgICAgY3R4LT5wdHIgKz0gc3RhdGUtPmNoYXJzaXplOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMTM4Niw3ICsxMzY2LDcgQEAKICAgICAgICAgICAgIC8qIDxBU1NFUlQ+IDxza2lwPiA8YmFjaz4gPHBhdHRlcm4+ICovCiAgICAgICAgICAgICBUUkFDRSgoInwlcHwlcHxBU1NFUlQgJWRcbiIsIGN0eC0+cGF0dGVybiwKICAgICAgICAgICAgICAgICAgICBjdHgtPnB0ciwgY3R4LT5wYXR0ZXJuWzFdKSk7Ci0gICAgICAgICAgICBzdGF0ZS0+cHRyID0gY3R4LT5wdHIgLSBjdHgtPnBhdHRlcm5bMV07CisgICAgICAgICAgICBzdGF0ZS0+cHRyID0gY3R4LT5wdHIgLSBzdGF0ZS0+Y2hhcnNpemUgKiBjdHgtPnBhdHRlcm5bMV07CiAgICAgICAgICAgICBpZiAoc3RhdGUtPnB0ciA8IHN0YXRlLT5iZWdpbm5pbmcpCiAgICAgICAgICAgICAgICAgUkVUVVJOX0ZBSUxVUkU7CiAgICAgICAgICAgICBET19KVU1QKEpVTVBfQVNTRVJULCBqdW1wX2Fzc2VydCwgY3R4LT5wYXR0ZXJuKzIpOwpAQCAtMTM5OSw3ICsxMzc5LDcgQEAKICAgICAgICAgICAgIC8qIDxBU1NFUlRfTk9UPiA8c2tpcD4gPGJhY2s+IDxwYXR0ZXJuPiAqLwogICAgICAgICAgICAgVFJBQ0UoKCJ8JXB8JXB8QVNTRVJUX05PVCAlZFxuIiwgY3R4LT5wYXR0ZXJuLAogICAgICAgICAgICAgICAgICAgIGN0eC0+cHRyLCBjdHgtPnBhdHRlcm5bMV0pKTsKLSAgICAgICAgICAgIHN0YXRlLT5wdHIgPSBjdHgtPnB0ciAtIGN0eC0+cGF0dGVyblsxXTsKKyAgICAgICAgICAgIHN0YXRlLT5wdHIgPSBjdHgtPnB0ciAtIHN0YXRlLT5jaGFyc2l6ZSAqIGN0eC0+cGF0dGVyblsxXTsKICAgICAgICAgICAgIGlmIChzdGF0ZS0+cHRyID49IHN0YXRlLT5iZWdpbm5pbmcpIHsKICAgICAgICAgICAgICAgICBET19KVU1QKEpVTVBfQVNTRVJUX05PVCwganVtcF9hc3NlcnRfbm90LCBjdHgtPnBhdHRlcm4rMik7CiAgICAgICAgICAgICAgICAgaWYgKHJldCkgewpAQCAtMTQ4MSw4ICsxNDYxLDggQEAKIExPQ0FMKFB5X3NzaXplX3QpCiBTUkVfU0VBUkNIKFNSRV9TVEFURSogc3RhdGUsIFNSRV9DT0RFKiBwYXR0ZXJuKQogewotICAgIFNSRV9DSEFSKiBwdHIgPSAoU1JFX0NIQVIgKilzdGF0ZS0+c3RhcnQ7Ci0gICAgU1JFX0NIQVIqIGVuZCA9IChTUkVfQ0hBUiAqKXN0YXRlLT5lbmQ7CisgICAgY2hhciogcHRyID0gKGNoYXIqKXN0YXRlLT5zdGFydDsKKyAgICBjaGFyKiBlbmQgPSAoY2hhciopc3RhdGUtPmVuZDsKICAgICBQeV9zc2l6ZV90IHN0YXR1cyA9IDA7CiAgICAgUHlfc3NpemVfdCBwcmVmaXhfbGVuID0gMDsKICAgICBQeV9zc2l6ZV90IHByZWZpeF9za2lwID0gMDsKQEAgLTE1MDAsOSArMTQ4MCw5IEBACiAgICAgICAgIGlmIChwYXR0ZXJuWzNdID4gMSkgewogICAgICAgICAgICAgLyogYWRqdXN0IGVuZCBwb2ludCAoYnV0IG1ha2Ugc3VyZSB3ZSBsZWF2ZSBhdCBsZWFzdCBvbmUKICAgICAgICAgICAgICAgIGNoYXJhY3RlciBpbiB0aGVyZSwgc28gbGl0ZXJhbCBzZWFyY2ggd2lsbCB3b3JrKSAqLwotICAgICAgICAgICAgZW5kIC09IHBhdHRlcm5bM10tMTsKKyAgICAgICAgICAgIGVuZCAtPSAocGF0dGVyblszXS0xKSAqIHN0YXRlLT5jaGFyc2l6ZTsKICAgICAgICAgICAgIGlmIChlbmQgPD0gcHRyKQotICAgICAgICAgICAgICAgIGVuZCA9IHB0cisxOworICAgICAgICAgICAgICAgIGVuZCA9IHB0ciArIHN0YXRlLT5jaGFyc2l6ZTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChmbGFncyAmIFNSRV9JTkZPX1BSRUZJWCkgewpAQCAtMTUyOCwxMCArMTUwOCwxMCBAQAogICAgICAgICAvKiBwYXR0ZXJuIHN0YXJ0cyB3aXRoIGEga25vd24gcHJlZml4LiAgdXNlIHRoZSBvdmVybGFwCiAgICAgICAgICAgIHRhYmxlIHRvIHNraXAgZm9yd2FyZCBhcyBmYXN0IGFzIHdlIHBvc3NpYmx5IGNhbiAqLwogICAgICAgICBQeV9zc2l6ZV90IGkgPSAwOwotICAgICAgICBlbmQgPSAoU1JFX0NIQVIgKilzdGF0ZS0+ZW5kOworICAgICAgICBlbmQgPSAoY2hhciAqKXN0YXRlLT5lbmQ7CiAgICAgICAgIHdoaWxlIChwdHIgPCBlbmQpIHsKICAgICAgICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgICAgICBpZiAoKFNSRV9DT0RFKSBwdHJbMF0gIT0gcHJlZml4W2ldKSB7CisgICAgICAgICAgICAgICAgaWYgKChTUkVfQ09ERSkgU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgMCkgIT0gcHJlZml4W2ldKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICghaSkKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICBlbHNlCkBAIC0xNTQwLDggKzE1MjAsOCBAQAogICAgICAgICAgICAgICAgICAgICBpZiAoKytpID09IHByZWZpeF9sZW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZvdW5kIGEgcG90ZW50aWFsIG1hdGNoICovCiAgICAgICAgICAgICAgICAgICAgICAgICBUUkFDRSgoInwlcHwlcHxTRUFSQ0ggU0NBTlxuIiwgcGF0dGVybiwgcHRyKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c3RhcnQgPSBwdHIgKyAxIC0gcHJlZml4X2xlbjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5wdHIgPSBwdHIgKyAxIC0gcHJlZml4X2xlbiArIHByZWZpeF9za2lwOworICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPnN0YXJ0ID0gcHRyIC0gKHByZWZpeF9sZW4gLSAxKSAqIHN0YXRlLT5jaGFyc2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLT5wdHIgPSBwdHIgLSAocHJlZml4X2xlbiAtIHByZWZpeF9za2lwIC0gMSkgKiBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxhZ3MgJiBTUkVfSU5GT19MSVRFUkFMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOyAvKiB3ZSBnb3QgYWxsIG9mIGl0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBTUkVfTUFUQ0goc3RhdGUsIHBhdHRlcm4gKyAyKnByZWZpeF9za2lwKTsKQEAgLTE1NTMsNyArMTUzMyw3IEBACiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHB0cisrOworICAgICAgICAgICAgcHRyICs9IHN0YXRlLT5jaGFyc2l6ZTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0xNTYzLDE1ICsxNTQzLDE2IEBACiAgICAgICAgIC8qIHBhdHRlcm4gc3RhcnRzIHdpdGggYSBsaXRlcmFsIGNoYXJhY3Rlci4gIHRoaXMgaXMgdXNlZAogICAgICAgICAgICBmb3Igc2hvcnQgcHJlZml4ZXMsIGFuZCBpZiBmYXN0IHNlYXJjaCBpcyBkaXNhYmxlZCAqLwogICAgICAgICBTUkVfQ09ERSBjaHIgPSBwYXR0ZXJuWzFdOwotICAgICAgICBlbmQgPSAoU1JFX0NIQVIgKilzdGF0ZS0+ZW5kOworICAgICAgICBlbmQgPSAoY2hhciopc3RhdGUtPmVuZDsKICAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAgd2hpbGUgKHB0ciA8IGVuZCAmJiAoU1JFX0NPREUpIHB0clswXSAhPSBjaHIpCi0gICAgICAgICAgICAgICAgcHRyKys7CisgICAgICAgICAgICB3aGlsZSAocHRyIDwgZW5kICYmIChTUkVfQ09ERSkgU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgMCkgIT0gY2hyKQorICAgICAgICAgICAgICAgIHB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICBpZiAocHRyID49IGVuZCkKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIFRSQUNFKCgifCVwfCVwfFNFQVJDSCBMSVRFUkFMXG4iLCBwYXR0ZXJuLCBwdHIpKTsKICAgICAgICAgICAgIHN0YXRlLT5zdGFydCA9IHB0cjsKLSAgICAgICAgICAgIHN0YXRlLT5wdHIgPSArK3B0cjsKKyAgICAgICAgICAgIHB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CisgICAgICAgICAgICBzdGF0ZS0+cHRyID0gcHRyOwogICAgICAgICAgICAgaWYgKGZsYWdzICYgU1JFX0lORk9fTElURVJBTCkKICAgICAgICAgICAgICAgICByZXR1cm4gMTsgLyogd2UgZ290IGFsbCBvZiBpdCAqLwogICAgICAgICAgICAgc3RhdHVzID0gU1JFX01BVENIKHN0YXRlLCBwYXR0ZXJuICsgMik7CkBAIC0xNTgwLDEwICsxNTYxLDEwIEBACiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGNoYXJzZXQpIHsKICAgICAgICAgLyogcGF0dGVybiBzdGFydHMgd2l0aCBhIGNoYXJhY3RlciBmcm9tIGEga25vd24gc2V0ICovCi0gICAgICAgIGVuZCA9IChTUkVfQ0hBUiAqKXN0YXRlLT5lbmQ7CisgICAgICAgIGVuZCA9IChjaGFyKilzdGF0ZS0+ZW5kOwogICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICB3aGlsZSAocHRyIDwgZW5kICYmICFTUkVfQ0hBUlNFVChjaGFyc2V0LCBwdHJbMF0pKQotICAgICAgICAgICAgICAgIHB0cisrOworICAgICAgICAgICAgd2hpbGUgKHB0ciA8IGVuZCAmJiAhU1JFX0NIQVJTRVQoY2hhcnNldCwgU1JFX0NIQVJHRVQoc3RhdGUsIHB0ciwgMCkpKQorICAgICAgICAgICAgICAgIHB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICBpZiAocHRyID49IGVuZCkKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIFRSQUNFKCgifCVwfCVwfFNFQVJDSCBDSEFSU0VUXG4iLCBwYXR0ZXJuLCBwdHIpKTsKQEAgLTE1OTIsMTMgKzE1NzMsMTQgQEAKICAgICAgICAgICAgIHN0YXR1cyA9IFNSRV9NQVRDSChzdGF0ZSwgcGF0dGVybik7CiAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IDApCiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBwdHIrKzsKKyAgICAgICAgICAgIHB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgIH0KICAgICB9IGVsc2UKICAgICAgICAgLyogZ2VuZXJhbCBjYXNlICovCiAgICAgICAgIHdoaWxlIChwdHIgPD0gZW5kKSB7CiAgICAgICAgICAgICBUUkFDRSgoInwlcHwlcHxTRUFSQ0hcbiIsIHBhdHRlcm4sIHB0cikpOwotICAgICAgICAgICAgc3RhdGUtPnN0YXJ0ID0gc3RhdGUtPnB0ciA9IHB0cisrOworICAgICAgICAgICAgc3RhdGUtPnN0YXJ0ID0gc3RhdGUtPnB0ciA9IHB0cjsKKyAgICAgICAgICAgIHB0ciArPSBzdGF0ZS0+Y2hhcnNpemU7CiAgICAgICAgICAgICBzdGF0dXMgPSBTUkVfTUFUQ0goc3RhdGUsIHBhdHRlcm4pOwogICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSAwKQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTYwNywxNiArMTU4OSw2IEBACiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAotTE9DQUwoaW50KQotU1JFX0xJVEVSQUxfVEVNUExBVEUoU1JFX0NIQVIqIHB0ciwgUHlfc3NpemVfdCBsZW4pCi17Ci0gICAgLyogY2hlY2sgaWYgZ2l2ZW4gc3RyaW5nIGlzIGEgbGl0ZXJhbCB0ZW1wbGF0ZSAoaS5lLiBubyBlc2NhcGVzKSAqLwotICAgIHdoaWxlIChsZW4tLSA+IDApCi0gICAgICAgIGlmICgqcHRyKysgPT0gJ1xcJykKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiAxOwotfQotCiAjaWYgIWRlZmluZWQoU1JFX1JFQ1VSU0lWRSkKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTE2MjQsNyArMTU5NiwyNCBAQAogCiAvKiBzZWUgc3JlLmggZm9yIG9iamVjdCBkZWNsYXJhdGlvbnMgKi8KIHN0YXRpYyBQeU9iamVjdCpwYXR0ZXJuX25ld19tYXRjaChQYXR0ZXJuT2JqZWN0KiwgU1JFX1NUQVRFKiwgaW50KTsKLXN0YXRpYyBQeU9iamVjdCpwYXR0ZXJuX3NjYW5uZXIoUGF0dGVybk9iamVjdCosIFB5T2JqZWN0Kik7CitzdGF0aWMgUHlPYmplY3QqcGF0dGVybl9zY2FubmVyKFBhdHRlcm5PYmplY3QqLCBQeU9iamVjdCosIFB5T2JqZWN0KiBrdyk7CisKK3N0YXRpYyBpbnQKK3NyZV9saXRlcmFsX3RlbXBsYXRlKGludCBjaGFyc2l6ZSwgY2hhciogcHRyLCBQeV9zc2l6ZV90IGxlbikKK3sKKyAgICAvKiBjaGVjayBpZiBnaXZlbiBzdHJpbmcgaXMgYSBsaXRlcmFsIHRlbXBsYXRlIChpLmUuIG5vIGVzY2FwZXMpICovCisgICAgc3RydWN0IHsKKyAgICAgICAgaW50IGNoYXJzaXplOworICAgIH0gc3RhdGUgPSB7CisgICAgICAgIGNoYXJzaXplCisgICAgfTsKKyAgICB3aGlsZSAobGVuLS0gPiAwKSB7CisgICAgICAgIGlmIChTUkVfQ0hBUkdFVCgoJnN0YXRlKSwgcHRyLCAwKSA9PSAnXFwnKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHB0ciArPSBjaGFyc2l6ZTsKKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBzcmVfY29kZXNpemUoUHlPYmplY3QqIHNlbGYsIFB5T2JqZWN0ICp1bnVzZWQpCkBAIC0xNjQxLDExICsxNjMwLDcgQEAKICAgICBpZiAoZmxhZ3MgJiBTUkVfRkxBR19MT0NBTEUpCiAgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJpIiwgc3JlX2xvd2VyX2xvY2FsZShjaGFyYWN0ZXIpKTsKICAgICBpZiAoZmxhZ3MgJiBTUkVfRkxBR19VTklDT0RFKQotI2lmIGRlZmluZWQoSEFWRV9VTklDT0RFKQogICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiaSIsIHNyZV9sb3dlcl91bmljb2RlKGNoYXJhY3RlcikpOwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoImkiLCBzcmVfbG93ZXJfbG9jYWxlKGNoYXJhY3RlcikpOwotI2VuZGlmCiAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoImkiLCBzcmVfbG93ZXIoY2hhcmFjdGVyKSk7CiB9CiAKQEAgLTE2NjQsNyArMTY0OSw5IEBACiB9CiAKIHN0YXRpYyB2b2lkKgotZ2V0c3RyaW5nKFB5T2JqZWN0KiBzdHJpbmcsIFB5X3NzaXplX3QqIHBfbGVuZ3RoLCBpbnQqIHBfY2hhcnNpemUsIFB5X2J1ZmZlciAqdmlldykKK2dldHN0cmluZyhQeU9iamVjdCogc3RyaW5nLCBQeV9zc2l6ZV90KiBwX2xlbmd0aCwKKyAgICAgICAgICBpbnQqIHBfbG9naWNhbF9jaGFyc2l6ZSwgaW50KiBwX2NoYXJzaXplLAorICAgICAgICAgIFB5X2J1ZmZlciAqdmlldykKIHsKICAgICAvKiBnaXZlbiBhIHB5dGhvbiBvYmplY3QsIHJldHVybiBhIGRhdGEgcG9pbnRlciwgYSBsZW5ndGggKGluCiAgICAgICAgY2hhcmFjdGVycyksIGFuZCBhIGNoYXJhY3RlciBzaXplLiAgcmV0dXJuIE5VTEwgaWYgdGhlIG9iamVjdApAQCAtMTY3OCwxMyArMTY2NSwxNiBAQAogICAgIC8qIFVuaWNvZGUgb2JqZWN0cyBkbyBub3Qgc3VwcG9ydCB0aGUgYnVmZmVyIEFQSS4gU28sIGdldCB0aGUgZGF0YQogICAgICAgIGRpcmVjdGx5IGluc3RlYWQuICovCiAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhzdHJpbmcpKSB7Ci0gICAgICAgIHB0ciA9ICh2b2lkICopUHlVbmljb2RlX0FTX0RBVEEoc3RyaW5nKTsKLSAgICAgICAgKnBfbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9TSVpFKHN0cmluZyk7Ci0gICAgICAgICpwX2NoYXJzaXplID0gc2l6ZW9mKFB5X1VOSUNPREUpOworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN0cmluZykgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcHRyID0gUHlVbmljb2RlX0RBVEEoc3RyaW5nKTsKKyAgICAgICAgKnBfbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyaW5nKTsKKyAgICAgICAgKnBfY2hhcnNpemUgPSBQeVVuaWNvZGVfS0lORChzdHJpbmcpOworICAgICAgICAqcF9sb2dpY2FsX2NoYXJzaXplID0gNDsKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKLSAgICAvKiBnZXQgcG9pbnRlciB0byBzdHJpbmcgYnVmZmVyICovCisgICAgLyogZ2V0IHBvaW50ZXIgdG8gYnl0ZSBzdHJpbmcgYnVmZmVyICovCiAgICAgdmlldy0+bGVuID0gLTE7CiAgICAgYnVmZmVyID0gUHlfVFlQRShzdHJpbmcpLT50cF9hc19idWZmZXI7CiAgICAgaWYgKCFidWZmZXIgfHwgIWJ1ZmZlci0+YmZfZ2V0YnVmZmVyIHx8CkBAIC0xNzA3LDEwICsxNjk3LDYgQEAKIAogICAgIGlmIChQeUJ5dGVzX0NoZWNrKHN0cmluZykgfHwgYnl0ZXMgPT0gc2l6ZSkKICAgICAgICAgY2hhcnNpemUgPSAxOwotI2lmIGRlZmluZWQoSEFWRV9VTklDT0RFKQotICAgIGVsc2UgaWYgKGJ5dGVzID09IChQeV9zc2l6ZV90KSAoc2l6ZSAqIHNpemVvZihQeV9VTklDT0RFKSkpCi0gICAgICAgIGNoYXJzaXplID0gc2l6ZW9mKFB5X1VOSUNPREUpOwotI2VuZGlmCiAgICAgZWxzZSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJidWZmZXIgc2l6ZSBtaXNtYXRjaCIpOwogICAgICAgICBnb3RvIGVycjsKQEAgLTE3MTgsNiArMTcwNCw3IEBACiAKICAgICAqcF9sZW5ndGggPSBzaXplOwogICAgICpwX2NoYXJzaXplID0gY2hhcnNpemU7CisgICAgKnBfbG9naWNhbF9jaGFyc2l6ZSA9IGNoYXJzaXplOwogCiAgICAgaWYgKHB0ciA9PSBOVUxMKSB7CiAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKQEAgLTE3MzgsNyArMTcyNSw3IEBACiAgICAgLyogcHJlcGFyZSBzdGF0ZSBvYmplY3QgKi8KIAogICAgIFB5X3NzaXplX3QgbGVuZ3RoOwotICAgIGludCBjaGFyc2l6ZTsKKyAgICBpbnQgbG9naWNhbF9jaGFyc2l6ZSwgY2hhcnNpemU7CiAgICAgdm9pZCogcHRyOwogCiAgICAgbWVtc2V0KHN0YXRlLCAwLCBzaXplb2YoU1JFX1NUQVRFKSk7CkBAIC0xNzQ3LDE4ICsxNzM0LDE4IEBACiAgICAgc3RhdGUtPmxhc3RpbmRleCA9IC0xOwogCiAgICAgc3RhdGUtPmJ1ZmZlci5idWYgPSBOVUxMOwotICAgIHB0ciA9IGdldHN0cmluZyhzdHJpbmcsICZsZW5ndGgsICZjaGFyc2l6ZSwgJnN0YXRlLT5idWZmZXIpOworICAgIHB0ciA9IGdldHN0cmluZyhzdHJpbmcsICZsZW5ndGgsICZsb2dpY2FsX2NoYXJzaXplLCAmY2hhcnNpemUsICZzdGF0ZS0+YnVmZmVyKTsKICAgICBpZiAoIXB0cikKICAgICAgICAgZ290byBlcnI7CiAKLSAgICBpZiAoY2hhcnNpemUgPT0gMSAmJiBwYXR0ZXJuLT5jaGFyc2l6ZSA+IDEpIHsKKyAgICBpZiAobG9naWNhbF9jaGFyc2l6ZSA9PSAxICYmIHBhdHRlcm4tPmxvZ2ljYWxfY2hhcnNpemUgPiAxKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0JCQkiY2FuJ3QgdXNlIGEgc3RyaW5nIHBhdHRlcm4gb24gYSBieXRlcy1saWtlIG9iamVjdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgImNhbid0IHVzZSBhIHN0cmluZyBwYXR0ZXJuIG9uIGEgYnl0ZXMtbGlrZSBvYmplY3QiKTsKICAgICAgICAgZ290byBlcnI7CiAgICAgfQotICAgIGlmIChjaGFyc2l6ZSA+IDEgJiYgcGF0dGVybi0+Y2hhcnNpemUgPT0gMSkgeworICAgIGlmIChsb2dpY2FsX2NoYXJzaXplID4gMSAmJiBwYXR0ZXJuLT5sb2dpY2FsX2NoYXJzaXplID09IDEpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLQkJCSJjYW4ndCB1c2UgYSBieXRlcyBwYXR0ZXJuIG9uIGEgc3RyaW5nLWxpa2Ugb2JqZWN0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICAiY2FuJ3QgdXNlIGEgYnl0ZXMgcGF0dGVybiBvbiBhIHN0cmluZy1saWtlIG9iamVjdCIpOwogICAgICAgICBnb3RvIGVycjsKICAgICB9CiAKQEAgLTE3NzMsNiArMTc2MCw3IEBACiAgICAgZWxzZSBpZiAoZW5kID4gbGVuZ3RoKQogICAgICAgICBlbmQgPSBsZW5ndGg7CiAKKyAgICBzdGF0ZS0+bG9naWNhbF9jaGFyc2l6ZSA9IGxvZ2ljYWxfY2hhcnNpemU7CiAgICAgc3RhdGUtPmNoYXJzaXplID0gY2hhcnNpemU7CiAKICAgICBzdGF0ZS0+YmVnaW5uaW5nID0gcHRyOwpAQCAtMTc4OCwxMSArMTc3Niw3IEBACiAgICAgaWYgKHBhdHRlcm4tPmZsYWdzICYgU1JFX0ZMQUdfTE9DQUxFKQogICAgICAgICBzdGF0ZS0+bG93ZXIgPSBzcmVfbG93ZXJfbG9jYWxlOwogICAgIGVsc2UgaWYgKHBhdHRlcm4tPmZsYWdzICYgU1JFX0ZMQUdfVU5JQ09ERSkKLSNpZiBkZWZpbmVkKEhBVkVfVU5JQ09ERSkKICAgICAgICAgc3RhdGUtPmxvd2VyID0gc3JlX2xvd2VyX3VuaWNvZGU7Ci0jZWxzZQotICAgICAgICBzdGF0ZS0+bG93ZXIgPSBzcmVfbG93ZXJfbG9jYWxlOwotI2VuZGlmCiAgICAgZWxzZQogICAgICAgICBzdGF0ZS0+bG93ZXIgPSBzcmVfbG93ZXI7CiAKQEAgLTE4OTksMTIgKzE4ODMsMTAgQEAKIAogICAgIFRSQUNFKCgifCVwfCVwfE1BVENIXG4iLCBQYXR0ZXJuT2JqZWN0X0dldENvZGUoc2VsZiksIHN0YXRlLnB0cikpOwogCi0gICAgaWYgKHN0YXRlLmNoYXJzaXplID09IDEpIHsKKyAgICBpZiAoc3RhdGUubG9naWNhbF9jaGFyc2l6ZSA9PSAxKSB7CiAgICAgICAgIHN0YXR1cyA9IHNyZV9tYXRjaCgmc3RhdGUsIFBhdHRlcm5PYmplY3RfR2V0Q29kZShzZWxmKSk7CiAgICAgfSBlbHNlIHsKLSNpZiBkZWZpbmVkKEhBVkVfVU5JQ09ERSkKICAgICAgICAgc3RhdHVzID0gc3JlX3VtYXRjaCgmc3RhdGUsIFBhdHRlcm5PYmplY3RfR2V0Q29kZShzZWxmKSk7Ci0jZW5kaWYKICAgICB9CiAKICAgICBUUkFDRSgoInwlcHwlcHxFTkRcbiIsIFBhdHRlcm5PYmplY3RfR2V0Q29kZShzZWxmKSwgc3RhdGUucHRyKSk7CkBAIC0xOTM2LDEyICsxOTE4LDEwIEBACiAKICAgICBUUkFDRSgoInwlcHwlcHxTRUFSQ0hcbiIsIFBhdHRlcm5PYmplY3RfR2V0Q29kZShzZWxmKSwgc3RhdGUucHRyKSk7CiAKLSAgICBpZiAoc3RhdGUuY2hhcnNpemUgPT0gMSkgeworICAgIGlmIChzdGF0ZS5sb2dpY2FsX2NoYXJzaXplID09IDEpIHsKICAgICAgICAgc3RhdHVzID0gc3JlX3NlYXJjaCgmc3RhdGUsIFBhdHRlcm5PYmplY3RfR2V0Q29kZShzZWxmKSk7CiAgICAgfSBlbHNlIHsKLSNpZiBkZWZpbmVkKEhBVkVfVU5JQ09ERSkKICAgICAgICAgc3RhdHVzID0gc3JlX3VzZWFyY2goJnN0YXRlLCBQYXR0ZXJuT2JqZWN0X0dldENvZGUoc2VsZikpOwotI2VuZGlmCiAgICAgfQogCiAgICAgVFJBQ0UoKCJ8JXB8JXB8RU5EXG4iLCBQYXR0ZXJuT2JqZWN0X0dldENvZGUoc2VsZiksIHN0YXRlLnB0cikpOwpAQCAtMjA4MywxNiArMjA2MywxNCBAQAogCiAgICAgICAgIHN0YXRlLnB0ciA9IHN0YXRlLnN0YXJ0OwogCi0gICAgICAgIGlmIChzdGF0ZS5jaGFyc2l6ZSA9PSAxKSB7CisgICAgICAgIGlmIChzdGF0ZS5sb2dpY2FsX2NoYXJzaXplID09IDEpIHsKICAgICAgICAgICAgIHN0YXR1cyA9IHNyZV9zZWFyY2goJnN0YXRlLCBQYXR0ZXJuT2JqZWN0X0dldENvZGUoc2VsZikpOwogICAgICAgICB9IGVsc2UgewotI2lmIGRlZmluZWQoSEFWRV9VTklDT0RFKQogICAgICAgICAgICAgc3RhdHVzID0gc3JlX3VzZWFyY2goJnN0YXRlLCBQYXR0ZXJuT2JqZWN0X0dldENvZGUoc2VsZikpOwotI2VuZGlmCiAgICAgICAgIH0KIAotCWlmIChQeUVycl9PY2N1cnJlZCgpKQotCSAgICBnb3RvIGVycm9yOworICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAKICAgICAgICAgaWYgKHN0YXR1cyA8PSAwKSB7CiAgICAgICAgICAgICBpZiAoc3RhdHVzID09IDApCkBAIC0yMTU0LDEzICsyMTMyLDEzIEBACiAKICNpZiBQWV9WRVJTSU9OX0hFWCA+PSAweDAyMDIwMDAwCiBzdGF0aWMgUHlPYmplY3QqCi1wYXR0ZXJuX2ZpbmRpdGVyKFBhdHRlcm5PYmplY3QqIHBhdHRlcm4sIFB5T2JqZWN0KiBhcmdzKQorcGF0dGVybl9maW5kaXRlcihQYXR0ZXJuT2JqZWN0KiBwYXR0ZXJuLCBQeU9iamVjdCogYXJncywgUHlPYmplY3QqIGt3KQogewogICAgIFB5T2JqZWN0KiBzY2FubmVyOwogICAgIFB5T2JqZWN0KiBzZWFyY2g7CiAgICAgUHlPYmplY3QqIGl0ZXJhdG9yOwogCi0gICAgc2Nhbm5lciA9IHBhdHRlcm5fc2Nhbm5lcihwYXR0ZXJuLCBhcmdzKTsKKyAgICBzY2FubmVyID0gcGF0dGVybl9zY2FubmVyKHBhdHRlcm4sIGFyZ3MsIGt3KTsKICAgICBpZiAoIXNjYW5uZXIpCiAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC0yMjEzLDE2ICsyMTkxLDE0IEBACiAKICAgICAgICAgc3RhdGUucHRyID0gc3RhdGUuc3RhcnQ7CiAKLSAgICAgICAgaWYgKHN0YXRlLmNoYXJzaXplID09IDEpIHsKKyAgICAgICAgaWYgKHN0YXRlLmxvZ2ljYWxfY2hhcnNpemUgPT0gMSkgewogICAgICAgICAgICAgc3RhdHVzID0gc3JlX3NlYXJjaCgmc3RhdGUsIFBhdHRlcm5PYmplY3RfR2V0Q29kZShzZWxmKSk7CiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgZGVmaW5lZChIQVZFX1VOSUNPREUpCiAgICAgICAgICAgICBzdGF0dXMgPSBzcmVfdXNlYXJjaCgmc3RhdGUsIFBhdHRlcm5PYmplY3RfR2V0Q29kZShzZWxmKSk7Ci0jZW5kaWYKICAgICAgICAgfQogCi0JaWYgKFB5RXJyX09jY3VycmVkKCkpCi0JICAgIGdvdG8gZXJyb3I7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgZ290byBlcnJvcjsKIAogICAgICAgICBpZiAoc3RhdHVzIDw9IDApIHsKICAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gMCkKQEAgLTIzMDMsNyArMjI3OSw3IEBACiAgICAgaW50IHN0YXR1czsKICAgICBQeV9zc2l6ZV90IG47CiAgICAgUHlfc3NpemVfdCBpLCBiLCBlOwotICAgIGludCBiaW50OworICAgIGludCBsb2dpY2FsX2NoYXJzaXplLCBjaGFyc2l6ZTsKICAgICBpbnQgZmlsdGVyX2lzX2NhbGxhYmxlOwogICAgIFB5X2J1ZmZlciB2aWV3OwogCkBAIC0yMzE2LDE2ICsyMjkyLDEwIEBACiAgICAgICAgIC8qIGlmIG5vdCBjYWxsYWJsZSwgY2hlY2sgaWYgaXQncyBhIGxpdGVyYWwgc3RyaW5nICovCiAgICAgICAgIGludCBsaXRlcmFsOwogICAgICAgICB2aWV3LmJ1ZiA9IE5VTEw7Ci0gICAgICAgIHB0ciA9IGdldHN0cmluZyhwdGVtcGxhdGUsICZuLCAmYmludCwgJnZpZXcpOwotICAgICAgICBiID0gYmludDsKKyAgICAgICAgcHRyID0gZ2V0c3RyaW5nKHB0ZW1wbGF0ZSwgJm4sICZsb2dpY2FsX2NoYXJzaXplLCAmY2hhcnNpemUsICZ2aWV3KTsKKyAgICAgICAgYiA9IGNoYXJzaXplOwogICAgICAgICBpZiAocHRyKSB7Ci0gICAgICAgICAgICBpZiAoYiA9PSAxKSB7Ci0JCSAgICBsaXRlcmFsID0gc3JlX2xpdGVyYWxfdGVtcGxhdGUoKHVuc2lnbmVkIGNoYXIgKilwdHIsIG4pOwotICAgICAgICAgICAgfSBlbHNlIHsKLSNpZiBkZWZpbmVkKEhBVkVfVU5JQ09ERSkKLQkJICAgIGxpdGVyYWwgPSBzcmVfdWxpdGVyYWxfdGVtcGxhdGUoKFB5X1VOSUNPREUgKilwdHIsIG4pOwotI2VuZGlmCi0gICAgICAgICAgICB9CisgICAgICAgICAgICBsaXRlcmFsID0gc3JlX2xpdGVyYWxfdGVtcGxhdGUoYiwgcHRyLCBuKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgICAgICBsaXRlcmFsID0gMDsKQEAgLTIzNjksMTYgKzIzMzksMTQgQEAKIAogICAgICAgICBzdGF0ZS5wdHIgPSBzdGF0ZS5zdGFydDsKIAotICAgICAgICBpZiAoc3RhdGUuY2hhcnNpemUgPT0gMSkgeworICAgICAgICBpZiAoc3RhdGUubG9naWNhbF9jaGFyc2l6ZSA9PSAxKSB7CiAgICAgICAgICAgICBzdGF0dXMgPSBzcmVfc2VhcmNoKCZzdGF0ZSwgUGF0dGVybk9iamVjdF9HZXRDb2RlKHNlbGYpKTsKICAgICAgICAgfSBlbHNlIHsKLSNpZiBkZWZpbmVkKEhBVkVfVU5JQ09ERSkKICAgICAgICAgICAgIHN0YXR1cyA9IHNyZV91c2VhcmNoKCZzdGF0ZSwgUGF0dGVybk9iamVjdF9HZXRDb2RlKHNlbGYpKTsKLSNlbmRpZgogICAgICAgICB9CiAKLQlpZiAoUHlFcnJfT2NjdXJyZWQoKSkKLQkgICAgZ290byBlcnJvcjsKKyAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBnb3RvIGVycm9yOwogCiAgICAgICAgIGlmIChzdGF0dXMgPD0gMCkgewogICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSAwKQpAQCAtMjU5NiwyMiArMjU2NCwyMiBAQAogCiBzdGF0aWMgUHlNZXRob2REZWYgcGF0dGVybl9tZXRob2RzW10gPSB7CiAgICAgeyJtYXRjaCIsIChQeUNGdW5jdGlvbikgcGF0dGVybl9tYXRjaCwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCi0JcGF0dGVybl9tYXRjaF9kb2N9LAorICAgICAgICBwYXR0ZXJuX21hdGNoX2RvY30sCiAgICAgeyJzZWFyY2giLCAoUHlDRnVuY3Rpb24pIHBhdHRlcm5fc2VhcmNoLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywKLQlwYXR0ZXJuX3NlYXJjaF9kb2N9LAorICAgICAgICBwYXR0ZXJuX3NlYXJjaF9kb2N9LAogICAgIHsic3ViIiwgKFB5Q0Z1bmN0aW9uKSBwYXR0ZXJuX3N1YiwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCi0JcGF0dGVybl9zdWJfZG9jfSwKKyAgICAgICAgcGF0dGVybl9zdWJfZG9jfSwKICAgICB7InN1Ym4iLCAoUHlDRnVuY3Rpb24pIHBhdHRlcm5fc3VibiwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCi0JcGF0dGVybl9zdWJuX2RvY30sCisgICAgICAgIHBhdHRlcm5fc3Vibl9kb2N9LAogICAgIHsic3BsaXQiLCAoUHlDRnVuY3Rpb24pIHBhdHRlcm5fc3BsaXQsIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLAotCXBhdHRlcm5fc3BsaXRfZG9jfSwKKyAgICAgICAgcGF0dGVybl9zcGxpdF9kb2N9LAogICAgIHsiZmluZGFsbCIsIChQeUNGdW5jdGlvbikgcGF0dGVybl9maW5kYWxsLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywKLQlwYXR0ZXJuX2ZpbmRhbGxfZG9jfSwKKyAgICAgICAgcGF0dGVybl9maW5kYWxsX2RvY30sCiAjaWYgUFlfVkVSU0lPTl9IRVggPj0gMHgwMjAyMDAwMAotICAgIHsiZmluZGl0ZXIiLCAoUHlDRnVuY3Rpb24pIHBhdHRlcm5fZmluZGl0ZXIsIE1FVEhfVkFSQVJHUywKLQlwYXR0ZXJuX2ZpbmRpdGVyX2RvY30sCisgICAgeyJmaW5kaXRlciIsIChQeUNGdW5jdGlvbikgcGF0dGVybl9maW5kaXRlciwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCisgICAgICAgIHBhdHRlcm5fZmluZGl0ZXJfZG9jfSwKICNlbmRpZgotICAgIHsic2Nhbm5lciIsIChQeUNGdW5jdGlvbikgcGF0dGVybl9zY2FubmVyLCBNRVRIX1ZBUkFSR1N9LAorICAgIHsic2Nhbm5lciIsIChQeUNGdW5jdGlvbikgcGF0dGVybl9zY2FubmVyLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEU30sCiAgICAgeyJfX2NvcHlfXyIsIChQeUNGdW5jdGlvbikgcGF0dGVybl9jb3B5LCBNRVRIX05PQVJHU30sCiAgICAgeyJfX2RlZXBjb3B5X18iLCAoUHlDRnVuY3Rpb24pIHBhdHRlcm5fZGVlcGNvcHksIE1FVEhfT30sCiAgICAge05VTEwsIE5VTEx9CkBAIC0yNjMwLDMxICsyNTk4LDMxIEBACiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCiAgICAgIl8iIFNSRV9NT0RVTEUgIi5TUkVfUGF0dGVybiIsCiAgICAgc2l6ZW9mKFBhdHRlcm5PYmplY3QpLCBzaXplb2YoU1JFX0NPREUpLAotICAgIChkZXN0cnVjdG9yKXBhdHRlcm5fZGVhbGxvYywJLyogdHBfZGVhbGxvYyAqLwotICAgIDAsCQkJCQkvKiB0cF9wcmludCAqLwotICAgIDAsCQkJCQkvKiB0cF9nZXRhdHRyICovCi0gICAgMCwJCQkJCS8qIHRwX3NldGF0dHIgKi8KLSAgICAwLAkJCQkJLyogdHBfcmVzZXJ2ZWQgKi8KLSAgICAwLAkJCQkJLyogdHBfcmVwciAqLwotICAgIDAsCQkJCQkvKiB0cF9hc19udW1iZXIgKi8KLSAgICAwLAkJCQkJLyogdHBfYXNfc2VxdWVuY2UgKi8KLSAgICAwLAkJCQkJLyogdHBfYXNfbWFwcGluZyAqLwotICAgIDAsCQkJCQkvKiB0cF9oYXNoICovCi0gICAgMCwJCQkJCS8qIHRwX2NhbGwgKi8KLSAgICAwLAkJCQkJLyogdHBfc3RyICovCi0gICAgMCwJCQkJCS8qIHRwX2dldGF0dHJvICovCi0gICAgMCwJCQkJCS8qIHRwX3NldGF0dHJvICovCi0gICAgMCwJCQkJCS8qIHRwX2FzX2J1ZmZlciAqLwotICAgIFB5X1RQRkxBR1NfREVGQVVMVCwJCQkvKiB0cF9mbGFncyAqLwotICAgIHBhdHRlcm5fZG9jLAkJCS8qIHRwX2RvYyAqLwotICAgIDAsCQkJCQkvKiB0cF90cmF2ZXJzZSAqLwotICAgIDAsCQkJCQkvKiB0cF9jbGVhciAqLwotICAgIDAsCQkJCQkvKiB0cF9yaWNoY29tcGFyZSAqLwotICAgIG9mZnNldG9mKFBhdHRlcm5PYmplY3QsIHdlYWtyZWZsaXN0KSwJLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICAwLAkJCQkJLyogdHBfaXRlciAqLwotICAgIDAsCQkJCQkvKiB0cF9pdGVybmV4dCAqLwotICAgIHBhdHRlcm5fbWV0aG9kcywJCQkvKiB0cF9tZXRob2RzICovCi0gICAgcGF0dGVybl9tZW1iZXJzLAkJCS8qIHRwX21lbWJlcnMgKi8KKyAgICAoZGVzdHJ1Y3RvcilwYXR0ZXJuX2RlYWxsb2MsICAgICAgICAvKiB0cF9kZWFsbG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3Jlc2VydmVkICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVwciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbWFwcGluZyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgcGF0dGVybl9kb2MsICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgb2Zmc2V0b2YoUGF0dGVybk9iamVjdCwgd2Vha3JlZmxpc3QpLCAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLworICAgIHBhdHRlcm5fbWV0aG9kcywgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBwYXR0ZXJuX21lbWJlcnMsICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiB9OwogCiBzdGF0aWMgaW50IF92YWxpZGF0ZShQYXR0ZXJuT2JqZWN0ICpzZWxmKTsgLyogRm9yd2FyZCAqLwpAQCAtMjcwOCwxMSArMjY3NiwxNCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBpZiAocGF0dGVybiA9PSBQeV9Ob25lKQorICAgIGlmIChwYXR0ZXJuID09IFB5X05vbmUpIHsKKyAgICAgICAgc2VsZi0+bG9naWNhbF9jaGFyc2l6ZSA9IC0xOwogICAgICAgICBzZWxmLT5jaGFyc2l6ZSA9IC0xOworICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgUHlfc3NpemVfdCBwX2xlbmd0aDsKLSAgICAgICAgaWYgKCFnZXRzdHJpbmcocGF0dGVybiwgJnBfbGVuZ3RoLCAmc2VsZi0+Y2hhcnNpemUsICZzZWxmLT52aWV3KSkgeworICAgICAgICBpZiAoIWdldHN0cmluZyhwYXR0ZXJuLCAmcF9sZW5ndGgsICZzZWxmLT5sb2dpY2FsX2NoYXJzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAmc2VsZi0+Y2hhcnNpemUsICZzZWxmLT52aWV3KSkgewogICAgICAgICAgICAgUHlfREVDUkVGKHNlbGYpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KQEAgLTI5NzcsMTMgKzI5NDgsMTMgQEAKICAgICAgICAgICAgICAgICAgICA8SU5GTz4gPDE9c2tpcD4gPDI9ZmxhZ3M+IDwzPW1pbj4gPDQ9bWF4PjsKICAgICAgICAgICAgICAgICAgICBJZiBTUkVfSU5GT19QUkVGSVggb3IgU1JFX0lORk9fQ0hBUlNFVCBpcyBpbiB0aGUgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgbW9yZSBmb2xsb3dzLiAqLwotICAgICAgICAgICAgICAgIFNSRV9DT0RFIGZsYWdzLCBtaW4sIG1heCwgaTsKKyAgICAgICAgICAgICAgICBTUkVfQ09ERSBmbGFncywgaTsKICAgICAgICAgICAgICAgICBTUkVfQ09ERSAqbmV3Y29kZTsKICAgICAgICAgICAgICAgICBHRVRfU0tJUDsKICAgICAgICAgICAgICAgICBuZXdjb2RlID0gY29kZStza2lwLTE7CiAgICAgICAgICAgICAgICAgR0VUX0FSRzsgZmxhZ3MgPSBhcmc7Ci0gICAgICAgICAgICAgICAgR0VUX0FSRzsgbWluID0gYXJnOwotICAgICAgICAgICAgICAgIEdFVF9BUkc7IG1heCA9IGFyZzsKKyAgICAgICAgICAgICAgICBHRVRfQVJHOworICAgICAgICAgICAgICAgIEdFVF9BUkc7CiAgICAgICAgICAgICAgICAgLyogQ2hlY2sgdGhhdCBvbmx5IHZhbGlkIGZsYWdzIGFyZSBwcmVzZW50ICovCiAgICAgICAgICAgICAgICAgaWYgKChmbGFncyAmIH4oU1JFX0lORk9fUFJFRklYIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUkVfSU5GT19MSVRFUkFMIHwKQEAgLTI5OTksOSArMjk3MCw5IEBACiAgICAgICAgICAgICAgICAgICAgIEZBSUw7CiAgICAgICAgICAgICAgICAgLyogVmFsaWRhdGUgdGhlIHByZWZpeCAqLwogICAgICAgICAgICAgICAgIGlmIChmbGFncyAmIFNSRV9JTkZPX1BSRUZJWCkgewotICAgICAgICAgICAgICAgICAgICBTUkVfQ09ERSBwcmVmaXhfbGVuLCBwcmVmaXhfc2tpcDsKKyAgICAgICAgICAgICAgICAgICAgU1JFX0NPREUgcHJlZml4X2xlbjsKICAgICAgICAgICAgICAgICAgICAgR0VUX0FSRzsgcHJlZml4X2xlbiA9IGFyZzsKLSAgICAgICAgICAgICAgICAgICAgR0VUX0FSRzsgcHJlZml4X3NraXAgPSBhcmc7CisgICAgICAgICAgICAgICAgICAgIEdFVF9BUkc7CiAgICAgICAgICAgICAgICAgICAgIC8qIEhlcmUgY29tZXMgdGhlIHByZWZpeCBzdHJpbmcgKi8KICAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGUrcHJlZml4X2xlbiA8IGNvZGUgfHwgY29kZStwcmVmaXhfbGVuID4gbmV3Y29kZSkKICAgICAgICAgICAgICAgICAgICAgICAgIEZBSUw7CkBAIC0zMDY1LDEwICszMDM2LDggQEAKICAgICAgICAgICAgICAgICBHRVRfQVJHOyBtYXggPSBhcmc7CiAgICAgICAgICAgICAgICAgaWYgKG1pbiA+IG1heCkKICAgICAgICAgICAgICAgICAgICAgRkFJTDsKLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKICAgICAgICAgICAgICAgICBpZiAobWF4ID4gNjU1MzUpCiAgICAgICAgICAgICAgICAgICAgIEZBSUw7Ci0jZW5kaWYKICAgICAgICAgICAgICAgICBpZiAoIV92YWxpZGF0ZV9pbm5lcihjb2RlLCBjb2RlK3NraXAtNCwgZ3JvdXBzKSkKICAgICAgICAgICAgICAgICAgICAgRkFJTDsKICAgICAgICAgICAgICAgICBjb2RlICs9IHNraXAtNDsKQEAgLTMwODYsMTAgKzMwNTUsOCBAQAogICAgICAgICAgICAgICAgIEdFVF9BUkc7IG1heCA9IGFyZzsKICAgICAgICAgICAgICAgICBpZiAobWluID4gbWF4KQogICAgICAgICAgICAgICAgICAgICBGQUlMOwotI2lmZGVmIFB5X1VOSUNPREVfV0lERQogICAgICAgICAgICAgICAgIGlmIChtYXggPiA2NTUzNSkKICAgICAgICAgICAgICAgICAgICAgRkFJTDsKLSNlbmRpZgogICAgICAgICAgICAgICAgIGlmICghX3ZhbGlkYXRlX2lubmVyKGNvZGUsIGNvZGUrc2tpcC0zLCBncm91cHMpKQogICAgICAgICAgICAgICAgICAgICBGQUlMOwogICAgICAgICAgICAgICAgIGNvZGUgKz0gc2tpcC0zOwpAQCAtMzI1Miw4ICszMjE5LDggQEAKICAgICBQeV9zc2l6ZV90IGk7CiAKICAgICBpZiAoaW5kZXggPT0gTlVMTCkKLQkvKiBEZWZhdWx0IHZhbHVlICovCi0JcmV0dXJuIDA7CisgICAgICAgIC8qIERlZmF1bHQgdmFsdWUgKi8KKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoUHlMb25nX0NoZWNrKGluZGV4KSkKICAgICAgICAgcmV0dXJuIFB5TG9uZ19Bc1NzaXplX3QoaW5kZXgpOwpAQCAtMzU5Myw3ICszNTYwLDcgQEAKIG1hdGNoX2xhc3RpbmRleF9nZXQoTWF0Y2hPYmplY3QgKnNlbGYpCiB7CiAgICAgaWYgKHNlbGYtPmxhc3RpbmRleCA+PSAwKQotCXJldHVybiBQeV9CdWlsZFZhbHVlKCJpIiwgc2VsZi0+bGFzdGluZGV4KTsKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoImkiLCBzZWxmLT5sYXN0aW5kZXgpOwogICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKICAgICByZXR1cm4gUHlfTm9uZTsKIH0KQEAgLTM2NDYsMzIgKzM2MTMsMzIgQEAKICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwwKQogICAgICJfIiBTUkVfTU9EVUxFICIuU1JFX01hdGNoIiwKICAgICBzaXplb2YoTWF0Y2hPYmplY3QpLCBzaXplb2YoUHlfc3NpemVfdCksCi0gICAgKGRlc3RydWN0b3IpbWF0Y2hfZGVhbGxvYywJLyogdHBfZGVhbGxvYyAqLwotICAgIDAsCQkJCS8qIHRwX3ByaW50ICovCi0gICAgMCwJCQkJLyogdHBfZ2V0YXR0ciAqLwotICAgIDAsCQkJCS8qIHRwX3NldGF0dHIgKi8KLSAgICAwLAkJCQkvKiB0cF9yZXNlcnZlZCAqLwotICAgIDAsCQkJCS8qIHRwX3JlcHIgKi8KLSAgICAwLAkJCQkvKiB0cF9hc19udW1iZXIgKi8KLSAgICAwLAkJCQkvKiB0cF9hc19zZXF1ZW5jZSAqLwotICAgIDAsCQkJCS8qIHRwX2FzX21hcHBpbmcgKi8KLSAgICAwLAkJCQkvKiB0cF9oYXNoICovCi0gICAgMCwJCQkJLyogdHBfY2FsbCAqLwotICAgIDAsCQkJCS8qIHRwX3N0ciAqLwotICAgIDAsCQkJCS8qIHRwX2dldGF0dHJvICovCi0gICAgMCwJCQkJLyogdHBfc2V0YXR0cm8gKi8KLSAgICAwLAkJCQkvKiB0cF9hc19idWZmZXIgKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQsCQkvKiB0cF9mbGFncyAqLwotICAgIDAsCQkJCS8qIHRwX2RvYyAqLwotICAgIDAsCQkJCS8qIHRwX3RyYXZlcnNlICovCi0gICAgMCwJCQkJLyogdHBfY2xlYXIgKi8KLSAgICAwLAkJCQkvKiB0cF9yaWNoY29tcGFyZSAqLwotICAgIDAsCQkJCS8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCi0gICAgMCwJCQkJLyogdHBfaXRlciAqLwotICAgIDAsCQkJCS8qIHRwX2l0ZXJuZXh0ICovCi0gICAgbWF0Y2hfbWV0aG9kcywJCS8qIHRwX21ldGhvZHMgKi8KLSAgICBtYXRjaF9tZW1iZXJzLAkJLyogdHBfbWVtYmVycyAqLwotICAgIG1hdGNoX2dldHNldCwgIAkgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIChkZXN0cnVjdG9yKW1hdGNoX2RlYWxsb2MsICAvKiB0cF9kZWFsbG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZlZCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfYnVmZmVyICovCisgICAgUHlfVFBGTEFHU19ERUZBVUxULCAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCisgICAgbWF0Y2hfbWV0aG9kcywgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBtYXRjaF9tZW1iZXJzLCAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLworICAgIG1hdGNoX2dldHNldCwgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KIH07CiAKIHN0YXRpYyBQeU9iamVjdCoKQEAgLTM3NjAsMTIgKzM3MjcsMTAgQEAKIAogICAgIHN0YXRlLT5wdHIgPSBzdGF0ZS0+c3RhcnQ7CiAKLSAgICBpZiAoc3RhdGUtPmNoYXJzaXplID09IDEpIHsKKyAgICBpZiAoc3RhdGUtPmxvZ2ljYWxfY2hhcnNpemUgPT0gMSkgewogICAgICAgICBzdGF0dXMgPSBzcmVfbWF0Y2goc3RhdGUsIFBhdHRlcm5PYmplY3RfR2V0Q29kZShzZWxmLT5wYXR0ZXJuKSk7CiAgICAgfSBlbHNlIHsKLSNpZiBkZWZpbmVkKEhBVkVfVU5JQ09ERSkKICAgICAgICAgc3RhdHVzID0gc3JlX3VtYXRjaChzdGF0ZSwgUGF0dGVybk9iamVjdF9HZXRDb2RlKHNlbGYtPnBhdHRlcm4pKTsKLSNlbmRpZgogICAgIH0KICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0zNzkzLDEyICszNzU4LDEwIEBACiAKICAgICBzdGF0ZS0+cHRyID0gc3RhdGUtPnN0YXJ0OwogCi0gICAgaWYgKHN0YXRlLT5jaGFyc2l6ZSA9PSAxKSB7CisgICAgaWYgKHN0YXRlLT5sb2dpY2FsX2NoYXJzaXplID09IDEpIHsKICAgICAgICAgc3RhdHVzID0gc3JlX3NlYXJjaChzdGF0ZSwgUGF0dGVybk9iamVjdF9HZXRDb2RlKHNlbGYtPnBhdHRlcm4pKTsKICAgICB9IGVsc2UgewotI2lmIGRlZmluZWQoSEFWRV9VTklDT0RFKQogICAgICAgICBzdGF0dXMgPSBzcmVfdXNlYXJjaChzdGF0ZSwgUGF0dGVybk9iamVjdF9HZXRDb2RlKHNlbGYtPnBhdHRlcm4pKTsKLSNlbmRpZgogICAgIH0KICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0zODIyLDcgKzM3ODUsNyBAQAogCiAjZGVmaW5lIFNDQU5fT0ZGKHgpIG9mZnNldG9mKFNjYW5uZXJPYmplY3QsIHgpCiBzdGF0aWMgUHlNZW1iZXJEZWYgc2Nhbm5lcl9tZW1iZXJzW10gPSB7Ci0gICAgeyJwYXR0ZXJuIiwJVF9PQkpFQ1QsCVNDQU5fT0ZGKHBhdHRlcm4pLAlSRUFET05MWX0sCisgICAgeyJwYXR0ZXJuIiwgVF9PQkpFQ1QsIFNDQU5fT0ZGKHBhdHRlcm4pLCBSRUFET05MWX0sCiAgICAge05VTEx9ICAvKiBTZW50aW5lbCAqLwogfTsKIApAQCAtMzgzMSwzNSArMzc5NCwzNSBAQAogICAgICJfIiBTUkVfTU9EVUxFICIuU1JFX1NjYW5uZXIiLAogICAgIHNpemVvZihTY2FubmVyT2JqZWN0KSwgMCwKICAgICAoZGVzdHJ1Y3RvcilzY2FubmVyX2RlYWxsb2MsLyogdHBfZGVhbGxvYyAqLwotICAgIDAsCQkJCS8qIHRwX3ByaW50ICovCi0gICAgMCwJCQkJLyogdHBfZ2V0YXR0ciAqLwotICAgIDAsCQkJCS8qIHRwX3NldGF0dHIgKi8KLSAgICAwLAkJCQkvKiB0cF9yZXNlcnZlZCAqLwotICAgIDAsCQkJCS8qIHRwX3JlcHIgKi8KLSAgICAwLAkJCQkvKiB0cF9hc19udW1iZXIgKi8KLSAgICAwLAkJCQkvKiB0cF9hc19zZXF1ZW5jZSAqLwotICAgIDAsCQkJCS8qIHRwX2FzX21hcHBpbmcgKi8KLSAgICAwLAkJCQkvKiB0cF9oYXNoICovCi0gICAgMCwJCQkJLyogdHBfY2FsbCAqLwotICAgIDAsCQkJCS8qIHRwX3N0ciAqLwotICAgIDAsCQkJCS8qIHRwX2dldGF0dHJvICovCi0gICAgMCwJCQkJLyogdHBfc2V0YXR0cm8gKi8KLSAgICAwLAkJCQkvKiB0cF9hc19idWZmZXIgKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQsCQkvKiB0cF9mbGFncyAqLwotICAgIDAsCQkJCS8qIHRwX2RvYyAqLwotICAgIDAsCQkJCS8qIHRwX3RyYXZlcnNlICovCi0gICAgMCwJCQkJLyogdHBfY2xlYXIgKi8KLSAgICAwLAkJCQkvKiB0cF9yaWNoY29tcGFyZSAqLwotICAgIDAsCQkJCS8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCi0gICAgMCwJCQkJLyogdHBfaXRlciAqLwotICAgIDAsCQkJCS8qIHRwX2l0ZXJuZXh0ICovCi0gICAgc2Nhbm5lcl9tZXRob2RzLAkJLyogdHBfbWV0aG9kcyAqLwotICAgIHNjYW5uZXJfbWVtYmVycywJCS8qIHRwX21lbWJlcnMgKi8KLSAgICAwLAkJCQkvKiB0cF9nZXRzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3Jlc2VydmVkICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JlcHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX21hcHBpbmcgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQsICAgICAgICAgLyogdHBfZmxhZ3MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICBzY2FubmVyX21ldGhvZHMsICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIHNjYW5uZXJfbWVtYmVycywgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwogfTsKIAogc3RhdGljIFB5T2JqZWN0KgotcGF0dGVybl9zY2FubmVyKFBhdHRlcm5PYmplY3QqIHBhdHRlcm4sIFB5T2JqZWN0KiBhcmdzKQorcGF0dGVybl9zY2FubmVyKFBhdHRlcm5PYmplY3QqIHBhdHRlcm4sIFB5T2JqZWN0KiBhcmdzLCBQeU9iamVjdCoga3cpCiB7CiAgICAgLyogY3JlYXRlIHNlYXJjaCBzdGF0ZSBvYmplY3QgKi8KIApAQCAtMzg2OCw3ICszODMxLDkgQEAKICAgICBQeU9iamVjdCogc3RyaW5nOwogICAgIFB5X3NzaXplX3Qgc3RhcnQgPSAwOwogICAgIFB5X3NzaXplX3QgZW5kID0gUFlfU1NJWkVfVF9NQVg7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPfG5uOnNjYW5uZXIiLCAmc3RyaW5nLCAmc3RhcnQsICZlbmQpKQorICAgIHN0YXRpYyBjaGFyKiBrd2xpc3RbXSA9IHsgInNvdXJjZSIsICJwb3MiLCAiZW5kcG9zIiwgTlVMTCB9OworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3LCAiT3xubjpzY2FubmVyIiwga3dsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdHJpbmcsICZzdGFydCwgJmVuZCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgLyogY3JlYXRlIHNjYW5uZXIgb2JqZWN0ICovCkBAIC0zODk3LDE1ICszODYyLDE1IEBACiB9OwogCiBzdGF0aWMgc3RydWN0IFB5TW9kdWxlRGVmIHNyZW1vZHVsZSA9IHsKLQlQeU1vZHVsZURlZl9IRUFEX0lOSVQsCi0JIl8iIFNSRV9NT0RVTEUsCi0JTlVMTCwKLQktMSwKLQlfZnVuY3Rpb25zLAotCU5VTEwsCi0JTlVMTCwKLQlOVUxMLAotCU5VTEwKKyAgICAgICAgUHlNb2R1bGVEZWZfSEVBRF9JTklULAorICAgICAgICAiXyIgU1JFX01PRFVMRSwKKyAgICAgICAgTlVMTCwKKyAgICAgICAgLTEsCisgICAgICAgIF9mdW5jdGlvbnMsCisgICAgICAgIE5VTEwsCisgICAgICAgIE5VTEwsCisgICAgICAgIE5VTEwsCisgICAgICAgIE5VTEwKIH07CiAKIFB5TU9ESU5JVF9GVU5DIFB5SW5pdF9fc3JlKHZvaWQpCkBAIC0zOTIxLDcgKzM4ODYsNyBAQAogCiAgICAgbSA9IFB5TW9kdWxlX0NyZWF0ZSgmc3JlbW9kdWxlKTsKICAgICBpZiAobSA9PSBOVUxMKQotICAgIAlyZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgZCA9IFB5TW9kdWxlX0dldERpY3QobSk7CiAKICAgICB4ID0gUHlMb25nX0Zyb21Mb25nKFNSRV9NQUdJQyk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL19zc2wuYyBiL01vZHVsZXMvX3NzbC5jCmluZGV4IDNmYTJkNmEuLmI1ZDE1MzAgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3NzbC5jCisrKyBiL01vZHVsZXMvX3NzbC5jCkBAIC0xOCwxNiArMTgsMjEgQEAKIAogI2lmZGVmIFdJVEhfVEhSRUFECiAjaW5jbHVkZSAicHl0aHJlYWQuaCIKKyNkZWZpbmUgUHlTU0xfQkVHSU5fQUxMT1dfVEhSRUFEU19TKHNhdmUpIFwKKyAgICBkbyB7IGlmIChfc3NsX2xvY2tzX2NvdW50PjApIHsgKHNhdmUpID0gUHlFdmFsX1NhdmVUaHJlYWQoKTsgfSB9IHdoaWxlICgwKQorI2RlZmluZSBQeVNTTF9FTkRfQUxMT1dfVEhSRUFEU19TKHNhdmUpIFwKKyAgICBkbyB7IGlmIChfc3NsX2xvY2tzX2NvdW50PjApIHsgUHlFdmFsX1Jlc3RvcmVUaHJlYWQoc2F2ZSk7IH0gfSB3aGlsZSAoMCkKICNkZWZpbmUgUHlTU0xfQkVHSU5fQUxMT1dfVEhSRUFEUyB7IFwKICAgICAgICAgICAgIFB5VGhyZWFkU3RhdGUgKl9zYXZlID0gTlVMTDsgIFwKLSAgICAgICAgICAgIGlmIChfc3NsX2xvY2tzX2NvdW50PjApIHtfc2F2ZSA9IFB5RXZhbF9TYXZlVGhyZWFkKCk7fQotI2RlZmluZSBQeVNTTF9CTE9DS19USFJFQURTICAgICBpZiAoX3NzbF9sb2Nrc19jb3VudD4wKXtQeUV2YWxfUmVzdG9yZVRocmVhZChfc2F2ZSl9OwotI2RlZmluZSBQeVNTTF9VTkJMT0NLX1RIUkVBRFMgICBpZiAoX3NzbF9sb2Nrc19jb3VudD4wKXtfc2F2ZSA9IFB5RXZhbF9TYXZlVGhyZWFkKCl9OwotI2RlZmluZSBQeVNTTF9FTkRfQUxMT1dfVEhSRUFEUyBpZiAoX3NzbF9sb2Nrc19jb3VudD4wKXtQeUV2YWxfUmVzdG9yZVRocmVhZChfc2F2ZSk7fSBcCi0gICAgICAgICB9CisgICAgICAgICAgICBQeVNTTF9CRUdJTl9BTExPV19USFJFQURTX1MoX3NhdmUpOworI2RlZmluZSBQeVNTTF9CTE9DS19USFJFQURTICAgICBQeVNTTF9FTkRfQUxMT1dfVEhSRUFEU19TKF9zYXZlKTsKKyNkZWZpbmUgUHlTU0xfVU5CTE9DS19USFJFQURTICAgUHlTU0xfQkVHSU5fQUxMT1dfVEhSRUFEU19TKF9zYXZlKTsKKyNkZWZpbmUgUHlTU0xfRU5EX0FMTE9XX1RIUkVBRFMgUHlTU0xfRU5EX0FMTE9XX1RIUkVBRFNfUyhfc2F2ZSk7IH0KIAogI2Vsc2UgICAvKiBubyBXSVRIX1RIUkVBRCAqLwogCisjZGVmaW5lIFB5U1NMX0JFR0lOX0FMTE9XX1RIUkVBRFNfUyhzYXZlKQorI2RlZmluZSBQeVNTTF9FTkRfQUxMT1dfVEhSRUFEU19TKHNhdmUpCiAjZGVmaW5lIFB5U1NMX0JFR0lOX0FMTE9XX1RIUkVBRFMKICNkZWZpbmUgUHlTU0xfQkxPQ0tfVEhSRUFEUwogI2RlZmluZSBQeVNTTF9VTkJMT0NLX1RIUkVBRFMKQEAgLTcxLDYgKzc2LDE2IEBACiAgICAgUFlfU1NMX1ZFUlNJT05fVExTMQogfTsKIAorc3RydWN0IHB5X3NzbF9lcnJvcl9jb2RlIHsKKyAgICBjb25zdCBjaGFyICptbmVtb25pYzsKKyAgICBpbnQgbGlicmFyeSwgcmVhc29uOworfTsKKworc3RydWN0IHB5X3NzbF9saWJyYXJ5X2NvZGUgeworICAgIGNvbnN0IGNoYXIgKmxpYnJhcnk7CisgICAgaW50IGNvZGU7Cit9OworCiAvKiBJbmNsdWRlIHN5bWJvbHMgZnJvbSBfc29ja2V0IG1vZHVsZSAqLwogI2luY2x1ZGUgInNvY2tldG1vZHVsZS5oIgogCkBAIC05Miw4ICsxMDcsMjEgQEAKICNpbmNsdWRlICJvcGVuc3NsL2Vyci5oIgogI2luY2x1ZGUgIm9wZW5zc2wvcmFuZC5oIgogCisvKiBJbmNsdWRlIGdlbmVyYXRlZCBkYXRhIChlcnJvciBjb2RlcykgKi8KKyNpbmNsdWRlICJfc3NsX2RhdGEuaCIKKwogLyogU1NMIGVycm9yIG9iamVjdCAqLwogc3RhdGljIFB5T2JqZWN0ICpQeVNTTEVycm9yT2JqZWN0Oworc3RhdGljIFB5T2JqZWN0ICpQeVNTTFplcm9SZXR1cm5FcnJvck9iamVjdDsKK3N0YXRpYyBQeU9iamVjdCAqUHlTU0xXYW50UmVhZEVycm9yT2JqZWN0Oworc3RhdGljIFB5T2JqZWN0ICpQeVNTTFdhbnRXcml0ZUVycm9yT2JqZWN0Oworc3RhdGljIFB5T2JqZWN0ICpQeVNTTFN5c2NhbGxFcnJvck9iamVjdDsKK3N0YXRpYyBQeU9iamVjdCAqUHlTU0xFT0ZFcnJvck9iamVjdDsKKworLyogRXJyb3IgbWFwcGluZ3MgKi8KK3N0YXRpYyBQeU9iamVjdCAqZXJyX2NvZGVzX3RvX25hbWVzOworc3RhdGljIFB5T2JqZWN0ICplcnJfbmFtZXNfdG9fY29kZXM7CitzdGF0aWMgUHlPYmplY3QgKmxpYl9jb2Rlc190b19uYW1lczsKIAogI2lmZGVmIFdJVEhfVEhSRUFECiAKQEAgLTEyNCw5ICsxNTIsMzUgQEAKICMgdW5kZWYgSEFWRV9TU0xfQ1RYX0NMRUFSX09QVElPTlMKICNlbmRpZgogCisvKiBJbiBjYXNlIG9mICd0bHMtdW5pcXVlJyBpdCB3aWxsIGJlIDEyIGJ5dGVzIGZvciBUTFMsIDM2IGJ5dGVzIGZvcgorICogb2xkZXIgU1NMLCBidXQgbGV0J3MgYmUgc2FmZSAqLworI2RlZmluZSBQeVNTTF9DQl9NQVhMRU4gMTI4CisKKy8qIFNTTF9nZXRfZmluaXNoZWQgZ290IGFkZGVkIHRvIE9wZW5TU0wgaW4gMC45LjUgKi8KKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSID49IDB4MDA5MDUwMGZMCisjIGRlZmluZSBIQVZFX09QRU5TU0xfRklOSVNIRUQgMQorI2Vsc2UKKyMgZGVmaW5lIEhBVkVfT1BFTlNTTF9GSU5JU0hFRCAwCisjZW5kaWYKKworLyogRUNESCBzdXBwb3J0IGdvdCBhZGRlZCB0byBPcGVuU1NMIGluIDAuOS44ICovCisjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MDA5MDgwMGZMICYmICFkZWZpbmVkKE9QRU5TU0xfTk9fRUNESCkKKyMgZGVmaW5lIE9QRU5TU0xfTk9fRUNESAorI2VuZGlmCisKKy8qIGNvbXByZXNzaW9uIHN1cHBvcnQgZ290IGFkZGVkIHRvIE9wZW5TU0wgaW4gMC45LjggKi8KKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgwMDkwODAwZkwgJiYgIWRlZmluZWQoT1BFTlNTTF9OT19DT01QKQorIyBkZWZpbmUgT1BFTlNTTF9OT19DT01QCisjZW5kaWYKKworCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgUHlPYmplY3RfSEVBRAogICAgIFNTTF9DVFggKmN0eDsKKyNpZmRlZiBPUEVOU1NMX05QTl9ORUdPVElBVEVECisgICAgY2hhciAqbnBuX3Byb3RvY29sczsKKyAgICBpbnQgbnBuX3Byb3RvY29sc19sZW47CisjZW5kaWYKIH0gUHlTU0xDb250ZXh0OwogCiB0eXBlZGVmIHN0cnVjdCB7CkBAIC0xMzUsNiArMTg5LDcgQEAKICAgICBTU0wgKnNzbDsKICAgICBYNTA5ICpwZWVyX2NlcnQ7CiAgICAgaW50IHNodXRkb3duX3NlZW5femVybzsKKyAgICBlbnVtIHB5X3NzbF9zZXJ2ZXJfb3JfY2xpZW50IHNvY2tldF90eXBlOwogfSBQeVNTTFNvY2tldDsKIAogc3RhdGljIFB5VHlwZU9iamVjdCBQeVNTTENvbnRleHRfVHlwZTsKQEAgLTE2NSwzNiArMjIwLDE1MiBAQAogI2RlZmluZSBFUlJTVFIxKHgseSx6KSAoeCAiOiIgeSAiOiAiIHopCiAjZGVmaW5lIEVSUlNUUih4KSBFUlJTVFIxKCJfc3NsLmMiLCBTVFJJTkdJRlkyKF9fTElORV9fKSwgeCkKIAotLyogWFhYIEl0IG1pZ2h0IGJlIGhlbHBmdWwgdG8gYXVnbWVudCB0aGUgZXJyb3IgbWVzc2FnZSBnZW5lcmF0ZWQKLSAgIGJlbG93IHdpdGggdGhlIG5hbWUgb2YgdGhlIFNTTCBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlZCB0aGUgZXJyb3IuCi0gICBJIGV4cGVjdCBpdCdzIG9idmlvdXMgbW9zdCBvZiB0aGUgdGltZS4KLSovCisKKy8qCisgKiBTU0wgZXJyb3JzLgorICovCisKK1B5RG9jX1NUUlZBUihTU0xFcnJvcl9kb2MsCisiQW4gZXJyb3Igb2NjdXJyZWQgaW4gdGhlIFNTTCBpbXBsZW1lbnRhdGlvbi4iKTsKKworUHlEb2NfU1RSVkFSKFNTTFplcm9SZXR1cm5FcnJvcl9kb2MsCisiU1NML1RMUyBzZXNzaW9uIGNsb3NlZCBjbGVhbmx5LiIpOworCitQeURvY19TVFJWQVIoU1NMV2FudFJlYWRFcnJvcl9kb2MsCisiTm9uLWJsb2NraW5nIFNTTCBzb2NrZXQgbmVlZHMgdG8gcmVhZCBtb3JlIGRhdGFcbiIKKyJiZWZvcmUgdGhlIHJlcXVlc3RlZCBvcGVyYXRpb24gY2FuIGJlIGNvbXBsZXRlZC4iKTsKKworUHlEb2NfU1RSVkFSKFNTTFdhbnRXcml0ZUVycm9yX2RvYywKKyJOb24tYmxvY2tpbmcgU1NMIHNvY2tldCBuZWVkcyB0byB3cml0ZSBtb3JlIGRhdGFcbiIKKyJiZWZvcmUgdGhlIHJlcXVlc3RlZCBvcGVyYXRpb24gY2FuIGJlIGNvbXBsZXRlZC4iKTsKKworUHlEb2NfU1RSVkFSKFNTTFN5c2NhbGxFcnJvcl9kb2MsCisiU3lzdGVtIGVycm9yIHdoZW4gYXR0ZW1wdGluZyBTU0wgb3BlcmF0aW9uLiIpOworCitQeURvY19TVFJWQVIoU1NMRU9GRXJyb3JfZG9jLAorIlNTTC9UTFMgY29ubmVjdGlvbiB0ZXJtaW5hdGVkIGFicnVwdGx5LiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorU1NMRXJyb3Jfc3RyKFB5T1NFcnJvck9iamVjdCAqc2VsZikKK3sKKyAgICBpZiAoc2VsZi0+c3RyZXJyb3IgIT0gTlVMTCAmJiBQeVVuaWNvZGVfQ2hlY2soc2VsZi0+c3RyZXJyb3IpKSB7CisgICAgICAgIFB5X0lOQ1JFRihzZWxmLT5zdHJlcnJvcik7CisgICAgICAgIHJldHVybiBzZWxmLT5zdHJlcnJvcjsKKyAgICB9CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUHlPYmplY3RfU3RyKHNlbGYtPmFyZ3MpOworfQorCitzdGF0aWMgUHlUeXBlX1Nsb3Qgc3NsZXJyb3JfdHlwZV9zbG90c1tdID0geworICAgIHtQeV90cF9iYXNlLCBOVUxMfSwgIC8qIEZpbGxlZCBvdXQgaW4gbW9kdWxlIGluaXQgYXMgaXQncyBub3QgYSBjb25zdGFudCAqLworICAgIHtQeV90cF9kb2MsIFNTTEVycm9yX2RvY30sCisgICAge1B5X3RwX3N0ciwgU1NMRXJyb3Jfc3RyfSwKKyAgICB7MCwgMH0sCit9OworCitzdGF0aWMgUHlUeXBlX1NwZWMgc3NsZXJyb3JfdHlwZV9zcGVjID0geworICAgICJzc2wuU1NMRXJyb3IiLAorICAgIHNpemVvZihQeU9TRXJyb3JPYmplY3QpLAorICAgIDAsCisgICAgUHlfVFBGTEFHU19ERUZBVUxUIHwgUHlfVFBGTEFHU19CQVNFVFlQRSwKKyAgICBzc2xlcnJvcl90eXBlX3Nsb3RzCit9OworCitzdGF0aWMgdm9pZAorZmlsbF9hbmRfc2V0X3NzbGVycm9yKFB5T2JqZWN0ICp0eXBlLCBpbnQgc3NsX2Vycm5vLCBjb25zdCBjaGFyICplcnJzdHIsCisgICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVubywgdW5zaWduZWQgbG9uZyBlcnJjb2RlKQoreworICAgIFB5T2JqZWN0ICplcnJfdmFsdWUgPSBOVUxMLCAqcmVhc29uX29iaiA9IE5VTEwsICpsaWJfb2JqID0gTlVMTDsKKyAgICBQeU9iamVjdCAqaW5pdF92YWx1ZSwgKm1zZywgKmtleTsKKyAgICBfUHlfSURFTlRJRklFUihyZWFzb24pOworICAgIF9QeV9JREVOVElGSUVSKGxpYnJhcnkpOworCisgICAgaWYgKGVycmNvZGUgIT0gMCkgeworICAgICAgICBpbnQgbGliLCByZWFzb247CisKKyAgICAgICAgbGliID0gRVJSX0dFVF9MSUIoZXJyY29kZSk7CisgICAgICAgIHJlYXNvbiA9IEVSUl9HRVRfUkVBU09OKGVycmNvZGUpOworICAgICAgICBrZXkgPSBQeV9CdWlsZFZhbHVlKCJpaSIsIGxpYiwgcmVhc29uKTsKKyAgICAgICAgaWYgKGtleSA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICByZWFzb25fb2JqID0gUHlEaWN0X0dldEl0ZW0oZXJyX2NvZGVzX3RvX25hbWVzLCBrZXkpOworICAgICAgICBQeV9ERUNSRUYoa2V5KTsKKyAgICAgICAgaWYgKHJlYXNvbl9vYmogPT0gTlVMTCkgeworICAgICAgICAgICAgLyogWFhYIGlmIHJlYXNvbiA8IDEwMCwgaXQgbWlnaHQgcmVmbGVjdCBhIGxpYnJhcnkgbnVtYmVyICghISkgKi8KKyAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAga2V5ID0gUHlMb25nX0Zyb21Mb25nKGxpYik7CisgICAgICAgIGlmIChrZXkgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgbGliX29iaiA9IFB5RGljdF9HZXRJdGVtKGxpYl9jb2Rlc190b19uYW1lcywga2V5KTsKKyAgICAgICAgUHlfREVDUkVGKGtleSk7CisgICAgICAgIGlmIChsaWJfb2JqID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVycnN0ciA9PSBOVUxMKQorICAgICAgICAgICAgZXJyc3RyID0gRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoZXJyY29kZSk7CisgICAgfQorICAgIGlmIChlcnJzdHIgPT0gTlVMTCkKKyAgICAgICAgZXJyc3RyID0gInVua25vd24gZXJyb3IiOworCisgICAgaWYgKHJlYXNvbl9vYmogJiYgbGliX29iaikKKyAgICAgICAgbXNnID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIlslUzogJVNdICVzIChfc3NsLmM6JWQpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliX29iaiwgcmVhc29uX29iaiwgZXJyc3RyLCBsaW5lbm8pOworICAgIGVsc2UgaWYgKGxpYl9vYmopCisgICAgICAgIG1zZyA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCJbJVNdICVzIChfc3NsLmM6JWQpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGliX29iaiwgZXJyc3RyLCBsaW5lbm8pOworICAgIGVsc2UKKyAgICAgICAgbXNnID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVzIChfc3NsLmM6JWQpIiwgZXJyc3RyLCBsaW5lbm8pOworCisgICAgaWYgKG1zZyA9PSBOVUxMKQorICAgICAgICBnb3RvIGZhaWw7CisgICAgaW5pdF92YWx1ZSA9IFB5X0J1aWxkVmFsdWUoImlOIiwgc3NsX2Vycm5vLCBtc2cpOworICAgIGVycl92YWx1ZSA9IFB5T2JqZWN0X0NhbGxPYmplY3QodHlwZSwgaW5pdF92YWx1ZSk7CisgICAgUHlfREVDUkVGKGluaXRfdmFsdWUpOworICAgIGlmIChlcnJfdmFsdWUgPT0gTlVMTCkKKyAgICAgICAgZ290byBmYWlsOworICAgIGlmIChyZWFzb25fb2JqID09IE5VTEwpCisgICAgICAgIHJlYXNvbl9vYmogPSBQeV9Ob25lOworICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKGVycl92YWx1ZSwgJlB5SWRfcmVhc29uLCByZWFzb25fb2JqKSkKKyAgICAgICAgZ290byBmYWlsOworICAgIGlmIChsaWJfb2JqID09IE5VTEwpCisgICAgICAgIGxpYl9vYmogPSBQeV9Ob25lOworICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKGVycl92YWx1ZSwgJlB5SWRfbGlicmFyeSwgbGliX29iaikpCisgICAgICAgIGdvdG8gZmFpbDsKKyAgICBQeUVycl9TZXRPYmplY3QodHlwZSwgZXJyX3ZhbHVlKTsKK2ZhaWw6CisgICAgUHlfWERFQ1JFRihlcnJfdmFsdWUpOworfQogCiBzdGF0aWMgUHlPYmplY3QgKgogUHlTU0xfU2V0RXJyb3IoUHlTU0xTb2NrZXQgKm9iaiwgaW50IHJldCwgY2hhciAqZmlsZW5hbWUsIGludCBsaW5lbm8pCiB7Ci0gICAgUHlPYmplY3QgKnY7Ci0gICAgY2hhciBidWZbMjA0OF07Ci0gICAgY2hhciAqZXJyc3RyOworICAgIFB5T2JqZWN0ICp0eXBlID0gUHlTU0xFcnJvck9iamVjdDsKKyAgICBjaGFyICplcnJzdHIgPSBOVUxMOwogICAgIGludCBlcnI7CiAgICAgZW51bSBweV9zc2xfZXJyb3IgcCA9IFBZX1NTTF9FUlJPUl9OT05FOworICAgIHVuc2lnbmVkIGxvbmcgZSA9IDA7CiAKICAgICBhc3NlcnQocmV0IDw9IDApOworICAgIGUgPSBFUlJfcGVla19sYXN0X2Vycm9yKCk7CiAKICAgICBpZiAob2JqLT5zc2wgIT0gTlVMTCkgewogICAgICAgICBlcnIgPSBTU0xfZ2V0X2Vycm9yKG9iai0+c3NsLCByZXQpOwogCiAgICAgICAgIHN3aXRjaCAoZXJyKSB7CiAgICAgICAgIGNhc2UgU1NMX0VSUk9SX1pFUk9fUkVUVVJOOgotICAgICAgICAgICAgZXJyc3RyID0gIlRMUy9TU0wgY29ubmVjdGlvbiBoYXMgYmVlbiBjbG9zZWQiOworICAgICAgICAgICAgZXJyc3RyID0gIlRMUy9TU0wgY29ubmVjdGlvbiBoYXMgYmVlbiBjbG9zZWQgKEVPRikiOworICAgICAgICAgICAgdHlwZSA9IFB5U1NMWmVyb1JldHVybkVycm9yT2JqZWN0OwogICAgICAgICAgICAgcCA9IFBZX1NTTF9FUlJPUl9aRVJPX1JFVFVSTjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNTTF9FUlJPUl9XQU5UX1JFQUQ6CiAgICAgICAgICAgICBlcnJzdHIgPSAiVGhlIG9wZXJhdGlvbiBkaWQgbm90IGNvbXBsZXRlIChyZWFkKSI7CisgICAgICAgICAgICB0eXBlID0gUHlTU0xXYW50UmVhZEVycm9yT2JqZWN0OwogICAgICAgICAgICAgcCA9IFBZX1NTTF9FUlJPUl9XQU5UX1JFQUQ7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTU0xfRVJST1JfV0FOVF9XUklURToKICAgICAgICAgICAgIHAgPSBQWV9TU0xfRVJST1JfV0FOVF9XUklURTsKKyAgICAgICAgICAgIHR5cGUgPSBQeVNTTFdhbnRXcml0ZUVycm9yT2JqZWN0OwogICAgICAgICAgICAgZXJyc3RyID0gIlRoZSBvcGVyYXRpb24gZGlkIG5vdCBjb21wbGV0ZSAod3JpdGUpIjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNTTF9FUlJPUl9XQU5UX1g1MDlfTE9PS1VQOgpAQCAtMjA3LDgwICszNzgsNjQgQEAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFNTTF9FUlJPUl9TWVNDQUxMOgogICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBsb25nIGUgPSBFUlJfZ2V0X2Vycm9yKCk7CiAgICAgICAgICAgICBpZiAoZSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgUHlTb2NrZXRTb2NrT2JqZWN0ICpzCiAgICAgICAgICAgICAgICAgICA9IChQeVNvY2tldFNvY2tPYmplY3QgKikgUHlXZWFrcmVmX0dldE9iamVjdChvYmotPlNvY2tldCk7CiAgICAgICAgICAgICAgICAgaWYgKHJldCA9PSAwIHx8ICgoKFB5T2JqZWN0ICopcykgPT0gUHlfTm9uZSkpIHsKICAgICAgICAgICAgICAgICAgICAgcCA9IFBZX1NTTF9FUlJPUl9FT0Y7CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBQeVNTTEVPRkVycm9yT2JqZWN0OwogICAgICAgICAgICAgICAgICAgICBlcnJzdHIgPSAiRU9GIG9jY3VycmVkIGluIHZpb2xhdGlvbiBvZiBwcm90b2NvbCI7CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChyZXQgPT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICAgLyogdW5kZXJseWluZyBCSU8gcmVwb3J0ZWQgYW4gSS9PIGVycm9yICovCiAgICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihzKTsKICAgICAgICAgICAgICAgICAgICAgRVJSX2NsZWFyX2Vycm9yKCk7Ci0gICAgICAgICAgICAgICAgICAgIHYgPSBzLT5lcnJvcmhhbmRsZXIoKTsKKyAgICAgICAgICAgICAgICAgICAgcy0+ZXJyb3JoYW5kbGVyKCk7CiAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihzKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHY7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8qIHBvc3NpYmxlPyAqLwogICAgICAgICAgICAgICAgICAgICBwID0gUFlfU1NMX0VSUk9SX1NZU0NBTEw7CisgICAgICAgICAgICAgICAgICAgIHR5cGUgPSBQeVNTTFN5c2NhbGxFcnJvck9iamVjdDsKICAgICAgICAgICAgICAgICAgICAgZXJyc3RyID0gIlNvbWUgSS9PIGVycm9yIG9jY3VycmVkIjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHAgPSBQWV9TU0xfRVJST1JfU1lTQ0FMTDsKLSAgICAgICAgICAgICAgICAvKiBYWFggUHJvdGVjdGVkIGJ5IGdsb2JhbCBpbnRlcnByZXRlciBsb2NrICovCi0gICAgICAgICAgICAgICAgZXJyc3RyID0gRVJSX2Vycm9yX3N0cmluZyhlLCBOVUxMKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgU1NMX0VSUk9SX1NTTDoKICAgICAgICAgewotICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBlID0gRVJSX2dldF9lcnJvcigpOwogICAgICAgICAgICAgcCA9IFBZX1NTTF9FUlJPUl9TU0w7Ci0gICAgICAgICAgICBpZiAoZSAhPSAwKQotICAgICAgICAgICAgICAgIC8qIFhYWCBQcm90ZWN0ZWQgYnkgZ2xvYmFsIGludGVycHJldGVyIGxvY2sgKi8KLSAgICAgICAgICAgICAgICBlcnJzdHIgPSBFUlJfZXJyb3Jfc3RyaW5nKGUsIE5VTEwpOwotICAgICAgICAgICAgZWxzZSB7ICAgICAgICAgICAgICAvKiBwb3NzaWJsZT8gKi8KKyAgICAgICAgICAgIGlmIChlID09IDApCisgICAgICAgICAgICAgICAgLyogcG9zc2libGU/ICovCiAgICAgICAgICAgICAgICAgZXJyc3RyID0gIkEgZmFpbHVyZSBpbiB0aGUgU1NMIGxpYnJhcnkgb2NjdXJyZWQiOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHAgPSBQWV9TU0xfRVJST1JfSU5WQUxJRF9FUlJPUl9DT0RFOwogICAgICAgICAgICAgZXJyc3RyID0gIkludmFsaWQgZXJyb3IgY29kZSI7CiAgICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBlcnJzdHIgPSBFUlJfZXJyb3Jfc3RyaW5nKEVSUl9wZWVrX2xhc3RfZXJyb3IoKSwgTlVMTCk7CiAgICAgfQotICAgIFB5T1Nfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIl9zc2wuYzolZDogJXMiLCBsaW5lbm8sIGVycnN0cik7CisgICAgZmlsbF9hbmRfc2V0X3NzbGVycm9yKHR5cGUsIHAsIGVycnN0ciwgbGluZW5vLCBlKTsKICAgICBFUlJfY2xlYXJfZXJyb3IoKTsKLSAgICB2ID0gUHlfQnVpbGRWYWx1ZSgiKGlzKSIsIHAsIGJ1Zik7Ci0gICAgaWYgKHYgIT0gTlVMTCkgewotICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlTU0xFcnJvck9iamVjdCwgdik7Ci0gICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICB9CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBfc2V0U1NMRXJyb3IgKGNoYXIgKmVycnN0ciwgaW50IGVycmNvZGUsIGNoYXIgKmZpbGVuYW1lLCBpbnQgbGluZW5vKSB7CiAKLSAgICBjaGFyIGJ1ZlsyMDQ4XTsKLSAgICBQeU9iamVjdCAqdjsKLQotICAgIGlmIChlcnJzdHIgPT0gTlVMTCkgeworICAgIGlmIChlcnJzdHIgPT0gTlVMTCkKICAgICAgICAgZXJyY29kZSA9IEVSUl9wZWVrX2xhc3RfZXJyb3IoKTsKLSAgICAgICAgZXJyc3RyID0gRVJSX2Vycm9yX3N0cmluZyhlcnJjb2RlLCBOVUxMKTsKLSAgICB9Ci0gICAgUHlPU19zbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiX3NzbC5jOiVkOiAlcyIsIGxpbmVubywgZXJyc3RyKTsKKyAgICBlbHNlCisgICAgICAgIGVycmNvZGUgPSAwOworICAgIGZpbGxfYW5kX3NldF9zc2xlcnJvcihQeVNTTEVycm9yT2JqZWN0LCBlcnJjb2RlLCBlcnJzdHIsIGxpbmVubywgZXJyY29kZSk7CiAgICAgRVJSX2NsZWFyX2Vycm9yKCk7Ci0gICAgdiA9IFB5X0J1aWxkVmFsdWUoIihpcykiLCBlcnJjb2RlLCBidWYpOwotICAgIGlmICh2ICE9IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfU2V0T2JqZWN0KFB5U1NMRXJyb3JPYmplY3QsIHYpOwotICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgfQogICAgIHJldHVybiBOVUxMOwogfQogCisvKgorICogU1NMIG9iamVjdHMKKyAqLworCiBzdGF0aWMgUHlTU0xTb2NrZXQgKgogbmV3UHlTU0xTb2NrZXQoU1NMX0NUWCAqY3R4LCBQeVNvY2tldFNvY2tPYmplY3QgKnNvY2ssCiAgICAgICAgICAgICAgICBlbnVtIHB5X3NzbF9zZXJ2ZXJfb3JfY2xpZW50IHNvY2tldF90eXBlLApAQCAtMzI4LDYgKzQ4Myw3IEBACiAgICAgICAgIFNTTF9zZXRfYWNjZXB0X3N0YXRlKHNlbGYtPnNzbCk7CiAgICAgUHlTU0xfRU5EX0FMTE9XX1RIUkVBRFMKIAorICAgIHNlbGYtPnNvY2tldF90eXBlID0gc29ja2V0X3R5cGU7CiAgICAgc2VsZi0+U29ja2V0ID0gUHlXZWFrcmVmX05ld1JlZigoUHlPYmplY3QgKikgc29jaywgTlVMTCk7CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0zNTYsNyArNTEyLDYgQEAKIAogICAgIC8qIEFjdHVhbGx5IG5lZ290aWF0ZSBTU0wgY29ubmVjdGlvbiAqLwogICAgIC8qIFhYWCBJZiBTU0xfZG9faGFuZHNoYWtlKCkgcmV0dXJucyAwLCBpdCdzIGFsc28gYSBmYWlsdXJlLiAqLwotICAgIHNvY2tzdGF0ZSA9IDA7CiAgICAgZG8gewogICAgICAgICBQeVNTTF9CRUdJTl9BTExPV19USFJFQURTCiAgICAgICAgIHJldCA9IFNTTF9kb19oYW5kc2hha2Uoc2VsZi0+c3NsKTsKQEAgLTk3Niw2ICsxMTMxLDM5IEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKKyNpZmRlZiBPUEVOU1NMX05QTl9ORUdPVElBVEVECitzdGF0aWMgUHlPYmplY3QgKlB5U1NMX3NlbGVjdGVkX25wbl9wcm90b2NvbChQeVNTTFNvY2tldCAqc2VsZikgeworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKm91dDsKKyAgICB1bnNpZ25lZCBpbnQgb3V0bGVuOworCisgICAgU1NMX2dldDBfbmV4dF9wcm90b19uZWdvdGlhdGVkKHNlbGYtPnNzbCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvdXQsICZvdXRsZW4pOworCisgICAgaWYgKG91dCA9PSBOVUxMKQorICAgICAgICBQeV9SRVRVUk5fTk9ORTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKChjaGFyICopIG91dCwgb3V0bGVuKTsKK30KKyNlbmRpZgorCitzdGF0aWMgUHlPYmplY3QgKlB5U1NMX2NvbXByZXNzaW9uKFB5U1NMU29ja2V0ICpzZWxmKSB7CisjaWZkZWYgT1BFTlNTTF9OT19DT01QCisgICAgUHlfUkVUVVJOX05PTkU7CisjZWxzZQorICAgIGNvbnN0IENPTVBfTUVUSE9EICpjb21wX21ldGhvZDsKKyAgICBjb25zdCBjaGFyICpzaG9ydF9uYW1lOworCisgICAgaWYgKHNlbGYtPnNzbCA9PSBOVUxMKQorICAgICAgICBQeV9SRVRVUk5fTk9ORTsKKyAgICBjb21wX21ldGhvZCA9IFNTTF9nZXRfY3VycmVudF9jb21wcmVzc2lvbihzZWxmLT5zc2wpOworICAgIGlmIChjb21wX21ldGhvZCA9PSBOVUxMIHx8IGNvbXBfbWV0aG9kLT50eXBlID09IE5JRF91bmRlZikKKyAgICAgICAgUHlfUkVUVVJOX05PTkU7CisgICAgc2hvcnRfbmFtZSA9IE9CSl9uaWQyc24oY29tcF9tZXRob2QtPnR5cGUpOworICAgIGlmIChzaG9ydF9uYW1lID09IE5VTEwpCisgICAgICAgIFB5X1JFVFVSTl9OT05FOworICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KHNob3J0X25hbWUpOworI2VuZGlmCit9CisKIHN0YXRpYyB2b2lkIFB5U1NMX2RlYWxsb2MoUHlTU0xTb2NrZXQgKnNlbGYpCiB7CiAgICAgaWYgKHNlbGYtPnBlZXJfY2VydCkgICAgICAgIC8qIFBvc3NpYmxlIG5vdCB0byBoYXZlIG9uZT8gKi8KQEAgLTEwOTYsNyArMTI4NCw2IEBACiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQogICAgIGRvIHsKLSAgICAgICAgZXJyID0gMDsKICAgICAgICAgUHlTU0xfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgICAgICBsZW4gPSBTU0xfd3JpdGUoc2VsZi0+c3NsLCBidWYuYnVmLCBidWYubGVuKTsKICAgICAgICAgZXJyID0gU1NMX2dldF9lcnJvcihzZWxmLT5zc2wsIGxlbik7CkBAIC0xMjMyLDcgKzE0MTksNiBAQAogICAgICAgICB9CiAgICAgfQogICAgIGRvIHsKLSAgICAgICAgZXJyID0gMDsKICAgICAgICAgUHlTU0xfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgICAgICBjb3VudCA9IFNTTF9yZWFkKHNlbGYtPnNzbCwgbWVtLCBsZW4pOwogICAgICAgICBlcnIgPSBTU0xfZ2V0X2Vycm9yKHNlbGYtPnNzbCwgY291bnQpOwpAQCAtMTM4NCw2ICsxNTcwLDQxIEBACiBEb2VzIHRoZSBTU0wgc2h1dGRvd24gaGFuZHNoYWtlIHdpdGggdGhlIHJlbW90ZSBlbmQsIGFuZCByZXR1cm5zXG5cCiB0aGUgdW5kZXJseWluZyBzb2NrZXQgb2JqZWN0LiIpOwogCisjaWYgSEFWRV9PUEVOU1NMX0ZJTklTSEVECitzdGF0aWMgUHlPYmplY3QgKgorUHlTU0xfdGxzX3VuaXF1ZV9jYihQeVNTTFNvY2tldCAqc2VsZikKK3sKKyAgICBQeU9iamVjdCAqcmV0dmFsID0gTlVMTDsKKyAgICBjaGFyIGJ1ZltQeVNTTF9DQl9NQVhMRU5dOworICAgIGludCBsZW47CisKKyAgICBpZiAoU1NMX3Nlc3Npb25fcmV1c2VkKHNlbGYtPnNzbCkgXiAhc2VsZi0+c29ja2V0X3R5cGUpIHsKKyAgICAgICAgLyogaWYgc2Vzc2lvbiBpcyByZXN1bWVkIFhPUiB3ZSBhcmUgdGhlIGNsaWVudCAqLworICAgICAgICBsZW4gPSBTU0xfZ2V0X2ZpbmlzaGVkKHNlbGYtPnNzbCwgYnVmLCBQeVNTTF9DQl9NQVhMRU4pOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLyogaWYgYSBuZXcgc2Vzc2lvbiBYT1Igd2UgYXJlIHRoZSBzZXJ2ZXIgKi8KKyAgICAgICAgbGVuID0gU1NMX2dldF9wZWVyX2ZpbmlzaGVkKHNlbGYtPnNzbCwgYnVmLCBQeVNTTF9DQl9NQVhMRU4pOworICAgIH0KKworICAgIC8qIEl0IGNhbm5vdCBiZSBuZWdhdGl2ZSBpbiBjdXJyZW50IE9wZW5TU0wgdmVyc2lvbiBhcyBvZiBKdWx5IDIwMTEgKi8KKyAgICBhc3NlcnQobGVuID49IDApOworICAgIGlmIChsZW4gPT0gMCkKKyAgICAgICAgUHlfUkVUVVJOX05PTkU7CisKKyAgICByZXR2YWwgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKGJ1ZiwgbGVuKTsKKworICAgIHJldHVybiByZXR2YWw7Cit9CisKK1B5RG9jX1NUUlZBUihQeVNTTF90bHNfdW5pcXVlX2NiX2RvYywKKyJ0bHNfdW5pcXVlX2NiKCkgLT4gYnl0ZXNcblwKK1xuXAorUmV0dXJucyB0aGUgJ3Rscy11bmlxdWUnIGNoYW5uZWwgYmluZGluZyBkYXRhLCBhcyBkZWZpbmVkIGJ5IFJGQyA1OTI5LlxuXAorXG5cCitJZiB0aGUgVExTIGhhbmRzaGFrZSBpcyBub3QgeWV0IGNvbXBsZXRlLCBOb25lIGlzIHJldHVybmVkIik7CisKKyNlbmRpZiAvKiBIQVZFX09QRU5TU0xfRklOSVNIRUQgKi8KIAogc3RhdGljIFB5TWV0aG9kRGVmIFB5U1NMTWV0aG9kc1tdID0gewogICAgIHsiZG9faGFuZHNoYWtlIiwgKFB5Q0Z1bmN0aW9uKVB5U1NMX1NTTGRvX2hhbmRzaGFrZSwgTUVUSF9OT0FSR1N9LApAQCAtMTM5Niw4ICsxNjE3LDE2IEBACiAgICAgeyJwZWVyX2NlcnRpZmljYXRlIiwgKFB5Q0Z1bmN0aW9uKVB5U1NMX3BlZXJjZXJ0LCBNRVRIX1ZBUkFSR1MsCiAgICAgIFB5U1NMX3BlZXJjZXJ0X2RvY30sCiAgICAgeyJjaXBoZXIiLCAoUHlDRnVuY3Rpb24pUHlTU0xfY2lwaGVyLCBNRVRIX05PQVJHU30sCisjaWZkZWYgT1BFTlNTTF9OUE5fTkVHT1RJQVRFRAorICAgIHsic2VsZWN0ZWRfbnBuX3Byb3RvY29sIiwgKFB5Q0Z1bmN0aW9uKVB5U1NMX3NlbGVjdGVkX25wbl9wcm90b2NvbCwgTUVUSF9OT0FSR1N9LAorI2VuZGlmCisgICAgeyJjb21wcmVzc2lvbiIsIChQeUNGdW5jdGlvbilQeVNTTF9jb21wcmVzc2lvbiwgTUVUSF9OT0FSR1N9LAogICAgIHsic2h1dGRvd24iLCAoUHlDRnVuY3Rpb24pUHlTU0xfU1NMc2h1dGRvd24sIE1FVEhfTk9BUkdTLAogICAgICBQeVNTTF9TU0xzaHV0ZG93bl9kb2N9LAorI2lmIEhBVkVfT1BFTlNTTF9GSU5JU0hFRAorICAgIHsidGxzX3VuaXF1ZV9jYiIsIChQeUNGdW5jdGlvbilQeVNTTF90bHNfdW5pcXVlX2NiLCBNRVRIX05PQVJHUywKKyAgICAgUHlTU0xfdGxzX3VuaXF1ZV9jYl9kb2N9LAorI2VuZGlmCiAgICAge05VTEwsIE5VTEx9CiB9OwogCkBAIC0xNTAxLDYgKzE3MzAsOSBAQAogY29udGV4dF9kZWFsbG9jKFB5U1NMQ29udGV4dCAqc2VsZikKIHsKICAgICBTU0xfQ1RYX2ZyZWUoc2VsZi0+Y3R4KTsKKyNpZmRlZiBPUEVOU1NMX05QTl9ORUdPVElBVEVECisgICAgUHlNZW1fRnJlZShzZWxmLT5ucG5fcHJvdG9jb2xzKTsKKyNlbmRpZgogICAgIFB5X1RZUEUoc2VsZiktPnRwX2ZyZWUoc2VsZik7CiB9CiAKQEAgLTE1MjUsNiArMTc1Nyw4NyBAQAogICAgIFB5X1JFVFVSTl9OT05FOwogfQogCisjaWZkZWYgT1BFTlNTTF9OUE5fTkVHT1RJQVRFRAorLyogdGhpcyBjYWxsYmFjayBnZXRzIHBhc3NlZCB0byBTU0xfQ1RYX3NldF9uZXh0X3Byb3Rvc19hZHZlcnRpc2VfY2IgKi8KK3N0YXRpYyBpbnQKK19hZHZlcnRpc2VOUE5fY2IoU1NMICpzLCAKKyAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqKmRhdGEsIHVuc2lnbmVkIGludCAqbGVuLCAKKyAgICAgICAgICAgICAgICAgdm9pZCAqYXJncykKK3sKKyAgICBQeVNTTENvbnRleHQgKnNzbF9jdHggPSAoUHlTU0xDb250ZXh0ICopIGFyZ3M7CisKKyAgICBpZiAoc3NsX2N0eC0+bnBuX3Byb3RvY29scyA9PSBOVUxMKSB7CisgICAgICAgICpkYXRhID0gKHVuc2lnbmVkIGNoYXIgKikgIiI7CisgICAgICAgICpsZW4gPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgICpkYXRhID0gKHVuc2lnbmVkIGNoYXIgKikgc3NsX2N0eC0+bnBuX3Byb3RvY29sczsKKyAgICAgICAgKmxlbiA9IHNzbF9jdHgtPm5wbl9wcm90b2NvbHNfbGVuOworICAgIH0KKworICAgIHJldHVybiBTU0xfVExTRVhUX0VSUl9PSzsKK30KKy8qIHRoaXMgY2FsbGJhY2sgZ2V0cyBwYXNzZWQgdG8gU1NMX0NUWF9zZXRfbmV4dF9wcm90b19zZWxlY3RfY2IgKi8KK3N0YXRpYyBpbnQKK19zZWxlY3ROUE5fY2IoU1NMICpzLCAKKyAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqKm91dCwgdW5zaWduZWQgY2hhciAqb3V0bGVuLAorICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzZXJ2ZXIsIHVuc2lnbmVkIGludCBzZXJ2ZXJfbGVuLAorICAgICAgICAgICAgICB2b2lkICphcmdzKQoreworICAgIFB5U1NMQ29udGV4dCAqc3NsX2N0eCA9IChQeVNTTENvbnRleHQgKikgYXJnczsKKworICAgIHVuc2lnbmVkIGNoYXIgKmNsaWVudCA9ICh1bnNpZ25lZCBjaGFyICopIHNzbF9jdHgtPm5wbl9wcm90b2NvbHM7CisgICAgaW50IGNsaWVudF9sZW47CisKKyAgICBpZiAoY2xpZW50ID09IE5VTEwpIHsKKyAgICAgICAgY2xpZW50ID0gKHVuc2lnbmVkIGNoYXIgKikgIiI7CisgICAgICAgIGNsaWVudF9sZW4gPSAwOworICAgIH0gZWxzZSB7CisgICAgICAgIGNsaWVudF9sZW4gPSBzc2xfY3R4LT5ucG5fcHJvdG9jb2xzX2xlbjsKKyAgICB9CisKKyAgICBTU0xfc2VsZWN0X25leHRfcHJvdG8ob3V0LCBvdXRsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlciwgc2VydmVyX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50LCBjbGllbnRfbGVuKTsKKworICAgIHJldHVybiBTU0xfVExTRVhUX0VSUl9PSzsKK30KKyNlbmRpZgorCitzdGF0aWMgUHlPYmplY3QgKgorX3NldF9ucG5fcHJvdG9jb2xzKFB5U1NMQ29udGV4dCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisjaWZkZWYgT1BFTlNTTF9OUE5fTkVHT1RJQVRFRAorICAgIFB5X2J1ZmZlciBwcm90b3M7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInkqOnNldF9ucG5fcHJvdG9jb2xzIiwgJnByb3RvcykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgc2VsZi0+bnBuX3Byb3RvY29scyA9IFB5TWVtX01hbGxvYyhwcm90b3MubGVuKTsKKyAgICBpZiAoc2VsZi0+bnBuX3Byb3RvY29scyA9PSBOVUxMKSB7CisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnByb3Rvcyk7CisgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworICAgIH0KKyAgICBtZW1jcHkoc2VsZi0+bnBuX3Byb3RvY29scywgcHJvdG9zLmJ1ZiwgcHJvdG9zLmxlbik7CisgICAgc2VsZi0+bnBuX3Byb3RvY29sc19sZW4gPSAoaW50KSBwcm90b3MubGVuOworCisgICAgLyogc2V0IGJvdGggc2VydmVyIGFuZCBjbGllbnQgY2FsbGJhY2tzLCBiZWNhdXNlIHRoZSBjb250ZXh0IGNhbgorICAgICAqIGJlIHVzZWQgdG8gY3JlYXRlIGJvdGggdHlwZXMgb2Ygc29ja2V0cyAqLworICAgIFNTTF9DVFhfc2V0X25leHRfcHJvdG9zX2FkdmVydGlzZWRfY2Ioc2VsZi0+Y3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2FkdmVydGlzZU5QTl9jYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworICAgIFNTTF9DVFhfc2V0X25leHRfcHJvdG9fc2VsZWN0X2NiKHNlbGYtPmN0eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfc2VsZWN0TlBOX2NiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYpOworCisgICAgUHlCdWZmZXJfUmVsZWFzZSgmcHJvdG9zKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKKyNlbHNlCisgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICJUaGUgTlBOIGV4dGVuc2lvbiByZXF1aXJlcyBPcGVuU1NMIDEuMC4xIG9yIGxhdGVyLiIpOworICAgIHJldHVybiBOVUxMOworI2VuZGlmCit9CisKIHN0YXRpYyBQeU9iamVjdCAqCiBnZXRfdmVyaWZ5X21vZGUoUHlTU0xDb250ZXh0ICpzZWxmLCB2b2lkICpjKQogewpAQCAtMTU5MSwxOSArMTkwNCwxMTggQEAKICAgICByZXR1cm4gMDsKIH0KIAordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5VGhyZWFkU3RhdGUgKnRocmVhZF9zdGF0ZTsKKyAgICBQeU9iamVjdCAqY2FsbGFibGU7CisgICAgY2hhciAqcGFzc3dvcmQ7CisgICAgUHlfc3NpemVfdCBzaXplOworICAgIGludCBlcnJvcjsKK30gX1B5U1NMUGFzc3dvcmRJbmZvOworCitzdGF0aWMgaW50CitfcHdpbmZvX3NldChfUHlTU0xQYXNzd29yZEluZm8gKnB3X2luZm8sIFB5T2JqZWN0KiBwYXNzd29yZCwKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJhZF90eXBlX2Vycm9yKQoreworICAgIC8qIFNldCB0aGUgcGFzc3dvcmQgYW5kIHNpemUgZmllbGRzIG9mIGEgX1B5U1NMUGFzc3dvcmRJbmZvIHN0cnVjdAorICAgICAgIGZyb20gYSB1bmljb2RlLCBieXRlcywgb3IgYnl0ZSBhcnJheSBvYmplY3QuCisgICAgICAgVGhlIHBhc3N3b3JkIGZpZWxkIHdpbGwgYmUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFuZCBtdXN0IGJlIGZyZWVkCisgICAgICAgYnkgdGhlIGNhbGxlciAqLworICAgIFB5T2JqZWN0ICpwYXNzd29yZF9ieXRlcyA9IE5VTEw7CisgICAgY29uc3QgY2hhciAqZGF0YSA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBzaXplOworCisgICAgaWYgKFB5VW5pY29kZV9DaGVjayhwYXNzd29yZCkpIHsKKyAgICAgICAgcGFzc3dvcmRfYnl0ZXMgPSBQeVVuaWNvZGVfQXNFbmNvZGVkU3RyaW5nKHBhc3N3b3JkLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgaWYgKCFwYXNzd29yZF9ieXRlcykgeworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICBkYXRhID0gUHlCeXRlc19BU19TVFJJTkcocGFzc3dvcmRfYnl0ZXMpOworICAgICAgICBzaXplID0gUHlCeXRlc19HRVRfU0laRShwYXNzd29yZF9ieXRlcyk7CisgICAgfSBlbHNlIGlmIChQeUJ5dGVzX0NoZWNrKHBhc3N3b3JkKSkgeworICAgICAgICBkYXRhID0gUHlCeXRlc19BU19TVFJJTkcocGFzc3dvcmQpOworICAgICAgICBzaXplID0gUHlCeXRlc19HRVRfU0laRShwYXNzd29yZCk7CisgICAgfSBlbHNlIGlmIChQeUJ5dGVBcnJheV9DaGVjayhwYXNzd29yZCkpIHsKKyAgICAgICAgZGF0YSA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyhwYXNzd29yZCk7CisgICAgICAgIHNpemUgPSBQeUJ5dGVBcnJheV9HRVRfU0laRShwYXNzd29yZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgYmFkX3R5cGVfZXJyb3IpOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIGZyZWUocHdfaW5mby0+cGFzc3dvcmQpOworICAgIHB3X2luZm8tPnBhc3N3b3JkID0gbWFsbG9jKHNpemUpOworICAgIGlmICghcHdfaW5mby0+cGFzc3dvcmQpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX01lbW9yeUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgInVuYWJsZSB0byBhbGxvY2F0ZSBwYXNzd29yZCBidWZmZXIiKTsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgbWVtY3B5KHB3X2luZm8tPnBhc3N3b3JkLCBkYXRhLCBzaXplKTsKKyAgICBwd19pbmZvLT5zaXplID0gc2l6ZTsKKworICAgIFB5X1hERUNSRUYocGFzc3dvcmRfYnl0ZXMpOworICAgIHJldHVybiAxOworCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKHBhc3N3b3JkX2J5dGVzKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorX3Bhc3N3b3JkX2NhbGxiYWNrKGNoYXIgKmJ1ZiwgaW50IHNpemUsIGludCByd2ZsYWcsIHZvaWQgKnVzZXJkYXRhKQoreworICAgIF9QeVNTTFBhc3N3b3JkSW5mbyAqcHdfaW5mbyA9IChfUHlTU0xQYXNzd29yZEluZm8qKSB1c2VyZGF0YTsKKyAgICBQeU9iamVjdCAqZm5fcmV0ID0gTlVMTDsKKworICAgIFB5U1NMX0VORF9BTExPV19USFJFQURTX1MocHdfaW5mby0+dGhyZWFkX3N0YXRlKTsKKworICAgIGlmIChwd19pbmZvLT5jYWxsYWJsZSkgeworICAgICAgICBmbl9yZXQgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzKHB3X2luZm8tPmNhbGxhYmxlLCBOVUxMKTsKKyAgICAgICAgaWYgKCFmbl9yZXQpIHsKKyAgICAgICAgICAgIC8qIFRPRE86IEl0IHdvdWxkIGJlIG5pY2UgdG8gbW92ZSBfY3R5cGVzX2FkZF90cmFjZWJhY2soKSBpbnRvIHRoZQorICAgICAgICAgICAgICAgY29yZSBweXRob24gQVBJLCBzbyB3ZSBjb3VsZCB1c2UgaXQgdG8gYWRkIGEgZnJhbWUgaGVyZSAqLworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghX3B3aW5mb19zZXQocHdfaW5mbywgZm5fcmV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICJwYXNzd29yZCBjYWxsYmFjayBtdXN0IHJldHVybiBhIHN0cmluZyIpKSB7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIFB5X0NMRUFSKGZuX3JldCk7CisgICAgfQorCisgICAgaWYgKHB3X2luZm8tPnNpemUgPiBzaXplKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgInBhc3N3b3JkIGNhbm5vdCBiZSBsb25nZXIgdGhhbiAlZCBieXRlcyIsIHNpemUpOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIFB5U1NMX0JFR0lOX0FMTE9XX1RIUkVBRFNfUyhwd19pbmZvLT50aHJlYWRfc3RhdGUpOworICAgIG1lbWNweShidWYsIHB3X2luZm8tPnBhc3N3b3JkLCBwd19pbmZvLT5zaXplKTsKKyAgICByZXR1cm4gcHdfaW5mby0+c2l6ZTsKKworZXJyb3I6CisgICAgUHlfWERFQ1JFRihmbl9yZXQpOworICAgIFB5U1NMX0JFR0lOX0FMTE9XX1RIUkVBRFNfUyhwd19pbmZvLT50aHJlYWRfc3RhdGUpOworICAgIHB3X2luZm8tPmVycm9yID0gMTsKKyAgICByZXR1cm4gLTE7Cit9CisKIHN0YXRpYyBQeU9iamVjdCAqCiBsb2FkX2NlcnRfY2hhaW4oUHlTU0xDb250ZXh0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7Ci0gICAgY2hhciAqa3dsaXN0W10gPSB7ImNlcnRmaWxlIiwgImtleWZpbGUiLCBOVUxMfTsKLSAgICBQeU9iamVjdCAqY2VydGZpbGUsICprZXlmaWxlID0gTlVMTDsKKyAgICBjaGFyICprd2xpc3RbXSA9IHsiY2VydGZpbGUiLCAia2V5ZmlsZSIsICJwYXNzd29yZCIsIE5VTEx9OworICAgIFB5T2JqZWN0ICpjZXJ0ZmlsZSwgKmtleWZpbGUgPSBOVUxMLCAqcGFzc3dvcmQgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpjZXJ0ZmlsZV9ieXRlcyA9IE5VTEwsICprZXlmaWxlX2J5dGVzID0gTlVMTDsKKyAgICBwZW1fcGFzc3dvcmRfY2IgKm9yaWdfcGFzc3dkX2NiID0gc2VsZi0+Y3R4LT5kZWZhdWx0X3Bhc3N3ZF9jYWxsYmFjazsKKyAgICB2b2lkICpvcmlnX3Bhc3N3ZF91c2VyZGF0YSA9IHNlbGYtPmN0eC0+ZGVmYXVsdF9wYXNzd2RfY2FsbGJhY2tfdXNlcmRhdGE7CisgICAgX1B5U1NMUGFzc3dvcmRJbmZvIHB3X2luZm8gPSB7IE5VTEwsIE5VTEwsIE5VTEwsIDAsIDAgfTsKICAgICBpbnQgcjsKIAogICAgIGVycm5vID0gMDsKICAgICBFUlJfY2xlYXJfZXJyb3IoKTsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLAotICAgICAgICAiT3xPOmxvYWRfY2VydF9jaGFpbiIsIGt3bGlzdCwKLSAgICAgICAgJmNlcnRmaWxlLCAma2V5ZmlsZSkpCisgICAgICAgICJPfE9POmxvYWRfY2VydF9jaGFpbiIsIGt3bGlzdCwKKyAgICAgICAgJmNlcnRmaWxlLCAma2V5ZmlsZSwgJnBhc3N3b3JkKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKGtleWZpbGUgPT0gUHlfTm9uZSkKICAgICAgICAga2V5ZmlsZSA9IE5VTEw7CkBAIC0xNjE3LDEyICsyMDI5LDI2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAia2V5ZmlsZSBzaG91bGQgYmUgYSB2YWxpZCBmaWxlc3lzdGVtIHBhdGgiKTsKICAgICAgICAgZ290byBlcnJvcjsKICAgICB9Ci0gICAgUHlTU0xfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIGlmIChwYXNzd29yZCAmJiBwYXNzd29yZCAhPSBQeV9Ob25lKSB7CisgICAgICAgIGlmIChQeUNhbGxhYmxlX0NoZWNrKHBhc3N3b3JkKSkgeworICAgICAgICAgICAgcHdfaW5mby5jYWxsYWJsZSA9IHBhc3N3b3JkOworICAgICAgICB9IGVsc2UgaWYgKCFfcHdpbmZvX3NldCgmcHdfaW5mbywgcGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwYXNzd29yZCBzaG91bGQgYmUgYSBzdHJpbmcgb3IgY2FsbGFibGUiKSkgeworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICBTU0xfQ1RYX3NldF9kZWZhdWx0X3Bhc3N3ZF9jYihzZWxmLT5jdHgsIF9wYXNzd29yZF9jYWxsYmFjayk7CisgICAgICAgIFNTTF9DVFhfc2V0X2RlZmF1bHRfcGFzc3dkX2NiX3VzZXJkYXRhKHNlbGYtPmN0eCwgJnB3X2luZm8pOworICAgIH0KKyAgICBQeVNTTF9CRUdJTl9BTExPV19USFJFQURTX1MocHdfaW5mby50aHJlYWRfc3RhdGUpOwogICAgIHIgPSBTU0xfQ1RYX3VzZV9jZXJ0aWZpY2F0ZV9jaGFpbl9maWxlKHNlbGYtPmN0eCwKICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcoY2VydGZpbGVfYnl0ZXMpKTsKLSAgICBQeVNTTF9FTkRfQUxMT1dfVEhSRUFEUworICAgIFB5U1NMX0VORF9BTExPV19USFJFQURTX1MocHdfaW5mby50aHJlYWRfc3RhdGUpOwogICAgIGlmIChyICE9IDEpIHsKLSAgICAgICAgaWYgKGVycm5vICE9IDApIHsKKyAgICAgICAgaWYgKHB3X2luZm8uZXJyb3IpIHsKKyAgICAgICAgICAgIEVSUl9jbGVhcl9lcnJvcigpOworICAgICAgICAgICAgLyogdGhlIHBhc3N3b3JkIGNhbGxiYWNrIGhhcyBhbHJlYWR5IHNldCB0aGUgZXJyb3IgaW5mb3JtYXRpb24gKi8KKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChlcnJubyAhPSAwKSB7CiAgICAgICAgICAgICBFUlJfY2xlYXJfZXJyb3IoKTsKICAgICAgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKICAgICAgICAgfQpAQCAtMTYzMSwzMyArMjA1Nyw0MyBAQAogICAgICAgICB9CiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQotICAgIFB5U1NMX0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICBQeVNTTF9CRUdJTl9BTExPV19USFJFQURTX1MocHdfaW5mby50aHJlYWRfc3RhdGUpOwogICAgIHIgPSBTU0xfQ1RYX3VzZV9Qcml2YXRlS2V5X2ZpbGUoc2VsZi0+Y3R4LAogICAgICAgICBQeUJ5dGVzX0FTX1NUUklORyhrZXlmaWxlID8ga2V5ZmlsZV9ieXRlcyA6IGNlcnRmaWxlX2J5dGVzKSwKICAgICAgICAgU1NMX0ZJTEVUWVBFX1BFTSk7Ci0gICAgUHlTU0xfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICBQeV9YREVDUkVGKGtleWZpbGVfYnl0ZXMpOwotICAgIFB5X1hERUNSRUYoY2VydGZpbGVfYnl0ZXMpOworICAgIFB5U1NMX0VORF9BTExPV19USFJFQURTX1MocHdfaW5mby50aHJlYWRfc3RhdGUpOworICAgIFB5X0NMRUFSKGtleWZpbGVfYnl0ZXMpOworICAgIFB5X0NMRUFSKGNlcnRmaWxlX2J5dGVzKTsKICAgICBpZiAociAhPSAxKSB7Ci0gICAgICAgIGlmIChlcnJubyAhPSAwKSB7CisgICAgICAgIGlmIChwd19pbmZvLmVycm9yKSB7CisgICAgICAgICAgICBFUlJfY2xlYXJfZXJyb3IoKTsKKyAgICAgICAgICAgIC8qIHRoZSBwYXNzd29yZCBjYWxsYmFjayBoYXMgYWxyZWFkeSBzZXQgdGhlIGVycm9yIGluZm9ybWF0aW9uICovCisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoZXJybm8gIT0gMCkgewogICAgICAgICAgICAgRVJSX2NsZWFyX2Vycm9yKCk7CiAgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfSU9FcnJvcik7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBfc2V0U1NMRXJyb3IoTlVMTCwgMCwgX19GSUxFX18sIF9fTElORV9fKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgZ290byBlcnJvcjsKICAgICB9Ci0gICAgUHlTU0xfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIFB5U1NMX0JFR0lOX0FMTE9XX1RIUkVBRFNfUyhwd19pbmZvLnRocmVhZF9zdGF0ZSk7CiAgICAgciA9IFNTTF9DVFhfY2hlY2tfcHJpdmF0ZV9rZXkoc2VsZi0+Y3R4KTsKLSAgICBQeVNTTF9FTkRfQUxMT1dfVEhSRUFEUworICAgIFB5U1NMX0VORF9BTExPV19USFJFQURTX1MocHdfaW5mby50aHJlYWRfc3RhdGUpOwogICAgIGlmIChyICE9IDEpIHsKICAgICAgICAgX3NldFNTTEVycm9yKE5VTEwsIDAsIF9fRklMRV9fLCBfX0xJTkVfXyk7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBnb3RvIGVycm9yOwogICAgIH0KKyAgICBTU0xfQ1RYX3NldF9kZWZhdWx0X3Bhc3N3ZF9jYihzZWxmLT5jdHgsIG9yaWdfcGFzc3dkX2NiKTsKKyAgICBTU0xfQ1RYX3NldF9kZWZhdWx0X3Bhc3N3ZF9jYl91c2VyZGF0YShzZWxmLT5jdHgsIG9yaWdfcGFzc3dkX3VzZXJkYXRhKTsKKyAgICBmcmVlKHB3X2luZm8ucGFzc3dvcmQpOwogICAgIFB5X1JFVFVSTl9OT05FOwogCiBlcnJvcjoKKyAgICBTU0xfQ1RYX3NldF9kZWZhdWx0X3Bhc3N3ZF9jYihzZWxmLT5jdHgsIG9yaWdfcGFzc3dkX2NiKTsKKyAgICBTU0xfQ1RYX3NldF9kZWZhdWx0X3Bhc3N3ZF9jYl91c2VyZGF0YShzZWxmLT5jdHgsIG9yaWdfcGFzc3dkX3VzZXJkYXRhKTsKKyAgICBmcmVlKHB3X2luZm8ucGFzc3dvcmQpOwogICAgIFB5X1hERUNSRUYoa2V5ZmlsZV9ieXRlcyk7CiAgICAgUHlfWERFQ1JFRihjZXJ0ZmlsZV9ieXRlcyk7CiAgICAgcmV0dXJuIE5VTEw7CkBAIC0xNzIwLDYgKzIxNTYsMzggQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKK2xvYWRfZGhfcGFyYW1zKFB5U1NMQ29udGV4dCAqc2VsZiwgUHlPYmplY3QgKmZpbGVwYXRoKQoreworICAgIEZJTEUgKmY7CisgICAgREggKmRoOworCisgICAgZiA9IF9QeV9mb3BlbihmaWxlcGF0aCwgInJiIik7CisgICAgaWYgKGYgPT0gTlVMTCkgeworICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWVPYmplY3QoUHlFeGNfT1NFcnJvciwgZmlsZXBhdGgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZXJybm8gPSAwOworICAgIFB5U1NMX0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICBkaCA9IFBFTV9yZWFkX0RIcGFyYW1zKGYsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgIFB5U1NMX0VORF9BTExPV19USFJFQURTCisgICAgaWYgKGRoID09IE5VTEwpIHsKKyAgICAgICAgaWYgKGVycm5vICE9IDApIHsKKyAgICAgICAgICAgIEVSUl9jbGVhcl9lcnJvcigpOworICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lT2JqZWN0KFB5RXhjX09TRXJyb3IsIGZpbGVwYXRoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIF9zZXRTU0xFcnJvcihOVUxMLCAwLCBfX0ZJTEVfXywgX19MSU5FX18pOworICAgICAgICB9CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoU1NMX0NUWF9zZXRfdG1wX2RoKHNlbGYtPmN0eCwgZGgpID09IDApCisgICAgICAgIF9zZXRTU0xFcnJvcihOVUxMLCAwLCBfX0ZJTEVfXywgX19MSU5FX18pOworICAgIERIX2ZyZWUoZGgpOworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgUHlPYmplY3QgKgogY29udGV4dF93cmFwX3NvY2tldChQeVNTTENvbnRleHQgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKICAgICBjaGFyICprd2xpc3RbXSA9IHsic29jayIsICJzZXJ2ZXJfc2lkZSIsICJzZXJ2ZXJfaG9zdG5hbWUiLCBOVUxMfTsKQEAgLTE4MDQsNiArMjI3MiwzNSBAQAogICAgIFB5X1JFVFVSTl9OT05FOwogfQogCisjaWZuZGVmIE9QRU5TU0xfTk9fRUNESAorc3RhdGljIFB5T2JqZWN0ICoKK3NldF9lY2RoX2N1cnZlKFB5U1NMQ29udGV4dCAqc2VsZiwgUHlPYmplY3QgKm5hbWUpCit7CisgICAgUHlPYmplY3QgKm5hbWVfYnl0ZXM7CisgICAgaW50IG5pZDsKKyAgICBFQ19LRVkgKmtleTsKKworICAgIGlmICghUHlVbmljb2RlX0ZTQ29udmVydGVyKG5hbWUsICZuYW1lX2J5dGVzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgYXNzZXJ0KFB5Qnl0ZXNfQ2hlY2sobmFtZV9ieXRlcykpOworICAgIG5pZCA9IE9CSl9zbjJuaWQoUHlCeXRlc19BU19TVFJJTkcobmFtZV9ieXRlcykpOworICAgIFB5X0RFQ1JFRihuYW1lX2J5dGVzKTsKKyAgICBpZiAobmlkID09IDApIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAidW5rbm93biBlbGxpcHRpYyBjdXJ2ZSBuYW1lICVSIiwgbmFtZSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBrZXkgPSBFQ19LRVlfbmV3X2J5X2N1cnZlX25hbWUobmlkKTsKKyAgICBpZiAoa2V5ID09IE5VTEwpIHsKKyAgICAgICAgX3NldFNTTEVycm9yKE5VTEwsIDAsIF9fRklMRV9fLCBfX0xJTkVfXyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBTU0xfQ1RYX3NldF90bXBfZWNkaChzZWxmLT5jdHgsIGtleSk7CisgICAgRUNfS0VZX2ZyZWUoa2V5KTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKyNlbmRpZgorCiBzdGF0aWMgUHlHZXRTZXREZWYgY29udGV4dF9nZXRzZXRsaXN0W10gPSB7CiAgICAgeyJvcHRpb25zIiwgKGdldHRlcikgZ2V0X29wdGlvbnMsCiAgICAgICAgICAgICAgICAgKHNldHRlcikgc2V0X29wdGlvbnMsIE5VTEx9LApAQCAtMTgxNywxNCArMjMxNCwyMiBAQAogICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCBOVUxMfSwKICAgICB7InNldF9jaXBoZXJzIiwgKFB5Q0Z1bmN0aW9uKSBzZXRfY2lwaGVycywKICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBOVUxMfSwKKyAgICB7Il9zZXRfbnBuX3Byb3RvY29scyIsIChQeUNGdW5jdGlvbikgX3NldF9ucG5fcHJvdG9jb2xzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTLCBOVUxMfSwKICAgICB7ImxvYWRfY2VydF9jaGFpbiIsIChQeUNGdW5jdGlvbikgbG9hZF9jZXJ0X2NoYWluLAogICAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgTlVMTH0sCisgICAgeyJsb2FkX2RoX3BhcmFtcyIsIChQeUNGdW5jdGlvbikgbG9hZF9kaF9wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfTywgTlVMTH0sCiAgICAgeyJsb2FkX3ZlcmlmeV9sb2NhdGlvbnMiLCAoUHlDRnVuY3Rpb24pIGxvYWRfdmVyaWZ5X2xvY2F0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsIE5VTEx9LAogICAgIHsic2Vzc2lvbl9zdGF0cyIsIChQeUNGdW5jdGlvbikgc2Vzc2lvbl9zdGF0cywKICAgICAgICAgICAgICAgICAgICAgICBNRVRIX05PQVJHUywgTlVMTH0sCiAgICAgeyJzZXRfZGVmYXVsdF92ZXJpZnlfcGF0aHMiLCAoUHlDRnVuY3Rpb24pIHNldF9kZWZhdWx0X3ZlcmlmeV9wYXRocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfTk9BUkdTLCBOVUxMfSwKKyNpZm5kZWYgT1BFTlNTTF9OT19FQ0RICisgICAgeyJzZXRfZWNkaF9jdXJ2ZSIsIChQeUNGdW5jdGlvbikgc2V0X2VjZGhfY3VydmUsCisgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfTywgTlVMTH0sCisjZW5kaWYKICAgICB7TlVMTCwgTlVMTH0gICAgICAgIC8qIHNlbnRpbmVsICovCiB9OwogCkBAIC0xODk1LDYgKzI0MDAsNjkgQEAKIGJvdW5kIG9uIHRoZSBlbnRyb3B5IGNvbnRhaW5lZCBpbiBzdHJpbmcuICBTZWUgUkZDIDE3NTAuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCitQeVNTTF9SQU5EKGludCBsZW4sIGludCBwc2V1ZG8pCit7CisgICAgaW50IG9rOworICAgIFB5T2JqZWN0ICpieXRlczsKKyAgICB1bnNpZ25lZCBsb25nIGVycjsKKyAgICBjb25zdCBjaGFyICplcnJzdHI7CisgICAgUHlPYmplY3QgKnY7CisKKyAgICBieXRlcyA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgbGVuKTsKKyAgICBpZiAoYnl0ZXMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKHBzZXVkbykgeworICAgICAgICBvayA9IFJBTkRfcHNldWRvX2J5dGVzKCh1bnNpZ25lZCBjaGFyKilQeUJ5dGVzX0FTX1NUUklORyhieXRlcyksIGxlbik7CisgICAgICAgIGlmIChvayA9PSAwIHx8IG9rID09IDEpCisgICAgICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTk8iLCBieXRlcywgb2sgPT0gMSA/IFB5X1RydWUgOiBQeV9GYWxzZSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBvayA9IFJBTkRfYnl0ZXMoKHVuc2lnbmVkIGNoYXIqKVB5Qnl0ZXNfQVNfU1RSSU5HKGJ5dGVzKSwgbGVuKTsKKyAgICAgICAgaWYgKG9rID09IDEpCisgICAgICAgICAgICByZXR1cm4gYnl0ZXM7CisgICAgfQorICAgIFB5X0RFQ1JFRihieXRlcyk7CisKKyAgICBlcnIgPSBFUlJfZ2V0X2Vycm9yKCk7CisgICAgZXJyc3RyID0gRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoZXJyKTsKKyAgICB2ID0gUHlfQnVpbGRWYWx1ZSgiKGtzKSIsIGVyciwgZXJyc3RyKTsKKyAgICBpZiAodiAhPSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldE9iamVjdChQeVNTTEVycm9yT2JqZWN0LCB2KTsKKyAgICAgICAgUHlfREVDUkVGKHYpOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK1B5U1NMX1JBTkRfYnl0ZXMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCBsZW47CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJpOlJBTkRfYnl0ZXMiLCAmbGVuKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIFB5U1NMX1JBTkQobGVuLCAwKTsKK30KKworUHlEb2NfU1RSVkFSKFB5U1NMX1JBTkRfYnl0ZXNfZG9jLAorIlJBTkRfYnl0ZXMobikgLT4gYnl0ZXNcblwKK1xuXAorR2VuZXJhdGUgbiBjcnlwdG9ncmFwaGljYWxseSBzdHJvbmcgcHNldWRvLXJhbmRvbSBieXRlcy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK1B5U1NMX1JBTkRfcHNldWRvX2J5dGVzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBpbnQgbGVuOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaTpSQU5EX3BzZXVkb19ieXRlcyIsICZsZW4pKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gUHlTU0xfUkFORChsZW4sIDEpOworfQorCitQeURvY19TVFJWQVIoUHlTU0xfUkFORF9wc2V1ZG9fYnl0ZXNfZG9jLAorIlJBTkRfcHNldWRvX2J5dGVzKG4pIC0+IChieXRlcywgaXNfY3J5cHRvZ3JhcGhpYylcblwKK1xuXAorR2VuZXJhdGUgbiBwc2V1ZG8tcmFuZG9tIGJ5dGVzLiBpc19jcnlwdG9ncmFwaGljIGlzIFRydWUgaWYgdGhlIGJ5dGVzXAorZ2VuZXJhdGVkIGFyZSBjcnlwdG9ncmFwaGljYWxseSBzdHJvbmcuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCiBQeVNTTF9SQU5EX3N0YXR1cyhQeU9iamVjdCAqc2VsZikKIHsKICAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKFJBTkRfc3RhdHVzKCkpOwpAQCAtMTk0Nyw2ICsyNTE1LDEwIEBACiAjaWZkZWYgSEFWRV9PUEVOU1NMX1JBTkQKICAgICB7IlJBTkRfYWRkIiwgICAgICAgICAgICBQeVNTTF9SQU5EX2FkZCwgTUVUSF9WQVJBUkdTLAogICAgICBQeVNTTF9SQU5EX2FkZF9kb2N9LAorICAgIHsiUkFORF9ieXRlcyIsICAgICAgICAgIFB5U1NMX1JBTkRfYnl0ZXMsIE1FVEhfVkFSQVJHUywKKyAgICAgUHlTU0xfUkFORF9ieXRlc19kb2N9LAorICAgIHsiUkFORF9wc2V1ZG9fYnl0ZXMiLCAgIFB5U1NMX1JBTkRfcHNldWRvX2J5dGVzLCBNRVRIX1ZBUkFSR1MsCisgICAgIFB5U1NMX1JBTkRfcHNldWRvX2J5dGVzX2RvY30sCiAgICAgeyJSQU5EX2VnZCIsICAgICAgICAgICAgUHlTU0xfUkFORF9lZ2QsIE1FVEhfVkFSQVJHUywKICAgICAgUHlTU0xfUkFORF9lZ2RfZG9jfSwKICAgICB7IlJBTkRfc3RhdHVzIiwgICAgICAgICAoUHlDRnVuY3Rpb24pUHlTU0xfUkFORF9zdGF0dXMsIE1FVEhfTk9BUkdTLApAQCAtMjA2Nyw2ICsyNjM5LDggQEAKICAgICB1bnNpZ25lZCBsb25nIGxpYnZlcjsKICAgICB1bnNpZ25lZCBpbnQgbWFqb3IsIG1pbm9yLCBmaXgsIHBhdGNoLCBzdGF0dXM7CiAgICAgUHlTb2NrZXRNb2R1bGVfQVBJT2JqZWN0ICpzb2NrZXRfYXBpOworICAgIHN0cnVjdCBweV9zc2xfZXJyb3JfY29kZSAqZXJyY29kZTsKKyAgICBzdHJ1Y3QgcHlfc3NsX2xpYnJhcnlfY29kZSAqbGliY29kZTsKIAogICAgIGlmIChQeVR5cGVfUmVhZHkoJlB5U1NMQ29udGV4dF9UeXBlKSA8IDApCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMjA5NiwxMiArMjY3MCwzOCBAQAogICAgIE9wZW5TU0xfYWRkX2FsbF9hbGdvcml0aG1zKCk7CiAKICAgICAvKiBBZGQgc3ltYm9scyB0byBtb2R1bGUgZGljdCAqLwotICAgIFB5U1NMRXJyb3JPYmplY3QgPSBQeUVycl9OZXdFeGNlcHRpb24oInNzbC5TU0xFcnJvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVNvY2tldE1vZHVsZS5lcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIHNzbGVycm9yX3R5cGVfc2xvdHNbMF0ucGZ1bmMgPSBQeUV4Y19PU0Vycm9yOworICAgIFB5U1NMRXJyb3JPYmplY3QgPSBQeVR5cGVfRnJvbVNwZWMoJnNzbGVycm9yX3R5cGVfc3BlYyk7CiAgICAgaWYgKFB5U1NMRXJyb3JPYmplY3QgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJTU0xFcnJvciIsIFB5U1NMRXJyb3JPYmplY3QpICE9IDApCisKKyAgICBQeVNTTFplcm9SZXR1cm5FcnJvck9iamVjdCA9IFB5RXJyX05ld0V4Y2VwdGlvbldpdGhEb2MoCisgICAgICAgICJzc2wuU1NMWmVyb1JldHVybkVycm9yIiwgU1NMWmVyb1JldHVybkVycm9yX2RvYywKKyAgICAgICAgUHlTU0xFcnJvck9iamVjdCwgTlVMTCk7CisgICAgUHlTU0xXYW50UmVhZEVycm9yT2JqZWN0ID0gUHlFcnJfTmV3RXhjZXB0aW9uV2l0aERvYygKKyAgICAgICAgInNzbC5TU0xXYW50UmVhZEVycm9yIiwgU1NMV2FudFJlYWRFcnJvcl9kb2MsCisgICAgICAgIFB5U1NMRXJyb3JPYmplY3QsIE5VTEwpOworICAgIFB5U1NMV2FudFdyaXRlRXJyb3JPYmplY3QgPSBQeUVycl9OZXdFeGNlcHRpb25XaXRoRG9jKAorICAgICAgICAic3NsLlNTTFdhbnRXcml0ZUVycm9yIiwgU1NMV2FudFdyaXRlRXJyb3JfZG9jLAorICAgICAgICBQeVNTTEVycm9yT2JqZWN0LCBOVUxMKTsKKyAgICBQeVNTTFN5c2NhbGxFcnJvck9iamVjdCA9IFB5RXJyX05ld0V4Y2VwdGlvbldpdGhEb2MoCisgICAgICAgICJzc2wuU1NMU3lzY2FsbEVycm9yIiwgU1NMU3lzY2FsbEVycm9yX2RvYywKKyAgICAgICAgUHlTU0xFcnJvck9iamVjdCwgTlVMTCk7CisgICAgUHlTU0xFT0ZFcnJvck9iamVjdCA9IFB5RXJyX05ld0V4Y2VwdGlvbldpdGhEb2MoCisgICAgICAgICJzc2wuU1NMRU9GRXJyb3IiLCBTU0xFT0ZFcnJvcl9kb2MsCisgICAgICAgIFB5U1NMRXJyb3JPYmplY3QsIE5VTEwpOworICAgIGlmIChQeVNTTFplcm9SZXR1cm5FcnJvck9iamVjdCA9PSBOVUxMCisgICAgICAgIHx8IFB5U1NMV2FudFJlYWRFcnJvck9iamVjdCA9PSBOVUxMCisgICAgICAgIHx8IFB5U1NMV2FudFdyaXRlRXJyb3JPYmplY3QgPT0gTlVMTAorICAgICAgICB8fCBQeVNTTFN5c2NhbGxFcnJvck9iamVjdCA9PSBOVUxMCisgICAgICAgIHx8IFB5U1NMRU9GRXJyb3JPYmplY3QgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJTU0xFcnJvciIsIFB5U1NMRXJyb3JPYmplY3QpICE9IDAKKyAgICAgICAgfHwgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIlNTTFplcm9SZXR1cm5FcnJvciIsIFB5U1NMWmVyb1JldHVybkVycm9yT2JqZWN0KSAhPSAwCisgICAgICAgIHx8IFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJTU0xXYW50UmVhZEVycm9yIiwgUHlTU0xXYW50UmVhZEVycm9yT2JqZWN0KSAhPSAwCisgICAgICAgIHx8IFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJTU0xXYW50V3JpdGVFcnJvciIsIFB5U1NMV2FudFdyaXRlRXJyb3JPYmplY3QpICE9IDAKKyAgICAgICAgfHwgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIlNTTFN5c2NhbGxFcnJvciIsIFB5U1NMU3lzY2FsbEVycm9yT2JqZWN0KSAhPSAwCisgICAgICAgIHx8IFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJTU0xFT0ZFcnJvciIsIFB5U1NMRU9GRXJyb3JPYmplY3QpICE9IDApCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiX1NTTENvbnRleHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlPYmplY3QgKikmUHlTU0xDb250ZXh0X1R5cGUpICE9IDApCkBAIC0yMTU0LDYgKzI3NTQsMTYgQEAKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiT1BfTk9fU1NMdjIiLCBTU0xfT1BfTk9fU1NMdjIpOwogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJPUF9OT19TU0x2MyIsIFNTTF9PUF9OT19TU0x2Myk7CiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk9QX05PX1RMU3YxIiwgU1NMX09QX05PX1RMU3YxKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiT1BfQ0lQSEVSX1NFUlZFUl9QUkVGRVJFTkNFIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfT1BfQ0lQSEVSX1NFUlZFUl9QUkVGRVJFTkNFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiT1BfU0lOR0xFX0RIX1VTRSIsIFNTTF9PUF9TSU5HTEVfREhfVVNFKTsKKyNpZmRlZiBTU0xfT1BfU0lOR0xFX0VDREhfVVNFCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk9QX1NJTkdMRV9FQ0RIX1VTRSIsIFNTTF9PUF9TSU5HTEVfRUNESF9VU0UpOworI2VuZGlmCisjaWZkZWYgU1NMX09QX05PX0NPTVBSRVNTSU9OCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk9QX05PX0NPTVBSRVNTSU9OIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTU0xfT1BfTk9fQ09NUFJFU1NJT04pOworI2VuZGlmCiAKICNpZmRlZiBTU0xfQ1RSTF9TRVRfVExTRVhUX0hPU1ROQU1FCiAgICAgciA9IFB5X1RydWU7CkBAIC0yMTYzLDYgKzI3NzMsNzQgQEAKICAgICBQeV9JTkNSRUYocik7CiAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJIQVNfU05JIiwgcik7CiAKKyNpZiBIQVZFX09QRU5TU0xfRklOSVNIRUQKKyAgICByID0gUHlfVHJ1ZTsKKyNlbHNlCisgICAgciA9IFB5X0ZhbHNlOworI2VuZGlmCisgICAgUHlfSU5DUkVGKHIpOworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiSEFTX1RMU19VTklRVUUiLCByKTsKKworI2lmZGVmIE9QRU5TU0xfTk9fRUNESAorICAgIHIgPSBQeV9GYWxzZTsKKyNlbHNlCisgICAgciA9IFB5X1RydWU7CisjZW5kaWYKKyAgICBQeV9JTkNSRUYocik7CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJIQVNfRUNESCIsIHIpOworCisjaWZkZWYgT1BFTlNTTF9OUE5fTkVHT1RJQVRFRAorICAgIHIgPSBQeV9UcnVlOworI2Vsc2UKKyAgICByID0gUHlfRmFsc2U7CisjZW5kaWYKKyAgICBQeV9JTkNSRUYocik7CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJIQVNfTlBOIiwgcik7CisKKyAgICAvKiBNYXBwaW5ncyBmb3IgZXJyb3IgY29kZXMgKi8KKyAgICBlcnJfY29kZXNfdG9fbmFtZXMgPSBQeURpY3RfTmV3KCk7CisgICAgZXJyX25hbWVzX3RvX2NvZGVzID0gUHlEaWN0X05ldygpOworICAgIGlmIChlcnJfY29kZXNfdG9fbmFtZXMgPT0gTlVMTCB8fCBlcnJfbmFtZXNfdG9fY29kZXMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgZXJyY29kZSA9IGVycm9yX2NvZGVzOworICAgIHdoaWxlIChlcnJjb2RlLT5tbmVtb25pYyAhPSBOVUxMKSB7CisgICAgICAgIFB5T2JqZWN0ICptbmVtbywgKmtleTsKKyAgICAgICAgbW5lbW8gPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhlcnJjb2RlLT5tbmVtb25pYyk7CisgICAgICAgIGtleSA9IFB5X0J1aWxkVmFsdWUoImlpIiwgZXJyY29kZS0+bGlicmFyeSwgZXJyY29kZS0+cmVhc29uKTsKKyAgICAgICAgaWYgKG1uZW1vID09IE5VTEwgfHwga2V5ID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtKGVycl9jb2Rlc190b19uYW1lcywga2V5LCBtbmVtbykpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtKGVycl9uYW1lc190b19jb2RlcywgbW5lbW8sIGtleSkpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgUHlfREVDUkVGKGtleSk7CisgICAgICAgIFB5X0RFQ1JFRihtbmVtbyk7CisgICAgICAgIGVycmNvZGUrKzsKKyAgICB9CisgICAgaWYgKFB5TW9kdWxlX0FkZE9iamVjdChtLCAiZXJyX2NvZGVzX3RvX25hbWVzIiwgZXJyX2NvZGVzX3RvX25hbWVzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKFB5TW9kdWxlX0FkZE9iamVjdChtLCAiZXJyX25hbWVzX3RvX2NvZGVzIiwgZXJyX25hbWVzX3RvX2NvZGVzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBsaWJfY29kZXNfdG9fbmFtZXMgPSBQeURpY3RfTmV3KCk7CisgICAgaWYgKGxpYl9jb2Rlc190b19uYW1lcyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBsaWJjb2RlID0gbGlicmFyeV9jb2RlczsKKyAgICB3aGlsZSAobGliY29kZS0+bGlicmFyeSAhPSBOVUxMKSB7CisgICAgICAgIFB5T2JqZWN0ICptbmVtbywgKmtleTsKKyAgICAgICAga2V5ID0gUHlMb25nX0Zyb21Mb25nKGxpYmNvZGUtPmNvZGUpOworICAgICAgICBtbmVtbyA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKGxpYmNvZGUtPmxpYnJhcnkpOworICAgICAgICBpZiAoa2V5ID09IE5VTEwgfHwgbW5lbW8gPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW0obGliX2NvZGVzX3RvX25hbWVzLCBrZXksIG1uZW1vKSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBQeV9ERUNSRUYoa2V5KTsKKyAgICAgICAgUHlfREVDUkVGKG1uZW1vKTsKKyAgICAgICAgbGliY29kZSsrOworICAgIH0KKyAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJsaWJfY29kZXNfdG9fbmFtZXMiLCBsaWJfY29kZXNfdG9fbmFtZXMpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAKICAgICAvKiBPcGVuU1NMIHZlcnNpb24gKi8KICAgICAvKiBTU0xlYXkoKSBnaXZlcyB1cyB0aGUgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBsaW5rZWQgYWdhaW5zdCwKICAgICAgICB3aGljaCBjb3VsZCBiZSBkaWZmZXJlbnQgZnJvbSB0aGUgaGVhZGVycyB2ZXJzaW9uLgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fc3NsX2RhdGEuaCBiL01vZHVsZXMvX3NzbF9kYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODFhOGQ3YgotLS0gL2Rldi9udWxsCisrKyBiL01vZHVsZXMvX3NzbF9kYXRhLmgKQEAgLTAsMCArMSwxNjUzIEBACisvKiBGaWxlIGdlbmVyYXRlZCBieSBUb29scy9zc2wvbWFrZV9zc2xfZGF0YS5weSAqLworLyogR2VuZXJhdGVkIG9uIDIwMTItMDUtMTZUMjM6NTY6NDAuOTgxMzgyICovCisKK3N0YXRpYyBzdHJ1Y3QgcHlfc3NsX2xpYnJhcnlfY29kZSBsaWJyYXJ5X2NvZGVzW10gPSB7CisgICAgeyJQRU0iLCBFUlJfTElCX1BFTX0sCisgICAgeyJTU0wiLCBFUlJfTElCX1NTTH0sCisgICAgeyJYNTA5IiwgRVJSX0xJQl9YNTA5fSwKKyAgICB7IE5VTEwgfQorfTsKKworc3RhdGljIHN0cnVjdCBweV9zc2xfZXJyb3JfY29kZSBlcnJvcl9jb2Rlc1tdID0geworICAjaWZkZWYgUEVNX1JfQkFEX0JBU0U2NF9ERUNPREUKKyAgICB7IkJBRF9CQVNFNjRfREVDT0RFIiwgRVJSX0xJQl9QRU0sIFBFTV9SX0JBRF9CQVNFNjRfREVDT0RFfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9CQVNFNjRfREVDT0RFIiwgRVJSX0xJQl9QRU0sIDEwMH0sCisgICNlbmRpZgorICAjaWZkZWYgUEVNX1JfQkFEX0RFQ1JZUFQKKyAgICB7IkJBRF9ERUNSWVBUIiwgRVJSX0xJQl9QRU0sIFBFTV9SX0JBRF9ERUNSWVBUfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9ERUNSWVBUIiwgRVJSX0xJQl9QRU0sIDEwMX0sCisgICNlbmRpZgorICAjaWZkZWYgUEVNX1JfQkFEX0VORF9MSU5FCisgICAgeyJCQURfRU5EX0xJTkUiLCBFUlJfTElCX1BFTSwgUEVNX1JfQkFEX0VORF9MSU5FfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9FTkRfTElORSIsIEVSUl9MSUJfUEVNLCAxMDJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFBFTV9SX0JBRF9JVl9DSEFSUworICAgIHsiQkFEX0lWX0NIQVJTIiwgRVJSX0xJQl9QRU0sIFBFTV9SX0JBRF9JVl9DSEFSU30sCisgICNlbHNlCisgICAgeyJCQURfSVZfQ0hBUlMiLCBFUlJfTElCX1BFTSwgMTAzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9CQURfTUFHSUNfTlVNQkVSCisgICAgeyJCQURfTUFHSUNfTlVNQkVSIiwgRVJSX0xJQl9QRU0sIFBFTV9SX0JBRF9NQUdJQ19OVU1CRVJ9LAorICAjZWxzZQorICAgIHsiQkFEX01BR0lDX05VTUJFUiIsIEVSUl9MSUJfUEVNLCAxMTZ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFBFTV9SX0JBRF9QQVNTV09SRF9SRUFECisgICAgeyJCQURfUEFTU1dPUkRfUkVBRCIsIEVSUl9MSUJfUEVNLCBQRU1fUl9CQURfUEFTU1dPUkRfUkVBRH0sCisgICNlbHNlCisgICAgeyJCQURfUEFTU1dPUkRfUkVBRCIsIEVSUl9MSUJfUEVNLCAxMDR9LAorICAjZW5kaWYKKyAgI2lmZGVmIFBFTV9SX0JBRF9WRVJTSU9OX05VTUJFUgorICAgIHsiQkFEX1ZFUlNJT05fTlVNQkVSIiwgRVJSX0xJQl9QRU0sIFBFTV9SX0JBRF9WRVJTSU9OX05VTUJFUn0sCisgICNlbHNlCisgICAgeyJCQURfVkVSU0lPTl9OVU1CRVIiLCBFUlJfTElCX1BFTSwgMTE3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9CSU9fV1JJVEVfRkFJTFVSRQorICAgIHsiQklPX1dSSVRFX0ZBSUxVUkUiLCBFUlJfTElCX1BFTSwgUEVNX1JfQklPX1dSSVRFX0ZBSUxVUkV9LAorICAjZWxzZQorICAgIHsiQklPX1dSSVRFX0ZBSUxVUkUiLCBFUlJfTElCX1BFTSwgMTE4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9DSVBIRVJfSVNfTlVMTAorICAgIHsiQ0lQSEVSX0lTX05VTEwiLCBFUlJfTElCX1BFTSwgUEVNX1JfQ0lQSEVSX0lTX05VTEx9LAorICAjZWxzZQorICAgIHsiQ0lQSEVSX0lTX05VTEwiLCBFUlJfTElCX1BFTSwgMTI3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9FUlJPUl9DT05WRVJUSU5HX1BSSVZBVEVfS0VZCisgICAgeyJFUlJPUl9DT05WRVJUSU5HX1BSSVZBVEVfS0VZIiwgRVJSX0xJQl9QRU0sIFBFTV9SX0VSUk9SX0NPTlZFUlRJTkdfUFJJVkFURV9LRVl9LAorICAjZWxzZQorICAgIHsiRVJST1JfQ09OVkVSVElOR19QUklWQVRFX0tFWSIsIEVSUl9MSUJfUEVNLCAxMTV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFBFTV9SX0VYUEVDVElOR19QUklWQVRFX0tFWV9CTE9CCisgICAgeyJFWFBFQ1RJTkdfUFJJVkFURV9LRVlfQkxPQiIsIEVSUl9MSUJfUEVNLCBQRU1fUl9FWFBFQ1RJTkdfUFJJVkFURV9LRVlfQkxPQn0sCisgICNlbHNlCisgICAgeyJFWFBFQ1RJTkdfUFJJVkFURV9LRVlfQkxPQiIsIEVSUl9MSUJfUEVNLCAxMTl9LAorICAjZW5kaWYKKyAgI2lmZGVmIFBFTV9SX0VYUEVDVElOR19QVUJMSUNfS0VZX0JMT0IKKyAgICB7IkVYUEVDVElOR19QVUJMSUNfS0VZX0JMT0IiLCBFUlJfTElCX1BFTSwgUEVNX1JfRVhQRUNUSU5HX1BVQkxJQ19LRVlfQkxPQn0sCisgICNlbHNlCisgICAgeyJFWFBFQ1RJTkdfUFVCTElDX0tFWV9CTE9CIiwgRVJSX0xJQl9QRU0sIDEyMH0sCisgICNlbmRpZgorICAjaWZkZWYgUEVNX1JfSU5DT05TSVNURU5UX0hFQURFUgorICAgIHsiSU5DT05TSVNURU5UX0hFQURFUiIsIEVSUl9MSUJfUEVNLCBQRU1fUl9JTkNPTlNJU1RFTlRfSEVBREVSfSwKKyAgI2Vsc2UKKyAgICB7IklOQ09OU0lTVEVOVF9IRUFERVIiLCBFUlJfTElCX1BFTSwgMTIxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9LRVlCTE9CX0hFQURFUl9QQVJTRV9FUlJPUgorICAgIHsiS0VZQkxPQl9IRUFERVJfUEFSU0VfRVJST1IiLCBFUlJfTElCX1BFTSwgUEVNX1JfS0VZQkxPQl9IRUFERVJfUEFSU0VfRVJST1J9LAorICAjZWxzZQorICAgIHsiS0VZQkxPQl9IRUFERVJfUEFSU0VfRVJST1IiLCBFUlJfTElCX1BFTSwgMTIyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9LRVlCTE9CX1RPT19TSE9SVAorICAgIHsiS0VZQkxPQl9UT09fU0hPUlQiLCBFUlJfTElCX1BFTSwgUEVNX1JfS0VZQkxPQl9UT09fU0hPUlR9LAorICAjZWxzZQorICAgIHsiS0VZQkxPQl9UT09fU0hPUlQiLCBFUlJfTElCX1BFTSwgMTIzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9OT1RfREVLX0lORk8KKyAgICB7Ik5PVF9ERUtfSU5GTyIsIEVSUl9MSUJfUEVNLCBQRU1fUl9OT1RfREVLX0lORk99LAorICAjZWxzZQorICAgIHsiTk9UX0RFS19JTkZPIiwgRVJSX0xJQl9QRU0sIDEwNX0sCisgICNlbmRpZgorICAjaWZkZWYgUEVNX1JfTk9UX0VOQ1JZUFRFRAorICAgIHsiTk9UX0VOQ1JZUFRFRCIsIEVSUl9MSUJfUEVNLCBQRU1fUl9OT1RfRU5DUllQVEVEfSwKKyAgI2Vsc2UKKyAgICB7Ik5PVF9FTkNSWVBURUQiLCBFUlJfTElCX1BFTSwgMTA2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9OT1RfUFJPQ19UWVBFCisgICAgeyJOT1RfUFJPQ19UWVBFIiwgRVJSX0xJQl9QRU0sIFBFTV9SX05PVF9QUk9DX1RZUEV9LAorICAjZWxzZQorICAgIHsiTk9UX1BST0NfVFlQRSIsIEVSUl9MSUJfUEVNLCAxMDd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFBFTV9SX05PX1NUQVJUX0xJTkUKKyAgICB7Ik5PX1NUQVJUX0xJTkUiLCBFUlJfTElCX1BFTSwgUEVNX1JfTk9fU1RBUlRfTElORX0sCisgICNlbHNlCisgICAgeyJOT19TVEFSVF9MSU5FIiwgRVJSX0xJQl9QRU0sIDEwOH0sCisgICNlbmRpZgorICAjaWZkZWYgUEVNX1JfUFJPQkxFTVNfR0VUVElOR19QQVNTV09SRAorICAgIHsiUFJPQkxFTVNfR0VUVElOR19QQVNTV09SRCIsIEVSUl9MSUJfUEVNLCBQRU1fUl9QUk9CTEVNU19HRVRUSU5HX1BBU1NXT1JEfSwKKyAgI2Vsc2UKKyAgICB7IlBST0JMRU1TX0dFVFRJTkdfUEFTU1dPUkQiLCBFUlJfTElCX1BFTSwgMTA5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9QVUJMSUNfS0VZX05PX1JTQQorICAgIHsiUFVCTElDX0tFWV9OT19SU0EiLCBFUlJfTElCX1BFTSwgUEVNX1JfUFVCTElDX0tFWV9OT19SU0F9LAorICAjZWxzZQorICAgIHsiUFVCTElDX0tFWV9OT19SU0EiLCBFUlJfTElCX1BFTSwgMTEwfSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9QVktfREFUQV9UT09fU0hPUlQKKyAgICB7IlBWS19EQVRBX1RPT19TSE9SVCIsIEVSUl9MSUJfUEVNLCBQRU1fUl9QVktfREFUQV9UT09fU0hPUlR9LAorICAjZWxzZQorICAgIHsiUFZLX0RBVEFfVE9PX1NIT1JUIiwgRVJSX0xJQl9QRU0sIDEyNH0sCisgICNlbmRpZgorICAjaWZkZWYgUEVNX1JfUFZLX1RPT19TSE9SVAorICAgIHsiUFZLX1RPT19TSE9SVCIsIEVSUl9MSUJfUEVNLCBQRU1fUl9QVktfVE9PX1NIT1JUfSwKKyAgI2Vsc2UKKyAgICB7IlBWS19UT09fU0hPUlQiLCBFUlJfTElCX1BFTSwgMTI1fSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9SRUFEX0tFWQorICAgIHsiUkVBRF9LRVkiLCBFUlJfTElCX1BFTSwgUEVNX1JfUkVBRF9LRVl9LAorICAjZWxzZQorICAgIHsiUkVBRF9LRVkiLCBFUlJfTElCX1BFTSwgMTExfSwKKyAgI2VuZGlmCisgICNpZmRlZiBQRU1fUl9TSE9SVF9IRUFERVIKKyAgICB7IlNIT1JUX0hFQURFUiIsIEVSUl9MSUJfUEVNLCBQRU1fUl9TSE9SVF9IRUFERVJ9LAorICAjZWxzZQorICAgIHsiU0hPUlRfSEVBREVSIiwgRVJSX0xJQl9QRU0sIDExMn0sCisgICNlbmRpZgorICAjaWZkZWYgUEVNX1JfVU5TVVBQT1JURURfQ0lQSEVSCisgICAgeyJVTlNVUFBPUlRFRF9DSVBIRVIiLCBFUlJfTElCX1BFTSwgUEVNX1JfVU5TVVBQT1JURURfQ0lQSEVSfSwKKyAgI2Vsc2UKKyAgICB7IlVOU1VQUE9SVEVEX0NJUEhFUiIsIEVSUl9MSUJfUEVNLCAxMTN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFBFTV9SX1VOU1VQUE9SVEVEX0VOQ1JZUFRJT04KKyAgICB7IlVOU1VQUE9SVEVEX0VOQ1JZUFRJT04iLCBFUlJfTElCX1BFTSwgUEVNX1JfVU5TVVBQT1JURURfRU5DUllQVElPTn0sCisgICNlbHNlCisgICAgeyJVTlNVUFBPUlRFRF9FTkNSWVBUSU9OIiwgRVJSX0xJQl9QRU0sIDExNH0sCisgICNlbmRpZgorICAjaWZkZWYgUEVNX1JfVU5TVVBQT1JURURfS0VZX0NPTVBPTkVOVFMKKyAgICB7IlVOU1VQUE9SVEVEX0tFWV9DT01QT05FTlRTIiwgRVJSX0xJQl9QRU0sIFBFTV9SX1VOU1VQUE9SVEVEX0tFWV9DT01QT05FTlRTfSwKKyAgI2Vsc2UKKyAgICB7IlVOU1VQUE9SVEVEX0tFWV9DT01QT05FTlRTIiwgRVJSX0xJQl9QRU0sIDEyNn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQVBQX0RBVEFfSU5fSEFORFNIQUtFCisgICAgeyJBUFBfREFUQV9JTl9IQU5EU0hBS0UiLCBFUlJfTElCX1NTTCwgU1NMX1JfQVBQX0RBVEFfSU5fSEFORFNIQUtFfSwKKyAgI2Vsc2UKKyAgICB7IkFQUF9EQVRBX0lOX0hBTkRTSEFLRSIsIEVSUl9MSUJfU1NMLCAxMDB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0FUVEVNUFRfVE9fUkVVU0VfU0VTU0lPTl9JTl9ESUZGRVJFTlRfQ09OVEVYVAorICAgIHsiQVRURU1QVF9UT19SRVVTRV9TRVNTSU9OX0lOX0RJRkZFUkVOVF9DT05URVhUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0FUVEVNUFRfVE9fUkVVU0VfU0VTU0lPTl9JTl9ESUZGRVJFTlRfQ09OVEVYVH0sCisgICNlbHNlCisgICAgeyJBVFRFTVBUX1RPX1JFVVNFX1NFU1NJT05fSU5fRElGRkVSRU5UX0NPTlRFWFQiLCBFUlJfTElCX1NTTCwgMjcyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CQURfQUxFUlRfUkVDT1JECisgICAgeyJCQURfQUxFUlRfUkVDT1JEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9BTEVSVF9SRUNPUkR9LAorICAjZWxzZQorICAgIHsiQkFEX0FMRVJUX1JFQ09SRCIsIEVSUl9MSUJfU1NMLCAxMDF9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9BVVRIRU5USUNBVElPTl9UWVBFCisgICAgeyJCQURfQVVUSEVOVElDQVRJT05fVFlQRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfQVVUSEVOVElDQVRJT05fVFlQRX0sCisgICNlbHNlCisgICAgeyJCQURfQVVUSEVOVElDQVRJT05fVFlQRSIsIEVSUl9MSUJfU1NMLCAxMDJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9DSEFOR0VfQ0lQSEVSX1NQRUMKKyAgICB7IkJBRF9DSEFOR0VfQ0lQSEVSX1NQRUMiLCBFUlJfTElCX1NTTCwgU1NMX1JfQkFEX0NIQU5HRV9DSVBIRVJfU1BFQ30sCisgICNlbHNlCisgICAgeyJCQURfQ0hBTkdFX0NJUEhFUl9TUEVDIiwgRVJSX0xJQl9TU0wsIDEwM30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX0NIRUNLU1VNCisgICAgeyJCQURfQ0hFQ0tTVU0iLCBFUlJfTElCX1NTTCwgU1NMX1JfQkFEX0NIRUNLU1VNfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9DSEVDS1NVTSIsIEVSUl9MSUJfU1NMLCAxMDR9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9EQVRBX1JFVFVSTkVEX0JZX0NBTExCQUNLCisgICAgeyJCQURfREFUQV9SRVRVUk5FRF9CWV9DQUxMQkFDSyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfREFUQV9SRVRVUk5FRF9CWV9DQUxMQkFDS30sCisgICNlbHNlCisgICAgeyJCQURfREFUQV9SRVRVUk5FRF9CWV9DQUxMQkFDSyIsIEVSUl9MSUJfU1NMLCAxMDZ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9ERUNPTVBSRVNTSU9OCisgICAgeyJCQURfREVDT01QUkVTU0lPTiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfREVDT01QUkVTU0lPTn0sCisgICNlbHNlCisgICAgeyJCQURfREVDT01QUkVTU0lPTiIsIEVSUl9MSUJfU1NMLCAxMDd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9ESF9HX0xFTkdUSAorICAgIHsiQkFEX0RIX0dfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9ESF9HX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJCQURfREhfR19MRU5HVEgiLCBFUlJfTElCX1NTTCwgMTA4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CQURfREhfUFVCX0tFWV9MRU5HVEgKKyAgICB7IkJBRF9ESF9QVUJfS0VZX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfREhfUFVCX0tFWV9MRU5HVEh9LAorICAjZWxzZQorICAgIHsiQkFEX0RIX1BVQl9LRVlfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIDEwOX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX0RIX1BfTEVOR1RICisgICAgeyJCQURfREhfUF9MRU5HVEgiLCBFUlJfTElCX1NTTCwgU1NMX1JfQkFEX0RIX1BfTEVOR1RIfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9ESF9QX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCAxMTB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9ESUdFU1RfTEVOR1RICisgICAgeyJCQURfRElHRVNUX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfRElHRVNUX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJCQURfRElHRVNUX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCAxMTF9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9EU0FfU0lHTkFUVVJFCisgICAgeyJCQURfRFNBX1NJR05BVFVSRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfRFNBX1NJR05BVFVSRX0sCisgICNlbHNlCisgICAgeyJCQURfRFNBX1NJR05BVFVSRSIsIEVSUl9MSUJfU1NMLCAxMTJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9FQ0NfQ0VSVAorICAgIHsiQkFEX0VDQ19DRVJUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9FQ0NfQ0VSVH0sCisgICNlbHNlCisgICAgeyJCQURfRUNDX0NFUlQiLCBFUlJfTElCX1NTTCwgMzA0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CQURfRUNEU0FfU0lHTkFUVVJFCisgICAgeyJCQURfRUNEU0FfU0lHTkFUVVJFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9FQ0RTQV9TSUdOQVRVUkV9LAorICAjZWxzZQorICAgIHsiQkFEX0VDRFNBX1NJR05BVFVSRSIsIEVSUl9MSUJfU1NMLCAzMDV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9FQ1BPSU5UCisgICAgeyJCQURfRUNQT0lOVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfRUNQT0lOVH0sCisgICNlbHNlCisgICAgeyJCQURfRUNQT0lOVCIsIEVSUl9MSUJfU1NMLCAzMDZ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9IQU5EU0hBS0VfTEVOR1RICisgICAgeyJCQURfSEFORFNIQUtFX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfSEFORFNIQUtFX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJCQURfSEFORFNIQUtFX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCAzMzJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9IRUxMT19SRVFVRVNUCisgICAgeyJCQURfSEVMTE9fUkVRVUVTVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfSEVMTE9fUkVRVUVTVH0sCisgICNlbHNlCisgICAgeyJCQURfSEVMTE9fUkVRVUVTVCIsIEVSUl9MSUJfU1NMLCAxMDV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9MRU5HVEgKKyAgICB7IkJBRF9MRU5HVEgiLCBFUlJfTElCX1NTTCwgU1NMX1JfQkFEX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJCQURfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIDI3MX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX01BQ19ERUNPREUKKyAgICB7IkJBRF9NQUNfREVDT0RFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9NQUNfREVDT0RFfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9NQUNfREVDT0RFIiwgRVJSX0xJQl9TU0wsIDExM30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX01BQ19MRU5HVEgKKyAgICB7IkJBRF9NQUNfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9NQUNfTEVOR1RIfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9NQUNfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIDMzM30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX01FU1NBR0VfVFlQRQorICAgIHsiQkFEX01FU1NBR0VfVFlQRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfTUVTU0FHRV9UWVBFfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9NRVNTQUdFX1RZUEUiLCBFUlJfTElCX1NTTCwgMTE0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CQURfUEFDS0VUX0xFTkdUSAorICAgIHsiQkFEX1BBQ0tFVF9MRU5HVEgiLCBFUlJfTElCX1NTTCwgU1NMX1JfQkFEX1BBQ0tFVF9MRU5HVEh9LAorICAjZWxzZQorICAgIHsiQkFEX1BBQ0tFVF9MRU5HVEgiLCBFUlJfTElCX1NTTCwgMTE1fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CQURfUFJPVE9DT0xfVkVSU0lPTl9OVU1CRVIKKyAgICB7IkJBRF9QUk9UT0NPTF9WRVJTSU9OX05VTUJFUiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfUFJPVE9DT0xfVkVSU0lPTl9OVU1CRVJ9LAorICAjZWxzZQorICAgIHsiQkFEX1BST1RPQ09MX1ZFUlNJT05fTlVNQkVSIiwgRVJSX0xJQl9TU0wsIDExNn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX1BTS19JREVOVElUWV9ISU5UX0xFTkdUSAorICAgIHsiQkFEX1BTS19JREVOVElUWV9ISU5UX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfUFNLX0lERU5USVRZX0hJTlRfTEVOR1RIfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9QU0tfSURFTlRJVFlfSElOVF9MRU5HVEgiLCBFUlJfTElCX1NTTCwgMzE2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CQURfUkVTUE9OU0VfQVJHVU1FTlQKKyAgICB7IkJBRF9SRVNQT05TRV9BUkdVTUVOVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfUkVTUE9OU0VfQVJHVU1FTlR9LAorICAjZWxzZQorICAgIHsiQkFEX1JFU1BPTlNFX0FSR1VNRU5UIiwgRVJSX0xJQl9TU0wsIDExN30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX1JTQV9ERUNSWVBUCisgICAgeyJCQURfUlNBX0RFQ1JZUFQiLCBFUlJfTElCX1NTTCwgU1NMX1JfQkFEX1JTQV9ERUNSWVBUfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9SU0FfREVDUllQVCIsIEVSUl9MSUJfU1NMLCAxMTh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9SU0FfRU5DUllQVAorICAgIHsiQkFEX1JTQV9FTkNSWVBUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9SU0FfRU5DUllQVH0sCisgICNlbHNlCisgICAgeyJCQURfUlNBX0VOQ1JZUFQiLCBFUlJfTElCX1NTTCwgMTE5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CQURfUlNBX0VfTEVOR1RICisgICAgeyJCQURfUlNBX0VfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9SU0FfRV9MRU5HVEh9LAorICAjZWxzZQorICAgIHsiQkFEX1JTQV9FX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCAxMjB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9SU0FfTU9EVUxVU19MRU5HVEgKKyAgICB7IkJBRF9SU0FfTU9EVUxVU19MRU5HVEgiLCBFUlJfTElCX1NTTCwgU1NMX1JfQkFEX1JTQV9NT0RVTFVTX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJCQURfUlNBX01PRFVMVVNfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIDEyMX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX1JTQV9TSUdOQVRVUkUKKyAgICB7IkJBRF9SU0FfU0lHTkFUVVJFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9SU0FfU0lHTkFUVVJFfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9SU0FfU0lHTkFUVVJFIiwgRVJSX0xJQl9TU0wsIDEyMn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX1NJR05BVFVSRQorICAgIHsiQkFEX1NJR05BVFVSRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9CQURfU0lHTkFUVVJFfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9TSUdOQVRVUkUiLCBFUlJfTElCX1NTTCwgMTIzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CQURfU1NMX0ZJTEVUWVBFCisgICAgeyJCQURfU1NMX0ZJTEVUWVBFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9TU0xfRklMRVRZUEV9LAorICAjZWxzZQorICAgIHsiQkFEX1NTTF9GSUxFVFlQRSIsIEVSUl9MSUJfU1NMLCAxMjR9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9TU0xfU0VTU0lPTl9JRF9MRU5HVEgKKyAgICB7IkJBRF9TU0xfU0VTU0lPTl9JRF9MRU5HVEgiLCBFUlJfTElCX1NTTCwgU1NMX1JfQkFEX1NTTF9TRVNTSU9OX0lEX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJCQURfU1NMX1NFU1NJT05fSURfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIDEyNX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQkFEX1NUQVRFCisgICAgeyJCQURfU1RBVEUiLCBFUlJfTElCX1NTTCwgU1NMX1JfQkFEX1NUQVRFfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9TVEFURSIsIEVSUl9MSUJfU1NMLCAxMjZ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JBRF9XUklURV9SRVRSWQorICAgIHsiQkFEX1dSSVRFX1JFVFJZIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JBRF9XUklURV9SRVRSWX0sCisgICNlbHNlCisgICAgeyJCQURfV1JJVEVfUkVUUlkiLCBFUlJfTElCX1NTTCwgMTI3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CSU9fTk9UX1NFVAorICAgIHsiQklPX05PVF9TRVQiLCBFUlJfTElCX1NTTCwgU1NMX1JfQklPX05PVF9TRVR9LAorICAjZWxzZQorICAgIHsiQklPX05PVF9TRVQiLCBFUlJfTElCX1NTTCwgMTI4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9CTE9DS19DSVBIRVJfUEFEX0lTX1dST05HCisgICAgeyJCTE9DS19DSVBIRVJfUEFEX0lTX1dST05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JMT0NLX0NJUEhFUl9QQURfSVNfV1JPTkd9LAorICAjZWxzZQorICAgIHsiQkxPQ0tfQ0lQSEVSX1BBRF9JU19XUk9ORyIsIEVSUl9MSUJfU1NMLCAxMjl9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0JOX0xJQgorICAgIHsiQk5fTElCIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0JOX0xJQn0sCisgICNlbHNlCisgICAgeyJCTl9MSUIiLCBFUlJfTElCX1NTTCwgMTMwfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9DQV9ETl9MRU5HVEhfTUlTTUFUQ0gKKyAgICB7IkNBX0ROX0xFTkdUSF9NSVNNQVRDSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9DQV9ETl9MRU5HVEhfTUlTTUFUQ0h9LAorICAjZWxzZQorICAgIHsiQ0FfRE5fTEVOR1RIX01JU01BVENIIiwgRVJSX0xJQl9TU0wsIDEzMX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ0FfRE5fVE9PX0xPTkcKKyAgICB7IkNBX0ROX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0NBX0ROX1RPT19MT05HfSwKKyAgI2Vsc2UKKyAgICB7IkNBX0ROX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIDEzMn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ0NTX1JFQ0VJVkVEX0VBUkxZCisgICAgeyJDQ1NfUkVDRUlWRURfRUFSTFkiLCBFUlJfTElCX1NTTCwgU1NMX1JfQ0NTX1JFQ0VJVkVEX0VBUkxZfSwKKyAgI2Vsc2UKKyAgICB7IkNDU19SRUNFSVZFRF9FQVJMWSIsIEVSUl9MSUJfU1NMLCAxMzN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0NFUlRJRklDQVRFX1ZFUklGWV9GQUlMRUQKKyAgICB7IkNFUlRJRklDQVRFX1ZFUklGWV9GQUlMRUQiLCBFUlJfTElCX1NTTCwgU1NMX1JfQ0VSVElGSUNBVEVfVkVSSUZZX0ZBSUxFRH0sCisgICNlbHNlCisgICAgeyJDRVJUSUZJQ0FURV9WRVJJRllfRkFJTEVEIiwgRVJSX0xJQl9TU0wsIDEzNH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ0VSVF9MRU5HVEhfTUlTTUFUQ0gKKyAgICB7IkNFUlRfTEVOR1RIX01JU01BVENIIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0NFUlRfTEVOR1RIX01JU01BVENIfSwKKyAgI2Vsc2UKKyAgICB7IkNFUlRfTEVOR1RIX01JU01BVENIIiwgRVJSX0xJQl9TU0wsIDEzNX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ0hBTExFTkdFX0lTX0RJRkZFUkVOVAorICAgIHsiQ0hBTExFTkdFX0lTX0RJRkZFUkVOVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9DSEFMTEVOR0VfSVNfRElGRkVSRU5UfSwKKyAgI2Vsc2UKKyAgICB7IkNIQUxMRU5HRV9JU19ESUZGRVJFTlQiLCBFUlJfTElCX1NTTCwgMTM2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9DSVBIRVJfQ09ERV9XUk9OR19MRU5HVEgKKyAgICB7IkNJUEhFUl9DT0RFX1dST05HX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9DSVBIRVJfQ09ERV9XUk9OR19MRU5HVEh9LAorICAjZWxzZQorICAgIHsiQ0lQSEVSX0NPREVfV1JPTkdfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIDEzN30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ0lQSEVSX09SX0hBU0hfVU5BVkFJTEFCTEUKKyAgICB7IkNJUEhFUl9PUl9IQVNIX1VOQVZBSUxBQkxFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0NJUEhFUl9PUl9IQVNIX1VOQVZBSUxBQkxFfSwKKyAgI2Vsc2UKKyAgICB7IkNJUEhFUl9PUl9IQVNIX1VOQVZBSUxBQkxFIiwgRVJSX0xJQl9TU0wsIDEzOH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ0lQSEVSX1RBQkxFX1NSQ19FUlJPUgorICAgIHsiQ0lQSEVSX1RBQkxFX1NSQ19FUlJPUiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9DSVBIRVJfVEFCTEVfU1JDX0VSUk9SfSwKKyAgI2Vsc2UKKyAgICB7IkNJUEhFUl9UQUJMRV9TUkNfRVJST1IiLCBFUlJfTElCX1NTTCwgMTM5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9DTElFTlRIRUxMT19UTFNFWFQKKyAgICB7IkNMSUVOVEhFTExPX1RMU0VYVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9DTElFTlRIRUxMT19UTFNFWFR9LAorICAjZWxzZQorICAgIHsiQ0xJRU5USEVMTE9fVExTRVhUIiwgRVJSX0xJQl9TU0wsIDIyNn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ09NUFJFU1NFRF9MRU5HVEhfVE9PX0xPTkcKKyAgICB7IkNPTVBSRVNTRURfTEVOR1RIX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0NPTVBSRVNTRURfTEVOR1RIX1RPT19MT05HfSwKKyAgI2Vsc2UKKyAgICB7IkNPTVBSRVNTRURfTEVOR1RIX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIDE0MH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ09NUFJFU1NJT05fRElTQUJMRUQKKyAgICB7IkNPTVBSRVNTSU9OX0RJU0FCTEVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0NPTVBSRVNTSU9OX0RJU0FCTEVEfSwKKyAgI2Vsc2UKKyAgICB7IkNPTVBSRVNTSU9OX0RJU0FCTEVEIiwgRVJSX0xJQl9TU0wsIDM0M30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ09NUFJFU1NJT05fRkFJTFVSRQorICAgIHsiQ09NUFJFU1NJT05fRkFJTFVSRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9DT01QUkVTU0lPTl9GQUlMVVJFfSwKKyAgI2Vsc2UKKyAgICB7IkNPTVBSRVNTSU9OX0ZBSUxVUkUiLCBFUlJfTElCX1NTTCwgMTQxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9DT01QUkVTU0lPTl9JRF9OT1RfV0lUSElOX1BSSVZBVEVfUkFOR0UKKyAgICB7IkNPTVBSRVNTSU9OX0lEX05PVF9XSVRISU5fUFJJVkFURV9SQU5HRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9DT01QUkVTU0lPTl9JRF9OT1RfV0lUSElOX1BSSVZBVEVfUkFOR0V9LAorICAjZWxzZQorICAgIHsiQ09NUFJFU1NJT05fSURfTk9UX1dJVEhJTl9QUklWQVRFX1JBTkdFIiwgRVJSX0xJQl9TU0wsIDMwN30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfQ09NUFJFU1NJT05fTElCUkFSWV9FUlJPUgorICAgIHsiQ09NUFJFU1NJT05fTElCUkFSWV9FUlJPUiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9DT01QUkVTU0lPTl9MSUJSQVJZX0VSUk9SfSwKKyAgI2Vsc2UKKyAgICB7IkNPTVBSRVNTSU9OX0xJQlJBUllfRVJST1IiLCBFUlJfTElCX1NTTCwgMTQyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9DT05ORUNUSU9OX0lEX0lTX0RJRkZFUkVOVAorICAgIHsiQ09OTkVDVElPTl9JRF9JU19ESUZGRVJFTlQiLCBFUlJfTElCX1NTTCwgU1NMX1JfQ09OTkVDVElPTl9JRF9JU19ESUZGRVJFTlR9LAorICAjZWxzZQorICAgIHsiQ09OTkVDVElPTl9JRF9JU19ESUZGRVJFTlQiLCBFUlJfTElCX1NTTCwgMTQzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9DT05ORUNUSU9OX1RZUEVfTk9UX1NFVAorICAgIHsiQ09OTkVDVElPTl9UWVBFX05PVF9TRVQiLCBFUlJfTElCX1NTTCwgU1NMX1JfQ09OTkVDVElPTl9UWVBFX05PVF9TRVR9LAorICAjZWxzZQorICAgIHsiQ09OTkVDVElPTl9UWVBFX05PVF9TRVQiLCBFUlJfTElCX1NTTCwgMTQ0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9DT09LSUVfTUlTTUFUQ0gKKyAgICB7IkNPT0tJRV9NSVNNQVRDSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9DT09LSUVfTUlTTUFUQ0h9LAorICAjZWxzZQorICAgIHsiQ09PS0lFX01JU01BVENIIiwgRVJSX0xJQl9TU0wsIDMwOH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfREFUQV9CRVRXRUVOX0NDU19BTkRfRklOSVNIRUQKKyAgICB7IkRBVEFfQkVUV0VFTl9DQ1NfQU5EX0ZJTklTSEVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0RBVEFfQkVUV0VFTl9DQ1NfQU5EX0ZJTklTSEVEfSwKKyAgI2Vsc2UKKyAgICB7IkRBVEFfQkVUV0VFTl9DQ1NfQU5EX0ZJTklTSEVEIiwgRVJSX0xJQl9TU0wsIDE0NX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfREFUQV9MRU5HVEhfVE9PX0xPTkcKKyAgICB7IkRBVEFfTEVOR1RIX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0RBVEFfTEVOR1RIX1RPT19MT05HfSwKKyAgI2Vsc2UKKyAgICB7IkRBVEFfTEVOR1RIX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIDE0Nn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfREVDUllQVElPTl9GQUlMRUQKKyAgICB7IkRFQ1JZUFRJT05fRkFJTEVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0RFQ1JZUFRJT05fRkFJTEVEfSwKKyAgI2Vsc2UKKyAgICB7IkRFQ1JZUFRJT05fRkFJTEVEIiwgRVJSX0xJQl9TU0wsIDE0N30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfREVDUllQVElPTl9GQUlMRURfT1JfQkFEX1JFQ09SRF9NQUMKKyAgICB7IkRFQ1JZUFRJT05fRkFJTEVEX09SX0JBRF9SRUNPUkRfTUFDIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0RFQ1JZUFRJT05fRkFJTEVEX09SX0JBRF9SRUNPUkRfTUFDfSwKKyAgI2Vsc2UKKyAgICB7IkRFQ1JZUFRJT05fRkFJTEVEX09SX0JBRF9SRUNPUkRfTUFDIiwgRVJSX0xJQl9TU0wsIDI4MX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfREhfUFVCTElDX1ZBTFVFX0xFTkdUSF9JU19XUk9ORworICAgIHsiREhfUFVCTElDX1ZBTFVFX0xFTkdUSF9JU19XUk9ORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9ESF9QVUJMSUNfVkFMVUVfTEVOR1RIX0lTX1dST05HfSwKKyAgI2Vsc2UKKyAgICB7IkRIX1BVQkxJQ19WQUxVRV9MRU5HVEhfSVNfV1JPTkciLCBFUlJfTElCX1NTTCwgMTQ4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9ESUdFU1RfQ0hFQ0tfRkFJTEVECisgICAgeyJESUdFU1RfQ0hFQ0tfRkFJTEVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0RJR0VTVF9DSEVDS19GQUlMRUR9LAorICAjZWxzZQorICAgIHsiRElHRVNUX0NIRUNLX0ZBSUxFRCIsIEVSUl9MSUJfU1NMLCAxNDl9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0RUTFNfTUVTU0FHRV9UT09fQklHCisgICAgeyJEVExTX01FU1NBR0VfVE9PX0JJRyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9EVExTX01FU1NBR0VfVE9PX0JJR30sCisgICNlbHNlCisgICAgeyJEVExTX01FU1NBR0VfVE9PX0JJRyIsIEVSUl9MSUJfU1NMLCAzMzR9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0RVUExJQ0FURV9DT01QUkVTU0lPTl9JRAorICAgIHsiRFVQTElDQVRFX0NPTVBSRVNTSU9OX0lEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0RVUExJQ0FURV9DT01QUkVTU0lPTl9JRH0sCisgICNlbHNlCisgICAgeyJEVVBMSUNBVEVfQ09NUFJFU1NJT05fSUQiLCBFUlJfTElCX1NTTCwgMzA5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9FQ0NfQ0VSVF9OT1RfRk9SX0tFWV9BR1JFRU1FTlQKKyAgICB7IkVDQ19DRVJUX05PVF9GT1JfS0VZX0FHUkVFTUVOVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9FQ0NfQ0VSVF9OT1RfRk9SX0tFWV9BR1JFRU1FTlR9LAorICAjZWxzZQorICAgIHsiRUNDX0NFUlRfTk9UX0ZPUl9LRVlfQUdSRUVNRU5UIiwgRVJSX0xJQl9TU0wsIDMxN30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfRUNDX0NFUlRfTk9UX0ZPUl9TSUdOSU5HCisgICAgeyJFQ0NfQ0VSVF9OT1RfRk9SX1NJR05JTkciLCBFUlJfTElCX1NTTCwgU1NMX1JfRUNDX0NFUlRfTk9UX0ZPUl9TSUdOSU5HfSwKKyAgI2Vsc2UKKyAgICB7IkVDQ19DRVJUX05PVF9GT1JfU0lHTklORyIsIEVSUl9MSUJfU1NMLCAzMTh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0VDQ19DRVJUX1NIT1VMRF9IQVZFX1JTQV9TSUdOQVRVUkUKKyAgICB7IkVDQ19DRVJUX1NIT1VMRF9IQVZFX1JTQV9TSUdOQVRVUkUiLCBFUlJfTElCX1NTTCwgU1NMX1JfRUNDX0NFUlRfU0hPVUxEX0hBVkVfUlNBX1NJR05BVFVSRX0sCisgICNlbHNlCisgICAgeyJFQ0NfQ0VSVF9TSE9VTERfSEFWRV9SU0FfU0lHTkFUVVJFIiwgRVJSX0xJQl9TU0wsIDMyMn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfRUNDX0NFUlRfU0hPVUxEX0hBVkVfU0hBMV9TSUdOQVRVUkUKKyAgICB7IkVDQ19DRVJUX1NIT1VMRF9IQVZFX1NIQTFfU0lHTkFUVVJFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0VDQ19DRVJUX1NIT1VMRF9IQVZFX1NIQTFfU0lHTkFUVVJFfSwKKyAgI2Vsc2UKKyAgICB7IkVDQ19DRVJUX1NIT1VMRF9IQVZFX1NIQTFfU0lHTkFUVVJFIiwgRVJSX0xJQl9TU0wsIDMyM30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfRUNHUk9VUF9UT09fTEFSR0VfRk9SX0NJUEhFUgorICAgIHsiRUNHUk9VUF9UT09fTEFSR0VfRk9SX0NJUEhFUiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9FQ0dST1VQX1RPT19MQVJHRV9GT1JfQ0lQSEVSfSwKKyAgI2Vsc2UKKyAgICB7IkVDR1JPVVBfVE9PX0xBUkdFX0ZPUl9DSVBIRVIiLCBFUlJfTElCX1NTTCwgMzEwfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9FTkNSWVBURURfTEVOR1RIX1RPT19MT05HCisgICAgeyJFTkNSWVBURURfTEVOR1RIX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0VOQ1JZUFRFRF9MRU5HVEhfVE9PX0xPTkd9LAorICAjZWxzZQorICAgIHsiRU5DUllQVEVEX0xFTkdUSF9UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCAxNTB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0VSUk9SX0dFTkVSQVRJTkdfVE1QX1JTQV9LRVkKKyAgICB7IkVSUk9SX0dFTkVSQVRJTkdfVE1QX1JTQV9LRVkiLCBFUlJfTElCX1NTTCwgU1NMX1JfRVJST1JfR0VORVJBVElOR19UTVBfUlNBX0tFWX0sCisgICNlbHNlCisgICAgeyJFUlJPUl9HRU5FUkFUSU5HX1RNUF9SU0FfS0VZIiwgRVJSX0xJQl9TU0wsIDI4Mn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfRVJST1JfSU5fUkVDRUlWRURfQ0lQSEVSX0xJU1QKKyAgICB7IkVSUk9SX0lOX1JFQ0VJVkVEX0NJUEhFUl9MSVNUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0VSUk9SX0lOX1JFQ0VJVkVEX0NJUEhFUl9MSVNUfSwKKyAgI2Vsc2UKKyAgICB7IkVSUk9SX0lOX1JFQ0VJVkVEX0NJUEhFUl9MSVNUIiwgRVJSX0xJQl9TU0wsIDE1MX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfRVhDRVNTSVZFX01FU1NBR0VfU0laRQorICAgIHsiRVhDRVNTSVZFX01FU1NBR0VfU0laRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9FWENFU1NJVkVfTUVTU0FHRV9TSVpFfSwKKyAgI2Vsc2UKKyAgICB7IkVYQ0VTU0lWRV9NRVNTQUdFX1NJWkUiLCBFUlJfTElCX1NTTCwgMTUyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9FWFRSQV9EQVRBX0lOX01FU1NBR0UKKyAgICB7IkVYVFJBX0RBVEFfSU5fTUVTU0FHRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9FWFRSQV9EQVRBX0lOX01FU1NBR0V9LAorICAjZWxzZQorICAgIHsiRVhUUkFfREFUQV9JTl9NRVNTQUdFIiwgRVJSX0xJQl9TU0wsIDE1M30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfR09UX0FfRklOX0JFRk9SRV9BX0NDUworICAgIHsiR09UX0FfRklOX0JFRk9SRV9BX0NDUyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9HT1RfQV9GSU5fQkVGT1JFX0FfQ0NTfSwKKyAgI2Vsc2UKKyAgICB7IkdPVF9BX0ZJTl9CRUZPUkVfQV9DQ1MiLCBFUlJfTElCX1NTTCwgMTU0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9IVFRQU19QUk9YWV9SRVFVRVNUCisgICAgeyJIVFRQU19QUk9YWV9SRVFVRVNUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0hUVFBTX1BST1hZX1JFUVVFU1R9LAorICAjZWxzZQorICAgIHsiSFRUUFNfUFJPWFlfUkVRVUVTVCIsIEVSUl9MSUJfU1NMLCAxNTV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0hUVFBfUkVRVUVTVAorICAgIHsiSFRUUF9SRVFVRVNUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0hUVFBfUkVRVUVTVH0sCisgICNlbHNlCisgICAgeyJIVFRQX1JFUVVFU1QiLCBFUlJfTElCX1NTTCwgMTU2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9JTExFR0FMX1BBRERJTkcKKyAgICB7IklMTEVHQUxfUEFERElORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9JTExFR0FMX1BBRERJTkd9LAorICAjZWxzZQorICAgIHsiSUxMRUdBTF9QQURESU5HIiwgRVJSX0xJQl9TU0wsIDI4M30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfSU5DT05TSVNURU5UX0NPTVBSRVNTSU9OCisgICAgeyJJTkNPTlNJU1RFTlRfQ09NUFJFU1NJT04iLCBFUlJfTElCX1NTTCwgU1NMX1JfSU5DT05TSVNURU5UX0NPTVBSRVNTSU9OfSwKKyAgI2Vsc2UKKyAgICB7IklOQ09OU0lTVEVOVF9DT01QUkVTU0lPTiIsIEVSUl9MSUJfU1NMLCAzNDB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0lOVkFMSURfQ0hBTExFTkdFX0xFTkdUSAorICAgIHsiSU5WQUxJRF9DSEFMTEVOR0VfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0lOVkFMSURfQ0hBTExFTkdFX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJJTlZBTElEX0NIQUxMRU5HRV9MRU5HVEgiLCBFUlJfTElCX1NTTCwgMTU4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9JTlZBTElEX0NPTU1BTkQKKyAgICB7IklOVkFMSURfQ09NTUFORCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9JTlZBTElEX0NPTU1BTkR9LAorICAjZWxzZQorICAgIHsiSU5WQUxJRF9DT01NQU5EIiwgRVJSX0xJQl9TU0wsIDI4MH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfSU5WQUxJRF9DT01QUkVTU0lPTl9BTEdPUklUSE0KKyAgICB7IklOVkFMSURfQ09NUFJFU1NJT05fQUxHT1JJVEhNIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0lOVkFMSURfQ09NUFJFU1NJT05fQUxHT1JJVEhNfSwKKyAgI2Vsc2UKKyAgICB7IklOVkFMSURfQ09NUFJFU1NJT05fQUxHT1JJVEhNIiwgRVJSX0xJQl9TU0wsIDM0MX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfSU5WQUxJRF9QVVJQT1NFCisgICAgeyJJTlZBTElEX1BVUlBPU0UiLCBFUlJfTElCX1NTTCwgU1NMX1JfSU5WQUxJRF9QVVJQT1NFfSwKKyAgI2Vsc2UKKyAgICB7IklOVkFMSURfUFVSUE9TRSIsIEVSUl9MSUJfU1NMLCAyNzh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0lOVkFMSURfU1RBVFVTX1JFU1BPTlNFCisgICAgeyJJTlZBTElEX1NUQVRVU19SRVNQT05TRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9JTlZBTElEX1NUQVRVU19SRVNQT05TRX0sCisgICNlbHNlCisgICAgeyJJTlZBTElEX1NUQVRVU19SRVNQT05TRSIsIEVSUl9MSUJfU1NMLCAzMjh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0lOVkFMSURfVElDS0VUX0tFWVNfTEVOR1RICisgICAgeyJJTlZBTElEX1RJQ0tFVF9LRVlTX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9JTlZBTElEX1RJQ0tFVF9LRVlTX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJJTlZBTElEX1RJQ0tFVF9LRVlTX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCAzMjV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0lOVkFMSURfVFJVU1QKKyAgICB7IklOVkFMSURfVFJVU1QiLCBFUlJfTElCX1NTTCwgU1NMX1JfSU5WQUxJRF9UUlVTVH0sCisgICNlbHNlCisgICAgeyJJTlZBTElEX1RSVVNUIiwgRVJSX0xJQl9TU0wsIDI3OX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfS0VZX0FSR19UT09fTE9ORworICAgIHsiS0VZX0FSR19UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9LRVlfQVJHX1RPT19MT05HfSwKKyAgI2Vsc2UKKyAgICB7IktFWV9BUkdfVE9PX0xPTkciLCBFUlJfTElCX1NTTCwgMjg0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9LUkI1CisgICAgeyJLUkI1IiwgRVJSX0xJQl9TU0wsIFNTTF9SX0tSQjV9LAorICAjZWxzZQorICAgIHsiS1JCNSIsIEVSUl9MSUJfU1NMLCAyODV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0tSQjVfQ19DQ19QUklOQworICAgIHsiS1JCNV9DX0NDX1BSSU5DIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0tSQjVfQ19DQ19QUklOQ30sCisgICNlbHNlCisgICAgeyJLUkI1X0NfQ0NfUFJJTkMiLCBFUlJfTElCX1NTTCwgMjg2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9LUkI1X0NfR0VUX0NSRUQKKyAgICB7IktSQjVfQ19HRVRfQ1JFRCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9LUkI1X0NfR0VUX0NSRUR9LAorICAjZWxzZQorICAgIHsiS1JCNV9DX0dFVF9DUkVEIiwgRVJSX0xJQl9TU0wsIDI4N30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfS1JCNV9DX0lOSVQKKyAgICB7IktSQjVfQ19JTklUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0tSQjVfQ19JTklUfSwKKyAgI2Vsc2UKKyAgICB7IktSQjVfQ19JTklUIiwgRVJSX0xJQl9TU0wsIDI4OH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfS1JCNV9DX01LX1JFUQorICAgIHsiS1JCNV9DX01LX1JFUSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9LUkI1X0NfTUtfUkVRfSwKKyAgI2Vsc2UKKyAgICB7IktSQjVfQ19NS19SRVEiLCBFUlJfTElCX1NTTCwgMjg5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9LUkI1X1NfQkFEX1RJQ0tFVAorICAgIHsiS1JCNV9TX0JBRF9USUNLRVQiLCBFUlJfTElCX1NTTCwgU1NMX1JfS1JCNV9TX0JBRF9USUNLRVR9LAorICAjZWxzZQorICAgIHsiS1JCNV9TX0JBRF9USUNLRVQiLCBFUlJfTElCX1NTTCwgMjkwfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9LUkI1X1NfSU5JVAorICAgIHsiS1JCNV9TX0lOSVQiLCBFUlJfTElCX1NTTCwgU1NMX1JfS1JCNV9TX0lOSVR9LAorICAjZWxzZQorICAgIHsiS1JCNV9TX0lOSVQiLCBFUlJfTElCX1NTTCwgMjkxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9LUkI1X1NfUkRfUkVRCisgICAgeyJLUkI1X1NfUkRfUkVRIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0tSQjVfU19SRF9SRVF9LAorICAjZWxzZQorICAgIHsiS1JCNV9TX1JEX1JFUSIsIEVSUl9MSUJfU1NMLCAyOTJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0tSQjVfU19US1RfRVhQSVJFRAorICAgIHsiS1JCNV9TX1RLVF9FWFBJUkVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0tSQjVfU19US1RfRVhQSVJFRH0sCisgICNlbHNlCisgICAgeyJLUkI1X1NfVEtUX0VYUElSRUQiLCBFUlJfTElCX1NTTCwgMjkzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9LUkI1X1NfVEtUX05ZVgorICAgIHsiS1JCNV9TX1RLVF9OWVYiLCBFUlJfTElCX1NTTCwgU1NMX1JfS1JCNV9TX1RLVF9OWVZ9LAorICAjZWxzZQorICAgIHsiS1JCNV9TX1RLVF9OWVYiLCBFUlJfTElCX1NTTCwgMjk0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9LUkI1X1NfVEtUX1NLRVcKKyAgICB7IktSQjVfU19US1RfU0tFVyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9LUkI1X1NfVEtUX1NLRVd9LAorICAjZWxzZQorICAgIHsiS1JCNV9TX1RLVF9TS0VXIiwgRVJSX0xJQl9TU0wsIDI5NX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTEVOR1RIX01JU01BVENICisgICAgeyJMRU5HVEhfTUlTTUFUQ0giLCBFUlJfTElCX1NTTCwgU1NMX1JfTEVOR1RIX01JU01BVENIfSwKKyAgI2Vsc2UKKyAgICB7IkxFTkdUSF9NSVNNQVRDSCIsIEVSUl9MSUJfU1NMLCAxNTl9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX0xFTkdUSF9UT09fU0hPUlQKKyAgICB7IkxFTkdUSF9UT09fU0hPUlQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTEVOR1RIX1RPT19TSE9SVH0sCisgICNlbHNlCisgICAgeyJMRU5HVEhfVE9PX1NIT1JUIiwgRVJSX0xJQl9TU0wsIDE2MH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTElCUkFSWV9CVUcKKyAgICB7IkxJQlJBUllfQlVHIiwgRVJSX0xJQl9TU0wsIFNTTF9SX0xJQlJBUllfQlVHfSwKKyAgI2Vsc2UKKyAgICB7IkxJQlJBUllfQlVHIiwgRVJSX0xJQl9TU0wsIDI3NH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTElCUkFSWV9IQVNfTk9fQ0lQSEVSUworICAgIHsiTElCUkFSWV9IQVNfTk9fQ0lQSEVSUyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9MSUJSQVJZX0hBU19OT19DSVBIRVJTfSwKKyAgI2Vsc2UKKyAgICB7IkxJQlJBUllfSEFTX05PX0NJUEhFUlMiLCBFUlJfTElCX1NTTCwgMTYxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9NRVNTQUdFX1RPT19MT05HCisgICAgeyJNRVNTQUdFX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX01FU1NBR0VfVE9PX0xPTkd9LAorICAjZWxzZQorICAgIHsiTUVTU0FHRV9UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCAyOTZ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX01JU1NJTkdfREhfRFNBX0NFUlQKKyAgICB7Ik1JU1NJTkdfREhfRFNBX0NFUlQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTUlTU0lOR19ESF9EU0FfQ0VSVH0sCisgICNlbHNlCisgICAgeyJNSVNTSU5HX0RIX0RTQV9DRVJUIiwgRVJSX0xJQl9TU0wsIDE2Mn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTUlTU0lOR19ESF9LRVkKKyAgICB7Ik1JU1NJTkdfREhfS0VZIiwgRVJSX0xJQl9TU0wsIFNTTF9SX01JU1NJTkdfREhfS0VZfSwKKyAgI2Vsc2UKKyAgICB7Ik1JU1NJTkdfREhfS0VZIiwgRVJSX0xJQl9TU0wsIDE2M30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTUlTU0lOR19ESF9SU0FfQ0VSVAorICAgIHsiTUlTU0lOR19ESF9SU0FfQ0VSVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9NSVNTSU5HX0RIX1JTQV9DRVJUfSwKKyAgI2Vsc2UKKyAgICB7Ik1JU1NJTkdfREhfUlNBX0NFUlQiLCBFUlJfTElCX1NTTCwgMTY0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9NSVNTSU5HX0RTQV9TSUdOSU5HX0NFUlQKKyAgICB7Ik1JU1NJTkdfRFNBX1NJR05JTkdfQ0VSVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9NSVNTSU5HX0RTQV9TSUdOSU5HX0NFUlR9LAorICAjZWxzZQorICAgIHsiTUlTU0lOR19EU0FfU0lHTklOR19DRVJUIiwgRVJSX0xJQl9TU0wsIDE2NX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTUlTU0lOR19FWFBPUlRfVE1QX0RIX0tFWQorICAgIHsiTUlTU0lOR19FWFBPUlRfVE1QX0RIX0tFWSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9NSVNTSU5HX0VYUE9SVF9UTVBfREhfS0VZfSwKKyAgI2Vsc2UKKyAgICB7Ik1JU1NJTkdfRVhQT1JUX1RNUF9ESF9LRVkiLCBFUlJfTElCX1NTTCwgMTY2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9NSVNTSU5HX0VYUE9SVF9UTVBfUlNBX0tFWQorICAgIHsiTUlTU0lOR19FWFBPUlRfVE1QX1JTQV9LRVkiLCBFUlJfTElCX1NTTCwgU1NMX1JfTUlTU0lOR19FWFBPUlRfVE1QX1JTQV9LRVl9LAorICAjZWxzZQorICAgIHsiTUlTU0lOR19FWFBPUlRfVE1QX1JTQV9LRVkiLCBFUlJfTElCX1NTTCwgMTY3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9NSVNTSU5HX1JTQV9DRVJUSUZJQ0FURQorICAgIHsiTUlTU0lOR19SU0FfQ0VSVElGSUNBVEUiLCBFUlJfTElCX1NTTCwgU1NMX1JfTUlTU0lOR19SU0FfQ0VSVElGSUNBVEV9LAorICAjZWxzZQorICAgIHsiTUlTU0lOR19SU0FfQ0VSVElGSUNBVEUiLCBFUlJfTElCX1NTTCwgMTY4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9NSVNTSU5HX1JTQV9FTkNSWVBUSU5HX0NFUlQKKyAgICB7Ik1JU1NJTkdfUlNBX0VOQ1JZUFRJTkdfQ0VSVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9NSVNTSU5HX1JTQV9FTkNSWVBUSU5HX0NFUlR9LAorICAjZWxzZQorICAgIHsiTUlTU0lOR19SU0FfRU5DUllQVElOR19DRVJUIiwgRVJSX0xJQl9TU0wsIDE2OX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTUlTU0lOR19SU0FfU0lHTklOR19DRVJUCisgICAgeyJNSVNTSU5HX1JTQV9TSUdOSU5HX0NFUlQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTUlTU0lOR19SU0FfU0lHTklOR19DRVJUfSwKKyAgI2Vsc2UKKyAgICB7Ik1JU1NJTkdfUlNBX1NJR05JTkdfQ0VSVCIsIEVSUl9MSUJfU1NMLCAxNzB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX01JU1NJTkdfVE1QX0RIX0tFWQorICAgIHsiTUlTU0lOR19UTVBfREhfS0VZIiwgRVJSX0xJQl9TU0wsIFNTTF9SX01JU1NJTkdfVE1QX0RIX0tFWX0sCisgICNlbHNlCisgICAgeyJNSVNTSU5HX1RNUF9ESF9LRVkiLCBFUlJfTElCX1NTTCwgMTcxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9NSVNTSU5HX1RNUF9FQ0RIX0tFWQorICAgIHsiTUlTU0lOR19UTVBfRUNESF9LRVkiLCBFUlJfTElCX1NTTCwgU1NMX1JfTUlTU0lOR19UTVBfRUNESF9LRVl9LAorICAjZWxzZQorICAgIHsiTUlTU0lOR19UTVBfRUNESF9LRVkiLCBFUlJfTElCX1NTTCwgMzExfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9NSVNTSU5HX1RNUF9SU0FfS0VZCisgICAgeyJNSVNTSU5HX1RNUF9SU0FfS0VZIiwgRVJSX0xJQl9TU0wsIFNTTF9SX01JU1NJTkdfVE1QX1JTQV9LRVl9LAorICAjZWxzZQorICAgIHsiTUlTU0lOR19UTVBfUlNBX0tFWSIsIEVSUl9MSUJfU1NMLCAxNzJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX01JU1NJTkdfVE1QX1JTQV9QS0VZCisgICAgeyJNSVNTSU5HX1RNUF9SU0FfUEtFWSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9NSVNTSU5HX1RNUF9SU0FfUEtFWX0sCisgICNlbHNlCisgICAgeyJNSVNTSU5HX1RNUF9SU0FfUEtFWSIsIEVSUl9MSUJfU1NMLCAxNzN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX01JU1NJTkdfVkVSSUZZX01FU1NBR0UKKyAgICB7Ik1JU1NJTkdfVkVSSUZZX01FU1NBR0UiLCBFUlJfTElCX1NTTCwgU1NMX1JfTUlTU0lOR19WRVJJRllfTUVTU0FHRX0sCisgICNlbHNlCisgICAgeyJNSVNTSU5HX1ZFUklGWV9NRVNTQUdFIiwgRVJSX0xJQl9TU0wsIDE3NH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTk9OX1NTTFYyX0lOSVRJQUxfUEFDS0VUCisgICAgeyJOT05fU1NMVjJfSU5JVElBTF9QQUNLRVQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTk9OX1NTTFYyX0lOSVRJQUxfUEFDS0VUfSwKKyAgI2Vsc2UKKyAgICB7Ik5PTl9TU0xWMl9JTklUSUFMX1BBQ0tFVCIsIEVSUl9MSUJfU1NMLCAxNzV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX0NFUlRJRklDQVRFU19SRVRVUk5FRAorICAgIHsiTk9fQ0VSVElGSUNBVEVTX1JFVFVSTkVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX05PX0NFUlRJRklDQVRFU19SRVRVUk5FRH0sCisgICNlbHNlCisgICAgeyJOT19DRVJUSUZJQ0FURVNfUkVUVVJORUQiLCBFUlJfTElCX1NTTCwgMTc2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9OT19DRVJUSUZJQ0FURV9BU1NJR05FRAorICAgIHsiTk9fQ0VSVElGSUNBVEVfQVNTSUdORUQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTk9fQ0VSVElGSUNBVEVfQVNTSUdORUR9LAorICAjZWxzZQorICAgIHsiTk9fQ0VSVElGSUNBVEVfQVNTSUdORUQiLCBFUlJfTElCX1NTTCwgMTc3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9OT19DRVJUSUZJQ0FURV9SRVRVUk5FRAorICAgIHsiTk9fQ0VSVElGSUNBVEVfUkVUVVJORUQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTk9fQ0VSVElGSUNBVEVfUkVUVVJORUR9LAorICAjZWxzZQorICAgIHsiTk9fQ0VSVElGSUNBVEVfUkVUVVJORUQiLCBFUlJfTElCX1NTTCwgMTc4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9OT19DRVJUSUZJQ0FURV9TRVQKKyAgICB7Ik5PX0NFUlRJRklDQVRFX1NFVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OT19DRVJUSUZJQ0FURV9TRVR9LAorICAjZWxzZQorICAgIHsiTk9fQ0VSVElGSUNBVEVfU0VUIiwgRVJSX0xJQl9TU0wsIDE3OX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTk9fQ0VSVElGSUNBVEVfU1BFQ0lGSUVECisgICAgeyJOT19DRVJUSUZJQ0FURV9TUEVDSUZJRUQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTk9fQ0VSVElGSUNBVEVfU1BFQ0lGSUVEfSwKKyAgI2Vsc2UKKyAgICB7Ik5PX0NFUlRJRklDQVRFX1NQRUNJRklFRCIsIEVSUl9MSUJfU1NMLCAxODB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX0NJUEhFUlNfQVZBSUxBQkxFCisgICAgeyJOT19DSVBIRVJTX0FWQUlMQUJMRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OT19DSVBIRVJTX0FWQUlMQUJMRX0sCisgICNlbHNlCisgICAgeyJOT19DSVBIRVJTX0FWQUlMQUJMRSIsIEVSUl9MSUJfU1NMLCAxODF9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX0NJUEhFUlNfUEFTU0VECisgICAgeyJOT19DSVBIRVJTX1BBU1NFRCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OT19DSVBIRVJTX1BBU1NFRH0sCisgICNlbHNlCisgICAgeyJOT19DSVBIRVJTX1BBU1NFRCIsIEVSUl9MSUJfU1NMLCAxODJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX0NJUEhFUlNfU1BFQ0lGSUVECisgICAgeyJOT19DSVBIRVJTX1NQRUNJRklFRCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OT19DSVBIRVJTX1NQRUNJRklFRH0sCisgICNlbHNlCisgICAgeyJOT19DSVBIRVJTX1NQRUNJRklFRCIsIEVSUl9MSUJfU1NMLCAxODN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX0NJUEhFUl9MSVNUCisgICAgeyJOT19DSVBIRVJfTElTVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OT19DSVBIRVJfTElTVH0sCisgICNlbHNlCisgICAgeyJOT19DSVBIRVJfTElTVCIsIEVSUl9MSUJfU1NMLCAxODR9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX0NJUEhFUl9NQVRDSAorICAgIHsiTk9fQ0lQSEVSX01BVENIIiwgRVJSX0xJQl9TU0wsIFNTTF9SX05PX0NJUEhFUl9NQVRDSH0sCisgICNlbHNlCisgICAgeyJOT19DSVBIRVJfTUFUQ0giLCBFUlJfTElCX1NTTCwgMTg1fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9OT19DTElFTlRfQ0VSVF9NRVRIT0QKKyAgICB7Ik5PX0NMSUVOVF9DRVJUX01FVEhPRCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OT19DTElFTlRfQ0VSVF9NRVRIT0R9LAorICAjZWxzZQorICAgIHsiTk9fQ0xJRU5UX0NFUlRfTUVUSE9EIiwgRVJSX0xJQl9TU0wsIDMzMX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTk9fQ0xJRU5UX0NFUlRfUkVDRUlWRUQKKyAgICB7Ik5PX0NMSUVOVF9DRVJUX1JFQ0VJVkVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX05PX0NMSUVOVF9DRVJUX1JFQ0VJVkVEfSwKKyAgI2Vsc2UKKyAgICB7Ik5PX0NMSUVOVF9DRVJUX1JFQ0VJVkVEIiwgRVJSX0xJQl9TU0wsIDE4Nn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTk9fQ09NUFJFU1NJT05fU1BFQ0lGSUVECisgICAgeyJOT19DT01QUkVTU0lPTl9TUEVDSUZJRUQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTk9fQ09NUFJFU1NJT05fU1BFQ0lGSUVEfSwKKyAgI2Vsc2UKKyAgICB7Ik5PX0NPTVBSRVNTSU9OX1NQRUNJRklFRCIsIEVSUl9MSUJfU1NMLCAxODd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX0dPU1RfQ0VSVElGSUNBVEVfU0VOVF9CWV9QRUVSCisgICAgeyJOT19HT1NUX0NFUlRJRklDQVRFX1NFTlRfQllfUEVFUiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OT19HT1NUX0NFUlRJRklDQVRFX1NFTlRfQllfUEVFUn0sCisgICNlbHNlCisgICAgeyJOT19HT1NUX0NFUlRJRklDQVRFX1NFTlRfQllfUEVFUiIsIEVSUl9MSUJfU1NMLCAzMzB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX01FVEhPRF9TUEVDSUZJRUQKKyAgICB7Ik5PX01FVEhPRF9TUEVDSUZJRUQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTk9fTUVUSE9EX1NQRUNJRklFRH0sCisgICNlbHNlCisgICAgeyJOT19NRVRIT0RfU1BFQ0lGSUVEIiwgRVJSX0xJQl9TU0wsIDE4OH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTk9fUFJJVkFURUtFWQorICAgIHsiTk9fUFJJVkFURUtFWSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OT19QUklWQVRFS0VZfSwKKyAgI2Vsc2UKKyAgICB7Ik5PX1BSSVZBVEVLRVkiLCBFUlJfTElCX1NTTCwgMTg5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9OT19QUklWQVRFX0tFWV9BU1NJR05FRAorICAgIHsiTk9fUFJJVkFURV9LRVlfQVNTSUdORUQiLCBFUlJfTElCX1NTTCwgU1NMX1JfTk9fUFJJVkFURV9LRVlfQVNTSUdORUR9LAorICAjZWxzZQorICAgIHsiTk9fUFJJVkFURV9LRVlfQVNTSUdORUQiLCBFUlJfTElCX1NTTCwgMTkwfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9OT19QUk9UT0NPTFNfQVZBSUxBQkxFCisgICAgeyJOT19QUk9UT0NPTFNfQVZBSUxBQkxFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX05PX1BST1RPQ09MU19BVkFJTEFCTEV9LAorICAjZWxzZQorICAgIHsiTk9fUFJPVE9DT0xTX0FWQUlMQUJMRSIsIEVSUl9MSUJfU1NMLCAxOTF9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX1BVQkxJQ0tFWQorICAgIHsiTk9fUFVCTElDS0VZIiwgRVJSX0xJQl9TU0wsIFNTTF9SX05PX1BVQkxJQ0tFWX0sCisgICNlbHNlCisgICAgeyJOT19QVUJMSUNLRVkiLCBFUlJfTElCX1NTTCwgMTkyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9OT19SRU5FR09USUFUSU9OCisgICAgeyJOT19SRU5FR09USUFUSU9OIiwgRVJSX0xJQl9TU0wsIFNTTF9SX05PX1JFTkVHT1RJQVRJT059LAorICAjZWxzZQorICAgIHsiTk9fUkVORUdPVElBVElPTiIsIEVSUl9MSUJfU1NMLCAzMzl9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX1JFUVVJUkVEX0RJR0VTVAorICAgIHsiTk9fUkVRVUlSRURfRElHRVNUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX05PX1JFUVVJUkVEX0RJR0VTVH0sCisgICNlbHNlCisgICAgeyJOT19SRVFVSVJFRF9ESUdFU1QiLCBFUlJfTElCX1NTTCwgMzI0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9OT19TSEFSRURfQ0lQSEVSCisgICAgeyJOT19TSEFSRURfQ0lQSEVSIiwgRVJSX0xJQl9TU0wsIFNTTF9SX05PX1NIQVJFRF9DSVBIRVJ9LAorICAjZWxzZQorICAgIHsiTk9fU0hBUkVEX0NJUEhFUiIsIEVSUl9MSUJfU1NMLCAxOTN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX05PX1ZFUklGWV9DQUxMQkFDSworICAgIHsiTk9fVkVSSUZZX0NBTExCQUNLIiwgRVJSX0xJQl9TU0wsIFNTTF9SX05PX1ZFUklGWV9DQUxMQkFDS30sCisgICNlbHNlCisgICAgeyJOT19WRVJJRllfQ0FMTEJBQ0siLCBFUlJfTElCX1NTTCwgMTk0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9OVUxMX1NTTF9DVFgKKyAgICB7Ik5VTExfU1NMX0NUWCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OVUxMX1NTTF9DVFh9LAorICAjZWxzZQorICAgIHsiTlVMTF9TU0xfQ1RYIiwgRVJSX0xJQl9TU0wsIDE5NX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfTlVMTF9TU0xfTUVUSE9EX1BBU1NFRAorICAgIHsiTlVMTF9TU0xfTUVUSE9EX1BBU1NFRCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9OVUxMX1NTTF9NRVRIT0RfUEFTU0VEfSwKKyAgI2Vsc2UKKyAgICB7Ik5VTExfU1NMX01FVEhPRF9QQVNTRUQiLCBFUlJfTElCX1NTTCwgMTk2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9PTERfU0VTU0lPTl9DSVBIRVJfTk9UX1JFVFVSTkVECisgICAgeyJPTERfU0VTU0lPTl9DSVBIRVJfTk9UX1JFVFVSTkVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX09MRF9TRVNTSU9OX0NJUEhFUl9OT1RfUkVUVVJORUR9LAorICAjZWxzZQorICAgIHsiT0xEX1NFU1NJT05fQ0lQSEVSX05PVF9SRVRVUk5FRCIsIEVSUl9MSUJfU1NMLCAxOTd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX09MRF9TRVNTSU9OX0NPTVBSRVNTSU9OX0FMR09SSVRITV9OT1RfUkVUVVJORUQKKyAgICB7Ik9MRF9TRVNTSU9OX0NPTVBSRVNTSU9OX0FMR09SSVRITV9OT1RfUkVUVVJORUQiLCBFUlJfTElCX1NTTCwgU1NMX1JfT0xEX1NFU1NJT05fQ09NUFJFU1NJT05fQUxHT1JJVEhNX05PVF9SRVRVUk5FRH0sCisgICNlbHNlCisgICAgeyJPTERfU0VTU0lPTl9DT01QUkVTU0lPTl9BTEdPUklUSE1fTk9UX1JFVFVSTkVEIiwgRVJSX0xJQl9TU0wsIDM0NH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfT05MWV9UTFNfQUxMT1dFRF9JTl9GSVBTX01PREUKKyAgICB7Ik9OTFlfVExTX0FMTE9XRURfSU5fRklQU19NT0RFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX09OTFlfVExTX0FMTE9XRURfSU5fRklQU19NT0RFfSwKKyAgI2Vsc2UKKyAgICB7Ik9OTFlfVExTX0FMTE9XRURfSU5fRklQU19NT0RFIiwgRVJSX0xJQl9TU0wsIDI5N30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfT1BBUVVFX1BSRl9JTlBVVF9UT09fTE9ORworICAgIHsiT1BBUVVFX1BSRl9JTlBVVF9UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9PUEFRVUVfUFJGX0lOUFVUX1RPT19MT05HfSwKKyAgI2Vsc2UKKyAgICB7Ik9QQVFVRV9QUkZfSU5QVVRfVE9PX0xPTkciLCBFUlJfTElCX1NTTCwgMzI3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9QQUNLRVRfTEVOR1RIX1RPT19MT05HCisgICAgeyJQQUNLRVRfTEVOR1RIX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1BBQ0tFVF9MRU5HVEhfVE9PX0xPTkd9LAorICAjZWxzZQorICAgIHsiUEFDS0VUX0xFTkdUSF9UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCAxOTh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1BBUlNFX1RMU0VYVAorICAgIHsiUEFSU0VfVExTRVhUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1BBUlNFX1RMU0VYVH0sCisgICNlbHNlCisgICAgeyJQQVJTRV9UTFNFWFQiLCBFUlJfTElCX1NTTCwgMjI3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9QQVRIX1RPT19MT05HCisgICAgeyJQQVRIX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1BBVEhfVE9PX0xPTkd9LAorICAjZWxzZQorICAgIHsiUEFUSF9UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCAyNzB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1BFRVJfRElEX05PVF9SRVRVUk5fQV9DRVJUSUZJQ0FURQorICAgIHsiUEVFUl9ESURfTk9UX1JFVFVSTl9BX0NFUlRJRklDQVRFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1BFRVJfRElEX05PVF9SRVRVUk5fQV9DRVJUSUZJQ0FURX0sCisgICNlbHNlCisgICAgeyJQRUVSX0RJRF9OT1RfUkVUVVJOX0FfQ0VSVElGSUNBVEUiLCBFUlJfTElCX1NTTCwgMTk5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9QRUVSX0VSUk9SCisgICAgeyJQRUVSX0VSUk9SIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1BFRVJfRVJST1J9LAorICAjZWxzZQorICAgIHsiUEVFUl9FUlJPUiIsIEVSUl9MSUJfU1NMLCAyMDB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1BFRVJfRVJST1JfQ0VSVElGSUNBVEUKKyAgICB7IlBFRVJfRVJST1JfQ0VSVElGSUNBVEUiLCBFUlJfTElCX1NTTCwgU1NMX1JfUEVFUl9FUlJPUl9DRVJUSUZJQ0FURX0sCisgICNlbHNlCisgICAgeyJQRUVSX0VSUk9SX0NFUlRJRklDQVRFIiwgRVJSX0xJQl9TU0wsIDIwMX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUEVFUl9FUlJPUl9OT19DRVJUSUZJQ0FURQorICAgIHsiUEVFUl9FUlJPUl9OT19DRVJUSUZJQ0FURSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9QRUVSX0VSUk9SX05PX0NFUlRJRklDQVRFfSwKKyAgI2Vsc2UKKyAgICB7IlBFRVJfRVJST1JfTk9fQ0VSVElGSUNBVEUiLCBFUlJfTElCX1NTTCwgMjAyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9QRUVSX0VSUk9SX05PX0NJUEhFUgorICAgIHsiUEVFUl9FUlJPUl9OT19DSVBIRVIiLCBFUlJfTElCX1NTTCwgU1NMX1JfUEVFUl9FUlJPUl9OT19DSVBIRVJ9LAorICAjZWxzZQorICAgIHsiUEVFUl9FUlJPUl9OT19DSVBIRVIiLCBFUlJfTElCX1NTTCwgMjAzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9QRUVSX0VSUk9SX1VOU1VQUE9SVEVEX0NFUlRJRklDQVRFX1RZUEUKKyAgICB7IlBFRVJfRVJST1JfVU5TVVBQT1JURURfQ0VSVElGSUNBVEVfVFlQRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9QRUVSX0VSUk9SX1VOU1VQUE9SVEVEX0NFUlRJRklDQVRFX1RZUEV9LAorICAjZWxzZQorICAgIHsiUEVFUl9FUlJPUl9VTlNVUFBPUlRFRF9DRVJUSUZJQ0FURV9UWVBFIiwgRVJSX0xJQl9TU0wsIDIwNH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUFJFX01BQ19MRU5HVEhfVE9PX0xPTkcKKyAgICB7IlBSRV9NQUNfTEVOR1RIX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1BSRV9NQUNfTEVOR1RIX1RPT19MT05HfSwKKyAgI2Vsc2UKKyAgICB7IlBSRV9NQUNfTEVOR1RIX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIDIwNX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUFJPQkxFTVNfTUFQUElOR19DSVBIRVJfRlVOQ1RJT05TCisgICAgeyJQUk9CTEVNU19NQVBQSU5HX0NJUEhFUl9GVU5DVElPTlMiLCBFUlJfTElCX1NTTCwgU1NMX1JfUFJPQkxFTVNfTUFQUElOR19DSVBIRVJfRlVOQ1RJT05TfSwKKyAgI2Vsc2UKKyAgICB7IlBST0JMRU1TX01BUFBJTkdfQ0lQSEVSX0ZVTkNUSU9OUyIsIEVSUl9MSUJfU1NMLCAyMDZ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1BST1RPQ09MX0lTX1NIVVRET1dOCisgICAgeyJQUk9UT0NPTF9JU19TSFVURE9XTiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9QUk9UT0NPTF9JU19TSFVURE9XTn0sCisgICNlbHNlCisgICAgeyJQUk9UT0NPTF9JU19TSFVURE9XTiIsIEVSUl9MSUJfU1NMLCAyMDd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1BTS19JREVOVElUWV9OT1RfRk9VTkQKKyAgICB7IlBTS19JREVOVElUWV9OT1RfRk9VTkQiLCBFUlJfTElCX1NTTCwgU1NMX1JfUFNLX0lERU5USVRZX05PVF9GT1VORH0sCisgICNlbHNlCisgICAgeyJQU0tfSURFTlRJVFlfTk9UX0ZPVU5EIiwgRVJSX0xJQl9TU0wsIDIyM30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUFNLX05PX0NMSUVOVF9DQgorICAgIHsiUFNLX05PX0NMSUVOVF9DQiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9QU0tfTk9fQ0xJRU5UX0NCfSwKKyAgI2Vsc2UKKyAgICB7IlBTS19OT19DTElFTlRfQ0IiLCBFUlJfTElCX1NTTCwgMjI0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9QU0tfTk9fU0VSVkVSX0NCCisgICAgeyJQU0tfTk9fU0VSVkVSX0NCIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1BTS19OT19TRVJWRVJfQ0J9LAorICAjZWxzZQorICAgIHsiUFNLX05PX1NFUlZFUl9DQiIsIEVSUl9MSUJfU1NMLCAyMjV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1BVQkxJQ19LRVlfRU5DUllQVF9FUlJPUgorICAgIHsiUFVCTElDX0tFWV9FTkNSWVBUX0VSUk9SIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1BVQkxJQ19LRVlfRU5DUllQVF9FUlJPUn0sCisgICNlbHNlCisgICAgeyJQVUJMSUNfS0VZX0VOQ1JZUFRfRVJST1IiLCBFUlJfTElCX1NTTCwgMjA4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9QVUJMSUNfS0VZX0lTX05PVF9SU0EKKyAgICB7IlBVQkxJQ19LRVlfSVNfTk9UX1JTQSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9QVUJMSUNfS0VZX0lTX05PVF9SU0F9LAorICAjZWxzZQorICAgIHsiUFVCTElDX0tFWV9JU19OT1RfUlNBIiwgRVJSX0xJQl9TU0wsIDIwOX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUFVCTElDX0tFWV9OT1RfUlNBCisgICAgeyJQVUJMSUNfS0VZX05PVF9SU0EiLCBFUlJfTElCX1NTTCwgU1NMX1JfUFVCTElDX0tFWV9OT1RfUlNBfSwKKyAgI2Vsc2UKKyAgICB7IlBVQkxJQ19LRVlfTk9UX1JTQSIsIEVSUl9MSUJfU1NMLCAyMTB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1JFQURfQklPX05PVF9TRVQKKyAgICB7IlJFQURfQklPX05PVF9TRVQiLCBFUlJfTElCX1NTTCwgU1NMX1JfUkVBRF9CSU9fTk9UX1NFVH0sCisgICNlbHNlCisgICAgeyJSRUFEX0JJT19OT1RfU0VUIiwgRVJSX0xJQl9TU0wsIDIxMX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUkVBRF9USU1FT1VUX0VYUElSRUQKKyAgICB7IlJFQURfVElNRU9VVF9FWFBJUkVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1JFQURfVElNRU9VVF9FWFBJUkVEfSwKKyAgI2Vsc2UKKyAgICB7IlJFQURfVElNRU9VVF9FWFBJUkVEIiwgRVJSX0xJQl9TU0wsIDMxMn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUkVBRF9XUk9OR19QQUNLRVRfVFlQRQorICAgIHsiUkVBRF9XUk9OR19QQUNLRVRfVFlQRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9SRUFEX1dST05HX1BBQ0tFVF9UWVBFfSwKKyAgI2Vsc2UKKyAgICB7IlJFQURfV1JPTkdfUEFDS0VUX1RZUEUiLCBFUlJfTElCX1NTTCwgMjEyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9SRUNPUkRfTEVOR1RIX01JU01BVENICisgICAgeyJSRUNPUkRfTEVOR1RIX01JU01BVENIIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1JFQ09SRF9MRU5HVEhfTUlTTUFUQ0h9LAorICAjZWxzZQorICAgIHsiUkVDT1JEX0xFTkdUSF9NSVNNQVRDSCIsIEVSUl9MSUJfU1NMLCAyMTN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1JFQ09SRF9UT09fTEFSR0UKKyAgICB7IlJFQ09SRF9UT09fTEFSR0UiLCBFUlJfTElCX1NTTCwgU1NMX1JfUkVDT1JEX1RPT19MQVJHRX0sCisgICNlbHNlCisgICAgeyJSRUNPUkRfVE9PX0xBUkdFIiwgRVJSX0xJQl9TU0wsIDIxNH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUkVDT1JEX1RPT19TTUFMTAorICAgIHsiUkVDT1JEX1RPT19TTUFMTCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9SRUNPUkRfVE9PX1NNQUxMfSwKKyAgI2Vsc2UKKyAgICB7IlJFQ09SRF9UT09fU01BTEwiLCBFUlJfTElCX1NTTCwgMjk4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9SRU5FR09USUFURV9FWFRfVE9PX0xPTkcKKyAgICB7IlJFTkVHT1RJQVRFX0VYVF9UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9SRU5FR09USUFURV9FWFRfVE9PX0xPTkd9LAorICAjZWxzZQorICAgIHsiUkVORUdPVElBVEVfRVhUX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIDMzNX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUkVORUdPVElBVElPTl9FTkNPRElOR19FUlIKKyAgICB7IlJFTkVHT1RJQVRJT05fRU5DT0RJTkdfRVJSIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1JFTkVHT1RJQVRJT05fRU5DT0RJTkdfRVJSfSwKKyAgI2Vsc2UKKyAgICB7IlJFTkVHT1RJQVRJT05fRU5DT0RJTkdfRVJSIiwgRVJSX0xJQl9TU0wsIDMzNn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUkVORUdPVElBVElPTl9NSVNNQVRDSAorICAgIHsiUkVORUdPVElBVElPTl9NSVNNQVRDSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9SRU5FR09USUFUSU9OX01JU01BVENIfSwKKyAgI2Vsc2UKKyAgICB7IlJFTkVHT1RJQVRJT05fTUlTTUFUQ0giLCBFUlJfTElCX1NTTCwgMzM3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9SRVFVSVJFRF9DSVBIRVJfTUlTU0lORworICAgIHsiUkVRVUlSRURfQ0lQSEVSX01JU1NJTkciLCBFUlJfTElCX1NTTCwgU1NMX1JfUkVRVUlSRURfQ0lQSEVSX01JU1NJTkd9LAorICAjZWxzZQorICAgIHsiUkVRVUlSRURfQ0lQSEVSX01JU1NJTkciLCBFUlJfTElCX1NTTCwgMjE1fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9SRVFVSVJFRF9DT01QUkVTU1NJT05fQUxHT1JJVEhNX01JU1NJTkcKKyAgICB7IlJFUVVJUkVEX0NPTVBSRVNTU0lPTl9BTEdPUklUSE1fTUlTU0lORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9SRVFVSVJFRF9DT01QUkVTU1NJT05fQUxHT1JJVEhNX01JU1NJTkd9LAorICAjZWxzZQorICAgIHsiUkVRVUlSRURfQ09NUFJFU1NTSU9OX0FMR09SSVRITV9NSVNTSU5HIiwgRVJSX0xJQl9TU0wsIDM0Mn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUkVVU0VfQ0VSVF9MRU5HVEhfTk9UX1pFUk8KKyAgICB7IlJFVVNFX0NFUlRfTEVOR1RIX05PVF9aRVJPIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1JFVVNFX0NFUlRfTEVOR1RIX05PVF9aRVJPfSwKKyAgI2Vsc2UKKyAgICB7IlJFVVNFX0NFUlRfTEVOR1RIX05PVF9aRVJPIiwgRVJSX0xJQl9TU0wsIDIxNn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfUkVVU0VfQ0VSVF9UWVBFX05PVF9aRVJPCisgICAgeyJSRVVTRV9DRVJUX1RZUEVfTk9UX1pFUk8iLCBFUlJfTElCX1NTTCwgU1NMX1JfUkVVU0VfQ0VSVF9UWVBFX05PVF9aRVJPfSwKKyAgI2Vsc2UKKyAgICB7IlJFVVNFX0NFUlRfVFlQRV9OT1RfWkVSTyIsIEVSUl9MSUJfU1NMLCAyMTd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1JFVVNFX0NJUEhFUl9MSVNUX05PVF9aRVJPCisgICAgeyJSRVVTRV9DSVBIRVJfTElTVF9OT1RfWkVSTyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9SRVVTRV9DSVBIRVJfTElTVF9OT1RfWkVST30sCisgICNlbHNlCisgICAgeyJSRVVTRV9DSVBIRVJfTElTVF9OT1RfWkVSTyIsIEVSUl9MSUJfU1NMLCAyMTh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NDU1ZfUkVDRUlWRURfV0hFTl9SRU5FR09USUFUSU5HCisgICAgeyJTQ1NWX1JFQ0VJVkVEX1dIRU5fUkVORUdPVElBVElORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TQ1NWX1JFQ0VJVkVEX1dIRU5fUkVORUdPVElBVElOR30sCisgICNlbHNlCisgICAgeyJTQ1NWX1JFQ0VJVkVEX1dIRU5fUkVORUdPVElBVElORyIsIEVSUl9MSUJfU1NMLCAzNDV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NFUlZFUkhFTExPX1RMU0VYVAorICAgIHsiU0VSVkVSSEVMTE9fVExTRVhUIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NFUlZFUkhFTExPX1RMU0VYVH0sCisgICNlbHNlCisgICAgeyJTRVJWRVJIRUxMT19UTFNFWFQiLCBFUlJfTElCX1NTTCwgMjc1fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TRVNTSU9OX0lEX0NPTlRFWFRfVU5JTklUSUFMSVpFRAorICAgIHsiU0VTU0lPTl9JRF9DT05URVhUX1VOSU5JVElBTElaRUQiLCBFUlJfTElCX1NTTCwgU1NMX1JfU0VTU0lPTl9JRF9DT05URVhUX1VOSU5JVElBTElaRUR9LAorICAjZWxzZQorICAgIHsiU0VTU0lPTl9JRF9DT05URVhUX1VOSU5JVElBTElaRUQiLCBFUlJfTElCX1NTTCwgMjc3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TSE9SVF9SRUFECisgICAgeyJTSE9SVF9SRUFEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NIT1JUX1JFQUR9LAorICAjZWxzZQorICAgIHsiU0hPUlRfUkVBRCIsIEVSUl9MSUJfU1NMLCAyMTl9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NJR05BVFVSRV9GT1JfTk9OX1NJR05JTkdfQ0VSVElGSUNBVEUKKyAgICB7IlNJR05BVFVSRV9GT1JfTk9OX1NJR05JTkdfQ0VSVElGSUNBVEUiLCBFUlJfTElCX1NTTCwgU1NMX1JfU0lHTkFUVVJFX0ZPUl9OT05fU0lHTklOR19DRVJUSUZJQ0FURX0sCisgICNlbHNlCisgICAgeyJTSUdOQVRVUkVfRk9SX05PTl9TSUdOSU5HX0NFUlRJRklDQVRFIiwgRVJSX0xJQl9TU0wsIDIyMH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfU1NMMjNfRE9JTkdfU0VTU0lPTl9JRF9SRVVTRQorICAgIHsiU1NMMjNfRE9JTkdfU0VTU0lPTl9JRF9SRVVTRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0wyM19ET0lOR19TRVNTSU9OX0lEX1JFVVNFfSwKKyAgI2Vsc2UKKyAgICB7IlNTTDIzX0RPSU5HX1NFU1NJT05fSURfUkVVU0UiLCBFUlJfTElCX1NTTCwgMjIxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0wyX0NPTk5FQ1RJT05fSURfVE9PX0xPTkcKKyAgICB7IlNTTDJfQ09OTkVDVElPTl9JRF9UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0wyX0NPTk5FQ1RJT05fSURfVE9PX0xPTkd9LAorICAjZWxzZQorICAgIHsiU1NMMl9DT05ORUNUSU9OX0lEX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIDI5OX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfU1NMM19FWFRfSU5WQUxJRF9FQ1BPSU5URk9STUFUCisgICAgeyJTU0wzX0VYVF9JTlZBTElEX0VDUE9JTlRGT1JNQVQiLCBFUlJfTElCX1NTTCwgU1NMX1JfU1NMM19FWFRfSU5WQUxJRF9FQ1BPSU5URk9STUFUfSwKKyAgI2Vsc2UKKyAgICB7IlNTTDNfRVhUX0lOVkFMSURfRUNQT0lOVEZPUk1BVCIsIEVSUl9MSUJfU1NMLCAzMjF9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NTTDNfRVhUX0lOVkFMSURfU0VSVkVSTkFNRQorICAgIHsiU1NMM19FWFRfSU5WQUxJRF9TRVJWRVJOQU1FIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTDNfRVhUX0lOVkFMSURfU0VSVkVSTkFNRX0sCisgICNlbHNlCisgICAgeyJTU0wzX0VYVF9JTlZBTElEX1NFUlZFUk5BTUUiLCBFUlJfTElCX1NTTCwgMzE5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0wzX0VYVF9JTlZBTElEX1NFUlZFUk5BTUVfVFlQRQorICAgIHsiU1NMM19FWFRfSU5WQUxJRF9TRVJWRVJOQU1FX1RZUEUiLCBFUlJfTElCX1NTTCwgU1NMX1JfU1NMM19FWFRfSU5WQUxJRF9TRVJWRVJOQU1FX1RZUEV9LAorICAjZWxzZQorICAgIHsiU1NMM19FWFRfSU5WQUxJRF9TRVJWRVJOQU1FX1RZUEUiLCBFUlJfTElCX1NTTCwgMzIwfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0wzX1NFU1NJT05fSURfVE9PX0xPTkcKKyAgICB7IlNTTDNfU0VTU0lPTl9JRF9UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0wzX1NFU1NJT05fSURfVE9PX0xPTkd9LAorICAjZWxzZQorICAgIHsiU1NMM19TRVNTSU9OX0lEX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIDMwMH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfU1NMM19TRVNTSU9OX0lEX1RPT19TSE9SVAorICAgIHsiU1NMM19TRVNTSU9OX0lEX1RPT19TSE9SVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0wzX1NFU1NJT05fSURfVE9PX1NIT1JUfSwKKyAgI2Vsc2UKKyAgICB7IlNTTDNfU0VTU0lPTl9JRF9UT09fU0hPUlQiLCBFUlJfTElCX1NTTCwgMjIyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0xWM19BTEVSVF9CQURfQ0VSVElGSUNBVEUKKyAgICB7IlNTTFYzX0FMRVJUX0JBRF9DRVJUSUZJQ0FURSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0xWM19BTEVSVF9CQURfQ0VSVElGSUNBVEV9LAorICAjZWxzZQorICAgIHsiU1NMVjNfQUxFUlRfQkFEX0NFUlRJRklDQVRFIiwgRVJSX0xJQl9TU0wsIDEwNDJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NTTFYzX0FMRVJUX0JBRF9SRUNPUkRfTUFDCisgICAgeyJTU0xWM19BTEVSVF9CQURfUkVDT1JEX01BQyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0xWM19BTEVSVF9CQURfUkVDT1JEX01BQ30sCisgICNlbHNlCisgICAgeyJTU0xWM19BTEVSVF9CQURfUkVDT1JEX01BQyIsIEVSUl9MSUJfU1NMLCAxMDIwfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0xWM19BTEVSVF9DRVJUSUZJQ0FURV9FWFBJUkVECisgICAgeyJTU0xWM19BTEVSVF9DRVJUSUZJQ0FURV9FWFBJUkVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTFYzX0FMRVJUX0NFUlRJRklDQVRFX0VYUElSRUR9LAorICAjZWxzZQorICAgIHsiU1NMVjNfQUxFUlRfQ0VSVElGSUNBVEVfRVhQSVJFRCIsIEVSUl9MSUJfU1NMLCAxMDQ1fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0xWM19BTEVSVF9DRVJUSUZJQ0FURV9SRVZPS0VECisgICAgeyJTU0xWM19BTEVSVF9DRVJUSUZJQ0FURV9SRVZPS0VEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTFYzX0FMRVJUX0NFUlRJRklDQVRFX1JFVk9LRUR9LAorICAjZWxzZQorICAgIHsiU1NMVjNfQUxFUlRfQ0VSVElGSUNBVEVfUkVWT0tFRCIsIEVSUl9MSUJfU1NMLCAxMDQ0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0xWM19BTEVSVF9DRVJUSUZJQ0FURV9VTktOT1dOCisgICAgeyJTU0xWM19BTEVSVF9DRVJUSUZJQ0FURV9VTktOT1dOIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTFYzX0FMRVJUX0NFUlRJRklDQVRFX1VOS05PV059LAorICAjZWxzZQorICAgIHsiU1NMVjNfQUxFUlRfQ0VSVElGSUNBVEVfVU5LTk9XTiIsIEVSUl9MSUJfU1NMLCAxMDQ2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0xWM19BTEVSVF9ERUNPTVBSRVNTSU9OX0ZBSUxVUkUKKyAgICB7IlNTTFYzX0FMRVJUX0RFQ09NUFJFU1NJT05fRkFJTFVSRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0xWM19BTEVSVF9ERUNPTVBSRVNTSU9OX0ZBSUxVUkV9LAorICAjZWxzZQorICAgIHsiU1NMVjNfQUxFUlRfREVDT01QUkVTU0lPTl9GQUlMVVJFIiwgRVJSX0xJQl9TU0wsIDEwMzB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NTTFYzX0FMRVJUX0hBTkRTSEFLRV9GQUlMVVJFCisgICAgeyJTU0xWM19BTEVSVF9IQU5EU0hBS0VfRkFJTFVSRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0xWM19BTEVSVF9IQU5EU0hBS0VfRkFJTFVSRX0sCisgICNlbHNlCisgICAgeyJTU0xWM19BTEVSVF9IQU5EU0hBS0VfRkFJTFVSRSIsIEVSUl9MSUJfU1NMLCAxMDQwfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0xWM19BTEVSVF9JTExFR0FMX1BBUkFNRVRFUgorICAgIHsiU1NMVjNfQUxFUlRfSUxMRUdBTF9QQVJBTUVURVIiLCBFUlJfTElCX1NTTCwgU1NMX1JfU1NMVjNfQUxFUlRfSUxMRUdBTF9QQVJBTUVURVJ9LAorICAjZWxzZQorICAgIHsiU1NMVjNfQUxFUlRfSUxMRUdBTF9QQVJBTUVURVIiLCBFUlJfTElCX1NTTCwgMTA0N30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfU1NMVjNfQUxFUlRfTk9fQ0VSVElGSUNBVEUKKyAgICB7IlNTTFYzX0FMRVJUX05PX0NFUlRJRklDQVRFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTFYzX0FMRVJUX05PX0NFUlRJRklDQVRFfSwKKyAgI2Vsc2UKKyAgICB7IlNTTFYzX0FMRVJUX05PX0NFUlRJRklDQVRFIiwgRVJSX0xJQl9TU0wsIDEwNDF9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NTTFYzX0FMRVJUX1VORVhQRUNURURfTUVTU0FHRQorICAgIHsiU1NMVjNfQUxFUlRfVU5FWFBFQ1RFRF9NRVNTQUdFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTFYzX0FMRVJUX1VORVhQRUNURURfTUVTU0FHRX0sCisgICNlbHNlCisgICAgeyJTU0xWM19BTEVSVF9VTkVYUEVDVEVEX01FU1NBR0UiLCBFUlJfTElCX1NTTCwgMTAxMH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfU1NMVjNfQUxFUlRfVU5TVVBQT1JURURfQ0VSVElGSUNBVEUKKyAgICB7IlNTTFYzX0FMRVJUX1VOU1VQUE9SVEVEX0NFUlRJRklDQVRFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTFYzX0FMRVJUX1VOU1VQUE9SVEVEX0NFUlRJRklDQVRFfSwKKyAgI2Vsc2UKKyAgICB7IlNTTFYzX0FMRVJUX1VOU1VQUE9SVEVEX0NFUlRJRklDQVRFIiwgRVJSX0xJQl9TU0wsIDEwNDN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NTTF9DVFhfSEFTX05PX0RFRkFVTFRfU1NMX1ZFUlNJT04KKyAgICB7IlNTTF9DVFhfSEFTX05PX0RFRkFVTFRfU1NMX1ZFUlNJT04iLCBFUlJfTElCX1NTTCwgU1NMX1JfU1NMX0NUWF9IQVNfTk9fREVGQVVMVF9TU0xfVkVSU0lPTn0sCisgICNlbHNlCisgICAgeyJTU0xfQ1RYX0hBU19OT19ERUZBVUxUX1NTTF9WRVJTSU9OIiwgRVJSX0xJQl9TU0wsIDIyOH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfU1NMX0hBTkRTSEFLRV9GQUlMVVJFCisgICAgeyJTU0xfSEFORFNIQUtFX0ZBSUxVUkUiLCBFUlJfTElCX1NTTCwgU1NMX1JfU1NMX0hBTkRTSEFLRV9GQUlMVVJFfSwKKyAgI2Vsc2UKKyAgICB7IlNTTF9IQU5EU0hBS0VfRkFJTFVSRSIsIEVSUl9MSUJfU1NMLCAyMjl9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NTTF9MSUJSQVJZX0hBU19OT19DSVBIRVJTCisgICAgeyJTU0xfTElCUkFSWV9IQVNfTk9fQ0lQSEVSUyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0xfTElCUkFSWV9IQVNfTk9fQ0lQSEVSU30sCisgICNlbHNlCisgICAgeyJTU0xfTElCUkFSWV9IQVNfTk9fQ0lQSEVSUyIsIEVSUl9MSUJfU1NMLCAyMzB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NTTF9TRVNTSU9OX0lEX0NBTExCQUNLX0ZBSUxFRAorICAgIHsiU1NMX1NFU1NJT05fSURfQ0FMTEJBQ0tfRkFJTEVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTF9TRVNTSU9OX0lEX0NBTExCQUNLX0ZBSUxFRH0sCisgICNlbHNlCisgICAgeyJTU0xfU0VTU0lPTl9JRF9DQUxMQkFDS19GQUlMRUQiLCBFUlJfTElCX1NTTCwgMzAxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0xfU0VTU0lPTl9JRF9DT05GTElDVAorICAgIHsiU1NMX1NFU1NJT05fSURfQ09ORkxJQ1QiLCBFUlJfTElCX1NTTCwgU1NMX1JfU1NMX1NFU1NJT05fSURfQ09ORkxJQ1R9LAorICAjZWxzZQorICAgIHsiU1NMX1NFU1NJT05fSURfQ09ORkxJQ1QiLCBFUlJfTElCX1NTTCwgMzAyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9TU0xfU0VTU0lPTl9JRF9DT05URVhUX1RPT19MT05HCisgICAgeyJTU0xfU0VTU0lPTl9JRF9DT05URVhUX1RPT19MT05HIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTF9TRVNTSU9OX0lEX0NPTlRFWFRfVE9PX0xPTkd9LAorICAjZWxzZQorICAgIHsiU1NMX1NFU1NJT05fSURfQ09OVEVYVF9UT09fTE9ORyIsIEVSUl9MSUJfU1NMLCAyNzN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NTTF9TRVNTSU9OX0lEX0hBU19CQURfTEVOR1RICisgICAgeyJTU0xfU0VTU0lPTl9JRF9IQVNfQkFEX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9TU0xfU0VTU0lPTl9JRF9IQVNfQkFEX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJTU0xfU0VTU0lPTl9JRF9IQVNfQkFEX0xFTkdUSCIsIEVSUl9MSUJfU1NMLCAzMDN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1NTTF9TRVNTSU9OX0lEX0lTX0RJRkZFUkVOVAorICAgIHsiU1NMX1NFU1NJT05fSURfSVNfRElGRkVSRU5UIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1NTTF9TRVNTSU9OX0lEX0lTX0RJRkZFUkVOVH0sCisgICNlbHNlCisgICAgeyJTU0xfU0VTU0lPTl9JRF9JU19ESUZGRVJFTlQiLCBFUlJfTElCX1NTTCwgMjMxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9UTFNWMV9BTEVSVF9BQ0NFU1NfREVOSUVECisgICAgeyJUTFNWMV9BTEVSVF9BQ0NFU1NfREVOSUVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1RMU1YxX0FMRVJUX0FDQ0VTU19ERU5JRUR9LAorICAjZWxzZQorICAgIHsiVExTVjFfQUxFUlRfQUNDRVNTX0RFTklFRCIsIEVSUl9MSUJfU1NMLCAxMDQ5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9UTFNWMV9BTEVSVF9ERUNPREVfRVJST1IKKyAgICB7IlRMU1YxX0FMRVJUX0RFQ09ERV9FUlJPUiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNWMV9BTEVSVF9ERUNPREVfRVJST1J9LAorICAjZWxzZQorICAgIHsiVExTVjFfQUxFUlRfREVDT0RFX0VSUk9SIiwgRVJSX0xJQl9TU0wsIDEwNTB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1RMU1YxX0FMRVJUX0RFQ1JZUFRJT05fRkFJTEVECisgICAgeyJUTFNWMV9BTEVSVF9ERUNSWVBUSU9OX0ZBSUxFRCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNWMV9BTEVSVF9ERUNSWVBUSU9OX0ZBSUxFRH0sCisgICNlbHNlCisgICAgeyJUTFNWMV9BTEVSVF9ERUNSWVBUSU9OX0ZBSUxFRCIsIEVSUl9MSUJfU1NMLCAxMDIxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9UTFNWMV9BTEVSVF9ERUNSWVBUX0VSUk9SCisgICAgeyJUTFNWMV9BTEVSVF9ERUNSWVBUX0VSUk9SIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1RMU1YxX0FMRVJUX0RFQ1JZUFRfRVJST1J9LAorICAjZWxzZQorICAgIHsiVExTVjFfQUxFUlRfREVDUllQVF9FUlJPUiIsIEVSUl9MSUJfU1NMLCAxMDUxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9UTFNWMV9BTEVSVF9FWFBPUlRfUkVTVFJJQ1RJT04KKyAgICB7IlRMU1YxX0FMRVJUX0VYUE9SVF9SRVNUUklDVElPTiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNWMV9BTEVSVF9FWFBPUlRfUkVTVFJJQ1RJT059LAorICAjZWxzZQorICAgIHsiVExTVjFfQUxFUlRfRVhQT1JUX1JFU1RSSUNUSU9OIiwgRVJSX0xJQl9TU0wsIDEwNjB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1RMU1YxX0FMRVJUX0lOU1VGRklDSUVOVF9TRUNVUklUWQorICAgIHsiVExTVjFfQUxFUlRfSU5TVUZGSUNJRU5UX1NFQ1VSSVRZIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1RMU1YxX0FMRVJUX0lOU1VGRklDSUVOVF9TRUNVUklUWX0sCisgICNlbHNlCisgICAgeyJUTFNWMV9BTEVSVF9JTlNVRkZJQ0lFTlRfU0VDVVJJVFkiLCBFUlJfTElCX1NTTCwgMTA3MX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVExTVjFfQUxFUlRfSU5URVJOQUxfRVJST1IKKyAgICB7IlRMU1YxX0FMRVJUX0lOVEVSTkFMX0VSUk9SIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1RMU1YxX0FMRVJUX0lOVEVSTkFMX0VSUk9SfSwKKyAgI2Vsc2UKKyAgICB7IlRMU1YxX0FMRVJUX0lOVEVSTkFMX0VSUk9SIiwgRVJSX0xJQl9TU0wsIDEwODB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1RMU1YxX0FMRVJUX05PX1JFTkVHT1RJQVRJT04KKyAgICB7IlRMU1YxX0FMRVJUX05PX1JFTkVHT1RJQVRJT04iLCBFUlJfTElCX1NTTCwgU1NMX1JfVExTVjFfQUxFUlRfTk9fUkVORUdPVElBVElPTn0sCisgICNlbHNlCisgICAgeyJUTFNWMV9BTEVSVF9OT19SRU5FR09USUFUSU9OIiwgRVJSX0xJQl9TU0wsIDExMDB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1RMU1YxX0FMRVJUX1BST1RPQ09MX1ZFUlNJT04KKyAgICB7IlRMU1YxX0FMRVJUX1BST1RPQ09MX1ZFUlNJT04iLCBFUlJfTElCX1NTTCwgU1NMX1JfVExTVjFfQUxFUlRfUFJPVE9DT0xfVkVSU0lPTn0sCisgICNlbHNlCisgICAgeyJUTFNWMV9BTEVSVF9QUk9UT0NPTF9WRVJTSU9OIiwgRVJSX0xJQl9TU0wsIDEwNzB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1RMU1YxX0FMRVJUX1JFQ09SRF9PVkVSRkxPVworICAgIHsiVExTVjFfQUxFUlRfUkVDT1JEX09WRVJGTE9XIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1RMU1YxX0FMRVJUX1JFQ09SRF9PVkVSRkxPV30sCisgICNlbHNlCisgICAgeyJUTFNWMV9BTEVSVF9SRUNPUkRfT1ZFUkZMT1ciLCBFUlJfTElCX1NTTCwgMTAyMn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVExTVjFfQUxFUlRfVU5LTk9XTl9DQQorICAgIHsiVExTVjFfQUxFUlRfVU5LTk9XTl9DQSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNWMV9BTEVSVF9VTktOT1dOX0NBfSwKKyAgI2Vsc2UKKyAgICB7IlRMU1YxX0FMRVJUX1VOS05PV05fQ0EiLCBFUlJfTElCX1NTTCwgMTA0OH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVExTVjFfQUxFUlRfVVNFUl9DQU5DRUxMRUQKKyAgICB7IlRMU1YxX0FMRVJUX1VTRVJfQ0FOQ0VMTEVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1RMU1YxX0FMRVJUX1VTRVJfQ0FOQ0VMTEVEfSwKKyAgI2Vsc2UKKyAgICB7IlRMU1YxX0FMRVJUX1VTRVJfQ0FOQ0VMTEVEIiwgRVJSX0xJQl9TU0wsIDEwOTB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1RMU1YxX0JBRF9DRVJUSUZJQ0FURV9IQVNIX1ZBTFVFCisgICAgeyJUTFNWMV9CQURfQ0VSVElGSUNBVEVfSEFTSF9WQUxVRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNWMV9CQURfQ0VSVElGSUNBVEVfSEFTSF9WQUxVRX0sCisgICNlbHNlCisgICAgeyJUTFNWMV9CQURfQ0VSVElGSUNBVEVfSEFTSF9WQUxVRSIsIEVSUl9MSUJfU1NMLCAxMTE0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9UTFNWMV9CQURfQ0VSVElGSUNBVEVfU1RBVFVTX1JFU1BPTlNFCisgICAgeyJUTFNWMV9CQURfQ0VSVElGSUNBVEVfU1RBVFVTX1JFU1BPTlNFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1RMU1YxX0JBRF9DRVJUSUZJQ0FURV9TVEFUVVNfUkVTUE9OU0V9LAorICAjZWxzZQorICAgIHsiVExTVjFfQkFEX0NFUlRJRklDQVRFX1NUQVRVU19SRVNQT05TRSIsIEVSUl9MSUJfU1NMLCAxMTEzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9UTFNWMV9DRVJUSUZJQ0FURV9VTk9CVEFJTkFCTEUKKyAgICB7IlRMU1YxX0NFUlRJRklDQVRFX1VOT0JUQUlOQUJMRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNWMV9DRVJUSUZJQ0FURV9VTk9CVEFJTkFCTEV9LAorICAjZWxzZQorICAgIHsiVExTVjFfQ0VSVElGSUNBVEVfVU5PQlRBSU5BQkxFIiwgRVJSX0xJQl9TU0wsIDExMTF9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1RMU1YxX1VOUkVDT0dOSVpFRF9OQU1FCisgICAgeyJUTFNWMV9VTlJFQ09HTklaRURfTkFNRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNWMV9VTlJFQ09HTklaRURfTkFNRX0sCisgICNlbHNlCisgICAgeyJUTFNWMV9VTlJFQ09HTklaRURfTkFNRSIsIEVSUl9MSUJfU1NMLCAxMTEyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9UTFNWMV9VTlNVUFBPUlRFRF9FWFRFTlNJT04KKyAgICB7IlRMU1YxX1VOU1VQUE9SVEVEX0VYVEVOU0lPTiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNWMV9VTlNVUFBPUlRFRF9FWFRFTlNJT059LAorICAjZWxzZQorICAgIHsiVExTVjFfVU5TVVBQT1JURURfRVhURU5TSU9OIiwgRVJSX0xJQl9TU0wsIDExMTB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1RMU19DTElFTlRfQ0VSVF9SRVFfV0lUSF9BTk9OX0NJUEhFUgorICAgIHsiVExTX0NMSUVOVF9DRVJUX1JFUV9XSVRIX0FOT05fQ0lQSEVSIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1RMU19DTElFTlRfQ0VSVF9SRVFfV0lUSF9BTk9OX0NJUEhFUn0sCisgICNlbHNlCisgICAgeyJUTFNfQ0xJRU5UX0NFUlRfUkVRX1dJVEhfQU5PTl9DSVBIRVIiLCBFUlJfTElCX1NTTCwgMjMyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9UTFNfSU5WQUxJRF9FQ1BPSU5URk9STUFUX0xJU1QKKyAgICB7IlRMU19JTlZBTElEX0VDUE9JTlRGT1JNQVRfTElTVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNfSU5WQUxJRF9FQ1BPSU5URk9STUFUX0xJU1R9LAorICAjZWxzZQorICAgIHsiVExTX0lOVkFMSURfRUNQT0lOVEZPUk1BVF9MSVNUIiwgRVJSX0xJQl9TU0wsIDE1N30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVExTX1BFRVJfRElEX05PVF9SRVNQT05EX1dJVEhfQ0VSVElGSUNBVEVfTElTVAorICAgIHsiVExTX1BFRVJfRElEX05PVF9SRVNQT05EX1dJVEhfQ0VSVElGSUNBVEVfTElTVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNfUEVFUl9ESURfTk9UX1JFU1BPTkRfV0lUSF9DRVJUSUZJQ0FURV9MSVNUfSwKKyAgI2Vsc2UKKyAgICB7IlRMU19QRUVSX0RJRF9OT1RfUkVTUE9ORF9XSVRIX0NFUlRJRklDQVRFX0xJU1QiLCBFUlJfTElCX1NTTCwgMjMzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9UTFNfUlNBX0VOQ1JZUFRFRF9WQUxVRV9MRU5HVEhfSVNfV1JPTkcKKyAgICB7IlRMU19SU0FfRU5DUllQVEVEX1ZBTFVFX0xFTkdUSF9JU19XUk9ORyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UTFNfUlNBX0VOQ1JZUFRFRF9WQUxVRV9MRU5HVEhfSVNfV1JPTkd9LAorICAjZWxzZQorICAgIHsiVExTX1JTQV9FTkNSWVBURURfVkFMVUVfTEVOR1RIX0lTX1dST05HIiwgRVJSX0xJQl9TU0wsIDIzNH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVFJJRURfVE9fVVNFX1VOU1VQUE9SVEVEX0NJUEhFUgorICAgIHsiVFJJRURfVE9fVVNFX1VOU1VQUE9SVEVEX0NJUEhFUiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9UUklFRF9UT19VU0VfVU5TVVBQT1JURURfQ0lQSEVSfSwKKyAgI2Vsc2UKKyAgICB7IlRSSUVEX1RPX1VTRV9VTlNVUFBPUlRFRF9DSVBIRVIiLCBFUlJfTElCX1NTTCwgMjM1fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9VTkFCTEVfVE9fREVDT0RFX0RIX0NFUlRTCisgICAgeyJVTkFCTEVfVE9fREVDT0RFX0RIX0NFUlRTIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VOQUJMRV9UT19ERUNPREVfREhfQ0VSVFN9LAorICAjZWxzZQorICAgIHsiVU5BQkxFX1RPX0RFQ09ERV9ESF9DRVJUUyIsIEVSUl9MSUJfU1NMLCAyMzZ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOQUJMRV9UT19ERUNPREVfRUNESF9DRVJUUworICAgIHsiVU5BQkxFX1RPX0RFQ09ERV9FQ0RIX0NFUlRTIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VOQUJMRV9UT19ERUNPREVfRUNESF9DRVJUU30sCisgICNlbHNlCisgICAgeyJVTkFCTEVfVE9fREVDT0RFX0VDREhfQ0VSVFMiLCBFUlJfTElCX1NTTCwgMzEzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9VTkFCTEVfVE9fRVhUUkFDVF9QVUJMSUNfS0VZCisgICAgeyJVTkFCTEVfVE9fRVhUUkFDVF9QVUJMSUNfS0VZIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VOQUJMRV9UT19FWFRSQUNUX1BVQkxJQ19LRVl9LAorICAjZWxzZQorICAgIHsiVU5BQkxFX1RPX0VYVFJBQ1RfUFVCTElDX0tFWSIsIEVSUl9MSUJfU1NMLCAyMzd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOQUJMRV9UT19GSU5EX0RIX1BBUkFNRVRFUlMKKyAgICB7IlVOQUJMRV9UT19GSU5EX0RIX1BBUkFNRVRFUlMiLCBFUlJfTElCX1NTTCwgU1NMX1JfVU5BQkxFX1RPX0ZJTkRfREhfUEFSQU1FVEVSU30sCisgICNlbHNlCisgICAgeyJVTkFCTEVfVE9fRklORF9ESF9QQVJBTUVURVJTIiwgRVJSX0xJQl9TU0wsIDIzOH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVU5BQkxFX1RPX0ZJTkRfRUNESF9QQVJBTUVURVJTCisgICAgeyJVTkFCTEVfVE9fRklORF9FQ0RIX1BBUkFNRVRFUlMiLCBFUlJfTElCX1NTTCwgU1NMX1JfVU5BQkxFX1RPX0ZJTkRfRUNESF9QQVJBTUVURVJTfSwKKyAgI2Vsc2UKKyAgICB7IlVOQUJMRV9UT19GSU5EX0VDREhfUEFSQU1FVEVSUyIsIEVSUl9MSUJfU1NMLCAzMTR9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOQUJMRV9UT19GSU5EX1BVQkxJQ19LRVlfUEFSQU1FVEVSUworICAgIHsiVU5BQkxFX1RPX0ZJTkRfUFVCTElDX0tFWV9QQVJBTUVURVJTIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VOQUJMRV9UT19GSU5EX1BVQkxJQ19LRVlfUEFSQU1FVEVSU30sCisgICNlbHNlCisgICAgeyJVTkFCTEVfVE9fRklORF9QVUJMSUNfS0VZX1BBUkFNRVRFUlMiLCBFUlJfTElCX1NTTCwgMjM5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9VTkFCTEVfVE9fRklORF9TU0xfTUVUSE9ECisgICAgeyJVTkFCTEVfVE9fRklORF9TU0xfTUVUSE9EIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VOQUJMRV9UT19GSU5EX1NTTF9NRVRIT0R9LAorICAjZWxzZQorICAgIHsiVU5BQkxFX1RPX0ZJTkRfU1NMX01FVEhPRCIsIEVSUl9MSUJfU1NMLCAyNDB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOQUJMRV9UT19MT0FEX1NTTDJfTUQ1X1JPVVRJTkVTCisgICAgeyJVTkFCTEVfVE9fTE9BRF9TU0wyX01ENV9ST1VUSU5FUyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTkFCTEVfVE9fTE9BRF9TU0wyX01ENV9ST1VUSU5FU30sCisgICNlbHNlCisgICAgeyJVTkFCTEVfVE9fTE9BRF9TU0wyX01ENV9ST1VUSU5FUyIsIEVSUl9MSUJfU1NMLCAyNDF9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOQUJMRV9UT19MT0FEX1NTTDNfTUQ1X1JPVVRJTkVTCisgICAgeyJVTkFCTEVfVE9fTE9BRF9TU0wzX01ENV9ST1VUSU5FUyIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTkFCTEVfVE9fTE9BRF9TU0wzX01ENV9ST1VUSU5FU30sCisgICNlbHNlCisgICAgeyJVTkFCTEVfVE9fTE9BRF9TU0wzX01ENV9ST1VUSU5FUyIsIEVSUl9MSUJfU1NMLCAyNDJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOQUJMRV9UT19MT0FEX1NTTDNfU0hBMV9ST1VUSU5FUworICAgIHsiVU5BQkxFX1RPX0xPQURfU1NMM19TSEExX1JPVVRJTkVTIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VOQUJMRV9UT19MT0FEX1NTTDNfU0hBMV9ST1VUSU5FU30sCisgICNlbHNlCisgICAgeyJVTkFCTEVfVE9fTE9BRF9TU0wzX1NIQTFfUk9VVElORVMiLCBFUlJfTElCX1NTTCwgMjQzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9VTkVYUEVDVEVEX01FU1NBR0UKKyAgICB7IlVORVhQRUNURURfTUVTU0FHRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTkVYUEVDVEVEX01FU1NBR0V9LAorICAjZWxzZQorICAgIHsiVU5FWFBFQ1RFRF9NRVNTQUdFIiwgRVJSX0xJQl9TU0wsIDI0NH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVU5FWFBFQ1RFRF9SRUNPUkQKKyAgICB7IlVORVhQRUNURURfUkVDT1JEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VORVhQRUNURURfUkVDT1JEfSwKKyAgI2Vsc2UKKyAgICB7IlVORVhQRUNURURfUkVDT1JEIiwgRVJSX0xJQl9TU0wsIDI0NX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVU5JTklUSUFMSVpFRAorICAgIHsiVU5JTklUSUFMSVpFRCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTklOSVRJQUxJWkVEfSwKKyAgI2Vsc2UKKyAgICB7IlVOSU5JVElBTElaRUQiLCBFUlJfTElCX1NTTCwgMjc2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9VTktOT1dOX0FMRVJUX1RZUEUKKyAgICB7IlVOS05PV05fQUxFUlRfVFlQRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTktOT1dOX0FMRVJUX1RZUEV9LAorICAjZWxzZQorICAgIHsiVU5LTk9XTl9BTEVSVF9UWVBFIiwgRVJSX0xJQl9TU0wsIDI0Nn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVU5LTk9XTl9DRVJUSUZJQ0FURV9UWVBFCisgICAgeyJVTktOT1dOX0NFUlRJRklDQVRFX1RZUEUiLCBFUlJfTElCX1NTTCwgU1NMX1JfVU5LTk9XTl9DRVJUSUZJQ0FURV9UWVBFfSwKKyAgI2Vsc2UKKyAgICB7IlVOS05PV05fQ0VSVElGSUNBVEVfVFlQRSIsIEVSUl9MSUJfU1NMLCAyNDd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOS05PV05fQ0lQSEVSX1JFVFVSTkVECisgICAgeyJVTktOT1dOX0NJUEhFUl9SRVRVUk5FRCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTktOT1dOX0NJUEhFUl9SRVRVUk5FRH0sCisgICNlbHNlCisgICAgeyJVTktOT1dOX0NJUEhFUl9SRVRVUk5FRCIsIEVSUl9MSUJfU1NMLCAyNDh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOS05PV05fQ0lQSEVSX1RZUEUKKyAgICB7IlVOS05PV05fQ0lQSEVSX1RZUEUiLCBFUlJfTElCX1NTTCwgU1NMX1JfVU5LTk9XTl9DSVBIRVJfVFlQRX0sCisgICNlbHNlCisgICAgeyJVTktOT1dOX0NJUEhFUl9UWVBFIiwgRVJSX0xJQl9TU0wsIDI0OX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVU5LTk9XTl9LRVlfRVhDSEFOR0VfVFlQRQorICAgIHsiVU5LTk9XTl9LRVlfRVhDSEFOR0VfVFlQRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTktOT1dOX0tFWV9FWENIQU5HRV9UWVBFfSwKKyAgI2Vsc2UKKyAgICB7IlVOS05PV05fS0VZX0VYQ0hBTkdFX1RZUEUiLCBFUlJfTElCX1NTTCwgMjUwfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9VTktOT1dOX1BLRVlfVFlQRQorICAgIHsiVU5LTk9XTl9QS0VZX1RZUEUiLCBFUlJfTElCX1NTTCwgU1NMX1JfVU5LTk9XTl9QS0VZX1RZUEV9LAorICAjZWxzZQorICAgIHsiVU5LTk9XTl9QS0VZX1RZUEUiLCBFUlJfTElCX1NTTCwgMjUxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9VTktOT1dOX1BST1RPQ09MCisgICAgeyJVTktOT1dOX1BST1RPQ09MIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VOS05PV05fUFJPVE9DT0x9LAorICAjZWxzZQorICAgIHsiVU5LTk9XTl9QUk9UT0NPTCIsIEVSUl9MSUJfU1NMLCAyNTJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOS05PV05fUkVNT1RFX0VSUk9SX1RZUEUKKyAgICB7IlVOS05PV05fUkVNT1RFX0VSUk9SX1RZUEUiLCBFUlJfTElCX1NTTCwgU1NMX1JfVU5LTk9XTl9SRU1PVEVfRVJST1JfVFlQRX0sCisgICNlbHNlCisgICAgeyJVTktOT1dOX1JFTU9URV9FUlJPUl9UWVBFIiwgRVJSX0xJQl9TU0wsIDI1M30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVU5LTk9XTl9TU0xfVkVSU0lPTgorICAgIHsiVU5LTk9XTl9TU0xfVkVSU0lPTiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTktOT1dOX1NTTF9WRVJTSU9OfSwKKyAgI2Vsc2UKKyAgICB7IlVOS05PV05fU1NMX1ZFUlNJT04iLCBFUlJfTElCX1NTTCwgMjU0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9VTktOT1dOX1NUQVRFCisgICAgeyJVTktOT1dOX1NUQVRFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VOS05PV05fU1RBVEV9LAorICAjZWxzZQorICAgIHsiVU5LTk9XTl9TVEFURSIsIEVSUl9MSUJfU1NMLCAyNTV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOU0FGRV9MRUdBQ1lfUkVORUdPVElBVElPTl9ESVNBQkxFRAorICAgIHsiVU5TQUZFX0xFR0FDWV9SRU5FR09USUFUSU9OX0RJU0FCTEVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1VOU0FGRV9MRUdBQ1lfUkVORUdPVElBVElPTl9ESVNBQkxFRH0sCisgICNlbHNlCisgICAgeyJVTlNBRkVfTEVHQUNZX1JFTkVHT1RJQVRJT05fRElTQUJMRUQiLCBFUlJfTElCX1NTTCwgMzM4fSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9VTlNVUFBPUlRFRF9DSVBIRVIKKyAgICB7IlVOU1VQUE9SVEVEX0NJUEhFUiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTlNVUFBPUlRFRF9DSVBIRVJ9LAorICAjZWxzZQorICAgIHsiVU5TVVBQT1JURURfQ0lQSEVSIiwgRVJSX0xJQl9TU0wsIDI1Nn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfVU5TVVBQT1JURURfQ09NUFJFU1NJT05fQUxHT1JJVEhNCisgICAgeyJVTlNVUFBPUlRFRF9DT01QUkVTU0lPTl9BTEdPUklUSE0iLCBFUlJfTElCX1NTTCwgU1NMX1JfVU5TVVBQT1JURURfQ09NUFJFU1NJT05fQUxHT1JJVEhNfSwKKyAgI2Vsc2UKKyAgICB7IlVOU1VQUE9SVEVEX0NPTVBSRVNTSU9OX0FMR09SSVRITSIsIEVSUl9MSUJfU1NMLCAyNTd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOU1VQUE9SVEVEX0RJR0VTVF9UWVBFCisgICAgeyJVTlNVUFBPUlRFRF9ESUdFU1RfVFlQRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTlNVUFBPUlRFRF9ESUdFU1RfVFlQRX0sCisgICNlbHNlCisgICAgeyJVTlNVUFBPUlRFRF9ESUdFU1RfVFlQRSIsIEVSUl9MSUJfU1NMLCAzMjZ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOU1VQUE9SVEVEX0VMTElQVElDX0NVUlZFCisgICAgeyJVTlNVUFBPUlRFRF9FTExJUFRJQ19DVVJWRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTlNVUFBPUlRFRF9FTExJUFRJQ19DVVJWRX0sCisgICNlbHNlCisgICAgeyJVTlNVUFBPUlRFRF9FTExJUFRJQ19DVVJWRSIsIEVSUl9MSUJfU1NMLCAzMTV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOU1VQUE9SVEVEX1BST1RPQ09MCisgICAgeyJVTlNVUFBPUlRFRF9QUk9UT0NPTCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTlNVUFBPUlRFRF9QUk9UT0NPTH0sCisgICNlbHNlCisgICAgeyJVTlNVUFBPUlRFRF9QUk9UT0NPTCIsIEVSUl9MSUJfU1NMLCAyNTh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOU1VQUE9SVEVEX1NTTF9WRVJTSU9OCisgICAgeyJVTlNVUFBPUlRFRF9TU0xfVkVSU0lPTiIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTlNVUFBPUlRFRF9TU0xfVkVSU0lPTn0sCisgICNlbHNlCisgICAgeyJVTlNVUFBPUlRFRF9TU0xfVkVSU0lPTiIsIEVSUl9MSUJfU1NMLCAyNTl9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1VOU1VQUE9SVEVEX1NUQVRVU19UWVBFCisgICAgeyJVTlNVUFBPUlRFRF9TVEFUVVNfVFlQRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9VTlNVUFBPUlRFRF9TVEFUVVNfVFlQRX0sCisgICNlbHNlCisgICAgeyJVTlNVUFBPUlRFRF9TVEFUVVNfVFlQRSIsIEVSUl9MSUJfU1NMLCAzMjl9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1dSSVRFX0JJT19OT1RfU0VUCisgICAgeyJXUklURV9CSU9fTk9UX1NFVCIsIEVSUl9MSUJfU1NMLCBTU0xfUl9XUklURV9CSU9fTk9UX1NFVH0sCisgICNlbHNlCisgICAgeyJXUklURV9CSU9fTk9UX1NFVCIsIEVSUl9MSUJfU1NMLCAyNjB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1dST05HX0NJUEhFUl9SRVRVUk5FRAorICAgIHsiV1JPTkdfQ0lQSEVSX1JFVFVSTkVEIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1dST05HX0NJUEhFUl9SRVRVUk5FRH0sCisgICNlbHNlCisgICAgeyJXUk9OR19DSVBIRVJfUkVUVVJORUQiLCBFUlJfTElCX1NTTCwgMjYxfSwKKyAgI2VuZGlmCisgICNpZmRlZiBTU0xfUl9XUk9OR19NRVNTQUdFX1RZUEUKKyAgICB7IldST05HX01FU1NBR0VfVFlQRSIsIEVSUl9MSUJfU1NMLCBTU0xfUl9XUk9OR19NRVNTQUdFX1RZUEV9LAorICAjZWxzZQorICAgIHsiV1JPTkdfTUVTU0FHRV9UWVBFIiwgRVJSX0xJQl9TU0wsIDI2Mn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfV1JPTkdfTlVNQkVSX09GX0tFWV9CSVRTCisgICAgeyJXUk9OR19OVU1CRVJfT0ZfS0VZX0JJVFMiLCBFUlJfTElCX1NTTCwgU1NMX1JfV1JPTkdfTlVNQkVSX09GX0tFWV9CSVRTfSwKKyAgI2Vsc2UKKyAgICB7IldST05HX05VTUJFUl9PRl9LRVlfQklUUyIsIEVSUl9MSUJfU1NMLCAyNjN9LAorICAjZW5kaWYKKyAgI2lmZGVmIFNTTF9SX1dST05HX1NJR05BVFVSRV9MRU5HVEgKKyAgICB7IldST05HX1NJR05BVFVSRV9MRU5HVEgiLCBFUlJfTElCX1NTTCwgU1NMX1JfV1JPTkdfU0lHTkFUVVJFX0xFTkdUSH0sCisgICNlbHNlCisgICAgeyJXUk9OR19TSUdOQVRVUkVfTEVOR1RIIiwgRVJSX0xJQl9TU0wsIDI2NH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfV1JPTkdfU0lHTkFUVVJFX1NJWkUKKyAgICB7IldST05HX1NJR05BVFVSRV9TSVpFIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1dST05HX1NJR05BVFVSRV9TSVpFfSwKKyAgI2Vsc2UKKyAgICB7IldST05HX1NJR05BVFVSRV9TSVpFIiwgRVJSX0xJQl9TU0wsIDI2NX0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfV1JPTkdfU1NMX1ZFUlNJT04KKyAgICB7IldST05HX1NTTF9WRVJTSU9OIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1dST05HX1NTTF9WRVJTSU9OfSwKKyAgI2Vsc2UKKyAgICB7IldST05HX1NTTF9WRVJTSU9OIiwgRVJSX0xJQl9TU0wsIDI2Nn0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfV1JPTkdfVkVSU0lPTl9OVU1CRVIKKyAgICB7IldST05HX1ZFUlNJT05fTlVNQkVSIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1dST05HX1ZFUlNJT05fTlVNQkVSfSwKKyAgI2Vsc2UKKyAgICB7IldST05HX1ZFUlNJT05fTlVNQkVSIiwgRVJSX0xJQl9TU0wsIDI2N30sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfWDUwOV9MSUIKKyAgICB7Ilg1MDlfTElCIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1g1MDlfTElCfSwKKyAgI2Vsc2UKKyAgICB7Ilg1MDlfTElCIiwgRVJSX0xJQl9TU0wsIDI2OH0sCisgICNlbmRpZgorICAjaWZkZWYgU1NMX1JfWDUwOV9WRVJJRklDQVRJT05fU0VUVVBfUFJPQkxFTVMKKyAgICB7Ilg1MDlfVkVSSUZJQ0FUSU9OX1NFVFVQX1BST0JMRU1TIiwgRVJSX0xJQl9TU0wsIFNTTF9SX1g1MDlfVkVSSUZJQ0FUSU9OX1NFVFVQX1BST0JMRU1TfSwKKyAgI2Vsc2UKKyAgICB7Ilg1MDlfVkVSSUZJQ0FUSU9OX1NFVFVQX1BST0JMRU1TIiwgRVJSX0xJQl9TU0wsIDI2OX0sCisgICNlbmRpZgorICAjaWZkZWYgWDUwOV9SX0JBRF9YNTA5X0ZJTEVUWVBFCisgICAgeyJCQURfWDUwOV9GSUxFVFlQRSIsIEVSUl9MSUJfWDUwOSwgWDUwOV9SX0JBRF9YNTA5X0ZJTEVUWVBFfSwKKyAgI2Vsc2UKKyAgICB7IkJBRF9YNTA5X0ZJTEVUWVBFIiwgRVJSX0xJQl9YNTA5LCAxMDB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFg1MDlfUl9CQVNFNjRfREVDT0RFX0VSUk9SCisgICAgeyJCQVNFNjRfREVDT0RFX0VSUk9SIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfQkFTRTY0X0RFQ09ERV9FUlJPUn0sCisgICNlbHNlCisgICAgeyJCQVNFNjRfREVDT0RFX0VSUk9SIiwgRVJSX0xJQl9YNTA5LCAxMTh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFg1MDlfUl9DQU5UX0NIRUNLX0RIX0tFWQorICAgIHsiQ0FOVF9DSEVDS19ESF9LRVkiLCBFUlJfTElCX1g1MDksIFg1MDlfUl9DQU5UX0NIRUNLX0RIX0tFWX0sCisgICNlbHNlCisgICAgeyJDQU5UX0NIRUNLX0RIX0tFWSIsIEVSUl9MSUJfWDUwOSwgMTE0fSwKKyAgI2VuZGlmCisgICNpZmRlZiBYNTA5X1JfQ0VSVF9BTFJFQURZX0lOX0hBU0hfVEFCTEUKKyAgICB7IkNFUlRfQUxSRUFEWV9JTl9IQVNIX1RBQkxFIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfQ0VSVF9BTFJFQURZX0lOX0hBU0hfVEFCTEV9LAorICAjZWxzZQorICAgIHsiQ0VSVF9BTFJFQURZX0lOX0hBU0hfVEFCTEUiLCBFUlJfTElCX1g1MDksIDEwMX0sCisgICNlbmRpZgorICAjaWZkZWYgWDUwOV9SX0VSUl9BU04xX0xJQgorICAgIHsiRVJSX0FTTjFfTElCIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfRVJSX0FTTjFfTElCfSwKKyAgI2Vsc2UKKyAgICB7IkVSUl9BU04xX0xJQiIsIEVSUl9MSUJfWDUwOSwgMTAyfSwKKyAgI2VuZGlmCisgICNpZmRlZiBYNTA5X1JfSU5WQUxJRF9ESVJFQ1RPUlkKKyAgICB7IklOVkFMSURfRElSRUNUT1JZIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfSU5WQUxJRF9ESVJFQ1RPUll9LAorICAjZWxzZQorICAgIHsiSU5WQUxJRF9ESVJFQ1RPUlkiLCBFUlJfTElCX1g1MDksIDExM30sCisgICNlbmRpZgorICAjaWZkZWYgWDUwOV9SX0lOVkFMSURfRklFTERfTkFNRQorICAgIHsiSU5WQUxJRF9GSUVMRF9OQU1FIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfSU5WQUxJRF9GSUVMRF9OQU1FfSwKKyAgI2Vsc2UKKyAgICB7IklOVkFMSURfRklFTERfTkFNRSIsIEVSUl9MSUJfWDUwOSwgMTE5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBYNTA5X1JfSU5WQUxJRF9UUlVTVAorICAgIHsiSU5WQUxJRF9UUlVTVCIsIEVSUl9MSUJfWDUwOSwgWDUwOV9SX0lOVkFMSURfVFJVU1R9LAorICAjZWxzZQorICAgIHsiSU5WQUxJRF9UUlVTVCIsIEVSUl9MSUJfWDUwOSwgMTIzfSwKKyAgI2VuZGlmCisgICNpZmRlZiBYNTA5X1JfS0VZX1RZUEVfTUlTTUFUQ0gKKyAgICB7IktFWV9UWVBFX01JU01BVENIIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfS0VZX1RZUEVfTUlTTUFUQ0h9LAorICAjZWxzZQorICAgIHsiS0VZX1RZUEVfTUlTTUFUQ0giLCBFUlJfTElCX1g1MDksIDExNX0sCisgICNlbmRpZgorICAjaWZkZWYgWDUwOV9SX0tFWV9WQUxVRVNfTUlTTUFUQ0gKKyAgICB7IktFWV9WQUxVRVNfTUlTTUFUQ0giLCBFUlJfTElCX1g1MDksIFg1MDlfUl9LRVlfVkFMVUVTX01JU01BVENIfSwKKyAgI2Vsc2UKKyAgICB7IktFWV9WQUxVRVNfTUlTTUFUQ0giLCBFUlJfTElCX1g1MDksIDExNn0sCisgICNlbmRpZgorICAjaWZkZWYgWDUwOV9SX0xPQURJTkdfQ0VSVF9ESVIKKyAgICB7IkxPQURJTkdfQ0VSVF9ESVIiLCBFUlJfTElCX1g1MDksIFg1MDlfUl9MT0FESU5HX0NFUlRfRElSfSwKKyAgI2Vsc2UKKyAgICB7IkxPQURJTkdfQ0VSVF9ESVIiLCBFUlJfTElCX1g1MDksIDEwM30sCisgICNlbmRpZgorICAjaWZkZWYgWDUwOV9SX0xPQURJTkdfREVGQVVMVFMKKyAgICB7IkxPQURJTkdfREVGQVVMVFMiLCBFUlJfTElCX1g1MDksIFg1MDlfUl9MT0FESU5HX0RFRkFVTFRTfSwKKyAgI2Vsc2UKKyAgICB7IkxPQURJTkdfREVGQVVMVFMiLCBFUlJfTElCX1g1MDksIDEwNH0sCisgICNlbmRpZgorICAjaWZkZWYgWDUwOV9SX01FVEhPRF9OT1RfU1VQUE9SVEVECisgICAgeyJNRVRIT0RfTk9UX1NVUFBPUlRFRCIsIEVSUl9MSUJfWDUwOSwgWDUwOV9SX01FVEhPRF9OT1RfU1VQUE9SVEVEfSwKKyAgI2Vsc2UKKyAgICB7Ik1FVEhPRF9OT1RfU1VQUE9SVEVEIiwgRVJSX0xJQl9YNTA5LCAxMjR9LAorICAjZW5kaWYKKyAgI2lmZGVmIFg1MDlfUl9OT19DRVJUX1NFVF9GT1JfVVNfVE9fVkVSSUZZCisgICAgeyJOT19DRVJUX1NFVF9GT1JfVVNfVE9fVkVSSUZZIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfTk9fQ0VSVF9TRVRfRk9SX1VTX1RPX1ZFUklGWX0sCisgICNlbHNlCisgICAgeyJOT19DRVJUX1NFVF9GT1JfVVNfVE9fVkVSSUZZIiwgRVJSX0xJQl9YNTA5LCAxMDV9LAorICAjZW5kaWYKKyAgI2lmZGVmIFg1MDlfUl9QVUJMSUNfS0VZX0RFQ09ERV9FUlJPUgorICAgIHsiUFVCTElDX0tFWV9ERUNPREVfRVJST1IiLCBFUlJfTElCX1g1MDksIFg1MDlfUl9QVUJMSUNfS0VZX0RFQ09ERV9FUlJPUn0sCisgICNlbHNlCisgICAgeyJQVUJMSUNfS0VZX0RFQ09ERV9FUlJPUiIsIEVSUl9MSUJfWDUwOSwgMTI1fSwKKyAgI2VuZGlmCisgICNpZmRlZiBYNTA5X1JfUFVCTElDX0tFWV9FTkNPREVfRVJST1IKKyAgICB7IlBVQkxJQ19LRVlfRU5DT0RFX0VSUk9SIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfUFVCTElDX0tFWV9FTkNPREVfRVJST1J9LAorICAjZWxzZQorICAgIHsiUFVCTElDX0tFWV9FTkNPREVfRVJST1IiLCBFUlJfTElCX1g1MDksIDEyNn0sCisgICNlbmRpZgorICAjaWZkZWYgWDUwOV9SX1NIT1VMRF9SRVRSWQorICAgIHsiU0hPVUxEX1JFVFJZIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfU0hPVUxEX1JFVFJZfSwKKyAgI2Vsc2UKKyAgICB7IlNIT1VMRF9SRVRSWSIsIEVSUl9MSUJfWDUwOSwgMTA2fSwKKyAgI2VuZGlmCisgICNpZmRlZiBYNTA5X1JfVU5BQkxFX1RPX0ZJTkRfUEFSQU1FVEVSU19JTl9DSEFJTgorICAgIHsiVU5BQkxFX1RPX0ZJTkRfUEFSQU1FVEVSU19JTl9DSEFJTiIsIEVSUl9MSUJfWDUwOSwgWDUwOV9SX1VOQUJMRV9UT19GSU5EX1BBUkFNRVRFUlNfSU5fQ0hBSU59LAorICAjZWxzZQorICAgIHsiVU5BQkxFX1RPX0ZJTkRfUEFSQU1FVEVSU19JTl9DSEFJTiIsIEVSUl9MSUJfWDUwOSwgMTA3fSwKKyAgI2VuZGlmCisgICNpZmRlZiBYNTA5X1JfVU5BQkxFX1RPX0dFVF9DRVJUU19QVUJMSUNfS0VZCisgICAgeyJVTkFCTEVfVE9fR0VUX0NFUlRTX1BVQkxJQ19LRVkiLCBFUlJfTElCX1g1MDksIFg1MDlfUl9VTkFCTEVfVE9fR0VUX0NFUlRTX1BVQkxJQ19LRVl9LAorICAjZWxzZQorICAgIHsiVU5BQkxFX1RPX0dFVF9DRVJUU19QVUJMSUNfS0VZIiwgRVJSX0xJQl9YNTA5LCAxMDh9LAorICAjZW5kaWYKKyAgI2lmZGVmIFg1MDlfUl9VTktOT1dOX0tFWV9UWVBFCisgICAgeyJVTktOT1dOX0tFWV9UWVBFIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfVU5LTk9XTl9LRVlfVFlQRX0sCisgICNlbHNlCisgICAgeyJVTktOT1dOX0tFWV9UWVBFIiwgRVJSX0xJQl9YNTA5LCAxMTd9LAorICAjZW5kaWYKKyAgI2lmZGVmIFg1MDlfUl9VTktOT1dOX05JRAorICAgIHsiVU5LTk9XTl9OSUQiLCBFUlJfTElCX1g1MDksIFg1MDlfUl9VTktOT1dOX05JRH0sCisgICNlbHNlCisgICAgeyJVTktOT1dOX05JRCIsIEVSUl9MSUJfWDUwOSwgMTA5fSwKKyAgI2VuZGlmCisgICNpZmRlZiBYNTA5X1JfVU5LTk9XTl9QVVJQT1NFX0lECisgICAgeyJVTktOT1dOX1BVUlBPU0VfSUQiLCBFUlJfTElCX1g1MDksIFg1MDlfUl9VTktOT1dOX1BVUlBPU0VfSUR9LAorICAjZWxzZQorICAgIHsiVU5LTk9XTl9QVVJQT1NFX0lEIiwgRVJSX0xJQl9YNTA5LCAxMjF9LAorICAjZW5kaWYKKyAgI2lmZGVmIFg1MDlfUl9VTktOT1dOX1RSVVNUX0lECisgICAgeyJVTktOT1dOX1RSVVNUX0lEIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfVU5LTk9XTl9UUlVTVF9JRH0sCisgICNlbHNlCisgICAgeyJVTktOT1dOX1RSVVNUX0lEIiwgRVJSX0xJQl9YNTA5LCAxMjB9LAorICAjZW5kaWYKKyAgI2lmZGVmIFg1MDlfUl9VTlNVUFBPUlRFRF9BTEdPUklUSE0KKyAgICB7IlVOU1VQUE9SVEVEX0FMR09SSVRITSIsIEVSUl9MSUJfWDUwOSwgWDUwOV9SX1VOU1VQUE9SVEVEX0FMR09SSVRITX0sCisgICNlbHNlCisgICAgeyJVTlNVUFBPUlRFRF9BTEdPUklUSE0iLCBFUlJfTElCX1g1MDksIDExMX0sCisgICNlbmRpZgorICAjaWZkZWYgWDUwOV9SX1dST05HX0xPT0tVUF9UWVBFCisgICAgeyJXUk9OR19MT09LVVBfVFlQRSIsIEVSUl9MSUJfWDUwOSwgWDUwOV9SX1dST05HX0xPT0tVUF9UWVBFfSwKKyAgI2Vsc2UKKyAgICB7IldST05HX0xPT0tVUF9UWVBFIiwgRVJSX0xJQl9YNTA5LCAxMTJ9LAorICAjZW5kaWYKKyAgI2lmZGVmIFg1MDlfUl9XUk9OR19UWVBFCisgICAgeyJXUk9OR19UWVBFIiwgRVJSX0xJQl9YNTA5LCBYNTA5X1JfV1JPTkdfVFlQRX0sCisgICNlbHNlCisgICAgeyJXUk9OR19UWVBFIiwgRVJSX0xJQl9YNTA5LCAxMjJ9LAorICAjZW5kaWYKKyAgICB7IE5VTEwgfQorfTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3N0cnVjdC5jIGIvTW9kdWxlcy9fc3RydWN0LmMKaW5kZXggMTYwNGI5MC4uZGNkYzgzZSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9fc3RydWN0LmMKKysrIGIvTW9kdWxlcy9fc3RydWN0LmMKQEAgLTU4LDYgKzU4LDcgQEAKIHR5cGVkZWYgc3RydWN0IHsgY2hhciBjOyBmbG9hdCB4OyB9IHN0X2Zsb2F0OwogdHlwZWRlZiBzdHJ1Y3QgeyBjaGFyIGM7IGRvdWJsZSB4OyB9IHN0X2RvdWJsZTsKIHR5cGVkZWYgc3RydWN0IHsgY2hhciBjOyB2b2lkICp4OyB9IHN0X3ZvaWRfcDsKK3R5cGVkZWYgc3RydWN0IHsgY2hhciBjOyBzaXplX3QgeDsgfSBzdF9zaXplX3Q7CiAKICNkZWZpbmUgU0hPUlRfQUxJR04gKHNpemVvZihzdF9zaG9ydCkgLSBzaXplb2Yoc2hvcnQpKQogI2RlZmluZSBJTlRfQUxJR04gKHNpemVvZihzdF9pbnQpIC0gc2l6ZW9mKGludCkpCkBAIC02NSw2ICs2Niw3IEBACiAjZGVmaW5lIEZMT0FUX0FMSUdOIChzaXplb2Yoc3RfZmxvYXQpIC0gc2l6ZW9mKGZsb2F0KSkKICNkZWZpbmUgRE9VQkxFX0FMSUdOIChzaXplb2Yoc3RfZG91YmxlKSAtIHNpemVvZihkb3VibGUpKQogI2RlZmluZSBWT0lEX1BfQUxJR04gKHNpemVvZihzdF92b2lkX3ApIC0gc2l6ZW9mKHZvaWQgKikpCisjZGVmaW5lIFNJWkVfVF9BTElHTiAoc2l6ZW9mKHN0X3NpemVfdCkgLSBzaXplb2Yoc2l6ZV90KSkKIAogLyogV2UgY2FuJ3Qgc3VwcG9ydCBxIGFuZCBRIGluIG5hdGl2ZSBtb2RlIHVubGVzcyB0aGUgY29tcGlsZXIgZG9lczsKICAgIGluIHN0ZCBtb2RlLCB0aGV5J3JlIDggYnl0ZXMgb24gYWxsIHBsYXRmb3Jtcy4gKi8KQEAgLTIxMyw2ICsyMTUsNTIgQEAKIAogI2VuZGlmCiAKKy8qIFNhbWUsIGJ1dCBoYW5kbGluZyBQeV9zc2l6ZV90ICovCisKK3N0YXRpYyBpbnQKK2dldF9zc2l6ZV90KFB5T2JqZWN0ICp2LCBQeV9zc2l6ZV90ICpwKQoreworICAgIFB5X3NzaXplX3QgeDsKKworICAgIHYgPSBnZXRfcHlsb25nKHYpOworICAgIGlmICh2ID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBhc3NlcnQoUHlMb25nX0NoZWNrKHYpKTsKKyAgICB4ID0gUHlMb25nX0FzU3NpemVfdCh2KTsKKyAgICBQeV9ERUNSRUYodik7CisgICAgaWYgKHggPT0gKFB5X3NzaXplX3QpLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19PdmVyZmxvd0Vycm9yKSkKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhTdHJ1Y3RFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXJndW1lbnQgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgKnAgPSB4OworICAgIHJldHVybiAwOworfQorCisvKiBTYW1lLCBidXQgaGFuZGxpbmcgc2l6ZV90ICovCisKK3N0YXRpYyBpbnQKK2dldF9zaXplX3QoUHlPYmplY3QgKnYsIHNpemVfdCAqcCkKK3sKKyAgICBzaXplX3QgeDsKKworICAgIHYgPSBnZXRfcHlsb25nKHYpOworICAgIGlmICh2ID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBhc3NlcnQoUHlMb25nX0NoZWNrKHYpKTsKKyAgICB4ID0gUHlMb25nX0FzU2l6ZV90KHYpOworICAgIFB5X0RFQ1JFRih2KTsKKyAgICBpZiAoeCA9PSAoc2l6ZV90KS0xICYmIFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfT3ZlcmZsb3dFcnJvcikpCisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoU3RydWN0RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50IG91dCBvZiByYW5nZSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgICpwID0geDsKKyAgICByZXR1cm4gMDsKK30KKwogCiAjZGVmaW5lIFJBTkdFX0VSUk9SKHgsIGYsIGZsYWcsIG1hc2spIHJldHVybiBfcmFuZ2VfZXJyb3IoZiwgZmxhZykKIApAQCAtMzY5LDYgKzQxNywyMyBAQAogICAgIHJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZyh4KTsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK251X3NzaXplX3QoY29uc3QgY2hhciAqcCwgY29uc3QgZm9ybWF0ZGVmICpmKQoreworICAgIFB5X3NzaXplX3QgeDsKKyAgICBtZW1jcHkoKGNoYXIgKikmeCwgcCwgc2l6ZW9mIHgpOworICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3QoeCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitudV9zaXplX3QoY29uc3QgY2hhciAqcCwgY29uc3QgZm9ybWF0ZGVmICpmKQoreworICAgIHNpemVfdCB4OworICAgIG1lbWNweSgoY2hhciAqKSZ4LCBwLCBzaXplb2YgeCk7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU2l6ZV90KHgpOworfQorCisKIC8qIE5hdGl2ZSBtb2RlIGRvZXNuJ3Qgc3VwcG9ydCBxIG9yIFEgdW5sZXNzIHRoZSBwbGF0Zm9ybSBDIHN1cHBvcnRzCiAgICBsb25nIGxvbmcgKG9yLCBvbiBXaW5kb3dzLCBfX2ludDY0KS4gKi8KIApAQCAtNTU4LDYgKzYyMywyNiBAQAogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50CitucF9zc2l6ZV90KGNoYXIgKnAsIFB5T2JqZWN0ICp2LCBjb25zdCBmb3JtYXRkZWYgKmYpCit7CisgICAgUHlfc3NpemVfdCB4OworICAgIGlmIChnZXRfc3NpemVfdCh2LCAmeCkgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgbWVtY3B5KHAsIChjaGFyICopJngsIHNpemVvZiB4KTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorbnBfc2l6ZV90KGNoYXIgKnAsIFB5T2JqZWN0ICp2LCBjb25zdCBmb3JtYXRkZWYgKmYpCit7CisgICAgc2l6ZV90IHg7CisgICAgaWYgKGdldF9zaXplX3QodiwgJngpIDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIG1lbWNweShwLCAoY2hhciAqKSZ4LCBzaXplb2YgeCk7CisgICAgcmV0dXJuIDA7Cit9CisKICNpZmRlZiBIQVZFX0xPTkdfTE9ORwogCiBzdGF0aWMgaW50CkBAIC02NTEsNiArNzM2LDggQEAKICAgICB7J0knLCAgICAgICBzaXplb2YoaW50KSwgICAgSU5UX0FMSUdOLCAgICAgIG51X3VpbnQsICAgICAgICBucF91aW50fSwKICAgICB7J2wnLCAgICAgICBzaXplb2YobG9uZyksICAgTE9OR19BTElHTiwgICAgIG51X2xvbmcsICAgICAgICBucF9sb25nfSwKICAgICB7J0wnLCAgICAgICBzaXplb2YobG9uZyksICAgTE9OR19BTElHTiwgICAgIG51X3Vsb25nLCAgICAgICBucF91bG9uZ30sCisgICAgeyduJywgICAgICAgc2l6ZW9mKHNpemVfdCksIFNJWkVfVF9BTElHTiwgICBudV9zc2l6ZV90LCAgICAgbnBfc3NpemVfdH0sCisgICAgeydOJywgICAgICAgc2l6ZW9mKHNpemVfdCksIFNJWkVfVF9BTElHTiwgICBudV9zaXplX3QsICAgICAgbnBfc2l6ZV90fSwKICNpZmRlZiBIQVZFX0xPTkdfTE9ORwogICAgIHsncScsICAgICAgIHNpemVvZihQWV9MT05HX0xPTkcpLCBMT05HX0xPTkdfQUxJR04sIG51X2xvbmdsb25nLCBucF9sb25nbG9uZ30sCiAgICAgeydRJywgICAgICAgc2l6ZW9mKFBZX0xPTkdfTE9ORyksIExPTkdfTE9OR19BTElHTiwgbnVfdWxvbmdsb25nLG5wX3Vsb25nbG9uZ30sCkBAIC0xOTUxLDcgKzIwMzgsOCBAQAogICBsOmxvbmc7IEw6dW5zaWduZWQgbG9uZzsgZjpmbG9hdDsgZDpkb3VibGUuXG5cCiBTcGVjaWFsIGNhc2VzIChwcmVjZWRpbmcgZGVjaW1hbCBjb3VudCBpbmRpY2F0ZXMgbGVuZ3RoKTpcblwKICAgczpzdHJpbmcgKGFycmF5IG9mIGNoYXIpOyBwOiBwYXNjYWwgc3RyaW5nICh3aXRoIGNvdW50IGJ5dGUpLlxuXAotU3BlY2lhbCBjYXNlIChvbmx5IGF2YWlsYWJsZSBpbiBuYXRpdmUgZm9ybWF0KTpcblwKK1NwZWNpYWwgY2FzZXMgKG9ubHkgYXZhaWxhYmxlIGluIG5hdGl2ZSBmb3JtYXQpOlxuXAorICBuOnNzaXplX3Q7IE46c2l6ZV90O1xuXAogICBQOmFuIGludGVnZXIgdHlwZSB0aGF0IGlzIHdpZGUgZW5vdWdoIHRvIGhvbGQgYSBwb2ludGVyLlxuXAogU3BlY2lhbCBjYXNlIChub3QgaW4gbmF0aXZlIG1vZGUgdW5sZXNzICdsb25nIGxvbmcnIGluIHBsYXRmb3JtIEMpOlxuXAogICBxOmxvbmcgbG9uZzsgUTp1bnNpZ25lZCBsb25nIGxvbmdcblwKZGlmZiAtLWdpdCBhL01vZHVsZXMvX3Rlc3RidWZmZXIuYyBiL01vZHVsZXMvX3Rlc3RidWZmZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZmY2ODVjCi0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9fdGVzdGJ1ZmZlci5jCkBAIC0wLDAgKzEsMjgyMCBAQAorLyogQyBFeHRlbnNpb24gbW9kdWxlIHRvIHRlc3QgYWxsIGFzcGVjdHMgb2YgUEVQLTMxMTguCisgICBXcml0dGVuIGJ5IFN0ZWZhbiBLcmFoLiAqLworCisKKyNkZWZpbmUgUFlfU1NJWkVfVF9DTEVBTgorCisjaW5jbHVkZSAiUHl0aG9uLmgiCisKKworLyogc3RydWN0IG1vZHVsZSAqLworUHlPYmplY3QgKnN0cnVjdG1vZHVsZSA9IE5VTEw7CitQeU9iamVjdCAqU3RydWN0ID0gTlVMTDsKK1B5T2JqZWN0ICpjYWxjc2l6ZSA9IE5VTEw7CisKKy8qIGNhY2hlIHNpbXBsZSBmb3JtYXQgc3RyaW5nICovCitzdGF0aWMgY29uc3QgY2hhciAqc2ltcGxlX2ZtdCA9ICJCIjsKK1B5T2JqZWN0ICpzaW1wbGVfZm9ybWF0ID0gTlVMTDsKKyNkZWZpbmUgU0lNUExFX0ZPUk1BVChmbXQpIChmbXQgPT0gTlVMTCB8fCBzdHJjbXAoZm10LCAiQiIpID09IDApCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5EQXJyYXkgT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgUHlUeXBlT2JqZWN0IE5EQXJyYXlfVHlwZTsKKyNkZWZpbmUgTkRBcnJheV9DaGVjayh2KSAoUHlfVFlQRSh2KSA9PSAmTkRBcnJheV9UeXBlKQorCisjZGVmaW5lIENIRUNLX0xJU1RfT1JfVFVQTEUodikgXAorICAgIGlmICghUHlMaXN0X0NoZWNrKHYpICYmICFQeVR1cGxlX0NoZWNrKHYpKSB7IFwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgICAgICAgICBcCisgICAgICAgICAgICAjdiAiIG11c3QgYmUgYSBsaXN0IG9yIGEgdHVwbGUiKTsgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisKKyNkZWZpbmUgUHlNZW1fWEZyZWUodikgXAorICAgIGRvIHsgaWYgKHYpIFB5TWVtX0ZyZWUodik7IH0gd2hpbGUgKDApCisKKy8qIE1heGltdW0gbnVtYmVyIG9mIGRpbWVuc2lvbnMuICovCisjZGVmaW5lIE5EX01BWF9ORElNICgyICogUHlCVUZfTUFYX05ESU0pCisKKy8qIENoZWNrIGZvciB0aGUgcHJlc2VuY2Ugb2Ygc3Vib2Zmc2V0cyBpbiB0aGUgZmlyc3QgZGltZW5zaW9uLiAqLworI2RlZmluZSBIQVZFX1BUUihzdWJvZmZzZXRzKSAoc3Vib2Zmc2V0cyAmJiBzdWJvZmZzZXRzWzBdID49IDApCisvKiBBZGp1c3QgcHRyIGlmIHN1Ym9mZnNldHMgYXJlIHByZXNlbnQuICovCisjZGVmaW5lIEFESlVTVF9QVFIocHRyLCBzdWJvZmZzZXRzKSBcCisgICAgKEhBVkVfUFRSKHN1Ym9mZnNldHMpID8gKigoY2hhcioqKXB0cikgKyBzdWJvZmZzZXRzWzBdIDogcHRyKQorCisvKiBEZWZhdWx0OiBOdW1QeSBzdHlsZSAoc3RyaWRlcyksIHJlYWQtb25seSwgbm8gdmFyLWV4cG9ydCwgQy1zdHlsZSBsYXlvdXQgKi8KKyNkZWZpbmUgTkRfREVGQVVMVCAgICAgICAgICAweDAwMAorLyogVXNlciBjb25maWd1cmFibGUgZmxhZ3MgZm9yIHRoZSBuZGFycmF5ICovCisjZGVmaW5lIE5EX1ZBUkVYUE9SVCAgICAgICAgMHgwMDEgICAvKiBjaGFuZ2UgbGF5b3V0IHdoaWxlIGJ1ZmZlcnMgYXJlIGV4cG9ydGVkICovCisvKiBVc2VyIGNvbmZpZ3VyYWJsZSBmbGFncyBmb3IgZWFjaCBiYXNlIGJ1ZmZlciAqLworI2RlZmluZSBORF9XUklUQUJMRSAgICAgICAgIDB4MDAyICAgLyogbWFyayBiYXNlIGJ1ZmZlciBhcyB3cml0YWJsZSAqLworI2RlZmluZSBORF9GT1JUUkFOICAgICAgICAgIDB4MDA0ICAgLyogRm9ydHJhbiBjb250aWd1b3VzIGxheW91dCAqLworI2RlZmluZSBORF9TQ0FMQVIgICAgICAgICAgIDB4MDA4ICAgLyogc2NhbGFyOiBuZGltID0gMCAqLworI2RlZmluZSBORF9QSUwgICAgICAgICAgICAgIDB4MDEwICAgLyogY29udmVydCB0byBQSUwtc3R5bGUgYXJyYXkgKHN1Ym9mZnNldHMpICovCisjZGVmaW5lIE5EX1JFRElSRUNUICAgICAgICAgMHgwMjAgICAvKiByZWRpcmVjdCBidWZmZXIgcmVxdWVzdHMgKi8KKyNkZWZpbmUgTkRfR0VUQlVGX0ZBSUwgICAgICAweDA0MCAgIC8qIHRyaWdnZXIgZ2V0YnVmZmVyIGZhaWx1cmUgKi8KKyNkZWZpbmUgTkRfR0VUQlVGX1VOREVGSU5FRCAweDA4MCAgIC8qIHVuZGVmaW5lZCB2aWV3Lm9iaiAqLworLyogSW50ZXJuYWwgZmxhZ3MgZm9yIHRoZSBiYXNlIGJ1ZmZlciAqLworI2RlZmluZSBORF9DICAgICAgICAgICAgICAgIDB4MTAwICAgLyogQyBjb250aWd1b3VzIGxheW91dCAoZGVmYXVsdCkgKi8KKyNkZWZpbmUgTkRfT1dOX0FSUkFZUyAgICAgICAweDIwMCAgIC8qIGNvbnN1bWVyIG93bnMgYXJyYXlzICovCisKKy8qIG5kYXJyYXkgcHJvcGVydGllcyAqLworI2RlZmluZSBORF9JU19DT05TVU1FUihuZCkgXAorICAgICgoKE5EQXJyYXlPYmplY3QgKiluZCktPmhlYWQgPT0gJigoTkRBcnJheU9iamVjdCAqKW5kKS0+c3RhdGljYnVmKQorCisvKiBuZGJ1Zi0+ZmxhZ3MgcHJvcGVydGllcyAqLworI2RlZmluZSBORF9DX0NPTlRJR1VPVVMoZmxhZ3MpICghIShmbGFncyYoTkRfU0NBTEFSfE5EX0MpKSkKKyNkZWZpbmUgTkRfRk9SVFJBTl9DT05USUdVT1VTKGZsYWdzKSAoISEoZmxhZ3MmKE5EX1NDQUxBUnxORF9GT1JUUkFOKSkpCisjZGVmaW5lIE5EX0FOWV9DT05USUdVT1VTKGZsYWdzKSAoISEoZmxhZ3MmKE5EX1NDQUxBUnxORF9DfE5EX0ZPUlRSQU4pKSkKKworLyogZ2V0YnVmZmVyKCkgcmVxdWVzdHMgKi8KKyNkZWZpbmUgUkVRX0lORElSRUNUKGZsYWdzKSAoKGZsYWdzJlB5QlVGX0lORElSRUNUKSA9PSBQeUJVRl9JTkRJUkVDVCkKKyNkZWZpbmUgUkVRX0NfQ09OVElHVU9VUyhmbGFncykgKChmbGFncyZQeUJVRl9DX0NPTlRJR1VPVVMpID09IFB5QlVGX0NfQ09OVElHVU9VUykKKyNkZWZpbmUgUkVRX0ZfQ09OVElHVU9VUyhmbGFncykgKChmbGFncyZQeUJVRl9GX0NPTlRJR1VPVVMpID09IFB5QlVGX0ZfQ09OVElHVU9VUykKKyNkZWZpbmUgUkVRX0FOWV9DT05USUdVT1VTKGZsYWdzKSAoKGZsYWdzJlB5QlVGX0FOWV9DT05USUdVT1VTKSA9PSBQeUJVRl9BTllfQ09OVElHVU9VUykKKyNkZWZpbmUgUkVRX1NUUklERVMoZmxhZ3MpICgoZmxhZ3MmUHlCVUZfU1RSSURFUykgPT0gUHlCVUZfU1RSSURFUykKKyNkZWZpbmUgUkVRX1NIQVBFKGZsYWdzKSAoKGZsYWdzJlB5QlVGX05EKSA9PSBQeUJVRl9ORCkKKyNkZWZpbmUgUkVRX1dSSVRBQkxFKGZsYWdzKSAoZmxhZ3MmUHlCVUZfV1JJVEFCTEUpCisjZGVmaW5lIFJFUV9GT1JNQVQoZmxhZ3MpIChmbGFncyZQeUJVRl9GT1JNQVQpCisKKworLyogU2luZ2xlIG5vZGUgb2YgYSBsaXN0IG9mIGJhc2UgYnVmZmVycy4gVGhlIGxpc3QgaXMgbmVlZGVkIHRvIGltcGxlbWVudAorICAgY2hhbmdlcyBpbiBtZW1vcnkgbGF5b3V0IHdoaWxlIGV4cG9ydGVkIGJ1ZmZlcnMgYXJlIGFjdGl2ZS4gKi8KK3N0YXRpYyBQeVR5cGVPYmplY3QgTkRBcnJheV9UeXBlOworCitzdHJ1Y3QgbmRidWY7Cit0eXBlZGVmIHN0cnVjdCBuZGJ1ZiB7CisgICAgc3RydWN0IG5kYnVmICpuZXh0OworICAgIHN0cnVjdCBuZGJ1ZiAqcHJldjsKKyAgICBQeV9zc2l6ZV90IGxlbjsgICAgIC8qIGxlbmd0aCBvZiBkYXRhICovCisgICAgUHlfc3NpemVfdCBvZmZzZXQ7ICAvKiBzdGFydCBvZiB0aGUgYXJyYXkgcmVsYXRpdmUgdG8gZGF0YSAqLworICAgIGNoYXIgKmRhdGE7ICAgICAgICAgLyogcmF3IGRhdGEgKi8KKyAgICBpbnQgZmxhZ3M7ICAgICAgICAgIC8qIGNhcGFiaWxpdGllcyBvZiB0aGUgYmFzZSBidWZmZXIgKi8KKyAgICBQeV9zc2l6ZV90IGV4cG9ydHM7IC8qIG51bWJlciBvZiBleHBvcnRzICovCisgICAgUHlfYnVmZmVyIGJhc2U7ICAgICAvKiBiYXNlIGJ1ZmZlciAqLworfSBuZGJ1Zl90OworCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIGludCBmbGFnczsgICAgICAgICAgLyogbmRhcnJheSBmbGFncyAqLworICAgIG5kYnVmX3Qgc3RhdGljYnVmOyAgLyogc3RhdGljIGJ1ZmZlciBmb3IgcmUtZXhwb3J0aW5nIG1vZGUgKi8KKyAgICBuZGJ1Zl90ICpoZWFkOyAgICAgIC8qIGN1cnJlbnRseSBhY3RpdmUgYmFzZSBidWZmZXIgKi8KK30gTkRBcnJheU9iamVjdDsKKworCitzdGF0aWMgbmRidWZfdCAqCituZGJ1Zl9uZXcoUHlfc3NpemVfdCBuaXRlbXMsIFB5X3NzaXplX3QgaXRlbXNpemUsIFB5X3NzaXplX3Qgb2Zmc2V0LCBpbnQgZmxhZ3MpCit7CisgICAgbmRidWZfdCAqbmRidWY7CisgICAgUHlfYnVmZmVyICpiYXNlOworICAgIFB5X3NzaXplX3QgbGVuOworCisgICAgbGVuID0gbml0ZW1zICogaXRlbXNpemU7CisgICAgaWYgKG9mZnNldCAlIGl0ZW1zaXplKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgIm9mZnNldCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgaXRlbXNpemUiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCtpdGVtc2l6ZSA+IGxlbikgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIm9mZnNldCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG5kYnVmID0gUHlNZW1fTWFsbG9jKHNpemVvZiAqbmRidWYpOworICAgIGlmIChuZGJ1ZiA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG5kYnVmLT5uZXh0ID0gTlVMTDsKKyAgICBuZGJ1Zi0+cHJldiA9IE5VTEw7CisgICAgbmRidWYtPmxlbiA9IGxlbjsKKyAgICBuZGJ1Zi0+b2Zmc2V0PSBvZmZzZXQ7CisKKyAgICBuZGJ1Zi0+ZGF0YSA9IFB5TWVtX01hbGxvYyhsZW4pOworICAgIGlmIChuZGJ1Zi0+ZGF0YSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIFB5TWVtX0ZyZWUobmRidWYpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBuZGJ1Zi0+ZmxhZ3MgPSBmbGFnczsKKyAgICBuZGJ1Zi0+ZXhwb3J0cyA9IDA7CisKKyAgICBiYXNlID0gJm5kYnVmLT5iYXNlOworICAgIGJhc2UtPm9iaiA9IE5VTEw7CisgICAgYmFzZS0+YnVmID0gbmRidWYtPmRhdGE7CisgICAgYmFzZS0+bGVuID0gbGVuOworICAgIGJhc2UtPml0ZW1zaXplID0gMTsKKyAgICBiYXNlLT5yZWFkb25seSA9IDA7CisgICAgYmFzZS0+Zm9ybWF0ID0gTlVMTDsKKyAgICBiYXNlLT5uZGltID0gMTsKKyAgICBiYXNlLT5zaGFwZSA9IE5VTEw7CisgICAgYmFzZS0+c3RyaWRlcyA9IE5VTEw7CisgICAgYmFzZS0+c3Vib2Zmc2V0cyA9IE5VTEw7CisgICAgYmFzZS0+aW50ZXJuYWwgPSBuZGJ1ZjsKKworICAgIHJldHVybiBuZGJ1ZjsKK30KKworc3RhdGljIHZvaWQKK25kYnVmX2ZyZWUobmRidWZfdCAqbmRidWYpCit7CisgICAgUHlfYnVmZmVyICpiYXNlID0gJm5kYnVmLT5iYXNlOworCisgICAgUHlNZW1fWEZyZWUobmRidWYtPmRhdGEpOworICAgIFB5TWVtX1hGcmVlKGJhc2UtPmZvcm1hdCk7CisgICAgUHlNZW1fWEZyZWUoYmFzZS0+c2hhcGUpOworICAgIFB5TWVtX1hGcmVlKGJhc2UtPnN0cmlkZXMpOworICAgIFB5TWVtX1hGcmVlKGJhc2UtPnN1Ym9mZnNldHMpOworCisgICAgUHlNZW1fRnJlZShuZGJ1Zik7Cit9CisKK3N0YXRpYyB2b2lkCituZGJ1Zl9wdXNoKE5EQXJyYXlPYmplY3QgKm5kLCBuZGJ1Zl90ICplbHQpCit7CisgICAgZWx0LT5uZXh0ID0gbmQtPmhlYWQ7CisgICAgaWYgKG5kLT5oZWFkKSBuZC0+aGVhZC0+cHJldiA9IGVsdDsKKyAgICBuZC0+aGVhZCA9IGVsdDsKKyAgICBlbHQtPnByZXYgPSBOVUxMOworfQorCitzdGF0aWMgdm9pZAorbmRidWZfZGVsZXRlKE5EQXJyYXlPYmplY3QgKm5kLCBuZGJ1Zl90ICplbHQpCit7CisgICAgaWYgKGVsdC0+cHJldikKKyAgICAgICAgZWx0LT5wcmV2LT5uZXh0ID0gZWx0LT5uZXh0OworICAgIGVsc2UKKyAgICAgICAgbmQtPmhlYWQgPSBlbHQtPm5leHQ7CisgICAgCisgICAgaWYgKGVsdC0+bmV4dCkKKyAgICAgICAgZWx0LT5uZXh0LT5wcmV2ID0gZWx0LT5wcmV2OworCisgICAgbmRidWZfZnJlZShlbHQpOworfQorCitzdGF0aWMgdm9pZAorbmRidWZfcG9wKE5EQXJyYXlPYmplY3QgKm5kKQoreworICAgIG5kYnVmX2RlbGV0ZShuZCwgbmQtPmhlYWQpOworfQorCisKK3N0YXRpYyBQeU9iamVjdCAqCituZGFycmF5X25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBOREFycmF5T2JqZWN0ICpuZDsKKworICAgIG5kID0gUHlPYmplY3RfTmV3KE5EQXJyYXlPYmplY3QsICZOREFycmF5X1R5cGUpOworICAgIGlmIChuZCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIG5kLT5mbGFncyA9IDA7CisgICAgbmQtPmhlYWQgPSBOVUxMOworICAgIHJldHVybiAoUHlPYmplY3QgKiluZDsKK30KKworc3RhdGljIHZvaWQKK25kYXJyYXlfZGVhbGxvYyhOREFycmF5T2JqZWN0ICpzZWxmKQoreworICAgIGlmIChzZWxmLT5oZWFkKSB7CisgICAgICAgIGlmIChORF9JU19DT05TVU1FUihzZWxmKSkgeworICAgICAgICAgICAgUHlfYnVmZmVyICpiYXNlID0gJnNlbGYtPmhlYWQtPmJhc2U7CisgICAgICAgICAgICBpZiAoc2VsZi0+aGVhZC0+ZmxhZ3MgJiBORF9PV05fQVJSQVlTKSB7CisgICAgICAgICAgICAgICAgUHlNZW1fWEZyZWUoYmFzZS0+c2hhcGUpOworICAgICAgICAgICAgICAgIFB5TWVtX1hGcmVlKGJhc2UtPnN0cmlkZXMpOworICAgICAgICAgICAgICAgIFB5TWVtX1hGcmVlKGJhc2UtPnN1Ym9mZnNldHMpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgUHlCdWZmZXJfUmVsZWFzZShiYXNlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHdoaWxlIChzZWxmLT5oZWFkKQorICAgICAgICAgICAgICAgIG5kYnVmX3BvcChzZWxmKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBQeU9iamVjdF9EZWwoc2VsZik7Cit9CisKK3N0YXRpYyBpbnQKK25kYXJyYXlfaW5pdF9zdGF0aWNidWYoUHlPYmplY3QgKmV4cG9ydGVyLCBOREFycmF5T2JqZWN0ICpuZCwgaW50IGZsYWdzKQoreworICAgIFB5X2J1ZmZlciAqYmFzZSA9ICZuZC0+c3RhdGljYnVmLmJhc2U7CisKKyAgICBpZiAoUHlPYmplY3RfR2V0QnVmZmVyKGV4cG9ydGVyLCBiYXNlLCBmbGFncykgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBuZC0+aGVhZCA9ICZuZC0+c3RhdGljYnVmOworCisgICAgbmQtPmhlYWQtPm5leHQgPSBOVUxMOworICAgIG5kLT5oZWFkLT5wcmV2ID0gTlVMTDsKKyAgICBuZC0+aGVhZC0+bGVuID0gLTE7CisgICAgbmQtPmhlYWQtPm9mZnNldCA9IC0xOworICAgIG5kLT5oZWFkLT5kYXRhID0gTlVMTDsKKworICAgIG5kLT5oZWFkLT5mbGFncyA9IGJhc2UtPnJlYWRvbmx5ID8gMCA6IE5EX1dSSVRBQkxFOworICAgIG5kLT5oZWFkLT5leHBvcnRzID0gMDsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAoraW5pdF9mbGFncyhuZGJ1Zl90ICpuZGJ1ZikKK3sKKyAgICBpZiAobmRidWYtPmJhc2UubmRpbSA9PSAwKQorICAgICAgICBuZGJ1Zi0+ZmxhZ3MgfD0gTkRfU0NBTEFSOworICAgIGlmIChuZGJ1Zi0+YmFzZS5zdWJvZmZzZXRzKQorICAgICAgICBuZGJ1Zi0+ZmxhZ3MgfD0gTkRfUElMOworICAgIGlmIChQeUJ1ZmZlcl9Jc0NvbnRpZ3VvdXMoJm5kYnVmLT5iYXNlLCAnQycpKQorICAgICAgICBuZGJ1Zi0+ZmxhZ3MgfD0gTkRfQzsKKyAgICBpZiAoUHlCdWZmZXJfSXNDb250aWd1b3VzKCZuZGJ1Zi0+YmFzZSwgJ0YnKSkKKyAgICAgICAgbmRidWYtPmZsYWdzIHw9IE5EX0ZPUlRSQU47Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgQnVmZmVyL0xpc3QgY29udmVyc2lvbnMgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgUHlfc3NpemVfdCAqc3RyaWRlc19mcm9tX3NoYXBlKGNvbnN0IG5kYnVmX3QgKiwgaW50IGZsYWdzKTsKKworLyogR2V0IG51bWJlciBvZiBtZW1iZXJzIGluIGEgc3RydWN0OiBzZWUgaXNzdWUgIzEyNzQwICovCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlPYmplY3RfSEVBRAorICAgIFB5X3NzaXplX3Qgc19zaXplOworICAgIFB5X3NzaXplX3Qgc19sZW47Cit9IFB5UGFydGlhbFN0cnVjdE9iamVjdDsKKworc3RhdGljIFB5X3NzaXplX3QKK2dldF9ubWVtYihQeU9iamVjdCAqcykKK3sKKyAgICByZXR1cm4gKChQeVBhcnRpYWxTdHJ1Y3RPYmplY3QgKilzKS0+c19sZW47Cit9CisKKy8qIFBhY2sgYWxsIGl0ZW1zIGludG8gdGhlIGJ1ZmZlciBvZiAnb2JqJy4gVGhlICdmb3JtYXQnIHBhcmFtZXRlciBtdXN0IGJlCisgICBpbiBzdHJ1Y3QgbW9kdWxlIHN5bnRheC4gRm9yIHN0YW5kYXJkIEMgdHlwZXMsIGEgc2luZ2xlIGl0ZW0gaXMgYW4gaW50ZWdlci4KKyAgIEZvciBjb21wb3VuZCB0eXBlcywgYSBzaW5nbGUgaXRlbSBpcyBhIHR1cGxlIG9mIGludGVnZXJzLiAqLworc3RhdGljIGludAorcGFja19mcm9tX2xpc3QoUHlPYmplY3QgKm9iaiwgUHlPYmplY3QgKml0ZW1zLCBQeU9iamVjdCAqZm9ybWF0LAorICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpdGVtc2l6ZSkKK3sKKyAgICBQeU9iamVjdCAqc3RydWN0b2JqLCAqcGFja19pbnRvOworICAgIFB5T2JqZWN0ICphcmdzLCAqb2Zmc2V0OworICAgIFB5T2JqZWN0ICppdGVtLCAqdG1wOworICAgIFB5X3NzaXplX3Qgbml0ZW1zOyAvKiBudW1iZXIgb2YgaXRlbXMgKi8KKyAgICBQeV9zc2l6ZV90IG5tZW1iOyAgLyogbnVtYmVyIG9mIG1lbWJlcnMgaW4gYSBzaW5nbGUgaXRlbSAqLworICAgIFB5X3NzaXplX3QgaSwgajsKKyAgICBpbnQgcmV0ID0gMDsKKworICAgIGFzc2VydChQeU9iamVjdF9DaGVja0J1ZmZlcihvYmopKTsKKyAgICBhc3NlcnQoUHlMaXN0X0NoZWNrKGl0ZW1zKSB8fCBQeVR1cGxlX0NoZWNrKGl0ZW1zKSk7CisKKyAgICBzdHJ1Y3RvYmogPSBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzKFN0cnVjdCwgZm9ybWF0LCBOVUxMKTsKKyAgICBpZiAoc3RydWN0b2JqID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIG5pdGVtcyA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfU0laRShpdGVtcyk7CisgICAgbm1lbWIgPSBnZXRfbm1lbWIoc3RydWN0b2JqKTsKKyAgICBhc3NlcnQobm1lbWIgPj0gMSk7CisKKyAgICBwYWNrX2ludG8gPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHN0cnVjdG9iaiwgInBhY2tfaW50byIpOworICAgIGlmIChwYWNrX2ludG8gPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYoc3RydWN0b2JqKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIC8qIG5tZW1iID49IDEgKi8KKyAgICBhcmdzID0gUHlUdXBsZV9OZXcoMiArIG5tZW1iKTsKKyAgICBpZiAoYXJncyA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihwYWNrX2ludG8pOworICAgICAgICBQeV9ERUNSRUYoc3RydWN0b2JqKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIG9mZnNldCA9IE5VTEw7CisgICAgZm9yIChpID0gMDsgaSA8IG5pdGVtczsgaSsrKSB7CisgICAgICAgIC8qIExvb3AgaW52YXJpYW50OiBhcmdzW2pdIGFyZSBib3Jyb3dlZCByZWZlcmVuY2VzIG9yIE5VTEwuICovCisgICAgICAgIFB5VHVwbGVfU0VUX0lURU0oYXJncywgMCwgb2JqKTsKKyAgICAgICAgZm9yIChqID0gMTsgaiA8IDIrbm1lbWI7IGorKykKKyAgICAgICAgICAgIFB5VHVwbGVfU0VUX0lURU0oYXJncywgaiwgTlVMTCk7CisKKyAgICAgICAgUHlfWERFQ1JFRihvZmZzZXQpOworICAgICAgICBvZmZzZXQgPSBQeUxvbmdfRnJvbVNzaXplX3QoaSppdGVtc2l6ZSk7CisgICAgICAgIGlmIChvZmZzZXQgPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGFyZ3MsIDEsIG9mZnNldCk7CisKKyAgICAgICAgaXRlbSA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfSVRFTShpdGVtcywgaSk7CisgICAgICAgIGlmICgoUHlCeXRlc19DaGVjayhpdGVtKSB8fCBQeUxvbmdfQ2hlY2soaXRlbSkgfHwKKyAgICAgICAgICAgICBQeUZsb2F0X0NoZWNrKGl0ZW0pKSAmJiBubWVtYiA9PSAxKSB7CisgICAgICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGFyZ3MsIDIsIGl0ZW0pOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKChQeUxpc3RfQ2hlY2soaXRlbSkgfHwgUHlUdXBsZV9DaGVjayhpdGVtKSkgJiYKKyAgICAgICAgICAgICAgICAgUHlTZXF1ZW5jZV9MZW5ndGgoaXRlbSkgPT0gbm1lbWIpIHsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBubWVtYjsgaisrKSB7CisgICAgICAgICAgICAgICAgdG1wID0gUHlTZXF1ZW5jZV9GYXN0X0dFVF9JVEVNKGl0ZW0sIGopOworICAgICAgICAgICAgICAgIFB5VHVwbGVfU0VUX0lURU0oYXJncywgMitqLCB0bXApOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgIm1pc21hdGNoIGJldHdlZW4gaW5pdGlhbGl6ZXIgZWxlbWVudCBhbmQgZm9ybWF0IHN0cmluZyIpOworICAgICAgICAgICAgcmV0ID0gLTE7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHRtcCA9IFB5T2JqZWN0X0NhbGxPYmplY3QocGFja19pbnRvLCBhcmdzKTsKKyAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisgICAgICAgICAgICByZXQgPSAtMTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIFB5X0RFQ1JFRih0bXApOworICAgIH0KKworICAgIFB5X0lOQ1JFRihvYmopOyAvKiBhcmdzWzBdICovCisgICAgLyogYXJnc1sxXTogb2Zmc2V0IGlzIGVpdGhlciBOVUxMIG9yIHNob3VsZCBiZSBkZWFsbG9jJ2QgKi8KKyAgICBmb3IgKGkgPSAyOyBpIDwgMitubWVtYjsgaSsrKSB7CisgICAgICAgIHRtcCA9IFB5VHVwbGVfR0VUX0lURU0oYXJncywgaSk7CisgICAgICAgIFB5X1hJTkNSRUYodG1wKTsKKyAgICB9CisgICAgUHlfREVDUkVGKGFyZ3MpOworCisgICAgUHlfREVDUkVGKHBhY2tfaW50byk7CisgICAgUHlfREVDUkVGKHN0cnVjdG9iaik7CisgICAgcmV0dXJuIHJldDsKKworfQorCisvKiBQYWNrIHNpbmdsZSBlbGVtZW50ICovCitzdGF0aWMgaW50CitwYWNrX3NpbmdsZShjaGFyICpwdHIsIFB5T2JqZWN0ICppdGVtLCBjb25zdCBjaGFyICpmbXQsIFB5X3NzaXplX3QgaXRlbXNpemUpCit7CisgICAgUHlPYmplY3QgKnN0cnVjdG9iaiA9IE5VTEwsICpwYWNrX2ludG8gPSBOVUxMLCAqYXJncyA9IE5VTEw7CisgICAgUHlPYmplY3QgKmZvcm1hdCA9IE5VTEwsICptdmlldyA9IE5VTEwsICp6ZXJvID0gTlVMTDsKKyAgICBQeV9zc2l6ZV90IGksIG5tZW1iOworICAgIGludCByZXQgPSAtMTsKKyAgICBQeU9iamVjdCAqeDsKKworICAgIGlmIChmbXQgPT0gTlVMTCkgZm10ID0gIkIiOworCisgICAgZm9ybWF0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoZm10KTsKKyAgICBpZiAoZm9ybWF0ID09IE5VTEwpCisgICAgICAgIGdvdG8gb3V0OworCisgICAgc3RydWN0b2JqID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhTdHJ1Y3QsIGZvcm1hdCwgTlVMTCk7CisgICAgaWYgKHN0cnVjdG9iaiA9PSBOVUxMKQorICAgICAgICBnb3RvIG91dDsKKworICAgIG5tZW1iID0gZ2V0X25tZW1iKHN0cnVjdG9iaik7CisgICAgYXNzZXJ0KG5tZW1iID49IDEpOworCisgICAgbXZpZXcgPSBQeU1lbW9yeVZpZXdfRnJvbU1lbW9yeShwdHIsIGl0ZW1zaXplLCBQeUJVRl9XUklURSk7CisgICAgaWYgKG12aWV3ID09IE5VTEwpCisgICAgICAgIGdvdG8gb3V0OworCisgICAgemVybyA9IFB5TG9uZ19Gcm9tTG9uZygwKTsKKyAgICBpZiAoemVybyA9PSBOVUxMKQorICAgICAgICBnb3RvIG91dDsKKworICAgIHBhY2tfaW50byA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoc3RydWN0b2JqLCAicGFja19pbnRvIik7CisgICAgaWYgKHBhY2tfaW50byA9PSBOVUxMKQorICAgICAgICBnb3RvIG91dDsKKworICAgIGFyZ3MgPSBQeVR1cGxlX05ldygyK25tZW1iKTsKKyAgICBpZiAoYXJncyA9PSBOVUxMKQorICAgICAgICBnb3RvIG91dDsKKworICAgIFB5VHVwbGVfU0VUX0lURU0oYXJncywgMCwgbXZpZXcpOworICAgIFB5VHVwbGVfU0VUX0lURU0oYXJncywgMSwgemVybyk7CisKKyAgICBpZiAoKFB5Qnl0ZXNfQ2hlY2soaXRlbSkgfHwgUHlMb25nX0NoZWNrKGl0ZW0pIHx8CisgICAgICAgICBQeUZsb2F0X0NoZWNrKGl0ZW0pKSAmJiBubWVtYiA9PSAxKSB7CisgICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGFyZ3MsIDIsIGl0ZW0pOworICAgIH0KKyAgICBlbHNlIGlmICgoUHlMaXN0X0NoZWNrKGl0ZW0pIHx8IFB5VHVwbGVfQ2hlY2soaXRlbSkpICYmCisgICAgICAgICAgICAgUHlTZXF1ZW5jZV9MZW5ndGgoaXRlbSkgPT0gbm1lbWIpIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG5tZW1iOyBpKyspIHsKKyAgICAgICAgICAgIHggPSBQeVNlcXVlbmNlX0Zhc3RfR0VUX0lURU0oaXRlbSwgaSk7CisgICAgICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGFyZ3MsIDIraSwgeCk7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgIm1pc21hdGNoIGJldHdlZW4gaW5pdGlhbGl6ZXIgZWxlbWVudCBhbmQgZm9ybWF0IHN0cmluZyIpOworICAgICAgICBnb3RvIGFyZ3Nfb3V0OworICAgIH0KKworICAgIHggPSBQeU9iamVjdF9DYWxsT2JqZWN0KHBhY2tfaW50bywgYXJncyk7CisgICAgaWYgKHggIT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYoeCk7CisgICAgICAgIHJldCA9IDA7CisgICAgfQorCisKK2FyZ3Nfb3V0OgorICAgIGZvciAoaSA9IDA7IGkgPCAyK25tZW1iOyBpKyspCisgICAgICAgIFB5X1hJTkNSRUYoUHlUdXBsZV9HRVRfSVRFTShhcmdzLCBpKSk7CisgICAgUHlfWERFQ1JFRihhcmdzKTsKK291dDoKKyAgICBQeV9YREVDUkVGKHBhY2tfaW50byk7CisgICAgUHlfWERFQ1JFRih6ZXJvKTsKKyAgICBQeV9YREVDUkVGKG12aWV3KTsKKyAgICBQeV9YREVDUkVGKHN0cnVjdG9iaik7CisgICAgUHlfWERFQ1JFRihmb3JtYXQpOworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkCitjb3B5X3JlYyhjb25zdCBQeV9zc2l6ZV90ICpzaGFwZSwgUHlfc3NpemVfdCBuZGltLCBQeV9zc2l6ZV90IGl0ZW1zaXplLAorICAgICAgICAgY2hhciAqZHB0ciwgY29uc3QgUHlfc3NpemVfdCAqZHN0cmlkZXMsIGNvbnN0IFB5X3NzaXplX3QgKmRzdWJvZmZzZXRzLAorICAgICAgICAgY2hhciAqc3B0ciwgY29uc3QgUHlfc3NpemVfdCAqc3N0cmlkZXMsIGNvbnN0IFB5X3NzaXplX3QgKnNzdWJvZmZzZXRzLAorICAgICAgICAgY2hhciAqbWVtKQoreworICAgIFB5X3NzaXplX3QgaTsKKworICAgIGFzc2VydChuZGltID49IDEpOworCisgICAgaWYgKG5kaW0gPT0gMSkgeworICAgICAgICBpZiAoIUhBVkVfUFRSKGRzdWJvZmZzZXRzKSAmJiAhSEFWRV9QVFIoc3N1Ym9mZnNldHMpICYmCisgICAgICAgICAgICBkc3RyaWRlc1swXSA9PSBpdGVtc2l6ZSAmJiBzc3RyaWRlc1swXSA9PSBpdGVtc2l6ZSkgeworICAgICAgICAgICAgbWVtbW92ZShkcHRyLCBzcHRyLCBzaGFwZVswXSAqIGl0ZW1zaXplKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNoYXIgKnA7CisgICAgICAgICAgICBhc3NlcnQobWVtICE9IE5VTEwpOworICAgICAgICAgICAgZm9yIChpPTAsIHA9bWVtOyBpPHNoYXBlWzBdOyBwKz1pdGVtc2l6ZSwgc3B0cis9c3N0cmlkZXNbMF0sIGkrKykgeworICAgICAgICAgICAgICAgIGNoYXIgKnhzcHRyID0gQURKVVNUX1BUUihzcHRyLCBzc3Vib2Zmc2V0cyk7CisgICAgICAgICAgICAgICAgbWVtY3B5KHAsIHhzcHRyLCBpdGVtc2l6ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmb3IgKGk9MCwgcD1tZW07IGk8c2hhcGVbMF07IHArPWl0ZW1zaXplLCBkcHRyKz1kc3RyaWRlc1swXSwgaSsrKSB7CisgICAgICAgICAgICAgICAgY2hhciAqeGRwdHIgPSBBREpVU1RfUFRSKGRwdHIsIGRzdWJvZmZzZXRzKTsKKyAgICAgICAgICAgICAgICBtZW1jcHkoeGRwdHIsIHAsIGl0ZW1zaXplKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IHNoYXBlWzBdOyBkcHRyKz1kc3RyaWRlc1swXSwgc3B0cis9c3N0cmlkZXNbMF0sIGkrKykgeworICAgICAgICBjaGFyICp4ZHB0ciA9IEFESlVTVF9QVFIoZHB0ciwgZHN1Ym9mZnNldHMpOworICAgICAgICBjaGFyICp4c3B0ciA9IEFESlVTVF9QVFIoc3B0ciwgc3N1Ym9mZnNldHMpOworCisgICAgICAgIGNvcHlfcmVjKHNoYXBlKzEsIG5kaW0tMSwgaXRlbXNpemUsCisgICAgICAgICAgICAgICAgIHhkcHRyLCBkc3RyaWRlcysxLCBkc3Vib2Zmc2V0cyA/IGRzdWJvZmZzZXRzKzEgOiBOVUxMLAorICAgICAgICAgICAgICAgICB4c3B0ciwgc3N0cmlkZXMrMSwgc3N1Ym9mZnNldHMgPyBzc3Vib2Zmc2V0cysxIDogTlVMTCwKKyAgICAgICAgICAgICAgICAgbWVtKTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbnQKK2NtcF9zdHJ1Y3R1cmUoUHlfYnVmZmVyICpkZXN0LCBQeV9idWZmZXIgKnNyYykKK3sKKyAgICBQeV9zc2l6ZV90IGk7CisgICAgaW50IHNhbWVfZm10ID0gKChkZXN0LT5mb3JtYXQgPT0gTlVMTCAmJiBzcmMtPmZvcm1hdCA9PSBOVUxMKSB8fCBcCisgICAgICAgICAgICAgICAgICAgIChzdHJjbXAoZGVzdC0+Zm9ybWF0LCBzcmMtPmZvcm1hdCkgPT0gMCkpOworCisgICAgaWYgKCFzYW1lX2ZtdCB8fAorICAgICAgICBkZXN0LT5pdGVtc2l6ZSAhPSBzcmMtPml0ZW1zaXplIHx8CisgICAgICAgIGRlc3QtPm5kaW0gIT0gc3JjLT5uZGltKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgZGVzdC0+bmRpbTsgaSsrKSB7CisgICAgICAgIGlmIChkZXN0LT5zaGFwZVtpXSAhPSBzcmMtPnNoYXBlW2ldKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBpZiAoZGVzdC0+c2hhcGVbaV0gPT0gMCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKiBDb3B5IHNyYyB0byBkZXN0LiBCb3RoIGJ1ZmZlcnMgbXVzdCBoYXZlIHRoZSBzYW1lIGZvcm1hdCwgaXRlbXNpemUsCisgICBuZGltIGFuZCBzaGFwZS4gQ29weWluZyBpcyBhdG9taWMsIHRoZSBmdW5jdGlvbiBuZXZlciBmYWlscyB3aXRoCisgICBhIHBhcnRpYWwgY29weS4gKi8KK3N0YXRpYyBpbnQKK2NvcHlfYnVmZmVyKFB5X2J1ZmZlciAqZGVzdCwgUHlfYnVmZmVyICpzcmMpCit7CisgICAgY2hhciAqbWVtID0gTlVMTDsKKworICAgIGFzc2VydChkZXN0LT5uZGltID4gMCk7CisKKyAgICBpZiAoY21wX3N0cnVjdHVyZShkZXN0LCBzcmMpIDwgMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJuZGFycmF5IGFzc2lnbm1lbnQ6IGx2YWx1ZSBhbmQgcnZhbHVlIGhhdmUgZGlmZmVyZW50IHN0cnVjdHVyZXMiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmICgoZGVzdC0+c3Vib2Zmc2V0cyAmJiBkZXN0LT5zdWJvZmZzZXRzW2Rlc3QtPm5kaW0tMV0gPj0gMCkgfHwKKyAgICAgICAgKHNyYy0+c3Vib2Zmc2V0cyAmJiBzcmMtPnN1Ym9mZnNldHNbc3JjLT5uZGltLTFdID49IDApIHx8CisgICAgICAgIGRlc3QtPnN0cmlkZXNbZGVzdC0+bmRpbS0xXSAhPSBkZXN0LT5pdGVtc2l6ZSB8fAorICAgICAgICBzcmMtPnN0cmlkZXNbc3JjLT5uZGltLTFdICE9IHNyYy0+aXRlbXNpemUpIHsKKyAgICAgICAgbWVtID0gUHlNZW1fTWFsbG9jKGRlc3QtPnNoYXBlW2Rlc3QtPm5kaW0tMV0gKiBkZXN0LT5pdGVtc2l6ZSk7CisgICAgICAgIGlmIChtZW0gPT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNvcHlfcmVjKGRlc3QtPnNoYXBlLCBkZXN0LT5uZGltLCBkZXN0LT5pdGVtc2l6ZSwKKyAgICAgICAgICAgICBkZXN0LT5idWYsIGRlc3QtPnN0cmlkZXMsIGRlc3QtPnN1Ym9mZnNldHMsCisgICAgICAgICAgICAgc3JjLT5idWYsIHNyYy0+c3RyaWRlcywgc3JjLT5zdWJvZmZzZXRzLAorICAgICAgICAgICAgIG1lbSk7CisKKyAgICBQeU1lbV9YRnJlZShtZW0pOworICAgIHJldHVybiAwOworfQorCisKKy8qIFVucGFjayBzaW5nbGUgZWxlbWVudCAqLworc3RhdGljIFB5T2JqZWN0ICoKK3VucGFja19zaW5nbGUoY2hhciAqcHRyLCBjb25zdCBjaGFyICpmbXQsIFB5X3NzaXplX3QgaXRlbXNpemUpCit7CisgICAgUHlPYmplY3QgKngsICp1bnBhY2tfZnJvbSwgKm12aWV3OworCisgICAgaWYgKGZtdCA9PSBOVUxMKSB7CisgICAgICAgIGZtdCA9ICJCIjsKKyAgICAgICAgaXRlbXNpemUgPSAxOworICAgIH0KKworICAgIHVucGFja19mcm9tID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhzdHJ1Y3Rtb2R1bGUsICJ1bnBhY2tfZnJvbSIpOworICAgIGlmICh1bnBhY2tfZnJvbSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIG12aWV3ID0gUHlNZW1vcnlWaWV3X0Zyb21NZW1vcnkocHRyLCBpdGVtc2l6ZSwgUHlCVUZfUkVBRCk7CisgICAgaWYgKG12aWV3ID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKHVucGFja19mcm9tKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgeCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbih1bnBhY2tfZnJvbSwgInNPIiwgZm10LCBtdmlldyk7CisgICAgUHlfREVDUkVGKHVucGFja19mcm9tKTsKKyAgICBQeV9ERUNSRUYobXZpZXcpOworICAgIGlmICh4ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKFB5VHVwbGVfR0VUX1NJWkUoeCkgPT0gMSkgeworICAgICAgICBQeU9iamVjdCAqdG1wID0gUHlUdXBsZV9HRVRfSVRFTSh4LCAwKTsKKyAgICAgICAgUHlfSU5DUkVGKHRtcCk7CisgICAgICAgIFB5X0RFQ1JFRih4KTsKKyAgICAgICAgcmV0dXJuIHRtcDsKKyAgICB9CisKKyAgICByZXR1cm4geDsKK30KKworLyogVW5wYWNrIGEgbXVsdGktZGltZW5zaW9uYWwgbWF0cml4IGludG8gYSBuZXN0ZWQgbGlzdC4gUmV0dXJuIGEgc2NhbGFyCisgICBmb3IgbmRpbSA9IDAuICovCitzdGF0aWMgUHlPYmplY3QgKgordW5wYWNrX3JlYyhQeU9iamVjdCAqdW5wYWNrX2Zyb20sIGNoYXIgKnB0ciwgUHlPYmplY3QgKm12aWV3LCBjaGFyICppdGVtLAorICAgICAgICAgICBjb25zdCBQeV9zc2l6ZV90ICpzaGFwZSwgY29uc3QgUHlfc3NpemVfdCAqc3RyaWRlcywKKyAgICAgICAgICAgY29uc3QgUHlfc3NpemVfdCAqc3Vib2Zmc2V0cywgUHlfc3NpemVfdCBuZGltLCBQeV9zc2l6ZV90IGl0ZW1zaXplKQoreworICAgIFB5T2JqZWN0ICpsc3QsICp4OworICAgIFB5X3NzaXplX3QgaTsKKworICAgIGFzc2VydChuZGltID49IDApOworICAgIGFzc2VydChzaGFwZSAhPSBOVUxMKTsKKyAgICBhc3NlcnQoc3RyaWRlcyAhPSBOVUxMKTsKKworICAgIGlmIChuZGltID09IDApIHsKKyAgICAgICAgbWVtY3B5KGl0ZW0sIHB0ciwgaXRlbXNpemUpOworICAgICAgICB4ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyh1bnBhY2tfZnJvbSwgbXZpZXcsIE5VTEwpOworICAgICAgICBpZiAoeCA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGlmIChQeVR1cGxlX0dFVF9TSVpFKHgpID09IDEpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp0bXAgPSBQeVR1cGxlX0dFVF9JVEVNKHgsIDApOworICAgICAgICAgICAgUHlfSU5DUkVGKHRtcCk7CisgICAgICAgICAgICBQeV9ERUNSRUYoeCk7CisgICAgICAgICAgICByZXR1cm4gdG1wOworICAgICAgICB9CisgICAgICAgIHJldHVybiB4OworICAgIH0KKworICAgIGxzdCA9IFB5TGlzdF9OZXcoc2hhcGVbMF0pOworICAgIGlmIChsc3QgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgc2hhcGVbMF07IHB0cis9c3RyaWRlc1swXSwgaSsrKSB7CisgICAgICAgIGNoYXIgKm5leHRwdHIgPSBBREpVU1RfUFRSKHB0ciwgc3Vib2Zmc2V0cyk7CisKKyAgICAgICAgeCA9IHVucGFja19yZWModW5wYWNrX2Zyb20sIG5leHRwdHIsIG12aWV3LCBpdGVtLAorICAgICAgICAgICAgICAgICAgICAgICBzaGFwZSsxLCBzdHJpZGVzKzEsIHN1Ym9mZnNldHMgPyBzdWJvZmZzZXRzKzEgOiBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICBuZGltLTEsIGl0ZW1zaXplKTsKKyAgICAgICAgaWYgKHggPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfREVDUkVGKGxzdCk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorCisgICAgICAgIFB5TGlzdF9TRVRfSVRFTShsc3QsIGksIHgpOworICAgIH0KKworICAgIHJldHVybiBsc3Q7Cit9CisKKworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfYXNfbGlzdChOREFycmF5T2JqZWN0ICpuZCkKK3sKKyAgICBQeU9iamVjdCAqc3RydWN0b2JqID0gTlVMTCwgKnVucGFja19mcm9tID0gTlVMTDsKKyAgICBQeU9iamVjdCAqbHN0ID0gTlVMTCwgKm12aWV3ID0gTlVMTDsKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmbmQtPmhlYWQtPmJhc2U7CisgICAgUHlfc3NpemVfdCAqc2hhcGUgPSBiYXNlLT5zaGFwZTsKKyAgICBQeV9zc2l6ZV90ICpzdHJpZGVzID0gYmFzZS0+c3RyaWRlczsKKyAgICBQeV9zc2l6ZV90IHNpbXBsZV9zaGFwZVsxXTsKKyAgICBQeV9zc2l6ZV90IHNpbXBsZV9zdHJpZGVzWzFdOworICAgIGNoYXIgKml0ZW0gPSBOVUxMOworICAgIFB5T2JqZWN0ICpmb3JtYXQ7CisgICAgY2hhciAqZm10ID0gYmFzZS0+Zm9ybWF0OworCisgICAgYmFzZSA9ICZuZC0+aGVhZC0+YmFzZTsKKworICAgIGlmIChmbXQgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJuZGFycmF5OiB0b2xpc3QoKSBkb2VzIG5vdCBzdXBwb3J0IGZvcm1hdD1OVUxMLCB1c2UgIgorICAgICAgICAgICAgInRvYnl0ZXMoKSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKHNoYXBlID09IE5VTEwpIHsKKyAgICAgICAgYXNzZXJ0KE5EX0NfQ09OVElHVU9VUyhuZC0+aGVhZC0+ZmxhZ3MpKTsKKyAgICAgICAgYXNzZXJ0KGJhc2UtPnN0cmlkZXMgPT0gTlVMTCk7CisgICAgICAgIGFzc2VydChiYXNlLT5uZGltIDw9IDEpOworICAgICAgICBzaGFwZSA9IHNpbXBsZV9zaGFwZTsKKyAgICAgICAgc2hhcGVbMF0gPSBiYXNlLT5sZW47CisgICAgICAgIHN0cmlkZXMgPSBzaW1wbGVfc3RyaWRlczsKKyAgICAgICAgc3RyaWRlc1swXSA9IGJhc2UtPml0ZW1zaXplOworICAgIH0KKyAgICBlbHNlIGlmIChzdHJpZGVzID09IE5VTEwpIHsKKyAgICAgICAgYXNzZXJ0KE5EX0NfQ09OVElHVU9VUyhuZC0+aGVhZC0+ZmxhZ3MpKTsKKyAgICAgICAgc3RyaWRlcyA9IHN0cmlkZXNfZnJvbV9zaGFwZShuZC0+aGVhZCwgMCk7CisgICAgICAgIGlmIChzdHJpZGVzID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBmb3JtYXQgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhmbXQpOworICAgIGlmIChmb3JtYXQgPT0gTlVMTCkKKyAgICAgICAgZ290byBvdXQ7CisKKyAgICBzdHJ1Y3RvYmogPSBQeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzKFN0cnVjdCwgZm9ybWF0LCBOVUxMKTsKKyAgICBQeV9ERUNSRUYoZm9ybWF0KTsKKyAgICBpZiAoc3RydWN0b2JqID09IE5VTEwpCisgICAgICAgIGdvdG8gb3V0OworCisgICAgdW5wYWNrX2Zyb20gPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHN0cnVjdG9iaiwgInVucGFja19mcm9tIik7CisgICAgaWYgKHVucGFja19mcm9tID09IE5VTEwpCisgICAgICAgIGdvdG8gb3V0OworCisgICAgaXRlbSA9IFB5TWVtX01hbGxvYyhiYXNlLT5pdGVtc2l6ZSk7CisgICAgaWYgKGl0ZW0gPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisKKyAgICBtdmlldyA9IFB5TWVtb3J5Vmlld19Gcm9tTWVtb3J5KGl0ZW0sIGJhc2UtPml0ZW1zaXplLCBQeUJVRl9XUklURSk7CisgICAgaWYgKG12aWV3ID09IE5VTEwpCisgICAgICAgIGdvdG8gb3V0OworCisgICAgbHN0ID0gdW5wYWNrX3JlYyh1bnBhY2tfZnJvbSwgYmFzZS0+YnVmLCBtdmlldywgaXRlbSwKKyAgICAgICAgICAgICAgICAgICAgIHNoYXBlLCBzdHJpZGVzLCBiYXNlLT5zdWJvZmZzZXRzLAorICAgICAgICAgICAgICAgICAgICAgYmFzZS0+bmRpbSwgYmFzZS0+aXRlbXNpemUpOworCitvdXQ6CisgICAgUHlfWERFQ1JFRihtdmlldyk7CisgICAgUHlNZW1fWEZyZWUoaXRlbSk7CisgICAgUHlfWERFQ1JFRih1bnBhY2tfZnJvbSk7CisgICAgUHlfWERFQ1JFRihzdHJ1Y3RvYmopOworICAgIGlmIChzdHJpZGVzICE9IGJhc2UtPnN0cmlkZXMgJiYgc3RyaWRlcyAhPSBzaW1wbGVfc3RyaWRlcykKKyAgICAgICAgUHlNZW1fWEZyZWUoc3RyaWRlcyk7CisKKyAgICByZXR1cm4gbHN0OworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5pdGlhbGl6ZSBuZGJ1ZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyoKKyAgIFN0YXRlIG9mIGEgbmV3IG5kYnVmIGR1cmluZyBpbml0aWFsaXphdGlvbi4gJ09LJyBtZWFucyB0aGF0IGluaXRpYWxpemF0aW9uCisgICBpcyBjb21wbGV0ZS4gJ1BUUicgbWVhbnMgdGhhdCBhIHBvaW50ZXIgaGFzIGJlZW4gaW5pdGlhbGl6ZWQsIGJ1dCB0aGUKKyAgIHN0YXRlIG9mIHRoZSBtZW1vcnkgaXMgc3RpbGwgdW5kZWZpbmVkIGFuZCBuZGJ1Zi0+b2Zmc2V0IGlzIGRpc3JlZ2FyZGVkLgorCisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgICAgICAgICAgICAgICAgIHwgbmRidWZfbmV3IHwgaW5pdF9zaW1wbGUgfCBpbml0X3N0cnVjdHVyZSB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgbmV4dCAgICAgICAgICAgIHwgT0sgKE5VTEwpIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgcHJldiAgICAgICAgICAgIHwgT0sgKE5VTEwpIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgbGVuICAgICAgICAgICAgIHwgICAgT0sgICAgIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgb2Zmc2V0ICAgICAgICAgIHwgICAgT0sgICAgIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgZGF0YSAgICAgICAgICAgIHwgICAgUFRSICAgIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgZmxhZ3MgICAgICAgICAgIHwgICAgdXNlciAgIHwgICAgdXNlciAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgZXhwb3J0cyAgICAgICAgIHwgICBPSyAoMCkgIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgYmFzZS5vYmogICAgICAgIHwgT0sgKE5VTEwpIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgYmFzZS5idWYgICAgICAgIHwgICAgUFRSICAgIHwgICAgIFBUUiAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgYmFzZS5sZW4gICAgICAgIHwgbGVuKGRhdGEpIHwgIGxlbihkYXRhKSAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgYmFzZS5pdGVtc2l6ZSAgIHwgICAgIDEgICAgIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgYmFzZS5yZWFkb25seSAgIHwgICAgIDAgICAgIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8CisgICstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgIHwgYmFzZS5mb3JtYXQgICAgIHwgICAgTlVMTCAgIHwgICAgIE9LICAgICAgfCAgICAgICBPSyAgICAgICB8ICAKKyAgKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAgfCBiYXNlLm5kaW0gICAgICAgfCAgICAgMSAgICAgfCAgICAgIDEgICAgICB8ICAgICAgIE9LICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAgfCBiYXNlLnNoYXBlICAgICAgfCAgICBOVUxMICAgfCAgICBOVUxMICAgICB8ICAgICAgIE9LICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAgfCBiYXNlLnN0cmlkZXMgICAgfCAgICBOVUxMICAgfCAgICBOVUxMICAgICB8ICAgICAgIE9LICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAgfCBiYXNlLnN1Ym9mZnNldHMgfCAgICBOVUxMICAgfCAgICBOVUxMICAgICB8ICAgICAgIE9LICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAgfCBiYXNlLmludGVybmFsICAgfCAgICBPSyAgICAgfCAgICBPSyAgICAgICB8ICAgICAgIE9LICAgICAgIHwKKyAgKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKworKi8KKworc3RhdGljIFB5X3NzaXplX3QKK2dldF9pdGVtc2l6ZShQeU9iamVjdCAqZm9ybWF0KQoreworICAgIFB5T2JqZWN0ICp0bXA7CisgICAgUHlfc3NpemVfdCBpdGVtc2l6ZTsKKworICAgIHRtcCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoY2FsY3NpemUsIGZvcm1hdCwgTlVMTCk7CisgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaXRlbXNpemUgPSBQeUxvbmdfQXNTc2l6ZV90KHRtcCk7CisgICAgUHlfREVDUkVGKHRtcCk7CisKKyAgICByZXR1cm4gaXRlbXNpemU7Cit9CisKK3N0YXRpYyBjaGFyICoKK2dldF9mb3JtYXQoUHlPYmplY3QgKmZvcm1hdCkKK3sKKyAgICBQeU9iamVjdCAqdG1wOworICAgIGNoYXIgKmZtdDsKKworICAgIHRtcCA9IFB5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nKGZvcm1hdCk7CisgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBmbXQgPSBQeU1lbV9NYWxsb2MoUHlCeXRlc19HRVRfU0laRSh0bXApKzEpOworICAgIGlmIChmbXQgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICBQeV9ERUNSRUYodG1wKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHN0cmNweShmbXQsIFB5Qnl0ZXNfQVNfU1RSSU5HKHRtcCkpOworICAgIFB5X0RFQ1JFRih0bXApOworCisgICAgcmV0dXJuIGZtdDsKK30KKworc3RhdGljIGludAoraW5pdF9zaW1wbGUobmRidWZfdCAqbmRidWYsIFB5T2JqZWN0ICppdGVtcywgUHlPYmplY3QgKmZvcm1hdCwKKyAgICAgICAgICAgIFB5X3NzaXplX3QgaXRlbXNpemUpCit7CisgICAgUHlPYmplY3QgKm12aWV3OworICAgIFB5X2J1ZmZlciAqYmFzZSA9ICZuZGJ1Zi0+YmFzZTsKKyAgICBpbnQgcmV0OworCisgICAgbXZpZXcgPSBQeU1lbW9yeVZpZXdfRnJvbUJ1ZmZlcihiYXNlKTsKKyAgICBpZiAobXZpZXcgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmV0ID0gcGFja19mcm9tX2xpc3QobXZpZXcsIGl0ZW1zLCBmb3JtYXQsIGl0ZW1zaXplKTsKKyAgICBQeV9ERUNSRUYobXZpZXcpOworICAgIGlmIChyZXQgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBiYXNlLT5yZWFkb25seSA9ICEobmRidWYtPmZsYWdzICYgTkRfV1JJVEFCTEUpOworICAgIGJhc2UtPml0ZW1zaXplID0gaXRlbXNpemU7CisgICAgYmFzZS0+Zm9ybWF0ID0gZ2V0X2Zvcm1hdChmb3JtYXQpOworICAgIGlmIChiYXNlLT5mb3JtYXQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBQeV9zc2l6ZV90ICoKK3NlcV9hc19zc2l6ZV9hcnJheShQeU9iamVjdCAqc2VxLCBQeV9zc2l6ZV90IGxlbiwgaW50IGlzX3NoYXBlKQoreworICAgIFB5X3NzaXplX3QgKmRlc3Q7CisgICAgUHlfc3NpemVfdCB4LCBpOworCisgICAgZGVzdCA9IFB5TWVtX01hbGxvYyhsZW4gKiAoc2l6ZW9mICpkZXN0KSk7CisgICAgaWYgKGRlc3QgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKKyAgICAgICAgUHlPYmplY3QgKnRtcCA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfSVRFTShzZXEsIGkpOworICAgICAgICBpZiAoIVB5TG9uZ19DaGVjayh0bXApKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAiZWxlbWVudHMgb2YgJXMgbXVzdCBiZSBpbnRlZ2VycyIsCisgICAgICAgICAgICAgICAgaXNfc2hhcGUgPyAic2hhcGUiIDogInN0cmlkZXMiKTsKKyAgICAgICAgICAgIFB5TWVtX0ZyZWUoZGVzdCk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICB4ID0gUHlMb25nX0FzU3NpemVfdCh0bXApOworICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkgeworICAgICAgICAgICAgUHlNZW1fRnJlZShkZXN0KTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIGlmIChpc19zaGFwZSAmJiB4IDwgMCkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgImVsZW1lbnRzIG9mIHNoYXBlIG11c3QgYmUgaW50ZWdlcnMgPj0gMCIpOworICAgICAgICAgICAgUHlNZW1fRnJlZShkZXN0KTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIGRlc3RbaV0gPSB4OworICAgIH0KKworICAgIHJldHVybiBkZXN0OworfQorCitzdGF0aWMgUHlfc3NpemVfdCAqCitzdHJpZGVzX2Zyb21fc2hhcGUoY29uc3QgbmRidWZfdCAqbmRidWYsIGludCBmbGFncykKK3sKKyAgICBjb25zdCBQeV9idWZmZXIgKmJhc2UgPSAmbmRidWYtPmJhc2U7CisgICAgUHlfc3NpemVfdCAqcywgaTsKKworICAgIHMgPSBQeU1lbV9NYWxsb2MoYmFzZS0+bmRpbSAqIChzaXplb2YgKnMpKTsKKyAgICBpZiAocyA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmIChmbGFncyAmIE5EX0ZPUlRSQU4pIHsKKyAgICAgICAgc1swXSA9IGJhc2UtPml0ZW1zaXplOworICAgICAgICBmb3IgKGkgPSAxOyBpIDwgYmFzZS0+bmRpbTsgaSsrKQorICAgICAgICAgICAgc1tpXSA9IHNbaS0xXSAqIGJhc2UtPnNoYXBlW2ktMV07CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBzW2Jhc2UtPm5kaW0tMV0gPSBiYXNlLT5pdGVtc2l6ZTsKKyAgICAgICAgZm9yIChpID0gYmFzZS0+bmRpbS0yOyBpID49IDA7IGktLSkKKyAgICAgICAgICAgIHNbaV0gPSBzW2krMV0gKiBiYXNlLT5zaGFwZVtpKzFdOworICAgIH0KKworICAgIHJldHVybiBzOworfQorCisvKiBCb3VuZHMgY2hlY2s6CisKKyAgICAgbGVuIDo9IGNvbXBsZXRlIGxlbmd0aCBvZiBhbGxvY2F0ZWQgbWVtb3J5CisgICAgIG9mZnNldCA6PSBzdGFydCBvZiB0aGUgYXJyYXkKKworICAgICBBIHNpbmdsZSBhcnJheSBlbGVtZW50IGlzIGluZGV4ZWQgYnk6CisKKyAgICAgICBpID0gaW5kaWNlc1swXSAqIHN0cmlkZXNbMF0gKyBpbmRpY2VzWzFdICogc3RyaWRlc1sxXSArIC4uLgorCisgICAgIGltaW4gaXMgcmVhY2hlZCB3aGVuIGFsbCBpbmRpY2VzW25dIGNvbWJpbmVkIHdpdGggcG9zaXRpdmUgc3RyaWRlcyBhcmUgMAorICAgICBhbmQgYWxsIGluZGljZXMgY29tYmluZWQgd2l0aCBuZWdhdGl2ZSBzdHJpZGVzIGFyZSBzaGFwZVtuXS0xLCB3aGljaCBpcworICAgICB0aGUgbWF4aW11bSBpbmRleCBmb3IgdGhlIG50aCBkaW1lbnNpb24uCisKKyAgICAgaW1heCBpcyByZWFjaGVkIHdoZW4gYWxsIGluZGljZXNbbl0gY29tYmluZWQgd2l0aCBuZWdhdGl2ZSBzdHJpZGVzIGFyZSAwCisgICAgIGFuZCBhbGwgaW5kaWNlcyBjb21iaW5lZCB3aXRoIHBvc2l0aXZlIHN0cmlkZXMgYXJlIHNoYXBlW25dLTEuCisqLworc3RhdGljIGludAordmVyaWZ5X3N0cnVjdHVyZShQeV9zc2l6ZV90IGxlbiwgUHlfc3NpemVfdCBpdGVtc2l6ZSwgUHlfc3NpemVfdCBvZmZzZXQsCisgICAgICAgICAgICAgICAgIGNvbnN0IFB5X3NzaXplX3QgKnNoYXBlLCBjb25zdCBQeV9zc2l6ZV90ICpzdHJpZGVzLAorICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG5kaW0pCit7CisgICAgUHlfc3NpemVfdCBpbWluLCBpbWF4OworICAgIFB5X3NzaXplX3QgbjsKKworICAgIGFzc2VydChuZGltID49IDApOworCisgICAgaWYgKG5kaW0gPT0gMCAmJiAob2Zmc2V0IDwgMCB8fCBvZmZzZXQraXRlbXNpemUgPiBsZW4pKQorICAgICAgICBnb3RvIGludmFsaWRfY29tYmluYXRpb247CisKKyAgICBmb3IgKG4gPSAwOyBuIDwgbmRpbTsgbisrKQorICAgICAgICBpZiAoc3RyaWRlc1tuXSAlIGl0ZW1zaXplKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJzdHJpZGVzIG11c3QgYmUgYSBtdWx0aXBsZSBvZiBpdGVtc2l6ZSIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisKKyAgICBmb3IgKG4gPSAwOyBuIDwgbmRpbTsgbisrKQorICAgICAgICBpZiAoc2hhcGVbbl0gPT0gMCkKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgaW1pbiA9IGltYXggPSAwOworICAgIGZvciAobiA9IDA7IG4gPCBuZGltOyBuKyspCisgICAgICAgIGlmIChzdHJpZGVzW25dIDw9IDApCisgICAgICAgICAgICBpbWluICs9IChzaGFwZVtuXS0xKSAqIHN0cmlkZXNbbl07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGltYXggKz0gKHNoYXBlW25dLTEpICogc3RyaWRlc1tuXTsKKworICAgIGlmIChpbWluICsgb2Zmc2V0IDwgMCB8fCBpbWF4ICsgb2Zmc2V0ICsgaXRlbXNpemUgPiBsZW4pCisgICAgICAgIGdvdG8gaW52YWxpZF9jb21iaW5hdGlvbjsKKworICAgIHJldHVybiAwOworCisKK2ludmFsaWRfY29tYmluYXRpb246CisgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICJpbnZhbGlkIGNvbWJpbmF0aW9uIG9mIGJ1ZmZlciwgc2hhcGUgYW5kIHN0cmlkZXMiKTsKKyAgICByZXR1cm4gLTE7Cit9CisKKy8qCisgICBDb252ZXJ0IGEgTnVtUHktc3R5bGUgYXJyYXkgdG8gYW4gYXJyYXkgdXNpbmcgc3Vib2Zmc2V0cyB0byBzdHJpZGUgaW4KKyAgIHRoZSBmaXJzdCBkaW1lbnNpb24uIFJlcXVpcmVtZW50czogbmRpbSA+IDAuCisKKyAgIENvbnRpZ3VvdXMgZXhhbXBsZQorICAgPT09PT09PT09PT09PT09PT09CisKKyAgICAgSW5wdXQ6CisgICAgIC0tLS0tLQorICAgICAgIHNoYXBlICAgICAgPSB7MiwgMiwgM307CisgICAgICAgc3RyaWRlcyAgICA9IHs2LCAzLCAxfTsKKyAgICAgICBzdWJvZmZzZXRzID0gTlVMTDsKKyAgICAgICBkYXRhICAgICAgID0gezAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMX07CisgICAgICAgYnVmICAgICAgICA9ICZkYXRhWzBdCisKKyAgICAgT3V0cHV0OgorICAgICAtLS0tLS0tCisgICAgICAgc2hhcGUgICAgICA9IHsyLCAyLCAzfTsKKyAgICAgICBzdHJpZGVzICAgID0ge3NpemVvZihjaGFyICopLCAzLCAxfTsKKyAgICAgICBzdWJvZmZzZXRzID0gezAsIC0xLCAtMX07CisgICAgICAgZGF0YSAgICAgICA9IHtwMSwgcDIsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMX07CisgICAgICAgICAgICAgICAgICAgICB8ICAgfCAgIF4gICAgICAgICAgICAgICAgIF4KKyAgICAgICAgICAgICAgICAgICAgIGAtLS0nLS0tJyAgICAgICAgICAgICAgICAgfAorICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8CisgICAgICAgICAgICAgICAgICAgICAgICAgYC0tLS0tLS0tLS0tLS0tLS0tLS0tLScKKyAgICAgICBidWYgICAgICAgID0gJmRhdGFbMF0KKworICAgICBTbywgaW4gdGhlIGV4YW1wbGUgdGhlIGlucHV0IHJlc2VtYmxlcyB0aGUgdGhyZWUtZGltZW5zaW9uYWwgYXJyYXkKKyAgICAgY2hhciB2WzJdWzJdWzNdLCB3aGlsZSB0aGUgb3V0cHV0IHJlc2VtYmxlcyBhbiBhcnJheSBvZiB0d28gcG9pbnRlcnMKKyAgICAgdG8gdHdvLWRpbWVuc2lvbmFsIGFycmF5czogY2hhciAoKnZbMl0pWzJdWzNdLgorCisKKyAgIE5vbi1jb250aWd1b3VzIGV4YW1wbGU6CisgICA9PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgIElucHV0ICh3aXRoIG9mZnNldCBhbmQgbmVnYXRpdmUgc3RyaWRlcyk6CisgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgc2hhcGUgICAgICA9IHsyLCAyLCAzfTsKKyAgICAgICBzdHJpZGVzICAgID0gey02LCAzLCAtMX07CisgICAgICAgb2Zmc2V0ICAgICA9IDgKKyAgICAgICBzdWJvZmZzZXRzID0gTlVMTDsKKyAgICAgICBkYXRhICAgICAgID0gezAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAxMX07CisKKyAgICAgT3V0cHV0OgorICAgICAtLS0tLS0tCisgICAgICAgc2hhcGUgICAgICA9IHsyLCAyLCAzfTsKKyAgICAgICBzdHJpZGVzICAgID0gey1zaXplb2YoY2hhciAqKSwgMywgLTF9OworICAgICAgIHN1Ym9mZnNldHMgPSB7MiwgLTEsIC0xfTsKKyAgICAgICBuZXdkYXRhICAgID0ge3AxLCBwMiwgMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExfTsKKyAgICAgICAgICAgICAgICAgICAgIHwgICB8ICAgXiAgICAgXiAgICAgICAgICAgXiAgICAgXgorICAgICAgICAgICAgICAgICAgICAgYC0tLSctLS0nICAgICB8ICAgICAgICAgICB8ICAgICBgLSBwMitzdWJvZmZzZXRzWzBdCisgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIGAtLS0tLS0tLS0tLXwtLS0gcDErc3Vib2Zmc2V0c1swXQorICAgICAgICAgICAgICAgICAgICAgICAgIGAtLS0tLS0tLS0tLS0tLS0tLS0tLS0nCisgICAgICAgYnVmICAgICAgICA9ICZuZXdkYXRhWzFdICAjIHN0cmlkaW5nIGJhY2t3YXJkcyBvdmVyIHRoZSBwb2ludGVycy4KKworICAgICBzdWJvZmZzZXRzWzBdIGlzIHRoZSBzYW1lIGFzIHRoZSBvZmZzZXQgdGhhdCBvbmUgd291bGQgc3BlY2lmeSBpZgorICAgICB0aGUgdHdvIHsyLCAzfSBzdWJhcnJheXMgd2VyZSBjcmVhdGVkIGRpcmVjdGx5LCBoZW5jZSB0aGUgbmFtZS4KKyovCitzdGF0aWMgaW50Citpbml0X3N1Ym9mZnNldHMobmRidWZfdCAqbmRidWYpCit7CisgICAgUHlfYnVmZmVyICpiYXNlID0gJm5kYnVmLT5iYXNlOworICAgIFB5X3NzaXplX3Qgc3RhcnQsIHN0ZXA7CisgICAgUHlfc3NpemVfdCBpbWluLCBzdWJvZmZzZXQwOworICAgIFB5X3NzaXplX3QgYWRkc2l6ZTsKKyAgICBQeV9zc2l6ZV90IG47CisgICAgY2hhciAqZGF0YTsKKworICAgIGFzc2VydChiYXNlLT5uZGltID4gMCk7CisgICAgYXNzZXJ0KGJhc2UtPnN1Ym9mZnNldHMgPT0gTlVMTCk7CisKKyAgICAvKiBBbGxvY2F0ZSBuZXcgZGF0YSB3aXRoIGFkZGl0aW9uYWwgc3BhY2UgZm9yIHNoYXBlWzBdIHBvaW50ZXJzLiAqLworICAgIGFkZHNpemUgPSBiYXNlLT5zaGFwZVswXSAqIChzaXplb2YgKGNoYXIgKikpOworCisgICAgLyogQWxpZ24gYXJyYXkgc3RhcnQgdG8gYSBtdWx0aXBsZSBvZiA4LiAqLworICAgIGFkZHNpemUgPSA4ICogKChhZGRzaXplICsgNykgLyA4KTsKKworICAgIGRhdGEgPSBQeU1lbV9NYWxsb2MobmRidWYtPmxlbiArIGFkZHNpemUpOworICAgIGlmIChkYXRhID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIG1lbWNweShkYXRhICsgYWRkc2l6ZSwgbmRidWYtPmRhdGEsIG5kYnVmLT5sZW4pOworCisgICAgUHlNZW1fRnJlZShuZGJ1Zi0+ZGF0YSk7CisgICAgbmRidWYtPmRhdGEgPSBkYXRhOworICAgIG5kYnVmLT5sZW4gKz0gYWRkc2l6ZTsKKyAgICBiYXNlLT5idWYgPSBuZGJ1Zi0+ZGF0YTsKKworICAgIC8qIGltaW46IG1pbmltdW0gaW5kZXggb2YgdGhlIGlucHV0IGFycmF5IHJlbGF0aXZlIHRvIG5kYnVmLT5vZmZzZXQuCisgICAgICAgc3Vib2Zmc2V0MDogb2Zmc2V0IGZvciBlYWNoIHN1Yi1hcnJheSBvZiB0aGUgb3V0cHV0LiBUaGlzIGlzIHRoZQorICAgICAgICAgICAgICAgICAgIHNhbWUgYXMgY2FsY3VsYXRpbmcgLWltaW4nIGZvciBhIHN1Yi1hcnJheSBvZiBuZGltLTEuICovCisgICAgaW1pbiA9IHN1Ym9mZnNldDAgPSAwOworICAgIGZvciAobiA9IDA7IG4gPCBiYXNlLT5uZGltOyBuKyspIHsKKyAgICAgICAgaWYgKGJhc2UtPnNoYXBlW25dID09IDApCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgaWYgKGJhc2UtPnN0cmlkZXNbbl0gPD0gMCkgeworICAgICAgICAgICAgUHlfc3NpemVfdCB4ID0gKGJhc2UtPnNoYXBlW25dLTEpICogYmFzZS0+c3RyaWRlc1tuXTsKKyAgICAgICAgICAgIGltaW4gKz0geDsKKyAgICAgICAgICAgIHN1Ym9mZnNldDAgKz0gKG4gPj0gMSkgPyAteCA6IDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBJbml0aWFsaXplIHRoZSBhcnJheSBvZiBwb2ludGVycyB0byB0aGUgc3ViLWFycmF5cy4gKi8KKyAgICBzdGFydCA9IGFkZHNpemUgKyBuZGJ1Zi0+b2Zmc2V0ICsgaW1pbjsKKyAgICBzdGVwID0gYmFzZS0+c3RyaWRlc1swXSA8IDAgPyAtYmFzZS0+c3RyaWRlc1swXSA6IGJhc2UtPnN0cmlkZXNbMF07CisKKyAgICBmb3IgKG4gPSAwOyBuIDwgYmFzZS0+c2hhcGVbMF07IG4rKykKKyAgICAgICAgKChjaGFyICoqKWJhc2UtPmJ1Zilbbl0gPSAoY2hhciAqKWJhc2UtPmJ1ZiArIHN0YXJ0ICsgbipzdGVwOworCisgICAgLyogSW5pdGlhbGl6ZSBzdWJvZmZzZXRzLiAqLworICAgIGJhc2UtPnN1Ym9mZnNldHMgPSBQeU1lbV9NYWxsb2MoYmFzZS0+bmRpbSAqIChzaXplb2YgKmJhc2UtPnN1Ym9mZnNldHMpKTsKKyAgICBpZiAoYmFzZS0+c3Vib2Zmc2V0cyA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgYmFzZS0+c3Vib2Zmc2V0c1swXSA9IHN1Ym9mZnNldDA7CisgICAgZm9yIChuID0gMTsgbiA8IGJhc2UtPm5kaW07IG4rKykKKyAgICAgICAgYmFzZS0+c3Vib2Zmc2V0c1tuXSA9IC0xOworCisgICAgLyogQWRqdXN0IHN0cmlkZXMgZm9yIHRoZSBmaXJzdCAoemVyb3RoKSBkaW1lbnNpb24uICovCisgICAgaWYgKGJhc2UtPnN0cmlkZXNbMF0gPj0gMCkgeworICAgICAgICBiYXNlLT5zdHJpZGVzWzBdID0gc2l6ZW9mKGNoYXIgKik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvKiBTdHJpZGluZyBiYWNrd2FyZHMuICovCisgICAgICAgIGJhc2UtPnN0cmlkZXNbMF0gPSAtKFB5X3NzaXplX3Qpc2l6ZW9mKGNoYXIgKik7CisgICAgICAgIGlmIChiYXNlLT5zaGFwZVswXSA+IDApCisgICAgICAgICAgICBiYXNlLT5idWYgPSAoY2hhciAqKWJhc2UtPmJ1ZiArIChiYXNlLT5zaGFwZVswXS0xKSAqIHNpemVvZihjaGFyICopOworICAgIH0KKworICAgIG5kYnVmLT5mbGFncyAmPSB+KE5EX0N8TkRfRk9SVFJBTik7CisgICAgbmRidWYtPm9mZnNldCA9IDA7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkCitpbml0X2xlbihQeV9idWZmZXIgKmJhc2UpCit7CisgICAgUHlfc3NpemVfdCBpOworCisgICAgYmFzZS0+bGVuID0gMTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgYmFzZS0+bmRpbTsgaSsrKQorICAgICAgICBiYXNlLT5sZW4gKj0gYmFzZS0+c2hhcGVbaV07CisgICAgYmFzZS0+bGVuICo9IGJhc2UtPml0ZW1zaXplOworfQorCitzdGF0aWMgaW50Citpbml0X3N0cnVjdHVyZShuZGJ1Zl90ICpuZGJ1ZiwgUHlPYmplY3QgKnNoYXBlLCBQeU9iamVjdCAqc3RyaWRlcywKKyAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbmRpbSkKK3sKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmbmRidWYtPmJhc2U7CisKKyAgICBiYXNlLT5uZGltID0gKGludCluZGltOworICAgIGlmIChuZGltID09IDApIHsKKyAgICAgICAgaWYgKG5kYnVmLT5mbGFncyAmIE5EX1BJTCkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAibmRpbSA9IDAgY2Fubm90IGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBORF9QSUwiKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBuZGJ1Zi0+ZmxhZ3MgfD0gKE5EX1NDQUxBUnxORF9DfE5EX0ZPUlRSQU4pOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKiBzaGFwZSAqLworICAgIGJhc2UtPnNoYXBlID0gc2VxX2FzX3NzaXplX2FycmF5KHNoYXBlLCBuZGltLCAxKTsKKyAgICBpZiAoYmFzZS0+c2hhcGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgLyogc3RyaWRlcyAqLworICAgIGlmIChzdHJpZGVzKSB7CisgICAgICAgIGJhc2UtPnN0cmlkZXMgPSBzZXFfYXNfc3NpemVfYXJyYXkoc3RyaWRlcywgbmRpbSwgMCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBiYXNlLT5zdHJpZGVzID0gc3RyaWRlc19mcm9tX3NoYXBlKG5kYnVmLCBuZGJ1Zi0+ZmxhZ3MpOworICAgIH0KKyAgICBpZiAoYmFzZS0+c3RyaWRlcyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKHZlcmlmeV9zdHJ1Y3R1cmUoYmFzZS0+bGVuLCBiYXNlLT5pdGVtc2l6ZSwgbmRidWYtPm9mZnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLT5zaGFwZSwgYmFzZS0+c3RyaWRlcywgbmRpbSkgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICAvKiBidWYgKi8KKyAgICBiYXNlLT5idWYgPSBuZGJ1Zi0+ZGF0YSArIG5kYnVmLT5vZmZzZXQ7CisKKyAgICAvKiBsZW4gKi8KKyAgICBpbml0X2xlbihiYXNlKTsKKworICAgIC8qIG5kYnVmLT5mbGFncyAqLworICAgIGlmIChQeUJ1ZmZlcl9Jc0NvbnRpZ3VvdXMoYmFzZSwgJ0MnKSkKKyAgICAgICAgbmRidWYtPmZsYWdzIHw9IE5EX0M7CisgICAgaWYgKFB5QnVmZmVyX0lzQ29udGlndW91cyhiYXNlLCAnRicpKQorICAgICAgICBuZGJ1Zi0+ZmxhZ3MgfD0gTkRfRk9SVFJBTjsKKworCisgICAgLyogY29udmVydCBudW1weSBhcnJheSB0byBzdWJvZmZzZXQgcmVwcmVzZW50YXRpb24gKi8KKyAgICBpZiAobmRidWYtPmZsYWdzICYgTkRfUElMKSB7CisgICAgICAgIC8qIG1vZGlmaWVzIGJhc2UtPmJ1ZiwgYmFzZS0+c3RyaWRlcyBhbmQgYmFzZS0+c3Vib2Zmc2V0cyAqKi8KKyAgICAgICAgcmV0dXJuIGluaXRfc3Vib2Zmc2V0cyhuZGJ1Zik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBuZGJ1Zl90ICoKK2luaXRfbmRidWYoUHlPYmplY3QgKml0ZW1zLCBQeU9iamVjdCAqc2hhcGUsIFB5T2JqZWN0ICpzdHJpZGVzLAorICAgICAgICAgICBQeV9zc2l6ZV90IG9mZnNldCwgUHlPYmplY3QgKmZvcm1hdCwgaW50IGZsYWdzKQoreworICAgIG5kYnVmX3QgKm5kYnVmOworICAgIFB5X3NzaXplX3QgbmRpbTsKKyAgICBQeV9zc2l6ZV90IG5pdGVtczsKKyAgICBQeV9zc2l6ZV90IGl0ZW1zaXplOworCisgICAgLyogbmRpbSA9IGxlbihzaGFwZSkgKi8KKyAgICBDSEVDS19MSVNUX09SX1RVUExFKHNoYXBlKQorICAgIG5kaW0gPSBQeVNlcXVlbmNlX0Zhc3RfR0VUX1NJWkUoc2hhcGUpOworICAgIGlmIChuZGltID4gTkRfTUFYX05ESU0pIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAibmRpbSBtdXN0IG5vdCBleGNlZWQgJWQiLCBORF9NQVhfTkRJTSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIC8qIGxlbihzdHJpZGVzKSA9IGxlbihzaGFwZSkgKi8KKyAgICBpZiAoc3RyaWRlcykgeworICAgICAgICBDSEVDS19MSVNUX09SX1RVUExFKHN0cmlkZXMpCisgICAgICAgIGlmIChQeVNlcXVlbmNlX0Zhc3RfR0VUX1NJWkUoc3RyaWRlcykgPT0gMCkKKyAgICAgICAgICAgIHN0cmlkZXMgPSBOVUxMOworICAgICAgICBlbHNlIGlmIChmbGFncyAmIE5EX0ZPUlRSQU4pIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgIk5EX0ZPUlRSQU4gY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCBzdHJpZGVzIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChQeVNlcXVlbmNlX0Zhc3RfR0VUX1NJWkUoc3RyaWRlcykgIT0gbmRpbSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgImxlbihzaGFwZSkgIT0gbGVuKHN0cmlkZXMpIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIGl0ZW1zaXplICovCisgICAgaXRlbXNpemUgPSBnZXRfaXRlbXNpemUoZm9ybWF0KTsKKyAgICBpZiAoaXRlbXNpemUgPD0gMCkgeworICAgICAgICBpZiAoaXRlbXNpemUgPT0gMCkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgIml0ZW1zaXplIG11c3Qgbm90IGJlIHplcm8iKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBjb252ZXJ0IHNjYWxhciB0byBsaXN0ICovCisgICAgaWYgKG5kaW0gPT0gMCkgeworICAgICAgICBpdGVtcyA9IFB5X0J1aWxkVmFsdWUoIihPKSIsIGl0ZW1zKTsKKyAgICAgICAgaWYgKGl0ZW1zID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIENIRUNLX0xJU1RfT1JfVFVQTEUoaXRlbXMpCisgICAgICAgIFB5X0lOQ1JFRihpdGVtcyk7CisgICAgfQorCisgICAgLyogbnVtYmVyIG9mIGl0ZW1zICovCisgICAgbml0ZW1zID0gUHlTZXF1ZW5jZV9GYXN0X0dFVF9TSVpFKGl0ZW1zKTsKKyAgICBpZiAobml0ZW1zID09IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAiaW5pdGlhbGl6ZXIgbGlzdCBvciB0dXBsZSBtdXN0IG5vdCBiZSBlbXB0eSIpOworICAgICAgICBQeV9ERUNSRUYoaXRlbXMpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBuZGJ1ZiA9IG5kYnVmX25ldyhuaXRlbXMsIGl0ZW1zaXplLCBvZmZzZXQsIGZsYWdzKTsKKyAgICBpZiAobmRidWYgPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYoaXRlbXMpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKworICAgIGlmIChpbml0X3NpbXBsZShuZGJ1ZiwgaXRlbXMsIGZvcm1hdCwgaXRlbXNpemUpIDwgMCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICBpZiAoaW5pdF9zdHJ1Y3R1cmUobmRidWYsIHNoYXBlLCBzdHJpZGVzLCBuZGltKSA8IDApCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICBQeV9ERUNSRUYoaXRlbXMpOworICAgIHJldHVybiBuZGJ1ZjsKKworZXJyb3I6CisgICAgUHlfREVDUkVGKGl0ZW1zKTsKKyAgICBuZGJ1Zl9mcmVlKG5kYnVmKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworLyogaW5pdGlhbGl6ZSBhbmQgcHVzaCBhIG5ldyBiYXNlIG9udG8gdGhlIGxpbmtlZCBsaXN0ICovCitzdGF0aWMgaW50CituZGFycmF5X3B1c2hfYmFzZShOREFycmF5T2JqZWN0ICpuZCwgUHlPYmplY3QgKml0ZW1zLAorICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnNoYXBlLCBQeU9iamVjdCAqc3RyaWRlcywKKyAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgb2Zmc2V0LCBQeU9iamVjdCAqZm9ybWF0LCBpbnQgZmxhZ3MpCit7CisgICAgbmRidWZfdCAqbmRidWY7CisKKyAgICBuZGJ1ZiA9IGluaXRfbmRidWYoaXRlbXMsIHNoYXBlLCBzdHJpZGVzLCBvZmZzZXQsIGZvcm1hdCwgZmxhZ3MpOworICAgIGlmIChuZGJ1ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBuZGJ1Zl9wdXNoKG5kLCBuZGJ1Zik7CisgICAgcmV0dXJuIDA7Cit9CisKKyNkZWZpbmUgUHlCVUZfVU5VU0VEIDB4MTAwMDAKK3N0YXRpYyBpbnQKK25kYXJyYXlfaW5pdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQoreworICAgIE5EQXJyYXlPYmplY3QgKm5kID0gKE5EQXJyYXlPYmplY3QgKilzZWxmOworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsKKyAgICAgICAgIm9iaiIsICJzaGFwZSIsICJzdHJpZGVzIiwgIm9mZnNldCIsICJmb3JtYXQiLCAiZmxhZ3MiLCAiZ2V0YnVmIiwgTlVMTAorICAgIH07CisgICAgUHlPYmplY3QgKnYgPSBOVUxMOyAgLyogaW5pdGlhbGl6ZXI6IHNjYWxhciwgbGlzdCwgdHVwbGUgb3IgYmFzZSBvYmplY3QgKi8KKyAgICBQeU9iamVjdCAqc2hhcGUgPSBOVUxMOyAgIC8qIHNpemUgb2YgZWFjaCBkaW1lbnNpb24gKi8KKyAgICBQeU9iamVjdCAqc3RyaWRlcyA9IE5VTEw7IC8qIG51bWJlciBvZiBieXRlcyB0byB0aGUgbmV4dCBlbHQgaW4gZWFjaCBkaW0gKi8KKyAgICBQeV9zc2l6ZV90IG9mZnNldCA9IDA7ICAgICAgICAgICAgLyogYnVmZmVyIG9mZnNldCAqLworICAgIFB5T2JqZWN0ICpmb3JtYXQgPSBzaW1wbGVfZm9ybWF0OyAvKiBzdHJ1Y3QgbW9kdWxlIHNwZWNpZmllcjogIkIiICovCisgICAgaW50IGZsYWdzID0gTkRfREVGQVVMVDsgICAgICAgICAgIC8qIGJhc2UgYnVmZmVyIGFuZCBuZGFycmF5IGZsYWdzICovCisKKyAgICBpbnQgZ2V0YnVmID0gUHlCVUZfVU5VU0VEOyAvKiByZS1leHBvcnRlcjogZ2V0YnVmZmVyIHJlcXVlc3QgZmxhZ3MgKi8KKworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98T09uT2lpIiwga3dsaXN0LAorICAgICAgICAgICAgJnYsICZzaGFwZSwgJnN0cmlkZXMsICZvZmZzZXQsICZmb3JtYXQsICZmbGFncywgJmdldGJ1ZikpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIC8qIE5EQXJyYXlPYmplY3QgaXMgcmUtZXhwb3J0ZXIgKi8KKyAgICBpZiAoUHlPYmplY3RfQ2hlY2tCdWZmZXIodikgJiYgc2hhcGUgPT0gTlVMTCkgeworICAgICAgICBpZiAoc3RyaWRlcyB8fCBvZmZzZXQgfHwgZm9ybWF0ICE9IHNpbXBsZV9mb3JtYXQgfHwKKyAgICAgICAgICAgICEoZmxhZ3MgPT0gTkRfREVGQVVMVCB8fCBmbGFncyA9PSBORF9SRURJUkVDVCkpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAiY29uc3RydWN0aW9uIGZyb20gZXhwb3J0ZXIgb2JqZWN0IG9ubHkgdGFrZXMgJ29iaicsICdnZXRidWYnICIKKyAgICAgICAgICAgICAgICJhbmQgJ2ZsYWdzJyBhcmd1bWVudHMiKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGdldGJ1ZiA9IChnZXRidWYgPT0gUHlCVUZfVU5VU0VEKSA/IFB5QlVGX0ZVTExfUk8gOiBnZXRidWY7CisKKyAgICAgICAgaWYgKG5kYXJyYXlfaW5pdF9zdGF0aWNidWYodiwgbmQsIGdldGJ1ZikgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworCisgICAgICAgIGluaXRfZmxhZ3MobmQtPmhlYWQpOworICAgICAgICBuZC0+aGVhZC0+ZmxhZ3MgfD0gZmxhZ3M7CisKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyogTkRBcnJheU9iamVjdCBpcyB0aGUgb3JpZ2luYWwgYmFzZSBvYmplY3QuICovCisgICAgaWYgKGdldGJ1ZiAhPSBQeUJVRl9VTlVTRUQpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICJnZXRidWYgYXJndW1lbnQgb25seSB2YWxpZCBmb3IgY29uc3RydWN0aW9uIGZyb20gZXhwb3J0ZXIgIgorICAgICAgICAgICAgIm9iamVjdCIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChzaGFwZSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAic2hhcGUgaXMgYSByZXF1aXJlZCBhcmd1bWVudCB3aGVuIGNvbnN0cnVjdGluZyBmcm9tICIKKyAgICAgICAgICAgICJsaXN0LCB0dXBsZSBvciBzY2FsYXIiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChmbGFncyAmIE5EX1ZBUkVYUE9SVCkgeworICAgICAgICBuZC0+ZmxhZ3MgfD0gTkRfVkFSRVhQT1JUOworICAgICAgICBmbGFncyAmPSB+TkRfVkFSRVhQT1JUOworICAgIH0KKworICAgIC8qIEluaXRpYWxpemUgYW5kIHB1c2ggdGhlIGZpcnN0IGJhc2UgYnVmZmVyIG9udG8gdGhlIGxpbmtlZCBsaXN0LiAqLworICAgIHJldHVybiBuZGFycmF5X3B1c2hfYmFzZShuZCwgdiwgc2hhcGUsIHN0cmlkZXMsIG9mZnNldCwgZm9ybWF0LCBmbGFncyk7Cit9CisKKy8qIFB1c2ggYW4gYWRkaXRpb25hbCBiYXNlIG9udG8gdGhlIGxpbmtlZCBsaXN0LiAqLworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfcHVzaChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQoreworICAgIE5EQXJyYXlPYmplY3QgKm5kID0gKE5EQXJyYXlPYmplY3QgKilzZWxmOworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsKKyAgICAgICAgIml0ZW1zIiwgInNoYXBlIiwgInN0cmlkZXMiLCAib2Zmc2V0IiwgImZvcm1hdCIsICJmbGFncyIsIE5VTEwKKyAgICB9OworICAgIFB5T2JqZWN0ICppdGVtcyA9IE5VTEw7ICAgLyogaW5pdGlhbGl6ZXI6IHNjYWxhciwgbGlzdCBvciB0dXBsZSAqLworICAgIFB5T2JqZWN0ICpzaGFwZSA9IE5VTEw7ICAgLyogc2l6ZSBvZiBlYWNoIGRpbWVuc2lvbiAqLworICAgIFB5T2JqZWN0ICpzdHJpZGVzID0gTlVMTDsgLyogbnVtYmVyIG9mIGJ5dGVzIHRvIHRoZSBuZXh0IGVsdCBpbiBlYWNoIGRpbSAqLworICAgIFB5T2JqZWN0ICpmb3JtYXQgPSBzaW1wbGVfZm9ybWF0OyAgLyogc3RydWN0IG1vZHVsZSBzcGVjaWZpZXI6ICJCIiAqLworICAgIFB5X3NzaXplX3Qgb2Zmc2V0ID0gMDsgICAgICAgICAgICAgLyogYnVmZmVyIG9mZnNldCAqLworICAgIGludCBmbGFncyA9IE5EX0RFRkFVTFQ7ICAgICAgICAgICAgLyogYmFzZSBidWZmZXIgZmxhZ3MgKi8KKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJPT3xPbk9pIiwga3dsaXN0LAorICAgICAgICAgICAgJml0ZW1zLCAmc2hhcGUsICZzdHJpZGVzLCAmb2Zmc2V0LCAmZm9ybWF0LCAmZmxhZ3MpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChmbGFncyAmIE5EX1ZBUkVYUE9SVCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJORF9WQVJFWFBPUlQgZmxhZyBjYW4gb25seSBiZSB1c2VkIGR1cmluZyBvYmplY3QgY3JlYXRpb24iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChORF9JU19DT05TVU1FUihuZCkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0J1ZmZlckVycm9yLAorICAgICAgICAgICAgInN0cnVjdHVyZSBvZiByZS1leHBvcnRpbmcgb2JqZWN0IGlzIGltbXV0YWJsZSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKCEobmQtPmZsYWdzJk5EX1ZBUkVYUE9SVCkgJiYgbmQtPmhlYWQtPmV4cG9ydHMgPiAwKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJjYW5ub3QgY2hhbmdlIHN0cnVjdHVyZTogJXpkIGV4cG9ydGVkIGJ1ZmZlciVzIiwKKyAgICAgICAgICAgIG5kLT5oZWFkLT5leHBvcnRzLCBuZC0+aGVhZC0+ZXhwb3J0cz09MSA/ICIiIDogInMiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKG5kYXJyYXlfcHVzaF9iYXNlKG5kLCBpdGVtcywgc2hhcGUsIHN0cmlkZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCwgZm9ybWF0LCBmbGFncykgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworLyogUG9wIGEgYmFzZSBmcm9tIHRoZSBsaW5rZWQgbGlzdCAoaWYgcG9zc2libGUpLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfcG9wKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqZHVtbXkpCit7CisgICAgTkRBcnJheU9iamVjdCAqbmQgPSAoTkRBcnJheU9iamVjdCAqKXNlbGY7CisgICAgaWYgKE5EX0lTX0NPTlNVTUVSKG5kKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAic3RydWN0dXJlIG9mIHJlLWV4cG9ydGluZyBvYmplY3QgaXMgaW1tdXRhYmxlIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAobmQtPmhlYWQtPmV4cG9ydHMgPiAwKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJjYW5ub3QgY2hhbmdlIHN0cnVjdHVyZTogJXpkIGV4cG9ydGVkIGJ1ZmZlciVzIiwKKyAgICAgICAgICAgIG5kLT5oZWFkLT5leHBvcnRzLCBuZC0+aGVhZC0+ZXhwb3J0cz09MSA/ICIiIDogInMiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChuZC0+aGVhZC0+bmV4dCA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJsaXN0IG9ubHkgaGFzIGEgc2luZ2xlIGJhc2UiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbmRidWZfcG9wKG5kKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50CituZGFycmF5X2dldGJ1ZihOREFycmF5T2JqZWN0ICpzZWxmLCBQeV9idWZmZXIgKnZpZXcsIGludCBmbGFncykKK3sKKyAgICBuZGJ1Zl90ICpuZGJ1ZiA9IHNlbGYtPmhlYWQ7CisgICAgUHlfYnVmZmVyICpiYXNlID0gJm5kYnVmLT5iYXNlOworICAgIGludCBiYXNlZmxhZ3MgPSBuZGJ1Zi0+ZmxhZ3M7CisKKyAgICAvKiByZWRpcmVjdCBtb2RlICovCisgICAgaWYgKGJhc2UtPm9iaiAhPSBOVUxMICYmIChiYXNlZmxhZ3MmTkRfUkVESVJFQ1QpKSB7CisgICAgICAgIHJldHVybiBQeU9iamVjdF9HZXRCdWZmZXIoYmFzZS0+b2JqLCB2aWV3LCBmbGFncyk7CisgICAgfQorCisgICAgLyogc3RhcnQgd2l0aCBjb21wbGV0ZSBpbmZvcm1hdGlvbiAqLworICAgICp2aWV3ID0gKmJhc2U7CisgICAgdmlldy0+b2JqID0gTlVMTDsKKworICAgIC8qIHJlY29uc3RydWN0IGZvcm1hdCAqLworICAgIGlmICh2aWV3LT5mb3JtYXQgPT0gTlVMTCkKKyAgICAgICAgdmlldy0+Zm9ybWF0ID0gIkIiOworCisgICAgaWYgKGJhc2UtPm5kaW0gIT0gMCAmJgorICAgICAgICAoKFJFUV9TSEFQRShmbGFncykgJiYgYmFzZS0+c2hhcGUgPT0gTlVMTCkgfHwKKyAgICAgICAgIChSRVFfU1RSSURFUyhmbGFncykgJiYgYmFzZS0+c3RyaWRlcyA9PSBOVUxMKSkpIHsKKyAgICAgICAgLyogVGhlIG5kYXJyYXkgaXMgYSByZS1leHBvcnRlciB0aGF0IGhhcyBiZWVuIGNyZWF0ZWQgd2l0aG91dCBmdWxsCisgICAgICAgICAgIGluZm9ybWF0aW9uIGZvciB0ZXN0aW5nIHB1cnBvc2VzLiBJbiB0aGlzIHBhcnRpY3VsYXIgY2FzZSB0aGUKKyAgICAgICAgICAgbmRhcnJheSBpcyBub3QgYSBQRVAtMzExOCBjb21wbGlhbnQgYnVmZmVyIHByb3ZpZGVyLiAqLworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAicmUtZXhwb3J0ZXIgZG9lcyBub3QgcHJvdmlkZSBmb3JtYXQsIHNoYXBlIG9yIHN0cmlkZXMiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChiYXNlZmxhZ3MgJiBORF9HRVRCVUZfRkFJTCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAiTkRfR0VUQlVGX0ZBSUw6IGZvcmNlZCB0ZXN0IGV4Y2VwdGlvbiIpOworICAgICAgICBpZiAoYmFzZWZsYWdzICYgTkRfR0VUQlVGX1VOREVGSU5FRCkKKyAgICAgICAgICAgIHZpZXctPm9iaiA9IChQeU9iamVjdCAqKTB4MTsgLyogd3JvbmcgYnV0IHBlcm1pdHRlZCBpbiA8PSAzLjIgKi8KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChSRVFfV1JJVEFCTEUoZmxhZ3MpICYmIGJhc2UtPnJlYWRvbmx5KSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJuZGFycmF5IGlzIG5vdCB3cml0YWJsZSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmICghUkVRX0ZPUk1BVChmbGFncykpIHsKKyAgICAgICAgLyogTlVMTCBpbmRpY2F0ZXMgdGhhdCB0aGUgYnVmZmVyJ3MgZGF0YSB0eXBlIGhhcyBiZWVuIGNhc3QgdG8gJ0InLgorICAgICAgICAgICB2aWV3LT5pdGVtc2l6ZSBpcyB0aGUgX3ByZXZpb3VzXyBpdGVtc2l6ZS4gSWYgc2hhcGUgaXMgcHJlc2VudCwKKyAgICAgICAgICAgdGhlIGVxdWFsaXR5IHByb2R1Y3Qoc2hhcGUpICogaXRlbXNpemUgPSBsZW4gc3RpbGwgaG9sZHMgYXQgdGhpcworICAgICAgICAgICBwb2ludC4gVGhlIGVxdWFsaXR5IGNhbGNzaXplKGZvcm1hdCkgPSBpdGVtc2l6ZSBkb2VzIF9ub3RfIGhvbGQKKyAgICAgICAgICAgZnJvbSBoZXJlIG9uISAqLworICAgICAgICB2aWV3LT5mb3JtYXQgPSBOVUxMOworICAgIH0KKworICAgIGlmIChSRVFfQ19DT05USUdVT1VTKGZsYWdzKSAmJiAhTkRfQ19DT05USUdVT1VTKGJhc2VmbGFncykpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0J1ZmZlckVycm9yLAorICAgICAgICAgICAgIm5kYXJyYXkgaXMgbm90IEMtY29udGlndW91cyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChSRVFfRl9DT05USUdVT1VTKGZsYWdzKSAmJiAhTkRfRk9SVFJBTl9DT05USUdVT1VTKGJhc2VmbGFncykpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0J1ZmZlckVycm9yLAorICAgICAgICAgICAgIm5kYXJyYXkgaXMgbm90IEZvcnRyYW4gY29udGlndW91cyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChSRVFfQU5ZX0NPTlRJR1VPVVMoZmxhZ3MpICYmICFORF9BTllfQ09OVElHVU9VUyhiYXNlZmxhZ3MpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJuZGFycmF5IGlzIG5vdCBjb250aWd1b3VzIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKCFSRVFfSU5ESVJFQ1QoZmxhZ3MpICYmIChiYXNlZmxhZ3MgJiBORF9QSUwpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJuZGFycmF5IGNhbm5vdCBiZSByZXByZXNlbnRlZCB3aXRob3V0IHN1Ym9mZnNldHMiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoIVJFUV9TVFJJREVTKGZsYWdzKSkgeworICAgICAgICBpZiAoIU5EX0NfQ09OVElHVU9VUyhiYXNlZmxhZ3MpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAgICAgIm5kYXJyYXkgaXMgbm90IEMtY29udGlndW91cyIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHZpZXctPnN0cmlkZXMgPSBOVUxMOworICAgIH0KKyAgICBpZiAoIVJFUV9TSEFQRShmbGFncykpIHsKKyAgICAgICAgLyogUHlCVUZfU0lNUExFIG9yIFB5QlVGX1dSSVRBQkxFOiBhdCB0aGlzIHBvaW50IGJ1ZiBpcyBDLWNvbnRpZ3VvdXMsCisgICAgICAgICAgIHNvIGJhc2UtPmJ1ZiA9IG5kYnVmLT5kYXRhLiAqLworICAgICAgICBpZiAodmlldy0+Zm9ybWF0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIC8qIFB5QlVGX1NJTVBMRXxQeUJVRl9GT1JNQVQgYW5kIFB5QlVGX1dSSVRBQkxFfFB5QlVGX0ZPUk1BVCBkbworICAgICAgICAgICAgICAgbm90IG1ha2Ugc2Vuc2UuICovCisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAgICAgIm5kYXJyYXk6IGNhbm5vdCBjYXN0IHRvIHVuc2lnbmVkIGJ5dGVzIGlmIHRoZSBmb3JtYXQgZmxhZyAiCisgICAgICAgICAgICAgICAgImlzIHByZXNlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAvKiBwcm9kdWN0KHNoYXBlKSAqIGl0ZW1zaXplID0gbGVuIGFuZCBjYWxjc2l6ZShmb3JtYXQpID0gaXRlbXNpemUKKyAgICAgICAgICAgZG8gX25vdF8gaG9sZCBmcm9tIGhlcmUgb24hICovCisgICAgICAgIHZpZXctPm5kaW0gPSAxOworICAgICAgICB2aWV3LT5zaGFwZSA9IE5VTEw7CisgICAgfQorCisgICAgdmlldy0+b2JqID0gKFB5T2JqZWN0ICopc2VsZjsKKyAgICBQeV9JTkNSRUYodmlldy0+b2JqKTsKKyAgICBzZWxmLT5oZWFkLT5leHBvcnRzKys7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorbmRhcnJheV9yZWxlYXNlYnVmKE5EQXJyYXlPYmplY3QgKnNlbGYsIFB5X2J1ZmZlciAqdmlldykKK3sKKyAgICBpZiAoIU5EX0lTX0NPTlNVTUVSKHNlbGYpKSB7CisgICAgICAgIG5kYnVmX3QgKm5kYnVmID0gdmlldy0+aW50ZXJuYWw7CisgICAgICAgIGlmICgtLW5kYnVmLT5leHBvcnRzID09IDAgJiYgbmRidWYgIT0gc2VsZi0+aGVhZCkKKyAgICAgICAgICAgIG5kYnVmX2RlbGV0ZShzZWxmLCBuZGJ1Zik7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBQeUJ1ZmZlclByb2NzIG5kYXJyYXlfYXNfYnVmZmVyID0geworICAgIChnZXRidWZmZXJwcm9jKW5kYXJyYXlfZ2V0YnVmLCAgICAgICAgLyogYmZfZ2V0YnVmZmVyICovCisgICAgKHJlbGVhc2VidWZmZXJwcm9jKW5kYXJyYXlfcmVsZWFzZWJ1ZiAvKiBiZl9yZWxlYXNlYnVmZmVyICovCit9OworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhpbmcvc2xpY2luZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGNoYXIgKgorcHRyX2Zyb21faW5kZXgoUHlfYnVmZmVyICpiYXNlLCBQeV9zc2l6ZV90IGluZGV4KQoreworICAgIGNoYXIgKnB0cjsKKyAgICBQeV9zc2l6ZV90IG5pdGVtczsgLyogaXRlbXMgaW4gdGhlIGZpcnN0IGRpbWVuc2lvbiAqLworCisgICAgaWYgKGJhc2UtPnNoYXBlKQorICAgICAgICBuaXRlbXMgPSBiYXNlLT5zaGFwZVswXTsKKyAgICBlbHNlIHsKKyAgICAgICAgYXNzZXJ0KGJhc2UtPm5kaW0gPT0gMSAmJiBTSU1QTEVfRk9STUFUKGJhc2UtPmZvcm1hdCkpOworICAgICAgICBuaXRlbXMgPSBiYXNlLT5sZW47CisgICAgfQorCisgICAgaWYgKGluZGV4IDwgMCkgeworICAgICAgICBpbmRleCArPSBuaXRlbXM7CisgICAgfQorICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gbml0ZW1zKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbmRleEVycm9yLCAiaW5kZXggb3V0IG9mIGJvdW5kcyIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBwdHIgPSAoY2hhciAqKWJhc2UtPmJ1ZjsKKworICAgIGlmIChiYXNlLT5zdHJpZGVzID09IE5VTEwpCisgICAgICAgICBwdHIgKz0gYmFzZS0+aXRlbXNpemUgKiBpbmRleDsKKyAgICBlbHNlCisgICAgICAgICBwdHIgKz0gYmFzZS0+c3RyaWRlc1swXSAqIGluZGV4OworCisgICAgcHRyID0gQURKVVNUX1BUUihwdHIsIGJhc2UtPnN1Ym9mZnNldHMpOworCisgICAgcmV0dXJuIHB0cjsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfaXRlbShOREFycmF5T2JqZWN0ICpzZWxmLCBQeV9zc2l6ZV90IGluZGV4KQoreworICAgIG5kYnVmX3QgKm5kYnVmID0gc2VsZi0+aGVhZDsKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmbmRidWYtPmJhc2U7CisgICAgY2hhciAqcHRyOworCisgICAgaWYgKGJhc2UtPm5kaW0gPT0gMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiaW52YWxpZCBpbmRleGluZyBvZiBzY2FsYXIiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcHRyID0gcHRyX2Zyb21faW5kZXgoYmFzZSwgaW5kZXgpOworICAgIGlmIChwdHIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoYmFzZS0+bmRpbSA9PSAxKSB7CisgICAgICAgIHJldHVybiB1bnBhY2tfc2luZ2xlKHB0ciwgYmFzZS0+Zm9ybWF0LCBiYXNlLT5pdGVtc2l6ZSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBOREFycmF5T2JqZWN0ICpuZDsKKyAgICAgICAgUHlfYnVmZmVyICpzdWJ2aWV3OworCisgICAgICAgIG5kID0gKE5EQXJyYXlPYmplY3QgKiluZGFycmF5X25ldygmTkRBcnJheV9UeXBlLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgaWYgKG5kID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKworICAgICAgICBpZiAobmRhcnJheV9pbml0X3N0YXRpY2J1ZigoUHlPYmplY3QgKilzZWxmLCBuZCwgUHlCVUZfRlVMTF9STykgPCAwKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYobmQpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKworICAgICAgICBzdWJ2aWV3ID0gJm5kLT5zdGF0aWNidWYuYmFzZTsKKworICAgICAgICBzdWJ2aWV3LT5idWYgPSBwdHI7CisgICAgICAgIHN1YnZpZXctPmxlbiAvPSBzdWJ2aWV3LT5zaGFwZVswXTsKKworICAgICAgICBzdWJ2aWV3LT5uZGltLS07CisgICAgICAgIHN1YnZpZXctPnNoYXBlKys7CisgICAgICAgIGlmIChzdWJ2aWV3LT5zdHJpZGVzKSBzdWJ2aWV3LT5zdHJpZGVzKys7CisgICAgICAgIGlmIChzdWJ2aWV3LT5zdWJvZmZzZXRzKSBzdWJ2aWV3LT5zdWJvZmZzZXRzKys7CisKKyAgICAgICAgaW5pdF9mbGFncygmbmQtPnN0YXRpY2J1Zik7CisKKyAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKW5kOworICAgIH0KK30KKworLyoKKyAgRm9yIGVhY2ggZGltZW5zaW9uLCB3ZSBnZXQgdmFsaWQgKHN0YXJ0LCBzdG9wLCBzdGVwLCBzbGljZWxlbmd0aCkgcXVhZHJ1cGxlcworICBmcm9tIFB5U2xpY2VfR2V0SW5kaWNlc0V4KCkuCisKKyAgU2xpY2luZyBOdW1QeSBhcnJheXMKKyAgPT09PT09PT09PT09PT09PT09PT0KKworICAgIEEgcG9pbnRlciB0byBhbiBlbGVtZW50IGluIGEgTnVtUHkgYXJyYXkgaXMgZGVmaW5lZCBieToKKworICAgICAgcHRyID0gKGNoYXIgKilidWYgKyBpbmRpY2VzWzBdICogc3RyaWRlc1swXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLiArCisgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGljZXNbbmRpbS0xXSAqIHN0cmlkZXNbbmRpbS0xXQorCisgICAgQWRqdXN0IGJ1ZjoKKyAgICAtLS0tLS0tLS0tLQorICAgICAgQWRkaW5nIHN0YXJ0W25dIGZvciBlYWNoIGRpbWVuc2lvbiBlZmZlY3RpdmVseSBhZGRzIHRoZSBjb25zdGFudDoKKworICAgICAgICBjID0gc3RhcnRbMF0gKiBzdHJpZGVzWzBdICsgLi4uICsgc3RhcnRbbmRpbS0xXSAqIHN0cmlkZXNbbmRpbS0xXQorCisgICAgICBUaGVyZWZvcmUgaW5pdF9zbGljZSgpIGFkZHMgYWxsIHN0YXJ0W25dIGRpcmVjdGx5IHRvIGJ1Zi4KKworICAgIEFkanVzdCBzaGFwZToKKyAgICAtLS0tLS0tLS0tLS0tCisgICAgICBPYnZpb3VzbHkgc2hhcGVbbl0gPSBzbGljZWxlbmd0aFtuXQorCisgICAgQWRqdXN0IHN0cmlkZXM6CisgICAgLS0tLS0tLS0tLS0tLS0tCisgICAgICBJbiB0aGUgb3JpZ2luYWwgYXJyYXksIHRoZSBuZXh0IGVsZW1lbnQgaW4gYSBkaW1lbnNpb24gaXMgcmVhY2hlZAorICAgICAgYnkgYWRkaW5nIHN0cmlkZXNbbl0gdG8gdGhlIHBvaW50ZXIuIEluIHRoZSBzbGljZWQgYXJyYXksIGVsZW1lbnRzCisgICAgICBtYXkgYmUgc2tpcHBlZCwgc28gdGhlIG5leHQgZWxlbWVudCBpcyByZWFjaGVkIGJ5IGFkZGluZzoKKworICAgICAgICBzdHJpZGVzW25dICogc3RlcFtuXQorCisgIFNsaWNpbmcgUElMIGFycmF5cworICA9PT09PT09PT09PT09PT09PT0KKworICAgIExheW91dDoKKyAgICAtLS0tLS0tCisgICAgICBJbiB0aGUgZmlyc3QgKHplcm90aCkgZGltZW5zaW9uLCBQSUwgYXJyYXlzIGhhdmUgYW4gYXJyYXkgb2YgcG9pbnRlcnMKKyAgICAgIHRvIHN1Yi1hcnJheXMgb2YgbmRpbS0xLiBTdHJpZGluZyBpbiB0aGUgZmlyc3QgZGltZW5zaW9uIGlzIGRvbmUgYnkKKyAgICAgIGdldHRpbmcgdGhlIGluZGV4IG9mIHRoZSBudGggcG9pbnRlciwgZGVyZWZlcmVuY2UgaXQgYW5kIHRoZW4gYWRkIGEKKyAgICAgIHN1Ym9mZnNldCB0byBpdC4gVGhlIGFycmF5cyBwb2ludGVkIHRvIGNhbiBiZXN0IGJlIHNlZW4gYSByZWd1bGFyCisgICAgICBOdW1QeSBhcnJheXMuCisKKyAgICBBZGp1c3QgYnVmOgorICAgIC0tLS0tLS0tLS0tCisgICAgICBJbiB0aGUgb3JpZ2luYWwgYXJyYXksIGJ1ZiBwb2ludHMgdG8gYSBsb2NhdGlvbiAodXN1YWxseSB0aGUgc3RhcnQpCisgICAgICBpbiB0aGUgYXJyYXkgb2YgcG9pbnRlcnMuIEZvciB0aGUgc2xpY2VkIGFycmF5LCBzdGFydFswXSBjYW4gYmUKKyAgICAgIGFkZGVkIHRvIGJ1ZiBpbiB0aGUgc2FtZSBtYW5uZXIgYXMgZm9yIE51bVB5IGFycmF5cy4KKworICAgIEFkanVzdCBzdWJvZmZzZXRzOgorICAgIC0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgRHVlIHRvIHRoZSBkZXJlZmVyZW5jaW5nIHN0ZXAgaW4gdGhlIGFkZHJlc3Npbmcgc2NoZW1lLCBpdCBpcyBub3QKKyAgICAgIHBvc3NpYmxlIHRvIGFkanVzdCBidWYgZm9yIGhpZ2hlciBkaW1lbnNpb25zLiBSZWNhbGwgdGhhdCB0aGUKKyAgICAgIHN1Yi1hcnJheXMgcG9pbnRlZCB0byBhcmUgcmVndWxhciBOdW1QeSBhcnJheXMsIHNvIGZvciBlYWNoIG9mCisgICAgICB0aG9zZSBhcnJheXMgYWRkaW5nIHN0YXJ0W25dIGVmZmVjdGl2ZWx5IGFkZHMgdGhlIGNvbnN0YW50OgorCisgICAgICAgIGMgPSBzdGFydFsxXSAqIHN0cmlkZXNbMV0gKyAuLi4gKyBzdGFydFtuZGltLTFdICogc3RyaWRlc1tuZGltLTFdCisKKyAgICAgIFRoaXMgY29uc3RhbnQgaXMgYWRkZWQgdG8gc3Vib2Zmc2V0c1swXS4gc3Vib2Zmc2V0c1swXSBpbiB0dXJuIGlzCisgICAgICBhZGRlZCB0byBlYWNoIHBvaW50ZXIgcmlnaHQgYWZ0ZXIgZGVyZWZlcmVuY2luZy4KKworICAgIEFkanVzdCBzaGFwZSBhbmQgc3RyaWRlczoKKyAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICBTaGFwZSBhbmQgc3RyaWRlcyBhcmUgbm90IGluZmx1ZW5jZWQgYnkgdGhlIGRlcmVmZXJlbmNpbmcgc3RlcCwgc28KKyAgICAgIHRoZXkgYXJlIGFkanVzdGVkIGluIHRoZSBzYW1lIG1hbm5lciBhcyBmb3IgTnVtUHkgYXJyYXlzLgorCisgIE11bHRpcGxlIGxldmVscyBvZiBzdWJvZmZzZXRzCisgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKKyAgICAgIEZvciBhIGNvbnN0cnVjdCBsaWtlIGFuIGFycmF5IG9mIHBvaW50ZXJzIHRvIGFycmF5IG9mIHBvaW50ZXJzIHRvCisgICAgICBzdWItYXJyYXlzIG9mIG5kaW0tMjoKKworICAgICAgICBzdWJvZmZzZXRzWzBdID0gc3RhcnRbMV0gKiBzdHJpZGVzWzFdCisgICAgICAgIHN1Ym9mZnNldHNbMV0gPSBzdGFydFsyXSAqIHN0cmlkZXNbMl0gKyAuLi4KKyovCitzdGF0aWMgaW50Citpbml0X3NsaWNlKFB5X2J1ZmZlciAqYmFzZSwgUHlPYmplY3QgKmtleSwgaW50IGRpbSkKK3sKKyAgICBQeV9zc2l6ZV90IHN0YXJ0LCBzdG9wLCBzdGVwLCBzbGljZWxlbmd0aDsKKworICAgIGlmIChQeVNsaWNlX0dldEluZGljZXNFeChrZXksIGJhc2UtPnNoYXBlW2RpbV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGFydCwgJnN0b3AsICZzdGVwLCAmc2xpY2VsZW5ndGgpIDwgMCkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisKKyAgICBpZiAoYmFzZS0+c3Vib2Zmc2V0cyA9PSBOVUxMIHx8IGRpbSA9PSAwKSB7CisgICAgYWRqdXN0X2J1ZjoKKyAgICAgICAgYmFzZS0+YnVmID0gKGNoYXIgKiliYXNlLT5idWYgKyBiYXNlLT5zdHJpZGVzW2RpbV0gKiBzdGFydDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5X3NzaXplX3QgbiA9IGRpbS0xOworICAgICAgICB3aGlsZSAobiA+PSAwICYmIGJhc2UtPnN1Ym9mZnNldHNbbl0gPCAwKQorICAgICAgICAgICAgbi0tOworICAgICAgICBpZiAobiA8IDApCisgICAgICAgICAgICBnb3RvIGFkanVzdF9idWY7IC8qIGFsbCBzdWJvZmZzZXRzIGFyZSBuZWdhdGl2ZSAqLworICAgICAgICBiYXNlLT5zdWJvZmZzZXRzW25dID0gYmFzZS0+c3Vib2Zmc2V0c1tuXSArIGJhc2UtPnN0cmlkZXNbZGltXSAqIHN0YXJ0OworICAgIH0KKyAgICBiYXNlLT5zaGFwZVtkaW1dID0gc2xpY2VsZW5ndGg7CisgICAgYmFzZS0+c3RyaWRlc1tkaW1dID0gYmFzZS0+c3RyaWRlc1tkaW1dICogc3RlcDsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Citjb3B5X3N0cnVjdHVyZShQeV9idWZmZXIgKmJhc2UpCit7CisgICAgUHlfc3NpemVfdCAqc2hhcGUgPSBOVUxMLCAqc3RyaWRlcyA9IE5VTEwsICpzdWJvZmZzZXRzID0gTlVMTDsKKyAgICBQeV9zc2l6ZV90IGk7CisKKyAgICBzaGFwZSA9IFB5TWVtX01hbGxvYyhiYXNlLT5uZGltICogKHNpemVvZiAqc2hhcGUpKTsKKyAgICBzdHJpZGVzID0gUHlNZW1fTWFsbG9jKGJhc2UtPm5kaW0gKiAoc2l6ZW9mICpzdHJpZGVzKSk7CisgICAgaWYgKHNoYXBlID09IE5VTEwgfHwgc3RyaWRlcyA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycl9ub21lbTsKKworICAgIHN1Ym9mZnNldHMgPSBOVUxMOworICAgIGlmIChiYXNlLT5zdWJvZmZzZXRzKSB7CisgICAgICAgIHN1Ym9mZnNldHMgPSBQeU1lbV9NYWxsb2MoYmFzZS0+bmRpbSAqIChzaXplb2YgKnN1Ym9mZnNldHMpKTsKKyAgICAgICAgaWYgKHN1Ym9mZnNldHMgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZXJyX25vbWVtOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBiYXNlLT5uZGltOyBpKyspIHsKKyAgICAgICAgc2hhcGVbaV0gPSBiYXNlLT5zaGFwZVtpXTsKKyAgICAgICAgc3RyaWRlc1tpXSA9IGJhc2UtPnN0cmlkZXNbaV07CisgICAgICAgIGlmIChzdWJvZmZzZXRzKQorICAgICAgICAgICAgc3Vib2Zmc2V0c1tpXSA9IGJhc2UtPnN1Ym9mZnNldHNbaV07CisgICAgfQorCisgICAgYmFzZS0+c2hhcGUgPSBzaGFwZTsKKyAgICBiYXNlLT5zdHJpZGVzID0gc3RyaWRlczsKKyAgICBiYXNlLT5zdWJvZmZzZXRzID0gc3Vib2Zmc2V0czsKKworICAgIHJldHVybiAwOworCitlcnJfbm9tZW06CisgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICBQeU1lbV9YRnJlZShzaGFwZSk7CisgICAgUHlNZW1fWEZyZWUoc3RyaWRlcyk7CisgICAgUHlNZW1fWEZyZWUoc3Vib2Zmc2V0cyk7CisgICAgcmV0dXJuIC0xOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbmRhcnJheV9zdWJzY3JpcHQoTkRBcnJheU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmtleSkKK3sKKyAgICBOREFycmF5T2JqZWN0ICpuZDsKKyAgICBuZGJ1Zl90ICpuZGJ1ZjsKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmc2VsZi0+aGVhZC0+YmFzZTsKKworICAgIGlmIChiYXNlLT5uZGltID09IDApIHsKKyAgICAgICAgaWYgKFB5VHVwbGVfQ2hlY2soa2V5KSAmJiBQeVR1cGxlX0dFVF9TSVpFKGtleSkgPT0gMCkgeworICAgICAgICAgICAgcmV0dXJuIHVucGFja19zaW5nbGUoYmFzZS0+YnVmLCBiYXNlLT5mb3JtYXQsIGJhc2UtPml0ZW1zaXplKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChrZXkgPT0gUHlfRWxsaXBzaXMpIHsKKyAgICAgICAgICAgIFB5X0lOQ1JFRihzZWxmKTsKKyAgICAgICAgICAgIHJldHVybiAoUHlPYmplY3QgKilzZWxmOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImludmFsaWQgaW5kZXhpbmcgb2Ygc2NhbGFyIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoUHlJbmRleF9DaGVjayhrZXkpKSB7CisgICAgICAgIFB5X3NzaXplX3QgaW5kZXggPSBQeUxvbmdfQXNTc2l6ZV90KGtleSk7CisgICAgICAgIGlmIChpbmRleCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiBuZGFycmF5X2l0ZW0oc2VsZiwgaW5kZXgpOworICAgIH0KKworICAgIG5kID0gKE5EQXJyYXlPYmplY3QgKiluZGFycmF5X25ldygmTkRBcnJheV9UeXBlLCBOVUxMLCBOVUxMKTsKKyAgICBpZiAobmQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvKiBuZXcgbmRhcnJheSBpcyBhIGNvbnN1bWVyICovCisgICAgaWYgKG5kYXJyYXlfaW5pdF9zdGF0aWNidWYoKFB5T2JqZWN0ICopc2VsZiwgbmQsIFB5QlVGX0ZVTExfUk8pIDwgMCkgeworICAgICAgICBQeV9ERUNSRUYobmQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiBjb3B5IHNoYXBlLCBzdHJpZGVzIGFuZCBzdWJvZmZzZXRzICovCisgICAgbmRidWYgPSBuZC0+aGVhZDsKKyAgICBiYXNlID0gJm5kYnVmLT5iYXNlOworICAgIGlmIChjb3B5X3N0cnVjdHVyZShiYXNlKSA8IDApIHsKKyAgICAgICAgUHlfREVDUkVGKG5kKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIG5kYnVmLT5mbGFncyB8PSBORF9PV05fQVJSQVlTOworCisgICAgaWYgKFB5U2xpY2VfQ2hlY2soa2V5KSkgeworICAgICAgICAvKiBvbmUtZGltZW5zaW9uYWwgc2xpY2UgKi8KKyAgICAgICAgaWYgKGluaXRfc2xpY2UoYmFzZSwga2V5LCAwKSA8IDApCisgICAgICAgICAgICBnb3RvIGVycl9vY2N1cnJlZDsKKyAgICB9CisgICAgZWxzZSBpZiBQeVR1cGxlX0NoZWNrKGtleSkgeworICAgICAgICAvKiBtdWx0aS1kaW1lbnNpb25hbCBzbGljZSAqLworICAgICAgICBQeU9iamVjdCAqdHVwbGUgPSBrZXk7CisgICAgICAgIFB5X3NzaXplX3QgaSwgbjsKKworICAgICAgICBuID0gUHlUdXBsZV9HRVRfU0laRSh0dXBsZSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAgICAgICAgICAgIGtleSA9IFB5VHVwbGVfR0VUX0lURU0odHVwbGUsIGkpOworICAgICAgICAgICAgaWYgKCFQeVNsaWNlX0NoZWNrKGtleSkpCisgICAgICAgICAgICAgICAgZ290byB0eXBlX2Vycm9yOworICAgICAgICAgICAgaWYgKGluaXRfc2xpY2UoYmFzZSwga2V5LCAoaW50KWkpIDwgMCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycl9vY2N1cnJlZDsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgZ290byB0eXBlX2Vycm9yOworICAgIH0KKworICAgIGluaXRfbGVuKGJhc2UpOworICAgIGluaXRfZmxhZ3MobmRidWYpOworCisgICAgcmV0dXJuIChQeU9iamVjdCAqKW5kOworCisKK3R5cGVfZXJyb3I6CisgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgImNhbm5vdCBpbmRleCBtZW1vcnkgdXNpbmcgXCIlLjIwMHNcIiIsCisgICAgICAgIGtleS0+b2JfdHlwZS0+dHBfbmFtZSk7CitlcnJfb2NjdXJyZWQ6CisgICAgUHlfREVDUkVGKG5kKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworCitzdGF0aWMgaW50CituZGFycmF5X2Fzc19zdWJzY3JpcHQoTkRBcnJheU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmtleSwgUHlPYmplY3QgKnZhbHVlKQoreworICAgIE5EQXJyYXlPYmplY3QgKm5kOworICAgIFB5X2J1ZmZlciAqZGVzdCA9ICZzZWxmLT5oZWFkLT5iYXNlOworICAgIFB5X2J1ZmZlciBzcmM7CisgICAgY2hhciAqcHRyOworICAgIFB5X3NzaXplX3QgaW5kZXg7CisgICAgaW50IHJldCA9IC0xOworCisgICAgaWYgKGRlc3QtPnJlYWRvbmx5KSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJuZGFycmF5IGlzIG5vdCB3cml0YWJsZSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJuZGFycmF5IGRhdGEgY2Fubm90IGJlIGRlbGV0ZWQiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoZGVzdC0+bmRpbSA9PSAwKSB7CisgICAgICAgIGlmIChrZXkgPT0gUHlfRWxsaXBzaXMgfHwKKyAgICAgICAgICAgIChQeVR1cGxlX0NoZWNrKGtleSkgJiYgUHlUdXBsZV9HRVRfU0laRShrZXkpID09IDApKSB7CisgICAgICAgICAgICBwdHIgPSAoY2hhciAqKWRlc3QtPmJ1ZjsKKyAgICAgICAgICAgIHJldHVybiBwYWNrX3NpbmdsZShwdHIsIHZhbHVlLCBkZXN0LT5mb3JtYXQsIGRlc3QtPml0ZW1zaXplKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJpbnZhbGlkIGluZGV4aW5nIG9mIHNjYWxhciIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorICAgIGlmIChkZXN0LT5uZGltID09IDEgJiYgUHlJbmRleF9DaGVjayhrZXkpKSB7CisgICAgICAgIC8qIHJ2YWx1ZSBtdXN0IGJlIGEgc2luZ2xlIGl0ZW0gKi8KKyAgICAgICAgaW5kZXggPSBQeUxvbmdfQXNTc2l6ZV90KGtleSk7CisgICAgICAgIGlmIChpbmRleCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHB0ciA9IHB0cl9mcm9tX2luZGV4KGRlc3QsIGluZGV4KTsKKyAgICAgICAgICAgIGlmIChwdHIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHBhY2tfc2luZ2xlKHB0ciwgdmFsdWUsIGRlc3QtPmZvcm1hdCwgZGVzdC0+aXRlbXNpemUpOworICAgIH0KKworICAgIC8qIHJ2YWx1ZSBtdXN0IGJlIGFuIGV4cG9ydGVyICovCisgICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcih2YWx1ZSwgJnNyYywgUHlCVUZfRlVMTF9STykgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIG5kID0gKE5EQXJyYXlPYmplY3QgKiluZGFycmF5X3N1YnNjcmlwdChzZWxmLCBrZXkpOworICAgIGlmIChuZCAhPSBOVUxMKSB7CisgICAgICAgIGRlc3QgPSAmbmQtPmhlYWQtPmJhc2U7CisgICAgICAgIHJldCA9IGNvcHlfYnVmZmVyKGRlc3QsICZzcmMpOworICAgICAgICBQeV9ERUNSRUYobmQpOworICAgIH0KKworICAgIFB5QnVmZmVyX1JlbGVhc2UoJnNyYyk7CisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3NsaWNlX2luZGljZXMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpyZXQsICprZXksICp0bXA7CisgICAgUHlfc3NpemVfdCBzWzRdOyAvKiBzdGFydCwgc3RvcCwgc3RlcCwgc2xpY2VsZW5ndGggKi8KKyAgICBQeV9zc2l6ZV90IGksIGxlbjsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT24iLCAma2V5LCAmbGVuKSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKCFQeVNsaWNlX0NoZWNrKGtleSkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICJmaXJzdCBhcmd1bWVudCBtdXN0IGJlIGEgc2xpY2Ugb2JqZWN0Iik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoUHlTbGljZV9HZXRJbmRpY2VzRXgoa2V5LCBsZW4sICZzWzBdLCAmc1sxXSwgJnNbMl0sICZzWzNdKSA8IDApIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0ID0gUHlUdXBsZV9OZXcoNCk7CisgICAgaWYgKHJldCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKyAgICAgICAgdG1wID0gUHlMb25nX0Zyb21Tc2l6ZV90KHNbaV0pOworICAgICAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKHJldCwgaSwgdG1wKTsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0OworCitlcnJvcjoKKyAgICBQeV9ERUNSRUYocmV0KTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworCitzdGF0aWMgUHlNYXBwaW5nTWV0aG9kcyBuZGFycmF5X2FzX21hcHBpbmcgPSB7CisgICAgTlVMTCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtcF9sZW5ndGggKi8KKyAgICAoYmluYXJ5ZnVuYyluZGFycmF5X3N1YnNjcmlwdCwgICAgICAgIC8qIG1wX3N1YnNjcmlwdCAqLworICAgIChvYmpvYmphcmdwcm9jKW5kYXJyYXlfYXNzX3N1YnNjcmlwdCAgLyogbXBfYXNzX3N1YnNjcmlwdCAqLworfTsKKworc3RhdGljIFB5U2VxdWVuY2VNZXRob2RzIG5kYXJyYXlfYXNfc2VxdWVuY2UgPSB7CisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzcV9sZW5ndGggKi8KKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNxX2NvbmNhdCAqLworICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3FfcmVwZWF0ICovCisgICAgICAgIChzc2l6ZWFyZ2Z1bmMpbmRhcnJheV9pdGVtLCAgICAgICAvKiBzcV9pdGVtICovCit9OworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0dGVycyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIFB5T2JqZWN0ICoKK3NzaXplX2FycmF5X2FzX3R1cGxlKFB5X3NzaXplX3QgKmFycmF5LCBQeV9zc2l6ZV90IGxlbikKK3sKKyAgICBQeU9iamVjdCAqdHVwbGUsICp4OworICAgIFB5X3NzaXplX3QgaTsKKworICAgIGlmIChhcnJheSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gUHlUdXBsZV9OZXcoMCk7CisKKyAgICB0dXBsZSA9IFB5VHVwbGVfTmV3KGxlbik7CisgICAgaWYgKHR1cGxlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgIHggPSBQeUxvbmdfRnJvbVNzaXplX3QoYXJyYXlbaV0pOworICAgICAgICBpZiAoeCA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYodHVwbGUpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgUHlUdXBsZV9TRVRfSVRFTSh0dXBsZSwgaSwgeCk7CisgICAgfQorCisgICAgcmV0dXJuIHR1cGxlOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbmRhcnJheV9nZXRfZmxhZ3MoTkRBcnJheU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKHNlbGYtPmhlYWQtPmZsYWdzKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfZ2V0X29mZnNldChOREFycmF5T2JqZWN0ICpzZWxmLCB2b2lkICpjbG9zdXJlKQoreworICAgIG5kYnVmX3QgKm5kYnVmID0gc2VsZi0+aGVhZDsKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KG5kYnVmLT5vZmZzZXQpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbmRhcnJheV9nZXRfb2JqKE5EQXJyYXlPYmplY3QgKnNlbGYsIHZvaWQgKmNsb3N1cmUpCit7CisgICAgUHlfYnVmZmVyICpiYXNlID0gJnNlbGYtPmhlYWQtPmJhc2U7CisKKyAgICBpZiAoYmFzZS0+b2JqID09IE5VTEwpIHsgCisgICAgICAgIFB5X1JFVFVSTl9OT05FOworICAgIH0KKyAgICBQeV9JTkNSRUYoYmFzZS0+b2JqKTsKKyAgICByZXR1cm4gYmFzZS0+b2JqOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbmRhcnJheV9nZXRfbmJ5dGVzKE5EQXJyYXlPYmplY3QgKnNlbGYsIHZvaWQgKmNsb3N1cmUpCit7CisgICAgUHlfYnVmZmVyICpiYXNlID0gJnNlbGYtPmhlYWQtPmJhc2U7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChiYXNlLT5sZW4pOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbmRhcnJheV9nZXRfcmVhZG9ubHkoTkRBcnJheU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmc2VsZi0+aGVhZC0+YmFzZTsKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKGJhc2UtPnJlYWRvbmx5KTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfZ2V0X2l0ZW1zaXplKE5EQXJyYXlPYmplY3QgKnNlbGYsIHZvaWQgKmNsb3N1cmUpCit7CisgICAgUHlfYnVmZmVyICpiYXNlID0gJnNlbGYtPmhlYWQtPmJhc2U7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChiYXNlLT5pdGVtc2l6ZSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCituZGFycmF5X2dldF9mb3JtYXQoTkRBcnJheU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmc2VsZi0+aGVhZC0+YmFzZTsKKyAgICBjaGFyICpmbXQgPSBiYXNlLT5mb3JtYXQgPyBiYXNlLT5mb3JtYXQgOiAiIjsKKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmcoZm10KTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfZ2V0X25kaW0oTkRBcnJheU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmc2VsZi0+aGVhZC0+YmFzZTsKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KGJhc2UtPm5kaW0pOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbmRhcnJheV9nZXRfc2hhcGUoTkRBcnJheU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmc2VsZi0+aGVhZC0+YmFzZTsKKyAgICByZXR1cm4gc3NpemVfYXJyYXlfYXNfdHVwbGUoYmFzZS0+c2hhcGUsIGJhc2UtPm5kaW0pOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbmRhcnJheV9nZXRfc3RyaWRlcyhOREFycmF5T2JqZWN0ICpzZWxmLCB2b2lkICpjbG9zdXJlKQoreworICAgIFB5X2J1ZmZlciAqYmFzZSA9ICZzZWxmLT5oZWFkLT5iYXNlOworICAgIHJldHVybiBzc2l6ZV9hcnJheV9hc190dXBsZShiYXNlLT5zdHJpZGVzLCBiYXNlLT5uZGltKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfZ2V0X3N1Ym9mZnNldHMoTkRBcnJheU9iamVjdCAqc2VsZiwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmc2VsZi0+aGVhZC0+YmFzZTsKKyAgICByZXR1cm4gc3NpemVfYXJyYXlfYXNfdHVwbGUoYmFzZS0+c3Vib2Zmc2V0cywgYmFzZS0+bmRpbSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCituZGFycmF5X2NfY29udGlnKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqZHVtbXkpCit7CisgICAgTkRBcnJheU9iamVjdCAqbmQgPSAoTkRBcnJheU9iamVjdCAqKXNlbGY7CisgICAgaW50IHJldCA9IFB5QnVmZmVyX0lzQ29udGlndW91cygmbmQtPmhlYWQtPmJhc2UsICdDJyk7CisKKyAgICBpZiAocmV0ICE9IE5EX0NfQ09OVElHVU9VUyhuZC0+aGVhZC0+ZmxhZ3MpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsCisgICAgICAgICAgICAicmVzdWx0cyBmcm9tIFB5QnVmZmVyX0lzQ29udGlndW91cygpIGFuZCBmbGFncyBkaWZmZXIiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcocmV0KTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfZm9ydHJhbl9jb250aWcoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSkKK3sKKyAgICBOREFycmF5T2JqZWN0ICpuZCA9IChOREFycmF5T2JqZWN0ICopc2VsZjsKKyAgICBpbnQgcmV0ID0gUHlCdWZmZXJfSXNDb250aWd1b3VzKCZuZC0+aGVhZC0+YmFzZSwgJ0YnKTsKKworICAgIGlmIChyZXQgIT0gTkRfRk9SVFJBTl9DT05USUdVT1VTKG5kLT5oZWFkLT5mbGFncykpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICJyZXN1bHRzIGZyb20gUHlCdWZmZXJfSXNDb250aWd1b3VzKCkgYW5kIGZsYWdzIGRpZmZlciIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZyhyZXQpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbmRhcnJheV9jb250aWcoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSkKK3sKKyAgICBOREFycmF5T2JqZWN0ICpuZCA9IChOREFycmF5T2JqZWN0ICopc2VsZjsKKyAgICBpbnQgcmV0ID0gUHlCdWZmZXJfSXNDb250aWd1b3VzKCZuZC0+aGVhZC0+YmFzZSwgJ0EnKTsKKworICAgIGlmIChyZXQgIT0gTkRfQU5ZX0NPTlRJR1VPVVMobmQtPmhlYWQtPmZsYWdzKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgInJlc3VsdHMgZnJvbSBQeUJ1ZmZlcl9Jc0NvbnRpZ3VvdXMoKSBhbmQgZmxhZ3MgZGlmZmVyIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKHJldCk7Cit9CisKKworc3RhdGljIFB5R2V0U2V0RGVmIG5kYXJyYXlfZ2V0c2V0IFtdID0KK3sKKyAgLyogbmRidWYgKi8KKyAgeyAiZmxhZ3MiLCAgICAgICAgKGdldHRlciluZGFycmF5X2dldF9mbGFncywgICAgICBOVUxMLCBOVUxMLCBOVUxMfSwKKyAgeyAib2Zmc2V0IiwgICAgICAgKGdldHRlciluZGFycmF5X2dldF9vZmZzZXQsICAgICBOVUxMLCBOVUxMLCBOVUxMfSwKKyAgLyogbmRidWYuYmFzZSAqLworICB7ICJvYmoiLCAgICAgICAgICAoZ2V0dGVyKW5kYXJyYXlfZ2V0X29iaiwgICAgICAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJuYnl0ZXMiLCAgICAgICAoZ2V0dGVyKW5kYXJyYXlfZ2V0X25ieXRlcywgICAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJyZWFkb25seSIsICAgICAoZ2V0dGVyKW5kYXJyYXlfZ2V0X3JlYWRvbmx5LCAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJpdGVtc2l6ZSIsICAgICAoZ2V0dGVyKW5kYXJyYXlfZ2V0X2l0ZW1zaXplLCAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJmb3JtYXQiLCAgICAgICAoZ2V0dGVyKW5kYXJyYXlfZ2V0X2Zvcm1hdCwgICAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJuZGltIiwgICAgICAgICAoZ2V0dGVyKW5kYXJyYXlfZ2V0X25kaW0sICAgICAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJzaGFwZSIsICAgICAgICAoZ2V0dGVyKW5kYXJyYXlfZ2V0X3NoYXBlLCAgICAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJzdHJpZGVzIiwgICAgICAoZ2V0dGVyKW5kYXJyYXlfZ2V0X3N0cmlkZXMsICAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJzdWJvZmZzZXRzIiwgICAoZ2V0dGVyKW5kYXJyYXlfZ2V0X3N1Ym9mZnNldHMsIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJjX2NvbnRpZ3VvdXMiLCAoZ2V0dGVyKW5kYXJyYXlfY19jb250aWcsICAgICAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJmX2NvbnRpZ3VvdXMiLCAoZ2V0dGVyKW5kYXJyYXlfZm9ydHJhbl9jb250aWcsIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7ICJjb250aWd1b3VzIiwgICAoZ2V0dGVyKW5kYXJyYXlfY29udGlnLCAgICAgICAgIE5VTEwsIE5VTEwsIE5VTEx9LAorICB7TlVMTH0KK307CisKK3N0YXRpYyBQeU9iamVjdCAqCituZGFycmF5X3RvbGlzdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmR1bW15KQoreworICAgIHJldHVybiBuZGFycmF5X2FzX2xpc3QoKE5EQXJyYXlPYmplY3QgKilzZWxmKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfdG9ieXRlcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmR1bW15KQoreworICAgIG5kYnVmX3QgKm5kYnVmID0gKChOREFycmF5T2JqZWN0ICopc2VsZiktPmhlYWQ7CisgICAgUHlfYnVmZmVyICpzcmMgPSAmbmRidWYtPmJhc2U7CisgICAgUHlfYnVmZmVyIGRlc3Q7CisgICAgUHlPYmplY3QgKnJldCA9IE5VTEw7CisgICAgY2hhciAqbWVtOworCisgICAgaWYgKE5EX0NfQ09OVElHVU9VUyhuZGJ1Zi0+ZmxhZ3MpKQorICAgICAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShzcmMtPmJ1Ziwgc3JjLT5sZW4pOworCisgICAgYXNzZXJ0KHNyYy0+c2hhcGUgIT0gTlVMTCk7CisgICAgYXNzZXJ0KHNyYy0+c3RyaWRlcyAhPSBOVUxMKTsKKyAgICBhc3NlcnQoc3JjLT5uZGltID4gMCk7CisKKyAgICBtZW0gPSBQeU1lbV9NYWxsb2Moc3JjLT5sZW4pOworICAgIGlmIChtZW0gPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBkZXN0ID0gKnNyYzsKKyAgICBkZXN0LmJ1ZiA9IG1lbTsKKyAgICBkZXN0LnN1Ym9mZnNldHMgPSBOVUxMOworICAgIGRlc3Quc3RyaWRlcyA9IHN0cmlkZXNfZnJvbV9zaGFwZShuZGJ1ZiwgMCk7CisgICAgaWYgKGRlc3Quc3RyaWRlcyA9PSBOVUxMKQorICAgICAgICBnb3RvIG91dDsKKyAgICBpZiAoY29weV9idWZmZXIoJmRlc3QsIHNyYykgPCAwKQorICAgICAgICBnb3RvIG91dDsKKworICAgIHJldCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUobWVtLCBzcmMtPmxlbik7CisKK291dDoKKyAgICBQeU1lbV9YRnJlZShkZXN0LnN0cmlkZXMpOworICAgIFB5TWVtX0ZyZWUobWVtKTsKKyAgICByZXR1cm4gcmV0OworfQorCisvKiBhZGQgcmVkdW5kYW50IChuZWdhdGl2ZSkgc3Vib2Zmc2V0cyBmb3IgdGVzdGluZyAqLworc3RhdGljIFB5T2JqZWN0ICoKK25kYXJyYXlfYWRkX3N1Ym9mZnNldHMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSkKK3sKKyAgICBOREFycmF5T2JqZWN0ICpuZCA9IChOREFycmF5T2JqZWN0ICopc2VsZjsKKyAgICBQeV9idWZmZXIgKmJhc2UgPSAmbmQtPmhlYWQtPmJhc2U7CisgICAgUHlfc3NpemVfdCBpOworCisgICAgaWYgKGJhc2UtPnN1Ym9mZnNldHMgIT0gTlVMTCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgImNhbm5vdCBhZGQgc3Vib2Zmc2V0cyB0byBQSUwtc3R5bGUgYXJyYXkiKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoYmFzZS0+c3RyaWRlcyA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAiY2Fubm90IGFkZCBzdWJvZmZzZXRzIHRvIGFycmF5IHdpdGhvdXQgc3RyaWRlcyIpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgYmFzZS0+c3Vib2Zmc2V0cyA9IFB5TWVtX01hbGxvYyhiYXNlLT5uZGltICogKHNpemVvZiAqYmFzZS0+c3Vib2Zmc2V0cykpOworICAgIGlmIChiYXNlLT5zdWJvZmZzZXRzID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IGJhc2UtPm5kaW07IGkrKykKKyAgICAgICAgYmFzZS0+c3Vib2Zmc2V0c1tpXSA9IC0xOworCisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKKy8qIFRlc3QgUHlNZW1vcnlWaWV3X0Zyb21CdWZmZXIoKTogcmV0dXJuIGEgbWVtb3J5dmlldyBmcm9tIGEgc3RhdGljIGJ1ZmZlci4KKyAgIE9idmlvdXNseSB0aGlzIGlzIGZyYWdpbGUgYW5kIG9ubHkgb25lIHN1Y2ggdmlldyBtYXkgYmUgYWN0aXZlIGF0IGFueQorICAgdGltZS4gTmV2ZXIgdXNlIGFueXRoaW5nIGxpa2UgdGhpcyBpbiByZWFsIGNvZGUhICovCitzdGF0aWMgY2hhciAqaW5mb2J1ZiA9IE5VTEw7CitzdGF0aWMgUHlPYmplY3QgKgorbmRhcnJheV9tZW1vcnl2aWV3X2Zyb21fYnVmZmVyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqZHVtbXkpCit7CisgICAgY29uc3QgTkRBcnJheU9iamVjdCAqbmQgPSAoTkRBcnJheU9iamVjdCAqKXNlbGY7CisgICAgY29uc3QgUHlfYnVmZmVyICp2aWV3ID0gJm5kLT5oZWFkLT5iYXNlOworICAgIGNvbnN0IG5kYnVmX3QgKm5kYnVmOworICAgIHN0YXRpYyBjaGFyIGZvcm1hdFtORF9NQVhfTkRJTSsxXTsKKyAgICBzdGF0aWMgUHlfc3NpemVfdCBzaGFwZVtORF9NQVhfTkRJTV07CisgICAgc3RhdGljIFB5X3NzaXplX3Qgc3RyaWRlc1tORF9NQVhfTkRJTV07CisgICAgc3RhdGljIFB5X3NzaXplX3Qgc3Vib2Zmc2V0c1tORF9NQVhfTkRJTV07CisgICAgc3RhdGljIFB5X2J1ZmZlciBpbmZvOworICAgIGNoYXIgKnA7CisKKyAgICBpZiAoIU5EX0lTX0NPTlNVTUVSKG5kKSkKKyAgICAgICAgbmRidWYgPSBuZC0+aGVhZDsgLyogc2VsZiBpcyBuZGFycmF5L29yaWdpbmFsIGV4cG9ydGVyICovCisgICAgZWxzZSBpZiAoTkRBcnJheV9DaGVjayh2aWV3LT5vYmopICYmICFORF9JU19DT05TVU1FUih2aWV3LT5vYmopKQorICAgICAgICAvKiBzZWxmIGlzIG5kYXJyYXkgYW5kIGNvbnN1bWVyIGZyb20gbmRhcnJheS9vcmlnaW5hbCBleHBvcnRlciAqLworICAgICAgICBuZGJ1ZiA9ICgoTkRBcnJheU9iamVjdCAqKXZpZXctPm9iaiktPmhlYWQ7CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICJtZW1vcnl2aWV3X2Zyb21fYnVmZmVyKCk6IG5kYXJyYXkgbXVzdCBiZSBvcmlnaW5hbCBleHBvcnRlciBvciAiCisgICAgICAgICJjb25zdW1lciBmcm9tIG5kYXJyYXkvb3JpZ2luYWwgZXhwb3J0ZXIiKTsKKyAgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGluZm8gPSAqdmlldzsKKyAgICBwID0gUHlNZW1fUmVhbGxvYyhpbmZvYnVmLCBuZGJ1Zi0+bGVuKTsKKyAgICBpZiAocCA9PSBOVUxMKSB7CisgICAgICAgIFB5TWVtX0ZyZWUoaW5mb2J1Zik7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIGluZm9idWYgPSBOVUxMOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGluZm9idWYgPSBwOworICAgIH0KKyAgICAvKiBjb3B5IHRoZSBjb21wbGV0ZSByYXcgZGF0YSAqLworICAgIG1lbWNweShpbmZvYnVmLCBuZGJ1Zi0+ZGF0YSwgbmRidWYtPmxlbik7CisgICAgaW5mby5idWYgPSBpbmZvYnVmICsgKChjaGFyICopdmlldy0+YnVmIC0gbmRidWYtPmRhdGEpOworCisgICAgaWYgKHZpZXctPmZvcm1hdCkgeworICAgICAgICBpZiAoc3RybGVuKHZpZXctPmZvcm1hdCkgPiBORF9NQVhfTkRJTSkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAibWVtb3J5dmlld19mcm9tX2J1ZmZlcjogZm9ybWF0IGlzIGxpbWl0ZWQgdG8gJWQgY2hhcmFjdGVycyIsCisgICAgICAgICAgICAgICAgTkRfTUFYX05ESU0pOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHN0cmNweShmb3JtYXQsIHZpZXctPmZvcm1hdCk7CisgICAgICAgIGluZm8uZm9ybWF0ID0gZm9ybWF0OworICAgIH0KKyAgICBpZiAodmlldy0+bmRpbSA+IE5EX01BWF9ORElNKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAibWVtb3J5dmlld19mcm9tX2J1ZmZlcjogbmRpbSBpcyBsaW1pdGVkIHRvICVkIiwgTkRfTUFYX05ESU0pOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmICh2aWV3LT5zaGFwZSkgeworICAgICAgICBtZW1jcHkoc2hhcGUsIHZpZXctPnNoYXBlLCB2aWV3LT5uZGltICogc2l6ZW9mKFB5X3NzaXplX3QpKTsKKyAgICAgICAgaW5mby5zaGFwZSA9IHNoYXBlOworICAgIH0KKyAgICBpZiAodmlldy0+c3RyaWRlcykgeworICAgICAgICBtZW1jcHkoc3RyaWRlcywgdmlldy0+c3RyaWRlcywgdmlldy0+bmRpbSAqIHNpemVvZihQeV9zc2l6ZV90KSk7CisgICAgICAgIGluZm8uc3RyaWRlcyA9IHN0cmlkZXM7CisgICAgfQorICAgIGlmICh2aWV3LT5zdWJvZmZzZXRzKSB7CisgICAgICAgIG1lbWNweShzdWJvZmZzZXRzLCB2aWV3LT5zdWJvZmZzZXRzLCB2aWV3LT5uZGltICogc2l6ZW9mKFB5X3NzaXplX3QpKTsKKyAgICAgICAgaW5mby5zdWJvZmZzZXRzID0gc3Vib2Zmc2V0czsKKyAgICB9CisKKyAgICByZXR1cm4gUHlNZW1vcnlWaWV3X0Zyb21CdWZmZXIoJmluZm8pOworfQorCisvKiBHZXQgYSBzaW5nbGUgaXRlbSBmcm9tIGJ1Zm9iaiBhdCB0aGUgbG9jYXRpb24gc3BlY2lmaWVkIGJ5IHNlcS4KKyAgIHNlcSBpcyBhIGxpc3Qgb3IgdHVwbGUgb2YgaW5kaWNlcy4gVGhlIHB1cnBvc2Ugb2YgdGhpcyBmdW5jdGlvbgorICAgaXMgdG8gY2hlY2sgb3RoZXIgZnVuY3Rpb25zIGFnYWluc3QgUHlCdWZmZXJfR2V0UG9pbnRlcigpLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK2dldF9wb2ludGVyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeU9iamVjdCAqcmV0ID0gTlVMTCwgKmJ1Zm9iaiwgKnNlcTsKKyAgICBQeV9idWZmZXIgdmlldzsKKyAgICBQeV9zc2l6ZV90IGluZGljZXNbTkRfTUFYX05ESU1dOworICAgIFB5X3NzaXplX3QgaTsKKyAgICB2b2lkICpwdHI7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk9PIiwgJmJ1Zm9iaiwgJnNlcSkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgQ0hFQ0tfTElTVF9PUl9UVVBMRShzZXEpOworICAgIGlmIChQeU9iamVjdF9HZXRCdWZmZXIoYnVmb2JqLCAmdmlldywgUHlCVUZfRlVMTF9STykgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmICh2aWV3Lm5kaW0gPiBORF9NQVhfTkRJTSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJnZXRfcG9pbnRlcigpOiBuZGltID4gJWQiLCBORF9NQVhfTkRJTSk7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKyAgICBpZiAoUHlTZXF1ZW5jZV9GYXN0X0dFVF9TSVpFKHNlcSkgIT0gdmlldy5uZGltKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgImdldF9wb2ludGVyKCk6IGxlbihpbmRpY2VzKSAhPSBuZGltIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCB2aWV3Lm5kaW07IGkrKykgeworICAgICAgICBQeU9iamVjdCAqeCA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfSVRFTShzZXEsIGkpOworICAgICAgICBpbmRpY2VzW2ldID0gUHlMb25nX0FzU3NpemVfdCh4KTsKKyAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgaWYgKGluZGljZXNbaV0gPCAwIHx8IGluZGljZXNbaV0gPj0gdmlldy5zaGFwZVtpXSkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgImdldF9wb2ludGVyKCk6IGludmFsaWQgaW5kZXggJXpkIGF0IHBvc2l0aW9uICV6ZCIsCisgICAgICAgICAgICAgICAgaW5kaWNlc1tpXSwgaSk7CisgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgfQorICAgIH0KKworICAgIHB0ciA9IFB5QnVmZmVyX0dldFBvaW50ZXIoJnZpZXcsIGluZGljZXMpOworICAgIHJldCA9IHVucGFja19zaW5nbGUocHRyLCB2aWV3LmZvcm1hdCwgdmlldy5pdGVtc2l6ZSk7CisKK291dDoKKyAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZ2aWV3KTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZ2V0X3NpemVvZl92b2lkX3AoUHlPYmplY3QgKnNlbGYpCit7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU2l6ZV90KHNpemVvZih2b2lkICopKTsKK30KKworc3RhdGljIGNoYXIKK2dldF9hc2NpaV9vcmRlcihQeU9iamVjdCAqb3JkZXIpCit7CisgICAgUHlPYmplY3QgKmFzY2lpX29yZGVyOworICAgIGNoYXIgb3JkOworCisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sob3JkZXIpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAib3JkZXIgbXVzdCBiZSBhIHN0cmluZyIpOworICAgICAgICByZXR1cm4gQ0hBUl9NQVg7CisgICAgfQorCisgICAgYXNjaWlfb3JkZXIgPSBQeVVuaWNvZGVfQXNBU0NJSVN0cmluZyhvcmRlcik7CisgICAgaWYgKGFzY2lpX29yZGVyID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIENIQVJfTUFYOworICAgIH0KKworICAgIG9yZCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGFzY2lpX29yZGVyKVswXTsKKyAgICBQeV9ERUNSRUYoYXNjaWlfb3JkZXIpOworICAgIHJldHVybiBvcmQ7Cit9CisKKy8qIEdldCBhIGNvbnRpZ3VvdXMgbWVtb3J5dmlldy4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitnZXRfY29udGlndW91cyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKm9iajsKKyAgICBQeU9iamVjdCAqYnVmZmVydHlwZTsKKyAgICBQeU9iamVjdCAqb3JkZXI7CisgICAgbG9uZyB0eXBlOworICAgIGNoYXIgb3JkOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPT08iLCAmb2JqLCAmYnVmZmVydHlwZSwgJm9yZGVyKSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoIVB5TG9uZ19DaGVjayhidWZmZXJ0eXBlKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgImJ1ZmZlcnR5cGUgbXVzdCBiZSBQeUJVRl9SRUFEIG9yIFB5QlVGX1dSSVRFIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICB0eXBlID0gUHlMb25nX0FzTG9uZyhidWZmZXJ0eXBlKTsKKyAgICBpZiAodHlwZSA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG9yZCA9IGdldF9hc2NpaV9vcmRlcihvcmRlcik7CisgICAgaWYgKG9yZCA9PSBDSEFSX01BWCkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gUHlNZW1vcnlWaWV3X0dldENvbnRpZ3VvdXMob2JqLCAoaW50KXR5cGUsIG9yZCk7Cit9CisKK3N0YXRpYyBpbnQKK2ZtdGNtcChjb25zdCBjaGFyICpmbXQxLCBjb25zdCBjaGFyICpmbXQyKQoreworICAgIGlmIChmbXQxID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIGZtdDIgPT0gTlVMTCB8fCBzdHJjbXAoZm10MiwgIkIiKSA9PSAwOworICAgIH0KKyAgICBpZiAoZm10MiA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBmbXQxID09IE5VTEwgfHwgc3RyY21wKGZtdDEsICJCIikgPT0gMDsKKyAgICB9CisgICAgcmV0dXJuIHN0cmNtcChmbXQxLCBmbXQyKSA9PSAwOworfQorCitzdGF0aWMgaW50CithcnJheWNtcChjb25zdCBQeV9zc2l6ZV90ICphMSwgY29uc3QgUHlfc3NpemVfdCAqYTIsIGNvbnN0IFB5X3NzaXplX3QgKnNoYXBlLAorICAgICAgICAgUHlfc3NpemVfdCBuZGltKQoreworICAgIFB5X3NzaXplX3QgaTsKKworICAgIGlmIChuZGltID09IDEgJiYgc2hhcGUgJiYgc2hhcGVbMF0gPT0gMSkgeworICAgICAgICAvKiBUaGlzIGlzIGZvciBjb21wYXJpbmcgc3RyaWRlczogRm9yIGV4YW1wbGUsIHRoZSBhcnJheQorICAgICAgICAgICBbMTc1XSwgc2hhcGU9WzFdLCBzdHJpZGVzPVstNV0gaXMgY29uc2lkZXJlZCBjb250aWd1b3VzLiAqLworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbmRpbTsgaSsrKSB7CisgICAgICAgIGlmIChhMVtpXSAhPSBhMltpXSkgeworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gMTsKK30KKworLyogQ29tcGFyZSB0d28gY29udGlndW91cyBidWZmZXJzIGZvciBwaHlzaWNhbCBlcXVhbGl0eS4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCitjbXBfY29udGlnKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeU9iamVjdCAqYjEsICpiMjsgLyogYnVmZmVyIG9iamVjdHMgKi8KKyAgICBQeV9idWZmZXIgdjEsIHYyOworICAgIFB5T2JqZWN0ICpyZXQ7CisgICAgaW50IGVxdWFsID0gMDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT08iLCAmYjEsICZiMikpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcihiMSwgJnYxLCBQeUJVRl9GVUxMX1JPKSA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICJjbXBfY29udGlnOiBmaXJzdCBhcmd1bWVudCBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGJ1ZmZlciAiCisgICAgICAgICAgICAicHJvdG9jb2wiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChQeU9iamVjdF9HZXRCdWZmZXIoYjIsICZ2MiwgUHlCVUZfRlVMTF9STykgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAiY21wX2NvbnRpZzogc2Vjb25kIGFyZ3VtZW50IGRvZXMgbm90IGltcGxlbWVudCB0aGUgYnVmZmVyICIKKyAgICAgICAgICAgICJwcm90b2NvbCIpOworICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZ2MSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmICghKFB5QnVmZmVyX0lzQ29udGlndW91cygmdjEsICdDJykmJlB5QnVmZmVyX0lzQ29udGlndW91cygmdjIsICdDJykpICYmCisgICAgICAgICEoUHlCdWZmZXJfSXNDb250aWd1b3VzKCZ2MSwgJ0YnKSYmUHlCdWZmZXJfSXNDb250aWd1b3VzKCZ2MiwgJ0YnKSkpIHsKKyAgICAgICAgZ290byByZXN1bHQ7CisgICAgfQorCisgICAgLyogcmVhZG9ubHkgbWF5IGRpZmZlciBpZiBjcmVhdGVkIGZyb20gbm9uLWNvbnRpZ3VvdXMgKi8KKyAgICBpZiAodjEubGVuICE9IHYyLmxlbiB8fAorICAgICAgICB2MS5pdGVtc2l6ZSAhPSB2Mi5pdGVtc2l6ZSB8fAorICAgICAgICB2MS5uZGltICE9IHYyLm5kaW0gfHwKKyAgICAgICAgIWZtdGNtcCh2MS5mb3JtYXQsIHYyLmZvcm1hdCkgfHwKKyAgICAgICAgISF2MS5zaGFwZSAhPSAhIXYyLnNoYXBlIHx8CisgICAgICAgICEhdjEuc3RyaWRlcyAhPSAhIXYyLnN0cmlkZXMgfHwKKyAgICAgICAgISF2MS5zdWJvZmZzZXRzICE9ICEhdjIuc3Vib2Zmc2V0cykgeworICAgICAgICBnb3RvIHJlc3VsdDsKKyAgICB9CisKKyAgICBpZiAoKHYxLnNoYXBlICYmICFhcnJheWNtcCh2MS5zaGFwZSwgdjIuc2hhcGUsIE5VTEwsIHYxLm5kaW0pKSB8fAorICAgICAgICAodjEuc3RyaWRlcyAmJiAhYXJyYXljbXAodjEuc3RyaWRlcywgdjIuc3RyaWRlcywgdjEuc2hhcGUsIHYxLm5kaW0pKSB8fAorICAgICAgICAodjEuc3Vib2Zmc2V0cyAmJiAhYXJyYXljbXAodjEuc3Vib2Zmc2V0cywgdjIuc3Vib2Zmc2V0cywgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxLm5kaW0pKSkgeworICAgICAgICBnb3RvIHJlc3VsdDsKKyAgICB9CisKKyAgICBpZiAobWVtY21wKChjaGFyICopdjEuYnVmLCAoY2hhciAqKXYyLmJ1ZiwgdjEubGVuKSAhPSAwKSB7CisgICAgICAgIGdvdG8gcmVzdWx0OworICAgIH0KKworICAgIGVxdWFsID0gMTsKKworcmVzdWx0OgorICAgIFB5QnVmZmVyX1JlbGVhc2UoJnYxKTsKKyAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZ2Mik7CisKKyAgICByZXQgPSBlcXVhbCA/IFB5X1RydWUgOiBQeV9GYWxzZTsgCisgICAgUHlfSU5DUkVGKHJldCk7CisgICAgcmV0dXJuIHJldDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2lzX2NvbnRpZ3VvdXMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpvYmo7CisgICAgUHlPYmplY3QgKm9yZGVyOworICAgIFB5T2JqZWN0ICpyZXQgPSBOVUxMOworICAgIFB5X2J1ZmZlciB2aWV3OworICAgIGNoYXIgb3JkOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPTyIsICZvYmosICZvcmRlcikpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcihvYmosICZ2aWV3LCBQeUJVRl9GVUxMX1JPKSA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICJpc19jb250aWd1b3VzOiBvYmplY3QgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBidWZmZXIgIgorICAgICAgICAgICAgInByb3RvY29sIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG9yZCA9IGdldF9hc2NpaV9vcmRlcihvcmRlcik7CisgICAgaWYgKG9yZCA9PSBDSEFSX01BWCkgeworICAgICAgICBnb3RvIHJlbGVhc2U7CisgICAgfQorCisgICAgcmV0ID0gUHlCdWZmZXJfSXNDb250aWd1b3VzKCZ2aWV3LCBvcmQpID8gUHlfVHJ1ZSA6IFB5X0ZhbHNlOworICAgIFB5X0lOQ1JFRihyZXQpOworCityZWxlYXNlOgorICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZpZXcpOworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBQeV9oYXNoX3QKK25kYXJyYXlfaGFzaChQeU9iamVjdCAqc2VsZikKK3sKKyAgICBjb25zdCBOREFycmF5T2JqZWN0ICpuZCA9IChOREFycmF5T2JqZWN0ICopc2VsZjsKKyAgICBjb25zdCBQeV9idWZmZXIgKnZpZXcgPSAmbmQtPmhlYWQtPmJhc2U7CisgICAgUHlPYmplY3QgKmJ5dGVzOworICAgIFB5X2hhc2hfdCBoYXNoOworCisgICAgaWYgKCF2aWV3LT5yZWFkb25seSkgeworICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgImNhbm5vdCBoYXNoIHdyaXRhYmxlIG5kYXJyYXkgb2JqZWN0Iik7CisgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmICh2aWV3LT5vYmogIT0gTlVMTCAmJiBQeU9iamVjdF9IYXNoKHZpZXctPm9iaikgPT0gLTEpIHsKKyAgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBieXRlcyA9IG5kYXJyYXlfdG9ieXRlcyhzZWxmLCBOVUxMKTsKKyAgICBpZiAoYnl0ZXMgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgaGFzaCA9IFB5T2JqZWN0X0hhc2goYnl0ZXMpOworICAgIFB5X0RFQ1JFRihieXRlcyk7CisgICAgcmV0dXJuIGhhc2g7Cit9CisKKworc3RhdGljIFB5TWV0aG9kRGVmIG5kYXJyYXlfbWV0aG9kcyBbXSA9Cit7CisgICAgeyAidG9saXN0IiwgbmRhcnJheV90b2xpc3QsIE1FVEhfTk9BUkdTLCBOVUxMIH0sCisgICAgeyAidG9ieXRlcyIsIG5kYXJyYXlfdG9ieXRlcywgTUVUSF9OT0FSR1MsIE5VTEwgfSwKKyAgICB7ICJwdXNoIiwgKFB5Q0Z1bmN0aW9uKW5kYXJyYXlfcHVzaCwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIE5VTEwgfSwKKyAgICB7ICJwb3AiLCBuZGFycmF5X3BvcCwgTUVUSF9OT0FSR1MsIE5VTEwgfSwKKyAgICB7ICJhZGRfc3Vib2Zmc2V0cyIsIG5kYXJyYXlfYWRkX3N1Ym9mZnNldHMsIE1FVEhfTk9BUkdTLCBOVUxMIH0sCisgICAgeyAibWVtb3J5dmlld19mcm9tX2J1ZmZlciIsIG5kYXJyYXlfbWVtb3J5dmlld19mcm9tX2J1ZmZlciwgTUVUSF9OT0FSR1MsIE5VTEwgfSwKKyAgICB7TlVMTH0KK307CisKK3N0YXRpYyBQeVR5cGVPYmplY3QgTkRBcnJheV9UeXBlID0geworICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQorICAgICJuZGFycmF5IiwgICAgICAgICAgICAgICAgICAgLyogTmFtZSBvZiB0aGlzIHR5cGUgKi8KKyAgICBzaXplb2YoTkRBcnJheU9iamVjdCksICAgICAgIC8qIEJhc2ljIG9iamVjdCBzaXplICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJdGVtIHNpemUgZm9yIHZhcm9iamVjdCAqLworICAgIChkZXN0cnVjdG9yKW5kYXJyYXlfZGVhbGxvYywgLyogdHBfZGVhbGxvYyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NvbXBhcmUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JlcHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLworICAgICZuZGFycmF5X2FzX3NlcXVlbmNlLCAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KKyAgICAmbmRhcnJheV9hc19tYXBwaW5nLCAgICAgICAgIC8qIHRwX2FzX21hcHBpbmcgKi8KKyAgICAoaGFzaGZ1bmMpbmRhcnJheV9oYXNoLCAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NhbGwgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLworICAgIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyLCAgICAgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHJvICovCisgICAgJm5kYXJyYXlfYXNfYnVmZmVyLCAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQsICAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLworICAgIG5kYXJyYXlfbWV0aG9kcywgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLworICAgIG5kYXJyYXlfZ2V0c2V0LCAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3NldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLworICAgIG5kYXJyYXlfaW5pdCwgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KKyAgICBuZGFycmF5X25ldywgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLworfTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXRpY0FycmF5IE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgUHlUeXBlT2JqZWN0IFN0YXRpY0FycmF5X1R5cGU7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgaW50IGxlZ2FjeV9tb2RlOyAvKiBpZiB0cnVlLCB1c2UgdGhlIHZpZXcub2JqPT1OVUxMIGhhY2sgKi8KK30gU3RhdGljQXJyYXlPYmplY3Q7CisKK3N0YXRpYyBjaGFyIHN0YXRpY19tZW1bMTJdID0gezAsMSwyLDMsNCw1LDYsNyw4LDksMTAsMTF9Oworc3RhdGljIFB5X3NzaXplX3Qgc3RhdGljX3NoYXBlWzFdID0gezEyfTsKK3N0YXRpYyBQeV9zc2l6ZV90IHN0YXRpY19zdHJpZGVzWzFdID0gezF9Oworc3RhdGljIFB5X2J1ZmZlciBzdGF0aWNfYnVmZmVyID0geworICAgIHN0YXRpY19tZW0sICAgICAvKiBidWYgKi8KKyAgICBOVUxMLCAgICAgICAgICAgLyogb2JqICovCisgICAgMTIsICAgICAgICAgICAgIC8qIGxlbiAqLworICAgIDEsICAgICAgICAgICAgICAvKiBpdGVtc2l6ZSAqLworICAgIDEsICAgICAgICAgICAgICAvKiByZWFkb25seSAqLworICAgIDEsICAgICAgICAgICAgICAvKiBuZGltICovCisgICAgIkIiLCAgICAgICAgICAgIC8qIGZvcm1hdCAqLworICAgIHN0YXRpY19zaGFwZSwgICAvKiBzaGFwZSAqLworICAgIHN0YXRpY19zdHJpZGVzLCAvKiBzdHJpZGVzICovCisgICAgTlVMTCwgICAgICAgICAgIC8qIHN1Ym9mZnNldHMgKi8KKyAgICBOVUxMICAgICAgICAgICAgLyogaW50ZXJuYWwgKi8KK307CisKK3N0YXRpYyBQeU9iamVjdCAqCitzdGF0aWNhcnJheV9uZXcoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgcmV0dXJuIChQeU9iamVjdCAqKVB5T2JqZWN0X05ldyhTdGF0aWNBcnJheU9iamVjdCwgJlN0YXRpY0FycmF5X1R5cGUpOworfQorCitzdGF0aWMgaW50CitzdGF0aWNhcnJheV9pbml0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgU3RhdGljQXJyYXlPYmplY3QgKmEgPSAoU3RhdGljQXJyYXlPYmplY3QgKilzZWxmOworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsKKyAgICAgICAgImxlZ2FjeV9tb2RlIiwgTlVMTAorICAgIH07CisgICAgUHlPYmplY3QgKmxlZ2FjeV9tb2RlID0gUHlfRmFsc2U7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE8iLCBrd2xpc3QsICZsZWdhY3lfbW9kZSkpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGEtPmxlZ2FjeV9tb2RlID0gKGxlZ2FjeV9tb2RlICE9IFB5X0ZhbHNlKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK3N0YXRpY2FycmF5X2RlYWxsb2MoU3RhdGljQXJyYXlPYmplY3QgKnNlbGYpCit7CisgICAgUHlPYmplY3RfRGVsKHNlbGYpOworfQorCisvKiBSZXR1cm4gYSBidWZmZXIgZm9yIGEgUHlCVUZfRlVMTF9STyByZXF1ZXN0LiBGbGFncyBhcmUgbm90IGNoZWNrZWQsCisgICB3aGljaCBtYWtlcyB0aGlzIG9iamVjdCBhIG5vbi1jb21wbGlhbnQgZXhwb3J0ZXIhICovCitzdGF0aWMgaW50CitzdGF0aWNhcnJheV9nZXRidWYoU3RhdGljQXJyYXlPYmplY3QgKnNlbGYsIFB5X2J1ZmZlciAqdmlldywgaW50IGZsYWdzKQoreworICAgICp2aWV3ID0gc3RhdGljX2J1ZmZlcjsKKworICAgIGlmIChzZWxmLT5sZWdhY3lfbW9kZSkgeworICAgICAgICB2aWV3LT5vYmogPSBOVUxMOyAvKiBEb24ndCB1c2UgdGhpcyBpbiBuZXcgY29kZS4gKi8KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHZpZXctPm9iaiA9IChQeU9iamVjdCAqKXNlbGY7CisgICAgICAgIFB5X0lOQ1JFRih2aWV3LT5vYmopOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUHlCdWZmZXJQcm9jcyBzdGF0aWNhcnJheV9hc19idWZmZXIgPSB7CisgICAgKGdldGJ1ZmZlcnByb2Mpc3RhdGljYXJyYXlfZ2V0YnVmLCAvKiBiZl9nZXRidWZmZXIgKi8KKyAgICBOVUxMLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGJmX3JlbGVhc2VidWZmZXIgKi8KK307CisKK3N0YXRpYyBQeVR5cGVPYmplY3QgU3RhdGljQXJyYXlfVHlwZSA9IHsKKyAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKKyAgICAic3RhdGljYXJyYXkiLCAgICAgICAgICAgICAgICAgICAvKiBOYW1lIG9mIHRoaXMgdHlwZSAqLworICAgIHNpemVvZihTdGF0aWNBcnJheU9iamVjdCksICAgICAgIC8qIEJhc2ljIG9iamVjdCBzaXplICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogSXRlbSBzaXplIGZvciB2YXJvYmplY3QgKi8KKyAgICAoZGVzdHJ1Y3RvcilzdGF0aWNhcnJheV9kZWFsbG9jLCAvKiB0cF9kZWFsbG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NvbXBhcmUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NhbGwgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHJvICovCisgICAgJnN0YXRpY2FycmF5X2FzX2J1ZmZlciwgICAgICAgICAgLyogdHBfYXNfYnVmZmVyICovCisgICAgUHlfVFBGTEFHU19ERUZBVUxULCAgICAgICAgICAgICAgLyogdHBfZmxhZ3MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9zZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCisgICAgc3RhdGljYXJyYXlfaW5pdCwgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FsbG9jICovCisgICAgc3RhdGljYXJyYXlfbmV3LCAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCit9OworCisKK3N0YXRpYyBzdHJ1Y3QgUHlNZXRob2REZWYgX3Rlc3RidWZmZXJfZnVuY3Rpb25zW10gPSB7CisgICAgeyJzbGljZV9pbmRpY2VzIiwgc2xpY2VfaW5kaWNlcywgTUVUSF9WQVJBUkdTLCBOVUxMfSwKKyAgICB7ImdldF9wb2ludGVyIiwgZ2V0X3BvaW50ZXIsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAgeyJnZXRfc2l6ZW9mX3ZvaWRfcCIsIChQeUNGdW5jdGlvbilnZXRfc2l6ZW9mX3ZvaWRfcCwgTUVUSF9OT0FSR1MsIE5VTEx9LAorICAgIHsiZ2V0X2NvbnRpZ3VvdXMiLCBnZXRfY29udGlndW91cywgTUVUSF9WQVJBUkdTLCBOVUxMfSwKKyAgICB7ImlzX2NvbnRpZ3VvdXMiLCBpc19jb250aWd1b3VzLCBNRVRIX1ZBUkFSR1MsIE5VTEx9LAorICAgIHsiY21wX2NvbnRpZyIsIGNtcF9jb250aWcsIE1FVEhfVkFSQVJHUywgTlVMTH0sCisgICAge05VTEwsIE5VTEx9Cit9OworCitzdGF0aWMgc3RydWN0IFB5TW9kdWxlRGVmIF90ZXN0YnVmZmVybW9kdWxlID0geworICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKKyAgICAiX3Rlc3RidWZmZXIiLAorICAgIE5VTEwsCisgICAgLTEsCisgICAgX3Rlc3RidWZmZXJfZnVuY3Rpb25zLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwKK307CisKKworUHlNT0RJTklUX0ZVTkMKK1B5SW5pdF9fdGVzdGJ1ZmZlcih2b2lkKQoreworICAgIFB5T2JqZWN0ICptOworCisgICAgbSA9IFB5TW9kdWxlX0NyZWF0ZSgmX3Rlc3RidWZmZXJtb2R1bGUpOworICAgIGlmIChtID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfVFlQRSgmTkRBcnJheV9UeXBlKSA9ICZQeVR5cGVfVHlwZTsKKyAgICBQeV9JTkNSRUYoJk5EQXJyYXlfVHlwZSk7CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJuZGFycmF5IiwgKFB5T2JqZWN0ICopJk5EQXJyYXlfVHlwZSk7CisKKyAgICBQeV9UWVBFKCZTdGF0aWNBcnJheV9UeXBlKSA9ICZQeVR5cGVfVHlwZTsKKyAgICBQeV9JTkNSRUYoJlN0YXRpY0FycmF5X1R5cGUpOworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAic3RhdGljYXJyYXkiLCAoUHlPYmplY3QgKikmU3RhdGljQXJyYXlfVHlwZSk7CisKKyAgICBzdHJ1Y3Rtb2R1bGUgPSBQeUltcG9ydF9JbXBvcnRNb2R1bGUoInN0cnVjdCIpOworICAgIGlmIChzdHJ1Y3Rtb2R1bGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBTdHJ1Y3QgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHN0cnVjdG1vZHVsZSwgIlN0cnVjdCIpOworICAgIGNhbGNzaXplID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhzdHJ1Y3Rtb2R1bGUsICJjYWxjc2l6ZSIpOworICAgIGlmIChTdHJ1Y3QgPT0gTlVMTCB8fCBjYWxjc2l6ZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHNpbXBsZV9mb3JtYXQgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhzaW1wbGVfZm10KTsKKyAgICBpZiAoc2ltcGxlX2Zvcm1hdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJORF9NQVhfTkRJTSIsIE5EX01BWF9ORElNKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfVkFSRVhQT1JUIiwgTkRfVkFSRVhQT1JUKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfV1JJVEFCTEUiLCBORF9XUklUQUJMRSk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk5EX0ZPUlRSQU4iLCBORF9GT1JUUkFOKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfU0NBTEFSIiwgTkRfU0NBTEFSKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfUElMIiwgTkRfUElMKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfR0VUQlVGX0ZBSUwiLCBORF9HRVRCVUZfRkFJTCk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk5EX0dFVEJVRl9VTkRFRklORUQiLCBORF9HRVRCVUZfVU5ERUZJTkVEKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTkRfUkVESVJFQ1QiLCBORF9SRURJUkVDVCk7CisKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfU0lNUExFIiwgUHlCVUZfU0lNUExFKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfV1JJVEFCTEUiLCBQeUJVRl9XUklUQUJMRSk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX0ZPUk1BVCIsIFB5QlVGX0ZPUk1BVCk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX05EIiwgUHlCVUZfTkQpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9TVFJJREVTIiwgUHlCVUZfU1RSSURFUyk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX0lORElSRUNUIiwgUHlCVUZfSU5ESVJFQ1QpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9DX0NPTlRJR1VPVVMiLCBQeUJVRl9DX0NPTlRJR1VPVVMpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9GX0NPTlRJR1VPVVMiLCBQeUJVRl9GX0NPTlRJR1VPVVMpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9BTllfQ09OVElHVU9VUyIsIFB5QlVGX0FOWV9DT05USUdVT1VTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfRlVMTCIsIFB5QlVGX0ZVTEwpOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9GVUxMX1JPIiwgUHlCVUZfRlVMTF9STyk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX1JFQ09SRFMiLCBQeUJVRl9SRUNPUkRTKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfUkVDT1JEU19STyIsIFB5QlVGX1JFQ09SRFNfUk8pOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9TVFJJREVEIiwgUHlCVUZfU1RSSURFRCk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX1NUUklERURfUk8iLCBQeUJVRl9TVFJJREVEX1JPKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfQ09OVElHIiwgUHlCVUZfQ09OVElHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlCVUZfQ09OVElHX1JPIiwgUHlCVUZfQ09OVElHX1JPKTsKKworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUJVRl9SRUFEIiwgUHlCVUZfUkVBRCk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlB5QlVGX1dSSVRFIiwgUHlCVUZfV1JJVEUpOworCisgICAgcmV0dXJuIG07Cit9CisKKworCmRpZmYgLS1naXQgYS9Nb2R1bGVzL190ZXN0Y2FwaW1vZHVsZS5jIGIvTW9kdWxlcy9fdGVzdGNhcGltb2R1bGUuYwppbmRleCA5NGI2ZTY3Li5jYTUyNmJkIDEwMDY0NAotLS0gYS9Nb2R1bGVzL190ZXN0Y2FwaW1vZHVsZS5jCisrKyBiL01vZHVsZXMvX3Rlc3RjYXBpbW9kdWxlLmMKQEAgLTIyLDE0ICsyMiw3IEBACiBzdGF0aWMgUHlPYmplY3QgKgogcmFpc2VUZXN0RXJyb3IoY29uc3QgY2hhciogdGVzdF9uYW1lLCBjb25zdCBjaGFyKiBtc2cpCiB7Ci0gICAgY2hhciBidWZbMjA0OF07Ci0KLSAgICBpZiAoc3RybGVuKHRlc3RfbmFtZSkgKyBzdHJsZW4obXNnKSA+IHNpemVvZihidWYpIC0gNTApCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhUZXN0RXJyb3IsICJpbnRlcm5hbCBlcnJvciBtc2cgdG9vIGxhcmdlIik7Ci0gICAgZWxzZSB7Ci0gICAgICAgIFB5T1Nfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiVzOiAlcyIsIHRlc3RfbmFtZSwgbXNnKTsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFRlc3RFcnJvciwgYnVmKTsKLSAgICB9CisgICAgUHlFcnJfRm9ybWF0KFRlc3RFcnJvciwgIiVzOiAlcyIsIHRlc3RfbmFtZSwgbXNnKTsKICAgICByZXR1cm4gTlVMTDsKIH0KIApAQCAtNDMsMTEgKzM2LDkgQEAKIHNpemVvZl9lcnJvcihjb25zdCBjaGFyKiBmYXRuYW1lLCBjb25zdCBjaGFyKiB0eXBuYW1lLAogICAgIGludCBleHBlY3RlZCwgaW50IGdvdCkKIHsKLSAgICBjaGFyIGJ1ZlsxMDI0XTsKLSAgICBQeU9TX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksCi0gICAgICAgICIlLjIwMHMgI2RlZmluZSA9PSAlZCBidXQgc2l6ZW9mKCUuMjAwcykgPT0gJWQiLAorICAgIFB5RXJyX0Zvcm1hdChUZXN0RXJyb3IsCisgICAgICAgICIlcyAjZGVmaW5lID09ICVkIGJ1dCBzaXplb2YoJXMpID09ICVkIiwKICAgICAgICAgZmF0bmFtZSwgZXhwZWN0ZWQsIHR5cG5hbWUsIGdvdCk7Ci0gICAgUHlFcnJfU2V0U3RyaW5nKFRlc3RFcnJvciwgYnVmKTsKICAgICByZXR1cm4gKFB5T2JqZWN0KilOVUxMOwogfQogCkBAIC0yODQsOTUgKzI3NSw2IEBACiB9CiAKIAotLyogSXNzdWUgIzczODU6IENoZWNrIHRoYXQgbWVtb3J5dmlldygpIGRvZXMgbm90IGNyYXNoCi0gKiAgIHdoZW4gYmZfZ2V0YnVmZmVyIHJldHVybnMgYW4gZXJyb3IKLSAqLwotCi1zdGF0aWMgaW50Ci1icm9rZW5fYnVmZmVyX2dldGJ1ZmZlcihQeU9iamVjdCAqc2VsZiwgUHlfYnVmZmVyICp2aWV3LCBpbnQgZmxhZ3MpCi17Ci0gICAgUHlFcnJfU2V0U3RyaW5nKAotICAgICAgICBUZXN0RXJyb3IsCi0gICAgICAgICJ0ZXN0X2Jyb2tlbl9tZW1vcnl2aWV3OiBleHBlY3RlZCBlcnJvciBpbiBiZl9nZXRidWZmZXIiKTsKLSAgICByZXR1cm4gLTE7Ci19Ci0KLXN0YXRpYyBQeUJ1ZmZlclByb2NzIG1lbW9yeXZpZXd0ZXN0ZXJfYXNfYnVmZmVyID0gewotICAgIChnZXRidWZmZXJwcm9jKWJyb2tlbl9idWZmZXJfZ2V0YnVmZmVyLCAgICAgLyogYmZfZ2V0YnVmZmVyICovCi0gICAgMCwgICAgICAgICAgLyogYmZfcmVsZWFzZWJ1ZmZlciAqLwotfTsKLQotc3RhdGljIFB5VHlwZU9iamVjdCBfTWVtb3J5Vmlld1Rlc3Rlcl9UeXBlID0gewotICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQotICAgICJtZW1vcnl2aWV3dGVzdGVyIiwgICAgICAgICAvKiBOYW1lIG9mIHRoaXMgdHlwZSAqLwotICAgIHNpemVvZihQeU9iamVjdCksICAgICAgICAgICAvKiBCYXNpYyBvYmplY3Qgc2l6ZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJdGVtIHNpemUgZm9yIHZhcm9iamVjdCAqLwotICAgIChkZXN0cnVjdG9yKVB5T2JqZWN0X0RlbCwgLyogdHBfZGVhbGxvYyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY29tcGFyZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXByICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KLSAgICBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwgIC8qIHRwX2dldGF0dHJvICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHJvICovCi0gICAgJm1lbW9yeXZpZXd0ZXN0ZXJfYXNfYnVmZmVyLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLwotICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgICAgICAgICAvKiB0cF9mbGFncyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLwotICAgIFB5VHlwZV9HZW5lcmljTmV3LCAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLwotfTsKLQotc3RhdGljIFB5T2JqZWN0KgotdGVzdF9icm9rZW5fbWVtb3J5dmlldyhQeU9iamVjdCogc2VsZikKLXsKLSAgICBQeU9iamVjdCAqb2JqID0gUHlPYmplY3RfTmV3KFB5T2JqZWN0LCAmX01lbW9yeVZpZXdUZXN0ZXJfVHlwZSk7Ci0gICAgUHlPYmplY3QgKnJlczsKLQotICAgIGlmIChvYmogPT0gTlVMTCkgewotICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoCi0gICAgICAgICAgICBUZXN0RXJyb3IsCi0gICAgICAgICAgICAidGVzdF9icm9rZW5fbWVtb3J5dmlldzogZmFpbGVkIHRvIGNyZWF0ZSBvYmplY3QiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgcmVzID0gUHlNZW1vcnlWaWV3X0Zyb21PYmplY3Qob2JqKTsKLSAgICBpZiAocmVzIHx8ICFQeUVycl9PY2N1cnJlZCgpKXsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKAotICAgICAgICAgICAgVGVzdEVycm9yLAotICAgICAgICAgICAgInRlc3RfYnJva2VuX21lbW9yeXZpZXc6IG1lbW9yeXZpZXcoKSBkaWRuJ3QgcmFpc2UgYW4gRXhjZXB0aW9uIik7Ci0gICAgICAgIFB5X1hERUNSRUYocmVzKTsKLSAgICAgICAgUHlfREVDUkVGKG9iaik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgUHlfREVDUkVGKG9iaik7Ci0gICAgUHlfUkVUVVJOX05PTkU7Ci19Ci0KLQogLyogVGVzdHMgb2YgUHlMb25nX3tBcywgRnJvbX17VW5zaWduZWQsfUxvbmcoKSwgYW5kICgjaWZkZWYgSEFWRV9MT05HX0xPTkcpCiAgICBQeUxvbmdfe0FzLCBGcm9tfXtVbnNpZ25lZCx9TG9uZ0xvbmcoKS4KIApAQCAtNzc4LDYgKzY4MCw2OCBAQAogICAgIHJldHVybiBQeV9Ob25lOwogfQogCisvKiBUZXN0IHRoZSBQeUxvbmdfQXN7U2l6ZSxTc2l6ZX1fdCBBUEkuIEF0IHByZXNlbnQgdGhpcyBqdXN0IHRlc3RzIHRoYXQKKyAgIG5vbi1pbnRlZ2VyIGFyZ3VtZW50cyBhcmUgaGFuZGxlZCBjb3JyZWN0bHkuIEl0IHNob3VsZCBiZSBleHRlbmRlZCB0bworICAgdGVzdCBvdmVyZmxvdyBoYW5kbGluZy4KKyAqLworCitzdGF0aWMgUHlPYmplY3QgKgordGVzdF9sb25nX2FzX3NpemVfdChQeU9iamVjdCAqc2VsZikKK3sKKyAgICBzaXplX3Qgb3V0X3U7CisgICAgUHlfc3NpemVfdCBvdXRfczsKKworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKworICAgIG91dF91ID0gUHlMb25nX0FzU2l6ZV90KFB5X05vbmUpOworICAgIGlmIChvdXRfdSAhPSAoc2l6ZV90KS0xIHx8ICFQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gcmFpc2VUZXN0RXJyb3IoInRlc3RfbG9uZ19hc19zaXplX3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlB5TG9uZ19Bc1NpemVfdChOb25lKSBkaWRuJ3QgY29tcGxhaW4iKTsKKyAgICBpZiAoIVB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfVHlwZUVycm9yKSkKKyAgICAgICAgcmV0dXJuIHJhaXNlVGVzdEVycm9yKCJ0ZXN0X2xvbmdfYXNfc2l6ZV90IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQeUxvbmdfQXNTaXplX3QoTm9uZSkgcmFpc2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb21ldGhpbmcgb3RoZXIgdGhhbiBUeXBlRXJyb3IiKTsKKyAgICBQeUVycl9DbGVhcigpOworCisgICAgb3V0X3MgPSBQeUxvbmdfQXNTc2l6ZV90KFB5X05vbmUpOworICAgIGlmIChvdXRfcyAhPSAoUHlfc3NpemVfdCktMSB8fCAhUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgcmV0dXJuIHJhaXNlVGVzdEVycm9yKCJ0ZXN0X2xvbmdfYXNfc2l6ZV90IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJQeUxvbmdfQXNTc2l6ZV90KE5vbmUpIGRpZG4ndCBjb21wbGFpbiIpOworICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19UeXBlRXJyb3IpKQorICAgICAgICByZXR1cm4gcmFpc2VUZXN0RXJyb3IoInRlc3RfbG9uZ19hc19zaXplX3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlB5TG9uZ19Bc1NzaXplX3QoTm9uZSkgcmFpc2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb21ldGhpbmcgb3RoZXIgdGhhbiBUeXBlRXJyb3IiKTsKKyAgICBQeUVycl9DbGVhcigpOworCisgICAgLyogUHlfSU5DUkVGKFB5X05vbmUpIG9taXR0ZWQgLSB3ZSBhbHJlYWR5IGhhdmUgYSByZWZlcmVuY2UgdG8gaXQuICovCisgICAgcmV0dXJuIFB5X05vbmU7Cit9CisKKy8qIFRlc3QgdGhlIFB5TG9uZ19Bc0RvdWJsZSBBUEkuIEF0IHByZXNlbnQgdGhpcyBqdXN0IHRlc3RzIHRoYXQKKyAgIG5vbi1pbnRlZ2VyIGFyZ3VtZW50cyBhcmUgaGFuZGxlZCBjb3JyZWN0bHkuCisgKi8KKworc3RhdGljIFB5T2JqZWN0ICoKK3Rlc3RfbG9uZ19hc19kb3VibGUoUHlPYmplY3QgKnNlbGYpCit7CisgICAgZG91YmxlIG91dDsKKworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKworICAgIG91dCA9IFB5TG9uZ19Bc0RvdWJsZShQeV9Ob25lKTsKKyAgICBpZiAob3V0ICE9IC0xLjAgfHwgIVB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIHJldHVybiByYWlzZVRlc3RFcnJvcigidGVzdF9sb25nX2FzX2RvdWJsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHlMb25nX0FzRG91YmxlKE5vbmUpIGRpZG4ndCBjb21wbGFpbiIpOworICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19UeXBlRXJyb3IpKQorICAgICAgICByZXR1cm4gcmFpc2VUZXN0RXJyb3IoInRlc3RfbG9uZ19hc19kb3VibGUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlB5TG9uZ19Bc0RvdWJsZShOb25lKSByYWlzZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvbWV0aGluZyBvdGhlciB0aGFuIFR5cGVFcnJvciIpOworICAgIFB5RXJyX0NsZWFyKCk7CisKKyAgICAvKiBQeV9JTkNSRUYoUHlfTm9uZSkgb21pdHRlZCAtIHdlIGFscmVhZHkgaGF2ZSBhIHJlZmVyZW5jZSB0byBpdC4gKi8KKyAgICByZXR1cm4gUHlfTm9uZTsKK30KKwogLyogVGVzdCB0aGUgTCBjb2RlIGZvciBQeUFyZ19QYXJzZVR1cGxlLiAgVGhpcyBzaG91bGQgZGVsaXZlciBhIFBZX0xPTkdfTE9ORwogICAgZm9yIGJvdGggbG9uZyBhbmQgaW50IGFyZ3VtZW50cy4gIFRoZSB0ZXN0IG1heSBsZWFrIGEgbGl0dGxlIG1lbW9yeSBpZgogICAgaXQgZmFpbHMuCkBAIC04MzcsNyArODAxLDggQEAKIH0KIAogLyogdGVzdCBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMgKi8KLXN0YXRpYyBQeU9iamVjdCAqZ2V0YXJnc19rZXl3b3JkcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCitzdGF0aWMgUHlPYmplY3QgKgorZ2V0YXJnc19rZXl3b3JkcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCiB7CiAgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7ImFyZzEiLCJhcmcyIiwiYXJnMyIsImFyZzQiLCJhcmc1IiwgTlVMTH07CiAgICAgc3RhdGljIGNoYXIgKmZtdD0iKGlpKWl8KGkoaWkpKShpaWkpaSI7CkBAIC04NTIsNiArODE3LDIxIEBACiAgICAgICAgIGludF9hcmdzWzVdLCBpbnRfYXJnc1s2XSwgaW50X2FyZ3NbN10sIGludF9hcmdzWzhdLCBpbnRfYXJnc1s5XSk7CiB9CiAKKy8qIHRlc3QgUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzIGtleXdvcmQtb25seSBhcmd1bWVudHMgKi8KK3N0YXRpYyBQeU9iamVjdCAqCitnZXRhcmdzX2tleXdvcmRfb25seShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCit7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InJlcXVpcmVkIiwgIm9wdGlvbmFsIiwgImtleXdvcmRfb25seSIsIE5VTEx9OworICAgIGludCByZXF1aXJlZCA9IC0xOworICAgIGludCBvcHRpb25hbCA9IC0xOworICAgIGludCBrZXl3b3JkX29ubHkgPSAtMTsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIml8aSRpIiwga2V5d29yZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlcXVpcmVkLCAmb3B0aW9uYWwsICZrZXl3b3JkX29ubHkpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiaWlpIiwgcmVxdWlyZWQsIG9wdGlvbmFsLCBrZXl3b3JkX29ubHkpOworfQorCiAvKiBGdW5jdGlvbnMgdG8gY2FsbCBQeUFyZ19QYXJzZVR1cGxlIHdpdGggaW50ZWdlciBmb3JtYXQgY29kZXMsCiAgICBhbmQgcmV0dXJuIHRoZSByZXN1bHQuCiAqLwpAQCAtOTM2LDYgKzkxNiwxNSBAQAogICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3QodmFsdWUpOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorZ2V0YXJnc19wKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBpbnQgdmFsdWU7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJwIiwgJnZhbHVlKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyh2YWx1ZSk7Cit9CisKICNpZmRlZiBIQVZFX0xPTkdfTE9ORwogc3RhdGljIFB5T2JqZWN0ICoKIGdldGFyZ3NfTChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCkBAIC0xMDEyLDYgKzEwMDEsMTUgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKK2dldGFyZ3NfYyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgY2hhciBjOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiYyIsICZjKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoJmMsIDEpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgogZ2V0YXJnc19zKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBjaGFyICpzdHI7CkBAIC0xMTk3LDUxICsxMTk1LDczIEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCi10ZXN0X2J1Z183NDE0KFB5T2JqZWN0ICpzZWxmKQorcGFyc2VfdHVwbGVfYW5kX2tleXdvcmRzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICAvKiBJc3N1ZSAjNzQxNDogZm9yIFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcywgJ0MnIGNvZGUgd2Fzbid0IGJlaW5nCi0gICAgICAgc2tpcHBlZCBwcm9wZXJseSBpbiBza2lwaXRlbSgpICovCi0gICAgaW50IGEgPSAwLCBiID0gMCwgcmVzdWx0OwotICAgIGNoYXIgKmt3bGlzdFtdID0geyJhIiwgImIiLCBOVUxMfTsKLSAgICBQeU9iamVjdCAqdHVwbGUgPSBOVUxMLCAqZGljdCA9IE5VTEwsICpiX3N0cjsKKyAgICBQeU9iamVjdCAqc3ViX2FyZ3M7CisgICAgUHlPYmplY3QgKnN1Yl9rd2FyZ3M7CisgICAgY2hhciAqc3ViX2Zvcm1hdDsKKyAgICBQeU9iamVjdCAqc3ViX2tleXdvcmRzOwogCi0gICAgdHVwbGUgPSBQeVR1cGxlX05ldygwKTsKLSAgICBpZiAodHVwbGUgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsdXJlOwotICAgIGRpY3QgPSBQeURpY3RfTmV3KCk7Ci0gICAgaWYgKGRpY3QgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsdXJlOwotICAgIGJfc3RyID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoImIiKTsKLSAgICBpZiAoYl9zdHIgPT0gTlVMTCkKLSAgICAgICAgZ290byBmYWlsdXJlOwotICAgIHJlc3VsdCA9IFB5RGljdF9TZXRJdGVtU3RyaW5nKGRpY3QsICJiIiwgYl9zdHIpOwotICAgIFB5X0RFQ1JFRihiX3N0cik7Ci0gICAgaWYgKHJlc3VsdCA8IDApCi0gICAgICAgIGdvdG8gZmFpbHVyZTsKKyAgICBQeV9zc2l6ZV90IGksIHNpemU7CisgICAgY2hhciAqa2V5d29yZHNbOCArIDFdOyAvKiBzcGFjZSBmb3IgTlVMTCBhdCBlbmQgKi8KKyAgICBQeU9iamVjdCAqbzsKKyAgICBQeU9iamVjdCAqY29udmVydGVkWzhdOwogCi0gICAgcmVzdWx0ID0gUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKHR1cGxlLCBkaWN0LCAifENDIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmYSwgJmIpOwotICAgIGlmICghcmVzdWx0KQotICAgICAgICBnb3RvIGZhaWx1cmU7CisgICAgaW50IHJlc3VsdDsKKyAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlID0gTlVMTDsKIAotICAgIGlmIChhICE9IDApCi0gICAgICAgIHJldHVybiByYWlzZVRlc3RFcnJvcigidGVzdF9idWdfNzQxNCIsCi0gICAgICAgICAgICAiQyBmb3JtYXQgY29kZSBub3Qgc2tpcHBlZCBwcm9wZXJseSIpOwotICAgIGlmIChiICE9ICdiJykKLSAgICAgICAgcmV0dXJuIHJhaXNlVGVzdEVycm9yKCJ0ZXN0X2J1Z183NDE0IiwKLSAgICAgICAgICAgICJDIGZvcm1hdCBjb2RlIHJldHVybmVkIHdyb25nIHZhbHVlIik7CisgICAgY2hhciBidWZmZXJzWzMyXVs4XTsKIAotICAgIFB5X0RFQ1JFRihkaWN0KTsKLSAgICBQeV9ERUNSRUYodHVwbGUpOwotICAgIFB5X1JFVFVSTl9OT05FOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT095TzpwYXJzZV90dXBsZV9hbmRfa2V5d29yZHMiLAorICAgICAgICAmc3ViX2FyZ3MsICZzdWJfa3dhcmdzLAorICAgICAgICAmc3ViX2Zvcm1hdCwgJnN1Yl9rZXl3b3JkcykpCisgICAgICAgIHJldHVybiBOVUxMOwogCi0gIGZhaWx1cmU6Ci0gICAgUHlfWERFQ1JFRihkaWN0KTsKLSAgICBQeV9YREVDUkVGKHR1cGxlKTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoIShQeUxpc3RfQ2hlY2tFeGFjdChzdWJfa2V5d29yZHMpIHx8IFB5VHVwbGVfQ2hlY2tFeGFjdChzdWJfa2V5d29yZHMpKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJwYXJzZV90dXBsZV9hbmRfa2V5d29yZHM6IHN1Yl9rZXl3b3JkcyBtdXN0IGJlIGVpdGhlciBsaXN0IG9yIHR1cGxlIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG1lbXNldChidWZmZXJzLCAwLCBzaXplb2YoYnVmZmVycykpOworICAgIG1lbXNldChjb252ZXJ0ZWQsIDAsIHNpemVvZihjb252ZXJ0ZWQpKTsKKyAgICBtZW1zZXQoa2V5d29yZHMsIDAsIHNpemVvZihrZXl3b3JkcykpOworCisgICAgc2l6ZSA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfU0laRShzdWJfa2V5d29yZHMpOworICAgIGlmIChzaXplID4gOCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJwYXJzZV90dXBsZV9hbmRfa2V5d29yZHM6IHRvbyBtYW55IGtleXdvcmRzIGluIHN1Yl9rZXl3b3JkcyIpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICBvID0gUHlTZXF1ZW5jZV9GYXN0X0dFVF9JVEVNKHN1Yl9rZXl3b3JkcywgaSk7CisgICAgICAgIGlmICghUHlVbmljb2RlX0ZTQ29udmVydGVyKG8sICh2b2lkICopKGNvbnZlcnRlZCArIGkpKSkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgInBhcnNlX3R1cGxlX2FuZF9rZXl3b3JkczogY291bGQgbm90IGNvbnZlcnQga2V5d29yZHNbJXNdIHRvIG5hcnJvdyBzdHJpbmciLCBpKTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgICAgICBrZXl3b3Jkc1tpXSA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGNvbnZlcnRlZFtpXSk7CisgICAgfQorCisgICAgcmVzdWx0ID0gUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKHN1Yl9hcmdzLCBzdWJfa3dhcmdzLAorICAgICAgICBzdWJfZm9ybWF0LCBrZXl3b3JkcywKKyAgICAgICAgYnVmZmVycyArIDAsIGJ1ZmZlcnMgKyAxLCBidWZmZXJzICsgMiwgYnVmZmVycyArIDMsCisgICAgICAgIGJ1ZmZlcnMgKyA0LCBidWZmZXJzICsgNSwgYnVmZmVycyArIDYsIGJ1ZmZlcnMgKyA3KTsKKworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gUHlfTm9uZTsKKyAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgIH0KKworZXhpdDoKKyAgICBzaXplID0gc2l6ZW9mKGNvbnZlcnRlZCkgLyBzaXplb2YoY29udmVydGVkWzBdKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIFB5X1hERUNSRUYoY29udmVydGVkW2ldKTsKKyAgICB9CisgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKIH0KIAotCiBzdGF0aWMgdm9sYXRpbGUgaW50IHg7CiAKIC8qIFRlc3QgdGhlIHUgYW5kIHUjIGNvZGVzIGZvciBQeUFyZ19QYXJzZVR1cGxlLiBNYXkgbGVhayBtZW1vcnkgaW4gY2FzZQpAQCAtMTI5Myw3ICsxMzEzLDcgQEAKIHRlc3RfWl9jb2RlKFB5T2JqZWN0ICpzZWxmKQogewogICAgIFB5T2JqZWN0ICp0dXBsZSwgKm9iajsKLSAgICBQeV9VTklDT0RFICp2YWx1ZTEsICp2YWx1ZTI7CisgICAgY29uc3QgUHlfVU5JQ09ERSAqdmFsdWUxLCAqdmFsdWUyOwogICAgIFB5X3NzaXplX3QgbGVuMSwgbGVuMjsKIAogICAgIHR1cGxlID0gUHlUdXBsZV9OZXcoMik7CkBAIC0xMzQ3LDYgKzEzNjcsNyBAQAogI2lmIGRlZmluZWQoU0laRU9GX1dDSEFSX1QpICYmIChTSVpFT0ZfV0NIQVJfVCA9PSA0KQogICAgIGNvbnN0IHdjaGFyX3Qgd3RleHRbMl0gPSB7KHdjaGFyX3QpMHgxMEFCQ0R1fTsKICAgICBzaXplX3Qgd3RleHRsZW4gPSAxOworICAgIGNvbnN0IHdjaGFyX3QgaW52YWxpZFsxXSA9IHsod2NoYXJfdCkweDExMDAwMHV9OwogI2Vsc2UKICAgICBjb25zdCB3Y2hhcl90IHd0ZXh0WzNdID0geyh3Y2hhcl90KTB4REJFQXUsICh3Y2hhcl90KTB4REZDRHV9OwogICAgIHNpemVfdCB3dGV4dGxlbiA9IDI7CkBAIC0xMzYzLDcgKzEzODQsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHdpZGUpICE9IFB5VW5pY29kZV9HRVRfU0laRSh1dGY4KSkgeworICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSCh3aWRlKSAhPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1dGY4KSkgewogICAgICAgICBQeV9ERUNSRUYod2lkZSk7CiAgICAgICAgIFB5X0RFQ1JFRih1dGY4KTsKICAgICAgICAgcmV0dXJuIHJhaXNlVGVzdEVycm9yKCJ0ZXN0X3dpZGVjaGFyIiwKQEAgLTEzODIsNiArMTQwMywyMyBAQAogCiAgICAgUHlfREVDUkVGKHdpZGUpOwogICAgIFB5X0RFQ1JFRih1dGY4KTsKKworI2lmIGRlZmluZWQoU0laRU9GX1dDSEFSX1QpICYmIChTSVpFT0ZfV0NIQVJfVCA9PSA0KQorICAgIHdpZGUgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKGludmFsaWQsIDEpOworICAgIGlmICh3aWRlID09IE5VTEwpCisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gcmFpc2VUZXN0RXJyb3IoInRlc3Rfd2lkZWNoYXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlB5VW5pY29kZV9Gcm9tV2lkZUNoYXIoTFwiXFxVMDAxMTAwMDBcIiwgMSkgZGlkbid0IGZhaWwiKTsKKworICAgIHdpZGUgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoaW52YWxpZCwgMSk7CisgICAgaWYgKHdpZGUgPT0gTlVMTCkKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiByYWlzZVRlc3RFcnJvcigidGVzdF93aWRlY2hhciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUHlVbmljb2RlX0Zyb21Vbmljb2RlKExcIlxcVTAwMTEwMDAwXCIsIDEpIGRpZG4ndCBmYWlsIik7CisjZW5kaWYKKwogICAgIFB5X1JFVFVSTl9OT05FOwogfQogCkBAIC0xNTc2LDcgKzE2MTQsNyBAQAogICAgICAgICAgICAgIHstMHhmZmZmZmZmTCwgMjgsIC0xfX07CiAgICAgaW50IGk7CiAKLSAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKHRlc3RjYXNlcykgLyBzaXplb2Yoc3RydWN0IHRyaXBsZSk7ICsraSkgeworICAgIGZvciAoaSA9IDA7IGkgPCBQeV9BUlJBWV9MRU5HVEgodGVzdGNhc2VzKTsgKytpKSB7CiAgICAgICAgIFB5T2JqZWN0ICpwbG9uZyA9IFB5TG9uZ19Gcm9tTG9uZyh0ZXN0Y2FzZXNbaV0uaW5wdXQpOwogICAgICAgICBzaXplX3QgbmJpdHMgPSBfUHlMb25nX051bUJpdHMocGxvbmcpOwogICAgICAgICBpbnQgc2lnbiA9IF9QeUxvbmdfU2lnbihwbG9uZyk7CkBAIC0xNjMyLDYgKzE2NzAsMjkgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK3Rlc3Rfc2V0X2V4Y19pbmZvKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeU9iamVjdCAqb3JpZ19leGM7CisgICAgUHlPYmplY3QgKm5ld190eXBlLCAqbmV3X3ZhbHVlLCAqbmV3X3RiOworICAgIFB5T2JqZWN0ICp0eXBlLCAqdmFsdWUsICp0YjsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk9PTzp0ZXN0X3NldF9leGNfaW5mbyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZuZXdfdHlwZSwgJm5ld192YWx1ZSwgJm5ld190YikpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlFcnJfR2V0RXhjSW5mbygmdHlwZSwgJnZhbHVlLCAmdGIpOworCisgICAgUHlfSU5DUkVGKG5ld190eXBlKTsKKyAgICBQeV9JTkNSRUYobmV3X3ZhbHVlKTsKKyAgICBQeV9JTkNSRUYobmV3X3RiKTsKKyAgICBQeUVycl9TZXRFeGNJbmZvKG5ld190eXBlLCBuZXdfdmFsdWUsIG5ld190Yik7CisKKyAgICBvcmlnX2V4YyA9IFB5VHVwbGVfUGFjaygzLCB0eXBlID8gdHlwZSA6IFB5X05vbmUsIHZhbHVlID8gdmFsdWUgOiBQeV9Ob25lLCB0YiA/IHRiIDogUHlfTm9uZSk7CisgICAgUHlfWERFQ1JFRih0eXBlKTsKKyAgICBQeV9YREVDUkVGKHZhbHVlKTsKKyAgICBQeV9YREVDUkVGKHRiKTsKKyAgICByZXR1cm4gb3JpZ19leGM7Cit9CiAKIHN0YXRpYyBpbnQgdGVzdF9ydW5fY291bnRlciA9IDA7CiAKQEAgLTE3ODYsMTMgKzE4NDcsMTIgQEAKIHsKICAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIGNoYXIgKm1zZzsKLSAgICBzdGF0aWMgY29uc3QgUHlfVU5JQ09ERSBvbmVbXSA9IHsnMScsIDB9OwogCiAjZGVmaW5lIENIRUNLXzFfRk9STUFUKEZPUk1BVCwgVFlQRSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICByZXN1bHQgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdChGT1JNQVQsIChUWVBFKTEpOyAgICAgICAgICAgICAgICAgXAogICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgIHJldHVybiBOVUxMOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSAgICBpZiAoUHlfVU5JQ09ERV9zdHJjbXAoUHlVbmljb2RlX0FTX1VOSUNPREUocmVzdWx0KSwgb25lKSkgeyAgICAgXAorICAgIGlmIChQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZyhyZXN1bHQsICIxIikpIHsgICAgIFwKICAgICAgICAgbXNnID0gRk9STUFUICIgZmFpbGVkIGF0IDEiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICBnb3RvIEZhaWw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTIzMTcsNiArMjM3NywxNCBAQAogICAgIFB5VGhyZWFkU3RhdGVfU3dhcChOVUxMKTsKIAogICAgIHN1YnN0YXRlID0gUHlfTmV3SW50ZXJwcmV0ZXIoKTsKKyAgICBpZiAoc3Vic3RhdGUgPT0gTlVMTCkgeworICAgICAgICAvKiBTaW5jZSBubyBuZXcgdGhyZWFkIHN0YXRlIHdhcyBjcmVhdGVkLCB0aGVyZSBpcyBubyBleGNlcHRpb24gdG8KKyAgICAgICAgICAgcHJvcGFnYXRlOyByYWlzZSBhIGZyZXNoIG9uZSBhZnRlciBzd2FwcGluZyBpbiB0aGUgb2xkIHRocmVhZAorICAgICAgICAgICBzdGF0ZS4gKi8KKyAgICAgICAgUHlUaHJlYWRTdGF0ZV9Td2FwKG1haW5zdGF0ZSk7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsICJzdWItaW50ZXJwcmV0ZXIgY3JlYXRpb24gZmFpbGVkIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KICAgICByID0gUHlSdW5fU2ltcGxlU3RyaW5nKGNvZGUpOwogICAgIFB5X0VuZEludGVycHJldGVyKHN1YnN0YXRlKTsKIApAQCAtMjMyNSw2ICsyMzkzLDQ0IEBACiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyhyKTsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK3Rlc3RfcHl0aW1lX29iamVjdF90b190aW1lX3QoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpvYmo7CisgICAgdGltZV90IHNlYzsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk86cHl0aW1lX29iamVjdF90b190aW1lX3QiLCAmb2JqKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKF9QeVRpbWVfT2JqZWN0VG9UaW1lX3Qob2JqLCAmc2VjKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIF9QeUxvbmdfRnJvbVRpbWVfdChzZWMpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgordGVzdF9weXRpbWVfb2JqZWN0X3RvX3RpbWV2YWwoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpvYmo7CisgICAgdGltZV90IHNlYzsKKyAgICBsb25nIHVzZWM7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPOnB5dGltZV9vYmplY3RfdG9fdGltZXZhbCIsICZvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoX1B5VGltZV9PYmplY3RUb1RpbWV2YWwob2JqLCAmc2VjLCAmdXNlYykgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJObCIsIF9QeUxvbmdfRnJvbVRpbWVfdChzZWMpLCB1c2VjKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3Rlc3RfcHl0aW1lX29iamVjdF90b190aW1lc3BlYyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKm9iajsKKyAgICB0aW1lX3Qgc2VjOworICAgIGxvbmcgbnNlYzsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk86cHl0aW1lX29iamVjdF90b190aW1lc3BlYyIsICZvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoX1B5VGltZV9PYmplY3RUb1RpbWVzcGVjKG9iaiwgJnNlYywgJm5zZWMpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTmwiLCBfUHlMb25nX0Zyb21UaW1lX3Qoc2VjKSwgbnNlYyk7Cit9CisKIAogc3RhdGljIFB5TWV0aG9kRGVmIFRlc3RNZXRob2RzW10gPSB7CiAgICAgeyJyYWlzZV9leGNlcHRpb24iLCAgICAgICAgIHJhaXNlX2V4Y2VwdGlvbiwgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCkBAIC0yMzM0LDE0ICsyNDQwLDE1IEBACiAgICAgeyJ0ZXN0X2xpc3RfYXBpIiwgICAgICAgICAgIChQeUNGdW5jdGlvbil0ZXN0X2xpc3RfYXBpLCAgICAgIE1FVEhfTk9BUkdTfSwKICAgICB7InRlc3RfZGljdF9pdGVyYXRpb24iLCAgICAgKFB5Q0Z1bmN0aW9uKXRlc3RfZGljdF9pdGVyYXRpb24sTUVUSF9OT0FSR1N9LAogICAgIHsidGVzdF9sYXp5X2hhc2hfaW5oZXJpdGFuY2UiLCAgICAgIChQeUNGdW5jdGlvbil0ZXN0X2xhenlfaGFzaF9pbmhlcml0YW5jZSxNRVRIX05PQVJHU30sCi0gICAgeyJ0ZXN0X2Jyb2tlbl9tZW1vcnl2aWV3IiwgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXRlc3RfYnJva2VuX21lbW9yeXZpZXcsTUVUSF9OT0FSR1N9LAogICAgIHsidGVzdF9sb25nX2FwaSIsICAgICAgICAgICAoUHlDRnVuY3Rpb24pdGVzdF9sb25nX2FwaSwgICAgICBNRVRIX05PQVJHU30sCiAgICAgeyJ0ZXN0X2xvbmdfYW5kX292ZXJmbG93IiwgKFB5Q0Z1bmN0aW9uKXRlc3RfbG9uZ19hbmRfb3ZlcmZsb3csCiAgICAgIE1FVEhfTk9BUkdTfSwKKyAgICB7InRlc3RfbG9uZ19hc19kb3VibGUiLCAgICAgKFB5Q0Z1bmN0aW9uKXRlc3RfbG9uZ19hc19kb3VibGUsTUVUSF9OT0FSR1N9LAorICAgIHsidGVzdF9sb25nX2FzX3NpemVfdCIsICAgICAoUHlDRnVuY3Rpb24pdGVzdF9sb25nX2FzX3NpemVfdCxNRVRIX05PQVJHU30sCiAgICAgeyJ0ZXN0X2xvbmdfbnVtYml0cyIsICAgICAgIChQeUNGdW5jdGlvbil0ZXN0X2xvbmdfbnVtYml0cywgIE1FVEhfTk9BUkdTfSwKICAgICB7InRlc3Rfa19jb2RlIiwgICAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXRlc3Rfa19jb2RlLCAgICAgICAgTUVUSF9OT0FSR1N9LAogICAgIHsidGVzdF9lbXB0eV9hcmdwYXJzZSIsIChQeUNGdW5jdGlvbil0ZXN0X2VtcHR5X2FyZ3BhcnNlLE1FVEhfTk9BUkdTfSwKLSAgICB7InRlc3RfYnVnXzc0MTQiLCAoUHlDRnVuY3Rpb24pdGVzdF9idWdfNzQxNCwgTUVUSF9OT0FSR1N9LAorICAgIHsicGFyc2VfdHVwbGVfYW5kX2tleXdvcmRzIiwgcGFyc2VfdHVwbGVfYW5kX2tleXdvcmRzLCBNRVRIX1ZBUkFSR1N9LAogICAgIHsidGVzdF9udWxsX3N0cmluZ3MiLCAgICAgICAoUHlDRnVuY3Rpb24pdGVzdF9udWxsX3N0cmluZ3MsICBNRVRIX05PQVJHU30sCiAgICAgeyJ0ZXN0X3N0cmluZ19mcm9tX2Zvcm1hdCIsIChQeUNGdW5jdGlvbil0ZXN0X3N0cmluZ19mcm9tX2Zvcm1hdCwgTUVUSF9OT0FSR1N9LAogICAgIHsidGVzdF93aXRoX2RvY3N0cmluZyIsIChQeUNGdW5jdGlvbil0ZXN0X3dpdGhfZG9jc3RyaW5nLCBNRVRIX05PQVJHUywKQEAgLTIzNTIsNiArMjQ1OSw4IEBACiAgICAgeyJnZXRhcmdzX3R1cGxlIiwgICAgICAgICAgIGdldGFyZ3NfdHVwbGUsICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJnZXRhcmdzX2tleXdvcmRzIiwgKFB5Q0Z1bmN0aW9uKWdldGFyZ3Nfa2V5d29yZHMsCiAgICAgICBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEU30sCisgICAgeyJnZXRhcmdzX2tleXdvcmRfb25seSIsIChQeUNGdW5jdGlvbilnZXRhcmdzX2tleXdvcmRfb25seSwKKyAgICAgIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTfSwKICAgICB7ImdldGFyZ3NfYiIsICAgICAgICAgICAgICAgZ2V0YXJnc19iLCAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTfSwKICAgICB7ImdldGFyZ3NfQiIsICAgICAgICAgICAgICAgZ2V0YXJnc19CLCAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTfSwKICAgICB7ImdldGFyZ3NfaCIsICAgICAgICAgICAgICAgZ2V0YXJnc19oLCAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTfSwKQEAgLTIzNjEsNiArMjQ3MCw3IEBACiAgICAgeyJnZXRhcmdzX2kiLCAgICAgICAgICAgICAgIGdldGFyZ3NfaSwgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJnZXRhcmdzX2wiLCAgICAgICAgICAgICAgIGdldGFyZ3NfbCwgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJnZXRhcmdzX24iLCAgICAgICAgICAgICAgIGdldGFyZ3NfbiwgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCisgICAgeyJnZXRhcmdzX3AiLCAgICAgICAgICAgICAgIGdldGFyZ3NfcCwgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAjaWZkZWYgSEFWRV9MT05HX0xPTkcKICAgICB7ImdldGFyZ3NfTCIsICAgICAgICAgICAgICAgZ2V0YXJnc19MLCAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTfSwKICAgICB7ImdldGFyZ3NfSyIsICAgICAgICAgICAgICAgZ2V0YXJnc19LLCAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTfSwKQEAgLTIzNjksNiArMjQ3OSw3IEBACiAgICAgICAgIChQeUNGdW5jdGlvbil0ZXN0X2xvbmdfbG9uZ19hbmRfb3ZlcmZsb3csIE1FVEhfTk9BUkdTfSwKICAgICB7InRlc3RfTF9jb2RlIiwgICAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXRlc3RfTF9jb2RlLCAgICAgICAgTUVUSF9OT0FSR1N9LAogI2VuZGlmCisgICAgeyJnZXRhcmdzX2MiLCAgICAgICAgICAgICAgIGdldGFyZ3NfYywgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJnZXRhcmdzX3MiLCAgICAgICAgICAgICAgIGdldGFyZ3NfcywgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJnZXRhcmdzX3Nfc3RhciIsICAgICAgICAgIGdldGFyZ3Nfc19zdGFyLCAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJnZXRhcmdzX3NfaGFzaCIsICAgICAgICAgIGdldGFyZ3Nfc19oYXNoLCAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCkBAIC0yNDA0LDYgKzI1MTUsNyBAQAogI2VuZGlmCiAgICAgeyJ0cmFjZWJhY2tfcHJpbnQiLCAgICAgICAgIHRyYWNlYmFja19wcmludCwgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJleGNlcHRpb25fcHJpbnQiLCAgICAgICAgIGV4Y2VwdGlvbl9wcmludCwgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCisgICAgeyJzZXRfZXhjX2luZm8iLCAgICAgICAgICAgIHRlc3Rfc2V0X2V4Y19pbmZvLCAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJhcmdwYXJzaW5nIiwgICAgICAgICAgICAgIGFyZ3BhcnNpbmcsICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJjb2RlX25ld2VtcHR5IiwgICAgICAgICAgIGNvZGVfbmV3ZW1wdHksICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCiAgICAgeyJtYWtlX2V4Y2VwdGlvbl93aXRoX2RvYyIsIChQeUNGdW5jdGlvbiltYWtlX2V4Y2VwdGlvbl93aXRoX2RvYywKQEAgLTI0MTIsNiArMjUyNCw5IEBACiAgICAgIE1FVEhfTk9BUkdTfSwKICAgICB7ImNyYXNoX25vX2N1cnJlbnRfdGhyZWFkIiwgKFB5Q0Z1bmN0aW9uKWNyYXNoX25vX2N1cnJlbnRfdGhyZWFkLCBNRVRIX05PQVJHU30sCiAgICAgeyJydW5faW5fc3ViaW50ZXJwIiwgICAgICAgIHJ1bl9pbl9zdWJpbnRlcnAsICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHU30sCisgICAgeyJweXRpbWVfb2JqZWN0X3RvX3RpbWVfdCIsIHRlc3RfcHl0aW1lX29iamVjdF90b190aW1lX3QsICBNRVRIX1ZBUkFSR1N9LAorICAgIHsicHl0aW1lX29iamVjdF90b190aW1ldmFsIiwgdGVzdF9weXRpbWVfb2JqZWN0X3RvX3RpbWV2YWwsICBNRVRIX1ZBUkFSR1N9LAorICAgIHsicHl0aW1lX29iamVjdF90b190aW1lc3BlYyIsIHRlc3RfcHl0aW1lX29iamVjdF90b190aW1lc3BlYywgIE1FVEhfVkFSQVJHU30sCiAgICAge05VTEwsIE5VTEx9IC8qIHNlbnRpbmVsICovCiB9OwogCkBAIC0yNTk0LDcgKzI3MDksNiBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIFB5X1RZUEUoJl9IYXNoSW5oZXJpdGFuY2VUZXN0ZXJfVHlwZSk9JlB5VHlwZV9UeXBlOwotICAgIFB5X1RZUEUoJl9NZW1vcnlWaWV3VGVzdGVyX1R5cGUpPSZQeVR5cGVfVHlwZTsKIAogICAgIFB5X1RZUEUoJnRlc3Rfc3RydWN0bWVtYmVyc1R5cGUpPSZQeVR5cGVfVHlwZTsKICAgICBQeV9JTkNSRUYoJnRlc3Rfc3RydWN0bWVtYmVyc1R5cGUpOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fdGhyZWFkbW9kdWxlLmMgYi9Nb2R1bGVzL190aHJlYWRtb2R1bGUuYwppbmRleCA1Zjc2YTdiLi42M2VmZGMzIDEwMDY0NAotLS0gYS9Nb2R1bGVzL190aHJlYWRtb2R1bGUuYworKysgYi9Nb2R1bGVzL190aHJlYWRtb2R1bGUuYwpAQCAtMjMsNiArMjMsNyBAQAogICAgIFB5T2JqZWN0X0hFQUQKICAgICBQeVRocmVhZF90eXBlX2xvY2sgbG9ja19sb2NrOwogICAgIFB5T2JqZWN0ICppbl93ZWFrcmVmbGlzdDsKKyAgICBjaGFyIGxvY2tlZDsgLyogZm9yIHNhbml0eSBjaGVja2luZyAqLwogfSBsb2Nrb2JqZWN0OwogCiBzdGF0aWMgdm9pZApAQCAtMzIsOSArMzMsOCBAQAogICAgICAgICBQeU9iamVjdF9DbGVhcldlYWtSZWZzKChQeU9iamVjdCAqKSBzZWxmKTsKICAgICBpZiAoc2VsZi0+bG9ja19sb2NrICE9IE5VTEwpIHsKICAgICAgICAgLyogVW5sb2NrIHRoZSBsb2NrIHNvIGl0J3Mgc2FmZSB0byBmcmVlIGl0ICovCi0gICAgICAgIFB5VGhyZWFkX2FjcXVpcmVfbG9jayhzZWxmLT5sb2NrX2xvY2ssIDApOwotICAgICAgICBQeVRocmVhZF9yZWxlYXNlX2xvY2soc2VsZi0+bG9ja19sb2NrKTsKLQorICAgICAgICBpZiAoc2VsZi0+bG9ja2VkKQorICAgICAgICAgICAgUHlUaHJlYWRfcmVsZWFzZV9sb2NrKHNlbGYtPmxvY2tfbG9jayk7CiAgICAgICAgIFB5VGhyZWFkX2ZyZWVfbG9jayhzZWxmLT5sb2NrX2xvY2spOwogICAgIH0KICAgICBQeU9iamVjdF9EZWwoc2VsZik7CkBAIC01Myw2ICs1Myw3IEBACiAgICAgX1B5VGltZV90aW1ldmFsIGN1cnRpbWU7CiAgICAgX1B5VGltZV90aW1ldmFsIGVuZHRpbWU7CiAKKwogICAgIGlmIChtaWNyb3NlY29uZHMgPiAwKSB7CiAgICAgICAgIF9QeVRpbWVfZ2V0dGltZW9mZGF5KCZlbmR0aW1lKTsKICAgICAgICAgZW5kdGltZS50dl9zZWMgKz0gbWljcm9zZWNvbmRzIC8gKDEwMDAgKiAxMDAwKTsKQEAgLTYxLDkgKzYyLDEzIEBACiAKIAogICAgIGRvIHsKLSAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICByID0gUHlUaHJlYWRfYWNxdWlyZV9sb2NrX3RpbWVkKGxvY2ssIG1pY3Jvc2Vjb25kcywgMSk7Ci0gICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgICAgIC8qIGZpcnN0IGEgc2ltcGxlIG5vbi1ibG9ja2luZyB0cnkgd2l0aG91dCByZWxlYXNpbmcgdGhlIEdJTCAqLworICAgICAgICByID0gUHlUaHJlYWRfYWNxdWlyZV9sb2NrX3RpbWVkKGxvY2ssIDAsIDApOworICAgICAgICBpZiAociA9PSBQWV9MT0NLX0ZBSUxVUkUgJiYgbWljcm9zZWNvbmRzICE9IDApIHsKKyAgICAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgICAgIHIgPSBQeVRocmVhZF9hY3F1aXJlX2xvY2tfdGltZWQobG9jaywgbWljcm9zZWNvbmRzLCAxKTsKKyAgICAgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgICAgIH0gCiAKICAgICAgICAgaWYgKHIgPT0gUFlfTE9DS19JTlRSKSB7CiAgICAgICAgICAgICAvKiBSdW4gc2lnbmFsIGhhbmRsZXJzIGlmIHdlIHdlcmUgaW50ZXJydXB0ZWQuICBQcm9wYWdhdGUKQEAgLTc1LDcgKzgwLDcgQEAKIAogICAgICAgICAgICAgLyogSWYgd2UncmUgdXNpbmcgYSB0aW1lb3V0LCByZWNvbXB1dGUgdGhlIHRpbWVvdXQgYWZ0ZXIgcHJvY2Vzc2luZwogICAgICAgICAgICAgICogc2lnbmFscywgc2luY2UgdGhvc2UgY2FuIHRha2UgdGltZS4gICovCi0gICAgICAgICAgICBpZiAobWljcm9zZWNvbmRzID49IDApIHsKKyAgICAgICAgICAgIGlmIChtaWNyb3NlY29uZHMgPiAwKSB7CiAgICAgICAgICAgICAgICAgX1B5VGltZV9nZXR0aW1lb2ZkYXkoJmN1cnRpbWUpOwogICAgICAgICAgICAgICAgIG1pY3Jvc2Vjb25kcyA9ICgoZW5kdGltZS50dl9zZWMgLSBjdXJ0aW1lLnR2X3NlYykgKiAxMDAwMDAwICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVuZHRpbWUudHZfdXNlYyAtIGN1cnRpbWUudHZfdXNlYykpOwpAQCAtMTM0LDYgKzEzOSw4IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAorICAgIGlmIChyID09IFBZX0xPQ0tfQUNRVUlSRUQpCisgICAgICAgIHNlbGYtPmxvY2tlZCA9IDE7CiAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZyhyID09IFBZX0xPQ0tfQUNRVUlSRUQpOwogfQogCkBAIC0xNTIsMTMgKzE1OSwxMyBAQAogbG9ja19QeVRocmVhZF9yZWxlYXNlX2xvY2sobG9ja29iamVjdCAqc2VsZikKIHsKICAgICAvKiBTYW5pdHkgY2hlY2s6IHRoZSBsb2NrIG11c3QgYmUgbG9ja2VkICovCi0gICAgaWYgKFB5VGhyZWFkX2FjcXVpcmVfbG9jayhzZWxmLT5sb2NrX2xvY2ssIDApKSB7Ci0gICAgICAgIFB5VGhyZWFkX3JlbGVhc2VfbG9jayhzZWxmLT5sb2NrX2xvY2spOworICAgIGlmICghc2VsZi0+bG9ja2VkKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhUaHJlYWRFcnJvciwgInJlbGVhc2UgdW5sb2NrZWQgbG9jayIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKICAgICBQeVRocmVhZF9yZWxlYXNlX2xvY2soc2VsZi0+bG9ja19sb2NrKTsKKyAgICBzZWxmLT5sb2NrZWQgPSAwOwogICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKICAgICByZXR1cm4gUHlfTm9uZTsKIH0KQEAgLTE3NCwxMSArMTgxLDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBsb2NrX2xvY2tlZF9sb2NrKGxvY2tvYmplY3QgKnNlbGYpCiB7Ci0gICAgaWYgKFB5VGhyZWFkX2FjcXVpcmVfbG9jayhzZWxmLT5sb2NrX2xvY2ssIDApKSB7Ci0gICAgICAgIFB5VGhyZWFkX3JlbGVhc2VfbG9jayhzZWxmLT5sb2NrX2xvY2spOwotICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDBMKTsKLSAgICB9Ci0gICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygxTCk7CisgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygobG9uZylzZWxmLT5sb2NrZWQpOwogfQogCiBQeURvY19TVFJWQVIobG9ja2VkX2RvYywKQEAgLTMxMiwxNCArMzE1LDcgQEAKICAgICAgICAgc2VsZi0+cmxvY2tfY291bnQgPSBjb3VudDsKICAgICAgICAgUHlfUkVUVVJOX1RSVUU7CiAgICAgfQotCi0gICAgaWYgKHNlbGYtPnJsb2NrX2NvdW50ID4gMCB8fAotICAgICAgICAhUHlUaHJlYWRfYWNxdWlyZV9sb2NrKHNlbGYtPnJsb2NrX2xvY2ssIDApKSB7Ci0gICAgICAgIGlmIChtaWNyb3NlY29uZHMgPT0gMCkgewotICAgICAgICAgICAgUHlfUkVUVVJOX0ZBTFNFOwotICAgICAgICB9Ci0gICAgICAgIHIgPSBhY3F1aXJlX3RpbWVkKHNlbGYtPnJsb2NrX2xvY2ssIG1pY3Jvc2Vjb25kcyk7Ci0gICAgfQorICAgIHIgPSBhY3F1aXJlX3RpbWVkKHNlbGYtPnJsb2NrX2xvY2ssIG1pY3Jvc2Vjb25kcyk7CiAgICAgaWYgKHIgPT0gUFlfTE9DS19BQ1FVSVJFRCkgewogICAgICAgICBhc3NlcnQoc2VsZi0+cmxvY2tfY291bnQgPT0gMCk7CiAgICAgICAgIHNlbGYtPnJsb2NrX293bmVyID0gdGlkOwpAQCAtNDEzLDYgKzQwOSwxMiBAQAogICAgIGxvbmcgb3duZXI7CiAgICAgdW5zaWduZWQgbG9uZyBjb3VudDsKIAorICAgIGlmIChzZWxmLT5ybG9ja19jb3VudCA9PSAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiY2Fubm90IHJlbGVhc2UgdW4tYWNxdWlyZWQgbG9jayIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKICAgICBvd25lciA9IHNlbGYtPnJsb2NrX293bmVyOwogICAgIGNvdW50ID0gc2VsZi0+cmxvY2tfY291bnQ7CiAgICAgc2VsZi0+cmxvY2tfY291bnQgPSAwOwpAQCAtNTQxLDYgKzU0Myw3IEBACiAgICAgaWYgKHNlbGYgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgc2VsZi0+bG9ja19sb2NrID0gUHlUaHJlYWRfYWxsb2NhdGVfbG9jaygpOworICAgIHNlbGYtPmxvY2tlZCA9IDA7CiAgICAgc2VsZi0+aW5fd2Vha3JlZmxpc3QgPSBOVUxMOwogICAgIGlmIChzZWxmLT5sb2NrX2xvY2sgPT0gTlVMTCkgewogICAgICAgICBQeV9ERUNSRUYoc2VsZik7CkBAIC0xMjI1LDExICsxMjI4LDkgQEAKIAogc3RhdGljIFB5TWV0aG9kRGVmIHRocmVhZF9tZXRob2RzW10gPSB7CiAgICAgeyJzdGFydF9uZXdfdGhyZWFkIiwgICAgICAgIChQeUNGdW5jdGlvbil0aHJlYWRfUHlUaHJlYWRfc3RhcnRfbmV3X3RocmVhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbmV3X2RvY30sCisgICAgIE1FVEhfVkFSQVJHUywgc3RhcnRfbmV3X2RvY30sCiAgICAgeyJzdGFydF9uZXciLCAgICAgICAgICAgICAgIChQeUNGdW5jdGlvbil0aHJlYWRfUHlUaHJlYWRfc3RhcnRfbmV3X3RocmVhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfbmV3X2RvY30sCisgICAgIE1FVEhfVkFSQVJHUywgc3RhcnRfbmV3X2RvY30sCiAgICAgeyJhbGxvY2F0ZV9sb2NrIiwgICAgICAgICAgIChQeUNGdW5jdGlvbil0aHJlYWRfUHlUaHJlYWRfYWxsb2NhdGVfbG9jaywKICAgICAgTUVUSF9OT0FSR1MsIGFsbG9jYXRlX2RvY30sCiAgICAgeyJhbGxvY2F0ZSIsICAgICAgICAgICAgICAgIChQeUNGdW5jdGlvbil0aHJlYWRfUHlUaHJlYWRfYWxsb2NhdGVfbG9jaywKQEAgLTEyNDUsOCArMTI0Niw3IEBACiAgICAgeyJfY291bnQiLCAgICAgICAgICAgICAgICAgIChQeUNGdW5jdGlvbil0aHJlYWRfX2NvdW50LAogICAgICBNRVRIX05PQVJHUywgX2NvdW50X2RvY30sCiAgICAgeyJzdGFja19zaXplIiwgICAgICAgICAgICAgIChQeUNGdW5jdGlvbil0aHJlYWRfc3RhY2tfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2tfc2l6ZV9kb2N9LAorICAgICBNRVRIX1ZBUkFSR1MsIHN0YWNrX3NpemVfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCiB9OwogCkBAIC0xMzEwLDcgKzEzMTAsOSBAQAogCiAgICAgLyogQWRkIGEgc3ltYm9saWMgY29uc3RhbnQgKi8KICAgICBkID0gUHlNb2R1bGVfR2V0RGljdChtKTsKLSAgICBUaHJlYWRFcnJvciA9IFB5RXJyX05ld0V4Y2VwdGlvbigiX3RocmVhZC5lcnJvciIsIE5VTEwsIE5VTEwpOworICAgIFRocmVhZEVycm9yID0gUHlFeGNfUnVudGltZUVycm9yOworICAgIFB5X0lOQ1JFRihUaHJlYWRFcnJvcik7CisKICAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiZXJyb3IiLCBUaHJlYWRFcnJvcik7CiAgICAgTG9ja3R5cGUudHBfZG9jID0gbG9ja19kb2M7CiAgICAgUHlfSU5DUkVGKCZMb2NrdHlwZSk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL190aW1lLmMgYi9Nb2R1bGVzL190aW1lLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwY2M4ZTEuLjAwMDAwMDAKLS0tIGEvTW9kdWxlcy9fdGltZS5jCisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAsMCBAQAotI2luY2x1ZGUgIlB5dGhvbi5oIgotI2luY2x1ZGUgIl90aW1lLmgiCi0KLS8qIEV4cG9zZWQgaW4gdGltZWZ1bmNzLmguICovCi10aW1lX3QKLV9QeVRpbWVfRG91YmxlVG9UaW1ldChkb3VibGUgeCkKLXsKLSAgICB0aW1lX3QgcmVzdWx0OwotICAgIGRvdWJsZSBkaWZmOwotCi0gICAgcmVzdWx0ID0gKHRpbWVfdCl4OwotICAgIC8qIEhvdyBtdWNoIGluZm8gZGlkIHdlIGxvc2U/ICB0aW1lX3QgbWF5IGJlIGFuIGludGVncmFsIG9yCi0gICAgICogZmxvYXRpbmcgdHlwZSwgYW5kIHdlIGRvbid0IGtub3cgd2hpY2guICBJZiBpdCdzIGludGVncmFsLAotICAgICAqIHdlIGRvbid0IGtub3cgd2hldGhlciBDIHRydW5jYXRlcywgcm91bmRzLCByZXR1cm5zIHRoZSBmbG9vciwKLSAgICAgKiBldGMuICBJZiB3ZSBsb3N0IGEgc2Vjb25kIG9yIG1vcmUsIHRoZSBDIHJvdW5kaW5nIGlzCi0gICAgICogdW5yZWFzb25hYmxlLCBvciB0aGUgaW5wdXQganVzdCBkb2Vzbid0IGZpdCBpbiBhIHRpbWVfdDsKLSAgICAgKiBjYWxsIGl0IGFuIGVycm9yIHJlZ2FyZGxlc3MuICBOb3RlIHRoYXQgdGhlIG9yaWdpbmFsIGNhc3QgdG8KLSAgICAgKiB0aW1lX3QgY2FuIGNhdXNlIGEgQyBlcnJvciB0b28sIGJ1dCBub3RoaW5nIHdlIGNhbiBkbyB0bwotICAgICAqIHdvcmsgYXJvdW5kIHRoYXQuCi0gICAgICovCi0gICAgZGlmZiA9IHggLSAoZG91YmxlKXJlc3VsdDsKLSAgICBpZiAoZGlmZiA8PSAtMS4wIHx8IGRpZmYgPj0gMS4wKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UgZm9yIHBsYXRmb3JtIHRpbWVfdCIpOwotICAgICAgICByZXN1bHQgPSAodGltZV90KS0xOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fdGltZS5oIGIvTW9kdWxlcy9fdGltZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MTY1OTNiLi4wMDAwMDAwCi0tLSBhL01vZHVsZXMvX3RpbWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotLyogWFhYOiBJdCBpcyBwcm9iYWJseSBiZXN0IHRvIG1vdmUgdGltZWZ1bmNzLmggY29udGVudCBpbiBoZXJlLCBhbmQKLSAgIHJlbW92ZSBpdCBidXQgdXNlciBjb2RlIG1heSByZWx5IG9uIGl0LiAqLwotI2luY2x1ZGUgInRpbWVmdW5jcy5oIgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9fdGtpbnRlci5jIGIvTW9kdWxlcy9fdGtpbnRlci5jCmluZGV4IDM2MDhlMmQuLjYzMGNlNzIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvX3RraW50ZXIuYworKysgYi9Nb2R1bGVzL190a2ludGVyLmMKQEAgLTgwLDE4ICs4MCw2IEBACiAjZXJyb3IgIlRrIG9sZGVyIHRoYW4gOC4zLjEgbm90IHN1cHBvcnRlZCIKICNlbmRpZgogCi0vKiBVbmljb2RlIGNvbnZlcnNpb24gYXNzdW1lcyB0aGF0IFRjbF9VbmlDaGFyIGlzIHR3byBieXRlcy4KLSAgIFdlIGNhbm5vdCB0ZXN0IHRoaXMgZGlyZWN0bHksIHNvIHdlIHRlc3QgVVRGLTggc2l6ZSBpbnN0ZWFkLAotICAgZXhwZWN0aW5nIHRoYXQgVENMX1VURl9NQVggaXMgY2hhbmdlZCBpZiBUY2wgZXZlciBzdXBwb3J0cwotICAgZWl0aGVyIFVURi0xNiBvciBVQ1MtNC4KLSAgIFJlZGhhdCA4IHNldHMgVENMX1VURl9NQVggdG8gNiwgYW5kIHVzZXMgd2NoYXJfdCBmb3IKLSAgIFRjbF9VbmljaGFyLiBUaGlzIGlzIGFsc28gb2sgYXMgbG9uZyBhcyBQeXRob24gdXNlcyBVQ1MtNCwKLSAgIGFzIHdlbGwuCi0qLwotI2lmIFRDTF9VVEZfTUFYICE9IDMgJiYgIShkZWZpbmVkKFB5X1VOSUNPREVfV0lERSkgJiYgVENMX1VURl9NQVg9PTYpCi0jZXJyb3IgInVuc3VwcG9ydGVkIFRjbCBjb25maWd1cmF0aW9uIgotI2VuZGlmCi0KICNpZiAhKGRlZmluZWQoTVNfV0lORE9XUykgfHwgZGVmaW5lZChfX0NZR1dJTl9fKSkKICNkZWZpbmUgSEFWRV9DUkVBVEVGSUxFSEFORExFUgogI2VuZGlmCkBAIC05NzUsNDAgKzk2Myw0NiBAQAogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBlbHNlIGlmIChQeVVuaWNvZGVfQ2hlY2sodmFsdWUpKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgKmluYnVmID0gUHlVbmljb2RlX0FTX1VOSUNPREUodmFsdWUpOwotICAgICAgICBQeV9zc2l6ZV90IHNpemUgPSBQeVVuaWNvZGVfR0VUX1NJWkUodmFsdWUpOwotICAgICAgICAvKiBUaGlzICNpZmRlZiBhc3N1bWVzIHRoYXQgVGNsIHVzZXMgVUNTLTIuCi0gICAgICAgICAgIFNlZSBUQ0xfVVRGX01BWCB0ZXN0IGFib3ZlLiAqLwotI2lmIGRlZmluZWQoUHlfVU5JQ09ERV9XSURFKSAmJiBUQ0xfVVRGX01BWCA9PSAzCisgICAgICAgIHZvaWQgKmluYnVmOworICAgICAgICBQeV9zc2l6ZV90IHNpemU7CisgICAgICAgIGludCBraW5kOwogICAgICAgICBUY2xfVW5pQ2hhciAqb3V0YnVmID0gTlVMTDsKICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICBzaXplX3QgYWxsb2NzaXplID0gKChzaXplX3Qpc2l6ZSkgKiBzaXplb2YoVGNsX1VuaUNoYXIpOwotICAgICAgICBpZiAoYWxsb2NzaXplID49IHNpemUpCi0gICAgICAgICAgICBvdXRidWYgPSAoVGNsX1VuaUNoYXIqKWNrYWxsb2MoYWxsb2NzaXplKTsKKyAgICAgICAgc2l6ZV90IGFsbG9jc2l6ZTsKKworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworCisgICAgICAgIGluYnVmID0gUHlVbmljb2RlX0RBVEEodmFsdWUpOworICAgICAgICBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodmFsdWUpOworICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQodmFsdWUpOworICAgICAgICBhbGxvY3NpemUgPSAoKHNpemVfdClzaXplKSAqIHNpemVvZihUY2xfVW5pQ2hhcik7CisgICAgICAgIG91dGJ1ZiA9IChUY2xfVW5pQ2hhciopY2thbGxvYyhhbGxvY3NpemUpOwogICAgICAgICAvKiBFbHNlIG92ZXJmbG93IG9jY3VycmVkLCBhbmQgd2UgdGFrZSB0aGUgbmV4dCBleGl0ICovCiAgICAgICAgIGlmICghb3V0YnVmKSB7CiAgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgewotICAgICAgICAgICAgaWYgKGluYnVmW2ldID49IDB4MTAwMDApIHsKKyAgICAgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBpbmJ1ZiwgaSk7CisgICAgICAgICAgICAvKiBXZSBjYW5ub3QgdGVzdCBmb3Igc2l6ZW9mKFRjbF9VbmlDaGFyKSBkaXJlY3RseSwKKyAgICAgICAgICAgICAgIHNvIHdlIHRlc3QgZm9yIFVURi04IHNpemUgaW5zdGVhZC4gKi8KKyNpZiBUQ0xfVVRGX01BWCA9PSAzCisgICAgICAgICAgICBpZiAoY2ggPj0gMHgxMDAwMCkgewogICAgICAgICAgICAgICAgIC8qIFRjbCBkb2Vzbid0IGRvIFVURi0xNiwgeWV0LiAqLwogICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2hhcmFjdGVyIFUrJXggaXMgYWJvdmUgdGhlIHJhbmdlICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihVKzAwMDAtVStGRkZGKSBhbGxvd2VkIGJ5IFRjbCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluYnVmW2ldKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2gpOwogICAgICAgICAgICAgICAgIGNrZnJlZShGUkVFQ0FTVCBvdXRidWYpOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2VuZGlmCiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBvdXRidWZbaV0gPSBpbmJ1ZltpXTsKKyAgICAgICAgICAgIG91dGJ1ZltpXSA9IGNoOwogICAgICAgICB9CiAgICAgICAgIHJlc3VsdCA9IFRjbF9OZXdVbmljb2RlT2JqKG91dGJ1Ziwgc2l6ZSk7CiAgICAgICAgIGNrZnJlZShGUkVFQ0FTVCBvdXRidWYpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwotI2Vsc2UKLSAgICAgICAgcmV0dXJuIFRjbF9OZXdVbmljb2RlT2JqKGluYnVmLCBzaXplKTsKLSNlbmRpZgotCiAgICAgfQogICAgIGVsc2UgaWYoUHlUY2xPYmplY3RfQ2hlY2sodmFsdWUpKSB7CiAgICAgICAgIFRjbF9PYmogKnYgPSAoKFB5VGNsT2JqZWN0Kil2YWx1ZSktPnZhbHVlOwpAQCAtMTA5MCwyNCArMTA4NCwxNCBAQAogICAgIH0KIAogICAgIGlmICh2YWx1ZS0+dHlwZVB0ciA9PSBhcHAtPlN0cmluZ1R5cGUpIHsKLSNpZiBkZWZpbmVkKFB5X1VOSUNPREVfV0lERSkgJiYgVENMX1VURl9NQVg9PTMKLSAgICAgICAgUHlPYmplY3QgKnJlc3VsdDsKLSAgICAgICAgaW50IHNpemU7Ci0gICAgICAgIFRjbF9VbmlDaGFyICppbnB1dDsKLSAgICAgICAgUHlfVU5JQ09ERSAqb3V0cHV0OwotCi0gICAgICAgIHNpemUgPSBUY2xfR2V0Q2hhckxlbmd0aCh2YWx1ZSk7Ci0gICAgICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLCBzaXplKTsKLSAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgaW5wdXQgPSBUY2xfR2V0VW5pY29kZSh2YWx1ZSk7Ci0gICAgICAgIG91dHB1dCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlc3VsdCk7Ci0gICAgICAgIHdoaWxlIChzaXplLS0pCi0gICAgICAgICAgICAqb3V0cHV0KysgPSAqaW5wdXQrKzsKLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyNpZiBUQ0xfVVRGX01BWD09MworICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21LaW5kQW5kRGF0YSgKKyAgICAgICAgICAgIFB5VW5pY29kZV8yQllURV9LSU5ELCBUY2xfR2V0VW5pY29kZSh2YWx1ZSksCisgICAgICAgICAgICBUY2xfR2V0Q2hhckxlbmd0aCh2YWx1ZSkpOwogI2Vsc2UKLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tVW5pY29kZShUY2xfR2V0VW5pY29kZSh2YWx1ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGNsX0dldENoYXJMZW5ndGgodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tS2luZEFuZERhdGEoCisgICAgICAgICAgICBQeVVuaWNvZGVfNEJZVEVfS0lORCwgVGNsX0dldFVuaWNvZGUodmFsdWUpLAorICAgICAgICAgICAgVGNsX0dldENoYXJMZW5ndGgodmFsdWUpKTsKICNlbmRpZgogICAgIH0KIApAQCAtMTM1OSw2ICsxMzQzLDExIEBACiAgICAgY2hhciAqY21kOwogICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOwogCisgICAgaWYgKFB5RXJyX1dhcm5FeChQeUV4Y19EZXByZWNhdGlvbldhcm5pbmcsCisgICAgICAgICAgICAgICAgICAgICAiZ2xvYmFsY2FsbCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gMy40IiwKKyAgICAgICAgICAgICAgICAgICAgIDEpIDwgMCkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBDSEVDS19UQ0xfQVBQQVJUTUVOVDsKIAogICAgIGNtZCAgPSBNZXJnZShhcmdzKTsKQEAgLTE0MDgsNiArMTM5NywxMSBAQAogICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOwogICAgIGludCBlcnI7CiAKKyAgICBpZiAoUHlFcnJfV2FybkV4KFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICJnbG9iYWxldmFsIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiAzLjQiLAorICAgICAgICAgICAgICAgICAgICAgMSkgPCAwKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiczpnbG9iYWxldmFsIiwgJnNjcmlwdCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC0xOTcwLDkgKzE5NjQsMTYgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBUa2FwcF9NZXJnZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgY2hhciAqcyA9IE1lcmdlKGFyZ3MpOworICAgIGNoYXIgKnM7CiAgICAgUHlPYmplY3QgKnJlcyA9IE5VTEw7CiAKKyAgICBpZiAoUHlFcnJfV2FybkV4KFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICJtZXJnZSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gMy40IiwKKyAgICAgICAgICAgICAgICAgICAgIDEpIDwgMCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBzID0gTWVyZ2UoYXJncyk7CisKICAgICBpZiAocykgewogICAgICAgICByZXMgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhzKTsKICAgICAgICAgY2tmcmVlKHMpOwpAQCAtMjAwNyw3ICsyMDA4LDcgQEAKIFB5dGhvbkNtZChDbGllbnREYXRhIGNsaWVudERhdGEsIFRjbF9JbnRlcnAgKmludGVycCwgaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIHsKICAgICBQeXRob25DbWRfQ2xpZW50RGF0YSAqZGF0YSA9IChQeXRob25DbWRfQ2xpZW50RGF0YSAqKWNsaWVudERhdGE7Ci0gICAgUHlPYmplY3QgKnNlbGYsICpmdW5jLCAqYXJnLCAqcmVzOworICAgIFB5T2JqZWN0ICpmdW5jLCAqYXJnLCAqcmVzOwogICAgIGludCBpLCBydjsKICAgICBUY2xfT2JqICpvYmpfcmVzOwogCkBAIC0yMDE2LDcgKzIwMTcsNiBAQAogICAgIC8qIFRCRDogbm8gZXJyb3IgY2hlY2tpbmcgaGVyZSBzaW5jZSB3ZSBrbm93LCB2aWEgdGhlCiAgICAgICogVGthcHBfQ3JlYXRlQ29tbWFuZCgpIHRoYXQgdGhlIGNsaWVudCBkYXRhIGlzIGEgdHdvLXR1cGxlCiAgICAgICovCi0gICAgc2VsZiA9IGRhdGEtPnNlbGY7CiAgICAgZnVuYyA9IGRhdGEtPmZ1bmM7CiAKICAgICAvKiBDcmVhdGUgYXJndW1lbnQgbGlzdCAoYXJndjEsIC4uLiwgYXJndk4pICovCkBAIC0yNDE1LDExICsyNDE1LDkgQEAKIFRrdHRfUmVwcihQeU9iamVjdCAqc2VsZikKIHsKICAgICBUa3R0T2JqZWN0ICp2ID0gKFRrdHRPYmplY3QgKilzZWxmOwotICAgIGNoYXIgYnVmWzEwMF07Ci0KLSAgICBQeU9TX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICI8dGt0aW1lcnRva2VuIGF0ICVwJXM+IiwgdiwKLSAgICAgICAgICAgICAgICAgICAgdi0+ZnVuYyA9PSBOVUxMID8gIiwgaGFuZGxlciBkZWxldGVkIiA6ICIiKTsKLSAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmcoYnVmKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjx0a3RpbWVydG9rZW4gYXQgJXAlcz4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LT5mdW5jID09IE5VTEwgPyAiLCBoYW5kbGVyIGRlbGV0ZWQiIDogIiIpOwogfQogCiBzdGF0aWMgUHlUeXBlT2JqZWN0IFRrdHRfVHlwZSA9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL193aW5hcGkuYyBiL01vZHVsZXMvX3dpbmFwaS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNmI1ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Nb2R1bGVzL193aW5hcGkuYwpAQCAtMCwwICsxLDEzMjggQEAKKy8qCisgKiBTdXBwb3J0IHJvdXRpbmVzIGZyb20gdGhlIFdpbmRvd3MgQVBJCisgKgorICogVGhpcyBtb2R1bGUgd2FzIG9yaWdpbmFsbHkgY3JlYXRlZCBieSBtZXJnaW5nIFBDL19zdWJwcm9jZXNzLmMgd2l0aAorICogTW9kdWxlcy9fbXVsdGlwcm9jZXNzaW5nL3dpbjMyX2Z1bmN0aW9ucy5jLgorICoKKyAqIENvcHlyaWdodCAoYykgMjAwNCBieSBGcmVkcmlrIEx1bmRoIDxmcmVkcmlrQHB5dGhvbndhcmUuY29tPgorICogQ29weXJpZ2h0IChjKSAyMDA0IGJ5IFNlY3JldCBMYWJzIEFCLCBodHRwOi8vd3d3LnB5dGhvbndhcmUuY29tCisgKiBDb3B5cmlnaHQgKGMpIDIwMDQgYnkgUGV0ZXIgQXN0cmFuZCA8YXN0cmFuZEBseXNhdG9yLmxpdS5zZT4KKyAqCisgKiBCeSBvYnRhaW5pbmcsIHVzaW5nLCBhbmQvb3IgY29weWluZyB0aGlzIHNvZnR3YXJlIGFuZC9vciBpdHMKKyAqIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiwgeW91IGFncmVlIHRoYXQgeW91IGhhdmUgcmVhZCwgdW5kZXJzdG9vZCwKKyAqIGFuZCB3aWxsIGNvbXBseSB3aXRoIHRoZSBmb2xsb3dpbmcgdGVybXMgYW5kIGNvbmRpdGlvbnM6CisgKgorICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQKKyAqIGl0cyBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGFuZCB3aXRob3V0IGZlZSBpcworICogaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFycyBpbgorICogYWxsIGNvcGllcywgYW5kIHRoYXQgYm90aCB0aGF0IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbgorICogbm90aWNlIGFwcGVhciBpbiBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIHRoZQorICogYXV0aG9ycyBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0bworICogZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yCisgKiBwZXJtaXNzaW9uLgorICoKKyAqIFRIRSBBVVRIT1JTIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAorICogSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLgorICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgSU5ESVJFQ1QgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MKKyAqIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKKyAqIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCisgKiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KKyAqCisgKi8KKworLyogTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50LiAqLworLyogU2VlIGh0dHA6Ly93d3cucHl0aG9uLm9yZy8yLjQvbGljZW5zZSBmb3IgbGljZW5zaW5nIGRldGFpbHMuICovCisKKyNpbmNsdWRlICJQeXRob24uaCIKKyNpbmNsdWRlICJzdHJ1Y3RtZW1iZXIuaCIKKworI2RlZmluZSBXSU5ET1dTX0xFQU5fQU5EX01FQU4KKyNpbmNsdWRlICJ3aW5kb3dzLmgiCisjaW5jbHVkZSA8Y3J0ZGJnLmg+CisKKyNpZiBkZWZpbmVkKE1TX1dJTjMyKSAmJiAhZGVmaW5lZChNU19XSU42NCkKKyNkZWZpbmUgSEFORExFX1RPX1BZTlVNKGhhbmRsZSkgXAorICAgIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKCh1bnNpZ25lZCBsb25nKSBoYW5kbGUpCisjZGVmaW5lIFBZTlVNX1RPX0hBTkRMRShvYmopICgoSEFORExFKVB5TG9uZ19Bc1Vuc2lnbmVkTG9uZyhvYmopKQorI2RlZmluZSBGX1BPSU5URVIgImsiCisjZGVmaW5lIFRfUE9JTlRFUiBUX1VMT05HCisjZWxzZQorI2RlZmluZSBIQU5ETEVfVE9fUFlOVU0oaGFuZGxlKSBcCisgICAgUHlMb25nX0Zyb21VbnNpZ25lZExvbmdMb25nKCh1bnNpZ25lZCBsb25nIGxvbmcpIGhhbmRsZSkKKyNkZWZpbmUgUFlOVU1fVE9fSEFORExFKG9iaikgKChIQU5ETEUpUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZyhvYmopKQorI2RlZmluZSBGX1BPSU5URVIgIksiCisjZGVmaW5lIFRfUE9JTlRFUiBUX1VMT05HTE9ORworI2VuZGlmCisKKyNkZWZpbmUgRl9IQU5ETEUgRl9QT0lOVEVSCisjZGVmaW5lIEZfRFdPUkQgImsiCisjZGVmaW5lIEZfQk9PTCAiaSIKKyNkZWZpbmUgRl9VSU5UICJJIgorCisjZGVmaW5lIFRfSEFORExFIFRfUE9JTlRFUgorCisvKiBHcmFiIENhbmNlbElvRXggZHluYW1pY2FsbHkgZnJvbSBrZXJuZWwzMiAqLworc3RhdGljIGludCBoYXNfQ2FuY2VsSW9FeCA9IC0xOworc3RhdGljIEJPT0wgKENBTExCQUNLICpQeV9DYW5jZWxJb0V4KShIQU5ETEUsIExQT1ZFUkxBUFBFRCk7CisKK3N0YXRpYyBpbnQKK2NoZWNrX0NhbmNlbElvRXgoKQoreworICAgIGlmIChoYXNfQ2FuY2VsSW9FeCA9PSAtMSkKKyAgICB7CisgICAgICAgIEhJTlNUQU5DRSBoS2VybmVsMzIgPSBHZXRNb2R1bGVIYW5kbGUoIktFUk5FTDMyIik7CisgICAgICAgICogKEZBUlBST0MgKikgJlB5X0NhbmNlbElvRXggPSBHZXRQcm9jQWRkcmVzcyhoS2VybmVsMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ2FuY2VsSW9FeCIpOworICAgICAgICBoYXNfQ2FuY2VsSW9FeCA9IChQeV9DYW5jZWxJb0V4ICE9IE5VTEwpOworICAgIH0KKyAgICByZXR1cm4gaGFzX0NhbmNlbElvRXg7Cit9CisKKworLyoKKyAqIEEgUHl0aG9uIG9iamVjdCB3cmFwcGluZyBhbiBPVkVSTEFQUEVEIHN0cnVjdHVyZSBhbmQgb3RoZXIgdXNlZnVsIGRhdGEKKyAqIGZvciBvdmVybGFwcGVkIEkvTworICovCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgT1ZFUkxBUFBFRCBvdmVybGFwcGVkOworICAgIC8qIEZvciBjb252ZW5pZW5jZSwgd2Ugc3RvcmUgdGhlIGZpbGUgaGFuZGxlIHRvbyAqLworICAgIEhBTkRMRSBoYW5kbGU7CisgICAgLyogV2hldGhlciB0aGVyZSdzIEkvTyBpbiBmbGlnaHQgKi8KKyAgICBpbnQgcGVuZGluZzsKKyAgICAvKiBXaGV0aGVyIEkvTyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5ICovCisgICAgaW50IGNvbXBsZXRlZDsKKyAgICAvKiBCdWZmZXIgdXNlZCBmb3IgcmVhZGluZyAob3B0aW9uYWwpICovCisgICAgUHlPYmplY3QgKnJlYWRfYnVmZmVyOworICAgIC8qIEJ1ZmZlciB1c2VkIGZvciB3cml0aW5nIChvcHRpb25hbCkgKi8KKyAgICBQeV9idWZmZXIgd3JpdGVfYnVmZmVyOworfSBPdmVybGFwcGVkT2JqZWN0OworCitzdGF0aWMgdm9pZAorb3ZlcmxhcHBlZF9kZWFsbG9jKE92ZXJsYXBwZWRPYmplY3QgKnNlbGYpCit7CisgICAgRFdPUkQgYnl0ZXM7CisgICAgaW50IGVyciA9IEdldExhc3RFcnJvcigpOworICAgIGlmIChzZWxmLT5wZW5kaW5nKSB7CisgICAgICAgIC8qIG1ha2UgaXQgYSBwcm9ncmFtbWluZyBlcnJvciB0byBkZWFsbG9jYXRlIHdoaWxlIG9wZXJhdGlvbgorICAgICAgICAgICBpcyBwZW5kaW5nLCBldmVuIGlmIHdlIGNhbiBzYWZlbHkgY2FuY2VsIGl0ICovCisgICAgICAgIGlmIChjaGVja19DYW5jZWxJb0V4KCkgJiYKKyAgICAgICAgICAgICAgICBQeV9DYW5jZWxJb0V4KHNlbGYtPmhhbmRsZSwgJnNlbGYtPm92ZXJsYXBwZWQpKQorICAgICAgICAgICAgR2V0T3ZlcmxhcHBlZFJlc3VsdChzZWxmLT5oYW5kbGUsICZzZWxmLT5vdmVybGFwcGVkLCAmYnl0ZXMsIFRSVUUpOworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIkkvTyBvcGVyYXRpb25zIHN0aWxsIGluIGZsaWdodCB3aGlsZSBkZXN0cm95aW5nICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJPdmVybGFwcGVkIG9iamVjdCwgdGhlIHByb2Nlc3MgbWF5IGNyYXNoIik7CisgICAgICAgIFB5RXJyX1dyaXRlVW5yYWlzYWJsZShOVUxMKTsKKyAgICB9CisgICAgQ2xvc2VIYW5kbGUoc2VsZi0+b3ZlcmxhcHBlZC5oRXZlbnQpOworICAgIFNldExhc3RFcnJvcihlcnIpOworICAgIGlmIChzZWxmLT53cml0ZV9idWZmZXIub2JqKQorICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZzZWxmLT53cml0ZV9idWZmZXIpOworICAgIFB5X0NMRUFSKHNlbGYtPnJlYWRfYnVmZmVyKTsKKyAgICBQeU9iamVjdF9EZWwoc2VsZik7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitvdmVybGFwcGVkX0dldE92ZXJsYXBwZWRSZXN1bHQoT3ZlcmxhcHBlZE9iamVjdCAqc2VsZiwgUHlPYmplY3QgKndhaXRvYmopCit7CisgICAgaW50IHdhaXQ7CisgICAgQk9PTCByZXM7CisgICAgRFdPUkQgdHJhbnNmZXJyZWQgPSAwOworICAgIERXT1JEIGVycjsKKworICAgIHdhaXQgPSBQeU9iamVjdF9Jc1RydWUod2FpdG9iaik7CisgICAgaWYgKHdhaXQgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgcmVzID0gR2V0T3ZlcmxhcHBlZFJlc3VsdChzZWxmLT5oYW5kbGUsICZzZWxmLT5vdmVybGFwcGVkLCAmdHJhbnNmZXJyZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YWl0ICE9IDApOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBlcnIgPSByZXMgPyBFUlJPUl9TVUNDRVNTIDogR2V0TGFzdEVycm9yKCk7CisgICAgc3dpdGNoIChlcnIpIHsKKyAgICAgICAgY2FzZSBFUlJPUl9TVUNDRVNTOgorICAgICAgICBjYXNlIEVSUk9SX01PUkVfREFUQToKKyAgICAgICAgY2FzZSBFUlJPUl9PUEVSQVRJT05fQUJPUlRFRDoKKyAgICAgICAgICAgIHNlbGYtPmNvbXBsZXRlZCA9IDE7CisgICAgICAgICAgICBzZWxmLT5wZW5kaW5nID0gMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEVSUk9SX0lPX0lOQ09NUExFVEU6CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHNlbGYtPnBlbmRpbmcgPSAwOworICAgICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyKFB5RXhjX0lPRXJyb3IsIGVycik7CisgICAgfQorICAgIGlmIChzZWxmLT5jb21wbGV0ZWQgJiYgc2VsZi0+cmVhZF9idWZmZXIgIT0gTlVMTCkgeworICAgICAgICBhc3NlcnQoUHlCeXRlc19DaGVja0V4YWN0KHNlbGYtPnJlYWRfYnVmZmVyKSk7CisgICAgICAgIGlmICh0cmFuc2ZlcnJlZCAhPSBQeUJ5dGVzX0dFVF9TSVpFKHNlbGYtPnJlYWRfYnVmZmVyKSAmJgorICAgICAgICAgICAgX1B5Qnl0ZXNfUmVzaXplKCZzZWxmLT5yZWFkX2J1ZmZlciwgdHJhbnNmZXJyZWQpKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJJSSIsICh1bnNpZ25lZCkgdHJhbnNmZXJyZWQsICh1bnNpZ25lZCkgZXJyKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK292ZXJsYXBwZWRfZ2V0YnVmZmVyKE92ZXJsYXBwZWRPYmplY3QgKnNlbGYpCit7CisgICAgUHlPYmplY3QgKnJlczsKKyAgICBpZiAoIXNlbGYtPmNvbXBsZXRlZCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJjYW4ndCBnZXQgcmVhZCBidWZmZXIgYmVmb3JlIEdldE92ZXJsYXBwZWRSZXN1bHQoKSAiCisgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmFscyB0aGUgb3BlcmF0aW9uIGNvbXBsZXRlZCIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgcmVzID0gc2VsZi0+cmVhZF9idWZmZXIgPyBzZWxmLT5yZWFkX2J1ZmZlciA6IFB5X05vbmU7CisgICAgUHlfSU5DUkVGKHJlcyk7CisgICAgcmV0dXJuIHJlczsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK292ZXJsYXBwZWRfY2FuY2VsKE92ZXJsYXBwZWRPYmplY3QgKnNlbGYpCit7CisgICAgQk9PTCByZXMgPSBUUlVFOworCisgICAgaWYgKHNlbGYtPnBlbmRpbmcpIHsKKyAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgICAgICBpZiAoY2hlY2tfQ2FuY2VsSW9FeCgpKQorICAgICAgICAgICAgcmVzID0gUHlfQ2FuY2VsSW9FeChzZWxmLT5oYW5kbGUsICZzZWxmLT5vdmVybGFwcGVkKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzID0gQ2FuY2VsSW8oc2VsZi0+aGFuZGxlKTsKKyAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICB9CisKKyAgICAvKiBDYW5jZWxJb0V4IHJldHVybnMgRVJST1JfTk9UX0ZPVU5EIGlmIHRoZSBJL08gY29tcGxldGVkIGluLWJldHdlZW4gKi8KKyAgICBpZiAoIXJlcyAmJiBHZXRMYXN0RXJyb3IoKSAhPSBFUlJPUl9OT1RfRk9VTkQpCisgICAgICAgIHJldHVybiBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycihQeUV4Y19JT0Vycm9yLCAwKTsKKyAgICBzZWxmLT5wZW5kaW5nID0gMDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIG92ZXJsYXBwZWRfbWV0aG9kc1tdID0geworICAgIHsiR2V0T3ZlcmxhcHBlZFJlc3VsdCIsIChQeUNGdW5jdGlvbikgb3ZlcmxhcHBlZF9HZXRPdmVybGFwcGVkUmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfTywgTlVMTH0sCisgICAgeyJnZXRidWZmZXIiLCAoUHlDRnVuY3Rpb24pIG92ZXJsYXBwZWRfZ2V0YnVmZmVyLCBNRVRIX05PQVJHUywgTlVMTH0sCisgICAgeyJjYW5jZWwiLCAoUHlDRnVuY3Rpb24pIG92ZXJsYXBwZWRfY2FuY2VsLCBNRVRIX05PQVJHUywgTlVMTH0sCisgICAge05VTEx9Cit9OworCitzdGF0aWMgUHlNZW1iZXJEZWYgb3ZlcmxhcHBlZF9tZW1iZXJzW10gPSB7CisgICAgeyJldmVudCIsIFRfSEFORExFLAorICAgICBvZmZzZXRvZihPdmVybGFwcGVkT2JqZWN0LCBvdmVybGFwcGVkKSArIG9mZnNldG9mKE9WRVJMQVBQRUQsIGhFdmVudCksCisgICAgIFJFQURPTkxZLCAib3ZlcmxhcHBlZCBldmVudCBoYW5kbGUifSwKKyAgICB7TlVMTH0KK307CisKK1B5VHlwZU9iamVjdCBPdmVybGFwcGVkVHlwZSA9IHsKKyAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKKyAgICAvKiB0cF9uYW1lICAgICAgICAgICAqLyAiX3dpbmFwaS5PdmVybGFwcGVkIiwKKyAgICAvKiB0cF9iYXNpY3NpemUgICAgICAqLyBzaXplb2YoT3ZlcmxhcHBlZE9iamVjdCksCisgICAgLyogdHBfaXRlbXNpemUgICAgICAgKi8gMCwKKyAgICAvKiB0cF9kZWFsbG9jICAgICAgICAqLyAoZGVzdHJ1Y3Rvcikgb3ZlcmxhcHBlZF9kZWFsbG9jLAorICAgIC8qIHRwX3ByaW50ICAgICAgICAgICovIDAsCisgICAgLyogdHBfZ2V0YXR0ciAgICAgICAgKi8gMCwKKyAgICAvKiB0cF9zZXRhdHRyICAgICAgICAqLyAwLAorICAgIC8qIHRwX3Jlc2VydmVkICAgICAgICovIDAsCisgICAgLyogdHBfcmVwciAgICAgICAgICAgKi8gMCwKKyAgICAvKiB0cF9hc19udW1iZXIgICAgICAqLyAwLAorICAgIC8qIHRwX2FzX3NlcXVlbmNlICAgICovIDAsCisgICAgLyogdHBfYXNfbWFwcGluZyAgICAgKi8gMCwKKyAgICAvKiB0cF9oYXNoICAgICAgICAgICAqLyAwLAorICAgIC8qIHRwX2NhbGwgICAgICAgICAgICovIDAsCisgICAgLyogdHBfc3RyICAgICAgICAgICAgKi8gMCwKKyAgICAvKiB0cF9nZXRhdHRybyAgICAgICAqLyAwLAorICAgIC8qIHRwX3NldGF0dHJvICAgICAgICovIDAsCisgICAgLyogdHBfYXNfYnVmZmVyICAgICAgKi8gMCwKKyAgICAvKiB0cF9mbGFncyAgICAgICAgICAqLyBQeV9UUEZMQUdTX0RFRkFVTFQsCisgICAgLyogdHBfZG9jICAgICAgICAgICAgKi8gIk9WRVJMQVBQRUQgc3RydWN0dXJlIHdyYXBwZXIiLAorICAgIC8qIHRwX3RyYXZlcnNlICAgICAgICovIDAsCisgICAgLyogdHBfY2xlYXIgICAgICAgICAgKi8gMCwKKyAgICAvKiB0cF9yaWNoY29tcGFyZSAgICAqLyAwLAorICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovIDAsCisgICAgLyogdHBfaXRlciAgICAgICAgICAgKi8gMCwKKyAgICAvKiB0cF9pdGVybmV4dCAgICAgICAqLyAwLAorICAgIC8qIHRwX21ldGhvZHMgICAgICAgICovIG92ZXJsYXBwZWRfbWV0aG9kcywKKyAgICAvKiB0cF9tZW1iZXJzICAgICAgICAqLyBvdmVybGFwcGVkX21lbWJlcnMsCisgICAgLyogdHBfZ2V0c2V0ICAgICAgICAgKi8gMCwKKyAgICAvKiB0cF9iYXNlICAgICAgICAgICAqLyAwLAorICAgIC8qIHRwX2RpY3QgICAgICAgICAgICovIDAsCisgICAgLyogdHBfZGVzY3JfZ2V0ICAgICAgKi8gMCwKKyAgICAvKiB0cF9kZXNjcl9zZXQgICAgICAqLyAwLAorICAgIC8qIHRwX2RpY3RvZmZzZXQgICAgICovIDAsCisgICAgLyogdHBfaW5pdCAgICAgICAgICAgKi8gMCwKKyAgICAvKiB0cF9hbGxvYyAgICAgICAgICAqLyAwLAorICAgIC8qIHRwX25ldyAgICAgICAgICAgICovIDAsCit9OworCitzdGF0aWMgT3ZlcmxhcHBlZE9iamVjdCAqCituZXdfb3ZlcmxhcHBlZChIQU5ETEUgaGFuZGxlKQoreworICAgIE92ZXJsYXBwZWRPYmplY3QgKnNlbGY7CisKKyAgICBzZWxmID0gUHlPYmplY3RfTmV3KE92ZXJsYXBwZWRPYmplY3QsICZPdmVybGFwcGVkVHlwZSk7CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBzZWxmLT5oYW5kbGUgPSBoYW5kbGU7CisgICAgc2VsZi0+cmVhZF9idWZmZXIgPSBOVUxMOworICAgIHNlbGYtPnBlbmRpbmcgPSAwOworICAgIHNlbGYtPmNvbXBsZXRlZCA9IDA7CisgICAgbWVtc2V0KCZzZWxmLT5vdmVybGFwcGVkLCAwLCBzaXplb2YoT1ZFUkxBUFBFRCkpOworICAgIG1lbXNldCgmc2VsZi0+d3JpdGVfYnVmZmVyLCAwLCBzaXplb2YoUHlfYnVmZmVyKSk7CisgICAgLyogTWFudWFsIHJlc2V0LCBpbml0aWFsbHkgbm9uLXNpZ25hbGxlZCAqLworICAgIHNlbGYtPm92ZXJsYXBwZWQuaEV2ZW50ID0gQ3JlYXRlRXZlbnQoTlVMTCwgVFJVRSwgRkFMU0UsIE5VTEwpOworICAgIHJldHVybiBzZWxmOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLworLyogd2luZG93cyBBUEkgZnVuY3Rpb25zICovCisKK1B5RG9jX1NUUlZBUihDbG9zZUhhbmRsZV9kb2MsCisiQ2xvc2VIYW5kbGUoaGFuZGxlKSAtPiBOb25lXG5cCitcblwKK0Nsb3NlIGhhbmRsZS4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9DbG9zZUhhbmRsZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgSEFORExFIGhPYmplY3Q7CisgICAgQk9PTCBzdWNjZXNzOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIEZfSEFORExFICI6Q2xvc2VIYW5kbGUiLCAmaE9iamVjdCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHN1Y2Nlc3MgPSBDbG9zZUhhbmRsZShoT2JqZWN0KTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7CisKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9Db25uZWN0TmFtZWRQaXBlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgSEFORExFIGhOYW1lZFBpcGU7CisgICAgaW50IHVzZV9vdmVybGFwcGVkID0gMDsKKyAgICBCT09MIHN1Y2Nlc3M7CisgICAgT3ZlcmxhcHBlZE9iamVjdCAqb3ZlcmxhcHBlZCA9IE5VTEw7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJoYW5kbGUiLCAib3ZlcmxhcHBlZCIsIE5VTEx9OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGX0hBTkRMRSAifCIgRl9CT09MLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhOYW1lZFBpcGUsICZ1c2Vfb3ZlcmxhcHBlZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKHVzZV9vdmVybGFwcGVkKSB7CisgICAgICAgIG92ZXJsYXBwZWQgPSBuZXdfb3ZlcmxhcHBlZChoTmFtZWRQaXBlKTsKKyAgICAgICAgaWYgKCFvdmVybGFwcGVkKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHN1Y2Nlc3MgPSBDb25uZWN0TmFtZWRQaXBlKGhOYW1lZFBpcGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxhcHBlZCA/ICZvdmVybGFwcGVkLT5vdmVybGFwcGVkIDogTlVMTCk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmIChvdmVybGFwcGVkKSB7CisgICAgICAgIGludCBlcnIgPSBHZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgLyogT3ZlcmxhcHBlZCBDb25uZWN0TmFtZWRQaXBlIG5ldmVyIHJldHVybnMgYSBzdWNjZXNzIGNvZGUgKi8KKyAgICAgICAgYXNzZXJ0KHN1Y2Nlc3MgPT0gMCk7CisgICAgICAgIGlmIChlcnIgPT0gRVJST1JfSU9fUEVORElORykKKyAgICAgICAgICAgIG92ZXJsYXBwZWQtPnBlbmRpbmcgPSAxOworICAgICAgICBlbHNlIGlmIChlcnIgPT0gRVJST1JfUElQRV9DT05ORUNURUQpCisgICAgICAgICAgICBTZXRFdmVudChvdmVybGFwcGVkLT5vdmVybGFwcGVkLmhFdmVudCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUHlfREVDUkVGKG92ZXJsYXBwZWQpOworICAgICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKGVycik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKSBvdmVybGFwcGVkOworICAgIH0KKyAgICBpZiAoIXN1Y2Nlc3MpCisgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKKworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgUHlPYmplY3QgKgord2luYXBpX0NyZWF0ZUZpbGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIExQQ1RTVFIgbHBGaWxlTmFtZTsKKyAgICBEV09SRCBkd0Rlc2lyZWRBY2Nlc3M7CisgICAgRFdPUkQgZHdTaGFyZU1vZGU7CisgICAgTFBTRUNVUklUWV9BVFRSSUJVVEVTIGxwU2VjdXJpdHlBdHRyaWJ1dGVzOworICAgIERXT1JEIGR3Q3JlYXRpb25EaXNwb3NpdGlvbjsKKyAgICBEV09SRCBkd0ZsYWdzQW5kQXR0cmlidXRlczsKKyAgICBIQU5ETEUgaFRlbXBsYXRlRmlsZTsKKyAgICBIQU5ETEUgaGFuZGxlOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzIiBGX0RXT1JEIEZfRFdPUkQgRl9QT0lOVEVSCisgICAgICAgICAgICAgICAgICAgICAgICAgIEZfRFdPUkQgRl9EV09SRCBGX0hBTkRMRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmxwRmlsZU5hbWUsICZkd0Rlc2lyZWRBY2Nlc3MsICZkd1NoYXJlTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmxwU2VjdXJpdHlBdHRyaWJ1dGVzLCAmZHdDcmVhdGlvbkRpc3Bvc2l0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmZHdGbGFnc0FuZEF0dHJpYnV0ZXMsICZoVGVtcGxhdGVGaWxlKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgaGFuZGxlID0gQ3JlYXRlRmlsZShscEZpbGVOYW1lLCBkd0Rlc2lyZWRBY2Nlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICBkd1NoYXJlTW9kZSwgbHBTZWN1cml0eUF0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBkd0NyZWF0aW9uRGlzcG9zaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICBkd0ZsYWdzQW5kQXR0cmlidXRlcywgaFRlbXBsYXRlRmlsZSk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmIChoYW5kbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpCisgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKKworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKEZfSEFORExFLCBoYW5kbGUpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgord2luYXBpX0NyZWF0ZU5hbWVkUGlwZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgTFBDVFNUUiBscE5hbWU7CisgICAgRFdPUkQgZHdPcGVuTW9kZTsKKyAgICBEV09SRCBkd1BpcGVNb2RlOworICAgIERXT1JEIG5NYXhJbnN0YW5jZXM7CisgICAgRFdPUkQgbk91dEJ1ZmZlclNpemU7CisgICAgRFdPUkQgbkluQnVmZmVyU2l6ZTsKKyAgICBEV09SRCBuRGVmYXVsdFRpbWVPdXQ7CisgICAgTFBTRUNVUklUWV9BVFRSSUJVVEVTIGxwU2VjdXJpdHlBdHRyaWJ1dGVzOworICAgIEhBTkRMRSBoYW5kbGU7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInMiIEZfRFdPUkQgRl9EV09SRCBGX0RXT1JECisgICAgICAgICAgICAgICAgICAgICAgICAgIEZfRFdPUkQgRl9EV09SRCBGX0RXT1JEIEZfUE9JTlRFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmxwTmFtZSwgJmR3T3Blbk1vZGUsICZkd1BpcGVNb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmbk1heEluc3RhbmNlcywgJm5PdXRCdWZmZXJTaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmbkluQnVmZmVyU2l6ZSwgJm5EZWZhdWx0VGltZU91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmxwU2VjdXJpdHlBdHRyaWJ1dGVzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgaGFuZGxlID0gQ3JlYXRlTmFtZWRQaXBlKGxwTmFtZSwgZHdPcGVuTW9kZSwgZHdQaXBlTW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbk1heEluc3RhbmNlcywgbk91dEJ1ZmZlclNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5JbkJ1ZmZlclNpemUsIG5EZWZhdWx0VGltZU91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbHBTZWN1cml0eUF0dHJpYnV0ZXMpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAoaGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7CisKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZShGX0hBTkRMRSwgaGFuZGxlKTsKK30KKworUHlEb2NfU1RSVkFSKENyZWF0ZVBpcGVfZG9jLAorIkNyZWF0ZVBpcGUocGlwZV9hdHRycywgc2l6ZSkgLT4gKHJlYWRfaGFuZGxlLCB3cml0ZV9oYW5kbGUpXG5cCitcblwKK0NyZWF0ZSBhbiBhbm9ueW1vdXMgcGlwZSwgYW5kIHJldHVybiBoYW5kbGVzIHRvIHRoZSByZWFkIGFuZFxuXAord3JpdGUgZW5kcyBvZiB0aGUgcGlwZS5cblwKK1xuXAorcGlwZV9hdHRycyBpcyBpZ25vcmVkIGludGVybmFsbHkgYW5kIGNhbiBiZSBOb25lLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgord2luYXBpX0NyZWF0ZVBpcGUoUHlPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQoreworICAgIEhBTkRMRSByZWFkX3BpcGU7CisgICAgSEFORExFIHdyaXRlX3BpcGU7CisgICAgQk9PTCByZXN1bHQ7CisKKyAgICBQeU9iamVjdCogcGlwZV9hdHRyaWJ1dGVzOyAvKiBpZ25vcmVkICovCisgICAgRFdPUkQgc2l6ZTsKKworICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8iIEZfRFdPUkQgIjpDcmVhdGVQaXBlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZwaXBlX2F0dHJpYnV0ZXMsICZzaXplKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgcmVzdWx0ID0gQ3JlYXRlUGlwZSgmcmVhZF9waXBlLCAmd3JpdGVfcGlwZSwgTlVMTCwgc2l6ZSk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmICghIHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKEdldExhc3RFcnJvcigpKTsKKworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKAorICAgICAgICAiTk4iLCBIQU5ETEVfVE9fUFlOVU0ocmVhZF9waXBlKSwgSEFORExFX1RPX1BZTlVNKHdyaXRlX3BpcGUpKTsKK30KKworLyogaGVscGVycyBmb3IgY3JlYXRlcHJvY2VzcyAqLworCitzdGF0aWMgdW5zaWduZWQgbG9uZworZ2V0dWxvbmcoUHlPYmplY3QqIG9iaiwgY2hhciogbmFtZSkKK3sKKyAgICBQeU9iamVjdCogdmFsdWU7CisgICAgdW5zaWduZWQgbG9uZyByZXQ7CisKKyAgICB2YWx1ZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCBuYW1lKTsKKyAgICBpZiAoISB2YWx1ZSkgeworICAgICAgICBQeUVycl9DbGVhcigpOyAvKiBGSVhNRTogcHJvcGFnYXRlIGVycm9yPyAqLworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0ID0gUHlMb25nX0FzVW5zaWduZWRMb25nKHZhbHVlKTsKKyAgICBQeV9ERUNSRUYodmFsdWUpOworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBIQU5ETEUKK2dldGhhbmRsZShQeU9iamVjdCogb2JqLCBjaGFyKiBuYW1lKQoreworICAgIFB5T2JqZWN0KiB2YWx1ZTsKKyAgICBIQU5ETEUgcmV0OworCisgICAgdmFsdWUgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgbmFtZSk7CisgICAgaWYgKCEgdmFsdWUpIHsKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsgLyogRklYTUU6IHByb3BhZ2F0ZSBlcnJvcj8gKi8KKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmICh2YWx1ZSA9PSBQeV9Ob25lKQorICAgICAgICByZXQgPSBOVUxMOworICAgIGVsc2UKKyAgICAgICAgcmV0ID0gUFlOVU1fVE9fSEFORExFKHZhbHVlKTsKKyAgICBQeV9ERUNSRUYodmFsdWUpOworICAgIHJldHVybiByZXQ7Cit9CisKK3N0YXRpYyBQeU9iamVjdCoKK2dldGVudmlyb25tZW50KFB5T2JqZWN0KiBlbnZpcm9ubWVudCkKK3sKKyAgICBQeV9zc2l6ZV90IGksIGVudnNpemUsIHRvdGFsc2l6ZTsKKyAgICBQeV9VQ1M0ICpidWZmZXIgPSBOVUxMLCAqcCwgKmVuZDsKKyAgICBQeU9iamVjdCAqa2V5cywgKnZhbHVlcywgKnJlczsKKworICAgIC8qIGNvbnZlcnQgZW52aXJvbm1lbnQgZGljdGlvbmFyeSB0byB3aW5kb3dzIGVudmlyb21lbnQgc3RyaW5nICovCisgICAgaWYgKCEgUHlNYXBwaW5nX0NoZWNrKGVudmlyb25tZW50KSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoCisgICAgICAgICAgICBQeUV4Y19UeXBlRXJyb3IsICJlbnZpcm9ubWVudCBtdXN0IGJlIGRpY3Rpb25hcnkgb3IgTm9uZSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBlbnZzaXplID0gUHlNYXBwaW5nX0xlbmd0aChlbnZpcm9ubWVudCk7CisKKyAgICBrZXlzID0gUHlNYXBwaW5nX0tleXMoZW52aXJvbm1lbnQpOworICAgIHZhbHVlcyA9IFB5TWFwcGluZ19WYWx1ZXMoZW52aXJvbm1lbnQpOworICAgIGlmICgha2V5cyB8fCAhdmFsdWVzKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgdG90YWxzaXplID0gMTsgLyogdHJhaWxpbmcgbnVsbCBjaGFyYWN0ZXIgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgZW52c2l6ZTsgaSsrKSB7CisgICAgICAgIFB5T2JqZWN0KiBrZXkgPSBQeUxpc3RfR0VUX0lURU0oa2V5cywgaSk7CisgICAgICAgIFB5T2JqZWN0KiB2YWx1ZSA9IFB5TGlzdF9HRVRfSVRFTSh2YWx1ZXMsIGkpOworCisgICAgICAgIGlmICghIFB5VW5pY29kZV9DaGVjayhrZXkpIHx8ICEgUHlVbmljb2RlX0NoZWNrKHZhbHVlKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAiZW52aXJvbm1lbnQgY2FuIG9ubHkgY29udGFpbiBzdHJpbmdzIik7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIHRvdGFsc2l6ZSArPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChrZXkpICsgMTsgICAgLyogKzEgZm9yICc9JyAqLworICAgICAgICB0b3RhbHNpemUgKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgodmFsdWUpICsgMTsgIC8qICsxIGZvciAnXDAnICovCisgICAgfQorCisgICAgYnVmZmVyID0gUHlNZW1fTWFsbG9jKHRvdGFsc2l6ZSAqIHNpemVvZihQeV9VQ1M0KSk7CisgICAgaWYgKCEgYnVmZmVyKQorICAgICAgICBnb3RvIGVycm9yOworICAgIHAgPSBidWZmZXI7CisgICAgZW5kID0gYnVmZmVyICsgdG90YWxzaXplOworCisgICAgZm9yIChpID0gMDsgaSA8IGVudnNpemU7IGkrKykgeworICAgICAgICBQeU9iamVjdCoga2V5ID0gUHlMaXN0X0dFVF9JVEVNKGtleXMsIGkpOworICAgICAgICBQeU9iamVjdCogdmFsdWUgPSBQeUxpc3RfR0VUX0lURU0odmFsdWVzLCBpKTsKKyAgICAgICAgaWYgKCFQeVVuaWNvZGVfQXNVQ1M0KGtleSwgcCwgZW5kIC0gcCwgMCkpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBwICs9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGtleSk7CisgICAgICAgICpwKysgPSAnPSc7CisgICAgICAgIGlmICghUHlVbmljb2RlX0FzVUNTNCh2YWx1ZSwgcCwgZW5kIC0gcCwgMCkpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBwICs9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHZhbHVlKTsKKyAgICAgICAgKnArKyA9ICdcMCc7CisgICAgfQorCisgICAgLyogYWRkIHRyYWlsaW5nIG51bGwgYnl0ZSAqLworICAgICpwKysgPSAnXDAnOworICAgIGFzc2VydChwID09IGVuZCk7CisKKyAgICBQeV9YREVDUkVGKGtleXMpOworICAgIFB5X1hERUNSRUYodmFsdWVzKTsKKworICAgIHJlcyA9IFB5VW5pY29kZV9Gcm9tS2luZEFuZERhdGEoUHlVbmljb2RlXzRCWVRFX0tJTkQsIGJ1ZmZlciwgcCAtIGJ1ZmZlcik7CisgICAgUHlNZW1fRnJlZShidWZmZXIpOworICAgIHJldHVybiByZXM7CisKKyBlcnJvcjoKKyAgICBQeU1lbV9GcmVlKGJ1ZmZlcik7CisgICAgUHlfWERFQ1JFRihrZXlzKTsKKyAgICBQeV9YREVDUkVGKHZhbHVlcyk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1B5RG9jX1NUUlZBUihDcmVhdGVQcm9jZXNzX2RvYywKKyJDcmVhdGVQcm9jZXNzKGFwcF9uYW1lLCBjbWRfbGluZSwgcHJvY19hdHRycywgdGhyZWFkX2F0dHJzLFxuXAorICAgICAgICAgICAgICAgaW5oZXJpdCwgZmxhZ3MsIGVudl9tYXBwaW5nLCBjdXJkaXIsXG5cCisgICAgICAgICAgICAgICBzdGFydHVwX2luZm8pIC0+IChwcm9jX2hhbmRsZSwgdGhyZWFkX2hhbmRsZSxcblwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpZCwgdGlkKVxuXAorXG5cCitDcmVhdGUgYSBuZXcgcHJvY2VzcyBhbmQgaXRzIHByaW1hcnkgdGhyZWFkLiBUaGUgcmV0dXJuXG5cCit2YWx1ZSBpcyBhIHR1cGxlIG9mIHRoZSBwcm9jZXNzIGhhbmRsZSwgdGhyZWFkIGhhbmRsZSxcblwKK3Byb2Nlc3MgSUQsIGFuZCB0aHJlYWQgSUQuXG5cCitcblwKK3Byb2NfYXR0cnMgYW5kIHRocmVhZF9hdHRycyBhcmUgaWdub3JlZCBpbnRlcm5hbGx5IGFuZCBjYW4gYmUgTm9uZS4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9DcmVhdGVQcm9jZXNzKFB5T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKK3sKKyAgICBCT09MIHJlc3VsdDsKKyAgICBQUk9DRVNTX0lORk9STUFUSU9OIHBpOworICAgIFNUQVJUVVBJTkZPVyBzaTsKKyAgICBQeU9iamVjdCogZW52aXJvbm1lbnQ7CisgICAgd2NoYXJfdCAqd2Vudmlyb25tZW50OworCisgICAgd2NoYXJfdCogYXBwbGljYXRpb25fbmFtZTsKKyAgICB3Y2hhcl90KiBjb21tYW5kX2xpbmU7CisgICAgUHlPYmplY3QqIHByb2Nlc3NfYXR0cmlidXRlczsgLyogaWdub3JlZCAqLworICAgIFB5T2JqZWN0KiB0aHJlYWRfYXR0cmlidXRlczsgLyogaWdub3JlZCAqLworICAgIEJPT0wgaW5oZXJpdF9oYW5kbGVzOworICAgIERXT1JEIGNyZWF0aW9uX2ZsYWdzOworICAgIFB5T2JqZWN0KiBlbnZfbWFwcGluZzsKKyAgICB3Y2hhcl90KiBjdXJyZW50X2RpcmVjdG9yeTsKKyAgICBQeU9iamVjdCogc3RhcnR1cF9pbmZvOworCisgICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiWlpPTyIgRl9CT09MIEZfRFdPUkQgIk9aTzpDcmVhdGVQcm9jZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcHBsaWNhdGlvbl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbW1hbmRfbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcm9jZXNzX2F0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGhyZWFkX2F0dHJpYnV0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5oZXJpdF9oYW5kbGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNyZWF0aW9uX2ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVudl9tYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN1cnJlbnRfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0dXBfaW5mbykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgWmVyb01lbW9yeSgmc2ksIHNpemVvZihzaSkpOworICAgIHNpLmNiID0gc2l6ZW9mKHNpKTsKKworICAgIC8qIG5vdGU6IHdlIG9ubHkgc3VwcG9ydCBhIHNtYWxsIHN1YnNldCBvZiBhbGwgU0kgYXR0cmlidXRlcyAqLworICAgIHNpLmR3RmxhZ3MgPSBnZXR1bG9uZyhzdGFydHVwX2luZm8sICJkd0ZsYWdzIik7CisgICAgc2kud1Nob3dXaW5kb3cgPSAoV09SRClnZXR1bG9uZyhzdGFydHVwX2luZm8sICJ3U2hvd1dpbmRvdyIpOworICAgIHNpLmhTdGRJbnB1dCA9IGdldGhhbmRsZShzdGFydHVwX2luZm8sICJoU3RkSW5wdXQiKTsKKyAgICBzaS5oU3RkT3V0cHV0ID0gZ2V0aGFuZGxlKHN0YXJ0dXBfaW5mbywgImhTdGRPdXRwdXQiKTsKKyAgICBzaS5oU3RkRXJyb3IgPSBnZXRoYW5kbGUoc3RhcnR1cF9pbmZvLCAiaFN0ZEVycm9yIik7CisgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKGVudl9tYXBwaW5nICE9IFB5X05vbmUpIHsKKyAgICAgICAgZW52aXJvbm1lbnQgPSBnZXRlbnZpcm9ubWVudChlbnZfbWFwcGluZyk7CisgICAgICAgIGlmICghIGVudmlyb25tZW50KQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHdlbnZpcm9ubWVudCA9IFB5VW5pY29kZV9Bc1VuaWNvZGUoZW52aXJvbm1lbnQpOworICAgICAgICBpZiAod2Vudmlyb25tZW50ID09IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICAgIFB5X1hERUNSRUYoZW52aXJvbm1lbnQpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGVudmlyb25tZW50ID0gTlVMTDsKKyAgICAgICAgd2Vudmlyb25tZW50ID0gTlVMTDsKKyAgICB9CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgcmVzdWx0ID0gQ3JlYXRlUHJvY2Vzc1coYXBwbGljYXRpb25fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRfbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9oYW5kbGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRpb25fZmxhZ3MgfCBDUkVBVEVfVU5JQ09ERV9FTlZJUk9OTUVOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlbnZpcm9ubWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfZGlyZWN0b3J5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBpKTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgUHlfWERFQ1JFRihlbnZpcm9ubWVudCk7CisKKyAgICBpZiAoISByZXN1bHQpCisgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycihHZXRMYXN0RXJyb3IoKSk7CisKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTk5rayIsCisgICAgICAgICAgICAgICAgICAgICAgICAgSEFORExFX1RPX1BZTlVNKHBpLmhQcm9jZXNzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBIQU5ETEVfVE9fUFlOVU0ocGkuaFRocmVhZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgcGkuZHdQcm9jZXNzSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgcGkuZHdUaHJlYWRJZCk7Cit9CisKK1B5RG9jX1NUUlZBUihEdXBsaWNhdGVIYW5kbGVfZG9jLAorIkR1cGxpY2F0ZUhhbmRsZShzb3VyY2VfcHJvY19oYW5kbGUsIHNvdXJjZV9oYW5kbGUsXG5cCisgICAgICAgICAgICAgICAgIHRhcmdldF9wcm9jX2hhbmRsZSwgdGFyZ2V0X2hhbmRsZSwgYWNjZXNzLFxuXAorICAgICAgICAgICAgICAgICBpbmhlcml0Wywgb3B0aW9uc10pIC0+IGhhbmRsZVxuXAorXG5cCitSZXR1cm4gYSBkdXBsaWNhdGUgaGFuZGxlIG9iamVjdC5cblwKK1xuXAorVGhlIGR1cGxpY2F0ZSBoYW5kbGUgcmVmZXJzIHRvIHRoZSBzYW1lIG9iamVjdCBhcyB0aGUgb3JpZ2luYWxcblwKK2hhbmRsZS4gVGhlcmVmb3JlLCBhbnkgY2hhbmdlcyB0byB0aGUgb2JqZWN0IGFyZSByZWZsZWN0ZWRcblwKK3Rocm91Z2ggYm90aCBoYW5kbGVzLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgord2luYXBpX0R1cGxpY2F0ZUhhbmRsZShQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCit7CisgICAgSEFORExFIHRhcmdldF9oYW5kbGU7CisgICAgQk9PTCByZXN1bHQ7CisKKyAgICBIQU5ETEUgc291cmNlX3Byb2Nlc3NfaGFuZGxlOworICAgIEhBTkRMRSBzb3VyY2VfaGFuZGxlOworICAgIEhBTkRMRSB0YXJnZXRfcHJvY2Vzc19oYW5kbGU7CisgICAgRFdPUkQgZGVzaXJlZF9hY2Nlc3M7CisgICAgQk9PTCBpbmhlcml0X2hhbmRsZTsKKyAgICBEV09SRCBvcHRpb25zID0gMDsKKworICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIEZfSEFORExFIEZfSEFORExFIEZfSEFORExFIEZfRFdPUkQgRl9CT09MIEZfRFdPUkQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICI6RHVwbGljYXRlSGFuZGxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZzb3VyY2VfcHJvY2Vzc19oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmc291cmNlX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZ0YXJnZXRfcHJvY2Vzc19oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmZGVzaXJlZF9hY2Nlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5oZXJpdF9oYW5kbGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3B0aW9ucykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJlc3VsdCA9IER1cGxpY2F0ZUhhbmRsZSgKKyAgICAgICAgc291cmNlX3Byb2Nlc3NfaGFuZGxlLAorICAgICAgICBzb3VyY2VfaGFuZGxlLAorICAgICAgICB0YXJnZXRfcHJvY2Vzc19oYW5kbGUsCisgICAgICAgICZ0YXJnZXRfaGFuZGxlLAorICAgICAgICBkZXNpcmVkX2FjY2VzcywKKyAgICAgICAgaW5oZXJpdF9oYW5kbGUsCisgICAgICAgIG9wdGlvbnMKKyAgICApOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAoISByZXN1bHQpCisgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycihHZXRMYXN0RXJyb3IoKSk7CisKKyAgICByZXR1cm4gSEFORExFX1RPX1BZTlVNKHRhcmdldF9oYW5kbGUpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgord2luYXBpX0V4aXRQcm9jZXNzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBVSU5UIHVFeGl0Q29kZTsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBGX1VJTlQsICZ1RXhpdENvZGUpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgICNpZiBkZWZpbmVkKFB5X0RFQlVHKQorICAgICAgICBTZXRFcnJvck1vZGUoU0VNX0ZBSUxDUklUSUNBTEVSUk9SU3xTRU1fTk9BTElHTk1FTlRGQVVMVEVYQ0VQVHwKKyAgICAgICAgICAgICAgICAgICAgIFNFTV9OT0dQRkFVTFRFUlJPUkJPWHxTRU1fTk9PUEVORklMRUVSUk9SQk9YKTsKKyAgICAgICAgX0NydFNldFJlcG9ydE1vZGUoX0NSVF9BU1NFUlQsIF9DUlREQkdfTU9ERV9ERUJVRyk7CisgICAgI2VuZGlmCisKKyAgICBFeGl0UHJvY2Vzcyh1RXhpdENvZGUpOworCisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1B5RG9jX1NUUlZBUihHZXRDdXJyZW50UHJvY2Vzc19kb2MsCisiR2V0Q3VycmVudFByb2Nlc3MoKSAtPiBoYW5kbGVcblwKK1xuXAorUmV0dXJuIGEgaGFuZGxlIG9iamVjdCBmb3IgdGhlIGN1cnJlbnQgcHJvY2Vzcy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9HZXRDdXJyZW50UHJvY2VzcyhQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCit7CisgICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiOkdldEN1cnJlbnRQcm9jZXNzIikpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0dXJuIEhBTkRMRV9UT19QWU5VTShHZXRDdXJyZW50UHJvY2VzcygpKTsKK30KKworUHlEb2NfU1RSVkFSKEdldEV4aXRDb2RlUHJvY2Vzc19kb2MsCisiR2V0RXhpdENvZGVQcm9jZXNzKGhhbmRsZSkgLT4gRXhpdCBjb2RlXG5cCitcblwKK1JldHVybiB0aGUgdGVybWluYXRpb24gc3RhdHVzIG9mIHRoZSBzcGVjaWZpZWQgcHJvY2Vzcy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9HZXRFeGl0Q29kZVByb2Nlc3MoUHlPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQoreworICAgIERXT1JEIGV4aXRfY29kZTsKKyAgICBCT09MIHJlc3VsdDsKKworICAgIEhBTkRMRSBwcm9jZXNzOworICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoYXJncywgRl9IQU5ETEUgIjpHZXRFeGl0Q29kZVByb2Nlc3MiLCAmcHJvY2VzcykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmVzdWx0ID0gR2V0RXhpdENvZGVQcm9jZXNzKHByb2Nlc3MsICZleGl0X2NvZGUpOworCisgICAgaWYgKCEgcmVzdWx0KQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoR2V0TGFzdEVycm9yKCkpOworCisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKGV4aXRfY29kZSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit3aW5hcGlfR2V0TGFzdEVycm9yKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZShGX0RXT1JELCBHZXRMYXN0RXJyb3IoKSk7Cit9CisKK1B5RG9jX1NUUlZBUihHZXRNb2R1bGVGaWxlTmFtZV9kb2MsCisiR2V0TW9kdWxlRmlsZU5hbWUobW9kdWxlKSAtPiBwYXRoXG5cCitcblwKK1JldHVybiB0aGUgZnVsbHktcXVhbGlmaWVkIHBhdGggZm9yIHRoZSBmaWxlIHRoYXQgY29udGFpbnNcblwKK3RoZSBzcGVjaWZpZWQgbW9kdWxlLiBUaGUgbW9kdWxlIG11c3QgaGF2ZSBiZWVuIGxvYWRlZCBieSB0aGVcblwKK2N1cnJlbnQgcHJvY2Vzcy5cblwKK1xuXAorVGhlIG1vZHVsZSBwYXJhbWV0ZXIgc2hvdWxkIGJlIGEgaGFuZGxlIHRvIHRoZSBsb2FkZWQgbW9kdWxlXG5cCit3aG9zZSBwYXRoIGlzIGJlaW5nIHJlcXVlc3RlZC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgMCwgXG5cCitHZXRNb2R1bGVGaWxlTmFtZSByZXRyaWV2ZXMgdGhlIHBhdGggb2YgdGhlIGV4ZWN1dGFibGUgZmlsZVxuXAorb2YgdGhlIGN1cnJlbnQgcHJvY2Vzcy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9HZXRNb2R1bGVGaWxlTmFtZShQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCit7CisgICAgQk9PTCByZXN1bHQ7CisgICAgSE1PRFVMRSBtb2R1bGU7CisgICAgV0NIQVIgZmlsZW5hbWVbTUFYX1BBVEhdOworCisgICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBGX0hBTkRMRSAiOkdldE1vZHVsZUZpbGVOYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICZtb2R1bGUpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJlc3VsdCA9IEdldE1vZHVsZUZpbGVOYW1lVyhtb2R1bGUsIGZpbGVuYW1lLCBNQVhfUEFUSCk7CisgICAgZmlsZW5hbWVbTUFYX1BBVEgtMV0gPSAnXDAnOworCisgICAgaWYgKCEgcmVzdWx0KQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoR2V0TGFzdEVycm9yKCkpOworCisgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIoZmlsZW5hbWUsIHdjc2xlbihmaWxlbmFtZSkpOworfQorCitQeURvY19TVFJWQVIoR2V0U3RkSGFuZGxlX2RvYywKKyJHZXRTdGRIYW5kbGUoaGFuZGxlKSAtPiBpbnRlZ2VyXG5cCitcblwKK1JldHVybiBhIGhhbmRsZSB0byB0aGUgc3BlY2lmaWVkIHN0YW5kYXJkIGRldmljZVxuXAorKFNURF9JTlBVVF9IQU5ETEUsIFNURF9PVVRQVVRfSEFORExFLCBTVERfRVJST1JfSEFORExFKS5cblwKK1RoZSBpbnRlZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgaGFuZGxlIG9iamVjdCBpcyByZXR1cm5lZC4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9HZXRTdGRIYW5kbGUoUHlPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQoreworICAgIEhBTkRMRSBoYW5kbGU7CisgICAgRFdPUkQgc3RkX2hhbmRsZTsKKworICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoYXJncywgRl9EV09SRCAiOkdldFN0ZEhhbmRsZSIsICZzdGRfaGFuZGxlKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgaGFuZGxlID0gR2V0U3RkSGFuZGxlKHN0ZF9oYW5kbGUpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAoaGFuZGxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoR2V0TGFzdEVycm9yKCkpOworCisgICAgaWYgKCEgaGFuZGxlKSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmV0dXJuIFB5X05vbmU7CisgICAgfQorCisgICAgLyogbm90ZTogcmV0dXJucyBpbnRlZ2VyLCBub3QgaGFuZGxlIG9iamVjdCAqLworICAgIHJldHVybiBIQU5ETEVfVE9fUFlOVU0oaGFuZGxlKTsKK30KKworUHlEb2NfU1RSVkFSKEdldFZlcnNpb25fZG9jLAorIkdldFZlcnNpb24oKSAtPiB2ZXJzaW9uXG5cCitcblwKK1JldHVybiB0aGUgdmVyc2lvbiBudW1iZXIgb2YgdGhlIGN1cnJlbnQgb3BlcmF0aW5nIHN5c3RlbS4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9HZXRWZXJzaW9uKFB5T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKK3sKKyAgICBpZiAoISBQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICI6R2V0VmVyc2lvbiIpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZyhHZXRWZXJzaW9uKCkpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgord2luYXBpX09wZW5Qcm9jZXNzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBEV09SRCBkd0Rlc2lyZWRBY2Nlc3M7CisgICAgQk9PTCBiSW5oZXJpdEhhbmRsZTsKKyAgICBEV09SRCBkd1Byb2Nlc3NJZDsKKyAgICBIQU5ETEUgaGFuZGxlOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIEZfRFdPUkQgRl9CT09MIEZfRFdPUkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZkd0Rlc2lyZWRBY2Nlc3MsICZiSW5oZXJpdEhhbmRsZSwgJmR3UHJvY2Vzc0lkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBoYW5kbGUgPSBPcGVuUHJvY2Vzcyhkd0Rlc2lyZWRBY2Nlc3MsIGJJbmhlcml0SGFuZGxlLCBkd1Byb2Nlc3NJZCk7CisgICAgaWYgKGhhbmRsZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7CisKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZShGX0hBTkRMRSwgaGFuZGxlKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9QZWVrTmFtZWRQaXBlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBIQU5ETEUgaGFuZGxlOworICAgIGludCBzaXplID0gMDsKKyAgICBQeU9iamVjdCAqYnVmID0gTlVMTDsKKyAgICBEV09SRCBucmVhZCwgbmF2YWlsLCBubGVmdDsKKyAgICBCT09MIHJldDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBGX0hBTkRMRSAifGk6UGVla05hbWVkUGlwZSIgLCAmaGFuZGxlLCAmc2l6ZSkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKHNpemUgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAibmVnYXRpdmUgc2l6ZSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoc2l6ZSkgeworICAgICAgICBidWYgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIHNpemUpOworICAgICAgICBpZiAoIWJ1ZikKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgICAgIHJldCA9IFBlZWtOYW1lZFBpcGUoaGFuZGxlLCBQeUJ5dGVzX0FTX1NUUklORyhidWYpLCBzaXplLCAmbnJlYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5hdmFpbCwgJm5sZWZ0KTsKKyAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihidWYpOworICAgICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyKFB5RXhjX0lPRXJyb3IsIDApOworICAgICAgICB9CisgICAgICAgIGlmIChfUHlCeXRlc19SZXNpemUoJmJ1ZiwgbnJlYWQpKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJOaWkiLCBidWYsIG5hdmFpbCwgbmxlZnQpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgICAgICByZXQgPSBQZWVrTmFtZWRQaXBlKGhhbmRsZSwgTlVMTCwgMCwgTlVMTCwgJm5hdmFpbCwgJm5sZWZ0KTsKKyAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgaWYgKCFyZXQpIHsKKyAgICAgICAgICAgIHJldHVybiBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycihQeUV4Y19JT0Vycm9yLCAwKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiaWkiLCBuYXZhaWwsIG5sZWZ0KTsKKyAgICB9Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit3aW5hcGlfUmVhZEZpbGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBIQU5ETEUgaGFuZGxlOworICAgIGludCBzaXplOworICAgIERXT1JEIG5yZWFkOworICAgIFB5T2JqZWN0ICpidWY7CisgICAgQk9PTCByZXQ7CisgICAgaW50IHVzZV9vdmVybGFwcGVkID0gMDsKKyAgICBEV09SRCBlcnI7CisgICAgT3ZlcmxhcHBlZE9iamVjdCAqb3ZlcmxhcHBlZCA9IE5VTEw7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJoYW5kbGUiLCAic2l6ZSIsICJvdmVybGFwcGVkIiwgTlVMTH07CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZfSEFORExFICJpfGk6UmVhZEZpbGUiLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbmRsZSwgJnNpemUsICZ1c2Vfb3ZlcmxhcHBlZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgYnVmID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBzaXplKTsKKyAgICBpZiAoIWJ1ZikKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKHVzZV9vdmVybGFwcGVkKSB7CisgICAgICAgIG92ZXJsYXBwZWQgPSBuZXdfb3ZlcmxhcHBlZChoYW5kbGUpOworICAgICAgICBpZiAoIW92ZXJsYXBwZWQpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihidWYpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgLyogU3RlYWxzIHJlZmVyZW5jZSB0byBidWYgKi8KKyAgICAgICAgb3ZlcmxhcHBlZC0+cmVhZF9idWZmZXIgPSBidWY7CisgICAgfQorCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJldCA9IFJlYWRGaWxlKGhhbmRsZSwgUHlCeXRlc19BU19TVFJJTkcoYnVmKSwgc2l6ZSwgJm5yZWFkLAorICAgICAgICAgICAgICAgICAgIG92ZXJsYXBwZWQgPyAmb3ZlcmxhcHBlZC0+b3ZlcmxhcHBlZCA6IE5VTEwpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBlcnIgPSByZXQgPyAwIDogR2V0TGFzdEVycm9yKCk7CisKKyAgICBpZiAob3ZlcmxhcHBlZCkgeworICAgICAgICBpZiAoIXJldCkgeworICAgICAgICAgICAgaWYgKGVyciA9PSBFUlJPUl9JT19QRU5ESU5HKQorICAgICAgICAgICAgICAgIG92ZXJsYXBwZWQtPnBlbmRpbmcgPSAxOworICAgICAgICAgICAgZWxzZSBpZiAoZXJyICE9IEVSUk9SX01PUkVfREFUQSkgeworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihvdmVybGFwcGVkKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gUHlFcnJfU2V0RXhjRnJvbVdpbmRvd3NFcnIoUHlFeGNfSU9FcnJvciwgMCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk5JIiwgKFB5T2JqZWN0ICopIG92ZXJsYXBwZWQsIGVycik7CisgICAgfQorCisgICAgaWYgKCFyZXQgJiYgZXJyICE9IEVSUk9SX01PUkVfREFUQSkgeworICAgICAgICBQeV9ERUNSRUYoYnVmKTsKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyKFB5RXhjX0lPRXJyb3IsIDApOworICAgIH0KKyAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZidWYsIG5yZWFkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk5JIiwgYnVmLCBlcnIpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgord2luYXBpX1NldE5hbWVkUGlwZUhhbmRsZVN0YXRlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBIQU5ETEUgaE5hbWVkUGlwZTsKKyAgICBQeU9iamVjdCAqb0FyZ3NbM107CisgICAgRFdPUkQgZHdBcmdzWzNdLCAqcEFyZ3NbM10gPSB7TlVMTCwgTlVMTCwgTlVMTH07CisgICAgaW50IGk7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgRl9IQU5ETEUgIk9PTyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZoTmFtZWRQaXBlLCAmb0FyZ3NbMF0sICZvQXJnc1sxXSwgJm9BcmdzWzJdKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeUVycl9DbGVhcigpOworCisgICAgZm9yIChpID0gMCA7IGkgPCAzIDsgaSsrKSB7CisgICAgICAgIGlmIChvQXJnc1tpXSAhPSBQeV9Ob25lKSB7CisgICAgICAgICAgICBkd0FyZ3NbaV0gPSBQeUxvbmdfQXNVbnNpZ25lZExvbmdNYXNrKG9BcmdzW2ldKTsKKyAgICAgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgcEFyZ3NbaV0gPSAmZHdBcmdzW2ldOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFTZXROYW1lZFBpcGVIYW5kbGVTdGF0ZShoTmFtZWRQaXBlLCBwQXJnc1swXSwgcEFyZ3NbMV0sIHBBcmdzWzJdKSkKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKDApOworCisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihUZXJtaW5hdGVQcm9jZXNzX2RvYywKKyJUZXJtaW5hdGVQcm9jZXNzKGhhbmRsZSwgZXhpdF9jb2RlKSAtPiBOb25lXG5cCitcblwKK1Rlcm1pbmF0ZSB0aGUgc3BlY2lmaWVkIHByb2Nlc3MgYW5kIGFsbCBvZiBpdHMgdGhyZWFkcy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3dpbmFwaV9UZXJtaW5hdGVQcm9jZXNzKFB5T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKK3sKKyAgICBCT09MIHJlc3VsdDsKKworICAgIEhBTkRMRSBwcm9jZXNzOworICAgIFVJTlQgZXhpdF9jb2RlOworICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoYXJncywgRl9IQU5ETEUgRl9VSU5UICI6VGVybWluYXRlUHJvY2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJvY2VzcywgJmV4aXRfY29kZSkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmVzdWx0ID0gVGVybWluYXRlUHJvY2Vzcyhwcm9jZXNzLCBleGl0X2NvZGUpOworCisgICAgaWYgKCEgcmVzdWx0KQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoR2V0TGFzdEVycm9yKCkpOworCisgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgIHJldHVybiBQeV9Ob25lOworfQorCitzdGF0aWMgUHlPYmplY3QgKgord2luYXBpX1dhaXROYW1lZFBpcGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIExQQ1RTVFIgbHBOYW1lZFBpcGVOYW1lOworICAgIERXT1JEIG5UaW1lT3V0OworICAgIEJPT0wgc3VjY2VzczsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAicyIgRl9EV09SRCwgJmxwTmFtZWRQaXBlTmFtZSwgJm5UaW1lT3V0KSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgc3VjY2VzcyA9IFdhaXROYW1lZFBpcGUobHBOYW1lZFBpcGVOYW1lLCBuVGltZU91dCk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKDApOworCisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit3aW5hcGlfV2FpdEZvck11bHRpcGxlT2JqZWN0cyhQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCit7CisgICAgRFdPUkQgcmVzdWx0OworICAgIFB5T2JqZWN0ICpoYW5kbGVfc2VxOworICAgIEhBTkRMRSBoYW5kbGVzW01BWElNVU1fV0FJVF9PQkpFQ1RTXTsKKyAgICBIQU5ETEUgc2lnaW50X2V2ZW50ID0gTlVMTDsKKyAgICBQeV9zc2l6ZV90IG5oYW5kbGVzLCBpOworICAgIEJPT0wgd2FpdF9mbGFnOworICAgIERXT1JEIG1pbGxpc2Vjb25kcyA9IElORklOSVRFOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPIiBGX0JPT0wgInwiIEZfRFdPUkQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIjpXYWl0Rm9yTXVsdGlwbGVPYmplY3RzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbmRsZV9zZXEsICZ3YWl0X2ZsYWcsICZtaWxsaXNlY29uZHMpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmICghUHlTZXF1ZW5jZV9DaGVjayhoYW5kbGVfc2VxKSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgInNlcXVlbmNlIHR5cGUgZXhwZWN0ZWQsIGdvdCAnJXMnIiwKKyAgICAgICAgICAgICAgICAgICAgIFB5X1RZUEUoaGFuZGxlX3NlcSktPnRwX2RvYyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBuaGFuZGxlcyA9IFB5U2VxdWVuY2VfTGVuZ3RoKGhhbmRsZV9zZXEpOworICAgIGlmIChuaGFuZGxlcyA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKG5oYW5kbGVzIDwgMCB8fCBuaGFuZGxlcyA+PSBNQVhJTVVNX1dBSVRfT0JKRUNUUyAtIDEpIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAibmVlZCBhdCBtb3N0ICV6ZCBoYW5kbGVzLCBnb3QgYSBzZXF1ZW5jZSBvZiBsZW5ndGggJXpkIiwKKyAgICAgICAgICAgICAgICAgICAgIE1BWElNVU1fV0FJVF9PQkpFQ1RTIC0gMSwgbmhhbmRsZXMpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IG5oYW5kbGVzOyBpKyspIHsKKyAgICAgICAgSEFORExFIGg7CisgICAgICAgIFB5T2JqZWN0ICp2ID0gUHlTZXF1ZW5jZV9HZXRJdGVtKGhhbmRsZV9zZXEsIGkpOworICAgICAgICBpZiAodiA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGlmICghUHlBcmdfUGFyc2UodiwgRl9IQU5ETEUsICZoKSkgeworICAgICAgICAgICAgUHlfREVDUkVGKHYpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgaGFuZGxlc1tpXSA9IGg7CisgICAgICAgIFB5X0RFQ1JFRih2KTsKKyAgICB9CisgICAgLyogSWYgdGhpcyBpcyB0aGUgbWFpbiB0aHJlYWQgdGhlbiBtYWtlIHRoZSB3YWl0IGludGVycnVwdGlibGUKKyAgICAgICBieSBDdHJsLUMgdW5sZXNzIHdlIGFyZSB3YWl0aW5nIGZvciAqYWxsKiBoYW5kbGVzICovCisgICAgaWYgKCF3YWl0X2ZsYWcgJiYgX1B5T1NfSXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAgc2lnaW50X2V2ZW50ID0gX1B5T1NfU2lnaW50RXZlbnQoKTsKKyAgICAgICAgYXNzZXJ0KHNpZ2ludF9ldmVudCAhPSBOVUxMKTsKKyAgICAgICAgaGFuZGxlc1tuaGFuZGxlcysrXSA9IHNpZ2ludF9ldmVudDsKKyAgICB9CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgaWYgKHNpZ2ludF9ldmVudCAhPSBOVUxMKQorICAgICAgICBSZXNldEV2ZW50KHNpZ2ludF9ldmVudCk7CisgICAgcmVzdWx0ID0gV2FpdEZvck11bHRpcGxlT2JqZWN0cygoRFdPUkQpIG5oYW5kbGVzLCBoYW5kbGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2FpdF9mbGFnLCBtaWxsaXNlY29uZHMpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAocmVzdWx0ID09IFdBSVRfRkFJTEVEKQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RXhjRnJvbVdpbmRvd3NFcnIoUHlFeGNfSU9FcnJvciwgMCk7CisgICAgZWxzZSBpZiAoc2lnaW50X2V2ZW50ICE9IE5VTEwgJiYgcmVzdWx0ID09IFdBSVRfT0JKRUNUXzAgKyBuaGFuZGxlcyAtIDEpIHsKKyAgICAgICAgZXJybm8gPSBFSU5UUjsKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKKyAgICB9CisKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKChpbnQpIHJlc3VsdCk7Cit9CisKK1B5RG9jX1NUUlZBUihXYWl0Rm9yU2luZ2xlT2JqZWN0X2RvYywKKyJXYWl0Rm9yU2luZ2xlT2JqZWN0KGhhbmRsZSwgdGltZW91dCkgLT4gcmVzdWx0XG5cCitcblwKK1dhaXQgdW50aWwgdGhlIHNwZWNpZmllZCBvYmplY3QgaXMgaW4gdGhlIHNpZ25hbGVkIHN0YXRlIG9yXG5cCit0aGUgdGltZS1vdXQgaW50ZXJ2YWwgZWxhcHNlcy4gVGhlIHRpbWVvdXQgdmFsdWUgaXMgc3BlY2lmaWVkXG5cCitpbiBtaWxsaXNlY29uZHMuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCit3aW5hcGlfV2FpdEZvclNpbmdsZU9iamVjdChQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCit7CisgICAgRFdPUkQgcmVzdWx0OworCisgICAgSEFORExFIGhhbmRsZTsKKyAgICBEV09SRCBtaWxsaXNlY29uZHM7CisgICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBGX0hBTkRMRSBGX0RXT1JEICI6V2FpdEZvclNpbmdsZU9iamVjdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1pbGxpc2Vjb25kcykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJlc3VsdCA9IFdhaXRGb3JTaW5nbGVPYmplY3QoaGFuZGxlLCBtaWxsaXNlY29uZHMpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAocmVzdWx0ID09IFdBSVRfRkFJTEVEKQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoR2V0TGFzdEVycm9yKCkpOworCisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKHJlc3VsdCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit3aW5hcGlfV3JpdGVGaWxlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgSEFORExFIGhhbmRsZTsKKyAgICBQeV9idWZmZXIgX2J1ZiwgKmJ1ZjsKKyAgICBQeU9iamVjdCAqYnVmb2JqOworICAgIERXT1JEIHdyaXR0ZW47CisgICAgQk9PTCByZXQ7CisgICAgaW50IHVzZV9vdmVybGFwcGVkID0gMDsKKyAgICBEV09SRCBlcnI7CisgICAgT3ZlcmxhcHBlZE9iamVjdCAqb3ZlcmxhcHBlZCA9IE5VTEw7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJoYW5kbGUiLCAiYnVmZmVyIiwgIm92ZXJsYXBwZWQiLCBOVUxMfTsKKworICAgIC8qIEZpcnN0IGdldCBoYW5kbGUgYW5kIHVzZV9vdmVybGFwcGVkIHRvIGtub3cgd2hpY2ggUHlfYnVmZmVyIHRvIHVzZSAqLworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRl9IQU5ETEUgIk98aTpXcml0ZUZpbGUiLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmhhbmRsZSwgJmJ1Zm9iaiwgJnVzZV9vdmVybGFwcGVkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAodXNlX292ZXJsYXBwZWQpIHsKKyAgICAgICAgb3ZlcmxhcHBlZCA9IG5ld19vdmVybGFwcGVkKGhhbmRsZSk7CisgICAgICAgIGlmICghb3ZlcmxhcHBlZCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBidWYgPSAmb3ZlcmxhcHBlZC0+d3JpdGVfYnVmZmVyOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIGJ1ZiA9ICZfYnVmOworCisgICAgaWYgKCFQeUFyZ19QYXJzZShidWZvYmosICJ5KiIsIGJ1ZikpIHsKKyAgICAgICAgUHlfWERFQ1JFRihvdmVybGFwcGVkKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJldCA9IFdyaXRlRmlsZShoYW5kbGUsIGJ1Zi0+YnVmLCBidWYtPmxlbiwgJndyaXR0ZW4sCisgICAgICAgICAgICAgICAgICAgIG92ZXJsYXBwZWQgPyAmb3ZlcmxhcHBlZC0+b3ZlcmxhcHBlZCA6IE5VTEwpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBlcnIgPSByZXQgPyAwIDogR2V0TGFzdEVycm9yKCk7CisKKyAgICBpZiAob3ZlcmxhcHBlZCkgeworICAgICAgICBpZiAoIXJldCkgeworICAgICAgICAgICAgaWYgKGVyciA9PSBFUlJPUl9JT19QRU5ESU5HKQorICAgICAgICAgICAgICAgIG92ZXJsYXBwZWQtPnBlbmRpbmcgPSAxOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKG92ZXJsYXBwZWQpOworICAgICAgICAgICAgICAgIHJldHVybiBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycihQeUV4Y19JT0Vycm9yLCAwKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTkkiLCAoUHlPYmplY3QgKikgb3ZlcmxhcHBlZCwgZXJyKTsKKyAgICB9CisKKyAgICBQeUJ1ZmZlcl9SZWxlYXNlKGJ1Zik7CisgICAgaWYgKCFyZXQpCisgICAgICAgIHJldHVybiBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycihQeUV4Y19JT0Vycm9yLCAwKTsKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiSUkiLCB3cml0dGVuLCBlcnIpOworfQorCisKK3N0YXRpYyBQeU1ldGhvZERlZiB3aW5hcGlfZnVuY3Rpb25zW10gPSB7CisgICAgeyJDbG9zZUhhbmRsZSIsIHdpbmFwaV9DbG9zZUhhbmRsZSwgTUVUSF9WQVJBUkdTLAorICAgICBDbG9zZUhhbmRsZV9kb2N9LAorICAgIHsiQ29ubmVjdE5hbWVkUGlwZSIsIChQeUNGdW5jdGlvbil3aW5hcGlfQ29ubmVjdE5hbWVkUGlwZSwKKyAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgIiJ9LAorICAgIHsiQ3JlYXRlRmlsZSIsIHdpbmFwaV9DcmVhdGVGaWxlLCBNRVRIX1ZBUkFSR1MsCisgICAgICIifSwKKyAgICB7IkNyZWF0ZU5hbWVkUGlwZSIsIHdpbmFwaV9DcmVhdGVOYW1lZFBpcGUsIE1FVEhfVkFSQVJHUywKKyAgICAgIiJ9LAorICAgIHsiQ3JlYXRlUGlwZSIsIHdpbmFwaV9DcmVhdGVQaXBlLCBNRVRIX1ZBUkFSR1MsCisgICAgIENyZWF0ZVBpcGVfZG9jfSwKKyAgICB7IkNyZWF0ZVByb2Nlc3MiLCB3aW5hcGlfQ3JlYXRlUHJvY2VzcywgTUVUSF9WQVJBUkdTLAorICAgICBDcmVhdGVQcm9jZXNzX2RvY30sCisgICAgeyJEdXBsaWNhdGVIYW5kbGUiLCB3aW5hcGlfRHVwbGljYXRlSGFuZGxlLCBNRVRIX1ZBUkFSR1MsCisgICAgIER1cGxpY2F0ZUhhbmRsZV9kb2N9LAorICAgIHsiRXhpdFByb2Nlc3MiLCB3aW5hcGlfRXhpdFByb2Nlc3MsIE1FVEhfVkFSQVJHUywKKyAgICAgIiJ9LAorICAgIHsiR2V0Q3VycmVudFByb2Nlc3MiLCB3aW5hcGlfR2V0Q3VycmVudFByb2Nlc3MsIE1FVEhfVkFSQVJHUywKKyAgICAgR2V0Q3VycmVudFByb2Nlc3NfZG9jfSwKKyAgICB7IkdldEV4aXRDb2RlUHJvY2VzcyIsIHdpbmFwaV9HZXRFeGl0Q29kZVByb2Nlc3MsIE1FVEhfVkFSQVJHUywKKyAgICAgR2V0RXhpdENvZGVQcm9jZXNzX2RvY30sCisgICAgeyJHZXRMYXN0RXJyb3IiLCB3aW5hcGlfR2V0TGFzdEVycm9yLCBNRVRIX05PQVJHUywKKyAgICAgR2V0Q3VycmVudFByb2Nlc3NfZG9jfSwKKyAgICB7IkdldE1vZHVsZUZpbGVOYW1lIiwgd2luYXBpX0dldE1vZHVsZUZpbGVOYW1lLCBNRVRIX1ZBUkFSR1MsCisgICAgIEdldE1vZHVsZUZpbGVOYW1lX2RvY30sCisgICAgeyJHZXRTdGRIYW5kbGUiLCB3aW5hcGlfR2V0U3RkSGFuZGxlLCBNRVRIX1ZBUkFSR1MsCisgICAgIEdldFN0ZEhhbmRsZV9kb2N9LAorICAgIHsiR2V0VmVyc2lvbiIsIHdpbmFwaV9HZXRWZXJzaW9uLCBNRVRIX1ZBUkFSR1MsCisgICAgIEdldFZlcnNpb25fZG9jfSwKKyAgICB7Ik9wZW5Qcm9jZXNzIiwgd2luYXBpX09wZW5Qcm9jZXNzLCBNRVRIX1ZBUkFSR1MsCisgICAgICIifSwKKyAgICB7IlBlZWtOYW1lZFBpcGUiLCB3aW5hcGlfUGVla05hbWVkUGlwZSwgTUVUSF9WQVJBUkdTLAorICAgICAiIn0sCisgICAgeyJSZWFkRmlsZSIsIChQeUNGdW5jdGlvbil3aW5hcGlfUmVhZEZpbGUsIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICIifSwKKyAgICB7IlNldE5hbWVkUGlwZUhhbmRsZVN0YXRlIiwgd2luYXBpX1NldE5hbWVkUGlwZUhhbmRsZVN0YXRlLCBNRVRIX1ZBUkFSR1MsCisgICAgICIifSwKKyAgICB7IlRlcm1pbmF0ZVByb2Nlc3MiLCB3aW5hcGlfVGVybWluYXRlUHJvY2VzcywgTUVUSF9WQVJBUkdTLAorICAgICBUZXJtaW5hdGVQcm9jZXNzX2RvY30sCisgICAgeyJXYWl0TmFtZWRQaXBlIiwgd2luYXBpX1dhaXROYW1lZFBpcGUsIE1FVEhfVkFSQVJHUywKKyAgICAgIiJ9LAorICAgIHsiV2FpdEZvck11bHRpcGxlT2JqZWN0cyIsIHdpbmFwaV9XYWl0Rm9yTXVsdGlwbGVPYmplY3RzLCBNRVRIX1ZBUkFSR1MsCisgICAgICIifSwKKyAgICB7IldhaXRGb3JTaW5nbGVPYmplY3QiLCB3aW5hcGlfV2FpdEZvclNpbmdsZU9iamVjdCwgTUVUSF9WQVJBUkdTLAorICAgICBXYWl0Rm9yU2luZ2xlT2JqZWN0X2RvY30sCisgICAgeyJXcml0ZUZpbGUiLCAoUHlDRnVuY3Rpb24pd2luYXBpX1dyaXRlRmlsZSwgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywKKyAgICAgIiJ9LAorICAgIHtOVUxMLCBOVUxMfQorfTsKKworc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiB3aW5hcGlfbW9kdWxlID0geworICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKKyAgICAiX3dpbmFwaSIsCisgICAgTlVMTCwKKyAgICAtMSwKKyAgICB3aW5hcGlfZnVuY3Rpb25zLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIE5VTEwKK307CisKKyNkZWZpbmUgV0lOQVBJX0NPTlNUQU5UKGZtdCwgY29uKSBcCisgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgI2NvbiwgUHlfQnVpbGRWYWx1ZShmbXQsIGNvbikpCisKK1B5TU9ESU5JVF9GVU5DCitQeUluaXRfX3dpbmFwaSh2b2lkKQoreworICAgIFB5T2JqZWN0ICpkOworICAgIFB5T2JqZWN0ICptOworCisgICAgaWYgKFB5VHlwZV9SZWFkeSgmT3ZlcmxhcHBlZFR5cGUpIDwgMCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBtID0gUHlNb2R1bGVfQ3JlYXRlKCZ3aW5hcGlfbW9kdWxlKTsKKyAgICBpZiAobSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBkID0gUHlNb2R1bGVfR2V0RGljdChtKTsKKworICAgIFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJPdmVybGFwcGVkIiwgKFB5T2JqZWN0ICopICZPdmVybGFwcGVkVHlwZSk7CisKKyAgICAvKiBjb25zdGFudHMgKi8KKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgQ1JFQVRFX05FV19DT05TT0xFKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgQ1JFQVRFX05FV19QUk9DRVNTX0dST1VQKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgRFVQTElDQVRFX1NBTUVfQUNDRVNTKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgRFVQTElDQVRFX0NMT1NFX1NPVVJDRSk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIEVSUk9SX0FMUkVBRFlfRVhJU1RTKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgRVJST1JfQlJPS0VOX1BJUEUpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBFUlJPUl9JT19QRU5ESU5HKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgRVJST1JfTU9SRV9EQVRBKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgRVJST1JfTkVUTkFNRV9ERUxFVEVEKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgRVJST1JfTk9fU1lTVEVNX1JFU09VUkNFUyk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIEVSUk9SX01PUkVfREFUQSk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIEVSUk9SX05FVE5BTUVfREVMRVRFRCk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIEVSUk9SX05PX0RBVEEpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBFUlJPUl9OT19TWVNURU1fUkVTT1VSQ0VTKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgRVJST1JfT1BFUkFUSU9OX0FCT1JURUQpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBFUlJPUl9QSVBFX0JVU1kpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBFUlJPUl9QSVBFX0NPTk5FQ1RFRCk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIEVSUk9SX1NFTV9USU1FT1VUKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgRklMRV9GTEFHX0ZJUlNUX1BJUEVfSU5TVEFOQ0UpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBGSUxFX0ZMQUdfT1ZFUkxBUFBFRCk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIEZJTEVfR0VORVJJQ19SRUFEKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgRklMRV9HRU5FUklDX1dSSVRFKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgR0VORVJJQ19SRUFEKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgR0VORVJJQ19XUklURSk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIElORklOSVRFKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgTk1QV0FJVF9XQUlUX0ZPUkVWRVIpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBPUEVOX0VYSVNUSU5HKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgUElQRV9BQ0NFU1NfRFVQTEVYKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgUElQRV9BQ0NFU1NfSU5CT1VORCk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIFBJUEVfUkVBRE1PREVfTUVTU0FHRSk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIFBJUEVfVFlQRV9NRVNTQUdFKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgUElQRV9VTkxJTUlURURfSU5TVEFOQ0VTKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgUElQRV9XQUlUKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgUFJPQ0VTU19BTExfQUNDRVNTKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgUFJPQ0VTU19EVVBfSEFORExFKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgU1RBUlRGX1VTRVNIT1dXSU5ET1cpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBTVEFSVEZfVVNFU1RESEFORExFUyk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIFNURF9JTlBVVF9IQU5ETEUpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBTVERfT1VUUFVUX0hBTkRMRSk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIFNURF9FUlJPUl9IQU5ETEUpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBTVElMTF9BQ1RJVkUpOworICAgIFdJTkFQSV9DT05TVEFOVChGX0RXT1JELCBTV19ISURFKTsKKyAgICBXSU5BUElfQ09OU1RBTlQoRl9EV09SRCwgV0FJVF9PQkpFQ1RfMCk7CisgICAgV0lOQVBJX0NPTlNUQU5UKEZfRFdPUkQsIFdBSVRfVElNRU9VVCk7CisKKyAgICBXSU5BUElfQ09OU1RBTlQoImkiLCBOVUxMKTsKKworICAgIHJldHVybiBtOworfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9hcnJheW1vZHVsZS5jIGIvTW9kdWxlcy9hcnJheW1vZHVsZS5jCmluZGV4IDY0MWUyODMuLmIwOTIxYzggMTAwNjQ0Ci0tLSBhL01vZHVsZXMvYXJyYXltb2R1bGUuYworKysgYi9Nb2R1bGVzL2FycmF5bW9kdWxlLmMKQEAgLTIyLDcgKzIyLDcgQEAKICAqIGZ1bmN0aW9ucyBhcmVuJ3QgdmlzaWJsZSB5ZXQuCiAgKi8KIHN0cnVjdCBhcnJheWRlc2NyIHsKLSAgICBQeV9VTklDT0RFIHR5cGVjb2RlOworICAgIGNoYXIgdHlwZWNvZGU7CiAgICAgaW50IGl0ZW1zaXplOwogICAgIFB5T2JqZWN0ICogKCpnZXRpdGVtKShzdHJ1Y3QgYXJyYXlvYmplY3QgKiwgUHlfc3NpemVfdCk7CiAgICAgaW50ICgqc2V0aXRlbSkoc3RydWN0IGFycmF5b2JqZWN0ICosIFB5X3NzaXplX3QsIFB5T2JqZWN0ICopOwpAQCAtMTc0LDI0ICsxNzQsMjUgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiB1X2dldGl0ZW0oYXJyYXlvYmplY3QgKmFwLCBQeV9zc2l6ZV90IGkpCiB7Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tVW5pY29kZSgmKChQeV9VTklDT0RFICopIGFwLT5vYl9pdGVtKVtpXSwgMSk7CisgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tT3JkaW5hbCgoKFB5X1VDUzQgKikgYXAtPm9iX2l0ZW0pW2ldKTsKIH0KIAogc3RhdGljIGludAogdV9zZXRpdGVtKGFycmF5b2JqZWN0ICphcCwgUHlfc3NpemVfdCBpLCBQeU9iamVjdCAqdikKIHsKLSAgICBQeV9VTklDT0RFICpwOwotICAgIFB5X3NzaXplX3QgbGVuOworICAgIFB5T2JqZWN0ICpwOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZSh2LCAidSM7YXJyYXkgaXRlbSBtdXN0IGJlIHVuaWNvZGUgY2hhcmFjdGVyIiwgJnAsICZsZW4pKQorICAgIGlmICghUHlBcmdfUGFyc2UodiwgIlU7YXJyYXkgaXRlbSBtdXN0IGJlIHVuaWNvZGUgY2hhcmFjdGVyIiwgJnApKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKGxlbiAhPSAxKSB7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShwKSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChwKSAhPSAxKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiYXJyYXkgaXRlbSBtdXN0IGJlIHVuaWNvZGUgY2hhcmFjdGVyIik7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgICAgaWYgKGkgPj0gMCkKLSAgICAgICAgKChQeV9VTklDT0RFICopYXAtPm9iX2l0ZW0pW2ldID0gcFswXTsKKyAgICAgICAgKChQeV9VQ1M0ICopYXAtPm9iX2l0ZW0pW2ldID0gUHlVbmljb2RlX1JFQURfQ0hBUihwLCAwKTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtMzU2LDYgKzM1Nyw1OSBAQAogICAgIHJldHVybiAwOwogfQogCisjaWZkZWYgSEFWRV9MT05HX0xPTkcKKworc3RhdGljIFB5T2JqZWN0ICoKK3FfZ2V0aXRlbShhcnJheW9iamVjdCAqYXAsIFB5X3NzaXplX3QgaSkKK3sKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nTG9uZygoKFBZX0xPTkdfTE9ORyAqKWFwLT5vYl9pdGVtKVtpXSk7Cit9CisKK3N0YXRpYyBpbnQKK3Ffc2V0aXRlbShhcnJheW9iamVjdCAqYXAsIFB5X3NzaXplX3QgaSwgUHlPYmplY3QgKnYpCit7CisgICAgUFlfTE9OR19MT05HIHg7CisgICAgaWYgKCFQeUFyZ19QYXJzZSh2LCAiTDthcnJheSBpdGVtIG11c3QgYmUgaW50ZWdlciIsICZ4KSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmIChpID49IDApCisgICAgICAgICgoUFlfTE9OR19MT05HICopYXAtPm9iX2l0ZW0pW2ldID0geDsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK1FRX2dldGl0ZW0oYXJyYXlvYmplY3QgKmFwLCBQeV9zc2l6ZV90IGkpCit7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nTG9uZygKKyAgICAgICAgKCh1bnNpZ25lZCBQWV9MT05HX0xPTkcgKilhcC0+b2JfaXRlbSlbaV0pOworfQorCitzdGF0aWMgaW50CitRUV9zZXRpdGVtKGFycmF5b2JqZWN0ICphcCwgUHlfc3NpemVfdCBpLCBQeU9iamVjdCAqdikKK3sKKyAgICB1bnNpZ25lZCBQWV9MT05HX0xPTkcgeDsKKyAgICBpZiAoUHlMb25nX0NoZWNrKHYpKSB7CisgICAgICAgIHggPSBQeUxvbmdfQXNVbnNpZ25lZExvbmdMb25nKHYpOworICAgICAgICBpZiAoeCA9PSAodW5zaWduZWQgUFlfTE9OR19MT05HKSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgUFlfTE9OR19MT05HIHk7CisgICAgICAgIGlmICghUHlBcmdfUGFyc2UodiwgIkw7YXJyYXkgaXRlbSBtdXN0IGJlIGludGVnZXIiLCAmeSkpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGlmICh5IDwgMCkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCisgICAgICAgICAgICAgICAgInVuc2lnbmVkIGxvbmcgbG9uZyBpcyBsZXNzIHRoYW4gbWluaW11bSIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHggPSAodW5zaWduZWQgUFlfTE9OR19MT05HKXk7CisgICAgfQorCisgICAgaWYgKGkgPj0gMCkKKyAgICAgICAgKCh1bnNpZ25lZCBQWV9MT05HX0xPTkcgKilhcC0+b2JfaXRlbSlbaV0gPSB4OworICAgIHJldHVybiAwOworfQorI2VuZGlmCisKIHN0YXRpYyBQeU9iamVjdCAqCiBmX2dldGl0ZW0oYXJyYXlvYmplY3QgKmFwLCBQeV9zc2l6ZV90IGkpCiB7CkBAIC0zOTAsNiArNDQ0LDEzIEBACiAgICAgcmV0dXJuIDA7CiB9CiAKKyNpZiBTSVpFT0ZfSU5UID09IDQKKyMgIGRlZmluZSBTVFJVQ1RfTE9OR19GT1JNQVQgIkkiCisjZWxpZiBTSVpFT0ZfTE9ORyA9PSA0CisjICBkZWZpbmUgU1RSVUNUX0xPTkdfRk9STUFUICJMIgorI2Vsc2UKKyMgIGVycm9yICJVbmFibGUgdG8gZ2V0IHN0cnVjdCBmb3JtYXQgZm9yIFB5X1VDUzQiCisjZW5kaWYKIAogLyogRGVzY3JpcHRpb24gb2YgdHlwZXMuCiAgKgpAQCAtMzk5LDEzICs0NjAsMTcgQEAKIHN0YXRpYyBzdHJ1Y3QgYXJyYXlkZXNjciBkZXNjcmlwdG9yc1tdID0gewogICAgIHsnYicsIDEsIGJfZ2V0aXRlbSwgYl9zZXRpdGVtLCAiYiIsIDEsIDF9LAogICAgIHsnQicsIDEsIEJCX2dldGl0ZW0sIEJCX3NldGl0ZW0sICJCIiwgMSwgMH0sCi0gICAgeyd1Jywgc2l6ZW9mKFB5X1VOSUNPREUpLCB1X2dldGl0ZW0sIHVfc2V0aXRlbSwgInUiLCAwLCAwfSwKKyAgICB7J3UnLCBzaXplb2YoUHlfVUNTNCksIHVfZ2V0aXRlbSwgdV9zZXRpdGVtLCBTVFJVQ1RfTE9OR19GT1JNQVQsIDAsIDB9LAogICAgIHsnaCcsIHNpemVvZihzaG9ydCksIGhfZ2V0aXRlbSwgaF9zZXRpdGVtLCAiaCIsIDEsIDF9LAogICAgIHsnSCcsIHNpemVvZihzaG9ydCksIEhIX2dldGl0ZW0sIEhIX3NldGl0ZW0sICJIIiwgMSwgMH0sCiAgICAgeydpJywgc2l6ZW9mKGludCksIGlfZ2V0aXRlbSwgaV9zZXRpdGVtLCAiaSIsIDEsIDF9LAogICAgIHsnSScsIHNpemVvZihpbnQpLCBJSV9nZXRpdGVtLCBJSV9zZXRpdGVtLCAiSSIsIDEsIDB9LAogICAgIHsnbCcsIHNpemVvZihsb25nKSwgbF9nZXRpdGVtLCBsX3NldGl0ZW0sICJsIiwgMSwgMX0sCiAgICAgeydMJywgc2l6ZW9mKGxvbmcpLCBMTF9nZXRpdGVtLCBMTF9zZXRpdGVtLCAiTCIsIDEsIDB9LAorI2lmZGVmIEhBVkVfTE9OR19MT05HCisgICAgeydxJywgc2l6ZW9mKFBZX0xPTkdfTE9ORyksIHFfZ2V0aXRlbSwgcV9zZXRpdGVtLCAicSIsIDEsIDF9LAorICAgIHsnUScsIHNpemVvZihQWV9MT05HX0xPTkcpLCBRUV9nZXRpdGVtLCBRUV9zZXRpdGVtLCAiUSIsIDEsIDB9LAorI2VuZGlmCiAgICAgeydmJywgc2l6ZW9mKGZsb2F0KSwgZl9nZXRpdGVtLCBmX3NldGl0ZW0sICJmIiwgMCwgMH0sCiAgICAgeydkJywgc2l6ZW9mKGRvdWJsZSksIGRfZ2V0aXRlbSwgZF9zZXRpdGVtLCAiZCIsIDAsIDB9LAogICAgIHsnXDAnLCAwLCAwLCAwLCAwLCAwLCAwfSAvKiBTZW50aW5lbCAqLwpAQCAtNTE0LDEwICs1NzksOCBAQAogICAgIFB5X3NzaXplX3QgaSwgazsKICAgICBQeU9iamVjdCAqcmVzOwogCi0gICAgaWYgKCFhcnJheV9DaGVjayh2KSB8fCAhYXJyYXlfQ2hlY2sodykpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZiAoIWFycmF5X0NoZWNrKHYpIHx8ICFhcnJheV9DaGVjayh3KSkKKyAgICAgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogCiAgICAgdmEgPSAoYXJyYXlvYmplY3QgKil2OwogICAgIHdhID0gKGFycmF5b2JqZWN0ICopdzsKQEAgLTg3Niw3ICs5MzksNiBAQAogICAgIGlmIChQeV9TSVpFKHNlbGYpID4gMCkgewogICAgICAgICBpZiAobiA8IDApCiAgICAgICAgICAgICBuID0gMDsKLSAgICAgICAgaXRlbXMgPSBzZWxmLT5vYl9pdGVtOwogICAgICAgICBpZiAoKHNlbGYtPm9iX2Rlc2NyLT5pdGVtc2l6ZSAhPSAwKSAmJgogICAgICAgICAgICAgKFB5X1NJWkUoc2VsZikgPiBQWV9TU0laRV9UX01BWCAvIHNlbGYtPm9iX2Rlc2NyLT5pdGVtc2l6ZSkpIHsKICAgICAgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwpAQCAtMTE5MSw2ICsxMjUzLDcgQEAKICAgICBQeU9iamVjdCAqZiwgKmIsICpyZXM7CiAgICAgUHlfc3NpemVfdCBpdGVtc2l6ZSA9IHNlbGYtPm9iX2Rlc2NyLT5pdGVtc2l6ZTsKICAgICBQeV9zc2l6ZV90IG4sIG5ieXRlczsKKyAgICBfUHlfSURFTlRJRklFUihyZWFkKTsKICAgICBpbnQgbm90X2Vub3VnaF9ieXRlczsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT246ZnJvbWZpbGUiLCAmZiwgJm4pKQpAQCAtMTIwMiw3ICsxMjY1LDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgYiA9IFB5T2JqZWN0X0NhbGxNZXRob2QoZiwgInJlYWQiLCAibiIsIG5ieXRlcyk7CisgICAgYiA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoZiwgJlB5SWRfcmVhZCwgIm4iLCBuYnl0ZXMpOwogICAgIGlmIChiID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC0xMjU5LDEyICsxMzIyLDE0IEBACiAgICAgICAgIGNoYXIqIHB0ciA9IHNlbGYtPm9iX2l0ZW0gKyBpKkJMT0NLU0laRTsKICAgICAgICAgUHlfc3NpemVfdCBzaXplID0gQkxPQ0tTSVpFOwogICAgICAgICBQeU9iamVjdCAqYnl0ZXMsICpyZXM7CisgICAgICAgIF9QeV9JREVOVElGSUVSKHdyaXRlKTsKKwogICAgICAgICBpZiAoaSpCTE9DS1NJWkUgKyBzaXplID4gbmJ5dGVzKQogICAgICAgICAgICAgc2l6ZSA9IG5ieXRlcyAtIGkqQkxPQ0tTSVpFOwogICAgICAgICBieXRlcyA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUocHRyLCBzaXplKTsKICAgICAgICAgaWYgKGJ5dGVzID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgcmVzID0gUHlPYmplY3RfQ2FsbE1ldGhvZChmLCAid3JpdGUiLCAiTyIsIGJ5dGVzKTsKKyAgICAgICAgcmVzID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmLCAmUHlJZF93cml0ZSwgIk8iLCBieXRlcyk7CiAgICAgICAgIFB5X0RFQ1JFRihieXRlcyk7CiAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTQ1NCwyNSArMTUxOSwyNiBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGFycmF5X2Zyb211bmljb2RlKGFycmF5b2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeV9VTklDT0RFICp1c3RyOworICAgIFB5T2JqZWN0ICp1c3RyOwogICAgIFB5X3NzaXplX3QgbjsKLSAgICBQeV9VTklDT0RFIHR5cGVjb2RlOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ1Izpmcm9tdW5pY29kZSIsICZ1c3RyLCAmbikpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVOmZyb211bmljb2RlIiwgJnVzdHIpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB0eXBlY29kZSA9IHNlbGYtPm9iX2Rlc2NyLT50eXBlY29kZTsKLSAgICBpZiAoKHR5cGVjb2RlICE9ICd1JykpIHsKKyAgICBpZiAoc2VsZi0+b2JfZGVzY3ItPnR5cGVjb2RlICE9ICd1JykgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKICAgICAgICAgICAgICJmcm9tdW5pY29kZSgpIG1heSBvbmx5IGJlIGNhbGxlZCBvbiAiCiAgICAgICAgICAgICAidW5pY29kZSB0eXBlIGFycmF5cyIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1c3RyKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVzdHIpOwogICAgIGlmIChuID4gMCkgewogICAgICAgICBQeV9zc2l6ZV90IG9sZF9zaXplID0gUHlfU0laRShzZWxmKTsKICAgICAgICAgaWYgKGFycmF5X3Jlc2l6ZShzZWxmLCBvbGRfc2l6ZSArIG4pID09IC0xKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIG1lbWNweShzZWxmLT5vYl9pdGVtICsgb2xkX3NpemUgKiBzaXplb2YoUHlfVU5JQ09ERSksCi0gICAgICAgICAgICAgICB1c3RyLCBuICogc2l6ZW9mKFB5X1VOSUNPREUpKTsKKyAgICAgICAgaWYgKCFQeVVuaWNvZGVfQXNVQ1M0KHVzdHIsIChQeV9VQ1M0ICopc2VsZi0+b2JfaXRlbSArIG9sZF9zaXplLCBuLCAwKSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAogICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKQEAgLTE0OTEsMTQgKzE1NTcsMTQgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBhcnJheV90b3VuaWNvZGUoYXJyYXlvYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp1bnVzZWQpCiB7Ci0gICAgUHlfVU5JQ09ERSB0eXBlY29kZTsKLSAgICB0eXBlY29kZSA9IHNlbGYtPm9iX2Rlc2NyLT50eXBlY29kZTsKLSAgICBpZiAoKHR5cGVjb2RlICE9ICd1JykpIHsKKyAgICBpZiAoc2VsZi0+b2JfZGVzY3ItPnR5cGVjb2RlICE9ICd1JykgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKICAgICAgICAgICAgICAidG91bmljb2RlKCkgbWF5IG9ubHkgYmUgY2FsbGVkIG9uIHVuaWNvZGUgdHlwZSBhcnJheXMiKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoKFB5X1VOSUNPREUgKikgc2VsZi0+b2JfaXRlbSwgUHlfU0laRShzZWxmKSk7CisgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tS2luZEFuZERhdGEoUHlVbmljb2RlXzRCWVRFX0tJTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFB5X1VDUzQgKikgc2VsZi0+b2JfaXRlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9TSVpFKHNlbGYpKTsKIH0KIAogUHlEb2NfU1RSVkFSKHRvdW5pY29kZV9kb2MsCkBAIC0xNTg4LDcgKzE2NTQsNyBAQAogICogYmUgZm91bmQuCiAgKi8KIHN0YXRpYyBlbnVtIG1hY2hpbmVfZm9ybWF0X2NvZGUKLXR5cGVjb2RlX3RvX21mb3JtYXRfY29kZShpbnQgdHlwZWNvZGUpCit0eXBlY29kZV90b19tZm9ybWF0X2NvZGUoY2hhciB0eXBlY29kZSkKIHsKICNpZmRlZiBXT1JEU19CSUdFTkRJQU4KICAgICBjb25zdCBpbnQgaXNfYmlnX2VuZGlhbiA9IDE7CkBAIC0xNjA1LDEzICsxNjcxLDcgQEAKICAgICAgICAgcmV0dXJuIFVOU0lHTkVEX0lOVDg7CiAKICAgICBjYXNlICd1JzoKLSAgICAgICAgaWYgKHNpemVvZihQeV9VTklDT0RFKSA9PSAyKSB7Ci0gICAgICAgICAgICByZXR1cm4gVVRGMTZfTEUgKyBpc19iaWdfZW5kaWFuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzaXplb2YoUHlfVU5JQ09ERSkgPT0gNCkgewotICAgICAgICAgICAgcmV0dXJuIFVURjMyX0xFICsgaXNfYmlnX2VuZGlhbjsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gVU5LTk9XTl9GT1JNQVQ7CisgICAgICAgIHJldHVybiBVVEYzMl9MRSArIGlzX2JpZ19lbmRpYW47CiAKICAgICBjYXNlICdmJzoKICAgICAgICAgaWYgKHNpemVvZihmbG9hdCkgPT0gNCkgewpAQCAtMTY1OCw2ICsxNzE4LDE2IEBACiAgICAgICAgIGludHNpemUgPSBzaXplb2YobG9uZyk7CiAgICAgICAgIGlzX3NpZ25lZCA9IDA7CiAgICAgICAgIGJyZWFrOworI2lmIEhBVkVfTE9OR19MT05HCisgICAgY2FzZSAncSc6CisgICAgICAgIGludHNpemUgPSBzaXplb2YoUFlfTE9OR19MT05HKTsKKyAgICAgICAgaXNfc2lnbmVkID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAnUSc6CisgICAgICAgIGludHNpemUgPSBzaXplb2YoUFlfTE9OR19MT05HKTsKKyAgICAgICAgaXNfc2lnbmVkID0gMDsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gVU5LTk9XTl9GT1JNQVQ7CiAgICAgfQpAQCAtMTY4OCw3ICsxNzU4LDcgQEAKICAqIE5VTEwgaXMgcmV0dXJuZWQgdG8gaW5kaWNhdGUgYSBmYWlsdXJlLgogICovCiBzdGF0aWMgUHlPYmplY3QgKgotbWFrZV9hcnJheShQeVR5cGVPYmplY3QgKmFycmF5dHlwZSwgUHlfVU5JQ09ERSB0eXBlY29kZSwgUHlPYmplY3QgKml0ZW1zKQorbWFrZV9hcnJheShQeVR5cGVPYmplY3QgKmFycmF5dHlwZSwgY2hhciB0eXBlY29kZSwgUHlPYmplY3QgKml0ZW1zKQogewogICAgIFB5T2JqZWN0ICpuZXdfYXJnczsKICAgICBQeU9iamVjdCAqYXJyYXlfb2JqOwpAQCAtMTY5Nyw3ICsxNzY3LDcgQEAKICAgICBhc3NlcnQoYXJyYXl0eXBlICE9IE5VTEwpOwogICAgIGFzc2VydChpdGVtcyAhPSBOVUxMKTsKIAotICAgIHR5cGVjb2RlX29iaiA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZSgmdHlwZWNvZGUsIDEpOworICAgIHR5cGVjb2RlX29iaiA9IFB5VW5pY29kZV9Gcm9tT3JkaW5hbCh0eXBlY29kZSk7CiAgICAgaWYgKHR5cGVjb2RlX29iaiA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIApAQCAtMTcyNywxNyArMTc5NywxNCBAQAogICAgIFB5T2JqZWN0ICppdGVtczsKICAgICBQeU9iamVjdCAqY29udmVydGVkX2l0ZW1zOwogICAgIFB5T2JqZWN0ICpyZXN1bHQ7Ci0gICAgaW50IHR5cGVjb2RlX2ludDsKLSAgICBQeV9VTklDT0RFIHR5cGVjb2RlOworICAgIGludCB0eXBlY29kZTsKICAgICBlbnVtIG1hY2hpbmVfZm9ybWF0X2NvZGUgbWZvcm1hdF9jb2RlOwogICAgIHN0cnVjdCBhcnJheWRlc2NyICpkZXNjcjsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT0NpTzphcnJheS5fYXJyYXlfcmVjb25zdHJ1Y3RvciIsCi0gICAgICAgICAgICAgICAgICAgICZhcnJheXR5cGUsICZ0eXBlY29kZV9pbnQsICZtZm9ybWF0X2NvZGUsICZpdGVtcykpCisgICAgICAgICAgICAgICAgICAgICZhcnJheXR5cGUsICZ0eXBlY29kZSwgJm1mb3JtYXRfY29kZSwgJml0ZW1zKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICB0eXBlY29kZSA9IChQeV9VTklDT0RFKXR5cGVjb2RlX2ludDsKLQogICAgIGlmICghUHlUeXBlX0NoZWNrKGFycmF5dHlwZSkpIHsKICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICJmaXJzdCBhcmd1bWVudCBtdXN0IGEgdHlwZSBvYmplY3QsIG5vdCAlLjIwMHMiLApAQCAtMTc1MSw3ICsxODE4LDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIGZvciAoZGVzY3IgPSBkZXNjcmlwdG9yczsgZGVzY3ItPnR5cGVjb2RlICE9ICdcMCc7IGRlc2NyKyspIHsKLSAgICAgICAgaWYgKGRlc2NyLT50eXBlY29kZSA9PSB0eXBlY29kZSkKKyAgICAgICAgaWYgKChpbnQpZGVzY3ItPnR5cGVjb2RlID09IHR5cGVjb2RlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGlmIChkZXNjci0+dHlwZWNvZGUgPT0gJ1wwJykgewpAQCAtMTc3Myw5ICsxODQwLDkgQEAKICAgICB9CiAKICAgICAvKiBGYXN0IHBhdGg6IE5vIGRlY29kaW5nIGhhcyB0byBiZSBkb25lLiAqLwotICAgIGlmIChtZm9ybWF0X2NvZGUgPT0gdHlwZWNvZGVfdG9fbWZvcm1hdF9jb2RlKHR5cGVjb2RlKSB8fAorICAgIGlmIChtZm9ybWF0X2NvZGUgPT0gdHlwZWNvZGVfdG9fbWZvcm1hdF9jb2RlKChjaGFyKXR5cGVjb2RlKSB8fAogICAgICAgICBtZm9ybWF0X2NvZGUgPT0gVU5LTk9XTl9GT1JNQVQpIHsKLSAgICAgICAgcmV0dXJuIG1ha2VfYXJyYXkoYXJyYXl0eXBlLCB0eXBlY29kZSwgaXRlbXMpOworICAgICAgICByZXR1cm4gbWFrZV9hcnJheShhcnJheXR5cGUsIChjaGFyKXR5cGVjb2RlLCBpdGVtcyk7CiAgICAgfQogCiAgICAgLyogU2xvdyBwYXRoOiBEZWNvZGUgdGhlIGJ5dGUgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gbWFjaGluZQpAQCAtMTkyMSw3ICsxOTg4LDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgcmVzdWx0ID0gbWFrZV9hcnJheShhcnJheXR5cGUsIHR5cGVjb2RlLCBjb252ZXJ0ZWRfaXRlbXMpOworICAgIHJlc3VsdCA9IG1ha2VfYXJyYXkoYXJyYXl0eXBlLCAoY2hhcil0eXBlY29kZSwgY29udmVydGVkX2l0ZW1zKTsKICAgICBQeV9ERUNSRUYoY29udmVydGVkX2l0ZW1zKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTkzNiwxNCArMjAwMywxNiBAQAogICAgIGludCBtZm9ybWF0X2NvZGU7CiAgICAgc3RhdGljIFB5T2JqZWN0ICphcnJheV9yZWNvbnN0cnVjdG9yID0gTlVMTDsKICAgICBsb25nIHByb3RvY29sOworICAgIF9QeV9JREVOVElGSUVSKF9hcnJheV9yZWNvbnN0cnVjdG9yKTsKKyAgICBfUHlfSURFTlRJRklFUihfX2RpY3RfXyk7CiAKICAgICBpZiAoYXJyYXlfcmVjb25zdHJ1Y3RvciA9PSBOVUxMKSB7CiAgICAgICAgIFB5T2JqZWN0ICphcnJheV9tb2R1bGUgPSBQeUltcG9ydF9JbXBvcnRNb2R1bGUoImFycmF5Iik7CiAgICAgICAgIGlmIChhcnJheV9tb2R1bGUgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBhcnJheV9yZWNvbnN0cnVjdG9yID0gUHlPYmplY3RfR2V0QXR0clN0cmluZygKKyAgICAgICAgYXJyYXlfcmVjb25zdHJ1Y3RvciA9IF9QeU9iamVjdF9HZXRBdHRySWQoCiAgICAgICAgICAgICBhcnJheV9tb2R1bGUsCi0gICAgICAgICAgICAiX2FycmF5X3JlY29uc3RydWN0b3IiKTsKKyAgICAgICAgICAgICZQeUlkX19hcnJheV9yZWNvbnN0cnVjdG9yKTsKICAgICAgICAgUHlfREVDUkVGKGFycmF5X21vZHVsZSk7CiAgICAgICAgIGlmIChhcnJheV9yZWNvbnN0cnVjdG9yID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTE5NTgsNyArMjAyNyw3IEBACiAgICAgaWYgKHByb3RvY29sID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgZGljdCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoKFB5T2JqZWN0ICopYXJyYXksICJfX2RpY3RfXyIpOworICAgIGRpY3QgPSBfUHlPYmplY3RfR2V0QXR0cklkKChQeU9iamVjdCAqKWFycmF5LCAmUHlJZF9fX2RpY3RfXyk7CiAgICAgaWYgKGRpY3QgPT0gTlVMTCkgewogICAgICAgICBpZiAoIVB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0yMDEwLDggKzIwNzksOCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGFycmF5X2dldF90eXBlY29kZShhcnJheW9iamVjdCAqYSwgdm9pZCAqY2xvc3VyZSkKIHsKLSAgICBQeV9VTklDT0RFIHRjID0gYS0+b2JfZGVzY3ItPnR5cGVjb2RlOwotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoJnRjLCAxKTsKKyAgICBjaGFyIHR5cGVjb2RlID0gYS0+b2JfZGVzY3ItPnR5cGVjb2RlOworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbU9yZGluYWwodHlwZWNvZGUpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMjA4Myw3ICsyMTUyLDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBhcnJheV9yZXByKGFycmF5b2JqZWN0ICphKQogewotICAgIFB5X1VOSUNPREUgdHlwZWNvZGU7CisgICAgY2hhciB0eXBlY29kZTsKICAgICBQeU9iamVjdCAqcywgKnYgPSBOVUxMOwogICAgIFB5X3NzaXplX3QgbGVuOwogCkBAIC0yMDkyLDcgKzIxNjEsNyBAQAogICAgIGlmIChsZW4gPT0gMCkgewogICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoImFycmF5KCclYycpIiwgKGludCl0eXBlY29kZSk7CiAgICAgfQotICAgIGlmICgodHlwZWNvZGUgPT0gJ3UnKSkKKyAgICBpZiAodHlwZWNvZGUgPT0gJ3UnKQogICAgICAgICB2ID0gYXJyYXlfdG91bmljb2RlKGEsIE5VTEwpOwogICAgIGVsc2UKICAgICAgICAgdiA9IGFycmF5X3RvbGlzdChhLCBOVUxMKTsKQEAgLTIyODcsNyArMjM1Niw3IEBACiAgICAgICAgICAgICAgICAgc2VsZi0+b2JfaXRlbSArIChjdXIgKyAxKSAqIGl0ZW1zaXplLAogICAgICAgICAgICAgICAgIGxpbSAqIGl0ZW1zaXplKTsKICAgICAgICAgfQotICAgICAgICBjdXIgPSBzdGFydCArIHNsaWNlbGVuZ3RoICogc3RlcDsKKyAgICAgICAgY3VyID0gc3RhcnQgKyAoc2l6ZV90KXNsaWNlbGVuZ3RoICogc3RlcDsKICAgICAgICAgaWYgKGN1ciA8IChzaXplX3QpUHlfU0laRShzZWxmKSkgewogICAgICAgICAgICAgbWVtbW92ZShzZWxmLT5vYl9pdGVtICsgKGN1ci1zbGljZWxlbmd0aCkgKiBpdGVtc2l6ZSwKICAgICAgICAgICAgICAgICBzZWxmLT5vYl9pdGVtICsgY3VyICogaXRlbXNpemUsCkBAIC0yMzUwLDE0ICsyNDE5LDggQEAKICAgICAgICAgdmlldy0+c3RyaWRlcyA9ICYodmlldy0+aXRlbXNpemUpOwogICAgIHZpZXctPmZvcm1hdCA9IE5VTEw7CiAgICAgdmlldy0+aW50ZXJuYWwgPSBOVUxMOwotICAgIGlmICgoZmxhZ3MgJiBQeUJVRl9GT1JNQVQpID09IFB5QlVGX0ZPUk1BVCkgeworICAgIGlmICgoZmxhZ3MgJiBQeUJVRl9GT1JNQVQpID09IFB5QlVGX0ZPUk1BVCkKICAgICAgICAgdmlldy0+Zm9ybWF0ID0gc2VsZi0+b2JfZGVzY3ItPmZvcm1hdHM7Ci0jaWZkZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgIGlmIChzZWxmLT5vYl9kZXNjci0+dHlwZWNvZGUgPT0gJ3UnKSB7Ci0gICAgICAgICAgICB2aWV3LT5mb3JtYXQgPSAidyI7Ci0gICAgICAgIH0KLSNlbmRpZgotICAgIH0KIAogIGZpbmlzaDoKICAgICBzZWxmLT5vYl9leHBvcnRzKys7CkBAIC0yNDcxLDE5ICsyNTM0LDI1IEBACiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHYpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoaW5pdGlhbCAhPSBOVUxMICYmIFB5VW5pY29kZV9DaGVjayhpbml0aWFsKSkgIHsKLSAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG4gPSBQeVVuaWNvZGVfR0VUX0RBVEFfU0laRShpbml0aWFsKTsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG47CisgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShpbml0aWFsKSkgeworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoaW5pdGlhbCk7CiAgICAgICAgICAgICAgICAgaWYgKG4gPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgIGFycmF5b2JqZWN0ICpzZWxmID0gKGFycmF5b2JqZWN0ICopYTsKLSAgICAgICAgICAgICAgICAgICAgY2hhciAqaXRlbSA9IHNlbGYtPm9iX2l0ZW07Ci0gICAgICAgICAgICAgICAgICAgIGl0ZW0gPSAoY2hhciAqKVB5TWVtX1JlYWxsb2MoaXRlbSwgbik7CisgICAgICAgICAgICAgICAgICAgIFB5X1VDUzQgKml0ZW0gPSAoUHlfVUNTNCAqKXNlbGYtPm9iX2l0ZW07CisgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSAoUHlfVUNTNCAqKVB5TWVtX1JlYWxsb2MoaXRlbSwgbiAqIHNpemVvZihQeV9VQ1M0KSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBzZWxmLT5vYl9pdGVtID0gaXRlbTsKLSAgICAgICAgICAgICAgICAgICAgUHlfU0laRShzZWxmKSA9IG4gLyBzaXplb2YoUHlfVU5JQ09ERSk7Ci0gICAgICAgICAgICAgICAgICAgIG1lbWNweShpdGVtLCBQeVVuaWNvZGVfQVNfREFUQShpbml0aWFsKSwgbik7CisgICAgICAgICAgICAgICAgICAgIHNlbGYtPm9iX2l0ZW0gPSAoY2hhciopaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgUHlfU0laRShzZWxmKSA9IG47CisgICAgICAgICAgICAgICAgICAgIGlmICghUHlVbmljb2RlX0FzVUNTNChpbml0aWFsLCBpdGVtLCBuLCAwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgICAgICAgICBzZWxmLT5hbGxvY2F0ZWQgPSBQeV9TSVpFKHNlbGYpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTI1MDQsNyArMjU3MywxMSBAQAogICAgICAgICB9CiAgICAgfQogICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorI2lmZGVmIEhBVkVfTE9OR19MT05HCisgICAgICAgICJiYWQgdHlwZWNvZGUgKG11c3QgYmUgYiwgQiwgdSwgaCwgSCwgaSwgSSwgbCwgTCwgcSwgUSwgZiBvciBkKSIpOworI2Vsc2UKICAgICAgICAgImJhZCB0eXBlY29kZSAobXVzdCBiZSBiLCBCLCB1LCBoLCBILCBpLCBJLCBsLCBMLCBmIG9yIGQpIik7CisjZW5kaWYKICAgICByZXR1cm4gTlVMTDsKIH0KIApAQCAtMjUyMCwxOCArMjU5MywyMSBAQAogICAgIFR5cGUgY29kZSAgIEMgVHlwZSAgICAgICAgICAgICBNaW5pbXVtIHNpemUgaW4gYnl0ZXMgXG5cCiAgICAgJ2InICAgICAgICAgc2lnbmVkIGludGVnZXIgICAgIDEgXG5cCiAgICAgJ0InICAgICAgICAgdW5zaWduZWQgaW50ZWdlciAgIDEgXG5cCi0gICAgJ3UnICAgICAgICAgVW5pY29kZSBjaGFyYWN0ZXIgIDIgKHNlZSBub3RlKSBcblwKKyAgICAndScgICAgICAgICBVbmljb2RlIGNoYXJhY3RlciAgNCBcblwKICAgICAnaCcgICAgICAgICBzaWduZWQgaW50ZWdlciAgICAgMiBcblwKICAgICAnSCcgICAgICAgICB1bnNpZ25lZCBpbnRlZ2VyICAgMiBcblwKICAgICAnaScgICAgICAgICBzaWduZWQgaW50ZWdlciAgICAgMiBcblwKICAgICAnSScgICAgICAgICB1bnNpZ25lZCBpbnRlZ2VyICAgMiBcblwKICAgICAnbCcgICAgICAgICBzaWduZWQgaW50ZWdlciAgICAgNCBcblwKICAgICAnTCcgICAgICAgICB1bnNpZ25lZCBpbnRlZ2VyICAgNCBcblwKKyAgICAncScgICAgICAgICBzaWduZWQgaW50ZWdlciAgICAgOCAoc2VlIG5vdGUpIFxuXAorICAgICdRJyAgICAgICAgIHVuc2lnbmVkIGludGVnZXIgICA4IChzZWUgbm90ZSkgXG5cCiAgICAgJ2YnICAgICAgICAgZmxvYXRpbmcgcG9pbnQgICAgIDQgXG5cCiAgICAgJ2QnICAgICAgICAgZmxvYXRpbmcgcG9pbnQgICAgIDggXG5cCiBcblwKLU5PVEU6IFRoZSAndScgdHlwZWNvZGUgY29ycmVzcG9uZHMgdG8gUHl0aG9uJ3MgdW5pY29kZSBjaGFyYWN0ZXIuIE9uIFxuXAotbmFycm93IGJ1aWxkcyB0aGlzIGlzIDItYnl0ZXMgb24gd2lkZSBidWlsZHMgdGhpcyBpcyA0LWJ5dGVzLlxuXAorTk9URTogVGhlICdxJyBhbmQgJ1EnIHR5cGUgY29kZXMgYXJlIG9ubHkgYXZhaWxhYmxlIGlmIHRoZSBwbGF0Zm9ybSBcblwKK0MgY29tcGlsZXIgdXNlZCB0byBidWlsZCBQeXRob24gc3VwcG9ydHMgJ2xvbmcgbG9uZycsIG9yLCBvbiBXaW5kb3dzLCBcblwKKydfX2ludDY0Jy5cblwKIFxuXAogVGhlIGNvbnN0cnVjdG9yIGlzOlxuXAogXG5cCkBAIC0yNjc3LDYgKzI3NTMsMzQgQEAKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK2FycmF5aXRlcl9yZWR1Y2UoYXJyYXlpdGVyb2JqZWN0ICppdCkKK3sKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTihPKW4iLCBfUHlPYmplY3RfR2V0QnVpbHRpbigiaXRlciIpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGl0LT5hbywgaXQtPmluZGV4KTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2FycmF5aXRlcl9zZXRzdGF0ZShhcnJheWl0ZXJvYmplY3QgKml0LCBQeU9iamVjdCAqc3RhdGUpCit7CisgICAgUHlfc3NpemVfdCBpbmRleCA9IFB5TG9uZ19Bc1NzaXplX3Qoc3RhdGUpOworICAgIGlmIChpbmRleCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICBpbmRleCA9IDA7CisgICAgaXQtPmluZGV4ID0gaW5kZXg7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihzZXRzdGF0ZV9kb2MsICJTZXQgc3RhdGUgaW5mb3JtYXRpb24gZm9yIHVucGlja2xpbmcuIik7CitzdGF0aWMgUHlNZXRob2REZWYgYXJyYXlpdGVyX21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbilhcnJheWl0ZXJfcmVkdWNlLCBNRVRIX05PQVJHUywKKyAgICAgcmVkdWNlX2RvY30sCisgICAgeyJfX3NldHN0YXRlX18iLCAgICAoUHlDRnVuY3Rpb24pYXJyYXlpdGVyX3NldHN0YXRlLCBNRVRIX08sCisgICAgIHNldHN0YXRlX2RvY30sCisgICAge05VTEwsIE5VTEx9IC8qIHNlbnRpbmVsICovCit9OworCiBzdGF0aWMgUHlUeXBlT2JqZWN0IFB5QXJyYXlJdGVyX1R5cGUgPSB7CiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCiAgICAgImFycmF5aXRlcmF0b3IiLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KQEAgLTI3MDYsNyArMjgxMCw3IEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCiAgICAgKGl0ZXJuZXh0ZnVuYylhcnJheWl0ZXJfbmV4dCwgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIGFycmF5aXRlcl9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiB9OwogCiAKQEAgLTI3MzYsOSArMjg0MCw5IEBACiBQeUluaXRfYXJyYXkodm9pZCkKIHsKICAgICBQeU9iamVjdCAqbTsKKyAgICBjaGFyIGJ1ZmZlcltQeV9BUlJBWV9MRU5HVEgoZGVzY3JpcHRvcnMpXSwgKnA7CiAgICAgUHlPYmplY3QgKnR5cGVjb2RlczsKICAgICBQeV9zc2l6ZV90IHNpemUgPSAwOwotICAgIHJlZ2lzdGVyIFB5X1VOSUNPREUgKnA7CiAgICAgc3RydWN0IGFycmF5ZGVzY3IgKmRlc2NyOwogCiAgICAgaWYgKFB5VHlwZV9SZWFkeSgmQXJyYXl0eXBlKSA8IDApCkBAIC0yNzU3LDEzICsyODYxLDEzIEBACiAgICAgICAgIHNpemUrKzsKICAgICB9CiAKLSAgICB0eXBlY29kZXMgPSBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgc2l6ZSk7Ci0gICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHR5cGVjb2Rlcyk7CisgICAgcCA9IGJ1ZmZlcjsKICAgICBmb3IgKGRlc2NyID0gZGVzY3JpcHRvcnM7IGRlc2NyLT50eXBlY29kZSAhPSAnXDAnOyBkZXNjcisrKSB7CiAgICAgICAgICpwKysgPSAoY2hhcilkZXNjci0+dHlwZWNvZGU7CiAgICAgfQorICAgIHR5cGVjb2RlcyA9IFB5VW5pY29kZV9EZWNvZGVBU0NJSShidWZmZXIsIHAgLSBidWZmZXIsIE5VTEwpOwogCi0gICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJ0eXBlY29kZXMiLCAoUHlPYmplY3QgKil0eXBlY29kZXMpOworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAidHlwZWNvZGVzIiwgdHlwZWNvZGVzKTsKIAogICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKSB7CiAgICAgICAgIFB5X0RFQ1JFRihtKTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvYXRleGl0bW9kdWxlLmMgYi9Nb2R1bGVzL2F0ZXhpdG1vZHVsZS5jCmluZGV4IDFlZTdlYWQuLmY2OGQ4MDQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvYXRleGl0bW9kdWxlLmMKKysrIGIvTW9kdWxlcy9hdGV4aXRtb2R1bGUuYwpAQCAtMjExLDYgKzIxMSwxNCBAQAogICAgIFB5X1JFVFVSTl9OT05FOwogfQogCitzdGF0aWMgdm9pZAorYXRleGl0X2ZyZWUoUHlPYmplY3QgKm0pCit7CisgICAgYXRleGl0bW9kdWxlX3N0YXRlICptb2RzdGF0ZTsKKyAgICBtb2RzdGF0ZSA9IEdFVF9BVEVYSVRfU1RBVEUobSk7CisgICAgUHlNZW1fRnJlZShtb2RzdGF0ZS0+YXRleGl0X2NhbGxiYWNrcyk7Cit9CisKIFB5RG9jX1NUUlZBUihhdGV4aXRfdW5yZWdpc3Rlcl9fZG9jX18sCiAidW5yZWdpc3RlcihmdW5jKSAtPiBOb25lXG5cCiBcblwKQEAgLTI3NSw3ICsyODMsNyBAQAogCU5VTEwsCiAJTlVMTCwKIAlOVUxMLAotCU5VTEwKKwkoZnJlZWZ1bmMpYXRleGl0X2ZyZWUKIH07CiAKIFB5TU9ESU5JVF9GVU5DCmRpZmYgLS1naXQgYS9Nb2R1bGVzL2F1ZGlvb3AuYyBiL01vZHVsZXMvYXVkaW9vcC5jCmluZGV4IDlhYjQ4MzQuLjAzNzVlNGUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvYXVkaW9vcC5jCisrKyBiL01vZHVsZXMvYXVkaW9vcC5jCkBAIC01MTMsNyArNTEzLDYgQEAKIAogICAgIGJlc3RfcmVzdWx0ID0gcmVzdWx0OwogICAgIGJlc3RfaiA9IDA7Ci0gICAgaiA9IDA7CiAKICAgICBmb3IgKCBqPTE7IGo8PWxlbjEtbGVuMjsgaisrKSB7CiAgICAgICAgIGFqX20xID0gKGRvdWJsZSljcDFbai0xXTsKQEAgLTU5OSw3ICs1OTgsNiBAQAogCiAgICAgYmVzdF9yZXN1bHQgPSByZXN1bHQ7CiAgICAgYmVzdF9qID0gMDsKLSAgICBqID0gMDsKIAogICAgIGZvciAoIGo9MTsgajw9bGVuMS1sZW4yOyBqKyspIHsKICAgICAgICAgYWpfbTEgPSAoZG91YmxlKWNwMVtqLTFdOwpAQCAtMTQzMyw3ICsxNDMxLDYgQEAKICAgICBpZiAoIHN0YXRlID09IFB5X05vbmUgKSB7CiAgICAgICAgIC8qIEZpcnN0IHRpbWUsIGl0IHNlZW1zLiBTZXQgZGVmYXVsdHMgKi8KICAgICAgICAgdmFscHJlZCA9IDA7Ci0gICAgICAgIHN0ZXAgPSA3OwogICAgICAgICBpbmRleCA9IDA7CiAgICAgfSBlbHNlIGlmICggIVB5QXJnX1BhcnNlVHVwbGUoc3RhdGUsICJpaSIsICZ2YWxwcmVkLCAmaW5kZXgpICkKICAgICAgICAgcmV0dXJuIDA7CkBAIC0xNTM0LDcgKzE1MzEsNiBAQAogICAgIGlmICggc3RhdGUgPT0gUHlfTm9uZSApIHsKICAgICAgICAgLyogRmlyc3QgdGltZSwgaXQgc2VlbXMuIFNldCBkZWZhdWx0cyAqLwogICAgICAgICB2YWxwcmVkID0gMDsKLSAgICAgICAgc3RlcCA9IDc7CiAgICAgICAgIGluZGV4ID0gMDsKICAgICB9IGVsc2UgaWYgKCAhUHlBcmdfUGFyc2VUdXBsZShzdGF0ZSwgImlpIiwgJnZhbHByZWQsICZpbmRleCkgKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvYmluYXNjaWkuYyBiL01vZHVsZXMvYmluYXNjaWkuYwppbmRleCAxOTY4MWI0Li5hZDVlMWIxIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2JpbmFzY2lpLmMKKysrIGIvTW9kdWxlcy9iaW5hc2NpaS5jCkBAIC0xODMsNiArMTgzLDQ0IEBACiAgICAgMHg2ZTE3LCAweDdlMzYsIDB4NGU1NSwgMHg1ZTc0LCAweDJlOTMsIDB4M2ViMiwgMHgwZWQxLCAweDFlZjAsCiB9OwogCitzdGF0aWMgaW50Cithc2NpaV9idWZmZXJfY29udmVydGVyKFB5T2JqZWN0ICphcmcsIFB5X2J1ZmZlciAqYnVmKQoreworICAgIGlmIChhcmcgPT0gTlVMTCkgeworICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKGJ1Zik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBpZiAoUHlVbmljb2RlX0NoZWNrKGFyZykpIHsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShhcmcpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBpZiAoIVB5VW5pY29kZV9JU19BU0NJSShhcmcpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5nIGFyZ3VtZW50IHNob3VsZCBjb250YWluIG9ubHkgQVNDSUkgY2hhcmFjdGVycyIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9LSU5EKGFyZykgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQpOworICAgICAgICBidWYtPmJ1ZiA9ICh2b2lkICopIFB5VW5pY29kZV8xQllURV9EQVRBKGFyZyk7CisgICAgICAgIGJ1Zi0+bGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoYXJnKTsKKyAgICAgICAgYnVmLT5vYmogPSBOVUxMOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcihhcmcsIGJ1ZiwgUHlCVUZfU0lNUExFKSAhPSAwKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAiYXJndW1lbnQgc2hvdWxkIGJlIGJ5dGVzLCBidWZmZXIgb3IgQVNDSUkgc3RyaW5nLCAiCisgICAgICAgICAgICAgICAgICAgICAibm90ICVSIiwgUHlfVFlQRShhcmcpKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmICghUHlCdWZmZXJfSXNDb250aWd1b3VzKGJ1ZiwgJ0MnKSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50IHNob3VsZCBiZSBhIGNvbnRpZ3VvdXMgYnVmZmVyLCAiCisgICAgICAgICAgICAgICAgICAgICAibm90ICVSIiwgUHlfVFlQRShhcmcpKTsKKyAgICAgICAgUHlCdWZmZXJfUmVsZWFzZShidWYpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIFB5X0NMRUFOVVBfU1VQUE9SVEVEOworfQorCisKIFB5RG9jX1NUUlZBUihkb2NfYTJiX3V1LCAiKGFzY2lpKSAtPiBiaW4uIERlY29kZSBhIGxpbmUgb2YgdXVlbmNvZGVkIGRhdGEiKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTE5Niw3ICsyMzQsNyBAQAogICAgIFB5T2JqZWN0ICpydjsKICAgICBQeV9zc2l6ZV90IGFzY2lpX2xlbiwgYmluX2xlbjsKIAotICAgIGlmICggIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInkqOmEyYl91dSIsICZwYXNjaWkpICkKKyAgICBpZiAoICFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJjphMmJfdXUiLCBhc2NpaV9idWZmZXJfY29udmVydGVyLCAmcGFzY2lpKSApCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGFzY2lpX2RhdGEgPSBwYXNjaWkuYnVmOwogICAgIGFzY2lpX2xlbiA9IHBhc2NpaS5sZW47CkBAIC0zNzAsNyArNDA4LDcgQEAKICAgICBQeV9zc2l6ZV90IGFzY2lpX2xlbiwgYmluX2xlbjsKICAgICBpbnQgcXVhZF9wb3MgPSAwOwogCi0gICAgaWYgKCAhUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSo6YTJiX2Jhc2U2NCIsICZwYXNjaWkpICkKKyAgICBpZiAoICFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJjphMmJfYmFzZTY0IiwgYXNjaWlfYnVmZmVyX2NvbnZlcnRlciwgJnBhc2NpaSkgKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBhc2NpaV9kYXRhID0gcGFzY2lpLmJ1ZjsKICAgICBhc2NpaV9sZW4gPSBwYXNjaWkubGVuOwpAQCAtNTQ2LDcgKzU4NCw3IEBACiAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgaW50IGRvbmUgPSAwOwogCi0gICAgaWYgKCAhUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSo6YTJiX2hxeCIsICZwYXNjaWkpICkKKyAgICBpZiAoICFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJjphMmJfaHF4IiwgYXNjaWlfYnVmZmVyX2NvbnZlcnRlciwgJnBhc2NpaSkgKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBhc2NpaV9kYXRhID0gcGFzY2lpLmJ1ZjsKICAgICBsZW4gPSBwYXNjaWkubGVuOwpAQCAtMTA3OCwxMyArMTExNiwxMSBAQAogCiAgICAgLyogbWFrZSBoZXggdmVyc2lvbiBvZiBzdHJpbmcsIHRha2VuIGZyb20gc2hhbW9kdWxlLmMgKi8KICAgICBmb3IgKGk9aj0wOyBpIDwgYXJnbGVuOyBpKyspIHsKLSAgICAgICAgY2hhciBjOworICAgICAgICB1bnNpZ25lZCBjaGFyIGM7CiAgICAgICAgIGMgPSAoYXJnYnVmW2ldID4+IDQpICYgMHhmOwotICAgICAgICBjID0gKGM+OSkgPyBjKydhJy0xMCA6IGMgKyAnMCc7Ci0gICAgICAgIHJldGJ1ZltqKytdID0gYzsKKyAgICAgICAgcmV0YnVmW2orK10gPSBQeV9oZXhkaWdpdHNbY107CiAgICAgICAgIGMgPSBhcmdidWZbaV0gJiAweGY7Ci0gICAgICAgIGMgPSAoYz45KSA/IGMrJ2EnLTEwIDogYyArICcwJzsKLSAgICAgICAgcmV0YnVmW2orK10gPSBjOworICAgICAgICByZXRidWZbaisrXSA9IFB5X2hleGRpZ2l0c1tjXTsKICAgICB9CiAgICAgUHlCdWZmZXJfUmVsZWFzZSgmcGFyZyk7CiAgICAgcmV0dXJuIHJldHZhbDsKQEAgLTExMjEsNyArMTE1Nyw3IEBACiAgICAgY2hhciogcmV0YnVmOwogICAgIFB5X3NzaXplX3QgaSwgajsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSo6YTJiX2hleCIsICZwYXJnKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mOmEyYl9oZXgiLCBhc2NpaV9idWZmZXJfY29udmVydGVyLCAmcGFyZykpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGFyZ2J1ZiA9IHBhcmcuYnVmOwogICAgIGFyZ2xlbiA9IHBhcmcubGVuOwpAQCAtMTE5OSw4ICsxMjM1LDggQEAKICAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImRhdGEiLCAiaGVhZGVyIiwgTlVMTH07CiAgICAgaW50IGhlYWRlciA9IDA7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJ5KnxpIiwga3dsaXN0LCAmcGRhdGEsCi0gICAgICAgICAgJmhlYWRlcikpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZ8aTphMmJfcXAiLCBrd2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNjaWlfYnVmZmVyX2NvbnZlcnRlciwgJnBkYXRhLCAmaGVhZGVyKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgZGF0YSA9IHBkYXRhLmJ1ZjsKICAgICBkYXRhbGVuID0gcGRhdGEubGVuOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9iejJtb2R1bGUuYyBiL01vZHVsZXMvYnoybW9kdWxlLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2NzFlOGQuLjAwMDAwMDAKLS0tIGEvTW9kdWxlcy9iejJtb2R1bGUuYworKysgL2Rldi9udWxsCkBAIC0xLDIxNjkgKzAsMCBAQAotLyoKLQotcHl0aG9uLWJ6MiAtIHB5dGhvbiBiejIgbGlicmFyeSBpbnRlcmZhY2UKLQotQ29weXJpZ2h0IChjKSAyMDAyICBHdXN0YXZvIE5pZW1leWVyIDxuaWVtZXllckBjb25lY3RpdmEuY29tPgotQ29weXJpZ2h0IChjKSAyMDAyICBQeXRob24gU29mdHdhcmUgRm91bmRhdGlvbjsgQWxsIFJpZ2h0cyBSZXNlcnZlZAotCi0qLwotCi0jaW5jbHVkZSAiUHl0aG9uLmgiCi0jaW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDxiemxpYi5oPgotI2luY2x1ZGUgInN0cnVjdG1lbWJlci5oIgotCi0jaWZkZWYgV0lUSF9USFJFQUQKLSNpbmNsdWRlICJweXRocmVhZC5oIgotI2VuZGlmCi0KLXN0YXRpYyBjaGFyIF9fYXV0aG9yX19bXSA9Ci0iVGhlIGJ6MiBweXRob24gbW9kdWxlIHdhcyB3cml0dGVuIGJ5OlxuXAotXG5cCi0gICAgR3VzdGF2byBOaWVtZXllciA8bmllbWV5ZXJAY29uZWN0aXZhLmNvbT5cblwKLSI7Ci0KLS8qIE91ciB2ZXJ5IG93biBvZmZfdC1saWtlIHR5cGUsIDY0LWJpdCBpZiBwb3NzaWJsZSAqLwotLyogY29waWVkIGZyb20gT2JqZWN0cy9maWxlb2JqZWN0LmMgKi8KLSNpZiAhZGVmaW5lZChIQVZFX0xBUkdFRklMRV9TVVBQT1JUKQotdHlwZWRlZiBvZmZfdCBQeV9vZmZfdDsKLSNlbGlmIFNJWkVPRl9PRkZfVCA+PSA4Ci10eXBlZGVmIG9mZl90IFB5X29mZl90OwotI2VsaWYgU0laRU9GX0ZQT1NfVCA+PSA4Ci10eXBlZGVmIGZwb3NfdCBQeV9vZmZfdDsKLSNlbHNlCi0jZXJyb3IgIkxhcmdlIGZpbGUgc3VwcG9ydCwgYnV0IG5laXRoZXIgb2ZmX3Qgbm9yIGZwb3NfdCBpcyBsYXJnZSBlbm91Z2guIgotI2VuZGlmCi0KLSNkZWZpbmUgQlVGKHYpIFB5Qnl0ZXNfQVNfU1RSSU5HKHYpCi0KLSNkZWZpbmUgTU9ERV9DTE9TRUQgICAwCi0jZGVmaW5lIE1PREVfUkVBRCAgICAgMQotI2RlZmluZSBNT0RFX1JFQURfRU9GIDIKLSNkZWZpbmUgTU9ERV9XUklURSAgICAzCi0KLSNkZWZpbmUgQloyRmlsZU9iamVjdF9DaGVjayh2KSAgKFB5X1RZUEUodikgPT0gJkJaMkZpbGVfVHlwZSkKLQotCi0jaWZkZWYgQlpfQ09ORklHX0VSUk9SCi0KLSNpZiBTSVpFT0ZfTE9ORyA+PSA4Ci0jZGVmaW5lIEJaU19UT1RBTF9PVVQoYnpzKSBcCi0gICAgKCgobG9uZylienMtPnRvdGFsX291dF9oaTMyIDw8IDMyKSArIGJ6cy0+dG90YWxfb3V0X2xvMzIpCi0jZWxpZiBTSVpFT0ZfTE9OR19MT05HID49IDgKLSNkZWZpbmUgQlpTX1RPVEFMX09VVChienMpIFwKLSAgICAoKChQWV9MT05HX0xPTkcpYnpzLT50b3RhbF9vdXRfaGkzMiA8PCAzMikgKyBienMtPnRvdGFsX291dF9sbzMyKQotI2Vsc2UKLSNkZWZpbmUgQlpTX1RPVEFMX09VVChienMpIFwKLSAgICBienMtPnRvdGFsX291dF9sbzMyCi0jZW5kaWYKLQotI2Vsc2UgLyogISBCWl9DT05GSUdfRVJST1IgKi8KLQotI2RlZmluZSBCWjJfYnpSZWFkIGJ6UmVhZAotI2RlZmluZSBCWjJfYnpSZWFkT3BlbiBielJlYWRPcGVuCi0jZGVmaW5lIEJaMl9ielJlYWRDbG9zZSBielJlYWRDbG9zZQotI2RlZmluZSBCWjJfYnpXcml0ZSBieldyaXRlCi0jZGVmaW5lIEJaMl9ieldyaXRlT3BlbiBieldyaXRlT3BlbgotI2RlZmluZSBCWjJfYnpXcml0ZUNsb3NlIGJ6V3JpdGVDbG9zZQotI2RlZmluZSBCWjJfYnpDb21wcmVzcyBiekNvbXByZXNzCi0jZGVmaW5lIEJaMl9iekNvbXByZXNzSW5pdCBiekNvbXByZXNzSW5pdAotI2RlZmluZSBCWjJfYnpDb21wcmVzc0VuZCBiekNvbXByZXNzRW5kCi0jZGVmaW5lIEJaMl9iekRlY29tcHJlc3MgYnpEZWNvbXByZXNzCi0jZGVmaW5lIEJaMl9iekRlY29tcHJlc3NJbml0IGJ6RGVjb21wcmVzc0luaXQKLSNkZWZpbmUgQloyX2J6RGVjb21wcmVzc0VuZCBiekRlY29tcHJlc3NFbmQKLQotI2RlZmluZSBCWlNfVE9UQUxfT1VUKGJ6cykgYnpzLT50b3RhbF9vdXQKLQotI2VuZGlmIC8qICEgQlpfQ09ORklHX0VSUk9SICovCi0KLQotI2lmZGVmIFdJVEhfVEhSRUFECi0jZGVmaW5lIEFDUVVJUkVfTE9DSyhvYmopIGRvIHsgXAotICAgIGlmICghUHlUaHJlYWRfYWNxdWlyZV9sb2NrKG9iai0+bG9jaywgMCkpIHsgXAotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTIFwKLSAgICAgICAgUHlUaHJlYWRfYWNxdWlyZV9sb2NrKG9iai0+bG9jaywgMSk7IFwKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMgXAotICAgIH0gfSB3aGlsZSgwKQotI2RlZmluZSBSRUxFQVNFX0xPQ0sob2JqKSBQeVRocmVhZF9yZWxlYXNlX2xvY2sob2JqLT5sb2NrKQotI2Vsc2UKLSNkZWZpbmUgQUNRVUlSRV9MT0NLKG9iaikKLSNkZWZpbmUgUkVMRUFTRV9MT0NLKG9iaikKLSNlbmRpZgotCi0vKiBCaXRzIGluIGZfbmV3bGluZXR5cGVzICovCi0jZGVmaW5lIE5FV0xJTkVfVU5LTk9XTiAwICAgICAgIC8qIE5vIG5ld2xpbmUgc2VlbiwgeWV0ICovCi0jZGVmaW5lIE5FV0xJTkVfQ1IgMSAgICAgICAgICAgIC8qIFxyIG5ld2xpbmUgc2VlbiAqLwotI2RlZmluZSBORVdMSU5FX0xGIDIgICAgICAgICAgICAvKiBcbiBuZXdsaW5lIHNlZW4gKi8KLSNkZWZpbmUgTkVXTElORV9DUkxGIDQgICAgICAgICAgLyogXHJcbiBuZXdsaW5lIHNlZW4gKi8KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi0vKiBTdHJ1Y3R1cmUgZGVmaW5pdGlvbnMuICovCi0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBQeU9iamVjdF9IRUFECi0gICAgRklMRSAqcmF3ZnA7Ci0KLSAgICBjaGFyKiBmX2J1ZjsgICAgICAgICAgICAgICAgLyogQWxsb2NhdGVkIHJlYWRhaGVhZCBidWZmZXIgKi8KLSAgICBjaGFyKiBmX2J1ZmVuZDsgICAgICAgICAgICAgLyogUG9pbnRzIGFmdGVyIGxhc3Qgb2NjdXBpZWQgcG9zaXRpb24gKi8KLSAgICBjaGFyKiBmX2J1ZnB0cjsgICAgICAgICAgICAgLyogQ3VycmVudCBidWZmZXIgcG9zaXRpb24gKi8KLQotICAgIEJaRklMRSAqZnA7Ci0gICAgaW50IG1vZGU7Ci0gICAgUHlfb2ZmX3QgcG9zOwotICAgIFB5X29mZl90IHNpemU7Ci0jaWZkZWYgV0lUSF9USFJFQUQKLSAgICBQeVRocmVhZF90eXBlX2xvY2sgbG9jazsKLSNlbmRpZgotfSBCWjJGaWxlT2JqZWN0OwotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgUHlPYmplY3RfSEVBRAotICAgIGJ6X3N0cmVhbSBienM7Ci0gICAgaW50IHJ1bm5pbmc7Ci0jaWZkZWYgV0lUSF9USFJFQUQKLSAgICBQeVRocmVhZF90eXBlX2xvY2sgbG9jazsKLSNlbmRpZgotfSBCWjJDb21wT2JqZWN0OwotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgUHlPYmplY3RfSEVBRAotICAgIGJ6X3N0cmVhbSBienM7Ci0gICAgaW50IHJ1bm5pbmc7Ci0gICAgUHlPYmplY3QgKnVudXNlZF9kYXRhOwotI2lmZGVmIFdJVEhfVEhSRUFECi0gICAgUHlUaHJlYWRfdHlwZV9sb2NrIGxvY2s7Ci0jZW5kaWYKLX0gQloyRGVjb21wT2JqZWN0OwotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLS8qIFV0aWxpdHkgZnVuY3Rpb25zLiAqLwotCi0vKiBSZWZ1c2UgcmVndWxhciBJL08gaWYgdGhlcmUncyBkYXRhIGluIHRoZSBpdGVyYXRpb24tYnVmZmVyLgotICogTWl4aW5nIHRoZW0gd291bGQgY2F1c2UgZGF0YSB0byBhcnJpdmUgb3V0IG9mIG9yZGVyLCBhcyB0aGUgcmVhZCoKLSAqIG1ldGhvZHMgZG9uJ3QgdXNlIHRoZSBpdGVyYXRpb24gYnVmZmVyLiAqLwotc3RhdGljIGludAotY2hlY2tfaXRlcmJ1ZmZlcmVkKEJaMkZpbGVPYmplY3QgKmYpCi17Ci0gICAgaWYgKGYtPmZfYnVmICE9IE5VTEwgJiYKLSAgICAgICAgKGYtPmZfYnVmZW5kIC0gZi0+Zl9idWZwdHIpID4gMCAmJgotICAgICAgICBmLT5mX2J1ZlswXSAhPSAnXDAnKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgIk1peGluZyBpdGVyYXRpb24gYW5kIHJlYWQgbWV0aG9kcyB3b3VsZCBsb3NlIGRhdGEiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotc3RhdGljIGludAotVXRpbF9DYXRjaEJaMkVycm9yKGludCBiemVycm9yKQotewotICAgIGludCByZXQgPSAwOwotICAgIHN3aXRjaChiemVycm9yKSB7Ci0gICAgICAgIGNhc2UgQlpfT0s6Ci0gICAgICAgIGNhc2UgQlpfU1RSRUFNX0VORDoKLSAgICAgICAgICAgIGJyZWFrOwotCi0jaWZkZWYgQlpfQ09ORklHX0VSUk9SCi0gICAgICAgIGNhc2UgQlpfQ09ORklHX0VSUk9SOgotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgYnoyIGxpYnJhcnkgd2FzIG5vdCBjb21waWxlZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvcnJlY3RseSIpOwotICAgICAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotI2VuZGlmCi0KLSAgICAgICAgY2FzZSBCWl9QQVJBTV9FUlJPUjoKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgYnoyIGxpYnJhcnkgaGFzIHJlY2VpdmVkIHdyb25nICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyIpOwotICAgICAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgQlpfTUVNX0VSUk9SOgotICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIEJaX0RBVEFfRVJST1I6Ci0gICAgICAgIGNhc2UgQlpfREFUQV9FUlJPUl9NQUdJQzoKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JT0Vycm9yLCAiaW52YWxpZCBkYXRhIHN0cmVhbSIpOwotICAgICAgICAgICAgcmV0ID0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgQlpfSU9fRVJST1I6Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSU9FcnJvciwgInVua25vd24gSU8gZXJyb3IiKTsKLSAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIEJaX1VORVhQRUNURURfRU9GOgotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0VPRkVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21wcmVzc2VkIGZpbGUgZW5kZWQgYmVmb3JlIHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvZ2ljYWwgZW5kLW9mLXN0cmVhbSB3YXMgZGV0ZWN0ZWQiKTsKLSAgICAgICAgICAgIHJldCA9IDE7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIEJaX1NFUVVFTkNFX0VSUk9SOgotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAid3Jvbmcgc2VxdWVuY2Ugb2YgYnoyIGxpYnJhcnkgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21tYW5kcyB1c2VkIik7Ci0gICAgICAgICAgICByZXQgPSAxOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiByZXQ7Ci19Ci0KLSNpZiBCVUZTSVogPCA4MTkyCi0jZGVmaW5lIFNNQUxMQ0hVTksgODE5MgotI2Vsc2UKLSNkZWZpbmUgU01BTExDSFVOSyBCVUZTSVoKLSNlbmRpZgotCi0vKiBUaGlzIGlzIGEgaGFja2VkIHZlcnNpb24gb2YgUHl0aG9uJ3MgZmlsZW9iamVjdC5jOm5ld19idWZmZXJzaXplKCkuICovCi1zdGF0aWMgc2l6ZV90Ci1VdGlsX05ld0J1ZmZlclNpemUoc2l6ZV90IGN1cnJlbnRzaXplKQotewotICAgIC8qIEV4cGFuZCB0aGUgYnVmZmVyIGJ5IGFuIGFtb3VudCBwcm9wb3J0aW9uYWwgdG8gdGhlIGN1cnJlbnQgc2l6ZSwKLSAgICAgICBnaXZpbmcgdXMgYW1vcnRpemVkIGxpbmVhci10aW1lIGJlaGF2aW9yLiBVc2UgYSBsZXNzLXRoYW4tZG91YmxlCi0gICAgICAgZ3Jvd3RoIGZhY3RvciB0byBhdm9pZCBleGNlc3NpdmUgYWxsb2NhdGlvbi4gKi8KLSAgICByZXR1cm4gY3VycmVudHNpemUgKyAoY3VycmVudHNpemUgPj4gMykgKyA2OwotfQotCi0vKiBUaGlzIGlzIGEgaGFja2VkIHZlcnNpb24gb2YgUHl0aG9uJ3MgZmlsZW9iamVjdC5jOmdldF9saW5lKCkuICovCi1zdGF0aWMgUHlPYmplY3QgKgotVXRpbF9HZXRMaW5lKEJaMkZpbGVPYmplY3QgKmYsIGludCBuKQotewotICAgIGNoYXIgYzsKLSAgICBjaGFyICpidWYsICplbmQ7Ci0gICAgc2l6ZV90IHRvdGFsX3Zfc2l6ZTsgICAgICAgIC8qIHRvdGFsICMgb2Ygc2xvdHMgaW4gYnVmZmVyICovCi0gICAgc2l6ZV90IHVzZWRfdl9zaXplOyAgICAgICAgIC8qICMgdXNlZCBzbG90cyBpbiBidWZmZXIgKi8KLSAgICBzaXplX3QgaW5jcmVtZW50OyAgICAgICAvKiBhbW91bnQgdG8gaW5jcmVtZW50IHRoZSBidWZmZXIgKi8KLSAgICBQeU9iamVjdCAqdjsKLSAgICBpbnQgYnplcnJvcjsKLSAgICBpbnQgYnl0ZXNfcmVhZDsKLQotICAgIHRvdGFsX3Zfc2l6ZSA9IG4gPiAwID8gbiA6IDEwMDsKLSAgICB2ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgoY2hhciAqKU5VTEwsIHRvdGFsX3Zfc2l6ZSk7Ci0gICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBidWYgPSBCVUYodik7Ci0gICAgZW5kID0gYnVmICsgdG90YWxfdl9zaXplOwotCi0gICAgZm9yICg7OykgewotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgIGRvIHsKLSAgICAgICAgICAgIGJ5dGVzX3JlYWQgPSBCWjJfYnpSZWFkKCZiemVycm9yLCBmLT5mcCwgJmMsIDEpOwotICAgICAgICAgICAgZi0+cG9zKys7Ci0gICAgICAgICAgICBpZiAoYnl0ZXNfcmVhZCA9PSAwKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgKmJ1ZisrID0gYzsKLSAgICAgICAgfSB3aGlsZSAoYnplcnJvciA9PSBCWl9PSyAmJiBjICE9ICdcbicgJiYgYnVmICE9IGVuZCk7Ci0gICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgICAgIGlmIChiemVycm9yID09IEJaX1NUUkVBTV9FTkQpIHsKLSAgICAgICAgICAgIGYtPnNpemUgPSBmLT5wb3M7Ci0gICAgICAgICAgICBmLT5tb2RlID0gTU9ERV9SRUFEX0VPRjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9IGVsc2UgaWYgKGJ6ZXJyb3IgIT0gQlpfT0spIHsKLSAgICAgICAgICAgIFV0aWxfQ2F0Y2hCWjJFcnJvcihiemVycm9yKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGlmIChjID09ICdcbicpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgLyogTXVzdCBiZSBiZWNhdXNlIGJ1ZiA9PSBlbmQgKi8KLSAgICAgICAgaWYgKG4gPiAwKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIHVzZWRfdl9zaXplID0gdG90YWxfdl9zaXplOwotICAgICAgICBpbmNyZW1lbnQgPSB0b3RhbF92X3NpemUgPj4gMjsgLyogbWlsZCBleHBvbmVudGlhbCBncm93dGggKi8KLSAgICAgICAgdG90YWxfdl9zaXplICs9IGluY3JlbWVudDsKLSAgICAgICAgaWYgKHRvdGFsX3Zfc2l6ZSA+IElOVF9NQVgpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAotICAgICAgICAgICAgICAgICJsaW5lIGlzIGxvbmdlciB0aGFuIGEgUHl0aG9uIHN0cmluZyBjYW4gaG9sZCIpOwotICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZSgmdiwgdG90YWxfdl9zaXplKSA8IDApIHsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGJ1ZiA9IEJVRih2KSArIHVzZWRfdl9zaXplOwotICAgICAgICBlbmQgPSBCVUYodikgKyB0b3RhbF92X3NpemU7Ci0gICAgfQotCi0gICAgdXNlZF92X3NpemUgPSBidWYgLSBCVUYodik7Ci0gICAgaWYgKHVzZWRfdl9zaXplICE9IHRvdGFsX3Zfc2l6ZSkgewotICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZ2LCB1c2VkX3Zfc2l6ZSkgPCAwKSB7Ci0gICAgICAgICAgICB2ID0gTlVMTDsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gdjsKLX0KLQotLyogVGhpcyBpcyBhIGhhY2tlZCB2ZXJzaW9uIG9mIFB5dGhvbidzIGZpbGVvYmplY3QuYzpkcm9wX3JlYWRhaGVhZCgpLiAqLwotc3RhdGljIHZvaWQKLVV0aWxfRHJvcFJlYWRBaGVhZChCWjJGaWxlT2JqZWN0ICpmKQotewotICAgIGlmIChmLT5mX2J1ZiAhPSBOVUxMKSB7Ci0gICAgICAgIFB5TWVtX0ZyZWUoZi0+Zl9idWYpOwotICAgICAgICBmLT5mX2J1ZiA9IE5VTEw7Ci0gICAgfQotfQotCi0vKiBUaGlzIGlzIGEgaGFja2VkIHZlcnNpb24gb2YgUHl0aG9uJ3MgZmlsZW9iamVjdC5jOnJlYWRhaGVhZCgpLiAqLwotc3RhdGljIGludAotVXRpbF9SZWFkQWhlYWQoQloyRmlsZU9iamVjdCAqZiwgaW50IGJ1ZnNpemUpCi17Ci0gICAgaW50IGNodW5rc2l6ZTsKLSAgICBpbnQgYnplcnJvcjsKLQotICAgIGlmIChmLT5mX2J1ZiAhPSBOVUxMKSB7Ci0gICAgICAgIGlmKChmLT5mX2J1ZmVuZCAtIGYtPmZfYnVmcHRyKSA+PSAxKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFV0aWxfRHJvcFJlYWRBaGVhZChmKTsKLSAgICB9Ci0gICAgaWYgKGYtPm1vZGUgPT0gTU9ERV9SRUFEX0VPRikgewotICAgICAgICBmLT5mX2J1ZnB0ciA9IGYtPmZfYnVmOwotICAgICAgICBmLT5mX2J1ZmVuZCA9IGYtPmZfYnVmOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgaWYgKChmLT5mX2J1ZiA9IFB5TWVtX01hbGxvYyhidWZzaXplKSkgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICBjaHVua3NpemUgPSBCWjJfYnpSZWFkKCZiemVycm9yLCBmLT5mcCwgZi0+Zl9idWYsIGJ1ZnNpemUpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgZi0+cG9zICs9IGNodW5rc2l6ZTsKLSAgICBpZiAoYnplcnJvciA9PSBCWl9TVFJFQU1fRU5EKSB7Ci0gICAgICAgIGYtPnNpemUgPSBmLT5wb3M7Ci0gICAgICAgIGYtPm1vZGUgPSBNT0RFX1JFQURfRU9GOwotICAgIH0gZWxzZSBpZiAoYnplcnJvciAhPSBCWl9PSykgewotICAgICAgICBVdGlsX0NhdGNoQloyRXJyb3IoYnplcnJvcik7Ci0gICAgICAgIFV0aWxfRHJvcFJlYWRBaGVhZChmKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICBmLT5mX2J1ZnB0ciA9IGYtPmZfYnVmOwotICAgIGYtPmZfYnVmZW5kID0gZi0+Zl9idWYgKyBjaHVua3NpemU7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLS8qIFRoaXMgaXMgYSBoYWNrZWQgdmVyc2lvbiBvZiBQeXRob24ncwotICogZmlsZW9iamVjdC5jOnJlYWRhaGVhZF9nZXRfbGluZV9za2lwKCkuICovCi1zdGF0aWMgUHlCeXRlc09iamVjdCAqCi1VdGlsX1JlYWRBaGVhZEdldExpbmVTa2lwKEJaMkZpbGVPYmplY3QgKmYsIGludCBza2lwLCBpbnQgYnVmc2l6ZSkKLXsKLSAgICBQeUJ5dGVzT2JqZWN0KiBzOwotICAgIGNoYXIgKmJ1ZnB0cjsKLSAgICBjaGFyICpidWY7Ci0gICAgaW50IGxlbjsKLQotICAgIGlmIChmLT5mX2J1ZiA9PSBOVUxMKQotICAgICAgICBpZiAoVXRpbF9SZWFkQWhlYWQoZiwgYnVmc2l6ZSkgPCAwKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBsZW4gPSBmLT5mX2J1ZmVuZCAtIGYtPmZfYnVmcHRyOwotICAgIGlmIChsZW4gPT0gMCkKLSAgICAgICAgcmV0dXJuIChQeUJ5dGVzT2JqZWN0ICopCi0gICAgICAgICAgICBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIHNraXApOwotICAgIGJ1ZnB0ciA9IG1lbWNocihmLT5mX2J1ZnB0ciwgJ1xuJywgbGVuKTsKLSAgICBpZiAoYnVmcHRyICE9IE5VTEwpIHsKLSAgICAgICAgYnVmcHRyKys7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvdW50IHRoZSAnXG4nICovCi0gICAgICAgIGxlbiA9IGJ1ZnB0ciAtIGYtPmZfYnVmcHRyOwotICAgICAgICBzID0gKFB5Qnl0ZXNPYmplY3QgKikKLSAgICAgICAgICAgIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgc2tpcCtsZW4pOwotICAgICAgICBpZiAocyA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIG1lbWNweShQeUJ5dGVzX0FTX1NUUklORyhzKStza2lwLCBmLT5mX2J1ZnB0ciwgbGVuKTsKLSAgICAgICAgZi0+Zl9idWZwdHIgPSBidWZwdHI7Ci0gICAgICAgIGlmIChidWZwdHIgPT0gZi0+Zl9idWZlbmQpCi0gICAgICAgICAgICBVdGlsX0Ryb3BSZWFkQWhlYWQoZik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgYnVmcHRyID0gZi0+Zl9idWZwdHI7Ci0gICAgICAgIGJ1ZiA9IGYtPmZfYnVmOwotICAgICAgICBmLT5mX2J1ZiA9IE5VTEw7ICAgICAgICAgICAgICAgIC8qIEZvcmNlIG5ldyByZWFkYWhlYWQgYnVmZmVyICovCi0gICAgICAgIHMgPSBVdGlsX1JlYWRBaGVhZEdldExpbmVTa2lwKGYsIHNraXArbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZzaXplICsgKGJ1ZnNpemU+PjIpKTsKLSAgICAgICAgaWYgKHMgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlNZW1fRnJlZShidWYpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgbWVtY3B5KFB5Qnl0ZXNfQVNfU1RSSU5HKHMpK3NraXAsIGJ1ZnB0ciwgbGVuKTsKLSAgICAgICAgUHlNZW1fRnJlZShidWYpOwotICAgIH0KLSAgICByZXR1cm4gczsKLX0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi0vKiBNZXRob2RzIG9mIEJaMkZpbGUuICovCi0KLVB5RG9jX1NUUlZBUihCWjJGaWxlX3JlYWRfX2RvY19fLAotInJlYWQoW3NpemVdKSAtPiBzdHJpbmdcblwKLVxuXAotUmVhZCBhdCBtb3N0IHNpemUgdW5jb21wcmVzc2VkIGJ5dGVzLCByZXR1cm5lZCBhcyBhIHN0cmluZy4gSWYgdGhlIHNpemVcblwKLWFyZ3VtZW50IGlzIG5lZ2F0aXZlIG9yIG9taXR0ZWQsIHJlYWQgdW50aWwgRU9GIGlzIHJlYWNoZWQuXG5cCi0iKTsKLQotLyogVGhpcyBpcyBhIGhhY2tlZCB2ZXJzaW9uIG9mIFB5dGhvbidzIGZpbGVvYmplY3QuYzpmaWxlX3JlYWQoKS4gKi8KLXN0YXRpYyBQeU9iamVjdCAqCi1CWjJGaWxlX3JlYWQoQloyRmlsZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgbG9uZyBieXRlc3JlcXVlc3RlZCA9IC0xOwotICAgIHNpemVfdCBieXRlc3JlYWQsIGJ1ZmZlcnNpemUsIGNodW5rc2l6ZTsKLSAgICBpbnQgYnplcnJvcjsKLSAgICBQeU9iamVjdCAqcmV0ID0gTlVMTDsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifGw6cmVhZCIsICZieXRlc3JlcXVlc3RlZCkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgQUNRVUlSRV9MT0NLKHNlbGYpOwotICAgIHN3aXRjaCAoc2VsZi0+bW9kZSkgewotICAgICAgICBjYXNlIE1PREVfUkVBRDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1PREVfUkVBRF9FT0Y6Ci0gICAgICAgICAgICByZXQgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKCIiLCAwKTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgY2FzZSBNT0RFX0NMT1NFRDoKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIik7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSU9FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsZSBpcyBub3QgcmVhZHkgZm9yIHJlYWRpbmciKTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICAvKiByZWZ1c2UgdG8gbWl4IHdpdGggZi5uZXh0KCkgKi8KLSAgICBpZiAoY2hlY2tfaXRlcmJ1ZmZlcmVkKHNlbGYpKQotICAgICAgICBnb3RvIGNsZWFudXA7Ci0KLSAgICBpZiAoYnl0ZXNyZXF1ZXN0ZWQgPCAwKQotICAgICAgICBidWZmZXJzaXplID0gVXRpbF9OZXdCdWZmZXJTaXplKChzaXplX3QpMCk7Ci0gICAgZWxzZQotICAgICAgICBidWZmZXJzaXplID0gYnl0ZXNyZXF1ZXN0ZWQ7Ci0gICAgaWYgKGJ1ZmZlcnNpemUgPiBJTlRfTUFYKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgInJlcXVlc3RlZCBudW1iZXIgb2YgYnl0ZXMgaXMgIgotICAgICAgICAgICAgICAgICAgICAgICAgIm1vcmUgdGhhbiBhIFB5dGhvbiBzdHJpbmcgY2FuIGhvbGQiKTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLSAgICByZXQgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKChjaGFyICopTlVMTCwgYnVmZmVyc2l6ZSk7Ci0gICAgaWYgKHJldCA9PSBOVUxMIHx8IGJ1ZmZlcnNpemUgPT0gMCkKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIGJ5dGVzcmVhZCA9IDA7Ci0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgY2h1bmtzaXplID0gQloyX2J6UmVhZCgmYnplcnJvciwgc2VsZi0+ZnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQlVGKHJldCkrYnl0ZXNyZWFkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcnNpemUtYnl0ZXNyZWFkKTsKLSAgICAgICAgc2VsZi0+cG9zICs9IGNodW5rc2l6ZTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgYnl0ZXNyZWFkICs9IGNodW5rc2l6ZTsKLSAgICAgICAgaWYgKGJ6ZXJyb3IgPT0gQlpfU1RSRUFNX0VORCkgewotICAgICAgICAgICAgc2VsZi0+c2l6ZSA9IHNlbGYtPnBvczsKLSAgICAgICAgICAgIHNlbGYtPm1vZGUgPSBNT0RFX1JFQURfRU9GOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gZWxzZSBpZiAoYnplcnJvciAhPSBCWl9PSykgewotICAgICAgICAgICAgVXRpbF9DYXRjaEJaMkVycm9yKGJ6ZXJyb3IpOwotICAgICAgICAgICAgUHlfREVDUkVGKHJldCk7Ci0gICAgICAgICAgICByZXQgPSBOVUxMOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0gICAgICAgIGlmIChieXRlc3JlcXVlc3RlZCA8IDApIHsKLSAgICAgICAgICAgIGJ1ZmZlcnNpemUgPSBVdGlsX05ld0J1ZmZlclNpemUoYnVmZmVyc2l6ZSk7Ci0gICAgICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZyZXQsIGJ1ZmZlcnNpemUpIDwgMCkgewotICAgICAgICAgICAgICAgIHJldCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGJ5dGVzcmVhZCAhPSBidWZmZXJzaXplKSB7Ci0gICAgICAgIGlmIChfUHlCeXRlc19SZXNpemUoJnJldCwgYnl0ZXNyZWFkKSA8IDApIHsKLSAgICAgICAgICAgIHJldCA9IE5VTEw7Ci0gICAgICAgIH0KLSAgICB9Ci0KLWNsZWFudXA6Ci0gICAgUkVMRUFTRV9MT0NLKHNlbGYpOwotICAgIHJldHVybiByZXQ7Ci19Ci0KLVB5RG9jX1NUUlZBUihCWjJGaWxlX3JlYWRsaW5lX19kb2NfXywKLSJyZWFkbGluZShbc2l6ZV0pIC0+IHN0cmluZ1xuXAotXG5cCi1SZXR1cm4gdGhlIG5leHQgbGluZSBmcm9tIHRoZSBmaWxlLCBhcyBhIHN0cmluZywgcmV0YWluaW5nIG5ld2xpbmUuXG5cCi1BIG5vbi1uZWdhdGl2ZSBzaXplIGFyZ3VtZW50IHdpbGwgbGltaXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGJ5dGVzIHRvXG5cCi1yZXR1cm4gKGFuIGluY29tcGxldGUgbGluZSBtYXkgYmUgcmV0dXJuZWQgdGhlbikuIFJldHVybiBhbiBlbXB0eVxuXAotc3RyaW5nIGF0IEVPRi5cblwKLSIpOwotCi1zdGF0aWMgUHlPYmplY3QgKgotQloyRmlsZV9yZWFkbGluZShCWjJGaWxlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBQeU9iamVjdCAqcmV0ID0gTlVMTDsKLSAgICBpbnQgc2l6ZWhpbnQgPSAtMTsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifGk6cmVhZGxpbmUiLCAmc2l6ZWhpbnQpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIEFDUVVJUkVfTE9DSyhzZWxmKTsKLSAgICBzd2l0Y2ggKHNlbGYtPm1vZGUpIHsKLSAgICAgICAgY2FzZSBNT0RFX1JFQUQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBNT0RFX1JFQURfRU9GOgotICAgICAgICAgICAgcmV0ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgiIiwgMCk7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgICAgIGNhc2UgTU9ERV9DTE9TRUQ6Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSS9PIG9wZXJhdGlvbiBvbiBjbG9zZWQgZmlsZSIpOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0lPRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUgaXMgbm90IHJlYWR5IGZvciByZWFkaW5nIik7Ci0gICAgICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotCi0gICAgLyogcmVmdXNlIHRvIG1peCB3aXRoIGYubmV4dCgpICovCi0gICAgaWYgKGNoZWNrX2l0ZXJidWZmZXJlZChzZWxmKSkKLSAgICAgICAgZ290byBjbGVhbnVwOwotCi0gICAgaWYgKHNpemVoaW50ID09IDApCi0gICAgICAgIHJldCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoIiIsIDApOwotICAgIGVsc2UKLSAgICAgICAgcmV0ID0gVXRpbF9HZXRMaW5lKHNlbGYsIChzaXplaGludCA8IDApID8gMCA6IHNpemVoaW50KTsKLQotY2xlYW51cDoKLSAgICBSRUxFQVNFX0xPQ0soc2VsZik7Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotUHlEb2NfU1RSVkFSKEJaMkZpbGVfcmVhZGxpbmVzX19kb2NfXywKLSJyZWFkbGluZXMoW3NpemVdKSAtPiBsaXN0XG5cCi1cblwKLUNhbGwgcmVhZGxpbmUoKSByZXBlYXRlZGx5IGFuZCByZXR1cm4gYSBsaXN0IG9mIGxpbmVzIHJlYWQuXG5cCi1UaGUgb3B0aW9uYWwgc2l6ZSBhcmd1bWVudCwgaWYgZ2l2ZW4sIGlzIGFuIGFwcHJveGltYXRlIGJvdW5kIG9uIHRoZVxuXAotdG90YWwgbnVtYmVyIG9mIGJ5dGVzIGluIHRoZSBsaW5lcyByZXR1cm5lZC5cblwKLSIpOwotCi0vKiBUaGlzIGlzIGEgaGFja2VkIHZlcnNpb24gb2YgUHl0aG9uJ3MgZmlsZW9iamVjdC5jOmZpbGVfcmVhZGxpbmVzKCkuICovCi1zdGF0aWMgUHlPYmplY3QgKgotQloyRmlsZV9yZWFkbGluZXMoQloyRmlsZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgbG9uZyBzaXplaGludCA9IDA7Ci0gICAgUHlPYmplY3QgKmxpc3QgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpsaW5lOwotICAgIGNoYXIgc21hbGxfYnVmZmVyW1NNQUxMQ0hVTktdOwotICAgIGNoYXIgKmJ1ZmZlciA9IHNtYWxsX2J1ZmZlcjsKLSAgICBzaXplX3QgYnVmZmVyc2l6ZSA9IFNNQUxMQ0hVTks7Ci0gICAgUHlPYmplY3QgKmJpZ19idWZmZXIgPSBOVUxMOwotICAgIHNpemVfdCBuZmlsbGVkID0gMDsKLSAgICBzaXplX3QgbnJlYWQ7Ci0gICAgc2l6ZV90IHRvdGFscmVhZCA9IDA7Ci0gICAgY2hhciAqcCwgKnEsICplbmQ7Ci0gICAgaW50IGVycjsKLSAgICBpbnQgc2hvcnRyZWFkID0gMDsKLSAgICBpbnQgYnplcnJvcjsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifGw6cmVhZGxpbmVzIiwgJnNpemVoaW50KSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBBQ1FVSVJFX0xPQ0soc2VsZik7Ci0gICAgc3dpdGNoIChzZWxmLT5tb2RlKSB7Ci0gICAgICAgIGNhc2UgTU9ERV9SRUFEOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTU9ERV9SRUFEX0VPRjoKLSAgICAgICAgICAgIGxpc3QgPSBQeUxpc3RfTmV3KDApOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICBjYXNlIE1PREVfQ0xPU0VEOgotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkkvTyBvcGVyYXRpb24gb24gY2xvc2VkIGZpbGUiKTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JT0Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWxlIGlzIG5vdCByZWFkeSBmb3IgcmVhZGluZyIpOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIC8qIHJlZnVzZSB0byBtaXggd2l0aCBmLm5leHQoKSAqLwotICAgIGlmIChjaGVja19pdGVyYnVmZmVyZWQoc2VsZikpCi0gICAgICAgIGdvdG8gY2xlYW51cDsKLQotICAgIGlmICgobGlzdCA9IFB5TGlzdF9OZXcoMCkpID09IE5VTEwpCi0gICAgICAgIGdvdG8gY2xlYW51cDsKLQotICAgIGZvciAoOzspIHsKLSAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICBucmVhZCA9IEJaMl9ielJlYWQoJmJ6ZXJyb3IsIHNlbGYtPmZwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyK25maWxsZWQsIGJ1ZmZlcnNpemUtbmZpbGxlZCk7Ci0gICAgICAgIHNlbGYtPnBvcyArPSBucmVhZDsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgaWYgKGJ6ZXJyb3IgPT0gQlpfU1RSRUFNX0VORCkgewotICAgICAgICAgICAgc2VsZi0+c2l6ZSA9IHNlbGYtPnBvczsKLSAgICAgICAgICAgIHNlbGYtPm1vZGUgPSBNT0RFX1JFQURfRU9GOwotICAgICAgICAgICAgaWYgKG5yZWFkID09IDApIHsKLSAgICAgICAgICAgICAgICBzaXplaGludCA9IDA7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzaG9ydHJlYWQgPSAxOwotICAgICAgICB9IGVsc2UgaWYgKGJ6ZXJyb3IgIT0gQlpfT0spIHsKLSAgICAgICAgICAgIFV0aWxfQ2F0Y2hCWjJFcnJvcihiemVycm9yKTsKLSAgICAgICAgICBlcnJvcjoKLSAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKLSAgICAgICAgICAgIGxpc3QgPSBOVUxMOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0gICAgICAgIHRvdGFscmVhZCArPSBucmVhZDsKLSAgICAgICAgcCA9IG1lbWNocihidWZmZXIrbmZpbGxlZCwgJ1xuJywgbnJlYWQpOwotICAgICAgICBpZiAoIXNob3J0cmVhZCAmJiBwID09IE5VTEwpIHsKLSAgICAgICAgICAgIC8qIE5lZWQgYSBsYXJnZXIgYnVmZmVyIHRvIGZpdCB0aGlzIGxpbmUgKi8KLSAgICAgICAgICAgIG5maWxsZWQgKz0gbnJlYWQ7Ci0gICAgICAgICAgICBidWZmZXJzaXplICo9IDI7Ci0gICAgICAgICAgICBpZiAoYnVmZmVyc2l6ZSA+IElOVF9NQVgpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKLSAgICAgICAgICAgICAgICAibGluZSBpcyBsb25nZXIgdGhhbiBhIFB5dGhvbiBzdHJpbmcgY2FuIGhvbGQiKTsKLSAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGJpZ19idWZmZXIgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIC8qIENyZWF0ZSB0aGUgYmlnIGJ1ZmZlciAqLwotICAgICAgICAgICAgICAgIGJpZ19idWZmZXIgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKAotICAgICAgICAgICAgICAgICAgICBOVUxMLCBidWZmZXJzaXplKTsKLSAgICAgICAgICAgICAgICBpZiAoYmlnX2J1ZmZlciA9PSBOVUxMKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGJpZ19idWZmZXIpOwotICAgICAgICAgICAgICAgIG1lbWNweShidWZmZXIsIHNtYWxsX2J1ZmZlciwgbmZpbGxlZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAvKiBHcm93IHRoZSBiaWcgYnVmZmVyICovCi0gICAgICAgICAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZSgmYmlnX2J1ZmZlciwgYnVmZmVyc2l6ZSkgPCAwKXsKLSAgICAgICAgICAgICAgICAgICAgYmlnX2J1ZmZlciA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGJ1ZmZlciA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGJpZ19idWZmZXIpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgZW5kID0gYnVmZmVyK25maWxsZWQrbnJlYWQ7Ci0gICAgICAgIHEgPSBidWZmZXI7Ci0gICAgICAgIHdoaWxlIChwICE9IE5VTEwpIHsKLSAgICAgICAgICAgIC8qIFByb2Nlc3MgY29tcGxldGUgbGluZXMgKi8KLSAgICAgICAgICAgIHArKzsKLSAgICAgICAgICAgIGxpbmUgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKHEsIHAtcSk7Ci0gICAgICAgICAgICBpZiAobGluZSA9PSBOVUxMKQotICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICBlcnIgPSBQeUxpc3RfQXBwZW5kKGxpc3QsIGxpbmUpOwotICAgICAgICAgICAgUHlfREVDUkVGKGxpbmUpOwotICAgICAgICAgICAgaWYgKGVyciAhPSAwKQotICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICBxID0gcDsKLSAgICAgICAgICAgIHAgPSBtZW1jaHIocSwgJ1xuJywgZW5kLXEpOwotICAgICAgICB9Ci0gICAgICAgIC8qIE1vdmUgdGhlIHJlbWFpbmluZyBpbmNvbXBsZXRlIGxpbmUgdG8gdGhlIHN0YXJ0ICovCi0gICAgICAgIG5maWxsZWQgPSBlbmQtcTsKLSAgICAgICAgbWVtbW92ZShidWZmZXIsIHEsIG5maWxsZWQpOwotICAgICAgICBpZiAoc2l6ZWhpbnQgPiAwKQotICAgICAgICAgICAgaWYgKHRvdGFscmVhZCA+PSAoc2l6ZV90KXNpemVoaW50KQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAoc2hvcnRyZWFkKSB7Ci0gICAgICAgICAgICBzaXplaGludCA9IDA7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAobmZpbGxlZCAhPSAwKSB7Ci0gICAgICAgIC8qIFBhcnRpYWwgbGFzdCBsaW5lICovCi0gICAgICAgIGxpbmUgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKGJ1ZmZlciwgbmZpbGxlZCk7Ci0gICAgICAgIGlmIChsaW5lID09IE5VTEwpCi0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICBpZiAoc2l6ZWhpbnQgPiAwKSB7Ci0gICAgICAgICAgICAvKiBOZWVkIHRvIGNvbXBsZXRlIHRoZSBsYXN0IGxpbmUgKi8KLSAgICAgICAgICAgIFB5T2JqZWN0ICpyZXN0ID0gVXRpbF9HZXRMaW5lKHNlbGYsIDApOwotICAgICAgICAgICAgaWYgKHJlc3QgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihsaW5lKTsKLSAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgUHlCeXRlc19Db25jYXQoJmxpbmUsIHJlc3QpOwotICAgICAgICAgICAgUHlfREVDUkVGKHJlc3QpOwotICAgICAgICAgICAgaWYgKGxpbmUgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICB9Ci0gICAgICAgIGVyciA9IFB5TGlzdF9BcHBlbmQobGlzdCwgbGluZSk7Ci0gICAgICAgIFB5X0RFQ1JFRihsaW5lKTsKLSAgICAgICAgaWYgKGVyciAhPSAwKQotICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0KLSAgY2xlYW51cDoKLSAgICBSRUxFQVNFX0xPQ0soc2VsZik7Ci0gICAgaWYgKGJpZ19idWZmZXIpIHsKLSAgICAgICAgUHlfREVDUkVGKGJpZ19idWZmZXIpOwotICAgIH0KLSAgICByZXR1cm4gbGlzdDsKLX0KLQotUHlEb2NfU1RSVkFSKEJaMkZpbGVfd3JpdGVfX2RvY19fLAotIndyaXRlKGRhdGEpIC0+IE5vbmVcblwKLVxuXAotV3JpdGUgdGhlICdkYXRhJyBzdHJpbmcgdG8gZmlsZS4gTm90ZSB0aGF0IGR1ZSB0byBidWZmZXJpbmcsIGNsb3NlKCkgbWF5XG5cCi1iZSBuZWVkZWQgYmVmb3JlIHRoZSBmaWxlIG9uIGRpc2sgcmVmbGVjdHMgdGhlIGRhdGEgd3JpdHRlbi5cblwKLSIpOwotCi0vKiBUaGlzIGlzIGEgaGFja2VkIHZlcnNpb24gb2YgUHl0aG9uJ3MgZmlsZW9iamVjdC5jOmZpbGVfd3JpdGUoKS4gKi8KLXN0YXRpYyBQeU9iamVjdCAqCi1CWjJGaWxlX3dyaXRlKEJaMkZpbGVPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIFB5T2JqZWN0ICpyZXQgPSBOVUxMOwotICAgIFB5X2J1ZmZlciBwYnVmOwotICAgIGNoYXIgKmJ1ZjsKLSAgICBpbnQgbGVuOwotICAgIGludCBiemVycm9yOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ5Kjp3cml0ZSIsICZwYnVmKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgYnVmID0gcGJ1Zi5idWY7Ci0gICAgbGVuID0gcGJ1Zi5sZW47Ci0KLSAgICBBQ1FVSVJFX0xPQ0soc2VsZik7Ci0gICAgc3dpdGNoIChzZWxmLT5tb2RlKSB7Ci0gICAgICAgIGNhc2UgTU9ERV9XUklURToKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgTU9ERV9DTE9TRUQ6Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSS9PIG9wZXJhdGlvbiBvbiBjbG9zZWQgZmlsZSIpOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSU9FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsZSBpcyBub3QgcmVhZHkgZm9yIHdyaXRpbmciKTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgQloyX2J6V3JpdGUgKCZiemVycm9yLCBzZWxmLT5mcCwgYnVmLCBsZW4pOwotICAgIHNlbGYtPnBvcyArPSBsZW47Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLQotICAgIGlmIChiemVycm9yICE9IEJaX09LKSB7Ci0gICAgICAgIFV0aWxfQ2F0Y2hCWjJFcnJvcihiemVycm9yKTsKLSAgICAgICAgZ290byBjbGVhbnVwOwotICAgIH0KLQotICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICByZXQgPSBQeV9Ob25lOwotCi1jbGVhbnVwOgotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBidWYpOwotICAgIFJFTEVBU0VfTE9DSyhzZWxmKTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1QeURvY19TVFJWQVIoQloyRmlsZV93cml0ZWxpbmVzX19kb2NfXywKLSJ3cml0ZWxpbmVzKHNlcXVlbmNlX29mX3N0cmluZ3MpIC0+IE5vbmVcblwKLVxuXAotV3JpdGUgdGhlIHNlcXVlbmNlIG9mIHN0cmluZ3MgdG8gdGhlIGZpbGUuIE5vdGUgdGhhdCBuZXdsaW5lcyBhcmUgbm90XG5cCi1hZGRlZC4gVGhlIHNlcXVlbmNlIGNhbiBiZSBhbnkgaXRlcmFibGUgb2JqZWN0IHByb2R1Y2luZyBzdHJpbmdzLiBUaGlzIGlzXG5cCi1lcXVpdmFsZW50IHRvIGNhbGxpbmcgd3JpdGUoKSBmb3IgZWFjaCBzdHJpbmcuXG5cCi0iKTsKLQotLyogVGhpcyBpcyBhIGhhY2tlZCB2ZXJzaW9uIG9mIFB5dGhvbidzIGZpbGVvYmplY3QuYzpmaWxlX3dyaXRlbGluZXMoKS4gKi8KLXN0YXRpYyBQeU9iamVjdCAqCi1CWjJGaWxlX3dyaXRlbGluZXMoQloyRmlsZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnNlcSkKLXsKLSNkZWZpbmUgQ0hVTktTSVpFIDEwMDAKLSAgICBQeU9iamVjdCAqbGlzdCA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKml0ZXIgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpyZXQgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpsaW5lOwotICAgIGludCBpLCBqLCBpbmRleCwgbGVuLCBpc2xpc3Q7Ci0gICAgaW50IGJ6ZXJyb3I7Ci0KLSAgICBBQ1FVSVJFX0xPQ0soc2VsZik7Ci0gICAgc3dpdGNoIChzZWxmLT5tb2RlKSB7Ci0gICAgICAgIGNhc2UgTU9ERV9XUklURToKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgTU9ERV9DTE9TRUQ6Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSS9PIG9wZXJhdGlvbiBvbiBjbG9zZWQgZmlsZSIpOwotICAgICAgICAgICAgZ290byBlcnJvcjsKLQotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0lPRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUgaXMgbm90IHJlYWR5IGZvciB3cml0aW5nIik7Ci0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIGlzbGlzdCA9IFB5TGlzdF9DaGVjayhzZXEpOwotICAgIGlmICAoIWlzbGlzdCkgewotICAgICAgICBpdGVyID0gUHlPYmplY3RfR2V0SXRlcihzZXEpOwotICAgICAgICBpZiAoaXRlciA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICJ3cml0ZWxpbmVzKCkgcmVxdWlyZXMgYW4gaXRlcmFibGUgYXJndW1lbnQiKTsKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIH0KLSAgICAgICAgbGlzdCA9IFB5TGlzdF9OZXcoQ0hVTktTSVpFKTsKLSAgICAgICAgaWYgKGxpc3QgPT0gTlVMTCkKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotCi0gICAgLyogU3RyYXRlZ3k6IHNsdXJwIENIVU5LU0laRSBsaW5lcyBpbnRvIGEgcHJpdmF0ZSBsaXN0LAotICAgICAgIGNoZWNraW5nIHRoYXQgdGhleSBhcmUgYWxsIHN0cmluZ3MsIHRoZW4gd3JpdGUgdGhhdCBsaXN0Ci0gICAgICAgd2l0aG91dCBob2xkaW5nIHRoZSBpbnRlcnByZXRlciBsb2NrLCB0aGVuIGNvbWUgYmFjayBmb3IgbW9yZS4gKi8KLSAgICBmb3IgKGluZGV4ID0gMDsgOyBpbmRleCArPSBDSFVOS1NJWkUpIHsKLSAgICAgICAgaWYgKGlzbGlzdCkgewotICAgICAgICAgICAgUHlfWERFQ1JFRihsaXN0KTsKLSAgICAgICAgICAgIGxpc3QgPSBQeUxpc3RfR2V0U2xpY2Uoc2VxLCBpbmRleCwgaW5kZXgrQ0hVTktTSVpFKTsKLSAgICAgICAgICAgIGlmIChsaXN0ID09IE5VTEwpCi0gICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgIGogPSBQeUxpc3RfR0VUX1NJWkUobGlzdCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgQ0hVTktTSVpFOyBqKyspIHsKLSAgICAgICAgICAgICAgICBsaW5lID0gUHlJdGVyX05leHQoaXRlcik7Ci0gICAgICAgICAgICAgICAgaWYgKGxpbmUgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBQeUxpc3RfU2V0SXRlbShsaXN0LCBqLCBsaW5lKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoaiA9PSAwKQotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgLyogQ2hlY2sgdGhhdCBhbGwgZW50cmllcyBhcmUgaW5kZWVkIGJ5dGUgc3RyaW5ncy4gSWYgbm90LAotICAgICAgICAgICBhcHBseSB0aGUgc2FtZSBydWxlcyBhcyBmb3IgZmlsZS53cml0ZSgpIGFuZAotICAgICAgICAgICBjb252ZXJ0IHRoZSByZXRzIHRvIHN0cmluZ3MuIFRoaXMgaXMgc2xvdywgYnV0Ci0gICAgICAgICAgIHNlZW1zIHRvIGJlIHRoZSBvbmx5IHdheSBzaW5jZSBhbGwgY29udmVyc2lvbiBBUElzCi0gICAgICAgICAgIGNvdWxkIHBvdGVudGlhbGx5IGV4ZWN1dGUgUHl0aG9uIGNvZGUuICovCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBqOyBpKyspIHsKLSAgICAgICAgICAgIFB5T2JqZWN0ICp2ID0gUHlMaXN0X0dFVF9JVEVNKGxpc3QsIGkpOwotICAgICAgICAgICAgaWYgKCFQeUJ5dGVzX0NoZWNrKHYpKSB7Ci0gICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYnVmZmVyOwotICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9Bc0NoYXJCdWZmZXIodiwgJmJ1ZmZlciwgJmxlbikpIHsKLSAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3cml0ZWxpbmVzKCkgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50IG11c3QgYmUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImEgc2VxdWVuY2Ugb2YgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ5dGVzIG9iamVjdHMiKTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbGluZSA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4pOwotICAgICAgICAgICAgICAgIGlmIChsaW5lID09IE5VTEwpCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgICAgIFB5TGlzdF9TRVRfSVRFTShsaXN0LCBpLCBsaW5lKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8qIFNpbmNlIHdlIGFyZSByZWxlYXNpbmcgdGhlIGdsb2JhbCBsb2NrLCB0aGUKLSAgICAgICAgICAgZm9sbG93aW5nIGNvZGUgbWF5ICpub3QqIGV4ZWN1dGUgUHl0aG9uIGNvZGUuICovCi0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IGo7IGkrKykgewotICAgICAgICAgICAgbGluZSA9IFB5TGlzdF9HRVRfSVRFTShsaXN0LCBpKTsKLSAgICAgICAgICAgIGxlbiA9IFB5Qnl0ZXNfR0VUX1NJWkUobGluZSk7Ci0gICAgICAgICAgICBCWjJfYnpXcml0ZSAoJmJ6ZXJyb3IsIHNlbGYtPmZwLAotICAgICAgICAgICAgICAgICAgICAgICAgIFB5Qnl0ZXNfQVNfU1RSSU5HKGxpbmUpLCBsZW4pOwotICAgICAgICAgICAgaWYgKGJ6ZXJyb3IgIT0gQlpfT0spIHsKLSAgICAgICAgICAgICAgICBQeV9CTE9DS19USFJFQURTCi0gICAgICAgICAgICAgICAgVXRpbF9DYXRjaEJaMkVycm9yKGJ6ZXJyb3IpOwotICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLQotICAgICAgICBpZiAoaiA8IENIVU5LU0laRSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICByZXQgPSBQeV9Ob25lOwotCi0gIGVycm9yOgotICAgIFJFTEVBU0VfTE9DSyhzZWxmKTsKLSAgICBQeV9YREVDUkVGKGxpc3QpOwotICAgIFB5X1hERUNSRUYoaXRlcik7Ci0gICAgcmV0dXJuIHJldDsKLSN1bmRlZiBDSFVOS1NJWkUKLX0KLQotUHlEb2NfU1RSVkFSKEJaMkZpbGVfc2Vla19fZG9jX18sCi0ic2VlayhvZmZzZXQgWywgd2hlbmNlXSkgLT4gTm9uZVxuXAotXG5cCi1Nb3ZlIHRvIG5ldyBmaWxlIHBvc2l0aW9uLiBBcmd1bWVudCBvZmZzZXQgaXMgYSBieXRlIGNvdW50LiBPcHRpb25hbFxuXAotYXJndW1lbnQgd2hlbmNlIGRlZmF1bHRzIHRvIDAgKG9mZnNldCBmcm9tIHN0YXJ0IG9mIGZpbGUsIG9mZnNldFxuXAotc2hvdWxkIGJlID49IDApOyBvdGhlciB2YWx1ZXMgYXJlIDEgKG1vdmUgcmVsYXRpdmUgdG8gY3VycmVudCBwb3NpdGlvbixcblwKLXBvc2l0aXZlIG9yIG5lZ2F0aXZlKSwgYW5kIDIgKG1vdmUgcmVsYXRpdmUgdG8gZW5kIG9mIGZpbGUsIHVzdWFsbHlcblwKLW5lZ2F0aXZlLCBhbHRob3VnaCBtYW55IHBsYXRmb3JtcyBhbGxvdyBzZWVraW5nIGJleW9uZCB0aGUgZW5kIG9mIGEgZmlsZSkuXG5cCi1cblwKLU5vdGUgdGhhdCBzZWVraW5nIG9mIGJ6MiBmaWxlcyBpcyBlbXVsYXRlZCwgYW5kIGRlcGVuZGluZyBvbiB0aGUgcGFyYW1ldGVyc1xuXAotdGhlIG9wZXJhdGlvbiBtYXkgYmUgZXh0cmVtZWx5IHNsb3cuXG5cCi0iKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLUJaMkZpbGVfc2VlayhCWjJGaWxlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBpbnQgd2hlcmUgPSAwOwotICAgIFB5T2JqZWN0ICpvZmZvYmo7Ci0gICAgUHlfb2ZmX3Qgb2Zmc2V0OwotICAgIGNoYXIgc21hbGxfYnVmZmVyW1NNQUxMQ0hVTktdOwotICAgIGNoYXIgKmJ1ZmZlciA9IHNtYWxsX2J1ZmZlcjsKLSAgICBzaXplX3QgYnVmZmVyc2l6ZSA9IFNNQUxMQ0hVTks7Ci0gICAgUHlfb2ZmX3QgYnl0ZXNyZWFkID0gMDsKLSAgICBzaXplX3QgcmVhZHNpemU7Ci0gICAgaW50IGNodW5rc2l6ZTsKLSAgICBpbnQgYnplcnJvcjsKLSAgICBQeU9iamVjdCAqcmV0ID0gTlVMTDsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT3xpOnNlZWsiLCAmb2Zmb2JqLCAmd2hlcmUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSNpZiAhZGVmaW5lZChIQVZFX0xBUkdFRklMRV9TVVBQT1JUKQotICAgIG9mZnNldCA9IFB5TG9uZ19Bc0xvbmcob2Zmb2JqKTsKLSNlbHNlCi0gICAgb2Zmc2V0ID0gUHlMb25nX0NoZWNrKG9mZm9iaikgPwotICAgICAgICBQeUxvbmdfQXNMb25nTG9uZyhvZmZvYmopIDogUHlMb25nX0FzTG9uZyhvZmZvYmopOwotI2VuZGlmCi0gICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgQUNRVUlSRV9MT0NLKHNlbGYpOwotICAgIFV0aWxfRHJvcFJlYWRBaGVhZChzZWxmKTsKLSAgICBzd2l0Y2ggKHNlbGYtPm1vZGUpIHsKLSAgICAgICAgY2FzZSBNT0RFX1JFQUQ6Ci0gICAgICAgIGNhc2UgTU9ERV9SRUFEX0VPRjoKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgTU9ERV9DTE9TRUQ6Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSS9PIG9wZXJhdGlvbiBvbiBjbG9zZWQgZmlsZSIpOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotCi0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSU9FcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VlayB3b3JrcyBvbmx5IHdoaWxlIHJlYWRpbmciKTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSAgICBpZiAod2hlcmUgPT0gMikgewotICAgICAgICBpZiAoc2VsZi0+c2l6ZSA9PSAtMSkgewotICAgICAgICAgICAgYXNzZXJ0KHNlbGYtPm1vZGUgIT0gTU9ERV9SRUFEX0VPRik7Ci0gICAgICAgICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICAgICAgICAgIGNodW5rc2l6ZSA9IEJaMl9ielJlYWQoJmJ6ZXJyb3IsIHNlbGYtPmZwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmZmVyLCBidWZmZXJzaXplKTsKLSAgICAgICAgICAgICAgICBzZWxmLT5wb3MgKz0gY2h1bmtzaXplOwotICAgICAgICAgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICAgICAgICAgICAgICBieXRlc3JlYWQgKz0gY2h1bmtzaXplOwotICAgICAgICAgICAgICAgIGlmIChiemVycm9yID09IEJaX1NUUkVBTV9FTkQpIHsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChiemVycm9yICE9IEJaX09LKSB7Ci0gICAgICAgICAgICAgICAgICAgIFV0aWxfQ2F0Y2hCWjJFcnJvcihiemVycm9yKTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNlbGYtPm1vZGUgPSBNT0RFX1JFQURfRU9GOwotICAgICAgICAgICAgc2VsZi0+c2l6ZSA9IHNlbGYtPnBvczsKLSAgICAgICAgICAgIGJ5dGVzcmVhZCA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgb2Zmc2V0ID0gc2VsZi0+c2l6ZSArIG9mZnNldDsKLSAgICB9IGVsc2UgaWYgKHdoZXJlID09IDEpIHsKLSAgICAgICAgb2Zmc2V0ID0gc2VsZi0+cG9zICsgb2Zmc2V0OwotICAgIH0KLQotICAgIC8qIEJlZm9yZSBnZXR0aW5nIGhlcmUsIG9mZnNldCBtdXN0IGJlIHRoZSBhYnNvbHV0ZSBwb3NpdGlvbiB0aGUgZmlsZQotICAgICAqIHBvaW50ZXIgc2hvdWxkIGJlIHNldCB0by4gKi8KLQotICAgIGlmIChvZmZzZXQgPj0gc2VsZi0+cG9zKSB7Ci0gICAgICAgIC8qIHdlIGNhbiBtb3ZlIGZvcndhcmQgKi8KLSAgICAgICAgb2Zmc2V0IC09IHNlbGYtPnBvczsKLSAgICB9IGVsc2UgewotICAgICAgICAvKiB3ZSBjYW5ub3QgbW92ZSBiYWNrLCBzbyByZXdpbmQgdGhlIHN0cmVhbSAqLwotICAgICAgICBCWjJfYnpSZWFkQ2xvc2UoJmJ6ZXJyb3IsIHNlbGYtPmZwKTsKLSAgICAgICAgaWYgKGJ6ZXJyb3IgIT0gQlpfT0spIHsKLSAgICAgICAgICAgIFV0aWxfQ2F0Y2hCWjJFcnJvcihiemVycm9yKTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotICAgICAgICByZXdpbmQoc2VsZi0+cmF3ZnApOwotICAgICAgICBzZWxmLT5wb3MgPSAwOwotICAgICAgICBzZWxmLT5mcCA9IEJaMl9ielJlYWRPcGVuKCZiemVycm9yLCBzZWxmLT5yYXdmcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBOVUxMLCAwKTsKLSAgICAgICAgaWYgKGJ6ZXJyb3IgIT0gQlpfT0spIHsKLSAgICAgICAgICAgIFV0aWxfQ2F0Y2hCWjJFcnJvcihiemVycm9yKTsKLSAgICAgICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICAgICAgfQotICAgICAgICBzZWxmLT5tb2RlID0gTU9ERV9SRUFEOwotICAgIH0KLQotICAgIGlmIChvZmZzZXQgPD0gMCB8fCBzZWxmLT5tb2RlID09IE1PREVfUkVBRF9FT0YpCi0gICAgICAgIGdvdG8gZXhpdDsKLQotICAgIC8qIEJlZm9yZSBnZXR0aW5nIGhlcmUsIG9mZnNldCBtdXN0IGJlIHNldCB0byB0aGUgbnVtYmVyIG9mIGJ5dGVzCi0gICAgICogdG8gd2FsayBmb3J3YXJkLiAqLwotICAgIGZvciAoOzspIHsKLSAgICAgICAgaWYgKG9mZnNldC1ieXRlc3JlYWQgPiBidWZmZXJzaXplKQotICAgICAgICAgICAgcmVhZHNpemUgPSBidWZmZXJzaXplOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICAvKiBvZmZzZXQgbWlnaHQgYmUgd2lkZXIgdGhhdCByZWFkc2l6ZSwgYnV0IHRoZSByZXN1bHQKLSAgICAgICAgICAgICAqIG9mIHRoZSBzdWJ0cmFjdGlvbiBpcyBib3VuZCBieSBidWZmZXJzaXplIChzZWUgdGhlCi0gICAgICAgICAgICAgKiBjb25kaXRpb24gYWJvdmUpLiBidWZmZXJzaXplIGlzIDgxOTIuICovCi0gICAgICAgICAgICByZWFkc2l6ZSA9IChzaXplX3QpKG9mZnNldC1ieXRlc3JlYWQpOwotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgIGNodW5rc2l6ZSA9IEJaMl9ielJlYWQoJmJ6ZXJyb3IsIHNlbGYtPmZwLCBidWZmZXIsIHJlYWRzaXplKTsKLSAgICAgICAgc2VsZi0+cG9zICs9IGNodW5rc2l6ZTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgYnl0ZXNyZWFkICs9IGNodW5rc2l6ZTsKLSAgICAgICAgaWYgKGJ6ZXJyb3IgPT0gQlpfU1RSRUFNX0VORCkgewotICAgICAgICAgICAgc2VsZi0+c2l6ZSA9IHNlbGYtPnBvczsKLSAgICAgICAgICAgIHNlbGYtPm1vZGUgPSBNT0RFX1JFQURfRU9GOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gZWxzZSBpZiAoYnplcnJvciAhPSBCWl9PSykgewotICAgICAgICAgICAgVXRpbF9DYXRjaEJaMkVycm9yKGJ6ZXJyb3IpOwotICAgICAgICAgICAgZ290byBjbGVhbnVwOwotICAgICAgICB9Ci0gICAgICAgIGlmIChieXRlc3JlYWQgPT0gb2Zmc2V0KQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi1leGl0OgotICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICByZXQgPSBQeV9Ob25lOwotCi1jbGVhbnVwOgotICAgIFJFTEVBU0VfTE9DSyhzZWxmKTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1QeURvY19TVFJWQVIoQloyRmlsZV90ZWxsX19kb2NfXywKLSJ0ZWxsKCkgLT4gaW50XG5cCi1cblwKLVJldHVybiB0aGUgY3VycmVudCBmaWxlIHBvc2l0aW9uLCBhbiBpbnRlZ2VyIChtYXkgYmUgYSBsb25nIGludGVnZXIpLlxuXAotIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CWjJGaWxlX3RlbGwoQloyRmlsZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgUHlPYmplY3QgKnJldCA9IE5VTEw7Ci0KLSAgICBpZiAoc2VsZi0+bW9kZSA9PSBNT0RFX0NMT1NFRCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIik7Ci0gICAgICAgIGdvdG8gY2xlYW51cDsKLSAgICB9Ci0KLSNpZiAhZGVmaW5lZChIQVZFX0xBUkdFRklMRV9TVVBQT1JUKQotICAgIHJldCA9IFB5TG9uZ19Gcm9tTG9uZyhzZWxmLT5wb3MpOwotI2Vsc2UKLSAgICByZXQgPSBQeUxvbmdfRnJvbUxvbmdMb25nKHNlbGYtPnBvcyk7Ci0jZW5kaWYKLQotY2xlYW51cDoKLSAgICByZXR1cm4gcmV0OwotfQotCi1QeURvY19TVFJWQVIoQloyRmlsZV9jbG9zZV9fZG9jX18sCi0iY2xvc2UoKSAtPiBOb25lIG9yIChwZXJoYXBzKSBhbiBpbnRlZ2VyXG5cCi1cblwKLUNsb3NlIHRoZSBmaWxlLiBTZXRzIGRhdGEgYXR0cmlidXRlIC5jbG9zZWQgdG8gdHJ1ZS4gQSBjbG9zZWQgZmlsZVxuXAotY2Fubm90IGJlIHVzZWQgZm9yIGZ1cnRoZXIgSS9PIG9wZXJhdGlvbnMuIGNsb3NlKCkgbWF5IGJlIGNhbGxlZCBtb3JlXG5cCi10aGFuIG9uY2Ugd2l0aG91dCBlcnJvci5cblwKLSIpOwotCi1zdGF0aWMgUHlPYmplY3QgKgotQloyRmlsZV9jbG9zZShCWjJGaWxlT2JqZWN0ICpzZWxmKQotewotICAgIFB5T2JqZWN0ICpyZXQgPSBOVUxMOwotICAgIGludCBiemVycm9yID0gQlpfT0s7Ci0KLSAgICBpZiAoc2VsZi0+bW9kZSA9PSBNT0RFX0NMT1NFRCkgewotICAgICAgICBQeV9SRVRVUk5fTk9ORTsKLSAgICB9Ci0KLSAgICBBQ1FVSVJFX0xPQ0soc2VsZik7Ci0gICAgc3dpdGNoIChzZWxmLT5tb2RlKSB7Ci0gICAgICAgIGNhc2UgTU9ERV9SRUFEOgotICAgICAgICBjYXNlIE1PREVfUkVBRF9FT0Y6Ci0gICAgICAgICAgICBCWjJfYnpSZWFkQ2xvc2UoJmJ6ZXJyb3IsIHNlbGYtPmZwKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE1PREVfV1JJVEU6Ci0gICAgICAgICAgICBCWjJfYnpXcml0ZUNsb3NlKCZiemVycm9yLCBzZWxmLT5mcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgTlVMTCwgTlVMTCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgc2VsZi0+bW9kZSA9IE1PREVfQ0xPU0VEOwotICAgIGZjbG9zZShzZWxmLT5yYXdmcCk7Ci0gICAgc2VsZi0+cmF3ZnAgPSBOVUxMOwotICAgIGlmIChiemVycm9yID09IEJaX09LKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICAgICAgcmV0ID0gUHlfTm9uZTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIFV0aWxfQ2F0Y2hCWjJFcnJvcihiemVycm9yKTsKLSAgICB9Ci0KLSAgICBSRUxFQVNFX0xPQ0soc2VsZik7Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotUHlEb2NfU1RSVkFSKEJaMkZpbGVfZW50ZXJfZG9jLAotIl9fZW50ZXJfXygpIC0+IHNlbGYuIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CWjJGaWxlX2VudGVyKEJaMkZpbGVPYmplY3QgKnNlbGYpCi17Ci0gICAgaWYgKHNlbGYtPm1vZGUgPT0gTU9ERV9DTE9TRUQpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAiSS9PIG9wZXJhdGlvbiBvbiBjbG9zZWQgZmlsZSIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgUHlfSU5DUkVGKHNlbGYpOwotICAgIHJldHVybiAoUHlPYmplY3QgKikgc2VsZjsKLX0KLQotUHlEb2NfU1RSVkFSKEJaMkZpbGVfZXhpdF9kb2MsCi0iX19leGl0X18oKmV4Y2luZm8pIC0+IE5vbmUuICBDbG9zZXMgdGhlIGZpbGUuIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CWjJGaWxlX2V4aXQoQloyRmlsZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgUHlPYmplY3QgKnJldCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoKFB5T2JqZWN0ICopIHNlbGYsICJjbG9zZSIsIE5VTEwpOwotICAgIGlmICghcmV0KQotICAgICAgICAvKiBJZiBlcnJvciBvY2N1cnJlZCwgcGFzcyB0aHJvdWdoICovCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIFB5X0RFQ1JFRihyZXQpOwotICAgIFB5X1JFVFVSTl9OT05FOwotfQotCi0KLXN0YXRpYyBQeU9iamVjdCAqQloyRmlsZV9nZXRpdGVyKEJaMkZpbGVPYmplY3QgKnNlbGYpOwotCi1zdGF0aWMgUHlNZXRob2REZWYgQloyRmlsZV9tZXRob2RzW10gPSB7Ci0gICAgeyJyZWFkIiwgKFB5Q0Z1bmN0aW9uKUJaMkZpbGVfcmVhZCwgTUVUSF9WQVJBUkdTLCBCWjJGaWxlX3JlYWRfX2RvY19ffSwKLSAgICB7InJlYWRsaW5lIiwgKFB5Q0Z1bmN0aW9uKUJaMkZpbGVfcmVhZGxpbmUsIE1FVEhfVkFSQVJHUywgQloyRmlsZV9yZWFkbGluZV9fZG9jX199LAotICAgIHsicmVhZGxpbmVzIiwgKFB5Q0Z1bmN0aW9uKUJaMkZpbGVfcmVhZGxpbmVzLCBNRVRIX1ZBUkFSR1MsIEJaMkZpbGVfcmVhZGxpbmVzX19kb2NfX30sCi0gICAgeyJ3cml0ZSIsIChQeUNGdW5jdGlvbilCWjJGaWxlX3dyaXRlLCBNRVRIX1ZBUkFSR1MsIEJaMkZpbGVfd3JpdGVfX2RvY19ffSwKLSAgICB7IndyaXRlbGluZXMiLCAoUHlDRnVuY3Rpb24pQloyRmlsZV93cml0ZWxpbmVzLCBNRVRIX08sIEJaMkZpbGVfd3JpdGVsaW5lc19fZG9jX199LAotICAgIHsic2VlayIsIChQeUNGdW5jdGlvbilCWjJGaWxlX3NlZWssIE1FVEhfVkFSQVJHUywgQloyRmlsZV9zZWVrX19kb2NfX30sCi0gICAgeyJ0ZWxsIiwgKFB5Q0Z1bmN0aW9uKUJaMkZpbGVfdGVsbCwgTUVUSF9OT0FSR1MsIEJaMkZpbGVfdGVsbF9fZG9jX199LAotICAgIHsiY2xvc2UiLCAoUHlDRnVuY3Rpb24pQloyRmlsZV9jbG9zZSwgTUVUSF9OT0FSR1MsIEJaMkZpbGVfY2xvc2VfX2RvY19ffSwKLSAgICB7Il9fZW50ZXJfXyIsIChQeUNGdW5jdGlvbilCWjJGaWxlX2VudGVyLCBNRVRIX05PQVJHUywgQloyRmlsZV9lbnRlcl9kb2N9LAotICAgIHsiX19leGl0X18iLCAoUHlDRnVuY3Rpb24pQloyRmlsZV9leGl0LCBNRVRIX1ZBUkFSR1MsIEJaMkZpbGVfZXhpdF9kb2N9LAotICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCi19OwotCi0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwotLyogR2V0dGVycyBhbmQgc2V0dGVycyBvZiBCWjJGaWxlLiAqLwotCi1zdGF0aWMgUHlPYmplY3QgKgotQloyRmlsZV9nZXRfY2xvc2VkKEJaMkZpbGVPYmplY3QgKnNlbGYsIHZvaWQgKmNsb3N1cmUpCi17Ci0gICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyhzZWxmLT5tb2RlID09IE1PREVfQ0xPU0VEKTsKLX0KLQotc3RhdGljIFB5R2V0U2V0RGVmIEJaMkZpbGVfZ2V0c2V0W10gPSB7Ci0gICAgeyJjbG9zZWQiLCAoZ2V0dGVyKUJaMkZpbGVfZ2V0X2Nsb3NlZCwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgIlRydWUgaWYgdGhlIGZpbGUgaXMgY2xvc2VkIn0sCi0gICAge05VTEx9ICAgICAgLyogU2VudGluZWwgKi8KLX07Ci0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi0vKiBTbG90IGRlZmluaXRpb25zIGZvciBCWjJGaWxlX1R5cGUuICovCi0KLXN0YXRpYyBpbnQKLUJaMkZpbGVfaW5pdChCWjJGaWxlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKLXsKLSAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImZpbGVuYW1lIiwgIm1vZGUiLCAiYnVmZmVyaW5nIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbXByZXNzbGV2ZWwiLCAwfTsKLSAgICBQeU9iamVjdCAqbmFtZV9vYmogPSBOVUxMOwotICAgIGNoYXIgKm5hbWU7Ci0gICAgY2hhciAqbW9kZSA9ICJyIjsKLSAgICBpbnQgYnVmZmVyaW5nID0gLTE7Ci0gICAgaW50IGNvbXByZXNzbGV2ZWwgPSA5OwotICAgIGludCBiemVycm9yOwotICAgIGludCBtb2RlX2NoYXIgPSAwOwotCi0gICAgc2VsZi0+c2l6ZSA9IC0xOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZ8c2lpOkJaMkZpbGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3bGlzdCwgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmbmFtZV9vYmosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1vZGUsICZidWZmZXJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXByZXNzbGV2ZWwpKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBuYW1lID0gUHlCeXRlc19Bc1N0cmluZyhuYW1lX29iaik7Ci0gICAgaWYgKGNvbXByZXNzbGV2ZWwgPCAxIHx8IGNvbXByZXNzbGV2ZWwgPiA5KSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgImNvbXByZXNzbGV2ZWwgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDkiKTsKLSAgICAgICAgUHlfREVDUkVGKG5hbWVfb2JqKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIGZvciAoOzspIHsKLSAgICAgICAgaW50IGVycm9yID0gMDsKLSAgICAgICAgc3dpdGNoICgqbW9kZSkgewotICAgICAgICAgICAgY2FzZSAncic6Ci0gICAgICAgICAgICBjYXNlICd3JzoKLSAgICAgICAgICAgICAgICBpZiAobW9kZV9jaGFyKQotICAgICAgICAgICAgICAgICAgICBlcnJvciA9IDE7Ci0gICAgICAgICAgICAgICAgbW9kZV9jaGFyID0gKm1vZGU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgJ2InOgotICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGVycm9yID0gMTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIG1vZGUgY2hhciAlYyIsICptb2RlKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihuYW1lX29iaik7Ci0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAgICAgbW9kZSsrOwotICAgICAgICBpZiAoKm1vZGUgPT0gJ1wwJykKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmIChtb2RlX2NoYXIgPT0gMCkgewotICAgICAgICBtb2RlX2NoYXIgPSAncic7Ci0gICAgfQotCi0gICAgbW9kZSA9IChtb2RlX2NoYXIgPT0gJ3InKSA/ICJyYiIgOiAid2IiOwotCi0gICAgc2VsZi0+cmF3ZnAgPSBmb3BlbihuYW1lLCBtb2RlKTsKLSAgICBQeV9ERUNSRUYobmFtZV9vYmopOwotICAgIGlmIChzZWxmLT5yYXdmcCA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICAvKiBYWFggSWdub3JlIGJ1ZmZlcmluZyAqLwotCi0gICAgLyogRnJvbSBub3cgb24sIHdlIGhhdmUgc3R1ZmYgdG8gZGVhbGxvYywgc28ganVtcCB0byBlcnJvciBsYWJlbAotICAgICAqIGluc3RlYWQgb2YgcmV0dXJuaW5nICovCi0KLSNpZmRlZiBXSVRIX1RIUkVBRAotICAgIHNlbGYtPmxvY2sgPSBQeVRocmVhZF9hbGxvY2F0ZV9sb2NrKCk7Ci0gICAgaWYgKCFzZWxmLT5sb2NrKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19NZW1vcnlFcnJvciwgInVuYWJsZSB0byBhbGxvY2F0ZSBsb2NrIik7Ci0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBpZiAobW9kZV9jaGFyID09ICdyJykKLSAgICAgICAgc2VsZi0+ZnAgPSBCWjJfYnpSZWFkT3BlbigmYnplcnJvciwgc2VsZi0+cmF3ZnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgTlVMTCwgMCk7Ci0gICAgZWxzZQotICAgICAgICBzZWxmLT5mcCA9IEJaMl9ieldyaXRlT3BlbigmYnplcnJvciwgc2VsZi0+cmF3ZnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzbGV2ZWwsIDAsIDApOwotCi0gICAgaWYgKGJ6ZXJyb3IgIT0gQlpfT0spIHsKLSAgICAgICAgVXRpbF9DYXRjaEJaMkVycm9yKGJ6ZXJyb3IpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIHNlbGYtPm1vZGUgPSAobW9kZV9jaGFyID09ICdyJykgPyBNT0RFX1JFQUQgOiBNT0RFX1dSSVRFOwotCi0gICAgcmV0dXJuIDA7Ci0KLWVycm9yOgotICAgIGZjbG9zZShzZWxmLT5yYXdmcCk7Ci0gICAgc2VsZi0+cmF3ZnAgPSBOVUxMOwotI2lmZGVmIFdJVEhfVEhSRUFECi0gICAgaWYgKHNlbGYtPmxvY2spIHsKLSAgICAgICAgUHlUaHJlYWRfZnJlZV9sb2NrKHNlbGYtPmxvY2spOwotICAgICAgICBzZWxmLT5sb2NrID0gTlVMTDsKLSAgICB9Ci0jZW5kaWYKLSAgICByZXR1cm4gLTE7Ci19Ci0KLXN0YXRpYyB2b2lkCi1CWjJGaWxlX2RlYWxsb2MoQloyRmlsZU9iamVjdCAqc2VsZikKLXsKLSAgICBpbnQgYnplcnJvcjsKLSNpZmRlZiBXSVRIX1RIUkVBRAotICAgIGlmIChzZWxmLT5sb2NrKQotICAgICAgICBQeVRocmVhZF9mcmVlX2xvY2soc2VsZi0+bG9jayk7Ci0jZW5kaWYKLSAgICBzd2l0Y2ggKHNlbGYtPm1vZGUpIHsKLSAgICAgICAgY2FzZSBNT0RFX1JFQUQ6Ci0gICAgICAgIGNhc2UgTU9ERV9SRUFEX0VPRjoKLSAgICAgICAgICAgIEJaMl9ielJlYWRDbG9zZSgmYnplcnJvciwgc2VsZi0+ZnApOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgTU9ERV9XUklURToKLSAgICAgICAgICAgIEJaMl9ieldyaXRlQ2xvc2UoJmJ6ZXJyb3IsIHNlbGYtPmZwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCBOVUxMLCBOVUxMKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBVdGlsX0Ryb3BSZWFkQWhlYWQoc2VsZik7Ci0gICAgaWYgKHNlbGYtPnJhd2ZwICE9IE5VTEwpCi0gICAgICAgIGZjbG9zZShzZWxmLT5yYXdmcCk7Ci0gICAgUHlfVFlQRShzZWxmKS0+dHBfZnJlZSgoUHlPYmplY3QgKilzZWxmKTsKLX0KLQotLyogVGhpcyBpcyBhIGhhY2tlZCB2ZXJzaW9uIG9mIFB5dGhvbidzIGZpbGVvYmplY3QuYzpmaWxlX2dldGl0ZXIoKS4gKi8KLXN0YXRpYyBQeU9iamVjdCAqCi1CWjJGaWxlX2dldGl0ZXIoQloyRmlsZU9iamVjdCAqc2VsZikKLXsKLSAgICBpZiAoc2VsZi0+bW9kZSA9PSBNT0RFX0NMT1NFRCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJJL08gb3BlcmF0aW9uIG9uIGNsb3NlZCBmaWxlIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBQeV9JTkNSRUYoKFB5T2JqZWN0KilzZWxmKTsKLSAgICByZXR1cm4gKFB5T2JqZWN0ICopc2VsZjsKLX0KLQotLyogVGhpcyBpcyBhIGhhY2tlZCB2ZXJzaW9uIG9mIFB5dGhvbidzIGZpbGVvYmplY3QuYzpmaWxlX2l0ZXJuZXh0KCkuICovCi0jZGVmaW5lIFJFQURBSEVBRF9CVUZTSVpFIDgxOTIKLXN0YXRpYyBQeU9iamVjdCAqCi1CWjJGaWxlX2l0ZXJuZXh0KEJaMkZpbGVPYmplY3QgKnNlbGYpCi17Ci0gICAgUHlCeXRlc09iamVjdCogcmV0OwotICAgIEFDUVVJUkVfTE9DSyhzZWxmKTsKLSAgICBpZiAoc2VsZi0+bW9kZSA9PSBNT0RFX0NMT1NFRCkgewotICAgICAgICBSRUxFQVNFX0xPQ0soc2VsZik7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgIkkvTyBvcGVyYXRpb24gb24gY2xvc2VkIGZpbGUiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldCA9IFV0aWxfUmVhZEFoZWFkR2V0TGluZVNraXAoc2VsZiwgMCwgUkVBREFIRUFEX0JVRlNJWkUpOwotICAgIFJFTEVBU0VfTE9DSyhzZWxmKTsKLSAgICBpZiAocmV0ID09IE5VTEwgfHwgUHlCeXRlc19HRVRfU0laRShyZXQpID09IDApIHsKLSAgICAgICAgUHlfWERFQ1JFRihyZXQpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIChQeU9iamVjdCAqKXJldDsKLX0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi0vKiBCWjJGaWxlX1R5cGUgZGVmaW5pdGlvbi4gKi8KLQotUHlEb2NfVkFSKEJaMkZpbGVfX2RvY19fKSA9Ci1QeURvY19TVFIoCi0iQloyRmlsZShuYW1lIFssIG1vZGU9J3InLCBidWZmZXJpbmc9MCwgY29tcHJlc3NsZXZlbD05XSkgLT4gZmlsZSBvYmplY3RcblwKLVxuXAotT3BlbiBhIGJ6MiBmaWxlLiBUaGUgbW9kZSBjYW4gYmUgJ3InIG9yICd3JywgZm9yIHJlYWRpbmcgKGRlZmF1bHQpIG9yXG5cCi13cml0aW5nLiBXaGVuIG9wZW5lZCBmb3Igd3JpdGluZywgdGhlIGZpbGUgd2lsbCBiZSBjcmVhdGVkIGlmIGl0IGRvZXNuJ3RcblwKLWV4aXN0LCBhbmQgdHJ1bmNhdGVkIG90aGVyd2lzZS4gSWYgdGhlIGJ1ZmZlcmluZyBhcmd1bWVudCBpcyBnaXZlbiwgMCBtZWFuc1xuXAotdW5idWZmZXJlZCwgYW5kIGxhcmdlciBudW1iZXJzIHNwZWNpZnkgdGhlIGJ1ZmZlciBzaXplLiBJZiBjb21wcmVzc2xldmVsXG5cCi1pcyBnaXZlbiwgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDEgYW5kIDkuXG5cCi1EYXRhIHJlYWQgaXMgYWx3YXlzIHJldHVybmVkIGluIGJ5dGVzOyBkYXRhIHdyaXR0ZW4gb3VnaHQgdG8gYmUgYnl0ZXMuXG5cCi0iKTsKLQotc3RhdGljIFB5VHlwZU9iamVjdCBCWjJGaWxlX1R5cGUgPSB7Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi0gICAgImJ6Mi5CWjJGaWxlIiwgICAgICAgICAgICAgIC8qdHBfbmFtZSovCi0gICAgc2l6ZW9mKEJaMkZpbGVPYmplY3QpLCAgICAgIC8qdHBfYmFzaWNzaXplKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVtc2l6ZSovCi0gICAgKGRlc3RydWN0b3IpQloyRmlsZV9kZWFsbG9jLCAvKnRwX2RlYWxsb2MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3ByaW50Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9nZXRhdHRyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yZXNlcnZlZCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcmVwciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbnVtYmVyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19zZXF1ZW5jZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbWFwcGluZyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaGFzaCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jYWxsKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX3N0ciovCi0gICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsLyp0cF9nZXRhdHRybyovCi0gICAgUHlPYmplY3RfR2VuZXJpY1NldEF0dHIsLyp0cF9zZXRhdHRybyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19idWZmZXIqLwotICAgIFB5X1RQRkxBR1NfREVGQVVMVHxQeV9UUEZMQUdTX0JBU0VUWVBFLCAvKnRwX2ZsYWdzKi8KLSAgICBCWjJGaWxlX19kb2NfXywgICAgICAgICAvKnRwX2RvYyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF90cmF2ZXJzZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jbGVhciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yaWNoY29tcGFyZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF93ZWFrbGlzdG9mZnNldCovCi0gICAgKGdldGl0ZXJmdW5jKUJaMkZpbGVfZ2V0aXRlciwgLyp0cF9pdGVyKi8KLSAgICAoaXRlcm5leHRmdW5jKUJaMkZpbGVfaXRlcm5leHQsIC8qdHBfaXRlcm5leHQqLwotICAgIEJaMkZpbGVfbWV0aG9kcywgICAgICAgIC8qdHBfbWV0aG9kcyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfbWVtYmVycyovCi0gICAgQloyRmlsZV9nZXRzZXQsICAgICAgICAgLyp0cF9nZXRzZXQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYmFzZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kaWN0Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2Rlc2NyX2dldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kZXNjcl9zZXQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZGljdG9mZnNldCovCi0gICAgKGluaXRwcm9jKUJaMkZpbGVfaW5pdCwgLyp0cF9pbml0Ki8KLSAgICBQeVR5cGVfR2VuZXJpY0FsbG9jLCAgICAvKnRwX2FsbG9jKi8KLSAgICBQeVR5cGVfR2VuZXJpY05ldywgICAgICAvKnRwX25ldyovCi0gICAgUHlPYmplY3RfRnJlZSwgICAgICAgICAgLyp0cF9mcmVlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2lzX2djKi8KLX07Ci0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi0vKiBNZXRob2RzIG9mIEJaMkNvbXAuICovCi0KLVB5RG9jX1NUUlZBUihCWjJDb21wX2NvbXByZXNzX19kb2NfXywKLSJjb21wcmVzcyhkYXRhKSAtPiBzdHJpbmdcblwKLVxuXAotUHJvdmlkZSBtb3JlIGRhdGEgdG8gdGhlIGNvbXByZXNzb3Igb2JqZWN0LiBJdCB3aWxsIHJldHVybiBjaHVua3Mgb2ZcblwKLWNvbXByZXNzZWQgZGF0YSB3aGVuZXZlciBwb3NzaWJsZS4gV2hlbiB5b3UndmUgZmluaXNoZWQgcHJvdmlkaW5nIGRhdGFcblwKLXRvIGNvbXByZXNzLCBjYWxsIHRoZSBmbHVzaCgpIG1ldGhvZCB0byBmaW5pc2ggdGhlIGNvbXByZXNzaW9uIHByb2Nlc3MsXG5cCi1hbmQgcmV0dXJuIHdoYXQgaXMgbGVmdCBpbiB0aGUgaW50ZXJuYWwgYnVmZmVycy5cblwKLSIpOwotCi1zdGF0aWMgUHlPYmplY3QgKgotQloyQ29tcF9jb21wcmVzcyhCWjJDb21wT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBQeV9idWZmZXIgcGRhdGE7Ci0gICAgY2hhciAqZGF0YTsKLSAgICBpbnQgZGF0YXNpemU7Ci0gICAgaW50IGJ1ZnNpemUgPSBTTUFMTENIVU5LOwotICAgIFBZX0xPTkdfTE9ORyB0b3RhbG91dDsKLSAgICBQeU9iamVjdCAqcmV0ID0gTlVMTDsKLSAgICBiel9zdHJlYW0gKmJ6cyA9ICZzZWxmLT5ienM7Ci0gICAgaW50IGJ6ZXJyb3I7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInkqOmNvbXByZXNzIiwgJnBkYXRhKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgZGF0YSA9IHBkYXRhLmJ1ZjsKLSAgICBkYXRhc2l6ZSA9IHBkYXRhLmxlbjsKLQotICAgIGlmIChkYXRhc2l6ZSA9PSAwKSB7Ci0gICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBkYXRhKTsKLSAgICAgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoIiIsIDApOwotICAgIH0KLQotICAgIEFDUVVJUkVfTE9DSyhzZWxmKTsKLSAgICBpZiAoIXNlbGYtPnJ1bm5pbmcpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAidGhpcyBvYmplY3Qgd2FzIGFscmVhZHkgZmx1c2hlZCIpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIHJldCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgYnVmc2l6ZSk7Ci0gICAgaWYgKCFyZXQpCi0gICAgICAgIGdvdG8gZXJyb3I7Ci0KLSAgICBienMtPm5leHRfaW4gPSBkYXRhOwotICAgIGJ6cy0+YXZhaWxfaW4gPSBkYXRhc2l6ZTsKLSAgICBienMtPm5leHRfb3V0ID0gQlVGKHJldCk7Ci0gICAgYnpzLT5hdmFpbF9vdXQgPSBidWZzaXplOwotCi0gICAgdG90YWxvdXQgPSBCWlNfVE9UQUxfT1VUKGJ6cyk7Ci0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgYnplcnJvciA9IEJaMl9iekNvbXByZXNzKGJ6cywgQlpfUlVOKTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgaWYgKGJ6ZXJyb3IgIT0gQlpfUlVOX09LKSB7Ci0gICAgICAgICAgICBVdGlsX0NhdGNoQloyRXJyb3IoYnplcnJvcik7Ci0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICB9Ci0gICAgICAgIGlmIChienMtPmF2YWlsX2luID09IDApCi0gICAgICAgICAgICBicmVhazsgLyogbm8gbW9yZSBpbnB1dCBkYXRhICovCi0gICAgICAgIGlmIChienMtPmF2YWlsX291dCA9PSAwKSB7Ci0gICAgICAgICAgICBidWZzaXplID0gVXRpbF9OZXdCdWZmZXJTaXplKGJ1ZnNpemUpOwotICAgICAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZSgmcmV0LCBidWZzaXplKSA8IDApIHsKLSAgICAgICAgICAgICAgICBCWjJfYnpDb21wcmVzc0VuZChienMpOwotICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBienMtPm5leHRfb3V0ID0gQlVGKHJldCkgKyAoQlpTX1RPVEFMX09VVChienMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSB0b3RhbG91dCk7Ci0gICAgICAgICAgICBienMtPmF2YWlsX291dCA9IGJ1ZnNpemUgLSAoYnpzLT5uZXh0X291dCAtIEJVRihyZXQpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChfUHlCeXRlc19SZXNpemUoJnJldCwKLSAgICAgICAgICAgICAgICAgICAgICAgKFB5X3NzaXplX3QpKEJaU19UT1RBTF9PVVQoYnpzKSAtIHRvdGFsb3V0KSkgPCAwKQotICAgICAgICBnb3RvIGVycm9yOwotCi0gICAgUkVMRUFTRV9MT0NLKHNlbGYpOwotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBkYXRhKTsKLSAgICByZXR1cm4gcmV0OwotCi1lcnJvcjoKLSAgICBSRUxFQVNFX0xPQ0soc2VsZik7Ci0gICAgUHlCdWZmZXJfUmVsZWFzZSgmcGRhdGEpOwotICAgIFB5X1hERUNSRUYocmV0KTsKLSAgICByZXR1cm4gTlVMTDsKLX0KLQotUHlEb2NfU1RSVkFSKEJaMkNvbXBfZmx1c2hfX2RvY19fLAotImZsdXNoKCkgLT4gc3RyaW5nXG5cCi1cblwKLUZpbmlzaCB0aGUgY29tcHJlc3Npb24gcHJvY2VzcyBhbmQgcmV0dXJuIHdoYXQgaXMgbGVmdCBpbiBpbnRlcm5hbCBidWZmZXJzLlxuXAotWW91IG11c3Qgbm90IHVzZSB0aGUgY29tcHJlc3NvciBvYmplY3QgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC5cblwKLSIpOwotCi1zdGF0aWMgUHlPYmplY3QgKgotQloyQ29tcF9mbHVzaChCWjJDb21wT2JqZWN0ICpzZWxmKQotewotICAgIGludCBidWZzaXplID0gU01BTExDSFVOSzsKLSAgICBQeU9iamVjdCAqcmV0ID0gTlVMTDsKLSAgICBiel9zdHJlYW0gKmJ6cyA9ICZzZWxmLT5ienM7Ci0gICAgUFlfTE9OR19MT05HIHRvdGFsb3V0OwotICAgIGludCBiemVycm9yOwotCi0gICAgQUNRVUlSRV9MT0NLKHNlbGYpOwotICAgIGlmICghc2VsZi0+cnVubmluZykgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIm9iamVjdCB3YXMgYWxyZWFkeSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmx1c2hlZCIpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLSAgICBzZWxmLT5ydW5uaW5nID0gMDsKLQotICAgIHJldCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgYnVmc2l6ZSk7Ci0gICAgaWYgKCFyZXQpCi0gICAgICAgIGdvdG8gZXJyb3I7Ci0KLSAgICBienMtPm5leHRfb3V0ID0gQlVGKHJldCk7Ci0gICAgYnpzLT5hdmFpbF9vdXQgPSBidWZzaXplOwotCi0gICAgdG90YWxvdXQgPSBCWlNfVE9UQUxfT1VUKGJ6cyk7Ci0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgYnplcnJvciA9IEJaMl9iekNvbXByZXNzKGJ6cywgQlpfRklOSVNIKTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgaWYgKGJ6ZXJyb3IgPT0gQlpfU1RSRUFNX0VORCkgewotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0gZWxzZSBpZiAoYnplcnJvciAhPSBCWl9GSU5JU0hfT0spIHsKLSAgICAgICAgICAgIFV0aWxfQ2F0Y2hCWjJFcnJvcihiemVycm9yKTsKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGJ6cy0+YXZhaWxfb3V0ID09IDApIHsKLSAgICAgICAgICAgIGJ1ZnNpemUgPSBVdGlsX05ld0J1ZmZlclNpemUoYnVmc2l6ZSk7Ci0gICAgICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZyZXQsIGJ1ZnNpemUpIDwgMCkKLSAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICAgICAgYnpzLT5uZXh0X291dCA9IEJVRihyZXQpOwotICAgICAgICAgICAgYnpzLT5uZXh0X291dCA9IEJVRihyZXQpICsgKEJaU19UT1RBTF9PVVQoYnpzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gdG90YWxvdXQpOwotICAgICAgICAgICAgYnpzLT5hdmFpbF9vdXQgPSBidWZzaXplIC0gKGJ6cy0+bmV4dF9vdXQgLSBCVUYocmV0KSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoYnpzLT5hdmFpbF9vdXQgIT0gMCkgewotICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZyZXQsCi0gICAgICAgICAgICAgICAgICAgIChQeV9zc2l6ZV90KShCWlNfVE9UQUxfT1VUKGJ6cykgLSB0b3RhbG91dCkpIDwgMCkKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotCi0gICAgUkVMRUFTRV9MT0NLKHNlbGYpOwotICAgIHJldHVybiByZXQ7Ci0KLWVycm9yOgotICAgIFJFTEVBU0VfTE9DSyhzZWxmKTsKLSAgICBQeV9YREVDUkVGKHJldCk7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXRpYyBQeU1ldGhvZERlZiBCWjJDb21wX21ldGhvZHNbXSA9IHsKLSAgICB7ImNvbXByZXNzIiwgKFB5Q0Z1bmN0aW9uKUJaMkNvbXBfY29tcHJlc3MsIE1FVEhfVkFSQVJHUywKLSAgICAgQloyQ29tcF9jb21wcmVzc19fZG9jX199LAotICAgIHsiZmx1c2giLCAoUHlDRnVuY3Rpb24pQloyQ29tcF9mbHVzaCwgTUVUSF9OT0FSR1MsCi0gICAgIEJaMkNvbXBfZmx1c2hfX2RvY19ffSwKLSAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwotfTsKLQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLS8qIFNsb3QgZGVmaW5pdGlvbnMgZm9yIEJaMkNvbXBfVHlwZS4gKi8KLQotc3RhdGljIGludAotQloyQ29tcF9pbml0KEJaMkNvbXBPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQotewotICAgIGludCBjb21wcmVzc2xldmVsID0gOTsKLSAgICBpbnQgYnplcnJvcjsKLSAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImNvbXByZXNzbGV2ZWwiLCAwfTsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgInxpOkJaMkNvbXByZXNzb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3bGlzdCwgJmNvbXByZXNzbGV2ZWwpKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBpZiAoY29tcHJlc3NsZXZlbCA8IDEgfHwgY29tcHJlc3NsZXZlbCA+IDkpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiY29tcHJlc3NsZXZlbCBtdXN0IGJlIGJldHdlZW4gMSBhbmQgOSIpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotI2lmZGVmIFdJVEhfVEhSRUFECi0gICAgc2VsZi0+bG9jayA9IFB5VGhyZWFkX2FsbG9jYXRlX2xvY2soKTsKLSAgICBpZiAoIXNlbGYtPmxvY2spIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX01lbW9yeUVycm9yLCAidW5hYmxlIHRvIGFsbG9jYXRlIGxvY2siKTsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIG1lbXNldCgmc2VsZi0+YnpzLCAwLCBzaXplb2YoYnpfc3RyZWFtKSk7Ci0gICAgYnplcnJvciA9IEJaMl9iekNvbXByZXNzSW5pdCgmc2VsZi0+YnpzLCBjb21wcmVzc2xldmVsLCAwLCAwKTsKLSAgICBpZiAoYnplcnJvciAhPSBCWl9PSykgewotICAgICAgICBVdGlsX0NhdGNoQloyRXJyb3IoYnplcnJvcik7Ci0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotCi0gICAgc2VsZi0+cnVubmluZyA9IDE7Ci0KLSAgICByZXR1cm4gMDsKLWVycm9yOgotI2lmZGVmIFdJVEhfVEhSRUFECi0gICAgaWYgKHNlbGYtPmxvY2spIHsKLSAgICAgICAgUHlUaHJlYWRfZnJlZV9sb2NrKHNlbGYtPmxvY2spOwotICAgICAgICBzZWxmLT5sb2NrID0gTlVMTDsKLSAgICB9Ci0jZW5kaWYKLSAgICByZXR1cm4gLTE7Ci19Ci0KLXN0YXRpYyB2b2lkCi1CWjJDb21wX2RlYWxsb2MoQloyQ29tcE9iamVjdCAqc2VsZikKLXsKLSNpZmRlZiBXSVRIX1RIUkVBRAotICAgIGlmIChzZWxmLT5sb2NrKQotICAgICAgICBQeVRocmVhZF9mcmVlX2xvY2soc2VsZi0+bG9jayk7Ci0jZW5kaWYKLSAgICBCWjJfYnpDb21wcmVzc0VuZCgmc2VsZi0+YnpzKTsKLSAgICBQeV9UWVBFKHNlbGYpLT50cF9mcmVlKChQeU9iamVjdCAqKXNlbGYpOwotfQotCi0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwotLyogQloyQ29tcF9UeXBlIGRlZmluaXRpb24uICovCi0KLVB5RG9jX1NUUlZBUihCWjJDb21wX19kb2NfXywKLSJCWjJDb21wcmVzc29yKFtjb21wcmVzc2xldmVsPTldKSAtPiBjb21wcmVzc29yIG9iamVjdFxuXAotXG5cCi1DcmVhdGUgYSBuZXcgY29tcHJlc3NvciBvYmplY3QuIFRoaXMgb2JqZWN0IG1heSBiZSB1c2VkIHRvIGNvbXByZXNzXG5cCi1kYXRhIHNlcXVlbnRpYWxseS4gSWYgeW91IHdhbnQgdG8gY29tcHJlc3MgZGF0YSBpbiBvbmUgc2hvdCwgdXNlIHRoZVxuXAotY29tcHJlc3MoKSBmdW5jdGlvbiBpbnN0ZWFkLiBUaGUgY29tcHJlc3NsZXZlbCBwYXJhbWV0ZXIsIGlmIGdpdmVuLFxuXAotbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDEgYW5kIDkuXG5cCi0iKTsKLQotc3RhdGljIFB5VHlwZU9iamVjdCBCWjJDb21wX1R5cGUgPSB7Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi0gICAgImJ6Mi5CWjJDb21wcmVzc29yIiwgICAgICAgIC8qdHBfbmFtZSovCi0gICAgc2l6ZW9mKEJaMkNvbXBPYmplY3QpLCAgICAgIC8qdHBfYmFzaWNzaXplKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVtc2l6ZSovCi0gICAgKGRlc3RydWN0b3IpQloyQ29tcF9kZWFsbG9jLCAvKnRwX2RlYWxsb2MqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3ByaW50Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9nZXRhdHRyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yZXNlcnZlZCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcmVwciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbnVtYmVyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19zZXF1ZW5jZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbWFwcGluZyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaGFzaCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jYWxsKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX3N0ciovCi0gICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsLyp0cF9nZXRhdHRybyovCi0gICAgUHlPYmplY3RfR2VuZXJpY1NldEF0dHIsLyp0cF9zZXRhdHRybyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19idWZmZXIqLwotICAgIFB5X1RQRkxBR1NfREVGQVVMVHxQeV9UUEZMQUdTX0JBU0VUWVBFLCAvKnRwX2ZsYWdzKi8KLSAgICBCWjJDb21wX19kb2NfXywgICAgICAgICAvKnRwX2RvYyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF90cmF2ZXJzZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jbGVhciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yaWNoY29tcGFyZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF93ZWFrbGlzdG9mZnNldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZXJuZXh0Ki8KLSAgICBCWjJDb21wX21ldGhvZHMsICAgICAgICAvKnRwX21ldGhvZHMqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qdHBfbWVtYmVycyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9nZXRzZXQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYmFzZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kaWN0Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2Rlc2NyX2dldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kZXNjcl9zZXQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZGljdG9mZnNldCovCi0gICAgKGluaXRwcm9jKUJaMkNvbXBfaW5pdCwgLyp0cF9pbml0Ki8KLSAgICBQeVR5cGVfR2VuZXJpY0FsbG9jLCAgICAvKnRwX2FsbG9jKi8KLSAgICBQeVR5cGVfR2VuZXJpY05ldywgICAgICAvKnRwX25ldyovCi0gICAgUHlPYmplY3RfRnJlZSwgICAgICAgICAgLyp0cF9mcmVlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2lzX2djKi8KLX07Ci0KLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi0vKiBNZW1iZXJzIG9mIEJaMkRlY29tcC4gKi8KLQotI3VuZGVmIE9GRgotI2RlZmluZSBPRkYoeCkgb2Zmc2V0b2YoQloyRGVjb21wT2JqZWN0LCB4KQotCi1zdGF0aWMgUHlNZW1iZXJEZWYgQloyRGVjb21wX21lbWJlcnNbXSA9IHsKLSAgICB7InVudXNlZF9kYXRhIiwgVF9PQkpFQ1QsIE9GRih1bnVzZWRfZGF0YSksIFJFQURPTkxZfSwKLSAgICB7TlVMTH0gICAgICAvKiBTZW50aW5lbCAqLwotfTsKLQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLS8qIE1ldGhvZHMgb2YgQloyRGVjb21wLiAqLwotCi1QeURvY19TVFJWQVIoQloyRGVjb21wX2RlY29tcHJlc3NfX2RvY19fLAotImRlY29tcHJlc3MoZGF0YSkgLT4gc3RyaW5nXG5cCi1cblwKLVByb3ZpZGUgbW9yZSBkYXRhIHRvIHRoZSBkZWNvbXByZXNzb3Igb2JqZWN0LiBJdCB3aWxsIHJldHVybiBjaHVua3NcblwKLW9mIGRlY29tcHJlc3NlZCBkYXRhIHdoZW5ldmVyIHBvc3NpYmxlLiBJZiB5b3UgdHJ5IHRvIGRlY29tcHJlc3MgZGF0YVxuXAotYWZ0ZXIgdGhlIGVuZCBvZiBzdHJlYW0gaXMgZm91bmQsIEVPRkVycm9yIHdpbGwgYmUgcmFpc2VkLiBJZiBhbnkgZGF0YVxuXAotd2FzIGZvdW5kIGFmdGVyIHRoZSBlbmQgb2Ygc3RyZWFtLCBpdCdsbCBiZSBpZ25vcmVkIGFuZCBzYXZlZCBpblxuXAotdW51c2VkX2RhdGEgYXR0cmlidXRlLlxuXAotIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1CWjJEZWNvbXBfZGVjb21wcmVzcyhCWjJEZWNvbXBPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIFB5X2J1ZmZlciBwZGF0YTsKLSAgICBjaGFyICpkYXRhOwotICAgIGludCBkYXRhc2l6ZTsKLSAgICBpbnQgYnVmc2l6ZSA9IFNNQUxMQ0hVTks7Ci0gICAgUFlfTE9OR19MT05HIHRvdGFsb3V0OwotICAgIFB5T2JqZWN0ICpyZXQgPSBOVUxMOwotICAgIGJ6X3N0cmVhbSAqYnpzID0gJnNlbGYtPmJ6czsKLSAgICBpbnQgYnplcnJvcjsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSo6ZGVjb21wcmVzcyIsICZwZGF0YSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGRhdGEgPSBwZGF0YS5idWY7Ci0gICAgZGF0YXNpemUgPSBwZGF0YS5sZW47Ci0KLSAgICBBQ1FVSVJFX0xPQ0soc2VsZik7Ci0gICAgaWYgKCFzZWxmLT5ydW5uaW5nKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19FT0ZFcnJvciwgImVuZCBvZiBzdHJlYW0gd2FzICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxyZWFkeSBmb3VuZCIpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIHJldCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgYnVmc2l6ZSk7Ci0gICAgaWYgKCFyZXQpCi0gICAgICAgIGdvdG8gZXJyb3I7Ci0KLSAgICBienMtPm5leHRfaW4gPSBkYXRhOwotICAgIGJ6cy0+YXZhaWxfaW4gPSBkYXRhc2l6ZTsKLSAgICBienMtPm5leHRfb3V0ID0gQlVGKHJldCk7Ci0gICAgYnpzLT5hdmFpbF9vdXQgPSBidWZzaXplOwotCi0gICAgdG90YWxvdXQgPSBCWlNfVE9UQUxfT1VUKGJ6cyk7Ci0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgYnplcnJvciA9IEJaMl9iekRlY29tcHJlc3MoYnpzKTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgaWYgKGJ6ZXJyb3IgPT0gQlpfU1RSRUFNX0VORCkgewotICAgICAgICAgICAgaWYgKGJ6cy0+YXZhaWxfaW4gIT0gMCkgewotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihzZWxmLT51bnVzZWRfZGF0YSk7Ci0gICAgICAgICAgICAgICAgc2VsZi0+dW51c2VkX2RhdGEgPQotICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKGJ6cy0+bmV4dF9pbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnpzLT5hdmFpbF9pbik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZWxmLT5ydW5uaW5nID0gMDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGlmIChiemVycm9yICE9IEJaX09LKSB7Ci0gICAgICAgICAgICBVdGlsX0NhdGNoQloyRXJyb3IoYnplcnJvcik7Ci0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICB9Ci0gICAgICAgIGlmIChienMtPmF2YWlsX2luID09IDApCi0gICAgICAgICAgICBicmVhazsgLyogbm8gbW9yZSBpbnB1dCBkYXRhICovCi0gICAgICAgIGlmIChienMtPmF2YWlsX291dCA9PSAwKSB7Ci0gICAgICAgICAgICBidWZzaXplID0gVXRpbF9OZXdCdWZmZXJTaXplKGJ1ZnNpemUpOwotICAgICAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZSgmcmV0LCBidWZzaXplKSA8IDApIHsKLSAgICAgICAgICAgICAgICBCWjJfYnpEZWNvbXByZXNzRW5kKGJ6cyk7Ci0gICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJ6cy0+bmV4dF9vdXQgPSBCVUYocmV0KTsKLSAgICAgICAgICAgIGJ6cy0+bmV4dF9vdXQgPSBCVUYocmV0KSArIChCWlNfVE9UQUxfT1VUKGJ6cykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtIHRvdGFsb3V0KTsKLSAgICAgICAgICAgIGJ6cy0+YXZhaWxfb3V0ID0gYnVmc2l6ZSAtIChienMtPm5leHRfb3V0IC0gQlVGKHJldCkpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGJ6cy0+YXZhaWxfb3V0ICE9IDApIHsKLSAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZSgmcmV0LAotICAgICAgICAgICAgICAgICAgICAoUHlfc3NpemVfdCkoQlpTX1RPVEFMX09VVChienMpIC0gdG90YWxvdXQpKSA8IDApCi0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIFJFTEVBU0VfTE9DSyhzZWxmKTsKLSAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwZGF0YSk7Ci0gICAgcmV0dXJuIHJldDsKLQotZXJyb3I6Ci0gICAgUkVMRUFTRV9MT0NLKHNlbGYpOwotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBkYXRhKTsKLSAgICBQeV9YREVDUkVGKHJldCk7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLXN0YXRpYyBQeU1ldGhvZERlZiBCWjJEZWNvbXBfbWV0aG9kc1tdID0gewotICAgIHsiZGVjb21wcmVzcyIsIChQeUNGdW5jdGlvbilCWjJEZWNvbXBfZGVjb21wcmVzcywgTUVUSF9WQVJBUkdTLCBCWjJEZWNvbXBfZGVjb21wcmVzc19fZG9jX199LAotICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCi19OwotCi0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwotLyogU2xvdCBkZWZpbml0aW9ucyBmb3IgQloyRGVjb21wX1R5cGUuICovCi0KLXN0YXRpYyBpbnQKLUJaMkRlY29tcF9pbml0KEJaMkRlY29tcE9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCi17Ci0gICAgaW50IGJ6ZXJyb3I7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIjpCWjJEZWNvbXByZXNzb3IiKSkKLSAgICAgICAgcmV0dXJuIC0xOwotCi0jaWZkZWYgV0lUSF9USFJFQUQKLSAgICBzZWxmLT5sb2NrID0gUHlUaHJlYWRfYWxsb2NhdGVfbG9jaygpOwotICAgIGlmICghc2VsZi0+bG9jaykgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTWVtb3J5RXJyb3IsICJ1bmFibGUgdG8gYWxsb2NhdGUgbG9jayIpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLSNlbmRpZgotCi0gICAgc2VsZi0+dW51c2VkX2RhdGEgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKCIiLCAwKTsKLSAgICBpZiAoIXNlbGYtPnVudXNlZF9kYXRhKQotICAgICAgICBnb3RvIGVycm9yOwotCi0gICAgbWVtc2V0KCZzZWxmLT5ienMsIDAsIHNpemVvZihiel9zdHJlYW0pKTsKLSAgICBiemVycm9yID0gQloyX2J6RGVjb21wcmVzc0luaXQoJnNlbGYtPmJ6cywgMCwgMCk7Ci0gICAgaWYgKGJ6ZXJyb3IgIT0gQlpfT0spIHsKLSAgICAgICAgVXRpbF9DYXRjaEJaMkVycm9yKGJ6ZXJyb3IpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIHNlbGYtPnJ1bm5pbmcgPSAxOwotCi0gICAgcmV0dXJuIDA7Ci0KLWVycm9yOgotI2lmZGVmIFdJVEhfVEhSRUFECi0gICAgaWYgKHNlbGYtPmxvY2spIHsKLSAgICAgICAgUHlUaHJlYWRfZnJlZV9sb2NrKHNlbGYtPmxvY2spOwotICAgICAgICBzZWxmLT5sb2NrID0gTlVMTDsKLSAgICB9Ci0jZW5kaWYKLSAgICBQeV9DTEVBUihzZWxmLT51bnVzZWRfZGF0YSk7Ci0gICAgcmV0dXJuIC0xOwotfQotCi1zdGF0aWMgdm9pZAotQloyRGVjb21wX2RlYWxsb2MoQloyRGVjb21wT2JqZWN0ICpzZWxmKQotewotI2lmZGVmIFdJVEhfVEhSRUFECi0gICAgaWYgKHNlbGYtPmxvY2spCi0gICAgICAgIFB5VGhyZWFkX2ZyZWVfbG9jayhzZWxmLT5sb2NrKTsKLSNlbmRpZgotICAgIFB5X1hERUNSRUYoc2VsZi0+dW51c2VkX2RhdGEpOwotICAgIEJaMl9iekRlY29tcHJlc3NFbmQoJnNlbGYtPmJ6cyk7Ci0gICAgUHlfVFlQRShzZWxmKS0+dHBfZnJlZSgoUHlPYmplY3QgKilzZWxmKTsKLX0KLQotCi0vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8KLS8qIEJaMkRlY29tcF9UeXBlIGRlZmluaXRpb24uICovCi0KLVB5RG9jX1NUUlZBUihCWjJEZWNvbXBfX2RvY19fLAotIkJaMkRlY29tcHJlc3NvcigpIC0+IGRlY29tcHJlc3NvciBvYmplY3RcblwKLVxuXAotQ3JlYXRlIGEgbmV3IGRlY29tcHJlc3NvciBvYmplY3QuIFRoaXMgb2JqZWN0IG1heSBiZSB1c2VkIHRvIGRlY29tcHJlc3NcblwKLWRhdGEgc2VxdWVudGlhbGx5LiBJZiB5b3Ugd2FudCB0byBkZWNvbXByZXNzIGRhdGEgaW4gb25lIHNob3QsIHVzZSB0aGVcblwKLWRlY29tcHJlc3MoKSBmdW5jdGlvbiBpbnN0ZWFkLlxuXAotIik7Ci0KLXN0YXRpYyBQeVR5cGVPYmplY3QgQloyRGVjb21wX1R5cGUgPSB7Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi0gICAgImJ6Mi5CWjJEZWNvbXByZXNzb3IiLCAgICAgIC8qdHBfbmFtZSovCi0gICAgc2l6ZW9mKEJaMkRlY29tcE9iamVjdCksIC8qdHBfYmFzaWNzaXplKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVtc2l6ZSovCi0gICAgKGRlc3RydWN0b3IpQloyRGVjb21wX2RlYWxsb2MsIC8qdHBfZGVhbGxvYyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcHJpbnQqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2dldGF0dHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3NldGF0dHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3Jlc2VydmVkKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yZXByKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19udW1iZXIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX3NlcXVlbmNlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19tYXBwaW5nKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9oYXNoKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2NhbGwqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qdHBfc3RyKi8KLSAgICBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwvKnRwX2dldGF0dHJvKi8KLSAgICBQeU9iamVjdF9HZW5lcmljU2V0QXR0ciwvKnRwX3NldGF0dHJvKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX2J1ZmZlciovCi0gICAgUHlfVFBGTEFHU19ERUZBVUxUfFB5X1RQRkxBR1NfQkFTRVRZUEUsIC8qdHBfZmxhZ3MqLwotICAgIEJaMkRlY29tcF9fZG9jX18sICAgICAgIC8qdHBfZG9jKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX3RyYXZlcnNlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2NsZWFyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX3JpY2hjb21wYXJlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX3dlYWtsaXN0b2Zmc2V0Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZXIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qdHBfaXRlcm5leHQqLwotICAgIEJaMkRlY29tcF9tZXRob2RzLCAgICAgIC8qdHBfbWV0aG9kcyovCi0gICAgQloyRGVjb21wX21lbWJlcnMsICAgICAgLyp0cF9tZW1iZXJzKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2dldHNldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9iYXNlKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2RpY3QqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZGVzY3JfZ2V0Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKnRwX2Rlc2NyX3NldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kaWN0b2Zmc2V0Ki8KLSAgICAoaW5pdHByb2MpQloyRGVjb21wX2luaXQsIC8qdHBfaW5pdCovCi0gICAgUHlUeXBlX0dlbmVyaWNBbGxvYywgICAgLyp0cF9hbGxvYyovCi0gICAgUHlUeXBlX0dlbmVyaWNOZXcsICAgICAgLyp0cF9uZXcqLwotICAgIFB5T2JqZWN0X0ZyZWUsICAgICAgICAgIC8qdHBfZnJlZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pc19nYyovCi19OwotCi0KLS8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLwotLyogTW9kdWxlIGZ1bmN0aW9ucy4gKi8KLQotUHlEb2NfU1RSVkFSKGJ6Ml9jb21wcmVzc19fZG9jX18sCi0iY29tcHJlc3MoZGF0YSBbLCBjb21wcmVzc2xldmVsPTldKSAtPiBzdHJpbmdcblwKLVxuXAotQ29tcHJlc3MgZGF0YSBpbiBvbmUgc2hvdC4gSWYgeW91IHdhbnQgdG8gY29tcHJlc3MgZGF0YSBzZXF1ZW50aWFsbHksXG5cCi11c2UgYW4gaW5zdGFuY2Ugb2YgQloyQ29tcHJlc3NvciBpbnN0ZWFkLiBUaGUgY29tcHJlc3NsZXZlbCBwYXJhbWV0ZXIsIGlmXG5cCi1naXZlbiwgbXVzdCBiZSBhIG51bWJlciBiZXR3ZWVuIDEgYW5kIDkuXG5cCi0iKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLWJ6Ml9jb21wcmVzcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCi17Ci0gICAgaW50IGNvbXByZXNzbGV2ZWw9OTsKLSAgICBQeV9idWZmZXIgcGRhdGE7Ci0gICAgY2hhciAqZGF0YTsKLSAgICBpbnQgZGF0YXNpemU7Ci0gICAgaW50IGJ1ZnNpemU7Ci0gICAgUHlPYmplY3QgKnJldCA9IE5VTEw7Ci0gICAgYnpfc3RyZWFtIF9ienM7Ci0gICAgYnpfc3RyZWFtICpienMgPSAmX2J6czsKLSAgICBpbnQgYnplcnJvcjsKLSAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImRhdGEiLCAiY29tcHJlc3NsZXZlbCIsIDB9OwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAieSp8aSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmcGRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbXByZXNzbGV2ZWwpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBkYXRhID0gcGRhdGEuYnVmOwotICAgIGRhdGFzaXplID0gcGRhdGEubGVuOwotCi0gICAgaWYgKGNvbXByZXNzbGV2ZWwgPCAxIHx8IGNvbXByZXNzbGV2ZWwgPiA5KSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgImNvbXByZXNzbGV2ZWwgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDkiKTsKLSAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmcGRhdGEpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICAvKiBDb25mb3JtaW5nIHRvIGJ6MiBtYW51YWwsIHRoaXMgaXMgbGFyZ2UgZW5vdWdoIHRvIGZpdCBjb21wcmVzc2VkCi0gICAgICogZGF0YSBpbiBvbmUgc2hvdC4gV2Ugd2lsbCBjaGVjayBpdCBsYXRlciBhbnl3YXkuICovCi0gICAgYnVmc2l6ZSA9IGRhdGFzaXplICsgKGRhdGFzaXplLzEwMCsxKSArIDYwMDsKLQotICAgIHJldCA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgYnVmc2l6ZSk7Ci0gICAgaWYgKCFyZXQpIHsKLSAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmcGRhdGEpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBtZW1zZXQoYnpzLCAwLCBzaXplb2YoYnpfc3RyZWFtKSk7Ci0KLSAgICBienMtPm5leHRfaW4gPSBkYXRhOwotICAgIGJ6cy0+YXZhaWxfaW4gPSBkYXRhc2l6ZTsKLSAgICBienMtPm5leHRfb3V0ID0gQlVGKHJldCk7Ci0gICAgYnpzLT5hdmFpbF9vdXQgPSBidWZzaXplOwotCi0gICAgYnplcnJvciA9IEJaMl9iekNvbXByZXNzSW5pdChienMsIGNvbXByZXNzbGV2ZWwsIDAsIDApOwotICAgIGlmIChiemVycm9yICE9IEJaX09LKSB7Ci0gICAgICAgIFV0aWxfQ2F0Y2hCWjJFcnJvcihiemVycm9yKTsKLSAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmcGRhdGEpOwotICAgICAgICBQeV9ERUNSRUYocmV0KTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgZm9yICg7OykgewotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgIGJ6ZXJyb3IgPSBCWjJfYnpDb21wcmVzcyhienMsIEJaX0ZJTklTSCk7Ci0gICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgICAgIGlmIChiemVycm9yID09IEJaX1NUUkVBTV9FTkQpIHsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9IGVsc2UgaWYgKGJ6ZXJyb3IgIT0gQlpfRklOSVNIX09LKSB7Ci0gICAgICAgICAgICBCWjJfYnpDb21wcmVzc0VuZChienMpOwotICAgICAgICAgICAgVXRpbF9DYXRjaEJaMkVycm9yKGJ6ZXJyb3IpOwotICAgICAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmcGRhdGEpOwotICAgICAgICAgICAgUHlfREVDUkVGKHJldCk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBpZiAoYnpzLT5hdmFpbF9vdXQgPT0gMCkgewotICAgICAgICAgICAgYnVmc2l6ZSA9IFV0aWxfTmV3QnVmZmVyU2l6ZShidWZzaXplKTsKLSAgICAgICAgICAgIGlmIChfUHlCeXRlc19SZXNpemUoJnJldCwgYnVmc2l6ZSkgPCAwKSB7Ci0gICAgICAgICAgICAgICAgQloyX2J6Q29tcHJlc3NFbmQoYnpzKTsKLSAgICAgICAgICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwZGF0YSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBienMtPm5leHRfb3V0ID0gQlVGKHJldCkgKyBCWlNfVE9UQUxfT1VUKGJ6cyk7Ci0gICAgICAgICAgICBienMtPmF2YWlsX291dCA9IGJ1ZnNpemUgLSAoYnpzLT5uZXh0X291dCAtIEJVRihyZXQpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChienMtPmF2YWlsX291dCAhPSAwKSB7Ci0gICAgICAgIGlmIChfUHlCeXRlc19SZXNpemUoJnJldCwgKFB5X3NzaXplX3QpQlpTX1RPVEFMX09VVChienMpKSA8IDApIHsKLSAgICAgICAgICAgIHJldCA9IE5VTEw7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgQloyX2J6Q29tcHJlc3NFbmQoYnpzKTsKLQotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBkYXRhKTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1QeURvY19TVFJWQVIoYnoyX2RlY29tcHJlc3NfX2RvY19fLAotImRlY29tcHJlc3MoZGF0YSkgLT4gZGVjb21wcmVzc2VkIGRhdGFcblwKLVxuXAotRGVjb21wcmVzcyBkYXRhIGluIG9uZSBzaG90LiBJZiB5b3Ugd2FudCB0byBkZWNvbXByZXNzIGRhdGEgc2VxdWVudGlhbGx5LFxuXAotdXNlIGFuIGluc3RhbmNlIG9mIEJaMkRlY29tcHJlc3NvciBpbnN0ZWFkLlxuXAotIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1iejJfZGVjb21wcmVzcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgUHlfYnVmZmVyIHBkYXRhOwotICAgIGNoYXIgKmRhdGE7Ci0gICAgaW50IGRhdGFzaXplOwotICAgIGludCBidWZzaXplID0gU01BTExDSFVOSzsKLSAgICBQeU9iamVjdCAqcmV0OwotICAgIGJ6X3N0cmVhbSBfYnpzOwotICAgIGJ6X3N0cmVhbSAqYnpzID0gJl9ienM7Ci0gICAgaW50IGJ6ZXJyb3I7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInkqOmRlY29tcHJlc3MiLCAmcGRhdGEpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBkYXRhID0gcGRhdGEuYnVmOwotICAgIGRhdGFzaXplID0gcGRhdGEubGVuOwotCi0gICAgaWYgKGRhdGFzaXplID09IDApIHsKLSAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmcGRhdGEpOwotICAgICAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgiIiwgMCk7Ci0gICAgfQotCi0gICAgcmV0ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBidWZzaXplKTsKLSAgICBpZiAoIXJldCkgewotICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwZGF0YSk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIG1lbXNldChienMsIDAsIHNpemVvZihiel9zdHJlYW0pKTsKLQotICAgIGJ6cy0+bmV4dF9pbiA9IGRhdGE7Ci0gICAgYnpzLT5hdmFpbF9pbiA9IGRhdGFzaXplOwotICAgIGJ6cy0+bmV4dF9vdXQgPSBCVUYocmV0KTsKLSAgICBienMtPmF2YWlsX291dCA9IGJ1ZnNpemU7Ci0KLSAgICBiemVycm9yID0gQloyX2J6RGVjb21wcmVzc0luaXQoYnpzLCAwLCAwKTsKLSAgICBpZiAoYnplcnJvciAhPSBCWl9PSykgewotICAgICAgICBVdGlsX0NhdGNoQloyRXJyb3IoYnplcnJvcik7Ci0gICAgICAgIFB5X0RFQ1JFRihyZXQpOwotICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwZGF0YSk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGZvciAoOzspIHsKLSAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICBiemVycm9yID0gQloyX2J6RGVjb21wcmVzcyhienMpOwotICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgICAgICBpZiAoYnplcnJvciA9PSBCWl9TVFJFQU1fRU5EKSB7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfSBlbHNlIGlmIChiemVycm9yICE9IEJaX09LKSB7Ci0gICAgICAgICAgICBCWjJfYnpEZWNvbXByZXNzRW5kKGJ6cyk7Ci0gICAgICAgICAgICBVdGlsX0NhdGNoQloyRXJyb3IoYnplcnJvcik7Ci0gICAgICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwZGF0YSk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYocmV0KTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGlmIChienMtPmF2YWlsX2luID09IDApIHsKLSAgICAgICAgICAgIEJaMl9iekRlY29tcHJlc3NFbmQoYnpzKTsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb3VsZG4ndCBmaW5kIGVuZCBvZiBzdHJlYW0iKTsKLSAgICAgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBkYXRhKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihyZXQpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGJ6cy0+YXZhaWxfb3V0ID09IDApIHsKLSAgICAgICAgICAgIGJ1ZnNpemUgPSBVdGlsX05ld0J1ZmZlclNpemUoYnVmc2l6ZSk7Ci0gICAgICAgICAgICBpZiAoX1B5Qnl0ZXNfUmVzaXplKCZyZXQsIGJ1ZnNpemUpIDwgMCkgewotICAgICAgICAgICAgICAgIEJaMl9iekRlY29tcHJlc3NFbmQoYnpzKTsKLSAgICAgICAgICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwZGF0YSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBienMtPm5leHRfb3V0ID0gQlVGKHJldCkgKyBCWlNfVE9UQUxfT1VUKGJ6cyk7Ci0gICAgICAgICAgICBienMtPmF2YWlsX291dCA9IGJ1ZnNpemUgLSAoYnpzLT5uZXh0X291dCAtIEJVRihyZXQpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChienMtPmF2YWlsX291dCAhPSAwKSB7Ci0gICAgICAgIGlmIChfUHlCeXRlc19SZXNpemUoJnJldCwgKFB5X3NzaXplX3QpQlpTX1RPVEFMX09VVChienMpKSA8IDApIHsKLSAgICAgICAgICAgIHJldCA9IE5VTEw7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgQloyX2J6RGVjb21wcmVzc0VuZChienMpOwotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBkYXRhKTsKLQotICAgIHJldHVybiByZXQ7Ci19Ci0KLXN0YXRpYyBQeU1ldGhvZERlZiBiejJfbWV0aG9kc1tdID0gewotICAgIHsiY29tcHJlc3MiLCAoUHlDRnVuY3Rpb24pIGJ6Ml9jb21wcmVzcywgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCi0gICAgICAgIGJ6Ml9jb21wcmVzc19fZG9jX199LAotICAgIHsiZGVjb21wcmVzcyIsIChQeUNGdW5jdGlvbikgYnoyX2RlY29tcHJlc3MsIE1FVEhfVkFSQVJHUywKLSAgICAgICAgYnoyX2RlY29tcHJlc3NfX2RvY19ffSwKLSAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwotfTsKLQotLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCi0vKiBJbml0aWFsaXphdGlvbiBmdW5jdGlvbi4gKi8KLQotUHlEb2NfU1RSVkFSKGJ6Ml9fZG9jX18sCi0iVGhlIHB5dGhvbiBiejIgbW9kdWxlIHByb3ZpZGVzIGEgY29tcHJlaGVuc2l2ZSBpbnRlcmZhY2UgZm9yXG5cCi10aGUgYnoyIGNvbXByZXNzaW9uIGxpYnJhcnkuIEl0IGltcGxlbWVudHMgYSBjb21wbGV0ZSBmaWxlXG5cCi1pbnRlcmZhY2UsIG9uZSBzaG90IChkZSljb21wcmVzc2lvbiBmdW5jdGlvbnMsIGFuZCB0eXBlcyBmb3JcblwKLXNlcXVlbnRpYWwgKGRlKWNvbXByZXNzaW9uLlxuXAotIik7Ci0KLQotc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiBiejJtb2R1bGUgPSB7Ci0gICAgUHlNb2R1bGVEZWZfSEVBRF9JTklULAotICAgICJiejIiLAotICAgIGJ6Ml9fZG9jX18sCi0gICAgLTEsCi0gICAgYnoyX21ldGhvZHMsCi0gICAgTlVMTCwKLSAgICBOVUxMLAotICAgIE5VTEwsCi0gICAgTlVMTAotfTsKLQotUHlNT0RJTklUX0ZVTkMKLVB5SW5pdF9iejIodm9pZCkKLXsKLSAgICBQeU9iamVjdCAqbTsKLQotICAgIGlmIChQeVR5cGVfUmVhZHkoJkJaMkZpbGVfVHlwZSkgPCAwKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZCWjJDb21wX1R5cGUpIDwgMCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKFB5VHlwZV9SZWFkeSgmQloyRGVjb21wX1R5cGUpIDwgMCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBtID0gUHlNb2R1bGVfQ3JlYXRlKCZiejJtb2R1bGUpOwotICAgIGlmIChtID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJfX2F1dGhvcl9fIiwgUHlVbmljb2RlX0Zyb21TdHJpbmcoX19hdXRob3JfXykpOwotCi0gICAgUHlfSU5DUkVGKCZCWjJGaWxlX1R5cGUpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiQloyRmlsZSIsIChQeU9iamVjdCAqKSZCWjJGaWxlX1R5cGUpOwotCi0gICAgUHlfSU5DUkVGKCZCWjJDb21wX1R5cGUpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiQloyQ29tcHJlc3NvciIsIChQeU9iamVjdCAqKSZCWjJDb21wX1R5cGUpOwotCi0gICAgUHlfSU5DUkVGKCZCWjJEZWNvbXBfVHlwZSk7Ci0gICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJCWjJEZWNvbXByZXNzb3IiLCAoUHlPYmplY3QgKikmQloyRGVjb21wX1R5cGUpOwotICAgIHJldHVybiBtOwotfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19jbi5jIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19jbi5jCmluZGV4IGFiNGU2NTkuLjllOWU5NmMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfY24uYworKysgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2NuLmMKQEAgLTg1LDcgKzg1LDcgQEAKICAgICAgICAgVFJZTUFQX0RFQyhnYjIzMTIsICoqb3V0YnVmLCBjIF4gMHg4MCwgSU4yIF4gMHg4MCkgewogICAgICAgICAgICAgTkVYVCgyLCAxKQogICAgICAgICB9Ci0gICAgICAgIGVsc2UgcmV0dXJuIDI7CisgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CkBAIC0xNDEsNyArMTQxLDcgQEAKICAgICAgICAgUkVRVUlSRV9JTkJVRigyKQogCiAgICAgICAgIEdCS19ERUNPREUoYywgSU4yLCAqKm91dGJ1ZikKLSAgICAgICAgZWxzZSByZXR1cm4gMjsKKyAgICAgICAgZWxzZSByZXR1cm4gMTsKIAogICAgICAgICBORVhUKDIsIDEpCiAgICAgfQpAQCAtMjY3LDcgKzI2Nyw3IEBACiAgICAgICAgICAgICBjMyA9IElOMzsKICAgICAgICAgICAgIGM0ID0gSU40OwogICAgICAgICAgICAgaWYgKGMgPCAweDgxIHx8IGMzIDwgMHg4MSB8fCBjNCA8IDB4MzAgfHwgYzQgPiAweDM5KQotICAgICAgICAgICAgICAgIHJldHVybiA0OworICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgYyAtPSAweDgxOyAgYzIgLT0gMHgzMDsKICAgICAgICAgICAgIGMzIC09IDB4ODE7IGM0IC09IDB4MzA7CiAKQEAgLTI5MiwxMiArMjkyLDEyIEBACiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiA0OworICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KIAogICAgICAgICBHQktfREVDT0RFKGMsIGMyLCAqKm91dGJ1ZikKICAgICAgICAgZWxzZSBUUllNQVBfREVDKGdiMTgwMzBleHQsICoqb3V0YnVmLCBjLCBjMik7Ci0gICAgICAgIGVsc2UgcmV0dXJuIDI7CisgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAKICAgICAgICAgTkVYVCgyLCAxKQogICAgIH0KQEAgLTQwMCw3ICs0MDAsNyBAQAogICAgICAgICAgICAgZWxzZSBpZiAoYzIgPT0gJ1xuJykKICAgICAgICAgICAgICAgICA7IC8qIGxpbmUtY29udGludWF0aW9uICovCiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICBORVhUKDIsIDApOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTQxOSw3ICs0MTksNyBAQAogICAgICAgICAgICAgICAgIE5FWFQoMiwgMSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19oay5jIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19oay5jCmluZGV4IDU1OGE0MmYuLmQzYWQwNGIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfaGsuYworKysgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2hrLmMKQEAgLTE2MSw3ICsxNjEsNyBAQAogICAgICAgICBjYXNlIDB4ODg2NDogV1JJVEUyKDB4MDBjYSwgMHgwMzBjKTsgYnJlYWs7CiAgICAgICAgIGNhc2UgMHg4OGEzOiBXUklURTIoMHgwMGVhLCAweDAzMDQpOyBicmVhazsKICAgICAgICAgY2FzZSAweDg4YTU6IFdSSVRFMigweDAwZWEsIDB4MDMwYyk7IGJyZWFrOwotICAgICAgICBkZWZhdWx0OiByZXR1cm4gMjsKKyAgICAgICAgZGVmYXVsdDogcmV0dXJuIDE7CiAgICAgICAgIH0KIAogICAgICAgICBORVhUKDIsIDIpIC8qIGFsbCBkZWNvZGVkIGNvZGVwb2ludHMgYXJlIHBhaXJzLCBhYm92ZS4gKi8KZGlmZiAtLWdpdCBhL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfaXNvMjAyMi5jIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19pc28yMDIyLmMKaW5kZXggMjVjMWEzNi4uY2JjMTU0MiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19pc28yMDIyLmMKKysrIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19pc28yMDIyLmMKQEAgLTEyMyw3ICsxMjMsNyBAQAogCiBDT0RFQ19JTklUKGlzbzIwMjIpCiB7Ci0gICAgY29uc3Qgc3RydWN0IGlzbzIwMjJfZGVzaWduYXRpb24gKmRlc2lnID0gQ09ORklHX0RFU0lHTkFUSU9OUzsKKyAgICBjb25zdCBzdHJ1Y3QgaXNvMjAyMl9kZXNpZ25hdGlvbiAqZGVzaWc7CiAgICAgZm9yIChkZXNpZyA9IENPTkZJR19ERVNJR05BVElPTlM7IGRlc2lnLT5tYXJrOyBkZXNpZysrKQogICAgICAgICBpZiAoZGVzaWctPmluaXRpYWxpemVyICE9IE5VTEwgJiYgZGVzaWctPmluaXRpYWxpemVyKCkgIT0gMCkKICAgICAgICAgICAgIHJldHVybiAtMTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfanAuYyBiL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfanAuYwppbmRleCBhMDVlMDFiLi5hNTAwNjk2IDEwMDY0NAotLS0gYS9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2pwLmMKKysrIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19qcC5jCkBAIC0xMTIsNyArMTEyLDcgQEAKICAgICAgICAgVFJZTUFQX0RFQyhjcDkzMmV4dCwgKipvdXRidWYsIGMsIGMyKTsKICAgICAgICAgZWxzZSBpZiAoKGMgPj0gMHg4MSAmJiBjIDw9IDB4OWYpIHx8IChjID49IDB4ZTAgJiYgYyA8PSAweGVhKSl7CiAgICAgICAgICAgICBpZiAoYzIgPCAweDQwIHx8IChjMiA+IDB4N2UgJiYgYzIgPCAweDgwKSB8fCBjMiA+IDB4ZmMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAKICAgICAgICAgICAgIGMgPSAoYyA8IDB4ZTAgPyBjIC0gMHg4MSA6IGMgLSAweGMxKTsKICAgICAgICAgICAgIGMyID0gKGMyIDwgMHg4MCA/IGMyIC0gMHg0MCA6IGMyIC0gMHg0MSk7CkBAIC0xMjAsNyArMTIwLDcgQEAKICAgICAgICAgICAgIGMyID0gKGMyIDwgMHg1ZSA/IGMyIDogYzIgLSAweDVlKSArIDB4MjE7CiAKICAgICAgICAgICAgIFRSWU1BUF9ERUMoamlzeDAyMDgsICoqb3V0YnVmLCBjLCBjMik7Ci0gICAgICAgICAgICBlbHNlIHJldHVybiAyOworICAgICAgICAgICAgZWxzZSByZXR1cm4gMTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChjID49IDB4ZjAgJiYgYyA8PSAweGY5KSB7CiAgICAgICAgICAgICBpZiAoKGMyID49IDB4NDAgJiYgYzIgPD0gMHg3ZSkgfHwKQEAgLTEyOCwxMCArMTI4LDEwIEBACiAgICAgICAgICAgICAgICAgT1VUMSgweGUwMDAgKyAxODggKiAoYyAtIDB4ZjApICsKICAgICAgICAgICAgICAgICAgICAgIChjMiA8IDB4ODAgPyBjMiAtIDB4NDAgOiBjMiAtIDB4NDEpKQogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgcmV0dXJuIDE7CiAKICAgICAgICAgTkVYVCgyLCAxKQogICAgIH0KQEAgLTI1Niw3ICsyNTYsNyBAQAogICAgICAgICAgICAgICAgIE5FWFQoMiwgMSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChjID09IDB4OGYpIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzIsIGMzOwpAQCAtMjc0LDcgKzI3NCw3IEBACiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIFRSWU1BUF9ERUMoamlzeDAyMTIsICoqb3V0YnVmLCBjMiwgYzMpIDsKLSAgICAgICAgICAgIGVsc2UgcmV0dXJuIDM7CisgICAgICAgICAgICBlbHNlIHJldHVybiAxOwogICAgICAgICAgICAgTkVYVCgzLCAxKQogICAgICAgICB9CiAgICAgICAgIGVsc2UgewpAQCAtMzAwLDcgKzMwMCw3IEBACiAgICAgICAgICAgICAgICAgTkVYVCgyLCAyKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSByZXR1cm4gMjsKKyAgICAgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAgICAgICAgICAgICBORVhUKDIsIDEpCiAgICAgICAgIH0KICAgICB9CkBAIC0zODgsNyArMzg4LDcgQEAKICAgICAgICAgICAgICAgICBORVhUKDIsIDEpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoYyA9PSAweDhmKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGMyLCBjMzsKQEAgLTQwMSw3ICs0MDEsNyBAQAogICAgICAgICAgICAgICAgIE5FWFQoMywgMSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gMzsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzI7CkBAIC00MTcsNyArNDE3LDcgQEAKICNlbmRpZgogICAgICAgICAgICAgICAgIFRSWU1BUF9ERUMoamlzeDAyMDgsICoqb3V0YnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYyBeIDB4ODAsIGMyIF4gMHg4MCkgOwotICAgICAgICAgICAgZWxzZSByZXR1cm4gMjsKKyAgICAgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAgICAgICAgICAgICBORVhUKDIsIDEpCiAgICAgICAgIH0KICAgICB9CkBAIC01MDIsNyArNTAyLDcgQEAKICAgICAgICAgICAgIFJFUVVJUkVfSU5CVUYoMikKICAgICAgICAgICAgIGMyID0gSU4yOwogICAgICAgICAgICAgaWYgKGMyIDwgMHg0MCB8fCAoYzIgPiAweDdlICYmIGMyIDwgMHg4MCkgfHwgYzIgPiAweGZjKQotICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgICAgICBjMSA9IChjIDwgMHhlMCA/IGMgLSAweDgxIDogYyAtIDB4YzEpOwogICAgICAgICAgICAgYzIgPSAoYzIgPCAweDgwID8gYzIgLSAweDQwIDogYzIgLSAweDQxKTsKQEAgLTUyMiwxMCArNTIyLDEwIEBACiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICByZXR1cm4gMTsKIAogICAgICAgICBORVhUKDEsIDEpIC8qIEpJUyBYIDAyMDEgKi8KICAgICB9CkBAIC02NDUsNyArNjQ1LDcgQEAKICAgICAgICAgICAgIFJFUVVJUkVfSU5CVUYoMikKICAgICAgICAgICAgIGMyID0gSU4yOwogICAgICAgICAgICAgaWYgKGMyIDwgMHg0MCB8fCAoYzIgPiAweDdlICYmIGMyIDwgMHg4MCkgfHwgYzIgPiAweGZjKQotICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgICAgICBjMSA9IChjIDwgMHhlMCA/IGMgLSAweDgxIDogYyAtIDB4YzEpOwogICAgICAgICAgICAgYzIgPSAoYzIgPCAweDgwID8gYzIgLSAweDQwIDogYzIgLSAweDQxKTsKQEAgLTY3MSw3ICs2NzEsNyBAQAogICAgICAgICAgICAgICAgICAgICBORVhUX09VVCgyKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICBORVhUX0lOKDIpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsgLyogUGxhbmUgMiAqLwpAQCAtNjg5LDEzICs2ODksMTMgQEAKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIE5FWFQoMiwgMSkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgcmV0dXJuIDE7CiAKICAgICAgICAgTkVYVCgxLCAxKSAvKiBKSVMgWCAwMjAxICovCiAgICAgfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19rci5jIGIvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc19rci5jCmluZGV4IDkyNzJlMzYuLmY1Njk3ZGQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3Nfa3IuYworKysgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX2tyLmMKQEAgLTEyMyw3ICsxMjMsNyBAQAogICAgICAgICAgICAgaWYgKCgqaW5idWYpWzJdICE9IEVVQ0tSX0pBTU9fRklSU1RCWVRFIHx8CiAgICAgICAgICAgICAgICAgKCppbmJ1ZilbNF0gIT0gRVVDS1JfSkFNT19GSVJTVEJZVEUgfHwKICAgICAgICAgICAgICAgICAoKmluYnVmKVs2XSAhPSBFVUNLUl9KQU1PX0ZJUlNUQllURSkKLSAgICAgICAgICAgICAgICByZXR1cm4gODsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKIAogICAgICAgICAgICAgYyA9ICgqaW5idWYpWzNdOwogICAgICAgICAgICAgaWYgKDB4YTEgPD0gYyAmJiBjIDw9IDB4YmUpCkBAIC0xNDMsNyArMTQzLDcgQEAKICAgICAgICAgICAgICAgICBqb25nID0gTk9ORTsKIAogICAgICAgICAgICAgaWYgKGNobyA9PSBOT05FIHx8IGp1bmcgPT0gTk9ORSB8fCBqb25nID09IE5PTkUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDg7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAKICAgICAgICAgICAgIE9VVDEoMHhhYzAwICsgY2hvKjU4OCArIGp1bmcqMjggKyBqb25nKTsKICAgICAgICAgICAgIE5FWFQoOCwgMSkKQEAgLTE1Miw3ICsxNTIsNyBAQAogICAgICAgICAgICAgTkVYVCgyLCAxKQogICAgICAgICB9CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogCiAgICAgcmV0dXJuIDA7CkBAIC0yMDgsNyArMjA4LDcgQEAKICAgICAgICAgUkVRVUlSRV9JTkJVRigyKQogICAgICAgICBUUllNQVBfREVDKGtzeDEwMDEsICoqb3V0YnVmLCBjIF4gMHg4MCwgSU4yIF4gMHg4MCk7CiAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhjcDk0OWV4dCwgKipvdXRidWYsIGMsIElOMik7Ci0gICAgICAgIGVsc2UgcmV0dXJuIDI7CisgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAKICAgICAgICAgTkVYVCgyLCAxKQogICAgIH0KQEAgLTM3NSw3ICszNzUsNyBAQAogICAgICAgICAgICAgaV9qb25nID0gam9oYWJpZHhfam9uZ3Nlb25nW2Nfam9uZ107CiAKICAgICAgICAgICAgIGlmIChpX2NobyA9PSBOT05FIHx8IGlfanVuZyA9PSBOT05FIHx8IGlfam9uZyA9PSBOT05FKQotICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgIHJldHVybiAxOwogCiAgICAgICAgICAgICAvKiB3ZSBkb24ndCB1c2UgVSsxMTAwIGhhbmd1bCBqYW1vIHlldC4gKi8KICAgICAgICAgICAgIGlmIChpX2NobyA9PSBGSUxMKSB7CkBAIC0zOTEsNyArMzkxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIE9VVDEoMHgzMTAwIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgam9oYWJqYW1vX2p1bmdzZW9uZ1tjX2p1bmddKQogICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKGlfanVuZyA9PSBGSUxMKSB7CkBAIC0zOTksNyArMzk5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIE9VVDEoMHgzMTAwIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgam9oYWJqYW1vX2Nob3Nlb25nW2NfY2hvXSkKICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBPVVQxKDB4YWMwMCArCkBAIC00MTQsNyArNDE0LDcgQEAKICAgICAgICAgICAgICAgICBjMiA8IDB4MzEgfHwgKGMyID49IDB4ODAgJiYgYzIgPCAweDkxKSB8fAogICAgICAgICAgICAgICAgIChjMiAmIDB4N2YpID09IDB4N2YgfHwKICAgICAgICAgICAgICAgICAoYyA9PSAweGRhICYmIChjMiA+PSAweGExICYmIGMyIDw9IDB4ZDMpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgdDEsIHQyOwogCkBAIC00MjUsNyArNDI1LDcgQEAKICAgICAgICAgICAgICAgICB0MiA9ICh0MiA8IDB4NWUgPyB0MiA6IHQyIC0gMHg1ZSkgKyAweDIxOwogCiAgICAgICAgICAgICAgICAgVFJZTUFQX0RFQyhrc3gxMDAxLCAqKm91dGJ1ZiwgdDEsIHQyKTsKLSAgICAgICAgICAgICAgICBlbHNlIHJldHVybiAyOworICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgTkVYVCgyLCAxKQogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX3R3LmMgYi9Nb2R1bGVzL2Nqa2NvZGVjcy9fY29kZWNzX3R3LmMKaW5kZXggMzhjZjcyMy4uOTE2Mjk4ZCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9jamtjb2RlY3MvX2NvZGVjc190dy5jCisrKyBiL01vZHVsZXMvY2prY29kZWNzL19jb2RlY3NfdHcuYwpAQCAtNTUsNyArNTUsNyBAQAogICAgICAgICBUUllNQVBfREVDKGJpZzUsICoqb3V0YnVmLCBjLCBJTjIpIHsKICAgICAgICAgICAgIE5FWFQoMiwgMSkKICAgICAgICAgfQotICAgICAgICBlbHNlIHJldHVybiAyOworICAgICAgICBlbHNlIHJldHVybiAxOwogICAgIH0KIAogICAgIHJldHVybiAwOwpAQCAtMTA5LDcgKzEwOSw3IEBACiAKICAgICAgICAgVFJZTUFQX0RFQyhjcDk1MGV4dCwgKipvdXRidWYsIGMsIElOMik7CiAgICAgICAgIGVsc2UgVFJZTUFQX0RFQyhiaWc1LCAqKm91dGJ1ZiwgYywgSU4yKTsKLSAgICAgICAgZWxzZSByZXR1cm4gMjsKKyAgICAgICAgZWxzZSByZXR1cm4gMTsKIAogICAgICAgICBORVhUKDIsIDEpCiAgICAgfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9jamtjb2RlY3MvbXVsdGlieXRlY29kZWMuYyBiL01vZHVsZXMvY2prY29kZWNzL211bHRpYnl0ZWNvZGVjLmMKaW5kZXggN2IwNGYwMjAuLmFiYWQyNTEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvY2prY29kZWNzL211bHRpYnl0ZWNvZGVjLmMKKysrIGIvTW9kdWxlcy9jamtjb2RlY3MvbXVsdGlieXRlY29kZWMuYwpAQCAtNDQzLDEwICs0NDMsMTIgQEAKICAgICAgICAgZ290byBlcnJvcmV4aXQ7CiAgICAgfQogCisgICAgaWYgKFB5VW5pY29kZV9Bc1VuaWNvZGUocmV0dW5pKSA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yZXhpdDsKICAgICByZXR1bmlzaXplID0gUHlVbmljb2RlX0dFVF9TSVpFKHJldHVuaSk7CiAgICAgaWYgKHJldHVuaXNpemUgPiAwKSB7CiAgICAgICAgIFJFUVVJUkVfREVDT0RFQlVGRkVSKGJ1ZiwgcmV0dW5pc2l6ZSk7Ci0gICAgICAgIG1lbWNweSgoY2hhciAqKWJ1Zi0+b3V0YnVmLCBQeVVuaWNvZGVfQVNfREFUQShyZXR1bmkpLAorICAgICAgICBtZW1jcHkoKGNoYXIgKilidWYtPm91dGJ1ZiwgUHlVbmljb2RlX0FTX1VOSUNPREUocmV0dW5pKSwKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVuaXNpemUgKiBQeV9VTklDT0RFX1NJWkUpOwogICAgICAgICBidWYtPm91dGJ1ZiArPSByZXR1bmlzaXplOwogICAgIH0KQEAgLTQ4Myw2ICs0ODUsNyBAQAogICAgICAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCAwKTsKIAogICAgIGJ1Zi5leGNvYmogPSBOVUxMOworICAgIGJ1Zi5vdXRvYmogPSBOVUxMOwogICAgIGJ1Zi5pbmJ1ZiA9IGJ1Zi5pbmJ1Zl90b3AgPSAqZGF0YTsKICAgICBidWYuaW5idWZfZW5kID0gYnVmLmluYnVmX3RvcCArIGRhdGFsZW47CiAKQEAgLTU3Myw4ICs1NzYsMTEgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIGRhdGEgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShhcmcpOwotICAgIGRhdGFsZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUoYXJnKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0FzVW5pY29kZUFuZFNpemUoYXJnLCAmZGF0YWxlbik7CisgICAgaWYgKGRhdGEgPT0gTlVMTCkgeworICAgICAgICBQeV9YREVDUkVGKHVjdnQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAKICAgICBlcnJvcmNiID0gaW50ZXJuYWxfZXJyb3JfY2FsbGJhY2soZXJyb3JzKTsKICAgICBpZiAoZXJyb3JjYiA9PSBOVUxMKSB7CkBAIC02MjcsNyArNjMzLDcgQEAKICAgICBpZiAoZGF0YWxlbiA9PSAwKSB7CiAgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBkYXRhKTsKICAgICAgICAgRVJST1JfREVDUkVGKGVycm9yY2IpOwotICAgICAgICByZXR1cm4gbWFrZV90dXBsZShQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgMCksIDApOworICAgICAgICByZXR1cm4gbWFrZV90dXBsZShQeVVuaWNvZGVfTmV3KDAsIDApLCAwKTsKICAgICB9CiAKICAgICBidWYuZXhjb2JqID0gTlVMTDsKQEAgLTYzNyw2ICs2NDMsOCBAQAogICAgIGlmIChidWYub3V0b2JqID09IE5VTEwpCiAgICAgICAgIGdvdG8gZXJyb3JleGl0OwogICAgIGJ1Zi5vdXRidWYgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShidWYub3V0b2JqKTsKKyAgICBpZiAoYnVmLm91dGJ1ZiA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yZXhpdDsKICAgICBidWYub3V0YnVmX2VuZCA9IGJ1Zi5vdXRidWYgKyBQeVVuaWNvZGVfR0VUX1NJWkUoYnVmLm91dG9iaik7CiAKICAgICBpZiAoc2VsZi0+Y29kZWMtPmRlY2luaXQgIT0gTlVMTCAmJgpAQCAtNzQyLDYgKzc1MCw3IEBACiAgICAgUHlPYmplY3QgKnVjdnQsICpyID0gTlVMTDsKICAgICBQeV9VTklDT0RFICppbmJ1ZiwgKmluYnVmX2VuZCwgKmluYnVmX3RtcCA9IE5VTEw7CiAgICAgUHlfc3NpemVfdCBkYXRhbGVuLCBvcmlncGVuZGluZzsKKyAgICB3Y2hhcl90ICpkYXRhOwogCiAgICAgaWYgKFB5VW5pY29kZV9DaGVjayh1bmlzdHIpKQogICAgICAgICB1Y3Z0ID0gTlVMTDsKQEAgLTc1Nyw3ICs3NjYsOSBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgZGF0YWxlbiA9IFB5VW5pY29kZV9HRVRfU0laRSh1bmlzdHIpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfQXNVbmljb2RlQW5kU2l6ZSh1bmlzdHIsICZkYXRhbGVuKTsKKyAgICBpZiAoZGF0YSA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yZXhpdDsKICAgICBvcmlncGVuZGluZyA9IGN0eC0+cGVuZGluZ3NpemU7CiAKICAgICBpZiAob3JpZ3BlbmRpbmcgPiAwKSB7CkBAIC04NDgsNyArODU5LDkgQEAKICAgICAgICAgYnVmLT5vdXRvYmogPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgc2l6ZSk7CiAgICAgICAgIGlmIChidWYtPm91dG9iaiA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBidWYtPm91dGJ1ZiA9IFB5VW5pY29kZV9BU19VTklDT0RFKGJ1Zi0+b3V0b2JqKTsKKyAgICAgICAgYnVmLT5vdXRidWYgPSBQeVVuaWNvZGVfQXNVbmljb2RlKGJ1Zi0+b3V0b2JqKTsKKyAgICAgICAgaWYgKGJ1Zi0+b3V0YnVmID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIGJ1Zi0+b3V0YnVmX2VuZCA9IGJ1Zi0+b3V0YnVmICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKGJ1Zi0+b3V0b2JqKTsKICAgICB9CkBAIC05MDAsMTEgKzkxMywxNyBAQAogc3RhdGljIFB5T2JqZWN0ICoKIG1iaWVuY29kZXJfcmVzZXQoTXVsdGlieXRlSW5jcmVtZW50YWxFbmNvZGVyT2JqZWN0ICpzZWxmKQogewotICAgIGlmIChzZWxmLT5jb2RlYy0+ZGVjcmVzZXQgIT0gTlVMTCAmJgotICAgICAgICBzZWxmLT5jb2RlYy0+ZGVjcmVzZXQoJnNlbGYtPnN0YXRlLCBzZWxmLT5jb2RlYy0+Y29uZmlnKSAhPSAwKQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAvKiBMb25nZXN0IG91dHB1dDogNCBieXRlcyAoYidceDBGXHgxRihCJykgd2l0aCBJU08gMjAyMiAqLworICAgIHVuc2lnbmVkIGNoYXIgYnVmZmVyWzRdLCAqb3V0YnVmOworICAgIFB5X3NzaXplX3QgcjsKKyAgICBpZiAoc2VsZi0+Y29kZWMtPmVuY3Jlc2V0ICE9IE5VTEwpIHsKKyAgICAgICAgb3V0YnVmID0gYnVmZmVyOworICAgICAgICByID0gc2VsZi0+Y29kZWMtPmVuY3Jlc2V0KCZzZWxmLT5zdGF0ZSwgc2VsZi0+Y29kZWMtPmNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0YnVmLCBzaXplb2YoYnVmZmVyKSk7CisgICAgICAgIGlmIChyICE9IDApCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAgICAgc2VsZi0+cGVuZGluZ3NpemUgPSAwOwotCiAgICAgUHlfUkVUVVJOX05PTkU7CiB9CiAKQEAgLTEyNDYsNyArMTI2NSw3IEBACiAgICAgUHlfc3NpemVfdCByc2l6ZSwgZmluYWxzaXplID0gMDsKIAogICAgIGlmIChzaXplaGludCA9PSAwKQotICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIDApOworICAgICAgICByZXR1cm4gUHlVbmljb2RlX05ldygwLCAwKTsKIAogICAgIGJ1Zi5vdXRvYmogPSBidWYuZXhjb2JqID0gTlVMTDsKICAgICBjcmVzID0gTlVMTDsKQEAgLTE1NzIsMTIgKzE1OTEsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdW5pc3RyKQogewogICAgIFB5T2JqZWN0ICpzdHIsICp3cjsKKyAgICBfUHlfSURFTlRJRklFUih3cml0ZSk7CiAKICAgICBzdHIgPSBlbmNvZGVyX2VuY29kZV9zdGF0ZWZ1bChTVEFURUZVTF9FQ1RYKHNlbGYpLCB1bmlzdHIsIDApOwogICAgIGlmIChzdHIgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgd3IgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHNlbGYtPnN0cmVhbSwgIndyaXRlIiwgIk8iLCBzdHIpOworICAgIHdyID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLT5zdHJlYW0sICZQeUlkX3dyaXRlLCAiTyIsIHN0cik7CiAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgaWYgKHdyID09IE5VTEwpCiAgICAgICAgIHJldHVybiAtMTsKQEAgLTE2NDMsNyArMTY2Myw5IEBACiAgICAgYXNzZXJ0KFB5Qnl0ZXNfQ2hlY2socHdydCkpOwogICAgIGlmIChQeUJ5dGVzX1NpemUocHdydCkgPiAwKSB7CiAgICAgICAgIFB5T2JqZWN0ICp3cjsKLSAgICAgICAgd3IgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHNlbGYtPnN0cmVhbSwgIndyaXRlIiwgIk8iLCBwd3J0KTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIod3JpdGUpOworCisgICAgICAgIHdyID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLT5zdHJlYW0sICZQeUlkX3dyaXRlLCAiTyIsIHB3cnQpOwogICAgICAgICBpZiAod3IgPT0gTlVMTCkgewogICAgICAgICAgICAgUHlfREVDUkVGKHB3cnQpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL2NvbmZpZy5jLmluIGIvTW9kdWxlcy9jb25maWcuYy5pbgppbmRleCAzNGQ0NGQ1Li43YTI0ZTJkIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2NvbmZpZy5jLmluCisrKyBiL01vZHVsZXMvY29uZmlnLmMuaW4KQEAgLTM5LDEzICszOSwxMiBAQAogICAgIHsibWFyc2hhbCIsIFB5TWFyc2hhbF9Jbml0fSwKIAogICAgIC8qIFRoaXMgbGl2ZXMgaW4gaW1wb3J0LmMgKi8KLSAgICB7ImltcCIsIFB5SW5pdF9pbXB9LAorICAgIHsiX2ltcCIsIFB5SW5pdF9pbXB9LAogCiAgICAgLyogVGhpcyBsaXZlcyBpbiBQeXRob24vUHl0aG9uLWFzdC5jICovCiAgICAgeyJfYXN0IiwgUHlJbml0X19hc3R9LAogCiAgICAgLyogVGhlc2UgZW50cmllcyBhcmUgaGVyZSBmb3Igc3lzLmJ1aWx0aW5fbW9kdWxlX25hbWVzICovCi0gICAgeyJfX21haW5fXyIsIE5VTEx9LAogICAgIHsiYnVpbHRpbnMiLCBOVUxMfSwKICAgICB7InN5cyIsIE5VTEx9LAogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL2Vycm5vbW9kdWxlLmMgYi9Nb2R1bGVzL2Vycm5vbW9kdWxlLmMKaW5kZXggODY3MjBhZi4uMDZlZDUzYSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9lcnJub21vZHVsZS5jCisrKyBiL01vZHVsZXMvZXJybm9tb2R1bGUuYwpAQCAtNyw2ICs3LDMzIEBACiAjaWZkZWYgTVNfV0lORE9XUwogI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCiAjaW5jbHVkZSA8d2luZG93cy5oPgorLyogVGhlIGZvbGxvd2luZyBjb25zdGFudHMgd2VyZSBhZGRlZCB0byBlcnJuby5oIGluIFZTMjAxMCBidXQgaGF2ZQorICAgcHJlZmVycmVkIFdTQSBlcXVpdmFsZW50cy4gKi8KKyN1bmRlZiBFQUREUklOVVNFCisjdW5kZWYgRUFERFJOT1RBVkFJTAorI3VuZGVmIEVBRk5PU1VQUE9SVAorI3VuZGVmIEVBTFJFQURZCisjdW5kZWYgRUNPTk5BQk9SVEVECisjdW5kZWYgRUNPTk5SRUZVU0VECisjdW5kZWYgRUNPTk5SRVNFVAorI3VuZGVmIEVERVNUQUREUlJFUQorI3VuZGVmIEVIT1NUVU5SRUFDSAorI3VuZGVmIEVJTlBST0dSRVNTCisjdW5kZWYgRUlTQ09OTgorI3VuZGVmIEVMT09QCisjdW5kZWYgRU1TR1NJWkUKKyN1bmRlZiBFTkVURE9XTgorI3VuZGVmIEVORVRSRVNFVAorI3VuZGVmIEVORVRVTlJFQUNICisjdW5kZWYgRU5PQlVGUworI3VuZGVmIEVOT1BST1RPT1BUCisjdW5kZWYgRU5PVENPTk4KKyN1bmRlZiBFTk9UU09DSworI3VuZGVmIEVPUE5PVFNVUFAKKyN1bmRlZiBFUFJPVE9OT1NVUFBPUlQKKyN1bmRlZiBFUFJPVE9UWVBFCisjdW5kZWYgRVRJTUVET1VUCisjdW5kZWYgRVdPVUxEQkxPQ0sKICNlbmRpZgogCiAvKgpAQCAtODQsNiArMTExLDggQEAKICAgICAgKiBUaGUgbmFtZXMgYW5kIGNvbW1lbnRzIGFyZSBib3Jyb3dlZCBmcm9tIGxpbnV4L2luY2x1ZGUvZXJybm8uaCwKICAgICAgKiB3aGljaCBzaG91bGQgYmUgcHJldHR5IGFsbC1pbmNsdXNpdmUuICBIb3dldmVyLCB0aGUgU29sYXJpcyBzcGVjaWZpYwogICAgICAqIG5hbWVzIGFuZCBjb21tZW50cyBhcmUgYm9ycm93ZWQgZnJvbSBzeXMvZXJybm8uaCBpbiBTb2xhcmlzLgorICAgICAqIE1hY09TWCBzcGVjaWZpYyBuYW1lcyBhbmQgY29tbWVudHMgYXJlIGJvcnJvd2VkIGZyb20gc3lzL2Vycm5vLmggaW4KKyAgICAgKiBNYWNPU1guCiAgICAgICovCiAKICNpZmRlZiBFTk9ERVYKQEAgLTg0OCw2ICs4NzcsNTkgQEAKICAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVOT1RBQ1RJVkUiLCBFTk9UQUNUSVZFLCAiRmFjaWxpdHkgaXMgbm90IGFjdGl2ZSIpOwogI2VuZGlmCiAKKyAgICAvKiBNYWNPU1ggc3BlY2lmaWMgZXJybm9zICovCisjaWZkZWYgRUFVVEgKKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVBVVRIIiwgRUFVVEgsICJBdXRoZW50aWNhdGlvbiBlcnJvciIpOworI2VuZGlmCisjaWZkZWYgRUJBREFSQ0gKKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVCQURBUkNIIiwgRUJBREFSQ0gsICJCYWQgQ1BVIHR5cGUgaW4gZXhlY3V0YWJsZSIpOworI2VuZGlmCisjaWZkZWYgRUJBREVYRUMKKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVCQURFWEVDIiwgRUJBREVYRUMsICJCYWQgZXhlY3V0YWJsZSAob3Igc2hhcmVkIGxpYnJhcnkpIik7CisjZW5kaWYKKyNpZmRlZiBFQkFETUFDSE8KKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVCQURNQUNITyIsIEVCQURNQUNITywgIk1hbGZvcm1lZCBNYWNoLW8gZmlsZSIpOworI2VuZGlmCisjaWZkZWYgRUJBRFJQQworICAgIGluc2NvZGUoZCwgZHMsIGRlLCAiRUJBRFJQQyIsIEVCQURSUEMsICJSUEMgc3RydWN0IGlzIGJhZCIpOworI2VuZGlmCisjaWZkZWYgRURFVkVSUgorICAgIGluc2NvZGUoZCwgZHMsIGRlLCAiRURFVkVSUiIsIEVERVZFUlIsICJEZXZpY2UgZXJyb3IiKTsKKyNlbmRpZgorI2lmZGVmIEVGVFlQRQorICAgIGluc2NvZGUoZCwgZHMsIGRlLCAiRUZUWVBFIiwgRUZUWVBFLCAiSW5hcHByb3ByaWF0ZSBmaWxlIHR5cGUgb3IgZm9ybWF0Iik7CisjZW5kaWYKKyNpZmRlZiBFTkVFREFVVEgKKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVORUVEQVVUSCIsIEVORUVEQVVUSCwgIk5lZWQgYXV0aGVudGljYXRvciIpOworI2VuZGlmCisjaWZkZWYgRU5PQVRUUgorICAgIGluc2NvZGUoZCwgZHMsIGRlLCAiRU5PQVRUUiIsIEVOT0FUVFIsICJBdHRyaWJ1dGUgbm90IGZvdW5kIik7CisjZW5kaWYKKyNpZmRlZiBFTk9QT0xJQ1kKKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVOT1BPTElDWSIsIEVOT1BPTElDWSwgIlBvbGljeSBub3QgZm91bmQiKTsKKyNlbmRpZgorI2lmZGVmIEVQUk9DTElNCisgICAgaW5zY29kZShkLCBkcywgZGUsICJFUFJPQ0xJTSIsIEVQUk9DTElNLCAiVG9vIG1hbnkgcHJvY2Vzc2VzIik7CisjZW5kaWYKKyNpZmRlZiBFUFJPQ1VOQVZBSUwKKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVQUk9DVU5BVkFJTCIsIEVQUk9DVU5BVkFJTCwgIkJhZCBwcm9jZWR1cmUgZm9yIHByb2dyYW0iKTsKKyNlbmRpZgorI2lmZGVmIEVQUk9HTUlTTUFUQ0gKKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVQUk9HTUlTTUFUQ0giLCBFUFJPR01JU01BVENILCAiUHJvZ3JhbSB2ZXJzaW9uIHdyb25nIik7CisjZW5kaWYKKyNpZmRlZiBFUFJPR1VOQVZBSUwKKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVQUk9HVU5BVkFJTCIsIEVQUk9HVU5BVkFJTCwgIlJQQyBwcm9nLiBub3QgYXZhaWwiKTsKKyNlbmRpZgorI2lmZGVmIEVQV1JPRkYKKyAgICBpbnNjb2RlKGQsIGRzLCBkZSwgIkVQV1JPRkYiLCBFUFdST0ZGLCAiRGV2aWNlIHBvd2VyIGlzIG9mZiIpOworI2VuZGlmCisjaWZkZWYgRVJQQ01JU01BVENICisgICAgaW5zY29kZShkLCBkcywgZGUsICJFUlBDTUlTTUFUQ0giLCBFUlBDTUlTTUFUQ0gsICJSUEMgdmVyc2lvbiB3cm9uZyIpOworI2VuZGlmCisjaWZkZWYgRVNITElCVkVSUworICAgIGluc2NvZGUoZCwgZHMsIGRlLCAiRVNITElCVkVSUyIsIEVTSExJQlZFUlMsICJTaGFyZWQgbGlicmFyeSB2ZXJzaW9uIG1pc21hdGNoIik7CisjZW5kaWYKKwogICAgIFB5X0RFQ1JFRihkZSk7CiAgICAgcmV0dXJuIG07CiB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL2ZhdWx0aGFuZGxlci5jIGIvTW9kdWxlcy9mYXVsdGhhbmRsZXIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZThmYmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTW9kdWxlcy9mYXVsdGhhbmRsZXIuYwpAQCAtMCwwICsxLDExNDggQEAKKyNpbmNsdWRlICJQeXRob24uaCIKKyNpbmNsdWRlICJweXRocmVhZC5oIgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPG9iamVjdC5oPgorI2luY2x1ZGUgPGZyYW1lb2JqZWN0Lmg+CisjaW5jbHVkZSA8c2lnbmFsLmg+CisjaWYgZGVmaW5lZChIQVZFX1BUSFJFQURfU0lHTUFTSykgJiYgIWRlZmluZWQoSEFWRV9CUk9LRU5fUFRIUkVBRF9TSUdNQVNLKQorI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyNlbmRpZgorCisvKiBBbGxvY2F0ZSBhdCBtYXhpbXVtIDEwMCBNQiBvZiB0aGUgc3RhY2sgdG8gcmFpc2UgdGhlIHN0YWNrIG92ZXJmbG93ICovCisjZGVmaW5lIFNUQUNLX09WRVJGTE9XX01BWF9TSVpFICgxMDAqMTAyNCoxMDI0KQorCisjaWZkZWYgV0lUSF9USFJFQUQKKyMgIGRlZmluZSBGQVVMVEhBTkRMRVJfTEFURVIKKyNlbmRpZgorCisjaWZuZGVmIE1TX1dJTkRPV1MKKyAgIC8qIHJlZ2lzdGVyKCkgaXMgdXNlbGVzcyBvbiBXaW5kb3dzLCBiZWNhdXNlIG9ubHkgU0lHU0VHViwgU0lHQUJSVCBhbmQKKyAgICAgIFNJR0lMTCBjYW4gYmUgaGFuZGxlZCBieSB0aGUgcHJvY2VzcywgYW5kIHRoZXNlIHNpZ25hbHMgY2FuIG9ubHkgYmUgdXNlZAorICAgICAgd2l0aCBlbmFibGUoKSwgbm90IHVzaW5nIHJlZ2lzdGVyKCkgKi8KKyMgIGRlZmluZSBGQVVMVEhBTkRMRVJfVVNFUgorI2VuZGlmCisKKyNkZWZpbmUgUFVUUyhmZCwgc3RyKSB3cml0ZShmZCwgc3RyLCBzdHJsZW4oc3RyKSkKKworI2lmZGVmIEhBVkVfU0lHQUNUSU9OCit0eXBlZGVmIHN0cnVjdCBzaWdhY3Rpb24gX1B5X3NpZ2hhbmRsZXJfdDsKKyNlbHNlCit0eXBlZGVmIFB5T1Nfc2lnaGFuZGxlcl90IF9QeV9zaWdoYW5kbGVyX3Q7CisjZW5kaWYKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIGludCBzaWdudW07CisgICAgaW50IGVuYWJsZWQ7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBfUHlfc2lnaGFuZGxlcl90IHByZXZpb3VzOworICAgIGludCBhbGxfdGhyZWFkczsKK30gZmF1bHRfaGFuZGxlcl90OworCitzdGF0aWMgc3RydWN0IHsKKyAgICBpbnQgZW5hYmxlZDsKKyAgICBQeU9iamVjdCAqZmlsZTsKKyAgICBpbnQgZmQ7CisgICAgaW50IGFsbF90aHJlYWRzOworICAgIFB5SW50ZXJwcmV0ZXJTdGF0ZSAqaW50ZXJwOworfSBmYXRhbF9lcnJvciA9IHswLCBOVUxMLCAtMSwgMH07CisKKyNpZmRlZiBGQVVMVEhBTkRMRVJfTEFURVIKK3N0YXRpYyBzdHJ1Y3QgeworICAgIFB5T2JqZWN0ICpmaWxlOworICAgIGludCBmZDsKKyAgICBQWV9USU1FT1VUX1QgdGltZW91dF91czsgICAvKiB0aW1lb3V0IGluIG1pY3Jvc2Vjb25kcyAqLworICAgIGludCByZXBlYXQ7CisgICAgUHlJbnRlcnByZXRlclN0YXRlICppbnRlcnA7CisgICAgaW50IGV4aXQ7CisgICAgY2hhciAqaGVhZGVyOworICAgIHNpemVfdCBoZWFkZXJfbGVuOworICAgIC8qIFRoZSBtYWluIHRocmVhZCBhbHdheXMgaG9sZHMgdGhpcyBsb2NrLiBJdCBpcyBvbmx5IHJlbGVhc2VkIHdoZW4KKyAgICAgICBmYXVsdGhhbmRsZXJfdGhyZWFkKCkgaXMgaW50ZXJydXB0ZWQgYmVmb3JlIHRoaXMgdGhyZWFkIGV4aXRzLCBvciBhdAorICAgICAgIFB5dGhvbiBleGl0LiAqLworICAgIFB5VGhyZWFkX3R5cGVfbG9jayBjYW5jZWxfZXZlbnQ7CisgICAgLyogcmVsZWFzZWQgYnkgY2hpbGQgdGhyZWFkIHdoZW4gam9pbmVkICovCisgICAgUHlUaHJlYWRfdHlwZV9sb2NrIHJ1bm5pbmc7Cit9IHRocmVhZDsKKyNlbmRpZgorCisjaWZkZWYgRkFVTFRIQU5ETEVSX1VTRVIKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBpbnQgZW5hYmxlZDsKKyAgICBQeU9iamVjdCAqZmlsZTsKKyAgICBpbnQgZmQ7CisgICAgaW50IGFsbF90aHJlYWRzOworICAgIGludCBjaGFpbjsKKyAgICBfUHlfc2lnaGFuZGxlcl90IHByZXZpb3VzOworICAgIFB5SW50ZXJwcmV0ZXJTdGF0ZSAqaW50ZXJwOworfSB1c2VyX3NpZ25hbF90OworCitzdGF0aWMgdXNlcl9zaWduYWxfdCAqdXNlcl9zaWduYWxzOworCisvKiB0aGUgZm9sbG93aW5nIG1hY3JvcyBjb21lIGZyb20gUHl0aG9uOiBNb2R1bGVzL3NpZ25hbG1vZHVsZS5jICovCisjaWYgZGVmaW5lZChQWU9TX09TMikgJiYgIWRlZmluZWQoUFlDQ19HQ0MpCisjZGVmaW5lIE5TSUcgMTIKKyNlbmRpZgorI2lmbmRlZiBOU0lHCisjIGlmIGRlZmluZWQoX05TSUcpCisjICBkZWZpbmUgTlNJRyBfTlNJRyAgICAgICAgICAgIC8qIEZvciBCU0QvU3lzViAqLworIyBlbGlmIGRlZmluZWQoX1NJR01BWCkKKyMgIGRlZmluZSBOU0lHIChfU0lHTUFYICsgMSkgICAgLyogRm9yIFFOWCAqLworIyBlbGlmIGRlZmluZWQoU0lHTUFYKQorIyAgZGVmaW5lIE5TSUcgKFNJR01BWCArIDEpICAgICAvKiBGb3IgZGpncHAgKi8KKyMgZWxzZQorIyAgZGVmaW5lIE5TSUcgNjQgICAgICAgICAgICAgICAvKiBVc2UgYSByZWFzb25hYmxlIGRlZmF1bHQgdmFsdWUgKi8KKyMgZW5kaWYKKyNlbmRpZgorCitzdGF0aWMgdm9pZCBmYXVsdGhhbmRsZXJfdXNlcihpbnQgc2lnbnVtKTsKKyNlbmRpZiAvKiBGQVVMVEhBTkRMRVJfVVNFUiAqLworCisKK3N0YXRpYyBmYXVsdF9oYW5kbGVyX3QgZmF1bHRoYW5kbGVyX2hhbmRsZXJzW10gPSB7CisjaWZkZWYgU0lHQlVTCisgICAge1NJR0JVUywgMCwgIkJ1cyBlcnJvciIsIH0sCisjZW5kaWYKKyNpZmRlZiBTSUdJTEwKKyAgICB7U0lHSUxMLCAwLCAiSWxsZWdhbCBpbnN0cnVjdGlvbiIsIH0sCisjZW5kaWYKKyAgICB7U0lHRlBFLCAwLCAiRmxvYXRpbmcgcG9pbnQgZXhjZXB0aW9uIiwgfSwKKyAgICB7U0lHQUJSVCwgMCwgIkFib3J0ZWQiLCB9LAorICAgIC8qIGRlZmluZSBTSUdTRUdWIGF0IHRoZSBlbmQgdG8gbWFrZSBpdCB0aGUgZGVmYXVsdCBjaG9pY2UgaWYgc2VhcmNoaW5nIHRoZQorICAgICAgIGhhbmRsZXIgZmFpbHMgaW4gZmF1bHRoYW5kbGVyX2ZhdGFsX2Vycm9yKCkgKi8KKyAgICB7U0lHU0VHViwgMCwgIlNlZ21lbnRhdGlvbiBmYXVsdCIsIH0KK307CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBmYXVsdGhhbmRsZXJfbnNpZ25hbHMgPSBcCisgICAgUHlfQVJSQVlfTEVOR1RIKGZhdWx0aGFuZGxlcl9oYW5kbGVycyk7CisKKyNpZmRlZiBIQVZFX1NJR0FMVFNUQUNLCitzdGF0aWMgc3RhY2tfdCBzdGFjazsKKyNlbmRpZgorCisKKy8qIEdldCB0aGUgZmlsZSBkZXNjcmlwdG9yIG9mIGEgZmlsZSBieSBjYWxsaW5nIGl0cyBmaWxlbm8oKSBtZXRob2QgYW5kIHRoZW4KKyAgIGNhbGwgaXRzIGZsdXNoKCkgbWV0aG9kLgorCisgICBJZiBmaWxlIGlzIE5VTEwgb3IgUHlfTm9uZSwgdXNlIHN5cy5zdGRlcnIgYXMgdGhlIG5ldyBmaWxlLgorCisgICBPbiBzdWNjZXNzLCByZXR1cm4gdGhlIG5ldyBmaWxlIGFuZCB3cml0ZSB0aGUgZmlsZSBkZXNjcmlwdG9yIGludG8gKnBfZmQuCisgICBPbiBlcnJvciwgcmV0dXJuIE5VTEwuICovCisKK3N0YXRpYyBQeU9iamVjdCoKK2ZhdWx0aGFuZGxlcl9nZXRfZmlsZW5vKFB5T2JqZWN0ICpmaWxlLCBpbnQgKnBfZmQpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICBfUHlfSURFTlRJRklFUihmaWxlbm8pOworICAgIF9QeV9JREVOVElGSUVSKGZsdXNoKTsKKyAgICBsb25nIGZkX2xvbmc7CisgICAgaW50IGZkOworCisgICAgaWYgKGZpbGUgPT0gTlVMTCB8fCBmaWxlID09IFB5X05vbmUpIHsKKyAgICAgICAgZmlsZSA9IFB5U3lzX0dldE9iamVjdCgic3RkZXJyIik7CisgICAgICAgIGlmIChmaWxlID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsICJ1bmFibGUgdG8gZ2V0IHN5cy5zdGRlcnIiKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorCisgICAgcmVzdWx0ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmaWxlLCAmUHlJZF9maWxlbm8sICIiKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZmQgPSAtMTsKKyAgICBpZiAoUHlMb25nX0NoZWNrKHJlc3VsdCkpIHsKKyAgICAgICAgZmRfbG9uZyA9IFB5TG9uZ19Bc0xvbmcocmVzdWx0KTsKKyAgICAgICAgaWYgKDAgPD0gZmRfbG9uZyAmJiBmZF9sb25nIDwgSU5UX01BWCkKKyAgICAgICAgICAgIGZkID0gKGludClmZF9sb25nOworICAgIH0KKyAgICBQeV9ERUNSRUYocmVzdWx0KTsKKworICAgIGlmIChmZCA9PSAtMSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgImZpbGUuZmlsZW5vKCkgaXMgbm90IGEgdmFsaWQgZmlsZSBkZXNjcmlwdG9yIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJlc3VsdCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoZmlsZSwgJlB5SWRfZmx1c2gsICIiKTsKKyAgICBpZiAocmVzdWx0ICE9IE5VTEwpCisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgIGVsc2UgeworICAgICAgICAvKiBpZ25vcmUgZmx1c2goKSBlcnJvciAqLworICAgICAgICBQeUVycl9DbGVhcigpOworICAgIH0KKyAgICAqcF9mZCA9IGZkOworICAgIHJldHVybiBmaWxlOworfQorCisvKiBHZXQgdGhlIHN0YXRlIG9mIHRoZSBjdXJyZW50IHRocmVhZDogb25seSBjYWxsIHRoaXMgZnVuY3Rpb24gaWYgdGhlIGN1cnJlbnQKKyAgIHRocmVhZCBob2xkcyB0aGUgR0lMLiBSYWlzZSBhbiBleGNlcHRpb24gb24gZXJyb3IuICovCitzdGF0aWMgUHlUaHJlYWRTdGF0ZSoKK2dldF90aHJlYWRfc3RhdGUodm9pZCkKK3sKKyAgICBQeVRocmVhZFN0YXRlICp0c3RhdGUgPSBQeVRocmVhZFN0YXRlX0dldCgpOworICAgIGlmICh0c3RhdGUgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgInVuYWJsZSB0byBnZXQgdGhlIGN1cnJlbnQgdGhyZWFkIHN0YXRlIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gdHN0YXRlOworfQorCitzdGF0aWMgUHlPYmplY3QqCitmYXVsdGhhbmRsZXJfZHVtcF90cmFjZWJhY2tfcHkoUHlPYmplY3QgKnNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCit7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJmaWxlIiwgImFsbF90aHJlYWRzIiwgTlVMTH07CisgICAgUHlPYmplY3QgKmZpbGUgPSBOVUxMOworICAgIGludCBhbGxfdGhyZWFkcyA9IDE7CisgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlOworICAgIGNvbnN0IGNoYXIgKmVycm1zZzsKKyAgICBpbnQgZmQ7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsCisgICAgICAgICJ8T2k6ZHVtcF90cmFjZWJhY2siLCBrd2xpc3QsCisgICAgICAgICZmaWxlLCAmYWxsX3RocmVhZHMpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZpbGUgPSBmYXVsdGhhbmRsZXJfZ2V0X2ZpbGVubyhmaWxlLCAmZmQpOworICAgIGlmIChmaWxlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgdHN0YXRlID0gZ2V0X3RocmVhZF9zdGF0ZSgpOworICAgIGlmICh0c3RhdGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoYWxsX3RocmVhZHMpIHsKKyAgICAgICAgZXJybXNnID0gX1B5X0R1bXBUcmFjZWJhY2tUaHJlYWRzKGZkLCB0c3RhdGUtPmludGVycCwgdHN0YXRlKTsKKyAgICAgICAgaWYgKGVycm1zZyAhPSBOVUxMKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLCBlcnJtc2cpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIF9QeV9EdW1wVHJhY2ViYWNrKGZkLCB0c3RhdGUpOworICAgIH0KKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworCisvKiBIYW5kbGVyIGZvciBTSUdTRUdWLCBTSUdGUEUsIFNJR0FCUlQsIFNJR0JVUyBhbmQgU0lHSUxMIHNpZ25hbHMuCisKKyAgIERpc3BsYXkgdGhlIGN1cnJlbnQgUHl0aG9uIHRyYWNlYmFjaywgcmVzdG9yZSB0aGUgcHJldmlvdXMgaGFuZGxlciBhbmQgY2FsbAorICAgdGhlIHByZXZpb3VzIGhhbmRsZXIuCisKKyAgIE9uIFdpbmRvd3MsIGRvbid0IGV4cGxpY2l0bHkgY2FsbCB0aGUgcHJldmlvdXMgaGFuZGxlciwgYmVjYXVzZSB0aGUgV2luZG93cworICAgc2lnbmFsIGhhbmRsZXIgd291bGQgbm90IGJlIGNhbGxlZCAoZm9yIGFuIHVua25vd24gcmVhc29uKS4gVGhlIGV4ZWN1dGlvbiBvZgorICAgdGhlIHByb2dyYW0gY29udGludWVzIGF0IGZhdWx0aGFuZGxlcl9mYXRhbF9lcnJvcigpIGV4aXQsIGJ1dCB0aGUgc2FtZQorICAgaW5zdHJ1Y3Rpb24gd2lsbCByYWlzZSB0aGUgc2FtZSBmYXVsdCAoc2lnbmFsKSwgYW5kIHNvIHRoZSBwcmV2aW91cyBoYW5kbGVyCisgICB3aWxsIGJlIGNhbGxlZC4KKworICAgVGhpcyBmdW5jdGlvbiBpcyBzaWduYWwtc2FmZSBhbmQgc2hvdWxkIG9ubHkgY2FsbCBzaWduYWwtc2FmZSBmdW5jdGlvbnMuICovCisKK3N0YXRpYyB2b2lkCitmYXVsdGhhbmRsZXJfZmF0YWxfZXJyb3IoaW50IHNpZ251bSkKK3sKKyAgICBjb25zdCBpbnQgZmQgPSBmYXRhbF9lcnJvci5mZDsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBmYXVsdF9oYW5kbGVyX3QgKmhhbmRsZXIgPSBOVUxMOworICAgIFB5VGhyZWFkU3RhdGUgKnRzdGF0ZTsKKyAgICBpbnQgc2F2ZV9lcnJubyA9IGVycm5vOworCisgICAgaWYgKCFmYXRhbF9lcnJvci5lbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGk9MDsgaSA8IGZhdWx0aGFuZGxlcl9uc2lnbmFsczsgaSsrKSB7CisgICAgICAgIGhhbmRsZXIgPSAmZmF1bHRoYW5kbGVyX2hhbmRsZXJzW2ldOworICAgICAgICBpZiAoaGFuZGxlci0+c2lnbnVtID09IHNpZ251bSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoaGFuZGxlciA9PSBOVUxMKSB7CisgICAgICAgIC8qIGZhdWx0aGFuZGxlcl9uc2lnbmFscyA9PSAwICh1bmxpa2VseSkgKi8KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8qIHJlc3RvcmUgdGhlIHByZXZpb3VzIGhhbmRsZXIgKi8KKyNpZmRlZiBIQVZFX1NJR0FDVElPTgorICAgICh2b2lkKXNpZ2FjdGlvbihzaWdudW0sICZoYW5kbGVyLT5wcmV2aW91cywgTlVMTCk7CisjZWxzZQorICAgICh2b2lkKXNpZ25hbChzaWdudW0sIGhhbmRsZXItPnByZXZpb3VzKTsKKyNlbmRpZgorICAgIGhhbmRsZXItPmVuYWJsZWQgPSAwOworCisgICAgUFVUUyhmZCwgIkZhdGFsIFB5dGhvbiBlcnJvcjogIik7CisgICAgUFVUUyhmZCwgaGFuZGxlci0+bmFtZSk7CisgICAgUFVUUyhmZCwgIlxuXG4iKTsKKworI2lmZGVmIFdJVEhfVEhSRUFECisgICAgLyogU0lHU0VHViwgU0lHRlBFLCBTSUdBQlJULCBTSUdCVVMgYW5kIFNJR0lMTCBhcmUgc3luY2hyb25vdXMgc2lnbmFscyBhbmQKKyAgICAgICBhcmUgdGh1cyBkZWxpdmVyZWQgdG8gdGhlIHRocmVhZCB0aGF0IGNhdXNlZCB0aGUgZmF1bHQuIEdldCB0aGUgUHl0aG9uCisgICAgICAgdGhyZWFkIHN0YXRlIG9mIHRoZSBjdXJyZW50IHRocmVhZC4KKworICAgICAgIFB5VGhyZWFkU3RhdGVfR2V0KCkgZG9lc24ndCBnaXZlIHRoZSBzdGF0ZSBvZiB0aGUgdGhyZWFkIHRoYXQgY2F1c2VkIHRoZQorICAgICAgIGZhdWx0IGlmIHRoZSB0aHJlYWQgcmVsZWFzZWQgdGhlIEdJTCwgYW5kIHNvIHRoaXMgZnVuY3Rpb24gY2Fubm90IGJlCisgICAgICAgdXNlZC4gUmVhZCB0aGUgdGhyZWFkIGxvY2FsIHN0b3JhZ2UgKFRMUykgaW5zdGVhZDogY2FsbAorICAgICAgIFB5R0lMU3RhdGVfR2V0VGhpc1RocmVhZFN0YXRlKCkuICovCisgICAgdHN0YXRlID0gUHlHSUxTdGF0ZV9HZXRUaGlzVGhyZWFkU3RhdGUoKTsKKyNlbHNlCisgICAgdHN0YXRlID0gUHlUaHJlYWRTdGF0ZV9HZXQoKTsKKyNlbmRpZgorCisgICAgaWYgKGZhdGFsX2Vycm9yLmFsbF90aHJlYWRzKQorICAgICAgICBfUHlfRHVtcFRyYWNlYmFja1RocmVhZHMoZmQsIGZhdGFsX2Vycm9yLmludGVycCwgdHN0YXRlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHRzdGF0ZSAhPSBOVUxMKQorICAgICAgICAgICAgX1B5X0R1bXBUcmFjZWJhY2soZmQsIHRzdGF0ZSk7CisgICAgfQorCisgICAgZXJybm8gPSBzYXZlX2Vycm5vOworI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBpZiAoc2lnbnVtID09IFNJR1NFR1YpIHsKKyAgICAgICAgLyogZG9uJ3QgZXhwbGljaXRseSBjYWxsIHRoZSBwcmV2aW91cyBoYW5kbGVyIGZvciBTSUdTRUdWIGluIHRoaXMgc2lnbmFsCisgICAgICAgICAgIGhhbmRsZXIsIGJlY2F1c2UgdGhlIFdpbmRvd3Mgc2lnbmFsIGhhbmRsZXIgd291bGQgbm90IGJlIGNhbGxlZCAqLworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisgICAgLyogY2FsbCB0aGUgcHJldmlvdXMgc2lnbmFsIGhhbmRsZXI6IGl0IGlzIGNhbGxlZCBpbW1lZGlhdGx5IGlmIHdlIHVzZQorICAgICAgIHNpZ2FjdGlvbigpIHRoYW5rcyB0byBTQV9OT0RFRkVSIGZsYWcsIG90aGVyd2lzZSBpdCBpcyBkZWZlcnJlZCAqLworICAgIHJhaXNlKHNpZ251bSk7Cit9CisKKy8qIEluc3RhbGwgdGhlIGhhbmRsZXIgZm9yIGZhdGFsIHNpZ25hbHMsIGZhdWx0aGFuZGxlcl9mYXRhbF9lcnJvcigpLiAqLworCitzdGF0aWMgUHlPYmplY3QqCitmYXVsdGhhbmRsZXJfZW5hYmxlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7ImZpbGUiLCAiYWxsX3RocmVhZHMiLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqZmlsZSA9IE5VTEw7CisgICAgaW50IGFsbF90aHJlYWRzID0gMTsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBmYXVsdF9oYW5kbGVyX3QgKmhhbmRsZXI7CisjaWZkZWYgSEFWRV9TSUdBQ1RJT04KKyAgICBzdHJ1Y3Qgc2lnYWN0aW9uIGFjdGlvbjsKKyNlbmRpZgorICAgIGludCBlcnI7CisgICAgaW50IGZkOworICAgIFB5VGhyZWFkU3RhdGUgKnRzdGF0ZTsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywKKyAgICAgICAgInxPaTplbmFibGUiLCBrd2xpc3QsICZmaWxlLCAmYWxsX3RocmVhZHMpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZpbGUgPSBmYXVsdGhhbmRsZXJfZ2V0X2ZpbGVubyhmaWxlLCAmZmQpOworICAgIGlmIChmaWxlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgdHN0YXRlID0gZ2V0X3RocmVhZF9zdGF0ZSgpOworICAgIGlmICh0c3RhdGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9YREVDUkVGKGZhdGFsX2Vycm9yLmZpbGUpOworICAgIFB5X0lOQ1JFRihmaWxlKTsKKyAgICBmYXRhbF9lcnJvci5maWxlID0gZmlsZTsKKyAgICBmYXRhbF9lcnJvci5mZCA9IGZkOworICAgIGZhdGFsX2Vycm9yLmFsbF90aHJlYWRzID0gYWxsX3RocmVhZHM7CisgICAgZmF0YWxfZXJyb3IuaW50ZXJwID0gdHN0YXRlLT5pbnRlcnA7CisKKyAgICBpZiAoIWZhdGFsX2Vycm9yLmVuYWJsZWQpIHsKKyAgICAgICAgZmF0YWxfZXJyb3IuZW5hYmxlZCA9IDE7CisKKyAgICAgICAgZm9yIChpPTA7IGkgPCBmYXVsdGhhbmRsZXJfbnNpZ25hbHM7IGkrKykgeworICAgICAgICAgICAgaGFuZGxlciA9ICZmYXVsdGhhbmRsZXJfaGFuZGxlcnNbaV07CisjaWZkZWYgSEFWRV9TSUdBQ1RJT04KKyAgICAgICAgICAgIGFjdGlvbi5zYV9oYW5kbGVyID0gZmF1bHRoYW5kbGVyX2ZhdGFsX2Vycm9yOworICAgICAgICAgICAgc2lnZW1wdHlzZXQoJmFjdGlvbi5zYV9tYXNrKTsKKyAgICAgICAgICAgIC8qIERvIG5vdCBwcmV2ZW50IHRoZSBzaWduYWwgZnJvbSBiZWluZyByZWNlaXZlZCBmcm9tIHdpdGhpbgorICAgICAgICAgICAgICAgaXRzIG93biBzaWduYWwgaGFuZGxlciAqLworICAgICAgICAgICAgYWN0aW9uLnNhX2ZsYWdzID0gU0FfTk9ERUZFUjsKKyNpZmRlZiBIQVZFX1NJR0FMVFNUQUNLCisgICAgICAgICAgICBpZiAoc3RhY2suc3Nfc3AgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIC8qIENhbGwgdGhlIHNpZ25hbCBoYW5kbGVyIG9uIGFuIGFsdGVybmF0ZSBzaWduYWwgc3RhY2sKKyAgICAgICAgICAgICAgICAgICBwcm92aWRlZCBieSBzaWdhbHRzdGFjaygpICovCisgICAgICAgICAgICAgICAgYWN0aW9uLnNhX2ZsYWdzIHw9IFNBX09OU1RBQ0s7CisgICAgICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIGVyciA9IHNpZ2FjdGlvbihoYW5kbGVyLT5zaWdudW0sICZhY3Rpb24sICZoYW5kbGVyLT5wcmV2aW91cyk7CisjZWxzZQorICAgICAgICAgICAgaGFuZGxlci0+cHJldmlvdXMgPSBzaWduYWwoaGFuZGxlci0+c2lnbnVtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmF1bHRoYW5kbGVyX2ZhdGFsX2Vycm9yKTsKKyAgICAgICAgICAgIGVyciA9IChoYW5kbGVyLT5wcmV2aW91cyA9PSBTSUdfRVJSKTsKKyNlbmRpZgorICAgICAgICAgICAgaWYgKGVycikgeworICAgICAgICAgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19SdW50aW1lRXJyb3IpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaGFuZGxlci0+ZW5hYmxlZCA9IDE7CisgICAgICAgIH0KKyAgICB9CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK3N0YXRpYyB2b2lkCitmYXVsdGhhbmRsZXJfZGlzYWJsZSh2b2lkKQoreworICAgIHVuc2lnbmVkIGludCBpOworICAgIGZhdWx0X2hhbmRsZXJfdCAqaGFuZGxlcjsKKworICAgIGlmIChmYXRhbF9lcnJvci5lbmFibGVkKSB7CisgICAgICAgIGZhdGFsX2Vycm9yLmVuYWJsZWQgPSAwOworICAgICAgICBmb3IgKGk9MDsgaSA8IGZhdWx0aGFuZGxlcl9uc2lnbmFsczsgaSsrKSB7CisgICAgICAgICAgICBoYW5kbGVyID0gJmZhdWx0aGFuZGxlcl9oYW5kbGVyc1tpXTsKKyAgICAgICAgICAgIGlmICghaGFuZGxlci0+ZW5hYmxlZCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyNpZmRlZiBIQVZFX1NJR0FDVElPTgorICAgICAgICAgICAgKHZvaWQpc2lnYWN0aW9uKGhhbmRsZXItPnNpZ251bSwgJmhhbmRsZXItPnByZXZpb3VzLCBOVUxMKTsKKyNlbHNlCisgICAgICAgICAgICAodm9pZClzaWduYWwoaGFuZGxlci0+c2lnbnVtLCBoYW5kbGVyLT5wcmV2aW91cyk7CisjZW5kaWYKKyAgICAgICAgICAgIGhhbmRsZXItPmVuYWJsZWQgPSAwOworICAgICAgICB9CisgICAgfQorCisgICAgUHlfQ0xFQVIoZmF0YWxfZXJyb3IuZmlsZSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCoKK2ZhdWx0aGFuZGxlcl9kaXNhYmxlX3B5KFB5T2JqZWN0ICpzZWxmKQoreworICAgIGlmICghZmF0YWxfZXJyb3IuZW5hYmxlZCkgeworICAgICAgICBQeV9JTkNSRUYoUHlfRmFsc2UpOworICAgICAgICByZXR1cm4gUHlfRmFsc2U7CisgICAgfQorICAgIGZhdWx0aGFuZGxlcl9kaXNhYmxlKCk7CisgICAgUHlfSU5DUkVGKFB5X1RydWUpOworICAgIHJldHVybiBQeV9UcnVlOworfQorCitzdGF0aWMgUHlPYmplY3QqCitmYXVsdGhhbmRsZXJfaXNfZW5hYmxlZChQeU9iamVjdCAqc2VsZikKK3sKKyAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKGZhdGFsX2Vycm9yLmVuYWJsZWQpOworfQorCisjaWZkZWYgRkFVTFRIQU5ETEVSX0xBVEVSCisKK3N0YXRpYyB2b2lkCitmYXVsdGhhbmRsZXJfdGhyZWFkKHZvaWQgKnVudXNlZCkKK3sKKyAgICBQeUxvY2tTdGF0dXMgc3Q7CisgICAgY29uc3QgY2hhciogZXJybXNnOworICAgIFB5VGhyZWFkU3RhdGUgKmN1cnJlbnQ7CisgICAgaW50IG9rOworI2lmIGRlZmluZWQoSEFWRV9QVEhSRUFEX1NJR01BU0spICYmICFkZWZpbmVkKEhBVkVfQlJPS0VOX1BUSFJFQURfU0lHTUFTSykKKyAgICBzaWdzZXRfdCBzZXQ7CisKKyAgICAvKiB3ZSBkb24ndCB3YW50IHRvIHJlY2VpdmUgYW55IHNpZ25hbCAqLworICAgIHNpZ2ZpbGxzZXQoJnNldCk7CisgICAgcHRocmVhZF9zaWdtYXNrKFNJR19TRVRNQVNLLCAmc2V0LCBOVUxMKTsKKyNlbmRpZgorCisgICAgZG8geworICAgICAgICBzdCA9IFB5VGhyZWFkX2FjcXVpcmVfbG9ja190aW1lZCh0aHJlYWQuY2FuY2VsX2V2ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWQudGltZW91dF91cywgMCk7CisgICAgICAgIGlmIChzdCA9PSBQWV9MT0NLX0FDUVVJUkVEKSB7CisgICAgICAgICAgICBQeVRocmVhZF9yZWxlYXNlX2xvY2sodGhyZWFkLmNhbmNlbF9ldmVudCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICAvKiBUaW1lb3V0ID0+IGR1bXAgdHJhY2ViYWNrICovCisgICAgICAgIGFzc2VydChzdCA9PSBQWV9MT0NLX0ZBSUxVUkUpOworCisgICAgICAgIC8qIGdldCB0aGUgdGhyZWFkIGhvbGRpbmcgdGhlIEdJTCwgTlVMTCBpZiBubyB0aHJlYWQgaG9sZCB0aGUgR0lMICovCisgICAgICAgIGN1cnJlbnQgPSBfUHlfYXRvbWljX2xvYWRfcmVsYXhlZCgmX1B5VGhyZWFkU3RhdGVfQ3VycmVudCk7CisKKyAgICAgICAgd3JpdGUodGhyZWFkLmZkLCB0aHJlYWQuaGVhZGVyLCB0aHJlYWQuaGVhZGVyX2xlbik7CisKKyAgICAgICAgZXJybXNnID0gX1B5X0R1bXBUcmFjZWJhY2tUaHJlYWRzKHRocmVhZC5mZCwgdGhyZWFkLmludGVycCwgY3VycmVudCk7CisgICAgICAgIG9rID0gKGVycm1zZyA9PSBOVUxMKTsKKworICAgICAgICBpZiAodGhyZWFkLmV4aXQpCisgICAgICAgICAgICBfZXhpdCgxKTsKKyAgICB9IHdoaWxlIChvayAmJiB0aHJlYWQucmVwZWF0KTsKKworICAgIC8qIFRoZSBvbmx5IHdheSBvdXQgKi8KKyAgICBQeVRocmVhZF9yZWxlYXNlX2xvY2sodGhyZWFkLnJ1bm5pbmcpOworfQorCitzdGF0aWMgdm9pZAorY2FuY2VsX2R1bXBfdHJhY2ViYWNrc19sYXRlcih2b2lkKQoreworICAgIC8qIE5vdGlmeSBjYW5jZWxsYXRpb24gKi8KKyAgICBQeVRocmVhZF9yZWxlYXNlX2xvY2sodGhyZWFkLmNhbmNlbF9ldmVudCk7CisKKyAgICAvKiBXYWl0IGZvciB0aHJlYWQgdG8gam9pbiAqLworICAgIFB5VGhyZWFkX2FjcXVpcmVfbG9jayh0aHJlYWQucnVubmluZywgMSk7CisgICAgUHlUaHJlYWRfcmVsZWFzZV9sb2NrKHRocmVhZC5ydW5uaW5nKTsKKworICAgIC8qIFRoZSBtYWluIHRocmVhZCBzaG91bGQgYWx3YXlzIGhvbGQgdGhlIGNhbmNlbF9ldmVudCBsb2NrICovCisgICAgUHlUaHJlYWRfYWNxdWlyZV9sb2NrKHRocmVhZC5jYW5jZWxfZXZlbnQsIDEpOworCisgICAgUHlfQ0xFQVIodGhyZWFkLmZpbGUpOworICAgIGlmICh0aHJlYWQuaGVhZGVyKSB7CisgICAgICAgIGZyZWUodGhyZWFkLmhlYWRlcik7CisgICAgICAgIHRocmVhZC5oZWFkZXIgPSBOVUxMOworICAgIH0KK30KKworc3RhdGljIGNoYXIqCitmb3JtYXRfdGltZW91dChkb3VibGUgdGltZW91dCkKK3sKKyAgICB1bnNpZ25lZCBsb25nIHVzLCBzZWMsIG1pbiwgaG91cjsKKyAgICBkb3VibGUgaW50cGFydCwgZnJhY3BhcnQ7CisgICAgY2hhciBidWZmZXJbMTAwXTsKKworICAgIGZyYWNwYXJ0ID0gbW9kZih0aW1lb3V0LCAmaW50cGFydCk7CisgICAgc2VjID0gKHVuc2lnbmVkIGxvbmcpaW50cGFydDsKKyAgICB1cyA9ICh1bnNpZ25lZCBsb25nKShmcmFjcGFydCAqIDFlNik7CisgICAgbWluID0gc2VjIC8gNjA7CisgICAgc2VjICU9IDYwOworICAgIGhvdXIgPSBtaW4gLyA2MDsKKyAgICBtaW4gJT0gNjA7CisKKyAgICBpZiAodXMgIT0gMCkKKyAgICAgICAgUHlPU19zbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLAorICAgICAgICAgICAgICAgICAgICAgICJUaW1lb3V0ICglbHU6JTAybHU6JTAybHUuJTA2bHUpIVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICBob3VyLCBtaW4sIHNlYywgdXMpOworICAgIGVsc2UKKyAgICAgICAgUHlPU19zbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLAorICAgICAgICAgICAgICAgICAgICAgICJUaW1lb3V0ICglbHU6JTAybHU6JTAybHUpIVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICBob3VyLCBtaW4sIHNlYyk7CisKKyAgICByZXR1cm4gc3RyZHVwKGJ1ZmZlcik7Cit9CisKK3N0YXRpYyBQeU9iamVjdCoKK2ZhdWx0aGFuZGxlcl9kdW1wX3RyYWNlYmFja3NfbGF0ZXIoUHlPYmplY3QgKnNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsidGltZW91dCIsICJyZXBlYXQiLCAiZmlsZSIsICJleGl0IiwgTlVMTH07CisgICAgZG91YmxlIHRpbWVvdXQ7CisgICAgUFlfVElNRU9VVF9UIHRpbWVvdXRfdXM7CisgICAgaW50IHJlcGVhdCA9IDA7CisgICAgUHlPYmplY3QgKmZpbGUgPSBOVUxMOworICAgIGludCBmZDsKKyAgICBpbnQgZXhpdCA9IDA7CisgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlOworICAgIGNoYXIgKmhlYWRlcjsKKyAgICBzaXplX3QgaGVhZGVyX2xlbjsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywKKyAgICAgICAgImR8aU9pOmR1bXBfdHJhY2ViYWNrc19sYXRlciIsIGt3bGlzdCwKKyAgICAgICAgJnRpbWVvdXQsICZyZXBlYXQsICZmaWxlLCAmZXhpdCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmICgodGltZW91dCAqIDFlNikgPj0gKGRvdWJsZSkgUFlfVElNRU9VVF9NQVgpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsICAidGltZW91dCB2YWx1ZSBpcyB0b28gbGFyZ2UiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHRpbWVvdXRfdXMgPSAoUFlfVElNRU9VVF9UKSh0aW1lb3V0ICogMWU2KTsKKyAgICBpZiAodGltZW91dF91cyA8PSAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAidGltZW91dCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHRzdGF0ZSA9IGdldF90aHJlYWRfc3RhdGUoKTsKKyAgICBpZiAodHN0YXRlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZmlsZSA9IGZhdWx0aGFuZGxlcl9nZXRfZmlsZW5vKGZpbGUsICZmZCk7CisgICAgaWYgKGZpbGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAvKiBmb3JtYXQgdGhlIHRpbWVvdXQgKi8KKyAgICBoZWFkZXIgPSBmb3JtYXRfdGltZW91dCh0aW1lb3V0KTsKKyAgICBpZiAoaGVhZGVyID09IE5VTEwpCisgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworICAgIGhlYWRlcl9sZW4gPSBzdHJsZW4oaGVhZGVyKTsKKworICAgIC8qIENhbmNlbCBwcmV2aW91cyB0aHJlYWQsIGlmIHJ1bm5pbmcgKi8KKyAgICBjYW5jZWxfZHVtcF90cmFjZWJhY2tzX2xhdGVyKCk7CisKKyAgICBQeV9YREVDUkVGKHRocmVhZC5maWxlKTsKKyAgICBQeV9JTkNSRUYoZmlsZSk7CisgICAgdGhyZWFkLmZpbGUgPSBmaWxlOworICAgIHRocmVhZC5mZCA9IGZkOworICAgIHRocmVhZC50aW1lb3V0X3VzID0gdGltZW91dF91czsKKyAgICB0aHJlYWQucmVwZWF0ID0gcmVwZWF0OworICAgIHRocmVhZC5pbnRlcnAgPSB0c3RhdGUtPmludGVycDsKKyAgICB0aHJlYWQuZXhpdCA9IGV4aXQ7CisgICAgdGhyZWFkLmhlYWRlciA9IGhlYWRlcjsKKyAgICB0aHJlYWQuaGVhZGVyX2xlbiA9IGhlYWRlcl9sZW47CisKKyAgICAvKiBBcm0gdGhlc2UgbG9ja3MgdG8gc2VydmUgYXMgZXZlbnRzIHdoZW4gcmVsZWFzZWQgKi8KKyAgICBQeVRocmVhZF9hY3F1aXJlX2xvY2sodGhyZWFkLnJ1bm5pbmcsIDEpOworCisgICAgaWYgKFB5VGhyZWFkX3N0YXJ0X25ld190aHJlYWQoZmF1bHRoYW5kbGVyX3RocmVhZCwgTlVMTCkgPT0gLTEpIHsKKyAgICAgICAgUHlUaHJlYWRfcmVsZWFzZV9sb2NrKHRocmVhZC5ydW5uaW5nKTsKKyAgICAgICAgUHlfQ0xFQVIodGhyZWFkLmZpbGUpOworICAgICAgICBmcmVlKGhlYWRlcik7CisgICAgICAgIHRocmVhZC5oZWFkZXIgPSBOVUxMOworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgInVuYWJsZSB0byBzdGFydCB3YXRjaGRvZyB0aHJlYWQiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK3N0YXRpYyBQeU9iamVjdCoKK2ZhdWx0aGFuZGxlcl9jYW5jZWxfZHVtcF90cmFjZWJhY2tzX2xhdGVyX3B5KFB5T2JqZWN0ICpzZWxmKQoreworICAgIGNhbmNlbF9kdW1wX3RyYWNlYmFja3NfbGF0ZXIoKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKyNlbmRpZiAgLyogRkFVTFRIQU5ETEVSX0xBVEVSICovCisKKyNpZmRlZiBGQVVMVEhBTkRMRVJfVVNFUgorc3RhdGljIGludAorZmF1bHRoYW5kbGVyX3JlZ2lzdGVyKGludCBzaWdudW0sIGludCBjaGFpbiwgX1B5X3NpZ2hhbmRsZXJfdCAqcF9wcmV2aW91cykKK3sKKyNpZmRlZiBIQVZFX1NJR0FDVElPTgorICAgIHN0cnVjdCBzaWdhY3Rpb24gYWN0aW9uOworICAgIGFjdGlvbi5zYV9oYW5kbGVyID0gZmF1bHRoYW5kbGVyX3VzZXI7CisgICAgc2lnZW1wdHlzZXQoJmFjdGlvbi5zYV9tYXNrKTsKKyAgICAvKiBpZiB0aGUgc2lnbmFsIGlzIHJlY2VpdmVkIHdoaWxlIHRoZSBrZXJuZWwgaXMgZXhlY3V0aW5nIGEgc3lzdGVtCisgICAgICAgY2FsbCwgdHJ5IHRvIHJlc3RhcnQgdGhlIHN5c3RlbSBjYWxsIGluc3RlYWQgb2YgaW50ZXJydXB0aW5nIGl0IGFuZAorICAgICAgIHJldHVybiBFSU5UUi4gKi8KKyAgICBhY3Rpb24uc2FfZmxhZ3MgPSBTQV9SRVNUQVJUOworICAgIGlmIChjaGFpbikgeworICAgICAgICAvKiBkbyBub3QgcHJldmVudCB0aGUgc2lnbmFsIGZyb20gYmVpbmcgcmVjZWl2ZWQgZnJvbSB3aXRoaW4gaXRzCisgICAgICAgICAgIG93biBzaWduYWwgaGFuZGxlciAqLworICAgICAgICBhY3Rpb24uc2FfZmxhZ3MgPSBTQV9OT0RFRkVSOworICAgIH0KKyNpZmRlZiBIQVZFX1NJR0FMVFNUQUNLCisgICAgaWYgKHN0YWNrLnNzX3NwICE9IE5VTEwpIHsKKyAgICAgICAgLyogQ2FsbCB0aGUgc2lnbmFsIGhhbmRsZXIgb24gYW4gYWx0ZXJuYXRlIHNpZ25hbCBzdGFjaworICAgICAgICAgICBwcm92aWRlZCBieSBzaWdhbHRzdGFjaygpICovCisgICAgICAgIGFjdGlvbi5zYV9mbGFncyB8PSBTQV9PTlNUQUNLOworICAgIH0KKyNlbmRpZgorICAgIHJldHVybiBzaWdhY3Rpb24oc2lnbnVtLCAmYWN0aW9uLCBwX3ByZXZpb3VzKTsKKyNlbHNlCisgICAgX1B5X3NpZ2hhbmRsZXJfdCBwcmV2aW91czsKKyAgICBwcmV2aW91cyA9IHNpZ25hbChzaWdudW0sIGZhdWx0aGFuZGxlcl91c2VyKTsKKyAgICBpZiAocF9wcmV2aW91cyAhPSBOVUxMKQorICAgICAgICAqcF9wcmV2aW91cyA9IHByZXZpb3VzOworICAgIHJldHVybiAocHJldmlvdXMgPT0gU0lHX0VSUik7CisjZW5kaWYKK30KKworLyogSGFuZGxlciBvZiB1c2VyIHNpZ25hbHMgKGUuZy4gU0lHVVNSMSkuCisKKyAgIER1bXAgdGhlIHRyYWNlYmFjayBvZiB0aGUgY3VycmVudCB0aHJlYWQsIG9yIG9mIGFsbCB0aHJlYWRzIGlmCisgICB0aHJlYWQuYWxsX3RocmVhZHMgaXMgdHJ1ZS4KKworICAgVGhpcyBmdW5jdGlvbiBpcyBzaWduYWwgc2FmZSBhbmQgc2hvdWxkIG9ubHkgY2FsbCBzaWduYWwgc2FmZSBmdW5jdGlvbnMuICovCisKK3N0YXRpYyB2b2lkCitmYXVsdGhhbmRsZXJfdXNlcihpbnQgc2lnbnVtKQoreworICAgIHVzZXJfc2lnbmFsX3QgKnVzZXI7CisgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlOworICAgIGludCBzYXZlX2Vycm5vID0gZXJybm87CisKKyAgICB1c2VyID0gJnVzZXJfc2lnbmFsc1tzaWdudW1dOworICAgIGlmICghdXNlci0+ZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICAvKiBQeVRocmVhZFN0YXRlX0dldCgpIGRvZXNuJ3QgZ2l2ZSB0aGUgc3RhdGUgb2YgdGhlIGN1cnJlbnQgdGhyZWFkIGlmCisgICAgICAgdGhlIHRocmVhZCBkb2Vzbid0IGhvbGQgdGhlIEdJTC4gUmVhZCB0aGUgdGhyZWFkIGxvY2FsIHN0b3JhZ2UgKFRMUykKKyAgICAgICBpbnN0ZWFkOiBjYWxsIFB5R0lMU3RhdGVfR2V0VGhpc1RocmVhZFN0YXRlKCkuICovCisgICAgdHN0YXRlID0gUHlHSUxTdGF0ZV9HZXRUaGlzVGhyZWFkU3RhdGUoKTsKKyNlbHNlCisgICAgdHN0YXRlID0gUHlUaHJlYWRTdGF0ZV9HZXQoKTsKKyNlbmRpZgorCisgICAgaWYgKHVzZXItPmFsbF90aHJlYWRzKQorICAgICAgICBfUHlfRHVtcFRyYWNlYmFja1RocmVhZHModXNlci0+ZmQsIHVzZXItPmludGVycCwgdHN0YXRlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHRzdGF0ZSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBfUHlfRHVtcFRyYWNlYmFjayh1c2VyLT5mZCwgdHN0YXRlKTsKKyAgICB9CisjaWZkZWYgSEFWRV9TSUdBQ1RJT04KKyAgICBpZiAodXNlci0+Y2hhaW4pIHsKKyAgICAgICAgKHZvaWQpc2lnYWN0aW9uKHNpZ251bSwgJnVzZXItPnByZXZpb3VzLCBOVUxMKTsKKyAgICAgICAgLyogY2FsbCB0aGUgcHJldmlvdXMgc2lnbmFsIGhhbmRsZXIgKi8KKyAgICAgICAgcmFpc2Uoc2lnbnVtKTsKKyAgICAgICAgKHZvaWQpZmF1bHRoYW5kbGVyX3JlZ2lzdGVyKHNpZ251bSwgdXNlci0+Y2hhaW4sIE5VTEwpOworICAgIH0KKyNlbHNlCisgICAgaWYgKHVzZXItPmNoYWluKSB7CisgICAgICAgIC8qIGNhbGwgdGhlIHByZXZpb3VzIHNpZ25hbCBoYW5kbGVyICovCisgICAgICAgIHVzZXItPnByZXZpb3VzKHNpZ251bSk7CisgICAgfQorI2VuZGlmCisgICAgZXJybm8gPSBzYXZlX2Vycm5vOworfQorCitzdGF0aWMgaW50CitjaGVja19zaWdudW0oaW50IHNpZ251bSkKK3sKKyAgICB1bnNpZ25lZCBpbnQgaTsKKworICAgIGZvciAoaT0wOyBpIDwgZmF1bHRoYW5kbGVyX25zaWduYWxzOyBpKyspIHsKKyAgICAgICAgaWYgKGZhdWx0aGFuZGxlcl9oYW5kbGVyc1tpXS5zaWdudW0gPT0gc2lnbnVtKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYWwgJWkgY2Fubm90IGJlIHJlZ2lzdGVyZWQsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAidXNlIGVuYWJsZSgpIGluc3RlYWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ251bSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoc2lnbnVtIDwgMSB8fCBOU0lHIDw9IHNpZ251bSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgInNpZ25hbCBudW1iZXIgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIFB5T2JqZWN0KgorZmF1bHRoYW5kbGVyX3JlZ2lzdGVyX3B5KFB5T2JqZWN0ICpzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsic2lnbnVtIiwgImZpbGUiLCAiYWxsX3RocmVhZHMiLCAiY2hhaW4iLCBOVUxMfTsKKyAgICBpbnQgc2lnbnVtOworICAgIFB5T2JqZWN0ICpmaWxlID0gTlVMTDsKKyAgICBpbnQgYWxsX3RocmVhZHMgPSAxOworICAgIGludCBjaGFpbiA9IDA7CisgICAgaW50IGZkOworICAgIHVzZXJfc2lnbmFsX3QgKnVzZXI7CisgICAgX1B5X3NpZ2hhbmRsZXJfdCBwcmV2aW91czsKKyAgICBQeVRocmVhZFN0YXRlICp0c3RhdGU7CisgICAgaW50IGVycjsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywKKyAgICAgICAgIml8T2lpOnJlZ2lzdGVyIiwga3dsaXN0LAorICAgICAgICAmc2lnbnVtLCAmZmlsZSwgJmFsbF90aHJlYWRzLCAmY2hhaW4pKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmICghY2hlY2tfc2lnbnVtKHNpZ251bSkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgdHN0YXRlID0gZ2V0X3RocmVhZF9zdGF0ZSgpOworICAgIGlmICh0c3RhdGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBmaWxlID0gZmF1bHRoYW5kbGVyX2dldF9maWxlbm8oZmlsZSwgJmZkKTsKKyAgICBpZiAoZmlsZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmICh1c2VyX3NpZ25hbHMgPT0gTlVMTCkgeworICAgICAgICB1c2VyX3NpZ25hbHMgPSBjYWxsb2MoTlNJRywgc2l6ZW9mKHVzZXJfc2lnbmFsX3QpKTsKKyAgICAgICAgaWYgKHVzZXJfc2lnbmFscyA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CisgICAgfQorICAgIHVzZXIgPSAmdXNlcl9zaWduYWxzW3NpZ251bV07CisKKyAgICBpZiAoIXVzZXItPmVuYWJsZWQpIHsKKyAgICAgICAgZXJyID0gZmF1bHRoYW5kbGVyX3JlZ2lzdGVyKHNpZ251bSwgY2hhaW4sICZwcmV2aW91cyk7CisgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorCisgICAgUHlfWERFQ1JFRih1c2VyLT5maWxlKTsKKyAgICBQeV9JTkNSRUYoZmlsZSk7CisgICAgdXNlci0+ZmlsZSA9IGZpbGU7CisgICAgdXNlci0+ZmQgPSBmZDsKKyAgICB1c2VyLT5hbGxfdGhyZWFkcyA9IGFsbF90aHJlYWRzOworICAgIHVzZXItPmNoYWluID0gY2hhaW47CisgICAgdXNlci0+cHJldmlvdXMgPSBwcmV2aW91czsKKyAgICB1c2VyLT5pbnRlcnAgPSB0c3RhdGUtPmludGVycDsKKyAgICB1c2VyLT5lbmFibGVkID0gMTsKKworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgaW50CitmYXVsdGhhbmRsZXJfdW5yZWdpc3Rlcih1c2VyX3NpZ25hbF90ICp1c2VyLCBpbnQgc2lnbnVtKQoreworICAgIGlmICghdXNlci0+ZW5hYmxlZCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgdXNlci0+ZW5hYmxlZCA9IDA7CisjaWZkZWYgSEFWRV9TSUdBQ1RJT04KKyAgICAodm9pZClzaWdhY3Rpb24oc2lnbnVtLCAmdXNlci0+cHJldmlvdXMsIE5VTEwpOworI2Vsc2UKKyAgICAodm9pZClzaWduYWwoc2lnbnVtLCB1c2VyLT5wcmV2aW91cyk7CisjZW5kaWYKKyAgICBQeV9DTEVBUih1c2VyLT5maWxlKTsKKyAgICB1c2VyLT5mZCA9IC0xOworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgUHlPYmplY3QqCitmYXVsdGhhbmRsZXJfdW5yZWdpc3Rlcl9weShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgaW50IHNpZ251bTsKKyAgICB1c2VyX3NpZ25hbF90ICp1c2VyOworICAgIGludCBjaGFuZ2U7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImk6dW5yZWdpc3RlciIsICZzaWdudW0pKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmICghY2hlY2tfc2lnbnVtKHNpZ251bSkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKHVzZXJfc2lnbmFscyA9PSBOVUxMKQorICAgICAgICBQeV9SRVRVUk5fRkFMU0U7CisKKyAgICB1c2VyID0gJnVzZXJfc2lnbmFsc1tzaWdudW1dOworICAgIGNoYW5nZSA9IGZhdWx0aGFuZGxlcl91bnJlZ2lzdGVyKHVzZXIsIHNpZ251bSk7CisgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZyhjaGFuZ2UpOworfQorI2VuZGlmICAgLyogRkFVTFRIQU5ETEVSX1VTRVIgKi8KKworCitzdGF0aWMgUHlPYmplY3QgKgorZmF1bHRoYW5kbGVyX3JlYWRfbnVsbChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgdm9sYXRpbGUgaW50ICp4OworICAgIHZvbGF0aWxlIGludCB5OworICAgIGludCByZWxlYXNlX2dpbCA9IDA7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ8aTpfcmVhZF9udWxsIiwgJnJlbGVhc2VfZ2lsKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICB4ID0gTlVMTDsKKyAgICBpZiAocmVsZWFzZV9naWwpIHsKKyAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgICAgICB5ID0gKng7CisgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgfSBlbHNlCisgICAgICAgIHkgPSAqeDsKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKHkpOworCit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitmYXVsdGhhbmRsZXJfc2lnc2VndihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisjaWYgZGVmaW5lZChNU19XSU5ET1dTKQorICAgIC8qIEZvciBTSUdTRUdWLCBmYXVsdGhhbmRsZXJfZmF0YWxfZXJyb3IoKSByZXN0b3JlcyB0aGUgcHJldmlvdXMgc2lnbmFsCisgICAgICAgaGFuZGxlciBhbmQgdGhlbiBnaXZlcyBiYWNrIHRoZSBleGVjdXRpb24gZmxvdyB0byB0aGUgcHJvZ3JhbSAod2l0aG91dAorICAgICAgIGV4cGxpY2l0bHkgY2FsbGluZyB0aGUgcHJldmlvdXMgZXJyb3IgaGFuZGxlcikuIEluIGEgbm9ybWFsIGNhc2UsIHRoZQorICAgICAgIFNJR1NFR1Ygd2FzIHJhaXNlZCBieSB0aGUga2VybmVsIGJlY2F1c2Ugb2YgYSBmYXVsdCwgYW5kIHNvIGlmIHRoZQorICAgICAgIHByb2dyYW0gcmV0cmllcyB0byBleGVjdXRlIHRoZSBzYW1lIGluc3RydWN0aW9uLCB0aGUgZmF1bHQgd2lsbCBiZQorICAgICAgIHJhaXNlZCBhZ2Fpbi4KKworICAgICAgIEhlcmUgdGhlIGZhdWx0IGlzIHNpbXVsYXRlZCBieSBhIGZha2UgU0lHU0VHViBzaWduYWwgcmFpc2VkIGJ5IHRoZQorICAgICAgIGFwcGxpY2F0aW9uLiBXZSBoYXZlIHRvIHJhaXNlIFNJR1NFR1YgYXQgbGVhc2UgdHdpY2U6IG9uY2UgZm9yCisgICAgICAgZmF1bHRoYW5kbGVyX2ZhdGFsX2Vycm9yKCksIGFuZCBvbmUgbW9yZSB0aW1lIGZvciB0aGUgcHJldmlvdXMgc2lnbmFsCisgICAgICAgaGFuZGxlci4gKi8KKyAgICB3aGlsZSgxKQorICAgICAgICByYWlzZShTSUdTRUdWKTsKKyNlbHNlCisgICAgcmFpc2UoU0lHU0VHVik7CisjZW5kaWYKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2ZhdWx0aGFuZGxlcl9zaWdmcGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIC8qIERvIGFuIGludGVnZXIgZGl2aXNpb24gYnkgemVybzogcmFpc2UgYSBTSUdGUEUgb24gSW50ZWwgQ1BVLCBidXQgbm90IG9uCisgICAgICAgUG93ZXJQQy4gVXNlIHZvbGF0aWxlIHRvIGRpc2FibGUgY29tcGlsZS10aW1lIG9wdGltaXphdGlvbnMuICovCisgICAgdm9sYXRpbGUgaW50IHggPSAxLCB5ID0gMCwgejsKKyAgICB6ID0geCAvIHk7CisgICAgLyogSWYgdGhlIGRpdmlzaW9uIGJ5IHplcm8gZGlkbid0IHJhaXNlIGEgU0lHRlBFIChlLmcuIG9uIFBvd2VyUEMpLAorICAgICAgIHJhaXNlIGl0IG1hbnVhbGx5LiAqLworICAgIHJhaXNlKFNJR0ZQRSk7CisgICAgLyogVGhpcyBsaW5lIGlzIG5ldmVyIHJlYWNoZWQsIGJ1dCB3ZSBwcmV0ZW5kIHRvIG1ha2Ugc29tZXRoaW5nIHdpdGggegorICAgICAgIHRvIHNpbGVuY2UgYSBjb21waWxlciB3YXJuaW5nLiAqLworICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoeik7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitmYXVsdGhhbmRsZXJfc2lnYWJydChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisjaWZkZWYgX01TQ19WRVIKKyAgICAvKiBWaXN1YWwgU3R1ZGlvOiBjb25maWd1cmUgYWJvcnQoKSB0byBub3QgZGlzcGxheSBhbiBlcnJvciBtZXNzYWdlIG5vcgorICAgICAgIG9wZW4gYSBwb3B1cCBhc2tpbmcgdG8gcmVwb3J0IHRoZSBmYXVsdC4gKi8KKyAgICBfc2V0X2Fib3J0X2JlaGF2aW9yKDAsIF9XUklURV9BQk9SVF9NU0cgfCBfQ0FMTF9SRVBPUlRGQVVMVCk7CisjZW5kaWYKKyAgICBhYm9ydCgpOworICAgIFB5X1JFVFVSTl9OT05FOworfQorCisjaWZkZWYgU0lHQlVTCitzdGF0aWMgUHlPYmplY3QgKgorZmF1bHRoYW5kbGVyX3NpZ2J1cyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgcmFpc2UoU0lHQlVTKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKyNlbmRpZgorCisjaWZkZWYgU0lHSUxMCitzdGF0aWMgUHlPYmplY3QgKgorZmF1bHRoYW5kbGVyX3NpZ2lsbChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgcmFpc2UoU0lHSUxMKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKyNlbmRpZgorCitzdGF0aWMgUHlPYmplY3QgKgorZmF1bHRoYW5kbGVyX2ZhdGFsX2Vycm9yX3B5KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBjaGFyICptZXNzYWdlOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieTpmYXRhbF9lcnJvciIsICZtZXNzYWdlKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfRmF0YWxFcnJvcihtZXNzYWdlKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworI2lmIGRlZmluZWQoSEFWRV9TSUdBTFRTVEFDSykgJiYgZGVmaW5lZChIQVZFX1NJR0FDVElPTikKK3N0YXRpYyB2b2lkKgorc3RhY2tfb3ZlcmZsb3codm9pZCAqbWluX3NwLCB2b2lkICptYXhfc3AsIHNpemVfdCAqZGVwdGgpCit7CisgICAgLyogYWxsb2NhdGUgNDA5NiBieXRlcyBvbiB0aGUgc3RhY2sgYXQgZWFjaCBjYWxsICovCisgICAgdW5zaWduZWQgY2hhciBidWZmZXJbNDA5Nl07CisgICAgdm9pZCAqc3AgPSAmYnVmZmVyOworICAgICpkZXB0aCArPSAxOworICAgIGlmIChzcCA8IG1pbl9zcCB8fCBtYXhfc3AgPCBzcCkKKyAgICAgICAgcmV0dXJuIHNwOworICAgIGJ1ZmZlclswXSA9IDE7CisgICAgYnVmZmVyWzQwOTVdID0gMDsKKyAgICByZXR1cm4gc3RhY2tfb3ZlcmZsb3cobWluX3NwLCBtYXhfc3AsIGRlcHRoKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2ZhdWx0aGFuZGxlcl9zdGFja19vdmVyZmxvdyhQeU9iamVjdCAqc2VsZikKK3sKKyAgICBzaXplX3QgZGVwdGgsIHNpemU7CisgICAgY2hhciAqc3AgPSAoY2hhciAqKSZkZXB0aCwgKnN0b3A7CisKKyAgICBkZXB0aCA9IDA7CisgICAgc3RvcCA9IHN0YWNrX292ZXJmbG93KHNwIC0gU1RBQ0tfT1ZFUkZMT1dfTUFYX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHNwICsgU1RBQ0tfT1ZFUkZMT1dfTUFYX1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZkZXB0aCk7CisgICAgaWYgKHNwIDwgc3RvcCkKKyAgICAgICAgc2l6ZSA9IHN0b3AgLSBzcDsKKyAgICBlbHNlCisgICAgICAgIHNpemUgPSBzcCAtIHN0b3A7CisgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgInVuYWJsZSB0byByYWlzZSBhIHN0YWNrIG92ZXJmbG93IChhbGxvY2F0ZWQgJXp1IGJ5dGVzICIKKyAgICAgICAgIm9uIHRoZSBzdGFjaywgJXp1IHJlY3Vyc2l2ZSBjYWxscykiLAorICAgICAgICBzaXplLCBkZXB0aCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisjZW5kaWYKKworCitzdGF0aWMgaW50CitmYXVsdGhhbmRsZXJfdHJhdmVyc2UoUHlPYmplY3QgKm1vZHVsZSwgdmlzaXRwcm9jIHZpc2l0LCB2b2lkICphcmcpCit7CisjaWZkZWYgRkFVTFRIQU5ETEVSX1VTRVIKKyAgICB1bnNpZ25lZCBpbnQgc2lnbnVtOworI2VuZGlmCisKKyNpZmRlZiBGQVVMVEhBTkRMRVJfTEFURVIKKyAgICBQeV9WSVNJVCh0aHJlYWQuZmlsZSk7CisjZW5kaWYKKyNpZmRlZiBGQVVMVEhBTkRMRVJfVVNFUgorICAgIGlmICh1c2VyX3NpZ25hbHMgIT0gTlVMTCkgeworICAgICAgICBmb3IgKHNpZ251bT0wOyBzaWdudW0gPCBOU0lHOyBzaWdudW0rKykKKyAgICAgICAgICAgIFB5X1ZJU0lUKHVzZXJfc2lnbmFsc1tzaWdudW1dLmZpbGUpOworICAgIH0KKyNlbmRpZgorICAgIFB5X1ZJU0lUKGZhdGFsX2Vycm9yLmZpbGUpOworICAgIHJldHVybiAwOworfQorCitQeURvY19TVFJWQVIobW9kdWxlX2RvYywKKyJmYXVsdGhhbmRsZXIgbW9kdWxlLiIpOworCitzdGF0aWMgUHlNZXRob2REZWYgbW9kdWxlX21ldGhvZHNbXSA9IHsKKyAgICB7ImVuYWJsZSIsCisgICAgIChQeUNGdW5jdGlvbilmYXVsdGhhbmRsZXJfZW5hYmxlLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywKKyAgICAgUHlEb2NfU1RSKCJlbmFibGUoZmlsZT1zeXMuc3RkZXJyLCBhbGxfdGhyZWFkcz1UcnVlKTogIgorICAgICAgICAgICAgICAgImVuYWJsZSB0aGUgZmF1bHQgaGFuZGxlciIpfSwKKyAgICB7ImRpc2FibGUiLCAoUHlDRnVuY3Rpb24pZmF1bHRoYW5kbGVyX2Rpc2FibGVfcHksIE1FVEhfTk9BUkdTLAorICAgICBQeURvY19TVFIoImRpc2FibGUoKTogZGlzYWJsZSB0aGUgZmF1bHQgaGFuZGxlciIpfSwKKyAgICB7ImlzX2VuYWJsZWQiLCAoUHlDRnVuY3Rpb24pZmF1bHRoYW5kbGVyX2lzX2VuYWJsZWQsIE1FVEhfTk9BUkdTLAorICAgICBQeURvY19TVFIoImlzX2VuYWJsZWQoKS0+Ym9vbDogY2hlY2sgaWYgdGhlIGhhbmRsZXIgaXMgZW5hYmxlZCIpfSwKKyAgICB7ImR1bXBfdHJhY2ViYWNrIiwKKyAgICAgKFB5Q0Z1bmN0aW9uKWZhdWx0aGFuZGxlcl9kdW1wX3RyYWNlYmFja19weSwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCisgICAgIFB5RG9jX1NUUigiZHVtcF90cmFjZWJhY2soZmlsZT1zeXMuc3RkZXJyLCBhbGxfdGhyZWFkcz1UcnVlKTogIgorICAgICAgICAgICAgICAgImR1bXAgdGhlIHRyYWNlYmFjayBvZiB0aGUgY3VycmVudCB0aHJlYWQsIG9yIG9mIGFsbCB0aHJlYWRzICIKKyAgICAgICAgICAgICAgICJpZiBhbGxfdGhyZWFkcyBpcyBUcnVlLCBpbnRvIGZpbGUiKX0sCisjaWZkZWYgRkFVTFRIQU5ETEVSX0xBVEVSCisgICAgeyJkdW1wX3RyYWNlYmFja3NfbGF0ZXIiLAorICAgICAoUHlDRnVuY3Rpb24pZmF1bHRoYW5kbGVyX2R1bXBfdHJhY2ViYWNrc19sYXRlciwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCisgICAgIFB5RG9jX1NUUigiZHVtcF90cmFjZWJhY2tzX2xhdGVyKHRpbWVvdXQsIHJlcGVhdD1GYWxzZSwgZmlsZT1zeXMuc3RkZXJybiwgZXhpdD1GYWxzZSk6XG4iCisgICAgICAgICAgICAgICAiZHVtcCB0aGUgdHJhY2ViYWNrIG9mIGFsbCB0aHJlYWRzIGluIHRpbWVvdXQgc2Vjb25kcyxcbiIKKyAgICAgICAgICAgICAgICJvciBlYWNoIHRpbWVvdXQgc2Vjb25kcyBpZiByZXBlYXQgaXMgVHJ1ZS4gSWYgZXhpdCBpcyBUcnVlLCAiCisgICAgICAgICAgICAgICAiY2FsbCBfZXhpdCgxKSB3aGljaCBpcyBub3Qgc2FmZS4iKX0sCisgICAgeyJjYW5jZWxfZHVtcF90cmFjZWJhY2tzX2xhdGVyIiwKKyAgICAgKFB5Q0Z1bmN0aW9uKWZhdWx0aGFuZGxlcl9jYW5jZWxfZHVtcF90cmFjZWJhY2tzX2xhdGVyX3B5LCBNRVRIX05PQVJHUywKKyAgICAgUHlEb2NfU1RSKCJjYW5jZWxfZHVtcF90cmFjZWJhY2tzX2xhdGVyKCk6XG5jYW5jZWwgdGhlIHByZXZpb3VzIGNhbGwgIgorICAgICAgICAgICAgICAgInRvIGR1bXBfdHJhY2ViYWNrc19sYXRlcigpLiIpfSwKKyNlbmRpZgorCisjaWZkZWYgRkFVTFRIQU5ETEVSX1VTRVIKKyAgICB7InJlZ2lzdGVyIiwKKyAgICAgKFB5Q0Z1bmN0aW9uKWZhdWx0aGFuZGxlcl9yZWdpc3Rlcl9weSwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsCisgICAgIFB5RG9jX1NUUigicmVnaXN0ZXIoc2lnbnVtLCBmaWxlPXN5cy5zdGRlcnIsIGFsbF90aHJlYWRzPVRydWUsIGNoYWluPUZhbHNlKTogIgorICAgICAgICAgICAgICAgInJlZ2lzdGVyIGFuIGhhbmRsZXIgZm9yIHRoZSBzaWduYWwgJ3NpZ251bSc6IGR1bXAgdGhlICIKKyAgICAgICAgICAgICAgICJ0cmFjZWJhY2sgb2YgdGhlIGN1cnJlbnQgdGhyZWFkLCBvciBvZiBhbGwgdGhyZWFkcyBpZiAiCisgICAgICAgICAgICAgICAiYWxsX3RocmVhZHMgaXMgVHJ1ZSwgaW50byBmaWxlIil9LAorICAgIHsidW5yZWdpc3RlciIsCisgICAgIGZhdWx0aGFuZGxlcl91bnJlZ2lzdGVyX3B5LCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywKKyAgICAgUHlEb2NfU1RSKCJ1bnJlZ2lzdGVyKHNpZ251bSk6IHVucmVnaXN0ZXIgdGhlIGhhbmRsZXIgb2YgdGhlIHNpZ25hbCAiCisgICAgICAgICAgICAgICAgIidzaWdudW0nIHJlZ2lzdGVyZWQgYnkgcmVnaXN0ZXIoKSIpfSwKKyNlbmRpZgorCisgICAgeyJfcmVhZF9udWxsIiwgZmF1bHRoYW5kbGVyX3JlYWRfbnVsbCwgTUVUSF9WQVJBUkdTLAorICAgICBQeURvY19TVFIoIl9yZWFkX251bGwocmVsZWFzZV9naWw9RmFsc2UpOiByZWFkIGZyb20gTlVMTCwgcmFpc2UgIgorICAgICAgICAgICAgICAgImEgU0lHU0VHViBvciBTSUdCVVMgc2lnbmFsIGRlcGVuZGluZyBvbiB0aGUgcGxhdGZvcm0iKX0sCisgICAgeyJfc2lnc2VndiIsIGZhdWx0aGFuZGxlcl9zaWdzZWd2LCBNRVRIX1ZBUkFSR1MsCisgICAgIFB5RG9jX1NUUigiX3NpZ3NlZ3YoKTogcmFpc2UgYSBTSUdTRUdWIHNpZ25hbCIpfSwKKyAgICB7Il9zaWdhYnJ0IiwgZmF1bHRoYW5kbGVyX3NpZ2FicnQsIE1FVEhfVkFSQVJHUywKKyAgICAgUHlEb2NfU1RSKCJfc2lnYWJydCgpOiByYWlzZSBhIFNJR0FCUlQgc2lnbmFsIil9LAorICAgIHsiX3NpZ2ZwZSIsIChQeUNGdW5jdGlvbilmYXVsdGhhbmRsZXJfc2lnZnBlLCBNRVRIX05PQVJHUywKKyAgICAgUHlEb2NfU1RSKCJfc2lnZnBlKCk6IHJhaXNlIGEgU0lHRlBFIHNpZ25hbCIpfSwKKyNpZmRlZiBTSUdCVVMKKyAgICB7Il9zaWdidXMiLCAoUHlDRnVuY3Rpb24pZmF1bHRoYW5kbGVyX3NpZ2J1cywgTUVUSF9OT0FSR1MsCisgICAgIFB5RG9jX1NUUigiX3NpZ2J1cygpOiByYWlzZSBhIFNJR0JVUyBzaWduYWwiKX0sCisjZW5kaWYKKyNpZmRlZiBTSUdJTEwKKyAgICB7Il9zaWdpbGwiLCAoUHlDRnVuY3Rpb24pZmF1bHRoYW5kbGVyX3NpZ2lsbCwgTUVUSF9OT0FSR1MsCisgICAgIFB5RG9jX1NUUigiX3NpZ2lsbCgpOiByYWlzZSBhIFNJR0lMTCBzaWduYWwiKX0sCisjZW5kaWYKKyAgICB7Il9mYXRhbF9lcnJvciIsIGZhdWx0aGFuZGxlcl9mYXRhbF9lcnJvcl9weSwgTUVUSF9WQVJBUkdTLAorICAgICBQeURvY19TVFIoIl9mYXRhbF9lcnJvcihtZXNzYWdlKTogY2FsbCBQeV9GYXRhbEVycm9yKG1lc3NhZ2UpIil9LAorI2lmIGRlZmluZWQoSEFWRV9TSUdBTFRTVEFDSykgJiYgZGVmaW5lZChIQVZFX1NJR0FDVElPTikKKyAgICB7Il9zdGFja19vdmVyZmxvdyIsIChQeUNGdW5jdGlvbilmYXVsdGhhbmRsZXJfc3RhY2tfb3ZlcmZsb3csIE1FVEhfTk9BUkdTLAorICAgICBQeURvY19TVFIoIl9zdGFja19vdmVyZmxvdygpOiByZWN1cnNpdmUgY2FsbCB0byByYWlzZSBhIHN0YWNrIG92ZXJmbG93Iil9LAorI2VuZGlmCisgICAge05VTEwsIE5VTEx9ICAvKiBzZW50aW5lbCAqLworfTsKKworc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiBtb2R1bGVfZGVmID0geworICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKKyAgICAiZmF1bHRoYW5kbGVyIiwKKyAgICBtb2R1bGVfZG9jLAorICAgIDAsIC8qIG5vbi1uZWdhdGl2ZSBzaXplIHRvIGJlIGFibGUgdG8gdW5sb2FkIHRoZSBtb2R1bGUgKi8KKyAgICBtb2R1bGVfbWV0aG9kcywKKyAgICBOVUxMLAorICAgIGZhdWx0aGFuZGxlcl90cmF2ZXJzZSwKKyAgICBOVUxMLAorICAgIE5VTEwKK307CisKK1B5TU9ESU5JVF9GVU5DCitQeUluaXRfZmF1bHRoYW5kbGVyKHZvaWQpCit7CisgICAgcmV0dXJuIFB5TW9kdWxlX0NyZWF0ZSgmbW9kdWxlX2RlZik7Cit9CisKKy8qIENhbGwgZmF1bHRoYW5kbGVyLmVuYWJsZSgpIGlmIHRoZSBQWVRIT05GQVVMVEhBTkRMRVIgZW52aXJvbm1lbnQgdmFyaWFibGUKKyAgIGlzIGRlZmluZWQsIG9yIGlmIHN5cy5feG9wdGlvbnMgaGFzIGEgJ2ZhdWx0aGFuZGxlcicga2V5LiAqLworCitzdGF0aWMgaW50CitmYXVsdGhhbmRsZXJfZW52X29wdGlvbnModm9pZCkKK3sKKyAgICBQeU9iamVjdCAqeG9wdGlvbnMsICprZXksICptb2R1bGUsICpyZXM7CisgICAgX1B5X0lERU5USUZJRVIoZW5hYmxlKTsKKworICAgIGlmICghUHlfR0VURU5WKCJQWVRIT05GQVVMVEhBTkRMRVIiKSkgeworICAgICAgICBpbnQgaGFzX2tleTsKKworICAgICAgICB4b3B0aW9ucyA9IFB5U3lzX0dldFhPcHRpb25zKCk7CisgICAgICAgIGlmICh4b3B0aW9ucyA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIC0xOworCisgICAgICAgIGtleSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJmYXVsdGhhbmRsZXIiKTsKKyAgICAgICAgaWYgKGtleSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIC0xOworCisgICAgICAgIGhhc19rZXkgPSBQeURpY3RfQ29udGFpbnMoeG9wdGlvbnMsIGtleSk7CisgICAgICAgIFB5X0RFQ1JFRihrZXkpOworICAgICAgICBpZiAoIWhhc19rZXkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBtb2R1bGUgPSBQeUltcG9ydF9JbXBvcnRNb2R1bGUoImZhdWx0aGFuZGxlciIpOworICAgIGlmIChtb2R1bGUgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHJlcyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQobW9kdWxlLCAmUHlJZF9lbmFibGUsICIiKTsKKyAgICBQeV9ERUNSRUYobW9kdWxlKTsKKyAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBQeV9ERUNSRUYocmVzKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IF9QeUZhdWx0aGFuZGxlcl9Jbml0KHZvaWQpCit7CisjaWZkZWYgSEFWRV9TSUdBTFRTVEFDSworICAgIGludCBlcnI7CisKKyAgICAvKiBUcnkgdG8gYWxsb2NhdGUgYW4gYWx0ZXJuYXRlIHN0YWNrIGZvciBmYXVsdGhhbmRsZXIoKSBzaWduYWwgaGFuZGxlciB0bworICAgICAqIGJlIGFibGUgdG8gYWxsb2NhdGUgbWVtb3J5IG9uIHRoZSBzdGFjaywgZXZlbiBvbiBhIHN0YWNrIG92ZXJmbG93LiBJZiBpdAorICAgICAqIGZhaWxzLCBpZ25vcmUgdGhlIGVycm9yLiAqLworICAgIHN0YWNrLnNzX2ZsYWdzID0gMDsKKyAgICBzdGFjay5zc19zaXplID0gU0lHU1RLU1o7CisgICAgc3RhY2suc3Nfc3AgPSBQeU1lbV9NYWxsb2Moc3RhY2suc3Nfc2l6ZSk7CisgICAgaWYgKHN0YWNrLnNzX3NwICE9IE5VTEwpIHsKKyAgICAgICAgZXJyID0gc2lnYWx0c3RhY2soJnN0YWNrLCBOVUxMKTsKKyAgICAgICAgaWYgKGVycikgeworICAgICAgICAgICAgUHlNZW1fRnJlZShzdGFjay5zc19zcCk7CisgICAgICAgICAgICBzdGFjay5zc19zcCA9IE5VTEw7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKyNpZmRlZiBGQVVMVEhBTkRMRVJfTEFURVIKKyAgICB0aHJlYWQuZmlsZSA9IE5VTEw7CisgICAgdGhyZWFkLmNhbmNlbF9ldmVudCA9IFB5VGhyZWFkX2FsbG9jYXRlX2xvY2soKTsKKyAgICB0aHJlYWQucnVubmluZyA9IFB5VGhyZWFkX2FsbG9jYXRlX2xvY2soKTsKKyAgICBpZiAoIXRocmVhZC5jYW5jZWxfZXZlbnQgfHwgIXRocmVhZC5ydW5uaW5nKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiY291bGQgbm90IGFsbG9jYXRlIGxvY2tzIGZvciBmYXVsdGhhbmRsZXIiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBQeVRocmVhZF9hY3F1aXJlX2xvY2sodGhyZWFkLmNhbmNlbF9ldmVudCwgMSk7CisjZW5kaWYKKworICAgIHJldHVybiBmYXVsdGhhbmRsZXJfZW52X29wdGlvbnMoKTsKK30KKwordm9pZCBfUHlGYXVsdGhhbmRsZXJfRmluaSh2b2lkKQoreworI2lmZGVmIEZBVUxUSEFORExFUl9VU0VSCisgICAgdW5zaWduZWQgaW50IHNpZ251bTsKKyNlbmRpZgorCisjaWZkZWYgRkFVTFRIQU5ETEVSX0xBVEVSCisgICAgLyogbGF0ZXIgKi8KKyAgICBpZiAodGhyZWFkLmNhbmNlbF9ldmVudCkgeworICAgICAgICBjYW5jZWxfZHVtcF90cmFjZWJhY2tzX2xhdGVyKCk7CisgICAgICAgIFB5VGhyZWFkX3JlbGVhc2VfbG9jayh0aHJlYWQuY2FuY2VsX2V2ZW50KTsKKyAgICAgICAgUHlUaHJlYWRfZnJlZV9sb2NrKHRocmVhZC5jYW5jZWxfZXZlbnQpOworICAgICAgICB0aHJlYWQuY2FuY2VsX2V2ZW50ID0gTlVMTDsKKyAgICB9CisgICAgaWYgKHRocmVhZC5ydW5uaW5nKSB7CisgICAgICAgIFB5VGhyZWFkX2ZyZWVfbG9jayh0aHJlYWQucnVubmluZyk7CisgICAgICAgIHRocmVhZC5ydW5uaW5nID0gTlVMTDsKKyAgICB9CisjZW5kaWYKKworI2lmZGVmIEZBVUxUSEFORExFUl9VU0VSCisgICAgLyogdXNlciAqLworICAgIGlmICh1c2VyX3NpZ25hbHMgIT0gTlVMTCkgeworICAgICAgICBmb3IgKHNpZ251bT0wOyBzaWdudW0gPCBOU0lHOyBzaWdudW0rKykKKyAgICAgICAgICAgIGZhdWx0aGFuZGxlcl91bnJlZ2lzdGVyKCZ1c2VyX3NpZ25hbHNbc2lnbnVtXSwgc2lnbnVtKTsKKyAgICAgICAgZnJlZSh1c2VyX3NpZ25hbHMpOworICAgICAgICB1c2VyX3NpZ25hbHMgPSBOVUxMOworICAgIH0KKyNlbmRpZgorCisgICAgLyogZmF0YWwgKi8KKyAgICBmYXVsdGhhbmRsZXJfZGlzYWJsZSgpOworI2lmZGVmIEhBVkVfU0lHQUxUU1RBQ0sKKyAgICBpZiAoc3RhY2suc3Nfc3AgIT0gTlVMTCkgeworICAgICAgICBQeU1lbV9GcmVlKHN0YWNrLnNzX3NwKTsKKyAgICAgICAgc3RhY2suc3Nfc3AgPSBOVUxMOworICAgIH0KKyNlbmRpZgorfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9mY250bG1vZHVsZS5jIGIvTW9kdWxlcy9mY250bG1vZHVsZS5jCmluZGV4IGJmYzU5ODUuLjZiN2UzZmMgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvZmNudGxtb2R1bGUuYworKysgYi9Nb2R1bGVzL2ZjbnRsbW9kdWxlLmMKQEAgLTU0MCwxMCArNTQwLDEzIEBACiAgICAgaWYgKGlucyhkLCAiRl9TSExDSyIsIChsb25nKUZfU0hMQ0spKSByZXR1cm4gLTE7CiAjZW5kaWYKIAotLyogT1MgWCAoYW5kIG1heWJlIG90aGVycykgbGV0IHlvdSB0ZWxsIHRoZSBzdG9yYWdlIGRldmljZSB0byBmbHVzaCB0byBwaHlzaWNhbCBtZWRpYSAqLworLyogT1MgWCBzcGVjaWZpY3MgKi8KICNpZmRlZiBGX0ZVTExGU1lOQwogICAgIGlmIChpbnMoZCwgIkZfRlVMTEZTWU5DIiwgKGxvbmcpRl9GVUxMRlNZTkMpKSByZXR1cm4gLTE7CiAjZW5kaWYKKyNpZmRlZiBGX05PQ0FDSEUKKyAgICBpZiAoaW5zKGQsICJGX05PQ0FDSEUiLCAobG9uZylGX05PQ0FDSEUpKSByZXR1cm4gLTE7CisjZW5kaWYKIAogLyogRm9yIEZfe0dFVHxTRVR9RkwgKi8KICNpZmRlZiBGRF9DTE9FWEVDCmRpZmYgLS1naXQgYS9Nb2R1bGVzL2ZwZWN0bG1vZHVsZS5jIGIvTW9kdWxlcy9mcGVjdGxtb2R1bGUuYwppbmRleCAxYmI1MWNmLi42YWYyZjgyIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2ZwZWN0bG1vZHVsZS5jCisrKyBiL01vZHVsZXMvZnBlY3RsbW9kdWxlLmMKQEAgLTE3NCwxNyArMTc0LDYgQEAKICAgICBmcF9lbmFibGUoVFJQX0lOVkFMSUQgfCBUUlBfRElWX0JZX1pFUk8gfCBUUlBfT1ZFUkZMT1cpOwogICAgIFB5T1Nfc2V0c2lnKFNJR0ZQRSwgaGFuZGxlcik7CiAKLS8qLS0gREVDIEFMUEhBIE9TRiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi0jZWxpZiBkZWZpbmVkKF9fYWxwaGEpICYmIGRlZmluZWQoX19vc2ZfXykKLSAgICAvKiBSZWZlcmVuY2VzOiAgIGV4Y2VwdGlvbl9pbnRybywgaWVlZSBtYW4gcGFnZXMgKi8KLSAgICAvKiBjYyAtYyAtSS91c3IvbG9jYWwvcHl0aG9uL2luY2x1ZGUgZnBlY3RsbW9kdWxlLmMgKi8KLSAgICAvKiBsZCAtc2hhcmVkIC1vIGZwZWN0bG1vZHVsZS5zbyBmcGVjdGxtb2R1bGUubyAqLwotI2luY2x1ZGUgPG1hY2hpbmUvZnB1Lmg+Ci0gICAgdW5zaWduZWQgbG9uZyBmcF9jb250cm9sID0KLSAgICBJRUVFX1RSQVBfRU5BQkxFX0lOViB8IElFRUVfVFJBUF9FTkFCTEVfRFpFIHwgSUVFRV9UUkFQX0VOQUJMRV9PVkY7Ci0gICAgaWVlZV9zZXRfZnBfY29udHJvbChmcF9jb250cm9sKTsKLSAgICBQeU9TX3NldHNpZyhTSUdGUEUsIGhhbmRsZXIpOwotCiAvKi0tIERFQyBBTFBIQSBMSU5VWCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogI2VsaWYgZGVmaW5lZChfX2FscGhhKSAmJiBkZWZpbmVkKGxpbnV4KQogI2luY2x1ZGUgPGFzbS9mcHUuaD4KZGlmZiAtLWdpdCBhL01vZHVsZXMvZ2Nfd2Vha3JlZi50eHQgYi9Nb2R1bGVzL2djX3dlYWtyZWYudHh0CmluZGV4IGQ3YmU2YzMuLjJmMTg0MDIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvZ2Nfd2Vha3JlZi50eHQKKysrIGIvTW9kdWxlcy9nY193ZWFrcmVmLnR4dApAQCAtMTUsOCArMTUsOCBAQAogaGlzdG9yaWNhbGx5IGNvbW1vbiBidWcpLCB0cF9jbGVhciBlbXB0aWVzIGFuIGluc3RhbmNlJ3MgX19kaWN0X18sIGFuZAogImltcG9zc2libGUiIEF0dHJpYnV0ZUVycm9ycyByZXN1bHQuICBBdCB3b3JzdCwgdHBfY2xlYXIgbGVhdmVzIGJlaGluZCBhbgogaW5zYW5lIG9iamVjdCBhdCB0aGUgQyBsZXZlbCwgYW5kIHNlZ2ZhdWx0cyByZXN1bHQgKGhpc3RvcmljYWxseSwgbW9zdAotb2Z0ZW4gYnkgc2V0dGluZyBhIG5ldy1zdHlsZSBjbGFzcydzIG1ybyBwb2ludGVyIHRvIE5VTEwsIGFmdGVyIHdoaWNoCi1hdHRyaWJ1dGUgbG9va3VwcyBwZXJmb3JtZWQgYnkgdGhlIGNsYXNzIGNhbiBzZWdmYXVsdCkuCitvZnRlbiBieSBzZXR0aW5nIGEgY2xhc3MncyBtcm8gcG9pbnRlciB0byBOVUxMLCBhZnRlciB3aGljaCBhdHRyaWJ1dGUKK2xvb2t1cHMgcGVyZm9ybWVkIGJ5IHRoZSBjbGFzcyBjYW4gc2VnZmF1bHQpLgogCiBPVE9ILCBpdCdzIE9LIHRvIHJ1biBQeXRob24tbGV2ZWwgY29kZSB0aGF0IGNhbid0IGFjY2VzcyB1bnJlYWNoYWJsZQogb2JqZWN0cywgYW5kIHNvbWV0aW1lcyB0aGF0J3MgbmVjZXNzYXJ5LiAgVGhlIGNoaWVmIGV4YW1wbGUgaXMgdGhlIGNhbGxiYWNrCkBAIC0xMTksNyArMTE5LDcgQEAKIGl0IHRvb2sgcXVpdGUgYSB3aGlsZSB0byBkcmVhbSB1cCBmYWlsaW5nIHRlc3QgY2FzZXMuICBab3BlMyBzYXcgc2VnZmF1bHRzCiBkdXJpbmcgc2h1dGRvd24sIGR1cmluZyB0aGUgc2Vjb25kIGNhbGwgb2YgZ2MgaW4gUHlfRmluYWxpemUsIGFmdGVyIG1vc3QKIG1vZHVsZXMgaGFkIGJlZW4gdG9ybiBkb3duLiAgVGhhdCBjcmVhdGVzIG1hbnkgdHJhc2ggY3ljbGVzIChlc3AuIHRob3NlCi1pbnZvbHZpbmcgbmV3LXN0eWxlIGNsYXNzZXMpLCBtYWtpbmcgdGhlIHByb2JsZW0gbXVjaCBtb3JlIGxpa2VseS4gIE9uY2UgeW91CitpbnZvbHZpbmcgY2xhc3NlcyksIG1ha2luZyB0aGUgcHJvYmxlbSBtdWNoIG1vcmUgbGlrZWx5LiAgT25jZSB5b3UKIGtub3cgd2hhdCdzIHJlcXVpcmVkIHRvIHByb3Zva2UgdGhlIHByb2JsZW0sIHRob3VnaCwgaXQncyBlYXN5IHRvIGNyZWF0ZQogdGVzdHMgdGhhdCBzZWdmYXVsdCBiZWZvcmUgc2h1dGRvd24uCiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvZ2Ntb2R1bGUuYyBiL01vZHVsZXMvZ2Ntb2R1bGUuYwppbmRleCA4YzUyNGY4Li5mNzgyZGQwIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2djbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9nY21vZHVsZS5jCkBAIC02NSwxNyArNjUsMTcgQEAKIC8qIFB5dGhvbiBzdHJpbmcgdG8gdXNlIGlmIHVuaGFuZGxlZCBleGNlcHRpb24gb2NjdXJzICovCiBzdGF0aWMgUHlPYmplY3QgKmdjX3N0ciA9IE5VTEw7CiAKLS8qIFB5dGhvbiBzdHJpbmcgdXNlZCB0byBsb29rIGZvciBfX2RlbF9fIGF0dHJpYnV0ZS4gKi8KLXN0YXRpYyBQeU9iamVjdCAqZGVsc3RyID0gTlVMTDsKKy8qIGEgbGlzdCBvZiBjYWxsYmFja3MgdG8gYmUgaW52b2tlZCB3aGVuIGNvbGxlY3Rpb24gaXMgcGVyZm9ybWVkICovCitzdGF0aWMgUHlPYmplY3QgKmNhbGxiYWNrcyA9IE5VTEw7CiAKLS8qIFRoaXMgaXMgdGhlIG51bWJlciBvZiBvYmplY3RzIHdobyBzdXJ2aXZlZCB0aGUgbGFzdCBmdWxsIGNvbGxlY3Rpb24uIEl0CisvKiBUaGlzIGlzIHRoZSBudW1iZXIgb2Ygb2JqZWN0cyB0aGF0IHN1cnZpdmVkIHRoZSBsYXN0IGZ1bGwgY29sbGVjdGlvbi4gSXQKICAgIGFwcHJveGltYXRlcyB0aGUgbnVtYmVyIG9mIGxvbmcgbGl2ZWQgb2JqZWN0cyB0cmFja2VkIGJ5IHRoZSBHQy4KIAogICAgKGJ5ICJmdWxsIGNvbGxlY3Rpb24iLCB3ZSBtZWFuIGEgY29sbGVjdGlvbiBvZiB0aGUgb2xkZXN0IGdlbmVyYXRpb24pLgogKi8KIHN0YXRpYyBQeV9zc2l6ZV90IGxvbmdfbGl2ZWRfdG90YWwgPSAwOwogCi0vKiBUaGlzIGlzIHRoZSBudW1iZXIgb2Ygb2JqZWN0cyB3aG8gc3Vydml2ZWQgYWxsICJub24tZnVsbCIgY29sbGVjdGlvbnMsCisvKiBUaGlzIGlzIHRoZSBudW1iZXIgb2Ygb2JqZWN0cyB0aGF0IHN1cnZpdmVkIGFsbCAibm9uLWZ1bGwiIGNvbGxlY3Rpb25zLAogICAgYW5kIGFyZSBhd2FpdGluZyB0byB1bmRlcmdvIGEgZnVsbCBjb2xsZWN0aW9uIGZvciB0aGUgZmlyc3QgdGltZS4KIAogKi8KQEAgLTczMSw4ICs3MzEsOCBAQAogc3RhdGljIHZvaWQKIGRlYnVnX2N5Y2xlKGNoYXIgKm1zZywgUHlPYmplY3QgKm9wKQogewotICAgIFB5U3lzX1dyaXRlU3RkZXJyKCJnYzogJS4xMDBzIDwlLjEwMHMgJXA+XG4iLAotICAgICAgICAgICAgICAgICAgICAgIG1zZywgUHlfVFlQRShvcCktPnRwX25hbWUsIG9wKTsKKyAgICBQeVN5c19Gb3JtYXRTdGRlcnIoImdjOiAlcyA8JXMgJXA+XG4iLAorICAgICAgICAgICAgICAgICAgICAgICBtc2csIFB5X1RZUEUob3ApLT50cF9uYW1lLCBvcCk7CiB9CiAKIC8qIEhhbmRsZSB1bmNvbGxlY3RhYmxlIGdhcmJhZ2UgKGN5Y2xlcyB3aXRoIGZpbmFsaXplcnMsIGFuZCBzdHVmZiByZWFjaGFibGUKQEAgLTgxMyw2ICs4MTMsOSBAQAogICAgICh2b2lkKVB5VHVwbGVfQ2xlYXJGcmVlTGlzdCgpOwogICAgICh2b2lkKVB5VW5pY29kZV9DbGVhckZyZWVMaXN0KCk7CiAgICAgKHZvaWQpUHlGbG9hdF9DbGVhckZyZWVMaXN0KCk7CisgICAgKHZvaWQpUHlMaXN0X0NsZWFyRnJlZUxpc3QoKTsKKyAgICAodm9pZClQeURpY3RfQ2xlYXJGcmVlTGlzdCgpOworICAgICh2b2lkKVB5U2V0X0NsZWFyRnJlZUxpc3QoKTsKIH0KIAogc3RhdGljIGRvdWJsZQpAQCAtODIwLDcgKzgyMyw5IEBACiB7CiAgICAgZG91YmxlIHJlc3VsdCA9IDA7CiAgICAgaWYgKHRtb2QgIT0gTlVMTCkgewotICAgICAgICBQeU9iamVjdCAqZiA9IFB5T2JqZWN0X0NhbGxNZXRob2QodG1vZCwgInRpbWUiLCBOVUxMKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIodGltZSk7CisKKyAgICAgICAgUHlPYmplY3QgKmYgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHRtb2QsICZQeUlkX3RpbWUsIE5VTEwpOwogICAgICAgICBpZiAoZiA9PSBOVUxMKSB7CiAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICB9CkBAIC04MzYsNyArODQxLDcgQEAKIC8qIFRoaXMgaXMgdGhlIG1haW4gZnVuY3Rpb24uICBSZWFkIHRoaXMgdG8gdW5kZXJzdGFuZCBob3cgdGhlCiAgKiBjb2xsZWN0aW9uIHByb2Nlc3Mgd29ya3MuICovCiBzdGF0aWMgUHlfc3NpemVfdAotY29sbGVjdChpbnQgZ2VuZXJhdGlvbikKK2NvbGxlY3QoaW50IGdlbmVyYXRpb24sIFB5X3NzaXplX3QgKm5fY29sbGVjdGVkLCBQeV9zc2l6ZV90ICpuX3VuY29sbGVjdGFibGUpCiB7CiAgICAgaW50IGk7CiAgICAgUHlfc3NpemVfdCBtID0gMDsgLyogIyBvYmplY3RzIGNvbGxlY3RlZCAqLwpAQCAtODQ4LDEyICs4NTMsNiBAQAogICAgIFB5R0NfSGVhZCAqZ2M7CiAgICAgZG91YmxlIHQxID0gMC4wOwogCi0gICAgaWYgKGRlbHN0ciA9PSBOVUxMKSB7Ci0gICAgICAgIGRlbHN0ciA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCJfX2RlbF9fIik7Ci0gICAgICAgIGlmIChkZWxzdHIgPT0gTlVMTCkKLSAgICAgICAgICAgIFB5X0ZhdGFsRXJyb3IoImdjIGNvdWxkbid0IGFsbG9jYXRlIFwiX19kZWxfX1wiIik7Ci0gICAgfQotCiAgICAgaWYgKGRlYnVnICYgREVCVUdfU1RBVFMpIHsKICAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoImdjOiBjb2xsZWN0aW5nIGdlbmVyYXRpb24gJWQuLi5cbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRpb24pOwpAQCAtOTkzLDkgKzk5Miw2NCBAQAogICAgICAgICBQeUVycl9Xcml0ZVVucmFpc2FibGUoZ2Nfc3RyKTsKICAgICAgICAgUHlfRmF0YWxFcnJvcigidW5leHBlY3RlZCBleGNlcHRpb24gZHVyaW5nIGdhcmJhZ2UgY29sbGVjdGlvbiIpOwogICAgIH0KKworICAgIGlmIChuX2NvbGxlY3RlZCkKKyAgICAgICAgKm5fY29sbGVjdGVkID0gbTsKKyAgICBpZiAobl91bmNvbGxlY3RhYmxlKQorICAgICAgICAqbl91bmNvbGxlY3RhYmxlID0gbjsKICAgICByZXR1cm4gbittOwogfQogCisvKiBJbnZva2UgcHJvZ3Jlc3MgY2FsbGJhY2tzIHRvIG5vdGlmeSBjbGllbnRzIHRoYXQgZ2FyYmFnZSBjb2xsZWN0aW9uCisgKiBpcyBzdGFydGluZyBvciBzdG9wcGluZworICovCitzdGF0aWMgdm9pZAoraW52b2tlX2djX2NhbGxiYWNrKGNvbnN0IGNoYXIgKnBoYXNlLCBpbnQgZ2VuZXJhdGlvbiwKKyAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGNvbGxlY3RlZCwgUHlfc3NpemVfdCB1bmNvbGxlY3RhYmxlKQoreworICAgIFB5X3NzaXplX3QgaTsKKyAgICBQeU9iamVjdCAqaW5mbyA9IE5VTEw7CisKKyAgICAvKiB3ZSBtYXkgZ2V0IGNhbGxlZCB2ZXJ5IGVhcmx5ICovCisgICAgaWYgKGNhbGxiYWNrcyA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgLyogVGhlIGxvY2FsIHZhcmlhYmxlIGNhbm5vdCBiZSByZWJvdW5kLCBjaGVjayBpdCBmb3Igc2FuaXR5ICovCisgICAgYXNzZXJ0KGNhbGxiYWNrcyAhPSBOVUxMICYmIFB5TGlzdF9DaGVja0V4YWN0KGNhbGxiYWNrcykpOworICAgIGlmIChQeUxpc3RfR0VUX1NJWkUoY2FsbGJhY2tzKSAhPSAwKSB7CisgICAgICAgIGluZm8gPSBQeV9CdWlsZFZhbHVlKCJ7c2lzbnNufSIsCisgICAgICAgICAgICAiZ2VuZXJhdGlvbiIsIGdlbmVyYXRpb24sCisgICAgICAgICAgICAiY29sbGVjdGVkIiwgY29sbGVjdGVkLAorICAgICAgICAgICAgInVuY29sbGVjdGFibGUiLCB1bmNvbGxlY3RhYmxlKTsKKyAgICAgICAgaWYgKGluZm8gPT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfV3JpdGVVbnJhaXNhYmxlKE5VTEwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGZvciAoaT0wOyBpPFB5TGlzdF9HRVRfU0laRShjYWxsYmFja3MpOyBpKyspIHsKKyAgICAgICAgUHlPYmplY3QgKnIsICpjYiA9IFB5TGlzdF9HRVRfSVRFTShjYWxsYmFja3MsIGkpOworICAgICAgICBQeV9JTkNSRUYoY2IpOyAvKiBtYWtlIHN1cmUgY2IgZG9lc24ndCBnbyBhd2F5ICovCisgICAgICAgIHIgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb24oY2IsICJzTyIsIHBoYXNlLCBpbmZvKTsKKyAgICAgICAgUHlfWERFQ1JFRihyKTsKKyAgICAgICAgaWYgKHIgPT0gTlVMTCkKKyAgICAgICAgICAgIFB5RXJyX1dyaXRlVW5yYWlzYWJsZShjYik7CisgICAgICAgIFB5X0RFQ1JFRihjYik7CisgICAgfQorICAgIFB5X1hERUNSRUYoaW5mbyk7Cit9CisKKy8qIFBlcmZvcm0gZ2FyYmFnZSBjb2xsZWN0aW9uIG9mIGEgZ2VuZXJhdGlvbiBhbmQgaW52b2tlCisgKiBwcm9ncmVzcyBjYWxsYmFja3MuCisgKi8KK3N0YXRpYyBQeV9zc2l6ZV90Citjb2xsZWN0X3dpdGhfY2FsbGJhY2soaW50IGdlbmVyYXRpb24pCit7CisgICAgUHlfc3NpemVfdCByZXN1bHQsIGNvbGxlY3RlZCwgdW5jb2xsZWN0YWJsZTsKKyAgICBpbnZva2VfZ2NfY2FsbGJhY2soInN0YXJ0IiwgZ2VuZXJhdGlvbiwgMCwgMCk7CisgICAgcmVzdWx0ID0gY29sbGVjdChnZW5lcmF0aW9uLCAmY29sbGVjdGVkLCAmdW5jb2xsZWN0YWJsZSk7CisgICAgaW52b2tlX2djX2NhbGxiYWNrKCJzdG9wIiwgZ2VuZXJhdGlvbiwgY29sbGVjdGVkLCB1bmNvbGxlY3RhYmxlKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBzdGF0aWMgUHlfc3NpemVfdAogY29sbGVjdF9nZW5lcmF0aW9ucyh2b2lkKQogewpAQCAtMTAxNCw3ICsxMDY4LDcgQEAKICAgICAgICAgICAgIGlmIChpID09IE5VTV9HRU5FUkFUSU9OUyAtIDEKICAgICAgICAgICAgICAgICAmJiBsb25nX2xpdmVkX3BlbmRpbmcgPCBsb25nX2xpdmVkX3RvdGFsIC8gNCkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIG4gPSBjb2xsZWN0KGkpOworICAgICAgICAgICAgbiA9IGNvbGxlY3Rfd2l0aF9jYWxsYmFjayhpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQpAQCAtMTA4NSw3ICsxMTM5LDcgQEAKICAgICAgICAgbiA9IDA7IC8qIGFscmVhZHkgY29sbGVjdGluZywgZG9uJ3QgZG8gYW55dGhpbmcgKi8KICAgICBlbHNlIHsKICAgICAgICAgY29sbGVjdGluZyA9IDE7Ci0gICAgICAgIG4gPSBjb2xsZWN0KGdlbmFyZyk7CisgICAgICAgIG4gPSBjb2xsZWN0X3dpdGhfY2FsbGJhY2soZ2VuYXJnKTsKICAgICAgICAgY29sbGVjdGluZyA9IDA7CiAgICAgfQogCkBAIC0xMzc4LDYgKzE0MzIsMTUgQEAKICAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJnYXJiYWdlIiwgZ2FyYmFnZSkgPCAwKQogICAgICAgICByZXR1cm4gTlVMTDsKIAorICAgIGlmIChjYWxsYmFja3MgPT0gTlVMTCkgeworICAgICAgICBjYWxsYmFja3MgPSBQeUxpc3RfTmV3KDApOworICAgICAgICBpZiAoY2FsbGJhY2tzID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgUHlfSU5DUkVGKGNhbGxiYWNrcyk7CisgICAgaWYgKFB5TW9kdWxlX0FkZE9iamVjdChtLCAiY2FsbGJhY2tzIiwgY2FsbGJhY2tzKSA8IDApCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgLyogSW1wb3J0aW5nIGNhbid0IGJlIGRvbmUgaW4gY29sbGVjdCgpIGJlY2F1c2UgY29sbGVjdCgpCiAgICAgICogY2FuIGJlIGNhbGxlZCB2aWEgUHlHQ19Db2xsZWN0KCkgaW4gUHlfRmluYWxpemUoKS4KICAgICAgKiBUaGlzIHdvdWxkbid0IGJlIGEgcHJvYmxlbSwgZXhjZXB0IHRoYXQgPGluaXRpYWxpemVkPiBpcwpAQCAtMTQxMCw3ICsxNDczLDcgQEAKICAgICAgICAgbiA9IDA7IC8qIGFscmVhZHkgY29sbGVjdGluZywgZG9uJ3QgZG8gYW55dGhpbmcgKi8KICAgICBlbHNlIHsKICAgICAgICAgY29sbGVjdGluZyA9IDE7Ci0gICAgICAgIG4gPSBjb2xsZWN0KE5VTV9HRU5FUkFUSU9OUyAtIDEpOworICAgICAgICBuID0gY29sbGVjdF93aXRoX2NhbGxiYWNrKE5VTV9HRU5FUkFUSU9OUyAtIDEpOwogICAgICAgICBjb2xsZWN0aW5nID0gMDsKICAgICB9CiAKQEAgLTE0NDcsNiArMTUxMCw3IEBACiAgICAgICAgICAgICBQeV9YREVDUkVGKGJ5dGVzKTsKICAgICAgICAgfQogICAgIH0KKyAgICBQeV9DTEVBUihjYWxsYmFja3MpOwogfQogCiAvKiBmb3IgZGVidWdnaW5nICovCmRpZmYgLS1naXQgYS9Nb2R1bGVzL2dldGJ1aWxkaW5mby5jIGIvTW9kdWxlcy9nZXRidWlsZGluZm8uYwppbmRleCA3MDY5YjZlLi4wOTcxYTY0IDEwMDY0NAotLS0gYS9Nb2R1bGVzL2dldGJ1aWxkaW5mby5jCisrKyBiL01vZHVsZXMvZ2V0YnVpbGRpbmZvLmMKQEAgLTIwLDE0ICsyMCw2IEBACiAjZW5kaWYKICNlbmRpZgogCi0vKiBvbiB1bml4LCBTVk5WRVJTSU9OIGlzIHBhc3NlZCBvbiB0aGUgY29tbWFuZCBsaW5lLgotICogb24gV2luZG93cywgdGhlIHN0cmluZyBpcyBpbnRlcnBvbGF0ZWQgdXNpbmcKLSAqIHN1YndjcmV2LmV4ZQotICovCi0jaWZuZGVmIFNWTlZFUlNJT04KLSNkZWZpbmUgU1ZOVkVSU0lPTiAiJFdDUkFOR0UkJFdDTU9EUz9NOiQiCi0jZW5kaWYKLQogLyogWFhYIE9ubHkgdW5peCBidWlsZCBwcm9jZXNzIGhhcyBiZWVuIHRlc3RlZCAqLwogI2lmbmRlZiBIR1ZFUlNJT04KICNkZWZpbmUgSEdWRVJTSU9OICIiCkBAIC01NywxNiArNDksNiBAQAogfQogCiBjb25zdCBjaGFyICoKLV9QeV9zdm52ZXJzaW9uKHZvaWQpCi17Ci0gICAgLyogdGhlIGZvbGxvd2luZyBzdHJpbmcgY2FuIGJlIG1vZGlmaWVkIGJ5IHN1YndjcmV2LmV4ZSAqLwotICAgIHN0YXRpYyBjb25zdCBjaGFyIHN2bnZlcnNpb25bXSA9IFNWTlZFUlNJT047Ci0gICAgaWYgKHN2bnZlcnNpb25bMF0gIT0gJyQnKQotICAgICAgICByZXR1cm4gc3ZudmVyc2lvbjsgLyogaXQgd2FzIGludGVycG9sYXRlZCwgb3IgcGFzc2VkIG9uIGNvbW1hbmQgbGluZSAqLwotICAgIHJldHVybiAiVW52ZXJzaW9uZWQgZGlyZWN0b3J5IjsKLX0KLQotY29uc3QgY2hhciAqCiBfUHlfaGd2ZXJzaW9uKHZvaWQpCiB7CiAgICAgcmV0dXJuIEhHVkVSU0lPTjsKZGlmZiAtLWdpdCBhL01vZHVsZXMvZ2V0cGF0aC5jIGIvTW9kdWxlcy9nZXRwYXRoLmMKaW5kZXggYjdmOTU3My4uYjE1MzE5NyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9nZXRwYXRoLmMKKysrIGIvTW9kdWxlcy9nZXRwYXRoLmMKQEAgLTI2MCw2ICsyNjAsNTkgQEAKICAgICB3Y3NjcHkocGF0aCwgYnVmZmVyKTsKIH0KIAorLyogc2VhcmNoIGZvciBhIHByZWZpeCB2YWx1ZSBpbiBhbiBlbnZpcm9ubWVudCBmaWxlLiBJZiBmb3VuZCwgY29weSBpdAorICAgdG8gdGhlIHByb3ZpZGVkIGJ1ZmZlciwgd2hpY2ggaXMgZXhwZWN0ZWQgdG8gYmUgbm8gbW9yZSB0aGFuIE1BWFBBVEhMRU4KKyAgIGJ5dGVzIGxvbmcuCisqLworCitzdGF0aWMgaW50CitmaW5kX2Vudl9jb25maWdfdmFsdWUoRklMRSAqIGVudl9maWxlLCBjb25zdCB3Y2hhcl90ICoga2V5LCB3Y2hhcl90ICogdmFsdWUpCit7CisgICAgaW50IHJlc3VsdCA9IDA7IC8qIG1lYW5pbmcgbm90IGZvdW5kICovCisgICAgY2hhciBidWZmZXJbTUFYUEFUSExFTioyKzFdOyAgLyogYWxsb3cgZXh0cmEgZm9yIGtleSwgJz0nLCBldGMuICovCisKKyAgICBmc2VlayhlbnZfZmlsZSwgMCwgU0VFS19TRVQpOworICAgIHdoaWxlICghZmVvZihlbnZfZmlsZSkpIHsKKyAgICAgICAgY2hhciAqIHAgPSBmZ2V0cyhidWZmZXIsIE1BWFBBVEhMRU4qMiwgZW52X2ZpbGUpOworICAgICAgICB3Y2hhcl90IHRtcGJ1ZmZlcltNQVhQQVRITEVOKjIrMV07CisgICAgICAgIFB5T2JqZWN0ICogZGVjb2RlZDsKKyAgICAgICAgaW50IG47CisKKyAgICAgICAgaWYgKHAgPT0gTlVMTCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBuID0gc3RybGVuKHApOworICAgICAgICBpZiAocFtuIC0gMV0gIT0gJ1xuJykgeworICAgICAgICAgICAgLyogbGluZSBoYXMgb3ZlcmZsb3dlZCAtIGJhaWwgKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChwWzBdID09ICcjJykgICAgLyogQ29tbWVudCAtIHNraXAgKi8KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBkZWNvZGVkID0gUHlVbmljb2RlX0RlY29kZVVURjgoYnVmZmVyLCBuLCAic3Vycm9nYXRlZXNjYXBlIik7CisgICAgICAgIGlmIChkZWNvZGVkICE9IE5VTEwpIHsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgazsKKyAgICAgICAgICAgIHdjaGFyX3QgKiBzdGF0ZTsKKyAgICAgICAgICAgIGsgPSBQeVVuaWNvZGVfQXNXaWRlQ2hhcihkZWNvZGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcGJ1ZmZlciwgTUFYUEFUSExFTiAqIDIpOworICAgICAgICAgICAgUHlfREVDUkVGKGRlY29kZWQpOworICAgICAgICAgICAgaWYgKGsgPj0gMCkgeworICAgICAgICAgICAgICAgIHdjaGFyX3QgKiB0b2sgPSB3Y3N0b2sodG1wYnVmZmVyLCBMIiBcdFxyXG4iLCAmc3RhdGUpOworICAgICAgICAgICAgICAgIGlmICgodG9rICE9IE5VTEwpICYmICF3Y3NjbXAodG9rLCBrZXkpKSB7CisgICAgICAgICAgICAgICAgICAgIHRvayA9IHdjc3RvayhOVUxMLCBMIiBcdCIsICZzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgIGlmICgodG9rICE9IE5VTEwpICYmICF3Y3NjbXAodG9rLCBMIj0iKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdG9rID0gd2NzdG9rKE5VTEwsIEwiXHJcbiIsICZzdGF0ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG9rICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y3NuY3B5KHZhbHVlLCB0b2ssIE1BWFBBVEhMRU4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogLyogc2VhcmNoX2Zvcl9wcmVmaXggcmVxdWlyZXMgdGhhdCBhcmd2MF9wYXRoIGJlIG5vIG1vcmUgdGhhbiBNQVhQQVRITEVOCiAgICBieXRlcyBsb25nLgogKi8KQEAgLTQwNiw3ICs0NTksNyBAQAogICAgIHN0YXRpYyB3Y2hhcl90IGRlbGltaXRlclsyXSA9IHtERUxJTSwgJ1wwJ307CiAgICAgc3RhdGljIHdjaGFyX3Qgc2VwYXJhdG9yWzJdID0ge1NFUCwgJ1wwJ307CiAgICAgY2hhciAqX3J0cHlwYXRoID0gUHlfR0VURU5WKCJQWVRIT05QQVRIIik7IC8qIFhYWCB1c2Ugd2lkZSB2ZXJzaW9uIG9uIFdpbmRvd3MgKi8KLSAgICB3Y2hhcl90IHJ0cHlwYXRoW01BWFBBVEhMRU4rMV07CisgICAgd2NoYXJfdCAqcnRweXBhdGggPSBOVUxMOwogICAgIHdjaGFyX3QgKmhvbWUgPSBQeV9HZXRQeXRob25Ib21lKCk7CiAgICAgY2hhciAqX3BhdGggPSBnZXRlbnYoIlBBVEgiKTsKICAgICB3Y2hhcl90ICpwYXRoX2J1ZmZlciA9IE5VTEw7CkBAIC01NjUsNiArNjE4LDM5IEBACiAgICAgICAgTUFYUEFUSExFTiBieXRlcyBsb25nLgogICAgICovCiAKKyAgICAvKiBTZWFyY2ggZm9yIGFuIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gZmlsZSwgZmlyc3QgaW4gdGhlCisgICAgICAgZXhlY3V0YWJsZSdzIGRpcmVjdG9yeSBhbmQgdGhlbiBpbiB0aGUgcGFyZW50IGRpcmVjdG9yeS4KKyAgICAgICBJZiBmb3VuZCwgb3BlbiBpdCBmb3IgdXNlIHdoZW4gc2VhcmNoaW5nIGZvciBwcmVmaXhlcy4KKyAgICAqLworCisgICAgeworICAgICAgICB3Y2hhcl90IHRtcGJ1ZmZlcltNQVhQQVRITEVOKzFdOworICAgICAgICB3Y2hhcl90ICplbnZfY2ZnID0gTCJweXZlbnYuY2ZnIjsKKyAgICAgICAgRklMRSAqIGVudl9maWxlID0gTlVMTDsKKworICAgICAgICB3Y3NjcHkodG1wYnVmZmVyLCBhcmd2MF9wYXRoKTsKKyAgICAgICAgam9pbnBhdGgodG1wYnVmZmVyLCBlbnZfY2ZnKTsKKyAgICAgICAgZW52X2ZpbGUgPSBfUHlfd2ZvcGVuKHRtcGJ1ZmZlciwgTCJyIik7CisgICAgICAgIGlmIChlbnZfZmlsZSA9PSBOVUxMKSB7CisgICAgICAgICAgICBlcnJubyA9IDA7CisgICAgICAgICAgICByZWR1Y2UodG1wYnVmZmVyKTsKKyAgICAgICAgICAgIHJlZHVjZSh0bXBidWZmZXIpOworICAgICAgICAgICAgam9pbnBhdGgodG1wYnVmZmVyLCBlbnZfY2ZnKTsKKyAgICAgICAgICAgIGVudl9maWxlID0gX1B5X3dmb3Blbih0bXBidWZmZXIsIEwiciIpOworICAgICAgICAgICAgaWYgKGVudl9maWxlID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBlcnJubyA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVudl9maWxlICE9IE5VTEwpIHsKKyAgICAgICAgICAgIC8qIExvb2sgZm9yIGEgJ2hvbWUnIHZhcmlhYmxlIGFuZCBzZXQgYXJndjBfcGF0aCB0byBpdCwgaWYgZm91bmQgKi8KKyAgICAgICAgICAgIGlmIChmaW5kX2Vudl9jb25maWdfdmFsdWUoZW52X2ZpbGUsIEwiaG9tZSIsIHRtcGJ1ZmZlcikpIHsKKyAgICAgICAgICAgICAgICB3Y3NjcHkoYXJndjBfcGF0aCwgdG1wYnVmZmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZjbG9zZShlbnZfZmlsZSk7CisgICAgICAgICAgICBlbnZfZmlsZSA9IE5VTEw7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAoIShwZm91bmQgPSBzZWFyY2hfZm9yX3ByZWZpeChhcmd2MF9wYXRoLCBob21lLCBfcHJlZml4KSkpIHsKICAgICAgICAgaWYgKCFQeV9Gcm96ZW5GbGFnKQogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsCkBAIC02MDYsMTIgKzY5MiwxMiBAQAogICAgIGJ1ZnN6ID0gMDsKIAogICAgIGlmIChfcnRweXBhdGgpIHsKLSAgICAgICAgc2l6ZV90IHMgPSBtYnN0b3djcyhydHB5cGF0aCwgX3J0cHlwYXRoLCBzaXplb2YocnRweXBhdGgpL3NpemVvZih3Y2hhcl90KSk7Ci0gICAgICAgIGlmIChzID09IChzaXplX3QpLTEgfHwgcyA+PXNpemVvZihydHB5cGF0aCkpCi0gICAgICAgICAgICAvKiBYWFggZGVhbCB3aXRoIGVycm9ycyBtb3JlIGdyYWNlZnVsbHkgKi8KKyAgICAgICAgc2l6ZV90IHJ0cHlwYXRoX2xlbjsKKyAgICAgICAgcnRweXBhdGggPSBfUHlfY2hhcjJ3Y2hhcihfcnRweXBhdGgsICZydHB5cGF0aF9sZW4pOworICAgICAgICBpZiAocnRweXBhdGggIT0gTlVMTCkKKyAgICAgICAgICAgIGJ1ZnN6ICs9IHJ0cHlwYXRoX2xlbiArIDE7CisgICAgICAgIGVsc2UKICAgICAgICAgICAgIF9ydHB5cGF0aCA9IE5VTEw7Ci0gICAgICAgIGlmIChfcnRweXBhdGgpCi0gICAgICAgICAgICBidWZzeiArPSB3Y3NsZW4ocnRweXBhdGgpICsgMTsKICAgICB9CiAKICAgICBkZWZwYXRoID0gX3B5dGhvbnBhdGg7CkBAIC02NDUsNyArNzMxLDcgQEAKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIC8qIFJ1bi10aW1lIHZhbHVlIG9mICRQWVRIT05QQVRIIGdvZXMgZmlyc3QgKi8KLSAgICAgICAgaWYgKF9ydHB5cGF0aCkgeworICAgICAgICBpZiAocnRweXBhdGgpIHsKICAgICAgICAgICAgIHdjc2NweShidWYsIHJ0cHlwYXRoKTsKICAgICAgICAgICAgIHdjc2NhdChidWYsIGRlbGltaXRlcik7CiAgICAgICAgIH0KQEAgLTcxOSw2ICs4MDUsOCBAQAogICAgIFB5TWVtX0ZyZWUoX3B5dGhvbnBhdGgpOwogICAgIFB5TWVtX0ZyZWUoX3ByZWZpeCk7CiAgICAgUHlNZW1fRnJlZShfZXhlY19wcmVmaXgpOworICAgIGlmIChydHB5cGF0aCAhPSBOVUxMKQorICAgICAgICBQeU1lbV9GcmVlKHJ0cHlwYXRoKTsKIH0KIAogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL2l0ZXJ0b29sc21vZHVsZS5jIGIvTW9kdWxlcy9pdGVydG9vbHNtb2R1bGUuYwppbmRleCA4YjZmYTg1Li4xOTRmN2ZiIDEwMDY0NAotLS0gYS9Nb2R1bGVzL2l0ZXJ0b29sc21vZHVsZS5jCisrKyBiL01vZHVsZXMvaXRlcnRvb2xzbW9kdWxlLmMKQEAgLTEzNCw2ICsxMzQsNTMgQEAKICAgICByZXR1cm4gcjsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK2dyb3VwYnlfcmVkdWNlKGdyb3VwYnlvYmplY3QgKmx6KQoreworICAgIC8qIHJlZHVjZSBhcyBhICduZXcnIGNhbGwgd2l0aCBhbiBvcHRpb25hbCAnc2V0c3RhdGUnIGlmIGdyb3VwYnkKKyAgICAgKiBoYXMgc3RhcnRlZAorICAgICAqLworICAgIFB5T2JqZWN0ICp2YWx1ZTsKKyAgICBpZiAobHotPnRndGtleSAmJiBsei0+Y3VycmtleSAmJiBsei0+Y3VycnZhbHVlKQorICAgICAgICB2YWx1ZSA9IFB5X0J1aWxkVmFsdWUoIk8oT08pKE9PTykiLCBQeV9UWVBFKGx6KSwKKyAgICAgICAgICAgIGx6LT5pdCwgbHotPmtleWZ1bmMsIGx6LT5jdXJya2V5LCBsei0+Y3VycnZhbHVlLCBsei0+dGd0a2V5KTsKKyAgICBlbHNlCisgICAgICAgIHZhbHVlID0gUHlfQnVpbGRWYWx1ZSgiTyhPTykiLCBQeV9UWVBFKGx6KSwKKyAgICAgICAgICAgIGx6LT5pdCwgbHotPmtleWZ1bmMpOworCisgICAgcmV0dXJuIHZhbHVlOworfQorCitQeURvY19TVFJWQVIocmVkdWNlX2RvYywgIlJldHVybiBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgcGlja2xpbmcuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitncm91cGJ5X3NldHN0YXRlKGdyb3VwYnlvYmplY3QgKmx6LCBQeU9iamVjdCAqc3RhdGUpCit7CisgICAgUHlPYmplY3QgKmN1cnJrZXksICpjdXJydmFsdWUsICp0Z3RrZXk7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKHN0YXRlLCAiT09PIiwgJmN1cnJrZXksICZjdXJydmFsdWUsICZ0Z3RrZXkpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9DTEVBUihsei0+Y3VycmtleSk7CisgICAgbHotPmN1cnJrZXkgPSBjdXJya2V5OworICAgIFB5X0lOQ1JFRihsei0+Y3VycmtleSk7CisgICAgUHlfQ0xFQVIobHotPmN1cnJ2YWx1ZSk7CisgICAgbHotPmN1cnJ2YWx1ZSA9IGN1cnJ2YWx1ZTsKKyAgICBQeV9JTkNSRUYobHotPmN1cnJ2YWx1ZSk7CisgICAgUHlfQ0xFQVIobHotPnRndGtleSk7CisgICAgbHotPnRndGtleSA9IHRndGtleTsKKyAgICBQeV9JTkNSRUYobHotPnRndGtleSk7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihzZXRzdGF0ZV9kb2MsICJTZXQgc3RhdGUgaW5mb3JtYXRpb24gZm9yIHVucGlja2xpbmcuIik7CisKK3N0YXRpYyBQeU1ldGhvZERlZiBncm91cGJ5X21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbilncm91cGJ5X3JlZHVjZSwgICAgICBNRVRIX05PQVJHUywKKyAgICAgcmVkdWNlX2RvY30sCisgICAgeyJfX3NldHN0YXRlX18iLCAgICAoUHlDRnVuY3Rpb24pZ3JvdXBieV9zZXRzdGF0ZSwgICAgTUVUSF9PLAorICAgICBzZXRzdGF0ZV9kb2N9LAorICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAvKiBzZW50aW5lbCAqLworfTsKKwogUHlEb2NfU1RSVkFSKGdyb3VwYnlfZG9jLAogImdyb3VwYnkoaXRlcmFibGVbLCBrZXlmdW5jXSkgLT4gY3JlYXRlIGFuIGl0ZXJhdG9yIHdoaWNoIHJldHVybnNcblwKIChrZXksIHN1Yi1pdGVyYXRvcikgZ3JvdXBlZCBieSBlYWNoIHZhbHVlIG9mIGtleSh2YWx1ZSkuXG4iKTsKQEAgLTE2OCw3ICsyMTUsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgIChpdGVybmV4dGZ1bmMpZ3JvdXBieV9uZXh0LCAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIGdyb3VwYnlfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwpAQCAtMTk0LDYgKzI0MSwxNyBAQAogc3RhdGljIFB5VHlwZU9iamVjdCBfZ3JvdXBlcl90eXBlOwogCiBzdGF0aWMgUHlPYmplY3QgKgorX2dyb3VwZXJfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQoreworICAgIFB5T2JqZWN0ICpwYXJlbnQsICp0Z3RrZXk7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8hTyIsICZncm91cGJ5X3R5cGUsICZwYXJlbnQsICZ0Z3RrZXkpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBfZ3JvdXBlcl9jcmVhdGUoKGdyb3VwYnlvYmplY3QqKSBwYXJlbnQsIHRndGtleSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCiBfZ3JvdXBlcl9jcmVhdGUoZ3JvdXBieW9iamVjdCAqcGFyZW50LCBQeU9iamVjdCAqdGd0a2V5KQogewogICAgIF9ncm91cGVyb2JqZWN0ICppZ287CkBAIC0yNjksNiArMzI3LDIwIEBACiAgICAgcmV0dXJuIHI7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitfZ3JvdXBlcl9yZWR1Y2UoX2dyb3VwZXJvYmplY3QgKmx6KQoreworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKE9PKSIsIFB5X1RZUEUobHopLAorICAgICAgICAgICAgbHotPnBhcmVudCwgbHotPnRndGtleSk7Cit9CisKK3N0YXRpYyBQeU1ldGhvZERlZiBfZ3JvdXBlcl9tZXRob2RzW10gPSB7CisgICAgeyJfX3JlZHVjZV9fIiwgICAgICAoUHlDRnVuY3Rpb24pX2dyb3VwZXJfcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKKyAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgLyogc2VudGluZWwgKi8KK307CisKKwogc3RhdGljIFB5VHlwZU9iamVjdCBfZ3JvdXBlcl90eXBlID0gewogICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQogICAgICJpdGVydG9vbHMuX2dyb3VwZXIiLCAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KQEAgLTI5OCw3ICszNzAsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgIChpdGVybmV4dGZ1bmMpX2dyb3VwZXJfbmV4dCwgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIF9ncm91cGVyX21ldGhvZHMsICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwpAQCAtMzA4LDcgKzM4MCw3IEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2luaXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLworICAgIF9ncm91cGVyX25ldywgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLwogICAgIFB5T2JqZWN0X0dDX0RlbCwgICAgICAgICAgICAgICAgICAgIC8qIHRwX2ZyZWUgKi8KIH07CiAKQEAgLTM0NCw3ICs0MTYsNyBAQAogc3RhdGljIFB5VHlwZU9iamVjdCB0ZWVkYXRhb2JqZWN0X3R5cGU7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi10ZWVkYXRhb2JqZWN0X25ldyhQeU9iamVjdCAqaXQpCit0ZWVkYXRhb2JqZWN0X25ld2ludGVybmFsKFB5T2JqZWN0ICppdCkKIHsKICAgICB0ZWVkYXRhb2JqZWN0ICp0ZG87CiAKQEAgLTM2NCw3ICs0MzYsNyBAQAogdGVlZGF0YW9iamVjdF9qdW1wbGluayh0ZWVkYXRhb2JqZWN0ICp0ZG8pCiB7CiAgICAgaWYgKHRkby0+bmV4dGxpbmsgPT0gTlVMTCkKLSAgICAgICAgdGRvLT5uZXh0bGluayA9IHRlZWRhdGFvYmplY3RfbmV3KHRkby0+aXQpOworICAgICAgICB0ZG8tPm5leHRsaW5rID0gdGVlZGF0YW9iamVjdF9uZXdpbnRlcm5hbCh0ZG8tPml0KTsKICAgICBQeV9YSU5DUkVGKHRkby0+bmV4dGxpbmspOwogICAgIHJldHVybiB0ZG8tPm5leHRsaW5rOwogfQpAQCAtNDIwLDExICs0OTIsODEgQEAKICAgICBQeU9iamVjdF9HQ19EZWwodGRvKTsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK3RlZWRhdGFvYmplY3RfcmVkdWNlKHRlZWRhdGFvYmplY3QgKnRkbykKK3sKKyAgICBpbnQgaTsKKyAgICAvKiBjcmVhdGUgYSB0ZW1wb3JhcnkgbGlzdCBvZiBhbHJlYWR5IGl0ZXJhdGVkIHZhbHVlcyAqLworICAgIFB5T2JqZWN0ICp2YWx1ZXMgPSBQeUxpc3RfTmV3KHRkby0+bnVtcmVhZCk7CisgICAgaWYgKCF2YWx1ZXMpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGZvciAoaT0wIDsgaTx0ZG8tPm51bXJlYWQgOyBpKyspIHsKKyAgICAgICAgUHlfSU5DUkVGKHRkby0+dmFsdWVzW2ldKTsKKyAgICAgICAgUHlMaXN0X1NFVF9JVEVNKHZhbHVlcywgaSwgdGRvLT52YWx1ZXNbaV0pOworICAgIH0KKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPTk8pIiwgUHlfVFlQRSh0ZG8pLCB0ZG8tPml0LAorICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICB0ZG8tPm5leHRsaW5rID8gdGRvLT5uZXh0bGluayA6IFB5X05vbmUpOworfQorCitzdGF0aWMgUHlUeXBlT2JqZWN0IHRlZWRhdGFvYmplY3RfdHlwZTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3RlZWRhdGFvYmplY3RfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprdykKK3sKKyAgICB0ZWVkYXRhb2JqZWN0ICp0ZG87CisgICAgUHlPYmplY3QgKml0LCAqdmFsdWVzLCAqbmV4dDsKKyAgICBQeV9zc2l6ZV90IGksIGxlbjsKKworICAgIGFzc2VydCh0eXBlID09ICZ0ZWVkYXRhb2JqZWN0X3R5cGUpOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT08hTyIsICZpdCwgJlB5TGlzdF9UeXBlLCAmdmFsdWVzLCAmbmV4dCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgdGRvID0gKHRlZWRhdGFvYmplY3QgKil0ZWVkYXRhb2JqZWN0X25ld2ludGVybmFsKGl0KTsKKyAgICBpZiAoIXRkbykKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBsZW4gPSBQeUxpc3RfR0VUX1NJWkUodmFsdWVzKTsKKyAgICBpZiAobGVuID4gTElOS0NFTExTKQorICAgICAgICBnb3RvIGVycjsKKyAgICBmb3IgKGk9MDsgaTxsZW47IGkrKykgeworICAgICAgICB0ZG8tPnZhbHVlc1tpXSA9IFB5TGlzdF9HRVRfSVRFTSh2YWx1ZXMsIGkpOworICAgICAgICBQeV9JTkNSRUYodGRvLT52YWx1ZXNbaV0pOworICAgIH0KKyAgICAvKiBsZW4gPD0gTElOS0NFTExTIDwgSU5UX01BWCAqLworICAgIHRkby0+bnVtcmVhZCA9IFB5X1NBRkVfRE9XTkNBU1QobGVuLCBQeV9zc2l6ZV90LCBpbnQpOworCisgICAgaWYgKGxlbiA9PSBMSU5LQ0VMTFMpIHsKKyAgICAgICAgaWYgKG5leHQgIT0gUHlfTm9uZSkgeworICAgICAgICAgICAgaWYgKFB5X1RZUEUobmV4dCkgIT0gJnRlZWRhdGFvYmplY3RfdHlwZSkKKyAgICAgICAgICAgICAgICBnb3RvIGVycjsKKyAgICAgICAgICAgIGFzc2VydCh0ZG8tPm5leHRsaW5rID09IE5VTEwpOworICAgICAgICAgICAgUHlfSU5DUkVGKG5leHQpOworICAgICAgICAgICAgdGRvLT5uZXh0bGluayA9IG5leHQ7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobmV4dCAhPSBQeV9Ob25lKQorICAgICAgICAgICAgZ290byBlcnI7IC8qIHNob3VsZG4ndCBoYXZlIGEgbmV4dCBpZiB3ZSBhcmUgbm90IGZ1bGwgKi8KKyAgICB9CisgICAgcmV0dXJuIChQeU9iamVjdCopdGRvOworCitlcnI6CisgICAgUHlfWERFQ1JFRih0ZG8pOworICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiSW52YWxpZCBhcmd1bWVudHMiKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIHRlZWRhdGFvYmplY3RfbWV0aG9kc1tdID0geworICAgIHsiX19yZWR1Y2VfXyIsICAgICAgKFB5Q0Z1bmN0aW9uKXRlZWRhdGFvYmplY3RfcmVkdWNlLCBNRVRIX05PQVJHUywKKyAgICAgcmVkdWNlX2RvY30sCisgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KK307CisKIFB5RG9jX1NUUlZBUih0ZWVkYXRhb2JqZWN0X2RvYywgIkRhdGEgY29udGFpbmVyIGNvbW1vbiB0byBtdWx0aXBsZSB0ZWUgb2JqZWN0cy4iKTsKIAogc3RhdGljIFB5VHlwZU9iamVjdCB0ZWVkYXRhb2JqZWN0X3R5cGUgPSB7CiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKDAsIDApICAgICAgICAgLyogTXVzdCBmaWxsIGluIHR5cGUgdmFsdWUgbGF0ZXIgKi8KLSAgICAiaXRlcnRvb2xzLnRlZV9kYXRhb2JqZWN0IiwgICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICAiaXRlcnRvb2xzLl90ZWVfZGF0YW9iamVjdCIsICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KICAgICBzaXplb2YodGVlZGF0YW9iamVjdCksICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KICAgICAvKiBtZXRob2RzICovCkBAIC00NTEsNyArNTkzLDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIHRlZWRhdGFvYmplY3RfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCkBAIC00NjEsNyArNjAzLDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2luaXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FsbG9jICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9uZXcgKi8KKyAgICB0ZWVkYXRhb2JqZWN0X25ldywgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLwogICAgIFB5T2JqZWN0X0dDX0RlbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZnJlZSAqLwogfTsKIApAQCAtNTI4LDcgKzY3MCw3IEBACiAgICAgdG8gPSBQeU9iamVjdF9HQ19OZXcodGVlb2JqZWN0LCAmdGVlX3R5cGUpOwogICAgIGlmICh0byA9PSBOVUxMKQogICAgICAgICBnb3RvIGRvbmU7Ci0gICAgdG8tPmRhdGFvYmogPSAodGVlZGF0YW9iamVjdCAqKXRlZWRhdGFvYmplY3RfbmV3KGl0KTsKKyAgICB0by0+ZGF0YW9iaiA9ICh0ZWVkYXRhb2JqZWN0ICopdGVlZGF0YW9iamVjdF9uZXdpbnRlcm5hbChpdCk7CiAgICAgaWYgKCF0by0+ZGF0YW9iaikgewogICAgICAgICBQeU9iamVjdF9HQ19EZWwodG8pOwogICAgICAgICB0byA9IE5VTEw7CkBAIC01NDgsNyArNjkwLDcgQEAKIHsKICAgICBQeU9iamVjdCAqaXRlcmFibGU7CiAKLSAgICBpZiAoIVB5QXJnX1VucGFja1R1cGxlKGFyZ3MsICJ0ZWUiLCAxLCAxLCAmaXRlcmFibGUpKQorICAgIGlmICghUHlBcmdfVW5wYWNrVHVwbGUoYXJncywgIl90ZWUiLCAxLCAxLCAmaXRlcmFibGUpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICByZXR1cm4gdGVlX2Zyb21pdGVyYWJsZShpdGVyYWJsZSk7CiB9CkBAIC01NzAsMTcgKzcxMiw0MyBAQAogICAgIFB5T2JqZWN0X0dDX0RlbCh0byk7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCit0ZWVfcmVkdWNlKHRlZW9iamVjdCAqdG8pCit7CisgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8oKCkpKE9pKSIsIFB5X1RZUEUodG8pLCB0by0+ZGF0YW9iaiwgdG8tPmluZGV4KTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3RlZV9zZXRzdGF0ZSh0ZWVvYmplY3QgKnRvLCBQeU9iamVjdCAqc3RhdGUpCit7CisgICAgdGVlZGF0YW9iamVjdCAqdGRvOworICAgIGludCBpbmRleDsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoc3RhdGUsICJPIWkiLCAmdGVlZGF0YW9iamVjdF90eXBlLCAmdGRvLCAmaW5kZXgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID4gTElOS0NFTExTKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiSW5kZXggb3V0IG9mIHJhbmdlIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBQeV9DTEVBUih0by0+ZGF0YW9iaik7CisgICAgdG8tPmRhdGFvYmogPSB0ZG87CisgICAgUHlfSU5DUkVGKHRvLT5kYXRhb2JqKTsKKyAgICB0by0+aW5kZXggPSBpbmRleDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKwogUHlEb2NfU1RSVkFSKHRlZW9iamVjdF9kb2MsCiAiSXRlcmF0b3Igd3JhcHBlZCB0byBtYWtlIGl0IGNvcHlhYmxlIik7CiAKIHN0YXRpYyBQeU1ldGhvZERlZiB0ZWVfbWV0aG9kc1tdID0gewogICAgIHsiX19jb3B5X18iLCAgICAgICAgKFB5Q0Z1bmN0aW9uKXRlZV9jb3B5LCAgTUVUSF9OT0FSR1MsIHRlZWNvcHlfZG9jfSwKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbil0ZWVfcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLCByZWR1Y2VfZG9jfSwKKyAgICB7Il9fc2V0c3RhdGVfXyIsICAgIChQeUNGdW5jdGlvbil0ZWVfc2V0c3RhdGUsICAgIE1FVEhfTywgc2V0c3RhdGVfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwogfTsKIAogc3RhdGljIFB5VHlwZU9iamVjdCB0ZWVfdHlwZSA9IHsKICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKLSAgICAiaXRlcnRvb2xzLnRlZSIsICAgICAgICAgICAgICAgICAgICAvKiB0cF9uYW1lICovCisgICAgIml0ZXJ0b29scy5fdGVlIiwgICAgICAgICAgICAgICAgICAgLyogdHBfbmFtZSAqLwogICAgIHNpemVvZih0ZWVvYmplY3QpLCAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXplICovCiAgICAgLyogbWV0aG9kcyAqLwpAQCAtNjI2LDYgKzc5NCw3IEBACiB7CiAgICAgUHlfc3NpemVfdCBpLCBuPTI7CiAgICAgUHlPYmplY3QgKml0LCAqaXRlcmFibGUsICpjb3B5YWJsZSwgKnJlc3VsdDsKKyAgICBfUHlfSURFTlRJRklFUihfX2NvcHlfXyk7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk98biIsICZpdGVyYWJsZSwgJm4pKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTY0Myw3ICs4MTIsNyBAQAogICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIGlmICghUHlPYmplY3RfSGFzQXR0clN0cmluZyhpdCwgIl9fY29weV9fIikpIHsKKyAgICBpZiAoIV9QeU9iamVjdF9IYXNBdHRySWQoaXQsICZQeUlkX19fY29weV9fKSkgewogICAgICAgICBjb3B5YWJsZSA9IHRlZV9mcm9taXRlcmFibGUoaXQpOwogICAgICAgICBQeV9ERUNSRUYoaXQpOwogICAgICAgICBpZiAoY29weWFibGUgPT0gTlVMTCkgewpAQCAtNjU0LDcgKzgyMyw4IEBACiAgICAgICAgIGNvcHlhYmxlID0gaXQ7CiAgICAgUHlUdXBsZV9TRVRfSVRFTShyZXN1bHQsIDAsIGNvcHlhYmxlKTsKICAgICBmb3IgKGk9MSA7IGk8biA7IGkrKykgewotICAgICAgICBjb3B5YWJsZSA9IFB5T2JqZWN0X0NhbGxNZXRob2QoY29weWFibGUsICJfX2NvcHlfXyIsIE5VTEwpOworCisgICAgICAgIGNvcHlhYmxlID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChjb3B5YWJsZSwgJlB5SWRfX19jb3B5X18sIE5VTEwpOwogICAgICAgICBpZiAoY29weWFibGUgPT0gTlVMTCkgewogICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTc2OSw2ICs5MzksMzggQEAKICAgICB9CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitjeWNsZV9yZWR1Y2UoY3ljbGVvYmplY3QgKmx6KQoreworICAgIC8qIENyZWF0ZSBhIG5ldyBjeWNsZSB3aXRoIHRoZSBpdGVyYXRvciB0dXBsZSwgdGhlbiBzZXQKKyAgICAgKiB0aGUgc2F2ZWQgc3RhdGUgb24gaXQuCisgICAgICovCisgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8oTykoT2kpIiwgUHlfVFlQRShseiksIAorICAgICAgICBsei0+aXQsIGx6LT5zYXZlZCwgbHotPmZpcnN0cGFzcyk7CisgICAgfQorCitzdGF0aWMgUHlPYmplY3QgKgorY3ljbGVfc2V0c3RhdGUoY3ljbGVvYmplY3QgKmx6LCBQeU9iamVjdCAqc3RhdGUpCit7CisgICAgUHlPYmplY3QgKnNhdmVkPU5VTEw7CisgICAgaW50IGZpcnN0cGFzczsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoc3RhdGUsICJPaSIsICZzYXZlZCwgJmZpcnN0cGFzcykpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIFB5X0NMRUFSKGx6LT5zYXZlZCk7CisgICAgbHotPnNhdmVkID0gc2F2ZWQ7CisgICAgUHlfWElOQ1JFRihsei0+c2F2ZWQpOworICAgIGx6LT5maXJzdHBhc3MgPSBmaXJzdHBhc3MgIT0gMDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIGN5Y2xlX21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbiljeWNsZV9yZWR1Y2UsICAgICAgTUVUSF9OT0FSR1MsCisgICAgIHJlZHVjZV9kb2N9LAorICAgIHsiX19zZXRzdGF0ZV9fIiwgICAgKFB5Q0Z1bmN0aW9uKWN5Y2xlX3NldHN0YXRlLCAgICBNRVRIX08sCisgICAgIHNldHN0YXRlX2RvY30sCisgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgIC8qIHNlbnRpbmVsICovCit9OworCiBQeURvY19TVFJWQVIoY3ljbGVfZG9jLAogImN5Y2xlKGl0ZXJhYmxlKSAtLT4gY3ljbGUgb2JqZWN0XG5cCiBcblwKQEAgLTgwNSw3ICsxMDA3LDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwogICAgIFB5T2JqZWN0X1NlbGZJdGVyLCAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAoaXRlcm5leHRmdW5jKWN5Y2xlX25leHQsICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBjeWNsZV9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KQEAgLTkxMSw2ICsxMTEzLDMxIEBACiAgICAgfQogfQogCitzdGF0aWMgUHlPYmplY3QgKgorZHJvcHdoaWxlX3JlZHVjZShkcm9wd2hpbGVvYmplY3QgKmx6KQoreworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKE9PKWwiLCBQeV9UWVBFKGx6KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsei0+ZnVuYywgbHotPml0LCBsei0+c3RhcnQpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZHJvcHdoaWxlX3NldHN0YXRlKGRyb3B3aGlsZW9iamVjdCAqbHosIFB5T2JqZWN0ICpzdGF0ZSkKK3sKKyAgICBpbnQgc3RhcnQgPSBQeU9iamVjdF9Jc1RydWUoc3RhdGUpOworICAgIGlmIChzdGFydCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbHotPnN0YXJ0ID0gc3RhcnQ7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK3N0YXRpYyBQeU1ldGhvZERlZiBkcm9wd2hpbGVfbWV0aG9kc1tdID0geworICAgIHsiX19yZWR1Y2VfXyIsICAgICAgKFB5Q0Z1bmN0aW9uKWRyb3B3aGlsZV9yZWR1Y2UsICAgICAgTUVUSF9OT0FSR1MsCisgICAgIHJlZHVjZV9kb2N9LAorICAgIHsiX19zZXRzdGF0ZV9fIiwgICAgKFB5Q0Z1bmN0aW9uKWRyb3B3aGlsZV9zZXRzdGF0ZSwgICAgTUVUSF9PLAorICAgICBzZXRzdGF0ZV9kb2N9LAorICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAvKiBzZW50aW5lbCAqLworfTsKKwogUHlEb2NfU1RSVkFSKGRyb3B3aGlsZV9kb2MsCiAiZHJvcHdoaWxlKHByZWRpY2F0ZSwgaXRlcmFibGUpIC0tPiBkcm9wd2hpbGUgb2JqZWN0XG5cCiBcblwKQEAgLTk0Nyw3ICsxMTc0LDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwogICAgIFB5T2JqZWN0X1NlbGZJdGVyLCAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAoaXRlcm5leHRmdW5jKWRyb3B3aGlsZV9uZXh0LCAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBkcm9wd2hpbGVfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCkBAIC0xMDUwLDYgKzEyNzcsMzAgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK3Rha2V3aGlsZV9yZWR1Y2UodGFrZXdoaWxlb2JqZWN0ICpseikKK3sKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPTylsIiwgUHlfVFlQRShseiksCisgICAgICAgICAgICAgICAgICAgICAgICAgbHotPmZ1bmMsIGx6LT5pdCwgbHotPnN0b3ApOworfQorCitzdGF0aWMgUHlPYmplY3QgKgordGFrZXdoaWxlX3JlZHVjZV9zZXRzdGF0ZSh0YWtld2hpbGVvYmplY3QgKmx6LCBQeU9iamVjdCAqc3RhdGUpCit7CisgICAgaW50IHN0b3AgPSBQeU9iamVjdF9Jc1RydWUoc3RhdGUpOworICAgIGlmIChzdG9wID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBsei0+c3RvcCA9IHN0b3A7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK3N0YXRpYyBQeU1ldGhvZERlZiB0YWtld2hpbGVfcmVkdWNlX21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbil0YWtld2hpbGVfcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKKyAgICB7Il9fc2V0c3RhdGVfXyIsICAgIChQeUNGdW5jdGlvbil0YWtld2hpbGVfcmVkdWNlX3NldHN0YXRlLCAgICBNRVRIX08sCisgICAgIHNldHN0YXRlX2RvY30sCisgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgIC8qIHNlbnRpbmVsICovCit9OwogUHlEb2NfU1RSVkFSKHRha2V3aGlsZV9kb2MsCiAidGFrZXdoaWxlKHByZWRpY2F0ZSwgaXRlcmFibGUpIC0tPiB0YWtld2hpbGUgb2JqZWN0XG5cCiBcblwKQEAgLTEwODYsNyArMTMzNyw3IEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KICAgICBQeU9iamVjdF9TZWxmSXRlciwgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCiAgICAgKGl0ZXJuZXh0ZnVuYyl0YWtld2hpbGVfbmV4dCwgICAgICAgLyogdHBfaXRlcm5leHQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgdGFrZXdoaWxlX3JlZHVjZV9tZXRob2RzLCAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCkBAIC0xMjQyLDYgKzE0OTMsNDQgQEAKICAgICByZXR1cm4gaXRlbTsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK2lzbGljZV9yZWR1Y2UoaXNsaWNlb2JqZWN0ICpseikKK3sKKyAgICAvKiBXaGVuIHVucGlja2xlZCwgZ2VuZXJhdGUgYSBuZXcgb2JqZWN0IHdpdGggdGhlIHNhbWUgYm91bmRzLAorICAgICAqIHRoZW4gJ3NldHN0YXRlJyB3aXRoIHRoZSBuZXh0IGFuZCBjb3VudAorICAgICAqLworICAgIFB5T2JqZWN0ICpzdG9wOworICAgIGlmIChsei0+c3RvcCA9PSAtMSkgeworICAgICAgICBzdG9wID0gUHlfTm9uZTsKKyAgICAgICAgUHlfSU5DUkVGKHN0b3ApOworICAgIH0gZWxzZSB7CisgICAgICAgIHN0b3AgPSBQeUxvbmdfRnJvbVNzaXplX3QobHotPnN0b3ApOworICAgICAgICBpZiAoc3RvcCA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKE9uTm4pbiIsIFB5X1RZUEUobHopLAorICAgICAgICBsei0+aXQsIGx6LT5uZXh0LCBzdG9wLCBsei0+c3RlcCwKKyAgICAgICAgbHotPmNudCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitpc2xpY2Vfc2V0c3RhdGUoaXNsaWNlb2JqZWN0ICpseiwgUHlPYmplY3QgKnN0YXRlKQoreworICAgIFB5X3NzaXplX3QgY250ID0gUHlMb25nX0FzU3NpemVfdChzdGF0ZSk7CisgICAgaWYgKGNudCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBsei0+Y250ID0gY250OworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgUHlNZXRob2REZWYgaXNsaWNlX21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbilpc2xpY2VfcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKKyAgICB7Il9fc2V0c3RhdGVfXyIsICAgIChQeUNGdW5jdGlvbilpc2xpY2Vfc2V0c3RhdGUsICAgIE1FVEhfTywKKyAgICAgc2V0c3RhdGVfZG9jfSwKKyAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgLyogc2VudGluZWwgKi8KK307CisKIFB5RG9jX1NUUlZBUihpc2xpY2VfZG9jLAogImlzbGljZShpdGVyYWJsZSwgW3N0YXJ0LF0gc3RvcCBbLCBzdGVwXSkgLS0+IGlzbGljZSBvYmplY3RcblwKIFxuXApAQCAtMTI4Miw3ICsxNTcxLDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwogICAgIFB5T2JqZWN0X1NlbGZJdGVyLCAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAoaXRlcm5leHRmdW5jKWlzbGljZV9uZXh0LCAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBpc2xpY2VfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KQEAgLTEzNzcsNiArMTY2NiwxOSBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitzdGFybWFwX3JlZHVjZShzdGFybWFwb2JqZWN0ICpseikKK3sKKyAgICAvKiBKdXN0IHBpY2tsZSB0aGUgaXRlcmF0b3IgKi8KKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPTykiLCBQeV9UWVBFKGx6KSwgbHotPmZ1bmMsIGx6LT5pdCk7Cit9CisKK3N0YXRpYyBQeU1ldGhvZERlZiBzdGFybWFwX21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbilzdGFybWFwX3JlZHVjZSwgICAgICBNRVRIX05PQVJHUywKKyAgICAgcmVkdWNlX2RvY30sCisgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgIC8qIHNlbnRpbmVsICovCit9OworCiBQeURvY19TVFJWQVIoc3Rhcm1hcF9kb2MsCiAic3Rhcm1hcChmdW5jdGlvbiwgc2VxdWVuY2UpIC0tPiBzdGFybWFwIG9iamVjdFxuXAogXG5cCkBAIC0xNDEzLDcgKzE3MTUsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgIChpdGVybmV4dGZ1bmMpc3Rhcm1hcF9uZXh0LCAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIHN0YXJtYXBfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwpAQCAtMTUzMiw2ICsxODM0LDQxIEBACiAgICAgcmV0dXJuIGNoYWluX25leHQobHopOyAgICAgICAgICAgICAgICAgICAgICAvKiByZWN1cnNlIGFuZCB1c2UgbmV4dCBhY3RpdmUgKi8KIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK2NoYWluX3JlZHVjZShjaGFpbm9iamVjdCAqbHopCit7CisgICAgaWYgKGx6LT5zb3VyY2UpIHsKKyAgICAgICAgLyogd2UgY2FuJ3QgcGlja2xlIGZ1bmN0aW9uIG9iamVjdHMgKGl0ZXJ0b29scy5mcm9tX2l0ZXJhYmxlKSBzbworICAgICAgICAgKiB3ZSBtdXN0IHVzZSBzZXRzdGF0ZSB0byByZXBsYWNlIHRoZSBpdGVyYWJsZS4gIE9uZSBkYXkgd2UKKyAgICAgICAgICogd2lsbCBmaXggcGlja2xpbmcgb2YgZnVuY3Rpb25zCisgICAgICAgICAqLworICAgICAgICBpZiAobHotPmFjdGl2ZSkgeworICAgICAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8oKShPTykiLCBQeV9UWVBFKGx6KSwgbHotPnNvdXJjZSwgbHotPmFjdGl2ZSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTygpKE8pIiwgUHlfVFlQRShseiksIGx6LT5zb3VyY2UpOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8oKSIsIFB5X1RZUEUobHopKTsgLyogZXhoYXVzdGVkICovCisgICAgfQorICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorY2hhaW5fc2V0c3RhdGUoY2hhaW5vYmplY3QgKmx6LCBQeU9iamVjdCAqc3RhdGUpCit7CisgICAgUHlPYmplY3QgKnNvdXJjZSwgKmFjdGl2ZT1OVUxMOworICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoc3RhdGUsICJPfE8iLCAmc291cmNlLCAmYWN0aXZlKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9DTEVBUihsei0+c291cmNlKTsKKyAgICBsei0+c291cmNlID0gc291cmNlOworICAgIFB5X0lOQ1JFRihsei0+c291cmNlKTsKKyAgICBQeV9DTEVBUihsei0+YWN0aXZlKTsKKyAgICBsei0+YWN0aXZlID0gYWN0aXZlOworICAgIFB5X1hJTkNSRUYobHotPmFjdGl2ZSk7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKIFB5RG9jX1NUUlZBUihjaGFpbl9kb2MsCiAiY2hhaW4oKml0ZXJhYmxlcykgLS0+IGNoYWluIG9iamVjdFxuXAogXG5cCkBAIC0xNTQ4LDYgKzE4ODUsMTAgQEAKIHN0YXRpYyBQeU1ldGhvZERlZiBjaGFpbl9tZXRob2RzW10gPSB7CiAgICAgeyJmcm9tX2l0ZXJhYmxlIiwgKFB5Q0Z1bmN0aW9uKSBjaGFpbl9uZXdfZnJvbV9pdGVyYWJsZSwgICAgICAgICAgICBNRVRIX08gfCBNRVRIX0NMQVNTLAogICAgICAgICBjaGFpbl9mcm9tX2l0ZXJhYmxlX2RvY30sCisgICAgeyJfX3JlZHVjZV9fIiwgICAgICAoUHlDRnVuY3Rpb24pY2hhaW5fcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKKyAgICB7Il9fc2V0c3RhdGVfXyIsICAgIChQeUNGdW5jdGlvbiljaGFpbl9zZXRzdGF0ZSwgICAgTUVUSF9PLAorICAgICBzZXRzdGF0ZV9kb2N9LAogICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAvKiBzZW50aW5lbCAqLwogfTsKIApAQCAtMTc4OCw2ICsyMTI5LDgzIEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitwcm9kdWN0X3JlZHVjZShwcm9kdWN0b2JqZWN0ICpseikKK3sKKyAgICBpZiAobHotPnN0b3BwZWQpIHsKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8oKCkpIiwgUHlfVFlQRShseikpOworICAgIH0gZWxzZSBpZiAobHotPnJlc3VsdCA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPTyIsIFB5X1RZUEUobHopLCBsei0+cG9vbHMpOworICAgIH0gZWxzZSB7CisgICAgICAgIFB5T2JqZWN0ICppbmRpY2VzOworICAgICAgICBQeV9zc2l6ZV90IG4sIGk7CisKKyAgICAgICAgLyogd2UgbXVzdCBwaWNrbGUgdGhlIGluZGljZXMgdXNlIHRoZW0gZm9yIHNldHN0YXRlLCBhbmQKKyAgICAgICAgICogYWRkaXRpb25hbGx5IGluZGljYXRlIHRoYXQgdGhlIGl0ZXJhdG9yIGhhcyBzdGFydGVkCisgICAgICAgICAqLworICAgICAgICBuID0gUHlUdXBsZV9HRVRfU0laRShsei0+cG9vbHMpOworICAgICAgICBpbmRpY2VzID0gUHlUdXBsZV9OZXcobik7CisgICAgICAgIGlmIChpbmRpY2VzID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgZm9yIChpPTA7IGk8bjsgaSsrKXsKKyAgICAgICAgICAgIFB5T2JqZWN0KiBpbmRleCA9IFB5TG9uZ19Gcm9tU3NpemVfdChsei0+aW5kaWNlc1tpXSk7CisgICAgICAgICAgICBpZiAoIWluZGV4KSB7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGluZGljZXMpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICAgICAgUHlUdXBsZV9TRVRfSVRFTShpbmRpY2VzLCBpLCBpbmRleCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk9PTiIsIFB5X1RZUEUobHopLCBsei0+cG9vbHMsIGluZGljZXMpOworICAgIH0KK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3Byb2R1Y3Rfc2V0c3RhdGUocHJvZHVjdG9iamVjdCAqbHosIFB5T2JqZWN0ICpzdGF0ZSkKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5X3NzaXplX3QgbiwgaTsKKworICAgIG4gPSBQeVR1cGxlX0dFVF9TSVpFKGx6LT5wb29scyk7CisgICAgaWYgKCFQeVR1cGxlX0NoZWNrKHN0YXRlKSB8fCBQeVR1cGxlX0dFVF9TSVpFKHN0YXRlKSAhPSBuKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiaW52YWxpZCBhcmd1bWVudHMiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGZvciAoaT0wOyBpPG47IGkrKykKKyAgICB7CisgICAgICAgIFB5T2JqZWN0KiBpbmRleE9iamVjdCA9IFB5VHVwbGVfR0VUX0lURU0oc3RhdGUsIGkpOworICAgICAgICBQeV9zc2l6ZV90IGluZGV4ID0gUHlMb25nX0FzU3NpemVfdChpbmRleE9iamVjdCk7CisgICAgICAgIGlmIChpbmRleCA8IDAgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOyAvKiBub3QgYW4gaW50ZWdlciAqLworICAgICAgICAvKiBjbGFtcCB0aGUgaW5kZXggKi8KKyAgICAgICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgZWxzZSBpZiAoaW5kZXggPiBuLTEpCisgICAgICAgICAgICBpbmRleCA9IG4tMTsKKyAgICAgICAgbHotPmluZGljZXNbaV0gPSBpbmRleDsKKyAgICB9CisKKyAgICByZXN1bHQgPSBQeVR1cGxlX05ldyhuKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgZm9yIChpPTA7IGk8bjsgaSsrKSB7CisgICAgICAgIFB5T2JqZWN0ICpwb29sID0gUHlUdXBsZV9HRVRfSVRFTShsei0+cG9vbHMsIGkpOworICAgICAgICBQeU9iamVjdCAqZWxlbWVudCA9IFB5VHVwbGVfR0VUX0lURU0ocG9vbCwgbHotPmluZGljZXNbaV0pOworICAgICAgICBQeV9JTkNSRUYoZWxlbWVudCk7CisgICAgICAgIFB5VHVwbGVfU0VUX0lURU0ocmVzdWx0LCBpLCBlbGVtZW50KTsKKyAgICB9CisgICAgUHlfQ0xFQVIobHotPnJlc3VsdCk7CisgICAgbHotPnJlc3VsdCA9IHJlc3VsdDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIHByb2R1Y3RfbWV0aG9kc1tdID0geworICAgIHsiX19yZWR1Y2VfXyIsICAgICAgKFB5Q0Z1bmN0aW9uKXByb2R1Y3RfcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKKyAgICB7Il9fc2V0c3RhdGVfXyIsICAgIChQeUNGdW5jdGlvbilwcm9kdWN0X3NldHN0YXRlLCAgICBNRVRIX08sCisgICAgIHNldHN0YXRlX2RvY30sCisgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgIC8qIHNlbnRpbmVsICovCit9OworCiBQeURvY19TVFJWQVIocHJvZHVjdF9kb2MsCiAicHJvZHVjdCgqaXRlcmFibGVzKSAtLT4gcHJvZHVjdCBvYmplY3RcblwKIFxuXApAQCAtMTgzMiw3ICsyMjUwLDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwogICAgIFB5T2JqZWN0X1NlbGZJdGVyLCAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAoaXRlcm5leHRmdW5jKXByb2R1Y3RfbmV4dCwgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBwcm9kdWN0X21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KQEAgLTIwMTksNiArMjQzNyw4NiBAQAogICAgIHJldHVybiBOVUxMOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorY29tYmluYXRpb25zX3JlZHVjZShjb21iaW5hdGlvbnNvYmplY3QgKmx6KQoreworICAgIGlmIChsei0+cmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8oT24pIiwgUHlfVFlQRShseiksIGx6LT5wb29sLCBsei0+cik7CisgICAgfSBlbHNlIGlmIChsei0+c3RvcHBlZCkgeworICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTygoKW4pIiwgUHlfVFlQRShseiksIGx6LT5yKTsKKyAgICB9IGVsc2UgeworICAgICAgICBQeU9iamVjdCAqaW5kaWNlczsKKyAgICAgICAgUHlfc3NpemVfdCBpOworCisgICAgICAgIC8qIHdlIG11c3QgcGlja2xlIHRoZSBpbmRpY2VzIGFuZCB1c2UgdGhlbSBmb3Igc2V0c3RhdGUgKi8KKyAgICAgICAgaW5kaWNlcyA9IFB5VHVwbGVfTmV3KGx6LT5yKTsKKyAgICAgICAgaWYgKCFpbmRpY2VzKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGZvciAoaT0wOyBpPGx6LT5yOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFB5T2JqZWN0KiBpbmRleCA9IFB5TG9uZ19Gcm9tU3NpemVfdChsei0+aW5kaWNlc1tpXSk7CisgICAgICAgICAgICBpZiAoIWluZGV4KSB7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGluZGljZXMpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICAgICAgUHlUdXBsZV9TRVRfSVRFTShpbmRpY2VzLCBpLCBpbmRleCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPbilOIiwgUHlfVFlQRShseiksIGx6LT5wb29sLCBsei0+ciwgaW5kaWNlcyk7CisgICAgfQorfQorCitzdGF0aWMgUHlPYmplY3QgKgorY29tYmluYXRpb25zX3NldHN0YXRlKGNvbWJpbmF0aW9uc29iamVjdCAqbHosIFB5T2JqZWN0ICpzdGF0ZSkKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5X3NzaXplX3QgaTsKKyAgICBQeV9zc2l6ZV90IG4gPSBQeVR1cGxlX0dFVF9TSVpFKGx6LT5wb29sKTsKKworICAgIGlmICghUHlUdXBsZV9DaGVjayhzdGF0ZSkgfHwgUHlUdXBsZV9HRVRfU0laRShzdGF0ZSkgIT0gbHotPnIpCisgICAgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImludmFsaWQgYXJndW1lbnRzIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGZvciAoaT0wOyBpPGx6LT5yOyBpKyspCisgICAgeworICAgICAgICBQeV9zc2l6ZV90IG1heDsKKyAgICAgICAgUHlPYmplY3QqIGluZGV4T2JqZWN0ID0gUHlUdXBsZV9HRVRfSVRFTShzdGF0ZSwgaSk7CisgICAgICAgIFB5X3NzaXplX3QgaW5kZXggPSBQeUxvbmdfQXNTc2l6ZV90KGluZGV4T2JqZWN0KTsKKyAgICAgICAgaWYgKGluZGV4ID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogbm90IGFuIGludGVnZXIgKi8KKyAgICAgICAgbWF4ID0gaSArIG4gLSBsei0+cjsKKyAgICAgICAgLyogY2xhbXAgdGhlIGluZGV4IChiZXdhcmUgb2YgbmVnYXRpdmUgbWF4KSAqLworICAgICAgICBpZiAoaW5kZXggPiBtYXgpCisgICAgICAgICAgICBpbmRleCA9IG1heDsKKyAgICAgICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgbHotPmluZGljZXNbaV0gPSBpbmRleDsKKyAgICB9CisKKyAgICByZXN1bHQgPSBQeVR1cGxlX05ldyhsei0+cik7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBmb3IgKGk9MDsgaTxsei0+cjsgaSsrKSB7CisgICAgICAgIFB5T2JqZWN0ICplbGVtZW50ID0gUHlUdXBsZV9HRVRfSVRFTShsei0+cG9vbCwgbHotPmluZGljZXNbaV0pOworICAgICAgICBQeV9JTkNSRUYoZWxlbWVudCk7CisgICAgICAgIFB5VHVwbGVfU0VUX0lURU0ocmVzdWx0LCBpLCBlbGVtZW50KTsKKyAgICB9CisKKyAgICBQeV9DTEVBUihsei0+cmVzdWx0KTsKKyAgICBsei0+cmVzdWx0ID0gcmVzdWx0OworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgUHlNZXRob2REZWYgY29tYmluYXRpb25zX21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbiljb21iaW5hdGlvbnNfcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKKyAgICB7Il9fc2V0c3RhdGVfXyIsICAgIChQeUNGdW5jdGlvbiljb21iaW5hdGlvbnNfc2V0c3RhdGUsICAgIE1FVEhfTywKKyAgICAgc2V0c3RhdGVfZG9jfSwKKyAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgLyogc2VudGluZWwgKi8KK307CisKIFB5RG9jX1NUUlZBUihjb21iaW5hdGlvbnNfZG9jLAogImNvbWJpbmF0aW9ucyhpdGVyYWJsZSwgcikgLS0+IGNvbWJpbmF0aW9ucyBvYmplY3RcblwKIFxuXApAQCAtMjAyNywxMSArMjUyNSwxMSBAQAogCiBzdGF0aWMgUHlUeXBlT2JqZWN0IGNvbWJpbmF0aW9uc190eXBlID0gewogICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVChOVUxMLCAwKQotICAgICJpdGVydG9vbHMuY29tYmluYXRpb25zIiwgICAgICAgICAgICAgICAgICAgLyogdHBfbmFtZSAqLworICAgICJpdGVydG9vbHMuY29tYmluYXRpb25zIiwgICAgICAgICAgIC8qIHRwX25hbWUgKi8KICAgICBzaXplb2YoY29tYmluYXRpb25zb2JqZWN0KSwgICAgICAgICAvKiB0cF9iYXNpY3NpemUgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLwogICAgIC8qIG1ldGhvZHMgKi8KLSAgICAoZGVzdHJ1Y3Rvciljb21iaW5hdGlvbnNfZGVhbGxvYywgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KKyAgICAoZGVzdHJ1Y3Rvciljb21iaW5hdGlvbnNfZGVhbGxvYywgICAvKiB0cF9kZWFsbG9jICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLwpAQCAtMjA0OCwxNCArMjU0NiwxNCBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLwogICAgIFB5X1RQRkxBR1NfREVGQVVMVCB8IFB5X1RQRkxBR1NfSEFWRV9HQyB8CiAgICAgICAgIFB5X1RQRkxBR1NfQkFTRVRZUEUsICAgICAgICAgICAgLyogdHBfZmxhZ3MgKi8KLSAgICBjb21iaW5hdGlvbnNfZG9jLCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RvYyAqLwotICAgICh0cmF2ZXJzZXByb2MpY29tYmluYXRpb25zX3RyYXZlcnNlLCAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICBjb21iaW5hdGlvbnNfZG9jLCAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KKyAgICAodHJhdmVyc2Vwcm9jKWNvbWJpbmF0aW9uc190cmF2ZXJzZSwvKiB0cF90cmF2ZXJzZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwogICAgIFB5T2JqZWN0X1NlbGZJdGVyLCAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KLSAgICAoaXRlcm5leHRmdW5jKWNvbWJpbmF0aW9uc19uZXh0LCAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIChpdGVybmV4dGZ1bmMpY29tYmluYXRpb25zX25leHQsICAgIC8qIHRwX2l0ZXJuZXh0ICovCisgICAgY29tYmluYXRpb25zX21ldGhvZHMsICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCkBAIC0yMDY1LDcgKzI1NjMsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pbml0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KLSAgICBjb21iaW5hdGlvbnNfbmV3LCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLworICAgIGNvbWJpbmF0aW9uc19uZXcsICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLwogICAgIFB5T2JqZWN0X0dDX0RlbCwgICAgICAgICAgICAgICAgICAgIC8qIHRwX2ZyZWUgKi8KIH07CiAKQEAgLTIyNjQsNiArMjc2Miw4MiBAQAogICAgIHJldHVybiBOVUxMOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorY3dyX3JlZHVjZShjd3JvYmplY3QgKmx6KQoreworICAgIGlmIChsei0+cmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8oT24pIiwgUHlfVFlQRShseiksIGx6LT5wb29sLCBsei0+cik7CisgICAgfSBlbHNlIGlmIChsei0+c3RvcHBlZCkgeworICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTygoKW4pIiwgUHlfVFlQRShseiksIGx6LT5yKTsKKyAgICB9IGVsc2UgeworICAgICAgICBQeU9iamVjdCAqaW5kaWNlczsKKyAgICAgICAgUHlfc3NpemVfdCBpOworCisgICAgICAgIC8qIHdlIG11c3QgcGlja2xlIHRoZSBpbmRpY2VzIGFuZCB1c2UgdGhlbSBmb3Igc2V0c3RhdGUgKi8KKyAgICAgICAgaW5kaWNlcyA9IFB5VHVwbGVfTmV3KGx6LT5yKTsKKyAgICAgICAgaWYgKCFpbmRpY2VzKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGZvciAoaT0wOyBpPGx6LT5yOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFB5T2JqZWN0KiBpbmRleCA9IFB5TG9uZ19Gcm9tU3NpemVfdChsei0+aW5kaWNlc1tpXSk7CisgICAgICAgICAgICBpZiAoIWluZGV4KSB7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGluZGljZXMpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICAgICAgUHlUdXBsZV9TRVRfSVRFTShpbmRpY2VzLCBpLCBpbmRleCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPbilOIiwgUHlfVFlQRShseiksIGx6LT5wb29sLCBsei0+ciwgaW5kaWNlcyk7CisgICAgfQorfQorCitzdGF0aWMgUHlPYmplY3QgKgorY3dyX3NldHN0YXRlKGN3cm9iamVjdCAqbHosIFB5T2JqZWN0ICpzdGF0ZSkKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5X3NzaXplX3QgbiwgaTsKKworICAgIGlmICghUHlUdXBsZV9DaGVjayhzdGF0ZSkgfHwgUHlUdXBsZV9HRVRfU0laRShzdGF0ZSkgIT0gbHotPnIpCisgICAgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImludmFsaWQgYXJndW1lbnRzIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIG4gPSBQeVR1cGxlX0dFVF9TSVpFKGx6LT5wb29sKTsKKyAgICBmb3IgKGk9MDsgaTxsei0+cjsgaSsrKQorICAgIHsKKyAgICAgICAgUHlPYmplY3QqIGluZGV4T2JqZWN0ID0gUHlUdXBsZV9HRVRfSVRFTShzdGF0ZSwgaSk7CisgICAgICAgIFB5X3NzaXplX3QgaW5kZXggPSBQeUxvbmdfQXNTc2l6ZV90KGluZGV4T2JqZWN0KTsKKyAgICAgICAgaWYgKGluZGV4IDwgMCAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7IC8qIG5vdCBhbiBpbnRlZ2VyICovCisgICAgICAgIC8qIGNsYW1wIHRoZSBpbmRleCAqLworICAgICAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICBlbHNlIGlmIChpbmRleCA+IG4tMSkKKyAgICAgICAgICAgIGluZGV4ID0gbi0xOworICAgICAgICBsei0+aW5kaWNlc1tpXSA9IGluZGV4OworICAgIH0KKyAgICByZXN1bHQgPSBQeVR1cGxlX05ldyhsei0+cik7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBmb3IgKGk9MDsgaTxsei0+cjsgaSsrKSB7CisgICAgICAgIFB5T2JqZWN0ICplbGVtZW50ID0gUHlUdXBsZV9HRVRfSVRFTShsei0+cG9vbCwgbHotPmluZGljZXNbaV0pOworICAgICAgICBQeV9JTkNSRUYoZWxlbWVudCk7CisgICAgICAgIFB5VHVwbGVfU0VUX0lURU0ocmVzdWx0LCBpLCBlbGVtZW50KTsKKyAgICB9CisgICAgUHlfQ0xFQVIobHotPnJlc3VsdCk7CisgICAgbHotPnJlc3VsdCA9IHJlc3VsdDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIGN3cl9tZXRob2RzW10gPSB7CisgICAgeyJfX3JlZHVjZV9fIiwgICAgICAoUHlDRnVuY3Rpb24pY3dyX3JlZHVjZSwgICAgICBNRVRIX05PQVJHUywKKyAgICAgcmVkdWNlX2RvY30sCisgICAgeyJfX3NldHN0YXRlX18iLCAgICAoUHlDRnVuY3Rpb24pY3dyX3NldHN0YXRlLCAgICBNRVRIX08sCisgICAgIHNldHN0YXRlX2RvY30sCisgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgIC8qIHNlbnRpbmVsICovCit9OworCiBQeURvY19TVFJWQVIoY3dyX2RvYywKICJjb21iaW5hdGlvbnNfd2l0aF9yZXBsYWNlbWVudChpdGVyYWJsZSwgcikgLS0+IGNvbWJpbmF0aW9uc193aXRoX3JlcGxhY2VtZW50IG9iamVjdFxuXAogXG5cCkBAIC0yMjczLDExICsyODQ3LDExIEBACiAKIHN0YXRpYyBQeVR5cGVPYmplY3QgY3dyX3R5cGUgPSB7CiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi0gICAgIml0ZXJ0b29scy5jb21iaW5hdGlvbnNfd2l0aF9yZXBsYWNlbWVudCIsICAgICAgICAgICAgICAgICAgLyogdHBfbmFtZSAqLwotICAgIHNpemVvZihjd3JvYmplY3QpLCAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLworICAgICJpdGVydG9vbHMuY29tYmluYXRpb25zX3dpdGhfcmVwbGFjZW1lbnQiLCAgICAgICAgICAvKiB0cF9uYW1lICovCisgICAgc2l6ZW9mKGN3cm9iamVjdCksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLwogICAgIC8qIG1ldGhvZHMgKi8KLSAgICAoZGVzdHJ1Y3Rvciljd3JfZGVhbGxvYywgICAgICAgICAgICAvKiB0cF9kZWFsbG9jICovCisgICAgKGRlc3RydWN0b3IpY3dyX2RlYWxsb2MsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcHJpbnQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0ciAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCkBAIC0yMjg5LDE5ICsyODYzLDE5IEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KLSAgICBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KICAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0hBVkVfR0MgfAotICAgICAgICBQeV9UUEZMQUdTX0JBU0VUWVBFLCAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCi0gICAgY3dyX2RvYywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KLSAgICAodHJhdmVyc2Vwcm9jKWN3cl90cmF2ZXJzZSwgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgICAgICBQeV9UUEZMQUdTX0JBU0VUWVBFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9mbGFncyAqLworICAgIGN3cl9kb2MsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KKyAgICAodHJhdmVyc2Vwcm9jKWN3cl90cmF2ZXJzZSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICBQeU9iamVjdF9TZWxmSXRlciwgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCi0gICAgKGl0ZXJuZXh0ZnVuYyljd3JfbmV4dCwgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBQeU9iamVjdF9TZWxmSXRlciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLworICAgIChpdGVybmV4dGZ1bmMpY3dyX25leHQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLworICAgIGN3cl9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KQEAgLTIzMTEsOCArMjg4NSw4IEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLwotICAgIGN3cl9uZXcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCi0gICAgUHlPYmplY3RfR0NfRGVsLCAgICAgICAgICAgICAgICAgICAgLyogdHBfZnJlZSAqLworICAgIGN3cl9uZXcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9uZXcgKi8KKyAgICBQeU9iamVjdF9HQ19EZWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZnJlZSAqLwogfTsKIAogCkBAIC0yNTM2LDYgKzMxMTAsMTE1IEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitwZXJtdXRhdGlvbnNfcmVkdWNlKHBlcm11dGF0aW9uc29iamVjdCAqcG8pCit7CisgICAgaWYgKHBvLT5yZXN1bHQgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPbikiLCBQeV9UWVBFKHBvKSwgcG8tPnBvb2wsIHBvLT5yKTsKKyAgICB9IGVsc2UgaWYgKHBvLT5zdG9wcGVkKSB7CisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKCgpbikiLCBQeV9UWVBFKHBvKSwgcG8tPnIpOworICAgIH0gZWxzZSB7CisgICAgICAgIFB5T2JqZWN0ICppbmRpY2VzPU5VTEwsICpjeWNsZXM9TlVMTDsKKyAgICAgICAgUHlfc3NpemVfdCBuLCBpOworCisgICAgICAgIC8qIHdlIG11c3QgcGlja2xlIHRoZSBpbmRpY2VzIGFuZCBjeWNsZXMgYW5kIHVzZSB0aGVtIGZvciBzZXRzdGF0ZSAqLworICAgICAgICBuID0gUHlUdXBsZV9HRVRfU0laRShwby0+cG9vbCk7CisgICAgICAgIGluZGljZXMgPSBQeVR1cGxlX05ldyhuKTsKKyAgICAgICAgaWYgKGluZGljZXMgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZXJyOworICAgICAgICBmb3IgKGk9MDsgaTxuOyBpKyspeworICAgICAgICAgICAgUHlPYmplY3QqIGluZGV4ID0gUHlMb25nX0Zyb21Tc2l6ZV90KHBvLT5pbmRpY2VzW2ldKTsKKyAgICAgICAgICAgIGlmICghaW5kZXgpCisgICAgICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGluZGljZXMsIGksIGluZGV4KTsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgIGN5Y2xlcyA9IFB5VHVwbGVfTmV3KHBvLT5yKTsKKyAgICAgICAgaWYgKGN5Y2xlcyA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgIGZvciAoaT0wOyBpPHBvLT5yOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIFB5T2JqZWN0KiBpbmRleCA9IFB5TG9uZ19Gcm9tU3NpemVfdChwby0+Y3ljbGVzW2ldKTsKKyAgICAgICAgICAgIGlmICghaW5kZXgpCisgICAgICAgICAgICAgICAgZ290byBlcnI7CisgICAgICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGN5Y2xlcywgaSwgaW5kZXgpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKE9uKShOTikiLCBQeV9UWVBFKHBvKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG8tPnBvb2wsIHBvLT5yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpY2VzLCBjeWNsZXMpOworICAgIGVycjoKKyAgICAgICAgUHlfWERFQ1JFRihpbmRpY2VzKTsKKyAgICAgICAgUHlfWERFQ1JFRihjeWNsZXMpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitwZXJtdXRhdGlvbnNfc2V0c3RhdGUocGVybXV0YXRpb25zb2JqZWN0ICpwbywgUHlPYmplY3QgKnN0YXRlKQoreworICAgIFB5T2JqZWN0ICppbmRpY2VzLCAqY3ljbGVzLCAqcmVzdWx0OworICAgIFB5X3NzaXplX3QgbiwgaTsKKyAgICAKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoc3RhdGUsICJPIU8hIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJlB5VHVwbGVfVHlwZSwgJmluZGljZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZQeVR1cGxlX1R5cGUsICZjeWNsZXMpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIG4gPSBQeVR1cGxlX0dFVF9TSVpFKHBvLT5wb29sKTsKKyAgICBpZiAoUHlUdXBsZV9HRVRfU0laRShpbmRpY2VzKSAhPSBuIHx8CisgICAgICAgIFB5VHVwbGVfR0VUX1NJWkUoY3ljbGVzKSAhPSBwby0+cikKKyAgICB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiaW52YWxpZCBhcmd1bWVudHMiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZm9yIChpPTA7IGk8bjsgaSsrKQorICAgIHsKKyAgICAgICAgUHlPYmplY3QqIGluZGV4T2JqZWN0ID0gUHlUdXBsZV9HRVRfSVRFTShpbmRpY2VzLCBpKTsKKyAgICAgICAgUHlfc3NpemVfdCBpbmRleCA9IFB5TG9uZ19Bc1NzaXplX3QoaW5kZXhPYmplY3QpOworICAgICAgICBpZiAoaW5kZXggPCAwICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogbm90IGFuIGludGVnZXIgKi8KKyAgICAgICAgLyogY2xhbXAgdGhlIGluZGV4ICovCisgICAgICAgIGlmIChpbmRleCA8IDApCisgICAgICAgICAgICBpbmRleCA9IDA7CisgICAgICAgIGVsc2UgaWYgKGluZGV4ID4gbi0xKQorICAgICAgICAgICAgaW5kZXggPSBuLTE7CisgICAgICAgIHBvLT5pbmRpY2VzW2ldID0gaW5kZXg7CisgICAgfQorCisgICAgZm9yIChpPTA7IGk8cG8tPnI7IGkrKykKKyAgICB7CisgICAgICAgIFB5T2JqZWN0KiBpbmRleE9iamVjdCA9IFB5VHVwbGVfR0VUX0lURU0oY3ljbGVzLCBpKTsKKyAgICAgICAgUHlfc3NpemVfdCBpbmRleCA9IFB5TG9uZ19Bc1NzaXplX3QoaW5kZXhPYmplY3QpOworICAgICAgICBpZiAoaW5kZXggPCAwICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsgLyogbm90IGFuIGludGVnZXIgKi8KKyAgICAgICAgaWYgKGluZGV4IDwgMSkKKyAgICAgICAgICAgIGluZGV4ID0gMTsKKyAgICAgICAgZWxzZSBpZiAoaW5kZXggPiBuLWkpCisgICAgICAgICAgICBpbmRleCA9IG4taTsKKyAgICAgICAgcG8tPmN5Y2xlc1tpXSA9IGluZGV4OworICAgIH0KKyAgICByZXN1bHQgPSBQeVR1cGxlX05ldyhwby0+cik7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBmb3IgKGk9MDsgaTxwby0+cjsgaSsrKSB7CisgICAgICAgIFB5T2JqZWN0ICplbGVtZW50ID0gUHlUdXBsZV9HRVRfSVRFTShwby0+cG9vbCwgcG8tPmluZGljZXNbaV0pOworICAgICAgICBQeV9JTkNSRUYoZWxlbWVudCk7CisgICAgICAgIFB5VHVwbGVfU0VUX0lURU0ocmVzdWx0LCBpLCBlbGVtZW50KTsKKyAgICB9CisgICAgUHlfQ0xFQVIocG8tPnJlc3VsdCk7CisgICAgcG8tPnJlc3VsdCA9IHJlc3VsdDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIHBlcm11YXRpb25zX21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbilwZXJtdXRhdGlvbnNfcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKKyAgICB7Il9fc2V0c3RhdGVfXyIsICAgIChQeUNGdW5jdGlvbilwZXJtdXRhdGlvbnNfc2V0c3RhdGUsICAgIE1FVEhfTywKKyAgICAgc2V0c3RhdGVfZG9jfSwKKyAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgLyogc2VudGluZWwgKi8KK307CisKIFB5RG9jX1NUUlZBUihwZXJtdXRhdGlvbnNfZG9jLAogInBlcm11dGF0aW9ucyhpdGVyYWJsZVssIHJdKSAtLT4gcGVybXV0YXRpb25zIG9iamVjdFxuXAogXG5cCkBAIC0yNTcyLDcgKzMyNTUsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgIChpdGVybmV4dGZ1bmMpcGVybXV0YXRpb25zX25leHQsICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgcGVybXVhdGlvbnNfbWV0aG9kcywgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCkBAIC0yNTkyLDYgKzMyNzUsNyBAQAogICAgIFB5T2JqZWN0X0hFQUQKICAgICBQeU9iamVjdCAqdG90YWw7CiAgICAgUHlPYmplY3QgKml0OworICAgIFB5T2JqZWN0ICpiaW5vcDsKIH0gYWNjdW11bGF0ZW9iamVjdDsKIAogc3RhdGljIFB5VHlwZU9iamVjdCBhY2N1bXVsYXRlX3R5cGU7CkBAIC0yNTk5LDEyICszMjgzLDE0IEBACiBzdGF0aWMgUHlPYmplY3QgKgogYWNjdW11bGF0ZV9uZXcoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7Ci0gICAgc3RhdGljIGNoYXIgKmt3YXJnc1tdID0geyJpdGVyYWJsZSIsIE5VTEx9OworICAgIHN0YXRpYyBjaGFyICprd2FyZ3NbXSA9IHsiaXRlcmFibGUiLCAiZnVuYyIsIE5VTEx9OwogICAgIFB5T2JqZWN0ICppdGVyYWJsZTsKICAgICBQeU9iamVjdCAqaXQ7CisgICAgUHlPYmplY3QgKmJpbm9wID0gUHlfTm9uZTsKICAgICBhY2N1bXVsYXRlb2JqZWN0ICpsejsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJPOmFjY3VtdWxhdGUiLCBrd2FyZ3MsICZpdGVyYWJsZSkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98TzphY2N1bXVsYXRlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3MsICZpdGVyYWJsZSwgJmJpbm9wKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBHZXQgaXRlcmF0b3IuICovCkBAIC0yNjE5LDYgKzMzMDUsMTAgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCisgICAgaWYgKGJpbm9wICE9IFB5X05vbmUpIHsKKyAgICAgICAgUHlfWElOQ1JFRihiaW5vcCk7CisgICAgICAgIGx6LT5iaW5vcCA9IGJpbm9wOworICAgIH0KICAgICBsei0+dG90YWwgPSBOVUxMOwogICAgIGx6LT5pdCA9IGl0OwogICAgIHJldHVybiAoUHlPYmplY3QgKilsejsKQEAgLTI2MjgsNiArMzMxOCw3IEBACiBhY2N1bXVsYXRlX2RlYWxsb2MoYWNjdW11bGF0ZW9iamVjdCAqbHopCiB7CiAgICAgUHlPYmplY3RfR0NfVW5UcmFjayhseik7CisgICAgUHlfWERFQ1JFRihsei0+Ymlub3ApOwogICAgIFB5X1hERUNSRUYobHotPnRvdGFsKTsKICAgICBQeV9YREVDUkVGKGx6LT5pdCk7CiAgICAgUHlfVFlQRShseiktPnRwX2ZyZWUobHopOwpAQCAtMjYzNiw2ICszMzI3LDcgQEAKIHN0YXRpYyBpbnQKIGFjY3VtdWxhdGVfdHJhdmVyc2UoYWNjdW11bGF0ZW9iamVjdCAqbHosIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQogeworICAgIFB5X1ZJU0lUKGx6LT5iaW5vcCk7CiAgICAgUHlfVklTSVQobHotPml0KTsKICAgICBQeV9WSVNJVChsei0+dG90YWwpOwogICAgIHJldHVybiAwOwpAQCAtMjY1NSw4ICszMzQ3LDExIEBACiAgICAgICAgIGx6LT50b3RhbCA9IHZhbDsKICAgICAgICAgcmV0dXJuIGx6LT50b3RhbDsKICAgICB9Ci0gICAKLSAgICBuZXd0b3RhbCA9IFB5TnVtYmVyX0FkZChsei0+dG90YWwsIHZhbCk7CisKKyAgICBpZiAobHotPmJpbm9wID09IE5VTEwpIAorICAgICAgICBuZXd0b3RhbCA9IFB5TnVtYmVyX0FkZChsei0+dG90YWwsIHZhbCk7CisgICAgZWxzZQorICAgICAgICBuZXd0b3RhbCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MobHotPmJpbm9wLCBsei0+dG90YWwsIHZhbCwgTlVMTCk7CiAgICAgUHlfREVDUkVGKHZhbCk7CiAgICAgaWYgKG5ld3RvdGFsID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMjY2OSwxMCArMzM2NCwzNSBAQAogICAgIHJldHVybiBuZXd0b3RhbDsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK2FjY3VtdWxhdGVfcmVkdWNlKGFjY3VtdWxhdGVvYmplY3QgKmx6KQoreworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKE9PKU8iLCBQeV9UWVBFKGx6KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsei0+aXQsIGx6LT5iaW5vcD9sei0+Ymlub3A6UHlfTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsei0+dG90YWw/bHotPnRvdGFsOlB5X05vbmUpOworIH0KKworc3RhdGljIFB5T2JqZWN0ICoKK2FjY3VtdWxhdGVfc2V0c3RhdGUoYWNjdW11bGF0ZW9iamVjdCAqbHosIFB5T2JqZWN0ICpzdGF0ZSkKK3sKKyAgICBQeV9DTEVBUihsei0+dG90YWwpOworICAgIGx6LT50b3RhbCA9IHN0YXRlOworICAgIFB5X0lOQ1JFRihsei0+dG90YWwpOworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgUHlNZXRob2REZWYgYWNjdW11bGF0ZV9tZXRob2RzW10gPSB7CisgICAgeyJfX3JlZHVjZV9fIiwgICAgICAoUHlDRnVuY3Rpb24pYWNjdW11bGF0ZV9yZWR1Y2UsICAgICAgTUVUSF9OT0FSR1MsCisgICAgIHJlZHVjZV9kb2N9LAorICAgIHsiX19zZXRzdGF0ZV9fIiwgICAgKFB5Q0Z1bmN0aW9uKWFjY3VtdWxhdGVfc2V0c3RhdGUsICAgIE1FVEhfTywKKyAgICAgc2V0c3RhdGVfZG9jfSwKKyAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgLyogc2VudGluZWwgKi8KK307CisKIFB5RG9jX1NUUlZBUihhY2N1bXVsYXRlX2RvYywKLSJhY2N1bXVsYXRlKGl0ZXJhYmxlKSAtLT4gYWNjdW11bGF0ZSBvYmplY3RcblwKKyJhY2N1bXVsYXRlKGl0ZXJhYmxlWywgZnVuY10pIC0tPiBhY2N1bXVsYXRlIG9iamVjdFxuXAogXG5cCi1SZXR1cm4gc2VyaWVzIG9mIGFjY3VtdWxhdGVkIHN1bXMuIik7CitSZXR1cm4gc2VyaWVzIG9mIGFjY3VtdWxhdGVkIHN1bXMgKG9yIG90aGVyIGJpbmFyeSBmdW5jdGlvbiByZXN1bHRzKS4iKTsKIAogc3RhdGljIFB5VHlwZU9iamVjdCBhY2N1bXVsYXRlX3R5cGUgPSB7CiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCkBAIC0yNzA0LDcgKzM0MjQsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgIChpdGVybmV4dGZ1bmMpYWNjdW11bGF0ZV9uZXh0LCAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIGFjY3VtdWxhdGVfbWV0aG9kcywgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwpAQCAtMjgyMSw2ICszNTQxLDE5IEBACiAgICAgfQogfQogCitzdGF0aWMgUHlPYmplY3QgKgorY29tcHJlc3NfcmVkdWNlKGNvbXByZXNzb2JqZWN0ICpseikKK3sKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPTykiLCBQeV9UWVBFKGx6KSwKKyAgICAgICAgbHotPmRhdGEsIGx6LT5zZWxlY3RvcnMpOworICAgIH0KKworc3RhdGljIFB5TWV0aG9kRGVmIGNvbXByZXNzX21ldGhvZHNbXSA9IHsKKyAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbiljb21wcmVzc19yZWR1Y2UsICAgICAgTUVUSF9OT0FSR1MsCisgICAgIHJlZHVjZV9kb2N9LAorICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAvKiBzZW50aW5lbCAqLworfTsKKwogUHlEb2NfU1RSVkFSKGNvbXByZXNzX2RvYywKICJjb21wcmVzcyhkYXRhLCBzZWxlY3RvcnMpIC0tPiBpdGVyYXRvciBvdmVyIHNlbGVjdGVkIGRhdGFcblwKIFxuXApAQCAtMjg1OCw3ICszNTkxLDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAoaXRlcm5leHRmdW5jKWNvbXByZXNzX25leHQsICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIGNvbXByZXNzX21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCkBAIC0yOTY1LDYgKzM2OTgsMTkgQEAKICAgICB9CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitmaWx0ZXJmYWxzZV9yZWR1Y2UoZmlsdGVyZmFsc2VvYmplY3QgKmx6KQoreworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKE9PKSIsIFB5X1RZUEUobHopLAorICAgICAgICBsei0+ZnVuYywgbHotPml0KTsKKyAgICB9CisKK3N0YXRpYyBQeU1ldGhvZERlZiBmaWx0ZXJmYWxzZV9tZXRob2RzW10gPSB7CisgICAgeyJfX3JlZHVjZV9fIiwgICAgICAoUHlDRnVuY3Rpb24pZmlsdGVyZmFsc2VfcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKKyAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgLyogc2VudGluZWwgKi8KK307CisKIFB5RG9jX1NUUlZBUihmaWx0ZXJmYWxzZV9kb2MsCiAiZmlsdGVyZmFsc2UoZnVuY3Rpb24gb3IgTm9uZSwgc2VxdWVuY2UpIC0tPiBmaWx0ZXJmYWxzZSBvYmplY3RcblwKIFxuXApAQCAtMzAwMSw3ICszNzQ3LDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwogICAgIFB5T2JqZWN0X1NlbGZJdGVyLCAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAoaXRlcm5leHRmdW5jKWZpbHRlcmZhbHNlX25leHQsICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBmaWx0ZXJmYWxzZV9tZXRob2RzLCAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KQEAgLTMxOTUsMTEgKzM5NDEsOSBAQAogICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKG4pIiwgUHlfVFlQRShseiksIGx6LT5jbnQpOwogfQogCi1QeURvY19TVFJWQVIoY291bnRfcmVkdWNlX2RvYywgIlJldHVybiBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgcGlja2xpbmcuIik7Ci0KIHN0YXRpYyBQeU1ldGhvZERlZiBjb3VudF9tZXRob2RzW10gPSB7CiAgICAgeyJfX3JlZHVjZV9fIiwgICAgICAoUHlDRnVuY3Rpb24pY291bnRfcmVkdWNlLCAgICAgIE1FVEhfTk9BUkdTLAotICAgICBjb3VudF9yZWR1Y2VfZG9jfSwKKyAgICAgcmVkdWNlX2RvY30sCiAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgIC8qIHNlbnRpbmVsICovCiB9OwogCkBAIC0zMzQwLDggKzQwODQsMjEgQEAKIAogUHlEb2NfU1RSVkFSKGxlbmd0aF9oaW50X2RvYywgIlByaXZhdGUgbWV0aG9kIHJldHVybmluZyBhbiBlc3RpbWF0ZSBvZiBsZW4obGlzdChpdCkpLiIpOwogCitzdGF0aWMgUHlPYmplY3QgKgorcmVwZWF0X3JlZHVjZShyZXBlYXRvYmplY3QgKnJvKQoreworICAgIC8qIHVucGlja2xlIHRoaXMgc28gdGhhdCBhIG5ldyByZXBlYXQgaXRlcmF0b3IgaXMgY29uc3RydWN0ZWQgd2l0aCBhbgorICAgICAqIG9iamVjdCwgdGhlbiBjYWxsIF9fc2V0c3RhdGVfXyBvbiBpdCB0byBzZXQgY250CisgICAgICovCisgICAgaWYgKHJvLT5jbnQgPj0gMCkKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8oT24pIiwgUHlfVFlQRShybyksIHJvLT5lbGVtZW50LCByby0+Y250KTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKE8pIiwgUHlfVFlQRShybyksIHJvLT5lbGVtZW50KTsKK30KKwogc3RhdGljIFB5TWV0aG9kRGVmIHJlcGVhdF9tZXRob2RzW10gPSB7CiAgICAgeyJfX2xlbmd0aF9oaW50X18iLCAoUHlDRnVuY3Rpb24pcmVwZWF0X2xlbiwgTUVUSF9OT0FSR1MsIGxlbmd0aF9oaW50X2RvY30sCisgICAgeyJfX3JlZHVjZV9fIiwgICAgICAoUHlDRnVuY3Rpb24pcmVwZWF0X3JlZHVjZSwgTUVUSF9OT0FSR1MsIHJlZHVjZV9kb2N9LAogICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCiB9OwogCkBAIC0zNTY3LDYgKzQzMjQsNDkgQEAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgUHlPYmplY3QgKgoremlwX2xvbmdlc3RfcmVkdWNlKHppcGxvbmdlc3RvYmplY3QgKmx6KQoreworICAgIAorICAgIC8qIENyZWF0ZSBhIG5ldyB0dXBsZSB3aXRoIGVtcHR5IHNlcXVlbmNlcyB3aGVyZSBhcHByb3ByaWF0ZSB0byBwaWNrbGUuCisgICAgICogVGhlbiB1c2Ugc2V0c3RhdGUgdG8gc2V0IHRoZSBmaWxsdmFsdWUKKyAgICAgKi8KKyAgICBpbnQgaTsKKyAgICBQeU9iamVjdCAqYXJncyA9IFB5VHVwbGVfTmV3KFB5VHVwbGVfR0VUX1NJWkUobHotPml0dHVwbGUpKTsKKyAgICBpZiAoYXJncyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBmb3IgKGk9MDsgaTxQeVR1cGxlX0dFVF9TSVpFKGx6LT5pdHR1cGxlKTsgaSsrKSB7CisgICAgICAgIFB5T2JqZWN0ICplbGVtID0gUHlUdXBsZV9HRVRfSVRFTShsei0+aXR0dXBsZSwgaSk7CisgICAgICAgIGlmIChlbGVtID09IE5VTEwpIHsKKyAgICAgICAgICAgIGVsZW0gPSBQeVR1cGxlX05ldygwKTsKKyAgICAgICAgICAgIGlmIChlbGVtID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYXJncyk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgUHlfSU5DUkVGKGVsZW0pOworICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGFyZ3MsIGksIGVsZW0pOworICAgIH0KKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiT05PIiwgUHlfVFlQRShseiksIGFyZ3MsIGx6LT5maWxsdmFsdWUpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgoremlwX2xvbmdlc3Rfc2V0c3RhdGUoemlwbG9uZ2VzdG9iamVjdCAqbHosIFB5T2JqZWN0ICpzdGF0ZSkKK3sKKyAgICBQeV9DTEVBUihsei0+ZmlsbHZhbHVlKTsKKyAgICBsei0+ZmlsbHZhbHVlID0gc3RhdGU7CisgICAgUHlfSU5DUkVGKGx6LT5maWxsdmFsdWUpOworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgUHlNZXRob2REZWYgemlwX2xvbmdlc3RfbWV0aG9kc1tdID0geworICAgIHsiX19yZWR1Y2VfXyIsICAgICAgKFB5Q0Z1bmN0aW9uKXppcF9sb25nZXN0X3JlZHVjZSwgICAgICBNRVRIX05PQVJHUywKKyAgICAgcmVkdWNlX2RvY30sCisgICAgeyJfX3NldHN0YXRlX18iLCAgICAoUHlDRnVuY3Rpb24pemlwX2xvbmdlc3Rfc2V0c3RhdGUsICAgIE1FVEhfTywKKyAgICAgc2V0c3RhdGVfZG9jfSwKKyAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgLyogc2VudGluZWwgKi8KK307CisKIFB5RG9jX1NUUlZBUih6aXBfbG9uZ2VzdF9kb2MsCiAiemlwX2xvbmdlc3QoaXRlcjEgWyxpdGVyMiBbLi4uXV0sIFtmaWxsdmFsdWU9Tm9uZV0pIC0tPiB6aXBfbG9uZ2VzdCBvYmplY3RcblwKIFxuXApAQCAtMzYwOCw3ICs0NDA4LDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLwogICAgIFB5T2JqZWN0X1NlbGZJdGVyLCAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAoaXRlcm5leHRmdW5jKXppcF9sb25nZXN0X25leHQsICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICB6aXBfbG9uZ2VzdF9tZXRob2RzLCAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KQEAgLTM2MzMsNyArNDQzMyw3IEBACiByZXBlYXQoZWxlbSBbLG5dKSAtLT4gZWxlbSwgZWxlbSwgZWxlbSwgLi4uIGVuZGxlc3NseSBvciB1cCB0byBuIHRpbWVzXG5cCiBcblwKIEl0ZXJhdG9ycyB0ZXJtaW5hdGluZyBvbiB0aGUgc2hvcnRlc3QgaW5wdXQgc2VxdWVuY2U6XG5cCi1hY2N1bXVsYXRlKHAsIHN0YXJ0PTApIC0tPiBwMCwgcDArcDEsIHAwK3AxK3AyXG5cCithY2N1bXVsYXRlKHBbLCBmdW5jXSkgLS0+IHAwLCBwMCtwMSwgcDArcDErcDJcblwKIGNoYWluKHAsIHEsIC4uLikgLS0+IHAwLCBwMSwgLi4uIHBsYXN0LCBxMCwgcTEsIC4uLiBcblwKIGNvbXByZXNzKGRhdGEsIHNlbGVjdG9ycykgLS0+IChkWzBdIGlmIHNbMF0pLCAoZFsxXSBpZiBzWzFdKSwgLi4uXG5cCiBkcm9wd2hpbGUocHJlZCwgc2VxKSAtLT4gc2VxW25dLCBzZXFbbisxXSwgc3RhcnRpbmcgd2hlbiBwcmVkIGZhaWxzXG5cCkBAIC0zNjk2LDYgKzQ0OTYsOSBAQAogICAgICAgICAmcHJvZHVjdF90eXBlLAogICAgICAgICAmcmVwZWF0X3R5cGUsCiAgICAgICAgICZncm91cGJ5X3R5cGUsCisgICAgICAgICZfZ3JvdXBlcl90eXBlLAorICAgICAgICAmdGVlX3R5cGUsCisgICAgICAgICZ0ZWVkYXRhb2JqZWN0X3R5cGUsCiAgICAgICAgIE5VTEwKICAgICB9OwogCkBAIC0zNzEzLDExICs0NTE2LDUgQEAKICAgICAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sIG5hbWUrMSwgKFB5T2JqZWN0ICopdHlwZWxpc3RbaV0pOwogICAgIH0KIAotICAgIGlmIChQeVR5cGVfUmVhZHkoJnRlZWRhdGFvYmplY3RfdHlwZSkgPCAwKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZ0ZWVfdHlwZSkgPCAwKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZfZ3JvdXBlcl90eXBlKSA8IDApCi0gICAgICAgIHJldHVybiBOVUxMOwogICAgIHJldHVybiBtOwogfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9tYWluLmMgYi9Nb2R1bGVzL21haW4uYwppbmRleCA1YjRhN2UyLi42NGJhYzZlIDEwMDY0NAotLS0gYS9Nb2R1bGVzL21haW4uYworKysgYi9Nb2R1bGVzL21haW4uYwpAQCAtNiw2ICs2LDcgQEAKICNpbmNsdWRlIDxsb2NhbGUuaD4KIAogI2lmZGVmIF9fVk1TCisjZXJyb3IgIlBFUCAxMTogVk1TIGlzIG5vdyB1bnN1cHBvcnRlZCwgY29kZSB3aWxsIGJlIHJlbW92ZWQgaW4gUHl0aG9uIDMuNCIKICNpbmNsdWRlIDx1bml4bGliLmg+CiAjZW5kaWYKIApAQCAtNzIsOSArNzMsNiBAQAogLU8gICAgIDogb3B0aW1pemUgZ2VuZXJhdGVkIGJ5dGVjb2RlIHNsaWdodGx5OyBhbHNvIFBZVEhPTk9QVElNSVpFPXhcblwKIC1PTyAgICA6IHJlbW92ZSBkb2Mtc3RyaW5ncyBpbiBhZGRpdGlvbiB0byB0aGUgLU8gb3B0aW1pemF0aW9uc1xuXAogLXEgICAgIDogZG9uJ3QgcHJpbnQgdmVyc2lvbiBhbmQgY29weXJpZ2h0IG1lc3NhZ2VzIG9uIGludGVyYWN0aXZlIHN0YXJ0dXBcblwKLS1SICAgICA6IHVzZSBhIHBzZXVkby1yYW5kb20gc2FsdCB0byBtYWtlIGhhc2goKSB2YWx1ZXMgb2YgdmFyaW91cyB0eXBlcyBiZVxuXAotICAgICAgICAgdW5wcmVkaWN0YWJsZSBiZXR3ZWVuIHNlcGFyYXRlIGludm9jYXRpb25zIG9mIHRoZSBpbnRlcnByZXRlciwgYXNcblwKLSAgICAgICAgIGEgZGVmZW5jZSBhZ2FpbnN0IGRlbmlhbC1vZi1zZXJ2aWNlIGF0dGFja3NcblwKIC1zICAgICA6IGRvbid0IGFkZCB1c2VyIHNpdGUgZGlyZWN0b3J5IHRvIHN5cy5wYXRoOyBhbHNvIFBZVEhPTk5PVVNFUlNJVEVcblwKIC1TICAgICA6IGRvbid0IGltcGx5ICdpbXBvcnQgc2l0ZScgb24gaW5pdGlhbGl6YXRpb25cblwKICI7CkBAIC0xMDIsMTMgKzEwMCwxNCBAQAogIlBZVEhPTkhPTUUgICA6IGFsdGVybmF0ZSA8cHJlZml4PiBkaXJlY3RvcnkgKG9yIDxwcmVmaXg+JWM8ZXhlY19wcmVmaXg+KS5cbiIKICIgICAgICAgICAgICAgICBUaGUgZGVmYXVsdCBtb2R1bGUgc2VhcmNoIHBhdGggdXNlcyAlcy5cbiIKICJQWVRIT05DQVNFT0sgOiBpZ25vcmUgY2FzZSBpbiAnaW1wb3J0JyBzdGF0ZW1lbnRzIChXaW5kb3dzKS5cbiIKLSJQWVRIT05JT0VOQ09ESU5HOiBFbmNvZGluZ1s6ZXJyb3JzXSB1c2VkIGZvciBzdGRpbi9zdGRvdXQvc3RkZXJyLlxuXAorIlBZVEhPTklPRU5DT0RJTkc6IEVuY29kaW5nWzplcnJvcnNdIHVzZWQgZm9yIHN0ZGluL3N0ZG91dC9zdGRlcnIuXG4iCisiUFlUSE9ORkFVTFRIQU5ETEVSOiBkdW1wIHRoZSBQeXRob24gdHJhY2ViYWNrIG9uIGZhdGFsIGVycm9ycy5cblwKICI7CiBzdGF0aWMgY2hhciAqdXNhZ2VfNiA9ICJcCi1QWVRIT05IQVNIU0VFRDogaWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gJ3JhbmRvbScsIHRoZSBlZmZlY3QgaXMgdGhlIHNhbWVcblwKLSAgIGFzIHNwZWNpZnlpbmcgdGhlIC1SIG9wdGlvbjogYSByYW5kb20gdmFsdWUgaXMgdXNlZCB0byBzZWVkIHRoZSBoYXNoZXMgb2ZcblwKLSAgIHN0ciwgYnl0ZXMgYW5kIGRhdGV0aW1lIG9iamVjdHMuICBJdCBjYW4gYWxzbyBiZSBzZXQgdG8gYW4gaW50ZWdlclxuXAotICAgaW4gdGhlIHJhbmdlIFswLDQyOTQ5NjcyOTVdIHRvIGdldCBoYXNoIHZhbHVlcyB3aXRoIGEgcHJlZGljdGFibGUgc2VlZC5cblwKK1BZVEhPTkhBU0hTRUVEOiBpZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byAncmFuZG9tJywgYSByYW5kb20gdmFsdWUgaXMgdXNlZFxuXAorICAgdG8gc2VlZCB0aGUgaGFzaGVzIG9mIHN0ciwgYnl0ZXMgYW5kIGRhdGV0aW1lIG9iamVjdHMuICBJdCBjYW4gYWxzbyBiZVxuXAorICAgc2V0IHRvIGFuIGludGVnZXIgaW4gdGhlIHJhbmdlIFswLDQyOTQ5NjcyOTVdIHRvIGdldCBoYXNoIHZhbHVlcyB3aXRoIGFcblwKKyAgIHByZWRpY3RhYmxlIHNlZWQuXG5cCiAiOwogCiBzdGF0aWMgaW50CkBAIC0yMjUsNyArMjI0LDcgQEAKICAgICBpZiAoaW1wb3J0ZXIgPT0gTlVMTCkKICAgICAgICAgZ290byBlcnJvcjsKIAotICAgIGlmIChpbXBvcnRlci0+b2JfdHlwZSA9PSAmUHlOdWxsSW1wb3J0ZXJfVHlwZSkgeworICAgIGlmIChpbXBvcnRlciA9PSBQeV9Ob25lKSB7CiAgICAgICAgIFB5X0RFQ1JFRihhcmd2MCk7CiAgICAgICAgIFB5X0RFQ1JFRihpbXBvcnRlcik7CiAgICAgICAgIHJldHVybiAtMTsKQEAgLTM0NSwyMSArMzQ0LDEzIEBACiAgICAgICAgICAgICAgICBub3QgaW50ZXJwcmV0ZXIgb3B0aW9ucy4gKi8KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIHN3aXRjaCAoYykgewotICAgICAgICBjYXNlICdFJzoKKyAgICAgICAgaWYgKGMgPT0gJ0UnKSB7CiAgICAgICAgICAgICBQeV9JZ25vcmVFbnZpcm9ubWVudEZsYWcrKzsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICdSJzoKLSAgICAgICAgICAgIFB5X0hhc2hSYW5kb21pemF0aW9uRmxhZysrOwotICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9Ci0gICAgLyogVGhlIHZhcmlhYmxlIGlzIG9ubHkgdGVzdGVkIGZvciBleGlzdGVuY2UgaGVyZTsgX1B5UmFuZG9tX0luaXQgd2lsbAotICAgICAgIGNoZWNrIGl0cyB2YWx1ZSBmdXJ0aGVyLiAqLwotICAgIGlmICghUHlfSGFzaFJhbmRvbWl6YXRpb25GbGFnICYmCi0gICAgICAgIChwID0gUHlfR0VURU5WKCJQWVRIT05IQVNIU0VFRCIpKSAmJiAqcCAhPSAnXDAnKQotICAgICAgICBQeV9IYXNoUmFuZG9taXphdGlvbkZsYWcgPSAxOwogCisgICAgUHlfSGFzaFJhbmRvbWl6YXRpb25GbGFnID0gMTsKICAgICBfUHlSYW5kb21fSW5pdCgpOwogCiAgICAgUHlTeXNfUmVzZXRXYXJuT3B0aW9ucygpOwpAQCAtNDY2LDcgKzQ1Nyw3IEBACiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlICdSJzoKLSAgICAgICAgICAgIC8qIEFscmVhZHkgaGFuZGxlZCBhYm92ZSAqLworICAgICAgICAgICAgLyogSWdub3JlZCAqLwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgLyogVGhpcyBzcGFjZSByZXNlcnZlZCBmb3Igb3RoZXIgb3B0aW9ucyAqLwpAQCAtNTMzLDE2ICs1MjQsMTMgQEAKICAgICAgICAgICAgIC8qIFVzZSB1dGYtOCBvbiBNYWMgT1MgWCAqLwogICAgICAgICAgICAgdW5pY29kZSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKHApOwogI2Vsc2UKLSAgICAgICAgICAgIHdjaGFyX3QgKndjaGFyOwotICAgICAgICAgICAgc2l6ZV90IGxlbjsKLSAgICAgICAgICAgIHdjaGFyID0gX1B5X2NoYXIyd2NoYXIocCwgJmxlbik7Ci0gICAgICAgICAgICBpZiAod2NoYXIgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIHVuaWNvZGUgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHdjaGFyLCBsZW4pOwotICAgICAgICAgICAgUHlNZW1fRnJlZSh3Y2hhcik7CisgICAgICAgICAgICB1bmljb2RlID0gUHlVbmljb2RlX0RlY29kZUxvY2FsZShwLCAic3Vycm9nYXRlZXNjYXBlIik7CiAjZW5kaWYKLSAgICAgICAgICAgIGlmICh1bmljb2RlID09IE5VTEwpCisgICAgICAgICAgICBpZiAodW5pY29kZSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgLyogaWdub3JlIGVycm9ycyAqLworICAgICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBQeVN5c19BZGRXYXJuT3B0aW9uVW5pY29kZSh1bmljb2RlKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKICAgICAgICAgfQpAQCAtNjE3LDcgKzYwNSw2IEBACiAgICAgaWYgKChwID0gUHlfR0VURU5WKCJQWVRIT05FWEVDVVRBQkxFIikpICYmICpwICE9ICdcMCcpIHsKICAgICAgICAgd2NoYXJfdCogYnVmZmVyOwogICAgICAgICBzaXplX3QgbGVuID0gc3RybGVuKHApOwotICAgICAgICBzaXplX3QgcjsKIAogICAgICAgICBidWZmZXIgPSBtYWxsb2MobGVuICogc2l6ZW9mKHdjaGFyX3QpKTsKICAgICAgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CkBAIC02MjUsNyArNjEyLDcgQEAKICAgICAgICAgICAgICAgICJub3QgZW5vdWdoIG1lbW9yeSB0byBjb3B5IFBZVEhPTkVYRUNVVEFCTEUiKTsKICAgICAgICAgfQogCi0gICAgICAgIHIgPSBtYnN0b3djcyhidWZmZXIsIHAsIGxlbik7CisgICAgICAgIG1ic3Rvd2NzKGJ1ZmZlciwgcCwgbGVuKTsKICAgICAgICAgUHlfU2V0UHJvZ3JhbU5hbWUoYnVmZmVyKTsKICAgICAgICAgLyogYnVmZmVyIGlzIG5vdyBoYW5kZWQgb2ZmIC0gZG8gbm90IGZyZWUgKi8KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9tYXRobW9kdWxlLmMgYi9Nb2R1bGVzL21hdGhtb2R1bGUuYwppbmRleCAyYzRjYzczLi5kNjkzZGExIDEwMDY0NAotLS0gYS9Nb2R1bGVzL21hdGhtb2R1bGUuYworKysgYi9Nb2R1bGVzL21hdGhtb2R1bGUuYwpAQCAtNTUsMTEgKzU1LDYgQEAKICNpbmNsdWRlICJQeXRob24uaCIKICNpbmNsdWRlICJfbWF0aC5oIgogCi0jaWZkZWYgX09TRl9TT1VSQ0UKLS8qIE9TRjEgNS4xIGRvZXNuJ3QgbWFrZSB0aGlzIGF2YWlsYWJsZSB3aXRoIFhPUEVOX1NPVVJDRV9FWFRFTkRFRCBkZWZpbmVkICovCi1leHRlcm4gZG91YmxlIGNvcHlzaWduKGRvdWJsZSwgZG91YmxlKTsKLSNlbmRpZgotCiAvKgogICAgc2luKHBpKngpLCBnaXZpbmcgYWNjdXJhdGUgcmVzdWx0cyBmb3IgYWxsIGZpbml0ZSB4IChlc3BlY2lhbGx5IHgKICAgIGludGVncmFsIG9yIGNsb3NlIHRvIGFuIGludGVnZXIpLiAgVGhpcyBpcyBoZXJlIGZvciB1c2UgaW4gdGhlCkBAIC0yNDQsNyArMjM5LDggQEAKICAgICB9CiAgICAgaWYgKHggPT0gMC4wKSB7CiAgICAgICAgIGVycm5vID0gRURPTTsKLSAgICAgICAgcmV0dXJuIDEuMC94OyAvKiB0Z2FtbWEoKy0wLjApID0gKy1pbmYsIGRpdmlkZS1ieS16ZXJvICovCisgICAgICAgIC8qIHRnYW1tYSgrLTAuMCkgPSArLWluZiwgZGl2aWRlLWJ5LXplcm8gKi8KKyAgICAgICAgcmV0dXJuIGNvcHlzaWduKFB5X0hVR0VfVkFMLCB4KTsKICAgICB9CiAKICAgICAvKiBpbnRlZ2VyIGFyZ3VtZW50cyAqLwpAQCAtNTgyLDYgKzU3OCw2MSBAQAogICAgIH0KIH0KIAorLyoKKyAgIGxvZzI6IGxvZyB0byBiYXNlIDIuCisKKyAgIFVzZXMgYW4gYWxnb3JpdGhtIHRoYXQgc2hvdWxkOgorCisgICAgIChhKSBwcm9kdWNlIGV4YWN0IHJlc3VsdHMgZm9yIHBvd2VycyBvZiAyLCBhbmQKKyAgICAgKGIpIGdpdmUgYSBtb25vdG9uaWMgbG9nMiAoZm9yIHBvc2l0aXZlIGZpbml0ZSBmbG9hdHMpLAorICAgICAgICAgYXNzdW1pbmcgdGhhdCB0aGUgc3lzdGVtIGxvZyBpcyBtb25vdG9uaWMuCisqLworCitzdGF0aWMgZG91YmxlCittX2xvZzIoZG91YmxlIHgpCit7CisgICAgaWYgKCFQeV9JU19GSU5JVEUoeCkpIHsKKyAgICAgICAgaWYgKFB5X0lTX05BTih4KSkKKyAgICAgICAgICAgIHJldHVybiB4OyAvKiBsb2cyKG5hbikgPSBuYW4gKi8KKyAgICAgICAgZWxzZSBpZiAoeCA+IDAuMCkKKyAgICAgICAgICAgIHJldHVybiB4OyAvKiBsb2cyKCtpbmYpID0gK2luZiAqLworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVycm5vID0gRURPTTsKKyAgICAgICAgICAgIHJldHVybiBQeV9OQU47IC8qIGxvZzIoLWluZikgPSBuYW4sIGludmFsaWQtb3BlcmF0aW9uICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoeCA+IDAuMCkgeworI2lmZGVmIEhBVkVfTE9HMgorICAgICAgICByZXR1cm4gbG9nMih4KTsKKyNlbHNlCisgICAgICAgIGRvdWJsZSBtOworICAgICAgICBpbnQgZTsKKyAgICAgICAgbSA9IGZyZXhwKHgsICZlKTsKKyAgICAgICAgLyogV2Ugd2FudCBsb2cyKG0gKiAyKiplKSA9PSBsb2cobSkgLyBsb2coMikgKyBlLiAgQ2FyZSBpcyBuZWVkZWQgd2hlbgorICAgICAgICAgKiB4IGlzIGp1c3QgZ3JlYXRlciB0aGFuIDEuMDogaW4gdGhhdCBjYXNlIGUgaXMgMSwgbG9nKG0pIGlzIG5lZ2F0aXZlLAorICAgICAgICAgKiBhbmQgd2UgZ2V0IHNpZ25pZmljYW50IGNhbmNlbGxhdGlvbiBlcnJvciBmcm9tIHRoZSBhZGRpdGlvbiBvZgorICAgICAgICAgKiBsb2cobSkgLyBsb2coMikgdG8gZS4gIFRoZSBzbGlnaHQgcmV3cml0ZSBvZiB0aGUgZXhwcmVzc2lvbiBiZWxvdworICAgICAgICAgKiBhdm9pZHMgdGhpcyBwcm9ibGVtLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKHggPj0gMS4wKSB7CisgICAgICAgICAgICByZXR1cm4gbG9nKDIuMCAqIG0pIC8gbG9nKDIuMCkgKyAoZSAtIDEpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIGxvZyhtKSAvIGxvZygyLjApICsgZTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgfQorICAgIGVsc2UgaWYgKHggPT0gMC4wKSB7CisgICAgICAgIGVycm5vID0gRURPTTsKKyAgICAgICAgcmV0dXJuIC1QeV9IVUdFX1ZBTDsgLyogbG9nMigwKSA9IC1pbmYsIGRpdmlkZS1ieS16ZXJvICovCisgICAgfQorICAgIGVsc2UgeworICAgICAgICBlcnJubyA9IEVET007CisgICAgICAgIHJldHVybiBQeV9OQU47IC8qIGxvZzIoLWluZikgPSBuYW4sIGludmFsaWQtb3BlcmF0aW9uICovCisgICAgfQorfQorCiBzdGF0aWMgZG91YmxlCiBtX2xvZzEwKGRvdWJsZSB4KQogewpAQCAtODM2LDEwICs4ODcsMTAgQEAKICAgICAgICJhdGFuaCh4KVxuXG5SZXR1cm4gdGhlIGh5cGVyYm9saWMgYXJjIHRhbmdlbnQgKG1lYXN1cmVkIGluIHJhZGlhbnMpIG9mIHguIikKIAogc3RhdGljIFB5T2JqZWN0ICogbWF0aF9jZWlsKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqbnVtYmVyKSB7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpjZWlsX3N0ciA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIoX19jZWlsX18pOwogICAgIFB5T2JqZWN0ICptZXRob2QsICpyZXN1bHQ7CiAKLSAgICBtZXRob2QgPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChudW1iZXIsICJfX2NlaWxfXyIsICZjZWlsX3N0cik7CisgICAgbWV0aG9kID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwobnVtYmVyLCAmUHlJZF9fX2NlaWxfXyk7CiAgICAgaWYgKG1ldGhvZCA9PSBOVUxMKSB7CiAgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC04NzQsMTAgKzkyNSwxMCBAQAogICAgICAgImZhYnMoeClcblxuUmV0dXJuIHRoZSBhYnNvbHV0ZSB2YWx1ZSBvZiB0aGUgZmxvYXQgeC4iKQogCiBzdGF0aWMgUHlPYmplY3QgKiBtYXRoX2Zsb29yKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqbnVtYmVyKSB7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpmbG9vcl9zdHIgPSBOVUxMOworICAgIF9QeV9JREVOVElGSUVSKF9fZmxvb3JfXyk7CiAgICAgUHlPYmplY3QgKm1ldGhvZCwgKnJlc3VsdDsKIAotICAgIG1ldGhvZCA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKG51bWJlciwgIl9fZmxvb3JfXyIsICZmbG9vcl9zdHIpOworICAgIG1ldGhvZCA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKG51bWJlciwgJlB5SWRfX19mbG9vcl9fKTsKICAgICBpZiAobWV0aG9kID09IE5VTEwpIHsKICAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTEzODQsNyArMTQzNSw3IEBACiAgICAgfQogCiAgICAgLyogdXNlIGxvb2t1cCB0YWJsZSBpZiB4IGlzIHNtYWxsICovCi0gICAgaWYgKHggPCAobG9uZykoc2l6ZW9mKFNtYWxsRmFjdG9yaWFscykvc2l6ZW9mKFNtYWxsRmFjdG9yaWFsc1swXSkpKQorICAgIGlmICh4IDwgKGxvbmcpUHlfQVJSQVlfTEVOR1RIKFNtYWxsRmFjdG9yaWFscykpCiAgICAgICAgIHJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZyhTbWFsbEZhY3RvcmlhbHNbeF0pOwogCiAgICAgLyogZWxzZSBleHByZXNzIGluIHRoZSBmb3JtIG9kZF9wYXJ0ICogMioqdHdvX3ZhbHVhdGlvbiwgYW5kIGNvbXB1dGUgYXMKQEAgLTE0MTEsNyArMTQ2Miw3IEBACiBzdGF0aWMgUHlPYmplY3QgKgogbWF0aF90cnVuYyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm51bWJlcikKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKnRydW5jX3N0ciA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIoX190cnVuY19fKTsKICAgICBQeU9iamVjdCAqdHJ1bmMsICpyZXN1bHQ7CiAKICAgICBpZiAoUHlfVFlQRShudW1iZXIpLT50cF9kaWN0ID09IE5VTEwpIHsKQEAgLTE0MTksNyArMTQ3MCw3IEBACiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICB0cnVuYyA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKG51bWJlciwgIl9fdHJ1bmNfXyIsICZ0cnVuY19zdHIpOworICAgIHRydW5jID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwobnVtYmVyLCAmUHlJZF9fX3RydW5jX18pOwogICAgIGlmICh0cnVuYyA9PSBOVUxMKSB7CiAgICAgICAgIGlmICghUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCkBAIC0xNjI4LDYgKzE2NzksMTUgQEAKIElmIHRoZSBiYXNlIG5vdCBzcGVjaWZpZWQsIHJldHVybnMgdGhlIG5hdHVyYWwgbG9nYXJpdGhtIChiYXNlIGUpIG9mIHguIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCittYXRoX2xvZzIoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmcpCit7CisgICAgcmV0dXJuIGxvZ2hlbHBlcihhcmcsIG1fbG9nMiwgImxvZzIiKTsKK30KKworUHlEb2NfU1RSVkFSKG1hdGhfbG9nMl9kb2MsCisibG9nMih4KVxuXG5SZXR1cm4gdGhlIGJhc2UgMiBsb2dhcml0aG0gb2YgeC4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKIG1hdGhfbG9nMTAoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmcpCiB7CiAgICAgcmV0dXJuIGxvZ2hlbHBlcihhcmcsIG1fbG9nMTAsICJsb2cxMCIpOwpAQCAtMTg5OSw2ICsxOTU5LDcgQEAKICAgICB7ImxvZyIsICAgICAgICAgICAgIG1hdGhfbG9nLCAgICAgICBNRVRIX1ZBUkFSR1MsICAgbWF0aF9sb2dfZG9jfSwKICAgICB7ImxvZzFwIiwgICAgICAgICAgIG1hdGhfbG9nMXAsICAgICBNRVRIX08sICAgICAgICAgbWF0aF9sb2cxcF9kb2N9LAogICAgIHsibG9nMTAiLCAgICAgICAgICAgbWF0aF9sb2cxMCwgICAgIE1FVEhfTywgICAgICAgICBtYXRoX2xvZzEwX2RvY30sCisgICAgeyJsb2cyIiwgICAgICAgICAgICBtYXRoX2xvZzIsICAgICAgTUVUSF9PLCAgICAgICAgIG1hdGhfbG9nMl9kb2N9LAogICAgIHsibW9kZiIsICAgICAgICAgICAgbWF0aF9tb2RmLCAgICAgIE1FVEhfTywgICAgICAgICBtYXRoX21vZGZfZG9jfSwKICAgICB7InBvdyIsICAgICAgICAgICAgIG1hdGhfcG93LCAgICAgICBNRVRIX1ZBUkFSR1MsICAgbWF0aF9wb3dfZG9jfSwKICAgICB7InJhZGlhbnMiLCAgICAgICAgIG1hdGhfcmFkaWFucywgICBNRVRIX08sICAgICAgICAgbWF0aF9yYWRpYW5zX2RvY30sCmRpZmYgLS1naXQgYS9Nb2R1bGVzL21kNW1vZHVsZS5jIGIvTW9kdWxlcy9tZDVtb2R1bGUuYwppbmRleCAyMDg5MzBkLi5lMjY4MWE4IDEwMDY0NAotLS0gYS9Nb2R1bGVzL21kNW1vZHVsZS5jCisrKyBiL01vZHVsZXMvbWQ1bW9kdWxlLmMKQEAgLTIxMCw3ICsyMTAsOCBAQAogICAgSW5pdGlhbGl6ZSB0aGUgaGFzaCBzdGF0ZQogICAgQHBhcmFtIHNoYTEgICBUaGUgaGFzaCBzdGF0ZSB5b3Ugd2lzaCB0byBpbml0aWFsaXplCiAqLwotdm9pZCBtZDVfaW5pdChzdHJ1Y3QgbWQ1X3N0YXRlICptZDUpCitzdGF0aWMgdm9pZAorbWQ1X2luaXQoc3RydWN0IG1kNV9zdGF0ZSAqbWQ1KQogewogICAgIGFzc2VydChtZDUgIT0gTlVMTCk7CiAgICAgbWQ1LT5zdGF0ZVswXSA9IDB4Njc0NTIzMDFVTDsKQEAgLTIyNyw4ICsyMjgsOCBAQAogICAgQHBhcmFtIGluICAgICBUaGUgZGF0YSB0byBoYXNoCiAgICBAcGFyYW0gaW5sZW4gIFRoZSBsZW5ndGggb2YgdGhlIGRhdGEgKG9jdGV0cykKICovCi12b2lkIG1kNV9wcm9jZXNzKHN0cnVjdCBtZDVfc3RhdGUgKm1kNSwKLSAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbiwgUHlfc3NpemVfdCBpbmxlbikKK3N0YXRpYyB2b2lkCittZDVfcHJvY2VzcyhzdHJ1Y3QgbWQ1X3N0YXRlICptZDUsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluLCBQeV9zc2l6ZV90IGlubGVuKQogewogICAgIFB5X3NzaXplX3QgbjsKIApAQCAtMjQzLDcgKzI0NCw3IEBACiAgICAgICAgICAgIGluICAgICAgICAgICAgICs9IE1ENV9CTE9DS1NJWkU7CiAgICAgICAgICAgIGlubGVuICAgICAgICAgIC09IE1ENV9CTE9DS1NJWkU7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgIG4gPSBNSU4oaW5sZW4sIChNRDVfQkxPQ0tTSVpFIC0gbWQ1LT5jdXJsZW4pKTsKKyAgICAgICAgICAgbiA9IE1JTihpbmxlbiwgKFB5X3NzaXplX3QpKE1ENV9CTE9DS1NJWkUgLSBtZDUtPmN1cmxlbikpOwogICAgICAgICAgICBtZW1jcHkobWQ1LT5idWYgKyBtZDUtPmN1cmxlbiwgaW4sIChzaXplX3Qpbik7CiAgICAgICAgICAgIG1kNS0+Y3VybGVuICAgICs9IG47CiAgICAgICAgICAgIGluICAgICAgICAgICAgICs9IG47CkBAIC0yNjIsNyArMjYzLDggQEAKICAgIEBwYXJhbSBzaGExICBUaGUgaGFzaCBzdGF0ZQogICAgQHBhcmFtIG91dCBbb3V0XSBUaGUgZGVzdGluYXRpb24gb2YgdGhlIGhhc2ggKDE2IGJ5dGVzKQogKi8KLXZvaWQgbWQ1X2RvbmUoc3RydWN0IG1kNV9zdGF0ZSAqbWQ1LCB1bnNpZ25lZCBjaGFyICpvdXQpCitzdGF0aWMgdm9pZAorbWQ1X2RvbmUoc3RydWN0IG1kNV9zdGF0ZSAqbWQ1LCB1bnNpZ25lZCBjaGFyICpvdXQpCiB7CiAgICAgaW50IGk7CiAKQEAgLTM3Niw3ICszNzgsNyBAQAogICAgIHVuc2lnbmVkIGNoYXIgZGlnZXN0W01ENV9ESUdFU1RTSVpFXTsKICAgICBzdHJ1Y3QgbWQ1X3N0YXRlIHRlbXA7CiAgICAgUHlPYmplY3QgKnJldHZhbDsKLSAgICBQeV9VTklDT0RFICpoZXhfZGlnZXN0OworICAgIFB5X1VDUzEgKmhleF9kaWdlc3Q7CiAgICAgaW50IGksIGo7CiAKICAgICAvKiBHZXQgdGhlIHJhdyAoYmluYXJ5KSBkaWdlc3QgdmFsdWUgKi8KQEAgLTM4NCwyNSArMzg2LDIwIEBACiAgICAgbWQ1X2RvbmUoJnRlbXAsIGRpZ2VzdCk7CiAKICAgICAvKiBDcmVhdGUgYSBuZXcgc3RyaW5nICovCi0gICAgcmV0dmFsID0gUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIE1ENV9ESUdFU1RTSVpFICogMik7CisgICAgcmV0dmFsID0gUHlVbmljb2RlX05ldyhNRDVfRElHRVNUU0laRSAqIDIsIDEyNyk7CiAgICAgaWYgKCFyZXR2YWwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBoZXhfZGlnZXN0ID0gUHlVbmljb2RlX0FTX1VOSUNPREUocmV0dmFsKTsKLSAgICBpZiAoIWhleF9kaWdlc3QpIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihyZXR2YWwpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQorICAgIGhleF9kaWdlc3QgPSBQeVVuaWNvZGVfMUJZVEVfREFUQShyZXR2YWwpOwogCiAgICAgLyogTWFrZSBoZXggdmVyc2lvbiBvZiB0aGUgZGlnZXN0ICovCiAgICAgZm9yKGk9aj0wOyBpPE1ENV9ESUdFU1RTSVpFOyBpKyspIHsKLSAgICAgICAgY2hhciBjOworICAgICAgICB1bnNpZ25lZCBjaGFyIGM7CiAgICAgICAgIGMgPSAoZGlnZXN0W2ldID4+IDQpICYgMHhmOwotICAgICAgICBjID0gKGM+OSkgPyBjKydhJy0xMCA6IGMgKyAnMCc7Ci0gICAgICAgIGhleF9kaWdlc3RbaisrXSA9IGM7CisgICAgICAgIGhleF9kaWdlc3RbaisrXSA9IFB5X2hleGRpZ2l0c1tjXTsKICAgICAgICAgYyA9IChkaWdlc3RbaV0gJiAweGYpOwotICAgICAgICBjID0gKGM+OSkgPyBjKydhJy0xMCA6IGMgKyAnMCc7Ci0gICAgICAgIGhleF9kaWdlc3RbaisrXSA9IGM7CisgICAgICAgIGhleF9kaWdlc3RbaisrXSA9IFB5X2hleGRpZ2l0c1tjXTsKICAgICB9CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeShyZXR2YWwsIDEpKTsKICAgICByZXR1cm4gcmV0dmFsOwogfQogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL21tYXBtb2R1bGUuYyBiL01vZHVsZXMvbW1hcG1vZHVsZS5jCmluZGV4IGRhOTI4M2IuLmY1MmRjZTUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvbW1hcG1vZHVsZS5jCisrKyBiL01vZHVsZXMvbW1hcG1vZHVsZS5jCkBAIC03OCw4ICs3OCw2IEBACiAjICBkZWZpbmUgTUFQX0FOT05ZTU9VUyBNQVBfQU5PTgogI2VuZGlmCiAKLXN0YXRpYyBQeU9iamVjdCAqbW1hcF9tb2R1bGVfZXJyb3I7Ci0KIHR5cGVkZWYgZW51bQogewogICAgIEFDQ0VTU19ERUZBVUxULApAQCAtMjQwLDE1ICsyMzgsMzcgQEAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCisvKiBCYXNpY2FsbHkgdGhlICJuIiBmb3JtYXQgY29kZSB3aXRoIHRoZSBhYmlsaXR5IHRvIHR1cm4gTm9uZSBpbnRvIC0xLiAqLworc3RhdGljIGludAorbW1hcF9jb252ZXJ0X3NzaXplX3QoUHlPYmplY3QgKm9iaiwgdm9pZCAqcmVzdWx0KSB7CisgICAgUHlfc3NpemVfdCBsaW1pdDsKKyAgICBpZiAob2JqID09IFB5X05vbmUpIHsKKyAgICAgICAgbGltaXQgPSAtMTsKKyAgICB9CisgICAgZWxzZSBpZiAoUHlOdW1iZXJfQ2hlY2sob2JqKSkgeworICAgICAgICBsaW1pdCA9IFB5TnVtYmVyX0FzU3NpemVfdChvYmosIFB5RXhjX092ZXJmbG93RXJyb3IpOworICAgICAgICBpZiAobGltaXQgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJpbnRlZ2VyIGFyZ3VtZW50IGV4cGVjdGVkLCBnb3QgJyUuMjAwcyciLAorICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShvYmopLT50cF9uYW1lKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgICooKFB5X3NzaXplX3QgKilyZXN1bHQpID0gbGltaXQ7CisgICAgcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBQeU9iamVjdCAqCiBtbWFwX3JlYWRfbWV0aG9kKG1tYXBfb2JqZWN0ICpzZWxmLAogICAgICAgICAgICAgICAgICBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeV9zc2l6ZV90IG51bV9ieXRlcywgbjsKKyAgICBQeV9zc2l6ZV90IG51bV9ieXRlcyA9IC0xLCBuOwogICAgIFB5T2JqZWN0ICpyZXN1bHQ7CiAKICAgICBDSEVDS19WQUxJRChOVUxMKTsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIm46cmVhZCIsICZudW1fYnl0ZXMpKQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifE8mOnJlYWQiLCBtbWFwX2NvbnZlcnRfc3NpemVfdCwgJm51bV9ieXRlcykpCiAgICAgICAgIHJldHVybihOVUxMKTsKIAogICAgIC8qIHNpbGVudGx5ICdhZGp1c3QnIG91dC1vZi1yYW5nZSByZXF1ZXN0cyAqLwpAQCAtNDM3LDcgKzQ1Nyw3IEBACiAgICAgewogICAgICAgICBzdHJ1Y3Qgc3RhdCBidWY7CiAgICAgICAgIGlmICgtMSA9PSBmc3RhdChzZWxmLT5mZCwgJmJ1ZikpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhtbWFwX21vZHVsZV9lcnJvcik7CisgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogI2lmZGVmIEhBVkVfTEFSR0VGSUxFX1NVUFBPUlQKQEAgLTUyNyw3ICs1NDcsNyBAQAogICAgICAgICB2b2lkICpuZXdtYXA7CiAKICAgICAgICAgaWYgKGZ0cnVuY2F0ZShzZWxmLT5mZCwgc2VsZi0+b2Zmc2V0ICsgbmV3X3NpemUpID09IC0xKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8obW1hcF9tb2R1bGVfZXJyb3IpOworICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KIApAQCAtNTQyLDcgKzU2Miw3IEBACiAjZW5kaWYKICAgICAgICAgaWYgKG5ld21hcCA9PSAodm9pZCAqKS0xKQogICAgICAgICB7Ci0gICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8obW1hcF9tb2R1bGVfZXJyb3IpOworICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICAgICAgc2VsZi0+ZGF0YSA9IG5ld21hcDsKQEAgLTU4Myw3ICs2MDMsNyBAQAogICAgIC8qIFhYWCBzZW1hbnRpY3Mgb2YgcmV0dXJuIHZhbHVlPyAqLwogICAgIC8qIFhYWCBmbGFncyBmb3IgbXN5bmM/ICovCiAgICAgaWYgKC0xID09IG1zeW5jKHNlbGYtPmRhdGEgKyBvZmZzZXQsIHNpemUsIE1TX1NZTkMpKSB7Ci0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhtbWFwX21vZHVsZV9lcnJvcik7CisgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoMCk7CkBAIC02NDUsOSArNjY1LDkgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLyogYm91bmRzIGNoZWNrIHRoZSB2YWx1ZXMgKi8KLSAgICAgICAgaWYgKGNudCA8IDAgfHwgKGNudCArIGRlc3QpIDwgY250IHx8IChjbnQgKyBzcmMpIDwgY250IHx8Ci0gICAgICAgICAgIHNyYyA8IDAgfHwgc3JjID4gc2VsZi0+c2l6ZSB8fCAoc3JjICsgY250KSA+IHNlbGYtPnNpemUgfHwKLSAgICAgICAgICAgZGVzdCA8IDAgfHwgZGVzdCA+IHNlbGYtPnNpemUgfHwgKGRlc3QgKyBjbnQpID4gc2VsZi0+c2l6ZSkgeworICAgICAgICBpZiAoKGNudCArIGRlc3QpIDwgY250IHx8IChjbnQgKyBzcmMpIDwgY250IHx8CisgICAgICAgICAgIHNyYyA+IHNlbGYtPnNpemUgfHwgKHNyYyArIGNudCkgPiBzZWxmLT5zaXplIHx8CisgICAgICAgICAgIGRlc3QgPiBzZWxmLT5zaXplIHx8IChkZXN0ICsgY250KSA+IHNlbGYtPnNpemUpIHsKICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAogICAgICAgICAgICAgICAgICJzb3VyY2UsIGRlc3RpbmF0aW9uLCBvciBjb3VudCBvdXQgb2YgcmFuZ2UiKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNjgwLDcgKzcwMCw5IEBACiBzdGF0aWMgUHlPYmplY3QgKgogbW1hcF9fZXhpdF9fbWV0aG9kKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZChzZWxmLCAiY2xvc2UiLCBOVUxMKTsKKyAgICBfUHlfSURFTlRJRklFUihjbG9zZSk7CisKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzZWxmLCAmUHlJZF9jbG9zZSwgTlVMTCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgUHlNZXRob2REZWYgbW1hcF9vYmplY3RfbWV0aG9kc1tdID0gewpAQCAtOTM3LDEzICs5NTksMTMgQEAKIH0KIAogc3RhdGljIFB5U2VxdWVuY2VNZXRob2RzIG1tYXBfYXNfc2VxdWVuY2UgPSB7Ci0gICAgKGxlbmZ1bmMpbW1hcF9sZW5ndGgsICAgICAgICAgICAgICAgICAgICAgIC8qc3FfbGVuZ3RoKi8KLSAgICAoYmluYXJ5ZnVuYyltbWFwX2NvbmNhdCwgICAgICAgICAgICAgICAgICAgLypzcV9jb25jYXQqLwotICAgIChzc2l6ZWFyZ2Z1bmMpbW1hcF9yZXBlYXQsICAgICAgICAgICAgICAgICAvKnNxX3JlcGVhdCovCi0gICAgKHNzaXplYXJnZnVuYyltbWFwX2l0ZW0sICAgICAgICAgICAgICAgICAgICAgICAgICAgLypzcV9pdGVtKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnNxX3NsaWNlKi8KLSAgICAoc3NpemVvYmphcmdwcm9jKW1tYXBfYXNzX2l0ZW0sICAgICAgICAgICAgLypzcV9hc3NfaXRlbSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypzcV9hc3Nfc2xpY2UqLworICAgIChsZW5mdW5jKW1tYXBfbGVuZ3RoLCAgICAgICAgICAgIC8qc3FfbGVuZ3RoKi8KKyAgICAoYmluYXJ5ZnVuYyltbWFwX2NvbmNhdCwgICAgICAgICAvKnNxX2NvbmNhdCovCisgICAgKHNzaXplYXJnZnVuYyltbWFwX3JlcGVhdCwgICAgICAgLypzcV9yZXBlYXQqLworICAgIChzc2l6ZWFyZ2Z1bmMpbW1hcF9pdGVtLCAgICAgICAgIC8qc3FfaXRlbSovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypzcV9zbGljZSovCisgICAgKHNzaXplb2JqYXJncHJvYyltbWFwX2Fzc19pdGVtLCAgLypzcV9hc3NfaXRlbSovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypzcV9hc3Nfc2xpY2UqLwogfTsKIAogc3RhdGljIFB5TWFwcGluZ01ldGhvZHMgbW1hcF9hc19tYXBwaW5nID0gewpAQCAtMTAwNSw3ICsxMDI3LDcgQEAKICAgICBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwgICAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0YXR0cm8qLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRybyovCiAgICAgJm1tYXBfYXNfYnVmZmVyLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX2J1ZmZlciovCi0gICAgUHlfVFBGTEFHU19ERUZBVUxUIHwgUHlfVFBGTEFHU19CQVNFVFlQRSwgICAgICAgICAgICAgICAgICAgLyp0cF9mbGFncyovCisgICAgUHlfVFBGTEFHU19ERUZBVUxUIHwgUHlfVFBGTEFHU19CQVNFVFlQRSwgICAvKnRwX2ZsYWdzKi8KICAgICBtbWFwX2RvYywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZG9jKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLwpAQCAtMTAyMSwxMCArMTA0MywxMCBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9zZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLwogICAgIFB5VHlwZV9HZW5lcmljQWxsb2MsICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KICAgICBuZXdfbW1hcF9vYmplY3QsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLwotICAgIFB5T2JqZWN0X0RlbCwgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9mcmVlICovCisgICAgUHlPYmplY3RfRGVsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9mcmVlICovCiB9OwogCiAKQEAgLTEwNzUsOCArMTA5Nyw4IEBACiAgICAgaW50IGRldnplcm8gPSAtMTsKICAgICBpbnQgYWNjZXNzID0gKGludClBQ0NFU1NfREVGQVVMVDsKICAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsiZmlsZW5vIiwgImxlbmd0aCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZsYWdzIiwgInByb3QiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhY2Nlc3MiLCAib2Zmc2V0IiwgTlVMTH07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZsYWdzIiwgInByb3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhY2Nlc3MiLCAib2Zmc2V0IiwgTlVMTH07CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RpY3QsICJpT3xpaWkiIF9QeV9QQVJTRV9PRkZfVCwga2V5d29yZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZkLCAmbWFwX3NpemVfb2JqLCAmZmxhZ3MsICZwcm90LApAQCAtMTE4MSw3ICsxMjAzLDcgQEAKICAgICAgICAgZmQgPSBkZXZ6ZXJvID0gb3BlbigiL2Rldi96ZXJvIiwgT19SRFdSKTsKICAgICAgICAgaWYgKGRldnplcm8gPT0gLTEpIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihtX29iaik7Ci0gICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8obW1hcF9tb2R1bGVfZXJyb3IpOworICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMTE4OSw3ICsxMjExLDcgQEAKICAgICAgICAgbV9vYmotPmZkID0gZHVwKGZkKTsKICAgICAgICAgaWYgKG1fb2JqLT5mZCA9PSAtMSkgewogICAgICAgICAgICAgUHlfREVDUkVGKG1fb2JqKTsKLSAgICAgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhtbWFwX21vZHVsZV9lcnJvcik7CisgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogICAgIH0KQEAgLTEyMDUsNyArMTIyNyw3IEBACiAgICAgaWYgKG1fb2JqLT5kYXRhID09IChjaGFyICopLTEpIHsKICAgICAgICAgbV9vYmotPmRhdGEgPSBOVUxMOwogICAgICAgICBQeV9ERUNSRUYobV9vYmopOwotICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8obW1hcF9tb2R1bGVfZXJyb3IpOworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBtX29iai0+YWNjZXNzID0gKGFjY2Vzc19tb2RlKWFjY2VzczsKQEAgLTEyMzgsOCArMTI2MCw4IEBACiAgICAgaW50IGFjY2VzcyA9IChhY2Nlc3NfbW9kZSlBQ0NFU1NfREVGQVVMVDsKICAgICBEV09SRCBmbFByb3RlY3QsIGR3RGVzaXJlZEFjY2VzczsKICAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsgImZpbGVubyIsICJsZW5ndGgiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGFnbmFtZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhY2Nlc3MiLCAib2Zmc2V0IiwgTlVMTCB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGFnbmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhY2Nlc3MiLCAib2Zmc2V0IiwgTlVMTCB9OwogCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkaWN0LCAiaU98emlMIiwga2V5d29yZHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpbGVubywgJm1hcF9zaXplX29iaiwKQEAgLTEyODYsMTIgKzEzMDgsMTIgQEAKICAgICBpZiAoZmlsZW5vICE9IC0xICYmIGZpbGVubyAhPSAwKSB7CiAgICAgICAgIC8qIEVuc3VyZSB0aGF0IGZpbGVubyBpcyB3aXRoaW4gdGhlIENSVCdzIHZhbGlkIHJhbmdlICovCiAgICAgICAgIGlmIChfUHlWZXJpZnlfZmQoZmlsZW5vKSA9PSAwKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8obW1hcF9tb2R1bGVfZXJyb3IpOworICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICAgICAgZmggPSAoSEFORExFKV9nZXRfb3NmaGFuZGxlKGZpbGVubyk7CiAgICAgICAgIGlmIChmaD09KEhBTkRMRSktMSkgewotICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKG1tYXBfbW9kdWxlX2Vycm9yKTsKKyAgICAgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAgICAgICAgIC8qIFdpbjl4IGFwcGVhcnMgdG8gbmVlZCB1cyBzZWVrZWQgdG8gemVybyAqLwpAQCAtMTQ0NSwxMSArMTQ2Nyw3IEBACiAgICAgZGljdCA9IFB5TW9kdWxlX0dldERpY3QobW9kdWxlKTsKICAgICBpZiAoIWRpY3QpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIG1tYXBfbW9kdWxlX2Vycm9yID0gUHlFcnJfTmV3RXhjZXB0aW9uKCJtbWFwLmVycm9yIiwKLSAgICAgICAgUHlFeGNfRW52aXJvbm1lbnRFcnJvciAsIE5VTEwpOwotICAgIGlmIChtbWFwX21vZHVsZV9lcnJvciA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhkaWN0LCAiZXJyb3IiLCBtbWFwX21vZHVsZV9lcnJvcik7CisgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZGljdCwgImVycm9yIiwgUHlFeGNfT1NFcnJvcik7CiAgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcoZGljdCwgIm1tYXAiLCAoUHlPYmplY3QqKSAmbW1hcF9vYmplY3RfdHlwZSk7CiAjaWZkZWYgUFJPVF9FWEVDCiAgICAgc2V0aW50KGRpY3QsICJQUk9UX0VYRUMiLCBQUk9UX0VYRUMpOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9uaXNtb2R1bGUuYyBiL01vZHVsZXMvbmlzbW9kdWxlLmMKaW5kZXggYTgxY2E4Yy4uMGFmNDk1ZiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9uaXNtb2R1bGUuYworKysgYi9Nb2R1bGVzL25pc21vZHVsZS5jCkBAIC00MTEsNyArNDExLDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKChsaXN0ID0gUHlMaXN0X05ldygwKSkgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgZm9yIChtYXBzID0gbWFwczsgbWFwczsgbWFwcyA9IG1hcHMtPm5leHQpIHsKKyAgICBmb3IgKDsgbWFwczsgbWFwcyA9IG1hcHMtPm5leHQpIHsKICAgICAgICAgUHlPYmplY3QgKnN0ciA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKG1hcHMtPm1hcCk7CiAgICAgICAgIGlmICghc3RyIHx8IFB5TGlzdF9BcHBlbmQobGlzdCwgc3RyKSA8IDApCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL01vZHVsZXMvb3BlcmF0b3IuYyBiL01vZHVsZXMvb3BlcmF0b3IuYwppbmRleCA4NjZlYzNhLi4xMmZkYWQ1IDEwMDY0NAotLS0gYS9Nb2R1bGVzL29wZXJhdG9yLmMKKysrIGIvTW9kdWxlcy9vcGVyYXRvci5jCkBAIC0xNTksNiArMTU5LDE0MyBAQAogI3VuZGVmIHNwYW0yCiAjdW5kZWYgc3BhbTFvCiAjdW5kZWYgc3BhbTFvCisKKy8qIGNvbXBhcmVfZGlnZXN0ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgKiB0aW1pbmcgc2FmZSBjb21wYXJlCisgKgorICogUmV0dXJucyAxIG9mIHRoZSBzdHJpbmdzIGFyZSBlcXVhbC4KKyAqIEluIGNhc2Ugb2YgbGVuKGEpICE9IGxlbihiKSB0aGUgZnVuY3Rpb24gdHJpZXMgdG8ga2VlcCB0aGUgdGltaW5nCisgKiBkZXBlbmRlbnQgb24gdGhlIGxlbmd0aCBvZiBiLiBDUFUgY2FjaGUgbG9jYWxseSBtYXkgc3RpbGwgYWx0ZXIgdGltaW5nCisgKiBhIGJpdC4KKyAqLworc3RhdGljIGludAorX3RzY21wKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmEsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmIsCisgICAgICAgIFB5X3NzaXplX3QgbGVuX2EsIFB5X3NzaXplX3QgbGVuX2IpCit7CisgICAgLyogVGhlIHZvbGF0aWxlIHR5cGUgZGVjbGFyYXRpb25zIG1ha2Ugc3VyZSB0aGF0IHRoZSBjb21waWxlciBoYXMgbm8KKyAgICAgKiBjaGFuY2UgdG8gb3B0aW1pemUgYW5kIGZvbGQgdGhlIGNvZGUgaW4gYW55IHdheSB0aGF0IG1heSBjaGFuZ2UKKyAgICAgKiB0aGUgdGltaW5nLgorICAgICAqLworICAgIHZvbGF0aWxlIFB5X3NzaXplX3QgbGVuZ3RoOworICAgIHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmxlZnQ7CisgICAgdm9sYXRpbGUgY29uc3QgdW5zaWduZWQgY2hhciAqcmlnaHQ7CisgICAgUHlfc3NpemVfdCBpOworICAgIHVuc2lnbmVkIGNoYXIgcmVzdWx0OworCisgICAgLyogbG9vcCBjb3VudCBkZXBlbmRzIG9uIGxlbmd0aCBvZiBiICovCisgICAgbGVuZ3RoID0gbGVuX2I7CisgICAgbGVmdCA9IE5VTEw7CisgICAgcmlnaHQgPSBiOworCisgICAgLyogZG9uJ3QgdXNlIGVsc2UgaGVyZSB0byBrZWVwIHRoZSBhbW91bnQgb2YgQ1BVIGluc3RydWN0aW9ucyBjb25zdGFudCwKKyAgICAgKiB2b2xhdGlsZSBmb3JjZXMgcmUtZXZhbHVhdGlvbgorICAgICAqICAqLworICAgIGlmIChsZW5fYSA9PSBsZW5ndGgpIHsKKyAgICAgICAgbGVmdCA9ICooKHZvbGF0aWxlIGNvbnN0IHVuc2lnbmVkIGNoYXIqKikmYSk7CisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgfQorICAgIGlmIChsZW5fYSAhPSBsZW5ndGgpIHsKKyAgICAgICAgbGVmdCA9IGI7CisgICAgICAgIHJlc3VsdCA9IDE7CisgICAgfQorCisgICAgZm9yIChpPTA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICByZXN1bHQgfD0gKmxlZnQrKyBeICpyaWdodCsrOworICAgIH0KKworICAgIHJldHVybiAocmVzdWx0ID09IDApOworfQorCitQeURvY19TVFJWQVIoY29tcGFyZV9kaWdlc3RfX2RvY19fLAorImNvbXBhcmVfZGlnZXN0KGEsIGIpIC0+IGJvb2xcbiIKKyJcbiIKKyJSZXR1cm4gJ2EgPT0gYicuICBUaGlzIGZ1bmN0aW9uIHVzZXMgYW4gYXBwcm9hY2ggZGVzaWduZWQgdG8gcHJldmVudFxuIgorInRpbWluZyBhbmFseXNpcywgbWFraW5nIGl0IGFwcHJvcHJpYXRlIGZvciBjcnlwdG9ncmFwaHkuXG4iCisiYSBhbmQgYiBtdXN0IGJvdGggYmUgb2YgdGhlIHNhbWUgdHlwZTogZWl0aGVyIHN0ciAoQVNDSUkgb25seSksXG4iCisib3IgYW55IHR5cGUgdGhhdCBzdXBwb3J0cyB0aGUgYnVmZmVyIHByb3RvY29sIChlLmcuIGJ5dGVzKS5cbiIKKyJcbiIKKyJOb3RlOiBJZiBhIGFuZCBiIGFyZSBvZiBkaWZmZXJlbnQgbGVuZ3Rocywgb3IgaWYgYW4gZXJyb3Igb2NjdXJzLFxuIgorImEgdGltaW5nIGF0dGFjayBjb3VsZCB0aGVvcmV0aWNhbGx5IHJldmVhbCBpbmZvcm1hdGlvbiBhYm91dCB0aGVcbiIKKyJ0eXBlcyBhbmQgbGVuZ3RocyBvZiBhIGFuZCBiLS1idXQgbm90IHRoZWlyIHZhbHVlcy5cbiIpOworCitzdGF0aWMgUHlPYmplY3QqCitjb21wYXJlX2RpZ2VzdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKmEsICpiOworICAgIGludCByYzsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT086Y29tcGFyZV9kaWdlc3QiLCAmYSwgJmIpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIC8qIEFTQ0lJIHVuaWNvZGUgc3RyaW5nICovCisgICAgaWYoUHlVbmljb2RlX0NoZWNrKGEpICYmIFB5VW5pY29kZV9DaGVjayhiKSkgeworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKGEpID09IC0xIHx8IFB5VW5pY29kZV9SRUFEWShiKSA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFQeVVuaWNvZGVfSVNfQVNDSUkoYSkgfHwgIVB5VW5pY29kZV9JU19BU0NJSShiKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tcGFyaW5nIHN0cmluZ3Mgd2l0aCBub24tQVNDSUkgY2hhcmFjdGVycyBpcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vdCBzdXBwb3J0ZWQiKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisKKyAgICAgICAgcmMgPSBfdHNjbXAoUHlVbmljb2RlX0RBVEEoYSksCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9EQVRBKGIpLAorICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChhKSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoYikpOworICAgIH0KKyAgICAvKiBmYWxsYmFjayB0byBidWZmZXIgaW50ZXJmYWNlIGZvciBieXRlcywgYnl0ZXNhcnJheSBhbmQgb3RoZXIgKi8KKyAgICBlbHNlIHsKKyAgICAgICAgUHlfYnVmZmVyIHZpZXdfYTsKKyAgICAgICAgUHlfYnVmZmVyIHZpZXdfYjsKKworICAgICAgICBpZiAoKFB5T2JqZWN0X0NoZWNrQnVmZmVyKGEpID09IDApICYgKFB5T2JqZWN0X0NoZWNrQnVmZmVyKGIpID09IDApKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ1bnN1cHBvcnRlZCBvcGVyYW5kIHR5cGVzKHMpIG9yIGNvbWJpbmF0aW9uIG9mIHR5cGVzOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgIiclLjEwMHMnIGFuZCAnJS4xMDBzJyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShhKS0+dHBfbmFtZSwgUHlfVFlQRShiKS0+dHBfbmFtZSk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChQeU9iamVjdF9HZXRCdWZmZXIoYSwgJnZpZXdfYSwgUHlCVUZfU0lNUExFKSA9PSAtMSkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHZpZXdfYS5uZGltID4gMSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0J1ZmZlckVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJCdWZmZXIgbXVzdCBiZSBzaW5nbGUgZGltZW5zaW9uIik7CisgICAgICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZ2aWV3X2EpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKworICAgICAgICBpZiAoUHlPYmplY3RfR2V0QnVmZmVyKGIsICZ2aWV3X2IsIFB5QlVGX1NJTVBMRSkgPT0gLTEpIHsKKyAgICAgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZpZXdfYSk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBpZiAodmlld19iLm5kaW0gPiAxKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkJ1ZmZlciBtdXN0IGJlIHNpbmdsZSBkaW1lbnNpb24iKTsKKyAgICAgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZpZXdfYSk7CisgICAgICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZ2aWV3X2IpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKworICAgICAgICByYyA9IF90c2NtcCgoY29uc3QgdW5zaWduZWQgY2hhciopdmlld19hLmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgKGNvbnN0IHVuc2lnbmVkIGNoYXIqKXZpZXdfYi5idWYsCisgICAgICAgICAgICAgICAgICAgIHZpZXdfYS5sZW4sCisgICAgICAgICAgICAgICAgICAgIHZpZXdfYi5sZW4pOworCisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZpZXdfYSk7CisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZpZXdfYik7CisgICAgfQorCisgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZyhyYyk7Cit9CisKKy8qIG9wZXJhdG9yIG1ldGhvZHMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwogI2RlZmluZSBzcGFtMShPUCxET0MpIHsjT1AsIE9QLCBNRVRIX1ZBUkFSR1MsIFB5RG9jX1NUUihET0MpfSwKICNkZWZpbmUgc3BhbTIoT1AsQUxUT1AsRE9DKSB7I09QLCBvcF8jI09QLCBNRVRIX1ZBUkFSR1MsIFB5RG9jX1NUUihET0MpfSwgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgeyNBTFRPUCwgb3BfIyNPUCwgTUVUSF9WQVJBUkdTLCBQeURvY19TVFIoRE9DKX0sCkBAIC0yMjcsNiArMzY0LDggQEAKIHNwYW0yKGd0LF9fZ3RfXywgImd0KGEsIGIpIC0tIFNhbWUgYXMgYT5iLiIpCiBzcGFtMihnZSxfX2dlX18sICJnZShhLCBiKSAtLSBTYW1lIGFzIGE+PWIuIikKIAorICAgIHsiX2NvbXBhcmVfZGlnZXN0IiwgKFB5Q0Z1bmN0aW9uKWNvbXBhcmVfZGlnZXN0LCBNRVRIX1ZBUkFSR1MsCisgICAgIGNvbXBhcmVfZGlnZXN0X19kb2NfX30sCiAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KIAogfTsKQEAgLTQwMiw3ICs1NDEsOCBAQAogICAgIGZvciAoaWR4ID0gMDsgaWR4IDwgbmF0dHJzOyArK2lkeCkgewogICAgICAgICBQeU9iamVjdCAqaXRlbSA9IFB5VHVwbGVfR0VUX0lURU0oYXJncywgaWR4KTsKICAgICAgICAgUHlfc3NpemVfdCBpdGVtX2xlbjsKLSAgICAgICAgUHlfVU5JQ09ERSAqaXRlbV9idWZmZXI7CisgICAgICAgIHZvaWQgKmRhdGE7CisgICAgICAgIHVuc2lnbmVkIGludCBraW5kOwogICAgICAgICBpbnQgZG90X2NvdW50OwogCiAgICAgICAgIGlmICghUHlVbmljb2RlX0NoZWNrKGl0ZW0pKSB7CkBAIC00MTEsMTMgKzU1MSwxOCBAQAogICAgICAgICAgICAgUHlfREVDUkVGKGF0dHIpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KLSAgICAgICAgaXRlbV9sZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUoaXRlbSk7Ci0gICAgICAgIGl0ZW1fYnVmZmVyID0gUHlVbmljb2RlX0FTX1VOSUNPREUoaXRlbSk7CisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoaXRlbSkpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihhdHRyKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIGl0ZW1fbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoaXRlbSk7CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChpdGVtKTsKKyAgICAgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKGl0ZW0pOwogCiAgICAgICAgIC8qIGNoZWNrIHdoZXRoZXJlIHRoZSBzdHJpbmcgaXMgZG90dGVkICovCiAgICAgICAgIGRvdF9jb3VudCA9IDA7CiAgICAgICAgIGZvciAoY2hhcl9pZHggPSAwOyBjaGFyX2lkeCA8IGl0ZW1fbGVuOyArK2NoYXJfaWR4KSB7Ci0gICAgICAgICAgICBpZiAoaXRlbV9idWZmZXJbY2hhcl9pZHhdID09IChQeV9VTklDT0RFKScuJykKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBjaGFyX2lkeCkgPT0gJy4nKQogICAgICAgICAgICAgICAgICsrZG90X2NvdW50OwogICAgICAgICB9CiAKQEAgLTQzOCwxMiArNTgzLDEyIEBACiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZvciAoOyBkb3RfY291bnQgPiAwOyAtLWRvdF9jb3VudCkgewotICAgICAgICAgICAgICAgIHdoaWxlIChpdGVtX2J1ZmZlclt1bmlidWZmX3RpbGxdICE9IChQeV9VTklDT0RFKScuJykgeworICAgICAgICAgICAgICAgIHdoaWxlIChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCB1bmlidWZmX3RpbGwpICE9ICcuJykgewogICAgICAgICAgICAgICAgICAgICArK3VuaWJ1ZmZfdGlsbDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYXR0cl9jaGFpbl9pdGVtID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtX2J1ZmZlciArIHVuaWJ1ZmZfZnJvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pYnVmZl90aWxsIC0gdW5pYnVmZl9mcm9tKTsKKyAgICAgICAgICAgICAgICBhdHRyX2NoYWluX2l0ZW0gPSBQeVVuaWNvZGVfU3Vic3RyaW5nKGl0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWJ1ZmZfZnJvbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pYnVmZl90aWxsKTsKICAgICAgICAgICAgICAgICBpZiAoYXR0cl9jaGFpbl9pdGVtID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGF0dHJfY2hhaW4pOwogICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYXR0cik7CkBAIC00NTYsOSArNjAxLDggQEAKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLyogbm93IGFkZCB0aGUgbGFzdCBkb3RsZXNzIG5hbWUgKi8KLSAgICAgICAgICAgIGF0dHJfY2hhaW5faXRlbSA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtX2J1ZmZlciArIHVuaWJ1ZmZfZnJvbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtX2xlbiAtIHVuaWJ1ZmZfZnJvbSk7CisgICAgICAgICAgICBhdHRyX2NoYWluX2l0ZW0gPSBQeVVuaWNvZGVfU3Vic3RyaW5nKGl0ZW0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWJ1ZmZfZnJvbSwgaXRlbV9sZW4pOwogICAgICAgICAgICAgaWYgKGF0dHJfY2hhaW5faXRlbSA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGF0dHJfY2hhaW4pOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihhdHRyKTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvb3NzYXVkaW9kZXYuYyBiL01vZHVsZXMvb3NzYXVkaW9kZXYuYwppbmRleCBiMzhjZTUyLi5hMTdhNjQ3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL29zc2F1ZGlvZGV2LmMKKysrIGIvTW9kdWxlcy9vc3NhdWRpb2Rldi5jCkBAIC0yMTQsNiArMjE0LDIxIEBACiAgKiBIZWxwZXIgZnVuY3Rpb25zCiAgKi8KIAorLyogQ2hlY2sgaWYgYSBnaXZlbiBmaWxlIGRlc2NyaXB0b3IgaXMgdmFsaWQgKGkuZS4gaGFzbid0IGJlZW4gY2xvc2VkKS4KKyAqIElmIHRydWUsIHJldHVybiAxLiBPdGhlcndpc2UsIHJhaXNlIFZhbHVlRXJyb3IgYW5kIHJldHVybiAwLgorICovCitzdGF0aWMgaW50IF9pc19mZF92YWxpZChpbnQgZmQpCit7CisgICAgLyogdGhlIEZEIGlzIHNldCB0byAtMSBpbiBvc3NfY2xvc2UoKS9vc3NfbWl4ZXJfY2xvc2UoKSAqLworICAgIGlmIChmZCA+PSAwKSB7CisgICAgICAgIHJldHVybiAxOworICAgIH0gZWxzZSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIk9wZXJhdGlvbiBvbiBjbG9zZWQgT1NTIGRldmljZS4iKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCiAvKiBfZG9faW9jdGxfMSgpIGlzIGEgcHJpdmF0ZSBoZWxwZXIgZnVuY3Rpb24gdXNlZCBmb3IgdGhlIE9TUyBpb2N0bHMgLS0KICAgIFNORENUTF9EU1Bfe1NFVEZNVCxDSEFOTkVMUyxTUEVFRH0gLS0gdGhhdCB0aGF0IGFyZSBjYWxsZWQgZnJvbSBDCiAgICBsaWtlIHRoaXM6CkBAIC0zMDEsNiArMzE2LDkgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBvc3Nfbm9uYmxvY2sob3NzX2F1ZGlvX3QgKnNlbGYsIFB5T2JqZWN0ICp1bnVzZWQpCiB7CisgICAgaWYgKCFfaXNfZmRfdmFsaWQoc2VsZi0+ZmQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIC8qIEhtbW06IGl0IGRvZXNuJ3QgYXBwZWFyIHRvIGJlIHBvc3NpYmxlIHRvIHJldHVybiB0byBibG9ja2luZwogICAgICAgIG1vZGUgb25jZSB3ZSdyZSBpbiBub24tYmxvY2tpbmcgbW9kZSEgKi8KICAgICBpZiAoaW9jdGwoc2VsZi0+ZmQsIFNORENUTF9EU1BfTk9OQkxPQ0ssIE5VTEwpID09IC0xKQpAQCAtMzEyLDYgKzMzMCw5IEBACiBzdGF0aWMgUHlPYmplY3QgKgogb3NzX3NldGZtdChvc3NfYXVkaW9fdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CisgICAgaWYgKCFfaXNfZmRfdmFsaWQoc2VsZi0+ZmQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIHJldHVybiBfZG9faW9jdGxfMShzZWxmLT5mZCwgYXJncywgInNldGZtdCIsIFNORENUTF9EU1BfU0VURk1UKTsKIH0KIApAQCAtMzE5LDYgKzM0MCwxMCBAQAogb3NzX2dldGZtdHMob3NzX2F1ZGlvX3QgKnNlbGYsIFB5T2JqZWN0ICp1bnVzZWQpCiB7CiAgICAgaW50IG1hc2s7CisKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgaWYgKGlvY3RsKHNlbGYtPmZkLCBTTkRDVExfRFNQX0dFVEZNVFMsICZtYXNrKSA9PSAtMSkKICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKICAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKG1hc2spOwpAQCAtMzI3LDMwICszNTIsNDUgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBvc3NfY2hhbm5lbHMob3NzX2F1ZGlvX3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogeworICAgIGlmICghX2lzX2ZkX3ZhbGlkKHNlbGYtPmZkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKICAgICByZXR1cm4gX2RvX2lvY3RsXzEoc2VsZi0+ZmQsIGFyZ3MsICJjaGFubmVscyIsIFNORENUTF9EU1BfQ0hBTk5FTFMpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogb3NzX3NwZWVkKG9zc19hdWRpb190ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgcmV0dXJuIF9kb19pb2N0bF8xKHNlbGYtPmZkLCBhcmdzLCAic3BlZWQiLCBTTkRDVExfRFNQX1NQRUVEKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKIG9zc19zeW5jKG9zc19hdWRpb190ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgcmV0dXJuIF9kb19pb2N0bF8wKHNlbGYtPmZkLCBhcmdzLCAic3luYyIsIFNORENUTF9EU1BfU1lOQyk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBvc3NfcmVzZXQob3NzX2F1ZGlvX3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogeworICAgIGlmICghX2lzX2ZkX3ZhbGlkKHNlbGYtPmZkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKICAgICByZXR1cm4gX2RvX2lvY3RsXzAoc2VsZi0+ZmQsIGFyZ3MsICJyZXNldCIsIFNORENUTF9EU1BfUkVTRVQpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogb3NzX3Bvc3Qob3NzX2F1ZGlvX3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogeworICAgIGlmICghX2lzX2ZkX3ZhbGlkKHNlbGYtPmZkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKICAgICByZXR1cm4gX2RvX2lvY3RsXzAoc2VsZi0+ZmQsIGFyZ3MsICJwb3N0IiwgU05EQ1RMX0RTUF9QT1NUKTsKIH0KIApAQCAtMzY1LDYgKzQwNSw5IEBACiAgICAgY2hhciAqY3A7CiAgICAgUHlPYmplY3QgKnJ2OwogCisgICAgaWYgKCFfaXNfZmRfdmFsaWQoc2VsZi0+ZmQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaTpyZWFkIiwgJnNpemUpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBydiA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgc2l6ZSk7CkBAIC0zOTIsNiArNDM1LDkgQEAKICAgICBjaGFyICpjcDsKICAgICBpbnQgcnYsIHNpemU7CiAKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ5Izp3cml0ZSIsICZjcCwgJnNpemUpKSB7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTQyMyw2ICs0NjksOSBAQAogICAgICAgIG1vZGUsIHRoZSBiZWhhdmlvdXIgb2Ygd3JpdGUoKSBhbmQgd3JpdGVhbGwoKSBmcm9tIFB5dGhvbiBpcwogICAgICAgIGluZGlzdGluZ3Vpc2hhYmxlLiAqLwogCisgICAgaWYgKCFfaXNfZmRfdmFsaWQoc2VsZi0+ZmQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieSM6d3JpdGUiLCAmY3AsICZzaXplKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTQ4MiwxMCArNTMxLDEyIEBACiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLXN0YXRpYyBQeU9iamVjdCAqIAorc3RhdGljIFB5T2JqZWN0ICoKIG9zc19leGl0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdW51c2VkKQogewotICAgIFB5T2JqZWN0ICpyZXQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHNlbGYsICJjbG9zZSIsIE5VTEwpOworICAgIF9QeV9JREVOVElGSUVSKGNsb3NlKTsKKworICAgIFB5T2JqZWN0ICpyZXQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHNlbGYsICZQeUlkX2Nsb3NlLCBOVUxMKTsKICAgICBpZiAoIXJldCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgUHlfREVDUkVGKHJldCk7CkBAIC00OTUsNiArNTQ2LDkgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBvc3NfZmlsZW5vKG9zc19hdWRpb190ICpzZWxmLCBQeU9iamVjdCAqdW51c2VkKQogeworICAgIGlmICghX2lzX2ZkX3ZhbGlkKHNlbGYtPmZkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKICAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKHNlbGYtPmZkKTsKIH0KIApAQCAtNTA5LDYgKzU2Myw5IEBACiAgICAgaW50IGZtdCwgY2hhbm5lbHMsIHJhdGU7CiAgICAgUHlPYmplY3QgKiBydjsgICAgICAgICAgICAgICAgICAgIC8qIHJldHVybiB0dXBsZSAoZm10LCBjaGFubmVscywgcmF0ZSkgKi8KIAorICAgIGlmICghX2lzX2ZkX3ZhbGlkKHNlbGYtPmZkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImlpaXxpOnNldHBhcmFtZXRlcnMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmd2FudGVkX2ZtdCwgJndhbnRlZF9jaGFubmVscywgJndhbnRlZF9yYXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RyaWN0KSkKQEAgLTU5OSw2ICs2NTYsOSBAQAogICAgIGF1ZGlvX2J1Zl9pbmZvIGFpOwogICAgIGludCBuY2hhbm5lbHM9MCwgc3NpemU9MDsKIAorICAgIGlmICghX2lzX2ZkX3ZhbGlkKHNlbGYtPmZkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKICAgICBpZiAoX3NzaXplKHNlbGYsICZuY2hhbm5lbHMsICZzc2l6ZSkgPCAwIHx8ICFuY2hhbm5lbHMgfHwgIXNzaXplKSB7CiAgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC02MTgsNiArNjc4LDkgQEAKICAgICBhdWRpb19idWZfaW5mbyBhaTsKICAgICBpbnQgbmNoYW5uZWxzPTAsIHNzaXplPTA7CiAKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgaWYgKF9zc2l6ZShzZWxmLCAmbmNoYW5uZWxzLCAmc3NpemUpIDwgMCB8fCAhbmNoYW5uZWxzIHx8ICFzc2l6ZSkgewogICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfSU9FcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNjM4LDYgKzcwMSw5IEBACiAgICAgYXVkaW9fYnVmX2luZm8gYWk7CiAgICAgaW50IG5jaGFubmVscz0wLCBzc2l6ZT0wOwogCisgICAgaWYgKCFfaXNfZmRfdmFsaWQoc2VsZi0+ZmQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIGlmIChfc3NpemUoc2VsZiwgJm5jaGFubmVscywgJnNzaXplKSA8IDAgfHwgIW5jaGFubmVscyB8fCAhc3NpemUpIHsKICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOwogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTY1NSw2ICs3MjEsOSBAQAogICAgIGNvdW50X2luZm8gaW5mbzsKICAgICBpbnQgcmVxOwogCisgICAgaWYgKCFfaXNfZmRfdmFsaWQoc2VsZi0+ZmQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIGlmIChzZWxmLT5tb2RlID09IE9fUkRPTkxZKQogICAgICAgICByZXEgPSBTTkRDVExfRFNQX0dFVElQVFI7CiAgICAgZWxzZQpAQCAtNjg1LDYgKzc1NCw5IEBACiBzdGF0aWMgUHlPYmplY3QgKgogb3NzX21peGVyX2ZpbGVubyhvc3NfbWl4ZXJfdCAqc2VsZiwgUHlPYmplY3QgKnVudXNlZCkKIHsKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyhzZWxmLT5mZCk7CiB9CiAKQEAgLTY5Myw2ICs3NjUsOSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIG9zc19taXhlcl9jb250cm9scyhvc3NfbWl4ZXJfdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CisgICAgaWYgKCFfaXNfZmRfdmFsaWQoc2VsZi0+ZmQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIHJldHVybiBfZG9faW9jdGxfMV9pbnRlcm5hbChzZWxmLT5mZCwgYXJncywgImNvbnRyb2xzIiwKICAgICAgICAgU09VTkRfTUlYRVJfUkVBRF9ERVZNQVNLKTsKIH0KQEAgLTcwMCw2ICs3NzUsOSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIG9zc19taXhlcl9zdGVyZW9jb250cm9scyhvc3NfbWl4ZXJfdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CisgICAgaWYgKCFfaXNfZmRfdmFsaWQoc2VsZi0+ZmQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIHJldHVybiBfZG9faW9jdGxfMV9pbnRlcm5hbChzZWxmLT5mZCwgYXJncywgInN0ZXJlb2NvbnRyb2xzIiwKICAgICAgICAgU09VTkRfTUlYRVJfUkVBRF9TVEVSRU9ERVZTKTsKIH0KQEAgLTcwNyw2ICs3ODUsOSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIG9zc19taXhlcl9yZWNjb250cm9scyhvc3NfbWl4ZXJfdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CisgICAgaWYgKCFfaXNfZmRfdmFsaWQoc2VsZi0+ZmQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIHJldHVybiBfZG9faW9jdGxfMV9pbnRlcm5hbChzZWxmLT5mZCwgYXJncywgInJlY2NvbnRyb2xzIiwKICAgICAgICAgU09VTkRfTUlYRVJfUkVBRF9SRUNNQVNLKTsKIH0KQEAgLTcxNiw2ICs3OTcsOSBAQAogewogICAgIGludCBjaGFubmVsLCB2b2x1bWU7CiAKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgLyogQ2FuJ3QgdXNlIF9kb19pb2N0bF8xIGJlY2F1c2Ugb2YgZW5jb2RlZCBhcmcgdGhpbmd5LiAqLwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaTpnZXQiLCAmY2hhbm5lbCkpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNzM2LDYgKzgyMCw5IEBACiB7CiAgICAgaW50IGNoYW5uZWwsIHZvbHVtZSwgbGVmdFZvbCwgcmlnaHRWb2w7CiAKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgLyogQ2FuJ3QgdXNlIF9kb19pb2N0bF8xIGJlY2F1c2Ugb2YgZW5jb2RlZCBhcmcgdGhpbmd5LiAqLwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaShpaSk6c2V0IiwgJmNoYW5uZWwsICZsZWZ0Vm9sLCAmcmlnaHRWb2wpKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTc2MSw2ICs4NDgsOSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIG9zc19taXhlcl9nZXRfcmVjc3JjKG9zc19taXhlcl90ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgcmV0dXJuIF9kb19pb2N0bF8xX2ludGVybmFsKHNlbGYtPmZkLCBhcmdzLCAiZ2V0X3JlY3NyYyIsCiAgICAgICAgIFNPVU5EX01JWEVSX1JFQURfUkVDU1JDKTsKIH0KQEAgLTc2OCw2ICs4NTgsOSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIG9zc19taXhlcl9zZXRfcmVjc3JjKG9zc19taXhlcl90ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKKyAgICBpZiAoIV9pc19mZF92YWxpZChzZWxmLT5mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgcmV0dXJuIF9kb19pb2N0bF8xKHNlbGYtPmZkLCBhcmdzLCAic2V0X3JlY3NyYyIsCiAgICAgICAgIFNPVU5EX01JWEVSX1dSSVRFX1JFQ1NSQyk7CiB9CkBAIC05NzEsOCArMTA2NCw4IEBACiAgICAgaW50IG51bV9jb250cm9sczsKICAgICBpbnQgaTsKIAotICAgIG51bV9jb250cm9scyA9IHNpemVvZihjb250cm9sX2xhYmVscykgLyBzaXplb2YoY29udHJvbF9sYWJlbHNbMF0pOwotICAgIGFzc2VydChudW1fY29udHJvbHMgPT0gc2l6ZW9mKGNvbnRyb2xfbmFtZXMpIC8gc2l6ZW9mKGNvbnRyb2xfbmFtZXNbMF0pKTsKKyAgICBudW1fY29udHJvbHMgPSBQeV9BUlJBWV9MRU5HVEgoY29udHJvbF9sYWJlbHMpOworICAgIGFzc2VydChudW1fY29udHJvbHMgPT0gUHlfQVJSQVlfTEVOR1RIKGNvbnRyb2xfbmFtZXMpKTsKIAogICAgIGxhYmVscyA9IFB5TGlzdF9OZXcobnVtX2NvbnRyb2xzKTsKICAgICBuYW1lcyA9IFB5TGlzdF9OZXcobnVtX2NvbnRyb2xzKTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvcGFyc2VybW9kdWxlLmMgYi9Nb2R1bGVzL3BhcnNlcm1vZHVsZS5jCmluZGV4IGMwNjMzZTMuLmI5YzEyMDEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvcGFyc2VybW9kdWxlLmMKKysrIGIvTW9kdWxlcy9wYXJzZXJtb2R1bGUuYwpAQCAtMjk4LDI1ICsyOTgsMjUgQEAKIAogICAgIC8qIENvbnZlcnQgcmV0dXJuIHZhbHVlIHRvIGEgQm9vbGVhbiAqLwogICAgIHN3aXRjaCAob3ApIHsKLSAgICBjYXNlIFB5X0VROgorICAgICAgY2FzZSBQeV9FUToKICAgICAgICAgdiA9IFRFU1RfQ09ORChyZXN1bHQgPT0gMCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHlfTkU6CisgICAgICBjYXNlIFB5X05FOgogICAgICAgICB2ID0gVEVTVF9DT05EKHJlc3VsdCAhPSAwKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQeV9MRToKKyAgICAgIGNhc2UgUHlfTEU6CiAgICAgICAgIHYgPSBURVNUX0NPTkQocmVzdWx0IDw9IDApOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFB5X0dFOgorICAgICAgY2FzZSBQeV9HRToKICAgICAgICAgdiA9IFRFU1RfQ09ORChyZXN1bHQgPj0gMCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHlfTFQ6CisgICAgICBjYXNlIFB5X0xUOgogICAgICAgICB2ID0gVEVTVF9DT05EKHJlc3VsdCA8IDApOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFB5X0dUOgorICAgICAgY2FzZSBQeV9HVDoKICAgICAgICAgdiA9IFRFU1RfQ09ORChyZXN1bHQgPiAwKTsKICAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKKyAgICAgIGRlZmF1bHQ6CiAgICAgICAgIFB5RXJyX0JhZEFyZ3VtZW50KCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTU4MSw4ICs1ODEsMTAgQEAKICAgICAgICAgICAgIGlmIChyZXMpCiAgICAgICAgICAgICAgICAgKChQeVNUX09iamVjdCAqKXJlcyktPnN0X2ZsYWdzLmNmX2ZsYWdzID0gZmxhZ3MgJiBQeUNGX01BU0s7CiAgICAgICAgIH0KLSAgICAgICAgZWxzZQorICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIFB5UGFyc2VyX1NldEVycm9yKCZlcnIpOworICAgICAgICB9CisgICAgICAgIFB5UGFyc2VyX0NsZWFyRXJyb3IoJmVycik7CiAgICAgfQogICAgIHJldHVybiAocmVzKTsKIH0KQEAgLTk3Niw2ICs5NzgsNyBAQAogVkFMSURBVEVSKHRlc3RsaXN0X2NvbXApOyAgICAgICBWQUxJREFURVIoeWllbGRfZXhwcik7CiBWQUxJREFURVIob3JfdGVzdCk7CiBWQUxJREFURVIodGVzdF9ub2NvbmQpOyAgICAgICAgIFZBTElEQVRFUihsYW1iZGVmX25vY29uZCk7CitWQUxJREFURVIoeWllbGRfYXJnKTsKIAogI3VuZGVmIFZBTElEQVRFUgogCkBAIC0xNjM2LDIyICsxNjM5LDQ5IEBACiB9CiAKIAotLyogeWllbGRfZXhwcjogJ3lpZWxkJyBbdGVzdGxpc3RdCisvKiB5aWVsZF9leHByOiAneWllbGQnIFt5aWVsZF9hcmddCiAgKi8KIHN0YXRpYyBpbnQKIHZhbGlkYXRlX3lpZWxkX2V4cHIobm9kZSAqdHJlZSkKIHsKICAgICBpbnQgbmNoID0gTkNIKHRyZWUpOwotICAgIGludCByZXMgPSAodmFsaWRhdGVfbnR5cGUodHJlZSwgeWllbGRfZXhwcikKLSAgICAgICAgICAgICAgICYmICgobmNoID09IDEpIHx8IChuY2ggPT0gMikpCi0gICAgICAgICAgICAgICAmJiB2YWxpZGF0ZV9uYW1lKENISUxEKHRyZWUsIDApLCAieWllbGQiKSk7Ci0KLSAgICBpZiAocmVzICYmIChuY2ggPT0gMikpCi0gICAgICAgIHJlcyA9IHZhbGlkYXRlX3Rlc3RsaXN0KENISUxEKHRyZWUsIDEpKTsKLQotICAgIHJldHVybiAocmVzKTsKKyAgICBpZiAobmNoIDwgMSB8fCBuY2ggPiAyKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIXZhbGlkYXRlX250eXBlKHRyZWUsIHlpZWxkX2V4cHIpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIXZhbGlkYXRlX25hbWUoQ0hJTEQodHJlZSwgMCksICJ5aWVsZCIpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAobmNoID09IDIpIHsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZV95aWVsZF9hcmcoQ0hJTEQodHJlZSwgMSkpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiAxOwogfQogCisvKiB5aWVsZF9hcmc6ICdmcm9tJyB0ZXN0IHwgdGVzdGxpc3QKKyAqLworc3RhdGljIGludAordmFsaWRhdGVfeWllbGRfYXJnKG5vZGUgKnRyZWUpCit7CisgICAgaW50IG5jaCA9IE5DSCh0cmVlKTsKKyAgICBpZiAoIXZhbGlkYXRlX250eXBlKHRyZWUsIHlpZWxkX2FyZykpCisgICAgICAgIHJldHVybiAwOworICAgIHN3aXRjaCAobmNoKSB7CisgICAgICBjYXNlIDE6CisgICAgICAgIGlmICghdmFsaWRhdGVfdGVzdGxpc3QoQ0hJTEQodHJlZSwgbmNoIC0gMSkpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGJyZWFrOworICAgICAgY2FzZSAyOgorICAgICAgICBpZiAoIXZhbGlkYXRlX25hbWUoQ0hJTEQodHJlZSwgMCksICJmcm9tIikpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZV90ZXN0KENISUxEKHRyZWUsIDEpKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBicmVhazsKKyAgICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gMTsKK30KIAogLyogeWllbGRfc3RtdDogeWllbGRfZXhwcgogICovCkBAIC0yMTQ2LDE2ICsyMTc2LDE2IEBACiAgICAgICAgICAqLwogICAgICAgICB0cmVlID0gQ0hJTEQodHJlZSwgMCk7CiAgICAgICAgIHN3aXRjaCAoVFlQRSh0cmVlKSkgewotICAgICAgICAgICAgY2FzZSBMRVNTOgotICAgICAgICAgICAgY2FzZSBHUkVBVEVSOgotICAgICAgICAgICAgY2FzZSBFUUVRVUFMOgotICAgICAgICAgICAgY2FzZSBFUVVBTDoKLSAgICAgICAgICAgIGNhc2UgTEVTU0VRVUFMOgotICAgICAgICAgICAgY2FzZSBHUkVBVEVSRVFVQUw6Ci0gICAgICAgICAgICBjYXNlIE5PVEVRVUFMOgorICAgICAgICAgIGNhc2UgTEVTUzoKKyAgICAgICAgICBjYXNlIEdSRUFURVI6CisgICAgICAgICAgY2FzZSBFUUVRVUFMOgorICAgICAgICAgIGNhc2UgRVFVQUw6CisgICAgICAgICAgY2FzZSBMRVNTRVFVQUw6CisgICAgICAgICAgY2FzZSBHUkVBVEVSRVFVQUw6CisgICAgICAgICAgY2FzZSBOT1RFUVVBTDoKICAgICAgICAgICAgICAgcmVzID0gMTsKICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIE5BTUU6CisgICAgICAgICAgY2FzZSBOQU1FOgogICAgICAgICAgICAgICByZXMgPSAoKHN0cmNtcChTVFIodHJlZSksICJpbiIpID09IDApCiAgICAgICAgICAgICAgICAgICAgICB8fCAoc3RyY21wKFNUUih0cmVlKSwgImlzIikgPT0gMCkpOwogICAgICAgICAgICAgICBpZiAoIXJlcykgewpAQCAtMjcwMCw5ICsyNzMwLDkgQEAKIHsKICAgICBpbnQgbmNoID0gTkNIKHRyZWUpOwogICAgIGludCByZXMgPSAodmFsaWRhdGVfbnR5cGUodHJlZSwgYXJndW1lbnQpCi0gICAgICAgICAgICAgICAmJiAoKG5jaCA9PSAxKSB8fCAobmNoID09IDIpIHx8IChuY2ggPT0gMykpCi0gICAgICAgICAgICAgICAmJiB2YWxpZGF0ZV90ZXN0KENISUxEKHRyZWUsIDApKSk7Ci0KKyAgICAgICAgICAgICAgICYmICgobmNoID09IDEpIHx8IChuY2ggPT0gMikgfHwgKG5jaCA9PSAzKSkpOworICAgIGlmIChyZXMpIAorICAgICAgICByZXMgPSB2YWxpZGF0ZV90ZXN0KENISUxEKHRyZWUsIDApKTsKICAgICBpZiAocmVzICYmIChuY2ggPT0gMikpCiAgICAgICAgIHJlcyA9IHZhbGlkYXRlX2NvbXBfZm9yKENISUxEKHRyZWUsIDEpKTsKICAgICBlbHNlIGlmIChyZXMgJiYgKG5jaCA9PSAzKSkKQEAgLTMzMzcsMTAgKzMzNjcsMTMgQEAKICAgICBjb3B5cmVnID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlTm9CbG9jaygiY29weXJlZyIpOwogICAgIGlmIChjb3B5cmVnICE9IE5VTEwpIHsKICAgICAgICAgUHlPYmplY3QgKmZ1bmMsICpwaWNrbGVyOworICAgICAgICBfUHlfSURFTlRJRklFUihwaWNrbGUpOworICAgICAgICBfUHlfSURFTlRJRklFUihzZXF1ZW5jZTJzdCk7CisgICAgICAgIF9QeV9JREVOVElGSUVSKF9waWNrbGVyKTsKIAotICAgICAgICBmdW5jID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhjb3B5cmVnLCAicGlja2xlIik7Ci0gICAgICAgIHBpY2tsZV9jb25zdHJ1Y3RvciA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcobW9kdWxlLCAic2VxdWVuY2Uyc3QiKTsKLSAgICAgICAgcGlja2xlciA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcobW9kdWxlLCAiX3BpY2tsZXIiKTsKKyAgICAgICAgZnVuYyA9IF9QeU9iamVjdF9HZXRBdHRySWQoY29weXJlZywgJlB5SWRfcGlja2xlKTsKKyAgICAgICAgcGlja2xlX2NvbnN0cnVjdG9yID0gX1B5T2JqZWN0X0dldEF0dHJJZChtb2R1bGUsICZQeUlkX3NlcXVlbmNlMnN0KTsKKyAgICAgICAgcGlja2xlciA9IF9QeU9iamVjdF9HZXRBdHRySWQobW9kdWxlLCAmUHlJZF9fcGlja2xlcik7CiAgICAgICAgIFB5X1hJTkNSRUYocGlja2xlX2NvbnN0cnVjdG9yKTsKICAgICAgICAgaWYgKChmdW5jICE9IE5VTEwpICYmIChwaWNrbGVfY29uc3RydWN0b3IgIT0gTlVMTCkKICAgICAgICAgICAgICYmIChwaWNrbGVyICE9IE5VTEwpKSB7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL3Bvc2l4bW9kdWxlLmMgYi9Nb2R1bGVzL3Bvc2l4bW9kdWxlLmMKaW5kZXggOWY1NzY3My4uYjk5YTVmZSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9wb3NpeG1vZHVsZS5jCisrKyBiL01vZHVsZXMvcG9zaXhtb2R1bGUuYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlB5dGhvbi5oIgogCiAjaWYgZGVmaW5lZChfX1ZNUykKKyMgICAgZXJyb3IgIlBFUCAxMTogVk1TIGlzIG5vdyB1bnN1cHBvcnRlZCwgY29kZSB3aWxsIGJlIHJlbW92ZWQgaW4gUHl0aG9uIDMuNCIKICMgICAgaW5jbHVkZSA8dW5peGlvLmg+CiAjZW5kaWYgLyogZGVmaW5lZChfX1ZNUykgKi8KIApAQCAtNDMsNiArNDQsNyBAQAogCiAKICNpZiBkZWZpbmVkKFBZT1NfT1MyKQorI2Vycm9yICJQRVAgMTE6IE9TLzIgaXMgbm93IHVuc3VwcG9ydGVkLCBjb2RlIHdpbGwgYmUgcmVtb3ZlZCBpbiBQeXRob24gMy40IgogI2RlZmluZSAgSU5DTF9ET1MKICNkZWZpbmUgIElOQ0xfRE9TRVJST1JTCiAjZGVmaW5lICBJTkNMX0RPU1BST0NFU1MKQEAgLTU3LDYgKzU5LDEwIEBACiAjaW5jbHVkZSAib3NkZWZzLmgiCiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfU1lTX1VJT19ICisjaW5jbHVkZSA8c3lzL3Vpby5oPgorI2VuZGlmCisKICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjZW5kaWYgLyogSEFWRV9TWVNfVFlQRVNfSCAqLwpAQCAtOTMsNiArOTksNDggQEAKICNpbmNsdWRlIDxsYW5naW5mby5oPgogI2VuZGlmCiAKKyNpZmRlZiBIQVZFX1NZU19TRU5ERklMRV9ICisjaW5jbHVkZSA8c3lzL3NlbmRmaWxlLmg+CisjZW5kaWYKKworI2lmZGVmIEhBVkVfU0NIRURfSAorI2luY2x1ZGUgPHNjaGVkLmg+CisjZW5kaWYKKworI2lmICFkZWZpbmVkKENQVV9BTExPQykgJiYgZGVmaW5lZChIQVZFX1NDSEVEX1NFVEFGRklOSVRZKQorI3VuZGVmIEhBVkVfU0NIRURfU0VUQUZGSU5JVFkKKyNlbmRpZgorCisjaWYgZGVmaW5lZChIQVZFX1NZU19YQVRUUl9IKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyNkZWZpbmUgVVNFX1hBVFRSUworI2VuZGlmCisKKyNpZmRlZiBVU0VfWEFUVFJTCisjaW5jbHVkZSA8c3lzL3hhdHRyLmg+CisjZW5kaWYKKworI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykgfHwgZGVmaW5lZChfX0FQUExFX18pCisjaWZkZWYgSEFWRV9TWVNfU09DS0VUX0gKKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjZW5kaWYKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9ETEZDTl9ICisjaW5jbHVkZSA8ZGxmY24uaD4KKyNlbmRpZgorCisjaWYgZGVmaW5lZChNU19XSU5ET1dTKQorIyAgZGVmaW5lIFRFUk1TSVpFX1VTRV9DT05JTworI2VsaWYgZGVmaW5lZChIQVZFX1NZU19JT0NUTF9IKQorIyAgaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjICBpZiBkZWZpbmVkKEhBVkVfVEVSTUlPU19IKQorIyAgICBpbmNsdWRlIDx0ZXJtaW9zLmg+CisjICBlbmRpZgorIyAgaWYgZGVmaW5lZChUSU9DR1dJTlNaKQorIyAgICBkZWZpbmUgVEVSTVNJWkVfVVNFX0lPQ1RMCisjICBlbmRpZgorI2VuZGlmIC8qIE1TX1dJTkRPV1MgKi8KKwogLyogVmFyaW91cyBjb21waWxlcnMgaGF2ZSBvbmx5IGNlcnRhaW4gcG9zaXggZnVuY3Rpb25zICovCiAvKiBYWFggR29zaCBJIHdpc2ggdGhlc2Ugd2VyZSBhbGwgbW92ZWQgaW50byBweWNvbmZpZy5oICovCiAjaWYgZGVmaW5lZChQWUNDX1ZBQ1BQKSAmJiBkZWZpbmVkKFBZT1NfT1MyKQpAQCAtMTU1LDYgKzIwMyw5IEBACiAjZW5kaWYgIC8qICEgX19XQVRDT01DX18gfHwgX19RTlhfXyAqLwogI2VuZGlmIC8qICEgX19JQk1DX18gKi8KIAorCisKKwogI2lmbmRlZiBfTVNDX1ZFUgogCiAjaWYgZGVmaW5lZChfX3NnaSkmJl9DT01QSUxFUl9WRVJTSU9OPj03MDAKQEAgLTMyOCwxMCArMzc5LDEyIEBACiAjdW5kZWYgU1RSVUNUX1NUQVQKICNpZiBkZWZpbmVkKE1TX1dJTjY0KSB8fCBkZWZpbmVkKE1TX1dJTkRPV1MpCiAjICAgICAgIGRlZmluZSBTVEFUIHdpbjMyX3N0YXQKKyMgICAgICAgZGVmaW5lIExTVEFUIHdpbjMyX2xzdGF0CiAjICAgICAgIGRlZmluZSBGU1RBVCB3aW4zMl9mc3RhdAogIyAgICAgICBkZWZpbmUgU1RSVUNUX1NUQVQgc3RydWN0IHdpbjMyX3N0YXQKICNlbHNlCiAjICAgICAgIGRlZmluZSBTVEFUIHN0YXQKKyMgICAgICAgZGVmaW5lIExTVEFUIGxzdGF0CiAjICAgICAgIGRlZmluZSBGU1RBVCBmc3RhdAogIyAgICAgICBkZWZpbmUgU1RSVUNUX1NUQVQgc3RydWN0IHN0YXQKICNlbmRpZgpAQCAtMzQ3LDYgKzQwMCwzOTUgQEAKICNlbmRpZgogI2VuZGlmCiAKKworI2lmZGVmIE1TX1dJTkRPV1MKK3N0YXRpYyBpbnQKK3dpbjMyX3dhcm5fYnl0ZXNfYXBpKCkKK3sKKyAgICByZXR1cm4gUHlFcnJfV2FybkV4KFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgIlRoZSBXaW5kb3dzIGJ5dGVzIEFQSSBoYXMgYmVlbiBkZXByZWNhdGVkLCAiCisgICAgICAgICJ1c2UgVW5pY29kZSBmaWxlbmFtZXMgaW5zdGVhZCIsCisgICAgICAgIDEpOworfQorI2VuZGlmCisKKworI2lmZGVmIEFUX0ZEQ1dECisjZGVmaW5lIERFRkFVTFRfRElSX0ZEIEFUX0ZEQ1dECisjZWxzZQorI2RlZmluZSBERUZBVUxUX0RJUl9GRCAoLTEwMCkKKyNlbmRpZgorCitzdGF0aWMgaW50CitfZmRfY29udmVydGVyKFB5T2JqZWN0ICpvLCBpbnQgKnAsIGludCBkZWZhdWx0X3ZhbHVlKSB7CisgICAgbG9uZyBsb25nX3ZhbHVlOworICAgIGlmIChvID09IFB5X05vbmUpIHsKKyAgICAgICAgKnAgPSBkZWZhdWx0X3ZhbHVlOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgaWYgKFB5RmxvYXRfQ2hlY2sobykpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpbnRlZ2VyIGFyZ3VtZW50IGV4cGVjdGVkLCBnb3QgZmxvYXQiICk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBsb25nX3ZhbHVlID0gUHlMb25nX0FzTG9uZyhvKTsKKyAgICBpZiAobG9uZ192YWx1ZSA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAobG9uZ192YWx1ZSA+IElOVF9NQVgpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmVkIGludGVnZXIgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0iKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmIChsb25nX3ZhbHVlIDwgSU5UX01JTikgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJzaWduZWQgaW50ZWdlciBpcyBsZXNzIHRoYW4gbWluaW11bSIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgKnAgPSAoaW50KWxvbmdfdmFsdWU7CisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK2Rpcl9mZF9jb252ZXJ0ZXIoUHlPYmplY3QgKm8sIHZvaWQgKnApIHsKKyAgICByZXR1cm4gX2ZkX2NvbnZlcnRlcihvLCAoaW50ICopcCwgREVGQVVMVF9ESVJfRkQpOworfQorCisKKworLyoKKyAqIEEgUHlBcmdfUGFyc2VUdXBsZSAiY29udmVydGVyIiBmdW5jdGlvbgorICogdGhhdCBoYW5kbGVzIGZpbGVzeXN0ZW0gcGF0aHMgaW4gdGhlIG1hbm5lcgorICogcHJlZmVycmVkIGJ5IHRoZSBvcyBtb2R1bGUuCisgKgorICogcGF0aF9jb252ZXJ0ZXIgYWNjZXB0cyAoVW5pY29kZSkgc3RyaW5ncyBhbmQgdGhlaXIKKyAqIHN1YmNsYXNzZXMsIGFuZCBieXRlcyBhbmQgdGhlaXIgc3ViY2xhc3Nlcy4gIFdoYXQKKyAqIGl0IGRvZXMgd2l0aCB0aGUgYXJndW1lbnQgZGVwZW5kcyBvbiB0aGUgcGxhdGZvcm06CisgKgorICogICAqIE9uIFdpbmRvd3MsIGlmIHdlIGdldCBhIChVbmljb2RlKSBzdHJpbmcgd2UKKyAqICAgICBleHRyYWN0IHRoZSB3Y2hhcl90ICogYW5kIHJldHVybiBpdDsgaWYgd2UgZ2V0CisgKiAgICAgYnl0ZXMgd2UgZXh0cmFjdCB0aGUgY2hhciAqIGFuZCByZXR1cm4gdGhhdC4KKyAqCisgKiAgICogT24gYWxsIG90aGVyIHBsYXRmb3Jtcywgc3RyaW5ncyBhcmUgZW5jb2RlZAorICogICAgIHRvIGJ5dGVzIHVzaW5nIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgdGhlbiB3ZQorICogICAgIGV4dHJhY3QgdGhlIGNoYXIgKiBmcm9tIHRoZSBieXRlcyBvYmplY3QgYW5kCisgKiAgICAgcmV0dXJuIHRoYXQuCisgKgorICogcGF0aF9jb252ZXJ0ZXIgYWxzbyBvcHRpb25hbGx5IGFjY2VwdHMgc2lnbmVkCisgKiBpbnRlZ2VycyAocmVwcmVzZW50aW5nIG9wZW4gZmlsZSBkZXNjcmlwdG9ycykgaW5zdGVhZAorICogb2YgcGF0aCBzdHJpbmdzLgorICoKKyAqIElucHV0IGZpZWxkczoKKyAqICAgcGF0aC5udWxsYWJsZQorICogICAgIElmIG5vbnplcm8sIHRoZSBwYXRoIGlzIHBlcm1pdHRlZCB0byBiZSBOb25lLgorICogICBwYXRoLmFsbG93X2ZkCisgKiAgICAgSWYgbm9uemVybywgdGhlIHBhdGggaXMgcGVybWl0dGVkIHRvIGJlIGEgZmlsZSBoYW5kbGUKKyAqICAgICAoYSBzaWduZWQgaW50KSBpbnN0ZWFkIG9mIGEgc3RyaW5nLgorICogICBwYXRoLmZ1bmN0aW9uX25hbWUKKyAqICAgICBJZiBub24tTlVMTCwgcGF0aF9jb252ZXJ0ZXIgd2lsbCB1c2UgdGhhdCBhcyB0aGUgbmFtZQorICogICAgIG9mIHRoZSBmdW5jdGlvbiBpbiBlcnJvciBtZXNzYWdlcy4KKyAqICAgICAoSWYgcGF0aC5hcmd1bWVudF9uYW1lIGlzIE5VTEwgaXQgb21pdHMgdGhlIGZ1bmN0aW9uIG5hbWUuKQorICogICBwYXRoLmFyZ3VtZW50X25hbWUKKyAqICAgICBJZiBub24tTlVMTCwgcGF0aF9jb252ZXJ0ZXIgd2lsbCB1c2UgdGhhdCBhcyB0aGUgbmFtZQorICogICAgIG9mIHRoZSBwYXJhbWV0ZXIgaW4gZXJyb3IgbWVzc2FnZXMuCisgKiAgICAgKElmIHBhdGguYXJndW1lbnRfbmFtZSBpcyBOVUxMIGl0IHVzZXMgInBhdGgiLikKKyAqCisgKiBPdXRwdXQgZmllbGRzOgorICogICBwYXRoLndpZGUKKyAqICAgICBQb2ludHMgdG8gdGhlIHBhdGggaWYgaXQgd2FzIGV4cHJlc3NlZCBhcyBVbmljb2RlCisgKiAgICAgYW5kIHdhcyBub3QgZW5jb2RlZC4gIChPbmx5IHVzZWQgb24gV2luZG93cy4pCisgKiAgIHBhdGgubmFycm93CisgKiAgICAgUG9pbnRzIHRvIHRoZSBwYXRoIGlmIGl0IHdhcyBleHByZXNzZWQgYXMgYnl0ZXMsCisgKiAgICAgb3IgaXQgd2FzIFVuaWNvZGUgYW5kIHdhcyBlbmNvZGVkIHRvIGJ5dGVzLgorICogICBwYXRoLmZkCisgKiAgICAgQ29udGFpbnMgYSBmaWxlIGRlc2NyaXB0b3IgaWYgcGF0aC5hY2NlcHRfZmQgd2FzIHRydWUKKyAqICAgICBhbmQgdGhlIGNhbGxlciBwcm92aWRlZCBhIHNpZ25lZCBpbnRlZ2VyIGluc3RlYWQgb2YgYW55CisgKiAgICAgc29ydCBvZiBzdHJpbmcuCisgKgorICogICAgIFdBUk5JTkc6IGlmIHlvdXIgInBhdGgiIHBhcmFtZXRlciBpcyBvcHRpb25hbCwgYW5kIGlzCisgKiAgICAgdW5zcGVjaWZpZWQsIHBhdGhfY29udmVydGVyIHdpbGwgbmV2ZXIgZ2V0IGNhbGxlZC4KKyAqICAgICBTbyBpZiB5b3Ugc2V0IGFsbG93X2ZkLCB5b3UgKk1VU1QqIGluaXRpYWxpemUgcGF0aC5mZCA9IC0xCisgKiAgICAgeW91cnNlbGYhCisgKiAgIHBhdGgubGVuZ3RoCisgKiAgICAgVGhlIGxlbmd0aCBvZiB0aGUgcGF0aCBpbiBjaGFyYWN0ZXJzLCBpZiBzcGVjaWZpZWQgYXMKKyAqICAgICBhIHN0cmluZy4KKyAqICAgcGF0aC5vYmplY3QKKyAqICAgICBUaGUgb3JpZ2luYWwgb2JqZWN0IHBhc3NlZCBpbi4KKyAqICAgcGF0aC5jbGVhbnVwCisgKiAgICAgRm9yIGludGVybmFsIHVzZSBvbmx5LiAgTWF5IHBvaW50IHRvIGEgdGVtcG9yYXJ5IG9iamVjdC4KKyAqICAgICAoUGF5IG5vIGF0dGVudGlvbiB0byB0aGUgbWFuIGJlaGluZCB0aGUgY3VydGFpbi4pCisgKgorICogICBBdCBtb3N0IG9uZSBvZiBwYXRoLndpZGUgb3IgcGF0aC5uYXJyb3cgd2lsbCBiZSBub24tTlVMTC4KKyAqICAgSWYgcGF0aCB3YXMgTm9uZSBhbmQgcGF0aC5udWxsYWJsZSB3YXMgc2V0LAorICogICAgIG9yIGlmIHBhdGggd2FzIGFuIGludGVnZXIgYW5kIHBhdGguYWxsb3dfZmQgd2FzIHNldCwKKyAqICAgICBib3RoIHBhdGgud2lkZSBhbmQgcGF0aC5uYXJyb3cgd2lsbCBiZSBOVUxMCisgKiAgICAgYW5kIHBhdGgubGVuZ3RoIHdpbGwgYmUgMC4KKyAqCisgKiAgIHBhdGhfY29udmVydGVyIHRha2VzIGNhcmUgdG8gbm90IHdyaXRlIHRvIHRoZSBwYXRoX3QKKyAqICAgdW5sZXNzIGl0J3Mgc3VjY2Vzc2Z1bC4gIEhvd2V2ZXIgaXQgbXVzdCByZXNldCB0aGUKKyAqICAgImNsZWFudXAiIGZpZWxkIGVhY2ggdGltZSBpdCdzIGNhbGxlZC4KKyAqCisgKiBVc2UgYXMgZm9sbG93czoKKyAqICAgICAgcGF0aF90IHBhdGg7CisgKiAgICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAqICAgICAgUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyYiLCBwYXRoX2NvbnZlcnRlciwgJnBhdGgpOworICogICAgICAvLyAuLi4gdXNlIHZhbHVlcyBmcm9tIHBhdGggLi4uCisgKiAgICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisgKgorICogKE5vdGUgdGhhdCBpZiBQeUFyZ19QYXJzZSBmYWlscyB5b3UgZG9uJ3QgbmVlZCB0byBjYWxsCisgKiBwYXRoX2NsZWFudXAoKS4gIEhvd2V2ZXIgaXQgaXMgc2FmZSB0byBkbyBzby4pCisgKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgICBjaGFyICpmdW5jdGlvbl9uYW1lOworICAgIGNoYXIgKmFyZ3VtZW50X25hbWU7CisgICAgaW50IG51bGxhYmxlOworICAgIGludCBhbGxvd19mZDsKKyAgICB3Y2hhcl90ICp3aWRlOworICAgIGNoYXIgKm5hcnJvdzsKKyAgICBpbnQgZmQ7CisgICAgUHlfc3NpemVfdCBsZW5ndGg7CisgICAgUHlPYmplY3QgKm9iamVjdDsKKyAgICBQeU9iamVjdCAqY2xlYW51cDsKK30gcGF0aF90OworCitzdGF0aWMgdm9pZAorcGF0aF9jbGVhbnVwKHBhdGhfdCAqcGF0aCkgeworICAgIGlmIChwYXRoLT5jbGVhbnVwKSB7CisgICAgICAgIFB5X0RFQ1JFRihwYXRoLT5jbGVhbnVwKTsKKyAgICAgICAgcGF0aC0+Y2xlYW51cCA9IE5VTEw7CisgICAgfQorfQorCitzdGF0aWMgaW50CitwYXRoX2NvbnZlcnRlcihQeU9iamVjdCAqbywgdm9pZCAqcCkgeworICAgIHBhdGhfdCAqcGF0aCA9IChwYXRoX3QgKilwOworICAgIFB5T2JqZWN0ICp1bmljb2RlLCAqYnl0ZXM7CisgICAgUHlfc3NpemVfdCBsZW5ndGg7CisgICAgY2hhciAqbmFycm93OworCisjZGVmaW5lIEZPUk1BVF9FWENFUFRJT04oZXhjLCBmbXQpIFwKKyAgICBQeUVycl9Gb3JtYXQoZXhjLCAiJXMlcyIgZm10LCBcCisgICAgICAgIHBhdGgtPmZ1bmN0aW9uX25hbWUgPyBwYXRoLT5mdW5jdGlvbl9uYW1lIDogIiIsIFwKKyAgICAgICAgcGF0aC0+ZnVuY3Rpb25fbmFtZSA/ICI6ICIgICAgICAgICAgICAgICAgOiAiIiwgXAorICAgICAgICBwYXRoLT5hcmd1bWVudF9uYW1lID8gcGF0aC0+YXJndW1lbnRfbmFtZSA6ICJwYXRoIikKKworICAgIC8qIFB5X0NMRUFOVVBfU1VQUE9SVEVEIHN1cHBvcnQgKi8KKyAgICBpZiAobyA9PSBOVUxMKSB7CisgICAgICAgIHBhdGhfY2xlYW51cChwYXRoKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgLyogZW5zdXJlIGl0J3MgYWx3YXlzIHNhZmUgdG8gY2FsbCBwYXRoX2NsZWFudXAoKSAqLworICAgIHBhdGgtPmNsZWFudXAgPSBOVUxMOworCisgICAgaWYgKG8gPT0gUHlfTm9uZSkgeworICAgICAgICBpZiAoIXBhdGgtPm51bGxhYmxlKSB7CisgICAgICAgICAgICBGT1JNQVRfRVhDRVBUSU9OKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhbid0IHNwZWNpZnkgTm9uZSBmb3IgJXMgYXJndW1lbnQiKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHBhdGgtPndpZGUgPSBOVUxMOworICAgICAgICBwYXRoLT5uYXJyb3cgPSBOVUxMOworICAgICAgICBwYXRoLT5sZW5ndGggPSAwOworICAgICAgICBwYXRoLT5vYmplY3QgPSBvOworICAgICAgICBwYXRoLT5mZCA9IC0xOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICB1bmljb2RlID0gUHlVbmljb2RlX0Zyb21PYmplY3Qobyk7CisgICAgaWYgKHVuaWNvZGUpIHsKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgICAgIHdjaGFyX3QgKndpZGU7CisgICAgICAgIGxlbmd0aCA9IFB5VW5pY29kZV9HRVRfU0laRSh1bmljb2RlKTsKKyAgICAgICAgaWYgKGxlbmd0aCA+IDMyNzY3KSB7CisgICAgICAgICAgICBGT1JNQVRfRVhDRVBUSU9OKFB5RXhjX1ZhbHVlRXJyb3IsICIlcyB0b28gbG9uZyBmb3IgV2luZG93cyIpOworICAgICAgICAgICAgUHlfREVDUkVGKHVuaWNvZGUpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICB3aWRlID0gUHlVbmljb2RlX0FzVW5pY29kZSh1bmljb2RlKTsKKyAgICAgICAgaWYgKCF3aWRlKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYodW5pY29kZSk7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorCisgICAgICAgIHBhdGgtPndpZGUgPSB3aWRlOworICAgICAgICBwYXRoLT5uYXJyb3cgPSBOVUxMOworICAgICAgICBwYXRoLT5sZW5ndGggPSBsZW5ndGg7CisgICAgICAgIHBhdGgtPm9iamVjdCA9IG87CisgICAgICAgIHBhdGgtPmZkID0gLTE7CisgICAgICAgIHBhdGgtPmNsZWFudXAgPSB1bmljb2RlOworICAgICAgICByZXR1cm4gUHlfQ0xFQU5VUF9TVVBQT1JURUQ7CisjZWxzZQorICAgICAgICBpbnQgY29udmVydGVkID0gUHlVbmljb2RlX0ZTQ29udmVydGVyKHVuaWNvZGUsICZieXRlcyk7CisgICAgICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICAgICAgaWYgKCFjb252ZXJ0ZWQpCisgICAgICAgICAgICBieXRlcyA9IE5VTEw7CisjZW5kaWYKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgICAgIGJ5dGVzID0gUHlCeXRlc19Gcm9tT2JqZWN0KG8pOworICAgICAgICBpZiAoIWJ5dGVzKSB7CisgICAgICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICAgICAgaWYgKHBhdGgtPmFsbG93X2ZkKSB7CisgICAgICAgICAgICAgICAgaW50IGZkOworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogbm90ZTogX2ZkX2NvbnZlcnRlciBhbHdheXMgcGVybWl0cyBOb25lLgorICAgICAgICAgICAgICAgICAqIGJ1dCB3ZSd2ZSBhbHJlYWR5IGRvbmUgb3VyIE5vbmUgY2hlY2suCisgICAgICAgICAgICAgICAgICogc28gbyBjYW5ub3QgYmUgTm9uZSBhdCB0aGlzIHBvaW50LgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIGludCByZXN1bHQgPSBfZmRfY29udmVydGVyKG8sICZmZCwgLTEpOworICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgcGF0aC0+d2lkZSA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgIHBhdGgtPm5hcnJvdyA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgIHBhdGgtPmxlbmd0aCA9IDA7CisgICAgICAgICAgICAgICAgICAgIHBhdGgtPm9iamVjdCA9IG87CisgICAgICAgICAgICAgICAgICAgIHBhdGgtPmZkID0gZmQ7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgaWYgKCFieXRlcykgeworICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBGT1JNQVRfRVhDRVBUSU9OKFB5RXhjX1R5cGVFcnJvciwgImlsbGVnYWwgdHlwZSBmb3IgJXMgcGFyYW1ldGVyIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBpZiAod2luMzJfd2Fybl9ieXRlc19hcGkoKSkgeworICAgICAgICBQeV9ERUNSRUYoYnl0ZXMpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisjZW5kaWYKKworICAgIGxlbmd0aCA9IFB5Qnl0ZXNfR0VUX1NJWkUoYnl0ZXMpOworI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBpZiAobGVuZ3RoID4gTUFYX1BBVEgpIHsKKyAgICAgICAgRk9STUFUX0VYQ0VQVElPTihQeUV4Y19WYWx1ZUVycm9yLCAiJXMgdG9vIGxvbmcgZm9yIFdpbmRvd3MiKTsKKyAgICAgICAgUHlfREVDUkVGKGJ5dGVzKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmCisKKyAgICBuYXJyb3cgPSBQeUJ5dGVzX0FTX1NUUklORyhieXRlcyk7CisgICAgaWYgKGxlbmd0aCAhPSBzdHJsZW4obmFycm93KSkgeworICAgICAgICBGT1JNQVRfRVhDRVBUSU9OKFB5RXhjX1ZhbHVlRXJyb3IsICJlbWJlZGRlZCBOVUwgY2hhcmFjdGVyIGluICVzIik7CisgICAgICAgIFB5X0RFQ1JFRihieXRlcyk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHBhdGgtPndpZGUgPSBOVUxMOworICAgIHBhdGgtPm5hcnJvdyA9IG5hcnJvdzsKKyAgICBwYXRoLT5sZW5ndGggPSBsZW5ndGg7CisgICAgcGF0aC0+b2JqZWN0ID0gbzsKKyAgICBwYXRoLT5mZCA9IC0xOworICAgIHBhdGgtPmNsZWFudXAgPSBieXRlczsKKyAgICByZXR1cm4gUHlfQ0xFQU5VUF9TVVBQT1JURUQ7Cit9CisKK3N0YXRpYyB2b2lkCithcmd1bWVudF91bmF2YWlsYWJsZV9lcnJvcihjaGFyICpmdW5jdGlvbl9uYW1lLCBjaGFyICphcmd1bWVudF9uYW1lKSB7CisgICAgUHlFcnJfRm9ybWF0KFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3IsCisgICAgICAgICIlcyVzJXMgdW5hdmFpbGFibGUgb24gdGhpcyBwbGF0Zm9ybSIsCisgICAgICAgIChmdW5jdGlvbl9uYW1lICE9IE5VTEwpID8gZnVuY3Rpb25fbmFtZSA6ICIiLAorICAgICAgICAoZnVuY3Rpb25fbmFtZSAhPSBOVUxMKSA/ICI6ICI6ICIiLAorICAgICAgICBhcmd1bWVudF9uYW1lKTsKK30KKworc3RhdGljIGludAorZGlyX2ZkX3VuYXZhaWxhYmxlKFB5T2JqZWN0ICpvLCB2b2lkICpwKSB7CisgICAgaW50ICpkaXJfZmQgPSAoaW50ICopcDsKKyAgICBpbnQgcmV0dXJuX3ZhbHVlID0gX2ZkX2NvbnZlcnRlcihvLCBkaXJfZmQsIERFRkFVTFRfRElSX0ZEKTsKKyAgICBpZiAoIXJldHVybl92YWx1ZSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCpkaXJfZmQgPT0gREVGQVVMVF9ESVJfRkQpCisgICAgICAgIHJldHVybiAxOworICAgIGFyZ3VtZW50X3VuYXZhaWxhYmxlX2Vycm9yKE5VTEwsICJkaXJfZmQiKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorZmRfc3BlY2lmaWVkKGNoYXIgKmZ1bmN0aW9uX25hbWUsIGludCBmZCkgeworICAgIGlmIChmZCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhcmd1bWVudF91bmF2YWlsYWJsZV9lcnJvcihmdW5jdGlvbl9uYW1lLCAiZmQiKTsKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGludAorZm9sbG93X3N5bWxpbmtzX3NwZWNpZmllZChjaGFyICpmdW5jdGlvbl9uYW1lLCBpbnQgZm9sbG93X3N5bWxpbmtzKSB7CisgICAgaWYgKGZvbGxvd19zeW1saW5rcykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBhcmd1bWVudF91bmF2YWlsYWJsZV9lcnJvcihmdW5jdGlvbl9uYW1lLCAiZm9sbG93X3N5bWxpbmtzIik7CisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK3BhdGhfYW5kX2Rpcl9mZF9pbnZhbGlkKGNoYXIgKmZ1bmN0aW9uX25hbWUsIHBhdGhfdCAqcGF0aCwgaW50IGRpcl9mZCkgeworICAgIGlmICghcGF0aC0+bmFycm93ICYmICFwYXRoLT53aWRlICYmIChkaXJfZmQgIT0gREVGQVVMVF9ESVJfRkQpKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIiVzOiBjYW4ndCBzcGVjaWZ5IGRpcl9mZCB3aXRob3V0IG1hdGNoaW5nIHBhdGgiLAorICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fbmFtZSk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorZGlyX2ZkX2FuZF9mZF9pbnZhbGlkKGNoYXIgKmZ1bmN0aW9uX25hbWUsIGludCBkaXJfZmQsIGludCBmZCkgeworICAgIGlmICgoZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKSAmJiAoZmQgIT0gLTEpKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIiVzOiBjYW4ndCBzcGVjaWZ5IGJvdGggZGlyX2ZkIGFuZCBmZCIsCisgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl9uYW1lKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CitmZF9hbmRfZm9sbG93X3N5bWxpbmtzX2ludmFsaWQoY2hhciAqZnVuY3Rpb25fbmFtZSwgaW50IGZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBmb2xsb3dfc3ltbGlua3MpIHsKKyAgICBpZiAoKGZkID4gMCkgJiYgKCFmb2xsb3dfc3ltbGlua3MpKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIiVzOiBjYW5ub3QgdXNlIGZkIGFuZCBmb2xsb3dfc3ltbGlua3MgdG9nZXRoZXIiLAorICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb25fbmFtZSk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorZGlyX2ZkX2FuZF9mb2xsb3dfc3ltbGlua3NfaW52YWxpZChjaGFyICpmdW5jdGlvbl9uYW1lLCBpbnQgZGlyX2ZkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZm9sbG93X3N5bWxpbmtzKSB7CisgICAgaWYgKChkaXJfZmQgIT0gREVGQVVMVF9ESVJfRkQpICYmICghZm9sbG93X3N5bWxpbmtzKSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICIlczogY2Fubm90IHVzZSBkaXJfZmQgYW5kIGZvbGxvd19zeW1saW5rcyB0b2dldGhlciIsCisgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbl9uYW1lKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisvKiBBIGhlbHBlciB1c2VkIGJ5IGEgbnVtYmVyIG9mIFBPU0lYLW9ubHkgZnVuY3Rpb25zICovCisjaWZuZGVmIE1TX1dJTkRPV1MKK3N0YXRpYyBpbnQKK19wYXJzZV9vZmZfdChQeU9iamVjdCogYXJnLCB2b2lkKiBhZGRyKQoreworI2lmICFkZWZpbmVkKEhBVkVfTEFSR0VGSUxFX1NVUFBPUlQpCisgICAgKigob2ZmX3QqKWFkZHIpID0gUHlMb25nX0FzTG9uZyhhcmcpOworI2Vsc2UKKyAgICAqKChvZmZfdCopYWRkcikgPSBQeUxvbmdfQXNMb25nTG9uZyhhcmcpOworI2VuZGlmCisgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiAxOworfQorI2VuZGlmCisKICNpZiBkZWZpbmVkIF9NU0NfVkVSICYmIF9NU0NfVkVSID49IDE0MDAKIC8qIE1pY3Jvc29mdCBDUlQgaW4gVlMyMDA1IGFuZCBoaWdoZXIgd2lsbCB2ZXJpZnkgdGhhdCBhIGZpbGVoYW5kbGUgaXMKICAqIHZhbGlkIGFuZCB0aHJvdyBhbiBhc3NlcnRpb24gaWYgaXQgaXNuJ3QuCkBAIC00OTgsNiArOTQwLDcgQEAKIAogICAgIHJldHVybiBUUlVFOwogfQorCiAjZW5kaWYgLyogTVNfV0lORE9XUyAqLwogCiAvKiBSZXR1cm4gYSBkaWN0aW9uYXJ5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIFBPU0lYIGVudmlyb25tZW50IHRhYmxlICovCkBAIC02NTMsNyArMTA5Niw3IEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCi13aW4zMl9lcnJvcl91bmljb2RlKGNoYXIqIGZ1bmN0aW9uLCBQeV9VTklDT0RFKiBmaWxlbmFtZSkKK3dpbjMyX2Vycm9yX3VuaWNvZGUoY2hhciogZnVuY3Rpb24sIHdjaGFyX3QqIGZpbGVuYW1lKQogewogICAgIC8qIFhYWCAtIHNlZSB3aW4zMl9lcnJvciBmb3IgY29tbWVudHMgb24gJ2Z1bmN0aW9uJyAqLwogICAgIGVycm5vID0gR2V0TGFzdEVycm9yKCk7CkBAIC02NjMsMjUgKzExMDYsNDggQEAKICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKGVycm5vKTsKIH0KIAotc3RhdGljIGludAotY29udmVydF90b191bmljb2RlKFB5T2JqZWN0ICoqcGFyYW0pCitzdGF0aWMgUHlPYmplY3QgKgord2luMzJfZXJyb3Jfb2JqZWN0KGNoYXIqIGZ1bmN0aW9uLCBQeU9iamVjdCogZmlsZW5hbWUpCiB7Ci0gICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KCpwYXJhbSkpCi0gICAgICAgIFB5X0lOQ1JFRigqcGFyYW0pOwotICAgIGVsc2UgaWYgKFB5VW5pY29kZV9DaGVjaygqcGFyYW0pKQotICAgICAgICAvKiBGb3IgYSBVbmljb2RlIHN1YnR5cGUgdGhhdCdzIG5vdCBhIFVuaWNvZGUgb2JqZWN0LAotICAgICAgICAgICByZXR1cm4gYSB0cnVlIFVuaWNvZGUgb2JqZWN0IHdpdGggdGhlIHNhbWUgZGF0YS4gKi8KLSAgICAgICAgKnBhcmFtID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKFB5VW5pY29kZV9BU19VTklDT0RFKCpwYXJhbSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoKnBhcmFtKSk7CisgICAgLyogWFhYIC0gc2VlIHdpbjMyX2Vycm9yIGZvciBjb21tZW50cyBvbiAnZnVuY3Rpb24nICovCisgICAgZXJybm8gPSBHZXRMYXN0RXJyb3IoKTsKKyAgICBpZiAoZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycldpdGhGaWxlbmFtZU9iamVjdCgKKyAgICAgICAgICAgICAgICAgICAgUHlFeGNfV2luZG93c0Vycm9yLAorICAgICAgICAgICAgICAgICAgICBlcnJubywKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUpOwogICAgIGVsc2UKLSAgICAgICAgKnBhcmFtID0gUHlVbmljb2RlX0Zyb21FbmNvZGVkT2JqZWN0KCpwYXJhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RyaWN0Iik7Ci0gICAgcmV0dXJuICgqcGFyYW0pICE9IE5VTEw7CisgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycihlcnJubyk7CiB9CiAKICNlbmRpZiAvKiBNU19XSU5ET1dTICovCiAKKy8qCisgKiBTb21lIGZ1bmN0aW9ucyByZXR1cm4gV2luMzIgZXJyb3JzLCBvdGhlcnMgb25seSBldmVyIHVzZSBwb3NpeF9lcnJvcgorICogKHRoaXMgaXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggZXhjZXB0aW9ucykKKyAqLworc3RhdGljIFB5T2JqZWN0ICoKK3BhdGhfcG9zaXhfZXJyb3IoY2hhciAqZnVuY3Rpb25fbmFtZSwgcGF0aF90ICpwYXRoKQoreworICAgIGlmIChwYXRoLT5uYXJyb3cpCisgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcl93aXRoX2ZpbGVuYW1lKHBhdGgtPm5hcnJvdyk7CisgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitwYXRoX2Vycm9yKGNoYXIgKmZ1bmN0aW9uX25hbWUsIHBhdGhfdCAqcGF0aCkKK3sKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgaWYgKHBhdGgtPm5hcnJvdykKKyAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yKGZ1bmN0aW9uX25hbWUsIHBhdGgtPm5hcnJvdyk7CisgICAgaWYgKHBhdGgtPndpZGUpCisgICAgICAgIHJldHVybiB3aW4zMl9lcnJvcl91bmljb2RlKGZ1bmN0aW9uX25hbWUsIHBhdGgtPndpZGUpOworICAgIHJldHVybiB3aW4zMl9lcnJvcihmdW5jdGlvbl9uYW1lLCBOVUxMKTsKKyNlbHNlCisgICAgcmV0dXJuIHBhdGhfcG9zaXhfZXJyb3IoZnVuY3Rpb25fbmFtZSwgcGF0aCk7CisjZW5kaWYKK30KKwogI2lmIGRlZmluZWQoUFlPU19PUzIpCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogICAgICAgICBIZWxwZXIgRnVuY3Rpb24gdG8gVHJpbSBhbmQgRm9ybWF0IE9TLzIgTWVzc2FnZXMKQEAgLTgwMCwzMiArMTI2Niw2IEBACiAgICAgcmV0dXJuIFB5X05vbmU7CiB9CiAKLXN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF8yc3RyKFB5T2JqZWN0ICphcmdzLAotICAgICAgICAgICBjaGFyICpmb3JtYXQsCi0gICAgICAgICAgIGludCAoKmZ1bmMpKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKSkKLXsKLSAgICBQeU9iamVjdCAqb3BhdGgxID0gTlVMTCwgKm9wYXRoMiA9IE5VTEw7Ci0gICAgY2hhciAqcGF0aDEsICpwYXRoMjsKLSAgICBpbnQgcmVzOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9wYXRoMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3BhdGgyKSkgewotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcGF0aDEgPSBQeUJ5dGVzX0FzU3RyaW5nKG9wYXRoMSk7Ci0gICAgcGF0aDIgPSBQeUJ5dGVzX0FzU3RyaW5nKG9wYXRoMik7Ci0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJlcyA9ICgqZnVuYykocGF0aDEsIHBhdGgyKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIFB5X0RFQ1JFRihvcGF0aDEpOwotICAgIFB5X0RFQ1JFRihvcGF0aDIpOwotICAgIGlmIChyZXMgIT0gMCkKLSAgICAgICAgLyogWFhYIGhvdyB0byByZXBvcnQgYm90aCBwYXRoMSBhbmQgcGF0aDI/Pz8gKi8KLSAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Ci0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOwotfQogCiAjaWZkZWYgTVNfV0lORE9XUwogc3RhdGljIFB5T2JqZWN0KgpAQCAtODM0LDIyICsxMjc0LDI4IEBACiAgICAgICAgICAgIGNoYXIqIHdmb3JtYXQsIEJPT0wgKF9fc3RkY2FsbCAqZnVuY1cpKExQV1NUUikpCiB7CiAgICAgUHlPYmplY3QgKnVuaTsKLSAgICBjaGFyICphbnNpOworICAgIGNvbnN0IGNoYXIgKmFuc2k7CiAgICAgQk9PTCByZXN1bHQ7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgd2Zvcm1hdCwgJnVuaSkpCi0gICAgICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgZWxzZSB7CisgICAgaWYgKFB5QXJnX1BhcnNlVHVwbGUoYXJncywgd2Zvcm1hdCwgJnVuaSkpCisgICAgeworICAgICAgICB3Y2hhcl90ICp3c3RyID0gUHlVbmljb2RlX0FzVW5pY29kZSh1bmkpOworICAgICAgICBpZiAod3N0ciA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgcmVzdWx0ID0gZnVuY1coUHlVbmljb2RlX0FzVW5pY29kZSh1bmkpKTsKKyAgICAgICAgcmVzdWx0ID0gZnVuY1cod3N0cik7CiAgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCiAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yX3VuaWNvZGUoZnVuYywgUHlVbmljb2RlX0FzVW5pY29kZSh1bmkpKTsKKyAgICAgICAgICAgIHJldHVybiB3aW4zMl9lcnJvcl9vYmplY3QoZnVuYywgdW5pKTsKICAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwogICAgICAgICByZXR1cm4gUHlfTm9uZTsKICAgICB9CisgICAgUHlFcnJfQ2xlYXIoKTsKKwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBmb3JtYXQsICZhbnNpKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKHdpbjMyX3dhcm5fYnl0ZXNfYXBpKCkpCisgICAgICAgIHJldHVybiBOVUxMOwogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICAgICByZXN1bHQgPSBmdW5jQShhbnNpKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwpAQCAtMTA2NCwxOCArMTUxMCwxOSBAQAogCiAvKiBHcmFiIEdldEZpbmFsUGF0aE5hbWVCeUhhbmRsZSBkeW5hbWljYWxseSBmcm9tIGtlcm5lbDMyICovCiBzdGF0aWMgaW50IGhhc19HZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGUgPSAwOwotc3RhdGljIERXT1JEIChDQUxMQkFDSyAqUHlfR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlQSkoSEFORExFLCBMUFNUUiwgRFdPUkQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEV09SRCk7CiBzdGF0aWMgRFdPUkQgKENBTExCQUNLICpQeV9HZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGVXKShIQU5ETEUsIExQV1NUUiwgRFdPUkQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEV09SRCk7CiBzdGF0aWMgaW50CiBjaGVja19HZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGUoKQogewogICAgIEhJTlNUQU5DRSBoS2VybmVsMzI7CisgICAgRFdPUkQgKENBTExCQUNLICpQeV9HZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGVBKShIQU5ETEUsIExQU1RSLCBEV09SRCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERXT1JEKTsKKwogICAgIC8qIG9ubHkgcmVjaGVjayAqLwogICAgIGlmICghaGFzX0dldEZpbmFsUGF0aE5hbWVCeUhhbmRsZSkKICAgICB7Ci0gICAgICAgIGhLZXJuZWwzMiA9IEdldE1vZHVsZUhhbmRsZSgiS0VSTkVMMzIiKTsKKyAgICAgICAgaEtlcm5lbDMyID0gR2V0TW9kdWxlSGFuZGxlVyhMIktFUk5FTDMyIik7CiAgICAgICAgICooRkFSUFJPQyopJlB5X0dldEZpbmFsUGF0aE5hbWVCeUhhbmRsZUEgPSBHZXRQcm9jQWRkcmVzcyhoS2VybmVsMzIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlQSIpOwogICAgICAgICAqKEZBUlBST0MqKSZQeV9HZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGVXID0gR2V0UHJvY0FkZHJlc3MoaEtlcm5lbDMyLApAQCAtMTM4Miw3ICsxODI5LDEwIEBACiAgICAgSEFORExFIGg7CiAgICAgaW50IHR5cGU7CiAKLSAgICBoID0gKEhBTkRMRSlfZ2V0X29zZmhhbmRsZShmaWxlX251bWJlcik7CisgICAgaWYgKCFfUHlWZXJpZnlfZmQoZmlsZV9udW1iZXIpKQorICAgICAgICBoID0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CisgICAgZWxzZQorICAgICAgICBoID0gKEhBTkRMRSlfZ2V0X29zZmhhbmRsZShmaWxlX251bWJlcik7CiAKICAgICAvKiBQcm90b2NvbCB2aW9sYXRpb246IHdlIGV4cGxpY2l0bHkgY2xlYXIgZXJybm8sIGluc3RlYWQgb2YKICAgICAgICBzZXR0aW5nIGl0IHRvIGEgUE9TSVggZXJyb3IuIENhbGxlcnMgc2hvdWxkIHVzZSBHZXRMYXN0RXJyb3IuICovCkBAIC0xNDI2LDcgKzE4NzYsNyBAQAogI2VuZGlmIC8qIE1TX1dJTkRPV1MgKi8KIAogUHlEb2NfU1RSVkFSKHN0YXRfcmVzdWx0X19kb2NfXywKLSJzdGF0X3Jlc3VsdDogUmVzdWx0IGZyb20gc3RhdCBvciBsc3RhdC5cblxuXAorInN0YXRfcmVzdWx0OiBSZXN1bHQgZnJvbSBzdGF0LCBmc3RhdCwgb3IgbHN0YXQuXG5cblwKIFRoaXMgb2JqZWN0IG1heSBiZSBhY2Nlc3NlZCBlaXRoZXIgYXMgYSB0dXBsZSBvZlxuXAogICAobW9kZSwgaW5vLCBkZXYsIG5saW5rLCB1aWQsIGdpZCwgc2l6ZSwgYXRpbWUsIG10aW1lLCBjdGltZSlcblwKIG9yIHZpYSB0aGUgYXR0cmlidXRlcyBzdF9tb2RlLCBzdF9pbm8sIHN0X2Rldiwgc3RfbmxpbmssIHN0X3VpZCwgYW5kIHNvIG9uLlxuXApAQCAtMTQ1MSw2ICsxOTAxLDkgQEAKICAgICB7InN0X2F0aW1lIiwgICAidGltZSBvZiBsYXN0IGFjY2VzcyJ9LAogICAgIHsic3RfbXRpbWUiLCAgICJ0aW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uIn0sCiAgICAgeyJzdF9jdGltZSIsICAgInRpbWUgb2YgbGFzdCBjaGFuZ2UifSwKKyAgICB7InN0X2F0aW1lX25zIiwgICAidGltZSBvZiBsYXN0IGFjY2VzcyBpbiBuYW5vc2Vjb25kcyJ9LAorICAgIHsic3RfbXRpbWVfbnMiLCAgICJ0aW1lIG9mIGxhc3QgbW9kaWZpY2F0aW9uIGluIG5hbm9zZWNvbmRzIn0sCisgICAgeyJzdF9jdGltZV9ucyIsICAgInRpbWUgb2YgbGFzdCBjaGFuZ2UgaW4gbmFub3NlY29uZHMifSwKICNpZmRlZiBIQVZFX1NUUlVDVF9TVEFUX1NUX0JMS1NJWkUKICAgICB7InN0X2Jsa3NpemUiLCAiYmxvY2tzaXplIGZvciBmaWxlc3lzdGVtIEkvTyJ9LAogI2VuZGlmCkBAIC0xNDczLDkgKzE5MjYsOSBAQAogfTsKIAogI2lmZGVmIEhBVkVfU1RSVUNUX1NUQVRfU1RfQkxLU0laRQotI2RlZmluZSBTVF9CTEtTSVpFX0lEWCAxMworI2RlZmluZSBTVF9CTEtTSVpFX0lEWCAxNgogI2Vsc2UKLSNkZWZpbmUgU1RfQkxLU0laRV9JRFggMTIKKyNkZWZpbmUgU1RfQkxLU0laRV9JRFggMTUKICNlbmRpZgogCiAjaWZkZWYgSEFWRV9TVFJVQ1RfU1RBVF9TVF9CTE9DS1MKQEAgLTE1NDQsOSArMTk5NywzOSBAQAogICAgIDEwCiB9OwogCisjaWYgZGVmaW5lZChIQVZFX1dBSVRJRCkgJiYgIWRlZmluZWQoX19BUFBMRV9fKQorUHlEb2NfU1RSVkFSKHdhaXRpZF9yZXN1bHRfX2RvY19fLAorIndhaXRpZF9yZXN1bHQ6IFJlc3VsdCBmcm9tIHdhaXRpZC5cblxuXAorVGhpcyBvYmplY3QgbWF5IGJlIGFjY2Vzc2VkIGVpdGhlciBhcyBhIHR1cGxlIG9mXG5cCisgIChzaV9waWQsIHNpX3VpZCwgc2lfc2lnbm8sIHNpX3N0YXR1cywgc2lfY29kZSksXG5cCitvciB2aWEgdGhlIGF0dHJpYnV0ZXMgc2lfcGlkLCBzaV91aWQsIGFuZCBzbyBvbi5cblwKK1xuXAorU2VlIG9zLndhaXRpZCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iKTsKKworc3RhdGljIFB5U3RydWN0U2VxdWVuY2VfRmllbGQgd2FpdGlkX3Jlc3VsdF9maWVsZHNbXSA9IHsKKyAgICB7InNpX3BpZCIsICB9LAorICAgIHsic2lfdWlkIiwgfSwKKyAgICB7InNpX3NpZ25vIiwgfSwKKyAgICB7InNpX3N0YXR1cyIsICB9LAorICAgIHsic2lfY29kZSIsIH0sCisgICAgezB9Cit9OworCitzdGF0aWMgUHlTdHJ1Y3RTZXF1ZW5jZV9EZXNjIHdhaXRpZF9yZXN1bHRfZGVzYyA9IHsKKyAgICAid2FpdGlkX3Jlc3VsdCIsIC8qIG5hbWUgKi8KKyAgICB3YWl0aWRfcmVzdWx0X19kb2NfXywgLyogZG9jICovCisgICAgd2FpdGlkX3Jlc3VsdF9maWVsZHMsCisgICAgNQorfTsKK3N0YXRpYyBQeVR5cGVPYmplY3QgV2FpdGlkUmVzdWx0VHlwZTsKKyNlbmRpZgorCiBzdGF0aWMgaW50IGluaXRpYWxpemVkOwogc3RhdGljIFB5VHlwZU9iamVjdCBTdGF0UmVzdWx0VHlwZTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgU3RhdFZGU1Jlc3VsdFR5cGU7CisjaWYgZGVmaW5lZChIQVZFX1NDSEVEX1NFVFBBUkFNKSB8fCBkZWZpbmVkKEhBVkVfU0NIRURfU0VUU0NIRURVTEVSKQorc3RhdGljIFB5VHlwZU9iamVjdCBTY2hlZFBhcmFtVHlwZTsKKyNlbmRpZgogc3RhdGljIG5ld2Z1bmMgc3RydWN0c2VxX25ldzsKIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTE1ODksNiArMjA3MiwxMCBAQAogICAgIGludCBuZXd2YWwgPSAtMTsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxpOnN0YXRfZmxvYXRfdGltZXMiLCAmbmV3dmFsKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKFB5RXJyX1dhcm5FeChQeUV4Y19EZXByZWNhdGlvbldhcm5pbmcsCisgICAgICAgICAgICAgICAgICAgICAic3RhdF9mbG9hdF90aW1lcygpIGlzIGRlcHJlY2F0ZWQiLAorICAgICAgICAgICAgICAgICAgICAgMSkpCisgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmIChuZXd2YWwgPT0gLTEpCiAgICAgICAgIC8qIFJldHVybiBvbGQgdmFsdWUgKi8KICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZyhfc3RhdF9mbG9hdF90aW1lcyk7CkBAIC0xNTk3LDI1ICsyMDg0LDUwIEBACiAgICAgcmV0dXJuIFB5X05vbmU7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqYmlsbGlvbiA9IE5VTEw7CisKIHN0YXRpYyB2b2lkCiBmaWxsX3RpbWUoUHlPYmplY3QgKnYsIGludCBpbmRleCwgdGltZV90IHNlYywgdW5zaWduZWQgbG9uZyBuc2VjKQogewotICAgIFB5T2JqZWN0ICpmdmFsLCppdmFsOwotI2lmIFNJWkVPRl9USU1FX1QgPiBTSVpFT0ZfTE9ORwotICAgIGl2YWwgPSBQeUxvbmdfRnJvbUxvbmdMb25nKChQWV9MT05HX0xPTkcpc2VjKTsKLSNlbHNlCi0gICAgaXZhbCA9IFB5TG9uZ19Gcm9tTG9uZygobG9uZylzZWMpOwotI2VuZGlmCi0gICAgaWYgKCFpdmFsKQotICAgICAgICByZXR1cm47CisgICAgUHlPYmplY3QgKnMgPSBfUHlMb25nX0Zyb21UaW1lX3Qoc2VjKTsKKyAgICBQeU9iamVjdCAqbnNfZnJhY3Rpb25hbCA9IFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKG5zZWMpOworICAgIFB5T2JqZWN0ICpzX2luX25zID0gTlVMTDsKKyAgICBQeU9iamVjdCAqbnNfdG90YWwgPSBOVUxMOworICAgIFB5T2JqZWN0ICpmbG9hdF9zID0gTlVMTDsKKworICAgIGlmICghKHMgJiYgbnNfZnJhY3Rpb25hbCkpCisgICAgICAgIGdvdG8gZXhpdDsKKworICAgIHNfaW5fbnMgPSBQeU51bWJlcl9NdWx0aXBseShzLCBiaWxsaW9uKTsKKyAgICBpZiAoIXNfaW5fbnMpCisgICAgICAgIGdvdG8gZXhpdDsKKworICAgIG5zX3RvdGFsID0gUHlOdW1iZXJfQWRkKHNfaW5fbnMsIG5zX2ZyYWN0aW9uYWwpOworICAgIGlmICghbnNfdG90YWwpCisgICAgICAgIGdvdG8gZXhpdDsKKwogICAgIGlmIChfc3RhdF9mbG9hdF90aW1lcykgewotICAgICAgICBmdmFsID0gUHlGbG9hdF9Gcm9tRG91YmxlKHNlYyArIDFlLTkqbnNlYyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZnZhbCA9IGl2YWw7Ci0gICAgICAgIFB5X0lOQ1JFRihmdmFsKTsKKyAgICAgICAgZmxvYXRfcyA9IFB5RmxvYXRfRnJvbURvdWJsZShzZWMgKyAxZS05Km5zZWMpOworICAgICAgICBpZiAoIWZsb2F0X3MpCisgICAgICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQotICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0odiwgaW5kZXgsIGl2YWwpOwotICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0odiwgaW5kZXgrMywgZnZhbCk7CisgICAgZWxzZSB7CisgICAgICAgIGZsb2F0X3MgPSBzOworICAgICAgICBQeV9JTkNSRUYoZmxvYXRfcyk7CisgICAgfQorCisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTSh2LCBpbmRleCwgcyk7CisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTSh2LCBpbmRleCszLCBmbG9hdF9zKTsKKyAgICBQeVN0cnVjdFNlcXVlbmNlX1NFVF9JVEVNKHYsIGluZGV4KzYsIG5zX3RvdGFsKTsKKyAgICBzID0gTlVMTDsKKyAgICBmbG9hdF9zID0gTlVMTDsKKyAgICBuc190b3RhbCA9IE5VTEw7CitleGl0OgorICAgIFB5X1hERUNSRUYocyk7CisgICAgUHlfWERFQ1JFRihuc19mcmFjdGlvbmFsKTsKKyAgICBQeV9YREVDUkVGKHNfaW5fbnMpOworICAgIFB5X1hERUNSRUYobnNfdG90YWwpOworICAgIFB5X1hERUNSRUYoZmxvYXRfcyk7CiB9CiAKIC8qIHBhY2sgYSBzeXN0ZW0gc3RhdCBDIHN0cnVjdHVyZSBpbnRvIHRoZSBQeXRob24gc3RhdCB0dXBsZQpAQCAtMTcxOCwxMjYgKzIyMzAsMjM4IEBACiAgICAgcmV0dXJuIHY7CiB9CiAKLXN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF9kb19zdGF0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywKLSAgICAgICAgICAgICAgY2hhciAqZm9ybWF0LAotI2lmZGVmIF9fVk1TCi0gICAgICAgICAgICAgIGludCAoKnN0YXRmdW5jKShjb25zdCBjaGFyICosIFNUUlVDVF9TVEFUICosIC4uLiksCi0jZWxzZQotICAgICAgICAgICAgICBpbnQgKCpzdGF0ZnVuYykoY29uc3QgY2hhciAqLCBTVFJVQ1RfU1RBVCAqKSwKLSNlbmRpZgotICAgICAgICAgICAgICBjaGFyICp3Zm9ybWF0LAotICAgICAgICAgICAgICBpbnQgKCp3c3RhdGZ1bmMpKGNvbnN0IFB5X1VOSUNPREUgKiwgU1RSVUNUX1NUQVQgKikpCi17Ci0gICAgU1RSVUNUX1NUQVQgc3Q7Ci0gICAgUHlPYmplY3QgKm9wYXRoOwotICAgIGNoYXIgKnBhdGg7Ci0gICAgaW50IHJlczsKLSAgICBQeU9iamVjdCAqcmVzdWx0OwotCi0jaWZkZWYgTVNfV0lORE9XUwotICAgIFB5VW5pY29kZU9iamVjdCAqcG87Ci0gICAgaWYgKFB5QXJnX1BhcnNlVHVwbGUoYXJncywgd2Zvcm1hdCwgJnBvKSkgewotICAgICAgICBQeV9VTklDT0RFICp3cGF0aCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHBvKTsKLQotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgICAgICAvKiBQeVVuaWNvZGVfQVNfVU5JQ09ERSByZXN1bHQgT0sgd2l0aG91dAotICAgICAgICAgICAgICAgdGhyZWFkIGxvY2sgYXMgaXQgaXMgYSBzaW1wbGUgZGVyZWZlcmVuY2UuICovCi0gICAgICAgIHJlcyA9IHdzdGF0ZnVuYyh3cGF0aCwgJnN0KTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLQotICAgICAgICBpZiAocmVzICE9IDApCi0gICAgICAgICAgICByZXR1cm4gd2luMzJfZXJyb3JfdW5pY29kZSgic3RhdCIsIHdwYXRoKTsKLSAgICAgICAgcmV0dXJuIF9weXN0YXRfZnJvbXN0cnVjdHN0YXQoJnN0KTsKLSAgICB9Ci0gICAgLyogRHJvcCB0aGUgYXJndW1lbnQgcGFyc2luZyBlcnJvciBhcyBuYXJyb3cgc3RyaW5ncwotICAgICAgIGFyZSBhbHNvIHZhbGlkLiAqLwotICAgIFB5RXJyX0NsZWFyKCk7Ci0jZW5kaWYKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9wYXRoKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcGF0aCA9IFB5Qnl0ZXNfQXNTdHJpbmcob3BhdGgpOwotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSAoKnN0YXRmdW5jKShwYXRoLCAmc3QpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBpZiAocmVzICE9IDApIHsKLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgICAgIHJlc3VsdCA9IHdpbjMyX2Vycm9yKCJzdGF0IiwgcGF0aCk7Ci0jZWxzZQotICAgICAgICByZXN1bHQgPSBwb3NpeF9lcnJvcl93aXRoX2ZpbGVuYW1lKHBhdGgpOwotI2VuZGlmCi0gICAgfQotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gX3B5c3RhdF9mcm9tc3RydWN0c3RhdCgmc3QpOwotCi0gICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiAvKiBQT1NJWCBtZXRob2RzICovCiAKLVB5RG9jX1NUUlZBUihwb3NpeF9hY2Nlc3NfX2RvY19fLAotImFjY2VzcyhwYXRoLCBtb2RlKSAtPiBUcnVlIGlmIGdyYW50ZWQsIEZhbHNlIG90aGVyd2lzZVxuXG5cCi1Vc2UgdGhlIHJlYWwgdWlkL2dpZCB0byB0ZXN0IGZvciBhY2Nlc3MgdG8gYSBwYXRoLiAgTm90ZSB0aGF0IG1vc3RcblwKLW9wZXJhdGlvbnMgd2lsbCB1c2UgdGhlIGVmZmVjdGl2ZSB1aWQvZ2lkLCB0aGVyZWZvcmUgdGhpcyByb3V0aW5lIGNhblxuXAotYmUgdXNlZCBpbiBhIHN1aWQvc2dpZCBlbnZpcm9ubWVudCB0byB0ZXN0IGlmIHRoZSBpbnZva2luZyB1c2VyIGhhcyB0aGVcblwKLXNwZWNpZmllZCBhY2Nlc3MgdG8gdGhlIHBhdGguICBUaGUgbW9kZSBhcmd1bWVudCBjYW4gYmUgRl9PSyB0byB0ZXN0XG5cCi1leGlzdGVuY2UsIG9yIHRoZSBpbmNsdXNpdmUtT1Igb2YgUl9PSywgV19PSywgYW5kIFhfT0suIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF9hY2Nlc3MoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorcG9zaXhfZG9fc3RhdChjaGFyICpmdW5jdGlvbl9uYW1lLCBwYXRoX3QgKnBhdGgsCisgICAgICAgICAgICAgIGludCBkaXJfZmQsIGludCBmb2xsb3dfc3ltbGlua3MpCiB7Ci0gICAgUHlPYmplY3QgKm9wYXRoOwotICAgIGNoYXIgKnBhdGg7CisgICAgU1RSVUNUX1NUQVQgc3Q7CisgICAgaW50IHJlc3VsdDsKKworI2lmICFkZWZpbmVkKE1TX1dJTkRPV1MpICYmICFkZWZpbmVkKEhBVkVfRlNUQVRBVCkgJiYgIWRlZmluZWQoSEFWRV9MU1RBVCkKKyAgICBpZiAoZm9sbG93X3N5bWxpbmtzX3NwZWNpZmllZChmdW5jdGlvbl9uYW1lLCBmb2xsb3dfc3ltbGlua3MpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZgorCisgICAgaWYgKHBhdGhfYW5kX2Rpcl9mZF9pbnZhbGlkKCJzdGF0IiwgcGF0aCwgZGlyX2ZkKSB8fAorICAgICAgICBkaXJfZmRfYW5kX2ZkX2ludmFsaWQoInN0YXQiLCBkaXJfZmQsIHBhdGgtPmZkKSB8fAorICAgICAgICBmZF9hbmRfZm9sbG93X3N5bWxpbmtzX2ludmFsaWQoInN0YXQiLCBwYXRoLT5mZCwgZm9sbG93X3N5bWxpbmtzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgaWYgKHBhdGgtPmZkICE9IC0xKQorICAgICAgICByZXN1bHQgPSBGU1RBVChwYXRoLT5mZCwgJnN0KTsKKyAgICBlbHNlCisjaWZkZWYgTVNfV0lORE9XUworICAgIGlmIChwYXRoLT53aWRlKSB7CisgICAgICAgIGlmIChmb2xsb3dfc3ltbGlua3MpCisgICAgICAgICAgICByZXN1bHQgPSB3aW4zMl9zdGF0X3cocGF0aC0+d2lkZSwgJnN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gd2luMzJfbHN0YXRfdyhwYXRoLT53aWRlLCAmc3QpOworICAgIH0KKyAgICBlbHNlCisjZW5kaWYKKyNpZiBkZWZpbmVkKEhBVkVfTFNUQVQpIHx8IGRlZmluZWQoTVNfV0lORE9XUykKKyAgICBpZiAoKCFmb2xsb3dfc3ltbGlua3MpICYmIChkaXJfZmQgPT0gREVGQVVMVF9ESVJfRkQpKQorICAgICAgICByZXN1bHQgPSBMU1RBVChwYXRoLT5uYXJyb3csICZzdCk7CisgICAgZWxzZQorI2VuZGlmCisjaWZkZWYgSEFWRV9GU1RBVEFUCisgICAgaWYgKChkaXJfZmQgIT0gREVGQVVMVF9ESVJfRkQpIHx8ICFmb2xsb3dfc3ltbGlua3MpCisgICAgICAgIHJlc3VsdCA9IGZzdGF0YXQoZGlyX2ZkLCBwYXRoLT5uYXJyb3csICZzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfc3ltbGlua3MgPyAwIDogQVRfU1lNTElOS19OT0ZPTExPVyk7CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIHJlc3VsdCA9IFNUQVQocGF0aC0+bmFycm93LCAmc3QpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAocmVzdWx0ICE9IDApCisgICAgICAgIHJldHVybiBwYXRoX2Vycm9yKCJzdGF0IiwgcGF0aCk7CisKKyAgICByZXR1cm4gX3B5c3RhdF9mcm9tc3RydWN0c3RhdCgmc3QpOworfQorCitQeURvY19TVFJWQVIocG9zaXhfc3RhdF9fZG9jX18sCisic3RhdChwYXRoLCAqLCBkaXJfZmQ9Tm9uZSwgZm9sbG93X3N5bWxpbmtzPVRydWUpIC0+IHN0YXQgcmVzdWx0XG5cblwKK1BlcmZvcm0gYSBzdGF0IHN5c3RlbSBjYWxsIG9uIHRoZSBnaXZlbiBwYXRoLlxuXAorXG5cCitwYXRoIG1heSBiZSBzcGVjaWZpZWQgYXMgZWl0aGVyIGEgc3RyaW5nIG9yIGFzIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yLlxuXAorXG5cCitJZiBkaXJfZmQgaXMgbm90IE5vbmUsIGl0IHNob3VsZCBiZSBhIGZpbGUgZGVzY3JpcHRvciBvcGVuIHRvIGEgZGlyZWN0b3J5LFxuXAorICBhbmQgcGF0aCBzaG91bGQgYmUgcmVsYXRpdmU7IHBhdGggd2lsbCB0aGVuIGJlIHJlbGF0aXZlIHRvIHRoYXQgZGlyZWN0b3J5LlxuXAorICBkaXJfZmQgbWF5IG5vdCBiZSBzdXBwb3J0ZWQgb24geW91ciBwbGF0Zm9ybTsgaWYgaXQgaXMgdW5hdmFpbGFibGUsIHVzaW5nXG5cCisgIGl0IHdpbGwgcmFpc2UgYSBOb3RJbXBsZW1lbnRlZEVycm9yLlxuXAorSWYgZm9sbG93X3N5bWxpbmtzIGlzIEZhbHNlLCBhbmQgdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUgcGF0aCBpcyBhIHN5bWJvbGljXG5cCisgIGxpbmssIHN0YXQgd2lsbCBleGFtaW5lIHRoZSBzeW1ib2xpYyBsaW5rIGl0c2VsZiBpbnN0ZWFkIG9mIHRoZSBmaWxlIHRoZVxuXAorICBsaW5rIHBvaW50cyB0by5cblwKK0l0IGlzIGFuIGVycm9yIHRvIHVzZSBkaXJfZmQgb3IgZm9sbG93X3N5bWxpbmtzIHdoZW4gc3BlY2lmeWluZyBwYXRoIGFzXG5cCisgIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfc3RhdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCit7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAiZGlyX2ZkIiwgImZvbGxvd19zeW1saW5rcyIsIE5VTEx9OworICAgIHBhdGhfdCBwYXRoOworICAgIGludCBkaXJfZmQgPSBERUZBVUxUX0RJUl9GRDsKKyAgICBpbnQgZm9sbG93X3N5bWxpbmtzID0gMTsKKyAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlOworCisgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIHBhdGguYWxsb3dfZmQgPSAxOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8mfCRPJnA6c3RhdCIsIGtleXdvcmRzLAorICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgsCisjaWZkZWYgSEFWRV9GU1RBVEFUCisgICAgICAgIGRpcl9mZF9jb252ZXJ0ZXIsICZkaXJfZmQsCisjZWxzZQorICAgICAgICBkaXJfZmRfdW5hdmFpbGFibGUsICZkaXJfZmQsCisjZW5kaWYKKyAgICAgICAgJmZvbGxvd19zeW1saW5rcykpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJldHVybl92YWx1ZSA9IHBvc2l4X2RvX3N0YXQoInN0YXQiLCAmcGF0aCwgZGlyX2ZkLCBmb2xsb3dfc3ltbGlua3MpOworICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKK30KKworUHlEb2NfU1RSVkFSKHBvc2l4X2xzdGF0X19kb2NfXywKKyJsc3RhdChwYXRoLCAqLCBkaXJfZmQ9Tm9uZSkgLT4gc3RhdCByZXN1bHRcblxuXAorTGlrZSBzdGF0KCksIGJ1dCBkbyBub3QgZm9sbG93IHN5bWJvbGljIGxpbmtzLlxuXAorRXF1aXZhbGVudCB0byBzdGF0KHBhdGgsIGZvbGxvd19zeW1saW5rcz1GYWxzZSkuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9sc3RhdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCit7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAiZGlyX2ZkIiwgTlVMTH07CisgICAgcGF0aF90IHBhdGg7CisgICAgaW50IGRpcl9mZCA9IERFRkFVTFRfRElSX0ZEOworICAgIGludCBmb2xsb3dfc3ltbGlua3MgPSAwOworICAgIFB5T2JqZWN0ICpyZXR1cm5fdmFsdWU7CisKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZ8JE8mOmxzdGF0Iiwga2V5d29yZHMsCisgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKKyNpZmRlZiBIQVZFX0ZTVEFUQVQKKyAgICAgICAgZGlyX2ZkX2NvbnZlcnRlciwgJmRpcl9mZAorI2Vsc2UKKyAgICAgICAgZGlyX2ZkX3VuYXZhaWxhYmxlLCAmZGlyX2ZkCisjZW5kaWYKKyAgICAgICAgKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuX3ZhbHVlID0gcG9zaXhfZG9fc3RhdCgic3RhdCIsICZwYXRoLCBkaXJfZmQsIGZvbGxvd19zeW1saW5rcyk7CisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICByZXR1cm4gcmV0dXJuX3ZhbHVlOworfQorCitQeURvY19TVFJWQVIocG9zaXhfYWNjZXNzX19kb2NfXywKKyJhY2Nlc3MocGF0aCwgbW9kZSwgKiwgZGlyX2ZkPU5vbmUsIGVmZmVjdGl2ZV9pZHM9RmFsc2UsXAorIGZvbGxvd19zeW1saW5rcz1UcnVlKVxuXG5cCitVc2UgdGhlIHJlYWwgdWlkL2dpZCB0byB0ZXN0IGZvciBhY2Nlc3MgdG8gYSBwYXRoLiAgUmV0dXJucyBUcnVlIGlmIGdyYW50ZWQsXG5cCitGYWxzZSBvdGhlcndpc2UuXG5cCitcblwKK0lmIGRpcl9mZCBpcyBub3QgTm9uZSwgaXQgc2hvdWxkIGJlIGEgZmlsZSBkZXNjcmlwdG9yIG9wZW4gdG8gYSBkaXJlY3RvcnksXG5cCisgIGFuZCBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZTsgcGF0aCB3aWxsIHRoZW4gYmUgcmVsYXRpdmUgdG8gdGhhdCBkaXJlY3RvcnkuXG5cCitJZiBlZmZlY3RpdmVfaWRzIGlzIFRydWUsIGFjY2VzcyB3aWxsIHVzZSB0aGUgZWZmZWN0aXZlIHVpZC9naWQgaW5zdGVhZCBvZlxuXAorICB0aGUgcmVhbCB1aWQvZ2lkLlxuXAorSWYgZm9sbG93X3N5bWxpbmtzIGlzIEZhbHNlLCBhbmQgdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUgcGF0aCBpcyBhIHN5bWJvbGljXG5cCisgIGxpbmssIGFjY2VzcyB3aWxsIGV4YW1pbmUgdGhlIHN5bWJvbGljIGxpbmsgaXRzZWxmIGluc3RlYWQgb2YgdGhlIGZpbGUgdGhlXG5cCisgIGxpbmsgcG9pbnRzIHRvLlxuXAorZGlyX2ZkLCBlZmZlY3RpdmVfaWRzLCBhbmQgZm9sbG93X3N5bWxpbmtzIG1heSBub3QgYmUgaW1wbGVtZW50ZWRcblwKKyAgb24geW91ciBwbGF0Zm9ybS4gIElmIHRoZXkgYXJlIHVuYXZhaWxhYmxlLCB1c2luZyB0aGVtIHdpbGwgcmFpc2UgYVxuXAorICBOb3RJbXBsZW1lbnRlZEVycm9yLlxuXAorXG5cCitOb3RlIHRoYXQgbW9zdCBvcGVyYXRpb25zIHdpbGwgdXNlIHRoZSBlZmZlY3RpdmUgdWlkL2dpZCwgdGhlcmVmb3JlIHRoaXNcblwKKyAgcm91dGluZSBjYW4gYmUgdXNlZCBpbiBhIHN1aWQvc2dpZCBlbnZpcm9ubWVudCB0byB0ZXN0IGlmIHRoZSBpbnZva2luZyB1c2VyXG5cCisgIGhhcyB0aGUgc3BlY2lmaWVkIGFjY2VzcyB0byB0aGUgcGF0aC5cblwKK1RoZSBtb2RlIGFyZ3VtZW50IGNhbiBiZSBGX09LIHRvIHRlc3QgZXhpc3RlbmNlLCBvciB0aGUgaW5jbHVzaXZlLU9SXG5cCisgIG9mIFJfT0ssIFdfT0ssIGFuZCBYX09LLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfYWNjZXNzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsICJtb2RlIiwgImRpcl9mZCIsICJlZmZlY3RpdmVfaWRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvbGxvd19zeW1saW5rcyIsIE5VTEx9OworICAgIHBhdGhfdCBwYXRoOwogICAgIGludCBtb2RlOworICAgIGludCBkaXJfZmQgPSBERUZBVUxUX0RJUl9GRDsKKyAgICBpbnQgZWZmZWN0aXZlX2lkcyA9IDA7CisgICAgaW50IGZvbGxvd19zeW1saW5rcyA9IDE7CisgICAgUHlPYmplY3QgKnJldHVybl92YWx1ZSA9IE5VTEw7CiAKICNpZmRlZiBNU19XSU5ET1dTCiAgICAgRFdPUkQgYXR0cjsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnBvOwotICAgIGlmIChQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVaTphY2Nlc3MiLCAmcG8sICZtb2RlKSkgewotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgIC8qIFB5VW5pY29kZV9BU19VTklDT0RFIE9LIHdpdGhvdXQgdGhyZWFkIGxvY2sgYXMKLSAgICAgICAgICAgaXQgaXMgYSBzaW1wbGUgZGVyZWZlcmVuY2UuICovCi0gICAgICAgIGF0dHIgPSBHZXRGaWxlQXR0cmlidXRlc1coUHlVbmljb2RlX0FTX1VOSUNPREUocG8pKTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgZ290byBmaW5pc2g7Ci0gICAgfQotICAgIC8qIERyb3AgdGhlIGFyZ3VtZW50IHBhcnNpbmcgZXJyb3IgYXMgbmFycm93IHN0cmluZ3MKLSAgICAgICBhcmUgYWxzbyB2YWxpZC4gKi8KLSAgICBQeUVycl9DbGVhcigpOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyZpOmFjY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9wYXRoLCAmbW9kZSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHBhdGggPSBQeUJ5dGVzX0FzU3RyaW5nKG9wYXRoKTsKLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgYXR0ciA9IEdldEZpbGVBdHRyaWJ1dGVzQShwYXRoKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIFB5X0RFQ1JFRihvcGF0aCk7Ci1maW5pc2g6Ci0gICAgaWYgKGF0dHIgPT0gMHhGRkZGRkZGRikKLSAgICAgICAgLyogRmlsZSBkb2VzIG5vdCBleGlzdCwgb3IgY2Fubm90IHJlYWQgYXR0cmlidXRlcyAqLwotICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDApOwotICAgIC8qIEFjY2VzcyBpcyBwb3NzaWJsZSBpZiBlaXRoZXIgd3JpdGUgYWNjZXNzIHdhc24ndCByZXF1ZXN0ZWQsIG9yCi0gICAgICAgdGhlIGZpbGUgaXNuJ3QgcmVhZC1vbmx5LCBvciBpZiBpdCdzIGEgZGlyZWN0b3J5LCBhcyB0aGVyZSBhcmUKLSAgICAgICBubyByZWFkLW9ubHkgZGlyZWN0b3JpZXMgb24gV2luZG93cy4gKi8KLSAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKCEobW9kZSAmIDIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAhKGF0dHIgJiBGSUxFX0FUVFJJQlVURV9SRUFET05MWSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChhdHRyICYgRklMRV9BVFRSSUJVVEVfRElSRUNUT1JZKSk7CiAjZWxzZQotICAgIGludCByZXM7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJmk6YWNjZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3BhdGgsICZtb2RlKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcGF0aCA9IFB5Qnl0ZXNfQXNTdHJpbmcob3BhdGgpOwotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSBhY2Nlc3MocGF0aCwgbW9kZSk7Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcocmVzID09IDApOworICAgIGludCByZXN1bHQ7CiAjZW5kaWYKKworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJml8JE8mcHA6YWNjZXNzIiwga2V5d29yZHMsCisgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwgJm1vZGUsCisjaWZkZWYgSEFWRV9GQUNDRVNTQVQKKyAgICAgICAgZGlyX2ZkX2NvbnZlcnRlciwgJmRpcl9mZCwKKyNlbHNlCisgICAgICAgIGRpcl9mZF91bmF2YWlsYWJsZSwgJmRpcl9mZCwKKyNlbmRpZgorICAgICAgICAmZWZmZWN0aXZlX2lkcywgJmZvbGxvd19zeW1saW5rcykpCisgICAgICAgIHJldHVybiBOVUxMOworCisjaWZuZGVmIEhBVkVfRkFDQ0VTU0FUCisgICAgaWYgKGZvbGxvd19zeW1saW5rc19zcGVjaWZpZWQoImFjY2VzcyIsIGZvbGxvd19zeW1saW5rcykpCisgICAgICAgIGdvdG8gZXhpdDsKKworICAgIGlmIChlZmZlY3RpdmVfaWRzKSB7CisgICAgICAgIGFyZ3VtZW50X3VuYXZhaWxhYmxlX2Vycm9yKCJhY2Nlc3MiLCAiZWZmZWN0aXZlX2lkcyIpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorI2VuZGlmCisKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIGlmIChwYXRoLndpZGUgIT0gTlVMTCkKKyAgICAgICAgYXR0ciA9IEdldEZpbGVBdHRyaWJ1dGVzVyhwYXRoLndpZGUpOworICAgIGVsc2UKKyAgICAgICAgYXR0ciA9IEdldEZpbGVBdHRyaWJ1dGVzQShwYXRoLm5hcnJvdyk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIC8qCisgICAgICogQWNjZXNzIGlzIHBvc3NpYmxlIGlmCisgICAgICogICAqIHdlIGRpZG4ndCBnZXQgYSAtMSwgYW5kCisgICAgICogICAgICogd3JpdGUgYWNjZXNzIHdhc24ndCByZXF1ZXN0ZWQsCisgICAgICogICAgICogb3IgdGhlIGZpbGUgaXNuJ3QgcmVhZC1vbmx5LAorICAgICAqICAgICAqIG9yIGl0J3MgYSBkaXJlY3RvcnkuCisgICAgICogKERpcmVjdG9yaWVzIGNhbm5vdCBiZSByZWFkLW9ubHkgb24gV2luZG93cy4pCisgICAgKi8KKyAgICByZXR1cm5fdmFsdWUgPSBQeUJvb2xfRnJvbUxvbmcoCisgICAgICAgIChhdHRyICE9IDB4RkZGRkZGRkYpICYmCisgICAgICAgICAgICAoIShtb2RlICYgMikgfHwKKyAgICAgICAgICAgICEoYXR0ciAmIEZJTEVfQVRUUklCVVRFX1JFQURPTkxZKSB8fAorICAgICAgICAgICAgKGF0dHIgJiBGSUxFX0FUVFJJQlVURV9ESVJFQ1RPUlkpKSk7CisjZWxzZQorCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworI2lmZGVmIEhBVkVfRkFDQ0VTU0FUCisgICAgaWYgKChkaXJfZmQgIT0gREVGQVVMVF9ESVJfRkQpIHx8CisgICAgICAgIGVmZmVjdGl2ZV9pZHMgfHwKKyAgICAgICAgIWZvbGxvd19zeW1saW5rcykgeworICAgICAgICBpbnQgZmxhZ3MgPSAwOworICAgICAgICBpZiAoIWZvbGxvd19zeW1saW5rcykKKyAgICAgICAgICAgIGZsYWdzIHw9IEFUX1NZTUxJTktfTk9GT0xMT1c7CisgICAgICAgIGlmIChlZmZlY3RpdmVfaWRzKQorICAgICAgICAgICAgZmxhZ3MgfD0gQVRfRUFDQ0VTUzsKKyAgICAgICAgcmVzdWx0ID0gZmFjY2Vzc2F0KGRpcl9mZCwgcGF0aC5uYXJyb3csIG1vZGUsIGZsYWdzKTsKKyAgICB9CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIHJlc3VsdCA9IGFjY2VzcyhwYXRoLm5hcnJvdywgbW9kZSk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICByZXR1cm5fdmFsdWUgPSBQeUJvb2xfRnJvbUxvbmcoIXJlc3VsdCk7CisjZW5kaWYKKworI2lmbmRlZiBIQVZFX0ZBQ0NFU1NBVAorZXhpdDoKKyNlbmRpZgorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKIH0KIAogI2lmbmRlZiBGX09LCkBAIC0xOTA4LDI3ICsyNTMyLDY2IEBACiAKIFB5RG9jX1NUUlZBUihwb3NpeF9jaGRpcl9fZG9jX18sCiAiY2hkaXIocGF0aClcblxuXAotQ2hhbmdlIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IHRvIHRoZSBzcGVjaWZpZWQgcGF0aC4iKTsKK0NoYW5nZSB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB0byB0aGUgc3BlY2lmaWVkIHBhdGguXG5cCitcblwKK3BhdGggbWF5IGFsd2F5cyBiZSBzcGVjaWZpZWQgYXMgYSBzdHJpbmcuXG5cCitPbiBzb21lIHBsYXRmb3JtcywgcGF0aCBtYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuXG5cCisgIElmIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgcmFpc2VzIGFuIGV4Y2VwdGlvbi4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X2NoZGlyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3Bvc2l4X2NoZGlyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgcmV0dXJuIHdpbjMyXzFzdHIoYXJncywgImNoZGlyIiwgInk6Y2hkaXIiLCB3aW4zMl9jaGRpciwgIlU6Y2hkaXIiLCB3aW4zMl93Y2hkaXIpOwotI2VsaWYgZGVmaW5lZChQWU9TX09TMikgJiYgZGVmaW5lZChQWUNDX0dDQykKLSAgICByZXR1cm4gcG9zaXhfMXN0cihhcmdzLCAiTyY6Y2hkaXIiLCBfY2hkaXIyKTsKLSNlbGlmIGRlZmluZWQoX19WTVMpCi0gICAgcmV0dXJuIHBvc2l4XzFzdHIoYXJncywgIk8mOmNoZGlyIiwgKGludCAoKikoY29uc3QgY2hhciAqKSljaGRpcik7Ci0jZWxzZQotICAgIHJldHVybiBwb3NpeF8xc3RyKGFyZ3MsICJPJjpjaGRpciIsIGNoZGlyKTsKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBpbnQgcmVzdWx0OworICAgIFB5T2JqZWN0ICpyZXR1cm5fdmFsdWUgPSBOVUxMOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgTlVMTH07CisKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisjaWZkZWYgSEFWRV9GQ0hESVIKKyAgICBwYXRoLmFsbG93X2ZkID0gMTsKICNlbmRpZgorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8mOmNoZGlyIiwga2V5d29yZHMsCisgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aAorICAgICAgICApKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgaWYgKHBhdGgud2lkZSkKKyAgICAgICAgcmVzdWx0ID0gd2luMzJfd2NoZGlyKHBhdGgud2lkZSk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSB3aW4zMl9jaGRpcihwYXRoLm5hcnJvdyk7CisJcmVzdWx0ID0gIXJlc3VsdDsgLyogb24gdW5peCwgc3VjY2VzcyA9IDAsIG9uIHdpbmRvd3MsIHN1Y2Nlc3MgPSAhMCAqLworI2VsaWYgZGVmaW5lZChQWU9TX09TMikgJiYgZGVmaW5lZChQWUNDX0dDQykKKyAgICByZXN1bHQgPSBfY2hkaXIyKHBhdGgubmFycm93KTsKKyNlbHNlCisjaWZkZWYgSEFWRV9GQ0hESVIKKyAgICBpZiAocGF0aC5mZCAhPSAtMSkKKyAgICAgICAgcmVzdWx0ID0gZmNoZGlyKHBhdGguZmQpOworICAgIGVsc2UKKyNlbmRpZgorICAgICAgICByZXN1bHQgPSBjaGRpcihwYXRoLm5hcnJvdyk7CisjZW5kaWYKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCJjaGRpciIsICZwYXRoKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJldHVybl92YWx1ZSA9IFB5X05vbmU7CisgICAgUHlfSU5DUkVGKFB5X05vbmUpOworCitleGl0OgorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKIH0KIAogI2lmZGVmIEhBVkVfRkNIRElSCiBQeURvY19TVFJWQVIocG9zaXhfZmNoZGlyX19kb2NfXywKLSJmY2hkaXIoZmlsZGVzKVxuXG5cCi1DaGFuZ2UgdG8gdGhlIGRpcmVjdG9yeSBvZiB0aGUgZ2l2ZW4gZmlsZSBkZXNjcmlwdG9yLiAgZmlsZGVzIG11c3QgYmVcblwKLW9wZW5lZCBvbiBhIGRpcmVjdG9yeSwgbm90IGEgZmlsZS4iKTsKKyJmY2hkaXIoZmQpXG5cblwKK0NoYW5nZSB0byB0aGUgZGlyZWN0b3J5IG9mIHRoZSBnaXZlbiBmaWxlIGRlc2NyaXB0b3IuICBmZCBtdXN0IGJlXG5cCitvcGVuZWQgb24gYSBkaXJlY3RvcnksIG5vdCBhIGZpbGUuICBFcXVpdmFsZW50IHRvIG9zLmNoZGlyKGZkKS4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKIHBvc2l4X2ZjaGRpcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmZkb2JqKQpAQCAtMTkzOSw4NyArMjYwMiwxNTUgQEAKIAogCiBQeURvY19TVFJWQVIocG9zaXhfY2htb2RfX2RvY19fLAotImNobW9kKHBhdGgsIG1vZGUpXG5cblwKLUNoYW5nZSB0aGUgYWNjZXNzIHBlcm1pc3Npb25zIG9mIGEgZmlsZS4iKTsKKyJjaG1vZChwYXRoLCBtb2RlLCAqLCBkaXJfZmQ9Tm9uZSwgZm9sbG93X3N5bWxpbmtzPVRydWUpXG5cblwKK0NoYW5nZSB0aGUgYWNjZXNzIHBlcm1pc3Npb25zIG9mIGEgZmlsZS5cblwKK1xuXAorcGF0aCBtYXkgYWx3YXlzIGJlIHNwZWNpZmllZCBhcyBhIHN0cmluZy5cblwKK09uIHNvbWUgcGxhdGZvcm1zLCBwYXRoIG1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci5cblwKKyAgSWYgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVuYXZhaWxhYmxlLCB1c2luZyBpdCByYWlzZXMgYW4gZXhjZXB0aW9uLlxuXAorSWYgZGlyX2ZkIGlzIG5vdCBOb25lLCBpdCBzaG91bGQgYmUgYSBmaWxlIGRlc2NyaXB0b3Igb3BlbiB0byBhIGRpcmVjdG9yeSxcblwKKyAgYW5kIHBhdGggc2hvdWxkIGJlIHJlbGF0aXZlOyBwYXRoIHdpbGwgdGhlbiBiZSByZWxhdGl2ZSB0byB0aGF0IGRpcmVjdG9yeS5cblwKK0lmIGZvbGxvd19zeW1saW5rcyBpcyBGYWxzZSwgYW5kIHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhlIHBhdGggaXMgYSBzeW1ib2xpY1xuXAorICBsaW5rLCBjaG1vZCB3aWxsIG1vZGlmeSB0aGUgc3ltYm9saWMgbGluayBpdHNlbGYgaW5zdGVhZCBvZiB0aGUgZmlsZSB0aGVcblwKKyAgbGluayBwb2ludHMgdG8uXG5cCitJdCBpcyBhbiBlcnJvciB0byB1c2UgZGlyX2ZkIG9yIGZvbGxvd19zeW1saW5rcyB3aGVuIHNwZWNpZnlpbmcgcGF0aCBhc1xuXAorICBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci5cblwKK2Rpcl9mZCBhbmQgZm9sbG93X3N5bWxpbmtzIG1heSBub3QgYmUgaW1wbGVtZW50ZWQgb24geW91ciBwbGF0Zm9ybS5cblwKKyAgSWYgdGhleSBhcmUgdW5hdmFpbGFibGUsIHVzaW5nIHRoZW0gd2lsbCByYWlzZSBhIE5vdEltcGxlbWVudGVkRXJyb3IuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF9jaG1vZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitwb3NpeF9jaG1vZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCiB7Ci0gICAgUHlPYmplY3QgKm9wYXRoID0gTlVMTDsKLSAgICBjaGFyICpwYXRoID0gTlVMTDsKLSAgICBpbnQgaTsKLSAgICBpbnQgcmVzOworICAgIHBhdGhfdCBwYXRoOworICAgIGludCBtb2RlOworICAgIGludCBkaXJfZmQgPSBERUZBVUxUX0RJUl9GRDsKKyAgICBpbnQgZm9sbG93X3N5bWxpbmtzID0gMTsKKyAgICBpbnQgcmVzdWx0OworICAgIFB5T2JqZWN0ICpyZXR1cm5fdmFsdWUgPSBOVUxMOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgIm1vZGUiLCAiZGlyX2ZkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9sbG93X3N5bWxpbmtzIiwgTlVMTH07CisKICNpZmRlZiBNU19XSU5ET1dTCiAgICAgRFdPUkQgYXR0cjsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnBvOwotICAgIGlmIChQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVaXw6Y2htb2QiLCAmcG8sICZpKSkgewotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgIGF0dHIgPSBHZXRGaWxlQXR0cmlidXRlc1coUHlVbmljb2RlX0FTX1VOSUNPREUocG8pKTsKLSAgICAgICAgaWYgKGF0dHIgIT0gMHhGRkZGRkZGRikgewotICAgICAgICAgICAgaWYgKGkgJiBfU19JV1JJVEUpCi0gICAgICAgICAgICAgICAgYXR0ciAmPSB+RklMRV9BVFRSSUJVVEVfUkVBRE9OTFk7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYXR0ciB8PSBGSUxFX0FUVFJJQlVURV9SRUFET05MWTsKLSAgICAgICAgICAgIHJlcyA9IFNldEZpbGVBdHRyaWJ1dGVzVyhQeVVuaWNvZGVfQVNfVU5JQ09ERShwbyksIGF0dHIpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlcyA9IDA7Ci0gICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgICAgIGlmICghcmVzKQotICAgICAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yX3VuaWNvZGUoImNobW9kIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHBvKSk7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICAgICAgcmV0dXJuIFB5X05vbmU7Ci0gICAgfQotICAgIC8qIERyb3AgdGhlIGFyZ3VtZW50IHBhcnNpbmcgZXJyb3IgYXMgbmFycm93IHN0cmluZ3MKLSAgICAgICBhcmUgYWxzbyB2YWxpZC4gKi8KLSAgICBQeUVycl9DbGVhcigpOworI2VuZGlmCiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8maTpjaG1vZCIsIFB5VW5pY29kZV9GU0NvbnZlcnRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wYXRoLCAmaSkpCisjaWZkZWYgSEFWRV9GQ0hNT0RBVAorICAgIGludCBmY2htb2RhdF9ub2ZvbGxvd191bnN1cHBvcnRlZCA9IDA7CisjZW5kaWYKKworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyNpZmRlZiBIQVZFX0ZDSE1PRAorICAgIHBhdGguYWxsb3dfZmQgPSAxOworI2VuZGlmCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZpfCRPJnA6Y2htb2QiLCBrZXl3b3JkcywKKyAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLAorICAgICAgICAmbW9kZSwKKyNpZmRlZiBIQVZFX0ZDSE1PREFUCisgICAgICAgIGRpcl9mZF9jb252ZXJ0ZXIsICZkaXJfZmQsCisjZWxzZQorICAgICAgICBkaXJfZmRfdW5hdmFpbGFibGUsICZkaXJfZmQsCisjZW5kaWYKKyAgICAgICAgJmZvbGxvd19zeW1saW5rcykpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHBhdGggPSBQeUJ5dGVzX0FzU3RyaW5nKG9wYXRoKTsKKworI2lmICEoZGVmaW5lZChIQVZFX0ZDSE1PREFUKSB8fCBkZWZpbmVkKEhBVkVfTENITU9EKSkKKyAgICBpZiAoZm9sbG93X3N5bWxpbmtzX3NwZWNpZmllZCgiY2htb2QiLCBmb2xsb3dfc3ltbGlua3MpKQorICAgICAgICBnb3RvIGV4aXQ7CisjZW5kaWYKKworI2lmZGVmIE1TX1dJTkRPV1MKICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgYXR0ciA9IEdldEZpbGVBdHRyaWJ1dGVzQShwYXRoKTsKLSAgICBpZiAoYXR0ciAhPSAweEZGRkZGRkZGKSB7Ci0gICAgICAgIGlmIChpICYgX1NfSVdSSVRFKQorICAgIGlmIChwYXRoLndpZGUpCisgICAgICAgIGF0dHIgPSBHZXRGaWxlQXR0cmlidXRlc1cocGF0aC53aWRlKTsKKyAgICBlbHNlCisgICAgICAgIGF0dHIgPSBHZXRGaWxlQXR0cmlidXRlc0EocGF0aC5uYXJyb3cpOworICAgIGlmIChhdHRyID09IDB4RkZGRkZGRkYpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChtb2RlICYgX1NfSVdSSVRFKQogICAgICAgICAgICAgYXR0ciAmPSB+RklMRV9BVFRSSUJVVEVfUkVBRE9OTFk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGF0dHIgfD0gRklMRV9BVFRSSUJVVEVfUkVBRE9OTFk7Ci0gICAgICAgIHJlcyA9IFNldEZpbGVBdHRyaWJ1dGVzQShwYXRoLCBhdHRyKTsKKyAgICAgICAgaWYgKHBhdGgud2lkZSkKKyAgICAgICAgICAgIHJlc3VsdCA9IFNldEZpbGVBdHRyaWJ1dGVzVyhwYXRoLndpZGUsIGF0dHIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBTZXRGaWxlQXR0cmlidXRlc0EocGF0aC5uYXJyb3csIGF0dHIpOworICAgIH0KKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gd2luMzJfZXJyb3Jfb2JqZWN0KCJjaG1vZCIsIHBhdGgub2JqZWN0KTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyNlbHNlIC8qIE1TX1dJTkRPV1MgKi8KKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisjaWZkZWYgSEFWRV9GQ0hNT0QKKyAgICBpZiAocGF0aC5mZCAhPSAtMSkKKyAgICAgICAgcmVzdWx0ID0gZmNobW9kKHBhdGguZmQsIG1vZGUpOworICAgIGVsc2UKKyNlbmRpZgorI2lmZGVmIEhBVkVfTENITU9ECisgICAgaWYgKCghZm9sbG93X3N5bWxpbmtzKSAmJiAoZGlyX2ZkID09IERFRkFVTFRfRElSX0ZEKSkKKyAgICAgICAgcmVzdWx0ID0gbGNobW9kKHBhdGgubmFycm93LCBtb2RlKTsKKyAgICBlbHNlCisjZW5kaWYKKyNpZmRlZiBIQVZFX0ZDSE1PREFUCisgICAgaWYgKChkaXJfZmQgIT0gREVGQVVMVF9ESVJfRkQpIHx8ICFmb2xsb3dfc3ltbGlua3MpIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogZmNobW9kYXQoKSBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IEFUX1NZTUxJTktfTk9GT0xMT1chCisgICAgICAgICAqIFRoZSBkb2N1bWVudGF0aW9uIHNwZWNpZmljYWxseSBzaG93cyBob3cgdG8gdXNlIGl0LAorICAgICAgICAgKiBhbmQgdGhlbiBzYXlzIGl0IGlzbid0IGltcGxlbWVudGVkIHlldC4KKyAgICAgICAgICogKHRydWUgb24gbGludXggd2l0aCBnbGliYyAyLjE1LCBhbmQgb3BlbmluZGlhbmEgMy54KQorICAgICAgICAgKgorICAgICAgICAgKiBPbmNlIGl0IGlzIHN1cHBvcnRlZCwgb3MuY2htb2Qgd2lsbCBhdXRvbWF0aWNhbGx5CisgICAgICAgICAqIHN1cHBvcnQgZGlyX2ZkIGFuZCBmb2xsb3dfc3ltbGlua3M9RmFsc2UuICAoSG9wZWZ1bGx5LikKKyAgICAgICAgICogVW50aWwgdGhlbiwgd2UgbmVlZCB0byBiZSBjYXJlZnVsIHdoYXQgZXhjZXB0aW9uIHdlIHJhaXNlLgorICAgICAgICAgKi8KKyAgICAgICAgcmVzdWx0ID0gZmNobW9kYXQoZGlyX2ZkLCBwYXRoLm5hcnJvdywgbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3N5bWxpbmtzID8gMCA6IEFUX1NZTUxJTktfTk9GT0xMT1cpOworICAgICAgICAvKgorICAgICAgICAgKiBCdXQgd2FpdCEgIFdlIGNhbid0IHRocm93IHRoZSBleGNlcHRpb24gd2l0aG91dCBhbGxvd2luZyB0aHJlYWRzLAorICAgICAgICAgKiBhbmQgd2UgY2FuJ3QgZG8gdGhhdCBpbiB0aGlzIG5lc3RlZCBzY29wZS4gIChNYWNybyB0cmlja2VyeSwgc2lnaC4pCisgICAgICAgICAqLworICAgICAgICBmY2htb2RhdF9ub2ZvbGxvd191bnN1cHBvcnRlZCA9CisgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgKChlcnJubyA9PSBFTk9UU1VQKSB8fCAoZXJybm8gPT0gRU9QTk9UU1VQUCkpICYmCisgICAgICAgICAgICAgICAgICAgICAgICAgIWZvbGxvd19zeW1saW5rczsKICAgICB9CiAgICAgZWxzZQotICAgICAgICByZXMgPSAwOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgaWYgKCFyZXMpIHsKLSAgICAgICAgd2luMzJfZXJyb3IoImNobW9kIiwgcGF0aCk7Ci0gICAgICAgIFB5X0RFQ1JFRihvcGF0aCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICByZXR1cm4gUHlfTm9uZTsKLSNlbHNlIC8qIE1TX1dJTkRPV1MgKi8KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8maTpjaG1vZCIsIFB5VW5pY29kZV9GU0NvbnZlcnRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wYXRoLCAmaSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHBhdGggPSBQeUJ5dGVzX0FzU3RyaW5nKG9wYXRoKTsKLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgcmVzID0gY2htb2QocGF0aCwgaSk7Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICBpZiAocmVzIDwgMCkKLSAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yX3dpdGhfYWxsb2NhdGVkX2ZpbGVuYW1lKG9wYXRoKTsKLSAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICByZXR1cm4gUHlfTm9uZTsKICNlbmRpZgorICAgICAgICByZXN1bHQgPSBjaG1vZChwYXRoLm5hcnJvdywgbW9kZSk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmIChyZXN1bHQpIHsKKyNpZmRlZiBIQVZFX0ZDSE1PREFUCisgICAgICAgIGlmIChmY2htb2RhdF9ub2ZvbGxvd191bnN1cHBvcnRlZCkgeworICAgICAgICAgICAgaWYgKGRpcl9mZCAhPSBERUZBVUxUX0RJUl9GRCkKKyAgICAgICAgICAgICAgICBkaXJfZmRfYW5kX2ZvbGxvd19zeW1saW5rc19pbnZhbGlkKCJjaG1vZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJfZmQsIGZvbGxvd19zeW1saW5rcyk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZm9sbG93X3N5bWxpbmtzX3NwZWNpZmllZCgiY2htb2QiLCBmb2xsb3dfc3ltbGlua3MpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyNlbmRpZgorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigiY2htb2QiLCAmcGF0aCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisjZW5kaWYKKworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICByZXR1cm5fdmFsdWUgPSBQeV9Ob25lOworZXhpdDoKKyAgICBwYXRoX2NsZWFudXAoJnBhdGgpOworICAgIHJldHVybiByZXR1cm5fdmFsdWU7CiB9CiAKKwogI2lmZGVmIEhBVkVfRkNITU9ECiBQeURvY19TVFJWQVIocG9zaXhfZmNobW9kX19kb2NfXywKICJmY2htb2QoZmQsIG1vZGUpXG5cblwKIENoYW5nZSB0aGUgYWNjZXNzIHBlcm1pc3Npb25zIG9mIHRoZSBmaWxlIGdpdmVuIGJ5IGZpbGVcblwKLWRlc2NyaXB0b3IgZmQuIik7CitkZXNjcmlwdG9yIGZkLiAgRXF1aXZhbGVudCB0byBvcy5jaG1vZChmZCwgbW9kZSkuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBwb3NpeF9mY2htb2QoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQpAQCAtMjA0MCw3ICsyNzcxLDggQEAKIFB5RG9jX1NUUlZBUihwb3NpeF9sY2htb2RfX2RvY19fLAogImxjaG1vZChwYXRoLCBtb2RlKVxuXG5cCiBDaGFuZ2UgdGhlIGFjY2VzcyBwZXJtaXNzaW9ucyBvZiBhIGZpbGUuIElmIHBhdGggaXMgYSBzeW1saW5rLCB0aGlzXG5cCi1hZmZlY3RzIHRoZSBsaW5rIGl0c2VsZiByYXRoZXIgdGhhbiB0aGUgdGFyZ2V0LiIpOworYWZmZWN0cyB0aGUgbGluayBpdHNlbGYgcmF0aGVyIHRoYW4gdGhlIHRhcmdldC5cblwKK0VxdWl2YWxlbnQgdG8gY2htb2QocGF0aCwgbW9kZSwgZm9sbG93X3N5bWxpbmtzPUZhbHNlKS4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKIHBvc2l4X2xjaG1vZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCkBAIC0yMDY2LDI4ICsyNzk4LDU2IEBACiAKICNpZmRlZiBIQVZFX0NIRkxBR1MKIFB5RG9jX1NUUlZBUihwb3NpeF9jaGZsYWdzX19kb2NfXywKLSJjaGZsYWdzKHBhdGgsIGZsYWdzKVxuXG5cCi1TZXQgZmlsZSBmbGFncy4iKTsKKyJjaGZsYWdzKHBhdGgsIGZsYWdzLCAqLCBmb2xsb3dfc3ltbGlua3M9VHJ1ZSlcblxuXAorU2V0IGZpbGUgZmxhZ3MuXG5cCitcblwKK0lmIGZvbGxvd19zeW1saW5rcyBpcyBGYWxzZSwgYW5kIHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhlIHBhdGggaXMgYSBzeW1ib2xpY1xuXAorICBsaW5rLCBjaGZsYWdzIHdpbGwgY2hhbmdlIGZsYWdzIG9uIHRoZSBzeW1ib2xpYyBsaW5rIGl0c2VsZiBpbnN0ZWFkIG9mIHRoZVxuXAorICBmaWxlIHRoZSBsaW5rIHBvaW50cyB0by5cblwKK2ZvbGxvd19zeW1saW5rcyBtYXkgbm90IGJlIGltcGxlbWVudGVkIG9uIHlvdXIgcGxhdGZvcm0uICBJZiBpdCBpc1xuXAordW5hdmFpbGFibGUsIHVzaW5nIGl0IHdpbGwgcmFpc2UgYSBOb3RJbXBsZW1lbnRlZEVycm9yLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfY2hmbGFncyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitwb3NpeF9jaGZsYWdzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKLSAgICBQeU9iamVjdCAqb3BhdGg7Ci0gICAgY2hhciAqcGF0aDsKKyAgICBwYXRoX3QgcGF0aDsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwotICAgIGludCByZXM7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJms6Y2hmbGFncyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9wYXRoLCAmZmxhZ3MpKQorICAgIGludCBmb2xsb3dfc3ltbGlua3MgPSAxOworICAgIGludCByZXN1bHQ7CisgICAgUHlPYmplY3QgKnJldHVybl92YWx1ZTsKKyAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsICJmbGFncyIsICJmb2xsb3dfc3ltbGlua3MiLCBOVUxMfTsKKworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJmt8JGk6Y2hmbGFncyIsIGtleXdvcmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZmbGFncywgJmZvbGxvd19zeW1saW5rcykpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHBhdGggPSBQeUJ5dGVzX0FzU3RyaW5nKG9wYXRoKTsKKworI2lmbmRlZiBIQVZFX0xDSEZMQUdTCisgICAgaWYgKGZvbGxvd19zeW1saW5rc19zcGVjaWZpZWQoImNoZmxhZ3MiLCBmb2xsb3dfc3ltbGlua3MpKQorICAgICAgICBnb3RvIGV4aXQ7CisjZW5kaWYKKwogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSBjaGZsYWdzKHBhdGgsIGZsYWdzKTsKKyNpZmRlZiBIQVZFX0xDSEZMQUdTCisgICAgaWYgKCFmb2xsb3dfc3ltbGlua3MpCisgICAgICAgIHJlc3VsdCA9IGxjaGZsYWdzKHBhdGgubmFycm93LCBmbGFncyk7CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIHJlc3VsdCA9IGNoZmxhZ3MocGF0aC5uYXJyb3csIGZsYWdzKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIGlmIChyZXMgPCAwKQotICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3Jfd2l0aF9hbGxvY2F0ZWRfZmlsZW5hbWUob3BhdGgpOwotICAgIFB5X0RFQ1JFRihvcGF0aCk7CisKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfcG9zaXhfZXJyb3IoImNoZmxhZ3MiLCAmcGF0aCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByZXR1cm5fdmFsdWUgPSBQeV9Ob25lOwogICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICByZXR1cm4gUHlfTm9uZTsKKworZXhpdDoKKyAgICBwYXRoX2NsZWFudXAoJnBhdGgpOworICAgIHJldHVybiByZXR1cm5fdmFsdWU7CiB9CiAjZW5kaWYgLyogSEFWRV9DSEZMQUdTICovCiAKQEAgLTIwOTUsNyArMjg1NSw4IEBACiBQeURvY19TVFJWQVIocG9zaXhfbGNoZmxhZ3NfX2RvY19fLAogImxjaGZsYWdzKHBhdGgsIGZsYWdzKVxuXG5cCiBTZXQgZmlsZSBmbGFncy5cblwKLVRoaXMgZnVuY3Rpb24gd2lsbCBub3QgZm9sbG93IHN5bWJvbGljIGxpbmtzLiIpOworVGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBmb2xsb3cgc3ltYm9saWMgbGlua3MuXG5cCitFcXVpdmFsZW50IHRvIGNoZmxhZ3MocGF0aCwgZmxhZ3MsIGZvbGxvd19zeW1saW5rcz1GYWxzZSkuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBwb3NpeF9sY2hmbGFncyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCkBAIC0yMTQzLDYgKzI5MDQsMjEgQEAKIH0KICNlbmRpZiAvKiBIQVZFX0ZTWU5DICovCiAKKyNpZmRlZiBIQVZFX1NZTkMKK1B5RG9jX1NUUlZBUihwb3NpeF9zeW5jX19kb2NfXywKKyJzeW5jKClcblxuXAorRm9yY2Ugd3JpdGUgb2YgZXZlcnl0aGluZyB0byBkaXNrLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfc3luYyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm5vYXJncykKK3sKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgc3luYygpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisjZW5kaWYKKwogI2lmZGVmIEhBVkVfRkRBVEFTWU5DCiAKICNpZmRlZiBfX2hwdXgKQEAgLTIxNjQsMjkgKzI5NDAsMTA1IEBACiAKICNpZmRlZiBIQVZFX0NIT1dOCiBQeURvY19TVFJWQVIocG9zaXhfY2hvd25fX2RvY19fLAotImNob3duKHBhdGgsIHVpZCwgZ2lkKVxuXG5cCi1DaGFuZ2UgdGhlIG93bmVyIGFuZCBncm91cCBpZCBvZiBwYXRoIHRvIHRoZSBudW1lcmljIHVpZCBhbmQgZ2lkLiIpOworImNob3duKHBhdGgsIHVpZCwgZ2lkLCAqLCBkaXJfZmQ9Tm9uZSwgZm9sbG93X3N5bWxpbmtzPVRydWUpXG5cblwKK0NoYW5nZSB0aGUgb3duZXIgYW5kIGdyb3VwIGlkIG9mIHBhdGggdG8gdGhlIG51bWVyaWMgdWlkIGFuZCBnaWQuXG5cCitcblwKK3BhdGggbWF5IGFsd2F5cyBiZSBzcGVjaWZpZWQgYXMgYSBzdHJpbmcuXG5cCitPbiBzb21lIHBsYXRmb3JtcywgcGF0aCBtYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuXG5cCisgIElmIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgcmFpc2VzIGFuIGV4Y2VwdGlvbi5cblwKK0lmIGRpcl9mZCBpcyBub3QgTm9uZSwgaXQgc2hvdWxkIGJlIGEgZmlsZSBkZXNjcmlwdG9yIG9wZW4gdG8gYSBkaXJlY3RvcnksXG5cCisgIGFuZCBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZTsgcGF0aCB3aWxsIHRoZW4gYmUgcmVsYXRpdmUgdG8gdGhhdCBkaXJlY3RvcnkuXG5cCitJZiBmb2xsb3dfc3ltbGlua3MgaXMgRmFsc2UsIGFuZCB0aGUgbGFzdCBlbGVtZW50IG9mIHRoZSBwYXRoIGlzIGEgc3ltYm9saWNcblwKKyAgbGluaywgY2hvd24gd2lsbCBtb2RpZnkgdGhlIHN5bWJvbGljIGxpbmsgaXRzZWxmIGluc3RlYWQgb2YgdGhlIGZpbGUgdGhlXG5cCisgIGxpbmsgcG9pbnRzIHRvLlxuXAorSXQgaXMgYW4gZXJyb3IgdG8gdXNlIGRpcl9mZCBvciBmb2xsb3dfc3ltbGlua3Mgd2hlbiBzcGVjaWZ5aW5nIHBhdGggYXNcblwKKyAgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuXG5cCitkaXJfZmQgYW5kIGZvbGxvd19zeW1saW5rcyBtYXkgbm90IGJlIGltcGxlbWVudGVkIG9uIHlvdXIgcGxhdGZvcm0uXG5cCisgIElmIHRoZXkgYXJlIHVuYXZhaWxhYmxlLCB1c2luZyB0aGVtIHdpbGwgcmFpc2UgYSBOb3RJbXBsZW1lbnRlZEVycm9yLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfY2hvd24oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorcG9zaXhfY2hvd24oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQogewotICAgIFB5T2JqZWN0ICpvcGF0aDsKLSAgICBjaGFyICpwYXRoOwotICAgIGxvbmcgdWlkLCBnaWQ7Ci0gICAgaW50IHJlczsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mbGw6Y2hvd24iLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsICZvcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJnVpZCwgJmdpZCkpCisgICAgcGF0aF90IHBhdGg7CisgICAgbG9uZyB1aWRfbCwgZ2lkX2w7CisgICAgdWlkX3QgdWlkOworICAgIGdpZF90IGdpZDsKKyAgICBpbnQgZGlyX2ZkID0gREVGQVVMVF9ESVJfRkQ7CisgICAgaW50IGZvbGxvd19zeW1saW5rcyA9IDE7CisgICAgaW50IHJlc3VsdDsKKyAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlID0gTlVMTDsKKyAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsICJ1aWQiLCAiZ2lkIiwgImRpcl9mZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvbGxvd19zeW1saW5rcyIsIE5VTEx9OworCisgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworI2lmZGVmIEhBVkVfRkNIT1dOCisgICAgcGF0aC5hbGxvd19mZCA9IDE7CisjZW5kaWYKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJmxsfCRPJnA6Y2hvd24iLCBrZXl3b3JkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnVpZF9sLCAmZ2lkX2wsCisjaWZkZWYgSEFWRV9GQ0hPV05BVAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcl9mZF9jb252ZXJ0ZXIsICZkaXJfZmQsCisjZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcl9mZF91bmF2YWlsYWJsZSwgJmRpcl9mZCwKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb2xsb3dfc3ltbGlua3MpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBwYXRoID0gUHlCeXRlc19Bc1N0cmluZyhvcGF0aCk7CisKKyNpZiAhKGRlZmluZWQoSEFWRV9MQ0hPV04pIHx8IGRlZmluZWQoSEFWRV9GQ0hPV05BVCkpCisgICAgaWYgKGZvbGxvd19zeW1saW5rc19zcGVjaWZpZWQoImNob3duIiwgZm9sbG93X3N5bWxpbmtzKSkKKyAgICAgICAgZ290byBleGl0OworI2VuZGlmCisgICAgaWYgKGRpcl9mZF9hbmRfZmRfaW52YWxpZCgiY2hvd24iLCBkaXJfZmQsIHBhdGguZmQpIHx8CisgICAgICAgIGZkX2FuZF9mb2xsb3dfc3ltbGlua3NfaW52YWxpZCgiY2hvd24iLCBwYXRoLmZkLCBmb2xsb3dfc3ltbGlua3MpKQorICAgICAgICBnb3RvIGV4aXQ7CisKKyNpZmRlZiBfX0FQUExFX18KKyAgICAvKgorICAgICAqIFRoaXMgaXMgZm9yIE1hYyBPUyBYIDEwLjMsIHdoaWNoIGRvZXNuJ3QgaGF2ZSBsY2hvd24uCisgICAgICogKEJ1dCB3ZSBzdGlsbCBoYXZlIGFuIGxjaG93biBzeW1ib2wgYmVjYXVzZSBvZiB3ZWFrLWxpbmtpbmcuKQorICAgICAqIEl0IGRvZXNuJ3QgaGF2ZSBmY2hvd25hdCBlaXRoZXIuICBTbyB0aGVyZSdzIG5vIHBvc3NpYmlsaXR5CisgICAgICogb2YgYSBncmFjZWZ1bCBmYWlsb3Zlci4KKyAgICAgKi8KKyAgICBpZiAoKCFmb2xsb3dfc3ltbGlua3MpICYmIChsY2hvd24gPT0gTlVMTCkpIHsKKyAgICAgICAgZm9sbG93X3N5bWxpbmtzX3NwZWNpZmllZCgiY2hvd24iLCBmb2xsb3dfc3ltbGlua3MpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorI2VuZGlmCisKICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgcmVzID0gY2hvd24ocGF0aCwgKHVpZF90KSB1aWQsIChnaWRfdCkgZ2lkKTsKKyAgICB1aWQgPSAodWlkX3QpdWlkX2w7CisgICAgZ2lkID0gKHVpZF90KWdpZF9sOworI2lmZGVmIEhBVkVfRkNIT1dOCisgICAgaWYgKHBhdGguZmQgIT0gLTEpCisgICAgICAgIHJlc3VsdCA9IGZjaG93bihwYXRoLmZkLCB1aWQsIGdpZCk7CisgICAgZWxzZQorI2VuZGlmCisjaWZkZWYgSEFWRV9MQ0hPV04KKyAgICBpZiAoKCFmb2xsb3dfc3ltbGlua3MpICYmIChkaXJfZmQgPT0gREVGQVVMVF9ESVJfRkQpKQorICAgICAgICByZXN1bHQgPSBsY2hvd24ocGF0aC5uYXJyb3csIHVpZCwgZ2lkKTsKKyAgICBlbHNlCisjZW5kaWYKKyNpZmRlZiBIQVZFX0ZDSE9XTkFUCisgICAgaWYgKChkaXJfZmQgIT0gREVGQVVMVF9ESVJfRkQpIHx8ICghZm9sbG93X3N5bWxpbmtzKSkKKyAgICAgICAgcmVzdWx0ID0gZmNob3duYXQoZGlyX2ZkLCBwYXRoLm5hcnJvdywgdWlkLCBnaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19zeW1saW5rcyA/IDAgOiBBVF9TWU1MSU5LX05PRk9MTE9XKTsKKyAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgcmVzdWx0ID0gY2hvd24ocGF0aC5uYXJyb3csIHVpZCwgZ2lkKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIGlmIChyZXMgPCAwKQotICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3Jfd2l0aF9hbGxvY2F0ZWRfZmlsZW5hbWUob3BhdGgpOwotICAgIFB5X0RFQ1JFRihvcGF0aCk7CisKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfcG9zaXhfZXJyb3IoImNob3duIiwgJnBhdGgpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgcmV0dXJuX3ZhbHVlID0gUHlfTm9uZTsKICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7CisKK2V4aXQ6CisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICByZXR1cm4gcmV0dXJuX3ZhbHVlOwogfQogI2VuZGlmIC8qIEhBVkVfQ0hPV04gKi8KIApAQCAtMjE5NCw3ICszMDQ2LDcgQEAKIFB5RG9jX1NUUlZBUihwb3NpeF9mY2hvd25fX2RvY19fLAogImZjaG93bihmZCwgdWlkLCBnaWQpXG5cblwKIENoYW5nZSB0aGUgb3duZXIgYW5kIGdyb3VwIGlkIG9mIHRoZSBmaWxlIGdpdmVuIGJ5IGZpbGUgZGVzY3JpcHRvclxuXAotZmQgdG8gdGhlIG51bWVyaWMgdWlkIGFuZCBnaWQuIik7CitmZCB0byB0aGUgbnVtZXJpYyB1aWQgYW5kIGdpZC4gIEVxdWl2YWxlbnQgdG8gb3MuY2hvd24oZmQsIHVpZCwgZ2lkKS4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKIHBvc2l4X2ZjaG93bihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCkBAIC0yMjE3LDcgKzMwNjksOCBAQAogUHlEb2NfU1RSVkFSKHBvc2l4X2xjaG93bl9fZG9jX18sCiAibGNob3duKHBhdGgsIHVpZCwgZ2lkKVxuXG5cCiBDaGFuZ2UgdGhlIG93bmVyIGFuZCBncm91cCBpZCBvZiBwYXRoIHRvIHRoZSBudW1lcmljIHVpZCBhbmQgZ2lkLlxuXAotVGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBmb2xsb3cgc3ltYm9saWMgbGlua3MuIik7CitUaGlzIGZ1bmN0aW9uIHdpbGwgbm90IGZvbGxvdyBzeW1ib2xpYyBsaW5rcy5cblwKK0VxdWl2YWxlbnQgdG8gb3MuY2hvd24ocGF0aCwgdWlkLCBnaWQsIGZvbGxvd19zeW1saW5rcz1GYWxzZSkuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBwb3NpeF9sY2hvd24oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQpAQCAtMjI3OSw2ICszMTMyLDkgQEAKICAgICAgICAgaWYgKHdidWYyICE9IHdidWYpIGZyZWUod2J1ZjIpOwogICAgICAgICByZXR1cm4gcmVzb2JqOwogICAgIH0KKworICAgIGlmICh3aW4zMl93YXJuX2J5dGVzX2FwaSgpKQorICAgICAgICByZXR1cm4gTlVMTDsKICNlbmRpZgogCiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwpAQCAtMjMxNiwxNTAgKzMxNzIsMjI2IEBACiB9CiAjZW5kaWYKIAorI2lmICgoIWRlZmluZWQoSEFWRV9MSU5LKSkgJiYgZGVmaW5lZChNU19XSU5ET1dTKSkKKyNkZWZpbmUgSEFWRV9MSU5LIDEKKyNlbmRpZgogCiAjaWZkZWYgSEFWRV9MSU5LCiBQeURvY19TVFJWQVIocG9zaXhfbGlua19fZG9jX18sCi0ibGluayhzcmMsIGRzdClcblxuXAotQ3JlYXRlIGEgaGFyZCBsaW5rIHRvIGEgZmlsZS4iKTsKKyJsaW5rKHNyYywgZHN0LCAqLCBzcmNfZGlyX2ZkPU5vbmUsIGRzdF9kaXJfZmQ9Tm9uZSwgZm9sbG93X3N5bWxpbmtzPVRydWUpXG5cblwKK0NyZWF0ZSBhIGhhcmQgbGluayB0byBhIGZpbGUuXG5cCitcblwKK0lmIGVpdGhlciBzcmNfZGlyX2ZkIG9yIGRzdF9kaXJfZmQgaXMgbm90IE5vbmUsIGl0IHNob3VsZCBiZSBhIGZpbGVcblwKKyAgZGVzY3JpcHRvciBvcGVuIHRvIGEgZGlyZWN0b3J5LCBhbmQgdGhlIHJlc3BlY3RpdmUgcGF0aCBzdHJpbmcgKHNyYyBvciBkc3QpXG5cCisgIHNob3VsZCBiZSByZWxhdGl2ZTsgdGhlIHBhdGggd2lsbCB0aGVuIGJlIHJlbGF0aXZlIHRvIHRoYXQgZGlyZWN0b3J5LlxuXAorSWYgZm9sbG93X3N5bWxpbmtzIGlzIEZhbHNlLCBhbmQgdGhlIGxhc3QgZWxlbWVudCBvZiBzcmMgaXMgYSBzeW1ib2xpY1xuXAorICBsaW5rLCBsaW5rIHdpbGwgY3JlYXRlIGEgbGluayB0byB0aGUgc3ltYm9saWMgbGluayBpdHNlbGYgaW5zdGVhZCBvZiB0aGVcblwKKyAgZmlsZSB0aGUgbGluayBwb2ludHMgdG8uXG5cCitzcmNfZGlyX2ZkLCBkc3RfZGlyX2ZkLCBhbmQgZm9sbG93X3N5bWxpbmtzIG1heSBub3QgYmUgaW1wbGVtZW50ZWQgb24geW91clxuXAorICBwbGF0Zm9ybS4gIElmIHRoZXkgYXJlIHVuYXZhaWxhYmxlLCB1c2luZyB0aGVtIHdpbGwgcmFpc2UgYVxuXAorICBOb3RJbXBsZW1lbnRlZEVycm9yLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfbGluayhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitwb3NpeF9saW5rKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKLSAgICByZXR1cm4gcG9zaXhfMnN0cihhcmdzLCAiTyZPJjpsaW5rIiwgbGluayk7Ci19Ci0jZW5kaWYgLyogSEFWRV9MSU5LICovCi0KKyAgICBwYXRoX3Qgc3JjLCBkc3Q7CisgICAgaW50IHNyY19kaXJfZmQgPSBERUZBVUxUX0RJUl9GRDsKKyAgICBpbnQgZHN0X2Rpcl9mZCA9IERFRkFVTFRfRElSX0ZEOworICAgIGludCBmb2xsb3dfc3ltbGlua3MgPSAxOworICAgIFB5T2JqZWN0ICpyZXR1cm5fdmFsdWUgPSBOVUxMOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJzcmMiLCAiZHN0IiwgInNyY19kaXJfZmQiLCAiZHN0X2Rpcl9mZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvbGxvd19zeW1saW5rcyIsIE5VTEx9OwogI2lmZGVmIE1TX1dJTkRPV1MKLVB5RG9jX1NUUlZBUih3aW4zMl9saW5rX19kb2NfXywKLSJsaW5rKHNyYywgZHN0KVxuXG5cCi1DcmVhdGUgYSBoYXJkIGxpbmsgdG8gYSBmaWxlLiIpOworICAgIEJPT0wgcmVzdWx0OworI2Vsc2UKKyAgICBpbnQgcmVzdWx0OworI2VuZGlmCiAKLXN0YXRpYyBQeU9iamVjdCAqCi13aW4zMl9saW5rKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBQeU9iamVjdCAqb3NyYywgKm9kc3Q7Ci0gICAgY2hhciAqc3JjLCAqZHN0OwotICAgIEJPT0wgcnNsdDsKLQotICAgIFB5VW5pY29kZU9iamVjdCAqdXNyYywgKnVkc3Q7Ci0gICAgaWYgKFB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlVVOmxpbmsiLCAmdXNyYywgJnVkc3QpKSB7Ci0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgcnNsdCA9IENyZWF0ZUhhcmRMaW5rVyhQeVVuaWNvZGVfQVNfVU5JQ09ERSh1ZHN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERSh1c3JjKSwgTlVMTCk7Ci0gICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICAgICAgaWYgKHJzbHQgPT0gMCkKLSAgICAgICAgICAgIHJldHVybiB3aW4zMl9lcnJvcigibGluayIsIE5VTEwpOwotCi0gICAgICAgIFB5X1JFVFVSTl9OT05FOwotICAgIH0KLQotICAgIC8qIE5hcnJvdyBzdHJpbmdzIGFsc28gdmFsaWQuICovCi0gICAgUHlFcnJfQ2xlYXIoKTsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyZPJjpsaW5rIiwgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3NyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb2RzdCkpCisgICAgbWVtc2V0KCZzcmMsIDAsIHNpemVvZihzcmMpKTsKKyAgICBtZW1zZXQoJmRzdCwgMCwgc2l6ZW9mKGRzdCkpOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8mTyZ8TyZPJnA6bGluayIsIGtleXdvcmRzLAorICAgICAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZzcmMsCisgICAgICAgICAgICBwYXRoX2NvbnZlcnRlciwgJmRzdCwKKyAgICAgICAgICAgIGRpcl9mZF9jb252ZXJ0ZXIsICZzcmNfZGlyX2ZkLAorICAgICAgICAgICAgZGlyX2ZkX2NvbnZlcnRlciwgJmRzdF9kaXJfZmQsCisgICAgICAgICAgICAmZm9sbG93X3N5bWxpbmtzKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBzcmMgPSBQeUJ5dGVzX0FzU3RyaW5nKG9zcmMpOwotICAgIGRzdCA9IFB5Qnl0ZXNfQXNTdHJpbmcob2RzdCk7CisjaWZuZGVmIEhBVkVfTElOS0FUCisgICAgaWYgKChzcmNfZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKSB8fCAoZHN0X2Rpcl9mZCAhPSBERUZBVUxUX0RJUl9GRCkpIHsKKyAgICAgICAgYXJndW1lbnRfdW5hdmFpbGFibGVfZXJyb3IoImxpbmsiLCAic3JjX2Rpcl9mZCBhbmQgZHN0X2Rpcl9mZCIpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorI2VuZGlmCiAKKyAgICBpZiAoKHNyYy5uYXJyb3cgJiYgZHN0LndpZGUpIHx8IChzcmMud2lkZSAmJiBkc3QubmFycm93KSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJsaW5rOiBzcmMgYW5kIGRzdCBtdXN0IGJlIHRoZSBzYW1lIHR5cGUiKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworI2lmZGVmIE1TX1dJTkRPV1MKICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgcnNsdCA9IENyZWF0ZUhhcmRMaW5rQShkc3QsIHNyYywgTlVMTCk7CisgICAgaWYgKHNyYy53aWRlKQorICAgICAgICByZXN1bHQgPSBDcmVhdGVIYXJkTGlua1coZHN0LndpZGUsIHNyYy53aWRlLCBOVUxMKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IENyZWF0ZUhhcmRMaW5rQShkc3QubmFycm93LCBzcmMubmFycm93LCBOVUxMKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogCi0gICAgUHlfREVDUkVGKG9zcmMpOwotICAgIFB5X0RFQ1JFRihvZHN0KTsKLSAgICBpZiAocnNsdCA9PSAwKQotICAgICAgICByZXR1cm4gd2luMzJfZXJyb3IoImxpbmsiLCBOVUxMKTsKKyAgICBpZiAoIXJlc3VsdCkgeworICAgICAgICByZXR1cm5fdmFsdWUgPSB3aW4zMl9lcnJvcl9vYmplY3QoImxpbmsiLCBkc3Qub2JqZWN0KTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyNlbHNlCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworI2lmZGVmIEhBVkVfTElOS0FUCisgICAgaWYgKChzcmNfZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKSB8fAorICAgICAgICAoZHN0X2Rpcl9mZCAhPSBERUZBVUxUX0RJUl9GRCkgfHwKKyAgICAgICAgKCFmb2xsb3dfc3ltbGlua3MpKQorICAgICAgICByZXN1bHQgPSBsaW5rYXQoc3JjX2Rpcl9mZCwgc3JjLm5hcnJvdywKKyAgICAgICAgICAgIGRzdF9kaXJfZmQsIGRzdC5uYXJyb3csCisgICAgICAgICAgICBmb2xsb3dfc3ltbGlua3MgPyBBVF9TWU1MSU5LX0ZPTExPVyA6IDApOworICAgIGVsc2UKKyNlbmRpZgorICAgICAgICByZXN1bHQgPSBsaW5rKHNyYy5uYXJyb3csIGRzdC5uYXJyb3cpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKLSAgICBQeV9SRVRVUk5fTk9ORTsKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoImxpbmsiLCAmZHN0KTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuX3ZhbHVlID0gUHlfTm9uZTsKKyAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisKK2V4aXQ6CisgICAgcGF0aF9jbGVhbnVwKCZzcmMpOworICAgIHBhdGhfY2xlYW51cCgmZHN0KTsKKyAgICByZXR1cm4gcmV0dXJuX3ZhbHVlOwogfQotI2VuZGlmIC8qIE1TX1dJTkRPV1MgKi8KKyNlbmRpZgorCiAKIAogUHlEb2NfU1RSVkFSKHBvc2l4X2xpc3RkaXJfX2RvY19fLAotImxpc3RkaXIoW3BhdGhdKSAtPiBsaXN0X29mX3N0cmluZ3NcblxuXAotUmV0dXJuIGEgbGlzdCBjb250YWluaW5nIHRoZSBuYW1lcyBvZiB0aGUgZW50cmllcyBpbiB0aGUgZGlyZWN0b3J5LlxuXAotXG5cCi0gICAgcGF0aDogcGF0aCBvZiBkaXJlY3RvcnkgdG8gbGlzdCAoZGVmYXVsdDogJy4nKVxuXAotXG5cCisibGlzdGRpcihwYXRoPScuJykgLT4gbGlzdF9vZl9maWxlbmFtZXNcblxuXAorUmV0dXJuIGEgbGlzdCBjb250YWluaW5nIHRoZSBuYW1lcyBvZiB0aGUgZmlsZXMgaW4gdGhlIGRpcmVjdG9yeS5cblwKIFRoZSBsaXN0IGlzIGluIGFyYml0cmFyeSBvcmRlci4gIEl0IGRvZXMgbm90IGluY2x1ZGUgdGhlIHNwZWNpYWxcblwKLWVudHJpZXMgJy4nIGFuZCAnLi4nIGV2ZW4gaWYgdGhleSBhcmUgcHJlc2VudCBpbiB0aGUgZGlyZWN0b3J5LiIpOworZW50cmllcyAnLicgYW5kICcuLicgZXZlbiBpZiB0aGV5IGFyZSBwcmVzZW50IGluIHRoZSBkaXJlY3RvcnkuXG5cCitcblwKK3BhdGggY2FuIGJlIHNwZWNpZmllZCBhcyBlaXRoZXIgc3RyIG9yIGJ5dGVzLiAgSWYgcGF0aCBpcyBieXRlcyxcblwKKyAgdGhlIGZpbGVuYW1lcyByZXR1cm5lZCB3aWxsIGFsc28gYmUgYnl0ZXM7IGluIGFsbCBvdGhlciBjaXJjdW1zdGFuY2VzXG5cCisgIHRoZSBmaWxlbmFtZXMgcmV0dXJuZWQgd2lsbCBiZSBzdHIuXG5cCitPbiBzb21lIHBsYXRmb3JtcywgcGF0aCBtYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3I7XG5cCisgIHRoZSBmaWxlIGRlc2NyaXB0b3IgbXVzdCByZWZlciB0byBhIGRpcmVjdG9yeS5cblwKKyAgSWYgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVuYXZhaWxhYmxlLCB1c2luZyBpdCByYWlzZXMgTm90SW1wbGVtZW50ZWRFcnJvci4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X2xpc3RkaXIoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorcG9zaXhfbGlzdGRpcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCiB7CisgICAgcGF0aF90IHBhdGg7CisgICAgUHlPYmplY3QgKmxpc3QgPSBOVUxMOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgTlVMTH07CisgICAgaW50IGZkID0gLTE7CisKKyNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpICYmICFkZWZpbmVkKEhBVkVfT1BFTkRJUikKKyAgICBQeU9iamVjdCAqdjsKKyAgICBIQU5ETEUgaEZpbmRGaWxlID0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7CisgICAgQk9PTCByZXN1bHQ7CisgICAgV0lOMzJfRklORF9EQVRBIEZpbGVEYXRhOworICAgIGNoYXIgbmFtZWJ1ZltNQVhfUEFUSCs1XTsgLyogT3ZlcmFsbG9jYXRlIGZvciBcXCouKlwwICovCisgICAgY2hhciAqYnVmcHRyID0gbmFtZWJ1ZjsKKyAgICAvKiBvbmx5IGNsYWltIHRvIGhhdmUgc3BhY2UgZm9yIE1BWF9QQVRIICovCisgICAgUHlfc3NpemVfdCBsZW4gPSBzaXplb2YobmFtZWJ1ZiktNTsKKyAgICBQeU9iamVjdCAqcG8gPSBOVUxMOworICAgIHdjaGFyX3QgKnduYW1lYnVmID0gTlVMTDsKKyNlbGlmIGRlZmluZWQoUFlPU19PUzIpCisjaWZuZGVmIE1BWF9QQVRICisjZGVmaW5lIE1BWF9QQVRIICAgIENDSE1BWFBBVEgKKyNlbmRpZgorICAgIGNoYXIgKnB0OworICAgIFB5T2JqZWN0ICp2OworICAgIGNoYXIgbmFtZWJ1ZltNQVhfUEFUSCs1XTsKKyAgICBIRElSICBoZGlyID0gMTsKKyAgICBVTE9ORyBzcmNoY250ID0gMTsKKyAgICBGSUxFRklOREJVRjMgICBlcDsKKyAgICBBUElSRVQgcmM7CisjZWxzZQorICAgIFB5T2JqZWN0ICp2OworICAgIERJUiAqZGlycCA9IE5VTEw7CisgICAgc3RydWN0IGRpcmVudCAqZXA7CisgICAgaW50IHJldHVybl9zdHI7IC8qIGlmIGZhbHNlLCByZXR1cm4gYnl0ZXMgKi8KKyNlbmRpZgorCisgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIHBhdGgubnVsbGFibGUgPSAxOworI2lmZGVmIEhBVkVfRkRPUEVORElSCisgICAgcGF0aC5hbGxvd19mZCA9IDE7CisgICAgcGF0aC5mZCA9IC0xOworI2VuZGlmCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAifE8mOmxpc3RkaXIiLCBrZXl3b3JkcywKKyAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoCisgICAgICAgICkpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgLyogWFhYIFNob3VsZCByZWRvIHRoaXMgcHV0dGluZyB0aGUgKG5vdyBmb3VyKSB2ZXJzaW9ucyBvZiBvcGVuZGlyCiAgICAgICAgaW4gc2VwYXJhdGUgZmlsZXMgaW5zdGVhZCBvZiBoYXZpbmcgdGhlbSBhbGwgaGVyZS4uLiAqLwogI2lmIGRlZmluZWQoTVNfV0lORE9XUykgJiYgIWRlZmluZWQoSEFWRV9PUEVORElSKQotCi0gICAgUHlPYmplY3QgKmQsICp2OwotICAgIEhBTkRMRSBoRmluZEZpbGU7Ci0gICAgQk9PTCByZXN1bHQ7Ci0gICAgV0lOMzJfRklORF9EQVRBIEZpbGVEYXRhOwotICAgIFB5T2JqZWN0ICpvcGF0aDsKLSAgICBjaGFyIG5hbWVidWZbTUFYX1BBVEgrNV07IC8qIE92ZXJhbGxvY2F0ZSBmb3IgXFwqLipcMCAqLwotICAgIGNoYXIgKmJ1ZnB0ciA9IG5hbWVidWY7Ci0gICAgUHlfc3NpemVfdCBsZW4gPSBzaXplb2YobmFtZWJ1ZiktNTsgLyogb25seSBjbGFpbSB0byBoYXZlIHNwYWNlIGZvciBNQVhfUEFUSCAqLwotCi0gICAgUHlPYmplY3QgKnBvID0gTlVMTDsKLSAgICBpZiAoUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifFU6bGlzdGRpciIsICZwbykpIHsKKyAgICBpZiAoIXBhdGgubmFycm93KSB7CiAgICAgICAgIFdJTjMyX0ZJTkRfREFUQVcgd0ZpbGVEYXRhOwotICAgICAgICBQeV9VTklDT0RFICp3bmFtZWJ1ZiwgKnBvX3djaGFyczsKKyAgICAgICAgd2NoYXJfdCAqcG9fd2NoYXJzOwogCi0gICAgICAgIGlmIChwbyA9PSBOVUxMKSB7IC8qIERlZmF1bHQgYXJnOiAiLiIgKi8KKyAgICAgICAgaWYgKCFwYXRoLndpZGUpIHsgLyogRGVmYXVsdCBhcmc6ICIuIiAqLwogICAgICAgICAgICAgcG9fd2NoYXJzID0gTCIuIjsKICAgICAgICAgICAgIGxlbiA9IDE7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwb193Y2hhcnMgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShwbyk7Ci0gICAgICAgICAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUocG8pOworICAgICAgICAgICAgcG9fd2NoYXJzID0gcGF0aC53aWRlOworICAgICAgICAgICAgbGVuID0gd2NzbGVuKHBhdGgud2lkZSk7CiAgICAgICAgIH0KLSAgICAgICAgLyogT3ZlcmFsbG9jYXRlIGZvciBcXCouKlwwICovCisgICAgICAgIC8qIFRoZSArNSBpcyBzbyB3ZSBjYW4gYXBwZW5kICJcXCouKlwwIiAqLwogICAgICAgICB3bmFtZWJ1ZiA9IG1hbGxvYygobGVuICsgNSkgKiBzaXplb2Yod2NoYXJfdCkpOwogICAgICAgICBpZiAoIXduYW1lYnVmKSB7CiAgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CiAgICAgICAgIH0KICAgICAgICAgd2NzY3B5KHduYW1lYnVmLCBwb193Y2hhcnMpOwogICAgICAgICBpZiAobGVuID4gMCkgewotICAgICAgICAgICAgUHlfVU5JQ09ERSB3Y2ggPSB3bmFtZWJ1ZltsZW4tMV07CisgICAgICAgICAgICB3Y2hhcl90IHdjaCA9IHduYW1lYnVmW2xlbi0xXTsKICAgICAgICAgICAgIGlmICh3Y2ggIT0gTCcvJyAmJiB3Y2ggIT0gTCdcXCcgJiYgd2NoICE9IEwnOicpCiAgICAgICAgICAgICAgICAgd25hbWVidWZbbGVuKytdID0gTCdcXCc7CiAgICAgICAgICAgICB3Y3NjcHkod25hbWVidWYgKyBsZW4sIEwiKi4qIik7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKChkID0gUHlMaXN0X05ldygwKSkgPT0gTlVMTCkgewotICAgICAgICAgICAgZnJlZSh3bmFtZWJ1Zik7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWYgKChsaXN0ID0gUHlMaXN0X05ldygwKSkgPT0gTlVMTCkgeworICAgICAgICAgICAgZ290byBleGl0OwogICAgICAgICB9CiAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICAgICAgICAgaEZpbmRGaWxlID0gRmluZEZpcnN0RmlsZVcod25hbWVidWYsICZ3RmlsZURhdGEpOwogICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogICAgICAgICBpZiAoaEZpbmRGaWxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7CiAgICAgICAgICAgICBpbnQgZXJyb3IgPSBHZXRMYXN0RXJyb3IoKTsKLSAgICAgICAgICAgIGlmIChlcnJvciA9PSBFUlJPUl9GSUxFX05PVF9GT1VORCkgewotICAgICAgICAgICAgICAgIGZyZWUod25hbWVidWYpOwotICAgICAgICAgICAgICAgIHJldHVybiBkOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgUHlfREVDUkVGKGQpOworICAgICAgICAgICAgaWYgKGVycm9yID09IEVSUk9SX0ZJTEVfTk9UX0ZPVU5EKQorICAgICAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgICAgIGxpc3QgPSBOVUxMOwogICAgICAgICAgICAgd2luMzJfZXJyb3JfdW5pY29kZSgiRmluZEZpcnN0RmlsZVciLCB3bmFtZWJ1Zik7Ci0gICAgICAgICAgICBmcmVlKHduYW1lYnVmKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgZ290byBleGl0OwogICAgICAgICB9CiAgICAgICAgIGRvIHsKICAgICAgICAgICAgIC8qIFNraXAgb3ZlciAuIGFuZCAuLiAqLwogICAgICAgICAgICAgaWYgKHdjc2NtcCh3RmlsZURhdGEuY0ZpbGVOYW1lLCBMIi4iKSAhPSAwICYmCiAgICAgICAgICAgICAgICAgd2NzY21wKHdGaWxlRGF0YS5jRmlsZU5hbWUsIEwiLi4iKSAhPSAwKSB7Ci0gICAgICAgICAgICAgICAgdiA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZSh3RmlsZURhdGEuY0ZpbGVOYW1lLCB3Y3NsZW4od0ZpbGVEYXRhLmNGaWxlTmFtZSkpOworICAgICAgICAgICAgICAgIHYgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHdGaWxlRGF0YS5jRmlsZU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2NzbGVuKHdGaWxlRGF0YS5jRmlsZU5hbWUpKTsKICAgICAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkKTsKLSAgICAgICAgICAgICAgICAgICAgZCA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IE5VTEw7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChkLCB2KSAhPSAwKSB7CisgICAgICAgICAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQobGlzdCwgdikgIT0gMCkgewogICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkKTsKLSAgICAgICAgICAgICAgICAgICAgZCA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgbGlzdCA9IE5VTEw7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodik7CkBAIC0yNDcwLDM4ICszNDAyLDE2IEBACiAgICAgICAgICAgICAvKiBGaW5kTmV4dEZpbGUgc2V0cyBlcnJvciB0byBFUlJPUl9OT19NT1JFX0ZJTEVTIGlmCiAgICAgICAgICAgICAgICBpdCBnb3QgdG8gdGhlIGVuZCBvZiB0aGUgZGlyZWN0b3J5LiAqLwogICAgICAgICAgICAgaWYgKCFyZXN1bHQgJiYgR2V0TGFzdEVycm9yKCkgIT0gRVJST1JfTk9fTU9SRV9GSUxFUykgewotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkKTsKLSAgICAgICAgICAgICAgICB3aW4zMl9lcnJvcl91bmljb2RlKCJGaW5kTmV4dEZpbGVXIiwgd25hbWVidWYpOwotICAgICAgICAgICAgICAgIEZpbmRDbG9zZShoRmluZEZpbGUpOwotICAgICAgICAgICAgICAgIGZyZWUod25hbWVidWYpOwotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgICAgICAgICBsaXN0ID0gd2luMzJfZXJyb3JfdW5pY29kZSgiRmluZE5leHRGaWxlVyIsIHduYW1lYnVmKTsKKyAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0gd2hpbGUgKHJlc3VsdCA9PSBUUlVFKTsKIAotICAgICAgICBpZiAoRmluZENsb3NlKGhGaW5kRmlsZSkgPT0gRkFMU0UpIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihkKTsKLSAgICAgICAgICAgIHdpbjMyX2Vycm9yX3VuaWNvZGUoIkZpbmRDbG9zZSIsIHduYW1lYnVmKTsKLSAgICAgICAgICAgIGZyZWUod25hbWVidWYpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgZnJlZSh3bmFtZWJ1Zik7Ci0gICAgICAgIHJldHVybiBkOworICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQotICAgIC8qIERyb3AgdGhlIGFyZ3VtZW50IHBhcnNpbmcgZXJyb3IgYXMgbmFycm93IHN0cmluZ3MKLSAgICAgICBhcmUgYWxzbyB2YWxpZC4gKi8KLSAgICBQeUVycl9DbGVhcigpOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJjpsaXN0ZGlyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3BhdGgpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoUHlCeXRlc19HRVRfU0laRShvcGF0aCkrMSA+IE1BWF9QQVRIKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAicGF0aCB0b28gbG9uZyIpOwotICAgICAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgc3RyY3B5KG5hbWVidWYsIFB5Qnl0ZXNfQXNTdHJpbmcob3BhdGgpKTsKLSAgICBsZW4gPSBQeU9iamVjdF9TaXplKG9wYXRoKTsKLSAgICBQeV9ERUNSRUYob3BhdGgpOworICAgIHN0cmNweShuYW1lYnVmLCBwYXRoLm5hcnJvdyk7CisgICAgbGVuID0gcGF0aC5sZW5ndGg7CiAgICAgaWYgKGxlbiA+IDApIHsKICAgICAgICAgY2hhciBjaCA9IG5hbWVidWZbbGVuLTFdOwogICAgICAgICBpZiAoY2ggIT0gU0VQICYmIGNoICE9IEFMVFNFUCAmJiBjaCAhPSAnOicpCkBAIC0yNTA5LDcgKzM0MTksNyBAQAogICAgICAgICBzdHJjcHkobmFtZWJ1ZiArIGxlbiwgIiouKiIpOwogICAgIH0KIAotICAgIGlmICgoZCA9IFB5TGlzdF9OZXcoMCkpID09IE5VTEwpCisgICAgaWYgKChsaXN0ID0gUHlMaXN0X05ldygwKSkgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCkBAIC0yNTE4LDkgKzM0MjgsMTAgQEAKICAgICBpZiAoaEZpbmRGaWxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKSB7CiAgICAgICAgIGludCBlcnJvciA9IEdldExhc3RFcnJvcigpOwogICAgICAgICBpZiAoZXJyb3IgPT0gRVJST1JfRklMRV9OT1RfRk9VTkQpCi0gICAgICAgICAgICByZXR1cm4gZDsKLSAgICAgICAgUHlfREVDUkVGKGQpOwotICAgICAgICByZXR1cm4gd2luMzJfZXJyb3IoIkZpbmRGaXJzdEZpbGUiLCBuYW1lYnVmKTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgUHlfREVDUkVGKGxpc3QpOworICAgICAgICBsaXN0ID0gd2luMzJfZXJyb3IoIkZpbmRGaXJzdEZpbGUiLCBuYW1lYnVmKTsKKyAgICAgICAgZ290byBleGl0OwogICAgIH0KICAgICBkbyB7CiAgICAgICAgIC8qIFNraXAgb3ZlciAuIGFuZCAuLiAqLwpAQCAtMjUyOCwxNCArMzQzOSwxNCBAQAogICAgICAgICAgICAgc3RyY21wKEZpbGVEYXRhLmNGaWxlTmFtZSwgIi4uIikgIT0gMCkgewogICAgICAgICAgICAgdiA9IFB5Qnl0ZXNfRnJvbVN0cmluZyhGaWxlRGF0YS5jRmlsZU5hbWUpOwogICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkKTsKLSAgICAgICAgICAgICAgICBkID0gTlVMTDsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYobGlzdCk7CisgICAgICAgICAgICAgICAgbGlzdCA9IE5VTEw7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChkLCB2KSAhPSAwKSB7CisgICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChsaXN0LCB2KSAhPSAwKSB7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkKTsKLSAgICAgICAgICAgICAgICBkID0gTlVMTDsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYobGlzdCk7CisgICAgICAgICAgICAgICAgbGlzdCA9IE5VTEw7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBQeV9ERUNSRUYodik7CkBAIC0yNTQ2LDQ2ICszNDU3LDMzIEBACiAgICAgICAgIC8qIEZpbmROZXh0RmlsZSBzZXRzIGVycm9yIHRvIEVSUk9SX05PX01PUkVfRklMRVMgaWYKICAgICAgICAgICAgaXQgZ290IHRvIHRoZSBlbmQgb2YgdGhlIGRpcmVjdG9yeS4gKi8KICAgICAgICAgaWYgKCFyZXN1bHQgJiYgR2V0TGFzdEVycm9yKCkgIT0gRVJST1JfTk9fTU9SRV9GSUxFUykgewotICAgICAgICAgICAgUHlfREVDUkVGKGQpOwotICAgICAgICAgICAgd2luMzJfZXJyb3IoIkZpbmROZXh0RmlsZSIsIG5hbWVidWYpOwotICAgICAgICAgICAgRmluZENsb3NlKGhGaW5kRmlsZSk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgICAgIGxpc3QgPSB3aW4zMl9lcnJvcigiRmluZE5leHRGaWxlIiwgbmFtZWJ1Zik7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CiAgICAgICAgIH0KICAgICB9IHdoaWxlIChyZXN1bHQgPT0gVFJVRSk7CiAKLSAgICBpZiAoRmluZENsb3NlKGhGaW5kRmlsZSkgPT0gRkFMU0UpIHsKLSAgICAgICAgUHlfREVDUkVGKGQpOwotICAgICAgICByZXR1cm4gd2luMzJfZXJyb3IoIkZpbmRDbG9zZSIsIG5hbWVidWYpOworZXhpdDoKKyAgICBpZiAoaEZpbmRGaWxlICE9IElOVkFMSURfSEFORExFX1ZBTFVFKSB7CisgICAgICAgIGlmIChGaW5kQ2xvc2UoaEZpbmRGaWxlKSA9PSBGQUxTRSkgeworICAgICAgICAgICAgaWYgKGxpc3QgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgICAgICAgICBsaXN0ID0gd2luMzJfZXJyb3Jfb2JqZWN0KCJGaW5kQ2xvc2UiLCBwYXRoLm9iamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CisgICAgaWYgKHduYW1lYnVmKQorICAgICAgICBmcmVlKHduYW1lYnVmKTsKKyAgICBwYXRoX2NsZWFudXAoJnBhdGgpOwogCi0gICAgcmV0dXJuIGQ7CisgICAgcmV0dXJuIGxpc3Q7CiAKICNlbGlmIGRlZmluZWQoUFlPU19PUzIpCi0KLSNpZm5kZWYgTUFYX1BBVEgKLSNkZWZpbmUgTUFYX1BBVEggICAgQ0NITUFYUEFUSAotI2VuZGlmCi0gICAgUHlPYmplY3QgKm9uYW1lOwotICAgIGNoYXIgKm5hbWUsICpwdDsKLSAgICBQeV9zc2l6ZV90IGxlbjsKLSAgICBQeU9iamVjdCAqZCwgKnY7Ci0gICAgY2hhciBuYW1lYnVmW01BWF9QQVRIKzVdOwotICAgIEhESVIgIGhkaXIgPSAxOwotICAgIFVMT05HIHNyY2hjbnQgPSAxOwotICAgIEZJTEVGSU5EQlVGMyAgIGVwOwotICAgIEFQSVJFVCByYzsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyY6bGlzdGRpciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9uYW1lKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgbmFtZSA9IFB5Qnl0ZXNfQXNTdHJpbmcob25hbWUpOwotICAgIGxlbiA9IFB5Qnl0ZXNfR0VUX1NJWkUob25hbWUpOwotICAgIGlmIChsZW4gPj0gTUFYX1BBVEgpIHsKLSAgICAgICAgUHlfREVDUkVGKG9uYW1lKTsKKyAgICBpZiAocGF0aC5sZW5ndGggPj0gTUFYX1BBVEgpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJwYXRoIHRvbyBsb25nIik7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQotICAgIHN0cmNweShuYW1lYnVmLCBuYW1lKTsKKyAgICBzdHJjcHkobmFtZWJ1ZiwgcGF0aC5uYXJyb3cpOwogICAgIGZvciAocHQgPSBuYW1lYnVmOyAqcHQ7IHB0KyspCiAgICAgICAgIGlmICgqcHQgPT0gQUxUU0VQKQogICAgICAgICAgICAgKnB0ID0gU0VQOwpAQCAtMjU5Myw5ICszNDkxLDggQEAKICAgICAgICAgbmFtZWJ1ZltsZW4rK10gPSBTRVA7CiAgICAgc3RyY3B5KG5hbWVidWYgKyBsZW4sICIqLioiKTsKIAotICAgIGlmICgoZCA9IFB5TGlzdF9OZXcoMCkpID09IE5VTEwpIHsKLSAgICAgICAgUHlfREVDUkVGKG9uYW1lKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKChsaXN0ID0gUHlMaXN0X05ldygwKSkgPT0gTlVMTCkgeworICAgICAgICBnb3RvIGV4aXQ7CiAgICAgfQogCiAgICAgcmMgPSBEb3NGaW5kRmlyc3QobmFtZWJ1ZiwgICAgICAgICAvKiBXaWxkY2FyZCBQYXR0ZXJuIHRvIE1hdGNoICovCkBAIC0yNjA3LDcgKzM1MDQsOSBAQAogCiAgICAgaWYgKHJjICE9IE5PX0VSUk9SKSB7CiAgICAgICAgIGVycm5vID0gRU5PRU5UOwotICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3Jfd2l0aF9hbGxvY2F0ZWRfZmlsZW5hbWUob25hbWUpOworICAgICAgICBQeV9ERUNSRUYobGlzdCk7CisgICAgICAgIGxpc3QgPSBwb3NpeF9lcnJvcl93aXRoX2ZpbGVuYW1lKHBhdGgubmFycm93KTsKKyAgICAgICAgZ290byBleGl0OwogICAgIH0KIAogICAgIGlmIChzcmNoY250ID4gMCkgeyAvKiBJZiBEaXJlY3RvcnkgaXMgTk9UIFRvdGFsbHkgRW1wdHksICovCkBAIC0yNjIzLDU1ICszNTIyLDcwIEBACiAKICAgICAgICAgICAgIHYgPSBQeUJ5dGVzX0Zyb21TdHJpbmcobmFtZWJ1Zik7CiAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKGQpOwotICAgICAgICAgICAgICAgIGQgPSBOVUxMOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgICAgICAgICBsaXN0ID0gTlVMTDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChQeUxpc3RfQXBwZW5kKGQsIHYpICE9IDApIHsKKyAgICAgICAgICAgIGlmIChQeUxpc3RfQXBwZW5kKGxpc3QsIHYpICE9IDApIHsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKGQpOwotICAgICAgICAgICAgICAgIGQgPSBOVUxMOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgICAgICAgICBsaXN0ID0gTlVMTDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKICAgICAgICAgfSB3aGlsZSAoRG9zRmluZE5leHQoaGRpciwgJmVwLCBzaXplb2YoZXApLCAmc3JjaGNudCkgPT0gTk9fRVJST1IgJiYgc3JjaGNudCA+IDApOwogICAgIH0KIAotICAgIFB5X0RFQ1JFRihvbmFtZSk7Ci0gICAgcmV0dXJuIGQ7CitleGl0OgorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisKKyAgICByZXR1cm4gbGlzdDsKICNlbHNlCi0gICAgUHlPYmplY3QgKm9uYW1lOwotICAgIGNoYXIgKm5hbWU7Ci0gICAgUHlPYmplY3QgKmQsICp2OwotICAgIERJUiAqZGlycDsKLSAgICBzdHJ1Y3QgZGlyZW50ICplcDsKLSAgICBpbnQgYXJnX2lzX3VuaWNvZGUgPSAxOwogCiAgICAgZXJybm8gPSAwOwotICAgIC8qIHYgaXMgbmV2ZXIgcmVhZCwgc28gaXQgZG9lcyBub3QgbmVlZCB0byBiZSBpbml0aWFsaXplZCB5ZXQuICovCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ8VTpsaXN0ZGlyIiwgJnYpKSB7Ci0gICAgICAgIGFyZ19pc191bmljb2RlID0gMDsKLSAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICB9Ci0gICAgb25hbWUgPSBOVUxMOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifE8mOmxpc3RkaXIiLCBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsICZvbmFtZSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmIChvbmFtZSA9PSBOVUxMKSB7IC8qIERlZmF1bHQgYXJnOiAiLiIgKi8KLSAgICAgICAgb25hbWUgPSBQeUJ5dGVzX0Zyb21TdHJpbmcoIi4iKTsKLSAgICB9Ci0gICAgbmFtZSA9IFB5Qnl0ZXNfQXNTdHJpbmcob25hbWUpOwotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICBkaXJwID0gb3BlbmRpcihuYW1lKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIGlmIChkaXJwID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yX3dpdGhfYWxsb2NhdGVkX2ZpbGVuYW1lKG9uYW1lKTsKLSAgICB9Ci0gICAgaWYgKChkID0gUHlMaXN0X05ldygwKSkgPT0gTlVMTCkgeworI2lmZGVmIEhBVkVfRkRPUEVORElSCisgICAgaWYgKHBhdGguZmQgIT0gLTEpIHsKKyAgICAgICAgLyogY2xvc2VkaXIoKSBjbG9zZXMgdGhlIEZELCBzbyB3ZSBkdXBsaWNhdGUgaXQgKi8KICAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICBjbG9zZWRpcihkaXJwKTsKKyAgICAgICAgZmQgPSBkdXAocGF0aC5mZCk7CiAgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgICAgIFB5X0RFQ1JFRihvbmFtZSk7Ci0gICAgICAgIHJldHVybiBOVUxMOworCisgICAgICAgIGlmIChmZCA9PSAtMSkgeworICAgICAgICAgICAgbGlzdCA9IHBvc2l4X2Vycm9yKCk7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm5fc3RyID0gMTsKKworICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgICAgIGRpcnAgPSBmZG9wZW5kaXIoZmQpOworICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworICAgIH0KKyAgICBlbHNlCisjZW5kaWYKKyAgICB7CisgICAgICAgIGNoYXIgKm5hbWU7CisgICAgICAgIGlmIChwYXRoLm5hcnJvdykgeworICAgICAgICAgICAgbmFtZSA9IHBhdGgubmFycm93OworICAgICAgICAgICAgLyogb25seSByZXR1cm4gYnl0ZXMgaWYgdGhleSBzcGVjaWZpZWQgYSBieXRlcyBvYmplY3QgKi8KKyAgICAgICAgICAgIHJldHVybl9zdHIgPSAhKFB5Qnl0ZXNfQ2hlY2socGF0aC5vYmplY3QpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG5hbWUgPSAiLiI7CisgICAgICAgICAgICByZXR1cm5fc3RyID0gMTsKKyAgICAgICAgfQorCisgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgZGlycCA9IG9wZW5kaXIobmFtZSk7CisgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgfQorCisgICAgaWYgKGRpcnAgPT0gTlVMTCkgeworICAgICAgICBsaXN0ID0gcGF0aF9lcnJvcigibGlzdGRpciIsICZwYXRoKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKyAgICBpZiAoKGxpc3QgPSBQeUxpc3RfTmV3KDApKSA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZXhpdDsKICAgICB9CiAgICAgZm9yICg7OykgewogICAgICAgICBlcnJubyA9IDA7CkBAIC0yNjgyLDM4ICszNTk2LDQzIEBACiAgICAgICAgICAgICBpZiAoZXJybm8gPT0gMCkgewogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgICAgICAgICAgY2xvc2VkaXIoZGlycCk7Ci0gICAgICAgICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYoZCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yX3dpdGhfYWxsb2NhdGVkX2ZpbGVuYW1lKG9uYW1lKTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYobGlzdCk7CisgICAgICAgICAgICAgICAgbGlzdCA9IHBhdGhfZXJyb3IoImxpc3RkaXIiLCAmcGF0aCk7CisgICAgICAgICAgICAgICAgZ290byBleGl0OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChlcC0+ZF9uYW1lWzBdID09ICcuJyAmJgogICAgICAgICAgICAgKE5BTUxFTihlcCkgPT0gMSB8fAogICAgICAgICAgICAgIChlcC0+ZF9uYW1lWzFdID09ICcuJyAmJiBOQU1MRU4oZXApID09IDIpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAoYXJnX2lzX3VuaWNvZGUpCisgICAgICAgIGlmIChyZXR1cm5fc3RyKQogICAgICAgICAgICAgdiA9IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHRBbmRTaXplKGVwLT5kX25hbWUsIE5BTUxFTihlcCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShlcC0+ZF9uYW1lLCBOQU1MRU4oZXApKTsKICAgICAgICAgaWYgKHYgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlfQ0xFQVIoZCk7CisgICAgICAgICAgICBQeV9DTEVBUihsaXN0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeUxpc3RfQXBwZW5kKGQsIHYpICE9IDApIHsKKyAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQobGlzdCwgdikgIT0gMCkgewogICAgICAgICAgICAgUHlfREVDUkVGKHYpOwotICAgICAgICAgICAgUHlfQ0xFQVIoZCk7CisgICAgICAgICAgICBQeV9DTEVBUihsaXN0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIFB5X0RFQ1JFRih2KTsKICAgICB9Ci0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIGNsb3NlZGlyKGRpcnApOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgUHlfREVDUkVGKG9uYW1lKTsKIAotICAgIHJldHVybiBkOworZXhpdDoKKyAgICBpZiAoZGlycCAhPSBOVUxMKSB7CisgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgaWYgKGZkID4gLTEpCisgICAgICAgICAgICByZXdpbmRkaXIoZGlycCk7CisgICAgICAgIGNsb3NlZGlyKGRpcnApOworICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworICAgIH0KKworICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisKKyAgICByZXR1cm4gbGlzdDsKIAogI2VuZGlmIC8qIHdoaWNoIE9TICovCiB9ICAvKiBlbmQgb2YgcG9zaXhfbGlzdGRpciAqLwpAQCAtMjcyMywzMSArMzY0MiwzNSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHBvc2l4X19nZXRmdWxscGF0aG5hbWUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIFB5T2JqZWN0ICpvcGF0aDsKLSAgICBjaGFyICpwYXRoOworICAgIGNvbnN0IGNoYXIgKnBhdGg7CiAgICAgY2hhciBvdXRidWZbTUFYX1BBVEgqMl07CiAgICAgY2hhciAqdGVtcDsKLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgUHlVbmljb2RlT2JqZWN0ICpwbzsKLSAgICBpZiAoUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVXw6X2dldGZ1bGxwYXRobmFtZSIsICZwbykpIHsKLSAgICAgICAgUHlfVU5JQ09ERSAqd3BhdGggPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShwbyk7Ci0gICAgICAgIFB5X1VOSUNPREUgd291dGJ1ZltNQVhfUEFUSCoyXSwgKndvdXRidWZwID0gd291dGJ1ZjsKLSAgICAgICAgUHlfVU5JQ09ERSAqd3RlbXA7CisgICAgUHlPYmplY3QgKnBvOworCisgICAgaWYgKFB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlV8Ol9nZXRmdWxscGF0aG5hbWUiLCAmcG8pKQorICAgIHsKKyAgICAgICAgd2NoYXJfdCAqd3BhdGg7CisgICAgICAgIHdjaGFyX3Qgd291dGJ1ZltNQVhfUEFUSCoyXSwgKndvdXRidWZwID0gd291dGJ1ZjsKKyAgICAgICAgd2NoYXJfdCAqd3RlbXA7CiAgICAgICAgIERXT1JEIHJlc3VsdDsKICAgICAgICAgUHlPYmplY3QgKnY7CisKKyAgICAgICAgd3BhdGggPSBQeVVuaWNvZGVfQXNVbmljb2RlKHBvKTsKKyAgICAgICAgaWYgKHdwYXRoID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgcmVzdWx0ID0gR2V0RnVsbFBhdGhOYW1lVyh3cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yod291dGJ1Zikvc2l6ZW9mKHdvdXRidWZbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0FSUkFZX0xFTkdUSCh3b3V0YnVmKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3V0YnVmLCAmd3RlbXApOwotICAgICAgICBpZiAocmVzdWx0ID4gc2l6ZW9mKHdvdXRidWYpL3NpemVvZih3b3V0YnVmWzBdKSkgewotICAgICAgICAgICAgd291dGJ1ZnAgPSBtYWxsb2MocmVzdWx0ICogc2l6ZW9mKFB5X1VOSUNPREUpKTsKKyAgICAgICAgaWYgKHJlc3VsdCA+IFB5X0FSUkFZX0xFTkdUSCh3b3V0YnVmKSkgeworICAgICAgICAgICAgd291dGJ1ZnAgPSBtYWxsb2MocmVzdWx0ICogc2l6ZW9mKHdjaGFyX3QpKTsKICAgICAgICAgICAgIGlmICghd291dGJ1ZnApCiAgICAgICAgICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgICAgICByZXN1bHQgPSBHZXRGdWxsUGF0aE5hbWVXKHdwYXRoLCByZXN1bHQsIHdvdXRidWZwLCAmd3RlbXApOwogICAgICAgICB9CiAgICAgICAgIGlmIChyZXN1bHQpCi0gICAgICAgICAgICB2ID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHdvdXRidWZwLCB3Y3NsZW4od291dGJ1ZnApKTsKKyAgICAgICAgICAgIHYgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHdvdXRidWZwLCB3Y3NsZW4od291dGJ1ZnApKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgdiA9IHdpbjMyX2Vycm9yX3VuaWNvZGUoIkdldEZ1bGxQYXRoTmFtZVciLCB3cGF0aCk7CisgICAgICAgICAgICB2ID0gd2luMzJfZXJyb3Jfb2JqZWN0KCJHZXRGdWxsUGF0aE5hbWVXIiwgcG8pOwogICAgICAgICBpZiAod291dGJ1ZnAgIT0gd291dGJ1ZikKICAgICAgICAgICAgIGZyZWUod291dGJ1ZnApOwogICAgICAgICByZXR1cm4gdjsKQEAgLTI3NTYsMTggKzM2NzksMTYgQEAKICAgICAgICBhcmUgYWxzbyB2YWxpZC4gKi8KICAgICBQeUVycl9DbGVhcigpOwogCi0jZW5kaWYKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUgKGFyZ3MsICJPJjpfZ2V0ZnVsbHBhdGhuYW1lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9wYXRoKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUgKGFyZ3MsICJ5Ol9nZXRmdWxscGF0aG5hbWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhdGgpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBwYXRoID0gUHlCeXRlc19Bc1N0cmluZyhvcGF0aCk7Ci0gICAgaWYgKCFHZXRGdWxsUGF0aE5hbWUocGF0aCwgc2l6ZW9mKG91dGJ1Zikvc2l6ZW9mKG91dGJ1ZlswXSksCisgICAgaWYgKHdpbjMyX3dhcm5fYnl0ZXNfYXBpKCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmICghR2V0RnVsbFBhdGhOYW1lKHBhdGgsIFB5X0FSUkFZX0xFTkdUSChvdXRidWYpLAogICAgICAgICAgICAgICAgICAgICAgICAgIG91dGJ1ZiwgJnRlbXApKSB7CiAgICAgICAgIHdpbjMyX2Vycm9yKCJHZXRGdWxsUGF0aE5hbWUiLCBwYXRoKTsKLSAgICAgICAgUHlfREVDUkVGKG9wYXRoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIFB5X0RFQ1JFRihvcGF0aCk7CiAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhQeVR1cGxlX0dldEl0ZW0oYXJncywgMCkpKSB7CiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlKG91dGJ1Ziwgc3RybGVuKG91dGJ1ZiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcsIE5VTEwpOwpAQCAtMjc4NSwxMiArMzcwNiwxNCBAQAogICAgIGludCBidWZfc2l6ZTsKICAgICB3Y2hhcl90ICp0YXJnZXRfcGF0aDsKICAgICBpbnQgcmVzdWx0X2xlbmd0aDsKLSAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICpwbywgKnJlc3VsdDsKICAgICB3Y2hhcl90ICpwYXRoOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ1fDpfZ2V0ZmluYWxwYXRobmFtZSIsICZwYXRoKSkgeworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVXw6X2dldGZpbmFscGF0aG5hbWUiLCAmcG8pKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgcGF0aCA9IFB5VW5pY29kZV9Bc1VuaWNvZGUocG8pOworICAgIGlmIChwYXRoID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgaWYoIWNoZWNrX0dldEZpbmFsUGF0aE5hbWVCeUhhbmRsZSgpKSB7CiAgICAgICAgIC8qIElmIHRoZSBPUyBkb2Vzbid0IGhhdmUgR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlLCByZXR1cm4gYQpAQCAtMjgwOSwxOCArMzczMiwxNSBAQAogICAgICAgICBGSUxFX0ZMQUdfQkFDS1VQX1NFTUFOVElDUywKICAgICAgICAgTlVMTCk7CiAKLSAgICBpZihoRmlsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkgewotICAgICAgICByZXR1cm4gd2luMzJfZXJyb3JfdW5pY29kZSgiR2V0RmluYWxQYXRoTmFteUJ5SGFuZGxlIiwgcGF0aCk7Ci0gICAgICAgIHJldHVybiBQeUVycl9Gb3JtYXQoUHlFeGNfUnVudGltZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3QgZ2V0IGEgaGFuZGxlIHRvIGZpbGUuIik7Ci0gICAgfQorICAgIGlmKGhGaWxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQorICAgICAgICByZXR1cm4gd2luMzJfZXJyb3Jfb2JqZWN0KCJDcmVhdGVGaWxlVyIsIHBvKTsKIAogICAgIC8qIFdlIGhhdmUgYSBnb29kIGhhbmRsZSB0byB0aGUgdGFyZ2V0LCB1c2UgaXQgdG8gZGV0ZXJtaW5lIHRoZQogICAgICAgIHRhcmdldCBwYXRoIG5hbWUuICovCiAgICAgYnVmX3NpemUgPSBQeV9HZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGVXKGhGaWxlLCAwLCAwLCBWT0xVTUVfTkFNRV9OVCk7CiAKICAgICBpZighYnVmX3NpemUpCi0gICAgICAgIHJldHVybiB3aW4zMl9lcnJvcl91bmljb2RlKCJHZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGUiLCBwYXRoKTsKKyAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yX29iamVjdCgiR2V0RmluYWxQYXRoTmFtZUJ5SGFuZGxlIiwgcG8pOwogCiAgICAgdGFyZ2V0X3BhdGggPSAod2NoYXJfdCAqKW1hbGxvYygoYnVmX3NpemUrMSkqc2l6ZW9mKHdjaGFyX3QpKTsKICAgICBpZighdGFyZ2V0X3BhdGgpCkBAIC0yODI5LDEzICszNzQ5LDEzIEBACiAgICAgcmVzdWx0X2xlbmd0aCA9IFB5X0dldEZpbmFsUGF0aE5hbWVCeUhhbmRsZVcoaEZpbGUsIHRhcmdldF9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zl9zaXplLCBWT0xVTUVfTkFNRV9ET1MpOwogICAgIGlmKCFyZXN1bHRfbGVuZ3RoKQotICAgICAgICByZXR1cm4gd2luMzJfZXJyb3JfdW5pY29kZSgiR2V0RmluYWxQYXRoTmFteUJ5SGFuZGxlIiwgcGF0aCk7CisgICAgICAgIHJldHVybiB3aW4zMl9lcnJvcl9vYmplY3QoIkdldEZpbmFsUGF0aE5hbXlCeUhhbmRsZSIsIHBvKTsKIAogICAgIGlmKCFDbG9zZUhhbmRsZShoRmlsZSkpCi0gICAgICAgIHJldHVybiB3aW4zMl9lcnJvcl91bmljb2RlKCJHZXRGaW5hbFBhdGhOYW1lQnlIYW5kbGUiLCBwYXRoKTsKKyAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yX29iamVjdCgiQ2xvc2VIYW5kbGUiLCBwbyk7CiAKICAgICB0YXJnZXRfcGF0aFtyZXN1bHRfbGVuZ3RoXSA9IDA7Ci0gICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHRhcmdldF9wYXRoLCByZXN1bHRfbGVuZ3RoKTsKKyAgICByZXN1bHQgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHRhcmdldF9wYXRoLCByZXN1bHRfbGVuZ3RoKTsKICAgICBmcmVlKHRhcmdldF9wYXRoKTsKICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC0yODcyLDEzICszNzkyLDE0IEBACiBzdGF0aWMgUHlPYmplY3QgKgogcG9zaXhfX2lzZGlyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeU9iamVjdCAqb3BhdGg7Ci0gICAgY2hhciAqcGF0aDsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnBvOworICAgIGNvbnN0IGNoYXIgKnBhdGg7CisgICAgUHlPYmplY3QgKnBvOwogICAgIERXT1JEIGF0dHJpYnV0ZXM7CiAKICAgICBpZiAoUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVXw6X2lzZGlyIiwgJnBvKSkgewotICAgICAgICBQeV9VTklDT0RFICp3cGF0aCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHBvKTsKKyAgICAgICAgd2NoYXJfdCAqd3BhdGggPSBQeVVuaWNvZGVfQXNVbmljb2RlKHBvKTsKKyAgICAgICAgaWYgKHdwYXRoID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgICAgICBhdHRyaWJ1dGVzID0gR2V0RmlsZUF0dHJpYnV0ZXNXKHdwYXRoKTsKICAgICAgICAgaWYgKGF0dHJpYnV0ZXMgPT0gSU5WQUxJRF9GSUxFX0FUVFJJQlVURVMpCkBAIC0yODg5LDExICszODEwLDEwIEBACiAgICAgICAgYXJlIGFsc28gdmFsaWQuICovCiAgICAgUHlFcnJfQ2xlYXIoKTsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyY6X2lzZGlyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3BhdGgpKQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAieTpfaXNkaXIiLCAmcGF0aCkpCiAgICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcGF0aCA9IFB5Qnl0ZXNfQXNTdHJpbmcob3BhdGgpOworICAgIGlmICh3aW4zMl93YXJuX2J5dGVzX2FwaSgpKQorICAgICAgICByZXR1cm4gTlVMTDsKICAgICBhdHRyaWJ1dGVzID0gR2V0RmlsZUF0dHJpYnV0ZXNBKHBhdGgpOwogICAgIGlmIChhdHRyaWJ1dGVzID09IElOVkFMSURfRklMRV9BVFRSSUJVVEVTKQogICAgICAgICBQeV9SRVRVUk5fRkFMU0U7CkBAIC0yOTA3LDY5ICszODI3LDcyIEBACiAjZW5kaWYgLyogTVNfV0lORE9XUyAqLwogCiBQeURvY19TVFJWQVIocG9zaXhfbWtkaXJfX2RvY19fLAotIm1rZGlyKHBhdGggWywgbW9kZT0wNzc3XSlcblxuXAotQ3JlYXRlIGEgZGlyZWN0b3J5LiIpOworIm1rZGlyKHBhdGgsIG1vZGU9MG83NzcsICosIGRpcl9mZD1Ob25lKVxuXG5cCitDcmVhdGUgYSBkaXJlY3RvcnkuXG5cCitcblwKK0lmIGRpcl9mZCBpcyBub3QgTm9uZSwgaXQgc2hvdWxkIGJlIGEgZmlsZSBkZXNjcmlwdG9yIG9wZW4gdG8gYSBkaXJlY3RvcnksXG5cCisgIGFuZCBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZTsgcGF0aCB3aWxsIHRoZW4gYmUgcmVsYXRpdmUgdG8gdGhhdCBkaXJlY3RvcnkuXG5cCitkaXJfZmQgbWF5IG5vdCBiZSBpbXBsZW1lbnRlZCBvbiB5b3VyIHBsYXRmb3JtLlxuXAorICBJZiBpdCBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgd2lsbCByYWlzZSBhIE5vdEltcGxlbWVudGVkRXJyb3IuXG5cCitcblwKK1RoZSBtb2RlIGFyZ3VtZW50IGlzIGlnbm9yZWQgb24gV2luZG93cy4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X21rZGlyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3Bvc2l4X21rZGlyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKLSAgICBpbnQgcmVzOwotICAgIFB5T2JqZWN0ICpvcGF0aDsKLSAgICBjaGFyICpwYXRoOworICAgIHBhdGhfdCBwYXRoOwogICAgIGludCBtb2RlID0gMDc3NzsKKyAgICBpbnQgZGlyX2ZkID0gREVGQVVMVF9ESVJfRkQ7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAibW9kZSIsICJkaXJfZmQiLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlID0gTlVMTDsKKyAgICBpbnQgcmVzdWx0OworCisgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8mfGkkTyY6bWtkaXIiLCBrZXl3b3JkcywKKyAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLCAmbW9kZSwKKyNpZmRlZiBIQVZFX01LRElSQVQKKyAgICAgICAgZGlyX2ZkX2NvbnZlcnRlciwgJmRpcl9mZAorI2Vsc2UKKyAgICAgICAgZGlyX2ZkX3VuYXZhaWxhYmxlLCAmZGlyX2ZkCisjZW5kaWYKKyAgICAgICAgKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAKICNpZmRlZiBNU19XSU5ET1dTCi0gICAgUHlVbmljb2RlT2JqZWN0ICpwbzsKLSAgICBpZiAoUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVXxpOm1rZGlyIiwgJnBvLCAmbW9kZSkpIHsKLSAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICAvKiBQeVVuaWNvZGVfQVNfVU5JQ09ERSBPSyB3aXRob3V0IHRocmVhZCBsb2NrIGFzCi0gICAgICAgICAgIGl0IGlzIGEgc2ltcGxlIGRlcmVmZXJlbmNlLiAqLwotICAgICAgICByZXMgPSBDcmVhdGVEaXJlY3RvcnlXKFB5VW5pY29kZV9BU19VTklDT0RFKHBvKSwgTlVMTCk7Ci0gICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgICAgIGlmICghcmVzKQotICAgICAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yX3VuaWNvZGUoIm1rZGlyIiwgUHlVbmljb2RlX0FTX1VOSUNPREUocG8pKTsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgICAgICByZXR1cm4gUHlfTm9uZTsKLSAgICB9Ci0gICAgLyogRHJvcCB0aGUgYXJndW1lbnQgcGFyc2luZyBlcnJvciBhcyBuYXJyb3cgc3RyaW5ncwotICAgICAgIGFyZSBhbHNvIHZhbGlkLiAqLwotICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJnxpOm1rZGlyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3BhdGgsICZtb2RlKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcGF0aCA9IFB5Qnl0ZXNfQXNTdHJpbmcob3BhdGgpOwogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAvKiBQeVVuaWNvZGVfQVNfVU5JQ09ERSBPSyB3aXRob3V0IHRocmVhZCBsb2NrIGFzCi0gICAgICAgaXQgaXMgYSBzaW1wbGUgZGVyZWZlcmVuY2UuICovCi0gICAgcmVzID0gQ3JlYXRlRGlyZWN0b3J5QShwYXRoLCBOVUxMKTsKKyAgICBpZiAocGF0aC53aWRlKQorICAgICAgICByZXN1bHQgPSBDcmVhdGVEaXJlY3RvcnlXKHBhdGgud2lkZSwgTlVMTCk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBDcmVhdGVEaXJlY3RvcnlBKHBhdGgubmFycm93LCBOVUxMKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIGlmICghcmVzKSB7Ci0gICAgICAgIHdpbjMyX2Vycm9yKCJta2RpciIsIHBhdGgpOwotICAgICAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7Ci0jZWxzZQogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJnxpOm1rZGlyIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3BhdGgsICZtb2RlKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcGF0aCA9IFB5Qnl0ZXNfQXNTdHJpbmcob3BhdGgpOwotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSNpZiAoIGRlZmluZWQoX19XQVRDT01DX18pIHx8IGRlZmluZWQoUFlDQ19WQUNQUCkgKSAmJiAhZGVmaW5lZChfX1FOWF9fKQotICAgIHJlcyA9IG1rZGlyKHBhdGgpOworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHdpbjMyX2Vycm9yX29iamVjdCgibWtkaXIiLCBwYXRoLm9iamVjdCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CiAjZWxzZQotICAgIHJlcyA9IG1rZGlyKHBhdGgsIG1vZGUpOworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyNpZiBIQVZFX01LRElSQVQKKyAgICBpZiAoZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKQorICAgICAgICByZXN1bHQgPSBta2RpcmF0KGRpcl9mZCwgcGF0aC5uYXJyb3csIG1vZGUpOworICAgIGVsc2UKKyNlbmRpZgorI2lmICggZGVmaW5lZChfX1dBVENPTUNfXykgfHwgZGVmaW5lZChQWUNDX1ZBQ1BQKSApICYmICFkZWZpbmVkKF9fUU5YX18pCisgICAgICAgIHJlc3VsdCA9IG1rZGlyKHBhdGgubmFycm93KTsKKyNlbHNlCisgICAgICAgIHJlc3VsdCA9IG1rZGlyKHBhdGgubmFycm93LCBtb2RlKTsKICNlbmRpZgogICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgaWYgKHJlcyA8IDApCi0gICAgICAgIHJldHVybiBwb3NpeF9lcnJvcl93aXRoX2FsbG9jYXRlZF9maWxlbmFtZShvcGF0aCk7Ci0gICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7CisgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigibWtkaXIiLCAmcGF0aCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CiAjZW5kaWYKKyAgICByZXR1cm5fdmFsdWUgPSBQeV9Ob25lOworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKK2V4aXQ6CisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICByZXR1cm4gcmV0dXJuX3ZhbHVlOwogfQogCiAKQEAgLTMwMTUsNzkgKzM5MzgsMjIwIEBACiB9CiAjZW5kaWYgLyogSEFWRV9OSUNFICovCiAKLVB5RG9jX1NUUlZBUihwb3NpeF9yZW5hbWVfX2RvY19fLAotInJlbmFtZShvbGQsIG5ldylcblxuXAotUmVuYW1lIGEgZmlsZSBvciBkaXJlY3RvcnkuIik7CisKKyNpZmRlZiBIQVZFX0dFVFBSSU9SSVRZCitQeURvY19TVFJWQVIocG9zaXhfZ2V0cHJpb3JpdHlfX2RvY19fLAorImdldHByaW9yaXR5KHdoaWNoLCB3aG8pIC0+IGN1cnJlbnRfcHJpb3JpdHlcblxuXAorR2V0IHByb2dyYW0gc2NoZWR1bGluZyBwcmlvcml0eS4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X3JlbmFtZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitwb3NpeF9nZXRwcmlvcml0eShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0jaWZkZWYgTVNfV0lORE9XUwotICAgIFB5T2JqZWN0ICpvMSwgKm8yOwotICAgIGNoYXIgKnAxLCAqcDI7Ci0gICAgQk9PTCByZXN1bHQ7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPTzpyZW5hbWUiLCAmbzEsICZvMikpCi0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgaWYgKCFjb252ZXJ0X3RvX3VuaWNvZGUoJm8xKSkKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICBpZiAoIWNvbnZlcnRfdG9fdW5pY29kZSgmbzIpKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihvMSk7Ci0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXN1bHQgPSBNb3ZlRmlsZVcoUHlVbmljb2RlX0FzVW5pY29kZShvMSksCi0gICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9Bc1VuaWNvZGUobzIpKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIFB5X0RFQ1JFRihvMSk7Ci0gICAgUHlfREVDUkVGKG8yKTsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yKCJyZW5hbWUiLCBOVUxMKTsKLSAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7Ci1lcnJvcjoKLSAgICBQeUVycl9DbGVhcigpOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAic3M6cmVuYW1lIiwgJnAxLCAmcDIpKQorICAgIGludCB3aGljaCwgd2hvLCByZXR2YWw7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImlpIiwgJndoaWNoLCAmd2hvKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJlc3VsdCA9IE1vdmVGaWxlQShwMSwgcDIpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJldHVybiB3aW4zMl9lcnJvcigicmVuYW1lIiwgTlVMTCk7Ci0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIGVycm5vID0gMDsKKyAgICByZXR2YWwgPSBnZXRwcmlvcml0eSh3aGljaCwgd2hvKTsKKyAgICBpZiAoZXJybm8gIT0gMCkKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZygobG9uZylyZXR2YWwpOworfQorI2VuZGlmIC8qIEhBVkVfR0VUUFJJT1JJVFkgKi8KKworCisjaWZkZWYgSEFWRV9TRVRQUklPUklUWQorUHlEb2NfU1RSVkFSKHBvc2l4X3NldHByaW9yaXR5X19kb2NfXywKKyJzZXRwcmlvcml0eSh3aGljaCwgd2hvLCBwcmlvKSAtPiBOb25lXG5cblwKK1NldCBwcm9ncmFtIHNjaGVkdWxpbmcgcHJpb3JpdHkuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9zZXRwcmlvcml0eShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgaW50IHdoaWNoLCB3aG8sIHByaW8sIHJldHZhbDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaWlpIiwgJndoaWNoLCAmd2hvLCAmcHJpbykpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJldHZhbCA9IHNldHByaW9yaXR5KHdoaWNoLCB3aG8sIHByaW8pOworICAgIGlmIChyZXR2YWwgPT0gLTEpCisgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOworICAgIFB5X1JFVFVSTl9OT05FOworfQorI2VuZGlmIC8qIEhBVkVfU0VUUFJJT1JJVFkgKi8KKworCitzdGF0aWMgUHlPYmplY3QgKgoraW50ZXJuYWxfcmVuYW1lKFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzLCBpbnQgaXNfcmVwbGFjZSkKK3sKKyAgICBjaGFyICpmdW5jdGlvbl9uYW1lID0gaXNfcmVwbGFjZSA/ICJyZXBsYWNlIiA6ICJyZW5hbWUiOworICAgIHBhdGhfdCBzcmM7CisgICAgcGF0aF90IGRzdDsKKyAgICBpbnQgc3JjX2Rpcl9mZCA9IERFRkFVTFRfRElSX0ZEOworICAgIGludCBkc3RfZGlyX2ZkID0gREVGQVVMVF9ESVJfRkQ7CisgICAgaW50IGRpcl9mZF9zcGVjaWZpZWQ7CisgICAgUHlPYmplY3QgKnJldHVybl92YWx1ZSA9IE5VTEw7CisgICAgY2hhciBmb3JtYXRbMjRdOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJzcmMiLCAiZHN0IiwgInNyY19kaXJfZmQiLCAiZHN0X2Rpcl9mZCIsIE5VTEx9OworCisjaWZkZWYgTVNfV0lORE9XUworICAgIEJPT0wgcmVzdWx0OworICAgIGludCBmbGFncyA9IGlzX3JlcGxhY2UgPyBNT1ZFRklMRV9SRVBMQUNFX0VYSVNUSU5HIDogMDsKICNlbHNlCi0gICAgcmV0dXJuIHBvc2l4XzJzdHIoYXJncywgIk8mTyY6cmVuYW1lIiwgcmVuYW1lKTsKKyAgICBpbnQgcmVzdWx0OwogI2VuZGlmCisKKyAgICBtZW1zZXQoJnNyYywgMCwgc2l6ZW9mKHNyYykpOworICAgIG1lbXNldCgmZHN0LCAwLCBzaXplb2YoZHN0KSk7CisgICAgc3RyY3B5KGZvcm1hdCwgIk8mTyZ8JE8mTyY6Iik7CisgICAgc3RyY2F0KGZvcm1hdCwgZnVuY3Rpb25fbmFtZSk7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCBmb3JtYXQsIGtleXdvcmRzLAorICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnNyYywKKyAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZkc3QsCisgICAgICAgIGRpcl9mZF9jb252ZXJ0ZXIsICZzcmNfZGlyX2ZkLAorICAgICAgICBkaXJfZmRfY29udmVydGVyLCAmZHN0X2Rpcl9mZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZGlyX2ZkX3NwZWNpZmllZCA9IChzcmNfZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKSB8fAorICAgICAgICAgICAgICAgICAgICAgICAoZHN0X2Rpcl9mZCAhPSBERUZBVUxUX0RJUl9GRCk7CisjaWZuZGVmIEhBVkVfUkVOQU1FQVQKKyAgICBpZiAoZGlyX2ZkX3NwZWNpZmllZCkgeworICAgICAgICBhcmd1bWVudF91bmF2YWlsYWJsZV9lcnJvcihmdW5jdGlvbl9uYW1lLCAic3JjX2Rpcl9mZCBhbmQgZHN0X2Rpcl9mZCIpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoKHNyYy5uYXJyb3cgJiYgZHN0LndpZGUpIHx8IChzcmMud2lkZSAmJiBkc3QubmFycm93KSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICIlczogc3JjIGFuZCBkc3QgbXVzdCBiZSB0aGUgc2FtZSB0eXBlIiwgZnVuY3Rpb25fbmFtZSk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIGlmIChzcmMud2lkZSkKKyAgICAgICAgcmVzdWx0ID0gTW92ZUZpbGVFeFcoc3JjLndpZGUsIGRzdC53aWRlLCBmbGFncyk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBNb3ZlRmlsZUV4QShzcmMubmFycm93LCBkc3QubmFycm93LCBmbGFncyk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHdpbjMyX2Vycm9yX29iamVjdChmdW5jdGlvbl9uYW1lLCBkc3Qub2JqZWN0KTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworI2Vsc2UKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisjaWZkZWYgSEFWRV9SRU5BTUVBVAorICAgIGlmIChkaXJfZmRfc3BlY2lmaWVkKQorICAgICAgICByZXN1bHQgPSByZW5hbWVhdChzcmNfZGlyX2ZkLCBzcmMubmFycm93LCBkc3RfZGlyX2ZkLCBkc3QubmFycm93KTsKKyAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgcmVzdWx0ID0gcmVuYW1lKHNyYy5uYXJyb3csIGRzdC5uYXJyb3cpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoZnVuY3Rpb25fbmFtZSwgJmRzdCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisjZW5kaWYKKworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICByZXR1cm5fdmFsdWUgPSBQeV9Ob25lOworZXhpdDoKKyAgICBwYXRoX2NsZWFudXAoJnNyYyk7CisgICAgcGF0aF9jbGVhbnVwKCZkc3QpOworICAgIHJldHVybiByZXR1cm5fdmFsdWU7CiB9CiAKK1B5RG9jX1NUUlZBUihwb3NpeF9yZW5hbWVfX2RvY19fLAorInJlbmFtZShzcmMsIGRzdCwgKiwgc3JjX2Rpcl9mZD1Ob25lLCBkc3RfZGlyX2ZkPU5vbmUpXG5cblwKK1JlbmFtZSBhIGZpbGUgb3IgZGlyZWN0b3J5LlxuXAorXG5cCitJZiBlaXRoZXIgc3JjX2Rpcl9mZCBvciBkc3RfZGlyX2ZkIGlzIG5vdCBOb25lLCBpdCBzaG91bGQgYmUgYSBmaWxlXG5cCisgIGRlc2NyaXB0b3Igb3BlbiB0byBhIGRpcmVjdG9yeSwgYW5kIHRoZSByZXNwZWN0aXZlIHBhdGggc3RyaW5nIChzcmMgb3IgZHN0KVxuXAorICBzaG91bGQgYmUgcmVsYXRpdmU7IHRoZSBwYXRoIHdpbGwgdGhlbiBiZSByZWxhdGl2ZSB0byB0aGF0IGRpcmVjdG9yeS5cblwKK3NyY19kaXJfZmQgYW5kIGRzdF9kaXJfZmQsIG1heSBub3QgYmUgaW1wbGVtZW50ZWQgb24geW91ciBwbGF0Zm9ybS5cblwKKyAgSWYgdGhleSBhcmUgdW5hdmFpbGFibGUsIHVzaW5nIHRoZW0gd2lsbCByYWlzZSBhIE5vdEltcGxlbWVudGVkRXJyb3IuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9yZW5hbWUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIHJldHVybiBpbnRlcm5hbF9yZW5hbWUoYXJncywga3dhcmdzLCAwKTsKK30KKworUHlEb2NfU1RSVkFSKHBvc2l4X3JlcGxhY2VfX2RvY19fLAorInJlcGxhY2Uoc3JjLCBkc3QsICosIHNyY19kaXJfZmQ9Tm9uZSwgZHN0X2Rpcl9mZD1Ob25lKVxuXG5cCitSZW5hbWUgYSBmaWxlIG9yIGRpcmVjdG9yeSwgb3ZlcndyaXRpbmcgdGhlIGRlc3RpbmF0aW9uLlxuXAorXG5cCitJZiBlaXRoZXIgc3JjX2Rpcl9mZCBvciBkc3RfZGlyX2ZkIGlzIG5vdCBOb25lLCBpdCBzaG91bGQgYmUgYSBmaWxlXG5cCisgIGRlc2NyaXB0b3Igb3BlbiB0byBhIGRpcmVjdG9yeSwgYW5kIHRoZSByZXNwZWN0aXZlIHBhdGggc3RyaW5nIChzcmMgb3IgZHN0KVxuXAorICBzaG91bGQgYmUgcmVsYXRpdmU7IHRoZSBwYXRoIHdpbGwgdGhlbiBiZSByZWxhdGl2ZSB0byB0aGF0IGRpcmVjdG9yeS5cblwKK3NyY19kaXJfZmQgYW5kIGRzdF9kaXJfZmQsIG1heSBub3QgYmUgaW1wbGVtZW50ZWQgb24geW91ciBwbGF0Zm9ybS5cblwKKyAgSWYgdGhleSBhcmUgdW5hdmFpbGFibGUsIHVzaW5nIHRoZW0gd2lsbCByYWlzZSBhIE5vdEltcGxlbWVudGVkRXJyb3IuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9yZXBsYWNlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICByZXR1cm4gaW50ZXJuYWxfcmVuYW1lKGFyZ3MsIGt3YXJncywgMSk7Cit9CiAKIFB5RG9jX1NUUlZBUihwb3NpeF9ybWRpcl9fZG9jX18sCi0icm1kaXIocGF0aClcblxuXAotUmVtb3ZlIGEgZGlyZWN0b3J5LiIpOworInJtZGlyKHBhdGgsICosIGRpcl9mZD1Ob25lKVxuXG5cCitSZW1vdmUgYSBkaXJlY3RvcnkuXG5cCitcblwKK0lmIGRpcl9mZCBpcyBub3QgTm9uZSwgaXQgc2hvdWxkIGJlIGEgZmlsZSBkZXNjcmlwdG9yIG9wZW4gdG8gYSBkaXJlY3RvcnksXG5cCisgIGFuZCBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZTsgcGF0aCB3aWxsIHRoZW4gYmUgcmVsYXRpdmUgdG8gdGhhdCBkaXJlY3RvcnkuXG5cCitkaXJfZmQgbWF5IG5vdCBiZSBpbXBsZW1lbnRlZCBvbiB5b3VyIHBsYXRmb3JtLlxuXAorICBJZiBpdCBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgd2lsbCByYWlzZSBhIE5vdEltcGxlbWVudGVkRXJyb3IuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF9ybWRpcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitwb3NpeF9ybWRpcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCiB7Ci0jaWZkZWYgTVNfV0lORE9XUwotICAgIHJldHVybiB3aW4zMl8xc3RyKGFyZ3MsICJybWRpciIsICJ5OnJtZGlyIiwgUmVtb3ZlRGlyZWN0b3J5QSwgIlU6cm1kaXIiLCBSZW1vdmVEaXJlY3RvcnlXKTsKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBpbnQgZGlyX2ZkID0gREVGQVVMVF9ESVJfRkQ7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAiZGlyX2ZkIiwgTlVMTH07CisgICAgaW50IHJlc3VsdDsKKyAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlID0gTlVMTDsKKworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJnwkTyY6cm1kaXIiLCBrZXl3b3JkcywKKyAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKKyNpZmRlZiBIQVZFX1VOTElOS0FUCisgICAgICAgICAgICBkaXJfZmRfY29udmVydGVyLCAmZGlyX2ZkCiAjZWxzZQotICAgIHJldHVybiBwb3NpeF8xc3RyKGFyZ3MsICJPJjpybWRpciIsIHJtZGlyKTsKKyAgICAgICAgICAgIGRpcl9mZF91bmF2YWlsYWJsZSwgJmRpcl9mZAogI2VuZGlmCi19CisgICAgICAgICAgICApKQorICAgICAgICByZXR1cm4gTlVMTDsKIAotCi1QeURvY19TVFJWQVIocG9zaXhfc3RhdF9fZG9jX18sCi0ic3RhdChwYXRoKSAtPiBzdGF0IHJlc3VsdFxuXG5cCi1QZXJmb3JtIGEgc3RhdCBzeXN0ZW0gY2FsbCBvbiB0aGUgZ2l2ZW4gcGF0aC4iKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X3N0YXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoteworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICNpZmRlZiBNU19XSU5ET1dTCi0gICAgcmV0dXJuIHBvc2l4X2RvX3N0YXQoc2VsZiwgYXJncywgIk8mOnN0YXQiLCBTVEFULCAiVTpzdGF0Iiwgd2luMzJfc3RhdF93KTsKKyAgICBpZiAocGF0aC53aWRlKQorICAgICAgICByZXN1bHQgPSBSZW1vdmVEaXJlY3RvcnlXKHBhdGgud2lkZSk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBSZW1vdmVEaXJlY3RvcnlBKHBhdGgubmFycm93KTsKKyAgICByZXN1bHQgPSAhcmVzdWx0OyAvKiBXaW5kb3dzLCBzdWNjZXNzPTEsIFVOSVgsIHN1Y2Nlc3M9MCAqLwogI2Vsc2UKLSAgICByZXR1cm4gcG9zaXhfZG9fc3RhdChzZWxmLCBhcmdzLCAiTyY6c3RhdCIsIFNUQVQsIE5VTEwsIE5VTEwpOworI2lmZGVmIEhBVkVfVU5MSU5LQVQKKyAgICBpZiAoZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKQorICAgICAgICByZXN1bHQgPSB1bmxpbmthdChkaXJfZmQsIHBhdGgubmFycm93LCBBVF9SRU1PVkVESVIpOworICAgIGVsc2UKICNlbmRpZgorICAgICAgICByZXN1bHQgPSBybWRpcihwYXRoLm5hcnJvdyk7CisjZW5kaWYKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCJybWRpciIsICZwYXRoKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJldHVybl92YWx1ZSA9IFB5X05vbmU7CisgICAgUHlfSU5DUkVGKFB5X05vbmUpOworCitleGl0OgorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKIH0KIAogCkBAIC0zMTc5LDE2MyArNDI0Myw0NjggQEAKICNlbmRpZiAvKiBNU19XSU5ET1dTICovCiAKIFB5RG9jX1NUUlZBUihwb3NpeF91bmxpbmtfX2RvY19fLAotInVubGluayhwYXRoKVxuXG5cCi1SZW1vdmUgYSBmaWxlIChzYW1lIGFzIHJlbW92ZShwYXRoKSkuIik7CisidW5saW5rKHBhdGgsICosIGRpcl9mZD1Ob25lKVxuXG5cCitSZW1vdmUgYSBmaWxlIChzYW1lIGFzIHJlbW92ZSgpKS5cblwKK1xuXAorSWYgZGlyX2ZkIGlzIG5vdCBOb25lLCBpdCBzaG91bGQgYmUgYSBmaWxlIGRlc2NyaXB0b3Igb3BlbiB0byBhIGRpcmVjdG9yeSxcblwKKyAgYW5kIHBhdGggc2hvdWxkIGJlIHJlbGF0aXZlOyBwYXRoIHdpbGwgdGhlbiBiZSByZWxhdGl2ZSB0byB0aGF0IGRpcmVjdG9yeS5cblwKK2Rpcl9mZCBtYXkgbm90IGJlIGltcGxlbWVudGVkIG9uIHlvdXIgcGxhdGZvcm0uXG5cCisgIElmIGl0IGlzIHVuYXZhaWxhYmxlLCB1c2luZyBpdCB3aWxsIHJhaXNlIGEgTm90SW1wbGVtZW50ZWRFcnJvci4iKTsKIAogUHlEb2NfU1RSVkFSKHBvc2l4X3JlbW92ZV9fZG9jX18sCi0icmVtb3ZlKHBhdGgpXG5cblwKLVJlbW92ZSBhIGZpbGUgKHNhbWUgYXMgdW5saW5rKHBhdGgpKS4iKTsKKyJyZW1vdmUocGF0aCwgKiwgZGlyX2ZkPU5vbmUpXG5cblwKK1JlbW92ZSBhIGZpbGUgKHNhbWUgYXMgdW5saW5rKCkpLlxuXAorXG5cCitJZiBkaXJfZmQgaXMgbm90IE5vbmUsIGl0IHNob3VsZCBiZSBhIGZpbGUgZGVzY3JpcHRvciBvcGVuIHRvIGEgZGlyZWN0b3J5LFxuXAorICBhbmQgcGF0aCBzaG91bGQgYmUgcmVsYXRpdmU7IHBhdGggd2lsbCB0aGVuIGJlIHJlbGF0aXZlIHRvIHRoYXQgZGlyZWN0b3J5LlxuXAorZGlyX2ZkIG1heSBub3QgYmUgaW1wbGVtZW50ZWQgb24geW91ciBwbGF0Zm9ybS5cblwKKyAgSWYgaXQgaXMgdW5hdmFpbGFibGUsIHVzaW5nIGl0IHdpbGwgcmFpc2UgYSBOb3RJbXBsZW1lbnRlZEVycm9yLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfdW5saW5rKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3Bvc2l4X3VubGluayhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCiB7Ci0jaWZkZWYgTVNfV0lORE9XUwotICAgIHJldHVybiB3aW4zMl8xc3RyKGFyZ3MsICJyZW1vdmUiLCAieTpyZW1vdmUiLCBEZWxldGVGaWxlQSwKLSAgICAgICAgICAgICAgICAgICAgICAiVTpyZW1vdmUiLCBQeV9EZWxldGVGaWxlVyk7CisgICAgcGF0aF90IHBhdGg7CisgICAgaW50IGRpcl9mZCA9IERFRkFVTFRfRElSX0ZEOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgImRpcl9mZCIsIE5VTEx9OworICAgIGludCByZXN1bHQ7CisgICAgUHlPYmplY3QgKnJldHVybl92YWx1ZSA9IE5VTEw7CisKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZ8JE8mOnVubGluayIsIGtleXdvcmRzLAorICAgICAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLAorI2lmZGVmIEhBVkVfVU5MSU5LQVQKKyAgICAgICAgICAgIGRpcl9mZF9jb252ZXJ0ZXIsICZkaXJfZmQKICNlbHNlCi0gICAgcmV0dXJuIHBvc2l4XzFzdHIoYXJncywgIk8mOnJlbW92ZSIsIHVubGluayk7CisgICAgICAgICAgICBkaXJfZmRfdW5hdmFpbGFibGUsICZkaXJfZmQKICNlbmRpZgorICAgICAgICAgICAgKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisjaWZkZWYgTVNfV0lORE9XUworICAgIGlmIChwYXRoLndpZGUpCisgICAgICAgIHJlc3VsdCA9IFB5X0RlbGV0ZUZpbGVXKHBhdGgud2lkZSk7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSBEZWxldGVGaWxlQShwYXRoLm5hcnJvdyk7CisgICAgcmVzdWx0ID0gIXJlc3VsdDsgLyogV2luZG93cywgc3VjY2Vzcz0xLCBVTklYLCBzdWNjZXNzPTAgKi8KKyNlbHNlCisjaWZkZWYgSEFWRV9VTkxJTktBVAorICAgIGlmIChkaXJfZmQgIT0gREVGQVVMVF9ESVJfRkQpCisgICAgICAgIHJlc3VsdCA9IHVubGlua2F0KGRpcl9mZCwgcGF0aC5uYXJyb3csIDApOworICAgIGVsc2UKKyNlbmRpZiAvKiBIQVZFX1VOTElOS0FUICovCisgICAgICAgIHJlc3VsdCA9IHVubGluayhwYXRoLm5hcnJvdyk7CisjZW5kaWYKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCJ1bmxpbmsiLCAmcGF0aCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByZXR1cm5fdmFsdWUgPSBQeV9Ob25lOworICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKworZXhpdDoKKyAgICBwYXRoX2NsZWFudXAoJnBhdGgpOworICAgIHJldHVybiByZXR1cm5fdmFsdWU7CiB9CiAKIAotI2lmZGVmIEhBVkVfVU5BTUUKIFB5RG9jX1NUUlZBUihwb3NpeF91bmFtZV9fZG9jX18sCi0idW5hbWUoKSAtPiAoc3lzbmFtZSwgbm9kZW5hbWUsIHJlbGVhc2UsIHZlcnNpb24sIG1hY2hpbmUpXG5cblwKLVJldHVybiBhIHR1cGxlIGlkZW50aWZ5aW5nIHRoZSBjdXJyZW50IG9wZXJhdGluZyBzeXN0ZW0uIik7CisidW5hbWUoKSAtPiB1bmFtZV9yZXN1bHRcblxuXAorUmV0dXJuIGFuIG9iamVjdCBpZGVudGlmeWluZyB0aGUgY3VycmVudCBvcGVyYXRpbmcgc3lzdGVtLlxuXAorVGhlIG9iamVjdCBiZWhhdmVzIGxpa2UgYSBuYW1lZCB0dXBsZSB3aXRoIHRoZSBmb2xsb3dpbmcgZmllbGRzOlxuXAorICAoc3lzbmFtZSwgbm9kZW5hbWUsIHJlbGVhc2UsIHZlcnNpb24sIG1hY2hpbmUpIik7CiAKK3N0YXRpYyBQeVN0cnVjdFNlcXVlbmNlX0ZpZWxkIHVuYW1lX3Jlc3VsdF9maWVsZHNbXSA9IHsKKyAgICB7InN5c25hbWUiLCAgICAib3BlcmF0aW5nIHN5c3RlbSBuYW1lIn0sCisgICAgeyJub2RlbmFtZSIsICAgIm5hbWUgb2YgbWFjaGluZSBvbiBuZXR3b3JrIChpbXBsZW1lbnRhdGlvbi1kZWZpbmVkKSJ9LAorICAgIHsicmVsZWFzZSIsICAgICJvcGVyYXRpbmcgc3lzdGVtIHJlbGVhc2UifSwKKyAgICB7InZlcnNpb24iLCAgICAib3BlcmF0aW5nIHN5c3RlbSB2ZXJzaW9uIn0sCisgICAgeyJtYWNoaW5lIiwgICAgImhhcmR3YXJlIGlkZW50aWZpZXIifSwKKyAgICB7TlVMTH0KK307CisKK1B5RG9jX1NUUlZBUih1bmFtZV9yZXN1bHRfX2RvY19fLAorInVuYW1lX3Jlc3VsdDogUmVzdWx0IGZyb20gb3MudW5hbWUoKS5cblxuXAorVGhpcyBvYmplY3QgbWF5IGJlIGFjY2Vzc2VkIGVpdGhlciBhcyBhIHR1cGxlIG9mXG5cCisgIChzeXNuYW1lLCBub2RlbmFtZSwgcmVsZWFzZSwgdmVyc2lvbiwgbWFjaGluZSksXG5cCitvciB2aWEgdGhlIGF0dHJpYnV0ZXMgc3lzbmFtZSwgbm9kZW5hbWUsIHJlbGVhc2UsIHZlcnNpb24sIGFuZCBtYWNoaW5lLlxuXAorXG5cCitTZWUgb3MudW5hbWUgZm9yIG1vcmUgaW5mb3JtYXRpb24uIik7CisKK3N0YXRpYyBQeVN0cnVjdFNlcXVlbmNlX0Rlc2MgdW5hbWVfcmVzdWx0X2Rlc2MgPSB7CisgICAgInVuYW1lX3Jlc3VsdCIsIC8qIG5hbWUgKi8KKyAgICB1bmFtZV9yZXN1bHRfX2RvY19fLCAvKiBkb2MgKi8KKyAgICB1bmFtZV9yZXN1bHRfZmllbGRzLAorICAgIDUKK307CisKK3N0YXRpYyBQeVR5cGVPYmplY3QgVW5hbWVSZXN1bHRUeXBlOworCisKKyNpZmRlZiBIQVZFX1VOQU1FCiBzdGF0aWMgUHlPYmplY3QgKgogcG9zaXhfdW5hbWUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpub2FyZ3MpCiB7CiAgICAgc3RydWN0IHV0c25hbWUgdTsKICAgICBpbnQgcmVzOworICAgIFB5T2JqZWN0ICp2YWx1ZTsKIAogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICAgICByZXMgPSB1bmFtZSgmdSk7CiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICAgICBpZiAocmVzIDwgMCkKICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Ci0gICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihzc3NzcykiLAotICAgICAgICAgICAgICAgICAgICAgICAgIHUuc3lzbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB1Lm5vZGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgIHUucmVsZWFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB1LnZlcnNpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgdS5tYWNoaW5lKTsKKworICAgIHZhbHVlID0gUHlTdHJ1Y3RTZXF1ZW5jZV9OZXcoJlVuYW1lUmVzdWx0VHlwZSk7CisgICAgaWYgKHZhbHVlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisjZGVmaW5lIFNFVChpLCBmaWVsZCkgXAorICAgIHsgXAorICAgIFB5T2JqZWN0ICpvID0gUHlVbmljb2RlX0RlY29kZUFTQ0lJKGZpZWxkLCBzdHJsZW4oZmllbGQpLCBOVUxMKTsgXAorICAgIGlmICghbykgeyBcCisgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7IFwKKyAgICAgICAgcmV0dXJuIE5VTEw7IFwKKyAgICB9IFwKKyAgICBQeVN0cnVjdFNlcXVlbmNlX1NFVF9JVEVNKHZhbHVlLCBpLCBvKTsgXAorICAgIH0gXAorCisgICAgU0VUKDAsIHUuc3lzbmFtZSk7CisgICAgU0VUKDEsIHUubm9kZW5hbWUpOworICAgIFNFVCgyLCB1LnJlbGVhc2UpOworICAgIFNFVCgzLCB1LnZlcnNpb24pOworICAgIFNFVCg0LCB1Lm1hY2hpbmUpOworCisjdW5kZWYgU0VUCisKKyAgICByZXR1cm4gdmFsdWU7CiB9CiAjZW5kaWYgLyogSEFWRV9VTkFNRSAqLwogCi1zdGF0aWMgaW50Ci1leHRyYWN0X3RpbWUoUHlPYmplY3QgKnQsIHRpbWVfdCogc2VjLCBsb25nKiB1c2VjKQotewotICAgIHRpbWVfdCBpbnR2YWw7Ci0gICAgaWYgKFB5RmxvYXRfQ2hlY2sodCkpIHsKLSAgICAgICAgZG91YmxlIHR2YWwgPSBQeUZsb2F0X0FzRG91YmxlKHQpOwotICAgICAgICBQeU9iamVjdCAqaW50b2JqID0gUHlOdW1iZXJfTG9uZyh0KTsKLSAgICAgICAgaWYgKCFpbnRvYmopCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0jaWYgU0laRU9GX1RJTUVfVCA+IFNJWkVPRl9MT05HCi0gICAgICAgIGludHZhbCA9IFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ0xvbmdNYXNrKGludG9iaik7Ci0jZWxzZQotICAgICAgICBpbnR2YWwgPSBQeUxvbmdfQXNMb25nKGludG9iaik7Ci0jZW5kaWYKLSAgICAgICAgUHlfREVDUkVGKGludG9iaik7Ci0gICAgICAgIGlmIChpbnR2YWwgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgKnNlYyA9IGludHZhbDsKLSAgICAgICAgKnVzZWMgPSAobG9uZykoKHR2YWwgLSBpbnR2YWwpICogMWU2KTsgLyogY2FuJ3QgZXhjZWVkIDEwMDAwMDAgKi8KLSAgICAgICAgaWYgKCp1c2VjIDwgMCkKLSAgICAgICAgICAgIC8qIElmIHJvdW5kaW5nIGdhdmUgdXMgYSBuZWdhdGl2ZSBudW1iZXIsCi0gICAgICAgICAgICAgICB0cnVuY2F0ZS4gICovCi0gICAgICAgICAgICAqdXNlYyA9IDA7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSNpZiBTSVpFT0ZfVElNRV9UID4gU0laRU9GX0xPTkcKLSAgICBpbnR2YWwgPSBQeUxvbmdfQXNVbnNpZ25lZExvbmdMb25nTWFzayh0KTsKLSNlbHNlCi0gICAgaW50dmFsID0gUHlMb25nX0FzTG9uZyh0KTsKLSNlbmRpZgotICAgIGlmIChpbnR2YWwgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKLSAgICAgICAgcmV0dXJuIC0xOwotICAgICpzZWMgPSBpbnR2YWw7Ci0gICAgKnVzZWMgPSAwOwotICAgIHJldHVybiAwOwotfQogCiBQeURvY19TVFJWQVIocG9zaXhfdXRpbWVfX2RvY19fLAotInV0aW1lKHBhdGgsIChhdGltZSwgbXRpbWUpKVxuXAotdXRpbWUocGF0aCwgTm9uZSlcblxuXAotU2V0IHRoZSBhY2Nlc3MgYW5kIG1vZGlmaWVkIHRpbWUgb2YgdGhlIGZpbGUgdG8gdGhlIGdpdmVuIHZhbHVlcy4gIElmIHRoZVxuXAotc2Vjb25kIGZvcm0gaXMgdXNlZCwgc2V0IHRoZSBhY2Nlc3MgYW5kIG1vZGlmaWVkIHRpbWVzIHRvIHRoZSBjdXJyZW50IHRpbWUuIik7CisidXRpbWUocGF0aCwgdGltZXM9Tm9uZSwgKiwgbnM9Tm9uZSwgZGlyX2ZkPU5vbmUsIGZvbGxvd19zeW1saW5rcz1UcnVlKVxuXAorU2V0IHRoZSBhY2Nlc3MgYW5kIG1vZGlmaWVkIHRpbWUgb2YgcGF0aC5cblwKK1xuXAorcGF0aCBtYXkgYWx3YXlzIGJlIHNwZWNpZmllZCBhcyBhIHN0cmluZy5cblwKK09uIHNvbWUgcGxhdGZvcm1zLCBwYXRoIG1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci5cblwKKyAgSWYgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVuYXZhaWxhYmxlLCB1c2luZyBpdCByYWlzZXMgYW4gZXhjZXB0aW9uLlxuXAorXG5cCitJZiB0aW1lcyBpcyBub3QgTm9uZSwgaXQgbXVzdCBiZSBhIHR1cGxlIChhdGltZSwgbXRpbWUpO1xuXAorICAgIGF0aW1lIGFuZCBtdGltZSBzaG91bGQgYmUgZXhwcmVzc2VkIGFzIGZsb2F0IHNlY29uZHMgc2luY2UgdGhlIGVwb2NoLlxuXAorSWYgbnMgaXMgbm90IE5vbmUsIGl0IG11c3QgYmUgYSB0dXBsZSAoYXRpbWVfbnMsIG10aW1lX25zKTtcblwKKyAgICBhdGltZV9ucyBhbmQgbXRpbWVfbnMgc2hvdWxkIGJlIGV4cHJlc3NlZCBhcyBpbnRlZ2VyIG5hbm9zZWNvbmRzXG5cCisgICAgc2luY2UgdGhlIGVwb2NoLlxuXAorSWYgYm90aCB0aW1lcyBhbmQgbnMgYXJlIE5vbmUsIHV0aW1lIHVzZXMgdGhlIGN1cnJlbnQgdGltZS5cblwKK1NwZWNpZnlpbmcgdHVwbGVzIGZvciBib3RoIHRpbWVzIGFuZCBucyBpcyBhbiBlcnJvci5cblwKK1xuXAorSWYgZGlyX2ZkIGlzIG5vdCBOb25lLCBpdCBzaG91bGQgYmUgYSBmaWxlIGRlc2NyaXB0b3Igb3BlbiB0byBhIGRpcmVjdG9yeSxcblwKKyAgYW5kIHBhdGggc2hvdWxkIGJlIHJlbGF0aXZlOyBwYXRoIHdpbGwgdGhlbiBiZSByZWxhdGl2ZSB0byB0aGF0IGRpcmVjdG9yeS5cblwKK0lmIGZvbGxvd19zeW1saW5rcyBpcyBGYWxzZSwgYW5kIHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhlIHBhdGggaXMgYSBzeW1ib2xpY1xuXAorICBsaW5rLCB1dGltZSB3aWxsIG1vZGlmeSB0aGUgc3ltYm9saWMgbGluayBpdHNlbGYgaW5zdGVhZCBvZiB0aGUgZmlsZSB0aGVcblwKKyAgbGluayBwb2ludHMgdG8uXG5cCitJdCBpcyBhbiBlcnJvciB0byB1c2UgZGlyX2ZkIG9yIGZvbGxvd19zeW1saW5rcyB3aGVuIHNwZWNpZnlpbmcgcGF0aFxuXAorICBhcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci5cblwKK2Rpcl9mZCBhbmQgZm9sbG93X3N5bWxpbmtzIG1heSBub3QgYmUgYXZhaWxhYmxlIG9uIHlvdXIgcGxhdGZvcm0uXG5cCisgIElmIHRoZXkgYXJlIHVuYXZhaWxhYmxlLCB1c2luZyB0aGVtIHdpbGwgcmFpc2UgYSBOb3RJbXBsZW1lbnRlZEVycm9yLiIpOwogCi1zdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfdXRpbWUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotI2lmZGVmIE1TX1dJTkRPV1MKLSAgICBQeU9iamVjdCAqYXJnOwotICAgIFB5VW5pY29kZU9iamVjdCAqb2J3cGF0aDsKLSAgICB3Y2hhcl90ICp3cGF0aCA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKm9hcGF0aDsKLSAgICBjaGFyICphcGF0aDsKLSAgICBIQU5ETEUgaEZpbGU7Ci0gICAgdGltZV90IGF0aW1lc2VjLCBtdGltZXNlYzsKLSAgICBsb25nIGF1c2VjLCBtdXNlYzsKLSAgICBGSUxFVElNRSBhdGltZSwgbXRpbWU7Ci0gICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7Cit0eXBlZGVmIHN0cnVjdCB7CisgICAgaW50ICAgIG5vdzsKKyAgICB0aW1lX3QgYXRpbWVfczsKKyAgICBsb25nICAgYXRpbWVfbnM7CisgICAgdGltZV90IG10aW1lX3M7CisgICAgbG9uZyAgIG10aW1lX25zOworfSB1dGltZV90OwogCi0gICAgaWYgKFB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlVPfDp1dGltZSIsICZvYndwYXRoLCAmYXJnKSkgewotICAgICAgICB3cGF0aCA9IFB5VW5pY29kZV9BU19VTklDT0RFKG9id3BhdGgpOwotICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgICAgIGhGaWxlID0gQ3JlYXRlRmlsZVcod3BhdGgsIEZJTEVfV1JJVEVfQVRUUklCVVRFUywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBPUEVOX0VYSVNUSU5HLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTEVfRkxBR19CQUNLVVBfU0VNQU5USUNTLCBOVUxMKTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgaWYgKGhGaWxlID09IElOVkFMSURfSEFORExFX1ZBTFVFKQotICAgICAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yX3VuaWNvZGUoInV0aW1lIiwgd3BhdGgpOwotICAgIH0gZWxzZQotICAgICAgICAvKiBEcm9wIHRoZSBhcmd1bWVudCBwYXJzaW5nIGVycm9yIGFzIG5hcnJvdyBzdHJpbmdzCi0gICAgICAgICAgIGFyZSBhbHNvIHZhbGlkLiAqLwotICAgICAgICBQeUVycl9DbGVhcigpOworLyoKKyAqIHRoZXNlIG1hY3JvcyBhc3N1bWUgdGhhdCAidXRpbWUiIGlzIGEgcG9pbnRlciB0byBhIHV0aW1lX3QKKyAqIHRoZXkgYWxzbyBpbnRlbnRpb25hbGx5IGxlYWsgdGhlIGRlY2xhcmF0aW9uIG9mIGEgcG9pbnRlciBuYW1lZCAidGltZSIKKyAqLworI2RlZmluZSBVVElNRV9UT19USU1FU1BFQyBcCisgICAgc3RydWN0IHRpbWVzcGVjIHRzWzJdOyBcCisgICAgc3RydWN0IHRpbWVzcGVjICp0aW1lOyBcCisgICAgaWYgKHV0aW1lLT5ub3cpIFwKKyAgICAgICAgdGltZSA9IE5VTEw7IFwKKyAgICBlbHNlIHsgXAorICAgICAgICB0c1swXS50dl9zZWMgPSB1dGltZS0+YXRpbWVfczsgXAorICAgICAgICB0c1swXS50dl9uc2VjID0gdXRpbWUtPmF0aW1lX25zOyBcCisgICAgICAgIHRzWzFdLnR2X3NlYyA9IHV0aW1lLT5tdGltZV9zOyBcCisgICAgICAgIHRzWzFdLnR2X25zZWMgPSB1dGltZS0+bXRpbWVfbnM7IFwKKyAgICAgICAgdGltZSA9IHRzOyBcCisgICAgfSBcCiAKLSAgICBpZiAoIXdwYXRoKSB7Ci0gICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyZPOnV0aW1lIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9hcGF0aCwgJmFyZykpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgYXBhdGggPSBQeUJ5dGVzX0FzU3RyaW5nKG9hcGF0aCk7Ci0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgaEZpbGUgPSBDcmVhdGVGaWxlQShhcGF0aCwgRklMRV9XUklURV9BVFRSSUJVVEVTLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE9QRU5fRVhJU1RJTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRV9GTEFHX0JBQ0tVUF9TRU1BTlRJQ1MsIE5VTEwpOwotICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgICAgICBpZiAoaEZpbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKLSAgICAgICAgICAgIHdpbjMyX2Vycm9yKCJ1dGltZSIsIGFwYXRoKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihvYXBhdGgpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgUHlfREVDUkVGKG9hcGF0aCk7CisjZGVmaW5lIFVUSU1FX1RPX1RJTUVWQUwgXAorICAgIHN0cnVjdCB0aW1ldmFsIHR2WzJdOyBcCisgICAgc3RydWN0IHRpbWV2YWwgKnRpbWU7IFwKKyAgICBpZiAodXRpbWUtPm5vdykgXAorICAgICAgICB0aW1lID0gTlVMTDsgXAorICAgIGVsc2UgeyBcCisgICAgICAgIHR2WzBdLnR2X3NlYyA9IHV0aW1lLT5hdGltZV9zOyBcCisgICAgICAgIHR2WzBdLnR2X3VzZWMgPSB1dGltZS0+YXRpbWVfbnMgLyAxMDAwOyBcCisgICAgICAgIHR2WzFdLnR2X3NlYyA9IHV0aW1lLT5tdGltZV9zOyBcCisgICAgICAgIHR2WzFdLnR2X3VzZWMgPSB1dGltZS0+bXRpbWVfbnMgLyAxMDAwOyBcCisgICAgICAgIHRpbWUgPSB0djsgXAorICAgIH0gXAorCisjZGVmaW5lIFVUSU1FX1RPX1VUSU1CVUYgXAorICAgIHN0cnVjdCB1dGltYnVmIHVbMl07IFwKKyAgICBzdHJ1Y3QgdXRpbWJ1ZiAqdGltZTsgXAorICAgIGlmICh1dGltZS0+bm93KSBcCisgICAgICAgIHRpbWUgPSBOVUxMOyBcCisgICAgZWxzZSB7IFwKKyAgICAgICAgdS5hY3RpbWUgPSB1dGltZS0+YXRpbWVfczsgXAorICAgICAgICB1Lm1vZHRpbWUgPSB1dGltZS0+bXRpbWVfczsgXAorICAgICAgICB0aW1lID0gdTsgXAogICAgIH0KIAotICAgIGlmIChhcmcgPT0gUHlfTm9uZSkgeworI2RlZmluZSBVVElNRV9UT19USU1FX1QgXAorICAgIHRpbWVfdCB0aW1ldFsyXTsgXAorICAgIHN0cnVjdCB0aW1ldCB0aW1lOyBcCisgICAgaWYgKHV0aW1lLT5ub3cpIFwKKyAgICAgICAgdGltZSA9IE5VTEw7IFwKKyAgICBlbHNlIHsgXAorICAgICAgICB0aW1ldFswXSA9IHV0aW1lLT5hdGltZV9zOyBcCisgICAgICAgIHRpbWV0WzFdID0gdXRpbWUtPm10aW1lX3M7IFwKKyAgICAgICAgdGltZSA9ICZ0aW1ldDsgXAorICAgIH0gXAorCisKKyNkZWZpbmUgVVRJTUVfSEFWRV9ESVJfRkQgKGRlZmluZWQoSEFWRV9GVVRJTUVTQVQpIHx8IGRlZmluZWQoSEFWRV9VVElNRU5TQVQpKQorCisjaWYgVVRJTUVfSEFWRV9ESVJfRkQKKworc3RhdGljIGludAordXRpbWVfZGlyX2ZkKHV0aW1lX3QgKnV0aW1lLCBpbnQgZGlyX2ZkLCBjaGFyICpwYXRoLCBpbnQgZm9sbG93X3N5bWxpbmtzKQoreworI2lmZGVmIEhBVkVfVVRJTUVOU0FUCisgICAgaW50IGZsYWdzID0gZm9sbG93X3N5bWxpbmtzID8gMCA6IEFUX1NZTUxJTktfTk9GT0xMT1c7CisgICAgVVRJTUVfVE9fVElNRVNQRUM7CisgICAgcmV0dXJuIHV0aW1lbnNhdChkaXJfZmQsIHBhdGgsIHRpbWUsIGZsYWdzKTsKKyNlbGlmIGRlZmluZWQoSEFWRV9GVVRJTUVTQVQpCisgICAgVVRJTUVfVE9fVElNRVZBTDsKKyAgICAvKgorICAgICAqIGZvbGxvd19zeW1saW5rcyB3aWxsIG5ldmVyIGJlIGZhbHNlIGhlcmU7CisgICAgICogd2Ugb25seSBhbGxvdyAhZm9sbG93X3N5bWxpbmtzIGFuZCBkaXJfZmQgdG9nZXRoZXIKKyAgICAgKiBpZiB3ZSBoYXZlIHV0aW1lbnNhdCgpCisgICAgICovCisgICAgYXNzZXJ0KGZvbGxvd19zeW1saW5rcyk7CisgICAgcmV0dXJuIGZ1dGltZXNhdChkaXJfZmQsIHBhdGgsIHRpbWUpOworI2VuZGlmCit9CisKKyNlbmRpZgorCisjZGVmaW5lIFVUSU1FX0hBVkVfRkQgKGRlZmluZWQoSEFWRV9GVVRJTUVTKSB8fCBkZWZpbmVkKEhBVkVfRlVUSU1FTlMpKQorCisjaWYgVVRJTUVfSEFWRV9GRAorCitzdGF0aWMgaW50Cit1dGltZV9mZCh1dGltZV90ICp1dGltZSwgaW50IGZkKQoreworI2lmZGVmIEhBVkVfRlVUSU1FTlMKKyAgICBVVElNRV9UT19USU1FU1BFQzsKKyAgICByZXR1cm4gZnV0aW1lbnMoZmQsIHRpbWUpOworI2Vsc2UKKyAgICBVVElNRV9UT19USU1FVkFMOworICAgIHJldHVybiBmdXRpbWVzKGZkLCB0aW1lKTsKKyNlbmRpZgorfQorCisjZW5kaWYKKworCisjZGVmaW5lIFVUSU1FX0hBVkVfTk9GT0xMT1dfU1lNTElOS1MgXAorICAgICAgICAoZGVmaW5lZChIQVZFX1VUSU1FTlNBVCkgfHwgZGVmaW5lZChIQVZFX0xVVElNRVMpKQorCisjaWYgVVRJTUVfSEFWRV9OT0ZPTExPV19TWU1MSU5LUworCitzdGF0aWMgaW50Cit1dGltZV9ub2ZvbGxvd19zeW1saW5rcyh1dGltZV90ICp1dGltZSwgY2hhciAqcGF0aCkKK3sKKyNpZmRlZiBIQVZFX1VUSU1FTlNBVAorICAgIFVUSU1FX1RPX1RJTUVTUEVDOworICAgIHJldHVybiB1dGltZW5zYXQoREVGQVVMVF9ESVJfRkQsIHBhdGgsIHRpbWUsIEFUX1NZTUxJTktfTk9GT0xMT1cpOworI2Vsc2UKKyAgICBVVElNRV9UT19USU1FVkFMOworICAgIHJldHVybiBsdXRpbWVzKHBhdGgsIHRpbWUpOworI2VuZGlmCit9CisKKyNlbmRpZgorCisjaWZuZGVmIE1TX1dJTkRPV1MKKworc3RhdGljIGludAordXRpbWVfZGVmYXVsdCh1dGltZV90ICp1dGltZSwgY2hhciAqcGF0aCkKK3sKKyNpZmRlZiBIQVZFX1VUSU1FTlNBVAorICAgIFVUSU1FX1RPX1RJTUVTUEVDOworICAgIHJldHVybiB1dGltZW5zYXQoREVGQVVMVF9ESVJfRkQsIHBhdGgsIHRpbWUsIDApOworI2VsaWYgZGVmaW5lZChIQVZFX1VUSU1FUykKKyAgICBVVElNRV9UT19USU1FVkFMOworICAgIHJldHVybiB1dGltZXMocGF0aCwgdGltZSk7CisjZWxpZiBkZWZpbmVkKEhBVkVfVVRJTUVfSCkKKyAgICBVVElNRV9UT19VVElNQlVGOworICAgIHJldHVybiB1dGltZShwYXRoLCB0aW1lKTsKKyNlbHNlCisgICAgVVRJTUVfVE9fVElNRV9UOworICAgIHJldHVybiB1dGltZShwYXRoLCB0aW1lKTsKKyNlbmRpZgorfQorCisjZW5kaWYKKworc3RhdGljIGludAorc3BsaXRfcHlfbG9uZ190b19zX2FuZF9ucyhQeU9iamVjdCAqcHlfbG9uZywgdGltZV90ICpzLCBsb25nICpucykKK3sKKyAgICBpbnQgcmVzdWx0ID0gMDsKKyAgICBQeU9iamVjdCAqZGl2bW9kOworICAgIGRpdm1vZCA9IFB5TnVtYmVyX0Rpdm1vZChweV9sb25nLCBiaWxsaW9uKTsKKyAgICBpZiAoIWRpdm1vZCkKKyAgICAgICAgZ290byBleGl0OworICAgICpzID0gX1B5TG9uZ19Bc1RpbWVfdChQeVR1cGxlX0dFVF9JVEVNKGRpdm1vZCwgMCkpOworICAgIGlmICgoKnMgPT0gLTEpICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIGdvdG8gZXhpdDsKKyAgICAqbnMgPSBQeUxvbmdfQXNMb25nKFB5VHVwbGVfR0VUX0lURU0oZGl2bW9kLCAxKSk7CisgICAgaWYgKCgqbnMgPT0gLTEpICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIGdvdG8gZXhpdDsKKworICAgIHJlc3VsdCA9IDE7CitleGl0OgorICAgIFB5X1hERUNSRUYoZGl2bW9kKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfdXRpbWUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIHBhdGhfdCBwYXRoOworICAgIFB5T2JqZWN0ICp0aW1lcyA9IE5VTEw7CisgICAgUHlPYmplY3QgKm5zID0gTlVMTDsKKyAgICBpbnQgZGlyX2ZkID0gREVGQVVMVF9ESVJfRkQ7CisgICAgaW50IGZvbGxvd19zeW1saW5rcyA9IDE7CisgICAgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsICJ0aW1lcyIsICJucyIsICJkaXJfZmQiLAorICAgICAgICAgICAgICAgICAgICAgICAgImZvbGxvd19zeW1saW5rcyIsIE5VTEx9OworCisgICAgdXRpbWVfdCB1dGltZTsKKworI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBIQU5ETEUgaEZpbGU7CisgICAgRklMRVRJTUUgYXRpbWUsIG10aW1lOworI2Vsc2UKKyAgICBpbnQgcmVzdWx0OworI2VuZGlmCisKKyAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlID0gTlVMTDsKKworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyNpZiBVVElNRV9IQVZFX0ZECisgICAgcGF0aC5hbGxvd19mZCA9IDE7CisjZW5kaWYKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsCisgICAgICAgICAgICAiTyZ8TyRPTyZwOnV0aW1lIiwga2V5d29yZHMsCisgICAgICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgsCisgICAgICAgICAgICAmdGltZXMsICZucywKKyNpZiBVVElNRV9IQVZFX0RJUl9GRAorICAgICAgICAgICAgZGlyX2ZkX2NvbnZlcnRlciwgJmRpcl9mZCwKKyNlbHNlCisgICAgICAgICAgICBkaXJfZmRfdW5hdmFpbGFibGUsICZkaXJfZmQsCisjZW5kaWYKKyAgICAgICAgICAgICZmb2xsb3dfc3ltbGlua3MKKyAgICAgICAgICAgICkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKHRpbWVzICYmICh0aW1lcyAhPSBQeV9Ob25lKSAmJiBucykgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJ1dGltZTogeW91IG1heSBzcGVjaWZ5IGVpdGhlciAndGltZXMnIgorICAgICAgICAgICAgICAgICAgICAgIiBvciAnbnMnIGJ1dCBub3QgYm90aCIpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgaWYgKHRpbWVzICYmICh0aW1lcyAhPSBQeV9Ob25lKSkgeworICAgICAgICBpZiAoIVB5VHVwbGVfQ2hlY2tFeGFjdCh0aW1lcykgfHwgKFB5VHVwbGVfU2l6ZSh0aW1lcykgIT0gMikpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgInV0aW1lOiAndGltZXMnIG11c3QgYmUgZWl0aGVyIgorICAgICAgICAgICAgICAgICAgICAgICAgICIgYSB0dXBsZSBvZiB0d28gaW50cyBvciBOb25lIik7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICAgICAgdXRpbWUubm93ID0gMDsKKyAgICAgICAgaWYgKF9QeVRpbWVfT2JqZWN0VG9UaW1lc3BlYyhQeVR1cGxlX0dFVF9JVEVNKHRpbWVzLCAwKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdXRpbWUuYXRpbWVfcywgJnV0aW1lLmF0aW1lX25zKSA9PSAtMSB8fAorICAgICAgICAgICAgX1B5VGltZV9PYmplY3RUb1RpbWVzcGVjKFB5VHVwbGVfR0VUX0lURU0odGltZXMsIDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1dGltZS5tdGltZV9zLCAmdXRpbWUubXRpbWVfbnMpID09IC0xKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAobnMpIHsKKyAgICAgICAgaWYgKCFQeVR1cGxlX0NoZWNrRXhhY3QobnMpIHx8IChQeVR1cGxlX1NpemUobnMpICE9IDIpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ1dGltZTogJ25zJyBtdXN0IGJlIGEgdHVwbGUgb2YgdHdvIGludHMiKTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorICAgICAgICB1dGltZS5ub3cgPSAwOworICAgICAgICBpZiAoIXNwbGl0X3B5X2xvbmdfdG9fc19hbmRfbnMoUHlUdXBsZV9HRVRfSVRFTShucywgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1dGltZS5hdGltZV9zLCAmdXRpbWUuYXRpbWVfbnMpIHx8CisgICAgICAgICAgICAhc3BsaXRfcHlfbG9uZ190b19zX2FuZF9ucyhQeVR1cGxlX0dFVF9JVEVNKG5zLCAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1dGltZS5tdGltZV9zLCAmdXRpbWUubXRpbWVfbnMpKSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIC8qIHRpbWVzIGFuZCBucyBhcmUgYm90aCBOb25lL3Vuc3BlY2lmaWVkLiB1c2UgIm5vdyIuICovCisgICAgICAgIHV0aW1lLm5vdyA9IDE7CisgICAgfQorCisjaWYgIVVUSU1FX0hBVkVfTk9GT0xMT1dfU1lNTElOS1MKKyAgICBpZiAoZm9sbG93X3N5bWxpbmtzX3NwZWNpZmllZCgidXRpbWUiLCBmb2xsb3dfc3ltbGlua3MpKQorICAgICAgICBnb3RvIGV4aXQ7CisjZW5kaWYKKworICAgIGlmIChwYXRoX2FuZF9kaXJfZmRfaW52YWxpZCgidXRpbWUiLCAmcGF0aCwgZGlyX2ZkKSB8fAorICAgICAgICBkaXJfZmRfYW5kX2ZkX2ludmFsaWQoInV0aW1lIiwgZGlyX2ZkLCBwYXRoLmZkKSB8fAorICAgICAgICBmZF9hbmRfZm9sbG93X3N5bWxpbmtzX2ludmFsaWQoInV0aW1lIiwgcGF0aC5mZCwgZm9sbG93X3N5bWxpbmtzKSkKKyAgICAgICAgZ290byBleGl0OworCisjaWYgIWRlZmluZWQoSEFWRV9VVElNRU5TQVQpCisgICAgaWYgKChkaXJfZmQgIT0gREVGQVVMVF9ESVJfRkQpICYmICghZm9sbG93X3N5bWxpbmtzKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJ1dGltZTogY2Fubm90IHVzZSBkaXJfZmQgYW5kIGZvbGxvd19zeW1saW5rcyAiCisgICAgICAgICAgICAgICAgICAgICAidG9nZXRoZXIgb24gdGhpcyBwbGF0Zm9ybSIpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorI2VuZGlmCisKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIGlmIChwYXRoLndpZGUpCisgICAgICAgIGhGaWxlID0gQ3JlYXRlRmlsZVcocGF0aC53aWRlLCBGSUxFX1dSSVRFX0FUVFJJQlVURVMsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgT1BFTl9FWElTVElORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxFX0ZMQUdfQkFDS1VQX1NFTUFOVElDUywgTlVMTCk7CisgICAgZWxzZQorICAgICAgICBoRmlsZSA9IENyZWF0ZUZpbGVBKHBhdGgubmFycm93LCBGSUxFX1dSSVRFX0FUVFJJQlVURVMsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgT1BFTl9FWElTVElORywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBGSUxFX0ZMQUdfQkFDS1VQX1NFTUFOVElDUywgTlVMTCk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICBpZiAoaEZpbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKKyAgICAgICAgd2luMzJfZXJyb3Jfb2JqZWN0KCJ1dGltZSIsIHBhdGgub2JqZWN0KTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmICh1dGltZS5ub3cpIHsKICAgICAgICAgU1lTVEVNVElNRSBub3c7CiAgICAgICAgIEdldFN5c3RlbVRpbWUoJm5vdyk7CiAgICAgICAgIGlmICghU3lzdGVtVGltZVRvRmlsZVRpbWUoJm5vdywgJm10aW1lKSB8fAogICAgICAgICAgICAgIVN5c3RlbVRpbWVUb0ZpbGVUaW1lKCZub3csICZhdGltZSkpIHsKICAgICAgICAgICAgIHdpbjMyX2Vycm9yKCJ1dGltZSIsIE5VTEwpOwotICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgZ290byBleGl0OwogICAgICAgICB9CiAgICAgfQotICAgIGVsc2UgaWYgKCFQeVR1cGxlX0NoZWNrKGFyZykgfHwgUHlUdXBsZV9TaXplKGFyZykgIT0gMikgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgInV0aW1lKCkgYXJnIDIgbXVzdCBiZSBhIHR1cGxlIChhdGltZSwgbXRpbWUpIik7Ci0gICAgICAgIGdvdG8gZG9uZTsKLSAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmIChleHRyYWN0X3RpbWUoUHlUdXBsZV9HRVRfSVRFTShhcmcsIDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICZhdGltZXNlYywgJmF1c2VjKSA9PSAtMSkKLSAgICAgICAgICAgIGdvdG8gZG9uZTsKLSAgICAgICAgdGltZV90X3RvX0ZJTEVfVElNRShhdGltZXNlYywgMTAwMCphdXNlYywgJmF0aW1lKTsKLSAgICAgICAgaWYgKGV4dHJhY3RfdGltZShQeVR1cGxlX0dFVF9JVEVNKGFyZywgMSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgJm10aW1lc2VjLCAmbXVzZWMpID09IC0xKQotICAgICAgICAgICAgZ290byBkb25lOwotICAgICAgICB0aW1lX3RfdG9fRklMRV9USU1FKG10aW1lc2VjLCAxMDAwKm11c2VjLCAmbXRpbWUpOworICAgICAgICB0aW1lX3RfdG9fRklMRV9USU1FKHV0aW1lLmF0aW1lX3MsIHV0aW1lLmF0aW1lX25zLCAmYXRpbWUpOworICAgICAgICB0aW1lX3RfdG9fRklMRV9USU1FKHV0aW1lLm10aW1lX3MsIHV0aW1lLm10aW1lX25zLCAmbXRpbWUpOwogICAgIH0KICAgICBpZiAoIVNldEZpbGVUaW1lKGhGaWxlLCBOVUxMLCAmYXRpbWUsICZtdGltZSkpIHsKICAgICAgICAgLyogQXZvaWQgcHV0dGluZyB0aGUgZmlsZSBuYW1lIGludG8gdGhlIGVycm9yIGhlcmUsCkBAIC0zMzQzLDkzICs0NzEyLDUyIEBACiAgICAgICAgICAgIHNvbWV0aGluZyBpcyB3cm9uZyB3aXRoIHRoZSBmaWxlLCB3aGVuIGl0IGFsc28KICAgICAgICAgICAgY291bGQgYmUgdGhlIHRpbWUgc3RhbXAgdGhhdCBnaXZlcyBhIHByb2JsZW0uICovCiAgICAgICAgIHdpbjMyX2Vycm9yKCJ1dGltZSIsIE5VTEwpOwotICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgIGdvdG8gZXhpdDsKICAgICB9Ci0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJlc3VsdCA9IFB5X05vbmU7Ci1kb25lOgotICAgIENsb3NlSGFuZGxlKGhGaWxlKTsKLSAgICByZXR1cm4gcmVzdWx0OwogI2Vsc2UgLyogTVNfV0lORE9XUyAqLworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKIAotICAgIFB5T2JqZWN0ICpvcGF0aDsKLSAgICBjaGFyICpwYXRoOwotICAgIHRpbWVfdCBhdGltZSwgbXRpbWU7Ci0gICAgbG9uZyBhdXNlYywgbXVzZWM7Ci0gICAgaW50IHJlczsKLSAgICBQeU9iamVjdCogYXJnOworI2lmIFVUSU1FX0hBVkVfTk9GT0xMT1dfU1lNTElOS1MKKyAgICBpZiAoKCFmb2xsb3dfc3ltbGlua3MpICYmIChkaXJfZmQgPT0gREVGQVVMVF9ESVJfRkQpKQorICAgICAgICByZXN1bHQgPSB1dGltZV9ub2ZvbGxvd19zeW1saW5rcygmdXRpbWUsIHBhdGgubmFycm93KTsKKyAgICBlbHNlCisjZW5kaWYKIAotI2lmIGRlZmluZWQoSEFWRV9VVElNRVMpCi0gICAgc3RydWN0IHRpbWV2YWwgYnVmWzJdOwotI2RlZmluZSBBVElNRSBidWZbMF0udHZfc2VjCi0jZGVmaW5lIE1USU1FIGJ1ZlsxXS50dl9zZWMKLSNlbGlmIGRlZmluZWQoSEFWRV9VVElNRV9IKQotLyogWFhYIHNob3VsZCBkZWZpbmUgc3RydWN0IHV0aW1idWYgaW5zdGVhZCwgYWJvdmUgKi8KLSAgICBzdHJ1Y3QgdXRpbWJ1ZiBidWY7Ci0jZGVmaW5lIEFUSU1FIGJ1Zi5hY3RpbWUKLSNkZWZpbmUgTVRJTUUgYnVmLm1vZHRpbWUKLSNkZWZpbmUgVVRJTUVfQVJHICZidWYKLSNlbHNlIC8qIEhBVkVfVVRJTUVTICovCi0gICAgdGltZV90IGJ1ZlsyXTsKLSNkZWZpbmUgQVRJTUUgYnVmWzBdCi0jZGVmaW5lIE1USU1FIGJ1ZlsxXQotI2RlZmluZSBVVElNRV9BUkcgYnVmCi0jZW5kaWYgLyogSEFWRV9VVElNRVMgKi8KKyNpZiBVVElNRV9IQVZFX0RJUl9GRAorICAgIGlmICgoZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKSB8fCAoIWZvbGxvd19zeW1saW5rcykpCisgICAgICAgIHJlc3VsdCA9IHV0aW1lX2Rpcl9mZCgmdXRpbWUsIGRpcl9mZCwgcGF0aC5uYXJyb3csIGZvbGxvd19zeW1saW5rcyk7CisgICAgZWxzZQorI2VuZGlmCiAKKyNpZiBVVElNRV9IQVZFX0ZECisgICAgaWYgKHBhdGguZmQgIT0gLTEpCisgICAgICAgIHJlc3VsdCA9IHV0aW1lX2ZkKCZ1dGltZSwgcGF0aC5mZCk7CisgICAgZWxzZQorI2VuZGlmCiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mTzp1dGltZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9wYXRoLCAmYXJnKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcGF0aCA9IFB5Qnl0ZXNfQXNTdHJpbmcob3BhdGgpOwotICAgIGlmIChhcmcgPT0gUHlfTm9uZSkgewotICAgICAgICAvKiBvcHRpb25hbCB0aW1lIHZhbHVlcyBub3QgZ2l2ZW4gKi8KLSAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICByZXMgPSB1dGltZShwYXRoLCBOVUxMKTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICByZXN1bHQgPSB1dGltZV9kZWZhdWx0KCZ1dGltZSwgcGF0aC5uYXJyb3cpOworCisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmIChyZXN1bHQgPCAwKSB7CisgICAgICAgIC8qIHNlZSBwcmV2aW91cyBjb21tZW50IGFib3V0IG5vdCBwdXR0aW5nIGZpbGVuYW1lIGluIGVycm9yIGhlcmUgKi8KKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcG9zaXhfZXJyb3IoKTsKKyAgICAgICAgZ290byBleGl0OwogICAgIH0KLSAgICBlbHNlIGlmICghUHlUdXBsZV9DaGVjayhhcmcpIHx8IFB5VHVwbGVfU2l6ZShhcmcpICE9IDIpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ1dGltZSgpIGFyZyAyIG11c3QgYmUgYSB0dXBsZSAoYXRpbWUsIG10aW1lKSIpOwotICAgICAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChleHRyYWN0X3RpbWUoUHlUdXBsZV9HRVRfSVRFTShhcmcsIDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICZhdGltZSwgJmF1c2VjKSA9PSAtMSkgewotICAgICAgICAgICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGlmIChleHRyYWN0X3RpbWUoUHlUdXBsZV9HRVRfSVRFTShhcmcsIDEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICZtdGltZSwgJm11c2VjKSA9PSAtMSkgewotICAgICAgICAgICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIEFUSU1FID0gYXRpbWU7Ci0gICAgICAgIE1USU1FID0gbXRpbWU7Ci0jaWZkZWYgSEFWRV9VVElNRVMKLSAgICAgICAgYnVmWzBdLnR2X3VzZWMgPSBhdXNlYzsKLSAgICAgICAgYnVmWzFdLnR2X3VzZWMgPSBtdXNlYzsKLSAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICByZXMgPSB1dGltZXMocGF0aCwgYnVmKTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSNlbHNlCi0gICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICAgICAgcmVzID0gdXRpbWUocGF0aCwgVVRJTUVfQVJHKTsKLSAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSNlbmRpZiAvKiBIQVZFX1VUSU1FUyAqLwotICAgIH0KLSAgICBpZiAocmVzIDwgMCkgewotICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3Jfd2l0aF9hbGxvY2F0ZWRfZmlsZW5hbWUob3BhdGgpOwotICAgIH0KLSAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICByZXR1cm4gUHlfTm9uZTsKLSN1bmRlZiBVVElNRV9BUkcKLSN1bmRlZiBBVElNRQotI3VuZGVmIE1USU1FCisKICNlbmRpZiAvKiBNU19XSU5ET1dTICovCi19CiAKKyAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgcmV0dXJuX3ZhbHVlID0gUHlfTm9uZTsKKworZXhpdDoKKyAgICBwYXRoX2NsZWFudXAoJnBhdGgpOworI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBpZiAoaEZpbGUgIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpCisgICAgICAgIENsb3NlSGFuZGxlKGhGaWxlKTsKKyNlbmRpZgorICAgIHJldHVybiByZXR1cm5fdmFsdWU7Cit9CiAKIC8qIFByb2Nlc3Mgb3BlcmF0aW9ucyAqLwogCkBAIC0zNDc0LDc5ICs0ODAyLDcgQEAKIH0KICNlbmRpZgogCi0KLSNpZmRlZiBIQVZFX0VYRUNWCi1QeURvY19TVFJWQVIocG9zaXhfZXhlY3ZfX2RvY19fLAotImV4ZWN2KHBhdGgsIGFyZ3MpXG5cblwKLUV4ZWN1dGUgYW4gZXhlY3V0YWJsZSBwYXRoIHdpdGggYXJndW1lbnRzLCByZXBsYWNpbmcgY3VycmVudCBwcm9jZXNzLlxuXAotXG5cCi0gICAgcGF0aDogcGF0aCBvZiBleGVjdXRhYmxlIGZpbGVcblwKLSAgICBhcmdzOiB0dXBsZSBvciBsaXN0IG9mIHN0cmluZ3MiKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X2V4ZWN2KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBQeU9iamVjdCAqb3BhdGg7Ci0gICAgY2hhciAqcGF0aDsKLSAgICBQeU9iamVjdCAqYXJndjsKLSAgICBjaGFyICoqYXJndmxpc3Q7Ci0gICAgUHlfc3NpemVfdCBpLCBhcmdjOwotICAgIFB5T2JqZWN0ICooKmdldGl0ZW0pKFB5T2JqZWN0ICosIFB5X3NzaXplX3QpOwotCi0gICAgLyogZXhlY3YgaGFzIHR3byBhcmd1bWVudHM6IChwYXRoLCBhcmd2KSwgd2hlcmUKLSAgICAgICBhcmd2IGlzIGEgbGlzdCBvciB0dXBsZSBvZiBzdHJpbmdzLiAqLwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJk86ZXhlY3YiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZvcGF0aCwgJmFyZ3YpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBwYXRoID0gUHlCeXRlc19Bc1N0cmluZyhvcGF0aCk7Ci0gICAgaWYgKFB5TGlzdF9DaGVjayhhcmd2KSkgewotICAgICAgICBhcmdjID0gUHlMaXN0X1NpemUoYXJndik7Ci0gICAgICAgIGdldGl0ZW0gPSBQeUxpc3RfR2V0SXRlbTsKLSAgICB9Ci0gICAgZWxzZSBpZiAoUHlUdXBsZV9DaGVjayhhcmd2KSkgewotICAgICAgICBhcmdjID0gUHlUdXBsZV9TaXplKGFyZ3YpOwotICAgICAgICBnZXRpdGVtID0gUHlUdXBsZV9HZXRJdGVtOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImV4ZWN2KCkgYXJnIDIgbXVzdCBiZSBhIHR1cGxlIG9yIGxpc3QiKTsKLSAgICAgICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGlmIChhcmdjIDwgMSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImV4ZWN2KCkgYXJnIDIgbXVzdCBub3QgYmUgZW1wdHkiKTsKLSAgICAgICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgYXJndmxpc3QgPSBQeU1lbV9ORVcoY2hhciAqLCBhcmdjKzEpOwotICAgIGlmIChhcmd2bGlzdCA9PSBOVUxMKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihvcGF0aCk7Ci0gICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwotICAgIH0KLSAgICBmb3IgKGkgPSAwOyBpIDwgYXJnYzsgaSsrKSB7Ci0gICAgICAgIGlmICghZnNjb252ZXJ0X3N0cmR1cCgoKmdldGl0ZW0pKGFyZ3YsIGkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmFyZ3ZsaXN0W2ldKSkgewotICAgICAgICAgICAgZnJlZV9zdHJpbmdfYXJyYXkoYXJndmxpc3QsIGkpOwotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhlY3YoKSBhcmcgMiBtdXN0IGNvbnRhaW4gb25seSBzdHJpbmdzIik7Ci0gICAgICAgICAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICAgICAgfQotICAgIH0KLSAgICBhcmd2bGlzdFthcmdjXSA9IE5VTEw7Ci0KLSAgICBleGVjdihwYXRoLCBhcmd2bGlzdCk7Ci0KLSAgICAvKiBJZiB3ZSBnZXQgaGVyZSBpdCdzIGRlZmluaXRlbHkgYW4gZXJyb3IgKi8KLQotICAgIGZyZWVfc3RyaW5nX2FycmF5KGFyZ3ZsaXN0LCBhcmdjKTsKLSAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgIHJldHVybiBwb3NpeF9lcnJvcigpOwotfQotCisjaWYgZGVmaW5lZChIQVZFX0VYRUNWKSB8fCBkZWZpbmVkIChIQVZFX0ZFWEVDVkUpCiBzdGF0aWMgY2hhcioqCiBwYXJzZV9lbnZsaXN0KFB5T2JqZWN0KiBlbnYsIFB5X3NzaXplX3QgKmVudmNfcHRyKQogewpAQCAtMzYyOCw4NyArNDg4NCwxNjIgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIGNoYXIqKgorcGFyc2VfYXJnbGlzdChQeU9iamVjdCogYXJndiwgUHlfc3NpemVfdCAqYXJnYykKK3sKKyAgICBpbnQgaTsKKyAgICBjaGFyICoqYXJndmxpc3QgPSBQeU1lbV9ORVcoY2hhciAqLCAqYXJnYysxKTsKKyAgICBpZiAoYXJndmxpc3QgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8ICphcmdjOyBpKyspIHsKKyAgICAgICAgUHlPYmplY3QqIGl0ZW0gPSBQeVNlcXVlbmNlX0lURU0oYXJndiwgaSk7CisgICAgICAgIGlmIChpdGVtID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIGlmICghZnNjb252ZXJ0X3N0cmR1cChpdGVtLCAmYXJndmxpc3RbaV0pKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoaXRlbSk7CisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIH0KKyAgICAgICAgUHlfREVDUkVGKGl0ZW0pOworICAgIH0KKyAgICBhcmd2bGlzdFsqYXJnY10gPSBOVUxMOworICAgIHJldHVybiBhcmd2bGlzdDsKK2ZhaWw6CisgICAgKmFyZ2MgPSBpOworICAgIGZyZWVfc3RyaW5nX2FycmF5KGFyZ3ZsaXN0LCAqYXJnYyk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisjZW5kaWYKKworI2lmZGVmIEhBVkVfRVhFQ1YKK1B5RG9jX1NUUlZBUihwb3NpeF9leGVjdl9fZG9jX18sCisiZXhlY3YocGF0aCwgYXJncylcblxuXAorRXhlY3V0ZSBhbiBleGVjdXRhYmxlIHBhdGggd2l0aCBhcmd1bWVudHMsIHJlcGxhY2luZyBjdXJyZW50IHByb2Nlc3MuXG5cCitcblwKKyAgICBwYXRoOiBwYXRoIG9mIGV4ZWN1dGFibGUgZmlsZVxuXAorICAgIGFyZ3M6IHR1cGxlIG9yIGxpc3Qgb2Ygc3RyaW5ncyIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfZXhlY3YoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpvcGF0aDsKKyAgICBjaGFyICpwYXRoOworICAgIFB5T2JqZWN0ICphcmd2OworICAgIGNoYXIgKiphcmd2bGlzdDsKKyAgICBQeV9zc2l6ZV90IGFyZ2M7CisKKyAgICAvKiBleGVjdiBoYXMgdHdvIGFyZ3VtZW50czogKHBhdGgsIGFyZ3YpLCB3aGVyZQorICAgICAgIGFyZ3YgaXMgYSBsaXN0IG9yIHR1cGxlIG9mIHN0cmluZ3MuICovCisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mTzpleGVjdiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wYXRoLCAmYXJndikpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHBhdGggPSBQeUJ5dGVzX0FzU3RyaW5nKG9wYXRoKTsKKyAgICBpZiAoIVB5TGlzdF9DaGVjayhhcmd2KSAmJiAhUHlUdXBsZV9DaGVjayhhcmd2KSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgImV4ZWN2KCkgYXJnIDIgbXVzdCBiZSBhIHR1cGxlIG9yIGxpc3QiKTsKKyAgICAgICAgUHlfREVDUkVGKG9wYXRoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGFyZ2MgPSBQeVNlcXVlbmNlX1NpemUoYXJndik7CisgICAgaWYgKGFyZ2MgPCAxKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiZXhlY3YoKSBhcmcgMiBtdXN0IG5vdCBiZSBlbXB0eSIpOworICAgICAgICBQeV9ERUNSRUYob3BhdGgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBhcmd2bGlzdCA9IHBhcnNlX2FyZ2xpc3QoYXJndiwgJmFyZ2MpOworICAgIGlmIChhcmd2bGlzdCA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihvcGF0aCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGV4ZWN2KHBhdGgsIGFyZ3ZsaXN0KTsKKworICAgIC8qIElmIHdlIGdldCBoZXJlIGl0J3MgZGVmaW5pdGVseSBhbiBlcnJvciAqLworCisgICAgZnJlZV9zdHJpbmdfYXJyYXkoYXJndmxpc3QsIGFyZ2MpOworICAgIFB5X0RFQ1JFRihvcGF0aCk7CisgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Cit9CisKIFB5RG9jX1NUUlZBUihwb3NpeF9leGVjdmVfX2RvY19fLAogImV4ZWN2ZShwYXRoLCBhcmdzLCBlbnYpXG5cblwKIEV4ZWN1dGUgYSBwYXRoIHdpdGggYXJndW1lbnRzIGFuZCBlbnZpcm9ubWVudCwgcmVwbGFjaW5nIGN1cnJlbnQgcHJvY2Vzcy5cblwKIFxuXAogICAgIHBhdGg6IHBhdGggb2YgZXhlY3V0YWJsZSBmaWxlXG5cCiAgICAgYXJnczogdHVwbGUgb3IgbGlzdCBvZiBhcmd1bWVudHNcblwKLSAgICBlbnY6IGRpY3Rpb25hcnkgb2Ygc3RyaW5ncyBtYXBwaW5nIHRvIHN0cmluZ3MiKTsKKyAgICBlbnY6IGRpY3Rpb25hcnkgb2Ygc3RyaW5ncyBtYXBwaW5nIHRvIHN0cmluZ3NcblwKK1xuXAorT24gc29tZSBwbGF0Zm9ybXMsIHlvdSBtYXkgc3BlY2lmeSBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciBmb3IgcGF0aDtcblwKKyAgZXhlY3ZlIHdpbGwgZXhlY3V0ZSB0aGUgcHJvZ3JhbSB0aGUgZmlsZSBkZXNjcmlwdG9yIGlzIG9wZW4gdG8uXG5cCisgIElmIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgcmFpc2VzIE5vdEltcGxlbWVudGVkRXJyb3IuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF9leGVjdmUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorcG9zaXhfZXhlY3ZlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKLSAgICBQeU9iamVjdCAqb3BhdGg7Ci0gICAgY2hhciAqcGF0aDsKKyAgICBwYXRoX3QgcGF0aDsKICAgICBQeU9iamVjdCAqYXJndiwgKmVudjsKLSAgICBjaGFyICoqYXJndmxpc3Q7CisgICAgY2hhciAqKmFyZ3ZsaXN0ID0gTlVMTDsKICAgICBjaGFyICoqZW52bGlzdDsKLSAgICBQeV9zc2l6ZV90IGksIGFyZ2MsIGVudmM7Ci0gICAgUHlPYmplY3QgKigqZ2V0aXRlbSkoUHlPYmplY3QgKiwgUHlfc3NpemVfdCk7Ci0gICAgUHlfc3NpemVfdCBsYXN0YXJnID0gMDsKKyAgICBQeV9zc2l6ZV90IGFyZ2MsIGVudmM7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAiYXJndiIsICJlbnZpcm9ubWVudCIsIE5VTEx9OwogCiAgICAgLyogZXhlY3ZlIGhhcyB0aHJlZSBhcmd1bWVudHM6IChwYXRoLCBhcmd2LCBlbnYpLCB3aGVyZQogICAgICAgIGFyZ3YgaXMgYSBsaXN0IG9yIHR1cGxlIG9mIHN0cmluZ3MgYW5kIGVudiBpcyBhIGRpY3Rpb25hcnkKICAgICAgICBsaWtlIHBvc2l4LmVudmlyb24uICovCiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mT086ZXhlY3ZlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmb3BhdGgsICZhcmd2LCAmZW52KSkKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisjaWZkZWYgSEFWRV9GRVhFQ1ZFCisgICAgcGF0aC5hbGxvd19mZCA9IDE7CisjZW5kaWYKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJk9POmV4ZWN2ZSIsIGtleXdvcmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZhcmd2LCAmZW52CisgICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHBhdGggPSBQeUJ5dGVzX0FzU3RyaW5nKG9wYXRoKTsKLSAgICBpZiAoUHlMaXN0X0NoZWNrKGFyZ3YpKSB7Ci0gICAgICAgIGFyZ2MgPSBQeUxpc3RfU2l6ZShhcmd2KTsKLSAgICAgICAgZ2V0aXRlbSA9IFB5TGlzdF9HZXRJdGVtOwotICAgIH0KLSAgICBlbHNlIGlmIChQeVR1cGxlX0NoZWNrKGFyZ3YpKSB7Ci0gICAgICAgIGFyZ2MgPSBQeVR1cGxlX1NpemUoYXJndik7Ci0gICAgICAgIGdldGl0ZW0gPSBQeVR1cGxlX0dldEl0ZW07Ci0gICAgfQotICAgIGVsc2UgeworCisgICAgaWYgKCFQeUxpc3RfQ2hlY2soYXJndikgJiYgIVB5VHVwbGVfQ2hlY2soYXJndikpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJleGVjdmUoKSBhcmcgMiBtdXN0IGJlIGEgdHVwbGUgb3IgbGlzdCIpOwotICAgICAgICBnb3RvIGZhaWxfMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICJleGVjdmU6IGFyZ3YgbXVzdCBiZSBhIHR1cGxlIG9yIGxpc3QiKTsKKyAgICAgICAgZ290byBmYWlsOwogICAgIH0KKyAgICBhcmdjID0gUHlTZXF1ZW5jZV9TaXplKGFyZ3YpOwogICAgIGlmICghUHlNYXBwaW5nX0NoZWNrKGVudikpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJleGVjdmUoKSBhcmcgMyBtdXN0IGJlIGEgbWFwcGluZyBvYmplY3QiKTsKLSAgICAgICAgZ290byBmYWlsXzA7CisgICAgICAgICAgICAgICAgICAgICAgICAiZXhlY3ZlOiBlbnZpcm9ubWVudCBtdXN0IGJlIGEgbWFwcGluZyBvYmplY3QiKTsKKyAgICAgICAgZ290byBmYWlsOwogICAgIH0KIAotICAgIGFyZ3ZsaXN0ID0gUHlNZW1fTkVXKGNoYXIgKiwgYXJnYysxKTsKKyAgICBhcmd2bGlzdCA9IHBhcnNlX2FyZ2xpc3QoYXJndiwgJmFyZ2MpOwogICAgIGlmIChhcmd2bGlzdCA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgICAgIGdvdG8gZmFpbF8wOworICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIGZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKyspIHsKLSAgICAgICAgaWYgKCFmc2NvbnZlcnRfc3RyZHVwKCgqZ2V0aXRlbSkoYXJndiwgaSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYXJndmxpc3RbaV0pKQotICAgICAgICB7Ci0gICAgICAgICAgICBsYXN0YXJnID0gaTsKLSAgICAgICAgICAgIGdvdG8gZmFpbF8xOwotICAgICAgICB9Ci0gICAgfQotICAgIGxhc3RhcmcgPSBhcmdjOwotICAgIGFyZ3ZsaXN0W2FyZ2NdID0gTlVMTDsKIAogICAgIGVudmxpc3QgPSBwYXJzZV9lbnZsaXN0KGVudiwgJmVudmMpOwogICAgIGlmIChlbnZsaXN0ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZmFpbF8xOworICAgICAgICBnb3RvIGZhaWw7CiAKLSAgICBleGVjdmUocGF0aCwgYXJndmxpc3QsIGVudmxpc3QpOworI2lmZGVmIEhBVkVfRkVYRUNWRQorICAgIGlmIChwYXRoLmZkID4gLTEpCisgICAgICAgIGZleGVjdmUocGF0aC5mZCwgYXJndmxpc3QsIGVudmxpc3QpOworICAgIGVsc2UKKyNlbmRpZgorICAgICAgICBleGVjdmUocGF0aC5uYXJyb3csIGFyZ3ZsaXN0LCBlbnZsaXN0KTsKIAogICAgIC8qIElmIHdlIGdldCBoZXJlIGl0J3MgZGVmaW5pdGVseSBhbiBlcnJvciAqLwogCi0gICAgKHZvaWQpIHBvc2l4X2Vycm9yKCk7CisgICAgcGF0aF9wb3NpeF9lcnJvcigiZXhlY3ZlIiwgJnBhdGgpOwogCiAgICAgd2hpbGUgKC0tZW52YyA+PSAwKQogICAgICAgICBQeU1lbV9ERUwoZW52bGlzdFtlbnZjXSk7CiAgICAgUHlNZW1fREVMKGVudmxpc3QpOwotICBmYWlsXzE6Ci0gICAgZnJlZV9zdHJpbmdfYXJyYXkoYXJndmxpc3QsIGxhc3RhcmcpOwotICBmYWlsXzA6Ci0gICAgUHlfREVDUkVGKG9wYXRoKTsKKyAgZmFpbDoKKyAgICBpZiAoYXJndmxpc3QpCisgICAgICAgIGZyZWVfc3RyaW5nX2FycmF5KGFyZ3ZsaXN0LCBhcmdjKTsKKyAgICBwYXRoX2NsZWFudXAoJnBhdGgpOwogICAgIHJldHVybiBOVUxMOwogfQogI2VuZGlmIC8qIEhBVkVfRVhFQ1YgKi8KQEAgLTQxNTMsNiArNTQ4NCw1NzQgQEAKIH0KICNlbmRpZgogCisjaWZkZWYgSEFWRV9TQ0hFRF9ICisKKyNpZmRlZiBIQVZFX1NDSEVEX0dFVF9QUklPUklUWV9NQVgKKworUHlEb2NfU1RSVkFSKHBvc2l4X3NjaGVkX2dldF9wcmlvcml0eV9tYXhfX2RvY19fLAorInNjaGVkX2dldF9wcmlvcml0eV9tYXgocG9saWN5KVxuXG5cCitHZXQgdGhlIG1heGltdW0gc2NoZWR1bGluZyBwcmlvcml0eSBmb3IgKnBvbGljeSouIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBpbnQgcG9saWN5LCBtYXg7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImk6c2NoZWRfZ2V0X3ByaW9yaXR5X21heCIsICZwb2xpY3kpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBtYXggPSBzY2hlZF9nZXRfcHJpb3JpdHlfbWF4KHBvbGljeSk7CisgICAgaWYgKG1heCA8IDApCisgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOworICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcobWF4KTsKK30KKworUHlEb2NfU1RSVkFSKHBvc2l4X3NjaGVkX2dldF9wcmlvcml0eV9taW5fX2RvY19fLAorInNjaGVkX2dldF9wcmlvcml0eV9taW4ocG9saWN5KVxuXG5cCitHZXQgdGhlIG1pbmltdW0gc2NoZWR1bGluZyBwcmlvcml0eSBmb3IgKnBvbGljeSouIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9zY2hlZF9nZXRfcHJpb3JpdHlfbWluKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBpbnQgcG9saWN5LCBtaW47CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImk6c2NoZWRfZ2V0X3ByaW9yaXR5X21pbiIsICZwb2xpY3kpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBtaW4gPSBzY2hlZF9nZXRfcHJpb3JpdHlfbWluKHBvbGljeSk7CisgICAgaWYgKG1pbiA8IDApCisgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOworICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcobWluKTsKK30KKworI2VuZGlmIC8qIEhBVkVfU0NIRURfR0VUX1BSSU9SSVRZX01BWCAqLworCisjaWZkZWYgSEFWRV9TQ0hFRF9TRVRTQ0hFRFVMRVIKKworUHlEb2NfU1RSVkFSKHBvc2l4X3NjaGVkX2dldHNjaGVkdWxlcl9fZG9jX18sCisic2NoZWRfZ2V0c2NoZWR1bGVyKHBpZClcblxuXAorR2V0IHRoZSBzY2hlZHVsaW5nIHBvbGljeSBmb3IgdGhlIHByb2Nlc3Mgd2l0aCBhIFBJRCBvZiAqcGlkKi5cblwKK1Bhc3NpbmcgYSBQSUQgb2YgMCByZXR1cm5zIHRoZSBzY2hlZHVsaW5nIHBvbGljeSBmb3IgdGhlIGNhbGxpbmcgcHJvY2Vzcy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X3NjaGVkX2dldHNjaGVkdWxlcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgcGlkX3QgcGlkOworICAgIGludCBwb2xpY3k7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgX1B5X1BBUlNFX1BJRCAiOnNjaGVkX2dldHNjaGVkdWxlciIsICZwaWQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBwb2xpY3kgPSBzY2hlZF9nZXRzY2hlZHVsZXIocGlkKTsKKyAgICBpZiAocG9saWN5IDwgMCkKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyhwb2xpY3kpOworfQorCisjZW5kaWYKKworI2lmIGRlZmluZWQoSEFWRV9TQ0hFRF9TRVRTQ0hFRFVMRVIpIHx8IGRlZmluZWQoSEFWRV9TQ0hFRF9TRVRQQVJBTSkKKworc3RhdGljIFB5T2JqZWN0ICoKK3NjaGVkX3BhcmFtX25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIFB5T2JqZWN0ICpyZXMsICpwcmlvcml0eTsKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7InNjaGVkX3ByaW9yaXR5IiwgTlVMTH07CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPOnNjaGVkX3BhcmFtIiwga3dsaXN0LCAmcHJpb3JpdHkpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXMgPSBQeVN0cnVjdFNlcXVlbmNlX05ldyh0eXBlKTsKKyAgICBpZiAoIXJlcykKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfSU5DUkVGKHByaW9yaXR5KTsKKyAgICBQeVN0cnVjdFNlcXVlbmNlX1NFVF9JVEVNKHJlcywgMCwgcHJpb3JpdHkpOworICAgIHJldHVybiByZXM7Cit9CisKK1B5RG9jX1NUUlZBUihzY2hlZF9wYXJhbV9fZG9jX18sCisic2NoZWRfcGFyYW0oc2NoZWRfcHJpb3JpdHkpOiBBIHNjaGVkdWxpbmcgcGFyYW1ldGVyLlxuXG5cCitDdXJyZW50IGhhcyBvbmx5IG9uZSBmaWVsZDogc2NoZWRfcHJpb3JpdHkiKTsKKworc3RhdGljIFB5U3RydWN0U2VxdWVuY2VfRmllbGQgc2NoZWRfcGFyYW1fZmllbGRzW10gPSB7CisgICAgeyJzY2hlZF9wcmlvcml0eSIsICJ0aGUgc2NoZWR1bGluZyBwcmlvcml0eSJ9LAorICAgIHswfQorfTsKKworc3RhdGljIFB5U3RydWN0U2VxdWVuY2VfRGVzYyBzY2hlZF9wYXJhbV9kZXNjID0geworICAgICJzY2hlZF9wYXJhbSIsIC8qIG5hbWUgKi8KKyAgICBzY2hlZF9wYXJhbV9fZG9jX18sIC8qIGRvYyAqLworICAgIHNjaGVkX3BhcmFtX2ZpZWxkcywKKyAgICAxCit9OworCitzdGF0aWMgaW50Citjb252ZXJ0X3NjaGVkX3BhcmFtKFB5T2JqZWN0ICpwYXJhbSwgc3RydWN0IHNjaGVkX3BhcmFtICpyZXMpCit7CisgICAgbG9uZyBwcmlvcml0eTsKKworICAgIGlmIChQeV9UWVBFKHBhcmFtKSAhPSAmU2NoZWRQYXJhbVR5cGUpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIm11c3QgaGF2ZSBhIHNjaGVkX3BhcmFtIG9iamVjdCIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcHJpb3JpdHkgPSBQeUxvbmdfQXNMb25nKFB5U3RydWN0U2VxdWVuY2VfR0VUX0lURU0ocGFyYW0sIDApKTsKKyAgICBpZiAocHJpb3JpdHkgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKHByaW9yaXR5ID4gSU5UX01BWCB8fCBwcmlvcml0eSA8IElOVF9NSU4pIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsICJzY2hlZF9wcmlvcml0eSBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJlcy0+c2NoZWRfcHJpb3JpdHkgPSBQeV9TQUZFX0RPV05DQVNUKHByaW9yaXR5LCBsb25nLCBpbnQpOworICAgIHJldHVybiAxOworfQorCisjZW5kaWYKKworI2lmZGVmIEhBVkVfU0NIRURfU0VUU0NIRURVTEVSCisKK1B5RG9jX1NUUlZBUihwb3NpeF9zY2hlZF9zZXRzY2hlZHVsZXJfX2RvY19fLAorInNjaGVkX3NldHNjaGVkdWxlcihwaWQsIHBvbGljeSwgcGFyYW0pXG5cblwKK1NldCB0aGUgc2NoZWR1bGluZyBwb2xpY3ksICpwb2xpY3kqLCBmb3IgKnBpZCouXG5cCitJZiAqcGlkKiBpcyAwLCB0aGUgY2FsbGluZyBwcm9jZXNzIGlzIGNoYW5nZWQuXG5cCisqcGFyYW0qIGlzIGFuIGluc3RhbmNlIG9mIHNjaGVkX3BhcmFtLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfc2NoZWRfc2V0c2NoZWR1bGVyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBwaWRfdCBwaWQ7CisgICAgaW50IHBvbGljeTsKKyAgICBzdHJ1Y3Qgc2NoZWRfcGFyYW0gcGFyYW07CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgX1B5X1BBUlNFX1BJRCAiaU8mOnNjaGVkX3NldHNjaGVkdWxlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwaWQsICZwb2xpY3ksICZjb252ZXJ0X3NjaGVkX3BhcmFtLCAmcGFyYW0pKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8qCisgICAgKiogc2NoZWRfc2V0c2NoZWR1bGVyKCkgcmV0dXJucyAwIGluIExpbnV4LCBidXQgdGhlIHByZXZpb3VzCisgICAgKiogc2NoZWR1bGluZyBwb2xpY3kgdW5kZXIgU29sYXJpcy9JbGx1bW9zLCBhbmQgb3RoZXJzLgorICAgICoqIE9uIGVycm9yLCAtMSBpcyByZXR1cm5lZCBpbiBhbGwgT3BlcmF0aW5nIFN5c3RlbXMuCisgICAgKi8KKyAgICBpZiAoc2NoZWRfc2V0c2NoZWR1bGVyKHBpZCwgcG9saWN5LCAmcGFyYW0pID09IC0xKQorICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworI2VuZGlmCisKKyNpZmRlZiBIQVZFX1NDSEVEX1NFVFBBUkFNCisKK1B5RG9jX1NUUlZBUihwb3NpeF9zY2hlZF9nZXRwYXJhbV9fZG9jX18sCisic2NoZWRfZ2V0cGFyYW0ocGlkKSAtPiBzY2hlZF9wYXJhbVxuXG5cCitSZXR1cm5zIHNjaGVkdWxpbmcgcGFyYW1ldGVycyBmb3IgdGhlIHByb2Nlc3Mgd2l0aCAqcGlkKiBhcyBhbiBpbnN0YW5jZSBvZiB0aGVcblwKK3NjaGVkX3BhcmFtIGNsYXNzLiBBIFBJRCBvZiAwIG1lYW5zIHRoZSBjYWxsaW5nIHByb2Nlc3MuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9zY2hlZF9nZXRwYXJhbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgcGlkX3QgcGlkOworICAgIHN0cnVjdCBzY2hlZF9wYXJhbSBwYXJhbTsKKyAgICBQeU9iamVjdCAqcmVzLCAqcHJpb3JpdHk7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgX1B5X1BBUlNFX1BJRCAiOnNjaGVkX2dldHBhcmFtIiwgJnBpZCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChzY2hlZF9nZXRwYXJhbShwaWQsICZwYXJhbSkpCisgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOworICAgIHJlcyA9IFB5U3RydWN0U2VxdWVuY2VfTmV3KCZTY2hlZFBhcmFtVHlwZSk7CisgICAgaWYgKCFyZXMpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHByaW9yaXR5ID0gUHlMb25nX0Zyb21Mb25nKHBhcmFtLnNjaGVkX3ByaW9yaXR5KTsKKyAgICBpZiAoIXByaW9yaXR5KSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXMpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTShyZXMsIDAsIHByaW9yaXR5KTsKKyAgICByZXR1cm4gcmVzOworfQorCitQeURvY19TVFJWQVIocG9zaXhfc2NoZWRfc2V0cGFyYW1fX2RvY19fLAorInNjaGVkX3NldHBhcmFtKHBpZCwgcGFyYW0pXG5cblwKK1NldCBzY2hlZHVsaW5nIHBhcmFtZXRlcnMgZm9yIGEgcHJvY2VzcyB3aXRoIFBJRCAqcGlkKi5cblwKK0EgUElEIG9mIDAgbWVhbnMgdGhlIGNhbGxpbmcgcHJvY2Vzcy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X3NjaGVkX3NldHBhcmFtKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBwaWRfdCBwaWQ7CisgICAgc3RydWN0IHNjaGVkX3BhcmFtIHBhcmFtOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIF9QeV9QQVJTRV9QSUQgIk8mOnNjaGVkX3NldHBhcmFtIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBpZCwgJmNvbnZlcnRfc2NoZWRfcGFyYW0sICZwYXJhbSkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChzY2hlZF9zZXRwYXJhbShwaWQsICZwYXJhbSkpCisgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOworICAgIFB5X1JFVFVSTl9OT05FOworfQorCisjZW5kaWYKKworI2lmZGVmIEhBVkVfU0NIRURfUlJfR0VUX0lOVEVSVkFMCisKK1B5RG9jX1NUUlZBUihwb3NpeF9zY2hlZF9ycl9nZXRfaW50ZXJ2YWxfX2RvY19fLAorInNjaGVkX3JyX2dldF9pbnRlcnZhbChwaWQpIC0+IGZsb2F0XG5cblwKK1JldHVybiB0aGUgcm91bmQtcm9iaW4gcXVhbnR1bSBmb3IgdGhlIHByb2Nlc3Mgd2l0aCBQSUQgKnBpZCogaW4gc2Vjb25kcy4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X3NjaGVkX3JyX2dldF9pbnRlcnZhbChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgcGlkX3QgcGlkOworICAgIHN0cnVjdCB0aW1lc3BlYyBpbnRlcnZhbDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBfUHlfUEFSU0VfUElEICI6c2NoZWRfcnJfZ2V0X2ludGVydmFsIiwgJnBpZCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChzY2hlZF9ycl9nZXRfaW50ZXJ2YWwocGlkLCAmaW50ZXJ2YWwpKQorICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKKyAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKChkb3VibGUpaW50ZXJ2YWwudHZfc2VjICsgMWUtOSppbnRlcnZhbC50dl9uc2VjKTsKK30KKworI2VuZGlmCisKK1B5RG9jX1NUUlZBUihwb3NpeF9zY2hlZF95aWVsZF9fZG9jX18sCisic2NoZWRfeWllbGQoKVxuXG5cCitWb2x1bnRhcmlseSByZWxpbnF1aXNoIHRoZSBDUFUuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9zY2hlZF95aWVsZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm5vYXJncykKK3sKKyAgICBpZiAoc2NoZWRfeWllbGQoKSkKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKKyNpZmRlZiBIQVZFX1NDSEVEX1NFVEFGRklOSVRZCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFEOworICAgIFB5X3NzaXplX3Qgc2l6ZTsKKyAgICBpbnQgbmNwdXM7CisgICAgY3B1X3NldF90ICpzZXQ7Cit9IFB5X2NwdV9zZXQ7CisKK3N0YXRpYyBQeVR5cGVPYmplY3QgY3B1X3NldF90eXBlOworCitzdGF0aWMgdm9pZAorY3B1X3NldF9kZWFsbG9jKFB5X2NwdV9zZXQgKnNldCkKK3sKKyAgICBhc3NlcnQoc2V0LT5zZXQpOworICAgIENQVV9GUkVFKHNldC0+c2V0KTsKKyAgICBQeV9UWVBFKHNldCktPnRwX2ZyZWUoc2V0KTsKK30KKworc3RhdGljIFB5X2NwdV9zZXQgKgorbWFrZV9uZXdfY3B1X3NldChQeVR5cGVPYmplY3QgKnR5cGUsIFB5X3NzaXplX3Qgc2l6ZSkKK3sKKyAgICBQeV9jcHVfc2V0ICpzZXQ7CisKKyAgICBpZiAoc2l6ZSA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJuZWdhdGl2ZSBzaXplIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBzZXQgPSAoUHlfY3B1X3NldCAqKXR5cGUtPnRwX2FsbG9jKHR5cGUsIDApOworICAgIGlmICghc2V0KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBzZXQtPm5jcHVzID0gc2l6ZTsKKyAgICBzZXQtPnNpemUgPSBDUFVfQUxMT0NfU0laRShzaXplKTsKKyAgICBzZXQtPnNldCA9IENQVV9BTExPQyhzaXplKTsKKyAgICBpZiAoIXNldC0+c2V0KSB7CisgICAgICAgIHR5cGUtPnRwX2ZyZWUoc2V0KTsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIENQVV9aRVJPX1Moc2V0LT5zaXplLCBzZXQtPnNldCk7CisgICAgcmV0dXJuIHNldDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2NwdV9zZXRfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCit7CisgICAgaW50IHNpemU7CisKKyAgICBpZiAoIV9QeUFyZ19Ob0tleXdvcmRzKCJjcHVfc2V0KCkiLCBrd2FyZ3MpIHx8CisgICAgICAgICFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJpOmNwdV9zZXQiLCAmc2l6ZSkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiAoUHlPYmplY3QgKiltYWtlX25ld19jcHVfc2V0KHR5cGUsIHNpemUpOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorY3B1X3NldF9yZXByKFB5X2NwdV9zZXQgKnNldCkKK3sKKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjxjcHVfc2V0IHdpdGggJWxpIGVudHJpZXM+Iiwgc2V0LT5uY3B1cyk7Cit9CisKK3N0YXRpYyBQeV9zc2l6ZV90CitjcHVfc2V0X2xlbihQeV9jcHVfc2V0ICpzZXQpCit7CisgICAgcmV0dXJuIHNldC0+bmNwdXM7Cit9CisKK3N0YXRpYyBpbnQKK19nZXRfY3B1KFB5X2NwdV9zZXQgKnNldCwgY29uc3QgY2hhciAqcmVxdWVzdGVyLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBpbnQgY3B1OworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCByZXF1ZXN0ZXIsICZjcHUpKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKGNwdSA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJjcHUgPCAwIG5vdCB2YWxpZCIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChjcHUgPj0gc2V0LT5uY3B1cykgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImNwdSB0b28gbGFyZ2UgZm9yIHNldCIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHJldHVybiBjcHU7Cit9CisKK1B5RG9jX1NUUlZBUihjcHVfc2V0X3NldF9kb2MsCisiY3B1X3NldC5zZXQoaSlcblxuXAorQWRkIENQVSAqaSogdG8gdGhlIHNldC4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK2NwdV9zZXRfc2V0KFB5X2NwdV9zZXQgKnNldCwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgaW50IGNwdSA9IF9nZXRfY3B1KHNldCwgIml8c2V0IiwgYXJncyk7CisgICAgaWYgKGNwdSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgQ1BVX1NFVF9TKGNwdSwgc2V0LT5zaXplLCBzZXQtPnNldCk7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihjcHVfc2V0X2NvdW50X2RvYywKKyJjcHVfc2V0LmNvdW50KCkgLT4gaW50XG5cblwKK1JldHVybiB0aGUgbnVtYmVyIG9mIENQVXMgYWN0aXZlIGluIHRoZSBzZXQuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitjcHVfc2V0X2NvdW50KFB5X2NwdV9zZXQgKnNldCwgUHlPYmplY3QgKm5vYXJncykKK3sKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKENQVV9DT1VOVF9TKHNldC0+c2l6ZSwgc2V0LT5zZXQpKTsKK30KKworUHlEb2NfU1RSVkFSKGNwdV9zZXRfY2xlYXJfZG9jLAorImNwdV9zZXQuY2xlYXIoaSlcblxuXAorUmVtb3ZlIENQVSAqaSogZnJvbSB0aGUgc2V0LiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorY3B1X3NldF9jbGVhcihQeV9jcHVfc2V0ICpzZXQsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCBjcHUgPSBfZ2V0X2NwdShzZXQsICJpfGNsZWFyIiwgYXJncyk7CisgICAgaWYgKGNwdSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgQ1BVX0NMUl9TKGNwdSwgc2V0LT5zaXplLCBzZXQtPnNldCk7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihjcHVfc2V0X2lzc2V0X2RvYywKKyJjcHVfc2V0Lmlzc2V0KGkpIC0+IGJvb2xcblxuXAorVGVzdCBpZiBDUFUgKmkqIGlzIGluIHRoZSBzZXQuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitjcHVfc2V0X2lzc2V0KFB5X2NwdV9zZXQgKnNldCwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgaW50IGNwdSA9IF9nZXRfY3B1KHNldCwgIml8aXNzZXQiLCBhcmdzKTsKKyAgICBpZiAoY3B1ID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoQ1BVX0lTU0VUX1MoY3B1LCBzZXQtPnNpemUsIHNldC0+c2V0KSkKKyAgICAgICAgUHlfUkVUVVJOX1RSVUU7CisgICAgUHlfUkVUVVJOX0ZBTFNFOworfQorCitQeURvY19TVFJWQVIoY3B1X3NldF96ZXJvX2RvYywKKyJjcHVfc2V0Lnplcm8oKVxuXG5cCitDbGVhciB0aGUgY3B1X3NldC4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK2NwdV9zZXRfemVybyhQeV9jcHVfc2V0ICpzZXQsIFB5T2JqZWN0ICpub2FyZ3MpCit7CisgICAgQ1BVX1pFUk9fUyhzZXQtPnNpemUsIHNldC0+c2V0KTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2NwdV9zZXRfcmljaGNvbXBhcmUoUHlfY3B1X3NldCAqc2V0LCBQeV9jcHVfc2V0ICpvdGhlciwgaW50IG9wKQoreworICAgIGludCBlcTsKKworICAgIGlmICgob3AgIT0gUHlfRVEgJiYgb3AgIT0gUHlfTkUpIHx8IFB5X1RZUEUob3RoZXIpICE9ICZjcHVfc2V0X3R5cGUpCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKKworICAgIGVxID0gc2V0LT5uY3B1cyA9PSBvdGhlci0+bmNwdXMgJiYgQ1BVX0VRVUFMX1Moc2V0LT5zaXplLCBzZXQtPnNldCwgb3RoZXItPnNldCk7CisgICAgaWYgKChvcCA9PSBQeV9FUSkgPyBlcSA6ICFlcSkKKyAgICAgICAgUHlfUkVUVVJOX1RSVUU7CisgICAgZWxzZQorICAgICAgICBQeV9SRVRVUk5fRkFMU0U7Cit9CisKKyNkZWZpbmUgQ1BVX1NFVF9CSU5PUChuYW1lLCBvcCkgXAorICAgIHN0YXRpYyBQeU9iamVjdCAqIFwKKyAgICBkb19jcHVfc2V0XyMjbmFtZShQeV9jcHVfc2V0ICpsZWZ0LCBQeV9jcHVfc2V0ICpyaWdodCwgUHlfY3B1X3NldCAqcmVzKSB7IFwKKyAgICAgICAgaWYgKHJlcykgeyBcCisgICAgICAgICAgICBQeV9JTkNSRUYocmVzKTsgXAorICAgICAgICB9IFwKKyAgICAgICAgZWxzZSB7IFwKKyAgICAgICAgICAgIHJlcyA9IG1ha2VfbmV3X2NwdV9zZXQoJmNwdV9zZXRfdHlwZSwgbGVmdC0+bmNwdXMpOyBcCisgICAgICAgICAgICBpZiAoIXJlcykgXAorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOyBcCisgICAgICAgIH0gXAorICAgICAgICBpZiAoUHlfVFlQRShyaWdodCkgIT0gJmNwdV9zZXRfdHlwZSB8fCBsZWZ0LT5uY3B1cyAhPSByaWdodC0+bmNwdXMpIHsgXAorICAgICAgICAgICAgUHlfREVDUkVGKHJlcyk7IFwKKyAgICAgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsgXAorICAgICAgICB9IFwKKyAgICAgICAgYXNzZXJ0KGxlZnQtPnNpemUgPT0gcmlnaHQtPnNpemUgJiYgcmlnaHQtPnNpemUgPT0gcmVzLT5zaXplKTsgXAorICAgICAgICBvcChyZXMtPnNpemUsIHJlcy0+c2V0LCBsZWZ0LT5zZXQsIHJpZ2h0LT5zZXQpOyBcCisgICAgICAgIHJldHVybiAoUHlPYmplY3QgKilyZXM7IFwKKyAgICB9IFwKKyAgICBzdGF0aWMgUHlPYmplY3QgKiBcCisgICAgY3B1X3NldF8jI25hbWUoUHlfY3B1X3NldCAqbGVmdCwgUHlfY3B1X3NldCAqcmlnaHQpIHsgXAorICAgICAgICByZXR1cm4gZG9fY3B1X3NldF8jI25hbWUobGVmdCwgcmlnaHQsIE5VTEwpOyBcCisgICAgfSBcCisgICAgc3RhdGljIFB5T2JqZWN0ICogXAorICAgIGNwdV9zZXRfaSMjbmFtZShQeV9jcHVfc2V0ICpsZWZ0LCBQeV9jcHVfc2V0ICpyaWdodCkgeyBcCisgICAgICAgIHJldHVybiBkb19jcHVfc2V0XyMjbmFtZShsZWZ0LCByaWdodCwgbGVmdCk7IFwKKyAgICB9IFwKKworQ1BVX1NFVF9CSU5PUChhbmQsIENQVV9BTkRfUykKK0NQVV9TRVRfQklOT1Aob3IsIENQVV9PUl9TKQorQ1BVX1NFVF9CSU5PUCh4b3IsIENQVV9YT1JfUykKKyN1bmRlZiBDUFVfU0VUX0JJTk9QCisKK1B5RG9jX1NUUlZBUihjcHVfc2V0X2RvYywKKyJjcHVfc2V0KHNpemUpXG5cblwKK0NyZWF0ZSBhbiBlbXB0eSBtYXNrIG9mIENQVXMuIik7CisKK3N0YXRpYyBQeU51bWJlck1ldGhvZHMgY3B1X3NldF9hc19udW1iZXIgPSB7CisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuYl9hZGQqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbmJfc3VidHJhY3QqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbmJfbXVsdGlwbHkqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbmJfcmVtYWluZGVyKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5iX2Rpdm1vZCovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuYl9wb3dlciovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuYl9uZWdhdGl2ZSovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuYl9wb3NpdGl2ZSovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuYl9hYnNvbHV0ZSovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuYl9ib29sKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5iX2ludmVydCovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuYl9sc2hpZnQqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbmJfcnNoaWZ0Ki8KKyAgICAoYmluYXJ5ZnVuYyljcHVfc2V0X2FuZCwgICAgICAgICAgICAvKm5iX2FuZCovCisgICAgKGJpbmFyeWZ1bmMpY3B1X3NldF94b3IsICAgICAgICAgICAgLypuYl94b3IqLworICAgIChiaW5hcnlmdW5jKWNwdV9zZXRfb3IsICAgICAgICAgICAgIC8qbmJfb3IqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbmJfaW50Ki8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5iX3Jlc2VydmVkKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5iX2Zsb2F0Ki8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5iX2lucGxhY2VfYWRkKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5iX2lucGxhY2Vfc3VidHJhY3QqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbmJfaW5wbGFjZV9tdWx0aXBseSovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuYl9pbnBsYWNlX3JlbWFpbmRlciovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypuYl9pbnBsYWNlX3Bvd2VyKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5iX2lucGxhY2VfbHNoaWZ0Ki8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKm5iX2lucGxhY2VfcnNoaWZ0Ki8KKyAgICAoYmluYXJ5ZnVuYyljcHVfc2V0X2lhbmQsICAgICAgICAgICAvKm5iX2lucGxhY2VfYW5kKi8KKyAgICAoYmluYXJ5ZnVuYyljcHVfc2V0X2l4b3IsICAgICAgICAgICAvKm5iX2lucGxhY2VfeG9yKi8KKyAgICAoYmluYXJ5ZnVuYyljcHVfc2V0X2lvciwgICAgICAgICAgICAvKm5iX2lucGxhY2Vfb3IqLworfTsKKworc3RhdGljIFB5U2VxdWVuY2VNZXRob2RzIGNwdV9zZXRfYXNfc2VxdWVuY2UgPSB7CisgICAgKGxlbmZ1bmMpY3B1X3NldF9sZW4sICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNxX2xlbmd0aCAqLworfTsKKworc3RhdGljIFB5TWV0aG9kRGVmIGNwdV9zZXRfbWV0aG9kc1tdID0geworICAgIHsiY2xlYXIiLCAoUHlDRnVuY3Rpb24pY3B1X3NldF9jbGVhciwgTUVUSF9WQVJBUkdTLCBjcHVfc2V0X2NsZWFyX2RvY30sCisgICAgeyJjb3VudCIsIChQeUNGdW5jdGlvbiljcHVfc2V0X2NvdW50LCBNRVRIX05PQVJHUywgY3B1X3NldF9jb3VudF9kb2N9LAorICAgIHsiaXNzZXQiLCAoUHlDRnVuY3Rpb24pY3B1X3NldF9pc3NldCwgTUVUSF9WQVJBUkdTLCBjcHVfc2V0X2lzc2V0X2RvY30sCisgICAgeyJzZXQiLCAoUHlDRnVuY3Rpb24pY3B1X3NldF9zZXQsIE1FVEhfVkFSQVJHUywgY3B1X3NldF9zZXRfZG9jfSwKKyAgICB7Inplcm8iLCAoUHlDRnVuY3Rpb24pY3B1X3NldF96ZXJvLCBNRVRIX05PQVJHUywgY3B1X3NldF96ZXJvX2RvY30sCisgICAge05VTEwsIE5VTEx9ICAgLyogc2VudGluZWwgKi8KK307CisKK3N0YXRpYyBQeVR5cGVPYmplY3QgY3B1X3NldF90eXBlID0geworICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVCgmUHlUeXBlX1R5cGUsIDApCisgICAgInBvc2l4LmNwdV9zZXQiLCAgICAgICAgICAgICAgICAgICAgLyogdHBfbmFtZSAqLworICAgIHNpemVvZihQeV9jcHVfc2V0KSwgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZW1zaXplICovCisgICAgLyogbWV0aG9kcyAqLworICAgIChkZXN0cnVjdG9yKWNwdV9zZXRfZGVhbGxvYywgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVzZXJ2ZWQgKi8KKyAgICAocmVwcmZ1bmMpY3B1X3NldF9yZXByLCAgICAgICAgICAgICAvKiB0cF9yZXByICovCisgICAgJmNwdV9zZXRfYXNfbnVtYmVyLCAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgJmNwdV9zZXRfYXNfc2VxdWVuY2UsICAgICAgICAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCisgICAgUHlPYmplY3RfSGFzaE5vdEltcGxlbWVudGVkLCAgICAgICAgLyogdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NhbGwgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KKyAgICBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHJvICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfYnVmZmVyICovCisgICAgUHlfVFBGTEFHU19ERUZBVUxULCAgICAgICAgICAgICAgICAgLyogdHBfZmxhZ3MgKi8KKyAgICBjcHVfc2V0X2RvYywgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgKHJpY2hjbXBmdW5jKWNwdV9zZXRfcmljaGNvbXBhcmUsICAgLyogdHBfcmljaGNvbXBhcmUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLworICAgIGNwdV9zZXRfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9zZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLworICAgIFB5VHlwZV9HZW5lcmljQWxsb2MsICAgICAgICAgICAgICAgIC8qIHRwX2FsbG9jICovCisgICAgY3B1X3NldF9uZXcsICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCisgICAgUHlPYmplY3RfRGVsLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZnJlZSAqLworfTsKKworUHlEb2NfU1RSVkFSKHBvc2l4X3NjaGVkX3NldGFmZmluaXR5X19kb2NfXywKKyJzY2hlZF9zZXRhZmZpbml0eShwaWQsIGNwdV9zZXQpXG5cblwKK1NldCB0aGUgYWZmaW5pdHkgb2YgdGhlIHByb2Nlc3Mgd2l0aCBQSUQgKnBpZCogdG8gKmNwdV9zZXQqLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfc2NoZWRfc2V0YWZmaW5pdHkoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIHBpZF90IHBpZDsKKyAgICBQeV9jcHVfc2V0ICpjcHVfc2V0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIF9QeV9QQVJTRV9QSUQgIk8hOnNjaGVkX3NldGFmZmluaXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBpZCwgJmNwdV9zZXRfdHlwZSwgJmNwdV9zZXQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoc2NoZWRfc2V0YWZmaW5pdHkocGlkLCBjcHVfc2V0LT5zaXplLCBjcHVfc2V0LT5zZXQpKQorICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworUHlEb2NfU1RSVkFSKHBvc2l4X3NjaGVkX2dldGFmZmluaXR5X19kb2NfXywKKyJzY2hlZF9nZXRhZmZpbml0eShwaWQsIG5jcHVzKSAtPiBjcHVfc2V0XG5cblwKK1JldHVybiB0aGUgYWZmaW5pdHkgb2YgdGhlIHByb2Nlc3Mgd2l0aCBQSUQgKnBpZCouXG5cCitUaGUgcmV0dXJuZWQgY3B1X3NldCB3aWxsIGJlIG9mIHNpemUgKm5jcHVzKi4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X3NjaGVkX2dldGFmZmluaXR5KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBwaWRfdCBwaWQ7CisgICAgaW50IG5jcHVzOworICAgIFB5X2NwdV9zZXQgKnJlczsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBfUHlfUEFSU0VfUElEICJpOnNjaGVkX2dldGFmZmluaXR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBpZCwgJm5jcHVzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmVzID0gbWFrZV9uZXdfY3B1X3NldCgmY3B1X3NldF90eXBlLCBuY3B1cyk7CisgICAgaWYgKCFyZXMpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChzY2hlZF9nZXRhZmZpbml0eShwaWQsIHJlcy0+c2l6ZSwgcmVzLT5zZXQpKSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXMpOworICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKKyAgICB9CisgICAgcmV0dXJuIChQeU9iamVjdCAqKXJlczsKK30KKworI2VuZGlmIC8qIEhBVkVfU0NIRURfU0VUQUZGSU5JVFkgKi8KKworI2VuZGlmIC8qIEhBVkVfU0NIRURfSCAqLworCiAvKiBBSVggdXNlcyAvZGV2L3B0YyBidXQgaXMgb3RoZXJ3aXNlIHRoZSBzYW1lIGFzIC9kZXYvcHRteCAqLwogLyogSVJJWCBoYXMgYm90aCAvZGV2L3B0YyBhbmQgL2Rldi9wdG14LCB1c2UgcHRteCAqLwogI2lmIGRlZmluZWQoSEFWRV9ERVZfUFRDKSAmJiAhZGVmaW5lZChIQVZFX0RFVl9QVE1YKQpAQCAtNDI3OSw2ICs2MTc4LDcgQEAKIH0KICNlbmRpZgogCisKICNpZmRlZiBIQVZFX0dFVEVHSUQKIFB5RG9jX1NUUlZBUihwb3NpeF9nZXRlZ2lkX19kb2NfXywKICJnZXRlZ2lkKCkgLT4gZWdpZFxuXG5cCkBAIC00MzI4LDYgKzYyMjgsNzAgQEAKICAgICByZXR1cm4gUHlMb25nX0Zyb21QaWQoZ2V0cGlkKCkpOwogfQogCisjaWZkZWYgSEFWRV9HRVRHUk9VUExJU1QKK1B5RG9jX1NUUlZBUihwb3NpeF9nZXRncm91cGxpc3RfX2RvY19fLAorImdldGdyb3VwbGlzdCh1c2VyLCBncm91cCkgLT4gbGlzdCBvZiBncm91cHMgdG8gd2hpY2ggYSB1c2VyIGJlbG9uZ3NcblxuXAorUmV0dXJucyBhIGxpc3Qgb2YgZ3JvdXBzIHRvIHdoaWNoIGEgdXNlciBiZWxvbmdzLlxuXG5cCisgICAgdXNlcjogdXNlcm5hbWUgdG8gbG9va3VwXG5cCisgICAgZ3JvdXA6IGJhc2UgZ3JvdXAgaWQgb2YgdGhlIHVzZXIiKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X2dldGdyb3VwbGlzdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisjaWZkZWYgTkdST1VQU19NQVgKKyNkZWZpbmUgTUFYX0dST1VQUyBOR1JPVVBTX01BWAorI2Vsc2UKKyAgICAvKiBkZWZpbmVkIHRvIGJlIDE2IG9uIFNvbGFyaXM3LCBzbyB0aGlzIHNob3VsZCBiZSBhIHNtYWxsIG51bWJlciAqLworI2RlZmluZSBNQVhfR1JPVVBTIDY0CisjZW5kaWYKKworICAgIGNvbnN0IGNoYXIgKnVzZXI7CisgICAgaW50IGksIG5ncm91cHM7CisgICAgUHlPYmplY3QgKmxpc3Q7CisjaWZkZWYgX19BUFBMRV9fCisgICAgaW50ICpncm91cHMsIGJhc2VnaWQ7CisjZWxzZQorICAgIGdpZF90ICpncm91cHMsIGJhc2VnaWQ7CisjZW5kaWYKKyAgICBuZ3JvdXBzID0gTUFYX0dST1VQUzsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAic2kiLCAmdXNlciwgJmJhc2VnaWQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworI2lmZGVmIF9fQVBQTEVfXworICAgIGdyb3VwcyA9IFB5TWVtX01hbGxvYyhuZ3JvdXBzICogc2l6ZW9mKGludCkpOworI2Vsc2UKKyAgICBncm91cHMgPSBQeU1lbV9NYWxsb2Mobmdyb3VwcyAqIHNpemVvZihnaWRfdCkpOworI2VuZGlmCisgICAgaWYgKGdyb3VwcyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKKworICAgIGlmIChnZXRncm91cGxpc3QodXNlciwgYmFzZWdpZCwgZ3JvdXBzLCAmbmdyb3VwcykgPT0gLTEpIHsKKyAgICAgICAgUHlNZW1fRGVsKGdyb3Vwcyk7CisgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOworICAgIH0KKworICAgIGxpc3QgPSBQeUxpc3RfTmV3KG5ncm91cHMpOworICAgIGlmIChsaXN0ID09IE5VTEwpIHsKKyAgICAgICAgUHlNZW1fRGVsKGdyb3Vwcyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBuZ3JvdXBzOyBpKyspIHsKKyAgICAgICAgUHlPYmplY3QgKm8gPSBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZygodW5zaWduZWQgbG9uZylncm91cHNbaV0pOworICAgICAgICBpZiAobyA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYobGlzdCk7CisgICAgICAgICAgICBQeU1lbV9EZWwoZ3JvdXBzKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIFB5TGlzdF9TRVRfSVRFTShsaXN0LCBpLCBvKTsKKyAgICB9CisKKyAgICBQeU1lbV9EZWwoZ3JvdXBzKTsKKworICAgIHJldHVybiBsaXN0OworfQorI2VuZGlmCiAKICNpZmRlZiBIQVZFX0dFVEdST1VQUwogUHlEb2NfU1RSVkFSKHBvc2l4X2dldGdyb3Vwc19fZG9jX18sCkBAIC00NTY1LDcgKzY1MjksNyBAQAogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwogI2lmZGVmIE1TX1dJTkRPV1MKICAgICB3Y2hhcl90IHVzZXJfbmFtZVtVTkxFTiArIDFdOwotICAgIERXT1JEIG51bV9jaGFycyA9IHNpemVvZih1c2VyX25hbWUpL3NpemVvZih1c2VyX25hbWVbMF0pOworICAgIERXT1JEIG51bV9jaGFycyA9IFB5X0FSUkFZX0xFTkdUSCh1c2VyX25hbWUpOwogCiAgICAgaWYgKEdldFVzZXJOYW1lVyh1c2VyX25hbWUsICZudW1fY2hhcnMpKSB7CiAgICAgICAgIC8qIG51bV9jaGFycyBpcyB0aGUgbnVtYmVyIG9mIHVuaWNvZGUgY2hhcnMgcGx1cyBudWxsIHRlcm1pbmF0b3IgKi8KQEAgLTQ5NjUsNiArNjkyOSw3IEBACiB7CiAgICAgUHlPYmplY3QgKnJlc3VsdDsKICAgICBzdGF0aWMgUHlPYmplY3QgKnN0cnVjdF9ydXNhZ2U7CisgICAgX1B5X0lERU5USUZJRVIoc3RydWN0X3J1c2FnZSk7CiAKICAgICBpZiAocGlkID09IC0xKQogICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKQEAgLTQ5NzMsNyArNjkzOCw3IEBACiAgICAgICAgIFB5T2JqZWN0ICptID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlTm9CbG9jaygicmVzb3VyY2UiKTsKICAgICAgICAgaWYgKG0gPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBzdHJ1Y3RfcnVzYWdlID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhtLCAic3RydWN0X3J1c2FnZSIpOworICAgICAgICBzdHJ1Y3RfcnVzYWdlID0gX1B5T2JqZWN0X0dldEF0dHJJZChtLCAmUHlJZF9zdHJ1Y3RfcnVzYWdlKTsKICAgICAgICAgUHlfREVDUkVGKG0pOwogICAgICAgICBpZiAoc3RydWN0X3J1c2FnZSA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC01MDY5LDYgKzcwMzQsNTUgQEAKIH0KICNlbmRpZiAvKiBIQVZFX1dBSVQ0ICovCiAKKyNpZiBkZWZpbmVkKEhBVkVfV0FJVElEKSAmJiAhZGVmaW5lZChfX0FQUExFX18pCitQeURvY19TVFJWQVIocG9zaXhfd2FpdGlkX19kb2NfXywKKyJ3YWl0aWQoaWR0eXBlLCBpZCwgb3B0aW9ucykgLT4gd2FpdGlkX3Jlc3VsdFxuXG5cCitXYWl0IGZvciB0aGUgY29tcGxldGlvbiBvZiBvbmUgb3IgbW9yZSBjaGlsZCBwcm9jZXNzZXMuXG5cblwKK2lkdHlwZSBjYW4gYmUgUF9QSUQsIFBfUEdJRCBvciBQX0FMTC5cblwKK2lkIHNwZWNpZmllcyB0aGUgcGlkIHRvIHdhaXQgb24uXG5cCitvcHRpb25zIGlzIGNvbnN0cnVjdGVkIGZyb20gdGhlIE9SaW5nIG9mIG9uZSBvciBtb3JlIG9mIFdFWElURUQsIFdTVE9QUEVEXG5cCitvciBXQ09OVElOVUVEIGFuZCBhZGRpdGlvbmFsbHkgbWF5IGJlIE9SZWQgd2l0aCBXTk9IQU5HIG9yIFdOT1dBSVQuXG5cCitSZXR1cm5zIGVpdGhlciB3YWl0aWRfcmVzdWx0IG9yIE5vbmUgaWYgV05PSEFORyBpcyBzcGVjaWZpZWQgYW5kIHRoZXJlIGFyZVxuXAorbm8gY2hpbGRyZW4gaW4gYSB3YWl0YWJsZSBzdGF0ZS4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X3dhaXRpZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICBpZHR5cGVfdCBpZHR5cGU7CisgICAgaWRfdCBpZDsKKyAgICBpbnQgb3B0aW9ucywgcmVzOworICAgIHNpZ2luZm9fdCBzaTsKKyAgICBzaS5zaV9waWQgPSAwOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaSIgX1B5X1BBUlNFX1BJRCAiaTp3YWl0aWQiLCAmaWR0eXBlLCAmaWQsICZvcHRpb25zKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJlcyA9IHdhaXRpZChpZHR5cGUsIGlkLCAmc2ksIG9wdGlvbnMpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgaWYgKHJlcyA9PSAtMSkKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisKKyAgICBpZiAoc2kuc2lfcGlkID09IDApCisgICAgICAgIFB5X1JFVFVSTl9OT05FOworCisgICAgcmVzdWx0ID0gUHlTdHJ1Y3RTZXF1ZW5jZV9OZXcoJldhaXRpZFJlc3VsdFR5cGUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0ocmVzdWx0LCAwLCBQeUxvbmdfRnJvbVBpZChzaS5zaV9waWQpKTsKKyAgICBQeVN0cnVjdFNlcXVlbmNlX1NFVF9JVEVNKHJlc3VsdCwgMSwgUHlMb25nX0Zyb21QaWQoc2kuc2lfdWlkKSk7CisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTShyZXN1bHQsIDIsIFB5TG9uZ19Gcm9tTG9uZygobG9uZykoc2kuc2lfc2lnbm8pKSk7CisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTShyZXN1bHQsIDMsIFB5TG9uZ19Gcm9tTG9uZygobG9uZykoc2kuc2lfc3RhdHVzKSkpOworICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0ocmVzdWx0LCA0LCBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpKHNpLnNpX2NvZGUpKSk7CisgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisjZW5kaWYKKwogI2lmZGVmIEhBVkVfV0FJVFBJRAogUHlEb2NfU1RSVkFSKHBvc2l4X3dhaXRwaWRfX2RvY19fLAogIndhaXRwaWQocGlkLCBvcHRpb25zKSAtPiAocGlkLCBzdGF0dXMpXG5cblwKQEAgLTUxNDIsMTA2ICs3MTU2LDIyNiBAQAogI2VuZGlmCiAKIAotUHlEb2NfU1RSVkFSKHBvc2l4X2xzdGF0X19kb2NfXywKLSJsc3RhdChwYXRoKSAtPiBzdGF0IHJlc3VsdFxuXG5cCi1MaWtlIHN0YXQocGF0aCksIGJ1dCBkbyBub3QgZm9sbG93IHN5bWJvbGljIGxpbmtzLiIpOwotCi1zdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfbHN0YXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotI2lmZGVmIEhBVkVfTFNUQVQKLSAgICByZXR1cm4gcG9zaXhfZG9fc3RhdChzZWxmLCBhcmdzLCAiTyY6bHN0YXQiLCBsc3RhdCwgTlVMTCwgTlVMTCk7Ci0jZWxzZSAvKiAhSEFWRV9MU1RBVCAqLwotI2lmZGVmIE1TX1dJTkRPV1MKLSAgICByZXR1cm4gcG9zaXhfZG9fc3RhdChzZWxmLCBhcmdzLCAiTyY6bHN0YXQiLCB3aW4zMl9sc3RhdCwgIlU6bHN0YXQiLAotICAgICAgICAgICAgICAgICAgICAgICAgIHdpbjMyX2xzdGF0X3cpOwotI2Vsc2UKLSAgICByZXR1cm4gcG9zaXhfZG9fc3RhdChzZWxmLCBhcmdzLCAiTyY6bHN0YXQiLCBTVEFULCBOVUxMLCBOVUxMKTsKKyNpZiBkZWZpbmVkKEhBVkVfUkVBRExJTkspIHx8IGRlZmluZWQoTVNfV0lORE9XUykKK1B5RG9jX1NUUlZBUihyZWFkbGlua19fZG9jX18sCisicmVhZGxpbmsocGF0aCwgKiwgZGlyX2ZkPU5vbmUpIC0+IHBhdGhcblxuXAorUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcGF0aCB0byB3aGljaCB0aGUgc3ltYm9saWMgbGluayBwb2ludHMuXG5cCitcblwKK0lmIGRpcl9mZCBpcyBub3QgTm9uZSwgaXQgc2hvdWxkIGJlIGEgZmlsZSBkZXNjcmlwdG9yIG9wZW4gdG8gYSBkaXJlY3RvcnksXG5cCisgIGFuZCBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZTsgcGF0aCB3aWxsIHRoZW4gYmUgcmVsYXRpdmUgdG8gdGhhdCBkaXJlY3RvcnkuXG5cCitkaXJfZmQgbWF5IG5vdCBiZSBpbXBsZW1lbnRlZCBvbiB5b3VyIHBsYXRmb3JtLlxuXAorICBJZiBpdCBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgd2lsbCByYWlzZSBhIE5vdEltcGxlbWVudGVkRXJyb3IuIik7CiAjZW5kaWYKLSNlbmRpZiAvKiAhSEFWRV9MU1RBVCAqLwotfQotCiAKICNpZmRlZiBIQVZFX1JFQURMSU5LCi1QeURvY19TVFJWQVIocG9zaXhfcmVhZGxpbmtfX2RvY19fLAotInJlYWRsaW5rKHBhdGgpIC0+IHBhdGhcblxuXAotUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcGF0aCB0byB3aGljaCB0aGUgc3ltYm9saWMgbGluayBwb2ludHMuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF9yZWFkbGluayhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitwb3NpeF9yZWFkbGluayhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCiB7Ci0gICAgUHlPYmplY3QqIHY7Ci0gICAgY2hhciBidWZbTUFYUEFUSExFTl07Ci0gICAgUHlPYmplY3QgKm9wYXRoOwotICAgIGNoYXIgKnBhdGg7Ci0gICAgaW50IG47Ci0gICAgaW50IGFyZ19pc191bmljb2RlID0gMDsKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBpbnQgZGlyX2ZkID0gREVGQVVMVF9ESVJfRkQ7CisgICAgY2hhciBidWZmZXJbTUFYUEFUSExFTl07CisgICAgc3NpemVfdCBsZW5ndGg7CisgICAgUHlPYmplY3QgKnJldHVybl92YWx1ZSA9IE5VTEw7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAiZGlyX2ZkIiwgTlVMTH07CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mOnJlYWRsaW5rIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3BhdGgpKQorICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJnwkTyY6cmVhZGxpbmsiLCBrZXl3b3JkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLAorI2lmZGVmIEhBVkVfUkVBRExJTktBVAorICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJfZmRfY29udmVydGVyLCAmZGlyX2ZkCisjZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJfZmRfdW5hdmFpbGFibGUsICZkaXJfZmQKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICAgICAgICApKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBwYXRoID0gUHlCeXRlc19Bc1N0cmluZyhvcGF0aCk7Ci0gICAgdiA9IFB5U2VxdWVuY2VfR2V0SXRlbShhcmdzLCAwKTsKLSAgICBpZiAodiA9PSBOVUxMKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihvcGF0aCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sodikpIHsKLSAgICAgICAgYXJnX2lzX3VuaWNvZGUgPSAxOwotICAgIH0KLSAgICBQeV9ERUNSRUYodik7CiAKICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgbiA9IHJlYWRsaW5rKHBhdGgsIGJ1ZiwgKGludCkgc2l6ZW9mIGJ1Zik7Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICBpZiAobiA8IDApCi0gICAgICAgIHJldHVybiBwb3NpeF9lcnJvcl93aXRoX2FsbG9jYXRlZF9maWxlbmFtZShvcGF0aCk7Ci0KLSAgICBQeV9ERUNSRUYob3BhdGgpOwotICAgIGlmIChhcmdfaXNfdW5pY29kZSkKLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHRBbmRTaXplKGJ1Ziwgbik7CisjaWZkZWYgSEFWRV9SRUFETElOS0FUCisgICAgaWYgKGRpcl9mZCAhPSBERUZBVUxUX0RJUl9GRCkKKyAgICAgICAgbGVuZ3RoID0gcmVhZGxpbmthdChkaXJfZmQsIHBhdGgubmFycm93LCBidWZmZXIsIHNpemVvZihidWZmZXIpKTsKICAgICBlbHNlCi0gICAgICAgIHJldHVybiBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKGJ1Ziwgbik7CisjZW5kaWYKKyAgICAgICAgbGVuZ3RoID0gcmVhZGxpbmsocGF0aC5uYXJyb3csIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAobGVuZ3RoIDwgMCkgeworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX3Bvc2l4X2Vycm9yKCJyZWFkbGluayIsICZwYXRoKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIGlmIChQeVVuaWNvZGVfQ2hlY2socGF0aC5vYmplY3QpKQorICAgICAgICByZXR1cm5fdmFsdWUgPSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0QW5kU2l6ZShidWZmZXIsIGxlbmd0aCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm5fdmFsdWUgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKGJ1ZmZlciwgbGVuZ3RoKTsKK2V4aXQ6CisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICByZXR1cm4gcmV0dXJuX3ZhbHVlOwogfQorCisKICNlbmRpZiAvKiBIQVZFX1JFQURMSU5LICovCiAKIAotI2lmIGRlZmluZWQoSEFWRV9TWU1MSU5LKSAmJiAhZGVmaW5lZChNU19XSU5ET1dTKQorI2lmZGVmIEhBVkVfU1lNTElOSwogUHlEb2NfU1RSVkFSKHBvc2l4X3N5bWxpbmtfX2RvY19fLAotInN5bWxpbmsoc3JjLCBkc3QpXG5cblwKLUNyZWF0ZSBhIHN5bWJvbGljIGxpbmsgcG9pbnRpbmcgdG8gc3JjIG5hbWVkIGRzdC4iKTsKKyJzeW1saW5rKHNyYywgZHN0LCB0YXJnZXRfaXNfZGlyZWN0b3J5PUZhbHNlLCAqLCBkaXJfZmQ9Tm9uZSlcblxuXAorQ3JlYXRlIGEgc3ltYm9saWMgbGluayBwb2ludGluZyB0byBzcmMgbmFtZWQgZHN0LlxuXG5cCit0YXJnZXRfaXNfZGlyZWN0b3J5IGlzIHJlcXVpcmVkIG9uIFdpbmRvd3MgaWYgdGhlIHRhcmdldCBpcyB0byBiZVxuXAorICBpbnRlcnByZXRlZCBhcyBhIGRpcmVjdG9yeS4gIChPbiBXaW5kb3dzLCBzeW1saW5rIHJlcXVpcmVzXG5cCisgIFdpbmRvd3MgNi4wIG9yIGdyZWF0ZXIsIGFuZCByYWlzZXMgYSBOb3RJbXBsZW1lbnRlZEVycm9yIG90aGVyd2lzZS4pXG5cCisgIHRhcmdldF9pc19kaXJlY3RvcnkgaXMgaWdub3JlZCBvbiBub24tV2luZG93cyBwbGF0Zm9ybXMuXG5cCitcblwKK0lmIGRpcl9mZCBpcyBub3QgTm9uZSwgaXQgc2hvdWxkIGJlIGEgZmlsZSBkZXNjcmlwdG9yIG9wZW4gdG8gYSBkaXJlY3RvcnksXG5cCisgIGFuZCBwYXRoIHNob3VsZCBiZSByZWxhdGl2ZTsgcGF0aCB3aWxsIHRoZW4gYmUgcmVsYXRpdmUgdG8gdGhhdCBkaXJlY3RvcnkuXG5cCitkaXJfZmQgbWF5IG5vdCBiZSBpbXBsZW1lbnRlZCBvbiB5b3VyIHBsYXRmb3JtLlxuXAorICBJZiBpdCBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgd2lsbCByYWlzZSBhIE5vdEltcGxlbWVudGVkRXJyb3IuIik7CisKKyNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpCisKKy8qIEdyYWIgQ3JlYXRlU3ltYm9saWNMaW5rVyBkeW5hbWljYWxseSBmcm9tIGtlcm5lbDMyICovCitzdGF0aWMgRFdPUkQgKENBTExCQUNLICpQeV9DcmVhdGVTeW1ib2xpY0xpbmtXKShMUFdTVFIsIExQV1NUUiwgRFdPUkQpID0gTlVMTDsKK3N0YXRpYyBEV09SRCAoQ0FMTEJBQ0sgKlB5X0NyZWF0ZVN5bWJvbGljTGlua0EpKExQU1RSLCBMUFNUUiwgRFdPUkQpID0gTlVMTDsKK3N0YXRpYyBpbnQKK2NoZWNrX0NyZWF0ZVN5bWJvbGljTGluaygpCit7CisgICAgSElOU1RBTkNFIGhLZXJuZWwzMjsKKyAgICAvKiBvbmx5IHJlY2hlY2sgKi8KKyAgICBpZiAoUHlfQ3JlYXRlU3ltYm9saWNMaW5rVyAmJiBQeV9DcmVhdGVTeW1ib2xpY0xpbmtBKQorICAgICAgICByZXR1cm4gMTsKKyAgICBoS2VybmVsMzIgPSBHZXRNb2R1bGVIYW5kbGVXKEwiS0VSTkVMMzIiKTsKKyAgICAqKEZBUlBST0MqKSZQeV9DcmVhdGVTeW1ib2xpY0xpbmtXID0gR2V0UHJvY0FkZHJlc3MoaEtlcm5lbDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ3JlYXRlU3ltYm9saWNMaW5rVyIpOworICAgICooRkFSUFJPQyopJlB5X0NyZWF0ZVN5bWJvbGljTGlua0EgPSBHZXRQcm9jQWRkcmVzcyhoS2VybmVsMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDcmVhdGVTeW1ib2xpY0xpbmtBIik7CisgICAgcmV0dXJuIChQeV9DcmVhdGVTeW1ib2xpY0xpbmtXICYmIFB5X0NyZWF0ZVN5bWJvbGljTGlua0EpOworfQorCisjZW5kaWYKIAogc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X3N5bWxpbmsoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorcG9zaXhfc3ltbGluayhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCiB7Ci0gICAgcmV0dXJuIHBvc2l4XzJzdHIoYXJncywgIk8mTyY6c3ltbGluayIsIHN5bWxpbmspOworICAgIHBhdGhfdCBzcmM7CisgICAgcGF0aF90IGRzdDsKKyAgICBpbnQgZGlyX2ZkID0gREVGQVVMVF9ESVJfRkQ7CisgICAgaW50IHRhcmdldF9pc19kaXJlY3RvcnkgPSAwOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJzcmMiLCAiZHN0IiwgInRhcmdldF9pc19kaXJlY3RvcnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXJfZmQiLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlOworI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBEV09SRCByZXN1bHQ7CisjZWxzZQorICAgIGludCByZXN1bHQ7CisjZW5kaWYKKworICAgIG1lbXNldCgmc3JjLCAwLCBzaXplb2Yoc3JjKSk7CisgICAgc3JjLmFyZ3VtZW50X25hbWUgPSAic3JjIjsKKyAgICBtZW1zZXQoJmRzdCwgMCwgc2l6ZW9mKGRzdCkpOworICAgIGRzdC5hcmd1bWVudF9uYW1lID0gImRzdCI7CisKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgaWYgKCFjaGVja19DcmVhdGVTeW1ib2xpY0xpbmsoKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvciwKKyAgICAgICAgICAgICJDcmVhdGVTeW1ib2xpY0xpbmsgZnVuY3Rpb25zIG5vdCBmb3VuZCIpOworCQlyZXR1cm4gTlVMTDsKKwl9CisgICAgaWYgKCF3aW4zMl9jYW5fc3ltbGluaykgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgInN5bWJvbGljIGxpbmsgcHJpdmlsZWdlIG5vdCBoZWxkIik7CisJCXJldHVybiBOVUxMOworCX0KKyNlbmRpZgorCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZPJnxpJE8mOnN5bWxpbmsiLAorICAgICAgICAgICAga2V5d29yZHMsCisgICAgICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnNyYywKKyAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmZHN0LAorICAgICAgICAgICAgJnRhcmdldF9pc19kaXJlY3RvcnksCisjaWZkZWYgSEFWRV9TWU1MSU5LQVQKKyAgICAgICAgICAgIGRpcl9mZF9jb252ZXJ0ZXIsICZkaXJfZmQKKyNlbHNlCisgICAgICAgICAgICBkaXJfZmRfdW5hdmFpbGFibGUsICZkaXJfZmQKKyNlbmRpZgorICAgICAgICAgICAgKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoKHNyYy5uYXJyb3cgJiYgZHN0LndpZGUpIHx8IChzcmMud2lkZSAmJiBkc3QubmFycm93KSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJzeW1saW5rOiBzcmMgYW5kIGRzdCBtdXN0IGJlIHRoZSBzYW1lIHR5cGUiKTsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gTlVMTDsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgaWYgKGRzdC53aWRlKQorICAgICAgICByZXN1bHQgPSBQeV9DcmVhdGVTeW1ib2xpY0xpbmtXKGRzdC53aWRlLCBzcmMud2lkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfaXNfZGlyZWN0b3J5KTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IFB5X0NyZWF0ZVN5bWJvbGljTGlua0EoZHN0Lm5hcnJvdywgc3JjLm5hcnJvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfaXNfZGlyZWN0b3J5KTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gd2luMzJfZXJyb3Jfb2JqZWN0KCJzeW1saW5rIiwgc3JjLm9iamVjdCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyNlbHNlCisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisjaWYgSEFWRV9TWU1MSU5LQVQKKyAgICBpZiAoZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKQorICAgICAgICByZXN1bHQgPSBzeW1saW5rYXQoc3JjLm5hcnJvdywgZGlyX2ZkLCBkc3QubmFycm93KTsKKyAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgcmVzdWx0ID0gc3ltbGluayhzcmMubmFycm93LCBkc3QubmFycm93KTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX2Vycm9yKCJzeW1saW5rIiwgJmRzdCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybl92YWx1ZSA9IFB5X05vbmU7CisgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgIGdvdG8gZXhpdDsgLyogc2lsZW5jZSAidW51c2VkIGxhYmVsIiB3YXJuaW5nICovCitleGl0OgorICAgIHBhdGhfY2xlYW51cCgmc3JjKTsKKyAgICBwYXRoX2NsZWFudXAoJmRzdCk7CisgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKIH0KKwogI2VuZGlmIC8qIEhBVkVfU1lNTElOSyAqLwogCisKICNpZiAhZGVmaW5lZChIQVZFX1JFQURMSU5LKSAmJiBkZWZpbmVkKE1TX1dJTkRPV1MpCiAKLVB5RG9jX1NUUlZBUih3aW5fcmVhZGxpbmtfX2RvY19fLAotInJlYWRsaW5rKHBhdGgpIC0+IHBhdGhcblxuXAotUmV0dXJuIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcGF0aCB0byB3aGljaCB0aGUgc3ltYm9saWMgbGluayBwb2ludHMuIik7Ci0KLS8qIFdpbmRvd3MgcmVhZGxpbmsgaW1wbGVtZW50YXRpb24gKi8KIHN0YXRpYyBQeU9iamVjdCAqCi13aW5fcmVhZGxpbmsoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQord2luX3JlYWRsaW5rKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKICAgICB3Y2hhcl90ICpwYXRoOwogICAgIERXT1JEIG5fYnl0ZXNfcmV0dXJuZWQ7CiAgICAgRFdPUkQgaW9fcmVzdWx0OwotICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgUHlPYmplY3QgKnBvLCAqcmVzdWx0OworCWludCBkaXJfZmQ7CiAgICAgSEFORExFIHJlcGFyc2VfcG9pbnRfaGFuZGxlOwogCiAgICAgY2hhciB0YXJnZXRfYnVmZmVyW01BWElNVU1fUkVQQVJTRV9EQVRBX0JVRkZFUl9TSVpFXTsKICAgICBSRVBBUlNFX0RBVEFfQlVGRkVSICpyZGIgPSAoUkVQQVJTRV9EQVRBX0JVRkZFUiAqKXRhcmdldF9idWZmZXI7CiAgICAgd2NoYXJfdCAqcHJpbnRfbmFtZTsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLAotICAgICAgICAgICAgICAgICAgInU6cmVhZGxpbmsiLAotICAgICAgICAgICAgICAgICAgJnBhdGgpKQorICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgImRpcl9mZCIsIE5VTEx9OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiVXwkTyY6cmVhZGxpbmsiLCBrZXl3b3JkcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnBvLAorICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJfZmRfdW5hdmFpbGFibGUsICZkaXJfZmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBwYXRoID0gUHlVbmljb2RlX0FzVW5pY29kZShwbyk7CisgICAgaWYgKHBhdGggPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBGaXJzdCBnZXQgYSBoYW5kbGUgdG8gdGhlIHJlcGFyc2UgcG9pbnQgKi8KQEAgLTUyNTcsOSArNzM5MSw3IEBACiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKIAogICAgIGlmIChyZXBhcnNlX3BvaW50X2hhbmRsZT09SU5WQUxJRF9IQU5ETEVfVkFMVUUpCi0gICAgewotICAgICAgICByZXR1cm4gd2luMzJfZXJyb3JfdW5pY29kZSgicmVhZGxpbmsiLCBwYXRoKTsKLSAgICB9CisgICAgICAgIHJldHVybiB3aW4zMl9lcnJvcl9vYmplY3QoInJlYWRsaW5rIiwgcG8pOwogCiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgIC8qIE5ldyBjYWxsIERldmljZUlvQ29udHJvbCB0byByZWFkIHRoZSByZXBhcnNlIHBvaW50ICovCkBAIC01Mjc1LDkgKzc0MDcsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAoaW9fcmVzdWx0PT0wKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yX3VuaWNvZGUoInJlYWRsaW5rIiwgcGF0aCk7Ci0gICAgfQorICAgICAgICByZXR1cm4gd2luMzJfZXJyb3Jfb2JqZWN0KCJyZWFkbGluayIsIHBvKTsKIAogICAgIGlmIChyZGItPlJlcGFyc2VUYWcgIT0gSU9fUkVQQVJTRV9UQUdfU1lNTElOSykKICAgICB7CkBAIC01Mjk1LDc4ICs3NDI1LDc1IEBACiAKICNlbmRpZiAvKiAhZGVmaW5lZChIQVZFX1JFQURMSU5LKSAmJiBkZWZpbmVkKE1TX1dJTkRPV1MpICovCiAKLSNpZiBkZWZpbmVkKEhBVkVfU1lNTElOSykgJiYgZGVmaW5lZChNU19XSU5ET1dTKQogCi0vKiBHcmFiIENyZWF0ZVN5bWJvbGljTGlua1cgZHluYW1pY2FsbHkgZnJvbSBrZXJuZWwzMiAqLwotc3RhdGljIGludCBoYXNfQ3JlYXRlU3ltYm9saWNMaW5rVyA9IDA7Ci1zdGF0aWMgRFdPUkQgKENBTExCQUNLICpQeV9DcmVhdGVTeW1ib2xpY0xpbmtXKShMUFdTVFIsIExQV1NUUiwgRFdPUkQpOwotc3RhdGljIGludAotY2hlY2tfQ3JlYXRlU3ltYm9saWNMaW5rVygpCi17Ci0gICAgSElOU1RBTkNFIGhLZXJuZWwzMjsKLSAgICAvKiBvbmx5IHJlY2hlY2sgKi8KLSAgICBpZiAoaGFzX0NyZWF0ZVN5bWJvbGljTGlua1cpCi0gICAgICAgIHJldHVybiBoYXNfQ3JlYXRlU3ltYm9saWNMaW5rVzsKLSAgICBoS2VybmVsMzIgPSBHZXRNb2R1bGVIYW5kbGUoIktFUk5FTDMyIik7Ci0gICAgKihGQVJQUk9DKikmUHlfQ3JlYXRlU3ltYm9saWNMaW5rVyA9IEdldFByb2NBZGRyZXNzKGhLZXJuZWwzMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNyZWF0ZVN5bWJvbGljTGlua1ciKTsKLSAgICBpZiAoUHlfQ3JlYXRlU3ltYm9saWNMaW5rVykKLSAgICAgICAgaGFzX0NyZWF0ZVN5bWJvbGljTGlua1cgPSAxOwotICAgIHJldHVybiBoYXNfQ3JlYXRlU3ltYm9saWNMaW5rVzsKLX0KK3N0YXRpYyBQeVN0cnVjdFNlcXVlbmNlX0ZpZWxkIHRpbWVzX3Jlc3VsdF9maWVsZHNbXSA9IHsKKyAgICB7InVzZXIiLCAgICAidXNlciB0aW1lIn0sCisgICAgeyJzeXN0ZW0iLCAgICJzeXN0ZW0gdGltZSJ9LAorICAgIHsiY2hpbGRyZW5fdXNlciIsICAgICJ1c2VyIHRpbWUgb2YgY2hpbGRyZW4ifSwKKyAgICB7ImNoaWxkcmVuX3N5c3RlbSIsICAgICJzeXN0ZW0gdGltZSBvZiBjaGlsZHJlbiJ9LAorICAgIHsiZWxhcHNlZCIsICAgICJlbGFwc2VkIHRpbWUgc2luY2UgYW4gYXJiaXRyYXJ5IHBvaW50IGluIHRoZSBwYXN0In0sCisgICAge05VTEx9Cit9OwogCi1QeURvY19TVFJWQVIod2luX3N5bWxpbmtfX2RvY19fLAotInN5bWxpbmsoc3JjLCBkc3QsIHRhcmdldF9pc19kaXJlY3Rvcnk9RmFsc2UpXG5cblwKLUNyZWF0ZSBhIHN5bWJvbGljIGxpbmsgcG9pbnRpbmcgdG8gc3JjIG5hbWVkIGRzdC5cblwKLXRhcmdldF9pc19kaXJlY3RvcnkgaXMgcmVxdWlyZWQgaWYgdGhlIHRhcmdldCBpcyB0byBiZSBpbnRlcnByZXRlZCBhc1xuXAotYSBkaXJlY3RvcnkuXG5cCi1UaGlzIGZ1bmN0aW9uIHJlcXVpcmVzIFdpbmRvd3MgNi4wIG9yIGdyZWF0ZXIsIGFuZCByYWlzZXMgYVxuXAotTm90SW1wbGVtZW50ZWRFcnJvciBvdGhlcndpc2UuIik7CitQeURvY19TVFJWQVIodGltZXNfcmVzdWx0X19kb2NfXywKKyJ0aW1lc19yZXN1bHQ6IFJlc3VsdCBmcm9tIG9zLnRpbWVzKCkuXG5cblwKK1RoaXMgb2JqZWN0IG1heSBiZSBhY2Nlc3NlZCBlaXRoZXIgYXMgYSB0dXBsZSBvZlxuXAorICAodXNlciwgc3lzdGVtLCBjaGlsZHJlbl91c2VyLCBjaGlsZHJlbl9zeXN0ZW0sIGVsYXBzZWQpLFxuXAorb3IgdmlhIHRoZSBhdHRyaWJ1dGVzIHVzZXIsIHN5c3RlbSwgY2hpbGRyZW5fdXNlciwgY2hpbGRyZW5fc3lzdGVtLFxuXAorYW5kIGVsYXBzZWQuXG5cCitcblwKK1NlZSBvcy50aW1lcyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iKTsKKworc3RhdGljIFB5U3RydWN0U2VxdWVuY2VfRGVzYyB0aW1lc19yZXN1bHRfZGVzYyA9IHsKKyAgICAidGltZXNfcmVzdWx0IiwgLyogbmFtZSAqLworICAgIHRpbWVzX3Jlc3VsdF9fZG9jX18sIC8qIGRvYyAqLworICAgIHRpbWVzX3Jlc3VsdF9maWVsZHMsCisgICAgNQorfTsKKworc3RhdGljIFB5VHlwZU9iamVjdCBUaW1lc1Jlc3VsdFR5cGU7CisKKworI2lmIGRlZmluZWQoSEFWRV9USU1FUykgfHwgZGVmaW5lZChNU19XSU5ET1dTKQogCiBzdGF0aWMgUHlPYmplY3QgKgotd2luX3N5bWxpbmsoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQorYnVpbGRfdGltZXNfcmVzdWx0KGRvdWJsZSB1c2VyLCBkb3VibGUgc3lzdGVtLAorICAgIGRvdWJsZSBjaGlsZHJlbl91c2VyLCBkb3VibGUgY2hpbGRyZW5fc3lzdGVtLAorICAgIGRvdWJsZSBlbGFwc2VkKQogewotICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsic3JjIiwgImRlc3QiLCAidGFyZ2V0X2lzX2RpcmVjdG9yeSIsIE5VTEx9OwotICAgIFB5T2JqZWN0ICpzcmMsICpkZXN0OwotICAgIGludCB0YXJnZXRfaXNfZGlyZWN0b3J5ID0gMDsKLSAgICBEV09SRCByZXM7Ci0KLSAgICBpZiAoIWNoZWNrX0NyZWF0ZVN5bWJvbGljTGlua1coKSkKLSAgICB7Ci0gICAgICAgIC8qIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IgKi8KLSAgICAgICAgcmV0dXJuIFB5RXJyX0Zvcm1hdChQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yLAotICAgICAgICAgICAgIkNyZWF0ZVN5bWJvbGljTGlua1cgbm90IGZvdW5kIik7Ci0gICAgfQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk9PfGk6c3ltbGluayIsCi0gICAgICAgIGt3bGlzdCwgJnNyYywgJmRlc3QsICZ0YXJnZXRfaXNfZGlyZWN0b3J5KSkKKyAgICBQeU9iamVjdCAqdmFsdWUgPSBQeVN0cnVjdFNlcXVlbmNlX05ldygmVGltZXNSZXN1bHRUeXBlKTsKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAod2luMzJfY2FuX3N5bWxpbmsgPT0gMCkKLSAgICAgICAgcmV0dXJuIFB5RXJyX0Zvcm1hdChQeUV4Y19PU0Vycm9yLCAic3ltYm9saWMgbGluayBwcml2aWxlZ2Ugbm90IGhlbGQiKTsKKyNkZWZpbmUgU0VUKGksIGZpZWxkKSBcCisgICAgeyBcCisgICAgUHlPYmplY3QgKm8gPSBQeUZsb2F0X0Zyb21Eb3VibGUoZmllbGQpOyBcCisgICAgaWYgKCFvKSB7IFwKKyAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsgXAorICAgICAgICByZXR1cm4gTlVMTDsgXAorICAgIH0gXAorICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0odmFsdWUsIGksIG8pOyBcCisgICAgfSBcCiAKLSAgICBpZiAoIWNvbnZlcnRfdG9fdW5pY29kZSgmc3JjKSkgeyByZXR1cm4gTlVMTDsgfQotICAgIGlmICghY29udmVydF90b191bmljb2RlKCZkZXN0KSkgewotICAgICAgICBQeV9ERUNSRUYoc3JjKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQorICAgIFNFVCgwLCB1c2VyKTsKKyAgICBTRVQoMSwgc3lzdGVtKTsKKyAgICBTRVQoMiwgY2hpbGRyZW5fdXNlcik7CisgICAgU0VUKDMsIGNoaWxkcmVuX3N5c3RlbSk7CisgICAgU0VUKDQsIGVsYXBzZWQpOwogCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJlcyA9IFB5X0NyZWF0ZVN5bWJvbGljTGlua1coCi0gICAgICAgIFB5VW5pY29kZV9Bc1VuaWNvZGUoZGVzdCksCi0gICAgICAgIFB5VW5pY29kZV9Bc1VuaWNvZGUoc3JjKSwKLSAgICAgICAgdGFyZ2V0X2lzX2RpcmVjdG9yeSk7Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLSAgICBQeV9ERUNSRUYoc3JjKTsKLSAgICBQeV9ERUNSRUYoZGVzdCk7Ci0gICAgaWYgKCFyZXMpCi0gICAgewotICAgICAgICByZXR1cm4gd2luMzJfZXJyb3JfdW5pY29kZSgic3ltbGluayIsIFB5VW5pY29kZV9Bc1VuaWNvZGUoc3JjKSk7Ci0gICAgfQorI3VuZGVmIFNFVAogCi0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIHJldHVybiB2YWx1ZTsKIH0KLSNlbmRpZiAvKiBkZWZpbmVkKEhBVkVfU1lNTElOSykgJiYgZGVmaW5lZChNU19XSU5ET1dTKSAqLworCitQeURvY19TVFJWQVIocG9zaXhfdGltZXNfX2RvY19fLAorInRpbWVzKCkgLT4gdGltZXNfcmVzdWx0XG5cblwKK1JldHVybiBhbiBvYmplY3QgY29udGFpbmluZyBmbG9hdGluZyBwb2ludCBudW1iZXJzIGluZGljYXRpbmcgcHJvY2Vzc1xuXAordGltZXMuICBUaGUgb2JqZWN0IGJlaGF2ZXMgbGlrZSBhIG5hbWVkIHR1cGxlIHdpdGggdGhlc2UgZmllbGRzOlxuXAorICAodXRpbWUsIHN0aW1lLCBjdXRpbWUsIGNzdGltZSwgZWxhcHNlZF90aW1lKSIpOworCisjZW5kaWYKKwogCiAjaWZkZWYgSEFWRV9USU1FUwogI2lmIGRlZmluZWQoUFlDQ19WQUNQUCkgJiYgZGVmaW5lZChQWU9TX09TMikKQEAgLTUzODYsNyArNzUxMyw3IEBACiBwb3NpeF90aW1lcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm5vYXJncykKIHsKICAgICAvKiBDdXJyZW50bHkgT25seSBVcHRpbWUgaXMgUHJvdmlkZWQgLS0gT3RoZXJzIExhdGVyICovCi0gICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoImRkZGRkIiwKKyAgICByZXR1cm4gYnVpbGRfdGltZXNfcmVzdWx0KAogICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUpMCAvKiB0LnRtc191dGltZSAvIEhaICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUpMCAvKiB0LnRtc19zdGltZSAvIEhaICovLAogICAgICAgICAgICAgICAgICAgICAgICAgIChkb3VibGUpMCAvKiB0LnRtc19jdXRpbWUgLyBIWiAqLywKQEAgLTU0MDUsNyArNzUzMiw3IEBACiAgICAgYyA9IHRpbWVzKCZ0KTsKICAgICBpZiAoYyA9PSAoY2xvY2tfdCkgLTEpCiAgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOwotICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJkZGRkZCIsCisgICAgcmV0dXJuIGJ1aWxkX3RpbWVzX3Jlc3VsdCgKICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlKXQudG1zX3V0aW1lIC8gdGlja3NfcGVyX3NlY29uZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlKXQudG1zX3N0aW1lIC8gdGlja3NfcGVyX3NlY29uZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlKXQudG1zX2N1dGltZSAvIHRpY2tzX3Blcl9zZWNvbmQsCkBAIC01NDEzLDExICs3NTQwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAoZG91YmxlKWMgLyB0aWNrc19wZXJfc2Vjb25kKTsKIH0KICNlbmRpZiAvKiBub3QgT1MyICovCi0jZW5kaWYgLyogSEFWRV9USU1FUyAqLwotCi0KLSNpZmRlZiBNU19XSU5ET1dTCi0jZGVmaW5lIEhBVkVfVElNRVMgICAgICAvKiBzbyB0aGUgbWV0aG9kIHRhYmxlIHdpbGwgcGljayBpdCB1cCAqLworI2VsaWYgZGVmaW5lZChNU19XSU5ET1dTKQogc3RhdGljIFB5T2JqZWN0ICoKIHBvc2l4X3RpbWVzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqbm9hcmdzKQogewpAQCAtNTQzMCw4ICs3NTUzLDcgQEAKICAgICAgICAxZTcgaXMgb25lIHNlY29uZCBpbiBzdWNoIHVuaXRzOyAxZS03IHRoZSBpbnZlcnNlLgogICAgICAgIDQyOS40OTY3Mjk2IGlzIDIqKjMyIC8gMWU3IG9yIDIqKjMyICogMWUtNy4KICAgICAqLwotICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKAotICAgICAgICAiZGRkZGQiLAorICAgIHJldHVybiBidWlsZF90aW1lc19yZXN1bHQoCiAgICAgICAgIChkb3VibGUpKHVzZXIuZHdIaWdoRGF0ZVRpbWUqNDI5LjQ5NjcyOTYgKwogICAgICAgICAgICAgICAgICB1c2VyLmR3TG93RGF0ZVRpbWUqMWUtNyksCiAgICAgICAgIChkb3VibGUpKGtlcm5lbC5kd0hpZ2hEYXRlVGltZSo0MjkuNDk2NzI5NiArCkBAIC01NDQwLDEyICs3NTYyLDYgQEAKICAgICAgICAgKGRvdWJsZSkwLAogICAgICAgICAoZG91YmxlKTApOwogfQotI2VuZGlmIC8qIE1TX1dJTkRPV1MgKi8KLQotI2lmZGVmIEhBVkVfVElNRVMKLVB5RG9jX1NUUlZBUihwb3NpeF90aW1lc19fZG9jX18sCi0idGltZXMoKSAtPiAodXRpbWUsIHN0aW1lLCBjdXRpbWUsIGNzdGltZSwgZWxhcHNlZF90aW1lKVxuXG5cCi1SZXR1cm4gYSB0dXBsZSBvZiBmbG9hdGluZyBwb2ludCBudW1iZXJzIGluZGljYXRpbmcgcHJvY2VzcyB0aW1lcy4iKTsKICNlbmRpZgogCiAKQEAgLTU1NDYsNDkgKzc2NjIsNjggQEAKIC8qIEZ1bmN0aW9ucyBhY3Rpbmcgb24gZmlsZSBkZXNjcmlwdG9ycyAqLwogCiBQeURvY19TVFJWQVIocG9zaXhfb3Blbl9fZG9jX18sCi0ib3BlbihmaWxlbmFtZSwgZmxhZyBbLCBtb2RlPTA3NzddKSAtPiBmZFxuXG5cCi1PcGVuIGEgZmlsZSAoZm9yIGxvdyBsZXZlbCBJTykuIik7Cisib3BlbihwYXRoLCBmbGFncywgbW9kZT0wbzc3NywgKiwgZGlyX2ZkPU5vbmUpXG5cblwKK09wZW4gYSBmaWxlIGZvciBsb3cgbGV2ZWwgSU8uICBSZXR1cm5zIGEgZmlsZSBoYW5kbGUgKGludGVnZXIpLlxuXAorXG5cCitJZiBkaXJfZmQgaXMgbm90IE5vbmUsIGl0IHNob3VsZCBiZSBhIGZpbGUgZGVzY3JpcHRvciBvcGVuIHRvIGEgZGlyZWN0b3J5LFxuXAorICBhbmQgcGF0aCBzaG91bGQgYmUgcmVsYXRpdmU7IHBhdGggd2lsbCB0aGVuIGJlIHJlbGF0aXZlIHRvIHRoYXQgZGlyZWN0b3J5LlxuXAorZGlyX2ZkIG1heSBub3QgYmUgaW1wbGVtZW50ZWQgb24geW91ciBwbGF0Zm9ybS5cblwKKyAgSWYgaXQgaXMgdW5hdmFpbGFibGUsIHVzaW5nIGl0IHdpbGwgcmFpc2UgYSBOb3RJbXBsZW1lbnRlZEVycm9yLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfb3BlbihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitwb3NpeF9vcGVuKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKLSAgICBQeU9iamVjdCAqb2ZpbGU7Ci0gICAgY2hhciAqZmlsZTsKLSAgICBpbnQgZmxhZzsKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBpbnQgZmxhZ3M7CiAgICAgaW50IG1vZGUgPSAwNzc3OworICAgIGludCBkaXJfZmQgPSBERUZBVUxUX0RJUl9GRDsKICAgICBpbnQgZmQ7CisgICAgUHlPYmplY3QgKnJldHVybl92YWx1ZSA9IE5VTEw7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAiZmxhZ3MiLCAibW9kZSIsICJkaXJfZmQiLCBOVUxMfTsKIAotI2lmZGVmIE1TX1dJTkRPV1MKLSAgICBQeVVuaWNvZGVPYmplY3QgKnBvOwotICAgIGlmIChQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVaXxpOm9wZW4iLCAmcG8sICZmbGFnLCAmbW9kZSkpIHsKLSAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgICAgICAvKiBQeVVuaWNvZGVfQVNfVU5JQ09ERSBPSyB3aXRob3V0IHRocmVhZAotICAgICAgICAgICBsb2NrIGFzIGl0IGlzIGEgc2ltcGxlIGRlcmVmZXJlbmNlLiAqLwotICAgICAgICBmZCA9IF93b3BlbihQeVVuaWNvZGVfQVNfVU5JQ09ERShwbyksIGZsYWcsIG1vZGUpOwotICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgICAgICBpZiAoZmQgPCAwKQotICAgICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Ci0gICAgICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpZmQpOwotICAgIH0KLSAgICAvKiBEcm9wIHRoZSBhcmd1bWVudCBwYXJzaW5nIGVycm9yIGFzIG5hcnJvdyBzdHJpbmdzCi0gICAgICAgYXJlIGFsc28gdmFsaWQuICovCi0gICAgUHlFcnJfQ2xlYXIoKTsKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZpfGkkTyY6b3BlbiIsIGtleXdvcmRzLAorICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgsCisgICAgICAgICZmbGFncywgJm1vZGUsCisjaWZkZWYgSEFWRV9PUEVOQVQKKyAgICAgICAgZGlyX2ZkX2NvbnZlcnRlciwgJmRpcl9mZAorI2Vsc2UKKyAgICAgICAgZGlyX2ZkX3VuYXZhaWxhYmxlLCAmZGlyX2ZkCiAjZW5kaWYKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyZpfGk6b3BlbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9maWxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmZmxhZywgJm1vZGUpKQorICAgICAgICApKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBmaWxlID0gUHlCeXRlc19Bc1N0cmluZyhvZmlsZSk7Ci0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIGZkID0gb3BlbihmaWxlLCBmbGFnLCBtb2RlKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIGlmIChmZCA8IDApCi0gICAgICAgIHJldHVybiBwb3NpeF9lcnJvcl93aXRoX2FsbG9jYXRlZF9maWxlbmFtZShvZmlsZSk7Ci0gICAgUHlfREVDUkVGKG9maWxlKTsKLSAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKChsb25nKWZkKTsKLX0KIAorICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgaWYgKHBhdGgud2lkZSkKKyAgICAgICAgZmQgPSBfd29wZW4ocGF0aC53aWRlLCBmbGFncywgbW9kZSk7CisgICAgZWxzZQorI2VuZGlmCisjaWZkZWYgSEFWRV9PUEVOQVQKKyAgICBpZiAoZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKQorICAgICAgICBmZCA9IG9wZW5hdChkaXJfZmQsIHBhdGgubmFycm93LCBmbGFncywgbW9kZSk7CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIGZkID0gb3BlbihwYXRoLm5hcnJvdywgZmxhZ3MsIG1vZGUpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAoZmQgPT0gLTEpIHsKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgICAgIC8qIGZvcmNlIHVzZSBvZiBwb3NpeF9lcnJvciBoZXJlIGZvciBleGFjdCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLworICAgICAgICBpZiAocGF0aC53aWRlKQorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlID0gcG9zaXhfZXJyb3IoKTsKKyAgICAgICAgZWxzZQorI2VuZGlmCisgICAgICAgIHJldHVybl92YWx1ZSA9IHBhdGhfZXJyb3IoIm9wZW4iLCAmcGF0aCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByZXR1cm5fdmFsdWUgPSBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpZmQpOworCitleGl0OgorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKK30KIAogUHlEb2NfU1RSVkFSKHBvc2l4X2Nsb3NlX19kb2NfXywKICJjbG9zZShmZClcblxuXApAQCAtNTY0Myw5ICs3Nzc4LDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKCFfUHlWZXJpZnlfZmQoZmQpKQogICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCiAgICAgZmQgPSBkdXAoZmQpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCiAgICAgaWYgKGZkIDwgMCkKICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZygobG9uZylmZCk7CkBAIC01NjY0LDE1ICs3Nzk3LDQyIEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmICghX1B5VmVyaWZ5X2ZkX2R1cDIoZmQsIGZkMikpCiAgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOwotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICAgICByZXMgPSBkdXAyKGZkLCBmZDIpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCiAgICAgaWYgKHJlcyA8IDApCiAgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOwogICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKICAgICByZXR1cm4gUHlfTm9uZTsKIH0KIAorI2lmZGVmIEhBVkVfTE9DS0YKK1B5RG9jX1NUUlZBUihwb3NpeF9sb2NrZl9fZG9jX18sCisibG9ja2YoZmQsIGNtZCwgbGVuKVxuXG5cCitBcHBseSwgdGVzdCBvciByZW1vdmUgYSBQT1NJWCBsb2NrIG9uIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yLlxuXG5cCitmZCBpcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci5cblwKK2NtZCBzcGVjaWZpZXMgdGhlIGNvbW1hbmQgdG8gdXNlIC0gb25lIG9mIEZfTE9DSywgRl9UTE9DSywgRl9VTE9DSyBvclxuXAorRl9URVNULlxuXAorbGVuIHNwZWNpZmllcyB0aGUgc2VjdGlvbiBvZiB0aGUgZmlsZSB0byBsb2NrLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfbG9ja2YoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCBmZCwgY21kLCByZXM7CisgICAgb2ZmX3QgbGVuOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaWlPJjpsb2NrZiIsCisgICAgICAgICAgICAmZmQsICZjbWQsIF9wYXJzZV9vZmZfdCwgJmxlbikpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJlcyA9IGxvY2tmKGZkLCBjbWQsIGxlbik7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmIChyZXMgPCAwKQorICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKKworICAgIFB5X1JFVFVSTl9OT05FOworfQorI2VuZGlmCisKIAogUHlEb2NfU1RSVkFSKHBvc2l4X2xzZWVrX19kb2NfXywKICJsc2VlayhmZCwgcG9zLCBob3cpIC0+IG5ld3Bvc1xuXG5cCkBAIC01NzAzLDggKzc4NjMsNyBAQAogI2lmICFkZWZpbmVkKEhBVkVfTEFSR0VGSUxFX1NVUFBPUlQpCiAgICAgcG9zID0gUHlMb25nX0FzTG9uZyhwb3NvYmopOwogI2Vsc2UKLSAgICBwb3MgPSBQeUxvbmdfQ2hlY2socG9zb2JqKSA/Ci0gICAgICAgIFB5TG9uZ19Bc0xvbmdMb25nKHBvc29iaikgOiBQeUxvbmdfQXNMb25nKHBvc29iaik7CisgICAgcG9zID0gUHlMb25nX0FzTG9uZ0xvbmcocG9zb2JqKTsKICNlbmRpZgogICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTU3NjQsNiArNzkyMywxNDAgQEAKICAgICByZXR1cm4gYnVmZmVyOwogfQogCisjaWYgKGRlZmluZWQoSEFWRV9TRU5ERklMRSkgJiYgKGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykgXAorICAgIHx8IGRlZmluZWQoX19BUFBMRV9fKSkpIHx8IGRlZmluZWQoSEFWRV9SRUFEVikgfHwgZGVmaW5lZChIQVZFX1dSSVRFVikKK3N0YXRpYyBQeV9zc2l6ZV90Citpb3Zfc2V0dXAoc3RydWN0IGlvdmVjICoqaW92LCBQeV9idWZmZXIgKipidWYsIFB5T2JqZWN0ICpzZXEsIGludCBjbnQsIGludCB0eXBlKQoreworICAgIGludCBpLCBqOworICAgIFB5X3NzaXplX3QgYmxlbiwgdG90YWwgPSAwOworCisgICAgKmlvdiA9IFB5TWVtX05ldyhzdHJ1Y3QgaW92ZWMsIGNudCk7CisgICAgaWYgKCppb3YgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gdG90YWw7CisgICAgfQorCisgICAgKmJ1ZiA9IFB5TWVtX05ldyhQeV9idWZmZXIsIGNudCk7CisgICAgaWYgKCpidWYgPT0gTlVMTCkgeworICAgICAgICBQeU1lbV9EZWwoKmlvdik7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIHJldHVybiB0b3RhbDsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgY250OyBpKyspIHsKKyAgICAgICAgUHlPYmplY3QgKml0ZW0gPSBQeVNlcXVlbmNlX0dldEl0ZW0oc2VxLCBpKTsKKyAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcihpdGVtLCAmKCpidWYpW2ldLCB0eXBlKSA9PSAtMSkgeworICAgICAgICAgICAgUHlfREVDUkVGKGl0ZW0pOworICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICB9CisgICAgICAgIFB5X0RFQ1JFRihpdGVtKTsKKyAgICAgICAgKCppb3YpW2ldLmlvdl9iYXNlID0gKCpidWYpW2ldLmJ1ZjsKKyAgICAgICAgYmxlbiA9ICgqYnVmKVtpXS5sZW47CisgICAgICAgICgqaW92KVtpXS5pb3ZfbGVuID0gYmxlbjsKKyAgICAgICAgdG90YWwgKz0gYmxlbjsKKyAgICB9CisgICAgcmV0dXJuIHRvdGFsOworCitmYWlsOgorICAgIFB5TWVtX0RlbCgqaW92KTsKKyAgICBmb3IgKGogPSAwOyBqIDwgaTsgaisrKSB7CisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJigqYnVmKVtqXSk7CisgICAgfQorICAgIFB5TWVtX0RlbCgqYnVmKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2lvdl9jbGVhbnVwKHN0cnVjdCBpb3ZlYyAqaW92LCBQeV9idWZmZXIgKmJ1ZiwgaW50IGNudCkKK3sKKyAgICBpbnQgaTsKKyAgICBQeU1lbV9EZWwoaW92KTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgY250OyBpKyspIHsKKyAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmYnVmW2ldKTsKKyAgICB9CisgICAgUHlNZW1fRGVsKGJ1Zik7Cit9CisjZW5kaWYKKworI2lmZGVmIEhBVkVfUkVBRFYKK1B5RG9jX1NUUlZBUihwb3NpeF9yZWFkdl9fZG9jX18sCisicmVhZHYoZmQsIGJ1ZmZlcnMpIC0+IGJ5dGVzcmVhZFxuXG5cCitSZWFkIGZyb20gYSBmaWxlIGRlc2NyaXB0b3IgaW50byBhIG51bWJlciBvZiB3cml0YWJsZSBidWZmZXJzLiBidWZmZXJzXG5cCitpcyBhbiBhcmJpdHJhcnkgc2VxdWVuY2Ugb2Ygd3JpdGFibGUgYnVmZmVycy5cblwKK1JldHVybnMgdGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyByZWFkLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfcmVhZHYoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCBmZCwgY250OworICAgIFB5X3NzaXplX3QgbjsKKyAgICBQeU9iamVjdCAqc2VxOworICAgIHN0cnVjdCBpb3ZlYyAqaW92OworICAgIFB5X2J1ZmZlciAqYnVmOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJpTzpyZWFkdiIsICZmZCwgJnNlcSkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmICghUHlTZXF1ZW5jZV9DaGVjayhzZXEpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAicmVhZHYoKSBhcmcgMiBtdXN0IGJlIGEgc2VxdWVuY2UiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGNudCA9IFB5U2VxdWVuY2VfU2l6ZShzZXEpOworCisgICAgaWYgKCFpb3Zfc2V0dXAoJmlvdiwgJmJ1Ziwgc2VxLCBjbnQsIFB5QlVGX1dSSVRBQkxFKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgbiA9IHJlYWR2KGZkLCBpb3YsIGNudCk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlvdl9jbGVhbnVwKGlvdiwgYnVmLCBjbnQpOworICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3Qobik7Cit9CisjZW5kaWYKKworI2lmZGVmIEhBVkVfUFJFQUQKK1B5RG9jX1NUUlZBUihwb3NpeF9wcmVhZF9fZG9jX18sCisicHJlYWQoZmQsIGJ1ZmZlcnNpemUsIG9mZnNldCkgLT4gc3RyaW5nXG5cblwKK1JlYWQgZnJvbSBhIGZpbGUgZGVzY3JpcHRvciwgZmQsIGF0IGEgcG9zaXRpb24gb2Ygb2Zmc2V0LiBJdCB3aWxsIHJlYWQgdXBcblwKK3RvIGJ1ZmZlcnNpemUgbnVtYmVyIG9mIGJ5dGVzLiBUaGUgZmlsZSBvZmZzZXQgcmVtYWlucyB1bmNoYW5nZWQuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9wcmVhZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgaW50IGZkLCBzaXplOworICAgIG9mZl90IG9mZnNldDsKKyAgICBQeV9zc2l6ZV90IG47CisgICAgUHlPYmplY3QgKmJ1ZmZlcjsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImlpTyY6cHJlYWQiLCAmZmQsICZzaXplLCBfcGFyc2Vfb2ZmX3QsICZvZmZzZXQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChzaXplIDwgMCkgeworICAgICAgICBlcnJubyA9IEVJTlZBTDsKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisgICAgfQorICAgIGJ1ZmZlciA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoKGNoYXIgKilOVUxMLCBzaXplKTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmICghX1B5VmVyaWZ5X2ZkKGZkKSkgeworICAgICAgICBQeV9ERUNSRUYoYnVmZmVyKTsKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisgICAgfQorICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICBuID0gcHJlYWQoZmQsIFB5Qnl0ZXNfQVNfU1RSSU5HKGJ1ZmZlciksIHNpemUsIG9mZnNldCk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICBpZiAobiA8IDApIHsKKyAgICAgICAgUHlfREVDUkVGKGJ1ZmZlcik7CisgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOworICAgIH0KKyAgICBpZiAobiAhPSBzaXplKQorICAgICAgICBfUHlCeXRlc19SZXNpemUoJmJ1ZmZlciwgbik7CisgICAgcmV0dXJuIGJ1ZmZlcjsKK30KKyNlbmRpZgogCiBQeURvY19TVFJWQVIocG9zaXhfd3JpdGVfX2RvY19fLAogIndyaXRlKGZkLCBzdHJpbmcpIC0+IGJ5dGVzd3JpdHRlblxuXG5cCkBAIC01Nzk4LDEwICs4MDkxLDE0OSBAQAogICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3Qoc2l6ZSk7CiB9CiAKKyNpZmRlZiBIQVZFX1NFTkRGSUxFCitQeURvY19TVFJWQVIocG9zaXhfc2VuZGZpbGVfX2RvY19fLAorInNlbmRmaWxlKG91dCwgaW4sIG9mZnNldCwgbmJ5dGVzKSAtPiBieXRlc3dyaXR0ZW5cblwKK3NlbmRmaWxlKG91dCwgaW4sIG9mZnNldCwgbmJ5dGVzLCBoZWFkZXJzPU5vbmUsIHRyYWlsZXJzPU5vbmUsIGZsYWdzPTApXG5cCisgICAgICAgICAgICAtPiBieXRlc3dyaXR0ZW5cblwKK0NvcHkgbmJ5dGVzIGJ5dGVzIGZyb20gZmlsZSBkZXNjcmlwdG9yIGluIHRvIGZpbGUgZGVzY3JpcHRvciBvdXQuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9zZW5kZmlsZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RpY3QpCit7CisgICAgaW50IGluLCBvdXQ7CisgICAgUHlfc3NpemVfdCByZXQ7CisgICAgb2ZmX3Qgb2Zmc2V0OworCisjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZChfX0RyYWdvbkZseV9fKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykKKyNpZm5kZWYgX19BUFBMRV9fCisgICAgUHlfc3NpemVfdCBsZW47CisjZW5kaWYKKyAgICBQeU9iamVjdCAqaGVhZGVycyA9IE5VTEwsICp0cmFpbGVycyA9IE5VTEw7CisgICAgUHlfYnVmZmVyICpoYnVmLCAqdGJ1ZjsKKyAgICBvZmZfdCBzYnl0ZXM7CisgICAgc3RydWN0IHNmX2hkdHIgc2Y7CisgICAgaW50IGZsYWdzID0gMDsKKyAgICBzZi5oZWFkZXJzID0gTlVMTDsKKyAgICBzZi50cmFpbGVycyA9IE5VTEw7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7Im91dCIsICJpbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvZmZzZXQiLCAiY291bnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVycyIsICJ0cmFpbGVycyIsICJmbGFncyIsIE5VTEx9OworCisjaWZkZWYgX19BUFBMRV9fCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkaWN0LCAiaWlPJk8mfE9PaTpzZW5kZmlsZSIsCisgICAgICAgIGtleXdvcmRzLCAmb3V0LCAmaW4sIF9wYXJzZV9vZmZfdCwgJm9mZnNldCwgX3BhcnNlX29mZl90LCAmc2J5dGVzLAorI2Vsc2UKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RpY3QsICJpaU8mbnxPT2k6c2VuZGZpbGUiLAorICAgICAgICBrZXl3b3JkcywgJm91dCwgJmluLCBfcGFyc2Vfb2ZmX3QsICZvZmZzZXQsICZsZW4sCisjZW5kaWYKKyAgICAgICAgICAgICAgICAmaGVhZGVycywgJnRyYWlsZXJzLCAmZmxhZ3MpKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKGhlYWRlcnMgIT0gTlVMTCkgeworICAgICAgICBpZiAoIVB5U2VxdWVuY2VfQ2hlY2soaGVhZGVycykpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgInNlbmRmaWxlKCkgaGVhZGVycyBtdXN0IGJlIGEgc2VxdWVuY2Ugb3IgTm9uZSIpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBQeV9zc2l6ZV90IGkgPSAwOyAvKiBBdm9pZCB1bmluaXRpYWxpemVkIHdhcm5pbmcgKi8KKyAgICAgICAgICAgIHNmLmhkcl9jbnQgPSBQeVNlcXVlbmNlX1NpemUoaGVhZGVycyk7CisgICAgICAgICAgICBpZiAoc2YuaGRyX2NudCA+IDAgJiYKKyAgICAgICAgICAgICAgICAhKGkgPSBpb3Zfc2V0dXAoJihzZi5oZWFkZXJzKSwgJmhidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnMsIHNmLmhkcl9jbnQsIFB5QlVGX1NJTVBMRSkpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworI2lmZGVmIF9fQVBQTEVfXworICAgICAgICAgICAgc2J5dGVzICs9IGk7CisjZW5kaWYKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAodHJhaWxlcnMgIT0gTlVMTCkgeworICAgICAgICBpZiAoIVB5U2VxdWVuY2VfQ2hlY2sodHJhaWxlcnMpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICJzZW5kZmlsZSgpIHRyYWlsZXJzIG11c3QgYmUgYSBzZXF1ZW5jZSBvciBOb25lIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgaSA9IDA7IC8qIEF2b2lkIHVuaW5pdGlhbGl6ZWQgd2FybmluZyAqLworICAgICAgICAgICAgc2YudHJsX2NudCA9IFB5U2VxdWVuY2VfU2l6ZSh0cmFpbGVycyk7CisgICAgICAgICAgICBpZiAoc2YudHJsX2NudCA+IDAgJiYKKyAgICAgICAgICAgICAgICAhKGkgPSBpb3Zfc2V0dXAoJihzZi50cmFpbGVycyksICZ0YnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFpbGVycywgc2YudHJsX2NudCwgUHlCVUZfU0lNUExFKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisjaWZkZWYgX19BUFBMRV9fCisgICAgICAgICAgICBzYnl0ZXMgKz0gaTsKKyNlbmRpZgorICAgICAgICB9CisgICAgfQorCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworI2lmZGVmIF9fQVBQTEVfXworICAgIHJldCA9IHNlbmRmaWxlKGluLCBvdXQsIG9mZnNldCwgJnNieXRlcywgJnNmLCBmbGFncyk7CisjZWxzZQorICAgIHJldCA9IHNlbmRmaWxlKGluLCBvdXQsIG9mZnNldCwgbGVuLCAmc2YsICZzYnl0ZXMsIGZsYWdzKTsKKyNlbmRpZgorICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAoc2YuaGVhZGVycyAhPSBOVUxMKQorICAgICAgICBpb3ZfY2xlYW51cChzZi5oZWFkZXJzLCBoYnVmLCBzZi5oZHJfY250KTsKKyAgICBpZiAoc2YudHJhaWxlcnMgIT0gTlVMTCkKKyAgICAgICAgaW92X2NsZWFudXAoc2YudHJhaWxlcnMsIHRidWYsIHNmLnRybF9jbnQpOworCisgICAgaWYgKHJldCA8IDApIHsKKyAgICAgICAgaWYgKChlcnJubyA9PSBFQUdBSU4pIHx8IChlcnJubyA9PSBFQlVTWSkpIHsKKyAgICAgICAgICAgIGlmIChzYnl0ZXMgIT0gMCkgeworICAgICAgICAgICAgICAgIC8vIHNvbWUgZGF0YSBoYXMgYmVlbiBzZW50CisgICAgICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gbm8gZGF0YSBoYXMgYmVlbiBzZW50OyB1cHBlciBhcHBsaWNhdGlvbiBpcyBzdXBwb3NlZAorICAgICAgICAgICAgICAgIC8vIHRvIHJldHJ5IG9uIEVBR0FJTiBvciBFQlVTWQorICAgICAgICAgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOworICAgIH0KKyAgICBnb3RvIGRvbmU7CisKK2RvbmU6CisgICAgI2lmICFkZWZpbmVkKEhBVkVfTEFSR0VGSUxFX1NVUFBPUlQpCisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJsIiwgc2J5dGVzKTsKKyAgICAjZWxzZQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTCIsIHNieXRlcyk7CisgICAgI2VuZGlmCisKKyNlbHNlCisgICAgUHlfc3NpemVfdCBjb3VudDsKKyAgICBQeU9iamVjdCAqb2Zmb2JqOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJvdXQiLCAiaW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2Zmc2V0IiwgImNvdW50IiwgTlVMTH07CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkaWN0LCAiaWlPbjpzZW5kZmlsZSIsCisgICAgICAgICAgICBrZXl3b3JkcywgJm91dCwgJmluLCAmb2Zmb2JqLCAmY291bnQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyNpZmRlZiBsaW51eAorICAgIGlmIChvZmZvYmogPT0gUHlfTm9uZSkgeworICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgICAgIHJldCA9IHNlbmRmaWxlKG91dCwgaW4sIE5VTEwsIGNvdW50KTsKKyAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgaWYgKHJldCA8IDApCisgICAgICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIm4iLCByZXQpOworICAgIH0KKyNlbmRpZgorICAgIGlmICghX3BhcnNlX29mZl90KG9mZm9iaiwgJm9mZnNldCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICByZXQgPSBzZW5kZmlsZShvdXQsIGluLCAmb2Zmc2V0LCBjb3VudCk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICBpZiAocmV0IDwgMCkKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIm4iLCByZXQpOworI2VuZGlmCit9CisjZW5kaWYKIAogUHlEb2NfU1RSVkFSKHBvc2l4X2ZzdGF0X19kb2NfXywKICJmc3RhdChmZCkgLT4gc3RhdCByZXN1bHRcblxuXAotTGlrZSBzdGF0KCksIGJ1dCBmb3IgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuIik7CitMaWtlIHN0YXQoKSwgYnV0IGZvciBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci5cblwKK0VxdWl2YWxlbnQgdG8gc3RhdChmZD1mZCkuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBwb3NpeF9mc3RhdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCkBAIC01ODE1LDggKzgyNDcsNiBAQAogICAgIC8qIG9uIE9wZW5WTVMgd2UgbXVzdCBlbnN1cmUgdGhhdCBhbGwgYnl0ZXMgYXJlIHdyaXR0ZW4gdG8gdGhlIGZpbGUgKi8KICAgICBmc3luYyhmZCk7CiAjZW5kaWYKLSAgICBpZiAoIV9QeVZlcmlmeV9mZChmZCkpCi0gICAgICAgIHJldHVybiBwb3NpeF9lcnJvcigpOwogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICAgICByZXMgPSBGU1RBVChmZCwgJnN0KTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwpAQCAtNTg1OSw5ICs4Mjg5LDcgQEAKICAgICBIRklMRSByZWFkLCB3cml0ZTsKICAgICBBUElSRVQgcmM7CiAKLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCiAgICAgcmMgPSBEb3NDcmVhdGVQaXBlKCAmcmVhZCwgJndyaXRlLCA0MDk2KTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogICAgIGlmIChyYyAhPSBOT19FUlJPUikKICAgICAgICAgcmV0dXJuIG9zMl9lcnJvcihyYyk7CiAKQEAgLTU4NzAsOSArODI5OCw3IEBACiAjaWYgIWRlZmluZWQoTVNfV0lORE9XUykKICAgICBpbnQgZmRzWzJdOwogICAgIGludCByZXM7Ci0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgIHJlcyA9IHBpcGUoZmRzKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogICAgIGlmIChyZXMgIT0gMCkKICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CiAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihpaSkiLCBmZHNbMF0sIGZkc1sxXSk7CkBAIC01ODgwLDkgKzgzMDYsNyBAQAogICAgIEhBTkRMRSByZWFkLCB3cml0ZTsKICAgICBpbnQgcmVhZF9mZCwgd3JpdGVfZmQ7CiAgICAgQk9PTCBvazsKLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCiAgICAgb2sgPSBDcmVhdGVQaXBlKCZyZWFkLCAmd3JpdGUsIE5VTEwsIDApOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCiAgICAgaWYgKCFvaykKICAgICAgICAgcmV0dXJuIHdpbjMyX2Vycm9yKCJDcmVhdGVQaXBlIiwgTlVMTCk7CiAgICAgcmVhZF9mZCA9IF9vcGVuX29zZmhhbmRsZSgoUHlfaW50cHRyX3QpcmVhZCwgMCk7CkBAIC01ODkzLDY2ICs4MzE3LDIxNCBAQAogfQogI2VuZGlmICAvKiBIQVZFX1BJUEUgKi8KIAotCi0jaWZkZWYgSEFWRV9NS0ZJRk8KLVB5RG9jX1NUUlZBUihwb3NpeF9ta2ZpZm9fX2RvY19fLAotIm1rZmlmbyhmaWxlbmFtZSBbLCBtb2RlPTA2NjZdKVxuXG5cCi1DcmVhdGUgYSBGSUZPIChhIFBPU0lYIG5hbWVkIHBpcGUpLiIpOworI2lmZGVmIEhBVkVfUElQRTIKK1B5RG9jX1NUUlZBUihwb3NpeF9waXBlMl9fZG9jX18sCisicGlwZTIoZmxhZ3MpIC0+IChyZWFkX2VuZCwgd3JpdGVfZW5kKVxuXG5cCitDcmVhdGUgYSBwaXBlIHdpdGggZmxhZ3Mgc2V0IGF0b21pY2FsbHkuXG5cCitmbGFncyBjYW4gYmUgY29uc3RydWN0ZWQgYnkgT1JpbmcgdG9nZXRoZXIgb25lIG9yIG1vcmUgb2YgdGhlc2UgdmFsdWVzOlxuXAorT19OT05CTE9DSywgT19DTE9FWEVDLlxuXAorIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF9ta2ZpZm8oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorcG9zaXhfcGlwZTIoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmcpCiB7Ci0gICAgUHlPYmplY3QgKm9wYXRoOwotICAgIGNoYXIgKmZpbGVuYW1lOwotICAgIGludCBtb2RlID0gMDY2NjsKKyAgICBpbnQgZmxhZ3M7CisgICAgaW50IGZkc1syXTsKICAgICBpbnQgcmVzOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyZ8aTpta2ZpZm8iLCBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsICZvcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJm1vZGUpKQorCisgICAgZmxhZ3MgPSBQeUxvbmdfQXNMb25nKGFyZyk7CisgICAgaWYgKGZsYWdzID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGZpbGVuYW1lID0gUHlCeXRlc19BU19TVFJJTkcob3BhdGgpOwotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSBta2ZpZm8oZmlsZW5hbWUsIG1vZGUpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICBpZiAocmVzIDwgMCkKKworICAgIHJlcyA9IHBpcGUyKGZkcywgZmxhZ3MpOworICAgIGlmIChyZXMgIT0gMCkKICAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7Ci0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoaWkpIiwgZmRzWzBdLCBmZHNbMV0pOworfQorI2VuZGlmIC8qIEhBVkVfUElQRTIgKi8KKworI2lmZGVmIEhBVkVfV1JJVEVWCitQeURvY19TVFJWQVIocG9zaXhfd3JpdGV2X19kb2NfXywKKyJ3cml0ZXYoZmQsIGJ1ZmZlcnMpIC0+IGJ5dGVzd3JpdHRlblxuXG5cCitXcml0ZSB0aGUgY29udGVudHMgb2YgYnVmZmVycyB0byBhIGZpbGUgZGVzY3JpcHRvciwgd2hlcmUgYnVmZmVycyBpcyBhblxuXAorYXJiaXRyYXJ5IHNlcXVlbmNlIG9mIGJ1ZmZlcnMuXG5cCitSZXR1cm5zIHRoZSB0b3RhbCBieXRlcyB3cml0dGVuLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfd3JpdGV2KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBpbnQgZmQsIGNudDsKKyAgICBQeV9zc2l6ZV90IHJlczsKKyAgICBQeU9iamVjdCAqc2VxOworICAgIHN0cnVjdCBpb3ZlYyAqaW92OworICAgIFB5X2J1ZmZlciAqYnVmOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaU86d3JpdGV2IiwgJmZkLCAmc2VxKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKCFQeVNlcXVlbmNlX0NoZWNrKHNlcSkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICJ3cml0ZXYoKSBhcmcgMiBtdXN0IGJlIGEgc2VxdWVuY2UiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGNudCA9IFB5U2VxdWVuY2VfU2l6ZShzZXEpOworCisgICAgaWYgKCFpb3Zfc2V0dXAoJmlvdiwgJmJ1Ziwgc2VxLCBjbnQsIFB5QlVGX1NJTVBMRSkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJlcyA9IHdyaXRldihmZCwgaW92LCBjbnQpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpb3ZfY2xlYW51cChpb3YsIGJ1ZiwgY250KTsKKyAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KHJlcyk7CiB9CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfUFdSSVRFCitQeURvY19TVFJWQVIocG9zaXhfcHdyaXRlX19kb2NfXywKKyJwd3JpdGUoZmQsIHN0cmluZywgb2Zmc2V0KSAtPiBieXRlc3dyaXR0ZW5cblxuXAorV3JpdGUgc3RyaW5nIHRvIGEgZmlsZSBkZXNjcmlwdG9yLCBmZCwgZnJvbSBvZmZzZXQsIGxlYXZpbmcgdGhlIGZpbGVcblwKK29mZnNldCB1bmNoYW5nZWQuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9wd3JpdGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5X2J1ZmZlciBwYnVmOworICAgIGludCBmZDsKKyAgICBvZmZfdCBvZmZzZXQ7CisgICAgUHlfc3NpemVfdCBzaXplOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJpeSpPJjpwd3JpdGUiLCAmZmQsICZwYnVmLCBfcGFyc2Vfb2ZmX3QsICZvZmZzZXQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmICghX1B5VmVyaWZ5X2ZkKGZkKSkgeworICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZwYnVmKTsKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisgICAgfQorICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICBzaXplID0gcHdyaXRlKGZkLCBwYnVmLmJ1ZiwgKHNpemVfdClwYnVmLmxlbiwgb2Zmc2V0KTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworICAgIFB5QnVmZmVyX1JlbGVhc2UoJnBidWYpOworICAgIGlmIChzaXplIDwgMCkKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChzaXplKTsKK30KKyNlbmRpZgorCisjaWZkZWYgSEFWRV9NS0ZJRk8KK1B5RG9jX1NUUlZBUihwb3NpeF9ta2ZpZm9fX2RvY19fLAorIm1rZmlmbyhwYXRoLCBtb2RlPTBvNjY2LCAqLCBkaXJfZmQ9Tm9uZSlcblxuXAorQ3JlYXRlIGEgRklGTyAoYSBQT1NJWCBuYW1lZCBwaXBlKS5cblwKK1xuXAorSWYgZGlyX2ZkIGlzIG5vdCBOb25lLCBpdCBzaG91bGQgYmUgYSBmaWxlIGRlc2NyaXB0b3Igb3BlbiB0byBhIGRpcmVjdG9yeSxcblwKKyAgYW5kIHBhdGggc2hvdWxkIGJlIHJlbGF0aXZlOyBwYXRoIHdpbGwgdGhlbiBiZSByZWxhdGl2ZSB0byB0aGF0IGRpcmVjdG9yeS5cblwKK2Rpcl9mZCBtYXkgbm90IGJlIGltcGxlbWVudGVkIG9uIHlvdXIgcGxhdGZvcm0uXG5cCisgIElmIGl0IGlzIHVuYXZhaWxhYmxlLCB1c2luZyBpdCB3aWxsIHJhaXNlIGEgTm90SW1wbGVtZW50ZWRFcnJvci4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X21rZmlmbyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCit7CisgICAgcGF0aF90IHBhdGg7CisgICAgaW50IG1vZGUgPSAwNjY2OworICAgIGludCBkaXJfZmQgPSBERUZBVUxUX0RJUl9GRDsKKyAgICBpbnQgcmVzdWx0OworICAgIFB5T2JqZWN0ICpyZXR1cm5fdmFsdWUgPSBOVUxMOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgIm1vZGUiLCAiZGlyX2ZkIiwgTlVMTH07CisKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZ8aSRPJjpta2ZpZm8iLCBrZXl3b3JkcywKKyAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLAorICAgICAgICAmbW9kZSwKKyNpZmRlZiBIQVZFX01LRklGT0FUCisgICAgICAgIGRpcl9mZF9jb252ZXJ0ZXIsICZkaXJfZmQKKyNlbHNlCisgICAgICAgIGRpcl9mZF91bmF2YWlsYWJsZSwgJmRpcl9mZAorI2VuZGlmCisgICAgICAgICkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworI2lmZGVmIEhBVkVfTUtGSUZPQVQKKyAgICBpZiAoZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKQorICAgICAgICByZXN1bHQgPSBta2ZpZm9hdChkaXJfZmQsIHBhdGgubmFycm93LCBtb2RlKTsKKyAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgcmVzdWx0ID0gbWtmaWZvKHBhdGgubmFycm93LCBtb2RlKTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcG9zaXhfZXJyb3IoKTsKKyAgICAgICAgZ290byBleGl0OworICAgIH0KKworICAgIHJldHVybl92YWx1ZSA9IFB5X05vbmU7CisgICAgUHlfSU5DUkVGKFB5X05vbmUpOworCitleGl0OgorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKK30KKyNlbmRpZgogCiAjaWYgZGVmaW5lZChIQVZFX01LTk9EKSAmJiBkZWZpbmVkKEhBVkVfTUFLRURFVikKIFB5RG9jX1NUUlZBUihwb3NpeF9ta25vZF9fZG9jX18sCi0ibWtub2QoZmlsZW5hbWUgWywgbW9kZT0wNjAwLCBkZXZpY2VdKVxuXG5cCisibWtub2QoZmlsZW5hbWUsIG1vZGU9MG82MDAsIGRldmljZT0wLCAqLCBkaXJfZmQ9Tm9uZSlcblxuXAogQ3JlYXRlIGEgZmlsZXN5c3RlbSBub2RlIChmaWxlLCBkZXZpY2Ugc3BlY2lhbCBmaWxlIG9yIG5hbWVkIHBpcGUpXG5cCiBuYW1lZCBmaWxlbmFtZS4gbW9kZSBzcGVjaWZpZXMgYm90aCB0aGUgcGVybWlzc2lvbnMgdG8gdXNlIGFuZCB0aGVcblwKIHR5cGUgb2Ygbm9kZSB0byBiZSBjcmVhdGVkLCBiZWluZyBjb21iaW5lZCAoYml0d2lzZSBPUikgd2l0aCBvbmUgb2ZcblwKIFNfSUZSRUcsIFNfSUZDSFIsIFNfSUZCTEssIGFuZCBTX0lGSUZPLiBGb3IgU19JRkNIUiBhbmQgU19JRkJMSyxcblwKIGRldmljZSBkZWZpbmVzIHRoZSBuZXdseSBjcmVhdGVkIGRldmljZSBzcGVjaWFsIGZpbGUgKHByb2JhYmx5IHVzaW5nXG5cCi1vcy5tYWtlZGV2KCkpLCBvdGhlcndpc2UgaXQgaXMgaWdub3JlZC4iKTsKK29zLm1ha2VkZXYoKSksIG90aGVyd2lzZSBpdCBpcyBpZ25vcmVkLlxuXAorXG5cCitJZiBkaXJfZmQgaXMgbm90IE5vbmUsIGl0IHNob3VsZCBiZSBhIGZpbGUgZGVzY3JpcHRvciBvcGVuIHRvIGEgZGlyZWN0b3J5LFxuXAorICBhbmQgcGF0aCBzaG91bGQgYmUgcmVsYXRpdmU7IHBhdGggd2lsbCB0aGVuIGJlIHJlbGF0aXZlIHRvIHRoYXQgZGlyZWN0b3J5LlxuXAorZGlyX2ZkIG1heSBub3QgYmUgaW1wbGVtZW50ZWQgb24geW91ciBwbGF0Zm9ybS5cblwKKyAgSWYgaXQgaXMgdW5hdmFpbGFibGUsIHVzaW5nIGl0IHdpbGwgcmFpc2UgYSBOb3RJbXBsZW1lbnRlZEVycm9yLiIpOwogCiAKIHN0YXRpYyBQeU9iamVjdCAqCi1wb3NpeF9ta25vZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitwb3NpeF9ta25vZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCiB7Ci0gICAgUHlPYmplY3QgKm9wYXRoOwotICAgIGNoYXIgKmZpbGVuYW1lOwotICAgIGludCBtb2RlID0gMDYwMDsKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBpbnQgbW9kZSA9IDA2NjY7CiAgICAgaW50IGRldmljZSA9IDA7Ci0gICAgaW50IHJlczsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mfGlpOm1rbm9kIiwgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZtb2RlLCAmZGV2aWNlKSkKKyAgICBpbnQgZGlyX2ZkID0gREVGQVVMVF9ESVJfRkQ7CisgICAgaW50IHJlc3VsdDsKKyAgICBQeU9iamVjdCAqcmV0dXJuX3ZhbHVlID0gTlVMTDsKKyAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsICJtb2RlIiwgImRldmljZSIsICJkaXJfZmQiLCBOVUxMfTsKKworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJnxpaSRPJjpta25vZCIsIGtleXdvcmRzLAorICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgsCisgICAgICAgICZtb2RlLCAmZGV2aWNlLAorI2lmZGVmIEhBVkVfTUtOT0RBVAorICAgICAgICBkaXJfZmRfY29udmVydGVyLCAmZGlyX2ZkCisjZWxzZQorICAgICAgICBkaXJfZmRfdW5hdmFpbGFibGUsICZkaXJfZmQKKyNlbmRpZgorICAgICAgICApKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBmaWxlbmFtZSA9IFB5Qnl0ZXNfQVNfU1RSSU5HKG9wYXRoKTsKKwogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXMgPSBta25vZChmaWxlbmFtZSwgbW9kZSwgZGV2aWNlKTsKKyNpZmRlZiBIQVZFX01LTk9EQVQKKyAgICBpZiAoZGlyX2ZkICE9IERFRkFVTFRfRElSX0ZEKQorICAgICAgICByZXN1bHQgPSBta25vZGF0KGRpcl9mZCwgcGF0aC5uYXJyb3csIG1vZGUsIGRldmljZSk7CisgICAgZWxzZQorI2VuZGlmCisgICAgICAgIHJlc3VsdCA9IG1rbm9kKHBhdGgubmFycm93LCBtb2RlLCBkZXZpY2UpOwogICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgUHlfREVDUkVGKG9wYXRoKTsKLSAgICBpZiAocmVzIDwgMCkKLSAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisKKyAgICBpZiAocmVzdWx0IDwgMCkgeworICAgICAgICByZXR1cm5fdmFsdWUgPSBwb3NpeF9lcnJvcigpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgcmV0dXJuX3ZhbHVlID0gUHlfTm9uZTsKICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7CisKK2V4aXQ6CisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICByZXR1cm4gcmV0dXJuX3ZhbHVlOwogfQogI2VuZGlmCiAKQEAgLTYwMDksMTggKzg1ODEsOCBAQAogICAgIGludCBmZDsKICAgICBvZmZfdCBsZW5ndGg7CiAgICAgaW50IHJlczsKLSAgICBQeU9iamVjdCAqbGVub2JqOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJpTzpmdHJ1bmNhdGUiLCAmZmQsICZsZW5vYmopKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotI2lmICFkZWZpbmVkKEhBVkVfTEFSR0VGSUxFX1NVUFBPUlQpCi0gICAgbGVuZ3RoID0gUHlMb25nX0FzTG9uZyhsZW5vYmopOwotI2Vsc2UKLSAgICBsZW5ndGggPSBQeUxvbmdfQ2hlY2sobGVub2JqKSA/Ci0gICAgICAgIFB5TG9uZ19Bc0xvbmdMb25nKGxlbm9iaikgOiBQeUxvbmdfQXNMb25nKGxlbm9iaik7Ci0jZW5kaWYKLSAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImlPJjpmdHJ1bmNhdGUiLCAmZmQsIF9wYXJzZV9vZmZfdCwgJmxlbmd0aCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwpAQCAtNjAzMyw2ICs4NTk1LDEwOSBAQAogfQogI2VuZGlmCiAKKyNpZmRlZiBIQVZFX1RSVU5DQVRFCitQeURvY19TVFJWQVIocG9zaXhfdHJ1bmNhdGVfX2RvY19fLAorInRydW5jYXRlKHBhdGgsIGxlbmd0aClcblxuXAorVHJ1bmNhdGUgdGhlIGZpbGUgZ2l2ZW4gYnkgcGF0aCB0byBsZW5ndGggYnl0ZXMuXG5cCitPbiBzb21lIHBsYXRmb3JtcywgcGF0aCBtYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuXG5cCisgIElmIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgcmFpc2VzIGFuIGV4Y2VwdGlvbi4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X3RydW5jYXRlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBvZmZfdCBsZW5ndGg7CisgICAgaW50IHJlczsKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBzdGF0aWMgY2hhciAqa2V5d29yZHNbXSA9IHsicGF0aCIsICJsZW5ndGgiLCBOVUxMfTsKKworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyNpZmRlZiBIQVZFX0ZUUlVOQ0FURQorICAgIHBhdGguYWxsb3dfZmQgPSAxOworI2VuZGlmCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyZPJjp0cnVuY2F0ZSIsIGtleXdvcmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGFyc2Vfb2ZmX3QsICZsZW5ndGgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyNpZmRlZiBIQVZFX0ZUUlVOQ0FURQorICAgIGlmIChwYXRoLmZkICE9IC0xKQorICAgICAgICByZXMgPSBmdHJ1bmNhdGUocGF0aC5mZCwgbGVuZ3RoKTsKKyAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgcmVzID0gdHJ1bmNhdGUocGF0aC5uYXJyb3csIGxlbmd0aCk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICBpZiAocmVzIDwgMCkKKyAgICAgICAgcmVzdWx0ID0gcGF0aF9wb3NpeF9lcnJvcigidHJ1bmNhdGUiLCAmcGF0aCk7CisgICAgZWxzZSB7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgcmVzdWx0ID0gUHlfTm9uZTsKKyAgICB9CisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1BPU0lYX0ZBTExPQ0FURQorUHlEb2NfU1RSVkFSKHBvc2l4X3Bvc2l4X2ZhbGxvY2F0ZV9fZG9jX18sCisicG9zaXhfZmFsbG9jYXRlKGZkLCBvZmZzZXQsIGxlbilcblxuXAorRW5zdXJlcyB0aGF0IGVub3VnaCBkaXNrIHNwYWNlIGlzIGFsbG9jYXRlZCBmb3IgdGhlIGZpbGUgc3BlY2lmaWVkIGJ5IGZkXG5cCitzdGFydGluZyBmcm9tIG9mZnNldCBhbmQgY29udGludWluZyBmb3IgbGVuIGJ5dGVzLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfcG9zaXhfZmFsbG9jYXRlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBvZmZfdCBsZW4sIG9mZnNldDsKKyAgICBpbnQgcmVzLCBmZDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaU8mTyY6cG9zaXhfZmFsbG9jYXRlIiwKKyAgICAgICAgICAgICZmZCwgX3BhcnNlX29mZl90LCAmb2Zmc2V0LCBfcGFyc2Vfb2ZmX3QsICZsZW4pKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICByZXMgPSBwb3NpeF9mYWxsb2NhdGUoZmQsIG9mZnNldCwgbGVuKTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworICAgIGlmIChyZXMgIT0gMCkgeworICAgICAgICBlcnJubyA9IHJlczsKKyAgICAgICAgcmV0dXJuIHBvc2l4X2Vycm9yKCk7CisgICAgfQorICAgIFB5X1JFVFVSTl9OT05FOworfQorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1BPU0lYX0ZBRFZJU0UKK1B5RG9jX1NUUlZBUihwb3NpeF9wb3NpeF9mYWR2aXNlX19kb2NfXywKKyJwb3NpeF9mYWR2aXNlKGZkLCBvZmZzZXQsIGxlbiwgYWR2aWNlKVxuXG5cCitBbm5vdW5jZXMgYW4gaW50ZW50aW9uIHRvIGFjY2VzcyBkYXRhIGluIGEgc3BlY2lmaWMgcGF0dGVybiB0aHVzIGFsbG93aW5nXG5cCit0aGUga2VybmVsIHRvIG1ha2Ugb3B0aW1pemF0aW9ucy5cblwKK1RoZSBhZHZpY2UgYXBwbGllcyB0byB0aGUgcmVnaW9uIG9mIHRoZSBmaWxlIHNwZWNpZmllZCBieSBmZCBzdGFydGluZyBhdFxuXAorb2Zmc2V0IGFuZCBjb250aW51aW5nIGZvciBsZW4gYnl0ZXMuXG5cCithZHZpY2UgaXMgb25lIG9mIFBPU0lYX0ZBRFZfTk9STUFMLCBQT1NJWF9GQURWX1NFUVVFTlRJQUwsXG5cCitQT1NJWF9GQURWX1JBTkRPTSwgUE9TSVhfRkFEVl9OT1JFVVNFLCBQT1NJWF9GQURWX1dJTExORUVEIG9yXG5cCitQT1NJWF9GQURWX0RPTlRORUVELiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfcG9zaXhfZmFkdmlzZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgb2ZmX3QgbGVuLCBvZmZzZXQ7CisgICAgaW50IHJlcywgZmQsIGFkdmljZTsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaU8mTyZpOnBvc2l4X2ZhZHZpc2UiLAorICAgICAgICAgICAgJmZkLCBfcGFyc2Vfb2ZmX3QsICZvZmZzZXQsIF9wYXJzZV9vZmZfdCwgJmxlbiwgJmFkdmljZSkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIHJlcyA9IHBvc2l4X2ZhZHZpc2UoZmQsIG9mZnNldCwgbGVuLCBhZHZpY2UpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgaWYgKHJlcyAhPSAwKSB7CisgICAgICAgIGVycm5vID0gcmVzOworICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKKyAgICB9CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisjZW5kaWYKKwogI2lmZGVmIEhBVkVfUFVURU5WCiBQeURvY19TVFJWQVIocG9zaXhfcHV0ZW52X19kb2NfXywKICJwdXRlbnYoa2V5LCB2YWx1ZSlcblxuXApAQCAtNjA0NSwyMyArODcxMCw0MCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHBvc2l4X3B1dGVudihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CisgICAgUHlPYmplY3QgKm5ld3N0ciA9IE5VTEw7CiAjaWZkZWYgTVNfV0lORE9XUwotICAgIHdjaGFyX3QgKnMxLCAqczI7CisgICAgUHlPYmplY3QgKm9zMSwgKm9zMjsKICAgICB3Y2hhcl90ICpuZXdlbnY7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIlVVOnB1dGVudiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICZvczEsICZvczIpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIG5ld3N0ciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlVT0lVSIsIG9zMSwgb3MyKTsKKyAgICBpZiAobmV3c3RyID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgaWYgKF9NQVhfRU5WIDwgUHlVbmljb2RlX0dFVF9MRU5HVEgobmV3c3RyKSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJ0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbG9uZ2VyIHRoYW4gJXUgY2hhcmFjdGVycyIsCisgICAgICAgICAgICAgICAgICAgICBfTUFYX0VOVik7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgbmV3ZW52ID0gUHlVbmljb2RlX0FzVW5pY29kZShuZXdzdHIpOworICAgIGlmIChuZXdlbnYgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICBpZiAoX3dwdXRlbnYobmV3ZW52KSkgeworICAgICAgICBwb3NpeF9lcnJvcigpOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KICNlbHNlCiAgICAgUHlPYmplY3QgKm9zMSwgKm9zMjsKICAgICBjaGFyICpzMSwgKnMyOwogICAgIGNoYXIgKm5ld2VudjsKLSNlbmRpZgotICAgIFB5T2JqZWN0ICpuZXdzdHIgPSBOVUxMOwotICAgIHNpemVfdCBsZW47CiAKLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJ1dTpwdXRlbnYiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmczEsICZzMikpCi0gICAgICAgIHJldHVybiBOVUxMOwotI2Vsc2UKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIk8mTyY6cHV0ZW52IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3MxLApAQCAtNjA2OSw1OCArODc1MSwxNCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBzMSA9IFB5Qnl0ZXNfQXNTdHJpbmcob3MxKTsKICAgICBzMiA9IFB5Qnl0ZXNfQXNTdHJpbmcob3MyKTsKLSNlbmRpZgogCi0jaWYgZGVmaW5lZChQWU9TX09TMikKLSAgICBpZiAoc3RyaWNtcChzMSwgIkJFR0lOTElCUEFUSCIpID09IDApIHsKLSAgICAgICAgQVBJUkVUIHJjOwotCi0gICAgICAgIHJjID0gRG9zU2V0RXh0TElCUEFUSChzMiwgQkVHSU5fTElCUEFUSCk7Ci0gICAgICAgIGlmIChyYyAhPSBOT19FUlJPUikgewotICAgICAgICAgICAgb3MyX2Vycm9yKHJjKTsKLSAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIH0KLQotICAgIH0gZWxzZSBpZiAoc3RyaWNtcChzMSwgIkVORExJQlBBVEgiKSA9PSAwKSB7Ci0gICAgICAgIEFQSVJFVCByYzsKLQotICAgICAgICByYyA9IERvc1NldEV4dExJQlBBVEgoczIsIEVORF9MSUJQQVRIKTsKLSAgICAgICAgaWYgKHJjICE9IE5PX0VSUk9SKSB7Ci0gICAgICAgICAgICBvczJfZXJyb3IocmMpOwotICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0jZW5kaWYKLSAgICAvKiBYWFggVGhpcyBjYW4gbGVhayBtZW1vcnkgLS0gbm90IGVhc3kgdG8gZml4IDotKCAqLwotICAgIC8qIGxlbiBpbmNsdWRlcyBzcGFjZSBmb3IgYSB0cmFpbGluZyBcMDsgdGhlIHNpemUgYXJnIHRvCi0gICAgICAgUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSBkb2VzIG5vdCBjb3VudCB0aGF0ICovCi0jaWZkZWYgTVNfV0lORE9XUwotICAgIGxlbiA9IHdjc2xlbihzMSkgKyB3Y3NsZW4oczIpICsgMjsKLSAgICBpZiAoX01BWF9FTlYgPCAobGVuIC0gMSkpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAidGhlIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIGxvbmdlciB0aGFuICV1IGNoYXJhY3RlcnMiLAotICAgICAgICAgICAgICAgICAgICAgX01BWF9FTlYpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLSAgICBuZXdzdHIgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgKGludClsZW4gLSAxKTsKLSNlbHNlCi0gICAgbGVuID0gUHlCeXRlc19HRVRfU0laRShvczEpICsgUHlCeXRlc19HRVRfU0laRShvczIpICsgMjsKLSAgICBuZXdzdHIgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIChpbnQpbGVuIC0gMSk7Ci0jZW5kaWYKKyAgICBuZXdzdHIgPSBQeUJ5dGVzX0Zyb21Gb3JtYXQoIiVzPSVzIiwgczEsIHMyKTsKICAgICBpZiAobmV3c3RyID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKICAgICAgICAgZ290byBlcnJvcjsKICAgICB9Ci0jaWZkZWYgTVNfV0lORE9XUwotICAgIG5ld2VudiA9IFB5VW5pY29kZV9Bc1VuaWNvZGUobmV3c3RyKTsKLSAgICBfc253cHJpbnRmKG5ld2VudiwgbGVuLCBMIiVzPSVzIiwgczEsIHMyKTsKLSAgICBpZiAoX3dwdXRlbnYobmV3ZW52KSkgewotICAgICAgICBwb3NpeF9lcnJvcigpOwotICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLSNlbHNlCisKICAgICBuZXdlbnYgPSBQeUJ5dGVzX0FTX1NUUklORyhuZXdzdHIpOwotICAgIFB5T1Nfc25wcmludGYobmV3ZW52LCBsZW4sICIlcz0lcyIsIHMxLCBzMik7CiAgICAgaWYgKHB1dGVudihuZXdlbnYpKSB7CiAgICAgICAgIHBvc2l4X2Vycm9yKCk7CiAgICAgICAgIGdvdG8gZXJyb3I7CkBAIC02MTMxLDEzICs4NzY5LDcgQEAKICAgICAgKiB0aGlzIHdpbGwgY2F1c2UgcHJldmlvdXMgdmFsdWUgdG8gYmUgY29sbGVjdGVkLiAgVGhpcyBoYXMgdG8KICAgICAgKiBoYXBwZW4gYWZ0ZXIgdGhlIHJlYWwgcHV0ZW52KCkgY2FsbCBiZWNhdXNlIHRoZSBvbGQgdmFsdWUKICAgICAgKiB3YXMgc3RpbGwgYWNjZXNzaWJsZSB1bnRpbCB0aGVuLiAqLwotICAgIGlmIChQeURpY3RfU2V0SXRlbShwb3NpeF9wdXRlbnZfZ2FyYmFnZSwKLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgICAgICAgICAgICAgICAgICAgIFB5VHVwbGVfR0VUX0lURU0oYXJncywgMCksCi0jZWxzZQotICAgICAgICAgICAgICAgICAgICAgICBvczEsCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgbmV3c3RyKSkgeworICAgIGlmIChQeURpY3RfU2V0SXRlbShwb3NpeF9wdXRlbnZfZ2FyYmFnZSwgb3MxLCBuZXdzdHIpKSB7CiAgICAgICAgIC8qIHJlYWxseSBub3QgbXVjaCB3ZSBjYW4gZG87IGp1c3QgbGVhayAqLwogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgIH0KQEAgLTYxNDUsMTAgKzg3NzcsNiBAQAogICAgICAgICBQeV9ERUNSRUYobmV3c3RyKTsKICAgICB9CiAKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKQotICAgIH0KLSNlbmRpZgotCiAjaWZuZGVmIE1TX1dJTkRPV1MKICAgICBQeV9ERUNSRUYob3MxKTsKICAgICBQeV9ERUNSRUYob3MyKTsKQEAgLTYxNzMsMjMgKzg4MDEsMjIgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBwb3NpeF91bnNldGVudihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgUHlPYmplY3QgKm9zMTsKLSAgICBjaGFyICpzMTsKKyAgICBQeU9iamVjdCAqbmFtZTsKICNpZm5kZWYgSEFWRV9CUk9LRU5fVU5TRVRFTlYKICAgICBpbnQgZXJyOwogI2VuZGlmCiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mOnVuc2V0ZW52IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmb3MxKSkKKworICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsICZuYW1lKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgczEgPSBQeUJ5dGVzX0FzU3RyaW5nKG9zMSk7CiAKICNpZmRlZiBIQVZFX0JST0tFTl9VTlNFVEVOVgotICAgIHVuc2V0ZW52KHMxKTsKKyAgICB1bnNldGVudihQeUJ5dGVzX0FTX1NUUklORyhuYW1lKSk7CiAjZWxzZQotICAgIGVyciA9IHVuc2V0ZW52KHMxKTsKKyAgICBlcnIgPSB1bnNldGVudihQeUJ5dGVzX0FTX1NUUklORyhuYW1lKSk7CiAgICAgaWYgKGVycikgewotICAgICAgICBQeV9ERUNSRUYob3MxKTsKKyAgICAgICAgUHlfREVDUkVGKG5hbWUpOwogICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3IoKTsKICAgICB9CiAjZW5kaWYKQEAgLTYxOTksMTIgKzg4MjYsMTEgQEAKICAgICAgKiBoYXBwZW4gYWZ0ZXIgdGhlIHJlYWwgdW5zZXRlbnYoKSBjYWxsIGJlY2F1c2UgdGhlCiAgICAgICogb2xkIHZhbHVlIHdhcyBzdGlsbCBhY2Nlc3NpYmxlIHVudGlsIHRoZW4uCiAgICAgICovCi0gICAgaWYgKFB5RGljdF9EZWxJdGVtKHBvc2l4X3B1dGVudl9nYXJiYWdlLCBvczEpKSB7CisgICAgaWYgKFB5RGljdF9EZWxJdGVtKHBvc2l4X3B1dGVudl9nYXJiYWdlLCBuYW1lKSkgewogICAgICAgICAvKiByZWFsbHkgbm90IG11Y2ggd2UgY2FuIGRvOyBqdXN0IGxlYWsgKi8KICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICB9Ci0KLSAgICBQeV9ERUNSRUYob3MxKTsKKyAgICBQeV9ERUNSRUYobmFtZSk7CiAgICAgUHlfUkVUVVJOX05PTkU7CiB9CiAjZW5kaWYgLyogdW5zZXRlbnYgKi8KQEAgLTYyMjYsNyArODg1Miw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAic3RyZXJyb3IoKSBhcmd1bWVudCBvdXQgb2YgcmFuZ2UiKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhtZXNzYWdlKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0RlY29kZUxvY2FsZShtZXNzYWdlLCAic3Vycm9nYXRlZXNjYXBlIik7CiB9CiAKIApAQCAtNjQzMiw3ICs5MDU4LDggQEAKIAogUHlEb2NfU1RSVkFSKHBvc2l4X2ZzdGF0dmZzX19kb2NfXywKICJmc3RhdHZmcyhmZCkgLT4gc3RhdHZmcyByZXN1bHRcblxuXAotUGVyZm9ybSBhbiBmc3RhdHZmcyBzeXN0ZW0gY2FsbCBvbiB0aGUgZ2l2ZW4gZmQuIik7CitQZXJmb3JtIGFuIGZzdGF0dmZzIHN5c3RlbSBjYWxsIG9uIHRoZSBnaXZlbiBmZC5cblwKK0VxdWl2YWxlbnQgdG8gc3RhdHZmcyhmZCkuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBwb3NpeF9mc3RhdHZmcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCkBAIC02NDU3LDI3ICs5MDg0LDg3IEBACiAjaW5jbHVkZSA8c3lzL3N0YXR2ZnMuaD4KIAogUHlEb2NfU1RSVkFSKHBvc2l4X3N0YXR2ZnNfX2RvY19fLAotInN0YXR2ZnMocGF0aCkgLT4gc3RhdHZmcyByZXN1bHRcblxuXAotUGVyZm9ybSBhIHN0YXR2ZnMgc3lzdGVtIGNhbGwgb24gdGhlIGdpdmVuIHBhdGguIik7Cisic3RhdHZmcyhwYXRoKVxuXG5cCitQZXJmb3JtIGEgc3RhdHZmcyBzeXN0ZW0gY2FsbCBvbiB0aGUgZ2l2ZW4gcGF0aC5cblwKK1xuXAorcGF0aCBtYXkgYWx3YXlzIGJlIHNwZWNpZmllZCBhcyBhIHN0cmluZy5cblwKK09uIHNvbWUgcGxhdGZvcm1zLCBwYXRoIG1heSBhbHNvIGJlIHNwZWNpZmllZCBhcyBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci5cblwKKyAgSWYgdGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVuYXZhaWxhYmxlLCB1c2luZyBpdCByYWlzZXMgYW4gZXhjZXB0aW9uLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfc3RhdHZmcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitwb3NpeF9zdGF0dmZzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKLSAgICBjaGFyICpwYXRoOwotICAgIGludCByZXM7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCBOVUxMfTsKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBpbnQgcmVzdWx0OworICAgIFB5T2JqZWN0ICpyZXR1cm5fdmFsdWUgPSBOVUxMOwogICAgIHN0cnVjdCBzdGF0dmZzIHN0OwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiczpzdGF0dmZzIiwgJnBhdGgpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgcmVzID0gc3RhdHZmcyhwYXRoLCAmc3QpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgaWYgKHJlcyAhPSAwKQotICAgICAgICByZXR1cm4gcG9zaXhfZXJyb3Jfd2l0aF9maWxlbmFtZShwYXRoKTsKIAotICAgIHJldHVybiBfcHlzdGF0dmZzX2Zyb21zdHJ1Y3RzdGF0dmZzKHN0KTsKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisjaWZkZWYgSEFWRV9GU1RBVFZGUworICAgIHBhdGguYWxsb3dfZmQgPSAxOworI2VuZGlmCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiTyY6c3RhdHZmcyIsIGtleXdvcmRzLAorICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgKKyAgICAgICAgKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisjaWZkZWYgSEFWRV9GU1RBVFZGUworICAgIGlmIChwYXRoLmZkICE9IC0xKSB7CisjaWZkZWYgX19BUFBMRV9fCisgICAgICAgIC8qIGhhbmRsZSB3ZWFrLWxpbmtpbmcgb24gTWFjIE9TIFggMTAuMyAqLworICAgICAgICBpZiAoZnN0YXR2ZnMgPT0gTlVMTCkgeworICAgICAgICAgICAgZmRfc3BlY2lmaWVkKCJzdGF0dmZzIiwgcGF0aC5mZCk7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICByZXN1bHQgPSBmc3RhdHZmcyhwYXRoLmZkLCAmc3QpOworICAgIH0KKyAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgcmVzdWx0ID0gc3RhdHZmcyhwYXRoLm5hcnJvdywgJnN0KTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICByZXR1cm5fdmFsdWUgPSBwYXRoX3Bvc2l4X2Vycm9yKCJzdGF0dmZzIiwgJnBhdGgpOworICAgICAgICBnb3RvIGV4aXQ7CisgICAgfQorCisgICAgcmV0dXJuX3ZhbHVlID0gX3B5c3RhdHZmc19mcm9tc3RydWN0c3RhdHZmcyhzdCk7CisKK2V4aXQ6CisgICAgcGF0aF9jbGVhbnVwKCZwYXRoKTsKKyAgICByZXR1cm4gcmV0dXJuX3ZhbHVlOwogfQogI2VuZGlmIC8qIEhBVkVfU1RBVFZGUyAqLwogCisjaWZkZWYgTVNfV0lORE9XUworUHlEb2NfU1RSVkFSKHdpbjMyX19nZXRkaXNrdXNhZ2VfX2RvY19fLAorIl9nZXRkaXNrdXNhZ2UocGF0aCkgLT4gKHRvdGFsLCBmcmVlKVxuXG5cCitSZXR1cm4gZGlzayB1c2FnZSBzdGF0aXN0aWNzIGFib3V0IHRoZSBnaXZlbiBwYXRoIGFzICh0b3RhbCwgZnJlZSkgdHVwbGUuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCit3aW4zMl9fZ2V0ZGlza3VzYWdlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBCT09MIHJldHZhbDsKKyAgICBVTEFSR0VfSU5URUdFUiBfLCB0b3RhbCwgZnJlZTsKKyAgICBjb25zdCB3Y2hhcl90ICpwYXRoOworCisgICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAidSIsICZwYXRoKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgcmV0dmFsID0gR2V0RGlza0ZyZWVTcGFjZUV4VyhwYXRoLCAmXywgJnRvdGFsLCAmZnJlZSk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICBpZiAocmV0dmFsID09IDApCisgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKKworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoTEwpIiwgdG90YWwuUXVhZFBhcnQsIGZyZWUuUXVhZFBhcnQpOworfQorI2VuZGlmCisKKwogLyogVGhpcyBpcyB1c2VkIGZvciBmcGF0aGNvbmYoKSwgcGF0aGNvbmYoKSwgY29uZnN0cigpIGFuZCBzeXNjb25mKCkuCiAgKiBJdCBtYXBzIHN0cmluZ3MgcmVwcmVzZW50aW5nIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgbmFtZXMgdG8KICAqIGludGVnZXIgdmFsdWVzLCBhbGxvd2luZyB0aG9zZSBmdW5jdGlvbnMgdG8gYmUgY2FsbGVkIHdpdGggdGhlCkBAIC02NjY0LDMxICs5MzUxLDQ1IEBACiBQeURvY19TVFJWQVIocG9zaXhfcGF0aGNvbmZfX2RvY19fLAogInBhdGhjb25mKHBhdGgsIG5hbWUpIC0+IGludGVnZXJcblxuXAogUmV0dXJuIHRoZSBjb25maWd1cmF0aW9uIGxpbWl0IG5hbWUgZm9yIHRoZSBmaWxlIG9yIGRpcmVjdG9yeSBwYXRoLlxuXAotSWYgdGhlcmUgaXMgbm8gbGltaXQsIHJldHVybiAtMS4iKTsKK0lmIHRoZXJlIGlzIG5vIGxpbWl0LCByZXR1cm4gLTEuXG5cCitPbiBzb21lIHBsYXRmb3JtcywgcGF0aCBtYXkgYWxzbyBiZSBzcGVjaWZpZWQgYXMgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuXG5cCisgIElmIHRoaXMgZnVuY3Rpb25hbGl0eSBpcyB1bmF2YWlsYWJsZSwgdXNpbmcgaXQgcmFpc2VzIGFuIGV4Y2VwdGlvbi4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXBvc2l4X3BhdGhjb25mKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3Bvc2l4X3BhdGhjb25mKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKKyAgICBwYXRoX3QgcGF0aDsKICAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKICAgICBpbnQgbmFtZTsKLSAgICBjaGFyICpwYXRoOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgIm5hbWUiLCBOVUxMfTsKIAotICAgIGlmIChQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzTyY6cGF0aGNvbmYiLCAmcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb252X3BhdGhfY29uZm5hbWUsICZuYW1lKSkgeworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyNpZmRlZiBIQVZFX0ZQQVRIQ09ORgorICAgIHBhdGguYWxsb3dfZmQgPSAxOworI2VuZGlmCisgICAgaWYgKFB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJk8mOnBhdGhjb25mIiwga2V5d29yZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2NvbnZlcnRlciwgJnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252X3BhdGhfY29uZm5hbWUsICZuYW1lKSkgewogICAgIGxvbmcgbGltaXQ7CiAKICAgICBlcnJubyA9IDA7Ci0gICAgbGltaXQgPSBwYXRoY29uZihwYXRoLCBuYW1lKTsKKyNpZmRlZiBIQVZFX0ZQQVRIQ09ORgorICAgIGlmIChwYXRoLmZkICE9IC0xKQorICAgICAgICBsaW1pdCA9IGZwYXRoY29uZihwYXRoLmZkLCBuYW1lKTsKKyAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgbGltaXQgPSBwYXRoY29uZihwYXRoLm5hcnJvdywgbmFtZSk7CiAgICAgaWYgKGxpbWl0ID09IC0xICYmIGVycm5vICE9IDApIHsKICAgICAgICAgaWYgKGVycm5vID09IEVJTlZBTCkKICAgICAgICAgICAgIC8qIGNvdWxkIGJlIGEgcGF0aCBvciBuYW1lIHByb2JsZW0gKi8KICAgICAgICAgICAgIHBvc2l4X2Vycm9yKCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHBvc2l4X2Vycm9yX3dpdGhfZmlsZW5hbWUocGF0aCk7CisgICAgICAgICAgICByZXN1bHQgPSBwYXRoX3Bvc2l4X2Vycm9yKCJwYXRoY29uZiIsICZwYXRoKTsKICAgICB9CiAgICAgZWxzZQogICAgICAgICByZXN1bHQgPSBQeUxvbmdfRnJvbUxvbmcobGltaXQpOwogICAgIH0KKyAgICBwYXRoX2NsZWFudXAoJnBhdGgpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAjZW5kaWYKQEAgLTc1NDAsOSArMTAyNDEsMTAgQEAKICAgICBQeU9iamVjdCAqb2ZpbGVwYXRoOwogICAgIGNoYXIgKmZpbGVwYXRoOwogICAgIGNoYXIgKm9wZXJhdGlvbiA9IE5VTEw7CisgICAgd2NoYXJfdCAqd3BhdGgsICp3b3BlcmF0aW9uOwogICAgIEhJTlNUQU5DRSByYzsKIAotICAgIFB5T2JqZWN0ICp1bmlwYXRoLCAqd29wZXJhdGlvbiA9IE5VTEw7CisgICAgUHlPYmplY3QgKnVuaXBhdGgsICp1b3BlcmF0aW9uID0gTlVMTDsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlV8czpzdGFydGZpbGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmdW5pcGF0aCwgJm9wZXJhdGlvbikpIHsKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKQEAgLTc1NTAsMjYgKzEwMjUyLDM1IEBACiAgICAgfQogCiAgICAgaWYgKG9wZXJhdGlvbikgewotICAgICAgICB3b3BlcmF0aW9uID0gUHlVbmljb2RlX0RlY29kZUFTQ0lJKG9wZXJhdGlvbiwKKyAgICAgICAgdW9wZXJhdGlvbiA9IFB5VW5pY29kZV9EZWNvZGVBU0NJSShvcGVyYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKG9wZXJhdGlvbiksIE5VTEwpOwotICAgICAgICBpZiAoIXdvcGVyYXRpb24pIHsKKyAgICAgICAgaWYgKCF1b3BlcmF0aW9uKSB7CiAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICAgICAgb3BlcmF0aW9uID0gTlVMTDsKICAgICAgICAgICAgIGdvdG8gbm9ybWFsOwogICAgICAgICB9CiAgICAgfQogCisgICAgd3BhdGggPSBQeVVuaWNvZGVfQXNVbmljb2RlKHVuaXBhdGgpOworICAgIGlmICh3cGF0aCA9PSBOVUxMKQorICAgICAgICBnb3RvIG5vcm1hbDsKKyAgICBpZiAodW9wZXJhdGlvbikgeworICAgICAgICB3b3BlcmF0aW9uID0gUHlVbmljb2RlX0FzVW5pY29kZSh1b3BlcmF0aW9uKTsKKyAgICAgICAgaWYgKHdvcGVyYXRpb24gPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gbm9ybWFsOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIHdvcGVyYXRpb24gPSBOVUxMOworCiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJjID0gU2hlbGxFeGVjdXRlVygoSFdORCkwLCB3b3BlcmF0aW9uID8gUHlVbmljb2RlX0FTX1VOSUNPREUod29wZXJhdGlvbikgOiAwLAotICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmlwYXRoKSwKLSAgICAgICAgTlVMTCwgTlVMTCwgU1dfU0hPV05PUk1BTCk7CisgICAgcmMgPSBTaGVsbEV4ZWN1dGVXKChIV05EKTAsIHdvcGVyYXRpb24sIHdwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMLCBTV19TSE9XTk9STUFMKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogCi0gICAgUHlfWERFQ1JFRih3b3BlcmF0aW9uKTsKKyAgICBQeV9YREVDUkVGKHVvcGVyYXRpb24pOwogICAgIGlmIChyYyA8PSAoSElOU1RBTkNFKTMyKSB7Ci0gICAgICAgIFB5T2JqZWN0ICplcnJ2YWwgPSB3aW4zMl9lcnJvcl91bmljb2RlKCJzdGFydGZpbGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmlwYXRoKSk7Ci0gICAgICAgIHJldHVybiBlcnJ2YWw7CisgICAgICAgIHdpbjMyX2Vycm9yX29iamVjdCgic3RhcnRmaWxlIiwgdW5pcGF0aCk7CisgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgcmV0dXJuIFB5X05vbmU7CkBAIC03NTc5LDYgKzEwMjkwLDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJm9maWxlcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wZXJhdGlvbikpCiAgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmICh3aW4zMl93YXJuX2J5dGVzX2FwaSgpKSB7CisgICAgICAgIFB5X0RFQ1JFRihvZmlsZXBhdGgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAgICAgZmlsZXBhdGggPSBQeUJ5dGVzX0FzU3RyaW5nKG9maWxlcGF0aCk7CiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgIHJjID0gU2hlbGxFeGVjdXRlKChIV05EKTAsIG9wZXJhdGlvbiwgZmlsZXBhdGgsCkBAIC03NjIzLDYyICsxMDMzOCwxMSBAQAogZGV2aWNlX2VuY29kaW5nKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBpbnQgZmQ7CisKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImk6ZGV2aWNlX2VuY29kaW5nIiwgJmZkKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKCFfUHlWZXJpZnlfZmQoZmQpIHx8ICFpc2F0dHkoZmQpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICAgICAgcmV0dXJuIFB5X05vbmU7Ci0gICAgfQotI2lmIGRlZmluZWQoTVNfV0lORE9XUykgfHwgZGVmaW5lZChNU19XSU42NCkKLSAgICBpZiAoZmQgPT0gMCkgewotICAgICAgICBjaGFyIGJ1ZlsxMDBdOwotICAgICAgICBzcHJpbnRmKGJ1ZiwgImNwJWQiLCBHZXRDb25zb2xlQ1AoKSk7Ci0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhidWYpOwotICAgIH0KLSAgICBpZiAoZmQgPT0gMSB8fCBmZCA9PSAyKSB7Ci0gICAgICAgIGNoYXIgYnVmWzEwMF07Ci0gICAgICAgIHNwcmludGYoYnVmLCAiY3AlZCIsIEdldENvbnNvbGVPdXRwdXRDUCgpKTsKLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKGJ1Zik7Ci0gICAgfQotI2VsaWYgZGVmaW5lZChDT0RFU0VUKQotICAgIHsKLSAgICAgICAgY2hhciAqY29kZXNldCA9IG5sX2xhbmdpbmZvKENPREVTRVQpOwotICAgICAgICBpZiAoY29kZXNldCAhPSBOVUxMICYmIGNvZGVzZXRbMF0gIT0gMCkKLSAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhjb2Rlc2V0KTsKLSAgICB9Ci0jZW5kaWYKLSAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgcmV0dXJuIFB5X05vbmU7Ci19CiAKLVB5RG9jX1NUUlZBUihwb3NpeF91cmFuZG9tX19kb2NfXywKLSJ1cmFuZG9tKG4pIC0+IHN0clxuXG5cCi1SZXR1cm4gbiByYW5kb20gYnl0ZXMgc3VpdGFibGUgZm9yIGNyeXB0b2dyYXBoaWMgdXNlLiIpOwotCi1zdGF0aWMgUHlPYmplY3QgKgotcG9zaXhfdXJhbmRvbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgUHlfc3NpemVfdCBzaXplOwotICAgIFB5T2JqZWN0ICpyZXN1bHQ7Ci0gICAgaW50IHJldDsKLQotICAgICAvKiBSZWFkIGFyZ3VtZW50cyAqLwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAibjp1cmFuZG9tIiwgJnNpemUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoc2l6ZSA8IDApCi0gICAgICAgIHJldHVybiBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmVnYXRpdmUgYXJndW1lbnQgbm90IGFsbG93ZWQiKTsKLSAgICByZXN1bHQgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIHNpemUpOwotICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICByZXQgPSBfUHlPU19VUmFuZG9tKFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCksCi0gICAgICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0dFVF9TSVpFKHJlc3VsdCkpOwotICAgIGlmIChyZXQgPT0gLTEpIHsKLSAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBfUHlfZGV2aWNlX2VuY29kaW5nKGZkKTsKIH0KIAogI2lmZGVmIEhBVkVfU0VUUkVTVUlECkBAIC03NzU3LDIxICsxMDQyMSw0NjggQEAKIH0KICNlbmRpZgogCisjaWZkZWYgVVNFX1hBVFRSUworCitQeURvY19TVFJWQVIocG9zaXhfZ2V0eGF0dHJfX2RvY19fLAorImdldHhhdHRyKHBhdGgsIGF0dHJpYnV0ZSwgKiwgZm9sbG93X3N5bWxpbmtzPVRydWUpIC0+IHZhbHVlXG5cblwKK1JldHVybiB0aGUgdmFsdWUgb2YgZXh0ZW5kZWQgYXR0cmlidXRlIGF0dHJpYnV0ZSBvbiBwYXRoLlxuXAorXG5cCitwYXRoIG1heSBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuXG5cCitJZiBmb2xsb3dfc3ltbGlua3MgaXMgRmFsc2UsIGFuZCB0aGUgbGFzdCBlbGVtZW50IG9mIHRoZSBwYXRoIGlzIGEgc3ltYm9saWNcblwKKyAgbGluaywgZ2V0eGF0dHIgd2lsbCBleGFtaW5lIHRoZSBzeW1ib2xpYyBsaW5rIGl0c2VsZiBpbnN0ZWFkIG9mIHRoZSBmaWxlXG5cCisgIHRoZSBsaW5rIHBvaW50cyB0by4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X2dldHhhdHRyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBwYXRoX3QgYXR0cmlidXRlOworICAgIGludCBmb2xsb3dfc3ltbGlua3MgPSAxOworICAgIFB5T2JqZWN0ICpidWZmZXIgPSBOVUxMOworICAgIGludCBpOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgImF0dHJpYnV0ZSIsICJmb2xsb3dfc3ltbGlua3MiLCBOVUxMfTsKKworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBtZW1zZXQoJmF0dHJpYnV0ZSwgMCwgc2l6ZW9mKGF0dHJpYnV0ZSkpOworICAgIHBhdGguYWxsb3dfZmQgPSAxOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8mTyZ8JHA6Z2V0eGF0dHIiLCBrZXl3b3JkcywKKyAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLAorICAgICAgICBwYXRoX2NvbnZlcnRlciwgJmF0dHJpYnV0ZSwKKyAgICAgICAgJmZvbGxvd19zeW1saW5rcykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKGZkX2FuZF9mb2xsb3dfc3ltbGlua3NfaW52YWxpZCgiZ2V0eGF0dHIiLCBwYXRoLmZkLCBmb2xsb3dfc3ltbGlua3MpKQorICAgICAgICBnb3RvIGV4aXQ7CisKKyAgICBmb3IgKGkgPSAwOyA7IGkrKykgeworICAgICAgICB2b2lkICpwdHI7CisgICAgICAgIHNzaXplX3QgcmVzdWx0OworICAgICAgICBzdGF0aWMgUHlfc3NpemVfdCBidWZmZXJfc2l6ZXNbXSA9IHsxMjgsIFhBVFRSX1NJWkVfTUFYLCAwfTsKKyAgICAgICAgUHlfc3NpemVfdCBidWZmZXJfc2l6ZSA9IGJ1ZmZlcl9zaXplc1tpXTsKKyAgICAgICAgaWYgKCFidWZmZXJfc2l6ZSkgeworICAgICAgICAgICAgcGF0aF9lcnJvcigiZ2V0eGF0dHIiLCAmcGF0aCk7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKyAgICAgICAgYnVmZmVyID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBidWZmZXJfc2l6ZSk7CisgICAgICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICBwdHIgPSBQeUJ5dGVzX0FTX1NUUklORyhidWZmZXIpOworCisgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFM7CisgICAgICAgIGlmIChwYXRoLmZkID49IDApCisgICAgICAgICAgICByZXN1bHQgPSBmZ2V0eGF0dHIocGF0aC5mZCwgYXR0cmlidXRlLm5hcnJvdywgcHRyLCBidWZmZXJfc2l6ZSk7CisgICAgICAgIGVsc2UgaWYgKGZvbGxvd19zeW1saW5rcykKKyAgICAgICAgICAgIHJlc3VsdCA9IGdldHhhdHRyKHBhdGgubmFycm93LCBhdHRyaWJ1dGUubmFycm93LCBwdHIsIGJ1ZmZlcl9zaXplKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0ID0gbGdldHhhdHRyKHBhdGgubmFycm93LCBhdHRyaWJ1dGUubmFycm93LCBwdHIsIGJ1ZmZlcl9zaXplKTsKKyAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFM7CisKKyAgICAgICAgaWYgKHJlc3VsdCA8IDApIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihidWZmZXIpOworICAgICAgICAgICAgYnVmZmVyID0gTlVMTDsKKyAgICAgICAgICAgIGlmIChlcnJubyA9PSBFUkFOR0UpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBwYXRoX2Vycm9yKCJnZXR4YXR0ciIsICZwYXRoKTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN1bHQgIT0gYnVmZmVyX3NpemUpIHsKKyAgICAgICAgICAgIC8qIENhbiBvbmx5IHNocmluay4gKi8KKyAgICAgICAgICAgIF9QeUJ5dGVzX1Jlc2l6ZSgmYnVmZmVyLCByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIH0KKworZXhpdDoKKyAgICBwYXRoX2NsZWFudXAoJnBhdGgpOworICAgIHBhdGhfY2xlYW51cCgmYXR0cmlidXRlKTsKKyAgICByZXR1cm4gYnVmZmVyOworfQorCitQeURvY19TVFJWQVIocG9zaXhfc2V0eGF0dHJfX2RvY19fLAorInNldHhhdHRyKHBhdGgsIGF0dHJpYnV0ZSwgdmFsdWUsIGZsYWdzPTAsICosIGZvbGxvd19zeW1saW5rcz1UcnVlKVxuXG5cCitTZXQgZXh0ZW5kZWQgYXR0cmlidXRlIGF0dHJpYnV0ZSBvbiBwYXRoIHRvIHZhbHVlLlxuXAorcGF0aCBtYXkgYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIG9wZW4gZmlsZSBkZXNjcmlwdG9yLlxuXAorSWYgZm9sbG93X3N5bWxpbmtzIGlzIEZhbHNlLCBhbmQgdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUgcGF0aCBpcyBhIHN5bWJvbGljXG5cCisgIGxpbmssIHNldHhhdHRyIHdpbGwgbW9kaWZ5IHRoZSBzeW1ib2xpYyBsaW5rIGl0c2VsZiBpbnN0ZWFkIG9mIHRoZSBmaWxlXG5cCisgIHRoZSBsaW5rIHBvaW50cyB0by4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3Bvc2l4X3NldHhhdHRyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBwYXRoX3QgYXR0cmlidXRlOworICAgIFB5X2J1ZmZlciB2YWx1ZTsKKyAgICBpbnQgZmxhZ3MgPSAwOworICAgIGludCBmb2xsb3dfc3ltbGlua3MgPSAxOworICAgIGludCByZXN1bHQ7CisgICAgUHlPYmplY3QgKnJldHVybl92YWx1ZSA9IE5VTEw7CisgICAgc3RhdGljIGNoYXIgKmtleXdvcmRzW10gPSB7InBhdGgiLCAiYXR0cmlidXRlIiwgInZhbHVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmxhZ3MiLCAiZm9sbG93X3N5bWxpbmtzIiwgTlVMTH07CisKKyAgICBtZW1zZXQoJnBhdGgsIDAsIHNpemVvZihwYXRoKSk7CisgICAgcGF0aC5hbGxvd19mZCA9IDE7CisgICAgbWVtc2V0KCZhdHRyaWJ1dGUsIDAsIHNpemVvZihhdHRyaWJ1dGUpKTsKKyAgICBtZW1zZXQoJnZhbHVlLCAwLCBzaXplb2YodmFsdWUpKTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPJk8meSp8aSRwOnNldHhhdHRyIiwKKyAgICAgICAga2V5d29yZHMsCisgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKKyAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZhdHRyaWJ1dGUsCisgICAgICAgICZ2YWx1ZSwgJmZsYWdzLAorICAgICAgICAmZm9sbG93X3N5bWxpbmtzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoZmRfYW5kX2ZvbGxvd19zeW1saW5rc19pbnZhbGlkKCJzZXR4YXR0ciIsIHBhdGguZmQsIGZvbGxvd19zeW1saW5rcykpCisgICAgICAgIGdvdG8gZXhpdDsKKworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFM7CisgICAgaWYgKHBhdGguZmQgPiAtMSkKKyAgICAgICAgcmVzdWx0ID0gZnNldHhhdHRyKHBhdGguZmQsIGF0dHJpYnV0ZS5uYXJyb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5idWYsIHZhbHVlLmxlbiwgZmxhZ3MpOworICAgIGVsc2UgaWYgKGZvbGxvd19zeW1saW5rcykKKyAgICAgICAgcmVzdWx0ID0gc2V0eGF0dHIocGF0aC5uYXJyb3csIGF0dHJpYnV0ZS5uYXJyb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5idWYsIHZhbHVlLmxlbiwgZmxhZ3MpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gbHNldHhhdHRyKHBhdGgubmFycm93LCBhdHRyaWJ1dGUubmFycm93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUuYnVmLCB2YWx1ZS5sZW4sIGZsYWdzKTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUzsKKworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigic2V0eGF0dHIiLCAmcGF0aCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByZXR1cm5fdmFsdWUgPSBQeV9Ob25lOworICAgIFB5X0lOQ1JFRihyZXR1cm5fdmFsdWUpOworCitleGl0OgorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisgICAgcGF0aF9jbGVhbnVwKCZhdHRyaWJ1dGUpOworICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZhbHVlKTsKKworICAgIHJldHVybiByZXR1cm5fdmFsdWU7Cit9CisKK1B5RG9jX1NUUlZBUihwb3NpeF9yZW1vdmV4YXR0cl9fZG9jX18sCisicmVtb3ZleGF0dHIocGF0aCwgYXR0cmlidXRlLCAqLCBmb2xsb3dfc3ltbGlua3M9VHJ1ZSlcblxuXAorUmVtb3ZlIGV4dGVuZGVkIGF0dHJpYnV0ZSBhdHRyaWJ1dGUgb24gcGF0aC5cblwKK3BhdGggbWF5IGJlIGVpdGhlciBhIHN0cmluZyBvciBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvci5cblwKK0lmIGZvbGxvd19zeW1saW5rcyBpcyBGYWxzZSwgYW5kIHRoZSBsYXN0IGVsZW1lbnQgb2YgdGhlIHBhdGggaXMgYSBzeW1ib2xpY1xuXAorICBsaW5rLCByZW1vdmV4YXR0ciB3aWxsIG1vZGlmeSB0aGUgc3ltYm9saWMgbGluayBpdHNlbGYgaW5zdGVhZCBvZiB0aGUgZmlsZVxuXAorICB0aGUgbGluayBwb2ludHMgdG8uIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitwb3NpeF9yZW1vdmV4YXR0cihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2FyZ3MpCit7CisgICAgcGF0aF90IHBhdGg7CisgICAgcGF0aF90IGF0dHJpYnV0ZTsKKyAgICBpbnQgZm9sbG93X3N5bWxpbmtzID0gMTsKKyAgICBpbnQgcmVzdWx0OworICAgIFB5T2JqZWN0ICpyZXR1cm5fdmFsdWUgPSBOVUxMOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgImF0dHJpYnV0ZSIsICJmb2xsb3dfc3ltbGlua3MiLCBOVUxMfTsKKworICAgIG1lbXNldCgmcGF0aCwgMCwgc2l6ZW9mKHBhdGgpKTsKKyAgICBtZW1zZXQoJmF0dHJpYnV0ZSwgMCwgc2l6ZW9mKGF0dHJpYnV0ZSkpOworICAgIHBhdGguYWxsb3dfZmQgPSAxOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgIk8mTyZ8JHA6cmVtb3ZleGF0dHIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhfY29udmVydGVyLCAmcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoX2NvbnZlcnRlciwgJmF0dHJpYnV0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9sbG93X3N5bWxpbmtzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoZmRfYW5kX2ZvbGxvd19zeW1saW5rc19pbnZhbGlkKCJyZW1vdmV4YXR0ciIsIHBhdGguZmQsIGZvbGxvd19zeW1saW5rcykpCisgICAgICAgIGdvdG8gZXhpdDsKKworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFM7CisgICAgaWYgKHBhdGguZmQgPiAtMSkKKyAgICAgICAgcmVzdWx0ID0gZnJlbW92ZXhhdHRyKHBhdGguZmQsIGF0dHJpYnV0ZS5uYXJyb3cpOworICAgIGVsc2UgaWYgKGZvbGxvd19zeW1saW5rcykKKyAgICAgICAgcmVzdWx0ID0gcmVtb3ZleGF0dHIocGF0aC5uYXJyb3csIGF0dHJpYnV0ZS5uYXJyb3cpOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0ID0gbHJlbW92ZXhhdHRyKHBhdGgubmFycm93LCBhdHRyaWJ1dGUubmFycm93KTsKKyAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUzsKKworICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gcGF0aF9lcnJvcigicmVtb3ZleGF0dHIiLCAmcGF0aCk7CisgICAgICAgIGdvdG8gZXhpdDsKKyAgICB9CisKKyAgICByZXR1cm5fdmFsdWUgPSBQeV9Ob25lOworICAgIFB5X0lOQ1JFRihyZXR1cm5fdmFsdWUpOworCitleGl0OgorICAgIHBhdGhfY2xlYW51cCgmcGF0aCk7CisgICAgcGF0aF9jbGVhbnVwKCZhdHRyaWJ1dGUpOworCisgICAgcmV0dXJuIHJldHVybl92YWx1ZTsKK30KKworUHlEb2NfU1RSVkFSKHBvc2l4X2xpc3R4YXR0cl9fZG9jX18sCisibGlzdHhhdHRyKHBhdGg9Jy4nLCAqLCBmb2xsb3dfc3ltbGlua3M9VHJ1ZSlcblxuXAorUmV0dXJuIGEgbGlzdCBvZiBleHRlbmRlZCBhdHRyaWJ1dGVzIG9uIHBhdGguXG5cCitcblwKK3BhdGggbWF5IGJlIGVpdGhlciBOb25lLCBhIHN0cmluZywgb3IgYW4gb3BlbiBmaWxlIGRlc2NyaXB0b3IuXG5cCitpZiBwYXRoIGlzIE5vbmUsIGxpc3R4YXR0ciB3aWxsIGV4YW1pbmUgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LlxuXAorSWYgZm9sbG93X3N5bWxpbmtzIGlzIEZhbHNlLCBhbmQgdGhlIGxhc3QgZWxlbWVudCBvZiB0aGUgcGF0aCBpcyBhIHN5bWJvbGljXG5cCisgIGxpbmssIGxpc3R4YXR0ciB3aWxsIGV4YW1pbmUgdGhlIHN5bWJvbGljIGxpbmsgaXRzZWxmIGluc3RlYWQgb2YgdGhlIGZpbGVcblwKKyAgdGhlIGxpbmsgcG9pbnRzIHRvLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfbGlzdHhhdHRyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICBwYXRoX3QgcGF0aDsKKyAgICBpbnQgZm9sbG93X3N5bWxpbmtzID0gMTsKKyAgICBQeV9zc2l6ZV90IGk7CisgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CisgICAgY2hhciAqYnVmZmVyID0gTlVMTDsKKyAgICBjaGFyICpuYW1lOworICAgIHN0YXRpYyBjaGFyICprZXl3b3Jkc1tdID0geyJwYXRoIiwgImZvbGxvd19zeW1saW5rcyIsIE5VTEx9OworCisgICAgbWVtc2V0KCZwYXRoLCAwLCBzaXplb2YocGF0aCkpOworICAgIHBhdGguYWxsb3dfZmQgPSAxOworICAgIHBhdGguZmQgPSAtMTsKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJ8TyYkcDpsaXN0eGF0dHIiLCBrZXl3b3JkcywKKyAgICAgICAgcGF0aF9jb252ZXJ0ZXIsICZwYXRoLAorICAgICAgICAmZm9sbG93X3N5bWxpbmtzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoZmRfYW5kX2ZvbGxvd19zeW1saW5rc19pbnZhbGlkKCJsaXN0eGF0dHIiLCBwYXRoLmZkLCBmb2xsb3dfc3ltbGlua3MpKQorICAgICAgICBnb3RvIGV4aXQ7CisKKyAgICBuYW1lID0gcGF0aC5uYXJyb3cgPyBwYXRoLm5hcnJvdyA6ICIuIjsKKyAgICBmb3IgKGkgPSAwOyA7IGkrKykgeworICAgICAgICBjaGFyICpzdGFydCwgKnRyYWNlLCAqZW5kOworICAgICAgICBzc2l6ZV90IGxlbmd0aDsKKyAgICAgICAgc3RhdGljIFB5X3NzaXplX3QgYnVmZmVyX3NpemVzW10gPSB7IDI1NiwgWEFUVFJfTElTVF9NQVgsIDAgfTsKKyAgICAgICAgUHlfc3NpemVfdCBidWZmZXJfc2l6ZSA9IGJ1ZmZlcl9zaXplc1tpXTsKKyAgICAgICAgaWYgKCFidWZmZXJfc2l6ZSkgeworICAgICAgICAgICAgLy8gRVJBTkdFCisgICAgICAgICAgICBwYXRoX2Vycm9yKCJsaXN0eGF0dHIiLCAmcGF0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBidWZmZXIgPSBQeU1lbV9NQUxMT0MoYnVmZmVyX3NpemUpOworICAgICAgICBpZiAoIWJ1ZmZlcikgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUzsKKyAgICAgICAgaWYgKHBhdGguZmQgPiAtMSkKKyAgICAgICAgICAgIGxlbmd0aCA9IGZsaXN0eGF0dHIocGF0aC5mZCwgYnVmZmVyLCBidWZmZXJfc2l6ZSk7CisgICAgICAgIGVsc2UgaWYgKGZvbGxvd19zeW1saW5rcykKKyAgICAgICAgICAgIGxlbmd0aCA9IGxpc3R4YXR0cihuYW1lLCBidWZmZXIsIGJ1ZmZlcl9zaXplKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbGVuZ3RoID0gbGxpc3R4YXR0cihuYW1lLCBidWZmZXIsIGJ1ZmZlcl9zaXplKTsKKyAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFM7CisKKyAgICAgICAgaWYgKGxlbmd0aCA8IDApIHsKKyAgICAgICAgICAgIGlmIChlcnJubyA9PSBFUkFOR0UpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBwYXRoX2Vycm9yKCJsaXN0eGF0dHIiLCAmcGF0aCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHJlc3VsdCA9IFB5TGlzdF9OZXcoMCk7CisgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgIH0KKworICAgICAgICBlbmQgPSBidWZmZXIgKyBsZW5ndGg7CisgICAgICAgIGZvciAodHJhY2UgPSBzdGFydCA9IGJ1ZmZlcjsgdHJhY2UgIT0gZW5kOyB0cmFjZSsrKSB7CisgICAgICAgICAgICBpZiAoISp0cmFjZSkgeworICAgICAgICAgICAgICAgIGludCBlcnJvcjsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqYXR0cmlidXRlID0gUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdEFuZFNpemUoc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlIC0gc3RhcnQpOworICAgICAgICAgICAgICAgIGlmICghYXR0cmlidXRlKSB7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVycm9yID0gUHlMaXN0X0FwcGVuZChyZXN1bHQsIGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGF0dHJpYnV0ZSk7CisgICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXQ7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0YXJ0ID0gdHJhY2UgKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgYnJlYWs7CisgICAgfQorZXhpdDoKKyAgICBwYXRoX2NsZWFudXAoJnBhdGgpOworICAgIGlmIChidWZmZXIpCisgICAgICAgIFB5TWVtX0ZSRUUoYnVmZmVyKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisjZW5kaWYgLyogVVNFX1hBVFRSUyAqLworCisKK1B5RG9jX1NUUlZBUihwb3NpeF91cmFuZG9tX19kb2NfXywKKyJ1cmFuZG9tKG4pIC0+IHN0clxuXG5cCitSZXR1cm4gbiByYW5kb20gYnl0ZXMgc3VpdGFibGUgZm9yIGNyeXB0b2dyYXBoaWMgdXNlLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorcG9zaXhfdXJhbmRvbShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlfc3NpemVfdCBzaXplOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgaW50IHJldDsKKworICAgICAvKiBSZWFkIGFyZ3VtZW50cyAqLworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAibjp1cmFuZG9tIiwgJnNpemUpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoc2l6ZSA8IDApCisgICAgICAgIHJldHVybiBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmVnYXRpdmUgYXJndW1lbnQgbm90IGFsbG93ZWQiKTsKKyAgICByZXN1bHQgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIHNpemUpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICByZXQgPSBfUHlPU19VUmFuZG9tKFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCksCisgICAgICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0dFVF9TSVpFKHJlc3VsdCkpOworICAgIGlmIChyZXQgPT0gLTEpIHsKKyAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvKiBUZXJtaW5hbCBzaXplIHF1ZXJ5aW5nICovCisKK3N0YXRpYyBQeVR5cGVPYmplY3QgVGVybWluYWxTaXplVHlwZTsKKworUHlEb2NfU1RSVkFSKFRlcm1pbmFsU2l6ZV9kb2NzdHJpbmcsCisgICAgIkEgdHVwbGUgb2YgKGNvbHVtbnMsIGxpbmVzKSBmb3IgaG9sZGluZyB0ZXJtaW5hbCB3aW5kb3cgc2l6ZSIpOworCitzdGF0aWMgUHlTdHJ1Y3RTZXF1ZW5jZV9GaWVsZCBUZXJtaW5hbFNpemVfZmllbGRzW10gPSB7CisgICAgeyJjb2x1bW5zIiwgIndpZHRoIG9mIHRoZSB0ZXJtaW5hbCB3aW5kb3cgaW4gY2hhcmFjdGVycyJ9LAorICAgIHsibGluZXMiLCAiaGVpZ2h0IG9mIHRoZSB0ZXJtaW5hbCB3aW5kb3cgaW4gY2hhcmFjdGVycyJ9LAorICAgIHtOVUxMLCBOVUxMfQorfTsKKworc3RhdGljIFB5U3RydWN0U2VxdWVuY2VfRGVzYyBUZXJtaW5hbFNpemVfZGVzYyA9IHsKKyAgICAib3MudGVybWluYWxfc2l6ZSIsCisgICAgVGVybWluYWxTaXplX2RvY3N0cmluZywKKyAgICBUZXJtaW5hbFNpemVfZmllbGRzLAorICAgIDIsCit9OworCisjaWYgZGVmaW5lZChURVJNU0laRV9VU0VfQ09OSU8pIHx8IGRlZmluZWQoVEVSTVNJWkVfVVNFX0lPQ1RMKQorUHlEb2NfU1RSVkFSKHRlcm1zaXplX19kb2NfXywKKyAgICAiUmV0dXJuIHRoZSBzaXplIG9mIHRoZSB0ZXJtaW5hbCB3aW5kb3cgYXMgKGNvbHVtbnMsIGxpbmVzKS5cbiIgICAgICAgIFwKKyAgICAiXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAiVGhlIG9wdGlvbmFsIGFyZ3VtZW50IGZkIChkZWZhdWx0IHN0YW5kYXJkIG91dHB1dCkgc3BlY2lmaWVzXG4iICAgICAgIFwKKyAgICAid2hpY2ggZmlsZSBkZXNjcmlwdG9yIHNob3VsZCBiZSBxdWVyaWVkLlxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAiXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAiSWYgdGhlIGZpbGUgZGVzY3JpcHRvciBpcyBub3QgY29ubmVjdGVkIHRvIGEgdGVybWluYWwsIGFuIE9TRXJyb3JcbiIgIFwKKyAgICAiaXMgdGhyb3duLlxuIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAiXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAiVGhpcyBmdW5jdGlvbiB3aWxsIG9ubHkgYmUgZGVmaW5lZCBpZiBhbiBpbXBsZW1lbnRhdGlvbiBpc1xuIiAgICAgICAgIFwKKyAgICAiYXZhaWxhYmxlIGZvciB0aGlzIHN5c3RlbS5cbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAiXG4iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAic2h1dGlsLmdldF90ZXJtaW5hbF9zaXplIGlzIHRoZSBoaWdoLWxldmVsIGZ1bmN0aW9uIHdoaWNoIHNob3VsZCBcbiIgIFwKKyAgICAibm9ybWFsbHkgYmUgdXNlZCwgb3MuZ2V0X3Rlcm1pbmFsX3NpemUgaXMgdGhlIGxvdy1sZXZlbCBpbXBsZW1lbnRhdGlvbi4iKTsKKworc3RhdGljIFB5T2JqZWN0KgorZ2V0X3Rlcm1pbmFsX3NpemUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCBjb2x1bW5zLCBsaW5lczsKKyAgICBQeU9iamVjdCAqdGVybXNpemU7CisKKyAgICBpbnQgZmQgPSBmaWxlbm8oc3Rkb3V0KTsKKyAgICAvKiBVbmRlciBzb21lIGNvbmRpdGlvbnMgc3Rkb3V0IG1heSBub3QgYmUgY29ubmVjdGVkIGFuZAorICAgICAqIGZpbGVubyhzdGRvdXQpIG1heSBwb2ludCB0byBhbiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvci4gRm9yIGV4YW1wbGUKKyAgICAgKiBHVUkgYXBwcyBkb24ndCBoYXZlIHZhbGlkIHN0YW5kYXJkIHN0cmVhbXMgYnkgZGVmYXVsdC4KKyAgICAgKgorICAgICAqIElmIHRoaXMgaGFwcGVucywgYW5kIHRoZSBvcHRpb25hbCBmZCBhcmd1bWVudCBpcyBub3QgcHJlc2VudCwKKyAgICAgKiB0aGUgaW9jdGwgYmVsb3cgd2lsbCBmYWlsIHJldHVybmluZyBFQkFERi4gVGhpcyBpcyB3aGF0IHdlIHdhbnQuCisgICAgICovCisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxpIiwgJmZkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyNpZmRlZiBURVJNU0laRV9VU0VfSU9DVEwKKyAgICB7CisgICAgICAgIHN0cnVjdCB3aW5zaXplIHc7CisgICAgICAgIGlmIChpb2N0bChmZCwgVElPQ0dXSU5TWiwgJncpKQorICAgICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKKyAgICAgICAgY29sdW1ucyA9IHcud3NfY29sOworICAgICAgICBsaW5lcyA9IHcud3Nfcm93OworICAgIH0KKyNlbmRpZiAvKiBURVJNU0laRV9VU0VfSU9DVEwgKi8KKworI2lmZGVmIFRFUk1TSVpFX1VTRV9DT05JTworICAgIHsKKyAgICAgICAgRFdPUkQgbmhhbmRsZTsKKyAgICAgICAgSEFORExFIGhhbmRsZTsKKyAgICAgICAgQ09OU09MRV9TQ1JFRU5fQlVGRkVSX0lORk8gY3NiaTsKKyAgICAgICAgc3dpdGNoIChmZCkgeworICAgICAgICBjYXNlIDA6IG5oYW5kbGUgPSBTVERfSU5QVVRfSEFORExFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMTogbmhhbmRsZSA9IFNURF9PVVRQVVRfSEFORExFOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjogbmhhbmRsZSA9IFNURF9FUlJPUl9IQU5ETEU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwgImJhZCBmaWxlIGRlc2NyaXB0b3IiKTsKKyAgICAgICAgfQorICAgICAgICBoYW5kbGUgPSBHZXRTdGRIYW5kbGUobmhhbmRsZSk7CisgICAgICAgIGlmIChoYW5kbGUgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBQeUVycl9Gb3JtYXQoUHlFeGNfT1NFcnJvciwgImhhbmRsZSBjYW5ub3QgYmUgcmV0cmlldmVkIik7CisgICAgICAgIGlmIChoYW5kbGUgPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpCisgICAgICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7CisKKyAgICAgICAgaWYgKCFHZXRDb25zb2xlU2NyZWVuQnVmZmVySW5mbyhoYW5kbGUsICZjc2JpKSkKKyAgICAgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKKworICAgICAgICBjb2x1bW5zID0gY3NiaS5zcldpbmRvdy5SaWdodCAtIGNzYmkuc3JXaW5kb3cuTGVmdCArIDE7CisgICAgICAgIGxpbmVzID0gY3NiaS5zcldpbmRvdy5Cb3R0b20gLSBjc2JpLnNyV2luZG93LlRvcCArIDE7CisgICAgfQorI2VuZGlmIC8qIFRFUk1TSVpFX1VTRV9DT05JTyAqLworCisgICAgdGVybXNpemUgPSBQeVN0cnVjdFNlcXVlbmNlX05ldygmVGVybWluYWxTaXplVHlwZSk7CisgICAgaWYgKHRlcm1zaXplID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0odGVybXNpemUsIDAsIFB5TG9uZ19Gcm9tTG9uZyhjb2x1bW5zKSk7CisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTSh0ZXJtc2l6ZSwgMSwgUHlMb25nX0Zyb21Mb25nKGxpbmVzKSk7CisgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgUHlfREVDUkVGKHRlcm1zaXplKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiB0ZXJtc2l6ZTsKK30KKyNlbmRpZiAvKiBkZWZpbmVkKFRFUk1TSVpFX1VTRV9DT05JTykgfHwgZGVmaW5lZChURVJNU0laRV9VU0VfSU9DVEwpICovCisKKwogc3RhdGljIFB5TWV0aG9kRGVmIHBvc2l4X21ldGhvZHNbXSA9IHsKLSAgICB7ImFjY2VzcyIsICAgICAgICAgIHBvc2l4X2FjY2VzcywgTUVUSF9WQVJBUkdTLCBwb3NpeF9hY2Nlc3NfX2RvY19ffSwKKyAgICB7ImFjY2VzcyIsICAgICAgICAgIChQeUNGdW5jdGlvbilwb3NpeF9hY2Nlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfYWNjZXNzX19kb2NfX30sCiAjaWZkZWYgSEFWRV9UVFlOQU1FCiAgICAgeyJ0dHluYW1lIiwgICAgICAgICBwb3NpeF90dHluYW1lLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3R0eW5hbWVfX2RvY19ffSwKICNlbmRpZgotICAgIHsiY2hkaXIiLCAgICAgICAgICAgcG9zaXhfY2hkaXIsIE1FVEhfVkFSQVJHUywgcG9zaXhfY2hkaXJfX2RvY19ffSwKKyAgICB7ImNoZGlyIiwgICAgICAgICAgIChQeUNGdW5jdGlvbilwb3NpeF9jaGRpciwKKyAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgICAgICAgICBwb3NpeF9jaGRpcl9fZG9jX199LAogI2lmZGVmIEhBVkVfQ0hGTEFHUwotICAgIHsiY2hmbGFncyIsICAgICAgICAgcG9zaXhfY2hmbGFncywgTUVUSF9WQVJBUkdTLCBwb3NpeF9jaGZsYWdzX19kb2NfX30sCisgICAgeyJjaGZsYWdzIiwgICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfY2hmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgICAgICAgICBwb3NpeF9jaGZsYWdzX19kb2NfX30sCiAjZW5kaWYgLyogSEFWRV9DSEZMQUdTICovCi0gICAgeyJjaG1vZCIsICAgICAgICAgICBwb3NpeF9jaG1vZCwgTUVUSF9WQVJBUkdTLCBwb3NpeF9jaG1vZF9fZG9jX199LAorICAgIHsiY2htb2QiLCAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXBvc2l4X2NobW9kLAorICAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l4X2NobW9kX19kb2NfX30sCiAjaWZkZWYgSEFWRV9GQ0hNT0QKICAgICB7ImZjaG1vZCIsICAgICAgICAgIHBvc2l4X2ZjaG1vZCwgTUVUSF9WQVJBUkdTLCBwb3NpeF9mY2htb2RfX2RvY19ffSwKICNlbmRpZiAvKiBIQVZFX0ZDSE1PRCAqLwogI2lmZGVmIEhBVkVfQ0hPV04KLSAgICB7ImNob3duIiwgICAgICAgICAgIHBvc2l4X2Nob3duLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X2Nob3duX19kb2NfX30sCisgICAgeyJjaG93biIsICAgICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfY2hvd24sCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfY2hvd25fX2RvY19ffSwKICNlbmRpZiAvKiBIQVZFX0NIT1dOICovCiAjaWZkZWYgSEFWRV9MQ0hNT0QKICAgICB7ImxjaG1vZCIsICAgICAgICAgIHBvc2l4X2xjaG1vZCwgTUVUSF9WQVJBUkdTLCBwb3NpeF9sY2htb2RfX2RvY19ffSwKQEAgLTc3OTcsMzIgKzEwOTA4LDU3IEBACiAgICAgeyJnZXRjd2RiIiwgICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfZ2V0Y3dkX2J5dGVzLAogICAgIE1FVEhfTk9BUkdTLCBwb3NpeF9nZXRjd2RiX19kb2NfX30sCiAjZW5kaWYKLSNpZmRlZiBIQVZFX0xJTksKLSAgICB7ImxpbmsiLCAgICAgICAgICAgIHBvc2l4X2xpbmssIE1FVEhfVkFSQVJHUywgcG9zaXhfbGlua19fZG9jX199LAorI2lmIGRlZmluZWQoSEFWRV9MSU5LKSB8fCBkZWZpbmVkKE1TX1dJTkRPV1MpCisgICAgeyJsaW5rIiwgICAgICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfbGluaywKKyAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgICAgICAgICBwb3NpeF9saW5rX19kb2NfX30sCiAjZW5kaWYgLyogSEFWRV9MSU5LICovCi0gICAgeyJsaXN0ZGlyIiwgICAgICAgICBwb3NpeF9saXN0ZGlyLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X2xpc3RkaXJfX2RvY19ffSwKLSAgICB7ImxzdGF0IiwgICAgICAgICAgIHBvc2l4X2xzdGF0LCBNRVRIX1ZBUkFSR1MsIHBvc2l4X2xzdGF0X19kb2NfX30sCi0gICAgeyJta2RpciIsICAgICAgICAgICBwb3NpeF9ta2RpciwgTUVUSF9WQVJBUkdTLCBwb3NpeF9ta2Rpcl9fZG9jX199LAorICAgIHsibGlzdGRpciIsICAgICAgICAgKFB5Q0Z1bmN0aW9uKXBvc2l4X2xpc3RkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfbGlzdGRpcl9fZG9jX199LAorICAgIHsibHN0YXQiLCAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXBvc2l4X2xzdGF0LAorICAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l4X2xzdGF0X19kb2NfX30sCisgICAgeyJta2RpciIsICAgICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfbWtkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfbWtkaXJfX2RvY19ffSwKICNpZmRlZiBIQVZFX05JQ0UKICAgICB7Im5pY2UiLCAgICAgICAgICAgIHBvc2l4X25pY2UsIE1FVEhfVkFSQVJHUywgcG9zaXhfbmljZV9fZG9jX199LAogI2VuZGlmIC8qIEhBVkVfTklDRSAqLworI2lmZGVmIEhBVkVfR0VUUFJJT1JJVFkKKyAgICB7ImdldHByaW9yaXR5IiwgICAgIHBvc2l4X2dldHByaW9yaXR5LCBNRVRIX1ZBUkFSR1MsIHBvc2l4X2dldHByaW9yaXR5X19kb2NfX30sCisjZW5kaWYgLyogSEFWRV9HRVRQUklPUklUWSAqLworI2lmZGVmIEhBVkVfU0VUUFJJT1JJVFkKKyAgICB7InNldHByaW9yaXR5IiwgICAgIHBvc2l4X3NldHByaW9yaXR5LCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3NldHByaW9yaXR5X19kb2NfX30sCisjZW5kaWYgLyogSEFWRV9TRVRQUklPUklUWSAqLwogI2lmZGVmIEhBVkVfUkVBRExJTksKLSAgICB7InJlYWRsaW5rIiwgICAgICAgIHBvc2l4X3JlYWRsaW5rLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3JlYWRsaW5rX19kb2NfX30sCisgICAgeyJyZWFkbGluayIsICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfcmVhZGxpbmssCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGxpbmtfX2RvY19ffSwKICNlbmRpZiAvKiBIQVZFX1JFQURMSU5LICovCiAjaWYgIWRlZmluZWQoSEFWRV9SRUFETElOSykgJiYgZGVmaW5lZChNU19XSU5ET1dTKQotICAgIHsicmVhZGxpbmsiLCAgICAgICAgd2luX3JlYWRsaW5rLCBNRVRIX1ZBUkFSR1MsIHdpbl9yZWFkbGlua19fZG9jX199LAorICAgIHsicmVhZGxpbmsiLCAgICAgICAgKFB5Q0Z1bmN0aW9uKXdpbl9yZWFkbGluaywKKyAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgICAgICAgICByZWFkbGlua19fZG9jX199LAogI2VuZGlmIC8qICFkZWZpbmVkKEhBVkVfUkVBRExJTkspICYmIGRlZmluZWQoTVNfV0lORE9XUykgKi8KLSAgICB7InJlbmFtZSIsICAgICAgICAgIHBvc2l4X3JlbmFtZSwgTUVUSF9WQVJBUkdTLCBwb3NpeF9yZW5hbWVfX2RvY19ffSwKLSAgICB7InJtZGlyIiwgICAgICAgICAgIHBvc2l4X3JtZGlyLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3JtZGlyX19kb2NfX30sCi0gICAgeyJzdGF0IiwgICAgICAgICAgICBwb3NpeF9zdGF0LCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3N0YXRfX2RvY19ffSwKKyAgICB7InJlbmFtZSIsICAgICAgICAgIChQeUNGdW5jdGlvbilwb3NpeF9yZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfcmVuYW1lX19kb2NfX30sCisgICAgeyJyZXBsYWNlIiwgICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfcmVwbGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgICAgICAgICBwb3NpeF9yZXBsYWNlX19kb2NfX30sCisgICAgeyJybWRpciIsICAgICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfcm1kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfcm1kaXJfX2RvY19ffSwKKyAgICB7InN0YXQiLCAgICAgICAgICAgIChQeUNGdW5jdGlvbilwb3NpeF9zdGF0LAorICAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l4X3N0YXRfX2RvY19ffSwKICAgICB7InN0YXRfZmxvYXRfdGltZXMiLCBzdGF0X2Zsb2F0X3RpbWVzLCBNRVRIX1ZBUkFSR1MsIHN0YXRfZmxvYXRfdGltZXNfX2RvY19ffSwKLSNpZiBkZWZpbmVkKEhBVkVfU1lNTElOSykgJiYgIWRlZmluZWQoTVNfV0lORE9XUykKLSAgICB7InN5bWxpbmsiLCAgICAgICAgIHBvc2l4X3N5bWxpbmssIE1FVEhfVkFSQVJHUywgcG9zaXhfc3ltbGlua19fZG9jX199LAorI2lmIGRlZmluZWQoSEFWRV9TWU1MSU5LKQorICAgIHsic3ltbGluayIsICAgICAgICAgKFB5Q0Z1bmN0aW9uKXBvc2l4X3N5bWxpbmssCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfc3ltbGlua19fZG9jX199LAogI2VuZGlmIC8qIEhBVkVfU1lNTElOSyAqLwotI2lmIGRlZmluZWQoSEFWRV9TWU1MSU5LKSAmJiBkZWZpbmVkKE1TX1dJTkRPV1MpCi0gICAgeyJzeW1saW5rIiwgKFB5Q0Z1bmN0aW9uKXdpbl9zeW1saW5rLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAotICAgICAgICAgICAgICAgICB3aW5fc3ltbGlua19fZG9jX199LAotI2VuZGlmIC8qIGRlZmluZWQoSEFWRV9TWU1MSU5LKSAmJiBkZWZpbmVkKE1TX1dJTkRPV1MpICovCiAjaWZkZWYgSEFWRV9TWVNURU0KICAgICB7InN5c3RlbSIsICAgICAgICAgIHBvc2l4X3N5c3RlbSwgTUVUSF9WQVJBUkdTLCBwb3NpeF9zeXN0ZW1fX2RvY19ffSwKICNlbmRpZgpAQCAtNzgzMCwxNiArMTA5NjYsMjMgQEAKICNpZmRlZiBIQVZFX1VOQU1FCiAgICAgeyJ1bmFtZSIsICAgICAgICAgICBwb3NpeF91bmFtZSwgTUVUSF9OT0FSR1MsIHBvc2l4X3VuYW1lX19kb2NfX30sCiAjZW5kaWYgLyogSEFWRV9VTkFNRSAqLwotICAgIHsidW5saW5rIiwgICAgICAgICAgcG9zaXhfdW5saW5rLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3VubGlua19fZG9jX199LAotICAgIHsicmVtb3ZlIiwgICAgICAgICAgcG9zaXhfdW5saW5rLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3JlbW92ZV9fZG9jX199LAotICAgIHsidXRpbWUiLCAgICAgICAgICAgcG9zaXhfdXRpbWUsIE1FVEhfVkFSQVJHUywgcG9zaXhfdXRpbWVfX2RvY19ffSwKKyAgICB7InVubGluayIsICAgICAgICAgIChQeUNGdW5jdGlvbilwb3NpeF91bmxpbmssCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfdW5saW5rX19kb2NfX30sCisgICAgeyJyZW1vdmUiLCAgICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfdW5saW5rLAorICAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l4X3JlbW92ZV9fZG9jX199LAorICAgIHsidXRpbWUiLCAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXBvc2l4X3V0aW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgcG9zaXhfdXRpbWVfX2RvY19ffSwKICNpZmRlZiBIQVZFX1RJTUVTCiAgICAgeyJ0aW1lcyIsICAgICAgICAgICBwb3NpeF90aW1lcywgTUVUSF9OT0FSR1MsIHBvc2l4X3RpbWVzX19kb2NfX30sCiAjZW5kaWYgLyogSEFWRV9USU1FUyAqLwogICAgIHsiX2V4aXQiLCAgICAgICAgICAgcG9zaXhfX2V4aXQsIE1FVEhfVkFSQVJHUywgcG9zaXhfX2V4aXRfX2RvY19ffSwKICNpZmRlZiBIQVZFX0VYRUNWCiAgICAgeyJleGVjdiIsICAgICAgICAgICBwb3NpeF9leGVjdiwgTUVUSF9WQVJBUkdTLCBwb3NpeF9leGVjdl9fZG9jX199LAotICAgIHsiZXhlY3ZlIiwgICAgICAgICAgcG9zaXhfZXhlY3ZlLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X2V4ZWN2ZV9fZG9jX199LAorICAgIHsiZXhlY3ZlIiwgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXBvc2l4X2V4ZWN2ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgICAgICAgICBwb3NpeF9leGVjdmVfX2RvY19ffSwKICNlbmRpZiAvKiBIQVZFX0VYRUNWICovCiAjaWZkZWYgSEFWRV9TUEFXTlYKICAgICB7InNwYXdudiIsICAgICAgICAgIHBvc2l4X3NwYXdudiwgTUVUSF9WQVJBUkdTLCBwb3NpeF9zcGF3bnZfX2RvY19ffSwKQEAgLTc4NTUsNiArMTA5OTgsMzIgQEAKICNpZmRlZiBIQVZFX0ZPUksKICAgICB7ImZvcmsiLCAgICAgICAgICAgIHBvc2l4X2ZvcmssIE1FVEhfTk9BUkdTLCBwb3NpeF9mb3JrX19kb2NfX30sCiAjZW5kaWYgLyogSEFWRV9GT1JLICovCisjaWZkZWYgSEFWRV9TQ0hFRF9ICisjaWZkZWYgSEFWRV9TQ0hFRF9HRVRfUFJJT1JJVFlfTUFYCisgICAgeyJzY2hlZF9nZXRfcHJpb3JpdHlfbWF4IiwgcG9zaXhfc2NoZWRfZ2V0X3ByaW9yaXR5X21heCwgTUVUSF9WQVJBUkdTLCBwb3NpeF9zY2hlZF9nZXRfcHJpb3JpdHlfbWF4X19kb2NfX30sCisgICAgeyJzY2hlZF9nZXRfcHJpb3JpdHlfbWluIiwgcG9zaXhfc2NoZWRfZ2V0X3ByaW9yaXR5X21pbiwgTUVUSF9WQVJBUkdTLCBwb3NpeF9zY2hlZF9nZXRfcHJpb3JpdHlfbWluX19kb2NfX30sCisjZW5kaWYKKyNpZmRlZiBIQVZFX1NDSEVEX1NFVFBBUkFNCisgICAgeyJzY2hlZF9nZXRwYXJhbSIsIHBvc2l4X3NjaGVkX2dldHBhcmFtLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3NjaGVkX2dldHBhcmFtX19kb2NfX30sCisjZW5kaWYKKyNpZmRlZiBIQVZFX1NDSEVEX1NFVFNDSEVEVUxFUgorICAgIHsic2NoZWRfZ2V0c2NoZWR1bGVyIiwgcG9zaXhfc2NoZWRfZ2V0c2NoZWR1bGVyLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3NjaGVkX2dldHNjaGVkdWxlcl9fZG9jX199LAorI2VuZGlmCisjaWZkZWYgSEFWRV9TQ0hFRF9SUl9HRVRfSU5URVJWQUwKKyAgICB7InNjaGVkX3JyX2dldF9pbnRlcnZhbCIsIHBvc2l4X3NjaGVkX3JyX2dldF9pbnRlcnZhbCwgTUVUSF9WQVJBUkdTLCBwb3NpeF9zY2hlZF9ycl9nZXRfaW50ZXJ2YWxfX2RvY19ffSwKKyNlbmRpZgorI2lmZGVmIEhBVkVfU0NIRURfU0VUUEFSQU0KKyAgICB7InNjaGVkX3NldHBhcmFtIiwgcG9zaXhfc2NoZWRfc2V0cGFyYW0sIE1FVEhfVkFSQVJHUywgcG9zaXhfc2NoZWRfc2V0cGFyYW1fX2RvY19ffSwKKyNlbmRpZgorI2lmZGVmIEhBVkVfU0NIRURfU0VUU0NIRURVTEVSCisgICAgeyJzY2hlZF9zZXRzY2hlZHVsZXIiLCBwb3NpeF9zY2hlZF9zZXRzY2hlZHVsZXIsIE1FVEhfVkFSQVJHUywgcG9zaXhfc2NoZWRfc2V0c2NoZWR1bGVyX19kb2NfX30sCisjZW5kaWYKKyAgICB7InNjaGVkX3lpZWxkIiwgICAgIHBvc2l4X3NjaGVkX3lpZWxkLCBNRVRIX05PQVJHUywgcG9zaXhfc2NoZWRfeWllbGRfX2RvY19ffSwKKyNpZmRlZiBIQVZFX1NDSEVEX1NFVEFGRklOSVRZCisgICAgeyJzY2hlZF9zZXRhZmZpbml0eSIsIHBvc2l4X3NjaGVkX3NldGFmZmluaXR5LCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3NjaGVkX3NldGFmZmluaXR5X19kb2NfX30sCisgICAgeyJzY2hlZF9nZXRhZmZpbml0eSIsIHBvc2l4X3NjaGVkX2dldGFmZmluaXR5LCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3NjaGVkX2dldGFmZmluaXR5X19kb2NfX30sCisjZW5kaWYKKyNlbmRpZiAvKiBIQVZFX1NDSEVEX0ggKi8KICNpZiBkZWZpbmVkKEhBVkVfT1BFTlBUWSkgfHwgZGVmaW5lZChIQVZFX19HRVRQVFkpIHx8IGRlZmluZWQoSEFWRV9ERVZfUFRNWCkKICAgICB7Im9wZW5wdHkiLCAgICAgICAgIHBvc2l4X29wZW5wdHksIE1FVEhfTk9BUkdTLCBwb3NpeF9vcGVucHR5X19kb2NfX30sCiAjZW5kaWYgLyogSEFWRV9PUEVOUFRZIHx8IEhBVkVfX0dFVFBUWSB8fCBIQVZFX0RFVl9QVE1YICovCkBAIC03ODcwLDYgKzExMDM5LDkgQEAKICNpZmRlZiBIQVZFX0dFVEdJRAogICAgIHsiZ2V0Z2lkIiwgICAgICAgICAgcG9zaXhfZ2V0Z2lkLCBNRVRIX05PQVJHUywgcG9zaXhfZ2V0Z2lkX19kb2NfX30sCiAjZW5kaWYgLyogSEFWRV9HRVRHSUQgKi8KKyNpZmRlZiBIQVZFX0dFVEdST1VQTElTVAorICAgIHsiZ2V0Z3JvdXBsaXN0IiwgICAgcG9zaXhfZ2V0Z3JvdXBsaXN0LCBNRVRIX1ZBUkFSR1MsIHBvc2l4X2dldGdyb3VwbGlzdF9fZG9jX199LAorI2VuZGlmCiAjaWZkZWYgSEFWRV9HRVRHUk9VUFMKICAgICB7ImdldGdyb3VwcyIsICAgICAgIHBvc2l4X2dldGdyb3VwcywgTUVUSF9OT0FSR1MsIHBvc2l4X2dldGdyb3Vwc19fZG9jX199LAogI2VuZGlmCkBAIC03ODk4LDcgKzExMDcwLDYgQEAKICNpZmRlZiBNU19XSU5ET1dTCiAgICAgeyJzdGFydGZpbGUiLCAgICAgICB3aW4zMl9zdGFydGZpbGUsIE1FVEhfVkFSQVJHUywgd2luMzJfc3RhcnRmaWxlX19kb2NfX30sCiAgICAgeyJraWxsIiwgICAgd2luMzJfa2lsbCwgTUVUSF9WQVJBUkdTLCB3aW4zMl9raWxsX19kb2NfX30sCi0gICAgeyJsaW5rIiwgICAgd2luMzJfbGluaywgTUVUSF9WQVJBUkdTLCB3aW4zMl9saW5rX19kb2NfX30sCiAjZW5kaWYKICNpZmRlZiBIQVZFX1NFVFVJRAogICAgIHsic2V0dWlkIiwgICAgICAgICAgcG9zaXhfc2V0dWlkLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3NldHVpZF9fZG9jX199LApAQCAtNzkzOSw2ICsxMTExMCw5IEBACiAjaWZkZWYgSEFWRV9XQUlUNAogICAgIHsid2FpdDQiLCAgICAgICAgICAgcG9zaXhfd2FpdDQsIE1FVEhfVkFSQVJHUywgcG9zaXhfd2FpdDRfX2RvY19ffSwKICNlbmRpZiAvKiBIQVZFX1dBSVQ0ICovCisjaWYgZGVmaW5lZChIQVZFX1dBSVRJRCkgJiYgIWRlZmluZWQoX19BUFBMRV9fKQorICAgIHsid2FpdGlkIiwgICAgICAgICAgcG9zaXhfd2FpdGlkLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3dhaXRpZF9fZG9jX199LAorI2VuZGlmCiAjaWYgZGVmaW5lZChIQVZFX1dBSVRQSUQpIHx8IGRlZmluZWQoSEFWRV9DV0FJVCkKICAgICB7IndhaXRwaWQiLCAgICAgICAgIHBvc2l4X3dhaXRwaWQsIE1FVEhfVkFSQVJHUywgcG9zaXhfd2FpdHBpZF9fZG9jX199LAogI2VuZGlmIC8qIEhBVkVfV0FJVFBJRCAqLwpAQCAtNzk1NywyNSArMTExMzEsNTMgQEAKICNpZmRlZiBIQVZFX1RDU0VUUEdSUAogICAgIHsidGNzZXRwZ3JwIiwgICAgICAgcG9zaXhfdGNzZXRwZ3JwLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3Rjc2V0cGdycF9fZG9jX199LAogI2VuZGlmIC8qIEhBVkVfVENTRVRQR1JQICovCi0gICAgeyJvcGVuIiwgICAgICAgICAgICBwb3NpeF9vcGVuLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X29wZW5fX2RvY19ffSwKKyAgICB7Im9wZW4iLCAgICAgICAgICAgIChQeUNGdW5jdGlvbilwb3NpeF9vcGVuLFwKKyAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgICAgICAgICBwb3NpeF9vcGVuX19kb2NfX30sCiAgICAgeyJjbG9zZSIsICAgICAgICAgICBwb3NpeF9jbG9zZSwgTUVUSF9WQVJBUkdTLCBwb3NpeF9jbG9zZV9fZG9jX199LAogICAgIHsiY2xvc2VyYW5nZSIsICAgICAgcG9zaXhfY2xvc2VyYW5nZSwgTUVUSF9WQVJBUkdTLCBwb3NpeF9jbG9zZXJhbmdlX19kb2NfX30sCiAgICAgeyJkZXZpY2VfZW5jb2RpbmciLCBkZXZpY2VfZW5jb2RpbmcsIE1FVEhfVkFSQVJHUywgZGV2aWNlX2VuY29kaW5nX19kb2NfX30sCiAgICAgeyJkdXAiLCAgICAgICAgICAgICBwb3NpeF9kdXAsIE1FVEhfVkFSQVJHUywgcG9zaXhfZHVwX19kb2NfX30sCiAgICAgeyJkdXAyIiwgICAgICAgICAgICBwb3NpeF9kdXAyLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X2R1cDJfX2RvY19ffSwKKyNpZmRlZiBIQVZFX0xPQ0tGCisgICAgeyJsb2NrZiIsICAgICAgICAgICBwb3NpeF9sb2NrZiwgTUVUSF9WQVJBUkdTLCBwb3NpeF9sb2NrZl9fZG9jX199LAorI2VuZGlmCiAgICAgeyJsc2VlayIsICAgICAgICAgICBwb3NpeF9sc2VlaywgTUVUSF9WQVJBUkdTLCBwb3NpeF9sc2Vla19fZG9jX199LAogICAgIHsicmVhZCIsICAgICAgICAgICAgcG9zaXhfcmVhZCwgTUVUSF9WQVJBUkdTLCBwb3NpeF9yZWFkX19kb2NfX30sCisjaWZkZWYgSEFWRV9SRUFEVgorICAgIHsicmVhZHYiLCAgICAgICAgICAgcG9zaXhfcmVhZHYsIE1FVEhfVkFSQVJHUywgcG9zaXhfcmVhZHZfX2RvY19ffSwKKyNlbmRpZgorI2lmZGVmIEhBVkVfUFJFQUQKKyAgICB7InByZWFkIiwgICAgICAgICAgIHBvc2l4X3ByZWFkLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3ByZWFkX19kb2NfX30sCisjZW5kaWYKICAgICB7IndyaXRlIiwgICAgICAgICAgIHBvc2l4X3dyaXRlLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3dyaXRlX19kb2NfX30sCisjaWZkZWYgSEFWRV9XUklURVYKKyAgICB7IndyaXRldiIsICAgICAgICAgIHBvc2l4X3dyaXRldiwgTUVUSF9WQVJBUkdTLCBwb3NpeF93cml0ZXZfX2RvY19ffSwKKyNlbmRpZgorI2lmZGVmIEhBVkVfUFdSSVRFCisgICAgeyJwd3JpdGUiLCAgICAgICAgICBwb3NpeF9wd3JpdGUsIE1FVEhfVkFSQVJHUywgcG9zaXhfcHdyaXRlX19kb2NfX30sCisjZW5kaWYKKyNpZmRlZiBIQVZFX1NFTkRGSUxFCisgICAgeyJzZW5kZmlsZSIsICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfc2VuZGZpbGUsIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfc2VuZGZpbGVfX2RvY19ffSwKKyNlbmRpZgogICAgIHsiZnN0YXQiLCAgICAgICAgICAgcG9zaXhfZnN0YXQsIE1FVEhfVkFSQVJHUywgcG9zaXhfZnN0YXRfX2RvY19ffSwKICAgICB7ImlzYXR0eSIsICAgICAgICAgIHBvc2l4X2lzYXR0eSwgTUVUSF9WQVJBUkdTLCBwb3NpeF9pc2F0dHlfX2RvY19ffSwKICNpZmRlZiBIQVZFX1BJUEUKICAgICB7InBpcGUiLCAgICAgICAgICAgIHBvc2l4X3BpcGUsIE1FVEhfTk9BUkdTLCBwb3NpeF9waXBlX19kb2NfX30sCiAjZW5kaWYKKyNpZmRlZiBIQVZFX1BJUEUyCisgICAgeyJwaXBlMiIsICAgICAgICAgICBwb3NpeF9waXBlMiwgTUVUSF9PLCBwb3NpeF9waXBlMl9fZG9jX199LAorI2VuZGlmCiAjaWZkZWYgSEFWRV9NS0ZJRk8KLSAgICB7Im1rZmlmbyIsICAgICAgICAgIHBvc2l4X21rZmlmbywgTUVUSF9WQVJBUkdTLCBwb3NpeF9ta2ZpZm9fX2RvY19ffSwKKyAgICB7Im1rZmlmbyIsICAgICAgICAgIChQeUNGdW5jdGlvbilwb3NpeF9ta2ZpZm8sCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfbWtmaWZvX19kb2NfX30sCiAjZW5kaWYKICNpZiBkZWZpbmVkKEhBVkVfTUtOT0QpICYmIGRlZmluZWQoSEFWRV9NQUtFREVWKQotICAgIHsibWtub2QiLCAgICAgICAgICAgcG9zaXhfbWtub2QsIE1FVEhfVkFSQVJHUywgcG9zaXhfbWtub2RfX2RvY19ffSwKKyAgICB7Im1rbm9kIiwgICAgICAgICAgIChQeUNGdW5jdGlvbilwb3NpeF9ta25vZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgICAgICAgICBwb3NpeF9ta25vZF9fZG9jX199LAogI2VuZGlmCiAjaWZkZWYgSEFWRV9ERVZJQ0VfTUFDUk9TCiAgICAgeyJtYWpvciIsICAgICAgICAgICBwb3NpeF9tYWpvciwgTUVUSF9WQVJBUkdTLCBwb3NpeF9tYWpvcl9fZG9jX199LApAQCAtNzk4NSw2ICsxMTE4NywxNyBAQAogI2lmZGVmIEhBVkVfRlRSVU5DQVRFCiAgICAgeyJmdHJ1bmNhdGUiLCAgICAgICBwb3NpeF9mdHJ1bmNhdGUsIE1FVEhfVkFSQVJHUywgcG9zaXhfZnRydW5jYXRlX19kb2NfX30sCiAjZW5kaWYKKyNpZmRlZiBIQVZFX1RSVU5DQVRFCisgICAgeyJ0cnVuY2F0ZSIsICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfdHJ1bmNhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfdHJ1bmNhdGVfX2RvY19ffSwKKyNlbmRpZgorI2lmZGVmIEhBVkVfUE9TSVhfRkFMTE9DQVRFCisgICAgeyJwb3NpeF9mYWxsb2NhdGUiLCBwb3NpeF9wb3NpeF9mYWxsb2NhdGUsIE1FVEhfVkFSQVJHUywgcG9zaXhfcG9zaXhfZmFsbG9jYXRlX19kb2NfX30sCisjZW5kaWYKKyNpZmRlZiBIQVZFX1BPU0lYX0ZBRFZJU0UKKyAgICB7InBvc2l4X2ZhZHZpc2UiLCAgIHBvc2l4X3Bvc2l4X2ZhZHZpc2UsIE1FVEhfVkFSQVJHUywgcG9zaXhfcG9zaXhfZmFkdmlzZV9fZG9jX199LAorI2VuZGlmCiAjaWZkZWYgSEFWRV9QVVRFTlYKICAgICB7InB1dGVudiIsICAgICAgICAgIHBvc2l4X3B1dGVudiwgTUVUSF9WQVJBUkdTLCBwb3NpeF9wdXRlbnZfX2RvY19ffSwKICNlbmRpZgpAQCAtNzk5OCw2ICsxMTIxMSw5IEBACiAjaWZkZWYgSEFWRV9GU1lOQwogICAgIHsiZnN5bmMiLCAgICAgICBwb3NpeF9mc3luYywgTUVUSF9PLCBwb3NpeF9mc3luY19fZG9jX199LAogI2VuZGlmCisjaWZkZWYgSEFWRV9TWU5DCisgICAgeyJzeW5jIiwgICAgICAgIHBvc2l4X3N5bmMsIE1FVEhfTk9BUkdTLCBwb3NpeF9zeW5jX19kb2NfX30sCisjZW5kaWYKICNpZmRlZiBIQVZFX0ZEQVRBU1lOQwogICAgIHsiZmRhdGFzeW5jIiwgICBwb3NpeF9mZGF0YXN5bmMsICBNRVRIX08sIHBvc2l4X2ZkYXRhc3luY19fZG9jX199LAogI2VuZGlmCkBAIC04MDMxLDcgKzExMjQ3LDkgQEAKICAgICB7ImZzdGF0dmZzIiwgICAgICAgIHBvc2l4X2ZzdGF0dmZzLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X2ZzdGF0dmZzX19kb2NfX30sCiAjZW5kaWYKICNpZiBkZWZpbmVkKEhBVkVfU1RBVFZGUykgJiYgZGVmaW5lZChIQVZFX1NZU19TVEFUVkZTX0gpCi0gICAgeyJzdGF0dmZzIiwgICAgICAgICBwb3NpeF9zdGF0dmZzLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3N0YXR2ZnNfX2RvY19ffSwKKyAgICB7InN0YXR2ZnMiLCAgICAgICAgIChQeUNGdW5jdGlvbilwb3NpeF9zdGF0dmZzLAorICAgICAgICAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l4X3N0YXR2ZnNfX2RvY19ffSwKICNlbmRpZgogI2lmZGVmIEhBVkVfQ09ORlNUUgogICAgIHsiY29uZnN0ciIsICAgICAgICAgcG9zaXhfY29uZnN0ciwgTUVUSF9WQVJBUkdTLCBwb3NpeF9jb25mc3RyX19kb2NfX30sCkBAIC04MDQzLDcgKzExMjYxLDkgQEAKICAgICB7ImZwYXRoY29uZiIsICAgICAgIHBvc2l4X2ZwYXRoY29uZiwgTUVUSF9WQVJBUkdTLCBwb3NpeF9mcGF0aGNvbmZfX2RvY19ffSwKICNlbmRpZgogI2lmZGVmIEhBVkVfUEFUSENPTkYKLSAgICB7InBhdGhjb25mIiwgICAgICAgIHBvc2l4X3BhdGhjb25mLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X3BhdGhjb25mX19kb2NfX30sCisgICAgeyJwYXRoY29uZiIsICAgICAgICAoUHlDRnVuY3Rpb24pcG9zaXhfcGF0aGNvbmYsCisgICAgICAgICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXhfcGF0aGNvbmZfX2RvY19ffSwKICNlbmRpZgogICAgIHsiYWJvcnQiLCAgICAgICAgICAgcG9zaXhfYWJvcnQsIE1FVEhfTk9BUkdTLCBwb3NpeF9hYm9ydF9fZG9jX199LAogI2lmZGVmIE1TX1dJTkRPV1MKQEAgLTgwNTEsNiArMTEyNzEsNyBAQAogICAgIHsiX2dldGZpbmFscGF0aG5hbWUiLCAgICAgICBwb3NpeF9fZ2V0ZmluYWxwYXRobmFtZSwgTUVUSF9WQVJBUkdTLCBOVUxMfSwKICAgICB7Il9nZXRmaWxlaW5mb3JtYXRpb24iLCAgICAgcG9zaXhfX2dldGZpbGVpbmZvcm1hdGlvbiwgTUVUSF9WQVJBUkdTLCBOVUxMfSwKICAgICB7Il9pc2RpciIsICAgICAgICAgICAgICAgICAgcG9zaXhfX2lzZGlyLCBNRVRIX1ZBUkFSR1MsIHBvc2l4X19pc2Rpcl9fZG9jX199LAorICAgIHsiX2dldGRpc2t1c2FnZSIsICAgICAgICAgICB3aW4zMl9fZ2V0ZGlza3VzYWdlLCBNRVRIX1ZBUkFSR1MsIHdpbjMyX19nZXRkaXNrdXNhZ2VfX2RvY19ffSwKICNlbmRpZgogI2lmZGVmIEhBVkVfR0VUTE9BREFWRwogICAgIHsiZ2V0bG9hZGF2ZyIsICAgICAgcG9zaXhfZ2V0bG9hZGF2ZywgTUVUSF9OT0FSR1MsIHBvc2l4X2dldGxvYWRhdmdfX2RvY19ffSwKQEAgLTgwNjgsNiArMTEyODksMjQgQEAKICNpZmRlZiBIQVZFX0dFVFJFU0dJRAogICAgIHsiZ2V0cmVzZ2lkIiwgICAgICAgcG9zaXhfZ2V0cmVzZ2lkLCBNRVRIX05PQVJHUywgcG9zaXhfZ2V0cmVzZ2lkX19kb2NfX30sCiAjZW5kaWYKKworI2lmZGVmIFVTRV9YQVRUUlMKKyAgICB7InNldHhhdHRyIiwgKFB5Q0Z1bmN0aW9uKXBvc2l4X3NldHhhdHRyLAorICAgICAgICAgICAgICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLAorICAgICAgICAgICAgICAgICBwb3NpeF9zZXR4YXR0cl9fZG9jX199LAorICAgIHsiZ2V0eGF0dHIiLCAoUHlDRnVuY3Rpb24pcG9zaXhfZ2V0eGF0dHIsCisgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgIHBvc2l4X2dldHhhdHRyX19kb2NfX30sCisgICAgeyJyZW1vdmV4YXR0ciIsIChQeUNGdW5jdGlvbilwb3NpeF9yZW1vdmV4YXR0ciwKKyAgICAgICAgICAgICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywKKyAgICAgICAgICAgICAgICAgcG9zaXhfcmVtb3ZleGF0dHJfX2RvY19ffSwKKyAgICB7Imxpc3R4YXR0ciIsIChQeUNGdW5jdGlvbilwb3NpeF9saXN0eGF0dHIsCisgICAgICAgICAgICAgICAgIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsCisgICAgICAgICAgICAgICAgIHBvc2l4X2xpc3R4YXR0cl9fZG9jX199LAorI2VuZGlmCisjaWYgZGVmaW5lZChURVJNU0laRV9VU0VfQ09OSU8pIHx8IGRlZmluZWQoVEVSTVNJWkVfVVNFX0lPQ1RMKQorICAgIHsiZ2V0X3Rlcm1pbmFsX3NpemUiLCBnZXRfdGVybWluYWxfc2l6ZSwgTUVUSF9WQVJBUkdTLCB0ZXJtc2l6ZV9fZG9jX199LAorI2VuZGlmCiAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgIC8qIFNlbnRpbmVsICovCiB9OwogCkBAIC04MjM1LDYgKzExNDc0LDkgQEAKICNpZmRlZiBPX1RFWFQKICAgICBpZiAoaW5zKGQsICJPX1RFWFQiLCAobG9uZylPX1RFWFQpKSByZXR1cm4gLTE7CiAjZW5kaWYKKyNpZmRlZiBPX1hBVFRSCisgICAgaWYgKGlucyhkLCAiT19YQVRUUiIsIChsb25nKU9fWEFUVFIpKSByZXR1cm4gLTE7CisjZW5kaWYKICNpZmRlZiBPX0xBUkdFRklMRQogICAgIGlmIChpbnMoZCwgIk9fTEFSR0VGSUxFIiwgKGxvbmcpT19MQVJHRUZJTEUpKSByZXR1cm4gLTE7CiAjZW5kaWYKQEAgLTgyNDQsNiArMTE0ODYsMzggQEAKICNpZmRlZiBPX0VYTE9DSwogICAgIGlmIChpbnMoZCwgIk9fRVhMT0NLIiwgKGxvbmcpT19FWExPQ0spKSByZXR1cm4gLTE7CiAjZW5kaWYKKyNpZmRlZiBPX0VYRUMKKyAgICBpZiAoaW5zKGQsICJPX0VYRUMiLCAobG9uZylPX0VYRUMpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBPX1NFQVJDSAorICAgIGlmIChpbnMoZCwgIk9fU0VBUkNIIiwgKGxvbmcpT19TRUFSQ0gpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBPX1RUWV9JTklUCisgICAgaWYgKGlucyhkLCAiT19UVFlfSU5JVCIsIChsb25nKU9fVFRZX0lOSVQpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBQUklPX1BST0NFU1MKKyAgICBpZiAoaW5zKGQsICJQUklPX1BST0NFU1MiLCAobG9uZylQUklPX1BST0NFU1MpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBQUklPX1BHUlAKKyAgICBpZiAoaW5zKGQsICJQUklPX1BHUlAiLCAobG9uZylQUklPX1BHUlApKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBQUklPX1VTRVIKKyAgICBpZiAoaW5zKGQsICJQUklPX1VTRVIiLCAobG9uZylQUklPX1VTRVIpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBPX0NMT0VYRUMKKyAgICBpZiAoaW5zKGQsICJPX0NMT0VYRUMiLCAobG9uZylPX0NMT0VYRUMpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBPX0FDQ01PREUKKyAgICBpZiAoaW5zKGQsICJPX0FDQ01PREUiLCAobG9uZylPX0FDQ01PREUpKSByZXR1cm4gLTE7CisjZW5kaWYKKworCisjaWZkZWYgU0VFS19IT0xFCisgICAgaWYgKGlucyhkLCAiU0VFS19IT0xFIiwgKGxvbmcpU0VFS19IT0xFKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgU0VFS19EQVRBCisgICAgaWYgKGlucyhkLCAiU0VFS19EQVRBIiwgKGxvbmcpU0VFS19EQVRBKSkgcmV0dXJuIC0xOworI2VuZGlmCiAKIC8qIE1TIFdpbmRvd3MgKi8KICNpZmRlZiBPX05PSU5IRVJJVApAQCAtODI4Niw2ICsxMTU2MCwxMCBAQAogICAgIC8qIERvIG5vdCBmb2xsb3cgbGlua3MuICAgICAgKi8KICAgICBpZiAoaW5zKGQsICJPX05PRk9MTE9XIiwgKGxvbmcpT19OT0ZPTExPVykpIHJldHVybiAtMTsKICNlbmRpZgorI2lmZGVmIE9fTk9MSU5LUworICAgIC8qIEZhaWxzIGlmIGxpbmsgY291bnQgb2YgdGhlIG5hbWVkIGZpbGUgaXMgZ3JlYXRlciB0aGFuIDEgKi8KKyAgICBpZiAoaW5zKGQsICJPX05PTElOS1MiLCAobG9uZylPX05PTElOS1MpKSByZXR1cm4gLTE7CisjZW5kaWYKICNpZmRlZiBPX05PQVRJTUUKICAgICAvKiBEbyBub3QgdXBkYXRlIHRoZSBhY2Nlc3MgdGltZS4gKi8KICAgICBpZiAoaW5zKGQsICJPX05PQVRJTUUiLCAobG9uZylPX05PQVRJTUUpKSByZXR1cm4gLTE7CkBAIC04MzUyLDYgKzExNjMwLDc5IEBACiAgICAgaWYgKGlucyhkLCAiU1RfTk9TVUlEIiwgKGxvbmcpU1RfTk9TVUlEKSkgcmV0dXJuIC0xOwogI2VuZGlmIC8qIFNUX05PU1VJRCAqLwogCisgICAgLyogRnJlZUJTRCBzZW5kZmlsZSgpIGNvbnN0YW50cyAqLworI2lmZGVmIFNGX05PRElTS0lPCisgICAgaWYgKGlucyhkLCAiU0ZfTk9ESVNLSU8iLCAobG9uZylTRl9OT0RJU0tJTykpIHJldHVybiAtMTsKKyNlbmRpZgorI2lmZGVmIFNGX01OT1dBSVQKKyAgICBpZiAoaW5zKGQsICJTRl9NTk9XQUlUIiwgKGxvbmcpU0ZfTU5PV0FJVCkpIHJldHVybiAtMTsKKyNlbmRpZgorI2lmZGVmIFNGX1NZTkMKKyAgICBpZiAoaW5zKGQsICJTRl9TWU5DIiwgKGxvbmcpU0ZfU1lOQykpIHJldHVybiAtMTsKKyNlbmRpZgorCisgICAgLyogY29uc3RhbnRzIGZvciBwb3NpeF9mYWR2aXNlICovCisjaWZkZWYgUE9TSVhfRkFEVl9OT1JNQUwKKyAgICBpZiAoaW5zKGQsICJQT1NJWF9GQURWX05PUk1BTCIsIChsb25nKVBPU0lYX0ZBRFZfTk9STUFMKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgUE9TSVhfRkFEVl9TRVFVRU5USUFMCisgICAgaWYgKGlucyhkLCAiUE9TSVhfRkFEVl9TRVFVRU5USUFMIiwgKGxvbmcpUE9TSVhfRkFEVl9TRVFVRU5USUFMKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgUE9TSVhfRkFEVl9SQU5ET00KKyAgICBpZiAoaW5zKGQsICJQT1NJWF9GQURWX1JBTkRPTSIsIChsb25nKVBPU0lYX0ZBRFZfUkFORE9NKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgUE9TSVhfRkFEVl9OT1JFVVNFCisgICAgaWYgKGlucyhkLCAiUE9TSVhfRkFEVl9OT1JFVVNFIiwgKGxvbmcpUE9TSVhfRkFEVl9OT1JFVVNFKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgUE9TSVhfRkFEVl9XSUxMTkVFRAorICAgIGlmIChpbnMoZCwgIlBPU0lYX0ZBRFZfV0lMTE5FRUQiLCAobG9uZylQT1NJWF9GQURWX1dJTExORUVEKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgUE9TSVhfRkFEVl9ET05UTkVFRAorICAgIGlmIChpbnMoZCwgIlBPU0lYX0ZBRFZfRE9OVE5FRUQiLCAobG9uZylQT1NJWF9GQURWX0RPTlRORUVEKSkgcmV0dXJuIC0xOworI2VuZGlmCisKKyAgICAvKiBjb25zdGFudHMgZm9yIHdhaXRpZCAqLworI2lmIGRlZmluZWQoSEFWRV9TWVNfV0FJVF9IKSAmJiBkZWZpbmVkKEhBVkVfV0FJVElEKQorICAgIGlmIChpbnMoZCwgIlBfUElEIiwgKGxvbmcpUF9QSUQpKSByZXR1cm4gLTE7CisgICAgaWYgKGlucyhkLCAiUF9QR0lEIiwgKGxvbmcpUF9QR0lEKSkgcmV0dXJuIC0xOworICAgIGlmIChpbnMoZCwgIlBfQUxMIiwgKGxvbmcpUF9BTEwpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBXRVhJVEVECisgICAgaWYgKGlucyhkLCAiV0VYSVRFRCIsIChsb25nKVdFWElURUQpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBXTk9XQUlUCisgICAgaWYgKGlucyhkLCAiV05PV0FJVCIsIChsb25nKVdOT1dBSVQpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBXU1RPUFBFRAorICAgIGlmIChpbnMoZCwgIldTVE9QUEVEIiwgKGxvbmcpV1NUT1BQRUQpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBDTERfRVhJVEVECisgICAgaWYgKGlucyhkLCAiQ0xEX0VYSVRFRCIsIChsb25nKUNMRF9FWElURUQpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBDTERfRFVNUEVECisgICAgaWYgKGlucyhkLCAiQ0xEX0RVTVBFRCIsIChsb25nKUNMRF9EVU1QRUQpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBDTERfVFJBUFBFRAorICAgIGlmIChpbnMoZCwgIkNMRF9UUkFQUEVEIiwgKGxvbmcpQ0xEX1RSQVBQRUQpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBDTERfQ09OVElOVUVECisgICAgaWYgKGlucyhkLCAiQ0xEX0NPTlRJTlVFRCIsIChsb25nKUNMRF9DT05USU5VRUQpKSByZXR1cm4gLTE7CisjZW5kaWYKKworICAgIC8qIGNvbnN0YW50cyBmb3IgbG9ja2YgKi8KKyNpZmRlZiBGX0xPQ0sKKyAgICBpZiAoaW5zKGQsICJGX0xPQ0siLCAobG9uZylGX0xPQ0spKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBGX1RMT0NLCisgICAgaWYgKGlucyhkLCAiRl9UTE9DSyIsIChsb25nKUZfVExPQ0spKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBGX1VMT0NLCisgICAgaWYgKGlucyhkLCAiRl9VTE9DSyIsIChsb25nKUZfVUxPQ0spKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBGX1RFU1QKKyAgICBpZiAoaW5zKGQsICJGX1RFU1QiLCAobG9uZylGX1RFU1QpKSByZXR1cm4gLTE7CisjZW5kaWYKKwogI2lmZGVmIEhBVkVfU1BBV05WCiAjaWYgZGVmaW5lZChQWU9TX09TMikgJiYgZGVmaW5lZChQWUNDX0dDQykKICAgICBpZiAoaW5zKGQsICJQX1dBSVQiLCAobG9uZylQX1dBSVQpKSByZXR1cm4gLTE7CkBAIC04MzgzLDYgKzExNzM0LDY0IEBACiAjZW5kaWYKICNlbmRpZgogCisjaWZkZWYgSEFWRV9TQ0hFRF9ICisgICAgaWYgKGlucyhkLCAiU0NIRURfT1RIRVIiLCAobG9uZylTQ0hFRF9PVEhFUikpIHJldHVybiAtMTsKKyAgICBpZiAoaW5zKGQsICJTQ0hFRF9GSUZPIiwgKGxvbmcpU0NIRURfRklGTykpIHJldHVybiAtMTsKKyAgICBpZiAoaW5zKGQsICJTQ0hFRF9SUiIsIChsb25nKVNDSEVEX1JSKSkgcmV0dXJuIC0xOworI2lmZGVmIFNDSEVEX1NQT1JBRElDCisgICAgaWYgKGlucyhkLCAiU0NIRURfU1BPUkFESUMiLCAobG9uZylTQ0hFRF9TUE9SQURJQykgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgU0NIRURfQkFUQ0gKKyAgICBpZiAoaW5zKGQsICJTQ0hFRF9CQVRDSCIsIChsb25nKVNDSEVEX0JBVENIKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgU0NIRURfSURMRQorICAgIGlmIChpbnMoZCwgIlNDSEVEX0lETEUiLCAobG9uZylTQ0hFRF9JRExFKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgU0NIRURfUkVTRVRfT05fRk9SSworICAgIGlmIChpbnMoZCwgIlNDSEVEX1JFU0VUX09OX0ZPUksiLCAobG9uZylTQ0hFRF9SRVNFVF9PTl9GT1JLKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgU0NIRURfU1lTCisgICAgaWYgKGlucyhkLCAiU0NIRURfU1lTIiwgKGxvbmcpU0NIRURfU1lTKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgU0NIRURfSUEKKyAgICBpZiAoaW5zKGQsICJTQ0hFRF9JQSIsIChsb25nKVNDSEVEX0lBKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgU0NIRURfRlNTCisgICAgaWYgKGlucyhkLCAiU0NIRURfRlNTIiwgKGxvbmcpU0NIRURfRlNTKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgU0NIRURfRlgKKyAgICBpZiAoaW5zKGQsICJTQ0hFRF9GWCIsIChsb25nKVNDSEVEX0ZTUykpIHJldHVybiAtMTsKKyNlbmRpZgorI2VuZGlmCisKKyNpZmRlZiBVU0VfWEFUVFJTCisgICAgaWYgKGlucyhkLCAiWEFUVFJfQ1JFQVRFIiwgKGxvbmcpWEFUVFJfQ1JFQVRFKSkgcmV0dXJuIC0xOworICAgIGlmIChpbnMoZCwgIlhBVFRSX1JFUExBQ0UiLCAobG9uZylYQVRUUl9SRVBMQUNFKSkgcmV0dXJuIC0xOworICAgIGlmIChpbnMoZCwgIlhBVFRSX1NJWkVfTUFYIiwgKGxvbmcpWEFUVFJfU0laRV9NQVgpKSByZXR1cm4gLTE7CisjZW5kaWYKKworI2lmZGVmIFJUTERfTEFaWQorICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhkLCBSVExEX0xBWlkpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBSVExEX05PVworICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhkLCBSVExEX05PVykpIHJldHVybiAtMTsKKyNlbmRpZgorI2lmZGVmIFJUTERfR0xPQkFMCisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKGQsIFJUTERfR0xPQkFMKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgUlRMRF9MT0NBTAorICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhkLCBSVExEX0xPQ0FMKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgUlRMRF9OT0RFTEVURQorICAgIGlmIChQeU1vZHVsZV9BZGRJbnRNYWNybyhkLCBSVExEX05PREVMRVRFKSkgcmV0dXJuIC0xOworI2VuZGlmCisjaWZkZWYgUlRMRF9OT0xPQUQKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8oZCwgUlRMRF9OT0xPQUQpKSByZXR1cm4gLTE7CisjZW5kaWYKKyNpZmRlZiBSVExEX0RFRVBCSU5ECisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKGQsIFJUTERfREVFUEJJTkQpKSByZXR1cm4gLTE7CisjZW5kaWYKKwogI2lmIGRlZmluZWQoUFlPU19PUzIpCiAgICAgaWYgKGluc2VydHZhbHVlcyhkKSkgcmV0dXJuIC0xOwogI2VuZGlmCkBAIC04NDE2LDEwICsxMTgyNSwxMzggQEAKIH07CiAKIAorc3RhdGljIGNoYXIgKmhhdmVfZnVuY3Rpb25zW10gPSB7CisKKyNpZmRlZiBIQVZFX0ZBQ0NFU1NBVAorICAgICJIQVZFX0ZBQ0NFU1NBVCIsCisjZW5kaWYKKworI2lmZGVmIEhBVkVfRkNIRElSCisgICAgIkhBVkVfRkNIRElSIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9GQ0hNT0QKKyAgICAiSEFWRV9GQ0hNT0QiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0ZDSE1PREFUCisgICAgIkhBVkVfRkNITU9EQVQiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0ZDSE9XTgorICAgICJIQVZFX0ZDSE9XTiIsCisjZW5kaWYKKworI2lmZGVmIEhBVkVfRkVYRUNWRQorICAgICJIQVZFX0ZFWEVDVkUiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0ZET1BFTkRJUgorICAgICJIQVZFX0ZET1BFTkRJUiIsCisjZW5kaWYKKworI2lmZGVmIEhBVkVfRlBBVEhDT05GCisgICAgIkhBVkVfRlBBVEhDT05GIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9GU1RBVEFUCisgICAgIkhBVkVfRlNUQVRBVCIsCisjZW5kaWYKKworI2lmZGVmIEhBVkVfRlNUQVRWRlMKKyAgICAiSEFWRV9GU1RBVFZGUyIsCisjZW5kaWYKKworI2lmZGVmIEhBVkVfRlRSVU5DQVRFCisgICAgIkhBVkVfRlRSVU5DQVRFIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9GVVRJTUVOUworICAgICJIQVZFX0ZVVElNRU5TIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9GVVRJTUVTCisgICAgIkhBVkVfRlVUSU1FUyIsCisjZW5kaWYKKworI2lmZGVmIEhBVkVfRlVUSU1FU0FUCisgICAgIkhBVkVfRlVUSU1FU0FUIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9MSU5LQVQKKyAgICAiSEFWRV9MSU5LQVQiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0xDSEZMQUdTCisgICAgIkhBVkVfTENIRkxBR1MiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX0xDSE1PRAorICAgICJIQVZFX0xDSE1PRCIsCisjZW5kaWYKKworI2lmZGVmIEhBVkVfTENIT1dOCisgICAgIkhBVkVfTENIT1dOIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9MU1RBVAorICAgICJIQVZFX0xTVEFUIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9MVVRJTUVTCisgICAgIkhBVkVfTFVUSU1FUyIsCisjZW5kaWYKKworI2lmZGVmIEhBVkVfTUtESVJBVAorICAgICJIQVZFX01LRElSQVQiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX01LRklGT0FUCisgICAgIkhBVkVfTUtGSUZPQVQiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX01LTk9EQVQKKyAgICAiSEFWRV9NS05PREFUIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9PUEVOQVQKKyAgICAiSEFWRV9PUEVOQVQiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1JFQURMSU5LQVQKKyAgICAiSEFWRV9SRUFETElOS0FUIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9SRU5BTUVBVAorICAgICJIQVZFX1JFTkFNRUFUIiwKKyNlbmRpZgorCisjaWZkZWYgSEFWRV9TWU1MSU5LQVQKKyAgICAiSEFWRV9TWU1MSU5LQVQiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1VOTElOS0FUCisgICAgIkhBVkVfVU5MSU5LQVQiLAorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1VUSU1FTlNBVAorICAgICJIQVZFX1VUSU1FTlNBVCIsCisjZW5kaWYKKworI2lmZGVmIE1TX1dJTkRPV1MKKyAgICAiTVNfV0lORE9XUyIsCisjZW5kaWYKKworICAgIE5VTEwKK307CisKKwogUHlNT0RJTklUX0ZVTkMKIElOSVRGVU5DKHZvaWQpCiB7CiAgICAgUHlPYmplY3QgKm0sICp2OworICAgIFB5T2JqZWN0ICpsaXN0OworICAgIGNoYXIgKip0cmFjZTsKIAogI2lmIGRlZmluZWQoSEFWRV9TWU1MSU5LKSAmJiBkZWZpbmVkKE1TX1dJTkRPV1MpCiAgICAgd2luMzJfY2FuX3N5bWxpbmsgPSBlbmFibGVfc3ltbGluaygpOwpAQCAtODQ0NSwxMiArMTE5ODIsMjQgQEAKICAgICBQeV9JTkNSRUYoUHlFeGNfT1NFcnJvcik7CiAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJlcnJvciIsIFB5RXhjX09TRXJyb3IpOwogCisjaWZkZWYgSEFWRV9TQ0hFRF9TRVRBRkZJTklUWQorICAgIGlmIChQeVR5cGVfUmVhZHkoJmNwdV9zZXRfdHlwZSkgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9JTkNSRUYoJmNwdV9zZXRfdHlwZSk7CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJjcHVfc2V0IiwgKFB5T2JqZWN0ICopJmNwdV9zZXRfdHlwZSk7CisjZW5kaWYKKwogI2lmZGVmIEhBVkVfUFVURU5WCiAgICAgaWYgKHBvc2l4X3B1dGVudl9nYXJiYWdlID09IE5VTEwpCiAgICAgICAgIHBvc2l4X3B1dGVudl9nYXJiYWdlID0gUHlEaWN0X05ldygpOwogI2VuZGlmCiAKICAgICBpZiAoIWluaXRpYWxpemVkKSB7CisjaWYgZGVmaW5lZChIQVZFX1dBSVRJRCkgJiYgIWRlZmluZWQoX19BUFBMRV9fKQorICAgICAgICB3YWl0aWRfcmVzdWx0X2Rlc2MubmFtZSA9IE1PRE5BTUUgIi53YWl0aWRfcmVzdWx0IjsKKyAgICAgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9Jbml0VHlwZSgmV2FpdGlkUmVzdWx0VHlwZSwgJndhaXRpZF9yZXN1bHRfZGVzYyk7CisjZW5kaWYKKwogICAgICAgICBzdGF0X3Jlc3VsdF9kZXNjLm5hbWUgPSBNT0ROQU1FICIuc3RhdF9yZXN1bHQiOwogICAgICAgICBzdGF0X3Jlc3VsdF9kZXNjLmZpZWxkc1s3XS5uYW1lID0gUHlTdHJ1Y3RTZXF1ZW5jZV9Vbm5hbWVkRmllbGQ7CiAgICAgICAgIHN0YXRfcmVzdWx0X2Rlc2MuZmllbGRzWzhdLm5hbWUgPSBQeVN0cnVjdFNlcXVlbmNlX1VubmFtZWRGaWVsZDsKQEAgLTg0NzAsMTMgKzEyMDE5LDM5IEBACiAgICAgICAgIHRpY2tzX3Blcl9zZWNvbmQgPSA2MDsgLyogbWFnaWMgZmFsbGJhY2sgdmFsdWU7IG1heSBiZSBib2d1cyAqLwogIyAgZW5kaWYKICNlbmRpZgorCisjaWYgZGVmaW5lZChIQVZFX1NDSEVEX1NFVFBBUkFNKSB8fCBkZWZpbmVkKEhBVkVfU0NIRURfU0VUU0NIRURVTEVSKQorICAgICAgICBzY2hlZF9wYXJhbV9kZXNjLm5hbWUgPSBNT0ROQU1FICIuc2NoZWRfcGFyYW0iOworICAgICAgICBQeVN0cnVjdFNlcXVlbmNlX0luaXRUeXBlKCZTY2hlZFBhcmFtVHlwZSwgJnNjaGVkX3BhcmFtX2Rlc2MpOworICAgICAgICBTY2hlZFBhcmFtVHlwZS50cF9uZXcgPSBzY2hlZF9wYXJhbV9uZXc7CisjZW5kaWYKKworICAgICAgICAvKiBpbml0aWFsaXplIFRlcm1pbmFsU2l6ZV9pbmZvICovCisgICAgICAgIFB5U3RydWN0U2VxdWVuY2VfSW5pdFR5cGUoJlRlcm1pbmFsU2l6ZVR5cGUsICZUZXJtaW5hbFNpemVfZGVzYyk7CisgICAgICAgIFB5X0lOQ1JFRigmVGVybWluYWxTaXplVHlwZSk7CiAgICAgfQorI2lmIGRlZmluZWQoSEFWRV9XQUlUSUQpICYmICFkZWZpbmVkKF9fQVBQTEVfXykKKyAgICBQeV9JTkNSRUYoKFB5T2JqZWN0KikgJldhaXRpZFJlc3VsdFR5cGUpOworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAid2FpdGlkX3Jlc3VsdCIsIChQeU9iamVjdCopICZXYWl0aWRSZXN1bHRUeXBlKTsKKyNlbmRpZgogICAgIFB5X0lOQ1JFRigoUHlPYmplY3QqKSAmU3RhdFJlc3VsdFR5cGUpOwogICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAic3RhdF9yZXN1bHQiLCAoUHlPYmplY3QqKSAmU3RhdFJlc3VsdFR5cGUpOwogICAgIFB5X0lOQ1JFRigoUHlPYmplY3QqKSAmU3RhdFZGU1Jlc3VsdFR5cGUpOwogICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAic3RhdHZmc19yZXN1bHQiLAogICAgICAgICAgICAgICAgICAgICAgICAoUHlPYmplY3QqKSAmU3RhdFZGU1Jlc3VsdFR5cGUpOwotICAgIGluaXRpYWxpemVkID0gMTsKKworI2lmIGRlZmluZWQoSEFWRV9TQ0hFRF9TRVRQQVJBTSkgfHwgZGVmaW5lZChIQVZFX1NDSEVEX1NFVFNDSEVEVUxFUikKKyAgICBQeV9JTkNSRUYoJlNjaGVkUGFyYW1UeXBlKTsKKyAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgInNjaGVkX3BhcmFtIiwgKFB5T2JqZWN0ICopJlNjaGVkUGFyYW1UeXBlKTsKKyNlbmRpZgorCisgICAgdGltZXNfcmVzdWx0X2Rlc2MubmFtZSA9IE1PRE5BTUUgIi50aW1lc19yZXN1bHQiOworICAgIFB5U3RydWN0U2VxdWVuY2VfSW5pdFR5cGUoJlRpbWVzUmVzdWx0VHlwZSwgJnRpbWVzX3Jlc3VsdF9kZXNjKTsKKyAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgInRpbWVzX3Jlc3VsdCIsIChQeU9iamVjdCAqKSZUaW1lc1Jlc3VsdFR5cGUpOworCisgICAgdW5hbWVfcmVzdWx0X2Rlc2MubmFtZSA9IE1PRE5BTUUgIi51bmFtZV9yZXN1bHQiOworICAgIFB5U3RydWN0U2VxdWVuY2VfSW5pdFR5cGUoJlVuYW1lUmVzdWx0VHlwZSwgJnVuYW1lX3Jlc3VsdF9kZXNjKTsKKyAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgInVuYW1lX3Jlc3VsdCIsIChQeU9iamVjdCAqKSZVbmFtZVJlc3VsdFR5cGUpOwogCiAjaWZkZWYgX19BUFBMRV9fCiAgICAgLyoKQEAgLTg0ODYsNyArMTIwNjEsNyBAQAogICAgICAqIGN1cnJlbnRseSBhY3RpdmUgcGxhdGZvcm0uCiAgICAgICoKICAgICAgKiBUaGlzIGJsb2NrIGFsbG93IG9uZSB0byB1c2UgYSBweXRob24gYmluYXJ5IHRoYXQgd2FzIGJ1aWxkIG9uCi0gICAgICogT1NYIDEwLjQgb24gT1NYIDEwLjMsIHdpdGhvdXQgbG9vc2luZyBhY2Nlc3MgdG8gbmV3IEFQSXMgb24KKyAgICAgKiBPU1ggMTAuNCBvbiBPU1ggMTAuMywgd2l0aG91dCBsb3NpbmcgYWNjZXNzIHRvIG5ldyBBUElzIG9uCiAgICAgICogT1NYIDEwLjQuCiAgICAgICovCiAjaWZkZWYgSEFWRV9GU1RBVFZGUwpAQCAtODUxNSw2ICsxMjA5MCw0MiBAQAogCiAKICNlbmRpZiAvKiBfX0FQUExFX18gKi8KKworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAidGVybWluYWxfc2l6ZSIsIChQeU9iamVjdCopICZUZXJtaW5hbFNpemVUeXBlKTsKKworICAgIGJpbGxpb24gPSBQeUxvbmdfRnJvbUxvbmcoMTAwMDAwMDAwMCk7CisgICAgaWYgKCFiaWxsaW9uKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8qIHN1cHByZXNzICJmdW5jdGlvbiBub3QgdXNlZCIgd2FybmluZ3MgKi8KKyAgICB7CisgICAgaW50IGlnbm9yZWQ7CisgICAgZmRfc3BlY2lmaWVkKCIiLCAtMSk7CisgICAgZm9sbG93X3N5bWxpbmtzX3NwZWNpZmllZCgiIiwgMSk7CisgICAgZGlyX2ZkX2FuZF9mb2xsb3dfc3ltbGlua3NfaW52YWxpZCgiY2htb2QiLCBERUZBVUxUX0RJUl9GRCwgMSk7CisgICAgZGlyX2ZkX2NvbnZlcnRlcihQeV9Ob25lLCAmaWdub3JlZCk7CisgICAgZGlyX2ZkX3VuYXZhaWxhYmxlKFB5X05vbmUsICZpZ25vcmVkKTsKKyAgICB9CisKKyAgICAvKgorICAgICAqIHByb3ZpZGUgbGlzdCBvZiBsb2NhbGx5IGF2YWlsYWJsZSBmdW5jdGlvbnMKKyAgICAgKiBzbyBvcy5weSBjYW4gcG9wdWxhdGUgc3VwcG9ydF8qIGxpc3RzCisgICAgICovCisgICAgbGlzdCA9IFB5TGlzdF9OZXcoMCk7CisgICAgaWYgKCFsaXN0KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBmb3IgKHRyYWNlID0gaGF2ZV9mdW5jdGlvbnM7ICp0cmFjZTsgdHJhY2UrKykgeworICAgICAgICBQeU9iamVjdCAqdW5pY29kZSA9IFB5VW5pY29kZV9EZWNvZGVBU0NJSSgqdHJhY2UsIHN0cmxlbigqdHJhY2UpLCBOVUxMKTsKKyAgICAgICAgaWYgKCF1bmljb2RlKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGlmIChQeUxpc3RfQXBwZW5kKGxpc3QsIHVuaWNvZGUpKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICB9CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJfaGF2ZV9mdW5jdGlvbnMiLCBsaXN0KTsKKworICAgIGluaXRpYWxpemVkID0gMTsKKwogICAgIHJldHVybiBtOwogCiB9CmRpZmYgLS1naXQgYS9Nb2R1bGVzL3B5ZXhwYXQuYyBiL01vZHVsZXMvcHlleHBhdC5jCmluZGV4IGJmODFlMmEuLmE1MDBhMWUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvcHlleHBhdC5jCisrKyBiL01vZHVsZXMvcHlleHBhdC5jCkBAIC0xMDAsMTYgKzEwMCwxNyBAQAogc2V0X2Vycm9yKHhtbHBhcnNlb2JqZWN0ICpzZWxmLCBlbnVtIFhNTF9FcnJvciBjb2RlKQogewogICAgIFB5T2JqZWN0ICplcnI7Ci0gICAgY2hhciBidWZmZXJbMjU2XTsKKyAgICBQeU9iamVjdCAqYnVmZmVyOwogICAgIFhNTF9QYXJzZXIgcGFyc2VyID0gc2VsZi0+aXRzZWxmOwogICAgIGludCBsaW5lbm8gPSBYTUxfR2V0RXJyb3JMaW5lTnVtYmVyKHBhcnNlcik7CiAgICAgaW50IGNvbHVtbiA9IFhNTF9HZXRFcnJvckNvbHVtbk51bWJlcihwYXJzZXIpOwogCi0gICAgLyogVGhlcmUgaXMgbm8gcmlzayBvZiBvdmVyZmxvd2luZyB0aGlzIGJ1ZmZlciwgc2luY2UKLSAgICAgICBldmVuIGZvciA2NC1iaXQgaW50ZWdlcnMsIHRoZXJlIGlzIHN1ZmZpY2llbnQgc3BhY2UuICovCi0gICAgc3ByaW50ZihidWZmZXIsICIlLjIwMHM6IGxpbmUgJWksIGNvbHVtbiAlaSIsCi0gICAgICAgICAgICBYTUxfRXJyb3JTdHJpbmcoY29kZSksIGxpbmVubywgY29sdW1uKTsKLSAgICBlcnIgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb24oRXJyb3JPYmplY3QsICJzIiwgYnVmZmVyKTsKKyAgICBidWZmZXIgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJXM6IGxpbmUgJWksIGNvbHVtbiAlaSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0Vycm9yU3RyaW5nKGNvZGUpLCBsaW5lbm8sIGNvbHVtbik7CisgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBlcnIgPSBQeU9iamVjdF9DYWxsRnVuY3Rpb24oRXJyb3JPYmplY3QsICJPIiwgYnVmZmVyKTsKKyAgICBQeV9ERUNSRUYoYnVmZmVyKTsKICAgICBpZiAoICBlcnIgIT0gTlVMTAogICAgICAgICAgICYmIHNldF9lcnJvcl9hdHRyKGVyciwgImNvZGUiLCBjb2RlKQogICAgICAgICAgICYmIHNldF9lcnJvcl9hdHRyKGVyciwgIm9mZnNldCIsIGNvbHVtbikKQEAgLTg0Miw5ICs4NDMsOSBAQAogewogICAgIGludCBydiA9IDE7CiAgICAgUHlPYmplY3QgKnJlYWRtZXRob2QgPSBOVUxMOworICAgIF9QeV9JREVOVElGSUVSKHJlYWQpOwogCi0KLSAgICByZWFkbWV0aG9kID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhmLCAicmVhZCIpOworICAgIHJlYWRtZXRob2QgPSBfUHlPYmplY3RfR2V0QXR0cklkKGYsICZQeUlkX3JlYWQpOwogICAgIGlmIChyZWFkbWV0aG9kID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCBtdXN0IGhhdmUgJ3JlYWQnIGF0dHJpYnV0ZSIpOwpAQCAtMTEwMSwxNyArMTEwMiwyMiBAQAogICAgIFB5VW5pY29kZU9iamVjdCAqX3Vfc3RyaW5nID0gTlVMTDsKICAgICBpbnQgcmVzdWx0ID0gMDsKICAgICBpbnQgaTsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOwogCiAgICAgLyogWWVzLCBzdXBwb3J0cyBvbmx5IDhiaXQgZW5jb2RpbmdzICovCiAgICAgX3Vfc3RyaW5nID0gKFB5VW5pY29kZU9iamVjdCAqKQogICAgICAgICBQeVVuaWNvZGVfRGVjb2RlKHRlbXBsYXRlX2J1ZmZlciwgMjU2LCBuYW1lLCAicmVwbGFjZSIpOwogCi0gICAgaWYgKF91X3N0cmluZyA9PSBOVUxMKQorICAgIGlmIChfdV9zdHJpbmcgPT0gTlVMTCB8fCBQeVVuaWNvZGVfUkVBRFkoX3Vfc3RyaW5nKSA9PSAtMSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAorICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChfdV9zdHJpbmcpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShfdV9zdHJpbmcpOworCiAgICAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKSB7CiAgICAgICAgIC8qIFN0dXBpZCB0byBhY2Nlc3MgZGlyZWN0bHksIGJ1dCBmYXN0ICovCi0gICAgICAgIFB5X1VOSUNPREUgYyA9IF91X3N0cmluZy0+c3RyW2ldOworICAgICAgICBQeV9VQ1M0IGMgPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKICAgICAgICAgaWYgKGMgPT0gUHlfVU5JQ09ERV9SRVBMQUNFTUVOVF9DSEFSQUNURVIpCiAgICAgICAgICAgICBpbmZvLT5tYXBbaV0gPSAtMTsKICAgICAgICAgZWxzZQpAQCAtMTIzNSwxMSArMTI0MSwxMyBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHhtbHBhcnNlX2dldGF0dHJvKHhtbHBhcnNlb2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqbmFtZW9iaikKIHsKLSAgICBQeV9VTklDT0RFICpuYW1lOworICAgIFB5X1VDUzQgZmlyc3RfY2hhcjsKICAgICBpbnQgaGFuZGxlcm51bSA9IC0xOwogCiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sobmFtZW9iaikpCiAgICAgICAgIGdvdG8gZ2VuZXJpYzsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKG5hbWVvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGhhbmRsZXJudW0gPSBoYW5kbGVybmFtZTJpbnQobmFtZW9iaik7CiAKQEAgLTEyNTEsOCArMTI1OSw4IEBACiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgbmFtZSA9IFB5VW5pY29kZV9BU19VTklDT0RFKG5hbWVvYmopOwotICAgIGlmIChuYW1lWzBdID09ICdFJykgeworICAgIGZpcnN0X2NoYXIgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKG5hbWVvYmosIDApOworICAgIGlmIChmaXJzdF9jaGFyID09ICdFJykgewogICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobmFtZW9iaiwgIkVycm9yQ29kZSIpID09IDApCiAgICAgICAgICAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKChsb25nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFhNTF9HZXRFcnJvckNvZGUoc2VsZi0+aXRzZWxmKSk7CkBAIC0xMjY2LDcgKzEyNzQsNyBAQAogICAgICAgICAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZygobG9uZykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBYTUxfR2V0RXJyb3JCeXRlSW5kZXgoc2VsZi0+aXRzZWxmKSk7CiAgICAgfQotICAgIGlmIChuYW1lWzBdID09ICdDJykgeworICAgIGlmIChmaXJzdF9jaGFyID09ICdDJykgewogICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobmFtZW9iaiwgIkN1cnJlbnRMaW5lTnVtYmVyIikgPT0gMCkKICAgICAgICAgICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0dldEN1cnJlbnRMaW5lTnVtYmVyKHNlbGYtPml0c2VsZikpOwpAQCAtMTI3Nyw3ICsxMjg1LDcgQEAKICAgICAgICAgICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWE1MX0dldEN1cnJlbnRCeXRlSW5kZXgoc2VsZi0+aXRzZWxmKSk7CiAgICAgfQotICAgIGlmIChuYW1lWzBdID09ICdiJykgeworICAgIGlmIChmaXJzdF9jaGFyID09ICdiJykgewogICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobmFtZW9iaiwgImJ1ZmZlcl9zaXplIikgPT0gMCkKICAgICAgICAgICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpIHNlbGYtPmJ1ZmZlcl9zaXplKTsKICAgICAgICAgaWYgKFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKG5hbWVvYmosICJidWZmZXJfdGV4dCIpID09IDApCkBAIC0xNjY4LDcgKzE2NzYsNiBAQAogICAgIFB5T2JqZWN0ICplcnJvcnNfbW9kdWxlOwogICAgIFB5T2JqZWN0ICptb2RlbG1vZF9uYW1lOwogICAgIFB5T2JqZWN0ICptb2RlbF9tb2R1bGU7Ci0gICAgUHlPYmplY3QgKnZlcnNpb247CiAgICAgUHlPYmplY3QgKnN5c19tb2R1bGVzOwogICAgIFB5T2JqZWN0ICp0bXBudW0sICp0bXBzdHI7CiAgICAgUHlPYmplY3QgKmNvZGVzX2RpY3Q7CkBAIC0xNzA1LDEwICsxNzEyLDYgQEAKICAgICBQeV9JTkNSRUYoJlhtbHBhcnNldHlwZSk7CiAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJYTUxQYXJzZXJUeXBlIiwgKFB5T2JqZWN0ICopICZYbWxwYXJzZXR5cGUpOwogCi0gICAgdmVyc2lvbiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKFBZX1ZFUlNJT04pOwotICAgIGlmICghdmVyc2lvbikKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJfX3ZlcnNpb25fXyIsIHZlcnNpb24pOwogICAgIFB5TW9kdWxlX0FkZFN0cmluZ0NvbnN0YW50KG0sICJFWFBBVF9WRVJTSU9OIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhciAqKSBYTUxfRXhwYXRWZXJzaW9uKCkpOwogICAgIHsKQEAgLTE5MDEsNiArMTkwNCw3IEBACiAgICAgY2FwaS5TZXRQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25IYW5kbGVyID0gWE1MX1NldFByb2Nlc3NpbmdJbnN0cnVjdGlvbkhhbmRsZXI7CiAgICAgY2FwaS5TZXRVbmtub3duRW5jb2RpbmdIYW5kbGVyID0gWE1MX1NldFVua25vd25FbmNvZGluZ0hhbmRsZXI7CiAgICAgY2FwaS5TZXRVc2VyRGF0YSA9IFhNTF9TZXRVc2VyRGF0YTsKKyAgICBjYXBpLlNldFN0YXJ0RG9jdHlwZURlY2xIYW5kbGVyID0gWE1MX1NldFN0YXJ0RG9jdHlwZURlY2xIYW5kbGVyOwogCiAgICAgLyogZXhwb3J0IHVzaW5nIGNhcHN1bGUgKi8KICAgICBjYXBpX29iamVjdCA9IFB5Q2Fwc3VsZV9OZXcoJmNhcGksIFB5RXhwYXRfQ0FQU1VMRV9OQU1FLCBOVUxMKTsKZGlmZiAtLWdpdCBhL01vZHVsZXMvcHl0aG9uLmMgYi9Nb2R1bGVzL3B5dGhvbi5jCmluZGV4IGNmOTM4M2YuLmM3MGJmMzcgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvcHl0aG9uLmMKKysrIGIvTW9kdWxlcy9weXRob24uYwpAQCAtNTEsNiArNTEsNyBAQAogICAgICAgICBhcmd2X2NvcHlbaV0gPSBfUHlfY2hhcjJ3Y2hhcihhcmd2W2ldLCBOVUxMKTsKICNlbmRpZgogICAgICAgICBpZiAoIWFyZ3ZfY29weVtpXSkgeworICAgICAgICAgICAgZnJlZShvbGRsb2MpOwogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYXRhbCBQeXRob24gZXJyb3I6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5hYmxlIHRvIGRlY29kZSB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50ICMlaVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpICsgMSk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL3JlYWRsaW5lLmMgYi9Nb2R1bGVzL3JlYWRsaW5lLmMKaW5kZXggNGQ1NGRhZC4uYTcxMDY1MiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9yZWFkbGluZS5jCisrKyBiL01vZHVsZXMvcmVhZGxpbmUuYwpAQCAtMjM1LDEwICsyMzUsOSBAQAogICAgICAgICBQeV9YREVDUkVGKHRtcCk7CiAgICAgfQogICAgIGVsc2UgewotICAgICAgICBQeU9TX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksCi0gICAgICAgICAgICAgICAgICAgICAgInNldF8lLjUwcyhmdW5jKTogYXJndW1lbnQgbm90IGNhbGxhYmxlIiwKLSAgICAgICAgICAgICAgICAgICAgICBmdW5jbmFtZSk7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsIGJ1Zik7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAic2V0XyUuNTBzKGZ1bmMpOiBhcmd1bWVudCBub3QgY2FsbGFibGUiLAorICAgICAgICAgICAgICAgICAgICAgZnVuY25hbWUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgUHlfUkVUVVJOX05PTkU7CkBAIC04OTIsNyArODkxLDcgQEAKICNlbmRpZgogCiAjaWZkZWYgX19BUFBMRV9fCi0gICAgLyogdGhlIGxpYmVkaXQgcmVhZGxpbmUgZW11bGF0aW9uIHJlc2V0cyBrZXkgYmluZGluZ3MgZXRjIAorICAgIC8qIHRoZSBsaWJlZGl0IHJlYWRsaW5lIGVtdWxhdGlvbiByZXNldHMga2V5IGJpbmRpbmdzIGV0YwogICAgICAqIHdoZW4gY2FsbGluZyBybF9pbml0aWFsaXplLiAgU28gY2FsbCBpdCB1cGZyb250CiAgICAgICovCiAgICAgaWYgKHVzaW5nX2xpYmVkaXRfZW11bGF0aW9uKQpAQCAtOTMyLDExICs5MzEsMTEgQEAKICAgICAgKi8KICNpZmRlZiBfX0FQUExFX18KICAgICBpZiAodXNpbmdfbGliZWRpdF9lbXVsYXRpb24pCi0JcmxfcmVhZF9pbml0X2ZpbGUoTlVMTCk7CisgICAgICAgIHJsX3JlYWRfaW5pdF9maWxlKE5VTEwpOwogICAgIGVsc2UKICNlbmRpZiAvKiBfX0FQUExFX18gKi8KICAgICAgICAgcmxfaW5pdGlhbGl6ZSgpOwotICAgIAorCiAgICAgUkVTVE9SRV9MT0NBTEUoc2F2ZWRfbG9jYWxlKQogfQogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL3Jlc291cmNlLmMgYi9Nb2R1bGVzL3Jlc291cmNlLmMKaW5kZXggMTg3NWU0OC4uMWFlZDQ5NyAxMDA2NDQKLS0tIGEvTW9kdWxlcy9yZXNvdXJjZS5jCisrKyBiL01vZHVsZXMvcmVzb3VyY2UuYwpAQCAtMTgsOCArMTgsNiBAQAogCiAjZGVmaW5lIGRvdWJsZXRpbWUoVFYpICgoZG91YmxlKShUVikudHZfc2VjICsgKFRWKS50dl91c2VjICogMC4wMDAwMDEpCiAKLXN0YXRpYyBQeU9iamVjdCAqUmVzb3VyY2VFcnJvcjsKLQogUHlEb2NfU1RSVkFSKHN0cnVjdF9ydXNhZ2VfX2RvY19fLAogInN0cnVjdF9ydXNhZ2U6IFJlc3VsdCBmcm9tIGdldHJ1c2FnZS5cblxuIgogIlRoaXMgb2JqZWN0IG1heSBiZSBhY2Nlc3NlZCBlaXRoZXIgYXMgYSB0dXBsZSBvZlxuIgpAQCAtNzMsNyArNzEsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIHdobyBwYXJhbWV0ZXIiKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhSZXNvdXJjZUVycm9yKTsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTEyNSw3ICsxMjMsNyBAQAogICAgIH0KIAogICAgIGlmIChnZXRybGltaXQocmVzb3VyY2UsICZybCkgPT0gLTEpIHsKLSAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFJlc291cmNlRXJyb3IpOworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIApAQCAtMTgzLDcgKzE4MSw3IEBACiAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm90IGFsbG93ZWQgdG8gcmFpc2UgbWF4aW11bSBsaW1pdCIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUmVzb3VyY2VFcnJvcik7CisgICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CkBAIC0yNDYsMTIgKzI0NCw4IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgLyogQWRkIHNvbWUgc3ltYm9saWMgY29uc3RhbnRzIHRvIHRoZSBtb2R1bGUgKi8KLSAgICBpZiAoUmVzb3VyY2VFcnJvciA9PSBOVUxMKSB7Ci0gICAgICAgIFJlc291cmNlRXJyb3IgPSBQeUVycl9OZXdFeGNlcHRpb24oInJlc291cmNlLmVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBOVUxMKTsKLSAgICB9Ci0gICAgUHlfSU5DUkVGKFJlc291cmNlRXJyb3IpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiZXJyb3IiLCBSZXNvdXJjZUVycm9yKTsKKyAgICBQeV9JTkNSRUYoUHlFeGNfT1NFcnJvcik7CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJlcnJvciIsIFB5RXhjX09TRXJyb3IpOwogICAgIGlmICghaW5pdGlhbGl6ZWQpCiAgICAgICAgIFB5U3RydWN0U2VxdWVuY2VfSW5pdFR5cGUoJlN0cnVjdFJVc2FnZVR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0cnVjdF9ydXNhZ2VfZGVzYyk7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL3NlbGVjdG1vZHVsZS5jIGIvTW9kdWxlcy9zZWxlY3Rtb2R1bGUuYwppbmRleCAyNDUyYTY1Li44OTY0YjY3IDEwMDY0NAotLS0gYS9Nb2R1bGVzL3NlbGVjdG1vZHVsZS5jCisrKyBiL01vZHVsZXMvc2VsZWN0bW9kdWxlLmMKQEAgLTcsNiArNywxNCBAQAogI2luY2x1ZGUgIlB5dGhvbi5oIgogI2luY2x1ZGUgPHN0cnVjdG1lbWJlci5oPgogCisjaWZkZWYgSEFWRV9TWVNfREVWUE9MTF9ICisjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+CisjaW5jbHVkZSA8c3lzL2RldnBvbGwuaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvc3RhdC5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjZW5kaWYKKwogI2lmZGVmIF9fQVBQTEVfXwogICAgIC8qIFBlcmZvcm0gcnVudGltZSB0ZXN0aW5nIGZvciBhIGJyb2tlbiBwb2xsIG9uIE9TWCB0byBtYWtlIGl0IGVhc2llcgogICAgICAqIHRvIHVzZSB0aGUgc2FtZSBiaW5hcnkgb24gbXVsdGlwbGUgcmVsZWFzZXMgb2YgdGhlIE9TLgpAQCAtNTQsOCArNjIsNiBAQAogIyAgZW5kaWYKICNlbmRpZgogCi1zdGF0aWMgUHlPYmplY3QgKlNlbGVjdEVycm9yOwotCiAvKiBsaXN0IG9mIFB5dGhvbiBvYmplY3RzIGFuZCB0aGVpciBmaWxlIGRlc2NyaXB0b3IgKi8KIHR5cGVkZWYgc3RydWN0IHsKICAgICBQeU9iamVjdCAqb2JqOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG93bmVkIHJlZmVyZW5jZSAqLwpAQCAtMjAwLDkgKzIwNiw3IEBACiAgICAgUHlPYmplY3QgKnJldCA9IE5VTEw7CiAgICAgUHlPYmplY3QgKnRvdXQgPSBQeV9Ob25lOwogICAgIGZkX3NldCBpZmRzZXQsIG9mZHNldCwgZWZkc2V0OwotICAgIGRvdWJsZSB0aW1lb3V0OwogICAgIHN0cnVjdCB0aW1ldmFsIHR2LCAqdHZwOwotICAgIGxvbmcgc2Vjb25kczsKICAgICBpbnQgaW1heCwgb21heCwgZW1heCwgbWF4OwogICAgIGludCBuOwogCkBAIC0yMTksMTggKzIyMywzMSBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIHRpbWVvdXQgPSBQeUZsb2F0X0FzRG91YmxlKHRvdXQpOwotICAgICAgICBpZiAodGltZW91dCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorI2lmZGVmIE1TX1dJTkRPV1MKKyAgICAgICAgdGltZV90IHNlYzsKKyAgICAgICAgaWYgKF9QeVRpbWVfT2JqZWN0VG9UaW1ldmFsKHRvdXQsICZzZWMsICZ0di50dl91c2VjKSA9PSAtMSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBpZiAodGltZW91dCA+IChkb3VibGUpTE9OR19NQVgpIHsKKyAgICAgICAgYXNzZXJ0KHNpemVvZih0di50dl9zZWMpID09IHNpemVvZihsb25nKSk7CisjaWYgU0laRU9GX1RJTUVfVCA+IFNJWkVPRl9MT05HCisgICAgICAgIGlmIChzZWMgPiBMT05HX01BWCkgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXQgcGVyaW9kIHRvbyBsb25nIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXQgaXMgdG9vIGxhcmdlIik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQotICAgICAgICBzZWNvbmRzID0gKGxvbmcpdGltZW91dDsKLSAgICAgICAgdGltZW91dCA9IHRpbWVvdXQgLSAoZG91YmxlKXNlY29uZHM7Ci0gICAgICAgIHR2LnR2X3NlYyA9IHNlY29uZHM7Ci0gICAgICAgIHR2LnR2X3VzZWMgPSAobG9uZykodGltZW91dCAqIDFFNik7CisjZW5kaWYKKyAgICAgICAgdHYudHZfc2VjID0gKGxvbmcpc2VjOworI2Vsc2UKKyAgICAgICAgLyogNjQtYml0IE9TIFggaGFzIHN0cnVjdCB0aW1ldmFsLnR2X3VzZWMgYXMgYW4gaW50IChhbmQgdGh1cyBzdGlsbCA0CisgICAgICAgICAgIGJ5dGVzIGFzIHJlcXVpcmVkKSwgYnV0IG5vIGxvbmdlciBkZWZpbmVkIGJ5IGEgbG9uZy4gKi8KKyAgICAgICAgbG9uZyB0dl91c2VjID0gdHYudHZfdXNlYzsKKyAgICAgICAgaWYgKF9QeVRpbWVfT2JqZWN0VG9UaW1ldmFsKHRvdXQsICZ0di50dl9zZWMsICZ0dl91c2VjKSA9PSAtMSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB0di50dl91c2VjID0gdHZfdXNlYzsKKyNlbmRpZgorICAgICAgICBpZiAodHYudHZfc2VjIDwgMCkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJ0aW1lb3V0IG11c3QgYmUgbm9uLW5lZ2F0aXZlIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQogICAgICAgICB0dnAgPSAmdHY7CiAgICAgfQogCkBAIC0yNjksMTEgKzI4NiwxMSBAQAogCiAjaWZkZWYgTVNfV0lORE9XUwogICAgIGlmIChuID09IFNPQ0tFVF9FUlJPUikgewotICAgICAgICBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycihTZWxlY3RFcnJvciwgV1NBR2V0TGFzdEVycm9yKCkpOworICAgICAgICBQeUVycl9TZXRFeGNGcm9tV2luZG93c0VycihQeUV4Y19PU0Vycm9yLCBXU0FHZXRMYXN0RXJyb3IoKSk7CiAgICAgfQogI2Vsc2UKICAgICBpZiAobiA8IDApIHsKLSAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFNlbGVjdEVycm9yKTsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgIH0KICNlbmRpZgogICAgIGVsc2UgewpAQCAtNDIwLDcgKzQzNyw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmIChQeURpY3RfR2V0SXRlbShzZWxmLT5kaWN0LCBrZXkpID09IE5VTEwpIHsKICAgICAgICAgZXJybm8gPSBFTk9FTlQ7Ci0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgdmFsdWUgPSBQeUxvbmdfRnJvbUxvbmcoZXZlbnRzKTsKQEAgLTUxOSw3ICs1MzYsNyBAQAogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAKICAgICBpZiAocG9sbF9yZXN1bHQgPCAwKSB7Ci0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhTZWxlY3RFcnJvcik7CisgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCkBAIC02NDUsNiArNjYyLDMzOSBAQAogICAgIHBvbGxfbWV0aG9kcywgICAgICAgICAgICAgICAvKnRwX21ldGhvZHMqLwogfTsKIAorI2lmZGVmIEhBVkVfU1lTX0RFVlBPTExfSAordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICBpbnQgZmRfZGV2cG9sbDsKKyAgICBpbnQgbWF4X25fZmRzOworICAgIGludCBuX2ZkczsKKyAgICBzdHJ1Y3QgcG9sbGZkICpmZHM7Cit9IGRldnBvbGxPYmplY3Q7CisKK3N0YXRpYyBQeVR5cGVPYmplY3QgZGV2cG9sbF9UeXBlOworCitzdGF0aWMgaW50IGRldnBvbGxfZmx1c2goZGV2cG9sbE9iamVjdCAqc2VsZikKK3sKKyAgICBpbnQgc2l6ZSwgbjsKKworICAgIGlmICghc2VsZi0+bl9mZHMpIHJldHVybiAwOworCisgICAgc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcG9sbGZkKSpzZWxmLT5uX2ZkczsKKyAgICBzZWxmLT5uX2ZkcyA9IDA7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgbiA9IHdyaXRlKHNlbGYtPmZkX2RldnBvbGwsIHNlbGYtPmZkcywgc2l6ZSk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmIChuID09IC0xICkgeworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfSU9FcnJvcik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKG4gPCBzaXplKSB7CisgICAgICAgIC8qCisgICAgICAgICoqIERhdGEgd3JpdGVkIHRvIC9kZXYvcG9sbCBpcyBhIGJpbmFyeSBkYXRhIHN0cnVjdHVyZS4gSXQgaXMgbm90CisgICAgICAgICoqIGNsZWFyIHdoYXQgdG8gZG8gaWYgYSBwYXJ0aWFsIHdyaXRlIG9jY3VycmVkLiBGb3Igbm93LCByYWlzZQorICAgICAgICAqKiBhbiBleGNlcHRpb24gYW5kIHNlZSBpZiB3ZSBhY3R1YWxseSBmb3VuZCB0aGlzIHByb2JsZW0gaW4KKyAgICAgICAgKiogdGhlIHdpbGQuCisgICAgICAgICoqIFNlZSBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlNjM5Ny4KKyAgICAgICAgKi8KKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0lPRXJyb3IsICJmYWlsZWQgdG8gd3JpdGUgYWxsIHBvbGxmZHMuICIKKyAgICAgICAgICAgICAgICAiUGxlYXNlLCByZXBvcnQgYXQgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy8uICIKKyAgICAgICAgICAgICAgICAiRGF0YSB0byByZXBvcnQ6IFNpemUgdHJpZWQ6ICVkLCBhY3R1YWwgc2l6ZSB3cml0dGVuOiAlZC4iLAorICAgICAgICAgICAgICAgIHNpemUsIG4pOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUHlPYmplY3QgKgoraW50ZXJuYWxfZGV2cG9sbF9yZWdpc3RlcihkZXZwb2xsT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgaW50IHJlbW92ZSkKK3sKKyAgICBQeU9iamVjdCAqbzsKKyAgICBpbnQgZmQsIGV2ZW50cyA9IFBPTExJTiB8IFBPTExQUkkgfCBQT0xMT1VUOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPfGk6cmVnaXN0ZXIiLCAmbywgJmV2ZW50cykpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZmQgPSBQeU9iamVjdF9Bc0ZpbGVEZXNjcmlwdG9yKG8pOworICAgIGlmIChmZCA9PSAtMSkgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAocmVtb3ZlKSB7CisgICAgICAgIHNlbGYtPmZkc1tzZWxmLT5uX2Zkc10uZmQgPSBmZDsKKyAgICAgICAgc2VsZi0+ZmRzW3NlbGYtPm5fZmRzXS5ldmVudHMgPSBQT0xMUkVNT1ZFOworCisgICAgICAgIGlmICgrK3NlbGYtPm5fZmRzID09IHNlbGYtPm1heF9uX2ZkcykgeworICAgICAgICAgICAgaWYgKGRldnBvbGxfZmx1c2goc2VsZikpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzZWxmLT5mZHNbc2VsZi0+bl9mZHNdLmZkID0gZmQ7CisgICAgc2VsZi0+ZmRzW3NlbGYtPm5fZmRzXS5ldmVudHMgPSBldmVudHM7CisKKyAgICBpZiAoKytzZWxmLT5uX2ZkcyA9PSBzZWxmLT5tYXhfbl9mZHMpIHsKKyAgICAgICAgaWYgKGRldnBvbGxfZmx1c2goc2VsZikpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworUHlEb2NfU1RSVkFSKGRldnBvbGxfcmVnaXN0ZXJfZG9jLAorInJlZ2lzdGVyKGZkIFssIGV2ZW50bWFza10gKSAtPiBOb25lXG5cblwKK1JlZ2lzdGVyIGEgZmlsZSBkZXNjcmlwdG9yIHdpdGggdGhlIHBvbGxpbmcgb2JqZWN0LlxuXAorZmQgLS0gZWl0aGVyIGFuIGludGVnZXIsIG9yIGFuIG9iamVjdCB3aXRoIGEgZmlsZW5vKCkgbWV0aG9kIHJldHVybmluZyBhblxuXAorICAgICAgaW50LlxuXAorZXZlbnRzIC0tIGFuIG9wdGlvbmFsIGJpdG1hc2sgZGVzY3JpYmluZyB0aGUgdHlwZSBvZiBldmVudHMgdG8gY2hlY2sgZm9yIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitkZXZwb2xsX3JlZ2lzdGVyKGRldnBvbGxPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIHJldHVybiBpbnRlcm5hbF9kZXZwb2xsX3JlZ2lzdGVyKHNlbGYsIGFyZ3MsIDApOworfQorCitQeURvY19TVFJWQVIoZGV2cG9sbF9tb2RpZnlfZG9jLAorIm1vZGlmeShmZFssIGV2ZW50bWFza10pIC0+IE5vbmVcblxuXAorTW9kaWZ5IGEgcG9zc2libGUgYWxyZWFkeSByZWdpc3RlcmVkIGZpbGUgZGVzY3JpcHRvci5cblwKK2ZkIC0tIGVpdGhlciBhbiBpbnRlZ2VyLCBvciBhbiBvYmplY3Qgd2l0aCBhIGZpbGVubygpIG1ldGhvZCByZXR1cm5pbmcgYW5cblwKKyAgICAgIGludC5cblwKK2V2ZW50cyAtLSBhbiBvcHRpb25hbCBiaXRtYXNrIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgZXZlbnRzIHRvIGNoZWNrIGZvciIpOworCitzdGF0aWMgUHlPYmplY3QgKgorZGV2cG9sbF9tb2RpZnkoZGV2cG9sbE9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgcmV0dXJuIGludGVybmFsX2RldnBvbGxfcmVnaXN0ZXIoc2VsZiwgYXJncywgMSk7Cit9CisKKworUHlEb2NfU1RSVkFSKGRldnBvbGxfdW5yZWdpc3Rlcl9kb2MsCisidW5yZWdpc3RlcihmZCkgLT4gTm9uZVxuXG5cCitSZW1vdmUgYSBmaWxlIGRlc2NyaXB0b3IgYmVpbmcgdHJhY2tlZCBieSB0aGUgcG9sbGluZyBvYmplY3QuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitkZXZwb2xsX3VucmVnaXN0ZXIoZGV2cG9sbE9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm8pCit7CisgICAgaW50IGZkOworCisgICAgZmQgPSBQeU9iamVjdF9Bc0ZpbGVEZXNjcmlwdG9yKCBvICk7CisgICAgaWYgKGZkID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHNlbGYtPmZkc1tzZWxmLT5uX2Zkc10uZmQgPSBmZDsKKyAgICBzZWxmLT5mZHNbc2VsZi0+bl9mZHNdLmV2ZW50cyA9IFBPTExSRU1PVkU7CisKKyAgICBpZiAoKytzZWxmLT5uX2ZkcyA9PSBzZWxmLT5tYXhfbl9mZHMpIHsKKyAgICAgICAgaWYgKGRldnBvbGxfZmx1c2goc2VsZikpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworUHlEb2NfU1RSVkFSKGRldnBvbGxfcG9sbF9kb2MsCisicG9sbCggW3RpbWVvdXRdICkgLT4gbGlzdCBvZiAoZmQsIGV2ZW50KSAyLXR1cGxlc1xuXG5cCitQb2xscyB0aGUgc2V0IG9mIHJlZ2lzdGVyZWQgZmlsZSBkZXNjcmlwdG9ycywgcmV0dXJuaW5nIGEgbGlzdCBjb250YWluaW5nIFxuXAorYW55IGRlc2NyaXB0b3JzIHRoYXQgaGF2ZSBldmVudHMgb3IgZXJyb3JzIHRvIHJlcG9ydC4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK2RldnBvbGxfcG9sbChkZXZwb2xsT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBzdHJ1Y3QgZHZwb2xsIGR2cDsKKyAgICBQeU9iamVjdCAqcmVzdWx0X2xpc3QgPSBOVUxMLCAqdG91dCA9IE5VTEw7CisgICAgaW50IHBvbGxfcmVzdWx0LCBpOworICAgIGxvbmcgdGltZW91dDsKKyAgICBQeU9iamVjdCAqdmFsdWUsICpudW0xLCAqbnVtMjsKKworICAgIGlmICghUHlBcmdfVW5wYWNrVHVwbGUoYXJncywgInBvbGwiLCAwLCAxLCAmdG91dCkpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogQ2hlY2sgdmFsdWVzIGZvciB0aW1lb3V0ICovCisgICAgaWYgKHRvdXQgPT0gTlVMTCB8fCB0b3V0ID09IFB5X05vbmUpCisgICAgICAgIHRpbWVvdXQgPSAtMTsKKyAgICBlbHNlIGlmICghUHlOdW1iZXJfQ2hlY2sodG91dCkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lb3V0IG11c3QgYmUgYW4gaW50ZWdlciBvciBOb25lIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgdG91dCA9IFB5TnVtYmVyX0xvbmcodG91dCk7CisgICAgICAgIGlmICghdG91dCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB0aW1lb3V0ID0gUHlMb25nX0FzTG9uZyh0b3V0KTsKKyAgICAgICAgUHlfREVDUkVGKHRvdXQpOworICAgICAgICBpZiAodGltZW91dCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKCh0aW1lb3V0IDwgLTEpIHx8ICh0aW1lb3V0ID4gSU5UX01BWCkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAidGltZW91dCBpcyBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKGRldnBvbGxfZmx1c2goc2VsZikpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZHZwLmRwX2ZkcyA9IHNlbGYtPmZkczsKKyAgICBkdnAuZHBfbmZkcyA9IHNlbGYtPm1heF9uX2ZkczsKKyAgICBkdnAuZHBfdGltZW91dCA9IHRpbWVvdXQ7CisKKyAgICAvKiBjYWxsIGRldnBvbGwoKSAqLworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICBwb2xsX3Jlc3VsdCA9IGlvY3RsKHNlbGYtPmZkX2RldnBvbGwsIERQX1BPTEwsICZkdnApOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisKKyAgICBpZiAocG9sbF9yZXN1bHQgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgLyogYnVpbGQgdGhlIHJlc3VsdCBsaXN0ICovCisKKyAgICByZXN1bHRfbGlzdCA9IFB5TGlzdF9OZXcocG9sbF9yZXN1bHQpOworICAgIGlmICghcmVzdWx0X2xpc3QpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGVsc2UgeworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcG9sbF9yZXN1bHQ7IGkrKykgeworICAgICAgICAgICAgbnVtMSA9IFB5TG9uZ19Gcm9tTG9uZyhzZWxmLT5mZHNbaV0uZmQpOworICAgICAgICAgICAgbnVtMiA9IFB5TG9uZ19Gcm9tTG9uZyhzZWxmLT5mZHNbaV0ucmV2ZW50cyk7CisgICAgICAgICAgICBpZiAoKG51bTEgPT0gTlVMTCkgfHwgKG51bTIgPT0gTlVMTCkpIHsKKyAgICAgICAgICAgICAgICBQeV9YREVDUkVGKG51bTEpOworICAgICAgICAgICAgICAgIFB5X1hERUNSRUYobnVtMik7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhbHVlID0gUHlUdXBsZV9QYWNrKDIsIG51bTEsIG51bTIpOworICAgICAgICAgICAgUHlfREVDUkVGKG51bTEpOworICAgICAgICAgICAgUHlfREVDUkVGKG51bTIpOworICAgICAgICAgICAgaWYgKHZhbHVlID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIGlmICgoUHlMaXN0X1NldEl0ZW0ocmVzdWx0X2xpc3QsIGksIHZhbHVlKSkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmVzdWx0X2xpc3Q7CisKKyAgZXJyb3I6CisgICAgUHlfREVDUkVGKHJlc3VsdF9saXN0KTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIGRldnBvbGxfbWV0aG9kc1tdID0geworICAgIHsicmVnaXN0ZXIiLCAgICAgICAgKFB5Q0Z1bmN0aW9uKWRldnBvbGxfcmVnaXN0ZXIsCisgICAgIE1FVEhfVkFSQVJHUywgIGRldnBvbGxfcmVnaXN0ZXJfZG9jfSwKKyAgICB7Im1vZGlmeSIsICAgICAgICAgIChQeUNGdW5jdGlvbilkZXZwb2xsX21vZGlmeSwKKyAgICAgTUVUSF9WQVJBUkdTLCAgZGV2cG9sbF9tb2RpZnlfZG9jfSwKKyAgICB7InVucmVnaXN0ZXIiLCAgICAgIChQeUNGdW5jdGlvbilkZXZwb2xsX3VucmVnaXN0ZXIsCisgICAgIE1FVEhfTywgICAgICAgIGRldnBvbGxfdW5yZWdpc3Rlcl9kb2N9LAorICAgIHsicG9sbCIsICAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKWRldnBvbGxfcG9sbCwKKyAgICAgTUVUSF9WQVJBUkdTLCAgZGV2cG9sbF9wb2xsX2RvY30sCisgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KK307CisKK3N0YXRpYyBkZXZwb2xsT2JqZWN0ICoKK25ld0RldlBvbGxPYmplY3Qodm9pZCkKK3sKKyAgICBkZXZwb2xsT2JqZWN0ICpzZWxmOworICAgIGludCBmZF9kZXZwb2xsLCBsaW1pdF9yZXN1bHQ7CisgICAgc3RydWN0IHBvbGxmZCAqZmRzOworICAgIHN0cnVjdCBybGltaXQgbGltaXQ7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgLyoKKyAgICAqKiBJZiB3ZSB0cnkgdG8gcHJvY2VzcyBtb3JlIHRoYXQgZ2V0cmxpbWl0KCkKKyAgICAqKiBmZHMsIHRoZSBrZXJuZWwgd2lsbCBnaXZlIGFuIGVycm9yLCBzbworICAgICoqIHdlIHNldCB0aGUgbGltaXQgaGVyZS4gSXQgaXMgYSBkeW5hbWljCisgICAgKiogdmFsdWUsIGJlY2F1c2Ugd2UgY2FuIGNoYW5nZSBybGltaXQoKSBhbnl0aW1lLgorICAgICovCisgICAgbGltaXRfcmVzdWx0ID0gZ2V0cmxpbWl0KFJMSU1JVF9OT0ZJTEUsICZsaW1pdCk7CisgICAgaWYgKGxpbWl0X3Jlc3VsdCAhPSAtMSkKKyAgICAgICAgZmRfZGV2cG9sbCA9IG9wZW4oIi9kZXYvcG9sbCIsIE9fUkRXUik7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIGlmIChsaW1pdF9yZXN1bHQgPT0gLTEpIHsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKGZkX2RldnBvbGwgPT0gLTEpIHsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lKFB5RXhjX0lPRXJyb3IsICIvZGV2L3BvbGwiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgZmRzID0gUHlNZW1fTkVXKHN0cnVjdCBwb2xsZmQsIGxpbWl0LnJsaW1fY3VyKTsKKyAgICBpZiAoZmRzID09IE5VTEwpIHsKKyAgICAgICAgY2xvc2UoZmRfZGV2cG9sbCk7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHNlbGYgPSBQeU9iamVjdF9OZXcoZGV2cG9sbE9iamVjdCwgJmRldnBvbGxfVHlwZSk7CisgICAgaWYgKHNlbGYgPT0gTlVMTCkgeworICAgICAgICBjbG9zZShmZF9kZXZwb2xsKTsKKyAgICAgICAgUHlNZW1fREVMKGZkcyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBzZWxmLT5mZF9kZXZwb2xsID0gZmRfZGV2cG9sbDsKKyAgICBzZWxmLT5tYXhfbl9mZHMgPSBsaW1pdC5ybGltX2N1cjsKKyAgICBzZWxmLT5uX2ZkcyA9IDA7CisgICAgc2VsZi0+ZmRzID0gZmRzOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKK3N0YXRpYyB2b2lkCitkZXZwb2xsX2RlYWxsb2MoZGV2cG9sbE9iamVjdCAqc2VsZikKK3sKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgY2xvc2Uoc2VsZi0+ZmRfZGV2cG9sbCk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKworICAgIFB5TWVtX0RFTChzZWxmLT5mZHMpOworCisgICAgUHlPYmplY3RfRGVsKHNlbGYpOworfQorCitzdGF0aWMgUHlUeXBlT2JqZWN0IGRldnBvbGxfVHlwZSA9IHsKKyAgICAvKiBUaGUgb2JfdHlwZSBmaWVsZCBtdXN0IGJlIGluaXRpYWxpemVkIGluIHRoZSBtb2R1bGUgaW5pdCBmdW5jdGlvbgorICAgICAqIHRvIGJlIHBvcnRhYmxlIHRvIFdpbmRvd3Mgd2l0aG91dCB1c2luZyBDKysuICovCisgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCisgICAgInNlbGVjdC5kZXZwb2xsIiwgICAgICAgICAgIC8qdHBfbmFtZSovCisgICAgc2l6ZW9mKGRldnBvbGxPYmplY3QpLCAgICAgIC8qdHBfYmFzaWNzaXplKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVtc2l6ZSovCisgICAgLyogbWV0aG9kcyAqLworICAgIChkZXN0cnVjdG9yKWRldnBvbGxfZGVhbGxvYywgLyp0cF9kZWFsbG9jKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9wcmludCovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0YXR0ciovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfc2V0YXR0ciovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcmVzZXJ2ZWQqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3JlcHIqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX251bWJlciovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfc2VxdWVuY2UqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX21hcHBpbmcqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2hhc2gqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2NhbGwqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3N0ciovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0YXR0cm8qLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3NldGF0dHJvKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19idWZmZXIqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgICAgICAgICAvKnRwX2ZsYWdzKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kb2MqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3RyYXZlcnNlKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jbGVhciovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfcmljaGNvbXBhcmUqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3dlYWtsaXN0b2Zmc2V0Ki8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVyKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVybmV4dCovCisgICAgZGV2cG9sbF9tZXRob2RzLCAgICAgICAgICAgIC8qdHBfbWV0aG9kcyovCit9OworI2VuZGlmICAvKiBIQVZFX1NZU19ERVZQT0xMX0ggKi8KKworCisKIFB5RG9jX1NUUlZBUihwb2xsX2RvYywKICJSZXR1cm5zIGEgcG9sbGluZyBvYmplY3QsIHdoaWNoIHN1cHBvcnRzIHJlZ2lzdGVyaW5nIGFuZFxuXAogdW5yZWdpc3RlcmluZyBmaWxlIGRlc2NyaXB0b3JzLCBhbmQgdGhlbiBwb2xsaW5nIHRoZW0gZm9yIEkvTyBldmVudHMuIik7CkBAIC02NTUsNiArMTAwNSwxOSBAQAogICAgIHJldHVybiAoUHlPYmplY3QgKiluZXdQb2xsT2JqZWN0KCk7CiB9CiAKKyNpZmRlZiBIQVZFX1NZU19ERVZQT0xMX0gKK1B5RG9jX1NUUlZBUihkZXZwb2xsX2RvYywKKyJSZXR1cm5zIGEgcG9sbGluZyBvYmplY3QsIHdoaWNoIHN1cHBvcnRzIHJlZ2lzdGVyaW5nIGFuZFxuXAordW5yZWdpc3RlcmluZyBmaWxlIGRlc2NyaXB0b3JzLCBhbmQgdGhlbiBwb2xsaW5nIHRoZW0gZm9yIEkvTyBldmVudHMuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitzZWxlY3RfZGV2cG9sbChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnVudXNlZCkKK3sKKyAgICByZXR1cm4gKFB5T2JqZWN0ICopbmV3RGV2UG9sbE9iamVjdCgpOworfQorI2VuZGlmCisKKwogI2lmZGVmIF9fQVBQTEVfXwogLyoKICAqIE9uIHNvbWUgc3lzdGVtcyBwb2xsKCkgc2V0cyBlcnJubyBvbiBpbnZhbGlkIGZpbGUgZGVzY3JpcHRvcnMuIFdlIHRlc3QKQEAgLTczMCwyMCArMTA5MywxMCBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotbmV3UHlFcG9sbF9PYmplY3QoUHlUeXBlT2JqZWN0ICp0eXBlLCBpbnQgc2l6ZWhpbnQsIFNPQ0tFVCBmZCkKK25ld1B5RXBvbGxfT2JqZWN0KFB5VHlwZU9iamVjdCAqdHlwZSwgaW50IHNpemVoaW50LCBpbnQgZmxhZ3MsIFNPQ0tFVCBmZCkKIHsKICAgICBweUVwb2xsX09iamVjdCAqc2VsZjsKIAotICAgIGlmIChzaXplaGludCA9PSAtMSkgewotICAgICAgICBzaXplaGludCA9IEZEX1NFVFNJWkUtMTsKLSAgICB9Ci0gICAgZWxzZSBpZiAoc2l6ZWhpbnQgPCAxKSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgInNpemVoaW50IG11c3QgYmUgZ3JlYXRlciB6ZXJvLCBnb3QgJWQiLAotICAgICAgICAgICAgICAgICAgICAgc2l6ZWhpbnQpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KICAgICBhc3NlcnQodHlwZSAhPSBOVUxMICYmIHR5cGUtPnRwX2FsbG9jICE9IE5VTEwpOwogICAgIHNlbGYgPSAocHlFcG9sbF9PYmplY3QgKikgdHlwZS0+dHBfYWxsb2ModHlwZSwgMCk7CiAgICAgaWYgKHNlbGYgPT0gTlVMTCkKQEAgLTc1MSw2ICsxMTA0LDExIEBACiAKICAgICBpZiAoZmQgPT0gLTEpIHsKICAgICAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworI2lmZGVmIEhBVkVfRVBPTExfQ1JFQVRFMQorICAgICAgICBpZiAoZmxhZ3MpCisgICAgICAgICAgICBzZWxmLT5lcGZkID0gZXBvbGxfY3JlYXRlMShmbGFncyk7CisgICAgICAgIGVsc2UKKyNlbmRpZgogICAgICAgICBzZWxmLT5lcGZkID0gZXBvbGxfY3JlYXRlKHNpemVoaW50KTsKICAgICAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICAgICB9CkBAIC03NTksNyArMTExNyw3IEBACiAgICAgfQogICAgIGlmIChzZWxmLT5lcGZkIDwgMCkgewogICAgICAgICBQeV9ERUNSRUYoc2VsZik7Ci0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgcmV0dXJuIChQeU9iamVjdCAqKXNlbGY7CkBAIC03NjksMTQgKzExMjcsMTggQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBweWVwb2xsX25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKLSAgICBpbnQgc2l6ZWhpbnQgPSAtMTsKLSAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7InNpemVoaW50IiwgTlVMTH07CisgICAgaW50IGZsYWdzID0gMCwgc2l6ZWhpbnQgPSBGRF9TRVRTSVpFIC0gMTsKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7InNpemVoaW50IiwgImZsYWdzIiwgTlVMTH07CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifGk6ZXBvbGwiLCBrd2xpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNpemVoaW50KSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifGlpOmVwb2xsIiwga3dsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaXplaGludCwgJmZsYWdzKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKHNpemVoaW50IDwgMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIm5lZ2F0aXZlIHNpemVoaW50Iik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KIAotICAgIHJldHVybiBuZXdQeUVwb2xsX09iamVjdCh0eXBlLCBzaXplaGludCwgLTEpOworICAgIHJldHVybiBuZXdQeUVwb2xsX09iamVjdCh0eXBlLCBzaXplaGludCwgZmxhZ3MsIC0xKTsKIH0KIAogCkBAIC03OTIsNyArMTE1NCw3IEBACiB7CiAgICAgZXJybm8gPSBweWVwb2xsX2ludGVybmFsX2Nsb3NlKHNlbGYpOwogICAgIGlmIChlcnJubyA8IDApIHsKLSAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBQeV9SRVRVUk5fTk9ORTsKQEAgLTgzNCw3ICsxMTk2LDcgQEAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImk6ZnJvbWZkIiwgJmZkKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICByZXR1cm4gbmV3UHlFcG9sbF9PYmplY3QoKFB5VHlwZU9iamVjdCopY2xzLCAtMSwgZmQpOworICAgIHJldHVybiBuZXdQeUVwb2xsX09iamVjdCgoUHlUeXBlT2JqZWN0KiljbHMsIEZEX1NFVFNJWkUgLSAxLCAwLCBmZCk7CiB9CiAKIFB5RG9jX1NUUlZBUihweWVwb2xsX2Zyb21mZF9kb2MsCkBAIC04ODUsNyArMTI0Nyw3IEBACiAgICAgfQogCiAgICAgaWYgKHJlc3VsdCA8IDApIHsKLSAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBQeV9SRVRVUk5fTk9ORTsKQEAgLTkwOSw3ICsxMjcxLDcgQEAKIFB5RG9jX1NUUlZBUihweWVwb2xsX3JlZ2lzdGVyX2RvYywKICJyZWdpc3RlcihmZFssIGV2ZW50bWFza10pIC0+IE5vbmVcblwKIFxuXAotUmVnaXN0ZXJzIGEgbmV3IGZkIG9yIHJhaXNlcyBhbiBJT0Vycm9yIGlmIHRoZSBmZCBpcyBhbHJlYWR5IHJlZ2lzdGVyZWQuXG5cCitSZWdpc3RlcnMgYSBuZXcgZmQgb3IgcmFpc2VzIGFuIE9TRXJyb3IgaWYgdGhlIGZkIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5cblwKIGZkIGlzIHRoZSB0YXJnZXQgZmlsZSBkZXNjcmlwdG9yIG9mIHRoZSBvcGVyYXRpb24uXG5cCiBldmVudHMgaXMgYSBiaXQgc2V0IGNvbXBvc2VkIG9mIHRoZSB2YXJpb3VzIEVQT0xMIGNvbnN0YW50czsgdGhlIGRlZmF1bHRcblwKIGlzIEVQT0xMX0lOIHwgRVBPTExfT1VUIHwgRVBPTExfUFJJLlxuXApAQCAtMTAwOCw3ICsxMzcwLDcgQEAKICAgICBuZmRzID0gZXBvbGxfd2FpdChzZWxmLT5lcGZkLCBldnMsIG1heGV2ZW50cywgdGltZW91dCk7CiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICAgICBpZiAobmZkcyA8IDApIHsKLSAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQogCkBAIC0xMDYzLDcgKzE0MjUsNyBAQAogfTsKIAogUHlEb2NfU1RSVkFSKHB5ZXBvbGxfZG9jLAotInNlbGVjdC5lcG9sbChbc2l6ZWhpbnQ9LTFdKVxuXAorInNlbGVjdC5lcG9sbChzaXplaGludD0tMSwgZmxhZ3M9MClcblwKIFxuXAogUmV0dXJucyBhbiBlcG9sbGluZyBvYmplY3RcblwKIFxuXApAQCAtMTM5OSw3ICsxNzYxLDcgQEAKICAgICB9CiAgICAgaWYgKHNlbGYtPmtxZmQgPCAwKSB7CiAgICAgICAgIFB5X0RFQ1JFRihzZWxmKTsKLSAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICByZXR1cm4gKFB5T2JqZWN0ICopc2VsZjsKQEAgLTE0MzEsNyArMTc5Myw3IEBACiB7CiAgICAgZXJybm8gPSBrcXVldWVfcXVldWVfaW50ZXJuYWxfY2xvc2Uoc2VsZik7CiAgICAgaWYgKGVycm5vIDwgMCkgewotICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfSU9FcnJvcik7CisgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIFB5X1JFVFVSTl9OT05FOwpAQCAtMTQ5NCw3ICsxODU2LDcgQEAKICAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKICAgICBzdHJ1Y3Qga2V2ZW50ICpldmwgPSBOVUxMOwogICAgIHN0cnVjdCBrZXZlbnQgKmNobCA9IE5VTEw7Ci0gICAgc3RydWN0IHRpbWVzcGVjIHRpbWVvdXRzcGVjOworICAgIHN0cnVjdCB0aW1lc3BlYyB0aW1lb3V0OwogICAgIHN0cnVjdCB0aW1lc3BlYyAqcHRpbWVvdXRzcGVjOwogCiAgICAgaWYgKHNlbGYtPmtxZmQgPCAwKQpAQCAtMTUxNCwyOCArMTg3NiwxNiBAQAogICAgICAgICBwdGltZW91dHNwZWMgPSBOVUxMOwogICAgIH0KICAgICBlbHNlIGlmIChQeU51bWJlcl9DaGVjayhvdGltZW91dCkpIHsKLSAgICAgICAgZG91YmxlIHRpbWVvdXQ7Ci0gICAgICAgIGxvbmcgc2Vjb25kczsKKyAgICAgICAgaWYgKF9QeVRpbWVfT2JqZWN0VG9UaW1lc3BlYyhvdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdGltZW91dC50dl9zZWMsICZ0aW1lb3V0LnR2X25zZWMpID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICAgICAgdGltZW91dCA9IFB5RmxvYXRfQXNEb3VibGUob3RpbWVvdXQpOwotICAgICAgICBpZiAodGltZW91dCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIGlmICh0aW1lb3V0ID4gKGRvdWJsZSlMT05HX01BWCkgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXQgcGVyaW9kIHRvbyBsb25nIik7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBpZiAodGltZW91dCA8IDApIHsKKyAgICAgICAgaWYgKHRpbWVvdXQudHZfc2VjIDwgMCkgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXQgbXVzdCBiZSBwb3NpdGl2ZSBvciBOb25lIik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQotCi0gICAgICAgIHNlY29uZHMgPSAobG9uZyl0aW1lb3V0OwotICAgICAgICB0aW1lb3V0ID0gdGltZW91dCAtIChkb3VibGUpc2Vjb25kczsKLSAgICAgICAgdGltZW91dHNwZWMudHZfc2VjID0gc2Vjb25kczsKLSAgICAgICAgdGltZW91dHNwZWMudHZfbnNlYyA9IChsb25nKSh0aW1lb3V0ICogMUU5KTsKLSAgICAgICAgcHRpbWVvdXRzcGVjID0gJnRpbWVvdXRzcGVjOworICAgICAgICBwdGltZW91dHNwZWMgPSAmdGltZW91dDsKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCkBAIC0xNzEyLDYgKzIwNjIsMTEgQEAKIH07CiAKICNlbmRpZiAvKiBIQVZFX0tRVUVVRSAqLworCisKKworCisKIC8qICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqLwogCiBQeURvY19TVFJWQVIoc2VsZWN0X2RvYywKQEAgLTE3NDMsNiArMjA5OCw5IEBACiAjaWZkZWYgSEFWRV9QT0xMCiAgICAgeyJwb2xsIiwgICAgICAgICAgICBzZWxlY3RfcG9sbCwgICAgTUVUSF9OT0FSR1MsICAgIHBvbGxfZG9jfSwKICNlbmRpZiAvKiBIQVZFX1BPTEwgKi8KKyNpZmRlZiBIQVZFX1NZU19ERVZQT0xMX0gKKyAgICB7ImRldnBvbGwiLCAgICAgICAgIHNlbGVjdF9kZXZwb2xsLCBNRVRIX05PQVJHUywgICAgZGV2cG9sbF9kb2N9LAorI2VuZGlmCiAgICAgezAsICAgICAgICAgMH0sICAgICAvKiBzZW50aW5lbCAqLwogfTsKIApAQCAtMTc2NSw2ICsyMTIzLDkgQEAKICAgICBOVUxMCiB9OwogCisKKworCiBQeU1PRElOSVRfRlVOQwogUHlJbml0X3NlbGVjdCh2b2lkKQogewpAQCAtMTc3Myw5ICsyMTM0LDggQEAKICAgICBpZiAobSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIFNlbGVjdEVycm9yID0gUHlFcnJfTmV3RXhjZXB0aW9uKCJzZWxlY3QuZXJyb3IiLCBOVUxMLCBOVUxMKTsKLSAgICBQeV9JTkNSRUYoU2VsZWN0RXJyb3IpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiZXJyb3IiLCBTZWxlY3RFcnJvcik7CisgICAgUHlfSU5DUkVGKFB5RXhjX09TRXJyb3IpOworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiZXJyb3IiLCBQeUV4Y19PU0Vycm9yKTsKIAogI2lmZGVmIFBJUEVfQlVGCiAjaWZkZWYgSEFWRV9CUk9LRU5fUElQRV9CVUYKQEAgLTE4MjIsNiArMjE4MiwxMSBAQAogICAgIH0KICNlbmRpZiAvKiBIQVZFX1BPTEwgKi8KIAorI2lmZGVmIEhBVkVfU1lTX0RFVlBPTExfSAorICAgIGlmIChQeVR5cGVfUmVhZHkoJmRldnBvbGxfVHlwZSkgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9FUE9MTAogICAgIFB5X1RZUEUoJnB5RXBvbGxfVHlwZSkgPSAmUHlUeXBlX1R5cGU7CiAgICAgaWYgKFB5VHlwZV9SZWFkeSgmcHlFcG9sbF9UeXBlKSA8IDApCkBAIC0xODQ2LDYgKzIyMTEsMTAgQEAKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRVBPTExXUk5PUk0iLCBFUE9MTFdSTk9STSk7CiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVQT0xMV1JCQU5EIiwgRVBPTExXUkJBTkQpOwogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJFUE9MTE1TRyIsIEVQT0xMTVNHKTsKKworI2lmZGVmIEVQT0xMX0NMT0VYRUMKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiRVBPTExfQ0xPRVhFQyIsIEVQT0xMX0NMT0VYRUMpOworI2VuZGlmCiAjZW5kaWYgLyogSEFWRV9FUE9MTCAqLwogCiAjaWZkZWYgSEFWRV9LUVVFVUUKZGlmZiAtLWdpdCBhL01vZHVsZXMvc2hhMW1vZHVsZS5jIGIvTW9kdWxlcy9zaGExbW9kdWxlLmMKaW5kZXggYjI1YmQ0NC4uYTczM2M0YiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9zaGExbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9zaGExbW9kdWxlLmMKQEAgLTE4NCw3ICsxODQsOCBAQAogICAgSW5pdGlhbGl6ZSB0aGUgaGFzaCBzdGF0ZQogICAgQHBhcmFtIHNoYTEgICBUaGUgaGFzaCBzdGF0ZSB5b3Ugd2lzaCB0byBpbml0aWFsaXplCiAqLwotdm9pZCBzaGExX2luaXQoc3RydWN0IHNoYTFfc3RhdGUgKnNoYTEpCitzdGF0aWMgdm9pZAorc2hhMV9pbml0KHN0cnVjdCBzaGExX3N0YXRlICpzaGExKQogewogICAgYXNzZXJ0KHNoYTEgIT0gTlVMTCk7CiAgICBzaGExLT5zdGF0ZVswXSA9IDB4Njc0NTIzMDFVTDsKQEAgLTIwMiw3ICsyMDMsOCBAQAogICAgQHBhcmFtIGluICAgICBUaGUgZGF0YSB0byBoYXNoCiAgICBAcGFyYW0gaW5sZW4gIFRoZSBsZW5ndGggb2YgdGhlIGRhdGEgKG9jdGV0cykKICovCi12b2lkIHNoYTFfcHJvY2VzcyhzdHJ1Y3Qgc2hhMV9zdGF0ZSAqc2hhMSwKK3N0YXRpYyB2b2lkCitzaGExX3Byb2Nlc3Moc3RydWN0IHNoYTFfc3RhdGUgKnNoYTEsCiAgICAgICAgICAgICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbiwgUHlfc3NpemVfdCBpbmxlbikKIHsKICAgICBQeV9zc2l6ZV90IG47CkBAIC0yMTgsNyArMjIwLDcgQEAKICAgICAgICAgICAgaW4gICAgICAgICAgICAgKz0gU0hBMV9CTE9DS1NJWkU7CiAgICAgICAgICAgIGlubGVuICAgICAgICAgIC09IFNIQTFfQkxPQ0tTSVpFOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICBuID0gTUlOKGlubGVuLCAoU0hBMV9CTE9DS1NJWkUgLSBzaGExLT5jdXJsZW4pKTsKKyAgICAgICAgICAgbiA9IE1JTihpbmxlbiwgKFB5X3NzaXplX3QpKFNIQTFfQkxPQ0tTSVpFIC0gc2hhMS0+Y3VybGVuKSk7CiAgICAgICAgICAgIG1lbWNweShzaGExLT5idWYgKyBzaGExLT5jdXJsZW4sIGluLCAoc2l6ZV90KW4pOwogICAgICAgICAgICBzaGExLT5jdXJsZW4gICArPSBuOwogICAgICAgICAgICBpbiAgICAgICAgICAgICArPSBuOwpAQCAtMjM3LDcgKzIzOSw4IEBACiAgICBAcGFyYW0gc2hhMSAgVGhlIGhhc2ggc3RhdGUKICAgIEBwYXJhbSBvdXQgW291dF0gVGhlIGRlc3RpbmF0aW9uIG9mIHRoZSBoYXNoICgyMCBieXRlcykKICovCi12b2lkIHNoYTFfZG9uZShzdHJ1Y3Qgc2hhMV9zdGF0ZSAqc2hhMSwgdW5zaWduZWQgY2hhciAqb3V0KQorc3RhdGljIHZvaWQKK3NoYTFfZG9uZShzdHJ1Y3Qgc2hhMV9zdGF0ZSAqc2hhMSwgdW5zaWduZWQgY2hhciAqb3V0KQogewogICAgIGludCBpOwogCkBAIC0zNTIsNyArMzU1LDcgQEAKICAgICB1bnNpZ25lZCBjaGFyIGRpZ2VzdFtTSEExX0RJR0VTVFNJWkVdOwogICAgIHN0cnVjdCBzaGExX3N0YXRlIHRlbXA7CiAgICAgUHlPYmplY3QgKnJldHZhbDsKLSAgICBQeV9VTklDT0RFICpoZXhfZGlnZXN0OworICAgIFB5X1VDUzEgKmhleF9kaWdlc3Q7CiAgICAgaW50IGksIGo7CiAKICAgICAvKiBHZXQgdGhlIHJhdyAoYmluYXJ5KSBkaWdlc3QgdmFsdWUgKi8KQEAgLTM2MCwyNSArMzYzLDIwIEBACiAgICAgc2hhMV9kb25lKCZ0ZW1wLCBkaWdlc3QpOwogCiAgICAgLyogQ3JlYXRlIGEgbmV3IHN0cmluZyAqLwotICAgIHJldHZhbCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBTSEExX0RJR0VTVFNJWkUgKiAyKTsKKyAgICByZXR2YWwgPSBQeVVuaWNvZGVfTmV3KFNIQTFfRElHRVNUU0laRSAqIDIsIDEyNyk7CiAgICAgaWYgKCFyZXR2YWwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBoZXhfZGlnZXN0ID0gUHlVbmljb2RlX0FTX1VOSUNPREUocmV0dmFsKTsKLSAgICBpZiAoIWhleF9kaWdlc3QpIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihyZXR2YWwpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQorICAgIGhleF9kaWdlc3QgPSBQeVVuaWNvZGVfMUJZVEVfREFUQShyZXR2YWwpOwogCiAgICAgLyogTWFrZSBoZXggdmVyc2lvbiBvZiB0aGUgZGlnZXN0ICovCiAgICAgZm9yKGk9aj0wOyBpPFNIQTFfRElHRVNUU0laRTsgaSsrKSB7Ci0gICAgICAgIGNoYXIgYzsKKyAgICAgICAgdW5zaWduZWQgY2hhciBjOwogICAgICAgICBjID0gKGRpZ2VzdFtpXSA+PiA0KSAmIDB4ZjsKLSAgICAgICAgYyA9IChjPjkpID8gYysnYSctMTAgOiBjICsgJzAnOwotICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBjOworICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBQeV9oZXhkaWdpdHNbY107CiAgICAgICAgIGMgPSAoZGlnZXN0W2ldICYgMHhmKTsKLSAgICAgICAgYyA9IChjPjkpID8gYysnYSctMTAgOiBjICsgJzAnOwotICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBjOworICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBQeV9oZXhkaWdpdHNbY107CiAgICAgfQorICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kocmV0dmFsLCAxKSk7CiAgICAgcmV0dXJuIHJldHZhbDsKIH0KIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9zaGEyNTZtb2R1bGUuYyBiL01vZHVsZXMvc2hhMjU2bW9kdWxlLmMKaW5kZXggODYxNzIxMC4uNzZkOTFhZiAxMDA2NDQKLS0tIGEvTW9kdWxlcy9zaGEyNTZtb2R1bGUuYworKysgYi9Nb2R1bGVzL3NoYTI1Nm1vZHVsZS5jCkBAIC00NDUsNyArNDQ1LDcgQEAKICAgICB1bnNpZ25lZCBjaGFyIGRpZ2VzdFtTSEFfRElHRVNUU0laRV07CiAgICAgU0hBb2JqZWN0IHRlbXA7CiAgICAgUHlPYmplY3QgKnJldHZhbDsKLSAgICBQeV9VTklDT0RFICpoZXhfZGlnZXN0OworICAgIFB5X1VDUzEgKmhleF9kaWdlc3Q7CiAgICAgaW50IGksIGo7CiAKICAgICAvKiBHZXQgdGhlIHJhdyAoYmluYXJ5KSBkaWdlc3QgdmFsdWUgKi8KQEAgLTQ1MywyNSArNDUzLDIwIEBACiAgICAgc2hhX2ZpbmFsKGRpZ2VzdCwgJnRlbXApOwogCiAgICAgLyogQ3JlYXRlIGEgbmV3IHN0cmluZyAqLwotICAgIHJldHZhbCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBzZWxmLT5kaWdlc3RzaXplICogMik7CisgICAgcmV0dmFsID0gUHlVbmljb2RlX05ldyhzZWxmLT5kaWdlc3RzaXplICogMiwgMTI3KTsKICAgICBpZiAoIXJldHZhbCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGhleF9kaWdlc3QgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXR2YWwpOwotICAgIGlmICghaGV4X2RpZ2VzdCkgewotICAgICAgICAgICAgUHlfREVDUkVGKHJldHZhbCk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgaGV4X2RpZ2VzdCA9IFB5VW5pY29kZV8xQllURV9EQVRBKHJldHZhbCk7CiAKICAgICAvKiBNYWtlIGhleCB2ZXJzaW9uIG9mIHRoZSBkaWdlc3QgKi8KICAgICBmb3IoaT1qPTA7IGk8c2VsZi0+ZGlnZXN0c2l6ZTsgaSsrKSB7Ci0gICAgICAgIGNoYXIgYzsKKyAgICAgICAgdW5zaWduZWQgY2hhciBjOwogICAgICAgICBjID0gKGRpZ2VzdFtpXSA+PiA0KSAmIDB4ZjsKLSAgICAgICAgYyA9IChjPjkpID8gYysnYSctMTAgOiBjICsgJzAnOwotICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBjOworICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBQeV9oZXhkaWdpdHNbY107CiAgICAgICAgIGMgPSAoZGlnZXN0W2ldICYgMHhmKTsKLSAgICAgICAgYyA9IChjPjkpID8gYysnYSctMTAgOiBjICsgJzAnOwotICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBjOworICAgICAgICBoZXhfZGlnZXN0W2orK10gPSBQeV9oZXhkaWdpdHNbY107CiAgICAgfQorICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kocmV0dmFsLCAxKSk7CiAgICAgcmV0dXJuIHJldHZhbDsKIH0KIApkaWZmIC0tZ2l0IGEvTW9kdWxlcy9zaGE1MTJtb2R1bGUuYyBiL01vZHVsZXMvc2hhNTEybW9kdWxlLmMKaW5kZXggMGZhYWY1Yy4uODhmOGE2NCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9zaGE1MTJtb2R1bGUuYworKysgYi9Nb2R1bGVzL3NoYTUxMm1vZHVsZS5jCkBAIC01MTEsNyArNTExLDcgQEAKICAgICB1bnNpZ25lZCBjaGFyIGRpZ2VzdFtTSEFfRElHRVNUU0laRV07CiAgICAgU0hBb2JqZWN0IHRlbXA7CiAgICAgUHlPYmplY3QgKnJldHZhbDsKLSAgICBQeV9VTklDT0RFICpoZXhfZGlnZXN0OworICAgIFB5X1VDUzEgKmhleF9kaWdlc3Q7CiAgICAgaW50IGksIGo7CiAKICAgICAvKiBHZXQgdGhlIHJhdyAoYmluYXJ5KSBkaWdlc3QgdmFsdWUgKi8KQEAgLTUxOSwyNSArNTE5LDIwIEBACiAgICAgc2hhNTEyX2ZpbmFsKGRpZ2VzdCwgJnRlbXApOwogCiAgICAgLyogQ3JlYXRlIGEgbmV3IHN0cmluZyAqLwotICAgIHJldHZhbCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBzZWxmLT5kaWdlc3RzaXplICogMik7CisgICAgcmV0dmFsID0gUHlVbmljb2RlX05ldyhzZWxmLT5kaWdlc3RzaXplICogMiwgMTI3KTsKICAgICBpZiAoIXJldHZhbCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGhleF9kaWdlc3QgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXR2YWwpOwotICAgIGlmICghaGV4X2RpZ2VzdCkgewotICAgICAgICAgICAgUHlfREVDUkVGKHJldHZhbCk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgaGV4X2RpZ2VzdCA9IFB5VW5pY29kZV8xQllURV9EQVRBKHJldHZhbCk7CiAKICAgICAvKiBNYWtlIGhleCB2ZXJzaW9uIG9mIHRoZSBkaWdlc3QgKi8KICAgICBmb3IgKGk9aj0wOyBpPHNlbGYtPmRpZ2VzdHNpemU7IGkrKykgewotICAgICAgICBjaGFyIGM7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgYzsKICAgICAgICAgYyA9IChkaWdlc3RbaV0gPj4gNCkgJiAweGY7Ci0gICAgICAgIGMgPSAoYz45KSA/IGMrJ2EnLTEwIDogYyArICcwJzsKLSAgICAgICAgaGV4X2RpZ2VzdFtqKytdID0gYzsKKyAgICAgICAgaGV4X2RpZ2VzdFtqKytdID0gUHlfaGV4ZGlnaXRzW2NdOwogICAgICAgICBjID0gKGRpZ2VzdFtpXSAmIDB4Zik7Ci0gICAgICAgIGMgPSAoYz45KSA/IGMrJ2EnLTEwIDogYyArICcwJzsKLSAgICAgICAgaGV4X2RpZ2VzdFtqKytdID0gYzsKKyAgICAgICAgaGV4X2RpZ2VzdFtqKytdID0gUHlfaGV4ZGlnaXRzW2NdOwogICAgIH0KKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJldHZhbCwgMSkpOwogICAgIHJldHVybiByZXR2YWw7CiB9CiAKZGlmZiAtLWdpdCBhL01vZHVsZXMvc2lnbmFsbW9kdWxlLmMgYi9Nb2R1bGVzL3NpZ25hbG1vZHVsZS5jCmluZGV4IDMyY2Q4YmIuLjJlYjdmMjkgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvc2lnbmFsbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9zaWduYWxtb2R1bGUuYwpAQCAtMjIsNiArMjIsMTQgQEAKICNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKEhBVkVfUFRIUkVBRF9TSUdNQVNLKSAmJiAhZGVmaW5lZChIQVZFX0JST0tFTl9QVEhSRUFEX1NJR01BU0spCisjICBkZWZpbmUgUFlQVEhSRUFEX1NJR01BU0sKKyNlbmRpZgorCisjaWYgZGVmaW5lZChQWVBUSFJFQURfU0lHTUFTSykgJiYgZGVmaW5lZChIQVZFX1BUSFJFQURfSCkKKyMgIGluY2x1ZGUgPHB0aHJlYWQuaD4KKyNlbmRpZgorCiAjaWZuZGVmIFNJR19FUlIKICNkZWZpbmUgU0lHX0VSUiAoKFB5T1Nfc2lnaGFuZGxlcl90KSgtMSkpCiAjZW5kaWYKQEAgLTEwMSw2ICsxMDksMTAgQEAKIAogc3RhdGljIFB5T1Nfc2lnaGFuZGxlcl90IG9sZF9zaWdpbnRoYW5kbGVyID0gU0lHX0RGTDsKIAorI2lmZGVmIE1TX1dJTkRPV1MKK3N0YXRpYyBIQU5ETEUgc2lnaW50X2V2ZW50ID0gTlVMTDsKKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9HRVRJVElNRVIKIHN0YXRpYyBQeU9iamVjdCAqSXRpbWVyRXJyb3I7CiAKQEAgLTE2OCwxNSArMTgwLDE5IEBACiBzdGF0aWMgdm9pZAogdHJpcF9zaWduYWwoaW50IHNpZ19udW0pCiB7CisgICAgdW5zaWduZWQgY2hhciBieXRlOworCiAgICAgSGFuZGxlcnNbc2lnX251bV0udHJpcHBlZCA9IDE7CisgICAgaWYgKHdha2V1cF9mZCAhPSAtMSkgeworICAgICAgICBieXRlID0gKHVuc2lnbmVkIGNoYXIpc2lnX251bTsKKyAgICAgICAgd3JpdGUod2FrZXVwX2ZkLCAmYnl0ZSwgMSk7CisgICAgfQogICAgIGlmIChpc190cmlwcGVkKQogICAgICAgICByZXR1cm47CiAgICAgLyogU2V0IGlzX3RyaXBwZWQgYWZ0ZXIgc2V0dGluZyAudHJpcHBlZCwgYXMgaXQgZ2V0cwogICAgICAgIGNsZWFyZWQgaW4gUHlFcnJfQ2hlY2tTaWduYWxzKCkgYmVmb3JlIC50cmlwcGVkLiAqLwogICAgIGlzX3RyaXBwZWQgPSAxOwogICAgIFB5X0FkZFBlbmRpbmdDYWxsKGNoZWNrc2lnbmFsc193aXRoYXJnLCBOVUxMKTsKLSAgICBpZiAod2FrZXVwX2ZkICE9IC0xKQotICAgICAgICB3cml0ZSh3YWtldXBfZmQsICJcMCIsIDEpOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMjE3LDYgKzIzMywxMSBAQAogICAgIC8qIElzc3VlICMxMDMxMTogYXN5bmNocm9ub3VzbHkgZXhlY3V0aW5nIHNpZ25hbCBoYW5kbGVycyBzaG91bGQgbm90CiAgICAgICAgbXV0YXRlIGVycm5vIHVuZGVyIHRoZSBmZWV0IG9mIHVuc3VzcGVjdGluZyBDIGNvZGUuICovCiAgICAgZXJybm8gPSBzYXZlX2Vycm5vOworCisjaWZkZWYgTVNfV0lORE9XUworICAgIGlmIChzaWdfbnVtID09IFNJR0lOVCkKKyAgICAgICAgU2V0RXZlbnQoc2lnaW50X2V2ZW50KTsKKyNlbmRpZgogfQogCiAKQEAgLTMxMyw3ICszMzQsNyBAQAogICAgIGVsc2UKICAgICAgICAgZnVuYyA9IHNpZ25hbF9oYW5kbGVyOwogICAgIGlmIChQeU9TX3NldHNpZyhzaWdfbnVtLCBmdW5jKSA9PSBTSUdfRVJSKSB7Ci0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19SdW50aW1lRXJyb3IpOworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBvbGRfaGFuZGxlciA9IEhhbmRsZXJzW3NpZ19udW1dLmZ1bmM7CkBAIC0zODIsNyArNDAzLDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIGlmIChzaWdpbnRlcnJ1cHQoc2lnX251bSwgZmxhZyk8MCkgewotICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfUnVudGltZUVycm9yKTsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTQ5NSw2ICs1MTYsMzQxIEBACiBSZXR1cm5zIGN1cnJlbnQgdmFsdWUgb2YgZ2l2ZW4gaXRpbWVyLiIpOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFBZUFRIUkVBRF9TSUdNQVNLKSB8fCBkZWZpbmVkKEhBVkVfU0lHV0FJVCkgfHwgXAorICAgICAgICBkZWZpbmVkKEhBVkVfU0lHV0FJVElORk8pIHx8IGRlZmluZWQoSEFWRV9TSUdUSU1FRFdBSVQpCisvKiBDb252ZXJ0IGFuIGl0ZXJhYmxlIHRvIGEgc2lnc2V0LgorICAgUmV0dXJuIDAgb24gc3VjY2VzcywgcmV0dXJuIC0xIGFuZCByYWlzZSBhbiBleGNlcHRpb24gb24gZXJyb3IuICovCisKK3N0YXRpYyBpbnQKK2l0ZXJhYmxlX3RvX3NpZ3NldChQeU9iamVjdCAqaXRlcmFibGUsIHNpZ3NldF90ICptYXNrKQoreworICAgIGludCByZXN1bHQgPSAtMTsKKyAgICBQeU9iamVjdCAqaXRlcmF0b3IsICppdGVtOworICAgIGxvbmcgc2lnbnVtOworICAgIGludCBlcnI7CisKKyAgICBzaWdlbXB0eXNldChtYXNrKTsKKworICAgIGl0ZXJhdG9yID0gUHlPYmplY3RfR2V0SXRlcihpdGVyYWJsZSk7CisgICAgaWYgKGl0ZXJhdG9yID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICB3aGlsZSAoMSkKKyAgICB7CisgICAgICAgIGl0ZW0gPSBQeUl0ZXJfTmV4dChpdGVyYXRvcik7CisgICAgICAgIGlmIChpdGVtID09IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBzaWdudW0gPSBQeUxvbmdfQXNMb25nKGl0ZW0pOworICAgICAgICBQeV9ERUNSRUYoaXRlbSk7CisgICAgICAgIGlmIChzaWdudW0gPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIGlmICgwIDwgc2lnbnVtICYmIHNpZ251bSA8IE5TSUcpCisgICAgICAgICAgICBlcnIgPSBzaWdhZGRzZXQobWFzaywgKGludClzaWdudW0pOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlcnIgPSAxOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAic2lnbmFsIG51bWJlciAlbGQgb3V0IG9mIHJhbmdlIiwgc2lnbnVtKTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICB9CisgICAgcmVzdWx0ID0gMDsKKworZXJyb3I6CisgICAgUHlfWERFQ1JFRihpdGVyYXRvcik7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKyNlbmRpZgorCisjaWYgZGVmaW5lZChQWVBUSFJFQURfU0lHTUFTSykgfHwgZGVmaW5lZChIQVZFX1NJR1BFTkRJTkcpCitzdGF0aWMgUHlPYmplY3QqCitzaWdzZXRfdG9fc2V0KHNpZ3NldF90IG1hc2spCit7CisgICAgUHlPYmplY3QgKnNpZ251bSwgKnJlc3VsdDsKKyAgICBpbnQgc2lnOworCisgICAgcmVzdWx0ID0gUHlTZXRfTmV3KDApOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBmb3IgKHNpZyA9IDE7IHNpZyA8IE5TSUc7IHNpZysrKSB7CisgICAgICAgIGlmIChzaWdpc21lbWJlcigmbWFzaywgc2lnKSAhPSAxKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLyogSGFuZGxlIHRoZSBjYXNlIHdoZXJlIGl0IGlzIGEgbWVtYmVyIGJ5IGFkZGluZyB0aGUgc2lnbmFsIHRvCisgICAgICAgICAgIHRoZSByZXN1bHQgbGlzdC4gIElnbm9yZSB0aGUgb3RoZXIgY2FzZXMgYmVjYXVzZSB0aGV5IG1lYW4gdGhlCisgICAgICAgICAgIHNpZ25hbCBpc24ndCBhIG1lbWJlciBvZiB0aGUgbWFzayBvciB0aGUgc2lnbmFsIHdhcyBpbnZhbGlkLAorICAgICAgICAgICBhbmQgYW4gaW52YWxpZCBzaWduYWwgbXVzdCBoYXZlIGJlZW4gb3VyIGZhdWx0IGluIGNvbnN0cnVjdGluZworICAgICAgICAgICB0aGUgbG9vcCBib3VuZGFyaWVzLiAqLworICAgICAgICBzaWdudW0gPSBQeUxvbmdfRnJvbUxvbmcoc2lnKTsKKyAgICAgICAgaWYgKHNpZ251bSA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIGlmIChQeVNldF9BZGQocmVzdWx0LCBzaWdudW0pID09IC0xKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoc2lnbnVtKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgUHlfREVDUkVGKHNpZ251bSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisjZW5kaWYKKworI2lmZGVmIFBZUFRIUkVBRF9TSUdNQVNLCitzdGF0aWMgUHlPYmplY3QgKgorc2lnbmFsX3B0aHJlYWRfc2lnbWFzayhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgaW50IGhvdzsKKyAgICBQeU9iamVjdCAqc2lnbmFsczsKKyAgICBzaWdzZXRfdCBtYXNrLCBwcmV2aW91czsKKyAgICBpbnQgZXJyOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJpTzpwdGhyZWFkX3NpZ21hc2siLCAmaG93LCAmc2lnbmFscykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKGl0ZXJhYmxlX3RvX3NpZ3NldChzaWduYWxzLCAmbWFzaykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZXJyID0gcHRocmVhZF9zaWdtYXNrKGhvdywgJm1hc2ssICZwcmV2aW91cyk7CisgICAgaWYgKGVyciAhPSAwKSB7CisgICAgICAgIGVycm5vID0gZXJyOworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIC8qIGlmIHNpZ25hbHMgd2FzIHVuYmxvY2tlZCwgc2lnbmFsIGhhbmRsZXJzIGhhdmUgYmVlbiBjYWxsZWQgKi8KKyAgICBpZiAoUHlFcnJfQ2hlY2tTaWduYWxzKCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0dXJuIHNpZ3NldF90b19zZXQocHJldmlvdXMpOworfQorCitQeURvY19TVFJWQVIoc2lnbmFsX3B0aHJlYWRfc2lnbWFza19kb2MsCisicHRocmVhZF9zaWdtYXNrKGhvdywgbWFzaykgLT4gb2xkIG1hc2tcblwKK1xuXAorRmV0Y2ggYW5kL29yIGNoYW5nZSB0aGUgc2lnbmFsIG1hc2sgb2YgdGhlIGNhbGxpbmcgdGhyZWFkLiIpOworI2VuZGlmICAgLyogI2lmZGVmIFBZUFRIUkVBRF9TSUdNQVNLICovCisKKworI2lmZGVmIEhBVkVfU0lHUEVORElORworc3RhdGljIFB5T2JqZWN0ICoKK3NpZ25hbF9zaWdwZW5kaW5nKFB5T2JqZWN0ICpzZWxmKQoreworICAgIGludCBlcnI7CisgICAgc2lnc2V0X3QgbWFzazsKKyAgICBlcnIgPSBzaWdwZW5kaW5nKCZtYXNrKTsKKyAgICBpZiAoZXJyKQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOworICAgIHJldHVybiBzaWdzZXRfdG9fc2V0KG1hc2spOworfQorCitQeURvY19TVFJWQVIoc2lnbmFsX3NpZ3BlbmRpbmdfZG9jLAorInNpZ3BlbmRpbmcoKSAtPiBsaXN0XG5cCitcblwKK0V4YW1pbmUgcGVuZGluZyBzaWduYWxzLiIpOworI2VuZGlmICAgLyogI2lmZGVmIEhBVkVfU0lHUEVORElORyAqLworCisKKyNpZmRlZiBIQVZFX1NJR1dBSVQKK3N0YXRpYyBQeU9iamVjdCAqCitzaWduYWxfc2lnd2FpdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKnNpZ25hbHM7CisgICAgc2lnc2V0X3Qgc2V0OworICAgIGludCBlcnIsIHNpZ251bTsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTzpzaWd3YWl0IiwgJnNpZ25hbHMpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChpdGVyYWJsZV90b19zaWdzZXQoc2lnbmFscywgJnNldCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIGVyciA9IHNpZ3dhaXQoJnNldCwgJnNpZ251bSk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICBpZiAoZXJyKSB7CisgICAgICAgIGVycm5vID0gZXJyOworICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOworICAgIH0KKworICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoc2lnbnVtKTsKK30KKworUHlEb2NfU1RSVkFSKHNpZ25hbF9zaWd3YWl0X2RvYywKKyJzaWd3YWl0KHNpZ3NldCkgLT4gc2lnbnVtXG5cCitcblwKK1dhaXQgYSBzaWduYWwuIik7CisjZW5kaWYgICAvKiAjaWZkZWYgSEFWRV9TSUdQRU5ESU5HICovCisKKyNpZiBkZWZpbmVkKEhBVkVfU0lHV0FJVElORk8pIHx8IGRlZmluZWQoSEFWRV9TSUdUSU1FRFdBSVQpCitzdGF0aWMgaW50IGluaXRpYWxpemVkOworc3RhdGljIFB5U3RydWN0U2VxdWVuY2VfRmllbGQgc3RydWN0X3NpZ2luZm9fZmllbGRzW10gPSB7CisgICAgeyJzaV9zaWdubyIsICAgICAgICAic2lnbmFsIG51bWJlciJ9LAorICAgIHsic2lfY29kZSIsICAgICAgICAgInNpZ25hbCBjb2RlIn0sCisgICAgeyJzaV9lcnJubyIsICAgICAgICAiZXJybm8gYXNzb2NpYXRlZCB3aXRoIHRoaXMgc2lnbmFsIn0sCisgICAgeyJzaV9waWQiLCAgICAgICAgICAic2VuZGluZyBwcm9jZXNzIElEIn0sCisgICAgeyJzaV91aWQiLCAgICAgICAgICAicmVhbCB1c2VyIElEIG9mIHNlbmRpbmcgcHJvY2VzcyJ9LAorICAgIHsic2lfc3RhdHVzIiwgICAgICAgImV4aXQgdmFsdWUgb3Igc2lnbmFsIn0sCisgICAgeyJzaV9iYW5kIiwgICAgICAgICAiYmFuZCBldmVudCBmb3IgU0lHUE9MTCJ9LAorICAgIHswfQorfTsKKworUHlEb2NfU1RSVkFSKHN0cnVjdF9zaWdpbmZvX19kb2NfXywKKyJzdHJ1Y3Rfc2lnaW5mbzogUmVzdWx0IGZyb20gc2lnd2FpdGluZm8gb3Igc2lndGltZWR3YWl0LlxuXG5cCitUaGlzIG9iamVjdCBtYXkgYmUgYWNjZXNzZWQgZWl0aGVyIGFzIGEgdHVwbGUgb2ZcblwKKyhzaV9zaWdubywgc2lfY29kZSwgc2lfZXJybm8sIHNpX3BpZCwgc2lfdWlkLCBzaV9zdGF0dXMsIHNpX2JhbmQpLFxuXAorb3IgdmlhIHRoZSBhdHRyaWJ1dGVzIHNpX3NpZ25vLCBzaV9jb2RlLCBhbmQgc28gb24uIik7CisKK3N0YXRpYyBQeVN0cnVjdFNlcXVlbmNlX0Rlc2Mgc3RydWN0X3NpZ2luZm9fZGVzYyA9IHsKKyAgICAic2lnbmFsLnN0cnVjdF9zaWdpbmZvIiwgICAgICAgICAgIC8qIG5hbWUgKi8KKyAgICBzdHJ1Y3Rfc2lnaW5mb19fZG9jX18sICAgICAgIC8qIGRvYyAqLworICAgIHN0cnVjdF9zaWdpbmZvX2ZpZWxkcywgICAgICAgLyogZmllbGRzICovCisgICAgNyAgICAgICAgICAvKiBuX2luX3NlcXVlbmNlICovCit9OworCitzdGF0aWMgUHlUeXBlT2JqZWN0IFNpZ2luZm9UeXBlOworCitzdGF0aWMgUHlPYmplY3QgKgorZmlsbF9zaWdpbmZvKHNpZ2luZm9fdCAqc2kpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdCA9IFB5U3RydWN0U2VxdWVuY2VfTmV3KCZTaWdpbmZvVHlwZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTShyZXN1bHQsIDAsIFB5TG9uZ19Gcm9tTG9uZygobG9uZykoc2ktPnNpX3NpZ25vKSkpOworICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0ocmVzdWx0LCAxLCBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpKHNpLT5zaV9jb2RlKSkpOworICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0ocmVzdWx0LCAyLCBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpKHNpLT5zaV9lcnJubykpKTsKKyAgICBQeVN0cnVjdFNlcXVlbmNlX1NFVF9JVEVNKHJlc3VsdCwgMywgUHlMb25nX0Zyb21QaWQoc2ktPnNpX3BpZCkpOworICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0ocmVzdWx0LCA0LCBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpKHNpLT5zaV91aWQpKSk7CisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTShyZXN1bHQsIDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5TG9uZ19Gcm9tTG9uZygobG9uZykoc2ktPnNpX3N0YXR1cykpKTsKKyAgICBQeVN0cnVjdFNlcXVlbmNlX1NFVF9JVEVNKHJlc3VsdCwgNiwgUHlMb25nX0Zyb21Mb25nKHNpLT5zaV9iYW5kKSk7CisgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisjZW5kaWYKKworI2lmZGVmIEhBVkVfU0lHV0FJVElORk8KK3N0YXRpYyBQeU9iamVjdCAqCitzaWduYWxfc2lnd2FpdGluZm8oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpzaWduYWxzOworICAgIHNpZ3NldF90IHNldDsKKyAgICBzaWdpbmZvX3Qgc2k7CisgICAgaW50IGVycjsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTzpzaWd3YWl0aW5mbyIsICZzaWduYWxzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoaXRlcmFibGVfdG9fc2lnc2V0KHNpZ25hbHMsICZzZXQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICBlcnIgPSBzaWd3YWl0aW5mbygmc2V0LCAmc2kpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgaWYgKGVyciA9PSAtMSkKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKKworICAgIHJldHVybiBmaWxsX3NpZ2luZm8oJnNpKTsKK30KKworUHlEb2NfU1RSVkFSKHNpZ25hbF9zaWd3YWl0aW5mb19kb2MsCisic2lnd2FpdGluZm8oc2lnc2V0KSAtPiBzdHJ1Y3Rfc2lnaW5mb1xuXAorXG5cCitXYWl0IHN5bmNocm9ub3VzbHkgZm9yIGEgc2lnbmFsIHVudGlsIG9uZSBvZiB0aGUgc2lnbmFscyBpbiAqc2lnc2V0KiBpc1xuXAorZGVsaXZlcmVkLlxuXAorUmV0dXJucyBhIHN0cnVjdF9zaWdpbmZvIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNpZ25hbC4iKTsKKyNlbmRpZiAgIC8qICNpZmRlZiBIQVZFX1NJR1dBSVRJTkZPICovCisKKyNpZmRlZiBIQVZFX1NJR1RJTUVEV0FJVAorc3RhdGljIFB5T2JqZWN0ICoKK3NpZ25hbF9zaWd0aW1lZHdhaXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5T2JqZWN0ICpzaWduYWxzLCAqdGltZW91dDsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgYnVmOworICAgIHNpZ3NldF90IHNldDsKKyAgICBzaWdpbmZvX3Qgc2k7CisgICAgaW50IGVycjsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT086c2lndGltZWR3YWl0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnNpZ25hbHMsICZ0aW1lb3V0KSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoX1B5VGltZV9PYmplY3RUb1RpbWVzcGVjKHRpbWVvdXQsICZidWYudHZfc2VjLCAmYnVmLnR2X25zZWMpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChidWYudHZfc2VjIDwgMCB8fCBidWYudHZfbnNlYyA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJ0aW1lb3V0IG11c3QgYmUgbm9uLW5lZ2F0aXZlIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGlmIChpdGVyYWJsZV90b19zaWdzZXQoc2lnbmFscywgJnNldCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUworICAgIGVyciA9IHNpZ3RpbWVkd2FpdCgmc2V0LCAmc2ksICZidWYpOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgaWYgKGVyciA9PSAtMSkgeworICAgICAgICBpZiAoZXJybm8gPT0gRUFHQUlOKQorICAgICAgICAgICAgUHlfUkVUVVJOX05PTkU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CisgICAgfQorCisgICAgcmV0dXJuIGZpbGxfc2lnaW5mbygmc2kpOworfQorCitQeURvY19TVFJWQVIoc2lnbmFsX3NpZ3RpbWVkd2FpdF9kb2MsCisic2lndGltZWR3YWl0KHNpZ3NldCwgKHRpbWVvdXRfc2VjLCB0aW1lb3V0X25zZWMpKSAtPiBzdHJ1Y3Rfc2lnaW5mb1xuXAorXG5cCitMaWtlIHNpZ3dhaXRpbmZvKCksIGJ1dCB3aXRoIGEgdGltZW91dCBzcGVjaWZpZWQgYXMgYSB0dXBsZSBvZiAoc2Vjb25kcyxcblwKK25hbm9zZWNvbmRzKS4iKTsKKyNlbmRpZiAgIC8qICNpZmRlZiBIQVZFX1NJR1RJTUVEV0FJVCAqLworCisKKyNpZiBkZWZpbmVkKEhBVkVfUFRIUkVBRF9LSUxMKSAmJiBkZWZpbmVkKFdJVEhfVEhSRUFEKQorc3RhdGljIFB5T2JqZWN0ICoKK3NpZ25hbF9wdGhyZWFkX2tpbGwoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGxvbmcgdGlkOworICAgIGludCBzaWdudW07CisgICAgaW50IGVycjsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAibGk6cHRocmVhZF9raWxsIiwgJnRpZCwgJnNpZ251bSkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZXJyID0gcHRocmVhZF9raWxsKChwdGhyZWFkX3QpdGlkLCBzaWdudW0pOworICAgIGlmIChlcnIgIT0gMCkgeworICAgICAgICBlcnJubyA9IGVycjsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiB0aGUgc2lnbmFsIG1heSBoYXZlIGJlZW4gc2VuZCB0byB0aGUgY3VycmVudCB0aHJlYWQgKi8KKyAgICBpZiAoUHlFcnJfQ2hlY2tTaWduYWxzKCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihzaWduYWxfcHRocmVhZF9raWxsX2RvYywKKyJwdGhyZWFkX2tpbGwodGhyZWFkX2lkLCBzaWdudW0pXG5cCitcblwKK1NlbmQgYSBzaWduYWwgdG8gYSB0aHJlYWQuIik7CisjZW5kaWYgICAvKiAjaWYgZGVmaW5lZChIQVZFX1BUSFJFQURfS0lMTCkgJiYgZGVmaW5lZChXSVRIX1RIUkVBRCkgKi8KKworCiAKIC8qIExpc3Qgb2YgZnVuY3Rpb25zIGRlZmluZWQgaW4gdGhlIG1vZHVsZSAqLwogc3RhdGljIFB5TWV0aG9kRGVmIHNpZ25hbF9tZXRob2RzW10gPSB7CkBAIC01MTUsMTAgKzg3MSwzNCBAQAogI2VuZGlmCiAjaWZkZWYgSEFWRV9QQVVTRQogICAgIHsicGF1c2UiLCAgICAgICAgICAgICAgICAgICAoUHlDRnVuY3Rpb24pc2lnbmFsX3BhdXNlLAotICAgICBNRVRIX05PQVJHUyxwYXVzZV9kb2N9LAorICAgICBNRVRIX05PQVJHUywgcGF1c2VfZG9jfSwKICNlbmRpZgogICAgIHsiZGVmYXVsdF9pbnRfaGFuZGxlciIsIHNpZ25hbF9kZWZhdWx0X2ludF9oYW5kbGVyLAogICAgICBNRVRIX1ZBUkFSR1MsIGRlZmF1bHRfaW50X2hhbmRsZXJfZG9jfSwKKyNpZiBkZWZpbmVkKEhBVkVfUFRIUkVBRF9LSUxMKSAmJiBkZWZpbmVkKFdJVEhfVEhSRUFEKQorICAgIHsicHRocmVhZF9raWxsIiwgICAgICAgICAgICAoUHlDRnVuY3Rpb24pc2lnbmFsX3B0aHJlYWRfa2lsbCwKKyAgICAgTUVUSF9WQVJBUkdTLCBzaWduYWxfcHRocmVhZF9raWxsX2RvY30sCisjZW5kaWYKKyNpZmRlZiBQWVBUSFJFQURfU0lHTUFTSworICAgIHsicHRocmVhZF9zaWdtYXNrIiwgICAgICAgICAoUHlDRnVuY3Rpb24pc2lnbmFsX3B0aHJlYWRfc2lnbWFzaywKKyAgICAgTUVUSF9WQVJBUkdTLCBzaWduYWxfcHRocmVhZF9zaWdtYXNrX2RvY30sCisjZW5kaWYKKyNpZmRlZiBIQVZFX1NJR1BFTkRJTkcKKyAgICB7InNpZ3BlbmRpbmciLCAgICAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXNpZ25hbF9zaWdwZW5kaW5nLAorICAgICBNRVRIX05PQVJHUywgc2lnbmFsX3NpZ3BlbmRpbmdfZG9jfSwKKyNlbmRpZgorI2lmZGVmIEhBVkVfU0lHV0FJVAorICAgIHsic2lnd2FpdCIsICAgICAgICAgICAgICAgICAoUHlDRnVuY3Rpb24pc2lnbmFsX3NpZ3dhaXQsCisgICAgIE1FVEhfVkFSQVJHUywgc2lnbmFsX3NpZ3dhaXRfZG9jfSwKKyNlbmRpZgorI2lmZGVmIEhBVkVfU0lHV0FJVElORk8KKyAgICB7InNpZ3dhaXRpbmZvIiwgICAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKXNpZ25hbF9zaWd3YWl0aW5mbywKKyAgICAgTUVUSF9WQVJBUkdTLCBzaWduYWxfc2lnd2FpdGluZm9fZG9jfSwKKyNlbmRpZgorI2lmZGVmIEhBVkVfU0lHVElNRURXQUlUCisgICAgeyJzaWd0aW1lZHdhaXQiLCAgICAgICAgICAgIChQeUNGdW5jdGlvbilzaWduYWxfc2lndGltZWR3YWl0LAorICAgICBNRVRIX1ZBUkFSR1MsIHNpZ25hbF9zaWd0aW1lZHdhaXRfZG9jfSwKKyNlbmRpZgogICAgIHtOVUxMLCAgICAgICAgICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KIH07CiAKQEAgLTU4Nyw2ICs5NjcsMTUgQEAKICAgICBpZiAobSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIAorI2lmIGRlZmluZWQoSEFWRV9TSUdXQUlUSU5GTykgfHwgZGVmaW5lZChIQVZFX1NJR1RJTUVEV0FJVCkKKyAgICBpZiAoIWluaXRpYWxpemVkKQorICAgICAgICBQeVN0cnVjdFNlcXVlbmNlX0luaXRUeXBlKCZTaWdpbmZvVHlwZSwgJnN0cnVjdF9zaWdpbmZvX2Rlc2MpOworCisgICAgUHlfSU5DUkVGKChQeU9iamVjdCopICZTaWdpbmZvVHlwZSk7CisgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJzdHJ1Y3Rfc2lnaW5mbyIsIChQeU9iamVjdCopICZTaWdpbmZvVHlwZSk7CisgICAgaW5pdGlhbGl6ZWQgPSAxOworI2VuZGlmCisKICAgICAvKiBBZGQgc29tZSBzeW1ib2xpYyBjb25zdGFudHMgdG8gdGhlIG1vZHVsZSAqLwogICAgIGQgPSBQeU1vZHVsZV9HZXREaWN0KG0pOwogCkBAIC02MDMsNiArOTkyLDE5IEBACiAgICAgICAgIGdvdG8gZmluYWxseTsKICAgICBQeV9ERUNSRUYoeCk7CiAKKyNpZmRlZiBTSUdfQkxPQ0sKKyAgICBpZiAoUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgU0lHX0JMT0NLKSkKKyAgICAgICAgIGdvdG8gZmluYWxseTsKKyNlbmRpZgorI2lmZGVmIFNJR19VTkJMT0NLCisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNJR19VTkJMT0NLKSkKKyAgICAgICAgIGdvdG8gZmluYWxseTsKKyNlbmRpZgorI2lmZGVmIFNJR19TRVRNQVNLCisgICAgaWYgKFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIFNJR19TRVRNQVNLKSkKKyAgICAgICAgIGdvdG8gZmluYWxseTsKKyNlbmRpZgorCiAgICAgeCA9IEludEhhbmRsZXIgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhkLCAiZGVmYXVsdF9pbnRfaGFuZGxlciIpOwogICAgIGlmICgheCkKICAgICAgICAgZ290byBmaW5hbGx5OwpAQCAtODU1LDYgKzEyNTcsMTEgQEAKICAgICBQeV9ERUNSRUYoeCk7CiAjZW5kaWYKIAorI2lmZGVmIE1TX1dJTkRPV1MKKyAgICAvKiBDcmVhdGUgbWFudWFsLXJlc2V0IGV2ZW50LCBpbml0aWFsbHkgdW5zZXQgKi8KKyAgICBzaWdpbnRfZXZlbnQgPSBDcmVhdGVFdmVudChOVUxMLCBUUlVFLCBGQUxTRSwgRkFMU0UpOworI2VuZGlmCisKICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkgewogICAgICAgICBQeV9ERUNSRUYobSk7CiAgICAgICAgIG0gPSBOVUxMOwpAQCAtMTAwMSwzICsxNDA4LDI1IEBACiAgICAgX1B5SW1wb3J0X1JlSW5pdExvY2soKTsKICNlbmRpZgogfQorCitpbnQKK19QeU9TX0lzTWFpblRocmVhZCh2b2lkKQoreworI2lmZGVmIFdJVEhfVEhSRUFECisgICAgcmV0dXJuIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKSA9PSBtYWluX3RocmVhZDsKKyNlbHNlCisgICAgcmV0dXJuIDE7CisjZW5kaWYKK30KKworI2lmZGVmIE1TX1dJTkRPV1MKK3ZvaWQgKl9QeU9TX1NpZ2ludEV2ZW50KHZvaWQpCit7CisgICAgLyogUmV0dXJucyBhIG1hbnVhbC1yZXNldCBldmVudCB3aGljaCBnZXRzIHRyaXBwZWQgd2hlbmV2ZXIKKyAgICAgICBTSUdJTlQgaXMgcmVjZWl2ZWQuCisKKyAgICAgICBQeXRob24uaCBkb2VzIG5vdCBpbmNsdWRlIHdpbmRvd3MuaCBzbyB3ZSBkbyBjYW5ub3QgdXNlIEhBTkRMRQorICAgICAgIGFzIHRoZSByZXR1cm4gdHlwZSBvZiB0aGlzIGZ1bmN0aW9uLiAgV2UgdXNlIHZvaWQqIGluc3RlYWQuICovCisgICAgcmV0dXJuIHNpZ2ludF9ldmVudDsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9zb2NrZXRtb2R1bGUuYyBiL01vZHVsZXMvc29ja2V0bW9kdWxlLmMKaW5kZXggMzM4NjIyZC4uODA0ZTA5ZSAxMDA2NDQKLS0tIGEvTW9kdWxlcy9zb2NrZXRtb2R1bGUuYworKysgYi9Nb2R1bGVzL3NvY2tldG1vZHVsZS5jCkBAIC00Miw2ICs0Miw5IEBACiAtIHNvY2tldC5pbmV0X250b2EocGFja2VkIElQKSAtPiBJUCBhZGRyZXNzIHN0cmluZwogLSBzb2NrZXQuZ2V0ZGVmYXVsdHRpbWVvdXQoKSAtPiBOb25lIHwgZmxvYXQKIC0gc29ja2V0LnNldGRlZmF1bHR0aW1lb3V0KE5vbmUgfCBmbG9hdCkKKy0gc29ja2V0LmlmX25hbWVpbmRleCgpIC0+IGxpc3Qgb2YgdHVwbGVzIChpZl9pbmRleCwgaWZfbmFtZSkKKy0gc29ja2V0LmlmX25hbWV0b2luZGV4KG5hbWUpIC0+IGNvcnJlc3BvbmRpbmcgaW50ZXJmYWNlIGluZGV4CistIHNvY2tldC5pZl9pbmRleHRvbmFtZShpbmRleCkgLT4gY29ycmVzcG9uZGluZyBpbnRlcmZhY2UgbmFtZQogLSBhbiBJbnRlcm5ldCBzb2NrZXQgYWRkcmVzcyBpcyBhIHBhaXIgKGhvc3RuYW1lLCBwb3J0KQogICB3aGVyZSBob3N0bmFtZSBjYW4gYmUgYW55dGhpbmcgcmVjb2duaXplZCBieSBnZXRob3N0YnluYW1lKCkKICAgKGluY2x1ZGluZyB0aGUgZGQuZGQuZGQuZGQgbm90YXRpb24pIGFuZCBwb3J0IGlzIGluIGhvc3QgYnl0ZSBvcmRlcgpAQCAtMTMzLDYgKzEzNiw5IEBACiBzZXRzb2Nrb3B0KGxldmVsLCBvcHRuYW1lLCB2YWx1ZSkgLS0gc2V0IHNvY2tldCBvcHRpb25zXG5cCiBzZXR0aW1lb3V0KE5vbmUgfCBmbG9hdCkgLS0gc2V0IG9yIGNsZWFyIHRoZSB0aW1lb3V0XG5cCiBzaHV0ZG93bihob3cpIC0tIHNodXQgZG93biB0cmFmZmljIGluIG9uZSBvciBib3RoIGRpcmVjdGlvbnNcblwKK2lmX25hbWVpbmRleCgpIC0tIHJldHVybiBhbGwgbmV0d29yayBpbnRlcmZhY2UgaW5kaWNlcyBhbmQgbmFtZXNcblwKK2lmX25hbWV0b2luZGV4KG5hbWUpIC0tIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyBpbnRlcmZhY2UgaW5kZXhcblwKK2lmX2luZGV4dG9uYW1lKGluZGV4KSAtLSByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgaW50ZXJmYWNlIG5hbWVcblwKIFxuXAogIFsqXSBub3QgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMhIik7CiAKQEAgLTE1MCwxMiArMTU2LDE2IEBACiAjIHVuZGVmIEhBVkVfR0VUSE9TVEJZTkFNRV9SXzZfQVJHCiAjZW5kaWYKIAorI2lmIGRlZmluZWQoX19PcGVuQlNEX18pCisjIGluY2x1ZGUgPHN5cy91aW8uaD4KKyNlbmRpZgorCiAjaWZuZGVmIFdJVEhfVEhSRUFECiAjIHVuZGVmIEhBVkVfR0VUSE9TVEJZTkFNRV9SCiAjZW5kaWYKIAogI2lmZGVmIEhBVkVfR0VUSE9TVEJZTkFNRV9SCi0jIGlmIGRlZmluZWQoX0FJWCkgfHwgZGVmaW5lZChfX29zZl9fKQorIyBpZiBkZWZpbmVkKF9BSVgpCiAjICBkZWZpbmUgSEFWRV9HRVRIT1NUQllOQU1FX1JfM19BUkcKICMgZWxpZiBkZWZpbmVkKF9fc3VuKSB8fCBkZWZpbmVkKF9fc2dpKQogIyAgZGVmaW5lIEhBVkVfR0VUSE9TVEJZTkFNRV9SXzVfQVJHCkBAIC0yMDgsNiArMjE4LDExIEBACiAjICBpbmNsdWRlIDxpb2N0bC5oPgogI2VuZGlmCiAKKyNpZmRlZiBfX0FQUExFX18KKyMgaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjZW5kaWYKKworCiAjaWYgZGVmaW5lZChQWU9TX09TMikKICMgZGVmaW5lICBJTkNMX0RPUwogIyBkZWZpbmUgIElOQ0xfRE9TRVJST1JTCkBAIC0yNTAsNiArMjY1LDE0IEBACiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2VuZGlmCisKKyNpZmRlZiBIQVZFX05FVF9JRl9ICisjaW5jbHVkZSA8bmV0L2lmLmg+CisjZW5kaWYKKwogLyogR2VuZXJpYyBzb2NrZXQgb2JqZWN0IGRlZmluaXRpb25zIGFuZCBpbmNsdWRlcyAqLwogI2RlZmluZSBQeVNvY2tldF9CVUlMRElOR19TT0NLRVQKICNpbmNsdWRlICJzb2NrZXRtb2R1bGUuaCIKQEAgLTI2MCw2ICsyODMsNyBAQAogCiAvKiBOb24tTVMgV0lORE9XUyBpbmNsdWRlcyAqLwogIyBpbmNsdWRlIDxuZXRkYi5oPgorIyBpbmNsdWRlIDx1bmlzdGQuaD4KIAogLyogSGVhZGVycyBuZWVkZWQgZm9yIGluZXRfbnRvYSgpIGFuZCBpbmV0X2FkZHIoKSAqLwogIyBpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfVkFDUFApCkBAIC0zNTcsNyArMzgxLDcgQEAKICAgICAgICAgcmV0dXJuIElOVkFMSURfU09DS0VUOwogCiAgICAgcmV0dXJuIFdTQVNvY2tldChGUk9NX1BST1RPQ09MX0lORk8sIEZST01fUFJPVE9DT0xfSU5GTywKLSAgICAgICAgICAgICAgICAgICAgIEZST01fUFJPVE9DT0xfSU5GTywgJmluZm8sIDAsIDApOworICAgICAgICAgICAgICAgICAgICAgRlJPTV9QUk9UT0NPTF9JTkZPLCAmaW5mbywgMCwgV1NBX0ZMQUdfT1ZFUkxBUFBFRCk7CiB9CiAjZGVmaW5lIFNPQ0tFVENMT1NFIGNsb3Nlc29ja2V0CiAjZWxzZQpAQCAtMzY2LDYgKzM5MCw3IEBACiAjZW5kaWYKIAogI2lmZGVmIE1TX1dJTjMyCisjdW5kZWYgRUFGTk9TVVBQT1JUCiAjZGVmaW5lIEVBRk5PU1VQUE9SVCBXU0FFQUZOT1NVUFBPUlQKICNkZWZpbmUgc25wcmludGYgX3NucHJpbnRmCiAjZW5kaWYKQEAgLTQxNyw3ICs0NDIsOCBAQAogI2RlZmluZSBTRUdNRU5UX1NJWkUgKDMyICogMTAyNCAtMSkKICNlbmRpZgogCi0jZGVmaW5lIFNBUzJTQSh4KSAgICAgICAoKHN0cnVjdCBzb2NrYWRkciAqKSh4KSkKKy8qIENvbnZlcnQgInNvY2tfYWRkcl90ICoiIHRvICJzdHJ1Y3Qgc29ja2FkZHIgKiIuICovCisjZGVmaW5lIFNBUzJTQSh4KSAgICAgICAoJigoeCktPnNhKSkKIAogLyoKICAqIENvbnN0YW50cyBmb3IgZ2V0bmFtZWluZm8oKQpAQCAtNDM4LDcgKzQ2NCw2IEBACiAKIC8qIEdsb2JhbCB2YXJpYWJsZSBob2xkaW5nIHRoZSBleGNlcHRpb24gdHlwZSBmb3IgZXJyb3JzIGRldGVjdGVkCiAgICBieSB0aGlzIG1vZHVsZSAoYnV0IG5vdCBhcmd1bWVudCB0eXBlIG9yIG1lbW9yeSBlcnJvcnMsIGV0Yy4pLiAqLwotc3RhdGljIFB5T2JqZWN0ICpzb2NrZXRfZXJyb3I7CiBzdGF0aWMgUHlPYmplY3QgKnNvY2tldF9oZXJyb3I7CiBzdGF0aWMgUHlPYmplY3QgKnNvY2tldF9nYWllcnJvcjsKIHN0YXRpYyBQeU9iamVjdCAqc29ja2V0X3RpbWVvdXQ7CkBAIC00NTUsNiArNDgwLDE3IEBACiAjaW5jbHVkZSA8c3lzL3BvbGwuaD4KICNlbmRpZgogCisvKiBMYXJnZXN0IHZhbHVlIHRvIHRyeSB0byBzdG9yZSBpbiBhIHNvY2tsZW5fdCAodXNlZCB3aGVuIGhhbmRsaW5nCisgICBhbmNpbGxhcnkgZGF0YSkuICBQT1NJWCByZXF1aXJlcyBzb2NrbGVuX3QgdG8gaG9sZCBhdCBsZWFzdAorICAgKDIqKjMxKS0xIGFuZCByZWNvbW1lbmRzIGFnYWluc3Qgc3RvcmluZyBsYXJnZXIgdmFsdWVzLCBidXQKKyAgIHNvY2tsZW5fdCB3YXMgb3JpZ2luYWxseSBpbnQgaW4gdGhlIEJTRCBpbnRlcmZhY2UsIHNvIHRvIGJlIG9uIHRoZQorICAgc2FmZSBzaWRlIHdlIHVzZSB0aGUgc21hbGxlciBvZiAoMioqMzEpLTEgYW5kIElOVF9NQVguICovCisjaWYgSU5UX01BWCA+IDB4N2ZmZmZmZmYKKyNkZWZpbmUgU09DS0xFTl9UX0xJTUlUIDB4N2ZmZmZmZmYKKyNlbHNlCisjZGVmaW5lIFNPQ0tMRU5fVF9MSU1JVCBJTlRfTUFYCisjZW5kaWYKKwogI2lmZGVmIEhBVkVfUE9MTAogLyogSW5zdGVhZCBvZiBzZWxlY3QoKSwgd2UnbGwgdXNlIHBvbGwoKSBzaW5jZSBwb2xsKCkgd29ya3Mgb24gYW55IGZkLiAqLwogI2RlZmluZSBJU19TRUxFQ1RBQkxFKHMpIDEKQEAgLTQ2OCw3ICs1MDQsNyBAQAogc3RhdGljIFB5T2JqZWN0Kgogc2VsZWN0X2Vycm9yKHZvaWQpCiB7Ci0gICAgUHlFcnJfU2V0U3RyaW5nKHNvY2tldF9lcnJvciwgInVuYWJsZSB0byBzZWxlY3Qgb24gc29ja2V0Iik7CisgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJ1bmFibGUgdG8gc2VsZWN0IG9uIHNvY2tldCIpOwogICAgIHJldHVybiBOVUxMOwogfQogCkBAIC00OTUsNyArNTMxLDcgQEAKICAgICAgICByZWNvZ25pemVzIHRoZSBlcnJvciBjb2RlcyB1c2VkIGJ5IGJvdGggR2V0TGFzdEVycm9yKCkgYW5kCiAgICAgICAgV1NBR2V0TGFzdEVycm9yICovCiAgICAgaWYgKGVycl9ubykKLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyKHNvY2tldF9lcnJvciwgZXJyX25vKTsKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyKFB5RXhjX09TRXJyb3IsIGVycl9ubyk7CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoUFlPU19PUzIpICYmICFkZWZpbmVkKFBZQ0NfR0NDKQpAQCAtNTI2LDcgKzU2Miw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB2ID0gUHlfQnVpbGRWYWx1ZSgiKGlzKSIsIG15ZXJyb3Jjb2RlLCBvdXRidWYpOwogICAgICAgICAgICAgaWYgKHYgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5RXJyX1NldE9iamVjdChzb2NrZXRfZXJyb3IsIHYpOworICAgICAgICAgICAgICAgIFB5RXJyX1NldE9iamVjdChQeUV4Y19PU0Vycm9yLCB2KTsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTUzNCw3ICs1NzAsNyBAQAogICAgIH0KICNlbmRpZgogCi0gICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhzb2NrZXRfZXJyb3IpOworICAgIHJldHVybiBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiB9CiAKIApAQCAtODUzLDEzICs4ODksMTMgQEAKICNlbmRpZgogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgZnJlZWFkZHJpbmZvKHJlcyk7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLAorICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgInVuc3VwcG9ydGVkIGFkZHJlc3MgZmFtaWx5Iik7CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHJlcy0+YWlfbmV4dCkgewogICAgICAgICAgICAgZnJlZWFkZHJpbmZvKHJlcyk7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLAorICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgIndpbGRjYXJkIHJlc29sdmVkIHRvIG11bHRpcGxlIGFkZHJlc3MiKTsKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfQpAQCAtODcyLDcgKzkwOCw3IEBACiAgICAgaWYgKG5hbWVbMF0gPT0gJzwnICYmIHN0cmNtcChuYW1lLCAiPGJyb2FkY2FzdD4iKSA9PSAwKSB7CiAgICAgICAgIHN0cnVjdCBzb2NrYWRkcl9pbiAqc2luOwogICAgICAgICBpZiAoYWYgIT0gQUZfSU5FVCAmJiBhZiAhPSBBRl9VTlNQRUMpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhzb2NrZXRfZXJyb3IsCisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAiYWRkcmVzcyBmYW1pbHkgbWlzbWF0Y2hlZCIpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CkBAIC05MzAsNyArOTY2LDcgQEAKICAgICAgICAgcmV0dXJuIDE2OwogI2VuZGlmCiAgICAgZGVmYXVsdDoKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKHNvY2tldF9lcnJvciwgInVua25vd24gYWRkcmVzcyBmYW1pbHkiKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJ1bmtub3duIGFkZHJlc3MgZmFtaWx5Iik7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiB9CkBAIC05NzksNyArMTAxNSw3IEBACiAgICAgICAgIGJkYWRkci0+Yls1XSA9IGI1OwogICAgICAgICByZXR1cm4gNjsKICAgICB9IGVsc2UgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAiYmFkIGJsdWV0b290aCBhZGRyZXNzIik7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLCAiYmFkIGJsdWV0b290aCBhZGRyZXNzIik7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiB9CkBAIC0xMDQ0LDcgKzEwODAsNyBAQAogI2VuZGlmIC8qIGxpbnV4ICovCiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIHJlZ3VsYXIgTlVMTC10ZXJtaW5hdGVkIHN0cmluZyAqLwotICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKGEtPnN1bl9wYXRoKTsKKyAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KGEtPnN1bl9wYXRoKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZiAvKiBBRl9VTklYICovCkBAIC0xMTkwLDYgKzEyMjYsNDIgQEAKICAgICB9CiAjZW5kaWYKIAorI2lmZGVmIEFGX0NBTgorICAgIGNhc2UgQUZfQ0FOOgorICAgIHsKKyAgICAgICAgc3RydWN0IHNvY2thZGRyX2NhbiAqYSA9IChzdHJ1Y3Qgc29ja2FkZHJfY2FuICopYWRkcjsKKyAgICAgICAgY2hhciAqaWZuYW1lID0gIiI7CisgICAgICAgIHN0cnVjdCBpZnJlcSBpZnI7CisgICAgICAgIC8qIG5lZWQgdG8gbG9vayB1cCBpbnRlcmZhY2UgbmFtZSBnaXZlbiBpbmRleCAqLworICAgICAgICBpZiAoYS0+Y2FuX2lmaW5kZXgpIHsKKyAgICAgICAgICAgIGlmci5pZnJfaWZpbmRleCA9IGEtPmNhbl9pZmluZGV4OworICAgICAgICAgICAgaWYgKGlvY3RsKHNvY2tmZCwgU0lPQ0dJRk5BTUUsICZpZnIpID09IDApCisgICAgICAgICAgICAgICAgaWZuYW1lID0gaWZyLmlmcl9uYW1lOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8maCIsIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZm5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhLT5jYW5fZmFtaWx5KTsKKyAgICB9CisjZW5kaWYKKworI2lmZGVmIFBGX1NZU1RFTQorICAgIGNhc2UgUEZfU1lTVEVNOgorICAgICAgICBzd2l0Y2gocHJvdG8pIHsKKyNpZmRlZiBTWVNQUk9UT19DT05UUk9MCisgICAgICAgIGNhc2UgU1lTUFJPVE9fQ09OVFJPTDoKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyX2N0bCAqYSA9IChzdHJ1Y3Qgc29ja2FkZHJfY3RsICopYWRkcjsKKyAgICAgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoSUkpIiwgYS0+c2NfaWQsIGEtPnNjX3VuaXQpOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJJbnZhbGlkIGFkZHJlc3MgdHlwZSIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyNlbmRpZgorCiAgICAgLyogTW9yZSBjYXNlcyBoZXJlLi4uICovCiAKICAgICBkZWZhdWx0OgpAQCAtMTIyMSwxNyArMTI5MywyNyBAQAogICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfdW4qIGFkZHI7CiAgICAgICAgIGNoYXIgKnBhdGg7CiAgICAgICAgIGludCBsZW47Ci0gICAgICAgIGlmICghUHlBcmdfUGFyc2UoYXJncywgInMjIiwgJnBhdGgsICZsZW4pKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGludCByZXR2YWwgPSAwOworCisgICAgICAgIC8qIFBFUCAzODMuICBOb3QgdXNpbmcgUHlVbmljb2RlX0ZTQ29udmVydGVyIHNpbmNlIHdlIG5lZWQgdG8KKyAgICAgICAgICAgYWxsb3cgZW1iZWRkZWQgbnVsbHMgb24gTGludXguICovCisgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soYXJncykpIHsKKyAgICAgICAgICAgIGlmICgoYXJncyA9IFB5VW5pY29kZV9FbmNvZGVGU0RlZmF1bHQoYXJncykpID09IE5VTEwpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgUHlfSU5DUkVGKGFyZ3MpOworICAgICAgICBpZiAoIVB5QXJnX1BhcnNlKGFyZ3MsICJ5IyIsICZwYXRoLCAmbGVuKSkKKyAgICAgICAgICAgIGdvdG8gdW5peF9vdXQ7CiAKICAgICAgICAgYWRkciA9IChzdHJ1Y3Qgc29ja2FkZHJfdW4qKWFkZHJfcmV0OwogI2lmZGVmIGxpbnV4CiAgICAgICAgIGlmIChsZW4gPiAwICYmIHBhdGhbMF0gPT0gMCkgewogICAgICAgICAgICAgLyogTGludXggYWJzdHJhY3QgbmFtZXNwYWNlIGV4dGVuc2lvbiAqLwogICAgICAgICAgICAgaWYgKGxlbiA+IHNpemVvZiBhZGRyLT5zdW5fcGF0aCkgewotICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhzb2NrZXRfZXJyb3IsCisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJBRl9VTklYIHBhdGggdG9vIGxvbmciKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICBnb3RvIHVuaXhfb3V0OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UKQEAgLTEyMzksOSArMTMyMSw5IEBACiAgICAgICAgIHsKICAgICAgICAgICAgIC8qIHJlZ3VsYXIgTlVMTC10ZXJtaW5hdGVkIHN0cmluZyAqLwogICAgICAgICAgICAgaWYgKGxlbiA+PSBzaXplb2YgYWRkci0+c3VuX3BhdGgpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLAorICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQUZfVU5JWCBwYXRoIHRvbyBsb25nIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgZ290byB1bml4X291dDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGFkZHItPnN1bl9wYXRoW2xlbl0gPSAwOwogICAgICAgICB9CkBAIC0xMjUyLDcgKzEzMzQsMTAgQEAKICNlbHNlCiAgICAgICAgICpsZW5fcmV0ID0gbGVuICsgb2Zmc2V0b2Yoc3RydWN0IHNvY2thZGRyX3VuLCBzdW5fcGF0aCk7CiAjZW5kaWYKLSAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIHJldHZhbCA9IDE7CisgICAgdW5peF9vdXQ6CisgICAgICAgIFB5X0RFQ1JFRihhcmdzKTsKKyAgICAgICAgcmV0dXJuIHJldHZhbDsKICAgICB9CiAjZW5kaWYgLyogQUZfVU5JWCAqLwogCkBAIC0xMjgwLDYgKzEzNjUsMTEgQEAKICAgICB9CiAjZW5kaWYKIAorI2lmZGVmIEFGX1JEUworICAgIGNhc2UgQUZfUkRTOgorICAgICAgICAvKiBSRFMgc29ja2V0cyB1c2Ugc29ja2FkZHJfaW46IGZhbGwtdGhyb3VnaCAqLworI2VuZGlmCisKICAgICBjYXNlIEFGX0lORVQ6CiAgICAgewogICAgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4qIGFkZHI7CkBAIC0xMzc2LDcgKzE0NjYsNyBAQAogICAgICAgICAgICAgX0JUX0wyX01FTUIoYWRkciwgZmFtaWx5KSA9IEFGX0JMVUVUT09USDsKICAgICAgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAic2kiLCAmc3RyYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmX0JUX0wyX01FTUIoYWRkciwgcHNtKSkpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAiZ2V0c29ja2FkZHJhcmc6ICIKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgImdldHNvY2thZGRyYXJnOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3cm9uZyBmb3JtYXQiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIH0KQEAgLTEzOTUsNyArMTQ4NSw3IEBACiAgICAgICAgICAgICBfQlRfUkNfTUVNQihhZGRyLCBmYW1pbHkpID0gQUZfQkxVRVRPT1RIOwogICAgICAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzaSIsICZzdHJhZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZfQlRfUkNfTUVNQihhZGRyLCBjaGFubmVsKSkpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAiZ2V0c29ja2FkZHJhcmc6ICIKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgImdldHNvY2thZGRyYXJnOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3cm9uZyBmb3JtYXQiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIH0KQEAgLTE0MTMsNyArMTUwMyw3IEBACiAKICAgICAgICAgICAgICAgICAgICAgICAgIF9CVF9IQ0lfTUVNQihhZGRyLCBmYW1pbHkpID0gQUZfQkxVRVRPT1RIOwogICAgICAgICAgICAgaWYgKHN0cmFkZHIgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhzb2NrZXRfZXJyb3IsICJnZXRzb2NrYWRkcmFyZzogIgorICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLCAiZ2V0c29ja2FkZHJhcmc6ICIKICAgICAgICAgICAgICAgICAgICAgIndyb25nIGZvcm1hdCIpOwogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICAgfQpAQCAtMTQyMiw3ICsxNTEyLDcgQEAKICNlbHNlCiAgICAgICAgICAgICBfQlRfSENJX01FTUIoYWRkciwgZmFtaWx5KSA9IEFGX0JMVUVUT09USDsKICAgICAgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaSIsICZfQlRfSENJX01FTUIoYWRkciwgZGV2KSkpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAiZ2V0c29ja2FkZHJhcmc6ICIKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgImdldHNvY2thZGRyYXJnOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3cm9uZyBmb3JtYXQiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgIH0KQEAgLTE0MzksNyArMTUyOSw3IEBACiAgICAgICAgICAgICBhZGRyID0gKHN0cnVjdCBzb2NrYWRkcl9zY28gKilhZGRyX3JldDsKICAgICAgICAgICAgIF9CVF9TQ09fTUVNQihhZGRyLCBmYW1pbHkpID0gQUZfQkxVRVRPT1RIOwogICAgICAgICAgICAgaWYgKCFQeUJ5dGVzX0NoZWNrKGFyZ3MpKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKHNvY2tldF9lcnJvciwgImdldHNvY2thZGRyYXJnOiAiCisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJnZXRzb2NrYWRkcmFyZzogIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid3JvbmcgZm9ybWF0Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICB9CkBAIC0xNDUyLDcgKzE1NDIsNyBAQAogICAgICAgICB9CiAjZW5kaWYKICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhzb2NrZXRfZXJyb3IsICJnZXRzb2NrYWRkcmFyZzogdW5rbm93biBCbHVldG9vdGggcHJvdG9jb2wiKTsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLCAiZ2V0c29ja2FkZHJhcmc6IHVua25vd24gQmx1ZXRvb3RoIHByb3RvY29sIik7CiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgIH0KQEAgLTE1NjQsMTAgKzE2NTQsMTE1IEBACiAgICAgfQogI2VuZGlmCiAKKyNpZmRlZiBBRl9DQU4KKyAgICBjYXNlIEFGX0NBTjoKKyAgICAgICAgc3dpdGNoIChzLT5zb2NrX3Byb3RvKSB7CisgICAgICAgIGNhc2UgQ0FOX1JBVzoKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyX2NhbiAqYWRkcjsKKyAgICAgICAgICAgIFB5T2JqZWN0ICppbnRlcmZhY2VOYW1lOworICAgICAgICAgICAgc3RydWN0IGlmcmVxIGlmcjsKKyAgICAgICAgICAgIGFkZHIgPSAoc3RydWN0IHNvY2thZGRyX2NhbiAqKWFkZHJfcmV0OworICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CisKKyAgICAgICAgICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyYiLCBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmludGVyZmFjZU5hbWUpKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgICAgICBsZW4gPSBQeUJ5dGVzX0dFVF9TSVpFKGludGVyZmFjZU5hbWUpOworCisgICAgICAgICAgICBpZiAobGVuID09IDApIHsKKyAgICAgICAgICAgICAgICBpZnIuaWZyX2lmaW5kZXggPSAwOworICAgICAgICAgICAgfSBlbHNlIGlmIChsZW4gPCBzaXplb2YoaWZyLmlmcl9uYW1lKSkgeworICAgICAgICAgICAgICAgIHN0cmNweShpZnIuaWZyX25hbWUsIFB5Qnl0ZXNfQVNfU1RSSU5HKGludGVyZmFjZU5hbWUpKTsKKyAgICAgICAgICAgICAgICBpZiAoaW9jdGwocy0+c29ja19mZCwgU0lPQ0dJRklOREVYLCAmaWZyKSA8IDApIHsKKyAgICAgICAgICAgICAgICAgICAgcy0+ZXJyb3JoYW5kbGVyKCk7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihpbnRlcmZhY2VOYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFGX0NBTiBpbnRlcmZhY2UgbmFtZSB0b28gbG9uZyIpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihpbnRlcmZhY2VOYW1lKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYWRkci0+Y2FuX2ZhbWlseSA9IEFGX0NBTjsKKyAgICAgICAgICAgIGFkZHItPmNhbl9pZmluZGV4ID0gaWZyLmlmcl9pZmluZGV4OworCisgICAgICAgICAgICAqbGVuX3JldCA9IHNpemVvZigqYWRkcik7CisgICAgICAgICAgICBQeV9ERUNSRUYoaW50ZXJmYWNlTmFtZSk7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdldHNvY2thZGRyYXJnOiB1bnN1cHBvcnRlZCBDQU4gcHJvdG9jb2wiKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgICAgIAorI2lmZGVmIFBGX1NZU1RFTQorICAgIGNhc2UgUEZfU1lTVEVNOgorICAgICAgICBzd2l0Y2ggKHMtPnNvY2tfcHJvdG8pIHsKKyNpZmRlZiBTWVNQUk9UT19DT05UUk9MCisgICAgICAgIGNhc2UgU1lTUFJPVE9fQ09OVFJPTDoKKyAgICAgICAgeworICAgICAgICAgICAgc3RydWN0IHNvY2thZGRyX2N0bCAqYWRkcjsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYWRkciA9IChzdHJ1Y3Qgc29ja2FkZHJfY3RsICopYWRkcl9yZXQ7CisgICAgICAgICAgICBhZGRyLT5zY19mYW1pbHkgPSBBRl9TWVNURU07CisgICAgICAgICAgICBhZGRyLT5zc19zeXNhZGRyID0gQUZfU1lTX0NPTlRST0w7IAorCisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKGFyZ3MpKSB7CisgICAgICAgICAgICAgICAgc3RydWN0IGN0bF9pbmZvIGluZm87CisgICAgICAgICAgICAgICAgUHlPYmplY3QgKmN0bF9uYW1lOworCisgICAgICAgICAgICAgICAgaWYgKCFQeUFyZ19QYXJzZShhcmdzLCAiTyYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsICZjdGxfbmFtZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKFB5Qnl0ZXNfR0VUX1NJWkUoY3RsX25hbWUpID4gc2l6ZW9mKGluZm8uY3RsX25hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb3ZpZGVkIHN0cmluZyBpcyB0b28gbG9uZyIpOworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoY3RsX25hbWUpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgc3RybmNweShpbmZvLmN0bF9uYW1lLCBQeUJ5dGVzX0FTX1NUUklORyhjdGxfbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoaW5mby5jdGxfbmFtZSkpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihjdGxfbmFtZSk7CisKKyAgICAgICAgICAgICAgICBpZiAoaW9jdGwocy0+c29ja19mZCwgQ1RMSU9DR0lORk8sICZpbmZvKSkgeworICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImNhbm5vdCBmaW5kIGtlcm5lbCBjb250cm9sIHdpdGggcHJvdmlkZWQgbmFtZSIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgYWRkci0+c2NfaWQgPSBpbmZvLmN0bF9pZDsKKyAgICAgICAgICAgICAgICBhZGRyLT5zY191bml0ID0gMDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIklJIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJihhZGRyLT5zY19pZCksICYoYWRkci0+c2NfdW5pdCkpKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImdldHNvY2thZGRyYXJnOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCBzdHIgb3IgdHVwbGUgb2YgdHdvIGludHMiKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgCisgICAgICAgICAgICAqbGVuX3JldCA9IHNpemVvZigqYWRkcik7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZ2V0c29ja2FkZHJhcmc6IHVuc3VwcG9ydGVkIFBGX1NZU1RFTSBwcm90b2NvbCIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyNlbmRpZgorCiAgICAgLyogTW9yZSBjYXNlcyBoZXJlLi4uICovCiAKICAgICBkZWZhdWx0OgotICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAiZ2V0c29ja2FkZHJhcmc6IGJhZCBmYW1pbHkiKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJnZXRzb2NrYWRkcmFyZzogYmFkIGZhbWlseSIpOwogICAgICAgICByZXR1cm4gMDsKIAogICAgIH0KQEAgLTE1OTgsNiArMTc5MywxMSBAQAogICAgICAgIH0KICNlbmRpZgogCisjaWZkZWYgQUZfUkRTCisgICAgY2FzZSBBRl9SRFM6CisgICAgICAgIC8qIFJEUyBzb2NrZXRzIHVzZSBzb2NrYWRkcl9pbjogZmFsbC10aHJvdWdoICovCisjZW5kaWYKKwogICAgIGNhc2UgQUZfSU5FVDoKICAgICB7CiAgICAgICAgICpsZW5fcmV0ID0gc2l6ZW9mIChzdHJ1Y3Qgc29ja2FkZHJfaW4pOwpAQCAtMTYzMyw3ICsxODMzLDcgQEAKICAgICAgICAgICAgIHJldHVybiAxOwogI2VuZGlmCiAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAiZ2V0c29ja2FkZHJsZW46ICIKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLCAiZ2V0c29ja2FkZHJsZW46ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5rbm93biBCVCBwcm90b2NvbCIpOwogICAgICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTE2NTcsMTYgKzE4NTcsMTUxIEBACiAgICAgfQogI2VuZGlmCiAKKyNpZmRlZiBBRl9DQU4KKyAgICBjYXNlIEFGX0NBTjoKKyAgICB7CisgICAgICAgICpsZW5fcmV0ID0gc2l6ZW9mIChzdHJ1Y3Qgc29ja2FkZHJfY2FuKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorI2VuZGlmCisgICAgICAgICAgICAKKyNpZmRlZiBQRl9TWVNURU0KKyAgICBjYXNlIFBGX1NZU1RFTToKKyAgICAgICAgc3dpdGNoKHMtPnNvY2tfcHJvdG8pIHsKKyNpZmRlZiBTWVNQUk9UT19DT05UUk9MCisgICAgICAgIGNhc2UgU1lTUFJPVE9fQ09OVFJPTDoKKyAgICAgICAgICAgICpsZW5fcmV0ID0gc2l6ZW9mIChzdHJ1Y3Qgc29ja2FkZHJfY3RsKTsKKyAgICAgICAgICAgIHJldHVybiAxOworI2VuZGlmCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgImdldHNvY2thZGRybGVuOiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInVua25vd24gUEZfU1lTVEVNIHByb3RvY29sIik7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorI2VuZGlmCisKICAgICAvKiBNb3JlIGNhc2VzIGhlcmUuLi4gKi8KIAogICAgIGRlZmF1bHQ6Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhzb2NrZXRfZXJyb3IsICJnZXRzb2NrYWRkcmxlbjogYmFkIGZhbWlseSIpOworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgImdldHNvY2thZGRybGVuOiBiYWQgZmFtaWx5Iik7CiAgICAgICAgIHJldHVybiAwOwogCiAgICAgfQogfQogCiAKKy8qIFN1cHBvcnQgZnVuY3Rpb25zIGZvciB0aGUgc2VuZG1zZygpIGFuZCByZWN2bXNnW19pbnRvXSgpIG1ldGhvZHMuCisgICBDdXJyZW50bHksIHRoZXNlIG1ldGhvZHMgYXJlIG9ubHkgY29tcGlsZWQgaWYgdGhlIFJGQyAyMjkyLzM1NDIKKyAgIENNU0dfTEVOKCkgbWFjcm8gaXMgYXZhaWxhYmxlLiAgT2xkZXIgc3lzdGVtcyBzZWVtIHRvIGhhdmUgdXNlZAorICAgc2l6ZW9mKHN0cnVjdCBjbXNnaGRyKSArIChsZW5ndGgpIHdoZXJlIENNU0dfTEVOKCkgaXMgdXNlZCBub3csIHNvCisgICBpdCBtYXkgYmUgcG9zc2libGUgdG8gZGVmaW5lIENNU0dfTEVOKCkgdGhhdCB3YXkgaWYgaXQncyBub3QKKyAgIHByb3ZpZGVkLiAgU29tZSBhcmNoaXRlY3R1cmVzIG1pZ2h0IG5lZWQgZXh0cmEgcGFkZGluZyBhZnRlciB0aGUKKyAgIGNtc2doZHIsIGhvd2V2ZXIsIGFuZCBDTVNHX0xFTigpIHdvdWxkIGhhdmUgdG8gdGFrZSBhY2NvdW50IG9mCisgICB0aGlzLiAqLworI2lmZGVmIENNU0dfTEVOCisvKiBJZiBsZW5ndGggaXMgaW4gcmFuZ2UsIHNldCAqcmVzdWx0IHRvIENNU0dfTEVOKGxlbmd0aCkgYW5kIHJldHVybgorICAgdHJ1ZTsgb3RoZXJ3aXNlLCByZXR1cm4gZmFsc2UuICovCitzdGF0aWMgaW50CitnZXRfQ01TR19MRU4oc2l6ZV90IGxlbmd0aCwgc2l6ZV90ICpyZXN1bHQpCit7CisgICAgc2l6ZV90IHRtcDsKKworICAgIGlmIChsZW5ndGggPiAoU09DS0xFTl9UX0xJTUlUIC0gQ01TR19MRU4oMCkpKQorICAgICAgICByZXR1cm4gMDsKKyAgICB0bXAgPSBDTVNHX0xFTihsZW5ndGgpOworICAgIGlmICh0bXAgPiBTT0NLTEVOX1RfTElNSVQgfHwgdG1wIDwgbGVuZ3RoKQorICAgICAgICByZXR1cm4gMDsKKyAgICAqcmVzdWx0ID0gdG1wOworICAgIHJldHVybiAxOworfQorCisjaWZkZWYgQ01TR19TUEFDRQorLyogSWYgbGVuZ3RoIGlzIGluIHJhbmdlLCBzZXQgKnJlc3VsdCB0byBDTVNHX1NQQUNFKGxlbmd0aCkgYW5kIHJldHVybgorICAgdHJ1ZTsgb3RoZXJ3aXNlLCByZXR1cm4gZmFsc2UuICovCitzdGF0aWMgaW50CitnZXRfQ01TR19TUEFDRShzaXplX3QgbGVuZ3RoLCBzaXplX3QgKnJlc3VsdCkKK3sKKyAgICBzaXplX3QgdG1wOworCisgICAgLyogVXNlIENNU0dfU1BBQ0UoMSkgaGVyZSBpbiBvcmRlciB0byB0YWtlIGFjY291bnQgb2YgdGhlIHBhZGRpbmcKKyAgICAgICBuZWNlc3NhcnkgYmVmb3JlICphbmQqIGFmdGVyIHRoZSBkYXRhLiAqLworICAgIGlmIChsZW5ndGggPiAoU09DS0xFTl9UX0xJTUlUIC0gQ01TR19TUEFDRSgxKSkpCisgICAgICAgIHJldHVybiAwOworICAgIHRtcCA9IENNU0dfU1BBQ0UobGVuZ3RoKTsKKyAgICBpZiAodG1wID4gU09DS0xFTl9UX0xJTUlUIHx8IHRtcCA8IGxlbmd0aCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgKnJlc3VsdCA9IHRtcDsKKyAgICByZXR1cm4gMTsKK30KKyNlbmRpZgorCisvKiBSZXR1cm4gdHJ1ZSBpZmYgbXNnLT5tc2dfY29udHJvbGxlbiBpcyB2YWxpZCwgY21zZ2ggaXMgYSB2YWxpZAorICAgcG9pbnRlciBpbiBtc2ctPm1zZ19jb250cm9sIHdpdGggYXQgbGVhc3QgInNwYWNlIiBieXRlcyBhZnRlciBpdCwKKyAgIGFuZCBpdHMgY21zZ19sZW4gbWVtYmVyIGluc2lkZSB0aGUgYnVmZmVyLiAqLworc3RhdGljIGludAorY21zZ19taW5fc3BhY2Uoc3RydWN0IG1zZ2hkciAqbXNnLCBzdHJ1Y3QgY21zZ2hkciAqY21zZ2gsIHNpemVfdCBzcGFjZSkKK3sKKyAgICBzaXplX3QgY21zZ19vZmZzZXQ7CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBjbXNnX2xlbl9lbmQgPSAob2Zmc2V0b2Yoc3RydWN0IGNtc2doZHIsIGNtc2dfbGVuKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGNtc2doLT5jbXNnX2xlbikpOworCisgICAgLyogTm90ZSB0aGF0IFBPU0lYIGFsbG93cyBtc2dfY29udHJvbGxlbiB0byBiZSBvZiBzaWduZWQgdHlwZS4gKi8KKyAgICBpZiAoY21zZ2ggPT0gTlVMTCB8fCBtc2ctPm1zZ19jb250cm9sID09IE5VTEwgfHwgbXNnLT5tc2dfY29udHJvbGxlbiA8IDApCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChzcGFjZSA8IGNtc2dfbGVuX2VuZCkKKyAgICAgICAgc3BhY2UgPSBjbXNnX2xlbl9lbmQ7CisgICAgY21zZ19vZmZzZXQgPSAoY2hhciAqKWNtc2doIC0gKGNoYXIgKiltc2ctPm1zZ19jb250cm9sOworICAgIHJldHVybiAoY21zZ19vZmZzZXQgPD0gKHNpemVfdCktMSAtIHNwYWNlICYmCisgICAgICAgICAgICBjbXNnX29mZnNldCArIHNwYWNlIDw9IG1zZy0+bXNnX2NvbnRyb2xsZW4pOworfQorCisvKiBJZiBwb2ludGVyIENNU0dfREFUQShjbXNnaCkgaXMgaW4gYnVmZmVyIG1zZy0+bXNnX2NvbnRyb2wsIHNldAorICAgKnNwYWNlIHRvIG51bWJlciBvZiBieXRlcyBmb2xsb3dpbmcgaXQgaW4gdGhlIGJ1ZmZlciBhbmQgcmV0dXJuCisgICB0cnVlOyBvdGhlcndpc2UsIHJldHVybiBmYWxzZS4gIEFzc3VtZXMgY21zZ2gsIG1zZy0+bXNnX2NvbnRyb2wgYW5kCisgICBtc2ctPm1zZ19jb250cm9sbGVuIGFyZSB2YWxpZC4gKi8KK3N0YXRpYyBpbnQKK2dldF9jbXNnX2RhdGFfc3BhY2Uoc3RydWN0IG1zZ2hkciAqbXNnLCBzdHJ1Y3QgY21zZ2hkciAqY21zZ2gsIHNpemVfdCAqc3BhY2UpCit7CisgICAgc2l6ZV90IGRhdGFfb2Zmc2V0OworICAgIGNoYXIgKmRhdGFfcHRyOworCisgICAgaWYgKChkYXRhX3B0ciA9IChjaGFyICopQ01TR19EQVRBKGNtc2doKSkgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgZGF0YV9vZmZzZXQgPSBkYXRhX3B0ciAtIChjaGFyICopbXNnLT5tc2dfY29udHJvbDsKKyAgICBpZiAoZGF0YV9vZmZzZXQgPiBtc2ctPm1zZ19jb250cm9sbGVuKQorICAgICAgICByZXR1cm4gMDsKKyAgICAqc3BhY2UgPSBtc2ctPm1zZ19jb250cm9sbGVuIC0gZGF0YV9vZmZzZXQ7CisgICAgcmV0dXJuIDE7Cit9CisKKy8qIElmIGNtc2doIGlzIGludmFsaWQgb3Igbm90IGNvbnRhaW5lZCBpbiB0aGUgYnVmZmVyIHBvaW50ZWQgdG8gYnkKKyAgIG1zZy0+bXNnX2NvbnRyb2wsIHJldHVybiAtMS4gIElmIGNtc2doIGlzIHZhbGlkIGFuZCBpdHMgYXNzb2NpYXRlZAorICAgZGF0YSBpcyBlbnRpcmVseSBjb250YWluZWQgaW4gdGhlIGJ1ZmZlciwgc2V0ICpkYXRhX2xlbiB0byB0aGUKKyAgIGxlbmd0aCBvZiB0aGUgYXNzb2NpYXRlZCBkYXRhIGFuZCByZXR1cm4gMC4gIElmIG9ubHkgcGFydCBvZiB0aGUKKyAgIGFzc29jaWF0ZWQgZGF0YSBpcyBjb250YWluZWQgaW4gdGhlIGJ1ZmZlciBidXQgY21zZ2ggaXMgb3RoZXJ3aXNlCisgICB2YWxpZCwgc2V0ICpkYXRhX2xlbiB0byB0aGUgbGVuZ3RoIGNvbnRhaW5lZCBpbiB0aGUgYnVmZmVyIGFuZAorICAgcmV0dXJuIDEuICovCitzdGF0aWMgaW50CitnZXRfY21zZ19kYXRhX2xlbihzdHJ1Y3QgbXNnaGRyICptc2csIHN0cnVjdCBjbXNnaGRyICpjbXNnaCwgc2l6ZV90ICpkYXRhX2xlbikKK3sKKyAgICBzaXplX3Qgc3BhY2UsIGNtc2dfZGF0YV9sZW47CisKKyAgICBpZiAoIWNtc2dfbWluX3NwYWNlKG1zZywgY21zZ2gsIENNU0dfTEVOKDApKSB8fAorICAgICAgICBjbXNnaC0+Y21zZ19sZW4gPCBDTVNHX0xFTigwKSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGNtc2dfZGF0YV9sZW4gPSBjbXNnaC0+Y21zZ19sZW4gLSBDTVNHX0xFTigwKTsKKyAgICBpZiAoIWdldF9jbXNnX2RhdGFfc3BhY2UobXNnLCBjbXNnaCwgJnNwYWNlKSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmIChzcGFjZSA+PSBjbXNnX2RhdGFfbGVuKSB7CisgICAgICAgICpkYXRhX2xlbiA9IGNtc2dfZGF0YV9sZW47CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAqZGF0YV9sZW4gPSBzcGFjZTsKKyAgICByZXR1cm4gMTsKK30KKyNlbmRpZiAgICAvKiBDTVNHX0xFTiAqLworCisKIC8qIHMuX2FjY2VwdCgpIC0+IChmZCwgYWRkcmVzcykgKi8KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTE4ODksNyArMjIyNCw3IEBACiAjZWxzZQogICAgIGlmIChidWZsZW4gPD0gMCB8fCBidWZsZW4gPiAxMDI0KSB7CiAjZW5kaWYKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKHNvY2tldF9lcnJvciwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiZ2V0c29ja29wdCBidWZsZW4gb3V0IG9mIHJhbmdlIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTI2MjAsNiArMjk1NSwzMzEgQEAKIExpa2UgcmVjdl9pbnRvKGJ1ZmZlclssIG5ieXRlc1ssIGZsYWdzXV0pIGJ1dCBhbHNvIHJldHVybiB0aGUgc2VuZGVyJ3MgYWRkcmVzcyBpbmZvLiIpOwogCiAKKy8qIFRoZSBzZW5kbXNnKCkgYW5kIHJlY3Ztc2dbX2ludG9dKCkgbWV0aG9kcyByZXF1aXJlIGEgd29ya2luZworICAgQ01TR19MRU4oKS4gIFNlZSB0aGUgY29tbWVudCBuZWFyIGdldF9DTVNHX0xFTigpLiAqLworI2lmZGVmIENNU0dfTEVOCisvKgorICogQ2FsbCByZWN2bXNnKCkgd2l0aCB0aGUgc3VwcGxpZWQgaW92ZWMgc3RydWN0dXJlcywgZmxhZ3MsIGFuZAorICogYW5jaWxsYXJ5IGRhdGEgYnVmZmVyIHNpemUgKGNvbnRyb2xsZW4pLiAgUmV0dXJucyB0aGUgdHVwbGUgcmV0dXJuCisgKiB2YWx1ZSBmb3IgcmVjdm1zZygpIG9yIHJlY3Ztc2dfaW50bygpLCB3aXRoIHRoZSBmaXJzdCBpdGVtIHByb3ZpZGVkCisgKiBieSB0aGUgc3VwcGxpZWQgbWFrZXZhbCgpIGZ1bmN0aW9uLiAgbWFrZXZhbCgpIHdpbGwgYmUgY2FsbGVkIHdpdGgKKyAqIHRoZSBsZW5ndGggcmVhZCBhbmQgbWFrZXZhbF9kYXRhIGFzIGFyZ3VtZW50cywgYW5kIG11c3QgcmV0dXJuIGEKKyAqIG5ldyByZWZlcmVuY2UgKHdoaWNoIHdpbGwgYmUgZGVjcmVmZWQgaWYgdGhlcmUgaXMgYSBzdWJzZXF1ZW50CisgKiBlcnJvcikuICBPbiBlcnJvciwgY2xvc2VzIGFueSBmaWxlIGRlc2NyaXB0b3JzIHJlY2VpdmVkIHZpYQorICogU0NNX1JJR0hUUy4KKyAqLworc3RhdGljIFB5T2JqZWN0ICoKK3NvY2tfcmVjdm1zZ19ndXRzKFB5U29ja2V0U29ja09iamVjdCAqcywgc3RydWN0IGlvdmVjICppb3YsIGludCBpb3ZsZW4sCisgICAgICAgICAgICAgICAgICBpbnQgZmxhZ3MsIFB5X3NzaXplX3QgY29udHJvbGxlbiwKKyAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICooKm1ha2V2YWwpKHNzaXplX3QsIHZvaWQgKiksIHZvaWQgKm1ha2V2YWxfZGF0YSkKK3sKKyAgICBzc2l6ZV90IGJ5dGVzX3JlY2VpdmVkID0gLTE7CisgICAgaW50IHRpbWVvdXQ7CisgICAgc29ja19hZGRyX3QgYWRkcmJ1ZjsKKyAgICBzb2NrbGVuX3QgYWRkcmJ1ZmxlbjsKKyAgICBzdHJ1Y3QgbXNnaGRyIG1zZyA9IHswfTsKKyAgICBQeU9iamVjdCAqY21zZ19saXN0ID0gTlVMTCwgKnJldHZhbCA9IE5VTEw7CisgICAgdm9pZCAqY29udHJvbGJ1ZiA9IE5VTEw7CisgICAgc3RydWN0IGNtc2doZHIgKmNtc2doOworICAgIHNpemVfdCBjbXNnZGF0YWxlbiA9IDA7CisgICAgaW50IGNtc2dfc3RhdHVzOworCisgICAgLyogWFhYOiBQT1NJWCBzYXlzIHRoYXQgbXNnX25hbWUgYW5kIG1zZ19uYW1lbGVuICJzaGFsbCBiZQorICAgICAgIGlnbm9yZWQiIHdoZW4gdGhlIHNvY2tldCBpcyBjb25uZWN0ZWQgKExpbnV4IGZpbGxzIHRoZW0gaW4KKyAgICAgICBhbnl3YXkgZm9yIEFGX1VOSVggc29ja2V0cyBhdCBsZWFzdCkuICBOb3JtYWxseSBtc2dfbmFtZWxlbgorICAgICAgIHNlZW1zIHRvIGJlIHNldCB0byAwIGlmIHRoZXJlJ3Mgbm8gYWRkcmVzcywgYnV0IHRyeSB0bworICAgICAgIGluaXRpYWxpemUgbXNnX25hbWUgdG8gc29tZXRoaW5nIHRoYXQgd29uJ3QgYmUgbWlzdGFrZW4gZm9yIGEKKyAgICAgICByZWFsIGFkZHJlc3MgaWYgdGhhdCBkb2Vzbid0IGhhcHBlbi4gKi8KKyAgICBpZiAoIWdldHNvY2thZGRybGVuKHMsICZhZGRyYnVmbGVuKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbWVtc2V0KCZhZGRyYnVmLCAwLCBhZGRyYnVmbGVuKTsKKyAgICBTQVMyU0EoJmFkZHJidWYpLT5zYV9mYW1pbHkgPSBBRl9VTlNQRUM7CisKKyAgICBpZiAoY29udHJvbGxlbiA8IDAgfHwgY29udHJvbGxlbiA+IFNPQ0tMRU5fVF9MSU1JVCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIGFuY2lsbGFyeSBkYXRhIGJ1ZmZlciBsZW5ndGgiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChjb250cm9sbGVuID4gMCAmJiAoY29udHJvbGJ1ZiA9IFB5TWVtX01hbGxvYyhjb250cm9sbGVuKSkgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CisKKyAgICAvKiBNYWtlIHRoZSBzeXN0ZW0gY2FsbC4gKi8KKyAgICBpZiAoIUlTX1NFTEVDVEFCTEUocykpIHsKKyAgICAgICAgc2VsZWN0X2Vycm9yKCk7CisgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICB9CisKKyAgICBCRUdJTl9TRUxFQ1RfTE9PUChzKQorICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFM7CisgICAgbXNnLm1zZ19uYW1lID0gU0FTMlNBKCZhZGRyYnVmKTsKKyAgICBtc2cubXNnX25hbWVsZW4gPSBhZGRyYnVmbGVuOworICAgIG1zZy5tc2dfaW92ID0gaW92OworICAgIG1zZy5tc2dfaW92bGVuID0gaW92bGVuOworICAgIG1zZy5tc2dfY29udHJvbCA9IGNvbnRyb2xidWY7CisgICAgbXNnLm1zZ19jb250cm9sbGVuID0gY29udHJvbGxlbjsKKyAgICB0aW1lb3V0ID0gaW50ZXJuYWxfc2VsZWN0X2V4KHMsIDAsIGludGVydmFsKTsKKyAgICBpZiAoIXRpbWVvdXQpCisgICAgICAgIGJ5dGVzX3JlY2VpdmVkID0gcmVjdm1zZyhzLT5zb2NrX2ZkLCAmbXNnLCBmbGFncyk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFM7CisgICAgaWYgKHRpbWVvdXQgPT0gMSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X3RpbWVvdXQsICJ0aW1lZCBvdXQiKTsKKyAgICAgICAgZ290byBmaW5hbGx5OworICAgIH0KKyAgICBFTkRfU0VMRUNUX0xPT1AocykKKworICAgIGlmIChieXRlc19yZWNlaXZlZCA8IDApIHsKKyAgICAgICAgcy0+ZXJyb3JoYW5kbGVyKCk7CisgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICB9CisKKyAgICAvKiBNYWtlIGxpc3Qgb2YgKGxldmVsLCB0eXBlLCBkYXRhKSB0dXBsZXMgZnJvbSBjb250cm9sIG1lc3NhZ2VzLiAqLworICAgIGlmICgoY21zZ19saXN0ID0gUHlMaXN0X05ldygwKSkgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJfY2xvc2VmZHM7CisgICAgLyogQ2hlY2sgZm9yIGVtcHR5IGFuY2lsbGFyeSBkYXRhIGFzIG9sZCBDTVNHX0ZJUlNUSERSKCkKKyAgICAgICBpbXBsZW1lbnRhdGlvbnMgZGlkbid0IGRvIHNvLiAqLworICAgIGZvciAoY21zZ2ggPSAoKG1zZy5tc2dfY29udHJvbGxlbiA+IDApID8gQ01TR19GSVJTVEhEUigmbXNnKSA6IE5VTEwpOworICAgICAgICAgY21zZ2ggIT0gTlVMTDsgY21zZ2ggPSBDTVNHX05YVEhEUigmbXNnLCBjbXNnaCkpIHsKKyAgICAgICAgUHlPYmplY3QgKmJ5dGVzLCAqdHVwbGU7CisgICAgICAgIGludCB0bXA7CisKKyAgICAgICAgY21zZ19zdGF0dXMgPSBnZXRfY21zZ19kYXRhX2xlbigmbXNnLCBjbXNnaCwgJmNtc2dkYXRhbGVuKTsKKyAgICAgICAgaWYgKGNtc2dfc3RhdHVzICE9IDApIHsKKyAgICAgICAgICAgIGlmIChQeUVycl9XYXJuRXgoUHlFeGNfUnVudGltZVdhcm5pbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWNlaXZlZCBtYWxmb3JtZWQgb3IgaW1wcm9wZXJseS10cnVuY2F0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5jaWxsYXJ5IGRhdGEiLCAxKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBnb3RvIGVycl9jbG9zZWZkczsKKyAgICAgICAgfQorICAgICAgICBpZiAoY21zZ19zdGF0dXMgPCAwKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChjbXNnZGF0YWxlbiA+IFBZX1NTSVpFX1RfTUFYKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgImNvbnRyb2wgbWVzc2FnZSB0b28gbG9uZyIpOworICAgICAgICAgICAgZ290byBlcnJfY2xvc2VmZHM7CisgICAgICAgIH0KKworICAgICAgICBieXRlcyA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoKGNoYXIgKilDTVNHX0RBVEEoY21zZ2gpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21zZ2RhdGFsZW4pOworICAgICAgICB0dXBsZSA9IFB5X0J1aWxkVmFsdWUoImlpTiIsIChpbnQpY21zZ2gtPmNtc2dfbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KWNtc2doLT5jbXNnX3R5cGUsIGJ5dGVzKTsKKyAgICAgICAgaWYgKHR1cGxlID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycl9jbG9zZWZkczsKKyAgICAgICAgdG1wID0gUHlMaXN0X0FwcGVuZChjbXNnX2xpc3QsIHR1cGxlKTsKKyAgICAgICAgUHlfREVDUkVGKHR1cGxlKTsKKyAgICAgICAgaWYgKHRtcCAhPSAwKQorICAgICAgICAgICAgZ290byBlcnJfY2xvc2VmZHM7CisKKyAgICAgICAgaWYgKGNtc2dfc3RhdHVzICE9IDApCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR2YWwgPSBQeV9CdWlsZFZhbHVlKCJOT2lOIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICgqbWFrZXZhbCkoYnl0ZXNfcmVjZWl2ZWQsIG1ha2V2YWxfZGF0YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXNnX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KW1zZy5tc2dfZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYWtlc29ja2FkZHIocy0+c29ja19mZCwgU0FTMlNBKCZhZGRyYnVmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKG1zZy5tc2dfbmFtZWxlbiA+IGFkZHJidWZsZW4pID8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmJ1ZmxlbiA6IG1zZy5tc2dfbmFtZWxlbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcy0+c29ja19wcm90bykpOworICAgIGlmIChyZXR2YWwgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJfY2xvc2VmZHM7CisKK2ZpbmFsbHk6CisgICAgUHlfWERFQ1JFRihjbXNnX2xpc3QpOworICAgIFB5TWVtX0ZyZWUoY29udHJvbGJ1Zik7CisgICAgcmV0dXJuIHJldHZhbDsKKworZXJyX2Nsb3NlZmRzOgorI2lmZGVmIFNDTV9SSUdIVFMKKyAgICAvKiBDbG9zZSBhbGwgZGVzY3JpcHRvcnMgY29taW5nIGZyb20gU0NNX1JJR0hUUywgc28gdGhleSBkb24ndCBsZWFrLiAqLworICAgIGZvciAoY21zZ2ggPSAoKG1zZy5tc2dfY29udHJvbGxlbiA+IDApID8gQ01TR19GSVJTVEhEUigmbXNnKSA6IE5VTEwpOworICAgICAgICAgY21zZ2ggIT0gTlVMTDsgY21zZ2ggPSBDTVNHX05YVEhEUigmbXNnLCBjbXNnaCkpIHsKKyAgICAgICAgY21zZ19zdGF0dXMgPSBnZXRfY21zZ19kYXRhX2xlbigmbXNnLCBjbXNnaCwgJmNtc2dkYXRhbGVuKTsKKyAgICAgICAgaWYgKGNtc2dfc3RhdHVzIDwgMCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBpZiAoY21zZ2gtPmNtc2dfbGV2ZWwgPT0gU09MX1NPQ0tFVCAmJgorICAgICAgICAgICAgY21zZ2gtPmNtc2dfdHlwZSA9PSBTQ01fUklHSFRTKSB7CisgICAgICAgICAgICBzaXplX3QgbnVtZmRzOworICAgICAgICAgICAgaW50ICpmZHA7CisKKyAgICAgICAgICAgIG51bWZkcyA9IGNtc2dkYXRhbGVuIC8gc2l6ZW9mKGludCk7CisgICAgICAgICAgICBmZHAgPSAoaW50ICopQ01TR19EQVRBKGNtc2doKTsKKyAgICAgICAgICAgIHdoaWxlIChudW1mZHMtLSA+IDApCisgICAgICAgICAgICAgICAgY2xvc2UoKmZkcCsrKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoY21zZ19zdGF0dXMgIT0gMCkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyNlbmRpZiAvKiBTQ01fUklHSFRTICovCisgICAgZ290byBmaW5hbGx5OworfQorCisKK3N0YXRpYyBQeU9iamVjdCAqCittYWtldmFsX3JlY3Ztc2coc3NpemVfdCByZWNlaXZlZCwgdm9pZCAqZGF0YSkKK3sKKyAgICBQeU9iamVjdCAqKmJ1ZiA9IGRhdGE7CisKKyAgICBpZiAocmVjZWl2ZWQgPCBQeUJ5dGVzX0dFVF9TSVpFKCpidWYpKQorICAgICAgICBfUHlCeXRlc19SZXNpemUoYnVmLCByZWNlaXZlZCk7CisgICAgUHlfWElOQ1JFRigqYnVmKTsKKyAgICByZXR1cm4gKmJ1ZjsKK30KKworLyogcy5yZWN2bXNnKGJ1ZnNpemVbLCBhbmNidWZzaXplWywgZmxhZ3NdXSkgbWV0aG9kICovCisKK3N0YXRpYyBQeU9iamVjdCAqCitzb2NrX3JlY3Ztc2coUHlTb2NrZXRTb2NrT2JqZWN0ICpzLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeV9zc2l6ZV90IGJ1ZnNpemUsIGFuY2J1ZnNpemUgPSAwOworICAgIGludCBmbGFncyA9IDA7CisgICAgc3RydWN0IGlvdmVjIGlvdjsKKyAgICBQeU9iamVjdCAqYnVmID0gTlVMTCwgKnJldHZhbCA9IE5VTEw7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIm58bmk6cmVjdm1zZyIsICZidWZzaXplLCAmYW5jYnVmc2l6ZSwgJmZsYWdzKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoYnVmc2l6ZSA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJuZWdhdGl2ZSBidWZmZXIgc2l6ZSBpbiByZWN2bXNnKCkiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmICgoYnVmID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBidWZzaXplKSkgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaW92Lmlvdl9iYXNlID0gUHlCeXRlc19BU19TVFJJTkcoYnVmKTsKKyAgICBpb3YuaW92X2xlbiA9IGJ1ZnNpemU7CisKKyAgICAvKiBOb3RlIHRoYXQgd2UncmUgcGFzc2luZyBhIHBvaW50ZXIgdG8gKm91ciBwb2ludGVyKiB0byB0aGUgYnl0ZXMKKyAgICAgICBvYmplY3QgaGVyZSAoJmJ1Zik7IG1ha2V2YWxfcmVjdm1zZygpIG1heSBpbmNyZWYgdGhlIG9iamVjdCwgb3IKKyAgICAgICBkZWFsbG9jYXRlIGl0IGFuZCBzZXQgb3VyIHBvaW50ZXIgdG8gTlVMTC4gKi8KKyAgICByZXR2YWwgPSBzb2NrX3JlY3Ztc2dfZ3V0cyhzLCAmaW92LCAxLCBmbGFncywgYW5jYnVmc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWFrZXZhbF9yZWN2bXNnLCAmYnVmKTsKKyAgICBQeV9YREVDUkVGKGJ1Zik7CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUHlEb2NfU1RSVkFSKHJlY3Ztc2dfZG9jLAorInJlY3Ztc2coYnVmc2l6ZVssIGFuY2J1ZnNpemVbLCBmbGFnc11dKSAtPiAoZGF0YSwgYW5jZGF0YSwgbXNnX2ZsYWdzLCBhZGRyZXNzKVxuXAorXG5cCitSZWNlaXZlIG5vcm1hbCBkYXRhICh1cCB0byBidWZzaXplIGJ5dGVzKSBhbmQgYW5jaWxsYXJ5IGRhdGEgZnJvbSB0aGVcblwKK3NvY2tldC4gIFRoZSBhbmNidWZzaXplIGFyZ3VtZW50IHNldHMgdGhlIHNpemUgaW4gYnl0ZXMgb2YgdGhlXG5cCitpbnRlcm5hbCBidWZmZXIgdXNlZCB0byByZWNlaXZlIHRoZSBhbmNpbGxhcnkgZGF0YTsgaXQgZGVmYXVsdHMgdG8gMCxcblwKK21lYW5pbmcgdGhhdCBubyBhbmNpbGxhcnkgZGF0YSB3aWxsIGJlIHJlY2VpdmVkLiAgQXBwcm9wcmlhdGUgYnVmZmVyXG5cCitzaXplcyBmb3IgYW5jaWxsYXJ5IGRhdGEgY2FuIGJlIGNhbGN1bGF0ZWQgdXNpbmcgQ01TR19TUEFDRSgpIG9yXG5cCitDTVNHX0xFTigpLCBhbmQgaXRlbXMgd2hpY2ggZG8gbm90IGZpdCBpbnRvIHRoZSBidWZmZXIgbWlnaHQgYmVcblwKK3RydW5jYXRlZCBvciBkaXNjYXJkZWQuICBUaGUgZmxhZ3MgYXJndW1lbnQgZGVmYXVsdHMgdG8gMCBhbmQgaGFzIHRoZVxuXAorc2FtZSBtZWFuaW5nIGFzIGZvciByZWN2KCkuXG5cCitcblwKK1RoZSByZXR1cm4gdmFsdWUgaXMgYSA0LXR1cGxlOiAoZGF0YSwgYW5jZGF0YSwgbXNnX2ZsYWdzLCBhZGRyZXNzKS5cblwKK1RoZSBkYXRhIGl0ZW0gaXMgYSBieXRlcyBvYmplY3QgaG9sZGluZyB0aGUgbm9uLWFuY2lsbGFyeSBkYXRhXG5cCityZWNlaXZlZC4gIFRoZSBhbmNkYXRhIGl0ZW0gaXMgYSBsaXN0IG9mIHplcm8gb3IgbW9yZSB0dXBsZXNcblwKKyhjbXNnX2xldmVsLCBjbXNnX3R5cGUsIGNtc2dfZGF0YSkgcmVwcmVzZW50aW5nIHRoZSBhbmNpbGxhcnkgZGF0YVxuXAorKGNvbnRyb2wgbWVzc2FnZXMpIHJlY2VpdmVkOiBjbXNnX2xldmVsIGFuZCBjbXNnX3R5cGUgYXJlIGludGVnZXJzXG5cCitzcGVjaWZ5aW5nIHRoZSBwcm90b2NvbCBsZXZlbCBhbmQgcHJvdG9jb2wtc3BlY2lmaWMgdHlwZSByZXNwZWN0aXZlbHksXG5cCithbmQgY21zZ19kYXRhIGlzIGEgYnl0ZXMgb2JqZWN0IGhvbGRpbmcgdGhlIGFzc29jaWF0ZWQgZGF0YS4gIFRoZVxuXAorbXNnX2ZsYWdzIGl0ZW0gaXMgdGhlIGJpdHdpc2UgT1Igb2YgdmFyaW91cyBmbGFncyBpbmRpY2F0aW5nXG5cCitjb25kaXRpb25zIG9uIHRoZSByZWNlaXZlZCBtZXNzYWdlOyBzZWUgeW91ciBzeXN0ZW0gZG9jdW1lbnRhdGlvbiBmb3JcblwKK2RldGFpbHMuICBJZiB0aGUgcmVjZWl2aW5nIHNvY2tldCBpcyB1bmNvbm5lY3RlZCwgYWRkcmVzcyBpcyB0aGVcblwKK2FkZHJlc3Mgb2YgdGhlIHNlbmRpbmcgc29ja2V0LCBpZiBhdmFpbGFibGU7IG90aGVyd2lzZSwgaXRzIHZhbHVlIGlzXG5cCit1bnNwZWNpZmllZC5cblwKK1xuXAorSWYgcmVjdm1zZygpIHJhaXNlcyBhbiBleGNlcHRpb24gYWZ0ZXIgdGhlIHN5c3RlbSBjYWxsIHJldHVybnMsIGl0XG5cCit3aWxsIGZpcnN0IGF0dGVtcHQgdG8gY2xvc2UgYW55IGZpbGUgZGVzY3JpcHRvcnMgcmVjZWl2ZWQgdmlhIHRoZVxuXAorU0NNX1JJR0hUUyBtZWNoYW5pc20uIik7CisKKworc3RhdGljIFB5T2JqZWN0ICoKK21ha2V2YWxfcmVjdm1zZ19pbnRvKHNzaXplX3QgcmVjZWl2ZWQsIHZvaWQgKmRhdGEpCit7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChyZWNlaXZlZCk7Cit9CisKKy8qIHMucmVjdm1zZ19pbnRvKGJ1ZmZlcnNbLCBhbmNidWZzaXplWywgZmxhZ3NdXSkgbWV0aG9kICovCisKK3N0YXRpYyBQeU9iamVjdCAqCitzb2NrX3JlY3Ztc2dfaW50byhQeVNvY2tldFNvY2tPYmplY3QgKnMsIFB5T2JqZWN0ICphcmdzKQoreworICAgIFB5X3NzaXplX3QgYW5jYnVmc2l6ZSA9IDA7CisgICAgaW50IGZsYWdzID0gMDsKKyAgICBzdHJ1Y3QgaW92ZWMgKmlvdnMgPSBOVUxMOworICAgIFB5X3NzaXplX3QgaSwgbml0ZW1zLCBuYnVmcyA9IDA7CisgICAgUHlfYnVmZmVyICpidWZzID0gTlVMTDsKKyAgICBQeU9iamVjdCAqYnVmZmVyc19hcmcsICpmYXN0LCAqcmV0dmFsID0gTlVMTDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT3xuaTpyZWN2bXNnX2ludG8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmYnVmZmVyc19hcmcsICZhbmNidWZzaXplLCAmZmxhZ3MpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmICgoZmFzdCA9IFB5U2VxdWVuY2VfRmFzdChidWZmZXJzX2FyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlY3Ztc2dfaW50bygpIGFyZ3VtZW50IDEgbXVzdCBiZSBhbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVyYWJsZSIpKSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBuaXRlbXMgPSBQeVNlcXVlbmNlX0Zhc3RfR0VUX1NJWkUoZmFzdCk7CisgICAgaWYgKG5pdGVtcyA+IElOVF9NQVgpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJyZWN2bXNnX2ludG8oKSBhcmd1bWVudCAxIGlzIHRvbyBsb25nIik7CisgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICB9CisKKyAgICAvKiBGaWxsIGluIGFuIGlvdmVjIGZvciBlYWNoIGl0ZW0sIGFuZCBzYXZlIHRoZSBQeV9idWZmZXIKKyAgICAgICBzdHJ1Y3RzIHRvIHJlbGVhc2UgYWZ0ZXJ3YXJkcy4gKi8KKyAgICBpZiAobml0ZW1zID4gMCAmJiAoKGlvdnMgPSBQeU1lbV9OZXcoc3RydWN0IGlvdmVjLCBuaXRlbXMpKSA9PSBOVUxMIHx8CisgICAgICAgICAgICAgICAgICAgICAgIChidWZzID0gUHlNZW1fTmV3KFB5X2J1ZmZlciwgbml0ZW1zKSkgPT0gTlVMTCkpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgZ290byBmaW5hbGx5OworICAgIH0KKyAgICBmb3IgKDsgbmJ1ZnMgPCBuaXRlbXM7IG5idWZzKyspIHsKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZShQeVNlcXVlbmNlX0Zhc3RfR0VUX0lURU0oZmFzdCwgbmJ1ZnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ3KjtyZWN2bXNnX2ludG8oKSBhcmd1bWVudCAxIG11c3QgYmUgYW4gaXRlcmFibGUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJvZiBzaW5nbGUtc2VnbWVudCByZWFkLXdyaXRlIGJ1ZmZlcnMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICZidWZzW25idWZzXSkpCisgICAgICAgICAgICBnb3RvIGZpbmFsbHk7CisgICAgICAgIGlvdnNbbmJ1ZnNdLmlvdl9iYXNlID0gYnVmc1tuYnVmc10uYnVmOworICAgICAgICBpb3ZzW25idWZzXS5pb3ZfbGVuID0gYnVmc1tuYnVmc10ubGVuOworICAgIH0KKworICAgIHJldHZhbCA9IHNvY2tfcmVjdm1zZ19ndXRzKHMsIGlvdnMsIG5pdGVtcywgZmxhZ3MsIGFuY2J1ZnNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1ha2V2YWxfcmVjdm1zZ19pbnRvLCBOVUxMKTsKK2ZpbmFsbHk6CisgICAgZm9yIChpID0gMDsgaSA8IG5idWZzOyBpKyspCisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJmJ1ZnNbaV0pOworICAgIFB5TWVtX0ZyZWUoYnVmcyk7CisgICAgUHlNZW1fRnJlZShpb3ZzKTsKKyAgICBQeV9ERUNSRUYoZmFzdCk7CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUHlEb2NfU1RSVkFSKHJlY3Ztc2dfaW50b19kb2MsCisicmVjdm1zZ19pbnRvKGJ1ZmZlcnNbLCBhbmNidWZzaXplWywgZmxhZ3NdXSkgLT4gKG5ieXRlcywgYW5jZGF0YSwgbXNnX2ZsYWdzLCBhZGRyZXNzKVxuXAorXG5cCitSZWNlaXZlIG5vcm1hbCBkYXRhIGFuZCBhbmNpbGxhcnkgZGF0YSBmcm9tIHRoZSBzb2NrZXQsIHNjYXR0ZXJpbmcgdGhlXG5cCitub24tYW5jaWxsYXJ5IGRhdGEgaW50byBhIHNlcmllcyBvZiBidWZmZXJzLiAgVGhlIGJ1ZmZlcnMgYXJndW1lbnRcblwKK211c3QgYmUgYW4gaXRlcmFibGUgb2Ygb2JqZWN0cyB0aGF0IGV4cG9ydCB3cml0YWJsZSBidWZmZXJzXG5cCisoZS5nLiBieXRlYXJyYXkgb2JqZWN0cyk7IHRoZXNlIHdpbGwgYmUgZmlsbGVkIHdpdGggc3VjY2Vzc2l2ZSBjaHVua3NcblwKK29mIHRoZSBub24tYW5jaWxsYXJ5IGRhdGEgdW50aWwgaXQgaGFzIGFsbCBiZWVuIHdyaXR0ZW4gb3IgdGhlcmUgYXJlXG5cCitubyBtb3JlIGJ1ZmZlcnMuICBUaGUgYW5jYnVmc2l6ZSBhcmd1bWVudCBzZXRzIHRoZSBzaXplIGluIGJ5dGVzIG9mXG5cCit0aGUgaW50ZXJuYWwgYnVmZmVyIHVzZWQgdG8gcmVjZWl2ZSB0aGUgYW5jaWxsYXJ5IGRhdGE7IGl0IGRlZmF1bHRzIHRvXG5cCiswLCBtZWFuaW5nIHRoYXQgbm8gYW5jaWxsYXJ5IGRhdGEgd2lsbCBiZSByZWNlaXZlZC4gIEFwcHJvcHJpYXRlXG5cCitidWZmZXIgc2l6ZXMgZm9yIGFuY2lsbGFyeSBkYXRhIGNhbiBiZSBjYWxjdWxhdGVkIHVzaW5nIENNU0dfU1BBQ0UoKVxuXAorb3IgQ01TR19MRU4oKSwgYW5kIGl0ZW1zIHdoaWNoIGRvIG5vdCBmaXQgaW50byB0aGUgYnVmZmVyIG1pZ2h0IGJlXG5cCit0cnVuY2F0ZWQgb3IgZGlzY2FyZGVkLiAgVGhlIGZsYWdzIGFyZ3VtZW50IGRlZmF1bHRzIHRvIDAgYW5kIGhhcyB0aGVcblwKK3NhbWUgbWVhbmluZyBhcyBmb3IgcmVjdigpLlxuXAorXG5cCitUaGUgcmV0dXJuIHZhbHVlIGlzIGEgNC10dXBsZTogKG5ieXRlcywgYW5jZGF0YSwgbXNnX2ZsYWdzLCBhZGRyZXNzKS5cblwKK1RoZSBuYnl0ZXMgaXRlbSBpcyB0aGUgdG90YWwgbnVtYmVyIG9mIGJ5dGVzIG9mIG5vbi1hbmNpbGxhcnkgZGF0YVxuXAord3JpdHRlbiBpbnRvIHRoZSBidWZmZXJzLiAgVGhlIGFuY2RhdGEgaXRlbSBpcyBhIGxpc3Qgb2YgemVybyBvciBtb3JlXG5cCit0dXBsZXMgKGNtc2dfbGV2ZWwsIGNtc2dfdHlwZSwgY21zZ19kYXRhKSByZXByZXNlbnRpbmcgdGhlIGFuY2lsbGFyeVxuXAorZGF0YSAoY29udHJvbCBtZXNzYWdlcykgcmVjZWl2ZWQ6IGNtc2dfbGV2ZWwgYW5kIGNtc2dfdHlwZSBhcmVcblwKK2ludGVnZXJzIHNwZWNpZnlpbmcgdGhlIHByb3RvY29sIGxldmVsIGFuZCBwcm90b2NvbC1zcGVjaWZpYyB0eXBlXG5cCityZXNwZWN0aXZlbHksIGFuZCBjbXNnX2RhdGEgaXMgYSBieXRlcyBvYmplY3QgaG9sZGluZyB0aGUgYXNzb2NpYXRlZFxuXAorZGF0YS4gIFRoZSBtc2dfZmxhZ3MgaXRlbSBpcyB0aGUgYml0d2lzZSBPUiBvZiB2YXJpb3VzIGZsYWdzXG5cCitpbmRpY2F0aW5nIGNvbmRpdGlvbnMgb24gdGhlIHJlY2VpdmVkIG1lc3NhZ2U7IHNlZSB5b3VyIHN5c3RlbVxuXAorZG9jdW1lbnRhdGlvbiBmb3IgZGV0YWlscy4gIElmIHRoZSByZWNlaXZpbmcgc29ja2V0IGlzIHVuY29ubmVjdGVkLFxuXAorYWRkcmVzcyBpcyB0aGUgYWRkcmVzcyBvZiB0aGUgc2VuZGluZyBzb2NrZXQsIGlmIGF2YWlsYWJsZTsgb3RoZXJ3aXNlLFxuXAoraXRzIHZhbHVlIGlzIHVuc3BlY2lmaWVkLlxuXAorXG5cCitJZiByZWN2bXNnX2ludG8oKSByYWlzZXMgYW4gZXhjZXB0aW9uIGFmdGVyIHRoZSBzeXN0ZW0gY2FsbCByZXR1cm5zLFxuXAoraXQgd2lsbCBmaXJzdCBhdHRlbXB0IHRvIGNsb3NlIGFueSBmaWxlIGRlc2NyaXB0b3JzIHJlY2VpdmVkIHZpYSB0aGVcblwKK1NDTV9SSUdIVFMgbWVjaGFuaXNtLiIpOworI2VuZGlmICAgIC8qIENNU0dfTEVOICovCisKKwogLyogcy5zZW5kKGRhdGEgWyxmbGFnc10pIG1ldGhvZCAqLwogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMjc3MSw2ICszNDMxLDcgQEAKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbmR0bygpIHRha2VzIDIgb3IgMyBhcmd1bWVudHMgKCVkIGdpdmVuKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnbGVuKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0yODE0LDYgKzM0NzUsMjM0IEBACiBGb3IgSVAgc29ja2V0cywgdGhlIGFkZHJlc3MgaXMgYSBwYWlyIChob3N0YWRkciwgcG9ydCkuIik7CiAKIAorLyogVGhlIHNlbmRtc2coKSBhbmQgcmVjdm1zZ1tfaW50b10oKSBtZXRob2RzIHJlcXVpcmUgYSB3b3JraW5nCisgICBDTVNHX0xFTigpLiAgU2VlIHRoZSBjb21tZW50IG5lYXIgZ2V0X0NNU0dfTEVOKCkuICovCisjaWZkZWYgQ01TR19MRU4KKy8qIHMuc2VuZG1zZyhidWZmZXJzWywgYW5jZGF0YVssIGZsYWdzWywgYWRkcmVzc11dXSkgbWV0aG9kICovCisKK3N0YXRpYyBQeU9iamVjdCAqCitzb2NrX3NlbmRtc2coUHlTb2NrZXRTb2NrT2JqZWN0ICpzLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeV9zc2l6ZV90IGksIG5kYXRhcGFydHMsIG5kYXRhYnVmcyA9IDAsIG5jbXNncywgbmNtc2didWZzID0gMDsKKyAgICBQeV9idWZmZXIgKmRhdGFidWZzID0gTlVMTDsKKyAgICBzdHJ1Y3QgaW92ZWMgKmlvdnMgPSBOVUxMOworICAgIHNvY2tfYWRkcl90IGFkZHJidWY7CisgICAgc3RydWN0IG1zZ2hkciBtc2cgPSB7MH07CisgICAgc3RydWN0IGNtc2dpbmZvIHsKKyAgICAgICAgaW50IGxldmVsOworICAgICAgICBpbnQgdHlwZTsKKyAgICAgICAgUHlfYnVmZmVyIGRhdGE7CisgICAgfSAqY21zZ3MgPSBOVUxMOworICAgIHZvaWQgKmNvbnRyb2xidWYgPSBOVUxMOworICAgIHNpemVfdCBjb250cm9sbGVuLCBjb250cm9sbGVuX2xhc3Q7CisgICAgc3NpemVfdCBieXRlc19zZW50ID0gLTE7CisgICAgaW50IGFkZHJsZW4sIHRpbWVvdXQsIGZsYWdzID0gMDsKKyAgICBQeU9iamVjdCAqZGF0YV9hcmcsICpjbXNnX2FyZyA9IE5VTEwsICphZGRyX2FyZyA9IE5VTEwsICpkYXRhX2Zhc3QgPSBOVUxMLAorICAgICAgICAqY21zZ19mYXN0ID0gTlVMTCwgKnJldHZhbCA9IE5VTEw7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk98T2lPOnNlbmRtc2ciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAmZGF0YV9hcmcsICZjbXNnX2FyZywgJmZsYWdzLCAmYWRkcl9hcmcpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8qIFBhcnNlIGRlc3RpbmF0aW9uIGFkZHJlc3MuICovCisgICAgaWYgKGFkZHJfYXJnICE9IE5VTEwgJiYgYWRkcl9hcmcgIT0gUHlfTm9uZSkgeworICAgICAgICBpZiAoIWdldHNvY2thZGRyYXJnKHMsIGFkZHJfYXJnLCBTQVMyU0EoJmFkZHJidWYpLCAmYWRkcmxlbikpCisgICAgICAgICAgICBnb3RvIGZpbmFsbHk7CisgICAgICAgIG1zZy5tc2dfbmFtZSA9ICZhZGRyYnVmOworICAgICAgICBtc2cubXNnX25hbWVsZW4gPSBhZGRybGVuOworICAgIH0KKworICAgIC8qIEZpbGwgaW4gYW4gaW92ZWMgZm9yIGVhY2ggbWVzc2FnZSBwYXJ0LCBhbmQgc2F2ZSB0aGUgUHlfYnVmZmVyCisgICAgICAgc3RydWN0cyB0byByZWxlYXNlIGFmdGVyd2FyZHMuICovCisgICAgaWYgKChkYXRhX2Zhc3QgPSBQeVNlcXVlbmNlX0Zhc3QoZGF0YV9hcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlbmRtc2coKSBhcmd1bWVudCAxIG11c3QgYmUgYW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVyYWJsZSIpKSA9PSBOVUxMKQorICAgICAgICBnb3RvIGZpbmFsbHk7CisgICAgbmRhdGFwYXJ0cyA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfU0laRShkYXRhX2Zhc3QpOworICAgIGlmIChuZGF0YXBhcnRzID4gSU5UX01BWCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgInNlbmRtc2coKSBhcmd1bWVudCAxIGlzIHRvbyBsb25nIik7CisgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICB9CisgICAgbXNnLm1zZ19pb3ZsZW4gPSBuZGF0YXBhcnRzOworICAgIGlmIChuZGF0YXBhcnRzID4gMCAmJgorICAgICAgICAoKG1zZy5tc2dfaW92ID0gaW92cyA9IFB5TWVtX05ldyhzdHJ1Y3QgaW92ZWMsIG5kYXRhcGFydHMpKSA9PSBOVUxMIHx8CisgICAgICAgICAoZGF0YWJ1ZnMgPSBQeU1lbV9OZXcoUHlfYnVmZmVyLCBuZGF0YXBhcnRzKSkgPT0gTlVMTCkpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgZ290byBmaW5hbGx5OworICAgIH0KKyAgICBmb3IgKDsgbmRhdGFidWZzIDwgbmRhdGFwYXJ0czsgbmRhdGFidWZzKyspIHsKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZShQeVNlcXVlbmNlX0Zhc3RfR0VUX0lURU0oZGF0YV9mYXN0LCBuZGF0YWJ1ZnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ5KjtzZW5kbXNnKCkgYXJndW1lbnQgMSBtdXN0IGJlIGFuIGl0ZXJhYmxlIG9mICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiYnVmZmVyLWNvbXBhdGlibGUgb2JqZWN0cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgJmRhdGFidWZzW25kYXRhYnVmc10pKQorICAgICAgICAgICAgZ290byBmaW5hbGx5OworICAgICAgICBpb3ZzW25kYXRhYnVmc10uaW92X2Jhc2UgPSBkYXRhYnVmc1tuZGF0YWJ1ZnNdLmJ1ZjsKKyAgICAgICAgaW92c1tuZGF0YWJ1ZnNdLmlvdl9sZW4gPSBkYXRhYnVmc1tuZGF0YWJ1ZnNdLmxlbjsKKyAgICB9CisKKyAgICBpZiAoY21zZ19hcmcgPT0gTlVMTCkKKyAgICAgICAgbmNtc2dzID0gMDsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKChjbXNnX2Zhc3QgPSBQeVNlcXVlbmNlX0Zhc3QoY21zZ19hcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzZW5kbXNnKCkgYXJndW1lbnQgMiBtdXN0IGJlIGFuICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIml0ZXJhYmxlIikpID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGZpbmFsbHk7CisgICAgICAgIG5jbXNncyA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfU0laRShjbXNnX2Zhc3QpOworICAgIH0KKworI2lmbmRlZiBDTVNHX1NQQUNFCisgICAgaWYgKG5jbXNncyA+IDEpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAic2VuZGluZyBtdWx0aXBsZSBjb250cm9sIG1lc3NhZ2VzIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgIm9uIHRoaXMgc3lzdGVtIik7CisgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICB9CisjZW5kaWYKKyAgICAvKiBTYXZlIGxldmVsLCB0eXBlIGFuZCBQeV9idWZmZXIgZm9yIGVhY2ggY29udHJvbCBtZXNzYWdlLAorICAgICAgIGFuZCBjYWxjdWxhdGUgdG90YWwgc2l6ZS4gKi8KKyAgICBpZiAobmNtc2dzID4gMCAmJiAoY21zZ3MgPSBQeU1lbV9OZXcoc3RydWN0IGNtc2dpbmZvLCBuY21zZ3MpKSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICB9CisgICAgY29udHJvbGxlbiA9IGNvbnRyb2xsZW5fbGFzdCA9IDA7CisgICAgd2hpbGUgKG5jbXNnYnVmcyA8IG5jbXNncykgeworICAgICAgICBzaXplX3QgYnVmc2l6ZSwgc3BhY2U7CisKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZShQeVNlcXVlbmNlX0Zhc3RfR0VUX0lURU0oY21zZ19mYXN0LCBuY21zZ2J1ZnMpLAorICAgICAgICAgICAgICAgICAgICAgICAgICIoaWl5Kik6W3NlbmRtc2coKSBhbmNpbGxhcnkgZGF0YSBpdGVtc10iLAorICAgICAgICAgICAgICAgICAgICAgICAgICZjbXNnc1tuY21zZ2J1ZnNdLmxldmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICZjbXNnc1tuY21zZ2J1ZnNdLnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgJmNtc2dzW25jbXNnYnVmc10uZGF0YSkpCisgICAgICAgICAgICBnb3RvIGZpbmFsbHk7CisgICAgICAgIGJ1ZnNpemUgPSBjbXNnc1tuY21zZ2J1ZnMrK10uZGF0YS5sZW47CisKKyNpZmRlZiBDTVNHX1NQQUNFCisgICAgICAgIGlmICghZ2V0X0NNU0dfU1BBQ0UoYnVmc2l6ZSwgJnNwYWNlKSkgeworI2Vsc2UKKyAgICAgICAgaWYgKCFnZXRfQ01TR19MRU4oYnVmc2l6ZSwgJnNwYWNlKSkgeworI2VuZGlmCisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgImFuY2lsbGFyeSBkYXRhIGl0ZW0gdG9vIGxhcmdlIik7CisgICAgICAgICAgICBnb3RvIGZpbmFsbHk7CisgICAgICAgIH0KKyAgICAgICAgY29udHJvbGxlbiArPSBzcGFjZTsKKyAgICAgICAgaWYgKGNvbnRyb2xsZW4gPiBTT0NLTEVOX1RfTElNSVQgfHwgY29udHJvbGxlbiA8IGNvbnRyb2xsZW5fbGFzdCkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJ0b28gbXVjaCBhbmNpbGxhcnkgZGF0YSIpOworICAgICAgICAgICAgZ290byBmaW5hbGx5OworICAgICAgICB9CisgICAgICAgIGNvbnRyb2xsZW5fbGFzdCA9IGNvbnRyb2xsZW47CisgICAgfQorCisgICAgLyogQ29uc3RydWN0IGFuY2lsbGFyeSBkYXRhIGJsb2NrIGZyb20gY29udHJvbCBtZXNzYWdlIGluZm8uICovCisgICAgaWYgKG5jbXNnYnVmcyA+IDApIHsKKyAgICAgICAgc3RydWN0IGNtc2doZHIgKmNtc2doID0gTlVMTDsKKworICAgICAgICBpZiAoKG1zZy5tc2dfY29udHJvbCA9IGNvbnRyb2xidWYgPQorICAgICAgICAgICAgIFB5TWVtX01hbGxvYyhjb250cm9sbGVuKSkgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICAgICAgfQorICAgICAgICBtc2cubXNnX2NvbnRyb2xsZW4gPSBjb250cm9sbGVuOworCisgICAgICAgIC8qIE5lZWQgdG8gemVybyBvdXQgdGhlIGJ1ZmZlciBhcyBhIHdvcmthcm91bmQgZm9yIGdsaWJjJ3MKKyAgICAgICAgICAgQ01TR19OWFRIRFIoKSBpbXBsZW1lbnRhdGlvbi4gIEFmdGVyIGdldHRpbmcgdGhlIHBvaW50ZXIgdG8KKyAgICAgICAgICAgdGhlIG5leHQgaGVhZGVyLCBpdCBjaGVja3MgaXRzICh1bmluaXRpYWxpemVkKSBjbXNnX2xlbgorICAgICAgICAgICBtZW1iZXIgdG8gc2VlIGlmIHRoZSAibWVzc2FnZSIgZml0cyBpbiB0aGUgYnVmZmVyLCBhbmQKKyAgICAgICAgICAgcmV0dXJucyBOVUxMIGlmIGl0IGRvZXNuJ3QuICBaZXJvLWZpbGxpbmcgdGhlIGJ1ZmZlcgorICAgICAgICAgICBlbnN1cmVzIHRoYXQgdGhhdCBkb2Vzbid0IGhhcHBlbi4gKi8KKyAgICAgICAgbWVtc2V0KGNvbnRyb2xidWYsIDAsIGNvbnRyb2xsZW4pOworCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuY21zZ2J1ZnM7IGkrKykgeworICAgICAgICAgICAgc2l6ZV90IG1zZ19sZW4sIGRhdGFfbGVuID0gY21zZ3NbaV0uZGF0YS5sZW47CisgICAgICAgICAgICBpbnQgZW5vdWdoX3NwYWNlID0gMDsKKworICAgICAgICAgICAgY21zZ2ggPSAoaSA9PSAwKSA/IENNU0dfRklSU1RIRFIoJm1zZykgOiBDTVNHX05YVEhEUigmbXNnLCBjbXNnaCk7CisgICAgICAgICAgICBpZiAoY21zZ2ggPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19SdW50aW1lRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmV4cGVjdGVkIE5VTEwgcmVzdWx0IGZyb20gJXMoKSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpID09IDApID8gIkNNU0dfRklSU1RIRFIiIDogIkNNU0dfTlhUSERSIik7CisgICAgICAgICAgICAgICAgZ290byBmaW5hbGx5OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFnZXRfQ01TR19MRU4oZGF0YV9sZW4sICZtc2dfbGVuKSkgeworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpdGVtIHNpemUgb3V0IG9mIHJhbmdlIGZvciBDTVNHX0xFTigpIik7CisgICAgICAgICAgICAgICAgZ290byBmaW5hbGx5OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNtc2dfbWluX3NwYWNlKCZtc2csIGNtc2doLCBtc2dfbGVuKSkgeworICAgICAgICAgICAgICAgIHNpemVfdCBzcGFjZTsKKworICAgICAgICAgICAgICAgIGNtc2doLT5jbXNnX2xlbiA9IG1zZ19sZW47CisgICAgICAgICAgICAgICAgaWYgKGdldF9jbXNnX2RhdGFfc3BhY2UoJm1zZywgY21zZ2gsICZzcGFjZSkpCisgICAgICAgICAgICAgICAgICAgIGVub3VnaF9zcGFjZSA9IChzcGFjZSA+PSBkYXRhX2xlbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIWVub3VnaF9zcGFjZSkgeworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmNpbGxhcnkgZGF0YSBkb2VzIG5vdCBmaXQgaW4gY2FsY3VsYXRlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzcGFjZSIpOworICAgICAgICAgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNtc2doLT5jbXNnX2xldmVsID0gY21zZ3NbaV0ubGV2ZWw7CisgICAgICAgICAgICBjbXNnaC0+Y21zZ190eXBlID0gY21zZ3NbaV0udHlwZTsKKyAgICAgICAgICAgIG1lbWNweShDTVNHX0RBVEEoY21zZ2gpLCBjbXNnc1tpXS5kYXRhLmJ1ZiwgZGF0YV9sZW4pOworICAgICAgICB9CisgICAgfQorCisgICAgLyogTWFrZSB0aGUgc3lzdGVtIGNhbGwuICovCisgICAgaWYgKCFJU19TRUxFQ1RBQkxFKHMpKSB7CisgICAgICAgIHNlbGVjdF9lcnJvcigpOworICAgICAgICBnb3RvIGZpbmFsbHk7CisgICAgfQorCisgICAgQkVHSU5fU0VMRUNUX0xPT1AocykKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTOworICAgIHRpbWVvdXQgPSBpbnRlcm5hbF9zZWxlY3RfZXgocywgMSwgaW50ZXJ2YWwpOworICAgIGlmICghdGltZW91dCkKKyAgICAgICAgYnl0ZXNfc2VudCA9IHNlbmRtc2cocy0+c29ja19mZCwgJm1zZywgZmxhZ3MpOworICAgIFB5X0VORF9BTExPV19USFJFQURTOworICAgIGlmICh0aW1lb3V0ID09IDEpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKHNvY2tldF90aW1lb3V0LCAidGltZWQgb3V0Iik7CisgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICB9CisgICAgRU5EX1NFTEVDVF9MT09QKHMpCisKKyAgICBpZiAoYnl0ZXNfc2VudCA8IDApIHsKKyAgICAgICAgcy0+ZXJyb3JoYW5kbGVyKCk7CisgICAgICAgIGdvdG8gZmluYWxseTsKKyAgICB9CisgICAgcmV0dmFsID0gUHlMb25nX0Zyb21Tc2l6ZV90KGJ5dGVzX3NlbnQpOworCitmaW5hbGx5OgorICAgIFB5TWVtX0ZyZWUoY29udHJvbGJ1Zik7CisgICAgZm9yIChpID0gMDsgaSA8IG5jbXNnYnVmczsgaSsrKQorICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZjbXNnc1tpXS5kYXRhKTsKKyAgICBQeU1lbV9GcmVlKGNtc2dzKTsKKyAgICBQeV9YREVDUkVGKGNtc2dfZmFzdCk7CisgICAgZm9yIChpID0gMDsgaSA8IG5kYXRhYnVmczsgaSsrKQorICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZkYXRhYnVmc1tpXSk7CisgICAgUHlNZW1fRnJlZShkYXRhYnVmcyk7CisgICAgUHlNZW1fRnJlZShpb3ZzKTsKKyAgICBQeV9YREVDUkVGKGRhdGFfZmFzdCk7CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUHlEb2NfU1RSVkFSKHNlbmRtc2dfZG9jLAorInNlbmRtc2coYnVmZmVyc1ssIGFuY2RhdGFbLCBmbGFnc1ssIGFkZHJlc3NdXV0pIC0+IGNvdW50XG5cCitcblwKK1NlbmQgbm9ybWFsIGFuZCBhbmNpbGxhcnkgZGF0YSB0byB0aGUgc29ja2V0LCBnYXRoZXJpbmcgdGhlXG5cCitub24tYW5jaWxsYXJ5IGRhdGEgZnJvbSBhIHNlcmllcyBvZiBidWZmZXJzIGFuZCBjb25jYXRlbmF0aW5nIGl0IGludG9cblwKK2Egc2luZ2xlIG1lc3NhZ2UuICBUaGUgYnVmZmVycyBhcmd1bWVudCBzcGVjaWZpZXMgdGhlIG5vbi1hbmNpbGxhcnlcblwKK2RhdGEgYXMgYW4gaXRlcmFibGUgb2YgYnVmZmVyLWNvbXBhdGlibGUgb2JqZWN0cyAoZS5nLiBieXRlcyBvYmplY3RzKS5cblwKK1RoZSBhbmNkYXRhIGFyZ3VtZW50IHNwZWNpZmllcyB0aGUgYW5jaWxsYXJ5IGRhdGEgKGNvbnRyb2wgbWVzc2FnZXMpXG5cCithcyBhbiBpdGVyYWJsZSBvZiB6ZXJvIG9yIG1vcmUgdHVwbGVzIChjbXNnX2xldmVsLCBjbXNnX3R5cGUsXG5cCitjbXNnX2RhdGEpLCB3aGVyZSBjbXNnX2xldmVsIGFuZCBjbXNnX3R5cGUgYXJlIGludGVnZXJzIHNwZWNpZnlpbmcgdGhlXG5cCitwcm90b2NvbCBsZXZlbCBhbmQgcHJvdG9jb2wtc3BlY2lmaWMgdHlwZSByZXNwZWN0aXZlbHksIGFuZCBjbXNnX2RhdGFcblwKK2lzIGEgYnVmZmVyLWNvbXBhdGlibGUgb2JqZWN0IGhvbGRpbmcgdGhlIGFzc29jaWF0ZWQgZGF0YS4gIFRoZSBmbGFnc1xuXAorYXJndW1lbnQgZGVmYXVsdHMgdG8gMCBhbmQgaGFzIHRoZSBzYW1lIG1lYW5pbmcgYXMgZm9yIHNlbmQoKS4gIElmXG5cCithZGRyZXNzIGlzIHN1cHBsaWVkIGFuZCBub3QgTm9uZSwgaXQgc2V0cyBhIGRlc3RpbmF0aW9uIGFkZHJlc3MgZm9yXG5cCit0aGUgbWVzc2FnZS4gIFRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIG51bWJlciBvZiBieXRlcyBvZiBub24tYW5jaWxsYXJ5XG5cCitkYXRhIHNlbnQuIik7CisjZW5kaWYgICAgLyogQ01TR19MRU4gKi8KKworCiAvKiBzLnNodXRkb3duKGhvdykgbWV0aG9kICovCiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0yODgyLDYgKzM3NzEsMzQgQEAKIENvbnRyb2wgdGhlIHNvY2tldCB3aXRoIFdTQUlvY3RsIHN5c2NhbGwuIEN1cnJlbnRseSBzdXBwb3J0ZWQgJ2NtZCcgdmFsdWVzIGFyZVxuXAogU0lPX1JDVkFMTDogICdvcHRpb24nIG11c3QgYmUgb25lIG9mIHRoZSBzb2NrZXQuUkNWQUxMXyogY29uc3RhbnRzLlxuXAogU0lPX0tFRVBBTElWRV9WQUxTOiAgJ29wdGlvbicgaXMgYSB0dXBsZSBvZiAob25vZmYsIHRpbWVvdXQsIGludGVydmFsKS4iKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChNU19XSU5ET1dTKQorc3RhdGljIFB5T2JqZWN0Kgorc29ja19zaGFyZShQeVNvY2tldFNvY2tPYmplY3QgKnMsIFB5T2JqZWN0ICphcmcpCit7CisgICAgV1NBUFJPVE9DT0xfSU5GTyBpbmZvOworICAgIERXT1JEIHByb2Nlc3NJZDsKKyAgICBpbnQgcmVzdWx0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZywgIkkiLCAmcHJvY2Vzc0lkKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgcmVzdWx0ID0gV1NBRHVwbGljYXRlU29ja2V0KHMtPnNvY2tfZmQsIHByb2Nlc3NJZCwgJmluZm8pOworICAgIFB5X0VORF9BTExPV19USFJFQURTCisgICAgaWYgKHJlc3VsdCA9PSBTT0NLRVRfRVJST1IpCisgICAgICAgIHJldHVybiBzZXRfZXJyb3IoKTsKKyAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgoY29uc3QgY2hhciopJmluZm8sIHNpemVvZihpbmZvKSk7Cit9CitQeURvY19TVFJWQVIoc29ja19zaGFyZV9kb2MsCisic2hhcmUocHJvY2Vzc19pZCkgLT4gYnl0ZXNcblwKK1xuXAorU2hhcmUgdGhlIHNvY2tldCB3aXRoIGFub3RoZXIgcHJvY2Vzcy4gIFRoZSB0YXJnZXQgcHJvY2VzcyBpZFxuXAorbXVzdCBiZSBwcm92aWRlZCBhbmQgdGhlIHJlc3VsdGluZyBieXRlcyBvYmplY3QgcGFzc2VkIHRvIHRoZSB0YXJnZXRcblwKK3Byb2Nlc3MuICBUaGVyZSB0aGUgc2hhcmVkIHNvY2tldCBjYW4gYmUgaW5zdGFudGlhdGVkIGJ5IGNhbGxpbmdcblwKK3NvY2tldC5mcm9tc2hhcmUoKS4iKTsKKwogCiAjZW5kaWYKIApAQCAtMjkxNCw2ICszODMxLDEwIEBACiAgICAgeyJpb2N0bCIsICAgICAgICAgICAgIChQeUNGdW5jdGlvbilzb2NrX2lvY3RsLCBNRVRIX1ZBUkFSR1MsCiAgICAgICAgICAgICAgICAgICAgICAgc29ja19pb2N0bF9kb2N9LAogI2VuZGlmCisjaWYgZGVmaW5lZChNU19XSU5ET1dTKQorICAgIHsic2hhcmUiLCAgICAgICAgIChQeUNGdW5jdGlvbilzb2NrX3NoYXJlLCBNRVRIX1ZBUkFSR1MsCisgICAgICAgICAgICAgICAgICAgICAgc29ja19zaGFyZV9kb2N9LAorI2VuZGlmCiAgICAgeyJsaXN0ZW4iLCAgICAgICAgICAgIChQeUNGdW5jdGlvbilzb2NrX2xpc3RlbiwgTUVUSF9PLAogICAgICAgICAgICAgICAgICAgICAgIGxpc3Rlbl9kb2N9LAogICAgIHsicmVjdiIsICAgICAgICAgICAgICAoUHlDRnVuY3Rpb24pc29ja19yZWN2LCBNRVRIX1ZBUkFSR1MsCkBAIC0yOTQwLDYgKzM4NjEsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgICBzZXRzb2Nrb3B0X2RvY30sCiAgICAgeyJzaHV0ZG93biIsICAgICAgICAgIChQeUNGdW5jdGlvbilzb2NrX3NodXRkb3duLCBNRVRIX08sCiAgICAgICAgICAgICAgICAgICAgICAgc2h1dGRvd25fZG9jfSwKKyNpZmRlZiBDTVNHX0xFTgorICAgIHsicmVjdm1zZyIsICAgICAgICAgICAoUHlDRnVuY3Rpb24pc29ja19yZWN2bXNnLCBNRVRIX1ZBUkFSR1MsCisgICAgICAgICAgICAgICAgICAgICAgcmVjdm1zZ19kb2N9LAorICAgIHsicmVjdm1zZ19pbnRvIiwgICAgICAoUHlDRnVuY3Rpb24pc29ja19yZWN2bXNnX2ludG8sIE1FVEhfVkFSQVJHUywKKyAgICAgICAgICAgICAgICAgICAgICByZWN2bXNnX2ludG9fZG9jLH0sCisgICAgeyJzZW5kbXNnIiwgICAgICAgICAgIChQeUNGdW5jdGlvbilzb2NrX3NlbmRtc2csIE1FVEhfVkFSQVJHUywKKyAgICAgICAgICAgICAgICAgICAgICBzZW5kbXNnX2RvY30sCisjZW5kaWYKICAgICB7TlVMTCwgICAgICAgICAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCiB9OwogCkBAIC0zMDMzLDEzICszOTYyLDQwIEBACiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmIChmZG9iaiAhPSBOVUxMICYmIGZkb2JqICE9IFB5X05vbmUpIHsKLSAgICAgICAgZmQgPSBQeUxvbmdfQXNTb2NrZXRfdChmZG9iaik7Ci0gICAgICAgIGlmIChmZCA9PSAoU09DS0VUX1QpKC0xKSAmJiBQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBpZiAoZmQgPT0gSU5WQUxJRF9TT0NLRVQpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYW4ndCB1c2UgaW52YWxpZCBzb2NrZXQgdmFsdWUiKTsKLSAgICAgICAgICAgIHJldHVybiAtMTsKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgICAgIC8qIHJlY3JlYXRlIGEgc29ja2V0IHRoYXQgd2FzIGR1cGxpY2F0ZWQgKi8KKyAgICAgICAgaWYgKFB5Qnl0ZXNfQ2hlY2soZmRvYmopKSB7CisgICAgICAgICAgICBXU0FQUk9UT0NPTF9JTkZPIGluZm87CisgICAgICAgICAgICBpZiAoUHlCeXRlc19HRVRfU0laRShmZG9iaikgIT0gc2l6ZW9mKGluZm8pKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICJzb2NrZXQgZGVzY3JpcHRvciBzdHJpbmcgaGFzIHdyb25nIHNpemUsICIKKyAgICAgICAgICAgICAgICAgICAgInNob3VsZCBiZSAlenUgYnl0ZXMuIiwgc2l6ZW9mKGluZm8pKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtZW1jcHkoJmluZm8sIFB5Qnl0ZXNfQVNfU1RSSU5HKGZkb2JqKSwgc2l6ZW9mKGluZm8pKTsKKyAgICAgICAgICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKKyAgICAgICAgICAgIGZkID0gV1NBU29ja2V0KEZST01fUFJPVE9DT0xfSU5GTywgRlJPTV9QUk9UT0NPTF9JTkZPLAorICAgICAgICAgICAgICAgICAgICAgRlJPTV9QUk9UT0NPTF9JTkZPLCAmaW5mbywgMCwgV1NBX0ZMQUdfT1ZFUkxBUFBFRCk7CisgICAgICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworICAgICAgICAgICAgaWYgKGZkID09IElOVkFMSURfU09DS0VUKSB7CisgICAgICAgICAgICAgICAgc2V0X2Vycm9yKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZmFtaWx5ID0gaW5mby5pQWRkcmVzc0ZhbWlseTsKKyAgICAgICAgICAgIHR5cGUgPSBpbmZvLmlTb2NrZXRUeXBlOworICAgICAgICAgICAgcHJvdG8gPSBpbmZvLmlQcm90b2NvbDsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisjZW5kaWYKKyAgICAgICAgeworICAgICAgICAgICAgZmQgPSBQeUxvbmdfQXNTb2NrZXRfdChmZG9iaik7CisgICAgICAgICAgICBpZiAoZmQgPT0gKFNPQ0tFVF9UKSgtMSkgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoZmQgPT0gSU5WQUxJRF9TT0NLRVQpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhbid0IHVzZSBpbnZhbGlkIHNvY2tldCB2YWx1ZSIpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBlbHNlIHsKQEAgLTMxMTUsMjUgKzQwNzEsMzUgQEAKICAgICAgICB2ZXJzaW9uIG9mIHRoZSBob3N0bmFtZSwgd2hlcmVhcyB3ZSBuZWVkIGEgVW5pY29kZSBzdHJpbmcuCiAgICAgICAgT3RoZXJ3aXNlLCBnZXRob3N0bmFtZSBhcHBhcmVudGx5IGFsc28gcmV0dXJucyB0aGUgRE5TIG5hbWUuICovCiAgICAgd2NoYXJfdCBidWZbTUFYX0NPTVBVVEVSTkFNRV9MRU5HVEggKyAxXTsKLSAgICBEV09SRCBzaXplID0gc2l6ZW9mKGJ1ZikgLyBzaXplb2Yod2NoYXJfdCk7CisgICAgRFdPUkQgc2l6ZSA9IFB5X0FSUkFZX0xFTkdUSChidWYpOworICAgIHdjaGFyX3QgKm5hbWU7CiAgICAgUHlPYmplY3QgKnJlc3VsdDsKLSAgICBpZiAoIUdldENvbXB1dGVyTmFtZUV4VyhDb21wdXRlck5hbWVQaHlzaWNhbERuc0hvc3RuYW1lLCBidWYsICZzaXplKSkgewotICAgICAgICBpZiAoR2V0TGFzdEVycm9yKCkgPT0gRVJST1JfTU9SRV9EQVRBKSB7Ci0gICAgICAgICAgICAvKiBNU0ROIHNheXMgdGhpcyBtYXkgb2NjdXIgImJlY2F1c2UgRE5TIGFsbG93cyBsb25nZXIgbmFtZXMgKi8KLSAgICAgICAgICAgIGlmIChzaXplID09IDApIC8qIFhYWDogSSdtIG5vdCBzdXJlIGhvdyB0byBoYW5kbGUgdGhpcyAqLwotICAgICAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgMCk7Ci0gICAgICAgICAgICByZXN1bHQgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgc2l6ZSAtIDEpOwotICAgICAgICAgICAgaWYgKCFyZXN1bHQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICBpZiAoR2V0Q29tcHV0ZXJOYW1lRXhXKENvbXB1dGVyTmFtZVBoeXNpY2FsRG5zSG9zdG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHJlc3VsdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaXplKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEV4Y0Zyb21XaW5kb3dzRXJyKFB5RXhjX1dpbmRvd3NFcnJvciwgR2V0TGFzdEVycm9yKCkpOworCisgICAgaWYgKEdldENvbXB1dGVyTmFtZUV4VyhDb21wdXRlck5hbWVQaHlzaWNhbERuc0hvc3RuYW1lLCBidWYsICZzaXplKSkKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIoYnVmLCBzaXplKTsKKworICAgIGlmIChHZXRMYXN0RXJyb3IoKSAhPSBFUlJPUl9NT1JFX0RBVEEpCisgICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKKworICAgIGlmIChzaXplID09IDApCisgICAgICAgIHJldHVybiBQeVVuaWNvZGVfTmV3KDAsIDApOworCisgICAgLyogTVNETiBzYXlzIEVSUk9SX01PUkVfREFUQSBtYXkgb2NjdXIgYmVjYXVzZSBETlMgYWxsb3dzIGxvbmdlcgorICAgICAgIG5hbWVzICovCisgICAgbmFtZSA9IFB5TWVtX01hbGxvYyhzaXplICogc2l6ZW9mKHdjaGFyX3QpKTsKKyAgICBpZiAoIW5hbWUpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmICghR2V0Q29tcHV0ZXJOYW1lRXhXKENvbXB1dGVyTmFtZVBoeXNpY2FsRG5zSG9zdG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNpemUpKQorICAgIHsKKyAgICAgICAgUHlNZW1fRnJlZShuYW1lKTsKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKDApOwogICAgIH0KLSAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKGJ1Ziwgc2l6ZSk7ICAgICAgICAgICAgCisKKyAgICByZXN1bHQgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKG5hbWUsIHNpemUpOworICAgIFB5TWVtX0ZyZWUobmFtZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKICNlbHNlCiAgICAgY2hhciBidWZbMTAyNF07CiAgICAgaW50IHJlczsKQEAgLTMxNTIsNiArNDExOCwzNyBAQAogXG5cCiBSZXR1cm4gdGhlIGN1cnJlbnQgaG9zdCBuYW1lLiIpOwogCisjaWZkZWYgSEFWRV9TRVRIT1NUTkFNRQorUHlEb2NfU1RSVkFSKHNldGhvc3RuYW1lX2RvYywKKyJzZXRob3N0bmFtZShuYW1lKVxuXG5cCitTZXRzIHRoZSBob3N0bmFtZSB0byBuYW1lLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorc29ja2V0X3NldGhvc3RuYW1lKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeU9iamVjdCAqaG5vYmo7CisgICAgUHlfYnVmZmVyIGJ1ZjsKKyAgICBpbnQgcmVzLCBmbGFnID0gMDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiUzpzZXRob3N0bmFtZSIsICZobm9iaikpIHsKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJjpzZXRob3N0bmFtZSIsCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmaG5vYmopKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGZsYWcgPSAxOworICAgIH0KKyAgICByZXMgPSBQeU9iamVjdF9HZXRCdWZmZXIoaG5vYmosICZidWYsIFB5QlVGX1NJTVBMRSk7CisgICAgaWYgKCFyZXMpIHsKKyAgICAgICAgcmVzID0gc2V0aG9zdG5hbWUoYnVmLmJ1ZiwgYnVmLmxlbik7CisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJmJ1Zik7CisgICAgfQorICAgIGlmIChmbGFnKQorICAgICAgICBQeV9ERUNSRUYoaG5vYmopOworICAgIGlmIChyZXMpCisgICAgICAgIHJldHVybiBzZXRfZXJyb3IoKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKyNlbmRpZgogCiAvKiBQeXRob24gaW50ZXJmYWNlIHRvIGdldGhvc3RieW5hbWUobmFtZSkuICovCiAKQEAgLTMxOTgsOSArNDE5NSw4IEBACiAKICAgICBpZiAoaC0+aF9hZGRydHlwZSAhPSBhZikgewogICAgICAgICAvKiBMZXQncyBnZXQgcmVhbCBlcnJvciBtZXNzYWdlIHRvIHJldHVybiAqLwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIgKilzdHJlcnJvcihFQUZOT1NVUFBPUlQpKTsKLQorICAgICAgICBlcnJubyA9IEVBRk5PU1VQUE9SVDsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTMyODMsNyArNDI3OSw3IEBACiAjZW5kaWYKIAogICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgICAvKiBjYW4ndCBoYXBwZW4gKi8KLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhzb2NrZXRfZXJyb3IsCisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidW5zdXBwb3J0ZWQgYWRkcmVzcyBmYW1pbHkiKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CkBAIC0zMzE1LDExICs0MzExLDcgQEAKIHsKICAgICBjaGFyICpuYW1lOwogICAgIHN0cnVjdCBob3N0ZW50ICpoOwotI2lmZGVmIEVOQUJMRV9JUFY2Ci0gICAgc3RydWN0IHNvY2thZGRyX3N0b3JhZ2UgYWRkcjsKLSNlbHNlCi0gICAgc3RydWN0IHNvY2thZGRyX2luIGFkZHI7Ci0jZW5kaWYKKyAgICBzb2NrX2FkZHJfdCBhZGRyOwogICAgIHN0cnVjdCBzb2NrYWRkciAqc2E7CiAgICAgUHlPYmplY3QgKnJldCA9IE5VTEw7CiAjaWZkZWYgSEFWRV9HRVRIT1NUQllOQU1FX1IKQEAgLTMzMzEsMTkgKzQzMjMsMTkgQEAKICAgICBpbnQgYnVmX2xlbiA9IChzaXplb2YgYnVmKSAtIDE7CiAgICAgaW50IGVycm5vcDsKICNlbmRpZgotI2lmIGRlZmluZWQoSEFWRV9HRVRIT1NUQllOQU1FX1JfM19BUkcpIHx8IGRlZmluZWQoSEFWRV9HRVRIT1NUQllOQU1FX1JfNl9BUkcpCisjaWZkZWYgSEFWRV9HRVRIT1NUQllOQU1FX1JfM19BUkcKICAgICBpbnQgcmVzdWx0OwogI2VuZGlmCiAjZW5kaWYgLyogSEFWRV9HRVRIT1NUQllOQU1FX1IgKi8KIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiZXQ6Z2V0aG9zdGJ5bmFtZV9leCIsICJpZG5hIiwgJm5hbWUpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoc2V0aXBhZGRyKG5hbWUsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRkciwgc2l6ZW9mKGFkZHIpLCBBRl9JTkVUKSA8IDApCisgICAgaWYgKHNldGlwYWRkcihuYW1lLCBTQVMyU0EoJmFkZHIpLCBzaXplb2YoYWRkciksIEFGX0lORVQpIDwgMCkKICAgICAgICAgZ290byBmaW5hbGx5OwogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICNpZmRlZiBIQVZFX0dFVEhPU1RCWU5BTUVfUgogI2lmICAgZGVmaW5lZChIQVZFX0dFVEhPU1RCWU5BTUVfUl82X0FSRykKLSAgICByZXN1bHQgPSBnZXRob3N0YnluYW1lX3IobmFtZSwgJmhwX2FsbG9jYXRlZCwgYnVmLCBidWZfbGVuLAorICAgIGdldGhvc3RieW5hbWVfcihuYW1lLCAmaHBfYWxsb2NhdGVkLCBidWYsIGJ1Zl9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZoLCAmZXJybm9wKTsKICNlbGlmIGRlZmluZWQoSEFWRV9HRVRIT1NUQllOQU1FX1JfNV9BUkcpCiAgICAgaCA9IGdldGhvc3RieW5hbWVfcihuYW1lLCAmaHBfYWxsb2NhdGVkLCBidWYsIGJ1Zl9sZW4sICZlcnJub3ApOwpAQCAtMzM2Myw4ICs0MzU1LDggQEAKICAgICAgICBhZGRyLnNzX2ZhbWlseS4KICAgICAgICBUaGVyZWZvcmUsIHdlIGNhc3QgdGhlIHNvY2thZGRyX3N0b3JhZ2UgaW50byBzb2NrYWRkciB0bwogICAgICAgIGFjY2VzcyBzYV9mYW1pbHkuICovCi0gICAgc2EgPSAoc3RydWN0IHNvY2thZGRyKikmYWRkcjsKLSAgICByZXQgPSBnZXRob3N0X2NvbW1vbihoLCAoc3RydWN0IHNvY2thZGRyICopJmFkZHIsIHNpemVvZihhZGRyKSwKKyAgICBzYSA9IFNBUzJTQSgmYWRkcik7CisgICAgcmV0ID0gZ2V0aG9zdF9jb21tb24oaCwgU0FTMlNBKCZhZGRyKSwgc2l6ZW9mKGFkZHIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIHNhLT5zYV9mYW1pbHkpOwogI2lmZGVmIFVTRV9HRVRIT1NUQllOQU1FX0xPQ0sKICAgICBQeVRocmVhZF9yZWxlYXNlX2xvY2sobmV0ZGJfbG9jayk7CkBAIC0zMzg3LDEyICs0Mzc5LDggQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBzb2NrZXRfZ2V0aG9zdGJ5YWRkcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0jaWZkZWYgRU5BQkxFX0lQVjYKLSAgICBzdHJ1Y3Qgc29ja2FkZHJfc3RvcmFnZSBhZGRyOwotI2Vsc2UKLSAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcjsKLSNlbmRpZgotICAgIHN0cnVjdCBzb2NrYWRkciAqc2EgPSAoc3RydWN0IHNvY2thZGRyICopJmFkZHI7CisgICAgc29ja19hZGRyX3QgYWRkcjsKKyAgICBzdHJ1Y3Qgc29ja2FkZHIgKnNhID0gU0FTMlNBKCZhZGRyKTsKICAgICBjaGFyICppcF9udW07CiAgICAgc3RydWN0IGhvc3RlbnQgKmg7CiAgICAgUHlPYmplY3QgKnJldCA9IE5VTEw7CkBAIC0zNDA5LDcgKzQzOTcsNyBAQAogICAgIGludCBidWZfbGVuID0gKHNpemVvZiBidWYpIC0gMTsKICAgICBpbnQgZXJybm9wOwogI2VuZGlmCi0jaWYgZGVmaW5lZChIQVZFX0dFVEhPU1RCWU5BTUVfUl8zX0FSRykgfHwgZGVmaW5lZChIQVZFX0dFVEhPU1RCWU5BTUVfUl82X0FSRykKKyNpZmRlZiBIQVZFX0dFVEhPU1RCWU5BTUVfUl8zX0FSRwogICAgIGludCByZXN1bHQ7CiAjZW5kaWYKICNlbmRpZiAvKiBIQVZFX0dFVEhPU1RCWU5BTUVfUiAqLwpAQCAtMzQyNCw3ICs0NDEyLDcgQEAKICAgICAgICAgZ290byBmaW5hbGx5OwogICAgIGFmID0gc2EtPnNhX2ZhbWlseTsKICAgICBhcCA9IE5VTEw7Ci0gICAgYWwgPSAwOworICAgIC8qIGFsID0gMDsgKi8KICAgICBzd2l0Y2ggKGFmKSB7CiAgICAgY2FzZSBBRl9JTkVUOgogICAgICAgICBhcCA9IChjaGFyICopJigoc3RydWN0IHNvY2thZGRyX2luICopc2EpLT5zaW5fYWRkcjsKQEAgLTM0MzcsMTMgKzQ0MjUsMTMgQEAKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBkZWZhdWx0OgotICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAidW5zdXBwb3J0ZWQgYWRkcmVzcyBmYW1pbHkiKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJ1bnN1cHBvcnRlZCBhZGRyZXNzIGZhbWlseSIpOwogICAgICAgICBnb3RvIGZpbmFsbHk7CiAgICAgfQogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKICNpZmRlZiBIQVZFX0dFVEhPU1RCWU5BTUVfUgogI2lmICAgZGVmaW5lZChIQVZFX0dFVEhPU1RCWU5BTUVfUl82X0FSRykKLSAgICByZXN1bHQgPSBnZXRob3N0YnlhZGRyX3IoYXAsIGFsLCBhZiwKKyAgICBnZXRob3N0YnlhZGRyX3IoYXAsIGFsLCBhZiwKICAgICAgICAgJmhwX2FsbG9jYXRlZCwgYnVmLCBidWZfbGVuLAogICAgICAgICAmaCwgJmVycm5vcCk7CiAjZWxpZiBkZWZpbmVkKEhBVkVfR0VUSE9TVEJZTkFNRV9SXzVfQVJHKQpAQCAtMzQ2MSw3ICs0NDQ5LDcgQEAKICAgICBoID0gZ2V0aG9zdGJ5YWRkcihhcCwgYWwsIGFmKTsKICNlbmRpZiAvKiBIQVZFX0dFVEhPU1RCWU5BTUVfUiAqLwogICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgcmV0ID0gZ2V0aG9zdF9jb21tb24oaCwgKHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyLCBzaXplb2YoYWRkciksIGFmKTsKKyAgICByZXQgPSBnZXRob3N0X2NvbW1vbihoLCBTQVMyU0EoJmFkZHIpLCBzaXplb2YoYWRkciksIGFmKTsKICNpZmRlZiBVU0VfR0VUSE9TVEJZTkFNRV9MT0NLCiAgICAgUHlUaHJlYWRfcmVsZWFzZV9sb2NrKG5ldGRiX2xvY2spOwogI2VuZGlmCkBAIC0zNDkzLDcgKzQ0ODEsNyBAQAogICAgIHNwID0gZ2V0c2VydmJ5bmFtZShuYW1lLCBwcm90byk7CiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICAgICBpZiAoc3AgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAic2VydmljZS9wcm90byBub3QgZm91bmQiKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJzZXJ2aWNlL3Byb3RvIG5vdCBmb3VuZCIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZygobG9uZykgbnRvaHMoc3AtPnNfcG9ydCkpOwpAQCAtMzUzMCw3ICs0NTE4LDcgQEAKICAgICBzcCA9IGdldHNlcnZieXBvcnQoaHRvbnMoKHNob3J0KXBvcnQpLCBwcm90byk7CiAgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKICAgICBpZiAoc3AgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAicG9ydC9wcm90byBub3QgZm91bmQiKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJwb3J0L3Byb3RvIG5vdCBmb3VuZCIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKHNwLT5zX25hbWUpOwpAQCAtMzU1OSw3ICs0NTQ3LDcgQEAKICAgICBzcCA9IGdldHByb3RvYnluYW1lKG5hbWUpOwogICAgIFB5X0VORF9BTExPV19USFJFQURTCiAgICAgaWYgKHNwID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKHNvY2tldF9lcnJvciwgInByb3RvY29sIG5vdCBmb3VuZCIpOworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgInByb3RvY29sIG5vdCBmb3VuZCIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZygobG9uZykgc3AtPnBfcHJvdG8pOwpAQCAtMzgxNCw3ICs0ODAyLDcgQEAKICAgICAgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoKGNoYXIgKikoJmJ1ZiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoYnVmKSk7CiAKLSAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLAorICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICAgICAiaWxsZWdhbCBJUCBhZGRyZXNzIHN0cmluZyBwYXNzZWQgdG8gaW5ldF9hdG9uIik7CiAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTM4MzUsNyArNDgyMyw3IEBACiAgICAgICAgIHBhY2tlZF9hZGRyID0gaW5ldF9hZGRyKGlwX2FkZHIpOwogCiAgICAgICAgIGlmIChwYWNrZWRfYWRkciA9PSBJTkFERFJfTk9ORSkgeyAgICAgICAgICAgICAgIC8qIGludmFsaWQgYWRkcmVzcyAqLwotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKHNvY2tldF9lcnJvciwKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgICAgICJpbGxlZ2FsIElQIGFkZHJlc3Mgc3RyaW5nIHBhc3NlZCB0byBpbmV0X2F0b24iKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CkBAIC0zODY3LDcgKzQ4NTUsNyBAQAogICAgIH0KIAogICAgIGlmIChhZGRyX2xlbiAhPSBzaXplb2YocGFja2VkX2FkZHIpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhzb2NrZXRfZXJyb3IsCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgInBhY2tlZCBJUCB3cm9uZyBsZW5ndGggZm9yIGluZXRfbnRvYSIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC0zOTAyLDcgKzQ4OTAsNyBAQAogCiAjaWYgIWRlZmluZWQoRU5BQkxFX0lQVjYpICYmIGRlZmluZWQoQUZfSU5FVDYpCiAgICAgaWYoYWYgPT0gQUZfSU5FVDYpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKHNvY2tldF9lcnJvciwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiY2FuJ3QgdXNlIEFGX0lORVQ2LCBJUHY2IGlzIGRpc2FibGVkIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTM5MTAsMTAgKzQ4OTgsMTAgQEAKIAogICAgIHJldHZhbCA9IGluZXRfcHRvbihhZiwgaXAsIHBhY2tlZCk7CiAgICAgaWYgKHJldHZhbCA8IDApIHsKLSAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKHNvY2tldF9lcnJvcik7CisgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfSBlbHNlIGlmIChyZXR2YWwgPT0gMCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLAorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICJpbGxlZ2FsIElQIGFkZHJlc3Mgc3RyaW5nIHBhc3NlZCB0byBpbmV0X3B0b24iKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfSBlbHNlIGlmIChhZiA9PSBBRl9JTkVUKSB7CkBAIC0zOTI1LDcgKzQ5MTMsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikpOwogI2VuZGlmCiAgICAgfSBlbHNlIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKHNvY2tldF9lcnJvciwgInVua25vd24gYWRkcmVzcyBmYW1pbHkiKTsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX09TRXJyb3IsICJ1bmtub3duIGFkZHJlc3MgZmFtaWx5Iik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIH0KQEAgLTM5NzcsNyArNDk2NSw3IEBACiAKICAgICByZXR2YWwgPSBpbmV0X250b3AoYWYsIHBhY2tlZCwgaXAsIHNpemVvZihpcCkpOwogICAgIGlmICghcmV0dmFsKSB7Ci0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhzb2NrZXRfZXJyb3IpOworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhyZXR2YWwpOwpAQCAtMzk5Niw3ICs0OTg0LDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBzb2NrZXRfZ2V0YWRkcmluZm8oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCoga3dhcmdzKQogewotICAgIHN0YXRpYyBjaGFyKiBrd25hbWVzW10gPSB7Imhvc3QiLCAicG9ydCIsICJmYW1pbHkiLCAidHlwZSIsICJwcm90byIsIAorICAgIHN0YXRpYyBjaGFyKiBrd25hbWVzW10gPSB7Imhvc3QiLCAicG9ydCIsICJmYW1pbHkiLCAidHlwZSIsICJwcm90byIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmxhZ3MiLCAwfTsKICAgICBzdHJ1Y3QgYWRkcmluZm8gaGludHMsICpyZXM7CiAgICAgc3RydWN0IGFkZHJpbmZvICpyZXMwID0gTlVMTDsKQEAgLTQwMTEsNyArNDk5OSw3IEBACiAKICAgICBmYW1pbHkgPSBzb2NrdHlwZSA9IHByb3RvY29sID0gZmxhZ3MgPSAwOwogICAgIGZhbWlseSA9IEFGX1VOU1BFQzsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2FyZ3MsICJPT3xpaWlpOmdldGFkZHJpbmZvIiwgCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAiT098aWlpaTpnZXRhZGRyaW5mbyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3bmFtZXMsICZob2JqLCAmcG9iaiwgJmZhbWlseSwgJnNvY2t0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJvdG9jb2wsICZmbGFncykpIHsKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC00MDE5LDcgKzUwMDcsOSBAQAogICAgIGlmIChob2JqID09IFB5X05vbmUpIHsKICAgICAgICAgaHB0ciA9IE5VTEw7CiAgICAgfSBlbHNlIGlmIChQeVVuaWNvZGVfQ2hlY2soaG9iaikpIHsKLSAgICAgICAgaWRuYSA9IFB5T2JqZWN0X0NhbGxNZXRob2QoaG9iaiwgImVuY29kZSIsICJzIiwgImlkbmEiKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoZW5jb2RlKTsKKworICAgICAgICBpZG5hID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChob2JqLCAmUHlJZF9lbmNvZGUsICJzIiwgImlkbmEiKTsKICAgICAgICAgaWYgKCFpZG5hKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGFzc2VydChQeUJ5dGVzX0NoZWNrKGlkbmEpKTsKQEAgLTQwNDYsNyArNTAzNiw3IEBACiAgICAgfSBlbHNlIGlmIChwb2JqID09IFB5X05vbmUpIHsKICAgICAgICAgcHB0ciA9IChjaGFyICopTlVMTDsKICAgICB9IGVsc2UgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoc29ja2V0X2Vycm9yLCAiSW50IG9yIFN0cmluZyBleHBlY3RlZCIpOworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgIkludCBvciBTdHJpbmcgZXhwZWN0ZWQiKTsKICAgICAgICAgZ290byBlcnI7CiAgICAgfQogICAgIG1lbXNldCgmaGludHMsIDAsIHNpemVvZihoaW50cykpOwpAQCAtNDE0OSw3ICs1MTM5LDcgQEAKICAgICAgICAgZ290byBmYWlsOwogICAgIH0KICAgICBpZiAocmVzLT5haV9uZXh0KSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhzb2NrZXRfZXJyb3IsCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PU0Vycm9yLAogICAgICAgICAgICAgInNvY2thZGRyIHJlc29sdmVkIHRvIG11bHRpcGxlIGFkZHJlc3NlcyIpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtNDE1Nyw3ICs1MTQ3LDcgQEAKICAgICBjYXNlIEFGX0lORVQ6CiAgICAgICAgIHsKICAgICAgICAgaWYgKFB5VHVwbGVfR0VUX1NJWkUoc2EpICE9IDIpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhzb2NrZXRfZXJyb3IsCisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwKICAgICAgICAgICAgICAgICAiSVB2NCBzb2NrYWRkciBtdXN0IGJlIDIgdHVwbGUiKTsKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgfQpAQCAtNDI0NCw2ICs1MjM0LDE2MyBAQAogQSB2YWx1ZSBvZiBOb25lIGluZGljYXRlcyB0aGF0IG5ldyBzb2NrZXQgb2JqZWN0cyBoYXZlIG5vIHRpbWVvdXQuXG5cCiBXaGVuIHRoZSBzb2NrZXQgbW9kdWxlIGlzIGZpcnN0IGltcG9ydGVkLCB0aGUgZGVmYXVsdCBpcyBOb25lLiIpOwogCisjaWZkZWYgSEFWRV9JRl9OQU1FSU5ERVgKKy8qIFB5dGhvbiBBUEkgZm9yIGdldHRpbmcgaW50ZXJmYWNlIGluZGljZXMgYW5kIG5hbWVzICovCisKK3N0YXRpYyBQeU9iamVjdCAqCitzb2NrZXRfaWZfbmFtZWluZGV4KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJnKQoreworICAgIFB5T2JqZWN0ICpsaXN0OworICAgIGludCBpOworICAgIHN0cnVjdCBpZl9uYW1laW5kZXggKm5pOworCisgICAgbmkgPSBpZl9uYW1laW5kZXgoKTsKKyAgICBpZiAobmkgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGxpc3QgPSBQeUxpc3RfTmV3KDApOworICAgIGlmIChsaXN0ID09IE5VTEwpIHsKKyAgICAgICAgaWZfZnJlZW5hbWVpbmRleChuaSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IG5pW2ldLmlmX2luZGV4ICE9IDAgJiYgaSA8IElOVF9NQVg7IGkrKykgeworICAgICAgICBQeU9iamVjdCAqbmlfdHVwbGUgPSBQeV9CdWlsZFZhbHVlKCJJTyYiLAorICAgICAgICAgICAgICAgIG5pW2ldLmlmX2luZGV4LCBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0LCBuaVtpXS5pZl9uYW1lKTsKKworICAgICAgICBpZiAobmlfdHVwbGUgPT0gTlVMTCB8fCBQeUxpc3RfQXBwZW5kKGxpc3QsIG5pX3R1cGxlKSA9PSAtMSkgeworICAgICAgICAgICAgUHlfWERFQ1JFRihuaV90dXBsZSk7CisgICAgICAgICAgICBQeV9ERUNSRUYobGlzdCk7CisgICAgICAgICAgICBpZl9mcmVlbmFtZWluZGV4KG5pKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIFB5X0RFQ1JFRihuaV90dXBsZSk7CisgICAgfQorCisgICAgaWZfZnJlZW5hbWVpbmRleChuaSk7CisgICAgcmV0dXJuIGxpc3Q7Cit9CisKK1B5RG9jX1NUUlZBUihpZl9uYW1laW5kZXhfZG9jLAorImlmX25hbWVpbmRleCgpXG5cCitcblwKK1JldHVybnMgYSBsaXN0IG9mIG5ldHdvcmsgaW50ZXJmYWNlIGluZm9ybWF0aW9uIChpbmRleCwgbmFtZSkgdHVwbGVzLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorc29ja2V0X2lmX25hbWV0b2luZGV4KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeU9iamVjdCAqb25hbWU7CisgICAgdW5zaWduZWQgbG9uZyBpbmRleDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyY6aWZfbmFtZXRvaW5kZXgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsICZvbmFtZSkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaW5kZXggPSBpZl9uYW1ldG9pbmRleChQeUJ5dGVzX0FTX1NUUklORyhvbmFtZSkpOworICAgIFB5X0RFQ1JFRihvbmFtZSk7CisgICAgaWYgKGluZGV4ID09IDApIHsKKyAgICAgICAgLyogaWZfbmFtZXRvaW5kZXgoKSBkb2Vzbid0IHNldCBlcnJubyAqLworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT1NFcnJvciwgIm5vIGludGVyZmFjZSB3aXRoIHRoaXMgbmFtZSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICByZXR1cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcoaW5kZXgpOworfQorCitQeURvY19TVFJWQVIoaWZfbmFtZXRvaW5kZXhfZG9jLAorImlmX25hbWV0b2luZGV4KGlmX25hbWUpXG5cCitcblwKK1JldHVybnMgdGhlIGludGVyZmFjZSBpbmRleCBjb3JyZXNwb25kaW5nIHRvIHRoZSBpbnRlcmZhY2UgbmFtZSBpZl9uYW1lLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorc29ja2V0X2lmX2luZGV4dG9uYW1lKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJnKQoreworICAgIHVuc2lnbmVkIGxvbmcgaW5kZXg7CisgICAgY2hhciBuYW1lW0lGX05BTUVTSVpFICsgMV07CisKKyAgICBpbmRleCA9IFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZyhhcmcpOworICAgIGlmIChpbmRleCA9PSAodW5zaWduZWQgbG9uZykgLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKGlmX2luZGV4dG9uYW1lKGluZGV4LCBuYW1lKSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQobmFtZSk7Cit9CisKK1B5RG9jX1NUUlZBUihpZl9pbmRleHRvbmFtZV9kb2MsCisiaWZfaW5kZXh0b25hbWUoaWZfaW5kZXgpXG5cCitcblwKK1JldHVybnMgdGhlIGludGVyZmFjZSBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGludGVyZmFjZSBpbmRleCBpZl9pbmRleC4iKTsKKworI2VuZGlmICAvKiBIQVZFX0lGX05BTUVJTkRFWCAqLworCisKKyNpZmRlZiBDTVNHX0xFTgorLyogUHl0aG9uIGludGVyZmFjZSB0byBDTVNHX0xFTihsZW5ndGgpLiAqLworCitzdGF0aWMgUHlPYmplY3QgKgorc29ja2V0X0NNU0dfTEVOKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBQeV9zc2l6ZV90IGxlbmd0aDsKKyAgICBzaXplX3QgcmVzdWx0OworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJuOkNNU0dfTEVOIiwgJmxlbmd0aCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChsZW5ndGggPCAwIHx8ICFnZXRfQ01TR19MRU4obGVuZ3RoLCAmcmVzdWx0KSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfT3ZlcmZsb3dFcnJvciwgIkNNU0dfTEVOKCkgYXJndW1lbnQgb3V0IG9mIHJhbmdlIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICByZXR1cm4gUHlMb25nX0Zyb21TaXplX3QocmVzdWx0KTsKK30KKworUHlEb2NfU1RSVkFSKENNU0dfTEVOX2RvYywKKyJDTVNHX0xFTihsZW5ndGgpIC0+IGNvbnRyb2wgbWVzc2FnZSBsZW5ndGhcblwKK1xuXAorUmV0dXJuIHRoZSB0b3RhbCBsZW5ndGgsIHdpdGhvdXQgdHJhaWxpbmcgcGFkZGluZywgb2YgYW4gYW5jaWxsYXJ5XG5cCitkYXRhIGl0ZW0gd2l0aCBhc3NvY2lhdGVkIGRhdGEgb2YgdGhlIGdpdmVuIGxlbmd0aC4gIFRoaXMgdmFsdWUgY2FuXG5cCitvZnRlbiBiZSB1c2VkIGFzIHRoZSBidWZmZXIgc2l6ZSBmb3IgcmVjdm1zZygpIHRvIHJlY2VpdmUgYSBzaW5nbGVcblwKK2l0ZW0gb2YgYW5jaWxsYXJ5IGRhdGEsIGJ1dCBSRkMgMzU0MiByZXF1aXJlcyBwb3J0YWJsZSBhcHBsaWNhdGlvbnMgdG9cblwKK3VzZSBDTVNHX1NQQUNFKCkgYW5kIHRodXMgaW5jbHVkZSBzcGFjZSBmb3IgcGFkZGluZywgZXZlbiB3aGVuIHRoZVxuXAoraXRlbSB3aWxsIGJlIHRoZSBsYXN0IGluIHRoZSBidWZmZXIuICBSYWlzZXMgT3ZlcmZsb3dFcnJvciBpZiBsZW5ndGhcblwKK2lzIG91dHNpZGUgdGhlIHBlcm1pc3NpYmxlIHJhbmdlIG9mIHZhbHVlcy4iKTsKKworCisjaWZkZWYgQ01TR19TUEFDRQorLyogUHl0aG9uIGludGVyZmFjZSB0byBDTVNHX1NQQUNFKGxlbmd0aCkuICovCisKK3N0YXRpYyBQeU9iamVjdCAqCitzb2NrZXRfQ01TR19TUEFDRShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlfc3NpemVfdCBsZW5ndGg7CisgICAgc2l6ZV90IHJlc3VsdDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAibjpDTVNHX1NQQUNFIiwgJmxlbmd0aCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChsZW5ndGggPCAwIHx8ICFnZXRfQ01TR19TUEFDRShsZW5ndGgsICZyZXN1bHQpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIkNNU0dfU1BBQ0UoKSBhcmd1bWVudCBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeUxvbmdfRnJvbVNpemVfdChyZXN1bHQpOworfQorCitQeURvY19TVFJWQVIoQ01TR19TUEFDRV9kb2MsCisiQ01TR19TUEFDRShsZW5ndGgpIC0+IGJ1ZmZlciBzaXplXG5cCitcblwKK1JldHVybiB0aGUgYnVmZmVyIHNpemUgbmVlZGVkIGZvciByZWN2bXNnKCkgdG8gcmVjZWl2ZSBhbiBhbmNpbGxhcnlcblwKK2RhdGEgaXRlbSB3aXRoIGFzc29jaWF0ZWQgZGF0YSBvZiB0aGUgZ2l2ZW4gbGVuZ3RoLCBhbG9uZyB3aXRoIGFueVxuXAordHJhaWxpbmcgcGFkZGluZy4gIFRoZSBidWZmZXIgc3BhY2UgbmVlZGVkIHRvIHJlY2VpdmUgbXVsdGlwbGUgaXRlbXNcblwKK2lzIHRoZSBzdW0gb2YgdGhlIENNU0dfU1BBQ0UoKSB2YWx1ZXMgZm9yIHRoZWlyIGFzc29jaWF0ZWQgZGF0YVxuXAorbGVuZ3Rocy4gIFJhaXNlcyBPdmVyZmxvd0Vycm9yIGlmIGxlbmd0aCBpcyBvdXRzaWRlIHRoZSBwZXJtaXNzaWJsZVxuXAorcmFuZ2Ugb2YgdmFsdWVzLiIpOworI2VuZGlmICAgIC8qIENNU0dfU1BBQ0UgKi8KKyNlbmRpZiAgICAvKiBDTVNHX0xFTiAqLworCiAKIC8qIExpc3Qgb2YgZnVuY3Rpb25zIGV4cG9ydGVkIGJ5IHRoaXMgbW9kdWxlLiAqLwogCkBAIC00MjU2LDYgKzU0MDMsMTAgQEAKICAgICAgTUVUSF9WQVJBUkdTLCBnZXRob3N0YnlhZGRyX2RvY30sCiAgICAgeyJnZXRob3N0bmFtZSIsICAgICAgICAgICAgIHNvY2tldF9nZXRob3N0bmFtZSwKICAgICAgTUVUSF9OT0FSR1MsICBnZXRob3N0bmFtZV9kb2N9LAorI2lmZGVmIEhBVkVfU0VUSE9TVE5BTUUKKyAgICB7InNldGhvc3RuYW1lIiwgICAgICAgICAgICAgc29ja2V0X3NldGhvc3RuYW1lLAorICAgICBNRVRIX1ZBUkFSR1MsICBzZXRob3N0bmFtZV9kb2N9LAorI2VuZGlmCiAgICAgeyJnZXRzZXJ2YnluYW1lIiwgICAgICAgICAgIHNvY2tldF9nZXRzZXJ2YnluYW1lLAogICAgICBNRVRIX1ZBUkFSR1MsIGdldHNlcnZieW5hbWVfZG9jfSwKICAgICB7ImdldHNlcnZieXBvcnQiLCAgICAgICAgICAgc29ja2V0X2dldHNlcnZieXBvcnQsCkBAIC00Mjk2LDYgKzU0NDcsMjIgQEAKICAgICAgTUVUSF9OT0FSR1MsIGdldGRlZmF1bHR0aW1lb3V0X2RvY30sCiAgICAgeyJzZXRkZWZhdWx0dGltZW91dCIsICAgICAgIHNvY2tldF9zZXRkZWZhdWx0dGltZW91dCwKICAgICAgTUVUSF9PLCBzZXRkZWZhdWx0dGltZW91dF9kb2N9LAorI2lmZGVmIEhBVkVfSUZfTkFNRUlOREVYCisgICAgeyJpZl9uYW1laW5kZXgiLCBzb2NrZXRfaWZfbmFtZWluZGV4LAorICAgICBNRVRIX05PQVJHUywgaWZfbmFtZWluZGV4X2RvY30sCisgICAgeyJpZl9uYW1ldG9pbmRleCIsIHNvY2tldF9pZl9uYW1ldG9pbmRleCwKKyAgICAgTUVUSF9WQVJBUkdTLCBpZl9uYW1ldG9pbmRleF9kb2N9LAorICAgIHsiaWZfaW5kZXh0b25hbWUiLCBzb2NrZXRfaWZfaW5kZXh0b25hbWUsCisgICAgIE1FVEhfTywgaWZfaW5kZXh0b25hbWVfZG9jfSwKKyNlbmRpZgorI2lmZGVmIENNU0dfTEVOCisgICAgeyJDTVNHX0xFTiIsICAgICAgICAgICAgICAgIHNvY2tldF9DTVNHX0xFTiwKKyAgICAgTUVUSF9WQVJBUkdTLCBDTVNHX0xFTl9kb2N9LAorI2lmZGVmIENNU0dfU1BBQ0UKKyAgICB7IkNNU0dfU1BBQ0UiLCAgICAgICAgICAgICAgc29ja2V0X0NNU0dfU1BBQ0UsCisgICAgIE1FVEhfVkFSQVJHUywgQ01TR19TUEFDRV9kb2N9LAorI2VuZGlmCisjZW5kaWYKICAgICB7TlVMTCwgICAgICAgICAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgICAvKiBTZW50aW5lbCAqLwogfTsKIApAQCAtNDQyOCwyNyArNTU5NSwyNCBAQAogICAgIGlmIChtID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgc29ja2V0X2Vycm9yID0gUHlFcnJfTmV3RXhjZXB0aW9uKCJzb2NrZXQuZXJyb3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUV4Y19JT0Vycm9yLCBOVUxMKTsKLSAgICBpZiAoc29ja2V0X2Vycm9yID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIFB5U29ja2V0TW9kdWxlQVBJLmVycm9yID0gc29ja2V0X2Vycm9yOwotICAgIFB5X0lOQ1JFRihzb2NrZXRfZXJyb3IpOwotICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiZXJyb3IiLCBzb2NrZXRfZXJyb3IpOworICAgIFB5X0lOQ1JFRihQeUV4Y19PU0Vycm9yKTsKKyAgICBQeVNvY2tldE1vZHVsZUFQSS5lcnJvciA9IFB5RXhjX09TRXJyb3I7CisgICAgUHlfSU5DUkVGKFB5RXhjX09TRXJyb3IpOworICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiZXJyb3IiLCBQeUV4Y19PU0Vycm9yKTsKICAgICBzb2NrZXRfaGVycm9yID0gUHlFcnJfTmV3RXhjZXB0aW9uKCJzb2NrZXQuaGVycm9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2tldF9lcnJvciwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUV4Y19PU0Vycm9yLCBOVUxMKTsKICAgICBpZiAoc29ja2V0X2hlcnJvciA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBQeV9JTkNSRUYoc29ja2V0X2hlcnJvcik7CiAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJoZXJyb3IiLCBzb2NrZXRfaGVycm9yKTsKLSAgICBzb2NrZXRfZ2FpZXJyb3IgPSBQeUVycl9OZXdFeGNlcHRpb24oInNvY2tldC5nYWllcnJvciIsIHNvY2tldF9lcnJvciwKKyAgICBzb2NrZXRfZ2FpZXJyb3IgPSBQeUVycl9OZXdFeGNlcHRpb24oInNvY2tldC5nYWllcnJvciIsIFB5RXhjX09TRXJyb3IsCiAgICAgICAgIE5VTEwpOwogICAgIGlmIChzb2NrZXRfZ2FpZXJyb3IgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgUHlfSU5DUkVGKHNvY2tldF9nYWllcnJvcik7CiAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJnYWllcnJvciIsIHNvY2tldF9nYWllcnJvcik7CiAgICAgc29ja2V0X3RpbWVvdXQgPSBQeUVycl9OZXdFeGNlcHRpb24oInNvY2tldC50aW1lb3V0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2NrZXRfZXJyb3IsIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXhjX09TRXJyb3IsIE5VTEwpOwogICAgIGlmIChzb2NrZXRfdGltZW91dCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBQeVNvY2tldE1vZHVsZUFQSS50aW1lb3V0X2Vycm9yID0gc29ja2V0X3RpbWVvdXQ7CkBAIC00NjM0LDYgKzU3OTgsMzEgQEAKICAgICBQeU1vZHVsZV9BZGRTdHJpbmdDb25zdGFudChtLCAiQkRBRERSX0xPQ0FMIiwgIjAwOjAwOjAwOkZGOkZGOkZGIik7CiAjZW5kaWYKIAorI2lmZGVmIEFGX0NBTgorICAgIC8qIENvbnRyb2xsZXIgQXJlYSBOZXR3b3JrICovCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX0NBTiIsIEFGX0NBTik7CisjZW5kaWYKKyNpZmRlZiBQRl9DQU4KKyAgICAvKiBDb250cm9sbGVyIEFyZWEgTmV0d29yayAqLworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQRl9DQU4iLCBQRl9DQU4pOworI2VuZGlmCisKKy8qIFJlbGlhYmxlIERhdGFncmFtIFNvY2tldHMgKi8KKyNpZmRlZiBBRl9SRFMKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQUZfUkRTIiwgQUZfUkRTKTsKKyNlbmRpZgorI2lmZGVmIFBGX1JEUworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQRl9SRFMiLCBQRl9SRFMpOworI2VuZGlmCisKKy8qIEtlcm5lbCBldmVudCBtZXNzYWdlcyAqLworI2lmZGVmIFBGX1NZU1RFTQorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQRl9TWVNURU0iLCBQRl9TWVNURU0pOworI2VuZGlmCisjaWZkZWYgQUZfU1lTVEVNCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkFGX1NZU1RFTSIsIEFGX1NZU1RFTSk7CisjZW5kaWYKKwogI2lmZGVmIEFGX1BBQ0tFVAogICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIEFGX1BBQ0tFVCk7CiAjZW5kaWYKQEAgLTQ3ODMsNiArNTk3MiwxOCBAQAogI2lmZGVmICBTT19TRVRGSUIKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09fU0VURklCIiwgU09fU0VURklCKTsKICNlbmRpZgorI2lmZGVmICBTT19QQVNTQ1JFRAorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT19QQVNTQ1JFRCIsIFNPX1BBU1NDUkVEKTsKKyNlbmRpZgorI2lmZGVmICBTT19QRUVSQ1JFRAorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT19QRUVSQ1JFRCIsIFNPX1BFRVJDUkVEKTsKKyNlbmRpZgorI2lmZGVmICBMT0NBTF9QRUVSQ1JFRAorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0NBTF9QRUVSQ1JFRCIsIExPQ0FMX1BFRVJDUkVEKTsKKyNlbmRpZgorI2lmZGVmICBTT19CSU5EVE9ERVZJQ0UKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBTT19CSU5EVE9ERVZJQ0UpOworI2VuZGlmCiAKICAgICAvKiBNYXhpbXVtIG51bWJlciBvZiBjb25uZWN0aW9ucyBmb3IgImxpc3RlbiIgKi8KICNpZmRlZiAgU09NQVhDT05OCkBAIC00NzkxLDYgKzU5OTIsMTcgQEAKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09NQVhDT05OIiwgNSk7IC8qIENvbW1vbiB2YWx1ZSAqLwogI2VuZGlmCiAKKyAgICAvKiBBbmNpbGxpYXJ5IG1lc3NhZ2UgdHlwZXMgKi8KKyNpZmRlZiAgU0NNX1JJR0hUUworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTQ01fUklHSFRTIiwgU0NNX1JJR0hUUyk7CisjZW5kaWYKKyNpZmRlZiAgU0NNX0NSRURFTlRJQUxTCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNDTV9DUkVERU5USUFMUyIsIFNDTV9DUkVERU5USUFMUyk7CisjZW5kaWYKKyNpZmRlZiAgU0NNX0NSRURTCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNDTV9DUkVEUyIsIFNDTV9DUkVEUyk7CisjZW5kaWYKKwogICAgIC8qIEZsYWdzIGZvciBzZW5kLCByZWN2ICovCiAjaWZkZWYgIE1TR19PT0IKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNHX09PQiIsIE1TR19PT0IpOwpAQCAtNDgyMiw2ICs2MDM0LDMzIEBACiAjaWZkZWYgIE1TR19FVEFHCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TR19FVEFHIiwgTVNHX0VUQUcpOwogI2VuZGlmCisjaWZkZWYgIE1TR19OT1NJR05BTAorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfTk9TSUdOQUwiLCBNU0dfTk9TSUdOQUwpOworI2VuZGlmCisjaWZkZWYgIE1TR19OT1RJRklDQVRJT04KKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNHX05PVElGSUNBVElPTiIsIE1TR19OT1RJRklDQVRJT04pOworI2VuZGlmCisjaWZkZWYgIE1TR19DTVNHX0NMT0VYRUMKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNHX0NNU0dfQ0xPRVhFQyIsIE1TR19DTVNHX0NMT0VYRUMpOworI2VuZGlmCisjaWZkZWYgIE1TR19FUlJRVUVVRQorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfRVJSUVVFVUUiLCBNU0dfRVJSUVVFVUUpOworI2VuZGlmCisjaWZkZWYgIE1TR19DT05GSVJNCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TR19DT05GSVJNIiwgTVNHX0NPTkZJUk0pOworI2VuZGlmCisjaWZkZWYgIE1TR19NT1JFCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIk1TR19NT1JFIiwgTVNHX01PUkUpOworI2VuZGlmCisjaWZkZWYgIE1TR19FT0YKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTVNHX0VPRiIsIE1TR19FT0YpOworI2VuZGlmCisjaWZkZWYgIE1TR19CQ0FTVAorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfQkNBU1QiLCBNU0dfQkNBU1QpOworI2VuZGlmCisjaWZkZWYgIE1TR19NQ0FTVAorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJNU0dfTUNBU1QiLCBNU0dfTUNBU1QpOworI2VuZGlmCiAKICAgICAvKiBQcm90b2NvbCBsZXZlbCBhbmQgbnVtYmVycywgdXNhYmxlIGZvciBbZ3NdZXRzb2Nrb3B0ICovCiAjaWZkZWYgIFNPTF9TT0NLRVQKQEAgLTQ4NTcsNiArNjA5Niw0OSBAQAogI2Vsc2UKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX1VEUCIsIDE3KTsKICNlbmRpZgorI2lmZGVmIFNPTF9DQU5fQkFTRQorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJTT0xfQ0FOX0JBU0UiLCBTT0xfQ0FOX0JBU0UpOworI2VuZGlmCisjaWZkZWYgU09MX0NBTl9SQVcKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX0NBTl9SQVciLCBTT0xfQ0FOX1JBVyk7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9SQVciLCBDQU5fUkFXKTsKKyNlbmRpZgorI2lmZGVmIEhBVkVfTElOVVhfQ0FOX0gKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQ0FOX0VGRl9GTEFHIiwgQ0FOX0VGRl9GTEFHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQ0FOX1JUUl9GTEFHIiwgQ0FOX1JUUl9GTEFHKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQ0FOX0VSUl9GTEFHIiwgQ0FOX0VSUl9GTEFHKTsKKworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fU0ZGX01BU0siLCBDQU5fU0ZGX01BU0spOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fRUZGX01BU0siLCBDQU5fRUZGX01BU0spOworICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJDQU5fRVJSX01BU0siLCBDQU5fRVJSX01BU0spOworI2VuZGlmCisjaWZkZWYgSEFWRV9MSU5VWF9DQU5fUkFXX0gKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQ0FOX1JBV19GSUxURVIiLCBDQU5fUkFXX0ZJTFRFUik7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9SQVdfRVJSX0ZJTFRFUiIsIENBTl9SQVdfRVJSX0ZJTFRFUik7CisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkNBTl9SQVdfTE9PUEJBQ0siLCBDQU5fUkFXX0xPT1BCQUNLKTsKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiQ0FOX1JBV19SRUNWX09XTl9NU0dTIiwgQ0FOX1JBV19SRUNWX09XTl9NU0dTKTsKKyNlbmRpZgorI2lmZGVmIFNPTF9SRFMKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiU09MX1JEUyIsIFNPTF9SRFMpOworI2VuZGlmCisjaWZkZWYgUkRTX0NBTkNFTF9TRU5UX1RPCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19DQU5DRUxfU0VOVF9UTyIsIFJEU19DQU5DRUxfU0VOVF9UTyk7CisjZW5kaWYKKyNpZmRlZiBSRFNfR0VUX01SCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19HRVRfTVIiLCBSRFNfR0VUX01SKTsKKyNlbmRpZgorI2lmZGVmIFJEU19GUkVFX01SCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19GUkVFX01SIiwgUkRTX0ZSRUVfTVIpOworI2VuZGlmCisjaWZkZWYgUkRTX1JFQ1ZFUlIKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX1JFQ1ZFUlIiLCBSRFNfUkVDVkVSUik7CisjZW5kaWYKKyNpZmRlZiBSRFNfQ09OR19NT05JVE9SCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19DT05HX01PTklUT1IiLCBSRFNfQ09OR19NT05JVE9SKTsKKyNlbmRpZgorI2lmZGVmIFJEU19HRVRfTVJfRk9SX0RFU1QKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX0dFVF9NUl9GT1JfREVTVCIsIFJEU19HRVRfTVJfRk9SX0RFU1QpOworI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fSVAKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19JUCIsIElQUFJPVE9fSVApOwogI2Vsc2UKQEAgLTQ5NjEsNiArNjI0Myw5IEBACiAjaWZkZWYgIElQUFJPVE9fVlJSUAogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX1ZSUlAiLCBJUFBST1RPX1ZSUlApOwogI2VuZGlmCisjaWZkZWYgIElQUFJPVE9fU0NUUAorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFBST1RPX1NDVFAiLCBJUFBST1RPX1NDVFApOworI2VuZGlmCiAjaWZkZWYgIElQUFJPVE9fQklQCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUFJPVE9fQklQIiwgSVBQUk9UT19CSVApOwogI2VuZGlmCkBAIC00OTc0LDYgKzYyNTksMTAgQEAKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBQUk9UT19NQVgiLCBJUFBST1RPX01BWCk7CiAjZW5kaWYKIAorI2lmZGVmICBTWVNQUk9UT19DT05UUk9MCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlNZU1BST1RPX0NPTlRST0wiLCBTWVNQUk9UT19DT05UUk9MKTsKKyNlbmRpZgorCiAgICAgLyogU29tZSBwb3J0IGNvbmZpZ3VyYXRpb24gKi8KICNpZmRlZiAgSVBQT1JUX1JFU0VSVkVECiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIklQUE9SVF9SRVNFUlZFRCIsIElQUE9SVF9SRVNFUlZFRCk7CkBAIC01MDc2LDYgKzYzNjUsOSBAQAogI2lmZGVmICBJUF9NQVhfTUVNQkVSU0hJUFMKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiSVBfTUFYX01FTUJFUlNISVBTIiwgSVBfTUFYX01FTUJFUlNISVBTKTsKICNlbmRpZgorI2lmZGVmICBJUF9UUkFOU1BBUkVOVAorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUF9UUkFOU1BBUkVOVCIsIElQX1RSQU5TUEFSRU5UKTsKKyNlbmRpZgogCiAgICAgLyogSVB2NiBbZ3NdZXRzb2Nrb3B0IG9wdGlvbnMsIGRlZmluZWQgaW4gUkZDMjU1MyAqLwogI2lmZGVmICBJUFY2X0pPSU5fR1JPVVAKQEAgLTUyMDYsNiArNjQ5OCw0NCBAQAogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJJUFhfVFlQRSIsIElQWF9UWVBFKTsKICNlbmRpZgogCisvKiBSZWxpYWJsZSBEYXRhZ3JhbSBTb2NrZXRzICovCisjaWZkZWYgUkRTX0NNU0dfUkRNQV9BUkdTCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19DTVNHX1JETUFfQVJHUyIsIFJEU19DTVNHX1JETUFfQVJHUyk7CisjZW5kaWYKKyNpZmRlZiBSRFNfQ01TR19SRE1BX0RFU1QKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX0NNU0dfUkRNQV9ERVNUIiwgUkRTX0NNU0dfUkRNQV9ERVNUKTsKKyNlbmRpZgorI2lmZGVmIFJEU19DTVNHX1JETUFfTUFQCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19DTVNHX1JETUFfTUFQIiwgUkRTX0NNU0dfUkRNQV9NQVApOworI2VuZGlmCisjaWZkZWYgUkRTX0NNU0dfUkRNQV9TVEFUVVMKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX0NNU0dfUkRNQV9TVEFUVVMiLCBSRFNfQ01TR19SRE1BX1NUQVRVUyk7CisjZW5kaWYKKyNpZmRlZiBSRFNfQ01TR19SRE1BX1VQREFURQorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfQ01TR19SRE1BX1VQREFURSIsIFJEU19DTVNHX1JETUFfVVBEQVRFKTsKKyNlbmRpZgorI2lmZGVmIFJEU19SRE1BX1JFQURXUklURQorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfUkRNQV9SRUFEV1JJVEUiLCBSRFNfUkRNQV9SRUFEV1JJVEUpOworI2VuZGlmCisjaWZkZWYgUkRTX1JETUFfRkVOQ0UKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX1JETUFfRkVOQ0UiLCBSRFNfUkRNQV9GRU5DRSk7CisjZW5kaWYKKyNpZmRlZiBSRFNfUkRNQV9JTlZBTElEQVRFCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19SRE1BX0lOVkFMSURBVEUiLCBSRFNfUkRNQV9JTlZBTElEQVRFKTsKKyNlbmRpZgorI2lmZGVmIFJEU19SRE1BX1VTRV9PTkNFCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIlJEU19SRE1BX1VTRV9PTkNFIiwgUkRTX1JETUFfVVNFX09OQ0UpOworI2VuZGlmCisjaWZkZWYgUkRTX1JETUFfRE9OVFdBSVQKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX1JETUFfRE9OVFdBSVQiLCBSRFNfUkRNQV9ET05UV0FJVCk7CisjZW5kaWYKKyNpZmRlZiBSRFNfUkRNQV9OT1RJRllfTUUKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUkRTX1JETUFfTk9USUZZX01FIiwgUkRTX1JETUFfTk9USUZZX01FKTsKKyNlbmRpZgorI2lmZGVmIFJEU19SRE1BX1NJTEVOVAorICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJSRFNfUkRNQV9TSUxFTlQiLCBSRFNfUkRNQV9TSUxFTlQpOworI2VuZGlmCisKICAgICAvKiBnZXR7YWRkcixuYW1lfWluZm8gcGFyYW1ldGVycyAqLwogI2lmZGVmIEVBSV9BRERSRkFNSUxZCiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkVBSV9BRERSRkFNSUxZIiwgRUFJX0FERFJGQU1JTFkpOwpAQCAtNTMzMiw3ICs2NjYyLDcgQEAKICAgICAgICAgRFdPUkQgY29kZXNbXSA9IHtTSU9fUkNWQUxMLCBTSU9fS0VFUEFMSVZFX1ZBTFN9OwogICAgICAgICBjb25zdCBjaGFyICpuYW1lc1tdID0geyJTSU9fUkNWQUxMIiwgIlNJT19LRUVQQUxJVkVfVkFMUyJ9OwogICAgICAgICBpbnQgaTsKLSAgICAgICAgZm9yKGkgPSAwOyBpPHNpemVvZihjb2Rlcykvc2l6ZW9mKCpjb2Rlcyk7ICsraSkgeworICAgICAgICBmb3IoaSA9IDA7IGk8UHlfQVJSQVlfTEVOR1RIKGNvZGVzKTsgKytpKSB7CiAgICAgICAgICAgICBQeU9iamVjdCAqdG1wOwogICAgICAgICAgICAgdG1wID0gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcoY29kZXNbaV0pOwogICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy9zb2NrZXRtb2R1bGUuaCBiL01vZHVsZXMvc29ja2V0bW9kdWxlLmgKaW5kZXggZjA2NDc5NS4uMDQzNTg3OCAxMDA2NDQKLS0tIGEvTW9kdWxlcy9zb2NrZXRtb2R1bGUuaAorKysgYi9Nb2R1bGVzL3NvY2tldG1vZHVsZS5oCkBAIC01OSw5ICs1OSwxMiBAQAogI2luY2x1ZGUgPGJsdWV0b290aC5oPgogI2VuZGlmCiAKKyNpZmRlZiBIQVZFX05FVF9JRl9ICisjIGluY2x1ZGUgPG5ldC9pZi5oPgorI2VuZGlmCisKICNpZmRlZiBIQVZFX05FVFBBQ0tFVF9QQUNLRVRfSAogIyBpbmNsdWRlIDxzeXMvaW9jdGwuaD4KLSMgaW5jbHVkZSA8bmV0L2lmLmg+CiAjIGluY2x1ZGUgPG5ldHBhY2tldC9wYWNrZXQuaD4KICNlbmRpZgogCkBAIC02OSw2ICs3MiwyMSBAQAogIyBpbmNsdWRlIDxsaW51eC90aXBjLmg+CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfTElOVVhfQ0FOX0gKKyNpbmNsdWRlIDxsaW51eC9jYW4uaD4KKyNlbmRpZgorCisjaWZkZWYgSEFWRV9MSU5VWF9DQU5fUkFXX0gKKyNpbmNsdWRlIDxsaW51eC9jYW4vcmF3Lmg+CisjZW5kaWYKKworI2lmZGVmIEhBVkVfU1lTX1NZU19ET01BSU5fSAorI2luY2x1ZGUgPHN5cy9zeXNfZG9tYWluLmg+CisjZW5kaWYKKyNpZmRlZiBIQVZFX1NZU19LRVJOX0NPTlRST0xfSAorI2luY2x1ZGUgPHN5cy9rZXJuX2NvbnRyb2wuaD4KKyNlbmRpZgorCiAjaWZuZGVmIFB5X19TT0NLRVRfSAogI2RlZmluZSBQeV9fU09DS0VUX0gKICNpZmRlZiBfX2NwbHVzcGx1cwpAQCAtMTA0LDYgKzEyMiw3IEBACiAvKiBTb2NrZXQgYWRkcmVzcyAqLwogdHlwZWRlZiB1bmlvbiBzb2NrX2FkZHIgewogICAgIHN0cnVjdCBzb2NrYWRkcl9pbiBpbjsKKyAgICBzdHJ1Y3Qgc29ja2FkZHIgc2E7CiAjaWZkZWYgQUZfVU5JWAogICAgIHN0cnVjdCBzb2NrYWRkcl91biB1bjsKICNlbmRpZgpAQCAtMTIzLDYgKzE0MiwxMiBAQAogI2lmZGVmIEhBVkVfTkVUUEFDS0VUX1BBQ0tFVF9ICiAgICAgc3RydWN0IHNvY2thZGRyX2xsIGxsOwogI2VuZGlmCisjaWZkZWYgSEFWRV9MSU5VWF9DQU5fSAorICAgIHN0cnVjdCBzb2NrYWRkcl9jYW4gY2FuOworI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfS0VSTl9DT05UUk9MX0gKKyAgICBzdHJ1Y3Qgc29ja2FkZHJfY3RsIGN0bDsKKyNlbmRpZgogfSBzb2NrX2FkZHJfdDsKIAogLyogVGhlIG9iamVjdCBob2xkaW5nIGEgc29ja2V0LiAgSXQgaG9sZHMgc29tZSBleHRyYSBpbmZvcm1hdGlvbiwKZGlmZiAtLWdpdCBhL01vZHVsZXMvc3JlLmggYi9Nb2R1bGVzL3NyZS5oCmluZGV4IGFlYzliNTQuLjAwYjUyYWEgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvc3JlLmgKKysrIGIvTW9kdWxlcy9zcmUuaApAQCAtMTQsMTIgKzE0LDggQEAKICNpbmNsdWRlICJzcmVfY29uc3RhbnRzLmgiCiAKIC8qIHNpemUgb2YgYSBjb2RlIHdvcmQgKG11c3QgYmUgdW5zaWduZWQgc2hvcnQgb3IgbGFyZ2VyLCBhbmQKLSAgIGxhcmdlIGVub3VnaCB0byBob2xkIGEgUHlfVU5JQ09ERSBjaGFyYWN0ZXIpICovCi0jaWZkZWYgUHlfVU5JQ09ERV9XSURFCisgICBsYXJnZSBlbm91Z2ggdG8gaG9sZCBhIFVDUzQgY2hhcmFjdGVyKSAqLwogI2RlZmluZSBTUkVfQ09ERSBQeV9VQ1M0Ci0jZWxzZQotI2RlZmluZSBTUkVfQ09ERSB1bnNpZ25lZCBzaG9ydAotI2VuZGlmCiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBQeU9iamVjdF9WQVJfSEVBRApAQCAtMzAsNyArMjYsOCBAQAogICAgIFB5T2JqZWN0KiBwYXR0ZXJuOyAvKiBwYXR0ZXJuIHNvdXJjZSAob3IgTm9uZSkgKi8KICAgICBpbnQgZmxhZ3M7IC8qIGZsYWdzIHVzZWQgd2hlbiBjb21waWxpbmcgcGF0dGVybiBzb3VyY2UgKi8KICAgICBQeU9iamVjdCAqd2Vha3JlZmxpc3Q7IC8qIExpc3Qgb2Ygd2VhayByZWZlcmVuY2VzICovCi0JaW50IGNoYXJzaXplOyAvKiBwYXR0ZXJuIGNoYXJzaXplIChvciAtMSkgKi8KKyAgICBpbnQgbG9naWNhbF9jaGFyc2l6ZTsgLyogcGF0dGVybiBjaGFyc2l6ZSAob3IgLTEpICovCisgICAgaW50IGNoYXJzaXplOwogICAgIFB5X2J1ZmZlciB2aWV3OwogICAgIC8qIHBhdHRlcm4gY29kZSAqLwogICAgIFB5X3NzaXplX3QgY29kZXNpemU7CkBAIC03Miw2ICs2OSw3IEBACiAgICAgUHlPYmplY3QqIHN0cmluZzsKICAgICBQeV9zc2l6ZV90IHBvcywgZW5kcG9zOwogICAgIC8qIGNoYXJhY3RlciBzaXplICovCisgICAgaW50IGxvZ2ljYWxfY2hhcnNpemU7IC8qIGtpbmQgb2YgdGhpbmc6IDEgLSBieXRlcywgMi80IC0gdW5pY29kZSAqLwogICAgIGludCBjaGFyc2l6ZTsKICAgICAvKiByZWdpc3RlcnMgKi8KICAgICBQeV9zc2l6ZV90IGxhc3RpbmRleDsKZGlmZiAtLWdpdCBhL01vZHVsZXMvc3lzbG9nbW9kdWxlLmMgYi9Nb2R1bGVzL3N5c2xvZ21vZHVsZS5jCmluZGV4IDViODY5NjMuLjhiODc3Y2YgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvc3lzbG9nbW9kdWxlLmMKKysrIGIvTW9kdWxlcy9zeXNsb2dtb2R1bGUuYwpAQCAtNzAsNyArNzAsNyBAQAogCiAgICAgUHlfc3NpemVfdCBhcmd2X2xlbiwgc2NyaXB0bGVuOwogICAgIFB5T2JqZWN0ICpzY3JpcHRvYmo7Ci0gICAgUHlfVU5JQ09ERSAqYXRzbGFzaCwgKmF0c3RhcnQ7CisgICAgUHlfc3NpemVfdCBzbGFzaDsKICAgICBQeU9iamVjdCAqYXJndiA9IFB5U3lzX0dldE9iamVjdCgiYXJndiIpOwogCiAgICAgaWYgKGFyZ3YgPT0gTlVMTCkgewpAQCAtOTAsMTYgKzkwLDE2IEBACiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2soc2NyaXB0b2JqKSkgewogICAgICAgICByZXR1cm4oTlVMTCk7CiAgICAgfQotICAgIHNjcmlwdGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRShzY3JpcHRvYmopOworICAgIHNjcmlwdGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNjcmlwdG9iaik7CiAgICAgaWYgKHNjcmlwdGxlbiA9PSAwKSB7CiAgICAgICAgIHJldHVybihOVUxMKTsKICAgICB9CiAKLSAgICBhdHN0YXJ0ID0gUHlVbmljb2RlX0FTX1VOSUNPREUoc2NyaXB0b2JqKTsKLSAgICBhdHNsYXNoID0gUHlfVU5JQ09ERV9zdHJyY2hyKGF0c3RhcnQsIFNFUCk7Ci0gICAgaWYgKGF0c2xhc2gpIHsKLSAgICAgICAgcmV0dXJuKFB5VW5pY29kZV9Gcm9tVW5pY29kZShhdHNsYXNoICsgMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRsZW4gLSAoYXRzbGFzaCAtIGF0c3RhcnQpIC0gMSkpOworICAgIHNsYXNoID0gUHlVbmljb2RlX0ZpbmRDaGFyKHNjcmlwdG9iaiwgU0VQLCAwLCBzY3JpcHRsZW4sIC0xKTsKKyAgICBpZiAoc2xhc2ggPT0gLTIpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChzbGFzaCAhPSAtMSkgeworICAgICAgICByZXR1cm4gUHlVbmljb2RlX1N1YnN0cmluZyhzY3JpcHRvYmosIHNsYXNoLCBzY3JpcHRsZW4pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIFB5X0lOQ1JFRihzY3JpcHRvYmopOwogICAgICAgICByZXR1cm4oc2NyaXB0b2JqKTsKQEAgLTI5MSw2ICsyOTEsOSBAQAogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfUElEIiwgICAgICAgICBMT0dfUElEKTsKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX0NPTlMiLCAgICAgICAgTE9HX0NPTlMpOwogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfTkRFTEFZIiwgIExPR19OREVMQVkpOworI2lmZGVmIExPR19PREVMQVkKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX09ERUxBWSIsICBMT0dfT0RFTEFZKTsKKyNlbmRpZgogI2lmZGVmIExPR19OT1dBSVQKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX05PV0FJVCIsICBMT0dfTk9XQUlUKTsKICNlbmRpZgpAQCAtMzMxLDUgKzMzNCwxMCBAQAogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJMT0dfQ1JPTiIsICAgICAgICBMT0dfQ1JPTik7CiAgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19VVUNQIiwgICAgICAgIExPR19VVUNQKTsKICAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiTE9HX05FV1MiLCAgICAgICAgTE9HX05FV1MpOworCisjaWZkZWYgTE9HX0FVVEhQUklWCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIkxPR19BVVRIUFJJViIsICAgIExPR19BVVRIUFJJVik7CisjZW5kaWYKKwogICAgIHJldHVybiBtOwogfQpkaWZmIC0tZ2l0IGEvTW9kdWxlcy90ZXJtaW9zLmMgYi9Nb2R1bGVzL3Rlcm1pb3MuYwppbmRleCBlZGViNmY1Li5iNzhkMzNlIDEwMDY0NAotLS0gYS9Nb2R1bGVzL3Rlcm1pb3MuYworKysgYi9Nb2R1bGVzL3Rlcm1pb3MuYwpAQCAtOSwxMSArOSw2IEBACiAjZW5kaWYKIAogI2luY2x1ZGUgPHRlcm1pb3MuaD4KLSNpZmRlZiBfX29zZl9fCi0vKiBPbiBPU0YsIHN5cy9pb2N0bC5oIHJlcXVpcmVzIHRoYXQgc3RydWN0IHRlcm1pbyBhbHJlYWR5IGJlIGRlZmluZWQsCi0gKiBzbyB0aGlzIG5lZWRzIHRvIGJlIGluY2x1ZGVkIGZpcnN0IG9uIHRoYXQgcGxhdGZvcm0uICovCi0jaW5jbHVkZSA8dGVybWlvLmg+Ci0jZW5kaWYKICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KIAogLyogSFAtVVggcmVxdWlyZXMgdGhhdCB0aGlzIGJlIGluY2x1ZGVkIHRvIHBpY2sgdXAgTURDRCwgTUNUUywgTURTUiwKZGlmZiAtLWdpdCBhL01vZHVsZXMvdGVzdGNhcGlfbG9uZy5oIGIvTW9kdWxlcy90ZXN0Y2FwaV9sb25nLmgKaW5kZXggZmE5NGZkNi4uNmJkZGFkNyAxMDA2NDQKLS0tIGEvTW9kdWxlcy90ZXN0Y2FwaV9sb25nLmgKKysrIGIvTW9kdWxlcy90ZXN0Y2FwaV9sb25nLmgKQEAgLTMzLDggKzMzLDcgQEAKICAgICAgICAgICAgIHVuc2lnbmVkIFRZUEVOQU1FIHVpbiwgdW91dDsKIAogICAgICAgICAgICAgLyogRm9yIDAsIDEsIDIgdXNlIGJhc2U7IGZvciAzLCA0LCA1IHVzZSAtYmFzZSAqLwotICAgICAgICAgICAgdWluID0gaiA8IDMgPyBiYXNlCi0gICAgICAgICAgICAgICAgICAgICAgICA6ICh1bnNpZ25lZCBUWVBFTkFNRSkoLShUWVBFTkFNRSliYXNlKTsKKyAgICAgICAgICAgIHVpbiA9IGogPCAzID8gYmFzZSA6IDBVIC0gYmFzZTsKIAogICAgICAgICAgICAgLyogRm9yIDAgJiAzLCBzdWJ0cmFjdCAxLgogICAgICAgICAgICAgICogRm9yIDEgJiA0LCBsZWF2ZSBhbG9uZS4KQEAgLTE3Nyw2ICsxNzYsMzIgQEAKICAgICAgICAgUHlfREVDUkVGKG9uZSk7CiAgICAgfQogCisgICAgLyogVGVzdCBGX1BZX1RPX3tTLFV9IG9uIG5vbi1weWxvbmcgaW5wdXQuIFRoaXMgc2hvdWxkIHJhaXNlIGEgVHlwZUVycm9yLiAqLworICAgIHsKKyAgICAgICAgVFlQRU5BTUUgb3V0OworICAgICAgICB1bnNpZ25lZCBUWVBFTkFNRSB1b3V0OworCisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKworICAgICAgICBvdXQgPSBGX1BZX1RPX1MoUHlfTm9uZSk7CisgICAgICAgIGlmIChvdXQgIT0gKFRZUEVOQU1FKS0xIHx8ICFQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGVycm9yKCJQeUxvbmdfQXNYWFgoTm9uZSkgZGlkbid0IGNvbXBsYWluIik7CisgICAgICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19UeXBlRXJyb3IpKQorICAgICAgICAgICAgcmV0dXJuIGVycm9yKCJQeUxvbmdfQXNYWFgoTm9uZSkgcmFpc2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAic29tZXRoaW5nIG90aGVyIHRoYW4gVHlwZUVycm9yIik7CisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisKKyAgICAgICAgdW91dCA9IEZfUFlfVE9fVShQeV9Ob25lKTsKKyAgICAgICAgaWYgKHVvdXQgIT0gKHVuc2lnbmVkIFRZUEVOQU1FKS0xIHx8ICFQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuIGVycm9yKCJQeUxvbmdfQXNYWFgoTm9uZSkgZGlkbid0IGNvbXBsYWluIik7CisgICAgICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19UeXBlRXJyb3IpKQorICAgICAgICAgICAgcmV0dXJuIGVycm9yKCJQeUxvbmdfQXNYWFgoTm9uZSkgcmFpc2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAic29tZXRoaW5nIG90aGVyIHRoYW4gVHlwZUVycm9yIik7CisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisKKyAgICAgICAgUHlfREVDUkVGKFB5X05vbmUpOworICAgIH0KKwogICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKICAgICByZXR1cm4gUHlfTm9uZTsKIH0KZGlmZiAtLWdpdCBhL01vZHVsZXMvdGltZW1vZHVsZS5jIGIvTW9kdWxlcy90aW1lbW9kdWxlLmMKaW5kZXggNjI2ZGIzZS4uMTYxNDA3ZCAxMDA2NDQKLS0tIGEvTW9kdWxlcy90aW1lbW9kdWxlLmMKKysrIGIvTW9kdWxlcy90aW1lbW9kdWxlLmMKQEAgLTEsMTMgKzEsMjAgQEAKIC8qIFRpbWUgbW9kdWxlICovCiAKICNpbmNsdWRlICJQeXRob24uaCIKLSNpbmNsdWRlICJfdGltZS5oIgogCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorI2lmZGVmIEhBVkVfU1lTX1RJTUVTX0gKKyNpbmNsdWRlIDxzeXMvdGltZXMuaD4KKyNlbmRpZgorCiAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgotI2VuZGlmIC8qIEhBVkVfU1lTX1RZUEVTX0ggKi8KKyNlbmRpZgorCisjaWYgZGVmaW5lZChIQVZFX1NZU19SRVNPVVJDRV9IKQorI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2VuZGlmCiAKICNpZmRlZiBRVUlDS1dJTgogI2luY2x1ZGUgPGlvLmg+CkBAIC0yMSwxOSArMjgsNiBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlICJweXRocmVhZC5oIgogCi0vKiBoZWxwZXIgdG8gYWxsb3cgdXMgdG8gaW50ZXJydXB0IHNsZWVwKCkgb24gV2luZG93cyovCi1zdGF0aWMgSEFORExFIGhJbnRlcnJ1cHRFdmVudCA9IE5VTEw7Ci1zdGF0aWMgQk9PTCBXSU5BUEkgUHlDdHJsSGFuZGxlcihEV09SRCBkd0N0cmxUeXBlKQotewotICAgIFNldEV2ZW50KGhJbnRlcnJ1cHRFdmVudCk7Ci0gICAgLyogYWxsb3cgb3RoZXIgZGVmYXVsdCBoYW5kbGVycyB0byBiZSBjYWxsZWQuCi0gICAgICAgRGVmYXVsdCBQeXRob24gaGFuZGxlciB3aWxsIHNldHVwIHRoZQotICAgICAgIEtleWJvYXJkSW50ZXJydXB0IGV4Y2VwdGlvbi4KLSAgICAqLwotICAgIHJldHVybiBGQUxTRTsKLX0KLXN0YXRpYyBsb25nIG1haW5fdGhyZWFkOwotCiAjaWYgZGVmaW5lZChfX0JPUkxBTkRDX18pCiAvKiBUaGVzZSBvdmVycmlkZXMgbm90IG5lZWRlZCBmb3IgV2luMzIgKi8KICNkZWZpbmUgdGltZXpvbmUgX3RpbWV6b25lCkBAIC00MywxMSArMzcsNiBAQAogI2VuZGlmIC8qIE1TX1dJTkRPV1MgKi8KICNlbmRpZiAvKiAhX19XQVRDT01DX18gfHwgX19RTlhfXyAqLwogCi0jaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCi0vKiBXaW4zMiBoYXMgYmV0dGVyIGNsb2NrIHJlcGxhY2VtZW50OyB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiBiZWxvdy4gKi8KLSN1bmRlZiBIQVZFX0NMT0NLCi0jZW5kaWYgLyogTVNfV0lORE9XUyAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pICovCi0KICNpZiBkZWZpbmVkKFBZT1NfT1MyKQogI2RlZmluZSBJTkNMX0RPUwogI2RlZmluZSBJTkNMX0VSUk9SUwpAQCAtNTgsMjMgKzQ3LDIyIEBACiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChfX0FQUExFX18pCisjaW5jbHVkZSA8bWFjaC9tYWNoX3RpbWUuaD4KKyNlbmRpZgorCiAvKiBGb3J3YXJkIGRlY2xhcmF0aW9ucyAqLwogc3RhdGljIGludCBmbG9hdHNsZWVwKGRvdWJsZSk7Ci1zdGF0aWMgZG91YmxlIGZsb2F0dGltZSh2b2lkKTsKK3N0YXRpYyBQeU9iamVjdCogZmxvYXR0aW1lKF9QeV9jbG9ja19pbmZvX3QgKmluZm8pOwogCi0vKiBGb3IgWTJLIGNoZWNrICovCi1zdGF0aWMgUHlPYmplY3QgKm1vZGRpY3Q7CisjaWZkZWYgTVNfV0lORE9XUworc3RhdGljIE9TVkVSU0lPTklORk9FWCB3aW52ZXI7CisjZW5kaWYKIAogc3RhdGljIFB5T2JqZWN0ICoKIHRpbWVfdGltZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnVudXNlZCkKIHsKLSAgICBkb3VibGUgc2VjczsKLSAgICBzZWNzID0gZmxvYXR0aW1lKCk7Ci0gICAgaWYgKHNlY3MgPT0gMC4wKSB7Ci0gICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJldHVybiBQeUZsb2F0X0Zyb21Eb3VibGUoc2Vjcyk7CisgICAgcmV0dXJuIGZsb2F0dGltZShOVUxMKTsKIH0KIAogUHlEb2NfU1RSVkFSKHRpbWVfZG9jLApAQCAtODMsNyArNzEsNyBAQAogUmV0dXJuIHRoZSBjdXJyZW50IHRpbWUgaW4gc2Vjb25kcyBzaW5jZSB0aGUgRXBvY2guXG5cCiBGcmFjdGlvbnMgb2YgYSBzZWNvbmQgbWF5IGJlIHByZXNlbnQgaWYgdGhlIHN5c3RlbSBjbG9jayBwcm92aWRlcyB0aGVtLiIpOwogCi0jaWZkZWYgSEFWRV9DTE9DSworI2lmIGRlZmluZWQoSEFWRV9DTE9DSykKIAogI2lmbmRlZiBDTE9DS1NfUEVSX1NFQwogI2lmZGVmIENMS19UQ0sKQEAgLTk0LDQyICs4Miw4MiBAQAogI2VuZGlmCiAKIHN0YXRpYyBQeU9iamVjdCAqCi10aW1lX2Nsb2NrKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdW51c2VkKQorZmxvYXRjbG9jayhfUHlfY2xvY2tfaW5mb190ICppbmZvKQogewotICAgIHJldHVybiBQeUZsb2F0X0Zyb21Eb3VibGUoKChkb3VibGUpY2xvY2soKSkgLyBDTE9DS1NfUEVSX1NFQyk7CisgICAgY2xvY2tfdCB2YWx1ZTsKKyAgICB2YWx1ZSA9IGNsb2NrKCk7CisgICAgaWYgKHZhbHVlID09IChjbG9ja190KS0xKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsCisgICAgICAgICAgICAgICAgInRoZSBwcm9jZXNzb3IgdGltZSB1c2VkIGlzIG5vdCBhdmFpbGFibGUgIgorICAgICAgICAgICAgICAgICJvciBpdHMgdmFsdWUgY2Fubm90IGJlIHJlcHJlc2VudGVkIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoaW5mbykgeworICAgICAgICBpbmZvLT5pbXBsZW1lbnRhdGlvbiA9ICJjbG9jaygpIjsKKyAgICAgICAgaW5mby0+cmVzb2x1dGlvbiA9IDEuMCAvIChkb3VibGUpQ0xPQ0tTX1BFUl9TRUM7CisgICAgICAgIGluZm8tPm1vbm90b25pYyA9IDE7CisgICAgICAgIGluZm8tPmFkanVzdGFibGUgPSAwOworICAgIH0KKyAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKChkb3VibGUpdmFsdWUgLyBDTE9DS1NfUEVSX1NFQyk7CiB9CiAjZW5kaWYgLyogSEFWRV9DTE9DSyAqLwogCiAjaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiAhZGVmaW5lZChfX0JPUkxBTkRDX18pCi0vKiBEdWUgdG8gTWFyayBIYW1tb25kIGFuZCBUaW0gUGV0ZXJzICovCi1zdGF0aWMgUHlPYmplY3QgKgotdGltZV9jbG9jayhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnVudXNlZCkKKyNkZWZpbmUgV0lOMzJfUEVSRl9DT1VOVEVSCisvKiBXaW4zMiBoYXMgYmV0dGVyIGNsb2NrIHJlcGxhY2VtZW50OyB3ZSBoYXZlIG91ciBvd24gdmVyc2lvbiwgZHVlIHRvIE1hcmsKKyAgIEhhbW1vbmQgYW5kIFRpbSBQZXRlcnMgKi8KK3N0YXRpYyBpbnQKK3dpbl9wZXJmX2NvdW50ZXIoX1B5X2Nsb2NrX2luZm9fdCAqaW5mbywgUHlPYmplY3QgKipyZXN1bHQpCiB7Ci0gICAgc3RhdGljIExBUkdFX0lOVEVHRVIgY3RyU3RhcnQ7Ci0gICAgc3RhdGljIGRvdWJsZSBkaXZpc29yID0gMC4wOworICAgIHN0YXRpYyBMT05HTE9ORyBjcHVfZnJlcXVlbmN5ID0gMDsKKyAgICBzdGF0aWMgTE9OR0xPTkcgY3RyU3RhcnQ7CiAgICAgTEFSR0VfSU5URUdFUiBub3c7CiAgICAgZG91YmxlIGRpZmY7CiAKLSAgICBpZiAoZGl2aXNvciA9PSAwLjApIHsKKyAgICBpZiAoY3B1X2ZyZXF1ZW5jeSA9PSAwKSB7CiAgICAgICAgIExBUkdFX0lOVEVHRVIgZnJlcTsKLSAgICAgICAgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoJmN0clN0YXJ0KTsKKyAgICAgICAgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoJm5vdyk7CisgICAgICAgIGN0clN0YXJ0ID0gbm93LlF1YWRQYXJ0OwogICAgICAgICBpZiAoIVF1ZXJ5UGVyZm9ybWFuY2VGcmVxdWVuY3koJmZyZXEpIHx8IGZyZXEuUXVhZFBhcnQgPT0gMCkgewogICAgICAgICAgICAgLyogVW5saWtlbHkgdG8gaGFwcGVuIC0gdGhpcyB3b3JrcyBvbiBhbGwgaW50ZWwKICAgICAgICAgICAgICAgIG1hY2hpbmVzIGF0IGxlYXN0ISAgUmV2ZXJ0IHRvIGNsb2NrKCkgKi8KLSAgICAgICAgICAgIHJldHVybiBQeUZsb2F0X0Zyb21Eb3VibGUoKChkb3VibGUpY2xvY2soKSkgLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDTE9DS1NfUEVSX1NFQyk7CisgICAgICAgICAgICAqcmVzdWx0ID0gTlVMTDsKKyAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfQotICAgICAgICBkaXZpc29yID0gKGRvdWJsZSlmcmVxLlF1YWRQYXJ0OworICAgICAgICBjcHVfZnJlcXVlbmN5ID0gZnJlcS5RdWFkUGFydDsKICAgICB9CiAgICAgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIoJm5vdyk7Ci0gICAgZGlmZiA9IChkb3VibGUpKG5vdy5RdWFkUGFydCAtIGN0clN0YXJ0LlF1YWRQYXJ0KTsKLSAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKGRpZmYgLyBkaXZpc29yKTsKKyAgICBkaWZmID0gKGRvdWJsZSkobm93LlF1YWRQYXJ0IC0gY3RyU3RhcnQpOworICAgIGlmIChpbmZvKSB7CisgICAgICAgIGluZm8tPmltcGxlbWVudGF0aW9uID0gIlF1ZXJ5UGVyZm9ybWFuY2VDb3VudGVyKCkiOworICAgICAgICBpbmZvLT5yZXNvbHV0aW9uID0gMS4wIC8gKGRvdWJsZSljcHVfZnJlcXVlbmN5OworICAgICAgICBpbmZvLT5tb25vdG9uaWMgPSAxOworICAgICAgICBpbmZvLT5hZGp1c3RhYmxlID0gMDsKKyAgICB9CisgICAgKnJlc3VsdCA9IFB5RmxvYXRfRnJvbURvdWJsZShkaWZmIC8gKGRvdWJsZSljcHVfZnJlcXVlbmN5KTsKKyAgICByZXR1cm4gMDsKK30KKyNlbmRpZgorCisjaWYgZGVmaW5lZChXSU4zMl9QRVJGX0NPVU5URVIpIHx8IGRlZmluZWQoSEFWRV9DTE9DSykKKyNkZWZpbmUgUFlDTE9DSworc3RhdGljIFB5T2JqZWN0KgorcHljbG9jayhfUHlfY2xvY2tfaW5mb190ICppbmZvKQoreworI2lmZGVmIFdJTjMyX1BFUkZfQ09VTlRFUgorICAgIFB5T2JqZWN0ICpyZXM7CisgICAgaWYgKHdpbl9wZXJmX2NvdW50ZXIoaW5mbywgJnJlcykgPT0gMCkKKyAgICAgICAgcmV0dXJuIHJlczsKKyNlbmRpZgorICAgIHJldHVybiBmbG9hdGNsb2NrKGluZm8pOwogfQogCi0jZGVmaW5lIEhBVkVfQ0xPQ0sgLyogU28gaXQgZ2V0cyBpbmNsdWRlZCBpbiB0aGUgbWV0aG9kcyAqLwotI2VuZGlmIC8qIE1TX1dJTkRPV1MgJiYgIWRlZmluZWQoX19CT1JMQU5EQ19fKSAqLworc3RhdGljIFB5T2JqZWN0ICoKK3RpbWVfY2xvY2soUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp1bnVzZWQpCit7CisgICAgcmV0dXJuIHB5Y2xvY2soTlVMTCk7Cit9CiAKLSNpZmRlZiBIQVZFX0NMT0NLCiBQeURvY19TVFJWQVIoY2xvY2tfZG9jLAogImNsb2NrKCkgLT4gZmxvYXRpbmcgcG9pbnQgbnVtYmVyXG5cCiBcblwKQEAgLTEzOCwxMiArMTY2LDkzIEBACiByZWNvcmRzLiIpOwogI2VuZGlmCiAKKyNpZmRlZiBIQVZFX0NMT0NLX0dFVFRJTUUKK3N0YXRpYyBQeU9iamVjdCAqCit0aW1lX2Nsb2NrX2dldHRpbWUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCByZXQ7CisgICAgaW50IGNsa19pZDsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHA7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImk6Y2xvY2tfZ2V0dGltZSIsICZjbGtfaWQpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldCA9IGNsb2NrX2dldHRpbWUoKGNsb2NraWRfdCljbGtfaWQsICZ0cCk7CisgICAgaWYgKHJldCAhPSAwKSB7CisgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19JT0Vycm9yKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeUZsb2F0X0Zyb21Eb3VibGUodHAudHZfc2VjICsgdHAudHZfbnNlYyAqIDFlLTkpOworfQorCitQeURvY19TVFJWQVIoY2xvY2tfZ2V0dGltZV9kb2MsCisiY2xvY2tfZ2V0dGltZShjbGtfaWQpIC0+IGZsb2F0aW5nIHBvaW50IG51bWJlclxuXAorXG5cCitSZXR1cm4gdGhlIHRpbWUgb2YgdGhlIHNwZWNpZmllZCBjbG9jayBjbGtfaWQuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCit0aW1lX2Nsb2NrX3NldHRpbWUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCBjbGtfaWQ7CisgICAgUHlPYmplY3QgKm9iajsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHA7CisgICAgaW50IHJldDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaU86Y2xvY2tfc2V0dGltZSIsICZjbGtfaWQsICZvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChfUHlUaW1lX09iamVjdFRvVGltZXNwZWMob2JqLCAmdHAudHZfc2VjLCAmdHAudHZfbnNlYykgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0ID0gY2xvY2tfc2V0dGltZSgoY2xvY2tpZF90KWNsa19pZCwgJnRwKTsKKyAgICBpZiAocmV0ICE9IDApIHsKKyAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihjbG9ja19zZXR0aW1lX2RvYywKKyJjbG9ja19zZXR0aW1lKGNsa19pZCwgdGltZSlcblwKK1xuXAorU2V0IHRoZSB0aW1lIG9mIHRoZSBzcGVjaWZpZWQgY2xvY2sgY2xrX2lkLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgordGltZV9jbG9ja19nZXRyZXMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGludCByZXQ7CisgICAgaW50IGNsa19pZDsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHA7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImk6Y2xvY2tfZ2V0cmVzIiwgJmNsa19pZCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0ID0gY2xvY2tfZ2V0cmVzKChjbG9ja2lkX3QpY2xrX2lkLCAmdHApOworICAgIGlmIChyZXQgIT0gMCkgeworICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfSU9FcnJvcik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBQeUZsb2F0X0Zyb21Eb3VibGUodHAudHZfc2VjICsgdHAudHZfbnNlYyAqIDFlLTkpOworfQorCitQeURvY19TVFJWQVIoY2xvY2tfZ2V0cmVzX2RvYywKKyJjbG9ja19nZXRyZXMoY2xrX2lkKSAtPiBmbG9hdGluZyBwb2ludCBudW1iZXJcblwKK1xuXAorUmV0dXJuIHRoZSByZXNvbHV0aW9uIChwcmVjaXNpb24pIG9mIHRoZSBzcGVjaWZpZWQgY2xvY2sgY2xrX2lkLiIpOworI2VuZGlmICAgLyogSEFWRV9DTE9DS19HRVRUSU1FICovCisKIHN0YXRpYyBQeU9iamVjdCAqCiB0aW1lX3NsZWVwKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBkb3VibGUgc2VjczsKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgImQ6c2xlZXAiLCAmc2VjcykpCiAgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChzZWNzIDwgMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJzbGVlcCBsZW5ndGggbXVzdCBiZSBub24tbmVnYXRpdmUiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogICAgIGlmIChmbG9hdHNsZWVwKHNlY3MpICE9IDApCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKQEAgLTE2Niw2ICsyNzUsMTAgQEAKICAgICB7InRtX3dkYXkiLCAiZGF5IG9mIHdlZWssIHJhbmdlIFswLCA2XSwgTW9uZGF5IGlzIDAifSwKICAgICB7InRtX3lkYXkiLCAiZGF5IG9mIHllYXIsIHJhbmdlIFsxLCAzNjZdIn0sCiAgICAgeyJ0bV9pc2RzdCIsICIxIGlmIHN1bW1lciB0aW1lIGlzIGluIGVmZmVjdCwgMCBpZiBub3QsIGFuZCAtMSBpZiB1bmtub3duIn0sCisjaWZkZWYgSEFWRV9TVFJVQ1RfVE1fVE1fWk9ORQorICAgIHsidG1fem9uZSIsICJhYmJyZXZpYXRpb24gb2YgdGltZXpvbmUgbmFtZSJ9LAorICAgIHsidG1fZ210b2ZmIiwgIm9mZnNldCBmcm9tIFVUQyBpbiBzZWNvbmRzIn0sCisjZW5kaWYgLyogSEFWRV9TVFJVQ1RfVE1fVE1fWk9ORSAqLwogICAgIHswfQogfTsKIApAQCAtMTg1LDYgKzI5OCw3IEBACiBzdGF0aWMgaW50IGluaXRpYWxpemVkOwogc3RhdGljIFB5VHlwZU9iamVjdCBTdHJ1Y3RUaW1lVHlwZTsKIAorCiBzdGF0aWMgUHlPYmplY3QgKgogdG10b3R1cGxlKHN0cnVjdCB0bSAqcCkKIHsKQEAgLTIwMyw2ICszMTcsMTEgQEAKICAgICBTRVQoNiwgKHAtPnRtX3dkYXkgKyA2KSAlIDcpOyAvKiBXYW50IE1vbmRheSA9PSAwICovCiAgICAgU0VUKDcsIHAtPnRtX3lkYXkgKyAxKTsgICAgICAgIC8qIFdhbnQgSmFudWFyeSwgMSA9PSAxICovCiAgICAgU0VUKDgsIHAtPnRtX2lzZHN0KTsKKyNpZmRlZiBIQVZFX1NUUlVDVF9UTV9UTV9aT05FCisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTSh2LCA5LAorICAgICAgICBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKHAtPnRtX3pvbmUsICJzdXJyb2dhdGVlc2NhcGUiKSk7CisgICAgU0VUKDEwLCBwLT50bV9nbXRvZmYpOworI2VuZGlmIC8qIEhBVkVfU1RSVUNUX1RNX1RNX1pPTkUgKi8KICN1bmRlZiBTRVQKICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkgewogICAgICAgICBQeV9YREVDUkVGKHYpOwpAQCAtMjEyLDU1ICszMzEsNDkgQEAKICAgICByZXR1cm4gdjsKIH0KIAotc3RhdGljIFB5T2JqZWN0ICoKLXRpbWVfY29udmVydChkb3VibGUgd2hlbiwgc3RydWN0IHRtICogKCpmdW5jdGlvbikoY29uc3QgdGltZV90ICopKQotewotICAgIHN0cnVjdCB0bSAqcDsKLSAgICB0aW1lX3Qgd2hlbnQgPSBfUHlUaW1lX0RvdWJsZVRvVGltZXQod2hlbik7Ci0KLSAgICBpZiAod2hlbnQgPT0gKHRpbWVfdCktMSAmJiBQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBlcnJubyA9IDA7Ci0gICAgcCA9IGZ1bmN0aW9uKCZ3aGVudCk7Ci0gICAgaWYgKHAgPT0gTlVMTCkgewotI2lmZGVmIEVJTlZBTAotICAgICAgICBpZiAoZXJybm8gPT0gMCkKLSAgICAgICAgICAgIGVycm5vID0gRUlOVkFMOwotI2VuZGlmCi0gICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfVmFsdWVFcnJvcik7Ci0gICAgfQotICAgIHJldHVybiB0bXRvdHVwbGUocCk7Ci19Ci0KIC8qIFBhcnNlIGFyZyB0dXBsZSB0aGF0IGNhbiBjb250YWluIGFuIG9wdGlvbmFsIGZsb2F0LW9yLU5vbmUgdmFsdWU7CiAgICBmb3JtYXQgbmVlZHMgdG8gYmUgInxPOm5hbWUiLgogICAgUmV0dXJucyBub24temVybyBvbiBzdWNjZXNzIChwYXJhbGxlbHMgUHlBcmdfUGFyc2VUdXBsZSkuCiAqLwogc3RhdGljIGludAotcGFyc2VfdGltZV9kb3VibGVfYXJncyhQeU9iamVjdCAqYXJncywgY2hhciAqZm9ybWF0LCBkb3VibGUgKnB3aGVuKQorcGFyc2VfdGltZV90X2FyZ3MoUHlPYmplY3QgKmFyZ3MsIGNoYXIgKmZvcm1hdCwgdGltZV90ICpwd2hlbikKIHsKICAgICBQeU9iamVjdCAqb3QgPSBOVUxMOworICAgIHRpbWVfdCB3aGVudDsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBmb3JtYXQsICZvdCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIGlmIChvdCA9PSBOVUxMIHx8IG90ID09IFB5X05vbmUpCi0gICAgICAgICpwd2hlbiA9IGZsb2F0dGltZSgpOwotICAgIGVsc2UgewotICAgICAgICBkb3VibGUgd2hlbiA9IFB5RmxvYXRfQXNEb3VibGUob3QpOwotICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAqcHdoZW4gPSB3aGVuOworICAgIGlmIChvdCA9PSBOVUxMIHx8IG90ID09IFB5X05vbmUpIHsKKyAgICAgICAgd2hlbnQgPSB0aW1lKE5VTEwpOwogICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKF9QeVRpbWVfT2JqZWN0VG9UaW1lX3Qob3QsICZ3aGVudCkgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgKnB3aGVuID0gd2hlbnQ7CiAgICAgcmV0dXJuIDE7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiB0aW1lX2dtdGltZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgZG91YmxlIHdoZW47Ci0gICAgaWYgKCFwYXJzZV90aW1lX2RvdWJsZV9hcmdzKGFyZ3MsICJ8TzpnbXRpbWUiLCAmd2hlbikpCisgICAgdGltZV90IHdoZW47CisgICAgc3RydWN0IHRtIGJ1ZiwgKmxvY2FsOworCisgICAgaWYgKCFwYXJzZV90aW1lX3RfYXJncyhhcmdzLCAifE86Z210aW1lIiwgJndoZW4pKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICByZXR1cm4gdGltZV9jb252ZXJ0KHdoZW4sIGdtdGltZSk7CisKKyAgICBlcnJubyA9IDA7CisgICAgbG9jYWwgPSBnbXRpbWUoJndoZW4pOworICAgIGlmIChsb2NhbCA9PSBOVUxMKSB7CisjaWZkZWYgRUlOVkFMCisgICAgICAgIGlmIChlcnJubyA9PSAwKQorICAgICAgICAgICAgZXJybm8gPSBFSU5WQUw7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKKyAgICB9CisgICAgYnVmID0gKmxvY2FsOworICAgIHJldHVybiB0bXRvdHVwbGUoJmJ1Zik7CiB9CiAKIFB5RG9jX1NUUlZBUihnbXRpbWVfZG9jLApAQCAtMjY4LDE1ICszODEsNDIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgdG1fc2VjLCB0bV93ZGF5LCB0bV95ZGF5LCB0bV9pc2RzdClcblwKIFxuXAogQ29udmVydCBzZWNvbmRzIHNpbmNlIHRoZSBFcG9jaCB0byBhIHRpbWUgdHVwbGUgZXhwcmVzc2luZyBVVEMgKGEuay5hLlxuXAotR01UKS4gIFdoZW4gJ3NlY29uZHMnIGlzIG5vdCBwYXNzZWQgaW4sIGNvbnZlcnQgdGhlIGN1cnJlbnQgdGltZSBpbnN0ZWFkLiIpOworR01UKS4gIFdoZW4gJ3NlY29uZHMnIGlzIG5vdCBwYXNzZWQgaW4sIGNvbnZlcnQgdGhlIGN1cnJlbnQgdGltZSBpbnN0ZWFkLlxuXAorXG5cCitJZiB0aGUgcGxhdGZvcm0gc3VwcG9ydHMgdGhlIHRtX2dtdG9mZiBhbmQgdG1fem9uZSwgdGhleSBhcmUgYXZhaWxhYmxlIGFzXG5cCithdHRyaWJ1dGVzIG9ubHkuIik7CisKK3N0YXRpYyBpbnQKK3B5bG9jYWx0aW1lKHRpbWVfdCAqdGltZXAsIHN0cnVjdCB0bSAqcmVzdWx0KQoreworICAgIHN0cnVjdCB0bSAqbG9jYWw7CisKKyAgICBhc3NlcnQgKHRpbWVwICE9IE5VTEwpOworICAgIGxvY2FsID0gbG9jYWx0aW1lKHRpbWVwKTsKKyAgICBpZiAobG9jYWwgPT0gTlVMTCkgeworICAgICAgICAvKiB1bmNvbnZlcnRpYmxlIHRpbWUgKi8KKyNpZmRlZiBFSU5WQUwKKyAgICAgICAgaWYgKGVycm5vID09IDApCisgICAgICAgICAgICBlcnJubyA9IEVJTlZBTDsKKyNlbmRpZgorICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgKnJlc3VsdCA9ICpsb2NhbDsKKyAgICByZXR1cm4gMDsKK30KIAogc3RhdGljIFB5T2JqZWN0ICoKIHRpbWVfbG9jYWx0aW1lKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBkb3VibGUgd2hlbjsKLSAgICBpZiAoIXBhcnNlX3RpbWVfZG91YmxlX2FyZ3MoYXJncywgInxPOmxvY2FsdGltZSIsICZ3aGVuKSkKKyAgICB0aW1lX3Qgd2hlbjsKKyAgICBzdHJ1Y3QgdG0gYnVmOworCisgICAgaWYgKCFwYXJzZV90aW1lX3RfYXJncyhhcmdzLCAifE86bG9jYWx0aW1lIiwgJndoZW4pKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICByZXR1cm4gdGltZV9jb252ZXJ0KHdoZW4sIGxvY2FsdGltZSk7CisgICAgaWYgKHB5bG9jYWx0aW1lKCZ3aGVuLCAmYnVmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIHRtdG90dXBsZSgmYnVmKTsKIH0KIAogUHlEb2NfU1RSVkFSKGxvY2FsdGltZV9kb2MsCkBAIC0zMDcsNTMgKzQ0NywyMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAmcC0+dG1faG91ciwgJnAtPnRtX21pbiwgJnAtPnRtX3NlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgJnAtPnRtX3dkYXksICZwLT50bV95ZGF5LCAmcC0+dG1faXNkc3QpKQogICAgICAgICByZXR1cm4gMDsKLQotICAgIC8qIElmIHllYXIgaXMgc3BlY2lmaWVkIHdpdGggbGVzcyB0aGFuIDQgZGlnaXRzLCBpdHMgaW50ZXJwcmV0YXRpb24KLSAgICAgKiBkZXBlbmRzIG9uIHRoZSBhY2NlcHQyZHllYXIgdmFsdWUuCi0gICAgICoKLSAgICAgKiBJZiBhY2NlcHQyZHllYXIgaXMgdHJ1ZSAoZGVmYXVsdCksIGEgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBiZWhhdmlvciBpcwotICAgICAqIGludm9rZWQgYXMgZm9sbG93czoKLSAgICAgKgotICAgICAqICAgLSBmb3IgMi1kaWdpdCB5ZWFyLCBjZW50dXJ5IGlzIGd1ZXNzZWQgYWNjb3JkaW5nIHRvIFBPU0lYIHJ1bGVzIGZvcgotICAgICAqICAgICAgJXkgc3RycHRpbWUgZm9ybWF0OiAyMXN0IGNlbnR1cnkgZm9yIHkgPCA2OSwgMjB0aCBjZW50dXJ5Ci0gICAgICogICAgICBvdGhlcndpc2UuICBBIGRlcHJlY2F0aW9uIHdhcm5pbmcgaXMgaXNzdWVkIHdoZW4gY2VudHVyeQotICAgICAqICAgICAgaW5mb3JtYXRpb24gaXMgZ3Vlc3NlZCBpbiB0aGlzIHdheS4KLSAgICAgKgotICAgICAqICAgLSBmb3IgMy1kaWdpdCBvciBuZWdhdGl2ZSB5ZWFyLCBhIFZhbHVlRXJyb3IgZXhjZXB0aW9uIGlzIHJhaXNlZC4KLSAgICAgKgotICAgICAqIElmIGFjY2VwdDJkeWVhciBpcyBmYWxzZSAoc2V0IGJ5IHRoZSBwcm9ncmFtIG9yIGFzIGEgcmVzdWx0IG9mIGEKLSAgICAgKiBub24tZW1wdHkgdmFsdWUgYXNzaWduZWQgdG8gUFlUSE9OWTJLIGVudmlyb25tZW50IHZhcmlhYmxlKSBhbGwgeWVhcgotICAgICAqIHZhbHVlcyBhcmUgaW50ZXJwcmV0ZWQgYXMgZ2l2ZW4uCi0gICAgICovCi0gICAgaWYgKHkgPCAxMDAwKSB7Ci0gICAgICAgIFB5T2JqZWN0ICphY2NlcHQgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2RkaWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFjY2VwdDJkeWVhciIpOwotICAgICAgICBpZiAoYWNjZXB0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIGludCBhY2NlcHR2YWwgPSAgUHlPYmplY3RfSXNUcnVlKGFjY2VwdCk7Ci0gICAgICAgICAgICBpZiAoYWNjZXB0dmFsID09IC0xKQotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgaWYgKGFjY2VwdHZhbCkgewotICAgICAgICAgICAgICAgIGlmICgwIDw9IHkgJiYgeSA8IDY5KQotICAgICAgICAgICAgICAgICAgICB5ICs9IDIwMDA7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoNjkgPD0geSAmJiB5IDwgMTAwKQotICAgICAgICAgICAgICAgICAgICB5ICs9IDE5MDA7Ci0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInllYXIgb3V0IG9mIHJhbmdlIik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlFcnJfV2FybkV4KFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJDZW50dXJ5IGluZm8gZ3Vlc3NlZCBmb3IgYSAyLWRpZ2l0IHllYXIuIiwgMSkgIT0gMCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogICAgIHAtPnRtX3llYXIgPSB5IC0gMTkwMDsKICAgICBwLT50bV9tb24tLTsKICAgICBwLT50bV93ZGF5ID0gKHAtPnRtX3dkYXkgKyAxKSAlIDc7CiAgICAgcC0+dG1feWRheS0tOworI2lmZGVmIEhBVkVfU1RSVUNUX1RNX1RNX1pPTkUKKyAgICBpZiAoUHlfVFlQRShhcmdzKSA9PSAmU3RydWN0VGltZVR5cGUpIHsKKyAgICAgICAgUHlPYmplY3QgKml0ZW07CisgICAgICAgIGl0ZW0gPSBQeVR1cGxlX0dFVF9JVEVNKGFyZ3MsIDkpOworICAgICAgICBwLT50bV96b25lID0gaXRlbSA9PSBQeV9Ob25lID8gTlVMTCA6IF9QeVVuaWNvZGVfQXNTdHJpbmcoaXRlbSk7CisgICAgICAgIGl0ZW0gPSBQeVR1cGxlX0dFVF9JVEVNKGFyZ3MsIDEwKTsKKyAgICAgICAgcC0+dG1fZ210b2ZmID0gaXRlbSA9PSBQeV9Ob25lID8gMCA6IFB5TG9uZ19Bc0xvbmcoaXRlbSk7CisgICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgfQorI2VuZGlmIC8qIEhBVkVfU1RSVUNUX1RNX1RNX1pPTkUgKi8KICAgICByZXR1cm4gMTsKIH0KIApAQCAtNDcwLDcgKzU3OCw4IEBACiAKICAgICBpZiAodHVwID09IE5VTEwpIHsKICAgICAgICAgdGltZV90IHR0ID0gdGltZShOVUxMKTsKLSAgICAgICAgYnVmID0gKmxvY2FsdGltZSgmdHQpOworICAgICAgICBpZiAocHlsb2NhbHRpbWUoJnR0LCAmYnVmKSA9PSAtMSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBlbHNlIGlmICghZ2V0dG1hcmcodHVwLCAmYnVmKSB8fCAhY2hlY2t0bSgmYnVmKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC00OTgsNyArNjA3LDcgQEAKICAgICBmbXQgPSBmb3JtYXQ7CiAjZWxzZQogICAgIC8qIENvbnZlcnQgdGhlIHVuaWNvZGUgc3RyaW5nIHRvIGFuIGFzY2lpIG9uZSAqLwotICAgIGZvcm1hdCA9IFB5VW5pY29kZV9FbmNvZGVGU0RlZmF1bHQoZm9ybWF0X2FyZyk7CisgICAgZm9ybWF0ID0gUHlVbmljb2RlX0VuY29kZUxvY2FsZShmb3JtYXRfYXJnLCAic3Vycm9nYXRlZXNjYXBlIik7CiAgICAgaWYgKGZvcm1hdCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBmbXQgPSBQeUJ5dGVzX0FTX1NUUklORyhmb3JtYXQpOwpAQCAtNTQ5LDcgKzY1OCw4IEBACiAjaWZkZWYgSEFWRV9XQ1NGVElNRQogICAgICAgICAgICAgcmV0ID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcihvdXRidWYsIGJ1Zmxlbik7CiAjZWxzZQotICAgICAgICAgICAgcmV0ID0gUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdEFuZFNpemUob3V0YnVmLCBidWZsZW4pOworICAgICAgICAgICAgcmV0ID0gUHlVbmljb2RlX0RlY29kZUxvY2FsZUFuZFNpemUob3V0YnVmLCBidWZsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vycm9nYXRlZXNjYXBlIik7CiAjZW5kaWYKICAgICAgICAgICAgIFB5TWVtX0ZyZWUob3V0YnVmKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTg3LDExICs2OTcsMTIgQEAKIHsKICAgICBQeU9iamVjdCAqc3RycHRpbWVfbW9kdWxlID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlTm9CbG9jaygiX3N0cnB0aW1lIik7CiAgICAgUHlPYmplY3QgKnN0cnB0aW1lX3Jlc3VsdDsKKyAgICBfUHlfSURFTlRJRklFUihfc3RycHRpbWVfdGltZSk7CiAKICAgICBpZiAoIXN0cnB0aW1lX21vZHVsZSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgc3RycHRpbWVfcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChzdHJwdGltZV9tb2R1bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfc3RycHRpbWVfdGltZSIsICJPIiwgYXJncyk7CisgICAgc3RycHRpbWVfcmVzdWx0ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChzdHJwdGltZV9tb2R1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlJZF9fc3RycHRpbWVfdGltZSwgIk8iLCBhcmdzKTsKICAgICBQeV9ERUNSRUYoc3RycHRpbWVfbW9kdWxlKTsKICAgICByZXR1cm4gc3RycHRpbWVfcmVzdWx0OwogfQpAQCAtNjA4LDMxICs3MTksMjAgQEAKIHsKICAgICAvKiBJbnNwaXJlZCBieSBPcGVuIEdyb3VwIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBhdmFpbGFibGUgYXQKICAgICAgKiBodHRwOi8vcHVicy5vcGVuZ3JvdXAub3JnL29ubGluZXB1YnMvMDA5Njk1Mzk5L2Z1bmN0aW9ucy9hc2N0aW1lLmh0bWwgKi8KLSAgICBzdGF0aWMgY2hhciB3ZGF5X25hbWVbN11bM10gPSB7CisgICAgc3RhdGljIGNoYXIgd2RheV9uYW1lWzddWzRdID0gewogICAgICAgICAiU3VuIiwgIk1vbiIsICJUdWUiLCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0IgogICAgIH07Ci0gICAgc3RhdGljIGNoYXIgbW9uX25hbWVbMTJdWzNdID0geworICAgIHN0YXRpYyBjaGFyIG1vbl9uYW1lWzEyXVs0XSA9IHsKICAgICAgICAgIkphbiIsICJGZWIiLCAiTWFyIiwgIkFwciIsICJNYXkiLCAiSnVuIiwKICAgICAgICAgIkp1bCIsICJBdWciLCAiU2VwIiwgIk9jdCIsICJOb3YiLCAiRGVjIgogICAgIH07Ci0gICAgY2hhciBidWZbMjBdOyAvKiAnU3VuIFNlcCAxNiAwMTowMzo1MlwwJyAqLwotICAgIGludCBuOwotCi0gICAgbiA9IFB5T1Nfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwgIiUuM3MgJS4zcyUzZCAlLjJkOiUuMmQ6JS4yZCIsCi0gICAgICAgICAgICAgICAgICAgICAgd2RheV9uYW1lW3RpbWVwdHItPnRtX3dkYXldLAotICAgICAgICAgICAgICAgICAgICAgIG1vbl9uYW1lW3RpbWVwdHItPnRtX21vbl0sCi0gICAgICAgICAgICAgICAgICAgICAgdGltZXB0ci0+dG1fbWRheSwgdGltZXB0ci0+dG1faG91ciwKLSAgICAgICAgICAgICAgICAgICAgICB0aW1lcHRyLT50bV9taW4sIHRpbWVwdHItPnRtX3NlYyk7Ci0gICAgLyogWFhYOiBzaW5jZSB0aGUgZmllbGRzIHVzZWQgYnkgc25wcmludGYgYWJvdmUgYXJlIHZhbGlkYXRlZCBpbiBjaGVja3RtLAotICAgICAqIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uIHNob3VsZCBuZXZlciB0cmlnZ2VyLiBXZSBrZWVwIHRoZSBjaGVjayBiZWNhdXNlCi0gICAgICogaGlzdG9yaWNhbGx5IGZpeGVkIHNpemUgYnVmZmVyIHVzZWQgaW4gYXNjdGltZSB3YXMgdGhlIHNvdXJjZSBvZgotICAgICAqIGNyYXNoZXMuICovCi0gICAgaWYgKG4gKyAxICE9IHNpemVvZihidWYpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAidW5jb252ZXJ0aWJsZSB0aW1lIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJXMgJWQiLCBidWYsIDE5MDAgKyB0aW1lcHRyLT50bV95ZWFyKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoCisgICAgICAgICIlcyAlcyUzZCAlLjJkOiUuMmQ6JS4yZCAlZCIsCisgICAgICAgIHdkYXlfbmFtZVt0aW1lcHRyLT50bV93ZGF5XSwKKyAgICAgICAgbW9uX25hbWVbdGltZXB0ci0+dG1fbW9uXSwKKyAgICAgICAgdGltZXB0ci0+dG1fbWRheSwgdGltZXB0ci0+dG1faG91ciwKKyAgICAgICAgdGltZXB0ci0+dG1fbWluLCB0aW1lcHRyLT50bV9zZWMsCisgICAgICAgIDE5MDAgKyB0aW1lcHRyLT50bV95ZWFyKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTY0NSw3ICs3NDUsOSBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAodHVwID09IE5VTEwpIHsKICAgICAgICAgdGltZV90IHR0ID0gdGltZShOVUxMKTsKLSAgICAgICAgYnVmID0gKmxvY2FsdGltZSgmdHQpOworICAgICAgICBpZiAocHlsb2NhbHRpbWUoJnR0LCAmYnVmKSA9PSAtMSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgfSBlbHNlIGlmICghZ2V0dG1hcmcodHVwLCAmYnVmKSB8fCAhY2hlY2t0bSgmYnVmKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgcmV0dXJuIF9hc2N0aW1lKCZidWYpOwpAQCAtNjYxLDI4ICs3NjMsMTMgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiB0aW1lX2N0aW1lKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeU9iamVjdCAqb3QgPSBOVUxMOwogICAgIHRpbWVfdCB0dDsKLSAgICBzdHJ1Y3QgdG0gKnRpbWVwdHI7Ci0KLSAgICBpZiAoIVB5QXJnX1VucGFja1R1cGxlKGFyZ3MsICJjdGltZSIsIDAsIDEsICZvdCkpCisgICAgc3RydWN0IHRtIGJ1ZjsKKyAgICBpZiAoIXBhcnNlX3RpbWVfdF9hcmdzKGFyZ3MsICJ8TzpjdGltZSIsICZ0dCkpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmIChvdCA9PSBOVUxMIHx8IG90ID09IFB5X05vbmUpCi0gICAgICAgIHR0ID0gdGltZShOVUxMKTsKLSAgICBlbHNlIHsKLSAgICAgICAgZG91YmxlIGR0ID0gUHlGbG9hdF9Bc0RvdWJsZShvdCk7Ci0gICAgICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIHR0ID0gX1B5VGltZV9Eb3VibGVUb1RpbWV0KGR0KTsKLSAgICAgICAgaWYgKHR0ID09ICh0aW1lX3QpLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICB0aW1lcHRyID0gbG9jYWx0aW1lKCZ0dCk7Ci0gICAgaWYgKHRpbWVwdHIgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgInVuY29udmVydGlibGUgdGltZSIpOworICAgIGlmIChweWxvY2FsdGltZSgmdHQsICZidWYpID09IC0xKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIF9hc2N0aW1lKHRpbWVwdHIpOworICAgIHJldHVybiBfYXNjdGltZSgmYnVmKTsKIH0KIAogUHlEb2NfU1RSVkFSKGN0aW1lX2RvYywKQEAgLTcxNSw3ICs4MDIsMTAgQEAKIFB5RG9jX1NUUlZBUihta3RpbWVfZG9jLAogIm1rdGltZSh0dXBsZSkgLT4gZmxvYXRpbmcgcG9pbnQgbnVtYmVyXG5cCiBcblwKLUNvbnZlcnQgYSB0aW1lIHR1cGxlIGluIGxvY2FsIHRpbWUgdG8gc2Vjb25kcyBzaW5jZSB0aGUgRXBvY2guIik7CitDb252ZXJ0IGEgdGltZSB0dXBsZSBpbiBsb2NhbCB0aW1lIHRvIHNlY29uZHMgc2luY2UgdGhlIEVwb2NoLlxuXAorTm90ZSB0aGF0IG1rdGltZShnbXRpbWUoMCkpIHdpbGwgbm90IGdlbmVyYWxseSByZXR1cm4gemVybyBmb3IgbW9zdFxuXAordGltZSB6b25lczsgaW5zdGVhZCB0aGUgcmV0dXJuZWQgdmFsdWUgd2lsbCBlaXRoZXIgYmUgZXF1YWwgdG8gdGhhdFxuXAorb2YgdGhlIHRpbWV6b25lIG9yIGFsdHpvbmUgYXR0cmlidXRlcyBvbiB0aGUgdGltZSBtb2R1bGUuIik7CiAjZW5kaWYgLyogSEFWRV9NS1RJTUUgKi8KIAogI2lmZGVmIEhBVkVfV09SS0lOR19UWlNFVApAQCAtNzU1LDYgKzg0NSw0MDIgQEAKIHNob3VsZCBub3QgYmUgcmVsaWVkIG9uLiIpOwogI2VuZGlmIC8qIEhBVkVfV09SS0lOR19UWlNFVCAqLwogCisjaWYgZGVmaW5lZChNU19XSU5ET1dTKSB8fCBkZWZpbmVkKF9fQVBQTEVfXykgXAorICAgIHx8IChkZWZpbmVkKEhBVkVfQ0xPQ0tfR0VUVElNRSkgXAorICAgICAgICAmJiAoZGVmaW5lZChDTE9DS19ISUdIUkVTKSB8fCBkZWZpbmVkKENMT0NLX01PTk9UT05JQykpKQorI2RlZmluZSBQWU1PTk9UT05JQworI2VuZGlmCisKKyNpZmRlZiBQWU1PTk9UT05JQworc3RhdGljIFB5T2JqZWN0KgorcHltb25vdG9uaWMoX1B5X2Nsb2NrX2luZm9fdCAqaW5mbykKK3sKKyNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpCisgICAgc3RhdGljIFVMT05HTE9ORyAoKkdldFRpY2tDb3VudDY0KSAodm9pZCkgPSBOVUxMOworICAgIHN0YXRpYyBVTE9OR0xPTkcgKENBTExCQUNLICpQeV9HZXRUaWNrQ291bnQ2NCkodm9pZCk7CisgICAgc3RhdGljIGludCBoYXNfZ2V0aWNrY291bnQ2NCA9IC0xOworICAgIGRvdWJsZSByZXN1bHQ7CisKKyAgICBpZiAoaGFzX2dldGlja2NvdW50NjQgPT0gLTEpIHsKKyAgICAgICAgLyogR2V0VGlja0NvdW50NjQoKSB3YXMgYWRkZWQgdG8gV2luZG93cyBWaXN0YSAqLworICAgICAgICBpZiAod2ludmVyLmR3TWFqb3JWZXJzaW9uID49IDYpIHsKKyAgICAgICAgICAgIEhJTlNUQU5DRSBoS2VybmVsMzI7CisgICAgICAgICAgICBoS2VybmVsMzIgPSBHZXRNb2R1bGVIYW5kbGVXKEwiS0VSTkVMMzIiKTsKKyAgICAgICAgICAgICooRkFSUFJPQyopJlB5X0dldFRpY2tDb3VudDY0ID0gR2V0UHJvY0FkZHJlc3MoaEtlcm5lbDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiR2V0VGlja0NvdW50NjQiKTsKKyAgICAgICAgICAgIGhhc19nZXRpY2tjb3VudDY0ID0gKFB5X0dldFRpY2tDb3VudDY0ICE9IE5VTEwpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGhhc19nZXRpY2tjb3VudDY0ID0gMDsKKyAgICB9CisKKyAgICBpZiAoaGFzX2dldGlja2NvdW50NjQpIHsKKyAgICAgICAgVUxPTkdMT05HIHRpY2tzOworICAgICAgICB0aWNrcyA9IFB5X0dldFRpY2tDb3VudDY0KCk7CisgICAgICAgIHJlc3VsdCA9IChkb3VibGUpdGlja3MgKiAxZS0zOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgc3RhdGljIERXT1JEIGxhc3RfdGlja3MgPSAwOworICAgICAgICBzdGF0aWMgRFdPUkQgbl9vdmVyZmxvdyA9IDA7CisgICAgICAgIERXT1JEIHRpY2tzOworCisgICAgICAgIHRpY2tzID0gR2V0VGlja0NvdW50KCk7CisgICAgICAgIGlmICh0aWNrcyA8IGxhc3RfdGlja3MpCisgICAgICAgICAgICBuX292ZXJmbG93Kys7CisgICAgICAgIGxhc3RfdGlja3MgPSB0aWNrczsKKworICAgICAgICByZXN1bHQgPSBsZGV4cChuX292ZXJmbG93LCAzMik7CisgICAgICAgIHJlc3VsdCArPSB0aWNrczsKKyAgICAgICAgcmVzdWx0ICo9IDFlLTM7CisgICAgfQorCisgICAgaWYgKGluZm8pIHsKKyAgICAgICAgRFdPUkQgdGltZUFkanVzdG1lbnQsIHRpbWVJbmNyZW1lbnQ7CisgICAgICAgIEJPT0wgaXNUaW1lQWRqdXN0bWVudERpc2FibGVkLCBvazsKKyAgICAgICAgaWYgKGhhc19nZXRpY2tjb3VudDY0KQorICAgICAgICAgICAgaW5mby0+aW1wbGVtZW50YXRpb24gPSAiR2V0VGlja0NvdW50NjQoKSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGluZm8tPmltcGxlbWVudGF0aW9uID0gIkdldFRpY2tDb3VudCgpIjsKKyAgICAgICAgaW5mby0+bW9ub3RvbmljID0gMTsKKyAgICAgICAgb2sgPSBHZXRTeXN0ZW1UaW1lQWRqdXN0bWVudCgmdGltZUFkanVzdG1lbnQsICZ0aW1lSW5jcmVtZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpc1RpbWVBZGp1c3RtZW50RGlzYWJsZWQpOworICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIGluZm8tPnJlc29sdXRpb24gPSB0aW1lSW5jcmVtZW50ICogMWUtNzsKKyAgICAgICAgaW5mby0+YWRqdXN0YWJsZSA9IDA7CisgICAgfQorICAgIHJldHVybiBQeUZsb2F0X0Zyb21Eb3VibGUocmVzdWx0KTsKKworI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisgICAgc3RhdGljIG1hY2hfdGltZWJhc2VfaW5mb19kYXRhX3QgdGltZWJhc2U7CisgICAgdWludDY0X3QgdGltZTsKKyAgICBkb3VibGUgc2VjczsKKworICAgIGlmICh0aW1lYmFzZS5kZW5vbSA9PSAwKSB7CisgICAgICAgIC8qIEFjY29yZGluZyB0byB0aGUgVGVjaG5pY2FsIFEmQSBRQTEzOTgsIG1hY2hfdGltZWJhc2VfaW5mbygpIGNhbm5vdAorICAgICAgICAgICBmYWlsOiBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9tYWMvI3FhL3FhMTM5OC8gKi8KKyAgICAgICAgKHZvaWQpbWFjaF90aW1lYmFzZV9pbmZvKCZ0aW1lYmFzZSk7CisgICAgfQorCisgICAgdGltZSA9IG1hY2hfYWJzb2x1dGVfdGltZSgpOworICAgIHNlY3MgPSAoZG91YmxlKXRpbWUgKiB0aW1lYmFzZS5udW1lciAvIHRpbWViYXNlLmRlbm9tICogMWUtOTsKKyAgICBpZiAoaW5mbykgeworICAgICAgICBpbmZvLT5pbXBsZW1lbnRhdGlvbiA9ICJtYWNoX2Fic29sdXRlX3RpbWUoKSI7CisgICAgICAgIGluZm8tPnJlc29sdXRpb24gPSAoZG91YmxlKXRpbWViYXNlLm51bWVyIC8gdGltZWJhc2UuZGVub20gKiAxZS05OworICAgICAgICBpbmZvLT5tb25vdG9uaWMgPSAxOworICAgICAgICBpbmZvLT5hZGp1c3RhYmxlID0gMDsKKyAgICB9CisgICAgcmV0dXJuIFB5RmxvYXRfRnJvbURvdWJsZShzZWNzKTsKKworI2VsaWYgZGVmaW5lZChIQVZFX0NMT0NLX0dFVFRJTUUpICYmIChkZWZpbmVkKENMT0NLX0hJR0hSRVMpIHx8IGRlZmluZWQoQ0xPQ0tfTU9OT1RPTklDKSkKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHA7CisjaWZkZWYgQ0xPQ0tfSElHSFJFUworICAgIGNvbnN0IGNsb2NraWRfdCBjbGtfaWQgPSBDTE9DS19ISUdIUkVTOworICAgIGNvbnN0IGNoYXIgKmZ1bmN0aW9uID0gImNsb2NrX2dldHRpbWUoQ0xPQ0tfSElHSFJFUykiOworI2Vsc2UKKyAgICBjb25zdCBjbG9ja2lkX3QgY2xrX2lkID0gQ0xPQ0tfTU9OT1RPTklDOworICAgIGNvbnN0IGNoYXIgKmZ1bmN0aW9uID0gImNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDKSI7CisjZW5kaWYKKworICAgIGlmIChjbG9ja19nZXR0aW1lKGNsa19pZCwgJnRwKSAhPSAwKSB7CisgICAgICAgIFB5RXJyX1NldEZyb21FcnJubyhQeUV4Y19PU0Vycm9yKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKGluZm8pIHsKKyAgICAgICAgc3RydWN0IHRpbWVzcGVjIHJlczsKKyAgICAgICAgaW5mby0+bW9ub3RvbmljID0gMTsKKyAgICAgICAgaW5mby0+aW1wbGVtZW50YXRpb24gPSBmdW5jdGlvbjsKKyAgICAgICAgaW5mby0+YWRqdXN0YWJsZSA9IDA7CisgICAgICAgIGlmIChjbG9ja19nZXRyZXMoY2xrX2lkLCAmcmVzKSA9PSAwKQorICAgICAgICAgICAgaW5mby0+cmVzb2x1dGlvbiA9IHJlcy50dl9zZWMgKyByZXMudHZfbnNlYyAqIDFlLTk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGluZm8tPnJlc29sdXRpb24gPSAxZS05OworICAgIH0KKyAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKHRwLnR2X3NlYyArIHRwLnR2X25zZWMgKiAxZS05KTsKKyNlbmRpZgorfQorCitzdGF0aWMgUHlPYmplY3QgKgordGltZV9tb25vdG9uaWMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp1bnVzZWQpCit7CisgICAgcmV0dXJuIHB5bW9ub3RvbmljKE5VTEwpOworfQorCitQeURvY19TVFJWQVIobW9ub3RvbmljX2RvYywKKyJtb25vdG9uaWMoKSAtPiBmbG9hdFxuXAorXG5cCitNb25vdG9uaWMgY2xvY2ssIGNhbm5vdCBnbyBiYWNrd2FyZC4iKTsKKyNlbmRpZiAgIC8qIFBZTU9OT1RPTklDICovCisKK3N0YXRpYyBQeU9iamVjdCoKK3BlcmZfY291bnRlcihfUHlfY2xvY2tfaW5mb190ICppbmZvKQoreworI2lmIGRlZmluZWQoV0lOMzJfUEVSRl9DT1VOVEVSKSB8fCBkZWZpbmVkKFBZTU9OT1RPTklDKQorICAgIFB5T2JqZWN0ICpyZXM7CisjZW5kaWYKKyNpZiBkZWZpbmVkKFdJTjMyX1BFUkZfQ09VTlRFUikKKyAgICBzdGF0aWMgaW50IHVzZV9wZXJmX2NvdW50ZXIgPSAxOworI2VuZGlmCisjaWZkZWYgUFlNT05PVE9OSUMKKyAgICBzdGF0aWMgaW50IHVzZV9tb25vdG9uaWMgPSAxOworI2VuZGlmCisKKyNpZmRlZiBXSU4zMl9QRVJGX0NPVU5URVIKKyAgICBpZiAodXNlX3BlcmZfY291bnRlcikgeworICAgICAgICBpZiAod2luX3BlcmZfY291bnRlcihpbmZvLCAmcmVzKSA9PSAwKQorICAgICAgICAgICAgcmV0dXJuIHJlczsKKyAgICAgICAgdXNlX3BlcmZfY291bnRlciA9IDA7CisgICAgfQorI2VuZGlmCisKKyNpZmRlZiBQWU1PTk9UT05JQworICAgIGlmICh1c2VfbW9ub3RvbmljKSB7CisgICAgICAgIHJlcyA9IHB5bW9ub3RvbmljKGluZm8pOworICAgICAgICBpZiAocmVzICE9IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gcmVzOworICAgICAgICB1c2VfbW9ub3RvbmljID0gMDsKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiBmbG9hdHRpbWUoaW5mbyk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit0aW1lX3BlcmZfY291bnRlcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnVudXNlZCkKK3sKKyAgICByZXR1cm4gcGVyZl9jb3VudGVyKE5VTEwpOworfQorCitQeURvY19TVFJWQVIocGVyZl9jb3VudGVyX2RvYywKKyJwZXJmX2NvdW50ZXIoKSAtPiBmbG9hdFxuXAorXG5cCitQZXJmb3JtYW5jZSBjb3VudGVyIGZvciBiZW5jaG1hcmtpbmcuIik7CisKK3N0YXRpYyBQeU9iamVjdCoKK3B5X3Byb2Nlc3NfdGltZShfUHlfY2xvY2tfaW5mb190ICppbmZvKQoreworI2lmIGRlZmluZWQoTVNfV0lORE9XUykKKyAgICBIQU5ETEUgcHJvY2VzczsKKyAgICBGSUxFVElNRSBjcmVhdGlvbl90aW1lLCBleGl0X3RpbWUsIGtlcm5lbF90aW1lLCB1c2VyX3RpbWU7CisgICAgVUxBUkdFX0lOVEVHRVIgbGFyZ2U7CisgICAgZG91YmxlIHRvdGFsOworICAgIEJPT0wgb2s7CisKKyAgICBwcm9jZXNzID0gR2V0Q3VycmVudFByb2Nlc3MoKTsKKyAgICBvayA9IEdldFByb2Nlc3NUaW1lcyhwcm9jZXNzLCAmY3JlYXRpb25fdGltZSwgJmV4aXRfdGltZSwgJmtlcm5lbF90aW1lLCAmdXNlcl90aW1lKTsKKyAgICBpZiAoIW9rKQorICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7CisKKyAgICBsYXJnZS51Lkxvd1BhcnQgPSBrZXJuZWxfdGltZS5kd0xvd0RhdGVUaW1lOworICAgIGxhcmdlLnUuSGlnaFBhcnQgPSBrZXJuZWxfdGltZS5kd0hpZ2hEYXRlVGltZTsKKyAgICB0b3RhbCA9IChkb3VibGUpbGFyZ2UuUXVhZFBhcnQ7CisgICAgbGFyZ2UudS5Mb3dQYXJ0ID0gdXNlcl90aW1lLmR3TG93RGF0ZVRpbWU7CisgICAgbGFyZ2UudS5IaWdoUGFydCA9IHVzZXJfdGltZS5kd0hpZ2hEYXRlVGltZTsKKyAgICB0b3RhbCArPSAoZG91YmxlKWxhcmdlLlF1YWRQYXJ0OworICAgIGlmIChpbmZvKSB7CisgICAgICAgIGluZm8tPmltcGxlbWVudGF0aW9uID0gIkdldFByb2Nlc3NUaW1lcygpIjsKKyAgICAgICAgaW5mby0+cmVzb2x1dGlvbiA9IDFlLTc7CisgICAgICAgIGluZm8tPm1vbm90b25pYyA9IDE7CisgICAgICAgIGluZm8tPmFkanVzdGFibGUgPSAwOworICAgIH0KKyAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKHRvdGFsICogMWUtNyk7CisjZWxzZQorCisjaWYgZGVmaW5lZChIQVZFX1NZU19SRVNPVVJDRV9IKQorICAgIHN0cnVjdCBydXNhZ2UgcnU7CisjZW5kaWYKKyNpZmRlZiBIQVZFX1RJTUVTCisgICAgc3RydWN0IHRtcyB0OworICAgIHN0YXRpYyBsb25nIHRpY2tzX3Blcl9zZWNvbmQgPSAtMTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZChIQVZFX0NMT0NLX0dFVFRJTUUpIFwKKyAgICAmJiAoZGVmaW5lZChDTE9DS19QUk9DRVNTX0NQVVRJTUVfSUQpIHx8IGRlZmluZWQoQ0xPQ0tfUFJPRikpCisgICAgc3RydWN0IHRpbWVzcGVjIHRwOworI2lmZGVmIENMT0NLX1BST0YKKyAgICBjb25zdCBjbG9ja2lkX3QgY2xrX2lkID0gQ0xPQ0tfUFJPRjsKKyAgICBjb25zdCBjaGFyICpmdW5jdGlvbiA9ICJjbG9ja19nZXR0aW1lKENMT0NLX1BST0YpIjsKKyNlbHNlCisgICAgY29uc3QgY2xvY2tpZF90IGNsa19pZCA9IENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRDsKKyAgICBjb25zdCBjaGFyICpmdW5jdGlvbiA9ICJjbG9ja19nZXR0aW1lKENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRCkiOworI2VuZGlmCisKKyAgICBpZiAoY2xvY2tfZ2V0dGltZShjbGtfaWQsICZ0cCkgPT0gMCkgeworICAgICAgICBpZiAoaW5mbykgeworICAgICAgICAgICAgc3RydWN0IHRpbWVzcGVjIHJlczsKKyAgICAgICAgICAgIGluZm8tPmltcGxlbWVudGF0aW9uID0gZnVuY3Rpb247CisgICAgICAgICAgICBpbmZvLT5tb25vdG9uaWMgPSAxOworICAgICAgICAgICAgaW5mby0+YWRqdXN0YWJsZSA9IDA7CisgICAgICAgICAgICBpZiAoY2xvY2tfZ2V0cmVzKGNsa19pZCwgJnJlcykgPT0gMCkKKyAgICAgICAgICAgICAgICBpbmZvLT5yZXNvbHV0aW9uID0gcmVzLnR2X3NlYyArIHJlcy50dl9uc2VjICogMWUtOTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpbmZvLT5yZXNvbHV0aW9uID0gMWUtOTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKHRwLnR2X3NlYyArIHRwLnR2X25zZWMgKiAxZS05KTsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoSEFWRV9TWVNfUkVTT1VSQ0VfSCkKKyAgICBpZiAoZ2V0cnVzYWdlKFJVU0FHRV9TRUxGLCAmcnUpID09IDApIHsKKyAgICAgICAgZG91YmxlIHRvdGFsOworICAgICAgICB0b3RhbCA9IHJ1LnJ1X3V0aW1lLnR2X3NlYyArIHJ1LnJ1X3V0aW1lLnR2X3VzZWMgKiAxZS02OworICAgICAgICB0b3RhbCArPSBydS5ydV9zdGltZS50dl9zZWMgKyBydS5ydV9zdGltZS50dl91c2VjICogMWUtNjsKKyAgICAgICAgaWYgKGluZm8pIHsKKyAgICAgICAgICAgIGluZm8tPmltcGxlbWVudGF0aW9uID0gImdldHJ1c2FnZShSVVNBR0VfU0VMRikiOworICAgICAgICAgICAgaW5mby0+bW9ub3RvbmljID0gMTsKKyAgICAgICAgICAgIGluZm8tPmFkanVzdGFibGUgPSAwOworICAgICAgICAgICAgaW5mby0+cmVzb2x1dGlvbiA9IDFlLTY7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFB5RmxvYXRfRnJvbURvdWJsZSh0b3RhbCk7CisgICAgfQorI2VuZGlmCisKKyNpZmRlZiBIQVZFX1RJTUVTCisgICAgaWYgKHRpbWVzKCZ0KSAhPSAoY2xvY2tfdCktMSkgeworICAgICAgICBkb3VibGUgdG90YWw7CisKKyAgICAgICAgaWYgKHRpY2tzX3Blcl9zZWNvbmQgPT0gLTEpIHsKKyNpZiBkZWZpbmVkKEhBVkVfU1lTQ09ORikgJiYgZGVmaW5lZChfU0NfQ0xLX1RDSykKKyAgICAgICAgICAgIHRpY2tzX3Blcl9zZWNvbmQgPSBzeXNjb25mKF9TQ19DTEtfVENLKTsKKyAgICAgICAgICAgIGlmICh0aWNrc19wZXJfc2Vjb25kIDwgMSkKKyAgICAgICAgICAgICAgICB0aWNrc19wZXJfc2Vjb25kID0gLTE7CisjZWxpZiBkZWZpbmVkKEhaKQorICAgICAgICAgICAgdGlja3NfcGVyX3NlY29uZCA9IEhaOworI2Vsc2UKKyAgICAgICAgICAgIHRpY2tzX3Blcl9zZWNvbmQgPSA2MDsgLyogbWFnaWMgZmFsbGJhY2sgdmFsdWU7IG1heSBiZSBib2d1cyAqLworI2VuZGlmCisgICAgICAgIH0KKworICAgICAgICBpZiAodGlja3NfcGVyX3NlY29uZCAhPSAtMSkgeworICAgICAgICAgICAgdG90YWwgPSAoZG91YmxlKXQudG1zX3V0aW1lIC8gdGlja3NfcGVyX3NlY29uZDsKKyAgICAgICAgICAgIHRvdGFsICs9IChkb3VibGUpdC50bXNfc3RpbWUgLyB0aWNrc19wZXJfc2Vjb25kOworICAgICAgICAgICAgaWYgKGluZm8pIHsKKyAgICAgICAgICAgICAgICBpbmZvLT5pbXBsZW1lbnRhdGlvbiA9ICJ0aW1lcygpIjsKKyAgICAgICAgICAgICAgICBpbmZvLT5tb25vdG9uaWMgPSAxOworICAgICAgICAgICAgICAgIGluZm8tPmFkanVzdGFibGUgPSAwOworICAgICAgICAgICAgICAgIGluZm8tPnJlc29sdXRpb24gPSAxLjAgLyB0aWNrc19wZXJfc2Vjb25kOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIFB5RmxvYXRfRnJvbURvdWJsZSh0b3RhbCk7CisgICAgICAgIH0KKyAgICB9CisjZW5kaWYKKworICAgIHJldHVybiBmbG9hdGNsb2NrKGluZm8pOworI2VuZGlmCit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit0aW1lX3Byb2Nlc3NfdGltZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnVudXNlZCkKK3sKKyAgICByZXR1cm4gcHlfcHJvY2Vzc190aW1lKE5VTEwpOworfQorCitQeURvY19TVFJWQVIocHJvY2Vzc190aW1lX2RvYywKKyJwcm9jZXNzX3RpbWUoKSAtPiBmbG9hdFxuXAorXG5cCitQcm9jZXNzIHRpbWUgZm9yIHByb2ZpbGluZzogc3VtIG9mIHRoZSBrZXJuZWwgYW5kIHVzZXItc3BhY2UgQ1BVIHRpbWUuIik7CisKKworc3RhdGljIFB5T2JqZWN0ICoKK3RpbWVfZ2V0X2Nsb2NrX2luZm8oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIGNoYXIgKm5hbWU7CisgICAgX1B5X2Nsb2NrX2luZm9fdCBpbmZvOworICAgIFB5T2JqZWN0ICpvYmogPSBOVUxMLCAqZGljdCwgKm5zOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzOmdldF9jbG9ja19pbmZvIiwgJm5hbWUpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworI2lmZGVmIFB5X0RFQlVHCisgICAgaW5mby5pbXBsZW1lbnRhdGlvbiA9IE5VTEw7CisgICAgaW5mby5tb25vdG9uaWMgPSAtMTsKKyAgICBpbmZvLmFkanVzdGFibGUgPSAtMTsKKyAgICBpbmZvLnJlc29sdXRpb24gPSAtMS4wOworI2Vsc2UKKyAgICBpbmZvLmltcGxlbWVudGF0aW9uID0gIiI7CisgICAgaW5mby5tb25vdG9uaWMgPSAwOworICAgIGluZm8uYWRqdXN0YWJsZSA9IDA7CisgICAgaW5mby5yZXNvbHV0aW9uID0gMS4wOworI2VuZGlmCisKKyAgICBpZiAoc3RyY21wKG5hbWUsICJ0aW1lIikgPT0gMCkKKyAgICAgICAgb2JqID0gZmxvYXR0aW1lKCZpbmZvKTsKKyNpZmRlZiBQWUNMT0NLCisgICAgZWxzZSBpZiAoc3RyY21wKG5hbWUsICJjbG9jayIpID09IDApCisgICAgICAgIG9iaiA9IHB5Y2xvY2soJmluZm8pOworI2VuZGlmCisjaWZkZWYgUFlNT05PVE9OSUMKKyAgICBlbHNlIGlmIChzdHJjbXAobmFtZSwgIm1vbm90b25pYyIpID09IDApCisgICAgICAgIG9iaiA9IHB5bW9ub3RvbmljKCZpbmZvKTsKKyNlbmRpZgorICAgIGVsc2UgaWYgKHN0cmNtcChuYW1lLCAicGVyZl9jb3VudGVyIikgPT0gMCkKKyAgICAgICAgb2JqID0gcGVyZl9jb3VudGVyKCZpbmZvKTsKKyAgICBlbHNlIGlmIChzdHJjbXAobmFtZSwgInByb2Nlc3NfdGltZSIpID09IDApCisgICAgICAgIG9iaiA9IHB5X3Byb2Nlc3NfdGltZSgmaW5mbyk7CisgICAgZWxzZSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAidW5rbm93biBjbG9jayIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKG9iaiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9ERUNSRUYob2JqKTsKKworICAgIGRpY3QgPSBQeURpY3RfTmV3KCk7CisgICAgaWYgKGRpY3QgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBhc3NlcnQoaW5mby5pbXBsZW1lbnRhdGlvbiAhPSBOVUxMKTsKKyAgICBvYmogPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhpbmZvLmltcGxlbWVudGF0aW9uKTsKKyAgICBpZiAob2JqID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGRpY3QsICJpbXBsZW1lbnRhdGlvbiIsIG9iaikgPT0gLTEpCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgUHlfQ0xFQVIob2JqKTsKKworICAgIGFzc2VydChpbmZvLm1vbm90b25pYyAhPSAtMSk7CisgICAgb2JqID0gUHlCb29sX0Zyb21Mb25nKGluZm8ubW9ub3RvbmljKTsKKyAgICBpZiAob2JqID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGRpY3QsICJtb25vdG9uaWMiLCBvYmopID09IC0xKQorICAgICAgICBnb3RvIGVycm9yOworICAgIFB5X0NMRUFSKG9iaik7CisKKyAgICBhc3NlcnQoaW5mby5hZGp1c3RhYmxlICE9IC0xKTsKKyAgICBvYmogPSBQeUJvb2xfRnJvbUxvbmcoaW5mby5hZGp1c3RhYmxlKTsKKyAgICBpZiAob2JqID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGRpY3QsICJhZGp1c3RhYmxlIiwgb2JqKSA9PSAtMSkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICBQeV9DTEVBUihvYmopOworCisgICAgYXNzZXJ0KGluZm8ucmVzb2x1dGlvbiA+IDAuMCk7CisgICAgYXNzZXJ0KGluZm8ucmVzb2x1dGlvbiA8PSAxLjApOworICAgIG9iaiA9IFB5RmxvYXRfRnJvbURvdWJsZShpbmZvLnJlc29sdXRpb24pOworICAgIGlmIChvYmogPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZGljdCwgInJlc29sdXRpb24iLCBvYmopID09IC0xKQorICAgICAgICBnb3RvIGVycm9yOworICAgIFB5X0NMRUFSKG9iaik7CisKKyAgICBucyA9IF9QeU5hbWVzcGFjZV9OZXcoZGljdCk7CisgICAgUHlfREVDUkVGKGRpY3QpOworICAgIHJldHVybiBuczsKKworZXJyb3I6CisgICAgUHlfREVDUkVGKGRpY3QpOworICAgIFB5X1hERUNSRUYob2JqKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworUHlEb2NfU1RSVkFSKGdldF9jbG9ja19pbmZvX2RvYywKKyJnZXRfY2xvY2tfaW5mbyhuYW1lOiBzdHIpIC0+IGRpY3RcblwKK1xuXAorR2V0IGluZm9ybWF0aW9uIG9mIHRoZSBzcGVjaWZpZWQgY2xvY2suIik7CisKIHN0YXRpYyB2b2lkCiBQeUluaXRfdGltZXpvbmUoUHlPYmplY3QgKm0pIHsKICAgICAvKiBUaGlzIGNvZGUgbW92ZWQgZnJvbSBQeUluaXRfdGltZSB3aG9sZXNhbGUgdG8gYWxsb3cgY2FsbGluZyBpdCBmcm9tCkBAIC03OTEsOCArMTI3Nyw4IEBACiAjZW5kaWYgLyogUFlPU19PUzIgKi8KICNlbmRpZgogICAgIFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJkYXlsaWdodCIsIGRheWxpZ2h0KTsKLSAgICBvdHowID0gUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdEFuZFNpemUodHpuYW1lWzBdLCBzdHJsZW4odHpuYW1lWzBdKSk7Ci0gICAgb3R6MSA9IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHRBbmRTaXplKHR6bmFtZVsxXSwgc3RybGVuKHR6bmFtZVsxXSkpOworICAgIG90ejAgPSBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKHR6bmFtZVswXSwgInN1cnJvZ2F0ZWVzY2FwZSIpOworICAgIG90ejEgPSBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKHR6bmFtZVsxXSwgInN1cnJvZ2F0ZWVzY2FwZSIpOwogICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAidHpuYW1lIiwgUHlfQnVpbGRWYWx1ZSgiKE5OKSIsIG90ejAsIG90ejEpKTsKICNlbHNlIC8qICFIQVZFX1RaTkFNRSB8fCBfX0dMSUJDX18gfHwgX19DWUdXSU5fXyovCiAjaWZkZWYgSEFWRV9TVFJVQ1RfVE1fVE1fWk9ORQpAQCAtODQzLDE0ICsxMzI5LDM4IEBACiAgICAgICAgICAgICAgICAgICAgICAgIFB5X0J1aWxkVmFsdWUoIih6eikiLCBfdHpuYW1lWzBdLCBfdHpuYW1lWzFdKSk7CiAjZW5kaWYgLyogX19DWUdXSU5fXyAqLwogI2VuZGlmIC8qICFIQVZFX1RaTkFNRSB8fCBfX0dMSUJDX18gfHwgX19DWUdXSU5fXyovCisKKyNpZiBkZWZpbmVkKEhBVkVfQ0xPQ0tfR0VUVElNRSkKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBDTE9DS19SRUFMVElNRSk7CisjaWZkZWYgQ0xPQ0tfTU9OT1RPTklDCisgICAgUHlNb2R1bGVfQWRkSW50TWFjcm8obSwgQ0xPQ0tfTU9OT1RPTklDKTsKKyNlbmRpZgorI2lmZGVmIENMT0NLX01PTk9UT05JQ19SQVcKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBDTE9DS19NT05PVE9OSUNfUkFXKTsKKyNlbmRpZgorI2lmZGVmIENMT0NLX0hJR0hSRVMKKyAgICBQeU1vZHVsZV9BZGRJbnRNYWNybyhtLCBDTE9DS19ISUdIUkVTKTsKKyNlbmRpZgorI2lmZGVmIENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRAorICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIENMT0NLX1BST0NFU1NfQ1BVVElNRV9JRCk7CisjZW5kaWYKKyNpZmRlZiBDTE9DS19USFJFQURfQ1BVVElNRV9JRAorICAgIFB5TW9kdWxlX0FkZEludE1hY3JvKG0sIENMT0NLX1RIUkVBRF9DUFVUSU1FX0lEKTsKKyNlbmRpZgorI2VuZGlmIC8qIEhBVkVfQ0xPQ0tfR0VUVElNRSAqLwogfQogCiAKIHN0YXRpYyBQeU1ldGhvZERlZiB0aW1lX21ldGhvZHNbXSA9IHsKICAgICB7InRpbWUiLCAgICAgICAgICAgIHRpbWVfdGltZSwgTUVUSF9OT0FSR1MsIHRpbWVfZG9jfSwKLSNpZmRlZiBIQVZFX0NMT0NLCisjaWZkZWYgUFlDTE9DSwogICAgIHsiY2xvY2siLCAgICAgICAgICAgdGltZV9jbG9jaywgTUVUSF9OT0FSR1MsIGNsb2NrX2RvY30sCiAjZW5kaWYKKyNpZmRlZiBIQVZFX0NMT0NLX0dFVFRJTUUKKyAgICB7ImNsb2NrX2dldHRpbWUiLCAgIHRpbWVfY2xvY2tfZ2V0dGltZSwgTUVUSF9WQVJBUkdTLCBjbG9ja19nZXR0aW1lX2RvY30sCisgICAgeyJjbG9ja19zZXR0aW1lIiwgICB0aW1lX2Nsb2NrX3NldHRpbWUsIE1FVEhfVkFSQVJHUywgY2xvY2tfc2V0dGltZV9kb2N9LAorICAgIHsiY2xvY2tfZ2V0cmVzIiwgICAgdGltZV9jbG9ja19nZXRyZXMsIE1FVEhfVkFSQVJHUywgY2xvY2tfZ2V0cmVzX2RvY30sCisjZW5kaWYKICAgICB7InNsZWVwIiwgICAgICAgICAgIHRpbWVfc2xlZXAsIE1FVEhfVkFSQVJHUywgc2xlZXBfZG9jfSwKICAgICB7ImdtdGltZSIsICAgICAgICAgIHRpbWVfZ210aW1lLCBNRVRIX1ZBUkFSR1MsIGdtdGltZV9kb2N9LAogICAgIHsibG9jYWx0aW1lIiwgICAgICAgdGltZV9sb2NhbHRpbWUsIE1FVEhfVkFSQVJHUywgbG9jYWx0aW1lX2RvY30sCkBAIC04NjYsNiArMTM3NiwxMiBAQAogI2lmZGVmIEhBVkVfV09SS0lOR19UWlNFVAogICAgIHsidHpzZXQiLCAgICAgICAgICAgdGltZV90enNldCwgTUVUSF9OT0FSR1MsIHR6c2V0X2RvY30sCiAjZW5kaWYKKyNpZmRlZiBQWU1PTk9UT05JQworICAgIHsibW9ub3RvbmljIiwgICAgICAgdGltZV9tb25vdG9uaWMsIE1FVEhfTk9BUkdTLCBtb25vdG9uaWNfZG9jfSwKKyNlbmRpZgorICAgIHsicHJvY2Vzc190aW1lIiwgICAgdGltZV9wcm9jZXNzX3RpbWUsIE1FVEhfTk9BUkdTLCBwcm9jZXNzX3RpbWVfZG9jfSwKKyAgICB7InBlcmZfY291bnRlciIsICAgIHRpbWVfcGVyZl9jb3VudGVyLCBNRVRIX05PQVJHUywgcGVyZl9jb3VudGVyX2RvY30sCisgICAgeyJnZXRfY2xvY2tfaW5mbyIsICB0aW1lX2dldF9jbG9ja19pbmZvLCBNRVRIX1ZBUkFSR1MsIGdldF9jbG9ja19pbmZvX2RvY30sCiAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KIH07CiAKQEAgLTg4MSw3ICsxMzk3LDcgQEAKIFxuXAogVGhlIG90aGVyIHJlcHJlc2VudGF0aW9uIGlzIGEgdHVwbGUgb2YgOSBpbnRlZ2VycyBnaXZpbmcgbG9jYWwgdGltZS5cblwKIFRoZSB0dXBsZSBpdGVtcyBhcmU6XG5cCi0gIHllYXIgKGZvdXIgZGlnaXRzLCBlLmcuIDE5OTgpXG5cCisgIHllYXIgKGluY2x1ZGluZyBjZW50dXJ5LCBlLmcuIDE5OTgpXG5cCiAgIG1vbnRoICgxLTEyKVxuXAogICBkYXkgKDEtMzEpXG5cCiAgIGhvdXJzICgwLTIzKVxuXApAQCAtOTMzLDQ2ICsxNDQ5LDY1IEBACiBQeUluaXRfdGltZSh2b2lkKQogewogICAgIFB5T2JqZWN0ICptOwotICAgIGNoYXIgKnA7CiAgICAgbSA9IFB5TW9kdWxlX0NyZWF0ZSgmdGltZW1vZHVsZSk7CiAgICAgaWYgKG0gPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICAvKiBBY2NlcHQgMi1kaWdpdCBkYXRlcyB1bmxlc3MgUFlUSE9OWTJLIGlzIHNldCBhbmQgbm9uLWVtcHR5ICovCi0gICAgcCA9IFB5X0dFVEVOVigiUFlUSE9OWTJLIik7Ci0gICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgImFjY2VwdDJkeWVhciIsIChsb25nKSAoIXAgfHwgISpwKSk7Ci0gICAgLyogU3F1aXJyZWwgYXdheSB0aGUgbW9kdWxlJ3MgZGljdGlvbmFyeSBmb3IgdGhlIHkyayBjaGVjayAqLwotICAgIG1vZGRpY3QgPSBQeU1vZHVsZV9HZXREaWN0KG0pOwotICAgIFB5X0lOQ1JFRihtb2RkaWN0KTsKLQogICAgIC8qIFNldCwgb3IgcmVzZXQsIG1vZHVsZSB2YXJpYWJsZXMgbGlrZSB0aW1lLnRpbWV6b25lICovCiAgICAgUHlJbml0X3RpbWV6b25lKG0pOwogCi0jaWZkZWYgTVNfV0lORE9XUwotICAgIC8qIEhlbHBlciB0byBhbGxvdyBpbnRlcnJ1cHRzIGZvciBXaW5kb3dzLgotICAgICAgIElmIEN0cmwrQyBldmVudCBkZWxpdmVyZWQgd2hpbGUgbm90IHNsZWVwaW5nCi0gICAgICAgaXQgd2lsbCBiZSBpZ25vcmVkLgotICAgICovCi0gICAgbWFpbl90aHJlYWQgPSBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KCk7Ci0gICAgaEludGVycnVwdEV2ZW50ID0gQ3JlYXRlRXZlbnQoTlVMTCwgVFJVRSwgRkFMU0UsIE5VTEwpOwotICAgIFNldENvbnNvbGVDdHJsSGFuZGxlciggUHlDdHJsSGFuZGxlciwgVFJVRSk7Ci0jZW5kaWYgLyogTVNfV0lORE9XUyAqLwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKICAgICAgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9Jbml0VHlwZSgmU3RydWN0VGltZVR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0cnVjdF90aW1lX3R5cGVfZGVzYyk7CisKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgICAgIHdpbnZlci5kd09TVmVyc2lvbkluZm9TaXplID0gc2l6ZW9mKHdpbnZlcik7CisgICAgICAgIGlmICghR2V0VmVyc2lvbkV4KChPU1ZFUlNJT05JTkZPKikmd2ludmVyKSkgeworICAgICAgICAgICAgUHlfREVDUkVGKG0pOworICAgICAgICAgICAgUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfQogICAgIFB5X0lOQ1JFRigmU3RydWN0VGltZVR5cGUpOworI2lmZGVmIEhBVkVfU1RSVUNUX1RNX1RNX1pPTkUKKyAgICBQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiX1NUUlVDVF9UTV9JVEVNUyIsIDExKTsKKyNlbHNlCisgICAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQobSwgIl9TVFJVQ1RfVE1fSVRFTVMiLCA5KTsKKyNlbmRpZgogICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAic3RydWN0X3RpbWUiLCAoUHlPYmplY3QqKSAmU3RydWN0VGltZVR5cGUpOwogICAgIGluaXRpYWxpemVkID0gMTsKICAgICByZXR1cm4gbTsKIH0KIAotc3RhdGljIGRvdWJsZQotZmxvYXR0aW1lKHZvaWQpCitzdGF0aWMgUHlPYmplY3QqCitmbG9hdHRpbWUoX1B5X2Nsb2NrX2luZm9fdCAqaW5mbykKIHsKICAgICBfUHlUaW1lX3RpbWV2YWwgdDsKLSAgICBfUHlUaW1lX2dldHRpbWVvZmRheSgmdCk7Ci0gICAgcmV0dXJuIChkb3VibGUpdC50dl9zZWMgKyB0LnR2X3VzZWMqMC4wMDAwMDE7CisjaWZkZWYgSEFWRV9DTE9DS19HRVRUSU1FCisgICAgc3RydWN0IHRpbWVzcGVjIHRwOworICAgIGludCByZXQ7CisKKyAgICAvKiBfUHlUaW1lX2dldHRpbWVvZmRheSgpIGRvZXMgbm90IHVzZSBjbG9ja19nZXR0aW1lKCkKKyAgICAgICBiZWNhdXNlIGl0IHdvdWxkIHJlcXVpcmUgdG8gbGluayBQeXRob24gdG8gdGhlIHJ0IChyZWFsLXRpbWUpCisgICAgICAgbGlicmFyeSwgYXQgbGVhc3Qgb24gTGludXggKi8KKyAgICByZXQgPSBjbG9ja19nZXR0aW1lKENMT0NLX1JFQUxUSU1FLCAmdHApOworICAgIGlmIChyZXQgPT0gMCkgeworICAgICAgICBpZiAoaW5mbykgeworICAgICAgICAgICAgc3RydWN0IHRpbWVzcGVjIHJlczsKKyAgICAgICAgICAgIGluZm8tPmltcGxlbWVudGF0aW9uID0gImNsb2NrX2dldHRpbWUoQ0xPQ0tfUkVBTFRJTUUpIjsKKyAgICAgICAgICAgIGluZm8tPm1vbm90b25pYyA9IDA7CisgICAgICAgICAgICBpbmZvLT5hZGp1c3RhYmxlID0gMTsKKyAgICAgICAgICAgIGlmIChjbG9ja19nZXRyZXMoQ0xPQ0tfUkVBTFRJTUUsICZyZXMpID09IDApCisgICAgICAgICAgICAgICAgaW5mby0+cmVzb2x1dGlvbiA9IHJlcy50dl9zZWMgKyByZXMudHZfbnNlYyAqIDFlLTk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgaW5mby0+cmVzb2x1dGlvbiA9IDFlLTk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIFB5RmxvYXRfRnJvbURvdWJsZSh0cC50dl9zZWMgKyB0cC50dl9uc2VjICogMWUtOSk7CisgICAgfQorI2VuZGlmCisgICAgX1B5VGltZV9nZXR0aW1lb2ZkYXlfaW5mbygmdCwgaW5mbyk7CisgICAgcmV0dXJuIFB5RmxvYXRfRnJvbURvdWJsZSgoZG91YmxlKXQudHZfc2VjICsgdC50dl91c2VjICogMWUtNik7CiB9CiAKIApAQCAtOTg3LDIzICsxNTIyLDI4IEBACiAjaWYgZGVmaW5lZChIQVZFX1NFTEVDVCkgJiYgIWRlZmluZWQoX19FTVhfXykKICAgICBzdHJ1Y3QgdGltZXZhbCB0OwogICAgIGRvdWJsZSBmcmFjOworICAgIGludCBlcnI7CisKICAgICBmcmFjID0gZm1vZChzZWNzLCAxLjApOwogICAgIHNlY3MgPSBmbG9vcihzZWNzKTsKICAgICB0LnR2X3NlYyA9IChsb25nKXNlY3M7CiAgICAgdC50dl91c2VjID0gKGxvbmcpKGZyYWMqMTAwMDAwMC4wKTsKICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCi0gICAgaWYgKHNlbGVjdCgwLCAoZmRfc2V0ICopMCwgKGZkX3NldCAqKTAsIChmZF9zZXQgKikwLCAmdCkgIT0gMCkgeworICAgIGVyciA9IHNlbGVjdCgwLCAoZmRfc2V0ICopMCwgKGZkX3NldCAqKTAsIChmZF9zZXQgKikwLCAmdCk7CisgICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKKyAgICBpZiAoZXJyICE9IDApIHsKICNpZmRlZiBFSU5UUgotICAgICAgICBpZiAoZXJybm8gIT0gRUlOVFIpIHsKLSNlbHNlCi0gICAgICAgIGlmICgxKSB7CisgICAgICAgIGlmIChlcnJubyA9PSBFSU5UUikgeworICAgICAgICAgICAgaWYgKFB5RXJyX0NoZWNrU2lnbmFscygpKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCiAjZW5kaWYKLSAgICAgICAgICAgIFB5X0JMT0NLX1RIUkVBRFMKKyAgICAgICAgewogICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CiAgICAgfQotICAgIFB5X0VORF9BTExPV19USFJFQURTCiAjZWxpZiBkZWZpbmVkKF9fV0FUQ09NQ19fKSAmJiAhZGVmaW5lZChfX1FOWF9fKQogICAgIC8qIFhYWCBDYW4ndCBpbnRlcnJ1cHQgdGhpcyBzbGVlcCAqLwogICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKQEAgLTEwMjQsMTggKzE1NjQsMTQgQEAKICAgICAgICAgICogYnkgR3VpZG8sIG9ubHkgdGhlIG1haW4gdGhyZWFkIGNhbiBiZSBpbnRlcnJ1cHRlZC4KICAgICAgICAgICovCiAgICAgICAgIHVsX21pbGxpcyA9ICh1bnNpZ25lZCBsb25nKW1pbGxpc2VjczsKLSAgICAgICAgaWYgKHVsX21pbGxpcyA9PSAwIHx8Ci0gICAgICAgICAgICBtYWluX3RocmVhZCAhPSBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KCkpCisgICAgICAgIGlmICh1bF9taWxsaXMgPT0gMCB8fCAhX1B5T1NfSXNNYWluVGhyZWFkKCkpCiAgICAgICAgICAgICBTbGVlcCh1bF9taWxsaXMpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIERXT1JEIHJjOworICAgICAgICAgICAgSEFORExFIGhJbnRlcnJ1cHRFdmVudCA9IF9QeU9TX1NpZ2ludEV2ZW50KCk7CiAgICAgICAgICAgICBSZXNldEV2ZW50KGhJbnRlcnJ1cHRFdmVudCk7CiAgICAgICAgICAgICByYyA9IFdhaXRGb3JTaW5nbGVPYmplY3QoaEludGVycnVwdEV2ZW50LCB1bF9taWxsaXMpOwogICAgICAgICAgICAgaWYgKHJjID09IFdBSVRfT0JKRUNUXzApIHsKLSAgICAgICAgICAgICAgICAvKiBZaWVsZCB0byBtYWtlIHN1cmUgcmVhbCBQeXRob24gc2lnbmFsCi0gICAgICAgICAgICAgICAgICogaGFuZGxlciBjYWxsZWQuCi0gICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgU2xlZXAoMSk7CiAgICAgICAgICAgICAgICAgUHlfQkxPQ0tfVEhSRUFEUwogICAgICAgICAgICAgICAgIGVycm5vID0gRUlOVFI7CiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy90a2FwcGluaXQuYyBiL01vZHVsZXMvdGthcHBpbml0LmMKaW5kZXggYzFmOTdiMC4uMmVkODU5NCAxMDA2NDQKLS0tIGEvTW9kdWxlcy90a2FwcGluaXQuYworKysgYi9Nb2R1bGVzL3RrYXBwaW5pdC5jCkBAIC0yNiw3ICsyNiw5IEBACiBpbnQKIFRjbF9BcHBJbml0KFRjbF9JbnRlcnAgKmludGVycCkKIHsKKyNpZmRlZiBXSVRIX01PUkVCVVRUT05TCiAgICAgVGtfV2luZG93IG1haW5fd2luZG93OworI2VuZGlmCiAgICAgY29uc3QgY2hhciAqX3RraW50ZXJfc2tpcF90a19pbml0OwogI2lmZGVmIFRLSU5URVJfUFJPVEVDVF9MT0FEVEsKICAgICBjb25zdCBjaGFyICpfdGtpbnRlcl90a19mYWlsZWQ7CkBAIC0xMTEsNyArMTEzLDExIEBACiAgICAgICAgIHJldHVybiBUQ0xfRVJST1I7CiAgICAgfQogCisjaWZkZWYgV0lUSF9NT1JFQlVUVE9OUwogICAgIG1haW5fd2luZG93ID0gVGtfTWFpbldpbmRvdyhpbnRlcnApOworI2Vsc2UKKyAgICBUa19NYWluV2luZG93KGludGVycCk7CisjZW5kaWYKIAogI2lmZGVmIFRLX0FRVUEKICAgICBUa01hY09TWEluaXRBcHBsZUV2ZW50cyhpbnRlcnApOwpkaWZmIC0tZ2l0IGEvTW9kdWxlcy91bmljb2RlZGF0YS5jIGIvTW9kdWxlcy91bmljb2RlZGF0YS5jCmluZGV4IDUzZTQ4ZGYuLjVjOTgyZjUgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvdW5pY29kZWRhdGEuYworKysgYi9Nb2R1bGVzL3VuaWNvZGVkYXRhLmMKQEAgLTkzLDE2ICs5MywxMyBAQAogCiBzdGF0aWMgUHlfVUNTNCBnZXR1Y2hhcihQeVVuaWNvZGVPYmplY3QgKm9iaikKIHsKLSAgICBQeV9VTklDT0RFICp2ID0gUHlVbmljb2RlX0FTX1VOSUNPREUob2JqKTsKLQotICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUob2JqKSA9PSAxKQotICAgICAgICByZXR1cm4gKnY7Ci0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotICAgIGVsc2UgaWYgKChQeVVuaWNvZGVfR0VUX1NJWkUob2JqKSA9PSAyKSAmJgotICAgICAgICAgICAgICgweEQ4MDAgPD0gdlswXSAmJiB2WzBdIDw9IDB4REJGRikgJiYKLSAgICAgICAgICAgICAoMHhEQzAwIDw9IHZbMV0gJiYgdlsxXSA8PSAweERGRkYpKQotICAgICAgICByZXR1cm4gKCgodlswXSAmIDB4M0ZGKTw8MTApIHwgKHZbMV0gJiAweDNGRikpICsgMHgxMDAwMDsKLSNlbmRpZgorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkob2JqKSkKKyAgICAgICAgcmV0dXJuIChQeV9VQ1M0KS0xOworICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChvYmopID09IDEpIHsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShvYmopKQorICAgICAgICAgICAgcmV0dXJuIChQeV9VQ1M0KS0xOworICAgICAgICByZXR1cm4gUHlVbmljb2RlX1JFQURfQ0hBUihvYmosIDApOworICAgIH0KICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAibmVlZCBhIHNpbmdsZSBVbmljb2RlIGNoYXJhY3RlciBhcyBwYXJhbWV0ZXIiKTsKICAgICByZXR1cm4gKFB5X1VDUzQpLTE7CkBAIC00NDMsNyArNDQwLDcgQEAKICAgICAgICBmcm9tIFRvb2xzL3VuaWNvZGUvbWFrZXVuaWNvZGVkYXRhLnB5LCBpdCBzaG91bGQgbm90IGJlIHBvc3NpYmxlCiAgICAgICAgdG8gb3ZlcmZsb3cgZGVjb21wX3ByZWZpeC4gKi8KICAgICBwcmVmaXhfaW5kZXggPSBkZWNvbXBfZGF0YVtpbmRleF0gJiAyNTU7Ci0gICAgYXNzZXJ0KHByZWZpeF9pbmRleCA8IChzaXplb2YoZGVjb21wX3ByZWZpeCkvc2l6ZW9mKCpkZWNvbXBfcHJlZml4KSkpOworICAgIGFzc2VydChwcmVmaXhfaW5kZXggPCBQeV9BUlJBWV9MRU5HVEgoZGVjb21wX3ByZWZpeCkpOwogCiAgICAgLyogY29weSBwcmVmaXggKi8KICAgICBpID0gc3RybGVuKGRlY29tcF9wcmVmaXhbcHJlZml4X2luZGV4XSk7CkBAIC00OTgsMzYgKzQ5NSw0NyBAQAogbmZkX25ma2QoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICppbnB1dCwgaW50IGspCiB7CiAgICAgUHlPYmplY3QgKnJlc3VsdDsKLSAgICBQeV9VTklDT0RFICppLCAqZW5kLCAqbzsKKyAgICBQeV9VQ1M0ICpvdXRwdXQ7CisgICAgUHlfc3NpemVfdCBpLCBvLCBvc2l6ZTsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOwogICAgIC8qIExvbmdlc3QgZGVjb21wb3NpdGlvbiBpbiBVbmljb2RlIDMuMjogVStGREZBICovCi0gICAgUHlfVU5JQ09ERSBzdGFja1syMF07CisgICAgUHlfVUNTNCBzdGFja1syMF07CiAgICAgUHlfc3NpemVfdCBzcGFjZSwgaXNpemU7CiAgICAgaW50IGluZGV4LCBwcmVmaXgsIGNvdW50LCBzdGFja3B0cjsKICAgICB1bnNpZ25lZCBjaGFyIHByZXYsIGN1cjsKIAogICAgIHN0YWNrcHRyID0gMDsKLSAgICBpc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShpbnB1dCk7CisgICAgaXNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChpbnB1dCk7CiAgICAgLyogT3ZlcmFsbG9jYXRlIGF0bW9zdCAxMCBjaGFyYWN0ZXJzLiAqLwogICAgIHNwYWNlID0gKGlzaXplID4gMTAgPyAxMCA6IGlzaXplKSArIGlzaXplOwotICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLCBzcGFjZSk7Ci0gICAgaWYgKCFyZXN1bHQpCisgICAgb3NpemUgPSBzcGFjZTsKKyAgICBvdXRwdXQgPSBQeU1lbV9NYWxsb2Moc3BhY2UgKiBzaXplb2YoUHlfVUNTNCkpOworICAgIGlmICghb3V0cHV0KSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGkgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShpbnB1dCk7Ci0gICAgZW5kID0gaSArIGlzaXplOwotICAgIG8gPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXN1bHQpOworICAgIH0KKyAgICBpID0gbyA9IDA7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKGlucHV0KTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoaW5wdXQpOwogCi0gICAgd2hpbGUgKGkgPCBlbmQpIHsKLSAgICAgICAgc3RhY2tbc3RhY2twdHIrK10gPSAqaSsrOworICAgIHdoaWxlIChpIDwgaXNpemUpIHsKKyAgICAgICAgc3RhY2tbc3RhY2twdHIrK10gPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKyspOwogICAgICAgICB3aGlsZShzdGFja3B0cikgewotICAgICAgICAgICAgUHlfVU5JQ09ERSBjb2RlID0gc3RhY2tbLS1zdGFja3B0cl07CisgICAgICAgICAgICBQeV9VQ1M0IGNvZGUgPSBzdGFja1stLXN0YWNrcHRyXTsKICAgICAgICAgICAgIC8qIEhhbmd1bCBEZWNvbXBvc2l0aW9uIGFkZHMgdGhyZWUgY2hhcmFjdGVycyBpbgogICAgICAgICAgICAgICAgYSBzaW5nbGUgc3RlcCwgc28gd2UgbmVlZCBhdGxlYXN0IHRoYXQgbXVjaCByb29tLiAqLwogICAgICAgICAgICAgaWYgKHNwYWNlIDwgMykgewotICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbmV3c2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShyZXN1bHQpICsgMTA7CisgICAgICAgICAgICAgICAgUHlfVUNTNCAqbmV3X291dHB1dDsKKyAgICAgICAgICAgICAgICBvc2l6ZSArPSAxMDsKICAgICAgICAgICAgICAgICBzcGFjZSArPSAxMDsKLSAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1Jlc2l6ZSgmcmVzdWx0LCBuZXdzaXplKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBuZXdfb3V0cHV0ID0gUHlNZW1fUmVhbGxvYyhvdXRwdXQsIG9zaXplKnNpemVvZihQeV9VQ1M0KSk7CisgICAgICAgICAgICAgICAgaWYgKG5ld19vdXRwdXQgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBQeU1lbV9GcmVlKG91dHB1dCk7CisgICAgICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgICAgIG8gPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXN1bHQpICsgbmV3c2l6ZSAtIHNwYWNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBuZXdfb3V0cHV0OwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLyogSGFuZ3VsIERlY29tcG9zaXRpb24uICovCiAgICAgICAgICAgICBpZiAoU0Jhc2UgPD0gY29kZSAmJiBjb2RlIDwgKFNCYXNlK1NDb3VudCkpIHsKQEAgLTUzNSwxMSArNTQzLDExIEBACiAgICAgICAgICAgICAgICAgaW50IEwgPSBMQmFzZSArIFNJbmRleCAvIE5Db3VudDsKICAgICAgICAgICAgICAgICBpbnQgViA9IFZCYXNlICsgKFNJbmRleCAlIE5Db3VudCkgLyBUQ291bnQ7CiAgICAgICAgICAgICAgICAgaW50IFQgPSBUQmFzZSArIFNJbmRleCAlIFRDb3VudDsKLSAgICAgICAgICAgICAgICAqbysrID0gTDsKLSAgICAgICAgICAgICAgICAqbysrID0gVjsKKyAgICAgICAgICAgICAgICBvdXRwdXRbbysrXSA9IEw7CisgICAgICAgICAgICAgICAgb3V0cHV0W28rK10gPSBWOwogICAgICAgICAgICAgICAgIHNwYWNlIC09IDI7CiAgICAgICAgICAgICAgICAgaWYgKFQgIT0gVEJhc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgKm8rKyA9IFQ7CisgICAgICAgICAgICAgICAgICAgIG91dHB1dFtvKytdID0gVDsKICAgICAgICAgICAgICAgICAgICAgc3BhY2UgLS07CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNTU5LDcgKzU2Nyw3IEBACiAgICAgICAgICAgICAvKiBDb3B5IGNoYXJhY3RlciBpZiBpdCBpcyBub3QgZGVjb21wb3NhYmxlLCBvciBoYXMgYQogICAgICAgICAgICAgICAgY29tcGF0aWJpbGl0eSBkZWNvbXBvc2l0aW9uLCBidXQgd2UgZG8gTkZELiAqLwogICAgICAgICAgICAgaWYgKCFjb3VudCB8fCAocHJlZml4ICYmICFrKSkgewotICAgICAgICAgICAgICAgICpvKysgPSBjb2RlOworICAgICAgICAgICAgICAgIG91dHB1dFtvKytdID0gY29kZTsKICAgICAgICAgICAgICAgICBzcGFjZS0tOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQpAQCAtNTcyLDE1ICs1ODAsMjAgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIC8qIERyb3Agb3ZlcmFsbG9jYXRpb24uIENhbm5vdCBmYWlsLiAqLwotICAgIFB5VW5pY29kZV9SZXNpemUoJnJlc3VsdCwgUHlVbmljb2RlX0dFVF9TSVpFKHJlc3VsdCkgLSBzcGFjZSk7CisgICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21LaW5kQW5kRGF0YShQeVVuaWNvZGVfNEJZVEVfS0lORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgbyk7CisgICAgUHlNZW1fRnJlZShvdXRwdXQpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAvKiByZXN1bHQgaXMgZ3VhcmFudGVlZCB0byBiZSByZWFkeSwgYXMgaXQgaXMgY29tcGFjdC4gKi8KKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQocmVzdWx0KTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEocmVzdWx0KTsKIAogICAgIC8qIFNvcnQgY2Fub25pY2FsbHkuICovCi0gICAgaSA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlc3VsdCk7Ci0gICAgcHJldiA9IF9nZXRyZWNvcmRfZXgoKmkpLT5jb21iaW5pbmc7Ci0gICAgZW5kID0gaSArIFB5VW5pY29kZV9HRVRfU0laRShyZXN1bHQpOwotICAgIGZvciAoaSsrOyBpIDwgZW5kOyBpKyspIHsKLSAgICAgICAgY3VyID0gX2dldHJlY29yZF9leCgqaSktPmNvbWJpbmluZzsKKyAgICBpID0gMDsKKyAgICBwcmV2ID0gX2dldHJlY29yZF9leChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKSktPmNvbWJpbmluZzsKKyAgICBmb3IgKGkrKzsgaSA8IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlc3VsdCk7IGkrKykgeworICAgICAgICBjdXIgPSBfZ2V0cmVjb3JkX2V4KFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpKS0+Y29tYmluaW5nOwogICAgICAgICBpZiAocHJldiA9PSAwIHx8IGN1ciA9PSAwIHx8IHByZXYgPD0gY3VyKSB7CiAgICAgICAgICAgICBwcmV2ID0gY3VyOwogICAgICAgICAgICAgY29udGludWU7CkBAIC01ODgsMzEgKzYwMSwzMiBAQAogICAgICAgICAvKiBOb24tY2Fub25pY2FsIG9yZGVyLiBOZWVkIHRvIHN3aXRjaCAqaSB3aXRoIHByZXZpb3VzLiAqLwogICAgICAgICBvID0gaSAtIDE7CiAgICAgICAgIHdoaWxlICgxKSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFIHRtcCA9IG9bMV07Ci0gICAgICAgICAgICBvWzFdID0gb1swXTsKLSAgICAgICAgICAgIG9bMF0gPSB0bXA7CisgICAgICAgICAgICBQeV9VQ1M0IHRtcCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIG8rMSk7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgbysxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIG8pKTsKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShraW5kLCBkYXRhLCBvLCB0bXApOwogICAgICAgICAgICAgby0tOwotICAgICAgICAgICAgaWYgKG8gPCBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXN1bHQpKQorICAgICAgICAgICAgaWYgKG8gPCAwKQogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgcHJldiA9IF9nZXRyZWNvcmRfZXgoKm8pLT5jb21iaW5pbmc7CisgICAgICAgICAgICBwcmV2ID0gX2dldHJlY29yZF9leChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBvKSktPmNvbWJpbmluZzsKICAgICAgICAgICAgIGlmIChwcmV2ID09IDAgfHwgcHJldiA8PSBjdXIpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgcHJldiA9IF9nZXRyZWNvcmRfZXgoKmkpLT5jb21iaW5pbmc7CisgICAgICAgIHByZXYgPSBfZ2V0cmVjb3JkX2V4KFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpKS0+Y29tYmluaW5nOwogICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBzdGF0aWMgaW50Ci1maW5kX25mY19pbmRleChQeU9iamVjdCAqc2VsZiwgc3RydWN0IHJlaW5kZXgqIG5mYywgUHlfVU5JQ09ERSBjb2RlKQorZmluZF9uZmNfaW5kZXgoUHlPYmplY3QgKnNlbGYsIHN0cnVjdCByZWluZGV4KiBuZmMsIFB5X1VDUzQgY29kZSkKIHsKLSAgICBpbnQgaW5kZXg7CisgICAgdW5zaWduZWQgaW50IGluZGV4OwogICAgIGZvciAoaW5kZXggPSAwOyBuZmNbaW5kZXhdLnN0YXJ0OyBpbmRleCsrKSB7Ci0gICAgICAgIGludCBzdGFydCA9IG5mY1tpbmRleF0uc3RhcnQ7CisgICAgICAgIHVuc2lnbmVkIGludCBzdGFydCA9IG5mY1tpbmRleF0uc3RhcnQ7CiAgICAgICAgIGlmIChjb2RlIDwgc3RhcnQpCiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIGlmIChjb2RlIDw9IHN0YXJ0ICsgbmZjW2luZGV4XS5jb3VudCkgewotICAgICAgICAgICAgaW50IGRlbHRhID0gY29kZSAtIHN0YXJ0OworICAgICAgICAgICAgdW5zaWduZWQgaW50IGRlbHRhID0gY29kZSAtIHN0YXJ0OwogICAgICAgICAgICAgcmV0dXJuIG5mY1tpbmRleF0uaW5kZXggKyBkZWx0YTsKICAgICAgICAgfQogICAgIH0KQEAgLTYyMywyNyArNjM3LDM2IEBACiBuZmNfbmZrYyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmlucHV0LCBpbnQgaykKIHsKICAgICBQeU9iamVjdCAqcmVzdWx0OwotICAgIFB5X1VOSUNPREUgKmksICppMSwgKm8sICplbmQ7CisgICAgaW50IGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKKyAgICBQeV9VQ1M0ICpvdXRwdXQ7CisgICAgUHlfc3NpemVfdCBpLCBpMSwgbywgbGVuOwogICAgIGludCBmLGwsaW5kZXgsaW5kZXgxLGNvbWI7Ci0gICAgUHlfVU5JQ09ERSBjb2RlOwotICAgIFB5X1VOSUNPREUgKnNraXBwZWRbMjBdOworICAgIFB5X1VDUzQgY29kZTsKKyAgICBQeV9zc2l6ZV90IHNraXBwZWRbMjBdOwogICAgIGludCBjc2tpcHBlZCA9IDA7CiAKICAgICByZXN1bHQgPSBuZmRfbmZrZChzZWxmLCBpbnB1dCwgayk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBOVUxMOworICAgIC8qIHJlc3VsdCB3aWxsIGJlICJyZWFkeSIuICovCisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHJlc3VsdCk7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHJlc3VsdCk7CisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocmVzdWx0KTsKIAotICAgIC8qIFdlIGFyZSBnb2luZyB0byBtb2RpZnkgcmVzdWx0IGluLXBsYWNlLgotICAgICAgIElmIG5mZF9uZmtkIGlzIGNoYW5nZWQgdG8gc29tZXRpbWVzIHJldHVybiB0aGUgaW5wdXQsCi0gICAgICAgdGhpcyBjb2RlIG5lZWRzIHRvIGJlIHJldmlld2VkLiAqLwotICAgIGFzc2VydChyZXN1bHQgIT0gaW5wdXQpOwotCi0gICAgaSA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlc3VsdCk7Ci0gICAgZW5kID0gaSArIFB5VW5pY29kZV9HRVRfU0laRShyZXN1bHQpOwotICAgIG8gPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXN1bHQpOworICAgIC8qIFdlIGFsbG9jYXRlIGEgYnVmZmVyIGZvciB0aGUgb3V0cHV0LgorICAgICAgIElmIHdlIGZpbmQgdGhhdCB3ZSBtYWRlIG5vIGNoYW5nZXMsIHdlIHN0aWxsIHJldHVybgorICAgICAgIHRoZSBORkQgcmVzdWx0LiAqLworICAgIG91dHB1dCA9IFB5TWVtX01hbGxvYyhsZW4gKiBzaXplb2YoUHlfVUNTNCkpOworICAgIGlmICghb3V0cHV0KSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaSA9IG8gPSAwOwogCiAgIGFnYWluOgotICAgIHdoaWxlIChpIDwgZW5kKSB7CisgICAgd2hpbGUgKGkgPCBsZW4pIHsKICAgICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8IGNza2lwcGVkOyBpbmRleCsrKSB7CiAgICAgICAgICAgaWYgKHNraXBwZWRbaW5kZXhdID09IGkpIHsKICAgICAgICAgICAgICAgLyogKmkgY2hhcmFjdGVyIGlzIHNraXBwZWQuCkBAIC02NTYsMzMgKzY3OSw0MSBAQAogICAgICAgfQogICAgICAgLyogSGFuZ3VsIENvbXBvc2l0aW9uLiBXZSBkb24ndCBuZWVkIHRvIGNoZWNrIGZvciA8TFYsVD4KICAgICAgICAgIHBhaXJzLCBzaW5jZSB3ZSBhbHdheXMgaGF2ZSBkZWNvbXBvc2VkIGRhdGEuICovCi0gICAgICBpZiAoTEJhc2UgPD0gKmkgJiYgKmkgPCAoTEJhc2UrTENvdW50KSAmJgotICAgICAgICAgIGkgKyAxIDwgZW5kICYmCi0gICAgICAgICAgVkJhc2UgPD0gaVsxXSAmJiBpWzFdIDw9IChWQmFzZStWQ291bnQpKSB7CisgICAgICBjb2RlID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSk7CisgICAgICBpZiAoTEJhc2UgPD0gY29kZSAmJiBjb2RlIDwgKExCYXNlK0xDb3VudCkgJiYKKyAgICAgICAgICBpICsgMSA8IGxlbiAmJgorICAgICAgICAgIFZCYXNlIDw9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkrMSkgJiYKKyAgICAgICAgICBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKzEpIDw9IChWQmFzZStWQ291bnQpKSB7CiAgICAgICAgICAgaW50IExJbmRleCwgVkluZGV4OwotICAgICAgICAgIExJbmRleCA9IGlbMF0gLSBMQmFzZTsKLSAgICAgICAgICBWSW5kZXggPSBpWzFdIC0gVkJhc2U7CisgICAgICAgICAgTEluZGV4ID0gY29kZSAtIExCYXNlOworICAgICAgICAgIFZJbmRleCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkrMSkgLSBWQmFzZTsKICAgICAgICAgICBjb2RlID0gU0Jhc2UgKyAoTEluZGV4KlZDb3VudCtWSW5kZXgpKlRDb3VudDsKICAgICAgICAgICBpKz0yOwotICAgICAgICAgIGlmIChpIDwgZW5kICYmCi0gICAgICAgICAgICAgIFRCYXNlIDw9ICppICYmICppIDw9IChUQmFzZStUQ291bnQpKSB7Ci0gICAgICAgICAgICAgIGNvZGUgKz0gKmktVEJhc2U7CisgICAgICAgICAgaWYgKGkgPCBsZW4gJiYKKyAgICAgICAgICAgICAgVEJhc2UgPD0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSkgJiYKKyAgICAgICAgICAgICAgUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSkgPD0gKFRCYXNlK1RDb3VudCkpIHsKKyAgICAgICAgICAgICAgY29kZSArPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKS1UQmFzZTsKICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgIH0KLSAgICAgICAgICAqbysrID0gY29kZTsKKyAgICAgICAgICBvdXRwdXRbbysrXSA9IGNvZGU7CiAgICAgICAgICAgY29udGludWU7CiAgICAgICB9CiAKLSAgICAgIGYgPSBmaW5kX25mY19pbmRleChzZWxmLCBuZmNfZmlyc3QsICppKTsKKyAgICAgIC8qIGNvZGUgaXMgc3RpbGwgaW5wdXRbaV0gaGVyZSAqLworICAgICAgZiA9IGZpbmRfbmZjX2luZGV4KHNlbGYsIG5mY19maXJzdCwgY29kZSk7CiAgICAgICBpZiAoZiA9PSAtMSkgewotICAgICAgICAgICpvKysgPSAqaSsrOworICAgICAgICAgIG91dHB1dFtvKytdID0gY29kZTsKKyAgICAgICAgICBpKys7CiAgICAgICAgICAgY29udGludWU7CiAgICAgICB9CiAgICAgICAvKiBGaW5kIG5leHQgdW5ibG9ja2VkIGNoYXJhY3Rlci4gKi8KICAgICAgIGkxID0gaSsxOwogICAgICAgY29tYiA9IDA7Ci0gICAgICB3aGlsZSAoaTEgPCBlbmQpIHsKLSAgICAgICAgICBpbnQgY29tYjEgPSBfZ2V0cmVjb3JkX2V4KCppMSktPmNvbWJpbmluZzsKKyAgICAgIC8qIG91dHB1dCBiYXNlIGNoYXJhY3RlciBmb3Igbm93OyBtaWdodCBiZSB1cGRhdGVkIGxhdGVyLiAqLworICAgICAgb3V0cHV0W29dID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSk7CisgICAgICB3aGlsZSAoaTEgPCBsZW4pIHsKKyAgICAgICAgICBQeV9VQ1M0IGNvZGUxID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaTEpOworICAgICAgICAgIGludCBjb21iMSA9IF9nZXRyZWNvcmRfZXgoY29kZTEpLT5jb21iaW5pbmc7CiAgICAgICAgICAgaWYgKGNvbWIpIHsKICAgICAgICAgICAgICAgaWYgKGNvbWIxID09IDApCiAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTY5Miw4ICs3MjMsOCBAQAogICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICB9Ci0gICAgICAgICAgbCA9IGZpbmRfbmZjX2luZGV4KHNlbGYsIG5mY19sYXN0LCAqaTEpOwotICAgICAgICAgIC8qICppMSBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCAqaS4gSWYgKmkxCisgICAgICAgICAgbCA9IGZpbmRfbmZjX2luZGV4KHNlbGYsIG5mY19sYXN0LCBjb2RlMSk7CisgICAgICAgICAgLyogaTEgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggaS4gSWYgaTEKICAgICAgICAgICAgICBpcyBhIHN0YXJ0ZXIsIHdlIGRvbid0IG5lZWQgdG8gbG9vayBmdXJ0aGVyLgogICAgICAgICAgICAgIE90aGVyd2lzZSwgcmVjb3JkIHRoZSBjb21iaW5pbmcgY2xhc3MuICovCiAgICAgICAgICAgaWYgKGwgPT0gLTEpIHsKQEAgLTcxMiwxOSArNzQzLDI4IEBACiAgICAgICAgICAgICAgIGdvdG8gbm90X2NvbWJpbmFibGU7CiAKICAgICAgICAgICAvKiBSZXBsYWNlIHRoZSBvcmlnaW5hbCBjaGFyYWN0ZXIuICovCi0gICAgICAgICAgKmkgPSBjb2RlOworICAgICAgICAgIG91dHB1dFtvXSA9IGNvZGU7CiAgICAgICAgICAgLyogTWFyayB0aGUgc2Vjb25kIGNoYXJhY3RlciB1bnVzZWQuICovCiAgICAgICAgICAgYXNzZXJ0KGNza2lwcGVkIDwgMjApOwogICAgICAgICAgIHNraXBwZWRbY3NraXBwZWQrK10gPSBpMTsKICAgICAgICAgICBpMSsrOwotICAgICAgICAgIGYgPSBmaW5kX25mY19pbmRleChzZWxmLCBuZmNfZmlyc3QsICppKTsKKyAgICAgICAgICBmID0gZmluZF9uZmNfaW5kZXgoc2VsZiwgbmZjX2ZpcnN0LCBvdXRwdXRbb10pOwogICAgICAgICAgIGlmIChmID09IC0xKQogICAgICAgICAgICAgICBicmVhazsKICAgICAgIH0KLSAgICAgICpvKysgPSAqaSsrOworICAgICAgLyogT3V0cHV0IGNoYXJhY3RlciB3YXMgYWxyZWFkeSB3cml0dGVuLgorICAgICAgICAgSnVzdCBhZHZhbmNlIHRoZSBpbmRpY2VzLiAqLworICAgICAgbysrOyBpKys7CiAgICAgfQotICAgIGlmIChvICE9IGVuZCkKLSAgICAgICAgUHlVbmljb2RlX1Jlc2l6ZSgmcmVzdWx0LCBvIC0gUHlVbmljb2RlX0FTX1VOSUNPREUocmVzdWx0KSk7CisgICAgaWYgKG8gPT0gbGVuKSB7CisgICAgICAgIC8qIE5vIGNoYW5nZXMuIFJldHVybiBvcmlnaW5hbCBzdHJpbmcuICovCisgICAgICAgIFB5TWVtX0ZyZWUob3V0cHV0KTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21LaW5kQW5kRGF0YShQeVVuaWNvZGVfNEJZVEVfS0lORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgbyk7CisgICAgUHlNZW1fRnJlZShvdXRwdXQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTczMiw3ICs3NzIsOSBAQAogc3RhdGljIGludAogaXNfbm9ybWFsaXplZChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmlucHV0LCBpbnQgbmZjLCBpbnQgaykKIHsKLSAgICBQeV9VTklDT0RFICppLCAqZW5kOworICAgIFB5X3NzaXplX3QgaSwgbGVuOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CiAgICAgdW5zaWduZWQgY2hhciBwcmV2X2NvbWJpbmluZyA9IDAsIHF1aWNrY2hlY2tfbWFzazsKIAogICAgIC8qIEFuIG9sZGVyIHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGlzIHJlcXVlc3RlZCwgcXVpY2tjaGVja3MgbXVzdCBiZQpAQCAtNzQ0LDEwICs3ODYsMTMgQEAKICAgICAgICBhcyBkZXNjcmliZWQgaW4gaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIxNS8jQW5uZXg4LiAqLwogICAgIHF1aWNrY2hlY2tfbWFzayA9IDMgPDwgKChuZmMgPyA0IDogMCkgKyAoayA/IDIgOiAwKSk7CiAKLSAgICBpID0gUHlVbmljb2RlX0FTX1VOSUNPREUoaW5wdXQpOwotICAgIGVuZCA9IGkgKyBQeVVuaWNvZGVfR0VUX1NJWkUoaW5wdXQpOwotICAgIHdoaWxlIChpIDwgZW5kKSB7Ci0gICAgICAgIGNvbnN0IF9QeVVuaWNvZGVfRGF0YWJhc2VSZWNvcmQgKnJlY29yZCA9IF9nZXRyZWNvcmRfZXgoKmkrKyk7CisgICAgaSA9IDA7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKGlucHV0KTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoaW5wdXQpOworICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGlucHV0KTsKKyAgICB3aGlsZSAoaSA8IGxlbikgeworICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSsrKTsKKyAgICAgICAgY29uc3QgX1B5VW5pY29kZV9EYXRhYmFzZVJlY29yZCAqcmVjb3JkID0gX2dldHJlY29yZF9leChjaCk7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgY29tYmluaW5nID0gcmVjb3JkLT5jb21iaW5pbmc7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgcXVpY2tjaGVjayA9IHJlY29yZC0+bm9ybWFsaXphdGlvbl9xdWlja19jaGVjazsKIApAQCAtNzc2LDcgKzgyMSwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICZmb3JtLCAmUHlVbmljb2RlX1R5cGUsICZpbnB1dCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgaWYgKFB5VW5pY29kZV9HZXRTaXplKGlucHV0KSA9PSAwKSB7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShpbnB1dCkgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKGlucHV0KSA9PSAwKSB7CiAgICAgICAgIC8qIFNwZWNpYWwgY2FzZSBlbXB0eSBpbnB1dCBzdHJpbmdzLCBzaW5jZSByZXNpemluZwogICAgICAgICAgICB0aGVtICBsYXRlciB3b3VsZCBjYXVzZSBpbnRlcm5hbCBlcnJvcnMuICovCiAgICAgICAgIFB5X0lOQ1JFRihpbnB1dCk7CkBAIC04NzYsMTUgKzkyNCwyNSBAQAogewogICAgIHJldHVybgogICAgICAgICAoMHgzNDAwIDw9IGNvZGUgJiYgY29kZSA8PSAweDREQjUpICAgfHwgLyogQ0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQSAqLwotICAgICAgICAoMHg0RTAwIDw9IGNvZGUgJiYgY29kZSA8PSAweDlGQ0IpICAgfHwgLyogQ0pLIElkZW9ncmFwaCAqLworICAgICAgICAoMHg0RTAwIDw9IGNvZGUgJiYgY29kZSA8PSAweDlGQ0MpICAgfHwgLyogQ0pLIElkZW9ncmFwaCAqLwogICAgICAgICAoMHgyMDAwMCA8PSBjb2RlICYmIGNvZGUgPD0gMHgyQTZENikgfHwgLyogQ0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQiAqLwogICAgICAgICAoMHgyQTcwMCA8PSBjb2RlICYmIGNvZGUgPD0gMHgyQjczNCkgfHwgLyogQ0pLIElkZW9ncmFwaCBFeHRlbnNpb24gQyAqLwogICAgICAgICAoMHgyQjc0MCA8PSBjb2RlICYmIGNvZGUgPD0gMHgyQjgxRCk7ICAgLyogQ0pLIElkZW9ncmFwaCBFeHRlbnNpb24gRCAqLwogfQogCisvKiBtYWNyb3MgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIGdpdmVuIGNvZGVwb2ludCBpcyBpbiB0aGUgUFVBIHJhbmdlIHRoYXQKKyAqIHdlIGFyZSB1c2luZyB0byBzdG9yZSBhbGlhc2VzIGFuZCBuYW1lZCBzZXF1ZW5jZXMgKi8KKyNkZWZpbmUgSVNfQUxJQVMoY3ApICgoY3AgPj0gYWxpYXNlc19zdGFydCkgJiYgKGNwIDwgYWxpYXNlc19lbmQpKQorI2RlZmluZSBJU19OQU1FRF9TRVEoY3ApICgoY3AgPj0gbmFtZWRfc2VxdWVuY2VzX3N0YXJ0KSAmJiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIChjcCA8IG5hbWVkX3NlcXVlbmNlc19lbmQpKQorCiBzdGF0aWMgaW50Ci1fZ2V0dWNuYW1lKFB5T2JqZWN0ICpzZWxmLCBQeV9VQ1M0IGNvZGUsIGNoYXIqIGJ1ZmZlciwgaW50IGJ1ZmxlbikKK19nZXR1Y25hbWUoUHlPYmplY3QgKnNlbGYsIFB5X1VDUzQgY29kZSwgY2hhciogYnVmZmVyLCBpbnQgYnVmbGVuLAorICAgICAgICAgICBpbnQgd2l0aF9hbGlhc19hbmRfc2VxKQogeworICAgIC8qIEZpbmQgdGhlIG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBjb2RlcG9pbnQuCisgICAgICogSWYgd2l0aF9hbGlhc19hbmRfc2VxIGlzIDEsIGNoZWNrIGZvciBuYW1lcyBpbiB0aGUgUHJpdmF0ZSBVc2UgQXJlYSAxNQorICAgICAqIHRoYXQgd2UgYXJlIHVzaW5nIGZvciBhbGlhc2VzIGFuZCBuYW1lZCBzZXF1ZW5jZXMuICovCiAgICAgaW50IG9mZnNldDsKICAgICBpbnQgaTsKICAgICBpbnQgd29yZDsKQEAgLTg5Myw4ICs5NTEsMTYgQEAKICAgICBpZiAoY29kZSA+PSAweDExMDAwMCkKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICAvKiBYWFggc2hvdWxkIHdlIGp1c3Qgc2tpcCBhbGwgdGhlIGNvZGVwb2ludHMgaW4gdGhlIFBVQXMgaGVyZT8gKi8KKyAgICBpZiAoIXdpdGhfYWxpYXNfYW5kX3NlcSAmJiAoSVNfQUxJQVMoY29kZSkgfHwgSVNfTkFNRURfU0VRKGNvZGUpKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBpZiAoc2VsZiAmJiBVQ0RfQ2hlY2soc2VsZikpIHsKLSAgICAgICAgY29uc3QgY2hhbmdlX3JlY29yZCAqb2xkID0gZ2V0X29sZF9yZWNvcmQoc2VsZiwgY29kZSk7CisgICAgICAgIC8qIGluIDMuMi4wIHRoZXJlIGFyZSBubyBhbGlhc2VzIGFuZCBuYW1lZCBzZXF1ZW5jZXMgKi8KKyAgICAgICAgY29uc3QgY2hhbmdlX3JlY29yZCAqb2xkOworICAgICAgICBpZiAoSVNfQUxJQVMoY29kZSkgfHwgSVNfTkFNRURfU0VRKGNvZGUpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIG9sZCA9IGdldF9vbGRfcmVjb3JkKHNlbGYsIGNvZGUpOwogICAgICAgICBpZiAob2xkLT5jYXRlZ29yeV9jaGFuZ2VkID09IDApIHsKICAgICAgICAgICAgIC8qIHVuYXNzaWduZWQgKi8KICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtOTc4LDcgKzEwNDQsNyBAQAogICAgIC8qIGNoZWNrIGlmIGNvZGUgY29ycmVzcG9uZHMgdG8gdGhlIGdpdmVuIG5hbWUgKi8KICAgICBpbnQgaTsKICAgICBjaGFyIGJ1ZmZlcltOQU1FX01BWExFTl07Ci0gICAgaWYgKCFfZ2V0dWNuYW1lKHNlbGYsIGNvZGUsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikpKQorICAgIGlmICghX2dldHVjbmFtZShzZWxmLCBjb2RlLCBidWZmZXIsIHNpemVvZihidWZmZXIpLCAxKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgZm9yIChpID0gMDsgaSA8IG5hbWVsZW47IGkrKykgewogICAgICAgICBpZiAoUHlfVE9VUFBFUihQeV9DSEFSTUFTSyhuYW1lW2ldKSkgIT0gYnVmZmVyW2ldKQpAQCAtOTk0LDcgKzEwNjAsNyBAQAogICAgICpsZW4gPSAtMTsKICAgICBmb3IgKGkgPSAwOyBpIDwgY291bnQ7IGkrKykgewogICAgICAgICBjaGFyICpzID0gaGFuZ3VsX3N5bGxhYmxlc1tpXVtjb2x1bW5dOwotICAgICAgICBsZW4xID0gc3RybGVuKHMpOworICAgICAgICBsZW4xID0gUHlfU0FGRV9ET1dOQ0FTVChzdHJsZW4ocyksIHNpemVfdCwgaW50KTsKICAgICAgICAgaWYgKGxlbjEgPD0gKmxlbikKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoc3RybmNtcChzdHIsIHMsIGxlbjEpID09IDApIHsKQEAgLTEwMDgsOCArMTA3NCwyOCBAQAogfQogCiBzdGF0aWMgaW50Ci1fZ2V0Y29kZShQeU9iamVjdCogc2VsZiwgY29uc3QgY2hhciogbmFtZSwgaW50IG5hbWVsZW4sIFB5X1VDUzQqIGNvZGUpCitfY2hlY2tfYWxpYXNfYW5kX3NlcSh1bnNpZ25lZCBpbnQgY3AsIFB5X1VDUzQqIGNvZGUsIGludCB3aXRoX25hbWVkX3NlcSkKIHsKKyAgICAvKiBjaGVjayBpZiBuYW1lZCBzZXF1ZW5jZXMgYXJlIGFsbG93ZWQgKi8KKyAgICBpZiAoIXdpdGhfbmFtZWRfc2VxICYmIElTX05BTUVEX1NFUShjcCkpCisgICAgICAgIHJldHVybiAwOworICAgIC8qIGlmIHRoZSBjb2RlcG9pbnQgaXMgaW4gdGhlIFBVQSByYW5nZSB0aGF0IHdlIHVzZSBmb3IgYWxpYXNlcywKKyAgICAgKiBjb252ZXJ0IGl0IHRvIG9idGFpbiB0aGUgcmlnaHQgY29kZXBvaW50ICovCisgICAgaWYgKElTX0FMSUFTKGNwKSkKKyAgICAgICAgKmNvZGUgPSBuYW1lX2FsaWFzZXNbY3AtYWxpYXNlc19zdGFydF07CisgICAgZWxzZQorICAgICAgICAqY29kZSA9IGNwOworICAgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50CitfZ2V0Y29kZShQeU9iamVjdCogc2VsZiwgY29uc3QgY2hhciogbmFtZSwgaW50IG5hbWVsZW4sIFB5X1VDUzQqIGNvZGUsCisgICAgICAgICBpbnQgd2l0aF9uYW1lZF9zZXEpCit7CisgICAgLyogUmV0dXJuIHRoZSBjb2RlcG9pbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBuYW1lLgorICAgICAqIE5hbWVkIGFsaWFzZXMgYXJlIHJlc29sdmVkIHRvbyAodW5sZXNzIHNlbGYgIT0gTlVMTCAoaS5lLiB3ZSBhcmUgdXNpbmcKKyAgICAgKiAzLjIuMCkpLiAgSWYgd2l0aF9uYW1lZF9zZXEgaXMgMSwgcmV0dXJucyB0aGUgUFVBIGNvZGVwb2ludCB0aGF0IHdlIGFyZQorICAgICAqIHVzaW5nIGZvciB0aGUgbmFtZWQgc2VxdWVuY2UsIGFuZCB0aGUgY2FsbGVyIG11c3QgdGhlbiBjb252ZXJ0IGl0LiAqLwogICAgIHVuc2lnbmVkIGludCBoLCB2OwogICAgIHVuc2lnbmVkIGludCBtYXNrID0gY29kZV9zaXplLTE7CiAgICAgdW5zaWduZWQgaW50IGksIGluY3I7CkBAIC0xMDY1LDEwICsxMTUxLDggQEAKICAgICB2ID0gY29kZV9oYXNoW2ldOwogICAgIGlmICghdikKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKF9jbXBuYW1lKHNlbGYsIHYsIG5hbWUsIG5hbWVsZW4pKSB7Ci0gICAgICAgICpjb2RlID0gdjsKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQorICAgIGlmIChfY21wbmFtZShzZWxmLCB2LCBuYW1lLCBuYW1lbGVuKSkKKyAgICAgICAgcmV0dXJuIF9jaGVja19hbGlhc19hbmRfc2VxKHYsIGNvZGUsIHdpdGhfbmFtZWRfc2VxKTsKICAgICBpbmNyID0gKGggXiAoaCA+PiAzKSkgJiBtYXNrOwogICAgIGlmICghaW5jcikKICAgICAgICAgaW5jciA9IG1hc2s7CkBAIC0xMDc3LDEwICsxMTYxLDggQEAKICAgICAgICAgdiA9IGNvZGVfaGFzaFtpXTsKICAgICAgICAgaWYgKCF2KQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGlmIChfY21wbmFtZShzZWxmLCB2LCBuYW1lLCBuYW1lbGVuKSkgewotICAgICAgICAgICAgKmNvZGUgPSB2OwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKF9jbXBuYW1lKHNlbGYsIHYsIG5hbWUsIG5hbWVsZW4pKQorICAgICAgICAgICAgcmV0dXJuIF9jaGVja19hbGlhc19hbmRfc2VxKHYsIGNvZGUsIHdpdGhfbmFtZWRfc2VxKTsKICAgICAgICAgaW5jciA9IGluY3IgPDwgMTsKICAgICAgICAgaWYgKGluY3IgPiBtYXNrKQogICAgICAgICAgICAgaW5jciA9IGluY3IgXiBjb2RlX3BvbHk7CkBAIC0xMTE4LDcgKzEyMDAsNyBAQAogICAgIGlmIChjID09IChQeV9VQ1M0KS0xKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICghX2dldHVjbmFtZShzZWxmLCBjLCBuYW1lLCBzaXplb2YobmFtZSkpKSB7CisgICAgaWYgKCFfZ2V0dWNuYW1lKHNlbGYsIGMsIG5hbWUsIHNpemVvZihuYW1lKSwgMCkpIHsKICAgICAgICAgaWYgKGRlZm9iaiA9PSBOVUxMKSB7CiAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIm5vIHN1Y2ggbmFtZSIpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0xMTQzLDI4ICsxMjI1LDI2IEBACiB1bmljb2RlZGF0YV9sb29rdXAoUHlPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQogewogICAgIFB5X1VDUzQgY29kZTsKLSAgICBQeV9VTklDT0RFIHN0clsyXTsKIAogICAgIGNoYXIqIG5hbWU7CiAgICAgaW50IG5hbWVsZW47CisgICAgdW5zaWduZWQgaW50IGluZGV4OwogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAicyM6bG9va3VwIiwgJm5hbWUsICZuYW1lbGVuKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAoIV9nZXRjb2RlKHNlbGYsIG5hbWUsIG5hbWVsZW4sICZjb2RlKSkgewotICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfS2V5RXJyb3IsICJ1bmRlZmluZWQgY2hhcmFjdGVyIG5hbWUgJyVzJyIsCi0gICAgICAgICAgICAgICAgICAgICBuYW1lKTsKKyAgICBpZiAoIV9nZXRjb2RlKHNlbGYsIG5hbWUsIG5hbWVsZW4sICZjb2RlLCAxKSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfS2V5RXJyb3IsICJ1bmRlZmluZWQgY2hhcmFjdGVyIG5hbWUgJyVzJyIsIG5hbWUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0KLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgaWYgKGNvZGUgPj0gMHgxMDAwMCkgewotICAgICAgICBzdHJbMF0gPSAweGQ4MDAgKyAoKGNvZGUgLSAweDEwMDAwKSA+PiAxMCk7Ci0gICAgICAgIHN0clsxXSA9IDB4ZGMwMCArICgoY29kZSAtIDB4MTAwMDApICYgMHgzZmYpOwotICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHN0ciwgMik7CisgICAgLy8gY2hlY2sgaWYgY29kZSBpcyBpbiB0aGUgUFVBIHJhbmdlIHRoYXQgd2UgdXNlIGZvciBuYW1lZCBzZXF1ZW5jZXMKKyAgICAvLyBhbmQgY29udmVydCBpdAorICAgIGlmIChJU19OQU1FRF9TRVEoY29kZSkpIHsKKyAgICAgICAgaW5kZXggPSBjb2RlLW5hbWVkX3NlcXVlbmNlc19zdGFydDsKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tS2luZEFuZERhdGEoUHlVbmljb2RlXzJCWVRFX0tJTkQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVkX3NlcXVlbmNlc1tpbmRleF0uc2VxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lZF9zZXF1ZW5jZXNbaW5kZXhdLnNlcWxlbik7CiAgICAgfQotI2VuZGlmCi0gICAgc3RyWzBdID0gKFB5X1VOSUNPREUpIGNvZGU7Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tVW5pY29kZShzdHIsIDEpOworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbU9yZGluYWwoY29kZSk7CiB9CiAKIC8qIFhYWCBBZGQgZG9jIHN0cmluZ3MuICovCmRpZmYgLS1naXQgYS9Nb2R1bGVzL3VuaWNvZGVkYXRhX2RiLmggYi9Nb2R1bGVzL3VuaWNvZGVkYXRhX2RiLmgKaW5kZXggOGUyZTcyNC4uNWQ1ZGNhOCAxMDA2NDQKLS0tIGEvTW9kdWxlcy91bmljb2RlZGF0YV9kYi5oCisrKyBiL01vZHVsZXMvdW5pY29kZWRhdGFfZGIuaApAQCAtMSw2ICsxLDYgQEAKIC8qIHRoaXMgZmlsZSB3YXMgZ2VuZXJhdGVkIGJ5IFRvb2xzL3VuaWNvZGUvbWFrZXVuaWNvZGVkYXRhLnB5IDMuMiAqLwogCi0jZGVmaW5lIFVOSURBVEFfVkVSU0lPTiAiNi4wLjAiCisjZGVmaW5lIFVOSURBVEFfVkVSU0lPTiAiNi4xLjAiCiAvKiBhIGxpc3Qgb2YgdW5pcXVlIGRhdGFiYXNlIHJlY29yZHMgKi8KIGNvbnN0IF9QeVVuaWNvZGVfRGF0YWJhc2VSZWNvcmQgX1B5VW5pY29kZV9EYXRhYmFzZV9SZWNvcmRzW10gPSB7CiAgICAgezAsIDAsIDAsIDAsIDAsIDB9LApAQCAtMjgsMTIgKzI4LDEyIEBACiAgICAgezI2LCAwLCAxOSwgMCwgNCwgMH0sCiAgICAgezI4LCAwLCAxMSwgMCwgNCwgMH0sCiAgICAgezMwLCAwLCAxOSwgMCwgMywgMH0sCi0gICAgezMwLCAwLCAxOSwgMCwgNCwgMH0sCiAgICAgezI5LCAwLCAxOSwgMCwgNCwgMTM2fSwKICAgICB7MzAsIDAsIDE5LCAwLCA1LCAwfSwKLSAgICB7MiwgMCwgMSwgMCwgNCwgMTM2fSwKKyAgICB7MTksIDAsIDEsIDAsIDQsIDEzNn0sCiAgICAgezI0LCAwLCAxOSwgMSwgNSwgMH0sCiAgICAgezE0LCAwLCAxNSwgMCwgNCwgMH0sCisgICAgezMwLCAwLCAxOSwgMCwgNCwgMH0sCiAgICAgezI5LCAwLCAxOSwgMCwgMywgMTM2fSwKICAgICB7MzAsIDAsIDExLCAwLCA0LCAwfSwKICAgICB7MjcsIDAsIDExLCAwLCA0LCAwfSwKQEAgLTQ5LDYgKzQ5LDcgQEAKICAgICB7MiwgMCwgMSwgMCwgNSwgMTB9LAogICAgIHsxLCAwLCAxLCAwLCA1LCAwfSwKICAgICB7MSwgMCwgMSwgMCwgNCwgMTM2fSwKKyAgICB7MiwgMCwgMSwgMCwgNCwgMTM2fSwKICAgICB7MiwgMCwgMSwgMCwgNSwgMH0sCiAgICAgezE5LCAwLCAxLCAwLCA1LCAwfSwKICAgICB7MSwgMCwgMSwgMCwgNSwgMTM2fSwKQEAgLTg3LDYgKzg4LDcgQEAKICAgICB7NiwgMCwgMTQsIDAsIDUsIDB9LAogICAgIHsyNiwgMCwgMSwgMCwgNSwgMH0sCiAgICAgezIxLCAwLCAxOSwgMCwgNSwgMH0sCisgICAgezI4LCAwLCAxMSwgMCwgNSwgMH0sCiAgICAgezQsIDIyMCwgMTQsIDAsIDUsIDB9LAogICAgIHs0LCAyMjIsIDE0LCAwLCA1LCAwfSwKICAgICB7NCwgMjI4LCAxNCwgMCwgNSwgMH0sCkBAIC0xMzQsNiArMTM2LDcgQEAKICAgICB7MTksIDAsIDUsIDAsIDUsIDEzNn0sCiAgICAgezcsIDAsIDksIDAsIDUsIDB9LAogICAgIHszMCwgMCwgNSwgMCwgNSwgMH0sCisgICAgezE0LCAwLCA1LCAwLCA1LCAwfSwKICAgICB7NCwgMzYsIDE0LCAwLCA1LCAwfSwKICAgICB7NCwgMCwgMTQsIDAsIDUsIDB9LAogICAgIHs3LCAwLCA0LCAwLCA1LCAwfSwKQEAgLTE0OCw3ICsxNTEsNiBAQAogICAgIHs0LCA3LCAxNCwgMCwgNSwgMH0sCiAgICAgezUsIDAsIDEsIDAsIDUsIDgwfSwKICAgICB7NSwgMCwgMSwgMCwgNSwgMTB9LAotICAgIHsyOCwgMCwgMTEsIDAsIDUsIDB9LAogICAgIHs5LCAwLCAxLCAwLCA1LCAwfSwKICAgICB7NCwgMCwgMTQsIDAsIDUsIDgwfSwKICAgICB7NCwgMCwgMTQsIDAsIDUsIDEwfSwKQEAgLTE3NSw3ICsxNzcsNiBAQAogICAgIHsxOSwgMCwgMSwgMCwgNSwgODB9LAogICAgIHsxMCwgMCwgMTgsIDAsIDUsIDB9LAogICAgIHs4LCAwLCAxLCAwLCA1LCAwfSwKLSAgICB7MTQsIDAsIDEsIDAsIDUsIDB9LAogICAgIHs1LCA5LCAxLCAwLCA1LCAwfSwKICAgICB7NCwgMSwgMTQsIDAsIDUsIDB9LAogICAgIHs0LCAyMzQsIDE0LCAwLCA1LCAwfSwKQEAgLTE5MCw2ICsxOTEsNyBAQAogICAgIHsxMCwgMCwgMTgsIDAsIDUsIDE3MH0sCiAgICAgezEwLCAwLCAxOCwgMCwgNSwgMTM2fSwKICAgICB7MTQsIDAsIDE1LCAwLCA1LCAwfSwKKyAgICB7MTQsIDAsIDEsIDAsIDUsIDB9LAogICAgIHsxNCwgMCwgNCwgMCwgNSwgMH0sCiAgICAgezIxLCAwLCAxOSwgMCwgNCwgMH0sCiAgICAgezIxLCAwLCAxOSwgMCwgNSwgMTM2fSwKQEAgLTI1Niw3ICsyNTgsNyBAQAogICAgIHs0LCAyMjgsIDE0LCAwLCAyLCAwfSwKICAgICB7NCwgMjMyLCAxNCwgMCwgMiwgMH0sCiAgICAgezQsIDIyMiwgMTQsIDAsIDIsIDB9LAotICAgIHs0LCAyMjQsIDE0LCAwLCAyLCAwfSwKKyAgICB7NSwgMjI0LCAxLCAwLCAyLCAwfSwKICAgICB7OCwgMCwgMSwgMCwgMiwgMTM2fSwKICAgICB7MTksIDAsIDEsIDAsIDIsIDEwfSwKICAgICB7NCwgOCwgMTQsIDAsIDIsIDgwfSwKQEAgLTI2Niw3ICsyNjgsNyBAQAogICAgIHszMCwgMCwgMSwgMCwgMiwgMH0sCiAgICAgezksIDAsIDEsIDAsIDIsIDEzNn0sCiAgICAgezMwLCAwLCAxLCAwLCAyLCAxMzZ9LAotICAgIHszMCwgMCwgMSwgMCwgNCwgMH0sCisgICAgezksIDAsIDEsIDAsIDQsIDB9LAogICAgIHs5LCAwLCAxOSwgMCwgMiwgMTM2fSwKICAgICB7MjksIDAsIDEsIDAsIDUsIDB9LAogICAgIHsxNSwgMCwgMSwgMCwgNSwgMH0sCkBAIC0zMjUsMTEgKzMyNywxMiBAQAogICAgIHsyNywgMCwgMSwgMCwgNSwgMTM2fSwKICAgICB7NywgMCwgOSwgMCwgNSwgMTM2fSwKICAgICB7MzAsIDAsIDEsIDAsIDUsIDEzNn0sCisgICAgezMwLCAwLCAxLCAwLCA0LCAwfSwKIH07CiAKIC8qIFJlaW5kZXhpbmcgb2YgTkZDIGZpcnN0IGNoYXJhY3RlcnMuICovCi0jZGVmaW5lIFRPVEFMX0ZJUlNUIDM3MAotI2RlZmluZSBUT1RBTF9MQVNUIDU1CisjZGVmaW5lIFRPVEFMX0ZJUlNUIDM3MgorI2RlZmluZSBUT1RBTF9MQVNUIDU2CiBzdHJ1Y3QgcmVpbmRleHtpbnQgc3RhcnQ7c2hvcnQgY291bnQsaW5kZXg7fTsKIHN0YXRpYyBzdHJ1Y3QgcmVpbmRleCBuZmNfZmlyc3RbXSA9IHsKICAgeyA2MCwgMiwgMH0sCkBAIC01MzgsNiArNTQxLDcgQEAKICAgeyA2OTc4NSwgMCwgMzY3fSwKICAgeyA2OTc4NywgMCwgMzY4fSwKICAgeyA2OTc5NywgMCwgMzY5fSwKKyAgeyA2OTkzNywgMSwgMzcwfSwKICAgezAsMCwwfQogfTsKIApAQCAtNTc0LDYgKzU3OCw3IEBACiAgIHsgNjk2NSwgMCwgNTF9LAogICB7IDEyNDQxLCAxLCA1Mn0sCiAgIHsgNjk4MTgsIDAsIDU0fSwKKyAgeyA2OTkyNywgMCwgNTV9LAogICB7MCwwLDB9CiB9OwogCkBAIC02NzEsNTE1ICs2NzYsNTE1IEBACiAgICAgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgCiAgICAgMzksIDQwLCA0MSwgNDEsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgCiAgICAgNTUsIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY1LCA2NiwgNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgCi0gICAgNzMsIDc0LCA3NSwgNzYsIDc3LCA3OCwgNzgsIDc5LCA4MCwgODEsIDgyLCA4MywgMTcsIDg0LCA4NSwgODYsIDg3LCA4OCwgCi0gICAgODksIDkwLCA5MSwgOTIsIDkzLCA5NCwgOTUsIDk2LCA5NywgOTgsIDk5LCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDEsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAyLCAKLSAgICAxMDMsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDQsIDQxLCA0MSwgMTA1LCAxMDYsIDEwNywgCi0gICAgMTA4LCAxMDksIDExMCwgMTExLCAxMTIsIDExMywgMTE0LCAxMTUsIDExNiwgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIAotICAgIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAKLSAgICAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgCi0gICAgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIAotICAgIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAKLSAgICAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgCi0gICAgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE4LCAxMTksIAotICAgIDExOSwgMTE5LCAxMTksIDExOSwgMTE5LCAxMTksIDExOSwgMTE5LCAxMTksIDExOSwgMTE5LCAxMTksIDExOSwgMTE5LCAKLSAgICAxMTksIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCisgICAgNzMsIDc0LCA3NSwgNzYsIDc3LCA3OCwgNzgsIDc5LCA4MCwgODEsIDgyLCA4MywgODQsIDg1LCA4NiwgODcsIDg4LCA4OSwgCisgICAgOTAsIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMCwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAyLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMywgMTA0LCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTA1LCA0MSwgNDEsIDEwNiwgMTA3LCAKKyAgICAxMDgsIDEwOSwgMTEwLCAxMTEsIDExMiwgMTEzLCAxMTQsIDExNSwgMTE2LCAxMTcsIDExOCwgMTE4LCAxMTgsIDExOCwgCisgICAgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIAorICAgIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAKKyAgICAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgCisgICAgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIAorICAgIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAKKyAgICAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOSwgCiAgICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjEsIDEyMSwgMTIyLCAxMjMsIDEyNCwgCi0gICAgMTI1LCAxMjYsIDEyNiwgMTI3LCAxMjgsIDEyOSwgMTMwLCAxMzEsIDEzMiwgMTMzLCAxMzQsIDEzNSwgMTM2LCAxNywgMTM3LCAKLSAgICAxMzgsIDEzOSwgMTQwLCAxNDEsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE0MiwgMTcsIDE0MywgMTcsIDE0NCwgMTcsIAotICAgIDE0NSwgMTcsIDE0NiwgMTcsIDE3LCAxNywgMTQ3LCAxNywgMTcsIDE3LCAxNDgsIDE0OSwgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgMTUwLCAxNywgMTUxLCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgMTUyLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgNDEsIDQxLCA0MSwgNDEsIDE1MywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE1NCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgNzgsIAotICAgIDE1NSwgMTU2LCAxNTcsIDE1OCwgMTcsIDE1OSwgMTcsIDE2MCwgMTYxLCAxNjIsIDE2MywgMTY0LCAxNjUsIDE2NiwgMTY3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNjgsIDE2OSwgMTcwLCAxNzEsIDE3MiwgCi0gICAgMTcsIDE3MywgMTc0LCAxNzUsIDE3NiwgMTc3LCAxNzgsIDE3OSwgMTgwLCAxODEsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAKLSAgICAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTgyLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgCi0gICAgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIAotICAgIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTAwLCAxMDAsIDEwMCwgMTgzLCAxMDAsIDE4NCwgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDEyMSwgCi0gICAgMTIxLCAxMjEsIDEyMSwgMTg1LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxODYsIDE3LCAxODcsIAotICAgIDE4OCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTg5LCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIAotICAgIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAKLSAgICAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDEyMCwgCi0gICAgMTIwLCAxMjAsIDEyMCwgMTIwLCAxMjAsIDE4OSwgCisgICAgMTIwLCAxMjAsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjIsIDEyMiwgMTIzLCAxMjQsIAorICAgIDEyNSwgMTI2LCAxMjcsIDEyNywgMTI4LCAxMjksIDEzMCwgMTMxLCAxMzIsIDEzMywgMTM0LCAxMzUsIDEzNiwgMTM3LCA4NCwgCisgICAgMTM4LCAxMzksIDE0MCwgMTQxLCAxNDIsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDE0MywgODQsIDE0NCwgMTQ1LCAxNDYsIAorICAgIDg0LCAxNDcsIDg0LCAxNDgsIDg0LCA4NCwgODQsIDE0OSwgODQsIDg0LCA4NCwgMTUwLCAxNTEsIDE1MiwgMTUzLCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCAxNTQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDE1NSwgODQsIDE1NiwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDE1NywgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDQxLCA0MSwgNDEsIDQxLCAxNTgsIDg0LCA4NCwgODQsIDg0LCAKKyAgICA4NCwgODQsIDg0LCA4NCwgODQsIDE1OSwgMTYwLCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDE2MSwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCAKKyAgICA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCAKKyAgICA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCAKKyAgICA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCAKKyAgICA4NCwgNzgsIDE2MiwgMTYzLCAxNjQsIDE2NSwgODQsIDE2NiwgODQsIDE2NywgMTY4LCAxNjksIDE3MCwgMTcxLCAxNzIsIAorICAgIDE3MywgMTc0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDE3NSwgMTc2LCA4NCwgODQsIDE3NywgMTc4LCAxNzksIAorICAgIDE4MCwgMTgxLCA4NCwgMTgyLCAxODMsIDE4NCwgMTg1LCAxODYsIDE4NywgMTg4LCAxODksIDE5MCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIAorICAgIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxOTEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAKKyAgICAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgCisgICAgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxMDEsIDEwMSwgMTAxLCAxOTIsIAorICAgIDEwMSwgMTkzLCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgMTIyLCAxMjIsIDEyMiwgMTIyLCAxOTQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIAorICAgIDE5NSwgODQsIDE5NiwgMTk3LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCisgICAgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxOTgsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgCisgICAgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIAorICAgIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAKKyAgICAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTIxLCAxMjEsIDEyMSwgMTk4LCAKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBzaG9ydCBpbmRleDJbXSA9IHsKQEAgLTExOTEsMTQwMSArMTE5NiwxNDY0IEBACiAgICAgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgCiAgICAgMjAsIDIwLCA5LCAxNiwgMTAsIDE2LCAxLCAxLCAxLCAxLCAxLCAxLCAzLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAKICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAyMSwgMjIsIDgsIDgsIDIzLCA4LCAyNCwgCi0gICAgMjUsIDI2LCAyNywgMjgsIDI5LCAxNiwgMzAsIDI1LCAzMSwgMzIsIDMzLCAzNCwgMzQsIDI2LCAzNSwgMjUsIDIyLCAyNiwgCi0gICAgMzQsIDI4LCAzNiwgMzcsIDM3LCAzNywgMjIsIDM4LCAzOCwgMzgsIDM4LCAzOCwgMzgsIDM5LCAzOCwgMzgsIDM4LCAzOCwgCisgICAgMjIsIDI1LCAyNiwgMjcsIDI4LCAxNiwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzQsIDI1LCAzNSwgMjIsIDIyLCAyNSwgCisgICAgMzQsIDI3LCAzNiwgMzcsIDM3LCAzNywgMjIsIDM4LCAzOCwgMzgsIDM4LCAzOCwgMzgsIDM5LCAzOCwgMzgsIDM4LCAzOCwgCiAgICAgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOSwgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOCwgNDAsIDM5LCAzOCwgMzgsIDM4LCAzOCwgCiAgICAgMzgsIDM5LCA0MSwgNDIsIDQyLCA0MywgNDMsIDQzLCA0MywgNDEsIDQzLCA0MiwgNDIsIDQyLCA0MywgNDIsIDQyLCA0MywgCiAgICAgNDMsIDQxLCA0MywgNDIsIDQyLCA0MywgNDMsIDQzLCA0MCwgNDEsIDQyLCA0MiwgNDMsIDQyLCA0MywgNDEsIDQzLCAzOCwgCiAgICAgNDIsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgNDQsIDQxLCAzOCwgCiAgICAgNDIsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MiwgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgCi0gICAgNDMsIDM5LCA0MSwgMzgsIDQzLCAzOCwgNDIsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDEsIDQ1LCAyOCwgMzgsIDQzLCAzOCwgCi0gICAgNDMsIDQxLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCA0NSwgMjgsIDM5LCA0MSwgMzgsIDQyLCAzOCwgNDMsIDM4LCA0MiwgCi0gICAgMjgsIDM5LCA0MSwgMzgsIDQyLCAzOCwgNDMsIDM4LCA0MywgMzksIDQxLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgCisgICAgNDMsIDM5LCA0MSwgMzgsIDQzLCAzOCwgNDIsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDEsIDQ1LCA0NiwgMzgsIDQzLCAzOCwgCisgICAgNDMsIDQxLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCA0NSwgNDYsIDM5LCA0MSwgMzgsIDQyLCAzOCwgNDMsIDM4LCA0MiwgCisgICAgNDYsIDM5LCA0MSwgMzgsIDQyLCAzOCwgNDMsIDM4LCA0MywgMzksIDQxLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgCiAgICAgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOSwgNDEsIDM4LCA0MywgMzgsIDQyLCAzOCwgCiAgICAgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgCi0gICAgMzUsIDQ2LCA0NCwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NCwgNDYsIDQ0LCA0NCwgNDQsIDQ2LCA0NiwgNDQsIDQ0LCA0NCwgCi0gICAgNDQsIDQ2LCA0NCwgNDQsIDQ2LCA0NCwgNDQsIDQ0LCA0NiwgNDYsIDQ2LCA0NCwgNDQsIDQ2LCA0NCwgMzgsIDQzLCA0NCwgCi0gICAgNDYsIDQ0LCA0NiwgNDQsIDQ0LCA0NiwgNDQsIDQ2LCA0NiwgNDQsIDQ2LCA0NCwgMzgsIDQzLCA0NCwgNDQsIDQ0LCA0NiwgCi0gICAgNDQsIDQ2LCA0NCwgNDQsIDQ2LCA0NiwgNDcsIDQ0LCA0NiwgNDYsIDQ2LCA0NywgNDcsIDQ3LCA0NywgNDgsIDQ5LCAzNSwgCi0gICAgNDgsIDQ5LCAzNSwgNDgsIDQ5LCAzNSwgMzgsIDQyLCAzOCwgNDIsIDM4LCA0MiwgMzgsIDQyLCAzOCwgNDIsIDM4LCA0MiwgCi0gICAgMzgsIDQyLCAzOCwgNDIsIDQ2LCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCA0NCwgNDYsIDM4LCA0MywgMzgsIDQzLCAzOCwgCi0gICAgNDMsIDM4LCA0MywgMzgsIDQzLCA0MywgNDgsIDQ5LCAzNSwgMzgsIDQzLCA0NCwgNDQsIDM4LCA0MywgMzgsIDQzLCAzOCwgCisgICAgMzUsIDQ3LCA0NCwgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NCwgNDcsIDQ0LCA0NCwgNDQsIDQ3LCA0NywgNDQsIDQ0LCA0NCwgCisgICAgNDQsIDQ3LCA0NCwgNDQsIDQ3LCA0NCwgNDQsIDQ0LCA0NywgNDcsIDQ3LCA0NCwgNDQsIDQ3LCA0NCwgMzgsIDQzLCA0NCwgCisgICAgNDcsIDQ0LCA0NywgNDQsIDQ0LCA0NywgNDQsIDQ3LCA0NywgNDQsIDQ3LCA0NCwgMzgsIDQzLCA0NCwgNDQsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDQsIDQ3LCA0NywgNDgsIDQ0LCA0NywgNDcsIDQ3LCA0OCwgNDgsIDQ4LCA0OCwgNDksIDUwLCAzNSwgCisgICAgNDksIDUwLCAzNSwgNDksIDUwLCAzNSwgMzgsIDQyLCAzOCwgNDIsIDM4LCA0MiwgMzgsIDQyLCAzOCwgNDIsIDM4LCA0MiwgCisgICAgMzgsIDQyLCAzOCwgNDIsIDQ3LCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCA0NCwgNDcsIDM4LCA0MywgMzgsIDQzLCAzOCwgCisgICAgNDMsIDM4LCA0MywgMzgsIDQzLCA0MywgNDksIDUwLCAzNSwgMzgsIDQzLCA0NCwgNDQsIDM4LCA0MywgMzgsIDQzLCAzOCwgCiAgICAgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgCi0gICAgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDQ0LCA0NiwgMzgsIDQzLCA0NCwgCi0gICAgNDYsIDQ0LCA0NiwgNDQsIDQ2LCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgCi0gICAgNDMsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ0LCA0NCwgNDYsIDQ0LCA0NCwgNDYsIDQ2LCA0NCwgNDYsIDQ0LCA0NCwgCi0gICAgNDQsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NiwgNDEsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQxLCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ3LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MSwgNTEsIDUyLCA1MiwgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MywgCi0gICAgNTMsIDU0LCA1MywgNTEsIDU1LCA1MSwgNTUsIDU1LCA1NSwgNTEsIDU1LCA1MSwgNTEsIDU2LCA1MiwgNTMsIDUzLCA1MywgCi0gICAgNTMsIDUzLCA1MywgMjYsIDI2LCAyNiwgMjYsIDU3LCAyNiwgNTMsIDU0LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUzLCA1MywgCi0gICAgNTMsIDUzLCA1MywgNTMsIDUzLCA1MSwgNTMsIDUyLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgCi0gICAgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDU4LCA1OCwgNTgsIDU4LCA1OCwgNTksIDU4LCA1OCwgNTgsIDU4LCA1OCwgCi0gICAgNTgsIDU4LCA1OSwgNTksIDU4LCA1OSwgNTgsIDU5LCA1OCwgNTgsIDYwLCA2MSwgNjEsIDYxLCA2MSwgNjAsIDYyLCA2MSwgCi0gICAgNjEsIDYxLCA2MSwgNjEsIDYzLCA2MywgNjQsIDY0LCA2NCwgNjQsIDY1LCA2NSwgNjEsIDYxLCA2MSwgNjEsIDY0LCA2NCwgCi0gICAgNjEsIDY0LCA2NCwgNjEsIDYxLCA2NiwgNjYsIDY2LCA2NiwgNjcsIDYxLCA2MSwgNjEsIDYxLCA1OSwgNTksIDU5LCA2OCwgCi0gICAgNjgsIDU4LCA2OCwgNjgsIDY5LCA1OSwgNjEsIDYxLCA2MSwgNTksIDU5LCA1OSwgNjEsIDYxLCA3MCwgNTksIDU5LCA1OSwgCi0gICAgNjEsIDYxLCA2MSwgNjEsIDU5LCA2MCwgNjEsIDYxLCA1OSwgNzEsIDcyLCA3MiwgNzEsIDcyLCA3MiwgNzEsIDU5LCA1OSwgCi0gICAgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA1OSwgNTksIDU5LCA0NCwgNDYsIDQ0LCA0NiwgNzMsIDUzLCA0NCwgCi0gICAgNDYsIDAsIDAsIDUwLCA0NiwgNDYsIDQ2LCA3NCwgMCwgMCwgMCwgMCwgMCwgNTcsIDc1LCAzOCwgNzQsIDM4LCAzOCwgMzgsIAorICAgIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCA0NCwgNDcsIDM4LCA0MywgNDQsIAorICAgIDQ3LCA0NCwgNDcsIDQ0LCA0NywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIAorICAgIDQzLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NCwgNDQsIDQ3LCA0NCwgNDQsIDQ3LCA0NywgNDQsIDQ3LCA0NCwgNDQsIAorICAgIDQ0LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDcsIDQxLCA0NywgNDcsIDQ3LCA0NywgNDcsIAorICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0MSwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAorICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAorICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAorICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0OCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAorICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNTEsIAorICAgIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTIsIDUyLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTQsIAorICAgIDU0LCA1NSwgNTQsIDUyLCA1NiwgNTIsIDU2LCA1NiwgNTYsIDUyLCA1NiwgNTIsIDUyLCA1NywgNTMsIDU0LCA1NCwgNTQsIAorICAgIDU0LCA1NCwgNTQsIDI1LCAyNSwgMjUsIDI1LCA1OCwgMjUsIDU0LCA1NSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1NCwgNTQsIAorICAgIDU0LCA1NCwgNTQsIDU0LCA1NCwgNTIsIDU0LCA1MywgNTQsIDU0LCA1NCwgNTQsIDU0LCA1NCwgNTQsIDU0LCA1NCwgNTQsIAorICAgIDU0LCA1NCwgNTQsIDU0LCA1NCwgNTQsIDU0LCA1OSwgNTksIDU5LCA1OSwgNTksIDYwLCA1OSwgNTksIDU5LCA1OSwgNTksIAorICAgIDU5LCA1OSwgNjAsIDYwLCA1OSwgNjAsIDU5LCA2MCwgNTksIDU5LCA2MSwgNjIsIDYyLCA2MiwgNjIsIDYxLCA2MywgNjIsIAorICAgIDYyLCA2MiwgNjIsIDYyLCA2NCwgNjQsIDY1LCA2NSwgNjUsIDY1LCA2NiwgNjYsIDYyLCA2MiwgNjIsIDYyLCA2NSwgNjUsIAorICAgIDYyLCA2NSwgNjUsIDYyLCA2MiwgNjcsIDY3LCA2NywgNjcsIDY4LCA2MiwgNjIsIDYyLCA2MiwgNjAsIDYwLCA2MCwgNjksIAorICAgIDY5LCA1OSwgNjksIDY5LCA3MCwgNjAsIDYyLCA2MiwgNjIsIDYwLCA2MCwgNjAsIDYyLCA2MiwgNzEsIDYwLCA2MCwgNjAsIAorICAgIDYyLCA2MiwgNjIsIDYyLCA2MCwgNjEsIDYyLCA2MiwgNjAsIDcyLCA3MywgNzMsIDcyLCA3MywgNzMsIDcyLCA2MCwgNjAsIAorICAgIDYwLCA2MCwgNjAsIDYwLCA2MCwgNjAsIDYwLCA2MCwgNjAsIDYwLCA2MCwgNDQsIDQ3LCA0NCwgNDcsIDc0LCA1NCwgNDQsIAorICAgIDQ3LCAwLCAwLCA1MSwgNDcsIDQ3LCA0NywgNzUsIDAsIDAsIDAsIDAsIDAsIDU4LCA3NiwgMzgsIDc1LCAzOCwgMzgsIDM4LCAKICAgICAwLCAzOCwgMCwgMzgsIDM4LCA0MywgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzksIAogICAgIDM5LCAzOSwgMzksIDM5LCAwLCAzOSwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzgsIDM4LCA0MywgNDMsIDQzLCA0MywgCiAgICAgNDMsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgCi0gICAgNDYsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MywgNDMsIDQzLCA0MywgNDMsIDQ0LCAzNSwgMzUsIDQ4LCA3NiwgCi0gICAgNzYsIDM1LCAzNSwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDM1LCAzNSwgMzUsIDQ2LCA0OCwgMzUsIDc3LCA0NCwgCi0gICAgNDYsIDQ4LCA0NCwgNDYsIDQ2LCA0NCwgNDQsIDQ0LCAzOCwgNzgsIDQ0LCAzOCwgNDQsIDQ0LCA0NCwgMzgsIDQ0LCA0NCwgCi0gICAgNDQsIDQ0LCAzOCwgMzgsIDM4LCA0NCwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgNzgsIDM5LCAzOSwgCisgICAgNDcsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MywgNDMsIDQzLCA0MywgNDMsIDQ0LCAzNSwgMzUsIDQ5LCA3NywgCisgICAgNzcsIDM1LCAzNSwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDM1LCAzNSwgMzUsIDQ3LCA0OSwgMzUsIDc4LCA0NCwgCisgICAgNDcsIDQ5LCA0NCwgNDcsIDQ3LCA0NCwgNDQsIDQ0LCAzOCwgNzksIDQ0LCAzOCwgNDQsIDQ0LCA0NCwgMzgsIDQ0LCA0NCwgCisgICAgNDQsIDQ0LCAzOCwgMzgsIDM4LCA0NCwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgNzksIDM5LCAzOSwgCiAgICAgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgMzksIDM5LCAzOSwgCiAgICAgMzksIDM5LCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MiwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgCiAgICAgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQxLCA0MSwgNDEsIDQzLCA0MiwgCi0gICAgNDYsIDQzLCA0NiwgNDYsIDQ2LCA0MywgNDYsIDQ2LCA0NiwgNDYsIDQzLCA0MywgNDMsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgMzgsIDQzLCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNzksIDgwLCA4MCwgODAsIDgwLCA4MCwgCi0gICAgODEsIDgxLCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgNDQsIDQ2LCA0NCwgMzgsIDQzLCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NiwgCi0gICAgMzgsIDQzLCAzOCwgNDMsIDQ0LCA0NiwgMzgsIDQzLCA0NCwgNDYsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDQ0LCA0NiwgCi0gICAgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgNDQsIDQ2LCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgCi0gICAgMzgsIDQzLCA0NCwgNDYsIDM4LCA0MywgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDAsIDAsIDAsIAorICAgIDQ3LCA0MywgNDcsIDQ3LCA0NywgNDMsIDQ3LCA0NywgNDcsIDQ3LCA0MywgNDMsIDQzLCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDM4LCA0MywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDgwLCA4MSwgODEsIDgxLCA4MSwgODEsIAorICAgIDgyLCA4MiwgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDQ0LCA0NywgNDQsIDM4LCA0MywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDcsIAorICAgIDM4LCA0MywgMzgsIDQzLCA0NCwgNDcsIDM4LCA0MywgNDQsIDQ3LCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCA0NCwgNDcsIAorICAgIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDQ0LCA0NywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIAorICAgIDM4LCA0MywgNDQsIDQ3LCAzOCwgNDMsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIAogICAgIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIAotICAgIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDAsIDAsIDUyLCA4MiwgODIsIDgyLCA4MiwgODIsIDgyLCAwLCA0NiwgNDYsIDQ2LCAKLSAgICA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCAKLSAgICA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDM1LCAKLSAgICAwLCA4MiwgODMsIDAsIDAsIDAsIDAsIDAsIDAsIDg0LCA4MCwgODAsIDgwLCA4MCwgODQsIDgwLCA4MCwgODAsIDg1LCA4NCwgCi0gICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgODAsIDgwLCA4NCwgODAsIDgwLCA4NSwgCi0gICAgODYsIDgwLCA4NywgODgsIDg5LCA5MCwgOTEsIDkyLCA5MywgOTQsIDk1LCA5NiwgOTYsIDk3LCA5OCwgOTksIDEwMCwgMTAxLCAKLSAgICAxMDIsIDEwMywgMTA0LCAxMDIsIDgwLCA4NCwgMTAyLCA5NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA1LCAxMDUsIAotICAgIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTAyLCAxMDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNiwgMTA2LCAxMDYsIAotICAgIDEwNiwgMCwgMCwgNzcsIDc3LCAxMDcsIDEwOCwgMTA4LCAxMDksIDExMCwgMTExLCAyNywgMjcsIDgwLCA4MCwgODAsIDgwLCAKLSAgICA4MCwgODAsIDgwLCA4MCwgMTEyLCAxMTMsIDExNCwgMTExLCAwLCAwLCAxMTEsIDExMSwgMTE1LCAxMTUsIDExNiwgMTE2LCAKLSAgICAxMTYsIDExNiwgMTE2LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgCi0gICAgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIAotICAgIDExNywgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTgsIDExOSwgMTIwLCAKLSAgICAxMTIsIDExMywgMTE0LCAxMjEsIDEyMiwgMTIzLCAxMjMsIDEyNCwgODQsIDgwLCA4MCwgODAsIDgwLCA4MCwgODQsIDgwLCAKLSAgICA4MCwgODQsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTA4LCAxMjYsIDEyNiwgCi0gICAgMTExLCAxMTUsIDExNSwgMTI3LCAxMTUsIDExNSwgMTE1LCAxMTUsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTE1LCAxMTUsIAotICAgIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAKLSAgICAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgCi0gICAgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIAotICAgIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAKLSAgICAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNiwgCi0gICAgMTE1LCAxMTYsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIAotICAgIDExNSwgMTE1LCAxMTUsIDExNSwgMTE2LCAxMTEsIDExNSwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDEwNiwgMjcsIAotICAgIDgwLCA4MCwgODAsIDgwLCA4NCwgODAsIDExNywgMTE3LCA4MCwgODAsIDI3LCA4NCwgODAsIDgwLCA4NCwgMTE1LCAxMTUsIAotICAgIDEyOSwgMTI5LCAxMjksIDEyOSwgMTI5LCAxMjksIDEyOSwgMTI5LCAxMjksIDEyOSwgMTE1LCAxMTUsIDExNSwgMTMwLCAKLSAgICAxMzAsIDExNSwgMTExLCAxMTEsIDExMSwgMTExLCAxMTEsIDExMSwgMTExLCAxMTEsIDExMSwgMTExLCAxMTEsIDExMSwgCi0gICAgMTExLCAxMTEsIDAsIDEwNiwgMTE1LCAxMzEsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIAotICAgIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAKLSAgICAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDgwLCA4NCwgODAsIDgwLCA4NCwgODAsIDgwLCA4NCwgODQsIAotICAgIDg0LCA4MCwgODQsIDg0LCA4MCwgODQsIDgwLCA4MCwgODAsIDg0LCA4MCwgODQsIDgwLCA4NCwgODAsIDg0LCA4MCwgODAsIAotICAgIDAsIDAsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgCi0gICAgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIAotICAgIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAKLSAgICAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgCi0gICAgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIAotICAgIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAKLSAgICAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgCi0gICAgMTMyLCAxMzIsIDEzMiwgMTE1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzMsIDEzMywgCi0gICAgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIAotICAgIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDgwLCA4MCwgCi0gICAgODAsIDgwLCA4MCwgODAsIDgwLCA4NCwgODAsIDEzNCwgMTM0LCAyNywgMTM1LCAxMzUsIDEzNSwgMTM0LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDgwLCA4MCwgODAsIDgwLCAxMzQsIDgwLCA4MCwgODAsIAotICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDEzNCwgODAsIDgwLCA4MCwgMTM0LCA4MCwgODAsIDgwLCA4MCwgODAsIDAsIDAsIAotICAgIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDAsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgODQsIDg0LCA4NCwgCi0gICAgMCwgMCwgMTAyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzIsIDEzMiwgCi0gICAgMTMyLCAxMzYsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKKyAgICA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCAwLCAwLCA1MywgODMsIDgzLCA4MywgODMsIDgzLCA4MywgMCwgNDcsIDQ3LCA0NywgCiAgICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgMTM3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTM3LCA0NywgNDcsIDEzNywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCAxMzIsIDEzNiwgMTM4LCA0NywgMTM2LCAxMzYsIDEzNiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIAotICAgIDEzMiwgMTMyLCAxMzIsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM5LCAxMzYsIDEzNiwgNDcsIDgwLCA4NCwgODAsIDgwLCAKLSAgICAxMzIsIDEzMiwgMTMyLCAxNDAsIDE0MCwgMTQwLCAxNDAsIDE0MCwgMTQwLCAxNDAsIDE0MCwgNDcsIDQ3LCAxMzIsIDEzMiwgCi0gICAgODIsIDgyLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDgyLCA1MiwgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDEzMiwgMTM2LCAxMzYsIDAsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgNDcsIDQ3LCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCAwLCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMTQyLCA0NywgCi0gICAgMTQzLCAxMzYsIDEzNiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAwLCAwLCAxMzYsIDEzNiwgMCwgMCwgMTQ0LCAxNDQsIDEzOSwgCi0gICAgNDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0MywgMCwgMCwgMCwgMCwgMTQwLCAxNDAsIDAsIDE0MCwgNDcsIDQ3LCAKLSAgICAxMzIsIDEzMiwgMCwgMCwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCA0NywgNDcsIAotICAgIDE0NSwgMTQ1LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCA3OSwgMTQ1LCAwLCAwLCAwLCAwLCAwLCAxMzIsIDEzMiwgCi0gICAgMTM2LCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCAwLCAwLCA0NywgNDcsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDE0MCwgMCwgNDcsIDE0MCwgMCwgNDcsIDQ3LCAwLCAwLCAKLSAgICAxNDIsIDAsIDEzNiwgMTM2LCAxMzYsIDEzMiwgMTMyLCAwLCAwLCAwLCAwLCAxMzIsIDEzMiwgMCwgMCwgMTMyLCAxMzIsIAotICAgIDEzOSwgMCwgMCwgMCwgMTMyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDAsIDE0MCwgMTQwLCA0NywgMCwgMTQwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDEzMiwgCi0gICAgMTMyLCA0NywgNDcsIDQ3LCAxMzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzMiwgMTMyLCAxMzYsIDAsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDAsIDE0MiwgCi0gICAgNDcsIDEzNiwgMTM2LCAxMzYsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAwLCAxMzIsIDEzMiwgMTM2LCAwLCAxMzYsIAotICAgIDEzNiwgMTM5LCAwLCAwLCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCAKLSAgICAxMzIsIDEzMiwgMCwgMCwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAwLCAxNDUsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzMiwgMTM2LCAxMzYsIDAsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgNDcsIDQ3LCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCAxNDIsIDQ3LCAxNDMsIAotICAgIDEzMiwgMTM2LCAxMzIsIDEzMiwgMTMyLCAxMzIsIDAsIDAsIDEzNiwgMTQ0LCAwLCAwLCAxNDQsIDE0NCwgMTM5LCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAxNDcsIDE0MywgMCwgMCwgMCwgMCwgMTQwLCAxNDAsIDAsIDQ3LCA0NywgNDcsIDEzMiwgCi0gICAgMTMyLCAwLCAwLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDc5LCA0NywgMTQ2LCAKLSAgICAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMyLCA0NywgMCwgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCAxMzcsIDQ3LCAwLCAwLCAwLCA0NywgCi0gICAgNDcsIDAsIDQ3LCAwLCA0NywgNDcsIDAsIDAsIDAsIDQ3LCA0NywgMCwgMCwgMCwgNDcsIDQ3LCA0NywgMCwgMCwgMCwgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMTQzLCAxMzYsIDEzMiwgCi0gICAgMTM2LCAxMzYsIDAsIDAsIDAsIDEzNiwgMTM2LCAxMzYsIDAsIDE0NCwgMTQ0LCAxNDQsIDEzOSwgMCwgMCwgNDcsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDE0MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDYsIDE0NiwgMTQ2LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAxNDUsIDI3LCAwLCAwLCAwLCAwLCAwLCAwLCAxMzYsIDEzNiwgMTM2LCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDAsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgNDcsIDEzMiwgMTMyLCAxMzIsIDEzNiwgMTM2LCAKLSAgICAxMzYsIDEzNiwgMCwgMTMyLCAxMzIsIDE0OCwgMCwgMTMyLCAxMzIsIDEzMiwgMTM5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxNDksIDE1MCwgMCwgNDcsIDQ3LCAwLCAwLCAwLCAwLCAwLCAwLCA0NywgNDcsIDEzMiwgMTMyLCAwLCAwLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE1MSwgMTUxLCAKLSAgICAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgNzksIDAsIDAsIDEzNiwgMTM2LCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMTQyLCA0NywgMTM2LCAxNTIsIDE0NCwgMTM2LCAKLSAgICAxNDMsIDEzNiwgMTM2LCAwLCAxNTIsIDE0NCwgMTQ0LCAwLCAxNDQsIDE0NCwgMTMyLCAxMzksIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDE0MywgMTQzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NywgMCwgNDcsIDQ3LCAxMzIsIDEzMiwgMCwgMCwgMTQxLCAKLSAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAwLCA0NywgNDcsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzNiwgMTM2LCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDAsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgNDcsIDE0MywgMTM2LCAxMzYsIDEzMiwgMTMyLCAKLSAgICAxMzIsIDEzMiwgMCwgMTM2LCAxMzYsIDEzNiwgMCwgMTQ0LCAxNDQsIDE0NCwgMTM5LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMTQzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NywgNDcsIDEzMiwgMTMyLCAwLCAwLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDAsIDAsIDAsIAotICAgIDc5LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCAxMzYsIDEzNiwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDAsIDAsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCAwLCAxNTMsIDAsIDAsIDAsIDAsIDE0MywgMTM2LCAxMzYsIDEzMiwgMTMyLCAxMzIsIAotICAgIDAsIDEzMiwgMCwgMTM2LCAxMzYsIDE0NCwgMTM2LCAxNDQsIDE0NCwgMTQ0LCAxNDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzNiwgMTM2LCA4MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTMyLCA0NywgMTU0LCAKLSAgICAxMzIsIDEzMiwgMTMyLCAxMzIsIDE1NSwgMTU1LCAxMzksIDAsIDAsIDAsIDAsIDE0NSwgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNTIsIDEzMiwgMTU2LCAxNTYsIDE1NiwgMTU2LCAxMzIsIDEzMiwgMTMyLCA4MiwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCA4MiwgODIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMzUsIAorICAgIDAsIDgzLCA4NCwgMCwgMCwgMCwgMCwgODUsIDAsIDg2LCA4MSwgODEsIDgxLCA4MSwgODYsIDgxLCA4MSwgODEsIDg3LCA4NiwgCisgICAgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODYsIDg2LCA4NiwgODYsIDg2LCA4NiwgODEsIDgxLCA4NiwgODEsIDgxLCA4NywgCisgICAgODgsIDgxLCA4OSwgOTAsIDkxLCA5MiwgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTgsIDk5LCAxMDAsIDEwMSwgMTAyLCAKKyAgICAxMDMsIDEwNCwgMTA1LCAxMDYsIDEwNCwgODEsIDg2LCAxMDQsIDk3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAxMDcsIDEwNywgMTA3LCAxMDQsIDEwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA4LCAxMDgsIAorICAgIDEwOCwgMTA4LCAxMDgsIDAsIDc4LCA3OCwgMTA5LCAxMTAsIDExMCwgMTExLCAxMTIsIDExMywgMjYsIDI2LCA4MSwgODEsIAorICAgIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDExNCwgMTE1LCAxMTYsIDExMywgMCwgMCwgMTEzLCAxMTMsIDExNywgMTE3LCAKKyAgICAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgCisgICAgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIAorICAgIDExNywgMTE3LCAxMTksIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTIwLCAKKyAgICAxMjEsIDEyMiwgMTE0LCAxMTUsIDExNiwgMTIzLCAxMjQsIDEyNSwgMTI1LCAxMjYsIDg2LCA4MSwgODEsIDgxLCA4MSwgODEsIAorICAgIDg2LCA4MSwgODEsIDg2LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDExMCwgCisgICAgMTI4LCAxMjgsIDExMywgMTE3LCAxMTcsIDEyOSwgMTE3LCAxMTcsIDExNywgMTE3LCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAKKyAgICAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgCisgICAgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIAorICAgIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAKKyAgICAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgCisgICAgMTE3LCAxMTgsIDExNywgMTE4LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIAorICAgIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExOCwgMTEzLCAxMTcsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCAKKyAgICAxMDgsIDI2LCA4MSwgODEsIDgxLCA4MSwgODYsIDgxLCAxMTksIDExOSwgODEsIDgxLCAyNiwgODYsIDgxLCA4MSwgODYsIAorICAgIDExNywgMTE3LCAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIDExNywgMTE3LCAKKyAgICAxMTcsIDEzMiwgMTMyLCAxMTcsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAwLCAxMzMsIDExNywgMTM0LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIAorICAgIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAKKyAgICAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCA4MSwgODYsIDgxLCA4MSwgODYsIDgxLCA4MSwgCisgICAgODYsIDg2LCA4NiwgODEsIDg2LCA4NiwgODEsIDg2LCA4MSwgODEsIDgxLCA4NiwgODEsIDg2LCA4MSwgODYsIDgxLCA4NiwgCisgICAgODEsIDgxLCAwLCAwLCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAKKyAgICAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgCisgICAgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIAorICAgIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAKKyAgICAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgCisgICAgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIAorICAgIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAKKyAgICAxMzUsIDEzNSwgMTM1LCAxMzUsIDExNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM2LCAKKyAgICAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCA4MSwgCisgICAgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODYsIDgxLCAxMzcsIDEzNywgMjYsIDEzOCwgMTM4LCAxMzgsIDEzNywgMCwgMCwgCisgICAgMCwgMCwgMCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCA4MSwgODEsIDgxLCA4MSwgMTM3LCA4MSwgODEsIAorICAgIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCAxMzcsIDgxLCA4MSwgODEsIDEzNywgODEsIDgxLCA4MSwgODEsIDgxLCAwLCAKKyAgICAwLCAxMDQsIDEwNCwgMTA0LCAxMDQsIDEwNCwgMTA0LCAxMDQsIDEwNCwgMTA0LCAxMDQsIDEwNCwgMTA0LCAxMDQsIDEwNCwgCisgICAgMTA0LCAwLCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDg2LCA4NiwgODYsIAorICAgIDAsIDAsIDEwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNDcsIDQ3LCAwLCA0NywgMCwgMCwgNDcsIDQ3LCAwLCA0NywgMCwgMCwgNDcsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgMCwgNDcsIDAsIDQ3LCAKLSAgICAwLCAwLCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCAxMzIsIDQ3LCAxNTQsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTU3LCAKLSAgICAxNTcsIDAsIDEzMiwgMTMyLCA0NywgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCA1MiwgMCwgMTU4LCAxNTgsIDE1OCwgCi0gICAgMTU4LCAxMzIsIDEzMiwgMCwgMCwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAwLCAKLSAgICAwLCAxNTQsIDE1NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDc5LCA3OSwgNzksIDgyLCA4MiwgODIsIDgyLCAKLSAgICA4MiwgODIsIDgyLCA4MiwgMTU5LCA4MiwgODIsIDgyLCA4MiwgODIsIDgyLCA3OSwgNzksIDc5LCA3OSwgNzksIDg0LCA4NCwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDc5LCA4NCwgNzksIDg0LCA3OSwgCi0gICAgMTYwLCAxNjEsIDE2MiwgMTYxLCAxNjIsIDEzNiwgMTM2LCA0NywgNDcsIDQ3LCAxNDAsIDQ3LCA0NywgNDcsIDQ3LCAwLCAKLSAgICA0NywgNDcsIDQ3LCA0NywgMTQwLCA0NywgNDcsIDQ3LCA0NywgMTQwLCA0NywgNDcsIDQ3LCA0NywgMTQwLCA0NywgNDcsIAotICAgIDQ3LCA0NywgMTQwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAxNDAsIDQ3LCA0NywgCi0gICAgNDcsIDAsIDAsIDAsIDAsIDE2MywgMTY0LCAxNjUsIDE2NiwgMTY1LCAxNjUsIDE2NywgMTY1LCAxNjcsIDE2NCwgMTY0LCAKLSAgICAxNjQsIDE2NCwgMTMyLCAxMzYsIDE2NCwgMTY1LCA4MCwgODAsIDEzOSwgODIsIDgwLCA4MCwgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxNjUsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMCwgMTMyLCAxMzIsIAotICAgIDEzMiwgMTMyLCAxNjUsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTY1LCAxMzIsIDEzMiwgMTMyLCAxMzIsIDE2NSwgMTMyLCAKLSAgICAxMzIsIDEzMiwgMTMyLCAxNjUsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgCi0gICAgMTMyLCAxMzIsIDE2NSwgMTMyLCAxMzIsIDEzMiwgMCwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA4NCwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgMCwgNzksIDc5LCA4MiwgODIsIDgyLCA4MiwgODIsIDc5LCA3OSwgNzksIDc5LCA4MiwgCi0gICAgODIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTM3LCA0NywgNDcsIDQ3LCA0NywgMTM2LCAKLSAgICAxMzYsIDEzMiwgMTQ3LCAxMzIsIDEzMiwgMTM2LCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTQyLCAxMzYsIDEzOSwgCi0gICAgMTM5LCAxMzYsIDEzNiwgMTMyLCAxMzIsIDQ3LCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDEsIDgyLCA4MiwgODIsIDgyLCA4MiwgODIsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDEzNiwgMTM2LCAxMzIsIDEzMiwgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDEzMiwgMTMyLCAxMzIsIDQ3LCAxMzYsIDEzNiwgMTM2LCA0NywgNDcsIDEzNiwgMTM2LCAxMzYsIAotICAgIDEzNiwgMTM2LCAxMzYsIDEzNiwgNDcsIDQ3LCA0NywgMTMyLCAxMzIsIDEzMiwgMTMyLCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTMyLCAxMzYsIDEzNiwgMTMyLCAxMzIsIDEzNiwgMTM2LCAxMzYsIAotICAgIDEzNiwgMTM2LCAxMzYsIDg0LCA0NywgMTM2LCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDEsIDEzNiwgMTM2LCAxMzYsIDEzMiwgNzksIDc5LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTE3LCAwLCAxMTcsIAorICAgIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMTE3LCAxMTcsIDExNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODEsIAorICAgIDgxLCA4NiwgODEsIDgxLCA4NiwgODEsIDgxLCA4MSwgODYsIDg2LCA4NiwgMTIwLCAxMjEsIDEyMiwgODEsIDgxLCA4MSwgCisgICAgODYsIDgxLCA4MSwgODYsIDg2LCA4MSwgODEsIDgxLCA4MSwgMCwgMTM1LCAxMzUsIDEzNSwgMTM5LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQwLCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQwLCA0OCwgNDgsIDE0MCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxMzUsIDEzOSwgCisgICAgMTQxLCA0OCwgMTM5LCAxMzksIDEzOSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzOSwgMTM5LCAKKyAgICAxMzksIDEzOSwgMTQyLCAxMzksIDEzOSwgNDgsIDgxLCA4NiwgODEsIDgxLCAxMzUsIDEzNSwgMTM1LCAxNDMsIDE0MywgCisgICAgMTQzLCAxNDMsIDE0MywgMTQzLCAxNDMsIDE0MywgNDgsIDQ4LCAxMzUsIDEzNSwgODMsIDgzLCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDgzLCA1MywgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDEzNSwgMTM5LCAxMzksIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgMCwgMCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIAorICAgIDQ4LCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMTQ1LCA0OCwgMTQ2LCAxMzksIDEzOSwgMTM1LCAxMzUsIDEzNSwgCisgICAgMTM1LCAwLCAwLCAxMzksIDEzOSwgMCwgMCwgMTQ3LCAxNDcsIDE0MiwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDE0NiwgMCwgMCwgMCwgMCwgMTQzLCAxNDMsIDAsIDE0MywgNDgsIDQ4LCAxMzUsIDEzNSwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCA0OCwgNDgsIDg1LCA4NSwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAKKyAgICAxNDgsIDE0OCwgODAsIDg1LCAwLCAwLCAwLCAwLCAwLCAxMzUsIDEzNSwgMTM5LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCAwLCAwLCAwLCAwLCA0OCwgNDgsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgMCwgNDgsIDE0MywgMCwgNDgsIDE0MywgMCwgNDgsIDQ4LCAwLCAwLCAxNDUsIDAsIDEzOSwgMTM5LCAxMzksIDEzNSwgCisgICAgMTM1LCAwLCAwLCAwLCAwLCAxMzUsIDEzNSwgMCwgMCwgMTM1LCAxMzUsIDE0MiwgMCwgMCwgMCwgMTM1LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAxNDMsIDE0MywgMTQzLCA0OCwgMCwgMTQzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDEzNSwgMTM1LCA0OCwgNDgsIDQ4LCAxMzUsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzNSwgMTM1LCAxMzksIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDAsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIAorICAgIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDE0NSwgNDgsIDEzOSwgMTM5LCAxMzksIDEzNSwgMTM1LCAxMzUsIAorICAgIDEzNSwgMTM1LCAwLCAxMzUsIDEzNSwgMTM5LCAwLCAxMzksIDEzOSwgMTQyLCAwLCAwLCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCAxMzUsIDEzNSwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCA4MywgODUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDEzNSwgMTM5LCAxMzksIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgNDgsIDQ4LCAKKyAgICAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgMCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCAwLCAwLCAxNDUsIDQ4LCAxNDYsIDEzNSwgMTM5LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDAsIDAsIDEzOSwgCisgICAgMTQ3LCAwLCAwLCAxNDcsIDE0NywgMTQyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDksIDE0NiwgMCwgMCwgMCwgMCwgCisgICAgMTQzLCAxNDMsIDAsIDQ4LCA0OCwgNDgsIDEzNSwgMTM1LCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDE0NCwgMTQ0LCAxNDQsIDgwLCA0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMTM1LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgCisgICAgMCwgNDgsIDQ4LCAxNDAsIDQ4LCAwLCAwLCAwLCA0OCwgNDgsIDAsIDQ4LCAwLCA0OCwgNDgsIDAsIDAsIDAsIDQ4LCA0OCwgCisgICAgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgMCwgMCwgMCwgMCwgMTQ2LCAxMzksIDEzNSwgMTM5LCAxMzksIDAsIDAsIDAsIDEzOSwgMTM5LCAxMzksIDAsIDE0NywgCisgICAgMTQ3LCAxNDcsIDE0MiwgMCwgMCwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDE0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDgsIAorICAgIDE0OCwgMTQ4LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCA4NSwgMjYsIDAsIDAsIDAsIDAsIDAsIDAsIDEzOSwgMTM5LCAKKyAgICAxMzksIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAKKyAgICAwLCAwLCA0OCwgMTM1LCAxMzUsIDEzNSwgMTM5LCAxMzksIDEzOSwgMTM5LCAwLCAxMzUsIDEzNSwgMTUwLCAwLCAxMzUsIAorICAgIDEzNSwgMTM1LCAxNDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE1MSwgMTUyLCAwLCA0OCwgNDgsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDQ4LCA0OCwgMTM1LCAxMzUsIDAsIDAsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIAorICAgIDE0NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCA4MCwgMCwgMCwgCisgICAgMTM5LCAxMzksIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCAwLCAwLCAxNDUsIDQ4LCAxMzksIDE1NCwgMTQ3LCAxMzksIDE0NiwgMTM5LCAxMzksIDAsIDE1NCwgMTQ3LCAxNDcsIAorICAgIDAsIDE0NywgMTQ3LCAxMzUsIDE0MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ2LCAxNDYsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDQ4LCAwLCA0OCwgNDgsIDEzNSwgMTM1LCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDAsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM5LCAKKyAgICAxMzksIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCAwLCAwLCA0OCwgMTQ2LCAxMzksIDEzOSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAwLCAxMzksIDEzOSwgMTM5LCAwLCAKKyAgICAxNDcsIDE0NywgMTQ3LCAxNDIsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDQ4LCA0OCwgMTM1LCAxMzUsIDAsIDAsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIAorICAgIDE0NCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMCwgMCwgMCwgODAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDAsIDAsIDEzOSwgMTM5LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIAorICAgIDE1NSwgMCwgMCwgMCwgMCwgMTQ2LCAxMzksIDEzOSwgMTM1LCAxMzUsIDEzNSwgMCwgMTM1LCAwLCAxMzksIDEzOSwgMTQ3LCAKKyAgICAxMzksIDE0NywgMTQ3LCAxNDcsIDE0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMTM5LCAxMzksIDgzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxMzUsIDQ4LCAxNTYsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTU3LCAKKyAgICAxNTcsIDE0MiwgMCwgMCwgMCwgMCwgODUsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDUzLCAxMzUsIDE1OCwgMTU4LCAxNTgsIAorICAgIDE1OCwgMTM1LCAxMzUsIDEzNSwgODMsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgCisgICAgODMsIDgzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDAsIDQ4LCAwLCAwLCA0OCwgNDgsIAorICAgIDAsIDQ4LCAwLCAwLCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCAwLCA0OCwgMCwgNDgsIDAsIDAsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDEzNSwgNDgsIDE1NiwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxNTksIDE1OSwgMCwgMTM1LCAxMzUsIDQ4LCAwLCAwLCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDAsIDUzLCAwLCAxNjAsIDE2MCwgMTYwLCAxNjAsIDEzNSwgMTM1LCAwLCAwLCAxNDQsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDAsIDAsIDE1NiwgMTU2LCA0OCwgNDgsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDQ4LCA4MCwgODAsIDgwLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCA4MywgODMsIDE2MSwgODMsIAorICAgIDgzLCA4MywgODMsIDgzLCA4MywgODAsIDgzLCA4MCwgODAsIDgwLCA4NiwgODYsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAKKyAgICAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCA4MCwgODYsIDgwLCA4NiwgODAsIDE2MiwgMTYzLCAxNjQsIDE2MywgCisgICAgMTY0LCAxMzksIDEzOSwgNDgsIDQ4LCA0OCwgMTQzLCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDE0MywgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDE0MywgNDgsIDQ4LCA0OCwgNDgsIDE0MywgNDgsIDQ4LCA0OCwgNDgsIDE0MywgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQzLCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAxNjUsIAorICAgIDE2NiwgMTY3LCAxNjgsIDE2NywgMTY3LCAxNjksIDE2NywgMTY5LCAxNjYsIDE2NiwgMTY2LCAxNjYsIDEzNSwgMTM5LCAKKyAgICAxNjYsIDE2NywgODEsIDgxLCAxNDIsIDgzLCA4MSwgODEsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTM1LCAxMzUsIDEzNSwgCisgICAgMTM1LCAxMzUsIDEzNSwgMTY3LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDAsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTY3LCAxMzUsIAorICAgIDEzNSwgMTM1LCAxMzUsIDE2NywgMTM1LCAxMzUsIDEzNSwgMTM1LCAxNjcsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTY3LCAKKyAgICAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxNjcsIDEzNSwgCisgICAgMTM1LCAxMzUsIDAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODYsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDAsIDgwLCA4MCwgODMsIDgzLCA4MywgODMsIDgzLCA4MCwgODAsIDgwLCA4MCwgODMsIDgzLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE0MCwgNDgsIDQ4LCA0OCwgNDgsIDEzOSwgMTM5LCAxMzUsIDE0OSwgMTM1LCAKKyAgICAxMzUsIDEzOSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDE0NSwgMTM5LCAxNDIsIDE0MiwgMTM5LCAxMzksIDEzNSwgCisgICAgMTM1LCA0OCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCA4MywgODMsIDgzLCAKKyAgICA4MywgODMsIDgzLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxMzksIDEzOSwgMTM1LCAxMzUsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICAxMzUsIDEzNSwgMTM1LCA0OCwgMTM5LCAxMzksIDEzOSwgNDgsIDQ4LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAKKyAgICAxMzksIDQ4LCA0OCwgNDgsIDEzNSwgMTM1LCAxMzUsIDEzNSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDEzNSwgMTM5LCAxMzksIDEzNSwgMTM1LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAKKyAgICA4NiwgNDgsIDEzOSwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxMzksIDEzOSwgCisgICAgMTM5LCAxMzUsIDgwLCA4MCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCAKICAgICA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCAKLSAgICA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDgyLCA1MCwgMCwgMCwgMCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgNDcsIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAKLSAgICAxNjksIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAxNjksIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjksIDE2OSwgMTY5LCAxNjksIAotICAgIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAKLSAgICAxNjksIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCAxNjksIDE2OSwgMTY5LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDAsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCA0NywgNDcsIDQ3LCA0NywgMCwgCi0gICAgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCAwLCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICAwLCAwLCA4MCwgODAsIDgwLCA3OSwgODIsIDgyLCA4MiwgODIsIDgyLCA4MiwgODIsIDgyLCAxNDYsIDE0NiwgMTQ2LCAxNDYsIAotICAgIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAKLSAgICAxNDYsIDE0NiwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAwLCAwLCAwLCAwLCAwLCAwLCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgODMsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA4MiwgODIsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTcwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDE2MSwgCi0gICAgMTYyLCAwLCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA4MiwgODIsIDgyLCAxNzEsIDE3MSwgMTcxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDEzMiwgMTMyLCAxMzksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDEzMiwgMTMyLCAxMzksIDgyLCA4MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTMyLCAxMzIsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICAwLCA0NywgNDcsIDQ3LCAwLCAxMzIsIDEzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDE3MiwgMTcyLCAxMzYsIAotICAgIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAKLSAgICAxMzYsIDEzMiwgMTM2LCAxMzYsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzOSwgCi0gICAgMTMyLCA4MiwgODIsIDgyLCA1MiwgODIsIDgyLCA4MiwgMTQ1LCA0NywgODAsIDAsIDAsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMCwgMCwgMCwgMCwgMCwgMCwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIAotICAgIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAKLSAgICA4MywgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzIsIDEzMiwgMTMyLCAxNzAsIDAsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA1MiwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgODYsIDQ3LCAwLCAwLCAwLCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCAwLCAxMzIsIDEzMiwgMTMyLCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzMiwgCi0gICAgMTMyLCAxMzYsIDEzNiwgMTM2LCAwLCAwLCAwLCAwLCAxMzYsIDEzNiwgMTMyLCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgCi0gICAgMTM2LCA4NSwgODAsIDg0LCAwLCAwLCAwLCAwLCAyNywgMCwgMCwgMCwgMTM1LCAxMzUsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDAsIDAsIDAsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgCi0gICAgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM2LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgMTM2LCAxMzYsIDAsIDAsIDAsIDAsIDAsIDAsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDEsIDE0MSwgMTQ2LCAwLCAwLCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA4MCwgODQsIDEzNiwgMTM2LCAxMzYsIDAsIDAsIDgyLCA4MiwgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAxMzYsIAotICAgIDEzMiwgMTM2LCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDAsIDEzOSwgMTM2LCAxMzIsIDEzNiwgMTM2LCAKLSAgICAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgCi0gICAgMTMyLCAxMzIsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgMCwgMCwgODQsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMCwgMCwgMCwgMCwgMCwgMCwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIAotICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAwLCAwLCAwLCAwLCAwLCAwLCA4MiwgODIsIDgyLCA4MiwgODIsIDgyLCA4MiwgCi0gICAgNTIsIDgyLCA4MiwgODIsIDgyLCA4MiwgODIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDAsIDQ0LCAwLCAwLCAwLCAwLCAwLCA0NCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDgzLCA1MSwgNDgsIDQ4LCA0OCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgNDgsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgCisgICAgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgCisgICAgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIAorICAgIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDAsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAKKyAgICA4MSwgODEsIDgxLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgCisgICAgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIAorICAgIDE0OCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgODQsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA4MywgODMsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTcyLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE2MywgMTY0LCAwLCAKKyAgICAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA4MywgODMsIDgzLCAxNzMsIDE3MywgMTczLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDEzNSwgMTM1LCAxNDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDEzNSwgMTM1LCAKKyAgICAxNDIsIDgzLCA4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTM1LCAxMzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgCisgICAgNDgsIDQ4LCAwLCAxMzUsIDEzNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDEzNSwgMTM1LCAxMzksIDEzNSwgMTM1LCAKKyAgICAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzNSwgCisgICAgMTM5LCAxMzksIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDE0MiwgMTM1LCA4MywgODMsIAorICAgIDgzLCA1MywgODMsIDgzLCA4MywgODUsIDQ4LCA4MSwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDE0NCwgMTQ0LCAwLCAwLCAwLCAwLCAwLCAwLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgCisgICAgMTUzLCAxNTMsIDAsIDAsIDAsIDAsIDAsIDAsIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMzgsIDg0LCAxMzgsIDEzOCwgCisgICAgMTM4LCAxMzgsIDEzNSwgMTM1LCAxMzUsIDE3MiwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIAorICAgIDE0NCwgMTQ0LCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDUzLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA4OCwgNDgsIAorICAgIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDAsIDAsIDAsIDEzNSwgMTM1LCAxMzUsIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM1LCAxMzUsIDEzOSwgMTM5LCAKKyAgICAxMzksIDAsIDAsIDAsIDAsIDEzOSwgMTM5LCAxMzUsIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDg3LCA4MSwgODYsIAorICAgIDAsIDAsIDAsIDAsIDI2LCAwLCAwLCAwLCAxMzgsIDEzOCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDE0NCwgMTQ0LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAKKyAgICAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxMzksIDEzOSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDgsIAorICAgIDAsIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDgxLCA4NiwgMTM5LCAxMzksIDEzOSwgMCwgMCwgODMsIDgzLCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDEzOSwgMTM1LCAxMzksIDEzNSwgCisgICAgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMCwgMTQyLCAxMzksIDEzNSwgMTM5LCAxMzksIDEzNSwgMTM1LCAxMzUsIAorICAgIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzUsIDEzNSwgODEsIDgxLCAKKyAgICA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCAwLCAwLCA4NiwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIAorICAgIDE0NCwgMTQ0LCAwLCAwLCAwLCAwLCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDAsIDAsIDAsIDAsIDAsIDAsIDgzLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCA1MywgODMsIDgzLCA4MywgODMsIAorICAgIDgzLCA4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMyLCAxMzIsIDEzMiwgCi0gICAgMTMyLCAxMzYsIDQ3LCAxMzcsIDQ3LCAxMzcsIDQ3LCAxMzcsIDQ3LCAxMzcsIDQ3LCAxMzcsIDQ3LCA0NywgNDcsIDEzNywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTQyLCAxNDMsIAotICAgIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxNDQsIDEzMiwgMTQ0LCAxMzYsIDEzNiwgMTQ0LCAxNDQsIDEzMiwgMTQ0LCAKLSAgICAxNzMsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCAwLCAwLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDgyLCA4MiwgODIsIDgyLCA4MiwgODIsIDgyLCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgODAsIDg0LCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgMCwgMCwgMCwgMTMyLCAxMzIsIDEzNiwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTM2LCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzNiwgMTM2LCAxMzIsIDEzMiwgMTczLCAwLCAKLSAgICAwLCAwLCA0NywgNDcsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzksIDQ4LCAxNDAsIDQ4LCAKKyAgICAxNDAsIDQ4LCAxNDAsIDQ4LCAxNDAsIDQ4LCAxNDAsIDQ4LCA0OCwgNDgsIDE0MCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQ1LCAxNDYsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAKKyAgICAxNDcsIDEzNSwgMTQ3LCAxMzksIDEzOSwgMTQ3LCAxNDcsIDEzNSwgMTQ3LCAxNzQsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCAwLCAwLCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDgzLCA4MywgCisgICAgODMsIDgzLCA4MywgODMsIDgzLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODEsIDg2LCA4MSwgCisgICAgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgMCwgMCwgMCwgMTM1LCAKKyAgICAxMzUsIDEzOSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTM5LCAxMzUsIDEzNSwgCisgICAgMTM1LCAxMzUsIDEzOSwgMTM5LCAxMzUsIDEzNSwgMTc0LCAxNDIsIDEzOSwgMTM5LCA0OCwgNDgsIDE0NCwgMTQ0LCAxNDQsIAorICAgIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxNDUsIAorICAgIDEzOSwgMTM1LCAxMzUsIDEzOSwgMTM5LCAxMzksIDEzNSwgMTM5LCAxMzUsIDEzNSwgMTM1LCAxNzQsIDE3NCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgODMsIDgzLCA4MywgODMsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAKKyAgICAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM5LCAxMzksIDEzNSwgMTQ1LCAwLCAwLCAwLCA4MywgCisgICAgODMsIDgzLCA4MywgODMsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMCwgMCwgCisgICAgMCwgNDgsIDQ4LCA0OCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA4MywgODMsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDgzLCA4MywgODMsIDgzLCA4MywgODMsIAorICAgIDgzLCA4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODEsIDgxLCA4MSwgODMsIDE3NSwgODYsIDg2LCA4NiwgODYsIDg2LCAKKyAgICA4MSwgODEsIDg2LCA4NiwgODYsIDg2LCA4MSwgMTM5LCAxNzUsIDE3NSwgMTc1LCAxNzUsIDE3NSwgMTc1LCAxNzUsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA4NiwgNDgsIDQ4LCA0OCwgNDgsIDEzOSwgMTM5LCA4MSwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCiAgICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDE0MiwgMTM2LCAxMzIsIDEzMiwgMTM2LCAxMzYsIDEzNiwgMTMyLCAxMzYsIDEzMiwgMTMyLCAKLSAgICAxMzIsIDE3MywgMTczLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MiwgODIsIDgyLCA4MiwgNDcsIDQ3LCA0NywgNDcsIAorICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA1MSwgNTEsIDUxLCA1MywgNTEsIDUxLCA1MSwgNTEsIAorICAgIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MywgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIAorICAgIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTMsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIAorICAgIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIAorICAgIDUxLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNTEsIDQ3LCA0NywgNDcsIAogICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTM2LCAxMzYsIDEzNiwgCi0gICAgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzYsIAotICAgIDEzNiwgMTMyLCAxNDIsIDAsIDAsIDAsIDgyLCA4MiwgODIsIDgyLCA4MiwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAwLCAwLCAwLCA0NywgNDcsIDQ3LCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDUyLCAKLSAgICA1MiwgNTIsIDUyLCA1MiwgNTIsIDgyLCA4MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODAsIDgwLCA4MCwgODIsIDE3NCwgCi0gICAgODQsIDg0LCA4NCwgODQsIDg0LCA4MCwgODAsIDg0LCA4NCwgODQsIDg0LCA4MCwgMTM2LCAxNzQsIDE3NCwgMTc0LCAxNzQsIAotICAgIDE3NCwgMTc0LCAxNzQsIDQ3LCA0NywgNDcsIDQ3LCA4NCwgNDcsIDQ3LCA0NywgNDcsIDEzNiwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIAotICAgIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIAotICAgIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA1MCwgNTAsIDUwLCA1MiwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MiwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTIsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIAotICAgIDM1LCAzNSwgMzUsIDM1LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNTAsIAotICAgIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIAotICAgIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgODAsIAotICAgIDgwLCA4NCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDg0LCA4MCwgODAsIDE3NSwgMTc2LCA4NCwgMTc3LCA4MCwgCisgICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDUxLCA1MSwgNTEsIDUxLCA1MSwgCisgICAgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgCisgICAgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA4MSwgODEsIDg2LCA4MSwgCisgICAgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODYsIDgxLCA4MSwgMTc2LCAxNzcsIDg2LCAxNzgsIDgxLCA4MSwgODEsIDgxLCAKKyAgICA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNzksIDg2LCAKKyAgICA4MSwgODYsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAKKyAgICAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAKKyAgICAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAKKyAgICAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAKKyAgICAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAKKyAgICAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAKKyAgICAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAKKyAgICAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAKKyAgICAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDQzLCA0MywgNDMsIDQzLCAzNSwgMTgwLCA0NywgNDcsIDQ0LCA0NywgCisgICAgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgCisgICAgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgCisgICAgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgCisgICAgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgCisgICAgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCAzOCwgMzgsIDM4LCAzOCwgCisgICAgMzgsIDM4LCAzOCwgMzgsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDAsIDAsIDM4LCAzOCwgMzgsIDM4LCAzOCwgMzgsIDAsIAorICAgIDAsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOCwgMzgsIDM4LCA0MywgCisgICAgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDM4LCAzOCwgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOCwgNDMsIDQzLCA0MywgCisgICAgNDMsIDQzLCA0MywgMCwgMCwgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOCwgMCwgMCwgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgCisgICAgNDMsIDQzLCAwLCAzOCwgMCwgMzgsIDAsIDM4LCAwLCAzOCwgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCAzOCwgCisgICAgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOCwgMzgsIDQzLCAxODEsIDQzLCAxODEsIDQzLCAxODEsIDQzLCAxODEsIDQzLCAxODEsIAorICAgIDQzLCAxODEsIDQzLCAxODEsIDAsIDAsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgMTgyLCAxODIsIDE4MiwgCisgICAgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgMTgyLCAxODIsIDE4MiwgCisgICAgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgMTgyLCAxODIsIDE4MiwgCisgICAgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDQzLCA0MywgNDMsIDQzLCA0MywgMCwgNDMsIDQzLCAzOCwgMzgsIDM4LCAxODMsIAorICAgIDE4MiwgNTgsIDE4MSwgNTgsIDU4LCA3NiwgNDMsIDQzLCA0MywgMCwgNDMsIDQzLCAzOCwgMTgzLCAzOCwgMTgzLCAxODIsIAorICAgIDc2LCA3NiwgNzYsIDQzLCA0MywgNDMsIDE4MSwgMCwgMCwgNDMsIDQzLCAzOCwgMzgsIDM4LCAxODMsIDAsIDc2LCA3NiwgCisgICAgNzYsIDQzLCA0MywgNDMsIDE4MSwgNDMsIDQzLCA0MywgNDMsIDM4LCAzOCwgMzgsIDE4MywgMzgsIDc2LCAxODQsIDE4NCwgCisgICAgMCwgMCwgNDMsIDQzLCA0MywgMCwgNDMsIDQzLCAzOCwgMTgzLCAzOCwgMTgzLCAxODIsIDE4NCwgNTgsIDAsIDE4NSwgMTg1LCAKKyAgICAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODcsIDE4NywgMTg3LCAxODgsIDE4OSwgCisgICAgMTkwLCAxOTEsIDg0LCAxOTAsIDE5MCwgMTkwLCAyMiwgMTkyLCAxOTMsIDE5NCwgMTk1LCAxOTYsIDE5MywgMTk0LCAxOTUsIAorICAgIDE5NiwgMjIsIDIyLCAyMiwgMTM4LCAxOTcsIDE5NywgMTk3LCAyMiwgMTk4LCAxOTksIDIwMCwgMjAxLCAyMDIsIDIwMywgCisgICAgMjA0LCAyMSwgMjA1LCAxMTAsIDIwNSwgMjA2LCAyMDcsIDIyLCAxOTIsIDE5MiwgMTM4LCAyOCwgMzYsIDIyLCAxOTIsIAorICAgIDEzOCwgMTk3LCAyMDgsIDIwOCwgMTM4LCAxMzgsIDEzOCwgMjA5LCAxNjMsIDE2NCwgMTkyLCAxOTIsIDE5MiwgMTM4LCAKKyAgICAxMzgsIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMzgsIDc4LCAxMzgsIDIwOCwgMTM4LCAxMzgsIDE5MiwgMTM4LCAxMzgsIAorICAgIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxODYsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAyMTAsIDUxLCAwLCAwLCAzNCwgMjEwLCAyMTAsIDIxMCwgMjEwLCAyMTAsIAorICAgIDIxMSwgMjExLCAyMTIsIDIxMywgMjE0LCAyMTUsIDIxMCwgMzQsIDM0LCAzNCwgMzQsIDIxMCwgMjEwLCAyMTAsIDIxMCwgCisgICAgMjEwLCAyMTEsIDIxMSwgMjEyLCAyMTMsIDIxNCwgMCwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIAorICAgIDUxLCA1MSwgNTEsIDAsIDAsIDAsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgMjE2LCAyMTcsIDg1LCA4NSwgCisgICAgMjMsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCA4NSwgODUsIDg1LCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MSwgODEsIDE3NSwgMTc1LCA4MSwgODEsIAorICAgIDgxLCA4MSwgMTc1LCAxNzUsIDE3NSwgODEsIDgxLCA4MiwgODIsIDgyLCA4MiwgODEsIDgyLCA4MiwgODIsIDE3NSwgMTc1LCAKKyAgICA4MSwgODYsIDgxLCAxNzUsIDE3NSwgODYsIDg2LCA4NiwgODYsIDgxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAyMTgsIDIxOCwgNDksIDIxOSwgMjYsIDIxOSwgMjE4LCA0OSwgMjYsIDIxOSwgMzUsIDQ5LCA0OSwgCisgICAgNDksIDM1LCAzNSwgNDksIDQ5LCA0OSwgNDYsIDI2LCA0OSwgMjE5LCAyNiwgNzgsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMjYsIAorICAgIDI2LCAyMTgsIDIxOSwgMjE5LCAyNiwgNDksIDI2LCAyMjAsIDI2LCA0OSwgMjYsIDE4MywgMjIwLCA0OSwgNDksIDIyMSwgCisgICAgMzUsIDQ5LCA0OSwgNDQsIDQ5LCAzNSwgMTU2LCAxNTYsIDE1NiwgMTU2LCAzNSwgMjYsIDIxOCwgMzUsIDM1LCA0OSwgNDksIAorICAgIDIyMiwgNzgsIDc4LCA3OCwgNzgsIDQ5LCAzNSwgMzUsIDM1LCAzNSwgMjYsIDc4LCAyNiwgMjYsIDQ3LCA4MCwgMjIzLCAKKyAgICAyMjMsIDIyMywgMzcsIDM3LCAyMjMsIDIyMywgMjIzLCAyMjMsIDIyMywgMjIzLCAzNywgMzcsIDM3LCAzNywgMjIzLCAyMjQsIAorICAgIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI0LCAyMjUsIDIyNSwgMjI1LCAKKyAgICAyMjUsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNCwgMjI1LCAyMjUsIDIyNSwgCisgICAgMjI1LCAyMjUsIDIyNSwgMTczLCAxNzMsIDE3MywgNDQsIDQ3LCAxNzMsIDE3MywgMTczLCAxNzMsIDM3LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA0MCwgNDAsIDQwLCA0MCwgNDAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMjI2LCAyMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICA3OCwgMjYsIDI2LCA3OCwgMjYsIDI2LCA3OCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDIyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMzAsIDMwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjI3LCAyMjYsIDIyNiwgMjYsIDI2LCA0MCwgMjYsIDQwLCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAzMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgNzgsIDc4LCA3OCwgNzgsIDc4LCAKKyAgICA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNDAsIDIyOCwgMjI5LCAyMjksIDIzMCwgNzgsIDc4LCA0MCwgMjI5LCAyMzAsIAorICAgIDIyOCwgMjI5LCAyMzAsIDIyOCwgNzgsIDQwLCA3OCwgMjI5LCAyMzEsIDIzMiwgNzgsIDIyOSwgMjI4LCA3OCwgNzgsIDc4LCAKKyAgICAyMjksIDIyOCwgMjI4LCAyMjksIDQwLCAyMjksIDIyOSwgMjI4LCAyMjgsIDQwLCAyMzAsIDQwLCAyMzAsIDQwLCA0MCwgNDAsIAorICAgIDQwLCAyMjksIDIzMywgMjIyLCAyMjksIDIyMiwgMjIyLCAyMjgsIDIyOCwgMjI4LCA0MCwgNDAsIDQwLCA0MCwgNzgsIDIyOCwgCisgICAgNzgsIDIyOCwgMjI5LCAyMjksIDIyOCwgMjI4LCAyMjgsIDIzMCwgMjI4LCAyMjgsIDIzMCwgMjI4LCAyMjgsIDIzMCwgMjI5LCAKKyAgICAyMzAsIDIyOCwgMjI4LCAyMjksIDc4LCA3OCwgNzgsIDc4LCA3OCwgMjI5LCAyMjgsIDIyOCwgMjI4LCA3OCwgNzgsIDc4LCAKKyAgICA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCAyMjgsIDIzNCwgNDAsIDIzMCwgNzgsIDIyOSwgMjI5LCAyMjksIDIyOSwgMjI4LCAKKyAgICAyMjgsIDIyOSwgMjI5LCA3OCwgMjI2LCAyMzQsIDIzNCwgMjMwLCAyMzAsIDIyOCwgMjI4LCAyMzAsIDIzMCwgMjI4LCAyMjgsIAorICAgIDIzMCwgMjMwLCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMzAsIDIzMCwgMjI5LCAyMjksIDIzMCwgMjMwLCAKKyAgICAyMjksIDIyOSwgMjMwLCAyMzAsIDIyOCwgMjI4LCAyMjgsIDc4LCA3OCwgMjI4LCAyMjgsIDIyOCwgMjI4LCA3OCwgNzgsIAorICAgIDQwLCA3OCwgNzgsIDIyOCwgNDAsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgMjI4LCAyMjgsIDc4LCA0MCwgCisgICAgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjMwLCAyMzAsIDIzMCwgMjMwLCAyMjgsIDIyOCwgMjI4LCAyMjgsIAorICAgIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDIyOCwgMjI5LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgNzgsIDc4LCAyMjgsIDIyOCwgNzgsIDc4LCAKKyAgICA3OCwgNzgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjMwLCAyMzAsIDIzMCwgCisgICAgMjMwLCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMzAsIDIzMCwgMjMwLCAyMzAsIDc4LCA3OCwgMjI4LCAyMjgsIAorICAgIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMzAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyMjgsIDIyOCwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDIzNSwgMjM2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAogICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAotICAgIDgwLCA4MCwgODAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDE3OCwgODQsIDgwLCA4NCwgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIAotICAgIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIAotICAgIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIAotICAgIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIAotICAgIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIAotICAgIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIAotICAgIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIAotICAgIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIAotICAgIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgNDMsIDQzLCA0MywgNDMsIDM1LCAxNzksIDQ2LCAKLSAgICA0NiwgNDQsIDQ2LCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCAKLSAgICA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCAKLSAgICA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCAKLSAgICA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCAKLSAgICA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCA0MywgMzgsIDQzLCAzOCwgNDMsIDM4LCAKLSAgICA0MywgMzgsIDQzLCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDM4LCAKLSAgICAzOCwgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOCwgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgMCwgMCwgMzgsIDM4LCAzOCwgMzgsIAotICAgIDM4LCAzOCwgMCwgMCwgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCAzOCwgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOCwgCi0gICAgMzgsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOCwgMzgsIDM4LCA0MywgCi0gICAgNDMsIDQzLCA0MywgNDMsIDQzLCAwLCAwLCAzOCwgMzgsIDM4LCAzOCwgMzgsIDM4LCAwLCAwLCA0MywgNDMsIDQzLCA0MywgCi0gICAgNDMsIDQzLCA0MywgNDMsIDAsIDM4LCAwLCAzOCwgMCwgMzgsIDAsIDM4LCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgCi0gICAgNDMsIDM4LCAzOCwgMzgsIDM4LCAzOCwgMzgsIDM4LCAzOCwgNDMsIDE4MCwgNDMsIDE4MCwgNDMsIDE4MCwgNDMsIDE4MCwgCi0gICAgNDMsIDE4MCwgNDMsIDE4MCwgNDMsIDE4MCwgMCwgMCwgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCAxODEsIAotICAgIDE4MSwgMTgxLCAxODEsIDE4MSwgMTgxLCAxODEsIDE4MSwgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCAxODEsIAotICAgIDE4MSwgMTgxLCAxODEsIDE4MSwgMTgxLCAxODEsIDE4MSwgNDMsIDQzLCA0MywgNDMsIDQzLCA0MywgNDMsIDQzLCAxODEsIAotICAgIDE4MSwgMTgxLCAxODEsIDE4MSwgMTgxLCAxODEsIDE4MSwgNDMsIDQzLCA0MywgNDMsIDQzLCAwLCA0MywgNDMsIDM4LCAzOCwgCi0gICAgMzgsIDE4MiwgMTgxLCA1NywgMTgwLCA1NywgNTcsIDc1LCA0MywgNDMsIDQzLCAwLCA0MywgNDMsIDM4LCAxODIsIDM4LCAKLSAgICAxODIsIDE4MSwgNzUsIDc1LCA3NSwgNDMsIDQzLCA0MywgMTgwLCAwLCAwLCA0MywgNDMsIDM4LCAzOCwgMzgsIDE4MiwgMCwgCi0gICAgNzUsIDc1LCA3NSwgNDMsIDQzLCA0MywgMTgwLCA0MywgNDMsIDQzLCA0MywgMzgsIDM4LCAzOCwgMTgyLCAzOCwgNzUsIAotICAgIDE4MywgMTgzLCAwLCAwLCA0MywgNDMsIDQzLCAwLCA0MywgNDMsIDM4LCAxODIsIDM4LCAxODIsIDE4MSwgMTgzLCA1NywgMCwgCi0gICAgMTg0LCAxODQsIDE4NSwgMTg1LCAxODUsIDE4NSwgMTg1LCAxODUsIDE4NSwgMTg1LCAxODUsIDE4NiwgMTg2LCAxODYsIAotICAgIDE3MiwgMTg3LCAxODgsIDE4OSwgODMsIDE4OCwgMTg4LCAxODgsIDIyLCAxOTAsIDE5MSwgMTkyLCAxOTMsIDE5NCwgMTkxLCAKLSAgICAxOTIsIDE5MywgMTk0LCAyMiwgMjIsIDIyLCAxMzUsIDE5NSwgMTk1LCAxOTUsIDIyLCAxOTYsIDE5NywgMTk4LCAxOTksIAotICAgIDIwMCwgMjAxLCAyMDIsIDIxLCAyMDMsIDEwOCwgMjAzLCAyMDQsIDIwNSwgMjIsIDE5MCwgMTkwLCAxMzUsIDI5LCAzNiwgCi0gICAgMjIsIDE5MCwgMTM1LCAxOTUsIDIwNiwgMjA2LCAxMzUsIDEzNSwgMTM1LCAyMDcsIDE2MSwgMTYyLCAxOTAsIDE5MCwgMTkwLCAKLSAgICAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgNzcsIDEzNSwgMjA2LCAxMzUsIDEzNSwgMTkwLCAxMzUsIAotICAgIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDE4NSwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDAsIDAsIDAsIDAsIAotICAgIDAsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDIwOCwgNTAsIDAsIDAsIDM0LCAyMDgsIDIwOCwgMjA4LCAyMDgsIAotICAgIDIwOCwgMjA5LCAyMDksIDIxMCwgMjExLCAyMTIsIDIxMywgMjA4LCAzNCwgMzQsIDM0LCAzNCwgMjA4LCAyMDgsIDIwOCwgCi0gICAgMjA4LCAyMDgsIDIwOSwgMjA5LCAyMTAsIDIxMSwgMjEyLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMTQ1LCAxNDUsIDE0NSwgMTQ1LCAxNDUsIDE0NSwgMTQ1LCAxNDUsIDIxNCwgCi0gICAgMjE1LCAxNDUsIDE0NSwgMjMsIDE0NSwgMTQ1LCAxNDUsIDE0NSwgMTQ1LCAxNDUsIDE0NSwgMTQ1LCAxNDUsIDE0NSwgMTQ1LCAKLSAgICAxNDUsIDE0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgODAsIDgwLCAxNzQsIDE3NCwgODAsIDgwLCA4MCwgODAsIDE3NCwgMTc0LCAxNzQsIDgwLCA4MCwgODEsIDgxLCA4MSwgCi0gICAgODEsIDgwLCA4MSwgODEsIDgxLCAxNzQsIDE3NCwgODAsIDg0LCA4MCwgMTc0LCAxNzQsIDg0LCA4NCwgODQsIDg0LCA4MCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjE2LCAyMTYsIDQ4LCAyMTcsIDI3LCAyMTcsIAotICAgIDIxNiwgNDgsIDI3LCAyMTcsIDM1LCA0OCwgNDgsIDQ4LCAzNSwgMzUsIDQ4LCA0OCwgNDgsIDI4LCAyNywgNDgsIDIxNywgCi0gICAgMjcsIDc3LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDI3LCAyNywgMjE2LCAyMTcsIDIxNywgMjcsIDQ4LCAyNywgMjE4LCAyNywgCi0gICAgNDgsIDI3LCAxODIsIDIxOCwgNDgsIDQ4LCAyMTksIDM1LCA0OCwgNDgsIDQ0LCA0OCwgMzUsIDE1NCwgMTU0LCAxNTQsIAotICAgIDE1NCwgMzUsIDI3LCAyMTYsIDM1LCAzNSwgNDgsIDQ4LCAyMjAsIDc3LCA3NywgNzcsIDc3LCA0OCwgMzUsIDM1LCAzNSwgCi0gICAgMzUsIDI3LCA3NywgMjcsIDI3LCA0NiwgNzksIDIyMSwgMjIxLCAyMjEsIDM3LCAzNywgMjIxLCAyMjEsIDIyMSwgMjIxLCAKLSAgICAyMjEsIDIyMSwgMzcsIDM3LCAzNywgMzcsIDIyMSwgMjIyLCAyMjIsIDIyMiwgMjIyLCAyMjIsIDIyMiwgMjIyLCAyMjIsIAotICAgIDIyMiwgMjIyLCAyMjIsIDIyMiwgMjIzLCAyMjMsIDIyMywgMjIzLCAyMjIsIDIyMiwgMjIyLCAyMjIsIDIyMiwgMjIyLCAKLSAgICAyMjIsIDIyMiwgMjIyLCAyMjIsIDIyMywgMjIzLCAyMjMsIDIyMywgMjIzLCAyMjMsIDE3MSwgMTcxLCAxNzEsIDQ0LCA0NiwgCi0gICAgMTcxLCAxNzEsIDE3MSwgMTcxLCAzNywgMCwgMCwgMCwgMCwgMCwgMCwgNDAsIDQwLCA0MCwgNDAsIDQwLCAyNSwgMjUsIDI1LCAKLSAgICAyNSwgMjUsIDIyNCwgMjI0LCAyNywgMjcsIDI3LCAyNywgNzcsIDI3LCAyNywgNzcsIDI3LCAyNywgNzcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyMjQsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI1LCAyNSwgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDIyNSwgCi0gICAgMjI0LCAyMjQsIDI3LCAyNywgNDAsIDI3LCA0MCwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjUsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDQwLCAyMjYsIDIyNywgCi0gICAgMjI3LCAyMjgsIDc3LCA3NywgNDAsIDIyNywgMjI4LCAyMjYsIDIyNywgMjI4LCAyMjYsIDc3LCA0MCwgNzcsIDIyNywgMjI5LCAKLSAgICAyMzAsIDc3LCAyMjcsIDIyNiwgNzcsIDc3LCA3NywgMjI3LCAyMjYsIDIyNiwgMjI3LCA0MCwgMjI3LCAyMjcsIDIyNiwgCi0gICAgMjI2LCA0MCwgMjI4LCA0MCwgMjI4LCA0MCwgNDAsIDQwLCA0MCwgMjI3LCAyMzEsIDIyMCwgMjI3LCAyMjAsIDIyMCwgMjI2LCAKLSAgICAyMjYsIDIyNiwgNDAsIDQwLCA0MCwgNDAsIDc3LCAyMjYsIDc3LCAyMjYsIDIyNywgMjI3LCAyMjYsIDIyNiwgMjI2LCAyMjgsIAotICAgIDIyNiwgMjI2LCAyMjgsIDIyNiwgMjI2LCAyMjgsIDIyNywgMjI4LCAyMjYsIDIyNiwgMjI3LCA3NywgNzcsIDc3LCA3NywgCi0gICAgNzcsIDIyNywgMjI2LCAyMjYsIDIyNiwgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgMjI2LCAyMzIsIDQwLCAKLSAgICAyMjgsIDc3LCAyMjcsIDIyNywgMjI3LCAyMjcsIDIyNiwgMjI2LCAyMjcsIDIyNywgNzcsIDIyNCwgMjMyLCAyMzIsIDIyOCwgCi0gICAgMjI4LCAyMjYsIDIyNiwgMjI4LCAyMjgsIDIyNiwgMjI2LCAyMjgsIDIyOCwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIAotICAgIDIyNiwgMjI4LCAyMjgsIDIyNywgMjI3LCAyMjgsIDIyOCwgMjI3LCAyMjcsIDIyOCwgMjI4LCAyMjYsIDIyNiwgMjI2LCA3NywgCi0gICAgNzcsIDIyNiwgMjI2LCAyMjYsIDIyNiwgNzcsIDc3LCA0MCwgNzcsIDc3LCAyMjYsIDQwLCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCA3NywgNzcsIDIyNiwgMjI2LCA3NywgNDAsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyOCwgMjI4LCAKLSAgICAyMjgsIDIyOCwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCAyMjYsIDIyNywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgMjI2LCAyMjYsIDIyNiwgMjI2LCAKLSAgICAyMjYsIDc3LCA3NywgMjI2LCAyMjYsIDc3LCA3NywgNzcsIDc3LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIAotICAgIDIyNiwgMjI2LCAyMjYsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI4LCAKLSAgICAyMjgsIDIyOCwgMjI4LCA3NywgNzcsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgCi0gICAgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyMjYsIDIyNiwgCi0gICAgMjI2LCAyMjYsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjI2LCAyMjYsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyMzMsIDIzNCwgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAKLSAgICA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAKLSAgICA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAKLSAgICA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAKLSAgICA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAyNywgNzcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDc5LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCAKLSAgICA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgNzcsIDc3LCA3NywgNzcsIDc3LCAKLSAgICA3NywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIAorICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDI2LCA3OCwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgODAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIAorICAgIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM3LCAzNywgMzcsIDM3LCAzNywgCiAgICAgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgCi0gICAgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIAotICAgIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAKLSAgICAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgCi0gICAgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIAotICAgIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAKLSAgICAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgCi0gICAgMjM1LCAyMzUsIDIyMSwgMjM2LCAyMzYsIDIzNiwgMjM2LCAyMzYsIDIzNiwgMjM2LCAyMzYsIDIzNiwgMjM2LCAyMzYsIAotICAgIDIzNiwgMjM2LCAyMzYsIDIzNiwgMjM2LCAyMzYsIDIzNiwgMjM2LCAyMzYsIDIzNiwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjcsIDI3LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI1LCAyNSwgMjcsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI1LCAyNSwgMjcsIDI3LCAyNSwgNDAsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNSwgMjUsIDI3LCAyNywgMjUsIDQwLCAyNywgMjcsIDI3LCAyNywgMjUsIDI1LCAyNSwgMjcsIDI3LCAyNSwgCi0gICAgMjcsIDI3LCAyNSwgMjUsIDI1LCAyNSwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI1LCAyNSwgMjUsIDI1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNSwgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjUsIDI1LCAyNywgMjcsIDI1LCAyNywgMjcsIDI3LCAyNywgMjUsIDI1LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjUsIDI1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNSwgMjcsIDI1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNSwgMjcsIDI1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI1LCAyNSwgMjcsIDI1LCAyNSwgMjUsIDI3LCAyNSwgMjUsIDI1LCAyNSwgMjcsIDI1LCAyNSwgCi0gICAgMjcsIDQwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjUsIDI1LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCA3OSwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNSwgMjUsIDI3LCAyNywgMjcsIDI3LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjcsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNywgMjUsIDI3LCAyNywgMjcsIDI3LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCi0gICAgMjUsIDI1LCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNSwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI1LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMTYxLCAxNjIsIAotICAgIDE2MSwgMTYyLCAxNjEsIDE2MiwgMTYxLCAxNjIsIDE2MSwgMTYyLCAxNjEsIDE2MiwgMTYxLCAxNjIsIDIzNiwgMjM2LCAKLSAgICAyMzYsIDIzNiwgMjM2LCAyMzYsIDIzNiwgMjM2LCAyMzYsIDIzNiwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgCi0gICAgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjI2LCA3NywgNzcsIDIyNiwgMjI2LCAxNjEsIDE2MiwgNzcsIDIyNiwgCi0gICAgMjI2LCA3NywgMCwgMjI2LCAwLCA3NywgNzcsIDc3LCA3NywgNzcsIDIyNiwgMjI2LCAyMjYsIDIyNiwgNzcsIDc3LCA3NywgCi0gICAgNzcsIDc3LCAyMjYsIDIyNiwgMjI2LCA3NywgNzcsIDc3LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDksIDEwLCA5LCAxMCwgOSwgCi0gICAgMTAsIDksIDEwLCAxNjEsIDE2MiwgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCA3NywgNzcsIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCAxNjEsIDE2MiwgOSwgMTAsIDE2MSwgMTYyLCAxNjEsIAotICAgIDE2MiwgMTYxLCAxNjIsIDE2MSwgMTYyLCAxNjEsIDE2MiwgMTYxLCAxNjIsIDE2MSwgMTYyLCAxNjEsIDE2MiwgMTYxLCAKLSAgICAxNjIsIDc3LCA3NywgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgCi0gICAgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIAotICAgIDc3LCAyMjYsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCA3NywgCi0gICAgNzcsIDc3LCAyMjYsIDc3LCA3NywgNzcsIDc3LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgNzcsIDIyNiwgMjI2LCA3NywgCi0gICAgNzcsIDE2MSwgMTYyLCAxNjEsIDE2MiwgMjI2LCA3NywgNzcsIDc3LCA3NywgMjI2LCA3NywgMjI2LCAyMjYsIDIyNiwgNzcsIAotICAgIDc3LCAyMjYsIDIyNiwgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDIyNiwgMjI2LCAyMjYsIDIyNiwgCi0gICAgMjI2LCAyMjYsIDc3LCA3NywgMTYxLCAxNjIsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgCi0gICAgNzcsIDIyNiwgMjI2LCAyMjAsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAKLSAgICAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgNzcsIDIyNiwgMjI2LCAyMjYsIDIyNiwgNzcsIDc3LCAyMjYsIDc3LCAyMjYsIAotICAgIDc3LCA3NywgMjI2LCA3NywgMjI2LCAyMjYsIDIyNiwgMjI2LCA3NywgNzcsIDc3LCA3NywgNzcsIDIyNiwgMjI2LCA3NywgCi0gICAgNzcsIDc3LCA3NywgNzcsIDc3LCAyMjYsIDIyNiwgMjI2LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCAKLSAgICA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCAyMjYsIDIyNiwgNzcsIAotICAgIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCAyMjYsIDIyNiwgNzcsIDc3LCA3NywgNzcsIDIyNiwgCi0gICAgMjI2LCAyMjYsIDIyNiwgNzcsIDIyNiwgMjI2LCA3NywgNzcsIDIyNiwgMjIwLCAyMTAsIDIxMCwgNzcsIDc3LCAyMjYsIAotICAgIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAKLSAgICAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgCi0gICAgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDc3LCAKLSAgICA3NywgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDc3LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgCi0gICAgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIAotICAgIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAKLSAgICAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDc3LCA3NywgNzcsIDc3LCA3NywgMjM3LCA3NywgMjI2LCA3NywgCi0gICAgNzcsIDc3LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgNzcsIDc3LCA3NywgNzcsIDc3LCAyMjYsIDIyNiwgMjI2LCA3NywgCi0gICAgNzcsIDc3LCA3NywgMjI2LCA3NywgNzcsIDc3LCAyMjYsIDIyNiwgMjI2LCAyMjYsIDIyNiwgNzcsIDIyNiwgNzcsIDc3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCAKLSAgICA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCA3NywgNzcsIDc3LCAyNywgMjcsIDc3LCAKLSAgICA3NywgNzcsIDc3LCA3NywgNzcsIDAsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjUsIDI1LCAyNSwgMjUsIDI1LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIAotICAgIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIAotICAgIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIAotICAgIDQ0LCA0NCwgNDQsIDAsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgMCwgNDQsIDQ2LCAKLSAgICA0NCwgNDQsIDQ0LCA0NiwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NCwgNDQsIDQ0LCA0NiwgNDQsIDQ2LCAKLSAgICA0NiwgNDQsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDM1LCA1MCwgNDQsIDQ0LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCAKLSAgICA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCAKLSAgICA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCAKLSAgICA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCAKLSAgICA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCAKLSAgICA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCAKLSAgICA0NCwgNDYsIDQ0LCA0NiwgNDYsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDQ0LCA0NiwgNDQsIDQ2LCA4MCwgODAsIDgwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzUsIDEzNSwgMTM1LCAxMzUsIDE1MSwgMTM1LCAxMzUsIDQ2LCA0NiwgNDYsIDQ2LCAKLSAgICA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCAKLSAgICA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTAsIDgyLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzksIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNywgMzcsIDM3LCAzNCwgCisgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCisgICAgMzQsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAKKyAgICAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgCisgICAgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIAorICAgIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAKKyAgICAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgCisgICAgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIyMywgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIAorICAgIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAKKyAgICAyMzgsIDIzOCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIAorICAgIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIAorICAgIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIAorICAgIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIAorICAgIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDI2LCAyNiwgMjYsIDI2LCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIAorICAgIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIAorICAgIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIAorICAgIDMwLCAzMCwgMjYsIDI2LCAzMCwgMzAsIDMwLCAzMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDMwLCAzMCwgMjYsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDMwLCAzMCwgMjYsIDI2LCAzMCwgNDAsIDI2LCAyNiwgMjYsIDI2LCAzMCwgMzAsIDI2LCAyNiwgMzAsIDQwLCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMzAsIDMwLCAzMCwgMjYsIDI2LCAzMCwgMjYsIDI2LCAzMCwgMzAsIDMwLCAzMCwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDMwLCAzMCwgMzAsIDMwLCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAzMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCA3OCwgNzgsIAorICAgIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMzAsIDMwLCAyNiwgMjYsIDMwLCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMzAsIDMwLCAyNiwgMjYsIDI2LCAyNiwgMzAsIDMwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAzMCwgMjYsIAorICAgIDMwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAzMCwgMjYsIAorICAgIDMwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDMwLCAzMCwgMjYsIDMwLCAzMCwgMzAsIAorICAgIDI2LCAzMCwgMzAsIDMwLCAzMCwgMjYsIDMwLCAzMCwgMjYsIDQwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMzAsIDMwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCA4MCwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAzMCwgMzAsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMjYsIDMwLCAzMCwgMzAsIAorICAgIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAyNiwgMzAsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIAorICAgIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMzAsIDMwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAzMCwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDMwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMTYzLCAxNjQsIDE2MywgMTY0LCAxNjMsIDE2NCwgMTYzLCAxNjQsIDE2MywgMTY0LCAKKyAgICAxNjMsIDE2NCwgMTYzLCAxNjQsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgCisgICAgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIAorICAgIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjI4LCA3OCwgNzgsIAorICAgIDIyOCwgMjI4LCAxNjMsIDE2NCwgNzgsIDIyOCwgMjI4LCA3OCwgMjI4LCAyMjgsIDIyOCwgNzgsIDc4LCA3OCwgNzgsIDc4LCAKKyAgICAyMjgsIDIyOCwgMjI4LCAyMjgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgMjI4LCAyMjgsIDIyOCwgNzgsIDc4LCA3OCwgMjI4LCAKKyAgICAyMjgsIDIyOCwgMjI4LCA5LCAxMCwgOSwgMTAsIDksIDEwLCA5LCAxMCwgMTYzLCAxNjQsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCiAgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCi0gICAgODAsIDgwLCA4MCwgODAsIDEzNSwgMTM1LCAyOSwgMzYsIDI5LCAzNiwgMTM1LCAxMzUsIDEzNSwgMjksIDM2LCAxMzUsIDI5LCAKLSAgICAzNiwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgODMsIDEzNSwgMTM1LCA4MywgMTM1LCAKLSAgICAyOSwgMzYsIDEzNSwgMTM1LCAyOSwgMzYsIDE2MSwgMTYyLCAxNjEsIDE2MiwgMTYxLCAxNjIsIDE2MSwgMTYyLCAxMzUsIAotICAgIDEzNSwgMTM1LCAxMzUsIDEzNSwgNTEsIDEzNSwgMTM1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMzgsIDIzOCwgMjM4LCAyMzgsIAotICAgIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAKLSAgICAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzksIDIzOCwgCi0gICAgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIAotICAgIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAKLSAgICAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgCi0gICAgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIAotICAgIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAKLSAgICAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzksIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIAotICAgIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAKLSAgICAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgCi0gICAgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIAotICAgIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAKLSAgICAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgCi0gICAgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIAotICAgIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAKLSAgICAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgCi0gICAgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIAotICAgIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAKLSAgICAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgCi0gICAgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIAotICAgIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAKLSAgICAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgCi0gICAgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMjM5LCAyMzksIDIzOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAKLSAgICAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMCwgMCwgMCwgMCwgMjQwLCAyNDEsIDI0MSwgMjQxLCAKLSAgICAyMzgsIDI0MiwgMTY4LCAyNDMsIDI0NCwgMjQ1LCAyNDQsIDI0NSwgMjQ0LCAyNDUsIDI0NCwgMjQ1LCAyNDQsIDI0NSwgCi0gICAgMjM4LCAyMzgsIDI0NCwgMjQ1LCAyNDQsIDI0NSwgMjQ0LCAyNDUsIDI0NCwgMjQ1LCAyNDYsIDI0NywgMjQ4LCAyNDgsIAotICAgIDIzOCwgMjQzLCAyNDMsIDI0MywgMjQzLCAyNDMsIDI0MywgMjQzLCAyNDMsIDI0MywgMjQ5LCAyNTAsIDI1MSwgMjUyLCAKLSAgICAyNTMsIDI1MywgMjQ2LCAyNDIsIDI0MiwgMjQyLCAyNDIsIDI0MiwgMjM5LCAyMzgsIDI1NCwgMjU0LCAyNTQsIDI0MiwgCi0gICAgMTY4LCAyNDEsIDIzOCwgMjcsIDAsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAyNTUsIDE2OCwgMjU1LCAxNjgsIDI1NSwgMTY4LCAyNTUsIDE2OCwgMjU1LCAxNjgsIDI1NSwgMTY4LCAyNTUsIAotICAgIDE2OCwgMjU1LCAxNjgsIDI1NSwgMTY4LCAyNTUsIDE2OCwgMjU1LCAxNjgsIDI1NSwgMTY4LCAxNjgsIDI1NSwgMTY4LCAKLSAgICAyNTUsIDE2OCwgMjU1LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAyNTUsIDI1NSwgMTY4LCAyNTUsIDI1NSwgCi0gICAgMTY4LCAyNTUsIDI1NSwgMTY4LCAyNTUsIDI1NSwgMTY4LCAyNTUsIDI1NSwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAyNTUsIDE2OCwgMTY4LCAwLCAwLCAyNTYsIDI1NiwgMjU3LCAyNTcsIDI0MiwgMjU4LCAyNTksIAotICAgIDI0NiwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDI1NSwgMTY4LCAKLSAgICAyNTUsIDE2OCwgMjU1LCAxNjgsIDI1NSwgMTY4LCAyNTUsIDE2OCwgMjU1LCAxNjgsIDI1NSwgMTY4LCAyNTUsIDE2OCwgCi0gICAgMjU1LCAxNjgsIDI1NSwgMTY4LCAyNTUsIDE2OCwgMjU1LCAxNjgsIDE2OCwgMjU1LCAxNjgsIDI1NSwgMTY4LCAyNTUsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDI1NSwgMjU1LCAxNjgsIDI1NSwgMjU1LCAxNjgsIDI1NSwgMjU1LCAKLSAgICAxNjgsIDI1NSwgMjU1LCAxNjgsIDI1NSwgMjU1LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDI1NSwgMTY4LCAxNjgsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjQxLCAyNDIsIDI0MiwgMjU4LCAyNTksIDAsIDAsIDAsIDAsIAotICAgIDAsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAwLCAwLCAwLCAKLSAgICAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgCi0gICAgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIAotICAgIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAKLSAgICAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgCi0gICAgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIAotICAgIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAKLSAgICAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDAsIDI2MCwgMjYwLCAyNjEsIDI2MSwgCi0gICAgMjYxLCAyNjEsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIAotICAgIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAKLSAgICAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjM5LCAyMzksIDAsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIAotICAgIDI2MSwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDIzOSwgMjY0LCAyNjQsIAotICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyMzksIAotICAgIDIzOSwgMjM5LCAyNjAsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIAotICAgIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKLSAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjM5LCAyMzksIDIzOSwgMjM5LCAyNjIsIAotICAgIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIAotICAgIDI2MiwgMjYyLCAyNjIsIDI2MiwgMCwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIAotICAgIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIAotICAgIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDIzOSwgMjM5LCAyMzksIAotICAgIDIzOSwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIAotICAgIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIAotICAgIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjM5LCAyMzksIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIAotICAgIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjM5LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMjQyLCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMCwgMCwgMCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgCi0gICAgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIAotICAgIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAKLSAgICAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgMjM4LCAyMzgsIDIzOCwgCi0gICAgMjM4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwgCi0gICAgODIsIDgyLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA1MiwgMTM1LCAxMzUsIAotICAgIDEzNSwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgNDcsIDQ3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIAotICAgIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIAotICAgIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIAotICAgIDQ0LCA0NiwgNDcsIDgwLCA4MSwgODEsIDgxLCAxMzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDgwLCA4MCwgMTM1LCA1MSwgCi0gICAgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIAotICAgIDE3MSwgMTcxLCAxNzEsIDE3MSwgODAsIDgwLCA4MiwgODIsIDgyLCA4MiwgODIsIDgyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIAotICAgIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUxLCA1MSwgNTEsIDUzLCA1MywgNDQsIAotICAgIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NiwgNDYsIDQ0LCA0NiwgNDQsIAotICAgIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIAotICAgIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIAotICAgIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIAotICAgIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNTAsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIAotICAgIDQ0LCA0NCwgNDYsIDQ0LCA0NiwgNDQsIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgNTEsIDI2NSwgMjY1LCA0NCwgNDYsIDQ0LCA0NiwgCi0gICAgMCwgNDQsIDQ2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NCwgNDYsIDQ0LCA0NiwgNDQsIAotICAgIDQ2LCA0NCwgNDYsIDQ0LCA0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDYsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICAxMzIsIDQ3LCA0NywgNDcsIDEzOSwgNDcsIDQ3LCA0NywgNDcsIDEzMiwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAxMzYsIDEzNiwgCi0gICAgMTMyLCAxMzIsIDEzNiwgMjcsIDI3LCAyNywgMjcsIDAsIDAsIDAsIDAsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIAotICAgIDc5LCA3OSwgMTQ1LCAyMTksIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDEzNiwgMTM2LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDEzNiwgMTM2LCAKLSAgICAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM2LCAxMzYsIDEzNiwgCi0gICAgMTM5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MiwgODIsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIAotICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMCwgMCwgMCwgMCwgMCwgMCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCi0gICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgODIsIDgyLCA4MiwgCi0gICAgNDcsIDAsIDAsIDAsIDAsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCA4NCwgODQsIDg0LCA4MiwgCi0gICAgODIsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAKLSAgICAxMzIsIDEzNiwgMTczLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MiwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDAsIDAsIDAsIDEzMiwgMTMyLCAKLSAgICAxMzIsIDEzNiwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAxNDIsIDEzNiwgMTM2LCAxMzIsIAotICAgIDEzMiwgMTMyLCAxMzIsIDEzNiwgMTM2LCAxMzIsIDEzNiwgMTM2LCAxMzYsIDE3MywgODIsIDgyLCA4MiwgODIsIDgyLCA4MiwgCi0gICAgODIsIDgyLCA4MiwgODIsIDgyLCA4MiwgODIsIDAsIDUyLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIAotICAgIDE0MSwgMTQxLCAxNDEsIDAsIDAsIDAsIDAsIDgyLCA4MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzYsIDEzNiwgMTMyLCAxMzIsIDEzNiwgMTM2LCAxMzIsIDEzMiwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgMTMyLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDEzMiwgMTM2LCAwLCAwLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDAsIAotICAgIDAsIDgyLCA4MiwgODIsIDgyLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNTIsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDc5LCA3OSwgNzksIDQ3LCAxMzYsIDAsIDAsIDAsIDAsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDgwLCA0NywgODAsIDgwLCA4NCwgNDcsIAotICAgIDQ3LCA4MCwgODAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgODAsIDgwLCA0NywgODAsIDQ3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NywgNDcsIDUyLCA4MiwgODIsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgMTYzLCAxNjQsIDksIDEwLCAxNjMsIDE2NCwgMTYzLCAxNjQsIDE2MywgMTY0LCAxNjMsIDE2NCwgMTYzLCAxNjQsIDE2MywgCisgICAgMTY0LCAxNjMsIDE2NCwgMTYzLCAxNjQsIDE2MywgMTY0LCA3OCwgNzgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIAorICAgIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAKKyAgICAyMjgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgMjI4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgNzgsIDc4LCA3OCwgMjI4LCA3OCwgNzgsIDc4LCA3OCwgMjI4LCAyMjgsIAorICAgIDIyOCwgMjI4LCAyMjgsIDc4LCAyMjgsIDIyOCwgNzgsIDc4LCAxNjMsIDE2NCwgMTYzLCAxNjQsIDIyOCwgNzgsIDc4LCA3OCwgCisgICAgNzgsIDIyOCwgNzgsIDIyOCwgMjI4LCAyMjgsIDc4LCA3OCwgMjI4LCAyMjgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCAKKyAgICA3OCwgNzgsIDc4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCA3OCwgNzgsIDE2MywgMTY0LCA3OCwgNzgsIDc4LCAKKyAgICA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCAyMjgsIDIyOCwgMjIyLCAyMjgsIDIyOCwgMjI4LCAyMjgsIAorICAgIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDc4LCAyMjgsIDIyOCwgCisgICAgMjI4LCAyMjgsIDc4LCA3OCwgMjI4LCA3OCwgMjI4LCA3OCwgNzgsIDIyOCwgNzgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgNzgsIAorICAgIDc4LCA3OCwgNzgsIDc4LCAyMjgsIDIyOCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgMjI4LCAyMjgsIDIyOCwgNzgsIDc4LCAKKyAgICA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCAKKyAgICA3OCwgNzgsIDc4LCA3OCwgMjI4LCAyMjgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgCisgICAgMjI4LCAyMjgsIDc4LCA3OCwgNzgsIDc4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDc4LCAyMjgsIDIyOCwgNzgsIDc4LCAyMjgsIAorICAgIDIyMiwgMjEyLCAyMTIsIDc4LCA3OCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAKKyAgICAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgCisgICAgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIAorICAgIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCA3OCwgNzgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAKKyAgICA3OCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIAorICAgIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAKKyAgICAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDIyOCwgMjI4LCA3OCwgNzgsIDc4LCAKKyAgICA3OCwgNzgsIDIzOSwgNzgsIDIyOCwgNzgsIDc4LCA3OCwgMjI4LCAyMjgsIDIyOCwgMjI4LCAyMjgsIDc4LCA3OCwgNzgsIAorICAgIDc4LCA3OCwgMjI4LCAyMjgsIDIyOCwgNzgsIDc4LCA3OCwgNzgsIDIyOCwgNzgsIDc4LCA3OCwgMjI4LCAyMjgsIDIyOCwgCisgICAgMjI4LCAyMjgsIDc4LCAyMjgsIDc4LCA3OCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCAKKyAgICA3OCwgNzgsIDc4LCA3OCwgMjYsIDI2LCA3OCwgNzgsIDc4LCA3OCwgNzgsIDc4LCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDMwLCAzMCwgMzAsIDMwLCAzMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAxMzYsIDEzNiwgMTMyLCAxMzYsIDEzNiwgMTMyLCAKLSAgICAxMzYsIDEzNiwgODIsIDEzNiwgMTM5LCAwLCAwLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDAsIDAsIDAsIDAsIDAsIDAsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIAotICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAKLSAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgCi0gICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIAotICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAKLSAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgCi0gICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIAotICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAKLSAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgCi0gICAgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIAotICAgIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAKLSAgICAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgMjU1LCAyNTUsIDI1NSwgCi0gICAgMjU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMCwgMCwgMCwgMCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAwLCAwLCAwLCAwLCAKLSAgICAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgCi0gICAgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIAotICAgIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAKLSAgICAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgCi0gICAgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIAotICAgIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAKLSAgICAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgCi0gICAgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIAotICAgIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAKLSAgICAyNjYsIDI2NiwgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgCi0gICAgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIAotICAgIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAKLSAgICAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgCi0gICAgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIAotICAgIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAKLSAgICAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgCi0gICAgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIAotICAgIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAKLSAgICAyNjcsIDI2NywgMjY3LCAyNjcsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCi0gICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKLSAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCi0gICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKLSAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCi0gICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKLSAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCi0gICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMTY4LCAxNjgsIDI2OCwgMTY4LCAyNjgsIDE2OCwgMTY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDE2OCwgMjY4LCAxNjgsIDI2OCwgMTY4LCAKLSAgICAxNjgsIDI2OCwgMjY4LCAxNjgsIDE2OCwgMTY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDAsIDAsIDI2OCwgMjY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKLSAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCi0gICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKLSAgICAyNjgsIDI2OCwgMjY4LCAwLCAwLCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKLSAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCi0gICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKLSAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCi0gICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDAsIDAsIDAsIDAsIDAsIDI2OSwgMjcwLCAyNjksIAotICAgIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDIwOSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKLSAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAwLCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCi0gICAgMCwgMjY5LCAwLCAyNjksIDI2OSwgMCwgMjY5LCAyNjksIDAsIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCi0gICAgMjY5LCAyNjksIDI3MSwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAKLSAgICAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxOTMsIDI3MywgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAwLCAwLCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAyNzQsIDI3LCAwLCAwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgMjc1LCAyNzUsIDI3NSwgMjc1LCAyNzUsIDI3NSwgCi0gICAgMjc1LCAyNzYsIDI3NywgMjc1LCAwLCAwLCAwLCAwLCAwLCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjc1LCAyNzgsIDI3OCwgMjc5LCAyNzksIDI3NiwgMjc3LCAyNzYsIDI3NywgMjc2LCAKLSAgICAyNzcsIDI3NiwgMjc3LCAyNzYsIDI3NywgMjc2LCAyNzcsIDI3NiwgMjc3LCAyNzYsIDI3NywgMjQxLCAyNDEsIDI3NiwgCi0gICAgMjc3LCAyNzUsIDI3NSwgMjc1LCAyNzUsIDI3OSwgMjc5LCAyNzksIDI4MCwgMjc1LCAyODAsIDAsIDI3NSwgMjgwLCAyNzUsIAotICAgIDI3NSwgMjc4LCAyODEsIDI4MiwgMjgxLCAyODIsIDI4MSwgMjgyLCAyODMsIDI3NSwgMjc1LCAyODQsIDI4NSwgMjg2LCAKLSAgICAyODYsIDI4NywgMCwgMjc1LCAyODgsIDI4MywgMjc1LCAwLCAwLCAwLCAwLCAxMjgsIDEyOCwgMTI4LCAxMTUsIDEyOCwgMCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMCwgMCwgMTg2LCAwLCAyODksIDI4OSwgMjkwLCAKLSAgICAyOTEsIDI5MCwgMjg5LCAyODksIDI5MiwgMjkzLCAyODksIDI5NCwgMjk1LCAyOTYsIDI5NSwgMjk1LCAyOTcsIDI5NywgCi0gICAgMjk3LCAyOTcsIDI5NywgMjk3LCAyOTcsIDI5NywgMjk3LCAyOTcsIDI5NSwgMjg5LCAyOTgsIDI5OSwgMjk4LCAyODksIAotICAgIDI4OSwgMzAwLCAzMDAsIDMwMCwgMzAwLCAzMDAsIDMwMCwgMzAwLCAzMDAsIDMwMCwgMzAwLCAzMDAsIDMwMCwgMzAwLCAKLSAgICAzMDAsIDMwMCwgMzAwLCAzMDAsIDMwMCwgMzAwLCAzMDAsIDMwMCwgMzAwLCAzMDAsIDMwMCwgMzAwLCAzMDAsIDI5MiwgCi0gICAgMjg5LCAyOTMsIDMwMSwgMzAyLCAzMDEsIDMwMywgMzAzLCAzMDMsIDMwMywgMzAzLCAzMDMsIDMwMywgMzAzLCAzMDMsIAotICAgIDMwMywgMzAzLCAzMDMsIDMwMywgMzAzLCAzMDMsIDMwMywgMzAzLCAzMDMsIDMwMywgMzAzLCAzMDMsIDMwMywgMzAzLCAKLSAgICAzMDMsIDMwMywgMzAzLCAyOTIsIDI5OSwgMjkzLCAyOTksIDI5MiwgMjkzLCAzMDQsIDMwNSwgMzA2LCAzMDQsIDMwNCwgCi0gICAgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDgsIDMwNywgMzA3LCAzMDcsIAotICAgIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAKLSAgICAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgCi0gICAgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIAotICAgIDMwOCwgMzA4LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAKLSAgICAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDMwNywgCi0gICAgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDAsIDAsIDAsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDAsIDAsIAotICAgIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDAsIDAsIDMwNywgMzA3LCAzMDcsIDMwNywgMzA3LCAzMDcsIDAsIDAsIAotICAgIDMwNywgMzA3LCAzMDcsIDAsIDAsIDAsIDI5MSwgMjkxLCAyOTksIDMwMSwgMzA5LCAyOTEsIDI5MSwgMCwgMzEwLCAzMTEsIAotICAgIDMxMSwgMzExLCAzMTEsIDMxMCwgMzEwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMTIsIDMxMiwgMzEyLCAyNywgCi0gICAgMjUsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCA0NywgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCAKKyAgICA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCAKKyAgICA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCAwLCA0NywgNDcsIAogICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAogICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAorICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ0LCA0NywgNDQsIDQ0LCA0NCwgNDcsIDQ3LCA0NCwgCisgICAgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDQsIDQ0LCA0NCwgNDcsIDQ0LCA0NywgNDcsIDQ0LCA0NywgNDcsIDQ3LCA0NywgCisgICAgNDcsIDQ3LCA1MSwgNTEsIDQ0LCA0NCwgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ3LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCA0NCwgNDcsIDQ0LCA0NywgODEsIDgxLCA4MSwgNDQsIDQ3LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxMzgsIDEzOCwgMTM4LCAxMzgsIDE1MywgMTM4LCAxMzgsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAogICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgODIsIDEzNSwgNzksIDAsIDAsIDAsIDAsIAotICAgIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAKLSAgICAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgCi0gICAgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIAotICAgIDE0NiwgMTQ2LCAxNDYsIDAsIDAsIDAsIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDMxMywgMzEzLCAKLSAgICAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgCi0gICAgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIAotICAgIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAKLSAgICAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAzMTMsIDMxMywgMzEzLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMTUxLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA4NCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCAwLCAwLCAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAxNzEsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTcxLCAwLCAwLCAKKyAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDQ3LCAwLCAwLCAwLCAwLCAwLCA0NywgMCwgCisgICAgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MSwgODMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDE0MiwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDAsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgCisgICAgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgCisgICAgMTM4LCAxMzgsIDI4LCAzNiwgMjgsIDM2LCAxMzgsIDEzOCwgMTM4LCAyOCwgMzYsIDEzOCwgMjgsIDM2LCAxMzgsIDEzOCwgCisgICAgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTM4LCA4NCwgMTM4LCAxMzgsIDg0LCAxMzgsIDI4LCAzNiwgMTM4LCAKKyAgICAxMzgsIDI4LCAzNiwgMTYzLCAxNjQsIDE2MywgMTY0LCAxNjMsIDE2NCwgMTYzLCAxNjQsIDEzOCwgMTM4LCAxMzgsIDEzOCwgCisgICAgMTM4LCA1MiwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTM4LCA4NCwgODQsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDgyLCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAwLCAwLCAwLCAKLSAgICAwLCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDgyLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAKKyAgICAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgCisgICAgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQxLCAyNDAsIAorICAgIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAKKyAgICAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgCisgICAgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIAorICAgIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAKKyAgICAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgCisgICAgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQxLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAKKyAgICAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgCisgICAgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIAorICAgIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAKKyAgICAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgCisgICAgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIAorICAgIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAKKyAgICAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgCisgICAgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIAorICAgIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAKKyAgICAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgCisgICAgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIAorICAgIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAKKyAgICAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgCisgICAgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIAorICAgIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjQxLCAyNDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgCisgICAgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDAsIDAsIDAsIDAsIDI0MiwgMjQzLCAyNDMsIDI0MywgCisgICAgMjQwLCAyNDQsIDE3MCwgMjQ1LCAyNDYsIDI0NywgMjQ2LCAyNDcsIDI0NiwgMjQ3LCAyNDYsIDI0NywgMjQ2LCAyNDcsIAorICAgIDI0MCwgMjQwLCAyNDYsIDI0NywgMjQ2LCAyNDcsIDI0NiwgMjQ3LCAyNDYsIDI0NywgMjQ4LCAyNDksIDI1MCwgMjUwLCAKKyAgICAyNDAsIDI0NSwgMjQ1LCAyNDUsIDI0NSwgMjQ1LCAyNDUsIDI0NSwgMjQ1LCAyNDUsIDI1MSwgMjUyLCAyNTMsIDI1NCwgCisgICAgMjU1LCAyNTUsIDI0OCwgMjQ0LCAyNDQsIDI0NCwgMjQ0LCAyNDQsIDI0MSwgMjQwLCAyNTYsIDI1NiwgMjU2LCAyNDQsIAorICAgIDE3MCwgMjQzLCAyNDAsIDI2LCAwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMjU3LCAxNzAsIDI1NywgMTcwLCAyNTcsIDE3MCwgMjU3LCAxNzAsIDI1NywgMTcwLCAyNTcsIDE3MCwgMjU3LCAKKyAgICAxNzAsIDI1NywgMTcwLCAyNTcsIDE3MCwgMjU3LCAxNzAsIDI1NywgMTcwLCAyNTcsIDE3MCwgMTcwLCAyNTcsIDE3MCwgCisgICAgMjU3LCAxNzAsIDI1NywgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMjU3LCAyNTcsIDE3MCwgMjU3LCAyNTcsIAorICAgIDE3MCwgMjU3LCAyNTcsIDE3MCwgMjU3LCAyNTcsIDE3MCwgMjU3LCAyNTcsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMjU3LCAxNzAsIDE3MCwgMCwgMCwgMjU4LCAyNTgsIDI1OSwgMjU5LCAyNDQsIDI2MCwgMjYxLCAKKyAgICAyNDgsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAyNTcsIDE3MCwgCisgICAgMjU3LCAxNzAsIDI1NywgMTcwLCAyNTcsIDE3MCwgMjU3LCAxNzAsIDI1NywgMTcwLCAyNTcsIDE3MCwgMjU3LCAxNzAsIAorICAgIDI1NywgMTcwLCAyNTcsIDE3MCwgMjU3LCAxNzAsIDI1NywgMTcwLCAxNzAsIDI1NywgMTcwLCAyNTcsIDE3MCwgMjU3LCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAyNTcsIDI1NywgMTcwLCAyNTcsIDI1NywgMTcwLCAyNTcsIDI1NywgCisgICAgMTcwLCAyNTcsIDI1NywgMTcwLCAyNTcsIDI1NywgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAyNTcsIDE3MCwgMTcwLCAyNTcsIDI1NywgMjU3LCAyNTcsIDI0MywgMjQ0LCAyNDQsIDI2MCwgMjYxLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMCwgMCwgMCwgCisgICAgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIAorICAgIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAKKyAgICAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgCisgICAgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIAorICAgIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAKKyAgICAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgCisgICAgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAwLCAyNjIsIDI2MiwgMjYzLCAyNjMsIAorICAgIDI2MywgMjYzLCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAKKyAgICAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgCisgICAgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI0MSwgMjQxLCAwLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAKKyAgICAyNjMsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NSwgMjY1LCAyNjUsIDI2NSwgMjY1LCAyNjUsIDI2NSwgMjY1LCAyNDEsIDI2NiwgMjY2LCAKKyAgICAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjQxLCAKKyAgICAyNDEsIDI0MSwgMjYyLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NiwgMjY2LCAyNjYsIDI2NiwgCisgICAgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NiwgMjY2LCAyNjYsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI0MSwgMjQxLCAyNDEsIDI0MSwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDAsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNDEsIDI0MSwgMjQxLCAKKyAgICAyNDEsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI0MSwgMjQxLCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI0MSwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMjQ0LCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMCwgMCwgMCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIAorICAgIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAKKyAgICAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgCisgICAgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIDI0MCwgMjQwLCAyNDAsIAorICAgIDI0MCwgMjQwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNTMsIDUzLCA1MywgNTMsIDUzLCAKKyAgICA1MywgODMsIDgzLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA1MywgMTM4LCAxMzgsIAorICAgIDEzOCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIAorICAgIDQ0LCA0NywgNDgsIDgxLCA4MiwgODIsIDgyLCAxMzgsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCAKKyAgICAxMzgsIDUyLCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MSwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAKKyAgICAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgODEsIDgxLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA1NCwgNTQsIDU0LCA1NCwgNTQsIDU0LCA1NCwgNTQsIDU0LCA1NCwgNTQsIDU0LCA1NCwgNTQsIDU0LCA1NCwgCisgICAgNTQsIDU0LCA1NCwgNTQsIDU0LCA1NCwgNTQsIDUyLCA1MiwgNTIsIDUyLCA1MiwgNTIsIDUyLCA1MiwgNTIsIDU0LCA1NCwgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NywgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgCisgICAgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNTEsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDQsIDQ3LCA0NCwgCisgICAgNDcsIDQ0LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNTIsIDI2NywgMjY3LCA0NCwgNDcsIDQ0LCAKKyAgICA0NywgMCwgNDQsIDQ3LCA0NCwgNDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ0LCA0NywgNDQsIAorICAgIDQ3LCA0NCwgNDcsIDQ0LCA0NywgNDQsIDQ3LCA0NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTEsIDUxLCA0NywgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDEzNSwgNDgsIDQ4LCA0OCwgMTQyLCA0OCwgNDgsIDQ4LCA0OCwgMTM1LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDEzOSwgMTM5LCAxMzUsIDEzNSwgMTM5LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMTQ4LCAxNDgsIDE0OCwgCisgICAgMTQ4LCAxNDgsIDE0OCwgODAsIDgwLCA4NSwgMjIxLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAxMzksIDEzOSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgCisgICAgMTM5LCAxMzksIDE0MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODMsIDgzLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIAorICAgIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDAsIDAsIDAsIDAsIDAsIDAsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIAorICAgIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDgzLCA4MywgODMsIDQ4LCAwLCAwLCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgODYsIAorICAgIDg2LCA4NiwgODMsIDgzLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgCisgICAgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzksIDE3NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODMsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAwLCAKKyAgICAwLCAwLCAxMzUsIDEzNSwgMTM1LCAxMzksIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQ1LCAKKyAgICAxMzksIDEzOSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzksIDEzOSwgMTM1LCAxMzksIDEzOSwgMTM5LCAxNzQsIDgzLCA4MywgCisgICAgODMsIDgzLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCAwLCA1MywgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAwLCAwLCAwLCAwLCA4MywgODMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM5LCAxMzksIDEzNSwgMTM1LCAKKyAgICAxMzksIDEzOSwgMTM1LCAxMzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDEzNSwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxMzUsIDEzOSwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAwLCAwLCA4MywgODMsIDgzLCA4MywgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDUzLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA4MCwgODAsIDgwLCAKKyAgICA0OCwgMTM5LCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA4MSwgCisgICAgNDgsIDgxLCA4MSwgODYsIDQ4LCA0OCwgODEsIDgxLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDgxLCA4MSwgNDgsIDgxLCA0OCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNDgsIDQ4LCA1MywgODMsIDgzLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDEzOSwgMTM1LCAKKyAgICAxMzUsIDEzOSwgMTM5LCA4MywgODMsIDQ4LCA1MywgNTMsIDEzOSwgMTQyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTM5LCAxMzksIDEzNSwgMTM5LCAxMzksIDEzNSwgMTM5LCAxMzksIDgzLCAxMzksIAorICAgIDE0MiwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIAorICAgIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAKKyAgICAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgCisgICAgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIAorICAgIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAKKyAgICAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgCisgICAgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIAorICAgIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAKKyAgICAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgCisgICAgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIAorICAgIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAKKyAgICAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMjU3LCAyNTcsIDI1NywgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDAsIDAsIDAsIDAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMCwgMCwgMCwgMCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAorICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKKyAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCisgICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAorICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKKyAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCisgICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAorICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAKKyAgICAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgCisgICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OSwgMjY5LCAyNjksIAorICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKKyAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCisgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAorICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKKyAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCisgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAorICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKKyAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCisgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNzAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCisgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCisgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCisgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDE3MCwgMTcwLCAyNzAsIDE3MCwgMjcwLCAxNzAsIDE3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCisgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAxNzAsIDI3MCwgMTcwLCAyNzAsIDE3MCwgMTcwLCAyNzAsIDI3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCisgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDAsIDAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCisgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgCisgICAgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMCwgMCwgMCwgMCwgMCwgMjcxLCAyNzIsIDI3MSwgMjczLCAyNzMsIDI3MywgMjczLCAKKyAgICAyNzMsIDI3MywgMjczLCAyNzMsIDI3MywgMjExLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgCisgICAgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDAsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAwLCAyNzEsIDAsIDI3MSwgMjcxLCAKKyAgICAwLCAyNzEsIDI3MSwgMCwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjcxLCAyNzEsIDI3MSwgMjczLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMjc0LCAKKyAgICAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgMjc0LCAyNzQsIDI3NCwgCisgICAgMjc0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDE5NSwgMjc1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDI3NiwgMjYsIDAsIDAsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAyNzcsIDI3NywgMjc3LCAyNzcsIDI3NywgMjc3LCAyNzcsIDI3OCwgMjc5LCAKKyAgICAyNzcsIDAsIDAsIDAsIDAsIDAsIDAsIDgxLCA4MSwgODEsIDgxLCA4MSwgODEsIDgxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAyNzcsIDI4MCwgMjgwLCAyODEsIDI4MSwgMjc4LCAyNzksIDI3OCwgMjc5LCAyNzgsIDI3OSwgMjc4LCAyNzksIAorICAgIDI3OCwgMjc5LCAyNzgsIDI3OSwgMjc4LCAyNzksIDI3OCwgMjc5LCAyNDMsIDI0MywgMjc4LCAyNzksIDI3NywgMjc3LCAKKyAgICAyNzcsIDI3NywgMjgxLCAyODEsIDI4MSwgMjgyLCAyNzcsIDI4MiwgMCwgMjc3LCAyODIsIDI3NywgMjc3LCAyODAsIDI4MywgCisgICAgMjg0LCAyODMsIDI4NCwgMjgzLCAyODQsIDI4NSwgMjc3LCAyNzcsIDI4NiwgMjg3LCAyODgsIDI4OCwgMjg5LCAwLCAyNzcsIAorICAgIDI5MCwgMjg1LCAyNzcsIDAsIDAsIDAsIDAsIDEzMCwgMTMwLCAxMzAsIDExNywgMTMwLCAwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAwLCAxODcsIDAsIDI5MSwgMjkxLCAyOTIsIDI5MywgMjkyLCAyOTEsIAorICAgIDI5MSwgMjk0LCAyOTUsIDI5MSwgMjk2LCAyOTcsIDI5OCwgMjk3LCAyOTcsIDI5OSwgMjk5LCAyOTksIDI5OSwgMjk5LCAKKyAgICAyOTksIDI5OSwgMjk5LCAyOTksIDI5OSwgMjk3LCAyOTEsIDMwMCwgMzAxLCAzMDAsIDI5MSwgMjkxLCAzMDIsIDMwMiwgCisgICAgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIAorICAgIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMzAyLCAzMDIsIDMwMiwgMjk0LCAyOTEsIDI5NSwgMzAzLCAKKyAgICAzMDQsIDMwMywgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgCisgICAgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIDMwNSwgMzA1LCAzMDUsIAorICAgIDI5NCwgMzAxLCAyOTUsIDMwMSwgMjk0LCAyOTUsIDMwNiwgMzA3LCAzMDgsIDMwNiwgMzA2LCAzMDksIDMwOSwgMzA5LCAKKyAgICAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMxMCwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgCisgICAgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIAorICAgIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAKKyAgICAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzEwLCAzMTAsIDMwOSwgCisgICAgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIAorICAgIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMzA5LCAKKyAgICAzMDksIDMwOSwgMCwgMCwgMCwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMCwgMCwgMzA5LCAzMDksIDMwOSwgCisgICAgMzA5LCAzMDksIDMwOSwgMCwgMCwgMzA5LCAzMDksIDMwOSwgMzA5LCAzMDksIDMwOSwgMCwgMCwgMzA5LCAzMDksIDMwOSwgCisgICAgMCwgMCwgMCwgMjkzLCAyOTMsIDMwMSwgMzAzLCAzMTEsIDI5MywgMjkzLCAwLCAzMTIsIDMxMywgMzEzLCAzMTMsIDMxMywgCisgICAgMzEyLCAzMTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMxNCwgMzE0LCAzMTQsIDI2LCAzMCwgMCwgMCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIDAsIDAsIDgzLCAxMzgsIDgzLCAwLCAwLCAwLCAwLCAxNDgsIDE0OCwgCisgICAgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIAorICAgIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAKKyAgICAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgCisgICAgMTQ4LCAwLCAwLCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAzMTUsIDMxNSwgMzE1LCAzMTUsIAorICAgIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAKKyAgICAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgCisgICAgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIAorICAgIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMTUzLCAxNTMsIDE1MywgMTUzLCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDE1MywgMCwgMCwgMCwgMCwgMCwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODYsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTczLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDE3MywgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgODMsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDAsIDAsIAorICAgIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgODMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgCiAgICAgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgCi0gICAgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgNDYsIDQ2LCA0NiwgCi0gICAgNDYsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCisgICAgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDQsIDQ0LCA0NCwgNDcsIDQ3LCA0NywgCiAgICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCiAgICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDAsIDAsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDEsIDE0MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMCwgMCwgMTA1LCAwLCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIAotICAgIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMCwgMTA1LCAxMDUsIDAsIDAsIDAsIDEwNSwgMCwgMCwgMTA1LCAxMDUsIAotICAgIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDAsIDEwMiwgMzE0LCAzMTQsIDMxNCwgMzE0LCAzMTQsIDMxNCwgCi0gICAgMzE0LCAzMTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMzE0LCAzMTQsIDMxNCwgMzE0LCAzMTQsIDMxNCwgMCwgMCwgMCwgMTM1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMCwgMCwgMCwgMCwgMCwgMTAyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDUsIDEzMiwgMTMyLCAxMzIsIDAsIDEzMiwgMTMyLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxMzIsIDg0LCAxMzIsIDgwLCAxMDUsIDEwNSwgMTA1LCAxMDUsIDAsIDEwNSwgMTA1LCAxMDUsIDAsIDEwNSwgMTA1LCAxMDUsIAotICAgIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDAsIDAsIDAsIDAsIDgwLCAxNzQsIAotICAgIDg0LCAwLCAwLCAwLCAwLCAxMzksIDMxNCwgMzE0LCAzMTQsIDMxNCwgMzE0LCAzMTQsIDMxNCwgMzE0LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIAotICAgIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMzE0LCAzMTQsIDEwMiwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIAotICAgIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMCwgMCwgMCwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDAsIDAsIDMxNCwgMzE0LCAzMTQsIDMxNCwgMzE0LCAzMTQsIDMxNCwgMzE0LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDAsIDAsIDAsIDAsIDAsIDMxNCwgMzE0LCAzMTQsIDMxNCwgMzE0LCAzMTQsIAotICAgIDMxNCwgMzE0LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIAotICAgIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAKLSAgICAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDEwNSwgCi0gICAgMTA1LCAxMDUsIDEwNSwgMTA1LCAxMDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAKLSAgICAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgCi0gICAgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMzE1LCAzMTUsIDMxNSwgMCwgMTM2LCAxMzIsIAotICAgIDEzNiwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzIsIDEzMiwgCi0gICAgMTM5LCA4MiwgODIsIDgyLCA4MiwgODIsIDgyLCA4MiwgMCwgMCwgMCwgMCwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIAotICAgIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAKLSAgICAxNTEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMyLCAxMzIsIDEzNiwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAxMzcsIDQ3LCAKLSAgICAxMzcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMTM3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgMTM2LCAxMzYsIDEzNiwgMTMyLCAxMzIsIDEzMiwgMTMyLCAxMzYsIDEzNiwgMTM5LCAxMzgsIDgyLCA4MiwgCi0gICAgMTcyLCA4MiwgODIsIDgyLCA4MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcxLCAxNzEsIDE3MSwgCi0gICAgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIAotICAgIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAKLSAgICAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgCi0gICAgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIAotICAgIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAKLSAgICAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgCi0gICAgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMTcxLCAxNzEsIDE3MSwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODIsIDgyLCA4MiwgODIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCi0gICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCAKLSAgICA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMTY4LCAxNjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAKLSAgICA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAKLSAgICA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAwLCAwLCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIAotICAgIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAKLSAgICAzMTYsIDMxNiwgMzE3LCAzMTcsIDE3NCwgMTc0LCAxNzQsIDc5LCA3OSwgNzksIDMxOCwgMzE3LCAzMTcsIDMxNywgMzE3LCAKLSAgICAzMTcsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCA4NCwgODQsIDg0LCA4NCwgODQsIDg0LCA4NCwgCi0gICAgODQsIDc5LCA3OSwgODAsIDgwLCA4MCwgODAsIDgwLCA4NCwgODQsIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDgwLCA4MCwgODAsIDgwLCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAKLSAgICA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCAKLSAgICA3OSwgNzksIDc5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCA4MCwgODAsIDgwLCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMTQ2LCAxNDYsIAotICAgIDE0NiwgMTQ2LCAxNDYsIDE0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgCisgICAgNDcsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCiAgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCiAgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OCwgMCwgNDgsIDQ4LCAwLCAwLCA0OCwgMCwgMCwgNDgsIAotICAgIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMCwgMzUsIDAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCi0gICAgMzUsIDM1LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ4LCA0OCwgCi0gICAgMCwgNDgsIDQ4LCA0OCwgNDgsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgNDgsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAotICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDAsIDAsIDEwNywgMCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDEwNywgMTA3LCAwLCAwLCAwLCAxMDcsIDAsIDAsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAwLCAxMDQsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIAorICAgIDMxNiwgMzE2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDAsIDAsIDAsIDEzOCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDAsIDEwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNywgMTA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDcsIDEzNSwgMTM1LCAxMzUsIDAsIDEzNSwgMTM1LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxMzUsIDg2LCAxMzUsIDgxLCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDEwNywgMTA3LCAxMDcsIDAsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDgxLCAxNzUsIAorICAgIDg2LCAwLCAwLCAwLCAwLCAxNDIsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAxMDQsIDEwNCwgMTA0LCAxMDQsIDEwNCwgMTA0LCAxMDQsIDEwNCwgMTA0LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMzE2LCAzMTYsIDEwNCwgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMCwgMCwgMCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMzgsIDEzOCwgMTM4LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDAsIDMxNiwgMzE2LCAzMTYsIDMxNiwgMzE2LCAzMTYsIAorICAgIDMxNiwgMzE2LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIAorICAgIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAKKyAgICAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCisgICAgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAKKyAgICAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgCisgICAgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMzE3LCAzMTcsIDMxNywgMCwgMTM5LCAxMzUsIAorICAgIDEzOSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAzMTksIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAyMjAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAzMTksIDM1LCAzNSwgMzUsIAotICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAotICAgIDM1LCAzNSwgMzUsIDM1LCAyMjAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgCisgICAgMTQyLCA4MywgODMsIDgzLCA4MywgODMsIDgzLCA4MywgMCwgMCwgMCwgMCwgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIAorICAgIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAxNTMsIDE1MywgMTUzLCAKKyAgICAxNTMsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM1LCAxMzUsIDEzOSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxNDAsIDQ4LCAKKyAgICAxNDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQwLCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgMTM5LCAxMzksIDEzOSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzksIDEzOSwgMTQyLCAxNDEsIDgzLCA4MywgCisgICAgMTg4LCA4MywgODMsIDgzLCA4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICAzMTksIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAyMjAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAwLCAwLCAwLCAwLCAwLCAwLCA4MSwgODEsIDgxLCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKICAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKLSAgICA0OCwgNDgsIDQ4LCA0OCwgMzE5LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMjIwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIAotICAgIDM1LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIAotICAgIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMzE5LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKLSAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMjIwLCAzNSwgCi0gICAgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OCwgMzUsIDAsIDAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAKLSAgICAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgCi0gICAgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIAotICAgIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAzMjAsIDMyMCwgMzIwLCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDAsIDAsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAwLCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgCi0gICAgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIAotICAgIDIzNSwgMjM1LCAyMzUsIDIzNSwgMzIxLCAwLCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAKLSAgICAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgCi0gICAgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjM1LCAyMzUsIDIzNSwgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIAotICAgIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAKLSAgICAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDAsIDAsIDAsIDAsIDAsIDAsIDI2MywgMjYzLCAyNjMsIDI2MywgCi0gICAgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIAotICAgIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAKLSAgICAyMzUsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMjYzLCAyNjMsIDI2MywgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTQ5LCAxMzUsIDEzNSwgMTM1LCAxMzUsIAorICAgIDEzOSwgMTM1LCAxNTAsIDE1MCwgMTM1LCAxMzUsIDEzNSwgMTQyLCAxNDIsIDAsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAKKyAgICAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgODMsIDgzLCA4MywgODMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgCi0gICAgNzksIDc5LCA3OSwgNzksIDc5LCA3OSwgMjYyLCAyNjIsIDI2MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAKLSAgICAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgCi0gICAgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIAotICAgIDI2MiwgMjYyLCAwLCAwLCAwLCAwLCAwLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAyNjIsIDI2MiwgMjYyLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAyNjIsIDI2MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMTM1LCAxMzUsIDEzOSwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTM5LCAxMzksIAorICAgIDEzOSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM5LCAxNzQsIDQ4LCA0OCwgNDgsIAorICAgIDQ4LCA4MywgODMsIDgzLCA4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgMTM1LCAxMzksIDEzNSwgMTM5LCAxMzksIDEzNSwgMTM1LCAxMzUsIDEzNSwgMTM1LCAxMzUsIAorICAgIDE3NCwgMTQ1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgMTQ0LCAxNDQsIDE0NCwgCisgICAgMTQ0LCAxNDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAwLCAwLCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAwLCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKLSAgICAyNywgMCwgMjcsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgNzksIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMjcsIDI3LCAyNywgMjcsIDAsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDc5LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIAorICAgIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAKKyAgICAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgCisgICAgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIAorICAgIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAKKyAgICAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgCisgICAgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIDE3MywgMTczLCAxNzMsIAorICAgIDE3MywgMTczLCAxNzMsIDE3MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODMsIDgzLCA4MywgCisgICAgODMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAKKyAgICA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCisgICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIAorICAgIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAKKyAgICAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgCisgICAgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIDEzOSwgMTM5LCAxMzksIAorICAgIDEzOSwgMTM5LCAxMzksIDEzOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM1LCAKKyAgICAxMzUsIDEzNSwgMTM1LCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgNTMsIDUzLCA1MywgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcwLCAKKyAgICAxNzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKKyAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKKyAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKKyAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKKyAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKKyAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKKyAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAwLCAwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgCisgICAgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDMxOCwgMzE4LCAzMTgsIDMxOCwgMzE4LCAzMTgsIDMxOCwgMzE5LCAzMTksIAorICAgIDE3NSwgMTc1LCAxNzUsIDgwLCA4MCwgODAsIDMyMCwgMzE5LCAzMTksIDMxOSwgMzE5LCAzMTksIDE4NywgMTg3LCAxODcsIAorICAgIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCA4NiwgODYsIDg2LCA4NiwgODYsIDg2LCA4NiwgODYsIDgwLCA4MCwgODEsIDgxLCAKKyAgICA4MSwgODEsIDgxLCA4NiwgODYsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAKKyAgICA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgxLCAKKyAgICA4MSwgODEsIDgxLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgMzE4LCAzMTgsIAorICAgIDMxOCwgMzE4LCAzMTgsIDMxOCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCA4MSwgCisgICAgODEsIDgxLCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ4LCAxNDgsIDE0OCwgCisgICAgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIDE0OCwgMTQ4LCAxNDgsIAorICAgIDE0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCisgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCisgICAgNDksIDQ5LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCisgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDAsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OSwgMCwgNDksIDQ5LCAwLCAwLCA0OSwgMCwgMCwgNDksIDQ5LCAwLCAwLCA0OSwgCisgICAgNDksIDQ5LCA0OSwgMCwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAzNSwgMzUsIDM1LCAzNSwgMCwgMzUsIDAsIAorICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCisgICAgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCisgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OSwgCisgICAgNDksIDAsIDQ5LCA0OSwgNDksIDQ5LCAwLCAwLCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDAsIDQ5LCA0OSwgCisgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgMCwgNDksIAorICAgIDQ5LCA0OSwgNDksIDAsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMCwgNDksIDAsIDAsIDAsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCisgICAgNDksIDQ5LCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMCwgMCwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIAorICAgIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDMyMSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDIyMiwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCisgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDMyMSwgMzUsIDM1LCAzNSwgMzUsIAorICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAorICAgIDM1LCAzNSwgMzUsIDIyMiwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCAKKyAgICA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDMyMSwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCisgICAgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDIyMiwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgNDksIDQ5LCA0OSwgNDksIAorICAgIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIAorICAgIDQ5LCA0OSwgNDksIDMyMSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDIyMiwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgCisgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgCisgICAgNDksIDQ5LCA0OSwgNDksIDQ5LCA0OSwgNDksIDMyMSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIAorICAgIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDIyMiwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgNDksIDM1LCAwLCAwLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgCisgICAgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIAorICAgIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAKKyAgICAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgMzIyLCAzMjIsIDMyMiwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDEzMCwgMCwgMTMwLCAwLCAwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDAsIDEzMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMTMwLCAwLCAwLCAwLCAwLCAxMzAsIDAsIDEzMCwgMCwgMTMwLCAwLCAxMzAsIDEzMCwgMTMwLCAwLCAKKyAgICAxMzAsIDEzMCwgMCwgMTMwLCAwLCAwLCAxMzAsIDAsIDEzMCwgMCwgMTMwLCAwLCAxMzAsIDAsIDEzMCwgMCwgMTMwLCAxMzAsIAorICAgIDAsIDEzMCwgMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIAorICAgIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDAsIDAsIDAsIDAsIDAsIDEzMCwgCisgICAgMTMwLCAxMzAsIDAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAKKyAgICAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMTMwLCAxMzAsIDEzMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzgsIDc4LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDAsIDAsIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMCwgMCwgMCwgMCwgMCwgMjM3LCAyMzcsIAorICAgIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAKKyAgICAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgCisgICAgMzIzLCAwLCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIAorICAgIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMjM3LCAKKyAgICAyMzcsIDIzNywgMjM3LCAyMzcsIDIzNywgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgCisgICAgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIAorICAgIDMyNCwgMzI0LCAzMjQsIDIxOCwgMjE4LCAwLCAwLCAwLCAwLCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIAorICAgIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAKKyAgICAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMjM3LCAzMjQsIDMyNCwgCisgICAgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDMyNCwgMzI0LCAzMjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIDgwLCA4MCwgODAsIAorICAgIDgwLCA4MCwgMjY0LCAyNjQsIDI2NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjY0LCAyNjQsIAorICAgIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAKKyAgICAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgCisgICAgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAyNjQsIDI2NCwgMjY0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAyNjQsIDI2NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDAsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAyNiwgMCwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAwLCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjcsIDI3LCAyNywgMjcsIDI3LCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCi0gICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMjcsIDI3LCAyNywgMCwgMjcsIDAsIDI3LCAwLCAyNywgCi0gICAgMCwgMjcsIDI3LCAyNywgMCwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgMjcsIDI3LCAyNywgMjcsIDAsIDI3LCAwLCAKLSAgICAwLCAyNywgMjcsIDI3LCAyNywgMCwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgCi0gICAgMCwgMCwgMCwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAKKyAgICAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIAorICAgIDAsIDAsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgCisgICAgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAotICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgCi0gICAgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIAotICAgIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAKLSAgICAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMTY4LCAxNjgsIDE2OCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIAorICAgIDI2LCAyNiwgMjYsIDI2LCAyNiwgMjYsIDI2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgCisgICAgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIAorICAgIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAKKyAgICAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAxNzAsIDE3MCwgMTcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNjgsIDI2OCwgCi0gICAgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIAotICAgIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAyNjgsIDI2OCwgMjY4LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIAorICAgIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAKKyAgICAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAyNzAsIDI3MCwgMjcwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxODcsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDE4NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgCi0gICAgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIAotICAgIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAKLSAgICAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgCi0gICAgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIAotICAgIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAKLSAgICAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgMTg2LCAxODYsIDE4NiwgCi0gICAgMTg2LCAxODYsIDE4NiwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCAKLSAgICA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgNzAsIDcwLCA3MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIAotICAgIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAKLSAgICAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgCi0gICAgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIAotICAgIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAKLSAgICAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgCi0gICAgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIAotICAgIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAKLSAgICAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgMjY3LCAyNjcsIDI2NywgCi0gICAgMjY3LCAyNjcsIDI2NywgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIAorICAgIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAKKyAgICAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgCisgICAgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIAorICAgIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAKKyAgICAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgCisgICAgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIDE4NywgMTg3LCAxODcsIAorICAgIDE4NywgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAorICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKKyAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCisgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAorICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKKyAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgCisgICAgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIAorICAgIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAKKyAgICAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMjY5LCAyNjksIDI2OSwgMCwgCisgICAgMCwgCiB9OwogCiAvKiBkZWNvbXBvc2l0aW9uIGRhdGEgKi8KQEAgLTMwNzIsMzIxICszMTQwLDMyMiBAQAogICAgIDUwLCA0OSwgMjYwODUsIDc3MCwgNTAsIDUwLCAyNjA4NSwgNzcwLCA1MCwgNTEsIDI2MDg1LCA3NzAsIDUwLCA1MiwgCiAgICAgMjYwODUsIDc3MCwgNTAsIDUzLCAyNjA4NSwgNzcwLCA1MCwgNTQsIDI2MDg1LCA3NzAsIDUwLCA1NSwgMjYwODUsIDc3MCwgCiAgICAgNTAsIDU2LCAyNjA4NSwgNzcwLCA1MCwgNTcsIDI2MDg1LCA3NzAsIDUxLCA0OCwgMjYwODUsIDc3MCwgNTEsIDQ5LCAKLSAgICAyNjA4NSwgNzc4LCAxMDMsIDk3LCAxMDgsIDI1OSwgNDI4NjMsIDI1NiwgMzU5MTIsIDI1NiwgMjYzNTYsIDI1NiwgMzY1NTQsIAotICAgIDI1NiwgMzYwNDAsIDI1NiwgMjgzNjksIDI1NiwgMjAwMTgsIDI1NiwgMjE0NzcsIDI1NiwgNDA4NjAsIDI1NiwgNDA4NjAsIAotICAgIDI1NiwgMjI4NjUsIDI1NiwgMzczMjksIDI1NiwgMjE4OTUsIDI1NiwgMjI4NTYsIDI1NiwgMjUwNzgsIDI1NiwgMzAzMTMsIAotICAgIDI1NiwgMzI2NDUsIDI1NiwgMzQzNjcsIDI1NiwgMzQ3NDYsIDI1NiwgMzUwNjQsIDI1NiwgMzcwMDcsIDI1NiwgMjcxMzgsIAotICAgIDI1NiwgMjc5MzEsIDI1NiwgMjg4ODksIDI1NiwgMjk2NjIsIDI1NiwgMzM4NTMsIDI1NiwgMzcyMjYsIDI1NiwgMzk0MDksIAotICAgIDI1NiwgMjAwOTgsIDI1NiwgMjEzNjUsIDI1NiwgMjczOTYsIDI1NiwgMjkyMTEsIDI1NiwgMzQzNDksIDI1NiwgNDA0NzgsIAotICAgIDI1NiwgMjM4ODgsIDI1NiwgMjg2NTEsIDI1NiwgMzQyNTMsIDI1NiwgMzUxNzIsIDI1NiwgMjUyODksIDI1NiwgMzMyNDAsIAotICAgIDI1NiwgMzQ4NDcsIDI1NiwgMjQyNjYsIDI1NiwgMjYzOTEsIDI1NiwgMjgwMTAsIDI1NiwgMjk0MzYsIDI1NiwgMzcwNzAsIAotICAgIDI1NiwgMjAzNTgsIDI1NiwgMjA5MTksIDI1NiwgMjEyMTQsIDI1NiwgMjU3OTYsIDI1NiwgMjczNDcsIDI1NiwgMjkyMDAsIAotICAgIDI1NiwgMzA0MzksIDI1NiwgMzI3NjksIDI1NiwgMzQzMTAsIDI1NiwgMzQzOTYsIDI1NiwgMzYzMzUsIDI1NiwgMzg3MDYsIAotICAgIDI1NiwgMzk3OTEsIDI1NiwgNDA0NDIsIDI1NiwgMzA4NjAsIDI1NiwgMzExMDMsIDI1NiwgMzIxNjAsIDI1NiwgMzM3MzcsIAotICAgIDI1NiwgMzc2MzYsIDI1NiwgNDA1NzUsIDI1NiwgMzU1NDIsIDI1NiwgMjI3NTEsIDI1NiwgMjQzMjQsIDI1NiwgMzE4NDAsIAotICAgIDI1NiwgMzI4OTQsIDI1NiwgMjkyODIsIDI1NiwgMzA5MjIsIDI1NiwgMzYwMzQsIDI1NiwgMzg2NDcsIDI1NiwgMjI3NDQsIAotICAgIDI1NiwgMjM2NTAsIDI1NiwgMjcxNTUsIDI1NiwgMjgxMjIsIDI1NiwgMjg0MzEsIDI1NiwgMzIwNDcsIDI1NiwgMzIzMTEsIAotICAgIDI1NiwgMzg0NzUsIDI1NiwgMjEyMDIsIDI1NiwgMzI5MDcsIDI1NiwgMjA5NTYsIDI1NiwgMjA5NDAsIDI1NiwgMzEyNjAsIAotICAgIDI1NiwgMzIxOTAsIDI1NiwgMzM3NzcsIDI1NiwgMzg1MTcsIDI1NiwgMzU3MTIsIDI1NiwgMjUyOTUsIDI1NiwgMjcxMzgsIAotICAgIDI1NiwgMzU1ODIsIDI1NiwgMjAwMjUsIDI1NiwgMjM1MjcsIDI1NiwgMjQ1OTQsIDI1NiwgMjk1NzUsIDI1NiwgMzAwNjQsIAotICAgIDI1NiwgMjEyNzEsIDI1NiwgMzA5NzEsIDI1NiwgMjA0MTUsIDI1NiwgMjQ0ODksIDI1NiwgMTk5ODEsIDI1NiwgMjc4NTIsIAotICAgIDI1NiwgMjU5NzYsIDI1NiwgMzIwMzQsIDI1NiwgMjE0NDMsIDI1NiwgMjI2MjIsIDI1NiwgMzA0NjUsIDI1NiwgMzM4NjUsIAotICAgIDI1NiwgMzU0OTgsIDI1NiwgMjc1NzgsIDI1NiwgMzY3ODQsIDI1NiwgMjc3ODQsIDI1NiwgMjUzNDIsIDI1NiwgMzM1MDksIAotICAgIDI1NiwgMjU1MDQsIDI1NiwgMzAwNTMsIDI1NiwgMjAxNDIsIDI1NiwgMjA4NDEsIDI1NiwgMjA5MzcsIDI1NiwgMjY3NTMsIAotICAgIDI1NiwgMzE5NzUsIDI1NiwgMzMzOTEsIDI1NiwgMzU1MzgsIDI1NiwgMzczMjcsIDI1NiwgMjEyMzcsIDI1NiwgMjE1NzAsIAotICAgIDI1NiwgMjI4OTksIDI1NiwgMjQzMDAsIDI1NiwgMjYwNTMsIDI1NiwgMjg2NzAsIDI1NiwgMzEwMTgsIDI1NiwgMzgzMTcsIAotICAgIDI1NiwgMzk1MzAsIDI1NiwgNDA1OTksIDI1NiwgNDA2NTQsIDI1NiwgMjExNDcsIDI1NiwgMjYzMTAsIDI1NiwgMjc1MTEsIAotICAgIDI1NiwgMzY3MDYsIDI1NiwgMjQxODAsIDI1NiwgMjQ5NzYsIDI1NiwgMjUwODgsIDI1NiwgMjU3NTQsIDI1NiwgMjg0NTEsIAotICAgIDI1NiwgMjkwMDEsIDI1NiwgMjk4MzMsIDI1NiwgMzExNzgsIDI1NiwgMzIyNDQsIDI1NiwgMzI4NzksIDI1NiwgMzY2NDYsIAotICAgIDI1NiwgMzQwMzAsIDI1NiwgMzY4OTksIDI1NiwgMzc3MDYsIDI1NiwgMjEwMTUsIDI1NiwgMjExNTUsIDI1NiwgMjE2OTMsIAotICAgIDI1NiwgMjg4NzIsIDI1NiwgMzUwMTAsIDI1NiwgMzU0OTgsIDI1NiwgMjQyNjUsIDI1NiwgMjQ1NjUsIDI1NiwgMjU0NjcsIAotICAgIDI1NiwgMjc1NjYsIDI1NiwgMzE4MDYsIDI1NiwgMjk1NTcsIDI1NiwgMjAxOTYsIDI1NiwgMjIyNjUsIDI1NiwgMjM1MjcsIAotICAgIDI1NiwgMjM5OTQsIDI1NiwgMjQ2MDQsIDI1NiwgMjk2MTgsIDI1NiwgMjk4MDEsIDI1NiwgMzI2NjYsIDI1NiwgMzI4MzgsIAotICAgIDI1NiwgMzc0MjgsIDI1NiwgMzg2NDYsIDI1NiwgMzg3MjgsIDI1NiwgMzg5MzYsIDI1NiwgMjAzNjMsIDI1NiwgMzExNTAsIAotICAgIDI1NiwgMzczMDAsIDI1NiwgMzg1ODQsIDI1NiwgMjQ4MDEsIDI1NiwgMjAxMDIsIDI1NiwgMjA2OTgsIDI1NiwgMjM1MzQsIAotICAgIDI1NiwgMjM2MTUsIDI1NiwgMjYwMDksIDI1NiwgMjcxMzgsIDI1NiwgMjkxMzQsIDI1NiwgMzAyNzQsIDI1NiwgMzQwNDQsIAotICAgIDI1NiwgMzY5ODgsIDI1NiwgNDA4NDUsIDI1NiwgMjYyNDgsIDI1NiwgMzg0NDYsIDI1NiwgMjExMjksIDI1NiwgMjY0OTEsIAotICAgIDI1NiwgMjY2MTEsIDI1NiwgMjc5NjksIDI1NiwgMjgzMTYsIDI1NiwgMjk3MDUsIDI1NiwgMzAwNDEsIDI1NiwgMzA4MjcsIAotICAgIDI1NiwgMzIwMTYsIDI1NiwgMzkwMDYsIDI1NiwgMjA4NDUsIDI1NiwgMjUxMzQsIDI1NiwgMzg1MjAsIDI1NiwgMjA1MjMsIAotICAgIDI1NiwgMjM4MzMsIDI1NiwgMjgxMzgsIDI1NiwgMzY2NTAsIDI1NiwgMjQ0NTksIDI1NiwgMjQ5MDAsIDI1NiwgMjY2NDcsIAotICAgIDI1NiwgMjk1NzUsIDI1NiwgMzg1MzQsIDI1NiwgMjEwMzMsIDI1NiwgMjE1MTksIDI1NiwgMjM2NTMsIDI1NiwgMjYxMzEsIAotICAgIDI1NiwgMjY0NDYsIDI1NiwgMjY3OTIsIDI1NiwgMjc4NzcsIDI1NiwgMjk3MDIsIDI1NiwgMzAxNzgsIDI1NiwgMzI2MzMsIAotICAgIDI1NiwgMzUwMjMsIDI1NiwgMzUwNDEsIDI1NiwgMzczMjQsIDI1NiwgMzg2MjYsIDI1NiwgMjEzMTEsIDI1NiwgMjgzNDYsIAotICAgIDI1NiwgMjE1MzMsIDI1NiwgMjkxMzYsIDI1NiwgMjk4NDgsIDI1NiwgMzQyOTgsIDI1NiwgMzg1NjMsIDI1NiwgNDAwMjMsIAotICAgIDI1NiwgNDA2MDcsIDI1NiwgMjY1MTksIDI1NiwgMjgxMDcsIDI1NiwgMzMyNTYsIDI1NiwgMzE0MzUsIDI1NiwgMzE1MjAsIAotICAgIDI1NiwgMzE4OTAsIDI1NiwgMjkzNzYsIDI1NiwgMjg4MjUsIDI1NiwgMzU2NzIsIDI1NiwgMjAxNjAsIDI1NiwgMzM1OTAsIAotICAgIDI1NiwgMjEwNTAsIDI1NiwgMjA5OTksIDI1NiwgMjQyMzAsIDI1NiwgMjUyOTksIDI1NiwgMzE5NTgsIDI1NiwgMjM0MjksIAotICAgIDI1NiwgMjc5MzQsIDI1NiwgMjYyOTIsIDI1NiwgMzY2NjcsIDI1NiwgMzQ4OTIsIDI1NiwgMzg0NzcsIDI1NiwgMzUyMTEsIAotICAgIDI1NiwgMjQyNzUsIDI1NiwgMjA4MDAsIDI1NiwgMjE5NTIsIDI1NiwgMjI2MTgsIDI1NiwgMjYyMjgsIDI1NiwgMjA5NTgsIAotICAgIDI1NiwgMjk0ODIsIDI1NiwgMzA0MTAsIDI1NiwgMzEwMzYsIDI1NiwgMzEwNzAsIDI1NiwgMzEwNzcsIDI1NiwgMzExMTksIAotICAgIDI1NiwgMzg3NDIsIDI1NiwgMzE5MzQsIDI1NiwgMzI3MDEsIDI1NiwgMzQzMjIsIDI1NiwgMzU1NzYsIDI1NiwgMzY5MjAsIAotICAgIDI1NiwgMzcxMTcsIDI1NiwgMzkxNTEsIDI1NiwgMzkxNjQsIDI1NiwgMzkyMDgsIDI1NiwgNDAzNzIsIDI1NiwgMjAzOTgsIAotICAgIDI1NiwgMjA3MTEsIDI1NiwgMjA4MTMsIDI1NiwgMjExOTMsIDI1NiwgMjEyMjAsIDI1NiwgMjEzMjksIDI1NiwgMjE5MTcsIAotICAgIDI1NiwgMjIwMjIsIDI1NiwgMjIxMjAsIDI1NiwgMjI1OTIsIDI1NiwgMjI2OTYsIDI1NiwgMjM2NTIsIDI1NiwgMjM2NjIsIAotICAgIDI1NiwgMjQ3MjQsIDI1NiwgMjQ5MzYsIDI1NiwgMjQ5NzQsIDI1NiwgMjUwNzQsIDI1NiwgMjU5MzUsIDI1NiwgMjYwODIsIAotICAgIDI1NiwgMjYyNTcsIDI1NiwgMjY3NTcsIDI1NiwgMjgwMjMsIDI1NiwgMjgxODYsIDI1NiwgMjg0NTAsIDI1NiwgMjkwMzgsIAotICAgIDI1NiwgMjkyMjcsIDI1NiwgMjk3MzAsIDI1NiwgMzA4NjUsIDI1NiwgMzEwMzgsIDI1NiwgMzEwNDksIDI1NiwgMzEwNDgsIAotICAgIDI1NiwgMzEwNTYsIDI1NiwgMzEwNjIsIDI1NiwgMzEwNjksIDI1NiwgMzExMTcsIDI1NiwgMzExMTgsIDI1NiwgMzEyOTYsIAotICAgIDI1NiwgMzEzNjEsIDI1NiwgMzE2ODAsIDI1NiwgMzIyNDQsIDI1NiwgMzIyNjUsIDI1NiwgMzIzMjEsIDI1NiwgMzI2MjYsIAotICAgIDI1NiwgMzI3NzMsIDI1NiwgMzMyNjEsIDI1NiwgMzM0MDEsIDI1NiwgMzM0MDEsIDI1NiwgMzM4NzksIDI1NiwgMzUwODgsIAotICAgIDI1NiwgMzUyMjIsIDI1NiwgMzU1ODUsIDI1NiwgMzU2NDEsIDI1NiwgMzYwNTEsIDI1NiwgMzYxMDQsIDI1NiwgMzY3OTAsIAotICAgIDI1NiwgMzY5MjAsIDI1NiwgMzg2MjcsIDI1NiwgMzg5MTEsIDI1NiwgMzg5NzEsIDI1NiwgMjQ2OTMsIDI1NiwgMTQ4MjA2LCAKLSAgICAyNTYsIDMzMzA0LCAyNTYsIDIwMDA2LCAyNTYsIDIwOTE3LCAyNTYsIDIwODQwLCAyNTYsIDIwMzUyLCAyNTYsIDIwODA1LCAKLSAgICAyNTYsIDIwODY0LCAyNTYsIDIxMTkxLCAyNTYsIDIxMjQyLCAyNTYsIDIxOTE3LCAyNTYsIDIxODQ1LCAyNTYsIDIxOTEzLCAKLSAgICAyNTYsIDIxOTg2LCAyNTYsIDIyNjE4LCAyNTYsIDIyNzA3LCAyNTYsIDIyODUyLCAyNTYsIDIyODY4LCAyNTYsIDIzMTM4LCAKLSAgICAyNTYsIDIzMzM2LCAyNTYsIDI0Mjc0LCAyNTYsIDI0MjgxLCAyNTYsIDI0NDI1LCAyNTYsIDI0NDkzLCAyNTYsIDI0NzkyLCAKLSAgICAyNTYsIDI0OTEwLCAyNTYsIDI0ODQwLCAyNTYsIDI0OTc0LCAyNTYsIDI0OTI4LCAyNTYsIDI1MDc0LCAyNTYsIDI1MTQwLCAKLSAgICAyNTYsIDI1NTQwLCAyNTYsIDI1NjI4LCAyNTYsIDI1NjgyLCAyNTYsIDI1OTQyLCAyNTYsIDI2MjI4LCAyNTYsIDI2MzkxLCAKLSAgICAyNTYsIDI2Mzk1LCAyNTYsIDI2NDU0LCAyNTYsIDI3NTEzLCAyNTYsIDI3NTc4LCAyNTYsIDI3OTY5LCAyNTYsIDI4Mzc5LCAKLSAgICAyNTYsIDI4MzYzLCAyNTYsIDI4NDUwLCAyNTYsIDI4NzAyLCAyNTYsIDI5MDM4LCAyNTYsIDMwNjMxLCAyNTYsIDI5MjM3LCAKLSAgICAyNTYsIDI5MzU5LCAyNTYsIDI5NDgyLCAyNTYsIDI5ODA5LCAyNTYsIDI5OTU4LCAyNTYsIDMwMDExLCAyNTYsIDMwMjM3LCAKLSAgICAyNTYsIDMwMjM5LCAyNTYsIDMwNDEwLCAyNTYsIDMwNDI3LCAyNTYsIDMwNDUyLCAyNTYsIDMwNTM4LCAyNTYsIDMwNTI4LCAKLSAgICAyNTYsIDMwOTI0LCAyNTYsIDMxNDA5LCAyNTYsIDMxNjgwLCAyNTYsIDMxODY3LCAyNTYsIDMyMDkxLCAyNTYsIDMyMjQ0LCAKLSAgICAyNTYsIDMyNTc0LCAyNTYsIDMyNzczLCAyNTYsIDMzNjE4LCAyNTYsIDMzNzc1LCAyNTYsIDM0NjgxLCAyNTYsIDM1MTM3LCAKLSAgICAyNTYsIDM1MjA2LCAyNTYsIDM1MjIyLCAyNTYsIDM1NTE5LCAyNTYsIDM1NTc2LCAyNTYsIDM1NTMxLCAyNTYsIDM1NTg1LCAKLSAgICAyNTYsIDM1NTgyLCAyNTYsIDM1NTY1LCAyNTYsIDM1NjQxLCAyNTYsIDM1NzIyLCAyNTYsIDM2MTA0LCAyNTYsIDM2NjY0LCAKLSAgICAyNTYsIDM2OTc4LCAyNTYsIDM3MjczLCAyNTYsIDM3NDk0LCAyNTYsIDM4NTI0LCAyNTYsIDM4NjI3LCAyNTYsIDM4NzQyLCAKLSAgICAyNTYsIDM4ODc1LCAyNTYsIDM4OTExLCAyNTYsIDM4OTIzLCAyNTYsIDM4OTcxLCAyNTYsIDM5Njk4LCAyNTYsIDQwODYwLCAKLSAgICAyNTYsIDE0MTM4NiwgMjU2LCAxNDEzODAsIDI1NiwgMTQ0MzQxLCAyNTYsIDE1MjYxLCAyNTYsIDE2NDA4LCAyNTYsIAotICAgIDE2NDQxLCAyNTYsIDE1MjEzNywgMjU2LCAxNTQ4MzIsIDI1NiwgMTYzNTM5LCAyNTYsIDQwNzcxLCAyNTYsIDQwODQ2LCAKLSAgICA1MTQsIDEwMiwgMTAyLCA1MTQsIDEwMiwgMTA1LCA1MTQsIDEwMiwgMTA4LCA3NzAsIDEwMiwgMTAyLCAxMDUsIDc3MCwgCi0gICAgMTAyLCAxMDIsIDEwOCwgNTE0LCAzODMsIDExNiwgNTE0LCAxMTUsIDExNiwgNTE0LCAxMzk2LCAxMzk4LCA1MTQsIDEzOTYsIAotICAgIDEzODEsIDUxNCwgMTM5NiwgMTM4NywgNTE0LCAxNDA2LCAxMzk4LCA1MTQsIDEzOTYsIDEzODksIDUxMiwgMTQ5NywgMTQ2MCwgCi0gICAgNTEyLCAxNTIyLCAxNDYzLCAyNjIsIDE1MDYsIDI2MiwgMTQ4OCwgMjYyLCAxNDkxLCAyNjIsIDE0OTIsIDI2MiwgMTQ5OSwgCi0gICAgMjYyLCAxNTAwLCAyNjIsIDE1MDEsIDI2MiwgMTUxMiwgMjYyLCAxNTE0LCAyNjIsIDQzLCA1MTIsIDE1MTMsIDE0NzMsIAotICAgIDUxMiwgMTUxMywgMTQ3NCwgNTEyLCA2NDMyOSwgMTQ3MywgNTEyLCA2NDMyOSwgMTQ3NCwgNTEyLCAxNDg4LCAxNDYzLCAKLSAgICA1MTIsIDE0ODgsIDE0NjQsIDUxMiwgMTQ4OCwgMTQ2OCwgNTEyLCAxNDg5LCAxNDY4LCA1MTIsIDE0OTAsIDE0NjgsIDUxMiwgCi0gICAgMTQ5MSwgMTQ2OCwgNTEyLCAxNDkyLCAxNDY4LCA1MTIsIDE0OTMsIDE0NjgsIDUxMiwgMTQ5NCwgMTQ2OCwgNTEyLCAxNDk2LCAKLSAgICAxNDY4LCA1MTIsIDE0OTcsIDE0NjgsIDUxMiwgMTQ5OCwgMTQ2OCwgNTEyLCAxNDk5LCAxNDY4LCA1MTIsIDE1MDAsIDE0NjgsIAotICAgIDUxMiwgMTUwMiwgMTQ2OCwgNTEyLCAxNTA0LCAxNDY4LCA1MTIsIDE1MDUsIDE0NjgsIDUxMiwgMTUwNywgMTQ2OCwgNTEyLCAKLSAgICAxNTA4LCAxNDY4LCA1MTIsIDE1MTAsIDE0NjgsIDUxMiwgMTUxMSwgMTQ2OCwgNTEyLCAxNTEyLCAxNDY4LCA1MTIsIDE1MTMsIAotICAgIDE0NjgsIDUxMiwgMTUxNCwgMTQ2OCwgNTEyLCAxNDkzLCAxNDY1LCA1MTIsIDE0ODksIDE0NzEsIDUxMiwgMTQ5OSwgMTQ3MSwgCi0gICAgNTEyLCAxNTA4LCAxNDcxLCA1MTQsIDE0ODgsIDE1MDAsIDI2NywgMTY0OSwgMjY4LCAxNjQ5LCAyNjcsIDE2NTksIDI2OCwgCi0gICAgMTY1OSwgMjY5LCAxNjU5LCAyNzAsIDE2NTksIDI2NywgMTY2MiwgMjY4LCAxNjYyLCAyNjksIDE2NjIsIDI3MCwgMTY2MiwgCi0gICAgMjY3LCAxNjY0LCAyNjgsIDE2NjQsIDI2OSwgMTY2NCwgMjcwLCAxNjY0LCAyNjcsIDE2NTgsIDI2OCwgMTY1OCwgMjY5LCAKLSAgICAxNjU4LCAyNzAsIDE2NTgsIDI2NywgMTY2MywgMjY4LCAxNjYzLCAyNjksIDE2NjMsIDI3MCwgMTY2MywgMjY3LCAxNjU3LCAKLSAgICAyNjgsIDE2NTcsIDI2OSwgMTY1NywgMjcwLCAxNjU3LCAyNjcsIDE3MDAsIDI2OCwgMTcwMCwgMjY5LCAxNzAwLCAyNzAsIAotICAgIDE3MDAsIDI2NywgMTcwMiwgMjY4LCAxNzAyLCAyNjksIDE3MDIsIDI3MCwgMTcwMiwgMjY3LCAxNjY4LCAyNjgsIDE2NjgsIAotICAgIDI2OSwgMTY2OCwgMjcwLCAxNjY4LCAyNjcsIDE2NjcsIDI2OCwgMTY2NywgMjY5LCAxNjY3LCAyNzAsIDE2NjcsIDI2NywgCi0gICAgMTY3MCwgMjY4LCAxNjcwLCAyNjksIDE2NzAsIDI3MCwgMTY3MCwgMjY3LCAxNjcxLCAyNjgsIDE2NzEsIDI2OSwgMTY3MSwgCi0gICAgMjcwLCAxNjcxLCAyNjcsIDE2NzcsIDI2OCwgMTY3NywgMjY3LCAxNjc2LCAyNjgsIDE2NzYsIDI2NywgMTY3OCwgMjY4LCAKLSAgICAxNjc4LCAyNjcsIDE2NzIsIDI2OCwgMTY3MiwgMjY3LCAxNjg4LCAyNjgsIDE2ODgsIDI2NywgMTY4MSwgMjY4LCAxNjgxLCAKLSAgICAyNjcsIDE3MDUsIDI2OCwgMTcwNSwgMjY5LCAxNzA1LCAyNzAsIDE3MDUsIDI2NywgMTcxMSwgMjY4LCAxNzExLCAyNjksIAotICAgIDE3MTEsIDI3MCwgMTcxMSwgMjY3LCAxNzE1LCAyNjgsIDE3MTUsIDI2OSwgMTcxNSwgMjcwLCAxNzE1LCAyNjcsIDE3MTMsIAotICAgIDI2OCwgMTcxMywgMjY5LCAxNzEzLCAyNzAsIDE3MTMsIDI2NywgMTcyMiwgMjY4LCAxNzIyLCAyNjcsIDE3MjMsIDI2OCwgCi0gICAgMTcyMywgMjY5LCAxNzIzLCAyNzAsIDE3MjMsIDI2NywgMTcyOCwgMjY4LCAxNzI4LCAyNjcsIDE3MjksIDI2OCwgMTcyOSwgCi0gICAgMjY5LCAxNzI5LCAyNzAsIDE3MjksIDI2NywgMTcyNiwgMjY4LCAxNzI2LCAyNjksIDE3MjYsIDI3MCwgMTcyNiwgMjY3LCAKLSAgICAxNzQ2LCAyNjgsIDE3NDYsIDI2NywgMTc0NywgMjY4LCAxNzQ3LCAyNjcsIDE3MDksIDI2OCwgMTcwOSwgMjY5LCAxNzA5LCAKLSAgICAyNzAsIDE3MDksIDI2NywgMTczNSwgMjY4LCAxNzM1LCAyNjcsIDE3MzQsIDI2OCwgMTczNCwgMjY3LCAxNzM2LCAyNjgsIAotICAgIDE3MzYsIDI2NywgMTY1NSwgMjY3LCAxNzM5LCAyNjgsIDE3MzksIDI2NywgMTczMywgMjY4LCAxNzMzLCAyNjcsIDE3MzcsIAotICAgIDI2OCwgMTczNywgMjY3LCAxNzQ0LCAyNjgsIDE3NDQsIDI2OSwgMTc0NCwgMjcwLCAxNzQ0LCAyNjksIDE2MDksIDI3MCwgCi0gICAgMTYwOSwgNTIzLCAxNTc0LCAxNTc1LCA1MjQsIDE1NzQsIDE1NzUsIDUyMywgMTU3NCwgMTc0OSwgNTI0LCAxNTc0LCAxNzQ5LCAKLSAgICA1MjMsIDE1NzQsIDE2MDgsIDUyNCwgMTU3NCwgMTYwOCwgNTIzLCAxNTc0LCAxNzM1LCA1MjQsIDE1NzQsIDE3MzUsIDUyMywgCi0gICAgMTU3NCwgMTczNCwgNTI0LCAxNTc0LCAxNzM0LCA1MjMsIDE1NzQsIDE3MzYsIDUyNCwgMTU3NCwgMTczNiwgNTIzLCAxNTc0LCAKLSAgICAxNzQ0LCA1MjQsIDE1NzQsIDE3NDQsIDUyNSwgMTU3NCwgMTc0NCwgNTIzLCAxNTc0LCAxNjA5LCA1MjQsIDE1NzQsIDE2MDksIAotICAgIDUyNSwgMTU3NCwgMTYwOSwgMjY3LCAxNzQwLCAyNjgsIDE3NDAsIDI2OSwgMTc0MCwgMjcwLCAxNzQwLCA1MjMsIDE1NzQsIAotICAgIDE1ODAsIDUyMywgMTU3NCwgMTU4MSwgNTIzLCAxNTc0LCAxNjA1LCA1MjMsIDE1NzQsIDE2MDksIDUyMywgMTU3NCwgMTYxMCwgCi0gICAgNTIzLCAxNTc2LCAxNTgwLCA1MjMsIDE1NzYsIDE1ODEsIDUyMywgMTU3NiwgMTU4MiwgNTIzLCAxNTc2LCAxNjA1LCA1MjMsIAotICAgIDE1NzYsIDE2MDksIDUyMywgMTU3NiwgMTYxMCwgNTIzLCAxNTc4LCAxNTgwLCA1MjMsIDE1NzgsIDE1ODEsIDUyMywgMTU3OCwgCi0gICAgMTU4MiwgNTIzLCAxNTc4LCAxNjA1LCA1MjMsIDE1NzgsIDE2MDksIDUyMywgMTU3OCwgMTYxMCwgNTIzLCAxNTc5LCAxNTgwLCAKLSAgICA1MjMsIDE1NzksIDE2MDUsIDUyMywgMTU3OSwgMTYwOSwgNTIzLCAxNTc5LCAxNjEwLCA1MjMsIDE1ODAsIDE1ODEsIDUyMywgCi0gICAgMTU4MCwgMTYwNSwgNTIzLCAxNTgxLCAxNTgwLCA1MjMsIDE1ODEsIDE2MDUsIDUyMywgMTU4MiwgMTU4MCwgNTIzLCAxNTgyLCAKLSAgICAxNTgxLCA1MjMsIDE1ODIsIDE2MDUsIDUyMywgMTU4NywgMTU4MCwgNTIzLCAxNTg3LCAxNTgxLCA1MjMsIDE1ODcsIDE1ODIsIAotICAgIDUyMywgMTU4NywgMTYwNSwgNTIzLCAxNTg5LCAxNTgxLCA1MjMsIDE1ODksIDE2MDUsIDUyMywgMTU5MCwgMTU4MCwgNTIzLCAKLSAgICAxNTkwLCAxNTgxLCA1MjMsIDE1OTAsIDE1ODIsIDUyMywgMTU5MCwgMTYwNSwgNTIzLCAxNTkxLCAxNTgxLCA1MjMsIDE1OTEsIAotICAgIDE2MDUsIDUyMywgMTU5MiwgMTYwNSwgNTIzLCAxNTkzLCAxNTgwLCA1MjMsIDE1OTMsIDE2MDUsIDUyMywgMTU5NCwgMTU4MCwgCi0gICAgNTIzLCAxNTk0LCAxNjA1LCA1MjMsIDE2MDEsIDE1ODAsIDUyMywgMTYwMSwgMTU4MSwgNTIzLCAxNjAxLCAxNTgyLCA1MjMsIAotICAgIDE2MDEsIDE2MDUsIDUyMywgMTYwMSwgMTYwOSwgNTIzLCAxNjAxLCAxNjEwLCA1MjMsIDE2MDIsIDE1ODEsIDUyMywgMTYwMiwgCi0gICAgMTYwNSwgNTIzLCAxNjAyLCAxNjA5LCA1MjMsIDE2MDIsIDE2MTAsIDUyMywgMTYwMywgMTU3NSwgNTIzLCAxNjAzLCAxNTgwLCAKLSAgICA1MjMsIDE2MDMsIDE1ODEsIDUyMywgMTYwMywgMTU4MiwgNTIzLCAxNjAzLCAxNjA0LCA1MjMsIDE2MDMsIDE2MDUsIDUyMywgCi0gICAgMTYwMywgMTYwOSwgNTIzLCAxNjAzLCAxNjEwLCA1MjMsIDE2MDQsIDE1ODAsIDUyMywgMTYwNCwgMTU4MSwgNTIzLCAxNjA0LCAKLSAgICAxNTgyLCA1MjMsIDE2MDQsIDE2MDUsIDUyMywgMTYwNCwgMTYwOSwgNTIzLCAxNjA0LCAxNjEwLCA1MjMsIDE2MDUsIDE1ODAsIAotICAgIDUyMywgMTYwNSwgMTU4MSwgNTIzLCAxNjA1LCAxNTgyLCA1MjMsIDE2MDUsIDE2MDUsIDUyMywgMTYwNSwgMTYwOSwgNTIzLCAKLSAgICAxNjA1LCAxNjEwLCA1MjMsIDE2MDYsIDE1ODAsIDUyMywgMTYwNiwgMTU4MSwgNTIzLCAxNjA2LCAxNTgyLCA1MjMsIDE2MDYsIAotICAgIDE2MDUsIDUyMywgMTYwNiwgMTYwOSwgNTIzLCAxNjA2LCAxNjEwLCA1MjMsIDE2MDcsIDE1ODAsIDUyMywgMTYwNywgMTYwNSwgCi0gICAgNTIzLCAxNjA3LCAxNjA5LCA1MjMsIDE2MDcsIDE2MTAsIDUyMywgMTYxMCwgMTU4MCwgNTIzLCAxNjEwLCAxNTgxLCA1MjMsIAotICAgIDE2MTAsIDE1ODIsIDUyMywgMTYxMCwgMTYwNSwgNTIzLCAxNjEwLCAxNjA5LCA1MjMsIDE2MTAsIDE2MTAsIDUyMywgMTU4NCwgCi0gICAgMTY0OCwgNTIzLCAxNTg1LCAxNjQ4LCA1MjMsIDE2MDksIDE2NDgsIDc3OSwgMzIsIDE2MTIsIDE2MTcsIDc3OSwgMzIsIAotICAgIDE2MTMsIDE2MTcsIDc3OSwgMzIsIDE2MTQsIDE2MTcsIDc3OSwgMzIsIDE2MTUsIDE2MTcsIDc3OSwgMzIsIDE2MTYsIAotICAgIDE2MTcsIDc3OSwgMzIsIDE2MTcsIDE2NDgsIDUyNCwgMTU3NCwgMTU4NSwgNTI0LCAxNTc0LCAxNTg2LCA1MjQsIDE1NzQsIAotICAgIDE2MDUsIDUyNCwgMTU3NCwgMTYwNiwgNTI0LCAxNTc0LCAxNjA5LCA1MjQsIDE1NzQsIDE2MTAsIDUyNCwgMTU3NiwgMTU4NSwgCi0gICAgNTI0LCAxNTc2LCAxNTg2LCA1MjQsIDE1NzYsIDE2MDUsIDUyNCwgMTU3NiwgMTYwNiwgNTI0LCAxNTc2LCAxNjA5LCA1MjQsIAotICAgIDE1NzYsIDE2MTAsIDUyNCwgMTU3OCwgMTU4NSwgNTI0LCAxNTc4LCAxNTg2LCA1MjQsIDE1NzgsIDE2MDUsIDUyNCwgMTU3OCwgCi0gICAgMTYwNiwgNTI0LCAxNTc4LCAxNjA5LCA1MjQsIDE1NzgsIDE2MTAsIDUyNCwgMTU3OSwgMTU4NSwgNTI0LCAxNTc5LCAxNTg2LCAKLSAgICA1MjQsIDE1NzksIDE2MDUsIDUyNCwgMTU3OSwgMTYwNiwgNTI0LCAxNTc5LCAxNjA5LCA1MjQsIDE1NzksIDE2MTAsIDUyNCwgCi0gICAgMTYwMSwgMTYwOSwgNTI0LCAxNjAxLCAxNjEwLCA1MjQsIDE2MDIsIDE2MDksIDUyNCwgMTYwMiwgMTYxMCwgNTI0LCAxNjAzLCAKLSAgICAxNTc1LCA1MjQsIDE2MDMsIDE2MDQsIDUyNCwgMTYwMywgMTYwNSwgNTI0LCAxNjAzLCAxNjA5LCA1MjQsIDE2MDMsIDE2MTAsIAotICAgIDUyNCwgMTYwNCwgMTYwNSwgNTI0LCAxNjA0LCAxNjA5LCA1MjQsIDE2MDQsIDE2MTAsIDUyNCwgMTYwNSwgMTU3NSwgNTI0LCAKLSAgICAxNjA1LCAxNjA1LCA1MjQsIDE2MDYsIDE1ODUsIDUyNCwgMTYwNiwgMTU4NiwgNTI0LCAxNjA2LCAxNjA1LCA1MjQsIDE2MDYsIAotICAgIDE2MDYsIDUyNCwgMTYwNiwgMTYwOSwgNTI0LCAxNjA2LCAxNjEwLCA1MjQsIDE2MDksIDE2NDgsIDUyNCwgMTYxMCwgMTU4NSwgCi0gICAgNTI0LCAxNjEwLCAxNTg2LCA1MjQsIDE2MTAsIDE2MDUsIDUyNCwgMTYxMCwgMTYwNiwgNTI0LCAxNjEwLCAxNjA5LCA1MjQsIAotICAgIDE2MTAsIDE2MTAsIDUyNSwgMTU3NCwgMTU4MCwgNTI1LCAxNTc0LCAxNTgxLCA1MjUsIDE1NzQsIDE1ODIsIDUyNSwgMTU3NCwgCi0gICAgMTYwNSwgNTI1LCAxNTc0LCAxNjA3LCA1MjUsIDE1NzYsIDE1ODAsIDUyNSwgMTU3NiwgMTU4MSwgNTI1LCAxNTc2LCAxNTgyLCAKLSAgICA1MjUsIDE1NzYsIDE2MDUsIDUyNSwgMTU3NiwgMTYwNywgNTI1LCAxNTc4LCAxNTgwLCA1MjUsIDE1NzgsIDE1ODEsIDUyNSwgCi0gICAgMTU3OCwgMTU4MiwgNTI1LCAxNTc4LCAxNjA1LCA1MjUsIDE1NzgsIDE2MDcsIDUyNSwgMTU3OSwgMTYwNSwgNTI1LCAxNTgwLCAKLSAgICAxNTgxLCA1MjUsIDE1ODAsIDE2MDUsIDUyNSwgMTU4MSwgMTU4MCwgNTI1LCAxNTgxLCAxNjA1LCA1MjUsIDE1ODIsIDE1ODAsIAotICAgIDUyNSwgMTU4MiwgMTYwNSwgNTI1LCAxNTg3LCAxNTgwLCA1MjUsIDE1ODcsIDE1ODEsIDUyNSwgMTU4NywgMTU4MiwgNTI1LCAKLSAgICAxNTg3LCAxNjA1LCA1MjUsIDE1ODksIDE1ODEsIDUyNSwgMTU4OSwgMTU4MiwgNTI1LCAxNTg5LCAxNjA1LCA1MjUsIDE1OTAsIAotICAgIDE1ODAsIDUyNSwgMTU5MCwgMTU4MSwgNTI1LCAxNTkwLCAxNTgyLCA1MjUsIDE1OTAsIDE2MDUsIDUyNSwgMTU5MSwgMTU4MSwgCi0gICAgNTI1LCAxNTkyLCAxNjA1LCA1MjUsIDE1OTMsIDE1ODAsIDUyNSwgMTU5MywgMTYwNSwgNTI1LCAxNTk0LCAxNTgwLCA1MjUsIAotICAgIDE1OTQsIDE2MDUsIDUyNSwgMTYwMSwgMTU4MCwgNTI1LCAxNjAxLCAxNTgxLCA1MjUsIDE2MDEsIDE1ODIsIDUyNSwgMTYwMSwgCi0gICAgMTYwNSwgNTI1LCAxNjAyLCAxNTgxLCA1MjUsIDE2MDIsIDE2MDUsIDUyNSwgMTYwMywgMTU4MCwgNTI1LCAxNjAzLCAxNTgxLCAKLSAgICA1MjUsIDE2MDMsIDE1ODIsIDUyNSwgMTYwMywgMTYwNCwgNTI1LCAxNjAzLCAxNjA1LCA1MjUsIDE2MDQsIDE1ODAsIDUyNSwgCi0gICAgMTYwNCwgMTU4MSwgNTI1LCAxNjA0LCAxNTgyLCA1MjUsIDE2MDQsIDE2MDUsIDUyNSwgMTYwNCwgMTYwNywgNTI1LCAxNjA1LCAKLSAgICAxNTgwLCA1MjUsIDE2MDUsIDE1ODEsIDUyNSwgMTYwNSwgMTU4MiwgNTI1LCAxNjA1LCAxNjA1LCA1MjUsIDE2MDYsIDE1ODAsIAotICAgIDUyNSwgMTYwNiwgMTU4MSwgNTI1LCAxNjA2LCAxNTgyLCA1MjUsIDE2MDYsIDE2MDUsIDUyNSwgMTYwNiwgMTYwNywgNTI1LCAKLSAgICAxNjA3LCAxNTgwLCA1MjUsIDE2MDcsIDE2MDUsIDUyNSwgMTYwNywgMTY0OCwgNTI1LCAxNjEwLCAxNTgwLCA1MjUsIDE2MTAsIAotICAgIDE1ODEsIDUyNSwgMTYxMCwgMTU4MiwgNTI1LCAxNjEwLCAxNjA1LCA1MjUsIDE2MTAsIDE2MDcsIDUyNiwgMTU3NCwgMTYwNSwgCi0gICAgNTI2LCAxNTc0LCAxNjA3LCA1MjYsIDE1NzYsIDE2MDUsIDUyNiwgMTU3NiwgMTYwNywgNTI2LCAxNTc4LCAxNjA1LCA1MjYsIAotICAgIDE1NzgsIDE2MDcsIDUyNiwgMTU3OSwgMTYwNSwgNTI2LCAxNTc5LCAxNjA3LCA1MjYsIDE1ODcsIDE2MDUsIDUyNiwgMTU4NywgCi0gICAgMTYwNywgNTI2LCAxNTg4LCAxNjA1LCA1MjYsIDE1ODgsIDE2MDcsIDUyNiwgMTYwMywgMTYwNCwgNTI2LCAxNjAzLCAxNjA1LCAKLSAgICA1MjYsIDE2MDQsIDE2MDUsIDUyNiwgMTYwNiwgMTYwNSwgNTI2LCAxNjA2LCAxNjA3LCA1MjYsIDE2MTAsIDE2MDUsIDUyNiwgCi0gICAgMTYxMCwgMTYwNywgNzgyLCAxNjAwLCAxNjE0LCAxNjE3LCA3ODIsIDE2MDAsIDE2MTUsIDE2MTcsIDc4MiwgMTYwMCwgCi0gICAgMTYxNiwgMTYxNywgNTIzLCAxNTkxLCAxNjA5LCA1MjMsIDE1OTEsIDE2MTAsIDUyMywgMTU5MywgMTYwOSwgNTIzLCAxNTkzLCAKLSAgICAxNjEwLCA1MjMsIDE1OTQsIDE2MDksIDUyMywgMTU5NCwgMTYxMCwgNTIzLCAxNTg3LCAxNjA5LCA1MjMsIDE1ODcsIDE2MTAsIAotICAgIDUyMywgMTU4OCwgMTYwOSwgNTIzLCAxNTg4LCAxNjEwLCA1MjMsIDE1ODEsIDE2MDksIDUyMywgMTU4MSwgMTYxMCwgNTIzLCAKLSAgICAxNTgwLCAxNjA5LCA1MjMsIDE1ODAsIDE2MTAsIDUyMywgMTU4MiwgMTYwOSwgNTIzLCAxNTgyLCAxNjEwLCA1MjMsIDE1ODksIAotICAgIDE2MDksIDUyMywgMTU4OSwgMTYxMCwgNTIzLCAxNTkwLCAxNjA5LCA1MjMsIDE1OTAsIDE2MTAsIDUyMywgMTU4OCwgMTU4MCwgCi0gICAgNTIzLCAxNTg4LCAxNTgxLCA1MjMsIDE1ODgsIDE1ODIsIDUyMywgMTU4OCwgMTYwNSwgNTIzLCAxNTg4LCAxNTg1LCA1MjMsIAotICAgIDE1ODcsIDE1ODUsIDUyMywgMTU4OSwgMTU4NSwgNTIzLCAxNTkwLCAxNTg1LCA1MjQsIDE1OTEsIDE2MDksIDUyNCwgMTU5MSwgCi0gICAgMTYxMCwgNTI0LCAxNTkzLCAxNjA5LCA1MjQsIDE1OTMsIDE2MTAsIDUyNCwgMTU5NCwgMTYwOSwgNTI0LCAxNTk0LCAxNjEwLCAKLSAgICA1MjQsIDE1ODcsIDE2MDksIDUyNCwgMTU4NywgMTYxMCwgNTI0LCAxNTg4LCAxNjA5LCA1MjQsIDE1ODgsIDE2MTAsIDUyNCwgCi0gICAgMTU4MSwgMTYwOSwgNTI0LCAxNTgxLCAxNjEwLCA1MjQsIDE1ODAsIDE2MDksIDUyNCwgMTU4MCwgMTYxMCwgNTI0LCAxNTgyLCAKLSAgICAxNjA5LCA1MjQsIDE1ODIsIDE2MTAsIDUyNCwgMTU4OSwgMTYwOSwgNTI0LCAxNTg5LCAxNjEwLCA1MjQsIDE1OTAsIDE2MDksIAotICAgIDUyNCwgMTU5MCwgMTYxMCwgNTI0LCAxNTg4LCAxNTgwLCA1MjQsIDE1ODgsIDE1ODEsIDUyNCwgMTU4OCwgMTU4MiwgNTI0LCAKLSAgICAxNTg4LCAxNjA1LCA1MjQsIDE1ODgsIDE1ODUsIDUyNCwgMTU4NywgMTU4NSwgNTI0LCAxNTg5LCAxNTg1LCA1MjQsIDE1OTAsIAotICAgIDE1ODUsIDUyNSwgMTU4OCwgMTU4MCwgNTI1LCAxNTg4LCAxNTgxLCA1MjUsIDE1ODgsIDE1ODIsIDUyNSwgMTU4OCwgMTYwNSwgCi0gICAgNTI1LCAxNTg3LCAxNjA3LCA1MjUsIDE1ODgsIDE2MDcsIDUyNSwgMTU5MSwgMTYwNSwgNTI2LCAxNTg3LCAxNTgwLCA1MjYsIAotICAgIDE1ODcsIDE1ODEsIDUyNiwgMTU4NywgMTU4MiwgNTI2LCAxNTg4LCAxNTgwLCA1MjYsIDE1ODgsIDE1ODEsIDUyNiwgMTU4OCwgCi0gICAgMTU4MiwgNTI2LCAxNTkxLCAxNjA1LCA1MjYsIDE1OTIsIDE2MDUsIDUyNCwgMTU3NSwgMTYxMSwgNTIzLCAxNTc1LCAxNjExLCAKLSAgICA3ODEsIDE1NzgsIDE1ODAsIDE2MDUsIDc4MCwgMTU3OCwgMTU4MSwgMTU4MCwgNzgxLCAxNTc4LCAxNTgxLCAxNTgwLCA3ODEsIAotICAgIDE1NzgsIDE1ODEsIDE2MDUsIDc4MSwgMTU3OCwgMTU4MiwgMTYwNSwgNzgxLCAxNTc4LCAxNjA1LCAxNTgwLCA3ODEsIAotICAgIDE1NzgsIDE2MDUsIDE1ODEsIDc4MSwgMTU3OCwgMTYwNSwgMTU4MiwgNzgwLCAxNTgwLCAxNjA1LCAxNTgxLCA3ODEsIAotICAgIDE1ODAsIDE2MDUsIDE1ODEsIDc4MCwgMTU4MSwgMTYwNSwgMTYxMCwgNzgwLCAxNTgxLCAxNjA1LCAxNjA5LCA3ODEsIAotICAgIDE1ODcsIDE1ODEsIDE1ODAsIDc4MSwgMTU4NywgMTU4MCwgMTU4MSwgNzgwLCAxNTg3LCAxNTgwLCAxNjA5LCA3ODAsIAotICAgIDE1ODcsIDE2MDUsIDE1ODEsIDc4MSwgMTU4NywgMTYwNSwgMTU4MSwgNzgxLCAxNTg3LCAxNjA1LCAxNTgwLCA3ODAsIAotICAgIDE1ODcsIDE2MDUsIDE2MDUsIDc4MSwgMTU4NywgMTYwNSwgMTYwNSwgNzgwLCAxNTg5LCAxNTgxLCAxNTgxLCA3ODEsIAotICAgIDE1ODksIDE1ODEsIDE1ODEsIDc4MCwgMTU4OSwgMTYwNSwgMTYwNSwgNzgwLCAxNTg4LCAxNTgxLCAxNjA1LCA3ODEsIAotICAgIDE1ODgsIDE1ODEsIDE2MDUsIDc4MCwgMTU4OCwgMTU4MCwgMTYxMCwgNzgwLCAxNTg4LCAxNjA1LCAxNTgyLCA3ODEsIAotICAgIDE1ODgsIDE2MDUsIDE1ODIsIDc4MCwgMTU4OCwgMTYwNSwgMTYwNSwgNzgxLCAxNTg4LCAxNjA1LCAxNjA1LCA3ODAsIAotICAgIDE1OTAsIDE1ODEsIDE2MDksIDc4MCwgMTU5MCwgMTU4MiwgMTYwNSwgNzgxLCAxNTkwLCAxNTgyLCAxNjA1LCA3ODAsIAotICAgIDE1OTEsIDE2MDUsIDE1ODEsIDc4MSwgMTU5MSwgMTYwNSwgMTU4MSwgNzgxLCAxNTkxLCAxNjA1LCAxNjA1LCA3ODAsIAotICAgIDE1OTEsIDE2MDUsIDE2MTAsIDc4MCwgMTU5MywgMTU4MCwgMTYwNSwgNzgwLCAxNTkzLCAxNjA1LCAxNjA1LCA3ODEsIAotICAgIDE1OTMsIDE2MDUsIDE2MDUsIDc4MCwgMTU5MywgMTYwNSwgMTYwOSwgNzgwLCAxNTk0LCAxNjA1LCAxNjA1LCA3ODAsIAotICAgIDE1OTQsIDE2MDUsIDE2MTAsIDc4MCwgMTU5NCwgMTYwNSwgMTYwOSwgNzgwLCAxNjAxLCAxNTgyLCAxNjA1LCA3ODEsIAotICAgIDE2MDEsIDE1ODIsIDE2MDUsIDc4MCwgMTYwMiwgMTYwNSwgMTU4MSwgNzgwLCAxNjAyLCAxNjA1LCAxNjA1LCA3ODAsIAotICAgIDE2MDQsIDE1ODEsIDE2MDUsIDc4MCwgMTYwNCwgMTU4MSwgMTYxMCwgNzgwLCAxNjA0LCAxNTgxLCAxNjA5LCA3ODEsIAotICAgIDE2MDQsIDE1ODAsIDE1ODAsIDc4MCwgMTYwNCwgMTU4MCwgMTU4MCwgNzgwLCAxNjA0LCAxNTgyLCAxNjA1LCA3ODEsIAotICAgIDE2MDQsIDE1ODIsIDE2MDUsIDc4MCwgMTYwNCwgMTYwNSwgMTU4MSwgNzgxLCAxNjA0LCAxNjA1LCAxNTgxLCA3ODEsIAotICAgIDE2MDUsIDE1ODEsIDE1ODAsIDc4MSwgMTYwNSwgMTU4MSwgMTYwNSwgNzgwLCAxNjA1LCAxNTgxLCAxNjEwLCA3ODEsIAotICAgIDE2MDUsIDE1ODAsIDE1ODEsIDc4MSwgMTYwNSwgMTU4MCwgMTYwNSwgNzgxLCAxNjA1LCAxNTgyLCAxNTgwLCA3ODEsIAotICAgIDE2MDUsIDE1ODIsIDE2MDUsIDc4MSwgMTYwNSwgMTU4MCwgMTU4MiwgNzgxLCAxNjA3LCAxNjA1LCAxNTgwLCA3ODEsIAotICAgIDE2MDcsIDE2MDUsIDE2MDUsIDc4MSwgMTYwNiwgMTU4MSwgMTYwNSwgNzgwLCAxNjA2LCAxNTgxLCAxNjA5LCA3ODAsIAotICAgIDE2MDYsIDE1ODAsIDE2MDUsIDc4MSwgMTYwNiwgMTU4MCwgMTYwNSwgNzgwLCAxNjA2LCAxNTgwLCAxNjA5LCA3ODAsIAotICAgIDE2MDYsIDE2MDUsIDE2MTAsIDc4MCwgMTYwNiwgMTYwNSwgMTYwOSwgNzgwLCAxNjEwLCAxNjA1LCAxNjA1LCA3ODEsIAotICAgIDE2MTAsIDE2MDUsIDE2MDUsIDc4MCwgMTU3NiwgMTU4MiwgMTYxMCwgNzgwLCAxNTc4LCAxNTgwLCAxNjEwLCA3ODAsIAotICAgIDE1NzgsIDE1ODAsIDE2MDksIDc4MCwgMTU3OCwgMTU4MiwgMTYxMCwgNzgwLCAxNTc4LCAxNTgyLCAxNjA5LCA3ODAsIAotICAgIDE1NzgsIDE2MDUsIDE2MTAsIDc4MCwgMTU3OCwgMTYwNSwgMTYwOSwgNzgwLCAxNTgwLCAxNjA1LCAxNjEwLCA3ODAsIAotICAgIDE1ODAsIDE1ODEsIDE2MDksIDc4MCwgMTU4MCwgMTYwNSwgMTYwOSwgNzgwLCAxNTg3LCAxNTgyLCAxNjA5LCA3ODAsIAotICAgIDE1ODksIDE1ODEsIDE2MTAsIDc4MCwgMTU4OCwgMTU4MSwgMTYxMCwgNzgwLCAxNTkwLCAxNTgxLCAxNjEwLCA3ODAsIAotICAgIDE2MDQsIDE1ODAsIDE2MTAsIDc4MCwgMTYwNCwgMTYwNSwgMTYxMCwgNzgwLCAxNjEwLCAxNTgxLCAxNjEwLCA3ODAsIAotICAgIDE2MTAsIDE1ODAsIDE2MTAsIDc4MCwgMTYxMCwgMTYwNSwgMTYxMCwgNzgwLCAxNjA1LCAxNjA1LCAxNjEwLCA3ODAsIAotICAgIDE2MDIsIDE2MDUsIDE2MTAsIDc4MCwgMTYwNiwgMTU4MSwgMTYxMCwgNzgxLCAxNjAyLCAxNjA1LCAxNTgxLCA3ODEsIAotICAgIDE2MDQsIDE1ODEsIDE2MDUsIDc4MCwgMTU5MywgMTYwNSwgMTYxMCwgNzgwLCAxNjAzLCAxNjA1LCAxNjEwLCA3ODEsIAotICAgIDE2MDYsIDE1ODAsIDE1ODEsIDc4MCwgMTYwNSwgMTU4MiwgMTYxMCwgNzgxLCAxNjA0LCAxNTgwLCAxNjA1LCA3ODAsIAotICAgIDE2MDMsIDE2MDUsIDE2MDUsIDc4MCwgMTYwNCwgMTU4MCwgMTYwNSwgNzgwLCAxNjA2LCAxNTgwLCAxNTgxLCA3ODAsIAotICAgIDE1ODAsIDE1ODEsIDE2MTAsIDc4MCwgMTU4MSwgMTU4MCwgMTYxMCwgNzgwLCAxNjA1LCAxNTgwLCAxNjEwLCA3ODAsIAotICAgIDE2MDEsIDE2MDUsIDE2MTAsIDc4MCwgMTU3NiwgMTU4MSwgMTYxMCwgNzgxLCAxNjAzLCAxNjA1LCAxNjA1LCA3ODEsIAotICAgIDE1OTMsIDE1ODAsIDE2MDUsIDc4MSwgMTU4OSwgMTYwNSwgMTYwNSwgNzgwLCAxNTg3LCAxNTgyLCAxNjEwLCA3ODAsIAotICAgIDE2MDYsIDE1ODAsIDE2MTAsIDc3OSwgMTU4OSwgMTYwNCwgMTc0NiwgNzc5LCAxNjAyLCAxNjA0LCAxNzQ2LCAxMDM1LCAKLSAgICAxNTc1LCAxNjA0LCAxNjA0LCAxNjA3LCAxMDM1LCAxNTc1LCAxNjAzLCAxNTc2LCAxNTg1LCAxMDM1LCAxNjA1LCAxNTgxLCAKLSAgICAxNjA1LCAxNTgzLCAxMDM1LCAxNTg5LCAxNjA0LCAxNTkzLCAxNjA1LCAxMDM1LCAxNTg1LCAxNTg3LCAxNjA4LCAxNjA0LCAKLSAgICAxMDM1LCAxNTkzLCAxNjA0LCAxNjEwLCAxNjA3LCAxMDM1LCAxNjA4LCAxNTg3LCAxNjA0LCAxNjA1LCA3NzksIDE1ODksIAotICAgIDE2MDQsIDE2MDksIDQ2MTksIDE1ODksIDE2MDQsIDE2MDksIDMyLCAxNTc1LCAxNjA0LCAxNjA0LCAxNjA3LCAzMiwgMTU5MywgCi0gICAgMTYwNCwgMTYxMCwgMTYwNywgMzIsIDE2MDgsIDE1ODcsIDE2MDQsIDE2MDUsIDIwNTksIDE1ODAsIDE2MDQsIDMyLCAxNTgwLCAKLSAgICAxNjA0LCAxNTc1LCAxNjA0LCAxNjA3LCAxMDM1LCAxNTg1LCAxNzQwLCAxNTc1LCAxNjA0LCAyNjUsIDQ0LCAyNjUsIAotICAgIDEyMjg5LCAyNjUsIDEyMjkwLCAyNjUsIDU4LCAyNjUsIDU5LCAyNjUsIDMzLCAyNjUsIDYzLCAyNjUsIDEyMzEwLCAyNjUsIAotICAgIDEyMzExLCAyNjUsIDgyMzAsIDI2NSwgODIyOSwgMjY1LCA4MjEyLCAyNjUsIDgyMTEsIDI2NSwgOTUsIDI2NSwgOTUsIDI2NSwgCi0gICAgNDAsIDI2NSwgNDEsIDI2NSwgMTIzLCAyNjUsIDEyNSwgMjY1LCAxMjMwOCwgMjY1LCAxMjMwOSwgMjY1LCAxMjMwNCwgMjY1LCAKLSAgICAxMjMwNSwgMjY1LCAxMjI5OCwgMjY1LCAxMjI5OSwgMjY1LCAxMjI5NiwgMjY1LCAxMjI5NywgMjY1LCAxMjMwMCwgMjY1LCAKLSAgICAxMjMwMSwgMjY1LCAxMjMwMiwgMjY1LCAxMjMwMywgMjY1LCA5MSwgMjY1LCA5MywgMjU4LCA4MjU0LCAyNTgsIDgyNTQsIAotICAgIDI1OCwgODI1NCwgMjU4LCA4MjU0LCAyNTgsIDk1LCAyNTgsIDk1LCAyNTgsIDk1LCAyNzEsIDQ0LCAyNzEsIDEyMjg5LCAKLSAgICAyNzEsIDQ2LCAyNzEsIDU5LCAyNzEsIDU4LCAyNzEsIDYzLCAyNzEsIDMzLCAyNzEsIDgyMTIsIDI3MSwgNDAsIDI3MSwgNDEsIAotICAgIDI3MSwgMTIzLCAyNzEsIDEyNSwgMjcxLCAxMjMwOCwgMjcxLCAxMjMwOSwgMjcxLCAzNSwgMjcxLCAzOCwgMjcxLCA0MiwgCi0gICAgMjcxLCA0MywgMjcxLCA0NSwgMjcxLCA2MCwgMjcxLCA2MiwgMjcxLCA2MSwgMjcxLCA5MiwgMjcxLCAzNiwgMjcxLCAzNywgCi0gICAgMjcxLCA2NCwgNTIzLCAzMiwgMTYxMSwgNTI2LCAxNjAwLCAxNjExLCA1MjMsIDMyLCAxNjEyLCA1MjMsIDMyLCAxNjEzLCAKLSAgICA1MjMsIDMyLCAxNjE0LCA1MjYsIDE2MDAsIDE2MTQsIDUyMywgMzIsIDE2MTUsIDUyNiwgMTYwMCwgMTYxNSwgNTIzLCAzMiwgCi0gICAgMTYxNiwgNTI2LCAxNjAwLCAxNjE2LCA1MjMsIDMyLCAxNjE3LCA1MjYsIDE2MDAsIDE2MTcsIDUyMywgMzIsIDE2MTgsIAotICAgIDUyNiwgMTYwMCwgMTYxOCwgMjY3LCAxNTY5LCAyNjcsIDE1NzAsIDI2OCwgMTU3MCwgMjY3LCAxNTcxLCAyNjgsIDE1NzEsIAotICAgIDI2NywgMTU3MiwgMjY4LCAxNTcyLCAyNjcsIDE1NzMsIDI2OCwgMTU3MywgMjY3LCAxNTc0LCAyNjgsIDE1NzQsIDI2OSwgCi0gICAgMTU3NCwgMjcwLCAxNTc0LCAyNjcsIDE1NzUsIDI2OCwgMTU3NSwgMjY3LCAxNTc2LCAyNjgsIDE1NzYsIDI2OSwgMTU3NiwgCi0gICAgMjcwLCAxNTc2LCAyNjcsIDE1NzcsIDI2OCwgMTU3NywgMjY3LCAxNTc4LCAyNjgsIDE1NzgsIDI2OSwgMTU3OCwgMjcwLCAKLSAgICAxNTc4LCAyNjcsIDE1NzksIDI2OCwgMTU3OSwgMjY5LCAxNTc5LCAyNzAsIDE1NzksIDI2NywgMTU4MCwgMjY4LCAxNTgwLCAKLSAgICAyNjksIDE1ODAsIDI3MCwgMTU4MCwgMjY3LCAxNTgxLCAyNjgsIDE1ODEsIDI2OSwgMTU4MSwgMjcwLCAxNTgxLCAyNjcsIAotICAgIDE1ODIsIDI2OCwgMTU4MiwgMjY5LCAxNTgyLCAyNzAsIDE1ODIsIDI2NywgMTU4MywgMjY4LCAxNTgzLCAyNjcsIDE1ODQsIAotICAgIDI2OCwgMTU4NCwgMjY3LCAxNTg1LCAyNjgsIDE1ODUsIDI2NywgMTU4NiwgMjY4LCAxNTg2LCAyNjcsIDE1ODcsIDI2OCwgCi0gICAgMTU4NywgMjY5LCAxNTg3LCAyNzAsIDE1ODcsIDI2NywgMTU4OCwgMjY4LCAxNTg4LCAyNjksIDE1ODgsIDI3MCwgMTU4OCwgCi0gICAgMjY3LCAxNTg5LCAyNjgsIDE1ODksIDI2OSwgMTU4OSwgMjcwLCAxNTg5LCAyNjcsIDE1OTAsIDI2OCwgMTU5MCwgMjY5LCAKLSAgICAxNTkwLCAyNzAsIDE1OTAsIDI2NywgMTU5MSwgMjY4LCAxNTkxLCAyNjksIDE1OTEsIDI3MCwgMTU5MSwgMjY3LCAxNTkyLCAKLSAgICAyNjgsIDE1OTIsIDI2OSwgMTU5MiwgMjcwLCAxNTkyLCAyNjcsIDE1OTMsIDI2OCwgMTU5MywgMjY5LCAxNTkzLCAyNzAsIAotICAgIDE1OTMsIDI2NywgMTU5NCwgMjY4LCAxNTk0LCAyNjksIDE1OTQsIDI3MCwgMTU5NCwgMjY3LCAxNjAxLCAyNjgsIDE2MDEsIAotICAgIDI2OSwgMTYwMSwgMjcwLCAxNjAxLCAyNjcsIDE2MDIsIDI2OCwgMTYwMiwgMjY5LCAxNjAyLCAyNzAsIDE2MDIsIDI2NywgCi0gICAgMTYwMywgMjY4LCAxNjAzLCAyNjksIDE2MDMsIDI3MCwgMTYwMywgMjY3LCAxNjA0LCAyNjgsIDE2MDQsIDI2OSwgMTYwNCwgCi0gICAgMjcwLCAxNjA0LCAyNjcsIDE2MDUsIDI2OCwgMTYwNSwgMjY5LCAxNjA1LCAyNzAsIDE2MDUsIDI2NywgMTYwNiwgMjY4LCAKLSAgICAxNjA2LCAyNjksIDE2MDYsIDI3MCwgMTYwNiwgMjY3LCAxNjA3LCAyNjgsIDE2MDcsIDI2OSwgMTYwNywgMjcwLCAxNjA3LCAKLSAgICAyNjcsIDE2MDgsIDI2OCwgMTYwOCwgMjY3LCAxNjA5LCAyNjgsIDE2MDksIDI2NywgMTYxMCwgMjY4LCAxNjEwLCAyNjksIAotICAgIDE2MTAsIDI3MCwgMTYxMCwgNTIzLCAxNjA0LCAxNTcwLCA1MjQsIDE2MDQsIDE1NzAsIDUyMywgMTYwNCwgMTU3MSwgNTI0LCAKLSAgICAxNjA0LCAxNTcxLCA1MjMsIDE2MDQsIDE1NzMsIDUyNCwgMTYwNCwgMTU3MywgNTIzLCAxNjA0LCAxNTc1LCA1MjQsIDE2MDQsIAotICAgIDE1NzUsIDI2NCwgMzMsIDI2NCwgMzQsIDI2NCwgMzUsIDI2NCwgMzYsIDI2NCwgMzcsIDI2NCwgMzgsIDI2NCwgMzksIDI2NCwgCi0gICAgNDAsIDI2NCwgNDEsIDI2NCwgNDIsIDI2NCwgNDMsIDI2NCwgNDQsIDI2NCwgNDUsIDI2NCwgNDYsIDI2NCwgNDcsIDI2NCwgCi0gICAgNDgsIDI2NCwgNDksIDI2NCwgNTAsIDI2NCwgNTEsIDI2NCwgNTIsIDI2NCwgNTMsIDI2NCwgNTQsIDI2NCwgNTUsIDI2NCwgCi0gICAgNTYsIDI2NCwgNTcsIDI2NCwgNTgsIDI2NCwgNTksIDI2NCwgNjAsIDI2NCwgNjEsIDI2NCwgNjIsIDI2NCwgNjMsIDI2NCwgCi0gICAgNjQsIDI2NCwgNjUsIDI2NCwgNjYsIDI2NCwgNjcsIDI2NCwgNjgsIDI2NCwgNjksIDI2NCwgNzAsIDI2NCwgNzEsIDI2NCwgCi0gICAgNzIsIDI2NCwgNzMsIDI2NCwgNzQsIDI2NCwgNzUsIDI2NCwgNzYsIDI2NCwgNzcsIDI2NCwgNzgsIDI2NCwgNzksIDI2NCwgCi0gICAgODAsIDI2NCwgODEsIDI2NCwgODIsIDI2NCwgODMsIDI2NCwgODQsIDI2NCwgODUsIDI2NCwgODYsIDI2NCwgODcsIDI2NCwgCi0gICAgODgsIDI2NCwgODksIDI2NCwgOTAsIDI2NCwgOTEsIDI2NCwgOTIsIDI2NCwgOTMsIDI2NCwgOTQsIDI2NCwgOTUsIDI2NCwgCi0gICAgOTYsIDI2NCwgOTcsIDI2NCwgOTgsIDI2NCwgOTksIDI2NCwgMTAwLCAyNjQsIDEwMSwgMjY0LCAxMDIsIDI2NCwgMTAzLCAKLSAgICAyNjQsIDEwNCwgMjY0LCAxMDUsIDI2NCwgMTA2LCAyNjQsIDEwNywgMjY0LCAxMDgsIDI2NCwgMTA5LCAyNjQsIDExMCwgCi0gICAgMjY0LCAxMTEsIDI2NCwgMTEyLCAyNjQsIDExMywgMjY0LCAxMTQsIDI2NCwgMTE1LCAyNjQsIDExNiwgMjY0LCAxMTcsIAotICAgIDI2NCwgMTE4LCAyNjQsIDExOSwgMjY0LCAxMjAsIDI2NCwgMTIxLCAyNjQsIDEyMiwgMjY0LCAxMjMsIDI2NCwgMTI0LCAKLSAgICAyNjQsIDEyNSwgMjY0LCAxMjYsIDI2NCwgMTA2MjksIDI2NCwgMTA2MzAsIDI3MiwgMTIyOTAsIDI3MiwgMTIzMDAsIDI3MiwgCi0gICAgMTIzMDEsIDI3MiwgMTIyODksIDI3MiwgMTI1MzksIDI3MiwgMTI1MzAsIDI3MiwgMTI0NDksIDI3MiwgMTI0NTEsIDI3MiwgCi0gICAgMTI0NTMsIDI3MiwgMTI0NTUsIDI3MiwgMTI0NTcsIDI3MiwgMTI1MTUsIDI3MiwgMTI1MTcsIDI3MiwgMTI1MTksIDI3MiwgCi0gICAgMTI0ODMsIDI3MiwgMTI1NDAsIDI3MiwgMTI0NTAsIDI3MiwgMTI0NTIsIDI3MiwgMTI0NTQsIDI3MiwgMTI0NTYsIDI3MiwgCi0gICAgMTI0NTgsIDI3MiwgMTI0NTksIDI3MiwgMTI0NjEsIDI3MiwgMTI0NjMsIDI3MiwgMTI0NjUsIDI3MiwgMTI0NjcsIDI3MiwgCi0gICAgMTI0NjksIDI3MiwgMTI0NzEsIDI3MiwgMTI0NzMsIDI3MiwgMTI0NzUsIDI3MiwgMTI0NzcsIDI3MiwgMTI0NzksIDI3MiwgCi0gICAgMTI0ODEsIDI3MiwgMTI0ODQsIDI3MiwgMTI0ODYsIDI3MiwgMTI0ODgsIDI3MiwgMTI0OTAsIDI3MiwgMTI0OTEsIDI3MiwgCi0gICAgMTI0OTIsIDI3MiwgMTI0OTMsIDI3MiwgMTI0OTQsIDI3MiwgMTI0OTUsIDI3MiwgMTI0OTgsIDI3MiwgMTI1MDEsIDI3MiwgCi0gICAgMTI1MDQsIDI3MiwgMTI1MDcsIDI3MiwgMTI1MTAsIDI3MiwgMTI1MTEsIDI3MiwgMTI1MTIsIDI3MiwgMTI1MTMsIDI3MiwgCi0gICAgMTI1MTQsIDI3MiwgMTI1MTYsIDI3MiwgMTI1MTgsIDI3MiwgMTI1MjAsIDI3MiwgMTI1MjEsIDI3MiwgMTI1MjIsIDI3MiwgCi0gICAgMTI1MjMsIDI3MiwgMTI1MjQsIDI3MiwgMTI1MjUsIDI3MiwgMTI1MjcsIDI3MiwgMTI1MzEsIDI3MiwgMTI0NDEsIDI3MiwgCi0gICAgMTI0NDIsIDI3MiwgMTI2NDQsIDI3MiwgMTI1OTMsIDI3MiwgMTI1OTQsIDI3MiwgMTI1OTUsIDI3MiwgMTI1OTYsIDI3MiwgCi0gICAgMTI1OTcsIDI3MiwgMTI1OTgsIDI3MiwgMTI1OTksIDI3MiwgMTI2MDAsIDI3MiwgMTI2MDEsIDI3MiwgMTI2MDIsIDI3MiwgCi0gICAgMTI2MDMsIDI3MiwgMTI2MDQsIDI3MiwgMTI2MDUsIDI3MiwgMTI2MDYsIDI3MiwgMTI2MDcsIDI3MiwgMTI2MDgsIDI3MiwgCi0gICAgMTI2MDksIDI3MiwgMTI2MTAsIDI3MiwgMTI2MTEsIDI3MiwgMTI2MTIsIDI3MiwgMTI2MTMsIDI3MiwgMTI2MTQsIDI3MiwgCi0gICAgMTI2MTUsIDI3MiwgMTI2MTYsIDI3MiwgMTI2MTcsIDI3MiwgMTI2MTgsIDI3MiwgMTI2MTksIDI3MiwgMTI2MjAsIDI3MiwgCi0gICAgMTI2MjEsIDI3MiwgMTI2MjIsIDI3MiwgMTI2MjMsIDI3MiwgMTI2MjQsIDI3MiwgMTI2MjUsIDI3MiwgMTI2MjYsIDI3MiwgCi0gICAgMTI2MjcsIDI3MiwgMTI2MjgsIDI3MiwgMTI2MjksIDI3MiwgMTI2MzAsIDI3MiwgMTI2MzEsIDI3MiwgMTI2MzIsIDI3MiwgCi0gICAgMTI2MzMsIDI3MiwgMTI2MzQsIDI3MiwgMTI2MzUsIDI3MiwgMTI2MzYsIDI3MiwgMTI2MzcsIDI3MiwgMTI2MzgsIDI3MiwgCi0gICAgMTI2MzksIDI3MiwgMTI2NDAsIDI3MiwgMTI2NDEsIDI3MiwgMTI2NDIsIDI3MiwgMTI2NDMsIDI2NCwgMTYyLCAyNjQsIAotICAgIDE2MywgMjY0LCAxNzIsIDI2NCwgMTc1LCAyNjQsIDE2NiwgMjY0LCAxNjUsIDI2NCwgODM2MSwgMjcyLCA5NDc0LCAyNzIsIAotICAgIDg1OTIsIDI3MiwgODU5MywgMjcyLCA4NTk0LCAyNzIsIDg1OTUsIDI3MiwgOTYzMiwgMjcyLCA5Njc1LCA1MTIsIDY5Nzg1LCAKLSAgICA2OTgxOCwgNTEyLCA2OTc4NywgNjk4MTgsIDUxMiwgNjk3OTcsIDY5ODE4LCA1MTIsIDExOTEyNywgMTE5MTQxLCA1MTIsIAotICAgIDExOTEyOCwgMTE5MTQxLCA1MTIsIDExOTEzNSwgMTE5MTUwLCA1MTIsIDExOTEzNSwgMTE5MTUxLCA1MTIsIDExOTEzNSwgCi0gICAgMTE5MTUyLCA1MTIsIDExOTEzNSwgMTE5MTUzLCA1MTIsIDExOTEzNSwgMTE5MTU0LCA1MTIsIDExOTIyNSwgMTE5MTQxLCAKLSAgICA1MTIsIDExOTIyNiwgMTE5MTQxLCA1MTIsIDExOTIyNywgMTE5MTUwLCA1MTIsIDExOTIyOCwgMTE5MTUwLCA1MTIsIAotICAgIDExOTIyNywgMTE5MTUxLCA1MTIsIDExOTIyOCwgMTE5MTUxLCAyNjIsIDY1LCAyNjIsIDY2LCAyNjIsIDY3LCAyNjIsIDY4LCAKLSAgICAyNjIsIDY5LCAyNjIsIDcwLCAyNjIsIDcxLCAyNjIsIDcyLCAyNjIsIDczLCAyNjIsIDc0LCAyNjIsIDc1LCAyNjIsIDc2LCAKLSAgICAyNjIsIDc3LCAyNjIsIDc4LCAyNjIsIDc5LCAyNjIsIDgwLCAyNjIsIDgxLCAyNjIsIDgyLCAyNjIsIDgzLCAyNjIsIDg0LCAKLSAgICAyNjIsIDg1LCAyNjIsIDg2LCAyNjIsIDg3LCAyNjIsIDg4LCAyNjIsIDg5LCAyNjIsIDkwLCAyNjIsIDk3LCAyNjIsIDk4LCAKLSAgICAyNjIsIDk5LCAyNjIsIDEwMCwgMjYyLCAxMDEsIDI2MiwgMTAyLCAyNjIsIDEwMywgMjYyLCAxMDQsIDI2MiwgMTA1LCAyNjIsIAotICAgIDEwNiwgMjYyLCAxMDcsIDI2MiwgMTA4LCAyNjIsIDEwOSwgMjYyLCAxMTAsIDI2MiwgMTExLCAyNjIsIDExMiwgMjYyLCAKLSAgICAxMTMsIDI2MiwgMTE0LCAyNjIsIDExNSwgMjYyLCAxMTYsIDI2MiwgMTE3LCAyNjIsIDExOCwgMjYyLCAxMTksIDI2MiwgCi0gICAgMTIwLCAyNjIsIDEyMSwgMjYyLCAxMjIsIDI2MiwgNjUsIDI2MiwgNjYsIDI2MiwgNjcsIDI2MiwgNjgsIDI2MiwgNjksIAotICAgIDI2MiwgNzAsIDI2MiwgNzEsIDI2MiwgNzIsIDI2MiwgNzMsIDI2MiwgNzQsIDI2MiwgNzUsIDI2MiwgNzYsIDI2MiwgNzcsIAotICAgIDI2MiwgNzgsIDI2MiwgNzksIDI2MiwgODAsIDI2MiwgODEsIDI2MiwgODIsIDI2MiwgODMsIDI2MiwgODQsIDI2MiwgODUsIAotICAgIDI2MiwgODYsIDI2MiwgODcsIDI2MiwgODgsIDI2MiwgODksIDI2MiwgOTAsIDI2MiwgOTcsIDI2MiwgOTgsIDI2MiwgOTksIAotICAgIDI2MiwgMTAwLCAyNjIsIDEwMSwgMjYyLCAxMDIsIDI2MiwgMTAzLCAyNjIsIDEwNSwgMjYyLCAxMDYsIDI2MiwgMTA3LCAKKyAgICAyNjA4NSwgNzc4LCAxMDMsIDk3LCAxMDgsIDI1OSwgNDI4NjMsIDI1OSwgMjk0LCAyNTksIDMzOSwgMjU2LCAzNTkxMiwgCisgICAgMjU2LCAyNjM1NiwgMjU2LCAzNjU1NCwgMjU2LCAzNjA0MCwgMjU2LCAyODM2OSwgMjU2LCAyMDAxOCwgMjU2LCAyMTQ3NywgCisgICAgMjU2LCA0MDg2MCwgMjU2LCA0MDg2MCwgMjU2LCAyMjg2NSwgMjU2LCAzNzMyOSwgMjU2LCAyMTg5NSwgMjU2LCAyMjg1NiwgCisgICAgMjU2LCAyNTA3OCwgMjU2LCAzMDMxMywgMjU2LCAzMjY0NSwgMjU2LCAzNDM2NywgMjU2LCAzNDc0NiwgMjU2LCAzNTA2NCwgCisgICAgMjU2LCAzNzAwNywgMjU2LCAyNzEzOCwgMjU2LCAyNzkzMSwgMjU2LCAyODg4OSwgMjU2LCAyOTY2MiwgMjU2LCAzMzg1MywgCisgICAgMjU2LCAzNzIyNiwgMjU2LCAzOTQwOSwgMjU2LCAyMDA5OCwgMjU2LCAyMTM2NSwgMjU2LCAyNzM5NiwgMjU2LCAyOTIxMSwgCisgICAgMjU2LCAzNDM0OSwgMjU2LCA0MDQ3OCwgMjU2LCAyMzg4OCwgMjU2LCAyODY1MSwgMjU2LCAzNDI1MywgMjU2LCAzNTE3MiwgCisgICAgMjU2LCAyNTI4OSwgMjU2LCAzMzI0MCwgMjU2LCAzNDg0NywgMjU2LCAyNDI2NiwgMjU2LCAyNjM5MSwgMjU2LCAyODAxMCwgCisgICAgMjU2LCAyOTQzNiwgMjU2LCAzNzA3MCwgMjU2LCAyMDM1OCwgMjU2LCAyMDkxOSwgMjU2LCAyMTIxNCwgMjU2LCAyNTc5NiwgCisgICAgMjU2LCAyNzM0NywgMjU2LCAyOTIwMCwgMjU2LCAzMDQzOSwgMjU2LCAzMjc2OSwgMjU2LCAzNDMxMCwgMjU2LCAzNDM5NiwgCisgICAgMjU2LCAzNjMzNSwgMjU2LCAzODcwNiwgMjU2LCAzOTc5MSwgMjU2LCA0MDQ0MiwgMjU2LCAzMDg2MCwgMjU2LCAzMTEwMywgCisgICAgMjU2LCAzMjE2MCwgMjU2LCAzMzczNywgMjU2LCAzNzYzNiwgMjU2LCA0MDU3NSwgMjU2LCAzNTU0MiwgMjU2LCAyMjc1MSwgCisgICAgMjU2LCAyNDMyNCwgMjU2LCAzMTg0MCwgMjU2LCAzMjg5NCwgMjU2LCAyOTI4MiwgMjU2LCAzMDkyMiwgMjU2LCAzNjAzNCwgCisgICAgMjU2LCAzODY0NywgMjU2LCAyMjc0NCwgMjU2LCAyMzY1MCwgMjU2LCAyNzE1NSwgMjU2LCAyODEyMiwgMjU2LCAyODQzMSwgCisgICAgMjU2LCAzMjA0NywgMjU2LCAzMjMxMSwgMjU2LCAzODQ3NSwgMjU2LCAyMTIwMiwgMjU2LCAzMjkwNywgMjU2LCAyMDk1NiwgCisgICAgMjU2LCAyMDk0MCwgMjU2LCAzMTI2MCwgMjU2LCAzMjE5MCwgMjU2LCAzMzc3NywgMjU2LCAzODUxNywgMjU2LCAzNTcxMiwgCisgICAgMjU2LCAyNTI5NSwgMjU2LCAyNzEzOCwgMjU2LCAzNTU4MiwgMjU2LCAyMDAyNSwgMjU2LCAyMzUyNywgMjU2LCAyNDU5NCwgCisgICAgMjU2LCAyOTU3NSwgMjU2LCAzMDA2NCwgMjU2LCAyMTI3MSwgMjU2LCAzMDk3MSwgMjU2LCAyMDQxNSwgMjU2LCAyNDQ4OSwgCisgICAgMjU2LCAxOTk4MSwgMjU2LCAyNzg1MiwgMjU2LCAyNTk3NiwgMjU2LCAzMjAzNCwgMjU2LCAyMTQ0MywgMjU2LCAyMjYyMiwgCisgICAgMjU2LCAzMDQ2NSwgMjU2LCAzMzg2NSwgMjU2LCAzNTQ5OCwgMjU2LCAyNzU3OCwgMjU2LCAzNjc4NCwgMjU2LCAyNzc4NCwgCisgICAgMjU2LCAyNTM0MiwgMjU2LCAzMzUwOSwgMjU2LCAyNTUwNCwgMjU2LCAzMDA1MywgMjU2LCAyMDE0MiwgMjU2LCAyMDg0MSwgCisgICAgMjU2LCAyMDkzNywgMjU2LCAyNjc1MywgMjU2LCAzMTk3NSwgMjU2LCAzMzM5MSwgMjU2LCAzNTUzOCwgMjU2LCAzNzMyNywgCisgICAgMjU2LCAyMTIzNywgMjU2LCAyMTU3MCwgMjU2LCAyMjg5OSwgMjU2LCAyNDMwMCwgMjU2LCAyNjA1MywgMjU2LCAyODY3MCwgCisgICAgMjU2LCAzMTAxOCwgMjU2LCAzODMxNywgMjU2LCAzOTUzMCwgMjU2LCA0MDU5OSwgMjU2LCA0MDY1NCwgMjU2LCAyMTE0NywgCisgICAgMjU2LCAyNjMxMCwgMjU2LCAyNzUxMSwgMjU2LCAzNjcwNiwgMjU2LCAyNDE4MCwgMjU2LCAyNDk3NiwgMjU2LCAyNTA4OCwgCisgICAgMjU2LCAyNTc1NCwgMjU2LCAyODQ1MSwgMjU2LCAyOTAwMSwgMjU2LCAyOTgzMywgMjU2LCAzMTE3OCwgMjU2LCAzMjI0NCwgCisgICAgMjU2LCAzMjg3OSwgMjU2LCAzNjY0NiwgMjU2LCAzNDAzMCwgMjU2LCAzNjg5OSwgMjU2LCAzNzcwNiwgMjU2LCAyMTAxNSwgCisgICAgMjU2LCAyMTE1NSwgMjU2LCAyMTY5MywgMjU2LCAyODg3MiwgMjU2LCAzNTAxMCwgMjU2LCAzNTQ5OCwgMjU2LCAyNDI2NSwgCisgICAgMjU2LCAyNDU2NSwgMjU2LCAyNTQ2NywgMjU2LCAyNzU2NiwgMjU2LCAzMTgwNiwgMjU2LCAyOTU1NywgMjU2LCAyMDE5NiwgCisgICAgMjU2LCAyMjI2NSwgMjU2LCAyMzUyNywgMjU2LCAyMzk5NCwgMjU2LCAyNDYwNCwgMjU2LCAyOTYxOCwgMjU2LCAyOTgwMSwgCisgICAgMjU2LCAzMjY2NiwgMjU2LCAzMjgzOCwgMjU2LCAzNzQyOCwgMjU2LCAzODY0NiwgMjU2LCAzODcyOCwgMjU2LCAzODkzNiwgCisgICAgMjU2LCAyMDM2MywgMjU2LCAzMTE1MCwgMjU2LCAzNzMwMCwgMjU2LCAzODU4NCwgMjU2LCAyNDgwMSwgMjU2LCAyMDEwMiwgCisgICAgMjU2LCAyMDY5OCwgMjU2LCAyMzUzNCwgMjU2LCAyMzYxNSwgMjU2LCAyNjAwOSwgMjU2LCAyNzEzOCwgMjU2LCAyOTEzNCwgCisgICAgMjU2LCAzMDI3NCwgMjU2LCAzNDA0NCwgMjU2LCAzNjk4OCwgMjU2LCA0MDg0NSwgMjU2LCAyNjI0OCwgMjU2LCAzODQ0NiwgCisgICAgMjU2LCAyMTEyOSwgMjU2LCAyNjQ5MSwgMjU2LCAyNjYxMSwgMjU2LCAyNzk2OSwgMjU2LCAyODMxNiwgMjU2LCAyOTcwNSwgCisgICAgMjU2LCAzMDA0MSwgMjU2LCAzMDgyNywgMjU2LCAzMjAxNiwgMjU2LCAzOTAwNiwgMjU2LCAyMDg0NSwgMjU2LCAyNTEzNCwgCisgICAgMjU2LCAzODUyMCwgMjU2LCAyMDUyMywgMjU2LCAyMzgzMywgMjU2LCAyODEzOCwgMjU2LCAzNjY1MCwgMjU2LCAyNDQ1OSwgCisgICAgMjU2LCAyNDkwMCwgMjU2LCAyNjY0NywgMjU2LCAyOTU3NSwgMjU2LCAzODUzNCwgMjU2LCAyMTAzMywgMjU2LCAyMTUxOSwgCisgICAgMjU2LCAyMzY1MywgMjU2LCAyNjEzMSwgMjU2LCAyNjQ0NiwgMjU2LCAyNjc5MiwgMjU2LCAyNzg3NywgMjU2LCAyOTcwMiwgCisgICAgMjU2LCAzMDE3OCwgMjU2LCAzMjYzMywgMjU2LCAzNTAyMywgMjU2LCAzNTA0MSwgMjU2LCAzNzMyNCwgMjU2LCAzODYyNiwgCisgICAgMjU2LCAyMTMxMSwgMjU2LCAyODM0NiwgMjU2LCAyMTUzMywgMjU2LCAyOTEzNiwgMjU2LCAyOTg0OCwgMjU2LCAzNDI5OCwgCisgICAgMjU2LCAzODU2MywgMjU2LCA0MDAyMywgMjU2LCA0MDYwNywgMjU2LCAyNjUxOSwgMjU2LCAyODEwNywgMjU2LCAzMzI1NiwgCisgICAgMjU2LCAzMTQzNSwgMjU2LCAzMTUyMCwgMjU2LCAzMTg5MCwgMjU2LCAyOTM3NiwgMjU2LCAyODgyNSwgMjU2LCAzNTY3MiwgCisgICAgMjU2LCAyMDE2MCwgMjU2LCAzMzU5MCwgMjU2LCAyMTA1MCwgMjU2LCAyMDk5OSwgMjU2LCAyNDIzMCwgMjU2LCAyNTI5OSwgCisgICAgMjU2LCAzMTk1OCwgMjU2LCAyMzQyOSwgMjU2LCAyNzkzNCwgMjU2LCAyNjI5MiwgMjU2LCAzNjY2NywgMjU2LCAzNDg5MiwgCisgICAgMjU2LCAzODQ3NywgMjU2LCAzNTIxMSwgMjU2LCAyNDI3NSwgMjU2LCAyMDgwMCwgMjU2LCAyMTk1MiwgMjU2LCAyMjYxOCwgCisgICAgMjU2LCAyNjIyOCwgMjU2LCAyMDk1OCwgMjU2LCAyOTQ4MiwgMjU2LCAzMDQxMCwgMjU2LCAzMTAzNiwgMjU2LCAzMTA3MCwgCisgICAgMjU2LCAzMTA3NywgMjU2LCAzMTExOSwgMjU2LCAzODc0MiwgMjU2LCAzMTkzNCwgMjU2LCAzMjcwMSwgMjU2LCAzNDMyMiwgCisgICAgMjU2LCAzNTU3NiwgMjU2LCAzNjkyMCwgMjU2LCAzNzExNywgMjU2LCAzOTE1MSwgMjU2LCAzOTE2NCwgMjU2LCAzOTIwOCwgCisgICAgMjU2LCA0MDM3MiwgMjU2LCAzNzA4NiwgMjU2LCAzODU4MywgMjU2LCAyMDM5OCwgMjU2LCAyMDcxMSwgMjU2LCAyMDgxMywgCisgICAgMjU2LCAyMTE5MywgMjU2LCAyMTIyMCwgMjU2LCAyMTMyOSwgMjU2LCAyMTkxNywgMjU2LCAyMjAyMiwgMjU2LCAyMjEyMCwgCisgICAgMjU2LCAyMjU5MiwgMjU2LCAyMjY5NiwgMjU2LCAyMzY1MiwgMjU2LCAyMzY2MiwgMjU2LCAyNDcyNCwgMjU2LCAyNDkzNiwgCisgICAgMjU2LCAyNDk3NCwgMjU2LCAyNTA3NCwgMjU2LCAyNTkzNSwgMjU2LCAyNjA4MiwgMjU2LCAyNjI1NywgMjU2LCAyNjc1NywgCisgICAgMjU2LCAyODAyMywgMjU2LCAyODE4NiwgMjU2LCAyODQ1MCwgMjU2LCAyOTAzOCwgMjU2LCAyOTIyNywgMjU2LCAyOTczMCwgCisgICAgMjU2LCAzMDg2NSwgMjU2LCAzMTAzOCwgMjU2LCAzMTA0OSwgMjU2LCAzMTA0OCwgMjU2LCAzMTA1NiwgMjU2LCAzMTA2MiwgCisgICAgMjU2LCAzMTA2OSwgMjU2LCAzMTExNywgMjU2LCAzMTExOCwgMjU2LCAzMTI5NiwgMjU2LCAzMTM2MSwgMjU2LCAzMTY4MCwgCisgICAgMjU2LCAzMjI0NCwgMjU2LCAzMjI2NSwgMjU2LCAzMjMyMSwgMjU2LCAzMjYyNiwgMjU2LCAzMjc3MywgMjU2LCAzMzI2MSwgCisgICAgMjU2LCAzMzQwMSwgMjU2LCAzMzQwMSwgMjU2LCAzMzg3OSwgMjU2LCAzNTA4OCwgMjU2LCAzNTIyMiwgMjU2LCAzNTU4NSwgCisgICAgMjU2LCAzNTY0MSwgMjU2LCAzNjA1MSwgMjU2LCAzNjEwNCwgMjU2LCAzNjc5MCwgMjU2LCAzNjkyMCwgMjU2LCAzODYyNywgCisgICAgMjU2LCAzODkxMSwgMjU2LCAzODk3MSwgMjU2LCAyNDY5MywgMjU2LCAxNDgyMDYsIDI1NiwgMzMzMDQsIDI1NiwgMjAwMDYsIAorICAgIDI1NiwgMjA5MTcsIDI1NiwgMjA4NDAsIDI1NiwgMjAzNTIsIDI1NiwgMjA4MDUsIDI1NiwgMjA4NjQsIDI1NiwgMjExOTEsIAorICAgIDI1NiwgMjEyNDIsIDI1NiwgMjE5MTcsIDI1NiwgMjE4NDUsIDI1NiwgMjE5MTMsIDI1NiwgMjE5ODYsIDI1NiwgMjI2MTgsIAorICAgIDI1NiwgMjI3MDcsIDI1NiwgMjI4NTIsIDI1NiwgMjI4NjgsIDI1NiwgMjMxMzgsIDI1NiwgMjMzMzYsIDI1NiwgMjQyNzQsIAorICAgIDI1NiwgMjQyODEsIDI1NiwgMjQ0MjUsIDI1NiwgMjQ0OTMsIDI1NiwgMjQ3OTIsIDI1NiwgMjQ5MTAsIDI1NiwgMjQ4NDAsIAorICAgIDI1NiwgMjQ5NzQsIDI1NiwgMjQ5MjgsIDI1NiwgMjUwNzQsIDI1NiwgMjUxNDAsIDI1NiwgMjU1NDAsIDI1NiwgMjU2MjgsIAorICAgIDI1NiwgMjU2ODIsIDI1NiwgMjU5NDIsIDI1NiwgMjYyMjgsIDI1NiwgMjYzOTEsIDI1NiwgMjYzOTUsIDI1NiwgMjY0NTQsIAorICAgIDI1NiwgMjc1MTMsIDI1NiwgMjc1NzgsIDI1NiwgMjc5NjksIDI1NiwgMjgzNzksIDI1NiwgMjgzNjMsIDI1NiwgMjg0NTAsIAorICAgIDI1NiwgMjg3MDIsIDI1NiwgMjkwMzgsIDI1NiwgMzA2MzEsIDI1NiwgMjkyMzcsIDI1NiwgMjkzNTksIDI1NiwgMjk0ODIsIAorICAgIDI1NiwgMjk4MDksIDI1NiwgMjk5NTgsIDI1NiwgMzAwMTEsIDI1NiwgMzAyMzcsIDI1NiwgMzAyMzksIDI1NiwgMzA0MTAsIAorICAgIDI1NiwgMzA0MjcsIDI1NiwgMzA0NTIsIDI1NiwgMzA1MzgsIDI1NiwgMzA1MjgsIDI1NiwgMzA5MjQsIDI1NiwgMzE0MDksIAorICAgIDI1NiwgMzE2ODAsIDI1NiwgMzE4NjcsIDI1NiwgMzIwOTEsIDI1NiwgMzIyNDQsIDI1NiwgMzI1NzQsIDI1NiwgMzI3NzMsIAorICAgIDI1NiwgMzM2MTgsIDI1NiwgMzM3NzUsIDI1NiwgMzQ2ODEsIDI1NiwgMzUxMzcsIDI1NiwgMzUyMDYsIDI1NiwgMzUyMjIsIAorICAgIDI1NiwgMzU1MTksIDI1NiwgMzU1NzYsIDI1NiwgMzU1MzEsIDI1NiwgMzU1ODUsIDI1NiwgMzU1ODIsIDI1NiwgMzU1NjUsIAorICAgIDI1NiwgMzU2NDEsIDI1NiwgMzU3MjIsIDI1NiwgMzYxMDQsIDI1NiwgMzY2NjQsIDI1NiwgMzY5NzgsIDI1NiwgMzcyNzMsIAorICAgIDI1NiwgMzc0OTQsIDI1NiwgMzg1MjQsIDI1NiwgMzg2MjcsIDI1NiwgMzg3NDIsIDI1NiwgMzg4NzUsIDI1NiwgMzg5MTEsIAorICAgIDI1NiwgMzg5MjMsIDI1NiwgMzg5NzEsIDI1NiwgMzk2OTgsIDI1NiwgNDA4NjAsIDI1NiwgMTQxMzg2LCAyNTYsIDE0MTM4MCwgCisgICAgMjU2LCAxNDQzNDEsIDI1NiwgMTUyNjEsIDI1NiwgMTY0MDgsIDI1NiwgMTY0NDEsIDI1NiwgMTUyMTM3LCAyNTYsIAorICAgIDE1NDgzMiwgMjU2LCAxNjM1MzksIDI1NiwgNDA3NzEsIDI1NiwgNDA4NDYsIDUxNCwgMTAyLCAxMDIsIDUxNCwgMTAyLCAKKyAgICAxMDUsIDUxNCwgMTAyLCAxMDgsIDc3MCwgMTAyLCAxMDIsIDEwNSwgNzcwLCAxMDIsIDEwMiwgMTA4LCA1MTQsIDM4MywgCisgICAgMTE2LCA1MTQsIDExNSwgMTE2LCA1MTQsIDEzOTYsIDEzOTgsIDUxNCwgMTM5NiwgMTM4MSwgNTE0LCAxMzk2LCAxMzg3LCAKKyAgICA1MTQsIDE0MDYsIDEzOTgsIDUxNCwgMTM5NiwgMTM4OSwgNTEyLCAxNDk3LCAxNDYwLCA1MTIsIDE1MjIsIDE0NjMsIDI2MiwgCisgICAgMTUwNiwgMjYyLCAxNDg4LCAyNjIsIDE0OTEsIDI2MiwgMTQ5MiwgMjYyLCAxNDk5LCAyNjIsIDE1MDAsIDI2MiwgMTUwMSwgCisgICAgMjYyLCAxNTEyLCAyNjIsIDE1MTQsIDI2MiwgNDMsIDUxMiwgMTUxMywgMTQ3MywgNTEyLCAxNTEzLCAxNDc0LCA1MTIsIAorICAgIDY0MzI5LCAxNDczLCA1MTIsIDY0MzI5LCAxNDc0LCA1MTIsIDE0ODgsIDE0NjMsIDUxMiwgMTQ4OCwgMTQ2NCwgNTEyLCAKKyAgICAxNDg4LCAxNDY4LCA1MTIsIDE0ODksIDE0NjgsIDUxMiwgMTQ5MCwgMTQ2OCwgNTEyLCAxNDkxLCAxNDY4LCA1MTIsIDE0OTIsIAorICAgIDE0NjgsIDUxMiwgMTQ5MywgMTQ2OCwgNTEyLCAxNDk0LCAxNDY4LCA1MTIsIDE0OTYsIDE0NjgsIDUxMiwgMTQ5NywgMTQ2OCwgCisgICAgNTEyLCAxNDk4LCAxNDY4LCA1MTIsIDE0OTksIDE0NjgsIDUxMiwgMTUwMCwgMTQ2OCwgNTEyLCAxNTAyLCAxNDY4LCA1MTIsIAorICAgIDE1MDQsIDE0NjgsIDUxMiwgMTUwNSwgMTQ2OCwgNTEyLCAxNTA3LCAxNDY4LCA1MTIsIDE1MDgsIDE0NjgsIDUxMiwgMTUxMCwgCisgICAgMTQ2OCwgNTEyLCAxNTExLCAxNDY4LCA1MTIsIDE1MTIsIDE0NjgsIDUxMiwgMTUxMywgMTQ2OCwgNTEyLCAxNTE0LCAxNDY4LCAKKyAgICA1MTIsIDE0OTMsIDE0NjUsIDUxMiwgMTQ4OSwgMTQ3MSwgNTEyLCAxNDk5LCAxNDcxLCA1MTIsIDE1MDgsIDE0NzEsIDUxNCwgCisgICAgMTQ4OCwgMTUwMCwgMjY3LCAxNjQ5LCAyNjgsIDE2NDksIDI2NywgMTY1OSwgMjY4LCAxNjU5LCAyNjksIDE2NTksIDI3MCwgCisgICAgMTY1OSwgMjY3LCAxNjYyLCAyNjgsIDE2NjIsIDI2OSwgMTY2MiwgMjcwLCAxNjYyLCAyNjcsIDE2NjQsIDI2OCwgMTY2NCwgCisgICAgMjY5LCAxNjY0LCAyNzAsIDE2NjQsIDI2NywgMTY1OCwgMjY4LCAxNjU4LCAyNjksIDE2NTgsIDI3MCwgMTY1OCwgMjY3LCAKKyAgICAxNjYzLCAyNjgsIDE2NjMsIDI2OSwgMTY2MywgMjcwLCAxNjYzLCAyNjcsIDE2NTcsIDI2OCwgMTY1NywgMjY5LCAxNjU3LCAKKyAgICAyNzAsIDE2NTcsIDI2NywgMTcwMCwgMjY4LCAxNzAwLCAyNjksIDE3MDAsIDI3MCwgMTcwMCwgMjY3LCAxNzAyLCAyNjgsIAorICAgIDE3MDIsIDI2OSwgMTcwMiwgMjcwLCAxNzAyLCAyNjcsIDE2NjgsIDI2OCwgMTY2OCwgMjY5LCAxNjY4LCAyNzAsIDE2NjgsIAorICAgIDI2NywgMTY2NywgMjY4LCAxNjY3LCAyNjksIDE2NjcsIDI3MCwgMTY2NywgMjY3LCAxNjcwLCAyNjgsIDE2NzAsIDI2OSwgCisgICAgMTY3MCwgMjcwLCAxNjcwLCAyNjcsIDE2NzEsIDI2OCwgMTY3MSwgMjY5LCAxNjcxLCAyNzAsIDE2NzEsIDI2NywgMTY3NywgCisgICAgMjY4LCAxNjc3LCAyNjcsIDE2NzYsIDI2OCwgMTY3NiwgMjY3LCAxNjc4LCAyNjgsIDE2NzgsIDI2NywgMTY3MiwgMjY4LCAKKyAgICAxNjcyLCAyNjcsIDE2ODgsIDI2OCwgMTY4OCwgMjY3LCAxNjgxLCAyNjgsIDE2ODEsIDI2NywgMTcwNSwgMjY4LCAxNzA1LCAKKyAgICAyNjksIDE3MDUsIDI3MCwgMTcwNSwgMjY3LCAxNzExLCAyNjgsIDE3MTEsIDI2OSwgMTcxMSwgMjcwLCAxNzExLCAyNjcsIAorICAgIDE3MTUsIDI2OCwgMTcxNSwgMjY5LCAxNzE1LCAyNzAsIDE3MTUsIDI2NywgMTcxMywgMjY4LCAxNzEzLCAyNjksIDE3MTMsIAorICAgIDI3MCwgMTcxMywgMjY3LCAxNzIyLCAyNjgsIDE3MjIsIDI2NywgMTcyMywgMjY4LCAxNzIzLCAyNjksIDE3MjMsIDI3MCwgCisgICAgMTcyMywgMjY3LCAxNzI4LCAyNjgsIDE3MjgsIDI2NywgMTcyOSwgMjY4LCAxNzI5LCAyNjksIDE3MjksIDI3MCwgMTcyOSwgCisgICAgMjY3LCAxNzI2LCAyNjgsIDE3MjYsIDI2OSwgMTcyNiwgMjcwLCAxNzI2LCAyNjcsIDE3NDYsIDI2OCwgMTc0NiwgMjY3LCAKKyAgICAxNzQ3LCAyNjgsIDE3NDcsIDI2NywgMTcwOSwgMjY4LCAxNzA5LCAyNjksIDE3MDksIDI3MCwgMTcwOSwgMjY3LCAxNzM1LCAKKyAgICAyNjgsIDE3MzUsIDI2NywgMTczNCwgMjY4LCAxNzM0LCAyNjcsIDE3MzYsIDI2OCwgMTczNiwgMjY3LCAxNjU1LCAyNjcsIAorICAgIDE3MzksIDI2OCwgMTczOSwgMjY3LCAxNzMzLCAyNjgsIDE3MzMsIDI2NywgMTczNywgMjY4LCAxNzM3LCAyNjcsIDE3NDQsIAorICAgIDI2OCwgMTc0NCwgMjY5LCAxNzQ0LCAyNzAsIDE3NDQsIDI2OSwgMTYwOSwgMjcwLCAxNjA5LCA1MjMsIDE1NzQsIDE1NzUsIAorICAgIDUyNCwgMTU3NCwgMTU3NSwgNTIzLCAxNTc0LCAxNzQ5LCA1MjQsIDE1NzQsIDE3NDksIDUyMywgMTU3NCwgMTYwOCwgNTI0LCAKKyAgICAxNTc0LCAxNjA4LCA1MjMsIDE1NzQsIDE3MzUsIDUyNCwgMTU3NCwgMTczNSwgNTIzLCAxNTc0LCAxNzM0LCA1MjQsIDE1NzQsIAorICAgIDE3MzQsIDUyMywgMTU3NCwgMTczNiwgNTI0LCAxNTc0LCAxNzM2LCA1MjMsIDE1NzQsIDE3NDQsIDUyNCwgMTU3NCwgMTc0NCwgCisgICAgNTI1LCAxNTc0LCAxNzQ0LCA1MjMsIDE1NzQsIDE2MDksIDUyNCwgMTU3NCwgMTYwOSwgNTI1LCAxNTc0LCAxNjA5LCAyNjcsIAorICAgIDE3NDAsIDI2OCwgMTc0MCwgMjY5LCAxNzQwLCAyNzAsIDE3NDAsIDUyMywgMTU3NCwgMTU4MCwgNTIzLCAxNTc0LCAxNTgxLCAKKyAgICA1MjMsIDE1NzQsIDE2MDUsIDUyMywgMTU3NCwgMTYwOSwgNTIzLCAxNTc0LCAxNjEwLCA1MjMsIDE1NzYsIDE1ODAsIDUyMywgCisgICAgMTU3NiwgMTU4MSwgNTIzLCAxNTc2LCAxNTgyLCA1MjMsIDE1NzYsIDE2MDUsIDUyMywgMTU3NiwgMTYwOSwgNTIzLCAxNTc2LCAKKyAgICAxNjEwLCA1MjMsIDE1NzgsIDE1ODAsIDUyMywgMTU3OCwgMTU4MSwgNTIzLCAxNTc4LCAxNTgyLCA1MjMsIDE1NzgsIDE2MDUsIAorICAgIDUyMywgMTU3OCwgMTYwOSwgNTIzLCAxNTc4LCAxNjEwLCA1MjMsIDE1NzksIDE1ODAsIDUyMywgMTU3OSwgMTYwNSwgNTIzLCAKKyAgICAxNTc5LCAxNjA5LCA1MjMsIDE1NzksIDE2MTAsIDUyMywgMTU4MCwgMTU4MSwgNTIzLCAxNTgwLCAxNjA1LCA1MjMsIDE1ODEsIAorICAgIDE1ODAsIDUyMywgMTU4MSwgMTYwNSwgNTIzLCAxNTgyLCAxNTgwLCA1MjMsIDE1ODIsIDE1ODEsIDUyMywgMTU4MiwgMTYwNSwgCisgICAgNTIzLCAxNTg3LCAxNTgwLCA1MjMsIDE1ODcsIDE1ODEsIDUyMywgMTU4NywgMTU4MiwgNTIzLCAxNTg3LCAxNjA1LCA1MjMsIAorICAgIDE1ODksIDE1ODEsIDUyMywgMTU4OSwgMTYwNSwgNTIzLCAxNTkwLCAxNTgwLCA1MjMsIDE1OTAsIDE1ODEsIDUyMywgMTU5MCwgCisgICAgMTU4MiwgNTIzLCAxNTkwLCAxNjA1LCA1MjMsIDE1OTEsIDE1ODEsIDUyMywgMTU5MSwgMTYwNSwgNTIzLCAxNTkyLCAxNjA1LCAKKyAgICA1MjMsIDE1OTMsIDE1ODAsIDUyMywgMTU5MywgMTYwNSwgNTIzLCAxNTk0LCAxNTgwLCA1MjMsIDE1OTQsIDE2MDUsIDUyMywgCisgICAgMTYwMSwgMTU4MCwgNTIzLCAxNjAxLCAxNTgxLCA1MjMsIDE2MDEsIDE1ODIsIDUyMywgMTYwMSwgMTYwNSwgNTIzLCAxNjAxLCAKKyAgICAxNjA5LCA1MjMsIDE2MDEsIDE2MTAsIDUyMywgMTYwMiwgMTU4MSwgNTIzLCAxNjAyLCAxNjA1LCA1MjMsIDE2MDIsIDE2MDksIAorICAgIDUyMywgMTYwMiwgMTYxMCwgNTIzLCAxNjAzLCAxNTc1LCA1MjMsIDE2MDMsIDE1ODAsIDUyMywgMTYwMywgMTU4MSwgNTIzLCAKKyAgICAxNjAzLCAxNTgyLCA1MjMsIDE2MDMsIDE2MDQsIDUyMywgMTYwMywgMTYwNSwgNTIzLCAxNjAzLCAxNjA5LCA1MjMsIDE2MDMsIAorICAgIDE2MTAsIDUyMywgMTYwNCwgMTU4MCwgNTIzLCAxNjA0LCAxNTgxLCA1MjMsIDE2MDQsIDE1ODIsIDUyMywgMTYwNCwgMTYwNSwgCisgICAgNTIzLCAxNjA0LCAxNjA5LCA1MjMsIDE2MDQsIDE2MTAsIDUyMywgMTYwNSwgMTU4MCwgNTIzLCAxNjA1LCAxNTgxLCA1MjMsIAorICAgIDE2MDUsIDE1ODIsIDUyMywgMTYwNSwgMTYwNSwgNTIzLCAxNjA1LCAxNjA5LCA1MjMsIDE2MDUsIDE2MTAsIDUyMywgMTYwNiwgCisgICAgMTU4MCwgNTIzLCAxNjA2LCAxNTgxLCA1MjMsIDE2MDYsIDE1ODIsIDUyMywgMTYwNiwgMTYwNSwgNTIzLCAxNjA2LCAxNjA5LCAKKyAgICA1MjMsIDE2MDYsIDE2MTAsIDUyMywgMTYwNywgMTU4MCwgNTIzLCAxNjA3LCAxNjA1LCA1MjMsIDE2MDcsIDE2MDksIDUyMywgCisgICAgMTYwNywgMTYxMCwgNTIzLCAxNjEwLCAxNTgwLCA1MjMsIDE2MTAsIDE1ODEsIDUyMywgMTYxMCwgMTU4MiwgNTIzLCAxNjEwLCAKKyAgICAxNjA1LCA1MjMsIDE2MTAsIDE2MDksIDUyMywgMTYxMCwgMTYxMCwgNTIzLCAxNTg0LCAxNjQ4LCA1MjMsIDE1ODUsIDE2NDgsIAorICAgIDUyMywgMTYwOSwgMTY0OCwgNzc5LCAzMiwgMTYxMiwgMTYxNywgNzc5LCAzMiwgMTYxMywgMTYxNywgNzc5LCAzMiwgMTYxNCwgCisgICAgMTYxNywgNzc5LCAzMiwgMTYxNSwgMTYxNywgNzc5LCAzMiwgMTYxNiwgMTYxNywgNzc5LCAzMiwgMTYxNywgMTY0OCwgNTI0LCAKKyAgICAxNTc0LCAxNTg1LCA1MjQsIDE1NzQsIDE1ODYsIDUyNCwgMTU3NCwgMTYwNSwgNTI0LCAxNTc0LCAxNjA2LCA1MjQsIDE1NzQsIAorICAgIDE2MDksIDUyNCwgMTU3NCwgMTYxMCwgNTI0LCAxNTc2LCAxNTg1LCA1MjQsIDE1NzYsIDE1ODYsIDUyNCwgMTU3NiwgMTYwNSwgCisgICAgNTI0LCAxNTc2LCAxNjA2LCA1MjQsIDE1NzYsIDE2MDksIDUyNCwgMTU3NiwgMTYxMCwgNTI0LCAxNTc4LCAxNTg1LCA1MjQsIAorICAgIDE1NzgsIDE1ODYsIDUyNCwgMTU3OCwgMTYwNSwgNTI0LCAxNTc4LCAxNjA2LCA1MjQsIDE1NzgsIDE2MDksIDUyNCwgMTU3OCwgCisgICAgMTYxMCwgNTI0LCAxNTc5LCAxNTg1LCA1MjQsIDE1NzksIDE1ODYsIDUyNCwgMTU3OSwgMTYwNSwgNTI0LCAxNTc5LCAxNjA2LCAKKyAgICA1MjQsIDE1NzksIDE2MDksIDUyNCwgMTU3OSwgMTYxMCwgNTI0LCAxNjAxLCAxNjA5LCA1MjQsIDE2MDEsIDE2MTAsIDUyNCwgCisgICAgMTYwMiwgMTYwOSwgNTI0LCAxNjAyLCAxNjEwLCA1MjQsIDE2MDMsIDE1NzUsIDUyNCwgMTYwMywgMTYwNCwgNTI0LCAxNjAzLCAKKyAgICAxNjA1LCA1MjQsIDE2MDMsIDE2MDksIDUyNCwgMTYwMywgMTYxMCwgNTI0LCAxNjA0LCAxNjA1LCA1MjQsIDE2MDQsIDE2MDksIAorICAgIDUyNCwgMTYwNCwgMTYxMCwgNTI0LCAxNjA1LCAxNTc1LCA1MjQsIDE2MDUsIDE2MDUsIDUyNCwgMTYwNiwgMTU4NSwgNTI0LCAKKyAgICAxNjA2LCAxNTg2LCA1MjQsIDE2MDYsIDE2MDUsIDUyNCwgMTYwNiwgMTYwNiwgNTI0LCAxNjA2LCAxNjA5LCA1MjQsIDE2MDYsIAorICAgIDE2MTAsIDUyNCwgMTYwOSwgMTY0OCwgNTI0LCAxNjEwLCAxNTg1LCA1MjQsIDE2MTAsIDE1ODYsIDUyNCwgMTYxMCwgMTYwNSwgCisgICAgNTI0LCAxNjEwLCAxNjA2LCA1MjQsIDE2MTAsIDE2MDksIDUyNCwgMTYxMCwgMTYxMCwgNTI1LCAxNTc0LCAxNTgwLCA1MjUsIAorICAgIDE1NzQsIDE1ODEsIDUyNSwgMTU3NCwgMTU4MiwgNTI1LCAxNTc0LCAxNjA1LCA1MjUsIDE1NzQsIDE2MDcsIDUyNSwgMTU3NiwgCisgICAgMTU4MCwgNTI1LCAxNTc2LCAxNTgxLCA1MjUsIDE1NzYsIDE1ODIsIDUyNSwgMTU3NiwgMTYwNSwgNTI1LCAxNTc2LCAxNjA3LCAKKyAgICA1MjUsIDE1NzgsIDE1ODAsIDUyNSwgMTU3OCwgMTU4MSwgNTI1LCAxNTc4LCAxNTgyLCA1MjUsIDE1NzgsIDE2MDUsIDUyNSwgCisgICAgMTU3OCwgMTYwNywgNTI1LCAxNTc5LCAxNjA1LCA1MjUsIDE1ODAsIDE1ODEsIDUyNSwgMTU4MCwgMTYwNSwgNTI1LCAxNTgxLCAKKyAgICAxNTgwLCA1MjUsIDE1ODEsIDE2MDUsIDUyNSwgMTU4MiwgMTU4MCwgNTI1LCAxNTgyLCAxNjA1LCA1MjUsIDE1ODcsIDE1ODAsIAorICAgIDUyNSwgMTU4NywgMTU4MSwgNTI1LCAxNTg3LCAxNTgyLCA1MjUsIDE1ODcsIDE2MDUsIDUyNSwgMTU4OSwgMTU4MSwgNTI1LCAKKyAgICAxNTg5LCAxNTgyLCA1MjUsIDE1ODksIDE2MDUsIDUyNSwgMTU5MCwgMTU4MCwgNTI1LCAxNTkwLCAxNTgxLCA1MjUsIDE1OTAsIAorICAgIDE1ODIsIDUyNSwgMTU5MCwgMTYwNSwgNTI1LCAxNTkxLCAxNTgxLCA1MjUsIDE1OTIsIDE2MDUsIDUyNSwgMTU5MywgMTU4MCwgCisgICAgNTI1LCAxNTkzLCAxNjA1LCA1MjUsIDE1OTQsIDE1ODAsIDUyNSwgMTU5NCwgMTYwNSwgNTI1LCAxNjAxLCAxNTgwLCA1MjUsIAorICAgIDE2MDEsIDE1ODEsIDUyNSwgMTYwMSwgMTU4MiwgNTI1LCAxNjAxLCAxNjA1LCA1MjUsIDE2MDIsIDE1ODEsIDUyNSwgMTYwMiwgCisgICAgMTYwNSwgNTI1LCAxNjAzLCAxNTgwLCA1MjUsIDE2MDMsIDE1ODEsIDUyNSwgMTYwMywgMTU4MiwgNTI1LCAxNjAzLCAxNjA0LCAKKyAgICA1MjUsIDE2MDMsIDE2MDUsIDUyNSwgMTYwNCwgMTU4MCwgNTI1LCAxNjA0LCAxNTgxLCA1MjUsIDE2MDQsIDE1ODIsIDUyNSwgCisgICAgMTYwNCwgMTYwNSwgNTI1LCAxNjA0LCAxNjA3LCA1MjUsIDE2MDUsIDE1ODAsIDUyNSwgMTYwNSwgMTU4MSwgNTI1LCAxNjA1LCAKKyAgICAxNTgyLCA1MjUsIDE2MDUsIDE2MDUsIDUyNSwgMTYwNiwgMTU4MCwgNTI1LCAxNjA2LCAxNTgxLCA1MjUsIDE2MDYsIDE1ODIsIAorICAgIDUyNSwgMTYwNiwgMTYwNSwgNTI1LCAxNjA2LCAxNjA3LCA1MjUsIDE2MDcsIDE1ODAsIDUyNSwgMTYwNywgMTYwNSwgNTI1LCAKKyAgICAxNjA3LCAxNjQ4LCA1MjUsIDE2MTAsIDE1ODAsIDUyNSwgMTYxMCwgMTU4MSwgNTI1LCAxNjEwLCAxNTgyLCA1MjUsIDE2MTAsIAorICAgIDE2MDUsIDUyNSwgMTYxMCwgMTYwNywgNTI2LCAxNTc0LCAxNjA1LCA1MjYsIDE1NzQsIDE2MDcsIDUyNiwgMTU3NiwgMTYwNSwgCisgICAgNTI2LCAxNTc2LCAxNjA3LCA1MjYsIDE1NzgsIDE2MDUsIDUyNiwgMTU3OCwgMTYwNywgNTI2LCAxNTc5LCAxNjA1LCA1MjYsIAorICAgIDE1NzksIDE2MDcsIDUyNiwgMTU4NywgMTYwNSwgNTI2LCAxNTg3LCAxNjA3LCA1MjYsIDE1ODgsIDE2MDUsIDUyNiwgMTU4OCwgCisgICAgMTYwNywgNTI2LCAxNjAzLCAxNjA0LCA1MjYsIDE2MDMsIDE2MDUsIDUyNiwgMTYwNCwgMTYwNSwgNTI2LCAxNjA2LCAxNjA1LCAKKyAgICA1MjYsIDE2MDYsIDE2MDcsIDUyNiwgMTYxMCwgMTYwNSwgNTI2LCAxNjEwLCAxNjA3LCA3ODIsIDE2MDAsIDE2MTQsIDE2MTcsIAorICAgIDc4MiwgMTYwMCwgMTYxNSwgMTYxNywgNzgyLCAxNjAwLCAxNjE2LCAxNjE3LCA1MjMsIDE1OTEsIDE2MDksIDUyMywgMTU5MSwgCisgICAgMTYxMCwgNTIzLCAxNTkzLCAxNjA5LCA1MjMsIDE1OTMsIDE2MTAsIDUyMywgMTU5NCwgMTYwOSwgNTIzLCAxNTk0LCAxNjEwLCAKKyAgICA1MjMsIDE1ODcsIDE2MDksIDUyMywgMTU4NywgMTYxMCwgNTIzLCAxNTg4LCAxNjA5LCA1MjMsIDE1ODgsIDE2MTAsIDUyMywgCisgICAgMTU4MSwgMTYwOSwgNTIzLCAxNTgxLCAxNjEwLCA1MjMsIDE1ODAsIDE2MDksIDUyMywgMTU4MCwgMTYxMCwgNTIzLCAxNTgyLCAKKyAgICAxNjA5LCA1MjMsIDE1ODIsIDE2MTAsIDUyMywgMTU4OSwgMTYwOSwgNTIzLCAxNTg5LCAxNjEwLCA1MjMsIDE1OTAsIDE2MDksIAorICAgIDUyMywgMTU5MCwgMTYxMCwgNTIzLCAxNTg4LCAxNTgwLCA1MjMsIDE1ODgsIDE1ODEsIDUyMywgMTU4OCwgMTU4MiwgNTIzLCAKKyAgICAxNTg4LCAxNjA1LCA1MjMsIDE1ODgsIDE1ODUsIDUyMywgMTU4NywgMTU4NSwgNTIzLCAxNTg5LCAxNTg1LCA1MjMsIDE1OTAsIAorICAgIDE1ODUsIDUyNCwgMTU5MSwgMTYwOSwgNTI0LCAxNTkxLCAxNjEwLCA1MjQsIDE1OTMsIDE2MDksIDUyNCwgMTU5MywgMTYxMCwgCisgICAgNTI0LCAxNTk0LCAxNjA5LCA1MjQsIDE1OTQsIDE2MTAsIDUyNCwgMTU4NywgMTYwOSwgNTI0LCAxNTg3LCAxNjEwLCA1MjQsIAorICAgIDE1ODgsIDE2MDksIDUyNCwgMTU4OCwgMTYxMCwgNTI0LCAxNTgxLCAxNjA5LCA1MjQsIDE1ODEsIDE2MTAsIDUyNCwgMTU4MCwgCisgICAgMTYwOSwgNTI0LCAxNTgwLCAxNjEwLCA1MjQsIDE1ODIsIDE2MDksIDUyNCwgMTU4MiwgMTYxMCwgNTI0LCAxNTg5LCAxNjA5LCAKKyAgICA1MjQsIDE1ODksIDE2MTAsIDUyNCwgMTU5MCwgMTYwOSwgNTI0LCAxNTkwLCAxNjEwLCA1MjQsIDE1ODgsIDE1ODAsIDUyNCwgCisgICAgMTU4OCwgMTU4MSwgNTI0LCAxNTg4LCAxNTgyLCA1MjQsIDE1ODgsIDE2MDUsIDUyNCwgMTU4OCwgMTU4NSwgNTI0LCAxNTg3LCAKKyAgICAxNTg1LCA1MjQsIDE1ODksIDE1ODUsIDUyNCwgMTU5MCwgMTU4NSwgNTI1LCAxNTg4LCAxNTgwLCA1MjUsIDE1ODgsIDE1ODEsIAorICAgIDUyNSwgMTU4OCwgMTU4MiwgNTI1LCAxNTg4LCAxNjA1LCA1MjUsIDE1ODcsIDE2MDcsIDUyNSwgMTU4OCwgMTYwNywgNTI1LCAKKyAgICAxNTkxLCAxNjA1LCA1MjYsIDE1ODcsIDE1ODAsIDUyNiwgMTU4NywgMTU4MSwgNTI2LCAxNTg3LCAxNTgyLCA1MjYsIDE1ODgsIAorICAgIDE1ODAsIDUyNiwgMTU4OCwgMTU4MSwgNTI2LCAxNTg4LCAxNTgyLCA1MjYsIDE1OTEsIDE2MDUsIDUyNiwgMTU5MiwgMTYwNSwgCisgICAgNTI0LCAxNTc1LCAxNjExLCA1MjMsIDE1NzUsIDE2MTEsIDc4MSwgMTU3OCwgMTU4MCwgMTYwNSwgNzgwLCAxNTc4LCAxNTgxLCAKKyAgICAxNTgwLCA3ODEsIDE1NzgsIDE1ODEsIDE1ODAsIDc4MSwgMTU3OCwgMTU4MSwgMTYwNSwgNzgxLCAxNTc4LCAxNTgyLCAKKyAgICAxNjA1LCA3ODEsIDE1NzgsIDE2MDUsIDE1ODAsIDc4MSwgMTU3OCwgMTYwNSwgMTU4MSwgNzgxLCAxNTc4LCAxNjA1LCAKKyAgICAxNTgyLCA3ODAsIDE1ODAsIDE2MDUsIDE1ODEsIDc4MSwgMTU4MCwgMTYwNSwgMTU4MSwgNzgwLCAxNTgxLCAxNjA1LCAKKyAgICAxNjEwLCA3ODAsIDE1ODEsIDE2MDUsIDE2MDksIDc4MSwgMTU4NywgMTU4MSwgMTU4MCwgNzgxLCAxNTg3LCAxNTgwLCAKKyAgICAxNTgxLCA3ODAsIDE1ODcsIDE1ODAsIDE2MDksIDc4MCwgMTU4NywgMTYwNSwgMTU4MSwgNzgxLCAxNTg3LCAxNjA1LCAKKyAgICAxNTgxLCA3ODEsIDE1ODcsIDE2MDUsIDE1ODAsIDc4MCwgMTU4NywgMTYwNSwgMTYwNSwgNzgxLCAxNTg3LCAxNjA1LCAKKyAgICAxNjA1LCA3ODAsIDE1ODksIDE1ODEsIDE1ODEsIDc4MSwgMTU4OSwgMTU4MSwgMTU4MSwgNzgwLCAxNTg5LCAxNjA1LCAKKyAgICAxNjA1LCA3ODAsIDE1ODgsIDE1ODEsIDE2MDUsIDc4MSwgMTU4OCwgMTU4MSwgMTYwNSwgNzgwLCAxNTg4LCAxNTgwLCAKKyAgICAxNjEwLCA3ODAsIDE1ODgsIDE2MDUsIDE1ODIsIDc4MSwgMTU4OCwgMTYwNSwgMTU4MiwgNzgwLCAxNTg4LCAxNjA1LCAKKyAgICAxNjA1LCA3ODEsIDE1ODgsIDE2MDUsIDE2MDUsIDc4MCwgMTU5MCwgMTU4MSwgMTYwOSwgNzgwLCAxNTkwLCAxNTgyLCAKKyAgICAxNjA1LCA3ODEsIDE1OTAsIDE1ODIsIDE2MDUsIDc4MCwgMTU5MSwgMTYwNSwgMTU4MSwgNzgxLCAxNTkxLCAxNjA1LCAKKyAgICAxNTgxLCA3ODEsIDE1OTEsIDE2MDUsIDE2MDUsIDc4MCwgMTU5MSwgMTYwNSwgMTYxMCwgNzgwLCAxNTkzLCAxNTgwLCAKKyAgICAxNjA1LCA3ODAsIDE1OTMsIDE2MDUsIDE2MDUsIDc4MSwgMTU5MywgMTYwNSwgMTYwNSwgNzgwLCAxNTkzLCAxNjA1LCAKKyAgICAxNjA5LCA3ODAsIDE1OTQsIDE2MDUsIDE2MDUsIDc4MCwgMTU5NCwgMTYwNSwgMTYxMCwgNzgwLCAxNTk0LCAxNjA1LCAKKyAgICAxNjA5LCA3ODAsIDE2MDEsIDE1ODIsIDE2MDUsIDc4MSwgMTYwMSwgMTU4MiwgMTYwNSwgNzgwLCAxNjAyLCAxNjA1LCAKKyAgICAxNTgxLCA3ODAsIDE2MDIsIDE2MDUsIDE2MDUsIDc4MCwgMTYwNCwgMTU4MSwgMTYwNSwgNzgwLCAxNjA0LCAxNTgxLCAKKyAgICAxNjEwLCA3ODAsIDE2MDQsIDE1ODEsIDE2MDksIDc4MSwgMTYwNCwgMTU4MCwgMTU4MCwgNzgwLCAxNjA0LCAxNTgwLCAKKyAgICAxNTgwLCA3ODAsIDE2MDQsIDE1ODIsIDE2MDUsIDc4MSwgMTYwNCwgMTU4MiwgMTYwNSwgNzgwLCAxNjA0LCAxNjA1LCAKKyAgICAxNTgxLCA3ODEsIDE2MDQsIDE2MDUsIDE1ODEsIDc4MSwgMTYwNSwgMTU4MSwgMTU4MCwgNzgxLCAxNjA1LCAxNTgxLCAKKyAgICAxNjA1LCA3ODAsIDE2MDUsIDE1ODEsIDE2MTAsIDc4MSwgMTYwNSwgMTU4MCwgMTU4MSwgNzgxLCAxNjA1LCAxNTgwLCAKKyAgICAxNjA1LCA3ODEsIDE2MDUsIDE1ODIsIDE1ODAsIDc4MSwgMTYwNSwgMTU4MiwgMTYwNSwgNzgxLCAxNjA1LCAxNTgwLCAKKyAgICAxNTgyLCA3ODEsIDE2MDcsIDE2MDUsIDE1ODAsIDc4MSwgMTYwNywgMTYwNSwgMTYwNSwgNzgxLCAxNjA2LCAxNTgxLCAKKyAgICAxNjA1LCA3ODAsIDE2MDYsIDE1ODEsIDE2MDksIDc4MCwgMTYwNiwgMTU4MCwgMTYwNSwgNzgxLCAxNjA2LCAxNTgwLCAKKyAgICAxNjA1LCA3ODAsIDE2MDYsIDE1ODAsIDE2MDksIDc4MCwgMTYwNiwgMTYwNSwgMTYxMCwgNzgwLCAxNjA2LCAxNjA1LCAKKyAgICAxNjA5LCA3ODAsIDE2MTAsIDE2MDUsIDE2MDUsIDc4MSwgMTYxMCwgMTYwNSwgMTYwNSwgNzgwLCAxNTc2LCAxNTgyLCAKKyAgICAxNjEwLCA3ODAsIDE1NzgsIDE1ODAsIDE2MTAsIDc4MCwgMTU3OCwgMTU4MCwgMTYwOSwgNzgwLCAxNTc4LCAxNTgyLCAKKyAgICAxNjEwLCA3ODAsIDE1NzgsIDE1ODIsIDE2MDksIDc4MCwgMTU3OCwgMTYwNSwgMTYxMCwgNzgwLCAxNTc4LCAxNjA1LCAKKyAgICAxNjA5LCA3ODAsIDE1ODAsIDE2MDUsIDE2MTAsIDc4MCwgMTU4MCwgMTU4MSwgMTYwOSwgNzgwLCAxNTgwLCAxNjA1LCAKKyAgICAxNjA5LCA3ODAsIDE1ODcsIDE1ODIsIDE2MDksIDc4MCwgMTU4OSwgMTU4MSwgMTYxMCwgNzgwLCAxNTg4LCAxNTgxLCAKKyAgICAxNjEwLCA3ODAsIDE1OTAsIDE1ODEsIDE2MTAsIDc4MCwgMTYwNCwgMTU4MCwgMTYxMCwgNzgwLCAxNjA0LCAxNjA1LCAKKyAgICAxNjEwLCA3ODAsIDE2MTAsIDE1ODEsIDE2MTAsIDc4MCwgMTYxMCwgMTU4MCwgMTYxMCwgNzgwLCAxNjEwLCAxNjA1LCAKKyAgICAxNjEwLCA3ODAsIDE2MDUsIDE2MDUsIDE2MTAsIDc4MCwgMTYwMiwgMTYwNSwgMTYxMCwgNzgwLCAxNjA2LCAxNTgxLCAKKyAgICAxNjEwLCA3ODEsIDE2MDIsIDE2MDUsIDE1ODEsIDc4MSwgMTYwNCwgMTU4MSwgMTYwNSwgNzgwLCAxNTkzLCAxNjA1LCAKKyAgICAxNjEwLCA3ODAsIDE2MDMsIDE2MDUsIDE2MTAsIDc4MSwgMTYwNiwgMTU4MCwgMTU4MSwgNzgwLCAxNjA1LCAxNTgyLCAKKyAgICAxNjEwLCA3ODEsIDE2MDQsIDE1ODAsIDE2MDUsIDc4MCwgMTYwMywgMTYwNSwgMTYwNSwgNzgwLCAxNjA0LCAxNTgwLCAKKyAgICAxNjA1LCA3ODAsIDE2MDYsIDE1ODAsIDE1ODEsIDc4MCwgMTU4MCwgMTU4MSwgMTYxMCwgNzgwLCAxNTgxLCAxNTgwLCAKKyAgICAxNjEwLCA3ODAsIDE2MDUsIDE1ODAsIDE2MTAsIDc4MCwgMTYwMSwgMTYwNSwgMTYxMCwgNzgwLCAxNTc2LCAxNTgxLCAKKyAgICAxNjEwLCA3ODEsIDE2MDMsIDE2MDUsIDE2MDUsIDc4MSwgMTU5MywgMTU4MCwgMTYwNSwgNzgxLCAxNTg5LCAxNjA1LCAKKyAgICAxNjA1LCA3ODAsIDE1ODcsIDE1ODIsIDE2MTAsIDc4MCwgMTYwNiwgMTU4MCwgMTYxMCwgNzc5LCAxNTg5LCAxNjA0LCAKKyAgICAxNzQ2LCA3NzksIDE2MDIsIDE2MDQsIDE3NDYsIDEwMzUsIDE1NzUsIDE2MDQsIDE2MDQsIDE2MDcsIDEwMzUsIDE1NzUsIAorICAgIDE2MDMsIDE1NzYsIDE1ODUsIDEwMzUsIDE2MDUsIDE1ODEsIDE2MDUsIDE1ODMsIDEwMzUsIDE1ODksIDE2MDQsIDE1OTMsIAorICAgIDE2MDUsIDEwMzUsIDE1ODUsIDE1ODcsIDE2MDgsIDE2MDQsIDEwMzUsIDE1OTMsIDE2MDQsIDE2MTAsIDE2MDcsIDEwMzUsIAorICAgIDE2MDgsIDE1ODcsIDE2MDQsIDE2MDUsIDc3OSwgMTU4OSwgMTYwNCwgMTYwOSwgNDYxOSwgMTU4OSwgMTYwNCwgMTYwOSwgCisgICAgMzIsIDE1NzUsIDE2MDQsIDE2MDQsIDE2MDcsIDMyLCAxNTkzLCAxNjA0LCAxNjEwLCAxNjA3LCAzMiwgMTYwOCwgMTU4NywgCisgICAgMTYwNCwgMTYwNSwgMjA1OSwgMTU4MCwgMTYwNCwgMzIsIDE1ODAsIDE2MDQsIDE1NzUsIDE2MDQsIDE2MDcsIDEwMzUsIAorICAgIDE1ODUsIDE3NDAsIDE1NzUsIDE2MDQsIDI2NSwgNDQsIDI2NSwgMTIyODksIDI2NSwgMTIyOTAsIDI2NSwgNTgsIDI2NSwgCisgICAgNTksIDI2NSwgMzMsIDI2NSwgNjMsIDI2NSwgMTIzMTAsIDI2NSwgMTIzMTEsIDI2NSwgODIzMCwgMjY1LCA4MjI5LCAyNjUsIAorICAgIDgyMTIsIDI2NSwgODIxMSwgMjY1LCA5NSwgMjY1LCA5NSwgMjY1LCA0MCwgMjY1LCA0MSwgMjY1LCAxMjMsIDI2NSwgMTI1LCAKKyAgICAyNjUsIDEyMzA4LCAyNjUsIDEyMzA5LCAyNjUsIDEyMzA0LCAyNjUsIDEyMzA1LCAyNjUsIDEyMjk4LCAyNjUsIDEyMjk5LCAKKyAgICAyNjUsIDEyMjk2LCAyNjUsIDEyMjk3LCAyNjUsIDEyMzAwLCAyNjUsIDEyMzAxLCAyNjUsIDEyMzAyLCAyNjUsIDEyMzAzLCAKKyAgICAyNjUsIDkxLCAyNjUsIDkzLCAyNTgsIDgyNTQsIDI1OCwgODI1NCwgMjU4LCA4MjU0LCAyNTgsIDgyNTQsIDI1OCwgOTUsIAorICAgIDI1OCwgOTUsIDI1OCwgOTUsIDI3MSwgNDQsIDI3MSwgMTIyODksIDI3MSwgNDYsIDI3MSwgNTksIDI3MSwgNTgsIDI3MSwgCisgICAgNjMsIDI3MSwgMzMsIDI3MSwgODIxMiwgMjcxLCA0MCwgMjcxLCA0MSwgMjcxLCAxMjMsIDI3MSwgMTI1LCAyNzEsIDEyMzA4LCAKKyAgICAyNzEsIDEyMzA5LCAyNzEsIDM1LCAyNzEsIDM4LCAyNzEsIDQyLCAyNzEsIDQzLCAyNzEsIDQ1LCAyNzEsIDYwLCAyNzEsIAorICAgIDYyLCAyNzEsIDYxLCAyNzEsIDkyLCAyNzEsIDM2LCAyNzEsIDM3LCAyNzEsIDY0LCA1MjMsIDMyLCAxNjExLCA1MjYsIAorICAgIDE2MDAsIDE2MTEsIDUyMywgMzIsIDE2MTIsIDUyMywgMzIsIDE2MTMsIDUyMywgMzIsIDE2MTQsIDUyNiwgMTYwMCwgMTYxNCwgCisgICAgNTIzLCAzMiwgMTYxNSwgNTI2LCAxNjAwLCAxNjE1LCA1MjMsIDMyLCAxNjE2LCA1MjYsIDE2MDAsIDE2MTYsIDUyMywgMzIsIAorICAgIDE2MTcsIDUyNiwgMTYwMCwgMTYxNywgNTIzLCAzMiwgMTYxOCwgNTI2LCAxNjAwLCAxNjE4LCAyNjcsIDE1NjksIDI2NywgCisgICAgMTU3MCwgMjY4LCAxNTcwLCAyNjcsIDE1NzEsIDI2OCwgMTU3MSwgMjY3LCAxNTcyLCAyNjgsIDE1NzIsIDI2NywgMTU3MywgCisgICAgMjY4LCAxNTczLCAyNjcsIDE1NzQsIDI2OCwgMTU3NCwgMjY5LCAxNTc0LCAyNzAsIDE1NzQsIDI2NywgMTU3NSwgMjY4LCAKKyAgICAxNTc1LCAyNjcsIDE1NzYsIDI2OCwgMTU3NiwgMjY5LCAxNTc2LCAyNzAsIDE1NzYsIDI2NywgMTU3NywgMjY4LCAxNTc3LCAKKyAgICAyNjcsIDE1NzgsIDI2OCwgMTU3OCwgMjY5LCAxNTc4LCAyNzAsIDE1NzgsIDI2NywgMTU3OSwgMjY4LCAxNTc5LCAyNjksIAorICAgIDE1NzksIDI3MCwgMTU3OSwgMjY3LCAxNTgwLCAyNjgsIDE1ODAsIDI2OSwgMTU4MCwgMjcwLCAxNTgwLCAyNjcsIDE1ODEsIAorICAgIDI2OCwgMTU4MSwgMjY5LCAxNTgxLCAyNzAsIDE1ODEsIDI2NywgMTU4MiwgMjY4LCAxNTgyLCAyNjksIDE1ODIsIDI3MCwgCisgICAgMTU4MiwgMjY3LCAxNTgzLCAyNjgsIDE1ODMsIDI2NywgMTU4NCwgMjY4LCAxNTg0LCAyNjcsIDE1ODUsIDI2OCwgMTU4NSwgCisgICAgMjY3LCAxNTg2LCAyNjgsIDE1ODYsIDI2NywgMTU4NywgMjY4LCAxNTg3LCAyNjksIDE1ODcsIDI3MCwgMTU4NywgMjY3LCAKKyAgICAxNTg4LCAyNjgsIDE1ODgsIDI2OSwgMTU4OCwgMjcwLCAxNTg4LCAyNjcsIDE1ODksIDI2OCwgMTU4OSwgMjY5LCAxNTg5LCAKKyAgICAyNzAsIDE1ODksIDI2NywgMTU5MCwgMjY4LCAxNTkwLCAyNjksIDE1OTAsIDI3MCwgMTU5MCwgMjY3LCAxNTkxLCAyNjgsIAorICAgIDE1OTEsIDI2OSwgMTU5MSwgMjcwLCAxNTkxLCAyNjcsIDE1OTIsIDI2OCwgMTU5MiwgMjY5LCAxNTkyLCAyNzAsIDE1OTIsIAorICAgIDI2NywgMTU5MywgMjY4LCAxNTkzLCAyNjksIDE1OTMsIDI3MCwgMTU5MywgMjY3LCAxNTk0LCAyNjgsIDE1OTQsIDI2OSwgCisgICAgMTU5NCwgMjcwLCAxNTk0LCAyNjcsIDE2MDEsIDI2OCwgMTYwMSwgMjY5LCAxNjAxLCAyNzAsIDE2MDEsIDI2NywgMTYwMiwgCisgICAgMjY4LCAxNjAyLCAyNjksIDE2MDIsIDI3MCwgMTYwMiwgMjY3LCAxNjAzLCAyNjgsIDE2MDMsIDI2OSwgMTYwMywgMjcwLCAKKyAgICAxNjAzLCAyNjcsIDE2MDQsIDI2OCwgMTYwNCwgMjY5LCAxNjA0LCAyNzAsIDE2MDQsIDI2NywgMTYwNSwgMjY4LCAxNjA1LCAKKyAgICAyNjksIDE2MDUsIDI3MCwgMTYwNSwgMjY3LCAxNjA2LCAyNjgsIDE2MDYsIDI2OSwgMTYwNiwgMjcwLCAxNjA2LCAyNjcsIAorICAgIDE2MDcsIDI2OCwgMTYwNywgMjY5LCAxNjA3LCAyNzAsIDE2MDcsIDI2NywgMTYwOCwgMjY4LCAxNjA4LCAyNjcsIDE2MDksIAorICAgIDI2OCwgMTYwOSwgMjY3LCAxNjEwLCAyNjgsIDE2MTAsIDI2OSwgMTYxMCwgMjcwLCAxNjEwLCA1MjMsIDE2MDQsIDE1NzAsIAorICAgIDUyNCwgMTYwNCwgMTU3MCwgNTIzLCAxNjA0LCAxNTcxLCA1MjQsIDE2MDQsIDE1NzEsIDUyMywgMTYwNCwgMTU3MywgNTI0LCAKKyAgICAxNjA0LCAxNTczLCA1MjMsIDE2MDQsIDE1NzUsIDUyNCwgMTYwNCwgMTU3NSwgMjY0LCAzMywgMjY0LCAzNCwgMjY0LCAzNSwgCisgICAgMjY0LCAzNiwgMjY0LCAzNywgMjY0LCAzOCwgMjY0LCAzOSwgMjY0LCA0MCwgMjY0LCA0MSwgMjY0LCA0MiwgMjY0LCA0MywgCisgICAgMjY0LCA0NCwgMjY0LCA0NSwgMjY0LCA0NiwgMjY0LCA0NywgMjY0LCA0OCwgMjY0LCA0OSwgMjY0LCA1MCwgMjY0LCA1MSwgCisgICAgMjY0LCA1MiwgMjY0LCA1MywgMjY0LCA1NCwgMjY0LCA1NSwgMjY0LCA1NiwgMjY0LCA1NywgMjY0LCA1OCwgMjY0LCA1OSwgCisgICAgMjY0LCA2MCwgMjY0LCA2MSwgMjY0LCA2MiwgMjY0LCA2MywgMjY0LCA2NCwgMjY0LCA2NSwgMjY0LCA2NiwgMjY0LCA2NywgCisgICAgMjY0LCA2OCwgMjY0LCA2OSwgMjY0LCA3MCwgMjY0LCA3MSwgMjY0LCA3MiwgMjY0LCA3MywgMjY0LCA3NCwgMjY0LCA3NSwgCisgICAgMjY0LCA3NiwgMjY0LCA3NywgMjY0LCA3OCwgMjY0LCA3OSwgMjY0LCA4MCwgMjY0LCA4MSwgMjY0LCA4MiwgMjY0LCA4MywgCisgICAgMjY0LCA4NCwgMjY0LCA4NSwgMjY0LCA4NiwgMjY0LCA4NywgMjY0LCA4OCwgMjY0LCA4OSwgMjY0LCA5MCwgMjY0LCA5MSwgCisgICAgMjY0LCA5MiwgMjY0LCA5MywgMjY0LCA5NCwgMjY0LCA5NSwgMjY0LCA5NiwgMjY0LCA5NywgMjY0LCA5OCwgMjY0LCA5OSwgCisgICAgMjY0LCAxMDAsIDI2NCwgMTAxLCAyNjQsIDEwMiwgMjY0LCAxMDMsIDI2NCwgMTA0LCAyNjQsIDEwNSwgMjY0LCAxMDYsIAorICAgIDI2NCwgMTA3LCAyNjQsIDEwOCwgMjY0LCAxMDksIDI2NCwgMTEwLCAyNjQsIDExMSwgMjY0LCAxMTIsIDI2NCwgMTEzLCAKKyAgICAyNjQsIDExNCwgMjY0LCAxMTUsIDI2NCwgMTE2LCAyNjQsIDExNywgMjY0LCAxMTgsIDI2NCwgMTE5LCAyNjQsIDEyMCwgCisgICAgMjY0LCAxMjEsIDI2NCwgMTIyLCAyNjQsIDEyMywgMjY0LCAxMjQsIDI2NCwgMTI1LCAyNjQsIDEyNiwgMjY0LCAxMDYyOSwgCisgICAgMjY0LCAxMDYzMCwgMjcyLCAxMjI5MCwgMjcyLCAxMjMwMCwgMjcyLCAxMjMwMSwgMjcyLCAxMjI4OSwgMjcyLCAxMjUzOSwgCisgICAgMjcyLCAxMjUzMCwgMjcyLCAxMjQ0OSwgMjcyLCAxMjQ1MSwgMjcyLCAxMjQ1MywgMjcyLCAxMjQ1NSwgMjcyLCAxMjQ1NywgCisgICAgMjcyLCAxMjUxNSwgMjcyLCAxMjUxNywgMjcyLCAxMjUxOSwgMjcyLCAxMjQ4MywgMjcyLCAxMjU0MCwgMjcyLCAxMjQ1MCwgCisgICAgMjcyLCAxMjQ1MiwgMjcyLCAxMjQ1NCwgMjcyLCAxMjQ1NiwgMjcyLCAxMjQ1OCwgMjcyLCAxMjQ1OSwgMjcyLCAxMjQ2MSwgCisgICAgMjcyLCAxMjQ2MywgMjcyLCAxMjQ2NSwgMjcyLCAxMjQ2NywgMjcyLCAxMjQ2OSwgMjcyLCAxMjQ3MSwgMjcyLCAxMjQ3MywgCisgICAgMjcyLCAxMjQ3NSwgMjcyLCAxMjQ3NywgMjcyLCAxMjQ3OSwgMjcyLCAxMjQ4MSwgMjcyLCAxMjQ4NCwgMjcyLCAxMjQ4NiwgCisgICAgMjcyLCAxMjQ4OCwgMjcyLCAxMjQ5MCwgMjcyLCAxMjQ5MSwgMjcyLCAxMjQ5MiwgMjcyLCAxMjQ5MywgMjcyLCAxMjQ5NCwgCisgICAgMjcyLCAxMjQ5NSwgMjcyLCAxMjQ5OCwgMjcyLCAxMjUwMSwgMjcyLCAxMjUwNCwgMjcyLCAxMjUwNywgMjcyLCAxMjUxMCwgCisgICAgMjcyLCAxMjUxMSwgMjcyLCAxMjUxMiwgMjcyLCAxMjUxMywgMjcyLCAxMjUxNCwgMjcyLCAxMjUxNiwgMjcyLCAxMjUxOCwgCisgICAgMjcyLCAxMjUyMCwgMjcyLCAxMjUyMSwgMjcyLCAxMjUyMiwgMjcyLCAxMjUyMywgMjcyLCAxMjUyNCwgMjcyLCAxMjUyNSwgCisgICAgMjcyLCAxMjUyNywgMjcyLCAxMjUzMSwgMjcyLCAxMjQ0MSwgMjcyLCAxMjQ0MiwgMjcyLCAxMjY0NCwgMjcyLCAxMjU5MywgCisgICAgMjcyLCAxMjU5NCwgMjcyLCAxMjU5NSwgMjcyLCAxMjU5NiwgMjcyLCAxMjU5NywgMjcyLCAxMjU5OCwgMjcyLCAxMjU5OSwgCisgICAgMjcyLCAxMjYwMCwgMjcyLCAxMjYwMSwgMjcyLCAxMjYwMiwgMjcyLCAxMjYwMywgMjcyLCAxMjYwNCwgMjcyLCAxMjYwNSwgCisgICAgMjcyLCAxMjYwNiwgMjcyLCAxMjYwNywgMjcyLCAxMjYwOCwgMjcyLCAxMjYwOSwgMjcyLCAxMjYxMCwgMjcyLCAxMjYxMSwgCisgICAgMjcyLCAxMjYxMiwgMjcyLCAxMjYxMywgMjcyLCAxMjYxNCwgMjcyLCAxMjYxNSwgMjcyLCAxMjYxNiwgMjcyLCAxMjYxNywgCisgICAgMjcyLCAxMjYxOCwgMjcyLCAxMjYxOSwgMjcyLCAxMjYyMCwgMjcyLCAxMjYyMSwgMjcyLCAxMjYyMiwgMjcyLCAxMjYyMywgCisgICAgMjcyLCAxMjYyNCwgMjcyLCAxMjYyNSwgMjcyLCAxMjYyNiwgMjcyLCAxMjYyNywgMjcyLCAxMjYyOCwgMjcyLCAxMjYyOSwgCisgICAgMjcyLCAxMjYzMCwgMjcyLCAxMjYzMSwgMjcyLCAxMjYzMiwgMjcyLCAxMjYzMywgMjcyLCAxMjYzNCwgMjcyLCAxMjYzNSwgCisgICAgMjcyLCAxMjYzNiwgMjcyLCAxMjYzNywgMjcyLCAxMjYzOCwgMjcyLCAxMjYzOSwgMjcyLCAxMjY0MCwgMjcyLCAxMjY0MSwgCisgICAgMjcyLCAxMjY0MiwgMjcyLCAxMjY0MywgMjY0LCAxNjIsIDI2NCwgMTYzLCAyNjQsIDE3MiwgMjY0LCAxNzUsIDI2NCwgMTY2LCAKKyAgICAyNjQsIDE2NSwgMjY0LCA4MzYxLCAyNzIsIDk0NzQsIDI3MiwgODU5MiwgMjcyLCA4NTkzLCAyNzIsIDg1OTQsIDI3MiwgCisgICAgODU5NSwgMjcyLCA5NjMyLCAyNzIsIDk2NzUsIDUxMiwgNjk3ODUsIDY5ODE4LCA1MTIsIDY5Nzg3LCA2OTgxOCwgNTEyLCAKKyAgICA2OTc5NywgNjk4MTgsIDUxMiwgNjk5MzcsIDY5OTI3LCA1MTIsIDY5OTM4LCA2OTkyNywgNTEyLCAxMTkxMjcsIDExOTE0MSwgCisgICAgNTEyLCAxMTkxMjgsIDExOTE0MSwgNTEyLCAxMTkxMzUsIDExOTE1MCwgNTEyLCAxMTkxMzUsIDExOTE1MSwgNTEyLCAKKyAgICAxMTkxMzUsIDExOTE1MiwgNTEyLCAxMTkxMzUsIDExOTE1MywgNTEyLCAxMTkxMzUsIDExOTE1NCwgNTEyLCAxMTkyMjUsIAorICAgIDExOTE0MSwgNTEyLCAxMTkyMjYsIDExOTE0MSwgNTEyLCAxMTkyMjcsIDExOTE1MCwgNTEyLCAxMTkyMjgsIDExOTE1MCwgCisgICAgNTEyLCAxMTkyMjcsIDExOTE1MSwgNTEyLCAxMTkyMjgsIDExOTE1MSwgMjYyLCA2NSwgMjYyLCA2NiwgMjYyLCA2NywgMjYyLCAKKyAgICA2OCwgMjYyLCA2OSwgMjYyLCA3MCwgMjYyLCA3MSwgMjYyLCA3MiwgMjYyLCA3MywgMjYyLCA3NCwgMjYyLCA3NSwgMjYyLCAKKyAgICA3NiwgMjYyLCA3NywgMjYyLCA3OCwgMjYyLCA3OSwgMjYyLCA4MCwgMjYyLCA4MSwgMjYyLCA4MiwgMjYyLCA4MywgMjYyLCAKKyAgICA4NCwgMjYyLCA4NSwgMjYyLCA4NiwgMjYyLCA4NywgMjYyLCA4OCwgMjYyLCA4OSwgMjYyLCA5MCwgMjYyLCA5NywgMjYyLCAKKyAgICA5OCwgMjYyLCA5OSwgMjYyLCAxMDAsIDI2MiwgMTAxLCAyNjIsIDEwMiwgMjYyLCAxMDMsIDI2MiwgMTA0LCAyNjIsIDEwNSwgCisgICAgMjYyLCAxMDYsIDI2MiwgMTA3LCAyNjIsIDEwOCwgMjYyLCAxMDksIDI2MiwgMTEwLCAyNjIsIDExMSwgMjYyLCAxMTIsIAorICAgIDI2MiwgMTEzLCAyNjIsIDExNCwgMjYyLCAxMTUsIDI2MiwgMTE2LCAyNjIsIDExNywgMjYyLCAxMTgsIDI2MiwgMTE5LCAKKyAgICAyNjIsIDEyMCwgMjYyLCAxMjEsIDI2MiwgMTIyLCAyNjIsIDY1LCAyNjIsIDY2LCAyNjIsIDY3LCAyNjIsIDY4LCAyNjIsIAorICAgIDY5LCAyNjIsIDcwLCAyNjIsIDcxLCAyNjIsIDcyLCAyNjIsIDczLCAyNjIsIDc0LCAyNjIsIDc1LCAyNjIsIDc2LCAyNjIsIAorICAgIDc3LCAyNjIsIDc4LCAyNjIsIDc5LCAyNjIsIDgwLCAyNjIsIDgxLCAyNjIsIDgyLCAyNjIsIDgzLCAyNjIsIDg0LCAyNjIsIAorICAgIDg1LCAyNjIsIDg2LCAyNjIsIDg3LCAyNjIsIDg4LCAyNjIsIDg5LCAyNjIsIDkwLCAyNjIsIDk3LCAyNjIsIDk4LCAyNjIsIAorICAgIDk5LCAyNjIsIDEwMCwgMjYyLCAxMDEsIDI2MiwgMTAyLCAyNjIsIDEwMywgMjYyLCAxMDUsIDI2MiwgMTA2LCAyNjIsIDEwNywgCiAgICAgMjYyLCAxMDgsIDI2MiwgMTA5LCAyNjIsIDExMCwgMjYyLCAxMTEsIDI2MiwgMTEyLCAyNjIsIDExMywgMjYyLCAxMTQsIAogICAgIDI2MiwgMTE1LCAyNjIsIDExNiwgMjYyLCAxMTcsIDI2MiwgMTE4LCAyNjIsIDExOSwgMjYyLCAxMjAsIDI2MiwgMTIxLCAKICAgICAyNjIsIDEyMiwgMjYyLCA2NSwgMjYyLCA2NiwgMjYyLCA2NywgMjYyLCA2OCwgMjYyLCA2OSwgMjYyLCA3MCwgMjYyLCA3MSwgCkBAIC0zNTEwLDIwICszNTc5LDQyIEBACiAgICAgNTIsIDI2MiwgNTMsIDI2MiwgNTQsIDI2MiwgNTUsIDI2MiwgNTYsIDI2MiwgNTcsIDI2MiwgNDgsIDI2MiwgNDksIDI2MiwgCiAgICAgNTAsIDI2MiwgNTEsIDI2MiwgNTIsIDI2MiwgNTMsIDI2MiwgNTQsIDI2MiwgNTUsIDI2MiwgNTYsIDI2MiwgNTcsIDI2MiwgCiAgICAgNDgsIDI2MiwgNDksIDI2MiwgNTAsIDI2MiwgNTEsIDI2MiwgNTIsIDI2MiwgNTMsIDI2MiwgNTQsIDI2MiwgNTUsIDI2MiwgCi0gICAgNTYsIDI2MiwgNTcsIDUxNCwgNDgsIDQ2LCA1MTQsIDQ4LCA0NCwgNTE0LCA0OSwgNDQsIDUxNCwgNTAsIDQ0LCA1MTQsIDUxLCAKLSAgICA0NCwgNTE0LCA1MiwgNDQsIDUxNCwgNTMsIDQ0LCA1MTQsIDU0LCA0NCwgNTE0LCA1NSwgNDQsIDUxNCwgNTYsIDQ0LCA1MTQsIAotICAgIDU3LCA0NCwgNzcwLCA0MCwgNjUsIDQxLCA3NzAsIDQwLCA2NiwgNDEsIDc3MCwgNDAsIDY3LCA0MSwgNzcwLCA0MCwgNjgsIAotICAgIDQxLCA3NzAsIDQwLCA2OSwgNDEsIDc3MCwgNDAsIDcwLCA0MSwgNzcwLCA0MCwgNzEsIDQxLCA3NzAsIDQwLCA3MiwgNDEsIAotICAgIDc3MCwgNDAsIDczLCA0MSwgNzcwLCA0MCwgNzQsIDQxLCA3NzAsIDQwLCA3NSwgNDEsIDc3MCwgNDAsIDc2LCA0MSwgNzcwLCAKLSAgICA0MCwgNzcsIDQxLCA3NzAsIDQwLCA3OCwgNDEsIDc3MCwgNDAsIDc5LCA0MSwgNzcwLCA0MCwgODAsIDQxLCA3NzAsIDQwLCAKLSAgICA4MSwgNDEsIDc3MCwgNDAsIDgyLCA0MSwgNzcwLCA0MCwgODMsIDQxLCA3NzAsIDQwLCA4NCwgNDEsIDc3MCwgNDAsIDg1LCAKLSAgICA0MSwgNzcwLCA0MCwgODYsIDQxLCA3NzAsIDQwLCA4NywgNDEsIDc3MCwgNDAsIDg4LCA0MSwgNzcwLCA0MCwgODksIDQxLCAKLSAgICA3NzAsIDQwLCA5MCwgNDEsIDc3MCwgMTIzMDgsIDgzLCAxMjMwOSwgMjYzLCA2NywgMjYzLCA4MiwgNTE5LCA2NywgNjgsIAotICAgIDUxOSwgODcsIDkwLCAyNjYsIDY1LCAyNjYsIDY2LCAyNjYsIDY3LCAyNjYsIDY4LCAyNjYsIDY5LCAyNjYsIDcwLCAyNjYsIAotICAgIDcxLCAyNjYsIDcyLCAyNjYsIDczLCAyNjYsIDc0LCAyNjYsIDc1LCAyNjYsIDc2LCAyNjYsIDc3LCAyNjYsIDc4LCAyNjYsIAotICAgIDc5LCAyNjYsIDgwLCAyNjYsIDgxLCAyNjYsIDgyLCAyNjYsIDgzLCAyNjYsIDg0LCAyNjYsIDg1LCAyNjYsIDg2LCAyNjYsIAotICAgIDg3LCAyNjYsIDg4LCAyNjYsIDg5LCAyNjYsIDkwLCA1MjIsIDcyLCA4NiwgNTIyLCA3NywgODYsIDUyMiwgODMsIDY4LCAKLSAgICA1MjIsIDgzLCA4MywgNzc4LCA4MCwgODAsIDg2LCA1MjIsIDg3LCA2NywgNTIyLCA2OCwgNzQsIDUyMiwgMTI0MTEsIAorICAgIDU2LCAyNjIsIDU3LCAyNjIsIDE1NzUsIDI2MiwgMTU3NiwgMjYyLCAxNTgwLCAyNjIsIDE1ODMsIDI2MiwgMTYwOCwgMjYyLCAKKyAgICAxNTg2LCAyNjIsIDE1ODEsIDI2MiwgMTU5MSwgMjYyLCAxNjEwLCAyNjIsIDE2MDMsIDI2MiwgMTYwNCwgMjYyLCAxNjA1LCAKKyAgICAyNjIsIDE2MDYsIDI2MiwgMTU4NywgMjYyLCAxNTkzLCAyNjIsIDE2MDEsIDI2MiwgMTU4OSwgMjYyLCAxNjAyLCAyNjIsIAorICAgIDE1ODUsIDI2MiwgMTU4OCwgMjYyLCAxNTc4LCAyNjIsIDE1NzksIDI2MiwgMTU4MiwgMjYyLCAxNTg0LCAyNjIsIDE1OTAsIAorICAgIDI2MiwgMTU5MiwgMjYyLCAxNTk0LCAyNjIsIDE2NDYsIDI2MiwgMTcyMiwgMjYyLCAxNjk3LCAyNjIsIDE2NDcsIDI2MiwgCisgICAgMTU3NiwgMjYyLCAxNTgwLCAyNjIsIDE2MDcsIDI2MiwgMTU4MSwgMjYyLCAxNjEwLCAyNjIsIDE2MDMsIDI2MiwgMTYwNCwgCisgICAgMjYyLCAxNjA1LCAyNjIsIDE2MDYsIDI2MiwgMTU4NywgMjYyLCAxNTkzLCAyNjIsIDE2MDEsIDI2MiwgMTU4OSwgMjYyLCAKKyAgICAxNjAyLCAyNjIsIDE1ODgsIDI2MiwgMTU3OCwgMjYyLCAxNTc5LCAyNjIsIDE1ODIsIDI2MiwgMTU5MCwgMjYyLCAxNTk0LCAKKyAgICAyNjIsIDE1ODAsIDI2MiwgMTU4MSwgMjYyLCAxNjEwLCAyNjIsIDE2MDQsIDI2MiwgMTYwNiwgMjYyLCAxNTg3LCAyNjIsIAorICAgIDE1OTMsIDI2MiwgMTU4OSwgMjYyLCAxNjAyLCAyNjIsIDE1ODgsIDI2MiwgMTU4MiwgMjYyLCAxNTkwLCAyNjIsIDE1OTQsIAorICAgIDI2MiwgMTcyMiwgMjYyLCAxNjQ3LCAyNjIsIDE1NzYsIDI2MiwgMTU4MCwgMjYyLCAxNjA3LCAyNjIsIDE1ODEsIDI2MiwgCisgICAgMTU5MSwgMjYyLCAxNjEwLCAyNjIsIDE2MDMsIDI2MiwgMTYwNSwgMjYyLCAxNjA2LCAyNjIsIDE1ODcsIDI2MiwgMTU5MywgCisgICAgMjYyLCAxNjAxLCAyNjIsIDE1ODksIDI2MiwgMTYwMiwgMjYyLCAxNTg4LCAyNjIsIDE1NzgsIDI2MiwgMTU3OSwgMjYyLCAKKyAgICAxNTgyLCAyNjIsIDE1OTAsIDI2MiwgMTU5MiwgMjYyLCAxNTk0LCAyNjIsIDE2NDYsIDI2MiwgMTY5NywgMjYyLCAxNTc1LCAKKyAgICAyNjIsIDE1NzYsIDI2MiwgMTU4MCwgMjYyLCAxNTgzLCAyNjIsIDE2MDcsIDI2MiwgMTYwOCwgMjYyLCAxNTg2LCAyNjIsIAorICAgIDE1ODEsIDI2MiwgMTU5MSwgMjYyLCAxNjEwLCAyNjIsIDE2MDQsIDI2MiwgMTYwNSwgMjYyLCAxNjA2LCAyNjIsIDE1ODcsIAorICAgIDI2MiwgMTU5MywgMjYyLCAxNjAxLCAyNjIsIDE1ODksIDI2MiwgMTYwMiwgMjYyLCAxNTg1LCAyNjIsIDE1ODgsIDI2MiwgCisgICAgMTU3OCwgMjYyLCAxNTc5LCAyNjIsIDE1ODIsIDI2MiwgMTU4NCwgMjYyLCAxNTkwLCAyNjIsIDE1OTIsIDI2MiwgMTU5NCwgCisgICAgMjYyLCAxNTc2LCAyNjIsIDE1ODAsIDI2MiwgMTU4MywgMjYyLCAxNjA4LCAyNjIsIDE1ODYsIDI2MiwgMTU4MSwgMjYyLCAKKyAgICAxNTkxLCAyNjIsIDE2MTAsIDI2MiwgMTYwNCwgMjYyLCAxNjA1LCAyNjIsIDE2MDYsIDI2MiwgMTU4NywgMjYyLCAxNTkzLCAKKyAgICAyNjIsIDE2MDEsIDI2MiwgMTU4OSwgMjYyLCAxNjAyLCAyNjIsIDE1ODUsIDI2MiwgMTU4OCwgMjYyLCAxNTc4LCAyNjIsIAorICAgIDE1NzksIDI2MiwgMTU4MiwgMjYyLCAxNTg0LCAyNjIsIDE1OTAsIDI2MiwgMTU5MiwgMjYyLCAxNTk0LCA1MTQsIDQ4LCA0NiwgCisgICAgNTE0LCA0OCwgNDQsIDUxNCwgNDksIDQ0LCA1MTQsIDUwLCA0NCwgNTE0LCA1MSwgNDQsIDUxNCwgNTIsIDQ0LCA1MTQsIDUzLCAKKyAgICA0NCwgNTE0LCA1NCwgNDQsIDUxNCwgNTUsIDQ0LCA1MTQsIDU2LCA0NCwgNTE0LCA1NywgNDQsIDc3MCwgNDAsIDY1LCA0MSwgCisgICAgNzcwLCA0MCwgNjYsIDQxLCA3NzAsIDQwLCA2NywgNDEsIDc3MCwgNDAsIDY4LCA0MSwgNzcwLCA0MCwgNjksIDQxLCA3NzAsIAorICAgIDQwLCA3MCwgNDEsIDc3MCwgNDAsIDcxLCA0MSwgNzcwLCA0MCwgNzIsIDQxLCA3NzAsIDQwLCA3MywgNDEsIDc3MCwgNDAsIAorICAgIDc0LCA0MSwgNzcwLCA0MCwgNzUsIDQxLCA3NzAsIDQwLCA3NiwgNDEsIDc3MCwgNDAsIDc3LCA0MSwgNzcwLCA0MCwgNzgsIAorICAgIDQxLCA3NzAsIDQwLCA3OSwgNDEsIDc3MCwgNDAsIDgwLCA0MSwgNzcwLCA0MCwgODEsIDQxLCA3NzAsIDQwLCA4MiwgNDEsIAorICAgIDc3MCwgNDAsIDgzLCA0MSwgNzcwLCA0MCwgODQsIDQxLCA3NzAsIDQwLCA4NSwgNDEsIDc3MCwgNDAsIDg2LCA0MSwgNzcwLCAKKyAgICA0MCwgODcsIDQxLCA3NzAsIDQwLCA4OCwgNDEsIDc3MCwgNDAsIDg5LCA0MSwgNzcwLCA0MCwgOTAsIDQxLCA3NzAsIAorICAgIDEyMzA4LCA4MywgMTIzMDksIDI2MywgNjcsIDI2MywgODIsIDUxOSwgNjcsIDY4LCA1MTksIDg3LCA5MCwgMjY2LCA2NSwgCisgICAgMjY2LCA2NiwgMjY2LCA2NywgMjY2LCA2OCwgMjY2LCA2OSwgMjY2LCA3MCwgMjY2LCA3MSwgMjY2LCA3MiwgMjY2LCA3MywgCisgICAgMjY2LCA3NCwgMjY2LCA3NSwgMjY2LCA3NiwgMjY2LCA3NywgMjY2LCA3OCwgMjY2LCA3OSwgMjY2LCA4MCwgMjY2LCA4MSwgCisgICAgMjY2LCA4MiwgMjY2LCA4MywgMjY2LCA4NCwgMjY2LCA4NSwgMjY2LCA4NiwgMjY2LCA4NywgMjY2LCA4OCwgMjY2LCA4OSwgCisgICAgMjY2LCA5MCwgNTIyLCA3MiwgODYsIDUyMiwgNzcsIDg2LCA1MjIsIDgzLCA2OCwgNTIyLCA4MywgODMsIDc3OCwgODAsIDgwLCAKKyAgICA4NiwgNTIyLCA4NywgNjcsIDUxNSwgNzcsIDY3LCA1MTUsIDc3LCA2OCwgNTIyLCA2OCwgNzQsIDUyMiwgMTI0MTEsIAogICAgIDEyMzYzLCA1MjIsIDEyNDY3LCAxMjQ2NywgMjY2LCAxMjQ2OSwgMjY2LCAyNTE2MywgMjY2LCAyMzM4MywgMjY2LCAyMTQ1MiwgCiAgICAgMjY2LCAxMjQ4NywgMjY2LCAyMDEwOCwgMjY2LCAyMjgxMCwgMjY2LCAzNTI5OSwgMjY2LCAyMjgyNSwgMjY2LCAyMDEzMiwgCiAgICAgMjY2LCAyNjE0NCwgMjY2LCAyODk2MSwgMjY2LCAyNjAwOSwgMjY2LCAyMTA2OSwgMjY2LCAyNDQ2MCwgMjY2LCAyMDg3NywgCkBAIC0zNjQzLDcgKzM3MzQsNyBAQAogICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAogICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAogICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDM1LCAzNiwgMzcsIDM4LCAzOSwgNDAsIAotICAgIDQxLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA0MiwgNywgNywgNywgNywgNywgNywgCisgICAgNDEsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDQyLCA0MywgNywgNywgNywgNywgCiAgICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCiAgICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCiAgICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCkBAIC0zNjUxLDkgKzM3NDIsOSBAQAogICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAogICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAogICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDQzLCA3LCA3LCA0NCwgNDUsIAotICAgIDQ2LCA0NywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNDgsIDQ5LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKKyAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA0NCwgNywgNywgNDUsIAorICAgIDQ2LCA0NywgNDgsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAorICAgIDcsIDcsIDQ5LCA3LCA3LCA1MCwgNTEsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAogICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAogICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAogICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIApAQCAtMzY2NCw3ICszNzU1LDcgQEAKICAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKICAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKICAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA1MCwgNTEsIDUyLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKKyAgICA3LCA3LCA3LCA3LCA3LCA1MiwgNTMsIDU0LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKICAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKICAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKICAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKQEAgLTM4MTMsNyArMzkwNCw3IEBACiAgICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCiAgICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCiAgICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCisgICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCiB9OwogCiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgZGVjb21wX2luZGV4MltdID0gewpAQCAtNDI4MiwzNTYgKzQzNzMsMTYzIEBACiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNjY0OCwgNjY1MCwgMCwgMCwgMCwgMCwgMCwgMCwgNjY1MiwgNjY1NCwgNjY1NiwgNjY1OCwgNjY2MCwgNjY2MiwgNjY2NCwgCisgICAgNjY2NiwgNjY2OCwgNjY3MCwgNjY3MiwgNjY3NCwgNjY3NiwgNjY3OCwgNjY4MCwgNjY4MiwgNjY4NCwgNjY4NiwgNjY4OCwgCisgICAgNjY5MCwgNjY5MiwgNjY5NCwgNjY5NiwgNjY5OCwgNjcwMCwgNjcwMiwgNjcwNCwgNjcwNiwgNjcwOCwgNjcxMCwgNjcxMiwgCisgICAgNjcxNCwgNjcxNiwgNjcxOCwgNjcyMCwgNjcyMiwgNjcyNCwgNjcyNiwgNjcyOCwgNjczMCwgNjczMiwgNjczNCwgNjczNiwgCisgICAgNjczOCwgNjc0MCwgNjc0MiwgNjc0NCwgNjc0NiwgNjc0OCwgNjc1MCwgNjc1MiwgNjc1NCwgNjc1NiwgNjc1OCwgNjc2MCwgCisgICAgNjc2MiwgNjc2NCwgNjc2NiwgNjc2OCwgNjc3MCwgNjc3MiwgNjc3NCwgNjc3NiwgNjc3OCwgNjc4MCwgNjc4MiwgNjc4NCwgCisgICAgNjc4NiwgNjc4OCwgNjc5MCwgNjc5MiwgNjc5NCwgNjc5NiwgNjc5OCwgNjgwMCwgNjgwMiwgNjgwNCwgNjgwNiwgNjgwOCwgCisgICAgNjgxMCwgNjgxMiwgNjgxNCwgNjgxNiwgNjgxOCwgNjgyMCwgNjgyMiwgNjgyNCwgNjgyNiwgNjgyOCwgNjgzMCwgNjgzMiwgCisgICAgNjgzNCwgNjgzNiwgNjgzOCwgNjg0MCwgNjg0MiwgNjg0NCwgNjg0NiwgNjg0OCwgNjg1MCwgNjg1MiwgNjg1NCwgNjg1NiwgCisgICAgNjg1OCwgNjg2MCwgNjg2MiwgNjg2NCwgNjg2NiwgNjg2OCwgNjg3MCwgNjg3MiwgNjg3NCwgNjg3NiwgNjg3OCwgNjg4MCwgCisgICAgNjg4MiwgNjg4NCwgNjg4NiwgNjg4OCwgNjg5MCwgNjg5MiwgNjg5NCwgNjg5NiwgNjg5OCwgNjkwMCwgNjkwMiwgNjkwNCwgCisgICAgNjkwNiwgNjkwOCwgNjkxMCwgNjkxMiwgNjkxNCwgNjkxNiwgNjkxOCwgNjkyMCwgNjkyMiwgNjkyNCwgNjkyNiwgNjkyOCwgCisgICAgNjkzMCwgNjkzMiwgNjkzNCwgNjkzNiwgNjkzOCwgNjk0MCwgNjk0MiwgNjk0NCwgNjk0NiwgNjk0OCwgNjk1MCwgNjk1MiwgCisgICAgNjk1NCwgNjk1NiwgNjk1OCwgNjk2MCwgNjk2MiwgNjk2NCwgNjk2NiwgNjk2OCwgNjk3MCwgNjk3MiwgNjk3NCwgNjk3NiwgCisgICAgNjk3OCwgNjk4MCwgNjk4MiwgNjk4NCwgNjk4NiwgNjk4OCwgNjk5MCwgNjk5MiwgNjk5NCwgNjk5NiwgNjk5OCwgNzAwMCwgCisgICAgNzAwMiwgNzAwNCwgNzAwNiwgNzAwOCwgNzAxMCwgNzAxMiwgNzAxNCwgNzAxNiwgNzAxOCwgNzAyMCwgNzAyMiwgNzAyNCwgCisgICAgNzAyNiwgNzAyOCwgNzAzMCwgNzAzMiwgNzAzNCwgNzAzNiwgNzAzOCwgNzA0MCwgNzA0MiwgNzA0NCwgNzA0NiwgNzA0OCwgCisgICAgNzA1MCwgNzA1MiwgNzA1NCwgNzA1NiwgNzA1OCwgNzA2MCwgNzA2MiwgNzA2NCwgNzA2NiwgNzA2OCwgNzA3MCwgNzA3MiwgCisgICAgNzA3NCwgNzA3NiwgNzA3OCwgNzA4MCwgNzA4MiwgNzA4NCwgNzA4NiwgNzA4OCwgNzA5MCwgNzA5MiwgNzA5NCwgNzA5NiwgCisgICAgNzA5OCwgNzEwMCwgNzEwMiwgNzEwNCwgNzEwNiwgNzEwOCwgNzExMCwgNzExMiwgNzExNCwgNzExNiwgNzExOCwgNzEyMCwgCisgICAgNzEyMiwgNzEyNCwgNzEyNiwgNzEyOCwgNzEzMCwgNzEzMiwgNzEzNCwgNzEzNiwgNzEzOCwgNzE0MCwgNzE0MiwgNzE0NCwgCisgICAgNzE0NiwgNzE0OCwgNzE1MCwgNzE1MiwgNzE1NCwgNzE1NiwgNzE1OCwgNzE2MCwgNzE2MiwgNzE2NCwgNzE2NiwgNzE2OCwgCisgICAgNzE3MCwgNzE3MiwgNzE3NCwgNzE3NiwgNzE3OCwgNzE4MCwgNzE4MiwgNzE4NCwgNzE4NiwgNzE4OCwgNzE5MCwgMCwgMCwgCisgICAgNzE5MiwgMCwgNzE5NCwgMCwgMCwgNzE5NiwgNzE5OCwgNzIwMCwgNzIwMiwgNzIwNCwgNzIwNiwgNzIwOCwgNzIxMCwgCisgICAgNzIxMiwgNzIxNCwgMCwgNzIxNiwgMCwgNzIxOCwgMCwgMCwgNzIyMCwgNzIyMiwgMCwgMCwgMCwgNzIyNCwgNzIyNiwgCisgICAgNzIyOCwgNzIzMCwgNzIzMiwgNzIzNCwgNzIzNiwgNzIzOCwgNzI0MCwgNzI0MiwgNzI0NCwgNzI0NiwgNzI0OCwgNzI1MCwgCisgICAgNzI1MiwgNzI1NCwgNzI1NiwgNzI1OCwgNzI2MCwgNzI2MiwgNzI2NCwgNzI2NiwgNzI2OCwgNzI3MCwgNzI3MiwgNzI3NCwgCisgICAgNzI3NiwgNzI3OCwgNzI4MCwgNzI4MiwgNzI4NCwgNzI4NiwgNzI4OCwgNzI5MCwgNzI5MiwgNzI5NCwgNzI5NiwgNzI5OCwgCisgICAgNzMwMCwgNzMwMiwgNzMwNCwgNzMwNiwgNzMwOCwgNzMxMCwgNzMxMiwgNzMxNCwgNzMxNiwgNzMxOCwgNzMyMCwgNzMyMiwgCisgICAgNzMyNCwgNzMyNiwgNzMyOCwgNzMzMCwgNzMzMiwgNzMzNCwgNzMzNiwgNzMzOCwgNzM0MCwgNzM0MiwgNzM0NCwgNzM0NiwgCisgICAgNzM0OCwgNzM1MCwgNzM1MiwgNzM1NCwgNzM1NiwgNzM1OCwgMCwgMCwgNzM2MCwgNzM2MiwgNzM2NCwgNzM2NiwgNzM2OCwgCisgICAgNzM3MCwgNzM3MiwgNzM3NCwgNzM3NiwgNzM3OCwgNzM4MCwgNzM4MiwgNzM4NCwgNzM4NiwgNzM4OCwgNzM5MCwgNzM5MiwgCisgICAgNzM5NCwgNzM5NiwgNzM5OCwgNzQwMCwgNzQwMiwgNzQwNCwgNzQwNiwgNzQwOCwgNzQxMCwgNzQxMiwgNzQxNCwgNzQxNiwgCisgICAgNzQxOCwgNzQyMCwgNzQyMiwgNzQyNCwgNzQyNiwgNzQyOCwgNzQzMCwgNzQzMiwgNzQzNCwgNzQzNiwgNzQzOCwgNzQ0MCwgCisgICAgNzQ0MiwgNzQ0NCwgNzQ0NiwgNzQ0OCwgNzQ1MCwgNzQ1MiwgNzQ1NCwgNzQ1NiwgNzQ1OCwgNzQ2MCwgNzQ2MiwgNzQ2NCwgCisgICAgNzQ2NiwgNzQ2OCwgNzQ3MCwgNzQ3MiwgNzQ3NCwgNzQ3NiwgNzQ3OCwgNzQ4MCwgNzQ4MiwgNzQ4NCwgNzQ4NiwgNzQ4OCwgCisgICAgNzQ5MCwgNzQ5MiwgNzQ5NCwgNzQ5NiwgNzQ5OCwgNzUwMCwgNzUwMiwgNzUwNCwgNzUwNiwgNzUwOCwgNzUxMCwgNzUxMiwgCisgICAgNzUxNCwgNzUxNiwgNzUxOCwgNzUyMCwgNzUyMiwgNzUyNCwgNzUyNiwgNzUyOCwgNzUzMCwgNzUzMiwgNzUzNCwgNzUzNiwgCisgICAgNzUzOCwgNzU0MCwgNzU0MiwgNzU0NCwgNzU0NiwgNzU0OCwgNzU1MCwgNzU1MiwgNzU1NCwgNzU1NiwgNzU1OCwgNzU2MCwgCisgICAgNzU2MiwgNzU2NCwgNzU2NiwgNzU2OCwgNzU3MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjY0OCwgNjY1MCwgNjY1MiwgNjY1NCwgNjY1NiwgNjY1OCwgNjY2MCwgNjY2MiwgCi0gICAgNjY2NCwgNjY2NiwgNjY2OCwgNjY3MCwgNjY3MiwgNjY3NCwgNjY3NiwgNjY3OCwgNjY4MCwgNjY4MiwgNjY4NCwgNjY4NiwgCi0gICAgNjY4OCwgNjY5MCwgNjY5MiwgNjY5NCwgNjY5NiwgNjY5OCwgNjcwMCwgNjcwMiwgNjcwNCwgNjcwNiwgNjcwOCwgNjcxMCwgCi0gICAgNjcxMiwgNjcxNCwgNjcxNiwgNjcxOCwgNjcyMCwgNjcyMiwgNjcyNCwgNjcyNiwgNjcyOCwgNjczMCwgNjczMiwgNjczNCwgCi0gICAgNjczNiwgNjczOCwgNjc0MCwgNjc0MiwgNjc0NCwgNjc0NiwgNjc0OCwgNjc1MCwgNjc1MiwgNjc1NCwgNjc1NiwgNjc1OCwgCi0gICAgNjc2MCwgNjc2MiwgNjc2NCwgNjc2NiwgNjc2OCwgNjc3MCwgNjc3MiwgNjc3NCwgNjc3NiwgNjc3OCwgNjc4MCwgNjc4MiwgCi0gICAgNjc4NCwgNjc4NiwgNjc4OCwgNjc5MCwgNjc5MiwgNjc5NCwgNjc5NiwgNjc5OCwgNjgwMCwgNjgwMiwgNjgwNCwgNjgwNiwgCi0gICAgNjgwOCwgNjgxMCwgNjgxMiwgNjgxNCwgNjgxNiwgNjgxOCwgNjgyMCwgNjgyMiwgNjgyNCwgNjgyNiwgNjgyOCwgNjgzMCwgCi0gICAgNjgzMiwgNjgzNCwgNjgzNiwgNjgzOCwgNjg0MCwgNjg0MiwgNjg0NCwgNjg0NiwgNjg0OCwgNjg1MCwgNjg1MiwgNjg1NCwgCi0gICAgNjg1NiwgNjg1OCwgNjg2MCwgNjg2MiwgNjg2NCwgNjg2NiwgNjg2OCwgNjg3MCwgNjg3MiwgNjg3NCwgNjg3NiwgNjg3OCwgCi0gICAgNjg4MCwgNjg4MiwgNjg4NCwgNjg4NiwgNjg4OCwgNjg5MCwgNjg5MiwgNjg5NCwgNjg5NiwgNjg5OCwgNjkwMCwgNjkwMiwgCi0gICAgNjkwNCwgNjkwNiwgNjkwOCwgNjkxMCwgNjkxMiwgNjkxNCwgNjkxNiwgNjkxOCwgNjkyMCwgNjkyMiwgNjkyNCwgNjkyNiwgCi0gICAgNjkyOCwgNjkzMCwgNjkzMiwgNjkzNCwgNjkzNiwgNjkzOCwgNjk0MCwgNjk0MiwgNjk0NCwgNjk0NiwgNjk0OCwgNjk1MCwgCi0gICAgNjk1MiwgNjk1NCwgNjk1NiwgNjk1OCwgNjk2MCwgNjk2MiwgNjk2NCwgNjk2NiwgNjk2OCwgNjk3MCwgNjk3MiwgNjk3NCwgCi0gICAgNjk3NiwgNjk3OCwgNjk4MCwgNjk4MiwgNjk4NCwgNjk4NiwgNjk4OCwgNjk5MCwgNjk5MiwgNjk5NCwgNjk5NiwgNjk5OCwgCi0gICAgNzAwMCwgNzAwMiwgNzAwNCwgNzAwNiwgNzAwOCwgNzAxMCwgNzAxMiwgNzAxNCwgNzAxNiwgNzAxOCwgNzAyMCwgNzAyMiwgCi0gICAgNzAyNCwgNzAyNiwgNzAyOCwgNzAzMCwgNzAzMiwgNzAzNCwgNzAzNiwgNzAzOCwgNzA0MCwgNzA0MiwgNzA0NCwgNzA0NiwgCi0gICAgNzA0OCwgNzA1MCwgNzA1MiwgNzA1NCwgNzA1NiwgNzA1OCwgNzA2MCwgNzA2MiwgNzA2NCwgNzA2NiwgNzA2OCwgNzA3MCwgCi0gICAgNzA3MiwgNzA3NCwgNzA3NiwgNzA3OCwgNzA4MCwgNzA4MiwgNzA4NCwgNzA4NiwgNzA4OCwgNzA5MCwgNzA5MiwgNzA5NCwgCi0gICAgNzA5NiwgNzA5OCwgNzEwMCwgNzEwMiwgNzEwNCwgNzEwNiwgNzEwOCwgNzExMCwgNzExMiwgNzExNCwgNzExNiwgNzExOCwgCi0gICAgNzEyMCwgNzEyMiwgNzEyNCwgNzEyNiwgNzEyOCwgNzEzMCwgNzEzMiwgNzEzNCwgNzEzNiwgNzEzOCwgNzE0MCwgNzE0MiwgCi0gICAgNzE0NCwgNzE0NiwgNzE0OCwgNzE1MCwgNzE1MiwgNzE1NCwgNzE1NiwgNzE1OCwgNzE2MCwgNzE2MiwgNzE2NCwgNzE2NiwgCi0gICAgNzE2OCwgNzE3MCwgNzE3MiwgNzE3NCwgNzE3NiwgNzE3OCwgNzE4MCwgNzE4MiwgNzE4NCwgNzE4NiwgMCwgMCwgNzE4OCwgCi0gICAgMCwgNzE5MCwgMCwgMCwgNzE5MiwgNzE5NCwgNzE5NiwgNzE5OCwgNzIwMCwgNzIwMiwgNzIwNCwgNzIwNiwgNzIwOCwgCi0gICAgNzIxMCwgMCwgNzIxMiwgMCwgNzIxNCwgMCwgMCwgNzIxNiwgNzIxOCwgMCwgMCwgMCwgNzIyMCwgNzIyMiwgNzIyNCwgCi0gICAgNzIyNiwgMCwgMCwgNzIyOCwgNzIzMCwgNzIzMiwgNzIzNCwgNzIzNiwgNzIzOCwgNzI0MCwgNzI0MiwgNzI0NCwgNzI0NiwgCi0gICAgNzI0OCwgNzI1MCwgNzI1MiwgNzI1NCwgNzI1NiwgNzI1OCwgNzI2MCwgNzI2MiwgNzI2NCwgNzI2NiwgNzI2OCwgNzI3MCwgCi0gICAgNzI3MiwgNzI3NCwgNzI3NiwgNzI3OCwgNzI4MCwgNzI4MiwgNzI4NCwgNzI4NiwgNzI4OCwgNzI5MCwgNzI5MiwgNzI5NCwgCi0gICAgNzI5NiwgNzI5OCwgNzMwMCwgNzMwMiwgNzMwNCwgNzMwNiwgNzMwOCwgNzMxMCwgNzMxMiwgNzMxNCwgNzMxNiwgNzMxOCwgCi0gICAgNzMyMCwgNzMyMiwgNzMyNCwgNzMyNiwgNzMyOCwgNzMzMCwgNzMzMiwgNzMzNCwgNzMzNiwgNzMzOCwgNzM0MCwgNzM0MiwgCi0gICAgNzM0NCwgNzM0NiwgNzM0OCwgNzM1MCwgMCwgMCwgNzM1MiwgNzM1NCwgNzM1NiwgNzM1OCwgNzM2MCwgNzM2MiwgNzM2NCwgCi0gICAgNzM2NiwgNzM2OCwgNzM3MCwgNzM3MiwgNzM3NCwgNzM3NiwgNzM3OCwgNzM4MCwgNzM4MiwgNzM4NCwgNzM4NiwgNzM4OCwgCi0gICAgNzM5MCwgNzM5MiwgNzM5NCwgNzM5NiwgNzM5OCwgNzQwMCwgNzQwMiwgNzQwNCwgNzQwNiwgNzQwOCwgNzQxMCwgNzQxMiwgCi0gICAgNzQxNCwgNzQxNiwgNzQxOCwgNzQyMCwgNzQyMiwgNzQyNCwgNzQyNiwgNzQyOCwgNzQzMCwgNzQzMiwgNzQzNCwgNzQzNiwgCi0gICAgNzQzOCwgNzQ0MCwgNzQ0MiwgNzQ0NCwgNzQ0NiwgNzQ0OCwgNzQ1MCwgNzQ1MiwgNzQ1NCwgNzQ1NiwgNzQ1OCwgNzQ2MCwgCi0gICAgNzQ2MiwgNzQ2NCwgNzQ2NiwgNzQ2OCwgNzQ3MCwgNzQ3MiwgNzQ3NCwgNzQ3NiwgNzQ3OCwgNzQ4MCwgNzQ4MiwgNzQ4NCwgCi0gICAgNzQ4NiwgNzQ4OCwgNzQ5MCwgNzQ5MiwgNzQ5NCwgNzQ5NiwgNzQ5OCwgNzUwMCwgNzUwMiwgNzUwNCwgNzUwNiwgNzUwOCwgCi0gICAgNzUxMCwgNzUxMiwgNzUxNCwgNzUxNiwgNzUxOCwgNzUyMCwgNzUyMiwgNzUyNCwgNzUyNiwgNzUyOCwgNzUzMCwgNzUzMiwgCi0gICAgNzUzNCwgNzUzNiwgNzUzOCwgNzU0MCwgNzU0MiwgNzU0NCwgNzU0NiwgNzU0OCwgNzU1MCwgNzU1MiwgNzU1NCwgNzU1NiwgCi0gICAgNzU1OCwgNzU2MCwgNzU2MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzU2NCwgNzU2NywgCi0gICAgNzU3MCwgNzU3MywgNzU3NywgNzU4MSwgNzU4NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzU4NywgCi0gICAgNzU5MCwgNzU5MywgNzU5NiwgNzU5OSwgMCwgMCwgMCwgMCwgMCwgNzYwMiwgMCwgNzYwNSwgNzYwOCwgNzYxMCwgNzYxMiwgCi0gICAgNzYxNCwgNzYxNiwgNzYxOCwgNzYyMCwgNzYyMiwgNzYyNCwgNzYyNiwgNzYyOCwgNzYzMSwgNzYzNCwgNzYzNywgNzY0MCwgCi0gICAgNzY0MywgNzY0NiwgNzY0OSwgNzY1MiwgNzY1NSwgNzY1OCwgNzY2MSwgNzY2NCwgMCwgNzY2NywgNzY3MCwgNzY3MywgCi0gICAgNzY3NiwgNzY3OSwgMCwgNzY4MiwgMCwgNzY4NSwgNzY4OCwgMCwgNzY5MSwgNzY5NCwgMCwgNzY5NywgNzcwMCwgNzcwMywgCi0gICAgNzcwNiwgNzcwOSwgNzcxMiwgNzcxNSwgNzcxOCwgNzcyMSwgNzcyNCwgNzcyNywgNzcyOSwgNzczMSwgNzczMywgNzczNSwgCi0gICAgNzczNywgNzczOSwgNzc0MSwgNzc0MywgNzc0NSwgNzc0NywgNzc0OSwgNzc1MSwgNzc1MywgNzc1NSwgNzc1NywgNzc1OSwgCi0gICAgNzc2MSwgNzc2MywgNzc2NSwgNzc2NywgNzc2OSwgNzc3MSwgNzc3MywgNzc3NSwgNzc3NywgNzc3OSwgNzc4MSwgNzc4MywgCi0gICAgNzc4NSwgNzc4NywgNzc4OSwgNzc5MSwgNzc5MywgNzc5NSwgNzc5NywgNzc5OSwgNzgwMSwgNzgwMywgNzgwNSwgNzgwNywgCi0gICAgNzgwOSwgNzgxMSwgNzgxMywgNzgxNSwgNzgxNywgNzgxOSwgNzgyMSwgNzgyMywgNzgyNSwgNzgyNywgNzgyOSwgNzgzMSwgCi0gICAgNzgzMywgNzgzNSwgNzgzNywgNzgzOSwgNzg0MSwgNzg0MywgNzg0NSwgNzg0NywgNzg0OSwgNzg1MSwgNzg1MywgNzg1NSwgCi0gICAgNzg1NywgNzg1OSwgNzg2MSwgNzg2MywgNzg2NSwgNzg2NywgNzg2OSwgNzg3MSwgNzg3MywgNzg3NSwgNzg3NywgNzg3OSwgCi0gICAgNzg4MSwgNzg4MywgNzg4NSwgNzg4NywgNzg4OSwgNzg5MSwgNzg5MywgNzg5NSwgNzg5NywgNzg5OSwgNzkwMSwgNzkwMywgCi0gICAgNzkwNSwgNzkwNywgNzkwOSwgNzkxMSwgNzkxMywgNzkxNSwgNzkxNywgNzkxOSwgNzkyMSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNzU3MiwgNzU3NSwgNzU3OCwgNzU4MSwgNzU4NSwgNzU4OSwgNzU5MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgNzU5NSwgNzU5OCwgNzYwMSwgNzYwNCwgNzYwNywgMCwgMCwgMCwgMCwgMCwgNzYxMCwgMCwgNzYxMywgNzYxNiwgCisgICAgNzYxOCwgNzYyMCwgNzYyMiwgNzYyNCwgNzYyNiwgNzYyOCwgNzYzMCwgNzYzMiwgNzYzNCwgNzYzNiwgNzYzOSwgNzY0MiwgCisgICAgNzY0NSwgNzY0OCwgNzY1MSwgNzY1NCwgNzY1NywgNzY2MCwgNzY2MywgNzY2NiwgNzY2OSwgNzY3MiwgMCwgNzY3NSwgCisgICAgNzY3OCwgNzY4MSwgNzY4NCwgNzY4NywgMCwgNzY5MCwgMCwgNzY5MywgNzY5NiwgMCwgNzY5OSwgNzcwMiwgMCwgNzcwNSwgCisgICAgNzcwOCwgNzcxMSwgNzcxNCwgNzcxNywgNzcyMCwgNzcyMywgNzcyNiwgNzcyOSwgNzczMiwgNzczNSwgNzczNywgNzczOSwgCisgICAgNzc0MSwgNzc0MywgNzc0NSwgNzc0NywgNzc0OSwgNzc1MSwgNzc1MywgNzc1NSwgNzc1NywgNzc1OSwgNzc2MSwgNzc2MywgCisgICAgNzc2NSwgNzc2NywgNzc2OSwgNzc3MSwgNzc3MywgNzc3NSwgNzc3NywgNzc3OSwgNzc4MSwgNzc4MywgNzc4NSwgNzc4NywgCisgICAgNzc4OSwgNzc5MSwgNzc5MywgNzc5NSwgNzc5NywgNzc5OSwgNzgwMSwgNzgwMywgNzgwNSwgNzgwNywgNzgwOSwgNzgxMSwgCisgICAgNzgxMywgNzgxNSwgNzgxNywgNzgxOSwgNzgyMSwgNzgyMywgNzgyNSwgNzgyNywgNzgyOSwgNzgzMSwgNzgzMywgNzgzNSwgCisgICAgNzgzNywgNzgzOSwgNzg0MSwgNzg0MywgNzg0NSwgNzg0NywgNzg0OSwgNzg1MSwgNzg1MywgNzg1NSwgNzg1NywgNzg1OSwgCisgICAgNzg2MSwgNzg2MywgNzg2NSwgNzg2NywgNzg2OSwgNzg3MSwgNzg3MywgNzg3NSwgNzg3NywgNzg3OSwgNzg4MSwgNzg4MywgCisgICAgNzg4NSwgNzg4NywgNzg4OSwgNzg5MSwgNzg5MywgNzg5NSwgNzg5NywgNzg5OSwgNzkwMSwgNzkwMywgNzkwNSwgNzkwNywgCisgICAgNzkwOSwgNzkxMSwgNzkxMywgNzkxNSwgNzkxNywgNzkxOSwgNzkyMSwgNzkyMywgNzkyNSwgNzkyNywgNzkyOSwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNzkyMywgNzkyNSwgNzkyNywgNzkyOSwgNzkzMSwgNzkzMywgNzkzNSwgNzkzNywgNzkzOSwgNzk0MSwgCi0gICAgNzk0MywgNzk0NSwgNzk0NywgNzk0OSwgNzk1MSwgNzk1MywgNzk1NSwgNzk1NywgNzk1OSwgNzk2MSwgNzk2MywgNzk2NSwgCi0gICAgNzk2NywgNzk2OSwgNzk3MiwgNzk3NSwgNzk3OCwgNzk4MSwgNzk4NCwgNzk4NywgNzk5MCwgNzk5MywgNzk5NiwgNzk5OSwgCi0gICAgODAwMiwgODAwNSwgODAwOCwgODAxMSwgODAxNCwgODAxNywgODAyMCwgODAyMywgODAyNSwgODAyNywgODAyOSwgODAzMSwgCi0gICAgODAzNCwgODAzNywgODA0MCwgODA0MywgODA0NiwgODA0OSwgODA1MiwgODA1NSwgODA1OCwgODA2MSwgODA2NCwgODA2NywgCi0gICAgODA3MCwgODA3MywgODA3NiwgODA3OSwgODA4MiwgODA4NSwgODA4OCwgODA5MSwgODA5NCwgODA5NywgODEwMCwgODEwMywgCi0gICAgODEwNiwgODEwOSwgODExMiwgODExNSwgODExOCwgODEyMSwgODEyNCwgODEyNywgODEzMCwgODEzMywgODEzNiwgODEzOSwgCi0gICAgODE0MiwgODE0NSwgODE0OCwgODE1MSwgODE1NCwgODE1NywgODE2MCwgODE2MywgODE2NiwgODE2OSwgODE3MiwgODE3NSwgCi0gICAgODE3OCwgODE4MSwgODE4NCwgODE4NywgODE5MCwgODE5MywgODE5NiwgODE5OSwgODIwMiwgODIwNSwgODIwOCwgODIxMSwgCi0gICAgODIxNCwgODIxNywgODIyMCwgODIyMywgODIyNiwgODIyOSwgODIzMiwgODIzNSwgODIzOCwgODI0MSwgODI0NCwgODI0NywgCi0gICAgODI1MCwgODI1MywgODI1NiwgODI1OSwgODI2MiwgODI2NSwgODI2OCwgODI3MSwgODI3NCwgODI3NywgODI4MCwgODI4MywgCi0gICAgODI4NiwgODI4OSwgODI5MiwgODI5NSwgODI5OCwgODMwMSwgODMwNCwgODMwNywgODMxMCwgODMxMywgODMxNywgODMyMSwgCi0gICAgODMyNSwgODMyOSwgODMzMywgODMzNywgODM0MCwgODM0MywgODM0NiwgODM0OSwgODM1MiwgODM1NSwgODM1OCwgODM2MSwgCi0gICAgODM2NCwgODM2NywgODM3MCwgODM3MywgODM3NiwgODM3OSwgODM4MiwgODM4NSwgODM4OCwgODM5MSwgODM5NCwgODM5NywgCi0gICAgODQwMCwgODQwMywgODQwNiwgODQwOSwgODQxMiwgODQxNSwgODQxOCwgODQyMSwgODQyNCwgODQyNywgODQzMCwgODQzMywgCi0gICAgODQzNiwgODQzOSwgODQ0MiwgODQ0NSwgODQ0OCwgODQ1MSwgODQ1NCwgODQ1NywgODQ2MCwgODQ2MywgODQ2NiwgODQ2OSwgCi0gICAgODQ3MiwgODQ3NSwgODQ3OCwgODQ4MSwgODQ4NCwgODQ4NywgODQ5MCwgODQ5MywgODQ5NiwgODQ5OSwgODUwMiwgODUwNSwgCi0gICAgODUwOCwgODUxMSwgODUxNCwgODUxNywgODUyMCwgODUyMywgODUyNiwgODUyOSwgODUzMiwgODUzNSwgODUzOCwgODU0MSwgCi0gICAgODU0NCwgODU0NywgODU1MCwgODU1MywgODU1NiwgODU1OSwgODU2MiwgODU2NSwgODU2OCwgODU3MSwgODU3NCwgODU3NywgCi0gICAgODU4MCwgODU4MywgODU4NiwgODU4OSwgODU5MiwgODU5NSwgODU5OCwgODYwMSwgODYwNCwgODYwNywgODYxMCwgODYxMywgCi0gICAgODYxNiwgODYxOSwgODYyMiwgODYyNSwgODYyOCwgODYzMSwgODYzNCwgODYzNywgODY0MCwgODY0MywgODY0NiwgODY0OSwgCi0gICAgODY1MiwgODY1NSwgODY1OCwgODY2MSwgODY2NCwgODY2NywgODY3MCwgODY3MywgODY3NiwgODY3OSwgODY4MiwgODY4NSwgCi0gICAgODY4OCwgODY5MSwgODY5NCwgODY5NywgODcwMCwgODcwMywgODcwNiwgODcwOSwgODcxMiwgODcxNSwgODcxOCwgODcyMSwgCi0gICAgODcyNCwgODcyNywgODczMCwgODczMywgODczNiwgODczOSwgODc0MiwgODc0NSwgODc0OCwgODc1MSwgODc1NCwgODc1NywgCi0gICAgODc2MCwgODc2MywgODc2NywgODc3MSwgODc3NSwgODc3OCwgODc4MSwgODc4NCwgODc4NywgODc5MCwgODc5MywgODc5NiwgCi0gICAgODc5OSwgODgwMiwgODgwNSwgODgwOCwgODgxMSwgODgxNCwgODgxNywgODgyMCwgODgyMywgODgyNiwgODgyOSwgODgzMiwgCi0gICAgODgzNSwgODgzOCwgODg0MSwgODg0NCwgODg0NywgODg1MCwgODg1MywgODg1NiwgODg1OSwgODg2MiwgODg2NSwgODg2OCwgCi0gICAgODg3MSwgODg3NCwgODg3NywgODg4MCwgODg4MywgODg4NiwgODg4OSwgODg5MiwgODg5NSwgODg5OCwgODkwMSwgODkwNCwgCi0gICAgODkwNywgODkxMCwgODkxMywgODkxNiwgODkxOSwgODkyMiwgODkyNSwgODkyOCwgODkzMSwgODkzNCwgODkzNywgODk0MCwgCi0gICAgODk0MywgODk0NiwgODk0OSwgODk1MiwgODk1NSwgODk1OCwgODk2MSwgODk2NCwgODk2NywgODk3MCwgODk3MywgODk3NiwgCi0gICAgODk3OSwgODk4MiwgODk4NSwgODk4OCwgODk5MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgODk5NCwgODk5OCwgOTAwMiwgOTAwNiwgOTAxMCwgOTAxNCwgOTAxOCwgOTAyMiwgOTAyNiwgOTAzMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzkzMSwgNzkzMywgNzkzNSwgNzkzNywgNzkzOSwgNzk0MSwgNzk0MywgNzk0NSwgCisgICAgNzk0NywgNzk0OSwgNzk1MSwgNzk1MywgNzk1NSwgNzk1NywgNzk1OSwgNzk2MSwgNzk2MywgNzk2NSwgNzk2NywgNzk2OSwgCisgICAgNzk3MSwgNzk3MywgNzk3NSwgNzk3NywgNzk4MCwgNzk4MywgNzk4NiwgNzk4OSwgNzk5MiwgNzk5NSwgNzk5OCwgODAwMSwgCisgICAgODAwNCwgODAwNywgODAxMCwgODAxMywgODAxNiwgODAxOSwgODAyMiwgODAyNSwgODAyOCwgODAzMSwgODAzMywgODAzNSwgCisgICAgODAzNywgODAzOSwgODA0MiwgODA0NSwgODA0OCwgODA1MSwgODA1NCwgODA1NywgODA2MCwgODA2MywgODA2NiwgODA2OSwgCisgICAgODA3MiwgODA3NSwgODA3OCwgODA4MSwgODA4NCwgODA4NywgODA5MCwgODA5MywgODA5NiwgODA5OSwgODEwMiwgODEwNSwgCisgICAgODEwOCwgODExMSwgODExNCwgODExNywgODEyMCwgODEyMywgODEyNiwgODEyOSwgODEzMiwgODEzNSwgODEzOCwgODE0MSwgCisgICAgODE0NCwgODE0NywgODE1MCwgODE1MywgODE1NiwgODE1OSwgODE2MiwgODE2NSwgODE2OCwgODE3MSwgODE3NCwgODE3NywgCisgICAgODE4MCwgODE4MywgODE4NiwgODE4OSwgODE5MiwgODE5NSwgODE5OCwgODIwMSwgODIwNCwgODIwNywgODIxMCwgODIxMywgCisgICAgODIxNiwgODIxOSwgODIyMiwgODIyNSwgODIyOCwgODIzMSwgODIzNCwgODIzNywgODI0MCwgODI0MywgODI0NiwgODI0OSwgCisgICAgODI1MiwgODI1NSwgODI1OCwgODI2MSwgODI2NCwgODI2NywgODI3MCwgODI3MywgODI3NiwgODI3OSwgODI4MiwgODI4NSwgCisgICAgODI4OCwgODI5MSwgODI5NCwgODI5NywgODMwMCwgODMwMywgODMwNiwgODMwOSwgODMxMiwgODMxNSwgODMxOCwgODMyMSwgCisgICAgODMyNSwgODMyOSwgODMzMywgODMzNywgODM0MSwgODM0NSwgODM0OCwgODM1MSwgODM1NCwgODM1NywgODM2MCwgODM2MywgCisgICAgODM2NiwgODM2OSwgODM3MiwgODM3NSwgODM3OCwgODM4MSwgODM4NCwgODM4NywgODM5MCwgODM5MywgODM5NiwgODM5OSwgCisgICAgODQwMiwgODQwNSwgODQwOCwgODQxMSwgODQxNCwgODQxNywgODQyMCwgODQyMywgODQyNiwgODQyOSwgODQzMiwgODQzNSwgCisgICAgODQzOCwgODQ0MSwgODQ0NCwgODQ0NywgODQ1MCwgODQ1MywgODQ1NiwgODQ1OSwgODQ2MiwgODQ2NSwgODQ2OCwgODQ3MSwgCisgICAgODQ3NCwgODQ3NywgODQ4MCwgODQ4MywgODQ4NiwgODQ4OSwgODQ5MiwgODQ5NSwgODQ5OCwgODUwMSwgODUwNCwgODUwNywgCisgICAgODUxMCwgODUxMywgODUxNiwgODUxOSwgODUyMiwgODUyNSwgODUyOCwgODUzMSwgODUzNCwgODUzNywgODU0MCwgODU0MywgCisgICAgODU0NiwgODU0OSwgODU1MiwgODU1NSwgODU1OCwgODU2MSwgODU2NCwgODU2NywgODU3MCwgODU3MywgODU3NiwgODU3OSwgCisgICAgODU4MiwgODU4NSwgODU4OCwgODU5MSwgODU5NCwgODU5NywgODYwMCwgODYwMywgODYwNiwgODYwOSwgODYxMiwgODYxNSwgCisgICAgODYxOCwgODYyMSwgODYyNCwgODYyNywgODYzMCwgODYzMywgODYzNiwgODYzOSwgODY0MiwgODY0NSwgODY0OCwgODY1MSwgCisgICAgODY1NCwgODY1NywgODY2MCwgODY2MywgODY2NiwgODY2OSwgODY3MiwgODY3NSwgODY3OCwgODY4MSwgODY4NCwgODY4NywgCisgICAgODY5MCwgODY5MywgODY5NiwgODY5OSwgODcwMiwgODcwNSwgODcwOCwgODcxMSwgODcxNCwgODcxNywgODcyMCwgODcyMywgCisgICAgODcyNiwgODcyOSwgODczMiwgODczNSwgODczOCwgODc0MSwgODc0NCwgODc0NywgODc1MCwgODc1MywgODc1NiwgODc1OSwgCisgICAgODc2MiwgODc2NSwgODc2OCwgODc3MSwgODc3NSwgODc3OSwgODc4MywgODc4NiwgODc4OSwgODc5MiwgODc5NSwgODc5OCwgCisgICAgODgwMSwgODgwNCwgODgwNywgODgxMCwgODgxMywgODgxNiwgODgxOSwgODgyMiwgODgyNSwgODgyOCwgODgzMSwgODgzNCwgCisgICAgODgzNywgODg0MCwgODg0MywgODg0NiwgODg0OSwgODg1MiwgODg1NSwgODg1OCwgODg2MSwgODg2NCwgODg2NywgODg3MCwgCisgICAgODg3MywgODg3NiwgODg3OSwgODg4MiwgODg4NSwgODg4OCwgODg5MSwgODg5NCwgODg5NywgODkwMCwgODkwMywgODkwNiwgCisgICAgODkwOSwgODkxMiwgODkxNSwgODkxOCwgODkyMSwgODkyNCwgODkyNywgODkzMCwgODkzMywgODkzNiwgODkzOSwgODk0MiwgCisgICAgODk0NSwgODk0OCwgODk1MSwgODk1NCwgODk1NywgODk2MCwgODk2MywgODk2NiwgODk2OSwgODk3MiwgODk3NSwgODk3OCwgCisgICAgODk4MSwgODk4NCwgODk4NywgODk5MCwgODk5MywgODk5NiwgODk5OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTAwMiwgOTAwNiwgOTAxMCwgOTAxNCwgOTAxOCwgOTAyMiwgOTAyNiwgOTAzMCwgCiAgICAgOTAzNCwgOTAzOCwgOTA0MiwgOTA0NiwgOTA1MCwgOTA1NCwgOTA1OCwgOTA2MiwgOTA2NiwgOTA3MCwgOTA3NCwgOTA3OCwgCiAgICAgOTA4MiwgOTA4NiwgOTA5MCwgOTA5NCwgOTA5OCwgOTEwMiwgOTEwNiwgOTExMCwgOTExNCwgOTExOCwgOTEyMiwgOTEyNiwgCiAgICAgOTEzMCwgOTEzNCwgOTEzOCwgOTE0MiwgOTE0NiwgOTE1MCwgOTE1NCwgOTE1OCwgOTE2MiwgOTE2NiwgOTE3MCwgOTE3NCwgCiAgICAgOTE3OCwgOTE4MiwgOTE4NiwgOTE5MCwgOTE5NCwgOTE5OCwgOTIwMiwgOTIwNiwgOTIxMCwgOTIxNCwgOTIxOCwgOTIyMiwgCi0gICAgOTIyNiwgOTIzMCwgOTIzNCwgOTIzOCwgOTI0MiwgOTI0NiwgMCwgMCwgOTI1MCwgOTI1NCwgOTI1OCwgOTI2MiwgOTI2NiwgCisgICAgOTIyNiwgOTIzMCwgOTIzNCwgOTIzOCwgOTI0MiwgOTI0NiwgOTI1MCwgOTI1NCwgMCwgMCwgOTI1OCwgOTI2MiwgOTI2NiwgCiAgICAgOTI3MCwgOTI3NCwgOTI3OCwgOTI4MiwgOTI4NiwgOTI5MCwgOTI5NCwgOTI5OCwgOTMwMiwgOTMwNiwgOTMxMCwgOTMxNCwgCiAgICAgOTMxOCwgOTMyMiwgOTMyNiwgOTMzMCwgOTMzNCwgOTMzOCwgOTM0MiwgOTM0NiwgOTM1MCwgOTM1NCwgOTM1OCwgOTM2MiwgCiAgICAgOTM2NiwgOTM3MCwgOTM3NCwgOTM3OCwgOTM4MiwgOTM4NiwgOTM5MCwgOTM5NCwgOTM5OCwgOTQwMiwgOTQwNiwgOTQxMCwgCiAgICAgOTQxNCwgOTQxOCwgOTQyMiwgOTQyNiwgOTQzMCwgOTQzNCwgOTQzOCwgOTQ0MiwgOTQ0NiwgOTQ1MCwgOTQ1NCwgOTQ1OCwgCi0gICAgOTQ2MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTQ2NiwgOTQ3MCwgOTQ3NCwgCi0gICAgOTQ3OSwgOTQ4NCwgOTQ4OSwgOTQ5NCwgOTQ5OSwgOTUwNCwgOTUwOSwgOTUxMywgOTUzMiwgOTU0MSwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTU0NiwgOTU0OCwgOTU1MCwgOTU1MiwgCi0gICAgOTU1NCwgOTU1NiwgOTU1OCwgOTU2MCwgOTU2MiwgOTU2NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTU2NiwgOTU2OCwgOTU3MCwgOTU3MiwgOTU3NCwgOTU3NiwgOTU3OCwgCi0gICAgOTU4MCwgOTU4MiwgOTU4NCwgOTU4NiwgOTU4OCwgOTU5MCwgOTU5MiwgOTU5NCwgOTU5NiwgOTU5OCwgOTYwMCwgOTYwMiwgCi0gICAgOTYwNCwgOTYwNiwgMCwgMCwgOTYwOCwgOTYxMCwgOTYxMiwgOTYxNCwgOTYxNiwgOTYxOCwgOTYyMCwgOTYyMiwgOTYyNCwgCi0gICAgOTYyNiwgOTYyOCwgOTYzMCwgMCwgOTYzMiwgOTYzNCwgOTYzNiwgOTYzOCwgOTY0MCwgOTY0MiwgOTY0NCwgOTY0NiwgCi0gICAgOTY0OCwgOTY1MCwgOTY1MiwgOTY1NCwgOTY1NiwgOTY1OCwgOTY2MCwgOTY2MiwgOTY2NCwgOTY2NiwgOTY2OCwgMCwgCi0gICAgOTY3MCwgOTY3MiwgOTY3NCwgOTY3NiwgMCwgMCwgMCwgMCwgOTY3OCwgOTY4MSwgOTY4NCwgMCwgOTY4NywgMCwgOTY5MCwgCi0gICAgOTY5MywgOTY5NiwgOTY5OSwgOTcwMiwgOTcwNSwgOTcwOCwgOTcxMSwgOTcxNCwgOTcxNywgOTcyMCwgOTcyMiwgOTcyNCwgCi0gICAgOTcyNiwgOTcyOCwgOTczMCwgOTczMiwgOTczNCwgOTczNiwgOTczOCwgOTc0MCwgOTc0MiwgOTc0NCwgOTc0NiwgOTc0OCwgCi0gICAgOTc1MCwgOTc1MiwgOTc1NCwgOTc1NiwgOTc1OCwgOTc2MCwgOTc2MiwgOTc2NCwgOTc2NiwgOTc2OCwgOTc3MCwgOTc3MiwgCi0gICAgOTc3NCwgOTc3NiwgOTc3OCwgOTc4MCwgOTc4MiwgOTc4NCwgOTc4NiwgOTc4OCwgOTc5MCwgOTc5MiwgOTc5NCwgOTc5NiwgCi0gICAgOTc5OCwgOTgwMCwgOTgwMiwgOTgwNCwgOTgwNiwgOTgwOCwgOTgxMCwgOTgxMiwgOTgxNCwgOTgxNiwgOTgxOCwgOTgyMCwgCi0gICAgOTgyMiwgOTgyNCwgOTgyNiwgOTgyOCwgOTgzMCwgOTgzMiwgOTgzNCwgOTgzNiwgOTgzOCwgOTg0MCwgOTg0MiwgOTg0NCwgCi0gICAgOTg0NiwgOTg0OCwgOTg1MCwgOTg1MiwgOTg1NCwgOTg1NiwgOTg1OCwgOTg2MCwgOTg2MiwgOTg2NCwgOTg2NiwgOTg2OCwgCi0gICAgOTg3MCwgOTg3MiwgOTg3NCwgOTg3NiwgOTg3OCwgOTg4MCwgOTg4MiwgOTg4NCwgOTg4NiwgOTg4OCwgOTg5MCwgOTg5MiwgCi0gICAgOTg5NCwgOTg5NiwgOTg5OCwgOTkwMCwgOTkwMiwgOTkwNCwgOTkwNiwgOTkwOCwgOTkxMCwgOTkxMiwgOTkxNCwgOTkxNiwgCi0gICAgOTkxOCwgOTkyMCwgOTkyMiwgOTkyNCwgOTkyNiwgOTkyOCwgOTkzMCwgOTkzMiwgOTkzNCwgOTkzNiwgOTkzOCwgOTk0MCwgCi0gICAgOTk0MiwgOTk0NCwgOTk0NiwgOTk0OCwgOTk1MCwgOTk1MiwgOTk1NCwgOTk1NywgOTk2MCwgOTk2MywgOTk2NiwgOTk2OSwgCi0gICAgOTk3MiwgOTk3NSwgMCwgMCwgMCwgMCwgOTk3OCwgOTk4MCwgOTk4MiwgOTk4NCwgOTk4NiwgOTk4OCwgOTk5MCwgOTk5MiwgCi0gICAgOTk5NCwgOTk5NiwgOTk5OCwgMTAwMDAsIDEwMDAyLCAxMDAwNCwgMTAwMDYsIDEwMDA4LCAxMDAxMCwgMTAwMTIsIDEwMDE0LCAKLSAgICAxMDAxNiwgMTAwMTgsIDEwMDIwLCAxMDAyMiwgMTAwMjQsIDEwMDI2LCAxMDAyOCwgMTAwMzAsIDEwMDMyLCAxMDAzNCwgCi0gICAgMTAwMzYsIDEwMDM4LCAxMDA0MCwgMTAwNDIsIDEwMDQ0LCAxMDA0NiwgMTAwNDgsIDEwMDUwLCAxMDA1MiwgMTAwNTQsIAotICAgIDEwMDU2LCAxMDA1OCwgMTAwNjAsIDEwMDYyLCAxMDA2NCwgMTAwNjYsIDEwMDY4LCAxMDA3MCwgMTAwNzIsIDEwMDc0LCAKLSAgICAxMDA3NiwgMTAwNzgsIDEwMDgwLCAxMDA4MiwgMTAwODQsIDEwMDg2LCAxMDA4OCwgMTAwOTAsIDEwMDkyLCAxMDA5NCwgCi0gICAgMTAwOTYsIDEwMDk4LCAxMDEwMCwgMTAxMDIsIDEwMTA0LCAxMDEwNiwgMTAxMDgsIDEwMTEwLCAxMDExMiwgMTAxMTQsIAotICAgIDEwMTE2LCAxMDExOCwgMTAxMjAsIDEwMTIyLCAxMDEyNCwgMTAxMjYsIDEwMTI4LCAxMDEzMCwgMTAxMzIsIDEwMTM0LCAKLSAgICAxMDEzNiwgMTAxMzgsIDEwMTQwLCAxMDE0MiwgMTAxNDQsIDEwMTQ2LCAxMDE0OCwgMTAxNTAsIDEwMTUyLCAxMDE1NCwgCi0gICAgMTAxNTYsIDEwMTU4LCAxMDE2MCwgMTAxNjIsIDEwMTY0LCAxMDE2NiwgMTAxNjgsIDEwMTcwLCAxMDE3MiwgMTAxNzQsIAotICAgIDEwMTc2LCAxMDE3OCwgMTAxODAsIDEwMTgyLCAxMDE4NCwgMTAxODYsIDEwMTg4LCAxMDE5MCwgMTAxOTIsIDEwMTk0LCAKLSAgICAxMDE5NiwgMTAxOTgsIDEwMjAwLCAxMDIwMiwgMTAyMDQsIDEwMjA2LCAxMDIwOCwgMTAyMTAsIDEwMjEyLCAxMDIxNCwgCi0gICAgMTAyMTYsIDEwMjE4LCAxMDIyMCwgMTAyMjIsIDEwMjI0LCAxMDIyNiwgMTAyMjgsIDEwMjMwLCAxMDIzMiwgMTAyMzQsIAotICAgIDEwMjM2LCAxMDIzOCwgMTAyNDAsIDEwMjQyLCAxMDI0NCwgMTAyNDYsIDEwMjQ4LCAxMDI1MCwgMTAyNTIsIDEwMjU0LCAKLSAgICAxMDI1NiwgMTAyNTgsIDEwMjYwLCAxMDI2MiwgMTAyNjQsIDEwMjY2LCAxMDI2OCwgMTAyNzAsIDEwMjcyLCAxMDI3NCwgCi0gICAgMTAyNzYsIDEwMjc4LCAxMDI4MCwgMTAyODIsIDEwMjg0LCAxMDI4NiwgMTAyODgsIDEwMjkwLCAxMDI5MiwgMTAyOTQsIAotICAgIDEwMjk2LCAxMDI5OCwgMTAzMDAsIDEwMzAyLCAxMDMwNCwgMTAzMDYsIDEwMzA4LCAxMDMxMCwgMTAzMTIsIDEwMzE0LCAKLSAgICAxMDMxNiwgMTAzMTgsIDEwMzIwLCAxMDMyMiwgMTAzMjQsIDEwMzI2LCAxMDMyOCwgMTAzMzAsIDEwMzMyLCAxMDMzNCwgCi0gICAgMTAzMzYsIDEwMzM4LCAxMDM0MCwgMTAzNDIsIDEwMzQ0LCAxMDM0NiwgMTAzNDgsIDEwMzUwLCAxMDM1MiwgMTAzNTQsIAotICAgIDEwMzU2LCAwLCAwLCAwLCAxMDM1OCwgMTAzNjAsIDEwMzYyLCAxMDM2NCwgMTAzNjYsIDEwMzY4LCAwLCAwLCAxMDM3MCwgCi0gICAgMTAzNzIsIDEwMzc0LCAxMDM3NiwgMTAzNzgsIDEwMzgwLCAwLCAwLCAxMDM4MiwgMTAzODQsIDEwMzg2LCAxMDM4OCwgCi0gICAgMTAzOTAsIDEwMzkyLCAwLCAwLCAxMDM5NCwgMTAzOTYsIDEwMzk4LCAwLCAwLCAwLCAxMDQwMCwgMTA0MDIsIDEwNDA0LCAKLSAgICAxMDQwNiwgMTA0MDgsIDEwNDEwLCAxMDQxMiwgMCwgMTA0MTQsIDEwNDE2LCAxMDQxOCwgMTA0MjAsIDEwNDIyLCAxMDQyNCwgCi0gICAgMTA0MjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDk0NjIsIDk0NjYsIDk0NzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDk0NzQsIAorICAgIDk0NzgsIDk0ODIsIDk0ODcsIDk0OTIsIDk0OTcsIDk1MDIsIDk1MDcsIDk1MTIsIDk1MTcsIDk1MjEsIDk1NDAsIDk1NDksIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDk1NTQsIDk1NTYsIAorICAgIDk1NTgsIDk1NjAsIDk1NjIsIDk1NjQsIDk1NjYsIDk1NjgsIDk1NzAsIDk1NzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDk1NzQsIDk1NzYsIDk1NzgsIDk1ODAsIDk1ODIsIAorICAgIDk1ODQsIDk1ODYsIDk1ODgsIDk1OTAsIDk1OTIsIDk1OTQsIDk1OTYsIDk1OTgsIDk2MDAsIDk2MDIsIDk2MDQsIDk2MDYsIAorICAgIDk2MDgsIDk2MTAsIDk2MTIsIDk2MTQsIDAsIDAsIDk2MTYsIDk2MTgsIDk2MjAsIDk2MjIsIDk2MjQsIDk2MjYsIDk2MjgsIAorICAgIDk2MzAsIDk2MzIsIDk2MzQsIDk2MzYsIDk2MzgsIDAsIDk2NDAsIDk2NDIsIDk2NDQsIDk2NDYsIDk2NDgsIDk2NTAsIAorICAgIDk2NTIsIDk2NTQsIDk2NTYsIDk2NTgsIDk2NjAsIDk2NjIsIDk2NjQsIDk2NjYsIDk2NjgsIDk2NzAsIDk2NzIsIDk2NzQsIAorICAgIDk2NzYsIDAsIDk2NzgsIDk2ODAsIDk2ODIsIDk2ODQsIDAsIDAsIDAsIDAsIDk2ODYsIDk2ODksIDk2OTIsIDAsIDk2OTUsIAorICAgIDAsIDk2OTgsIDk3MDEsIDk3MDQsIDk3MDcsIDk3MTAsIDk3MTMsIDk3MTYsIDk3MTksIDk3MjIsIDk3MjUsIDk3MjgsIAorICAgIDk3MzAsIDk3MzIsIDk3MzQsIDk3MzYsIDk3MzgsIDk3NDAsIDk3NDIsIDk3NDQsIDk3NDYsIDk3NDgsIDk3NTAsIDk3NTIsIAorICAgIDk3NTQsIDk3NTYsIDk3NTgsIDk3NjAsIDk3NjIsIDk3NjQsIDk3NjYsIDk3NjgsIDk3NzAsIDk3NzIsIDk3NzQsIDk3NzYsIAorICAgIDk3NzgsIDk3ODAsIDk3ODIsIDk3ODQsIDk3ODYsIDk3ODgsIDk3OTAsIDk3OTIsIDk3OTQsIDk3OTYsIDk3OTgsIDk4MDAsIAorICAgIDk4MDIsIDk4MDQsIDk4MDYsIDk4MDgsIDk4MTAsIDk4MTIsIDk4MTQsIDk4MTYsIDk4MTgsIDk4MjAsIDk4MjIsIDk4MjQsIAorICAgIDk4MjYsIDk4MjgsIDk4MzAsIDk4MzIsIDk4MzQsIDk4MzYsIDk4MzgsIDk4NDAsIDk4NDIsIDk4NDQsIDk4NDYsIDk4NDgsIAorICAgIDk4NTAsIDk4NTIsIDk4NTQsIDk4NTYsIDk4NTgsIDk4NjAsIDk4NjIsIDk4NjQsIDk4NjYsIDk4NjgsIDk4NzAsIDk4NzIsIAorICAgIDk4NzQsIDk4NzYsIDk4NzgsIDk4ODAsIDk4ODIsIDk4ODQsIDk4ODYsIDk4ODgsIDk4OTAsIDk4OTIsIDk4OTQsIDk4OTYsIAorICAgIDk4OTgsIDk5MDAsIDk5MDIsIDk5MDQsIDk5MDYsIDk5MDgsIDk5MTAsIDk5MTIsIDk5MTQsIDk5MTYsIDk5MTgsIDk5MjAsIAorICAgIDk5MjIsIDk5MjQsIDk5MjYsIDk5MjgsIDk5MzAsIDk5MzIsIDk5MzQsIDk5MzYsIDk5MzgsIDk5NDAsIDk5NDIsIDk5NDQsIAorICAgIDk5NDYsIDk5NDgsIDk5NTAsIDk5NTIsIDk5NTQsIDk5NTYsIDk5NTgsIDk5NjAsIDk5NjIsIDk5NjUsIDk5NjgsIDk5NzEsIAorICAgIDk5NzQsIDk5NzcsIDk5ODAsIDk5ODMsIDAsIDAsIDAsIDAsIDk5ODYsIDk5ODgsIDk5OTAsIDk5OTIsIDk5OTQsIDk5OTYsIAorICAgIDk5OTgsIDEwMDAwLCAxMDAwMiwgMTAwMDQsIDEwMDA2LCAxMDAwOCwgMTAwMTAsIDEwMDEyLCAxMDAxNCwgMTAwMTYsIAorICAgIDEwMDE4LCAxMDAyMCwgMTAwMjIsIDEwMDI0LCAxMDAyNiwgMTAwMjgsIDEwMDMwLCAxMDAzMiwgMTAwMzQsIDEwMDM2LCAKKyAgICAxMDAzOCwgMTAwNDAsIDEwMDQyLCAxMDA0NCwgMTAwNDYsIDEwMDQ4LCAxMDA1MCwgMTAwNTIsIDEwMDU0LCAxMDA1NiwgCisgICAgMTAwNTgsIDEwMDYwLCAxMDA2MiwgMTAwNjQsIDEwMDY2LCAxMDA2OCwgMTAwNzAsIDEwMDcyLCAxMDA3NCwgMTAwNzYsIAorICAgIDEwMDc4LCAxMDA4MCwgMTAwODIsIDEwMDg0LCAxMDA4NiwgMTAwODgsIDEwMDkwLCAxMDA5MiwgMTAwOTQsIDEwMDk2LCAKKyAgICAxMDA5OCwgMTAxMDAsIDEwMTAyLCAxMDEwNCwgMTAxMDYsIDEwMTA4LCAxMDExMCwgMTAxMTIsIDEwMTE0LCAxMDExNiwgCisgICAgMTAxMTgsIDEwMTIwLCAxMDEyMiwgMTAxMjQsIDEwMTI2LCAxMDEyOCwgMTAxMzAsIDEwMTMyLCAxMDEzNCwgMTAxMzYsIAorICAgIDEwMTM4LCAxMDE0MCwgMTAxNDIsIDEwMTQ0LCAxMDE0NiwgMTAxNDgsIDEwMTUwLCAxMDE1MiwgMTAxNTQsIDEwMTU2LCAKKyAgICAxMDE1OCwgMTAxNjAsIDEwMTYyLCAxMDE2NCwgMTAxNjYsIDEwMTY4LCAxMDE3MCwgMTAxNzIsIDEwMTc0LCAxMDE3NiwgCisgICAgMTAxNzgsIDEwMTgwLCAxMDE4MiwgMTAxODQsIDEwMTg2LCAxMDE4OCwgMTAxOTAsIDEwMTkyLCAxMDE5NCwgMTAxOTYsIAorICAgIDEwMTk4LCAxMDIwMCwgMTAyMDIsIDEwMjA0LCAxMDIwNiwgMTAyMDgsIDEwMjEwLCAxMDIxMiwgMTAyMTQsIDEwMjE2LCAKKyAgICAxMDIxOCwgMTAyMjAsIDEwMjIyLCAxMDIyNCwgMTAyMjYsIDEwMjI4LCAxMDIzMCwgMTAyMzIsIDEwMjM0LCAxMDIzNiwgCisgICAgMTAyMzgsIDEwMjQwLCAxMDI0MiwgMTAyNDQsIDEwMjQ2LCAxMDI0OCwgMTAyNTAsIDEwMjUyLCAxMDI1NCwgMTAyNTYsIAorICAgIDEwMjU4LCAxMDI2MCwgMTAyNjIsIDEwMjY0LCAxMDI2NiwgMTAyNjgsIDEwMjcwLCAxMDI3MiwgMTAyNzQsIDEwMjc2LCAKKyAgICAxMDI3OCwgMTAyODAsIDEwMjgyLCAxMDI4NCwgMTAyODYsIDEwMjg4LCAxMDI5MCwgMTAyOTIsIDEwMjk0LCAxMDI5NiwgCisgICAgMTAyOTgsIDEwMzAwLCAxMDMwMiwgMTAzMDQsIDEwMzA2LCAxMDMwOCwgMTAzMTAsIDEwMzEyLCAxMDMxNCwgMTAzMTYsIAorICAgIDEwMzE4LCAxMDMyMCwgMTAzMjIsIDEwMzI0LCAxMDMyNiwgMTAzMjgsIDEwMzMwLCAxMDMzMiwgMTAzMzQsIDEwMzM2LCAKKyAgICAxMDMzOCwgMTAzNDAsIDEwMzQyLCAxMDM0NCwgMTAzNDYsIDEwMzQ4LCAxMDM1MCwgMTAzNTIsIDEwMzU0LCAxMDM1NiwgCisgICAgMTAzNTgsIDEwMzYwLCAxMDM2MiwgMTAzNjQsIDAsIDAsIDAsIDEwMzY2LCAxMDM2OCwgMTAzNzAsIDEwMzcyLCAxMDM3NCwgCisgICAgMTAzNzYsIDAsIDAsIDEwMzc4LCAxMDM4MCwgMTAzODIsIDEwMzg0LCAxMDM4NiwgMTAzODgsIDAsIDAsIDEwMzkwLCAKKyAgICAxMDM5MiwgMTAzOTQsIDEwMzk2LCAxMDM5OCwgMTA0MDAsIDAsIDAsIDEwNDAyLCAxMDQwNCwgMTA0MDYsIDAsIDAsIDAsIAorICAgIDEwNDA4LCAxMDQxMCwgMTA0MTIsIDEwNDE0LCAxMDQxNiwgMTA0MTgsIDEwNDIwLCAwLCAxMDQyMiwgMTA0MjQsIDEwNDI2LCAKKyAgICAxMDQyOCwgMTA0MzAsIDEwNDMyLCAxMDQzNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMTA0MjgsIDAsIDEwNDMxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxMDQzNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA0MzYsIDAsIDEwNDM5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDQ0MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA0MzcsIDEwNDQwLCAxMDQ0MywgMTA0NDYsIDEwNDQ5LCAKLSAgICAxMDQ1MiwgMTA0NTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNDU4LCAxMDQ2MSwgCi0gICAgMTA0NjQsIDEwNDY3LCAxMDQ3MCwgMTA0NzMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDEwNDc2LCAxMDQ3OCwgMTA0ODAsIDEwNDgyLCAxMDQ4NCwgMTA0ODYsIDEwNDg4LCAxMDQ5MCwgMTA0OTIsIDEwNDk0LCAKLSAgICAxMDQ5NiwgMTA0OTgsIDEwNTAwLCAxMDUwMiwgMTA1MDQsIDEwNTA2LCAxMDUwOCwgMTA1MTAsIDEwNTEyLCAxMDUxNCwgCi0gICAgMTA1MTYsIDEwNTE4LCAxMDUyMCwgMTA1MjIsIDEwNTI0LCAxMDUyNiwgMTA1MjgsIDEwNTMwLCAxMDUzMiwgMTA1MzQsIAotICAgIDEwNTM2LCAxMDUzOCwgMTA1NDAsIDEwNTQyLCAxMDU0NCwgMTA1NDYsIDEwNTQ4LCAxMDU1MCwgMTA1NTIsIDEwNTU0LCAKLSAgICAxMDU1NiwgMTA1NTgsIDEwNTYwLCAxMDU2MiwgMTA1NjQsIDEwNTY2LCAxMDU2OCwgMTA1NzAsIDEwNTcyLCAxMDU3NCwgCi0gICAgMTA1NzYsIDEwNTc4LCAxMDU4MCwgMTA1ODIsIDEwNTg0LCAxMDU4NiwgMTA1ODgsIDEwNTkwLCAxMDU5MiwgMTA1OTQsIAotICAgIDEwNTk2LCAxMDU5OCwgMTA2MDAsIDEwNjAyLCAxMDYwNCwgMTA2MDYsIDEwNjA4LCAxMDYxMCwgMTA2MTIsIDEwNjE0LCAKLSAgICAxMDYxNiwgMTA2MTgsIDEwNjIwLCAxMDYyMiwgMTA2MjQsIDEwNjI2LCAxMDYyOCwgMTA2MzAsIDEwNjMyLCAxMDYzNCwgCi0gICAgMTA2MzYsIDEwNjM4LCAxMDY0MCwgMTA2NDIsIDEwNjQ0LCAwLCAxMDY0NiwgMTA2NDgsIDEwNjUwLCAxMDY1MiwgMTA2NTQsIAotICAgIDEwNjU2LCAxMDY1OCwgMTA2NjAsIDEwNjYyLCAxMDY2NCwgMTA2NjYsIDEwNjY4LCAxMDY3MCwgMTA2NzIsIDEwNjc0LCAKLSAgICAxMDY3NiwgMTA2NzgsIDEwNjgwLCAxMDY4MiwgMTA2ODQsIDEwNjg2LCAxMDY4OCwgMTA2OTAsIDEwNjkyLCAxMDY5NCwgCi0gICAgMTA2OTYsIDEwNjk4LCAxMDcwMCwgMTA3MDIsIDEwNzA0LCAxMDcwNiwgMTA3MDgsIDEwNzEwLCAxMDcxMiwgMTA3MTQsIAotICAgIDEwNzE2LCAxMDcxOCwgMTA3MjAsIDEwNzIyLCAxMDcyNCwgMTA3MjYsIDEwNzI4LCAxMDczMCwgMTA3MzIsIDEwNzM0LCAKLSAgICAxMDczNiwgMTA3MzgsIDEwNzQwLCAxMDc0MiwgMTA3NDQsIDEwNzQ2LCAxMDc0OCwgMTA3NTAsIDEwNzUyLCAxMDc1NCwgCi0gICAgMTA3NTYsIDEwNzU4LCAxMDc2MCwgMTA3NjIsIDEwNzY0LCAxMDc2NiwgMTA3NjgsIDEwNzcwLCAxMDc3MiwgMTA3NzQsIAotICAgIDEwNzc2LCAxMDc3OCwgMTA3ODAsIDEwNzgyLCAxMDc4NCwgMTA3ODYsIDAsIDEwNzg4LCAxMDc5MCwgMCwgMCwgMTA3OTIsIAotICAgIDAsIDAsIDEwNzk0LCAxMDc5NiwgMCwgMCwgMTA3OTgsIDEwODAwLCAxMDgwMiwgMTA4MDQsIDAsIDEwODA2LCAxMDgwOCwgCi0gICAgMTA4MTAsIDEwODEyLCAxMDgxNCwgMTA4MTYsIDEwODE4LCAxMDgyMCwgMTA4MjIsIDEwODI0LCAxMDgyNiwgMTA4MjgsIDAsIAotICAgIDEwODMwLCAwLCAxMDgzMiwgMTA4MzQsIDEwODM2LCAxMDgzOCwgMTA4NDAsIDEwODQyLCAxMDg0NCwgMCwgMTA4NDYsIAotICAgIDEwODQ4LCAxMDg1MCwgMTA4NTIsIDEwODU0LCAxMDg1NiwgMTA4NTgsIDEwODYwLCAxMDg2MiwgMTA4NjQsIDEwODY2LCAKLSAgICAxMDg2OCwgMTA4NzAsIDEwODcyLCAxMDg3NCwgMTA4NzYsIDEwODc4LCAxMDg4MCwgMTA4ODIsIDEwODg0LCAxMDg4NiwgCi0gICAgMTA4ODgsIDEwODkwLCAxMDg5MiwgMTA4OTQsIDEwODk2LCAxMDg5OCwgMTA5MDAsIDEwOTAyLCAxMDkwNCwgMTA5MDYsIAotICAgIDEwOTA4LCAxMDkxMCwgMTA5MTIsIDEwOTE0LCAxMDkxNiwgMTA5MTgsIDEwOTIwLCAxMDkyMiwgMTA5MjQsIDEwOTI2LCAKLSAgICAxMDkyOCwgMTA5MzAsIDEwOTMyLCAxMDkzNCwgMTA5MzYsIDEwOTM4LCAxMDk0MCwgMTA5NDIsIDEwOTQ0LCAxMDk0NiwgCi0gICAgMTA5NDgsIDEwOTUwLCAxMDk1MiwgMTA5NTQsIDEwOTU2LCAxMDk1OCwgMTA5NjAsIDEwOTYyLCAxMDk2NCwgMTA5NjYsIAotICAgIDEwOTY4LCAxMDk3MCwgMTA5NzIsIDEwOTc0LCAwLCAxMDk3NiwgMTA5NzgsIDEwOTgwLCAxMDk4MiwgMCwgMCwgMTA5ODQsIAotICAgIDEwOTg2LCAxMDk4OCwgMTA5OTAsIDEwOTkyLCAxMDk5NCwgMTA5OTYsIDEwOTk4LCAwLCAxMTAwMCwgMTEwMDIsIDExMDA0LCAKLSAgICAxMTAwNiwgMTEwMDgsIDExMDEwLCAxMTAxMiwgMCwgMTEwMTQsIDExMDE2LCAxMTAxOCwgMTEwMjAsIDExMDIyLCAxMTAyNCwgCi0gICAgMTEwMjYsIDExMDI4LCAxMTAzMCwgMTEwMzIsIDExMDM0LCAxMTAzNiwgMTEwMzgsIDExMDQwLCAxMTA0MiwgMTEwNDQsIAotICAgIDExMDQ2LCAxMTA0OCwgMTEwNTAsIDExMDUyLCAxMTA1NCwgMTEwNTYsIDExMDU4LCAxMTA2MCwgMTEwNjIsIDExMDY0LCAKLSAgICAxMTA2NiwgMTEwNjgsIDAsIDExMDcwLCAxMTA3MiwgMTEwNzQsIDExMDc2LCAwLCAxMTA3OCwgMTEwODAsIDExMDgyLCAKLSAgICAxMTA4NCwgMTEwODYsIDAsIDExMDg4LCAwLCAwLCAwLCAxMTA5MCwgMTEwOTIsIDExMDk0LCAxMTA5NiwgMTEwOTgsIAotICAgIDExMTAwLCAxMTEwMiwgMCwgMTExMDQsIDExMTA2LCAxMTEwOCwgMTExMTAsIDExMTEyLCAxMTExNCwgMTExMTYsIDExMTE4LCAKLSAgICAxMTEyMCwgMTExMjIsIDExMTI0LCAxMTEyNiwgMTExMjgsIDExMTMwLCAxMTEzMiwgMTExMzQsIDExMTM2LCAxMTEzOCwgCi0gICAgMTExNDAsIDExMTQyLCAxMTE0NCwgMTExNDYsIDExMTQ4LCAxMTE1MCwgMTExNTIsIDExMTU0LCAxMTE1NiwgMTExNTgsIAotICAgIDExMTYwLCAxMTE2MiwgMTExNjQsIDExMTY2LCAxMTE2OCwgMTExNzAsIDExMTcyLCAxMTE3NCwgMTExNzYsIDExMTc4LCAKLSAgICAxMTE4MCwgMTExODIsIDExMTg0LCAxMTE4NiwgMTExODgsIDExMTkwLCAxMTE5MiwgMTExOTQsIDExMTk2LCAxMTE5OCwgCi0gICAgMTEyMDAsIDExMjAyLCAxMTIwNCwgMTEyMDYsIDExMjA4LCAxMTIxMCwgMTEyMTIsIDExMjE0LCAxMTIxNiwgMTEyMTgsIAotICAgIDExMjIwLCAxMTIyMiwgMTEyMjQsIDExMjI2LCAxMTIyOCwgMTEyMzAsIDExMjMyLCAxMTIzNCwgMTEyMzYsIDExMjM4LCAKLSAgICAxMTI0MCwgMTEyNDIsIDExMjQ0LCAxMTI0NiwgMTEyNDgsIDExMjUwLCAxMTI1MiwgMTEyNTQsIDExMjU2LCAxMTI1OCwgCi0gICAgMTEyNjAsIDExMjYyLCAxMTI2NCwgMTEyNjYsIDExMjY4LCAxMTI3MCwgMTEyNzIsIDExMjc0LCAxMTI3NiwgMTEyNzgsIAotICAgIDExMjgwLCAxMTI4MiwgMTEyODQsIDExMjg2LCAxMTI4OCwgMTEyOTAsIDExMjkyLCAxMTI5NCwgMTEyOTYsIDExMjk4LCAKLSAgICAxMTMwMCwgMTEzMDIsIDExMzA0LCAxMTMwNiwgMTEzMDgsIDExMzEwLCAxMTMxMiwgMTEzMTQsIDExMzE2LCAxMTMxOCwgCi0gICAgMTEzMjAsIDExMzIyLCAxMTMyNCwgMTEzMjYsIDExMzI4LCAxMTMzMCwgMTEzMzIsIDExMzM0LCAxMTMzNiwgMTEzMzgsIAotICAgIDExMzQwLCAxMTM0MiwgMTEzNDQsIDExMzQ2LCAxMTM0OCwgMTEzNTAsIDExMzUyLCAxMTM1NCwgMTEzNTYsIDExMzU4LCAKLSAgICAxMTM2MCwgMTEzNjIsIDExMzY0LCAxMTM2NiwgMTEzNjgsIDExMzcwLCAxMTM3MiwgMTEzNzQsIDExMzc2LCAxMTM3OCwgCi0gICAgMTEzODAsIDExMzgyLCAxMTM4NCwgMTEzODYsIDExMzg4LCAxMTM5MCwgMTEzOTIsIDExMzk0LCAxMTM5NiwgMTEzOTgsIAotICAgIDExNDAwLCAxMTQwMiwgMTE0MDQsIDExNDA2LCAxMTQwOCwgMTE0MTAsIDExNDEyLCAxMTQxNCwgMTE0MTYsIDExNDE4LCAKLSAgICAxMTQyMCwgMTE0MjIsIDExNDI0LCAxMTQyNiwgMTE0MjgsIDExNDMwLCAxMTQzMiwgMTE0MzQsIDExNDM2LCAxMTQzOCwgCi0gICAgMTE0NDAsIDExNDQyLCAxMTQ0NCwgMTE0NDYsIDExNDQ4LCAxMTQ1MCwgMTE0NTIsIDExNDU0LCAxMTQ1NiwgMTE0NTgsIAotICAgIDExNDYwLCAxMTQ2MiwgMTE0NjQsIDExNDY2LCAxMTQ2OCwgMTE0NzAsIDExNDcyLCAxMTQ3NCwgMTE0NzYsIDExNDc4LCAKLSAgICAxMTQ4MCwgMTE0ODIsIDExNDg0LCAxMTQ4NiwgMTE0ODgsIDExNDkwLCAxMTQ5MiwgMTE0OTQsIDExNDk2LCAxMTQ5OCwgCi0gICAgMTE1MDAsIDExNTAyLCAxMTUwNCwgMTE1MDYsIDExNTA4LCAxMTUxMCwgMTE1MTIsIDExNTE0LCAxMTUxNiwgMTE1MTgsIAotICAgIDExNTIwLCAxMTUyMiwgMTE1MjQsIDExNTI2LCAxMTUyOCwgMTE1MzAsIDExNTMyLCAxMTUzNCwgMTE1MzYsIDExNTM4LCAKLSAgICAxMTU0MCwgMTE1NDIsIDExNTQ0LCAxMTU0NiwgMTE1NDgsIDExNTUwLCAxMTU1MiwgMTE1NTQsIDExNTU2LCAxMTU1OCwgCi0gICAgMTE1NjAsIDExNTYyLCAxMTU2NCwgMTE1NjYsIDExNTY4LCAxMTU3MCwgMTE1NzIsIDExNTc0LCAxMTU3NiwgMTE1NzgsIAotICAgIDExNTgwLCAxMTU4MiwgMTE1ODQsIDExNTg2LCAxMTU4OCwgMTE1OTAsIDExNTkyLCAxMTU5NCwgMTE1OTYsIDExNTk4LCAKLSAgICAxMTYwMCwgMTE2MDIsIDExNjA0LCAxMTYwNiwgMTE2MDgsIDExNjEwLCAxMTYxMiwgMTE2MTQsIDExNjE2LCAxMTYxOCwgCi0gICAgMTE2MjAsIDExNjIyLCAxMTYyNCwgMTE2MjYsIDExNjI4LCAxMTYzMCwgMTE2MzIsIDExNjM0LCAxMTYzNiwgMTE2MzgsIAotICAgIDExNjQwLCAxMTY0MiwgMTE2NDQsIDExNjQ2LCAxMTY0OCwgMTE2NTAsIDExNjUyLCAxMTY1NCwgMTE2NTYsIDExNjU4LCAKLSAgICAxMTY2MCwgMTE2NjIsIDExNjY0LCAxMTY2NiwgMTE2NjgsIDExNjcwLCAxMTY3MiwgMTE2NzQsIDExNjc2LCAxMTY3OCwgCi0gICAgMTE2ODAsIDExNjgyLCAxMTY4NCwgMTE2ODYsIDExNjg4LCAxMTY5MCwgMTE2OTIsIDExNjk0LCAxMTY5NiwgMTE2OTgsIAotICAgIDExNzAwLCAxMTcwMiwgMTE3MDQsIDExNzA2LCAxMTcwOCwgMTE3MTAsIDExNzEyLCAxMTcxNCwgMTE3MTYsIDExNzE4LCAKLSAgICAxMTcyMCwgMTE3MjIsIDExNzI0LCAxMTcyNiwgMTE3MjgsIDExNzMwLCAxMTczMiwgMTE3MzQsIDExNzM2LCAxMTczOCwgCi0gICAgMTE3NDAsIDExNzQyLCAxMTc0NCwgMTE3NDYsIDExNzQ4LCAxMTc1MCwgMTE3NTIsIDExNzU0LCAxMTc1NiwgMTE3NTgsIAotICAgIDExNzYwLCAxMTc2MiwgMTE3NjQsIDExNzY2LCAxMTc2OCwgMTE3NzAsIDExNzcyLCAxMTc3NCwgMTE3NzYsIDExNzc4LCAKLSAgICAxMTc4MCwgMTE3ODIsIDAsIDAsIDExNzg0LCAxMTc4NiwgMTE3ODgsIDExNzkwLCAxMTc5MiwgMTE3OTQsIDExNzk2LCAKLSAgICAxMTc5OCwgMTE4MDAsIDExODAyLCAxMTgwNCwgMTE4MDYsIDExODA4LCAxMTgxMCwgMTE4MTIsIDExODE0LCAxMTgxNiwgCi0gICAgMTE4MTgsIDExODIwLCAxMTgyMiwgMTE4MjQsIDExODI2LCAxMTgyOCwgMTE4MzAsIDExODMyLCAxMTgzNCwgMTE4MzYsIAotICAgIDExODM4LCAxMTg0MCwgMTE4NDIsIDExODQ0LCAxMTg0NiwgMTE4NDgsIDExODUwLCAxMTg1MiwgMTE4NTQsIDExODU2LCAKLSAgICAxMTg1OCwgMTE4NjAsIDExODYyLCAxMTg2NCwgMTE4NjYsIDExODY4LCAxMTg3MCwgMTE4NzIsIDExODc0LCAxMTg3NiwgCi0gICAgMTE4NzgsIDExODgwLCAxMTg4MiwgMTE4ODQsIDExODg2LCAxMTg4OCwgMTE4OTAsIDExODkyLCAxMTg5NCwgMTE4OTYsIAotICAgIDExODk4LCAxMTkwMCwgMTE5MDIsIDExOTA0LCAxMTkwNiwgMTE5MDgsIDExOTEwLCAxMTkxMiwgMTE5MTQsIDExOTE2LCAKLSAgICAxMTkxOCwgMTE5MjAsIDExOTIyLCAxMTkyNCwgMTE5MjYsIDExOTI4LCAxMTkzMCwgMTE5MzIsIDExOTM0LCAxMTkzNiwgCi0gICAgMTE5MzgsIDExOTQwLCAxMTk0MiwgMTE5NDQsIDExOTQ2LCAxMTk0OCwgMTE5NTAsIDExOTUyLCAxMTk1NCwgMTE5NTYsIAotICAgIDExOTU4LCAxMTk2MCwgMTE5NjIsIDExOTY0LCAxMTk2NiwgMTE5NjgsIDExOTcwLCAxMTk3MiwgMTE5NzQsIDExOTc2LCAKLSAgICAxMTk3OCwgMTE5ODAsIDExOTgyLCAxMTk4NCwgMTE5ODYsIDExOTg4LCAxMTk5MCwgMTE5OTIsIDExOTk0LCAxMTk5NiwgCi0gICAgMTE5OTgsIDEyMDAwLCAxMjAwMiwgMTIwMDQsIDEyMDA2LCAxMjAwOCwgMTIwMTAsIDEyMDEyLCAxMjAxNCwgMTIwMTYsIAotICAgIDEyMDE4LCAxMjAyMCwgMTIwMjIsIDEyMDI0LCAxMjAyNiwgMTIwMjgsIDEyMDMwLCAxMjAzMiwgMTIwMzQsIDEyMDM2LCAKLSAgICAxMjAzOCwgMTIwNDAsIDEyMDQyLCAxMjA0NCwgMTIwNDYsIDEyMDQ4LCAxMjA1MCwgMTIwNTIsIDEyMDU0LCAxMjA1NiwgCi0gICAgMTIwNTgsIDEyMDYwLCAxMjA2MiwgMTIwNjQsIDEyMDY2LCAxMjA2OCwgMTIwNzAsIDEyMDcyLCAxMjA3NCwgMTIwNzYsIAotICAgIDEyMDc4LCAxMjA4MCwgMTIwODIsIDEyMDg0LCAxMjA4NiwgMTIwODgsIDEyMDkwLCAxMjA5MiwgMTIwOTQsIDEyMDk2LCAKLSAgICAxMjA5OCwgMTIxMDAsIDEyMTAyLCAxMjEwNCwgMTIxMDYsIDEyMTA4LCAxMjExMCwgMTIxMTIsIDEyMTE0LCAxMjExNiwgCi0gICAgMTIxMTgsIDEyMTIwLCAxMjEyMiwgMTIxMjQsIDEyMTI2LCAxMjEyOCwgMTIxMzAsIDEyMTMyLCAxMjEzNCwgMTIxMzYsIAotICAgIDEyMTM4LCAxMjE0MCwgMTIxNDIsIDEyMTQ0LCAxMjE0NiwgMTIxNDgsIDEyMTUwLCAxMjE1MiwgMTIxNTQsIDEyMTU2LCAKLSAgICAxMjE1OCwgMTIxNjAsIDEyMTYyLCAxMjE2NCwgMTIxNjYsIDEyMTY4LCAxMjE3MCwgMTIxNzIsIDEyMTc0LCAxMjE3NiwgCi0gICAgMTIxNzgsIDEyMTgwLCAxMjE4MiwgMTIxODQsIDEyMTg2LCAxMjE4OCwgMTIxOTAsIDEyMTkyLCAxMjE5NCwgMTIxOTYsIAotICAgIDEyMTk4LCAxMjIwMCwgMTIyMDIsIDEyMjA0LCAxMjIwNiwgMTIyMDgsIDEyMjEwLCAxMjIxMiwgMTIyMTQsIDEyMjE2LCAKLSAgICAxMjIxOCwgMTIyMjAsIDEyMjIyLCAxMjIyNCwgMTIyMjYsIDEyMjI4LCAxMjIzMCwgMTIyMzIsIDEyMjM0LCAxMjIzNiwgCi0gICAgMTIyMzgsIDEyMjQwLCAxMjI0MiwgMTIyNDQsIDEyMjQ2LCAxMjI0OCwgMTIyNTAsIDEyMjUyLCAxMjI1NCwgMTIyNTYsIAotICAgIDEyMjU4LCAxMjI2MCwgMTIyNjIsIDEyMjY0LCAxMjI2NiwgMTIyNjgsIDEyMjcwLCAxMjI3MiwgMTIyNzQsIDEyMjc2LCAKLSAgICAxMjI3OCwgMTIyODAsIDEyMjgyLCAxMjI4NCwgMTIyODYsIDEyMjg4LCAxMjI5MCwgMTIyOTIsIDEyMjk0LCAxMjI5NiwgCi0gICAgMTIyOTgsIDEyMzAwLCAxMjMwMiwgMTIzMDQsIDEyMzA2LCAxMjMwOCwgMTIzMTAsIDEyMzEyLCAxMjMxNCwgMTIzMTYsIAotICAgIDEyMzE4LCAxMjMyMCwgMTIzMjIsIDEyMzI0LCAxMjMyNiwgMTIzMjgsIDEyMzMwLCAxMjMzMiwgMTIzMzQsIDEyMzM2LCAKLSAgICAxMjMzOCwgMTIzNDAsIDEyMzQyLCAxMjM0NCwgMTIzNDYsIDEyMzQ4LCAxMjM1MCwgMTIzNTIsIDEyMzU0LCAxMjM1NiwgCi0gICAgMTIzNTgsIDEyMzYwLCAxMjM2MiwgMTIzNjQsIDEyMzY2LCAwLCAwLCAxMjM2OCwgMTIzNzAsIDEyMzcyLCAxMjM3NCwgCi0gICAgMTIzNzYsIDEyMzc4LCAxMjM4MCwgMTIzODIsIDEyMzg0LCAxMjM4NiwgMTIzODgsIDEyMzkwLCAxMjM5MiwgMTIzOTQsIAotICAgIDEyMzk2LCAxMjM5OCwgMTI0MDAsIDEyNDAyLCAxMjQwNCwgMTI0MDYsIDEyNDA4LCAxMjQxMCwgMTI0MTIsIDEyNDE0LCAKLSAgICAxMjQxNiwgMTI0MTgsIDEyNDIwLCAxMjQyMiwgMTI0MjQsIDEyNDI2LCAxMjQyOCwgMTI0MzAsIDEyNDMyLCAxMjQzNCwgCi0gICAgMTI0MzYsIDEyNDM4LCAxMjQ0MCwgMTI0NDIsIDEyNDQ0LCAxMjQ0NiwgMTI0NDgsIDEyNDUwLCAxMjQ1MiwgMTI0NTQsIAotICAgIDEyNDU2LCAxMjQ1OCwgMTI0NjAsIDEyNDYyLCAxMjQ2NCwgMTI0NjYsIDEyNDY4LCAxMjQ3MSwgMTI0NzQsIDEyNDc3LCAKLSAgICAxMjQ4MCwgMTI0ODMsIDEyNDg2LCAxMjQ4OSwgMTI0OTIsIDEyNDk1LCAxMjQ5OCwgMCwgMCwgMCwgMCwgMCwgMTI1MDEsIAotICAgIDEyNTA1LCAxMjUwOSwgMTI1MTMsIDEyNTE3LCAxMjUyMSwgMTI1MjUsIDEyNTI5LCAxMjUzMywgMTI1MzcsIDEyNTQxLCAKLSAgICAxMjU0NSwgMTI1NDksIDEyNTUzLCAxMjU1NywgMTI1NjEsIDEyNTY1LCAxMjU2OSwgMTI1NzMsIDEyNTc3LCAxMjU4MSwgCi0gICAgMTI1ODUsIDEyNTg5LCAxMjU5MywgMTI1OTcsIDEyNjAxLCAxMjYwNSwgMTI2MDksIDEyNjExLCAxMjYxMywgMTI2MTYsIDAsIAotICAgIDEyNjE5LCAxMjYyMSwgMTI2MjMsIDEyNjI1LCAxMjYyNywgMTI2MjksIDEyNjMxLCAxMjYzMywgMTI2MzUsIDEyNjM3LCAKLSAgICAxMjYzOSwgMTI2NDEsIDEyNjQzLCAxMjY0NSwgMTI2NDcsIDEyNjQ5LCAxMjY1MSwgMTI2NTMsIDEyNjU1LCAxMjY1NywgCi0gICAgMTI2NTksIDEyNjYxLCAxMjY2MywgMTI2NjUsIDEyNjY3LCAxMjY2OSwgMTI2NzEsIDEyNjc0LCAxMjY3NywgMTI2ODAsIAotICAgIDEyNjgzLCAxMjY4NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI2OTAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyNjkzLCAxMjY5NiwgMTI2OTksIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyNzAxLCAxMjcwMywgMTI3MDUsIDEyNzA3LCAxMjcwOSwgMTI3MTEsIAotICAgIDEyNzEzLCAxMjcxNSwgMTI3MTcsIDEyNzE5LCAxMjcyMSwgMTI3MjMsIDEyNzI1LCAxMjcyNywgMTI3MjksIDEyNzMxLCAKLSAgICAxMjczMywgMTI3MzUsIDEyNzM3LCAxMjczOSwgMTI3NDEsIDEyNzQzLCAxMjc0NSwgMTI3NDcsIDEyNzQ5LCAxMjc1MSwgCi0gICAgMTI3NTMsIDEyNzU1LCAxMjc1NywgMTI3NTksIDEyNzYxLCAxMjc2MywgMTI3NjUsIDEyNzY3LCAxMjc2OSwgMTI3NzEsIAotICAgIDEyNzczLCAxMjc3NSwgMTI3NzcsIDEyNzc5LCAxMjc4MSwgMTI3ODMsIDEyNzg1LCAwLCAwLCAwLCAwLCAwLCAxMjc4NywgCi0gICAgMTI3OTEsIDEyNzk1LCAxMjc5OSwgMTI4MDMsIDEyODA3LCAxMjgxMSwgMTI4MTUsIDEyODE5LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAxMjgyMywgMTI4MjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyODI3LCAxMjgyOSwgMTI4MzEsIDEyODMzLCAxMjgzNSwgCi0gICAgMTI4MzcsIDEyODM5LCAxMjg0MSwgMTI4NDMsIDEyODQ1LCAxMjg0NywgMTI4NDksIDEyODUxLCAxMjg1MywgMTI4NTUsIAotICAgIDEyODU3LCAxMjg1OSwgMTI4NjEsIDEyODYzLCAxMjg2NSwgMTI4NjcsIDEyODY5LCAxMjg3MSwgMTI4NzMsIDEyODc1LCAKLSAgICAxMjg3NywgMTI4NzksIDEyODgxLCAxMjg4MywgMTI4ODUsIDEyODg3LCAxMjg4OSwgMTI4OTEsIDEyODkzLCAxMjg5NSwgCi0gICAgMTI4OTcsIDEyODk5LCAxMjkwMSwgMTI5MDMsIDEyOTA1LCAxMjkwNywgMTI5MDksIDEyOTExLCAxMjkxMywgMTI5MTUsIAotICAgIDEyOTE3LCAxMjkxOSwgMTI5MjEsIDEyOTIzLCAxMjkyNSwgMTI5MjcsIDEyOTI5LCAxMjkzMSwgMTI5MzMsIDEyOTM1LCAKLSAgICAxMjkzNywgMTI5MzksIDEyOTQxLCAxMjk0MywgMTI5NDUsIDEyOTQ3LCAxMjk0OSwgMTI5NTEsIDEyOTUzLCAxMjk1NSwgCi0gICAgMTI5NTcsIDEyOTU5LCAxMjk2MSwgMTI5NjMsIDEyOTY1LCAxMjk2NywgMTI5NjksIDEyOTcxLCAxMjk3MywgMTI5NzUsIAotICAgIDEyOTc3LCAxMjk3OSwgMTI5ODEsIDEyOTgzLCAxMjk4NSwgMTI5ODcsIDEyOTg5LCAxMjk5MSwgMTI5OTMsIDEyOTk1LCAKLSAgICAxMjk5NywgMTI5OTksIDEzMDAxLCAxMzAwMywgMTMwMDUsIDEzMDA3LCAxMzAwOSwgMTMwMTEsIDEzMDEzLCAxMzAxNSwgCi0gICAgMTMwMTcsIDEzMDE5LCAxMzAyMSwgMTMwMjMsIDEzMDI1LCAxMzAyNywgMTMwMjksIDEzMDMxLCAxMzAzMywgMTMwMzUsIAotICAgIDEzMDM3LCAxMzAzOSwgMTMwNDEsIDEzMDQzLCAxMzA0NSwgMTMwNDcsIDEzMDQ5LCAxMzA1MSwgMTMwNTMsIDEzMDU1LCAKLSAgICAxMzA1NywgMTMwNTksIDEzMDYxLCAxMzA2MywgMTMwNjUsIDEzMDY3LCAxMzA2OSwgMTMwNzEsIDEzMDczLCAxMzA3NSwgCi0gICAgMTMwNzcsIDEzMDc5LCAxMzA4MSwgMTMwODMsIDEzMDg1LCAxMzA4NywgMTMwODksIDEzMDkxLCAxMzA5MywgMTMwOTUsIAotICAgIDEzMDk3LCAxMzA5OSwgMTMxMDEsIDEzMTAzLCAxMzEwNSwgMTMxMDcsIDEzMTA5LCAxMzExMSwgMTMxMTMsIDEzMTE1LCAKLSAgICAxMzExNywgMTMxMTksIDEzMTIxLCAxMzEyMywgMTMxMjUsIDEzMTI3LCAxMzEyOSwgMTMxMzEsIDEzMTMzLCAxMzEzNSwgCi0gICAgMTMxMzcsIDEzMTM5LCAxMzE0MSwgMTMxNDMsIDEzMTQ1LCAxMzE0NywgMTMxNDksIDEzMTUxLCAxMzE1MywgMTMxNTUsIAotICAgIDEzMTU3LCAxMzE1OSwgMTMxNjEsIDEzMTYzLCAxMzE2NSwgMTMxNjcsIDEzMTY5LCAxMzE3MSwgMTMxNzMsIDEzMTc1LCAKLSAgICAxMzE3NywgMTMxNzksIDEzMTgxLCAxMzE4MywgMTMxODUsIDEzMTg3LCAxMzE4OSwgMTMxOTEsIDEzMTkzLCAxMzE5NSwgCi0gICAgMTMxOTcsIDEzMTk5LCAxMzIwMSwgMTMyMDMsIDEzMjA1LCAxMzIwNywgMTMyMDksIDEzMjExLCAxMzIxMywgMTMyMTUsIAotICAgIDEzMjE3LCAxMzIxOSwgMTMyMjEsIDEzMjIzLCAxMzIyNSwgMTMyMjcsIDEzMjI5LCAxMzIzMSwgMTMyMzMsIDEzMjM1LCAKLSAgICAxMzIzNywgMTMyMzksIDEzMjQxLCAxMzI0MywgMTMyNDUsIDEzMjQ3LCAxMzI0OSwgMTMyNTEsIDEzMjUzLCAxMzI1NSwgCi0gICAgMTMyNTcsIDEzMjU5LCAxMzI2MSwgMTMyNjMsIDEzMjY1LCAxMzI2NywgMTMyNjksIDEzMjcxLCAxMzI3MywgMTMyNzUsIAotICAgIDEzMjc3LCAxMzI3OSwgMTMyODEsIDEzMjgzLCAxMzI4NSwgMTMyODcsIDEzMjg5LCAxMzI5MSwgMTMyOTMsIDEzMjk1LCAKLSAgICAxMzI5NywgMTMyOTksIDEzMzAxLCAxMzMwMywgMTMzMDUsIDEzMzA3LCAxMzMwOSwgMTMzMTEsIDEzMzEzLCAxMzMxNSwgCi0gICAgMTMzMTcsIDEzMzE5LCAxMzMyMSwgMTMzMjMsIDEzMzI1LCAxMzMyNywgMTMzMjksIDEzMzMxLCAxMzMzMywgMTMzMzUsIAotICAgIDEzMzM3LCAxMzMzOSwgMTMzNDEsIDEzMzQzLCAxMzM0NSwgMTMzNDcsIDEzMzQ5LCAxMzM1MSwgMTMzNTMsIDEzMzU1LCAKLSAgICAxMzM1NywgMTMzNTksIDEzMzYxLCAxMzM2MywgMTMzNjUsIDEzMzY3LCAxMzM2OSwgMTMzNzEsIDEzMzczLCAxMzM3NSwgCi0gICAgMTMzNzcsIDEzMzc5LCAxMzM4MSwgMTMzODMsIDEzMzg1LCAxMzM4NywgMTMzODksIDEzMzkxLCAxMzM5MywgMTMzOTUsIAotICAgIDEzMzk3LCAxMzM5OSwgMTM0MDEsIDEzNDAzLCAxMzQwNSwgMTM0MDcsIDEzNDA5LCAxMzQxMSwgMTM0MTMsIDEzNDE1LCAKLSAgICAxMzQxNywgMTM0MTksIDEzNDIxLCAxMzQyMywgMTM0MjUsIDEzNDI3LCAxMzQyOSwgMTM0MzEsIDEzNDMzLCAxMzQzNSwgCi0gICAgMTM0MzcsIDEzNDM5LCAxMzQ0MSwgMTM0NDMsIDEzNDQ1LCAxMzQ0NywgMTM0NDksIDEzNDUxLCAxMzQ1MywgMTM0NTUsIAotICAgIDEzNDU3LCAxMzQ1OSwgMTM0NjEsIDEzNDYzLCAxMzQ2NSwgMTM0NjcsIDEzNDY5LCAxMzQ3MSwgMTM0NzMsIDEzNDc1LCAKLSAgICAxMzQ3NywgMTM0NzksIDEzNDgxLCAxMzQ4MywgMTM0ODUsIDEzNDg3LCAxMzQ4OSwgMTM0OTEsIDEzNDkzLCAxMzQ5NSwgCi0gICAgMTM0OTcsIDEzNDk5LCAxMzUwMSwgMTM1MDMsIDEzNTA1LCAxMzUwNywgMTM1MDksIDEzNTExLCAxMzUxMywgMTM1MTUsIAotICAgIDEzNTE3LCAxMzUxOSwgMTM1MjEsIDEzNTIzLCAxMzUyNSwgMTM1MjcsIDEzNTI5LCAxMzUzMSwgMTM1MzMsIDEzNTM1LCAKLSAgICAxMzUzNywgMTM1MzksIDEzNTQxLCAxMzU0MywgMTM1NDUsIDEzNTQ3LCAxMzU0OSwgMTM1NTEsIDEzNTUzLCAxMzU1NSwgCi0gICAgMTM1NTcsIDEzNTU5LCAxMzU2MSwgMTM1NjMsIDEzNTY1LCAxMzU2NywgMTM1NjksIDEzNTcxLCAxMzU3MywgMTM1NzUsIAotICAgIDEzNTc3LCAxMzU3OSwgMTM1ODEsIDEzNTgzLCAxMzU4NSwgMTM1ODcsIDEzNTg5LCAxMzU5MSwgMTM1OTMsIDEzNTk1LCAKLSAgICAxMzU5NywgMTM1OTksIDEzNjAxLCAxMzYwMywgMTM2MDUsIDEzNjA3LCAxMzYwOSwgMTM2MTEsIDEzNjEzLCAxMzYxNSwgCi0gICAgMTM2MTcsIDEzNjE5LCAxMzYyMSwgMTM2MjMsIDEzNjI1LCAxMzYyNywgMTM2MjksIDEzNjMxLCAxMzYzMywgMTM2MzUsIAotICAgIDEzNjM3LCAxMzYzOSwgMTM2NDEsIDEzNjQzLCAxMzY0NSwgMTM2NDcsIDEzNjQ5LCAxMzY1MSwgMTM2NTMsIDEzNjU1LCAKLSAgICAxMzY1NywgMTM2NTksIDEzNjYxLCAxMzY2MywgMTM2NjUsIDEzNjY3LCAxMzY2OSwgMTM2NzEsIDEzNjczLCAxMzY3NSwgCi0gICAgMTM2NzcsIDEzNjc5LCAxMzY4MSwgMTM2ODMsIDEzNjg1LCAxMzY4NywgMTM2ODksIDEzNjkxLCAxMzY5MywgMTM2OTUsIAotICAgIDEzNjk3LCAxMzY5OSwgMTM3MDEsIDEzNzAzLCAxMzcwNSwgMTM3MDcsIDEzNzA5LCAxMzcxMSwgMTM3MTMsIDEzNzE1LCAKLSAgICAxMzcxNywgMTM3MTksIDEzNzIxLCAxMzcyMywgMTM3MjUsIDEzNzI3LCAxMzcyOSwgMTM3MzEsIDEzNzMzLCAxMzczNSwgCi0gICAgMTM3MzcsIDEzNzM5LCAxMzc0MSwgMTM3NDMsIDEzNzQ1LCAxMzc0NywgMTM3NDksIDEzNzUxLCAxMzc1MywgMTM3NTUsIAotICAgIDEzNzU3LCAxMzc1OSwgMTM3NjEsIDEzNzYzLCAxMzc2NSwgMTM3NjcsIDEzNzY5LCAxMzc3MSwgMTM3NzMsIDEzNzc1LCAKLSAgICAxMzc3NywgMTM3NzksIDEzNzgxLCAxMzc4MywgMTM3ODUsIDEzNzg3LCAxMzc4OSwgMTM3OTEsIDEzNzkzLCAxMzc5NSwgCi0gICAgMTM3OTcsIDEzNzk5LCAxMzgwMSwgMTM4MDMsIDEzODA1LCAxMzgwNywgMTM4MDksIDEzODExLCAxMzgxMywgMTM4MTUsIAotICAgIDEzODE3LCAxMzgxOSwgMTM4MjEsIDEzODIzLCAxMzgyNSwgMTM4MjcsIDEzODI5LCAxMzgzMSwgMTM4MzMsIDEzODM1LCAKLSAgICAxMzgzNywgMTM4MzksIDEzODQxLCAxMzg0MywgMTM4NDUsIDEzODQ3LCAxMzg0OSwgMTM4NTEsIDEzODUzLCAxMzg1NSwgCi0gICAgMTM4NTcsIDEzODU5LCAxMzg2MSwgMTM4NjMsIDEzODY1LCAxMzg2NywgMTM4NjksIDEzODcxLCAxMzg3MywgMTM4NzUsIAotICAgIDEzODc3LCAxMzg3OSwgMTM4ODEsIDEzODgzLCAxMzg4NSwgMTM4ODcsIDEzODg5LCAxMzg5MSwgMTM4OTMsIDEzODk1LCAKLSAgICAxMzg5NywgMTM4OTksIDEzOTAxLCAxMzkwMywgMTM5MDUsIDEzOTA3LCAxMzkwOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA0NDUsIDEwNDQ4LCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKQEAgLTQ2NDEsNDAyICs0NTM5LDYyMyBAQAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNDUxLCAxMDQ1NCwgMTA0NTcsIDEwNDYwLCAxMDQ2MywgCisgICAgMTA0NjYsIDEwNDY5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDQ3MiwgMTA0NzUsIAorICAgIDEwNDc4LCAxMDQ4MSwgMTA0ODQsIDEwNDg3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxMDQ5MCwgMTA0OTIsIDEwNDk0LCAxMDQ5NiwgMTA0OTgsIDEwNTAwLCAxMDUwMiwgMTA1MDQsIDEwNTA2LCAxMDUwOCwgCisgICAgMTA1MTAsIDEwNTEyLCAxMDUxNCwgMTA1MTYsIDEwNTE4LCAxMDUyMCwgMTA1MjIsIDEwNTI0LCAxMDUyNiwgMTA1MjgsIAorICAgIDEwNTMwLCAxMDUzMiwgMTA1MzQsIDEwNTM2LCAxMDUzOCwgMTA1NDAsIDEwNTQyLCAxMDU0NCwgMTA1NDYsIDEwNTQ4LCAKKyAgICAxMDU1MCwgMTA1NTIsIDEwNTU0LCAxMDU1NiwgMTA1NTgsIDEwNTYwLCAxMDU2MiwgMTA1NjQsIDEwNTY2LCAxMDU2OCwgCisgICAgMTA1NzAsIDEwNTcyLCAxMDU3NCwgMTA1NzYsIDEwNTc4LCAxMDU4MCwgMTA1ODIsIDEwNTg0LCAxMDU4NiwgMTA1ODgsIAorICAgIDEwNTkwLCAxMDU5MiwgMTA1OTQsIDEwNTk2LCAxMDU5OCwgMTA2MDAsIDEwNjAyLCAxMDYwNCwgMTA2MDYsIDEwNjA4LCAKKyAgICAxMDYxMCwgMTA2MTIsIDEwNjE0LCAxMDYxNiwgMTA2MTgsIDEwNjIwLCAxMDYyMiwgMTA2MjQsIDEwNjI2LCAxMDYyOCwgCisgICAgMTA2MzAsIDEwNjMyLCAxMDYzNCwgMTA2MzYsIDEwNjM4LCAxMDY0MCwgMTA2NDIsIDEwNjQ0LCAxMDY0NiwgMTA2NDgsIAorICAgIDEwNjUwLCAxMDY1MiwgMTA2NTQsIDEwNjU2LCAxMDY1OCwgMCwgMTA2NjAsIDEwNjYyLCAxMDY2NCwgMTA2NjYsIDEwNjY4LCAKKyAgICAxMDY3MCwgMTA2NzIsIDEwNjc0LCAxMDY3NiwgMTA2NzgsIDEwNjgwLCAxMDY4MiwgMTA2ODQsIDEwNjg2LCAxMDY4OCwgCisgICAgMTA2OTAsIDEwNjkyLCAxMDY5NCwgMTA2OTYsIDEwNjk4LCAxMDcwMCwgMTA3MDIsIDEwNzA0LCAxMDcwNiwgMTA3MDgsIAorICAgIDEwNzEwLCAxMDcxMiwgMTA3MTQsIDEwNzE2LCAxMDcxOCwgMTA3MjAsIDEwNzIyLCAxMDcyNCwgMTA3MjYsIDEwNzI4LCAKKyAgICAxMDczMCwgMTA3MzIsIDEwNzM0LCAxMDczNiwgMTA3MzgsIDEwNzQwLCAxMDc0MiwgMTA3NDQsIDEwNzQ2LCAxMDc0OCwgCisgICAgMTA3NTAsIDEwNzUyLCAxMDc1NCwgMTA3NTYsIDEwNzU4LCAxMDc2MCwgMTA3NjIsIDEwNzY0LCAxMDc2NiwgMTA3NjgsIAorICAgIDEwNzcwLCAxMDc3MiwgMTA3NzQsIDEwNzc2LCAxMDc3OCwgMTA3ODAsIDEwNzgyLCAxMDc4NCwgMTA3ODYsIDEwNzg4LCAKKyAgICAxMDc5MCwgMTA3OTIsIDEwNzk0LCAxMDc5NiwgMTA3OTgsIDEwODAwLCAwLCAxMDgwMiwgMTA4MDQsIDAsIDAsIDEwODA2LCAKKyAgICAwLCAwLCAxMDgwOCwgMTA4MTAsIDAsIDAsIDEwODEyLCAxMDgxNCwgMTA4MTYsIDEwODE4LCAwLCAxMDgyMCwgMTA4MjIsIAorICAgIDEwODI0LCAxMDgyNiwgMTA4MjgsIDEwODMwLCAxMDgzMiwgMTA4MzQsIDEwODM2LCAxMDgzOCwgMTA4NDAsIDEwODQyLCAwLCAKKyAgICAxMDg0NCwgMCwgMTA4NDYsIDEwODQ4LCAxMDg1MCwgMTA4NTIsIDEwODU0LCAxMDg1NiwgMTA4NTgsIDAsIDEwODYwLCAKKyAgICAxMDg2MiwgMTA4NjQsIDEwODY2LCAxMDg2OCwgMTA4NzAsIDEwODcyLCAxMDg3NCwgMTA4NzYsIDEwODc4LCAxMDg4MCwgCisgICAgMTA4ODIsIDEwODg0LCAxMDg4NiwgMTA4ODgsIDEwODkwLCAxMDg5MiwgMTA4OTQsIDEwODk2LCAxMDg5OCwgMTA5MDAsIAorICAgIDEwOTAyLCAxMDkwNCwgMTA5MDYsIDEwOTA4LCAxMDkxMCwgMTA5MTIsIDEwOTE0LCAxMDkxNiwgMTA5MTgsIDEwOTIwLCAKKyAgICAxMDkyMiwgMTA5MjQsIDEwOTI2LCAxMDkyOCwgMTA5MzAsIDEwOTMyLCAxMDkzNCwgMTA5MzYsIDEwOTM4LCAxMDk0MCwgCisgICAgMTA5NDIsIDEwOTQ0LCAxMDk0NiwgMTA5NDgsIDEwOTUwLCAxMDk1MiwgMTA5NTQsIDEwOTU2LCAxMDk1OCwgMTA5NjAsIAorICAgIDEwOTYyLCAxMDk2NCwgMTA5NjYsIDEwOTY4LCAxMDk3MCwgMTA5NzIsIDEwOTc0LCAxMDk3NiwgMTA5NzgsIDEwOTgwLCAKKyAgICAxMDk4MiwgMTA5ODQsIDEwOTg2LCAxMDk4OCwgMCwgMTA5OTAsIDEwOTkyLCAxMDk5NCwgMTA5OTYsIDAsIDAsIDEwOTk4LCAKKyAgICAxMTAwMCwgMTEwMDIsIDExMDA0LCAxMTAwNiwgMTEwMDgsIDExMDEwLCAxMTAxMiwgMCwgMTEwMTQsIDExMDE2LCAxMTAxOCwgCisgICAgMTEwMjAsIDExMDIyLCAxMTAyNCwgMTEwMjYsIDAsIDExMDI4LCAxMTAzMCwgMTEwMzIsIDExMDM0LCAxMTAzNiwgMTEwMzgsIAorICAgIDExMDQwLCAxMTA0MiwgMTEwNDQsIDExMDQ2LCAxMTA0OCwgMTEwNTAsIDExMDUyLCAxMTA1NCwgMTEwNTYsIDExMDU4LCAKKyAgICAxMTA2MCwgMTEwNjIsIDExMDY0LCAxMTA2NiwgMTEwNjgsIDExMDcwLCAxMTA3MiwgMTEwNzQsIDExMDc2LCAxMTA3OCwgCisgICAgMTEwODAsIDExMDgyLCAwLCAxMTA4NCwgMTEwODYsIDExMDg4LCAxMTA5MCwgMCwgMTEwOTIsIDExMDk0LCAxMTA5NiwgCisgICAgMTEwOTgsIDExMTAwLCAwLCAxMTEwMiwgMCwgMCwgMCwgMTExMDQsIDExMTA2LCAxMTEwOCwgMTExMTAsIDExMTEyLCAKKyAgICAxMTExNCwgMTExMTYsIDAsIDExMTE4LCAxMTEyMCwgMTExMjIsIDExMTI0LCAxMTEyNiwgMTExMjgsIDExMTMwLCAxMTEzMiwgCisgICAgMTExMzQsIDExMTM2LCAxMTEzOCwgMTExNDAsIDExMTQyLCAxMTE0NCwgMTExNDYsIDExMTQ4LCAxMTE1MCwgMTExNTIsIAorICAgIDExMTU0LCAxMTE1NiwgMTExNTgsIDExMTYwLCAxMTE2MiwgMTExNjQsIDExMTY2LCAxMTE2OCwgMTExNzAsIDExMTcyLCAKKyAgICAxMTE3NCwgMTExNzYsIDExMTc4LCAxMTE4MCwgMTExODIsIDExMTg0LCAxMTE4NiwgMTExODgsIDExMTkwLCAxMTE5MiwgCisgICAgMTExOTQsIDExMTk2LCAxMTE5OCwgMTEyMDAsIDExMjAyLCAxMTIwNCwgMTEyMDYsIDExMjA4LCAxMTIxMCwgMTEyMTIsIAorICAgIDExMjE0LCAxMTIxNiwgMTEyMTgsIDExMjIwLCAxMTIyMiwgMTEyMjQsIDExMjI2LCAxMTIyOCwgMTEyMzAsIDExMjMyLCAKKyAgICAxMTIzNCwgMTEyMzYsIDExMjM4LCAxMTI0MCwgMTEyNDIsIDExMjQ0LCAxMTI0NiwgMTEyNDgsIDExMjUwLCAxMTI1MiwgCisgICAgMTEyNTQsIDExMjU2LCAxMTI1OCwgMTEyNjAsIDExMjYyLCAxMTI2NCwgMTEyNjYsIDExMjY4LCAxMTI3MCwgMTEyNzIsIAorICAgIDExMjc0LCAxMTI3NiwgMTEyNzgsIDExMjgwLCAxMTI4MiwgMTEyODQsIDExMjg2LCAxMTI4OCwgMTEyOTAsIDExMjkyLCAKKyAgICAxMTI5NCwgMTEyOTYsIDExMjk4LCAxMTMwMCwgMTEzMDIsIDExMzA0LCAxMTMwNiwgMTEzMDgsIDExMzEwLCAxMTMxMiwgCisgICAgMTEzMTQsIDExMzE2LCAxMTMxOCwgMTEzMjAsIDExMzIyLCAxMTMyNCwgMTEzMjYsIDExMzI4LCAxMTMzMCwgMTEzMzIsIAorICAgIDExMzM0LCAxMTMzNiwgMTEzMzgsIDExMzQwLCAxMTM0MiwgMTEzNDQsIDExMzQ2LCAxMTM0OCwgMTEzNTAsIDExMzUyLCAKKyAgICAxMTM1NCwgMTEzNTYsIDExMzU4LCAxMTM2MCwgMTEzNjIsIDExMzY0LCAxMTM2NiwgMTEzNjgsIDExMzcwLCAxMTM3MiwgCisgICAgMTEzNzQsIDExMzc2LCAxMTM3OCwgMTEzODAsIDExMzgyLCAxMTM4NCwgMTEzODYsIDExMzg4LCAxMTM5MCwgMTEzOTIsIAorICAgIDExMzk0LCAxMTM5NiwgMTEzOTgsIDExNDAwLCAxMTQwMiwgMTE0MDQsIDExNDA2LCAxMTQwOCwgMTE0MTAsIDExNDEyLCAKKyAgICAxMTQxNCwgMTE0MTYsIDExNDE4LCAxMTQyMCwgMTE0MjIsIDExNDI0LCAxMTQyNiwgMTE0MjgsIDExNDMwLCAxMTQzMiwgCisgICAgMTE0MzQsIDExNDM2LCAxMTQzOCwgMTE0NDAsIDExNDQyLCAxMTQ0NCwgMTE0NDYsIDExNDQ4LCAxMTQ1MCwgMTE0NTIsIAorICAgIDExNDU0LCAxMTQ1NiwgMTE0NTgsIDExNDYwLCAxMTQ2MiwgMTE0NjQsIDExNDY2LCAxMTQ2OCwgMTE0NzAsIDExNDcyLCAKKyAgICAxMTQ3NCwgMTE0NzYsIDExNDc4LCAxMTQ4MCwgMTE0ODIsIDExNDg0LCAxMTQ4NiwgMTE0ODgsIDExNDkwLCAxMTQ5MiwgCisgICAgMTE0OTQsIDExNDk2LCAxMTQ5OCwgMTE1MDAsIDExNTAyLCAxMTUwNCwgMTE1MDYsIDExNTA4LCAxMTUxMCwgMTE1MTIsIAorICAgIDExNTE0LCAxMTUxNiwgMTE1MTgsIDExNTIwLCAxMTUyMiwgMTE1MjQsIDExNTI2LCAxMTUyOCwgMTE1MzAsIDExNTMyLCAKKyAgICAxMTUzNCwgMTE1MzYsIDExNTM4LCAxMTU0MCwgMTE1NDIsIDExNTQ0LCAxMTU0NiwgMTE1NDgsIDExNTUwLCAxMTU1MiwgCisgICAgMTE1NTQsIDExNTU2LCAxMTU1OCwgMTE1NjAsIDExNTYyLCAxMTU2NCwgMTE1NjYsIDExNTY4LCAxMTU3MCwgMTE1NzIsIAorICAgIDExNTc0LCAxMTU3NiwgMTE1NzgsIDExNTgwLCAxMTU4MiwgMTE1ODQsIDExNTg2LCAxMTU4OCwgMTE1OTAsIDExNTkyLCAKKyAgICAxMTU5NCwgMTE1OTYsIDExNTk4LCAxMTYwMCwgMTE2MDIsIDExNjA0LCAxMTYwNiwgMTE2MDgsIDExNjEwLCAxMTYxMiwgCisgICAgMTE2MTQsIDExNjE2LCAxMTYxOCwgMTE2MjAsIDExNjIyLCAxMTYyNCwgMTE2MjYsIDExNjI4LCAxMTYzMCwgMTE2MzIsIAorICAgIDExNjM0LCAxMTYzNiwgMTE2MzgsIDExNjQwLCAxMTY0MiwgMTE2NDQsIDExNjQ2LCAxMTY0OCwgMTE2NTAsIDExNjUyLCAKKyAgICAxMTY1NCwgMTE2NTYsIDExNjU4LCAxMTY2MCwgMTE2NjIsIDExNjY0LCAxMTY2NiwgMTE2NjgsIDExNjcwLCAxMTY3MiwgCisgICAgMTE2NzQsIDExNjc2LCAxMTY3OCwgMTE2ODAsIDExNjgyLCAxMTY4NCwgMTE2ODYsIDExNjg4LCAxMTY5MCwgMTE2OTIsIAorICAgIDExNjk0LCAxMTY5NiwgMTE2OTgsIDExNzAwLCAxMTcwMiwgMTE3MDQsIDExNzA2LCAxMTcwOCwgMTE3MTAsIDExNzEyLCAKKyAgICAxMTcxNCwgMTE3MTYsIDExNzE4LCAxMTcyMCwgMTE3MjIsIDExNzI0LCAxMTcyNiwgMTE3MjgsIDExNzMwLCAxMTczMiwgCisgICAgMTE3MzQsIDExNzM2LCAxMTczOCwgMTE3NDAsIDExNzQyLCAxMTc0NCwgMTE3NDYsIDExNzQ4LCAxMTc1MCwgMTE3NTIsIAorICAgIDExNzU0LCAxMTc1NiwgMTE3NTgsIDExNzYwLCAxMTc2MiwgMTE3NjQsIDExNzY2LCAxMTc2OCwgMTE3NzAsIDExNzcyLCAKKyAgICAxMTc3NCwgMTE3NzYsIDExNzc4LCAxMTc4MCwgMTE3ODIsIDExNzg0LCAxMTc4NiwgMTE3ODgsIDExNzkwLCAxMTc5MiwgCisgICAgMTE3OTQsIDExNzk2LCAwLCAwLCAxMTc5OCwgMTE4MDAsIDExODAyLCAxMTgwNCwgMTE4MDYsIDExODA4LCAxMTgxMCwgCisgICAgMTE4MTIsIDExODE0LCAxMTgxNiwgMTE4MTgsIDExODIwLCAxMTgyMiwgMTE4MjQsIDExODI2LCAxMTgyOCwgMTE4MzAsIAorICAgIDExODMyLCAxMTgzNCwgMTE4MzYsIDExODM4LCAxMTg0MCwgMTE4NDIsIDExODQ0LCAxMTg0NiwgMTE4NDgsIDExODUwLCAKKyAgICAxMTg1MiwgMTE4NTQsIDExODU2LCAxMTg1OCwgMTE4NjAsIDExODYyLCAxMTg2NCwgMTE4NjYsIDExODY4LCAxMTg3MCwgCisgICAgMTE4NzIsIDExODc0LCAxMTg3NiwgMTE4NzgsIDExODgwLCAxMTg4MiwgMTE4ODQsIDExODg2LCAxMTg4OCwgMTE4OTAsIAorICAgIDExODkyLCAxMTg5NCwgMTE4OTYsIDExODk4LCAxMTkwMCwgMTE5MDIsIDExOTA0LCAxMTkwNiwgMTE5MDgsIDExOTEwLCAKKyAgICAxMTkxMiwgMTE5MTQsIDExOTE2LCAxMTkxOCwgMTE5MjAsIDExOTIyLCAxMTkyNCwgMTE5MjYsIDExOTI4LCAxMTkzMCwgCisgICAgMTE5MzIsIDExOTM0LCAxMTkzNiwgMTE5MzgsIDExOTQwLCAxMTk0MiwgMTE5NDQsIDExOTQ2LCAxMTk0OCwgMTE5NTAsIAorICAgIDExOTUyLCAxMTk1NCwgMTE5NTYsIDExOTU4LCAxMTk2MCwgMTE5NjIsIDExOTY0LCAxMTk2NiwgMTE5NjgsIDExOTcwLCAKKyAgICAxMTk3MiwgMTE5NzQsIDExOTc2LCAxMTk3OCwgMTE5ODAsIDExOTgyLCAxMTk4NCwgMTE5ODYsIDExOTg4LCAxMTk5MCwgCisgICAgMTE5OTIsIDExOTk0LCAxMTk5NiwgMTE5OTgsIDEyMDAwLCAxMjAwMiwgMTIwMDQsIDEyMDA2LCAxMjAwOCwgMTIwMTAsIAorICAgIDEyMDEyLCAxMjAxNCwgMTIwMTYsIDEyMDE4LCAxMjAyMCwgMTIwMjIsIDEyMDI0LCAxMjAyNiwgMTIwMjgsIDEyMDMwLCAKKyAgICAxMjAzMiwgMTIwMzQsIDEyMDM2LCAxMjAzOCwgMTIwNDAsIDEyMDQyLCAxMjA0NCwgMTIwNDYsIDEyMDQ4LCAxMjA1MCwgCisgICAgMTIwNTIsIDEyMDU0LCAxMjA1NiwgMTIwNTgsIDEyMDYwLCAxMjA2MiwgMTIwNjQsIDEyMDY2LCAxMjA2OCwgMTIwNzAsIAorICAgIDEyMDcyLCAxMjA3NCwgMTIwNzYsIDEyMDc4LCAxMjA4MCwgMTIwODIsIDEyMDg0LCAxMjA4NiwgMTIwODgsIDEyMDkwLCAKKyAgICAxMjA5MiwgMTIwOTQsIDEyMDk2LCAxMjA5OCwgMTIxMDAsIDEyMTAyLCAxMjEwNCwgMTIxMDYsIDEyMTA4LCAxMjExMCwgCisgICAgMTIxMTIsIDEyMTE0LCAxMjExNiwgMTIxMTgsIDEyMTIwLCAxMjEyMiwgMTIxMjQsIDEyMTI2LCAxMjEyOCwgMTIxMzAsIAorICAgIDEyMTMyLCAxMjEzNCwgMTIxMzYsIDEyMTM4LCAxMjE0MCwgMTIxNDIsIDEyMTQ0LCAxMjE0NiwgMTIxNDgsIDEyMTUwLCAKKyAgICAxMjE1MiwgMTIxNTQsIDEyMTU2LCAxMjE1OCwgMTIxNjAsIDEyMTYyLCAxMjE2NCwgMTIxNjYsIDEyMTY4LCAxMjE3MCwgCisgICAgMTIxNzIsIDEyMTc0LCAxMjE3NiwgMTIxNzgsIDEyMTgwLCAxMjE4MiwgMTIxODQsIDEyMTg2LCAxMjE4OCwgMTIxOTAsIAorICAgIDEyMTkyLCAxMjE5NCwgMTIxOTYsIDEyMTk4LCAxMjIwMCwgMTIyMDIsIDEyMjA0LCAxMjIwNiwgMTIyMDgsIDEyMjEwLCAKKyAgICAxMjIxMiwgMTIyMTQsIDEyMjE2LCAxMjIxOCwgMTIyMjAsIDEyMjIyLCAxMjIyNCwgMTIyMjYsIDEyMjI4LCAxMjIzMCwgCisgICAgMTIyMzIsIDEyMjM0LCAxMjIzNiwgMTIyMzgsIDEyMjQwLCAxMjI0MiwgMTIyNDQsIDEyMjQ2LCAxMjI0OCwgMTIyNTAsIAorICAgIDEyMjUyLCAxMjI1NCwgMTIyNTYsIDEyMjU4LCAxMjI2MCwgMTIyNjIsIDEyMjY0LCAxMjI2NiwgMTIyNjgsIDEyMjcwLCAKKyAgICAxMjI3MiwgMTIyNzQsIDEyMjc2LCAxMjI3OCwgMTIyODAsIDEyMjgyLCAxMjI4NCwgMTIyODYsIDEyMjg4LCAxMjI5MCwgCisgICAgMTIyOTIsIDEyMjk0LCAxMjI5NiwgMTIyOTgsIDEyMzAwLCAxMjMwMiwgMTIzMDQsIDEyMzA2LCAxMjMwOCwgMTIzMTAsIAorICAgIDEyMzEyLCAxMjMxNCwgMTIzMTYsIDEyMzE4LCAxMjMyMCwgMTIzMjIsIDEyMzI0LCAxMjMyNiwgMTIzMjgsIDEyMzMwLCAKKyAgICAxMjMzMiwgMTIzMzQsIDEyMzM2LCAxMjMzOCwgMTIzNDAsIDEyMzQyLCAxMjM0NCwgMTIzNDYsIDEyMzQ4LCAxMjM1MCwgCisgICAgMTIzNTIsIDEyMzU0LCAxMjM1NiwgMTIzNTgsIDEyMzYwLCAxMjM2MiwgMTIzNjQsIDEyMzY2LCAxMjM2OCwgMTIzNzAsIAorICAgIDEyMzcyLCAxMjM3NCwgMTIzNzYsIDEyMzc4LCAxMjM4MCwgMCwgMCwgMTIzODIsIDEyMzg0LCAxMjM4NiwgMTIzODgsIAorICAgIDEyMzkwLCAxMjM5MiwgMTIzOTQsIDEyMzk2LCAxMjM5OCwgMTI0MDAsIDEyNDAyLCAxMjQwNCwgMTI0MDYsIDEyNDA4LCAKKyAgICAxMjQxMCwgMTI0MTIsIDEyNDE0LCAxMjQxNiwgMTI0MTgsIDEyNDIwLCAxMjQyMiwgMTI0MjQsIDEyNDI2LCAxMjQyOCwgCisgICAgMTI0MzAsIDEyNDMyLCAxMjQzNCwgMTI0MzYsIDEyNDM4LCAxMjQ0MCwgMTI0NDIsIDEyNDQ0LCAxMjQ0NiwgMTI0NDgsIAorICAgIDEyNDUwLCAxMjQ1MiwgMTI0NTQsIDEyNDU2LCAxMjQ1OCwgMTI0NjAsIDEyNDYyLCAxMjQ2NCwgMTI0NjYsIDEyNDY4LCAKKyAgICAxMjQ3MCwgMTI0NzIsIDEyNDc0LCAxMjQ3NiwgMTI0NzgsIDEyNDgwLCAxMjQ4MiwgMTI0ODQsIDEyNDg2LCAxMjQ4OCwgMCwgCisgICAgMTI0OTAsIDEyNDkyLCAxMjQ5NCwgMTI0OTYsIDEyNDk4LCAxMjUwMCwgMTI1MDIsIDEyNTA0LCAxMjUwNiwgMTI1MDgsIAorICAgIDEyNTEwLCAxMjUxMiwgMTI1MTQsIDEyNTE2LCAxMjUxOCwgMTI1MjAsIDEyNTIyLCAxMjUyNCwgMTI1MjYsIDEyNTI4LCAKKyAgICAxMjUzMCwgMTI1MzIsIDEyNTM0LCAxMjUzNiwgMTI1MzgsIDEyNTQwLCAxMjU0MiwgMCwgMTI1NDQsIDEyNTQ2LCAwLCAKKyAgICAxMjU0OCwgMCwgMCwgMTI1NTAsIDAsIDEyNTUyLCAxMjU1NCwgMTI1NTYsIDEyNTU4LCAxMjU2MCwgMTI1NjIsIDEyNTY0LCAKKyAgICAxMjU2NiwgMTI1NjgsIDEyNTcwLCAwLCAxMjU3MiwgMTI1NzQsIDEyNTc2LCAxMjU3OCwgMCwgMTI1ODAsIDAsIDEyNTgyLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAxMjU4NCwgMCwgMCwgMCwgMCwgMTI1ODYsIDAsIDEyNTg4LCAwLCAxMjU5MCwgMCwgMTI1OTIsIAorICAgIDEyNTk0LCAxMjU5NiwgMCwgMTI1OTgsIDEyNjAwLCAwLCAxMjYwMiwgMCwgMCwgMTI2MDQsIDAsIDEyNjA2LCAwLCAxMjYwOCwgCisgICAgMCwgMTI2MTAsIDAsIDEyNjEyLCAwLCAxMjYxNCwgMTI2MTYsIDAsIDEyNjE4LCAwLCAwLCAxMjYyMCwgMTI2MjIsIDEyNjI0LCAKKyAgICAxMjYyNiwgMCwgMTI2MjgsIDEyNjMwLCAxMjYzMiwgMTI2MzQsIDEyNjM2LCAxMjYzOCwgMTI2NDAsIDAsIDEyNjQyLCAKKyAgICAxMjY0NCwgMTI2NDYsIDEyNjQ4LCAwLCAxMjY1MCwgMTI2NTIsIDEyNjU0LCAxMjY1NiwgMCwgMTI2NTgsIDAsIDEyNjYwLCAKKyAgICAxMjY2MiwgMTI2NjQsIDEyNjY2LCAxMjY2OCwgMTI2NzAsIDEyNjcyLCAxMjY3NCwgMTI2NzYsIDEyNjc4LCAwLCAxMjY4MCwgCisgICAgMTI2ODIsIDEyNjg0LCAxMjY4NiwgMTI2ODgsIDEyNjkwLCAxMjY5MiwgMTI2OTQsIDEyNjk2LCAxMjY5OCwgMTI3MDAsIAorICAgIDEyNzAyLCAxMjcwNCwgMTI3MDYsIDEyNzA4LCAxMjcxMCwgMTI3MTIsIDAsIDAsIDAsIDAsIDAsIDEyNzE0LCAxMjcxNiwgCisgICAgMTI3MTgsIDAsIDEyNzIwLCAxMjcyMiwgMTI3MjQsIDEyNzI2LCAxMjcyOCwgMCwgMTI3MzAsIDEyNzMyLCAxMjczNCwgCisgICAgMTI3MzYsIDEyNzM4LCAxMjc0MCwgMTI3NDIsIDEyNzQ0LCAxMjc0NiwgMTI3NDgsIDEyNzUwLCAxMjc1MiwgMTI3NTQsIAorICAgIDEyNzU2LCAxMjc1OCwgMTI3NjAsIDEyNzYyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAxMjc2NCwgMTI3NjcsIDEyNzcwLCAxMjc3MywgMTI3NzYsIDEyNzc5LCAxMjc4MiwgMTI3ODUsIAorICAgIDEyNzg4LCAxMjc5MSwgMTI3OTQsIDAsIDAsIDAsIDAsIDAsIDEyNzk3LCAxMjgwMSwgMTI4MDUsIDEyODA5LCAxMjgxMywgCisgICAgMTI4MTcsIDEyODIxLCAxMjgyNSwgMTI4MjksIDEyODMzLCAxMjgzNywgMTI4NDEsIDEyODQ1LCAxMjg0OSwgMTI4NTMsIAorICAgIDEyODU3LCAxMjg2MSwgMTI4NjUsIDEyODY5LCAxMjg3MywgMTI4NzcsIDEyODgxLCAxMjg4NSwgMTI4ODksIDEyODkzLCAKKyAgICAxMjg5NywgMTI5MDEsIDEyOTA1LCAxMjkwNywgMTI5MDksIDEyOTEyLCAwLCAxMjkxNSwgMTI5MTcsIDEyOTE5LCAxMjkyMSwgCisgICAgMTI5MjMsIDEyOTI1LCAxMjkyNywgMTI5MjksIDEyOTMxLCAxMjkzMywgMTI5MzUsIDEyOTM3LCAxMjkzOSwgMTI5NDEsIAorICAgIDEyOTQzLCAxMjk0NSwgMTI5NDcsIDEyOTQ5LCAxMjk1MSwgMTI5NTMsIDEyOTU1LCAxMjk1NywgMTI5NTksIDEyOTYxLCAKKyAgICAxMjk2MywgMTI5NjUsIDEyOTY3LCAxMjk3MCwgMTI5NzMsIDEyOTc2LCAxMjk3OSwgMTI5ODMsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyOTg2LCAxMjk4OSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI5OTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDEyOTk1LCAxMjk5OCwgMTMwMDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDEzMDAzLCAxMzAwNSwgMTMwMDcsIDEzMDA5LCAxMzAxMSwgMTMwMTMsIDEzMDE1LCAxMzAxNywgMTMwMTksIDEzMDIxLCAKKyAgICAxMzAyMywgMTMwMjUsIDEzMDI3LCAxMzAyOSwgMTMwMzEsIDEzMDMzLCAxMzAzNSwgMTMwMzcsIDEzMDM5LCAxMzA0MSwgCisgICAgMTMwNDMsIDEzMDQ1LCAxMzA0NywgMTMwNDksIDEzMDUxLCAxMzA1MywgMTMwNTUsIDEzMDU3LCAxMzA1OSwgMTMwNjEsIAorICAgIDEzMDYzLCAxMzA2NSwgMTMwNjcsIDEzMDY5LCAxMzA3MSwgMTMwNzMsIDEzMDc1LCAxMzA3NywgMTMwNzksIDEzMDgxLCAKKyAgICAxMzA4MywgMTMwODUsIDEzMDg3LCAwLCAwLCAwLCAwLCAwLCAxMzA4OSwgMTMwOTMsIDEzMDk3LCAxMzEwMSwgMTMxMDUsIAorICAgIDEzMTA5LCAxMzExMywgMTMxMTcsIDEzMTIxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzEyNSwgMTMxMjcsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDEzMTI5LCAxMzEzMSwgMTMxMzMsIDEzMTM1LCAxMzEzNywgMTMxMzksIDEzMTQxLCAxMzE0MywgMTMxNDUsIAorICAgIDEzMTQ3LCAxMzE0OSwgMTMxNTEsIDEzMTUzLCAxMzE1NSwgMTMxNTcsIDEzMTU5LCAxMzE2MSwgMTMxNjMsIDEzMTY1LCAKKyAgICAxMzE2NywgMTMxNjksIDEzMTcxLCAxMzE3MywgMTMxNzUsIDEzMTc3LCAxMzE3OSwgMTMxODEsIDEzMTgzLCAxMzE4NSwgCisgICAgMTMxODcsIDEzMTg5LCAxMzE5MSwgMTMxOTMsIDEzMTk1LCAxMzE5NywgMTMxOTksIDEzMjAxLCAxMzIwMywgMTMyMDUsIAorICAgIDEzMjA3LCAxMzIwOSwgMTMyMTEsIDEzMjEzLCAxMzIxNSwgMTMyMTcsIDEzMjE5LCAxMzIyMSwgMTMyMjMsIDEzMjI1LCAKKyAgICAxMzIyNywgMTMyMjksIDEzMjMxLCAxMzIzMywgMTMyMzUsIDEzMjM3LCAxMzIzOSwgMTMyNDEsIDEzMjQzLCAxMzI0NSwgCisgICAgMTMyNDcsIDEzMjQ5LCAxMzI1MSwgMTMyNTMsIDEzMjU1LCAxMzI1NywgMTMyNTksIDEzMjYxLCAxMzI2MywgMTMyNjUsIAorICAgIDEzMjY3LCAxMzI2OSwgMTMyNzEsIDEzMjczLCAxMzI3NSwgMTMyNzcsIDEzMjc5LCAxMzI4MSwgMTMyODMsIDEzMjg1LCAKKyAgICAxMzI4NywgMTMyODksIDEzMjkxLCAxMzI5MywgMTMyOTUsIDEzMjk3LCAxMzI5OSwgMTMzMDEsIDEzMzAzLCAxMzMwNSwgCisgICAgMTMzMDcsIDEzMzA5LCAxMzMxMSwgMTMzMTMsIDEzMzE1LCAxMzMxNywgMTMzMTksIDEzMzIxLCAxMzMyMywgMTMzMjUsIAorICAgIDEzMzI3LCAxMzMyOSwgMTMzMzEsIDEzMzMzLCAxMzMzNSwgMTMzMzcsIDEzMzM5LCAxMzM0MSwgMTMzNDMsIDEzMzQ1LCAKKyAgICAxMzM0NywgMTMzNDksIDEzMzUxLCAxMzM1MywgMTMzNTUsIDEzMzU3LCAxMzM1OSwgMTMzNjEsIDEzMzYzLCAxMzM2NSwgCisgICAgMTMzNjcsIDEzMzY5LCAxMzM3MSwgMTMzNzMsIDEzMzc1LCAxMzM3NywgMTMzNzksIDEzMzgxLCAxMzM4MywgMTMzODUsIAorICAgIDEzMzg3LCAxMzM4OSwgMTMzOTEsIDEzMzkzLCAxMzM5NSwgMTMzOTcsIDEzMzk5LCAxMzQwMSwgMTM0MDMsIDEzNDA1LCAKKyAgICAxMzQwNywgMTM0MDksIDEzNDExLCAxMzQxMywgMTM0MTUsIDEzNDE3LCAxMzQxOSwgMTM0MjEsIDEzNDIzLCAxMzQyNSwgCisgICAgMTM0MjcsIDEzNDI5LCAxMzQzMSwgMTM0MzMsIDEzNDM1LCAxMzQzNywgMTM0MzksIDEzNDQxLCAxMzQ0MywgMTM0NDUsIAorICAgIDEzNDQ3LCAxMzQ0OSwgMTM0NTEsIDEzNDUzLCAxMzQ1NSwgMTM0NTcsIDEzNDU5LCAxMzQ2MSwgMTM0NjMsIDEzNDY1LCAKKyAgICAxMzQ2NywgMTM0NjksIDEzNDcxLCAxMzQ3MywgMTM0NzUsIDEzNDc3LCAxMzQ3OSwgMTM0ODEsIDEzNDgzLCAxMzQ4NSwgCisgICAgMTM0ODcsIDEzNDg5LCAxMzQ5MSwgMTM0OTMsIDEzNDk1LCAxMzQ5NywgMTM0OTksIDEzNTAxLCAxMzUwMywgMTM1MDUsIAorICAgIDEzNTA3LCAxMzUwOSwgMTM1MTEsIDEzNTEzLCAxMzUxNSwgMTM1MTcsIDEzNTE5LCAxMzUyMSwgMTM1MjMsIDEzNTI1LCAKKyAgICAxMzUyNywgMTM1MjksIDEzNTMxLCAxMzUzMywgMTM1MzUsIDEzNTM3LCAxMzUzOSwgMTM1NDEsIDEzNTQzLCAxMzU0NSwgCisgICAgMTM1NDcsIDEzNTQ5LCAxMzU1MSwgMTM1NTMsIDEzNTU1LCAxMzU1NywgMTM1NTksIDEzNTYxLCAxMzU2MywgMTM1NjUsIAorICAgIDEzNTY3LCAxMzU2OSwgMTM1NzEsIDEzNTczLCAxMzU3NSwgMTM1NzcsIDEzNTc5LCAxMzU4MSwgMTM1ODMsIDEzNTg1LCAKKyAgICAxMzU4NywgMTM1ODksIDEzNTkxLCAxMzU5MywgMTM1OTUsIDEzNTk3LCAxMzU5OSwgMTM2MDEsIDEzNjAzLCAxMzYwNSwgCisgICAgMTM2MDcsIDEzNjA5LCAxMzYxMSwgMTM2MTMsIDEzNjE1LCAxMzYxNywgMTM2MTksIDEzNjIxLCAxMzYyMywgMTM2MjUsIAorICAgIDEzNjI3LCAxMzYyOSwgMTM2MzEsIDEzNjMzLCAxMzYzNSwgMTM2MzcsIDEzNjM5LCAxMzY0MSwgMTM2NDMsIDEzNjQ1LCAKKyAgICAxMzY0NywgMTM2NDksIDEzNjUxLCAxMzY1MywgMTM2NTUsIDEzNjU3LCAxMzY1OSwgMTM2NjEsIDEzNjYzLCAxMzY2NSwgCisgICAgMTM2NjcsIDEzNjY5LCAxMzY3MSwgMTM2NzMsIDEzNjc1LCAxMzY3NywgMTM2NzksIDEzNjgxLCAxMzY4MywgMTM2ODUsIAorICAgIDEzNjg3LCAxMzY4OSwgMTM2OTEsIDEzNjkzLCAxMzY5NSwgMTM2OTcsIDEzNjk5LCAxMzcwMSwgMTM3MDMsIDEzNzA1LCAKKyAgICAxMzcwNywgMTM3MDksIDEzNzExLCAxMzcxMywgMTM3MTUsIDEzNzE3LCAxMzcxOSwgMTM3MjEsIDEzNzIzLCAxMzcyNSwgCisgICAgMTM3MjcsIDEzNzI5LCAxMzczMSwgMTM3MzMsIDEzNzM1LCAxMzczNywgMTM3MzksIDEzNzQxLCAxMzc0MywgMTM3NDUsIAorICAgIDEzNzQ3LCAxMzc0OSwgMTM3NTEsIDEzNzUzLCAxMzc1NSwgMTM3NTcsIDEzNzU5LCAxMzc2MSwgMTM3NjMsIDEzNzY1LCAKKyAgICAxMzc2NywgMTM3NjksIDEzNzcxLCAxMzc3MywgMTM3NzUsIDEzNzc3LCAxMzc3OSwgMTM3ODEsIDEzNzgzLCAxMzc4NSwgCisgICAgMTM3ODcsIDEzNzg5LCAxMzc5MSwgMTM3OTMsIDEzNzk1LCAxMzc5NywgMTM3OTksIDEzODAxLCAxMzgwMywgMTM4MDUsIAorICAgIDEzODA3LCAxMzgwOSwgMTM4MTEsIDEzODEzLCAxMzgxNSwgMTM4MTcsIDEzODE5LCAxMzgyMSwgMTM4MjMsIDEzODI1LCAKKyAgICAxMzgyNywgMTM4MjksIDEzODMxLCAxMzgzMywgMTM4MzUsIDEzODM3LCAxMzgzOSwgMTM4NDEsIDEzODQzLCAxMzg0NSwgCisgICAgMTM4NDcsIDEzODQ5LCAxMzg1MSwgMTM4NTMsIDEzODU1LCAxMzg1NywgMTM4NTksIDEzODYxLCAxMzg2MywgMTM4NjUsIAorICAgIDEzODY3LCAxMzg2OSwgMTM4NzEsIDEzODczLCAxMzg3NSwgMTM4NzcsIDEzODc5LCAxMzg4MSwgMTM4ODMsIDEzODg1LCAKKyAgICAxMzg4NywgMTM4ODksIDEzODkxLCAxMzg5MywgMTM4OTUsIDEzODk3LCAxMzg5OSwgMTM5MDEsIDEzOTAzLCAxMzkwNSwgCisgICAgMTM5MDcsIDEzOTA5LCAxMzkxMSwgMTM5MTMsIDEzOTE1LCAxMzkxNywgMTM5MTksIDEzOTIxLCAxMzkyMywgMTM5MjUsIAorICAgIDEzOTI3LCAxMzkyOSwgMTM5MzEsIDEzOTMzLCAxMzkzNSwgMTM5MzcsIDEzOTM5LCAxMzk0MSwgMTM5NDMsIDEzOTQ1LCAKKyAgICAxMzk0NywgMTM5NDksIDEzOTUxLCAxMzk1MywgMTM5NTUsIDEzOTU3LCAxMzk1OSwgMTM5NjEsIDEzOTYzLCAxMzk2NSwgCisgICAgMTM5NjcsIDEzOTY5LCAxMzk3MSwgMTM5NzMsIDEzOTc1LCAxMzk3NywgMTM5NzksIDEzOTgxLCAxMzk4MywgMTM5ODUsIAorICAgIDEzOTg3LCAxMzk4OSwgMTM5OTEsIDEzOTkzLCAxMzk5NSwgMTM5OTcsIDEzOTk5LCAxNDAwMSwgMTQwMDMsIDE0MDA1LCAKKyAgICAxNDAwNywgMTQwMDksIDE0MDExLCAxNDAxMywgMTQwMTUsIDE0MDE3LCAxNDAxOSwgMTQwMjEsIDE0MDIzLCAxNDAyNSwgCisgICAgMTQwMjcsIDE0MDI5LCAxNDAzMSwgMTQwMzMsIDE0MDM1LCAxNDAzNywgMTQwMzksIDE0MDQxLCAxNDA0MywgMTQwNDUsIAorICAgIDE0MDQ3LCAxNDA0OSwgMTQwNTEsIDE0MDUzLCAxNDA1NSwgMTQwNTcsIDE0MDU5LCAxNDA2MSwgMTQwNjMsIDE0MDY1LCAKKyAgICAxNDA2NywgMTQwNjksIDE0MDcxLCAxNDA3MywgMTQwNzUsIDE0MDc3LCAxNDA3OSwgMTQwODEsIDE0MDgzLCAxNDA4NSwgCisgICAgMTQwODcsIDE0MDg5LCAxNDA5MSwgMTQwOTMsIDE0MDk1LCAxNDA5NywgMTQwOTksIDE0MTAxLCAxNDEwMywgMTQxMDUsIAorICAgIDE0MTA3LCAxNDEwOSwgMTQxMTEsIDE0MTEzLCAxNDExNSwgMTQxMTcsIDE0MTE5LCAxNDEyMSwgMTQxMjMsIDE0MTI1LCAKKyAgICAxNDEyNywgMTQxMjksIDE0MTMxLCAxNDEzMywgMTQxMzUsIDE0MTM3LCAxNDEzOSwgMTQxNDEsIDE0MTQzLCAxNDE0NSwgCisgICAgMTQxNDcsIDE0MTQ5LCAxNDE1MSwgMTQxNTMsIDE0MTU1LCAxNDE1NywgMTQxNTksIDE0MTYxLCAxNDE2MywgMTQxNjUsIAorICAgIDE0MTY3LCAxNDE2OSwgMTQxNzEsIDE0MTczLCAxNDE3NSwgMTQxNzcsIDE0MTc5LCAxNDE4MSwgMTQxODMsIDE0MTg1LCAKKyAgICAxNDE4NywgMTQxODksIDE0MTkxLCAxNDE5MywgMTQxOTUsIDE0MTk3LCAxNDE5OSwgMTQyMDEsIDE0MjAzLCAxNDIwNSwgCisgICAgMTQyMDcsIDE0MjA5LCAxNDIxMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiB9OwogCiAvKiBORkMgcGFpcnMgKi8KICNkZWZpbmUgQ09NUF9TSElGVCAyCiBzdGF0aWMgdW5zaWduZWQgc2hvcnQgY29tcF9pbmRleFtdID0gewogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMsIDAsIDAsIDAsIDAsIDAsIDAsIDQsIDUsIDYsIDcsIDgsIDksIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwLCAwLCAwLCAxMSwgMCwgMTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzLCAxNCwgCi0gICAgMTUsIDAsIDAsIDE2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNywgMTgsIDE5LCAyMCwgMjEsIDIyLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMxLCAzMiwgMzMsIDAsIDAsIDM0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAzNSwgMzYsIDM3LCAzOCwgMzksIDQwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ5LCAwLCAKLSAgICA1MCwgMCwgNTEsIDUyLCA1MywgMCwgMCwgMCwgMCwgMCwgMCwgNTQsIDAsIDAsIDU1LCA1NiwgNTcsIDU4LCA1OSwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgNjAsIDYxLCAwLCAwLCA2MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjMsIDY0LCA2NSwgMCwgCi0gICAgNjYsIDY3LCA2OCwgMCwgMCwgMCwgMCwgMCwgMCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgNzUsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDc2LCAwLCA3NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzgsIDc5LCAwLCA4MCwgODEsIDgyLCAKLSAgICA4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODQsIDg1LCA4NiwgMCwgODcsIDg4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCA4OSwgOTAsIDAsIDkxLCA5MiwgOTMsIDAsIDAsIDAsIDAsIDAsIDAsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTAxLCAwLCAwLCAxMDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwMywgCi0gICAgMTA0LCAwLCAwLCAxMDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMTA3LCAxMDgsIDEwOSwgMCwgMTEwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTEsIDExMiwgCi0gICAgMCwgMTEzLCAxMTQsIDAsIDExNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTE2LCAxMTcsIDExOCwgMTE5LCAxMjAsIDEyMSwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTIyLCAwLCAwLCAxMjMsIDAsIDEyNCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI1LCAKLSAgICAxMjYsIDEyNywgMTI4LCAwLCAxMjksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzMCwgMCwgMTMxLCAxMzIsIDEzMywgCi0gICAgMTM0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzUsIDEzNiwgMTM3LCAxMzgsIDEzOSwgMTQwLCAxNDEsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDE0MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQzLCAxNDQsIDE0NSwgMTQ2LCAwLCAKLSAgICAxNDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0OCwgMTQ5LCAxNTAsIDE1MSwgMTUyLCAxNTMsIDE1NCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMTU1LCAxNTYsIDE1NywgMTU4LCAxNTksIDE2MCwgMTYxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNjIsIAotICAgIDAsIDE2MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTY0LCAwLCAwLCAxNjUsIDE2NiwgMTY3LCAwLCAxNjgsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDE2OSwgMCwgMCwgMTcwLCAxNzEsIDE3MiwgMTczLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxNzQsIDE3NSwgMCwgMCwgMTc2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNzcsIDE3OCwgMTc5LCAxODAsIDAsIDE4MSwgCi0gICAgMTgyLCAxODMsIDAsIDAsIDAsIDAsIDAsIDAsIDE4NCwgMTg1LCAxODYsIDE4NywgMTg4LCAwLCAxODksIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDE5MCwgMTkxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOTIsIDE5MywgMTk0LCAKLSAgICAxOTUsIDE5NiwgMTk3LCAxOTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE5OSwgMjAwLCAyMDEsIDAsIDIwMiwgMjAzLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMDQsIDIwNSwgMjA2LCAyMDcsIDIwOCwgMjA5LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAyMTAsIDIxMSwgMjEyLCAyMTMsIDIxNCwgMjE1LCAyMTYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIxNywgMCwgMCwgMCwgCi0gICAgMjE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMTksIDIyMCwgMjIxLCAyMjIsIDAsIDIyMywgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMjI0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMjUsIDIyNiwgMjI3LCAwLCAKLSAgICAyMjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIyOSwgMjMwLCAyMzEsIDAsIDIzMiwgMCwgMjMzLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAyMzQsIDIzNSwgMCwgMCwgMCwgMCwgMCwgMjM2LCAwLCAwLCAwLCAwLCAwLCAwLCAyMzcsIDIzOCwgMjM5LCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDI0MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjQyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAyNDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI0NCwgMjQ1LCAyNDYsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMjQ4LCAyNDksIDI1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjUxLCAyNTIsIDI1MywgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjU0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNTUsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI1NiwgMjU3LCAwLCAyNTgsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDI1OSwgMjYwLCAyNjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI2MiwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAyNjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI2NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMjY2LCAyNjcsIDI2OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjY5LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNzAsIDI3MSwgMjcyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAyNzMsIDI3NCwgMjc1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNzYsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI3NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjc4LCAyNzksIAotICAgIDAsIDI4MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjgxLCAyODIsIDI4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMjg0LCAyODUsIDI4NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjg3LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyODgsIDI4OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMjkwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyOTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDI5MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjkzLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyOTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDI5NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjk2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAyOTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI5OCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjk5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAzMDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMwMSwgMzAyLCAzMDMsIDAsIDAsIDMwNCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMzA1LCAzMDYsIDMwNywgMCwgMzA4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMDksIAotICAgIDMxMCwgMzExLCAwLCAzMTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMxMywgMCwgMzE0LCAwLCAzMTUsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMxNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzE3LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDMxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzIwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAzMjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMyMiwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAzMjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMyNSwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMzI2LCAzMjcsIDAsIDMyOCwgMzI5LCAwLCAwLCAzMzAsIDAsIDAsIDAsIDAsIDAsIDAsIDMzMSwgMCwgCi0gICAgMCwgMzMyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMzMsIDMzNCwgMCwgMCwgMzM1LCAwLCAwLCAwLCAzMzYsIDAsIAotICAgIDAsIDAsIDAsIDAsIDMzNywgMzM4LCAzMzksIDAsIDM0MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzQxLCAwLCAwLCAKLSAgICAzNDIsIDM0MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzQ0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAzNDUsIDM0NiwgMzQ3LCAwLCAzNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM0OSwgMCwgMCwgMCwgCi0gICAgMzUwLCAwLCAwLCAzNTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM1MiwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzUzLCAwLCAwLCAwLCAwLCAwLCAzNTQsIDM1NSwgMzU2LCAwLCAzNTcsIDAsIAotICAgIDAsIDM1OCwgMzU5LCAwLCAwLCAwLCAwLCAwLCAzNjAsIDAsIDAsIDAsIDM2MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMzYyLCAwLCAwLCAzNjMsIDM2NCwgMCwgMCwgMzY1LCAwLCAwLCAwLCAwLCAwLCAwLCAzNjYsIDM2NywgMCwgMzY4LCAwLCAwLCAKLSAgICAwLCAzNjksIDAsIDAsIDAsIDAsIDAsIDM3MCwgMzcxLCAwLCAwLCAzNzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDM3MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzc0LCAzNzUsIDM3NiwgMzc3LCAzNzgsIDAsIDAsIAotICAgIDM3OSwgMCwgMCwgMCwgMCwgMCwgMCwgMzgwLCAwLCAwLCAzODEsIDAsIDAsIDAsIDM4MiwgMCwgMCwgMCwgMCwgMCwgMzgzLCAKLSAgICAzODQsIDAsIDAsIDAsIDAsIDAsIDM4NSwgMCwgMCwgMCwgMCwgMCwgMCwgMzg2LCAwLCAwLCAwLCAwLCAwLCAwLCAzODcsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM4OCwgMCwgMCwgMCwgMCwgMCwgMCwgMzg5LCAzOTAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMzkyLCAzOTMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMzk1LCAzOTYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5NywgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzk4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAzOTksIDQwMCwgNDAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MDIsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQwMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDA0LCAKLSAgICA0MDUsIDQwNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA0MDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQwOSwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDEwLCA0MTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDQxMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDEzLCA0MTQsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQxNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDE2LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MTcsIDQxOCwgNDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA0MjAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQyMSwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDIyLCA0MjMsIDQyNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNDI1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDQyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDI4LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MjksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDQzMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDMxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA0MzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzMywgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDM0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA0MzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzNiwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDM3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MzgsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNDQwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NDEsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ0MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDQzLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDQ0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDQ2LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ0OCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDQ5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA0NTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ1MSwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDUyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NTMsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ1NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNDU1LCA0NTYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ1NywgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDU4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NTksIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ2MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNCwgNSwgNiwgNywgOCwgOSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTAsIDAsIDAsIDExLCAwLCAxMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTMsIAorICAgIDE0LCAxNSwgMCwgMCwgMTYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE3LCAxOCwgMCwgMTksIDIwLCAyMSwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMjIsIDIzLCAyNCwgMjUsIDI2LCAyNywgMjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI5LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMCwgMzEsIDMyLCAwLCAwLCAzMywgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMzQsIDM1LCAzNiwgMCwgMzcsIDM4LCAzOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDAsIDQxLCA0MiwgNDMsIDQ0LCAKKyAgICA0NSwgNDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA0OCwgMCwgNDksIDAsIDUwLCA1MSwgNTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUzLCAwLCA1NCwgMCwgNTUsIDU2LCA1NywgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTgsIDU5LCAwLCAwLCA2MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjEsIDYyLCAKKyAgICA2MywgMCwgNjQsIDY1LCA2NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjcsIDY4LCA2OSwgNzAsIDcxLCA3MiwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNzMsIDc0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NSwgNzYsIDc3LCAKKyAgICA3OCwgNzksIDgwLCA4MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODIsIDgzLCA4NCwgMCwgODUsIDg2LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA4NywgODgsIDAsIDg5LCA5MCwgOTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDkyLCA5MywgOTQsIAorICAgIDk1LCA5NiwgOTcsIDk4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5OSwgMCwgMCwgMCwgMTAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAxMDEsIDEwMiwgMCwgMCwgMTAzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDQsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwNSwgMTA2LCAxMDcsIDAsIDEwOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMTA5LCAxMTAsIDExMSwgMCwgMTEyLCAwLCAxMTMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExNCwgMTE1LCAxMTYsIAorICAgIDExNywgMTE4LCAxMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyMCwgMCwgMCwgMTIxLCAwLCAxMjIsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDEyMywgMTI0LCAxMjUsIDAsIDAsIDEyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI3LCAKKyAgICAxMjgsIDAsIDEyOSwgMTMwLCAxMzEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzMiwgMTMzLCAxMzQsIDEzNSwgMTM2LCAxMzcsIAorICAgIDEzOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxNDAsIDE0MSwgMTQyLCAwLCAwLCAxNDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0NCwgMTQ1LCAxNDYsIDAsIDE0NywgCisgICAgMTQ4LCAxNDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE1MCwgMTUxLCAxNTIsIDE1MywgMTU0LCAxNTUsIDE1NiwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMTU3LCAwLCAxNTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE1OSwgMCwgMTYwLCAKKyAgICAwLCAxNjEsIDE2MiwgMTYzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNjQsIDAsIDE2NSwgMCwgMTY2LCAxNjcsIDE2OCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMTY5LCAxNzAsIDAsIDAsIDE3MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcyLCAKKyAgICAxNzMsIDE3NCwgMCwgMTc1LCAxNzYsIDE3NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTc4LCAxNzksIDE4MCwgMTgxLCAxODIsIAorICAgIDE4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTg0LCAxODUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDE4NiwgMTg3LCAxODgsIDE4OSwgMTkwLCAxOTEsIDE5MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTkzLCAxOTQsIDE5NSwgCisgICAgMCwgMTk2LCAxOTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE5OCwgMTk5LCAwLCAyMDAsIDIwMSwgMjAyLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAyMDMsIDIwNCwgMjA1LCAyMDYsIDIwNywgMjA4LCAyMDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDIxMCwgMCwgMCwgMCwgMjExLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMTIsIDIxMywgMjE0LCAwLCAyMTUsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIxNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjE3LCAKKyAgICAyMTgsIDIxOSwgMCwgMjIwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMjEsIDIyMiwgMjIzLCAwLCAyMjQsIDAsIAorICAgIDIyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjI2LCAwLCAwLCAwLCAwLCAwLCAwLCAyMjcsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDIyOCwgMCwgMjI5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMzAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDIzMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjMyLCAyMzMsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIzNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMjM1LCAwLCAyMzYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIzNywgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjM4LCAwLCAyMzksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDI0MCwgMjQxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNDIsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDI0MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjQ0LCAyNDUsIAorICAgIDI0NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjQ3LCAwLCAyNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDI0OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjUwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNTEsIDI1MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMjUzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNTQsIDAsIDI1NSwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMjU2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNTcsIDAsIAorICAgIDI1OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjU5LCAyNjAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDI2MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYyLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNjMsIDI2NCwgMjY1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAyNjYsIDAsIDI2NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjY4LCAwLCAyNjksIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI3MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjcxLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDI3MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjc0LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI3NiwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjc3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAyNzgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI3OSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjgwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyODEsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI4MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMjgzLCAwLCAyODQsIDAsIDI4NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjg2LCAwLCAyODcsIDAsIAorICAgIDI4OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjg5LCAwLCAyOTAsIDAsIDI5MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMjkyLCAwLCAyOTMsIDAsIDI5NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjk1LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyOTYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDI5NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjk4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAyOTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMwMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAzMDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMwMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMzA0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMDUsIDMwNiwgMCwgMzA3LCAKKyAgICAwLCAwLCAwLCAzMDgsIDAsIDAsIDAsIDAsIDAsIDAsIDMwOSwgMCwgMCwgMzEwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAzMTEsIDAsIDAsIDMxMiwgMCwgMCwgMCwgMzEzLCAwLCAwLCAwLCAwLCAwLCAwLCAzMTQsIDMxNSwgMCwgMzE2LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMTcsIDAsIDAsIDMxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMzE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMjAsIDMyMSwgMCwgMzIyLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMjMsIDAsIDAsIDMyNCwgMCwgMCwgMCwgMzI1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAzMjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMyNywgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMzI4LCAzMjksIDAsIDMzMCwgMCwgMCwgMCwgMzMxLCAwLCAwLCAwLCAwLCAwLCAwLCAzMzIsIDAsIDAsIAorICAgIDMzMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzM0LCAwLCAwLCAzMzUsIDAsIDAsIDAsIDMzNiwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMzM3LCAzMzgsIDAsIDMzOSwgMCwgMCwgMCwgMzQwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNDEsIDAsIDAsIAorICAgIDM0MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzQzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAzNDQsIDM0NSwgMCwgMzQ2LCAwLCAwLCAwLCAzNDcsIDAsIDAsIDAsIDAsIDAsIDAsIDM0OCwgMCwgMCwgMzQ5LCAKKyAgICAwLCAwLCAwLCAzNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDM1MSwgMCwgMCwgMCwgMCwgMCwgMCwgMzUyLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAzNTMsIDAsIDAsIDAsIDAsIDAsIDAsIDM1NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMzU1LCAwLCAwLCAwLCAwLCAwLCAwLCAzNTYsIDM1NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMzU4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDM2MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzYxLCAzNjIsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM2MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMzY0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNjUsIDM2NiwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMzY3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNjgsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM2OSwgMzcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAzNzEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM3MiwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzczLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNzQsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM3NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMzc2LCAzNzcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM3OCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzc5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzODAsIAorICAgIDM4MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzgyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAzODMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM4NCwgMzg1LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzODYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDM4NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzg4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAzODksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5MCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzkxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAzOTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMzk0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzOTUsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5NiwgMzk3LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzOTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5OSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA0MDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQwMiwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDAzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA0MDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQwNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNDA2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MDcsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQwOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgNDA5LCA0MTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQxMSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDEyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MTMsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQxNCwgNDE1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA0MTYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQxNywgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA0MTksIDQyMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDIxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQyMywgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDI0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA0MjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQyNiwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDI3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MjgsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQyOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgNDMwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MzEsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDMzLCAwLCAKKyAgICAwLCA0MzQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNDM2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MzcsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgNDM5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NDAsIDQ0MSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNDQyLCA0NDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ0NCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDQ1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA0NDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ0NywgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCA0NDksIDAsIDAsIDAsIDAsIDAsIDAsIDQ1MCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNDUxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NTIsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ1MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgNDU0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDQ1NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDU3LCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA0NTgsIDAsIDAsIDAsIDAsIDAsIDAsIDQ1OSwgMCwgMCwgMCwgMCwgMCwgMCwgNDYwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCA0NjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ2MiwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDYzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NjQsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ2NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNDY2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDQ2OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDY5LCAwLCAKLSAgICA0NzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgNDcyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NzMsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNDc1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NzYsIDQ3NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNDc4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NzksIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNDgxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0ODIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDQ4MywgMCwgMCwgMCwgMCwgMCwgMCwgNDg0LCAwLCAwLCAwLCAwLCAwLCAwLCA0ODUsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDQ4NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDg3LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0ODgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4OSwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDkwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA0OTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ5MiwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNDkzLCAwLCAwLCAwLCAwLCAwLCAwLCA0OTQsIDAsIDAsIDAsIDAsIDAsIDAsIDQ5NSwgMCwgMCwgMCwgMCwgMCwgMCwgNDk2LCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0OTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDQ5OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDk5LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwMSwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTAyLCAwLCAwLCAwLCAwLCAwLCAwLCA1MDMsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTA1LCAKLSAgICA1MDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgNTA4LCAwLCAwLCAwLCAwLCAwLCAwLCA1MDksIDAsIDAsIDAsIDAsIDAsIDAsIDUxMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNTExLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MTIsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUxMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTE0LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDUxNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTE3LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA1MTgsIDAsIDAsIDAsIDAsIDAsIDAsIDUxOSwgMCwgMCwgMCwgMCwgMCwgMCwgNTIwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MjEsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUyMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNTIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MjQsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTI2LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MjcsIDAsIDAsIDAsIDAsIDAsIDAsIDUyOCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNTI5LCAwLCAwLCAwLCAwLCAwLCAwLCA1MzAsIDAsIDAsIDAsIDAsIDAsIDAsIDUzMSwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNTMyLCA1MzMsIDAsIDAsIDAsIDAsIDAsIDUzNCwgMCwgMCwgMCwgMCwgMCwgMCwgNTM1LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA1MzYsIDAsIDAsIDAsIDAsIDAsIDAsIDUzNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTM4LCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MzksIDU0MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNTQxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NDIsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDU0MywgMCwgMCwgMCwgMCwgMCwgMCwgNTQ0LCAwLCAwLCAwLCAwLCAwLCAwLCA1NDUsIDAsIDAsIDAsIDAsIDAsIDU0NiwgCi0gICAgNTQ3LCAwLCAwLCAwLCAwLCAwLCA1NDgsIDAsIDAsIDAsIDAsIDAsIDAsIDU0OSwgMCwgMCwgMCwgMCwgMCwgMCwgNTUwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA1NTEsIDAsIDAsIDAsIDAsIDAsIDAsIDU1MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNTUzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NTQsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTU2LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDU1OCwgMCwgMCwgMCwgMCwgMCwgNTU5LCAwLCAwLCAwLCAwLCAwLCAwLCA1NjAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDU2MSwgMCwgMCwgMCwgMCwgMCwgMCwgNTYyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NjMsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU2NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNTY1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NjYsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU2NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTY4LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NjksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDU3MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTcxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCA1NzIsIDAsIDAsIDAsIDAsIDAsIDU3MywgMCwgMCwgMCwgMCwgMCwgMCwgNTc0LCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDU3NiwgMCwgMCwgMCwgMCwgMCwgNTc3LCA1NzgsIDAsIDAsIDAsIDAsIDAsIDU3OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgNTgwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1ODEsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ2MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDY0LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDQ2NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDY3LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCA0NjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ2OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNDcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NzEsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3MiwgMCwgMCwgMCwgMCwgMCwgMCwgNDczLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA0NzQsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNDc2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NzcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDQ3OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDc5LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0ODAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDQ4MSwgMCwgMCwgMCwgMCwgMCwgMCwgNDgyLCAwLCAwLCAwLCAwLCAwLCAwLCA0ODMsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4NCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNDg1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0ODYsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgNDg4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0ODksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDQ5MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDkxLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA0OTIsIDAsIDAsIDAsIDAsIDAsIDAsIDQ5MywgMCwgMCwgMCwgMCwgMCwgMCwgNDk0LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA0OTUsIDAsIDAsIDAsIDAsIDAsIDAsIDQ5NiwgMCwgMCwgMCwgMCwgMCwgMCwgNDk3LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA0OTgsIDAsIDAsIDAsIDAsIDAsIDAsIDQ5OSwgMCwgMCwgMCwgMCwgMCwgMCwgNTAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwMiwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTAzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA1MDQsIDAsIDAsIDAsIDAsIDAsIDAsIDUwNSwgMCwgMCwgMCwgMCwgMCwgMCwgNTA2LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA1MDcsIDAsIDAsIDAsIDAsIDAsIDAsIDUwOCwgMCwgMCwgMCwgMCwgMCwgMCwgNTA5LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCA1MTAsIDAsIDAsIDAsIDAsIDAsIDAsIDUxMSwgMCwgMCwgMCwgMCwgMCwgMCwgNTEyLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA1MTMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUxNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNTE1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MTYsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUxNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNTE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MTksIDAsIDAsIDAsIDAsIDAsIDAsIDUyMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNTIxLCAwLCAwLCAwLCAwLCAwLCAwLCA1MjIsIDAsIDAsIDAsIDAsIDAsIDAsIDUyMywgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTI0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA1MjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUyNiwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTI3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MjgsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUyOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgNTMwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MzEsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTMzLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA1MzQsIDAsIDAsIDAsIDAsIDAsIDAsIDUzNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgNTM2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MzcsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDUzOCwgMCwgMCwgMCwgMCwgMCwgMCwgNTM5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU0MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgNTQyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NDMsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU0NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTQ1LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDU0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTQ4LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1MCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA1NTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1MywgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTU0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NTUsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgNTU3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NTgsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTYwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDU2MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTYzLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU2NSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTY2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA1NjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU2OCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTY5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NzAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU3MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgNTcyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NzMsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU3NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTc1LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NzYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDU3NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTc4LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NzksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4MCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTgxLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1ODIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDU4MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTg0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA1ODUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4NiwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTg3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA1ODUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4NiwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTg3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICA1ODgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgNTkwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1OTEsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU5MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNTkzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1OTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDU5NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTk2LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1OTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU5OCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTk5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA2MDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYwMSwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjAyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MDMsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNjA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDYwNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjA4LCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDYxMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjExLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA2MTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYxMywgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjE0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA2MTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYxNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNjE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MTgsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNjIwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MjEsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYyMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNTkwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1OTEsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU5MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNTkzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1OTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDU5NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTk2LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1OTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDU5OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTk5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA2MDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYwMSwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjAyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA2MDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNjA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MDYsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYwNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNjA4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDYxMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjExLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDYxMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjE0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA2MTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYxNiwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA2MTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNjIwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MjEsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYyMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgNjIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDYyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjI2LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgNjI4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MjksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDYzMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjMxLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDYzMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjM0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA2MzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYzNiwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjM3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA2MzgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYzOSwgNjQwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA2NDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDY0MiwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjQzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA2NDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDY0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNjQ2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2NDcsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDY0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNjQ5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2NTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDY1MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjUyLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2NTMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDY1NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA2NTYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDY1NywgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjU4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA2NTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDY2MCwgNjYxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA2NjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDY2MywgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjY0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA2NjUsIDY2NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjY3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCA2NjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDY2OSwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA2NzEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDY3MiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNjczLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2NzQsIAorICAgIDAsIDAsIDAsIDAsIDAsIDYzMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjMxLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDYzMywgCiB9OwogCiBzdGF0aWMgdW5zaWduZWQgaW50IGNvbXBfZGF0YVtdID0gewotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg4MTQsIDAsIDAsIDg4MDAsIDAsIDAsIDg4MTUsIDAsIDAsIDAsIDE5MiwgMTkzLCAKLSAgICAxOTQsIDE5NSwgMjU2LCAyNTgsIDU1MCwgMTk2LCA3ODQyLCAxOTcsIDAsIDQ2MSwgNTEyLCA1MTQsIDAsIDAsIDAsIDc4NDAsIAotICAgIDAsIDc2ODAsIDAsIDAsIDI2MCwgMCwgMCwgNzY4MiwgMCwgMCwgNzY4NCwgMCwgMCwgMCwgMCwgNzY4NiwgMCwgMjYyLCAKLSAgICAyNjQsIDAsIDAsIDAsIDI2NiwgMCwgMCwgMCwgMCwgMjY4LCAwLCAxOTksIDAsIDAsIDAsIDc2OTAsIDAsIDAsIDAsIDAsIAotICAgIDI3MCwgMCwgMCwgMCwgMCwgMCwgNzY5MiwgMCwgMCwgMCwgNzY5NiwgMCwgNzY5OCwgMCwgMCwgNzY5NCwgMCwgMCwgMCwgMCwgCi0gICAgMjAwLCAyMDEsIDIwMiwgNzg2OCwgMjc0LCAyNzYsIDI3OCwgMjAzLCA3ODY2LCAwLCAwLCAyODIsIDUxNiwgNTE4LCAwLCAwLCAKLSAgICAwLCA3ODY0LCAwLCAwLCAwLCA1NTIsIDI4MCwgNzcwNCwgMCwgNzcwNiwgMCwgMCwgMCwgNzcxMCwgMCwgNTAwLCAyODQsIDAsIAotICAgIDc3MTIsIDI4NiwgMjg4LCAwLCAwLCAwLCAwLCA0ODYsIDAsIDI5MCwgMCwgMCwgMCwgMjkyLCAwLCAwLCAwLCA3NzE0LCAKLSAgICA3NzE4LCAwLCAwLCAwLCA1NDIsIDAsIDAsIDAsIDAsIDAsIDc3MTYsIDAsIDAsIDAsIDc3MjAsIDAsIDAsIDc3MjIsIDAsIDAsIAotICAgIDIwNCwgMjA1LCAyMDYsIDI5NiwgMjk4LCAzMDAsIDMwNCwgMjA3LCA3ODgwLCAwLCAwLCA0NjMsIDUyMCwgNTIyLCAwLCAwLCAKLSAgICAwLCA3ODgyLCAwLCAwLCAwLCAwLCAzMDIsIDAsIDAsIDc3MjQsIDAsIDAsIDAsIDMwOCwgMCwgNzcyOCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNDg4LCAwLCA3NzMwLCAwLCAwLCAwLCAzMTAsIDAsIDAsIDAsIDAsIDc3MzIsIDAsIDAsIDAsIDAsIDAsIDMxMywgMCwgCi0gICAgMzE3LCAwLCAwLCAwLCAwLCAwLCA3NzM0LCAwLCAwLCAwLCAzMTUsIDAsIDc3NDAsIDAsIDAsIDc3MzgsIDAsIDAsIDAsIDAsIAotICAgIDAsIDc3NDIsIDAsIDAsIDAsIDAsIDc3NDQsIDAsIDAsIDc3NDYsIDAsIDUwNCwgMzIzLCAwLCAyMDksIDAsIDAsIDc3NDgsIAotICAgIDAsIDAsIDAsIDAsIDMyNywgMCwgNzc1MCwgMCwgMCwgMCwgMzI1LCAwLCA3NzU0LCAwLCAwLCA3NzUyLCAwLCAwLCAwLCAwLCAKLSAgICAyMTAsIDIxMSwgMjEyLCAyMTMsIDMzMiwgMzM0LCA1NTgsIDIxNCwgNzg4NiwgMCwgMzM2LCA0NjUsIDUyNCwgNTI2LCAwLCAKLSAgICAwLCA0MTYsIDc4ODQsIDAsIDAsIDAsIDAsIDQ5MCwgMCwgMCwgMCwgMCwgMCwgNzc2NCwgNzc2NiwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMzQwLCAwLCAwLCAwLCAwLCA3NzY4LCAzNDQsIDUyOCwgNTMwLCAwLCAwLCAwLCA3NzcwLCAwLCAwLCAwLCAzNDIsIDAsIDAsIAotICAgIDAsIDAsIDc3NzQsIDAsIDM0NiwgMzQ4LCAwLCAwLCAwLCA3Nzc2LCAwLCAwLCAwLCAwLCAzNTIsIDAsIDc3NzgsIDAsIDAsIAotICAgIDUzNiwgMzUwLCAwLCAwLCAwLCA3Nzg2LCAwLCAwLCAwLCAwLCAzNTYsIDAsIDc3ODgsIDAsIDAsIDUzOCwgMzU0LCAwLCAKLSAgICA3NzkyLCAwLCAwLCA3NzkwLCAwLCAwLCAwLCAwLCAyMTcsIDIxOCwgMjE5LCAzNjAsIDM2MiwgMzY0LCAwLCAyMjAsIDc5MTAsIAotICAgIDM2NiwgMzY4LCA0NjcsIDUzMiwgNTM0LCAwLCAwLCA0MzEsIDc5MDgsIDc3OTQsIDAsIDAsIDAsIDM3MCwgNzc5OCwgMCwgCi0gICAgNzc5NiwgNzgwNCwgMCwgMCwgMCwgMCwgMCwgNzgwNiwgMCwgNzgwOCwgNzgxMCwgMzcyLCAwLCAwLCAwLCA3ODE0LCA3ODEyLCAKLSAgICAwLCA3ODE2LCAwLCAwLCAwLCA3ODE4LCA3ODIwLCAwLCAwLCAwLCA3OTIyLCAyMjEsIDM3NCwgNzkyOCwgNTYyLCAwLCAKLSAgICA3ODIyLCAzNzYsIDc5MjYsIDAsIDAsIDAsIDAsIDc5MjQsIDAsIDAsIDM3NywgNzgyNCwgMCwgMCwgMCwgMzc5LCAzODEsIDAsIAotICAgIDAsIDAsIDAsIDAsIDc4MjYsIDAsIDAsIDAsIDAsIDc4MjgsIDIyNCwgMjI1LCAyMjYsIDIyNywgMjU3LCAyNTksIDU1MSwgCi0gICAgMjI4LCA3ODQzLCAyMjksIDAsIDQ2MiwgNTEzLCA1MTUsIDAsIDAsIDAsIDc4NDEsIDAsIDc2ODEsIDAsIDAsIDI2MSwgMCwgCi0gICAgMCwgNzY4MywgMCwgMCwgNzY4NSwgMCwgMCwgMCwgMCwgNzY4NywgMCwgMCwgMCwgMCwgMCwgMjYzLCAyNjUsIDAsIDAsIDAsIAotICAgIDI2NywgMCwgMCwgMCwgMCwgMjY5LCAwLCAwLCAwLCAwLCAwLCAyMzEsIDAsIDAsIDAsIDc2OTEsIDI3MSwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNzY5MywgMCwgMCwgMCwgNzY5NywgMCwgNzY5OSwgMCwgMCwgNzY5NSwgMjMyLCAyMzMsIDIzNCwgNzg2OSwgMjc1LCAKLSAgICAyNzcsIDI3OSwgMjM1LCA3ODY3LCAwLCAwLCAyODMsIDUxNywgNTE5LCAwLCAwLCAwLCA3ODY1LCAwLCAwLCAwLCA1NTMsIAotICAgIDI4MSwgNzcwNSwgMCwgNzcwNywgMCwgMCwgMCwgNzcxMSwgMCwgMCwgMCwgMCwgMCwgNTAxLCAyODUsIDAsIDc3MTMsIDI4NywgCi0gICAgMjg5LCAwLCAwLCAwLCAwLCA0ODcsIDAsIDAsIDAsIDAsIDAsIDI5MSwgMCwgMCwgMCwgMjkzLCAwLCAwLCAwLCA3NzE1LCAKLSAgICA3NzE5LCAwLCAwLCAwLCA1NDMsIDAsIDAsIDAsIDAsIDAsIDc3MTcsIDAsIDAsIDAsIDc3MjEsIDAsIDAsIDc3MjMsIDAsIAotICAgIDc4MzAsIDIzNiwgMjM3LCAyMzgsIDI5NywgMjk5LCAzMDEsIDAsIDIzOSwgNzg4MSwgMCwgMCwgNDY0LCA1MjEsIDUyMywgMCwgCi0gICAgMCwgMCwgNzg4MywgMCwgMCwgMCwgMCwgMzAzLCAwLCAwLCA3NzI1LCAwLCAwLCAwLCAzMDksIDAsIDAsIDAsIDAsIDQ5NiwgCi0gICAgMCwgMCwgMCwgMCwgNzcyOSwgMCwgNDg5LCAwLCAwLCAwLCAwLCAwLCA3NzMxLCAwLCAwLCAwLCAzMTEsIDc3MzMsIDAsIDAsIAotICAgIDAsIDAsIDAsIDMxNCwgMCwgMzE4LCAwLCAwLCAwLCAwLCAwLCA3NzM1LCAwLCAwLCAwLCAzMTYsIDAsIDc3NDEsIDAsIDAsIAotICAgIDc3MzksIDAsIDc3NDMsIDAsIDAsIDAsIDAsIDc3NDUsIDAsIDAsIDc3NDcsIDAsIDAsIDAsIDAsIDAsIDUwNSwgMzI0LCAwLCAKLSAgICAyNDEsIDAsIDAsIDc3NDksIDAsIDAsIDAsIDAsIDMyOCwgMCwgNzc1MSwgMCwgMCwgMCwgMzI2LCAwLCA3NzU1LCAwLCAwLCAKLSAgICA3NzUzLCAwLCAwLCAwLCAwLCAyNDIsIDI0MywgMjQ0LCAyNDUsIDMzMywgMzM1LCA1NTksIDI0NiwgNzg4NywgMCwgMzM3LCAKLSAgICA0NjYsIDUyNSwgNTI3LCAwLCAwLCA0MTcsIDc4ODUsIDQ5MSwgMCwgMCwgMCwgMCwgMCwgNzc2NSwgMCwgMCwgMCwgMCwgCi0gICAgNzc2NywgMCwgMzQxLCAwLCAwLCAwLCAwLCA3NzY5LCAwLCAwLCAwLCAwLCAzNDUsIDUyOSwgNTMxLCAwLCAwLCAwLCA3NzcxLCAKLSAgICAwLCAwLCAwLCAzNDMsIDAsIDAsIDAsIDAsIDc3NzUsIDAsIDM0NywgMzQ5LCAwLCAwLCAwLCA3Nzc3LCAwLCAwLCAwLCAwLCAKLSAgICAzNTMsIDAsIDc3NzksIDAsIDAsIDUzNywgMzUxLCAwLCAwLCAwLCA3Nzg3LCA3ODMxLCAwLCAwLCAwLCAzNTcsIDAsIDAsIDAsIAotICAgIDAsIDAsIDc3ODksIDAsIDAsIDUzOSwgMzU1LCAwLCA3NzkzLCAwLCAwLCA3NzkxLCAwLCAwLCAwLCAwLCAyNDksIDI1MCwgCi0gICAgMjUxLCAzNjEsIDM2MywgMzY1LCAwLCAyNTIsIDc5MTEsIDM2NywgMzY5LCA0NjgsIDUzMywgNTM1LCAwLCAwLCA0MzIsIAotICAgIDc5MDksIDc3OTUsIDAsIDAsIDAsIDM3MSwgNzc5OSwgMCwgNzc5NywgMCwgMCwgMCwgMCwgNzgwNSwgMCwgNzgwNywgMCwgMCwgCi0gICAgMCwgMCwgMCwgNzgwOSwgNzgxMSwgMzczLCAwLCAwLCAwLCA3ODE1LCA3ODEzLCAwLCA3ODMyLCAwLCAwLCAwLCA3ODE3LCAwLCAKLSAgICAwLCAwLCA3ODE5LCA3ODIxLCAwLCAwLCAwLCA3OTIzLCAyNTMsIDM3NSwgNzkyOSwgNTYzLCAwLCA3ODIzLCAyNTUsIDc5MjcsIAotICAgIDc4MzMsIDAsIDAsIDAsIDc5MjUsIDAsIDAsIDM3OCwgNzgyNSwgMCwgMCwgMCwgMzgwLCAwLCAwLCAwLCAwLCAzODIsIDAsIAotICAgIDc4MjcsIDAsIDAsIDAsIDAsIDc4MjksIDAsIDAsIDAsIDAsIDgxNzMsIDkwMSwgMCwgMCwgMCwgMCwgMCwgMCwgODEyOSwgMCwgCi0gICAgMCwgNzg0NiwgNzg0NCwgMCwgNzg1MCwgMCwgMCwgMCwgMCwgNzg0OCwgMCwgMCwgNDc4LCAwLCAwLCAwLCA1MDYsIDAsIDAsIAotICAgIDUwOCwgMCwgMCwgNDgyLCAwLCAwLCAwLCA3Njg4LCAwLCA3ODcyLCA3ODcwLCAwLCA3ODc2LCAwLCAwLCAwLCAwLCA3ODc0LCAKLSAgICAwLCAwLCAwLCA3NzI2LCAwLCAwLCAwLCAwLCAwLCA3ODkwLCA3ODg4LCAwLCA3ODk0LCAwLCAwLCAwLCAwLCA3ODkyLCAwLCAKLSAgICAwLCAwLCA3NzU2LCAwLCAwLCA1NTYsIDAsIDAsIDc3NTgsIDAsIDAsIDAsIDU1NCwgMCwgMCwgMCwgNTEwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA0NzUsIDQ3MSwgMCwgMCwgNDY5LCAwLCAwLCA0NzMsIDAsIDAsIDAsIDc4NDcsIDc4NDUsIDAsIDc4NTEsIDAsIDAsIAotICAgIDAsIDAsIDc4NDksIDAsIDAsIDQ3OSwgMCwgMCwgMCwgNTA3LCAwLCAwLCA1MDksIDAsIDAsIDQ4MywgMCwgMCwgMCwgNzY4OSwgCi0gICAgMCwgNzg3MywgNzg3MSwgMCwgNzg3NywgMCwgMCwgMCwgMCwgNzg3NSwgMCwgMCwgMCwgNzcyNywgMCwgMCwgMCwgMCwgMCwgCi0gICAgNzg5MSwgNzg4OSwgMCwgNzg5NSwgMCwgMCwgMCwgMCwgNzg5MywgMCwgMCwgMCwgNzc1NywgMCwgMCwgNTU3LCAwLCAwLCAKLSAgICA3NzU5LCAwLCAwLCAwLCA1NTUsIDAsIDAsIDAsIDUxMSwgMCwgMCwgMCwgMCwgMCwgNDc2LCA0NzIsIDAsIDAsIDQ3MCwgMCwgCi0gICAgMCwgNDc0LCAwLCAwLCAwLCA3ODU2LCA3ODU0LCAwLCA3ODYwLCAwLCAwLCAwLCAwLCA3ODU4LCAwLCAwLCA3ODU3LCA3ODU1LCAKLSAgICAwLCA3ODYxLCAwLCAwLCAwLCAwLCA3ODU5LCAwLCAwLCA3NzAwLCA3NzAyLCAwLCAwLCAwLCAwLCAwLCA3NzAxLCA3NzAzLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA3NzYwLCA3NzYyLCAwLCA3NzYxLCA3NzYzLCAwLCAwLCAwLCA3NzgwLCAwLCAwLCA3NzgxLCAwLCAKLSAgICAwLCA3NzgyLCAwLCAwLCAwLCAwLCAwLCAwLCA3NzgzLCAwLCA3ODAwLCAwLCAwLCA3ODAxLCAwLCAwLCAwLCAwLCA3ODAyLCAKLSAgICAwLCAwLCA3ODAzLCAwLCAwLCAwLCAwLCAwLCA3ODM1LCAwLCAwLCAwLCAwLCA3OTAwLCA3ODk4LCAwLCA3OTA0LCAwLCAwLCAKLSAgICAwLCAwLCA3OTAyLCA3OTA2LCAwLCAwLCAwLCAwLCAwLCA3OTAxLCA3ODk5LCAwLCA3OTA1LCAwLCAwLCAwLCAwLCA3OTAzLCAKLSAgICAwLCAwLCAwLCAwLCA3OTA3LCAwLCA3OTE0LCA3OTEyLCAwLCA3OTE4LCAwLCAwLCAwLCAwLCA3OTE2LCAwLCAwLCAwLCAwLCAKLSAgICA3OTIwLCAwLCA3OTE1LCA3OTEzLCAwLCA3OTE5LCA3OTE3LCAwLCAwLCAwLCAwLCA3OTIxLCAwLCAwLCAwLCAwLCA0OTQsIDAsIAotICAgIDAsIDAsIDQ5MiwgMCwgMCwgNDkzLCAwLCAwLCA0ODAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4MSwgMCwgMCwgMCwgNzcwOCwgMCwgCi0gICAgMCwgNzcwOSwgMCwgNTYwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NjEsIDAsIDQ5NSwgMCwgMCwgMCwgODEyMiwgOTAyLCAwLCAwLCAKLSAgICA4MTIxLCA4MTIwLCAwLCAwLCAwLCAwLCA3OTQ0LCA3OTQ1LCAwLCAwLCAwLCAwLCAwLCA4MTI0LCAwLCA4MTM2LCA5MDQsIDAsIAotICAgIDAsIDAsIDAsIDc5NjAsIDc5NjEsIDAsIDAsIDAsIDgxMzgsIDkwNSwgMCwgMCwgMCwgMCwgNzk3NiwgNzk3NywgMCwgODE0MCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgODE1NCwgOTA2LCAwLCAwLCA4MTUzLCA4MTUyLCAwLCA5MzgsIDAsIDAsIDc5OTIsIDc5OTMsIDAsIAotICAgIDAsIDAsIDgxODQsIDkwOCwgMCwgMCwgMCwgMCwgODAwOCwgODAwOSwgMCwgMCwgMCwgMCwgMCwgMCwgODE3MiwgMCwgMCwgMCwgCi0gICAgODE3MCwgOTEwLCAwLCAwLCA4MTY5LCA4MTY4LCAwLCA5MzksIDAsIDAsIDAsIDgwMjUsIDAsIDAsIDAsIDgxODYsIDkxMSwgCi0gICAgODA0MCwgODA0MSwgMCwgMCwgMCwgMCwgMCwgODE4OCwgMCwgMCwgODExNiwgMCwgMCwgODEzMiwgMCwgMCwgMCwgMCwgMCwgCi0gICAgODA0OCwgOTQwLCAwLCAwLCA4MTEzLCA4MTEyLCAwLCAwLCAwLCAwLCA3OTM2LCA3OTM3LCAwLCAwLCAwLCAwLCA4MTE4LCAKLSAgICA4MTE1LCAwLCAwLCAwLCAwLCAwLCA4MDUwLCA5NDEsIDc5NTIsIDc5NTMsIDAsIDAsIDAsIDgwNTIsIDk0MiwgMCwgMCwgMCwgCi0gICAgMCwgNzk2OCwgNzk2OSwgMCwgMCwgMCwgMCwgODEzNCwgODEzMSwgMCwgODA1NCwgOTQzLCAwLCAwLCA4MTQ1LCA4MTQ0LCAwLCAKLSAgICA5NzAsIDAsIDAsIDc5ODQsIDc5ODUsIDgxNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDgwNTYsIDk3MiwgMCwgMCwgMCwgMCwgCi0gICAgODAwMCwgODAwMSwgMCwgODE2NCwgODE2NSwgMCwgMCwgMCwgODA1OCwgOTczLCAwLCAwLCA4MTYxLCA4MTYwLCAwLCA5NzEsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDgwMTYsIDgwMTcsIDAsIDAsIDAsIDAsIDgxNjYsIDAsIDAsIDgwNjAsIDk3NCwgMCwgMCwgMCwgCi0gICAgMCwgODAzMiwgODAzMywgODE4MiwgODE3OSwgMCwgMCwgMCwgMCwgMCwgODE0NiwgOTEyLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA4MTUxLCAwLCAwLCA4MTYyLCA5NDQsIDAsIDAsIDgxNjcsIDAsIDAsIDAsIDgxODAsIDAsIDAsIDk3OSwgMCwgMCwgMCwgMCwgCi0gICAgMCwgOTgwLCAwLCAwLCAxMDMxLCAwLCAwLCAwLCAwLCAxMjMyLCAwLCAxMjM0LCAwLCAwLCAwLCAwLCAxMDI3LCAwLCAxMDI0LCAKLSAgICAwLCAwLCAwLCAwLCAxMjM4LCAwLCAxMDI1LCAxMjE3LCAwLCAxMjQ0LCAwLCAwLCAxMjQ2LCAwLCAwLCAwLCAxMDM3LCAwLCAKLSAgICAwLCAwLCAxMjUwLCAxMDQ5LCAwLCAxMjUyLCAwLCAwLCAwLCAwLCAxMDM2LCAwLCAwLCAwLCAwLCAxMjU0LCAwLCAwLCAwLCAKLSAgICAxMjYyLCAxMDM4LCAwLCAxMjY0LCAwLCAwLCAxMjY2LCAwLCAwLCAwLCAxMjY4LCAwLCAwLCAwLCAwLCAwLCAwLCAxMjcyLCAKLSAgICAwLCAwLCAxMjYwLCAwLCAwLCAwLCAwLCAxMjMzLCAwLCAxMjM1LCAwLCAwLCAwLCAwLCAxMTA3LCAwLCAxMTA0LCAwLCAwLCAKLSAgICAwLCAwLCAxMjM5LCAwLCAxMTA1LCAxMjE4LCAwLCAxMjQ1LCAwLCAwLCAxMjQ3LCAwLCAwLCAwLCAxMTE3LCAwLCAwLCAwLCAKLSAgICAxMjUxLCAxMDgxLCAwLCAxMjUzLCAwLCAwLCAwLCAwLCAxMTE2LCAwLCAwLCAwLCAwLCAxMjU1LCAwLCAwLCAwLCAxMjYzLCAKLSAgICAxMTE4LCAwLCAxMjY1LCAwLCAwLCAxMjY3LCAwLCAwLCAwLCAxMjY5LCAwLCAwLCAwLCAwLCAwLCAwLCAxMjczLCAwLCAwLCAKLSAgICAxMjYxLCAwLCAwLCAxMTExLCAwLCAwLCAwLCAxMTQyLCAwLCAwLCAxMTQzLCAwLCAwLCAwLCAwLCAwLCAxMjQyLCAwLCAwLCAKLSAgICAxMjQzLCAwLCAwLCAxMjU4LCAwLCAwLCAwLCAwLCAwLCAwLCAxMjU5LCAwLCAxNTcwLCAxNTcxLCAxNTczLCAwLCAxNTcyLCAKLSAgICAwLCAwLCAxNTc0LCAwLCAwLCAwLCAwLCAwLCAwLCAxNzMwLCAwLCAwLCAxNzQ3LCAwLCAwLCAxNzI4LCAwLCAwLCAwLCAwLCAKLSAgICAyMzQ1LCAwLCAwLCAyMzUzLCAwLCAwLCAyMzU2LCAwLCAwLCAwLCAyNTA3LCAyNTA4LCAwLCAwLCAwLCAyODkxLCAyODg4LCAKLSAgICAyODkyLCAyOTY0LCAwLCAwLCAwLCAwLCAwLCAzMDE4LCAzMDIwLCAwLCAzMDE5LCAwLCAwLCAwLCAwLCAzMTQ0LCAwLCAwLCAKLSAgICAwLCAwLCAzMjY0LCAwLCAzMjc0LCAzMjcxLCAzMjcyLCAwLCAzMjc1LCAwLCAwLCAwLCAwLCAzNDAyLCAzNDA0LCAwLCAKLSAgICAzNDAzLCAwLCAwLCAwLCAwLCAzNTQ2LCAzNTQ4LCAzNTUwLCAwLCAwLCAwLCAwLCAzNTQ5LCAwLCAwLCAwLCAwLCAwLCAKLSAgICA0MTM0LCAwLCAwLCAwLCA2OTE4LCAwLCAwLCA2OTIwLCAwLCAwLCA2OTIyLCAwLCAwLCA2OTI0LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCA2OTI2LCAwLCAwLCA2OTMwLCAwLCAwLCA2OTcxLCAwLCAwLCA2OTczLCAwLCAwLCAwLCAwLCAwLCAwLCA2OTc2LCAwLCAKLSAgICAwLCA2OTc3LCAwLCAwLCA2OTc5LCAwLCAwLCAwLCA3NzM2LCAwLCAwLCA3NzM3LCAwLCAwLCAwLCAwLCAwLCAwLCA3NzcyLCAKLSAgICAwLCAwLCA3NzczLCAwLCAwLCAwLCAwLCA3Nzg0LCAwLCAwLCA3Nzg1LCAwLCAwLCA3ODUyLCAwLCAwLCA3ODYyLCAwLCAwLCAKLSAgICAwLCA3ODUzLCAwLCAwLCA3ODYzLCAwLCAwLCAwLCA3ODc4LCAwLCAwLCA3ODc5LCAwLCAwLCA3ODk2LCAwLCAwLCA3ODk3LCAKLSAgICAwLCAwLCAwLCAwLCA3OTM4LCA3OTQwLCAwLCAwLCA3OTQyLCA4MDY0LCAwLCA3OTM5LCA3OTQxLCAwLCAwLCA3OTQzLCAKLSAgICA4MDY1LCAwLCAwLCA4MDY2LCAwLCAwLCAwLCAwLCAwLCAwLCA4MDY3LCAwLCAwLCA4MDY4LCAwLCAwLCA4MDY5LCAwLCAwLCAKLSAgICA4MDcwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MDcxLCAwLCA3OTQ2LCA3OTQ4LCAwLCAwLCA3OTUwLCA4MDcyLCAwLCA3OTQ3LCAKLSAgICA3OTQ5LCAwLCAwLCA3OTUxLCA4MDczLCAwLCAwLCA4MDc0LCAwLCAwLCAwLCAwLCAwLCAwLCA4MDc1LCAwLCAwLCA4MDc2LCAKLSAgICAwLCAwLCA4MDc3LCAwLCAwLCA4MDc4LCAwLCAwLCAwLCAwLCAwLCAwLCA4MDc5LCAwLCA3OTU0LCA3OTU2LCAwLCA3OTU1LCAKLSAgICA3OTU3LCAwLCAwLCAwLCAwLCAwLCA3OTYyLCA3OTY0LCAwLCAwLCAwLCAwLCAwLCA3OTYzLCA3OTY1LCAwLCA3OTcwLCAKLSAgICA3OTcyLCAwLCAwLCA3OTc0LCA4MDgwLCAwLCA3OTcxLCA3OTczLCAwLCAwLCA3OTc1LCA4MDgxLCAwLCAwLCA4MDgyLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA4MDgzLCAwLCAwLCA4MDg0LCAwLCAwLCA4MDg1LCAwLCAwLCA4MDg2LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCA4MDg3LCAwLCA3OTc4LCA3OTgwLCAwLCAwLCA3OTgyLCA4MDg4LCAwLCA3OTc5LCA3OTgxLCAwLCAwLCA3OTgzLCAKLSAgICA4MDg5LCAwLCAwLCA4MDkwLCAwLCAwLCAwLCAwLCAwLCAwLCA4MDkxLCAwLCAwLCA4MDkyLCAwLCAwLCA4MDkzLCAwLCAwLCAKLSAgICA4MDk0LCAwLCAwLCAwLCAwLCAwLCAwLCA4MDk1LCAwLCA3OTg2LCA3OTg4LCAwLCAwLCA3OTkwLCAwLCAwLCA3OTg3LCAKLSAgICA3OTg5LCAwLCAwLCA3OTkxLCAwLCAwLCAwLCAwLCAwLCAwLCA3OTk0LCA3OTk2LCAwLCAwLCAwLCAwLCAwLCAwLCA3OTk4LCAKLSAgICAwLCAwLCA3OTk1LCA3OTk3LCAwLCAwLCA3OTk5LCAwLCAwLCA4MDAyLCA4MDA0LCAwLCA4MDAzLCA4MDA1LCAwLCAwLCAwLCAKLSAgICAwLCAwLCA4MDEwLCA4MDEyLCAwLCAwLCAwLCAwLCAwLCA4MDExLCA4MDEzLCAwLCA4MDE4LCA4MDIwLCAwLCAwLCA4MDIyLCAKLSAgICAwLCAwLCA4MDE5LCA4MDIxLCAwLCAwLCA4MDIzLCAwLCAwLCAwLCAwLCAwLCAwLCA4MDI3LCA4MDI5LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA4MDMxLCAwLCAwLCA4MDM0LCA4MDM2LCAwLCAwLCA4MDM4LCA4MDk2LCAwLCA4MDM1LCA4MDM3LCAwLCAwLCAKLSAgICA4MDM5LCA4MDk3LCAwLCAwLCA4MDk4LCAwLCAwLCA4MDk5LCAwLCAwLCAwLCAwLCAwLCAwLCA4MTAwLCAwLCAwLCA4MTAxLCAKLSAgICAwLCAwLCA4MTAyLCAwLCAwLCA4MTAzLCAwLCAwLCAwLCAwLCAwLCA4MDQyLCA4MDQ0LCAwLCAwLCA4MDQ2LCA4MTA0LCAwLCAKLSAgICA4MDQzLCA4MDQ1LCAwLCAwLCA4MDQ3LCA4MTA1LCAwLCAwLCA4MTA2LCAwLCAwLCA4MTA3LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA4MTA4LCAwLCAwLCA4MTA5LCAwLCAwLCA4MTEwLCAwLCAwLCA4MTExLCAwLCAwLCAwLCAwLCAwLCAwLCA4MTE0LCAwLCAwLCAKLSAgICA4MTMwLCAwLCAwLCA4MTc4LCAwLCAwLCA4MTE5LCAwLCAwLCAwLCAwLCAwLCA4MTQxLCA4MTQyLCAwLCAwLCA4MTQzLCAwLCAKLSAgICAwLCAwLCA4MTM1LCAwLCAwLCA4MTgzLCAwLCAwLCAwLCAwLCAwLCA4MTU3LCA4MTU4LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA4MTU5LCAwLCA4NjAyLCAwLCAwLCA4NjAzLCAwLCAwLCAwLCAwLCAwLCAwLCA4NjIyLCAwLCAwLCA4NjUzLCAwLCAwLCAKLSAgICA4NjU1LCAwLCAwLCA4NjU0LCAwLCAwLCAwLCAwLCAwLCAwLCA4NzA4LCAwLCAwLCA4NzEzLCAwLCAwLCA4NzE2LCAwLCAwLCAKLSAgICA4NzQwLCAwLCAwLCAwLCAwLCAwLCAwLCA4NzQyLCAwLCAwLCA4NzY5LCAwLCAwLCA4NzcyLCAwLCAwLCA4Nzc1LCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA4Nzc3LCAwLCAwLCA4ODEzLCAwLCAwLCA4ODAyLCAwLCAwLCA4ODE2LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA4ODE3LCAwLCAwLCA4ODIwLCAwLCAwLCA4ODIxLCAwLCAwLCA4ODI0LCAwLCAwLCAwLCAwLCAwLCAwLCA4ODI1LCAwLCAwLCAKLSAgICA4ODMyLCAwLCAwLCA4ODMzLCAwLCAwLCA4OTI4LCAwLCAwLCAwLCAwLCAwLCAwLCA4OTI5LCAwLCAwLCA4ODM2LCAwLCAwLCAKLSAgICA4ODM3LCAwLCAwLCA4ODQwLCAwLCAwLCAwLCAwLCAwLCAwLCA4ODQxLCAwLCAwLCA4OTMwLCAwLCAwLCA4OTMxLCAwLCAwLCAKLSAgICA4ODc2LCAwLCAwLCAwLCAwLCAwLCAwLCA4ODc3LCAwLCAwLCA4ODc4LCAwLCAwLCA4ODc5LCAwLCAwLCA4OTM4LCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA4OTM5LCAwLCAwLCA4OTQwLCAwLCAwLCA4OTQxLCAwLCAwLCAwLCAxMjQzNiwgMCwgMCwgMTIzNjQsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDEyMzY2LCAwLCAwLCAxMjM2OCwgMCwgMCwgMTIzNzAsIDAsIDAsIDEyMzcyLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAxMjM3NCwgMCwgMCwgMTIzNzYsIDAsIDAsIDEyMzc4LCAwLCAwLCAxMjM4MCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMTIzODIsIDAsIDAsIDEyMzg0LCAwLCAwLCAxMjM4NiwgMCwgMCwgMTIzODksIDAsIDAsIDAsIDAsIDAsIDAsIDEyMzkxLCAwLCAKLSAgICAwLCAxMjM5MywgMCwgMCwgMTI0MDAsIDEyNDAxLCAwLCAxMjQwMywgMTI0MDQsIDAsIDAsIDAsIDAsIDAsIDEyNDA2LCAKLSAgICAxMjQwNywgMCwgMCwgMCwgMCwgMCwgMTI0MDksIDEyNDEwLCAwLCAxMjQxMiwgMTI0MTMsIDAsIDEyNDQ2LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAxMjUzMiwgMCwgMCwgMTI0NjAsIDAsIDAsIDEyNDYyLCAwLCAwLCAxMjQ2NCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMTI0NjYsIDAsIDAsIDEyNDY4LCAwLCAwLCAxMjQ3MCwgMCwgMCwgMTI0NzIsIDAsIDAsIDAsIDAsIDAsIDAsIDEyNDc0LCAwLCAKLSAgICAwLCAxMjQ3NiwgMCwgMCwgMTI0NzgsIDAsIDAsIDEyNDgwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjQ4MiwgMCwgMCwgMTI0ODUsIAotICAgIDAsIDAsIDEyNDg3LCAwLCAwLCAxMjQ4OSwgMCwgMCwgMCwgMCwgMCwgMCwgMTI0OTYsIDEyNDk3LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxMjQ5OSwgMTI1MDAsIDAsIDEyNTAyLCAxMjUwMywgMCwgMTI1MDUsIDEyNTA2LCAwLCAwLCAwLCAwLCAwLCAxMjUwOCwgCi0gICAgMTI1MDksIDAsIDAsIDAsIDAsIDAsIDEyNTM1LCAwLCAwLCAxMjUzNiwgMCwgMCwgMTI1MzcsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDEyNTM4LCAwLCAwLCAxMjU0MiwgMCwgMCwgMCwgMCwgNjk3ODYsIDAsIDAsIDY5Nzg4LCAwLCAwLCA2OTgwMywgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODgxNCwgMCwgMCwgMCwgODgwMCwgMCwgMCwgMCwgODgxNSwgMTkyLCAxOTMsIDE5NCwgCisgICAgMTk1LCAyNTYsIDI1OCwgNTUwLCAxOTYsIDc4NDIsIDE5NywgMCwgNDYxLCA1MTIsIDUxNCwgMCwgMCwgMCwgNzg0MCwgMCwgCisgICAgNzY4MCwgMCwgMCwgMjYwLCAwLCAwLCAwLCA3NjgyLCAwLCAwLCA3Njg0LCAwLCAwLCAwLCAwLCA3Njg2LCAwLCAwLCAyNjIsIAorICAgIDI2NCwgMCwgMCwgMCwgMjY2LCAwLCAwLCAwLCAwLCAyNjgsIDAsIDE5OSwgMCwgMCwgMCwgMCwgNzY5MCwgMCwgMCwgMCwgMCwgCisgICAgMjcwLCAwLCA3NjkyLCAwLCAwLCAwLCA3Njk2LCAwLCA3Njk4LCAwLCAwLCA3Njk0LCAwLCAyMDAsIDIwMSwgMjAyLCA3ODY4LCAKKyAgICAyNzQsIDI3NiwgMjc4LCAyMDMsIDc4NjYsIDAsIDAsIDI4MiwgNTE2LCA1MTgsIDAsIDAsIDAsIDc4NjQsIDAsIDAsIDAsIAorICAgIDU1MiwgMjgwLCA3NzA0LCAwLCA3NzA2LCAwLCAwLCAwLCAwLCA3NzEwLCAwLCAwLCA1MDAsIDI4NCwgMCwgNzcxMiwgMjg2LCAKKyAgICAyODgsIDAsIDAsIDAsIDAsIDQ4NiwgMCwgMjkwLCAwLCAwLCAwLCAwLCAyOTIsIDAsIDAsIDAsIDc3MTQsIDc3MTgsIDAsIDAsIAorICAgIDAsIDU0MiwgMCwgNzcxNiwgMCwgMCwgMCwgNzcyMCwgMCwgMCwgNzcyMiwgMCwgMCwgMCwgMjA0LCAyMDUsIDIwNiwgMjk2LCAKKyAgICAyOTgsIDMwMCwgMzA0LCAyMDcsIDc4ODAsIDAsIDAsIDQ2MywgNTIwLCA1MjIsIDAsIDAsIDAsIDc4ODIsIDAsIDAsIDAsIDAsIAorICAgIDMwMiwgMCwgMCwgNzcyNCwgMCwgMCwgMCwgMCwgMzA4LCAwLCAwLCA3NzI4LCAwLCAwLCAwLCAwLCAwLCA0ODgsIDAsIAorICAgIDc3MzAsIDAsIDAsIDAsIDMxMCwgMCwgMCwgMCwgMCwgNzczMiwgMCwgMCwgMzEzLCAwLCAwLCAwLCAwLCAwLCAzMTcsIDAsIAorICAgIDc3MzQsIDAsIDAsIDAsIDMxNSwgMCwgNzc0MCwgMCwgMCwgNzczOCwgMCwgMCwgNzc0MiwgMCwgMCwgMCwgMCwgNzc0NCwgMCwgCisgICAgMCwgNzc0NiwgMCwgMCwgNTA0LCAzMjMsIDAsIDIwOSwgMCwgMCwgNzc0OCwgMCwgMCwgMCwgMCwgMzI3LCAwLCA3NzUwLCAwLCAKKyAgICAwLCAwLCAzMjUsIDAsIDc3NTQsIDAsIDAsIDc3NTIsIDAsIDIxMCwgMjExLCAyMTIsIDIxMywgMzMyLCAzMzQsIDU1OCwgCisgICAgMjE0LCA3ODg2LCAwLCAzMzYsIDQ2NSwgNTI0LCA1MjYsIDAsIDAsIDQxNiwgNzg4NCwgMCwgMCwgMCwgMCwgNDkwLCAwLCAwLCAKKyAgICA3NzY0LCAwLCAwLCAwLCAwLCA3NzY2LCAwLCAwLCAzNDAsIDAsIDAsIDAsIDAsIDc3NjgsIDAsIDAsIDAsIDAsIDM0NCwgCisgICAgNTI4LCA1MzAsIDAsIDAsIDAsIDc3NzAsIDAsIDAsIDAsIDM0MiwgMCwgMCwgMCwgMCwgNzc3NCwgMCwgMCwgMzQ2LCAzNDgsIAorICAgIDAsIDAsIDAsIDc3NzYsIDAsIDAsIDAsIDAsIDM1MiwgMCwgNzc3OCwgMCwgMCwgNTM2LCAzNTAsIDAsIDAsIDAsIDAsIAorICAgIDc3ODYsIDAsIDAsIDAsIDAsIDM1NiwgMCwgNzc4OCwgMCwgMCwgNTM4LCAzNTQsIDAsIDc3OTIsIDAsIDAsIDc3OTAsIDAsIAorICAgIDIxNywgMjE4LCAyMTksIDM2MCwgMzYyLCAzNjQsIDAsIDIyMCwgNzkxMCwgMzY2LCAzNjgsIDQ2NywgNTMyLCA1MzQsIDAsIAorICAgIDAsIDQzMSwgNzkwOCwgNzc5NCwgMCwgMCwgMCwgMzcwLCA3Nzk4LCAwLCA3Nzk2LCAwLCAwLCAwLCAwLCAwLCA3ODA0LCAwLCAKKyAgICA3ODA2LCAwLCAwLCA3ODA4LCA3ODEwLCAzNzIsIDAsIDAsIDAsIDc4MTQsIDc4MTIsIDAsIDc4MTYsIDAsIDAsIDAsIDAsIAorICAgIDc4MTgsIDc4MjAsIDc5MjIsIDIyMSwgMzc0LCA3OTI4LCA1NjIsIDAsIDc4MjIsIDM3NiwgNzkyNiwgMCwgMCwgMCwgMCwgCisgICAgNzkyNCwgMCwgMCwgMCwgMzc3LCA3ODI0LCAwLCAwLCAwLCAzNzksIDAsIDAsIDAsIDAsIDM4MSwgMCwgNzgyNiwgMCwgMCwgCisgICAgMCwgMCwgNzgyOCwgMCwgMjI0LCAyMjUsIDIyNiwgMjI3LCAyNTcsIDI1OSwgNTUxLCAyMjgsIDc4NDMsIDIyOSwgMCwgNDYyLCAKKyAgICA1MTMsIDUxNSwgMCwgMCwgMCwgNzg0MSwgMCwgNzY4MSwgMCwgMCwgMjYxLCAwLCAwLCAwLCA3NjgzLCAwLCAwLCA3Njg1LCAKKyAgICAwLCAwLCAwLCAwLCA3Njg3LCAwLCAwLCAyNjMsIDI2NSwgMCwgMCwgMCwgMjY3LCAwLCAwLCAwLCAwLCAyNjksIDAsIDIzMSwgCisgICAgMCwgMCwgMCwgMCwgNzY5MSwgMCwgMCwgMCwgMCwgMjcxLCAwLCA3NjkzLCAwLCAwLCAwLCA3Njk3LCAwLCA3Njk5LCAwLCAwLCAKKyAgICA3Njk1LCAwLCAyMzIsIDIzMywgMjM0LCA3ODY5LCAyNzUsIDI3NywgMjc5LCAyMzUsIDc4NjcsIDAsIDAsIDI4MywgNTE3LCAKKyAgICA1MTksIDAsIDAsIDAsIDc4NjUsIDAsIDAsIDAsIDU1MywgMjgxLCA3NzA1LCAwLCA3NzA3LCAwLCAwLCAwLCAwLCA3NzExLCAKKyAgICAwLCAwLCA1MDEsIDI4NSwgMCwgNzcxMywgMjg3LCAyODksIDAsIDAsIDAsIDAsIDQ4NywgMCwgMjkxLCAwLCAwLCAwLCAwLCAKKyAgICAyOTMsIDAsIDAsIDAsIDc3MTUsIDc3MTksIDAsIDAsIDAsIDU0MywgMCwgNzcxNywgMCwgMCwgMCwgNzcyMSwgMCwgMCwgCisgICAgNzcyMywgMCwgNzgzMCwgMCwgMjM2LCAyMzcsIDIzOCwgMjk3LCAyOTksIDMwMSwgMCwgMjM5LCA3ODgxLCAwLCAwLCA0NjQsIAorICAgIDUyMSwgNTIzLCAwLCAwLCAwLCA3ODgzLCAwLCAwLCAwLCAwLCAzMDMsIDAsIDAsIDc3MjUsIDAsIDAsIDAsIDAsIDMwOSwgMCwgCisgICAgMCwgMCwgMCwgNDk2LCAwLCA3NzI5LCAwLCAwLCAwLCAwLCAwLCA0ODksIDAsIDc3MzEsIDAsIDAsIDAsIDMxMSwgMCwgMCwgCisgICAgMCwgMCwgNzczMywgMCwgMCwgMzE0LCAwLCAwLCAwLCAwLCAwLCAzMTgsIDAsIDc3MzUsIDAsIDAsIDAsIDMxNiwgMCwgCisgICAgNzc0MSwgMCwgMCwgNzczOSwgMCwgMCwgNzc0MywgMCwgMCwgMCwgMCwgNzc0NSwgMCwgMCwgNzc0NywgMCwgMCwgNTA1LCAKKyAgICAzMjQsIDAsIDI0MSwgMCwgMCwgNzc0OSwgMCwgMCwgMCwgMCwgMzI4LCAwLCA3NzUxLCAwLCAwLCAwLCAzMjYsIDAsIDc3NTUsIAorICAgIDAsIDAsIDc3NTMsIDAsIDI0MiwgMjQzLCAyNDQsIDI0NSwgMzMzLCAzMzUsIDU1OSwgMjQ2LCA3ODg3LCAwLCAzMzcsIDQ2NiwgCisgICAgNTI1LCA1MjcsIDAsIDAsIDQxNywgNzg4NSwgMCwgMCwgMCwgMCwgNDkxLCAwLCAwLCA3NzY1LCAwLCAwLCAwLCAwLCA3NzY3LCAKKyAgICAwLCAwLCAzNDEsIDAsIDAsIDAsIDAsIDc3NjksIDAsIDAsIDAsIDAsIDM0NSwgNTI5LCA1MzEsIDAsIDAsIDAsIDc3NzEsIDAsIAorICAgIDAsIDAsIDM0MywgMCwgMCwgMCwgMCwgNzc3NSwgMCwgMCwgMzQ3LCAzNDksIDAsIDAsIDAsIDc3NzcsIDAsIDAsIDAsIDAsIAorICAgIDM1MywgMCwgNzc3OSwgMCwgMCwgNTM3LCAzNTEsIDAsIDAsIDAsIDAsIDc3ODcsIDc4MzEsIDAsIDAsIDAsIDM1NywgMCwgCisgICAgNzc4OSwgMCwgMCwgNTM5LCAzNTUsIDAsIDc3OTMsIDAsIDAsIDc3OTEsIDAsIDI0OSwgMjUwLCAyNTEsIDM2MSwgMzYzLCAKKyAgICAzNjUsIDAsIDI1MiwgNzkxMSwgMzY3LCAzNjksIDQ2OCwgNTMzLCA1MzUsIDAsIDAsIDQzMiwgNzkwOSwgNzc5NSwgMCwgMCwgCisgICAgMCwgMzcxLCA3Nzk5LCAwLCA3Nzk3LCAwLCAwLCAwLCAwLCAwLCA3ODA1LCAwLCA3ODA3LCAwLCAwLCA3ODA5LCA3ODExLCAKKyAgICAzNzMsIDAsIDAsIDAsIDc4MTUsIDc4MTMsIDAsIDc4MzIsIDAsIDAsIDAsIDc4MTcsIDAsIDAsIDAsIDAsIDc4MTksIDc4MjEsIAorICAgIDc5MjMsIDI1MywgMzc1LCA3OTI5LCA1NjMsIDAsIDc4MjMsIDI1NSwgNzkyNywgNzgzMywgMCwgMCwgMCwgNzkyNSwgMCwgMCwgCisgICAgMCwgMzc4LCA3ODI1LCAwLCAwLCAwLCAzODAsIDAsIDAsIDAsIDAsIDM4MiwgMCwgNzgyNywgMCwgMCwgMCwgMCwgNzgyOSwgCisgICAgMCwgODE3MywgOTAxLCAwLCAwLCA4MTI5LCAwLCAwLCAwLCA3ODQ2LCA3ODQ0LCAwLCA3ODUwLCA3ODQ4LCAwLCAwLCAwLCAKKyAgICA0NzgsIDAsIDAsIDAsIDAsIDUwNiwgMCwgMCwgMCwgNTA4LCAwLCAwLCA0ODIsIDAsIDAsIDAsIDAsIDc2ODgsIDAsIDAsIAorICAgIDc4NzIsIDc4NzAsIDAsIDc4NzYsIDc4NzQsIDAsIDAsIDAsIDAsIDc3MjYsIDAsIDAsIDc4OTAsIDc4ODgsIDAsIDc4OTQsIAorICAgIDc4OTIsIDAsIDAsIDAsIDAsIDc3NTYsIDAsIDAsIDU1NiwgMCwgMCwgNzc1OCwgNTU0LCAwLCAwLCAwLCAwLCA1MTAsIDAsIAorICAgIDAsIDQ3NSwgNDcxLCAwLCAwLCA0NjksIDAsIDAsIDAsIDAsIDAsIDAsIDQ3MywgNzg0NywgNzg0NSwgMCwgNzg1MSwgNzg0OSwgCisgICAgMCwgMCwgMCwgNDc5LCAwLCAwLCAwLCAwLCA1MDcsIDAsIDAsIDAsIDUwOSwgMCwgMCwgNDgzLCAwLCAwLCAwLCAwLCA3Njg5LCAKKyAgICAwLCAwLCA3ODczLCA3ODcxLCAwLCA3ODc3LCA3ODc1LCAwLCAwLCAwLCAwLCA3NzI3LCAwLCAwLCA3ODkxLCA3ODg5LCAwLCAKKyAgICA3ODk1LCA3ODkzLCAwLCAwLCAwLCAwLCA3NzU3LCAwLCAwLCA1NTcsIDAsIDAsIDc3NTksIDU1NSwgMCwgMCwgMCwgMCwgCisgICAgNTExLCAwLCAwLCA0NzYsIDQ3MiwgMCwgMCwgNDcwLCAwLCAwLCAwLCAwLCAwLCAwLCA0NzQsIDc4NTYsIDc4NTQsIDAsIAorICAgIDc4NjAsIDc4NTgsIDAsIDAsIDAsIDc4NTcsIDc4NTUsIDAsIDc4NjEsIDc4NTksIDAsIDAsIDAsIDc3MDAsIDc3MDIsIDAsIAorICAgIDAsIDc3MDEsIDc3MDMsIDAsIDAsIDc3NjAsIDc3NjIsIDAsIDAsIDc3NjEsIDc3NjMsIDAsIDAsIDAsIDAsIDc3ODAsIDAsIAorICAgIDAsIDAsIDc3ODEsIDAsIDAsIDAsIDc3ODIsIDAsIDAsIDAsIDc3ODMsIDAsIDAsIDc4MDAsIDAsIDAsIDAsIDc4MDEsIDAsIAorICAgIDAsIDAsIDAsIDAsIDc4MDIsIDAsIDAsIDAsIDc4MDMsIDAsIDAsIDc4MzUsIDAsIDc5MDAsIDc4OTgsIDAsIDc5MDQsIAorICAgIDc5MDIsIDAsIDAsIDAsIDAsIDc5MDYsIDAsIDAsIDc5MDEsIDc4OTksIDAsIDc5MDUsIDc5MDMsIDAsIDAsIDAsIDAsIAorICAgIDc5MDcsIDAsIDAsIDc5MTQsIDc5MTIsIDAsIDc5MTgsIDc5MTYsIDAsIDAsIDAsIDAsIDc5MjAsIDAsIDAsIDc5MTUsIAorICAgIDc5MTMsIDAsIDc5MTksIDc5MTcsIDAsIDAsIDAsIDAsIDc5MjEsIDAsIDAsIDAsIDAsIDAsIDQ5NCwgNDkyLCAwLCAwLCAwLCAKKyAgICA0OTMsIDAsIDAsIDAsIDQ4MCwgMCwgMCwgMCwgNDgxLCAwLCAwLCAwLCAwLCA3NzA4LCAwLCAwLCAwLCA3NzA5LCAwLCAwLCAKKyAgICA1NjAsIDAsIDAsIDAsIDU2MSwgMCwgMCwgMCwgMCwgMCwgMCwgNDk1LCA4MTIyLCA5MDIsIDAsIDAsIDgxMjEsIDgxMjAsIDAsIAorICAgIDAsIDAsIDAsIDc5NDQsIDc5NDUsIDAsIDgxMjQsIDAsIDAsIDgxMzYsIDkwNCwgMCwgMCwgMCwgMCwgNzk2MCwgNzk2MSwgCisgICAgODEzOCwgOTA1LCAwLCAwLCAwLCAwLCA3OTc2LCA3OTc3LCAwLCA4MTQwLCAwLCAwLCA4MTU0LCA5MDYsIDAsIDAsIDgxNTMsIAorICAgIDgxNTIsIDAsIDkzOCwgMCwgMCwgNzk5MiwgNzk5MywgODE4NCwgOTA4LCAwLCAwLCAwLCAwLCA4MDA4LCA4MDA5LCAwLCAwLCAKKyAgICAwLCA4MTcyLCA4MTcwLCA5MTAsIDAsIDAsIDgxNjksIDgxNjgsIDAsIDkzOSwgMCwgMCwgMCwgODAyNSwgODE4NiwgOTExLCAKKyAgICAwLCAwLCAwLCAwLCA4MDQwLCA4MDQxLCAwLCA4MTg4LCAwLCAwLCAwLCA4MTE2LCAwLCAwLCAwLCA4MTMyLCAwLCAwLCAKKyAgICA4MDQ4LCA5NDAsIDAsIDAsIDgxMTMsIDgxMTIsIDAsIDAsIDAsIDAsIDc5MzYsIDc5MzcsIDgxMTgsIDgxMTUsIDAsIDAsIAorICAgIDgwNTAsIDk0MSwgMCwgMCwgMCwgMCwgNzk1MiwgNzk1MywgODA1MiwgOTQyLCAwLCAwLCAwLCAwLCA3OTY4LCA3OTY5LCAKKyAgICA4MTM0LCA4MTMxLCAwLCAwLCA4MDU0LCA5NDMsIDAsIDAsIDgxNDUsIDgxNDQsIDAsIDk3MCwgMCwgMCwgNzk4NCwgNzk4NSwgCisgICAgODE1MCwgMCwgMCwgMCwgODA1NiwgOTcyLCAwLCAwLCAwLCAwLCA4MDAwLCA4MDAxLCAwLCAwLCA4MTY0LCA4MTY1LCA4MDU4LCAKKyAgICA5NzMsIDAsIDAsIDgxNjEsIDgxNjAsIDAsIDk3MSwgMCwgMCwgODAxNiwgODAxNywgODE2NiwgMCwgMCwgMCwgODA2MCwgCisgICAgOTc0LCAwLCAwLCAwLCAwLCA4MDMyLCA4MDMzLCA4MTgyLCA4MTc5LCAwLCAwLCA4MTQ2LCA5MTIsIDAsIDAsIDgxNTEsIDAsIAorICAgIDAsIDAsIDgxNjIsIDk0NCwgMCwgMCwgODE2NywgMCwgMCwgMCwgMCwgODE4MCwgMCwgMCwgMCwgOTc5LCAwLCAwLCAwLCAwLCAKKyAgICAwLCA5ODAsIDAsIDAsIDAsIDEwMzEsIDAsIDEyMzIsIDAsIDEyMzQsIDAsIDEwMjcsIDAsIDAsIDEwMjQsIDAsIDAsIDAsIDAsIAorICAgIDEyMzgsIDAsIDEwMjUsIDAsIDEyMTcsIDAsIDEyNDQsIDAsIDAsIDAsIDEyNDYsIDEwMzcsIDAsIDAsIDAsIDEyNTAsIAorICAgIDEwNDksIDAsIDEyNTIsIDAsIDEwMzYsIDAsIDAsIDAsIDAsIDAsIDEyNTQsIDEyNjIsIDEwMzgsIDAsIDEyNjQsIDAsIDAsIAorICAgIDEyNjYsIDAsIDAsIDAsIDAsIDEyNjgsIDAsIDAsIDAsIDEyNzIsIDAsIDAsIDAsIDEyNjAsIDAsIDEyMzMsIDAsIDEyMzUsIAorICAgIDAsIDExMDcsIDAsIDAsIDExMDQsIDAsIDAsIDAsIDAsIDEyMzksIDAsIDExMDUsIDAsIDEyMTgsIDAsIDEyNDUsIDAsIDAsIAorICAgIDAsIDEyNDcsIDExMTcsIDAsIDAsIDAsIDEyNTEsIDEwODEsIDAsIDEyNTMsIDAsIDExMTYsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEyNTUsIDEyNjMsIDExMTgsIDAsIDEyNjUsIDAsIDAsIDEyNjcsIDAsIDAsIDAsIDAsIDEyNjksIDAsIDAsIDAsIDEyNzMsIAorICAgIDAsIDAsIDAsIDEyNjEsIDAsIDAsIDAsIDExMTEsIDExNDIsIDAsIDAsIDAsIDExNDMsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEyNDIsIDAsIDAsIDAsIDEyNDMsIDAsIDAsIDAsIDEyNTgsIDAsIDAsIDAsIDEyNTksIDAsIDAsIDE1NzAsIDE1NzEsIAorICAgIDE1NzMsIDAsIDAsIDAsIDAsIDAsIDAsIDE1NzIsIDAsIDAsIDAsIDE1NzQsIDAsIDAsIDAsIDE3MzAsIDAsIDAsIDAsIAorICAgIDE3NDcsIDAsIDAsIDAsIDE3MjgsIDAsIDIzNDUsIDAsIDAsIDAsIDIzNTMsIDAsIDAsIDAsIDIzNTYsIDAsIDAsIDAsIDAsIAorICAgIDI1MDcsIDI1MDgsIDI4OTEsIDI4ODgsIDI4OTIsIDAsIDI5NjQsIDAsIDAsIDAsIDAsIDAsIDAsIDMwMTgsIDMwMjAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDMwMTksIDAsIDMxNDQsIDAsIDAsIDAsIDAsIDAsIDMyNjQsIDAsIDAsIDMyNzQsIDMyNzEsIAorICAgIDMyNzIsIDAsIDAsIDAsIDAsIDAsIDAsIDMyNzUsIDAsIDM0MDIsIDM0MDQsIDAsIDAsIDM0MDMsIDAsIDAsIDAsIDAsIDAsIAorICAgIDM1NDYsIDM1NDgsIDM1NTAsIDAsIDAsIDAsIDAsIDAsIDM1NDksIDAsIDAsIDQxMzQsIDAsIDAsIDAsIDAsIDY5MTgsIDAsIAorICAgIDAsIDAsIDY5MjAsIDAsIDAsIDAsIDY5MjIsIDAsIDAsIDAsIDY5MjQsIDAsIDAsIDAsIDY5MjYsIDAsIDAsIDAsIDY5MzAsIAorICAgIDAsIDAsIDAsIDY5NzEsIDAsIDAsIDAsIDY5NzMsIDAsIDAsIDAsIDY5NzYsIDAsIDAsIDAsIDY5NzcsIDAsIDAsIDAsIAorICAgIDY5NzksIDc3MzYsIDAsIDAsIDAsIDc3MzcsIDAsIDAsIDAsIDc3NzIsIDAsIDAsIDAsIDc3NzMsIDAsIDAsIDAsIDAsIDAsIAorICAgIDc3ODQsIDAsIDAsIDAsIDc3ODUsIDAsIDAsIDAsIDc4NTIsIDAsIDAsIDc4NjIsIDAsIDAsIDAsIDAsIDc4NTMsIDAsIDAsIAorICAgIDc4NjMsIDAsIDAsIDAsIDAsIDc4NzgsIDAsIDAsIDAsIDc4NzksIDAsIDAsIDAsIDc4OTYsIDAsIDAsIDAsIDc4OTcsIDAsIAorICAgIDc5MzgsIDc5NDAsIDAsIDAsIDc5NDIsIDgwNjQsIDAsIDAsIDc5MzksIDc5NDEsIDAsIDAsIDc5NDMsIDgwNjUsIDAsIDAsIAorICAgIDAsIDgwNjYsIDAsIDAsIDAsIDgwNjcsIDAsIDAsIDAsIDgwNjgsIDAsIDAsIDAsIDgwNjksIDAsIDAsIDAsIDgwNzAsIDAsIAorICAgIDAsIDAsIDgwNzEsIDAsIDAsIDc5NDYsIDc5NDgsIDAsIDAsIDc5NTAsIDgwNzIsIDAsIDAsIDc5NDcsIDc5NDksIDAsIDAsIAorICAgIDc5NTEsIDgwNzMsIDAsIDAsIDAsIDgwNzQsIDAsIDAsIDAsIDgwNzUsIDAsIDAsIDAsIDgwNzYsIDAsIDAsIDAsIDgwNzcsIAorICAgIDAsIDAsIDAsIDgwNzgsIDAsIDAsIDAsIDgwNzksIDAsIDAsIDc5NTQsIDc5NTYsIDAsIDAsIDc5NTUsIDc5NTcsIDAsIDAsIAorICAgIDc5NjIsIDc5NjQsIDAsIDAsIDc5NjMsIDc5NjUsIDAsIDAsIDc5NzAsIDc5NzIsIDAsIDAsIDc5NzQsIDgwODAsIDAsIDAsIAorICAgIDc5NzEsIDc5NzMsIDAsIDAsIDc5NzUsIDgwODEsIDAsIDAsIDAsIDgwODIsIDAsIDAsIDAsIDgwODMsIDAsIDAsIDAsIAorICAgIDgwODQsIDAsIDAsIDAsIDgwODUsIDAsIDAsIDAsIDgwODYsIDAsIDAsIDAsIDgwODcsIDAsIDAsIDc5NzgsIDc5ODAsIDAsIAorICAgIDAsIDc5ODIsIDgwODgsIDAsIDAsIDc5NzksIDc5ODEsIDAsIDAsIDc5ODMsIDgwODksIDAsIDAsIDAsIDgwOTAsIDAsIDAsIAorICAgIDAsIDgwOTEsIDAsIDAsIDAsIDgwOTIsIDAsIDAsIDAsIDgwOTMsIDAsIDAsIDAsIDgwOTQsIDAsIDAsIDAsIDgwOTUsIDAsIAorICAgIDAsIDc5ODYsIDc5ODgsIDAsIDAsIDc5OTAsIDAsIDAsIDAsIDc5ODcsIDc5ODksIDAsIDAsIDc5OTEsIDAsIDAsIDAsIAorICAgIDc5OTQsIDc5OTYsIDAsIDAsIDc5OTgsIDAsIDAsIDAsIDc5OTUsIDc5OTcsIDAsIDAsIDc5OTksIDAsIDAsIDAsIDgwMDIsIAorICAgIDgwMDQsIDAsIDAsIDgwMDMsIDgwMDUsIDAsIDAsIDgwMTAsIDgwMTIsIDAsIDAsIDgwMTEsIDgwMTMsIDAsIDAsIDgwMTgsIAorICAgIDgwMjAsIDAsIDAsIDgwMjIsIDAsIDAsIDAsIDgwMTksIDgwMjEsIDAsIDAsIDgwMjMsIDAsIDAsIDAsIDgwMjcsIDgwMjksIAorICAgIDAsIDAsIDgwMzEsIDAsIDAsIDAsIDgwMzQsIDgwMzYsIDAsIDAsIDgwMzgsIDgwOTYsIDAsIDAsIDgwMzUsIDgwMzcsIDAsIAorICAgIDAsIDgwMzksIDgwOTcsIDAsIDAsIDAsIDgwOTgsIDAsIDAsIDAsIDgwOTksIDAsIDAsIDAsIDgxMDAsIDAsIDAsIDAsIAorICAgIDgxMDEsIDAsIDAsIDAsIDgxMDIsIDAsIDAsIDAsIDgxMDMsIDAsIDAsIDgwNDIsIDgwNDQsIDAsIDAsIDgwNDYsIDgxMDQsIAorICAgIDAsIDAsIDgwNDMsIDgwNDUsIDAsIDAsIDgwNDcsIDgxMDUsIDAsIDAsIDAsIDgxMDYsIDAsIDAsIDAsIDgxMDcsIDAsIDAsIAorICAgIDAsIDgxMDgsIDAsIDAsIDAsIDgxMDksIDAsIDAsIDAsIDgxMTAsIDAsIDAsIDAsIDgxMTEsIDAsIDAsIDAsIDgxMTQsIDAsIAorICAgIDAsIDAsIDgxMzAsIDAsIDAsIDAsIDgxNzgsIDAsIDAsIDAsIDgxMTksIDAsIDAsIDgxNDEsIDgxNDIsIDAsIDAsIDgxNDMsIAorICAgIDAsIDAsIDAsIDAsIDgxMzUsIDAsIDAsIDAsIDgxODMsIDAsIDAsIDgxNTcsIDgxNTgsIDAsIDAsIDgxNTksIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDg2MDIsIDAsIDAsIDAsIDg2MDMsIDAsIDAsIDAsIDg2MjIsIDAsIDAsIDAsIDg2NTMsIDAsIDAsIDAsIAorICAgIDg2NTUsIDAsIDAsIDAsIDg2NTQsIDAsIDAsIDAsIDg3MDgsIDAsIDAsIDAsIDg3MTMsIDAsIDAsIDAsIDg3MTYsIDAsIDAsIAorICAgIDAsIDg3NDAsIDAsIDAsIDAsIDg3NDIsIDAsIDAsIDAsIDg3NjksIDAsIDAsIDAsIDg3NzIsIDAsIDAsIDAsIDg3NzUsIDAsIAorICAgIDAsIDAsIDg3NzcsIDAsIDAsIDAsIDg4MTMsIDAsIDAsIDAsIDg4MDIsIDAsIDAsIDAsIDg4MTYsIDAsIDAsIDAsIDg4MTcsIAorICAgIDAsIDAsIDAsIDg4MjAsIDAsIDAsIDAsIDg4MjEsIDAsIDAsIDAsIDg4MjQsIDAsIDAsIDAsIDg4MjUsIDAsIDAsIDAsIAorICAgIDg4MzIsIDAsIDAsIDAsIDg4MzMsIDAsIDAsIDAsIDg5MjgsIDAsIDAsIDAsIDg5MjksIDAsIDAsIDAsIDg4MzYsIDAsIDAsIAorICAgIDAsIDg4MzcsIDAsIDAsIDAsIDg4NDAsIDAsIDAsIDAsIDg4NDEsIDAsIDAsIDAsIDg5MzAsIDAsIDAsIDAsIDg5MzEsIDAsIAorICAgIDAsIDAsIDg4NzYsIDAsIDAsIDAsIDg4NzcsIDAsIDAsIDAsIDg4NzgsIDAsIDAsIDAsIDg4NzksIDAsIDAsIDAsIDg5MzgsIAorICAgIDAsIDAsIDAsIDg5MzksIDAsIDAsIDAsIDg5NDAsIDAsIDAsIDAsIDg5NDEsIDEyNDM2LCAwLCAwLCAwLCAxMjM2NCwgMCwgMCwgCisgICAgMCwgMTIzNjYsIDAsIDAsIDAsIDEyMzY4LCAwLCAwLCAwLCAxMjM3MCwgMCwgMCwgMCwgMTIzNzIsIDAsIDAsIDAsIDEyMzc0LCAKKyAgICAwLCAwLCAwLCAxMjM3NiwgMCwgMCwgMCwgMTIzNzgsIDAsIDAsIDAsIDEyMzgwLCAwLCAwLCAwLCAxMjM4MiwgMCwgMCwgMCwgCisgICAgMTIzODQsIDAsIDAsIDAsIDEyMzg2LCAwLCAwLCAwLCAxMjM4OSwgMCwgMCwgMCwgMTIzOTEsIDAsIDAsIDAsIDEyMzkzLCAwLCAKKyAgICAwLCAwLCAxMjQwMCwgMTI0MDEsIDAsIDAsIDEyNDAzLCAxMjQwNCwgMCwgMCwgMTI0MDYsIDEyNDA3LCAwLCAwLCAxMjQwOSwgCisgICAgMTI0MTAsIDAsIDAsIDEyNDEyLCAxMjQxMywgMCwgMCwgMTI0NDYsIDAsIDAsIDAsIDEyNTMyLCAwLCAwLCAwLCAxMjQ2MCwgCisgICAgMCwgMCwgMCwgMTI0NjIsIDAsIDAsIDAsIDEyNDY0LCAwLCAwLCAwLCAxMjQ2NiwgMCwgMCwgMCwgMTI0NjgsIDAsIDAsIDAsIAorICAgIDEyNDcwLCAwLCAwLCAwLCAxMjQ3MiwgMCwgMCwgMCwgMTI0NzQsIDAsIDAsIDAsIDEyNDc2LCAwLCAwLCAwLCAxMjQ3OCwgMCwgCisgICAgMCwgMCwgMTI0ODAsIDAsIDAsIDAsIDEyNDgyLCAwLCAwLCAwLCAxMjQ4NSwgMCwgMCwgMCwgMTI0ODcsIDAsIDAsIDAsIAorICAgIDEyNDg5LCAwLCAwLCAwLCAxMjQ5NiwgMTI0OTcsIDAsIDAsIDEyNDk5LCAxMjUwMCwgMCwgMCwgMTI1MDIsIDEyNTAzLCAwLCAKKyAgICAwLCAxMjUwNSwgMTI1MDYsIDAsIDAsIDEyNTA4LCAxMjUwOSwgMCwgMCwgMTI1MzUsIDAsIDAsIDAsIDEyNTM2LCAwLCAwLCAKKyAgICAwLCAxMjUzNywgMCwgMCwgMCwgMTI1MzgsIDAsIDAsIDAsIDEyNTQyLCAwLCAwLCAwLCAwLCAwLCA2OTc4NiwgMCwgMCwgMCwgCisgICAgNjk3ODgsIDAsIDAsIDAsIDY5ODAzLCAwLCAwLCAwLCAwLCA2OTkzNCwgMCwgMCwgMCwgNjk5MzUsIAogfTsKIAogc3RhdGljIGNvbnN0IGNoYW5nZV9yZWNvcmQgY2hhbmdlX3JlY29yZHNfM18yXzBbXSA9IHsKIAl7IDI1NSwgMjU1LCAyNTUsIDI1NSwgMCB9LAogCXsgMTEsIDI1NSwgMjU1LCAyNTUsIDAgfSwKIAl7IDEwLCAyNTUsIDI1NSwgMjU1LCAwIH0sCisJeyAyNTUsIDMwLCAyNTUsIDI1NSwgMCB9LAorCXsgMjU1LCAyLCAyNTUsIDI1NSwgMCB9LAogCXsgMTksIDIxLCAyNTUsIDI1NSwgMCB9LAogCXsgMjU1LCAyNTUsIDIsIDI1NSwgMCB9LAogCXsgMjU1LCAyNTUsIDMsIDI1NSwgMCB9LAogCXsgMjU1LCAyNTUsIDEsIDI1NSwgMCB9LAogCXsgMjU1LCAwLCAyNTUsIDI1NSwgMCB9LAotCXsgMjU1LCAyLCAyNTUsIDI1NSwgMCB9LAogCXsgMjU1LCAyOSwgMjU1LCAyNTUsIDAgfSwKIAl7IDI1NSwgMjYsIDI1NSwgMjU1LCAwIH0sCiAJeyA1LCAyNTUsIDI1NSwgMjU1LCAwIH0sCkBAIC01MDU4LDcgKzUxNzcsNyBAQAogCXsgMjU1LCA3LCA3LCAyNTUsIDAgfSwKIAl7IDI1NSwgNywgOCwgMjU1LCAwIH0sCiAJeyAyNTUsIDcsIDksIDI1NSwgMCB9LAotCXsgMjU1LCA1LCAyNTUsIDI1NSwgMCB9LAorCXsgMSwgNSwgMjU1LCAyNTUsIDAgfSwKIAl7IDE1LCAxNCwgMjU1LCAyNTUsIDAgfSwKIAl7IDI1NSwgMTAsIDI1NSwgMjU1LCAwIH0sCiAJeyAxOCwgMjU1LCAyNTUsIDI1NSwgMCB9LApAQCAtNTA3MCwxMiArNTE4OSwxMiBAQAogCXsgMjU1LCAyNTUsIDcsIDI1NSwgMCB9LAogCXsgMjU1LCAyNTUsIDgsIDI1NSwgMCB9LAogCXsgMjU1LCAyNTUsIDksIDI1NSwgMCB9LAotCXsgMjU1LCAzMCwgMjU1LCAyNTUsIDAgfSwKIAl7IDE5LCAzMCwgMjU1LCAyNTUsIDAgfSwKIAl7IDI1NSwgOCwgMjU1LCAyNTUsIDAgfSwKIAl7IDI1NSwgMjIsIDI1NSwgMjU1LCAwIH0sCiAJeyAyNTUsIDIzLCAyNTUsIDI1NSwgMCB9LAogCXsgOSwgMjU1LCAyNTUsIDI1NSwgMCB9LAorCXsgMTQsIDQsIDI1NSwgMjU1LCAwIH0sCiAJeyAyNTUsIDIwLCAyNTUsIDI1NSwgMCB9LAogCXsgMjU1LCAyNTUsIDI1NSwgMjU1LCAxZSsxNiB9LAogCXsgMjU1LCAyNTUsIDI1NSwgMjU1LCAxZSsyMCB9LApAQCAtNTA4NCw3NCArNTIwMyw3NCBAQAogCXsgMSwgMjU1LCAyNTUsIDAsIDAgfSwKIH07CiBzdGF0aWMgdW5zaWduZWQgY2hhciBjaGFuZ2VzXzNfMl8wX2luZGV4W10gPSB7Ci0gICAgMCwgMSwgMiwgMiwgMywgNCwgNSwgNiwgMiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAyLCAxNSwgMTYsIDE3LCAKLSAgICAxOCwgMTksIDIwLCAyMSwgMjIsIDIzLCAyLCAyLCAyLCAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgCi0gICAgMzQsIDIsIDIsIDIsIDM1LCAzNiwgMiwgMzcsIDM4LCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgCi0gICAgNDksIDIsIDUwLCAyLCAyLCA1MSwgNTIsIDUzLCA1NCwgNTUsIDIsIDIsIDU2LCA1NywgNTgsIDIsIDIsIDU5LCA2MCwgNjEsIAotICAgIDYyLCA2MywgNjMsIDIsIDIsIDIsIDIsIDY0LCAyLCA2NSwgNjYsIDY3LCA2OCwgNjksIDIsIDIsIDIsIDIsIDcwLCA3MSwgCi0gICAgNzIsIDczLCA3NCwgNzUsIDc2LCA3NywgNzgsIDIsIDIsIDIsIDIsIDIsIDIsIDc5LCAyLCAyLCAyLCAyLCAyLCA4MCwgMiwgCisgICAgMCwgMSwgMiwgMiwgMywgNCwgNSwgNiwgMiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgCisgICAgMTksIDIwLCAyMSwgMjIsIDIzLCAyNCwgMiwgMiwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMzEsIDMyLCAzMywgMzQsIDM1LCAKKyAgICAzNiwgMiwgMiwgMiwgMzcsIDM4LCAyLCAzOSwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCAKKyAgICA1MSwgMiwgNTIsIDIsIDIsIDUzLCA1NCwgNTUsIDU2LCA1NywgMiwgMiwgNTgsIDU5LCA2MCwgMiwgMiwgNjEsIDYyLCA2MywgCisgICAgNjQsIDY1LCA2NSwgMiwgMiwgMiwgMiwgNjYsIDIsIDY3LCA2OCwgNjksIDcwLCA3MSwgMiwgMiwgMiwgNzIsIDczLCA3NCwgCisgICAgNzUsIDc2LCA3NywgNzgsIDc5LCA4MCwgODEsIDIsIDIsIDIsIDIsIDIsIDIsIDgyLCAyLCAyLCAyLCAyLCAyLCA4MywgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCi0gICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgODEsIDIsIDgyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCA4MywgCi0gICAgODQsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDg1LCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCA4NiwgODcsIAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDg0LCAyLCA4NSwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgODYsIAorICAgIDg3LCAyLCAyLCAyLCAyLCAyLCAyLCAyLCA4OCwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgODksIDkwLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKLSAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCA4OCwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCisgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgOTEsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDg5LCAyLCAyLCAyLCAyLCAKLSAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCA5MCwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCi0gICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgOTEsIDkyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCA5MywgNDgsIDQ4LCAKLSAgICA5NCwgOTUsIDQ4LCA5NiwgOTcsIDk4LCA5OSwgMTAwLCAxMDEsIDEwMiwgMTAzLCAxMDQsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDEwNSwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCisgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgOTIsIDIsIDIsIDIsIDIsIAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDkzLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKKyAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCA5NCwgOTUsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDk2LCA1MCwgNTAsIAorICAgIDk3LCA5OCwgNTAsIDk5LCAxMDAsIDEwMSwgMTAyLCAxMDMsIDEwNCwgMTA1LCAxMDYsIDEwNywgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCi0gICAgMiwgMiwgMiwgMTA2LCAxMDcsIDEwOCwgMTA5LCAxMTAsIDExMSwgMiwgMiwgMiwgMTEyLCAxMTMsIDIsIDExNCwgMTE1LCAKLSAgICAxMTYsIDExNywgMTE4LCAxMTksIDIsIDEyMCwgMTIxLCAxMjIsIDEyMywgMTI0LCAyLCAyLCAyLCAyLCAyLCAyLCAxMjUsIDIsIAotICAgIDEyNiwgMiwgMTI3LCAyLCAxMjgsIDIsIDEyOSwgMiwgMiwgMiwgMTMwLCAyLCAyLCAyLCAxMzEsIDEzMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCi0gICAgMiwgMiwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgMTMzLCAyLCAxMzQsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgMTM1LCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKKyAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxMDgsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAorICAgIDIsIDIsIDIsIDIsIDEwOSwgMTEwLCAxMTEsIDExMiwgMTEzLCAxMTQsIDIsIDIsIDIsIDExNSwgMTE2LCAyLCAxMTcsIDExOCwgCisgICAgMTE5LCAxMjAsIDEyMSwgMTIyLCAyLCAxMjMsIDEyNCwgMTI1LCAxMjYsIDEyNywgMiwgMiwgMiwgMiwgMiwgMiwgMTI4LCAyLCAKKyAgICAxMjksIDEzMCwgMTMxLCAyLCAxMzIsIDIsIDEzMywgMiwgMiwgMiwgMTM0LCAyLCAyLCAyLCAxMzUsIDEzNiwgMTM3LCAxMzgsIAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDEzOSwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCisgICAgMiwgMiwgMiwgMiwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTQwLCAyLCAxNDEsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKKyAgICA1MCwgMTQyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKLSAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCA0OCwgNDgsIDQ4LCA0OCwgMTM2LCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKKyAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCA1MCwgNTAsIDUwLCA1MCwgMTQzLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKKyAgICAyLCAyLCAxNDQsIDE0NSwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCi0gICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMTM3LCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKKyAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxNDYsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDEzOCwgMiwgMTM5LCAyLCAxNDAsIDIsIDIsIDE0MSwgMiwgMiwgMiwgMTQyLCAxNDMsIDE0NCwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCi0gICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMTQ1LCAKLSAgICAxNDYsIDE0NywgMTQ4LCAxNDksIDIsIDE1MCwgMTUxLCAxNTIsIDE1MywgMTU0LCAxNTUsIDE1NiwgMTM5LCAxNTcsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDE1OCwgMTU5LCA5MCwgMiwgMiwgMiwgMiwgMiwgCi0gICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgNzksIDE2MCwgMiwgMTYxLCAxNjIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDE0NywgMiwgMTQ4LCAyLCAxNDksIDIsIDIsIDE1MCwgMiwgMiwgMiwgMTUxLCAxNTIsIAorICAgIDE1MywgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCisgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMTU0LCAxNTUsIAorICAgIDIsIDIsIDE1NiwgMTU3LCAxNTgsIDE1OSwgMTYwLCAyLCAxNjEsIDE2MiwgMTYzLCAxNjQsIDE2NSwgMTY2LCAxNjcsIDE0OCwgCisgICAgMTY4LCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxNjksIDE3MCwgOTMsIDIsIAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDgyLCAxNzEsIDIsIDE3MiwgMTczLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKLSAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxNjMsIDIsIDIsIDIsIDIsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDIsIDE2NCwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCi0gICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMTY1LCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKKyAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxNzQsIDIsIDIsIAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDE3NSwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCisgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMTc2LCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKLSAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxNjYsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAorICAgIDIsIDIsIDE3NywgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCi0gICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgCi0gICAgNDgsIDQ4LCA0OCwgNDgsIDQ4LCA0OCwgNDgsIDQ4LCAxNjcsIDQ4LCAxNjgsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDUwLCA1MCwgNTAsIAorICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAorICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc4LCA1MCwgMTc5LCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKLSAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxNjMsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAorICAgIDIsIDIsIDIsIDE3NCwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCiAgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMiwgCkBAIC01Mzg2LDcgKzU1MDUsNyBAQAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAotICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDQ4LCAxNjksIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAorICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDUwLCAxODAsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIAogICAgIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIApAQCAtNTQ1MCw3ICs1NTY5LDcgQEAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKICAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKLSAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKKyAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGNoYW5nZXNfM18yXzBfZGF0YVtdID0gewpAQCAtNTQ2MCw4ICs1NTc5LDkgQEAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzLCAKKyAgICAwLCAwLCA0LCAwLCAwLCA1LCAwLCAwLCAwLCAwLCA2LCA3LCAwLCAwLCAzLCAwLCAwLCA4LCA0LCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAzLCAwLCAwLCAwLCAwLCA0LCA1LCAwLCAwLCAwLCAwLCAwLCA2LCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKQEAgLTU0NzAsODQ4ICs1NTkwLDkwNiBAQAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwLCAxMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMTAsIDEwLCAxMCwgMTAsIDEwLCAxMCwgMTAsIDEwLCAxMCwgMTAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwLCAKKyAgICAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCAxMCwgMCwgOSwgOSwgMCwgMCwgMCwgOSwgOSwgCisgICAgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgOSwgMCwgNywgNywgMCwgMCwgMCwgNywgNywgNywgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgMCwgMCwgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMTEsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDksIDksIDAsIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDksIDAsIDksIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIAorICAgIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDEwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCAwLCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCA3LCAwLCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMiwgMTMsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0LCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMSwgMTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCAKKyAgICAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA3LCAwLCAwLCAwLCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCA5LCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAKKyAgICA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAxNCwgMTUsIDE2LCAxNywgMTgsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDcsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE1LCAxNiwgMTcsIDE4LCAxOSwgMCwgMCwgOSwgCisgICAgMCwgMCwgMCwgMCwgMCwgOSwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgMCwgCi0gICAgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAyMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDcsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDAsIDAsIDksIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIAorICAgIDksIDksIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIwLCAyMCwgMjAsIDIwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAKLSAgICA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCAwLCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA3LCAwLCAwLCAwLCAwLCAwLCA3LCAwLCAwLCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCAKLSAgICAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAyMSwgMjEsIDIxLCAyMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNywgNywgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgCisgICAgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgCisgICAgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgCisgICAgMCwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgCisgICAgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgCi0gICAgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjIsIDIzLCAKKyAgICAyNCwgMjUsIDI2LCAyNywgMjgsIDI5LCAzMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjAsIDIwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAyMSwgMjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMwLCAzMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMxLCAzMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIAotICAgIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDAsIDAsIDAsIDAsIDAsIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDksIAorICAgIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDksIAorICAgIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAzMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMzQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDAsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM1LCA4LCAwLCAKLSAgICAwLCAzNiwgMzcsIDM4LCAzOSwgNDAsIDQxLCAxLCAxLCAwLCAwLCAwLCA4LCAzNSwgNiwgNCwgNSwgMzYsIDM3LCAzOCwgMzksIAotICAgIDQwLCA0MSwgMSwgMSwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDQzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzQsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM1LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAKKyAgICAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNiwgNCwgMCwgMCwgMzcsIDM4LCAzOSwgNDAsIAorICAgIDQxLCA0MiwgMSwgMSwgMCwgMCwgMCwgNCwgMzYsIDgsIDYsIDcsIDM3LCAzOCwgMzksIDQwLCA0MSwgNDIsIDEsIDEsIDAsIAorICAgIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ0LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA0MywgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNDQsIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDQ1LCA0NiwgMTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ1LCAKKyAgICA0NiwgMTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgCisgICAgMCwgMCwgMCwgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAogICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIAotICAgIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNDcsIDQ3LCA0NywgNDcsIDQ3LCA0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCA3LCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCAwLCA3LCAwLCAwLCAwLCAwLCA3LCA3LCA3LCAwLCA3LCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA5LCAwLCA5LCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAKKyAgICA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCA3LCAwLCA3LCA3LCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAKKyAgICAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDM1LCAzNSwgMzUsIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIAorICAgIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgOSwgMCwgMCwgMCwgMCwgMCwgOSwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgMCwgCi0gICAgNywgNywgNywgNywgNywgNywgNywgMCwgNywgNywgNywgNywgNywgNywgNywgMCwgNywgNywgNywgNywgNywgNywgNywgMCwgCi0gICAgNywgNywgNywgNywgNywgNywgNywgMCwgNywgNywgNywgNywgNywgNywgNywgMCwgNywgNywgNywgNywgNywgNywgNywgMCwgCi0gICAgNywgNywgNywgNywgNywgNywgNywgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDgsIDQ4LCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA0OCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTksIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ5LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTksIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTEsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA1MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDcsIDcsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIAorICAgIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgMCwgMCwgMCwgCi0gICAgMTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgMTgsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAwLCAwLCAwLCAxLCAxLCAyMCwgMjAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDEsIDAsIDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQ4LCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAxMywgMTMsIDEzLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCA3LCAKLSAgICA3LCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAKKyAgICAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAKKyAgICAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAKKyAgICA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MiwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgCisgICAgMCwgMCwgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDcsIDAsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDcsIDcsIDAsIDAsIDAsIDcsIAotICAgIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDAsIAotICAgIDAsIDAsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIDcsIAotICAgIDcsIDcsIDcsIDcsIDcsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMTksIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAKLSAgICA3LCA3LCA3LCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCA3LCA3LCA3LCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAKKyAgICA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAwLCAwLCAwLCAxLCAxLCAyMSwgMjEsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEsIDAsIDEsIDAsIDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDQ5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAxNCwgMTQsIDE0LCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICAwLCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MywgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MywgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgNTMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUzLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCA5LCAwLCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCA5LCA5LCAwLCAwLCAKKyAgICAwLCA5LCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICAwLCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCAwLCA3LCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCA3LCA3LCA3LCA3LCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAKKyAgICAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCA5LCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAKKyAgICAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCAwLCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCA3LCA3LCA3LCAwLCA3LCAwLCA3LCAwLCA3LCAwLCA3LCAKLSAgICA3LCA3LCAwLCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCA3LCA3LCA3LCA3LCAwLCA3LCAwLCAwLCA3LCA3LCA3LCA3LCAwLCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCA5LCAKKyAgICA5LCA5LCA5LCA5LCA5LCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5LCA5LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA1NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU0LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA1NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTQsIDAsIDAsIDAsIDAsIDAsIDAsIDksIAorICAgIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIDksIDAsIDksIDAsIDAsIDksIDAsIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDAsIDksIDAsIDksIDAsIDAsIDAsIDAsIDAsIDAsIDksIAorICAgIDAsIDAsIDAsIDAsIDksIDAsIDksIDAsIDksIDAsIDksIDksIDksIDAsIDksIDksIDAsIDksIDAsIDAsIDksIDAsIDksIDAsIAorICAgIDksIDAsIDksIDAsIDksIDAsIDksIDksIDAsIDksIDAsIDAsIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDksIDksIDksIAorICAgIDAsIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDAsIDksIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDksIDksIAorICAgIDksIDAsIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDksIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIDAsIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDksIDksIDksIDksIDAsIDAsIDAsIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIAorICAgIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIApAQCAtNjMxOSwyNSArNjQ5NywyNSBAQAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIApAQCAtNjM0NiwyNCArNjUyNCwyNCBAQAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCA3LCAKLSAgICA3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgCi0gICAgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgNywgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgCisgICAgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgOSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgCiB9OwogCiBzdGF0aWMgY29uc3QgY2hhbmdlX3JlY29yZCogZ2V0X2NoYW5nZV8zXzJfMChQeV9VQ1M0IG4pCmRpZmYgLS1naXQgYS9Nb2R1bGVzL3VuaWNvZGVuYW1lX2RiLmggYi9Nb2R1bGVzL3VuaWNvZGVuYW1lX2RiLmgKaW5kZXggODgzMDU2MC4uMzgzODg4MiAxMDA2NDQKLS0tIGEvTW9kdWxlcy91bmljb2RlbmFtZV9kYi5oCisrKyBiL01vZHVsZXMvdW5pY29kZW5hbWVfZGIuaApAQCAtNCwzMzcgKzQsNDI4IEBACiAKIC8qIGxleGljb24gKi8KIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGxleGljb25bXSA9IHsKLSAgICA3NiwgNjksIDg0LCA4NCwgNjksIDIxMCwgODcsIDczLCA4NCwgMjAwLCA4MywgNzcsIDY1LCA3NiwgMjA0LCA4MywgODksIAotICAgIDc2LCA3NiwgNjUsIDY2LCA3NiwgMTk3LCA4MywgNzMsIDcxLCAyMDYsIDY3LCA2NSwgODAsIDczLCA4NCwgNjUsIDIwNCwgCi0gICAgNzYsIDY1LCA4NCwgNzMsIDIwNiwgODksIDIwMSwgNjcsIDc0LCAyMDMsIDY5LCA3MSwgODksIDgwLCA4NCwgNzMsIDY1LCAKLSAgICAyMDYsIDcyLCA3MywgNjksIDgyLCA3OSwgNzEsIDc2LCA4OSwgODAsIDIwMCwgNjUsIDgyLCA2NSwgNjYsIDczLCAxOTUsIAotICAgIDY3LCA3OSwgNzcsIDgwLCA2NSwgODQsIDczLCA2NiwgNzMsIDc2LCA3MywgODQsIDIxNywgNzcsIDY1LCA4NCwgNzIsIDY5LCAKLSAgICA3NywgNjUsIDg0LCA3MywgNjcsIDY1LCAyMDQsIDY3LCA4NSwgNzgsIDY5LCA3MywgNzAsIDc5LCA4MiwgMjA1LCA4MywgODksIAotICAgIDc3LCA2NiwgNzksIDIwNCwgNzAsIDc5LCA4MiwgNzcsIDEyOCwgNjcsIDY1LCA3OCwgNjUsIDY4LCA3MywgNjUsIDIwNiwgCi0gICAgODMsIDg5LCA3NiwgNzYsIDY1LCA2NiwgNzMsIDY3LCAyMTEsIDY2LCA2NSwgNzcsIDg1LCAyMDUsIDY4LCA3MywgNzEsIDczLCAKLSAgICAyMTIsIDY2LCA3OSwgNzYsIDE5NiwgNzIsIDY1LCA3OCwgNzEsIDg1LCAyMDQsIDY1LCA3OCwgMTk2LCA3MSwgODIsIDY5LCAKLSAgICA2OSwgMjAzLCA3NiwgNzMsIDcxLCA2NSwgODQsIDg1LCA4MiwgMTk3LCA3NywgODUsIDgzLCA3MywgNjcsIDY1LCAyMDQsIAotICAgIDY5LCA4NCwgNzIsIDczLCA3OSwgODAsIDczLCAxOTUsIDg0LCA3MywgNzcsIDY5LCAyMTEsIDg2LCA3OSwgODcsIDY5LCAKLSAgICAyMDQsIDcwLCA3OSwgMjEwLCA3MywgODQsIDY1LCA3NiwgNzMsIDE5NSwgNjcsIDg5LCA4MiwgNzMsIDc2LCA3NiwgNzMsIAorICAgIDc2LCA2OSwgODQsIDg0LCA2OSwgMjEwLCA4NywgNzMsIDg0LCAyMDAsIDgzLCA4OSwgNzYsIDc2LCA2NSwgNjYsIDc2LCAKKyAgICAxOTcsIDgzLCA3NywgNjUsIDc2LCAyMDQsIDgzLCA3MywgNzEsIDIwNiwgNjcsIDY1LCA4MCwgNzMsIDg0LCA2NSwgMjA0LCAKKyAgICA3NiwgNjUsIDg0LCA3MywgMjA2LCA4OSwgMjAxLCA2NywgNzQsIDIwMywgNjUsIDgyLCA2NSwgNjYsIDczLCAxOTUsIDc3LCAKKyAgICA2NSwgODQsIDcyLCA2OSwgNzcsIDY1LCA4NCwgNzMsIDY3LCA2NSwgMjA0LCA2OSwgNzEsIDg5LCA4MCwgODQsIDczLCA2NSwgCisgICAgMjA2LCA3MiwgNzMsIDY5LCA4MiwgNzksIDcxLCA3NiwgODksIDgwLCAyMDAsIDY3LCA3OSwgNzcsIDgwLCA2NSwgODQsIDczLCAKKyAgICA2NiwgNzMsIDc2LCA3MywgODQsIDIxNywgNjcsIDg1LCA3OCwgNjksIDczLCA3MCwgNzksIDgyLCAyMDUsIDgzLCA4OSwgNzcsIAorICAgIDY2LCA3OSwgMjA0LCA3MCwgNzksIDgyLCA3NywgMTI4LCA2NywgNjUsIDc4LCA2NSwgNjgsIDczLCA2NSwgMjA2LCA4MywgCisgICAgODksIDc2LCA3NiwgNjUsIDY2LCA3MywgNjcsIDIxMSwgNjYsIDY1LCA3NywgODUsIDIwNSwgNjgsIDczLCA3MSwgNzMsIAorICAgIDIxMiwgNjUsIDc4LCAxOTYsIDY2LCA3OSwgNzYsIDE5NiwgNzIsIDY1LCA3OCwgNzEsIDg1LCAyMDQsIDg2LCA3OSwgODcsIAorICAgIDY5LCAyMDQsIDcxLCA4MiwgNjksIDY5LCAyMDMsIDc2LCA3MywgNzEsIDY1LCA4NCwgODUsIDgyLCAxOTcsIDc3LCA4NSwgCisgICAgODMsIDczLCA2NywgNjUsIDIwNCwgNjksIDg0LCA3MiwgNzMsIDc5LCA4MCwgNzMsIDE5NSwgODQsIDczLCA3NywgNjksIAorICAgIDIxMSwgNzAsIDc5LCAyMTAsIDczLCA4NCwgNjUsIDc2LCA3MywgMTk1LCA2NywgODksIDgyLCA3MywgNzYsIDc2LCA3MywgCiAgICAgMTk1LCA4MiwgNjUsIDY4LCA3MywgNjcsIDY1LCAyMDQsIDgzLCA2NSwgNzgsIDgzLCA0NSwgODMsIDY5LCA4MiwgNzMsIAotICAgIDE5OCwgNjcsIDczLCA4MiwgNjcsIDc2LCA2OSwgMTk2LCA2NywgNzksIDc3LCA2NiwgNzMsIDc4LCA3MywgNzgsIDE5OSwgCi0gICAgODQsIDY1LCAyMDEsIDg2LCA2NSwgMjAxLCA3MCwgNzMsIDc4LCA2NSwgMjA0LCA4MywgODEsIDg1LCA2NSwgODIsIDE5NywgCi0gICAgNzYsIDY5LCA3MCwgMjEyLCA4NiwgNjUsIDgyLCA3MywgNjUsIDg0LCA3MywgNzksIDIwNiwgNjYsIDgyLCA2NSwgNzMsIDc2LCAKLSAgICA3NiwgMTk3LCA4MCwgNjUsIDg0LCA4NCwgNjksIDgyLCAyMDYsIDgyLCA3MywgNzEsIDcyLCAyMTIsIDY2LCA4OSwgOTAsIAotICAgIDY1LCA3OCwgODQsIDczLCA3OCwgMTk3LCA3MywgODMsIDc5LCA3NiwgNjUsIDg0LCA2OSwgMTk2LCA2NSwgNjYsIDc5LCA4NiwgCi0gICAgNjksIDEyOCwgNzgsIDg1LCA3NywgNjYsIDY5LCAyMTAsIDY4LCA3OSwgODUsIDY2LCA3NiwgMTk3LCA4MywgNzMsIDcxLCAKLSAgICA3OCwgMTI4LCAxOTQsIDY2LCA2OSwgNzYsIDc5LCA4NywgMTI4LCA3NSwgNjUsIDg0LCA2NSwgNzUsIDY1LCA3OCwgMTkzLCAKLSAgICA3NSwgNjUsIDc4LCA3MSwgODgsIDIwMSwgNzYsIDczLCA3OCwgNjksIDY1LCAyMTAsIDc3LCA3OSwgNjgsIDczLCA3MCwgNzMsIAotICAgIDY5LCAyMTAsIDg0LCA3MywgNjYsIDY5LCA4NCwgNjUsIDIwNiwgNjUsIDEyOCwgNjgsIDc5LCAyMTIsIDc3LCA2OSwgNjksIAotICAgIDIwNSwgNzcsIDg5LCA2NSwgNzgsIDc3LCA2NSwgMjEwLCA3OSwgMTk4LCA2NywgNjUsIDgyLCA4MiwgNzMsIDY5LCAyMTAsIAotICAgIDg3LCA3MiwgNzMsIDg0LCAxOTcsIDY1LCA4MiwgODIsIDc5LCA4NywgMTI4LCA4NSwgMTI4LCA3MywgNzgsIDczLCA4NCwgCi0gICAgNzMsIDY1LCAyMDQsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCAyMDQsIDczLCAxMjgsIDg5LCA2OSwgMjAwLCA3OSwgCi0gICAgMTI4LCA2NSwgODIsIDgyLCA3OSwgMjE1LCA3NywgNjUsIDgyLCA3NSwgMTI4LCA2NSwgNjYsIDc5LCA4NiwgMTk3LCA2NywgCi0gICAgNzksIDgwLCA4NCwgNzMsIDE5NSwgODAsIDcyLCA2NSwgODMsIDY5LCA0NSwgMTk3LCA3NywgNzksIDc4LCA3MSwgNzksIDc2LCAKLSAgICA3MywgNjUsIDIwNiwgNjgsIDY5LCA4NiwgNjUsIDc4LCA2NSwgNzEsIDY1LCA4MiwgMjAxLCA2NiwgNzYsIDY1LCA2NywgCi0gICAgMjAzLCA3NSwgNzIsIDc3LCA2OSwgMjEwLCA4NCwgNzMsIDc2LCAxOTcsIDgwLCA2NSwgODIsIDY5LCA3OCwgODQsIDcyLCAKLSAgICA2OSwgODMsIDczLCA5MCwgNjksIDE5NiwgODMsIDg5LCA3NywgNjYsIDc5LCA3NiwgMTI4LCA4NCwgNzIsIDY1LCAyMDUsIAotICAgIDc0LCA3OSwgNzgsIDcxLCA4MywgNjksIDc5LCA3OCwgMTk5LCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCAxMjgsIDgzLCA4MSwgCi0gICAgODUsIDY1LCA4MiwgNjksIDE5NiwgNjYsIDc5LCAyMTYsIDcyLCA2OSwgNjYsIDgyLCA2OSwgMjE1LCA4MCwgNzYsIDg1LCAKLSAgICAyMTEsIDgyLCA3MywgNzEsIDcyLCA4NCwgODcsIDY1LCA4MiwgNjgsIDIxMSwgNjgsIDgyLCA2NSwgODcsIDczLCA3OCwgNzEsIAorICAgIDE5OCwgODQsIDY1LCA3NywgNzMsIDIwNCwgNjcsIDczLCA4MiwgNjcsIDc2LCA2OSwgMTk2LCA2NywgNzksIDc3LCA2NiwgCisgICAgNzMsIDc4LCA3MywgNzgsIDE5OSwgODQsIDY1LCAyMDEsIDcwLCA3MywgNzgsIDY1LCAyMDQsIDg2LCA2NSwgMjAxLCA4MywgCisgICAgODEsIDg1LCA2NSwgODIsIDE5NywgNzYsIDY5LCA3MCwgMjEyLCA4MiwgNzMsIDcxLCA3MiwgMjEyLCA4NiwgNjUsIDgyLCAKKyAgICA3MywgNjUsIDg0LCA3MywgNzksIDIwNiwgNjYsIDgyLCA2NSwgNzMsIDc2LCA3NiwgMTk3LCA4MCwgNjUsIDg0LCA4NCwgNjksIAorICAgIDgyLCAyMDYsIDY1LCA2NiwgNzksIDg2LCA2OSwgMTI4LCA2NiwgODksIDkwLCA2NSwgNzgsIDg0LCA3MywgNzgsIDE5NywgCisgICAgODMsIDczLCA3MSwgNzgsIDEyOCwgNjYsIDY5LCA3NiwgNzksIDg3LCAxMjgsIDY4LCA3OSwgODUsIDY2LCA3NiwgMTk3LCAKKyAgICA3MywgODMsIDc5LCA3NiwgNjUsIDg0LCA2OSwgMTk2LCA3OCwgODUsIDc3LCA2NiwgNjksIDIxMCwgNzUsIDY1LCA4NCwgNjUsIAorICAgIDc1LCA2NSwgNzgsIDE5MywgMTk0LCA3NywgNzksIDY4LCA3MywgNzAsIDczLCA2OSwgMjEwLCA2OCwgNzksIDIxMiwgNzUsIAorICAgIDY1LCA3OCwgNzEsIDg4LCAyMDEsIDY1LCAxMjgsIDc2LCA3MywgNzgsIDY5LCA2NSwgMjEwLCA4NCwgNzMsIDY2LCA2OSwgCisgICAgODQsIDY1LCAyMDYsIDc5LCAxOTgsIDczLCA3OCwgNzMsIDg0LCA3MywgNjUsIDIwNCwgNzcsIDY5LCA2OSwgMjA1LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgMjA0LCA3NywgODksIDY1LCA3OCwgNzcsIDY1LCAyMTAsIDc1LCA3MiwgNzcsIDY5LCAKKyAgICAyMTAsIDg1LCAxMjgsIDg3LCA3MiwgNzMsIDg0LCAxOTcsIDY3LCA2NSwgODIsIDgyLCA3MywgNjksIDIxMCwgNzMsIDEyOCwgCisgICAgNjUsIDgyLCA4MiwgNzksIDg3LCAxMjgsIDc5LCAxMjgsIDY1LCA2NiwgNzksIDg2LCAxOTcsIDc3LCA2NSwgODIsIDc1LCAKKyAgICAxMjgsIDg5LCA2OSwgMjAwLCA2NSwgODIsIDgyLCA3OSwgMjE1LCA2NywgNzksIDgwLCA4NCwgNzMsIDE5NSwgODAsIDcyLCAKKyAgICA2NSwgODMsIDY5LCA0NSwgMTk3LCA3NywgNzksIDc4LCA3MSwgNzksIDc2LCA3MywgNjUsIDIwNiwgNjgsIDY5LCA4NiwgNjUsIAorICAgIDc4LCA2NSwgNzEsIDY1LCA4MiwgMjAxLCA2NiwgNzYsIDY1LCA2NywgMjAzLCA4NCwgNzMsIDc2LCAxOTcsIDgzLCA4OSwgCisgICAgNzcsIDY2LCA3OSwgNzYsIDEyOCwgODAsIDY1LCA4MiwgNjksIDc4LCA4NCwgNzIsIDY5LCA4MywgNzMsIDkwLCA2OSwgMTk2LCAKKyAgICA4NCwgNzIsIDY1LCAyMDUsIDc0LCA3OSwgNzgsIDcxLCA4MywgNjksIDc5LCA3OCwgMTk5LCA4MywgODQsIDgyLCA3OSwgNzUsIAorICAgIDY5LCAxMjgsIDgzLCA4MSwgODUsIDY1LCA4MiwgNjksIDE5NiwgNjYsIDc5LCAyMTYsIDcyLCA2OSwgNjYsIDgyLCA2OSwgCisgICAgMjE1LCA3NywgNzMsIDY1LCAyMDcsIDgwLCA3NiwgODUsIDIxMSwgODIsIDczLCA3MSwgNzIsIDg0LCA4NywgNjUsIDgyLCAKKyAgICA2OCwgMjExLCA3MSwgNjksIDc5LCA4MiwgNzEsIDczLCA2NSwgMjA2LCA2OCwgODIsIDY1LCA4NywgNzMsIDc4LCA3MSwgCiAgICAgMjExLCA2NywgNzIsIDc5LCA4MywgNjksIDc5LCA3OCwgMTk5LCA3MiwgNjUsIDc2LCA3MCwgODcsIDczLCA2OCwgODQsIAotICAgIDIwMCwgNjYsIDY1LCA3NiwgNzMsIDc4LCA2OSwgODMsIDE5NywgNzEsIDY5LCA3OSwgODIsIDcxLCA3MywgNjUsIDIwNiwgCi0gICAgNzIsIDc5LCA3OSwgNzUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDIwNSwgODAsIDcyLCA2NSwgODMsIDY5LCAKLSAgICA0NSwgMTk2LCA2NSwgNzYsIDY3LCA3MiwgNjksIDc3LCA3MywgNjcsIDY1LCAyMDQsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIAotICAgIDY1LCA4MCwgNzIsIDczLCAxOTUsIDY1LCA3NiwgNjksIDE5OCwgNzIsIDY5LCA2NSwgODYsIDIxNywgODQsIDc5LCAxMjgsIAotICAgIDg0LCA4NywgNzksIDEyOCwgNzksIDg2LCA2OSwgMjEwLCAyMTMsIDY2LCA4MiwgNjUsIDcyLCA3NywgMjAxLCA4MywgNjcsIAotICAgIDgyLCA3MywgODAsIDIxMiwgODUsIDIwOCwgNzYsIDc5LCAyMTUsIDc5LCA3OCwgNjksIDEyOCwgODQsIDg3LCAyMDcsIDY4LCAKLSAgICA3OSwgODcsIDIwNiwgNzAsIDg1LCA3NiwgNzYsIDg3LCA3MywgNjgsIDg0LCAyMDAsIDcyLCA2NSwgMjAwLCA3OSwgNzgsIAotICAgIDE5NywgNjksIDgxLCA4NSwgNjUsIDIwNCwgNzIsIDczLCA3MSwgMjAwLCA2NiwgODIsIDY1LCA2NywgNzUsIDY5LCA4NCwgCi0gICAgMTI4LCA4NCwgNjUsIDE5OSwgNjgsIDc5LCA3NywgNzMsIDc4LCAyMDcsIDc4LCA4NSwgNzcsIDY5LCA4MiwgNzMsIDE5NSwgCi0gICAgNzAsIDgyLCA2NSwgNzUsIDg0LCA4NSwgMjEwLCA3NywgNjUsIDc2LCA2NSwgODksIDY1LCA3NiwgNjUsIDIwNSwgODAsIDcyLCAKLSAgICA2NSwgODMsIDY5LCA0NSwgMTk1LCA3NiwgNjksIDcwLCA4NCwgODcsIDY1LCA4MiwgNjgsIDIxMSwgODQsIDcyLCA4MiwgNjksIAotICAgIDE5NywgNjYsIDY1LCA4MiwgMTI4LCA3NCwgODUsIDc4LCA3MSwgODMsIDY5LCA3OSwgNzgsIDE5OSwgNzEsIDc2LCA2NSwgCi0gICAgNzEsIDc5LCA3NiwgNzMsIDg0LCA3MywgMTk1LCA2NywgNzIsIDY1LCA4MiwgNjUsIDY3LCA4NCwgNjksIDIxMCwgNzcsIDY5LCAKLSAgICA2OCwgNzMsIDY1LCAyMDQsIDg0LCA2OSwgNzYsIDg1LCA3MSwgMjEzLCA2NiwgNjksIDc4LCA3MSwgNjUsIDc2LCAyMDEsIAotICAgIDY1LCA4MiwgNzcsIDY5LCA3OCwgNzMsIDY1LCAyMDYsIDcyLCA3MywgODIsIDY1LCA3MSwgNjUsIDc4LCAxOTMsIDczLCA2OCwgCi0gICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgMjAwLCA3NCwgNjUsIDg2LCA2NSwgNzgsIDY5LCA4MywgMTk3LCA3NCwgNjksIDY5LCAKLSAgICAyMDUsIDc4LCA2OSwgNzEsIDY1LCA4NCwgNzMsIDg2LCAxOTcsIDc5LCA4MiwgNzMsIDg5LCAxOTMsIDg3LCA2OSwgODMsIAotICAgIDg0LCA0NSwgNjcsIDgyLCA2OSwgMTk3LCA3MiwgNjUsIDc2LCAxOTgsIDc3LCA2NSwgODIsIDIwMywgODAsIDcyLCA2NSwgCi0gICAgODMsIDY5LCA0NSwgMTkzLCA4NCwgNzIsIDY1LCAyMDEsIDc1LCA2NSwgNzgsIDc4LCA2NSwgNjgsIDE5MywgNzgsIDY5LCAKLSAgICAyMTUsIDY3LCA3MiwgNjksIDgyLCA3OSwgNzUsIDY5LCAxOTcsIDcyLCA2NSwgMTI4LCA4NCwgNzksIDc4LCAxOTcsIDg2LCAKLSAgICA3OSwgNjcsIDY1LCA3NiwgNzMsIDE5NSwgNjcsIDcyLCA2NSwgMjA1LCA3MCwgNzksIDg1LCA4MiwgMTI4LCA3MSwgODUsIAotICAgIDc0LCA2NSwgODIsIDY1LCA4NCwgMjAxLCA3NiwgODUsIDE5NywgODQsIDcyLCA4MiwgNjksIDY5LCAxMjgsIDgyLCA4NSwgCi0gICAgNzgsIDczLCAxOTUsIDgzLCA2NSwgODUsIDgyLCA2NSwgODMsIDcyLCA4NCwgODIsIDE5MywgODQsIDY5LCA4NCwgODIsIDY1LCAKLSAgICA3MSwgODIsIDY1LCAyMDUsIDY4LCA2OSwgODMsIDY5LCA4MiwgNjksIDIxMiwgODMsIDczLCA3OCwgNzIsIDY1LCA3NiwgCi0gICAgMTkzLCA3MSwgODUsIDgyLCA3NywgODUsIDc1LCA3MiwgMjAxLCA3OCwgNzksIDg0LCA2NSwgODQsIDczLCA3OSwgMjA2LCAKLSAgICA4MywgODksIDgyLCA3MywgNjUsIDE5NSwgNjgsIDc5LCA4NCwgMjExLCA3NiwgNzMsIDcxLCA3MiwgMjEyLCA4NCwgNjUsIAotICAgIDc3LCA3MywgMjA0LCA2NSwgNjcsIDg1LCA4NCwgNjksIDEyOCwgNzAsIDczLCA4NiwgNjksIDEyOCwgNzUsIDY1LCAxMjgsIAotICAgIDc2LCA2OSwgODAsIDY3LCA3MiwgMTkzLCA3NiwgNzksIDc4LCAxOTksIDg0LCA4NSwgODIsIDc1LCA3MywgMTk1LCA4OSwgCi0gICAgNjUsIDEyOCwgNjgsIDc5LCA4NSwgNjYsIDc2LCA2OSwgNDUsIDgzLCA4NCwgODIsIDg1LCA2NywgMjAzLCA3NywgNjUsIAotICAgIDEyOCwgODMsIDczLCA4OCwgMTI4LCA4NiwgNzMsIDY5LCAyMTIsIDcyLCA2NSwgNzcsIDkwLCAxOTMsIDgwLCA2NSwgMTI4LCAKLSAgICA2NSwgODAsIDIwNCwgNjksIDczLCA3MSwgNzIsIDg0LCAxMjgsIDcwLCA4NSwgNzgsIDY3LCA4NCwgNzMsIDc5LCA3OCwgNjUsIAotICAgIDIwNCwgODMsIDEyOCwgODMsIDY5LCA4NiwgNjksIDc4LCAxMjgsIDcyLCA3OSwgODIsIDczLCA5MCwgNzksIDc4LCA4NCwgCi0gICAgNjUsIDIwNCwgNzgsIDczLCA3OCwgNjksIDEyOCwgODQsIDY5LCA3NiwgNjksIDcxLCA4MiwgNjUsIDgwLCAyMDAsIDY2LCAKLSAgICA3OSwgODAsIDc5LCA3NywgNzksIDcwLCAyMDcsIDgyLCA2NSwgMTI4LCA3OCwgNjUsIDEyOCwgNjYsIDY1LCA4MiwgMTk0LCAKLSAgICA2OCwgNjUsIDgzLCA3MywgMTkzLCA3NSwgNjUsIDczLCA4NCwgNzIsIDIwMSwgNzYsIDczLCA3NywgNjYsIDIxMywgNzcsIAotICAgIDY1LCA3NSwgODMsIDg1LCA4MiwgMTkzLCA4NCwgMjA3LCA5MCwgOTAsIDg5LCA4OCwgMTI4LCA5MCwgOTAsIDg5LCA4NCwgCi0gICAgMTI4LCA5MCwgOTAsIDg5LCA4MiwgODgsIDEyOCwgOTAsIDkwLCA4OSwgODIsIDEyOCwgOTAsIDkwLCA4OSwgODAsIDEyOCwgCi0gICAgOTAsIDkwLCA4OSwgMTI4LCA5MCwgOTAsIDg1LCA4OCwgMTI4LCA5MCwgOTAsIDg1LCA4MiwgODgsIDEyOCwgOTAsIDkwLCAKLSAgICA4NSwgODIsIDEyOCwgOTAsIDkwLCA4NSwgODAsIDEyOCwgOTAsIDkwLCA4NSwgMTI4LCA5MCwgOTAsIDc5LCA4OCwgMTI4LCAKLSAgICA5MCwgOTAsIDc5LCA4MCwgMTI4LCA5MCwgOTAsIDc5LCAxMjgsIDkwLCA5MCwgNzMsIDg4LCAxMjgsIDkwLCA5MCwgNzMsIAotICAgIDg0LCAxMjgsIDkwLCA5MCwgNzMsIDgwLCAxMjgsIDkwLCA5MCwgNzMsIDY5LCA4OCwgMTI4LCA5MCwgOTAsIDczLCA2OSwgCi0gICAgODQsIDEyOCwgOTAsIDkwLCA3MywgNjksIDgwLCAxMjgsIDkwLCA5MCwgNzMsIDY5LCAxMjgsIDkwLCA5MCwgNzMsIDEyOCwgCi0gICAgOTAsIDkwLCA2OSwgODgsIDEyOCwgOTAsIDkwLCA2OSwgODAsIDEyOCwgOTAsIDkwLCA2OSwgNjksIDEyOCwgOTAsIDkwLCAKLSAgICA2OSwgMTI4LCA5MCwgOTAsIDY1LCA4OCwgMTI4LCA5MCwgOTAsIDY1LCA4NCwgMTI4LCA5MCwgOTAsIDY1LCA4MCwgMTI4LCAKLSAgICA5MCwgOTAsIDY1LCA2NSwgMTI4LCA5MCwgOTAsIDY1LCAxMjgsIDkwLCA4OSwgNzEsIDc5LCA4MywgMTI4LCA5MCwgODcsIAotICAgIDY1LCA4MiwgNjUsIDc1LCA2NSwgODksIDEyOCwgOTAsIDg3LCA2NSwgMTI4LCA5MCwgODUsIDg0LCAxMjgsIDkwLCA4NSwgCi0gICAgNzksIDg4LCAxMjgsIDkwLCA4NSwgNzksIDgwLCAxMjgsIDkwLCA4NSwgNzksIDEyOCwgOTAsIDg1LCA3NywgMTI4LCA5MCwgCi0gICAgODUsIDY2LCA4NSwgODIsIDEyOCwgOTAsIDg1LCA1MywgMTI4LCA5MCwgODUsIDE4MSwgOTAsIDgyLCA2NSwgMTI4LCA5MCwgCi0gICAgODEsIDY1LCA4MCwgNzIsIDE5MywgOTAsIDc5LCA4NCwgMTI4LCA5MCwgNzksIDc5LCAxMjgsIDkwLCA3OSwgNjUsIDEyOCwgCi0gICAgOTAsIDc2LCA2NSwgNzcsIDE5MywgOTAsIDc2LCA2NSwgMTI4LCA5MCwgNzYsIDE5MywgOTAsIDc0LCA2OSwgMTI4LCA5MCwgCi0gICAgNzMsIDkwLCA1MCwgMTI4LCA5MCwgNzMsIDgxLCA2NSwgNjUsIDEyOCwgOTAsIDczLCA3OCwgNzksIDgyLCAxMjgsIDkwLCAKLSAgICA3MywgNzYsIDY4LCA2OSwgMTI4LCA5MCwgNzMsIDcxLCA5MCwgNjUsIDE5OSwgOTAsIDczLCA3MSwgMTI4LCA5MCwgNzMsIAotICAgIDY4LCAxOTMsIDkwLCA3MywgNjYsIDEyOCwgOTAsIDczLCAxOTQsIDkwLCA3MywgNTEsIDEyOCwgOTAsIDIwMSwgOTAsIDcyLCAKLSAgICA4OSwgODgsIDEyOCwgOTAsIDcyLCA4OSwgODQsIDEyOCwgOTAsIDcyLCA4OSwgODIsIDg4LCAxMjgsIDkwLCA3MiwgODksIAotICAgIDgyLCAxMjgsIDkwLCA3MiwgODksIDgwLCAxMjgsIDkwLCA3MiwgODksIDEyOCwgOTAsIDcyLCA4NywgNjksIDEyOCwgOTAsIAotICAgIDcyLCA4NywgNjUsIDEyOCwgOTAsIDcyLCA4NSwgODgsIDEyOCwgOTAsIDcyLCA4NSwgODQsIDEyOCwgOTAsIDcyLCA4NSwgCi0gICAgODIsIDg4LCAxMjgsIDkwLCA3MiwgODUsIDgyLCAxMjgsIDkwLCA3MiwgODUsIDgwLCAxMjgsIDkwLCA3MiwgODUsIDc5LCAKLSAgICA4OCwgMTI4LCA5MCwgNzIsIDg1LCA3OSwgODAsIDEyOCwgOTAsIDcyLCA4NSwgNzksIDEyOCwgOTAsIDcyLCA4NSwgMTI4LCAKLSAgICA5MCwgNzIsIDc5LCA4OCwgMTI4LCA5MCwgNzIsIDc5LCA4NCwgMTI4LCA5MCwgNzIsIDc5LCA4MCwgMTI4LCA5MCwgNzIsIAotICAgIDc5LCA3OSwgMTI4LCA5MCwgNzIsIDc5LCAxMjgsIDkwLCA3MiwgNzMsIDg2LCA2OSwgODQsIDY5LCAxMjgsIDkwLCA3MiwgCi0gICAgNzMsIDEyOCwgOTAsIDcyLCA2OSwgODgsIDEyOCwgOTAsIDcyLCA2OSwgODQsIDEyOCwgOTAsIDcyLCA2OSwgODAsIDEyOCwgCi0gICAgOTAsIDcyLCA2OSwgNjksIDEyOCwgOTAsIDcyLCA2OSwgMTI4LCA5MCwgNzIsIDE5NywgOTAsIDcyLCA2NSwgODgsIDEyOCwgCi0gICAgOTAsIDcyLCA2NSwgODQsIDEyOCwgOTAsIDcyLCA2NSwgODIsIDEyOCwgOTAsIDcyLCA2NSwgODAsIDEyOCwgOTAsIDcyLCAKLSAgICA2NSwgNzMsIDc4LCAxMjgsIDkwLCA3MiwgNjUsIDY1LCAxMjgsIDkwLCA3MiwgNjUsIDEyOCwgOTAsIDcyLCAxMjgsIDkwLCAKLSAgICA2OSwgODQsIDY1LCAxMjgsIDkwLCA2OSwgODIsIDc5LCAxMjgsIDkwLCA2OSwgODIsIDIwNywgOTAsIDY5LCA3OCwgMTI4LCAKLSAgICA5MCwgNjksIDc3LCA3NiwgODksIDY1LCAxMjgsIDkwLCA2OSwgNzcsIDc2LCA3NCwgNjUsIDEyOCwgOTAsIDY5LCA1MCwgCi0gICAgMTI4LCA5MCwgMTk3LCA5MCwgNjUsIDg5LCA3OCwgMTI4LCA5MCwgNjUsIDg5LCA3MywgNzgsIDEyOCwgOTAsIDY1LCA4OSwgCi0gICAgNzMsIDIwNiwgOTAsIDY1LCA4NiwgNzMsIDg5LCA2NSwgNzgsIDczLCAxMjgsIDkwLCA2NSwgODQsIDY1LCAxMjgsIDkwLCAKLSAgICA2NSwgODIsIDgxLCA2NSwgMTI4LCA5MCwgNjUsIDgxLCA2OSwgMTk4LCA5MCwgNjUsIDc3LCA4OCwgMTI4LCA5MCwgNjUsIAotICAgIDIwNCwgOTAsIDY1LCA3MywgNzgsIDEyOCwgOTAsIDY1LCA3MywgMjA2LCA5MCwgNjUsIDczLCAxMjgsIDkwLCA2NSwgNzIsIAotICAgIDEyOCwgOTAsIDY1LCAyMDAsIDkwLCA2NSwgNzEsIDEyOCwgOTAsIDY1LCA2OSwgNzAsIDEyOCwgOTAsIDQ4LCA0OSwgNTQsIAotICAgIDcyLCAxMjgsIDkwLCA0OCwgNDksIDU0LCA3MSwgMTI4LCA5MCwgNDgsIDQ5LCA1NCwgNzAsIDEyOCwgOTAsIDQ4LCA0OSwgCi0gICAgNTQsIDY5LCAxMjgsIDkwLCA0OCwgNDksIDU0LCA2OCwgMTI4LCA5MCwgNDgsIDQ5LCA1NCwgNjcsIDEyOCwgOTAsIDQ4LCAKLSAgICA0OSwgNTQsIDY2LCAxMjgsIDkwLCA0OCwgNDksIDU0LCA2NSwgMTI4LCA5MCwgNDgsIDQ5LCA1NCwgMTI4LCA5MCwgNDgsIAotICAgIDQ5LCA1MywgNzMsIDEyOCwgOTAsIDQ4LCA0OSwgNTMsIDcyLCAxMjgsIDkwLCA0OCwgNDksIDUzLCA3MSwgMTI4LCA5MCwgCi0gICAgNDgsIDQ5LCA1MywgNzAsIDEyOCwgOTAsIDQ4LCA0OSwgNTMsIDY5LCAxMjgsIDkwLCA0OCwgNDksIDUzLCA2OCwgMTI4LCAKLSAgICA5MCwgNDgsIDQ5LCA1MywgNjcsIDEyOCwgOTAsIDQ4LCA0OSwgNTMsIDY2LCAxMjgsIDkwLCA0OCwgNDksIDUzLCA2NSwgCi0gICAgMTI4LCA5MCwgNDgsIDQ5LCA1MywgMTI4LCA5MCwgNDgsIDQ5LCA1MiwgMTI4LCA5MCwgNDgsIDQ5LCA1MSwgMTI4LCA5MCwgCi0gICAgNDgsIDQ5LCA1MCwgMTI4LCA5MCwgNDgsIDQ5LCA0OSwgMTI4LCA5MCwgNDgsIDQ5LCA0OCwgMTI4LCA5MCwgNDgsIDQ4LCAKLSAgICA1NywgMTI4LCA5MCwgNDgsIDQ4LCA1NiwgMTI4LCA5MCwgNDgsIDQ4LCA1NSwgMTI4LCA5MCwgNDgsIDQ4LCA1NCwgMTI4LCAKLSAgICA5MCwgNDgsIDQ4LCA1MywgNjUsIDEyOCwgOTAsIDQ4LCA0OCwgNTMsIDEyOCwgOTAsIDQ4LCA0OCwgNTIsIDY1LCAxMjgsIAotICAgIDkwLCA0OCwgNDgsIDUyLCAxMjgsIDkwLCA0OCwgNDgsIDUxLCA2NiwgMTI4LCA5MCwgNDgsIDQ4LCA1MSwgNjUsIDEyOCwgCi0gICAgOTAsIDQ4LCA0OCwgNTEsIDEyOCwgOTAsIDQ4LCA0OCwgNTAsIDY4LCAxMjgsIDkwLCA0OCwgNDgsIDUwLCA2NywgMTI4LCAKLSAgICA5MCwgNDgsIDQ4LCA1MCwgNjYsIDEyOCwgOTAsIDQ4LCA0OCwgNTAsIDY1LCAxMjgsIDkwLCA0OCwgNDgsIDUwLCAxMjgsIAotICAgIDkwLCA0OCwgNDgsIDQ5LCAxMjgsIDkwLCAxMjgsIDIxOCwgODksIDg5LCA4OCwgMTI4LCA4OSwgODksIDg0LCAxMjgsIDg5LCAKLSAgICA4OSwgODIsIDg4LCAxMjgsIDg5LCA4OSwgODIsIDEyOCwgODksIDg5LCA4MCwgMTI4LCA4OSwgODksIDY5LCAxMjgsIDg5LCAKLSAgICA4OSwgNjUsIDEyOCwgODksIDg5LCAxMjgsIDg5LCA4NywgNzksIDc5LCAxMjgsIDg5LCA4NywgNzksIDEyOCwgODksIDg3LCAKLSAgICA3MywgNzMsIDEyOCwgODksIDg3LCA3MywgMTI4LCA4OSwgODcsIDY5LCAxMjgsIDg5LCA4NywgNjUsIDY1LCAxMjgsIDg5LCAKLSAgICA4NywgNjUsIDEyOCwgODksIDg2LCAxMjgsIDg5LCA4NSwgODgsIDEyOCwgODksIDg1LCA4NywgNzksIDgxLCAxMjgsIDg5LCAKLSAgICA4NSwgODUsIDc1LCA2NSwgNzYsIDY5LCA2NSwgODAsIDczLCA3OCwgODQsIDg1LCAxMjgsIDg5LCA4NSwgODQsIDEyOCwgODksIAotICAgIDg1LCA4MywgMTI4LCA4OSwgODUsIDIxMSwgODksIDg1LCA4MiwgODgsIDEyOCwgODksIDg1LCA4MiwgMTI4LCA4OSwgODUsIAotICAgIDgxLCAxMjgsIDg5LCA4NSwgMjA5LCA4OSwgODUsIDgwLCAxMjgsIDg5LCA4NSwgNzksIDg4LCAxMjgsIDg5LCA4NSwgNzksIAotICAgIDg0LCAxMjgsIDg5LCA4NSwgNzksIDgwLCAxMjgsIDg5LCA4NSwgNzksIDc3LCAxMjgsIDg5LCA4NSwgNzksIDEyOCwgODksIAotICAgIDg1LCA3OCwgMTI4LCA4OSwgODUsIDc3LCAxMjgsIDg5LCA4NSwgNjksIDgxLCAxMjgsIDg5LCA4NSwgNjksIDEyOCwgODksIAotICAgIDg1LCA2OCwgNzIsIDEyOCwgODksIDg1LCA2OCwgMjAwLCA4OSwgODUsIDY1LCA3OCwgMTI4LCA4OSwgODUsIDY1LCA2OSwgCi0gICAgNzgsIDEyOCwgODksIDg1LCA0NSwgODksIDY5LCA3OSwgMTI4LCA4OSwgODUsIDQ1LCA4OSwgNjksIDEyOCwgODksIDg1LCAKLSAgICA0NSwgODUsIDEyOCwgODksIDg1LCA0NSwgNzksIDEyOCwgODksIDg1LCA0NSwgNzMsIDEyOCwgODksIDg1LCA0NSwgNjksIAotICAgIDc5LCAxMjgsIDg5LCA4NSwgNDUsIDY5LCAxMjgsIDg5LCA4NSwgNDUsIDY1LCA2OSwgMTI4LCA4OSwgODUsIDQ1LCA2NSwgCi0gICAgMTI4LCA4OSwgODUsIDEyOCwgODksIDIxMywgODksIDgwLCA4MywgNzMsIDc2LCA3MywgMTI4LCA4OSwgODAsIDc5LCA4MiwgCi0gICAgODIsIDc5LCA3MywgMTI4LCA4OSwgODAsIDc5LCA3NSwgODIsIDczLCA4MywgNzMsIDgzLCAxMjgsIDg5LCA4MCwgNzksIDc1LCAKLSAgICA4MiwgNzMsIDgzLCA3MywgMjExLCA4OSwgODAsIDc5LCA3MSwgNjksIDcxLCA4MiwgNjUsIDc3LCA3NywgNjksIDc4LCA3MywgCi0gICAgMTI4LCA4OSwgNzksIDg5LCAxMjgsIDg5LCA3OSwgODgsIDEyOCwgODksIDc5LCA4NSwgODQsIDcyLCA3MCwgODUsIDc2LCAKLSAgICA3OCwgNjksIDgzLCA4MywgMTI4LCA4OSwgNzksIDg1LCA4NCwgNzIsIDcwLCA4NSwgMjA0LCA4OSwgNzksIDg0LCAxMjgsIAotICAgIDg5LCA3OSwgODIsIDczLCAxMjgsIDg5LCA3OSwgODEsIDEyOCwgODksIDc5LCAyMDksIDg5LCA3OSwgODAsIDEyOCwgODksIAotICAgIDc5LCA3OSwgMTI4LCA4OSwgNzksIDc3LCA3OSwgMTI4LCA4OSwgNzksIDcxLCA3MiwgMTI4LCA4OSwgNzksIDY4LCA3MiwgCi0gICAgMTI4LCA4OSwgNzksIDY4LCAxMjgsIDg5LCA3OSwgMTk2LCA4OSwgNzksIDY1LCAxMjgsIDg5LCA3OSwgNDUsIDg5LCA2OSwgCi0gICAgNzksIDEyOCwgODksIDc5LCA0NSwgODksIDY1LCA2OSwgMTI4LCA4OSwgNzksIDQ1LCA4OSwgNjUsIDEyOCwgODksIDc5LCAKLSAgICA0NSwgNzksIDEyOCwgODksIDc5LCA0NSwgNzMsIDEyOCwgODksIDc5LCA0NSwgNjksIDc5LCAxMjgsIDg5LCA3OSwgNDUsIAotICAgIDY1LCA2OSwgMTI4LCA4OSwgNzksIDQ1LCA2NSwgMTI4LCA4OSwgNzksIDEyOCwgODksIDIwNywgODksIDczLCA5MCwgNjksIAotICAgIDg0LCAxMjgsIDg5LCA3MywgODgsIDEyOCwgODksIDczLCA4NywgNzgsIDEyOCwgODksIDczLCA4NCwgMTI4LCA4OSwgNzMsIAotICAgIDgwLCAxMjgsIDg5LCA3MywgNzgsIDcxLCAxMjgsIDg5LCA3MywgNzMsIDEyOCwgODksIDczLCAxOTksIDg5LCA3MywgNjksIAotICAgIDg4LCAxMjgsIDg5LCA3MywgNjksIDg0LCAxMjgsIDg5LCA3MywgNjksIDgwLCAxMjgsIDg5LCA3MywgNjksIDY5LCAxMjgsIAotICAgIDg5LCA3MywgNjksIDEyOCwgODksIDczLCA2OCwgNjgsIDczLCA4MywgMjAwLCA4OSwgNzMsIDQ1LCA4NSwgMTI4LCA4OSwgCi0gICAgNzMsIDEyOCwgODksIDcwLCA2OSwgODMsIDczLCA4MywgMTI4LCA4OSwgNzAsIDY5LCA4MywgNzMsIDIxMSwgODksIDcwLCAKLSAgICA2OSwgMjA2LCA4OSwgNjksIDg5LCAxMjgsIDg5LCA2OSwgODcsIDEyOCwgODksIDY5LCA4NSwgODgsIDEyOCwgODksIDY5LCAKLSAgICA4NSwgODIsIDY1LCA2OSwgMTI4LCA4OSwgNjksIDg1LCA4MSwgMTI4LCA4OSwgNjksIDg1LCA3NywgMTI4LCA4OSwgNjksIAotICAgIDg1LCA2NSwgNjksIDg0LCAxMjgsIDg5LCA2OSwgODUsIDY1LCA2OSwgMTI4LCA4OSwgNjksIDg0LCA3MywgODYsIDEyOCwgCi0gICAgODksIDY5LCA4MywgODQsIDg1LCAxMjgsIDg5LCA2OSwgODMsIDczLCA2OSwgODUsIDc4LCA3MSwgNDUsIDgzLCA3MywgNzksIAotICAgIDgzLCAxMjgsIDg5LCA2OSwgODMsIDczLCA2OSwgODUsIDc4LCA3MSwgNDUsIDgwLCA2NSwgNzgsIDgzLCA3MywgNzksIDgzLCAKLSAgICAxMjgsIDg5LCA2OSwgODMsIDczLCA2OSwgODUsIDc4LCA3MSwgNDUsIDc3LCA3MywgNjksIDg1LCA3NywgMTI4LCA4OSwgNjksIAotICAgIDgzLCA3MywgNjksIDg1LCA3OCwgNzEsIDQ1LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDEyOCwgODksIDY5LCA4MywgNzMsIDY5LCAKLSAgICA4NSwgNzgsIDcxLCAxMjgsIDg5LCA2OSwgODIsIDg1LCAxMjgsIDg5LCA2OSwgODIsIDIxMywgODksIDY5LCA4MiwgNzMsIAotICAgIDEyOCwgODksIDY5LCA4MiwgNjUsIDIwMCwgODksIDY5LCA4MiwgMTI4LCA4OSwgNjksIDc5LCA4MiwgNzMsIDc4LCA3MiwgCi0gICAgNzMsIDY5LCA4NSwgNzIsIDEyOCwgODksIDY5LCA3OSwgNDUsIDg5LCA2NSwgMTI4LCA4OSwgNjksIDc5LCA0NSwgODUsIAotICAgIDEyOCwgODksIDY5LCA3OSwgNDUsIDc5LCAxMjgsIDg5LCA2OSwgNzgsIDczLCA4MywgNjksIDIwMSwgODksIDY5LCA3OCwgCi0gICAgNjUsIDgwLCAxMjgsIDg5LCA2OSwgNzgsIDEyOCwgODksIDY5LCAyMDYsIDg5LCA2OSwgNzYsIDc2LCA3OSwgODcsIDEyOCwgCi0gICAgODksIDY5LCA3NiwgNzYsIDc5LCAyMTUsIDg5LCA2OSwgNzIsIDEyOCwgODksIDY5LCA2OSwgMTI4LCA4OSwgNjksIDY1LCAKLSAgICAyMTAsIDg5LCA2OSwgNjUsIDEyOCwgODksIDY1LCA5MCwgOTAsIDEyOCwgODksIDY1LCA5MCwgNzIsIDEyOCwgODksIDY1LCAKLSAgICA5MCwgMTI4LCA4OSwgNjUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA4OSwgNjUsIDg5LCAxMjgsIDg5LCA2NSwgODcsIAotICAgIDEyOCwgODksIDY1LCA4NiwgMTI4LCA4OSwgNjUsIDg0LCA4NCwgMTI4LCA4OSwgNjUsIDg0LCA3MywgMTI4LCA4OSwgNjUsIAotICAgIDg0LCA3MiwgMTI4LCA4OSwgNjUsIDg0LCAxMjgsIDg5LCA2NSwgODMsIDgzLCAxMjgsIDg5LCA2NSwgODMsIDcyLCAxMjgsIAotICAgIDg5LCA2NSwgODMsIDEyOCwgODksIDY1LCA4MiwgODIsIDEyOCwgODksIDY1LCA4MiwgMTI4LCA4OSwgNjUsIDIxMCwgODksIAotICAgIDY1LCA4MSwgMTI4LCA4OSwgNjUsIDgwLCAxMjgsIDg5LCA2NSwgNzgsIDcxLCAxMjgsIDg5LCA2NSwgNzgsIDE5OSwgODksIAotICAgIDY1LCA3OCwgMTI4LCA4OSwgNjUsIDc3LCA3OSwgNzUsIDEyOCwgODksIDY1LCA3NywgNjUsIDc1LCA3NSwgNjUsIDc4LCAKLSAgICAxMjgsIDg5LCA2NSwgNzcsIDEyOCwgODksIDY1LCA3NiwgMTI4LCA4OSwgNjUsIDc1LCA3MiwgNzIsIDEyOCwgODksIDY1LCAKLSAgICA3NSwgNzIsIDEyOCwgODksIDY1LCA3NSwgNjUsIDgzLCA3MiwgMTI4LCA4OSwgNjUsIDc1LCAxMjgsIDg5LCA2NSwgNzQsIAotICAgIDg1LCA4MiwgODYsIDY5LCA2OCwgNzMsIDE5NSwgODksIDY1LCA3NCwgMTI4LCA4OSwgNjUsIDcyLCA3MiwgMTI4LCA4OSwgCi0gICAgNjUsIDcyLCAxMjgsIDg5LCA2NSwgNzEsIDc4LCAxMjgsIDg5LCA2NSwgNzEsIDcyLCA3MiwgMTI4LCA4OSwgNjUsIDcxLCAKLSAgICA3MiwgMTI4LCA4OSwgNjUsIDcxLCAxMjgsIDg5LCA2NSwgNzAsIDIxMywgODksIDY1LCA3MCwgMTI4LCA4OSwgNjUsIDY5LCAKLSAgICA3NywgNzcsIDY1LCA2OSwgMTI4LCA4OSwgNjUsIDY4LCA3MiwgMTI4LCA4OSwgNjUsIDY4LCA2OCwgNzIsIDEyOCwgODksIAotICAgIDY1LCA2OCwgNjgsIDEyOCwgODksIDY1LCA2OCwgMTI4LCA4OSwgNjUsIDY3LCA3MiwgMTI4LCA4OSwgNjUsIDY2LCA3MiwgCi0gICAgMTI4LCA4OSwgNjUsIDY2LCAxMjgsIDg5LCA2NSwgNjUsIDgyLCA4NSwgMTI4LCA4OSwgNjUsIDY1LCA3MywgMTI4LCA4OSwgCi0gICAgNjUsIDY1LCA2OCwgNzksIDEyOCwgODksIDY1LCA2NSwgMTI4LCA4OSwgNjUsIDQ1LCA4OSwgNzksIDEyOCwgODksIDY1LCAKLSAgICA0NSwgODUsIDEyOCwgODksIDY1LCA0NSwgNzksIDEyOCwgODksIDQ4LCA0OCwgNTYsIDEyOCwgODksIDQ4LCA0OCwgNTUsIAotICAgIDEyOCwgODksIDQ4LCA0OCwgNTQsIDEyOCwgODksIDQ4LCA0OCwgNTMsIDEyOCwgODksIDQ4LCA0OCwgNTIsIDEyOCwgODksIAotICAgIDQ4LCA0OCwgNTEsIDEyOCwgODksIDQ4LCA0OCwgNTAsIDEyOCwgODksIDQ4LCA0OCwgNDksIDY1LCAxMjgsIDg5LCA0OCwgCi0gICAgNDgsIDQ5LCAxMjgsIDg5LCA0NSwgNjcsIDgyLCA2OSwgMTk3LCA4OCwgODksIDg4LCAxMjgsIDg4LCA4OSwgODUsIDEyOCwgCi0gICAgODgsIDg5LCA4NCwgMTI4LCA4OCwgODksIDgyLCA4OCwgMTI4LCA4OCwgODksIDgyLCAxMjgsIDg4LCA4OSwgODAsIDEyOCwgCi0gICAgODgsIDg5LCA3OSwgMTI4LCA4OCwgODksIDczLCAxMjgsIDg4LCA4OSwgNjksIDY5LCAxMjgsIDg4LCA4OSwgNjksIDEyOCwgCi0gICAgODgsIDg5LCA2NSwgNjUsIDEyOCwgODgsIDg5LCA2NSwgMTI4LCA4OCwgODksIDEyOCwgODgsIDg3LCA3MywgMTI4LCA4OCwgCi0gICAgODcsIDY5LCA2OSwgMTI4LCA4OCwgODcsIDY5LCAxMjgsIDg4LCA4NywgNjUsIDY1LCAxMjgsIDg4LCA4NywgNjUsIDEyOCwgCi0gICAgODgsIDg2LCA2OSwgMTI4LCA4OCwgODYsIDY1LCAxMjgsIDg4LCA4NSwgNzksIDg4LCAxMjgsIDg4LCA4NSwgNzksIDEyOCwgCi0gICAgODgsIDg1LCAxMjgsIDg4LCA4MywgNzIsIDY1LCA2NSwgODksIDY1LCA4NCwgNzIsIDczLCA4OSwgNjUsIDEyOCwgODgsIDc5LCAKLSAgICA4OCwgMTI4LCA4OCwgNzksIDg0LCAxMjgsIDg4LCA3OSwgODIsIDEyOCwgODgsIDc5LCA4MCwgMTI4LCA4OCwgNzksIDY1LCAKLSAgICAxMjgsIDg4LCA3OSwgMTI4LCA4OCwgNzMsIDg4LCAxMjgsIDg4LCA3MywgODQsIDEyOCwgODgsIDczLCA4MiwgNzksIDIwNiwgCi0gICAgODgsIDczLCA4MCwgMTI4LCA4OCwgNzMsIDY5LCA4OCwgMTI4LCA4OCwgNzMsIDY5LCA4NCwgMTI4LCA4OCwgNzMsIDY5LCAKLSAgICA4MCwgMTI4LCA4OCwgNzMsIDY5LCAxMjgsIDg4LCA3MywgMTI4LCA4OCwgNzEsIDEyOCwgODgsIDY5LCA4MywgODQsIDY5LCAKLSAgICAyMTEsIDg4LCA2OSwgNzIsIDEyOCwgODgsIDY5LCA2OSwgMTI4LCA4OCwgNjksIDEyOCwgODgsIDY1LCA3OCwgMTI4LCA4OCwgCi0gICAgNjUsIDY1LCAxMjgsIDg4LCA2NSwgMTI4LCA4OCwgNDgsIDQ4LCA1NiwgNjUsIDEyOCwgODgsIDQ4LCA0OCwgNTYsIDEyOCwgCi0gICAgODgsIDQ4LCA0OCwgNTUsIDEyOCwgODgsIDQ4LCA0OCwgNTQsIDY1LCAxMjgsIDg4LCA0OCwgNDgsIDU0LCAxMjgsIDg4LCAKLSAgICA0OCwgNDgsIDUzLCAxMjgsIDg4LCA0OCwgNDgsIDUyLCA2NiwgMTI4LCA4OCwgNDgsIDQ4LCA1MiwgNjUsIDEyOCwgODgsIAotICAgIDQ4LCA0OCwgNTIsIDEyOCwgODgsIDQ4LCA0OCwgNTEsIDEyOCwgODgsIDQ4LCA0OCwgNTAsIDEyOCwgODgsIDQ4LCA0OCwgCi0gICAgNDksIDEyOCwgODcsIDkwLCAxMjgsIDg3LCA4OSwgNzgsIDc4LCAxMjgsIDg3LCA4OSwgNzgsIDIwNiwgODcsIDg2LCAxMjgsIAotICAgIDg3LCA4NSwgODAsIDEyOCwgODcsIDg1LCA3OSwgODgsIDEyOCwgODcsIDg1LCA3OSwgODAsIDEyOCwgODcsIDg1LCA3OSwgCi0gICAgMTI4LCA4NywgODUsIDc4LCA3NCwgMjA3LCA4NywgODUsIDc4LCAxMjgsIDg3LCA4NSwgNzYsIDg1LCAxMjgsIDg3LCA4NSwgCi0gICAgNzYsIDIxMywgODcsIDg1LCA2OSwgMTI4LCA4NywgODUsIDY1LCA2OSwgODQsIDEyOCwgODcsIDg1LCA2NSwgNjksIDc4LCAKLSAgICAxMjgsIDg3LCA4NSwgMTI4LCA4NywgODIsIDIxNywgODcsIDgyLCA3OSwgNzgsIDcxLCAxMjgsIDg3LCA4MiwgNzMsIDg0LCAKLSAgICA3MywgNzgsIDE5OSwgODcsIDgyLCA2OSwgNzgsIDY3LCA3MiwgMTI4LCA4NywgODIsIDY5LCA2NSwgODQsIDIwMCwgODcsIAotICAgIDgyLCA2NSwgODAsIDgwLCA2OSwgMTk2LCA4NywgODIsIDY1LCA4MCwgMTI4LCA4NywgNzksIDg4LCAxMjgsIDg3LCA3OSwgCi0gICAgODIsIDc1LCA2OSwgODIsIDEyOCwgODcsIDc5LCA4MiwgNzUsIDEyOCwgODcsIDc5LCA4MiwgMjAzLCA4NywgNzksIDgyLCAKLSAgICA2OCwgODMsIDgwLCA2NSwgNjcsIDY5LCAxMjgsIDg3LCA3OSwgODIsIDE5NiwgODcsIDc5LCA4MCwgMTI4LCA4NywgNzksIAotICAgIDc5LCA3OCwgMTI4LCA4NywgNzksIDc5LCA3NiwgMTI4LCA4NywgNzksIDc5LCA2OCwgODMsIDQ1LCA2NywgODIsIDY5LCAKLSAgICAxOTcsIDg3LCA3OSwgNzksIDY4LCAxMjgsIDg3LCA3OSwgNzgsIDEyOCwgODcsIDc5LCAyMDYsIDg3LCA3OSwgNzcsIDY5LCAKLSAgICA3OCwgMjExLCA4NywgNzksIDc3LCA2OSwgMjA2LCA4NywgNzksIDc3LCA2NSwgNzgsIDIxMSwgODcsIDc5LCA3NywgNjUsIAotICAgIDc4LCAxMjgsIDg3LCA3OSwgNzcsIDY1LCAyMDYsIDg3LCA3OSwgNzYsIDc5LCA4MywgNzksIDEyOCwgODcsIDc5LCA3NiwgCi0gICAgMTk4LCA4NywgNzksIDY5LCAxMjgsIDg3LCA3OSwgNjUsIDEyOCwgODcsIDczLCA4NCwgNzIsIDc5LCA4NSwgMjEyLCA4NywgCi0gICAgNzMsIDc4LCA4NCwgNjksIDgyLCAxMjgsIDg3LCA3MywgNzgsIDc1LCA3MywgNzgsIDE5OSwgODcsIDczLCA3OCwgNzQsIDY1LCAKLSAgICAxMjgsIDg3LCA3MywgNzgsIDcxLCA4MywgMTI4LCA4NywgNzMsIDc4LCA2OSwgMTI4LCA4NywgNzMsIDc4LCAxOTcsIDg3LCAKLSAgICA3MywgNzgsIDY4LCA4NSwgMTI4LCA4NywgNzMsIDc4LCA2OCwgMTI4LCA4NywgNzMsIDc4LCAxOTYsIDg3LCA3MywgNzgsIAotICAgIDEyOCwgODcsIDczLCA3MSwgNzgsIDg5LCA2NSwgNzgsIDEyOCwgODcsIDczLCA3MSwgNzEsIDc2LCAyMTcsIDg3LCA3MywgCi0gICAgNjgsIDY5LCA0NSwgNzIsIDY5LCA2NSwgNjgsIDY5LCAxOTYsIDg3LCA3MywgNjgsIDE5NywgODcsIDczLCA2NSwgNzgsIDcxLCAKLSAgICA4NywgNjUsIDY1LCA3NSwgMTI4LCA4NywgNzMsIDY1LCA3OCwgNzEsIDEyOCwgODcsIDcyLCA3OSwgNzYsIDE5NywgODcsIAotICAgIDcyLCA3MywgODQsIDY5LCA0NSwgNzAsIDY5LCA2NSwgODQsIDcyLCA2OSwgODIsIDY5LCAxOTYsIDg3LCA3MiwgNzMsIDg0LCAKLSAgICA2OSwgMTI4LCA4NywgNzIsIDY5LCA2OSwgNzYsIDY5LCAxOTYsIDg3LCA3MiwgNjksIDY5LCA3NiwgNjcsIDcyLCA2NSwgNzMsIAotICAgIDIxMCwgODcsIDcyLCA2OSwgNjksIDc2LCAxMjgsIDg3LCA3MiwgNjksIDY5LCAyMDQsIDg3LCA3MiwgNjksIDY1LCA4NCwgCi0gICAgMTI4LCA4NywgNzIsIDY1LCA3NiwgNjksIDEyOCwgODcsIDcxLCAxMjgsIDg3LCA2OSwgODgsIDEyOCwgODcsIDY5LCA4NSwgCi0gICAgODgsIDEyOCwgODcsIDY5LCA4MywgODQsIDY5LCA4MiwgMjA2LCA4NywgNjksIDgzLCA4NCwgMTI4LCA4NywgNjksIDgzLCAKLSAgICAyMTIsIDg3LCA2OSwgODAsIDEyOCwgODcsIDY5LCA3OSwgMTI4LCA4NywgNjksIDc4LCAxMjgsIDg3LCA2OSwgNzYsIDc2LCAKLSAgICAxMjgsIDg3LCA2OSwgNzMsIDcxLCA3MiwgMjEyLCA4NywgNjksIDY5LCA3OCwgMTI4LCA4NywgNjksIDY4LCA3MSwgNjksIAotICAgIDQ1LCA4NCwgNjUsIDczLCA3NiwgNjksIDE5NiwgODcsIDY5LCA2OCwgNjgsIDczLCA3OCwgNzEsIDEyOCwgODcsIDY5LCA2NSwgCi0gICAgODIsIDIxNywgODcsIDY5LCA2NSwgODAsIDc5LCA3OCwgMTI4LCA4NywgNjcsIDEyOCwgODcsIDY2LCAxMjgsIDg3LCA2NSwgCi0gICAgODksIDEyOCwgODcsIDY1LCAyMTcsIDg3LCA2NSwgODgsIDczLCA3OCwgMTk5LCA4NywgNjUsIDg4LCAxMjgsIDg3LCA2NSwgCi0gICAgODcsIDQ1LCA2NSwgODksIDczLCA3OCwgNDUsIDgyLCA2OSwgODMsIDcyLCAxMjgsIDg3LCA2NSwgODcsIDEyOCwgODcsIDY1LCAKLSAgICAyMTUsIDg3LCA2NSwgODYsIDIxNywgODcsIDY1LCA4NiwgNzMsIDc4LCAxOTksIDg3LCA2NSwgODYsIDY5LCA4MywgMTI4LCAKLSAgICA4NywgNjUsIDg2LCA2OSwgMTI4LCA4NywgNjUsIDg2LCAxOTcsIDg3LCA2NSwgODUsIDEyOCwgODcsIDY1LCA4NCwgODQsIAotICAgIDc5LCAxMjgsIDg3LCA2NSwgODQsIDY5LCA4MiwgNzcsIDY5LCA3NiwgNzksIDc4LCAxMjgsIDg3LCA2NSwgODQsIDY5LCA4MiwgCi0gICAgMTI4LCA4NywgNjUsIDg0LCA2OSwgMjEwLCA4NywgNjUsIDg0LCA2NywgNzIsIDEyOCwgODcsIDY1LCA4NCwgMTI4LCA4NywgCi0gICAgNjUsIDgzLCA4NCwgNzMsIDc4LCA3MSwgMTI4LCA4NywgNjUsIDgzLCA4MywgNjUsIDc2LCA3NiwgNjUsIDc3LCAxMjgsIDg3LCAKLSAgICA2NSwgODMsIDc2LCA2NSwgMTI4LCA4NywgNjUsIDgzLCA3NiwgMTkzLCA4NywgNjUsIDgzLCA2NSwgNzYsIDc2LCA2NSwgNzcsIAotICAgIDEyOCwgODcsIDY1LCA4MywgNjUsIDc2LCA3NiwgNjUsIDIwNSwgODcsIDY1LCA4MiwgNzgsIDczLCA3OCwgMTk5LCA4NywgCi0gICAgNjUsIDgwLCAxMjgsIDg3LCA2NSwgNzgsIDczLCA3OCwgMTk5LCA4NywgNjUsIDc4LCA3MSwgNzUsIDg1LCA3OSwgODEsIAotICAgIDEyOCwgODcsIDY1LCA3OCwgNjgsIDY5LCA4MiwgNjksIDgyLCAxMjgsIDg3LCA2NSwgNzgsIDEyOCwgODcsIDY1LCA3NiwgCi0gICAgNzYsIDEyOCwgODcsIDY1LCA3NiwgNzUsIDEyOCwgODcsIDY1LCA3NiwgMjAzLCA4NywgNjUsIDczLCA4NCwgNzMsIDc4LCAKLSAgICA3MSwgMTI4LCA4NywgNjUsIDczLCAxMjgsIDg3LCA2NSwgNjksIDc4LCAxMjgsIDg3LCA2NSwgNjksIDEyOCwgODcsIDY1LCAKLSAgICA2NSwgODYsIDg1LCAxMjgsIDg3LCA0OCwgNTAsIDUzLCAxMjgsIDg3LCA0OCwgNTAsIDUyLCA2NSwgMTI4LCA4NywgNDgsIAotICAgIDUwLCA1MiwgMTI4LCA4NywgNDgsIDUwLCA1MSwgMTI4LCA4NywgNDgsIDUwLCA1MCwgMTI4LCA4NywgNDgsIDUwLCA0OSwgCi0gICAgMTI4LCA4NywgNDgsIDUwLCA0OCwgMTI4LCA4NywgNDgsIDQ5LCA1NywgMTI4LCA4NywgNDgsIDQ5LCA1NiwgNjUsIDEyOCwgCi0gICAgODcsIDQ4LCA0OSwgNTYsIDEyOCwgODcsIDQ4LCA0OSwgNTUsIDY1LCAxMjgsIDg3LCA0OCwgNDksIDU1LCAxMjgsIDg3LCAKLSAgICA0OCwgNDksIDU0LCAxMjgsIDg3LCA0OCwgNDksIDUzLCAxMjgsIDg3LCA0OCwgNDksIDUyLCA2NSwgMTI4LCA4NywgNDgsIAotICAgIDQ5LCA1MiwgMTI4LCA4NywgNDgsIDQ5LCA1MSwgMTI4LCA4NywgNDgsIDQ5LCA1MCwgMTI4LCA4NywgNDgsIDQ5LCA0OSwgCi0gICAgMTI4LCA4NywgNDgsIDQ5LCA0OCwgNjUsIDEyOCwgODcsIDQ4LCA0OSwgNDgsIDEyOCwgODcsIDQ4LCA0OCwgNTcsIDY1LCAKLSAgICAxMjgsIDg3LCA0OCwgNDgsIDU3LCAxMjgsIDg3LCA0OCwgNDgsIDU2LCAxMjgsIDg3LCA0OCwgNDgsIDU1LCAxMjgsIDg3LCAKLSAgICA0OCwgNDgsIDU0LCAxMjgsIDg3LCA0OCwgNDgsIDUzLCAxMjgsIDg3LCA0OCwgNDgsIDUyLCAxMjgsIDg3LCA0OCwgNDgsIAotICAgIDUxLCA2NSwgMTI4LCA4NywgNDgsIDQ4LCA1MSwgMTI4LCA4NywgNDgsIDQ4LCA1MCwgMTI4LCA4NywgNDgsIDQ4LCA0OSwgCi0gICAgMTI4LCA4NiwgOTAsIDc3LCA2OSwgODQsIDEyOCwgODYsIDg5LCA4OCwgMTI4LCA4NiwgODksIDg0LCAxMjgsIDg2LCA4OSwgCi0gICAgODIsIDg4LCAxMjgsIDg2LCA4OSwgODIsIDEyOCwgODYsIDg5LCA4MCwgMTI4LCA4NiwgODksIDEyOCwgODYsIDg3LCA2NSwgCi0gICAgMTI4LCA4NiwgODUsIDg4LCAxMjgsIDg2LCA4NSwgODQsIDEyOCwgODYsIDg1LCA4MiwgODgsIDEyOCwgODYsIDg1LCA4MiwgCi0gICAgMTI4LCA4NiwgODUsIDgwLCAxMjgsIDg2LCA4NSwgNzYsIDcxLCA2NSwgMjEwLCA4NiwgODUsIDY5LCA4MSwgMTI4LCA4NiwgCi0gICAgODMsIDEyOCwgODYsIDgyLCA2NSwgNjcsIDcyLCA4OSwgMTI4LCA4NiwgNzksIDg4LCAxMjgsIDg2LCA3OSwgODcsIDY5LCAKLSAgICA3NiwgNDUsIDY3LCA2NSwgODIsIDgyLCA3MywgNjksIDIxMCwgODYsIDc5LCA4NywgMTI4LCA4NiwgNzksIDg1LCAxMjgsIAotICAgIDg2LCA3OSwgODQsIDEyOCwgODYsIDc5LCA4MCwgMTI4LCA4NiwgNzksIDc5LCAxMjgsIDg2LCA3OSwgNzcsIDEyOCwgODYsIAotICAgIDc5LCA3NiwgODUsIDc3LCAxOTcsIDg2LCA3OSwgNzYsIDg0LCA2NSwgNzEsIDE5NywgODYsIDc5LCA3NiwgNjcsIDY1LCA3OCwgCi0gICAgNzksIDEyOCwgODYsIDc5LCA3MywgMTk2LCA4NiwgNzksIDczLCA2NywgNzMsIDc4LCA3MSwgMTI4LCA4NiwgNzksIDczLCAKLSAgICA2NywgNjksIDc2LCA2OSwgODMsIDIxMSwgODYsIDc5LCA3MywgNjcsIDY5LCAxOTYsIDg2LCA3OSwgNjcsIDY1LCA3NiwgNzMsIAotICAgIDkwLCA2NSwgODQsIDczLCA3OSwgMjA2LCA4NiwgNzksIDY3LCA2NSwgMjA0LCA4NiwgNzksIDEyOCwgODYsIDczLCA4OCwgCi0gICAgMTI4LCA4NiwgNzMsIDg0LCA4MiwgNzMsIDc5LCA3NiwgNDUsIDUwLCAxMjgsIDg2LCA3MywgODQsIDgyLCA3MywgNzksIDc2LCAKLSAgICAxMjgsIDg2LCA3MywgODQsIDY1LCA2OSwgNDUsIDUwLCAxMjgsIDg2LCA3MywgODQsIDY1LCA2OSwgMTI4LCA4NiwgNzMsIAotICAgIDg0LCAxMjgsIDg2LCA3MywgODMsIDczLCA3MSwgNzksIDg0LCA3MiwgNzMsIDE5NSwgODYsIDczLCA4MywgNjUsIDgyLCA3MSwgCi0gICAgNjUsIDg5LCA2NSwgMTI4LCA4NiwgNzMsIDgzLCA2NSwgODIsIDcxLCA2NSwgMTI4LCA4NiwgNzMsIDgzLCA2NSwgODIsIDcxLCAKLSAgICAxOTMsIDg2LCA3MywgODIsIDczLCA2NSwgNzcsIDEyOCwgODYsIDczLCA4MiwgNzEsIDc5LCAxMjgsIDg2LCA3MywgODIsIAotICAgIDcxLCA2NSwgMTI4LCA4NiwgNzMsIDgyLCA2NSwgNzcsIDY1LCAxMjgsIDg2LCA3MywgODAsIDEyOCwgODYsIDczLCA3OSwgCi0gICAgNzYsIDczLCA3OCwgMTI4LCA4NiwgNzMsIDc4LCA2OSwgNzEsIDY1LCA4MiwgNDUsIDUxLCAxMjgsIDg2LCA3MywgNzgsIDY5LCAKLSAgICA3MSwgNjUsIDgyLCA0NSwgNTAsIDEyOCwgODYsIDczLCA3OCwgNjksIDcxLCA2NSwgODIsIDEyOCwgODYsIDczLCA3OCwgNjksIAotICAgIDcxLCA2NSwgMjEwLCA4NiwgNzMsIDc4LCA2OSwgMTI4LCA4NiwgNzMsIDc4LCAxMjgsIDg2LCA3MywgNzYsIDc2LCA2NSwgCi0gICAgNzEsIDY5LCAxMjgsIDg2LCA3MywgNjksIDg4LCAxMjgsIDg2LCA3MywgNjksIDg3LCA3MywgNzgsIDE5OSwgODYsIDczLCAKLSAgICA2OSwgODcsIDY4LCA2NSwgODQsIDE5MywgODYsIDczLCA2OSwgODQsIDEyOCwgODYsIDczLCA2OSwgODAsIDEyOCwgODYsIAotICAgIDczLCA2OSwgMTI4LCA4NiwgNzMsIDY4LCA2OSwgNzksIDY3LCA2NSwgODMsIDgzLCA2OSwgODQsIDg0LCA2OSwgMTI4LCA4NiwgCisgICAgMjAwLCA2NiwgNjUsIDc2LCA3MywgNzgsIDY5LCA4MywgMTk3LCA3MiwgNzksIDc5LCA3NSwgMTI4LCAyMTMsIDg0LCA4NywgCisgICAgNzksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDIwNSwgODAsIDcyLCA2NSwgODMsIDY5LCA0NSwgMTk2LCAKKyAgICA2NSwgNzYsIDY3LCA3MiwgNjksIDc3LCA3MywgNjcsIDY1LCAyMDQsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDczLCAxOTUsIDc5LCA3OCwgNjksIDEyOCwgODQsIDc5LCAxMjgsIDY1LCA3NiwgNjksIDE5OCwgODQsIDg3LCAyMDcsIAorICAgIDcyLCA2OSwgNjUsIDg2LCAyMTcsIDY3LCA3OSwgNzgsIDgzLCA3OSwgNzgsIDY1LCA3OCwgMjEyLCA3OSwgODYsIDY5LCAKKyAgICAyMTAsIDY2LCA4MiwgNjUsIDcyLCA3NywgMjAxLCA4MywgNjcsIDgyLCA3MywgODAsIDIxMiwgODUsIDIwOCwgNzYsIDc5LCAKKyAgICAyMTUsIDcyLCA2NSwgMjAwLCA3OSwgNzgsIDE5NywgNjgsIDc5LCA4NywgMjA2LCA3MiwgNzMsIDcxLCAyMDAsIDcwLCA4NSwgCisgICAgNzYsIDc2LCA4NywgNzMsIDY4LCA4NCwgMjAwLCA2NiwgODIsIDY1LCA2NywgNzUsIDY5LCA4NCwgMTI4LCA2OSwgODEsIDg1LCAKKyAgICA2NSwgMjA0LCA4NCwgNjUsIDE5OSwgNjYsIDY1LCA4MiwgMTI4LCA2OCwgNzksIDc3LCA3MywgNzgsIDIwNywgNzgsIDg1LCAKKyAgICA3NywgNjksIDgyLCA3MywgMTk1LCA3MCwgODIsIDY1LCA3NSwgODQsIDg1LCAyMTAsIDg0LCA3MiwgODIsIDY5LCAxOTcsIAorICAgIDY3LCA3MiwgNjUsIDgyLCA2NSwgNjcsIDg0LCA2OSwgMjEwLCA3NywgNjUsIDc2LCA2NSwgODksIDY1LCA3NiwgNjUsIDIwNSwgCisgICAgODAsIDcyLCA2NSwgODMsIDY5LCA0NSwgMTk1LCA4NCwgNzksIDc4LCAxOTcsIDY4LCA3OSwgODUsIDY2LCA3NiwgNjksIDQ1LCAKKyAgICA4MywgODQsIDgyLCA4NSwgNjcsIDIwMywgNzYsIDY5LCA3MCwgODQsIDg3LCA2NSwgODIsIDY4LCAyMTEsIDcyLCA3MywgODIsIAorICAgIDY1LCA3MSwgNjUsIDc4LCAxOTMsIDY1LCA2NywgODUsIDg0LCA2OSwgMTI4LCA3NCwgODUsIDc4LCA3MSwgODMsIDY5LCA3OSwgCisgICAgNzgsIDE5OSwgNzEsIDc2LCA2NSwgNzEsIDc5LCA3NiwgNzMsIDg0LCA3MywgMTk1LCA2NiwgNjksIDc4LCA3MSwgNjUsIDc2LCAKKyAgICAyMDEsIDc3LCA2OSwgNjgsIDczLCA2NSwgMjA0LCA4NCwgNjksIDc2LCA4NSwgNzEsIDIxMywgODYsIDc5LCA2NywgNjUsIAorICAgIDc2LCA3MywgMTk1LCA2NSwgODIsIDc3LCA2OSwgNzgsIDczLCA2NSwgMjA2LCA3NCwgNjksIDY5LCAyMDUsIDc4LCA2OSwgCisgICAgNzEsIDY1LCA4NCwgNzMsIDg2LCAxOTcsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgMjAwLCA3NCwgNjUsIDg2LCAKKyAgICA2NSwgNzgsIDY5LCA4MywgMTk3LCA3OSwgODIsIDczLCA4OSwgMTkzLCA4NCwgNzIsIDgyLCA2OSwgNjksIDEyOCwgODcsIAorICAgIDY5LCA4MywgODQsIDQ1LCA2NywgODIsIDY5LCAxOTcsIDcwLCA3OSwgODUsIDgyLCAxMjgsIDcyLCA2NSwgMTI4LCA3MiwgCisgICAgNjUsIDc2LCAxOTgsIDc3LCA2NSwgODIsIDIwMywgNzUsIDY1LCA3OCwgNzgsIDY1LCA2OCwgMTkzLCA3OCwgNjksIDIxNSwgCisgICAgODAsIDcyLCA2NSwgODMsIDY5LCA0NSwgMTkzLCA4NCwgNzIsIDY1LCAyMDEsIDY3LCA3MiwgNjksIDgyLCA3OSwgNzUsIDY5LCAKKyAgICAxOTcsIDY4LCA3OSwgODQsIDIxMSwgNzEsIDg1LCA3NCwgNjUsIDgyLCA2NSwgODQsIDIwMSwgNjcsIDcyLCA2NSwgMjA1LCAKKyAgICA3NiwgODUsIDE5NywgODMsIDcyLCA2NSwgODIsIDY1LCA2OCwgMTkzLCA4MywgNzMsIDc4LCA3MiwgNjUsIDc2LCAxOTMsIAorICAgIDc1LCA2NSwgMTI4LCA4MiwgODUsIDc4LCA3MywgMTk1LCA4MywgNjUsIDg1LCA4MiwgNjUsIDgzLCA3MiwgODQsIDgyLCAKKyAgICAxOTMsIDg0LCA2OSwgODQsIDgyLCA2NSwgNzEsIDgyLCA2NSwgMjA1LCA2OCwgNjksIDgzLCA2OSwgODIsIDY5LCAyMTIsIAorICAgIDg0LCA3MywgNzYsIDY4LCA2OSwgMTI4LCA3MSwgODUsIDgyLCA3NywgODUsIDc1LCA3MiwgMjAxLCA3NywgNjUsIDEyOCwgCisgICAgNzcsIDY1LCA4OSwgNjksIDIwMywgNzcsIDY5LCA2OSwgODQsIDY5LCAyMDEsIDc4LCA3OSwgODQsIDY1LCA4NCwgNzMsIDc5LCAKKyAgICAyMDYsIDgzLCA4OSwgODIsIDczLCA2NSwgMTk1LCA3MCwgNzMsIDg2LCA2OSwgMTI4LCA4MCwgNjUsIDEyOCwgODksIDY1LCAKKyAgICAxMjgsIDc2LCA3MywgNzEsIDcyLCAyMTIsIDgzLCA3MywgODgsIDEyOCwgNjksIDczLCA3MSwgNzIsIDg0LCAxMjgsIDc2LCAKKyAgICA2OSwgODAsIDY3LCA3MiwgMTkzLCA3OCwgNjUsIDEyOCwgODMsIDY5LCA4NiwgNjksIDc4LCAxMjgsIDc2LCA3OSwgNzgsIAorICAgIDE5OSwgNzgsIDczLCA3OCwgNjksIDEyOCwgODQsIDg1LCA4MiwgNzUsIDczLCAxOTUsIDcyLCA2NSwgNzcsIDkwLCAxOTMsIAorICAgIDcyLCA3OSwgODIsIDczLCA5MCwgNzksIDc4LCA4NCwgNjUsIDIwNCwgNzksIDgwLCA2OSwgMjA2LCA4MiwgNjUsIDEyOCwgCisgICAgODMsIDY1LCAxMjgsIDgzLCA4NSwgNzgsIDY4LCA2NSwgNzgsIDY5LCA4MywgMTk3LCA4NiwgNzMsIDY5LCAyMTIsIDc2LCAKKyAgICA2NSwgMjA3LCA5MCwgOTAsIDg5LCA4OCwgMTI4LCA5MCwgOTAsIDg5LCA4NCwgMTI4LCA5MCwgOTAsIDg5LCA4MiwgODgsIAorICAgIDEyOCwgOTAsIDkwLCA4OSwgODIsIDEyOCwgOTAsIDkwLCA4OSwgODAsIDEyOCwgOTAsIDkwLCA4OSwgNjUsIDEyOCwgOTAsIAorICAgIDkwLCA4OSwgMTI4LCA5MCwgOTAsIDg1LCA4OCwgMTI4LCA5MCwgOTAsIDg1LCA4MiwgODgsIDEyOCwgOTAsIDkwLCA4NSwgCisgICAgODIsIDEyOCwgOTAsIDkwLCA4NSwgODAsIDEyOCwgOTAsIDkwLCA4NSwgMTI4LCA5MCwgOTAsIDgzLCA4OSwgNjUsIDEyOCwgCisgICAgOTAsIDkwLCA4MywgNjUsIDEyOCwgOTAsIDkwLCA3OSwgODgsIDEyOCwgOTAsIDkwLCA3OSwgODAsIDEyOCwgOTAsIDkwLCAKKyAgICA3OSwgMTI4LCA5MCwgOTAsIDczLCA4OCwgMTI4LCA5MCwgOTAsIDczLCA4NCwgMTI4LCA5MCwgOTAsIDczLCA4MCwgMTI4LCAKKyAgICA5MCwgOTAsIDczLCA2OSwgODgsIDEyOCwgOTAsIDkwLCA3MywgNjksIDg0LCAxMjgsIDkwLCA5MCwgNzMsIDY5LCA4MCwgCisgICAgMTI4LCA5MCwgOTAsIDczLCA2OSwgMTI4LCA5MCwgOTAsIDczLCAxMjgsIDkwLCA5MCwgNjksIDg4LCAxMjgsIDkwLCA5MCwgCisgICAgNjksIDgwLCAxMjgsIDkwLCA5MCwgNjksIDY5LCAxMjgsIDkwLCA5MCwgNjksIDEyOCwgOTAsIDkwLCA2NSwgODgsIDEyOCwgCisgICAgOTAsIDkwLCA2NSwgODQsIDEyOCwgOTAsIDkwLCA2NSwgODAsIDEyOCwgOTAsIDkwLCA2NSwgNjUsIDEyOCwgOTAsIDkwLCAKKyAgICA2NSwgMTI4LCA5MCwgODksIDcxLCA3OSwgODMsIDEyOCwgOTAsIDg3LCA4MywgODAsIDEyOCwgOTAsIDg3LCA3OCwgNzQsIAorICAgIDEyOCwgOTAsIDg3LCA3OCwgNjYsIDgzLCA4MCwgMTI4LCA5MCwgODcsIDc0LCAxMjgsIDkwLCA4NywgNjUsIDgyLCA2NSwgCisgICAgNzUsIDY1LCA4OSwgMTI4LCA5MCwgODcsIDY1LCAxMjgsIDkwLCA4NSwgODQsIDEyOCwgOTAsIDg1LCA3OSwgODgsIDEyOCwgCisgICAgOTAsIDg1LCA3OSwgODAsIDEyOCwgOTAsIDg1LCA3OSwgMTI4LCA5MCwgODUsIDc3LCAxMjgsIDkwLCA4NSwgNjYsIDg1LCAKKyAgICA4MiwgMTI4LCA5MCwgODUsIDUzLCAxMjgsIDkwLCA4NSwgMTgxLCA5MCwgODMsIDcyLCA2NSwgMTI4LCA5MCwgODIsIDY1LCAKKyAgICAxMjgsIDkwLCA4MSwgNjUsIDgwLCA3MiwgMTkzLCA5MCwgNzksIDg0LCAxMjgsIDkwLCA3OSwgNzksIDEyOCwgOTAsIDc5LCAKKyAgICA2NSwgMTI4LCA5MCwgNzYsIDY1LCA3NywgMTkzLCA5MCwgNzYsIDY1LCAxMjgsIDkwLCA3NiwgMTkzLCA5MCwgNzQsIDY5LCAKKyAgICAxMjgsIDkwLCA3MywgOTAsIDUwLCAxMjgsIDkwLCA3MywgODEsIDY1LCA2NSwgMTI4LCA5MCwgNzMsIDc4LCA3OSwgODIsIAorICAgIDEyOCwgOTAsIDczLCA3NiwgNjgsIDY5LCAxMjgsIDkwLCA3MywgNzEsIDkwLCA2NSwgMTk5LCA5MCwgNzMsIDcxLCAxMjgsIAorICAgIDkwLCA3MywgNjgsIDE5MywgOTAsIDczLCA2NiwgMTI4LCA5MCwgNzMsIDE5NCwgOTAsIDczLCA1MSwgMTI4LCA5MCwgMjAxLCAKKyAgICA5MCwgNzIsIDg5LCA4OCwgMTI4LCA5MCwgNzIsIDg5LCA4NCwgMTI4LCA5MCwgNzIsIDg5LCA4MiwgODgsIDEyOCwgOTAsIAorICAgIDcyLCA4OSwgODIsIDEyOCwgOTAsIDcyLCA4OSwgODAsIDEyOCwgOTAsIDcyLCA4OSwgMTI4LCA5MCwgNzIsIDg3LCA2OSwgCisgICAgMTI4LCA5MCwgNzIsIDg3LCA2NSwgMTI4LCA5MCwgNzIsIDg1LCA4OCwgMTI4LCA5MCwgNzIsIDg1LCA4NCwgMTI4LCA5MCwgCisgICAgNzIsIDg1LCA4MiwgODgsIDEyOCwgOTAsIDcyLCA4NSwgODIsIDEyOCwgOTAsIDcyLCA4NSwgODAsIDEyOCwgOTAsIDcyLCAKKyAgICA4NSwgNzksIDg4LCAxMjgsIDkwLCA3MiwgODUsIDc5LCA4MCwgMTI4LCA5MCwgNzIsIDg1LCA3OSwgMTI4LCA5MCwgNzIsIAorICAgIDg1LCAxMjgsIDkwLCA3MiwgNzksIDg4LCAxMjgsIDkwLCA3MiwgNzksIDg0LCAxMjgsIDkwLCA3MiwgNzksIDgwLCAxMjgsIAorICAgIDkwLCA3MiwgNzksIDc5LCAxMjgsIDkwLCA3MiwgNzksIDEyOCwgOTAsIDcyLCA3MywgODYsIDY5LCA4NCwgNjksIDEyOCwgCisgICAgOTAsIDcyLCA3MywgMTI4LCA5MCwgNzIsIDY5LCA4OCwgMTI4LCA5MCwgNzIsIDY5LCA4NCwgMTI4LCA5MCwgNzIsIDY5LCAKKyAgICA4MCwgMTI4LCA5MCwgNzIsIDY5LCA2OSwgMTI4LCA5MCwgNzIsIDY5LCAxMjgsIDkwLCA3MiwgMTk3LCA5MCwgNzIsIDY1LCAKKyAgICA4OCwgMTI4LCA5MCwgNzIsIDY1LCA4NCwgMTI4LCA5MCwgNzIsIDY1LCA4MiwgMTI4LCA5MCwgNzIsIDY1LCA4MCwgMTI4LCAKKyAgICA5MCwgNzIsIDY1LCA3MywgNzgsIDEyOCwgOTAsIDcyLCA2NSwgNjUsIDEyOCwgOTAsIDcyLCA2NSwgMTI4LCA5MCwgNzIsIAorICAgIDEyOCwgOTAsIDY5LCA4NCwgNjUsIDEyOCwgOTAsIDY5LCA4MiwgNzksIDEyOCwgOTAsIDY5LCA4MiwgMjA3LCA5MCwgNjksIAorICAgIDc4LCAxMjgsIDkwLCA2OSwgNzcsIDc2LCA4OSwgNjUsIDEyOCwgOTAsIDY5LCA3NywgNzYsIDc0LCA2NSwgMTI4LCA5MCwgCisgICAgNjksIDUwLCAxMjgsIDkwLCAxOTcsIDkwLCA2NSwgODksIDc4LCAxMjgsIDkwLCA2NSwgODksIDczLCA3OCwgMTI4LCA5MCwgCisgICAgNjUsIDg5LCA3MywgMjA2LCA5MCwgNjUsIDg2LCA3MywgODksIDY1LCA3OCwgNzMsIDEyOCwgOTAsIDY1LCA4NCwgNjUsIAorICAgIDEyOCwgOTAsIDY1LCA4MiwgODEsIDY1LCAxMjgsIDkwLCA2NSwgODEsIDY5LCAxOTgsIDkwLCA2NSwgNzcsIDg4LCAxMjgsIAorICAgIDkwLCA2NSwgMjA0LCA5MCwgNjUsIDczLCA3OCwgMTI4LCA5MCwgNjUsIDczLCAyMDYsIDkwLCA2NSwgNzMsIDEyOCwgOTAsIAorICAgIDY1LCA3MiwgMTI4LCA5MCwgNjUsIDIwMCwgOTAsIDY1LCA3MSwgMTI4LCA5MCwgNjUsIDY5LCA3MCwgMTI4LCA5MCwgNDgsIAorICAgIDQ5LCA1NCwgNzIsIDEyOCwgOTAsIDQ4LCA0OSwgNTQsIDcxLCAxMjgsIDkwLCA0OCwgNDksIDU0LCA3MCwgMTI4LCA5MCwgCisgICAgNDgsIDQ5LCA1NCwgNjksIDEyOCwgOTAsIDQ4LCA0OSwgNTQsIDY4LCAxMjgsIDkwLCA0OCwgNDksIDU0LCA2NywgMTI4LCAKKyAgICA5MCwgNDgsIDQ5LCA1NCwgNjYsIDEyOCwgOTAsIDQ4LCA0OSwgNTQsIDY1LCAxMjgsIDkwLCA0OCwgNDksIDU0LCAxMjgsIAorICAgIDkwLCA0OCwgNDksIDUzLCA3MywgMTI4LCA5MCwgNDgsIDQ5LCA1MywgNzIsIDEyOCwgOTAsIDQ4LCA0OSwgNTMsIDcxLCAKKyAgICAxMjgsIDkwLCA0OCwgNDksIDUzLCA3MCwgMTI4LCA5MCwgNDgsIDQ5LCA1MywgNjksIDEyOCwgOTAsIDQ4LCA0OSwgNTMsIAorICAgIDY4LCAxMjgsIDkwLCA0OCwgNDksIDUzLCA2NywgMTI4LCA5MCwgNDgsIDQ5LCA1MywgNjYsIDEyOCwgOTAsIDQ4LCA0OSwgCisgICAgNTMsIDY1LCAxMjgsIDkwLCA0OCwgNDksIDUzLCAxMjgsIDkwLCA0OCwgNDksIDUyLCAxMjgsIDkwLCA0OCwgNDksIDUxLCAKKyAgICAxMjgsIDkwLCA0OCwgNDksIDUwLCAxMjgsIDkwLCA0OCwgNDksIDQ5LCAxMjgsIDkwLCA0OCwgNDksIDQ4LCAxMjgsIDkwLCAKKyAgICA0OCwgNDgsIDU3LCAxMjgsIDkwLCA0OCwgNDgsIDU2LCAxMjgsIDkwLCA0OCwgNDgsIDU1LCAxMjgsIDkwLCA0OCwgNDgsIAorICAgIDU0LCAxMjgsIDkwLCA0OCwgNDgsIDUzLCA2NSwgMTI4LCA5MCwgNDgsIDQ4LCA1MywgMTI4LCA5MCwgNDgsIDQ4LCA1MiwgCisgICAgNjUsIDEyOCwgOTAsIDQ4LCA0OCwgNTIsIDEyOCwgOTAsIDQ4LCA0OCwgNTEsIDY2LCAxMjgsIDkwLCA0OCwgNDgsIDUxLCAKKyAgICA2NSwgMTI4LCA5MCwgNDgsIDQ4LCA1MSwgMTI4LCA5MCwgNDgsIDQ4LCA1MCwgNjgsIDEyOCwgOTAsIDQ4LCA0OCwgNTAsIAorICAgIDY3LCAxMjgsIDkwLCA0OCwgNDgsIDUwLCA2NiwgMTI4LCA5MCwgNDgsIDQ4LCA1MCwgNjUsIDEyOCwgOTAsIDQ4LCA0OCwgCisgICAgNTAsIDEyOCwgOTAsIDQ4LCA0OCwgNDksIDEyOCwgOTAsIDEyOCwgMjE4LCA4OSwgODksIDg4LCAxMjgsIDg5LCA4OSwgODQsIAorICAgIDEyOCwgODksIDg5LCA4MiwgODgsIDEyOCwgODksIDg5LCA4MiwgMTI4LCA4OSwgODksIDgwLCAxMjgsIDg5LCA4OSwgNjksIAorICAgIDEyOCwgODksIDg5LCA2NSwgNjUsIDEyOCwgODksIDg5LCA2NSwgMTI4LCA4OSwgODksIDEyOCwgODksIDg3LCA3OSwgNzksIAorICAgIDEyOCwgODksIDg3LCA3OSwgMTI4LCA4OSwgODcsIDczLCA3MywgMTI4LCA4OSwgODcsIDczLCAxMjgsIDg5LCA4NywgNjksIAorICAgIDEyOCwgODksIDg3LCA2NSwgNjUsIDEyOCwgODksIDg3LCA2NSwgMTI4LCA4OSwgODYsIDEyOCwgODksIDg1LCA4OCwgMTI4LCAKKyAgICA4OSwgODUsIDg3LCA3OSwgODEsIDEyOCwgODksIDg1LCA4NSwgNzUsIDY1LCA3NiwgNjksIDY1LCA4MCwgNzMsIDc4LCA4NCwgCisgICAgODUsIDEyOCwgODksIDg1LCA4NSwgMTI4LCA4OSwgODUsIDg0LCAxMjgsIDg5LCA4NSwgODMsIDEyOCwgODksIDg1LCAyMTEsIAorICAgIDg5LCA4NSwgODIsIDg4LCAxMjgsIDg5LCA4NSwgODIsIDEyOCwgODksIDg1LCA4MSwgMTI4LCA4OSwgODUsIDIwOSwgODksIAorICAgIDg1LCA4MCwgMTI4LCA4OSwgODUsIDc5LCA4OCwgMTI4LCA4OSwgODUsIDc5LCA4NCwgMTI4LCA4OSwgODUsIDc5LCA4MCwgCisgICAgMTI4LCA4OSwgODUsIDc5LCA3NywgMTI4LCA4OSwgODUsIDc5LCAxMjgsIDg5LCA4NSwgNzgsIDEyOCwgODksIDg1LCA3NywgCisgICAgMTI4LCA4OSwgODUsIDY5LCA4MSwgMTI4LCA4OSwgODUsIDY5LCAxMjgsIDg5LCA4NSwgNjgsIDcyLCAxMjgsIDg5LCA4NSwgCisgICAgNjgsIDIwMCwgODksIDg1LCA2NSwgNzgsIDEyOCwgODksIDg1LCA2NSwgNjksIDc4LCAxMjgsIDg5LCA4NSwgNDUsIDg5LCAKKyAgICA2OSwgNzksIDEyOCwgODksIDg1LCA0NSwgODksIDY5LCAxMjgsIDg5LCA4NSwgNDUsIDg1LCAxMjgsIDg5LCA4NSwgNDUsIAorICAgIDc5LCAxMjgsIDg5LCA4NSwgNDUsIDczLCAxMjgsIDg5LCA4NSwgNDUsIDY5LCA3OSwgMTI4LCA4OSwgODUsIDQ1LCA2OSwgCisgICAgMTI4LCA4OSwgODUsIDQ1LCA2NSwgNjksIDEyOCwgODksIDg1LCA0NSwgNjUsIDEyOCwgODksIDg1LCAxMjgsIDg5LCAyMTMsIAorICAgIDg5LCA4MCwgODMsIDczLCA3NiwgNzMsIDEyOCwgODksIDgwLCA3OSwgODIsIDgyLCA3OSwgNzMsIDEyOCwgODksIDgwLCA3OSwgCisgICAgNzUsIDgyLCA3MywgODMsIDczLCA4MywgMTI4LCA4OSwgODAsIDc5LCA3NSwgODIsIDczLCA4MywgNzMsIDIxMSwgODksIDgwLCAKKyAgICA3OSwgNzEsIDY5LCA3MSwgODIsIDY1LCA3NywgNzcsIDY5LCA3OCwgNzMsIDEyOCwgODksIDc5LCA4OSwgMTI4LCA4OSwgNzksIAorICAgIDg4LCAxMjgsIDg5LCA3OSwgODUsIDg0LCA3MiwgNzAsIDg1LCA3NiwgNzgsIDY5LCA4MywgODMsIDEyOCwgODksIDc5LCA4NSwgCisgICAgODQsIDcyLCA3MCwgODUsIDIwNCwgODksIDc5LCA4NCwgMTI4LCA4OSwgNzksIDgyLCA3MywgMTI4LCA4OSwgNzksIDgxLCAKKyAgICAxMjgsIDg5LCA3OSwgMjA5LCA4OSwgNzksIDgwLCAxMjgsIDg5LCA3OSwgNzksIDEyOCwgODksIDc5LCA3NywgNzksIDEyOCwgCisgICAgODksIDc5LCA3MSwgNzIsIDEyOCwgODksIDc5LCA2OCwgNzIsIDEyOCwgODksIDc5LCA2OCwgMTI4LCA4OSwgNzksIDE5NiwgCisgICAgODksIDc5LCA2NSwgMTI4LCA4OSwgNzksIDQ1LCA4OSwgNjksIDc5LCAxMjgsIDg5LCA3OSwgNDUsIDg5LCA2NSwgNjksIAorICAgIDEyOCwgODksIDc5LCA0NSwgODksIDY1LCAxMjgsIDg5LCA3OSwgNDUsIDc5LCAxMjgsIDg5LCA3OSwgNDUsIDczLCAxMjgsIAorICAgIDg5LCA3OSwgNDUsIDY5LCA3OSwgMTI4LCA4OSwgNzksIDQ1LCA2NSwgNjksIDEyOCwgODksIDc5LCA0NSwgNjUsIDEyOCwgCisgICAgODksIDc5LCAxMjgsIDg5LCAyMDcsIDg5LCA3MywgOTAsIDY5LCA4NCwgMTI4LCA4OSwgNzMsIDg4LCAxMjgsIDg5LCA3MywgCisgICAgODcsIDc4LCAxMjgsIDg5LCA3MywgODQsIDEyOCwgODksIDczLCA4MCwgMTI4LCA4OSwgNzMsIDc4LCA3MSwgMTI4LCA4OSwgCisgICAgNzMsIDczLCAxMjgsIDg5LCA3MywgMTk5LCA4OSwgNzMsIDY5LCA4OCwgMTI4LCA4OSwgNzMsIDY5LCA4NCwgMTI4LCA4OSwgCisgICAgNzMsIDY5LCA4MCwgMTI4LCA4OSwgNzMsIDY5LCA2OSwgMTI4LCA4OSwgNzMsIDY5LCAxMjgsIDg5LCA3MywgNjgsIDY4LCAKKyAgICA3MywgODMsIDIwMCwgODksIDczLCA0NSwgODUsIDEyOCwgODksIDczLCAxMjgsIDg5LCA3MCwgNjksIDgzLCA3MywgODMsIAorICAgIDEyOCwgODksIDcwLCA2OSwgODMsIDczLCAyMTEsIDg5LCA3MCwgNjksIDIwNiwgODksIDY5LCA4OSwgMTI4LCA4OSwgNjksIAorICAgIDg3LCAxMjgsIDg5LCA2OSwgODUsIDg4LCAxMjgsIDg5LCA2OSwgODUsIDgyLCA2NSwgNjksIDEyOCwgODksIDY5LCA4NSwgCisgICAgODEsIDEyOCwgODksIDY5LCA4NSwgNzcsIDEyOCwgODksIDY5LCA4NSwgNjUsIDY5LCA4NCwgMTI4LCA4OSwgNjksIDg1LCAKKyAgICA2NSwgNjksIDEyOCwgODksIDY5LCA4NCwgNzMsIDg2LCAxMjgsIDg5LCA2OSwgODMsIDg0LCA4NSwgMTI4LCA4OSwgNjksIAorICAgIDgzLCA3MywgNjksIDg1LCA3OCwgNzEsIDQ1LCA4MywgNzMsIDc5LCA4MywgMTI4LCA4OSwgNjksIDgzLCA3MywgNjksIDg1LCAKKyAgICA3OCwgNzEsIDQ1LCA4MCwgNjUsIDc4LCA4MywgNzMsIDc5LCA4MywgMTI4LCA4OSwgNjksIDgzLCA3MywgNjksIDg1LCA3OCwgCisgICAgNzEsIDQ1LCA3NywgNzMsIDY5LCA4NSwgNzcsIDEyOCwgODksIDY5LCA4MywgNzMsIDY5LCA4NSwgNzgsIDcxLCA0NSwgNzIsIAorICAgIDczLCA2OSwgODUsIDcyLCAxMjgsIDg5LCA2OSwgODMsIDczLCA2OSwgODUsIDc4LCA3MSwgMTI4LCA4OSwgNjksIDgyLCA4NSwgCisgICAgMTI4LCA4OSwgNjksIDgyLCAyMTMsIDg5LCA2OSwgODIsIDczLCAxMjgsIDg5LCA2OSwgODIsIDY1LCAyMDAsIDg5LCA2OSwgCisgICAgODIsIDEyOCwgODksIDY5LCA3OSwgODIsIDczLCA3OCwgNzIsIDczLCA2OSwgODUsIDcyLCAxMjgsIDg5LCA2OSwgNzksIDQ1LCAKKyAgICA4OSwgNjUsIDEyOCwgODksIDY5LCA3OSwgNDUsIDg1LCAxMjgsIDg5LCA2OSwgNzksIDQ1LCA3OSwgMTI4LCA4OSwgNjksIAorICAgIDc4LCA3MywgODMsIDY5LCAyMDEsIDg5LCA2OSwgNzgsIDY1LCA4MCwgMTI4LCA4OSwgNjksIDc4LCAxMjgsIDg5LCA2OSwgCisgICAgMjA2LCA4OSwgNjksIDc2LCA3NiwgNzksIDg3LCAxMjgsIDg5LCA2OSwgNzYsIDc2LCA3OSwgMjE1LCA4OSwgNjksIDcyLCAKKyAgICAxMjgsIDg5LCA2OSwgNjksIDEyOCwgODksIDY5LCA2NSwgMjEwLCA4OSwgNjksIDY1LCAxMjgsIDg5LCA2NSwgOTAsIDkwLCAKKyAgICAxMjgsIDg5LCA2NSwgOTAsIDcyLCAxMjgsIDg5LCA2NSwgOTAsIDEyOCwgODksIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIAorICAgIDEyOCwgODksIDY1LCA4OSwgMTI4LCA4OSwgNjUsIDg3LCAxMjgsIDg5LCA2NSwgODYsIDEyOCwgODksIDY1LCA4NSwgMTI4LCAKKyAgICA4OSwgNjUsIDg0LCA4NCwgMTI4LCA4OSwgNjUsIDg0LCA3MywgMTI4LCA4OSwgNjUsIDg0LCA3MiwgMTI4LCA4OSwgNjUsIAorICAgIDg0LCAxMjgsIDg5LCA2NSwgODMsIDgzLCAxMjgsIDg5LCA2NSwgODMsIDcyLCAxMjgsIDg5LCA2NSwgODMsIDEyOCwgODksIAorICAgIDY1LCA4MiwgODIsIDEyOCwgODksIDY1LCA4MiwgMTI4LCA4OSwgNjUsIDIxMCwgODksIDY1LCA4MSwgMTI4LCA4OSwgNjUsIAorICAgIDgwLCAxMjgsIDg5LCA2NSwgNzgsIDgzLCA2NSwgODksIDY1LCAxMjgsIDg5LCA2NSwgNzgsIDcxLCAxMjgsIDg5LCA2NSwgCisgICAgNzgsIDE5OSwgODksIDY1LCA3OCwgMTI4LCA4OSwgNjUsIDc3LCA3OSwgNzUsIDEyOCwgODksIDY1LCA3NywgNjUsIDc1LCAKKyAgICA3NSwgNjUsIDc4LCAxMjgsIDg5LCA2NSwgNzcsIDEyOCwgODksIDY1LCA3NiwgMTI4LCA4OSwgNjUsIDc1LCA3MiwgNzIsIAorICAgIDEyOCwgODksIDY1LCA3NSwgNzIsIDEyOCwgODksIDY1LCA3NSwgNjUsIDgzLCA3MiwgMTI4LCA4OSwgNjUsIDc1LCAxMjgsIAorICAgIDg5LCA2NSwgNzQsIDg1LCA4MiwgODYsIDY5LCA2OCwgNzMsIDE5NSwgODksIDY1LCA3NCwgMTI4LCA4OSwgNjUsIDczLCAKKyAgICAxMjgsIDg5LCA2NSwgNzIsIDcyLCAxMjgsIDg5LCA2NSwgNzIsIDEyOCwgODksIDY1LCA3MSwgNzgsIDEyOCwgODksIDY1LCAKKyAgICA3MSwgNzIsIDcyLCAxMjgsIDg5LCA2NSwgNzEsIDcyLCAxMjgsIDg5LCA2NSwgNzEsIDEyOCwgODksIDY1LCA3MCwgMjEzLCAKKyAgICA4OSwgNjUsIDcwLCAxMjgsIDg5LCA2NSwgNjksIDc3LCA3NywgNjUsIDY5LCAxMjgsIDg5LCA2NSwgNjgsIDcyLCAxMjgsIAorICAgIDg5LCA2NSwgNjgsIDY4LCA3MiwgMTI4LCA4OSwgNjUsIDY4LCA2OCwgMTI4LCA4OSwgNjUsIDY4LCAxMjgsIDg5LCA2NSwgCisgICAgNjcsIDcyLCAxMjgsIDg5LCA2NSwgNjYsIDcyLCAxMjgsIDg5LCA2NSwgNjYsIDEyOCwgODksIDY1LCA2NSwgODIsIDg1LCAKKyAgICAxMjgsIDg5LCA2NSwgNjUsIDczLCAxMjgsIDg5LCA2NSwgNjUsIDY4LCA3OSwgMTI4LCA4OSwgNjUsIDQ1LCA4OSwgNzksIAorICAgIDEyOCwgODksIDY1LCA0NSwgODUsIDEyOCwgODksIDY1LCA0NSwgNzksIDEyOCwgODksIDQ4LCA0OCwgNTYsIDEyOCwgODksIAorICAgIDQ4LCA0OCwgNTUsIDEyOCwgODksIDQ4LCA0OCwgNTQsIDEyOCwgODksIDQ4LCA0OCwgNTMsIDEyOCwgODksIDQ4LCA0OCwgCisgICAgNTIsIDEyOCwgODksIDQ4LCA0OCwgNTEsIDEyOCwgODksIDQ4LCA0OCwgNTAsIDEyOCwgODksIDQ4LCA0OCwgNDksIDY1LCAKKyAgICAxMjgsIDg5LCA0OCwgNDgsIDQ5LCAxMjgsIDg5LCA0NSwgNjcsIDgyLCA2OSwgMTk3LCA4OCwgODksIDg4LCAxMjgsIDg4LCAKKyAgICA4OSwgODUsIDEyOCwgODgsIDg5LCA4NCwgMTI4LCA4OCwgODksIDgyLCA4OCwgMTI4LCA4OCwgODksIDgyLCAxMjgsIDg4LCAKKyAgICA4OSwgODAsIDEyOCwgODgsIDg5LCA3OSwgMTI4LCA4OCwgODksIDczLCAxMjgsIDg4LCA4OSwgNjksIDY5LCAxMjgsIDg4LCAKKyAgICA4OSwgNjksIDEyOCwgODgsIDg5LCA2NSwgNjUsIDEyOCwgODgsIDg5LCA2NSwgMTI4LCA4OCwgODksIDEyOCwgODgsIDg3LCAKKyAgICA3MywgMTI4LCA4OCwgODcsIDY5LCA2OSwgMTI4LCA4OCwgODcsIDY5LCAxMjgsIDg4LCA4NywgNjUsIDY1LCAxMjgsIDg4LCAKKyAgICA4NywgNjUsIDEyOCwgODgsIDg2LCA2OSwgMTI4LCA4OCwgODYsIDY1LCAxMjgsIDg4LCA4NSwgNzksIDg4LCAxMjgsIDg4LCAKKyAgICA4NSwgNzksIDEyOCwgODgsIDg1LCAxMjgsIDg4LCA4MywgNzIsIDY1LCA2NSwgODksIDY1LCA4NCwgNzIsIDczLCA4OSwgNjUsIAorICAgIDEyOCwgODgsIDc5LCA4OCwgMTI4LCA4OCwgNzksIDg0LCAxMjgsIDg4LCA3OSwgODIsIDEyOCwgODgsIDc5LCA4MCwgMTI4LCAKKyAgICA4OCwgNzksIDY1LCAxMjgsIDg4LCA3OSwgMTI4LCA4OCwgNzMsIDg4LCAxMjgsIDg4LCA3MywgODQsIDEyOCwgODgsIDczLCAKKyAgICA4MiwgNzksIDIwNiwgODgsIDczLCA4MCwgMTI4LCA4OCwgNzMsIDY5LCA4OCwgMTI4LCA4OCwgNzMsIDY5LCA4NCwgMTI4LCAKKyAgICA4OCwgNzMsIDY5LCA4MCwgMTI4LCA4OCwgNzMsIDY5LCAxMjgsIDg4LCA3MywgMTI4LCA4OCwgNzEsIDEyOCwgODgsIDY5LCAKKyAgICA4MywgODQsIDY5LCAyMTEsIDg4LCA2OSwgNzIsIDEyOCwgODgsIDY5LCA2OSwgMTI4LCA4OCwgNjksIDEyOCwgODgsIDY1LCAKKyAgICA3OCwgMTI4LCA4OCwgNjUsIDY1LCAxMjgsIDg4LCA2NSwgMTI4LCA4OCwgNDgsIDQ4LCA1NiwgNjUsIDEyOCwgODgsIDQ4LCAKKyAgICA0OCwgNTYsIDEyOCwgODgsIDQ4LCA0OCwgNTUsIDEyOCwgODgsIDQ4LCA0OCwgNTQsIDY1LCAxMjgsIDg4LCA0OCwgNDgsIAorICAgIDU0LCAxMjgsIDg4LCA0OCwgNDgsIDUzLCAxMjgsIDg4LCA0OCwgNDgsIDUyLCA2NiwgMTI4LCA4OCwgNDgsIDQ4LCA1MiwgCisgICAgNjUsIDEyOCwgODgsIDQ4LCA0OCwgNTIsIDEyOCwgODgsIDQ4LCA0OCwgNTEsIDEyOCwgODgsIDQ4LCA0OCwgNTAsIDEyOCwgCisgICAgODgsIDQ4LCA0OCwgNDksIDEyOCwgODcsIDkwLCAxMjgsIDg3LCA4OSwgNzgsIDc4LCAxMjgsIDg3LCA4OSwgNzgsIDIwNiwgCisgICAgODcsIDg2LCAxMjgsIDg3LCA4NSwgODAsIDEyOCwgODcsIDg1LCA3OSwgODgsIDEyOCwgODcsIDg1LCA3OSwgODAsIDEyOCwgCisgICAgODcsIDg1LCA3OSwgMTI4LCA4NywgODUsIDc4LCA3NCwgMjA3LCA4NywgODUsIDc4LCAxMjgsIDg3LCA4NSwgNzYsIDg1LCAKKyAgICAxMjgsIDg3LCA4NSwgNzYsIDIxMywgODcsIDg1LCA2OSwgMTI4LCA4NywgODUsIDY1LCA2OSwgODQsIDEyOCwgODcsIDg1LCAKKyAgICA2NSwgNjksIDc4LCAxMjgsIDg3LCA4NSwgMTI4LCA4NywgODIsIDIxNywgODcsIDgyLCA3OSwgNzgsIDcxLCAxMjgsIDg3LCAKKyAgICA4MiwgNzMsIDg0LCA3MywgNzgsIDE5OSwgODcsIDgyLCA2OSwgNzgsIDY3LCA3MiwgMTI4LCA4NywgODIsIDY5LCA2NSwgODQsIAorICAgIDIwMCwgODcsIDgyLCA2NSwgODAsIDgwLCA2OSwgMTk2LCA4NywgODIsIDY1LCA4MCwgMTI4LCA4NywgNzksIDg4LCAxMjgsIAorICAgIDg3LCA3OSwgODIsIDgyLCA3MywgNjksIDE5NiwgODcsIDc5LCA4MiwgNzUsIDY5LCA4MiwgMTI4LCA4NywgNzksIDgyLCA3NSwgCisgICAgMTI4LCA4NywgNzksIDgyLCAyMDMsIDg3LCA3OSwgODIsIDY4LCA4MywgODAsIDY1LCA2NywgNjksIDEyOCwgODcsIDc5LCAKKyAgICA4MiwgMTk2LCA4NywgNzksIDgwLCAxMjgsIDg3LCA3OSwgNzksIDc4LCAxMjgsIDg3LCA3OSwgNzksIDc2LCAxMjgsIDg3LCAKKyAgICA3OSwgNzksIDY4LCA4MywgNDUsIDY3LCA4MiwgNjksIDE5NywgODcsIDc5LCA3OSwgNjgsIDEyOCwgODcsIDc5LCA3OCwgCisgICAgMTI4LCA4NywgNzksIDIwNiwgODcsIDc5LCA3NywgNjksIDc4LCAyMTEsIDg3LCA3OSwgNzcsIDY5LCAyMDYsIDg3LCA3OSwgCisgICAgNzcsIDY1LCA3OCwgMjExLCA4NywgNzksIDc3LCA2NSwgNzgsIDEyOCwgODcsIDc5LCA3NywgNjUsIDIwNiwgODcsIDc5LCAKKyAgICA3NiwgNzksIDgzLCA3OSwgMTI4LCA4NywgNzksIDc2LCAxOTgsIDg3LCA3OSwgNjksIDEyOCwgODcsIDc5LCA2NSwgMTI4LCAKKyAgICA4NywgNzMsIDg0LCA3MiwgNzksIDg1LCAyMTIsIDg3LCA3MywgODQsIDcyLCA3MywgNzgsIDEyOCwgODcsIDczLCA3OCwgODQsIAorICAgIDY5LCA4MiwgMTI4LCA4NywgNzMsIDc4LCA3NSwgNzMsIDc4LCAxOTksIDg3LCA3MywgNzgsIDc0LCA2NSwgMTI4LCA4NywgCisgICAgNzMsIDc4LCA3MSwgODMsIDEyOCwgODcsIDczLCA3OCwgNjksIDEyOCwgODcsIDczLCA3OCwgMTk3LCA4NywgNzMsIDc4LCAKKyAgICA2OCwgODUsIDEyOCwgODcsIDczLCA3OCwgNjgsIDEyOCwgODcsIDczLCA3OCwgMTk2LCA4NywgNzMsIDc4LCAxMjgsIDg3LCAKKyAgICA3MywgNzEsIDc4LCA4OSwgNjUsIDc4LCAxMjgsIDg3LCA3MywgNzEsIDcxLCA3NiwgMjE3LCA4NywgNzMsIDY4LCA2OSwgNDUsIAorICAgIDcyLCA2OSwgNjUsIDY4LCA2OSwgMTk2LCA4NywgNzMsIDY4LCAxOTcsIDg3LCA3MywgNjUsIDc4LCA3MSwgODcsIDY1LCA2NSwgCisgICAgNzUsIDEyOCwgODcsIDczLCA2NSwgNzgsIDcxLCAxMjgsIDg3LCA3MiwgNzksIDc2LCAxOTcsIDg3LCA3MiwgNzMsIDg0LCAKKyAgICA2OSwgNDUsIDcwLCA2OSwgNjUsIDg0LCA3MiwgNjksIDgyLCA2OSwgMTk2LCA4NywgNzIsIDczLCA4NCwgNjksIDEyOCwgODcsIAorICAgIDcyLCA2OSwgNjksIDc2LCA2OSwgMTk2LCA4NywgNzIsIDY5LCA2OSwgNzYsIDY3LCA3MiwgNjUsIDczLCAyMTAsIDg3LCA3MiwgCisgICAgNjksIDY5LCA3NiwgMTI4LCA4NywgNzIsIDY5LCA2OSwgMjA0LCA4NywgNzIsIDY5LCA2NSwgODQsIDEyOCwgODcsIDcyLCAKKyAgICA2NSwgNzYsIDY5LCAxMjgsIDg3LCA3MSwgMTI4LCA4NywgNjksIDg4LCAxMjgsIDg3LCA2OSwgODUsIDg4LCAxMjgsIDg3LCAKKyAgICA2OSwgODMsIDg0LCA2OSwgODIsIDIwNiwgODcsIDY5LCA4MywgODQsIDEyOCwgODcsIDY5LCA4MywgMjEyLCA4NywgNjksIAorICAgIDgwLCAxMjgsIDg3LCA2OSwgNzksIDEyOCwgODcsIDY5LCA3OCwgMTI4LCA4NywgNjksIDc2LCA3NiwgMTI4LCA4NywgNjksIAorICAgIDczLCA3MSwgNzIsIDIxMiwgODcsIDY5LCA3MywgNjksIDgyLCA4MywgODQsIDgyLCA2NSwgODMsIDIxMSwgODcsIDY5LCA2OSwgCisgICAgNzgsIDEyOCwgODcsIDY5LCA2OCwgNzEsIDY5LCA0NSwgODQsIDY1LCA3MywgNzYsIDY5LCAxOTYsIDg3LCA2OSwgNjgsIDY4LCAKKyAgICA3MywgNzgsIDcxLCAxMjgsIDg3LCA2OSwgNjUsIDgyLCAyMTcsIDg3LCA2OSwgNjUsIDgwLCA3OSwgNzgsIDEyOCwgODcsIAorICAgIDY3LCAxMjgsIDg3LCA2NiwgMTI4LCA4NywgNjUsIDg5LCAxMjgsIDg3LCA2NSwgMjE3LCA4NywgNjUsIDg4LCA3MywgNzgsIAorICAgIDE5OSwgODcsIDY1LCA4OCwgMTI4LCA4NywgNjUsIDg3LCA0NSwgNjUsIDg5LCA3MywgNzgsIDQ1LCA4MiwgNjksIDgzLCA3MiwgCisgICAgMTI4LCA4NywgNjUsIDg3LCAxMjgsIDg3LCA2NSwgMjE1LCA4NywgNjUsIDg2LCAyMTcsIDg3LCA2NSwgODYsIDczLCA3OCwgCisgICAgMTk5LCA4NywgNjUsIDg2LCA2OSwgODMsIDEyOCwgODcsIDY1LCA4NiwgNjksIDEyOCwgODcsIDY1LCA4NiwgMTk3LCA4NywgCisgICAgNjUsIDg1LCAxMjgsIDg3LCA2NSwgODQsIDg0LCA3OSwgMTI4LCA4NywgNjUsIDg0LCA2OSwgODIsIDc3LCA2OSwgNzYsIDc5LCAKKyAgICA3OCwgMTI4LCA4NywgNjUsIDg0LCA2OSwgODIsIDEyOCwgODcsIDY1LCA4NCwgNjksIDIxMCwgODcsIDY1LCA4NCwgNjcsIAorICAgIDcyLCAxMjgsIDg3LCA2NSwgODQsIDEyOCwgODcsIDY1LCA4MywgODQsIDczLCA3OCwgNzEsIDEyOCwgODcsIDY1LCA4MywgCisgICAgODMsIDY1LCA3NiwgNzYsIDY1LCA3NywgMTI4LCA4NywgNjUsIDgzLCA3NiwgNjUsIDEyOCwgODcsIDY1LCA4MywgNzYsIAorICAgIDE5MywgODcsIDY1LCA4MywgNjUsIDc2LCA3NiwgNjUsIDc3LCAxMjgsIDg3LCA2NSwgODMsIDY1LCA3NiwgNzYsIDY1LCAKKyAgICAyMDUsIDg3LCA2NSwgODIsIDc4LCA3MywgNzgsIDE5OSwgODcsIDY1LCA4MCwgMTI4LCA4NywgNjUsIDc4LCA3MywgNzgsIAorICAgIDE5OSwgODcsIDY1LCA3OCwgNzEsIDc1LCA4NSwgNzksIDgxLCAxMjgsIDg3LCA2NSwgNzgsIDY4LCA2OSwgODIsIDY5LCA4MiwgCisgICAgMTI4LCA4NywgNjUsIDc4LCAxMjgsIDg3LCA2NSwgNzYsIDc2LCAxMjgsIDg3LCA2NSwgNzYsIDc1LCAxMjgsIDg3LCA2NSwgCisgICAgNzYsIDIwMywgODcsIDY1LCA3MywgODQsIDczLCA3OCwgNzEsIDEyOCwgODcsIDY1LCA3MywgMTI4LCA4NywgNjUsIDY5LCAKKyAgICA3OCwgMTI4LCA4NywgNjUsIDY5LCAxMjgsIDg3LCA2NSwgNjUsIDg2LCA4NSwgMTI4LCA4NywgNDgsIDUwLCA1MywgMTI4LCAKKyAgICA4NywgNDgsIDUwLCA1MiwgNjUsIDEyOCwgODcsIDQ4LCA1MCwgNTIsIDEyOCwgODcsIDQ4LCA1MCwgNTEsIDEyOCwgODcsIAorICAgIDQ4LCA1MCwgNTAsIDEyOCwgODcsIDQ4LCA1MCwgNDksIDEyOCwgODcsIDQ4LCA1MCwgNDgsIDEyOCwgODcsIDQ4LCA0OSwgCisgICAgNTcsIDEyOCwgODcsIDQ4LCA0OSwgNTYsIDY1LCAxMjgsIDg3LCA0OCwgNDksIDU2LCAxMjgsIDg3LCA0OCwgNDksIDU1LCAKKyAgICA2NSwgMTI4LCA4NywgNDgsIDQ5LCA1NSwgMTI4LCA4NywgNDgsIDQ5LCA1NCwgMTI4LCA4NywgNDgsIDQ5LCA1MywgMTI4LCAKKyAgICA4NywgNDgsIDQ5LCA1MiwgNjUsIDEyOCwgODcsIDQ4LCA0OSwgNTIsIDEyOCwgODcsIDQ4LCA0OSwgNTEsIDEyOCwgODcsIAorICAgIDQ4LCA0OSwgNTAsIDEyOCwgODcsIDQ4LCA0OSwgNDksIDEyOCwgODcsIDQ4LCA0OSwgNDgsIDY1LCAxMjgsIDg3LCA0OCwgCisgICAgNDksIDQ4LCAxMjgsIDg3LCA0OCwgNDgsIDU3LCA2NSwgMTI4LCA4NywgNDgsIDQ4LCA1NywgMTI4LCA4NywgNDgsIDQ4LCAKKyAgICA1NiwgMTI4LCA4NywgNDgsIDQ4LCA1NSwgMTI4LCA4NywgNDgsIDQ4LCA1NCwgMTI4LCA4NywgNDgsIDQ4LCA1MywgMTI4LCAKKyAgICA4NywgNDgsIDQ4LCA1MiwgMTI4LCA4NywgNDgsIDQ4LCA1MSwgNjUsIDEyOCwgODcsIDQ4LCA0OCwgNTEsIDEyOCwgODcsIAorICAgIDQ4LCA0OCwgNTAsIDEyOCwgODcsIDQ4LCA0OCwgNDksIDEyOCwgODYsIDkwLCA3NywgNjksIDg0LCAxMjgsIDg2LCA4OSwgCisgICAgODgsIDEyOCwgODYsIDg5LCA4NCwgMTI4LCA4NiwgODksIDgyLCA4OCwgMTI4LCA4NiwgODksIDgyLCAxMjgsIDg2LCA4OSwgCisgICAgODAsIDEyOCwgODYsIDg5LCAxMjgsIDg2LCA4NywgNjUsIDEyOCwgODYsIDg1LCA4OCwgMTI4LCA4NiwgODUsIDg1LCAxMjgsIAorICAgIDg2LCA4NSwgODQsIDEyOCwgODYsIDg1LCA4MiwgODgsIDEyOCwgODYsIDg1LCA4MiwgMTI4LCA4NiwgODUsIDgwLCAxMjgsIAorICAgIDg2LCA4NSwgNzYsIDcxLCA2NSwgMjEwLCA4NiwgODUsIDY5LCA4MSwgMTI4LCA4NiwgODQsIDgzLCAxMjgsIDg2LCA4NCwgCisgICAgMTI4LCA4NiwgODMsIDU3LCA1NywgMTI4LCA4NiwgODMsIDU3LCA1NiwgMTI4LCA4NiwgODMsIDU3LCA1NSwgMTI4LCA4NiwgCisgICAgODMsIDU3LCA1NCwgMTI4LCA4NiwgODMsIDU3LCA1MywgMTI4LCA4NiwgODMsIDU3LCA1MiwgMTI4LCA4NiwgODMsIDU3LCAKKyAgICA1MSwgMTI4LCA4NiwgODMsIDU3LCA1MCwgMTI4LCA4NiwgODMsIDU3LCA0OSwgMTI4LCA4NiwgODMsIDU3LCA0OCwgMTI4LCAKKyAgICA4NiwgODMsIDU3LCAxMjgsIDg2LCA4MywgNTYsIDU3LCAxMjgsIDg2LCA4MywgNTYsIDU2LCAxMjgsIDg2LCA4MywgNTYsIAorICAgIDU1LCAxMjgsIDg2LCA4MywgNTYsIDU0LCAxMjgsIDg2LCA4MywgNTYsIDUzLCAxMjgsIDg2LCA4MywgNTYsIDUyLCAxMjgsIAorICAgIDg2LCA4MywgNTYsIDUxLCAxMjgsIDg2LCA4MywgNTYsIDUwLCAxMjgsIDg2LCA4MywgNTYsIDQ5LCAxMjgsIDg2LCA4MywgCisgICAgNTYsIDQ4LCAxMjgsIDg2LCA4MywgNTYsIDEyOCwgODYsIDgzLCA1NSwgNTcsIDEyOCwgODYsIDgzLCA1NSwgNTYsIDEyOCwgCisgICAgODYsIDgzLCA1NSwgNTUsIDEyOCwgODYsIDgzLCA1NSwgNTQsIDEyOCwgODYsIDgzLCA1NSwgNTMsIDEyOCwgODYsIDgzLCAKKyAgICA1NSwgNTIsIDEyOCwgODYsIDgzLCA1NSwgNTEsIDEyOCwgODYsIDgzLCA1NSwgNTAsIDEyOCwgODYsIDgzLCA1NSwgNDksIAorICAgIDEyOCwgODYsIDgzLCA1NSwgNDgsIDEyOCwgODYsIDgzLCA1NSwgMTI4LCA4NiwgODMsIDU0LCA1NywgMTI4LCA4NiwgODMsIAorICAgIDU0LCA1NiwgMTI4LCA4NiwgODMsIDU0LCA1NSwgMTI4LCA4NiwgODMsIDU0LCA1NCwgMTI4LCA4NiwgODMsIDU0LCA1MywgCisgICAgMTI4LCA4NiwgODMsIDU0LCA1MiwgMTI4LCA4NiwgODMsIDU0LCA1MSwgMTI4LCA4NiwgODMsIDU0LCA1MCwgMTI4LCA4NiwgCisgICAgODMsIDU0LCA0OSwgMTI4LCA4NiwgODMsIDU0LCA0OCwgMTI4LCA4NiwgODMsIDU0LCAxMjgsIDg2LCA4MywgNTMsIDU3LCAKKyAgICAxMjgsIDg2LCA4MywgNTMsIDU2LCAxMjgsIDg2LCA4MywgNTMsIDU1LCAxMjgsIDg2LCA4MywgNTMsIDU0LCAxMjgsIDg2LCAKKyAgICA4MywgNTMsIDUzLCAxMjgsIDg2LCA4MywgNTMsIDUyLCAxMjgsIDg2LCA4MywgNTMsIDUxLCAxMjgsIDg2LCA4MywgNTMsIAorICAgIDUwLCAxMjgsIDg2LCA4MywgNTMsIDQ5LCAxMjgsIDg2LCA4MywgNTMsIDQ4LCAxMjgsIDg2LCA4MywgNTMsIDEyOCwgODYsIAorICAgIDgzLCA1MiwgNTcsIDEyOCwgODYsIDgzLCA1MiwgNTYsIDEyOCwgODYsIDgzLCA1MiwgNTUsIDEyOCwgODYsIDgzLCA1MiwgCisgICAgNTQsIDEyOCwgODYsIDgzLCA1MiwgNTMsIDEyOCwgODYsIDgzLCA1MiwgNTIsIDEyOCwgODYsIDgzLCA1MiwgNTEsIDEyOCwgCisgICAgODYsIDgzLCA1MiwgNTAsIDEyOCwgODYsIDgzLCA1MiwgNDksIDEyOCwgODYsIDgzLCA1MiwgNDgsIDEyOCwgODYsIDgzLCAKKyAgICA1MiwgMTI4LCA4NiwgODMsIDUxLCA1NywgMTI4LCA4NiwgODMsIDUxLCA1NiwgMTI4LCA4NiwgODMsIDUxLCA1NSwgMTI4LCAKKyAgICA4NiwgODMsIDUxLCA1NCwgMTI4LCA4NiwgODMsIDUxLCA1MywgMTI4LCA4NiwgODMsIDUxLCA1MiwgMTI4LCA4NiwgODMsIAorICAgIDUxLCA1MSwgMTI4LCA4NiwgODMsIDUxLCA1MCwgMTI4LCA4NiwgODMsIDUxLCA0OSwgMTI4LCA4NiwgODMsIDUxLCA0OCwgCisgICAgMTI4LCA4NiwgODMsIDUxLCAxMjgsIDg2LCA4MywgNTAsIDU3LCAxMjgsIDg2LCA4MywgNTAsIDU2LCAxMjgsIDg2LCA4MywgCisgICAgNTAsIDU1LCAxMjgsIDg2LCA4MywgNTAsIDU0LCAxMjgsIDg2LCA4MywgNTAsIDUzLCA1NCwgMTI4LCA4NiwgODMsIDUwLCAKKyAgICA1MywgNTMsIDEyOCwgODYsIDgzLCA1MCwgNTMsIDUyLCAxMjgsIDg2LCA4MywgNTAsIDUzLCA1MSwgMTI4LCA4NiwgODMsIAorICAgIDUwLCA1MywgNTAsIDEyOCwgODYsIDgzLCA1MCwgNTMsIDQ5LCAxMjgsIDg2LCA4MywgNTAsIDUzLCA0OCwgMTI4LCA4NiwgCisgICAgODMsIDUwLCA1MywgMTI4LCA4NiwgODMsIDUwLCA1MiwgNTcsIDEyOCwgODYsIDgzLCA1MCwgNTIsIDU2LCAxMjgsIDg2LCAKKyAgICA4MywgNTAsIDUyLCA1NSwgMTI4LCA4NiwgODMsIDUwLCA1MiwgNTQsIDEyOCwgODYsIDgzLCA1MCwgNTIsIDUzLCAxMjgsIAorICAgIDg2LCA4MywgNTAsIDUyLCA1MiwgMTI4LCA4NiwgODMsIDUwLCA1MiwgNTEsIDEyOCwgODYsIDgzLCA1MCwgNTIsIDUwLCAKKyAgICAxMjgsIDg2LCA4MywgNTAsIDUyLCA0OSwgMTI4LCA4NiwgODMsIDUwLCA1MiwgNDgsIDEyOCwgODYsIDgzLCA1MCwgNTIsIAorICAgIDEyOCwgODYsIDgzLCA1MCwgNTEsIDU3LCAxMjgsIDg2LCA4MywgNTAsIDUxLCA1NiwgMTI4LCA4NiwgODMsIDUwLCA1MSwgCisgICAgNTUsIDEyOCwgODYsIDgzLCA1MCwgNTEsIDU0LCAxMjgsIDg2LCA4MywgNTAsIDUxLCA1MywgMTI4LCA4NiwgODMsIDUwLCAKKyAgICA1MSwgNTIsIDEyOCwgODYsIDgzLCA1MCwgNTEsIDUxLCAxMjgsIDg2LCA4MywgNTAsIDUxLCA1MCwgMTI4LCA4NiwgODMsIAorICAgIDUwLCA1MSwgNDksIDEyOCwgODYsIDgzLCA1MCwgNTEsIDQ4LCAxMjgsIDg2LCA4MywgNTAsIDUxLCAxMjgsIDg2LCA4MywgCisgICAgNTAsIDUwLCA1NywgMTI4LCA4NiwgODMsIDUwLCA1MCwgNTYsIDEyOCwgODYsIDgzLCA1MCwgNTAsIDU1LCAxMjgsIDg2LCAKKyAgICA4MywgNTAsIDUwLCA1NCwgMTI4LCA4NiwgODMsIDUwLCA1MCwgNTMsIDEyOCwgODYsIDgzLCA1MCwgNTAsIDUyLCAxMjgsIAorICAgIDg2LCA4MywgNTAsIDUwLCA1MSwgMTI4LCA4NiwgODMsIDUwLCA1MCwgNTAsIDEyOCwgODYsIDgzLCA1MCwgNTAsIDQ5LCAKKyAgICAxMjgsIDg2LCA4MywgNTAsIDUwLCA0OCwgMTI4LCA4NiwgODMsIDUwLCA1MCwgMTI4LCA4NiwgODMsIDUwLCA0OSwgNTcsIAorICAgIDEyOCwgODYsIDgzLCA1MCwgNDksIDU2LCAxMjgsIDg2LCA4MywgNTAsIDQ5LCA1NSwgMTI4LCA4NiwgODMsIDUwLCA0OSwgCisgICAgNTQsIDEyOCwgODYsIDgzLCA1MCwgNDksIDUzLCAxMjgsIDg2LCA4MywgNTAsIDQ5LCA1MiwgMTI4LCA4NiwgODMsIDUwLCAKKyAgICA0OSwgNTEsIDEyOCwgODYsIDgzLCA1MCwgNDksIDUwLCAxMjgsIDg2LCA4MywgNTAsIDQ5LCA0OSwgMTI4LCA4NiwgODMsIAorICAgIDUwLCA0OSwgNDgsIDEyOCwgODYsIDgzLCA1MCwgNDksIDEyOCwgODYsIDgzLCA1MCwgNDgsIDU3LCAxMjgsIDg2LCA4MywgCisgICAgNTAsIDQ4LCA1NiwgMTI4LCA4NiwgODMsIDUwLCA0OCwgNTUsIDEyOCwgODYsIDgzLCA1MCwgNDgsIDU0LCAxMjgsIDg2LCAKKyAgICA4MywgNTAsIDQ4LCA1MywgMTI4LCA4NiwgODMsIDUwLCA0OCwgNTIsIDEyOCwgODYsIDgzLCA1MCwgNDgsIDUxLCAxMjgsIAorICAgIDg2LCA4MywgNTAsIDQ4LCA1MCwgMTI4LCA4NiwgODMsIDUwLCA0OCwgNDksIDEyOCwgODYsIDgzLCA1MCwgNDgsIDQ4LCAKKyAgICAxMjgsIDg2LCA4MywgNTAsIDQ4LCAxMjgsIDg2LCA4MywgNTAsIDEyOCwgODYsIDgzLCA0OSwgNTcsIDU3LCAxMjgsIDg2LCAKKyAgICA4MywgNDksIDU3LCA1NiwgMTI4LCA4NiwgODMsIDQ5LCA1NywgNTUsIDEyOCwgODYsIDgzLCA0OSwgNTcsIDU0LCAxMjgsIAorICAgIDg2LCA4MywgNDksIDU3LCA1MywgMTI4LCA4NiwgODMsIDQ5LCA1NywgNTIsIDEyOCwgODYsIDgzLCA0OSwgNTcsIDUxLCAKKyAgICAxMjgsIDg2LCA4MywgNDksIDU3LCA1MCwgMTI4LCA4NiwgODMsIDQ5LCA1NywgNDksIDEyOCwgODYsIDgzLCA0OSwgNTcsIAorICAgIDQ4LCAxMjgsIDg2LCA4MywgNDksIDU3LCAxMjgsIDg2LCA4MywgNDksIDU2LCA1NywgMTI4LCA4NiwgODMsIDQ5LCA1NiwgCisgICAgNTYsIDEyOCwgODYsIDgzLCA0OSwgNTYsIDU1LCAxMjgsIDg2LCA4MywgNDksIDU2LCA1NCwgMTI4LCA4NiwgODMsIDQ5LCAKKyAgICA1NiwgNTMsIDEyOCwgODYsIDgzLCA0OSwgNTYsIDUyLCAxMjgsIDg2LCA4MywgNDksIDU2LCA1MSwgMTI4LCA4NiwgODMsIAorICAgIDQ5LCA1NiwgNTAsIDEyOCwgODYsIDgzLCA0OSwgNTYsIDQ5LCAxMjgsIDg2LCA4MywgNDksIDU2LCA0OCwgMTI4LCA4NiwgCisgICAgODMsIDQ5LCA1NiwgMTI4LCA4NiwgODMsIDQ5LCA1NSwgNTcsIDEyOCwgODYsIDgzLCA0OSwgNTUsIDU2LCAxMjgsIDg2LCAKKyAgICA4MywgNDksIDU1LCA1NSwgMTI4LCA4NiwgODMsIDQ5LCA1NSwgNTQsIDEyOCwgODYsIDgzLCA0OSwgNTUsIDUzLCAxMjgsIAorICAgIDg2LCA4MywgNDksIDU1LCA1MiwgMTI4LCA4NiwgODMsIDQ5LCA1NSwgNTEsIDEyOCwgODYsIDgzLCA0OSwgNTUsIDUwLCAKKyAgICAxMjgsIDg2LCA4MywgNDksIDU1LCA0OSwgMTI4LCA4NiwgODMsIDQ5LCA1NSwgNDgsIDEyOCwgODYsIDgzLCA0OSwgNTUsIAorICAgIDEyOCwgODYsIDgzLCA0OSwgNTQsIDU3LCAxMjgsIDg2LCA4MywgNDksIDU0LCA1NiwgMTI4LCA4NiwgODMsIDQ5LCA1NCwgCisgICAgNTUsIDEyOCwgODYsIDgzLCA0OSwgNTQsIDU0LCAxMjgsIDg2LCA4MywgNDksIDU0LCA1MywgMTI4LCA4NiwgODMsIDQ5LCAKKyAgICA1NCwgNTIsIDEyOCwgODYsIDgzLCA0OSwgNTQsIDUxLCAxMjgsIDg2LCA4MywgNDksIDU0LCA1MCwgMTI4LCA4NiwgODMsIAorICAgIDQ5LCA1NCwgNDksIDEyOCwgODYsIDgzLCA0OSwgNTQsIDQ4LCAxMjgsIDg2LCA4MywgNDksIDU0LCAxMjgsIDg2LCA4MywgCisgICAgNDksIDUzLCA1NywgMTI4LCA4NiwgODMsIDQ5LCA1MywgNTYsIDEyOCwgODYsIDgzLCA0OSwgNTMsIDU1LCAxMjgsIDg2LCAKKyAgICA4MywgNDksIDUzLCA1NCwgMTI4LCA4NiwgODMsIDQ5LCA1MywgNTMsIDEyOCwgODYsIDgzLCA0OSwgNTMsIDUyLCAxMjgsIAorICAgIDg2LCA4MywgNDksIDUzLCA1MSwgMTI4LCA4NiwgODMsIDQ5LCA1MywgNTAsIDEyOCwgODYsIDgzLCA0OSwgNTMsIDQ5LCAKKyAgICAxMjgsIDg2LCA4MywgNDksIDUzLCA0OCwgMTI4LCA4NiwgODMsIDQ5LCA1MywgMTI4LCA4NiwgODMsIDQ5LCA1MiwgNTcsIAorICAgIDEyOCwgODYsIDgzLCA0OSwgNTIsIDU2LCAxMjgsIDg2LCA4MywgNDksIDUyLCA1NSwgMTI4LCA4NiwgODMsIDQ5LCA1MiwgCisgICAgNTQsIDEyOCwgODYsIDgzLCA0OSwgNTIsIDUzLCAxMjgsIDg2LCA4MywgNDksIDUyLCA1MiwgMTI4LCA4NiwgODMsIDQ5LCAKKyAgICA1MiwgNTEsIDEyOCwgODYsIDgzLCA0OSwgNTIsIDUwLCAxMjgsIDg2LCA4MywgNDksIDUyLCA0OSwgMTI4LCA4NiwgODMsIAorICAgIDQ5LCA1MiwgNDgsIDEyOCwgODYsIDgzLCA0OSwgNTIsIDEyOCwgODYsIDgzLCA0OSwgNTEsIDU3LCAxMjgsIDg2LCA4MywgCisgICAgNDksIDUxLCA1NiwgMTI4LCA4NiwgODMsIDQ5LCA1MSwgNTUsIDEyOCwgODYsIDgzLCA0OSwgNTEsIDU0LCAxMjgsIDg2LCAKKyAgICA4MywgNDksIDUxLCA1MywgMTI4LCA4NiwgODMsIDQ5LCA1MSwgNTIsIDEyOCwgODYsIDgzLCA0OSwgNTEsIDUxLCAxMjgsIAorICAgIDg2LCA4MywgNDksIDUxLCA1MCwgMTI4LCA4NiwgODMsIDQ5LCA1MSwgNDksIDEyOCwgODYsIDgzLCA0OSwgNTEsIDQ4LCAKKyAgICAxMjgsIDg2LCA4MywgNDksIDUxLCAxMjgsIDg2LCA4MywgNDksIDUwLCA1NywgMTI4LCA4NiwgODMsIDQ5LCA1MCwgNTYsIAorICAgIDEyOCwgODYsIDgzLCA0OSwgNTAsIDU1LCAxMjgsIDg2LCA4MywgNDksIDUwLCA1NCwgMTI4LCA4NiwgODMsIDQ5LCA1MCwgCisgICAgNTMsIDEyOCwgODYsIDgzLCA0OSwgNTAsIDUyLCAxMjgsIDg2LCA4MywgNDksIDUwLCA1MSwgMTI4LCA4NiwgODMsIDQ5LCAKKyAgICA1MCwgNTAsIDEyOCwgODYsIDgzLCA0OSwgNTAsIDQ5LCAxMjgsIDg2LCA4MywgNDksIDUwLCA0OCwgMTI4LCA4NiwgODMsIAorICAgIDQ5LCA1MCwgMTI4LCA4NiwgODMsIDQ5LCA0OSwgNTcsIDEyOCwgODYsIDgzLCA0OSwgNDksIDU2LCAxMjgsIDg2LCA4MywgCisgICAgNDksIDQ5LCA1NSwgMTI4LCA4NiwgODMsIDQ5LCA0OSwgNTQsIDEyOCwgODYsIDgzLCA0OSwgNDksIDUzLCAxMjgsIDg2LCAKKyAgICA4MywgNDksIDQ5LCA1MiwgMTI4LCA4NiwgODMsIDQ5LCA0OSwgNTEsIDEyOCwgODYsIDgzLCA0OSwgNDksIDUwLCAxMjgsIAorICAgIDg2LCA4MywgNDksIDQ5LCA0OSwgMTI4LCA4NiwgODMsIDQ5LCA0OSwgNDgsIDEyOCwgODYsIDgzLCA0OSwgNDksIDEyOCwgCisgICAgODYsIDgzLCA0OSwgNDgsIDU3LCAxMjgsIDg2LCA4MywgNDksIDQ4LCA1NiwgMTI4LCA4NiwgODMsIDQ5LCA0OCwgNTUsIAorICAgIDEyOCwgODYsIDgzLCA0OSwgNDgsIDU0LCAxMjgsIDg2LCA4MywgNDksIDQ4LCA1MywgMTI4LCA4NiwgODMsIDQ5LCA0OCwgCisgICAgNTIsIDEyOCwgODYsIDgzLCA0OSwgNDgsIDUxLCAxMjgsIDg2LCA4MywgNDksIDQ4LCA1MCwgMTI4LCA4NiwgODMsIDQ5LCAKKyAgICA0OCwgNDksIDEyOCwgODYsIDgzLCA0OSwgNDgsIDQ4LCAxMjgsIDg2LCA4MywgNDksIDQ4LCAxMjgsIDg2LCA4MywgNDksIAorICAgIDEyOCwgODYsIDgzLCAxMjgsIDg2LCA4MiwgNjUsIDY3LCA3MiwgODksIDEyOCwgODYsIDc5LCA4OCwgMTI4LCA4NiwgNzksIAorICAgIDg3LCA2OSwgNzYsIDQ1LCA2NywgNjUsIDgyLCA4MiwgNzMsIDY5LCAyMTAsIDg2LCA3OSwgODcsIDEyOCwgODYsIDc5LCA4NSwgCisgICAgMTI4LCA4NiwgNzksIDg0LCAxMjgsIDg2LCA3OSwgODAsIDEyOCwgODYsIDc5LCA3OSwgMTI4LCA4NiwgNzksIDc3LCAxMjgsIAorICAgIDg2LCA3OSwgNzYsIDg1LCA3NywgMTk3LCA4NiwgNzksIDc2LCA4NCwgNjUsIDcxLCAxOTcsIDg2LCA3OSwgNzYsIDY3LCA2NSwgCisgICAgNzgsIDc5LCAxMjgsIDg2LCA3OSwgNzMsIDE5NiwgODYsIDc5LCA3MywgNjcsIDczLCA3OCwgNzEsIDEyOCwgODYsIDc5LCAKKyAgICA3MywgNjcsIDY5LCA3NiwgNjksIDgzLCAyMTEsIDg2LCA3OSwgNzMsIDY3LCA2OSwgMTk2LCA4NiwgNzksIDY3LCA2NSwgNzYsIAorICAgIDczLCA5MCwgNjUsIDg0LCA3MywgNzksIDIwNiwgODYsIDc5LCA2NywgNjUsIDIwNCwgODYsIDc5LCAxMjgsIDg2LCA3MywgCisgICAgODgsIDEyOCwgODYsIDczLCA4NCwgODIsIDczLCA3OSwgNzYsIDQ1LCA1MCwgMTI4LCA4NiwgNzMsIDg0LCA4MiwgNzMsIDc5LCAKKyAgICA3NiwgMTI4LCA4NiwgNzMsIDg0LCA2NSwgNjksIDQ1LCA1MCwgMTI4LCA4NiwgNzMsIDg0LCA2NSwgNjksIDEyOCwgODYsIAorICAgIDczLCA4NCwgMTI4LCA4NiwgNzMsIDgzLCA3MywgNzEsIDc5LCA4NCwgNzIsIDczLCAxOTUsIDg2LCA3MywgODMsIDY1LCA4MiwgCisgICAgNzEsIDY1LCA4OSwgNjUsIDEyOCwgODYsIDczLCA4MywgNjUsIDgyLCA3MSwgNjUsIDEyOCwgODYsIDczLCA4MywgNjUsIDgyLCAKKyAgICA3MSwgMTkzLCA4NiwgNzMsIDgyLCA3MywgNjUsIDc3LCAxMjgsIDg2LCA3MywgODIsIDcxLCA3OSwgMTI4LCA4NiwgNzMsIAorICAgIDgyLCA3MSwgNjUsIDEyOCwgODYsIDczLCA4MiwgNjUsIDc3LCA2NSwgMTI4LCA4NiwgNzMsIDgwLCAxMjgsIDg2LCA3MywgCisgICAgNzksIDc2LCA3MywgNzgsIDEyOCwgODYsIDczLCA3OCwgNjksIDcxLCA2NSwgODIsIDQ1LCA1MSwgMTI4LCA4NiwgNzMsIDc4LCAKKyAgICA2OSwgNzEsIDY1LCA4MiwgNDUsIDUwLCAxMjgsIDg2LCA3MywgNzgsIDY5LCA3MSwgNjUsIDgyLCAxMjgsIDg2LCA3MywgNzgsIAorICAgIDY5LCA3MSwgNjUsIDIxMCwgODYsIDczLCA3OCwgNjksIDEyOCwgODYsIDczLCA3OCwgMTI4LCA4NiwgNzMsIDc2LCA3NiwgCisgICAgNjUsIDcxLCA2OSwgMTI4LCA4NiwgNzMsIDczLCAxMjgsIDg2LCA3MywgNjksIDg4LCAxMjgsIDg2LCA3MywgNjksIDg3LCAKKyAgICA3MywgNzgsIDE5OSwgODYsIDczLCA2OSwgODcsIDY4LCA2NSwgODQsIDE5MywgODYsIDczLCA2OSwgODQsIDEyOCwgODYsIAorICAgIDczLCA2OSwgODAsIDEyOCwgODYsIDczLCA2OSwgMTI4LCA4NiwgNzMsIDY4LCA3NCwgNDUsIDUwLCAxMjgsIDg2LCA3MywgCisgICAgNjgsIDc0LCAxMjgsIDg2LCA3MywgNjgsIDY5LCA3OSwgNjcsIDY1LCA4MywgODMsIDY5LCA4NCwgODQsIDY5LCAxMjgsIDg2LCAKICAgICA3MywgNjgsIDY5LCAyMDcsIDg2LCA3MywgNjgsIDY1LCAxMjgsIDg2LCA3MywgNjcsIDg0LCA3OSwgODIsIDIxNywgODYsIAotICAgIDczLCA2NiwgODIsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDg2LCA3MywgMTI4LCA4NiwgNjksIDg4LCAxMjgsIDg2LCA2OSwgCi0gICAgODcsIDEyOCwgODYsIDY5LCAyMTUsIDg2LCA2OSwgODUsIDg4LCAxMjgsIDg2LCA2OSwgODUsIDc3LCAxMjgsIDg2LCA2OSwgCi0gICAgODUsIDY1LCA2OSwgODAsIDY5LCA3OCwgMTI4LCA4NiwgNjksIDg1LCA2NSwgNjksIDEyOCwgODYsIDY5LCA4MywgODQsIDY1LCAKLSAgICAxMjgsIDg2LCA2OSwgODMsIDgzLCA2OSwgMjA0LCA4NiwgNjksIDgyLCAyMTcsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgNzYsIDg5LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNzYsIDIxNywgODYsIDY5LCA4MiwgCi0gICAgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDU0LCA0NSwgNDgsIDU0LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgNDUsIDQ4LCA1NCwgNDUsIDQ4LCA1MywgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNTQsIDQ1LCA0OCwgNTIsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDU0LCA0NSwgCi0gICAgNDgsIDUxLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1NCwgNDUsIDQ4LCA1MCwgMTI4LCAKLSAgICA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNDksIDEyOCwgODYsIDY5LCA4MiwgCi0gICAgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDU0LCA0NSwgNDgsIDQ4LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgNDUsIDQ4LCA1MywgNDUsIDQ4LCA1NCwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNTMsIDQ1LCA0OCwgNTMsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUzLCA0NSwgCi0gICAgNDgsIDUyLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1MywgNDUsIDQ4LCA1MSwgMTI4LCAKLSAgICA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTAsIDEyOCwgODYsIDY5LCA4MiwgCi0gICAgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUzLCA0NSwgNDgsIDQ5LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgNDUsIDQ4LCA1MywgNDUsIDQ4LCA0OCwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNTIsIDQ1LCA0OCwgNTQsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUyLCA0NSwgCi0gICAgNDgsIDUzLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1MiwgNDUsIDQ4LCA1MiwgMTI4LCAKLSAgICA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNTEsIDEyOCwgODYsIDY5LCA4MiwgCi0gICAgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUyLCA0NSwgNDgsIDUwLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgNDUsIDQ4LCA1MiwgNDUsIDQ4LCA0OSwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNTIsIDQ1LCA0OCwgNDgsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUxLCA0NSwgCi0gICAgNDgsIDU0LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1MSwgNDUsIDQ4LCA1MywgMTI4LCAKLSAgICA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTIsIDEyOCwgODYsIDY5LCA4MiwgCi0gICAgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUxLCA0NSwgNDgsIDUxLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgNDUsIDQ4LCA1MSwgNDUsIDQ4LCA1MCwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNTEsIDQ1LCA0OCwgNDksIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUxLCA0NSwgCi0gICAgNDgsIDQ4LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1MCwgNDUsIDQ4LCA1NCwgMTI4LCAKLSAgICA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNTMsIDEyOCwgODYsIDY5LCA4MiwgCi0gICAgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUwLCA0NSwgNDgsIDUyLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgNDUsIDQ4LCA1MCwgNDUsIDQ4LCA1MSwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNTAsIDQ1LCA0OCwgNTAsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUwLCA0NSwgCi0gICAgNDgsIDQ5LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1MCwgNDUsIDQ4LCA0OCwgMTI4LCAKLSAgICA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNTQsIDEyOCwgODYsIDY5LCA4MiwgCi0gICAgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ5LCA0NSwgNDgsIDUzLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgNDUsIDQ4LCA0OSwgNDUsIDQ4LCA1MiwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNDksIDQ1LCA0OCwgNTEsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ5LCA0NSwgCi0gICAgNDgsIDUwLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA0OSwgNDUsIDQ4LCA0OSwgMTI4LCAKLSAgICA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNDgsIDEyOCwgODYsIDY5LCA4MiwgCi0gICAgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ4LCA0NSwgNDgsIDU0LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgNDUsIDQ4LCA0OCwgNDUsIDQ4LCA1MywgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNDgsIDQ1LCA0OCwgNTIsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ4LCA0NSwgCi0gICAgNDgsIDUxLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA0OCwgNDUsIDQ4LCA1MCwgMTI4LCAKLSAgICA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNDksIDEyOCwgODYsIDY5LCA4MiwgCi0gICAgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ4LCA0NSwgNDgsIDQ4LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIAotICAgIDY1LCA3NiwgMTI4LCA4NiwgNjksIDgyLCA4MywgNzMsIDY3LCA3NiwgNjksIDEyOCwgODYsIDY5LCA4MiwgODMsIDE5NywgCi0gICAgODYsIDY5LCA4MiwgNzEsIDY5LCAxMjgsIDg2LCA2OSwgODIsIDY4LCA3MywgNzEsIDgyLCA3MywgODMsIDEyOCwgODYsIDY5LCAKLSAgICA4MCwgMTI4LCA4NiwgNjksIDc4LCA2OCwgMTI4LCA4NiwgNjksIDczLCA3NiwgMTI4LCA4NiwgNjksIDcyLCA3MywgNjcsIAotICAgIDc2LCA2OSwgMTI4LCA4NiwgNjksIDcyLCAxMjgsIDg2LCA2OSwgMjAwLCA4NiwgNjksIDY5LCAxMjgsIDg2LCA2OSwgMTk3LCAKLSAgICA4NiwgNjksIDY4LCA2OSwgMTI4LCA4NiwgNjksIDY3LCA4NCwgNzksIDIxMCwgODYsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIAotICAgIDEyOCwgODYsIDY1LCA4OCwgMTI4LCA4NiwgNjUsIDg2LCAxMjgsIDg2LCA2NSwgMjE0LCA4NiwgNjUsIDg0LCA3MiwgODksIAotICAgIDEyOCwgODYsIDY1LCA4NCwgMTI4LCA4NiwgNjUsIDgzLCA4NCwgNzgsIDY5LCA4MywgMjExLCA4NiwgNjUsIDgzLCA3MywgCi0gICAgODMsIDEyOCwgODYsIDY1LCA4MiwgODksIDIxMSwgODYsIDY1LCA4MiwgNzMsIDc1LCA2NSwgMTI4LCA4NiwgNjUsIDgyLCAKLSAgICA3MywgNjUsIDc4LCAyMTIsIDg2LCA2NSwgODIsIDczLCA2NSwgMTI4LCA4NiwgNjUsIDgyLCA3MywgMTkzLCA4NiwgNjUsIAotICAgIDgyLCA2OSwgNzMsIDY1LCAyMDEsIDg2LCA2NSwgODIsIDY5LCA3MywgMTkzLCA4NiwgNjUsIDgwLCA3OSwgODUsIDgyLCA4MywgCi0gICAgMTI4LCA4NiwgNjUsIDgwLCAxMjgsIDg2LCA2NSwgNzgsIDY5LCAxMjgsIDg2LCA2NSwgNzcsIDY1LCA3MSwgNzksIDc3LCAKLSAgICA4NSwgNzUsIDcyLCA2NSwgMTI4LCA4NiwgNjUsIDc3LCA2NSwgNzEsIDc5LCA3NywgODUsIDc1LCA3MiwgMTkzLCA4NiwgNjUsIAotICAgIDc2LCA3NiwgNjksIDg5LCAxMjgsIDg2LCA2NSwgNjUsIDg2LCA4NSwgMTI4LCA4NiwgNjUsIDY1LCAxMjgsIDg2LCA0OCwgCisgICAgNzMsIDY2LCA4MiwgNjUsIDg0LCA3MywgNzksIDIwNiwgODYsIDczLCAxMjgsIDg2LCA3MCwgNjUsIDEyOCwgODYsIDY5LCAKKyAgICA4OCwgMTI4LCA4NiwgNjksIDg3LCAxMjgsIDg2LCA2OSwgMjE1LCA4NiwgNjksIDg1LCA4OCwgMTI4LCA4NiwgNjksIDg1LCAKKyAgICA3NywgMTI4LCA4NiwgNjksIDg1LCA2NSwgNjksIDgwLCA2OSwgNzgsIDEyOCwgODYsIDY5LCA4NSwgNjUsIDY5LCAxMjgsIAorICAgIDg2LCA2OSwgODMsIDg0LCA2NSwgMTI4LCA4NiwgNjksIDgzLCA4MywgNjksIDIwNCwgODYsIDY5LCA4MiwgMjE3LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDc2LCA4OSwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIAorICAgIDc2LCAyMTcsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1NCwgNDUsIDQ4LCA1NCwgMTI4LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNTMsIDEyOCwgODYsIDY5LCA4MiwgODQsIAorICAgIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDU0LCA0NSwgNDgsIDUyLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCAKKyAgICA3NiwgNDUsIDQ4LCA1NCwgNDUsIDQ4LCA1MSwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNTQsIDQ1LCA0OCwgNTAsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDU0LCA0NSwgNDgsIAorICAgIDQ5LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1NCwgNDUsIDQ4LCA0OCwgMTI4LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTQsIDEyOCwgODYsIDY5LCA4MiwgODQsIAorICAgIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUzLCA0NSwgNDgsIDUzLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCAKKyAgICA3NiwgNDUsIDQ4LCA1MywgNDUsIDQ4LCA1MiwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNTMsIDQ1LCA0OCwgNTEsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUzLCA0NSwgNDgsIAorICAgIDUwLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1MywgNDUsIDQ4LCA0OSwgMTI4LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNDgsIDEyOCwgODYsIDY5LCA4MiwgODQsIAorICAgIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUyLCA0NSwgNDgsIDU0LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCAKKyAgICA3NiwgNDUsIDQ4LCA1MiwgNDUsIDQ4LCA1MywgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNTIsIDQ1LCA0OCwgNTIsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUyLCA0NSwgNDgsIAorICAgIDUxLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1MiwgNDUsIDQ4LCA1MCwgMTI4LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNDksIDEyOCwgODYsIDY5LCA4MiwgODQsIAorICAgIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUyLCA0NSwgNDgsIDQ4LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCAKKyAgICA3NiwgNDUsIDQ4LCA1MSwgNDUsIDQ4LCA1NCwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNTEsIDQ1LCA0OCwgNTMsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUxLCA0NSwgNDgsIAorICAgIDUyLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1MSwgNDUsIDQ4LCA1MSwgMTI4LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTAsIDEyOCwgODYsIDY5LCA4MiwgODQsIAorICAgIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUxLCA0NSwgNDgsIDQ5LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCAKKyAgICA3NiwgNDUsIDQ4LCA1MSwgNDUsIDQ4LCA0OCwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNTAsIDQ1LCA0OCwgNTQsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUwLCA0NSwgNDgsIAorICAgIDUzLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA1MCwgNDUsIDQ4LCA1MiwgMTI4LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNTEsIDEyOCwgODYsIDY5LCA4MiwgODQsIAorICAgIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDUwLCA0NSwgNDgsIDUwLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCAKKyAgICA3NiwgNDUsIDQ4LCA1MCwgNDUsIDQ4LCA0OSwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNTAsIDQ1LCA0OCwgNDgsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ5LCA0NSwgNDgsIAorICAgIDU0LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA0OSwgNDUsIDQ4LCA1MywgMTI4LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNTIsIDEyOCwgODYsIDY5LCA4MiwgODQsIAorICAgIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ5LCA0NSwgNDgsIDUxLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCAKKyAgICA3NiwgNDUsIDQ4LCA0OSwgNDUsIDQ4LCA1MCwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNDksIDQ1LCA0OCwgNDksIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ5LCA0NSwgNDgsIAorICAgIDQ4LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA0OCwgNDUsIDQ4LCA1NCwgMTI4LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTMsIDEyOCwgODYsIDY5LCA4MiwgODQsIAorICAgIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ4LCA0NSwgNDgsIDUyLCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCAKKyAgICA3NiwgNDUsIDQ4LCA0OCwgNDUsIDQ4LCA1MSwgMTI4LCA4NiwgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNDgsIDQ1LCA0OCwgNTAsIDEyOCwgODYsIDY5LCA4MiwgODQsIDczLCA2NywgNjUsIDc2LCA0NSwgNDgsIDQ4LCA0NSwgNDgsIAorICAgIDQ5LCAxMjgsIDg2LCA2OSwgODIsIDg0LCA3MywgNjcsIDY1LCA3NiwgNDUsIDQ4LCA0OCwgNDUsIDQ4LCA0OCwgMTI4LCA4NiwgCisgICAgNjksIDgyLCA4NCwgNzMsIDY3LCA2NSwgNzYsIDEyOCwgODYsIDY5LCA4MiwgODMsIDczLCA2NywgNzYsIDY5LCAxMjgsIDg2LCAKKyAgICA2OSwgODIsIDgzLCAxOTcsIDg2LCA2OSwgODIsIDcxLCA2OSwgMTI4LCA4NiwgNjksIDgyLCA2OCwgNzMsIDcxLCA4MiwgNzMsIAorICAgIDgzLCAxMjgsIDg2LCA2OSwgODAsIDEyOCwgODYsIDY5LCA3OCwgNjgsIDEyOCwgODYsIDY5LCA3MywgNzYsIDEyOCwgODYsIAorICAgIDY5LCA3MiwgNzMsIDY3LCA3NiwgNjksIDEyOCwgODYsIDY5LCA3MiwgMTI4LCA4NiwgNjksIDIwMCwgODYsIDY5LCA2OSwgCisgICAgMTI4LCA4NiwgNjksIDE5NywgODYsIDY5LCA2OCwgNjksIDEyOCwgODYsIDY5LCA2NywgODQsIDc5LCAyMTAsIDg2LCA2NSwgCisgICAgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDg2LCA2NSwgODgsIDEyOCwgODYsIDY1LCA4NiwgMTI4LCA4NiwgNjUsIDIxNCwgCisgICAgODYsIDY1LCA4NSwgMTI4LCA4NiwgNjUsIDg0LCA3MiwgODksIDEyOCwgODYsIDY1LCA4NCwgMTI4LCA4NiwgNjUsIDgzLCAKKyAgICA4NCwgNzgsIDY5LCA4MywgMjExLCA4NiwgNjUsIDgzLCA3MywgODMsIDEyOCwgODYsIDY1LCA4MiwgODksIDIxMSwgODYsIAorICAgIDY1LCA4MiwgNzMsIDc1LCA2NSwgMTI4LCA4NiwgNjUsIDgyLCA3MywgNjUsIDc4LCAyMTIsIDg2LCA2NSwgODIsIDczLCA2NSwgCisgICAgMTI4LCA4NiwgNjUsIDgyLCA3MywgMTkzLCA4NiwgNjUsIDgyLCA2OSwgNzMsIDY1LCAyMDEsIDg2LCA2NSwgODIsIDY5LCAKKyAgICA3MywgMTkzLCA4NiwgNjUsIDgwLCA3OSwgODUsIDgyLCA4MywgMTI4LCA4NiwgNjUsIDgwLCAxMjgsIDg2LCA2NSwgNzgsIAorICAgIDY5LCAxMjgsIDg2LCA2NSwgNzcsIDY1LCA3MSwgNzksIDc3LCA4NSwgNzUsIDcyLCA2NSwgMTI4LCA4NiwgNjUsIDc3LCA2NSwgCisgICAgNzEsIDc5LCA3NywgODUsIDc1LCA3MiwgMTkzLCA4NiwgNjUsIDc2LCA3NiwgNjksIDg5LCAxMjgsIDg2LCA2NSwgNzMsIAorICAgIDEyOCwgODYsIDY1LCA3MiwgMTI4LCA4NiwgNjUsIDY1LCA4NiwgODUsIDEyOCwgODYsIDY1LCA2NSwgMTI4LCA4NiwgNDgsIAogICAgIDUyLCA0OCwgNjUsIDEyOCwgODYsIDQ4LCA1MiwgNDgsIDEyOCwgODYsIDQ4LCA1MSwgNTcsIDEyOCwgODYsIDQ4LCA1MSwgCiAgICAgNTYsIDEyOCwgODYsIDQ4LCA1MSwgNTUsIDY1LCAxMjgsIDg2LCA0OCwgNTEsIDU1LCAxMjgsIDg2LCA0OCwgNTEsIDU0LCAKICAgICAxMjgsIDg2LCA0OCwgNTEsIDUzLCAxMjgsIDg2LCA0OCwgNTEsIDUyLCAxMjgsIDg2LCA0OCwgNTEsIDUxLCA2NSwgMTI4LCAKQEAgLTM2NSwxNSArNDU2LDE2IEBACiAgICAgODUsIDg1LCA4NSwgNTAsIDEyOCwgODUsIDg1LCA2OSwgMTI4LCA4NSwgODQsIDg1LCA3NSwgNzMsIDEyOCwgODUsIDgzLCAKICAgICA4MywgODUsIDUxLCAxMjgsIDg1LCA4MywgODMsIDg1LCAxMjgsIDg1LCA4MywgNzIsIDg4LCAxMjgsIDg1LCA4MywgNzIsIAogICAgIDg1LCA3NywgODgsIDEyOCwgODUsIDgzLCA3MiwgNjksIDc4LCA3OCwgNjUsIDEyOCwgODUsIDgzLCA3MiwgNTAsIDEyOCwgCi0gICAgODUsIDgzLCA3MiwgMTI4LCA4NSwgODMsIDIwMCwgODUsIDgzLCA2OSwgMTk2LCA4NSwgODMsIDY5LCAxMjgsIDg1LCA4MiwgCi0gICAgODUsIDIxOCwgODUsIDgyLCA4NSwgODMsIDEyOCwgODUsIDgyLCA4NSwgNjgsIDY1LCAxMjgsIDg1LCA4MiwgODUsIDY4LCAKLSAgICAxOTMsIDg1LCA4MiwgODUsIDEyOCwgODUsIDgyLCAyMTMsIDg1LCA4MiwgNzgsIDEyOCwgODUsIDgyLCA3MywgNzgsIDY5LCAKLSAgICAxMjgsIDg1LCA4MiwgNzMsIDUxLCAxMjgsIDg1LCA4MiwgNzMsIDEyOCwgODUsIDgyLCA2NSwgNzgsIDg1LCA4MywgMTI4LCAKLSAgICA4NSwgODIsIDY1LCAxMjgsIDg1LCA4MiwgNTIsIDEyOCwgODUsIDgyLCA1MCwgMTI4LCA4NSwgODIsIDE3OCwgODUsIDgwLCAKLSAgICA4NywgNjUsIDgyLCA2OCwgODMsIDEyOCwgODUsIDgwLCA4NywgNjUsIDgyLCA2OCwgMjExLCA4NSwgODAsIDg3LCA2NSwgODIsIAotICAgIDY4LCAxMjgsIDg1LCA4MCwgODcsIDY1LCA4MiwgMTk2LCA4NSwgODAsIDg0LCA4NSwgODIsIDc4LCAxMjgsIDg1LCA4MCwgCi0gICAgODMsIDczLCA3NiwgNzksIDc4LCAxMjgsIDg1LCA4MCwgODMsIDczLCA3NiwgNzksIDIwNiwgODUsIDgwLCA4MiwgNzMsIDcxLCAKLSAgICA3MiwgMjEyLCA4NSwgODAsIDgwLCA2OSwgMjEwLCA4NSwgODAsIDY1LCA2OCwgNzIsIDc3LCA2NSwgNzgsIDczLCA4OSwgNjUsIAorICAgIDg1LCA4MywgNzIsIDEyOCwgODUsIDgzLCAyMDAsIDg1LCA4MywgNjksIDE5NiwgODUsIDgzLCA2OSwgNDUsIDUwLCAxMjgsIAorICAgIDg1LCA4MywgNjksIDQ1LCA0OSwgMTI4LCA4NSwgODMsIDY5LCAxMjgsIDg1LCA4MywgMTk3LCA4NSwgODIsIDg1LCAyMTgsIAorICAgIDg1LCA4MiwgODUsIDgzLCAxMjgsIDg1LCA4MiwgODUsIDY4LCA2NSwgMTI4LCA4NSwgODIsIDg1LCA2OCwgMTkzLCA4NSwgCisgICAgODIsIDg1LCAxMjgsIDg1LCA4MiwgMjEzLCA4NSwgODIsIDc4LCAxMjgsIDg1LCA4MiwgNzMsIDc4LCA2OSwgMTI4LCA4NSwgCisgICAgODIsIDczLCA1MSwgMTI4LCA4NSwgODIsIDczLCAxMjgsIDg1LCA4MiwgNjUsIDc4LCA4NSwgODMsIDEyOCwgODUsIDgyLCAKKyAgICA2NSwgMTI4LCA4NSwgODIsIDUyLCAxMjgsIDg1LCA4MiwgNTAsIDEyOCwgODUsIDgyLCAxNzgsIDg1LCA4MCwgODcsIDY1LCAKKyAgICA4MiwgNjgsIDgzLCAxMjgsIDg1LCA4MCwgODcsIDY1LCA4MiwgNjgsIDIxMSwgODUsIDgwLCA4NywgNjUsIDgyLCA2OCwgCisgICAgMTI4LCA4NSwgODAsIDg3LCA2NSwgODIsIDE5NiwgODUsIDgwLCA4NCwgODUsIDgyLCA3OCwgMTI4LCA4NSwgODAsIDgzLCAKKyAgICA3MywgNzYsIDc5LCA3OCwgMTI4LCA4NSwgODAsIDgzLCA3MywgNzYsIDc5LCAyMDYsIDg1LCA4MCwgODIsIDczLCA3MSwgNzIsIAorICAgIDIxMiwgODUsIDgwLCA4MCwgNjksIDIxMCwgODUsIDgwLCA2NSwgNjgsIDcyLCA3NywgNjUsIDc4LCA3MywgODksIDY1LCAKICAgICAxMjgsIDg1LCA4MCwgNDUsIDgwLCA3OSwgNzMsIDc4LCA4NCwgNzMsIDc4LCAxOTksIDg1LCA3OSwgNzgsIDEyOCwgODUsIAogICAgIDc4LCA3OCwgMTI4LCA4NSwgNzgsIDc3LCA2NSwgODIsIDgyLCA3MywgNjksIDE5NiwgODUsIDc4LCA3NSwgNzgsIDc5LCA4NywgCiAgICAgNzgsIDEyOCwgODUsIDc4LCA3MywgODYsIDY5LCA4MiwgODMsIDY1LCAyMDQsIDg1LCA3OCwgNzMsIDg0LCA4OSwgMTI4LCAKQEAgLTM4OCwxMDAgKzQ4MCwxMDQgQEAKICAgICAxMjgsIDg1LCA3NSwgODUsIDEyOCwgODUsIDc1LCA4MiwgNjUsIDczLCA3OCwgNzMsIDY1LCAyMDYsIDg1LCA3NSwgNjUsIAogICAgIDgyLCA2NSwgMTI4LCA4NSwgNzUsIDY1LCA4MiwgMTkzLCA4NSwgNzUsIDEyOCwgODUsIDczLCA3NiwgNzYsIDY5LCA2NSwgCiAgICAgNzgsIDc4LCAxMjgsIDg1LCA3MywgNzEsIDcyLCA4NSwgMjEwLCA4NSwgNzEsIDY1LCA4MiwgNzMsIDg0LCA3MywgMTk1LCAKLSAgICA4NSwgNjksIDg5LCAxMjgsIDg1LCA2OSwgNjksIDEyOCwgODUsIDY5LCA2NSwgMTI4LCA4NSwgNjgsIDg1LCA3MSwgMTI4LCAKLSAgICA4NSwgNjgsIDY1LCA4NCwgODQsIDY1LCAxMjgsIDg1LCA2OCwgNjUsIDg0LCA4NCwgMTkzLCA4NSwgNjgsIDY1LCA2NSwgODQsIAotICAgIDEyOCwgODUsIDY4LCAxMjgsIDg1LCAxOTYsIDg1LCA2NywgMTI4LCA4NSwgNjYsIDg1LCA3MCwgNzMsIDc2LCA3MywgMTI4LCAKLSAgICA4NSwgNjYsIDcyLCA2NSwgODksIDY1LCA4NCwgMjA3LCA4NSwgNjYsIDY1LCA2OCwgNjUsIDc3LCA2NSwgMTI4LCA4NSwgNjYsIAotICAgIDEyOCwgODUsIDY1LCA4NCwgNzIsIDEyOCwgODUsIDY1LCAxMjgsIDg1LCAxNzgsIDg1LCA0OCwgNTIsIDUwLCAxMjgsIDg1LCAKLSAgICA0OCwgNTIsIDQ5LCAxMjgsIDg1LCA0OCwgNTIsIDQ4LCAxMjgsIDg1LCA0OCwgNTEsIDU3LCAxMjgsIDg1LCA0OCwgNTEsIAotICAgIDU2LCAxMjgsIDg1LCA0OCwgNTEsIDU1LCAxMjgsIDg1LCA0OCwgNTEsIDU0LCAxMjgsIDg1LCA0OCwgNTEsIDUzLCAxMjgsIAotICAgIDg1LCA0OCwgNTEsIDUyLCAxMjgsIDg1LCA0OCwgNTEsIDUxLCAxMjgsIDg1LCA0OCwgNTEsIDUwLCA2NSwgMTI4LCA4NSwgCi0gICAgNDgsIDUxLCA1MCwgMTI4LCA4NSwgNDgsIDUxLCA0OSwgMTI4LCA4NSwgNDgsIDUxLCA0OCwgMTI4LCA4NSwgNDgsIDUwLCAKLSAgICA1NywgNjUsIDEyOCwgODUsIDQ4LCA1MCwgNTcsIDEyOCwgODUsIDQ4LCA1MCwgNTYsIDEyOCwgODUsIDQ4LCA1MCwgNTUsIAotICAgIDEyOCwgODUsIDQ4LCA1MCwgNTQsIDEyOCwgODUsIDQ4LCA1MCwgNTMsIDEyOCwgODUsIDQ4LCA1MCwgNTIsIDEyOCwgODUsIAotICAgIDQ4LCA1MCwgNTEsIDY1LCAxMjgsIDg1LCA0OCwgNTAsIDUxLCAxMjgsIDg1LCA0OCwgNTAsIDUwLCAxMjgsIDg1LCA0OCwgCi0gICAgNTAsIDQ5LCAxMjgsIDg1LCA0OCwgNTAsIDQ4LCAxMjgsIDg1LCA0OCwgNDksIDU3LCAxMjgsIDg1LCA0OCwgNDksIDU2LCAKLSAgICAxMjgsIDg1LCA0OCwgNDksIDU1LCAxMjgsIDg1LCA0OCwgNDksIDU0LCAxMjgsIDg1LCA0OCwgNDksIDUzLCAxMjgsIDg1LCAKLSAgICA0OCwgNDksIDUyLCAxMjgsIDg1LCA0OCwgNDksIDUxLCAxMjgsIDg1LCA0OCwgNDksIDUwLCAxMjgsIDg1LCA0OCwgNDksIAotICAgIDQ5LCAxMjgsIDg1LCA0OCwgNDksIDQ4LCAxMjgsIDg1LCA0OCwgNDgsIDU3LCAxMjgsIDg1LCA0OCwgNDgsIDU2LCAxMjgsIAotICAgIDg1LCA0OCwgNDgsIDU1LCAxMjgsIDg1LCA0OCwgNDgsIDU0LCA2NiwgMTI4LCA4NSwgNDgsIDQ4LCA1NCwgNjUsIDEyOCwgCi0gICAgODUsIDQ4LCA0OCwgNTQsIDEyOCwgODUsIDQ4LCA0OCwgNTMsIDEyOCwgODUsIDQ4LCA0OCwgNTIsIDEyOCwgODUsIDQ4LCAKLSAgICA0OCwgNTEsIDEyOCwgODUsIDQ4LCA0OCwgNTAsIDEyOCwgODUsIDQ4LCA0OCwgNDksIDEyOCwgODUsIDQ1LCA3MywgNDUsIAotICAgIDczLCAxMjgsIDg1LCA0NSwgNjksIDc5LCA0NSwgNjksIDg1LCAxMjgsIDg0LCA5MCwgODUsIDEyOCwgODQsIDkwLCA3OSwgCi0gICAgNjUsIDEyOCwgODQsIDkwLCA3OSwgMTI4LCA4NCwgOTAsIDczLCAyMTAsIDg0LCA5MCwgNzMsIDEyOCwgODQsIDkwLCA2OSwgCi0gICAgNjksIDEyOCwgODQsIDkwLCA2OSwgMTI4LCA4NCwgOTAsIDY1LCA2NSwgMTI4LCA4NCwgOTAsIDY1LCAxMjgsIDg0LCA5MCwgCi0gICAgMTI4LCA4NCwgODksIDIxMCwgODQsIDg5LCA4MCwgNjksIDQ1LCAxODMsIDg0LCA4OSwgODAsIDY5LCA0NSwgMTgyLCA4NCwgCi0gICAgODksIDgwLCA2OSwgNDUsIDE4MSwgODQsIDg5LCA4MCwgNjksIDQ1LCAxODAsIDg0LCA4OSwgODAsIDY5LCA0NSwgMTc5LCAKLSAgICA4NCwgODksIDgwLCA2OSwgNDUsIDE3OCwgODQsIDg5LCA4MCwgNjksIDQ1LCAxNzcsIDg0LCA4OSwgODAsIDE5NywgODQsIAotICAgIDg5LCA3OSwgMTI4LCA4NCwgODksIDczLCAxMjgsIDg0LCA4OSwgNjksIDEyOCwgODQsIDg5LCA2NSwgMTI4LCA4NCwgODcsIAotICAgIDc5LCA3OSwgMTI4LCA4NCwgODcsIDc5LCA0NSwgODcsIDY1LCAyMTcsIDg0LCA4NywgNzksIDQ1LCA4NCwgNzIsIDczLCA4MiwgCi0gICAgODQsIDg5LCAxMjgsIDg0LCA4NywgNzksIDQ1LCA3NiwgNzMsIDc4LCAxOTcsIDg0LCA4NywgNzksIDQ1LCA3MiwgNjksIDY1LCAKLSAgICA2OCwgNjksIDE5NiwgODQsIDg3LCA3MywgODMsIDg0LCA2OSwgMTk2LCA4NCwgODcsIDczLCA3MywgMTI4LCA4NCwgODcsIAotICAgIDczLCAxMjgsIDg0LCA4NywgNjksIDc4LCA4NCwgODksIDQ1LCA4NCwgODcsIDc5LCAxMjgsIDg0LCA4NywgNjksIDc4LCA4NCwgCi0gICAgODksIDQ1LCA4NCwgNzIsIDgyLCA2OSwgNjksIDEyOCwgODQsIDg3LCA2OSwgNzgsIDg0LCA4OSwgNDUsIDgzLCA3MywgODgsIAotICAgIDEyOCwgODQsIDg3LCA2OSwgNzgsIDg0LCA4OSwgNDUsIDgzLCA2OSwgODYsIDY5LCA3OCwgMTI4LCA4NCwgODcsIDY5LCA3OCwgCi0gICAgODQsIDg5LCA0NSwgNzksIDc4LCA2OSwgMTI4LCA4NCwgODcsIDY5LCA3OCwgODQsIDg5LCA0NSwgNzgsIDczLCA3OCwgNjksIAotICAgIDEyOCwgODQsIDg3LCA2OSwgNzgsIDg0LCA4OSwgNDUsIDcwLCA3OSwgODUsIDgyLCAxMjgsIDg0LCA4NywgNjksIDc4LCA4NCwgCi0gICAgODksIDQ1LCA3MCwgNzMsIDg2LCA2OSwgMTI4LCA4NCwgODcsIDY5LCA3OCwgODQsIDg5LCA0NSwgNjksIDczLCA3MSwgNzIsIAotICAgIDg0LCAyMDAsIDg0LCA4NywgNjksIDc4LCA4NCwgODksIDQ1LCA2OSwgNzMsIDcxLCA3MiwgODQsIDEyOCwgODQsIDg3LCA2OSwgCi0gICAgNzgsIDg0LCA4OSwgMTI4LCA4NCwgODcsIDY5LCA3OCwgODQsIDIxNywgODQsIDg3LCA2OSwgNzYsIDg2LCA2OSwgNDUsIDg0LCAKLSAgICA3MiwgNzMsIDgyLCA4NCwgODksIDEyOCwgODQsIDg3LCA2OSwgNzYsIDg2LCA2OSwgMTI4LCA4NCwgODcsIDY5LCA3NiwgODYsIAotICAgIDE5NywgODQsIDg3LCA2OSwgMTI4LCA4NCwgODcsIDY1LCA2NSwgMTI4LCA4NCwgODcsIDY1LCAxMjgsIDg0LCA4NiwgODIsIAotICAgIDczLCA2OCwgNzksIDEyOCwgODQsIDg2LCA3MywgNzcsIDY1LCA2OCwgODUsIDIxMCwgODQsIDg1LCA4OCwgMTI4LCA4NCwgCi0gICAgODUsIDg1LCA3NywgODUsIDEyOCwgODQsIDg1LCA4NCwgODQsIDg5LCAxMjgsIDg0LCA4NSwgODQsIDY5LCA4OSwgNjUsIDgzLCAKLSAgICA2NSwgODQsIDEyOCwgODQsIDg1LCA4NCwgMTI4LCA4NCwgODUsIDgyLCA4OCwgMTI4LCA4NCwgODUsIDgyLCA4NSwgMTI4LCAKLSAgICA4NCwgODUsIDgyLCA4NCwgNzYsIDY5LCAxMjgsIDg0LCA4NSwgODIsIDc5LCA1MCwgMTI4LCA4NCwgODUsIDgyLCA3OCwgODMsIAotICAgIDg0LCA3MywgNzYsIDY5LCAxMjgsIDg0LCA4NSwgODIsIDc4LCA2OSwgMTk2LCA4NCwgODUsIDgyLCAyMDYsIDg0LCA4NSwgCi0gICAgODIsIDY2LCA2NSwgNzgsIDEyOCwgODQsIDg1LCA4MiwgMTI4LCA4NCwgODUsIDgwLCAxMjgsIDg0LCA4NSwgNzksIDg4LCAKLSAgICAxMjgsIDg0LCA4NSwgNzksIDg0LCAxMjgsIDg0LCA4NSwgNzksIDgwLCAxMjgsIDg0LCA4NSwgNzksIDEyOCwgODQsIDg1LCAKLSAgICA3OCwgNzgsIDg5LCAxMjgsIDg0LCA4NSwgNzcsIDY5LCA4NCwgNjksIDgzLCAxMjgsIDg0LCA4NSwgNzcsIDY1LCA2OSwgCi0gICAgMTI4LCA4NCwgODUsIDc3LCAxMjgsIDg0LCA4NSwgNzYsIDczLCA4MCwgMTI4LCA4NCwgODUsIDc1LCA4NywgNjksIDc4LCAKLSAgICA4NCwgNzMsIDgzLCAxMjgsIDg0LCA4NSwgNzUsIDEyOCwgODQsIDg1LCA3MSwgODIsIDczLCAyMDMsIDg0LCA4NSwgNzEsIAotICAgIDUwLCAxMjgsIDg0LCA4NSwgNzEsIDE3OCwgODQsIDg1LCA2NSwgODIsIDY5LCAxOTksIDg0LCA4NSwgNjUsIDY5LCA4MCwgCi0gICAgMTI4LCA4NCwgODUsIDY1LCA2OSwgMTI4LCA4NCwgMjEzLCA4NCwgODQsIDg1LCA2OCwgNjgsIDY1LCA3MSwgMTI4LCA4NCwgCi0gICAgODQsIDg1LCA2OCwgNjgsIDY1LCA2NSwgNzEsIDEyOCwgODQsIDg0LCA4NSwgMTI4LCA4NCwgODQsIDg0LCA3MiwgNjUsIAorICAgIDg1LCA2OSwgODksIDEyOCwgODUsIDY5LCA3MywgMTI4LCA4NSwgNjksIDY5LCAxMjgsIDg1LCA2OSwgNjUsIDEyOCwgODUsIAorICAgIDY4LCA4NSwgNzEsIDEyOCwgODUsIDY4LCA2NSwgODQsIDg0LCA2NSwgMTI4LCA4NSwgNjgsIDY1LCA4NCwgODQsIDE5MywgCisgICAgODUsIDY4LCA2NSwgNjUsIDg0LCAxMjgsIDg1LCA2OCwgMTI4LCA4NSwgMTk2LCA4NSwgNjcsIDEyOCwgODUsIDY2LCA4NSwgCisgICAgNzAsIDczLCA3NiwgNzMsIDEyOCwgODUsIDY2LCA3MiwgNjUsIDg5LCA2NSwgODQsIDIwNywgODUsIDY2LCA2NSwgNjgsIDY1LCAKKyAgICA3NywgNjUsIDEyOCwgODUsIDY2LCAxMjgsIDg1LCA2NSwgODQsIDcyLCAxMjgsIDg1LCA2NSwgNzgsIDcxLCAxMjgsIDg1LCAKKyAgICA2NSwgMTI4LCA4NSwgMTc4LCA4NSwgNDgsIDUyLCA1MCwgMTI4LCA4NSwgNDgsIDUyLCA0OSwgMTI4LCA4NSwgNDgsIDUyLCAKKyAgICA0OCwgMTI4LCA4NSwgNDgsIDUxLCA1NywgMTI4LCA4NSwgNDgsIDUxLCA1NiwgMTI4LCA4NSwgNDgsIDUxLCA1NSwgMTI4LCAKKyAgICA4NSwgNDgsIDUxLCA1NCwgMTI4LCA4NSwgNDgsIDUxLCA1MywgMTI4LCA4NSwgNDgsIDUxLCA1MiwgMTI4LCA4NSwgNDgsIAorICAgIDUxLCA1MSwgMTI4LCA4NSwgNDgsIDUxLCA1MCwgNjUsIDEyOCwgODUsIDQ4LCA1MSwgNTAsIDEyOCwgODUsIDQ4LCA1MSwgCisgICAgNDksIDEyOCwgODUsIDQ4LCA1MSwgNDgsIDEyOCwgODUsIDQ4LCA1MCwgNTcsIDY1LCAxMjgsIDg1LCA0OCwgNTAsIDU3LCAKKyAgICAxMjgsIDg1LCA0OCwgNTAsIDU2LCAxMjgsIDg1LCA0OCwgNTAsIDU1LCAxMjgsIDg1LCA0OCwgNTAsIDU0LCAxMjgsIDg1LCAKKyAgICA0OCwgNTAsIDUzLCAxMjgsIDg1LCA0OCwgNTAsIDUyLCAxMjgsIDg1LCA0OCwgNTAsIDUxLCA2NSwgMTI4LCA4NSwgNDgsIAorICAgIDUwLCA1MSwgMTI4LCA4NSwgNDgsIDUwLCA1MCwgMTI4LCA4NSwgNDgsIDUwLCA0OSwgMTI4LCA4NSwgNDgsIDUwLCA0OCwgCisgICAgMTI4LCA4NSwgNDgsIDQ5LCA1NywgMTI4LCA4NSwgNDgsIDQ5LCA1NiwgMTI4LCA4NSwgNDgsIDQ5LCA1NSwgMTI4LCA4NSwgCisgICAgNDgsIDQ5LCA1NCwgMTI4LCA4NSwgNDgsIDQ5LCA1MywgMTI4LCA4NSwgNDgsIDQ5LCA1MiwgMTI4LCA4NSwgNDgsIDQ5LCAKKyAgICA1MSwgMTI4LCA4NSwgNDgsIDQ5LCA1MCwgMTI4LCA4NSwgNDgsIDQ5LCA0OSwgMTI4LCA4NSwgNDgsIDQ5LCA0OCwgMTI4LCAKKyAgICA4NSwgNDgsIDQ4LCA1NywgMTI4LCA4NSwgNDgsIDQ4LCA1NiwgMTI4LCA4NSwgNDgsIDQ4LCA1NSwgMTI4LCA4NSwgNDgsIAorICAgIDQ4LCA1NCwgNjYsIDEyOCwgODUsIDQ4LCA0OCwgNTQsIDY1LCAxMjgsIDg1LCA0OCwgNDgsIDU0LCAxMjgsIDg1LCA0OCwgCisgICAgNDgsIDUzLCAxMjgsIDg1LCA0OCwgNDgsIDUyLCAxMjgsIDg1LCA0OCwgNDgsIDUxLCAxMjgsIDg1LCA0OCwgNDgsIDUwLCAKKyAgICAxMjgsIDg1LCA0OCwgNDgsIDQ5LCAxMjgsIDg1LCA0NSwgNzMsIDQ1LCA3MywgMTI4LCA4NSwgNDUsIDY5LCA3OSwgNDUsIAorICAgIDY5LCA4NSwgMTI4LCA4NSwgNDUsIDY2LCA4MiwgNzQsIDcxLCA4NSwgMTI4LCA4NCwgOTAsIDg1LCAxMjgsIDg0LCA5MCwgCisgICAgNzksIDY1LCAxMjgsIDg0LCA5MCwgNzksIDEyOCwgODQsIDkwLCA3MywgMjEwLCA4NCwgOTAsIDczLCAxMjgsIDg0LCA5MCwgCisgICAgNjksIDY5LCAxMjgsIDg0LCA5MCwgNjksIDEyOCwgODQsIDkwLCA2NSwgNjUsIDEyOCwgODQsIDkwLCA2NSwgMTI4LCA4NCwgCisgICAgOTAsIDEyOCwgODQsIDg5LCAyMTAsIDg0LCA4OSwgODAsIDY5LCA0NSwgMTgzLCA4NCwgODksIDgwLCA2OSwgNDUsIDE4MiwgCisgICAgODQsIDg5LCA4MCwgNjksIDQ1LCAxODEsIDg0LCA4OSwgODAsIDY5LCA0NSwgMTgwLCA4NCwgODksIDgwLCA2OSwgNDUsIAorICAgIDE3OSwgODQsIDg5LCA4MCwgNjksIDQ1LCAxNzgsIDg0LCA4OSwgODAsIDY5LCA0NSwgMTc3LCA4NCwgODksIDgwLCAxOTcsIAorICAgIDg0LCA4OSwgNzksIDEyOCwgODQsIDg5LCA3MywgMTI4LCA4NCwgODksIDY5LCAxMjgsIDg0LCA4OSwgNjUsIDEyOCwgODQsIAorICAgIDg3LCA3OSwgNzksIDEyOCwgODQsIDg3LCA3OSwgNDUsIDg3LCA2NSwgMjE3LCA4NCwgODcsIDc5LCA0NSwgODQsIDcyLCA3MywgCisgICAgODIsIDg0LCA4OSwgMTI4LCA4NCwgODcsIDc5LCA0NSwgNzYsIDczLCA3OCwgMTk3LCA4NCwgODcsIDc5LCA0NSwgNzIsIDY5LCAKKyAgICA2NSwgNjgsIDY5LCAxOTYsIDg0LCA4NywgNzksIDQ1LCA2OSwgMjA1LCA4NCwgODcsIDczLCA4MywgODQsIDY5LCAxOTYsIAorICAgIDg0LCA4NywgNzMsIDczLCAxMjgsIDg0LCA4NywgNzMsIDEyOCwgODQsIDg3LCA2OSwgNzgsIDg0LCA4OSwgNDUsIDg0LCA4NywgCisgICAgNzksIDEyOCwgODQsIDg3LCA2OSwgNzgsIDg0LCA4OSwgNDUsIDg0LCA3MiwgODIsIDY5LCA2OSwgMTI4LCA4NCwgODcsIDY5LCAKKyAgICA3OCwgODQsIDg5LCA0NSwgODMsIDczLCA4OCwgMTI4LCA4NCwgODcsIDY5LCA3OCwgODQsIDg5LCA0NSwgODMsIDY5LCA4NiwgCisgICAgNjksIDc4LCAxMjgsIDg0LCA4NywgNjksIDc4LCA4NCwgODksIDQ1LCA3OSwgNzgsIDY5LCAxMjgsIDg0LCA4NywgNjksIDc4LCAKKyAgICA4NCwgODksIDQ1LCA3OCwgNzMsIDc4LCA2OSwgMTI4LCA4NCwgODcsIDY5LCA3OCwgODQsIDg5LCA0NSwgNzAsIDc5LCA4NSwgCisgICAgODIsIDEyOCwgODQsIDg3LCA2OSwgNzgsIDg0LCA4OSwgNDUsIDcwLCA3MywgODYsIDY5LCAxMjgsIDg0LCA4NywgNjksIDc4LCAKKyAgICA4NCwgODksIDQ1LCA2OSwgNzMsIDcxLCA3MiwgODQsIDIwMCwgODQsIDg3LCA2OSwgNzgsIDg0LCA4OSwgNDUsIDY5LCA3MywgCisgICAgNzEsIDcyLCA4NCwgMTI4LCA4NCwgODcsIDY5LCA3OCwgODQsIDg5LCAxMjgsIDg0LCA4NywgNjksIDc4LCA4NCwgMjE3LCAKKyAgICA4NCwgODcsIDY5LCA3NiwgODYsIDY5LCA0NSwgODQsIDcyLCA3MywgODIsIDg0LCA4OSwgMTI4LCA4NCwgODcsIDY5LCA3NiwgCisgICAgODYsIDY5LCAxMjgsIDg0LCA4NywgNjksIDc2LCA4NiwgMTk3LCA4NCwgODcsIDY5LCAxMjgsIDg0LCA4NywgNjUsIDY1LCAKKyAgICAxMjgsIDg0LCA4NywgNjUsIDEyOCwgODQsIDg2LCA4MiwgNzMsIDY4LCA3OSwgMTI4LCA4NCwgODYsIDczLCA3NywgNjUsIAorICAgIDY4LCA4NSwgMjEwLCA4NCwgODUsIDg4LCAxMjgsIDg0LCA4NSwgODUsIDc3LCA4NSwgMTI4LCA4NCwgODUsIDg1LCAxMjgsIAorICAgIDg0LCA4NSwgODQsIDg0LCA4OSwgMTI4LCA4NCwgODUsIDg0LCA2OSwgODksIDY1LCA4MywgNjUsIDg0LCAxMjgsIDg0LCA4NSwgCisgICAgODQsIDEyOCwgODQsIDg1LCA4MiwgODgsIDEyOCwgODQsIDg1LCA4MiwgODUsIDEyOCwgODQsIDg1LCA4MiwgODQsIDc2LCAKKyAgICA2OSwgMTI4LCA4NCwgODUsIDgyLCA3OSwgNTAsIDEyOCwgODQsIDg1LCA4MiwgNzgsIDgzLCA4NCwgNzMsIDc2LCA2OSwgCisgICAgMTI4LCA4NCwgODUsIDgyLCA3OCwgNjksIDE5NiwgODQsIDg1LCA4MiwgMjA2LCA4NCwgODUsIDgyLCA2NiwgNjUsIDc4LCAKKyAgICAxMjgsIDg0LCA4NSwgODIsIDEyOCwgODQsIDg1LCA4MCwgMTI4LCA4NCwgODUsIDc5LCA4OCwgMTI4LCA4NCwgODUsIDc5LCAKKyAgICA4NCwgMTI4LCA4NCwgODUsIDc5LCA4MCwgMTI4LCA4NCwgODUsIDc5LCAxMjgsIDg0LCA4NSwgNzgsIDc4LCA4OSwgMTI4LCAKKyAgICA4NCwgODUsIDc3LCA2OSwgODQsIDY5LCA4MywgMTI4LCA4NCwgODUsIDc3LCA2NSwgNjksIDEyOCwgODQsIDg1LCA3NywgCisgICAgMTI4LCA4NCwgODUsIDc2LCA3MywgODAsIDEyOCwgODQsIDg1LCA3NSwgODcsIDY5LCA3OCwgODQsIDczLCA4MywgMTI4LCAKKyAgICA4NCwgODUsIDc1LCAxMjgsIDg0LCA4NSwgNzEsIDgyLCA3MywgMjAzLCA4NCwgODUsIDcxLCA1MCwgMTI4LCA4NCwgODUsIAorICAgIDcxLCAxNzgsIDg0LCA4NSwgNjUsIDgyLCA2OSwgMTk5LCA4NCwgODUsIDY1LCA2OSwgODAsIDEyOCwgODQsIDg1LCA2NSwgCisgICAgNjksIDEyOCwgODQsIDIxMywgODQsIDg0LCA4NSwgODUsIDEyOCwgODQsIDg0LCA4NSwgNjgsIDY4LCA2NSwgNzEsIDEyOCwgCisgICAgODQsIDg0LCA4NSwgNjgsIDY4LCA2NSwgNjUsIDcxLCAxMjgsIDg0LCA4NCwgODUsIDEyOCwgODQsIDg0LCA4NCwgNzIsIDY1LCAKICAgICAxMjgsIDg0LCA4NCwgODQsIDY1LCAxMjgsIDg0LCA4NCwgODMsIDg1LCAxMjgsIDg0LCA4NCwgODMsIDc5LCAxMjgsIDg0LCAKICAgICA4NCwgODMsIDczLCAxMjgsIDg0LCA4NCwgODMsIDY5LCA2OSwgMTI4LCA4NCwgODQsIDgzLCA2OSwgMTI4LCA4NCwgODQsIAotICAgIDgzLCA2NSwgMTI4LCA4NCwgODQsIDczLCAxMjgsIDg0LCA4NCwgNzIsIDg3LCA2OSwgMTI4LCA4NCwgODQsIDcyLCA4NSwgCi0gICAgMTI4LCA4NCwgODQsIDcyLCA3OSwgNzksIDEyOCwgODQsIDg0LCA3MiwgNzksIDEyOCwgODQsIDg0LCA3MiwgNzMsIDEyOCwgCi0gICAgODQsIDg0LCA3MiwgNjksIDY5LCAxMjgsIDg0LCA4NCwgNzIsIDY5LCAxMjgsIDg0LCA4NCwgNzIsIDY1LCA2NSwgMTI4LCAKLSAgICA4NCwgODQsIDcyLCAxMjgsIDg0LCA4NCwgNjksIDcyLCA2OSwgNzIsIDEyOCwgODQsIDg0LCA2OSwgNzIsIDY5LCAyMDAsIAotICAgIDg0LCA4NCwgNjksIDcyLCAxMjgsIDg0LCA4NCwgNjksIDIwMCwgODQsIDg0LCA2OSwgNjksIDEyOCwgODQsIDg0LCA2NSwgCi0gICAgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDg0LCA4NCwgNjUsIDY1LCAxMjgsIDg0LCA4NCwgNTAsIDEyOCwgODQsIDgzLCAKLSAgICA4NywgNjksIDEyOCwgODQsIDgzLCA4NywgNjUsIDEyOCwgODQsIDgzLCA4NiwgMTI4LCA4NCwgODMsIDgzLCA2OSwgMTI4LCAKLSAgICA4NCwgODMsIDcyLCA4NSwgNzEsIDgzLCAxMjgsIDg0LCA4MywgNzIsIDc5LCA3OSwgNzUsIDEyOCwgODQsIDgzLCA3MiwgNzksIAotICAgIDc5LCAyMDMsIDg0LCA4MywgNzIsIDY5LCA4MywgMTI4LCA4NCwgODMsIDcyLCA2OSwgNzEsIDEyOCwgODQsIDgzLCA3MiwgCi0gICAgNjksIDE5OSwgODQsIDgzLCA3MiwgNjksIDEyOCwgODQsIDgzLCA3MiwgNjUsIDEyOCwgODQsIDgzLCA2OSwgODIsIDY5LCAKLSAgICAxMjgsIDg0LCA4MywgNjUsIDY4LCA3MywgMTI4LCA4NCwgODMsIDY1LCA2OCwgMjAxLCA4NCwgODMsIDY1LCA2NSwgNjgsIAotICAgIDczLCA4OSwgMTI4LCA4NCwgODMsIDY1LCA2NSwgMTI4LCA4NCwgODMsIDE5MywgODQsIDgyLCA4OSwgNjYsIDc2LCA3MywgCi0gICAgNzksIDIwNiwgODQsIDgyLCA4NSwgODQsIDcyLCAxMjgsIDg0LCA4MiwgODUsIDc4LCA3NSwgMTI4LCA4NCwgODIsIDg1LCAKLSAgICA3OCwgNjcsIDY1LCA4NCwgNjksIDE5NiwgODQsIDgyLCA4NSwgNzcsIDgwLCA2OSwgODQsIDEyOCwgODQsIDgyLCA4NSwgNjksIAotICAgIDEyOCwgODQsIDgyLCA4NSwgNjcsIDc1LCAxMjgsIDg0LCA4MiwgNzksIDgwLCA3MywgNjcsIDY1LCAyMDQsIDg0LCA4MiwgCi0gICAgNzksIDgwLCA3MiwgODksIDEyOCwgODQsIDgyLCA3OSwgNzcsIDczLCA3NSwgNzksIDgzLCA4OSwgNzgsIDY1LCA3MSwgNzcsIAotICAgIDY1LCAxMjgsIDg0LCA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCA4MCwgODMsIDczLCA3MCwgNzMsIDgzLCA4NCwgNzksIDc4LCAKLSAgICAxMjgsIDg0LCA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCA4MCwgNjUsIDgyLCA2NSwgNzUsIDY1LCA3NiwgNjksIDgzLCA3NywgCi0gICAgNjUsIDEyOCwgODQsIDgyLCA3OSwgNzcsIDczLCA3NSwgNzksIDc4LCAxMjgsIDg0LCA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCAKLSAgICAyMDYsIDg0LCA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCA3NiwgODksIDcxLCA3MywgODMsIDc3LCA2NSwgMTI4LCA4NCwgODIsIAotICAgIDc5LCA3NiwgNzYsIDY5LCA4OSwgNjYsIDg1LCA4MywgMTI4LCA4NCwgODIsIDc5LCA3NSwgODUsIDg0LCA2NSwgODMsIDg0LCAKLSAgICAyMDEsIDg0LCA4MiwgNzksIDY5LCA5MCwgNjksIDc4LCA3MywgNjUsIDIwNiwgODQsIDgyLCA3MywgODUsIDc3LCA4MCwgNzIsIAotICAgIDEyOCwgODQsIDgyLCA3MywgODQsIDc5LCAyMTEsIDg0LCA4MiwgNzMsIDg0LCA3MywgNzcsIDc5LCA4MiwgNzMsIDc5LCA3OCwgCi0gICAgMTI4LCA4NCwgODIsIDczLCA4MywgNzMsIDc3LCA3OSwgODUsIDEyOCwgODQsIDgyLCA3MywgODMsIDY5LCA3NywgNjksIAotICAgIDEyOCwgODQsIDgyLCA3MywgODAsIDc5LCA2OCwgMTI4LCA4NCwgODIsIDczLCA4MCwgNzYsIDczLCAxMjgsIDg0LCA4MiwgCi0gICAgNzMsIDgwLCA3NiwgMTk3LCA4NCwgODIsIDczLCA3OSwgMjA2LCA4NCwgODIsIDczLCA3MywgODMsIDY1LCA4MCwgMTI4LCAKLSAgICA4NCwgODIsIDczLCA3MSwgODIsIDY1LCA3NywgNzcsIDc5LCAyMTEsIDg0LCA4MiwgNzMsIDcxLCA4MiwgNjUsIDIwNSwgODQsIAotICAgIDgyLCA3MywgNzEsIDc5LCA4MiwgNzEsIDc5LCA3OCwgMTI4LCA4NCwgODIsIDczLCA3MCwgNzksIDc4LCA3MywgNjUsIDgzLCAKLSAgICAxMjgsIDg0LCA4MiwgNzMsIDcwLCA3OSwgNzYsIDczLCA2NSwgODQsIDE5NywgODQsIDgyLCA3MywgNjgsIDY5LCA3OCwgODQsIAotICAgIDEyOCwgODQsIDgyLCA3MywgNjgsIDY5LCA3OCwgMjEyLCA4NCwgODIsIDczLCA2NywgNzksIDc2LCA3OSwgNzgsIDEyOCwgCi0gICAgODQsIDgyLCA3MywgNjUsIDc4LCA3MSwgODUsIDc2LCA2NSwgMjEwLCA4NCwgODIsIDczLCA2NSwgNzgsIDcxLCA3NiwgNjksIAotICAgIDQ1LCA4MiwgNzksIDg1LCA3OCwgMTk2LCA4NCwgODIsIDczLCA2NSwgNzgsIDcxLCA3NiwgNjksIDQ1LCA3MiwgNjksIDY1LCAKLSAgICA2OCwgNjksIDE5NiwgODQsIDgyLCA3MywgNjUsIDc4LCA3MSwgNzYsIDY5LCAxMjgsIDg0LCA4MiwgNzMsIDY1LCA3OCwgNzEsIAotICAgIDc2LCAxOTcsIDg0LCA4MiwgNzMsIDY1LCAxMjgsIDg0LCA4MiwgNzMsIDEyOCwgODQsIDgyLCA2OSwgODMsIDczLCA3NiwgCi0gICAgNzYsIDc5LCAxMjgsIDg0LCA4MiwgNjksIDc4LCA2OCwgMTI4LCA4NCwgODIsIDY5LCA3OCwgMTk2LCA4NCwgODIsIDY5LCAKLSAgICA3NywgNzksIDc2LCA3OSwgNDUsIDUxLCAxMjgsIDg0LCA4MiwgNjksIDc3LCA3OSwgNzYsIDc5LCA0NSwgNTAsIDEyOCwgODQsIAotICAgIDgyLCA2OSwgNzcsIDc5LCA3NiwgNzksIDQ1LCA0OSwgMTI4LCA4NCwgODIsIDY5LCA2OSwgMTI4LCA4NCwgODIsIDY5LCAKLSAgICAxOTcsIDg0LCA4MiwgNjksIDY1LCA2OCwgNzMsIDc4LCA3MSwgMTI4LCA4NCwgODIsIDY1LCA4OSwgMTI4LCA4NCwgODIsIAotICAgIDY1LCA4MCwgNjksIDkwLCA3MywgODUsIDc3LCAxMjgsIDg0LCA4MiwgNjUsIDc4LCA4MywgODYsIDY5LCA4MiwgODMsIDY1LCAKLSAgICAyMDQsIDg0LCA4MiwgNjUsIDc4LCA4MywgODAsIDc5LCA4MywgNzMsIDg0LCA3MywgNzksIDIwNiwgODQsIDgyLCA2NSwgNzgsIAorICAgIDgzLCA2NSwgMTI4LCA4NCwgODQsIDc5LCA3OSwgMTI4LCA4NCwgODQsIDczLCA3MywgMTI4LCA4NCwgODQsIDczLCAxMjgsIAorICAgIDg0LCA4NCwgNzIsIDg3LCA2OSwgMTI4LCA4NCwgODQsIDcyLCA4NSwgMTI4LCA4NCwgODQsIDcyLCA3OSwgNzksIDEyOCwgCisgICAgODQsIDg0LCA3MiwgNzksIDEyOCwgODQsIDg0LCA3MiwgNzMsIDEyOCwgODQsIDg0LCA3MiwgNjksIDY5LCAxMjgsIDg0LCAKKyAgICA4NCwgNzIsIDY5LCAxMjgsIDg0LCA4NCwgNzIsIDY1LCA2NSwgMTI4LCA4NCwgODQsIDcyLCAxMjgsIDg0LCA4NCwgNjksIAorICAgIDcyLCA2OSwgNzIsIDEyOCwgODQsIDg0LCA2OSwgNzIsIDY5LCAyMDAsIDg0LCA4NCwgNjksIDcyLCAxMjgsIDg0LCA4NCwgCisgICAgNjksIDIwMCwgODQsIDg0LCA2OSwgNjksIDEyOCwgODQsIDg0LCA2NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDg0LCAKKyAgICA4NCwgNjUsIDg1LCAxMjgsIDg0LCA4NCwgNjUsIDczLCAxMjgsIDg0LCA4NCwgNjUsIDY1LCAxMjgsIDg0LCA4NCwgNTAsIAorICAgIDEyOCwgODQsIDgzLCA4NywgNjksIDEyOCwgODQsIDgzLCA4NywgNjUsIDEyOCwgODQsIDgzLCA4NiwgMTI4LCA4NCwgODMsIAorICAgIDgzLCA2OSwgMTI4LCA4NCwgODMsIDgzLCA2NSwgMTI4LCA4NCwgODMsIDcyLCA4NSwgNzEsIDgzLCAxMjgsIDg0LCA4MywgCisgICAgNzIsIDc5LCA3OSwgNzUsIDEyOCwgODQsIDgzLCA3MiwgNzksIDc5LCAyMDMsIDg0LCA4MywgNzIsIDY5LCA4MywgMTI4LCAKKyAgICA4NCwgODMsIDcyLCA2OSwgNzEsIDEyOCwgODQsIDgzLCA3MiwgNjksIDE5OSwgODQsIDgzLCA3MiwgNjksIDEyOCwgODQsIAorICAgIDgzLCA3MiwgNjUsIDEyOCwgODQsIDgzLCA2OSwgODIsIDY5LCAxMjgsIDg0LCA4MywgNjUsIDY4LCA3MywgMTI4LCA4NCwgCisgICAgODMsIDY1LCA2OCwgMjAxLCA4NCwgODMsIDY1LCA2NSwgNjgsIDczLCA4OSwgMTI4LCA4NCwgODMsIDY1LCA2NSwgMTI4LCAKKyAgICA4NCwgODMsIDE5MywgODQsIDgyLCA4OSwgNjYsIDc2LCA3MywgNzksIDIwNiwgODQsIDgyLCA4NSwgODQsIDcyLCAxMjgsIAorICAgIDg0LCA4MiwgODUsIDc4LCA3NSwgMTI4LCA4NCwgODIsIDg1LCA3OCwgNjcsIDY1LCA4NCwgNjksIDE5NiwgODQsIDgyLCA4NSwgCisgICAgNzcsIDgwLCA2OSwgODQsIDEyOCwgODQsIDgyLCA4NSwgNjksIDEyOCwgODQsIDgyLCA4NSwgNjcsIDc1LCAxMjgsIDg0LCAKKyAgICA4MiwgNzksIDgwLCA3MywgNjcsIDY1LCAyMDQsIDg0LCA4MiwgNzksIDgwLCA3MiwgODksIDEyOCwgODQsIDgyLCA3OSwgNzcsIAorICAgIDczLCA3NSwgNzksIDgzLCA4OSwgNzgsIDY1LCA3MSwgNzcsIDY1LCAxMjgsIDg0LCA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCAKKyAgICA4MCwgODMsIDczLCA3MCwgNzMsIDgzLCA4NCwgNzksIDc4LCAxMjgsIDg0LCA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCA4MCwgCisgICAgNjUsIDgyLCA2NSwgNzUsIDY1LCA3NiwgNjksIDgzLCA3NywgNjUsIDEyOCwgODQsIDgyLCA3OSwgNzcsIDczLCA3NSwgNzksIAorICAgIDc4LCAxMjgsIDg0LCA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCAyMDYsIDg0LCA4MiwgNzksIDc3LCA3MywgNzUsIDc5LCA3NiwgCisgICAgODksIDcxLCA3MywgODMsIDc3LCA2NSwgMTI4LCA4NCwgODIsIDc5LCA3NiwgNzYsIDY5LCA4OSwgNjYsIDg1LCA4MywgMTI4LCAKKyAgICA4NCwgODIsIDc5LCA3NSwgODUsIDg0LCA2NSwgODMsIDg0LCAyMDEsIDg0LCA4MiwgNzksIDY5LCA5MCwgNjksIDc4LCA3MywgCisgICAgNjUsIDIwNiwgODQsIDgyLCA3MywgODUsIDc3LCA4MCwgNzIsIDEyOCwgODQsIDgyLCA3MywgODQsIDc5LCAyMTEsIDg0LCAKKyAgICA4MiwgNzMsIDg0LCA3MywgNzcsIDc5LCA4MiwgNzMsIDc5LCA3OCwgMTI4LCA4NCwgODIsIDczLCA4MywgNzMsIDc3LCA3OSwgCisgICAgODUsIDEyOCwgODQsIDgyLCA3MywgODMsIDY5LCA3NywgNjksIDEyOCwgODQsIDgyLCA3MywgODAsIDc5LCA2OCwgMTI4LCAKKyAgICA4NCwgODIsIDczLCA4MCwgNzYsIDczLCAxMjgsIDg0LCA4MiwgNzMsIDgwLCA3NiwgMTk3LCA4NCwgODIsIDczLCA3OSwgCisgICAgMjA2LCA4NCwgODIsIDczLCA3MywgODMsIDY1LCA4MCwgMTI4LCA4NCwgODIsIDczLCA3MSwgODIsIDY1LCA3NywgNzcsIDc5LCAKKyAgICAyMTEsIDg0LCA4MiwgNzMsIDcxLCA4MiwgNjUsIDIwNSwgODQsIDgyLCA3MywgNzEsIDc5LCA4MiwgNzEsIDc5LCA3OCwgCisgICAgMTI4LCA4NCwgODIsIDczLCA3MCwgNzksIDc4LCA3MywgNjUsIDgzLCAxMjgsIDg0LCA4MiwgNzMsIDcwLCA3OSwgNzYsIDczLCAKKyAgICA2NSwgODQsIDE5NywgODQsIDgyLCA3MywgNjgsIDY5LCA3OCwgODQsIDEyOCwgODQsIDgyLCA3MywgNjgsIDY5LCA3OCwgCisgICAgMjEyLCA4NCwgODIsIDczLCA2NywgNzksIDc2LCA3OSwgNzgsIDEyOCwgODQsIDgyLCA3MywgNjUsIDc4LCA3MSwgODUsIDc2LCAKKyAgICA2NSwgMjEwLCA4NCwgODIsIDczLCA2NSwgNzgsIDcxLCA3NiwgNjksIDQ1LCA4MiwgNzksIDg1LCA3OCwgMTk2LCA4NCwgODIsIAorICAgIDczLCA2NSwgNzgsIDcxLCA3NiwgNjksIDQ1LCA3MiwgNjksIDY1LCA2OCwgNjksIDE5NiwgODQsIDgyLCA3MywgNjUsIDc4LCAKKyAgICA3MSwgNzYsIDY5LCAxMjgsIDg0LCA4MiwgNzMsIDY1LCA3OCwgNzEsIDc2LCAxOTcsIDg0LCA4MiwgNzMsIDY1LCAxMjgsIAorICAgIDg0LCA4MiwgNzMsIDEyOCwgODQsIDgyLCA2OSwgODMsIDczLCA3NiwgNzYsIDc5LCAxMjgsIDg0LCA4MiwgNjksIDc4LCA2OCwgCisgICAgMTI4LCA4NCwgODIsIDY5LCA3OCwgMTk2LCA4NCwgODIsIDY5LCA3NywgNzksIDc2LCA3OSwgNDUsIDUxLCAxMjgsIDg0LCAKKyAgICA4MiwgNjksIDc3LCA3OSwgNzYsIDc5LCA0NSwgNTAsIDEyOCwgODQsIDgyLCA2OSwgNzcsIDc5LCA3NiwgNzksIDQ1LCA0OSwgCisgICAgMTI4LCA4NCwgODIsIDY5LCA2OSwgMTI4LCA4NCwgODIsIDY5LCAxOTcsIDg0LCA4MiwgNjksIDY1LCA2OCwgNzMsIDc4LCAKKyAgICA3MSwgMTI4LCA4NCwgODIsIDY1LCA4OSwgMTI4LCA4NCwgODIsIDY1LCA4MCwgNjksIDkwLCA3MywgODUsIDc3LCAxMjgsIAorICAgIDg0LCA4MiwgNjUsIDc4LCA4MywgODYsIDY5LCA4MiwgODMsIDY1LCAyMDQsIDg0LCA4MiwgNjUsIDc4LCA4MywgODAsIDc5LCAKKyAgICA4MywgNzMsIDg0LCA3MywgNzksIDIwNiwgODQsIDgyLCA2NSwgNzgsIDgzLCA3NywgNzMsIDIxMiwgODQsIDgyLCA2NSwgNzgsIAogICAgIDgzLCA3NywgNzMsIDgzLCA4MywgNzMsIDc5LCA3OCwgMTI4LCA4NCwgODIsIDY1LCA3OCwgODMsIDc3LCA3MywgODMsIDgzLCAKICAgICA3MywgNzksIDIwNiwgODQsIDgyLCA2NSwgNzcsIDg3LCA2NSwgODksIDEyOCwgODQsIDgyLCA2NSwgNzcsIDEyOCwgODQsIAogICAgIDgyLCA2NSwgMjA1LCA4NCwgODIsIDY1LCA3MywgNzgsIDEyOCwgODQsIDgyLCA2NSwgNzMsIDIwNiwgODQsIDgyLCA2NSwgCkBAIC00OTMsMTYgKzU4OSwxNyBAQAogICAgIDc5LCA4MiwgNjcsIDg1LCA3NiwgODUsIDIxMSwgODQsIDc5LCA4MiwgNjcsIDcyLCAxMjgsIDg0LCA3OSwgODEsIDEyOCwgCiAgICAgODQsIDc5LCA4MCwgNjYsIDY1LCA4MiwgMTI4LCA4NCwgNzksIDgwLCA0NSwgNzYsIDczLCA3MSwgNzIsIDg0LCA2OSwgMTk2LCAKICAgICA4NCwgNzksIDgwLCAxMjgsIDg0LCA3OSwgMjA4LCA4NCwgNzksIDc5LCA4NCwgNzIsIDEyOCwgODQsIDc5LCA3OSwgNzgsIAotICAgIDEyOCwgODQsIDc5LCA3OSwgMTI4LCA4NCwgNzksIDc4LCA3OSwgODMsIDEyOCwgODQsIDc5LCA3OCwgNzEsIDg1LCA2OSwgCi0gICAgMTI4LCA4NCwgNzksIDc4LCA3MSwgODUsIDE5NywgODQsIDc5LCA3OCwgNzEsIDEyOCwgODQsIDc5LCA3OCwgNjksIDQ1LCAKLSAgICA1NCwgMTI4LCA4NCwgNzksIDc4LCA2OSwgNDUsIDUzLCAxMjgsIDg0LCA3OSwgNzgsIDY5LCA0NSwgNTIsIDEyOCwgODQsIAotICAgIDc5LCA3OCwgNjksIDQ1LCA1MSwgMTI4LCA4NCwgNzksIDc4LCA2OSwgNDUsIDUwLCAxMjgsIDg0LCA3OSwgNzgsIDY5LCA0NSwgCi0gICAgNDksIDEyOCwgODQsIDc5LCA3OCwgNjksIDEyOCwgODQsIDc5LCA3OCwgNjUsIDIwNCwgODQsIDc5LCA3NywgODAsIDczLCAKLSAgICAxMjgsIDg0LCA3OSwgNzcsIDY1LCA4NCwgNzksIDEyOCwgODQsIDc5LCA3NiwgNzksIDc4LCA3MSwgMTI4LCA4NCwgNzksIAotICAgIDc1LCA4OSwgMjA3LCA4NCwgNzksIDczLCA3NiwgNjksIDg0LCAxMjgsIDg0LCA3OSwgNzEsIDY5LCA4NCwgNzIsIDY5LCA4MiwgCi0gICAgMTI4LCA4NCwgNzksIDY4LCAyMDcsIDg0LCA3OSwgNjUsIDc4LCA2OCwgNjUsIDc1LCA3MiwgNzMsIDY1LCA4NCwgMTI4LCAKLSAgICA4NCwgNzksIDY1LCAxMjgsIDg0LCA3OCwgMTI4LCA4NCwgNzYsIDg2LCAxMjgsIDg0LCA3NiwgODUsIDEyOCwgODQsIDc2LCAKLSAgICA3OSwgMTI4LCA4NCwgNzYsIDczLCAxMjgsIDg0LCA3NiwgNzIsIDg3LCA2OSwgMTI4LCA4NCwgNzYsIDcyLCA4NSwgMTI4LCAKKyAgICAxMjgsIDg0LCA3OSwgNzgsIDc5LCA4MywgMTI4LCA4NCwgNzksIDc4LCA3MSwgODUsIDY5LCAxMjgsIDg0LCA3OSwgNzgsIAorICAgIDcxLCA4NSwgMTk3LCA4NCwgNzksIDc4LCA3MSwgMTI4LCA4NCwgNzksIDc4LCA2OSwgNDUsIDU2LCAxMjgsIDg0LCA3OSwgCisgICAgNzgsIDY5LCA0NSwgNTUsIDEyOCwgODQsIDc5LCA3OCwgNjksIDQ1LCA1NCwgMTI4LCA4NCwgNzksIDc4LCA2OSwgNDUsIDUzLCAKKyAgICAxMjgsIDg0LCA3OSwgNzgsIDY5LCA0NSwgNTIsIDEyOCwgODQsIDc5LCA3OCwgNjksIDQ1LCA1MSwgMTI4LCA4NCwgNzksIAorICAgIDc4LCA2OSwgNDUsIDUwLCAxMjgsIDg0LCA3OSwgNzgsIDY5LCA0NSwgNDksIDEyOCwgODQsIDc5LCA3OCwgNjksIDEyOCwgCisgICAgODQsIDc5LCA3OCwgNjUsIDIwNCwgODQsIDc5LCA3NywgODAsIDczLCAxMjgsIDg0LCA3OSwgNzcsIDY1LCA4NCwgNzksIAorICAgIDEyOCwgODQsIDc5LCA3NiwgNzksIDc4LCA3MSwgMTI4LCA4NCwgNzksIDc1LCA4OSwgMjA3LCA4NCwgNzksIDczLCA3NiwgCisgICAgNjksIDg0LCAxMjgsIDg0LCA3OSwgNzEsIDY5LCA4NCwgNzIsIDY5LCA4MiwgMTI4LCA4NCwgNzksIDY4LCAyMDcsIDg0LCAKKyAgICA3OSwgNjUsIDc4LCA2OCwgNjUsIDc1LCA3MiwgNzMsIDY1LCA4NCwgMTI4LCA4NCwgNzksIDY1LCAxMjgsIDg0LCA3OCwgCisgICAgMTI4LCA4NCwgNzYsIDg2LCAxMjgsIDg0LCA3NiwgODUsIDEyOCwgODQsIDc2LCA3OSwgMTI4LCA4NCwgNzYsIDczLCAxMjgsIAorICAgIDg0LCA3NiwgNzIsIDg5LCA2NSwgMTI4LCA4NCwgNzYsIDcyLCA4NywgNjksIDEyOCwgODQsIDc2LCA3MiwgODUsIDEyOCwgCiAgICAgODQsIDc2LCA3MiwgNzksIDc5LCAxMjgsIDg0LCA3NiwgNzIsIDc5LCAxMjgsIDg0LCA3NiwgNzIsIDczLCAxMjgsIDg0LCAKICAgICA3NiwgNzIsIDY5LCA2OSwgMTI4LCA4NCwgNzYsIDcyLCA2OSwgMTI4LCA4NCwgNzYsIDcyLCA2NSwgMTI4LCA4NCwgNzYsIAogICAgIDY5LCA2OSwgMTI4LCA4NCwgNzYsIDY1LCAxMjgsIDg0LCA3NCwgNjksIDEyOCwgODQsIDczLCA4OCwgMTI4LCA4NCwgNzMsIApAQCAtNTEzLDEyMSArNjEwLDEyMyBAQAogICAgIDg0LCA3MywgODAsIDY5LCA3MiwgNjUsIDEyOCwgODQsIDczLCA4MCwgMTI4LCA4NCwgNzMsIDIwOCwgODQsIDczLCA3OCwgCiAgICAgODksIDEyOCwgODQsIDczLCA3OCwgMjE3LCA4NCwgNzMsIDc4LCA3OCwgNjksIDEyOCwgODQsIDczLCA3OCwgNjcsIDg0LCAKICAgICA4NSwgODIsIDY5LCAxMjgsIDg0LCA3MywgNzgsIDY1LCA3MSwgNzcsIDY1LCAxMjgsIDg0LCA3MywgNzcsIDY5LCA4MywgCi0gICAgMTI4LCA4NCwgNzMsIDc3LCA2OSwgMjEwLCA4NCwgNzMsIDc3LCA2OSwgMTI4LCA4NCwgNzMsIDc2LCA2OCwgNjksIDEyOCwgCi0gICAgODQsIDczLCA3NiwgNjgsIDE5NywgODQsIDczLCA3NiwgMTI4LCA4NCwgNzMsIDIwNCwgODQsIDczLCA3NSwgNjksIDg1LCAKLSAgICA4NCwgNDUsIDg0LCA3MiwgNzMsIDY5LCA4NSwgODQsIDcyLCAxMjgsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDQ1LCA4MywgCi0gICAgNzMsIDc5LCA4MywgNDUsIDc1LCA3MywgODksIDY5LCA3OSwgNzUsIDEyOCwgODQsIDczLCA3NSwgNjksIDg1LCA4NCwgNDUsIAotICAgIDgzLCA3MywgNzksIDgzLCAxMjgsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDQ1LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDEyOCwgCi0gICAgODQsIDczLCA3NSwgNjksIDg1LCA4NCwgNDUsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA4NCwgNzMsIDc1LCA2OSwgODUsIAotICAgIDg0LCA0NSwgNzcsIDczLCA2OSwgODUsIDc3LCAxMjgsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDQ1LCA3NSwgNzMsIDg5LCAKLSAgICA2OSwgNzksIDc1LCAxMjgsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDQ1LCA2NywgNzMsIDY5LCA4NSwgNjcsIDEyOCwgODQsIAotICAgIDczLCA3NSwgNjksIDg1LCA4NCwgNDUsIDY3LCA3MiwgNzMsIDY5LCA4NSwgNjcsIDcyLCAxMjgsIDg0LCA3MywgNzUsIDY5LCAKLSAgICA4NSwgODQsIDEyOCwgODQsIDczLCA3NSwgNjksIDg1LCAyMTIsIDg0LCA3MywgNzMsIDEyOCwgODQsIDczLCA3MSwgNzIsIAotICAgIDg0LCA3NiwgODksIDQ1LCA2NywgNzYsIDc5LCA4MywgNjksIDE5NiwgODQsIDczLCA3MSwgNzIsIDIxMiwgODQsIDczLCA3MSwgCi0gICAgNjksIDgyLCAxMjgsIDg0LCA3MywgNzEsIDY5LCAyMTAsIDg0LCA3MywgNzAsIDczLCA3OCwgNjUsIDcxLCAyMDAsIDg0LCAKLSAgICA3MywgNjksIDg4LCAxMjgsIDg0LCA3MywgNjksIDgwLCAxMjgsIDg0LCA3MywgMTk3LCA4NCwgNzMsIDY3LCA3NSwgNjksIAotICAgIDg0LCAxMjgsIDg0LCA3MywgNjcsIDc1LCAxMjgsIDg0LCA3MywgNjcsIDIwMywgODQsIDczLCA2NSwgODIsIDY1LCAxMjgsIAotICAgIDg0LCA3MiwgOTAsIDEyOCwgODQsIDcyLCA4OSwgNzksIDc5LCAyMDUsIDg0LCA3MiwgODcsIDc5LCA3OSwgMTI4LCA4NCwgCi0gICAgNzIsIDg3LCA3OSwgMTI4LCA4NCwgNzIsIDg3LCA3MywgNzMsIDEyOCwgODQsIDcyLCA4NywgNzMsIDEyOCwgODQsIDcyLCAKLSAgICA4NywgNjksIDY5LCAxMjgsIDg0LCA3MiwgODcsIDY1LCA2NSwgMTI4LCA4NCwgNzIsIDg3LCA2NSwgMTI4LCA4NCwgNzIsIAotICAgIDg1LCA4MiwgMjExLCA4NCwgNzIsIDg1LCA4MiwgNzMsIDgzLCA2NSwgMjE4LCA4NCwgNzIsIDg1LCA3OCwgNzEsIDEyOCwgCi0gICAgODQsIDcyLCA4NSwgNzgsIDY4LCA2OSwgODIsIDgzLCA4NCwgNzksIDgyLCA3NywgMTI4LCA4NCwgNzIsIDg1LCA3OCwgNjgsIAotICAgIDY5LCA4MiwgMTI4LCA4NCwgNzIsIDg1LCA3OCwgNjgsIDY5LCAyMTAsIDg0LCA3MiwgODUsIDc3LCA2NiwgMjExLCA4NCwgCi0gICAgNzIsIDgyLCA3OSwgODcsIDczLCA3OCwgMTk5LCA4NCwgNzIsIDgyLCA3OSwgODUsIDcxLCA3MiwgMTI4LCA4NCwgNzIsIDgyLCAKLSAgICA3OSwgODUsIDcxLCAyMDAsIDg0LCA3MiwgODIsIDY5LCA2OSwgNDUsIDg0LCA3MiwgNzMsIDgyLCA4NCwgODksIDEyOCwgODQsIAotICAgIDcyLCA4MiwgNjksIDY5LCA0NSwgODAsIDY5LCA4MiwgNDUsIDY5LCAyMDUsIDg0LCA3MiwgODIsIDY5LCA2OSwgNDUsIDc2LCAKLSAgICA3MywgNzgsIDE5NywgODQsIDcyLCA4MiwgNjksIDY5LCA0NSwgMTk2LCA4NCwgNzIsIDgyLCA2OSwgNjUsIDY4LCAxMjgsIAotICAgIDg0LCA3MiwgNzksIDg1LCA4MywgNjUsIDc4LCA2OCwgMjExLCA4NCwgNzIsIDc5LCA4NSwgODMsIDY1LCA3OCwgNjgsIDEyOCwgCi0gICAgODQsIDcyLCA3OSwgODUsIDgzLCA2NSwgNzgsIDE5NiwgODQsIDcyLCA3OSwgODUsIDcxLCA3MiwgMjEyLCA4NCwgNzIsIDc5LCAKLSAgICA4NSwgMTI4LCA4NCwgNzIsIDc5LCA4MiwgNzgsIDEyOCwgODQsIDcyLCA3OSwgODIsIDIwNiwgODQsIDcyLCA3OSwgNzgsIAotICAgIDcxLCAxMjgsIDg0LCA3MiwgNzksIDY1LCAxMjgsIDg0LCA3MiwgMjA3LCA4NCwgNzIsIDczLCA4NSwgODQsIDcyLCAxMjgsIAotICAgIDg0LCA3MiwgNzMsIDg0LCA2NSwgMTI4LCA4NCwgNzIsIDczLCA4MiwgODQsIDg5LCA0NSwgODMsIDY5LCA2NywgNzksIDc4LCAKLSAgICAxOTYsIDg0LCA3MiwgNzMsIDgyLCA4NCwgODksIDQ1LCA3OSwgNzgsIDY5LCAxMjgsIDg0LCA3MiwgNzMsIDgyLCA4NCwgCi0gICAgMjE3LCA4NCwgNzIsIDczLCA4MiwgODQsIDY5LCA2OSwgNzgsIDEyOCwgODQsIDcyLCA3MywgODIsIDg0LCA2OSwgNjksIAotICAgIDIwNiwgODQsIDcyLCA3MywgODIsIDY4LCA4MywgMTI4LCA4NCwgNzIsIDczLCA4MiwgNjgsIDIxMSwgODQsIDcyLCA3MywgCi0gICAgODIsIDY4LCAxMjgsIDg0LCA3MiwgNzMsIDgyLCAxOTYsIDg0LCA3MiwgNzMsIDIwNiwgODQsIDcyLCA3MywgNzMsIDEyOCwgCi0gICAgODQsIDcyLCA3MywgNzEsIDcyLCAxMjgsIDg0LCA3MiwgNzMsIDY5LCA4NSwgODQsIDIwMCwgODQsIDcyLCA2OSwgODksIAotICAgIDEyOCwgODQsIDcyLCA2OSwgODQsIDcyLCA2OSwgMTI4LCA4NCwgNzIsIDY5LCA4NCwgNzIsIDEyOCwgODQsIDcyLCA2OSwgCi0gICAgODQsIDY1LCAxMjgsIDg0LCA3MiwgNjksIDg0LCAxOTMsIDg0LCA3MiwgNjksIDgzLCA4MCwgNzMsIDY1LCAyMDYsIDg0LCAKLSAgICA3MiwgNjksIDgzLCA2OSwgNzksIDgzLCAxMjgsIDg0LCA3MiwgNjksIDgzLCA2OSwgNzksIDIxMSwgODQsIDcyLCA2OSwgCi0gICAgMjExLCA4NCwgNzIsIDY5LCA4MiwgNzcsIDc5LCA2OCwgODksIDc4LCA2NSwgNzcsIDczLCA2NywgMTI4LCA4NCwgNzIsIDY5LCAKLSAgICA4MiwgNjksIDcwLCA3OSwgODIsIDY5LCAxMjgsIDg0LCA3MiwgNjksIDgyLCAxOTcsIDg0LCA3MiwgNjksIDIwNiwgODQsIAotICAgIDcyLCA2OSwgNzcsIDY1LCA4NCwgNzMsIDgzLCA3NywgNzksIDIxMSwgODQsIDcyLCA2OSwgNzcsIDY1LCAxMjgsIDg0LCA3MiwgCi0gICAgNjksIDc3LCAxOTMsIDg0LCA3MiwgNjksIDcyLCAxMjgsIDg0LCA3MiwgNjksIDIwMCwgODQsIDcyLCAxOTcsIDg0LCA3MiwgCi0gICAgNjUsIDg3LCAxMjgsIDg0LCA3MiwgNjUsIDc4LCA4NCwgNzIsIDY1LCA3NSwgNzIsIDY1LCA4NCwgMTI4LCA4NCwgNzIsIDY1LCAKLSAgICA3OCwgNzgsIDY1LCAxMjgsIDg0LCA3MiwgNjUsIDc4LCAxMjgsIDg0LCA3MiwgNjUsIDIwNiwgODQsIDcyLCA2NSwgNzYsIAotICAgIDEyOCwgODQsIDcyLCA2NSwgMjA0LCA4NCwgNzIsIDY1LCA3MiwgNjUsIDc4LCAxMjgsIDg0LCA3MiwgNjUsIDY1LCA3OCwgCi0gICAgMTkzLCA4NCwgNzIsIDY1LCA2NSwgNzYsIDg1LCAxMjgsIDg0LCA3MiwgNDUsIDY3LCA4MiwgNjksIDE5NywgODQsIDY5LCAKLSAgICA4OCwgODQsIDEyOCwgODQsIDY5LCA4OCwgMTI4LCA4NCwgNjksIDg2LCA3MywgODIsIDEyOCwgODQsIDY5LCA4NSwgODQsIAotICAgIDY5LCA4NSwgODgsIDEyOCwgODQsIDY5LCA4NSwgODQsIDY5LCA4NSwgODcsIDY5LCA3OCwgMTI4LCA4NCwgNjksIDg1LCA4NCwgCi0gICAgMTI4LCA4NCwgNjksIDg1LCA3OCwgMTI4LCA4NCwgNjksIDg1LCA2NSwgNjksIDgxLCAxMjgsIDg0LCA2OSwgODUsIDY1LCAKLSAgICA2OSwgNzgsIDEyOCwgODQsIDY5LCA4NSwgMTI4LCA4NCwgNjksIDg0LCA4MiwgNjUsIDgzLCA3MywgNzcsIDc5LCA4NSwgCi0gICAgMTI4LCA4NCwgNjksIDg0LCA4MiwgNjUsIDgzLCA2OSwgNzcsIDY5LCAxMjgsIDg0LCA2OSwgODQsIDgyLCA2NSwgODAsIDc2LCAKLSAgICA3MywgMTI4LCA4NCwgNjksIDg0LCA4MiwgNjUsIDcwLCA3OSwgNzgsIDczLCA2NSwgODMsIDEyOCwgODQsIDY5LCA4NCwgNzIsIAotICAgIDEyOCwgODQsIDY5LCA4NCwgMjAwLCA4NCwgNjksIDg0LCA2NSwgODIsIDg0LCA3OSwgMjExLCA4NCwgNjksIDg0LCA2NSwgCi0gICAgODIsIDg0LCA3MywgNzcsIDc5LCA4MiwgNzMsIDc5LCA3OCwgMTI4LCA4NCwgNjksIDg0LCAxMjgsIDg0LCA2OSwgMjEyLCAKLSAgICA4NCwgNjksIDgzLCA4MywgNjksIDgyLCA2NSwgMTI4LCA4NCwgNjksIDgzLCA4MywgNjksIDgyLCAxOTMsIDg0LCA2OSwgODMsIAotICAgIDgzLCA2NSwgODIsIDc5LCAyMDYsIDg0LCA2OSwgODMsIDIwMCwgODQsIDY5LCA4MiwgNzcsIDczLCA3OCwgNjUsIDg0LCA3OSwgCi0gICAgODIsIDEyOCwgODQsIDY5LCA4MCwgMTI4LCA4NCwgNjksIDc4LCA4NSwgODQsIDc5LCAxMjgsIDg0LCA2OSwgNzgsIDg1LCAKLSAgICAxMjgsIDg0LCA2OSwgNzgsIDIxMywgODQsIDY5LCA3OCwgODQsIDcyLCAxMjgsIDg0LCA2OSwgNzgsIDg0LCAxMjgsIDg0LCAKLSAgICA2OSwgNzgsIDIxMSwgODQsIDY5LCA3OCwgNzgsIDczLCAyMTEsIDg0LCA2OSwgNzgsIDcxLCAxOTcsIDg0LCA2OSwgNzgsIAotICAgIDQ1LCA4NCwgNzIsIDczLCA4MiwgODQsIDg5LCAxMjgsIDg0LCA2OSwgNzgsIDEyOCwgODQsIDY5LCAyMDYsIDg0LCA2OSwgCi0gICAgNzcsIDgwLCA4NSwgMjExLCA4NCwgNjksIDc2LCA4NSwgMTI4LCA4NCwgNjksIDc2LCA3OSwgODUsIDIxMSwgODQsIDY5LCAKLSAgICA3NiwgNzYsIDY5LCAyMTAsIDg0LCA2OSwgNzYsIDczLCA4MywgNzIsIDE5MywgODQsIDY5LCA3NiwgNjksIDg2LCA3MywgODMsIAotICAgIDczLCA3OSwgNzgsIDEyOCwgODQsIDY5LCA3NiwgNjksIDgzLCA2NywgNzksIDgwLCA2OSwgMTI4LCA4NCwgNjksIDc2LCA2OSwgCi0gICAgODAsIDcyLCA3OSwgNzgsIDY5LCAxMjgsIDg0LCA2OSwgNzYsIDY5LCA4MCwgNzIsIDc5LCA3OCwgMTk3LCA4NCwgNjksIDc2LCAKLSAgICA2OSwgNzMsIDY1LCAxMjgsIDg0LCA2OSwgNzMsIDg3LCA4MywgMTI4LCA4NCwgNjksIDcxLCA2OSwgNzIsIDEyOCwgODQsIAotICAgIDY5LCA2OSwgNjksIDY5LCAxMjgsIDg0LCA2OSwgMTk3LCA4NCwgNjksIDY4LCA4NSwgNzgsIDcxLCAxMjgsIDg0LCA2OSwgCi0gICAgNjUsIDgyLCAyMTEsIDg0LCA2OSwgNjUsIDgyLCA2OCwgODIsIDc5LCA4MCwgNDUsIDgzLCA4MCwgNzksIDc1LCA2OSwgMTk2LCAKLSAgICA4NCwgNjksIDY1LCA4MiwgNjgsIDgyLCA3OSwgODAsIDQ1LCA4MywgNzIsIDY1LCA3OCwgNzUsIDY5LCAxOTYsIDg0LCA2OSwgCi0gICAgNjUsIDgyLCA2OCwgODIsIDc5LCA4MCwgNDUsIDY2LCA2NSwgODIsIDY2LCA2OSwgMTk2LCA4NCwgNjksIDY1LCA4MiwgNDUsIAotICAgIDc5LCA3MCwgMTk4LCA4NCwgNjksIDY1LCA2NywgODUsIDIwOCwgODQsIDY5LCA0NSwgODUsIDEyOCwgODQsIDY3LCA3MiwgCi0gICAgNjksIDcyLCA2OSwgNzIsIDEyOCwgODQsIDY3LCA3MiwgNjksIDcyLCA2OSwgMjAwLCA4NCwgNjcsIDcyLCA2OSwgNzIsIAotICAgIDEyOCwgODQsIDY3LCA3MiwgNjksIDIwMCwgODQsIDY3LCA3MiwgNjksIDEyOCwgODQsIDE5NSwgODQsIDY1LCA4OSwgMTI4LCAKLSAgICA4NCwgNjUsIDg4LCA3MywgMTI4LCA4NCwgNjUsIDg4LCAxMjgsIDg0LCA2NSwgODcsIDY5LCA3NiwgNzYsIDY5LCA3NywgNjksIAotICAgIDIxMiwgODQsIDY1LCA4NywgNjUsIDEyOCwgODQsIDY1LCA4NywgMTI4LCA4NCwgNjUsIDg2LCA3MywgODksIDY1LCA3OCwgCi0gICAgNzMsIDEyOCwgODQsIDY1LCA4NiwgMTI4LCA4NCwgNjUsIDIxNCwgODQsIDY1LCA4NSwgODIsIDg1LCA4MywgMTI4LCA4NCwgCi0gICAgNjUsIDg1LCAxMjgsIDg0LCA2NSwgMjEzLCA4NCwgNjUsIDg0LCA4NywgNjksIDY5LCA3NiwgMTI4LCA4NCwgNjUsIDg0LCAKLSAgICA4NywgNjksIDY5LCAyMDQsIDg0LCA2NSwgODQsIDg0LCA3OSwgNzksIDY5LCAxOTYsIDg0LCA2NSwgODQsIDEyOCwgODQsIAotICAgIDY1LCA4MiwgODUsIDc4LCA3MSwgMTI4LCA4NCwgNjUsIDgyLCA4NCwgNjUsIDgyLCA0NSwgNTAsIDEyOCwgODQsIDY1LCA4MiwgCi0gICAgODQsIDY1LCA4MiwgMTI4LCA4NCwgNjUsIDgxLCAxMjgsIDg0LCA2NSwgODAsIDY5LCA4MiwgMTI4LCA4NCwgNjUsIDgwLCAKLSAgICAxOTcsIDg0LCA2NSwgODAsIDEyOCwgODQsIDY1LCA3OSwgMTI4LCA4NCwgNjUsIDc4LCA3OCwgNjksIDE5NiwgODQsIDY1LCAKLSAgICA3OCwgNzEsIDY5LCA4MiwgNzMsIDc4LCA2OSwgMTI4LCA4NCwgNjUsIDc4LCAxOTksIDg0LCA2NSwgNzgsIDY1LCA2NiwgNjUsIAotICAgIDg0LCAxOTMsIDg0LCA2NSwgNzgsIDEyOCwgODQsIDY1LCA3NywgNzMsIDc4LCA3MSwgMTI4LCA4NCwgNjUsIDc3LCAxMjgsIAotICAgIDg0LCA2NSwgNzYsIDc2LCAxMjgsIDg0LCA2NSwgNzYsIDIwNCwgODQsIDY1LCA3NiwgNzMsIDc4LCA3MSwgMTI4LCA4NCwgCi0gICAgNjUsIDc2LCA3MywgNzgsIDE5OSwgODQsIDY1LCA3NiwgNjksIDc4LCA4NCwgODMsIDEyOCwgODQsIDY1LCA3NiwgNjksIDc4LCAKLSAgICAyMTIsIDg0LCA2NSwgNzUsIDcyLCA2NSwgNzYsIDc2LCA4NSwgODMsIDEyOCwgODQsIDY1LCA3NSwgNjksIDEyOCwgODQsIAotICAgIDY1LCA3NSwgNTIsIDEyOCwgODQsIDY1LCA3NSwgMTI4LCA4NCwgNjUsIDczLCA4MywgODksIDc5LCA4NSwgMTI4LCA4NCwgCi0gICAgNjUsIDczLCA3NiwgNzYsIDY5LCA4MywgMjExLCA4NCwgNjUsIDczLCA3NiwgMTI4LCA4NCwgNjUsIDczLCAyMDQsIDg0LCAKLSAgICA2NSwgNzIsIDEyOCwgODQsIDY1LCAyMDAsIDg0LCA2NSwgNzEsIDY2LCA2NSwgNzgsIDg3LCAxOTMsIDg0LCA2NSwgNzEsIAotICAgIDY1LCA3NiwgNzksIDE5OSwgODQsIDY1LCA3MSwgMTI4LCA4NCwgNjUsIDY5LCAyMDYsIDg0LCA2NSwgNjcsIDc1LCAxMjgsIAotICAgIDg0LCA2NSwgNjcsIDIwMywgODQsIDY1LCA2NiwgODUsIDc2LCA2NSwgODQsIDczLCA3OSwgNzgsIDEyOCwgODQsIDY1LCA2NiwgCi0gICAgODMsIDEyOCwgODQsIDY1LCA2NiwgNzYsIDY5LCAxMjgsIDg0LCA2NSwgNjYsIDEyOCwgODQsIDY1LCAxOTQsIDg0LCA2NSwgCi0gICAgNjUsIDgzLCA3MiwgNjUsIDY5LCAxMjgsIDg0LCA2NSwgNjUsIDgxLCAxMjgsIDg0LCA2NSwgNjUsIDc3LCAxMjgsIDg0LCAKLSAgICA2NSwgNjUsIDc2LCA4NSwgNzQsIDE5MywgODQsIDY1LCA2NSwgNzMsIDEyOCwgODQsIDY1LCA2NSwgNzAsIDEyOCwgODQsIAotICAgIDY1LCA1MCwgMTI4LCA4NCwgNjUsIDQ1LCA4MiwgNzksIDc2LCAxMjgsIDg0LCA0OCwgNTEsIDU0LCAxMjgsIDg0LCA0OCwgCi0gICAgNTEsIDUzLCAxMjgsIDg0LCA0OCwgNTEsIDUyLCAxMjgsIDg0LCA0OCwgNTEsIDUxLCA2NSwgMTI4LCA4NCwgNDgsIDUxLCAKLSAgICA1MSwgMTI4LCA4NCwgNDgsIDUxLCA1MCwgNjUsIDEyOCwgODQsIDQ4LCA1MSwgNTAsIDEyOCwgODQsIDQ4LCA1MSwgNDksIAotICAgIDEyOCwgODQsIDQ4LCA1MSwgNDgsIDEyOCwgODQsIDQ4LCA1MCwgNTcsIDEyOCwgODQsIDQ4LCA1MCwgNTYsIDEyOCwgODQsIAotICAgIDQ4LCA1MCwgNTUsIDEyOCwgODQsIDQ4LCA1MCwgNTQsIDEyOCwgODQsIDQ4LCA1MCwgNTMsIDEyOCwgODQsIDQ4LCA1MCwgCi0gICAgNTIsIDEyOCwgODQsIDQ4LCA1MCwgNTEsIDEyOCwgODQsIDQ4LCA1MCwgNTAsIDEyOCwgODQsIDQ4LCA1MCwgNDksIDEyOCwgCi0gICAgODQsIDQ4LCA1MCwgNDgsIDEyOCwgODQsIDQ4LCA0OSwgNTcsIDEyOCwgODQsIDQ4LCA0OSwgNTYsIDEyOCwgODQsIDQ4LCAKLSAgICA0OSwgNTUsIDEyOCwgODQsIDQ4LCA0OSwgNTQsIDY1LCAxMjgsIDg0LCA0OCwgNDksIDU0LCAxMjgsIDg0LCA0OCwgNDksIAotICAgIDUzLCAxMjgsIDg0LCA0OCwgNDksIDUyLCAxMjgsIDg0LCA0OCwgNDksIDUxLCAxMjgsIDg0LCA0OCwgNDksIDUwLCAxMjgsIAotICAgIDg0LCA0OCwgNDksIDQ5LCA2NSwgMTI4LCA4NCwgNDgsIDQ5LCA0OSwgMTI4LCA4NCwgNDgsIDQ5LCA0OCwgMTI4LCA4NCwgCi0gICAgNDgsIDQ4LCA1NywgNjUsIDEyOCwgODQsIDQ4LCA0OCwgNTcsIDEyOCwgODQsIDQ4LCA0OCwgNTYsIDY1LCAxMjgsIDg0LCAKLSAgICA0OCwgNDgsIDU2LCAxMjgsIDg0LCA0OCwgNDgsIDU1LCA2NSwgMTI4LCA4NCwgNDgsIDQ4LCA1NSwgMTI4LCA4NCwgNDgsIAotICAgIDQ4LCA1NCwgMTI4LCA4NCwgNDgsIDQ4LCA1MywgMTI4LCA4NCwgNDgsIDQ4LCA1MiwgMTI4LCA4NCwgNDgsIDQ4LCA1MSwgCi0gICAgNjUsIDEyOCwgODQsIDQ4LCA0OCwgNTEsIDEyOCwgODQsIDQ4LCA0OCwgNTAsIDEyOCwgODQsIDQ4LCA0OCwgNDksIDEyOCwgCi0gICAgODQsIDQ1LCA4MywgNzIsIDczLCA4MiwgODQsIDEyOCwgODMsIDkwLCA5MCwgMTI4LCA4MywgOTAsIDg3LCA3MSwgMTI4LCAKLSAgICA4MywgOTAsIDg3LCA2NSwgMTI4LCA4MywgOTAsIDg1LCAxMjgsIDgzLCA5MCwgNzksIDEyOCwgODMsIDkwLCA3MywgMTI4LCAKLSAgICA4MywgOTAsIDY5LCA2OSwgMTI4LCA4MywgOTAsIDY5LCAxMjgsIDgzLCA5MCwgNjUsIDY1LCAxMjgsIDgzLCA5MCwgNjUsIAotICAgIDEyOCwgODMsIDkwLCAxMjgsIDgzLCA4OSwgODgsIDEyOCwgODMsIDg5LCA4NCwgMTI4LCA4MywgODksIDgyLCA4OCwgMTI4LCAKLSAgICA4MywgODksIDgyLCA3NywgNjUsIDg0LCA3MywgNzUsIDczLCAxMjgsIDgzLCA4OSwgODIsIDc3LCA2NSwgMTI4LCA4MywgODksIAotICAgIDgyLCA3MywgNzgsIDcxLCA2OSwgMTI4LCA4MywgODksIDgyLCAxMjgsIDgzLCA4OSwgODAsIDEyOCwgODMsIDg5LCA3OSwgCi0gICAgODUsIDg3LCA2NSwgMTI4LCA4MywgODksIDc4LCA2OSwgODYsIDc3LCA2NSwgMTI4LCA4MywgODksIDc4LCA2OCwgNjksIDgzLCAKLSAgICA3NywgNzksIDIxMSwgODMsIDg5LCA3OCwgNjcsIDcyLCA4MiwgNzksIDc4LCA3OSwgODUsIDIxMSwgODMsIDg5LCA3OCwgNjUsIAotICAgIDcxLCA3NywgMTkzLCA4MywgODksIDc4LCA2NSwgNzAsIDczLCAxMjgsIDgzLCA4OSwgNzcsIDc3LCA2OSwgODQsIDgyLCA4OSwgCisgICAgMTI4LCA4NCwgNzMsIDc3LCA2OSwgMjEwLCA4NCwgNzMsIDc3LCA2OSwgMTI4LCA4NCwgNzMsIDc2LCA2OCwgMTk3LCA4NCwgCisgICAgNzMsIDc2LCAxMjgsIDg0LCA3MywgMjA0LCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCA0NSwgODQsIDcyLCA3MywgNjksIDg1LCAKKyAgICA4NCwgNzIsIDEyOCwgODQsIDczLCA3NSwgNjksIDg1LCA4NCwgNDUsIDgzLCA3MywgNzksIDgzLCA0NSwgNzUsIDczLCA4OSwgCisgICAgNjksIDc5LCA3NSwgMTI4LCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCA0NSwgODMsIDczLCA3OSwgODMsIDEyOCwgODQsIDczLCAKKyAgICA3NSwgNjksIDg1LCA4NCwgNDUsIDgyLCA3MywgNjksIDg1LCA3NiwgMTI4LCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCA0NSwgCisgICAgODAsIDczLCA2OSwgODUsIDgwLCAxMjgsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDQ1LCA3NywgNzMsIDY5LCA4NSwgNzcsIAorICAgIDEyOCwgODQsIDczLCA3NSwgNjksIDg1LCA4NCwgNDUsIDc1LCA3MywgODksIDY5LCA3OSwgNzUsIDEyOCwgODQsIDczLCA3NSwgCisgICAgNjksIDg1LCA4NCwgNDUsIDY3LCA3MywgNjksIDg1LCA2NywgMTI4LCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCA0NSwgNjcsIAorICAgIDcyLCA3MywgNjksIDg1LCA2NywgNzIsIDEyOCwgODQsIDczLCA3NSwgNjksIDg1LCA4NCwgMTI4LCA4NCwgNzMsIDc1LCA2OSwgCisgICAgODUsIDIxMiwgODQsIDczLCA3MSwgNzIsIDg0LCA3NiwgODksIDQ1LCA2NywgNzYsIDc5LCA4MywgNjksIDE5NiwgODQsIDczLCAKKyAgICA3MSwgNzIsIDIxMiwgODQsIDczLCA3MSwgNjksIDgyLCAxMjgsIDg0LCA3MywgNzEsIDY5LCAyMTAsIDg0LCA3MywgNzAsIAorICAgIDczLCA3OCwgNjUsIDcxLCAyMDAsIDg0LCA3MywgNjksIDg4LCAxMjgsIDg0LCA3MywgNjksIDgwLCAxMjgsIDg0LCA3MywgCisgICAgMTk3LCA4NCwgNzMsIDY3LCA3NSwgNjksIDg0LCAxMjgsIDg0LCA3MywgNjcsIDc1LCAxMjgsIDg0LCA3MywgNjcsIDIwMywgCisgICAgODQsIDczLCA2NSwgODIsIDY1LCAxMjgsIDg0LCA3MiwgOTAsIDEyOCwgODQsIDcyLCA4OSwgNzksIDc5LCAyMDUsIDg0LCAKKyAgICA3MiwgODcsIDc5LCA3OSwgMTI4LCA4NCwgNzIsIDg3LCA3OSwgMTI4LCA4NCwgNzIsIDg3LCA3MywgNzMsIDEyOCwgODQsIAorICAgIDcyLCA4NywgNzMsIDEyOCwgODQsIDcyLCA4NywgNjksIDY5LCAxMjgsIDg0LCA3MiwgODcsIDY1LCA2NSwgMTI4LCA4NCwgCisgICAgNzIsIDg3LCA2NSwgMTI4LCA4NCwgNzIsIDg1LCA4MiwgMjExLCA4NCwgNzIsIDg1LCA4MiwgNzMsIDgzLCA2NSwgMjE4LCAKKyAgICA4NCwgNzIsIDg1LCA3OCwgNzEsIDEyOCwgODQsIDcyLCA4NSwgNzgsIDY4LCA2OSwgODIsIDgzLCA4NCwgNzksIDgyLCA3NywgCisgICAgMTI4LCA4NCwgNzIsIDg1LCA3OCwgNjgsIDY5LCA4MiwgMTI4LCA4NCwgNzIsIDg1LCA3OCwgNjgsIDY5LCAyMTAsIDg0LCAKKyAgICA3MiwgODUsIDc3LCA2NiwgMjExLCA4NCwgNzIsIDgyLCA3OSwgODcsIDczLCA3OCwgMTk5LCA4NCwgNzIsIDgyLCA3OSwgODUsIAorICAgIDcxLCA3MiwgMTI4LCA4NCwgNzIsIDgyLCA3OSwgODUsIDcxLCAyMDAsIDg0LCA3MiwgODIsIDY5LCA2OSwgNDUsIDg0LCA3MiwgCisgICAgNzMsIDgyLCA4NCwgODksIDEyOCwgODQsIDcyLCA4MiwgNjksIDY5LCA0NSwgODAsIDY5LCA4MiwgNDUsIDY5LCAyMDUsIDg0LCAKKyAgICA3MiwgODIsIDY5LCA2OSwgNDUsIDc2LCA3MywgNzgsIDE5NywgODQsIDcyLCA4MiwgNjksIDY5LCA0NSwgNjksIDIwNSwgODQsIAorICAgIDcyLCA4MiwgNjksIDY5LCA0NSwgMTk2LCA4NCwgNzIsIDgyLCA2OSwgNjUsIDY4LCAxMjgsIDg0LCA3MiwgNzksIDg1LCA4MywgCisgICAgNjUsIDc4LCA2OCwgMjExLCA4NCwgNzIsIDc5LCA4NSwgODMsIDY1LCA3OCwgNjgsIDEyOCwgODQsIDcyLCA3OSwgODUsIDgzLCAKKyAgICA2NSwgNzgsIDE5NiwgODQsIDcyLCA3OSwgODUsIDcxLCA3MiwgMjEyLCA4NCwgNzIsIDc5LCA4NSwgMTI4LCA4NCwgNzIsIAorICAgIDc5LCA4MiwgNzgsIDEyOCwgODQsIDcyLCA3OSwgODIsIDIwNiwgODQsIDcyLCA3OSwgNzgsIDcxLCAxMjgsIDg0LCA3MiwgCisgICAgNzksIDY1LCAxMjgsIDg0LCA3MiwgMjA3LCA4NCwgNzIsIDczLCA4NSwgODQsIDcyLCAxMjgsIDg0LCA3MiwgNzMsIDg0LCAKKyAgICA2NSwgMTI4LCA4NCwgNzIsIDczLCA4MiwgODQsIDg5LCA0NSwgODMsIDY5LCA2NywgNzksIDc4LCAxOTYsIDg0LCA3MiwgNzMsIAorICAgIDgyLCA4NCwgODksIDQ1LCA3OSwgNzgsIDY5LCAxMjgsIDg0LCA3MiwgNzMsIDgyLCA4NCwgMjE3LCA4NCwgNzIsIDczLCA4MiwgCisgICAgODQsIDY5LCA2OSwgNzgsIDEyOCwgODQsIDcyLCA3MywgODIsIDg0LCA2OSwgNjksIDIwNiwgODQsIDcyLCA3MywgODIsIDY4LCAKKyAgICA4MywgMTI4LCA4NCwgNzIsIDczLCA4MiwgNjgsIDIxMSwgODQsIDcyLCA3MywgODIsIDY4LCAxMjgsIDg0LCA3MiwgNzMsIAorICAgIDgyLCAxOTYsIDg0LCA3MiwgNzMsIDIwNiwgODQsIDcyLCA3MywgNzMsIDEyOCwgODQsIDcyLCA3MywgNzEsIDcyLCAxMjgsIAorICAgIDg0LCA3MiwgNzMsIDY5LCA4NSwgODQsIDIwMCwgODQsIDcyLCA2OSwgODksIDEyOCwgODQsIDcyLCA2OSwgODQsIDcyLCA2OSwgCisgICAgMTI4LCA4NCwgNzIsIDY5LCA4NCwgNzIsIDEyOCwgODQsIDcyLCA2OSwgODQsIDY1LCAxMjgsIDg0LCA3MiwgNjksIDg0LCAKKyAgICAxOTMsIDg0LCA3MiwgNjksIDgzLCA4MCwgNzMsIDY1LCAyMDYsIDg0LCA3MiwgNjksIDgzLCA2OSwgNzksIDgzLCAxMjgsIAorICAgIDg0LCA3MiwgNjksIDgzLCA2OSwgNzksIDIxMSwgODQsIDcyLCA2OSwgMjExLCA4NCwgNzIsIDY5LCA4MiwgNzcsIDc5LCA2OCwgCisgICAgODksIDc4LCA2NSwgNzcsIDczLCA2NywgMTI4LCA4NCwgNzIsIDY5LCA4MiwgNjksIDcwLCA3OSwgODIsIDY5LCAxMjgsIDg0LCAKKyAgICA3MiwgNjksIDgyLCAxOTcsIDg0LCA3MiwgNjksIDIwNiwgODQsIDcyLCA2OSwgNzcsIDY1LCA4NCwgNzMsIDgzLCA3NywgNzksIAorICAgIDIxMSwgODQsIDcyLCA2OSwgNzcsIDY1LCAxMjgsIDg0LCA3MiwgNjksIDc3LCAxOTMsIDg0LCA3MiwgNjksIDcyLCAxMjgsIAorICAgIDg0LCA3MiwgNjksIDIwMCwgODQsIDcyLCAxOTcsIDg0LCA3MiwgNjUsIDg3LCAxMjgsIDg0LCA3MiwgNjUsIDc4LCA4NCwgCisgICAgNzIsIDY1LCA3NSwgNzIsIDY1LCA4NCwgMTI4LCA4NCwgNzIsIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDg0LCA3MiwgNjUsIDc4LCAKKyAgICAxMjgsIDg0LCA3MiwgNjUsIDIwNiwgODQsIDcyLCA2NSwgNzYsIDEyOCwgODQsIDcyLCA2NSwgMjA0LCA4NCwgNzIsIDY1LCAKKyAgICA3MiwgNjUsIDc4LCAxMjgsIDg0LCA3MiwgNjUsIDY1LCA3OCwgMTkzLCA4NCwgNzIsIDY1LCA2NSwgNzYsIDg1LCAxMjgsIAorICAgIDg0LCA3MiwgNDUsIDY3LCA4MiwgNjksIDE5NywgODQsIDY5LCA4OCwgODQsIDEyOCwgODQsIDY5LCA4OCwgMTI4LCA4NCwgCisgICAgNjksIDg2LCA3MywgODIsIDEyOCwgODQsIDY5LCA4NSwgODQsIDY5LCA4NSwgODgsIDEyOCwgODQsIDY5LCA4NSwgODQsIDY5LCAKKyAgICA4NSwgODcsIDY5LCA3OCwgMTI4LCA4NCwgNjksIDg1LCA4NCwgMTI4LCA4NCwgNjksIDg1LCA3OCwgMTI4LCA4NCwgNjksIAorICAgIDg1LCA2NSwgNjksIDgxLCAxMjgsIDg0LCA2OSwgODUsIDY1LCA2OSwgNzgsIDEyOCwgODQsIDY5LCA4NSwgMTI4LCA4NCwgCisgICAgNjksIDg0LCA4MiwgNjUsIDgzLCA3MywgNzcsIDc5LCA4NSwgMTI4LCA4NCwgNjksIDg0LCA4MiwgNjUsIDgzLCA2OSwgNzcsIAorICAgIDY5LCAxMjgsIDg0LCA2OSwgODQsIDgyLCA2NSwgODAsIDc2LCA3MywgMTI4LCA4NCwgNjksIDg0LCA4MiwgNjUsIDcwLCA3OSwgCisgICAgNzgsIDczLCA2NSwgODMsIDEyOCwgODQsIDY5LCA4NCwgNzIsIDEyOCwgODQsIDY5LCA4NCwgMjAwLCA4NCwgNjksIDg0LCAKKyAgICA2NSwgODIsIDg0LCA3OSwgMjExLCA4NCwgNjksIDg0LCA2NSwgODIsIDg0LCA3MywgNzcsIDc5LCA4MiwgNzMsIDc5LCA3OCwgCisgICAgMTI4LCA4NCwgNjksIDg0LCAxMjgsIDg0LCA2OSwgMjEyLCA4NCwgNjksIDgzLCA4MywgNjksIDgyLCA2NSwgMTI4LCA4NCwgCisgICAgNjksIDgzLCA4MywgNjksIDgyLCAxOTMsIDg0LCA2OSwgODMsIDgzLCA2NSwgODIsIDc5LCAyMDYsIDg0LCA2OSwgODMsIAorICAgIDIwMCwgODQsIDY5LCA4MiwgNzcsIDczLCA3OCwgNjUsIDg0LCA3OSwgODIsIDEyOCwgODQsIDY5LCA4MCwgMTI4LCA4NCwgCisgICAgNjksIDc4LCA4NSwgODQsIDc5LCAxMjgsIDg0LCA2OSwgNzgsIDg1LCAxMjgsIDg0LCA2OSwgNzgsIDIxMywgODQsIDY5LCAKKyAgICA3OCwgODQsIDcyLCAxMjgsIDg0LCA2OSwgNzgsIDg0LCAxMjgsIDg0LCA2OSwgNzgsIDIxMSwgODQsIDY5LCA3OCwgNzgsIAorICAgIDczLCAyMTEsIDg0LCA2OSwgNzgsIDcxLCAxOTcsIDg0LCA2OSwgNzgsIDQ1LCA4NCwgNzIsIDczLCA4MiwgODQsIDg5LCAKKyAgICAxMjgsIDg0LCA2OSwgNzgsIDEyOCwgODQsIDY5LCAyMDYsIDg0LCA2OSwgNzcsIDgwLCA4NSwgMjExLCA4NCwgNjksIDc2LCAKKyAgICA4NSwgMTI4LCA4NCwgNjksIDc2LCA3OSwgODUsIDIxMSwgODQsIDY5LCA3NiwgNzYsIDY5LCAyMTAsIDg0LCA2OSwgNzYsIAorICAgIDczLCA4MywgNzIsIDE5MywgODQsIDY5LCA3NiwgNjksIDg2LCA3MywgODMsIDczLCA3OSwgNzgsIDEyOCwgODQsIDY5LCA3NiwgCisgICAgNjksIDgzLCA2NywgNzksIDgwLCA2OSwgMTI4LCA4NCwgNjksIDc2LCA2OSwgODAsIDcyLCA3OSwgNzgsIDY5LCAxMjgsIDg0LCAKKyAgICA2OSwgNzYsIDY5LCA4MCwgNzIsIDc5LCA3OCwgMTk3LCA4NCwgNjksIDc2LCA2OSwgNzMsIDY1LCAxMjgsIDg0LCA2OSwgNzYsIAorICAgIDY5LCA3MSwgODIsIDY1LCA4MCwgMjAwLCA4NCwgNjksIDczLCA4NywgODMsIDEyOCwgODQsIDY5LCA3MSwgNjksIDcyLCAKKyAgICAxMjgsIDg0LCA2OSwgNjksIDY5LCA2OSwgMTI4LCA4NCwgNjksIDE5NywgODQsIDY5LCA2OCwgODUsIDc4LCA3MSwgMTI4LCAKKyAgICA4NCwgNjksIDY1LCA4MiwgMjExLCA4NCwgNjksIDY1LCA4MiwgNjgsIDgyLCA3OSwgODAsIDQ1LCA4MywgODAsIDc5LCA3NSwgCisgICAgNjksIDE5NiwgODQsIDY5LCA2NSwgODIsIDY4LCA4MiwgNzksIDgwLCA0NSwgODMsIDcyLCA2NSwgNzgsIDc1LCA2OSwgMTk2LCAKKyAgICA4NCwgNjksIDY1LCA4MiwgNjgsIDgyLCA3OSwgODAsIDQ1LCA2NiwgNjUsIDgyLCA2NiwgNjksIDE5NiwgODQsIDY5LCA2NSwgCisgICAgODIsIDQ1LCA3OSwgNzAsIDE5OCwgODQsIDY5LCA2NSwgNjcsIDg1LCAyMDgsIDg0LCA2OSwgNDUsIDg1LCAxMjgsIDg0LCAKKyAgICA2OSwgNDUsIDUwLCAxMjgsIDg0LCA2NywgNzIsIDY5LCA3MiwgNjksIDcyLCAxMjgsIDg0LCA2NywgNzIsIDY5LCA3MiwgNjksIAorICAgIDIwMCwgODQsIDY3LCA3MiwgNjksIDcyLCAxMjgsIDg0LCA2NywgNzIsIDY5LCAyMDAsIDg0LCA2NywgNzIsIDY5LCAxMjgsIAorICAgIDg0LCAxOTUsIDg0LCA2NSwgODksIDEyOCwgODQsIDY1LCA4OCwgNzMsIDEyOCwgODQsIDY1LCA4OCwgMTI4LCA4NCwgNjUsIAorICAgIDg3LCA2OSwgNzYsIDc2LCA2OSwgNzcsIDY5LCAyMTIsIDg0LCA2NSwgODcsIDY1LCAxMjgsIDg0LCA2NSwgODcsIDEyOCwgCisgICAgODQsIDY1LCA4NiwgNzMsIDg5LCA2NSwgNzgsIDczLCAxMjgsIDg0LCA2NSwgODYsIDEyOCwgODQsIDY1LCAyMTQsIDg0LCAKKyAgICA2NSwgODUsIDgyLCA4NSwgODMsIDEyOCwgODQsIDY1LCAyMTMsIDg0LCA2NSwgODQsIDg3LCA2OSwgNjksIDc2LCAxMjgsIAorICAgIDg0LCA2NSwgODQsIDg3LCA2OSwgNjksIDIwNCwgODQsIDY1LCA4NCwgODQsIDc5LCA3OSwgNjksIDE5NiwgODQsIDY1LCA4NCwgCisgICAgMTI4LCA4NCwgNjUsIDgyLCA4NSwgNzgsIDcxLCAxMjgsIDg0LCA2NSwgODIsIDg0LCA2NSwgODIsIDQ1LCA1MCwgMTI4LCAKKyAgICA4NCwgNjUsIDgyLCA4NCwgNjUsIDgyLCAxMjgsIDg0LCA2NSwgODEsIDEyOCwgODQsIDY1LCA4MCwgNjksIDgyLCAxMjgsIAorICAgIDg0LCA2NSwgODAsIDE5NywgODQsIDY1LCA4MCwgMTI4LCA4NCwgNjUsIDc5LCAxMjgsIDg0LCA2NSwgNzgsIDc4LCA2OSwgCisgICAgMTk2LCA4NCwgNjUsIDc4LCA3MSwgNjksIDgyLCA3MywgNzgsIDY5LCAxMjgsIDg0LCA2NSwgNzgsIDE5OSwgODQsIDY1LCAKKyAgICA3OCwgNjUsIDY2LCA2NSwgODQsIDE5MywgODQsIDY1LCA3OCwgMTI4LCA4NCwgNjUsIDc3LCA3MywgNzgsIDcxLCAxMjgsIAorICAgIDg0LCA2NSwgNzcsIDEyOCwgODQsIDY1LCA3NiwgNzYsIDEyOCwgODQsIDY1LCA3NiwgMjA0LCA4NCwgNjUsIDc2LCA3MywgCisgICAgNzgsIDcxLCAxMjgsIDg0LCA2NSwgNzYsIDczLCA3OCwgMTk5LCA4NCwgNjUsIDc2LCA2OSwgNzgsIDg0LCA4MywgMTI4LCAKKyAgICA4NCwgNjUsIDc2LCA2OSwgNzgsIDIxMiwgODQsIDY1LCA3NSwgODIsIDIwMSwgODQsIDY1LCA3NSwgNzIsIDY1LCA3NiwgNzYsIAorICAgIDg1LCA4MywgMTI4LCA4NCwgNjUsIDc1LCA2OSwgMTI4LCA4NCwgNjUsIDc1LCA1MiwgMTI4LCA4NCwgNjUsIDc1LCAxMjgsIAorICAgIDg0LCA2NSwgNzMsIDgzLCA4OSwgNzksIDg1LCAxMjgsIDg0LCA2NSwgNzMsIDc2LCA3NiwgNjksIDgzLCAyMTEsIDg0LCA2NSwgCisgICAgNzMsIDc2LCAxMjgsIDg0LCA2NSwgNzMsIDIwNCwgODQsIDY1LCA3MiwgMTI4LCA4NCwgNjUsIDIwMCwgODQsIDY1LCA3MSwgCisgICAgNjYsIDY1LCA3OCwgODcsIDE5MywgODQsIDY1LCA3MSwgNjUsIDc2LCA3OSwgMTk5LCA4NCwgNjUsIDcxLCAxMjgsIDg0LCAKKyAgICA2NSwgNjksIDIwNiwgODQsIDY1LCA2NywgNzUsIDEyOCwgODQsIDY1LCA2NywgMjAzLCA4NCwgNjUsIDY2LCA4NSwgNzYsIAorICAgIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4NCwgNjUsIDY2LCA4NSwgNzYsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDg0LCA2NSwgCisgICAgNjYsIDgzLCAxMjgsIDg0LCA2NSwgNjYsIDc2LCA2OSwgMTI4LCA4NCwgNjUsIDY2LCAxMjgsIDg0LCA2NSwgMTk0LCA4NCwgCisgICAgNjUsIDY1LCA4MywgNzIsIDY1LCA2OSwgMTI4LCA4NCwgNjUsIDY1LCA4MSwgMTI4LCA4NCwgNjUsIDY1LCA3NywgMTI4LCAKKyAgICA4NCwgNjUsIDY1LCA3NiwgODUsIDc0LCAxOTMsIDg0LCA2NSwgNjUsIDczLCAxMjgsIDg0LCA2NSwgNjUsIDcwLCAxMjgsIAorICAgIDg0LCA2NSwgNTAsIDEyOCwgODQsIDY1LCA0NSwgODIsIDc5LCA3NiwgMTI4LCA4NCwgNjUsIDQ1LCA1MCwgMTI4LCA4NCwgCisgICAgNDgsIDUxLCA1NCwgMTI4LCA4NCwgNDgsIDUxLCA1MywgMTI4LCA4NCwgNDgsIDUxLCA1MiwgMTI4LCA4NCwgNDgsIDUxLCAKKyAgICA1MSwgNjUsIDEyOCwgODQsIDQ4LCA1MSwgNTEsIDEyOCwgODQsIDQ4LCA1MSwgNTAsIDY1LCAxMjgsIDg0LCA0OCwgNTEsIAorICAgIDUwLCAxMjgsIDg0LCA0OCwgNTEsIDQ5LCAxMjgsIDg0LCA0OCwgNTEsIDQ4LCAxMjgsIDg0LCA0OCwgNTAsIDU3LCAxMjgsIAorICAgIDg0LCA0OCwgNTAsIDU2LCAxMjgsIDg0LCA0OCwgNTAsIDU1LCAxMjgsIDg0LCA0OCwgNTAsIDU0LCAxMjgsIDg0LCA0OCwgCisgICAgNTAsIDUzLCAxMjgsIDg0LCA0OCwgNTAsIDUyLCAxMjgsIDg0LCA0OCwgNTAsIDUxLCAxMjgsIDg0LCA0OCwgNTAsIDUwLCAKKyAgICAxMjgsIDg0LCA0OCwgNTAsIDQ5LCAxMjgsIDg0LCA0OCwgNTAsIDQ4LCAxMjgsIDg0LCA0OCwgNDksIDU3LCAxMjgsIDg0LCAKKyAgICA0OCwgNDksIDU2LCAxMjgsIDg0LCA0OCwgNDksIDU1LCAxMjgsIDg0LCA0OCwgNDksIDU0LCA2NSwgMTI4LCA4NCwgNDgsIAorICAgIDQ5LCA1NCwgMTI4LCA4NCwgNDgsIDQ5LCA1MywgMTI4LCA4NCwgNDgsIDQ5LCA1MiwgMTI4LCA4NCwgNDgsIDQ5LCA1MSwgCisgICAgMTI4LCA4NCwgNDgsIDQ5LCA1MCwgMTI4LCA4NCwgNDgsIDQ5LCA0OSwgNjUsIDEyOCwgODQsIDQ4LCA0OSwgNDksIDEyOCwgCisgICAgODQsIDQ4LCA0OSwgNDgsIDEyOCwgODQsIDQ4LCA0OCwgNTcsIDY1LCAxMjgsIDg0LCA0OCwgNDgsIDU3LCAxMjgsIDg0LCAKKyAgICA0OCwgNDgsIDU2LCA2NSwgMTI4LCA4NCwgNDgsIDQ4LCA1NiwgMTI4LCA4NCwgNDgsIDQ4LCA1NSwgNjUsIDEyOCwgODQsIAorICAgIDQ4LCA0OCwgNTUsIDEyOCwgODQsIDQ4LCA0OCwgNTQsIDEyOCwgODQsIDQ4LCA0OCwgNTMsIDEyOCwgODQsIDQ4LCA0OCwgCisgICAgNTIsIDEyOCwgODQsIDQ4LCA0OCwgNTEsIDY1LCAxMjgsIDg0LCA0OCwgNDgsIDUxLCAxMjgsIDg0LCA0OCwgNDgsIDUwLCAKKyAgICAxMjgsIDg0LCA0OCwgNDgsIDQ5LCAxMjgsIDg0LCA0NSwgODMsIDcyLCA3MywgODIsIDg0LCAxMjgsIDgzLCA5MCwgOTAsIAorICAgIDEyOCwgODMsIDkwLCA4NywgNzEsIDEyOCwgODMsIDkwLCA4NywgNjUsIDEyOCwgODMsIDkwLCA4NSwgMTI4LCA4MywgOTAsIAorICAgIDc5LCAxMjgsIDgzLCA5MCwgNzMsIDEyOCwgODMsIDkwLCA2OSwgNjksIDEyOCwgODMsIDkwLCA2OSwgMTI4LCA4MywgOTAsIAorICAgIDY1LCA2NSwgMTI4LCA4MywgOTAsIDY1LCAxMjgsIDgzLCA5MCwgMTI4LCA4MywgODksIDg4LCAxMjgsIDgzLCA4OSwgODQsIAorICAgIDEyOCwgODMsIDg5LCA4MywgODQsIDY5LCAyMDUsIDgzLCA4OSwgODIsIDg4LCAxMjgsIDgzLCA4OSwgODIsIDc3LCA2NSwgCisgICAgODQsIDczLCA3NSwgNzMsIDEyOCwgODMsIDg5LCA4MiwgNzcsIDY1LCAxMjgsIDgzLCA4OSwgODIsIDczLCA3OCwgNzEsIDY5LCAKKyAgICAxMjgsIDgzLCA4OSwgODIsIDEyOCwgODMsIDg5LCA4MCwgMTI4LCA4MywgODksIDc5LCA4NSwgODcsIDY1LCAxMjgsIDgzLCAKKyAgICA4OSwgNzgsIDY5LCA4NiwgNzcsIDY1LCAxMjgsIDgzLCA4OSwgNzgsIDY4LCA2OSwgODMsIDc3LCA3OSwgMjExLCA4MywgODksIAorICAgIDc4LCA2NywgNzIsIDgyLCA3OSwgNzgsIDc5LCA4NSwgMjExLCA4MywgODksIDc4LCA2NSwgNzEsIDc3LCAxOTMsIDgzLCA4OSwgCisgICAgNzgsIDY1LCA3MCwgNzMsIDEyOCwgODMsIDg5LCA3OCwgMTI4LCA4MywgODksIDc3LCA3NywgNjksIDg0LCA4MiwgODksIAogICAgIDEyOCwgODMsIDg5LCA3NywgNzcsIDY5LCA4NCwgODIsIDczLCAxOTUsIDgzLCA4OSwgNzcsIDY2LCA3OSwgNzYsIDgzLCAKICAgICAxMjgsIDgzLCA4OSwgNzcsIDY2LCA3OSwgNzYsIDQ1LCA1NywgMTI4LCA4MywgODksIDc3LCA2NiwgNzksIDc2LCA0NSwgNTYsIAogICAgIDEyOCwgODMsIDg5LCA3NywgNjYsIDc5LCA3NiwgNDUsIDU1LCAxMjgsIDgzLCA4OSwgNzcsIDY2LCA3OSwgNzYsIDQ1LCA1NCwgCkBAIC02NTQsMjIzICs3NTMsMjI4IEBACiAgICAgNjYsIDc5LCA3NiwgNDUsIDQ5LCA1MiwgMTI4LCA4MywgODksIDc3LCA2NiwgNzksIDc2LCA0NSwgNDksIDUxLCAxMjgsIDgzLCAKICAgICA4OSwgNzcsIDY2LCA3OSwgNzYsIDQ1LCA0OSwgNTAsIDEyOCwgODMsIDg5LCA3NywgNjYsIDc5LCA3NiwgNDUsIDQ5LCA0OSwgCiAgICAgMTI4LCA4MywgODksIDc3LCA2NiwgNzksIDc2LCA0NSwgNDksIDQ4LCAxMjgsIDgzLCA4OSwgNzcsIDY2LCA3OSwgNzYsIDQ1LCAKLSAgICA0OSwgMTI4LCA4MywgODksIDc2LCA3OSwgODQsIDIwMSwgODMsIDg5LCA2NSwgMTI4LCA4MywgODksIDEyOCwgODMsIDg3LCAKLSAgICA5MCwgMTI4LCA4MywgODcsIDg1LCA3OCwgMTk5LCA4MywgODcsIDc5LCA4MiwgNjgsIDgzLCAxMjgsIDgzLCA4NywgNzksIAotICAgIDgyLCA2OCwgMTI4LCA4MywgODcsIDc5LCA3OSwgMTI4LCA4MywgODcsIDc5LCAxMjgsIDgzLCA4NywgNzMsIDgyLCAyMDQsIAotICAgIDgzLCA4NywgNzMsIDc3LCA3NywgNzMsIDc4LCA3MSwgMTI4LCA4MywgODcsIDczLCA3NywgNzcsIDY5LCA4MiwgMTI4LCA4MywgCi0gICAgODcsIDczLCA3MywgMTI4LCA4MywgODcsIDczLCAxMjgsIDgzLCA4NywgNzEsIDEyOCwgODMsIDg3LCA2OSwgNjksIDg0LCAKLSAgICAxMjgsIDgzLCA4NywgNjksIDY5LCAyMTIsIDgzLCA4NywgNjksIDY1LCA4NCwgMTI4LCA4MywgODcsIDY5LCA2NSwgMjEyLCAKLSAgICA4MywgODcsIDY1LCA4MywgMjAwLCA4MywgODcsIDY1LCA4MCwgODAsIDczLCA3OCwgNzEsIDEyOCwgODMsIDg3LCA2NSwgNjUsIAotICAgIDEyOCwgODMsIDg3LCAxMjgsIDgzLCA4NiwgNjUsIDgzLCA4NCwgMjAxLCA4MywgODYsIDY1LCA4MiwgNzMsIDg0LCA2NSwgCi0gICAgMTI4LCA4MywgODYsIDY1LCA4MiwgNzMsIDg0LCAxOTMsIDgzLCA4NSwgODgsIDEyOCwgODMsIDg1LCA4NSwgMTI4LCA4MywgCi0gICAgODUsIDg0LCAxMjgsIDgzLCA4NSwgODMsIDgwLCA2OSwgNzgsIDgzLCA3MywgNzksIDIwNiwgODMsIDg1LCA4MywgNzIsIDczLCAKLSAgICAxMjgsIDgzLCA4NSwgODIsIDg4LCAxMjgsIDgzLCA4NSwgODIsIDgyLCA3OSwgODUsIDc4LCA2OCwgMTI4LCA4MywgODUsIAotICAgIDgyLCA4MiwgNzksIDg1LCA3OCwgMTk2LCA4MywgODUsIDgyLCA3MCwgNjksIDgyLCAxMjgsIDgzLCA4NSwgODIsIDcwLCA2NSwgCi0gICAgNjcsIDE5NywgODMsIDg1LCA4MiwgNjksIDEyOCwgODMsIDg1LCA4MiwgNjUsIDc4LCA3MSwgMTI4LCA4MywgODUsIDgyLCAKLSAgICA1NywgMTI4LCA4MywgODUsIDgyLCAxMjgsIDgzLCA4NSwgMjEwLCA4MywgODUsIDgwLCA4MiwgNjUsIDc2LCA3MywgNzgsIAotICAgIDY5LCA2NSwgMjEwLCA4MywgODUsIDgwLCA2OSwgODIsIDg2LCA3MywgODMsIDY5LCAxMjgsIDgzLCA4NSwgODAsIDY5LCA4MiwgCi0gICAgODMsIDY5LCA4NCwgMTI4LCA4MywgODUsIDgwLCA2OSwgODIsIDgzLCA2OSwgMjEyLCA4MywgODUsIDgwLCA2OSwgODIsIDgzLCAKLSAgICA2NywgODIsIDczLCA4MCwgMjEyLCA4MywgODUsIDgwLCA2OSwgODIsIDczLCA3NywgODAsIDc5LCA4MywgNjksIDE5NiwgODMsIAotICAgIDg1LCA4MCwgNjksIDgyLCA3MCwgNzMsIDg4LCA2OSwgMTk2LCA4MywgODUsIDgwLCA2OSwgMjEwLCA4MywgODUsIDgwLCAKLSAgICAxMjgsIDgzLCA4NSwgNzksIDg4LCAxMjgsIDgzLCA4NSwgNzksIDgwLCAxMjgsIDgzLCA4NSwgNzksIDEyOCwgODMsIDg1LCAKLSAgICA3OCwgODMsIDY5LCAyMTIsIDgzLCA4NSwgNzgsIDgyLCA3MywgODMsIDY5LCAxMjgsIDgzLCA4NSwgNzgsIDgyLCA3MywgODMsIAotICAgIDE5NywgODMsIDg1LCA3OCwgNzEsIDc2LCA2NSwgODMsIDgzLCA2OSwgODMsIDEyOCwgODMsIDg1LCA3OCwgNzEsIDEyOCwgCi0gICAgODMsIDg1LCA3OCwgNzAsIDc2LCA3OSwgODcsIDY5LCA4MiwgMTI4LCA4MywgODUsIDc4LCA2OCwgNjUsIDc4LCA2OSwgODMsIAotICAgIDE5NywgODMsIDg1LCA3OCwgMTI4LCA4MywgODUsIDIwNiwgODMsIDg1LCA3NywgNzcsIDY5LCA4MiwgMTI4LCA4MywgODUsIAotICAgIDc3LCA3NywgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDgzLCA4NSwgNzcsIDc3LCA2NSwgODQsIDczLCA3OSwgMjA2LCA4MywgCi0gICAgODUsIDc3LCA2NSwgODMsIDcyLCAxMjgsIDgzLCA4NSwgNzcsIDEyOCwgODMsIDg1LCA3NiwgNzAsIDg1LCA4MiwgMTI4LCAKLSAgICA4MywgODUsIDc1LCA4NSwgNzgsIDEyOCwgODMsIDg1LCA3NSwgODUsIDIwNiwgODMsIDg1LCA3NSwgODUsIDEyOCwgODMsIAotICAgIDg1LCA3NSwgMjEzLCA4MywgODUsIDczLCA4NCwgNjUsIDY2LCA3NiwgNjksIDEyOCwgODMsIDg1LCA3MywgODQsIDEyOCwgCi0gICAgODMsIDg1LCA3MiwgODUsIDgyLCAxMjgsIDgzLCA4NSwgNjksIDEyOCwgODMsIDg1LCA2OCwgNTAsIDEyOCwgODMsIDg1LCAKLSAgICA2OCwgMTI4LCA4MywgODUsIDY3LCA2NywgNjksIDY5LCA2OCwgODMsIDEyOCwgODMsIDg1LCA2NywgNjcsIDY5LCA2OSwgNjgsIAotICAgIDIxMSwgODMsIDg1LCA2NywgNjcsIDY5LCA2OSwgNjgsIDEyOCwgODMsIDg1LCA2NywgNjcsIDY5LCA2OSwgMTk2LCA4MywgCi0gICAgODUsIDY2LCA4NSwgNzgsIDczLCA4NCwgMTI4LCA4MywgODUsIDY2LCA4MywgODQsIDczLCA4NCwgODUsIDg0LCA3MywgNzksIAotICAgIDIwNiwgODMsIDg1LCA2NiwgODMsIDg0LCA3MywgODQsIDg1LCA4NCwgNjksIDEyOCwgODMsIDg1LCA2NiwgODMsIDg0LCA3MywgCi0gICAgODQsIDg1LCA4NCwgMTk3LCA4MywgODUsIDY2LCA4MywgNjksIDg0LCAxMjgsIDgzLCA4NSwgNjYsIDgzLCA2OSwgMjEyLCAKLSAgICA4MywgODUsIDY2LCA4MywgNjcsIDgyLCA3MywgODAsIDIxMiwgODMsIDg1LCA2NiwgODAsIDg1LCA3OCwgNjcsIDg0LCA3MywgCi0gICAgODMsIDEyOCwgODMsIDg1LCA2NiwgNzYsIDczLCA3OCwgNjksIDY1LCAyMTAsIDgzLCA4NSwgNjYsIDc2LCA3MywgNzcsIDY1LCAKLSAgICA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4MywgODUsIDY2LCA3NiwgNzMsIDc3LCA2NSwgODQsIDY5LCA0NSwgNTEsIDEyOCwgODMsIAotICAgIDg1LCA2NiwgNzYsIDczLCA3NywgNjUsIDg0LCA2OSwgNDUsIDUwLCAxMjgsIDgzLCA4NSwgNjYsIDc2LCA3MywgNzcsIDY1LCAKLSAgICA4NCwgNjksIDEyOCwgODMsIDg1LCA2NiwgNzYsIDczLCA3NywgNjUsIDg0LCAxOTcsIDgzLCA4NSwgNjYsIDc0LCA3OSwgNzMsIAotICAgIDc4LCA2OSwgMTk2LCA4MywgODUsIDY2LCA3NCwgNjksIDY3LCA4NCwgMTI4LCA4MywgODUsIDY2LCA3MywgODQsIDc5LCAKLSAgICAxMjgsIDgzLCA4NSwgNjYsIDcxLCA4MiwgNzksIDg1LCA4MCwgMTI4LCA4MywgODUsIDY2LCA3MSwgODIsIDc5LCA4NSwgCi0gICAgMjA4LCA4MywgODUsIDY1LCA2OSwgODQsIDEyOCwgODMsIDg1LCA2NSwgNjksIDc4LCAxMjgsIDgzLCA4NSwgNjUsIDY5LCAKLSAgICAxMjgsIDgzLCA4NSwgNjUsIDEyOCwgODMsIDIxMywgODMsIDg0LCA4NywgNjUsIDEyOCwgODMsIDg0LCA4NSwgNjgsIDg5LCAKLSAgICAxMjgsIDgzLCA4NCwgODUsIDY3LCA3NSwgNDUsIDc5LCA4NSwgMjEyLCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCA4MywgCi0gICAgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCAyMTEsIDgzLCA4NCwgODIsIDc5LCA3NSwgNjksIDQ1LCA1NywgMTI4LCAKLSAgICA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCA0NSwgNTYsIDEyOCwgODMsIDg0LCA4MiwgNzksIDc1LCA2OSwgNDUsIDU1LCAxMjgsIAotICAgIDgzLCA4NCwgODIsIDc5LCA3NSwgNjksIDQ1LCA1NCwgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCA0NSwgNTMsIDEyOCwgCi0gICAgODMsIDg0LCA4MiwgNzksIDc1LCA2OSwgNDUsIDUyLCAxMjgsIDgzLCA4NCwgODIsIDc5LCA3NSwgNjksIDQ1LCA1MSwgMTI4LCAKLSAgICA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCA0NSwgNTAsIDEyOCwgODMsIDg0LCA4MiwgNzksIDc1LCA2OSwgNDUsIDQ5LCA0OSwgCi0gICAgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCA0NSwgNDksIDQ4LCAxMjgsIDgzLCA4NCwgODIsIDc5LCA3NSwgNjksIDQ1LCAKLSAgICA0OSwgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDE5NywgODMsIDg0LCA4MiwgNzMsIDgwLCA2OSwgMTI4LCA4MywgODQsIAotICAgIDgyLCA3MywgNzUsIDY5LCA4NCwgNzIsIDgyLCA3OSwgODUsIDcxLCA3MiwgMTI4LCA4MywgODQsIDgyLCA3MywgNjgsIDY5LCAKLSAgICAxMjgsIDgzLCA4NCwgODIsIDczLCA2NywgODQsIDc2LCAyMTcsIDgzLCA4NCwgODIsIDY5LCA4NCwgNjcsIDcyLCA2OSwgCi0gICAgMTk2LCA4MywgODQsIDgyLCA2OSwgODMsIDIxMSwgODMsIDg0LCA4MiwgNjksIDc4LCA3MSwgODQsIDcyLCAxMjgsIDgzLCAKLSAgICA4NCwgODIsIDY5LCA2NSwgNzcsIDY5LCA4MiwgMTI4LCA4MywgODQsIDgyLCA2NSwgODcsIDY2LCA2OSwgODIsIDgyLCA4OSwgCi0gICAgMTI4LCA4MywgODQsIDgyLCA2NSwgODQsIDg1LCA3NywgNDUsIDUwLCAxMjgsIDgzLCA4NCwgODIsIDY1LCA4NCwgODUsIDc3LCAKLSAgICAxMjgsIDgzLCA4NCwgODIsIDY1LCA4NCwgODUsIDIwNSwgODMsIDg0LCA4MiwgNjUsIDg0LCA3MywgNjUsIDIwNiwgODMsIAotICAgIDg0LCA4MiwgNjUsIDczLCA3OCwgNjksIDgyLCAxMjgsIDgzLCA4NCwgODIsIDY1LCA3MywgNzEsIDcyLCA4NCwgNzgsIDY5LCAKLSAgICA4MywgODMsIDEyOCwgODMsIDg0LCA4MiwgNjUsIDczLCA3MSwgNzIsIDIxMiwgODMsIDg0LCA4MiwgNjUsIDczLCA3MCwgCi0gICAgMTI4LCA4MywgODQsIDgyLCA2NSwgNzEsIDcxLCA3MywgODMsIDc3LCA2NSwgODQsIDY1LCAxMjgsIDgzLCA4NCwgNzksIDg2LCAKLSAgICA2OSwgMTI4LCA4MywgODQsIDc5LCA4MiwgNjksIDEyOCwgODMsIDg0LCA3OSwgODAsIDg3LCA2NSwgODQsIDY3LCA3MiwgCi0gICAgMTI4LCA4MywgODQsIDc5LCA4MCwgODAsIDczLCA3OCwgNzEsIDEyOCwgODMsIDg0LCA3OSwgODAsIDgwLCA2NSwgNzEsIDY5LCAKLSAgICAxMjgsIDgzLCA4NCwgNzksIDgwLCAxMjgsIDgzLCA4NCwgNzksIDIwOCwgODMsIDg0LCA3OSwgNzgsIDY5LCAxMjgsIDgzLCAKLSAgICA4NCwgNzksIDY3LCA3NSwgMTI4LCA4MywgODQsIDczLCA3NywgNzcsIDY5LCAxMjgsIDgzLCA4NCwgNzMsIDc2LCAyMDQsIAotICAgIDgzLCA4NCwgNzMsIDc2LCAxOTcsIDgzLCA4NCwgNzMsIDcxLCA3NywgNjUsIDEyOCwgODMsIDg0LCA2OSwgODAsIDEyOCwgCi0gICAgODMsIDg0LCA2OSwgNzcsIDEyOCwgODMsIDg0LCA2OSwgMjA1LCA4MywgODQsIDY5LCA2NSwgNzcsIDczLCA3OCwgMTk5LCAKLSAgICA4MywgODQsIDY5LCA2NSwgNzcsIDEyOCwgODMsIDg0LCA2OSwgNjUsIDIwNSwgODMsIDg0LCA2NSwgODYsIDgyLCA3OSwgODUsIAotICAgIDEyOCwgODMsIDg0LCA2NSwgODYsIDgyLCA3OSwgODMsIDEyOCwgODMsIDg0LCA2NSwgODYsIDgyLCA3OSwgMjExLCA4MywgCi0gICAgODQsIDY1LCA4NSwgODIsIDc5LCA4MywgMTI4LCA4MywgODQsIDY1LCA4NCwgODUsIDE5NywgODMsIDg0LCA2NSwgODQsIDczLCAKLSAgICA3OSwgNzgsIDEyOCwgODMsIDg0LCA2NSwgODQsIDY5LCA4MiwgODMsIDEyOCwgODMsIDg0LCA2NSwgODIsIDIxMiwgODMsIAotICAgIDg0LCA2NSwgODIsIDgzLCAxMjgsIDgzLCA4NCwgNjUsIDgyLCA4MiwgNjksIDE5NiwgODMsIDg0LCA2NSwgODIsIDc1LCAKLSAgICAxMjgsIDgzLCA4NCwgNjUsIDgyLCAxMjgsIDgzLCA4NCwgNjUsIDIxMCwgODMsIDg0LCA2NSwgNzgsIDY4LCA4MywgODQsIAotICAgIDczLCA3NiwgNzYsIDEyOCwgODMsIDg0LCA2NSwgNzgsIDY4LCA2NSwgODIsIDE5NiwgODMsIDg0LCA2NSwgNzgsIDY4LCAKLSAgICAxMjgsIDgzLCA4NCwgNjUsIDc4LCAxMjgsIDgzLCA4NCwgNjUsIDc2LCA3NiwgNzMsIDc5LCA3OCwgMTI4LCA4MywgODQsIAotICAgIDY1LCA3MCwgNzAsIDEyOCwgODMsIDg0LCA2NSwgNzAsIDE5OCwgODMsIDg0LCA2NSwgNjcsIDY3LCA2NSwgODQsIDc5LCAKLSAgICAxMjgsIDgzLCA4NCwgNjUsIDY3LCA2NywgNjUsIDg0LCA3MywgODMsIDgzLCA3MywgNzcsIDc5LCAxMjgsIDgzLCA4NCwgNTAsIAotICAgIDEyOCwgODMsIDgzLCA4OSwgODgsIDEyOCwgODMsIDgzLCA4OSwgODQsIDEyOCwgODMsIDgzLCA4OSwgODIsIDg4LCAxMjgsIAotICAgIDgzLCA4MywgODksIDgyLCAxMjgsIDgzLCA4MywgODksIDgwLCAxMjgsIDgzLCA4MywgODksIDEyOCwgODMsIDgzLCA4NSwgCi0gICAgODgsIDEyOCwgODMsIDgzLCA4NSwgODQsIDEyOCwgODMsIDgzLCA4NSwgODAsIDEyOCwgODMsIDgzLCA3OSwgODgsIDEyOCwgCi0gICAgODMsIDgzLCA3OSwgODQsIDEyOCwgODMsIDgzLCA3OSwgODAsIDEyOCwgODMsIDgzLCA3OSwgMTI4LCA4MywgODMsIDczLCAKLSAgICA4OCwgMTI4LCA4MywgODMsIDczLCA4NCwgMTI4LCA4MywgODMsIDczLCA4MCwgMTI4LCA4MywgODMsIDczLCA2OSwgODgsIAotICAgIDEyOCwgODMsIDgzLCA3MywgNjksIDgwLCAxMjgsIDgzLCA4MywgNzMsIDY5LCAxMjgsIDgzLCA4MywgNzMsIDEyOCwgODMsIAotICAgIDgzLCA3MiwgNjksIDEyOCwgODMsIDgzLCA2OSwgODgsIDEyOCwgODMsIDgzLCA2OSwgODAsIDEyOCwgODMsIDgzLCA2OSwgCi0gICAgNjksIDEyOCwgODMsIDgzLCA2NSwgODgsIDEyOCwgODMsIDgzLCA2NSwgODQsIDEyOCwgODMsIDgzLCA2NSwgODAsIDEyOCwgCi0gICAgODMsIDgzLCA2NSwgNzgsIDcxLCA4OSwgNjksIDc5LCA4MiwgNzMsIDc4LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDEyOCwgODMsIAotICAgIDgzLCA2NSwgNzgsIDcxLCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCA0NSwgODAsIDczLCA2OSwgODUsIDgwLCAxMjgsIDgzLCAKLSAgICA4MywgNjUsIDc4LCA3MSwgODQsIDczLCA3NSwgNjksIDg1LCA4NCwgMTI4LCA4MywgODMsIDY1LCA3OCwgNzEsIDg0LCA3MiwgCi0gICAgNzMsIDY5LCA4NSwgODQsIDcyLCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgODMsIDczLCA3OSwgODMsIDQ1LCA4NCwgNzMsIAotICAgIDc1LCA2OSwgODUsIDg0LCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgODMsIDczLCA3OSwgODMsIDQ1LCA4MCwgNzMsIDY5LCAKLSAgICA4NSwgODAsIDEyOCwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MywgNzMsIDc5LCA4MywgNDUsIDc1LCA3MywgODksIDY5LCA3OSwgCi0gICAgNzUsIDEyOCwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MywgNzMsIDc5LCA4MywgMTI4LCA4MywgODMsIDY1LCA3OCwgNzEsIDgyLCAKLSAgICA3MywgNjksIDg1LCA3NiwgNDUsIDc1LCA3MiwgNzMsIDY5LCA4NSwgNzUsIDcyLCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgCi0gICAgODIsIDczLCA2OSwgODUsIDc2LCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgODAsIDczLCA2OSwgODUsIDgwLCAxMjgsIDgzLCAKLSAgICA4MywgNjUsIDc4LCA3MSwgNzgsIDczLCA2OSwgODUsIDc4LCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgNzcsIDczLCA2OSwgCi0gICAgODUsIDc3LCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgMTI4LCA4MywgODMsIDY1LCAKLSAgICA3OCwgNzEsIDczLCA2OSwgODUsIDc4LCA3MSwgMTI4LCA4MywgODMsIDY1LCA3OCwgNzEsIDcyLCA3MywgNjksIDg1LCA3MiwgCi0gICAgMTI4LCA4MywgODMsIDY1LCA3OCwgNzEsIDY3LCA3MywgNjksIDg1LCA2NywgNDUsIDcyLCA3MywgNjksIDg1LCA3MiwgMTI4LCAKLSAgICA4MywgODMsIDY1LCA3OCwgNzEsIDY3LCA3MywgNjksIDg1LCA2NywgMTI4LCA4MywgODMsIDY1LCA3OCwgNzEsIDY1LCA4MiwgCi0gICAgNjUsIDY5LCA2NSwgMTI4LCA4MywgODMsIDY1LCA2NSwgMTI4LCA4MywgODMsIDY1LCAxMjgsIDgzLCA4MiwgMTI4LCA4MywgCi0gICAgODEsIDg1LCA3MywgODMsIDIwMCwgODMsIDgxLCA4NSwgNzMsIDgyLCA4MiwgNjksIDIwNCwgODMsIDgxLCA4NSwgNzMsIDcxLCAKLSAgICA3MSwgNzYsIDE5NywgODMsIDgxLCA4NSwgNjUsIDIxMiwgODMsIDgxLCA4NSwgNjUsIDgyLCA2OSwgODMsIDEyOCwgODMsIAotICAgIDgxLCA4NSwgNjUsIDgyLCA2OSwgNjgsIDEyOCwgODMsIDgxLCA4NSwgNjUsIDgyLCA2OSwgMTI4LCA4MywgODAsIDg3LCA2NSwgCi0gICAgMTI4LCA4MywgODAsIDg1LCA3OCwgNzEsIDIxMSwgODMsIDgwLCA4MiwgNzksIDg1LCA4NCwgMTI4LCA4MywgODAsIDgyLCAKLSAgICA3MywgNzgsIDcxLCA4MywgMTI4LCA4MywgODAsIDgyLCA3MywgNzgsIDcxLCAxMjgsIDgzLCA4MCwgODIsIDY5LCA2NywgNzIsIAotICAgIDcxLCA2OSwgODMsIDY1LCA3OCwgMTk5LCA4MywgODAsIDc5LCA4NSwgODQsIDczLCA3OCwgMTk5LCA4MywgODAsIDc5LCA4NCwgCi0gICAgMTI4LCA4MywgODAsIDc5LCA3OSwgNzgsIDEyOCwgODMsIDgwLCA3NiwgNzMsIDg0LCA4NCwgNzMsIDc4LCAxOTksIDgzLCAKLSAgICA4MCwgNzYsIDY1LCA4MywgNzIsIDczLCA3OCwgMTk5LCA4MywgODAsIDczLCA4MiwgNzMsIDg0LCA4NSwgMjExLCA4MywgODAsIAotICAgIDczLCA4MiwgNzMsIDg0LCAxMjgsIDgzLCA4MCwgNzMsIDgyLCA3MywgMjEyLCA4MywgODAsIDczLCA4MiwgNjUsIDc4LCA4NCwgCi0gICAgMTI4LCA4MywgODAsIDczLCA4MiwgNjUsIDc2LCAxMjgsIDgzLCA4MCwgNzMsIDgyLCA2NSwgMjA0LCA4MywgODAsIDczLCAKLSAgICA2OCwgNjksIDgyLCAyMTcsIDgzLCA4MCwgNzMsIDY3LCA2OSwgMTI4LCA4MywgODAsIDcyLCA2OSwgODIsIDczLCA2NywgNjUsIAotICAgIDIwNCwgODMsIDgwLCA2OSwgODMsIDc3LCA3MywgNzYsIDIwNywgODMsIDgwLCA2OSwgNjksIDY4LCA2NiwgNzksIDY1LCA4NCwgCi0gICAgMTI4LCA4MywgODAsIDY5LCA2OSwgNjcsIDcyLCAxMjgsIDgzLCA4MCwgNjksIDY5LCA2NywgMjAwLCA4MywgODAsIDY5LCAKLSAgICA2NywgNzMsIDY1LCA3NiwgMTI4LCA4MywgODAsIDY5LCA2NSwgODIsIDEyOCwgODMsIDgwLCA2OSwgNjUsIDc1LCA2OSwgODIsIAotICAgIDEyOCwgODMsIDgwLCA2OSwgNjUsIDc1LCA2OSwgMjEwLCA4MywgODAsIDY5LCA2NSwgNzUsIDQ1LCA3OCwgNzksIDQ1LCA2OSwgCi0gICAgODYsIDczLCAyMDQsIDgzLCA4MCwgNjUsIDg0LCA3MiwgNzMsIDEyOCwgODMsIDgwLCA2NSwgODIsIDc1LCA3NiwgNzMsIDc4LCAKLSAgICAxOTksIDgzLCA4MCwgNjUsIDgyLCA3NSwgNzYsIDY5LCA4MywgMTI4LCA4MywgODAsIDY1LCA4MiwgNzUsIDc2LCA2OSwgODIsIAotICAgIDEyOCwgODMsIDgwLCA2NSwgODIsIDc1LCA3NiwgNjksIDEyOCwgODMsIDgwLCA2NSwgNzEsIDcyLCA2OSwgODQsIDg0LCA3MywgCi0gICAgMTI4LCA4MywgODAsIDY1LCA2OCwgNjksIDgzLCAxMjgsIDgzLCA4MCwgNjUsIDY4LCAxOTcsIDgzLCA4MCwgNjUsIDY3LCAKLSAgICA3MywgNzgsIDE5OSwgODMsIDgwLCA2NSwgNjcsIDE5NywgODMsIDgwLCAxMjgsIDgzLCA3OSwgODksIDEyOCwgODMsIDc5LCAKLSAgICA4NywgNzMsIDc2LCAyMDcsIDgzLCA3OSwgODcsIDEyOCwgODMsIDc5LCA4NSwgODQsIDcyLCA2OSwgODIsIDIwNiwgODMsIAotICAgIDc5LCA4NSwgODQsIDcyLCA0NSwgODMsIDc2LCA2NSwgODYsIDY5LCAyMTcsIDgzLCA3OSwgODUsIDg0LCAyMDAsIDgzLCA3OSwgCi0gICAgODUsIDgyLCA2NywgNjksIDEyOCwgODMsIDc5LCA4NSwgNzgsIDY4LCAxMjgsIDgzLCA3OSwgODUsIDc4LCAxOTYsIDgzLCAKLSAgICA3OSwgODUsIDc4LCA2NSwgODAsIDEyOCwgODMsIDc5LCA4NSwgMTI4LCA4MywgNzksIDgzLCAxMjgsIDgzLCA3OSwgODEsIAotICAgIDEyOCwgODMsIDc5LCA3OSwgMjA2LCA4MywgNzksIDc5LCAxMjgsIDgzLCA3OSwgNzgsIDc0LCA2NSwgNzcsIDEyOCwgODMsIAotICAgIDc5LCA3OCwgNzEsIDEyOCwgODMsIDc5LCA3OCwgMTI4LCA4MywgNzksIDc3LCAxMjgsIDgzLCA3OSwgNzYsIDczLCA2OCwgCi0gICAgODUsIDgzLCAxMjgsIDgzLCA3OSwgNzYsIDczLCA2OCwgODUsIDIxMSwgODMsIDc5LCA3MSwgNjgsIDczLCA2NSwgMjA2LCAKLSAgICA4MywgNzksIDcwLCA4NCwgODcsIDY1LCA4MiwgNjksIDQ1LCA3MCwgODUsIDc4LCA2NywgODQsIDczLCA3OSwgMjA2LCA4MywgCi0gICAgNzksIDcwLCA4NCwgNzgsIDY5LCA4MywgODMsIDEyOCwgODMsIDc5LCA3MCwgMjEyLCA4MywgNzksIDE5OCwgODMsIDc5LCAKLSAgICA2NywgNzMsIDY5LCA4NCwgODksIDEyOCwgODMsIDc5LCA2NywgNjcsIDY5LCAyMTAsIDgzLCA3OSwgNjUsIDgwLCAxMjgsIAotICAgIDgzLCA3OSwgNjUsIDEyOCwgODMsIDIwNywgODMsIDc4LCA3OSwgODcsIDc3LCA2NSwgNzgsIDEyOCwgODMsIDc4LCA3OSwgCi0gICAgODcsIDc3LCA2NSwgMjA2LCA4MywgNzgsIDc5LCA4NywgNzAsIDc2LCA2NSwgNzUsIDY5LCAxMjgsIDgzLCA3OCwgNzksIDg3LCAKLSAgICA2NiwgNzksIDY1LCA4MiwgNjgsIDY5LCA4MiwgMTI4LCA4MywgNzgsIDc5LCA4NywgMTI4LCA4MywgNzgsIDc5LCA4NSwgODQsIAotICAgIDEyOCwgODMsIDc4LCA3OSwgODUsIDIxMiwgODMsIDc4LCA2NSwgMjA4LCA4MywgNzgsIDY1LCA3NSwgNjksIDEyOCwgODMsIAotICAgIDc4LCA2NSwgNzUsIDE5NywgODMsIDc4LCA2NSwgNzMsIDc2LCAxMjgsIDgzLCA3OCwgMTkzLCA4MywgNzcsIDc5LCA3NSwgCi0gICAgNzMsIDc4LCAxOTksIDgzLCA3NywgNzMsIDgyLCA3NSwgNzMsIDc4LCAxOTksIDgzLCA3NywgNzMsIDc2LCA3MywgNzgsIAotICAgIDE5OSwgODMsIDc3LCA3MywgNzYsIDY5LCAxMjgsIDgzLCA3NywgNjksIDY1LCA4MiwgMTI4LCA4MywgNzcsIDY1LCA4MywgCi0gICAgMjAwLCA4MywgNzcsIDY1LCA3NiwgNzYsIDY5LCAyMTAsIDgzLCA3NywgNjUsIDc2LCA3NiwgMTI4LCA4MywgNzYsIDg1LCAKLSAgICA4MiwgMTI4LCA4MywgNzYsIDc5LCA4NywgNzYsIDg5LCAxMjgsIDgzLCA3NiwgNzksIDIxNSwgODMsIDc2LCA3OSwgODYsIAotICAgIDc5LCAxMjgsIDgzLCA3NiwgNzksIDIxMiwgODMsIDc2LCA3OSwgODAsIDczLCA3OCwgMTk5LCA4MywgNzYsIDc5LCA4MCwgCi0gICAgNjksIDEyOCwgODMsIDc2LCA3MywgNzgsIDcxLCAxMjgsIDgzLCA3NiwgNzMsIDY4LCA3MywgNzgsIDcxLCAxMjgsIDgzLCAKLSAgICA3NiwgNzMsIDY3LCA2OSwgMTI4LCA4MywgNzYsIDczLCA2NywgMTk3LCA4MywgNzYsIDY5LCA2OSwgODAsIDIxNywgODMsIAotICAgIDc2LCA2OSwgNjksIDgwLCA3MywgNzgsIDE5OSwgODMsIDc2LCA2NSwgODYsIDc5LCA3OCwgNzMsIDE5NSwgODMsIDc2LCA2NSwgCi0gICAgODYsIDY5LCAxMjgsIDgzLCA3NiwgNjUsIDgzLCA3MiwgMTI4LCA4MywgNzYsIDY1LCA4MywgMjAwLCA4MywgNzYsIDY1LCAKLSAgICA3OCwgODQsIDY5LCAxOTYsIDgzLCA3NSwgODcsIDY1LCAxMjgsIDgzLCA3NSwgODcsIDEyOCwgODMsIDc1LCA4NSwgNzYsIAotICAgIDc2LCAxMjgsIDgzLCA3NSwgODUsIDc2LCAyMDQsIDgzLCA3NSwgNzYsIDczLCA4MiwgNzksIDIwNiwgODMsIDc1LCA3MywgCi0gICAgNzgsIDEyOCwgODMsIDc1LCA3MywgNjksIDgyLCAxMjgsIDgzLCA3NSwgMjAxLCA4MywgNzUsIDY5LCA4NywgNjksIDE5NiwgCi0gICAgODMsIDc1LCA2NSwgODQsIDY5LCAxMjgsIDgzLCA3NSwgMTI4LCA4MywgNzQsIDY5LCAxMjgsIDgzLCA3MywgODgsIDg0LCAKLSAgICA4OSwgNDUsIDcwLCA3OSwgODUsIDgyLCA4NCwgMjAwLCA4MywgNzMsIDg4LCA4NCwgODksIDEyOCwgODMsIDczLCA4OCwgODQsIAotICAgIDIxNywgODMsIDczLCA4OCwgODQsIDcyLCA4MywgMTI4LCA4MywgNzMsIDg4LCA4NCwgNzIsIDIxMSwgODMsIDczLCA4OCwgCi0gICAgODQsIDcyLCAxMjgsIDgzLCA3MywgODgsIDg0LCA2OSwgNjksIDc4LCA4NCwgNzIsIDgzLCAxMjgsIDgzLCA3MywgODgsIDg0LCAKLSAgICA2OSwgNjksIDc4LCA4NCwgNzIsIDEyOCwgODMsIDczLCA4OCwgODQsIDY5LCA2OSwgNzgsIDg0LCAyMDAsIDgzLCA3MywgODgsIAotICAgIDg0LCA2OSwgNjksIDc4LCAxMjgsIDgzLCA3MywgODgsIDg0LCA2OSwgNjksIDIwNiwgODMsIDczLCA4OCwgNDUsIDg0LCA3MiwgCi0gICAgNzMsIDgyLCA4NCwgODksIDEyOCwgODMsIDczLCA4OCwgNDUsIDgzLCA4NCwgODIsIDczLCA3OCwgMTk5LCA4MywgNzMsIDg4LCAKLSAgICA0NSwgODAsIDY5LCA4MiwgNDUsIDY5LCAyMDUsIDgzLCA3MywgODgsIDQ1LCA3NiwgNzMsIDc4LCAxOTcsIDgzLCA3MywgCi0gICAgMjE2LCA4MywgNzMsIDg0LCA2OSwgMTI4LCA4MywgNzMsIDgzLCA2NSwgMTI4LCA4MywgNzMsIDgyLCA3MywgNzgsIDcxLCAKLSAgICA4NSwgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDg0LCA3MiwgNzMsIDY5LCA4NSwgODQsIDcyLCAxMjgsIDgzLCA3MywgNzksIAotICAgIDgzLCA0NSwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MywgNzMsIDc5LCA4MywgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDgyLCAKLSAgICA3MywgNjksIDg1LCA3NiwgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDc1LCA3MywgCi0gICAgODksIDY5LCA3OSwgNzUsIDEyOCwgODMsIDczLCA3OSwgODMsIDQ1LCA4MCwgNzIsIDczLCA2OSwgODUsIDgwLCA3MiwgMTI4LCAKLSAgICA4MywgNzMsIDc5LCA4MywgNDUsIDgwLCA2NSwgNzgsIDgzLCA3MywgNzksIDgzLCAxMjgsIDgzLCA3MywgNzksIDgzLCA0NSwgCi0gICAgNzgsIDczLCA2OSwgODUsIDc4LCAxMjgsIDgzLCA3MywgNzksIDgzLCA0NSwgNzcsIDczLCA2OSwgODUsIDc3LCAxMjgsIDgzLCAKLSAgICA3MywgNzksIDgzLCA0NSwgNzUsIDcyLCA3MywgNjksIDg1LCA3NSwgNzIsIDEyOCwgODMsIDczLCA3OSwgODMsIDQ1LCA3NSwgCi0gICAgNjUsIDgwLCA4OSwgNjksIDc5LCA4NSwgNzgsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIAotICAgIDczLCA2OSwgODUsIDc4LCA3MSwgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDcyLCA3MywgNjksIDg1LCA3MiwgMTI4LCA4MywgCi0gICAgNzMsIDc5LCA4MywgNDUsIDY3LCA3MywgNjksIDg1LCA2NywgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDY3LCA3MiwgNzMsIAotICAgIDY5LCA4NSwgNjcsIDcyLCAxMjgsIDgzLCA3MywgNzksIDIxMSwgODMsIDczLCA3OCwgNzUsIDczLCA3OCwgNzEsIDEyOCwgCi0gICAgODMsIDczLCA3OCwgNzEsIDc2LCA2OSwgNDUsIDc2LCA3MywgNzgsIDE5NywgODMsIDczLCA3OCwgNzEsIDc2LCA2OSwgMTI4LCAKLSAgICA4MywgNzMsIDc4LCA3MSwgNzYsIDE5NywgODMsIDczLCA3OCwgNzEsIDY1LCA2NSwgODQsIDEyOCwgODMsIDczLCA3OCwgCi0gICAgMTk3LCA4MywgNzMsIDc4LCA2OCwgNzIsIDIwMSwgODMsIDczLCAyMDYsIDgzLCA3MywgNzcsIDgwLCA3NiwgNzMsIDcwLCAKLSAgICA3MywgNjksIDE5NiwgODMsIDczLCA3NywgNzMsIDc2LCA2NSwgODIsIDEyOCwgODMsIDczLCA3NywgNzMsIDc2LCA2NSwgCi0gICAgMjEwLCA4MywgNzMsIDc3LCA2NSwgNzgsIDgzLCA3MywgMjExLCA4MywgNzMsIDc3LCA2NSwgNzYsIDg1LCA3OCwgNzEsIDg1LCAKLSAgICAyMDYsIDgzLCA3MywgNzcsIDY1LCAxMjgsIDgzLCA3MywgNzYsIDg2LCA2OSwgODIsIDEyOCwgODMsIDczLCA3NiwgNzUsIAotICAgIDEyOCwgODMsIDczLCA3NiwgNzMsIDgxLCA4NSwgMTkzLCA4MywgNzMsIDc2LCA3MiwgNzksIDg1LCA2OSwgODQsIDg0LCA2OSwgCi0gICAgMTI4LCA4MywgNzMsIDc2LCA3MiwgNzksIDg1LCA2OSwgODQsIDg0LCAxOTcsIDgzLCA3MywgNzYsIDY1LCA1MSwgMTI4LCAKLSAgICA4MywgNzMsIDc1LCA3MywgMTI4LCA4MywgNzMsIDc1LCA1MCwgMTI4LCA4MywgNzMsIDc1LCAxNzgsIDgzLCA3MywgNzMsIAotICAgIDEyOCwgODMsIDczLCA3MSwgNzgsIDgzLCAxMjgsIDgzLCA3MywgNzEsIDc3LCA2NSwgMTI4LCA4MywgNzMsIDcxLCA3NywgCi0gICAgMTkzLCA4MywgNzMsIDcxLCA2OSwgMjA0LCA4MywgNzMsIDcxLCA1MiwgMTI4LCA4MywgNzMsIDcxLCAxODAsIDgzLCA3MywgCi0gICAgNzEsIDEyOCwgODMsIDczLCA2OSwgNjksIDEyOCwgODMsIDczLCA2OCwgNjksIDg3LCA2NSwgODksIDIxMSwgODMsIDczLCAKLSAgICA2NywgNzUsIDc4LCA2OSwgODMsIDgzLCAxMjgsIDgzLCA3MywgNjcsIDc1LCA3NiwgNjksIDEyOCwgODMsIDczLCA2NiwgCi0gICAgMTk3LCA4MywgMjAxLCA4MywgNzIsIDg5LCA4OCwgMTI4LCA4MywgNzIsIDg5LCA4NCwgMTI4LCA4MywgNzIsIDg5LCA4MiwgCi0gICAgODgsIDEyOCwgODMsIDcyLCA4OSwgODIsIDEyOCwgODMsIDcyLCA4OSwgODAsIDEyOCwgODMsIDcyLCA4OSwgNjksIDEyOCwgCi0gICAgODMsIDcyLCA4OSwgNjUsIDEyOCwgODMsIDcyLCA4OSwgMTI4LCA4MywgNzIsIDg3LCA3OSwgODksIDEyOCwgODMsIDcyLCAKLSAgICA4NywgNzksIDc5LCAxMjgsIDgzLCA3MiwgODcsIDc5LCAxMjgsIDgzLCA3MiwgODcsIDczLCA3MywgMTI4LCA4MywgNzIsIAotICAgIDg3LCA3MywgMTI4LCA4MywgNzIsIDg3LCA2OSwgMTI4LCA4MywgNzIsIDg3LCA2NSwgNjUsIDEyOCwgODMsIDcyLCA4NywgCi0gICAgNjUsIDEyOCwgODMsIDcyLCA4NSwgODgsIDEyOCwgODMsIDcyLCA4NSwgODQsIDEyOCwgODMsIDcyLCA4NSwgODIsIDg4LCAKLSAgICAxMjgsIDgzLCA3MiwgODUsIDgyLCAxMjgsIDgzLCA3MiwgODUsIDgwLCAxMjgsIDgzLCA3MiwgODUsIDc5LCA4OCwgMTI4LCAKLSAgICA4MywgNzIsIDg1LCA3OSwgODAsIDEyOCwgODMsIDcyLCA4NSwgNzksIDEyOCwgODMsIDcyLCA4NSwgNzcsIDEyOCwgODMsIAotICAgIDcyLCA4NSwgNzAsIDcwLCA3NiwgMTk3LCA4MywgNzIsIDg1LCA2OSwgODEsIDEyOCwgODMsIDcyLCA4NSwgNjksIDc4LCA4MywgCi0gICAgNzIsIDg1LCA2OSwgODQsIDEyOCwgODMsIDcyLCA4NSwgNjYsIDg1LCA4MiwgMTI4LCA4MywgNzIsIDg1LCA1MCwgMTI4LCAKLSAgICA4MywgNzIsIDg1LCAxNzgsIDgzLCA3MiwgODUsIDEyOCwgODMsIDcyLCAyMTMsIDgzLCA3MiwgODQsIDY1LCA4MCwgNzMsIAotICAgIDY3LCAxMjgsIDgzLCA3MiwgODQsIDY1LCAxMjgsIDgzLCA3MiwgODIsIDczLCA3OCwgNjksIDEyOCwgODMsIDcyLCA4MiwgCi0gICAgNzMsIDc3LCA4MCwgMTI4LCA4MywgNzIsIDc5LCA4OSwgMTI4LCA4MywgNzIsIDc5LCA4OCwgMTI4LCA4MywgNzIsIDc5LCAKLSAgICA4NywgNjksIDgyLCAxMjgsIDgzLCA3MiwgNzksIDg1LCA3NiwgNjgsIDY5LCA4MiwgNjksIDE5NiwgODMsIDcyLCA3OSwgODQsIAotICAgIDEyOCwgODMsIDcyLCA3OSwgODIsIDg0LCA4MywgMTI4LCA4MywgNzIsIDc5LCA4MiwgODQsIDIxMSwgODMsIDcyLCA3OSwgCi0gICAgODIsIDg0LCA2OSwgNzgsIDY5LCA4MiwgMTI4LCA4MywgNzIsIDc5LCA4MiwgODQsIDY3LCA2NSwgNzUsIDY5LCAxMjgsIDgzLCAKLSAgICA3MiwgNzksIDgyLCA4NCwgNDUsIDg0LCA4NywgNzMsIDcxLCA0NSwgODksIDgyLCAxMjgsIDgzLCA3MiwgNzksIDgyLCA4NCwgCi0gICAgNDUsIDg0LCA4NywgNzMsIDcxLCA0NSwgODQsIDg5LCAyMTAsIDgzLCA3MiwgNzksIDgyLCA4NCwgNDUsIDg0LCA4NywgNzMsIAotICAgIDcxLCA0NSwgODMsIDc5LCAyMDQsIDgzLCA3MiwgNzksIDgyLCA4NCwgNDUsIDg0LCA4NywgNzMsIDcxLCA0NSwgNzksIDgzLCAKLSAgICAyMTEsIDgzLCA3MiwgNzksIDgyLCA4NCwgNDUsIDg0LCA4NywgNzMsIDcxLCA0NSwgNzgsIDY1LCA4NSwgMTk2LCA4MywgNzIsIAotICAgIDc5LCA4MiwgODQsIDQ1LCA4NCwgODcsIDczLCA3MSwgNDUsIDc3LCA2NSwgNjgsIDIxMCwgODMsIDcyLCA3OSwgODIsIDg0LCAKLSAgICA0NSwgODQsIDg3LCA3MywgNzEsIDQ1LCA3MiwgNjUsIDcxLCA2NSwgNzYsIDIwNCwgODMsIDcyLCA3OSwgODIsIDg0LCA0NSwgCi0gICAgODQsIDg3LCA3MywgNzEsIDQ1LCA2NiwgNzQsIDY1LCA4MiwgNzUsIDY1LCAyMDYsIDgzLCA3MiwgNzksIDgyLCA4NCwgNDUsIAotICAgIDg0LCA4NywgNzMsIDcxLCA0NSwgNjUsIDIxMCwgODMsIDcyLCA3OSwgODIsIDg0LCAxMjgsIDgzLCA3MiwgNzksIDgyLCAKLSAgICAyMTIsIDgzLCA3MiwgNzksIDgxLCAxMjgsIDgzLCA3MiwgNzksIDIwOSwgODMsIDcyLCA3OSwgODAsIDEyOCwgODMsIDcyLCAKLSAgICA3OSwgNzksIDg0LCA3MywgNzgsIDE5OSwgODMsIDcyLCA3OSwgNzksIDg0LCAxMjgsIDgzLCA3MiwgNzksIDc5LCAxMjgsIAotICAgIDgzLCA3MiwgNzksIDcxLCAyMDEsIDgzLCA3MiwgNzksIDE5OSwgODMsIDcyLCA3OSwgNjksIDEyOCwgODMsIDcyLCA3OSwgCi0gICAgMTk3LCA4MywgNzIsIDc5LCA2NSwgMTI4LCA4MywgNzIsIDc5LCAxMjgsIDgzLCA3MiwgNzMsIDg5LCA4OSwgNjUsIDY1LCAKLSAgICA3NiwgNjUsIDY1LCAxMjgsIDgzLCA3MiwgNzMsIDg0LCA2NSwgMTI4LCA4MywgNzIsIDczLCA4NCwgMTkzLCA4MywgNzIsIAotICAgIDczLCA4MiwgMjEyLCA4MywgNzIsIDczLCA4MiwgNjUsIDY5LCAxMjgsIDgzLCA3MiwgNzMsIDgyLCAxMjgsIDgzLCA3MiwgCi0gICAgNzMsIDIxMCwgODMsIDcyLCA3MywgODEsIDEyOCwgODMsIDcyLCA3MywgODAsIDEyOCwgODMsIDcyLCA3MywgNzgsIDg0LCAKLSAgICAyMDcsIDgzLCA3MiwgNzMsIDc4LCA3MywgNzEsIDEyOCwgODMsIDcyLCA3MywgNzgsIDY4LCAxOTMsIDgzLCA3MiwgNzMsIAotICAgIDc4LCAxMjgsIDgzLCA3MiwgNzMsIDIwNiwgODMsIDcyLCA3MywgNzcsIDY1LCAxMjgsIDgzLCA3MiwgNzMsIDc3LCAxOTMsIAotICAgIDgzLCA3MiwgNzMsIDc3LCAxMjgsIDgzLCA3MiwgNzMsIDIwNSwgODMsIDcyLCA3MywgNzMsIDc4LCAxMjgsIDgzLCA3MiwgCi0gICAgNzMsIDczLCAxMjgsIDgzLCA3MiwgNzMsIDcwLCAyMTIsIDgzLCA3MiwgNzMsIDY5LCA3NiwgNjgsIDEyOCwgODMsIDcyLCAKLSAgICA3MywgNjgsIDEyOCwgODMsIDcyLCA3MywgMTk2LCA4MywgNzIsIDcyLCA2NSwgMTI4LCA4MywgNzIsIDcyLCAxOTMsIDgzLCAKLSAgICA3MiwgNjksIDg4LCAxMjgsIDgzLCA3MiwgNjksIDg2LCA2NSwgMTI4LCA4MywgNzIsIDY5LCA4NSwgODgsIDEyOCwgODMsIAotICAgIDcyLCA2OSwgODUsIDc5LCA4MSwgMTI4LCA4MywgNzIsIDY5LCA4NSwgNjUsIDY5LCA4MSwgODQsIDg1LCAxMjgsIDgzLCA3MiwgCi0gICAgNjksIDg1LCA2NSwgNjksIDgxLCAxMjgsIDgzLCA3MiwgNjksIDg1LCA2NSwgNjksIDEyOCwgODMsIDcyLCA2OSwgODQsIAorICAgIDQ5LCAxMjgsIDgzLCA4OSwgNzYsIDc5LCA4NCwgMjAxLCA4MywgODksIDEyOCwgODMsIDg3LCA5MCwgMTI4LCA4MywgODcsIAorICAgIDg1LCA3OCwgMTk5LCA4MywgODcsIDc5LCA4MiwgNjgsIDgzLCAxMjgsIDgzLCA4NywgNzksIDgyLCA2OCwgMTI4LCA4MywgCisgICAgODcsIDc5LCA3OSwgMTI4LCA4MywgODcsIDc5LCAxMjgsIDgzLCA4NywgNzMsIDgyLCAyMDQsIDgzLCA4NywgNzMsIDc3LCAKKyAgICA3NywgNzMsIDc4LCA3MSwgMTI4LCA4MywgODcsIDczLCA3NywgNzcsIDY5LCA4MiwgMTI4LCA4MywgODcsIDczLCA3MywgCisgICAgMTI4LCA4MywgODcsIDczLCAxMjgsIDgzLCA4NywgNzEsIDEyOCwgODMsIDg3LCA2OSwgNjksIDg0LCAxMjgsIDgzLCA4NywgCisgICAgNjksIDY5LCAyMTIsIDgzLCA4NywgNjksIDY1LCA4NCwgMTI4LCA4MywgODcsIDY5LCA2NSwgMjEyLCA4MywgODcsIDY1LCAKKyAgICA4MywgMjAwLCA4MywgODcsIDY1LCA4MCwgODAsIDczLCA3OCwgNzEsIDEyOCwgODMsIDg3LCA2NSwgNjUsIDEyOCwgODMsIAorICAgIDg3LCAxMjgsIDgzLCA4NiwgNjUsIDgzLCA4NCwgMjAxLCA4MywgODYsIDY1LCA4MiwgNzMsIDg0LCA2NSwgMTI4LCA4MywgCisgICAgODYsIDY1LCA4MiwgNzMsIDg0LCAxOTMsIDgzLCA4NSwgODgsIDEyOCwgODMsIDg1LCA4NSwgMTI4LCA4MywgODUsIDg0LCAKKyAgICAxMjgsIDgzLCA4NSwgODMsIDgwLCA2OSwgNzgsIDgzLCA3MywgNzksIDIwNiwgODMsIDg1LCA4MywgNzIsIDczLCAxMjgsIAorICAgIDgzLCA4NSwgODIsIDg5LCA2NSwgMTI4LCA4MywgODUsIDgyLCA4OCwgMTI4LCA4MywgODUsIDgyLCA4MiwgNzksIDg1LCA3OCwgCisgICAgNjgsIDEyOCwgODMsIDg1LCA4MiwgODIsIDc5LCA4NSwgNzgsIDE5NiwgODMsIDg1LCA4MiwgNzAsIDY5LCA4MiwgMTI4LCAKKyAgICA4MywgODUsIDgyLCA3MCwgNjUsIDY3LCAxOTcsIDgzLCA4NSwgODIsIDY5LCAxMjgsIDgzLCA4NSwgODIsIDY1LCA3OCwgNzEsIAorICAgIDEyOCwgODMsIDg1LCA4MiwgNTcsIDEyOCwgODMsIDg1LCA4MiwgMTI4LCA4MywgODUsIDIxMCwgODMsIDg1LCA4MCwgODIsIAorICAgIDY1LCA3NiwgNzMsIDc4LCA2OSwgNjUsIDIxMCwgODMsIDg1LCA4MCwgNjksIDgyLCA4NiwgNzMsIDgzLCA2OSwgMTI4LCA4MywgCisgICAgODUsIDgwLCA2OSwgODIsIDgzLCA2OSwgODQsIDEyOCwgODMsIDg1LCA4MCwgNjksIDgyLCA4MywgNjksIDIxMiwgODMsIDg1LCAKKyAgICA4MCwgNjksIDgyLCA4MywgNjcsIDgyLCA3MywgODAsIDIxMiwgODMsIDg1LCA4MCwgNjksIDgyLCA3MywgNzcsIDgwLCA3OSwgCisgICAgODMsIDY5LCAxOTYsIDgzLCA4NSwgODAsIDY5LCA4MiwgNzAsIDczLCA4OCwgNjksIDE5NiwgODMsIDg1LCA4MCwgNjksIAorICAgIDIxMCwgODMsIDg1LCA4MCwgMTI4LCA4MywgODUsIDc5LCA4OCwgMTI4LCA4MywgODUsIDc5LCA4MCwgMTI4LCA4MywgODUsIAorICAgIDc5LCAxMjgsIDgzLCA4NSwgNzgsIDgzLCA2OSwgMjEyLCA4MywgODUsIDc4LCA4MiwgNzMsIDgzLCA2OSwgMTI4LCA4MywgCisgICAgODUsIDc4LCA4MiwgNzMsIDgzLCAxOTcsIDgzLCA4NSwgNzgsIDcxLCA3NiwgNjUsIDgzLCA4MywgNjksIDgzLCAxMjgsIDgzLCAKKyAgICA4NSwgNzgsIDcxLCAxMjgsIDgzLCA4NSwgNzgsIDcwLCA3NiwgNzksIDg3LCA2OSwgODIsIDEyOCwgODMsIDg1LCA3OCwgCisgICAgMTI4LCA4MywgODUsIDIwNiwgODMsIDg1LCA3NywgNzcsIDY5LCA4MiwgMTI4LCA4MywgODUsIDc3LCA3NywgNjUsIDg0LCAKKyAgICA3MywgNzksIDc4LCAxMjgsIDgzLCA4NSwgNzcsIDc3LCA2NSwgODQsIDczLCA3OSwgMjA2LCA4MywgODUsIDc3LCA2NSwgODMsIAorICAgIDcyLCAxMjgsIDgzLCA4NSwgNzcsIDEyOCwgODMsIDg1LCA3NiwgNzAsIDg1LCA4MiwgMTI4LCA4MywgODUsIDc1LCA4NSwgCisgICAgNzgsIDEyOCwgODMsIDg1LCA3NSwgODUsIDIwNiwgODMsIDg1LCA3NSwgODUsIDEyOCwgODMsIDg1LCA3NSwgMjEzLCA4MywgCisgICAgODUsIDczLCA4NCwgNjUsIDY2LCA3NiwgNjksIDEyOCwgODMsIDg1LCA3MywgODQsIDEyOCwgODMsIDg1LCA3MiwgODUsIDgyLCAKKyAgICAxMjgsIDgzLCA4NSwgNjksIDEyOCwgODMsIDg1LCA2OCwgNTAsIDEyOCwgODMsIDg1LCA2OCwgMTI4LCA4MywgODUsIDY3LCAKKyAgICA2NywgNjksIDY5LCA2OCwgODMsIDEyOCwgODMsIDg1LCA2NywgNjcsIDY5LCA2OSwgNjgsIDIxMSwgODMsIDg1LCA2NywgNjcsIAorICAgIDY5LCA2OSwgNjgsIDEyOCwgODMsIDg1LCA2NywgNjcsIDY5LCA2OSwgMTk2LCA4MywgODUsIDY2LCA4NSwgNzgsIDczLCA4NCwgCisgICAgMTI4LCA4MywgODUsIDY2LCA4MywgODQsIDczLCA4NCwgODUsIDg0LCA3MywgNzksIDIwNiwgODMsIDg1LCA2NiwgODMsIDg0LCAKKyAgICA3MywgODQsIDg1LCA4NCwgNjksIDEyOCwgODMsIDg1LCA2NiwgODMsIDg0LCA3MywgODQsIDg1LCA4NCwgMTk3LCA4MywgODUsIAorICAgIDY2LCA4MywgNjksIDg0LCAxMjgsIDgzLCA4NSwgNjYsIDgzLCA2OSwgMjEyLCA4MywgODUsIDY2LCA4MywgNjcsIDgyLCA3MywgCisgICAgODAsIDIxMiwgODMsIDg1LCA2NiwgODAsIDg1LCA3OCwgNjcsIDg0LCA3MywgODMsIDEyOCwgODMsIDg1LCA2NiwgNzYsIDczLCAKKyAgICA3OCwgNjksIDY1LCAyMTAsIDgzLCA4NSwgNjYsIDc2LCA3MywgNzcsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4MywgODUsIAorICAgIDY2LCA3NiwgNzMsIDc3LCA2NSwgODQsIDY5LCA0NSwgNTEsIDEyOCwgODMsIDg1LCA2NiwgNzYsIDczLCA3NywgNjUsIDg0LCAKKyAgICA2OSwgNDUsIDUwLCAxMjgsIDgzLCA4NSwgNjYsIDc2LCA3MywgNzcsIDY1LCA4NCwgNjksIDEyOCwgODMsIDg1LCA2NiwgNzYsIAorICAgIDczLCA3NywgNjUsIDg0LCAxOTcsIDgzLCA4NSwgNjYsIDc0LCA3OSwgNzMsIDc4LCA2OSwgMTk2LCA4MywgODUsIDY2LCA3NCwgCisgICAgNjksIDY3LCA4NCwgMTI4LCA4MywgODUsIDY2LCA3MywgODQsIDc5LCAxMjgsIDgzLCA4NSwgNjYsIDcxLCA4MiwgNzksIDg1LCAKKyAgICA4MCwgMTI4LCA4MywgODUsIDY2LCA3MSwgODIsIDc5LCA4NSwgMjA4LCA4MywgODUsIDY2LCAxMjgsIDgzLCA4NSwgNjUsIAorICAgIDY5LCA4NCwgMTI4LCA4MywgODUsIDY1LCA2OSwgNzgsIDEyOCwgODMsIDg1LCA2NSwgNjksIDEyOCwgODMsIDg1LCA2NSwgCisgICAgMTI4LCA4MywgMjEzLCA4MywgODQsIDg4LCAxMjgsIDgzLCA4NCwgODcsIDY1LCAxMjgsIDgzLCA4NCwgODUsIDY4LCA4OSwgCisgICAgMTI4LCA4MywgODQsIDg1LCA2NywgNzUsIDQ1LCA3OSwgODUsIDIxMiwgODMsIDg0LCA4MywgMTI4LCA4MywgODQsIDgyLCAKKyAgICA3OSwgNzUsIDY5LCA4MywgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCAyMTEsIDgzLCA4NCwgODIsIDc5LCA3NSwgNjksIAorICAgIDQ1LCA1NywgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCA0NSwgNTYsIDEyOCwgODMsIDg0LCA4MiwgNzksIDc1LCA2OSwgCisgICAgNDUsIDU1LCAxMjgsIDgzLCA4NCwgODIsIDc5LCA3NSwgNjksIDQ1LCA1NCwgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCAKKyAgICA0NSwgNTMsIDEyOCwgODMsIDg0LCA4MiwgNzksIDc1LCA2OSwgNDUsIDUyLCAxMjgsIDgzLCA4NCwgODIsIDc5LCA3NSwgNjksIAorICAgIDQ1LCA1MSwgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCA0NSwgNTAsIDEyOCwgODMsIDg0LCA4MiwgNzksIDc1LCA2OSwgCisgICAgNDUsIDQ5LCA0OSwgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDY5LCA0NSwgNDksIDQ4LCAxMjgsIDgzLCA4NCwgODIsIDc5LCAKKyAgICA3NSwgNjksIDQ1LCA0OSwgMTI4LCA4MywgODQsIDgyLCA3OSwgNzUsIDE5NywgODMsIDg0LCA4MiwgNzMsIDgwLCA2OSwgCisgICAgMTI4LCA4MywgODQsIDgyLCA3MywgNzgsIDcxLCAxMjgsIDgzLCA4NCwgODIsIDczLCA3OCwgMTk5LCA4MywgODQsIDgyLCAKKyAgICA3MywgNzUsIDY5LCA4NCwgNzIsIDgyLCA3OSwgODUsIDcxLCA3MiwgMTI4LCA4MywgODQsIDgyLCA3MywgNjgsIDY5LCAxMjgsIAorICAgIDgzLCA4NCwgODIsIDczLCA2NywgODQsIDc2LCAyMTcsIDgzLCA4NCwgODIsIDY5LCA4NCwgNjcsIDcyLCA2OSwgMTk2LCA4MywgCisgICAgODQsIDgyLCA2OSwgODMsIDIxMSwgODMsIDg0LCA4MiwgNjksIDc4LCA3MSwgODQsIDcyLCAxMjgsIDgzLCA4NCwgODIsIDY5LCAKKyAgICA2NSwgNzcsIDY5LCA4MiwgMTI4LCA4MywgODQsIDgyLCA2NSwgODcsIDY2LCA2OSwgODIsIDgyLCA4OSwgMTI4LCA4MywgODQsIAorICAgIDgyLCA2NSwgODQsIDg1LCA3NywgNDUsIDUwLCAxMjgsIDgzLCA4NCwgODIsIDY1LCA4NCwgODUsIDc3LCAxMjgsIDgzLCA4NCwgCisgICAgODIsIDY1LCA4NCwgODUsIDIwNSwgODMsIDg0LCA4MiwgNjUsIDg0LCA3MywgNjUsIDIwNiwgODMsIDg0LCA4MiwgNjUsIDczLCAKKyAgICA3OCwgNjksIDgyLCAxMjgsIDgzLCA4NCwgODIsIDY1LCA3MywgNzEsIDcyLCA4NCwgNzgsIDY5LCA4MywgODMsIDEyOCwgODMsIAorICAgIDg0LCA4MiwgNjUsIDczLCA3MSwgNzIsIDIxMiwgODMsIDg0LCA4MiwgNjUsIDczLCA3MCwgMTI4LCA4MywgODQsIDgyLCA2NSwgCisgICAgNzEsIDcxLCA3MywgODMsIDc3LCA2NSwgODQsIDY1LCAxMjgsIDgzLCA4NCwgNzksIDg2LCA2OSwgMTI4LCA4MywgODQsIDc5LCAKKyAgICA4MiwgNjksIDEyOCwgODMsIDg0LCA3OSwgODAsIDg3LCA2NSwgODQsIDY3LCA3MiwgMTI4LCA4MywgODQsIDc5LCA4MCwgODAsIAorICAgIDczLCA3OCwgNzEsIDEyOCwgODMsIDg0LCA3OSwgODAsIDgwLCA2NSwgNzEsIDY5LCAxMjgsIDgzLCA4NCwgNzksIDgwLCAKKyAgICAxMjgsIDgzLCA4NCwgNzksIDIwOCwgODMsIDg0LCA3OSwgNzgsIDY5LCAxMjgsIDgzLCA4NCwgNzksIDY3LCA3NSwgMTI4LCAKKyAgICA4MywgODQsIDczLCA3NywgNzcsIDY5LCAxMjgsIDgzLCA4NCwgNzMsIDc2LCAyMDQsIDgzLCA4NCwgNzMsIDc2LCAxOTcsIAorICAgIDgzLCA4NCwgNzMsIDcxLCA3NywgNjUsIDEyOCwgODMsIDg0LCA2OSwgODAsIDEyOCwgODMsIDg0LCA2OSwgNzcsIDEyOCwgCisgICAgODMsIDg0LCA2OSwgNjUsIDc3LCA3MywgNzgsIDE5OSwgODMsIDg0LCA2OSwgNjUsIDc3LCAxMjgsIDgzLCA4NCwgNjksIDY1LCAKKyAgICAyMDUsIDgzLCA4NCwgNjUsIDg2LCA4MiwgNzksIDg1LCAxMjgsIDgzLCA4NCwgNjUsIDg2LCA4MiwgNzksIDgzLCAxMjgsIAorICAgIDgzLCA4NCwgNjUsIDg2LCA4MiwgNzksIDIxMSwgODMsIDg0LCA2NSwgODUsIDgyLCA3OSwgODMsIDEyOCwgODMsIDg0LCA2NSwgCisgICAgODQsIDg1LCAxOTcsIDgzLCA4NCwgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDgzLCA4NCwgNjUsIDg0LCA2OSwgODIsIDgzLCAKKyAgICAxMjgsIDgzLCA4NCwgNjUsIDg0LCA2OSwgMTI4LCA4MywgODQsIDY1LCA4MiwgMjEyLCA4MywgODQsIDY1LCA4MiwgODMsIAorICAgIDEyOCwgODMsIDg0LCA2NSwgODIsIDgyLCA2OSwgMTk2LCA4MywgODQsIDY1LCA4MiwgNzUsIDEyOCwgODMsIDg0LCA2NSwgCisgICAgODIsIDEyOCwgODMsIDg0LCA2NSwgMjEwLCA4MywgODQsIDY1LCA3OCwgNjgsIDgzLCA4NCwgNzMsIDc2LCA3NiwgMTI4LCAKKyAgICA4MywgODQsIDY1LCA3OCwgNjgsIDY1LCA4MiwgMTk2LCA4MywgODQsIDY1LCA3OCwgNjgsIDEyOCwgODMsIDg0LCA2NSwgNzgsIAorICAgIDEyOCwgODMsIDg0LCA2NSwgNzYsIDc2LCA3MywgNzksIDc4LCAxMjgsIDgzLCA4NCwgNjUsIDcwLCA3MCwgMTI4LCA4MywgCisgICAgODQsIDY1LCA3MCwgMTk4LCA4MywgODQsIDY1LCA2NywgNjcsIDY1LCA4NCwgNzksIDEyOCwgODMsIDg0LCA2NSwgNjcsIDY3LCAKKyAgICA2NSwgODQsIDczLCA4MywgODMsIDczLCA3NywgNzksIDEyOCwgODMsIDg0LCA1MCwgMTI4LCA4MywgODMsIDg5LCA4OCwgCisgICAgMTI4LCA4MywgODMsIDg5LCA4NCwgMTI4LCA4MywgODMsIDg5LCA4MiwgODgsIDEyOCwgODMsIDgzLCA4OSwgODIsIDEyOCwgCisgICAgODMsIDgzLCA4OSwgODAsIDEyOCwgODMsIDgzLCA4OSwgMTI4LCA4MywgODMsIDg1LCA4OCwgMTI4LCA4MywgODMsIDg1LCAKKyAgICA4NSwgMTI4LCA4MywgODMsIDg1LCA4NCwgMTI4LCA4MywgODMsIDg1LCA4MCwgMTI4LCA4MywgODMsIDc5LCA4OCwgMTI4LCAKKyAgICA4MywgODMsIDc5LCA4NCwgMTI4LCA4MywgODMsIDc5LCA4MCwgMTI4LCA4MywgODMsIDc5LCA3OSwgMTI4LCA4MywgODMsIAorICAgIDc5LCAxMjgsIDgzLCA4MywgNzMsIDg4LCAxMjgsIDgzLCA4MywgNzMsIDg0LCAxMjgsIDgzLCA4MywgNzMsIDgwLCAxMjgsIAorICAgIDgzLCA4MywgNzMsIDczLCAxMjgsIDgzLCA4MywgNzMsIDY5LCA4OCwgMTI4LCA4MywgODMsIDczLCA2OSwgODAsIDEyOCwgCisgICAgODMsIDgzLCA3MywgNjksIDEyOCwgODMsIDgzLCA3MywgMTI4LCA4MywgODMsIDcyLCA2OSwgMTI4LCA4MywgODMsIDY5LCAKKyAgICA4OCwgMTI4LCA4MywgODMsIDY5LCA4MCwgMTI4LCA4MywgODMsIDY5LCA2OSwgMTI4LCA4MywgODMsIDY1LCA4OCwgMTI4LCAKKyAgICA4MywgODMsIDY1LCA4NSwgMTI4LCA4MywgODMsIDY1LCA4NCwgMTI4LCA4MywgODMsIDY1LCA4MCwgMTI4LCA4MywgODMsIAorICAgIDY1LCA3OCwgNzEsIDg5LCA2OSwgNzksIDgyLCA3MywgNzgsIDcyLCA3MywgNjksIDg1LCA3MiwgMTI4LCA4MywgODMsIDY1LCAKKyAgICA3OCwgNzEsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgODMsIDgzLCA2NSwgCisgICAgNzgsIDcxLCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgODQsIDcyLCA3MywgNjksIAorICAgIDg1LCA4NCwgNzIsIDEyOCwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MywgNzMsIDc5LCA4MywgNDUsIDg0LCA3MywgNzUsIDY5LCAKKyAgICA4NSwgODQsIDEyOCwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MywgNzMsIDc5LCA4MywgNDUsIDgwLCA3MywgNjksIDg1LCA4MCwgCisgICAgMTI4LCA4MywgODMsIDY1LCA3OCwgNzEsIDgzLCA3MywgNzksIDgzLCA0NSwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgMTI4LCAKKyAgICA4MywgODMsIDY1LCA3OCwgNzEsIDgzLCA3MywgNzksIDgzLCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgODIsIDczLCA2OSwgCisgICAgODUsIDc2LCA0NSwgNzUsIDcyLCA3MywgNjksIDg1LCA3NSwgNzIsIDEyOCwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MiwgNzMsIAorICAgIDY5LCA4NSwgNzYsIDEyOCwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgODMsIDgzLCA2NSwgCisgICAgNzgsIDcxLCA3OCwgNzMsIDY5LCA4NSwgNzgsIDEyOCwgODMsIDgzLCA2NSwgNzgsIDcxLCA3NywgNzMsIDY5LCA4NSwgNzcsIAorICAgIDEyOCwgODMsIDgzLCA2NSwgNzgsIDcxLCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgCisgICAgNzMsIDY5LCA4NSwgNzgsIDcxLCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgNzIsIDczLCA2OSwgODUsIDcyLCAxMjgsIDgzLCAKKyAgICA4MywgNjUsIDc4LCA3MSwgNjcsIDczLCA2OSwgODUsIDY3LCA0NSwgNzIsIDczLCA2OSwgODUsIDcyLCAxMjgsIDgzLCA4MywgCisgICAgNjUsIDc4LCA3MSwgNjcsIDczLCA2OSwgODUsIDY3LCAxMjgsIDgzLCA4MywgNjUsIDc4LCA3MSwgNjUsIDgyLCA2NSwgNjksIAorICAgIDY1LCAxMjgsIDgzLCA4MywgNjUsIDczLCAxMjgsIDgzLCA4MywgNjUsIDY1LCAxMjgsIDgzLCA4MywgNTEsIDEyOCwgODMsIAorICAgIDgzLCA1MCwgMTI4LCA4MywgODIsIDEyOCwgODMsIDgxLCA4NSwgNzMsIDgzLCAyMDAsIDgzLCA4MSwgODUsIDczLCA4MiwgCisgICAgODIsIDY5LCAyMDQsIDgzLCA4MSwgODUsIDczLCA3MSwgNzEsIDc2LCAxOTcsIDgzLCA4MSwgODUsIDY1LCAyMTIsIDgzLCAKKyAgICA4MSwgODUsIDY1LCA4MiwgNjksIDgzLCAxMjgsIDgzLCA4MSwgODUsIDY1LCA4MiwgNjksIDY4LCAxMjgsIDgzLCA4MSwgODUsIAorICAgIDY1LCA4MiwgNjksIDEyOCwgODMsIDgwLCA4NywgNjUsIDEyOCwgODMsIDgwLCA4NSwgNzgsIDcxLCAyMTEsIDgzLCA4MCwgCisgICAgODIsIDc5LCA4NSwgODQsIDEyOCwgODMsIDgwLCA4MiwgNzMsIDc4LCA3MSwgODMsIDEyOCwgODMsIDgwLCA4MiwgNzMsIDc4LCAKKyAgICA3MSwgMTI4LCA4MywgODAsIDgyLCA2OSwgNjcsIDcyLCA3MSwgNjksIDgzLCA2NSwgNzgsIDE5OSwgODMsIDgwLCA3OSwgODUsIAorICAgIDg0LCA3MywgNzgsIDE5OSwgODMsIDgwLCA3OSwgODQsIDEyOCwgODMsIDgwLCA3OSwgNzksIDc4LCAxMjgsIDgzLCA4MCwgCisgICAgNzYsIDczLCA4NCwgODQsIDczLCA3OCwgMTk5LCA4MywgODAsIDc2LCA2NSwgODMsIDcyLCA3MywgNzgsIDE5OSwgODMsIDgwLCAKKyAgICA3MywgODIsIDczLCA4NCwgODUsIDIxMSwgODMsIDgwLCA3MywgODIsIDczLCA4NCwgMTI4LCA4MywgODAsIDczLCA4MiwgNzMsIAorICAgIDIxMiwgODMsIDgwLCA3MywgODIsIDY1LCA3OCwgODQsIDEyOCwgODMsIDgwLCA3MywgODIsIDY1LCA3NiwgMTI4LCA4MywgCisgICAgODAsIDczLCA4MiwgNjUsIDIwNCwgODMsIDgwLCA3MywgNjgsIDY5LCA4MiwgMjE3LCA4MywgODAsIDczLCA2NywgNjksIAorICAgIDEyOCwgODMsIDgwLCA3MiwgNjksIDgyLCA3MywgNjcsIDY1LCAyMDQsIDgzLCA4MCwgNjksIDgzLCA3NywgNzMsIDc2LCAKKyAgICAyMDcsIDgzLCA4MCwgNjksIDY5LCA2OCwgNjYsIDc5LCA2NSwgODQsIDEyOCwgODMsIDgwLCA2OSwgNjksIDY3LCA3MiwgCisgICAgMTI4LCA4MywgODAsIDY5LCA2OSwgNjcsIDIwMCwgODMsIDgwLCA2OSwgNjcsIDczLCA2NSwgNzYsIDEyOCwgODMsIDgwLCAKKyAgICA2OSwgNjUsIDgyLCAxMjgsIDgzLCA4MCwgNjksIDY1LCA3NSwgNjksIDgyLCAxMjgsIDgzLCA4MCwgNjksIDY1LCA3NSwgNjksIAorICAgIDIxMCwgODMsIDgwLCA2OSwgNjUsIDc1LCA0NSwgNzgsIDc5LCA0NSwgNjksIDg2LCA3MywgMjA0LCA4MywgODAsIDY1LCA4NCwgCisgICAgNzIsIDczLCAxMjgsIDgzLCA4MCwgNjUsIDgyLCA3NSwgNzYsIDczLCA3OCwgMTk5LCA4MywgODAsIDY1LCA4MiwgNzUsIDc2LCAKKyAgICA2OSwgODMsIDEyOCwgODMsIDgwLCA2NSwgODIsIDc1LCA3NiwgNjksIDgyLCAxMjgsIDgzLCA4MCwgNjUsIDgyLCA3NSwgNzYsIAorICAgIDY5LCAxMjgsIDgzLCA4MCwgNjUsIDcxLCA3MiwgNjksIDg0LCA4NCwgNzMsIDEyOCwgODMsIDgwLCA2NSwgNjgsIDY5LCA4MywgCisgICAgMTI4LCA4MywgODAsIDY1LCA2OCwgMTk3LCA4MywgODAsIDY1LCA2NywgNzMsIDc4LCAxOTksIDgzLCA4MCwgNjUsIDY3LCAKKyAgICAxOTcsIDgzLCA4MCwgNjUsIDEyOCwgODMsIDc5LCA4OSwgMTI4LCA4MywgNzksIDg3LCA3MywgNzYsIDIwNywgODMsIDc5LCAKKyAgICA4NywgMTI4LCA4MywgNzksIDg1LCA4NCwgNzIsIDY5LCA4MiwgMjA2LCA4MywgNzksIDg1LCA4NCwgNzIsIDQ1LCA4MywgNzYsIAorICAgIDY1LCA4NiwgNjksIDIxNywgODMsIDc5LCA4NSwgODQsIDIwMCwgODMsIDc5LCA4NSwgODIsIDY3LCA2OSwgMTI4LCA4MywgCisgICAgNzksIDg1LCA3OCwgNjgsIDEyOCwgODMsIDc5LCA4NSwgNzgsIDE5NiwgODMsIDc5LCA4NSwgNzgsIDY1LCA4MCwgMTI4LCAKKyAgICA4MywgNzksIDg1LCAxMjgsIDgzLCA3OSwgODMsIDEyOCwgODMsIDc5LCA4MiwgMTkzLCA4MywgNzksIDgxLCAxMjgsIDgzLCAKKyAgICA3OSwgNzksIDIwNiwgODMsIDc5LCA3OCwgNzQsIDY1LCA3NywgMTI4LCA4MywgNzksIDc4LCA3MSwgMTI4LCA4MywgNzksIAorICAgIDc4LCAxMjgsIDgzLCA3OSwgNzcsIDgwLCA2OSwgNzgsIDE5OSwgODMsIDc5LCA3NywgMTI4LCA4MywgNzksIDc2LCA3MywgCisgICAgNjgsIDg1LCA4MywgMTI4LCA4MywgNzksIDc2LCA3MywgNjgsIDg1LCAyMTEsIDgzLCA3OSwgNzIsIDEyOCwgODMsIDc5LCAKKyAgICA3MSwgNjgsIDczLCA2NSwgMjA2LCA4MywgNzksIDcwLCA4NCwgODcsIDY1LCA4MiwgNjksIDQ1LCA3MCwgODUsIDc4LCA2NywgCisgICAgODQsIDczLCA3OSwgMjA2LCA4MywgNzksIDcwLCA4NCwgNzgsIDY5LCA4MywgODMsIDEyOCwgODMsIDc5LCA3MCwgMjEyLCAKKyAgICA4MywgNzksIDE5OCwgODMsIDc5LCA2NywgNzMsIDY5LCA4NCwgODksIDEyOCwgODMsIDc5LCA2NywgNjcsIDY5LCAyMTAsIAorICAgIDgzLCA3OSwgNjUsIDgwLCAxMjgsIDgzLCA3OSwgNjUsIDEyOCwgODMsIDIwNywgODMsIDc4LCA3OSwgODcsIDc3LCA2NSwgCisgICAgNzgsIDEyOCwgODMsIDc4LCA3OSwgODcsIDc3LCA2NSwgMjA2LCA4MywgNzgsIDc5LCA4NywgNzAsIDc2LCA2NSwgNzUsIDY5LCAKKyAgICAxMjgsIDgzLCA3OCwgNzksIDg3LCA2NiwgNzksIDY1LCA4MiwgNjgsIDY5LCA4MiwgMTI4LCA4MywgNzgsIDc5LCA4NywgCisgICAgMTI4LCA4MywgNzgsIDc5LCA4NSwgODQsIDEyOCwgODMsIDc4LCA3OSwgODUsIDIxMiwgODMsIDc4LCA2NSwgMjA4LCA4MywgCisgICAgNzgsIDY1LCA3NSwgNjksIDEyOCwgODMsIDc4LCA2NSwgNzUsIDE5NywgODMsIDc4LCA2NSwgNzMsIDc2LCAxMjgsIDgzLCAKKyAgICA3OCwgMTkzLCA4MywgNzcsIDc5LCA3NSwgNzMsIDc4LCAxOTksIDgzLCA3NywgNzMsIDgyLCA3NSwgNzMsIDc4LCAxOTksIAorICAgIDgzLCA3NywgNzMsIDc2LCA3MywgNzgsIDE5OSwgODMsIDc3LCA3MywgNzYsIDY5LCAxMjgsIDgzLCA3NywgNjksIDY1LCA4MiwgCisgICAgMTI4LCA4MywgNzcsIDY1LCA4MywgMjAwLCA4MywgNzcsIDY1LCA3NiwgNzYsIDY5LCAyMTAsIDgzLCA3NywgNjUsIDc2LCAKKyAgICA3NiwgMTI4LCA4MywgNzYsIDg1LCA4MiwgMTI4LCA4MywgNzYsIDc5LCA4NywgNzYsIDg5LCAxMjgsIDgzLCA3NiwgNzksIAorICAgIDIxNSwgODMsIDc2LCA3OSwgODYsIDc5LCAxMjgsIDgzLCA3NiwgNzksIDIxMiwgODMsIDc2LCA3OSwgODAsIDczLCA3OCwgCisgICAgMTk5LCA4MywgNzYsIDc5LCA4MCwgNjksIDEyOCwgODMsIDc2LCA3MywgNzgsIDcxLCAxMjgsIDgzLCA3NiwgNzMsIDY4LCAKKyAgICA3MywgNzgsIDcxLCAxMjgsIDgzLCA3NiwgNzMsIDY3LCA2OSwgMTI4LCA4MywgNzYsIDczLCA2NywgMTk3LCA4MywgNzYsIAorICAgIDY5LCA2OSwgODAsIDIxNywgODMsIDc2LCA2OSwgNjksIDgwLCA3MywgNzgsIDE5OSwgODMsIDc2LCA2NSwgODYsIDc5LCA3OCwgCisgICAgNzMsIDE5NSwgODMsIDc2LCA2NSwgODYsIDY5LCAxMjgsIDgzLCA3NiwgNjUsIDgzLCA3MiwgMTI4LCA4MywgNzYsIDY1LCAKKyAgICA4MywgMjAwLCA4MywgNzYsIDY1LCA3OCwgODQsIDY5LCAxOTYsIDgzLCA3NSwgODcsIDY1LCAxMjgsIDgzLCA3NSwgODcsIAorICAgIDEyOCwgODMsIDc1LCA4NSwgNzYsIDc2LCAxMjgsIDgzLCA3NSwgODUsIDc2LCAyMDQsIDgzLCA3NSwgNzYsIDczLCA4MiwgCisgICAgNzksIDIwNiwgODMsIDc1LCA3MywgNzgsIDEyOCwgODMsIDc1LCA3MywgNjksIDgyLCAxMjgsIDgzLCA3NSwgMjAxLCA4MywgCisgICAgNzUsIDY5LCA4NywgNjksIDE5NiwgODMsIDc1LCA2NSwgODQsIDY5LCAxMjgsIDgzLCA3NSwgMTI4LCA4MywgNzQsIDY5LCAKKyAgICAxMjgsIDgzLCA3MywgODgsIDg0LCA4OSwgNDUsIDcwLCA3OSwgODUsIDgyLCA4NCwgMjAwLCA4MywgNzMsIDg4LCA4NCwgODksIAorICAgIDEyOCwgODMsIDczLCA4OCwgODQsIDIxNywgODMsIDczLCA4OCwgODQsIDcyLCA4MywgMTI4LCA4MywgNzMsIDg4LCA4NCwgCisgICAgNzIsIDIxMSwgODMsIDczLCA4OCwgODQsIDcyLCAxMjgsIDgzLCA3MywgODgsIDg0LCA2OSwgNjksIDc4LCA4NCwgNzIsIDgzLCAKKyAgICAxMjgsIDgzLCA3MywgODgsIDg0LCA2OSwgNjksIDc4LCA4NCwgNzIsIDEyOCwgODMsIDczLCA4OCwgODQsIDY5LCA2OSwgNzgsIAorICAgIDg0LCAyMDAsIDgzLCA3MywgODgsIDg0LCA2OSwgNjksIDc4LCAxMjgsIDgzLCA3MywgODgsIDg0LCA2OSwgNjksIDIwNiwgCisgICAgODMsIDczLCA4OCwgNDUsIDg0LCA3MiwgNzMsIDgyLCA4NCwgODksIDEyOCwgODMsIDczLCA4OCwgNDUsIDgzLCA4NCwgODIsIAorICAgIDczLCA3OCwgMTk5LCA4MywgNzMsIDg4LCA0NSwgODAsIDY5LCA4MiwgNDUsIDY5LCAyMDUsIDgzLCA3MywgODgsIDQ1LCA3NiwgCisgICAgNzMsIDc4LCAxOTcsIDgzLCA3MywgMjE2LCA4MywgNzMsIDg0LCA2OSwgMTI4LCA4MywgNzMsIDgzLCA2NSwgMTI4LCA4MywgCisgICAgNzMsIDgyLCA3MywgNzgsIDcxLCA4NSwgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDg0LCA3MiwgNzMsIDY5LCA4NSwgODQsIAorICAgIDcyLCAxMjgsIDgzLCA3MywgNzksIDgzLCA0NSwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MywgNzMsIDc5LCA4MywgMTI4LCA4MywgCisgICAgNzMsIDc5LCA4MywgNDUsIDgyLCA3MywgNjksIDg1LCA3NiwgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDgwLCA3MywgNjksIAorICAgIDg1LCA4MCwgNDUsIDc1LCA3MywgODksIDY5LCA3OSwgNzUsIDEyOCwgODMsIDczLCA3OSwgODMsIDQ1LCA4MCwgNzIsIDczLCAKKyAgICA2OSwgODUsIDgwLCA3MiwgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDgwLCA2NSwgNzgsIDgzLCA3MywgNzksIDgzLCAxMjgsIAorICAgIDgzLCA3MywgNzksIDgzLCA0NSwgNzgsIDczLCA2OSwgODUsIDc4LCAxMjgsIDgzLCA3MywgNzksIDgzLCA0NSwgNzcsIDczLCAKKyAgICA2OSwgODUsIDc3LCAxMjgsIDgzLCA3MywgNzksIDgzLCA0NSwgNzUsIDcyLCA3MywgNjksIDg1LCA3NSwgNzIsIDEyOCwgODMsIAorICAgIDczLCA3OSwgODMsIDQ1LCA3NSwgNjUsIDgwLCA4OSwgNjksIDc5LCA4NSwgNzgsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCAKKyAgICA4MywgNzMsIDc5LCA4MywgNDUsIDczLCA2OSwgODUsIDc4LCA3MSwgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDcyLCA3MywgCisgICAgNjksIDg1LCA3MiwgMTI4LCA4MywgNzMsIDc5LCA4MywgNDUsIDY3LCA3MywgNjksIDg1LCA2NywgMTI4LCA4MywgNzMsIDc5LCAKKyAgICA4MywgNDUsIDY3LCA3MiwgNzMsIDY5LCA4NSwgNjcsIDcyLCAxMjgsIDgzLCA3MywgNzksIDIxMSwgODMsIDczLCA3OCwgNzUsIAorICAgIDczLCA3OCwgNzEsIDEyOCwgODMsIDczLCA3OCwgNzEsIDc2LCA2OSwgNDUsIDgzLCA3MiwgNzMsIDcwLCA4NCwgNDUsIDUxLCAKKyAgICAxMjgsIDgzLCA3MywgNzgsIDcxLCA3NiwgNjksIDQ1LCA4MywgNzIsIDczLCA3MCwgODQsIDQ1LCA1MCwgMTI4LCA4MywgNzMsIAorICAgIDc4LCA3MSwgNzYsIDY5LCA0NSwgNzYsIDczLCA3OCwgMTk3LCA4MywgNzMsIDc4LCA3MSwgNzYsIDY5LCAxMjgsIDgzLCA3MywgCisgICAgNzgsIDcxLCA3NiwgMTk3LCA4MywgNzMsIDc4LCA3MSwgNjUsIDY1LCA4NCwgMTI4LCA4MywgNzMsIDc4LCAxOTcsIDgzLCAKKyAgICA3MywgNzgsIDY4LCA3MiwgMjAxLCA4MywgNzMsIDIwNiwgODMsIDczLCA3NywgODAsIDc2LCA3MywgNzAsIDczLCA2OSwgCisgICAgMTk2LCA4MywgNzMsIDc3LCA3MywgNzYsIDY1LCA4MiwgMTI4LCA4MywgNzMsIDc3LCA3MywgNzYsIDY1LCAyMTAsIDgzLCAKKyAgICA3MywgNzcsIDY1LCA3OCwgODMsIDczLCAyMTEsIDgzLCA3MywgNzcsIDY1LCA3NiwgODUsIDc4LCA3MSwgODUsIDIwNiwgODMsIAorICAgIDczLCA3NywgNjUsIDEyOCwgODMsIDczLCA3NiwgODYsIDY5LCA4MiwgMTI4LCA4MywgNzMsIDc2LCA3NSwgMTI4LCA4MywgCisgICAgNzMsIDc2LCA3MywgODEsIDg1LCAxOTMsIDgzLCA3MywgNzYsIDcyLCA3OSwgODUsIDY5LCA4NCwgODQsIDY5LCAxMjgsIDgzLCAKKyAgICA3MywgNzYsIDcyLCA3OSwgODUsIDY5LCA4NCwgODQsIDE5NywgODMsIDczLCA3NiwgNjUsIDUxLCAxMjgsIDgzLCA3MywgNzUsIAorICAgIDczLCAxMjgsIDgzLCA3MywgNzUsIDUwLCAxMjgsIDgzLCA3MywgNzUsIDE3OCwgODMsIDczLCA3MSwgNzgsIDgzLCAxMjgsIAorICAgIDgzLCA3MywgNzEsIDc3LCA2NSwgMTI4LCA4MywgNzMsIDcxLCA3NywgMTkzLCA4MywgNzMsIDcxLCA2OSwgMjA0LCA4MywgCisgICAgNzMsIDcxLCA1MiwgMTI4LCA4MywgNzMsIDcxLCAxODAsIDgzLCA3MywgNzEsIDEyOCwgODMsIDczLCA2OSwgNjksIDEyOCwgCisgICAgODMsIDczLCA2OCwgNjksIDg3LCA2NSwgODksIDIxMSwgODMsIDczLCA2NywgNzUsIDc4LCA2OSwgODMsIDgzLCAxMjgsIDgzLCAKKyAgICA3MywgNjcsIDc1LCA3NiwgNjksIDEyOCwgODMsIDczLCA2NiwgMTk3LCA4MywgMjAxLCA4MywgNzIsIDg5LCA4OCwgMTI4LCAKKyAgICA4MywgNzIsIDg5LCA4NCwgMTI4LCA4MywgNzIsIDg5LCA4MiwgODgsIDEyOCwgODMsIDcyLCA4OSwgODIsIDEyOCwgODMsIAorICAgIDcyLCA4OSwgODAsIDEyOCwgODMsIDcyLCA4OSwgNjksIDEyOCwgODMsIDcyLCA4OSwgNjUsIDEyOCwgODMsIDcyLCA4OSwgCisgICAgMTI4LCA4MywgNzIsIDg3LCA3OSwgODksIDEyOCwgODMsIDcyLCA4NywgNzksIDc5LCAxMjgsIDgzLCA3MiwgODcsIDc5LCAKKyAgICAxMjgsIDgzLCA3MiwgODcsIDczLCA3MywgMTI4LCA4MywgNzIsIDg3LCA3MywgMTI4LCA4MywgNzIsIDg3LCA2OSwgMTI4LCAKKyAgICA4MywgNzIsIDg3LCA2NSwgNjUsIDEyOCwgODMsIDcyLCA4NywgNjUsIDEyOCwgODMsIDcyLCA4NSwgODgsIDEyOCwgODMsIAorICAgIDcyLCA4NSwgODUsIDEyOCwgODMsIDcyLCA4NSwgODQsIDEyOCwgODMsIDcyLCA4NSwgODIsIDg4LCAxMjgsIDgzLCA3MiwgCisgICAgODUsIDgyLCAxMjgsIDgzLCA3MiwgODUsIDgwLCAxMjgsIDgzLCA3MiwgODUsIDc5LCA4OCwgMTI4LCA4MywgNzIsIDg1LCAKKyAgICA3OSwgODAsIDEyOCwgODMsIDcyLCA4NSwgNzksIDEyOCwgODMsIDcyLCA4NSwgNzcsIDEyOCwgODMsIDcyLCA4NSwgNzAsIAorICAgIDcwLCA3NiwgMTk3LCA4MywgNzIsIDg1LCA2OSwgODEsIDEyOCwgODMsIDcyLCA4NSwgNjksIDc4LCA4MywgNzIsIDg1LCA2OSwgCisgICAgODQsIDEyOCwgODMsIDcyLCA4NSwgNjYsIDg1LCA4MiwgMTI4LCA4MywgNzIsIDg1LCA1MCwgMTI4LCA4MywgNzIsIDg1LCAKKyAgICAxNzgsIDgzLCA3MiwgODUsIDEyOCwgODMsIDcyLCAyMTMsIDgzLCA3MiwgODQsIDY1LCA4MCwgNzMsIDY3LCAxMjgsIDgzLCAKKyAgICA3MiwgODQsIDY1LCAxMjgsIDgzLCA3MiwgODIsIDczLCA3OCwgNjksIDEyOCwgODMsIDcyLCA4MiwgNzMsIDc3LCA4MCwgCisgICAgMTI4LCA4MywgNzIsIDgyLCA3MywgNzMsIDEyOCwgODMsIDcyLCA3OSwgODksIDEyOCwgODMsIDcyLCA3OSwgODgsIDEyOCwgCisgICAgODMsIDcyLCA3OSwgODcsIDY5LCA4MiwgMTI4LCA4MywgNzIsIDc5LCA4NSwgNzYsIDY4LCA2OSwgODIsIDY5LCAxOTYsIDgzLCAKKyAgICA3MiwgNzksIDg0LCAxMjgsIDgzLCA3MiwgNzksIDgyLCA4NCwgODMsIDEyOCwgODMsIDcyLCA3OSwgODIsIDg0LCAyMTEsIAorICAgIDgzLCA3MiwgNzksIDgyLCA4NCwgNjksIDc4LCA2OSwgODIsIDEyOCwgODMsIDcyLCA3OSwgODIsIDg0LCA2NywgNjUsIDc1LCAKKyAgICA2OSwgMTI4LCA4MywgNzIsIDc5LCA4MiwgODQsIDQ1LCA4NCwgODcsIDczLCA3MSwgNDUsIDg5LCA4MiwgMTI4LCA4MywgNzIsIAorICAgIDc5LCA4MiwgODQsIDQ1LCA4NCwgODcsIDczLCA3MSwgNDUsIDg0LCA4OSwgMjEwLCA4MywgNzIsIDc5LCA4MiwgODQsIDQ1LCAKKyAgICA4NCwgODcsIDczLCA3MSwgNDUsIDgzLCA3OSwgMjA0LCA4MywgNzIsIDc5LCA4MiwgODQsIDQ1LCA4NCwgODcsIDczLCA3MSwgCisgICAgNDUsIDc5LCA4MywgMjExLCA4MywgNzIsIDc5LCA4MiwgODQsIDQ1LCA4NCwgODcsIDczLCA3MSwgNDUsIDc4LCA2NSwgODUsIAorICAgIDE5NiwgODMsIDcyLCA3OSwgODIsIDg0LCA0NSwgODQsIDg3LCA3MywgNzEsIDQ1LCA3NywgNjUsIDY4LCAyMTAsIDgzLCA3MiwgCisgICAgNzksIDgyLCA4NCwgNDUsIDg0LCA4NywgNzMsIDcxLCA0NSwgNzIsIDY1LCA3MSwgNjUsIDc2LCAyMDQsIDgzLCA3MiwgNzksIAorICAgIDgyLCA4NCwgNDUsIDg0LCA4NywgNzMsIDcxLCA0NSwgNjYsIDc0LCA2NSwgODIsIDc1LCA2NSwgMjA2LCA4MywgNzIsIDc5LCAKKyAgICA4MiwgODQsIDQ1LCA4NCwgODcsIDczLCA3MSwgNDUsIDY1LCAyMTAsIDgzLCA3MiwgNzksIDgyLCA4NCwgMTI4LCA4MywgNzIsIAorICAgIDc5LCA4MiwgMjEyLCA4MywgNzIsIDc5LCA4MSwgMTI4LCA4MywgNzIsIDc5LCAyMDksIDgzLCA3MiwgNzksIDgwLCAxMjgsIAorICAgIDgzLCA3MiwgNzksIDc5LCA4NCwgNzMsIDc4LCAxOTksIDgzLCA3MiwgNzksIDc5LCA4NCwgMTI4LCA4MywgNzIsIDc5LCA3OSwgCisgICAgMTI4LCA4MywgNzIsIDc5LCA3MSwgMjAxLCA4MywgNzIsIDc5LCAxOTksIDgzLCA3MiwgNzksIDY5LCAxMjgsIDgzLCA3MiwgCisgICAgNzksIDE5NywgODMsIDcyLCA3OSwgNjUsIDEyOCwgODMsIDcyLCA3OSwgMTI4LCA4MywgNzIsIDczLCA4OSwgODksIDY1LCAKKyAgICA2NSwgNzYsIDY1LCA2NSwgMTI4LCA4MywgNzIsIDczLCA4NCwgNjUsIDEyOCwgODMsIDcyLCA3MywgODQsIDE5MywgODMsIAorICAgIDcyLCA3MywgODIsIDIxMiwgODMsIDcyLCA3MywgODIsIDY1LCA2OSwgMTI4LCA4MywgNzIsIDczLCA4MiwgMTI4LCA4MywgCisgICAgNzIsIDczLCAyMTAsIDgzLCA3MiwgNzMsIDgxLCAxMjgsIDgzLCA3MiwgNzMsIDgwLCAxMjgsIDgzLCA3MiwgNzMsIDc4LCAKKyAgICA4NCwgMjA3LCA4MywgNzIsIDczLCA3OCwgNzMsIDcxLCAxMjgsIDgzLCA3MiwgNzMsIDc4LCA2OCwgMTkzLCA4MywgNzIsIAorICAgIDczLCA3OCwgMTI4LCA4MywgNzIsIDczLCAyMDYsIDgzLCA3MiwgNzMsIDc3LCA2NSwgMTI4LCA4MywgNzIsIDczLCA3NywgCisgICAgMTkzLCA4MywgNzIsIDczLCA3NywgMTI4LCA4MywgNzIsIDczLCAyMDUsIDgzLCA3MiwgNzMsIDczLCA3OCwgMTI4LCA4MywgCisgICAgNzIsIDczLCA3MywgMTI4LCA4MywgNzIsIDczLCA3MCwgMjEyLCA4MywgNzIsIDczLCA2OSwgNzYsIDY4LCAxMjgsIDgzLCAKKyAgICA3MiwgNzMsIDY4LCAxMjgsIDgzLCA3MiwgNzMsIDE5NiwgODMsIDcyLCA3MiwgNjUsIDEyOCwgODMsIDcyLCA3MiwgMTkzLCAKKyAgICA4MywgNzIsIDY5LCA4OCwgMTI4LCA4MywgNzIsIDY5LCA4NiwgNjUsIDEyOCwgODMsIDcyLCA2OSwgODUsIDg4LCAxMjgsIAorICAgIDgzLCA3MiwgNjksIDg1LCA3OSwgODEsIDEyOCwgODMsIDcyLCA2OSwgODUsIDY1LCA2OSwgODEsIDg0LCA4NSwgMTI4LCA4MywgCisgICAgNzIsIDY5LCA4NSwgNjUsIDY5LCA4MSwgMTI4LCA4MywgNzIsIDY5LCA4NSwgNjUsIDY5LCAxMjgsIDgzLCA3MiwgNjksIDg0LCAKICAgICAxMjgsIDgzLCA3MiwgNjksIDIxMiwgODMsIDcyLCA2OSwgODMsIDcyLCA3NiwgNjUsIDc3LCAxMjgsIDgzLCA3MiwgNjksIAogICAgIDgzLCA3MiwgNzMsIDcxLCAxMjgsIDgzLCA3MiwgNjksIDgzLCA3MiwgNzMsIDE5OSwgODMsIDcyLCA2OSwgODMsIDcyLCA1MCwgCiAgICAgMTI4LCA4MywgNzIsIDY5LCA4MywgNzIsIDEyOCwgODMsIDcyLCA2OSwgODEsIDY5LCAyMDQsIDgzLCA3MiwgNjksIDgwLCAKQEAgLTg4MCwzNzYgKzk4NCwzODQgQEAKICAgICAxMjgsIDgzLCA3MiwgNjksIDY5LCAyMDYsIDgzLCA3MiwgNjksIDY5LCAxMjgsIDgzLCA3MiwgNjksIDQ1LCA3MSwgNzksIAogICAgIDY1LCA4NCwgMTI4LCA4MywgNzIsIDE5NywgODMsIDcyLCA2NywgNzIsIDY1LCAxMjgsIDgzLCA3MiwgNjUsIDg5LCAxMjgsIAogICAgIDgzLCA3MiwgNjUsIDg4LCAxMjgsIDgzLCA3MiwgNjUsIDg2LCA3MywgODksIDY1LCA3OCwgNzMsIDEyOCwgODMsIDcyLCA2NSwgCi0gICAgODYsIDczLCA2NSwgMjA2LCA4MywgNzIsIDY1LCA4NiwgNjksIDE5NiwgODMsIDcyLCA2NSwgODQsIDEyOCwgODMsIDcyLCAKLSAgICA2NSwgODIsIDg1LCAxMjgsIDgzLCA3MiwgNjUsIDgyLCAyMTMsIDgzLCA3MiwgNjUsIDgyLCA4MCwgMTI4LCA4MywgNzIsIAotICAgIDY1LCA4MiwgMjA4LCA4MywgNzIsIDY1LCA4MiwgNjUsIDEyOCwgODMsIDcyLCA2NSwgODIsIDUwLCAxMjgsIDgzLCA3MiwgCi0gICAgNjUsIDgyLCAxNzgsIDgzLCA3MiwgNjUsIDgwLCA3MywgNzgsIDcxLCAxMjgsIDgzLCA3MiwgNjUsIDgwLCA2OSwgODMsIAotICAgIDEyOCwgODMsIDcyLCA2NSwgODAsIDE5NywgODMsIDcyLCA2NSwgODAsIDEyOCwgODMsIDcyLCA2NSwgNzgsIDcxLCAxMjgsIAotICAgIDgzLCA3MiwgNjUsIDc4LCAxMjgsIDgzLCA3MiwgNjUsIDIwNiwgODMsIDcyLCA2NSwgNzcsIDgyLCA3OSwgNjcsIDc1LCAKLSAgICAxMjgsIDgzLCA3MiwgNjUsIDc2LCA4MywgNzIsIDY5LCA3NiwgNjksIDg0LCAxMjgsIDgzLCA3MiwgNjUsIDc1LCA4NCwgNzMsIAotICAgIDEyOCwgODMsIDcyLCA2NSwgNjgsIDc5LCA4NywgNjksIDE5NiwgODMsIDcyLCA2NSwgNjgsIDY5LCAxMjgsIDgzLCA3MiwgCi0gICAgNjUsIDY4LCA2OCwgNjUsIDEyOCwgODMsIDcyLCA2NSwgNjgsIDY4LCAxOTMsIDgzLCA3MiwgNjUsIDY4LCAxMjgsIDgzLCAKLSAgICA3MiwgNjUsIDE5NiwgODMsIDcyLCA2NSwgNjYsIDU0LCAxMjgsIDgzLCA3MiwgNjUsIDY1LCAxMjgsIDgzLCA3MiwgNjUsIAotICAgIDU0LCAxMjgsIDgzLCA3MiwgNjUsIDUxLCAxMjgsIDgzLCA3MiwgNjUsIDE3OSwgODMsIDcxLCA4MiwgMTkzLCA4MywgNzEsIAotICAgIDc5LCAyMTAsIDgzLCA3MSwgNjUsIDIxNSwgODMsIDcxLCA2NSwgMTk0LCA4MywgNzEsIDEyOCwgODMsIDY5LCA4OCwgODQsIAotICAgIDg1LCA3NiwgMTkzLCA4MywgNjksIDg4LCA4NCwgNzMsIDc2LCA2OSwgMTI4LCA4MywgNjksIDg4LCA4NCwgNjUsIDc4LCAKLSAgICAyMTEsIDgzLCA2OSwgODYsIDY5LCA4MiwgNjUsIDc4LCA2NywgNjksIDEyOCwgODMsIDY5LCA4NiwgNjksIDc4LCA4NCwgODksIAotICAgIDEyOCwgODMsIDY5LCA4NiwgNjksIDc4LCA4NCwgMjE3LCA4MywgNjksIDg2LCA2OSwgNzgsIDg0LCA3MiwgMTI4LCA4MywgCi0gICAgNjksIDg2LCA2OSwgNzgsIDg0LCA2OSwgNjksIDc4LCAxMjgsIDgzLCA2OSwgODYsIDY5LCA3OCwgODQsIDY5LCA2OSwgMjA2LCAKLSAgICA4MywgNjksIDg2LCA2OSwgNzgsIDQ1LCA4NCwgNzIsIDczLCA4MiwgODQsIDg5LCAxMjgsIDgzLCA2OSwgODYsIDY5LCAyMDYsIAotICAgIDgzLCA2OSwgODUsIDg4LCAxMjgsIDgzLCA2OSwgODUsIDc4LCA4OSwgNjUsIDc3LCAxMjgsIDgzLCA2OSwgODUsIDY1LCA2OSwgCi0gICAgODEsIDEyOCwgODMsIDY5LCA4NCwgNzAsIDc5LCA3OCwgMTI4LCA4MywgNjksIDgzLCA4NCwgNjksIDgyLCA4NCwgNzMsIDg1LCAKLSAgICAyMTEsIDgzLCA2OSwgODMsIDgxLCA4NSwgNzMsIDgxLCA4NSwgNjUsIDY4LCA4MiwgNjUsIDg0LCA2OSwgMTI4LCA4MywgNjksIAotICAgIDgzLCA2NSwgNzcsIDE5NywgODMsIDY5LCA4MiwgODYsIDczLCA2NywgMTk3LCA4MywgNjksIDgyLCA3MywgNzAsIDgzLCAKLSAgICAxMjgsIDgzLCA2OSwgODIsIDczLCA3MCwgMjExLCA4MywgNjksIDgwLCA4NCwgNjksIDc3LCA2NiwgNjksIDgyLCAxMjgsIAotICAgIDgzLCA2OSwgODAsIDY1LCA4MiwgNjUsIDg0LCA3OSwgODIsIDEyOCwgODMsIDY5LCA4MCwgNjUsIDgyLCA2NSwgODQsIDc5LCAKLSAgICAyMTAsIDgzLCA2OSwgNzgsIDg0LCA3OSwgMTI4LCA4MywgNjksIDc4LCA4NCwgNzMsIDEyOCwgODMsIDY5LCA3NywgODUsIAotICAgIDc4LCA2NywgNzMsIDE5MywgODMsIDY5LCA3NywgNzUsIDY1LCA4NCwgNzIsIDEyOCwgODMsIDY5LCA3NywgNzUsIDEyOCwgCi0gICAgODMsIDY5LCA3NywgNzMsIDg2LCA3OSwgODcsIDY5LCAyMDQsIDgzLCA2OSwgNzcsIDczLCA4MywgNzksIDcwLCAyMTIsIDgzLCAKLSAgICA2OSwgNzcsIDczLCA4MywgNjksIDg4LCA4NCwgNzMsIDc2LCA2OSwgMTI4LCA4MywgNjksIDc3LCA3MywgNzcsIDczLCA3OCwgCi0gICAgNzMsIDc3LCAxOTMsIDgzLCA2OSwgNzcsIDczLCA2OCwgNzMsIDgyLCA2OSwgNjcsIDIxMiwgODMsIDY5LCA3NywgNzMsIDY3LCAKLSAgICA3OSwgNzYsIDc5LCA3OCwgMTI4LCA4MywgNjksIDc3LCA3MywgNjcsIDc5LCA3NiwgNzksIDIwNiwgODMsIDY5LCA3NywgNzMsIAotICAgIDY3LCA3MywgODIsIDY3LCA4NSwgNzYsIDY1LCAyMTAsIDgzLCA2OSwgNzcsIDczLCA2NywgNzMsIDgyLCA2NywgNzYsIDE5NywgCi0gICAgODMsIDY5LCA3NywgNzMsIDY2LCA4MiwgNjksIDg2LCA3MywgMjExLCA4MywgNjksIDc3LCA3MywgNDUsIDg2LCA3OSwgNzMsIAotICAgIDY3LCA2OSwgMTk2LCA4MywgNjksIDc2LCA3MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NywgCi0gICAgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTcsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKLSAgICA2NywgODQsIDc5LCA4MiwgNDUsIDU3LCA1NSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NywgCi0gICAgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTcsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKLSAgICA2NywgODQsIDc5LCA4MiwgNDUsIDU3LCA1MiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NywgCi0gICAgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTcsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKLSAgICA2NywgODQsIDc5LCA4MiwgNDUsIDU3LCA0OSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NywgCi0gICAgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKLSAgICA4NCwgNzksIDgyLCA0NSwgNTYsIDU3LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU2LCA1NiwgCi0gICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NiwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKLSAgICA4NCwgNzksIDgyLCA0NSwgNTYsIDU0LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU2LCA1MywgCi0gICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NiwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKLSAgICA4NCwgNzksIDgyLCA0NSwgNTYsIDUxLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU2LCA1MCwgCi0gICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NiwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKLSAgICA4NCwgNzksIDgyLCA0NSwgNTYsIDQ4LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU2LCAxMjgsIAotICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU1LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKLSAgICA3OSwgODIsIDQ1LCA1NSwgNTYsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTUsIDU1LCAxMjgsIAotICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU1LCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKLSAgICA3OSwgODIsIDQ1LCA1NSwgNTMsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTUsIDUyLCAxMjgsIAotICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU1LCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKLSAgICA3OSwgODIsIDQ1LCA1NSwgNTAsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTUsIDQ5LCAxMjgsIAotICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU1LCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKLSAgICA3OSwgODIsIDQ1LCA1NSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NCwgNTcsIDEyOCwgODMsIAotICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTQsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKLSAgICA4MiwgNDUsIDU0LCA1NSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NCwgNTQsIDEyOCwgODMsIAotICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTQsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKLSAgICA4MiwgNDUsIDU0LCA1MiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NCwgNTEsIDEyOCwgODMsIAotICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTQsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKLSAgICA4MiwgNDUsIDU0LCA0OSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NCwgNDgsIDEyOCwgODMsIAotICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKLSAgICA0NSwgNTMsIDU3LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUzLCA1NiwgMTI4LCA4MywgNjksIAotICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MywgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKLSAgICA0NSwgNTMsIDU0LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUzLCA1MywgMTI4LCA4MywgNjksIAotICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MywgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKLSAgICA0NSwgNTMsIDUxLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUzLCA1MCwgMTI4LCA4MywgNjksIAotICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MywgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKLSAgICA0NSwgNTMsIDQ4LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUyLCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKLSAgICA1MiwgNTYsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTIsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUyLCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKLSAgICA1MiwgNTMsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTIsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUyLCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKLSAgICA1MiwgNTAsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTIsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUyLCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKLSAgICA1MiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MSwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIAotICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNTEsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUxLCAKLSAgICA1NSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MSwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIAotICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNTEsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUxLCAKLSAgICA1MiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MSwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIAotICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNTEsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUxLCAKLSAgICA0OSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MSwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIAotICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDU3LCAKLSAgICAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIAotICAgIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDU0LCAKLSAgICAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MywgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIAotICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUzLCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKLSAgICA1MCwgNTMsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MywgNTEsIDEyOCwgODMsIAotICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUzLCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKLSAgICA3OSwgODIsIDQ1LCA1MCwgNTMsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MywgCi0gICAgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKLSAgICA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MiwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCi0gICAgNTAsIDUyLCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTIsIDU1LCAxMjgsIDgzLCAKLSAgICA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MiwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgCi0gICAgNzksIDgyLCA0NSwgNTAsIDUyLCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTIsIAotICAgIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MiwgNTEsIDEyOCwgODMsIDY5LCA3NiwgCi0gICAgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUyLCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIAotICAgIDQ1LCA1MCwgNTIsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MiwgNDgsIDEyOCwgCi0gICAgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIAotICAgIDc5LCA4MiwgNDUsIDUwLCA1MSwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUxLCAKLSAgICA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTEsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MSwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKLSAgICA0NSwgNTAsIDUxLCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTEsIDUyLCAxMjgsIAotICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MSwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKLSAgICA4NCwgNzksIDgyLCA0NSwgNTAsIDUxLCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgCi0gICAgNTEsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MSwgNDgsIDEyOCwgODMsIDY5LCAKLSAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUxLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCi0gICAgNDUsIDUwLCA1MCwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUwLCA1NiwgMTI4LCAKLSAgICA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTAsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgCi0gICAgODQsIDc5LCA4MiwgNDUsIDUwLCA1MCwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIAotICAgIDUwLCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTAsIDUyLCAxMjgsIDgzLCA2OSwgCi0gICAgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MCwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIAotICAgIDgyLCA0NSwgNTAsIDUwLCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTAsIDQ5LCAKLSAgICAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MCwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIAotICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCAKLSAgICA0OSwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDQ5LCA1NiwgMTI4LCA4MywgNjksIAotICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDksIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKLSAgICA4MiwgNDUsIDUwLCA0OSwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDQ5LCA1MywgCi0gICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDksIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKLSAgICA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OSwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCi0gICAgNTAsIDQ5LCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDksIDQ5LCAxMjgsIDgzLCAKLSAgICA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OSwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgCi0gICAgNzksIDgyLCA0NSwgNTAsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OCwgNTcsIAotICAgIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDQ4LCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgCi0gICAgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDgsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIAotICAgIDUwLCA0OCwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDQ4LCA1MywgMTI4LCA4MywgCi0gICAgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDgsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIAotICAgIDc5LCA4MiwgNDUsIDUwLCA0OCwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDQ4LCAKLSAgICA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDgsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OCwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKLSAgICA0NSwgNTAsIDQ4LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NywgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKLSAgICA0NSwgNDksIDU3LCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTcsIDU1LCAxMjgsIAotICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NywgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKLSAgICA4NCwgNzksIDgyLCA0NSwgNDksIDU3LCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgCi0gICAgNTcsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NywgNTEsIDEyOCwgODMsIDY5LCAKLSAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU3LCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgCi0gICAgODIsIDQ1LCA0OSwgNTcsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NywgNDgsIAotICAgIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU3LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgCi0gICAgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NiwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIAotICAgIDU2LCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTYsIDU1LCAxMjgsIDgzLCA2OSwgCi0gICAgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NiwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIAotICAgIDgyLCA0NSwgNDksIDU2LCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTYsIDUyLCAKLSAgICAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NiwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIAotICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU2LCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKLSAgICA0OSwgNTYsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NiwgNDgsIDEyOCwgODMsIAotICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKLSAgICA4MiwgNDUsIDQ5LCA1NSwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU1LCA1NiwgCi0gICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTUsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKLSAgICA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NSwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCi0gICAgNDksIDU1LCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTUsIDUyLCAxMjgsIDgzLCAKLSAgICA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NSwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgCi0gICAgNzksIDgyLCA0NSwgNDksIDU1LCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTUsIAotICAgIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NSwgNDgsIDEyOCwgODMsIDY5LCA3NiwgCi0gICAgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIAotICAgIDQ5LCA1NCwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU0LCA1NiwgMTI4LCA4MywgCi0gICAgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTQsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIAotICAgIDc5LCA4MiwgNDUsIDQ5LCA1NCwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU0LCAKLSAgICA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTQsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NCwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKLSAgICA0NSwgNDksIDU0LCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTQsIDQ5LCAxMjgsIAotICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NCwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKLSAgICA4NCwgNzksIDgyLCA0NSwgNDksIDU0LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MywgCi0gICAgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUzLCA1NiwgMTI4LCA4MywgNjksIDc2LCAKLSAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTMsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCi0gICAgNDUsIDQ5LCA1MywgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUzLCA1MywgMTI4LCAKLSAgICA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTMsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgCi0gICAgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MywgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIAotICAgIDUzLCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTMsIDQ5LCAxMjgsIDgzLCA2OSwgCi0gICAgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MywgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIAotICAgIDgyLCA0NSwgNDksIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MiwgNTcsIDEyOCwgCi0gICAgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUyLCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIAotICAgIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTIsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCAKLSAgICA1MiwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUyLCA1MywgMTI4LCA4MywgNjksIAotICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTIsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKLSAgICA4MiwgNDUsIDQ5LCA1MiwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUyLCA1MCwgCi0gICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTIsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKLSAgICA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MiwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCi0gICAgNDksIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MSwgNTcsIDEyOCwgODMsIDY5LCAKLSAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUxLCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgCi0gICAgODIsIDQ1LCA0OSwgNTEsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MSwgNTQsIAotICAgIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUxLCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgCi0gICAgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTEsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIAotICAgIDQ5LCA1MSwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUxLCA1MCwgMTI4LCA4MywgCi0gICAgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTEsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIAotICAgIDc5LCA4MiwgNDUsIDQ5LCA1MSwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUxLCAKLSAgICAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MCwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIAotICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUwLCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKLSAgICA0OSwgNTAsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MCwgNTQsIDEyOCwgODMsIAotICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUwLCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKLSAgICA3OSwgODIsIDQ1LCA0OSwgNTAsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MCwgCi0gICAgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUwLCA1MCwgMTI4LCA4MywgNjksIDc2LCAKLSAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTAsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCi0gICAgNDUsIDQ5LCA1MCwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUwLCAxMjgsIDgzLCAKLSAgICA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OSwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgCi0gICAgNzksIDgyLCA0NSwgNDksIDQ5LCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDksIAotICAgIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OSwgNTQsIDEyOCwgODMsIDY5LCA3NiwgCi0gICAgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ5LCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIAotICAgIDQ1LCA0OSwgNDksIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OSwgNTEsIDEyOCwgCi0gICAgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ5LCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIAotICAgIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDksIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCAKLSAgICA0OSwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OCwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKLSAgICA0NSwgNDksIDQ4LCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDgsIDU1LCAxMjgsIAotICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OCwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKLSAgICA4NCwgNzksIDgyLCA0NSwgNDksIDQ4LCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgCi0gICAgNDgsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OCwgNTEsIDEyOCwgODMsIDY5LCAKLSAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ4LCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgCi0gICAgODIsIDQ1LCA0OSwgNDgsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OCwgNDgsIAotICAgIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ4LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgCi0gICAgODQsIDc5LCA4MiwgNDUsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAyMTAsIDgzLCA2OSwgNzMsIDgzLCAKLSAgICA3NywgNjUsIDEyOCwgODMsIDY5LCA3MywgODMsIDc3LCAxOTMsIDgzLCA2OSwgNzIsIDEyOCwgODMsIDY5LCA3MSwgNzksIAotICAgIDc2LCAxMjgsIDgzLCA2OSwgNzEsIDc4LCA3OSwgMTI4LCA4MywgNjksIDcxLCA3NywgNjksIDc4LCA4NCwgMTI4LCA4MywgCi0gICAgNjksIDY5LCA3OCwgODUsIDEyOCwgODMsIDY5LCA2OSwgNzgsIDEyOCwgODMsIDY5LCA2OSwgMjA2LCA4MywgNjksIDY5LCAKLSAgICA2OCwgNzYsIDczLCA3OCwgNzEsIDEyOCwgODMsIDY5LCA2OSwgNDUsIDc4LCA3OSwgNDUsIDY5LCA4NiwgNzMsIDIwNCwgODMsIAotICAgIDY5LCA2NywgODQsIDc5LCA4MiwgMTI4LCA4MywgNjksIDY3LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4MywgNjksIDY3LCA4NCwgCi0gICAgNzMsIDc5LCAyMDYsIDgzLCA2OSwgNjcsIDgyLCA2OSwgODQsIDEyOCwgODMsIDY5LCA2NywgNzksIDc4LCA2OCwgMTI4LCAKLSAgICA4MywgNjksIDY2LCA2NSwgODQsIDY2LCA2OSwgNzMsIDIxMiwgODMsIDY5LCA2NSwgODQsIDEyOCwgODMsIDY5LCA2NSwgNzYsIAotICAgIDEyOCwgODMsIDY5LCA2NSwgNzEsIDg1LCA3NiwgMjA0LCA4MywgNjgsIDc5LCA3OCwgMTk5LCA4MywgNjgsIDEyOCwgODMsIAotICAgIDY3LCA4NywgNjUsIDEyOCwgODMsIDY3LCA4MiwgODUsIDgwLCA3NiwgNjksIDEyOCwgODMsIDY3LCA4MiwgNzksIDc2LCA3NiwgCi0gICAgMTI4LCA4MywgNjcsIDgyLCA3MywgODAsIDg0LCAxMjgsIDgzLCA2NywgODIsIDY5LCA2OSwgNzgsIDEyOCwgODMsIDY3LCAKLSAgICA4MiwgNjksIDY5LCAyMDYsIDgzLCA2NywgODIsIDY5LCA2NSwgNzcsIDczLCA3OCwgMTk5LCA4MywgNjcsIDc5LCA4MiwgODAsIAotICAgIDczLCA4NSwgODMsIDEyOCwgODMsIDY3LCA3OSwgODIsIDY5LCAxMjgsIDgzLCA2NywgNzMsIDgzLCA4MywgNzksIDgyLCA4MywgCi0gICAgMTI4LCA4MywgNjcsIDcyLCA4NywgNjUsIDEyOCwgODMsIDY3LCA3MiwgODcsIDE5MywgODMsIDY3LCA3MiwgODIsIDc5LCAKLSAgICA2OSwgNjgsIDY5LCA4MiwgMTI4LCA4MywgNjcsIDcyLCA3OSwgNzksIDc2LCAxMjgsIDgzLCA2NywgNzIsIDc5LCA3OSwgCi0gICAgMjA0LCA4MywgNjcsIDcyLCA3OSwgNzYsIDY1LCA4MiwgMTI4LCA4MywgNjcsIDcyLCA2OSwgNzcsIDE5MywgODMsIDY3LCAKLSAgICA2OSwgODAsIDg0LCA2OSwgMjEwLCA4MywgNjcsIDY1LCA3OCwgNjgsIDczLCA2NywgODUsIDgzLCAxMjgsIDgzLCA2NywgNjUsIAotICAgIDc4LCA2OCwgNzMsIDY3LCA4NSwgMjExLCA4MywgNjcsIDY1LCAyMDYsIDgzLCA2NywgNjUsIDc2LCA2OSwgODMsIDEyOCwgCi0gICAgODMsIDY2LCA4NSwgMTk0LCA4MywgNjYsIDgyLCA4NSwgMjA0LCA4MywgNjUsIDg5LCA3MywgODMsIDIwMSwgODMsIDY1LCAKLSAgICA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgODMsIDY1LCA4OSwgMTI4LCA4MywgNjUsIDg4LCA3OSwgODAsIDcyLCA3OSwgNzgsIAotICAgIDY5LCAxMjgsIDgzLCA2NSwgODgsIDczLCA3NywgNjUsIDg0LCA2NSwgMTI4LCA4MywgNjUsIDg3LCA2NSwgNzgsIDEyOCwgCi0gICAgODMsIDY1LCA4NywgMTI4LCA4MywgNjUsIDg2LCA3OSwgODUsIDgyLCA3MywgNzgsIDE5OSwgODMsIDY1LCA4NSwgNzMsIDc2LCAKLSAgICAxMjgsIDgzLCA2NSwgODQsIDg1LCA4MiwgNzgsIDEyOCwgODMsIDY1LCA4NCwgNzUsIDY1LCA2NSwgNzgsIDc1LCA4NSwgODUsIAotICAgIDEyOCwgODMsIDY1LCA4NCwgNzUsIDY1LCA2NSwgNzgsIDEyOCwgODMsIDY1LCA4NCwgNjksIDc2LCA3NiwgNzMsIDg0LCAKLSAgICAxOTcsIDgzLCA2NSwgODQsIDY3LCA3MiwgNjksIDc2LCAxMjgsIDgzLCA2NSwgODMsIDcyLCAxMjgsIDgzLCA2NSwgODMsIAotICAgIDY1LCA3NSwgMTI4LCA4MywgNjUsIDgyLCA3MywgMTI4LCA4MywgNjUsIDgyLCAxOTMsIDgzLCA2NSwgODIsIDEyOCwgODMsIAotICAgIDY1LCA4MSwgMTI4LCA4MywgNjUsIDgwLCA2NSwgMTI4LCA4MywgNjUsIDc4LCA4OSwgNzksIDc5LCA3MSwgMTkzLCA4MywgCi0gICAgNjUsIDc4LCA4OSwgNjUsIDc1LCAxOTMsIDgzLCA2NSwgNzgsIDg0LCA3MywgNzMsIDc3LCA4NSwgMTI4LCA4MywgNjUsIDc4LCAKLSAgICA3OCwgODksIDY1LCAxMjgsIDgzLCA2NSwgNzgsIDcxLCA2NSwgNTAsIDEyOCwgODMsIDY1LCA3OCwgNjgsIDY1LCA3NiwgCi0gICAgMTI4LCA4MywgNjUsIDc4LCA2NSwgNzIsIDEyOCwgODMsIDY1LCA3OCwgMTI4LCA4MywgNjUsIDc3LCA4OSwgNzksIDIwMywgCi0gICAgODMsIDY1LCA3NywgODAsIDczLCAxMjgsIDgzLCA2NSwgNzcsIDgwLCA3MiwgNjUsIDc5LCAxMjgsIDgzLCA2NSwgNzcsIDc1LCAKLSAgICA2NSwgMTI4LCA4MywgNjUsIDc3LCA2OSwgNzUsIDcyLCAxMjgsIDgzLCA2NSwgNzcsIDY5LCA3NSwgMjAwLCA4MywgNjUsIAotICAgIDc3LCA2NiwgNjUsIDEyOCwgODMsIDY1LCA3NywgNjUsIDgyLCA3MywgODQsIDY1LCAyMDYsIDgzLCA2NSwgNzcsIDEyOCwgCi0gICAgODMsIDY1LCA3NiwgODQsIDczLCA4MiwgNjksIDEyOCwgODMsIDY1LCA3NiwgODQsIDczLCA3NiwgNzYsIDc5LCAxMjgsIDgzLCAKLSAgICA2NSwgNzYsIDg0LCA0NSwgNTAsIDEyOCwgODMsIDY1LCA3NiwgODQsIDEyOCwgODMsIDY1LCA3NiwgMjEyLCA4MywgNjUsIAotICAgIDc2LCA3NiwgNjUsIDc2LCA3NiwgNjUsIDcyLCA3OSwgMjEzLCA4MywgNjUsIDc2LCA3NiwgMTkzLCA4MywgNjUsIDc2LCA2NSwgCi0gICAgMjA1LCA4MywgNjUsIDc2LCA2NSwgMTI4LCA4MywgNjUsIDc2LCA0NSwgNjUsIDc3LCA3NywgNzksIDc4LCA3MywgNjUsIDY3LCAKLSAgICAxMjgsIDgzLCA2NSwgNzYsIDEyOCwgODMsIDY1LCA3NSwgNzksIDg0LCAxMjgsIDgzLCA2NSwgNzUsIDY5LCA4NSwgNjUsIAotICAgIDY5LCAxMjgsIDgzLCA2NSwgNzUsIDE5NywgODMsIDY1LCA3NCwgNjgsIDY1LCA3MiwgMTI4LCA4MywgNjUsIDczLCA3NiwgCi0gICAgNjYsIDc5LCA2NSwgODQsIDEyOCwgODMsIDY1LCA3MywgNzYsIDEyOCwgODMsIDY1LCA3MywgNzUsIDg1LCA4MiwgODUsIAotICAgIDEyOCwgODMsIDY1LCA3MSwgNzMsIDg0LCA4NCwgNjUsIDgyLCA3MywgODUsIDgzLCAxMjgsIDgzLCA2NSwgNzEsIDY1LCAKLSAgICAxMjgsIDgzLCA2NSwgNzEsIDEyOCwgODMsIDY1LCAxOTksIDgzLCA2NSwgNzAsIDcyLCA2NSwgMTI4LCA4MywgNjUsIDY4LCAKLSAgICA3MiwgNjksIDEyOCwgODMsIDY1LCA2OCwgNjksIDEyOCwgODMsIDY1LCA2OCwgMTI4LCA4MywgNjUsIDE5NiwgODMsIDY1LCAKLSAgICA2NywgODIsIDczLCA3MCwgNzMsIDY3LCA3MywgNjUsIDIwNCwgODMsIDY1LCA2NSwgNzMsIDEyOCwgODMsIDY1LCA2NSwgNjgsIAotICAgIDcyLCA4NSwgMTI4LCA4MywgNjUsIDQ1LCA3MywgMTI4LCA4MywgNDgsIDUyLCA1NCwgMTI4LCA4MywgNDgsIDUyLCA1MywgCi0gICAgMTI4LCA4MywgNDgsIDUyLCA1MiwgMTI4LCA4MywgNDgsIDUyLCA1MSwgMTI4LCA4MywgNDgsIDUyLCA1MCwgMTI4LCA4MywgCi0gICAgNDgsIDUyLCA0OSwgMTI4LCA4MywgNDgsIDUyLCA0OCwgMTI4LCA4MywgNDgsIDUxLCA1NywgMTI4LCA4MywgNDgsIDUxLCAKLSAgICA1NiwgMTI4LCA4MywgNDgsIDUxLCA1NSwgMTI4LCA4MywgNDgsIDUxLCA1NCwgMTI4LCA4MywgNDgsIDUxLCA1MywgNjUsIAotICAgIDEyOCwgODMsIDQ4LCA1MSwgNTMsIDEyOCwgODMsIDQ4LCA1MSwgNTIsIDEyOCwgODMsIDQ4LCA1MSwgNTEsIDEyOCwgODMsIAotICAgIDQ4LCA1MSwgNTAsIDEyOCwgODMsIDQ4LCA1MSwgNDksIDEyOCwgODMsIDQ4LCA1MSwgNDgsIDEyOCwgODMsIDQ4LCA1MCwgCi0gICAgNTcsIDEyOCwgODMsIDQ4LCA1MCwgNTYsIDEyOCwgODMsIDQ4LCA1MCwgNTUsIDEyOCwgODMsIDQ4LCA1MCwgNTQsIDY2LCAKLSAgICAxMjgsIDgzLCA0OCwgNTAsIDU0LCA2NSwgMTI4LCA4MywgNDgsIDUwLCA1NCwgMTI4LCA4MywgNDgsIDUwLCA1MywgMTI4LCAKLSAgICA4MywgNDgsIDUwLCA1MiwgMTI4LCA4MywgNDgsIDUwLCA1MSwgMTI4LCA4MywgNDgsIDUwLCA1MCwgMTI4LCA4MywgNDgsIAotICAgIDUwLCA0OSwgMTI4LCA4MywgNDgsIDUwLCA0OCwgMTI4LCA4MywgNDgsIDQ5LCA1NywgMTI4LCA4MywgNDgsIDQ5LCA1NiwgCi0gICAgMTI4LCA4MywgNDgsIDQ5LCA1NSwgNjUsIDEyOCwgODMsIDQ4LCA0OSwgNTUsIDEyOCwgODMsIDQ4LCA0OSwgNTQsIDEyOCwgCi0gICAgODMsIDQ4LCA0OSwgNTMsIDEyOCwgODMsIDQ4LCA0OSwgNTIsIDY2LCAxMjgsIDgzLCA0OCwgNDksIDUyLCA2NSwgMTI4LCAKLSAgICA4MywgNDgsIDQ5LCA1MiwgMTI4LCA4MywgNDgsIDQ5LCA1MSwgMTI4LCA4MywgNDgsIDQ5LCA1MCwgMTI4LCA4MywgNDgsIAotICAgIDQ5LCA0OSwgMTI4LCA4MywgNDgsIDQ5LCA0OCwgMTI4LCA4MywgNDgsIDQ4LCA1NywgMTI4LCA4MywgNDgsIDQ4LCA1NiwgCi0gICAgMTI4LCA4MywgNDgsIDQ4LCA1NSwgMTI4LCA4MywgNDgsIDQ4LCA1NCwgNjUsIDEyOCwgODMsIDQ4LCA0OCwgNTQsIDEyOCwgCi0gICAgODMsIDQ4LCA0OCwgNTMsIDEyOCwgODMsIDQ4LCA0OCwgNTIsIDEyOCwgODMsIDQ4LCA0OCwgNTEsIDEyOCwgODMsIDQ4LCAKLSAgICA0OCwgNTAsIDY1LCAxMjgsIDgzLCA0OCwgNDgsIDUwLCAxMjgsIDgzLCA0OCwgNDgsIDQ5LCAxMjgsIDgzLCA0NSwgODcsIAotICAgIDEyOCwgODMsIDQ1LCA4MywgNzIsIDY1LCA4MCwgNjksIDE5NiwgODIsIDg5LCA4OSwgMTI4LCA4MiwgODksIDg4LCAxMjgsIAotICAgIDgyLCA4OSwgODQsIDEyOCwgODIsIDg5LCA4MiwgODgsIDEyOCwgODIsIDg5LCA4MiwgMTI4LCA4MiwgODksIDgwLCAxMjgsIAotICAgIDgyLCA4OSwgNjUsIDEyOCwgODIsIDg3LCA3OSwgNzksIDEyOCwgODIsIDg3LCA3OSwgMTI4LCA4MiwgODcsIDczLCA3MywgCi0gICAgMTI4LCA4MiwgODcsIDczLCAxMjgsIDgyLCA4NywgNjksIDY5LCAxMjgsIDgyLCA4NywgNjksIDEyOCwgODIsIDg3LCA2NSwgCi0gICAgNzIsIDY1LCAxMjgsIDgyLCA4NywgNjUsIDY1LCAxMjgsIDgyLCA4NywgNjUsIDEyOCwgODIsIDg1LCA4OCwgMTI4LCA4MiwgCi0gICAgODUsIDg1LCA2NiwgODUsIDgyLCA4NSwgMTI4LCA4MiwgODUsIDg0LCAxMjgsIDgyLCA4NSwgODMsIDczLCAxMjgsIDgyLCAKLSAgICA4NSwgODIsIDg4LCAxMjgsIDgyLCA4NSwgODIsIDEyOCwgODIsIDg1LCA4MCwgNzMsIDczLCAxMjgsIDgyLCA4NSwgODAsIAotICAgIDY5LCAxOTcsIDgyLCA4NSwgODAsIDEyOCwgODIsIDg1LCA3OSwgODgsIDEyOCwgODIsIDg1LCA3OSwgODAsIDEyOCwgODIsIAotICAgIDg1LCA3OSwgMTI4LCA4MiwgODUsIDc4LCA3OSwgODUsIDg0LCAxMjgsIDgyLCA4NSwgNzgsIDc4LCA3MywgNzgsIDE5OSwgCi0gICAgODIsIDg1LCA3OCwgNzgsIDY5LCA4MiwgMTI4LCA4MiwgODUsIDc4LCAxMjgsIDgyLCA4NSwgNzcsIDIwMSwgODIsIDg1LCAKLSAgICA3NywgNjUsIDIwMSwgODIsIDg1LCA3NywgMTI4LCA4MiwgODUsIDIwNSwgODIsIDg1LCA3NiwgNjksIDgyLCAxMjgsIDgyLCAKLSAgICA4NSwgNzYsIDY5LCA0NSwgNjgsIDY5LCA3NiwgNjUsIDg5LCA2OSwgNjgsIDEyOCwgODIsIDg1LCA3NiwgNjksIDEyOCwgODIsIAotICAgIDg1LCA3NSwgNzUsIDY1LCA3NSwgNzIsIDY1LCAxMjgsIDgyLCA4NSwgNzMsIDgzLCAxMjgsIDgyLCA4NSwgNzEsIDY2LCAKLSAgICAyMTcsIDgyLCA4NSwgMTk0LCA4MiwgODUsIDY1LCAxMjgsIDgyLCA4NCwgNzIsIDY1LCA3OCwgMTk5LCA4MiwgODQsIDY1LCAKLSAgICA3MSwgODMsIDEyOCwgODIsIDg0LCA2NSwgNzEsIDIxMSwgODIsIDgyLCA4OSwgODgsIDEyOCwgODIsIDgyLCA4OSwgODQsIAotICAgIDEyOCwgODIsIDgyLCA4OSwgODIsIDg4LCAxMjgsIDgyLCA4MiwgODksIDgyLCAxMjgsIDgyLCA4MiwgODksIDgwLCAxMjgsIAotICAgIDgyLCA4MiwgODUsIDg4LCAxMjgsIDgyLCA4MiwgODUsIDg0LCAxMjgsIDgyLCA4MiwgODUsIDgyLCA4OCwgMTI4LCA4MiwgCi0gICAgODIsIDg1LCA4MiwgMTI4LCA4MiwgODIsIDg1LCA4MCwgMTI4LCA4MiwgODIsIDg1LCA3OSwgODgsIDEyOCwgODIsIDgyLCAKLSAgICA4NSwgNzksIDEyOCwgODIsIDgyLCA4NSwgMTI4LCA4MiwgODIsIDc5LCA4OCwgMTI4LCA4MiwgODIsIDc5LCA4NCwgMTI4LCAKLSAgICA4MiwgODIsIDc5LCA4MCwgMTI4LCA4MiwgODIsIDc5LCAxMjgsIDgyLCA4MiwgNjksIDg4LCAxMjgsIDgyLCA4MiwgNjksIAotICAgIDg0LCAxMjgsIDgyLCA4MiwgNjksIDgwLCAxMjgsIDgyLCA4MiwgNjksIDcyLCAxMjgsIDgyLCA4MiwgNjksIDIwMCwgODIsIAotICAgIDgyLCA2OSwgMTI4LCA4MiwgODIsIDY1LCA4OCwgMTI4LCA4MiwgODIsIDY1LCAxMjgsIDgyLCA3OSwgODcsIDY2LCA3OSwgCi0gICAgNjUsIDg0LCAxMjgsIDgyLCA3OSwgODUsIDc4LCA2OCwgNjksIDE5NiwgODIsIDc5LCA4NSwgNzgsIDY4LCA0NSwgODQsIDczLCAKLSAgICA4MCwgODAsIDY5LCAxOTYsIDgyLCA3OSwgODQsIDg1LCA3OCwgNjgsIDY1LCAxMjgsIDgyLCA3OSwgODQsIDY1LCA4NCwgNjksIAotICAgIDE5NiwgODIsIDc5LCA4MywgNzIsIDEyOCwgODIsIDc5LCA4MywgNjksIDg0LCA4NCwgNjksIDEyOCwgODIsIDc5LCA4MywgCi0gICAgNjksIDEyOCwgODIsIDc5LCA3OSwgODQsIDEyOCwgODIsIDc5LCA3OSwgODMsIDg0LCA2OSwgODIsIDEyOCwgODIsIDc5LCAKLSAgICA3OSwgNzUsIDEyOCwgODIsIDc5LCA3OSwgNzAsIDEyOCwgODIsIDc5LCA3OSwgMTI4LCA4MiwgNzksIDc3LCA2NSwgMjA2LCAKLSAgICA4MiwgNzksIDc3LCAxMjgsIDgyLCA3OSwgNzYsIDc2LCA2OSwgMjEwLCA4MiwgNzksIDE5NiwgODIsIDc5LCA2NywgNzUsIAotICAgIDY5LCA4NCwgMTI4LCA4MiwgNzksIDY3LCAyMDMsIDgyLCA3OSwgNjcsIDEyOCwgODIsIDc5LCA2NiwgNjUsIDg0LCAxMjgsIAotICAgIDgyLCA3OSwgNjUsIDgzLCA4NCwgNjksIDE5NiwgODIsIDc5LCA2NSwgODIsIDEyOCwgODIsIDc5LCA2NSwgMTI4LCA4MiwgCi0gICAgNzgsIDg5LCA3MywgNzgsIDE5OSwgODIsIDc4LCA3OSwgNzksIDc4LCAxMjgsIDgyLCA3OCwgNzksIDc5LCAyMDYsIDgyLCAKLSAgICA3OCwgNjUsIDIwNSwgODIsIDc0LCA2OSwgMjExLCA4MiwgNzQsIDY5LCAxMjgsIDgyLCA3NCwgMTk3LCA4MiwgNzMsIDg2LCAKLSAgICA2OSwgODIsIDEyOCwgODIsIDczLCA4NCwgODUsIDY1LCA3NiwgMTI4LCA4MiwgNzMsIDg0LCA4NCwgNzksIDgyLCA4NSwgCi0gICAgMTI4LCA4MiwgNzMsIDg0LCA4MywgNzMsIDEyOCwgODIsIDczLCA4MywgNzMsIDc4LCAxOTksIDgyLCA3MywgODMsIDcyLCAKLSAgICAxMjgsIDgyLCA3MywgODIsIDY1LCAxMjgsIDgyLCA3MywgODAsIDEyOCwgODIsIDczLCA3OCwgNzEsIDIxMSwgODIsIDczLCAKLSAgICA3OCwgNzAsIDc5LCA4MiwgOTAsIDY1LCA3OCwgNjgsIDc5LCAxMjgsIDgyLCA3MywgMjA2LCA4MiwgNzMsIDc3LCA3MSwgNjYsIAotICAgIDY1LCAxMjgsIDgyLCA3MywgNzUsIDgyLCA3MywgNzUsIDEyOCwgODIsIDczLCA3MywgMTI4LCA4MiwgNzMsIDcxLCA4NiwgCi0gICAgNjksIDY4LCA3MywgMTk1LCA4MiwgNzMsIDcxLCA3MiwgODQsIDg3LCA2NSwgODIsIDY4LCA4MywgMTI4LCA4MiwgNzMsIDcxLCAKLSAgICA3MiwgODQsIDcyLCA2NSwgNzgsIDE5NiwgODIsIDczLCA3MSwgNzIsIDg0LCA0NSwgODQsIDc5LCA0NSwgNzYsIDY5LCA3MCwgCi0gICAgMjEyLCA4MiwgNzMsIDcxLCA3MiwgODQsIDQ1LCA4MywgNzMsIDY4LCAxOTcsIDgyLCA3MywgNzEsIDcyLCA4NCwgNDUsIDgzLCAKLSAgICA3MiwgNjUsIDY4LCA3OSwgODcsIDY5LCAxOTYsIDgyLCA3MywgNzEsIDcyLCA4NCwgNDUsIDgzLCA3MiwgNjUsIDY4LCA2OSwgCi0gICAgMTk2LCA4MiwgNzMsIDcxLCA3MiwgODQsIDQ1LCA4MCwgNzksIDczLCA3OCwgODQsIDczLCA3OCwgMTk5LCA4MiwgNzMsIDcxLCAKLSAgICA3MiwgODQsIDQ1LCA3MiwgNjUsIDc4LCA2OCwgNjksIDE5NiwgODIsIDczLCA3MSwgNzIsIDg0LCA0NSwgNzIsIDY1LCA3OCwgCi0gICAgMTk2LCA4MiwgNzMsIDcxLCA3MiwgODQsIDQ1LCA3MCwgNjUsIDY3LCA3MywgNzgsIDE5OSwgODIsIDczLCA3MSwgNzIsIDg0LCAKLSAgICAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDg5LCA2OSwgODMsIDczLCA2OSwgODUsIDc4LCA3MSwgMTI4LCA4MiwgNzMsIAotICAgIDY5LCA4NSwgNzYsIDQ1LCA4OSwgNjksIDc5LCA4MiwgNzMsIDc4LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDQ1LCA3MiwgNzMsIAotICAgIDY5LCA4NSwgNzIsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgODksIDY5LCA3OSwgODIsIDczLCA3OCwgNzIsIDczLCAKLSAgICA2OSwgODUsIDcyLCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDQ1LCA3MiwgCi0gICAgNzMsIDY5LCA4NSwgNzIsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgODQsIDczLCA3NSwgNjksIDg1LCA4NCwgMTI4LCAKLSAgICA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA4NCwgNzIsIDczLCA2OSwgODUsIDg0LCA3MiwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgCi0gICAgNzYsIDQ1LCA4MywgODMsIDY1LCA3OCwgNzEsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDEyOCwgODIsIDczLCA2OSwgODUsIAotICAgIDc2LCA0NSwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MywgNzMsIDc5LCA4MywgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCAKLSAgICA4MywgODMsIDY1LCA3OCwgNzEsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA4MywgCi0gICAgODMsIDY1LCA3OCwgNzEsIDc1LCA3MywgODksIDY5LCA3OSwgNzUsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgODMsIAotICAgIDczLCA3OSwgODMsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgODQsIDczLCAKLSAgICA3NSwgNjksIDg1LCA4NCwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDQ1LCA4MywgCi0gICAgNzMsIDc5LCA4MywgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDQ1LCA4MCwgNzIsIAotICAgIDczLCA2OSwgODUsIDgwLCA3MiwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDQ1LCAKLSAgICA3MiwgNzMsIDY5LCA4NSwgNzIsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgODAsIDczLCA2OSwgODUsIDgwLCAxMjgsIAotICAgIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDgwLCA3MiwgNzMsIDY5LCA4NSwgODAsIDcyLCAxMjgsIDgyLCA3MywgNjksIDg1LCAKLSAgICA3NiwgNDUsIDgwLCA2NSwgNzgsIDgzLCA3MywgNzksIDgzLCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDc4LCA3MywgCi0gICAgNjksIDg1LCA3OCwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA3NywgNzMsIDY5LCA4NSwgNzcsIDQ1LCA4MywgNzMsIAotICAgIDc5LCA4MywgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA3NywgNzMsIDY5LCA4NSwgNzcsIDQ1LCA3NSwgNzMsIDg5LCAKLSAgICA2OSwgNzksIDc1LCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDc3LCA3MywgNjksIDg1LCA3NywgNDUsIDcyLCA3MywgCi0gICAgNjksIDg1LCA3MiwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA3NywgNzMsIDY5LCA4NSwgNzcsIDEyOCwgODIsIDczLCAKLSAgICA2OSwgODUsIDc2LCA0NSwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIDgzLCA3MywgNzksIDgzLCAxMjgsIDgyLCA3MywgCi0gICAgNjksIDg1LCA3NiwgNDUsIDc1LCA3MywgODksIDY5LCA3OSwgNzUsIDQ1LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDEyOCwgODIsIAotICAgIDczLCA2OSwgODUsIDc2LCA0NSwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCAKLSAgICA3NSwgNjUsIDgwLCA4OSwgNjksIDc5LCA4NSwgNzgsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgCi0gICAgNzYsIDQ1LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgNjcsIDczLCA2OSwgODUsIAotICAgIDY3LCAxMjgsIDgyLCA3MywgNjksIDg1LCAyMDQsIDgyLCA3MywgNjksIDc2LCAxMjgsIDgyLCA3MywgNjksIDY5LCAxMjgsIAotICAgIDgyLCA3MywgNjcsIDY5LCA3NywgMTI4LCA4MiwgNzMsIDY3LCA2OSwgMTI4LCA4MiwgNzMsIDY3LCAxOTcsIDgyLCA3MywgCi0gICAgNjYsIDY2LCA3OSwgNzgsIDEyOCwgODIsIDczLCA2NSwgMjA0LCA4MiwgNzIsIDc5LCA4NCwgNzMsIDE5NSwgODIsIDcyLCAKLSAgICA3OSwgMTI4LCA4MiwgNzIsIDIwNywgODIsIDcyLCA2NSwgMTI4LCA4MiwgNzEsIDg5LCA3MywgNzgsIDcxLCA4MywgMTI4LCAKLSAgICA4MiwgNzEsIDg5LCA2NSwgNzgsIDEyOCwgODIsIDcxLCA4OSwgMTkzLCA4MiwgNjksIDg2LCA3OSwgNzYsIDg2LCA3MywgNzgsIAotICAgIDE5OSwgODIsIDY5LCA4NiwgNzksIDc2LCA4NSwgODQsIDczLCA3OSwgNzgsIDEyOCwgODIsIDY5LCA4NiwgNzcsIDY1LCAKLSAgICAxMjgsIDgyLCA2OSwgODYsIDczLCA2NSwgMTI4LCA4MiwgNjksIDg2LCA2OSwgODIsIDgzLCA2OSwgNjgsIDEyOCwgODIsIAotICAgIDY5LCA4NiwgNjksIDgyLCA4MywgNjksIDE5NiwgODIsIDY5LCA4NiwgNjksIDgyLCA4MywgMTk3LCA4MiwgNjksIDg1LCA4OCwgCi0gICAgMTI4LCA4MiwgNjksIDg0LCA4NSwgODIsIDc4LCAxMjgsIDgyLCA2OSwgODQsIDg1LCA4MiwgMjA2LCA4MiwgNjksIDg0LCAKLSAgICA4MiwgNzksIDcwLCA3NiwgNjksIDIxNiwgODIsIDY5LCA4NCwgODIsIDY5LCA2NSwgODQsIDEyOCwgODIsIDY5LCA4NCwgNzksIAotICAgIDgyLCA4NCwgMTI4LCA4MiwgNjksIDgzLCA4NSwgODAsIDczLCA3OCwgODUsIDgzLCAxMjgsIDgyLCA2OSwgODMsIDg0LCA4MiwgCi0gICAgNzksIDc5LCA3NywgMTI4LCA4MiwgNjksIDgzLCA4NCwgODIsIDczLCA2NywgODQsIDY5LCAxOTYsIDgyLCA2OSwgODMsIDg0LCAKLSAgICAxMjgsIDgyLCA2OSwgODMsIDgwLCA3OSwgNzgsIDgzLCA2OSwgMTI4LCA4MiwgNjksIDgzLCA3OSwgODUsIDgyLCA2NywgNjksIAotICAgIDEyOCwgODIsIDY5LCA4MywgNzksIDc2LCA4NSwgODQsIDczLCA3OSwgNzgsIDEyOCwgODIsIDY5LCA4MywgNzMsIDgzLCA4NCwgCi0gICAgNjUsIDc4LCA2NywgNjksIDEyOCwgODIsIDY5LCA4MywgNzMsIDY4LCA2OSwgNzgsIDY3LCA2OSwgMTI4LCA4MiwgNjksIDgzLCAKLSAgICAyMDAsIDgyLCA2OSwgODIsIDY5LCA3OCwgNzEsIDcxLCA2NSwgNzgsIDEyOCwgODIsIDY5LCA4MiwgNjksIDc1LCA2NSwgNzgsIAotICAgIDEyOCwgODIsIDY5LCA4MCwgODIsIDY5LCA4MywgNjksIDc4LCA4NCwgMTI4LCA4MiwgNjksIDgwLCA3NiwgNjUsIDY3LCA2OSwgCi0gICAgNzcsIDY5LCA3OCwgMjEyLCA4MiwgNjksIDgwLCA3MiwgMTI4LCA4MiwgNjksIDgwLCA2OSwgNjUsIDg0LCA2OSwgMTk2LCAKLSAgICA4MiwgNjksIDgwLCA2OSwgNjUsIDg0LCAxMjgsIDgyLCA2OSwgODAsIDY5LCA2NSwgMjEyLCA4MiwgNjksIDgwLCA2NSwgCi0gICAgMTI4LCA4MiwgNjksIDgwLCAxOTMsIDgyLCA2OSwgNzgsIDg0LCA3OSwgNzEsIDY5LCA3OCwgMTI4LCA4MiwgNjksIDc4LCAKLSAgICAxMjgsIDgyLCA2OSwgMjA2LCA4MiwgNjksIDc3LCA4NSwgMTI4LCA4MiwgNjksIDc3LCA2OSwgNjgsIDg5LCAxMjgsIDgyLCAKLSAgICA2OSwgNzYsIDczLCA3MSwgNzMsIDc5LCA3OCwgMTI4LCA4MiwgNjksIDc2LCA3MywgNjksIDg2LCA2OSwgMTk2LCA4MiwgNjksIAotICAgIDc2LCA2OSwgNjUsIDgzLCA2OSwgMTI4LCA4MiwgNjksIDc2LCA2NSwgODQsIDczLCA3OSwgNzgsIDY1LCAyMDQsIDgyLCA2OSwgCi0gICAgNzYsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4MiwgNjksIDc2LCA2NSwgNjUsIDEyOCwgODIsIDY5LCA3NCwgNjUsIDc4LCAKLSAgICAxOTksIDgyLCA2OSwgNzMsIDE5NiwgODIsIDY5LCA3MSwgODUsIDc2LCA4NSwgODMsIDQ1LCA1MiwgMTI4LCA4MiwgNjksIAotICAgIDcxLCA4NSwgNzYsIDg1LCA4MywgNDUsIDUxLCAxMjgsIDgyLCA2OSwgNzEsIDg1LCA3NiwgODUsIDgzLCA0NSwgNTAsIDEyOCwgCi0gICAgODIsIDY5LCA3MSwgODUsIDc2LCA4NSwgODMsIDEyOCwgODIsIDY5LCA3MSwgODUsIDc2LCA4NSwgMjExLCA4MiwgNjksIDcxLCAKLSAgICA3MywgODMsIDg0LCA2OSwgODIsIDY5LCAxOTYsIDgyLCA2OSwgNzEsIDczLCA3OSwgNzgsIDY1LCAyMDQsIDgyLCA2OSwgNzEsIAotICAgIDczLCA2NSwgNDUsIDUwLCAxMjgsIDgyLCA2OSwgNzEsIDczLCA2NSwgMTI4LCA4MiwgNjksIDcwLCA2OSwgODIsIDY5LCA3OCwgCisgICAgODYsIDczLCA2NSwgMjA2LCA4MywgNzIsIDY1LCA4NiwgNjksIDE5NiwgODMsIDcyLCA2NSwgODUsIDEyOCwgODMsIDcyLCAKKyAgICA2NSwgODQsIDEyOCwgODMsIDcyLCA2NSwgODIsIDg1LCAxMjgsIDgzLCA3MiwgNjUsIDgyLCAyMTMsIDgzLCA3MiwgNjUsIAorICAgIDgyLCA4MCwgMTI4LCA4MywgNzIsIDY1LCA4MiwgMjA4LCA4MywgNzIsIDY1LCA4MiwgNjUsIDEyOCwgODMsIDcyLCA2NSwgCisgICAgODIsIDUwLCAxMjgsIDgzLCA3MiwgNjUsIDgyLCAxNzgsIDgzLCA3MiwgNjUsIDgwLCA3MywgNzgsIDcxLCAxMjgsIDgzLCAKKyAgICA3MiwgNjUsIDgwLCA2OSwgODMsIDEyOCwgODMsIDcyLCA2NSwgODAsIDE5NywgODMsIDcyLCA2NSwgODAsIDEyOCwgODMsIAorICAgIDcyLCA2NSwgNzgsIDcxLCAxMjgsIDgzLCA3MiwgNjUsIDc4LCAxMjgsIDgzLCA3MiwgNjUsIDIwNiwgODMsIDcyLCA2NSwgCisgICAgNzcsIDgyLCA3OSwgNjcsIDc1LCAxMjgsIDgzLCA3MiwgNjUsIDc2LCA4MywgNzIsIDY5LCA3NiwgNjksIDg0LCAxMjgsIDgzLCAKKyAgICA3MiwgNjUsIDc1LCA4NCwgNzMsIDEyOCwgODMsIDcyLCA2NSwgNzMsIDEyOCwgODMsIDcyLCA2NSwgNjgsIDc5LCA4NywgNjksIAorICAgIDE5NiwgODMsIDcyLCA2NSwgNjgsIDY5LCAxMjgsIDgzLCA3MiwgNjUsIDY4LCA2OCwgNjUsIDEyOCwgODMsIDcyLCA2NSwgCisgICAgNjgsIDY4LCAxOTMsIDgzLCA3MiwgNjUsIDY4LCAxMjgsIDgzLCA3MiwgNjUsIDE5NiwgODMsIDcyLCA2NSwgNjYsIDU0LCAKKyAgICAxMjgsIDgzLCA3MiwgNjUsIDY1LCAxMjgsIDgzLCA3MiwgNjUsIDU0LCAxMjgsIDgzLCA3MiwgNjUsIDUxLCAxMjgsIDgzLCAKKyAgICA3MiwgNjUsIDE3OSwgODMsIDcxLCA4MiwgMTkzLCA4MywgNzEsIDc5LCAyMTAsIDgzLCA3MSwgNjcsIDEyOCwgODMsIDcxLCAKKyAgICA2NSwgMjE1LCA4MywgNzEsIDY1LCAxOTQsIDgzLCA3MSwgMTI4LCA4MywgNjksIDg4LCA4NCwgODUsIDc2LCAxOTMsIDgzLCAKKyAgICA2OSwgODgsIDg0LCA3MywgNzYsIDY5LCAxMjgsIDgzLCA2OSwgODgsIDg0LCA2NSwgNzgsIDIxMSwgODMsIDY5LCA4NiwgNjksIAorICAgIDgyLCA2NSwgNzgsIDY3LCA2OSwgMTI4LCA4MywgNjksIDg2LCA2OSwgNzgsIDg0LCA4OSwgMTI4LCA4MywgNjksIDg2LCA2OSwgCisgICAgNzgsIDg0LCAyMTcsIDgzLCA2OSwgODYsIDY5LCA3OCwgODQsIDcyLCAxMjgsIDgzLCA2OSwgODYsIDY5LCA3OCwgODQsIDY5LCAKKyAgICA2OSwgNzgsIDEyOCwgODMsIDY5LCA4NiwgNjksIDc4LCA4NCwgNjksIDY5LCAyMDYsIDgzLCA2OSwgODYsIDY5LCA3OCwgNDUsIAorICAgIDg0LCA3MiwgNzMsIDgyLCA4NCwgODksIDEyOCwgODMsIDY5LCA4NiwgNjksIDIwNiwgODMsIDY5LCA4NSwgODgsIDEyOCwgCisgICAgODMsIDY5LCA4NSwgNzgsIDg5LCA2NSwgNzcsIDEyOCwgODMsIDY5LCA4NSwgNjUsIDY5LCA4MSwgMTI4LCA4MywgNjksIDg0LCAKKyAgICA3MCwgNzksIDc4LCAxMjgsIDgzLCA2OSwgODMsIDg0LCA2OSwgODIsIDg0LCA3MywgODUsIDIxMSwgODMsIDY5LCA4MywgODEsIAorICAgIDg1LCA3MywgODEsIDg1LCA2NSwgNjgsIDgyLCA2NSwgODQsIDY5LCAxMjgsIDgzLCA2OSwgODMsIDY1LCA3NywgMTk3LCA4MywgCisgICAgNjksIDgyLCA4NiwgNzMsIDY3LCAxOTcsIDgzLCA2OSwgODIsIDczLCA3MCwgODMsIDEyOCwgODMsIDY5LCA4MiwgNzMsIDcwLCAKKyAgICAyMTEsIDgzLCA2OSwgODEsIDg1LCA2OSwgNzgsIDY3LCAxOTcsIDgzLCA2OSwgODAsIDg0LCA2OSwgNzcsIDY2LCA2OSwgODIsIAorICAgIDEyOCwgODMsIDY5LCA4MCwgNjUsIDgyLCA2NSwgODQsIDc5LCA4MiwgMTI4LCA4MywgNjksIDgwLCA2NSwgODIsIDY1LCA4NCwgCisgICAgNzksIDIxMCwgODMsIDY5LCA3OCwgODQsIDc5LCAxMjgsIDgzLCA2OSwgNzgsIDg0LCA3MywgMTI4LCA4MywgNjksIDc3LCAKKyAgICA4NSwgNzgsIDY3LCA3MywgMTkzLCA4MywgNjksIDc3LCA3NSwgNjUsIDg0LCA3MiwgMTI4LCA4MywgNjksIDc3LCA3NSwgCisgICAgMTI4LCA4MywgNjksIDc3LCA3MywgODYsIDc5LCA4NywgNjksIDIwNCwgODMsIDY5LCA3NywgNzMsIDgzLCA3OSwgNzAsIAorICAgIDIxMiwgODMsIDY5LCA3NywgNzMsIDgzLCA2OSwgODgsIDg0LCA3MywgNzYsIDY5LCAxMjgsIDgzLCA2OSwgNzcsIDczLCA3NywgCisgICAgNzMsIDc4LCA3MywgNzcsIDE5MywgODMsIDY5LCA3NywgNzMsIDY4LCA3MywgODIsIDY5LCA2NywgMjEyLCA4MywgNjksIDc3LCAKKyAgICA3MywgNjcsIDc5LCA3NiwgNzksIDc4LCAxMjgsIDgzLCA2OSwgNzcsIDczLCA2NywgNzksIDc2LCA3OSwgMjA2LCA4MywgNjksIAorICAgIDc3LCA3MywgNjcsIDczLCA4MiwgNjcsIDg1LCA3NiwgNjUsIDIxMCwgODMsIDY5LCA3NywgNzMsIDY3LCA3MywgODIsIDY3LCAKKyAgICA3NiwgMTk3LCA4MywgNjksIDc3LCA3MywgNjYsIDgyLCA2OSwgODYsIDczLCAyMTEsIDgzLCA2OSwgNzcsIDczLCA0NSwgODYsIAorICAgIDc5LCA3MywgNjcsIDY5LCAxOTYsIDgzLCA2OSwgNzYsIDcwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCisgICAgNDUsIDU3LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NywgNTYsIDEyOCwgODMsIDY5LCAKKyAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTcsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCisgICAgNDUsIDU3LCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NywgNTMsIDEyOCwgODMsIDY5LCAKKyAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTcsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCisgICAgNDUsIDU3LCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NywgNTAsIDEyOCwgODMsIDY5LCAKKyAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTcsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCisgICAgNDUsIDU3LCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NywgMTI4LCA4MywgNjksIDc2LCAKKyAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NiwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCisgICAgNTYsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU2LCA1NSwgMTI4LCA4MywgNjksIDc2LCAKKyAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NiwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCisgICAgNTYsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU2LCA1MiwgMTI4LCA4MywgNjksIDc2LCAKKyAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NiwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCisgICAgNTYsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU2LCA0OSwgMTI4LCA4MywgNjksIDc2LCAKKyAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NiwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCisgICAgNTYsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTUsIDU3LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKKyAgICA2NywgODQsIDc5LCA4MiwgNDUsIDU1LCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NSwgCisgICAgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTUsIDU0LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKKyAgICA2NywgODQsIDc5LCA4MiwgNDUsIDU1LCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NSwgCisgICAgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTUsIDUxLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKKyAgICA2NywgODQsIDc5LCA4MiwgNDUsIDU1LCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NSwgCisgICAgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTUsIDQ4LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKKyAgICA2NywgODQsIDc5LCA4MiwgNDUsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU0LCA1NywgCisgICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NCwgNTYsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKKyAgICA4NCwgNzksIDgyLCA0NSwgNTQsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU0LCA1NCwgCisgICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NCwgNTMsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKKyAgICA4NCwgNzksIDgyLCA0NSwgNTQsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU0LCA1MSwgCisgICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NCwgNTAsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKKyAgICA4NCwgNzksIDgyLCA0NSwgNTQsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDU0LCA0OCwgCisgICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKKyAgICA3OSwgODIsIDQ1LCA1MywgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTMsIDU2LCAxMjgsIAorICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUzLCA1NSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKKyAgICA3OSwgODIsIDQ1LCA1MywgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTMsIDUzLCAxMjgsIAorICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUzLCA1MiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKKyAgICA3OSwgODIsIDQ1LCA1MywgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTMsIDUwLCAxMjgsIAorICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUzLCA0OSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKKyAgICA3OSwgODIsIDQ1LCA1MywgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTMsIDEyOCwgODMsIAorICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTIsIDU3LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKKyAgICA4MiwgNDUsIDUyLCA1NiwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MiwgNTUsIDEyOCwgODMsIAorICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTIsIDU0LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKKyAgICA4MiwgNDUsIDUyLCA1MywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MiwgNTIsIDEyOCwgODMsIAorICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTIsIDUxLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKKyAgICA4MiwgNDUsIDUyLCA1MCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MiwgNDksIDEyOCwgODMsIAorICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTIsIDQ4LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKKyAgICA4MiwgNDUsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUxLCA1NywgMTI4LCA4MywgNjksIAorICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MSwgNTYsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKKyAgICA0NSwgNTEsIDU1LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUxLCA1NCwgMTI4LCA4MywgNjksIAorICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MSwgNTMsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKKyAgICA0NSwgNTEsIDUyLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUxLCA1MSwgMTI4LCA4MywgNjksIAorICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MSwgNTAsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKKyAgICA0NSwgNTEsIDQ5LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUxLCA0OCwgMTI4LCA4MywgNjksIAorICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKKyAgICA1MCwgNTcsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIAorICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1NSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKKyAgICA1MCwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUzLCA1NCwgMTI4LCA4MywgNjksIAorICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTMsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKKyAgICA4MiwgNDUsIDUwLCA1MywgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUzLCA1MSwgCisgICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTMsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKKyAgICA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MywgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCisgICAgNTAsIDUzLCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTMsIDEyOCwgODMsIDY5LCAKKyAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUyLCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgCisgICAgODIsIDQ1LCA1MCwgNTIsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MiwgNTUsIAorICAgIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUyLCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgCisgICAgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTIsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIAorICAgIDUwLCA1MiwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUyLCA1MSwgMTI4LCA4MywgCisgICAgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTIsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIAorICAgIDc5LCA4MiwgNDUsIDUwLCA1MiwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUyLCAKKyAgICA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIAorICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUxLCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKKyAgICA1MCwgNTEsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MSwgNTUsIDEyOCwgODMsIAorICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUxLCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKKyAgICA3OSwgODIsIDQ1LCA1MCwgNTEsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MSwgCisgICAgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUxLCA1MSwgMTI4LCA4MywgNjksIDc2LCAKKyAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTEsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCisgICAgNDUsIDUwLCA1MSwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUxLCA0OCwgMTI4LCAKKyAgICA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgCisgICAgNzksIDgyLCA0NSwgNTAsIDUwLCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTAsIAorICAgIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MCwgNTUsIDEyOCwgODMsIDY5LCA3NiwgCisgICAgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUwLCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIAorICAgIDQ1LCA1MCwgNTAsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA1MCwgNTIsIDEyOCwgCisgICAgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUwLCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIAorICAgIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTAsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCAKKyAgICA1MCwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDUwLCA0OCwgMTI4LCA4MywgNjksIAorICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNTAsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKKyAgICA0NSwgNTAsIDQ5LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDksIDU2LCAxMjgsIAorICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OSwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKKyAgICA4NCwgNzksIDgyLCA0NSwgNTAsIDQ5LCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgCisgICAgNDksIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OSwgNTIsIDEyOCwgODMsIDY5LCAKKyAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDQ5LCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgCisgICAgODIsIDQ1LCA1MCwgNDksIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OSwgNDksIAorICAgIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDQ5LCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgCisgICAgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIAorICAgIDQ4LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDgsIDU2LCAxMjgsIDgzLCA2OSwgCisgICAgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OCwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIAorICAgIDgyLCA0NSwgNTAsIDQ4LCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA1MCwgNDgsIDUzLCAKKyAgICAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OCwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIAorICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDQ4LCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKKyAgICA1MCwgNDgsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDUwLCA0OCwgNDksIDEyOCwgODMsIAorICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDQ4LCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKKyAgICA3OSwgODIsIDQ1LCA1MCwgNDgsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNTAsIDEyOCwgODMsIAorICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU3LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKKyAgICA3OSwgODIsIDQ1LCA0OSwgNTcsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NywgCisgICAgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU3LCA1NCwgMTI4LCA4MywgNjksIDc2LCAKKyAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTcsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCisgICAgNDUsIDQ5LCA1NywgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU3LCA1MSwgMTI4LCAKKyAgICA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTcsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgCisgICAgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NywgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIAorICAgIDU3LCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTcsIDEyOCwgODMsIDY5LCA3NiwgCisgICAgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU2LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIAorICAgIDQ1LCA0OSwgNTYsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NiwgNTUsIDEyOCwgCisgICAgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU2LCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIAorICAgIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTYsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCAKKyAgICA1NiwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU2LCA1MSwgMTI4LCA4MywgNjksIAorICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTYsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKKyAgICA4MiwgNDUsIDQ5LCA1NiwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU2LCA0OCwgCisgICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTYsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKKyAgICA4NCwgNzksIDgyLCA0NSwgNDksIDU1LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgCisgICAgNTUsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NSwgNTUsIDEyOCwgODMsIDY5LCAKKyAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU1LCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgCisgICAgODIsIDQ1LCA0OSwgNTUsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NSwgNTIsIAorICAgIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU1LCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgCisgICAgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTUsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIAorICAgIDQ5LCA1NSwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU1LCA0OCwgMTI4LCA4MywgCisgICAgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIAorICAgIDgyLCA0NSwgNDksIDU0LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTQsIDU2LCAKKyAgICAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NCwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIAorICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU0LCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKKyAgICA0OSwgNTQsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NCwgNTIsIDEyOCwgODMsIAorICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU0LCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKKyAgICA3OSwgODIsIDQ1LCA0OSwgNTQsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1NCwgCisgICAgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDU0LCA0OCwgMTI4LCA4MywgNjksIDc2LCAKKyAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTQsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCisgICAgNDksIDUzLCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTMsIDU2LCAxMjgsIDgzLCAKKyAgICA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MywgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgCisgICAgNzksIDgyLCA0NSwgNDksIDUzLCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTMsIAorICAgIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MywgNTIsIDEyOCwgODMsIDY5LCA3NiwgCisgICAgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUzLCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIAorICAgIDQ1LCA0OSwgNTMsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MywgNDksIDEyOCwgCisgICAgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUzLCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIAorICAgIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTMsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUyLCAKKyAgICA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTIsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIAorICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MiwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKKyAgICA0NSwgNDksIDUyLCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTIsIDUzLCAxMjgsIAorICAgIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MiwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCAKKyAgICA4NCwgNzksIDgyLCA0NSwgNDksIDUyLCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgCisgICAgNTIsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MiwgNDksIDEyOCwgODMsIDY5LCAKKyAgICA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUyLCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgCisgICAgODIsIDQ1LCA0OSwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUxLCA1NywgMTI4LCAKKyAgICA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTEsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgCisgICAgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MSwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIAorICAgIDUxLCA1NCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTEsIDUzLCAxMjgsIDgzLCA2OSwgCisgICAgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MSwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIAorICAgIDgyLCA0NSwgNDksIDUxLCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTEsIDUwLCAKKyAgICAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MSwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIAorICAgIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUxLCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCAKKyAgICA0OSwgNTEsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUwLCA1NywgMTI4LCA4MywgNjksIAorICAgIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTAsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCAKKyAgICA4MiwgNDUsIDQ5LCA1MCwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDUwLCA1NCwgCisgICAgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTAsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCAKKyAgICA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MCwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgCisgICAgNDksIDUwLCA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTAsIDUwLCAxMjgsIDgzLCAKKyAgICA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA1MCwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgCisgICAgNzksIDgyLCA0NSwgNDksIDUwLCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNTAsIAorICAgIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ5LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgCisgICAgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDksIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIAorICAgIDQ5LCA0OSwgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ5LCA1NCwgMTI4LCA4MywgCisgICAgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDksIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIAorICAgIDc5LCA4MiwgNDUsIDQ5LCA0OSwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ5LCAKKyAgICA1MSwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDksIDUwLCAxMjgsIDgzLCA2OSwgNzYsIAorICAgIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OSwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCAKKyAgICA0NSwgNDksIDQ5LCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDksIDEyOCwgODMsIAorICAgIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ4LCA1NywgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCAKKyAgICA3OSwgODIsIDQ1LCA0OSwgNDgsIDU2LCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OCwgCisgICAgNTUsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ4LCA1NCwgMTI4LCA4MywgNjksIDc2LCAKKyAgICA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDgsIDUzLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgODQsIDc5LCA4MiwgCisgICAgNDUsIDQ5LCA0OCwgNTIsIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDQ4LCA1MSwgMTI4LCAKKyAgICA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDgsIDUwLCAxMjgsIDgzLCA2OSwgNzYsIDY5LCA2NywgCisgICAgODQsIDc5LCA4MiwgNDUsIDQ5LCA0OCwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIAorICAgIDQ4LCA0OCwgMTI4LCA4MywgNjksIDc2LCA2OSwgNjcsIDg0LCA3OSwgODIsIDQ1LCA0OSwgNDgsIDEyOCwgODMsIDY5LCA3NiwgCisgICAgNjksIDY3LCA4NCwgNzksIDgyLCA0NSwgNDksIDEyOCwgODMsIDY5LCA3NiwgNjksIDY3LCA4NCwgNzksIDIxMCwgODMsIDY5LCAKKyAgICA3NiwgNjksIDY3LCA4NCwgNjksIDE5NiwgODMsIDY5LCA3MywgODMsIDc3LCA2NSwgMTI4LCA4MywgNjksIDczLCA4MywgNzcsIAorICAgIDE5MywgODMsIDY5LCA3MiwgMTI4LCA4MywgNjksIDcxLCA3OSwgNzYsIDEyOCwgODMsIDY5LCA3MSwgNzgsIDc5LCAxMjgsIAorICAgIDgzLCA2OSwgNzEsIDc3LCA2OSwgNzgsIDg0LCAxMjgsIDgzLCA2OSwgNjksIDc4LCA4NSwgMTI4LCA4MywgNjksIDY5LCA3OCwgCisgICAgMTI4LCA4MywgNjksIDY5LCAyMDYsIDgzLCA2OSwgNjksIDY4LCA3NiwgNzMsIDc4LCA3MSwgMTI4LCA4MywgNjksIDY5LCAKKyAgICA0NSwgNzgsIDc5LCA0NSwgNjksIDg2LCA3MywgMjA0LCA4MywgNjksIDY3LCA4NCwgNzksIDgyLCAxMjgsIDgzLCA2OSwgNjcsIAorICAgIDg0LCA3MywgNzksIDc4LCAxMjgsIDgzLCA2OSwgNjcsIDg0LCA3MywgNzksIDIwNiwgODMsIDY5LCA2NywgODIsIDY5LCA4NCwgCisgICAgMTI4LCA4MywgNjksIDY3LCA3OSwgNzgsIDY4LCAxMjgsIDgzLCA2OSwgNjYsIDY1LCA4NCwgNjYsIDY5LCA3MywgMjEyLCAKKyAgICA4MywgNjksIDY1LCA4NCwgMTI4LCA4MywgNjksIDY1LCA3NiwgMTI4LCA4MywgNjksIDY1LCA3MSwgODUsIDc2LCAyMDQsIAorICAgIDgzLCA2OCwgNzksIDc4LCAxOTksIDgzLCA2OCwgMTI4LCA4MywgNjcsIDg3LCA2NSwgMTI4LCA4MywgNjcsIDgyLCA4NSwgCisgICAgODAsIDc2LCA2OSwgMTI4LCA4MywgNjcsIDgyLCA3OSwgNzYsIDc2LCAxMjgsIDgzLCA2NywgODIsIDczLCA4MCwgODQsIAorICAgIDEyOCwgODMsIDY3LCA4MiwgNjksIDY5LCA3OCwgMTI4LCA4MywgNjcsIDgyLCA2OSwgNjksIDIwNiwgODMsIDY3LCA4MiwgCisgICAgNjksIDY1LCA3NywgNzMsIDc4LCAxOTksIDgzLCA2NywgNzksIDgyLCA4MCwgNzMsIDg1LCA4MywgMTI4LCA4MywgNjcsIDc5LCAKKyAgICA4MiwgNjksIDEyOCwgODMsIDY3LCA3MywgODMsIDgzLCA3OSwgODIsIDgzLCAxMjgsIDgzLCA2NywgNzMsIDEyOCwgODMsIAorICAgIDY3LCA3MiwgODcsIDY1LCAxMjgsIDgzLCA2NywgNzIsIDg3LCAxOTMsIDgzLCA2NywgNzIsIDgyLCA3OSwgNjksIDY4LCA2OSwgCisgICAgODIsIDEyOCwgODMsIDY3LCA3MiwgNzksIDc5LCA3NiwgMTI4LCA4MywgNjcsIDcyLCA3OSwgNzksIDIwNCwgODMsIDY3LCAKKyAgICA3MiwgNzksIDc2LCA2NSwgODIsIDEyOCwgODMsIDY3LCA3MiwgNjksIDc3LCAxOTMsIDgzLCA2NywgNjksIDgwLCA4NCwgNjksIAorICAgIDIxMCwgODMsIDY3LCA2NSwgNzgsIDY4LCA3MywgNjcsIDg1LCA4MywgMTI4LCA4MywgNjcsIDY1LCA3OCwgNjgsIDczLCA2NywgCisgICAgODUsIDIxMSwgODMsIDY3LCA2NSwgMjA2LCA4MywgNjcsIDY1LCA3NiwgNjksIDgzLCAxMjgsIDgzLCA2NiwgODUsIDE5NCwgCisgICAgODMsIDY2LCA4MiwgODUsIDIwNCwgODMsIDY1LCA4OSwgNzMsIDgzLCAyMDEsIDgzLCA2NSwgODksIDY1LCA3OCwgNzgsIDY1LCAKKyAgICAxMjgsIDgzLCA2NSwgODksIDEyOCwgODMsIDY1LCA4OCwgNzksIDgwLCA3MiwgNzksIDc4LCA2OSwgMTI4LCA4MywgNjUsIAorICAgIDg4LCA3MywgNzcsIDY1LCA4NCwgNjUsIDEyOCwgODMsIDY1LCA4NywgNjUsIDc4LCAxMjgsIDgzLCA2NSwgODcsIDEyOCwgCisgICAgODMsIDY1LCA4NiwgNzksIDg1LCA4MiwgNzMsIDc4LCAxOTksIDgzLCA2NSwgODUsIDczLCA3NiwgMTI4LCA4MywgNjUsIDg0LCAKKyAgICA4NSwgODIsIDc4LCAxMjgsIDgzLCA2NSwgODQsIDc1LCA2NSwgNjUsIDc4LCA3NSwgODUsIDg1LCAxMjgsIDgzLCA2NSwgODQsIAorICAgIDc1LCA2NSwgNjUsIDc4LCAxMjgsIDgzLCA2NSwgODQsIDY5LCA3NiwgNzYsIDczLCA4NCwgMTk3LCA4MywgNjUsIDg0LCA2NywgCisgICAgNzIsIDY5LCA3NiwgMTI4LCA4MywgNjUsIDg0LCA2NSwgNzgsIDcxLCA2NSwgMTI4LCA4MywgNjUsIDgzLCA3MiwgMTI4LCAKKyAgICA4MywgNjUsIDgzLCA2NSwgNzUsIDEyOCwgODMsIDY1LCA4MiwgNzMsIDEyOCwgODMsIDY1LCA4MiwgMTkzLCA4MywgNjUsIAorICAgIDgyLCAxMjgsIDgzLCA2NSwgODEsIDEyOCwgODMsIDY1LCA4MCwgNjUsIDEyOCwgODMsIDY1LCA3OCwgODksIDc5LCA3OSwgCisgICAgNzEsIDE5MywgODMsIDY1LCA3OCwgODksIDY1LCA3NSwgMTkzLCA4MywgNjUsIDc4LCA4NCwgNzMsIDczLCA3NywgODUsIAorICAgIDEyOCwgODMsIDY1LCA3OCwgNzgsIDg5LCA2NSwgMTI4LCA4MywgNjUsIDc4LCA3MSwgNjUsIDUwLCAxMjgsIDgzLCA2NSwgCisgICAgNzgsIDY4LCA2NSwgNzYsIDEyOCwgODMsIDY1LCA3OCwgNjUsIDcyLCAxMjgsIDgzLCA2NSwgNzgsIDEyOCwgODMsIDY1LCAKKyAgICA3NywgODksIDc5LCAyMDMsIDgzLCA2NSwgNzcsIDg2LCA2NSwgODQsIDEyOCwgODMsIDY1LCA3NywgODAsIDczLCAxMjgsIAorICAgIDgzLCA2NSwgNzcsIDgwLCA3MiwgNjUsIDc5LCAxMjgsIDgzLCA2NSwgNzcsIDc1LCA2NSwgMTI4LCA4MywgNjUsIDc3LCA2OSwgCisgICAgNzUsIDcyLCAxMjgsIDgzLCA2NSwgNzcsIDY5LCA3NSwgMjAwLCA4MywgNjUsIDc3LCA2NiwgNjUsIDEyOCwgODMsIDY1LCAKKyAgICA3NywgNjUsIDgyLCA3MywgODQsIDY1LCAyMDYsIDgzLCA2NSwgNzcsIDEyOCwgODMsIDY1LCA3NiwgODQsIDczLCA4MiwgNjksIAorICAgIDEyOCwgODMsIDY1LCA3NiwgODQsIDczLCA3NiwgNzYsIDc5LCAxMjgsIDgzLCA2NSwgNzYsIDg0LCA0NSwgNTAsIDEyOCwgCisgICAgODMsIDY1LCA3NiwgODQsIDEyOCwgODMsIDY1LCA3NiwgMjEyLCA4MywgNjUsIDc2LCA3NiwgNjUsIDc2LCA3NiwgNjUsIDcyLCAKKyAgICA3OSwgMjEzLCA4MywgNjUsIDc2LCA3NiwgMTkzLCA4MywgNjUsIDc2LCA2NSwgMjA1LCA4MywgNjUsIDc2LCA2NSwgMTI4LCAKKyAgICA4MywgNjUsIDc2LCA0NSwgNjUsIDc3LCA3NywgNzksIDc4LCA3MywgNjUsIDY3LCAxMjgsIDgzLCA2NSwgNzYsIDEyOCwgODMsIAorICAgIDY1LCA3NSwgNzksIDg0LCAxMjgsIDgzLCA2NSwgNzUsIDY5LCA4NSwgNjUsIDY5LCAxMjgsIDgzLCA2NSwgNzUsIDE5NywgCisgICAgODMsIDY1LCA3NCwgNjgsIDY1LCA3MiwgMTI4LCA4MywgNjUsIDczLCA3NiwgNjYsIDc5LCA2NSwgODQsIDEyOCwgODMsIDY1LCAKKyAgICA3MywgNzYsIDEyOCwgODMsIDY1LCA3MywgNzUsIDg1LCA4MiwgODUsIDEyOCwgODMsIDY1LCA3MiwgMTI4LCA4MywgNjUsIAorICAgIDcxLCA3MywgODQsIDg0LCA2NSwgODIsIDczLCA4NSwgODMsIDEyOCwgODMsIDY1LCA3MSwgNjUsIDEyOCwgODMsIDY1LCA3MSwgCisgICAgMTI4LCA4MywgNjUsIDE5OSwgODMsIDY1LCA3MCwgNzIsIDY1LCAxMjgsIDgzLCA2NSwgNjgsIDcyLCA2OSwgMTI4LCA4MywgCisgICAgNjUsIDY4LCA2OSwgMTI4LCA4MywgNjUsIDY4LCAxMjgsIDgzLCA2NSwgMTk2LCA4MywgNjUsIDY3LCA4MiwgNzMsIDcwLCAKKyAgICA3MywgNjcsIDczLCA2NSwgMjA0LCA4MywgNjUsIDY1LCA3MywgMTI4LCA4MywgNjUsIDY1LCA2OCwgNzIsIDg1LCAxMjgsIAorICAgIDgzLCA2NSwgNDUsIDczLCAxMjgsIDgzLCA2NSwgNDUsIDUwLCAxMjgsIDgzLCA0OCwgNTIsIDU0LCAxMjgsIDgzLCA0OCwgCisgICAgNTIsIDUzLCAxMjgsIDgzLCA0OCwgNTIsIDUyLCAxMjgsIDgzLCA0OCwgNTIsIDUxLCAxMjgsIDgzLCA0OCwgNTIsIDUwLCAKKyAgICAxMjgsIDgzLCA0OCwgNTIsIDQ5LCAxMjgsIDgzLCA0OCwgNTIsIDQ4LCAxMjgsIDgzLCA0OCwgNTEsIDU3LCAxMjgsIDgzLCAKKyAgICA0OCwgNTEsIDU2LCAxMjgsIDgzLCA0OCwgNTEsIDU1LCAxMjgsIDgzLCA0OCwgNTEsIDU0LCAxMjgsIDgzLCA0OCwgNTEsIAorICAgIDUzLCA2NSwgMTI4LCA4MywgNDgsIDUxLCA1MywgMTI4LCA4MywgNDgsIDUxLCA1MiwgMTI4LCA4MywgNDgsIDUxLCA1MSwgCisgICAgMTI4LCA4MywgNDgsIDUxLCA1MCwgMTI4LCA4MywgNDgsIDUxLCA0OSwgMTI4LCA4MywgNDgsIDUxLCA0OCwgMTI4LCA4MywgCisgICAgNDgsIDUwLCA1NywgMTI4LCA4MywgNDgsIDUwLCA1NiwgMTI4LCA4MywgNDgsIDUwLCA1NSwgMTI4LCA4MywgNDgsIDUwLCAKKyAgICA1NCwgNjYsIDEyOCwgODMsIDQ4LCA1MCwgNTQsIDY1LCAxMjgsIDgzLCA0OCwgNTAsIDU0LCAxMjgsIDgzLCA0OCwgNTAsIAorICAgIDUzLCAxMjgsIDgzLCA0OCwgNTAsIDUyLCAxMjgsIDgzLCA0OCwgNTAsIDUxLCAxMjgsIDgzLCA0OCwgNTAsIDUwLCAxMjgsIAorICAgIDgzLCA0OCwgNTAsIDQ5LCAxMjgsIDgzLCA0OCwgNTAsIDQ4LCAxMjgsIDgzLCA0OCwgNDksIDU3LCAxMjgsIDgzLCA0OCwgCisgICAgNDksIDU2LCAxMjgsIDgzLCA0OCwgNDksIDU1LCA2NSwgMTI4LCA4MywgNDgsIDQ5LCA1NSwgMTI4LCA4MywgNDgsIDQ5LCAKKyAgICA1NCwgMTI4LCA4MywgNDgsIDQ5LCA1MywgMTI4LCA4MywgNDgsIDQ5LCA1MiwgNjYsIDEyOCwgODMsIDQ4LCA0OSwgNTIsIAorICAgIDY1LCAxMjgsIDgzLCA0OCwgNDksIDUyLCAxMjgsIDgzLCA0OCwgNDksIDUxLCAxMjgsIDgzLCA0OCwgNDksIDUwLCAxMjgsIAorICAgIDgzLCA0OCwgNDksIDQ5LCAxMjgsIDgzLCA0OCwgNDksIDQ4LCAxMjgsIDgzLCA0OCwgNDgsIDU3LCAxMjgsIDgzLCA0OCwgCisgICAgNDgsIDU2LCAxMjgsIDgzLCA0OCwgNDgsIDU1LCAxMjgsIDgzLCA0OCwgNDgsIDU0LCA2NSwgMTI4LCA4MywgNDgsIDQ4LCAKKyAgICA1NCwgMTI4LCA4MywgNDgsIDQ4LCA1MywgMTI4LCA4MywgNDgsIDQ4LCA1MiwgMTI4LCA4MywgNDgsIDQ4LCA1MSwgMTI4LCAKKyAgICA4MywgNDgsIDQ4LCA1MCwgNjUsIDEyOCwgODMsIDQ4LCA0OCwgNTAsIDEyOCwgODMsIDQ4LCA0OCwgNDksIDEyOCwgODMsIAorICAgIDQ1LCA4NywgMTI4LCA4MywgNDUsIDgzLCA3MiwgNjUsIDgwLCA2OSwgMTk2LCA4MiwgODksIDg5LCAxMjgsIDgyLCA4OSwgCisgICAgODgsIDEyOCwgODIsIDg5LCA4NCwgMTI4LCA4MiwgODksIDgyLCA4OCwgMTI4LCA4MiwgODksIDgyLCAxMjgsIDgyLCA4OSwgCisgICAgODAsIDEyOCwgODIsIDg3LCA3OSwgNzksIDEyOCwgODIsIDg3LCA3OSwgMTI4LCA4MiwgODcsIDczLCA3MywgMTI4LCA4MiwgCisgICAgODcsIDczLCAxMjgsIDgyLCA4NywgNjksIDY5LCAxMjgsIDgyLCA4NywgNjksIDEyOCwgODIsIDg3LCA2NSwgNzIsIDY1LCAKKyAgICAxMjgsIDgyLCA4NywgNjUsIDY1LCAxMjgsIDgyLCA4NywgNjUsIDEyOCwgODIsIDg1LCA4OCwgMTI4LCA4MiwgODUsIDg1LCAKKyAgICA2NiwgODUsIDgyLCA4NSwgMTI4LCA4MiwgODUsIDg1LCAxMjgsIDgyLCA4NSwgODQsIDEyOCwgODIsIDg1LCA4MywgNzMsIAorICAgIDEyOCwgODIsIDg1LCA4MiwgODgsIDEyOCwgODIsIDg1LCA4MiwgMTI4LCA4MiwgODUsIDgwLCA3MywgNzMsIDEyOCwgODIsIAorICAgIDg1LCA4MCwgNjksIDE5NywgODIsIDg1LCA4MCwgMTI4LCA4MiwgODUsIDc5LCA4OCwgMTI4LCA4MiwgODUsIDc5LCA4MCwgCisgICAgMTI4LCA4MiwgODUsIDc5LCAxMjgsIDgyLCA4NSwgNzgsIDc5LCA4NSwgODQsIDEyOCwgODIsIDg1LCA3OCwgNzgsIDczLCAKKyAgICA3OCwgMTk5LCA4MiwgODUsIDc4LCA3OCwgNjksIDgyLCAxMjgsIDgyLCA4NSwgNzgsIDEyOCwgODIsIDg1LCA3NywgMjAxLCAKKyAgICA4MiwgODUsIDc3LCA2NSwgMjAxLCA4MiwgODUsIDc3LCAxMjgsIDgyLCA4NSwgMjA1LCA4MiwgODUsIDc2LCA2OSwgODIsIAorICAgIDEyOCwgODIsIDg1LCA3NiwgNjksIDQ1LCA2OCwgNjksIDc2LCA2NSwgODksIDY5LCA2OCwgMTI4LCA4MiwgODUsIDc2LCA2OSwgCisgICAgMTI4LCA4MiwgODUsIDc1LCA3NSwgNjUsIDc1LCA3MiwgNjUsIDEyOCwgODIsIDg1LCA3MywgODMsIDEyOCwgODIsIDg1LCAKKyAgICA3MSwgNjYsIDIxNywgODIsIDg1LCAxOTQsIDgyLCA4NSwgNjUsIDEyOCwgODIsIDg0LCA3MiwgNjUsIDc4LCAxOTksIDgyLCAKKyAgICA4NCwgNjUsIDcxLCA4MywgMTI4LCA4MiwgODQsIDY1LCA3MSwgMjExLCA4MiwgODIsIDg5LCA4OCwgMTI4LCA4MiwgODIsIAorICAgIDg5LCA4NCwgMTI4LCA4MiwgODIsIDg5LCA4MiwgODgsIDEyOCwgODIsIDgyLCA4OSwgODIsIDEyOCwgODIsIDgyLCA4OSwgCisgICAgODAsIDEyOCwgODIsIDgyLCA4NSwgODgsIDEyOCwgODIsIDgyLCA4NSwgODUsIDEyOCwgODIsIDgyLCA4NSwgODQsIDEyOCwgCisgICAgODIsIDgyLCA4NSwgODIsIDg4LCAxMjgsIDgyLCA4MiwgODUsIDgyLCAxMjgsIDgyLCA4MiwgODUsIDgwLCAxMjgsIDgyLCAKKyAgICA4MiwgODUsIDc5LCA4OCwgMTI4LCA4MiwgODIsIDg1LCA3OSwgMTI4LCA4MiwgODIsIDg1LCAxMjgsIDgyLCA4MiwgNzksIAorICAgIDg4LCAxMjgsIDgyLCA4MiwgNzksIDg0LCAxMjgsIDgyLCA4MiwgNzksIDgwLCAxMjgsIDgyLCA4MiwgNzksIDc5LCAxMjgsIAorICAgIDgyLCA4MiwgNzksIDEyOCwgODIsIDgyLCA3MywgNzMsIDEyOCwgODIsIDgyLCA3MywgMTI4LCA4MiwgODIsIDY5LCA4OCwgCisgICAgMTI4LCA4MiwgODIsIDY5LCA4NCwgMTI4LCA4MiwgODIsIDY5LCA4MCwgMTI4LCA4MiwgODIsIDY5LCA3MiwgMTI4LCA4MiwgCisgICAgODIsIDY5LCAyMDAsIDgyLCA4MiwgNjksIDY5LCAxMjgsIDgyLCA4MiwgNjksIDEyOCwgODIsIDgyLCA2NSwgODgsIDEyOCwgCisgICAgODIsIDgyLCA2NSwgODUsIDEyOCwgODIsIDgyLCA2NSwgNzMsIDEyOCwgODIsIDgyLCA2NSwgNjUsIDEyOCwgODIsIDgyLCAKKyAgICA2NSwgMTI4LCA4MiwgNzksIDg3LCA2NiwgNzksIDY1LCA4NCwgMTI4LCA4MiwgNzksIDg1LCA3OCwgNjgsIDY5LCAxOTYsIAorICAgIDgyLCA3OSwgODUsIDc4LCA2OCwgNDUsIDg0LCA3MywgODAsIDgwLCA2OSwgMTk2LCA4MiwgNzksIDg0LCA4NSwgNzgsIDY4LCAKKyAgICA2NSwgMTI4LCA4MiwgNzksIDg0LCA2NSwgODQsIDY5LCAxOTYsIDgyLCA3OSwgODMsIDcyLCAxMjgsIDgyLCA3OSwgODMsIAorICAgIDY5LCA4NCwgODQsIDY5LCAxMjgsIDgyLCA3OSwgODMsIDY5LCAxMjgsIDgyLCA3OSwgNzksIDg0LCAxMjgsIDgyLCA3OSwgCisgICAgNzksIDgzLCA4NCwgNjksIDgyLCAxMjgsIDgyLCA3OSwgNzksIDc1LCAxMjgsIDgyLCA3OSwgNzksIDcwLCAxMjgsIDgyLCAKKyAgICA3OSwgNzcsIDY1LCAyMDYsIDgyLCA3OSwgNzcsIDEyOCwgODIsIDc5LCA3NiwgNzYsIDY5LCAyMTAsIDgyLCA3OSwgNzIsIAorICAgIDczLCA3OCwgNzEsIDg5LCAxOTMsIDgyLCA3OSwgMTk2LCA4MiwgNzksIDY3LCA3NSwgNjksIDg0LCAxMjgsIDgyLCA3OSwgCisgICAgNjcsIDIwMywgODIsIDc5LCA2NywgMTI4LCA4MiwgNzksIDY2LCA2NSwgODQsIDEyOCwgODIsIDc5LCA2NSwgODMsIDg0LCAKKyAgICA2OSwgMTk2LCA4MiwgNzksIDY1LCA4MiwgMTI4LCA4MiwgNzksIDY1LCAxMjgsIDgyLCA3OCwgODksIDczLCA3OCwgMTk5LCAKKyAgICA4MiwgNzgsIDc5LCA3OSwgNzgsIDEyOCwgODIsIDc4LCA3OSwgNzksIDIwNiwgODIsIDc4LCA2NSwgMjA1LCA4MiwgNzcsIAorICAgIDg0LCAxMjgsIDgyLCA3NiwgNzksIDEyOCwgODIsIDc2LCA3NywgMTI4LCA4MiwgNzYsIDY5LCAxMjgsIDgyLCA3NCwgNjksIAorICAgIDIxMSwgODIsIDc0LCA2OSwgMTI4LCA4MiwgNzQsIDE5NywgODIsIDczLCA4NiwgNjksIDgyLCAxMjgsIDgyLCA3MywgODQsIAorICAgIDg1LCA2NSwgNzYsIDEyOCwgODIsIDczLCA4NCwgODQsIDc5LCA4MiwgODUsIDEyOCwgODIsIDczLCA4NCwgODMsIDczLCAKKyAgICAxMjgsIDgyLCA3MywgODMsIDczLCA3OCwgMTk5LCA4MiwgNzMsIDgzLCA3MiwgMTI4LCA4MiwgNzMsIDgyLCA2NSwgMTI4LCAKKyAgICA4MiwgNzMsIDgwLCAxMjgsIDgyLCA3MywgNzgsIDcxLCAyMTEsIDgyLCA3MywgNzgsIDcwLCA3OSwgODIsIDkwLCA2NSwgNzgsIAorICAgIDY4LCA3OSwgMTI4LCA4MiwgNzMsIDIwNiwgODIsIDczLCA3NywgNzEsIDY2LCA2NSwgMTI4LCA4MiwgNzMsIDc1LCA4MiwgCisgICAgNzMsIDc1LCAxMjgsIDgyLCA3MywgNzEsIDg2LCA2OSwgNjgsIDczLCAxOTUsIDgyLCA3MywgNzEsIDcyLCA4NCwgODcsIDY1LCAKKyAgICA4MiwgNjgsIDgzLCAxMjgsIDgyLCA3MywgNzEsIDcyLCA4NCwgNzIsIDY1LCA3OCwgMTk2LCA4MiwgNzMsIDcxLCA3MiwgODQsIAorICAgIDQ1LCA4NCwgNzksIDQ1LCA3NiwgNjksIDcwLCAyMTIsIDgyLCA3MywgNzEsIDcyLCA4NCwgNDUsIDgzLCA3MywgNjgsIDE5NywgCisgICAgODIsIDczLCA3MSwgNzIsIDg0LCA0NSwgODMsIDcyLCA2NSwgNjgsIDc5LCA4NywgNjksIDE5NiwgODIsIDczLCA3MSwgNzIsIAorICAgIDg0LCA0NSwgODMsIDcyLCA2NSwgNjgsIDY5LCAxOTYsIDgyLCA3MywgNzEsIDcyLCA4NCwgNDUsIDgwLCA3OSwgNzMsIDc4LCAKKyAgICA4NCwgNzMsIDc4LCAxOTksIDgyLCA3MywgNzEsIDcyLCA4NCwgNDUsIDcyLCA2NSwgNzgsIDY4LCA2OSwgMTk2LCA4MiwgNzMsIAorICAgIDcxLCA3MiwgODQsIDQ1LCA3MiwgNjUsIDc4LCAxOTYsIDgyLCA3MywgNzEsIDcyLCA4NCwgNDUsIDcwLCA2NSwgNjcsIDczLCAKKyAgICA3OCwgMTk5LCA4MiwgNzMsIDcxLCA3MiwgODQsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgODksIDY5LCA4MywgNzMsIAorICAgIDY5LCA4NSwgNzgsIDcxLCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDg5LCA2OSwgNzksIDgyLCA3MywgNzgsIDcyLCAKKyAgICA3MywgNjksIDg1LCA3MiwgNDUsIDcyLCA3MywgNjksIDg1LCA3MiwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA4OSwgCisgICAgNjksIDc5LCA4MiwgNzMsIDc4LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgODQsIAorICAgIDczLCA3NSwgNjksIDg1LCA4NCwgNDUsIDcyLCA3MywgNjksIDg1LCA3MiwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCAKKyAgICA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDg0LCA3MiwgNzMsIDY5LCA4NSwgCisgICAgODQsIDcyLCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDgzLCA4MywgNjUsIDc4LCA3MSwgODQsIDczLCA3NSwgNjksIAorICAgIDg1LCA4NCwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA4MywgODMsIDY1LCA3OCwgNzEsIDgzLCA3MywgNzksIDgzLCAKKyAgICAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDgzLCA4MywgNjUsIDc4LCA3MSwgODAsIDczLCA2OSwgODUsIDgwLCAxMjgsIAorICAgIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDgzLCA4MywgNjUsIDc4LCA3MSwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgMTI4LCAKKyAgICA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA4MywgNzMsIDc5LCA4MywgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA4MCwgCisgICAgNzMsIDY5LCA4NSwgODAsIDQ1LCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIAorICAgIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDgzLCA3MywgNzksIDgzLCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDgwLCAKKyAgICA3MywgNjksIDg1LCA4MCwgNDUsIDgwLCA3MiwgNzMsIDY5LCA4NSwgODAsIDcyLCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgCisgICAgNDUsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDcyLCA3MywgNjksIDg1LCA3MiwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIAorICAgIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgODAsIDcyLCA3MywgNjksIDg1LCAKKyAgICA4MCwgNzIsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgODAsIDY1LCA3OCwgODMsIDczLCA3OSwgODMsIDEyOCwgODIsIAorICAgIDczLCA2OSwgODUsIDc2LCA0NSwgNzgsIDczLCA2OSwgODUsIDc4LCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDc3LCAKKyAgICA3MywgNjksIDg1LCA3NywgNDUsIDgzLCA3MywgNzksIDgzLCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDc3LCA3MywgCisgICAgNjksIDg1LCA3NywgNDUsIDc1LCA3MywgODksIDY5LCA3OSwgNzUsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgNzcsIAorICAgIDczLCA2OSwgODUsIDc3LCA0NSwgNzIsIDczLCA2OSwgODUsIDcyLCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDc3LCAKKyAgICA3MywgNjksIDg1LCA3NywgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCA0NSwgCisgICAgODMsIDczLCA3OSwgODMsIDEyOCwgODIsIDczLCA2OSwgODUsIDc2LCA0NSwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIAorICAgIDcyLCA3MywgNjksIDg1LCA3MiwgMTI4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDQ1LCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCAKKyAgICAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDc1LCA2NSwgODAsIDg5LCA2OSwgNzksIDg1LCA3OCwgODAsIDczLCA2OSwgCisgICAgODUsIDgwLCAxMjgsIDgyLCA3MywgNjksIDg1LCA3NiwgNDUsIDcyLCA3MywgNjksIDg1LCA3MiwgMTI4LCA4MiwgNzMsIDY5LCAKKyAgICA4NSwgNzYsIDQ1LCA2NywgNzMsIDY5LCA4NSwgNjcsIDEyOCwgODIsIDczLCA2OSwgODUsIDIwNCwgODIsIDczLCA2OSwgNzYsIAorICAgIDEyOCwgODIsIDczLCA2OSwgNjksIDEyOCwgODIsIDczLCA2NywgNjksIDc3LCAxMjgsIDgyLCA3MywgNjcsIDY5LCAxMjgsIAorICAgIDgyLCA3MywgNjcsIDE5NywgODIsIDczLCA2NiwgNjYsIDc5LCA3OCwgMTI4LCA4MiwgNzMsIDY1LCAyMDQsIDgyLCA3MiwgCisgICAgNzksIDg0LCA3MywgMTk1LCA4MiwgNzIsIDc5LCAxMjgsIDgyLCA3MiwgMjA3LCA4MiwgNzIsIDY1LCAxMjgsIDgyLCA3MSwgCisgICAgODksIDczLCA3OCwgNzEsIDgzLCAxMjgsIDgyLCA3MSwgODksIDY1LCA3OCwgMTI4LCA4MiwgNzEsIDg5LCAxOTMsIDgyLCAKKyAgICA2OSwgODYsIDc5LCA3NiwgODYsIDczLCA3OCwgMTk5LCA4MiwgNjksIDg2LCA3OSwgNzYsIDg1LCA4NCwgNzMsIDc5LCA3OCwgCisgICAgMTI4LCA4MiwgNjksIDg2LCA3NywgNjUsIDEyOCwgODIsIDY5LCA4NiwgNzMsIDY1LCAxMjgsIDgyLCA2OSwgODYsIDY5LCAKKyAgICA4MiwgODMsIDY5LCA2OCwgMTI4LCA4MiwgNjksIDg2LCA2OSwgODIsIDgzLCA2OSwgMTk2LCA4MiwgNjksIDg2LCA2OSwgODIsIAorICAgIDgzLCAxOTcsIDgyLCA2OSwgODUsIDg4LCAxMjgsIDgyLCA2OSwgODUsIDEyOCwgODIsIDY5LCA4NCwgODUsIDgyLCA3OCwgCisgICAgMTI4LCA4MiwgNjksIDg0LCA4NSwgODIsIDIwNiwgODIsIDY5LCA4NCwgODIsIDc5LCA3MCwgNzYsIDY5LCAyMTYsIDgyLCAKKyAgICA2OSwgODQsIDgyLCA2OSwgNjUsIDg0LCAxMjgsIDgyLCA2OSwgODQsIDc5LCA4MiwgODQsIDEyOCwgODIsIDY5LCA4MywgODUsIAorICAgIDgwLCA3MywgNzgsIDg1LCA4MywgMTI4LCA4MiwgNjksIDgzLCA4NCwgODIsIDc5LCA3OSwgNzcsIDEyOCwgODIsIDY5LCA4MywgCisgICAgODQsIDgyLCA3MywgNjcsIDg0LCA2OSwgMTk2LCA4MiwgNjksIDgzLCA4NCwgMTI4LCA4MiwgNjksIDgzLCA4MCwgNzksIDc4LCAKKyAgICA4MywgNjksIDEyOCwgODIsIDY5LCA4MywgNzksIDg1LCA4MiwgNjcsIDY5LCAxMjgsIDgyLCA2OSwgODMsIDc5LCA3NiwgODUsIAorICAgIDg0LCA3MywgNzksIDc4LCAxMjgsIDgyLCA2OSwgODMsIDczLCA4MywgODQsIDY1LCA3OCwgNjcsIDY5LCAxMjgsIDgyLCA2OSwgCisgICAgODMsIDczLCA2OCwgNjksIDc4LCA2NywgNjksIDEyOCwgODIsIDY5LCA4MywgMjAwLCA4MiwgNjksIDgyLCA2OSwgNzgsIDcxLCAKKyAgICA3MSwgNjUsIDc4LCAxMjgsIDgyLCA2OSwgODIsIDY5LCA3NSwgNjUsIDc4LCAxMjgsIDgyLCA2OSwgODAsIDgyLCA2OSwgODMsIAorICAgIDY5LCA3OCwgODQsIDEyOCwgODIsIDY5LCA4MCwgNzYsIDY1LCA2NywgNjksIDc3LCA2OSwgNzgsIDIxMiwgODIsIDY5LCA4MCwgCisgICAgNzIsIDEyOCwgODIsIDY5LCA4MCwgNjksIDg0LCA3MywgODQsIDczLCA3OSwgMjA2LCA4MiwgNjksIDgwLCA2OSwgNjUsIDg0LCAKKyAgICA2OSwgMTk2LCA4MiwgNjksIDgwLCA2OSwgNjUsIDg0LCAxMjgsIDgyLCA2OSwgODAsIDY5LCA2NSwgMjEyLCA4MiwgNjksIAorICAgIDgwLCA2NSwgODksIDY1LCAxMjgsIDgyLCA2OSwgODAsIDY1LCAxMjgsIDgyLCA2OSwgODAsIDE5MywgODIsIDY5LCA3OCwgCisgICAgODQsIDc5LCA3MSwgNjksIDc4LCAxMjgsIDgyLCA2OSwgNzgsIDEyOCwgODIsIDY5LCAyMDYsIDgyLCA2OSwgNzcsIDg1LCAKKyAgICAxMjgsIDgyLCA2OSwgNzcsIDY5LCA2OCwgODksIDEyOCwgODIsIDY5LCA3NiwgNzMsIDcxLCA3MywgNzksIDc4LCAxMjgsIAorICAgIDgyLCA2OSwgNzYsIDczLCA2OSwgODYsIDY5LCAxOTYsIDgyLCA2OSwgNzYsIDY5LCA2NSwgODMsIDY5LCAxMjgsIDgyLCA2OSwgCisgICAgNzYsIDY1LCA4NCwgNzMsIDc5LCA3OCwgNjUsIDIwNCwgODIsIDY5LCA3NiwgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDgyLCAKKyAgICA2OSwgNzYsIDY1LCA2NSwgMTI4LCA4MiwgNjksIDc0LCA2NSwgNzgsIDE5OSwgODIsIDY5LCA3MywgMTk2LCA4MiwgNjksIAorICAgIDcxLCA4NSwgNzYsIDg1LCA4MywgNDUsIDUyLCAxMjgsIDgyLCA2OSwgNzEsIDg1LCA3NiwgODUsIDgzLCA0NSwgNTEsIDEyOCwgCisgICAgODIsIDY5LCA3MSwgODUsIDc2LCA4NSwgODMsIDQ1LCA1MCwgMTI4LCA4MiwgNjksIDcxLCA4NSwgNzYsIDg1LCA4MywgMTI4LCAKKyAgICA4MiwgNjksIDcxLCA4NSwgNzYsIDg1LCAyMTEsIDgyLCA2OSwgNzEsIDczLCA4MywgODQsIDY5LCA4MiwgNjksIDE5NiwgODIsIAorICAgIDY5LCA3MSwgNzMsIDc5LCA3OCwgNjUsIDIwNCwgODIsIDY5LCA3MSwgNzMsIDY1LCA0NSwgNTAsIDEyOCwgODIsIDY5LCA3MSwgCisgICAgNzMsIDY1LCAxMjgsIDgyLCA2OSwgNzAsIDc5LCA4MiwgNzcsIDY5LCAxOTYsIDgyLCA2OSwgNzAsIDY5LCA4MiwgNjksIDc4LCAKICAgICA2NywgMTk3LCA4MiwgNjksIDY4LCA4NSwgODAsIDc2LCA3MywgNjcsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4MiwgNjksIAogICAgIDY3LCA4OSwgNjcsIDc2LCA3MywgNzgsIDE5OSwgODIsIDY5LCA2NywgODksIDY3LCA3NiwgNjksIDE5NiwgODIsIDY5LCA2NywgCiAgICAgODQsIDczLCA3NiwgNzMsIDc4LCA2OSwgNjUsIDIxMCwgODIsIDY5LCA2NywgODQsIDY1LCA3OCwgNzEsIDg1LCA3NiwgNjUsIApAQCAtMTI2NSw1NiArMTM3Nyw1NyBAQAogICAgIDgzLCA4NywgNjUsIDY4LCA3MywgMTI4LCA4MiwgNjUsIDgzLCA3OSwgODUsIDIwNCwgODIsIDY1LCA4MywgNzIsIDY1LCAKICAgICAxMjgsIDgyLCA2NSwgODEsIDEyOCwgODIsIDY1LCA4MCwgNzMsIDgzLCA3NywgNjUsIDEyOCwgODIsIDY1LCA3OCwgNzEsIAogICAgIDE5NywgODIsIDY1LCA3OCwgNjUsIDEyOCwgODIsIDY1LCA3OCwgMTI4LCA4MiwgNjUsIDc3LCAyMTEsIDgyLCA2NSwgNzcsIAotICAgIDY2LCA2NSwgODQsIDEyOCwgODIsIDY1LCA3NSwgNzIsIDY1LCA3OCwgNzEsIDEyOCwgODIsIDY1LCA3MywgODMsIDczLCA3OCwgCi0gICAgMTk5LCA4MiwgNjUsIDczLCA4MywgNjksIDE5NiwgODIsIDY1LCA3MywgNzgsIDY2LCA3OSwgODcsIDEyOCwgODIsIDY1LCAKLSAgICA3MywgNzYsIDg3LCA2NSwgODksIDEyOCwgODIsIDY1LCA3MywgNzYsIDg3LCA2NSwgMjE3LCA4MiwgNjUsIDczLCA3NiwgCi0gICAgMTI4LCA4MiwgNjUsIDczLCA2OCwgMjA3LCA4MiwgNjUsIDczLCA2OCwgNjUsIDEyOCwgODIsIDY1LCA3MywgMTI4LCA4MiwgCi0gICAgNjUsIDcyLCA3NywgNjUsIDg0LCA4NSwgNzYsIDc2LCA2NSwgMjAwLCA4MiwgNjUsIDcwLCA2OSwgMTI4LCA4MiwgNjUsIDY5LCAKLSAgICA3NywgMTI4LCA4MiwgNjUsIDY4LCA3MywgNzksIDY1LCA2NywgODQsIDczLCA4NiwgMTk3LCA4MiwgNjUsIDY4LCA3MywgNzksIAotICAgIDEyOCwgODIsIDY1LCA2OCwgNzMsIDIwNywgODIsIDY1LCA2OCwgMjAxLCA4MiwgNjUsIDY4LCAxMjgsIDgyLCA2NSwgMTk2LCAKLSAgICA4MiwgNjUsIDY3LCA4MSwgODUsIDY5LCAyMTIsIDgyLCA2NSwgNjcsIDczLCA3OCwgNzEsIDEyOCwgODIsIDY1LCA2NiwgNjYsIAotICAgIDczLCA4NCwgMTI4LCA4MiwgNjUsIDY2LCA2NiwgNzMsIDIxMiwgODIsIDY1LCA2NiwgMTI4LCA4MiwgNjUsIDY1LCA3MywgCi0gICAgMTI4LCA4MiwgNjUsIDY1LCAxMjgsIDgyLCA2NSwgNTEsIDEyOCwgODIsIDY1LCA1MCwgMTI4LCA4MiwgNDgsIDUwLCA1NywgCi0gICAgMTI4LCA4MiwgNDgsIDUwLCA1NiwgMTI4LCA4MiwgNDgsIDUwLCA1NSwgMTI4LCA4MiwgNDgsIDUwLCA1NCwgMTI4LCA4MiwgCi0gICAgNDgsIDUwLCA1MywgMTI4LCA4MiwgNDgsIDUwLCA1MiwgMTI4LCA4MiwgNDgsIDUwLCA1MSwgMTI4LCA4MiwgNDgsIDUwLCAKLSAgICA1MCwgMTI4LCA4MiwgNDgsIDUwLCA0OSwgMTI4LCA4MiwgNDgsIDUwLCA0OCwgMTI4LCA4MiwgNDgsIDQ5LCA1NywgMTI4LCAKLSAgICA4MiwgNDgsIDQ5LCA1NiwgMTI4LCA4MiwgNDgsIDQ5LCA1NSwgMTI4LCA4MiwgNDgsIDQ5LCA1NCwgNjUsIDEyOCwgODIsIAotICAgIDQ4LCA0OSwgNTQsIDEyOCwgODIsIDQ4LCA0OSwgNTMsIDEyOCwgODIsIDQ4LCA0OSwgNTIsIDEyOCwgODIsIDQ4LCA0OSwgCi0gICAgNTEsIDEyOCwgODIsIDQ4LCA0OSwgNTAsIDEyOCwgODIsIDQ4LCA0OSwgNDksIDEyOCwgODIsIDQ4LCA0OSwgNDgsIDY1LCAKLSAgICAxMjgsIDgyLCA0OCwgNDksIDQ4LCAxMjgsIDgyLCA0OCwgNDgsIDU3LCAxMjgsIDgyLCA0OCwgNDgsIDU2LCAxMjgsIDgyLCAKLSAgICA0OCwgNDgsIDU1LCAxMjgsIDgyLCA0OCwgNDgsIDU0LCAxMjgsIDgyLCA0OCwgNDgsIDUzLCAxMjgsIDgyLCA0OCwgNDgsIAotICAgIDUyLCAxMjgsIDgyLCA0OCwgNDgsIDUxLCA2NiwgMTI4LCA4MiwgNDgsIDQ4LCA1MSwgNjUsIDEyOCwgODIsIDQ4LCA0OCwgCi0gICAgNTEsIDEyOCwgODIsIDQ4LCA0OCwgNTAsIDY1LCAxMjgsIDgyLCA0OCwgNDgsIDUwLCAxMjgsIDgyLCA0OCwgNDgsIDQ5LCAKLSAgICAxMjgsIDgyLCA0NSwgNjcsIDgyLCA2OSwgMTk3LCA4MSwgODksIDg4LCAxMjgsIDgxLCA4OSwgODUsIDEyOCwgODEsIDg5LCAKLSAgICA4NCwgMTI4LCA4MSwgODksIDgyLCA4OCwgMTI4LCA4MSwgODksIDgyLCAxMjgsIDgxLCA4OSwgODAsIDEyOCwgODEsIDg5LCAKLSAgICA3OSwgMTI4LCA4MSwgODksIDczLCAxMjgsIDgxLCA4OSwgNjksIDY5LCAxMjgsIDgxLCA4OSwgNjksIDEyOCwgODEsIDg5LCAKLSAgICA2NSwgNjUsIDEyOCwgODEsIDg5LCA2NSwgMTI4LCA4MSwgODksIDEyOCwgODEsIDg3LCA3MywgMTI4LCA4MSwgODcsIDY5LCAKLSAgICA2OSwgMTI4LCA4MSwgODcsIDY5LCAxMjgsIDgxLCA4NywgNjUsIDY1LCAxMjgsIDgxLCA4NywgNjUsIDEyOCwgODEsIDg1LCAKLSAgICA4OCwgMTI4LCA4MSwgODUsIDg2LCAxMjgsIDgxLCA4NSwgODUsIDg2LCAxMjgsIDgxLCA4NSwgODUsIDEyOCwgODEsIDg1LCAKLSAgICA4NCwgMTI4LCA4MSwgODUsIDgzLCA3MiwgODMsIDcyLCA2NSwgODksIDY1LCAxMjgsIDgxLCA4NSwgODIsIDg4LCAxMjgsIAotICAgIDgxLCA4NSwgODIsIDEyOCwgODEsIDg1LCA4MCwgMTI4LCA4MSwgODUsIDc5LCA4OCwgMTI4LCA4MSwgODUsIDc5LCA4NCwgCi0gICAgMTk3LCA4MSwgODUsIDc5LCA4NCwgNjUsIDg0LCA3MywgNzksIDIwNiwgODEsIDg1LCA3OSwgODQsIDEyOCwgODEsIDg1LCAKLSAgICA3OSwgODAsIDEyOCwgODEsIDg1LCA3OSwgMTI4LCA4MSwgODUsIDc1LCAxMjgsIDgxLCA4NSwgNzMsIDc4LCA4NCwgNjksIAotICAgIDgzLCA4MywgNjksIDc4LCA2NywgNjksIDEyOCwgODEsIDg1LCA3MywgNzgsIDY4LCA3MywgNjcsIDY5LCA4MywgNzMsIDc3LCAKLSAgICAxOTMsIDgxLCA4NSwgNzMsIDc4LCA2NywgODUsIDc4LCA4OCwgMTI4LCA4MSwgODUsIDczLCA3OCwgNjUsIDgyLCA3MywgODUsIAotICAgIDIxMSwgODEsIDg1LCA3MywgNzYsIDc2LCAxMjgsIDgxLCA4NSwgNzMsIDY3LCAyMDMsIDgxLCA4NSwgNzMsIDEyOCwgODEsIAotICAgIDg1LCA3MCwgMTI4LCA4MSwgODUsIDY5LCA4MywgODQsIDczLCA3OSwgNzgsIDY5LCAxOTYsIDgxLCA4NSwgNjksIDgzLCA4NCwgCi0gICAgNzMsIDc5LCA3OCwgMTI4LCA4MSwgODUsIDY5LCA4MywgODQsIDczLCA3OSwgMjA2LCA4MSwgODUsIDY5LCA2OSwgNzgsIAotICAgIDEyOCwgODEsIDg1LCA2OSwgNjksIDIwNiwgODEsIDg1LCA2OSwgMTI4LCA4MSwgODUsIDY2LCA4NSwgODQsIDgzLCAxMjgsIAotICAgIDgxLCA4NSwgNjUsIDg0LCA2OSwgODIsIDc4LCA3MywgNzksIDIwNiwgODEsIDg1LCA2NSwgODIsIDg0LCA2OSwgODIsIDgzLCAKLSAgICAxMjgsIDgxLCA4NSwgNjUsIDgyLCA4NCwgNjksIDgyLCAyMTEsIDgxLCA4NSwgNjUsIDgyLCA4NCwgNjksIDgyLCAxMjgsIAotICAgIDgxLCA4NSwgNjUsIDgyLCA4NCwgNjksIDIxMCwgODEsIDg1LCA2NSwgNzgsIDg0LCA3MywgODQsIDIxNywgODEsIDg1LCA2NSwgCi0gICAgNjgsIDgyLCA4NSwgODAsIDc2LCAxOTcsIDgxLCA4NSwgNjUsIDY4LCA4MiwgNjUsIDc4LCA4NCwgMTI4LCA4MSwgODUsIDY1LCAKLSAgICA2OCwgODIsIDY1LCA3OCwgMjEyLCA4MSwgODUsIDY1LCA2OCwgMTI4LCA4MSwgODUsIDY1LCAxOTYsIDgxLCA4NSwgNjUsIAotICAgIDEyOCwgODEsIDg1LCAxMjgsIDgxLCAyMDgsIDgxLCA3OSwgODgsIDEyOCwgODEsIDc5LCA4NCwgMTI4LCA4MSwgNzksIDgwLCAKLSAgICA3MiwgMTI4LCA4MSwgNzksIDgwLCA2NSwgMTI4LCA4MSwgNzksIDgwLCAxMjgsIDgxLCA3OSwgNzksIDEyOCwgODEsIDc5LCAKLSAgICAyMDcsIDgxLCA3OSwgNzAsIDEyOCwgODEsIDc5LCAxOTgsIDgxLCA3OSwgNjUsIDEyOCwgODEsIDc5LCAxMjgsIDgxLCA3OCwgCi0gICAgMTI4LCA4MSwgNzMsIDg4LCAxMjgsIDgxLCA3MywgODQsIDgzLCA2NSwgMTI4LCA4MSwgNzMsIDg0LCAxMjgsIDgxLCA3MywgCi0gICAgODAsIDEyOCwgODEsIDczLCA3MywgMTI4LCA4MSwgNzMsIDY5LCA4OCwgMTI4LCA4MSwgNzMsIDY5LCA4NCwgMTI4LCA4MSwgCi0gICAgNzMsIDY5LCA4MCwgMTI4LCA4MSwgNzMsIDY5LCAxMjgsIDgxLCA3MywgMTI4LCA4MSwgNzIsIDg3LCA3MywgMTI4LCA4MSwgCi0gICAgNzIsIDg3LCA2OSwgNjksIDEyOCwgODEsIDcyLCA4NywgNjksIDEyOCwgODEsIDcyLCA4NywgNjUsIDY1LCAxMjgsIDgxLCAKLSAgICA3MiwgODcsIDY1LCAxMjgsIDgxLCA3MiwgODUsIDEyOCwgODEsIDcyLCA3OSwgMTI4LCA4MSwgNzIsIDczLCAxMjgsIDgxLCAKLSAgICA3MiwgNjksIDY5LCAxMjgsIDgxLCA3MiwgNjksIDEyOCwgODEsIDcyLCA2NSwgNjUsIDEyOCwgODEsIDcyLCA2NSwgMTI4LCAKKyAgICA2NiwgNjUsIDg0LCAxMjgsIDgyLCA2NSwgNzUsIDcyLCA2NSwgNzgsIDcxLCAxMjgsIDgyLCA2NSwgNzUsIDY1LCA2NSwgODIsIAorICAgIDY1LCA2NSwgNzgsIDgzLCA2NSwgODksIDY1LCAxMjgsIDgyLCA2NSwgNzMsIDgzLCA3MywgNzgsIDE5OSwgODIsIDY1LCA3MywgCisgICAgODMsIDY5LCAxOTYsIDgyLCA2NSwgNzMsIDc4LCA2NiwgNzksIDg3LCAxMjgsIDgyLCA2NSwgNzMsIDc2LCA4NywgNjUsIDg5LCAKKyAgICAxMjgsIDgyLCA2NSwgNzMsIDc2LCA4NywgNjUsIDIxNywgODIsIDY1LCA3MywgNzYsIDEyOCwgODIsIDY1LCA3MywgNjgsIAorICAgIDIwNywgODIsIDY1LCA3MywgNjgsIDY1LCAxMjgsIDgyLCA2NSwgNzIsIDc3LCA2NSwgODQsIDg1LCA3NiwgNzYsIDY1LCAKKyAgICAyMDAsIDgyLCA2NSwgNzIsIDEyOCwgODIsIDY1LCA3MCwgNjksIDEyOCwgODIsIDY1LCA2OSwgNzcsIDEyOCwgODIsIDY1LCAKKyAgICA2OCwgNzMsIDc5LCA2NSwgNjcsIDg0LCA3MywgODYsIDE5NywgODIsIDY1LCA2OCwgNzMsIDc5LCAxMjgsIDgyLCA2NSwgNjgsIAorICAgIDczLCAyMDcsIDgyLCA2NSwgNjgsIDIwMSwgODIsIDY1LCA2OCwgMTI4LCA4MiwgNjUsIDE5NiwgODIsIDY1LCA2NywgODEsIAorICAgIDg1LCA2OSwgMjEyLCA4MiwgNjUsIDY3LCA3MywgNzgsIDcxLCAxMjgsIDgyLCA2NSwgNjYsIDY2LCA3MywgODQsIDEyOCwgCisgICAgODIsIDY1LCA2NiwgNjYsIDczLCAyMTIsIDgyLCA2NSwgNjYsIDEyOCwgODIsIDY1LCA2NSwgNzMsIDEyOCwgODIsIDY1LCAKKyAgICA1MSwgMTI4LCA4MiwgNjUsIDUwLCAxMjgsIDgyLCA2NSwgNDUsIDUwLCAxMjgsIDgyLCA0OCwgNTAsIDU3LCAxMjgsIDgyLCAKKyAgICA0OCwgNTAsIDU2LCAxMjgsIDgyLCA0OCwgNTAsIDU1LCAxMjgsIDgyLCA0OCwgNTAsIDU0LCAxMjgsIDgyLCA0OCwgNTAsIAorICAgIDUzLCAxMjgsIDgyLCA0OCwgNTAsIDUyLCAxMjgsIDgyLCA0OCwgNTAsIDUxLCAxMjgsIDgyLCA0OCwgNTAsIDUwLCAxMjgsIAorICAgIDgyLCA0OCwgNTAsIDQ5LCAxMjgsIDgyLCA0OCwgNTAsIDQ4LCAxMjgsIDgyLCA0OCwgNDksIDU3LCAxMjgsIDgyLCA0OCwgCisgICAgNDksIDU2LCAxMjgsIDgyLCA0OCwgNDksIDU1LCAxMjgsIDgyLCA0OCwgNDksIDU0LCA2NSwgMTI4LCA4MiwgNDgsIDQ5LCAKKyAgICA1NCwgMTI4LCA4MiwgNDgsIDQ5LCA1MywgMTI4LCA4MiwgNDgsIDQ5LCA1MiwgMTI4LCA4MiwgNDgsIDQ5LCA1MSwgMTI4LCAKKyAgICA4MiwgNDgsIDQ5LCA1MCwgMTI4LCA4MiwgNDgsIDQ5LCA0OSwgMTI4LCA4MiwgNDgsIDQ5LCA0OCwgNjUsIDEyOCwgODIsIAorICAgIDQ4LCA0OSwgNDgsIDEyOCwgODIsIDQ4LCA0OCwgNTcsIDEyOCwgODIsIDQ4LCA0OCwgNTYsIDEyOCwgODIsIDQ4LCA0OCwgCisgICAgNTUsIDEyOCwgODIsIDQ4LCA0OCwgNTQsIDEyOCwgODIsIDQ4LCA0OCwgNTMsIDEyOCwgODIsIDQ4LCA0OCwgNTIsIDEyOCwgCisgICAgODIsIDQ4LCA0OCwgNTEsIDY2LCAxMjgsIDgyLCA0OCwgNDgsIDUxLCA2NSwgMTI4LCA4MiwgNDgsIDQ4LCA1MSwgMTI4LCAKKyAgICA4MiwgNDgsIDQ4LCA1MCwgNjUsIDEyOCwgODIsIDQ4LCA0OCwgNTAsIDEyOCwgODIsIDQ4LCA0OCwgNDksIDEyOCwgODIsIAorICAgIDQ1LCA2NywgODIsIDY5LCAxOTcsIDgxLCA4OSwgODgsIDEyOCwgODEsIDg5LCA4NSwgMTI4LCA4MSwgODksIDg0LCAxMjgsIAorICAgIDgxLCA4OSwgODIsIDg4LCAxMjgsIDgxLCA4OSwgODIsIDEyOCwgODEsIDg5LCA4MCwgMTI4LCA4MSwgODksIDc5LCAxMjgsIAorICAgIDgxLCA4OSwgNzMsIDEyOCwgODEsIDg5LCA2OSwgNjksIDEyOCwgODEsIDg5LCA2OSwgMTI4LCA4MSwgODksIDY1LCA2NSwgCisgICAgMTI4LCA4MSwgODksIDY1LCAxMjgsIDgxLCA4OSwgMTI4LCA4MSwgODcsIDczLCAxMjgsIDgxLCA4NywgNjksIDY5LCAxMjgsIAorICAgIDgxLCA4NywgNjksIDEyOCwgODEsIDg3LCA2NSwgNjUsIDEyOCwgODEsIDg3LCA2NSwgMTI4LCA4MSwgODUsIDg4LCAxMjgsIAorICAgIDgxLCA4NSwgODYsIDEyOCwgODEsIDg1LCA4NSwgODYsIDEyOCwgODEsIDg1LCA4NSwgMTI4LCA4MSwgODUsIDg0LCAxMjgsIAorICAgIDgxLCA4NSwgODMsIDcyLCA4MywgNzIsIDY1LCA4OSwgNjUsIDEyOCwgODEsIDg1LCA4MiwgODgsIDEyOCwgODEsIDg1LCA4MiwgCisgICAgMTI4LCA4MSwgODUsIDgwLCAxMjgsIDgxLCA4NSwgNzksIDg4LCAxMjgsIDgxLCA4NSwgNzksIDg0LCAxOTcsIDgxLCA4NSwgCisgICAgNzksIDg0LCA2NSwgODQsIDczLCA3OSwgMjA2LCA4MSwgODUsIDc5LCA4NCwgMTI4LCA4MSwgODUsIDc5LCA4MCwgMTI4LCAKKyAgICA4MSwgODUsIDc5LCAxMjgsIDgxLCA4NSwgNzUsIDEyOCwgODEsIDg1LCA3MywgNzgsIDg0LCA2OSwgODMsIDgzLCA2OSwgNzgsIAorICAgIDY3LCA2OSwgMTI4LCA4MSwgODUsIDczLCA3OCwgNjgsIDczLCA2NywgNjksIDgzLCA3MywgNzcsIDE5MywgODEsIDg1LCA3MywgCisgICAgNzgsIDY3LCA4NSwgNzgsIDg4LCAxMjgsIDgxLCA4NSwgNzMsIDc4LCA2NSwgODIsIDczLCA4NSwgMjExLCA4MSwgODUsIDczLCAKKyAgICA3NiwgNzYsIDEyOCwgODEsIDg1LCA3MywgNjcsIDIwMywgODEsIDg1LCA3MywgMTI4LCA4MSwgODUsIDcwLCAxMjgsIDgxLCAKKyAgICA4NSwgNjksIDgzLCA4NCwgNzMsIDc5LCA3OCwgNjksIDE5NiwgODEsIDg1LCA2OSwgODMsIDg0LCA3MywgNzksIDc4LCAxMjgsIAorICAgIDgxLCA4NSwgNjksIDgzLCA4NCwgNzMsIDc5LCAyMDYsIDgxLCA4NSwgNjksIDY5LCA3OCwgMTI4LCA4MSwgODUsIDY5LCA2OSwgCisgICAgMjA2LCA4MSwgODUsIDY5LCAxMjgsIDgxLCA4NSwgNjYsIDg1LCA4NCwgODMsIDEyOCwgODEsIDg1LCA2NSwgODQsIDY5LCAKKyAgICA4MiwgNzgsIDczLCA3OSwgMjA2LCA4MSwgODUsIDY1LCA4MiwgODQsIDY5LCA4MiwgODMsIDEyOCwgODEsIDg1LCA2NSwgODIsIAorICAgIDg0LCA2OSwgODIsIDIxMSwgODEsIDg1LCA2NSwgODIsIDg0LCA2OSwgODIsIDEyOCwgODEsIDg1LCA2NSwgODIsIDg0LCA2OSwgCisgICAgMjEwLCA4MSwgODUsIDY1LCA3OCwgODQsIDczLCA4NCwgMjE3LCA4MSwgODUsIDY1LCA2OCwgODIsIDg1LCA4MCwgNzYsIAorICAgIDE5NywgODEsIDg1LCA2NSwgNjgsIDgyLCA2NSwgNzgsIDg0LCAxMjgsIDgxLCA4NSwgNjUsIDY4LCA4MiwgNjUsIDc4LCAKKyAgICAyMTIsIDgxLCA4NSwgNjUsIDY4LCAxMjgsIDgxLCA4NSwgNjUsIDE5NiwgODEsIDg1LCA2NSwgMTI4LCA4MSwgODUsIDEyOCwgCisgICAgODEsIDIwOCwgODEsIDc5LCA4OCwgMTI4LCA4MSwgNzksIDg0LCAxMjgsIDgxLCA3OSwgODAsIDcyLCAxMjgsIDgxLCA3OSwgCisgICAgODAsIDY1LCAxMjgsIDgxLCA3OSwgODAsIDEyOCwgODEsIDc5LCA3OSwgMTI4LCA4MSwgNzksIDIwNywgODEsIDc5LCA3MCwgCisgICAgMTI4LCA4MSwgNzksIDE5OCwgODEsIDc5LCA2NSwgMTI4LCA4MSwgNzksIDEyOCwgODEsIDc4LCAxMjgsIDgxLCA3MywgODgsIAorICAgIDEyOCwgODEsIDczLCA4NCwgODMsIDY1LCAxMjgsIDgxLCA3MywgODQsIDEyOCwgODEsIDczLCA4MCwgMTI4LCA4MSwgNzMsIAorICAgIDczLCAxMjgsIDgxLCA3MywgNjksIDg4LCAxMjgsIDgxLCA3MywgNjksIDg0LCAxMjgsIDgxLCA3MywgNjksIDgwLCAxMjgsIAorICAgIDgxLCA3MywgNjksIDEyOCwgODEsIDczLCAxMjgsIDgxLCA3MiwgODcsIDczLCAxMjgsIDgxLCA3MiwgODcsIDY5LCA2OSwgCisgICAgMTI4LCA4MSwgNzIsIDg3LCA2OSwgMTI4LCA4MSwgNzIsIDg3LCA2NSwgNjUsIDEyOCwgODEsIDcyLCA4NywgNjUsIDEyOCwgCisgICAgODEsIDcyLCA4NSwgMTI4LCA4MSwgNzIsIDc5LCAxMjgsIDgxLCA3MiwgNzMsIDEyOCwgODEsIDcyLCA2OSwgNjksIDEyOCwgCisgICAgODEsIDcyLCA2OSwgMTI4LCA4MSwgNzIsIDY1LCA2NSwgMTI4LCA4MSwgNzIsIDY1LCAxMjgsIDgxLCA3MSwgNjUsIDEyOCwgCiAgICAgODEsIDY5LCA4NCwgNjUsIDc4LCA2NSwgMTI4LCA4MSwgNjksIDY5LCAxMjgsIDgxLCA2OSwgMTI4LCA4MSwgNjUsIDg1LCAKICAgICAxMjgsIDgxLCA2NSwgODQsIDY1LCA3OCwgMTI4LCA4MSwgNjUsIDgyLCA3OCwgNjksIDIxNywgODEsIDY1LCA4MiwgMTI4LCAKICAgICA4MSwgNjUsIDgxLCAxMjgsIDgxLCA2NSwgODAsIDcyLCAxMjgsIDgxLCA2NSwgNzcsIDY1LCA4NCwgODMsIDEyOCwgODEsIApAQCAtMTMyOCwyOTcgKzE0NDEsMzA3IEBACiAgICAgODcsIDc5LCA3OSwgMTI4LCA4MCwgODcsIDc5LCAxMjgsIDgwLCA4NywgMjA3LCA4MCwgODcsIDczLCA3MywgMTI4LCA4MCwgCiAgICAgODcsIDczLCAxMjgsIDgwLCA4NywgNjksIDY5LCAxMjgsIDgwLCA4NywgNjksIDEyOCwgODAsIDg3LCA2NSwgNjUsIDEyOCwgCiAgICAgODAsIDg3LCAxMjgsIDgwLCA4NiwgMTI4LCA4MCwgODUsIDg4LCAxMjgsIDgwLCA4NSwgODUsIDg0LCAxMjgsIDgwLCA4NSwgCi0gICAgODQsIDgyLCA2OSwgNzAsIDY1LCA2NywgODQsIDczLCA3OSwgNzgsIDEyOCwgODAsIDg1LCA4NCwgMTI4LCA4MCwgODUsIAotICAgIDIxMiwgODAsIDg1LCA4MywgNzIsIDgwLCA3MywgNzgsIDEyOCwgODAsIDg1LCA4MywgNzIsIDgwLCA3MywgNzUsIDY1LCAKLSAgICAxMjgsIDgwLCA4NSwgODMsIDcyLCA3MywgNzgsIDE5OSwgODAsIDg1LCA4MiwgODgsIDEyOCwgODAsIDg1LCA4MiwgODMsIAotICAgIDY5LCAxMjgsIDgwLCA4NSwgODIsIDgwLCA3NiwgMTk3LCA4MCwgODUsIDgyLCA3MywgODQsIDg5LCAxMjgsIDgwLCA4NSwgCi0gICAgODIsIDczLCA3MCwgODksIDEyOCwgODAsIDg1LCA4MiwgMTI4LCA4MCwgODUsIDgxLCAxMjgsIDgwLCA4NSwgODAsIDEyOCwgCi0gICAgODAsIDg1LCA3OSwgODgsIDEyOCwgODAsIDg1LCA3OSwgODAsIDEyOCwgODAsIDg1LCA3OSwgMTI4LCA4MCwgODUsIDc4LCAKLSAgICA3MSwgNjUsIDY1LCA3NywgMTI4LCA4MCwgODUsIDc4LCA3MSwgMTI4LCA4MCwgODUsIDc4LCA2NywgODQsIDg1LCA2NSwgODQsIAotICAgIDczLCA3OSwgNzgsIDEyOCwgODAsIDg1LCA3OCwgNjcsIDg0LCA4NSwgNjUsIDg0LCA3MywgNzksIDIwNiwgODAsIDg1LCA3NywgCi0gICAgODAsIDEyOCwgODAsIDg1LCA3NywgMTI4LCA4MCwgODUsIDY5LCAxMjgsIDgwLCA4NSwgNjYsIDc2LCA3MywgMTk1LCA4MCwgCi0gICAgODUsIDY1LCA4MSwgMTI4LCA4MCwgODUsIDY1LCA2OSwgMTI4LCA4MCwgODUsIDUwLCAxMjgsIDgwLCA4NSwgMTI4LCA4MCwgCi0gICAgODQsIDcyLCA2NSwgNzIsIDE5MywgODAsIDg0LCA2OSwgMTI4LCA4MCwgODMsIDczLCA3NiwgMjAxLCA4MCwgODMsIDczLCAKLSAgICA3MCwgNzMsIDgzLCA4NCwgNzksIDgzLCA4OSwgNzgsIDY1LCA3MSwgNzcsIDY1LCAxMjgsIDgwLCA4MywgNzMsIDcwLCA3MywgCi0gICAgODMsIDg0LCA3OSwgODAsIDY1LCA4MiwgNjUsIDc1LCA2NSwgNzYsIDY5LCA4MywgNzcsIDY1LCAxMjgsIDgwLCA4MywgNzMsIAotICAgIDcwLCA3MywgODMsIDg0LCA3OSwgMjA2LCA4MCwgODMsIDczLCA3MCwgNzMsIDgzLCA4NCwgNzksIDc2LCA4OSwgNzEsIDczLCAKLSAgICA4MywgNzcsIDY1LCAxMjgsIDgwLCA4MywgNzMsIDEyOCwgODAsIDgzLCAxMjgsIDgwLCA4MiwgNzksIDg2LCA2OSwgMTI4LCAKLSAgICA4MCwgODIsIDc5LCA4NCwgNzksIDg2LCA2NSwgODIsIDg5LCAyMTEsIDgwLCA4MiwgNzksIDg0LCA3OSwgMjExLCA4MCwgODIsIAotICAgIDc5LCA4MywgNzEsIDY5LCA3MSwgODIsIDY1LCA3NywgNzcsIDY5LCA3OCwgNzMsIDEyOCwgODAsIDgyLCA3OSwgODAsIDc5LCAKLSAgICA4MiwgODQsIDczLCA3OSwgNzgsIDY1LCAyMDQsIDgwLCA4MiwgNzksIDgwLCA3OSwgODIsIDg0LCA3MywgNzksIDc4LCAxMjgsIAotICAgIDgwLCA4MiwgNzksIDgwLCA2OSwgODIsIDg0LCAyMTcsIDgwLCA4MiwgNzksIDgwLCA2OSwgNzYsIDc2LCA2OSwgMjEwLCA4MCwgCi0gICAgODIsIDc5LCA3OSwgNzAsIDEyOCwgODAsIDgyLCA3OSwgNzYsIDc5LCA3OCwgNzEsIDY5LCAxOTYsIDgwLCA4MiwgNzksIDc2LCAKLSAgICA2NSwgODQsIDczLCA3OSwgNzgsIDE5NywgODAsIDgyLCA3OSwgNzQsIDY5LCA2NywgODQsIDczLCA4NiwgNjksIDEyOCwgODAsIAotICAgIDgyLCA3OSwgNzQsIDY5LCA2NywgODQsIDczLCA3OSwgNzgsIDEyOCwgODAsIDgyLCA3OSwgNzEsIDgyLCA2OSwgODMsIDgzLCAKLSAgICAxMjgsIDgwLCA4MiwgNzksIDcwLCA3OSwgODUsIDc4LCA2OCwgMTI4LCA4MCwgODIsIDc5LCA2OCwgODUsIDY3LCA4NCwgCi0gICAgMTI4LCA4MCwgODIsIDc5LCA2OCwgODUsIDY3LCAyMTIsIDgwLCA4MiwgNzMsIDg2LCA2NSwgODQsIDY5LCAxMjgsIDgwLCAKLSAgICA4MiwgNzMsIDgzLCA3MiwgODQsIDcyLCA2NSwgNzcsIDY1LCA4NCwgODIsIDE5MywgODAsIDgyLCA3MywgNzgsIDg0LCA4MywgCi0gICAgMTI4LCA4MCwgODIsIDczLCA3OCwgODQsIDEyOCwgODAsIDgyLCA3MywgNzgsIDIxMiwgODAsIDgyLCA3MywgNzgsIDY3LCAKLSAgICA2OSwgODMsIDgzLCAxMjgsIDgwLCA4MiwgNzMsIDc3LCA2OSwgMTI4LCA4MCwgODIsIDczLCA3NywgMTk3LCA4MCwgODIsIAotICAgIDY5LCA4NiwgNzMsIDc5LCA4NSwgMjExLCA4MCwgODIsIDY5LCA4MywgNjksIDc4LCA4NCwgNjUsIDg0LCA3MywgNzksIDIwNiwgCi0gICAgODAsIDgyLCA2OSwgODMsIDY3LCA4MiwgNzMsIDgwLCA4NCwgNzMsIDc5LCAyMDYsIDgwLCA4MiwgNjksIDgwLCA3OSwgNzgsIAotICAgIDY4LCA2OSwgODIsIDY1LCA3OCwgNjcsIDY5LCAxMjgsIDgwLCA4MiwgNjksIDc4LCA3NSwgNzIsIDY1LCAxMjgsIDgwLCA4MiwgCi0gICAgNjksIDcwLCA2NSwgNjcsIDE5NywgODAsIDgyLCA2OSwgNjcsIDczLCA4MCwgNzMsIDg0LCA2NSwgODQsIDY5LCAxMjgsIDgwLCAKLSAgICA4MiwgNjksIDY3LCA2OSwgNjgsIDczLCA3OCwgMTk5LCA4MCwgODIsIDY5LCA2NywgNjksIDY4LCA2OSwgODMsIDEyOCwgODAsIAotICAgIDgyLCA2OSwgNjcsIDY5LCA2OCwgNjksIDIxMSwgODAsIDgyLCA2OSwgNjcsIDY5LCA2OCwgNjksIDE5NiwgODAsIDgyLCA2OSwgCi0gICAgNjcsIDY5LCA2OCwgNjksIDEyOCwgODAsIDgyLCA2OSwgNjcsIDY5LCA2OCwgMTk3LCA4MCwgODIsIDY1LCA3NywgNDUsIDgwLCAKLSAgICA3MywgNzMsIDEyOCwgODAsIDgyLCA2NSwgNzcsIDQ1LCA4MCwgNzMsIDIwMSwgODAsIDgyLCA2NSwgNzcsIDQ1LCA3NywgODUsIAotICAgIDc5LCA4OSwgMTI4LCA4MCwgODIsIDY1LCA3NywgNDUsIDc3LCA4NSwgNzksIDIxNywgODAsIDgyLCA2NSwgNzcsIDQ1LCA2NiwgCi0gICAgODUsIDc5LCA3OCwgMTI4LCA4MCwgODIsIDY1LCA3NywgNDUsIDY2LCA4NSwgNzksIDIwNiwgODAsIDgyLCA2NSwgNzcsIDQ1LCAKLSAgICA2NiwgNjksIDczLCAxMjgsIDgwLCA4MiwgNjUsIDc3LCA0NSwgNjYsIDY5LCAyMDEsIDgwLCA4MiwgNjUsIDc3LCAxMjgsIAotICAgIDgwLCA4MiwgNjUsIDIwNSwgODAsIDgyLCAxMjgsIDgwLCA4MCwgODYsIDEyOCwgODAsIDgwLCA3NywgMTI4LCA4MCwgODAsIAotICAgIDY1LCAxMjgsIDgwLCA3OSwgODksIDEyOCwgODAsIDc5LCA4OCwgMTI4LCA4MCwgNzksIDg3LCA2OSwgODIsIDIxMSwgODAsIAotICAgIDc5LCA4NywgNjksIDgyLCAxMjgsIDgwLCA3OSwgODcsIDY4LCA2OSwgODIsIDY5LCAxOTYsIDgwLCA3OSwgODcsIDY4LCA2OSwgCi0gICAgODIsIDEyOCwgODAsIDc5LCA4NSwgNzgsIDE5NiwgODAsIDc5LCA4NSwgNzYsIDg0LCA4MiwgMjE3LCA4MCwgNzksIDg1LCAKLSAgICA2NywgNzIsIDEyOCwgODAsIDc5LCA4NCwgNjUsIDg0LCA3OSwgMTI4LCA4MCwgNzksIDg0LCA2NSwgNjYsIDc2LCAxOTcsIAotICAgIDgwLCA3OSwgMjEyLCA4MCwgNzksIDgzLCA4NCwgODAsIDc5LCA4MywgNzMsIDg0LCA3MywgNzksIDIwNiwgODAsIDc5LCA4MywgCi0gICAgODQsIDY2LCA3OSwgODgsIDEyOCwgODAsIDc5LCA4MywgODQsIDY1LCAyMDQsIDgwLCA3OSwgODMsIDg0LCAxMjgsIDgwLCAKLSAgICA3OSwgODMsIDIxMiwgODAsIDc5LCA4MywgODMsIDY5LCA4MywgODMsIDczLCA3OSwgNzgsIDEyOCwgODAsIDc5LCA4MiwgODIsIAotICAgIDY5LCA2NywgODQsIDg1LCA4MywgMTI4LCA4MCwgNzksIDgyLCA4MiwgNjksIDY3LCA4NCwgODUsIDIxMSwgODAsIDc5LCA4MCwgCi0gICAgODAsIDY5LCA4MiwgMTI4LCA4MCwgNzksIDgwLCAxMjgsIDgwLCA3OSwgMjA4LCA4MCwgNzksIDc5LCA2OCwgNzYsIDY5LCAKLSAgICAxMjgsIDgwLCA3OSwgNzksIDEyOCwgODAsIDc5LCA3OCwgNjgsIDc5LCAxMjgsIDgwLCA3OSwgMjA2LCA4MCwgNzksIDc2LCAKLSAgICA3MywgODMsIDcyLCAxMjgsIDgwLCA3OSwgNzYsIDczLCA2NywgMTk3LCA4MCwgNzksIDc2LCAyMDEsIDgwLCA3OSwgNzYsIAotICAgIDY5LCAxMjgsIDgwLCA3OSwgNzYsIDE5NywgODAsIDc5LCA3NSwgODIsIDg5LCA4NCwgNzMsIDY5LCAxMjgsIDgwLCA3OSwgCi0gICAgNzUsIDc5LCA3NCwgNzMsIDEyOCwgODAsIDc5LCA3MywgNzgsIDg0LCAyMTEsIDgwLCA3OSwgNzMsIDc4LCA4NCwgNzksIAotICAgIDEyOCwgODAsIDc5LCA3MywgNzgsIDg0LCA2OSwgODIsIDEyOCwgODAsIDc5LCA3MywgNzgsIDg0LCA2OSwgMTk2LCA4MCwgCi0gICAgNzksIDczLCA3OCwgODQsIDEyOCwgODAsIDc5LCA3MywgNzgsIDIxMiwgODAsIDc5LCA2OSwgODQsIDgyLCAyMTcsIDgwLCAKLSAgICA3OSwgNjksIDg0LCA3MywgMTk1LCA4MCwgNzksIDY4LCA2NSwgODQsIDg1LCA4MywgMTI4LCA4MCwgNzksIDY1LCAxMjgsIAotICAgIDgwLCA3OSwgMTI4LCA4MCwgMjA3LCA4MCwgNzgsIDY5LCA4NSwgNzcsIDY1LCA4NCwgNjUsIDEyOCwgODAsIDc2LCA4NSwgCi0gICAgODQsIDc5LCAxMjgsIDgwLCA3NiwgODUsIDgzLCA0NSwgNzcsIDczLCA3OCwgODUsIDIxMSwgODAsIDc2LCA4NSwgODMsIAotICAgIDEyOCwgODAsIDc2LCA4NSwgODIsIDY1LCA3NiwgMTI4LCA4MCwgNzYsIDg1LCA3NywgNjksIDE5NiwgODAsIDc2LCA4NSwgCi0gICAgNzcsIDEyOCwgODAsIDc2LCA4NSwgNzUsIDEyOCwgODAsIDc2LCA4NSwgNzEsIDEyOCwgODAsIDc2LCA3OSwgODcsIDEyOCwgCi0gICAgODAsIDc2LCA3OSwgODAsIDcyLCA4NSwgMTI4LCA4MCwgNzYsIDY5LCA4NCwgNzIsIDgyLCA3OSwgNzgsIDEyOCwgODAsIDc2LCAKLSAgICA2NSwgODksIDczLCA3OCwgMTk5LCA4MCwgNzYsIDY1LCA4MywgODQsIDczLCA2NywgODMsIDEyOCwgODAsIDc2LCA2NSwgNzgsIAotICAgIDY5LCAxMjgsIDgwLCA3NiwgNjUsIDc4LCAxOTcsIDgwLCA3NiwgNjUsIDc4LCA2NywgMjAzLCA4MCwgNzYsIDY1LCA3NSwgCi0gICAgMTI4LCA4MCwgNzYsIDY1LCA3MSwgNzMsIDc5LCAyMTEsIDgwLCA3NiwgNjUsIDY3LCA2OSwgNzIsIDc5LCA3NiwgNjgsIDY5LCAKLSAgICAyMTAsIDgwLCA3NiwgNjUsIDY3LCAxOTcsIDgwLCA3NiwgNjUsIDEyOCwgODAsIDczLCA5MCwgOTAsIDczLCA2NywgNjUsIAotICAgIDg0LCA3OSwgMTI4LCA4MCwgNzMsIDkwLCA5MCwgNjUsIDEyOCwgODAsIDczLCA4OCwgMTI4LCA4MCwgNzMsIDg3LCA4MiwgCi0gICAgMTI4LCA4MCwgNzMsIDg0LCA2NywgNzIsIDcwLCA3OSwgODIsIDc1LCAxMjgsIDgwLCA3MywgODQsIDY3LCA3MiwgNzAsIDc5LCAKLSAgICA4MiwgMjAzLCA4MCwgNzMsIDg0LCAxMjgsIDgwLCA3MywgODMsIDg0LCA3OSwgNzYsIDEyOCwgODAsIDczLCA4MywgNjksIAotICAgIDc2LCA2OSwgNzIsIDEyOCwgODAsIDczLCA4MywgNjcsIDY5LCA4MywgMTI4LCA4MCwgNzMsIDgyLCA3MywgNzEsIDEyOCwgCi0gICAgODAsIDczLCA4MiwgNzMsIDE5OSwgODAsIDczLCA4MiwgNzMsIDY5LCA2OSwgNzgsIDEyOCwgODAsIDczLCA4MCwgNzMsIDc4LCAKLSAgICA3MSwgMTI4LCA4MCwgNzMsIDgwLCA2NSwgNjksIDc3LCA3MSwgNjYsIDczLCA2OSwgNjksIDEyOCwgODAsIDczLCA4MCwgNjUsIAotICAgIDY5LCA3NywgNjYsIDY1LCAxMjgsIDgwLCA3MywgODAsIDEyOCwgODAsIDczLCA3OCwgODcsIDcyLCA2OSwgNjksIDIwNCwgCi0gICAgODAsIDczLCA3OCwgNjksIDY1LCA4MCwgODAsIDc2LCA2OSwgMTI4LCA4MCwgNzMsIDc4LCAxOTcsIDgwLCA3MywgNzgsIDY1LCAKLSAgICA4MiwgNjYsIDc5LCA4MiwgNjUsIDgzLCAxMjgsIDgwLCA3MywgNzYsIDc2LCAxMjgsIDgwLCA3MywgNzYsIDE5NywgODAsIAotICAgIDczLCA3NiwgNjcsIDgyLCA3OSwgMjE1LCA4MCwgNzMsIDc1LCA4NSwgODIsIDg1LCAxMjgsIDgwLCA3MywgNzUsIDc5LCAKLSAgICAxMjgsIDgwLCA3MywgNzEsIDEyOCwgODAsIDczLCAxOTksIDgwLCA3MywgNjksIDg4LCAxMjgsIDgwLCA3MywgNjksIDg1LCAKLSAgICA4MCwgNDUsIDg0LCA3MiwgNzMsIDY5LCA4NSwgODQsIDcyLCAxMjgsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDgzLCA4MywgCi0gICAgNjUsIDc4LCA3MSwgODMsIDczLCA3OSwgODMsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgODMsIDczLCA3OSwgODMsIAotICAgIDQ1LCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCAxMjgsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDgzLCA3MywgNzksIDgzLCAKLSAgICA0NSwgODQsIDcyLCA3MywgNjksIDg1LCA4NCwgNzIsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgODMsIDczLCA3OSwgCi0gICAgODMsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgODMsIDczLCA3OSwgODMsIAotICAgIDQ1LCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCAxMjgsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDgzLCA3MywgNzksIDgzLCAKLSAgICA0NSwgNjcsIDczLCA2OSwgODUsIDY3LCAxMjgsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDgyLCA3MywgNjksIDg1LCA3NiwgCi0gICAgNDUsIDgwLCA3MiwgNzMsIDY5LCA4NSwgODAsIDcyLCAxMjgsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDgyLCA3MywgNjksIAotICAgIDg1LCA3NiwgMTI4LCA4MCwgNzMsIDY5LCA4NSwgODAsIDQ1LCA3OCwgNzMsIDY5LCA4NSwgNzgsIDEyOCwgODAsIDczLCA2OSwgCi0gICAgODUsIDgwLCA0NSwgNzcsIDczLCA2OSwgODUsIDc3LCAxMjgsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDc1LCA3MiwgNzMsIAotICAgIDY5LCA4NSwgNzUsIDcyLCAxMjgsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDY3LCA3MywgNjksIDg1LCA2NywgMTI4LCA4MCwgCi0gICAgNzMsIDY5LCA4NSwgODAsIDQ1LCA2NywgNzIsIDczLCA2OSwgODUsIDY3LCA3MiwgMTI4LCA4MCwgNzMsIDY5LCA4NSwgMjA4LCAKLSAgICA4MCwgNzMsIDY5LCA4NCwgMTI4LCA4MCwgNzMsIDY5LCA4MCwgMTI4LCA4MCwgNzMsIDY5LCA2OSwgODQsIDEyOCwgODAsIAotICAgIDczLCA2OSwgNjksIDgxLCAxMjgsIDgwLCA3MywgNjksIDY3LCA2OSwgMTI4LCA4MCwgNzMsIDY5LCAxMjgsIDgwLCA3MywgCi0gICAgNjcsIDc1LCA2OSwgODQsIDEyOCwgODAsIDczLCA2NywgNzUsIDEyOCwgODAsIDczLCA2NSwgODMsIDg1LCA4NCwgNzksIDgyLCAKLSAgICA4NSwgMTI4LCA4MCwgNzMsIDY1LCA4MywgNzcsIDE5MywgODAsIDczLCA2NSwgNzgsIDc5LCAxMjgsIDgwLCAyMDEsIDgwLCAKLSAgICA3MiwgODcsIDY1LCAxMjgsIDgwLCA3MiwgODUsIDg0LCA3MiwgNjUsIDc5LCAxMjgsIDgwLCA3MiwgODUsIDIxMCwgODAsIAotICAgIDcyLCA4NSwgNzgsIDcxLCAxMjgsIDgwLCA3MiwgODIsIDY1LCA4MywgNjksIDEyOCwgODAsIDcyLCA3OSwgNzgsIDY5LCA4MywgCi0gICAgMTI4LCA4MCwgNzIsIDc5LCA2OSwgNzgsIDczLCA2NywgNzMsIDY1LCAyMDYsIDgwLCA3MiwgNzksIDY1LCAxMjgsIDgwLCAKLSAgICA3MiwgNzksIDEyOCwgODAsIDcyLCAyMDcsIDgwLCA3MiwgNzgsIDY1LCA2OSwgMjAzLCA4MCwgNzIsIDczLCA3OCwgODQsIAotICAgIDcyLCA4NSwgMTI4LCA4MCwgNzIsIDczLCA3NiwgNzksIDgzLCA3OSwgODAsIDcyLCA2OSwgODIsIDIxMSwgODAsIDcyLCA3MywgCi0gICAgNzYsIDczLCA4MCwgODAsIDczLCA3OCwgMTk3LCA4MCwgNzIsIDczLCA2OSwgODUsIDgwLCA3MiwgNDUsIDg0LCA3MiwgNzMsIAotICAgIDY5LCA4NSwgODQsIDcyLCAxMjgsIDgwLCA3MiwgNzMsIDY5LCA4NSwgODAsIDcyLCA0NSwgODMsIDczLCA3OSwgODMsIDEyOCwgCi0gICAgODAsIDcyLCA3MywgNjksIDg1LCA4MCwgNzIsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgODAsIDcyLCA3MywgNjksIAotICAgIDg1LCA4MCwgNzIsIDQ1LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDEyOCwgODAsIDcyLCA3MywgNjksIDg1LCA4MCwgMjAwLCA4MCwgCi0gICAgNzIsIDczLCAxMjgsIDgwLCA3MiwgMjAxLCA4MCwgNzIsIDY5LCA2OSwgMTI4LCA4MCwgNzIsIDY5LCAxMjgsIDgwLCA3MiwgCi0gICAgNjUsIDgzLCA2OSwgNDUsIDE5OCwgODAsIDcyLCA2NSwgODMsIDY5LCA0NSwgMTk0LCA4MCwgNzIsIDY1LCA4MiwgODksIDc4LCAKLSAgICA3MSwgNjksIDY1LCAyMDQsIDgwLCA3MiwgNjUsIDgyLCAxMjgsIDgwLCA3MiwgNjUsIDc4LCAxMjgsIDgwLCA3MiwgNjUsIAotICAgIDc3LCAxMjgsIDgwLCA3MiwgNjUsIDczLCA4MywgODQsIDc5LCAyMTEsIDgwLCA3MiwgNjUsIDcxLCA4MywgNDUsIDgwLCAKLSAgICAxOTMsIDgwLCA3MiwgNjUsIDY1LCA4MiwgNzUsIDY1LCA2NSwgMTI4LCA4MCwgNzIsIDY1LCA2NSwgMTI4LCA4MCwgNzIsIAotICAgIDY1LCAxMjgsIDgwLCA3MSwgMTI4LCA4MCwgNzAsIDEyOCwgODAsIDY5LCA4NSwgODgsIDEyOCwgODAsIDY5LCA4NSwgODQsIAotICAgIDY1LCA2OSwgMTI4LCA4MCwgNjksIDg1LCA4NCwgMTI4LCA4MCwgNjksIDg0LCA2NSwgODMsIDg0LCA3OSwgNzUsIDc5LCA4NSwgCi0gICAgNzAsIDczLCA4MywgNzcsIDY1LCAxMjgsIDgwLCA2OSwgODQsIDY1LCA4MywgODQsIDczLCAxMjgsIDgwLCA2OSwgODQsIDY1LCAKLSAgICA4MywgNzcsIDY1LCAxMjgsIDgwLCA2OSwgODQsIDY1LCA3NiwgNzYsIDY5LCAxOTYsIDgwLCA2OSwgODMsIDc5LCAxMjgsIAotICAgIDgwLCA2OSwgODMsIDIwNywgODAsIDY5LCA4MywgNzIsIDUwLCAxMjgsIDgwLCA2OSwgODMsIDY5LCA4NCwgMTkzLCA4MCwgCi0gICAgNjksIDIxMSwgODAsIDY5LCA4MiwgODQsIDcyLCAyMDcsIDgwLCA2OSwgODIsIDgzLCA4MCwgNjksIDY3LCA4NCwgNzMsIDg2LCAKLSAgICA2OSwgMTI4LCA4MCwgNjksIDgyLCA4MywgNzksIDc4LCA2NSwgMjA0LCA4MCwgNjksIDgyLCA4MywgNzksIDc4LCAxMjgsIAotICAgIDgwLCA2OSwgODIsIDgzLCA3OSwgMjA2LCA4MCwgNjksIDgyLCA4MywgNzMsIDY1LCAyMDYsIDgwLCA2OSwgODIsIDgzLCA2OSwgCi0gICAgODYsIDY5LCA4MiwgNzMsIDc4LCAxOTksIDgwLCA2OSwgODIsIDgwLCA2OSwgNzgsIDY4LCA3MywgNjcsIDg1LCA3NiwgNjUsIAotICAgIDgyLCAxMjgsIDgwLCA2OSwgODIsIDgwLCA2OSwgNzgsIDY4LCA3MywgNjcsIDg1LCA3NiwgNjUsIDIxMCwgODAsIDY5LCA4MiwgCi0gICAgNzcsIDY1LCA3OCwgNjksIDc4LCAyMTIsIDgwLCA2OSwgODIsIDczLCA4MywgODAsIDc5LCA3NywgNjksIDc4LCA3MywgMTI4LCAKLSAgICA4MCwgNjksIDgyLCA3MywgODMsIDgwLCA3OSwgNzcsIDY5LCA3OCwgMjAxLCA4MCwgNjksIDgyLCA3MCwgNzksIDgyLCA3NywgCi0gICAgNzMsIDc4LCAxOTksIDgwLCA2OSwgODIsIDcwLCA2OSwgNjcsIDg0LCA4NSwgMjA1LCA4MCwgNjksIDgyLCA3MCwgNjksIDY3LCAKLSAgICA4NCwgNjUsIDEyOCwgODAsIDY5LCA4MiwgNzAsIDY5LCA2NywgODQsIDE5MywgODAsIDY5LCA4MiwgNjcsIDg1LCA4MywgODMsIAotICAgIDczLCA4NiwgNjksIDEyOCwgODAsIDY5LCA4MiwgNjcsIDY5LCA3OCwgMjEyLCA4MCwgNjksIDgwLCA2OSwgODQsIDEyOCwgCi0gICAgODAsIDY5LCA4MCwgNjksIDIxMiwgODAsIDY5LCA3OSwgODIsIDg0LCAyMDAsIDgwLCA2OSwgNzksIDgwLCA3NiwgNjksIAotICAgIDEyOCwgODAsIDY5LCA3OCwgODQsIDY1LCA4MywgNjksIDc3LCA2OSwgMTI4LCA4MCwgNjksIDc4LCA4NCwgNjUsIDcxLCA4MiwgCi0gICAgNjUsIDc3LCAxMjgsIDgwLCA2OSwgNzgsIDg0LCA2NSwgNzEsIDc5LCA3OCwgMTI4LCA4MCwgNjksIDc4LCA4MywgODUsIAotICAgIDEyOCwgODAsIDY5LCA3OCwgODMsIDczLCA4NiwgMTk3LCA4MCwgNjksIDc4LCA3OCwgMjE3LCA4MCwgNjksIDc4LCA3MywgCi0gICAgNzIsIDczLCAxMjgsIDgwLCA2OSwgNzgsIDcxLCA4NSwgNzMsIDc4LCAxMjgsIDgwLCA2OSwgNzgsIDcxLCA3NSwgNjUsIDc2LCAKLSAgICAxMjgsIDgwLCA2OSwgNzgsIDY5LCA4NCwgODIsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4MCwgNjksIDc4LCA2NywgNzMsIAotICAgIDc2LCAxMjgsIDgwLCA2OSwgNzYsIDY1LCA4MywgODQsIDc5LCA3OCwgMTI4LCA4MCwgNjksIDc2LCA2NSwgODMsIDg0LCA3OSwgCi0gICAgMjA2LCA4MCwgNjksIDczLCA4NCwgNzIsIDEyOCwgODAsIDY5LCA3MiwgNjksIDcyLCAxMjgsIDgwLCA2OSwgNzIsIDY5LCAKLSAgICAyMDAsIDgwLCA2OSwgNzIsIDEyOCwgODAsIDY5LCAyMDAsIDgwLCA2OSwgNjksIDkwLCA3MywgMTI4LCA4MCwgNjksIDY5LCAKLSAgICA4MywgNzIsIDczLCAxMjgsIDgwLCA2OSwgNjksIDgwLCAxMjgsIDgwLCA2OSwgNjksIDc3LCAxMjgsIDgwLCA2OSwgNjksIAotICAgIDEyOCwgODAsIDY5LCA2OCwgNjksIDgzLCA4NCwgODIsIDczLCA2NSwgNzgsIDgzLCAxMjgsIDgwLCA2OSwgNjgsIDY5LCA4MywgCi0gICAgODQsIDgyLCA3MywgNjUsIDc4LCAxMjgsIDgwLCA2OSwgNjgsIDY5LCA4MywgODQsIDY1LCA3NiwgMTI4LCA4MCwgNjksIDY4LCAKLSAgICA2OSwgODMsIDg0LCA2NSwgMjA0LCA4MCwgNjksIDY4LCA2NSwgMjA0LCA4MCwgNjksIDY1LCA2NywgNzIsIDEyOCwgODAsIAotICAgIDY5LCA2NSwgNjcsIDY5LCAxMjgsIDgwLCA2OSwgNjUsIDY3LCAxOTcsIDgwLCA2OCwgMTI4LCA4MCwgNjcsIDEyOCwgODAsIAotICAgIDY1LCA5MCwgNjksIDgyLCAxMjgsIDgwLCA2NSwgODksIDY5LCA4MiwgNzksIDc1LCAxMjgsIDgwLCA2NSwgODksIDY1LCA3OCwgCi0gICAgNzgsIDY1LCAxMjgsIDgwLCA2NSwgODksIDEyOCwgODAsIDY1LCA4OCwgMTI4LCA4MCwgNjUsIDg3LCA3OCwgMTI4LCA4MCwgCi0gICAgNjUsIDIxNSwgODAsIDY1LCA4NiwgNzMsIDg5LCA2NSwgNzgsIDczLCAxMjgsIDgwLCA2NSwgODQsIDg0LCA2OSwgODIsIDc4LCAKLSAgICAxMjgsIDgwLCA2NSwgODQsIDcyLCA2NSwgNzcsIDY1LCA4MywgNjUsIDg0LCAxMjgsIDgwLCA2NSwgODQsIDIwMCwgODAsIAotICAgIDY1LCA4NCwgNjUsIDc1LCAxMjgsIDgwLCA2NSwgODQsIDY1LCA3MiwgMTI4LCA4MCwgNjUsIDg0LCAxMjgsIDgwLCA2NSwgCi0gICAgODMsIDg1LCA4MSwgMTI4LCA4MCwgNjUsIDgzLCA4MywgODAsIDc5LCA4MiwgMjEyLCA4MCwgNjUsIDgzLCA4MywgNzMsIDg2LCAKLSAgICA2OSwgNDUsIDgwLCA4NSwgNzYsIDc2LCA0NSwgODUsIDgwLCA0NSwgNzksIDg1LCA4NCwgODAsIDg1LCAyMTIsIDgwLCA2NSwgCi0gICAgODMsIDgzLCA3MywgODYsIDY5LCA0NSwgODAsIDg1LCA3NiwgNzYsIDQ1LCA2OCwgNzksIDg3LCA3OCwgNDUsIDc5LCA4NSwgCi0gICAgODQsIDgwLCA4NSwgMjEyLCA4MCwgNjUsIDgzLCA3MiwgODQsIDY1LCAxMjgsIDgwLCA2NSwgODMsIDcyLCA2NSwgNjksIAotICAgIDEyOCwgODAsIDY1LCA4MywgNjksIDgxLCAxMjgsIDgwLCA2NSwgODIsIDg1LCA3NywgMTI4LCA4MCwgNjUsIDgyLCA4NCwgCi0gICAgMjE3LCA4MCwgNjUsIDgyLCA4NCwgNzgsIDY5LCA4MiwgODMsIDcyLCA3MywgMjA4LCA4MCwgNjUsIDgyLCA4NCwgNzMsIDY1LCAKLSAgICA3NiwgNzYsIDg5LCA0NSwgODIsIDY5LCA2NywgODksIDY3LCA3NiwgNjksIDE5NiwgODAsIDY1LCA4MiwgODQsIDczLCA2NSwgCi0gICAgMjA0LCA4MCwgNjUsIDgyLCA4NCwgNzIsIDczLCA2NSwgMjA2LCA4MCwgNjUsIDgyLCAyMTIsIDgwLCA2NSwgODIsIDczLCAKLSAgICA2NywgNzIsIDc5LCA3OCwgMTI4LCA4MCwgNjUsIDgyLCA2OSwgODMsIDg0LCA3MywgNzEsIDc3LCA2OSwgNzgsIDc5LCAyMDYsIAotICAgIDgwLCA2NSwgODIsIDY5LCA4MiwgNjksIDc4LCAxMjgsIDgwLCA2NSwgODIsIDY5LCA3OCwgODQsIDcyLCA2OSwgODMsIDczLCAKLSAgICA4MywgMTI4LCA4MCwgNjUsIDgyLCA2OSwgNzgsIDg0LCA3MiwgNjksIDgzLCA3MywgMjExLCA4MCwgNjUsIDgyLCA2NSwgODAsIAotICAgIDcyLCA4MiwgNjUsIDgzLCAxOTcsIDgwLCA2NSwgODIsIDY1LCA3NiwgNzYsIDY5LCA3NiwgNzksIDcxLCA4MiwgNjUsIDc3LCAKLSAgICAxMjgsIDgwLCA2NSwgODIsIDY1LCA3NiwgNzYsIDY5LCA3NiwgMTI4LCA4MCwgNjUsIDgyLCA2NSwgNzYsIDc2LCA2OSwgCi0gICAgMjA0LCA4MCwgNjUsIDgyLCA2NSwgNzUsIDc2LCA3MywgODQsIDczLCA3NSwgNzMsIDEyOCwgODAsIDY1LCA4MiwgNjUsIDc1LCAKLSAgICA3NiwgNzMsIDg0LCA3MywgNzUsIDIwMSwgODAsIDY1LCA4MiwgNjUsIDc1LCA2NSwgNzYsIDY5LCA4MywgNzcsIDE5MywgODAsIAotICAgIDY1LCA4MiwgNjUsIDcxLCA4MiwgNjUsIDgwLCA3MiwgNzksIDgzLCAxMjgsIDgwLCA2NSwgODIsIDY1LCA3MSwgODIsIDY1LCAKLSAgICA4MCwgNzIsIDEyOCwgODAsIDY1LCA4MiwgNjUsIDcxLCA4MiwgNjUsIDgwLCAyMDAsIDgwLCA2NSwgODIsIDY1LCAxMjgsIAotICAgIDgwLCA2NSwgODIsIDEyOCwgODAsIDY1LCA4MCwgODksIDgyLCA4NSwgODMsIDEyOCwgODAsIDY1LCA4MCwgNjksIDgyLCA2NywgCi0gICAgNzYsIDczLCA4MCwgMTI4LCA4MCwgNjUsIDgwLCA2OSwgMjEwLCA4MCwgNjUsIDgwLCAxMjgsIDgwLCA2NSwgMjA4LCA4MCwgCi0gICAgNjUsIDIwNywgODAsIDY1LCA3OCwgODksIDg1LCA3NSwgODUsIDEyOCwgODAsIDY1LCA3OCwgODksIDczLCA3NSwgODUsIAotICAgIDEyOCwgODAsIDY1LCA3OCwgODksIDY5LCA2NywgNjksIDc1LCAxMjgsIDgwLCA2NSwgNzgsIDg5LCA2NSwgNzgsIDcxLCA3MSwgCi0gICAgNjUsIDEyOCwgODAsIDY1LCA3OCwgODksIDY1LCA3NSwgODIsIDY1LCAxMjgsIDgwLCA2NSwgNzgsIDg0LCA3MywgMTI4LCAKLSAgICA4MCwgNjUsIDc4LCA4MywgNzMsIDc5LCA4MywgNDUsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA4MCwgNjUsIDc4LCA4MywgCi0gICAgNzMsIDc5LCA4MywgNDUsIDc1LCA2NSwgODAsIDg5LCA2OSwgNzksIDg1LCA3OCwgODAsIDczLCA2OSwgODUsIDgwLCAxMjgsIAotICAgIDgwLCA2NSwgNzgsIDc5LCA3OCwgNzEsIDc5LCA3OCwgNjUsIDc4LCAxMjgsIDgwLCA2NSwgNzgsIDc5LCA3NiwgNzksIDc4LCAKLSAgICA3MSwgMTI4LCA4MCwgNjUsIDc4LCA3MSwgODcsIDczLCA4MywgNjUsIDY4LCAxMjgsIDgwLCA2NSwgNzgsIDcxLCA4MiwgNjUsIAotICAgIDc4LCA3MSwgNzUsIDY5LCA4MCwgMTI4LCA4MCwgNjUsIDc4LCA3MSwgNzksIDc2LCA2NSwgODQsIDEyOCwgODAsIDY1LCA3OCwgCi0gICAgNzEsIDc2LCA2NSwgODksIDY1LCA4MiwgMTI4LCA4MCwgNjUsIDc4LCA3MSwgNzUsIDc5LCA3OCwgMTI4LCA4MCwgNjUsIDc4LCAKLSAgICA3MSwgNzUsIDY1LCA4NCwgMTI4LCA4MCwgNjUsIDc4LCA3MSwgNzIsIDg1LCA3NiwgODUsIDEyOCwgODAsIDY1LCA3OCwgNzEsIAotICAgIDEyOCwgODAsIDY1LCA3OCwgNjksIDg1LCA3NiwgNjksIDg1LCA3OCwgNzEsIDEyOCwgODAsIDY1LCA3OCwgNjgsIDE5MywgCi0gICAgODAsIDY1LCA3OCwgNjUsIDY5LCA3NiwgNjUsIDY5LCA3OCwgNzEsIDEyOCwgODAsIDY1LCA3OCwgMTI4LCA4MCwgNjUsIDc3LCAKLSAgICA4NSwgNzgsIDcxLCA3NSwgNjUsIDcyLCAxMjgsIDgwLCA2NSwgNzcsIDg1LCA2OCwgODAsIDc5LCA2OCwgMTI4LCA4MCwgNjUsIAotICAgIDc3LCA4MywgNzIsIDY1LCA2OSwgMTI4LCA4MCwgNjUsIDc3LCA4MCwgNzIsIDg5LCA3NiwgNzMsIDY1LCAyMDYsIDgwLCA2NSwgCi0gICAgNzcsIDczLCA3OCwgNzEsIDc1LCA2NSwgNzYsIDEyOCwgODAsIDY1LCA3NywgNjksIDgwLCA2OSwgODQsIDEyOCwgODAsIDY1LCAKLSAgICA3NywgNjksIDc4LCA2OSwgNzgsIDcxLCAxMjgsIDgwLCA2NSwgNzcsIDY1LCA2OCwgNjUsIDEyOCwgODAsIDY1LCA3NywgNjUsIAotICAgIDY1LCA2OSwgNzIsIDEyOCwgODAsIDY1LCA3NiwgODUsIDg0LCA2NSwgMTI4LCA4MCwgNjUsIDc2LCA3OSwgNjcsIDcyLCA3NSwgCi0gICAgNjUsIDEyOCwgODAsIDY1LCA3NiwgMjA1LCA4MCwgNjUsIDc2LCA3NiwgNjUsIDg3LCA2NSwgMTI4LCA4MCwgNjUsIDc2LCAKLSAgICA3NiwgNjUsIDgzLCAxMjgsIDgwLCA2NSwgNzYsIDY5LCA4NCwgODQsIDY5LCAxMjgsIDgwLCA2NSwgNzYsIDY1LCA4NSwgNzgsIAotICAgIDE5OSwgODAsIDY1LCA3NiwgNjUsIDg0LCA2NSwgNzYsIDczLCA5MCwgNjksIDE5NiwgODAsIDY1LCA3NiwgNjUsIDg0LCA2NSwgCi0gICAgNzYsIDczLCA5MCwgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDgwLCA2NSwgNzYsIDY1LCA4NCwgNjUsIDIwNCwgODAsIDY1LCAKLSAgICA3NSwgODAsIDY1LCAyMDMsIDgwLCA2NSwgNzMsIDg5LCA2NSwgNzgsIDc4LCA3OSwgNzMsIDEyOCwgODAsIDY1LCA3MywgODIsIAotICAgIDg0LCA3MiwgODIsIDY1LCAxMjgsIDgwLCA2NSwgNzMsIDgyLCA2OSwgMTk2LCA4MCwgNjUsIDcyLCA3NiwgNjUsIDg2LCAKLSAgICAyMDEsIDgwLCA2NSwgNzEsIDY5LCA4MiwgMTI4LCA4MCwgNjUsIDcxLCAxOTcsIDgwLCA2NSwgNjgsIDc3LCAxOTMsIDgwLCAKLSAgICA2NSwgNjgsIDE5MywgODAsIDY1LCA2OCwgMTI4LCA4MCwgNjUsIDY3LCA3NSwgNzMsIDc4LCA3MSwgMTI4LCA4MCwgNjUsIAotICAgIDY3LCA3NSwgNjUsIDcxLCA2OSwgMTI4LCA4MCwgNjUsIDY1LCA4NCwgODUsIDEyOCwgODAsIDY1LCA2NSwgODMsIDY5LCA3OCwgCi0gICAgODQsIDc5LCAxMjgsIDgwLCA2NSwgNjUsIDgyLCA2NSwgNjksIDEyOCwgODAsIDY1LCA2NSwgNzcsIDEyOCwgODAsIDY1LCAKLSAgICA2NSwgNzMsIDEyOCwgODAsIDY1LCA2NSwgNDUsIDgwLCA3MywgNzYsIDc2LCA2NSwgMTI4LCA4MCwgNjUsIDY1LCAxMjgsIAotICAgIDgwLCA1MCwgMTI4LCA4MCwgNDgsIDQ5LCA0OSwgMTI4LCA4MCwgNDgsIDQ5LCA0OCwgMTI4LCA4MCwgNDgsIDQ4LCA1NywgCi0gICAgMTI4LCA4MCwgNDgsIDQ4LCA1NiwgMTI4LCA4MCwgNDgsIDQ4LCA1NSwgMTI4LCA4MCwgNDgsIDQ4LCA1NCwgMTI4LCA4MCwgCi0gICAgNDgsIDQ4LCA1MywgMTI4LCA4MCwgNDgsIDQ4LCA1MiwgMTI4LCA4MCwgNDgsIDQ4LCA1MSwgNjUsIDEyOCwgODAsIDQ4LCAKLSAgICA0OCwgNTEsIDEyOCwgODAsIDQ4LCA0OCwgNTAsIDEyOCwgODAsIDQ4LCA0OCwgNDksIDY1LCAxMjgsIDgwLCA0OCwgNDgsIAotICAgIDQ5LCAxMjgsIDc5LCA4OSwgODIsIDY1LCA3OCwgNzMsIDgzLCA3NywgMTkzLCA3OSwgODksIDY1LCA3OCwgNzgsIDY1LCAKLSAgICAxMjgsIDc5LCA4OCwgNzMsIDY1LCAxMjgsIDc5LCA4OCwgNzMsIDE5MywgNzksIDg4LCA2OSwgNzMsIDY1LCAyMDEsIDc5LCAKLSAgICA4OCwgNjksIDczLCAxOTMsIDc5LCA4NiwgNjksIDgyLCA4MiwgNzMsIDY4LCA2OSwgMTI4LCA3OSwgODYsIDY5LCA4MiwgNzYsIAotICAgIDc5LCA3OCwgMTk5LCA3OSwgODYsIDY5LCA4MiwgNzYsIDczLCA3OCwgNjksIDEyOCwgNzksIDg2LCA2OSwgODIsIDc2LCA2NSwgCi0gICAgODksIDEyOCwgNzksIDg2LCA2OSwgODIsIDc2LCA2NSwgODAsIDgwLCA3MywgNzgsIDE5OSwgNzksIDg2LCA2OSwgODIsIDc2LCAKLSAgICA2NSwgNzMsIDY4LCAxMjgsIDc5LCA4NiwgNjksIDgyLCA2NiwgNjUsIDgyLCAxMjgsIDc5LCA4NiwgNjUsIDIwNCwgNzksIAotICAgIDg2LCAxMjgsIDc5LCA4NSwgODQsIDc2LCA3MywgNzgsIDY5LCAxOTYsIDc5LCA4NSwgODQsIDc2LCA3MywgNzgsIDY5LCAKLSAgICAxMjgsIDc5LCA4NSwgODQsIDY5LCAyMTAsIDc5LCA4NSwgODQsIDY2LCA3OSwgMjE2LCA3OSwgODUsIDc4LCA3NSwgNzMsIAotICAgIDE5MywgNzksIDg1LCA3OCwgNjcsIDY5LCAxMjgsIDc5LCA4NSwgNzgsIDY3LCAxOTcsIDc5LCA4NCwgODUsIDEyOCwgNzksIAotICAgIDg0LCA4NCwgNjUsIDg2LCAxOTMsIDc5LCA4NCwgODQsIDEyOCwgNzksIDg0LCA3MiwgNjUsIDc2LCA2NSwgMjA2LCA3OSwgCi0gICAgODQsIDcyLCA2NSwgNzYsIDEyOCwgNzksIDgzLCA3NywgNjUsIDc4LCA4OSwgMTkzLCA3OSwgODIsIDg0LCA3MiwgNzksIDcxLCAKLSAgICA3OSwgNzgsIDY1LCAyMDQsIDc5LCA4MiwgODQsIDcyLCA3OSwgNjgsIDc5LCAyMTYsIDc5LCA4MiwgNzgsIDY1LCA4NCwgCi0gICAgMTk3LCA3OSwgODIsIDc4LCA2NSwgNzcsIDY5LCA3OCwgODQsIDEyOCwgNzksIDgyLCA3OCwgNjUsIDc3LCA2OSwgNzgsIAotICAgIDIxMiwgNzksIDgyLCA3NSwgNzIsIDc5LCAyMDYsIDc5LCA4MiwgNzMsIDcxLCA3MywgNzgsIDY1LCAyMDQsIDc5LCA4MiwgCi0gICAgNzMsIDcxLCA3MywgNzgsIDEyOCwgNzksIDgyLCA2OSwgNDUsIDUwLCAxMjgsIDc5LCA4MiwgNjgsIDczLCA3OCwgNjUsIAotICAgIDIwNCwgNzksIDgyLCA2NywgNzIsIDczLCA2OCwgMTI4LCA3OSwgODIsIDY1LCA3OCwgNzEsIDE5NywgNzksIDgwLCA4NCwgCi0gICAgNzMsIDc5LCAyMDYsIDc5LCA4MCwgODQsIDczLCA2NywgNjUsIDIwNCwgNzksIDgwLCA4MCwgODIsIDY5LCA4MywgODMsIDczLCAKLSAgICA3OSwgNzgsIDEyOCwgNzksIDgwLCA4MCwgNzksIDgzLCA3MywgODQsIDczLCA3OSwgNzgsIDEyOCwgNzksIDgwLCA4MCwgNzksIAotICAgIDgzLCA3MywgNzgsIDE5OSwgNzksIDgwLCA4MCwgNzksIDgzLCA2OSwgMTI4LCA3OSwgODAsIDcyLCA3MywgODUsIDY3LCA3MiwgCi0gICAgODUsIDgzLCAxMjgsIDc5LCA4MCwgNjksIDgyLCA2NSwgODQsIDc5LCA4MiwgMTI4LCA3OSwgODAsIDY5LCA4MiwgNjUsIDg0LCAKLSAgICA3OSwgMjEwLCA3OSwgODAsIDY5LCA3OCwgNzMsIDc4LCAxOTksIDc5LCA4MCwgNjksIDc4LCA0NSwgODAsIDEyOCwgNzksIAotICAgIDgwLCA2OSwgNzgsIDQ1LCA3OSwgODUsIDg0LCA3NiwgNzMsIDc4LCA2OSwgMTk2LCA3OSwgODAsIDY5LCA3OCwgNDUsIDcyLCAKLSAgICA2OSwgNjUsIDY4LCA2OSwgMTk2LCA3OSwgODAsIDY5LCA3OCwgNDUsIDY3LCA3MywgODIsIDY3LCA4NSwgNzMsIDg0LCA0NSwgCi0gICAgNzksIDg1LCA4NCwgODAsIDg1LCAyMTIsIDc5LCA4MCwgNjksIDIwNiwgNzksIDc5LCA5MCwgNjksIDEyOCwgNzksIDc5LCAKLSAgICA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNzksIDc5LCA4NSwgMTI4LCA3OSwgNzksIDc3LCA4NSwgMTI4LCA3OSwgNzksIAotICAgIDY5LCAxMjgsIDc5LCA3OSwgNjYsIDc5LCA3OSwgNzAsIDczLCA3NiwgNzMsIDEyOCwgNzksIDc4LCA4NSwgMTI4LCA3OSwgCi0gICAgNzgsIDgzLCA4NSwgMTI4LCA3OSwgNzgsIDc4LCAxMjgsIDc5LCA3OCwgNzUsIDY1LCA4MiwgMTI4LCA3OSwgNzgsIDY5LCAKLSAgICA4MywgNjksIDc2LCA3MCwgMTI4LCA3OSwgNzgsIDY5LCA0NSwgODcsIDY1LCAyMTcsIDc5LCA3OCwgNjksIDQ1LCA4NCwgNzIsIAotICAgIDczLCA4MiwgODQsIDg5LCAxMjgsIDc5LCA3OCwgNjksIDQ1LCA3NiwgNzMsIDc4LCAxOTcsIDc5LCA3OCwgNjcsIDc5LCA3NywgCi0gICAgNzMsIDc4LCAxOTksIDc5LCA3OCwgNjUsIDgwLCAxMjgsIDc5LCA3NywgNzMsIDgzLCA4MywgNzMsIDc5LCAyMDYsIDc5LCAKLSAgICA3NywgNzMsIDY3LCA4MiwgNzksIDc4LCAxMjgsIDc5LCA3NywgNzMsIDY3LCA4MiwgNzksIDIwNiwgNzksIDc3LCA2OSwgNzEsIAotICAgIDY1LCAxMjgsIDc5LCA3NywgNjksIDcxLCAxOTMsIDc5LCA3NywgNjUsIDc2LCA3OSwgNzgsIDEyOCwgNzksIDc2LCA3MywgCi0gICAgODYsIDY5LCAxMjgsIDc5LCA3NiwgNzMsIDcxLCA3OSwgMjA2LCA3OSwgNzYsIDY4LCAxMjgsIDc5LCA3NSwgODQsIDIwNywgCi0gICAgNzksIDc1LCA2NSwgODIsIDY1LCAxMjgsIDc5LCA3NSwgNjUsIDgyLCAxOTMsIDc5LCA3NCwgNzMsIDY2LCA4NywgNjUsIAotICAgIDIxNywgNzksIDc0LCA2OSwgNzksIDc4LCAxMjgsIDc5LCA3MywgNzYsIDEyOCwgNzksIDcyLCA3NywgMTI4LCA3OSwgNzIsIAotICAgIDIwNSwgNzksIDcyLCAxMjgsIDc5LCA3MSwgODIsIDY5LCAxMjgsIDc5LCA3MSwgNzksIDc4LCA2OSwgNzUsIDEyOCwgNzksIAotICAgIDcxLCA3OSwgNzgsIDY5LCAyMDMsIDc5LCA3MSwgNzIsIDY1LCAyMDUsIDc5LCA3MCwgNzAsIDczLCA2NywgNjksIDgyLCAKLSAgICAxMjgsIDc5LCA3MCwgNzAsIDczLCA2NywgNjksIDEyOCwgNzksIDcwLCA3MCwgNzMsIDY3LCAxOTcsIDc5LCA3MCwgNzAsIAotICAgIDEyOCwgNzksIDY5LCA3NSwgMTI4LCA3OSwgNjgsIDY5LCA3OCwgMTI4LCA3OSwgNjgsIDE5NiwgNzksIDY3LCA4NCwgNzksIAotICAgIDgwLCA4NSwgODMsIDEyOCwgNzksIDY3LCA4NCwgNzksIDY2LCA2OSwgODIsIDEyOCwgNzksIDY3LCAyMTAsIDc5LCA2NywgCi0gICAgNzYsIDc5LCA2NywgNzUsIDEyOCwgNzksIDY3LCA2NywgNzYsIDg1LCA4MywgNzMsIDc5LCA3OCwgMTI4LCA3OSwgNjYsIDgzLCAKLSAgICA4NCwgODIsIDg1LCA2NywgODQsIDczLCA3OSwgNzgsIDEyOCwgNzksIDY2LCA3OSwgNzYsIDIxMSwgNzksIDY2LCA3OSwgCi0gICAgMjA0LCA3OSwgNjYsIDc5LCA3MCwgNzMsIDc2LCA3MywgMTI4LCA3OSwgNjYsIDc2LCA3MywgODEsIDg1LCAxOTcsIDc5LCAKLSAgICA2NiwgNzQsIDY5LCA2NywgMjEyLCA3OSwgNjYsIDY5LCA3NiwgODUsIDgzLCAxMjgsIDc5LCA2NiwgNjksIDc2LCA3OSwgODMsIAotICAgIDEyOCwgNzksIDY2LCAxMjgsIDc5LCA2NSwgODksIDEyOCwgNzksIDY1LCA3NSwgMTI4LCA3OSwgNjUsIDY2LCA3OSwgNjUsIAotICAgIDcwLCA3MywgNzYsIDczLCAxMjgsIDc5LCAxOTMsIDc5LCA0OCwgNTMsIDQ5LCAxMjgsIDc5LCA0OCwgNTMsIDQ4LCA2NiwgCi0gICAgMTI4LCA3OSwgNDgsIDUzLCA0OCwgNjUsIDEyOCwgNzksIDQ4LCA1MywgNDgsIDEyOCwgNzksIDQ4LCA1MiwgNTcsIDEyOCwgCi0gICAgNzksIDQ4LCA1MiwgNTYsIDEyOCwgNzksIDQ4LCA1MiwgNTUsIDEyOCwgNzksIDQ4LCA1MiwgNTQsIDEyOCwgNzksIDQ4LCAKLSAgICA1MiwgNTMsIDEyOCwgNzksIDQ4LCA1MiwgNTIsIDEyOCwgNzksIDQ4LCA1MiwgNTEsIDEyOCwgNzksIDQ4LCA1MiwgNTAsIAotICAgIDEyOCwgNzksIDQ4LCA1MiwgNDksIDEyOCwgNzksIDQ4LCA1MiwgNDgsIDEyOCwgNzksIDQ4LCA1MSwgNTcsIDEyOCwgNzksIAotICAgIDQ4LCA1MSwgNTYsIDEyOCwgNzksIDQ4LCA1MSwgNTUsIDEyOCwgNzksIDQ4LCA1MSwgNTQsIDY4LCAxMjgsIDc5LCA0OCwgCi0gICAgNTEsIDU0LCA2NywgMTI4LCA3OSwgNDgsIDUxLCA1NCwgNjYsIDEyOCwgNzksIDQ4LCA1MSwgNTQsIDY1LCAxMjgsIDc5LCAKLSAgICA0OCwgNTEsIDU0LCAxMjgsIDc5LCA0OCwgNTEsIDUzLCAxMjgsIDc5LCA0OCwgNTEsIDUyLCAxMjgsIDc5LCA0OCwgNTEsIAotICAgIDUxLCA2NSwgMTI4LCA3OSwgNDgsIDUxLCA1MSwgMTI4LCA3OSwgNDgsIDUxLCA1MCwgMTI4LCA3OSwgNDgsIDUxLCA0OSwgCi0gICAgMTI4LCA3OSwgNDgsIDUxLCA0OCwgNjUsIDEyOCwgNzksIDQ4LCA1MSwgNDgsIDEyOCwgNzksIDQ4LCA1MCwgNTcsIDY1LCAKLSAgICAxMjgsIDc5LCA0OCwgNTAsIDU3LCAxMjgsIDc5LCA0OCwgNTAsIDU2LCAxMjgsIDc5LCA0OCwgNTAsIDU1LCAxMjgsIDc5LCAKLSAgICA0OCwgNTAsIDU0LCAxMjgsIDc5LCA0OCwgNTAsIDUzLCA2NSwgMTI4LCA3OSwgNDgsIDUwLCA1MywgMTI4LCA3OSwgNDgsIAotICAgIDUwLCA1MiwgNjUsIDEyOCwgNzksIDQ4LCA1MCwgNTIsIDEyOCwgNzksIDQ4LCA1MCwgNTEsIDEyOCwgNzksIDQ4LCA1MCwgCi0gICAgNTAsIDEyOCwgNzksIDQ4LCA1MCwgNDksIDEyOCwgNzksIDQ4LCA1MCwgNDgsIDY1LCAxMjgsIDc5LCA0OCwgNTAsIDQ4LCAKLSAgICAxMjgsIDc5LCA0OCwgNDksIDU3LCA2NSwgMTI4LCA3OSwgNDgsIDQ5LCA1NywgMTI4LCA3OSwgNDgsIDQ5LCA1NiwgMTI4LCAKLSAgICA3OSwgNDgsIDQ5LCA1NSwgMTI4LCA3OSwgNDgsIDQ5LCA1NCwgMTI4LCA3OSwgNDgsIDQ5LCA1MywgMTI4LCA3OSwgNDgsIAotICAgIDQ5LCA1MiwgMTI4LCA3OSwgNDgsIDQ5LCA1MSwgMTI4LCA3OSwgNDgsIDQ5LCA1MCwgMTI4LCA3OSwgNDgsIDQ5LCA0OSwgCi0gICAgMTI4LCA3OSwgNDgsIDQ5LCA0OCwgNjcsIDEyOCwgNzksIDQ4LCA0OSwgNDgsIDY2LCAxMjgsIDc5LCA0OCwgNDksIDQ4LCAKLSAgICA2NSwgMTI4LCA3OSwgNDgsIDQ5LCA0OCwgMTI4LCA3OSwgNDgsIDQ4LCA1NywgMTI4LCA3OSwgNDgsIDQ4LCA1NiwgMTI4LCAKLSAgICA3OSwgNDgsIDQ4LCA1NSwgMTI4LCA3OSwgNDgsIDQ4LCA1NCwgNzAsIDEyOCwgNzksIDQ4LCA0OCwgNTQsIDY5LCAxMjgsIAotICAgIDc5LCA0OCwgNDgsIDU0LCA2OCwgMTI4LCA3OSwgNDgsIDQ4LCA1NCwgNjcsIDEyOCwgNzksIDQ4LCA0OCwgNTQsIDY2LCAKLSAgICAxMjgsIDc5LCA0OCwgNDgsIDU0LCA2NSwgMTI4LCA3OSwgNDgsIDQ4LCA1NCwgMTI4LCA3OSwgNDgsIDQ4LCA1MywgNjUsIAotICAgIDEyOCwgNzksIDQ4LCA0OCwgNTMsIDEyOCwgNzksIDQ4LCA0OCwgNTIsIDEyOCwgNzksIDQ4LCA0OCwgNTEsIDEyOCwgNzksIAotICAgIDQ4LCA0OCwgNTAsIDEyOCwgNzksIDQ4LCA0OCwgNDksIDY1LCAxMjgsIDc5LCA0OCwgNDgsIDQ5LCAxMjgsIDc5LCA0NSwgCi0gICAgODksIDY5LCAxMjgsIDc5LCA0NSwgNzksIDQ1LCA3MywgMTI4LCA3OSwgNDUsIDY5LCAxMjgsIDc4LCA5MCwgODksIDg4LCAKLSAgICAxMjgsIDc4LCA5MCwgODksIDg0LCAxMjgsIDc4LCA5MCwgODksIDgyLCA4OCwgMTI4LCA3OCwgOTAsIDg5LCA4MiwgMTI4LCAKLSAgICA3OCwgOTAsIDg5LCA4MCwgMTI4LCA3OCwgOTAsIDg5LCAxMjgsIDc4LCA5MCwgODUsIDg4LCAxMjgsIDc4LCA5MCwgODUsIAotICAgIDgyLCA4OCwgMTI4LCA3OCwgOTAsIDg1LCA4MiwgMTI4LCA3OCwgOTAsIDg1LCA4MSwgMTI4LCA3OCwgOTAsIDg1LCA4MCwgCi0gICAgMTI4LCA3OCwgOTAsIDg1LCA3OSwgODgsIDEyOCwgNzgsIDkwLCA4NSwgNzksIDEyOCwgNzgsIDkwLCA4NSwgMjA2LCA3OCwgCi0gICAgOTAsIDg1LCAxMjgsIDc4LCA5MCwgNzksIDg4LCAxMjgsIDc4LCA5MCwgNzksIDgwLCAxMjgsIDc4LCA5MCwgNzMsIDg4LCAKLSAgICAxMjgsIDc4LCA5MCwgNzMsIDg0LCAxMjgsIDc4LCA5MCwgNzMsIDgwLCAxMjgsIDc4LCA5MCwgNzMsIDY5LCA4OCwgMTI4LCAKLSAgICA3OCwgOTAsIDczLCA2OSwgODAsIDEyOCwgNzgsIDkwLCA3MywgNjksIDEyOCwgNzgsIDkwLCA3MywgMTI4LCA3OCwgOTAsIAotICAgIDY5LCA4OCwgMTI4LCA3OCwgOTAsIDY5LCA4NSwgNzcsIDEyOCwgNzgsIDkwLCA2OSwgMTI4LCA3OCwgOTAsIDY1LCA4OCwgCi0gICAgMTI4LCA3OCwgOTAsIDY1LCA4NCwgMTI4LCA3OCwgOTAsIDY1LCA4MSwgMTI4LCA3OCwgOTAsIDY1LCA4MCwgMTI4LCA3OCwgCi0gICAgOTAsIDY1LCAxMjgsIDc4LCA5MCwgMTkzLCA3OCwgODksIDg3LCA2NSwgMTI4LCA3OCwgODksIDg1LCA4OCwgMTI4LCA3OCwgCisgICAgODUsIDEyOCwgODAsIDg1LCA4NCwgODIsIDY5LCA3MCwgNjUsIDY3LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4MCwgODUsIDg0LCAKKyAgICAxMjgsIDgwLCA4NSwgMjEyLCA4MCwgODUsIDgzLCA3MiwgODAsIDczLCA3OCwgMTI4LCA4MCwgODUsIDgzLCA3MiwgODAsIAorICAgIDczLCA3NSwgNjUsIDEyOCwgODAsIDg1LCA4MywgNzIsIDczLCA3OCwgMTk5LCA4MCwgODUsIDgyLCA4OCwgMTI4LCA4MCwgCisgICAgODUsIDgyLCA4MywgNjksIDEyOCwgODAsIDg1LCA4MiwgODAsIDc2LCAxOTcsIDgwLCA4NSwgODIsIDc4LCA2NSwgNzcsIDY1LCAKKyAgICAxMjgsIDgwLCA4NSwgODIsIDczLCA4NCwgODksIDEyOCwgODAsIDg1LCA4MiwgNzMsIDcwLCA4OSwgMTI4LCA4MCwgODUsIAorICAgIDgyLCAxMjgsIDgwLCA4NSwgODEsIDEyOCwgODAsIDg1LCA4MCwgMTI4LCA4MCwgODUsIDc5LCA4OCwgMTI4LCA4MCwgODUsIAorICAgIDc5LCA4MCwgMTI4LCA4MCwgODUsIDc5LCAxMjgsIDgwLCA4NSwgNzgsIDcxLCA2NSwgNjUsIDc3LCAxMjgsIDgwLCA4NSwgCisgICAgNzgsIDcxLCAxMjgsIDgwLCA4NSwgNzgsIDY3LCA4NCwgODUsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4MCwgODUsIDc4LCAKKyAgICA2NywgODQsIDg1LCA2NSwgODQsIDczLCA3OSwgMjA2LCA4MCwgODUsIDc3LCA4MCwgMTI4LCA4MCwgODUsIDc3LCAxMjgsIAorICAgIDgwLCA4NSwgNjksIDEyOCwgODAsIDg1LCA2NiwgNzYsIDczLCAxOTUsIDgwLCA4NSwgNjUsIDgxLCAxMjgsIDgwLCA4NSwgCisgICAgNjUsIDY5LCAxMjgsIDgwLCA4NSwgNTAsIDEyOCwgODAsIDg1LCA0OSwgMTI4LCA4MCwgODUsIDEyOCwgODAsIDg0LCA3MiwgCisgICAgNjUsIDcyLCAxOTMsIDgwLCA4NCwgNjksIDEyOCwgODAsIDgzLCA3MywgNzYsIDIwMSwgODAsIDgzLCA3MywgNzAsIDczLCAKKyAgICA4MywgODQsIDc5LCA4MywgODksIDc4LCA2NSwgNzEsIDc3LCA2NSwgMTI4LCA4MCwgODMsIDczLCA3MCwgNzMsIDgzLCA4NCwgCisgICAgNzksIDgwLCA2NSwgODIsIDY1LCA3NSwgNjUsIDc2LCA2OSwgODMsIDc3LCA2NSwgMTI4LCA4MCwgODMsIDczLCA3MCwgNzMsIAorICAgIDgzLCA4NCwgNzksIDIwNiwgODAsIDgzLCA3MywgNzAsIDczLCA4MywgODQsIDc5LCA3NiwgODksIDcxLCA3MywgODMsIDc3LCAKKyAgICA2NSwgMTI4LCA4MCwgODMsIDczLCAxMjgsIDgwLCA4MywgMTI4LCA4MCwgODIsIDc5LCA4NiwgNjksIDEyOCwgODAsIDgyLCAKKyAgICA3OSwgODQsIDc5LCA4NiwgNjUsIDgyLCA4OSwgMjExLCA4MCwgODIsIDc5LCA4NCwgNzksIDIxMSwgODAsIDgyLCA3OSwgODQsIAorICAgIDY5LCA2NywgODQsIDY5LCAxOTYsIDgwLCA4MiwgNzksIDgzLCA3MSwgNjksIDcxLCA4MiwgNjUsIDc3LCA3NywgNjksIDc4LCAKKyAgICA3MywgMTI4LCA4MCwgODIsIDc5LCA4MCwgNzksIDgyLCA4NCwgNzMsIDc5LCA3OCwgNjUsIDIwNCwgODAsIDgyLCA3OSwgODAsIAorICAgIDc5LCA4MiwgODQsIDczLCA3OSwgNzgsIDEyOCwgODAsIDgyLCA3OSwgODAsIDY5LCA4MiwgODQsIDIxNywgODAsIDgyLCA3OSwgCisgICAgODAsIDY5LCA3NiwgNzYsIDY5LCAyMTAsIDgwLCA4MiwgNzksIDc5LCA3MCwgMTI4LCA4MCwgODIsIDc5LCA3NiwgNzksIDc4LCAKKyAgICA3MSwgNjksIDE5NiwgODAsIDgyLCA3OSwgNzYsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTk3LCA4MCwgODIsIDc5LCA3NCwgNjksIAorICAgIDY3LCA4NCwgNzMsIDg2LCA2OSwgMTI4LCA4MCwgODIsIDc5LCA3NCwgNjksIDY3LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA4MCwgCisgICAgODIsIDc5LCA3MSwgODIsIDY5LCA4MywgODMsIDEyOCwgODAsIDgyLCA3OSwgNzEsIDgyLCA2NSwgMjA1LCA4MCwgODIsIDc5LCAKKyAgICA3MCwgNzksIDg1LCA3OCwgNjgsIDEyOCwgODAsIDgyLCA3OSwgNjgsIDg1LCA2NywgODQsIDEyOCwgODAsIDgyLCA3OSwgNjgsIAorICAgIDg1LCA2NywgMjEyLCA4MCwgODIsIDczLCA4NiwgNjUsIDg0LCA2OSwgMTI4LCA4MCwgODIsIDczLCA4NiwgNjUsIDg0LCAKKyAgICAxOTcsIDgwLCA4MiwgNzMsIDg2LCA2NSwgNjcsIDIxNywgODAsIDgyLCA3MywgODMsIDcyLCA4NCwgNzIsIDY1LCA3NywgNjUsIAorICAgIDg0LCA4MiwgMTkzLCA4MCwgODIsIDczLCA3OCwgODQsIDgzLCAxMjgsIDgwLCA4MiwgNzMsIDc4LCA4NCwgMTI4LCA4MCwgCisgICAgODIsIDczLCA3OCwgMjEyLCA4MCwgODIsIDczLCA3OCwgNjcsIDY5LCA4MywgODMsIDEyOCwgODAsIDgyLCA3MywgNzcsIDY5LCAKKyAgICAxMjgsIDgwLCA4MiwgNzMsIDc3LCAxOTcsIDgwLCA4MiwgNjksIDg2LCA3MywgNzksIDg1LCAyMTEsIDgwLCA4MiwgNjksIAorICAgIDgzLCA2OSwgODQsIDEyOCwgODAsIDgyLCA2OSwgODMsIDY5LCA3OCwgODQsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDgwLCA4MiwgCisgICAgNjksIDgzLCA2NywgODIsIDczLCA4MCwgODQsIDczLCA3OSwgMjA2LCA4MCwgODIsIDY5LCA4MCwgNzksIDc4LCA2OCwgNjksIAorICAgIDgyLCA2NSwgNzgsIDY3LCA2OSwgMTI4LCA4MCwgODIsIDY5LCA3OCwgNzUsIDcyLCA2NSwgMTI4LCA4MCwgODIsIDY5LCA3MCwgCisgICAgNjUsIDY3LCAxOTcsIDgwLCA4MiwgNjksIDY3LCA3MywgODAsIDczLCA4NCwgNjUsIDg0LCA2OSwgMTI4LCA4MCwgODIsIDY5LCAKKyAgICA2NywgNjksIDY4LCA3MywgNzgsIDE5OSwgODAsIDgyLCA2OSwgNjcsIDY5LCA2OCwgNjksIDgzLCAxMjgsIDgwLCA4MiwgNjksIAorICAgIDY3LCA2OSwgNjgsIDY5LCAyMTEsIDgwLCA4MiwgNjksIDY3LCA2OSwgNjgsIDY5LCAxOTYsIDgwLCA4MiwgNjksIDY3LCA2OSwgCisgICAgNjgsIDY5LCAxMjgsIDgwLCA4MiwgNjksIDY3LCA2OSwgNjgsIDE5NywgODAsIDgyLCA2NSwgNzcsIDQ1LCA4MCwgNzMsIDczLCAKKyAgICAxMjgsIDgwLCA4MiwgNjUsIDc3LCA0NSwgODAsIDczLCAyMDEsIDgwLCA4MiwgNjUsIDc3LCA0NSwgNzcsIDg1LCA3OSwgODksIAorICAgIDEyOCwgODAsIDgyLCA2NSwgNzcsIDQ1LCA3NywgODUsIDc5LCAyMTcsIDgwLCA4MiwgNjUsIDc3LCA0NSwgNjYsIDg1LCA3OSwgCisgICAgNzgsIDEyOCwgODAsIDgyLCA2NSwgNzcsIDQ1LCA2NiwgODUsIDc5LCAyMDYsIDgwLCA4MiwgNjUsIDc3LCA0NSwgNjYsIDY5LCAKKyAgICA3MywgMTI4LCA4MCwgODIsIDY1LCA3NywgNDUsIDY2LCA2OSwgMjAxLCA4MCwgODIsIDY1LCA3NywgMTI4LCA4MCwgODIsIAorICAgIDY1LCAyMDUsIDgwLCA4MiwgMTI4LCA4MCwgODAsIDg2LCAxMjgsIDgwLCA4MCwgNzcsIDEyOCwgODAsIDgwLCA2NSwgMTI4LCAKKyAgICA4MCwgNzksIDg5LCAxMjgsIDgwLCA3OSwgODgsIDEyOCwgODAsIDc5LCA4NywgNjksIDgyLCAyMTEsIDgwLCA3OSwgODcsIAorICAgIDY5LCA4MiwgMTI4LCA4MCwgNzksIDg3LCA2OCwgNjksIDgyLCA2OSwgMTk2LCA4MCwgNzksIDg3LCA2OCwgNjksIDgyLCAKKyAgICAxMjgsIDgwLCA3OSwgODUsIDc4LCAxOTYsIDgwLCA3OSwgODUsIDc2LCA4NCwgODIsIDIxNywgODAsIDc5LCA4NSwgNjcsIAorICAgIDcyLCAxMjgsIDgwLCA3OSwgODQsIDY1LCA4NCwgNzksIDEyOCwgODAsIDc5LCA4NCwgNjUsIDY2LCA3NiwgMTk3LCA4MCwgCisgICAgNzksIDIxMiwgODAsIDc5LCA4MywgODQsIDgwLCA3OSwgODMsIDczLCA4NCwgNzMsIDc5LCAyMDYsIDgwLCA3OSwgODMsIDg0LCAKKyAgICA2NiwgNzksIDg4LCAxMjgsIDgwLCA3OSwgODMsIDg0LCA2NSwgMjA0LCA4MCwgNzksIDgzLCA4NCwgMTI4LCA4MCwgNzksIAorICAgIDgzLCAyMTIsIDgwLCA3OSwgODMsIDgzLCA2OSwgODMsIDgzLCA3MywgNzksIDc4LCAxMjgsIDgwLCA3OSwgODIsIDgyLCA2OSwgCisgICAgNjcsIDg0LCA4NSwgODMsIDEyOCwgODAsIDc5LCA4MiwgODIsIDY5LCA2NywgODQsIDg1LCAyMTEsIDgwLCA3OSwgODAsIDgwLCAKKyAgICA2OSwgODIsIDEyOCwgODAsIDc5LCA4MCwgMTI4LCA4MCwgNzksIDIwOCwgODAsIDc5LCA3OSwgNjgsIDc2LCA2OSwgMTI4LCAKKyAgICA4MCwgNzksIDc5LCAxMjgsIDgwLCA3OSwgNzgsIDY4LCA3OSwgMTI4LCA4MCwgNzksIDIwNiwgODAsIDc5LCA3NywgNzcsIAorICAgIDY5LCA2OSwgMTI4LCA4MCwgNzksIDc3LCA3NywgNjksIDE5NywgODAsIDc5LCA3NiwgNzMsIDgzLCA3MiwgMTI4LCA4MCwgCisgICAgNzksIDc2LCA3MywgNjcsIDE5NywgODAsIDc5LCA3NiwgMjAxLCA4MCwgNzksIDc2LCA2OSwgMTI4LCA4MCwgNzksIDc2LCAKKyAgICAxOTcsIDgwLCA3OSwgNzUsIDgyLCA4OSwgODQsIDczLCA2OSwgMTI4LCA4MCwgNzksIDc1LCA3OSwgNzQsIDczLCAxMjgsIAorICAgIDgwLCA3OSwgNzMsIDc4LCA4NCwgMjExLCA4MCwgNzksIDczLCA3OCwgODQsIDc5LCAxMjgsIDgwLCA3OSwgNzMsIDc4LCA4NCwgCisgICAgNjksIDgyLCAxMjgsIDgwLCA3OSwgNzMsIDc4LCA4NCwgNjksIDE5NiwgODAsIDc5LCA3MywgNzgsIDg0LCAxMjgsIDgwLCAKKyAgICA3OSwgNzMsIDc4LCAyMTIsIDgwLCA3OSwgNjksIDg0LCA4MiwgMjE3LCA4MCwgNzksIDY5LCA4NCwgNzMsIDE5NSwgODAsIAorICAgIDc5LCA2OCwgNjUsIDg0LCA4NSwgODMsIDEyOCwgODAsIDc5LCA2NSwgMTI4LCA4MCwgNzksIDEyOCwgODAsIDIwNywgODAsIAorICAgIDc4LCA2OSwgODUsIDc3LCA2NSwgODQsIDY1LCAxMjgsIDgwLCA3NiwgODUsIDg0LCA3OSwgMTI4LCA4MCwgNzYsIDg1LCA4MywgCisgICAgNDUsIDc3LCA3MywgNzgsIDg1LCAyMTEsIDgwLCA3NiwgODUsIDgzLCAxMjgsIDgwLCA3NiwgODUsIDgyLCA2NSwgNzYsIAorICAgIDEyOCwgODAsIDc2LCA4NSwgNzcsIDY5LCAxOTYsIDgwLCA3NiwgODUsIDc3LCAxMjgsIDgwLCA3NiwgODUsIDc1LCAxMjgsIAorICAgIDgwLCA3NiwgODUsIDcxLCAxMjgsIDgwLCA3NiwgODUsIDEyOCwgODAsIDc2LCA3OSwgODcsIDEyOCwgODAsIDc2LCA3OSwgCisgICAgODAsIDcyLCA4NSwgMTI4LCA4MCwgNzYsIDY5LCA4NCwgNzIsIDgyLCA3OSwgNzgsIDEyOCwgODAsIDc2LCA2OCwgMTI4LCAKKyAgICA4MCwgNzYsIDY1LCA4OSwgNzMsIDc4LCAxOTksIDgwLCA3NiwgNjUsIDgzLCA4NCwgNzMsIDY3LCA4MywgMTI4LCA4MCwgNzYsIAorICAgIDY1LCA3OCwgNjksIDEyOCwgODAsIDc2LCA2NSwgNzgsIDE5NywgODAsIDc2LCA2NSwgNzgsIDY3LCAyMDMsIDgwLCA3NiwgCisgICAgNjUsIDc1LCAxMjgsIDgwLCA3NiwgNjUsIDcxLCA3MywgNzksIDIxMSwgODAsIDc2LCA2NSwgNjcsIDY5LCA3MiwgNzksIDc2LCAKKyAgICA2OCwgNjksIDIxMCwgODAsIDc2LCA2NSwgNjcsIDE5NywgODAsIDc2LCA2NSwgMTI4LCA4MCwgNzMsIDkwLCA5MCwgNzMsIAorICAgIDY3LCA2NSwgODQsIDc5LCAxMjgsIDgwLCA3MywgOTAsIDkwLCA2NSwgMTI4LCA4MCwgNzMsIDg4LCAxMjgsIDgwLCA3MywgCisgICAgODcsIDgyLCAxMjgsIDgwLCA3MywgODQsIDY3LCA3MiwgNzAsIDc5LCA4MiwgNzUsIDEyOCwgODAsIDczLCA4NCwgNjcsIDcyLCAKKyAgICA3MCwgNzksIDgyLCAyMDMsIDgwLCA3MywgODQsIDEyOCwgODAsIDczLCA4MywgODQsIDc5LCA3NiwgMTI4LCA4MCwgNzMsIAorICAgIDgzLCA2OSwgNzYsIDY5LCA3MiwgMTI4LCA4MCwgNzMsIDgzLCA2NywgNjksIDgzLCAxMjgsIDgwLCA3MywgODIsIDczLCA3MSwgCisgICAgMTI4LCA4MCwgNzMsIDgyLCA3MywgMTk5LCA4MCwgNzMsIDgyLCA3MywgNjksIDY5LCA3OCwgMTI4LCA4MCwgNzMsIDgwLCAKKyAgICA3MywgNzgsIDcxLCAxMjgsIDgwLCA3MywgODAsIDY1LCA2OSwgNzcsIDcxLCA2NiwgNzMsIDY5LCA2OSwgMTI4LCA4MCwgNzMsIAorICAgIDgwLCA2NSwgNjksIDc3LCA2NiwgNjUsIDEyOCwgODAsIDczLCA4MCwgMTI4LCA4MCwgNzMsIDc4LCA4NywgNzIsIDY5LCA2OSwgCisgICAgMjA0LCA4MCwgNzMsIDc4LCA2OSwgNjUsIDgwLCA4MCwgNzYsIDY5LCAxMjgsIDgwLCA3MywgNzgsIDE5NywgODAsIDczLCAKKyAgICA3OCwgNjUsIDgyLCA2NiwgNzksIDgyLCA2NSwgODMsIDEyOCwgODAsIDczLCA3NiwgNzYsIDEyOCwgODAsIDczLCA3NiwgCisgICAgMTk3LCA4MCwgNzMsIDc2LCA2NywgODIsIDc5LCAyMTUsIDgwLCA3MywgNzUsIDg1LCA4MiwgODUsIDEyOCwgODAsIDczLCAKKyAgICA3NSwgNzksIDEyOCwgODAsIDczLCA3MSwgMTI4LCA4MCwgNzMsIDE5OSwgODAsIDczLCA2OSwgODgsIDEyOCwgODAsIDczLCAKKyAgICA2OSwgODUsIDgwLCA0NSwgODQsIDcyLCA3MywgNjksIDg1LCA4NCwgNzIsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgCisgICAgODMsIDgzLCA2NSwgNzgsIDcxLCA4MywgNzMsIDc5LCA4MywgMTI4LCA4MCwgNzMsIDY5LCA4NSwgODAsIDQ1LCA4MywgNzMsIAorICAgIDc5LCA4MywgNDUsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgODMsIDczLCAKKyAgICA3OSwgODMsIDQ1LCA4NCwgNzIsIDczLCA2OSwgODUsIDg0LCA3MiwgMTI4LCA4MCwgNzMsIDY5LCA4NSwgODAsIDQ1LCA4MywgCisgICAgNzMsIDc5LCA4MywgNDUsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA4MCwgNzMsIDY5LCA4NSwgODAsIDQ1LCA4MywgNzMsIAorICAgIDc5LCA4MywgNDUsIDc1LCA3MywgODksIDY5LCA3OSwgNzUsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgODMsIDczLCAKKyAgICA3OSwgODMsIDQ1LCA2NywgNzMsIDY5LCA4NSwgNjcsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgODIsIDczLCA2OSwgCisgICAgODUsIDc2LCA0NSwgODAsIDcyLCA3MywgNjksIDg1LCA4MCwgNzIsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgODIsIAorICAgIDczLCA2OSwgODUsIDc2LCAxMjgsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDc4LCA3MywgNjksIDg1LCA3OCwgMTI4LCA4MCwgCisgICAgNzMsIDY5LCA4NSwgODAsIDQ1LCA3NywgNzMsIDY5LCA4NSwgNzcsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgNzUsIAorICAgIDcyLCA3MywgNjksIDg1LCA3NSwgNzIsIDEyOCwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgNjcsIDczLCA2OSwgODUsIDY3LCAKKyAgICAxMjgsIDgwLCA3MywgNjksIDg1LCA4MCwgNDUsIDY3LCA3MiwgNzMsIDY5LCA4NSwgNjcsIDcyLCAxMjgsIDgwLCA3MywgNjksIAorICAgIDg1LCAyMDgsIDgwLCA3MywgNjksIDg0LCAxMjgsIDgwLCA3MywgNjksIDgwLCAxMjgsIDgwLCA3MywgNjksIDY5LCA4NCwgCisgICAgMTI4LCA4MCwgNzMsIDY5LCA2OSwgODEsIDEyOCwgODAsIDczLCA2OSwgNjcsIDY5LCAxMjgsIDgwLCA3MywgNjksIDEyOCwgCisgICAgODAsIDczLCA2NywgNzUsIDY5LCA4NCwgMTI4LCA4MCwgNzMsIDY3LCA3NSwgMTI4LCA4MCwgNzMsIDY1LCA4MywgODUsIDg0LCAKKyAgICA3OSwgODIsIDg1LCAxMjgsIDgwLCA3MywgNjUsIDgzLCA3NywgMTkzLCA4MCwgNzMsIDY1LCA3OCwgNzksIDEyOCwgODAsIAorICAgIDIwMSwgODAsIDcyLCA4NywgNjUsIDEyOCwgODAsIDcyLCA4NSwgODQsIDcyLCA2NSwgNzksIDEyOCwgODAsIDcyLCA4NSwgCisgICAgMjEwLCA4MCwgNzIsIDg1LCA3OCwgNzEsIDEyOCwgODAsIDcyLCA4MiwgNjUsIDgzLCA2OSwgMTI4LCA4MCwgNzIsIDc5LCAKKyAgICA3OCwgNjksIDgzLCAxMjgsIDgwLCA3MiwgNzksIDY5LCA3OCwgNzMsIDY3LCA3MywgNjUsIDIwNiwgODAsIDcyLCA3OSwgNjUsIAorICAgIDEyOCwgODAsIDcyLCA3OSwgMTI4LCA4MCwgNzIsIDIwNywgODAsIDcyLCA3OCwgNjUsIDY5LCAyMDMsIDgwLCA3MiwgNzMsIAorICAgIDc4LCA4NCwgNzIsIDg1LCAxMjgsIDgwLCA3MiwgNzMsIDc2LCA3OSwgODMsIDc5LCA4MCwgNzIsIDY5LCA4MiwgMjExLCA4MCwgCisgICAgNzIsIDczLCA3NiwgNzMsIDgwLCA4MCwgNzMsIDc4LCAxOTcsIDgwLCA3MiwgNzMsIDY5LCA4NSwgODAsIDcyLCA0NSwgODQsIAorICAgIDcyLCA3MywgNjksIDg1LCA4NCwgNzIsIDEyOCwgODAsIDcyLCA3MywgNjksIDg1LCA4MCwgNzIsIDQ1LCA4MywgNzMsIDc5LCAKKyAgICA4MywgMTI4LCA4MCwgNzIsIDczLCA2OSwgODUsIDgwLCA3MiwgNDUsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA4MCwgNzIsIAorICAgIDczLCA2OSwgODUsIDgwLCA3MiwgNDUsIDcyLCA3MywgNjksIDg1LCA3MiwgMTI4LCA4MCwgNzIsIDczLCA2OSwgODUsIDgwLCAKKyAgICAyMDAsIDgwLCA3MiwgNzMsIDEyOCwgODAsIDcyLCAyMDEsIDgwLCA3MiwgNjksIDY5LCAxMjgsIDgwLCA3MiwgNjksIDEyOCwgCisgICAgODAsIDcyLCA2NSwgODMsIDY5LCA0NSwgMTk4LCA4MCwgNzIsIDY1LCA4MywgNjksIDQ1LCAxOTQsIDgwLCA3MiwgNjUsIDgyLCAKKyAgICA4OSwgNzgsIDcxLCA2OSwgNjUsIDIwNCwgODAsIDcyLCA2NSwgODIsIDEyOCwgODAsIDcyLCA2NSwgNzgsIDEyOCwgODAsIAorICAgIDcyLCA2NSwgNzcsIDEyOCwgODAsIDcyLCA2NSwgNzMsIDgzLCA4NCwgNzksIDIxMSwgODAsIDcyLCA2NSwgNzEsIDgzLCA0NSwgCisgICAgODAsIDE5MywgODAsIDcyLCA2NSwgNjUsIDgyLCA3NSwgNjUsIDY1LCAxMjgsIDgwLCA3MiwgNjUsIDY1LCAxMjgsIDgwLCAKKyAgICA3MiwgNjUsIDEyOCwgODAsIDcxLCAxMjgsIDgwLCA3MCwgMTI4LCA4MCwgNjksIDg1LCA4OCwgMTI4LCA4MCwgNjksIDg1LCAKKyAgICA4NCwgNjUsIDY5LCAxMjgsIDgwLCA2OSwgODUsIDg0LCAxMjgsIDgwLCA2OSwgODQsIDY1LCA4MywgODQsIDc5LCA3NSwgNzksIAorICAgIDg1LCA3MCwgNzMsIDgzLCA3NywgNjUsIDEyOCwgODAsIDY5LCA4NCwgNjUsIDgzLCA4NCwgNzMsIDEyOCwgODAsIDY5LCA4NCwgCisgICAgNjUsIDgzLCA3NywgNjUsIDEyOCwgODAsIDY5LCA4NCwgNjUsIDc2LCA3NiwgNjksIDE5NiwgODAsIDY5LCA4MywgNzksIAorICAgIDEyOCwgODAsIDY5LCA4MywgMjA3LCA4MCwgNjksIDgzLCA3MiwgNTAsIDEyOCwgODAsIDY5LCA4MywgNjksIDg0LCAxOTMsIAorICAgIDgwLCA2OSwgMjExLCA4MCwgNjksIDgyLCA4NCwgNzIsIDIwNywgODAsIDY5LCA4MiwgODMsIDgwLCA2OSwgNjcsIDg0LCA3MywgCisgICAgODYsIDY5LCAxMjgsIDgwLCA2OSwgODIsIDgzLCA3OSwgNzgsIDY1LCAyMDQsIDgwLCA2OSwgODIsIDgzLCA3OSwgNzgsIAorICAgIDEyOCwgODAsIDY5LCA4MiwgODMsIDc5LCAyMDYsIDgwLCA2OSwgODIsIDgzLCA3MywgNjUsIDIwNiwgODAsIDY5LCA4MiwgCisgICAgODMsIDY5LCA4NiwgNjksIDgyLCA3MywgNzgsIDE5OSwgODAsIDY5LCA4MiwgODAsIDY5LCA3OCwgNjgsIDczLCA2NywgODUsIAorICAgIDc2LCA2NSwgODIsIDEyOCwgODAsIDY5LCA4MiwgODAsIDY5LCA3OCwgNjgsIDczLCA2NywgODUsIDc2LCA2NSwgMjEwLCA4MCwgCisgICAgNjksIDgyLCA3NywgNzMsIDg0LCA4NCwgNjksIDE5NiwgODAsIDY5LCA4MiwgNzcsIDY1LCA3OCwgNjksIDc4LCAyMTIsIDgwLCAKKyAgICA2OSwgODIsIDczLCA4MywgODAsIDc5LCA3NywgNjksIDc4LCA3MywgMTI4LCA4MCwgNjksIDgyLCA3MywgODMsIDgwLCA3OSwgCisgICAgNzcsIDY5LCA3OCwgMjAxLCA4MCwgNjksIDgyLCA3MCwgNzksIDgyLCA3NywgNzMsIDc4LCAxOTksIDgwLCA2OSwgODIsIDcwLCAKKyAgICA2OSwgNjcsIDg0LCA4NSwgMjA1LCA4MCwgNjksIDgyLCA3MCwgNjksIDY3LCA4NCwgNjUsIDEyOCwgODAsIDY5LCA4MiwgNzAsIAorICAgIDY5LCA2NywgODQsIDE5MywgODAsIDY5LCA4MiwgNjcsIDg1LCA4MywgODMsIDczLCA4NiwgNjksIDEyOCwgODAsIDY5LCA4MiwgCisgICAgNjcsIDY5LCA3OCwgMjEyLCA4MCwgNjksIDgwLCA2OSwgODQsIDEyOCwgODAsIDY5LCA4MCwgNjksIDIxMiwgODAsIDY5LCAKKyAgICA3OSwgODIsIDg0LCAyMDAsIDgwLCA2OSwgNzksIDgwLCA3NiwgNjksIDEyOCwgODAsIDY5LCA3OCwgODQsIDY1LCA4MywgNjksIAorICAgIDc3LCA2OSwgMTI4LCA4MCwgNjksIDc4LCA4NCwgNjUsIDcxLCA4MiwgNjUsIDc3LCAxMjgsIDgwLCA2OSwgNzgsIDg0LCA2NSwgCisgICAgNzEsIDc5LCA3OCwgMTI4LCA4MCwgNjksIDc4LCA4MywgODUsIDEyOCwgODAsIDY5LCA3OCwgODMsIDczLCA4NiwgMTk3LCAKKyAgICA4MCwgNjksIDc4LCA3OCwgMjE3LCA4MCwgNjksIDc4LCA3MywgNzIsIDczLCAxMjgsIDgwLCA2OSwgNzgsIDcxLCA4NSwgNzMsIAorICAgIDc4LCAxMjgsIDgwLCA2OSwgNzgsIDcxLCA3NSwgNjUsIDc2LCAxMjgsIDgwLCA2OSwgNzgsIDY5LCA4NCwgODIsIDY1LCA4NCwgCisgICAgNzMsIDc5LCA3OCwgMTI4LCA4MCwgNjksIDc4LCA2NywgNzMsIDc2LCAxMjgsIDgwLCA2OSwgNzYsIDY1LCA4MywgODQsIDc5LCAKKyAgICA3OCwgMTI4LCA4MCwgNjksIDc2LCA2NSwgODMsIDg0LCA3OSwgMjA2LCA4MCwgNjksIDczLCA4NCwgNzIsIDEyOCwgODAsIAorICAgIDY5LCA3MiwgNjksIDcyLCAxMjgsIDgwLCA2OSwgNzIsIDY5LCAyMDAsIDgwLCA2OSwgNzIsIDEyOCwgODAsIDY5LCAyMDAsIAorICAgIDgwLCA2OSwgNjksIDkwLCA3MywgMTI4LCA4MCwgNjksIDY5LCA4MywgNzIsIDczLCAxMjgsIDgwLCA2OSwgNjksIDgwLCAKKyAgICAxMjgsIDgwLCA2OSwgNjksIDc3LCAxMjgsIDgwLCA2OSwgNjksIDEyOCwgODAsIDY5LCA2OCwgNjksIDgzLCA4NCwgODIsIAorICAgIDczLCA2NSwgNzgsIDgzLCAxMjgsIDgwLCA2OSwgNjgsIDY5LCA4MywgODQsIDgyLCA3MywgNjUsIDc4LCAxMjgsIDgwLCA2OSwgCisgICAgNjgsIDY5LCA4MywgODQsIDY1LCA3NiwgMTI4LCA4MCwgNjksIDY4LCA2OSwgODMsIDg0LCA2NSwgMjA0LCA4MCwgNjksIDY4LCAKKyAgICA2NSwgMjA0LCA4MCwgNjksIDY1LCA2NywgNzIsIDEyOCwgODAsIDY5LCA2NSwgNjcsIDY5LCAxMjgsIDgwLCA2OSwgNjUsIAorICAgIDY3LCAxOTcsIDgwLCA2OCwgNzAsIDEyOCwgODAsIDY4LCAxMjgsIDgwLCA2NywgMTI4LCA4MCwgNjUsIDkwLCA2OSwgODIsIAorICAgIDEyOCwgODAsIDY1LCA4OSwgNjksIDgyLCA3OSwgNzUsIDEyOCwgODAsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgCisgICAgODAsIDY1LCA4OSwgMTI4LCA4MCwgNjUsIDg4LCAxMjgsIDgwLCA2NSwgODcsIDc4LCAxMjgsIDgwLCA2NSwgMjE1LCA4MCwgCisgICAgNjUsIDg2LCA3MywgODksIDY1LCA3OCwgNzMsIDEyOCwgODAsIDY1LCA4NSwgMTI4LCA4MCwgNjUsIDg0LCA4NCwgNjksIDgyLCAKKyAgICA3OCwgMTI4LCA4MCwgNjUsIDg0LCA3MiwgNjUsIDc3LCA2NSwgODMsIDY1LCA4NCwgMTI4LCA4MCwgNjUsIDg0LCAyMDAsIAorICAgIDgwLCA2NSwgODQsIDY1LCA3NSwgMTI4LCA4MCwgNjUsIDg0LCA2NSwgNzIsIDEyOCwgODAsIDY1LCA4NCwgMTI4LCA4MCwgCisgICAgNjUsIDgzLCA4NSwgODEsIDEyOCwgODAsIDY1LCA4MywgODMsIDgwLCA3OSwgODIsIDIxMiwgODAsIDY1LCA4MywgODMsIDczLCAKKyAgICA4NiwgNjksIDQ1LCA4MCwgODUsIDc2LCA3NiwgNDUsIDg1LCA4MCwgNDUsIDc5LCA4NSwgODQsIDgwLCA4NSwgMjEyLCA4MCwgCisgICAgNjUsIDgzLCA4MywgNzMsIDg2LCA2OSwgNDUsIDgwLCA4NSwgNzYsIDc2LCA0NSwgNjgsIDc5LCA4NywgNzgsIDQ1LCA3OSwgCisgICAgODUsIDg0LCA4MCwgODUsIDIxMiwgODAsIDY1LCA4MywgNzIsIDg0LCA2NSwgMTI4LCA4MCwgNjUsIDgzLCA3MiwgNjUsIDY5LCAKKyAgICAxMjgsIDgwLCA2NSwgODMsIDY5LCA4MSwgMTI4LCA4MCwgNjUsIDgzLCA2NSwgNzgsIDcxLCA2NSwgMjA2LCA4MCwgNjUsIAorICAgIDgyLCA4NSwgNzcsIDEyOCwgODAsIDY1LCA4MiwgODQsIDIxNywgODAsIDY1LCA4MiwgODQsIDc4LCA2OSwgODIsIDgzLCA3MiwgCisgICAgNzMsIDIwOCwgODAsIDY1LCA4MiwgODQsIDczLCA2NSwgNzYsIDc2LCA4OSwgNDUsIDgyLCA2OSwgNjcsIDg5LCA2NywgNzYsIAorICAgIDY5LCAxOTYsIDgwLCA2NSwgODIsIDg0LCA3MywgNjUsIDIwNCwgODAsIDY1LCA4MiwgODQsIDcyLCA3MywgNjUsIDIwNiwgCisgICAgODAsIDY1LCA4MiwgMjEyLCA4MCwgNjUsIDgyLCA3MywgNjcsIDcyLCA3OSwgNzgsIDEyOCwgODAsIDY1LCA4MiwgNjksIDgzLCAKKyAgICA4NCwgNzMsIDcxLCA3NywgNjksIDc4LCA3OSwgMjA2LCA4MCwgNjUsIDgyLCA2OSwgODIsIDY5LCA3OCwgMTI4LCA4MCwgNjUsIAorICAgIDgyLCA2OSwgNzgsIDg0LCA3MiwgNjksIDgzLCA3MywgODMsIDEyOCwgODAsIDY1LCA4MiwgNjksIDc4LCA4NCwgNzIsIDY5LCAKKyAgICA4MywgNzMsIDIxMSwgODAsIDY1LCA4MiwgNjUsIDgwLCA3MiwgODIsIDY1LCA4MywgMTk3LCA4MCwgNjUsIDgyLCA2NSwgNzYsIAorICAgIDc2LCA2OSwgNzYsIDc5LCA3MSwgODIsIDY1LCA3NywgMTI4LCA4MCwgNjUsIDgyLCA2NSwgNzYsIDc2LCA2OSwgNzYsIDEyOCwgCisgICAgODAsIDY1LCA4MiwgNjUsIDc2LCA3NiwgNjksIDIwNCwgODAsIDY1LCA4MiwgNjUsIDc1LCA3NiwgNzMsIDg0LCA3MywgNzUsIAorICAgIDczLCAxMjgsIDgwLCA2NSwgODIsIDY1LCA3NSwgNzYsIDczLCA4NCwgNzMsIDc1LCAyMDEsIDgwLCA2NSwgODIsIDY1LCA3NSwgCisgICAgNjUsIDc2LCA2OSwgODMsIDc3LCAxOTMsIDgwLCA2NSwgODIsIDY1LCA3MSwgODIsIDY1LCA4MCwgNzIsIDc5LCA4MywgMTI4LCAKKyAgICA4MCwgNjUsIDgyLCA2NSwgNzEsIDgyLCA2NSwgODAsIDcyLCAxMjgsIDgwLCA2NSwgODIsIDY1LCA3MSwgODIsIDY1LCA4MCwgCisgICAgMjAwLCA4MCwgNjUsIDgyLCA2NSwgMTI4LCA4MCwgNjUsIDgyLCAxMjgsIDgwLCA2NSwgODAsIDg5LCA4MiwgODUsIDgzLCAKKyAgICAxMjgsIDgwLCA2NSwgODAsIDY5LCA4MiwgNjcsIDc2LCA3MywgODAsIDEyOCwgODAsIDY1LCA4MCwgNjksIDIxMCwgODAsIAorICAgIDY1LCA4MCwgMTI4LCA4MCwgNjUsIDIwOCwgODAsIDY1LCAyMDcsIDgwLCA2NSwgNzgsIDg5LCA4NSwgNzUsIDg1LCAxMjgsIAorICAgIDgwLCA2NSwgNzgsIDg5LCA3MywgNzUsIDg1LCAxMjgsIDgwLCA2NSwgNzgsIDg5LCA2OSwgNjcsIDY5LCA3NSwgMTI4LCA4MCwgCisgICAgNjUsIDc4LCA4OSwgNjUsIDc4LCA3MSwgNzEsIDY1LCAxMjgsIDgwLCA2NSwgNzgsIDg5LCA2NSwgNzUsIDgyLCA2NSwgMTI4LCAKKyAgICA4MCwgNjUsIDc4LCA4NCwgNzMsIDEyOCwgODAsIDY1LCA3OCwgODMsIDczLCA3OSwgODMsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgCisgICAgODAsIDEyOCwgODAsIDY1LCA3OCwgODMsIDczLCA3OSwgODMsIDQ1LCA3NSwgNjUsIDgwLCA4OSwgNjksIDc5LCA4NSwgNzgsIAorICAgIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA4MCwgNjUsIDc4LCA3OSwgNzgsIDcxLCA3OSwgNzgsIDY1LCA3OCwgMTI4LCA4MCwgCisgICAgNjUsIDc4LCA3OSwgNzYsIDc5LCA3OCwgNzEsIDEyOCwgODAsIDY1LCA3OCwgNzEsIDg3LCA3MywgODMsIDY1LCA2OCwgMTI4LCAKKyAgICA4MCwgNjUsIDc4LCA3MSwgODIsIDY1LCA3OCwgNzEsIDc1LCA2OSwgODAsIDEyOCwgODAsIDY1LCA3OCwgNzEsIDc5LCA3NiwgCisgICAgNjUsIDg0LCAxMjgsIDgwLCA2NSwgNzgsIDcxLCA3NiwgNzksIDc4LCA3MSwgMTI4LCA4MCwgNjUsIDc4LCA3MSwgNzYsIDY1LCAKKyAgICA4OSwgNjUsIDgyLCAxMjgsIDgwLCA2NSwgNzgsIDcxLCA3NSwgNzksIDc4LCAxMjgsIDgwLCA2NSwgNzgsIDcxLCA3NSwgNjUsIAorICAgIDg0LCAxMjgsIDgwLCA2NSwgNzgsIDcxLCA3MiwgODUsIDc2LCA4NSwgMTI4LCA4MCwgNjUsIDc4LCA3MSwgMTI4LCA4MCwgCisgICAgNjUsIDc4LCA2OSwgODUsIDc2LCA2OSwgODUsIDc4LCA3MSwgMTI4LCA4MCwgNjUsIDc4LCA2OCwgMTkzLCA4MCwgNjUsIDc4LCAKKyAgICA2NSwgNjksIDc2LCA2NSwgNjksIDc4LCA3MSwgMTI4LCA4MCwgNjUsIDc4LCAxMjgsIDgwLCA2NSwgNzcsIDg1LCA3OCwgNzEsIAorICAgIDc1LCA2NSwgNzIsIDEyOCwgODAsIDY1LCA3NywgODUsIDY4LCA4MCwgNzksIDY4LCAxMjgsIDgwLCA2NSwgNzcsIDgzLCA3MiwgCisgICAgNjUsIDY5LCAxMjgsIDgwLCA2NSwgNzcsIDgwLCA3MiwgODksIDc2LCA3MywgNjUsIDIwNiwgODAsIDY1LCA3NywgNzMsIDc4LCAKKyAgICA3MSwgNzUsIDY1LCA3NiwgMTI4LCA4MCwgNjUsIDc3LCA2OSwgODAsIDY5LCA4NCwgMTI4LCA4MCwgNjUsIDc3LCA2OSwgNzgsIAorICAgIDY5LCA3OCwgNzEsIDEyOCwgODAsIDY1LCA3NywgNjUsIDY4LCA2NSwgMTI4LCA4MCwgNjUsIDc3LCA2NSwgNjUsIDY5LCA3MiwgCisgICAgMTI4LCA4MCwgNjUsIDc2LCA4NSwgODQsIDY1LCAxMjgsIDgwLCA2NSwgNzYsIDc5LCA2NywgNzIsIDc1LCA2NSwgMTI4LCAKKyAgICA4MCwgNjUsIDc2LCAyMDUsIDgwLCA2NSwgNzYsIDc2LCA2NSwgODcsIDY1LCAxMjgsIDgwLCA2NSwgNzYsIDc2LCA2NSwgODMsIAorICAgIDEyOCwgODAsIDY1LCA3NiwgNjksIDg0LCA4NCwgNjksIDEyOCwgODAsIDY1LCA3NiwgNjUsIDg1LCA3OCwgMTk5LCA4MCwgCisgICAgNjUsIDc2LCA2NSwgODQsIDY1LCA3NiwgNzMsIDkwLCA2OSwgMTk2LCA4MCwgNjUsIDc2LCA2NSwgODQsIDY1LCA3NiwgNzMsIAorICAgIDkwLCA2NSwgODQsIDczLCA3OSwgNzgsIDEyOCwgODAsIDY1LCA3NiwgNjUsIDg0LCA2NSwgMjA0LCA4MCwgNjUsIDc1LCA4MCwgCisgICAgNjUsIDIwMywgODAsIDY1LCA3MywgODksIDY1LCA3OCwgNzgsIDc5LCA3MywgMTI4LCA4MCwgNjUsIDczLCA4MiwgODQsIDcyLCAKKyAgICA4MiwgNjUsIDEyOCwgODAsIDY1LCA3MywgODIsIDY5LCAxOTYsIDgwLCA2NSwgNzMsIDEyOCwgODAsIDY1LCA3MiwgNzYsIAorICAgIDY1LCA4NiwgMjAxLCA4MCwgNjUsIDcyLCAxMjgsIDgwLCA2NSwgNzEsIDY5LCA4MiwgMTI4LCA4MCwgNjUsIDcxLCAxOTcsIAorICAgIDgwLCA2NSwgNjgsIDc3LCAxOTMsIDgwLCA2NSwgNjgsIDY4LCA3MywgNzgsIDE5OSwgODAsIDY1LCA2OCwgMTkzLCA4MCwgCisgICAgNjUsIDY4LCAxMjgsIDgwLCA2NSwgNjcsIDc1LCA3MywgNzgsIDcxLCAxMjgsIDgwLCA2NSwgNjcsIDc1LCA2NSwgNzEsIDY5LCAKKyAgICAxMjgsIDgwLCA2NSwgNjUsIDg0LCA4NSwgMTI4LCA4MCwgNjUsIDY1LCA4MywgNjksIDc4LCA4NCwgNzksIDEyOCwgODAsIAorICAgIDY1LCA2NSwgODIsIDY1LCA2OSwgMTI4LCA4MCwgNjUsIDY1LCA3NywgMTI4LCA4MCwgNjUsIDY1LCA3MywgMTI4LCA4MCwgCisgICAgNjUsIDY1LCA0NSwgODAsIDczLCA3NiwgNzYsIDY1LCAxMjgsIDgwLCA2NSwgNjUsIDEyOCwgODAsIDUwLCAxMjgsIDgwLCAKKyAgICA0OCwgNDksIDQ5LCAxMjgsIDgwLCA0OCwgNDksIDQ4LCAxMjgsIDgwLCA0OCwgNDgsIDU3LCAxMjgsIDgwLCA0OCwgNDgsIAorICAgIDU2LCAxMjgsIDgwLCA0OCwgNDgsIDU1LCAxMjgsIDgwLCA0OCwgNDgsIDU0LCAxMjgsIDgwLCA0OCwgNDgsIDUzLCAxMjgsIAorICAgIDgwLCA0OCwgNDgsIDUyLCAxMjgsIDgwLCA0OCwgNDgsIDUxLCA2NSwgMTI4LCA4MCwgNDgsIDQ4LCA1MSwgMTI4LCA4MCwgCisgICAgNDgsIDQ4LCA1MCwgMTI4LCA4MCwgNDgsIDQ4LCA0OSwgNjUsIDEyOCwgODAsIDQ4LCA0OCwgNDksIDEyOCwgNzksIDg5LCAKKyAgICA4MiwgNjUsIDc4LCA3MywgODMsIDc3LCAxOTMsIDc5LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNzksIDg4LCA3MywgNjUsIAorICAgIDEyOCwgNzksIDg4LCA3MywgMTkzLCA3OSwgODgsIDY5LCA3MywgNjUsIDIwMSwgNzksIDg4LCA2OSwgNzMsIDE5MywgNzksIAorICAgIDg2LCA2OSwgODIsIDgyLCA3MywgNjgsIDY5LCAxMjgsIDc5LCA4NiwgNjksIDgyLCA3NiwgNzksIDc4LCAxOTksIDc5LCA4NiwgCisgICAgNjksIDgyLCA3NiwgNzMsIDc4LCA2OSwgMTI4LCA3OSwgODYsIDY5LCA4MiwgNzYsIDY1LCA4OSwgMTI4LCA3OSwgODYsIDY5LCAKKyAgICA4MiwgNzYsIDY1LCA4MCwgODAsIDczLCA3OCwgMTk5LCA3OSwgODYsIDY5LCA4MiwgNzYsIDY1LCA3MywgNjgsIDEyOCwgNzksIAorICAgIDg2LCA2OSwgODIsIDY2LCA2NSwgODIsIDEyOCwgNzksIDg2LCA2NSwgMjA0LCA3OSwgODYsIDEyOCwgNzksIDg1LCA4NCwgCisgICAgNzYsIDczLCA3OCwgNjksIDE5NiwgNzksIDg1LCA4NCwgNzYsIDczLCA3OCwgNjksIDEyOCwgNzksIDg1LCA4NCwgNjksIAorICAgIDIxMCwgNzksIDg1LCA4NCwgNjYsIDc5LCAyMTYsIDc5LCA4NSwgNzgsIDc1LCA3MywgMTkzLCA3OSwgODUsIDc4LCA2NywgCisgICAgNjksIDEyOCwgNzksIDg1LCA3OCwgNjcsIDE5NywgNzksIDg0LCA4NSwgMTI4LCA3OSwgODQsIDg0LCA2NSwgODYsIDE5MywgCisgICAgNzksIDg0LCA4NCwgMTI4LCA3OSwgODQsIDcyLCA2NSwgNzYsIDY1LCAyMDYsIDc5LCA4NCwgNzIsIDY1LCA3NiwgMTI4LCAKKyAgICA3OSwgODMsIDc3LCA2NSwgNzgsIDg5LCAxOTMsIDc5LCA4MywgNjcsIDEyOCwgNzksIDgyLCA4NCwgNzIsIDc5LCA3MSwgNzksIAorICAgIDc4LCA2NSwgMjA0LCA3OSwgODIsIDg0LCA3MiwgNzksIDY4LCA3OSwgMjE2LCA3OSwgODIsIDc4LCA2NSwgODQsIDE5NywgCisgICAgNzksIDgyLCA3OCwgNjUsIDc3LCA2OSwgNzgsIDg0LCAxMjgsIDc5LCA4MiwgNzgsIDY1LCA3NywgNjksIDc4LCAyMTIsIDc5LCAKKyAgICA4MiwgNzUsIDcyLCA3OSwgMjA2LCA3OSwgODIsIDczLCA3MSwgNzMsIDc4LCA2NSwgMjA0LCA3OSwgODIsIDczLCA3MSwgNzMsIAorICAgIDc4LCAxMjgsIDc5LCA4MiwgNjksIDQ1LCA1MCwgMTI4LCA3OSwgODIsIDY4LCA3MywgNzgsIDY1LCAyMDQsIDc5LCA4MiwgCisgICAgNjgsIDY5LCAyMTAsIDc5LCA4MiwgNjcsIDcyLCA3MywgNjgsIDEyOCwgNzksIDgyLCA2NSwgNzgsIDcxLCAxOTcsIDc5LCAKKyAgICA4MCwgODQsIDczLCA3OSwgMjA2LCA3OSwgODAsIDg0LCA3MywgNjcsIDY1LCAyMDQsIDc5LCA4MCwgODAsIDgyLCA2OSwgODMsIAorICAgIDgzLCA3MywgNzksIDc4LCAxMjgsIDc5LCA4MCwgODAsIDc5LCA4MywgNzMsIDg0LCA3MywgNzksIDc4LCAxMjgsIDc5LCA4MCwgCisgICAgODAsIDc5LCA4MywgNzMsIDc4LCAxOTksIDc5LCA4MCwgODAsIDc5LCA4MywgNjksIDEyOCwgNzksIDgwLCA3MiwgNzMsIDg1LCAKKyAgICA2NywgNzIsIDg1LCA4MywgMTI4LCA3OSwgODAsIDY5LCA4MiwgNjUsIDg0LCA3OSwgODIsIDEyOCwgNzksIDgwLCA2OSwgODIsIAorICAgIDY1LCA4NCwgNzksIDIxMCwgNzksIDgwLCA2OSwgODIsIDY1LCA4NCwgNzMsIDc4LCAxOTksIDc5LCA4MCwgNjksIDc4LCA3MywgCisgICAgNzgsIDE5OSwgNzksIDgwLCA2OSwgNzgsIDQ1LCA4MCwgMTI4LCA3OSwgODAsIDY5LCA3OCwgNDUsIDc5LCA4NSwgODQsIDc2LCAKKyAgICA3MywgNzgsIDY5LCAxOTYsIDc5LCA4MCwgNjksIDc4LCA0NSwgNzIsIDY5LCA2NSwgNjgsIDY5LCAxOTYsIDc5LCA4MCwgNjksIAorICAgIDc4LCA0NSwgNjcsIDczLCA4MiwgNjcsIDg1LCA3MywgODQsIDQ1LCA3OSwgODUsIDg0LCA4MCwgODUsIDIxMiwgNzksIDc5LCAKKyAgICA5MCwgNjksIDEyOCwgNzksIDc5LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNzksIDc5LCA4NSwgMTI4LCA3OSwgNzksIAorICAgIDc3LCA4NSwgMTI4LCA3OSwgNzksIDY5LCAxMjgsIDc5LCA3OSwgNjYsIDc5LCA3OSwgNzAsIDczLCA3NiwgNzMsIDEyOCwgCisgICAgNzksIDc4LCA4NSwgMTI4LCA3OSwgNzgsIDgzLCA4NSwgMTI4LCA3OSwgNzgsIDc4LCAxMjgsIDc5LCA3OCwgNzUsIDY1LCAKKyAgICA4MiwgMTI4LCA3OSwgNzgsIDY5LCA4MywgNjksIDc2LCA3MCwgMTI4LCA3OSwgNzgsIDY5LCA0NSwgODcsIDY1LCAyMTcsIAorICAgIDc5LCA3OCwgNjksIDQ1LCA4NCwgNzIsIDczLCA4MiwgODQsIDg5LCAxMjgsIDc5LCA3OCwgNjksIDQ1LCA3NiwgNzMsIDc4LCAKKyAgICAxOTcsIDc5LCA3OCwgNjcsIDc5LCA3NywgNzMsIDc4LCAxOTksIDc5LCA3OCwgNjUsIDgwLCAxMjgsIDc5LCA3NywgNzMsIAorICAgIDgzLCA4MywgNzMsIDc5LCAyMDYsIDc5LCA3NywgNzMsIDY3LCA4MiwgNzksIDc4LCAxMjgsIDc5LCA3NywgNzMsIDY3LCA4MiwgCisgICAgNzksIDIwNiwgNzksIDc3LCA2OSwgNzEsIDY1LCAxMjgsIDc5LCA3NywgNjksIDcxLCAxOTMsIDc5LCA3NywgNjUsIDc2LCAKKyAgICA3OSwgNzgsIDEyOCwgNzksIDc2LCA3MywgODYsIDY5LCAxMjgsIDc5LCA3NiwgNzMsIDcxLCA3OSwgMjA2LCA3OSwgNzYsIAorICAgIDY4LCAxMjgsIDc5LCA3NSwgODQsIDIwNywgNzksIDc1LCA2NSwgODIsIDY1LCAxMjgsIDc5LCA3NSwgNjUsIDgyLCAxOTMsIAorICAgIDc5LCA3NCwgNzMsIDY2LCA4NywgNjUsIDIxNywgNzksIDc0LCA2OSwgNzksIDc4LCAxMjgsIDc5LCA3MywgNzYsIDEyOCwgCisgICAgNzksIDcyLCA3NywgMTI4LCA3OSwgNzIsIDIwNSwgNzksIDcxLCA4MiwgNjksIDEyOCwgNzksIDcxLCA3OSwgNzgsIDY5LCAKKyAgICA3NSwgMTI4LCA3OSwgNzEsIDc5LCA3OCwgNjksIDIwMywgNzksIDcxLCA3MiwgNjUsIDIwNSwgNzksIDcwLCA3MCwgNzMsIAorICAgIDY3LCA2OSwgODIsIDEyOCwgNzksIDcwLCA3MCwgNzMsIDY3LCA2OSwgMTI4LCA3OSwgNzAsIDcwLCA3MywgNjcsIDE5NywgCisgICAgNzksIDcwLCA3MCwgMTI4LCA3OSwgNjksIDg5LCAxMjgsIDc5LCA2OSwgNzUsIDEyOCwgNzksIDY4LCA2OSwgNzgsIDEyOCwgCisgICAgNzksIDY4LCAxOTYsIDc5LCA2NywgODQsIDc5LCA4MCwgODUsIDgzLCAxMjgsIDc5LCA2NywgODQsIDc5LCA2NiwgNjksIDgyLCAKKyAgICAxMjgsIDc5LCA2NywgODQsIDY5LCAyMTIsIDc5LCA2NywgMjEwLCA3OSwgNjcsIDc2LCA3OSwgNjcsIDc1LCAxMjgsIDc5LCAKKyAgICA2NywgNjcsIDc2LCA4NSwgODMsIDczLCA3OSwgNzgsIDEyOCwgNzksIDY2LCA4MywgODQsIDgyLCA4NSwgNjcsIDg0LCA3MywgCisgICAgNzksIDc4LCAxMjgsIDc5LCA2NiwgNzksIDc2LCAyMTEsIDc5LCA2NiwgNzksIDIwNCwgNzksIDY2LCA3OSwgNzAsIDczLCAKKyAgICA3NiwgNzMsIDEyOCwgNzksIDY2LCA3NiwgNzMsIDgxLCA4NSwgMTk3LCA3OSwgNjYsIDc0LCA2OSwgNjcsIDIxMiwgNzksIAorICAgIDY2LCA2OSwgNzYsIDg1LCA4MywgMTI4LCA3OSwgNjYsIDY5LCA3NiwgNzksIDgzLCAxMjgsIDc5LCA2NiwgMTI4LCA3OSwgCisgICAgNjUsIDg5LCAxMjgsIDc5LCA2NSwgNzUsIDEyOCwgNzksIDY1LCA2NiwgNzksIDY1LCA3MCwgNzMsIDc2LCA3MywgMTI4LCAKKyAgICA3OSwgMTkzLCA3OSwgNDgsIDUzLCA0OSwgMTI4LCA3OSwgNDgsIDUzLCA0OCwgNjYsIDEyOCwgNzksIDQ4LCA1MywgNDgsIAorICAgIDY1LCAxMjgsIDc5LCA0OCwgNTMsIDQ4LCAxMjgsIDc5LCA0OCwgNTIsIDU3LCAxMjgsIDc5LCA0OCwgNTIsIDU2LCAxMjgsIAorICAgIDc5LCA0OCwgNTIsIDU1LCAxMjgsIDc5LCA0OCwgNTIsIDU0LCAxMjgsIDc5LCA0OCwgNTIsIDUzLCAxMjgsIDc5LCA0OCwgCisgICAgNTIsIDUyLCAxMjgsIDc5LCA0OCwgNTIsIDUxLCAxMjgsIDc5LCA0OCwgNTIsIDUwLCAxMjgsIDc5LCA0OCwgNTIsIDQ5LCAKKyAgICAxMjgsIDc5LCA0OCwgNTIsIDQ4LCAxMjgsIDc5LCA0OCwgNTEsIDU3LCAxMjgsIDc5LCA0OCwgNTEsIDU2LCAxMjgsIDc5LCAKKyAgICA0OCwgNTEsIDU1LCAxMjgsIDc5LCA0OCwgNTEsIDU0LCA2OCwgMTI4LCA3OSwgNDgsIDUxLCA1NCwgNjcsIDEyOCwgNzksIAorICAgIDQ4LCA1MSwgNTQsIDY2LCAxMjgsIDc5LCA0OCwgNTEsIDU0LCA2NSwgMTI4LCA3OSwgNDgsIDUxLCA1NCwgMTI4LCA3OSwgCisgICAgNDgsIDUxLCA1MywgMTI4LCA3OSwgNDgsIDUxLCA1MiwgMTI4LCA3OSwgNDgsIDUxLCA1MSwgNjUsIDEyOCwgNzksIDQ4LCAKKyAgICA1MSwgNTEsIDEyOCwgNzksIDQ4LCA1MSwgNTAsIDEyOCwgNzksIDQ4LCA1MSwgNDksIDEyOCwgNzksIDQ4LCA1MSwgNDgsIAorICAgIDY1LCAxMjgsIDc5LCA0OCwgNTEsIDQ4LCAxMjgsIDc5LCA0OCwgNTAsIDU3LCA2NSwgMTI4LCA3OSwgNDgsIDUwLCA1NywgCisgICAgMTI4LCA3OSwgNDgsIDUwLCA1NiwgMTI4LCA3OSwgNDgsIDUwLCA1NSwgMTI4LCA3OSwgNDgsIDUwLCA1NCwgMTI4LCA3OSwgCisgICAgNDgsIDUwLCA1MywgNjUsIDEyOCwgNzksIDQ4LCA1MCwgNTMsIDEyOCwgNzksIDQ4LCA1MCwgNTIsIDY1LCAxMjgsIDc5LCAKKyAgICA0OCwgNTAsIDUyLCAxMjgsIDc5LCA0OCwgNTAsIDUxLCAxMjgsIDc5LCA0OCwgNTAsIDUwLCAxMjgsIDc5LCA0OCwgNTAsIAorICAgIDQ5LCAxMjgsIDc5LCA0OCwgNTAsIDQ4LCA2NSwgMTI4LCA3OSwgNDgsIDUwLCA0OCwgMTI4LCA3OSwgNDgsIDQ5LCA1NywgCisgICAgNjUsIDEyOCwgNzksIDQ4LCA0OSwgNTcsIDEyOCwgNzksIDQ4LCA0OSwgNTYsIDEyOCwgNzksIDQ4LCA0OSwgNTUsIDEyOCwgCisgICAgNzksIDQ4LCA0OSwgNTQsIDEyOCwgNzksIDQ4LCA0OSwgNTMsIDEyOCwgNzksIDQ4LCA0OSwgNTIsIDEyOCwgNzksIDQ4LCAKKyAgICA0OSwgNTEsIDEyOCwgNzksIDQ4LCA0OSwgNTAsIDEyOCwgNzksIDQ4LCA0OSwgNDksIDEyOCwgNzksIDQ4LCA0OSwgNDgsIAorICAgIDY3LCAxMjgsIDc5LCA0OCwgNDksIDQ4LCA2NiwgMTI4LCA3OSwgNDgsIDQ5LCA0OCwgNjUsIDEyOCwgNzksIDQ4LCA0OSwgCisgICAgNDgsIDEyOCwgNzksIDQ4LCA0OCwgNTcsIDEyOCwgNzksIDQ4LCA0OCwgNTYsIDEyOCwgNzksIDQ4LCA0OCwgNTUsIDEyOCwgCisgICAgNzksIDQ4LCA0OCwgNTQsIDcwLCAxMjgsIDc5LCA0OCwgNDgsIDU0LCA2OSwgMTI4LCA3OSwgNDgsIDQ4LCA1NCwgNjgsIAorICAgIDEyOCwgNzksIDQ4LCA0OCwgNTQsIDY3LCAxMjgsIDc5LCA0OCwgNDgsIDU0LCA2NiwgMTI4LCA3OSwgNDgsIDQ4LCA1NCwgCisgICAgNjUsIDEyOCwgNzksIDQ4LCA0OCwgNTQsIDEyOCwgNzksIDQ4LCA0OCwgNTMsIDY1LCAxMjgsIDc5LCA0OCwgNDgsIDUzLCAKKyAgICAxMjgsIDc5LCA0OCwgNDgsIDUyLCAxMjgsIDc5LCA0OCwgNDgsIDUxLCAxMjgsIDc5LCA0OCwgNDgsIDUwLCAxMjgsIDc5LCAKKyAgICA0OCwgNDgsIDQ5LCA2NSwgMTI4LCA3OSwgNDgsIDQ4LCA0OSwgMTI4LCA3OSwgNDUsIDg5LCA2OSwgMTI4LCA3OSwgNDUsIAorICAgIDc5LCA0NSwgNzMsIDEyOCwgNzksIDQ1LCA2OSwgMTI4LCA3OCwgOTAsIDg5LCA4OCwgMTI4LCA3OCwgOTAsIDg5LCA4NCwgCisgICAgMTI4LCA3OCwgOTAsIDg5LCA4MiwgODgsIDEyOCwgNzgsIDkwLCA4OSwgODIsIDEyOCwgNzgsIDkwLCA4OSwgODAsIDEyOCwgCisgICAgNzgsIDkwLCA4OSwgMTI4LCA3OCwgOTAsIDg1LCA4OCwgMTI4LCA3OCwgOTAsIDg1LCA4MiwgODgsIDEyOCwgNzgsIDkwLCAKKyAgICA4NSwgODIsIDEyOCwgNzgsIDkwLCA4NSwgODEsIDEyOCwgNzgsIDkwLCA4NSwgODAsIDEyOCwgNzgsIDkwLCA4NSwgNzksIAorICAgIDg4LCAxMjgsIDc4LCA5MCwgODUsIDc5LCAxMjgsIDc4LCA5MCwgODUsIDIwNiwgNzgsIDkwLCA4NSwgMTI4LCA3OCwgOTAsIAorICAgIDc5LCA4OCwgMTI4LCA3OCwgOTAsIDc5LCA4MCwgMTI4LCA3OCwgOTAsIDczLCA4OCwgMTI4LCA3OCwgOTAsIDczLCA4NCwgCisgICAgMTI4LCA3OCwgOTAsIDczLCA4MCwgMTI4LCA3OCwgOTAsIDczLCA2OSwgODgsIDEyOCwgNzgsIDkwLCA3MywgNjksIDgwLCAKKyAgICAxMjgsIDc4LCA5MCwgNzMsIDY5LCAxMjgsIDc4LCA5MCwgNzMsIDEyOCwgNzgsIDkwLCA2OSwgODgsIDEyOCwgNzgsIDkwLCAKKyAgICA2OSwgODUsIDc3LCAxMjgsIDc4LCA5MCwgNjksIDEyOCwgNzgsIDkwLCA2NSwgODgsIDEyOCwgNzgsIDkwLCA2NSwgODQsIAorICAgIDEyOCwgNzgsIDkwLCA2NSwgODEsIDEyOCwgNzgsIDkwLCA2NSwgODAsIDEyOCwgNzgsIDkwLCA2NSwgMTI4LCA3OCwgOTAsIAorICAgIDE5MywgNzgsIDg5LCA4NywgNjUsIDEyOCwgNzgsIDg5LCA4NSwgODgsIDEyOCwgNzgsIDg5LCA4NSwgODUsIDEyOCwgNzgsIAogICAgIDg5LCA4NSwgODQsIDEyOCwgNzgsIDg5LCA4NSwgODAsIDEyOCwgNzgsIDg5LCA4NSwgNzksIDg4LCAxMjgsIDc4LCA4OSwgCiAgICAgODUsIDc5LCA4MCwgMTI4LCA3OCwgODksIDg1LCA3OSwgMTI4LCA3OCwgODksIDg1LCA2OSwgMTI4LCA3OCwgODksIDg1LCAKICAgICAxMjgsIDc4LCA4OSwgNzksIDg4LCAxMjgsIDc4LCA4OSwgNzksIDg0LCAxMjgsIDc4LCA4OSwgNzksIDgwLCAxMjgsIDc4LCAKICAgICA4OSwgNzksIDc5LCAxMjgsIDc4LCA4OSwgNzksIDY1LCAxMjgsIDc4LCA4OSwgNzksIDEyOCwgNzgsIDg5LCA3NCwgNjUsIAogICAgIDEyOCwgNzgsIDg5LCA3MywgODgsIDEyOCwgNzgsIDg5LCA3MywgODQsIDEyOCwgNzgsIDg5LCA3MywgMjEyLCA3OCwgODksIAogICAgIDczLCAyMTEsIDc4LCA4OSwgNzMsIDIxMCwgNzgsIDg5LCA3MywgODAsIDEyOCwgNzgsIDg5LCA3MywgNzgsIDQ1LCA2OCwgCi0gICAgNzksIDEyOCwgNzgsIDg5LCA3MywgNjksIDg4LCAxMjgsIDc4LCA4OSwgNzMsIDY5LCA4NCwgMTI4LCA3OCwgODksIDczLCAKLSAgICA2OSwgODAsIDEyOCwgNzgsIDg5LCA3MywgNjksIDEyOCwgNzgsIDg5LCA3MywgMTI4LCA3OCwgODksIDIwMSwgNzgsIDg5LCAKLSAgICA2OSwgODQsIDEyOCwgNzgsIDg5LCA2OSwgMjEyLCA3OCwgODksIDY5LCA3MiwgMTI4LCA3OCwgODksIDY5LCAyMDAsIDc4LCAKLSAgICA4OSwgNjksIDY5LCAxMjgsIDc4LCA4OSwgNjksIDEyOCwgNzgsIDg5LCAxOTYsIDc4LCA4OSwgNjcsIDY1LCAxMjgsIDc4LCAKLSAgICA4OSwgNjUsIDY5LCA3NywgNjUsIDY5LCAxMjgsIDc4LCA4OSwgNjUsIDY1LCAxMjgsIDc4LCA4NywgNzksIDc5LCAxMjgsIAotICAgIDc4LCA4NywgNzksIDEyOCwgNzgsIDg3LCA3MywgNzMsIDEyOCwgNzgsIDg3LCA3MywgMTI4LCA3OCwgODcsIDY5LCAxMjgsIAotICAgIDc4LCA4NywgNjUsIDY1LCAxMjgsIDc4LCA4NywgNjUsIDEyOCwgNzgsIDg3LCAxMjgsIDc4LCA4NiwgMTI4LCA3OCwgODUsIAotICAgIDg4LCAxMjgsIDc4LCA4NSwgODUsIDc4LCAxMjgsIDc4LCA4NSwgODQsIDczLCA3NiwgNzYsIDg1LCAxMjgsIDc4LCA4NSwgCi0gICAgODQsIDEyOCwgNzgsIDg1LCAyMTIsIDc4LCA4NSwgODIsIDg4LCAxMjgsIDc4LCA4NSwgODIsIDEyOCwgNzgsIDg1LCA4MCwgCi0gICAgMTI4LCA3OCwgODUsIDc5LCA4OCwgMTI4LCA3OCwgODUsIDc5LCA4MCwgMTI4LCA3OCwgODUsIDc5LCAxMjgsIDc4LCA4NSwgCi0gICAgNzgsIDg1LCA5MCwgMTI4LCA3OCwgODUsIDc4LCA4NSwgMjE4LCA3OCwgODUsIDc4LCA3MSwgMTI4LCA3OCwgODUsIDc4LCAKLSAgICA2NSwgODYsIDg1LCAyMTIsIDc4LCA4NSwgNzgsIDY1LCA4NiwgNzMsIDIwMywgNzgsIDg1LCA3OCwgMTI4LCA3OCwgODUsIAotICAgIDIwNiwgNzgsIDg1LCA3NywgNjksIDgyLCAyMDcsIDc4LCA4NSwgNzcsIDY5LCA4MiwgNjUsIDg0LCA3OSwgMjEwLCA3OCwgCi0gICAgODUsIDc3LCA2OSwgODIsIDY1LCAyMDQsIDc4LCA4NSwgNzcsIDY2LCA2OSwgODIsIDgzLCAxMjgsIDc4LCA4NSwgNzcsIDY2LCAKLSAgICA2OSwgODIsIDEyOCwgNzgsIDg1LCA3NywgMTI4LCA3OCwgODUsIDc2LCA3NiwgMTI4LCA3OCwgODUsIDc2LCAyMDQsIDc4LCAKKyAgICA3OSwgMTI4LCA3OCwgODksIDczLCA3MywgMTI4LCA3OCwgODksIDczLCA2OSwgODgsIDEyOCwgNzgsIDg5LCA3MywgNjksIAorICAgIDg0LCAxMjgsIDc4LCA4OSwgNzMsIDY5LCA4MCwgMTI4LCA3OCwgODksIDczLCA2OSwgMTI4LCA3OCwgODksIDczLCAxMjgsIAorICAgIDc4LCA4OSwgMjAxLCA3OCwgODksIDcyLCA2NSwgMTI4LCA3OCwgODksIDY5LCA4NCwgMTI4LCA3OCwgODksIDY5LCAyMTIsIAorICAgIDc4LCA4OSwgNjksIDcyLCAxMjgsIDc4LCA4OSwgNjksIDIwMCwgNzgsIDg5LCA2OSwgNjksIDEyOCwgNzgsIDg5LCA2OSwgCisgICAgMTI4LCA3OCwgODksIDE5NiwgNzgsIDg5LCA2NywgNjUsIDEyOCwgNzgsIDg5LCA2NSwgODUsIDEyOCwgNzgsIDg5LCA2NSwgCisgICAgNzMsIDEyOCwgNzgsIDg5LCA2NSwgNzIsIDEyOCwgNzgsIDg5LCA2NSwgNjksIDc3LCA2NSwgNjksIDEyOCwgNzgsIDg5LCAKKyAgICA2NSwgNjUsIDEyOCwgNzgsIDg3LCA3OSwgNzksIDEyOCwgNzgsIDg3LCA3OSwgMTI4LCA3OCwgODcsIDczLCA3MywgMTI4LCAKKyAgICA3OCwgODcsIDczLCAxMjgsIDc4LCA4NywgNjksIDEyOCwgNzgsIDg3LCA2NSwgNjUsIDEyOCwgNzgsIDg3LCA2NSwgMTI4LCAKKyAgICA3OCwgODcsIDEyOCwgNzgsIDg2LCAxMjgsIDc4LCA4NSwgODgsIDEyOCwgNzgsIDg1LCA4NSwgNzgsIDEyOCwgNzgsIDg1LCAKKyAgICA4NSwgMTI4LCA3OCwgODUsIDg0LCA3MywgNzYsIDc2LCA4NSwgMTI4LCA3OCwgODUsIDg0LCAxMjgsIDc4LCA4NSwgMjEyLCAKKyAgICA3OCwgODUsIDgyLCA4OCwgMTI4LCA3OCwgODUsIDgyLCAxMjgsIDc4LCA4NSwgODAsIDEyOCwgNzgsIDg1LCA3OSwgODgsIAorICAgIDEyOCwgNzgsIDg1LCA3OSwgODAsIDEyOCwgNzgsIDg1LCA3OSwgMTI4LCA3OCwgODUsIDc4LCA4NSwgOTAsIDEyOCwgNzgsIAorICAgIDg1LCA3OCwgODUsIDIxOCwgNzgsIDg1LCA3OCwgNzEsIDEyOCwgNzgsIDg1LCA3OCwgNjUsIDg2LCA4NSwgMjEyLCA3OCwgCisgICAgODUsIDc4LCA2NSwgODYsIDczLCAyMDMsIDc4LCA4NSwgNzgsIDEyOCwgNzgsIDg1LCAyMDYsIDc4LCA4NSwgNzcsIDY5LCAKKyAgICA4MiwgMjA3LCA3OCwgODUsIDc3LCA2OSwgODIsIDY1LCA4NCwgNzksIDIxMCwgNzgsIDg1LCA3NywgNjksIDgyLCA2NSwgCisgICAgMjA0LCA3OCwgODUsIDc3LCA2NiwgNjksIDgyLCA4MywgMTI4LCA3OCwgODUsIDc3LCA2NiwgNjksIDgyLCAxMjgsIDc4LCAKKyAgICA4NSwgNzcsIDEyOCwgNzgsIDg1LCA3NiwgNzYsIDEyOCwgNzgsIDg1LCA3NiwgMjA0LCA3OCwgODUsIDc2LCAxMjgsIDc4LCAKICAgICA4NSwgNzUsIDg0LCA2NSwgMTI4LCA3OCwgODUsIDY5LCA3OCwgNzEsIDEyOCwgNzgsIDg1LCA2OSwgMTI4LCA3OCwgODUsIAogICAgIDY2LCA3MywgNjUsIDIwNiwgNzgsIDg1LCA2NSwgNjksIDEyOCwgNzgsIDg1LCA0OSwgNDksIDEyOCwgNzgsIDg1LCA0OCwgCiAgICAgNTAsIDUwLCA2NSwgMTI4LCA3OCwgODUsIDQ4LCA1MCwgNTAsIDEyOCwgNzgsIDg1LCA0OCwgNTAsIDQ5LCAxMjgsIDc4LCAKQEAgLTE2NTksNDcwICsxNzgyLDQ5MyBAQAogICAgIDY1LCA2NiwgNzYsIDE5NywgNzgsIDc5LCA3OCwgNDUsIDc0LCA3OSwgNzMsIDc4LCA2OSwgODIsIDEyOCwgNzgsIDc5LCA3OCwgCiAgICAgNDUsIDY2LCA4MiwgNjksIDY1LCA3NSwgNzMsIDc4LCAxOTksIDc4LCA3OSwgNzcsIDczLCA3OCwgNjUsIDIwNCwgNzgsIDc5LCAKICAgICA3NSwgNzIsIDg1LCA3NSwgMTI4LCA3OCwgNzksIDY4LCA2OSwgMTI4LCA3OCwgNzksIDY1LCAxMjgsIDc4LCA3OSwgNDUsIAotICAgIDY2LCA4MiwgNjksIDY1LCAyMDMsIDc4LCA3OCwgNzksIDEyOCwgNzgsIDc4LCA3OCwgNjUsIDEyOCwgNzgsIDc4LCA3MSwgCisgICAgNjYsIDgyLCA2OSwgNjUsIDIwMywgNzgsIDc4LCA4NSwgODUsIDEyOCwgNzgsIDc4LCA4NSwgMTI4LCA3OCwgNzgsIDc5LCAKKyAgICA3OSwgMTI4LCA3OCwgNzgsIDc5LCAxMjgsIDc4LCA3OCwgNzgsIDg1LCA4NSwgMTI4LCA3OCwgNzgsIDc4LCA4NSwgMTI4LCAKKyAgICA3OCwgNzgsIDc4LCA3OSwgNzksIDEyOCwgNzgsIDc4LCA3OCwgNzksIDEyOCwgNzgsIDc4LCA3OCwgNzMsIDczLCAxMjgsIAorICAgIDc4LCA3OCwgNzgsIDczLCAxMjgsIDc4LCA3OCwgNzgsIDY5LCA2OSwgMTI4LCA3OCwgNzgsIDc4LCA2OSwgMTI4LCA3OCwgCisgICAgNzgsIDc4LCA2NSwgODUsIDEyOCwgNzgsIDc4LCA3OCwgNjUsIDczLCAxMjgsIDc4LCA3OCwgNzgsIDY1LCA2NSwgMTI4LCAKKyAgICA3OCwgNzgsIDc4LCA2NSwgMTI4LCA3OCwgNzgsIDc4LCAxMjgsIDc4LCA3OCwgNzIsIDY1LCAxMjgsIDc4LCA3OCwgNzEsIAogICAgIDc5LCA3OSwgMTI4LCA3OCwgNzgsIDcxLCA3OSwgMTI4LCA3OCwgNzgsIDcxLCA3MywgNzMsIDEyOCwgNzgsIDc4LCA3MSwgCiAgICAgNzMsIDEyOCwgNzgsIDc4LCA3MSwgNjUsIDY1LCAxMjgsIDc4LCA3OCwgNzEsIDY1LCAxMjgsIDc4LCA3OCwgNzEsIDEyOCwgCi0gICAgNzgsIDc3LCAxMjgsIDc4LCA3NiwgNDgsIDUwLCA0OCwgMTI4LCA3OCwgNzYsIDQ4LCA0OSwgNTcsIDEyOCwgNzgsIDc2LCAKLSAgICA0OCwgNDksIDU2LCAxMjgsIDc4LCA3NiwgNDgsIDQ5LCA1NSwgNjUsIDEyOCwgNzgsIDc2LCA0OCwgNDksIDU1LCAxMjgsIAotICAgIDc4LCA3NiwgNDgsIDQ5LCA1NCwgMTI4LCA3OCwgNzYsIDQ4LCA0OSwgNTMsIDEyOCwgNzgsIDc2LCA0OCwgNDksIDUyLCAKLSAgICAxMjgsIDc4LCA3NiwgNDgsIDQ5LCA1MSwgMTI4LCA3OCwgNzYsIDQ4LCA0OSwgNTAsIDEyOCwgNzgsIDc2LCA0OCwgNDksIAotICAgIDQ5LCAxMjgsIDc4LCA3NiwgNDgsIDQ5LCA0OCwgMTI4LCA3OCwgNzYsIDQ4LCA0OCwgNTcsIDEyOCwgNzgsIDc2LCA0OCwgCi0gICAgNDgsIDU2LCAxMjgsIDc4LCA3NiwgNDgsIDQ4LCA1NSwgMTI4LCA3OCwgNzYsIDQ4LCA0OCwgNTQsIDEyOCwgNzgsIDc2LCAKLSAgICA0OCwgNDgsIDUzLCA2NSwgMTI4LCA3OCwgNzYsIDQ4LCA0OCwgNTMsIDEyOCwgNzgsIDc2LCA0OCwgNDgsIDUyLCAxMjgsIAotICAgIDc4LCA3NiwgNDgsIDQ4LCA1MSwgMTI4LCA3OCwgNzYsIDQ4LCA0OCwgNTAsIDEyOCwgNzgsIDc2LCA0OCwgNDgsIDQ5LCAKLSAgICAxMjgsIDc4LCA3NSwgNzksIDc3LCAxMjgsIDc4LCA3NSwgMjA3LCA3OCwgNzUsIDczLCA3OCwgNjgsIDczLCAxMjgsIDc4LCAKLSAgICA3NSwgNjUsIDY1LCA4MiwgNjUsIDY5LCAxMjgsIDc4LCA3NCwgODksIDg4LCAxMjgsIDc4LCA3NCwgODksIDg0LCAxMjgsIAotICAgIDc4LCA3NCwgODksIDgyLCA4OCwgMTI4LCA3OCwgNzQsIDg5LCA4MiwgMTI4LCA3OCwgNzQsIDg5LCA4MCwgMTI4LCA3OCwgCi0gICAgNzQsIDg5LCAxMjgsIDc4LCA3NCwgODUsIDg4LCAxMjgsIDc4LCA3NCwgODUsIDgyLCA4OCwgMTI4LCA3OCwgNzQsIDg1LCAKLSAgICA4MiwgMTI4LCA3OCwgNzQsIDg1LCA4MSwgNjUsIDEyOCwgNzgsIDc0LCA4NSwgODAsIDEyOCwgNzgsIDc0LCA4NSwgNzksIAotICAgIDg4LCAxMjgsIDc4LCA3NCwgODUsIDc5LCAxMjgsIDc4LCA3NCwgODUsIDY5LCA4MSwgMTI4LCA3OCwgNzQsIDg1LCA2NSwgCi0gICAgNjksIDEyOCwgNzgsIDc0LCA4NSwgMTI4LCA3OCwgNzQsIDc5LCA4OCwgMTI4LCA3OCwgNzQsIDc5LCA4NCwgMTI4LCA3OCwgCi0gICAgNzQsIDc5LCA4MCwgMTI4LCA3OCwgNzQsIDc5LCA3OSwgMTI4LCA3OCwgNzQsIDc5LCAxMjgsIDc4LCA3NCwgNzMsIDg4LCAKLSAgICAxMjgsIDc4LCA3NCwgNzMsIDg0LCAxMjgsIDc4LCA3NCwgNzMsIDgwLCAxMjgsIDc4LCA3NCwgNzMsIDY5LCA4OCwgMTI4LCAKLSAgICA3OCwgNzQsIDczLCA2OSwgODQsIDEyOCwgNzgsIDc0LCA3MywgNjksIDgwLCAxMjgsIDc4LCA3NCwgNzMsIDY5LCA2OSwgCi0gICAgMTI4LCA3OCwgNzQsIDczLCA2OSwgMTI4LCA3OCwgNzQsIDczLCAxMjgsIDc4LCA3NCwgMjAxLCA3OCwgNzQsIDY5LCA4NSwgCi0gICAgODgsIDEyOCwgNzgsIDc0LCA2OSwgODUsIDg0LCAxMjgsIDc4LCA3NCwgNjksIDg1LCA2NSwgNjksIDc4LCA2NSwgMTI4LCAKLSAgICA3OCwgNzQsIDY5LCA4NSwgNjUsIDY5LCA3NywgMTI4LCA3OCwgNzQsIDY5LCA2OSwgNjksIDY5LCAxMjgsIDc4LCA3NCwgNjksIAotICAgIDY5LCAxMjgsIDc4LCA3NCwgNjksIDE5NywgNzgsIDc0LCA2OSwgMTI4LCA3OCwgNzQsIDY1LCA4MSwgMTI4LCA3OCwgNzQsIAotICAgIDY1LCA4MCwgMTI4LCA3OCwgNzQsIDY1LCA2OSwgNzcsIDc2LCA3MywgMTI4LCA3OCwgNzQsIDY1LCA2OSwgNzcsIDEyOCwgCi0gICAgNzgsIDc0LCA2NSwgNjUsIDEyOCwgNzgsIDc0LCAxMjgsIDc4LCA3MywgODgsIDEyOCwgNzgsIDczLCA4NCwgODIsIDY5LCAKLSAgICAxMjgsIDc4LCA3MywgODMsIDY1LCA3MSwgMTI4LCA3OCwgNzMsIDgyLCA4NSwgNzEsIDg1LCAxMjgsIDc4LCA3MywgODAsIAotICAgIDEyOCwgNzgsIDczLCA3OCwgODQsIDcyLCAxMjgsIDc4LCA3MywgNzgsIDY5LCA4NCwgODksIDEyOCwgNzgsIDczLCA3OCwgCi0gICAgNjksIDg0LCAyMTcsIDc4LCA3MywgNzgsIDY5LCA4NCwgNjksIDY5LCA3OCwgMTI4LCA3OCwgNzMsIDc4LCA2OSwgODQsIDY5LCAKLSAgICA2OSwgMjA2LCA3OCwgNzMsIDc4LCA2OSwgNDUsIDg0LCA3MiwgNzMsIDgyLCA4NCwgODksIDEyOCwgNzgsIDczLCA3OCwgCi0gICAgMTk3LCA3OCwgNzMsIDc4LCA2OCwgNjUsIDUwLCAxMjgsIDc4LCA3MywgNzgsIDY4LCA2NSwgMTc4LCA3OCwgNzMsIDc3LCAKLSAgICAxMjgsIDc4LCA3MywgMjA1LCA3OCwgNzMsIDc1LCA3MiwgNjUsIDcyLCA3MywgODQsIDEyOCwgNzgsIDczLCA3NSwgNjUsIAotICAgIDcyLCA3MywgODQsIDEyOCwgNzgsIDczLCA3NSwgNjUsIDEyOCwgNzgsIDczLCA3MywgMTI4LCA3OCwgNzMsIDcyLCA4MywgCi0gICAgNzIsIDg2LCA2NSwgODMsIDY1LCAxMjgsIDc4LCA3MywgNzEsIDczLCA2OCwgNjUsIDc3LCA3MywgNzgsIDEyOCwgNzgsIDczLCAKLSAgICA3MSwgNzMsIDY4LCA2NSwgNjksIDgzLCA3MiwgMTI4LCA3OCwgNzMsIDcxLCA3MiwgODQsIDEyOCwgNzgsIDczLCA3MSwgNzIsIAotICAgIDIxMiwgNzgsIDczLCA3MSwgNzEsIDY1LCA3MiwgNzMsIDg0LCA2NSwgMTI4LCA3OCwgNzMsIDY5LCA4OCwgMTI4LCA3OCwgCi0gICAgNzMsIDY5LCA4NSwgNzgsIDQ1LCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCAxMjgsIDc4LCA3MywgNjksIDg1LCA3OCwgNDUsIAotICAgIDg0LCA3MiwgNzMsIDY5LCA4NSwgODQsIDcyLCAxMjgsIDc4LCA3MywgNjksIDg1LCA3OCwgNDUsIDgzLCA3MywgNzksIDgzLCAKLSAgICAxMjgsIDc4LCA3MywgNjksIDg1LCA3OCwgNDUsIDgyLCA3MywgNjksIDg1LCA3NiwgMTI4LCA3OCwgNzMsIDY5LCA4NSwgNzgsIAotICAgIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgNzgsIDczLCA2OSwgODUsIDc4LCA0NSwgODAsIDY1LCA3OCwgODMsIDczLCAKLSAgICA3OSwgODMsIDEyOCwgNzgsIDczLCA2OSwgODUsIDc4LCA0NSwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgMTI4LCA3OCwgNzMsIAotICAgIDY5LCA4NSwgNzgsIDQ1LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDEyOCwgNzgsIDczLCA2OSwgODUsIDc4LCA0NSwgNjcsIDczLCAKLSAgICA2OSwgODUsIDY3LCAxMjgsIDc4LCA3MywgNjksIDg1LCA3OCwgNDUsIDY3LCA3MiwgNzMsIDY5LCA4NSwgNjcsIDcyLCAxMjgsIAotICAgIDc4LCA3MywgNjksIDg1LCAyMDYsIDc4LCA3MywgNjksIDgwLCAxMjgsIDc4LCA3MywgNjksIDEyOCwgNzgsIDczLCA2NiwgCi0gICAgMTI4LCA3OCwgNzMsIDY1LCAxMjgsIDc4LCA3MywgNTAsIDEyOCwgNzgsIDcyLCA4NSwgNjksIDEyOCwgNzgsIDcyLCA3NCwgCi0gICAgNjUsIDEyOCwgNzgsIDcyLCA2NSwgMTI4LCA3OCwgNzIsIDEyOCwgNzgsIDcxLCA4OSwgNjksIDEyOCwgNzgsIDcxLCA4NiwgCi0gICAgNjksIDEyOCwgNzgsIDcxLCA4NSwgNzksIDg4LCAxMjgsIDc4LCA3MSwgODUsIDc5LCA4NCwgMTI4LCA3OCwgNzEsIDg1LCAKLSAgICA3OSwgMTI4LCA3OCwgNzEsIDg1LCA2NSwgNjksIDg0LCAxMjgsIDc4LCA3MSwgODUsIDY1LCA2OSwgMTI4LCA3OCwgNzEsIAotICAgIDc5LCA4OCwgMTI4LCA3OCwgNzEsIDc5LCA4NSwgMTI4LCA3OCwgNzEsIDc5LCAyMTMsIDc4LCA3MSwgNzksIDg0LCAxMjgsIAotICAgIDc4LCA3MSwgNzksIDgxLCAxMjgsIDc4LCA3MSwgNzksIDgwLCAxMjgsIDc4LCA3MSwgNzksIDc4LCAxMjgsIDc4LCA3MSwgCi0gICAgNzksIDc3LCAxMjgsIDc4LCA3MSwgNzksIDY5LCA3MiwgMTI4LCA3OCwgNzEsIDc5LCA2OSwgMjAwLCA3OCwgNzEsIDIwNywgCi0gICAgNzgsIDcxLCA3NSwgODksIDY5LCA2OSwgMTI4LCA3OCwgNzEsIDc1LCA4NywgNjUsIDY5LCA3OCwgMTI4LCA3OCwgNzEsIDc1LCAKLSAgICA4NSwgODAsIDEyOCwgNzgsIDcxLCA3NSwgODUsIDc4LCAxMjgsIDc4LCA3MSwgNzUsIDg1LCA3NywgMTI4LCA3OCwgNzEsIAotICAgIDc1LCA4NSwgNjksIDc4LCA5MCwgNjksIDg1LCA3NywgMTI4LCA3OCwgNzEsIDc1LCA4NSwgMTk3LCA3OCwgNzEsIDc1LCA3MywgCi0gICAgNzgsIDY4LCAyMDEsIDc4LCA3MSwgNzUsIDczLCA2OSwgNjksIDEyOCwgNzgsIDcxLCA3NSwgNjksIDg1LCA4OCwgMTI4LCAKLSAgICA3OCwgNzEsIDc1LCA2OSwgODUsIDgyLCA3MywgMTI4LCA3OCwgNzEsIDc1LCA2OSwgODUsIDY1LCA2OSwgODEsIDEyOCwgNzgsIAotICAgIDcxLCA3NSwgNjksIDg1LCA2NSwgNjksIDc3LCAxMjgsIDc4LCA3MSwgNzUsIDY1LCA4MSwgMTI4LCA3OCwgNzEsIDc1LCA2NSwgCi0gICAgODAsIDEyOCwgNzgsIDcxLCA3NSwgNjUsIDY1LCA3NywgNzMsIDEyOCwgNzgsIDcxLCA3NSwgNjUsIDEyOCwgNzgsIDcxLCAKLSAgICA3MywgNjksIDg4LCAxMjgsIDc4LCA3MSwgNzMsIDY5LCA4MCwgMTI4LCA3OCwgNzEsIDczLCA2OSwgMTI4LCA3OCwgNzEsIAotICAgIDcxLCA4NywgNjUsIDY5LCA3OCwgMTI4LCA3OCwgNzEsIDcxLCA4NSwgODIsIDY1LCA2OSwgMTI4LCA3OCwgNzEsIDcxLCA4NSwgCi0gICAgODAsIDEyOCwgNzgsIDcxLCA3MSwgODUsIDc5LCA4MSwgMTI4LCA3OCwgNzEsIDcxLCA4NSwgNzksIDIwOSwgNzgsIDcxLCAKLSAgICA3MSwgODUsIDc5LCA3OCwgMTI4LCA3OCwgNzEsIDcxLCA4NSwgNzksIDc3LCAxMjgsIDc4LCA3MSwgNzEsIDg1LCA3NywgCi0gICAgMTI4LCA3OCwgNzEsIDcxLCA4NSwgNjksIDY5LCA4NCwgMTI4LCA3OCwgNzEsIDcxLCA4NSwgNjUsIDY5LCA4MywgNzIsIDY1LCAKLSAgICAxOTcsIDc4LCA3MSwgNzEsIDg1LCA2NSwgNjksIDIwNiwgNzgsIDcxLCA3MSwgODUsIDEyOCwgNzgsIDcxLCA3MSwgNzksIAotICAgIDc5LCAxMjgsIDc4LCA3MSwgNzEsIDc5LCAxMjgsIDc4LCA3MSwgNzEsIDczLCAxMjgsIDc4LCA3MSwgNzEsIDY5LCA4NSwgCi0gICAgODgsIDEyOCwgNzgsIDcxLCA3MSwgNjksIDg1LCA2NSwgNjksIDg0LCAxMjgsIDc4LCA3MSwgNzEsIDY5LCA4NSwgNjUsIDY5LCAKLSAgICAxMjgsIDc4LCA3MSwgNzEsIDY5LCAyMTMsIDc4LCA3MSwgNzEsIDY5LCA3OCwgMTI4LCA3OCwgNzEsIDcxLCA2OSwgNjksIAotICAgIDg0LCAxMjgsIDc4LCA3MSwgNzEsIDY5LCA2OSwgNjksIDY5LCAxMjgsIDc4LCA3MSwgNzEsIDY5LCA2OSwgMTI4LCA3OCwgCi0gICAgNzEsIDcxLCA2OSwgMTI4LCA3OCwgNzEsIDcxLCA2NSwgODAsIDEyOCwgNzgsIDcxLCA3MSwgNjUsIDY1LCA3NywgNjUsIDY5LCAKLSAgICAxMjgsIDc4LCA3MSwgNzEsIDY1LCA2NSwgNzcsIDEyOCwgNzgsIDcxLCA3MSwgMTI4LCA3OCwgNzEsIDY5LCA4OCwgMTI4LCAKLSAgICA3OCwgNzEsIDY5LCA4NSwgODIsIDY5LCA4NSwgODQsIDEyOCwgNzgsIDcxLCA2OSwgODAsIDEyOCwgNzgsIDcxLCA2OSwgNzgsIAotICAgIDEyOCwgNzgsIDcxLCA2OSwgNjUsIDY4LCA2NSwgNzYsIDEyOCwgNzgsIDcxLCA2NSwgODgsIDEyOCwgNzgsIDcxLCA2NSwgCi0gICAgODQsIDEyOCwgNzgsIDcxLCA2NSwgMjExLCA3OCwgNzEsIDY1LCA4MSwgMTI4LCA3OCwgNzEsIDY1LCA4MCwgMTI4LCA3OCwgCi0gICAgNzEsIDY1LCA3OCwgNzEsIDg1LCAxMjgsIDc4LCA3MSwgNjUsIDc4LCAxMjgsIDc4LCA3MSwgNjUsIDczLCAxMjgsIDc4LCAKLSAgICA3MSwgNjUsIDY1LCA3MywgMTI4LCA3OCwgNzEsIDE5MywgNzgsIDcwLCAxMjgsIDc4LCA2OSwgODgsIDIxMiwgNzgsIDY5LCAKLSAgICA4OCwgMTI4LCA3OCwgNjksIDg3LCA4MywgODAsIDY1LCA4MCwgNjksIDgyLCAxMjgsIDc4LCA2OSwgODcsIDc2LCA3MywgNzgsIAotICAgIDY5LCAxMjgsIDc4LCA2OSwgODcsIDEyOCwgNzgsIDY5LCA4NSwgODQsIDgyLCA2NSwgMjA0LCA3OCwgNjksIDg1LCA4NCwgCi0gICAgNjksIDgyLCAxMjgsIDc4LCA2OSwgODQsIDEyOCwgNzgsIDY5LCAyMTIsIDc4LCA2OSwgODMsIDg0LCA2OSwgMTk2LCA3OCwgCi0gICAgNjksIDgxLCA4NSwgNjgsIDY1LCA2NSwgMTI4LCA3OCwgNjksIDgwLCA4NCwgODUsIDc4LCA2OSwgMTI4LCA3OCwgNjksIDgwLCAKLSAgICAxMjgsIDc4LCA2OSwgNzksIDEyOCwgNzgsIDY5LCAyMDcsIDc4LCA2OSwgNzgsIDY1LCA3OCwgNzksIDEyOCwgNzgsIDY5LCAKLSAgICA3OCwgMTI4LCA3OCwgNjksIDczLCA4NCwgNzIsIDY5LCAyMTAsIDc4LCA2OSwgNzEsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIAotICAgIDc4LCA2OSwgNzEsIDY1LCA4NCwgNjksIDE5NiwgNzgsIDY5LCA2OSwgMTI4LCA3OCwgNjksIDY3LCA3NSwgODQsIDczLCA2OSwgCi0gICAgMTI4LCA3OCwgNjksIDY2LCA2OSwgNzgsIDgzLCA4NCwgNzMsIDc3LCA3NywgNjksIDEyOCwgNzgsIDY4LCA4NSwgODgsIAotICAgIDEyOCwgNzgsIDY4LCA4NSwgODQsIDEyOCwgNzgsIDY4LCA4NSwgODIsIDg4LCAxMjgsIDc4LCA2OCwgODUsIDgyLCAxMjgsIAotICAgIDc4LCA2OCwgODUsIDgwLCAxMjgsIDc4LCA2OCwgODUsIDc4LCAxMjgsIDc4LCA2OCwgMjEzLCA3OCwgNjgsIDc5LCA4OCwgCi0gICAgMTI4LCA3OCwgNjgsIDc5LCA4NCwgMTI4LCA3OCwgNjgsIDc5LCA4MCwgMTI4LCA3OCwgNjgsIDc5LCA3OSwgMTI4LCA3OCwgCi0gICAgNjgsIDc5LCA3OCwgMTI4LCA3OCwgNjgsIDc5LCA3NywgNjYsIDg1LCAxMjgsIDc4LCA2OCwgNzksIDc2LCAxOTcsIDc4LCAKLSAgICA2OCwgNzMsIDg4LCAxMjgsIDc4LCA2OCwgNzMsIDg0LCAxMjgsIDc4LCA2OCwgNzMsIDgxLCAxMjgsIDc4LCA2OCwgNzMsIAotICAgIDgwLCAxMjgsIDc4LCA2OCwgNzMsIDY5LCA4OCwgMTI4LCA3OCwgNjgsIDczLCA2OSwgMTI4LCA3OCwgNjgsIDczLCA2OCwgCi0gICAgNjUsIDEyOCwgNzgsIDY4LCA3MywgNjUsIDgxLCAxMjgsIDc4LCA2OCwgNjksIDg4LCAxMjgsIDc4LCA2OCwgNjksIDg1LCAKLSAgICA4OCwgMTI4LCA3OCwgNjgsIDY5LCA4NSwgODQsIDEyOCwgNzgsIDY4LCA2OSwgODUsIDY1LCA2OSwgODIsIDY5LCA2OSwgCi0gICAgMTI4LCA3OCwgNjgsIDY5LCA4MCwgMTI4LCA3OCwgNjgsIDY5LCA2OSwgMTI4LCA3OCwgNjgsIDY5LCAxMjgsIDc4LCA2OCwgCi0gICAgNjUsIDg4LCAxMjgsIDc4LCA2OCwgNjUsIDg0LCAxMjgsIDc4LCA2OCwgNjUsIDgwLCAxMjgsIDc4LCA2OCwgNjUsIDc3LCAKLSAgICAxMjgsIDc4LCA2OCwgNjUsIDY1LCA3OCwgNzEsIDcxLCA2OSwgODUsIDY1LCA2OSwgODQsIDEyOCwgNzgsIDY4LCA2NSwgNjUsIAotICAgIDEyOCwgNzgsIDY4LCA2NSwgMTkzLCA3OCwgNjYsIDg5LCA4OCwgMTI4LCA3OCwgNjYsIDg5LCA4NCwgMTI4LCA3OCwgNjYsIAotICAgIDg5LCA4MiwgODgsIDEyOCwgNzgsIDY2LCA4OSwgODIsIDEyOCwgNzgsIDY2LCA4OSwgODAsIDEyOCwgNzgsIDY2LCA4OSwgCi0gICAgMTI4LCA3OCwgNjYsIDg1LCA4OCwgMTI4LCA3OCwgNjYsIDg1LCA4NCwgMTI4LCA3OCwgNjYsIDg1LCA4MiwgODgsIDEyOCwgCi0gICAgNzgsIDY2LCA4NSwgODIsIDEyOCwgNzgsIDY2LCA4NSwgODAsIDEyOCwgNzgsIDY2LCA4NSwgMTI4LCA3OCwgNjYsIDc5LCAKLSAgICA4OCwgMTI4LCA3OCwgNjYsIDc5LCA4NCwgMTI4LCA3OCwgNjYsIDc5LCA4MCwgMTI4LCA3OCwgNjYsIDc5LCAxMjgsIDc4LCAKLSAgICA2NiwgNzMsIDg4LCAxMjgsIDc4LCA2NiwgNzMsIDg0LCAxMjgsIDc4LCA2NiwgNzMsIDgwLCAxMjgsIDc4LCA2NiwgNzMsIAotICAgIDY5LCA4OCwgMTI4LCA3OCwgNjYsIDczLCA2OSwgODAsIDEyOCwgNzgsIDY2LCA3MywgNjksIDEyOCwgNzgsIDY2LCA3MywgCi0gICAgMTI4LCA3OCwgNjYsIDY1LCA4OCwgMTI4LCA3OCwgNjYsIDY1LCA4NCwgMTI4LCA3OCwgNjYsIDY1LCA4MCwgMTI4LCA3OCwgCi0gICAgNjYsIDY1LCAxMjgsIDc4LCA2NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDc4LCA2NSwgODksIDEyOCwgNzgsIDY1LCAKLSAgICA4OCwgNzMsIDY1LCAyMDYsIDc4LCA2NSwgODgsIDEyOCwgNzgsIDY1LCA4NSwgODQsIDcyLCA4MywgMTI4LCA3OCwgNjUsIAotICAgIDg1LCA2OCwgNzMsIDIxOCwgNzgsIDY1LCA4NCwgODUsIDgyLCA2NSwgMjA0LCA3OCwgNjUsIDg0LCA3MywgNzksIDc4LCA2NSwgCi0gICAgMjA0LCA3OCwgNjUsIDgzLCA3NSwgNjUsIDgwLCAyMDEsIDc4LCA2NSwgODMsIDcyLCA3MywgMTI4LCA3OCwgNjUsIDgzLCAKLSAgICA2NSwgNzYsIDczLCA5MCwgNjUsIDg0LCA3MywgNzksIDIwNiwgNzgsIDY1LCA4MiwgODIsIDc5LCAyMTUsIDc4LCA2NSwgODIsIAotICAgIDEyOCwgNzgsIDY1LCA4MSwgMTI4LCA3OCwgNjUsIDc5LCAyMTEsIDc4LCA2NSwgNzgsIDgzLCA2NSwgNzgsIDY1LCA4MSwgCi0gICAgMTI4LCA3OCwgNjUsIDc4LCA3MSwgNzcsIDc5LCA3OCwgODQsIDcyLCA3OSwgMTI4LCA3OCwgNjUsIDc4LCA2OCwgMTI4LCAKLSAgICA3OCwgNjUsIDc4LCA2NSwgMTI4LCA3OCwgNjUsIDc3LCA2OSwgMTI4LCA3OCwgNjUsIDc3LCAxOTcsIDc4LCA2NSwgNzcsIAotICAgIDUwLCAxMjgsIDc4LCA2NSwgNzcsIDEyOCwgNzgsIDY1LCA3MywgODIsIDE5MywgNzgsIDY1LCA3MywgMjA0LCA3OCwgNjUsIAotICAgIDcxLCA4MiwgMjAxLCA3OCwgNjUsIDcxLCA2NSwgODIsIDEyOCwgNzgsIDY1LCA3MSwgNjUsIDEyOCwgNzgsIDY1LCA3MSwgCi0gICAgMTkzLCA3OCwgNjUsIDcxLCAxMjgsIDc4LCA2NSwgMTk5LCA3OCwgNjUsIDY5LCAxMjgsIDc4LCA2NSwgNjYsIDc2LCA2NSwgCi0gICAgMTI4LCA3OCwgNjUsIDY1LCA4MywgNzMsIDc1LCA4OSwgNjUsIDg5LCA2NSwgMTI4LCA3OCwgNjUsIDY1LCA3NSwgODMsIDczLCAKLSAgICA3NSwgODksIDY1LCA4OSwgNjUsIDEyOCwgNzgsIDY1LCA2NSwgNzMsIDEyOCwgNzgsIDY1LCA2NSwgMTI4LCA3OCwgNjUsIAotICAgIDE5MywgNzgsIDY1LCA1MCwgMTI4LCA3OCwgNDgsIDUyLCA1MCwgMTI4LCA3OCwgNDgsIDUyLCA0OSwgMTI4LCA3OCwgNDgsIAotICAgIDUyLCA0OCwgMTI4LCA3OCwgNDgsIDUxLCA1NywgMTI4LCA3OCwgNDgsIDUxLCA1NiwgMTI4LCA3OCwgNDgsIDUxLCA1NSwgCi0gICAgNjUsIDEyOCwgNzgsIDQ4LCA1MSwgNTUsIDEyOCwgNzgsIDQ4LCA1MSwgNTQsIDEyOCwgNzgsIDQ4LCA1MSwgNTMsIDY1LCAKLSAgICAxMjgsIDc4LCA0OCwgNTEsIDUzLCAxMjgsIDc4LCA0OCwgNTEsIDUyLCA2NSwgMTI4LCA3OCwgNDgsIDUxLCA1MiwgMTI4LCAKLSAgICA3OCwgNDgsIDUxLCA1MSwgNjUsIDEyOCwgNzgsIDQ4LCA1MSwgNTEsIDEyOCwgNzgsIDQ4LCA1MSwgNTAsIDEyOCwgNzgsIAotICAgIDQ4LCA1MSwgNDksIDEyOCwgNzgsIDQ4LCA1MSwgNDgsIDEyOCwgNzgsIDQ4LCA1MCwgNTcsIDEyOCwgNzgsIDQ4LCA1MCwgCi0gICAgNTYsIDEyOCwgNzgsIDQ4LCA1MCwgNTUsIDEyOCwgNzgsIDQ4LCA1MCwgNTQsIDEyOCwgNzgsIDQ4LCA1MCwgNTMsIDY1LCAKLSAgICAxMjgsIDc4LCA0OCwgNTAsIDUzLCAxMjgsIDc4LCA0OCwgNTAsIDUyLCAxMjgsIDc4LCA0OCwgNTAsIDUxLCAxMjgsIDc4LCAKLSAgICA0OCwgNTAsIDUwLCAxMjgsIDc4LCA0OCwgNTAsIDQ5LCAxMjgsIDc4LCA0OCwgNTAsIDQ4LCAxMjgsIDc4LCA0OCwgNDksIAotICAgIDU3LCAxMjgsIDc4LCA0OCwgNDksIDU2LCA2NiwgMTI4LCA3OCwgNDgsIDQ5LCA1NiwgNjUsIDEyOCwgNzgsIDQ4LCA0OSwgCi0gICAgNTYsIDEyOCwgNzgsIDQ4LCA0OSwgNTUsIDEyOCwgNzgsIDQ4LCA0OSwgNTQsIDEyOCwgNzgsIDQ4LCA0OSwgNTMsIDEyOCwgCi0gICAgNzgsIDQ4LCA0OSwgNTIsIDEyOCwgNzgsIDQ4LCA0OSwgNTEsIDEyOCwgNzgsIDQ4LCA0OSwgNTAsIDEyOCwgNzgsIDQ4LCAKLSAgICA0OSwgNDksIDEyOCwgNzgsIDQ4LCA0OSwgNDgsIDEyOCwgNzgsIDQ4LCA0OCwgNTcsIDEyOCwgNzgsIDQ4LCA0OCwgNTYsIAotICAgIDEyOCwgNzgsIDQ4LCA0OCwgNTUsIDEyOCwgNzgsIDQ4LCA0OCwgNTQsIDEyOCwgNzgsIDQ4LCA0OCwgNTMsIDEyOCwgNzgsIAotICAgIDQ4LCA0OCwgNTIsIDEyOCwgNzgsIDQ4LCA0OCwgNTEsIDEyOCwgNzgsIDQ4LCA0OCwgNTAsIDEyOCwgNzgsIDQ4LCA0OCwgCi0gICAgNDksIDEyOCwgNzgsIDQ1LCA2NywgODIsIDY5LCAxOTcsIDc4LCA0NSwgNjUsIDgyLCAyMTcsIDc3LCA4OSwgODgsIDEyOCwgCi0gICAgNzcsIDg5LCA4NCwgMTI4LCA3NywgODksIDgzLCA3NiwgNzMsIDg0LCA2OSwgMTI4LCA3NywgODksIDgwLCAxMjgsIDc3LCAKLSAgICA4OSwgNjUsIDEyOCwgNzcsIDg5LCAxOTMsIDc3LCA4OSwgMTI4LCA3NywgMjE3LCA3NywgODcsIDc5LCA3OSwgMTI4LCA3NywgCi0gICAgODcsIDc5LCAxMjgsIDc3LCA4NywgNzMsIDczLCAxMjgsIDc3LCA4NywgNzMsIDEyOCwgNzcsIDg3LCA2OSwgNjksIDEyOCwgCi0gICAgNzcsIDg3LCA2OSwgMTI4LCA3NywgODcsIDY1LCA2NSwgMTI4LCA3NywgODcsIDY1LCAxMjgsIDc3LCA4NywgMTI4LCA3NywgCi0gICAgMjE1LCA3NywgODYsIDc5LCA4MCwgMTI4LCA3NywgODYsIDczLCAxMjgsIDc3LCA4NiwgNjksIDg1LCA2NSwgNjksIDc4LCAKLSAgICA3MSwgNjUsIDc3LCAxMjgsIDc3LCA4NiwgMTI4LCA3NywgMjE0LCA3NywgODUsIDg4LCAxMjgsIDc3LCA4NSwgODUsIDgzLCAKLSAgICA3MywgNzUsIDY1LCA4NCwgNzksIDY1LCA3OCwgMTI4LCA3NywgODUsIDg1LCA4MiwgNjgsIDcyLCA2NSwgNzQsIDE5MywgNzcsIAotICAgIDg1LCA4NCwgMTI4LCA3NywgODUsIDgzLCA3MywgNjcsIDEyOCwgNzcsIDg1LCA4MywgNzMsIDE5NSwgNzcsIDg1LCA4MywgCi0gICAgNzIsIDgyLCA3OSwgNzksIDc3LCAxMjgsIDc3LCA4NSwgODMsIDcyLCA1MSwgMTI4LCA3NywgODUsIDgzLCA3MiwgMTc5LCAKLSAgICA3NywgODUsIDgzLCA3MiwgMTI4LCA3NywgODUsIDgzLCAyMDAsIDc3LCA4NSwgODIsIDg4LCAxMjgsIDc3LCA4NSwgODIsIAotICAgIDcxLCA4NSwgNTAsIDEyOCwgNzcsIDg1LCA4MiwgNjksIDEyOCwgNzcsIDg1LCA4MiwgNjgsIDY1LCAxMjgsIDc3LCA4NSwgCi0gICAgODIsIDY4LCAxOTMsIDc3LCA4NSwgODIsIDEyOCwgNzcsIDg1LCA4MSwgNjgsIDY1LCA3NywgMTI4LCA3NywgODUsIDgwLCAKLSAgICAxMjgsIDc3LCA4NSwgNzksIDg4LCAxMjgsIDc3LCA4NSwgNzksIDg0LCAxMjgsIDc3LCA4NSwgNzksIDgwLCAxMjgsIDc3LCAKLSAgICA4NSwgNzksIDc3LCA2NSwgNjksIDEyOCwgNzcsIDg1LCA3OSwgMTI4LCA3NywgODUsIDc4LCA4MywgODUsIDY2LCAxMjgsIAotICAgIDc3LCA4NSwgNzgsIDY1LCA3MiwgMTI4LCA3NywgODUsIDc2LCA4NCwgNzMsIDgzLCA2OSwgODQsIDEyOCwgNzcsIDg1LCA3NiwgCi0gICAgODQsIDczLCA4MywgNjksIDIxMiwgNzcsIDg1LCA3NiwgODQsIDczLCA4MCwgNzYsIDczLCA2NywgNjUsIDg0LCA3MywgNzksIAotICAgIDc4LCAxMjgsIDc3LCA4NSwgNzYsIDg0LCA3MywgODAsIDc2LCA3MywgNjcsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDc3LCA4NSwgCi0gICAgNzYsIDg0LCA3MywgODAsIDc2LCAxOTcsIDc3LCA4NSwgNzYsIDg0LCA3MywgNzksIDY3LCA4NSwgNzYsIDY1LCAyMTAsIDc3LCAKLSAgICA4NSwgNzYsIDg0LCA3MywgNzcsIDY1LCA4MCwgMTI4LCA3NywgODUsIDc2LCA4NCwgMjAxLCA3NywgODUsIDc1LCA4MCwgNzIsIAotICAgIDgyLCA2OSwgNzgsIDcxLCAxMjgsIDc3LCA4NSwgNzMsIDc4LCAxMjgsIDc3LCA4NSwgNzEsIDgzLCAxMjgsIDc3LCA4NSwgCi0gICAgNzEsIDEyOCwgNzcsIDg1LCAxOTksIDc3LCA4NSwgNjksIDEyOCwgNzcsIDg1LCA2NywgNzIsIDEyOCwgNzcsIDg1LCA2NywgCi0gICAgMjAwLCA3NywgODUsIDY3LCA2NSwgNjUsIDY4LCAxMjgsIDc3LCA4NSwgNjUsIDc4LCAxMjgsIDc3LCA4NSwgNjUsIDY5LCAKLSAgICAxMjgsIDc3LCA4NSwgNDUsIDcxLCA2NSwgNjUsIDcyLCA3NiwgNjUsIDE5MywgNzcsIDIxMywgNzcsIDgzLCAxMjgsIDc3LCAKLSAgICA4MCwgNjUsIDEyOCwgNzcsIDc5LCA4OSwgNjUsIDczLCAxMjgsIDc3LCA3OSwgODgsIDEyOCwgNzcsIDc5LCA4NiwgNzMsIAotICAgIDE5NywgNzcsIDc5LCA4NiwgNjksIDE5NiwgNzcsIDc5LCA4NSwgODQsIDcyLCAxMjgsIDc3LCA3OSwgODUsIDg0LCAyMDAsIAotICAgIDc3LCA3OSwgODUsIDgzLCA2OSwgMTI4LCA3NywgNzksIDg1LCA4MywgMTk3LCA3NywgNzksIDg1LCA3OCwgODQsIDY1LCA3MywgCi0gICAgNzgsIDgzLCAxMjgsIDc3LCA3OSwgODUsIDc4LCA4NCwgNjUsIDczLCA3OCwgMTI4LCA3NywgNzksIDg1LCA3OCwgODQsIDY1LCAKLSAgICA3MywgMjA2LCA3NywgNzksIDg1LCA3OCwgMjEyLCA3NywgNzksIDg1LCA3OCwgNjgsIDEyOCwgNzcsIDc5LCA4NSwgNzgsIAotICAgIDE5NiwgNzcsIDc5LCA4NCwgNzIsIDY5LCA4MiwgMTI4LCA3NywgNzksIDg0LCAxMjgsIDc3LCA3OSwgODIsIDg0LCA4NSwgCi0gICAgODUsIDc3LCAxMjgsIDc3LCA3OSwgODIsIDg0LCA2NSwgODIsIDEyOCwgNzcsIDc5LCA4MiwgODAsIDcyLCA3OSwgNzYsIDc5LCAKLSAgICA3MSwgNzMsIDY3LCA2NSwgMjA0LCA3NywgNzksIDgyLCA3OCwgNzMsIDc4LCA3MSwgMTI4LCA3NywgNzksIDgwLCAxMjgsIAotICAgIDc3LCA3OSwgNzksIDgzLCA2OSwgNDUsIDY3LCA4MiwgNjksIDE5NywgNzcsIDc5LCA3OSwgNzgsIDEyOCwgNzcsIDc5LCA3OSwgCi0gICAgMjA2LCA3NywgNzksIDc5LCA3NywgODAsIDg1LCA4MSwgMTI4LCA3NywgNzksIDc5LCA3NywgNjksIDg1LCA4NCwgMTI4LCAKLSAgICA3NywgNzksIDc5LCAxMjgsIDc3LCA3OSwgNzgsIDg0LCA3MywgNjksIDY5LCA3OCwgMTI4LCA3NywgNzksIDc4LCA4NCwgNzIsIAotICAgIDEyOCwgNzcsIDc5LCA3OCwgODQsIDIwMCwgNzcsIDc5LCA3OCwgODMsIDg0LCA2OSwgODIsIDEyOCwgNzcsIDc5LCA3OCwgCi0gICAgNzksIDgzLCA4NCwgNjUsIDY2LCA3NiwgMTk3LCA3NywgNzksIDc4LCA3OSwgODMsIDgwLCA2NSwgNjcsIDE5NywgNzcsIDc5LCAKLSAgICA3OCwgNzksIDgyLCA2NSwgNzMsIDc2LCAxMjgsIDc3LCA3OSwgNzgsIDc5LCA3MSwgODIsIDY1LCA4MCwgMjAwLCA3NywgNzksIAotICAgIDc4LCA3OSwgNzEsIDgyLCA2NSwgNzcsIDc3LCA3OSwgMjExLCA3NywgNzksIDc4LCA3OSwgNzEsIDgyLCA2NSwgMjA1LCA3NywgCi0gICAgNzksIDc4LCA3OSwgNzAsIDc5LCA3OCwgNzMsIDY1LCA4MywgMTI4LCA3NywgNzksIDc4LCA3OSwgNjcsIDg1LCA3NiwgNjUsIAotICAgIDIxMCwgNzcsIDc5LCA3OCwgNzUsIDY5LCA4OSwgMTI4LCA3NywgNzksIDc4LCA3NSwgNjksIDIxNywgNzcsIDc5LCA3OCwgCi0gICAgNzMsIDEyOCwgNzcsIDc5LCA3OCwgNzEsIDc1LCA2OSwgODUsIDY1LCA2OSwgODEsIDEyOCwgNzcsIDc5LCA3OCwgNjksIAotICAgIDIxNywgNzcsIDc5LCA3OCwgMTI4LCA3NywgNzksIDIwNiwgNzcsIDc5LCA3NiwgMTI4LCA3NywgNzksIDcyLCA2NSwgNzcsIAotICAgIDc3LCA2NSwgMTk2LCA3NywgNzksIDY4LCA4NSwgNzYsIDIwNywgNzcsIDc5LCA2OCwgNjksIDgzLCA4NCwgODksIDEyOCwgCi0gICAgNzcsIDc5LCA2OCwgNjksIDc2LCA4MywgMTI4LCA3NywgNzksIDY4LCA2OSwgNzYsIDEyOCwgNzcsIDc5LCA2OCwgNjksIAotICAgIDEyOCwgNzcsIDc5LCA2NiwgNzMsIDc2LCAxOTcsIDc3LCA3OSwgNjUsIDEyOCwgNzcsIDIwNywgNzcsIDc4LCA4OSwgNjUsIAotICAgIDIwNSwgNzcsIDc4LCA2NSwgODMsIDEyOCwgNzcsIDc3LCAxMjgsIDc3LCAyMDUsIDc3LCA3NiwgNjUsIDEyOCwgNzcsIDc2LCAKLSAgICAxMjgsIDc3LCA3NSwgODAsIDY1LCA4MiwgNjUsIDIwOSwgNzcsIDczLCA4OCwgMTI4LCA3NywgNzMsIDg0LCAxMjgsIDc3LCAKLSAgICA3MywgMjEyLCA3NywgNzMsIDgzLCA4MiwgNjUsIDEyOCwgNzcsIDczLCA4MiwgNzMsIDY2LCA2NSwgNjUsIDgyLCA4NSwgCi0gICAgMTI4LCA3NywgNzMsIDgyLCA3MywgMTI4LCA3NywgNzMsIDgyLCA2OSwgNjgsIDEyOCwgNzcsIDczLCA4MCwgMTI4LCA3NywgCi0gICAgNzMsIDc4LCA4OSwgMTI4LCA3NywgNzMsIDc4LCA4NSwgODMsIDQ1LCA3OSwgODIsIDQ1LCA4MCwgNzYsIDg1LCAyMTEsIDc3LCAKLSAgICA3MywgNzgsIDg1LCA4MywgMTI4LCA3NywgNzMsIDc4LCA3MywgODMsIDg0LCA2OSwgODIsIDEyOCwgNzcsIDczLCA3OCwgNzMsIAotICAgIDc3LCA2NSwgMTI4LCA3NywgNzMsIDc4LCA3MywgNjgsIDczLCA4MywgNjcsIDEyOCwgNzcsIDczLCA3OCwgNzMsIDY2LCA4NSwgCi0gICAgODMsIDEyOCwgNzcsIDczLCA3NywgNjksIDEyOCwgNzcsIDczLCA3NywgMTI4LCA3NywgNzMsIDc2LCA3NiwgNzMsIDc5LCAKLSAgICA3OCwgMjExLCA3NywgNzMsIDc2LCA3NiwgNjksIDg0LCAxMjgsIDc3LCA3MywgNzYsIDc2LCAxOTcsIDc3LCA3MywgNzYsIAotICAgIDIwNCwgNzcsIDczLCA3NiwgNzUsIDIxNywgNzcsIDczLCA3NiwgMTI4LCA3NywgNzMsIDc1LCA4NSwgODIsIDc5LCA3OCwgCi0gICAgMTI4LCA3NywgNzMsIDc1LCA4MiwgNzksIDIwNiwgNzcsIDczLCA3NSwgODIsIDczLCAxMjgsIDc3LCA3MywgNzMsIDc4LCAKLSAgICAxMjgsIDc3LCA3MywgNzMsIDEyOCwgNzcsIDczLCAxOTksIDc3LCA3MywgNjksIDg4LCAxMjgsIDc3LCA3MywgNjksIDg1LCAKLSAgICA3NywgNDUsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIDEyOCwgNzcsIDczLCA2OSwgODUsIDc3LCA0NSwgODMsIDgzLCA2NSwgCi0gICAgNzgsIDcxLCA4MywgNzMsIDc5LCA4MywgMTI4LCA3NywgNzMsIDY5LCA4NSwgNzcsIDQ1LCA4MywgODMsIDY1LCA3OCwgNzEsIAotICAgIDc4LCA3MywgNjksIDg1LCA3OCwgMTI4LCA3NywgNzMsIDY5LCA4NSwgNzcsIDQ1LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDEyOCwgCi0gICAgNzcsIDczLCA2OSwgODUsIDc3LCA0NSwgODAsIDczLCA2OSwgODUsIDgwLCA0NSwgODMsIDczLCA3OSwgODMsIDEyOCwgNzcsIAotICAgIDczLCA2OSwgODUsIDc3LCA0NSwgODAsIDczLCA2OSwgODUsIDgwLCAxMjgsIDc3LCA3MywgNjksIDg1LCA3NywgNDUsIDgwLCAKLSAgICA2NSwgNzgsIDgzLCA3MywgNzksIDgzLCAxMjgsIDc3LCA3MywgNjksIDg1LCA3NywgNDUsIDc4LCA3MywgNjksIDg1LCA3OCwgCi0gICAgMTI4LCA3NywgNzMsIDY5LCA4NSwgNzcsIDQ1LCA2NywgNzMsIDY5LCA4NSwgNjcsIDEyOCwgNzcsIDczLCA2OSwgODUsIDc3LCAKLSAgICA0NSwgNjcsIDcyLCA3MywgNjksIDg1LCA2NywgNzIsIDEyOCwgNzcsIDczLCA2OSwgODUsIDIwNSwgNzcsIDczLCA2OSwgODAsIAotICAgIDEyOCwgNzcsIDczLCA2OSwgNjksIDEyOCwgNzcsIDczLCA2OSwgMTI4LCA3NywgNzMsIDY4LCA3NiwgNzMsIDc4LCAxOTcsIAotICAgIDc3LCA3MywgNjgsIDY4LCA3NiwgNjksIDQ1LCA4NywgNjksIDc2LCA4MywgMjAwLCA3NywgNzMsIDY4LCA2OCwgNzYsIDE5NywgCi0gICAgNzcsIDczLCAxOTYsIDc3LCA3MywgNjcsIDgyLCA3OSwgODMsIDY3LCA3OSwgODAsIDY5LCAxMjgsIDc3LCA3MywgNjcsIDgyLCAKLSAgICA3OSwgODAsIDcyLCA3OSwgNzgsIDY5LCAxMjgsIDc3LCA3MywgNjcsIDgyLCAyMDcsIDc3LCA3MiwgOTAsIDEyOCwgNzcsIAotICAgIDcyLCAxMjgsIDc3LCA3MSwgODUsIDg4LCAxMjgsIDc3LCA3MSwgODUsIDg0LCAxMjgsIDc3LCA3MSwgODUsIDgyLCA4OCwgCi0gICAgMTI4LCA3NywgNzEsIDg1LCA4MiwgMTI4LCA3NywgNzEsIDg1LCA4MCwgMTI4LCA3NywgNzEsIDg1LCA3OSwgODgsIDEyOCwgCi0gICAgNzcsIDcxLCA4NSwgNzksIDgwLCAxMjgsIDc3LCA3MSwgODUsIDc5LCAxMjgsIDc3LCA3MSwgODUsIDEyOCwgNzcsIDcxLCAKLSAgICA3OSwgODgsIDEyOCwgNzcsIDcxLCA3OSwgODQsIDEyOCwgNzcsIDcxLCA3OSwgODAsIDEyOCwgNzcsIDcxLCA3OSwgMTI4LCAKLSAgICA3NywgNzEsIDIwNywgNzcsIDcxLCA3MywgNjksIDg4LCAxMjgsIDc3LCA3MSwgNzMsIDY5LCAxMjgsIDc3LCA3MSwgNjksIAotICAgIDg4LCAxMjgsIDc3LCA3MSwgNjksIDgwLCAxMjgsIDc3LCA3MSwgNjksIDEyOCwgNzcsIDcxLCA2NiwgODUsIDEyOCwgNzcsIAotICAgIDcxLCA2NiwgNzksIDc5LCAxMjgsIDc3LCA3MSwgNjYsIDc5LCA3MCwgODUsIDc3LCAxMjgsIDc3LCA3MSwgNjYsIDc5LCAKLSAgICAxMjgsIDc3LCA3MSwgNjYsIDczLCAxMjgsIDc3LCA3MSwgNjYsIDY5LCA4NSwgNzgsIDEyOCwgNzcsIDcxLCA2NiwgNjksIAotICAgIDc4LCAxMjgsIDc3LCA3MSwgNjYsIDY5LCA2OSwgMTI4LCA3NywgNzEsIDY2LCA2OSwgMTI4LCA3NywgNzEsIDY2LCA2NSwgCi0gICAgODMsIDY1LCA4MSwgMTI4LCA3NywgNzEsIDY2LCA2NSwgODMsIDY1LCAxMjgsIDc3LCA3MSwgNjUsIDg4LCAxMjgsIDc3LCAKLSAgICA3MSwgNjUsIDg0LCAxMjgsIDc3LCA3MSwgNjUsIDgwLCAxMjgsIDc3LCA3MSwgNjUsIDEyOCwgNzcsIDcxLCAxMjgsIDc3LCAKLSAgICA3MCwgNzksIDc4LCAxMjgsIDc3LCA3MCwgNzksIDIwNiwgNzcsIDcwLCA3OSwgMTI4LCA3NywgNzAsIDczLCA4OSwgNjUsIAotICAgIDgxLCAxMjgsIDc3LCA3MCwgNzMsIDY5LCA2OSwgMTI4LCA3NywgNzAsIDY5LCA4NSwgODQsIDEyOCwgNzcsIDcwLCA2OSwgCi0gICAgODUsIDgxLCAxMjgsIDc3LCA3MCwgNjksIDg1LCA2NSwgNjksIDEyOCwgNzcsIDcwLCA2NSwgNjUsIDEyOCwgNzcsIDY5LCAKLSAgICA5MCwgOTAsIDc5LCAxMjgsIDc3LCA2OSwgODgsIDEyOCwgNzcsIDY5LCA4NSwgMjEyLCA3NywgNjksIDg1LCA4MSwgMTI4LCAKLSAgICA3NywgNjksIDg1LCA3OCwgNzQsIDc5LCA3NywgNzgsIDY4LCA2OSwgODUsIDgxLCAxMjgsIDc3LCA2OSwgODUsIDc4LCAxMjgsIAotICAgIDc3LCA2OSwgODQsIDgyLCA3OSwgMTI4LCA3NywgNjksIDg0LCA4MiwgNzMsIDY3LCA2NSwgMjA0LCA3NywgNjksIDg0LCA4MiwgCi0gICAgNzMsIDY1LCAxMjgsIDc3LCA2OSwgODQsIDgyLCA2OSwgODQsIDY5LCAyMTEsIDc3LCA2OSwgODQsIDc5LCA2NiwgNjksIDc2LCAKLSAgICA4NSwgODMsIDEyOCwgNzcsIDY5LCA4NCwgNjksIDc1LCAxMjgsIDc3LCA2OSwgODQsIDY5LCA3MSwgMTI4LCA3NywgNjksIAotICAgIDg0LCA2NSwgNzYsIDEyOCwgNzcsIDY5LCA4NCwgMTkzLCA3NywgNjksIDgzLCA4MywgNjksIDc4LCA3MywgNjUsIDIwNiwgCi0gICAgNzcsIDY5LCA4MywgNzksIDEyOCwgNzcsIDY5LCA4MywgNzMsIDEyOCwgNzcsIDY5LCA4MywgNzIsIDEyOCwgNzcsIDY5LCAKLSAgICA4MiwgNzUsIDcyLCA2NSwgMTI4LCA3NywgNjksIDgyLCA3NSwgNzIsIDE5MywgNzcsIDY5LCA4MiwgNzMsIDY4LCA3MywgNjUsIAotICAgIDc4LCA4MywgMTI4LCA3NywgNjksIDgyLCA3MywgMTI4LCA3NywgNjksIDgyLCA3MSwgNjksIDEyOCwgNzcsIDY5LCA4MiwgCi0gICAgNjcsIDg1LCA4MiwgODksIDEyOCwgNzcsIDY5LCA4MiwgNjcsIDg1LCA4MiwgMjE3LCA3NywgNjksIDc4LCA2OCwgODUsIDg0LCAKLSAgICAxMjgsIDc3LCA2OSwgNzgsIDEyOCwgNzcsIDY5LCA3NywgNzksIDEyOCwgNzcsIDY5LCA3NywgNjYsIDY5LCA4MiwgODMsIAotICAgIDcyLCA3MywgODAsIDEyOCwgNzcsIDY5LCA3NywgNjYsIDY5LCA4MiwgMTI4LCA3NywgNjksIDc3LCA2NiwgNjksIDIxMCwgCi0gICAgNzcsIDY5LCA3NywgNDUsIDgxLCA3OSwgODAsIDcyLCAxMjgsIDc3LCA2OSwgNzcsIDEyOCwgNzcsIDY5LCAyMDUsIDc3LCAKLSAgICA2OSwgNzYsIDc5LCA2OCwgNzMsIDE5NSwgNzcsIDY5LCA3NiwgNzMsIDc1LCAxMjgsIDc3LCA2OSwgNzMsIDkwLCA3MywgCi0gICAgMTI4LCA3NywgNjksIDcxLCA2NSwgODQsIDc5LCA3OCwgMTI4LCA3NywgNjksIDcxLCA2NSwgODAsIDcyLCA3OSwgNzgsIDY5LCAKLSAgICAxMjgsIDc3LCA2OSwgNzEsIDY1LCA3NiwgNzMsIDEyOCwgNzcsIDY5LCA2OSwgODQsIDc5LCA4MiwgODUsIDEyOCwgNzcsIAotICAgIDY5LCA2OSwgODQsIDY5LCAyMDEsIDc3LCA2OSwgNjksIDg0LCAxMjgsIDc3LCA2OSwgNjksIDc3LCA4NSwgMTI4LCA3NywgCi0gICAgNjksIDY5LCA3NywgMTI4LCA3NywgNjksIDY5LCA2OSwgNjksIDEyOCwgNzcsIDY5LCA2OSwgMTI4LCA3NywgNjksIDY4LCAKLSAgICA3MywgODUsIDc3LCAxMjgsIDc3LCA2OSwgNjgsIDczLCA4NSwgMjA1LCA3NywgNjksIDY4LCA3MywgNjcsIDczLCA3OCwgNjksIAotICAgIDEyOCwgNzcsIDY5LCA2OCwgNzMsIDY3LCA2NSwgMjA0LCA3NywgNjksIDY1LCA4NCwgMTI4LCA3NywgNjksIDY1LCAyMTIsIAotICAgIDc3LCA2OSwgNjUsIDgzLCA4NSwgODIsIDY5LCAxOTYsIDc3LCA2OSwgNjUsIDgzLCA4NSwgODIsIDY5LCAxMjgsIDc3LCA2OSwgCi0gICAgNjUsIDgzLCA4NSwgODIsIDE5NywgNzcsIDY4LCA4NSwgMjA2LCA3NywgNjcsIDcyLCAyMTMsIDc3LCA2NywgNzIsIDY1LCAKLSAgICAyMDYsIDc3LCA2NiwgODUsIDc5LCA4MSwgMTI4LCA3NywgNjYsIDg1LCA3OSwgMTI4LCA3NywgNjYsIDg1LCA2OSwgMTI4LCAKLSAgICA3NywgNjYsIDg1LCA2NSwgNjksIDc3LCAxMjgsIDc3LCA2NiwgODUsIDY1LCA2OSwgMTI4LCA3NywgNjYsIDc5LCA3OSwgCi0gICAgMTI4LCA3NywgNjYsIDc5LCAxMjgsIDc3LCA2NiwgNzMsIDg0LCAxMjgsIDc3LCA2NiwgNzMsIDIxMiwgNzcsIDY2LCA3MywgCi0gICAgODIsIDczLCA2OSwgNjksIDc4LCAxMjgsIDc3LCA2NiwgNzMsIDEyOCwgNzcsIDY2LCA2OSwgODUsIDg4LCAxMjgsIDc3LCAKLSAgICA2NiwgNjksIDg1LCA4MiwgNzMsIDEyOCwgNzcsIDY2LCA2OSwgODUsIDc3LCAxMjgsIDc3LCA2NiwgNjksIDgyLCA2NSwgNjksIAotICAgIDEyOCwgNzcsIDY2LCA2OSwgNzgsIDEyOCwgNzcsIDY2LCA2OSwgNjksIDc1LCA2OSwgNjksIDg0LCAxMjgsIDc3LCA2NiwgCi0gICAgNjksIDY5LCAxMjgsIDc3LCA2NiwgNjksIDEyOCwgNzcsIDY2LCA2NSwgODEsIDEyOCwgNzcsIDY2LCA2NSwgNzgsIDg5LCAKLSAgICA3MywgMTI4LCA3NywgNjYsIDY1LCA2NSwgODIsIDY1LCA2OSwgMTI4LCA3NywgNjYsIDY1LCA2NSwgNzUsIDY5LCA4NCwgCi0gICAgMTI4LCA3NywgNjYsIDY1LCA2NSwgMTI4LCA3NywgNjYsIDY1LCAxOTMsIDc3LCA2NiwgMTkzLCA3NywgNjYsIDUyLCAxMjgsIAotICAgIDc3LCA2NiwgNTEsIDEyOCwgNzcsIDY2LCA1MCwgMTI4LCA3NywgNjYsIDEyOCwgNzcsIDE5NCwgNzcsIDY1LCA4OSwgNjksIAotICAgIDIwMywgNzcsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNzcsIDY1LCA4OSwgMTI4LCA3NywgNjUsIDg4LCA3MywgCi0gICAgNzcsIDY1LCAxMjgsIDc3LCA2NSwgODgsIDEyOCwgNzcsIDY1LCA4NCwgODQsIDc5LCA2NywgNzUsIDEyOCwgNzcsIDY1LCAKLSAgICA4NCwgODIsIDczLCA4OCwgMTI4LCA3NywgNjUsIDg0LCA2OSwgODIsIDczLCA2NSwgNzYsIDgzLCAxMjgsIDc3LCA2NSwgODQsIAotICAgIDEyOCwgNzcsIDY1LCA4MywgMjEzLCA3NywgNjUsIDgzLCA4MywgNzMsIDc4LCA3MSwgMTI4LCA3NywgNjUsIDgzLCA4MywgCi0gICAgNjUsIDcxLCA2OSwgMTI4LCA3NywgNjUsIDgzLCA3OSwgODIsIDE5MywgNzcsIDY1LCA4MywgNzUsIDEyOCwgNzcsIDY1LCAKLSAgICA4MywgNzIsIDcwLCA2NSwgNjUsIDg0LCAxMjgsIDc3LCA2NSwgODMsIDcyLCA1MCwgMTI4LCA3NywgNjUsIDgzLCA2NywgODUsIAotICAgIDc2LCA3MywgNzgsIDE5NywgNzcsIDY1LCA4MiwgODksIDEyOCwgNzcsIDY1LCA4MiwgODUsIDc1LCA4NSwgMTI4LCA3NywgCi0gICAgNjUsIDgyLCA4NCwgODksIDgyLCA3MywgMTkzLCA3NywgNjUsIDgyLCA4MiwgODksIDczLCA3OCwgMTk5LCA3NywgNjUsIDgyLCAKLSAgICA4MiwgNzMsIDY1LCA3MSwgMTk3LCA3NywgNjUsIDgyLCA3NSwgNjksIDgyLCAxMjgsIDc3LCA2NSwgODIsIDc1LCA0NSwgNTIsIAotICAgIDEyOCwgNzcsIDY1LCA4MiwgNzUsIDQ1LCA1MSwgMTI4LCA3NywgNjUsIDgyLCA3NSwgNDUsIDUwLCAxMjgsIDc3LCA2NSwgCi0gICAgODIsIDc1LCA0NSwgNDksIDEyOCwgNzcsIDY1LCA4MiwgNjksIDEyOCwgNzcsIDY1LCA4MiwgNjcsIDcyLCAxMjgsIDc3LCAKLSAgICA2NSwgODIsIDY3LCA2NSwgODQsIDc5LCA0NSwgODMsIDg0LCA2NSwgNjcsIDY3LCA2NSwgODQsIDc5LCAxMjgsIDc3LCA2NSwgCi0gICAgODIsIDY3LCA2NSwgODQsIDc5LCAxMjgsIDc3LCA2NSwgODIsIDY3LCA2NSwgODMsIDczLCA4NCwgNjksIDEyOCwgNzcsIDY1LCAKLSAgICA4MiwgNjYsIDg1LCA4NCwgNjUsIDEyOCwgNzcsIDY1LCA4MiwgNjYsIDg1LCA4NCwgMTkzLCA3NywgNjUsIDgyLCAxMjgsIAotICAgIDc3LCA2NSwgODEsIDY1LCA3MCwgMTI4LCA3NywgNjUsIDgxLCAxMjgsIDc3LCA2NSwgODAsIDc2LCAxOTcsIDc3LCA2NSwgCi0gICAgODAsIDczLCA4MSwgMTI4LCA3NywgNjUsIDIwOCwgNzcsIDY1LCA3OSwgMTI4LCA3NywgNjUsIDc4LCA4MywgODksIDc5LCAKLSAgICA3OCwgMTI4LCA3NywgNjUsIDc4LCA4MywgODUsIDY1LCA2OSwgMTI4LCA3NywgNjUsIDc4LCA3OCwgNjUsIDIxOCwgNzcsIAotICAgIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDc3LCA2NSwgNzgsIDcxLCA2NSwgNzYsIDY1LCA3NywgMTI4LCA3NywgNjUsIDc4LCA2OCwgCi0gICAgNjUsIDczLCA3NiwgNzMsIDc4LCAxOTksIDc3LCA2NSwgNzgsIDY4LCA2NSwgNzMsIDE5NSwgNzcsIDY1LCA3OCwgNjcsIDcyLCAKLSAgICAyMTMsIDc3LCA2NSwgNzgsIDY1LCA2NywgNzYsIDY5LCA4MywgMTI4LCA3NywgNjUsIDc2LCA4NCwgNjksIDgzLCAxOTcsIAotICAgIDc3LCA2NSwgNzYsIDY5LCA2OSwgODIsIDczLCAxMjgsIDc3LCA2NSwgNzYsIDY5LCAxMjgsIDc3LCA2NSwgNzYsIDE5NywgCi0gICAgNzcsIDY1LCA3NiwgNjUsIDc1LCA3OSwgMjA2LCA3NywgNjUsIDc1LCA4MywgODUsIDgyLCA2NSwgMTI4LCA3NywgNjUsIDczLCAKLSAgICA5MCwgNjksIDEyOCwgNzcsIDY1LCA3MywgODksIDY1LCA3NywgNzksIDc1LCAxMjgsIDc3LCA2NSwgNzMsIDg0LCA2NSwgNzMsIAotICAgIDc1LCA3MiwgODUsIDEyOCwgNzcsIDY1LCA3MywgODIsIDg1LCAxMjgsIDc3LCA2NSwgNzMsIDc3LCA4NSwgNjUsIDc4LCAKLSAgICAxMjgsIDc3LCA2NSwgNzMsIDc3LCA2NSwgNzYsIDY1LCA3MywgMTI4LCA3NywgNjUsIDczLCA3NiwgNjYsIDc5LCAyMTYsIAotICAgIDc3LCA2NSwgNzMsIDc1LCA4NSwgODIsIDc5LCAxMjgsIDc3LCA2NSwgNzMsIDY4LCA2OSwgNzgsIDEyOCwgNzcsIDY1LCA3MiwgCi0gICAgNzQsIDc5LCA3OCwgMTk5LCA3NywgNjUsIDcyLCA3MiwgNjUsIDEyOCwgNzcsIDY1LCA3MiwgNjUsIDgwLCA4MiwgNjUsIDc4LCAKLSAgICA2NSwgMTI4LCA3NywgNjUsIDcyLCA2NSwgODAsIDY1LCA3NSwgNzIsIDEyOCwgNzcsIDY1LCA3MiwgNjUsIDY1LCA4MCwgODIsIAotICAgIDY1LCA2NSwgNzgsIDE5MywgNzcsIDY1LCA3MiwgMTI4LCA3NywgNjUsIDcxLCA3OCwgNzMsIDcwLCA4OSwgNzMsIDc4LCAKLSAgICAxOTksIDc3LCA2NSwgNjksIDgzLCA3MywgMTI4LCA3NywgNjUsIDY5LCA3OCwgODksIDczLCAxMjgsIDc3LCA2NSwgNjksIAotICAgIDc4LCA3NCwgNjksIDg0LCAxMjgsIDc3LCA2NSwgNjksIDc3LCA4NiwgNjksIDg1LCA4OCwgMTI4LCA3NywgNjUsIDY5LCA3NywgCi0gICAgNzUsIDgwLCA2OSwgNzgsIDEyOCwgNzcsIDY1LCA2OSwgNzcsIDcxLCA2NiwgNzMsIDY5LCA2OSwgMTI4LCA3NywgNjUsIDY5LCAKLSAgICA3NywgNjYsIDcxLCA2NiwgNzMsIDY5LCA2OSwgMTI4LCA3NywgNjUsIDY5LCA3NywgNjYsIDY1LCAxMjgsIDc3LCA2NSwgNjksIAotICAgIDc3LCAxMjgsIDc3LCA2NSwgNjksIDc2LCA2OSwgNjksIDEyOCwgNzcsIDY1LCA2OSwgNzUsIDY5LCA4NSwgODAsIDEyOCwgCi0gICAgNzcsIDY1LCA2OCwgODksIDY1LCAxMjgsIDc3LCA2NSwgNjgsIDg1LCAxMjgsIDc3LCA2NSwgNjgsIDY4LCA2NSwgMjAwLCAKLSAgICA3NywgNjUsIDY4LCA2OCwgNjUsIDEyOCwgNzcsIDY1LCA2OCwgNjgsIDE5MywgNzcsIDY1LCA2NywgODIsIDc5LCA3OCwgNDUsIAotICAgIDcxLCA4MiwgNjUsIDg2LCA2OSwgMTI4LCA3NywgNjUsIDY3LCA4MiwgNzksIDc4LCA0NSwgNjYsIDgyLCA2OSwgODYsIDY5LCAKLSAgICAxMjgsIDc3LCA2NSwgNjcsIDgyLCA3OSwgNzgsIDQ1LCA2NSwgNjcsIDg1LCA4NCwgNjksIDEyOCwgNzcsIDY1LCA2NywgODIsIAotICAgIDc5LCA3OCwgMTI4LCA3NywgNjUsIDY3LCA4MiwgNzksIDIwNiwgNzcsIDY1LCA2NywgNzIsIDczLCA3OCwgNjksIDEyOCwgCi0gICAgNzcsIDY1LCA2NSwgNzMsIDEyOCwgNzcsIDY1LCA2NSwgMTI4LCA3NywgNjUsIDUwLCAxMjgsIDc3LCA0OCwgNTIsIDUyLCAKLSAgICAxMjgsIDc3LCA0OCwgNTIsIDUxLCAxMjgsIDc3LCA0OCwgNTIsIDUwLCAxMjgsIDc3LCA0OCwgNTIsIDQ5LCAxMjgsIDc3LCAKLSAgICA0OCwgNTIsIDQ4LCA2NSwgMTI4LCA3NywgNDgsIDUyLCA0OCwgMTI4LCA3NywgNDgsIDUxLCA1NywgMTI4LCA3NywgNDgsIAotICAgIDUxLCA1NiwgMTI4LCA3NywgNDgsIDUxLCA1NSwgMTI4LCA3NywgNDgsIDUxLCA1NCwgMTI4LCA3NywgNDgsIDUxLCA1MywgCi0gICAgMTI4LCA3NywgNDgsIDUxLCA1MiwgMTI4LCA3NywgNDgsIDUxLCA1MSwgNjYsIDEyOCwgNzcsIDQ4LCA1MSwgNTEsIDY1LCAKLSAgICAxMjgsIDc3LCA0OCwgNTEsIDUxLCAxMjgsIDc3LCA0OCwgNTEsIDUwLCAxMjgsIDc3LCA0OCwgNTEsIDQ5LCA2NSwgMTI4LCAKLSAgICA3NywgNDgsIDUxLCA0OSwgMTI4LCA3NywgNDgsIDUxLCA0OCwgMTI4LCA3NywgNDgsIDUwLCA1NywgMTI4LCA3NywgNDgsIAotICAgIDUwLCA1NiwgNjUsIDEyOCwgNzcsIDQ4LCA1MCwgNTYsIDEyOCwgNzcsIDQ4LCA1MCwgNTUsIDEyOCwgNzcsIDQ4LCA1MCwgCi0gICAgNTQsIDEyOCwgNzcsIDQ4LCA1MCwgNTMsIDEyOCwgNzcsIDQ4LCA1MCwgNTIsIDY1LCAxMjgsIDc3LCA0OCwgNTAsIDUyLCAKLSAgICAxMjgsIDc3LCA0OCwgNTAsIDUxLCAxMjgsIDc3LCA0OCwgNTAsIDUwLCA2NSwgMTI4LCA3NywgNDgsIDUwLCA1MCwgMTI4LCAKLSAgICA3NywgNDgsIDUwLCA0OSwgMTI4LCA3NywgNDgsIDUwLCA0OCwgMTI4LCA3NywgNDgsIDQ5LCA1NywgMTI4LCA3NywgNDgsIAotICAgIDQ5LCA1NiwgMTI4LCA3NywgNDgsIDQ5LCA1NSwgNjUsIDEyOCwgNzcsIDQ4LCA0OSwgNTUsIDEyOCwgNzcsIDQ4LCA0OSwgCi0gICAgNTQsIDY1LCAxMjgsIDc3LCA0OCwgNDksIDU0LCAxMjgsIDc3LCA0OCwgNDksIDUzLCA2NSwgMTI4LCA3NywgNDgsIDQ5LCAKLSAgICA1MywgMTI4LCA3NywgNDgsIDQ5LCA1MiwgMTI4LCA3NywgNDgsIDQ5LCA1MSwgMTI4LCA3NywgNDgsIDQ5LCA1MCwgNzIsIAotICAgIDEyOCwgNzcsIDQ4LCA0OSwgNTAsIDcxLCAxMjgsIDc3LCA0OCwgNDksIDUwLCA3MCwgMTI4LCA3NywgNDgsIDQ5LCA1MCwgCi0gICAgNjksIDEyOCwgNzcsIDQ4LCA0OSwgNTAsIDY4LCAxMjgsIDc3LCA0OCwgNDksIDUwLCA2NywgMTI4LCA3NywgNDgsIDQ5LCAKLSAgICA1MCwgNjYsIDEyOCwgNzcsIDQ4LCA0OSwgNTAsIDY1LCAxMjgsIDc3LCA0OCwgNDksIDUwLCAxMjgsIDc3LCA0OCwgNDksIAotICAgIDQ5LCAxMjgsIDc3LCA0OCwgNDksIDQ4LCA2NSwgMTI4LCA3NywgNDgsIDQ5LCA0OCwgMTI4LCA3NywgNDgsIDQ4LCA1NywgCi0gICAgMTI4LCA3NywgNDgsIDQ4LCA1NiwgMTI4LCA3NywgNDgsIDQ4LCA1NSwgMTI4LCA3NywgNDgsIDQ4LCA1NCwgMTI4LCA3NywgCi0gICAgNDgsIDQ4LCA1MywgMTI4LCA3NywgNDgsIDQ4LCA1MiwgMTI4LCA3NywgNDgsIDQ4LCA1MSwgNjUsIDEyOCwgNzcsIDQ4LCAKLSAgICA0OCwgNTEsIDEyOCwgNzcsIDQ4LCA0OCwgNTAsIDEyOCwgNzcsIDQ4LCA0OCwgNDksIDY2LCAxMjgsIDc3LCA0OCwgNDgsIAotICAgIDQ5LCA2NSwgMTI4LCA3NywgNDgsIDQ4LCA0OSwgMTI4LCA3NiwgMjE4LCA3NiwgODksIDg5LCAxMjgsIDc2LCA4OSwgODgsIAotICAgIDEyOCwgNzYsIDg5LCA4NCwgMTI4LCA3NiwgODksIDgyLCA4OCwgMTI4LCA3NiwgODksIDgyLCAxMjgsIDc2LCA4OSwgODAsIAotICAgIDEyOCwgNzYsIDg5LCA2OCwgNzMsIDY1LCAyMDYsIDc2LCA4OSwgNjcsIDczLCA2NSwgMjA2LCA3NiwgODgsIDEyOCwgNzYsIAotICAgIDg3LCA3OSwgNzksIDEyOCwgNzYsIDg3LCA3OSwgMTI4LCA3NiwgODcsIDczLCA3MywgMTI4LCA3NiwgODcsIDczLCAxMjgsIAotICAgIDc2LCA4NywgNjksIDEyOCwgNzYsIDg3LCA2NSwgNjUsIDEyOCwgNzYsIDg3LCA2NSwgMTI4LCA3NiwgODUsIDg4LCAxMjgsIAotICAgIDc2LCA4NSwgODQsIDEyOCwgNzYsIDg1LCA4MiwgODgsIDEyOCwgNzYsIDg1LCA4MCwgMTI4LCA3NiwgODUsIDc5LCA4OCwgCi0gICAgMTI4LCA3NiwgODUsIDc5LCA4NCwgMTI4LCA3NiwgODUsIDc5LCA4MCwgMTI4LCA3NiwgODUsIDc5LCAxMjgsIDc2LCA4NSwgCi0gICAgNzgsIDcxLCA4MywgNzMsIDEyOCwgNzYsIDg1LCA3OCwgNjUsIDg0LCAxOTcsIDc2LCA4NSwgMjA1LCA3NiwgODUsIDc2LCAKLSAgICAxMjgsIDc2LCA4NSwgNzMsIDgzLCAxMjgsIDc2LCA4NSwgNzIsIDg1LCA4MiwgMTI4LCA3NiwgODUsIDcyLCAxMjgsIDc2LCAKLSAgICA4NSwgNzEsIDcxLCA2NSwgNzEsIDY5LCAxMjgsIDc2LCA4NSwgNzEsIDY1LCA3NiwgMTI4LCA3NiwgODUsIDcxLCA2NSwgCi0gICAgMjA0LCA3NiwgODUsIDY5LCAxMjgsIDc2LCA4NSwgNjUsIDY5LCA4MCwgMTI4LCA3NiwgODUsIDUxLCAxMjgsIDc2LCA4NSwgCi0gICAgNTAsIDEyOCwgNzYsIDg1LCAxNzgsIDc2LCA3OSwgOTAsIDY5LCA3OCwgNzEsIDY5LCAxMjgsIDc2LCA3OSwgOTAsIDY5LCAKLSAgICA3OCwgNzEsIDE5NywgNzYsIDc5LCA4OCwgMTI4LCA3NiwgNzksIDg3LCA2OSwgODIsIDY5LCAxOTYsIDc2LCA3OSwgODcsIAotICAgIDY5LCAyMTAsIDc2LCA3OSwgODcsIDQ1LCAxODUsIDc2LCA3OSwgODYsIDE5NywgNzYsIDc5LCA4NSwgODIsIDY5LCAxMjgsIAotICAgIDc2LCA3OSwgODUsIDY4LCA4MywgODAsIDY5LCA2NSwgNzUsIDY5LCA4MiwgMTI4LCA3NiwgNzksIDg1LCA2OCwgNzYsIDIxNywgCi0gICAgNzYsIDc5LCA4NCwgODUsIDgzLCAxMjgsIDc2LCA3OSwgODQsIDEyOCwgNzYsIDc5LCA4MiwgODIsIDg5LCAxMjgsIDc2LCAKLSAgICA3OSwgODIsIDgyLCA2NSwgNzMsIDc4LCA2OSwgMTI4LCA3NiwgNzksIDgxLCAxMjgsIDc2LCA3OSwgODAsIDEyOCwgNzYsIAotICAgIDc5LCA3OSwgODQsIDEyOCwgNzYsIDc5LCA3OSwgODAsIDEyOCwgNzYsIDc5LCA3OSwgNzgsIDEyOCwgNzYsIDc5LCA3OSwgCi0gICAgMjAzLCA3NiwgNzksIDc5LCAxMjgsIDc2LCA3OSwgNzgsIDgzLCA4NSwgNzcsIDEyOCwgNzYsIDc5LCA3OCwgNzEsIDY1LCAKLSAgICAxMjgsIDc2LCA3OSwgNzgsIDcxLCAxOTMsIDc2LCA3OSwgNzgsIDcxLCA0NSwgNjYsIDgyLCA2NSwgNzgsIDY3LCA3MiwgNDUsIAotICAgIDg5LCA4MiwgMTI4LCA3NiwgNzksIDc4LCA3MSwgNDUsIDY2LCA4MiwgNjUsIDc4LCA2NywgNzIsIDQ1LCA4MywgNzksIDIwNCwgCi0gICAgNzYsIDc5LCA3OCwgNzEsIDQ1LCA2NiwgODIsIDY1LCA3OCwgNjcsIDcyLCA0NSwgNzksIDgzLCAyMTEsIDc2LCA3OSwgNzgsIAotICAgIDcxLCA0NSwgNjYsIDgyLCA2NSwgNzgsIDY3LCA3MiwgNDUsIDc3LCA2NSwgNjgsIDIxMCwgNzYsIDc5LCA3OCwgNzEsIDQ1LCAKLSAgICA2NiwgODIsIDY1LCA3OCwgNjcsIDcyLCA0NSwgNzIsIDY1LCA3MSwgNjUsIDc2LCAyMDQsIDc2LCA3OSwgNzgsIDcxLCA0NSwgCi0gICAgNjYsIDgyLCA2NSwgNzgsIDY3LCA3MiwgNDUsIDY1LCAyMTAsIDc2LCA3OSwgNzcsIDc3LCA2NSwgNjksIDEyOCwgNzYsIDc5LCAKLSAgICA3NywgMTI4LCA3NiwgNzksIDIwNSwgNzYsIDc5LCA3NiwgNzYsIDczLCA4MCwgNzksIDgwLCAxMjgsIDc2LCA3OSwgNzYsIAotICAgIDc2LCAxMjgsIDc2LCA3OSwgNzEsIDIxMCwgNzYsIDc5LCA3MSwgNzksIDg0LCA4OSwgODAsIDE5NywgNzYsIDc5LCA3MSwgCi0gICAgNzksIDcxLCA4MiwgNjUsIDIwNSwgNzYsIDc5LCA3MSwgMTI4LCA3NiwgNzksIDY4LCA2OSwgODMsIDg0LCA3OSwgNzgsIDY5LCAKLSAgICAxMjgsIDc2LCA3OSwgNjcsIDc5LCA3NywgNzksIDg0LCA3MywgODYsIDY5LCAxMjgsIDc2LCA3OSwgNjcsIDIwMywgNzYsIAotICAgIDc5LCA2NywgNjUsIDg0LCA3MywgODYsIDY5LCAxMjgsIDc2LCA3OSwgNjcsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDc2LCA3OSwgCi0gICAgNjUsIDEyOCwgNzYsIDc4LCAxMjgsIDc2LCA3NywgMTI4LCA3NiwgNzYsIDc2LCA2NSwgMTI4LCA3NiwgNzQsIDg1LCA2OCwgCi0gICAgNzMsIDc0LCA2OSwgMTI4LCA3NiwgNzQsIDY5LCAxMjgsIDc2LCA3NCwgMTI4LCA3NiwgNzMsIDg4LCAxMjgsIDc2LCA3MywgCi0gICAgODcsIDc4LCAxMjgsIDc2LCA3MywgODYsIDgyLCAxOTcsIDc2LCA3MywgODQsIDg0LCA3NiwgMTk3LCA3NiwgNzMsIDg0LCAKLSAgICA4NCwgNjksIDIxMCwgNzYsIDczLCA4NCwgODIsIDE5MywgNzYsIDczLCA4NCwgMTI4LCA3NiwgNzMsIDgzLCAyMTMsIDc2LCAKLSAgICA3MywgODIsIDE5MywgNzYsIDczLCA4MSwgODUsIDczLCAxOTYsIDc2LCA3MywgODEsIDEyOCwgNzYsIDczLCA4MCwgODMsIAotICAgIDg0LCA3MywgNjcsIDc1LCAxMjgsIDc2LCA3MywgNzgsIDc1LCA3MywgNzgsIDE5OSwgNzYsIDczLCA3OCwgMjAzLCA3NiwgCi0gICAgNzMsIDc4LCA3MSwgODMsIDY1LCAxMjgsIDc2LCA3MywgNzgsIDY5LCA4MywgMTI4LCA3NiwgNzMsIDc4LCA2OSwgMjExLCAKLSAgICA3NiwgNzMsIDc4LCA2OSwgNDUsIDU3LCAxMjgsIDc2LCA3MywgNzgsIDY5LCA0NSwgNTUsIDEyOCwgNzYsIDczLCA3OCwgNjksIAotICAgIDQ1LCA1MSwgMTI4LCA3NiwgNzMsIDc4LCA2OSwgNDUsIDQ5LCAxMjgsIDc2LCA3MywgNzcsIDc3LCA4NSwgNTIsIDEyOCwgCi0gICAgNzYsIDczLCA3NywgNzcsIDg1LCA1MCwgMTI4LCA3NiwgNzMsIDc3LCA3NywgODUsIDEyOCwgNzYsIDczLCA3NywgNzcsIAotICAgIDIxMywgNzYsIDczLCA3NywgNzMsIDg0LCA2OSwgMTk2LCA3NiwgNzMsIDc3LCA3MywgODQsIDY1LCA4NCwgNzMsIDc5LCA3OCwgCi0gICAgMTI4LCA3NiwgNzMsIDc3LCA3MywgODQsIDEyOCwgNzYsIDczLCA3NywgNjksIDEyOCwgNzYsIDczLCA3NiwgODksIDEyOCwgCi0gICAgNzYsIDczLCA3NiwgNzMsIDg0LCA3MiwgMTI4LCA3NiwgNzMsIDc2LCAxMjgsIDc2LCA3MywgNzMsIDEyOCwgNzYsIDczLCAKLSAgICA3MSwgNzIsIDg0LCA3OCwgNzMsIDc4LCA3MSwgMTI4LCA3NiwgNzMsIDcxLCA3MiwgODQsIDcyLCA3OSwgODUsIDgzLCA2OSwgCi0gICAgMTI4LCA3NiwgNzMsIDcxLCA3MiwgODQsIDEyOCwgNzYsIDczLCA3MCwgNjksIDEyOCwgNzYsIDczLCA2OSwgODgsIDEyOCwgCi0gICAgNzYsIDczLCA2OSwgODQsIDEyOCwgNzYsIDczLCA2OSwgODAsIDEyOCwgNzYsIDczLCA2OSwgNjksIDEyOCwgNzYsIDczLCAKLSAgICA2OSwgMTI4LCA3NiwgNzMsIDY4LCAxMjgsIDc2LCA3MywgNjYsIDgyLCA2NSwgMTI4LCA3NiwgNzMsIDY2LCA2OSwgODIsIAotICAgIDg0LCA4OSwgMTI4LCA3NiwgNzMsIDY1LCA2NiwgNzMsIDc2LCA3MywgODQsIDIxNywgNzYsIDcyLCA3MywgNzMsIDEyOCwgCi0gICAgNzYsIDcyLCA2NSwgODYsIDczLCA4OSwgNjUsIDc4LCA3MywgMTI4LCA3NiwgNzIsIDY1LCAxOTksIDc2LCA3MiwgNjUsIDY1LCAKLSAgICAxMjgsIDc2LCA3MiwgMTI4LCA3NiwgNjksIDkwLCA3MiwgMTI4LCA3NiwgNjksIDg4LCAxMjgsIDc2LCA2OSwgODYsIDY5LCAKLSAgICAyMDQsIDc2LCA2OSwgODUsIDc3LCAxMjgsIDc2LCA2OSwgODUsIDY1LCA2OSwgODAsIDEyOCwgNzYsIDY5LCA4NSwgNjUsIAotICAgIDY5LCA3NywgMTI4LCA3NiwgNjksIDg0LCA4NCwgNjksIDgyLCA4MywgMTI4LCA3NiwgNjksIDg0LCA4NCwgNjksIDgyLCAKLSAgICAxMjgsIDc2LCA2OSwgMjEyLCA3NiwgNjksIDgzLCA4MywgNjksIDIxMCwgNzYsIDY5LCA4MywgODMsIDQ1LCA4NCwgNzIsIAotICAgIDY1LCA3OCwgMTI4LCA3NiwgNjksIDgzLCA4MywgNDUsIDg0LCA3MiwgNjUsIDIwNiwgNzYsIDY5LCA4MCwgMTI4LCA3NiwgCi0gICAgNjksIDc5LCA4MCwgNjUsIDgyLCA2OCwgMTI4LCA3NiwgNjksIDc5LCAxMjgsIDc2LCA2OSwgNzgsIDg0LCA3MywgNjcsIDg1LCAKLSAgICA3NiwgNjUsIDIxMCwgNzYsIDY5LCA3OCwgNzMsIDgzLCAxMjgsIDc2LCA2OSwgNzgsIDcxLCA4NCwgNzIsIDY5LCA3OCwgNjksIAotICAgIDgyLCAxMjgsIDc2LCA2OSwgNzgsIDcxLCA4NCwgMjAwLCA3NiwgNjksIDc4LCA3MSwgNjUsIDEyOCwgNzYsIDY5LCA3OCwgCi0gICAgNzEsIDE5MywgNzYsIDY5LCA3NywgNzksIDc4LCAxMjgsIDc2LCA2OSwgNzcsIDc5LCA3MywgMTI4LCA3NiwgNjksIDc2LCAKLSAgICA2OSwgODQsIDEyOCwgNzYsIDY5LCA3NiwgNjksIDIxMiwgNzYsIDY5LCAyMDMsIDc2LCA2OSwgNzMsIDc3LCA3NywgNjUsIAotICAgIDEyOCwgNzYsIDY5LCA3MywgNzcsIDc3LCAxOTMsIDc2LCA2OSwgNzEsIDgzLCAxMjgsIDc2LCA2OSwgNzEsIDczLCA3OSwgCi0gICAgNzgsIDEyOCwgNzYsIDY5LCA3MSwgNjksIDg0LCA3OSwgMjExLCA3NiwgNjksIDcxLCAxMjgsIDc2LCA2OSwgNzAsIDg0LCAKLSAgICA4NywgNjUsIDgyLCA2OCwgODMsIDEyOCwgNzYsIDY5LCA3MCwgODQsIDQ1LCA4NCwgNzksIDQ1LCA4MiwgNzMsIDcxLCA3MiwgCi0gICAgMjEyLCA3NiwgNjksIDcwLCA4NCwgNDUsIDgzLCA4NCwgNjksIDIwNSwgNzYsIDY5LCA3MCwgODQsIDQ1LCA4MywgNzMsIDY4LCAKLSAgICAxOTcsIDc2LCA2OSwgNzAsIDg0LCA0NSwgODMsIDcyLCA2NSwgNjgsIDY5LCAxOTYsIDc2LCA2OSwgNzAsIDg0LCA0NSwgODAsIAotICAgIDc5LCA3MywgNzgsIDg0LCA3MywgNzgsIDE5OSwgNzYsIDY5LCA3MCwgODQsIDQ1LCA3MiwgNjUsIDc4LCA2OCwgNjksIDE5NiwgCi0gICAgNzYsIDY5LCA3MCwgODQsIDQ1LCA3MiwgNjUsIDc4LCAxOTYsIDc2LCA2OSwgNzAsIDg0LCA0NSwgNzAsIDY1LCA2NywgNzMsIAotICAgIDc4LCAxOTksIDc2LCA2OSwgNzAsIDg0LCAxMjgsIDc2LCA2OSwgNjksIDgyLCA2NSwgNjksIDg3LCA2NSwgMTI4LCA3NiwgCi0gICAgNjksIDY5LCA3NSwgMTI4LCA3NiwgNjksIDY5LCA2OSwgNjksIDEyOCwgNzYsIDY5LCA2OCwgNzEsIDY5LCA4MiwgMTI4LCAKLSAgICA3NiwgNjksIDY1LCA4NCwgNzIsIDY5LCA4MiwgMTI4LCA3NiwgNjksIDY1LCA3MCwgMTI4LCA3NiwgNjksIDY1LCAxOTgsIAotICAgIDc2LCA2OSwgNjUsIDY4LCA3MywgNzgsIDE5OSwgNzYsIDY5LCA2NSwgNjgsIDY5LCA4MiwgMTI4LCA3NiwgNjksIDY1LCAKLSAgICAxOTYsIDc2LCA2OCwgNjUsIDc4LCAxMjgsIDc2LCA2OCwgNTAsIDEyOCwgNzYsIDY3LCAyMDEsIDc2LCA2NywgMTk3LCA3NiwgCi0gICAgNjUsIDkwLCAyMTcsIDc2LCA2NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDc2LCA2NSwgODgsIDEyOCwgNzYsIDY1LCAKLSAgICA4NywgMTI4LCA3NiwgNjUsIDIxNSwgNzYsIDY1LCA4NSwgNzYsIDY1LCAxMjgsIDc2LCA2NSwgODUsIDc1LCA2NSwgMjE4LCAKLSAgICA3NiwgNjUsIDg0LCA3MywgNzgsIDY1LCA4NCwgMTk3LCA3NiwgNjUsIDg0LCA3MywgNzUsIDEyOCwgNzYsIDY1LCA4NCwgNjksIAotICAgIDgyLCA2NSwgMjA0LCA3NiwgNjUsIDg0LCAxOTcsIDc2LCA2NSwgODMsIDIxMiwgNzYsIDY1LCA4MiwgODksIDc4LCA3MSwgCi0gICAgNjksIDY1LCAyMDQsIDc2LCA2NSwgODIsIDcxLCA2OSwgMjEwLCA3NiwgNjUsIDgyLCA3MSwgNjksIDEyOCwgNzYsIDY1LCAKLSAgICA4MiwgNzEsIDE5NywgNzYsIDY1LCA4MSwgMTI4LCA3NiwgNjUsIDgwLCA2NSwgODEsIDEyOCwgNzYsIDY1LCA4MCwgMTI4LCAKLSAgICA3NiwgNjUsIDIwNywgNzYsIDY1LCA3OCwgODQsIDY5LCA4MiwgNzgsIDEyOCwgNzYsIDY1LCA3OCwgNzEsIDg1LCA2NSwgNzEsIAotICAgIDE5NywgNzYsIDY1LCA3OCwgNjksIDgzLCAxMjgsIDc2LCA2NSwgNzcsIDY5LCA2OCwgNzIsIDEyOCwgNzYsIDY1LCA3NywgCi0gICAgNjksIDY4LCAxMjgsIDc2LCA2NSwgNzcsIDY5LCAxOTYsIDc2LCA2NSwgNzcsIDY5LCAxMjgsIDc2LCA2NSwgNzcsIDE5NywgCi0gICAgNzYsIDY1LCA3NywgNjgsIDY1LCAxMjgsIDc2LCA2NSwgNzcsIDY4LCAxMjgsIDc2LCA2NSwgNzcsIDY2LCA2OCwgMTkzLCAKLSAgICA3NiwgNjUsIDc3LCA2NSwgNjgsIDcyLCAxMjgsIDc2LCA2NSwgNzYsIDEyOCwgNzYsIDY1LCAyMDQsIDc2LCA2NSwgNzUsIAotICAgIDc1LCA3MiwgNjUsIDc4LCA3MSwgODksIDY1LCA3OSwgMTI4LCA3NiwgNjUsIDc0LCA2NSwgNzgsIDg5LCA2NSwgNzYsIDY1LCAKLSAgICA3OCwgMTI4LCA3NiwgNjUsIDIwMSwgNzYsIDY1LCA3MiwgODMsIDcyLCA4NSwgMTI4LCA3NiwgNjUsIDcxLCA4NSwgODMsIAorICAgIDc4LCA3OCwgNjYsIDgzLCA4MCwgMTI4LCA3OCwgNzcsIDEyOCwgNzgsIDc2LCA0OCwgNTAsIDQ4LCAxMjgsIDc4LCA3NiwgCisgICAgNDgsIDQ5LCA1NywgMTI4LCA3OCwgNzYsIDQ4LCA0OSwgNTYsIDEyOCwgNzgsIDc2LCA0OCwgNDksIDU1LCA2NSwgMTI4LCAKKyAgICA3OCwgNzYsIDQ4LCA0OSwgNTUsIDEyOCwgNzgsIDc2LCA0OCwgNDksIDU0LCAxMjgsIDc4LCA3NiwgNDgsIDQ5LCA1MywgCisgICAgMTI4LCA3OCwgNzYsIDQ4LCA0OSwgNTIsIDEyOCwgNzgsIDc2LCA0OCwgNDksIDUxLCAxMjgsIDc4LCA3NiwgNDgsIDQ5LCAKKyAgICA1MCwgMTI4LCA3OCwgNzYsIDQ4LCA0OSwgNDksIDEyOCwgNzgsIDc2LCA0OCwgNDksIDQ4LCAxMjgsIDc4LCA3NiwgNDgsIAorICAgIDQ4LCA1NywgMTI4LCA3OCwgNzYsIDQ4LCA0OCwgNTYsIDEyOCwgNzgsIDc2LCA0OCwgNDgsIDU1LCAxMjgsIDc4LCA3NiwgCisgICAgNDgsIDQ4LCA1NCwgMTI4LCA3OCwgNzYsIDQ4LCA0OCwgNTMsIDY1LCAxMjgsIDc4LCA3NiwgNDgsIDQ4LCA1MywgMTI4LCAKKyAgICA3OCwgNzYsIDQ4LCA0OCwgNTIsIDEyOCwgNzgsIDc2LCA0OCwgNDgsIDUxLCAxMjgsIDc4LCA3NiwgNDgsIDQ4LCA1MCwgCisgICAgMTI4LCA3OCwgNzYsIDQ4LCA0OCwgNDksIDEyOCwgNzgsIDc2LCAxMjgsIDc4LCA3NSwgNzksIDc3LCAxMjgsIDc4LCA3NSwgCisgICAgMjA3LCA3OCwgNzUsIDczLCA3OCwgNjgsIDczLCAxMjgsIDc4LCA3NSwgNjUsIDY1LCA4MiwgNjUsIDY5LCAxMjgsIDc4LCAKKyAgICA3NCwgODksIDg4LCAxMjgsIDc4LCA3NCwgODksIDg0LCAxMjgsIDc4LCA3NCwgODksIDgyLCA4OCwgMTI4LCA3OCwgNzQsIAorICAgIDg5LCA4MiwgMTI4LCA3OCwgNzQsIDg5LCA4MCwgMTI4LCA3OCwgNzQsIDg5LCAxMjgsIDc4LCA3NCwgODUsIDg4LCAxMjgsIAorICAgIDc4LCA3NCwgODUsIDgyLCA4OCwgMTI4LCA3OCwgNzQsIDg1LCA4MiwgMTI4LCA3OCwgNzQsIDg1LCA4MSwgNjUsIDEyOCwgCisgICAgNzgsIDc0LCA4NSwgODAsIDEyOCwgNzgsIDc0LCA4NSwgNzksIDg4LCAxMjgsIDc4LCA3NCwgODUsIDc5LCAxMjgsIDc4LCAKKyAgICA3NCwgODUsIDY5LCA4MSwgMTI4LCA3OCwgNzQsIDg1LCA2NSwgNjksIDEyOCwgNzgsIDc0LCA4NSwgMTI4LCA3OCwgNzQsIAorICAgIDc5LCA4OCwgMTI4LCA3OCwgNzQsIDc5LCA4NCwgMTI4LCA3OCwgNzQsIDc5LCA4MCwgMTI4LCA3OCwgNzQsIDc5LCA3OSwgCisgICAgMTI4LCA3OCwgNzQsIDc5LCAxMjgsIDc4LCA3NCwgNzMsIDg4LCAxMjgsIDc4LCA3NCwgNzMsIDg0LCAxMjgsIDc4LCA3NCwgCisgICAgNzMsIDgwLCAxMjgsIDc4LCA3NCwgNzMsIDY5LCA4OCwgMTI4LCA3OCwgNzQsIDczLCA2OSwgODQsIDEyOCwgNzgsIDc0LCAKKyAgICA3MywgNjksIDgwLCAxMjgsIDc4LCA3NCwgNzMsIDY5LCA2OSwgMTI4LCA3OCwgNzQsIDczLCA2OSwgMTI4LCA3OCwgNzQsIAorICAgIDczLCAxMjgsIDc4LCA3NCwgMjAxLCA3OCwgNzQsIDY5LCA4NSwgODgsIDEyOCwgNzgsIDc0LCA2OSwgODUsIDg0LCAxMjgsIAorICAgIDc4LCA3NCwgNjksIDg1LCA2NSwgNjksIDc4LCA2NSwgMTI4LCA3OCwgNzQsIDY5LCA4NSwgNjUsIDY5LCA3NywgMTI4LCA3OCwgCisgICAgNzQsIDY5LCA2OSwgNjksIDY5LCAxMjgsIDc4LCA3NCwgNjksIDY5LCAxMjgsIDc4LCA3NCwgNjksIDE5NywgNzgsIDc0LCAKKyAgICA2OSwgMTI4LCA3OCwgNzQsIDY1LCA4MSwgMTI4LCA3OCwgNzQsIDY1LCA4MCwgMTI4LCA3OCwgNzQsIDY1LCA2OSwgNzcsIAorICAgIDc2LCA3MywgMTI4LCA3OCwgNzQsIDY1LCA2OSwgNzcsIDEyOCwgNzgsIDc0LCA2NSwgNjUsIDEyOCwgNzgsIDczLCA4OCwgCisgICAgMTI4LCA3OCwgNzMsIDg0LCA4MiwgNjksIDEyOCwgNzgsIDczLCA4MywgNjUsIDcxLCAxMjgsIDc4LCA3MywgODIsIDg1LCAKKyAgICA3MSwgODUsIDEyOCwgNzgsIDczLCA4MCwgMTI4LCA3OCwgNzMsIDc4LCA4NCwgNzIsIDEyOCwgNzgsIDczLCA3OCwgNjksIAorICAgIDg0LCA4OSwgMTI4LCA3OCwgNzMsIDc4LCA2OSwgODQsIDIxNywgNzgsIDczLCA3OCwgNjksIDg0LCA2OSwgNjksIDc4LCAKKyAgICAxMjgsIDc4LCA3MywgNzgsIDY5LCA4NCwgNjksIDY5LCAyMDYsIDc4LCA3MywgNzgsIDY5LCA0NSwgODQsIDcyLCA3MywgODIsIAorICAgIDg0LCA4OSwgMTI4LCA3OCwgNzMsIDc4LCAxOTcsIDc4LCA3MywgNzgsIDY4LCA2NSwgNTAsIDEyOCwgNzgsIDczLCA3OCwgCisgICAgNjgsIDY1LCAxNzgsIDc4LCA3MywgNzcsIDEyOCwgNzgsIDczLCAyMDUsIDc4LCA3MywgNzUsIDcyLCA2NSwgNzIsIDczLCAKKyAgICA4NCwgMTI4LCA3OCwgNzMsIDc1LCA2NSwgNzIsIDczLCA4NCwgMTI4LCA3OCwgNzMsIDc1LCA2NSwgMTI4LCA3OCwgNzMsIAorICAgIDcyLCA4MywgNzIsIDg2LCA2NSwgODMsIDY1LCAxMjgsIDc4LCA3MywgNzEsIDczLCA2OCwgNjUsIDc3LCA3MywgNzgsIDEyOCwgCisgICAgNzgsIDczLCA3MSwgNzMsIDY4LCA2NSwgNjksIDgzLCA3MiwgMTI4LCA3OCwgNzMsIDcxLCA3MiwgODQsIDEyOCwgNzgsIDczLCAKKyAgICA3MSwgNzIsIDIxMiwgNzgsIDczLCA3MSwgNzEsIDY1LCA3MiwgNzMsIDg0LCA2NSwgMTI4LCA3OCwgNzMsIDY5LCA4OCwgCisgICAgMTI4LCA3OCwgNzMsIDY5LCA4NSwgNzgsIDQ1LCA4NCwgNzMsIDc1LCA2OSwgODUsIDg0LCAxMjgsIDc4LCA3MywgNjksIDg1LCAKKyAgICA3OCwgNDUsIDg0LCA3MiwgNzMsIDY5LCA4NSwgODQsIDcyLCAxMjgsIDc4LCA3MywgNjksIDg1LCA3OCwgNDUsIDgzLCA3MywgCisgICAgNzksIDgzLCAxMjgsIDc4LCA3MywgNjksIDg1LCA3OCwgNDUsIDgyLCA3MywgNjksIDg1LCA3NiwgMTI4LCA3OCwgNzMsIDY5LCAKKyAgICA4NSwgNzgsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgNzgsIDczLCA2OSwgODUsIDc4LCA0NSwgODAsIDY1LCA3OCwgCisgICAgODMsIDczLCA3OSwgODMsIDEyOCwgNzgsIDczLCA2OSwgODUsIDc4LCA0NSwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgMTI4LCAKKyAgICA3OCwgNzMsIDY5LCA4NSwgNzgsIDQ1LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDEyOCwgNzgsIDczLCA2OSwgODUsIDc4LCA0NSwgCisgICAgNjcsIDczLCA2OSwgODUsIDY3LCAxMjgsIDc4LCA3MywgNjksIDg1LCA3OCwgNDUsIDY3LCA3MiwgNzMsIDY5LCA4NSwgNjcsIAorICAgIDcyLCAxMjgsIDc4LCA3MywgNjksIDg1LCAyMDYsIDc4LCA3MywgNjksIDgwLCAxMjgsIDc4LCA3MywgNjksIDEyOCwgNzgsIAorICAgIDczLCA2NiwgMTI4LCA3OCwgNzMsIDY1LCAxMjgsIDc4LCA3MywgNTAsIDEyOCwgNzgsIDcyLCA4NSwgNjksIDEyOCwgNzgsIAorICAgIDcyLCA3NCwgNjUsIDEyOCwgNzgsIDcyLCAxMjgsIDc4LCA3MSwgODksIDY5LCAxMjgsIDc4LCA3MSwgODYsIDY5LCAxMjgsIAorICAgIDc4LCA3MSwgODUsIDg1LCAxMjgsIDc4LCA3MSwgODUsIDc5LCA4OCwgMTI4LCA3OCwgNzEsIDg1LCA3OSwgODQsIDEyOCwgCisgICAgNzgsIDcxLCA4NSwgNzksIDEyOCwgNzgsIDcxLCA4NSwgNjUsIDY5LCA4NCwgMTI4LCA3OCwgNzEsIDg1LCA2NSwgNjksIAorICAgIDEyOCwgNzgsIDcxLCA3OSwgODgsIDEyOCwgNzgsIDcxLCA3OSwgODUsIDEyOCwgNzgsIDcxLCA3OSwgMjEzLCA3OCwgNzEsIAorICAgIDc5LCA4NCwgMTI4LCA3OCwgNzEsIDc5LCA4MSwgMTI4LCA3OCwgNzEsIDc5LCA4MCwgMTI4LCA3OCwgNzEsIDc5LCA3OCwgCisgICAgMTI4LCA3OCwgNzEsIDc5LCA3NywgMTI4LCA3OCwgNzEsIDc5LCA2OSwgNzIsIDEyOCwgNzgsIDcxLCA3OSwgNjksIDIwMCwgCisgICAgNzgsIDcxLCAyMDcsIDc4LCA3MSwgNzUsIDg5LCA2OSwgNjksIDEyOCwgNzgsIDcxLCA3NSwgODcsIDY1LCA2OSwgNzgsIAorICAgIDEyOCwgNzgsIDcxLCA3NSwgODUsIDgwLCAxMjgsIDc4LCA3MSwgNzUsIDg1LCA3OCwgMTI4LCA3OCwgNzEsIDc1LCA4NSwgCisgICAgNzcsIDEyOCwgNzgsIDcxLCA3NSwgODUsIDY5LCA3OCwgOTAsIDY5LCA4NSwgNzcsIDEyOCwgNzgsIDcxLCA3NSwgODUsIAorICAgIDE5NywgNzgsIDcxLCA3NSwgNzMsIDc4LCA2OCwgMjAxLCA3OCwgNzEsIDc1LCA3MywgNjksIDY5LCAxMjgsIDc4LCA3MSwgCisgICAgNzUsIDY5LCA4NSwgODgsIDEyOCwgNzgsIDcxLCA3NSwgNjksIDg1LCA4MiwgNzMsIDEyOCwgNzgsIDcxLCA3NSwgNjksIDg1LCAKKyAgICA2NSwgNjksIDgxLCAxMjgsIDc4LCA3MSwgNzUsIDY5LCA4NSwgNjUsIDY5LCA3NywgMTI4LCA3OCwgNzEsIDc1LCA2NSwgODEsIAorICAgIDEyOCwgNzgsIDcxLCA3NSwgNjUsIDgwLCAxMjgsIDc4LCA3MSwgNzUsIDY1LCA2NSwgNzcsIDczLCAxMjgsIDc4LCA3MSwgCisgICAgNzUsIDY1LCAxMjgsIDc4LCA3MSwgNzMsIDY5LCA4OCwgMTI4LCA3OCwgNzEsIDczLCA2OSwgODAsIDEyOCwgNzgsIDcxLCAKKyAgICA3MywgNjksIDEyOCwgNzgsIDcxLCA3MiwgNjUsIDEyOCwgNzgsIDcxLCA3MSwgODcsIDY1LCA2OSwgNzgsIDEyOCwgNzgsIAorICAgIDcxLCA3MSwgODUsIDgyLCA2NSwgNjksIDEyOCwgNzgsIDcxLCA3MSwgODUsIDgwLCAxMjgsIDc4LCA3MSwgNzEsIDg1LCA3OSwgCisgICAgODEsIDEyOCwgNzgsIDcxLCA3MSwgODUsIDc5LCAyMDksIDc4LCA3MSwgNzEsIDg1LCA3OSwgNzgsIDEyOCwgNzgsIDcxLCAKKyAgICA3MSwgODUsIDc5LCA3NywgMTI4LCA3OCwgNzEsIDcxLCA4NSwgNzcsIDEyOCwgNzgsIDcxLCA3MSwgODUsIDY5LCA2OSwgODQsIAorICAgIDEyOCwgNzgsIDcxLCA3MSwgODUsIDY1LCA2OSwgODMsIDcyLCA2NSwgMTk3LCA3OCwgNzEsIDcxLCA4NSwgNjUsIDY5LCAKKyAgICAyMDYsIDc4LCA3MSwgNzEsIDg1LCAxMjgsIDc4LCA3MSwgNzEsIDc5LCA3OSwgMTI4LCA3OCwgNzEsIDcxLCA3OSwgMTI4LCAKKyAgICA3OCwgNzEsIDcxLCA3MywgMTI4LCA3OCwgNzEsIDcxLCA2OSwgODUsIDg4LCAxMjgsIDc4LCA3MSwgNzEsIDY5LCA4NSwgNjUsIAorICAgIDY5LCA4NCwgMTI4LCA3OCwgNzEsIDcxLCA2OSwgODUsIDY1LCA2OSwgMTI4LCA3OCwgNzEsIDcxLCA2OSwgMjEzLCA3OCwgCisgICAgNzEsIDcxLCA2OSwgNzgsIDEyOCwgNzgsIDcxLCA3MSwgNjksIDY5LCA4NCwgMTI4LCA3OCwgNzEsIDcxLCA2OSwgNjksIDY5LCAKKyAgICA2OSwgMTI4LCA3OCwgNzEsIDcxLCA2OSwgNjksIDEyOCwgNzgsIDcxLCA3MSwgNjksIDEyOCwgNzgsIDcxLCA3MSwgNjUsIAorICAgIDgwLCAxMjgsIDc4LCA3MSwgNzEsIDY1LCA2NSwgNzcsIDY1LCA2OSwgMTI4LCA3OCwgNzEsIDcxLCA2NSwgNjUsIDc3LCAKKyAgICAxMjgsIDc4LCA3MSwgNzEsIDEyOCwgNzgsIDcxLCA2OSwgODgsIDEyOCwgNzgsIDcxLCA2OSwgODUsIDgyLCA2OSwgODUsIAorICAgIDg0LCAxMjgsIDc4LCA3MSwgNjksIDgwLCAxMjgsIDc4LCA3MSwgNjksIDc4LCAxMjgsIDc4LCA3MSwgNjksIDY5LCAxMjgsIAorICAgIDc4LCA3MSwgNjksIDY1LCA2OCwgNjUsIDc2LCAxMjgsIDc4LCA3MSwgNjUsIDg4LCAxMjgsIDc4LCA3MSwgNjUsIDg1LCAKKyAgICAxMjgsIDc4LCA3MSwgNjUsIDg0LCAxMjgsIDc4LCA3MSwgNjUsIDIxMSwgNzgsIDcxLCA2NSwgODEsIDEyOCwgNzgsIDcxLCAKKyAgICA2NSwgODAsIDEyOCwgNzgsIDcxLCA2NSwgNzgsIDcxLCA4NSwgMTI4LCA3OCwgNzEsIDY1LCA3OCwgMTI4LCA3OCwgNzEsIAorICAgIDY1LCA3MywgMTI4LCA3OCwgNzEsIDY1LCA3MiwgMTI4LCA3OCwgNzEsIDY1LCA2NSwgNzMsIDEyOCwgNzgsIDcxLCAxOTMsIAorICAgIDc4LCA3MCwgMTI4LCA3OCwgNjksIDg4LCAyMTIsIDc4LCA2OSwgODgsIDEyOCwgNzgsIDY5LCA4NywgODMsIDgwLCA2NSwgCisgICAgODAsIDY5LCA4MiwgMTI4LCA3OCwgNjksIDg3LCA3NiwgNzMsIDc4LCA2OSwgMTI4LCA3OCwgNjksIDg3LCAxMjgsIDc4LCAKKyAgICA2OSwgODUsIDg0LCA4MiwgNjUsIDIwNCwgNzgsIDY5LCA4NSwgODQsIDY5LCA4MiwgMTI4LCA3OCwgNjksIDg0LCAxMjgsIAorICAgIDc4LCA2OSwgMjEyLCA3OCwgNjksIDgzLCA4NCwgNjksIDE5NiwgNzgsIDY5LCA4MSwgODUsIDY4LCA2NSwgNjUsIDEyOCwgCisgICAgNzgsIDY5LCA4MCwgODQsIDg1LCA3OCwgNjksIDEyOCwgNzgsIDY5LCA4MCwgMTI4LCA3OCwgNjksIDc5LCAxMjgsIDc4LCAKKyAgICA2OSwgMjA3LCA3OCwgNjksIDc4LCA2NSwgNzgsIDc5LCAxMjgsIDc4LCA2OSwgNzgsIDEyOCwgNzgsIDY5LCA3NiwgMTI4LCAKKyAgICA3OCwgNjksIDczLCA4NCwgNzIsIDY5LCAyMTAsIDc4LCA2OSwgNzEsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDc4LCA2OSwgNzEsIAorICAgIDY1LCA4NCwgNjksIDE5NiwgNzgsIDY5LCA2NywgNzUsIDg0LCA3MywgNjksIDEyOCwgNzgsIDY5LCA2NiwgNjksIDc4LCA4MywgCisgICAgODQsIDczLCA3NywgNzcsIDY5LCAxMjgsIDc4LCA2OCwgODUsIDg4LCAxMjgsIDc4LCA2OCwgODUsIDg0LCAxMjgsIDc4LCAKKyAgICA2OCwgODUsIDgyLCA4OCwgMTI4LCA3OCwgNjgsIDg1LCA4MiwgMTI4LCA3OCwgNjgsIDg1LCA4MCwgMTI4LCA3OCwgNjgsIAorICAgIDg1LCA3OCwgMTI4LCA3OCwgNjgsIDIxMywgNzgsIDY4LCA3OSwgODgsIDEyOCwgNzgsIDY4LCA3OSwgODQsIDEyOCwgNzgsIAorICAgIDY4LCA3OSwgODAsIDEyOCwgNzgsIDY4LCA3OSwgNzksIDEyOCwgNzgsIDY4LCA3OSwgNzgsIDEyOCwgNzgsIDY4LCA3OSwgCisgICAgNzcsIDY2LCA4NSwgMTI4LCA3OCwgNjgsIDc5LCA3NiwgMTk3LCA3OCwgNjgsIDczLCA4OCwgMTI4LCA3OCwgNjgsIDczLCAKKyAgICA4NCwgMTI4LCA3OCwgNjgsIDczLCA4MSwgMTI4LCA3OCwgNjgsIDczLCA4MCwgMTI4LCA3OCwgNjgsIDczLCA2OSwgODgsIAorICAgIDEyOCwgNzgsIDY4LCA3MywgNjksIDEyOCwgNzgsIDY4LCA3MywgNjgsIDY1LCAxMjgsIDc4LCA2OCwgNzMsIDY1LCA4MSwgCisgICAgMTI4LCA3OCwgNjgsIDY5LCA4OCwgMTI4LCA3OCwgNjgsIDY5LCA4NSwgODgsIDEyOCwgNzgsIDY4LCA2OSwgODUsIDg0LCAKKyAgICAxMjgsIDc4LCA2OCwgNjksIDg1LCA2NSwgNjksIDgyLCA2OSwgNjksIDEyOCwgNzgsIDY4LCA2OSwgODAsIDEyOCwgNzgsIAorICAgIDY4LCA2OSwgNjksIDEyOCwgNzgsIDY4LCA2OSwgMTI4LCA3OCwgNjgsIDY1LCA4OCwgMTI4LCA3OCwgNjgsIDY1LCA4NCwgCisgICAgMTI4LCA3OCwgNjgsIDY1LCA4MCwgMTI4LCA3OCwgNjgsIDY1LCA3NywgMTI4LCA3OCwgNjgsIDY1LCA2NSwgNzgsIDcxLCAKKyAgICA3MSwgNjksIDg1LCA2NSwgNjksIDg0LCAxMjgsIDc4LCA2OCwgNjUsIDY1LCAxMjgsIDc4LCA2OCwgNjUsIDE5MywgNzgsIAorICAgIDY2LCA4OSwgODgsIDEyOCwgNzgsIDY2LCA4OSwgODQsIDEyOCwgNzgsIDY2LCA4OSwgODIsIDg4LCAxMjgsIDc4LCA2NiwgCisgICAgODksIDgyLCAxMjgsIDc4LCA2NiwgODksIDgwLCAxMjgsIDc4LCA2NiwgODksIDEyOCwgNzgsIDY2LCA4NSwgODgsIDEyOCwgCisgICAgNzgsIDY2LCA4NSwgODQsIDEyOCwgNzgsIDY2LCA4NSwgODIsIDg4LCAxMjgsIDc4LCA2NiwgODUsIDgyLCAxMjgsIDc4LCAKKyAgICA2NiwgODUsIDgwLCAxMjgsIDc4LCA2NiwgODUsIDEyOCwgNzgsIDY2LCA3OSwgODgsIDEyOCwgNzgsIDY2LCA3OSwgODQsIAorICAgIDEyOCwgNzgsIDY2LCA3OSwgODAsIDEyOCwgNzgsIDY2LCA3OSwgMTI4LCA3OCwgNjYsIDczLCA4OCwgMTI4LCA3OCwgNjYsIAorICAgIDczLCA4NCwgMTI4LCA3OCwgNjYsIDczLCA4MCwgMTI4LCA3OCwgNjYsIDczLCA2OSwgODgsIDEyOCwgNzgsIDY2LCA3MywgCisgICAgNjksIDgwLCAxMjgsIDc4LCA2NiwgNzMsIDY5LCAxMjgsIDc4LCA2NiwgNzMsIDEyOCwgNzgsIDY2LCA3MiwgMTI4LCA3OCwgCisgICAgNjYsIDY1LCA4OCwgMTI4LCA3OCwgNjYsIDY1LCA4NCwgMTI4LCA3OCwgNjYsIDY1LCA4MCwgMTI4LCA3OCwgNjYsIDY1LCAKKyAgICAxMjgsIDc4LCA2NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDc4LCA2NSwgODksIDEyOCwgNzgsIDY1LCA4OCwgNzMsIAorICAgIDY1LCAyMDYsIDc4LCA2NSwgODgsIDEyOCwgNzgsIDY1LCA4NSwgODQsIDcyLCA4MywgMTI4LCA3OCwgNjUsIDg1LCA2OCwgCisgICAgNzMsIDIxOCwgNzgsIDY1LCA4NCwgODUsIDgyLCA2NSwgMjA0LCA3OCwgNjUsIDg0LCA3MywgNzksIDc4LCA2NSwgMjA0LCAKKyAgICA3OCwgNjUsIDgzLCA3NSwgNjUsIDgwLCAyMDEsIDc4LCA2NSwgODMsIDcyLCA3MywgMTI4LCA3OCwgNjUsIDgzLCA2NSwgNzYsIAorICAgIDczLCA5MCwgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDc4LCA2NSwgODMsIDY1LCA3NiwgNzMsIDkwLCA2NSwgODQsIDczLCAKKyAgICA3OSwgMjA2LCA3OCwgNjUsIDgyLCA4MiwgNzksIDIxNSwgNzgsIDY1LCA4MiwgMTI4LCA3OCwgNjUsIDgxLCAxMjgsIDc4LCAKKyAgICA2NSwgNzksIDIxMSwgNzgsIDY1LCA3OCwgODMsIDY1LCA3OCwgNjUsIDgxLCAxMjgsIDc4LCA2NSwgNzgsIDcxLCA3NywgNzksIAorICAgIDc4LCA4NCwgNzIsIDc5LCAxMjgsIDc4LCA2NSwgNzgsIDY4LCAxMjgsIDc4LCA2NSwgNzgsIDY1LCAxMjgsIDc4LCA2NSwgCisgICAgNzcsIDY5LCAxMjgsIDc4LCA2NSwgNzcsIDE5NywgNzgsIDY1LCA3NywgNTAsIDEyOCwgNzgsIDY1LCA3NywgMTI4LCA3OCwgCisgICAgNjUsIDc1LCAxMjgsIDc4LCA2NSwgNzMsIDgyLCAxOTMsIDc4LCA2NSwgNzMsIDIwNCwgNzgsIDY1LCA3MSwgODIsIDIwMSwgCisgICAgNzgsIDY1LCA3MSwgNjUsIDgyLCAxMjgsIDc4LCA2NSwgNzEsIDY1LCAxMjgsIDc4LCA2NSwgNzEsIDE5MywgNzgsIDY1LCAKKyAgICA3MSwgMTI4LCA3OCwgNjUsIDE5OSwgNzgsIDY1LCA2OSwgMTI4LCA3OCwgNjUsIDY2LCA3NiwgNjUsIDEyOCwgNzgsIDY1LCAKKyAgICA2NSwgODMsIDczLCA3NSwgODksIDY1LCA4OSwgNjUsIDEyOCwgNzgsIDY1LCA2NSwgNzUsIDgzLCA3MywgNzUsIDg5LCA2NSwgCisgICAgODksIDY1LCAxMjgsIDc4LCA2NSwgNjUsIDczLCAxMjgsIDc4LCA2NSwgMTkzLCA3OCwgNjUsIDUwLCAxMjgsIDc4LCA2NSwgCisgICAgNDUsIDUwLCAxMjgsIDc4LCA0OCwgNTIsIDUwLCAxMjgsIDc4LCA0OCwgNTIsIDQ5LCAxMjgsIDc4LCA0OCwgNTIsIDQ4LCAKKyAgICAxMjgsIDc4LCA0OCwgNTEsIDU3LCAxMjgsIDc4LCA0OCwgNTEsIDU2LCAxMjgsIDc4LCA0OCwgNTEsIDU1LCA2NSwgMTI4LCAKKyAgICA3OCwgNDgsIDUxLCA1NSwgMTI4LCA3OCwgNDgsIDUxLCA1NCwgMTI4LCA3OCwgNDgsIDUxLCA1MywgNjUsIDEyOCwgNzgsIAorICAgIDQ4LCA1MSwgNTMsIDEyOCwgNzgsIDQ4LCA1MSwgNTIsIDY1LCAxMjgsIDc4LCA0OCwgNTEsIDUyLCAxMjgsIDc4LCA0OCwgCisgICAgNTEsIDUxLCA2NSwgMTI4LCA3OCwgNDgsIDUxLCA1MSwgMTI4LCA3OCwgNDgsIDUxLCA1MCwgMTI4LCA3OCwgNDgsIDUxLCAKKyAgICA0OSwgMTI4LCA3OCwgNDgsIDUxLCA0OCwgMTI4LCA3OCwgNDgsIDUwLCA1NywgMTI4LCA3OCwgNDgsIDUwLCA1NiwgMTI4LCAKKyAgICA3OCwgNDgsIDUwLCA1NSwgMTI4LCA3OCwgNDgsIDUwLCA1NCwgMTI4LCA3OCwgNDgsIDUwLCA1MywgNjUsIDEyOCwgNzgsIAorICAgIDQ4LCA1MCwgNTMsIDEyOCwgNzgsIDQ4LCA1MCwgNTIsIDEyOCwgNzgsIDQ4LCA1MCwgNTEsIDEyOCwgNzgsIDQ4LCA1MCwgCisgICAgNTAsIDEyOCwgNzgsIDQ4LCA1MCwgNDksIDEyOCwgNzgsIDQ4LCA1MCwgNDgsIDEyOCwgNzgsIDQ4LCA0OSwgNTcsIDEyOCwgCisgICAgNzgsIDQ4LCA0OSwgNTYsIDY2LCAxMjgsIDc4LCA0OCwgNDksIDU2LCA2NSwgMTI4LCA3OCwgNDgsIDQ5LCA1NiwgMTI4LCAKKyAgICA3OCwgNDgsIDQ5LCA1NSwgMTI4LCA3OCwgNDgsIDQ5LCA1NCwgMTI4LCA3OCwgNDgsIDQ5LCA1MywgMTI4LCA3OCwgNDgsIAorICAgIDQ5LCA1MiwgMTI4LCA3OCwgNDgsIDQ5LCA1MSwgMTI4LCA3OCwgNDgsIDQ5LCA1MCwgMTI4LCA3OCwgNDgsIDQ5LCA0OSwgCisgICAgMTI4LCA3OCwgNDgsIDQ5LCA0OCwgMTI4LCA3OCwgNDgsIDQ4LCA1NywgMTI4LCA3OCwgNDgsIDQ4LCA1NiwgMTI4LCA3OCwgCisgICAgNDgsIDQ4LCA1NSwgMTI4LCA3OCwgNDgsIDQ4LCA1NCwgMTI4LCA3OCwgNDgsIDQ4LCA1MywgMTI4LCA3OCwgNDgsIDQ4LCAKKyAgICA1MiwgMTI4LCA3OCwgNDgsIDQ4LCA1MSwgMTI4LCA3OCwgNDgsIDQ4LCA1MCwgMTI4LCA3OCwgNDgsIDQ4LCA0OSwgMTI4LCAKKyAgICA3OCwgNDUsIDY3LCA4MiwgNjksIDE5NywgNzgsIDQ1LCA2NSwgODIsIDIxNywgNzcsIDg5LCA4OCwgMTI4LCA3NywgODksIAorICAgIDg0LCAxMjgsIDc3LCA4OSwgODMsIDc2LCA3MywgODQsIDY5LCAxMjgsIDc3LCA4OSwgODAsIDEyOCwgNzcsIDg5LCA2NSwgCisgICAgMTI4LCA3NywgODksIDE5MywgNzcsIDg5LCAxMjgsIDc3LCAyMTcsIDc3LCA4NywgNzksIDc5LCAxMjgsIDc3LCA4NywgNzksIAorICAgIDEyOCwgNzcsIDg3LCA3MywgNzMsIDEyOCwgNzcsIDg3LCA3MywgMTI4LCA3NywgODcsIDY5LCA2OSwgMTI4LCA3NywgODcsIAorICAgIDY5LCAxMjgsIDc3LCA4NywgNjUsIDY1LCAxMjgsIDc3LCA4NywgNjUsIDEyOCwgNzcsIDg3LCAxMjgsIDc3LCAyMTUsIDc3LCAKKyAgICA4NiwgODMsIDEyOCwgNzcsIDg2LCA3OSwgODAsIDEyOCwgNzcsIDg2LCA3MywgMTI4LCA3NywgODYsIDY5LCA4NSwgNjUsIAorICAgIDY5LCA3OCwgNzEsIDY1LCA3NywgMTI4LCA3NywgODYsIDEyOCwgNzcsIDIxNCwgNzcsIDg1LCA4OCwgMTI4LCA3NywgODUsIAorICAgIDg1LCA4MywgNzMsIDc1LCA2NSwgODQsIDc5LCA2NSwgNzgsIDEyOCwgNzcsIDg1LCA4NSwgODIsIDY4LCA3MiwgNjUsIDc0LCAKKyAgICAxOTMsIDc3LCA4NSwgODUsIDEyOCwgNzcsIDg1LCA4NCwgMTI4LCA3NywgODUsIDgzLCA3MywgNjcsIDEyOCwgNzcsIDg1LCAKKyAgICA4MywgNzMsIDE5NSwgNzcsIDg1LCA4MywgNzIsIDgyLCA3OSwgNzksIDc3LCAxMjgsIDc3LCA4NSwgODMsIDcyLCA1MSwgCisgICAgMTI4LCA3NywgODUsIDgzLCA3MiwgMTc5LCA3NywgODUsIDgzLCA3MiwgMTI4LCA3NywgODUsIDgzLCAyMDAsIDc3LCA4NSwgCisgICAgODIsIDg4LCAxMjgsIDc3LCA4NSwgODIsIDcxLCA4NSwgNTAsIDEyOCwgNzcsIDg1LCA4MiwgNjksIDEyOCwgNzcsIDg1LCAKKyAgICA4MiwgNjgsIDY1LCAxMjgsIDc3LCA4NSwgODIsIDY4LCAxOTMsIDc3LCA4NSwgODIsIDEyOCwgNzcsIDg1LCA4MSwgNjgsIAorICAgIDY1LCA3NywgMTI4LCA3NywgODUsIDgwLCAxMjgsIDc3LCA4NSwgNzksIDg4LCAxMjgsIDc3LCA4NSwgNzksIDg0LCAxMjgsIAorICAgIDc3LCA4NSwgNzksIDgwLCAxMjgsIDc3LCA4NSwgNzksIDc3LCA2NSwgNjksIDEyOCwgNzcsIDg1LCA3OSwgMTI4LCA3NywgCisgICAgODUsIDc4LCA4MywgODUsIDY2LCAxMjgsIDc3LCA4NSwgNzgsIDY1LCA3MiwgMTI4LCA3NywgODUsIDc2LCA4NCwgNzMsIDgzLCAKKyAgICA2OSwgODQsIDEyOCwgNzcsIDg1LCA3NiwgODQsIDczLCA4MywgNjksIDIxMiwgNzcsIDg1LCA3NiwgODQsIDczLCA4MCwgNzYsIAorICAgIDczLCA2NywgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDc3LCA4NSwgNzYsIDg0LCA3MywgODAsIDc2LCA3MywgNjcsIDY1LCAKKyAgICA4NCwgNzMsIDc5LCAyMDYsIDc3LCA4NSwgNzYsIDg0LCA3MywgODAsIDc2LCAxOTcsIDc3LCA4NSwgNzYsIDg0LCA3MywgNzksIAorICAgIDY3LCA4NSwgNzYsIDY1LCAyMTAsIDc3LCA4NSwgNzYsIDg0LCA3MywgNzcsIDY1LCA4MCwgMTI4LCA3NywgODUsIDc2LCA4NCwgCisgICAgMjAxLCA3NywgODUsIDc1LCA4MCwgNzIsIDgyLCA2OSwgNzgsIDcxLCAxMjgsIDc3LCA4NSwgNzMsIDc4LCAxMjgsIDc3LCAKKyAgICA4NSwgNzEsIDgzLCAxMjgsIDc3LCA4NSwgNzEsIDEyOCwgNzcsIDg1LCAxOTksIDc3LCA4NSwgNjksIDEyOCwgNzcsIDg1LCAKKyAgICA2NywgNzIsIDEyOCwgNzcsIDg1LCA2NywgMjAwLCA3NywgODUsIDY3LCA2NSwgNjUsIDY4LCAxMjgsIDc3LCA4NSwgNjUsIAorICAgIDc4LCAxMjgsIDc3LCA4NSwgNjUsIDY5LCAxMjgsIDc3LCA4NSwgNDUsIDcxLCA2NSwgNjUsIDcyLCA3NiwgNjUsIDE5MywgCisgICAgNzcsIDIxMywgNzcsIDgzLCAxMjgsIDc3LCA4MCwgNjUsIDEyOCwgNzcsIDc5LCA4OSwgNjUsIDczLCAxMjgsIDc3LCA3OSwgCisgICAgODgsIDEyOCwgNzcsIDc5LCA4NiwgNzMsIDE5NywgNzcsIDc5LCA4NiwgNjksIDE5NiwgNzcsIDc5LCA4NSwgODQsIDcyLCAKKyAgICAxMjgsIDc3LCA3OSwgODUsIDg0LCAyMDAsIDc3LCA3OSwgODUsIDgzLCA2OSwgMTI4LCA3NywgNzksIDg1LCA4MywgMTk3LCAKKyAgICA3NywgNzksIDg1LCA3OCwgODQsIDY1LCA3MywgNzgsIDgzLCAxMjgsIDc3LCA3OSwgODUsIDc4LCA4NCwgNjUsIDczLCA3OCwgCisgICAgMTI4LCA3NywgNzksIDg1LCA3OCwgODQsIDY1LCA3MywgMjA2LCA3NywgNzksIDg1LCA3OCwgMjEyLCA3NywgNzksIDg1LCAKKyAgICA3OCwgNjgsIDEyOCwgNzcsIDc5LCA4NSwgNzgsIDE5NiwgNzcsIDc5LCA4NCwgNzIsIDY5LCA4MiwgMTI4LCA3NywgNzksIAorICAgIDg0LCAxMjgsIDc3LCA3OSwgODIsIDg0LCA4NSwgODUsIDc3LCAxMjgsIDc3LCA3OSwgODIsIDg0LCA2NSwgODIsIDEyOCwgCisgICAgNzcsIDc5LCA4MiwgODAsIDcyLCA3OSwgNzYsIDc5LCA3MSwgNzMsIDY3LCA2NSwgMjA0LCA3NywgNzksIDgyLCA3OCwgNzMsIAorICAgIDc4LCA3MSwgMTI4LCA3NywgNzksIDgwLCAxMjgsIDc3LCA3OSwgNzksIDgzLCA2OSwgNDUsIDY3LCA4MiwgNjksIDE5NywgCisgICAgNzcsIDc5LCA3OSwgNzgsIDEyOCwgNzcsIDc5LCA3OSwgMjA2LCA3NywgNzksIDc5LCA3NywgODAsIDg1LCA4MSwgMTI4LCAKKyAgICA3NywgNzksIDc5LCA3NywgNjksIDg1LCA4NCwgMTI4LCA3NywgNzksIDc5LCAxMjgsIDc3LCA3OSwgNzgsIDg0LCA3MywgNjksIAorICAgIDY5LCA3OCwgMTI4LCA3NywgNzksIDc4LCA4NCwgNzIsIDEyOCwgNzcsIDc5LCA3OCwgODQsIDIwMCwgNzcsIDc5LCA3OCwgCisgICAgODMsIDg0LCA2OSwgODIsIDEyOCwgNzcsIDc5LCA3OCwgNzksIDgzLCA4NCwgNjUsIDY2LCA3NiwgMTk3LCA3NywgNzksIDc4LCAKKyAgICA3OSwgODMsIDgwLCA2NSwgNjcsIDE5NywgNzcsIDc5LCA3OCwgNzksIDgyLCA2NSwgNzMsIDc2LCAxMjgsIDc3LCA3OSwgNzgsIAorICAgIDc5LCA3MSwgODIsIDY1LCA4MCwgMjAwLCA3NywgNzksIDc4LCA3OSwgNzEsIDgyLCA2NSwgNzcsIDc3LCA3OSwgMjExLCA3NywgCisgICAgNzksIDc4LCA3OSwgNzEsIDgyLCA2NSwgMjA1LCA3NywgNzksIDc4LCA3OSwgNzAsIDc5LCA3OCwgNzMsIDY1LCA4MywgMTI4LCAKKyAgICA3NywgNzksIDc4LCA3OSwgNjcsIDg1LCA3NiwgNjUsIDIxMCwgNzcsIDc5LCA3OCwgNzUsIDY5LCA4OSwgMTI4LCA3NywgNzksIAorICAgIDc4LCA3NSwgNjksIDIxNywgNzcsIDc5LCA3OCwgNzMsIDEyOCwgNzcsIDc5LCA3OCwgNzEsIDc1LCA2OSwgODUsIDY1LCA2OSwgCisgICAgODEsIDEyOCwgNzcsIDc5LCA3OCwgNjksIDIxNywgNzcsIDc5LCA3OCwgMTI4LCA3NywgNzksIDIwNiwgNzcsIDc5LCA3NiwgCisgICAgMTI4LCA3NywgNzksIDcyLCA2NSwgNzcsIDc3LCA2NSwgMTk2LCA3NywgNzksIDY4LCA4NSwgNzYsIDIwNywgNzcsIDc5LCAKKyAgICA2OCwgNjksIDgzLCA4NCwgODksIDEyOCwgNzcsIDc5LCA2OCwgNjksIDc2LCA4MywgMTI4LCA3NywgNzksIDY4LCA2OSwgNzYsIAorICAgIDEyOCwgNzcsIDc5LCA2OCwgNjksIDEyOCwgNzcsIDc5LCA2NiwgNzMsIDc2LCAxOTcsIDc3LCA3OSwgNjUsIDEyOCwgNzcsIAorICAgIDIwNywgNzcsIDc4LCA4OSwgNjUsIDIwNSwgNzcsIDc4LCA2NSwgODMsIDEyOCwgNzcsIDc3LCA4MywgODAsIDEyOCwgNzcsIAorICAgIDc3LCAxMjgsIDc3LCAyMDUsIDc3LCA3NiwgNjUsIDEyOCwgNzcsIDc2LCAxMjgsIDc3LCA3NSwgODAsIDY1LCA4MiwgNjUsIAorICAgIDIwOSwgNzcsIDczLCA4OCwgMTI4LCA3NywgNzMsIDg0LCAxMjgsIDc3LCA3MywgODMsIDgyLCA2NSwgMTI4LCA3NywgNzMsIAorICAgIDgyLCA3MywgNjYsIDY1LCA2NSwgODIsIDg1LCAxMjgsIDc3LCA3MywgODIsIDczLCAxMjgsIDc3LCA3MywgODIsIDY5LCA2OCwgCisgICAgMTI4LCA3NywgNzMsIDgwLCAxMjgsIDc3LCA3MywgNzgsIDg5LCAxMjgsIDc3LCA3MywgNzgsIDg1LCA4MywgNDUsIDc5LCAKKyAgICA4MiwgNDUsIDgwLCA3NiwgODUsIDIxMSwgNzcsIDczLCA3OCwgODUsIDgzLCAxMjgsIDc3LCA3MywgNzgsIDczLCA4MywgODQsIAorICAgIDY5LCA4MiwgMTI4LCA3NywgNzMsIDc4LCA3MywgNzcsIDY1LCAxMjgsIDc3LCA3MywgNzgsIDczLCA2OCwgNzMsIDgzLCA2NywgCisgICAgMTI4LCA3NywgNzMsIDc4LCA3MywgNjYsIDg1LCA4MywgMTI4LCA3NywgNzMsIDc3LCA2OSwgMTI4LCA3NywgNzMsIDc3LCAKKyAgICAxMjgsIDc3LCA3MywgNzYsIDc2LCA3MywgNzksIDc4LCAyMTEsIDc3LCA3MywgNzYsIDc2LCA2OSwgODQsIDEyOCwgNzcsIAorICAgIDczLCA3NiwgNzYsIDE5NywgNzcsIDczLCA3NiwgMjA0LCA3NywgNzMsIDc2LCA3NSwgMjE3LCA3NywgNzMsIDc2LCAxMjgsIAorICAgIDc3LCA3MywgNzUsIDg1LCA4MiwgNzksIDc4LCAxMjgsIDc3LCA3MywgNzUsIDgyLCA3OSwgMjA2LCA3NywgNzMsIDc1LCA4MiwgCisgICAgNzMsIDEyOCwgNzcsIDczLCA3MywgNzgsIDEyOCwgNzcsIDczLCA3MywgMTI4LCA3NywgNzMsIDE5OSwgNzcsIDczLCA2OSwgCisgICAgODgsIDEyOCwgNzcsIDczLCA2OSwgODUsIDc3LCA0NSwgODQsIDczLCA3NSwgNjksIDg1LCA4NCwgMTI4LCA3NywgNzMsIDY5LCAKKyAgICA4NSwgNzcsIDQ1LCA4MywgODMsIDY1LCA3OCwgNzEsIDgzLCA3MywgNzksIDgzLCAxMjgsIDc3LCA3MywgNjksIDg1LCA3NywgCisgICAgNDUsIDgzLCA4MywgNjUsIDc4LCA3MSwgNzgsIDczLCA2OSwgODUsIDc4LCAxMjgsIDc3LCA3MywgNjksIDg1LCA3NywgNDUsIAorICAgIDgyLCA3MywgNjksIDg1LCA3NiwgMTI4LCA3NywgNzMsIDY5LCA4NSwgNzcsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDQ1LCAKKyAgICA4MywgNzMsIDc5LCA4MywgMTI4LCA3NywgNzMsIDY5LCA4NSwgNzcsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgNzcsIAorICAgIDczLCA2OSwgODUsIDc3LCA0NSwgODAsIDY1LCA3OCwgODMsIDczLCA3OSwgODMsIDEyOCwgNzcsIDczLCA2OSwgODUsIDc3LCAKKyAgICA0NSwgNzgsIDczLCA2OSwgODUsIDc4LCAxMjgsIDc3LCA3MywgNjksIDg1LCA3NywgNDUsIDY3LCA3MywgNjksIDg1LCA2NywgCisgICAgMTI4LCA3NywgNzMsIDY5LCA4NSwgNzcsIDQ1LCA2NywgNzIsIDczLCA2OSwgODUsIDY3LCA3MiwgMTI4LCA3NywgNzMsIDY5LCAKKyAgICA4NSwgMjA1LCA3NywgNzMsIDY5LCA4MCwgMTI4LCA3NywgNzMsIDY5LCA2OSwgMTI4LCA3NywgNzMsIDY5LCAxMjgsIDc3LCAKKyAgICA3MywgNjgsIDc2LCA3MywgNzgsIDE5NywgNzcsIDczLCA2OCwgNjgsIDc2LCA2OSwgNDUsIDg3LCA2OSwgNzYsIDgzLCAyMDAsIAorICAgIDc3LCA3MywgNjgsIDY4LCA3NiwgMTk3LCA3NywgNzMsIDE5NiwgNzcsIDczLCA2NywgODIsIDc5LCA4MywgNjcsIDc5LCA4MCwgCisgICAgNjksIDEyOCwgNzcsIDczLCA2NywgODIsIDc5LCA4MCwgNzIsIDc5LCA3OCwgNjksIDEyOCwgNzcsIDczLCA2NywgODIsIAorICAgIDIwNywgNzcsIDczLCA2NywgMjEwLCA3NywgNzIsIDkwLCAxMjgsIDc3LCA3MiwgNjUsIDEyOCwgNzcsIDcyLCAxMjgsIDc3LCAKKyAgICA3MSwgODUsIDg4LCAxMjgsIDc3LCA3MSwgODUsIDg0LCAxMjgsIDc3LCA3MSwgODUsIDgyLCA4OCwgMTI4LCA3NywgNzEsIAorICAgIDg1LCA4MiwgMTI4LCA3NywgNzEsIDg1LCA4MCwgMTI4LCA3NywgNzEsIDg1LCA3OSwgODgsIDEyOCwgNzcsIDcxLCA4NSwgCisgICAgNzksIDgwLCAxMjgsIDc3LCA3MSwgODUsIDc5LCAxMjgsIDc3LCA3MSwgODUsIDEyOCwgNzcsIDcxLCA3OSwgODgsIDEyOCwgCisgICAgNzcsIDcxLCA3OSwgODQsIDEyOCwgNzcsIDcxLCA3OSwgODAsIDEyOCwgNzcsIDcxLCA3OSwgMTI4LCA3NywgNzEsIDIwNywgCisgICAgNzcsIDcxLCA3MywgNjksIDg4LCAxMjgsIDc3LCA3MSwgNzMsIDY5LCAxMjgsIDc3LCA3MSwgNjksIDg4LCAxMjgsIDc3LCAKKyAgICA3MSwgNjksIDgwLCAxMjgsIDc3LCA3MSwgNjksIDEyOCwgNzcsIDcxLCA2NiwgODUsIDEyOCwgNzcsIDcxLCA2NiwgNzksIAorICAgIDc5LCAxMjgsIDc3LCA3MSwgNjYsIDc5LCA3MCwgODUsIDc3LCAxMjgsIDc3LCA3MSwgNjYsIDc5LCAxMjgsIDc3LCA3MSwgCisgICAgNjYsIDczLCAxMjgsIDc3LCA3MSwgNjYsIDY5LCA4NSwgNzgsIDEyOCwgNzcsIDcxLCA2NiwgNjksIDc4LCAxMjgsIDc3LCAKKyAgICA3MSwgNjYsIDY5LCA2OSwgMTI4LCA3NywgNzEsIDY2LCA2OSwgMTI4LCA3NywgNzEsIDY2LCA2NSwgODMsIDY1LCA4MSwgCisgICAgMTI4LCA3NywgNzEsIDY2LCA2NSwgODMsIDY1LCAxMjgsIDc3LCA3MSwgNjUsIDg4LCAxMjgsIDc3LCA3MSwgNjUsIDg0LCAKKyAgICAxMjgsIDc3LCA3MSwgNjUsIDgwLCAxMjgsIDc3LCA3MSwgNjUsIDEyOCwgNzcsIDcxLCAxMjgsIDc3LCA3MCwgNzksIDc4LCAKKyAgICAxMjgsIDc3LCA3MCwgNzksIDIwNiwgNzcsIDcwLCA3OSwgMTI4LCA3NywgNzAsIDczLCA4OSwgNjUsIDgxLCAxMjgsIDc3LCAKKyAgICA3MCwgNzMsIDY5LCA2OSwgMTI4LCA3NywgNzAsIDY5LCA4NSwgODQsIDEyOCwgNzcsIDcwLCA2OSwgODUsIDgxLCAxMjgsIAorICAgIDc3LCA3MCwgNjksIDg1LCA2NSwgNjksIDEyOCwgNzcsIDcwLCA2NSwgNjUsIDEyOCwgNzcsIDY5LCA5MCwgOTAsIDc5LCAKKyAgICAxMjgsIDc3LCA2OSwgODgsIDEyOCwgNzcsIDY5LCA4NSwgMjEyLCA3NywgNjksIDg1LCA4MSwgMTI4LCA3NywgNjksIDg1LCAKKyAgICA3OCwgNzQsIDc5LCA3NywgNzgsIDY4LCA2OSwgODUsIDgxLCAxMjgsIDc3LCA2OSwgODUsIDc4LCAxMjgsIDc3LCA2OSwgODQsIAorICAgIDgyLCA3OSwgMTI4LCA3NywgNjksIDg0LCA4MiwgNzMsIDY3LCA2NSwgMjA0LCA3NywgNjksIDg0LCA4MiwgNzMsIDY1LCAKKyAgICAxMjgsIDc3LCA2OSwgODQsIDgyLCA2OSwgODQsIDY5LCAyMTEsIDc3LCA2OSwgODQsIDc5LCA2NiwgNjksIDc2LCA4NSwgODMsIAorICAgIDEyOCwgNzcsIDY5LCA4NCwgNjksIDc1LCAxMjgsIDc3LCA2OSwgODQsIDY5LCA3MSwgMTI4LCA3NywgNjksIDg0LCA2NSwgCisgICAgNzYsIDEyOCwgNzcsIDY5LCA4NCwgMTkzLCA3NywgNjksIDgzLCA4MywgNjksIDc4LCA3MywgNjUsIDIwNiwgNzcsIDY5LCAKKyAgICA4MywgODMsIDY1LCA3MSwgNjksIDEyOCwgNzcsIDY5LCA4MywgODMsIDY1LCA3MSwgMTk3LCA3NywgNjksIDgzLCA3OSwgCisgICAgMTI4LCA3NywgNjksIDgzLCA3MywgMTI4LCA3NywgNjksIDgzLCA3MiwgMTI4LCA3NywgNjksIDgyLCA3OSwgNzMsIDg0LCAKKyAgICA3MywgMTk1LCA3NywgNjksIDgyLCA3NSwgNzIsIDY1LCAxMjgsIDc3LCA2OSwgODIsIDc1LCA3MiwgMTkzLCA3NywgNjksIAorICAgIDgyLCA3MywgNjgsIDczLCA2NSwgNzgsIDgzLCAxMjgsIDc3LCA2OSwgODIsIDczLCAxMjgsIDc3LCA2OSwgODIsIDcxLCA2OSwgCisgICAgMTI4LCA3NywgNjksIDgyLCA2NywgODUsIDgyLCA4OSwgMTI4LCA3NywgNjksIDgyLCA2NywgODUsIDgyLCAyMTcsIDc3LCAKKyAgICA2OSwgNzgsIDY4LCA4NSwgODQsIDEyOCwgNzcsIDY5LCA3OCwgMTI4LCA3NywgNjksIDc3LCA3OSwgMTI4LCA3NywgNjksIAorICAgIDc3LCA2NiwgNjksIDgyLCA4MywgNzIsIDczLCA4MCwgMTI4LCA3NywgNjksIDc3LCA2NiwgNjksIDgyLCAxMjgsIDc3LCA2OSwgCisgICAgNzcsIDY2LCA2OSwgMjEwLCA3NywgNjksIDc3LCA0NSwgODEsIDc5LCA4MCwgNzIsIDEyOCwgNzcsIDY5LCA3NywgMTI4LCAKKyAgICA3NywgNjksIDIwNSwgNzcsIDY5LCA3NiwgNzksIDY4LCA3MywgMTk1LCA3NywgNjksIDc2LCA3MywgNzUsIDEyOCwgNzcsIAorICAgIDY5LCA3MywgOTAsIDczLCAxMjgsIDc3LCA2OSwgNzEsIDY1LCA4NCwgNzksIDc4LCAxMjgsIDc3LCA2OSwgNzEsIDY1LCA4MCwgCisgICAgNzIsIDc5LCA3OCwgNjksIDEyOCwgNzcsIDY5LCA3MSwgNjUsIDc2LCA3MywgMTI4LCA3NywgNjksIDY5LCA4NCwgNzksIDgyLCAKKyAgICA4NSwgMTI4LCA3NywgNjksIDY5LCA4NCwgMTI4LCA3NywgNjksIDY5LCA3NywgODUsIDEyOCwgNzcsIDY5LCA2OSwgNzcsIAorICAgIDEyOCwgNzcsIDY5LCA2OSwgNjksIDY5LCAxMjgsIDc3LCA2OSwgNjgsIDczLCA4NSwgNzcsIDEyOCwgNzcsIDY5LCA2OCwgCisgICAgNzMsIDg1LCAyMDUsIDc3LCA2OSwgNjgsIDczLCA2NywgNzMsIDc4LCA2OSwgMTI4LCA3NywgNjksIDY4LCA3MywgNjcsIDY1LCAKKyAgICAyMDQsIDc3LCA2OSwgNjUsIDg0LCAxMjgsIDc3LCA2OSwgNjUsIDIxMiwgNzcsIDY5LCA2NSwgODMsIDg1LCA4MiwgNjksIAorICAgIDE5NiwgNzcsIDY5LCA2NSwgODMsIDg1LCA4MiwgNjksIDEyOCwgNzcsIDY5LCA2NSwgODMsIDg1LCA4MiwgMTk3LCA3NywgCisgICAgNjgsIDg1LCAyMDYsIDc3LCAxOTYsIDc3LCA2NywgNzIsIDIxMywgNzcsIDY3LCA3MiwgNjUsIDIwNiwgNzcsIDE5NSwgNzcsIAorICAgIDY2LCA4NSwgNzksIDgxLCAxMjgsIDc3LCA2NiwgODUsIDc5LCAxMjgsIDc3LCA2NiwgODUsIDY5LCAxMjgsIDc3LCA2NiwgCisgICAgODUsIDY1LCA2OSwgNzcsIDEyOCwgNzcsIDY2LCA4NSwgNjUsIDY5LCAxMjgsIDc3LCA2NiwgNzksIDc5LCAxMjgsIDc3LCAKKyAgICA2NiwgNzksIDEyOCwgNzcsIDY2LCA3MywgODQsIDEyOCwgNzcsIDY2LCA3MywgMjEyLCA3NywgNjYsIDczLCA4MiwgNzMsIAorICAgIDY5LCA2OSwgNzgsIDEyOCwgNzcsIDY2LCA3MywgMTI4LCA3NywgNjYsIDY5LCA4NSwgODgsIDEyOCwgNzcsIDY2LCA2OSwgCisgICAgODUsIDgyLCA3MywgMTI4LCA3NywgNjYsIDY5LCA4NSwgNzcsIDEyOCwgNzcsIDY2LCA2OSwgODIsIDY1LCA2OSwgMTI4LCAKKyAgICA3NywgNjYsIDY5LCA3OCwgMTI4LCA3NywgNjYsIDY5LCA2OSwgNzUsIDY5LCA2OSwgODQsIDEyOCwgNzcsIDY2LCA2OSwgNjksIAorICAgIDEyOCwgNzcsIDY2LCA2OSwgMTI4LCA3NywgNjYsIDY1LCA4MSwgMTI4LCA3NywgNjYsIDY1LCA3OCwgODksIDczLCAxMjgsIAorICAgIDc3LCA2NiwgNjUsIDY1LCA4MiwgNjUsIDY5LCAxMjgsIDc3LCA2NiwgNjUsIDY1LCA3NSwgNjksIDg0LCAxMjgsIDc3LCA2NiwgCisgICAgNjUsIDY1LCAxMjgsIDc3LCA2NiwgNjUsIDE5MywgNzcsIDY2LCAxOTMsIDc3LCA2NiwgNTIsIDEyOCwgNzcsIDY2LCA1MSwgCisgICAgMTI4LCA3NywgNjYsIDUwLCAxMjgsIDc3LCA2NiwgMTI4LCA3NywgMTk0LCA3NywgNjUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgCisgICAgMTI4LCA3NywgNjUsIDg5LCAxMjgsIDc3LCA2NSwgODgsIDczLCA3NywgNjUsIDEyOCwgNzcsIDY1LCA4OCwgMTI4LCA3NywgCisgICAgNjUsIDg1LCAxMjgsIDc3LCA2NSwgODQsIDg0LCA3OSwgNjcsIDc1LCAxMjgsIDc3LCA2NSwgODQsIDgyLCA3MywgODgsIAorICAgIDEyOCwgNzcsIDY1LCA4NCwgNjksIDgyLCA3MywgNjUsIDc2LCA4MywgMTI4LCA3NywgNjUsIDg0LCAxMjgsIDc3LCA2NSwgCisgICAgODMsIDIxMywgNzcsIDY1LCA4MywgODMsIDczLCA3OCwgNzEsIDEyOCwgNzcsIDY1LCA4MywgODMsIDY1LCA3MSwgNjksIAorICAgIDEyOCwgNzcsIDY1LCA4MywgNzksIDgyLCAxOTMsIDc3LCA2NSwgODMsIDc1LCAxMjgsIDc3LCA2NSwgODMsIDcyLCA3MCwgCisgICAgNjUsIDY1LCA4NCwgMTI4LCA3NywgNjUsIDgzLCA3MiwgNTAsIDEyOCwgNzcsIDY1LCA4MywgNjcsIDg1LCA3NiwgNzMsIDc4LCAKKyAgICAxOTcsIDc3LCA2NSwgODIsIDg5LCAxMjgsIDc3LCA2NSwgODIsIDg1LCA3NSwgODUsIDEyOCwgNzcsIDY1LCA4MiwgODQsIAorICAgIDg5LCA4MiwgNzMsIDE5MywgNzcsIDY1LCA4MiwgODIsIDg5LCA3MywgNzgsIDE5OSwgNzcsIDY1LCA4MiwgODIsIDczLCA2NSwgCisgICAgNzEsIDE5NywgNzcsIDY1LCA4MiwgNzUsIDY5LCA4MiwgMTI4LCA3NywgNjUsIDgyLCA3NSwgNDUsIDUyLCAxMjgsIDc3LCAKKyAgICA2NSwgODIsIDc1LCA0NSwgNTEsIDEyOCwgNzcsIDY1LCA4MiwgNzUsIDQ1LCA1MCwgMTI4LCA3NywgNjUsIDgyLCA3NSwgNDUsIAorICAgIDQ5LCAxMjgsIDc3LCA2NSwgODIsIDY5LCAxMjgsIDc3LCA2NSwgODIsIDY3LCA3MiwgMTI4LCA3NywgNjUsIDgyLCA2NywgCisgICAgNjUsIDg0LCA3OSwgNDUsIDgzLCA4NCwgNjUsIDY3LCA2NywgNjUsIDg0LCA3OSwgMTI4LCA3NywgNjUsIDgyLCA2NywgNjUsIAorICAgIDg0LCA3OSwgMTI4LCA3NywgNjUsIDgyLCA2NywgNjUsIDgzLCA3MywgODQsIDY5LCAxMjgsIDc3LCA2NSwgODIsIDY2LCA4NSwgCisgICAgODQsIDY1LCAxMjgsIDc3LCA2NSwgODIsIDY2LCA4NSwgODQsIDE5MywgNzcsIDY1LCA4MiwgMTI4LCA3NywgNjUsIDgxLCAKKyAgICA2NSwgNzAsIDEyOCwgNzcsIDY1LCA4MSwgMTI4LCA3NywgNjUsIDgwLCA3NiwgMTk3LCA3NywgNjUsIDgwLCA3MywgODEsIAorICAgIDEyOCwgNzcsIDY1LCAyMDgsIDc3LCA2NSwgNzksIDEyOCwgNzcsIDY1LCA3OCwgODMsIDg5LCA3OSwgNzgsIDEyOCwgNzcsIAorICAgIDY1LCA3OCwgODMsIDg1LCA2NSwgNjksIDEyOCwgNzcsIDY1LCA3OCwgNzgsIDY1LCAyMTgsIDc3LCA2NSwgNzgsIDc4LCA2NSwgCisgICAgMTI4LCA3NywgNjUsIDc4LCA3MSwgNjUsIDc2LCA2NSwgNzcsIDEyOCwgNzcsIDY1LCA3OCwgNjgsIDY1LCA3MywgNzYsIDczLCAKKyAgICA3OCwgMTk5LCA3NywgNjUsIDc4LCA2OCwgNjUsIDczLCAxOTUsIDc3LCA2NSwgNzgsIDY3LCA3MiwgMjEzLCA3NywgNjUsIAorICAgIDc4LCA2NSwgNjcsIDc2LCA2OSwgODMsIDEyOCwgNzcsIDY1LCA3NiwgODQsIDY5LCA4MywgMTk3LCA3NywgNjUsIDc2LCA2OSwgCisgICAgNjksIDgyLCA3MywgMTI4LCA3NywgNjUsIDc2LCA2OSwgMTI4LCA3NywgNjUsIDc2LCAxOTcsIDc3LCA2NSwgNzYsIDY1LCAKKyAgICA3NSwgNzksIDIwNiwgNzcsIDY1LCA3NSwgODMsIDg1LCA4MiwgNjUsIDEyOCwgNzcsIDY1LCA3NSwgODMsIDg1LCA4MiwgCisgICAgMTkzLCA3NywgNjUsIDczLCA5MCwgNjksIDEyOCwgNzcsIDY1LCA3MywgODksIDY1LCA3NywgNzksIDc1LCAxMjgsIDc3LCAKKyAgICA2NSwgNzMsIDg0LCA2NSwgNzMsIDc1LCA3MiwgODUsIDEyOCwgNzcsIDY1LCA3MywgODIsIDg1LCAxMjgsIDc3LCA2NSwgNzMsIAorICAgIDc3LCA4NSwgNjUsIDc4LCAxMjgsIDc3LCA2NSwgNzMsIDc3LCA2NSwgNzYsIDY1LCA3MywgMTI4LCA3NywgNjUsIDczLCA3NiwgCisgICAgNjYsIDc5LCAyMTYsIDc3LCA2NSwgNzMsIDc1LCA4NSwgODIsIDc5LCAxMjgsIDc3LCA2NSwgNzMsIDY4LCA2OSwgNzgsIAorICAgIDEyOCwgNzcsIDY1LCA3MywgMTI4LCA3NywgNjUsIDcyLCA3NCwgNzksIDc4LCAxOTksIDc3LCA2NSwgNzIsIDcyLCA2NSwgCisgICAgMTI4LCA3NywgNjUsIDcyLCA2NSwgODAsIDgyLCA2NSwgNzgsIDY1LCAxMjgsIDc3LCA2NSwgNzIsIDY1LCA4MCwgNjUsIDc1LCAKKyAgICA3MiwgMTI4LCA3NywgNjUsIDcyLCA2NSwgNjUsIDgwLCA4MiwgNjUsIDY1LCA3OCwgMTkzLCA3NywgNjUsIDcyLCAxMjgsIAorICAgIDc3LCA2NSwgNzEsIDc4LCA3MywgNzAsIDg5LCA3MywgNzgsIDE5OSwgNzcsIDY1LCA2OSwgODMsIDczLCAxMjgsIDc3LCA2NSwgCisgICAgNjksIDc4LCA4OSwgNzMsIDEyOCwgNzcsIDY1LCA2OSwgNzgsIDc0LCA2OSwgODQsIDEyOCwgNzcsIDY1LCA2OSwgNzcsIDg2LCAKKyAgICA2OSwgODUsIDg4LCAxMjgsIDc3LCA2NSwgNjksIDc3LCA3NSwgODAsIDY5LCA3OCwgMTI4LCA3NywgNjUsIDY5LCA3NywgNzEsIAorICAgIDY2LCA3MywgNjksIDY5LCAxMjgsIDc3LCA2NSwgNjksIDc3LCA2NiwgNzEsIDY2LCA3MywgNjksIDY5LCAxMjgsIDc3LCA2NSwgCisgICAgNjksIDc3LCA2NiwgNjUsIDEyOCwgNzcsIDY1LCA2OSwgNzcsIDEyOCwgNzcsIDY1LCA2OSwgNzYsIDY5LCA2OSwgMTI4LCAKKyAgICA3NywgNjUsIDY5LCA3NSwgNjksIDg1LCA4MCwgMTI4LCA3NywgNjUsIDY4LCA4OSwgNjUsIDEyOCwgNzcsIDY1LCA2OCwgODUsIAorICAgIDEyOCwgNzcsIDY1LCA2OCwgNjgsIDY1LCAyMDAsIDc3LCA2NSwgNjgsIDY4LCA2NSwgMTI4LCA3NywgNjUsIDY4LCA2OCwgCisgICAgMTkzLCA3NywgNjUsIDY3LCA4MiwgNzksIDc4LCA0NSwgNzEsIDgyLCA2NSwgODYsIDY5LCAxMjgsIDc3LCA2NSwgNjcsIDgyLCAKKyAgICA3OSwgNzgsIDQ1LCA2NiwgODIsIDY5LCA4NiwgNjksIDEyOCwgNzcsIDY1LCA2NywgODIsIDc5LCA3OCwgNDUsIDY1LCA2NywgCisgICAgODUsIDg0LCA2OSwgMTI4LCA3NywgNjUsIDY3LCA4MiwgNzksIDc4LCAxMjgsIDc3LCA2NSwgNjcsIDgyLCA3OSwgMjA2LCAKKyAgICA3NywgNjUsIDY3LCA3MiwgNzMsIDc4LCA2OSwgMTI4LCA3NywgNjUsIDY1LCA4OSwgODksIDY1LCA2NSwgMTI4LCA3NywgNjUsIAorICAgIDY1LCA3MywgMTI4LCA3NywgNjUsIDY1LCAxMjgsIDc3LCA2NSwgNTAsIDEyOCwgNzcsIDQ4LCA1MiwgNTIsIDEyOCwgNzcsIAorICAgIDQ4LCA1MiwgNTEsIDEyOCwgNzcsIDQ4LCA1MiwgNTAsIDEyOCwgNzcsIDQ4LCA1MiwgNDksIDEyOCwgNzcsIDQ4LCA1MiwgCisgICAgNDgsIDY1LCAxMjgsIDc3LCA0OCwgNTIsIDQ4LCAxMjgsIDc3LCA0OCwgNTEsIDU3LCAxMjgsIDc3LCA0OCwgNTEsIDU2LCAKKyAgICAxMjgsIDc3LCA0OCwgNTEsIDU1LCAxMjgsIDc3LCA0OCwgNTEsIDU0LCAxMjgsIDc3LCA0OCwgNTEsIDUzLCAxMjgsIDc3LCAKKyAgICA0OCwgNTEsIDUyLCAxMjgsIDc3LCA0OCwgNTEsIDUxLCA2NiwgMTI4LCA3NywgNDgsIDUxLCA1MSwgNjUsIDEyOCwgNzcsIAorICAgIDQ4LCA1MSwgNTEsIDEyOCwgNzcsIDQ4LCA1MSwgNTAsIDEyOCwgNzcsIDQ4LCA1MSwgNDksIDY1LCAxMjgsIDc3LCA0OCwgCisgICAgNTEsIDQ5LCAxMjgsIDc3LCA0OCwgNTEsIDQ4LCAxMjgsIDc3LCA0OCwgNTAsIDU3LCAxMjgsIDc3LCA0OCwgNTAsIDU2LCAKKyAgICA2NSwgMTI4LCA3NywgNDgsIDUwLCA1NiwgMTI4LCA3NywgNDgsIDUwLCA1NSwgMTI4LCA3NywgNDgsIDUwLCA1NCwgMTI4LCAKKyAgICA3NywgNDgsIDUwLCA1MywgMTI4LCA3NywgNDgsIDUwLCA1MiwgNjUsIDEyOCwgNzcsIDQ4LCA1MCwgNTIsIDEyOCwgNzcsIAorICAgIDQ4LCA1MCwgNTEsIDEyOCwgNzcsIDQ4LCA1MCwgNTAsIDY1LCAxMjgsIDc3LCA0OCwgNTAsIDUwLCAxMjgsIDc3LCA0OCwgCisgICAgNTAsIDQ5LCAxMjgsIDc3LCA0OCwgNTAsIDQ4LCAxMjgsIDc3LCA0OCwgNDksIDU3LCAxMjgsIDc3LCA0OCwgNDksIDU2LCAKKyAgICAxMjgsIDc3LCA0OCwgNDksIDU1LCA2NSwgMTI4LCA3NywgNDgsIDQ5LCA1NSwgMTI4LCA3NywgNDgsIDQ5LCA1NCwgNjUsIAorICAgIDEyOCwgNzcsIDQ4LCA0OSwgNTQsIDEyOCwgNzcsIDQ4LCA0OSwgNTMsIDY1LCAxMjgsIDc3LCA0OCwgNDksIDUzLCAxMjgsIAorICAgIDc3LCA0OCwgNDksIDUyLCAxMjgsIDc3LCA0OCwgNDksIDUxLCAxMjgsIDc3LCA0OCwgNDksIDUwLCA3MiwgMTI4LCA3NywgCisgICAgNDgsIDQ5LCA1MCwgNzEsIDEyOCwgNzcsIDQ4LCA0OSwgNTAsIDcwLCAxMjgsIDc3LCA0OCwgNDksIDUwLCA2OSwgMTI4LCAKKyAgICA3NywgNDgsIDQ5LCA1MCwgNjgsIDEyOCwgNzcsIDQ4LCA0OSwgNTAsIDY3LCAxMjgsIDc3LCA0OCwgNDksIDUwLCA2NiwgCisgICAgMTI4LCA3NywgNDgsIDQ5LCA1MCwgNjUsIDEyOCwgNzcsIDQ4LCA0OSwgNTAsIDEyOCwgNzcsIDQ4LCA0OSwgNDksIDEyOCwgCisgICAgNzcsIDQ4LCA0OSwgNDgsIDY1LCAxMjgsIDc3LCA0OCwgNDksIDQ4LCAxMjgsIDc3LCA0OCwgNDgsIDU3LCAxMjgsIDc3LCAKKyAgICA0OCwgNDgsIDU2LCAxMjgsIDc3LCA0OCwgNDgsIDU1LCAxMjgsIDc3LCA0OCwgNDgsIDU0LCAxMjgsIDc3LCA0OCwgNDgsIAorICAgIDUzLCAxMjgsIDc3LCA0OCwgNDgsIDUyLCAxMjgsIDc3LCA0OCwgNDgsIDUxLCA2NSwgMTI4LCA3NywgNDgsIDQ4LCA1MSwgCisgICAgMTI4LCA3NywgNDgsIDQ4LCA1MCwgMTI4LCA3NywgNDgsIDQ4LCA0OSwgNjYsIDEyOCwgNzcsIDQ4LCA0OCwgNDksIDY1LCAKKyAgICAxMjgsIDc3LCA0OCwgNDgsIDQ5LCAxMjgsIDc2LCAyMTgsIDc2LCA4OSwgODksIDEyOCwgNzYsIDg5LCA4OCwgMTI4LCA3NiwgCisgICAgODksIDg0LCAxMjgsIDc2LCA4OSwgODIsIDg4LCAxMjgsIDc2LCA4OSwgODIsIDEyOCwgNzYsIDg5LCA4MCwgMTI4LCA3NiwgCisgICAgODksIDY4LCA3MywgNjUsIDIwNiwgNzYsIDg5LCA2NywgNzMsIDY1LCAyMDYsIDc2LCA4OCwgMTI4LCA3NiwgODcsIDc5LCAKKyAgICA3OSwgMTI4LCA3NiwgODcsIDc5LCAxMjgsIDc2LCA4NywgNzMsIDczLCAxMjgsIDc2LCA4NywgNzMsIDEyOCwgNzYsIDg3LCAKKyAgICA2OSwgMTI4LCA3NiwgODcsIDY1LCA2NSwgMTI4LCA3NiwgODcsIDY1LCAxMjgsIDc2LCA4NSwgODgsIDEyOCwgNzYsIDg1LCAKKyAgICA4NSwgMTI4LCA3NiwgODUsIDg0LCAxMjgsIDc2LCA4NSwgODIsIDg4LCAxMjgsIDc2LCA4NSwgODAsIDEyOCwgNzYsIDg1LCAKKyAgICA3OSwgODgsIDEyOCwgNzYsIDg1LCA3OSwgODQsIDEyOCwgNzYsIDg1LCA3OSwgODAsIDEyOCwgNzYsIDg1LCA3OSwgMTI4LCAKKyAgICA3NiwgODUsIDc4LCA3MSwgODMsIDczLCAxMjgsIDc2LCA4NSwgNzgsIDY1LCA4NCwgMTk3LCA3NiwgODUsIDIwNSwgNzYsIAorICAgIDg1LCA3NiwgMTI4LCA3NiwgODUsIDczLCA4MywgMTI4LCA3NiwgODUsIDcyLCA4NSwgODIsIDEyOCwgNzYsIDg1LCA3MiwgCisgICAgMTI4LCA3NiwgODUsIDcxLCA3MSwgNjUsIDcxLCA2OSwgMTI4LCA3NiwgODUsIDcxLCA2NSwgNzYsIDEyOCwgNzYsIDg1LCAKKyAgICA3MSwgNjUsIDIwNCwgNzYsIDg1LCA2OSwgMTI4LCA3NiwgODUsIDY1LCA2OSwgODAsIDEyOCwgNzYsIDg1LCA1MSwgMTI4LCAKKyAgICA3NiwgODUsIDUwLCAxMjgsIDc2LCA4NSwgMTc4LCA3NiwgODIsIDc5LCAxMjgsIDc2LCA4MiwgNzcsIDEyOCwgNzYsIDgyLCAKKyAgICA2OSwgMTI4LCA3NiwgNzksIDkwLCA2OSwgNzgsIDcxLCA2OSwgMTI4LCA3NiwgNzksIDkwLCA2OSwgNzgsIDcxLCAxOTcsIAorICAgIDc2LCA3OSwgODgsIDEyOCwgNzYsIDc5LCA4NywgNjksIDgyLCA2OSwgMTk2LCA3NiwgNzksIDg3LCA2OSwgMjEwLCA3NiwgCisgICAgNzksIDg3LCA0NSwgMTg1LCA3NiwgNzksIDg2LCAxOTcsIDc2LCA3OSwgODUsIDgyLCA2OSwgMTI4LCA3NiwgNzksIDg1LCAKKyAgICA2OCwgODMsIDgwLCA2OSwgNjUsIDc1LCA2OSwgODIsIDEyOCwgNzYsIDc5LCA4NSwgNjgsIDc2LCAyMTcsIDc2LCA3OSwgODQsIAorICAgIDg1LCA4MywgMTI4LCA3NiwgNzksIDg0LCAxMjgsIDc2LCA3OSwgODIsIDgyLCA4OSwgMTI4LCA3NiwgNzksIDgyLCA4MiwgCisgICAgNjUsIDczLCA3OCwgNjksIDEyOCwgNzYsIDc5LCA4MSwgMTI4LCA3NiwgNzksIDgwLCAxMjgsIDc2LCA3OSwgNzksIDg0LCAKKyAgICAxMjgsIDc2LCA3OSwgNzksIDgwLCA2OSwgMTk2LCA3NiwgNzksIDc5LCA4MCwgMTI4LCA3NiwgNzksIDc5LCAyMDgsIDc2LCAKKyAgICA3OSwgNzksIDc4LCAxMjgsIDc2LCA3OSwgNzksIDIwMywgNzYsIDc5LCA3OSwgMTI4LCA3NiwgNzksIDc4LCA4MywgODUsIAorICAgIDc3LCAxMjgsIDc2LCA3OSwgNzgsIDcxLCA2NSwgMTI4LCA3NiwgNzksIDc4LCA3MSwgMTkzLCA3NiwgNzksIDc4LCA3MSwgCisgICAgNDUsIDY2LCA4MiwgNjUsIDc4LCA2NywgNzIsIDQ1LCA4OSwgODIsIDEyOCwgNzYsIDc5LCA3OCwgNzEsIDQ1LCA2NiwgODIsIAorICAgIDY1LCA3OCwgNjcsIDcyLCA0NSwgODMsIDc5LCAyMDQsIDc2LCA3OSwgNzgsIDcxLCA0NSwgNjYsIDgyLCA2NSwgNzgsIDY3LCAKKyAgICA3MiwgNDUsIDc5LCA4MywgMjExLCA3NiwgNzksIDc4LCA3MSwgNDUsIDY2LCA4MiwgNjUsIDc4LCA2NywgNzIsIDQ1LCA3NywgCisgICAgNjUsIDY4LCAyMTAsIDc2LCA3OSwgNzgsIDcxLCA0NSwgNjYsIDgyLCA2NSwgNzgsIDY3LCA3MiwgNDUsIDcyLCA2NSwgNzEsIAorICAgIDY1LCA3NiwgMjA0LCA3NiwgNzksIDc4LCA3MSwgNDUsIDY2LCA4MiwgNjUsIDc4LCA2NywgNzIsIDQ1LCA2NSwgMjEwLCA3NiwgCisgICAgNzksIDc3LCA3NywgNjUsIDY5LCAxMjgsIDc2LCA3OSwgNzcsIDEyOCwgNzYsIDc5LCAyMDUsIDc2LCA3OSwgNzYsIDc2LCAKKyAgICA3MywgODAsIDc5LCA4MCwgMTI4LCA3NiwgNzksIDc2LCA3NiwgMTI4LCA3NiwgNzksIDcxLCAyMTAsIDc2LCA3OSwgNzEsIAorICAgIDc5LCA4NCwgODksIDgwLCAxOTcsIDc2LCA3OSwgNzEsIDc5LCA3MSwgODIsIDY1LCAyMDUsIDc2LCA3OSwgNzEsIDEyOCwgCisgICAgNzYsIDc5LCA2OCwgNjksIDgzLCA4NCwgNzksIDc4LCA2OSwgMTI4LCA3NiwgNzksIDY3LCA3OSwgNzcsIDc5LCA4NCwgNzMsIAorICAgIDg2LCA2OSwgMTI4LCA3NiwgNzksIDY3LCA3NSwgNzMsIDc4LCA3MSwgNDUsIDgzLCA3MiwgNzMsIDcwLCAyMTIsIDc2LCA3OSwgCisgICAgNjcsIDIwMywgNzYsIDc5LCA2NywgNjUsIDg0LCA3MywgODYsIDY5LCAxMjgsIDc2LCA3OSwgNjcsIDY1LCA4NCwgNzMsIDc5LCAKKyAgICAyMDYsIDc2LCA3OSwgNjUsIDEyOCwgNzYsIDc4LCAxMjgsIDc2LCA3NiwgODUsIDg1LCAxMjgsIDc2LCA3NiwgNzksIDc5LCAKKyAgICAxMjgsIDc2LCA3NiwgNzYsIDg1LCA4NSwgMTI4LCA3NiwgNzYsIDc2LCA4NSwgMTI4LCA3NiwgNzYsIDc2LCA3OSwgNzksIAorICAgIDEyOCwgNzYsIDc2LCA3NiwgNzksIDEyOCwgNzYsIDc2LCA3NiwgNzMsIDczLCAxMjgsIDc2LCA3NiwgNzYsIDczLCAxMjgsIAorICAgIDc2LCA3NiwgNzYsIDY5LCA2OSwgMTI4LCA3NiwgNzYsIDc2LCA2OSwgMTI4LCA3NiwgNzYsIDc2LCA2NSwgODUsIDEyOCwgCisgICAgNzYsIDc2LCA3NiwgNjUsIDczLCAxMjgsIDc2LCA3NiwgNzYsIDY1LCA2NSwgMTI4LCA3NiwgNzYsIDc2LCA2NSwgMTI4LCAKKyAgICA3NiwgNzYsIDc2LCAxMjgsIDc2LCA3NCwgODUsIDY4LCA3MywgNzQsIDY5LCAxMjgsIDc2LCA3NCwgNjksIDEyOCwgNzYsIAorICAgIDc0LCAxMjgsIDc2LCA3MywgODgsIDEyOCwgNzYsIDczLCA4NywgNzgsIDEyOCwgNzYsIDczLCA4NiwgODIsIDE5NywgNzYsIAorICAgIDczLCA4NCwgODQsIDc2LCAxOTcsIDc2LCA3MywgODQsIDg0LCA2OSwgMjEwLCA3NiwgNzMsIDg0LCA4MiwgMTkzLCA3NiwgCisgICAgNzMsIDg0LCAxMjgsIDc2LCA3MywgODMsIDIxMywgNzYsIDczLCA4MiwgMTkzLCA3NiwgNzMsIDgxLCA4NSwgNzMsIDE5NiwgCisgICAgNzYsIDczLCA4MSwgMTI4LCA3NiwgNzMsIDgwLCA4MywgODQsIDczLCA2NywgNzUsIDEyOCwgNzYsIDczLCA3OCwgNzUsIDczLCAKKyAgICA3OCwgMTk5LCA3NiwgNzMsIDc4LCAyMDMsIDc2LCA3MywgNzgsIDcxLCA4MywgNjUsIDEyOCwgNzYsIDczLCA3OCwgNjksIAorICAgIDgzLCAxMjgsIDc2LCA3MywgNzgsIDY5LCAyMTEsIDc2LCA3MywgNzgsIDY5LCA0NSwgNTcsIDEyOCwgNzYsIDczLCA3OCwgCisgICAgNjksIDQ1LCA1NSwgMTI4LCA3NiwgNzMsIDc4LCA2OSwgNDUsIDUxLCAxMjgsIDc2LCA3MywgNzgsIDY5LCA0NSwgNDksIAorICAgIDEyOCwgNzYsIDczLCA3NywgNzcsIDg1LCA1MiwgMTI4LCA3NiwgNzMsIDc3LCA3NywgODUsIDUwLCAxMjgsIDc2LCA3MywgCisgICAgNzcsIDc3LCA4NSwgMTI4LCA3NiwgNzMsIDc3LCA3NywgMjEzLCA3NiwgNzMsIDc3LCA3MywgODQsIDY5LCAxOTYsIDc2LCAKKyAgICA3MywgNzcsIDczLCA4NCwgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDc2LCA3MywgNzcsIDczLCA4NCwgMTI4LCA3NiwgNzMsIAorICAgIDc3LCA2OSwgMTI4LCA3NiwgNzMsIDc3LCA2NiwgMjEzLCA3NiwgNzMsIDc2LCA4OSwgMTI4LCA3NiwgNzMsIDc2LCA3MywgCisgICAgODQsIDcyLCAxMjgsIDc2LCA3MywgNzYsIDEyOCwgNzYsIDczLCA3MSwgNzIsIDg0LCA3OCwgNzMsIDc4LCA3MSwgMTI4LCAKKyAgICA3NiwgNzMsIDcxLCA3MiwgODQsIDcyLCA3OSwgODUsIDgzLCA2OSwgMTI4LCA3NiwgNzMsIDcxLCA3MiwgODQsIDEyOCwgNzYsIAorICAgIDczLCA3MCwgNjksIDEyOCwgNzYsIDczLCA2OSwgODgsIDEyOCwgNzYsIDczLCA2OSwgODQsIDEyOCwgNzYsIDczLCA2OSwgCisgICAgODAsIDEyOCwgNzYsIDczLCA2OSwgNjksIDEyOCwgNzYsIDczLCA2OSwgMTI4LCA3NiwgNzMsIDY4LCAxMjgsIDc2LCA3MywgCisgICAgNjYsIDgyLCA2NSwgMTI4LCA3NiwgNzMsIDY2LCA2OSwgODIsIDg0LCA4OSwgMTI4LCA3NiwgNzMsIDY1LCA2NiwgNzMsIDc2LCAKKyAgICA3MywgODQsIDIxNywgNzYsIDcyLCA3MywgNzMsIDEyOCwgNzYsIDcyLCA2NSwgODYsIDczLCA4OSwgNjUsIDc4LCA3MywgCisgICAgMTI4LCA3NiwgNzIsIDY1LCAxOTksIDc2LCA3MiwgNjUsIDY1LCAxMjgsIDc2LCA3MiwgMTI4LCA3NiwgNjksIDkwLCA3MiwgCisgICAgMTI4LCA3NiwgNjksIDg4LCAxMjgsIDc2LCA2OSwgODYsIDY5LCAyMDQsIDc2LCA2OSwgODUsIDc3LCAxMjgsIDc2LCA2OSwgCisgICAgODUsIDY1LCA2OSwgODAsIDEyOCwgNzYsIDY5LCA4NSwgNjUsIDY5LCA3NywgMTI4LCA3NiwgNjksIDg1LCAxMjgsIDc2LCAKKyAgICA2OSwgMjEzLCA3NiwgNjksIDg0LCA4NCwgNjksIDgyLCA4MywgMTI4LCA3NiwgNjksIDg0LCA4NCwgNjksIDgyLCAxMjgsIAorICAgIDc2LCA2OSwgMjEyLCA3NiwgNjksIDgzLCA4MywgNjksIDIxMCwgNzYsIDY5LCA4MywgODMsIDQ1LCA4NCwgNzIsIDY1LCA3OCwgCisgICAgMTI4LCA3NiwgNjksIDgzLCA4MywgNDUsIDg0LCA3MiwgNjUsIDIwNiwgNzYsIDY5LCA4MCwgMTI4LCA3NiwgNjksIDc5LCAKKyAgICA4MCwgNjUsIDgyLCA2OCwgMTI4LCA3NiwgNjksIDc5LCAxMjgsIDc2LCA2OSwgNzgsIDg0LCA3MywgNjcsIDg1LCA3NiwgNjUsIAorICAgIDIxMCwgNzYsIDY5LCA3OCwgNzMsIDgzLCAxMjgsIDc2LCA2OSwgNzgsIDcxLCA4NCwgNzIsIDY5LCA3OCwgNjksIDgyLCAKKyAgICAxMjgsIDc2LCA2OSwgNzgsIDcxLCA4NCwgMjAwLCA3NiwgNjksIDc4LCA3MSwgNjUsIDEyOCwgNzYsIDY5LCA3OCwgNzEsIAorICAgIDE5MywgNzYsIDY5LCA3NywgNzksIDc4LCAxMjgsIDc2LCA2OSwgNzcsIDc5LCA3MywgMTI4LCA3NiwgNjksIDc2LCA2OSwgCisgICAgODQsIDEyOCwgNzYsIDY5LCA3NiwgNjksIDIxMiwgNzYsIDY5LCAyMDMsIDc2LCA2OSwgNzMsIDc3LCA3NywgNjUsIDEyOCwgCisgICAgNzYsIDY5LCA3MywgNzcsIDc3LCAxOTMsIDc2LCA2OSwgNzEsIDgzLCAxMjgsIDc2LCA2OSwgNzEsIDczLCA3OSwgNzgsIAorICAgIDEyOCwgNzYsIDY5LCA3MSwgNjksIDg0LCA3OSwgMjExLCA3NiwgNjksIDcxLCAxMjgsIDc2LCA2OSwgNzAsIDg0LCA4NywgCisgICAgNjUsIDgyLCA2OCwgODMsIDEyOCwgNzYsIDY5LCA3MCwgODQsIDQ1LCA4NCwgNzksIDQ1LCA4MiwgNzMsIDcxLCA3MiwgMjEyLCAKKyAgICA3NiwgNjksIDcwLCA4NCwgNDUsIDgzLCA4NCwgNjksIDIwNSwgNzYsIDY5LCA3MCwgODQsIDQ1LCA4MywgNzMsIDY4LCAxOTcsIAorICAgIDc2LCA2OSwgNzAsIDg0LCA0NSwgODMsIDcyLCA2NSwgNjgsIDY5LCAxOTYsIDc2LCA2OSwgNzAsIDg0LCA0NSwgODAsIDc5LCAKKyAgICA3MywgNzgsIDg0LCA3MywgNzgsIDE5OSwgNzYsIDY5LCA3MCwgODQsIDQ1LCA3MiwgNjUsIDc4LCA2OCwgNjksIDE5NiwgNzYsIAorICAgIDY5LCA3MCwgODQsIDQ1LCA3MiwgNjUsIDc4LCAxOTYsIDc2LCA2OSwgNzAsIDg0LCA0NSwgNzAsIDY1LCA2NywgNzMsIDc4LCAKKyAgICAxOTksIDc2LCA2OSwgNzAsIDg0LCAxMjgsIDc2LCA2OSwgNjksIDgyLCA2NSwgNjksIDg3LCA2NSwgMTI4LCA3NiwgNjksIAorICAgIDY5LCA3NSwgMTI4LCA3NiwgNjksIDY5LCA2OSwgNjksIDEyOCwgNzYsIDY5LCA2OCwgNzEsIDY5LCA4MiwgMTI4LCA3NiwgCisgICAgNjksIDY1LCA4NCwgNzIsIDY5LCA4MiwgMTI4LCA3NiwgNjksIDY1LCA3MCwgMTI4LCA3NiwgNjksIDY1LCAxOTgsIDc2LCAKKyAgICA2OSwgNjUsIDY4LCA3MywgNzgsIDE5OSwgNzYsIDY5LCA2NSwgNjgsIDY5LCA4MiwgMTI4LCA3NiwgNjksIDY1LCAxOTYsIAorICAgIDc2LCA2OCwgNjUsIDc4LCAxMjgsIDc2LCA2OCwgNTAsIDEyOCwgNzYsIDY3LCAyMDEsIDc2LCA2NywgMTk3LCA3NiwgNjUsIAorICAgIDkwLCAyMTcsIDc2LCA2NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDc2LCA2NSwgODgsIDEyOCwgNzYsIDY1LCA4NywgCisgICAgMTI4LCA3NiwgNjUsIDIxNSwgNzYsIDY1LCA4NSwgNzYsIDY1LCAxMjgsIDc2LCA2NSwgODUsIDc1LCA2NSwgMjE4LCA3NiwgCisgICAgNjUsIDg0LCA3MywgNzgsIDY1LCA4NCwgMTk3LCA3NiwgNjUsIDg0LCA3MywgNzUsIDEyOCwgNzYsIDY1LCA4NCwgNjksIDgyLCAKKyAgICA2NSwgMjA0LCA3NiwgNjUsIDg0LCAxOTcsIDc2LCA2NSwgODMsIDIxMiwgNzYsIDY1LCA4MiwgODksIDc4LCA3MSwgNjksIAorICAgIDY1LCAyMDQsIDc2LCA2NSwgODIsIDcxLCA2OSwgMjEwLCA3NiwgNjUsIDgyLCA3MSwgNjksIDEyOCwgNzYsIDY1LCA4MiwgCisgICAgNzEsIDE5NywgNzYsIDY1LCA4MSwgMTI4LCA3NiwgNjUsIDgwLCA2NSwgODEsIDEyOCwgNzYsIDY1LCA4MCwgMTI4LCA3NiwgCisgICAgNjUsIDc4LCA4NCwgNjksIDgyLCA3OCwgMTI4LCA3NiwgNjUsIDc4LCA3MSwgODUsIDY1LCA3MSwgMTk3LCA3NiwgNjUsIDc4LCAKKyAgICA2OSwgODMsIDEyOCwgNzYsIDY1LCA3NywgNjksIDY4LCA3MiwgMTI4LCA3NiwgNjUsIDc3LCA2OSwgNjgsIDEyOCwgNzYsIAorICAgIDY1LCA3NywgNjksIDE5NiwgNzYsIDY1LCA3NywgNjksIDEyOCwgNzYsIDY1LCA3NywgMTk3LCA3NiwgNjUsIDc3LCA2OCwgCisgICAgNjUsIDEyOCwgNzYsIDY1LCA3NywgNjgsIDEyOCwgNzYsIDY1LCA3NywgNjYsIDY4LCAxOTMsIDc2LCA2NSwgNzcsIDY1LCAKKyAgICA2OCwgNzIsIDEyOCwgNzYsIDY1LCA3NiwgMTI4LCA3NiwgNjUsIDIwNCwgNzYsIDY1LCA3NSwgNzUsIDcyLCA2NSwgNzgsIAorICAgIDcxLCA4OSwgNjUsIDc5LCAxMjgsIDc2LCA2NSwgNzQsIDY1LCA3OCwgODksIDY1LCA3NiwgNjUsIDc4LCAxMjgsIDc2LCA2NSwgCisgICAgMjAxLCA3NiwgNjUsIDcyLCA4MywgNzIsIDg1LCAxMjgsIDc2LCA2NSwgNzIsIDEyOCwgNzYsIDY1LCA3MSwgODUsIDgzLCAKICAgICAxMjgsIDc2LCA2NSwgNzEsIDIxMywgNzYsIDY1LCA3MSwgNjUsIDgyLCAxMjgsIDc2LCA2NSwgNzEsIDY1LCAyMTAsIDc2LCAKICAgICA2NSwgNzEsIDY1LCA2NiwgMTI4LCA3NiwgNjUsIDcxLCA2NSwgMTk0LCA3NiwgNjUsIDY5LCA4NiwgMTI4LCA3NiwgNjUsIAogICAgIDY5LCAxMjgsIDc2LCA2NSwgNjgsIDIxNywgNzYsIDY1LCA2NywgNzUsIDEyOCwgNzYsIDY1LCA2NywgNjUsIDEyOCwgNzYsIAogICAgIDY1LCA2NiwgNzksIDg1LCA4MiwgNzMsIDc4LCA3MSwgMTI4LCA3NiwgNjUsIDY2LCA3OSwgODIsIDEyOCwgNzYsIDY1LCA2NiwgCi0gICAgNzMsIDY1LCA3NiwgNzMsIDkwLCA2NSwgODQsIDczLCA3OSwgMjA2LCA3NiwgNjUsIDY2LCA2NSwgODQsIDEyOCwgNzYsIDY1LCAKLSAgICA2NSwgNzgsIDY1LCA2OSwgMTI4LCA3NiwgNjUsIDY1LCA3OCwgMTI4LCA3NiwgNjUsIDY1LCA3NywgODUsIDEyOCwgNzYsIAotICAgIDY1LCA2NSwgNzcsIDEyOCwgNzYsIDY1LCA2NSwgNzMsIDEyOCwgNzYsIDQ4LCA0OCwgNTQsIDY1LCAxMjgsIDc2LCA0OCwgCi0gICAgNDgsIDUwLCA2NSwgMTI4LCA3NiwgNDUsIDg0LCA4OSwgODAsIDE5NywgNzYsIDQ1LCA4MywgNzIsIDY1LCA4MCwgNjksIAotICAgIDE5NiwgNzUsIDg5LCA4NSwgODIsIDczLCA3MywgMTI4LCA3NSwgODksIDg1LCAxMjgsIDc1LCA4OSwgNzksIDEyOCwgNzUsIAotICAgIDg5LCA3NiwgNzMsIDgzLCA3NywgNjUsIDEyOCwgNzUsIDg5LCA3MywgMTI4LCA3NSwgODksIDY5LCAxMjgsIDc1LCA4OSwgCi0gICAgNjUsIDg0LCA3MiwgNzksIDIxMSwgNzUsIDg5LCA2NSwgNjUsIDEyOCwgNzUsIDg5LCA2NSwgMTI4LCA3NSwgODgsIDg3LCAKLSAgICA3MywgMTI4LCA3NSwgODgsIDg3LCA2OSwgNjksIDEyOCwgNzUsIDg4LCA4NywgNjksIDEyOCwgNzUsIDg4LCA4NywgNjUsIAotICAgIDY1LCAxMjgsIDc1LCA4OCwgODcsIDY1LCAxMjgsIDc1LCA4OCwgODUsIDEyOCwgNzUsIDg4LCA3OSwgMTI4LCA3NSwgODgsIAotICAgIDczLCAxMjgsIDc1LCA4OCwgNjksIDY5LCAxMjgsIDc1LCA4OCwgNjksIDEyOCwgNzUsIDg4LCA2NSwgNjUsIDEyOCwgNzUsIAotICAgIDg4LCA2NSwgMTI4LCA3NSwgODcsIDg1LCA1MSwgNDksIDU2LCAxMjgsIDc1LCA4NywgNzksIDc5LCAxMjgsIDc1LCA4NywgCi0gICAgNzksIDEyOCwgNzUsIDg3LCA3MywgNzMsIDEyOCwgNzUsIDg3LCA3MywgMTI4LCA3NSwgODcsIDY5LCA2OSwgMTI4LCA3NSwgCi0gICAgODcsIDY5LCAxMjgsIDc1LCA4NywgNjUsIDg5LCAxMjgsIDc1LCA4NywgNjUsIDY5LCA4NCwgMTI4LCA3NSwgODcsIDY1LCAKLSAgICA2NSwgMTI4LCA3NSwgODYsIDY1LCAxMjgsIDc1LCA4NiwgMTI4LCA3NSwgODUsIDg4LCAxMjgsIDc1LCA4NSwgODUsIDcyLCAKLSAgICAxMjgsIDc1LCA4NSwgODQsIDEyOCwgNzUsIDg1LCA4MywgNzcsIDY1LCAxMjgsIDc1LCA4NSwgODMsIDcyLCA4NSwgNTAsIAotICAgIDEyOCwgNzUsIDg1LCA4MiwgODgsIDEyOCwgNzUsIDg1LCA4MiwgODUsIDkwLCA2OSwgNzMsIDgyLCA3OSwgMTI4LCA3NSwgCi0gICAgODUsIDgyLCA4NCwgMTI4LCA3NSwgODUsIDgyLCA3OSwgNzksIDc4LCA2OSwgMTI4LCA3NSwgODUsIDgyLCAxMjgsIDc1LCAKLSAgICA4NSwgMjEwLCA3NSwgODUsIDgxLCAxMjgsIDc1LCA4NSwgNzksIDg4LCAxMjgsIDc1LCA4NSwgNzksIDgwLCAxMjgsIDc1LCAKLSAgICA4NSwgNzksIDIwOCwgNzUsIDg1LCA3OSwgNzcsIDEyOCwgNzUsIDg1LCA3OSwgMTI4LCA3NSwgODUsIDc4LCA3MSwgMTI4LCAKLSAgICA3NSwgODUsIDc4LCA2OCwgNjgsIDY1LCA3NiwgNzMsIDg5LCA2NSwgMTI4LCA3NSwgODUsIDc2LCAxMjgsIDc1LCA4NSwgCi0gICAgMjA0LCA3NSwgODUsIDY5LCA4NCwgMTI4LCA3NSwgODUsIDU1LCAxMjgsIDc1LCA4NSwgNTIsIDEyOCwgNzUsIDg1LCAxODAsIAotICAgIDc1LCA4NSwgNTEsIDEyOCwgNzUsIDg1LCAxNzksIDc1LCA4NCwgMTI4LCA3NSwgODMsIDgzLCA2NSwgMTI4LCA3NSwgODMsIAotICAgIDczLCAxMjgsIDc1LCA4MiwgNjksIDc3LCA2NSwgODMsIDg0LCA3MywgMTI4LCA3NSwgODIsIDY1LCA4NCwgNzMsIDc3LCA3OSwgCi0gICAgODksIDgwLCA3OSwgODIsIDgyLCA3OSwgNzksIDc4LCAxMjgsIDc1LCA4MiwgNjUsIDg0LCA3MywgNzcsIDc5LCA3NSwgNzksIAotICAgIDg1LCA3MCwgNzMsIDgzLCA3NywgNjUsIDEyOCwgNzUsIDgyLCA2NSwgODQsIDczLCA3NywgNjUsIDg0LCA2NSwgMTI4LCA3NSwgCi0gICAgODIsIDY1LCA4NCwgNzMsIDc3LCAxOTMsIDc1LCA4MCwgODUsIDEyOCwgNzUsIDgwLCA3OSwgODEsIDEyOCwgNzUsIDgwLCAKLSAgICA3OSwgNzksIDEyOCwgNzUsIDgwLCA3OSwgMTI4LCA3NSwgODAsIDczLCAxMjgsIDc1LCA4MCwgNjksIDg1LCA4OCwgMTI4LCAKLSAgICA3NSwgODAsIDY5LCA2OSwgMTI4LCA3NSwgODAsIDY5LCAxMjgsIDc1LCA4MCwgNjUsIDgyLCA2NSwgODEsIDEyOCwgNzUsIAotICAgIDgwLCA2NSwgNzgsIDEyOCwgNzUsIDgwLCA2NSwgMTI4LCA3NSwgNzksIDg4LCAxMjgsIDc1LCA3OSwgODYsIDg1LCA4NSwgCi0gICAgMTI4LCA3NSwgNzksIDg0LCA3OSwgMTI4LCA3NSwgNzksIDgyLCA4NSwgNzgsIDY1LCAxMjgsIDc1LCA3OSwgODIsIDc5LCAKLSAgICA3OCwgNzMsIDgzLCAxMjgsIDc1LCA3OSwgODIsIDY5LCA2NSwgMjA2LCA3NSwgNzksIDgyLCA2NSwgNzgsIDczLCAxOTUsIAotICAgIDc1LCA3OSwgODEsIDc4LCA2OCwgNzksIDc4LCAxMjgsIDc1LCA3OSwgODAsIDgwLCA2NSwgMTI4LCA3NSwgNzksIDgwLCAKLSAgICAxMjgsIDc1LCA3OSwgNzksIDgwLCA3OSwgMTI4LCA3NSwgNzksIDc5LCA3NywgODUsIDg1LCA4NCwgMTI4LCA3NSwgNzksIAotICAgIDc5LCAxMjgsIDc1LCA3OSwgNzgsIDg0LCA2OSwgODYsIDc3LCA2NSwgMTI4LCA3NSwgNzksIDc4LCA4NCwgNjksIDg2LCA3NywgCi0gICAgMTkzLCA3NSwgNzksIDc3LCAyMDEsIDc1LCA3OSwgNzcsIDY2LCA4NSwgODYsIDY1LCAxMjgsIDc1LCA3OSwgNzcsIDY2LCAKLSAgICA4NSwgODYsIDE5MywgNzUsIDc5LCA3NywgNjYsIDIxMywgNzUsIDc5LCA3NSwgNzksIDEyOCwgNzUsIDc5LCA3NSwgMTI4LCAKLSAgICA3NSwgNzksIDIwMywgNzUsIDc5LCA3MywgMTI4LCA3NSwgNzksIDIwMSwgNzUsIDc5LCA3MiwgMTI4LCA3NSwgNzksIDcxLCAKLSAgICA3MiwgNzksIDc3LCAxMjgsIDc1LCA3OSwgNjksIDg0LCAxMjgsIDc1LCA3OSwgNjUsIDc2LCA2NSwgMTI4LCA3NSwgNzksIAotICAgIDY1LCAxMjgsIDc1LCA3OCwgNzMsIDcxLCA3MiwgODQsIDEyOCwgNzUsIDc4LCA3MywgNzEsIDcyLCAyMTIsIDc1LCA3OCwgCi0gICAgNzMsIDcwLCA2OSwgMTI4LCA3NSwgNzgsIDczLCA3MCwgMTk3LCA3NSwgNzcsIDEyOCwgNzUsIDIwNSwgNzUsIDc2LCA3MywgCi0gICAgODQsIDc5LCA3OCwgMTI4LCA3NSwgNzYsIDY1LCA4MywgNzcsIDY1LCAxMjgsIDc1LCA3NiwgNjUsIDgzLCA3NywgMTkzLCAKLSAgICA3NSwgNzYsIDY1LCAxMjgsIDc1LCA3NiwgMTI4LCA3NSwgNzUsIDg1LCAxMjgsIDc1LCA3NSwgNzksIDEyOCwgNzUsIDc1LCAKLSAgICA3MywgMTI4LCA3NSwgNzUsIDY5LCA2OSwgMTI4LCA3NSwgNzUsIDY5LCAxMjgsIDc1LCA3NSwgNjUsIDEyOCwgNzUsIDc1LCAKLSAgICAxMjgsIDc1LCA3NCwgNjksIDEyOCwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIDg0LCA3MywgNzUsIDY5LCA4NSwgODQsIAotICAgIDEyOCwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIDgzLCA3MywgNzksIDgzLCA0NSwgNzUsIDczLCA4OSwgNjksIDc5LCAKLSAgICA3NSwgMTI4LCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCA0NSwgODIsIDczLCA2OSwgODUsIDc2LCAxMjgsIDc1LCA3MywgODksIAotICAgIDY5LCA3OSwgNzUsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIDc4LCAKLSAgICA3MywgNjksIDg1LCA3OCwgMTI4LCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCA0NSwgNzUsIDcyLCA3MywgNjksIDg1LCA3NSwgCi0gICAgNzIsIDEyOCwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIDY3LCA3MiwgNzMsIDY5LCA4NSwgNjcsIDcyLCAxMjgsIDc1LCAKLSAgICA3MywgODksIDY5LCA3OSwgMjAzLCA3NSwgNzMsIDg4LCAxMjgsIDc1LCA3MywgODQsIDEyOCwgNzUsIDczLCA4MywgODMsIAotICAgIDczLCA3OCwgMTk5LCA3NSwgNzMsIDgzLCA4MywgMTI4LCA3NSwgNzMsIDgzLCAyMTEsIDc1LCA3MywgODMsIDczLCA3NywgCi0gICAgNTMsIDEyOCwgNzUsIDczLCA4MywgNzMsIDc3LCAxODEsIDc1LCA3MywgODMsIDcyLCAxMjgsIDc1LCA3MywgODMsIDY1LCAKLSAgICA3NiwgMTI4LCA3NSwgNzMsIDgyLCA3OSwgODcsIDY1LCA4NCwgODQsIDc5LCAxMjgsIDc1LCA3MywgODIsIDc5LCA3NywgNjksIAotICAgIDY5LCA4NCwgNzksIDgyLCA4NSwgMTI4LCA3NSwgNzMsIDgyLCA3OSwgNzEsIDg1LCA4MiwgNjUsIDc3LCA4NSwgMTI4LCA3NSwgCi0gICAgNzMsIDgyLCA3OSwgMTI4LCA3NSwgNzMsIDgyLCA3MSwgNzIsIDczLCAyMTgsIDc1LCA3MywgODEsIDEyOCwgNzUsIDczLCAKLSAgICA4MCwgMTI4LCA3NSwgNzMsIDIwOCwgNzUsIDczLCA3OCwgODMsIDcyLCA3MywgODAsIDEyOCwgNzUsIDczLCA3OCwgNjgsIAotICAgIDY5LCA4MiwgNzEsIDY1LCA4MiwgODQsIDY5LCA3OCwgMTI4LCA3NSwgNzMsIDc3LCA3OSwgNzgsIDc5LCAxMjgsIDc1LCA3MywgCi0gICAgNzMsIDEyOCwgNzUsIDczLCA3MiwgMTI4LCA3NSwgNzMsIDY5LCA4OCwgMTI4LCA3NSwgNzMsIDY5LCA4MCwgMTI4LCA3NSwgCi0gICAgNzMsIDY5LCA2OSwgNzcsIDEyOCwgNzUsIDczLCA2OSwgMTI4LCA3NSwgNzMsIDY4LCAxMjgsIDc1LCA3MywgMTk2LCA3NSwgCi0gICAgNzMsIDY3LCA3NSwgMTI4LCA3NSwgNzIsIDkwLCAxMjgsIDc1LCA3MiwgODcsIDY1LCA3MywgMTI4LCA3NSwgNzIsIDg1LCAKLSAgICA2OSwgNzgsIDQ1LCA3NiwgODUsIDE5NywgNzUsIDcyLCA4NSwgNjksIDIwNiwgNzUsIDcyLCA4NSwgNjUsIDg0LCAxMjgsIAotICAgIDc1LCA3MiwgNzksIDg1LCAxMjgsIDc1LCA3MiwgNzksIDIxMiwgNzUsIDcyLCA3OSwgNzgsIDEyOCwgNzUsIDcyLCA3OSwgCi0gICAgNzcsIDg1LCA4NCwgMTI4LCA3NSwgNzIsIDc5LCAxMjgsIDc1LCA3MiwgMjA3LCA3NSwgNzIsIDczLCA4NCwgMTI4LCA3NSwgCi0gICAgNzIsIDczLCA2OSwgODUsIDc1LCAyMDAsIDc1LCA3MiwgNzMsIDEyOCwgNzUsIDcyLCA3MiwgNzksIDEyOCwgNzUsIDcyLCAKLSAgICA3MiwgNjUsIDEyOCwgNzUsIDcyLCA2OSwgODQsIDcyLCAxMjgsIDc1LCA3MiwgNjksIDczLCAxMjgsIDc1LCA3MiwgNjksIAotICAgIDY5LCAxMjgsIDc1LCA3MiwgNjksIDEyOCwgNzUsIDcyLCA2NSwgODIsIDc5LCA4MywgNzIsIDg0LCA3MiwgMjAxLCA3NSwgCi0gICAgNzIsIDY1LCA4MiwgMTI4LCA3NSwgNzIsIDY1LCA4MCwgNzIsIDEyOCwgNzUsIDcyLCA2NSwgNzgsIDE5OSwgNzUsIDcyLCAKLSAgICA2NSwgNzgsIDY4LCAxOTMsIDc1LCA3MiwgNjUsIDc4LCAxMjgsIDc1LCA3MiwgNjUsIDc3LCA4NCwgMjAxLCA3NSwgNzIsIAotICAgIDY1LCA3NSwgNjUsIDgzLCA4MywgNzMsIDY1LCAyMDYsIDc1LCA3MiwgNjUsIDczLCAxMjgsIDc1LCA3MiwgNjUsIDcyLCAKKyAgICA3MywgNjUsIDc2LCA3MywgOTAsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDc2LCA2NSwgNjYsIDczLCA2NSwgMjA0LCA3NiwgNjUsIAorICAgIDY2LCA2NSwgODQsIDEyOCwgNzYsIDY1LCA2NSwgNzgsIDY1LCA2OSwgMTI4LCA3NiwgNjUsIDY1LCA3OCwgMTI4LCA3NiwgCisgICAgNjUsIDY1LCA3NywgODUsIDEyOCwgNzYsIDY1LCA2NSwgNzcsIDEyOCwgNzYsIDY1LCA2NSwgNzMsIDEyOCwgNzYsIDQ4LCAKKyAgICA0OCwgNTQsIDY1LCAxMjgsIDc2LCA0OCwgNDgsIDUwLCA2NSwgMTI4LCA3NiwgNDUsIDg0LCA4OSwgODAsIDE5NywgNzYsIAorICAgIDQ1LCA4MywgNzIsIDY1LCA4MCwgNjksIDE5NiwgNzUsIDg5LCA4NSwgODIsIDczLCA3MywgMTI4LCA3NSwgODksIDg1LCAKKyAgICAxMjgsIDc1LCA4OSwgNzksIDEyOCwgNzUsIDg5LCA3NiwgNzMsIDgzLCA3NywgNjUsIDEyOCwgNzUsIDg5LCA3MywgMTI4LCAKKyAgICA3NSwgODksIDY5LCAxMjgsIDc1LCA4OSwgNjUsIDg0LCA3MiwgNzksIDIxMSwgNzUsIDg5LCA2NSwgNjUsIDEyOCwgNzUsIAorICAgIDg5LCA2NSwgMTI4LCA3NSwgODgsIDg3LCA3MywgMTI4LCA3NSwgODgsIDg3LCA2OSwgNjksIDEyOCwgNzUsIDg4LCA4NywgCisgICAgNjksIDEyOCwgNzUsIDg4LCA4NywgNjUsIDY1LCAxMjgsIDc1LCA4OCwgODcsIDY1LCAxMjgsIDc1LCA4OCwgODUsIDEyOCwgCisgICAgNzUsIDg4LCA3OSwgMTI4LCA3NSwgODgsIDczLCAxMjgsIDc1LCA4OCwgNjksIDY5LCAxMjgsIDc1LCA4OCwgNjksIDEyOCwgCisgICAgNzUsIDg4LCA2NSwgNjUsIDEyOCwgNzUsIDg4LCA2NSwgMTI4LCA3NSwgODcsIDg1LCA1MSwgNDksIDU2LCAxMjgsIDc1LCAKKyAgICA4NywgNzksIDc5LCAxMjgsIDc1LCA4NywgNzksIDEyOCwgNzUsIDg3LCA3MywgNzMsIDEyOCwgNzUsIDg3LCA3MywgMTI4LCAKKyAgICA3NSwgODcsIDY5LCA2OSwgMTI4LCA3NSwgODcsIDY5LCAxMjgsIDc1LCA4NywgNjUsIDg5LCAxMjgsIDc1LCA4NywgNjUsIAorICAgIDY5LCA4NCwgMTI4LCA3NSwgODcsIDY1LCA2NSwgMTI4LCA3NSwgODYsIDY1LCAxMjgsIDc1LCA4NiwgMTI4LCA3NSwgODUsIAorICAgIDg4LCAxMjgsIDc1LCA4NSwgODUsIDcyLCAxMjgsIDc1LCA4NSwgODQsIDEyOCwgNzUsIDg1LCA4MywgNzcsIDY1LCAxMjgsIAorICAgIDc1LCA4NSwgODMsIDcyLCA4NSwgNTAsIDEyOCwgNzUsIDg1LCA4MiwgODgsIDEyOCwgNzUsIDg1LCA4MiwgODUsIDkwLCA2OSwgCisgICAgNzMsIDgyLCA3OSwgMTI4LCA3NSwgODUsIDgyLCA4NCwgMTI4LCA3NSwgODUsIDgyLCA3OSwgNzksIDc4LCA2OSwgMTI4LCAKKyAgICA3NSwgODUsIDgyLCAxMjgsIDc1LCA4NSwgMjEwLCA3NSwgODUsIDgxLCAxMjgsIDc1LCA4NSwgNzksIDg4LCAxMjgsIDc1LCAKKyAgICA4NSwgNzksIDgwLCAxMjgsIDc1LCA4NSwgNzksIDIwOCwgNzUsIDg1LCA3OSwgNzcsIDEyOCwgNzUsIDg1LCA3OSwgMTI4LCAKKyAgICA3NSwgODUsIDc4LCA3MSwgMTI4LCA3NSwgODUsIDc4LCA2OCwgNjgsIDY1LCA3NiwgNzMsIDg5LCA2NSwgMTI4LCA3NSwgODUsIAorICAgIDc2LCAxMjgsIDc1LCA4NSwgMjA0LCA3NSwgODUsIDY5LCA4NCwgMTI4LCA3NSwgODUsIDU1LCAxMjgsIDc1LCA4NSwgNTIsIAorICAgIDEyOCwgNzUsIDg1LCAxODAsIDc1LCA4NSwgNTEsIDEyOCwgNzUsIDg1LCAxNzksIDc1LCA4NCwgMTI4LCA3NSwgODMsIDgzLCAKKyAgICA4NSwgODUsIDEyOCwgNzUsIDgzLCA4MywgODUsIDEyOCwgNzUsIDgzLCA4MywgNzksIDc5LCAxMjgsIDc1LCA4MywgODMsIAorICAgIDc5LCAxMjgsIDc1LCA4MywgODMsIDczLCA3MywgMTI4LCA3NSwgODMsIDgzLCA3MywgMTI4LCA3NSwgODMsIDgzLCA2OSwgCisgICAgNjksIDEyOCwgNzUsIDgzLCA4MywgNjksIDEyOCwgNzUsIDgzLCA4MywgNjUsIDg1LCAxMjgsIDc1LCA4MywgODMsIDY1LCAKKyAgICA3MywgMTI4LCA3NSwgODMsIDgzLCA2NSwgNjUsIDEyOCwgNzUsIDgzLCA4MywgNjUsIDEyOCwgNzUsIDgzLCA4MywgMTI4LCAKKyAgICA3NSwgODMsIDczLCAxMjgsIDc1LCA4MiwgNjksIDc3LCA2NSwgODMsIDg0LCA3MywgMTI4LCA3NSwgODIsIDY1LCA4NCwgNzMsIAorICAgIDc3LCA3OSwgODksIDgwLCA3OSwgODIsIDgyLCA3OSwgNzksIDc4LCAxMjgsIDc1LCA4MiwgNjUsIDg0LCA3MywgNzcsIDc5LCAKKyAgICA3NSwgNzksIDg1LCA3MCwgNzMsIDgzLCA3NywgNjUsIDEyOCwgNzUsIDgyLCA2NSwgODQsIDczLCA3NywgNjUsIDg0LCA2NSwgCisgICAgMTI4LCA3NSwgODIsIDY1LCA4NCwgNzMsIDc3LCAxOTMsIDc1LCA4MCwgODUsIDEyOCwgNzUsIDgwLCA3OSwgODEsIDEyOCwgCisgICAgNzUsIDgwLCA3OSwgNzksIDEyOCwgNzUsIDgwLCA3OSwgMTI4LCA3NSwgODAsIDczLCAxMjgsIDc1LCA4MCwgNjksIDg1LCAKKyAgICA4OCwgMTI4LCA3NSwgODAsIDY5LCA2OSwgMTI4LCA3NSwgODAsIDY5LCAxMjgsIDc1LCA4MCwgNjUsIDgyLCA2NSwgODEsIAorICAgIDEyOCwgNzUsIDgwLCA2NSwgNzgsIDEyOCwgNzUsIDgwLCA2NSwgMTI4LCA3NSwgNzksIDg4LCAxMjgsIDc1LCA3OSwgODYsIAorICAgIDg1LCA4NSwgMTI4LCA3NSwgNzksIDg0LCA3OSwgMTI4LCA3NSwgNzksIDgyLCA4NSwgNzgsIDY1LCAxMjgsIDc1LCA3OSwgCisgICAgODIsIDc5LCA3OCwgNzMsIDgzLCAxMjgsIDc1LCA3OSwgODIsIDY5LCA2NSwgMjA2LCA3NSwgNzksIDgyLCA2NSwgNzgsIDczLCAKKyAgICAxOTUsIDc1LCA3OSwgODEsIDc4LCA2OCwgNzksIDc4LCAxMjgsIDc1LCA3OSwgODAsIDgwLCA2NSwgMTI4LCA3NSwgNzksIAorICAgIDgwLCAxMjgsIDc1LCA3OSwgNzksIDgwLCA3OSwgMTI4LCA3NSwgNzksIDc5LCA3NywgODUsIDg1LCA4NCwgMTI4LCA3NSwgCisgICAgNzksIDc5LCAxMjgsIDc1LCA3OSwgNzgsIDg0LCA2OSwgODYsIDc3LCA2NSwgMTI4LCA3NSwgNzksIDc4LCA4NCwgNjksIDg2LCAKKyAgICA3NywgMTkzLCA3NSwgNzksIDc3LCAyMDEsIDc1LCA3OSwgNzcsIDY2LCA4NSwgODYsIDY1LCAxMjgsIDc1LCA3OSwgNzcsIAorICAgIDY2LCA4NSwgODYsIDE5MywgNzUsIDc5LCA3NywgNjYsIDIxMywgNzUsIDc5LCA3NSwgNzksIDEyOCwgNzUsIDc5LCA3NSwgCisgICAgMTI4LCA3NSwgNzksIDIwMywgNzUsIDc5LCA3MywgMTI4LCA3NSwgNzksIDIwMSwgNzUsIDc5LCA3MiwgMTI4LCA3NSwgNzksIAorICAgIDcxLCA3MiwgNzksIDc3LCAxMjgsIDc1LCA3OSwgNjksIDg0LCAxMjgsIDc1LCA3OSwgNjUsIDc2LCA2NSwgMTI4LCA3NSwgCisgICAgNzksIDY1LCAxMjgsIDc1LCA3OCwgNzMsIDcxLCA3MiwgODQsIDEyOCwgNzUsIDc4LCA3MywgNzEsIDcyLCAyMTIsIDc1LCAKKyAgICA3OCwgNzMsIDcwLCA2OSwgMTI4LCA3NSwgNzgsIDczLCA3MCwgMTk3LCA3NSwgNzcsIDEyOCwgNzUsIDIwNSwgNzUsIDc2LCAKKyAgICA3MywgODQsIDc5LCA3OCwgMTI4LCA3NSwgNzYsIDY1LCA4MywgNzcsIDY1LCAxMjgsIDc1LCA3NiwgNjUsIDgzLCA3NywgCisgICAgMTkzLCA3NSwgNzYsIDY1LCAxMjgsIDc1LCA3NiwgMTI4LCA3NSwgNzUsIDg1LCAxMjgsIDc1LCA3NSwgNzksIDEyOCwgNzUsIAorICAgIDc1LCA3MywgMTI4LCA3NSwgNzUsIDY5LCA2OSwgMTI4LCA3NSwgNzUsIDY5LCAxMjgsIDc1LCA3NSwgNjUsIDEyOCwgNzUsIAorICAgIDc1LCAxMjgsIDc1LCA3NCwgNjksIDEyOCwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIDg0LCA3MywgNzUsIDY5LCA4NSwgCisgICAgODQsIDEyOCwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIDgzLCA3MywgNzksIDgzLCA0NSwgNzUsIDczLCA4OSwgNjksIAorICAgIDc5LCA3NSwgMTI4LCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCA0NSwgODIsIDczLCA2OSwgODUsIDc2LCAxMjgsIDc1LCA3MywgCisgICAgODksIDY5LCA3OSwgNzUsIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIAorICAgIDc4LCA3MywgNjksIDg1LCA3OCwgMTI4LCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCA0NSwgNzUsIDcyLCA3MywgNjksIDg1LCAKKyAgICA3NSwgNzIsIDEyOCwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgNDUsIDY3LCA3MiwgNzMsIDY5LCA4NSwgNjcsIDcyLCAxMjgsIAorICAgIDc1LCA3MywgODksIDY5LCA3OSwgMjAzLCA3NSwgNzMsIDg4LCAxMjgsIDc1LCA3MywgODQsIDEyOCwgNzUsIDczLCA4MywgCisgICAgODMsIDczLCA3OCwgMTk5LCA3NSwgNzMsIDgzLCA4MywgMTI4LCA3NSwgNzMsIDgzLCAyMTEsIDc1LCA3MywgODMsIDczLCAKKyAgICA3NywgNTMsIDEyOCwgNzUsIDczLCA4MywgNzMsIDc3LCAxODEsIDc1LCA3MywgODMsIDcyLCAxMjgsIDc1LCA3MywgODMsIAorICAgIDY1LCA3NiwgMTI4LCA3NSwgNzMsIDgyLCA3OSwgODcsIDY1LCA4NCwgODQsIDc5LCAxMjgsIDc1LCA3MywgODIsIDc5LCA3NywgCisgICAgNjksIDY5LCA4NCwgNzksIDgyLCA4NSwgMTI4LCA3NSwgNzMsIDgyLCA3OSwgNzEsIDg1LCA4MiwgNjUsIDc3LCA4NSwgMTI4LCAKKyAgICA3NSwgNzMsIDgyLCA3OSwgMTI4LCA3NSwgNzMsIDgyLCA3MSwgNzIsIDczLCAyMTgsIDc1LCA3MywgODEsIDEyOCwgNzUsIAorICAgIDczLCA4MCwgMTI4LCA3NSwgNzMsIDIwOCwgNzUsIDczLCA3OCwgODMsIDcyLCA3MywgODAsIDEyOCwgNzUsIDczLCA3OCwgCisgICAgNjgsIDY5LCA4MiwgNzEsIDY1LCA4MiwgODQsIDY5LCA3OCwgMTI4LCA3NSwgNzMsIDc3LCA3OSwgNzgsIDc5LCAxMjgsIDc1LCAKKyAgICA3MywgNzMsIDEyOCwgNzUsIDczLCA3MiwgMTI4LCA3NSwgNzMsIDY5LCA4OCwgMTI4LCA3NSwgNzMsIDY5LCA4MCwgMTI4LCAKKyAgICA3NSwgNzMsIDY5LCA2OSwgNzcsIDEyOCwgNzUsIDczLCA2OSwgMTI4LCA3NSwgNzMsIDY4LCAxMjgsIDc1LCA3MywgMTk2LCAKKyAgICA3NSwgNzMsIDY3LCA3NSwgMTI4LCA3NSwgNzIsIDkwLCAxMjgsIDc1LCA3MiwgODcsIDY1LCA3MywgMTI4LCA3NSwgNzIsIAorICAgIDg1LCA2OSwgNzgsIDQ1LCA3NiwgODUsIDE5NywgNzUsIDcyLCA4NSwgNjksIDIwNiwgNzUsIDcyLCA4NSwgNjgsIDY1LCA3NywgCisgICAgMTI4LCA3NSwgNzIsIDg1LCA2NSwgODQsIDEyOCwgNzUsIDcyLCA3OSwgODUsIDEyOCwgNzUsIDcyLCA3OSwgMjEyLCA3NSwgCisgICAgNzIsIDc5LCA3OCwgMTI4LCA3NSwgNzIsIDc5LCA3NywgODUsIDg0LCAxMjgsIDc1LCA3MiwgNzksIDEyOCwgNzUsIDcyLCAKKyAgICAyMDcsIDc1LCA3MiwgNzcsIDIxMywgNzUsIDcyLCA3MywgODQsIDEyOCwgNzUsIDcyLCA3MywgNzgsIDg5LCA2NSwgMTI4LCAKKyAgICA3NSwgNzIsIDczLCA2OSwgODUsIDc1LCAyMDAsIDc1LCA3MiwgNzMsIDEyOCwgNzUsIDcyLCA3MiwgNzksIDEyOCwgNzUsIAorICAgIDcyLCA3MiwgNjUsIDEyOCwgNzUsIDcyLCA2OSwgODQsIDcyLCAxMjgsIDc1LCA3MiwgNjksIDczLCAxMjgsIDc1LCA3MiwgCisgICAgNjksIDY5LCAxMjgsIDc1LCA3MiwgNjksIDEyOCwgNzUsIDcyLCA2NSwgODIsIDc5LCA4MywgNzIsIDg0LCA3MiwgMjAxLCAKKyAgICA3NSwgNzIsIDY1LCA4MiwgMTI4LCA3NSwgNzIsIDY1LCA4MCwgNzIsIDEyOCwgNzUsIDcyLCA2NSwgNzgsIDE5OSwgNzUsIAorICAgIDcyLCA2NSwgNzgsIDY4LCAxOTMsIDc1LCA3MiwgNjUsIDc4LCAxMjgsIDc1LCA3MiwgNjUsIDc3LCA4NCwgMjAxLCA3NSwgCisgICAgNzIsIDY1LCA3NSwgNjUsIDgzLCA4MywgNzMsIDY1LCAyMDYsIDc1LCA3MiwgNjUsIDczLCAxMjgsIDc1LCA3MiwgNjUsIDcyLCAKICAgICAxMjgsIDc1LCA3MiwgNjUsIDIwMCwgNzUsIDcyLCA2NSwgNjUsIDEyOCwgNzUsIDcxLCAxMjgsIDc1LCA2OSwgODksIDY3LCAKICAgICA2NSwgODAsIDEyOCwgNzUsIDY5LCA4OSwgNjcsIDY1LCAyMDgsIDc1LCA2OSwgODksIDY2LCA3OSwgNjUsIDgyLCA2OCwgCiAgICAgMTI4LCA3NSwgNjksIDg4LCAxMjgsIDc1LCA2OSwgODUsIDg5LCA2OSwgODUsIDg4LCAxMjgsIDc1LCA2OSwgODUsIDgzLCAKQEAgLTIxNDEsNzEgKzIyODcsNzQgQEAKICAgICA2OSwgNjksIDgwLCA3MywgNzgsIDE5OSwgNzUsIDY5LCA2OSwgNzgsIDcxLCAxMjgsIDc1LCA2NywgNjUsIDc2LCAxMjgsIAogICAgIDc1LCA2NiwgMTI4LCA3NSwgNjUsIDkwLCA2NSwgNzUsIDIwMCwgNzUsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgCiAgICAgNzUsIDY1LCA4OSwgNjUsIDIwMCwgNzUsIDY1LCA4OCwgMTI4LCA3NSwgNjUsIDg3LCA3MywgMTI4LCA3NSwgNjUsIDg2LCAKLSAgICA4OSwgNzUsIDY1LCAxMjgsIDc1LCA2NSwgODUsIDc4LCA2NSwgMTI4LCA3NSwgNjUsIDg1LCAyMDYsIDc1LCA2NSwgODQsIAotICAgIDc5LCAxMjgsIDc1LCA2NSwgODQsIDcyLCA3MywgODMsIDg0LCA3MywgMTI4LCA3NSwgNjUsIDg0LCA3MiwgNjUsIDc1LCAKLSAgICAxOTMsIDc1LCA2NSwgODQsIDY1LCA4NiwgNjUsIDgzLCA3NywgNjUsIDEyOCwgNzUsIDY1LCA4NCwgNjUsIDg2LCAxOTMsIAotICAgIDc1LCA2NSwgODQsIDY1LCA3NSwgNjUsIDc4LCA2NSwgNDUsIDcyLCA3MywgODIsIDY1LCA3MSwgNjUsIDc4LCAxOTMsIDc1LCAKLSAgICA2NSwgODMsIDgyLCA2NSwgODQsIDY1LCA3OCwgMTI4LCA3NSwgNjUsIDgzLCA4MiwgNjUsIDg0LCA2NSwgMjA2LCA3NSwgNjUsIAotICAgIDgzLCA4MiwgNjUsIDEyOCwgNzUsIDY1LCA4MywgODIsIDE5MywgNzUsIDY1LCA4MywgNzUsIDY1LCA3NiwgMTI4LCA3NSwgCi0gICAgNjUsIDgzLCA3NSwgNjUsIDIwNCwgNzUsIDY1LCA4MywgNzIsIDc3LCA3MywgODIsIDIwMSwgNzUsIDY1LCA4MiwgODMsIDcyLCAKLSAgICA2NSwgNzgsIDY1LCAxMjgsIDc1LCA2NSwgODIsIDc5LCA4MiwgNzMsIDczLCAxMjgsIDc1LCA2NSwgODIsIDIwNywgNzUsIAotICAgIDY1LCA4MiwgNjksIDIwNiwgNzUsIDY1LCA4MiwgNjUsIDg0LCA4NCwgNzksIDEyOCwgNzUsIDY1LCA4MiwgNjUsIDc4LCAKLSAgICAxMjgsIDc1LCA2NSwgODAsIDg5LCA2OSwgNzksIDg1LCA3OCwgODMsIDgzLCA2NSwgNzgsIDcxLCA4MCwgNzMsIDY5LCA4NSwgCi0gICAgODAsIDEyOCwgNzUsIDY1LCA4MCwgODksIDY5LCA3OSwgODUsIDc4LCA4MiwgNzMsIDY5LCA4NSwgNzYsIDEyOCwgNzUsIDY1LCAKLSAgICA4MCwgODksIDY5LCA3OSwgODUsIDc4LCA4MCwgNzIsIDczLCA2OSwgODUsIDgwLCA3MiwgMTI4LCA3NSwgNjUsIDgwLCA4OSwgCi0gICAgNjksIDc5LCA4NSwgNzgsIDc3LCA3MywgNjksIDg1LCA3NywgMTI4LCA3NSwgNjUsIDgwLCA4MCwgNjUsIDEyOCwgNzUsIDY1LCAKLSAgICA4MCwgODAsIDE5MywgNzUsIDY1LCA4MCwgNzksIDEyOCwgNzUsIDY1LCA4MCwgNzIsIDEyOCwgNzUsIDY1LCA4MCwgNjUsIAotICAgIDc2LCAxMjgsIDc1LCA2NSwgODAsIDY1LCAxMjgsIDc1LCA2NSwgNzgsIDg0LCA2NSwgNzQsIDE5MywgNzUsIDY1LCA3OCwgCi0gICAgNzEsIDEyOCwgNzUsIDY1LCA3OCwgMTk5LCA3NSwgNjUsIDc4LCA2NSwgNzUsIDc5LCAxMjgsIDc1LCA2NSwgNzcsIDUyLCAKLSAgICAxMjgsIDc1LCA2NSwgNzcsIDUwLCAxMjgsIDc1LCA2NSwgNzcsIDEyOCwgNzUsIDY1LCA3NSwgNzksIDEyOCwgNzUsIDY1LCAKLSAgICA3NSwgNjUsIDY2LCA2NSwgODQsIDEyOCwgNzUsIDY1LCA3NSwgMTI4LCA3NSwgNjUsIDIwMywgNzUsIDY1LCA3MywgODIsIAotICAgIDczLCAxMjgsIDc1LCA2NSwgNzMsIDEyOCwgNzUsIDY1LCAyMDEsIDc1LCA2NSwgNzAsIDY1LCAxMjgsIDc1LCA2NSwgNzAsIAotICAgIDEyOCwgNzUsIDY1LCAxOTgsIDc1LCA2NSwgNjgsIDUzLCAxMjgsIDc1LCA2NSwgNjgsIDE4MSwgNzUsIDY1LCA2OCwgNTIsIAotICAgIDEyOCwgNzUsIDY1LCA2OCwgNTEsIDEyOCwgNzUsIDY1LCA2OCwgMTc5LCA3NSwgNjUsIDY4LCA1MCwgMTI4LCA3NSwgNjUsIAotICAgIDY4LCAxMjgsIDc1LCA2NSwgNjYsIDE5MywgNzUsIDY1LCA2NiwgMTI4LCA3NSwgNjUsIDY1LCA3MywgMTI4LCA3NSwgNjUsIAotICAgIDY1LCA3MCwgODUsIDEyOCwgNzUsIDY1LCA2NSwgNzAsIDEyOCwgNzUsIDY1LCA1MCwgMTI4LCA3NSwgNjUsIDE3OCwgNzUsIAotICAgIDQ4LCA0OCwgNTYsIDEyOCwgNzUsIDQ4LCA0OCwgNTUsIDEyOCwgNzUsIDQ4LCA0OCwgNTQsIDEyOCwgNzUsIDQ4LCA0OCwgCi0gICAgNTMsIDEyOCwgNzUsIDQ4LCA0OCwgNTIsIDEyOCwgNzUsIDQ4LCA0OCwgNTEsIDEyOCwgNzUsIDQ4LCA0OCwgNTAsIDEyOCwgCi0gICAgNzUsIDQ4LCA0OCwgNDksIDEyOCwgNzQsIDg3LCA2NSwgMTI4LCA3NCwgODUsIDg1LCAxMjgsIDc0LCA4NSwgODQsIDEyOCwgCi0gICAgNzQsIDg1LCA4MCwgNzMsIDg0LCA2OSwgODIsIDEyOCwgNzQsIDg1LCA3OSwgODQsIDEyOCwgNzQsIDg1LCA3OSwgODAsIAotICAgIDEyOCwgNzQsIDg1LCA3OCwgNzksIDEyOCwgNzQsIDg1LCA3OCwgNjksIDEyOCwgNzQsIDg1LCA3NiwgODksIDEyOCwgNzQsIAotICAgIDg1LCA2OSwgODUsIDczLCAxMjgsIDc0LCA4NSwgNjgsIDg1LCA3NiwgMTI4LCA3NCwgODUsIDY4LCA3MSwgNjksIDEyOCwgCi0gICAgNzQsIDg1LCA2OCwgNjksIDc5LCA0NSwgODMsIDgwLCA2NSwgNzgsIDczLCA4MywgMjAwLCA3NCwgNzksIDg5LCA3OSwgODUsIAotICAgIDIxMSwgNzQsIDc5LCA4OSwgMTI4LCA3NCwgNzksIDg2LCA2OSwgMTI4LCA3NCwgNzksIDIxMiwgNzQsIDc5LCA3OCwgNzEsIAotICAgIDEyOCwgNzQsIDc5LCA3OCwgMTkzLCA3NCwgNzksIDc1LCA2OSwgODIsIDEyOCwgNzQsIDc5LCA3MywgNzgsIDY5LCA2OCwgCi0gICAgMTI4LCA3NCwgNzksIDczLCA3OCwgMTI4LCA3NCwgNzksIDY1LCAxMjgsIDc0LCA3NCwgODksIDg4LCAxMjgsIDc0LCA3NCwgCi0gICAgODksIDg0LCAxMjgsIDc0LCA3NCwgODksIDgwLCAxMjgsIDc0LCA3NCwgODksIDEyOCwgNzQsIDc0LCA4NSwgODgsIDEyOCwgCi0gICAgNzQsIDc0LCA4NSwgODQsIDEyOCwgNzQsIDc0LCA4NSwgODIsIDg4LCAxMjgsIDc0LCA3NCwgODUsIDgyLCAxMjgsIDc0LCAKLSAgICA3NCwgODUsIDgwLCAxMjgsIDc0LCA3NCwgODUsIDc5LCA4OCwgMTI4LCA3NCwgNzQsIDg1LCA3OSwgODAsIDEyOCwgNzQsIAotICAgIDc0LCA4NSwgNzksIDEyOCwgNzQsIDc0LCA4NSwgMTI4LCA3NCwgNzQsIDc5LCA4OCwgMTI4LCA3NCwgNzQsIDc5LCA4NCwgCi0gICAgMTI4LCA3NCwgNzQsIDc5LCA4MCwgMTI4LCA3NCwgNzQsIDc5LCAxMjgsIDc0LCA3NCwgNzMsIDg4LCAxMjgsIDc0LCA3NCwgCi0gICAgNzMsIDg0LCAxMjgsIDc0LCA3NCwgNzMsIDgwLCAxMjgsIDc0LCA3NCwgNzMsIDY5LCA4OCwgMTI4LCA3NCwgNzQsIDczLCAKLSAgICA2OSwgODQsIDEyOCwgNzQsIDc0LCA3MywgNjksIDgwLCAxMjgsIDc0LCA3NCwgNzMsIDY5LCAxMjgsIDc0LCA3NCwgNzMsIAotICAgIDEyOCwgNzQsIDc0LCA2OSwgNjksIDEyOCwgNzQsIDc0LCA2OSwgMTI4LCA3NCwgNzQsIDY1LCAxMjgsIDc0LCA3MywgNzYsIAotICAgIDEyOCwgNzQsIDczLCA3MiwgODYsIDY1LCA3NywgODUsIDc2LCA3MywgODksIDY1LCAxMjgsIDc0LCA3MywgNjUsIDEyOCwgCi0gICAgNzQsIDcyLCA3OSwgMTI4LCA3NCwgNzIsIDY5LCA3MiwgMTI4LCA3NCwgNzIsIDY1LCA3OCwgMTI4LCA3NCwgNzIsIDY1LCAKLSAgICA3NywgMTI4LCA3NCwgNzIsIDY1LCAxMjgsIDc0LCA2OSwgODUsIDEyOCwgNzQsIDY5LCA4MiwgODUsIDgzLCA2NSwgNzYsIAotICAgIDY5LCA3NywgMTI4LCA3NCwgNjksIDgyLCA2NSwgMjA2LCA3NCwgNjksIDgyLCA2NSwgMTI4LCA3NCwgNjksIDgyLCAxMjgsIAotICAgIDc0LCA2OSwgNzIsIDEyOCwgNzQsIDY5LCAyMDAsIDc0LCA2OSwgNzEsIDc5LCA3MSwgNjUsIDc4LCAxMjgsIDc0LCA2OSwgCi0gICAgNjksIDc3LCAxMjgsIDc0LCA2OSwgNjUsIDc4LCA4MywgMTI4LCA3NCwgNjUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCAKLSAgICA3NCwgNjUsIDg2LCA3MywgODksIDY1LCA3OCwgNzMsIDEyOCwgNzQsIDY1LCA4MiwgMTI4LCA3NCwgNjUsIDgwLCA2NSwgNzgsIAotICAgIDY5LCA4MywgMTk3LCA3NCwgNjUsIDgwLCA2NSwgNzgsIDEyOCwgNzQsIDY1LCA3OCwgODUsIDY1LCA4MiwgODksIDEyOCwgCi0gICAgNzQsIDY1LCA3NiwgNzYsIDY1LCA3NCwgNjUsIDc2LCA2NSwgNzYsIDc5LCA4NSwgNzIsIDc5LCA4NSwgMTI4LCA3NCwgNjUsIAotICAgIDY4LCA2OSwgMTI4LCA3NCwgNjUsIDY3LCA3NSwgNDUsIDc5LCA0NSwgNzYsIDY1LCA3OCwgODQsIDY5LCA4MiwgNzgsIDEyOCwgCi0gICAgNzQsIDY1LCA2NywgMjAzLCA3NCwgNDUsIDgzLCA3MywgNzcsIDgwLCA3NiwgNzMsIDcwLCA3MywgNjksIDE5NiwgMjAyLCAKLSAgICA3MywgOTAsIDcyLCA3MywgODQsIDgzLCA2NSwgMTI4LCA3MywgOTAsIDcyLCA3MywgODQsIDgzLCAxOTMsIDczLCA5MCwgNzIsIAotICAgIDY5LCAxMjgsIDczLCA5MCwgNjUsIDc1LCA2NSwgODksIDE5MywgNzMsIDg5LCA2OSwgNzUsIDEyOCwgNzMsIDg5LCA2NSwgCi0gICAgNzgsIDc4LCA2NSwgMTI4LCA3MywgODUsIDc0LCA2NSwgMTI4LCA3MywgODUsIDEyOCwgNzMsIDg0LCAyMTEsIDczLCA4NCwgCi0gICAgNjksIDgyLCA2NSwgODQsIDczLCA3OSwgMjA2LCA3MywgODQsIDY5LCA3NywgMTI4LCA3MywgODMsIDgzLCA3MiwgNjUsIDgyLCAKLSAgICAxMjgsIDczLCA4MywgNzksIDc4LCAxMjgsIDczLCA4MywgNzksIDIwNiwgNzMsIDgzLCA2OSwgNzgsIDQ1LCA3MywgODMsIAotICAgIDY5LCA3OCwgMTI4LCA3MywgODMsIDY1LCA3NSwgNzMsIDE5MywgNzMsIDgzLCA0NSwgODAsIDczLCA3NiwgNzYsIDY1LCAKLSAgICAxMjgsIDczLCA4MiwgODUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA3MywgODIsIDg1LCA4NSwgODksIDY1LCA3OCwgNzgsIAotICAgIDY1LCAxMjgsIDczLCA4MiwgNzksIDc4LCA0NSwgNjcsIDc5LCA4MCwgODAsIDY5LCAyMTAsIDczLCA4MiwgNzksIDc4LCAKLSAgICAxMjgsIDczLCA3OSwgODQsIDczLCA3MCwgNzMsIDY5LCAxOTYsIDczLCA3OSwgODQsIDY1LCA4NCwgNjksIDE5NiwgNzMsIAotICAgIDc5LCA4NCwgNjUsIDEyOCwgNzMsIDc5LCA4NCwgMTkzLCA3MywgNzksIDgyLCAxMjgsIDczLCA3OSwgNjgsIDcyLCA2NSwgCi0gICAgNjgsIDcyLCAxMjgsIDczLCA3OCwgODYsIDczLCA4MywgNzMsIDY2LCA3NiwgMTk3LCA3MywgNzgsIDg2LCA2OSwgODIsIDg0LCAKLSAgICA2OSwgNjgsIDEyOCwgNzMsIDc4LCA4NiwgNjksIDgyLCA4NCwgNjksIDE5NiwgNzMsIDc4LCA4NiwgNjksIDgyLCA4MywgCi0gICAgMTk3LCA3MywgNzgsIDg0LCA3MywgMTI4LCA3MywgNzgsIDg0LCA2OSwgODIsIDgzLCA4OSwgNzYsIDc2LCA2NSwgNjYsIDczLCAKKyAgICA4OSwgNzUsIDY1LCAxMjgsIDc1LCA2NSwgODUsIDc4LCA2NSwgMTI4LCA3NSwgNjUsIDg1LCAyMDYsIDc1LCA2NSwgODUsIAorICAgIDEyOCwgNzUsIDY1LCA4NCwgNzksIDEyOCwgNzUsIDY1LCA4NCwgNzIsIDczLCA4MywgODQsIDczLCAxMjgsIDc1LCA2NSwgCisgICAgODQsIDcyLCA2NSwgNzUsIDE5MywgNzUsIDY1LCA4NCwgNjUsIDg2LCA2NSwgODMsIDc3LCA2NSwgMTI4LCA3NSwgNjUsIDg0LCAKKyAgICA2NSwgODYsIDE5MywgNzUsIDY1LCA4NCwgNjUsIDc1LCA2NSwgNzgsIDY1LCA0NSwgNzIsIDczLCA4MiwgNjUsIDcxLCA2NSwgCisgICAgNzgsIDE5MywgNzUsIDY1LCA4MywgODIsIDY1LCA4NCwgNjUsIDc4LCAxMjgsIDc1LCA2NSwgODMsIDgyLCA2NSwgODQsIDY1LCAKKyAgICAyMDYsIDc1LCA2NSwgODMsIDgyLCA2NSwgMTI4LCA3NSwgNjUsIDgzLCA4MiwgMTkzLCA3NSwgNjUsIDgzLCA3NSwgNjUsIAorICAgIDc2LCAxMjgsIDc1LCA2NSwgODMsIDc1LCA2NSwgMjA0LCA3NSwgNjUsIDgzLCA3MiwgNzcsIDczLCA4MiwgMjAxLCA3NSwgCisgICAgNjUsIDgyLCA4MywgNzIsIDY1LCA3OCwgNjUsIDEyOCwgNzUsIDY1LCA4MiwgNzksIDgyLCA3MywgNzMsIDEyOCwgNzUsIDY1LCAKKyAgICA4MiwgMjA3LCA3NSwgNjUsIDgyLCA2OSwgMjA2LCA3NSwgNjUsIDgyLCA2NSwgODQsIDg0LCA3OSwgMTI4LCA3NSwgNjUsIAorICAgIDgyLCA2NSwgNzgsIDEyOCwgNzUsIDY1LCA4MCwgODksIDY5LCA3OSwgODUsIDc4LCA4MywgODMsIDY1LCA3OCwgNzEsIDgwLCAKKyAgICA3MywgNjksIDg1LCA4MCwgMTI4LCA3NSwgNjUsIDgwLCA4OSwgNjksIDc5LCA4NSwgNzgsIDgyLCA3MywgNjksIDg1LCA3NiwgCisgICAgMTI4LCA3NSwgNjUsIDgwLCA4OSwgNjksIDc5LCA4NSwgNzgsIDgwLCA3MiwgNzMsIDY5LCA4NSwgODAsIDcyLCAxMjgsIDc1LCAKKyAgICA2NSwgODAsIDg5LCA2OSwgNzksIDg1LCA3OCwgNzcsIDczLCA2OSwgODUsIDc3LCAxMjgsIDc1LCA2NSwgODAsIDgwLCA2NSwgCisgICAgMTI4LCA3NSwgNjUsIDgwLCA4MCwgMTkzLCA3NSwgNjUsIDgwLCA3OSwgMTI4LCA3NSwgNjUsIDgwLCA3MiwgMTI4LCA3NSwgCisgICAgNjUsIDgwLCA2NSwgNzYsIDEyOCwgNzUsIDY1LCA4MCwgNjUsIDEyOCwgNzUsIDY1LCA3OCwgODQsIDY1LCA3NCwgMTkzLCAKKyAgICA3NSwgNjUsIDc4LCA3MSwgMTI4LCA3NSwgNjUsIDc4LCAxOTksIDc1LCA2NSwgNzgsIDY1LCA3NSwgNzksIDEyOCwgNzUsIAorICAgIDY1LCA3NywgNTIsIDEyOCwgNzUsIDY1LCA3NywgNTAsIDEyOCwgNzUsIDY1LCA3NywgMTI4LCA3NSwgNjUsIDc1LCA3OSwgCisgICAgMTI4LCA3NSwgNjUsIDc1LCA2NSwgNjYsIDY1LCA4NCwgMTI4LCA3NSwgNjUsIDc1LCAxMjgsIDc1LCA2NSwgMjAzLCA3NSwgCisgICAgNjUsIDczLCA4NCwgNzIsIDIwMSwgNzUsIDY1LCA3MywgODIsIDczLCAxMjgsIDc1LCA2NSwgNzMsIDEyOCwgNzUsIDY1LCAKKyAgICAyMDEsIDc1LCA2NSwgNzAsIDY1LCAxMjgsIDc1LCA2NSwgNzAsIDEyOCwgNzUsIDY1LCAxOTgsIDc1LCA2NSwgNjgsIDUzLCAKKyAgICAxMjgsIDc1LCA2NSwgNjgsIDE4MSwgNzUsIDY1LCA2OCwgNTIsIDEyOCwgNzUsIDY1LCA2OCwgNTEsIDEyOCwgNzUsIDY1LCAKKyAgICA2OCwgMTc5LCA3NSwgNjUsIDY4LCA1MCwgMTI4LCA3NSwgNjUsIDY4LCAxMjgsIDc1LCA2NSwgNjYsIDE5MywgNzUsIDY1LCAKKyAgICA2NiwgMTI4LCA3NSwgNjUsIDY1LCA3MywgMTI4LCA3NSwgNjUsIDY1LCA3MCwgODUsIDEyOCwgNzUsIDY1LCA2NSwgNzAsIAorICAgIDEyOCwgNzUsIDY1LCA1MCwgMTI4LCA3NSwgNjUsIDE3OCwgNzUsIDQ4LCA0OCwgNTYsIDEyOCwgNzUsIDQ4LCA0OCwgNTUsIAorICAgIDEyOCwgNzUsIDQ4LCA0OCwgNTQsIDEyOCwgNzUsIDQ4LCA0OCwgNTMsIDEyOCwgNzUsIDQ4LCA0OCwgNTIsIDEyOCwgNzUsIAorICAgIDQ4LCA0OCwgNTEsIDEyOCwgNzUsIDQ4LCA0OCwgNTAsIDEyOCwgNzUsIDQ4LCA0OCwgNDksIDEyOCwgNzQsIDg3LCA2NSwgCisgICAgMTI4LCA3NCwgODUsIDg1LCAxMjgsIDc0LCA4NSwgODQsIDEyOCwgNzQsIDg1LCA4MywgODQsIDczLCA3MCwgNzMsIDY3LCAKKyAgICA2NSwgODQsIDczLCA3OSwgNzgsIDEyOCwgNzQsIDg1LCA4MCwgNzMsIDg0LCA2OSwgODIsIDEyOCwgNzQsIDg1LCA3OSwgODQsIAorICAgIDEyOCwgNzQsIDg1LCA3OSwgODAsIDEyOCwgNzQsIDg1LCA3OCwgNzksIDEyOCwgNzQsIDg1LCA3OCwgNjksIDEyOCwgNzQsIAorICAgIDg1LCA3NiwgODksIDEyOCwgNzQsIDg1LCA2OSwgODUsIDczLCAxMjgsIDc0LCA4NSwgNjgsIDg1LCA3NiwgMTI4LCA3NCwgCisgICAgODUsIDY4LCA3MSwgNjksIDEyOCwgNzQsIDg1LCA2OCwgNjksIDc5LCA0NSwgODMsIDgwLCA2NSwgNzgsIDczLCA4MywgMjAwLCAKKyAgICA3NCwgNzksIDg5LCA3OSwgODUsIDIxMSwgNzQsIDc5LCA4OSwgMTI4LCA3NCwgNzksIDg2LCA2OSwgMTI4LCA3NCwgNzksIAorICAgIDIxMiwgNzQsIDc5LCA3OCwgNzEsIDEyOCwgNzQsIDc5LCA3OCwgMTkzLCA3NCwgNzksIDc1LCA2OSwgODIsIDEyOCwgNzQsIAorICAgIDc5LCA3MywgNzgsIDY5LCA2OCwgMTI4LCA3NCwgNzksIDczLCA3OCwgMTI4LCA3NCwgNzksIDY1LCAxMjgsIDc0LCA3NCwgCisgICAgODksIDg4LCAxMjgsIDc0LCA3NCwgODksIDg0LCAxMjgsIDc0LCA3NCwgODksIDgwLCAxMjgsIDc0LCA3NCwgODksIDEyOCwgCisgICAgNzQsIDc0LCA4NSwgODgsIDEyOCwgNzQsIDc0LCA4NSwgODQsIDEyOCwgNzQsIDc0LCA4NSwgODIsIDg4LCAxMjgsIDc0LCAKKyAgICA3NCwgODUsIDgyLCAxMjgsIDc0LCA3NCwgODUsIDgwLCAxMjgsIDc0LCA3NCwgODUsIDc5LCA4OCwgMTI4LCA3NCwgNzQsIAorICAgIDg1LCA3OSwgODAsIDEyOCwgNzQsIDc0LCA4NSwgNzksIDEyOCwgNzQsIDc0LCA4NSwgMTI4LCA3NCwgNzQsIDc5LCA4OCwgCisgICAgMTI4LCA3NCwgNzQsIDc5LCA4NCwgMTI4LCA3NCwgNzQsIDc5LCA4MCwgMTI4LCA3NCwgNzQsIDc5LCAxMjgsIDc0LCA3NCwgCisgICAgNzMsIDg4LCAxMjgsIDc0LCA3NCwgNzMsIDg0LCAxMjgsIDc0LCA3NCwgNzMsIDgwLCAxMjgsIDc0LCA3NCwgNzMsIDY5LCAKKyAgICA4OCwgMTI4LCA3NCwgNzQsIDczLCA2OSwgODQsIDEyOCwgNzQsIDc0LCA3MywgNjksIDgwLCAxMjgsIDc0LCA3NCwgNzMsIAorICAgIDY5LCAxMjgsIDc0LCA3NCwgNzMsIDEyOCwgNzQsIDc0LCA2OSwgNjksIDEyOCwgNzQsIDc0LCA2OSwgMTI4LCA3NCwgNzQsIAorICAgIDY1LCAxMjgsIDc0LCA3MywgNzYsIDEyOCwgNzQsIDczLCA3MywgMTI4LCA3NCwgNzMsIDcyLCA4NiwgNjUsIDc3LCA4NSwgCisgICAgNzYsIDczLCA4OSwgNjUsIDEyOCwgNzQsIDczLCA2NSwgMTI4LCA3NCwgNzIsIDc5LCAxMjgsIDc0LCA3MiwgNjksIDcyLCAKKyAgICAxMjgsIDc0LCA3MiwgNjUsIDc4LCAxMjgsIDc0LCA3MiwgNjUsIDc3LCAxMjgsIDc0LCA3MiwgNjUsIDY1LCAxMjgsIDc0LCAKKyAgICA3MiwgNjUsIDEyOCwgNzQsIDY5LCA4NSwgMTI4LCA3NCwgNjksIDgyLCA4NSwgODMsIDY1LCA3NiwgNjksIDc3LCAxMjgsIAorICAgIDc0LCA2OSwgODIsIDY1LCAyMDYsIDc0LCA2OSwgODIsIDY1LCAxMjgsIDc0LCA2OSwgODIsIDEyOCwgNzQsIDY5LCA3MiwgCisgICAgMTI4LCA3NCwgNjksIDIwMCwgNzQsIDY5LCA3MSwgNzksIDcxLCA2NSwgNzgsIDEyOCwgNzQsIDY5LCA2OSwgNzcsIDEyOCwgCisgICAgNzQsIDY5LCA2NSwgNzgsIDgzLCAxMjgsIDc0LCA2NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDc0LCA2NSwgODYsIDczLCAKKyAgICA4OSwgNjUsIDc4LCA3MywgMTI4LCA3NCwgNjUsIDg1LCAxMjgsIDc0LCA2NSwgODIsIDEyOCwgNzQsIDY1LCA4MCwgNjUsIAorICAgIDc4LCA2OSwgODMsIDE5NywgNzQsIDY1LCA4MCwgNjUsIDc4LCAxMjgsIDc0LCA2NSwgNzgsIDg1LCA2NSwgODIsIDg5LCAKKyAgICAxMjgsIDc0LCA2NSwgNzYsIDc2LCA2NSwgNzQsIDY1LCA3NiwgNjUsIDc2LCA3OSwgODUsIDcyLCA3OSwgODUsIDEyOCwgNzQsIAorICAgIDY1LCA3MywgMTI4LCA3NCwgNjUsIDcyLCAxMjgsIDc0LCA2NSwgNjgsIDY5LCAxMjgsIDc0LCA2NSwgNjcsIDc1LCA0NSwgCisgICAgNzksIDQ1LCA3NiwgNjUsIDc4LCA4NCwgNjksIDgyLCA3OCwgMTI4LCA3NCwgNjUsIDY3LCAyMDMsIDc0LCA0NSwgODMsIDczLCAKKyAgICA3NywgODAsIDc2LCA3MywgNzAsIDczLCA2OSwgMTk2LCAyMDIsIDczLCA5MCwgNzIsIDczLCA4NCwgODMsIDY1LCAxMjgsIAorICAgIDczLCA5MCwgNzIsIDczLCA4NCwgODMsIDE5MywgNzMsIDkwLCA3MiwgNjksIDEyOCwgNzMsIDkwLCA2NSwgNzUsIDY1LCA4OSwgCisgICAgMTkzLCA3MywgODksIDY5LCA3NSwgMTI4LCA3MywgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDczLCA4NSwgNzQsIDY1LCAKKyAgICAxMjgsIDczLCA4NSwgMTI4LCA3MywgODQsIDIxMSwgNzMsIDg0LCA2OSwgODIsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDczLCAKKyAgICA4NCwgNjksIDc3LCAxMjgsIDczLCA4MywgODMsIDcyLCA2NSwgODIsIDEyOCwgNzMsIDgzLCA3OSwgNzgsIDEyOCwgNzMsIAorICAgIDgzLCA3OSwgMjA2LCA3MywgODMsIDY5LCA3OCwgNDUsIDczLCA4MywgNjksIDc4LCAxMjgsIDczLCA4MywgNjUsIDc1LCA3MywgCisgICAgMTkzLCA3MywgODMsIDQ1LCA4MCwgNzMsIDc2LCA3NiwgNjUsIDEyOCwgNzMsIDgyLCA4NSwgODksIDY1LCA3OCwgNzgsIDY1LCAKKyAgICAxMjgsIDczLCA4MiwgODUsIDg1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNzMsIDgyLCA3OSwgNzgsIDQ1LCA2NywgNzksIAorICAgIDgwLCA4MCwgNjksIDIxMCwgNzMsIDgyLCA3OSwgNzgsIDEyOCwgNzMsIDc5LCA4NCwgNzMsIDcwLCA3MywgNjksIDE5NiwgCisgICAgNzMsIDc5LCA4NCwgNjUsIDg0LCA2OSwgMTk2LCA3MywgNzksIDg0LCA2NSwgMTI4LCA3MywgNzksIDg0LCAxOTMsIDczLCAKKyAgICA3OSwgODIsIDEyOCwgNzMsIDc5LCA2OCwgNzIsIDY1LCA2OCwgNzIsIDEyOCwgNzMsIDc4LCA4NiwgNzMsIDgzLCA3MywgNjYsIAorICAgIDc2LCAxOTcsIDczLCA3OCwgODYsIDY5LCA4MiwgODQsIDY5LCA2OCwgMTI4LCA3MywgNzgsIDg2LCA2OSwgODIsIDg0LCA2OSwgCisgICAgMTk2LCA3MywgNzgsIDg2LCA2OSwgODIsIDgzLCAxOTcsIDczLCA3OCwgODQsIDgyLCA3OSwgNjgsIDg1LCA2NywgNjksIDgyLCAKKyAgICAxMjgsIDczLCA3OCwgODQsIDczLCAxMjgsIDczLCA3OCwgODQsIDY5LCA4MiwgODMsIDg5LCA3NiwgNzYsIDY1LCA2NiwgNzMsIAogICAgIDE5NSwgNzMsIDc4LCA4NCwgNjksIDgyLCA4MywgNjksIDY3LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA3MywgNzgsIDg0LCA2OSwgCiAgICAgODIsIDgzLCA2OSwgNjcsIDg0LCA3MywgNzksIDIwNiwgNzMsIDc4LCA4NCwgNjksIDgyLCA4MywgNjksIDY3LCA4NCwgNzMsIAogICAgIDc4LCAxOTksIDczLCA3OCwgODQsIDY5LCA4MiwgODIsIDc5LCA2NiwgNjUsIDc4LCA3MSwgMTI4LCA3MywgNzgsIDg0LCA2OSwgCkBAIC0yMjM0LDEyMjYgKzIzODMsMTIzMyBAQAogICAgIDc4LCA2NywgNzIsIDEyOCwgNzMsIDc4LCA2NiwgNzksIDIxNiwgNzMsIDc4LCA2NSwgODAsIDEyOCwgNzMsIDc4LCA0NSwgCiAgICAgNjUsIDc2LCA2NSwgNzAsIDEyOCwgNzMsIDc3LCA4MCwgNjksIDgyLCA3MywgNjUsIDIwNCwgNzMsIDc3LCA4MCwgNjksIDgyLCAKICAgICA3MCwgNjksIDY3LCA4NCwgODUsIDIwNSwgNzMsIDc3LCA4MCwgNjksIDgyLCA3MCwgNjksIDY3LCA4NCwgNjUsIDEyOCwgNzMsIAotICAgIDc3LCA4MCwgNjksIDgyLCA3MCwgNjksIDY3LCA4NCwgMTkzLCA3MywgNzcsIDczLCA4MywgNjksIDc5LCAyMTEsIDczLCA3NywgCi0gICAgNzMsIDc4LCA1MSwgMTI4LCA3MywgNzcsIDczLCA3OCwgMTI4LCA3MywgNzcsIDczLCAyMDYsIDczLCA3NywgNzMsIDcwLCAKLSAgICA4NCwgNzIsIDc5LCA4MiwgNzksIDc4LCAxMjgsIDczLCA3NywgNzMsIDcwLCA4NCwgNzIsIDc5LCA4MiwgNjUsIDEyOCwgNzMsIAotICAgIDc3LCA3MywgNzAsIDc5LCA3OCwgNzksIDc4LCAxMjgsIDczLCA3NywgNzMsIDY4LCA3MywgNjUsIDgyLCA3MSwgNzksIDc4LCAKLSAgICAxMjgsIDczLCA3NywgNjUsIDcxLCAxOTcsIDczLCA3NiwgODUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA3MywgNzYsIAotICAgIDg1LCA4OSwgMTI4LCA3MywgNzYsIDg1LCA4NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDczLCA3NiwgODUsIDg0LCAKLSAgICAxMjgsIDczLCA3NiwgNzMsIDc3LCA3NywgODUsIDUyLCAxMjgsIDczLCA3NiwgNzMsIDc3LCA3NywgODUsIDUxLCAxMjgsIAotICAgIDczLCA3NiwgNzMsIDc3LCA3NywgODUsIDEyOCwgNzMsIDc2LCA3MywgNzcsIDc3LCAyMTMsIDczLCA3NiwgNTAsIDEyOCwgCi0gICAgNzMsIDc1LCA2NSwgODIsIDY1LCAxMjgsIDczLCA3NSwgNjUsIDgyLCAxOTMsIDczLCA3NCwgMTI4LCA3MywgNzMsIDg5LCAKLSAgICA2NSwgNzgsIDc4LCA2NSwgMTI4LCA3MywgNzEsIDczLCAxMjgsIDczLCA3MSwgMjAxLCA3MywgNzEsIDcxLCA4NywgODMsIAotICAgIDEyOCwgNzMsIDcwLCA3MywgNzgsIDEyOCwgNzMsIDY5LCA4NSwgNzgsIDcxLCA0NSwgODQsIDczLCA3NSwgNjksIDg1LCA4NCwgCi0gICAgMTI4LCA3MywgNjksIDg1LCA3OCwgNzEsIDQ1LCA4NCwgNzIsIDczLCA2OSwgODUsIDg0LCA3MiwgMTI4LCA3MywgNjksIDg1LCAKLSAgICA3OCwgNzEsIDQ1LCA4MywgODMsIDY1LCA3OCwgNzEsIDc1LCA3MywgODksIDY5LCA3OSwgNzUsIDEyOCwgNzMsIDY5LCA4NSwgCi0gICAgNzgsIDcxLCA0NSwgODIsIDczLCA2OSwgODUsIDc2LCAxMjgsIDczLCA2OSwgODUsIDc4LCA3MSwgNDUsIDgwLCA3MywgNjksIAotICAgIDg1LCA4MCwgMTI4LCA3MywgNjksIDg1LCA3OCwgNzEsIDQ1LCA4MCwgNzIsIDczLCA2OSwgODUsIDgwLCA3MiwgMTI4LCA3MywgCi0gICAgNjksIDg1LCA3OCwgNzEsIDQ1LCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCAxMjgsIDczLCA2OSwgODUsIDc4LCA3MSwgNDUsIAotICAgIDc1LCA3MiwgNzMsIDY5LCA4NSwgNzUsIDcyLCAxMjgsIDczLCA2OSwgODUsIDc4LCA3MSwgNDUsIDY3LCA3MywgNjksIDg1LCAKLSAgICA2NywgMTI4LCA3MywgNjksIDg1LCA3OCwgNzEsIDQ1LCA2NywgNzIsIDczLCA2OSwgODUsIDY3LCA3MiwgMTI4LCA3MywgNjksIAotICAgIDg1LCA3OCwgMTk5LCA3MywgNjgsIDc2LCA2OSwgMTI4LCA3MywgNjgsIDczLCA3NywgMTI4LCA3MywgNjgsIDczLCAyMDUsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY4LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2OCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjgsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY4LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA2OCwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjgsIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY4LCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2OCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjgsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY4LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA2NywgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjcsIDY5LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY3LCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NywgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjcsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY3LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA2NywgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjcsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY3LCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NywgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY3LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA2NywgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjcsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY3LCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NywgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjYsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY2LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA2NiwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjYsIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY2LCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NiwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjYsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY2LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA2NiwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjYsIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY2LCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NiwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY2LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA2NiwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjYsIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY1LCA3MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjUsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY1LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA2NSwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjUsIDY1LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY1LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjUsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY1LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA2NSwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjUsIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY1LCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDY1LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NywgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTcsIDY5LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU3LCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NywgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTcsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU3LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NywgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTcsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU3LCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NywgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU3LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NywgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTcsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU3LCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NywgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTYsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU2LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NiwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTYsIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU2LCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NiwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTYsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU2LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NiwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTYsIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU2LCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NiwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU2LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NiwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTYsIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU1LCA3MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTUsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU1LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NSwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTUsIDY1LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU1LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTUsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU1LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NSwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTUsIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU1LCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU1LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NCwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTQsIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU0LCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTQsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU0LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NCwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTQsIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU0LCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NCwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTQsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDU0LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1NCwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTQsIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUzLCA3MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MywgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTMsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUzLCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MywgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTMsIDY1LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUzLCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MywgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTMsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUzLCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MywgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTMsIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUzLCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MywgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTMsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUzLCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MiwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTIsIDY5LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUyLCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MiwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTIsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUyLCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MiwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTIsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUyLCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MiwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTIsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUyLCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MiwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTIsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUyLCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MiwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTEsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUxLCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTEsIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUxLCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTEsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUxLCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MSwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTEsIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUxLCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTEsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUxLCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MSwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTEsIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUwLCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTAsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUwLCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MCwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTAsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUwLCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTAsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDUwLCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA1MCwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTAsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUwLCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDksIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDQ5LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA0OSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDksIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ5LCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDksIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDQ5LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA0OSwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDksIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ5LCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDksIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDQ5LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA0OSwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDksIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ4LCA3MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDgsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDQ4LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA0OCwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDgsIDY1LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ4LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDgsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDQ4LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCAKLSAgICA0OCwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDgsIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ4LCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDgsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNjUsIDQ4LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA3MCwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNzAsIDY5LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDcwLCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA3MCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNzAsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDcwLCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA3MCwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNzAsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDcwLCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA3MCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNzAsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDcwLCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA3MCwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNzAsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDcwLCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA3MCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjksIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY5LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2OSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjksIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY5LCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjksIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY5LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2OSwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjksIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY5LCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjksIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY5LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2OSwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjksIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY4LCA3MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjgsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY4LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2OCwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjgsIDY1LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY4LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjgsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY4LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2OCwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjgsIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY4LCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjgsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY4LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2NywgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjcsIDY5LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY3LCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NywgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjcsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY3LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2NywgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjcsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY3LCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NywgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY3LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2NywgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjcsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY3LCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NywgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjYsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY2LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2NiwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjYsIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY2LCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NiwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjYsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY2LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2NiwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjYsIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY2LCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NiwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY2LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2NiwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjYsIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY1LCA3MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjUsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY1LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2NSwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjUsIDY1LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY1LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjUsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY1LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA2NSwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjUsIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY1LCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDY1LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NywgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTcsIDY5LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU3LCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NywgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTcsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU3LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NywgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTcsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU3LCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NywgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU3LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NywgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTcsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU3LCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NywgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTYsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU2LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NiwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTYsIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU2LCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NiwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTYsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU2LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NiwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTYsIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU2LCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NiwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU2LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NiwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTYsIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU1LCA3MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTUsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU1LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NSwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTUsIDY1LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU1LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTUsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU1LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NSwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTUsIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU1LCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU1LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NCwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTQsIDY5LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU0LCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTQsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU0LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NCwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTQsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU0LCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTQsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDU0LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1NCwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTQsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU0LCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTMsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUzLCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MywgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTMsIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUzLCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MywgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTMsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUzLCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MywgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTMsIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUzLCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MywgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTMsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUzLCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MywgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTMsIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUyLCA3MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MiwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTIsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUyLCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MiwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTIsIDY1LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUyLCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MiwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTIsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUyLCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MiwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTIsIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUyLCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MiwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTIsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUyLCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MSwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTEsIDY5LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUxLCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTEsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUxLCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MSwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTEsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUxLCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MSwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTEsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUxLCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MSwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTEsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUxLCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTAsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUwLCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MCwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTAsIDY3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUwLCA2NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTAsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUwLCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MCwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTAsIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUwLCA1MywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MCwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTAsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDUwLCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA1MCwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTAsIDQ4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ5LCA3MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDksIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDQ5LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA0OSwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDksIDY1LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ5LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDksIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDQ5LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA0OSwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDksIDUyLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ5LCA1MSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDksIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDQ5LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA0OCwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDgsIDY5LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ4LCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDgsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDQ4LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA0OCwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDgsIDU2LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ4LCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDgsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA3MCwgNTcsIDQ4LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCAKLSAgICA0OCwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDgsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ4LCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDU3LCA0OCwgNTIsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA1NiwgNjgsIDU1LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTYsIDY3LCAKLSAgICA2NSwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDU2LCA1NywgNjksIDUxLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NSwgNjgsIDUyLCA1MCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTUsIDY1LCA1NSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDU1LCA1NywgNTYsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA1NSwgNTQsIDY4LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTUsIDUzLCAKLSAgICA1MSwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDU1LCA1MywgNDksIDcwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NSwgNDksIDUwLCA0OSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTUsIDQ4LCA2NiwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDU0LCA3MCwgNDksIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA1NCwgNjksIDU2LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTQsIDU1LCAKLSAgICA1MCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDU0LCA1NSwgNDgsIDU3LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NCwgNTUsIDQ4LCA1NiwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTQsIDU0LCA1MCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDU0LCA1MywgNjYsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA1NCwgNTMsIDU3LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTQsIDUzLCAKLSAgICA1MywgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDU0LCA1MSwgNTMsIDUzLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NCwgNTEsIDQ4LCA1NSwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTQsIDUwLCA1NywgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDU0LCA1MCwgNTMsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA1NCwgNTAsIDUyLCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTMsIDcwLCAKLSAgICA1NiwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUzLCA2OCwgNjksIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MywgNjYsIDU2LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTMsIDY2LCA1MywgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUzLCA1NywgNTAsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA1MywgNTcsIDQ5LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTMsIDU2LCAKLSAgICA3MCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUzLCA1MywgNjYsIDU0LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MywgNTIsIDUxLCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTMsIDUyLCA0OCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUzLCA1MSwgNzAsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA1MywgNTEsIDY3LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTMsIDUwLCAKLSAgICA2OCwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUzLCA1MCwgNTUsIDUwLCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MywgNTAsIDUyLCA2OCwgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTMsIDUwLCA0OSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUzLCA0OSwgNTYsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIAotICAgIDQ1LCA1MiwgNjksIDY1LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTIsIDY5LCAKLSAgICA1NiwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUyLCA2OSwgNTAsIDY4LCAxMjgsIAotICAgIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MiwgNjksIDQ4LCA1NywgMTI4LCA3MywgNjgsIDY5LCAKLSAgICA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTIsIDY5LCA0OCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ5LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDksIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDY1LCA0OSwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNjUsIDQ5LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDksIAotICAgIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OSwgNTYsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ5LCA1NSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDksIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OSwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ5LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDksIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDY1LCA0OSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNjUsIDQ5LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDksIAotICAgIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgNzAsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ4LCA2OSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDgsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ4LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDgsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDY1LCA0OCwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNjUsIDQ4LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDgsIAotICAgIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgNTQsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ4LCA1MywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDgsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ4LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDgsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDY1LCA0OCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDcwLCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNzAsIAotICAgIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA3MCwgNjgsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDcwLCA2NywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNzAsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA3MCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDcwLCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNzAsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA3MCwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDcwLCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNzAsIAotICAgIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA3MCwgNTIsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDcwLCA1MSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNzAsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA3MCwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDcwLCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA2OSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDY5LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIAotICAgIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OSwgNjYsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY5LCA2NSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY5LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA2OSwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDY5LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIAotICAgIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OSwgNTAsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY5LCA0OSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY4LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNjgsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA2OCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDY4LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjgsIAotICAgIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgNTcsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY4LCA1NiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjgsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY4LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNjgsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA2OCwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDY4LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjgsIAotICAgIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgNDgsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY3LCA3MCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjcsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NywgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY3LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNjcsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA2NywgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDY3LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjcsIAotICAgIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NywgNTUsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY3LCA1NCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NywgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY3LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNjcsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA2NywgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDY3LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIAotICAgIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NiwgNjksIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY2LCA2OCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NiwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY2LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA2NiwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDY2LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIAotICAgIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NiwgNTMsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY2LCA1MiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NiwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY2LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA2NSwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDY1LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjUsIAotICAgIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgNjcsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY1LCA2NiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjUsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY1LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNjUsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA2NSwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDY1LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjUsIAotICAgIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgNTEsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY1LCA1MCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU3LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTcsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1NywgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDU3LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTcsIAotICAgIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NywgNjUsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU3LCA1NywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTcsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NywgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU3LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1NywgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDU3LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTcsIAotICAgIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NywgNDksIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU3LCA0OCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NiwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU2LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1NiwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDU2LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIAotICAgIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NiwgNTYsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU2LCA1NSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NiwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU2LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1NiwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDU2LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIAotICAgIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgNzAsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU1LCA2OSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTUsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU1LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTUsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1NSwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDU1LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTUsIAotICAgIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgNTQsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU1LCA1MywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTUsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU1LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1NSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDU0LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTQsIAotICAgIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NCwgNjgsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU0LCA2NywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTQsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU0LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTQsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1NCwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDU0LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTQsIAotICAgIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NCwgNTIsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU0LCA1MSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTQsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NCwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU0LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1MywgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDUzLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIAotICAgIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MywgNjYsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUzLCA2NSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MywgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUzLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1MywgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDUzLCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIAotICAgIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MywgNTAsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUzLCA0OSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUyLCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTIsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1MiwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDUyLCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTIsIAotICAgIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgNTcsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUyLCA1NiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTIsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUyLCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTIsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1MiwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDUyLCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTIsIAotICAgIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgNDgsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUxLCA3MCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTEsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUxLCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTEsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1MSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDUxLCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTEsIAotICAgIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MSwgNTUsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUxLCA1NCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTEsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUxLCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTEsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1MSwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDUxLCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIAotICAgIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MCwgNjksIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUwLCA2OCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MCwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUwLCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA1MCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDUwLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIAotICAgIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MCwgNTMsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUwLCA1MiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUwLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA0OSwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDQ5LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDksIAotICAgIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgNjcsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ5LCA2NiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDksIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ5LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNDksIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA0OSwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDQ5LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDksIAotICAgIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgNTEsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ5LCA1MCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDksIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ4LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNDgsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA0OCwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDQ4LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDgsIAotICAgIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OCwgNjUsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ4LCA1NywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDgsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OCwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ4LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NywgNDgsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU3LCA0OCwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTcsIDQ4LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDgsIAotICAgIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OCwgNDksIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ4LCA0OCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA3MCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDcwLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA3MCwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDcwLCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIAotICAgIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA3MCwgNTYsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDcwLCA1NSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA3MCwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDcwLCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA3MCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDcwLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIAotICAgIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgNzAsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY5LCA2OSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjksIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY5LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjksIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA2OSwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDY5LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjksIAotICAgIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgNTQsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY5LCA1MywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjksIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY5LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjksIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA2OSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDY4LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjgsIAotICAgIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OCwgNjgsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY4LCA2NywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjgsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY4LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjgsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA2OCwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDY4LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjgsIAotICAgIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OCwgNTIsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY4LCA1MSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjgsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OCwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY4LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA2NywgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDY3LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIAotICAgIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NywgNjYsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY3LCA2NSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NywgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY3LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA2NywgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDY3LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIAotICAgIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NywgNTAsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY3LCA0OSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY2LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjYsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA2NiwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDY2LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjYsIAotICAgIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgNTcsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY2LCA1NiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjYsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY2LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjYsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA2NiwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDY2LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjYsIAotICAgIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgNDgsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY1LCA3MCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjUsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY1LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjUsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA2NSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDY1LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjUsIAotICAgIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NSwgNTUsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY1LCA1NCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjUsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY1LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjUsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA2NSwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDY1LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIAotICAgIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NywgNjksIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU3LCA2OCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NywgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU3LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1NywgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDU3LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIAotICAgIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NywgNTMsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU3LCA1MiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NywgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU3LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1NiwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDU2LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTYsIAotICAgIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgNjcsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU2LCA2NiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTYsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU2LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTYsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1NiwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDU2LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTYsIAotICAgIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgNTEsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU2LCA1MCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTYsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU1LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTUsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1NSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDU1LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTUsIAotICAgIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NSwgNjUsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU1LCA1NywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTUsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NSwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU1LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTUsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1NSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDU1LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTUsIAotICAgIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NSwgNDksIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU1LCA0OCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU0LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1NCwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDU0LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIAotICAgIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NCwgNTYsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU0LCA1NSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NCwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU0LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1NCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDU0LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIAotICAgIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgNzAsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUzLCA2OSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTMsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUzLCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTMsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1MywgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDUzLCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTMsIAotICAgIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgNTQsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUzLCA1MywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTMsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUzLCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTMsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1MywgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDUyLCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTIsIAotICAgIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MiwgNjgsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUyLCA2NywgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTIsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MiwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUyLCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTIsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1MiwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDUyLCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTIsIAotICAgIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MiwgNTIsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUyLCA1MSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTIsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MiwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUyLCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1MSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDUxLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIAotICAgIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MSwgNjYsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUxLCA2NSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUxLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1MSwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDUxLCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIAotICAgIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MSwgNTAsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUxLCA0OSwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUwLCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTAsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1MCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDUwLCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTAsIAotICAgIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgNTcsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUwLCA1NiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTAsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUwLCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTAsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA1MCwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDUwLCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTAsIAotICAgIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgNDgsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ5LCA3MCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDksIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ5LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDksIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA0OSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDQ5LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDksIAotICAgIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OSwgNTUsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ5LCA1NCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDksIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ5LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDksIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA0OSwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDQ5LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIAotICAgIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OCwgNjksIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ4LCA2OCwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OCwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ4LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCAKLSAgICA1MCwgNzAsIDU2LCA0OCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgCi0gICAgNTYsIDQ4LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIAotICAgIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OCwgNTMsIDEyOCwgCi0gICAgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ4LCA1MiwgMTI4LCA3MywgNjgsIAotICAgIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKLSAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgCi0gICAgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ4LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIAotICAgIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc4LCA4NCwgNzMsIDcwLCA3MywgNjcsIDY1LCAKLSAgICA4NCwgNzMsIDc5LCA3OCwgMTI4LCA3MywgNjgsIDY5LCA3OCwgODQsIDczLCA2NywgNjUsIDIwNCwgNzMsIDY3LCA3MiwgNzksIAotICAgIDg1LCAxMjgsIDczLCA2NywgNzIsIDc5LCA4MywgMTI4LCA3MywgNjcsIDcyLCA3MywgNzcsIDY1LCA4NCwgNzksIDgzLCAKLSAgICAxMjgsIDczLCA2NywgNzIsIDY1LCA2OCwgNzMsIDc4LCAxMjgsIDczLCA2NywgNjksIDc2LCA2NSwgNzgsIDY4LCA3MywgNjcsIAotICAgIDQ1LCA4OSwgODIsIDEyOCwgNzMsIDY2LCA3MywgNzAsIDczLCA3NiwgNzMsIDEyOCwgNzMsIDY1LCA4NSwgNjgsIDY1LCAKLSAgICAxMjgsIDczLCA0OCwgNDksIDUzLCAxMjgsIDczLCA0OCwgNDksIDUyLCAxMjgsIDczLCA0OCwgNDksIDUxLCAxMjgsIDczLCAKLSAgICA0OCwgNDksIDUwLCAxMjgsIDczLCA0OCwgNDksIDQ5LCA2NSwgMTI4LCA3MywgNDgsIDQ5LCA0OSwgMTI4LCA3MywgNDgsIAotICAgIDQ5LCA0OCwgNjUsIDEyOCwgNzMsIDQ4LCA0OSwgNDgsIDEyOCwgNzMsIDQ4LCA0OCwgNTcsIDY1LCAxMjgsIDczLCA0OCwgCi0gICAgNDgsIDU3LCAxMjgsIDczLCA0OCwgNDgsIDU2LCAxMjgsIDczLCA0OCwgNDgsIDU1LCAxMjgsIDczLCA0OCwgNDgsIDU0LCAKLSAgICAxMjgsIDczLCA0OCwgNDgsIDUzLCA2NSwgMTI4LCA3MywgNDgsIDQ4LCA1MywgMTI4LCA3MywgNDgsIDQ4LCA1MiwgMTI4LCAKLSAgICA3MywgNDgsIDQ4LCA1MSwgMTI4LCA3MywgNDgsIDQ4LCA1MCwgMTI4LCA3MywgNDgsIDQ4LCA0OSwgMTI4LCA3MywgNDUsIAotICAgIDg5LCA4NSwgMTI4LCA3MywgNDUsIDg5LCA3OSwgMTI4LCA3MywgNDUsIDg5LCA2OSwgNzksIDEyOCwgNzMsIDQ1LCA4OSwgCi0gICAgNjksIDEyOCwgNzMsIDQ1LCA4OSwgNjUsIDY5LCAxMjgsIDczLCA0NSwgODksIDY1LCA0NSwgNzksIDEyOCwgNzMsIDQ1LCAKLSAgICA4OSwgNjUsIDEyOCwgNzMsIDQ1LCA3OSwgNDUsIDczLCAxMjgsIDczLCA0NSwgNzksIDEyOCwgNzMsIDQ1LCA2OSwgODUsIAotICAgIDEyOCwgNzMsIDQ1LCA2NiwgNjksIDY1LCA3NywgMTI4LCA3MywgNDUsIDY1LCA4MiwgNjUsIDY5LCA2NSwgMTI4LCA3MywgCi0gICAgNDUsIDY1LCAxMjgsIDcyLCA5MCwgOTAsIDkwLCA3MSwgMTI4LCA3MiwgOTAsIDkwLCA5MCwgMTI4LCA3MiwgOTAsIDkwLCAKLSAgICA4MCwgMTI4LCA3MiwgOTAsIDkwLCAxMjgsIDcyLCA5MCwgODcsIDcxLCAxMjgsIDcyLCA5MCwgODcsIDEyOCwgNzIsIDkwLCAKLSAgICA4NCwgMTI4LCA3MiwgOTAsIDcxLCAxMjgsIDcyLCA4OSwgODMsIDg0LCA2OSwgODIsIDY5LCA4MywgNzMsIDIxMSwgNzIsIAotICAgIDg5LCA4MCwgNzksIDY4LCA3MywgNjUsIDgzLCA4NCwgNzksIDc2LCA2OSwgMTI4LCA3MiwgODksIDgwLCA3MiwgNjksIDc4LCAKLSAgICA2NSwgODQsIDczLCA3OSwgMjA2LCA3MiwgODksIDgwLCA3MiwgNjksIDc4LCA0NSwgNzcsIDczLCA3OCwgODUsIDgzLCAxMjgsIAotICAgIDcyLCA4OSwgODAsIDcyLCA2OSwgNzgsIDEyOCwgNzIsIDg5LCA4MCwgNzIsIDY5LCAyMDYsIDcyLCA4OCwgODcsIDcxLCAKLSAgICAxMjgsIDcyLCA4OCwgODUsIDc5LCA4OCwgMTI4LCA3MiwgODgsIDg1LCA3OSwgODQsIDEyOCwgNzIsIDg4LCA4NSwgNzksIAotICAgIDgwLCAxMjgsIDcyLCA4OCwgODUsIDc5LCAxMjgsIDcyLCA4OCwgNzksIDg4LCAxMjgsIDcyLCA4OCwgNzksIDg0LCAxMjgsIAotICAgIDcyLCA4OCwgNzksIDgwLCAxMjgsIDcyLCA4OCwgNzksIDEyOCwgNzIsIDg4LCA3MywgODgsIDEyOCwgNzIsIDg4LCA3MywgCi0gICAgODQsIDEyOCwgNzIsIDg4LCA3MywgODAsIDEyOCwgNzIsIDg4LCA3MywgNjksIDg4LCAxMjgsIDcyLCA4OCwgNzMsIDY5LCAKLSAgICA4NCwgMTI4LCA3MiwgODgsIDczLCA2OSwgODAsIDEyOCwgNzIsIDg4LCA3MywgNjksIDEyOCwgNzIsIDg4LCA3MywgMTI4LCAKLSAgICA3MiwgODgsIDY5LCA4OCwgMTI4LCA3MiwgODgsIDY5LCA4MCwgMTI4LCA3MiwgODgsIDY5LCAxMjgsIDcyLCA4OCwgNjUsIAotICAgIDg4LCAxMjgsIDcyLCA4OCwgNjUsIDg0LCAxMjgsIDcyLCA4OCwgNjUsIDgwLCAxMjgsIDcyLCA4OCwgNjUsIDEyOCwgNzIsIAotICAgIDg3LCA4NSwgMTI4LCA3MiwgODcsIDY1LCA3MywgODIsIDEyOCwgNzIsIDg2LCAxMjgsIDcyLCA4NSwgODIsIDY1LCA3OCwgCisgICAgNzcsIDgwLCA2OSwgODIsIDcwLCA2OSwgNjcsIDg0LCAxOTMsIDczLCA3NywgNzgsIDEyOCwgNzMsIDc3LCA3MywgODMsIDY5LCAKKyAgICA3OSwgMjExLCA3MywgNzcsIDczLCA3OCwgNTEsIDEyOCwgNzMsIDc3LCA3MywgNzgsIDEyOCwgNzMsIDc3LCA3MywgMjA2LCAKKyAgICA3MywgNzcsIDczLCA3MCwgODQsIDcyLCA3OSwgODIsIDc5LCA3OCwgMTI4LCA3MywgNzcsIDczLCA3MCwgODQsIDcyLCA3OSwgCisgICAgODIsIDY1LCAxMjgsIDczLCA3NywgNzMsIDcwLCA3OSwgNzgsIDc5LCA3OCwgMTI4LCA3MywgNzcsIDczLCA2OCwgNzMsIDY1LCAKKyAgICA4MiwgNzEsIDc5LCA3OCwgMTI4LCA3MywgNzcsIDY1LCA3MSwgMTk3LCA3MywgNzYsIDg1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIAorICAgIDEyOCwgNzMsIDc2LCA4NSwgODksIDEyOCwgNzMsIDc2LCA4NSwgODUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA3MywgCisgICAgNzYsIDg1LCA4NCwgMTI4LCA3MywgNzYsIDczLCA3NywgNzcsIDg1LCA1MiwgMTI4LCA3MywgNzYsIDczLCA3NywgNzcsIDg1LCAKKyAgICA1MSwgMTI4LCA3MywgNzYsIDczLCA3NywgNzcsIDg1LCAxMjgsIDczLCA3NiwgNzMsIDc3LCA3NywgMjEzLCA3MywgNzYsIAorICAgIDUwLCAxMjgsIDczLCA3NSwgNjUsIDgyLCA2NSwgMTI4LCA3MywgNzUsIDY1LCA4MiwgMTkzLCA3MywgNzQsIDEyOCwgNzMsIAorICAgIDczLCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNzMsIDcxLCA3MywgMTI4LCA3MywgNzEsIDIwMSwgNzMsIDcxLCA3MSwgCisgICAgODcsIDgzLCAxMjgsIDczLCA3MCwgNzMsIDc4LCAxMjgsIDczLCA2OSwgODUsIDc4LCA3MSwgNDUsIDg0LCA3MywgNzUsIDY5LCAKKyAgICA4NSwgODQsIDEyOCwgNzMsIDY5LCA4NSwgNzgsIDcxLCA0NSwgODQsIDcyLCA3MywgNjksIDg1LCA4NCwgNzIsIDEyOCwgNzMsIAorICAgIDY5LCA4NSwgNzgsIDcxLCA0NSwgODMsIDgzLCA2NSwgNzgsIDcxLCA3NSwgNzMsIDg5LCA2OSwgNzksIDc1LCAxMjgsIDczLCAKKyAgICA2OSwgODUsIDc4LCA3MSwgNDUsIDgyLCA3MywgNjksIDg1LCA3NiwgMTI4LCA3MywgNjksIDg1LCA3OCwgNzEsIDQ1LCA4MCwgCisgICAgNzMsIDY5LCA4NSwgODAsIDEyOCwgNzMsIDY5LCA4NSwgNzgsIDcxLCA0NSwgODAsIDcyLCA3MywgNjksIDg1LCA4MCwgNzIsIAorICAgIDEyOCwgNzMsIDY5LCA4NSwgNzgsIDcxLCA0NSwgNzUsIDczLCA4OSwgNjksIDc5LCA3NSwgMTI4LCA3MywgNjksIDg1LCA3OCwgCisgICAgNzEsIDQ1LCA3NSwgNzIsIDczLCA2OSwgODUsIDc1LCA3MiwgMTI4LCA3MywgNjksIDg1LCA3OCwgNzEsIDQ1LCA2NywgNzMsIAorICAgIDY5LCA4NSwgNjcsIDEyOCwgNzMsIDY5LCA4NSwgNzgsIDcxLCA0NSwgNjcsIDcyLCA3MywgNjksIDg1LCA2NywgNzIsIDEyOCwgCisgICAgNzMsIDY5LCA4NSwgNzgsIDE5OSwgNzMsIDY4LCA3NiwgNjksIDEyOCwgNzMsIDY4LCA3MywgNzcsIDEyOCwgNzMsIDY4LCAKKyAgICA3MywgMjA1LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2OCwgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjgsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY4LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2OCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNjgsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY4LCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2OCwgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjgsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY4LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2OCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNjcsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY3LCAKKyAgICA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NywgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjcsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY3LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2NywgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNjcsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY3LCAKKyAgICA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NywgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjcsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY3LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2NywgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNjcsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY3LCAKKyAgICA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NywgNDksIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjcsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY2LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2NiwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNjYsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY2LCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NiwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjYsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY2LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2NiwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNjYsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY2LCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NiwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjYsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY2LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2NiwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNjYsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY2LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NSwgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjUsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY1LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2NSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNjUsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY1LCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NSwgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjUsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY1LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2NSwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNjUsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY1LCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA2NSwgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNjUsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDY1LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA2NSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTcsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU3LCAKKyAgICA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NywgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTcsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU3LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NywgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTcsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU3LCAKKyAgICA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NywgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTcsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU3LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NywgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTcsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU3LCAKKyAgICA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NywgNDksIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTcsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU2LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NiwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTYsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU2LCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NiwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTYsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU2LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NiwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTYsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU2LCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NiwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTYsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU2LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NiwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTYsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU2LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NSwgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTUsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU1LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTUsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU1LCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NSwgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTUsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU1LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NSwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTUsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU1LCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NSwgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTUsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU1LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTQsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU0LCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NCwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTQsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU0LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTQsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU0LCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1NCwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTQsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU0LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1NCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTQsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDU0LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MywgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTMsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUzLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MywgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTMsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUzLCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MywgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTMsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUzLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MywgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTMsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUzLCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MywgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTMsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUzLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MywgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTIsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUyLCAKKyAgICA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MiwgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTIsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUyLCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MiwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTIsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUyLCAKKyAgICA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MiwgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTIsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUyLCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MiwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTIsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUyLCAKKyAgICA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MiwgNDksIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTIsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUxLCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTEsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUxLCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MSwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTEsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUxLCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTEsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUxLCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MSwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTEsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUxLCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTEsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUxLCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MCwgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTAsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUwLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTAsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUwLCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MCwgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTAsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUwLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNTAsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUwLCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA1MCwgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNTAsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDUwLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA1MCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNDksIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ5LCAKKyAgICA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OSwgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDksIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ5LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA0OSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNDksIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ5LCAKKyAgICA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OSwgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDksIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ5LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA0OSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNDksIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ5LCAKKyAgICA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OSwgNDksIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDksIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ4LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA0OCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNDgsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ4LCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OCwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDgsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ4LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA0OCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNDgsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ4LCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDY1LCA0OCwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA2NSwgNDgsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ4LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDY1LCA0OCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA2NSwgNDgsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNjUsIDQ4LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA3MCwgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNzAsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDcwLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA3MCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNzAsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDcwLCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA3MCwgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNzAsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDcwLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA3MCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNzAsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDcwLCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA3MCwgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNzAsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDcwLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA3MCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjksIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY5LCAKKyAgICA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OSwgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjksIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY5LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2OSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjksIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY5LCAKKyAgICA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OSwgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjksIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY5LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2OSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjksIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY5LCAKKyAgICA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OSwgNDksIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjksIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY4LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2OCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjgsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY4LCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OCwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjgsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY4LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2OCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjgsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY4LCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2OCwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjgsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY4LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2OCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjgsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY4LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NywgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjcsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY3LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2NywgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjcsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY3LCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NywgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjcsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY3LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2NywgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY3LCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NywgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjcsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY3LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2NywgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjYsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY2LCAKKyAgICA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NiwgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjYsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY2LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2NiwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjYsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY2LCAKKyAgICA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NiwgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjYsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY2LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2NiwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY2LCAKKyAgICA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NiwgNDksIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjYsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY1LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2NSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjUsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY1LCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NSwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjUsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY1LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2NSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjUsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY1LCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA2NSwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNjUsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY1LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA2NSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNjUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDY1LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NywgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTcsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU3LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NywgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTcsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU3LCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NywgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTcsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU3LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NywgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU3LCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NywgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTcsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU3LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NywgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTYsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU2LCAKKyAgICA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NiwgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTYsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU2LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NiwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTYsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU2LCAKKyAgICA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NiwgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTYsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU2LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NiwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU2LCAKKyAgICA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NiwgNDksIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTYsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU1LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTUsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU1LCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NSwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTUsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU1LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTUsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU1LCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NSwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTUsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU1LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU1LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NCwgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTQsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU0LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTQsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU0LCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NCwgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTQsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU0LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTQsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU0LCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1NCwgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTQsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDU0LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1NCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTMsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUzLCAKKyAgICA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MywgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTMsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUzLCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MywgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTMsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUzLCAKKyAgICA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MywgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTMsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUzLCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MywgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTMsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUzLCAKKyAgICA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MywgNDksIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTMsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUyLCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MiwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTIsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUyLCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MiwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTIsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUyLCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MiwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTIsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUyLCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MiwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTIsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUyLCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MiwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTIsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUyLCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MSwgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTEsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUxLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTEsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUxLCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MSwgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTEsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUxLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MSwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTEsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUxLCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MSwgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTEsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUxLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTAsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUwLCAKKyAgICA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MCwgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTAsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUwLCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTAsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUwLCAKKyAgICA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MCwgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTAsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUwLCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA1MCwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNTAsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDUwLCAKKyAgICA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA1MCwgNDksIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNTAsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ5LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA0OSwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNDksIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ5LCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OSwgNjYsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDksIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ5LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA0OSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNDksIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ5LCAKKyAgICA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OSwgNTMsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDksIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ5LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA0OSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNDksIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ5LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OCwgNzAsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDgsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ4LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA0OCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNDgsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ4LCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OCwgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDgsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ4LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA0OCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDcwLCA1NywgNDgsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ4LCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNzAsIDU3LCA0OCwgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDcwLCA1NywgNDgsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA3MCwgNTcsIDQ4LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNzAsIDU3LCA0OCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDU3LCA0OCwgNTIsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NiwgNjgsIDU1LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTYsIDY3LCA2NSwgNTcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDU2LCA1NywgNjksIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NSwgNjgsIDUyLCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNTUsIDY1LCA1NSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDU1LCA1NywgNTYsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NSwgNTQsIDY4LCAKKyAgICA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTUsIDUzLCA1MSwgNTEsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDU1LCA1MywgNDksIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NSwgNDksIDUwLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNTUsIDQ4LCA2NiwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDU0LCA3MCwgNDksIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NCwgNjksIDU2LCAKKyAgICA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTQsIDU1LCA1MCwgNjcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDU0LCA1NSwgNDgsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NCwgNTUsIDQ4LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNTQsIDU0LCA1MCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDU0LCA1MywgNjYsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NCwgNTMsIDU3LCAKKyAgICA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTQsIDUzLCA1MywgNTUsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDU0LCA1MSwgNTMsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NCwgNTEsIDQ4LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNTQsIDUwLCA1NywgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDU0LCA1MCwgNTMsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1NCwgNTAsIDUyLCAKKyAgICA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTMsIDcwLCA1NiwgNjcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUzLCA2OCwgNjksIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MywgNjYsIDU2LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNTMsIDY2LCA1MywgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUzLCA1NywgNTAsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MywgNTcsIDQ5LCAKKyAgICA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTMsIDU2LCA3MCwgNDgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUzLCA1MywgNjYsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MywgNTIsIDUxLCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNTMsIDUyLCA0OCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUzLCA1MSwgNzAsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MywgNTEsIDY3LCAKKyAgICA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTMsIDUwLCA2OCwgNjgsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUzLCA1MCwgNTUsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MywgNTAsIDUyLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNTMsIDUwLCA0OSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUzLCA0OSwgNTYsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MiwgNjksIDY1LCAKKyAgICA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTIsIDY5LCA1NiwgNjcsIDEyOCwgNzMsIAorICAgIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUyLCA2OSwgNTAsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCAKKyAgICA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MiwgNjksIDQ4LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgCisgICAgODAsIDcyLCA0NSwgNTIsIDY5LCA0OCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNjUsIDQ5LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA2NSwgNDksIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OSwgCisgICAgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ5LCA2NSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDksIDU3LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ5LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDksIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OSwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNjUsIDQ5LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA2NSwgNDksIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OSwgCisgICAgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ5LCA0OSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDksIDQ4LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ4LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDgsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNjUsIDQ4LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA2NSwgNDgsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgCisgICAgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ4LCA1NiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDgsIDU1LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNjUsIDQ4LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA2NSwgNDgsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNjUsIDQ4LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA2NSwgNDgsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDY1LCA0OCwgCisgICAgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDcwLCA3MCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNzAsIDY5LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA3MCwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDcwLCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNzAsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA3MCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDcwLCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNzAsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA3MCwgCisgICAgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDcwLCA1NCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNzAsIDUzLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA3MCwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDcwLCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNzAsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA3MCwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDcwLCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNjksIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OSwgCisgICAgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY5LCA2OCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIDY3LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OSwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY5LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDY5LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNjksIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OSwgCisgICAgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY5LCA1MiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIDUxLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY5LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjksIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDY4LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNjgsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgCisgICAgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY4LCA2NiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjgsIDY1LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY4LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjgsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDY4LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNjgsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgCisgICAgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY4LCA1MCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjgsIDQ5LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2OCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY3LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjcsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NywgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDY3LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNjcsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NywgCisgICAgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY3LCA1NywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjcsIDU2LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NywgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY3LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NywgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDY3LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNjcsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NywgCisgICAgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY3LCA0OCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIDcwLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NiwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY2LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NiwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDY2LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNjYsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NiwgCisgICAgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY2LCA1NSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIDU0LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NiwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY2LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NiwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDY2LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNjYsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgCisgICAgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY1LCA2OSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjUsIDY4LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY1LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjUsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDY1LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNjUsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgCisgICAgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY1LCA1MywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjUsIDUyLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDY1LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNjUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA2NSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDU3LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTcsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NywgCisgICAgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU3LCA2NywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTcsIDY2LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NywgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU3LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTcsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NywgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDU3LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTcsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NywgCisgICAgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU3LCA1MSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTcsIDUwLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NywgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU3LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NiwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDU2LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTYsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NiwgCisgICAgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU2LCA2NSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIDU3LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NiwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU2LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NiwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDU2LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTYsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NiwgCisgICAgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU2LCA0OSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTYsIDQ4LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU1LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTUsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDU1LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTUsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgCisgICAgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU1LCA1NiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTUsIDU1LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU1LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTUsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDU1LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTUsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NSwgCisgICAgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU0LCA3MCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTQsIDY5LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NCwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU0LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTQsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDU0LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTQsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NCwgCisgICAgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU0LCA1NCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTQsIDUzLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NCwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDU0LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTQsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1NCwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDU0LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTMsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MywgCisgICAgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUzLCA2OCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIDY3LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MywgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUzLCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MywgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDUzLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTMsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MywgCisgICAgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUzLCA1MiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIDUxLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MywgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUzLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTMsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDUyLCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTIsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgCisgICAgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUyLCA2NiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTIsIDY1LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUyLCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTIsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDUyLCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTIsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgCisgICAgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUyLCA1MCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTIsIDQ5LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MiwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUxLCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTEsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDUxLCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTEsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MSwgCisgICAgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUxLCA1NywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTEsIDU2LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MSwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUxLCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTEsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDUxLCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTEsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MSwgCisgICAgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUxLCA0OCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIDcwLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUwLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MCwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDUwLCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTAsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MCwgCisgICAgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUwLCA1NSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIDU0LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MCwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDUwLCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNTAsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA1MCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDUwLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNTAsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgCisgICAgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ5LCA2OSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDksIDY4LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ5LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDksIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDQ5LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNDksIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgCisgICAgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ5LCA1MywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDksIDUyLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ5LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDksIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OSwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDQ4LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNDgsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OCwgCisgICAgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ4LCA2NywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDgsIDY2LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ4LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDgsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OCwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTcsIDQ4LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NywgNDgsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OCwgCisgICAgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ4LCA1MSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NywgNDgsIDUwLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU3LCA0OCwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTcsIDQ4LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA3MCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDcwLCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNzAsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA3MCwgCisgICAgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDcwLCA2NSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIDU3LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA3MCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDcwLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA3MCwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDcwLCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNzAsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA3MCwgCisgICAgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDcwLCA0OSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNzAsIDQ4LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY5LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjksIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDY5LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNjksIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgCisgICAgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY5LCA1NiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjksIDU1LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY5LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjksIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDY5LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNjksIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OSwgCisgICAgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY4LCA3MCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjgsIDY5LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OCwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY4LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjgsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OCwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDY4LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNjgsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OCwgCisgICAgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY4LCA1NCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjgsIDUzLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OCwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY4LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjgsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2OCwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDY4LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNjcsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NywgCisgICAgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY3LCA2OCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIDY3LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NywgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY3LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NywgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDY3LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNjcsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NywgCisgICAgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY3LCA1MiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIDUxLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NywgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY3LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjcsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDY2LCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNjYsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgCisgICAgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY2LCA2NiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjYsIDY1LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY2LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjYsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDY2LCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNjYsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgCisgICAgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY2LCA1MCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjYsIDQ5LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NiwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY1LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjUsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDY1LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNjUsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NSwgCisgICAgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY1LCA1NywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjUsIDU2LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NSwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY1LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNjUsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDY1LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNjUsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA2NSwgCisgICAgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDY1LCA0OCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIDcwLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NywgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU3LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NywgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDU3LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTcsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NywgCisgICAgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU3LCA1NSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIDU0LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NywgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU3LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTcsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NywgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDU3LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTcsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgCisgICAgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU2LCA2OSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTYsIDY4LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU2LCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTYsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDU2LCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTYsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgCisgICAgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU2LCA1MywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTYsIDUyLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU2LCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTYsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NiwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDU1LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTUsIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NSwgCisgICAgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU1LCA2NywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTUsIDY2LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NSwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU1LCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTUsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NSwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDU1LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTUsIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NSwgCisgICAgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU1LCA1MSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTUsIDUwLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NSwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU1LCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDU0LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTQsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NCwgCisgICAgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU0LCA2NSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIDU3LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NCwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU0LCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NCwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDU0LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTQsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1NCwgCisgICAgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDU0LCA0OSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTQsIDQ4LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUzLCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTMsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDUzLCA2NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTMsIDY1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgCisgICAgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUzLCA1NiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTMsIDU1LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUzLCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTMsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDUzLCA1MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTMsIDQ5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MywgCisgICAgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUyLCA3MCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTIsIDY5LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MiwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUyLCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTIsIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MiwgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDUyLCA1NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTIsIDU2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MiwgCisgICAgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUyLCA1NCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTIsIDUzLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MiwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUyLCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTIsIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MiwgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDUyLCA0OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTEsIDcwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MSwgCisgICAgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUxLCA2OCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIDY3LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MSwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUxLCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MSwgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDUxLCA1NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTEsIDU0LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MSwgCisgICAgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUxLCA1MiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIDUxLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MSwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUxLCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTEsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgNzAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDUwLCA2OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTAsIDY4LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgCisgICAgNjcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUwLCA2NiwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTAsIDY1LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgNTcsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUwLCA1NiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTAsIDU1LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgNTQsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDUwLCA1MywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNTAsIDUyLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgCisgICAgNTEsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDUwLCA1MCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNTAsIDQ5LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA1MCwgNDgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ5LCA3MCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDksIDY5LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OSwgNjgsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDQ5LCA2NywgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNDksIDY2LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OSwgCisgICAgNjUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ5LCA1NywgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDksIDU2LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OSwgNTUsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ5LCA1NCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDksIDUzLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OSwgNTIsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDQ5LCA1MSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNDksIDUwLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OSwgCisgICAgNDksIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ5LCA0OCwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIDcwLCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OCwgNjksIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ4LCA2OCwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIDY3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OCwgNjYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDQ4LCA2NSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNDgsIDU3LCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OCwgCisgICAgNTYsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ4LCA1NSwgMTI4LCAKKyAgICA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIDU0LCAxMjgsIDczLCA2OCwgCisgICAgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OCwgNTMsIDEyOCwgNzMsIDY4LCA2OSwgNzksIAorICAgIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIDUwLCA3MCwgNTYsIDQ4LCA1MiwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCAKKyAgICA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCA1NiwgNDgsIDUxLCAxMjgsIDczLCA2OCwgNjksIDc5LCA3MSwgODIsIDY1LCA4MCwgCisgICAgNzIsIDQ1LCA1MCwgNzAsIDU2LCA0OCwgNTAsIDEyOCwgNzMsIDY4LCA2OSwgNzksIDcxLCA4MiwgNjUsIDgwLCA3MiwgNDUsIAorICAgIDUwLCA3MCwgNTYsIDQ4LCA0OSwgMTI4LCA3MywgNjgsIDY5LCA3OSwgNzEsIDgyLCA2NSwgODAsIDcyLCA0NSwgNTAsIDcwLCAKKyAgICA1NiwgNDgsIDQ4LCAxMjgsIDczLCA2OCwgNjksIDc4LCA4NCwgNzMsIDcwLCA3MywgNjcsIDY1LCA4NCwgNzMsIDc5LCA3OCwgCisgICAgMTI4LCA3MywgNjgsIDY5LCA3OCwgODQsIDczLCA2NywgNjUsIDIwNCwgNzMsIDY3LCA3MiwgNzksIDg1LCAxMjgsIDczLCAKKyAgICA2NywgNzIsIDc5LCA4MywgMTI4LCA3MywgNjcsIDcyLCA3MywgNzcsIDY1LCA4NCwgNzksIDgzLCAxMjgsIDczLCA2NywgNzIsIAorICAgIDY1LCA2OCwgNzMsIDc4LCAxMjgsIDczLCA2NywgNjksIDc2LCA2NSwgNzgsIDY4LCA3MywgNjcsIDQ1LCA4OSwgODIsIDEyOCwgCisgICAgNzMsIDY2LCA3MywgNzAsIDczLCA3NiwgNzMsIDEyOCwgNzMsIDY1LCA4NSwgNjgsIDY1LCAxMjgsIDczLCA0OCwgNDksIDUzLCAKKyAgICAxMjgsIDczLCA0OCwgNDksIDUyLCAxMjgsIDczLCA0OCwgNDksIDUxLCAxMjgsIDczLCA0OCwgNDksIDUwLCAxMjgsIDczLCAKKyAgICA0OCwgNDksIDQ5LCA2NSwgMTI4LCA3MywgNDgsIDQ5LCA0OSwgMTI4LCA3MywgNDgsIDQ5LCA0OCwgNjUsIDEyOCwgNzMsIAorICAgIDQ4LCA0OSwgNDgsIDEyOCwgNzMsIDQ4LCA0OCwgNTcsIDY1LCAxMjgsIDczLCA0OCwgNDgsIDU3LCAxMjgsIDczLCA0OCwgCisgICAgNDgsIDU2LCAxMjgsIDczLCA0OCwgNDgsIDU1LCAxMjgsIDczLCA0OCwgNDgsIDU0LCAxMjgsIDczLCA0OCwgNDgsIDUzLCAKKyAgICA2NSwgMTI4LCA3MywgNDgsIDQ4LCA1MywgMTI4LCA3MywgNDgsIDQ4LCA1MiwgMTI4LCA3MywgNDgsIDQ4LCA1MSwgMTI4LCAKKyAgICA3MywgNDgsIDQ4LCA1MCwgMTI4LCA3MywgNDgsIDQ4LCA0OSwgMTI4LCA3MywgNDUsIDg5LCA4NSwgMTI4LCA3MywgNDUsIAorICAgIDg5LCA3OSwgMTI4LCA3MywgNDUsIDg5LCA2OSwgNzksIDEyOCwgNzMsIDQ1LCA4OSwgNjksIDEyOCwgNzMsIDQ1LCA4OSwgCisgICAgNjUsIDY5LCAxMjgsIDczLCA0NSwgODksIDY1LCA0NSwgNzksIDEyOCwgNzMsIDQ1LCA4OSwgNjUsIDEyOCwgNzMsIDQ1LCAKKyAgICA3OSwgNDUsIDczLCAxMjgsIDczLCA0NSwgNzksIDEyOCwgNzMsIDQ1LCA2OSwgODUsIDEyOCwgNzMsIDQ1LCA2NiwgNjksIAorICAgIDY1LCA3NywgMTI4LCA3MywgNDUsIDY1LCA4MiwgNjUsIDY5LCA2NSwgMTI4LCA3MywgNDUsIDY1LCAxMjgsIDcyLCA5MCwgCisgICAgOTAsIDkwLCA3MSwgMTI4LCA3MiwgOTAsIDkwLCA5MCwgMTI4LCA3MiwgOTAsIDkwLCA4MCwgMTI4LCA3MiwgOTAsIDkwLCAKKyAgICAxMjgsIDcyLCA5MCwgODcsIDcxLCAxMjgsIDcyLCA5MCwgODcsIDEyOCwgNzIsIDkwLCA4NCwgMTI4LCA3MiwgOTAsIDcxLCAKKyAgICAxMjgsIDcyLCA4OSwgODMsIDg0LCA2OSwgODIsIDY5LCA4MywgNzMsIDIxMSwgNzIsIDg5LCA4MCwgNzksIDY4LCA3MywgNjUsIAorICAgIDgzLCA4NCwgNzksIDc2LCA2OSwgMTI4LCA3MiwgODksIDgwLCA3MiwgNjksIDc4LCA2NSwgODQsIDczLCA3OSwgMjA2LCA3MiwgCisgICAgODksIDgwLCA3MiwgNjksIDc4LCA0NSwgNzcsIDczLCA3OCwgODUsIDgzLCAxMjgsIDcyLCA4OSwgODAsIDcyLCA2OSwgNzgsIAorICAgIDEyOCwgNzIsIDg5LCA4MCwgNzIsIDY5LCAyMDYsIDcyLCA4OCwgODcsIDcxLCAxMjgsIDcyLCA4OCwgODUsIDc5LCA4OCwgCisgICAgMTI4LCA3MiwgODgsIDg1LCA3OSwgODQsIDEyOCwgNzIsIDg4LCA4NSwgNzksIDgwLCAxMjgsIDcyLCA4OCwgODUsIDc5LCAKKyAgICAxMjgsIDcyLCA4OCwgNzksIDg4LCAxMjgsIDcyLCA4OCwgNzksIDg0LCAxMjgsIDcyLCA4OCwgNzksIDgwLCAxMjgsIDcyLCAKKyAgICA4OCwgNzksIDEyOCwgNzIsIDg4LCA3MywgODgsIDEyOCwgNzIsIDg4LCA3MywgODQsIDEyOCwgNzIsIDg4LCA3MywgODAsIAorICAgIDEyOCwgNzIsIDg4LCA3MywgNjksIDg4LCAxMjgsIDcyLCA4OCwgNzMsIDY5LCA4NCwgMTI4LCA3MiwgODgsIDczLCA2OSwgCisgICAgODAsIDEyOCwgNzIsIDg4LCA3MywgNjksIDEyOCwgNzIsIDg4LCA3MywgMTI4LCA3MiwgODgsIDY5LCA4OCwgMTI4LCA3MiwgCisgICAgODgsIDY5LCA4MCwgMTI4LCA3MiwgODgsIDY5LCAxMjgsIDcyLCA4OCwgNjUsIDg4LCAxMjgsIDcyLCA4OCwgNjUsIDg0LCAKKyAgICAxMjgsIDcyLCA4OCwgNjUsIDgwLCAxMjgsIDcyLCA4OCwgNjUsIDEyOCwgNzIsIDg3LCA4NSwgMTI4LCA3MiwgODcsIDY1LCAKKyAgICA3MywgODIsIDEyOCwgNzIsIDg2LCAxMjgsIDcyLCA4NSwgODMsIDcyLCA2OSwgMTk2LCA3MiwgODUsIDgyLCA2NSwgNzgsIAogICAgIDEyOCwgNzIsIDg1LCA3OSwgODQsIDEyOCwgNzIsIDg1LCA3OCwgNjgsIDgyLCA2OSwgNjgsIDEyOCwgNzIsIDg1LCA3OCwgCiAgICAgNjgsIDgyLCA2OSwgMTk2LCA3MiwgODUsIDc4LCAxMjgsIDcyLCA4NSwgNzcsIDY1LCA3OCwgMTI4LCA3MiwgODUsIDc3LCAKICAgICA2NSwgMjA2LCA3MiwgODUsIDc2LCA1MCwgMTI4LCA3MiwgODUsIDczLCA3MywgODQsIDc5LCAxMjgsIDcyLCA4NSwgNjYsIAogICAgIDUwLCAxMjgsIDcyLCA4NSwgNjYsIDE3OCwgNzIsIDg1LCA2NiwgMTI4LCA3MiwgODUsIDY1LCA4MiwgNjUsIDY4LCA2OCwgCi0gICAgNzksIDEyOCwgNzIsIDgyLCA4OSwgODYsIDc4LCA3MywgMTkzLCA3MiwgODAsIDg3LCA3MSwgMTI4LCA3MiwgODAsIDY1LCAKLSAgICAxMjgsIDcyLCA4MCwgMTI4LCA3MiwgNzksIDg1LCA4MywgMTk3LCA3MiwgNzksIDg1LCA4MiwgNzEsIDc2LCA2NSwgODMsIAotICAgIDgzLCAxMjgsIDcyLCA3OSwgODUsIDgyLCA3MSwgNzYsIDY1LCA4MywgMjExLCA3MiwgNzksIDg1LCA4MiwgMTI4LCA3MiwgCi0gICAgNzksIDg1LCAyMTAsIDcyLCA3OSwgODQsIDY5LCA3NiwgMTI4LCA3MiwgNzksIDg0LCA2NSwgMTI4LCA3MiwgNzksIDgzLCAKLSAgICA4MCwgNzMsIDg0LCA2NSwgNzYsIDEyOCwgNzIsIDc5LCA4MiwgODMsIDY5LCAxMjgsIDcyLCA3OSwgODIsIDgzLCAxOTcsIAotICAgIDcyLCA3OSwgODIsIDc4LCA4MywgMTI4LCA3MiwgNzksIDgyLCA3MywgOTAsIDc5LCA3OCwgODQsIDY1LCA3NiwgNzYsIDIxNywgCi0gICAgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIAotICAgIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCAKLSAgICA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgCi0gICAgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIAotICAgIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCAKLSAgICA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgCi0gICAgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIAotICAgIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCAKLSAgICA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgCi0gICAgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIAotICAgIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNTMsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgCi0gICAgNTMsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIAotICAgIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCAKLSAgICA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgCi0gICAgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNTIsIAotICAgIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNTEsIDEyOCwgCi0gICAgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIAotICAgIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCAKLSAgICA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgCi0gICAgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIAotICAgIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCAKLSAgICA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgCi0gICAgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIAotICAgIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCAKLSAgICA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgCi0gICAgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIAotICAgIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNTAsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgCi0gICAgNTAsIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIAotICAgIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCAKLSAgICA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgCi0gICAgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNDgsIAotICAgIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNTQsIDEyOCwgCi0gICAgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIAotICAgIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCAKLSAgICA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgCi0gICAgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIAotICAgIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCAKLSAgICA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgCi0gICAgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIAotICAgIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCAKLSAgICA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgCi0gICAgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIAotICAgIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCAKLSAgICA0OCwgNDgsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgCi0gICAgNDgsIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDEyOCwgNzIsIDc5LCAKLSAgICA4MiwgNzMsIDEyOCwgNzIsIDc5LCA4MiwgMTkzLCA3MiwgNzksIDc5LCA4MiwgODUsIDEyOCwgNzIsIDc5LCA3OSwgODAsIAotICAgIDEyOCwgNzIsIDc5LCA3OSwgNzgsIDEyOCwgNzIsIDc5LCA3OCwgNjksIDg5LCA2NiwgNjksIDY5LCAxMjgsIDcyLCA3OSwgCi0gICAgNzgsIDY5LCAyMTcsIDcyLCA3OSwgNzcsIDc5LCA4NCwgNzIsIDY5LCA4NCwgNzMsIDY3LCAxMjgsIDcyLCA3OSwgNzcsIDc5LCAKLSAgICA4NCwgNzIsIDY5LCA4NCwgNzMsIDE5NSwgNzIsIDc5LCA3NiwgNjksIDEyOCwgNzIsIDc5LCA3NiwgNjgsIDczLCA3OCwgCi0gICAgMTk5LCA3MiwgNzksIDc2LCA2NSwgNzcsIDEyOCwgNzIsIDc5LCA3NiwgNjUsIDIwNSwgNzIsIDc5LCA3NSwgNjUsIDEyOCwgCi0gICAgNzIsIDc5LCA3MywgMTI4LCA3MiwgNzksIDY3LCA3MiwgNzksIDEyOCwgNzIsIDc4LCA4NSwgODQsIDEyOCwgNzIsIDc4LCAKLSAgICA4NSwgNzksIDg4LCAxMjgsIDcyLCA3OCwgODUsIDc5LCAxMjgsIDcyLCA3OCwgNzksIDg4LCAxMjgsIDcyLCA3OCwgNzksIAotICAgIDg0LCAxMjgsIDcyLCA3OCwgNzksIDgwLCAxMjgsIDcyLCA3OCwgNzMsIDg4LCAxMjgsIDcyLCA3OCwgNzMsIDg0LCAxMjgsIAotICAgIDcyLCA3OCwgNzMsIDgwLCAxMjgsIDcyLCA3OCwgNzMsIDY5LCA4OCwgMTI4LCA3MiwgNzgsIDczLCA2OSwgODQsIDEyOCwgCi0gICAgNzIsIDc4LCA3MywgNjksIDgwLCAxMjgsIDcyLCA3OCwgNzMsIDY5LCAxMjgsIDcyLCA3OCwgNzMsIDEyOCwgNzIsIDc4LCAKLSAgICA2OSwgODgsIDEyOCwgNzIsIDc4LCA2OSwgODAsIDEyOCwgNzIsIDc4LCA2OSwgMTI4LCA3MiwgNzgsIDY1LCA4OCwgMTI4LCAKLSAgICA3MiwgNzgsIDY1LCA4NCwgMTI4LCA3MiwgNzgsIDY1LCA4MCwgMTI4LCA3MiwgNzgsIDY1LCAxMjgsIDcyLCA3NywgODksIAotICAgIDg4LCAxMjgsIDcyLCA3NywgODksIDgyLCA4OCwgMTI4LCA3MiwgNzcsIDg5LCA4MiwgMTI4LCA3MiwgNzcsIDg5LCA4MCwgCi0gICAgMTI4LCA3MiwgNzcsIDg5LCAxMjgsIDcyLCA3NywgODUsIDg4LCAxMjgsIDcyLCA3NywgODUsIDg0LCAxMjgsIDcyLCA3NywgCi0gICAgODUsIDgyLCA4OCwgMTI4LCA3MiwgNzcsIDg1LCA4MiwgMTI4LCA3MiwgNzcsIDg1LCA4MCwgMTI4LCA3MiwgNzcsIDg1LCAKLSAgICA3OSwgODgsIDEyOCwgNzIsIDc3LCA4NSwgNzksIDgwLCAxMjgsIDcyLCA3NywgODUsIDc5LCAxMjgsIDcyLCA3NywgODUsIAotICAgIDEyOCwgNzIsIDc3LCA3OSwgODgsIDEyOCwgNzIsIDc3LCA3OSwgODQsIDEyOCwgNzIsIDc3LCA3OSwgODAsIDEyOCwgNzIsIAotICAgIDc3LCA3OSwgMTI4LCA3MiwgNzcsIDczLCA4OCwgMTI4LCA3MiwgNzcsIDczLCA4NCwgMTI4LCA3MiwgNzcsIDczLCA4MCwgCi0gICAgMTI4LCA3MiwgNzcsIDczLCA2OSwgODgsIDEyOCwgNzIsIDc3LCA3MywgNjksIDgwLCAxMjgsIDcyLCA3NywgNzMsIDY5LCAKLSAgICAxMjgsIDcyLCA3NywgNzMsIDEyOCwgNzIsIDc3LCA2OSwgMTI4LCA3MiwgNzcsIDY1LCA4OCwgMTI4LCA3MiwgNzcsIDY1LCAKLSAgICA4NCwgMTI4LCA3MiwgNzcsIDY1LCA4MCwgMTI4LCA3MiwgNzcsIDY1LCAxMjgsIDcyLCA3NiwgODksIDg4LCAxMjgsIDcyLCAKLSAgICA3NiwgODksIDg0LCAxMjgsIDcyLCA3NiwgODksIDgyLCA4OCwgMTI4LCA3MiwgNzYsIDg5LCA4MiwgMTI4LCA3MiwgNzYsIAotICAgIDg5LCA4MCwgMTI4LCA3MiwgNzYsIDg5LCAxMjgsIDcyLCA3NiwgODUsIDg4LCAxMjgsIDcyLCA3NiwgODUsIDg0LCAxMjgsIAotICAgIDcyLCA3NiwgODUsIDgyLCA4OCwgMTI4LCA3MiwgNzYsIDg1LCA4MiwgMTI4LCA3MiwgNzYsIDg1LCA4MCwgMTI4LCA3MiwgCi0gICAgNzYsIDg1LCA3OSwgODgsIDEyOCwgNzIsIDc2LCA4NSwgNzksIDgwLCAxMjgsIDcyLCA3NiwgODUsIDc5LCAxMjgsIDcyLCAKLSAgICA3NiwgODUsIDEyOCwgNzIsIDc2LCA3OSwgODgsIDEyOCwgNzIsIDc2LCA3OSwgODAsIDEyOCwgNzIsIDc2LCA3OSwgMTI4LCAKLSAgICA3MiwgNzYsIDczLCA4OCwgMTI4LCA3MiwgNzYsIDczLCA4NCwgMTI4LCA3MiwgNzYsIDczLCA4MCwgMTI4LCA3MiwgNzYsIAotICAgIDczLCA2OSwgODgsIDEyOCwgNzIsIDc2LCA3MywgNjksIDgwLCAxMjgsIDcyLCA3NiwgNzMsIDY5LCAxMjgsIDcyLCA3NiwgCi0gICAgNzMsIDEyOCwgNzIsIDc2LCA2OSwgODgsIDEyOCwgNzIsIDc2LCA2OSwgODAsIDEyOCwgNzIsIDc2LCA2OSwgMTI4LCA3MiwgCi0gICAgNzYsIDY1LCA4OCwgMTI4LCA3MiwgNzYsIDY1LCA4NCwgMTI4LCA3MiwgNzYsIDY1LCA4MCwgMTI4LCA3MiwgNzYsIDY1LCAKLSAgICAxMjgsIDcyLCA3NSwgMTI4LCA3MiwgNzMsIDkwLCA2NiwgMTI4LCA3MiwgNzMsIDgzLCA4NCwgNzksIDgyLCA3MywgMTk1LCAKLSAgICA3MiwgNzMsIDgyLCA3MywgODEsIDEyOCwgNzIsIDczLCA3MSwgNzIsIDQ1LCA4MywgODAsIDY5LCA2OSwgMTk2LCA3MiwgNzMsIAotICAgIDcxLCA3MiwgNDUsIDgyLCA2OSwgODYsIDY5LCA4MiwgODMsIDY5LCA2OCwgNDUsIDE4NSwgNzIsIDczLCA3MSwgNzIsIDQ1LCAKLSAgICA3MiwgNjksIDY5LCA3NiwgNjksIDE5NiwgNzIsIDczLCA2OSwgODgsIDEyOCwgNzIsIDczLCA2OSwgODUsIDcyLCA0NSwgODMsIAotICAgIDczLCA3OSwgODMsIDEyOCwgNzIsIDczLCA2OSwgODUsIDcyLCA0NSwgODIsIDczLCA2OSwgODUsIDc2LCAxMjgsIDcyLCA3MywgCi0gICAgNjksIDg1LCA3MiwgNDUsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDQ1LCA3OCwgNzMsIAotICAgIDY5LCA4NSwgNzgsIDEyOCwgNzIsIDczLCA2OSwgODUsIDcyLCA0NSwgNzcsIDczLCA2OSwgODUsIDc3LCAxMjgsIDcyLCA3MywgCi0gICAgNjksIDg1LCAyMDAsIDcyLCA3MywgNjksIDEyOCwgNzIsIDczLCA2OCwgNzMsIDc4LCAxOTksIDcyLCA3MywgNjgsIDY5LCAKLSAgICA4NCwgMTI4LCA3MiwgNzMsIDY4LCA2OSwgMTI4LCA3MiwgNzMsIDY2LCA3MywgODMsIDY3LCA4NSwgODMsIDEyOCwgNzIsIAotICAgIDcyLCA4NywgNjUsIDEyOCwgNzIsIDcyLCA4NSwgMTI4LCA3MiwgNzIsIDczLCAxMjgsIDcyLCA3MiwgNjksIDY5LCAxMjgsIAotICAgIDcyLCA3MiwgNjksIDEyOCwgNzIsIDcyLCA2NSwgNjUsIDEyOCwgNzIsIDcxLCAxMjgsIDcyLCA2OSwgODgsIDczLCA3MCwgCi0gICAgNzksIDgyLCAyMDUsIDcyLCA2OSwgODgsIDY1LCA3MSwgODIsIDY1LCAyMDUsIDcyLCA2OSwgODgsIDY1LCA3MSwgNzksIDc4LCAKLSAgICAxMjgsIDcyLCA2OSwgODIsIDg1LCA4NCwgODUsIDEyOCwgNzIsIDY5LCA4MiwgODUsIDEyOCwgNzIsIDY5LCA4MiwgNzcsIAotICAgIDczLCA4NCwgNzMsIDY1LCAyMDYsIDcyLCA2OSwgODIsIDc3LCA3MywgNzksIDc4LCA3MywgNjUsIDIwNiwgNzIsIDY5LCA4MiwgCi0gICAgNzcsIDY5LCA4MywgMTI4LCA3MiwgNjksIDgyLCA2NiwgMTI4LCA3MiwgNjksIDgyLCA2NSwgNjksIDg1LCAyMDUsIDcyLCAKLSAgICA2OSwgNzgsIDcxLCAxMjgsIDcyLCA2OSwgNzgsIDE5OSwgNzIsIDY5LCA3NywgODAsIDEyOCwgNzIsIDY5LCA3NiwgNzcsIAotICAgIDY5LCA4NCwgMTI4LCA3MiwgNjksIDc2LCA3NywgNjksIDIxMiwgNzIsIDY5LCA3NiwgMjA1LCA3MiwgNjksIDc2LCA3MywgCi0gICAgNjcsIDc5LCA4MCwgODQsIDY5LCA4MiwgMTI4LCA3MiwgNjksIDc1LCA4NSwgODQsIDY1LCA2NSwgODIsIDg1LCAxMjgsIDcyLCAKLSAgICA2OSwgNzMsIDgzLCA2OSwgNzMsIDEyOCwgNzIsIDY5LCA2NSwgODYsIDg5LCAxMjgsIDcyLCA2OSwgNjUsIDg2LCA2OSwgNzgsIAotICAgIDc2LCAyMTcsIDcyLCA2OSwgNjUsIDg2LCA2OSwgNzgsIDEyOCwgNzIsIDY5LCA2NSwgODYsIDY5LCAyMDYsIDcyLCA2OSwgCi0gICAgNjUsIDgyLCA4NCwgODMsIDEyOCwgNzIsIDY5LCA2NSwgODIsIDg0LCA0NSwgODMsIDcyLCA2NSwgODAsIDY5LCAxOTYsIDcyLCAKLSAgICA2OSwgNjUsIDgyLCA4NCwgMTI4LCA3MiwgNjksIDY1LCA4MiwgMjEyLCA3MiwgNjksIDY1LCA4MiwgNDUsIDc4LCA3OSwgNDUsIAotICAgIDY5LCA4NiwgNzMsIDIwNCwgNzIsIDY5LCA2NSwgNjgsIDgzLCA4NCwgODIsIDc5LCA3NSwgNjksIDEyOCwgNzIsIDY5LCA2NSwgCi0gICAgNjgsIDgzLCA4NCwgNzksIDc4LCAxOTcsIDcyLCA2OSwgNjUsIDY4LCA4MCwgNzIsIDc5LCA3OCwgNjksIDEyOCwgNzIsIDY5LCAKLSAgICA2NSwgNjgsIDczLCA3OCwgNzEsIDEyOCwgNzIsIDY2LCA2NSwgODMsIDY1LCA0NSwgNjksIDgzLCA2NSwgODMsIDE5MywgNzIsIAotICAgIDY2LCA2NSwgODMsIDE5MywgNzIsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNzIsIDY1LCA4NiwgNjksIDEyOCwgCi0gICAgNzIsIDY1LCA4NSwgODAsIDg0LCA4MywgODQsIDczLCA3NywgNzcsIDY5LCAxMjgsIDcyLCA2NSwgODQsIDcyLCA3MywgMTI4LCAKLSAgICA3MiwgNjUsIDg0LCA2OSwgMTI4LCA3MiwgNjUsIDg0LCA2NywgNzIsIDczLCA3OCwgMTk5LCA3MiwgNjUsIDg0LCA2NSwgCi0gICAgMTk4LCA3MiwgNjUsIDgzLCA2OSwgMjEwLCA3MiwgNjUsIDgzLCA2NSwgNzgsIDg0LCA2NSwgMTI4LCA3MiwgNjUsIDgyLCAKLSAgICA4MCwgNzksIDc5LCA3OCwgMTI4LCA3MiwgNjUsIDgyLCA4MCwgNzksIDc5LCAyMDYsIDcyLCA2NSwgODIsIDc3LCA3OSwgNzgsIAotICAgIDczLCA2NywgMTI4LCA3MiwgNjUsIDgyLCA3NSwgNzYsIDY5LCA2NSwgMjA2LCA3MiwgNjUsIDgyLCA2OCwgNzgsIDY5LCA4MywgCi0gICAgODMsIDEyOCwgNzIsIDY1LCA4MiwgMTk2LCA3MiwgNjUsIDgwLCA4MCwgMjE3LCA3MiwgNjUsIDc4LCA4NSwgNzgsIDc5LCAKLSAgICAyMDcsIDcyLCA2NSwgNzgsIDcxLCA5MCwgNzIsIDc5LCAyMTMsIDcyLCA2NSwgNzgsIDY4LCA4MywgMTI4LCA3MiwgNjUsIAotICAgIDc4LCA2OCwgMjExLCA3MiwgNjUsIDc4LCA2OCwgNzYsIDY5LCA4MywgMTI4LCA3MiwgNjUsIDc4LCA2OCwgNzYsIDY5LCAKLSAgICAxMjgsIDcyLCA2NSwgNzgsIDY4LCA2NiwgNjUsIDcxLCAxMjgsIDcyLCA2NSwgNzgsIDY4LCAxMjgsIDcyLCA2NSwgNzgsIAotICAgIDQ1LCA2NSwgNzUsIDY1LCA4NCwgMTI4LCA3MiwgNjUsIDc3LCA5MCwgNjUsIDEyOCwgNzIsIDY1LCA3NywgODMsIDg0LCA2OSwgCi0gICAgMjEwLCA3MiwgNjUsIDc3LCA3NywgNjksIDgyLCAxMjgsIDcyLCA2NSwgNzcsIDc3LCA2OSwgMjEwLCA3MiwgNjUsIDc3LCAKLSAgICA2NiwgODUsIDgyLCA3MSwgNjksIDgyLCAxMjgsIDcyLCA2NSwgNzYsIDgxLCA2NSwgMTI4LCA3MiwgNjUsIDc2LCA3OSwgCi0gICAgMTI4LCA3MiwgNjUsIDc2LCA3MCwgMTI4LCA3MiwgNjUsIDc2LCA2NiwgNjksIDgyLCA2OCwgMTI4LCA3MiwgNjUsIDc2LCAKLSAgICA2NSwgNzgsIDg0LCA2NSwgMTI4LCA3MiwgNjUsIDczLCA4NCwgODUsIDEyOCwgNzIsIDY1LCA3MywgODIsIDY3LCA4NSwgODQsIAotICAgIDEyOCwgNzIsIDY1LCA3MywgODIsIDEyOCwgNzIsIDY1LCA3MSwgNzYsIDY1LCAyMTgsIDcyLCA2NSwgNzEsIDc2LCAxMjgsIAotICAgIDcyLCA2NSwgNzAsIDg1LCA3NSwgNzIsIDY1LCAxMjgsIDcyLCA2NSwgNzAsIDg1LCA3NSwgNzIsIDEyOCwgNzIsIDY1LCA2OSwgCi0gICAgNzEsIDIwNCwgNzIsIDY1LCA2NSwgODIsIDg1LCAxMjgsIDcyLCA2NSwgNjUsIDc3LCAxMjgsIDcyLCA2NSwgMTkzLCA3MiwgCi0gICAgNjUsIDQ1LCA3MiwgNjUsIDEyOCwgNzIsIDQ4LCA0OCwgNTYsIDEyOCwgNzIsIDQ4LCA0OCwgNTUsIDEyOCwgNzIsIDQ4LCAKLSAgICA0OCwgNTQsIDY1LCAxMjgsIDcyLCA0OCwgNDgsIDU0LCAxMjgsIDcyLCA0OCwgNDgsIDUzLCAxMjgsIDcyLCA0OCwgNDgsIAotICAgIDUyLCAxMjgsIDcyLCA0OCwgNDgsIDUxLCAxMjgsIDcyLCA0OCwgNDgsIDUwLCAxMjgsIDcyLCA0OCwgNDgsIDQ5LCAxMjgsIAotICAgIDcyLCA0NSwgODQsIDg5LCA4MCwgMTk3LCA3MSwgODksIDg1LCAxMjgsIDcxLCA4OSwgNzksIDc4LCAxMjgsIDcxLCA4OSwgCi0gICAgNzksIDEyOCwgNzEsIDg5LCA3MywgMTI4LCA3MSwgODksIDcwLCAyMTMsIDcxLCA4OSwgNjksIDY5LCAxMjgsIDcxLCA4OSwgCi0gICAgNjUsIDgzLCAxMjgsIDcxLCA4OSwgNjUsIDY1LCAxMjgsIDcxLCA4OSwgNjUsIDEyOCwgNzEsIDg5LCAxMjgsIDcxLCA4NywgCi0gICAgODUsIDEyOCwgNzEsIDg3LCA3MywgMTI4LCA3MSwgODcsIDY5LCA2OSwgMTI4LCA3MSwgODcsIDY5LCAxMjgsIDcxLCA4NywgCi0gICAgNjUsIDY1LCAxMjgsIDcxLCA4NywgNjUsIDEyOCwgNzEsIDg2LCAxMjgsIDcxLCA4NSwgODIsIDg1LCA4MywgNzIsIDEyOCwgCi0gICAgNzEsIDg1LCA4MiwgODUsIDc4LCAxMjgsIDcxLCA4NSwgODIsIDY1LCA3NywgODUsIDg0LCA3OSwgNzgsIDEyOCwgNzEsIDg1LCAKLSAgICA4MiwgNTUsIDEyOCwgNzEsIDg1LCA3OCwgODUsIDEyOCwgNzEsIDg1LCA3OCwgMjEzLCA3MSwgODUsIDIwNSwgNzEsIDg1LCAKLSAgICA3NiwgMTI4LCA3MSwgODUsIDczLCA4NCwgNjUsIDgyLCAxMjgsIDcxLCA4NSwgMTk5LCA3MSwgODUsIDY5LCA3MiwgMTI4LCAKLSAgICA3MSwgODUsIDY5LCAyMDAsIDcxLCA4NSwgNjgsIDEyOCwgNzEsIDg1LCAxOTYsIDcxLCA4NSwgNjUsIDgyLCA2OCwgODMsIAotICAgIDc3LCA2NSwgNzgsIDEyOCwgNzEsIDg1LCA2NSwgODIsIDY4LCA2OSwgNjgsIDc4LCA2OSwgODMsIDgzLCAxMjgsIDcxLCA4NSwgCi0gICAgNjUsIDgyLCA2NSwgNzgsIDIwMSwgNzEsIDg1LCAxOTMsIDcxLCA4NSwgMTc4LCA3MSwgODQsIDY5LCAyMTAsIDcxLCA4MywgCi0gICAgODUsIDc3LCAxMjgsIDcxLCA4MywgODUsIDIwNSwgNzEsIDgyLCAyMTMsIDcxLCA4MiwgNzksIDg3LCA3MywgNzgsIDE5OSwgCi0gICAgNzEsIDgyLCA3OSwgODUsIDc4LCA2OCwgMTI4LCA3MSwgODIsIDc5LCA3OCwgODQsIDcyLCA3MywgODMsIDc3LCA2NSwgODQsIAotICAgIDY1LCAxMjgsIDcxLCA4MiwgNzMsIDc4LCA3OCwgNzMsIDc4LCAxOTksIDcxLCA4MiwgNjksIDcxLCA3OSwgODIsIDczLCA2NSwgCi0gICAgMjA2LCA3MSwgODIsIDY5LCA2OSwgMjA2LCA3MSwgODIsIDY5LCA2NSwgODQsIDc4LCA2OSwgODMsIDgzLCAxMjgsIDcxLCAKLSAgICA4MiwgNjksIDY1LCA4NCwgNjksIDgyLCA0NSwgODQsIDcyLCA2NSwgNzgsIDEyOCwgNzEsIDgyLCA2OSwgNjUsIDg0LCA2OSwgCi0gICAgODIsIDQ1LCA4NCwgNzIsIDY1LCAyMDYsIDcxLCA4MiwgNjksIDY1LCA4NCwgNjksIDIxMCwgNzEsIDgyLCA2OSwgNjUsIAotICAgIDIxMiwgNzEsIDgyLCA2NSwgODYsIDY5LCA4OSwgNjUsIDgyLCAxOTYsIDcxLCA4MiwgNjUsIDg2LCA2OSwgNDUsIDc3LCA2NSwgCi0gICAgNjcsIDgyLCA3OSwgNzgsIDEyOCwgNzEsIDgyLCA2NSwgODYsIDY5LCA0NSwgNjUsIDY3LCA4NSwgODQsIDY5LCA0NSwgNzEsIAotICAgIDgyLCA2NSwgODYsIDY5LCAxMjgsIDcxLCA4MiwgNjUsIDg2LCAxOTcsIDcxLCA4MiwgNjUsIDg0LCA2OSwgODIsIDEyOCwgCi0gICAgNzEsIDgyLCA2NSwgODMsIDgzLCAxMjgsIDcxLCA4MiwgNjUsIDgzLCAyMTEsIDcxLCA4MiwgNjUsIDgwLCA3MiwgNjksIDc3LCAKLSAgICAxOTcsIDcxLCA4MiwgNjUsIDgwLCA2OSwgODMsIDEyOCwgNzEsIDgyLCA2NSwgNzcsIDc3LCAxOTMsIDcxLCA4MiwgNjUsIAotICAgIDczLCA3OCwgMTI4LCA3MSwgODIsIDY1LCA2OCwgODUsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDcxLCA4MiwgNjUsIDY3LCA2OSwgCi0gICAgMTI4LCA3MSwgODIsIDY1LCA2NywgMTk3LCA3MSwgODAsIDY1LCAxMjgsIDcxLCA3OSwgODIsIDg0LCA3MiwgNzcsIDczLCAKLSAgICA3NSwgNzksIDIwNiwgNzEsIDc5LCA4MiwgODQsIDEyOCwgNzEsIDc5LCA4MiwgNzEsIDc5LCA4NCwgNjksIDgyLCA3MywgCi0gICAgMTI4LCA3MSwgNzksIDgyLCA3MSwgNzksIDgzLCA4OSwgNzgsIDg0LCA3MiwgNjksIDg0LCA3OSwgNzgsIDEyOCwgNzEsIDc5LCAKLSAgICA4MiwgNzEsIDc5LCAyMDYsIDcxLCA3OSwgODIsIDcxLCA3MywgMTI4LCA3MSwgNzksIDgyLCA2NSwgMTI4LCA3MSwgNzksIAotICAgIDc5LCAxOTYsIDcxLCA3OSwgNzgsIDcxLCAxMjgsIDcxLCA3OSwgNzYsIDY4LCAxMjgsIDcxLCA3OSwgNzUsIDEyOCwgNzEsIAotICAgIDc5LCA3MywgNzgsIDE5OSwgNzEsIDc5LCA2NiwgNzYsIDczLCA3OCwgMTI4LCA3MSwgNzksIDY1LCA3NiwgMTI4LCA3MSwgCi0gICAgNzksIDY1LCAyMDQsIDcxLCA3OSwgNjUsIDEyOCwgNzEsIDc4LCA4OSwgNzMsIDgzLCAxMjgsIDcxLCA3OCwgNjUsIDg2LCAKLSAgICA3MywgODksIDY1LCA3OCwgNzMsIDEyOCwgNzEsIDc2LCA3OSwgODcsIDczLCA3OCwgMTk5LCA3MSwgNzYsIDc5LCA4NCwgODQsIAotICAgIDY1LCAyMDQsIDcxLCA3NiwgNzksIDY2LCAxOTcsIDcxLCA3NiwgNzMsIDgzLCA4MywgNjUsIDc4LCA2OCwgMjA3LCA3MSwgCi0gICAgNzYsIDY5LCA3MywgNjcsIDIwMCwgNzEsIDc2LCA2NSwgNzEsIDc5LCA3NiwgNzMsIDEyOCwgNzEsIDc2LCA2NSwgMTI4LCAKLSAgICA3MSwgNzQsIDY5LCAxMjgsIDcxLCA3MywgODgsIDEyOCwgNzEsIDczLCA4NCwgMTI4LCA3MSwgNzMsIDgzLCA3MiwgMTI4LCAKLSAgICA3MSwgNzMsIDgzLCAyMDAsIDcxLCA3MywgODMsIDY1LCA3NiwgMTI4LCA3MSwgNzMsIDgyLCA4NSwgNjgsIDY1LCA2NSwgCi0gICAgMTI4LCA3MSwgNzMsIDgyLCA3NiwgMTI4LCA3MSwgNzMsIDgyLCA1MSwgMTI4LCA3MSwgNzMsIDgyLCAxNzksIDcxLCA3MywgCi0gICAgODIsIDUwLCAxMjgsIDcxLCA3MywgODIsIDE3OCwgNzEsIDczLCA4MCwgMTI4LCA3MSwgNzMsIDc4LCA3MywgNzMsIDEyOCwgCi0gICAgNzEsIDczLCA3NywgNjksIDc2LCAxMjgsIDcxLCA3MywgNzcsIDY5LCAyMDQsIDcxLCA3MywgNzcsIDEyOCwgNzEsIDczLCAKLSAgICA3MSwgNjUsIDEyOCwgNzEsIDczLCA2OSwgODQsIDEyOCwgNzEsIDczLCA2OCwgNzMsIDc3LCAxMjgsIDcxLCA3MywgNjYsIAotICAgIDY2LCA3OSwgODUsIDIxMSwgNzEsIDczLCA2NiwgNjUsIDEyOCwgNzEsIDczLCA1MiwgMTI4LCA3MSwgNzMsIDE4MCwgNzEsIAotICAgIDcyLCA5MCwgMTI4LCA3MSwgNzIsIDg3LCA2NSwgMTI4LCA3MSwgNzIsIDg1LCA3OCwgNzgsIDY1LCAxMjgsIDcxLCA3MiwgCi0gICAgODUsIDc4LCA3OCwgMTkzLCA3MSwgNzIsIDg1LCAxMjgsIDcxLCA3MiwgNzksIDg1LCAxMjgsIDcxLCA3MiwgNzksIDgzLCAKLSAgICA4NCwgMTI4LCA3MSwgNzIsIDc5LCAxMjgsIDcxLCA3MiwgNzMsIDEyOCwgNzEsIDcyLCA3MiwgNjUsIDEyOCwgNzEsIDcyLCAKLSAgICA2OSwgODUsIDg4LCAxMjgsIDcxLCA3MiwgNjksIDg1LCA3OCwgMTI4LCA3MSwgNzIsIDY5LCA4NSwgNzEsIDcyLCA2OSwgODUsIAotICAgIDY1LCA2OSwgNzcsIDEyOCwgNzEsIDcyLCA2OSwgODUsIDcxLCA3MiwgNjksIDc4LCAxMjgsIDcxLCA3MiwgNjksIDg1LCA2NSwgCi0gICAgNjksIDgyLCA2NSwgNjksIDEyOCwgNzEsIDcyLCA2OSwgODUsIDY1LCA2OSwgNzEsIDcyLCA2OSwgODUsIDY1LCA2OSwgMTI4LCAKLSAgICA3MSwgNzIsIDY5LCA4NCwgMTI4LCA3MSwgNzIsIDY5LCA2OSwgMTI4LCA3MSwgNzIsIDY5LCAxMjgsIDcxLCA3MiwgMTk3LCAKLSAgICA3MSwgNzIsIDY1LCA4OSwgNzgsIDEyOCwgNzEsIDcyLCA2NSwgODIsIDY1LCA2OSwgMTI4LCA3MSwgNzIsIDY1LCA4MCwgCi0gICAgMTI4LCA3MSwgNzIsIDY1LCA3OCwgMTI4LCA3MSwgNzIsIDY1LCA3NywgNjUsIDc2LCAxMjgsIDcxLCA3MiwgNjUsIDczLCAKLSAgICA3OCwgODUsIDEyOCwgNzEsIDcyLCA2NSwgNzMsIDc4LCAxMjgsIDcxLCA3MiwgNjUsIDczLCAyMDYsIDcxLCA3MiwgNjUsIAotICAgIDY4LCAxMjgsIDcxLCA3MiwgNjUsIDY1LCA3NywgNjUsIDY5LCAxMjgsIDcxLCA3MiwgNjUsIDY1LCAxMjgsIDcxLCA3MiwgCi0gICAgNjUsIDEyOCwgNzEsIDcxLCA4NywgNzMsIDEyOCwgNzEsIDcxLCA4NywgNjksIDY5LCAxMjgsIDcxLCA3MSwgODcsIDY5LCAKLSAgICAxMjgsIDcxLCA3MSwgODcsIDY1LCA2NSwgMTI4LCA3MSwgNzEsIDg3LCA2NSwgMTI4LCA3MSwgNzEsIDg1LCA4OCwgMTI4LCAKLSAgICA3MSwgNzEsIDg1LCA4NCwgMTI4LCA3MSwgNzEsIDg1LCA4MiwgODgsIDEyOCwgNzEsIDcxLCA4NSwgODIsIDEyOCwgNzEsIAotICAgIDcxLCA4NSwgNzksIDg4LCAxMjgsIDcxLCA3MSwgODUsIDc5LCA4NCwgMTI4LCA3MSwgNzEsIDg1LCA3OSwgODAsIDEyOCwgCi0gICAgNzEsIDcxLCA4NSwgNzksIDEyOCwgNzEsIDcxLCA3OSwgODgsIDEyOCwgNzEsIDcxLCA3OSwgODQsIDEyOCwgNzEsIDcxLCAKLSAgICA3OSwgODAsIDEyOCwgNzEsIDcxLCA3MywgODgsIDEyOCwgNzEsIDcxLCA3MywgODQsIDEyOCwgNzEsIDcxLCA3MywgNjksIAotICAgIDg4LCAxMjgsIDcxLCA3MSwgNzMsIDY5LCA4MCwgMTI4LCA3MSwgNzEsIDczLCA2OSwgMTI4LCA3MSwgNzEsIDY5LCA4OCwgCi0gICAgMTI4LCA3MSwgNzEsIDY5LCA4NCwgMTI4LCA3MSwgNzEsIDY5LCA4MCwgMTI4LCA3MSwgNzEsIDY1LCA4OCwgMTI4LCA3MSwgCi0gICAgNzEsIDY1LCA4NCwgMTI4LCA3MSwgNzEsIDY1LCA2NSwgMTI4LCA3MSwgNjksIDg0LCAxOTMsIDcxLCA2OSwgODMsIDg0LCAKLSAgICA4NSwgODIsIDY5LCAxMjgsIDcxLCA2OSwgODMsIDcyLCA4NSwgMTI4LCA3MSwgNjksIDgzLCA3MiwgODQsIDczLCA3OCwgCi0gICAgMTI4LCA3MSwgNjksIDgzLCA3MiwgODQsIDczLCAyMDYsIDcxLCA2OSwgODMsIDcyLCA1MCwgMTI4LCA3MSwgNjksIDgyLCAKLSAgICA4MywgNzIsIDY1LCA4OSwgNzMsIDc3LCAxMjgsIDcxLCA2OSwgODIsIDc3LCA2NSwgMjA2LCA3MSwgNjksIDgyLCA2OSwgODMsIAotICAgIDcyLCAxMjgsIDcxLCA2OSwgODIsIDY5LCA4MywgMjAwLCA3MSwgNjksIDc5LCA3NywgNjksIDg0LCA4MiwgNzMsIDY3LCA2NSwgCi0gICAgNzYsIDc2LCAyMTcsIDcxLCA2OSwgNzksIDc3LCA2OSwgODQsIDgyLCA3MywgMTk1LCA3MSwgNjksIDc4LCA4NCwgNzYsIAotICAgIDE5NywgNzEsIDY5LCA3OCwgNzMsIDg0LCA3MywgODYsIDY5LCAxMjgsIDcxLCA2OSwgNzgsIDczLCA3NSwgMjAxLCA3MSwgCi0gICAgNjksIDc4LCA2OSwgODIsIDczLCAxOTUsIDcxLCA2OSwgNzcsIDczLCA3OCwgNzMsIDEyOCwgNzEsIDY5LCA3NywgNzMsIDc4LCAKLSAgICA2NSwgODQsIDczLCA3OSwgMjA2LCA3MSwgNjksIDIwNSwgNzEsIDY5LCA2OCwgNzksIDc2LCA2NSwgMTI4LCA3MSwgNjksIAotICAgIDY4LCA2OSwgMTI4LCA3MSwgNjksIDY2LCAyMDcsIDcxLCA2OSwgNjYsIDE5MywgNzEsIDY5LCA2NSwgODIsIDEyOCwgNzEsIAotICAgIDY5LCA2NSwgMjEwLCA3MSwgNjgsIDY1LCA3OCwgMTI4LCA3MSwgNjcsIDczLCA3MSwgMTI4LCA3MSwgNjcsIDY1LCAyMDYsIAotICAgIDcxLCA2NiwgNzksIDc4LCAxMjgsIDcxLCA2NiwgNzMsIDY5LCAxOTcsIDcxLCA2NiwgNjksIDg1LCA4OCwgMTI4LCA3MSwgCi0gICAgNjYsIDY5LCA4NCwgMTI4LCA3MSwgNjYsIDY1LCA4OSwgNzMsIDEyOCwgNzEsIDY2LCA2NSwgNzUsIDg1LCA4MiwgODUsIDc4LCAKLSAgICA2OSwgNzgsIDEyOCwgNzEsIDY2LCAxMjgsIDcxLCA2NSwgODksIDY1LCA3OCwgODUsIDc1LCA3MywgODQsIDg0LCA2NSwgCi0gICAgMTI4LCA3MSwgNjUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA3MSwgNjUsIDg5LCAxMjgsIDcxLCA2NSwgODUsIDc4LCAKLSAgICA4NCwgNzYsIDY5LCA4NCwgMTI4LCA3MSwgNjUsIDg0LCA3MiwgNjksIDgyLCA3MywgNzgsIDcxLCAxMjgsIDcxLCA2NSwgODQsIAotICAgIDcyLCA2OSwgODIsIDczLCA3OCwgMTk5LCA3MSwgNjUsIDg0LCA2OSwgMTI4LCA3MSwgNjUsIDgzLCA3MiwgNjUsIDc4LCAKLSAgICAxMjgsIDcxLCA2NSwgODIsIDgzLCA3MiwgODUsIDc4LCA3MywgMTI4LCA3MSwgNjUsIDgyLCA3OSwgNzgsIDEyOCwgNzEsIAotICAgIDY1LCA4MiwgNzcsIDY5LCA3OCwgODQsIDEyOCwgNzEsIDY1LCA4MiwgNjgsIDY5LCA3OCwgMTI4LCA3MSwgNjUsIDgyLCA1MSwgCi0gICAgMTI4LCA3MSwgNjUsIDgwLCA4MCwgNjksIDE5NiwgNzEsIDY1LCAyMDgsIDcxLCA2NSwgNzgsIDc3LCA2NSwgMTI4LCA3MSwgCi0gICAgNjUsIDc4LCA3MSwgNzMsIDY1LCAxMjgsIDcxLCA2NSwgNzgsIDY4LCAxOTMsIDcxLCA2NSwgNzgsIDUwLCAxMjgsIDcxLCAKLSAgICA2NSwgNzgsIDE3OCwgNzEsIDY1LCA3NywgNzcsIDY1LCAxMjgsIDcxLCA2NSwgNzcsIDc2LCA2NSwgMTI4LCA3MSwgNjUsIAotICAgIDc3LCA3NiwgMTI4LCA3MSwgNjUsIDc3LCA2OSwgMTI4LCA3MSwgNjUsIDc3LCAxOTcsIDcxLCA2NSwgNzcsIDY1LCA3OCwgCi0gICAgMTI4LCA3MSwgNjUsIDc3LCA2NSwgNzYsIDEyOCwgNzEsIDY1LCA3NywgNjUsIDIwNCwgNzEsIDY1LCA3MSwgMTI4LCA3MSwgCi0gICAgNjUsIDcwLCAxMjgsIDcxLCA2NSwgMTk4LCA3MSwgNjUsIDY5LCA4NCwgODQsIDY1LCA0NSwgODAsIDczLCA3NiwgNzYsIDY1LCAKLSAgICAxMjgsIDcxLCA2NSwgNjgsIDc5LCA3NiwgMTI4LCA3MSwgNjUsIDY4LCAxMjgsIDcxLCA2NSwgMTk2LCA3MSwgNjUsIDY2LCAKLSAgICA2NSwgMTI4LCA3MSwgNjUsIDY2LCAxOTMsIDcxLCA2NSwgNjUsIDcwLCA4NSwgMTI4LCA3MSwgNjUsIDE3OCwgNzEsIDQ4LCAKLSAgICA1MywgNTIsIDEyOCwgNzEsIDQ4LCA1MywgNTEsIDEyOCwgNzEsIDQ4LCA1MywgNTAsIDEyOCwgNzEsIDQ4LCA1MywgNDksIAotICAgIDEyOCwgNzEsIDQ4LCA1MywgNDgsIDEyOCwgNzEsIDQ4LCA1MiwgNTcsIDEyOCwgNzEsIDQ4LCA1MiwgNTYsIDEyOCwgNzEsIAotICAgIDQ4LCA1MiwgNTUsIDEyOCwgNzEsIDQ4LCA1MiwgNTQsIDEyOCwgNzEsIDQ4LCA1MiwgNTMsIDY1LCAxMjgsIDcxLCA0OCwgCi0gICAgNTIsIDUzLCAxMjgsIDcxLCA0OCwgNTIsIDUyLCAxMjgsIDcxLCA0OCwgNTIsIDUxLCA2NSwgMTI4LCA3MSwgNDgsIDUyLCAKLSAgICA1MSwgMTI4LCA3MSwgNDgsIDUyLCA1MCwgMTI4LCA3MSwgNDgsIDUyLCA0OSwgMTI4LCA3MSwgNDgsIDUyLCA0OCwgMTI4LCAKLSAgICA3MSwgNDgsIDUxLCA1NywgMTI4LCA3MSwgNDgsIDUxLCA1NiwgMTI4LCA3MSwgNDgsIDUxLCA1NSwgNjUsIDEyOCwgNzEsIAotICAgIDQ4LCA1MSwgNTUsIDEyOCwgNzEsIDQ4LCA1MSwgNTQsIDY1LCAxMjgsIDcxLCA0OCwgNTEsIDU0LCAxMjgsIDcxLCA0OCwgCi0gICAgNTEsIDUzLCAxMjgsIDcxLCA0OCwgNTEsIDUyLCAxMjgsIDcxLCA0OCwgNTEsIDUxLCAxMjgsIDcxLCA0OCwgNTEsIDUwLCAKLSAgICAxMjgsIDcxLCA0OCwgNTEsIDQ5LCAxMjgsIDcxLCA0OCwgNTEsIDQ4LCAxMjgsIDcxLCA0OCwgNTAsIDU3LCAxMjgsIDcxLCAKLSAgICA0OCwgNTAsIDU2LCAxMjgsIDcxLCA0OCwgNTAsIDU1LCAxMjgsIDcxLCA0OCwgNTAsIDU0LCA2NSwgMTI4LCA3MSwgNDgsIAotICAgIDUwLCA1NCwgMTI4LCA3MSwgNDgsIDUwLCA1MywgMTI4LCA3MSwgNDgsIDUwLCA1MiwgMTI4LCA3MSwgNDgsIDUwLCA1MSwgCi0gICAgMTI4LCA3MSwgNDgsIDUwLCA1MCwgMTI4LCA3MSwgNDgsIDUwLCA0OSwgMTI4LCA3MSwgNDgsIDUwLCA0OCwgNjUsIDEyOCwgCi0gICAgNzEsIDQ4LCA1MCwgNDgsIDEyOCwgNzEsIDQ4LCA0OSwgNTcsIDEyOCwgNzEsIDQ4LCA0OSwgNTYsIDEyOCwgNzEsIDQ4LCAKLSAgICA0OSwgNTUsIDEyOCwgNzEsIDQ4LCA0OSwgNTQsIDEyOCwgNzEsIDQ4LCA0OSwgNTMsIDEyOCwgNzEsIDQ4LCA0OSwgNTIsIAotICAgIDEyOCwgNzEsIDQ4LCA0OSwgNTEsIDEyOCwgNzEsIDQ4LCA0OSwgNTAsIDEyOCwgNzEsIDQ4LCA0OSwgNDksIDY1LCAxMjgsIAotICAgIDcxLCA0OCwgNDksIDQ5LCAxMjgsIDcxLCA0OCwgNDksIDQ4LCAxMjgsIDcxLCA0OCwgNDgsIDU3LCAxMjgsIDcxLCA0OCwgCi0gICAgNDgsIDU2LCAxMjgsIDcxLCA0OCwgNDgsIDU1LCA2NiwgMTI4LCA3MSwgNDgsIDQ4LCA1NSwgNjUsIDEyOCwgNzEsIDQ4LCAKLSAgICA0OCwgNTUsIDEyOCwgNzEsIDQ4LCA0OCwgNTQsIDY1LCAxMjgsIDcxLCA0OCwgNDgsIDU0LCAxMjgsIDcxLCA0OCwgNDgsIAotICAgIDUzLCAxMjgsIDcxLCA0OCwgNDgsIDUyLCAxMjgsIDcxLCA0OCwgNDgsIDUxLCAxMjgsIDcxLCA0OCwgNDgsIDUwLCAxMjgsIAotICAgIDcxLCA0OCwgNDgsIDQ5LCAxMjgsIDcwLCA4OSwgODgsIDEyOCwgNzAsIDg5LCA4NCwgMTI4LCA3MCwgODksIDgwLCAxMjgsIAotICAgIDcwLCA4OSwgNjUsIDEyOCwgNzAsIDg3LCA3MywgMTI4LCA3MCwgODcsIDY5LCA2OSwgMTI4LCA3MCwgODcsIDY5LCAxMjgsIAotICAgIDcwLCA4NywgNjUsIDY1LCAxMjgsIDcwLCA4NywgNjUsIDEyOCwgNzAsIDg1LCA4OCwgMTI4LCA3MCwgODUsIDg0LCAxMjgsIAotICAgIDcwLCA4NSwgODMsIDY5LCAxMjgsIDcwLCA4NSwgODMsIDE5MywgNzAsIDg1LCA4MiwgODgsIDEyOCwgNzAsIDg1LCA4MCwgCi0gICAgMTI4LCA3MCwgODUsIDc4LCA2OSwgODIsIDY1LCAyMDQsIDcwLCA4NSwgNzgsIDY3LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCAKLSAgICA3MCwgODUsIDc2LCA3NiwgNzgsIDY5LCA4MywgODMsIDEyOCwgNzAsIDg1LCA3NiwgMjA0LCA3MCwgODUsIDc0LCA3MywgCi0gICAgMTI4LCA3MCwgODUsIDY5LCA4NCwgMTI4LCA3MCwgODUsIDY5LCAyMDQsIDcwLCA4NSwgNjksIDEyOCwgNzAsIDg0LCA3MiwgCi0gICAgNzksIDgyLCAxOTMsIDcwLCA4MiwgNzksIDg3LCA3OCwgNzMsIDc4LCA3MSwgMTI4LCA3MCwgODIsIDc5LCA4NywgNzgsIDczLCAKLSAgICA3OCwgMTk5LCA3MCwgODIsIDc5LCA4NywgNzgsIDEyOCwgNzAsIDgyLCA3OSwgNzgsIDg0LCA0NSwgODQsIDczLCA3NiwgODQsIAotICAgIDY5LCAxOTYsIDcwLCA4MiwgNzksIDc4LCA4NCwgNDUsIDcwLCA2NSwgNjcsIDczLCA3OCwgMTk5LCA3MCwgODIsIDc5LCAKLSAgICAyMDUsIDcwLCA4MiwgNzksIDcxLCAxMjgsIDcwLCA4MiwgNzksIDE5OSwgNzAsIDgyLCA3MywgODQsIDg1LCAxMjgsIDcwLCAKLSAgICA4MiwgNzMsIDY5LCA4MywgMTI4LCA3MCwgODIsIDczLCA2OSwgMTk2LCA3MCwgODIsIDczLCA2NywgNjUsIDg0LCA3MywgODYsIAotICAgIDY5LCAxMjgsIDcwLCA4MiwgNjksIDg0LCA2NiwgNzksIDY1LCA4MiwgNjgsIDEyOCwgNzAsIDgyLCA2OSwgNzgsIDY3LCAKLSAgICAyMDAsIDcwLCA4MiwgNjksIDY5LCAxMjgsIDcwLCA4MiwgNjksIDE5NywgNzAsIDgyLCA2NSwgNzgsIDE5NSwgNzAsIDgyLCAKLSAgICA2NSwgNzcsIDY5LCAxMjgsIDcwLCA4MiwgNjUsIDcxLCA4MiwgNjUsIDc4LCA4NCwgMTI4LCA3MCwgODIsIDY1LCA3MSwgNzcsIAotICAgIDY5LCA3OCwgODQsIDEyOCwgNzAsIDgyLCA2NSwgNjcsIDg0LCA3MywgNzksIDIwNiwgNzAsIDc5LCA4OCwgMTI4LCA3MCwgCi0gICAgNzksIDg1LCA4MiwgODQsIDY5LCA2OSwgNzgsIDEyOCwgNzAsIDc5LCA4NSwgODIsIDg0LCA2OSwgNjksIDIwNiwgNzAsIDc5LCAKLSAgICA4NSwgODIsIDQ1LCA4NCwgNzIsIDczLCA4MiwgODQsIDg5LCAxMjgsIDcwLCA3OSwgODUsIDgyLCA0NSwgODMsIDg0LCA4MiwgCi0gICAgNzMsIDc4LCAxOTksIDcwLCA3OSwgODUsIDgyLCA0NSwgODAsIDY5LCA4MiwgNDUsIDY5LCAyMDUsIDcwLCA3OSwgODUsIDgyLCAKLSAgICA0NSwgNzYsIDczLCA3OCwgMTk3LCA3MCwgNzksIDg1LCAyMTAsIDcwLCA3OSwgODUsIDc4LCA4NCwgNjUsIDczLCA3OCwgCi0gICAgMTI4LCA3MCwgNzksIDgzLCA4NCwgNjksIDgyLCA3MywgNzgsIDcxLCAxMjgsIDcwLCA3OSwgODIsIDg0LCA4OSwgMTI4LCAKKyAgICA3OSwgMTI4LCA3MiwgODQsIDgzLCAxMjgsIDcyLCA4NCwgNzQsIDEyOCwgNzIsIDgyLCA4OSwgODYsIDc4LCA3MywgMTkzLCAKKyAgICA3MiwgODAsIDg3LCA3MSwgMTI4LCA3MiwgODAsIDY1LCAxMjgsIDcyLCA4MCwgMTI4LCA3MiwgNzksIDg1LCA4MywgMTk3LCAKKyAgICA3MiwgNzksIDg1LCA4MiwgNzEsIDc2LCA2NSwgODMsIDgzLCAxMjgsIDcyLCA3OSwgODUsIDgyLCA3MSwgNzYsIDY1LCA4MywgCisgICAgMjExLCA3MiwgNzksIDg1LCA4MiwgMTI4LCA3MiwgNzksIDg1LCAyMTAsIDcyLCA3OSwgODQsIDY5LCA3NiwgMTI4LCA3MiwgCisgICAgNzksIDg0LCA2NSwgMTI4LCA3MiwgNzksIDgzLCA4MCwgNzMsIDg0LCA2NSwgNzYsIDEyOCwgNzIsIDc5LCA4MiwgODMsIDY5LCAKKyAgICAxMjgsIDcyLCA3OSwgODIsIDgzLCAxOTcsIDcyLCA3OSwgODIsIDc4LCA4MywgMTI4LCA3MiwgNzksIDgyLCA3MywgOTAsIAorICAgIDc5LCA3OCwgODQsIDY1LCA3NiwgNzYsIDIxNywgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCAKKyAgICA0OCwgNTQsIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNTQsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIAorICAgIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCAKKyAgICA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgCisgICAgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNDksIAorICAgIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTQsIDQ1LCA0OCwgNDgsIDEyOCwgCisgICAgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIAorICAgIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCAKKyAgICA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgCisgICAgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIAorICAgIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCAKKyAgICA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgCisgICAgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTMsIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIAorICAgIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCAKKyAgICA2NSwgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgCisgICAgNzYsIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIAorICAgIDQ1LCA0OCwgNTIsIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCAKKyAgICA0OCwgNTIsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNTIsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTIsIAorICAgIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCAKKyAgICA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgCisgICAgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTIsIAorICAgIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTEsIDEyOCwgCisgICAgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIAorICAgIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCAKKyAgICA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTEsIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgCisgICAgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIAorICAgIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCAKKyAgICA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgCisgICAgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIAorICAgIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCAKKyAgICA2NSwgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgCisgICAgNzYsIDQ1LCA0OCwgNTAsIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIAorICAgIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNTQsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCAKKyAgICA0OCwgNDksIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgCisgICAgNDksIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIAorICAgIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCAKKyAgICA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgCisgICAgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDksIDQ1LCA0OCwgNDgsIAorICAgIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTQsIDEyOCwgCisgICAgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTMsIDEyOCwgNzIsIAorICAgIDc5LCA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTIsIDEyOCwgNzIsIDc5LCAKKyAgICA4MiwgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTEsIDEyOCwgNzIsIDc5LCA4MiwgCisgICAgNzMsIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNTAsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIAorICAgIDkwLCA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNDksIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCAKKyAgICA3OSwgNzgsIDg0LCA2NSwgNzYsIDQ1LCA0OCwgNDgsIDQ1LCA0OCwgNDgsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDkwLCA3OSwgCisgICAgNzgsIDg0LCA2NSwgNzYsIDEyOCwgNzIsIDc5LCA4MiwgNzMsIDEyOCwgNzIsIDc5LCA4MiwgMTkzLCA3MiwgNzksIDc5LCAKKyAgICA4MiwgODUsIDEyOCwgNzIsIDc5LCA3OSwgODAsIDEyOCwgNzIsIDc5LCA3OSwgNzgsIDEyOCwgNzIsIDc5LCA3OSwgNzUsIAorICAgIDY5LCAxOTYsIDcyLCA3OSwgNzgsIDY5LCA4OSwgNjYsIDY5LCA2OSwgMTI4LCA3MiwgNzksIDc4LCA2OSwgMjE3LCA3MiwgCisgICAgNzksIDc3LCA3OSwgODQsIDcyLCA2OSwgODQsIDczLCA2NywgMTI4LCA3MiwgNzksIDc3LCA3OSwgODQsIDcyLCA2OSwgODQsIAorICAgIDczLCAxOTUsIDcyLCA3OSwgNzYsIDY5LCAxMjgsIDcyLCA3OSwgNzYsIDY4LCA3MywgNzgsIDE5OSwgNzIsIDc5LCA3NiwgCisgICAgNjUsIDc3LCAxMjgsIDcyLCA3OSwgNzYsIDY1LCAyMDUsIDcyLCA3OSwgNzUsIDY1LCAxMjgsIDcyLCA3OSwgNzMsIDEyOCwgCisgICAgNzIsIDc5LCA2NywgNzIsIDc5LCAxMjgsIDcyLCA3OCwgODUsIDg0LCAxMjgsIDcyLCA3OCwgODUsIDc5LCA4OCwgMTI4LCAKKyAgICA3MiwgNzgsIDg1LCA3OSwgMTI4LCA3MiwgNzgsIDc5LCA4OCwgMTI4LCA3MiwgNzgsIDc5LCA4NCwgMTI4LCA3MiwgNzgsIAorICAgIDc5LCA4MCwgMTI4LCA3MiwgNzgsIDczLCA4OCwgMTI4LCA3MiwgNzgsIDczLCA4NCwgMTI4LCA3MiwgNzgsIDczLCA4MCwgCisgICAgMTI4LCA3MiwgNzgsIDczLCA2OSwgODgsIDEyOCwgNzIsIDc4LCA3MywgNjksIDg0LCAxMjgsIDcyLCA3OCwgNzMsIDY5LCAKKyAgICA4MCwgMTI4LCA3MiwgNzgsIDczLCA2OSwgMTI4LCA3MiwgNzgsIDczLCAxMjgsIDcyLCA3OCwgNjksIDg4LCAxMjgsIDcyLCAKKyAgICA3OCwgNjksIDgwLCAxMjgsIDcyLCA3OCwgNjksIDEyOCwgNzIsIDc4LCA2NSwgODgsIDEyOCwgNzIsIDc4LCA2NSwgODQsIAorICAgIDEyOCwgNzIsIDc4LCA2NSwgODAsIDEyOCwgNzIsIDc4LCA2NSwgMTI4LCA3MiwgNzcsIDg5LCA4OCwgMTI4LCA3MiwgNzcsIAorICAgIDg5LCA4MiwgODgsIDEyOCwgNzIsIDc3LCA4OSwgODIsIDEyOCwgNzIsIDc3LCA4OSwgODAsIDEyOCwgNzIsIDc3LCA4OSwgCisgICAgMTI4LCA3MiwgNzcsIDg1LCA4OCwgMTI4LCA3MiwgNzcsIDg1LCA4NCwgMTI4LCA3MiwgNzcsIDg1LCA4MiwgODgsIDEyOCwgCisgICAgNzIsIDc3LCA4NSwgODIsIDEyOCwgNzIsIDc3LCA4NSwgODAsIDEyOCwgNzIsIDc3LCA4NSwgNzksIDg4LCAxMjgsIDcyLCAKKyAgICA3NywgODUsIDc5LCA4MCwgMTI4LCA3MiwgNzcsIDg1LCA3OSwgMTI4LCA3MiwgNzcsIDg1LCAxMjgsIDcyLCA3NywgNzksIAorICAgIDg4LCAxMjgsIDcyLCA3NywgNzksIDg0LCAxMjgsIDcyLCA3NywgNzksIDgwLCAxMjgsIDcyLCA3NywgNzksIDEyOCwgNzIsIAorICAgIDc3LCA3MywgODgsIDEyOCwgNzIsIDc3LCA3MywgODQsIDEyOCwgNzIsIDc3LCA3MywgODAsIDEyOCwgNzIsIDc3LCA3MywgCisgICAgNjksIDg4LCAxMjgsIDcyLCA3NywgNzMsIDY5LCA4MCwgMTI4LCA3MiwgNzcsIDczLCA2OSwgMTI4LCA3MiwgNzcsIDczLCAKKyAgICAxMjgsIDcyLCA3NywgNjksIDEyOCwgNzIsIDc3LCA2NSwgODgsIDEyOCwgNzIsIDc3LCA2NSwgODQsIDEyOCwgNzIsIDc3LCAKKyAgICA2NSwgODAsIDEyOCwgNzIsIDc3LCA2NSwgMTI4LCA3MiwgNzYsIDg5LCA4OCwgMTI4LCA3MiwgNzYsIDg5LCA4NCwgMTI4LCAKKyAgICA3MiwgNzYsIDg5LCA4MiwgODgsIDEyOCwgNzIsIDc2LCA4OSwgODIsIDEyOCwgNzIsIDc2LCA4OSwgODAsIDEyOCwgNzIsIAorICAgIDc2LCA4OSwgMTI4LCA3MiwgNzYsIDg1LCA4OCwgMTI4LCA3MiwgNzYsIDg1LCA4NCwgMTI4LCA3MiwgNzYsIDg1LCA4MiwgCisgICAgODgsIDEyOCwgNzIsIDc2LCA4NSwgODIsIDEyOCwgNzIsIDc2LCA4NSwgODAsIDEyOCwgNzIsIDc2LCA4NSwgNzksIDg4LCAKKyAgICAxMjgsIDcyLCA3NiwgODUsIDc5LCA4MCwgMTI4LCA3MiwgNzYsIDg1LCA3OSwgMTI4LCA3MiwgNzYsIDg1LCAxMjgsIDcyLCAKKyAgICA3NiwgNzksIDg4LCAxMjgsIDcyLCA3NiwgNzksIDgwLCAxMjgsIDcyLCA3NiwgNzksIDEyOCwgNzIsIDc2LCA3MywgODgsIAorICAgIDEyOCwgNzIsIDc2LCA3MywgODQsIDEyOCwgNzIsIDc2LCA3MywgODAsIDEyOCwgNzIsIDc2LCA3MywgNjksIDg4LCAxMjgsIAorICAgIDcyLCA3NiwgNzMsIDY5LCA4MCwgMTI4LCA3MiwgNzYsIDczLCA2OSwgMTI4LCA3MiwgNzYsIDczLCAxMjgsIDcyLCA3NiwgCisgICAgNjksIDg4LCAxMjgsIDcyLCA3NiwgNjksIDgwLCAxMjgsIDcyLCA3NiwgNjksIDEyOCwgNzIsIDc2LCA2NSwgODgsIDEyOCwgCisgICAgNzIsIDc2LCA2NSwgODQsIDEyOCwgNzIsIDc2LCA2NSwgODAsIDEyOCwgNzIsIDc2LCA2NSwgMTI4LCA3MiwgNzUsIDEyOCwgCisgICAgNzIsIDczLCA5MCwgNjYsIDEyOCwgNzIsIDczLCA4MywgODQsIDc5LCA4MiwgNzMsIDE5NSwgNzIsIDczLCA4MiwgNzMsIDgxLCAKKyAgICAxMjgsIDcyLCA3MywgNzEsIDcyLCA0NSwgODMsIDgwLCA2OSwgNjksIDE5NiwgNzIsIDczLCA3MSwgNzIsIDQ1LCA4MiwgNjksIAorICAgIDg2LCA2OSwgODIsIDgzLCA2OSwgNjgsIDQ1LCAxODUsIDcyLCA3MywgNzEsIDcyLCA0NSwgNzIsIDY5LCA2OSwgNzYsIDY5LCAKKyAgICAxOTYsIDcyLCA3MywgNjksIDg4LCAxMjgsIDcyLCA3MywgNjksIDg1LCA3MiwgNDUsIDgzLCA3MywgNzksIDgzLCAxMjgsIAorICAgIDcyLCA3MywgNjksIDg1LCA3MiwgNDUsIDgyLCA3MywgNjksIDg1LCA3NiwgMTI4LCA3MiwgNzMsIDY5LCA4NSwgNzIsIDQ1LCAKKyAgICA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgNzIsIDczLCA2OSwgODUsIDcyLCA0NSwgNzgsIDczLCA2OSwgODUsIDc4LCAxMjgsIAorICAgIDcyLCA3MywgNjksIDg1LCA3MiwgNDUsIDc3LCA3MywgNjksIDg1LCA3NywgMTI4LCA3MiwgNzMsIDY5LCA4NSwgMjAwLCA3MiwgCisgICAgNzMsIDY5LCA4MiwgNzksIDcxLCA3NiwgODksIDgwLCA3MiwgNzMsIDE5NSwgNzIsIDczLCA2OSwgMTI4LCA3MiwgNzMsIDY4LCAKKyAgICA3MywgNzgsIDE5OSwgNzIsIDczLCA2OCwgNjksIDg0LCAxMjgsIDcyLCA3MywgNjgsIDY5LCAxMjgsIDcyLCA3MywgNjYsIAorICAgIDczLCA4MywgNjcsIDg1LCA4MywgMTI4LCA3MiwgNzIsIDg3LCA2NSwgMTI4LCA3MiwgNzIsIDg1LCAxMjgsIDcyLCA3MiwgCisgICAgNzMsIDEyOCwgNzIsIDcyLCA2OSwgNjksIDEyOCwgNzIsIDcyLCA2OSwgMTI4LCA3MiwgNzIsIDY1LCA2NSwgMTI4LCA3MiwgCisgICAgNzEsIDEyOCwgNzIsIDY5LCA4OCwgNzMsIDcwLCA3OSwgODIsIDIwNSwgNzIsIDY5LCA4OCwgNjUsIDcxLCA4MiwgNjUsIAorICAgIDIwNSwgNzIsIDY5LCA4OCwgNjUsIDcxLCA3OSwgNzgsIDEyOCwgNzIsIDY5LCA4MiwgODUsIDg0LCA4NSwgMTI4LCA3MiwgCisgICAgNjksIDgyLCA4NSwgMTI4LCA3MiwgNjksIDgyLCA3NywgNzMsIDg0LCA3MywgNjUsIDIwNiwgNzIsIDY5LCA4MiwgNzcsIDczLCAKKyAgICA3OSwgNzgsIDczLCA2NSwgMjA2LCA3MiwgNjksIDgyLCA3NywgNjksIDgzLCAxMjgsIDcyLCA2OSwgODIsIDY5LCAxMjgsIAorICAgIDcyLCA2OSwgODIsIDY2LCAxMjgsIDcyLCA2OSwgODIsIDY1LCA2OSwgODUsIDIwNSwgNzIsIDY5LCA3OCwgNzEsIDEyOCwgCisgICAgNzIsIDY5LCA3OCwgMTk5LCA3MiwgNjksIDc3LCA4MCwgMTI4LCA3MiwgNjksIDc2LCA3NywgNjksIDg0LCAxMjgsIDcyLCAKKyAgICA2OSwgNzYsIDc3LCA2OSwgMjEyLCA3MiwgNjksIDc2LCAyMDUsIDcyLCA2OSwgNzYsIDczLCA2NywgNzksIDgwLCA4NCwgNjksIAorICAgIDgyLCAxMjgsIDcyLCA2OSwgNzUsIDg1LCA4NCwgNjUsIDY1LCA4MiwgODUsIDEyOCwgNzIsIDY5LCA3MywgODMsIDY5LCA3MywgCisgICAgMTI4LCA3MiwgNjksIDY1LCA4NiwgODksIDEyOCwgNzIsIDY5LCA2NSwgODYsIDY5LCA3OCwgNzYsIDIxNywgNzIsIDY5LCAKKyAgICA2NSwgODYsIDY5LCA3OCwgMTI4LCA3MiwgNjksIDY1LCA4NiwgNjksIDIwNiwgNzIsIDY5LCA2NSwgODIsIDg0LCA4MywgCisgICAgMTI4LCA3MiwgNjksIDY1LCA4MiwgODQsIDQ1LCA4MywgNzIsIDY1LCA4MCwgNjksIDE5NiwgNzIsIDY5LCA2NSwgODIsIDg0LCAKKyAgICAxMjgsIDcyLCA2OSwgNjUsIDgyLCAyMTIsIDcyLCA2OSwgNjUsIDgyLCA0NSwgNzgsIDc5LCA0NSwgNjksIDg2LCA3MywgCisgICAgMjA0LCA3MiwgNjksIDY1LCA2OCwgODMsIDg0LCA4MiwgNzksIDc1LCA2OSwgMTI4LCA3MiwgNjksIDY1LCA2OCwgODMsIDg0LCAKKyAgICA3OSwgNzgsIDE5NywgNzIsIDY5LCA2NSwgNjgsIDgwLCA3MiwgNzksIDc4LCA2OSwgMTI4LCA3MiwgNjksIDY1LCA2OCwgNzMsIAorICAgIDc4LCA3MSwgMTI4LCA3MiwgNjYsIDY1LCA4MywgNjUsIDQ1LCA2OSwgODMsIDY1LCA4MywgMTkzLCA3MiwgNjYsIDY1LCA4MywgCisgICAgMTkzLCA3MiwgNjUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA3MiwgNjUsIDg2LCA2OSwgMTI4LCA3MiwgNjUsIDg1LCAKKyAgICA4MCwgODQsIDgzLCA4NCwgNzMsIDc3LCA3NywgNjksIDEyOCwgNzIsIDY1LCA4NCwgNzIsIDczLCAxMjgsIDcyLCA2NSwgODQsIAorICAgIDY5LCAxMjgsIDcyLCA2NSwgODQsIDY3LCA3MiwgNzMsIDc4LCAxOTksIDcyLCA2NSwgODQsIDY1LCAxOTgsIDcyLCA2NSwgCisgICAgODMsIDY5LCAyMTAsIDcyLCA2NSwgODMsIDY1LCA3OCwgODQsIDY1LCAxMjgsIDcyLCA2NSwgODIsIDgwLCA3OSwgNzksIDc4LCAKKyAgICAxMjgsIDcyLCA2NSwgODIsIDgwLCA3OSwgNzksIDIwNiwgNzIsIDY1LCA4MiwgNzcsIDc5LCA3OCwgNzMsIDY3LCAxMjgsIAorICAgIDcyLCA2NSwgODIsIDc1LCA3NiwgNjksIDY1LCAyMDYsIDcyLCA2NSwgODIsIDY4LCA3OCwgNjksIDgzLCA4MywgMTI4LCA3MiwgCisgICAgNjUsIDgyLCAxOTYsIDcyLCA2NSwgODAsIDgwLCAyMTcsIDcyLCA2NSwgNzgsIDg1LCA3OCwgNzksIDIwNywgNzIsIDY1LCAKKyAgICA3OCwgNzEsIDkwLCA3MiwgNzksIDIxMywgNzIsIDY1LCA3OCwgNjgsIDgzLCAxMjgsIDcyLCA2NSwgNzgsIDY4LCAyMTEsIAorICAgIDcyLCA2NSwgNzgsIDY4LCA3NiwgNjksIDgzLCAxMjgsIDcyLCA2NSwgNzgsIDY4LCA3NiwgNjksIDEyOCwgNzIsIDY1LCA3OCwgCisgICAgNjgsIDY2LCA2NSwgNzEsIDEyOCwgNzIsIDY1LCA3OCwgNjgsIDEyOCwgNzIsIDY1LCA3OCwgNDUsIDY1LCA3NSwgNjUsIDg0LCAKKyAgICAxMjgsIDcyLCA2NSwgNzcsIDkwLCA2NSwgMTI4LCA3MiwgNjUsIDc3LCA4MywgODQsIDY5LCAyMTAsIDcyLCA2NSwgNzcsIAorICAgIDc3LCA2OSwgODIsIDEyOCwgNzIsIDY1LCA3NywgNzcsIDY5LCAyMTAsIDcyLCA2NSwgNzcsIDY2LCA4NSwgODIsIDcxLCA2OSwgCisgICAgODIsIDEyOCwgNzIsIDY1LCA3NiwgODEsIDY1LCAxMjgsIDcyLCA2NSwgNzYsIDc5LCAxMjgsIDcyLCA2NSwgNzYsIDcwLCAKKyAgICA0NSwgNjcsIDczLCA4MiwgNjcsIDc2LCAxOTcsIDcyLCA2NSwgNzYsIDcwLCAxMjgsIDcyLCA2NSwgNzYsIDY2LCA2OSwgODIsIAorICAgIDY4LCAxMjgsIDcyLCA2NSwgNzYsIDY1LCA3OCwgODQsIDY1LCAxMjgsIDcyLCA2NSwgNzMsIDg0LCA4NSwgMTI4LCA3MiwgCisgICAgNjUsIDczLCA4MiwgNjcsIDg1LCA4NCwgMTI4LCA3MiwgNjUsIDczLCA4MiwgMTI4LCA3MiwgNjUsIDcxLCA3NiwgNjUsIAorICAgIDIxOCwgNzIsIDY1LCA3MSwgNzYsIDEyOCwgNzIsIDY1LCA3MCwgODUsIDc1LCA3MiwgNjUsIDEyOCwgNzIsIDY1LCA3MCwgCisgICAgODUsIDc1LCA3MiwgMTI4LCA3MiwgNjUsIDY5LCA3MSwgMjA0LCA3MiwgNjUsIDY1LCA4MiwgODUsIDEyOCwgNzIsIDY1LCAKKyAgICA2NSwgNzcsIDEyOCwgNzIsIDY1LCAxOTMsIDcyLCA2NSwgNDUsIDcyLCA2NSwgMTI4LCA3MiwgNDgsIDQ4LCA1NiwgMTI4LCAKKyAgICA3MiwgNDgsIDQ4LCA1NSwgMTI4LCA3MiwgNDgsIDQ4LCA1NCwgNjUsIDEyOCwgNzIsIDQ4LCA0OCwgNTQsIDEyOCwgNzIsIAorICAgIDQ4LCA0OCwgNTMsIDEyOCwgNzIsIDQ4LCA0OCwgNTIsIDEyOCwgNzIsIDQ4LCA0OCwgNTEsIDEyOCwgNzIsIDQ4LCA0OCwgCisgICAgNTAsIDEyOCwgNzIsIDQ4LCA0OCwgNDksIDEyOCwgNzIsIDQ1LCA4NCwgODksIDgwLCAxOTcsIDcxLCA4OSwgODUsIDEyOCwgCisgICAgNzEsIDg5LCA3OSwgNzgsIDEyOCwgNzEsIDg5LCA3OSwgMTI4LCA3MSwgODksIDczLCAxMjgsIDcxLCA4OSwgNzAsIDIxMywgCisgICAgNzEsIDg5LCA2OSwgNjksIDEyOCwgNzEsIDg5LCA2NSwgODMsIDEyOCwgNzEsIDg5LCA2NSwgNjUsIDEyOCwgNzEsIDg5LCAKKyAgICA2NSwgMTI4LCA3MSwgODksIDEyOCwgNzEsIDg3LCA4NSwgMTI4LCA3MSwgODcsIDczLCAxMjgsIDcxLCA4NywgNjksIDY5LCAKKyAgICAxMjgsIDcxLCA4NywgNjksIDEyOCwgNzEsIDg3LCA2NSwgNjUsIDEyOCwgNzEsIDg3LCA2NSwgMTI4LCA3MSwgODYsIDEyOCwgCisgICAgNzEsIDg1LCA4MiwgODUsIDgzLCA3MiwgMTI4LCA3MSwgODUsIDgyLCA4NSwgNzgsIDEyOCwgNzEsIDg1LCA4MiwgNjUsIDc3LCAKKyAgICA4NSwgODQsIDc5LCA3OCwgMTI4LCA3MSwgODUsIDgyLCA1NSwgMTI4LCA3MSwgODUsIDc4LCA4NSwgMTI4LCA3MSwgODUsIAorICAgIDc4LCAyMTMsIDcxLCA4NSwgMjA1LCA3MSwgODUsIDc2LCAxMjgsIDcxLCA4NSwgNzMsIDg0LCA2NSwgODIsIDEyOCwgNzEsIAorICAgIDg1LCAxOTksIDcxLCA4NSwgNjksIDcyLCAxMjgsIDcxLCA4NSwgNjksIDIwMCwgNzEsIDg1LCA2OCwgMTI4LCA3MSwgODUsIAorICAgIDE5NiwgNzEsIDg1LCA2NSwgODIsIDY4LCA4MywgNzcsIDY1LCA3OCwgMTI4LCA3MSwgODUsIDY1LCA4MiwgNjgsIDY5LCA2OCwgCisgICAgNzgsIDY5LCA4MywgODMsIDEyOCwgNzEsIDg1LCA2NSwgODIsIDY4LCA2OSwgMTk2LCA3MSwgODUsIDY1LCA4MiwgNjgsIAorICAgIDEyOCwgNzEsIDg1LCA2NSwgODIsIDY1LCA3OCwgMjAxLCA3MSwgODUsIDE5MywgNzEsIDg1LCAxNzgsIDcxLCA4NCwgNjksIAorICAgIDIxMCwgNzEsIDgzLCA4NSwgNzcsIDEyOCwgNzEsIDgzLCA4NSwgMjA1LCA3MSwgODIsIDIxMywgNzEsIDgyLCA3OSwgODcsIAorICAgIDczLCA3OCwgMTk5LCA3MSwgODIsIDc5LCA4NSwgNzgsIDY4LCAxMjgsIDcxLCA4MiwgNzksIDc4LCA4NCwgNzIsIDczLCA4MywgCisgICAgNzcsIDY1LCA4NCwgNjUsIDEyOCwgNzEsIDgyLCA3MywgNzgsIDc4LCA3MywgNzgsIDE5OSwgNzEsIDgyLCA3MywgNzcsIDY1LCAKKyAgICA2NywgNzMsIDc4LCAxOTksIDcxLCA4MiwgNjksIDcxLCA3OSwgODIsIDczLCA2NSwgMjA2LCA3MSwgODIsIDY5LCA2OSwgCisgICAgMjA2LCA3MSwgODIsIDY5LCA2NSwgODQsIDc4LCA2OSwgODMsIDgzLCAxMjgsIDcxLCA4MiwgNjksIDY1LCA4NCwgNjksIDgyLCAKKyAgICA0NSwgODQsIDcyLCA2NSwgNzgsIDEyOCwgNzEsIDgyLCA2OSwgNjUsIDg0LCA2OSwgODIsIDQ1LCA4NCwgNzIsIDY1LCAyMDYsIAorICAgIDcxLCA4MiwgNjksIDY1LCA4NCwgNjksIDIxMCwgNzEsIDgyLCA2OSwgNjUsIDIxMiwgNzEsIDgyLCA2NSwgODYsIDY5LCA4OSwgCisgICAgNjUsIDgyLCAxOTYsIDcxLCA4MiwgNjUsIDg2LCA2OSwgNDUsIDc3LCA2NSwgNjcsIDgyLCA3OSwgNzgsIDEyOCwgNzEsIDgyLCAKKyAgICA2NSwgODYsIDY5LCA0NSwgNjUsIDY3LCA4NSwgODQsIDY5LCA0NSwgNzEsIDgyLCA2NSwgODYsIDY5LCAxMjgsIDcxLCA4MiwgCisgICAgNjUsIDg2LCAxOTcsIDcxLCA4MiwgNjUsIDg0LCA2OSwgODIsIDEyOCwgNzEsIDgyLCA2NSwgODMsIDgzLCAxMjgsIDcxLCAKKyAgICA4MiwgNjUsIDgzLCAyMTEsIDcxLCA4MiwgNjUsIDgwLCA3MiwgNjksIDc3LCAxOTcsIDcxLCA4MiwgNjUsIDgwLCA2OSwgODMsIAorICAgIDEyOCwgNzEsIDgyLCA2NSwgNzcsIDc3LCAxOTMsIDcxLCA4MiwgNjUsIDczLCA3OCwgMTI4LCA3MSwgODIsIDY1LCA2OCwgCisgICAgODUsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDcxLCA4MiwgNjUsIDY3LCA2OSwgMTI4LCA3MSwgODIsIDY1LCA2NywgMTk3LCAKKyAgICA3MSwgODAsIDY1LCAxMjgsIDcxLCA3OSwgODIsIDg0LCA3MiwgNzcsIDczLCA3NSwgNzksIDIwNiwgNzEsIDc5LCA4MiwgODQsIAorICAgIDEyOCwgNzEsIDc5LCA4MiwgNzEsIDc5LCA4NCwgNjksIDgyLCA3MywgMTI4LCA3MSwgNzksIDgyLCA3MSwgNzksIDgzLCA4OSwgCisgICAgNzgsIDg0LCA3MiwgNjksIDg0LCA3OSwgNzgsIDEyOCwgNzEsIDc5LCA4MiwgNzEsIDc5LCAyMDYsIDcxLCA3OSwgODIsIDcxLCAKKyAgICA3MywgMTI4LCA3MSwgNzksIDgyLCA2NSwgMTI4LCA3MSwgNzksIDc5LCAxOTYsIDcxLCA3OSwgNzgsIDcxLCAxMjgsIDcxLCAKKyAgICA3OSwgNzYsIDY4LCAxMjgsIDcxLCA3OSwgNzUsIDEyOCwgNzEsIDc5LCA3MywgNzgsIDE5OSwgNzEsIDc5LCA2NiwgNzYsIAorICAgIDczLCA3OCwgMTI4LCA3MSwgNzksIDY1LCA3NiwgMTI4LCA3MSwgNzksIDY1LCAyMDQsIDcxLCA3OSwgNjUsIDEyOCwgNzEsIAorICAgIDc4LCA4OSwgNzMsIDgzLCAxMjgsIDcxLCA3OCwgNjUsIDg2LCA3MywgODksIDY1LCA3OCwgNzMsIDEyOCwgNzEsIDc2LCA3OSwgCisgICAgODcsIDczLCA3OCwgMTk5LCA3MSwgNzYsIDc5LCA4NCwgODQsIDY1LCAyMDQsIDcxLCA3NiwgNzksIDY2LCAxOTcsIDcxLCAKKyAgICA3NiwgNzMsIDgzLCA4MywgNjUsIDc4LCA2OCwgMjA3LCA3MSwgNzYsIDY5LCA3MywgNjcsIDIwMCwgNzEsIDc2LCA2NSwgNzEsIAorICAgIDc5LCA3NiwgNzMsIDEyOCwgNzEsIDc2LCA2NSwgMTI4LCA3MSwgNzQsIDY5LCAxMjgsIDcxLCA3MywgODgsIDEyOCwgNzEsIAorICAgIDczLCA4NCwgMTI4LCA3MSwgNzMsIDgzLCA3MiwgMTI4LCA3MSwgNzMsIDgzLCAyMDAsIDcxLCA3MywgODMsIDY1LCA3NiwgCisgICAgMTI4LCA3MSwgNzMsIDgyLCA4NSwgNjgsIDY1LCA2NSwgMTI4LCA3MSwgNzMsIDgyLCA3NiwgMTI4LCA3MSwgNzMsIDgyLCAKKyAgICA1MSwgMTI4LCA3MSwgNzMsIDgyLCAxNzksIDcxLCA3MywgODIsIDUwLCAxMjgsIDcxLCA3MywgODIsIDE3OCwgNzEsIDczLCAKKyAgICA4MCwgMTI4LCA3MSwgNzMsIDc4LCA3MywgNzMsIDEyOCwgNzEsIDczLCA3NywgNjksIDc2LCAxMjgsIDcxLCA3MywgNzcsIAorICAgIDY5LCAyMDQsIDcxLCA3MywgNzcsIDEyOCwgNzEsIDczLCA3MSwgNjUsIDEyOCwgNzEsIDczLCA2OSwgODQsIDEyOCwgNzEsIAorICAgIDczLCA2OCwgNzMsIDc3LCAxMjgsIDcxLCA3MywgNjYsIDY2LCA3OSwgODUsIDIxMSwgNzEsIDczLCA2NiwgNjUsIDEyOCwgCisgICAgNzEsIDczLCA1MiwgMTI4LCA3MSwgNzMsIDE4MCwgNzEsIDcyLCA5MCwgMTI4LCA3MSwgNzIsIDg3LCA2NSwgMTI4LCA3MSwgCisgICAgNzIsIDg1LCA3OCwgNzgsIDY1LCAxMjgsIDcxLCA3MiwgODUsIDc4LCA3OCwgMTkzLCA3MSwgNzIsIDg1LCAxMjgsIDcxLCAKKyAgICA3MiwgNzksIDg1LCAxMjgsIDcxLCA3MiwgNzksIDgzLCA4NCwgMTI4LCA3MSwgNzIsIDc5LCAxMjgsIDcxLCA3MiwgNzMsIAorICAgIDEyOCwgNzEsIDcyLCA3MiwgNjUsIDEyOCwgNzEsIDcyLCA2OSwgODUsIDg4LCAxMjgsIDcxLCA3MiwgNjksIDg1LCA3OCwgCisgICAgMTI4LCA3MSwgNzIsIDY5LCA4NSwgNzEsIDcyLCA2OSwgODUsIDY1LCA2OSwgNzcsIDEyOCwgNzEsIDcyLCA2OSwgODUsIDcxLCAKKyAgICA3MiwgNjksIDc4LCAxMjgsIDcxLCA3MiwgNjksIDg1LCA2NSwgNjksIDgyLCA2NSwgNjksIDEyOCwgNzEsIDcyLCA2OSwgODUsIAorICAgIDY1LCA2OSwgNzEsIDcyLCA2OSwgODUsIDY1LCA2OSwgMTI4LCA3MSwgNzIsIDY5LCA4NCwgMTI4LCA3MSwgNzIsIDY5LCA2OSwgCisgICAgMTI4LCA3MSwgNzIsIDY5LCAxMjgsIDcxLCA3MiwgMTk3LCA3MSwgNzIsIDY1LCA4OSwgNzgsIDEyOCwgNzEsIDcyLCA2NSwgCisgICAgODIsIDY1LCA2OSwgMTI4LCA3MSwgNzIsIDY1LCA4MCwgMTI4LCA3MSwgNzIsIDY1LCA3OCwgMTI4LCA3MSwgNzIsIDY1LCAKKyAgICA3NywgNjUsIDc2LCAxMjgsIDcxLCA3MiwgNjUsIDczLCA3OCwgODUsIDEyOCwgNzEsIDcyLCA2NSwgNzMsIDc4LCAxMjgsIAorICAgIDcxLCA3MiwgNjUsIDczLCAyMDYsIDcxLCA3MiwgNjUsIDY4LCAxMjgsIDcxLCA3MiwgNjUsIDY1LCA3NywgNjUsIDY5LCAKKyAgICAxMjgsIDcxLCA3MiwgNjUsIDY1LCAxMjgsIDcxLCA3MSwgODcsIDczLCAxMjgsIDcxLCA3MSwgODcsIDY5LCA2OSwgMTI4LCAKKyAgICA3MSwgNzEsIDg3LCA2OSwgMTI4LCA3MSwgNzEsIDg3LCA2NSwgNjUsIDEyOCwgNzEsIDcxLCA4NywgNjUsIDEyOCwgNzEsIAorICAgIDcxLCA4NSwgODgsIDEyOCwgNzEsIDcxLCA4NSwgODQsIDEyOCwgNzEsIDcxLCA4NSwgODIsIDg4LCAxMjgsIDcxLCA3MSwgCisgICAgODUsIDgyLCAxMjgsIDcxLCA3MSwgODUsIDc5LCA4OCwgMTI4LCA3MSwgNzEsIDg1LCA3OSwgODQsIDEyOCwgNzEsIDcxLCAKKyAgICA4NSwgNzksIDgwLCAxMjgsIDcxLCA3MSwgODUsIDc5LCAxMjgsIDcxLCA3MSwgNzksIDg4LCAxMjgsIDcxLCA3MSwgNzksIAorICAgIDg0LCAxMjgsIDcxLCA3MSwgNzksIDgwLCAxMjgsIDcxLCA3MSwgNzMsIDg4LCAxMjgsIDcxLCA3MSwgNzMsIDg0LCAxMjgsIAorICAgIDcxLCA3MSwgNzMsIDY5LCA4OCwgMTI4LCA3MSwgNzEsIDczLCA2OSwgODAsIDEyOCwgNzEsIDcxLCA3MywgNjksIDEyOCwgCisgICAgNzEsIDcxLCA2OSwgODgsIDEyOCwgNzEsIDcxLCA2OSwgODQsIDEyOCwgNzEsIDcxLCA2OSwgODAsIDEyOCwgNzEsIDcxLCAKKyAgICA2NSwgODgsIDEyOCwgNzEsIDcxLCA2NSwgODQsIDEyOCwgNzEsIDcxLCA2NSwgNjUsIDEyOCwgNzEsIDY5LCA4NCwgMTkzLCAKKyAgICA3MSwgNjksIDgzLCA4NCwgODUsIDgyLCA2OSwgMTI4LCA3MSwgNjksIDgzLCA3MiwgODUsIDEyOCwgNzEsIDY5LCA4MywgNzIsIAorICAgIDg0LCA3MywgNzgsIDEyOCwgNzEsIDY5LCA4MywgNzIsIDg0LCA3MywgMjA2LCA3MSwgNjksIDgzLCA3MiwgNTAsIDEyOCwgCisgICAgNzEsIDY5LCA4MiwgODMsIDcyLCA2NSwgODksIDczLCA3NywgMTI4LCA3MSwgNjksIDgyLCA3NywgNjUsIDIwNiwgNzEsIDY5LCAKKyAgICA4MiwgNjksIDgzLCA3MiwgMTI4LCA3MSwgNjksIDgyLCA2OSwgODMsIDIwMCwgNzEsIDY5LCA3OSwgNzcsIDY5LCA4NCwgODIsIAorICAgIDczLCA2NywgNjUsIDc2LCA3NiwgMjE3LCA3MSwgNjksIDc5LCA3NywgNjksIDg0LCA4MiwgNzMsIDE5NSwgNzEsIDY5LCA3OCwgCisgICAgODQsIDc2LCAxOTcsIDcxLCA2OSwgNzgsIDczLCA4NCwgNzMsIDg2LCA2OSwgMTI4LCA3MSwgNjksIDc4LCA3MywgNzUsIAorICAgIDIwMSwgNzEsIDY5LCA3OCwgNjksIDgyLCA3MywgMTk1LCA3MSwgNjksIDc3LCA3MywgNzgsIDczLCAxMjgsIDcxLCA2OSwgCisgICAgNzcsIDczLCA3OCwgNjUsIDg0LCA3MywgNzksIDIwNiwgNzEsIDY5LCAyMDUsIDcxLCA2OSwgNjgsIDc5LCA3NiwgNjUsIAorICAgIDEyOCwgNzEsIDY5LCA2OCwgNjksIDEyOCwgNzEsIDY5LCA2NiwgMjA3LCA3MSwgNjksIDY2LCAxOTMsIDcxLCA2OSwgNjUsIAorICAgIDgyLCAxMjgsIDcxLCA2OSwgNjUsIDIxMCwgNzEsIDY4LCA2NSwgNzgsIDEyOCwgNzEsIDY3LCA3MywgNzEsIDEyOCwgNzEsIAorICAgIDY3LCA2NSwgMjA2LCA3MSwgNjYsIDc5LCA3OCwgMTI4LCA3MSwgNjYsIDczLCA2OSwgMTk3LCA3MSwgNjYsIDY5LCA4NSwgCisgICAgODgsIDEyOCwgNzEsIDY2LCA2OSwgODQsIDEyOCwgNzEsIDY2LCA2NSwgODksIDczLCAxMjgsIDcxLCA2NiwgNjUsIDc1LCAKKyAgICA4NSwgODIsIDg1LCA3OCwgNjksIDc4LCAxMjgsIDcxLCA2NiwgMTI4LCA3MSwgNjUsIDg5LCA2NSwgNzgsIDg1LCA3NSwgNzMsIAorICAgIDg0LCA4NCwgNjUsIDEyOCwgNzEsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNzEsIDY1LCA4OSwgMTI4LCA3MSwgCisgICAgNjUsIDg1LCA3OCwgODQsIDc2LCA2OSwgODQsIDEyOCwgNzEsIDY1LCA4NCwgNzIsIDY5LCA4MiwgNzMsIDc4LCA3MSwgMTI4LCAKKyAgICA3MSwgNjUsIDg0LCA3MiwgNjksIDgyLCA3MywgNzgsIDE5OSwgNzEsIDY1LCA4NCwgNjksIDEyOCwgNzEsIDY1LCA4MywgNzIsIAorICAgIDY1LCA3OCwgMTI4LCA3MSwgNjUsIDgyLCA4MywgNzIsIDg1LCA3OCwgNzMsIDEyOCwgNzEsIDY1LCA4MiwgNzksIDc4LCAKKyAgICAxMjgsIDcxLCA2NSwgODIsIDc3LCA2OSwgNzgsIDg0LCAxMjgsIDcxLCA2NSwgODIsIDY4LCA2OSwgNzgsIDEyOCwgNzEsIAorICAgIDY1LCA4MiwgNTEsIDEyOCwgNzEsIDY1LCA4MCwgODAsIDY5LCAxOTYsIDcxLCA2NSwgMjA4LCA3MSwgNjUsIDc4LCA3NywgCisgICAgNjUsIDEyOCwgNzEsIDY1LCA3OCwgNzEsIDczLCA2NSwgMTI4LCA3MSwgNjUsIDc4LCA2OCwgMTkzLCA3MSwgNjUsIDc4LCAKKyAgICA1MCwgMTI4LCA3MSwgNjUsIDc4LCAxNzgsIDcxLCA2NSwgNzcsIDc3LCA2NSwgMTI4LCA3MSwgNjUsIDc3LCA3NiwgNjUsIAorICAgIDEyOCwgNzEsIDY1LCA3NywgNzYsIDEyOCwgNzEsIDY1LCA3NywgNjksIDEyOCwgNzEsIDY1LCA3NywgMTk3LCA3MSwgNjUsIAorICAgIDc3LCA2NSwgNzgsIDEyOCwgNzEsIDY1LCA3NywgNjUsIDc2LCAxMjgsIDcxLCA2NSwgNzcsIDY1LCAyMDQsIDcxLCA2NSwgCisgICAgNzEsIDEyOCwgNzEsIDY1LCA3MCwgMTI4LCA3MSwgNjUsIDE5OCwgNzEsIDY1LCA2OSwgODQsIDg0LCA2NSwgNDUsIDgwLCAKKyAgICA3MywgNzYsIDc2LCA2NSwgMTI4LCA3MSwgNjUsIDY4LCA3OSwgNzYsIDEyOCwgNzEsIDY1LCA2OCwgMTI4LCA3MSwgNjUsIAorICAgIDE5NiwgNzEsIDY1LCA2NiwgNjUsIDEyOCwgNzEsIDY1LCA2NiwgMTkzLCA3MSwgNjUsIDY1LCA3MCwgODUsIDEyOCwgNzEsIAorICAgIDY1LCAxNzgsIDcxLCA0OCwgNTMsIDUyLCAxMjgsIDcxLCA0OCwgNTMsIDUxLCAxMjgsIDcxLCA0OCwgNTMsIDUwLCAxMjgsIAorICAgIDcxLCA0OCwgNTMsIDQ5LCAxMjgsIDcxLCA0OCwgNTMsIDQ4LCAxMjgsIDcxLCA0OCwgNTIsIDU3LCAxMjgsIDcxLCA0OCwgCisgICAgNTIsIDU2LCAxMjgsIDcxLCA0OCwgNTIsIDU1LCAxMjgsIDcxLCA0OCwgNTIsIDU0LCAxMjgsIDcxLCA0OCwgNTIsIDUzLCAKKyAgICA2NSwgMTI4LCA3MSwgNDgsIDUyLCA1MywgMTI4LCA3MSwgNDgsIDUyLCA1MiwgMTI4LCA3MSwgNDgsIDUyLCA1MSwgNjUsIAorICAgIDEyOCwgNzEsIDQ4LCA1MiwgNTEsIDEyOCwgNzEsIDQ4LCA1MiwgNTAsIDEyOCwgNzEsIDQ4LCA1MiwgNDksIDEyOCwgNzEsIAorICAgIDQ4LCA1MiwgNDgsIDEyOCwgNzEsIDQ4LCA1MSwgNTcsIDEyOCwgNzEsIDQ4LCA1MSwgNTYsIDEyOCwgNzEsIDQ4LCA1MSwgCisgICAgNTUsIDY1LCAxMjgsIDcxLCA0OCwgNTEsIDU1LCAxMjgsIDcxLCA0OCwgNTEsIDU0LCA2NSwgMTI4LCA3MSwgNDgsIDUxLCAKKyAgICA1NCwgMTI4LCA3MSwgNDgsIDUxLCA1MywgMTI4LCA3MSwgNDgsIDUxLCA1MiwgMTI4LCA3MSwgNDgsIDUxLCA1MSwgMTI4LCAKKyAgICA3MSwgNDgsIDUxLCA1MCwgMTI4LCA3MSwgNDgsIDUxLCA0OSwgMTI4LCA3MSwgNDgsIDUxLCA0OCwgMTI4LCA3MSwgNDgsIAorICAgIDUwLCA1NywgMTI4LCA3MSwgNDgsIDUwLCA1NiwgMTI4LCA3MSwgNDgsIDUwLCA1NSwgMTI4LCA3MSwgNDgsIDUwLCA1NCwgCisgICAgNjUsIDEyOCwgNzEsIDQ4LCA1MCwgNTQsIDEyOCwgNzEsIDQ4LCA1MCwgNTMsIDEyOCwgNzEsIDQ4LCA1MCwgNTIsIDEyOCwgCisgICAgNzEsIDQ4LCA1MCwgNTEsIDEyOCwgNzEsIDQ4LCA1MCwgNTAsIDEyOCwgNzEsIDQ4LCA1MCwgNDksIDEyOCwgNzEsIDQ4LCAKKyAgICA1MCwgNDgsIDY1LCAxMjgsIDcxLCA0OCwgNTAsIDQ4LCAxMjgsIDcxLCA0OCwgNDksIDU3LCAxMjgsIDcxLCA0OCwgNDksIAorICAgIDU2LCAxMjgsIDcxLCA0OCwgNDksIDU1LCAxMjgsIDcxLCA0OCwgNDksIDU0LCAxMjgsIDcxLCA0OCwgNDksIDUzLCAxMjgsIAorICAgIDcxLCA0OCwgNDksIDUyLCAxMjgsIDcxLCA0OCwgNDksIDUxLCAxMjgsIDcxLCA0OCwgNDksIDUwLCAxMjgsIDcxLCA0OCwgCisgICAgNDksIDQ5LCA2NSwgMTI4LCA3MSwgNDgsIDQ5LCA0OSwgMTI4LCA3MSwgNDgsIDQ5LCA0OCwgMTI4LCA3MSwgNDgsIDQ4LCAKKyAgICA1NywgMTI4LCA3MSwgNDgsIDQ4LCA1NiwgMTI4LCA3MSwgNDgsIDQ4LCA1NSwgNjYsIDEyOCwgNzEsIDQ4LCA0OCwgNTUsIAorICAgIDY1LCAxMjgsIDcxLCA0OCwgNDgsIDU1LCAxMjgsIDcxLCA0OCwgNDgsIDU0LCA2NSwgMTI4LCA3MSwgNDgsIDQ4LCA1NCwgCisgICAgMTI4LCA3MSwgNDgsIDQ4LCA1MywgMTI4LCA3MSwgNDgsIDQ4LCA1MiwgMTI4LCA3MSwgNDgsIDQ4LCA1MSwgMTI4LCA3MSwgCisgICAgNDgsIDQ4LCA1MCwgMTI4LCA3MSwgNDgsIDQ4LCA0OSwgMTI4LCA3MCwgODksIDg4LCAxMjgsIDcwLCA4OSwgODQsIDEyOCwgCisgICAgNzAsIDg5LCA4MCwgMTI4LCA3MCwgODksIDY1LCAxMjgsIDcwLCA4NywgNzMsIDEyOCwgNzAsIDg3LCA2OSwgNjksIDEyOCwgCisgICAgNzAsIDg3LCA2OSwgMTI4LCA3MCwgODcsIDY1LCA2NSwgMTI4LCA3MCwgODcsIDY1LCAxMjgsIDcwLCA4NiwgODMsIDUxLCAKKyAgICAxMjgsIDcwLCA4NiwgODMsIDUwLCAxMjgsIDcwLCA4NiwgODMsIDQ5LCAxMjgsIDcwLCA4NSwgODgsIDEyOCwgNzAsIDg1LCAKKyAgICA4NCwgMTI4LCA3MCwgODUsIDgzLCA2OSwgMTI4LCA3MCwgODUsIDgzLCAxOTMsIDcwLCA4NSwgODIsIDg4LCAxMjgsIDcwLCAKKyAgICA4NSwgODAsIDEyOCwgNzAsIDg1LCA3OCwgNjksIDgyLCA2NSwgMjA0LCA3MCwgODUsIDc4LCA2NywgODQsIDczLCA3OSwgNzgsIAorICAgIDY1LCAyMDQsIDcwLCA4NSwgNzgsIDY3LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA3MCwgODUsIDc2LCA3NiwgNzgsIDY5LCA4MywgCisgICAgODMsIDEyOCwgNzAsIDg1LCA3NiwgMjA0LCA3MCwgODUsIDc0LCA3MywgMTI4LCA3MCwgODUsIDY5LCA4NCwgMTI4LCA3MCwgCisgICAgODUsIDY5LCAyMDQsIDcwLCA4NSwgNjksIDEyOCwgNzAsIDg0LCA3MiwgNzksIDgyLCAxOTMsIDcwLCA4MiwgNzksIDg3LCAKKyAgICA3OCwgNzMsIDc4LCA3MSwgMTI4LCA3MCwgODIsIDc5LCA4NywgNzgsIDczLCA3OCwgMTk5LCA3MCwgODIsIDc5LCA4NywgNzgsIAorICAgIDEyOCwgNzAsIDgyLCA3OSwgNzgsIDg0LCA0NSwgODQsIDczLCA3NiwgODQsIDY5LCAxOTYsIDcwLCA4MiwgNzksIDc4LCA4NCwgCisgICAgNDUsIDcwLCA2NSwgNjcsIDczLCA3OCwgMTk5LCA3MCwgODIsIDc5LCAyMDUsIDcwLCA4MiwgNzksIDcxLCAxMjgsIDcwLCAKKyAgICA4MiwgNzksIDE5OSwgNzAsIDgyLCA3MywgODQsIDg1LCAxMjgsIDcwLCA4MiwgNzMsIDY5LCA4MywgMTI4LCA3MCwgODIsIAorICAgIDczLCA2OSwgMTk2LCA3MCwgODIsIDczLCA2NywgNjUsIDg0LCA3MywgODYsIDY5LCAxMjgsIDcwLCA4MiwgNjksIDg0LCA2NiwgCisgICAgNzksIDY1LCA4MiwgNjgsIDEyOCwgNzAsIDgyLCA2OSwgNzgsIDY3LCAyMDAsIDcwLCA4MiwgNjksIDY5LCAxMjgsIDcwLCAKKyAgICA4MiwgNjksIDE5NywgNzAsIDgyLCA2NSwgNzgsIDE5NSwgNzAsIDgyLCA2NSwgNzcsIDY5LCAxMjgsIDcwLCA4MiwgNjUsIAorICAgIDcxLCA4MiwgNjUsIDc4LCA4NCwgMTI4LCA3MCwgODIsIDY1LCA3MSwgNzcsIDY5LCA3OCwgODQsIDEyOCwgNzAsIDgyLCA2NSwgCisgICAgNjcsIDg0LCA3MywgNzksIDIwNiwgNzAsIDc5LCA4OCwgMTI4LCA3MCwgNzksIDg1LCA4MiwgODQsIDY5LCA2OSwgNzgsIAorICAgIDEyOCwgNzAsIDc5LCA4NSwgODIsIDg0LCA2OSwgNjksIDIwNiwgNzAsIDc5LCA4NSwgODIsIDQ1LCA4NCwgNzIsIDczLCA4MiwgCisgICAgODQsIDg5LCAxMjgsIDcwLCA3OSwgODUsIDgyLCA0NSwgODMsIDg0LCA4MiwgNzMsIDc4LCAxOTksIDcwLCA3OSwgODUsIDgyLCAKKyAgICA0NSwgODAsIDY5LCA4MiwgNDUsIDY5LCAyMDUsIDcwLCA3OSwgODUsIDgyLCA0NSwgNzYsIDczLCA3OCwgMTk3LCA3MCwgNzksIAorICAgIDg1LCAyMTAsIDcwLCA3OSwgODUsIDc4LCA4NCwgNjUsIDczLCA3OCwgMTI4LCA3MCwgNzksIDgzLCA4NCwgNjksIDgyLCA3MywgCisgICAgNzgsIDcxLCAxMjgsIDcwLCA3OSwgODIsIDg3LCA2NSwgODIsIDY4LCAxMjgsIDcwLCA3OSwgODIsIDg0LCA4OSwgMTI4LCAKICAgICA3MCwgNzksIDgyLCA4NCwgMjE3LCA3MCwgNzksIDgyLCA4NCwgNjksIDEyOCwgNzAsIDc5LCA4MiwgNzcsIDIxMSwgNzAsIAogICAgIDc5LCA4MiwgNzcsIDY1LCA4NCwgODQsIDczLCA3OCwgNzEsIDEyOCwgNzAsIDc5LCA4MiwgNzUsIDY5LCAxOTYsIDcwLCA3OSwgCiAgICAgODIsIDY3LCA2OSwgODMsIDEyOCwgNzAsIDc5LCA4MiwgNjcsIDY5LCAxMjgsIDcwLCA3OSwgODAsIDEyOCwgNzAsIDc5LCAKQEAgLTM0NjIsMzg0ICszNjE4LDM4OSBAQAogICAgIDEyOCwgNzAsIDc5LCA3OSwgODQsIDEyOCwgNzAsIDc5LCA3OSwgNjgsIDEyOCwgNzAsIDc5LCA3OSwgMTI4LCA3MCwgNzksIAogICAgIDc4LCA3MSwgNzcsIDY1LCA3OCwgMTI4LCA3MCwgNzksIDc3LCAxMjgsIDcwLCA3OSwgNzYsIDc2LCA4OSwgMTI4LCA3MCwgCiAgICAgNzksIDc2LCA3NiwgNzksIDg3LCA3MywgNzgsIDcxLCAxMjgsIDcwLCA3OSwgNzYsIDY4LCA2OSwgODIsIDEyOCwgNzAsIDc5LCAKLSAgICA3NiwgNjgsIDY5LCAxOTYsIDcwLCA3OSwgNzEsIDcxLCA4OSwgMTI4LCA3MCwgNzcsIDEyOCwgNzAsIDc2LCA4OSwgMTI4LCAKLSAgICA3MCwgNzYsIDg1LCA4NCwgODQsIDY5LCA4MiwgNzMsIDc4LCAxOTksIDcwLCA3NiwgODUsIDg0LCA2OSwgMTI4LCA3MCwgNzYsIAotICAgIDg1LCA4MywgNzIsIDY5LCAxOTYsIDcwLCA3NiwgNzksIDg3LCA3MywgNzgsIDE5OSwgNzAsIDc2LCA3OSwgODcsIDY5LCAKLSAgICAyMTAsIDcwLCA3NiwgNzksIDg1LCA4MiwgNzMsIDgzLCA3MiwgMTI4LCA3MCwgNzYsIDc5LCA4MiwgNjksIDg0LCA4NCwgNjksIAotICAgIDEyOCwgNzAsIDc2LCA3OSwgODIsIDY1LCAyMDQsIDcwLCA3NiwgNzksIDgwLCA4MCwgMjE3LCA3MCwgNzYsIDc5LCA3OSwgCi0gICAgODIsIDEyOCwgNzAsIDc2LCA3MywgODAsIDEyOCwgNzAsIDc2LCA3MywgNzEsIDcyLCA4NCwgMTI4LCA3MCwgNzYsIDY5LCAKLSAgICA4OCwgODUsIDgzLCAxMjgsIDcwLCA3NiwgNjksIDg4LCA2OSwgMTk2LCA3MCwgNzYsIDY5LCA4NSwgODIsIDQ1LCA2OCwgNjksIAotICAgIDQ1LCA3NiwgNzMsIDgzLCAxMjgsIDcwLCA3NiwgNjUsIDg0LCA4NCwgNjksIDc4LCA2OSwgMTk2LCA3MCwgNzYsIDY1LCA4NCwgCi0gICAgNzgsIDY5LCA4MywgODMsIDEyOCwgNzAsIDc2LCA2NSwgODQsIDEyOCwgNzAsIDc2LCA2NSwgMjEyLCA3MCwgNzYsIDY1LCAKLSAgICA3MSwgODMsIDEyOCwgNzAsIDc2LCA2NSwgNzEsIDQ1LCA1MywgMTI4LCA3MCwgNzYsIDY1LCA3MSwgNDUsIDUyLCAxMjgsIAotICAgIDcwLCA3NiwgNjUsIDcxLCA0NSwgNTEsIDEyOCwgNzAsIDc2LCA2NSwgNzEsIDQ1LCA1MCwgMTI4LCA3MCwgNzYsIDY1LCA3MSwgCi0gICAgNDUsIDQ5LCAxMjgsIDcwLCA3NiwgNjUsIDcxLCAxMjgsIDcwLCA3NiwgNjUsIDE5OSwgNzAsIDc2LCA2NSwgMTI4LCA3MCwgCi0gICAgNzYsIDEyOCwgNzAsIDczLCA4OCwgNjksIDY4LCA0NSwgNzAsIDc5LCA4MiwgMjA1LCA3MCwgNzMsIDg4LCAxMjgsIDcwLCAKLSAgICA3MywgODYsIDY5LCA0NSwgODQsIDcyLCA3MywgODIsIDg0LCA4OSwgMTI4LCA3MCwgNzMsIDg2LCA2OSwgNDUsIDc2LCA3MywgCi0gICAgNzgsIDE5NywgNzAsIDczLCA4NiwgMTk3LCA3MCwgNzMsIDg0LCA2NSwgMTI4LCA3MCwgNzMsIDg0LCAxMjgsIDcwLCA3MywgCi0gICAgODMsIDg0LCA2OSwgMTk2LCA3MCwgNzMsIDgzLCA4NCwgMTI4LCA3MCwgNzMsIDgzLCA3MiwgNzMsIDc4LCAxOTksIDcwLCAKLSAgICA3MywgODMsIDcyLCA3MiwgNzksIDc5LCA3NSwgMTI4LCA3MCwgNzMsIDgzLCA3MiwgNzIsIDc5LCA3OSwgMjAzLCA3MCwgNzMsIAotICAgIDgzLCA3MiwgNjksIDg5LCA2OSwgMTI4LCA3MCwgNzMsIDgzLCA3MiwgMTI4LCA3MCwgNzMsIDgzLCAyMDAsIDcwLCA3MywgCi0gICAgODIsIDgzLCAyMTIsIDcwLCA3MywgODIsIDczLCAxMjgsIDcwLCA3MywgODIsIDY5LCA4NywgNzksIDgyLCA3NSwgODMsIAotICAgIDEyOCwgNzAsIDczLCA4MiwgNjksIDg3LCA3OSwgODIsIDIwMywgNzAsIDczLCA4MiwgNjksIDEyOCwgNzAsIDczLCA4MiwgCi0gICAgMTk3LCA3MCwgNzMsIDgwLCAxMjgsIDcwLCA3MywgNzgsIDczLCA4NCwgMTk3LCA3MCwgNzMsIDc4LCA3MSwgNjksIDgyLCAKLSAgICA3OCwgNjUsIDczLCA3NiwgODMsIDEyOCwgNzAsIDczLCA3OCwgNzEsIDY5LCA4MiwgNjksIDE5NiwgNzAsIDczLCA3OCwgNjUsIAotICAgIDc4LCA2NywgNzMsIDY1LCA3NiwgMTI4LCA3MCwgNzMsIDc2LCA3NiwgNjksIDgyLCAxMjgsIDcwLCA3MywgNzYsIDc2LCA2OSwgCi0gICAgMTk2LCA3MCwgNzMsIDc2LCA3NiwgMTI4LCA3MCwgNzMsIDc2LCAyMDQsIDcwLCA3MywgNzYsIDE5NywgNzAsIDczLCA3MywgCi0gICAgMTI4LCA3MCwgNzMsIDcxLCA4NSwgODIsIDY5LCA0NSwgNTEsIDEyOCwgNzAsIDczLCA3MSwgODUsIDgyLCA2OSwgNDUsIDUwLCAKLSAgICAxMjgsIDcwLCA3MywgNzEsIDg1LCA4MiwgNjksIDQ1LCA0OSwgMTI4LCA3MCwgNzMsIDcxLCA4NSwgODIsIDE5NywgNzAsIAotICAgIDczLCA3MSwgNzIsIDg0LCAxMjgsIDcwLCA3MywgNzAsIDg0LCA4OSwgMTI4LCA3MCwgNzMsIDcwLCA4NCwgMjE3LCA3MCwgCi0gICAgNzMsIDcwLCA4NCwgNzIsIDgzLCAxMjgsIDcwLCA3MywgNzAsIDg0LCA3MiwgMTI4LCA3MCwgNzMsIDcwLCA4NCwgNjksIDY5LCAKLSAgICA3OCwgMTI4LCA3MCwgNzMsIDcwLCA4NCwgNjksIDY5LCAyMDYsIDcwLCA3MywgNjksIDc2LCA2OCwgMTI4LCA3MCwgNzIsIAotICAgIDg0LCA3OSwgODIsIDE5MywgNzAsIDcwLCA3NiwgMTI4LCA3MCwgNzAsIDczLCAxMjgsIDcwLCA2OSwgODUsIDg4LCAxMjgsIAotICAgIDcwLCA2OSwgODUsIDcwLCA2OSwgODUsIDY1LCA2OSwgODQsIDEyOCwgNzAsIDY5LCA4MywgODQsIDczLCA4NiwgNjUsIDc2LCAKLSAgICAxMjgsIDcwLCA2OSwgODIsIDgyLCA4OSwgMTI4LCA3MCwgNjksIDgyLCA4MiwgNzMsIDIxMSwgNzAsIDY5LCA4MiwgNzcsIAotICAgIDY1LCA4NCwgNjUsIDEyOCwgNzAsIDY5LCA4MiwgNzcsIDY1LCA4NCwgMTkzLCA3MCwgNjksIDc5LCAyMDAsIDcwLCA2OSwgCi0gICAgNzgsIDE5OSwgNzAsIDY5LCA3OCwgNjcsIDY5LCAxMjgsIDcwLCA2OSwgNzcsIDczLCA3OCwgNzMsIDc4LCAxOTcsIDcwLCAKLSAgICA2OSwgNzcsIDY1LCA3NiwgNjksIDEyOCwgNzAsIDY5LCA3NywgNjUsIDc2LCAxOTcsIDcwLCA2OSwgNzYsIDc2LCA3OSwgODcsIAotICAgIDgzLCA3MiwgNzMsIDgwLCAxMjgsIDcwLCA2OSwgNzMsIDEyOCwgNzAsIDY5LCA3MiwgMjEzLCA3MCwgNjksIDcyLCAxMjgsIAotICAgIDcwLCA2OSwgMjAwLCA3MCwgNjksIDY5LCA3OCwgNzEsIDEyOCwgNzAsIDY5LCA2OSwgNjgsIDEyOCwgNzAsIDY5LCA2OSwgCi0gICAgMTk2LCA3MCwgNjksIDY5LCAxMjgsIDcwLCA2OSwgNjYsIDgyLCA4NSwgNjUsIDgyLCA4OSwgMTI4LCA3MCwgNjksIDY1LCAKLSAgICA4NCwgNzIsIDY5LCA4MiwgMTI4LCA3MCwgNjksIDY1LCA4NCwgNzIsIDY5LCAyMTAsIDcwLCA2OSwgNjUsIDgyLCA3OCwgCi0gICAgMTI4LCA3MCwgNjksIDY1LCA4MiwgNzAsIDg1LCAyMDQsIDcwLCA2OSwgNjUsIDgyLCAxMjgsIDcwLCA2NSwgODksIDY1LCAKLSAgICA3OCwgNzgsIDY1LCAxMjgsIDcwLCA2NSwgODgsIDEyOCwgNzAsIDY1LCAyMTYsIDcwLCA2NSwgODQsIDczLCA3MSwgODUsIAotICAgIDY5LCAxMjgsIDcwLCA2NSwgODQsIDcyLCA2OSwgODIsIDEyOCwgNzAsIDY1LCA4NCwgNzIsIDY5LCAyMTAsIDcwLCA2NSwgCi0gICAgODQsIDcyLCA2NSwgODQsIDY1LCA3OCwgMTI4LCA3MCwgNjUsIDg0LCA3MiwgNjUsIDg0LCA2NSwgMjA2LCA3MCwgNjUsIDg0LCAKLSAgICA3MiwgNjUsIDEyOCwgNzAsIDY1LCA4NCwgNzIsIDE5MywgNzAsIDY1LCA4NCwgMTI4LCA3MCwgNjUsIDgyLCA4MywgMjAxLCAKLSAgICA3MCwgNjUsIDgxLCAxMjgsIDcwLCA2NSwgODAsIDEyOCwgNzAsIDY1LCA3OCwgNzEsIDEyOCwgNzAsIDY1LCA3OCwgNjksIAotICAgIDgyLCA3OSwgODMsIDczLCAyMTEsIDcwLCA2NSwgNzgsIDEyOCwgNzAsIDY1LCA3NywgNzMsIDc2LCA4OSwgMTI4LCA3MCwgCi0gICAgNjUsIDc2LCA3NiwgNzMsIDc4LCAxOTksIDcwLCA2NSwgNzYsIDc2LCA2OSwgMjA2LCA3MCwgNjUsIDczLCA3NiwgODUsIDgyLCAKLSAgICA2OSwgMTI4LCA3MCwgNjUsIDczLCA3MiwgODUsIDEyOCwgNzAsIDY1LCA3MiwgODIsIDY5LCA3OCwgNzIsIDY5LCA3MywgODQsIAotICAgIDEyOCwgNzAsIDY1LCA2NywgODQsIDc5LCA4MiwgODksIDEyOCwgNzAsIDY1LCA2NywgODQsIDc5LCAyMTAsIDcwLCA2NSwgCi0gICAgNjcsIDgzLCA3MywgNzcsIDczLCA3NiwgMTk3LCA3MCwgNjUsIDY3LCA2OSwgNDUsIDU0LCAxMjgsIDcwLCA2NSwgNjcsIDY5LCAKLSAgICA0NSwgNTMsIDEyOCwgNzAsIDY1LCA2NywgNjksIDQ1LCA1MiwgMTI4LCA3MCwgNjUsIDY3LCA2OSwgNDUsIDUxLCAxMjgsIAotICAgIDcwLCA2NSwgNjcsIDY5LCA0NSwgNTAsIDEyOCwgNzAsIDY1LCA2NywgNjksIDQ1LCA0OSwgMTI4LCA3MCwgNjUsIDY1LCA3NywgCi0gICAgNjUsIDY5LCAxMjgsIDcwLCA2NSwgNjUsIDczLCAxMjgsIDcwLCA2NSwgNjUsIDcwLCA4NSwgMTI4LCA3MCwgNDgsIDUzLCAKLSAgICA1MSwgMTI4LCA3MCwgNDgsIDUzLCA1MCwgMTI4LCA3MCwgNDgsIDUzLCA0OSwgNjcsIDEyOCwgNzAsIDQ4LCA1MywgNDksIAotICAgIDY2LCAxMjgsIDcwLCA0OCwgNTMsIDQ5LCA2NSwgMTI4LCA3MCwgNDgsIDUzLCA0OSwgMTI4LCA3MCwgNDgsIDUzLCA0OCwgCi0gICAgMTI4LCA3MCwgNDgsIDUyLCA1NywgMTI4LCA3MCwgNDgsIDUyLCA1NiwgMTI4LCA3MCwgNDgsIDUyLCA1NSwgNjUsIDEyOCwgCi0gICAgNzAsIDQ4LCA1MiwgNTUsIDEyOCwgNzAsIDQ4LCA1MiwgNTQsIDY1LCAxMjgsIDcwLCA0OCwgNTIsIDU0LCAxMjgsIDcwLCAKLSAgICA0OCwgNTIsIDUzLCA2NSwgMTI4LCA3MCwgNDgsIDUyLCA1MywgMTI4LCA3MCwgNDgsIDUyLCA1MiwgMTI4LCA3MCwgNDgsIAotICAgIDUyLCA1MSwgMTI4LCA3MCwgNDgsIDUyLCA1MCwgMTI4LCA3MCwgNDgsIDUyLCA0OSwgMTI4LCA3MCwgNDgsIDUyLCA0OCwgCi0gICAgMTI4LCA3MCwgNDgsIDUxLCA1NywgMTI4LCA3MCwgNDgsIDUxLCA1NiwgNjUsIDEyOCwgNzAsIDQ4LCA1MSwgNTYsIDEyOCwgCi0gICAgNzAsIDQ4LCA1MSwgNTUsIDY1LCAxMjgsIDcwLCA0OCwgNTEsIDU1LCAxMjgsIDcwLCA0OCwgNTEsIDU0LCAxMjgsIDcwLCAKLSAgICA0OCwgNTEsIDUzLCAxMjgsIDcwLCA0OCwgNTEsIDUyLCAxMjgsIDcwLCA0OCwgNTEsIDUxLCAxMjgsIDcwLCA0OCwgNTEsIAotICAgIDUwLCAxMjgsIDcwLCA0OCwgNTEsIDQ5LCA2NSwgMTI4LCA3MCwgNDgsIDUxLCA0OSwgMTI4LCA3MCwgNDgsIDUxLCA0OCwgCi0gICAgMTI4LCA3MCwgNDgsIDUwLCA1NywgMTI4LCA3MCwgNDgsIDUwLCA1NiwgMTI4LCA3MCwgNDgsIDUwLCA1NSwgMTI4LCA3MCwgCi0gICAgNDgsIDUwLCA1NCwgMTI4LCA3MCwgNDgsIDUwLCA1MywgMTI4LCA3MCwgNDgsIDUwLCA1MiwgMTI4LCA3MCwgNDgsIDUwLCAKLSAgICA1MSwgMTI4LCA3MCwgNDgsIDUwLCA1MCwgMTI4LCA3MCwgNDgsIDUwLCA0OSwgNjUsIDEyOCwgNzAsIDQ4LCA1MCwgNDksIAotICAgIDEyOCwgNzAsIDQ4LCA1MCwgNDgsIDEyOCwgNzAsIDQ4LCA0OSwgNTcsIDEyOCwgNzAsIDQ4LCA0OSwgNTYsIDEyOCwgNzAsIAotICAgIDQ4LCA0OSwgNTUsIDEyOCwgNzAsIDQ4LCA0OSwgNTQsIDEyOCwgNzAsIDQ4LCA0OSwgNTMsIDEyOCwgNzAsIDQ4LCA0OSwgCi0gICAgNTIsIDEyOCwgNzAsIDQ4LCA0OSwgNTEsIDY1LCAxMjgsIDcwLCA0OCwgNDksIDUxLCAxMjgsIDcwLCA0OCwgNDksIDUwLCAKLSAgICAxMjgsIDcwLCA0OCwgNDksIDQ5LCAxMjgsIDcwLCA0OCwgNDksIDQ4LCAxMjgsIDcwLCA0OCwgNDgsIDU3LCAxMjgsIDcwLCAKLSAgICA0OCwgNDgsIDU2LCAxMjgsIDcwLCA0OCwgNDgsIDU1LCAxMjgsIDcwLCA0OCwgNDgsIDU0LCAxMjgsIDcwLCA0OCwgNDgsIAotICAgIDUzLCAxMjgsIDcwLCA0OCwgNDgsIDUyLCAxMjgsIDcwLCA0OCwgNDgsIDUxLCAxMjgsIDcwLCA0OCwgNDgsIDUwLCAxMjgsIAotICAgIDcwLCA0OCwgNDgsIDQ5LCA2NSwgMTI4LCA3MCwgNDgsIDQ4LCA0OSwgMTI4LCA2OSwgOTAsIDIwMCwgNjksIDkwLCA2OSwgCi0gICAgNzgsIDEyOCwgNjksIDkwLCA2OSwgMjA2LCA2OSwgOTAsIDEyOCwgNjksIDg5LCA2OSwgODMsIDEyOCwgNjksIDg5LCA2OSwgCi0gICAgNzEsIDc2LCA2NSwgODMsIDgzLCA2OSwgODMsIDEyOCwgNjksIDg5LCA2NiwgNjksIDg5LCA3MCwgNzMsIDc2LCA3MywgMTI4LCAKLSAgICA2OSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDY5LCA4OCwgODQsIDgyLCA2NSwgODQsIDY5LCA4MiwgODIsIDY5LCA4MywgCi0gICAgODQsIDgyLCA3MywgNjUsIDIwNCwgNjksIDg4LCA4NCwgODIsIDY1LCA0NSwgNzYsIDc5LCAyMTUsIDY5LCA4OCwgODQsIDgyLCAKLSAgICA2NSwgNDUsIDcyLCA3MywgNzEsIDIwMCwgNjksIDg4LCA4NCwgNjksIDc4LCA4MywgNzMsIDc5LCA3OCwgMTI4LCA2OSwgODgsIAotICAgIDg0LCA2OSwgNzgsIDY4LCA2OSwgMTk2LCA2OSwgODgsIDgwLCA3OSwgNzgsIDY5LCA3OCwgMjEyLCA2OSwgODgsIDc5LCAKLSAgICAxMjgsIDY5LCA4OCwgMjA3LCA2OSwgODgsIDczLCA4MywgODQsIDgzLCAxMjgsIDY5LCA4OCwgNzMsIDgzLCA4NCwgMTI4LCAKLSAgICA2OSwgODgsIDcyLCA2NSwgODUsIDgzLCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA2OSwgODgsIDY3LCA3NiwgNjUsIDc3LCA2NSwgCi0gICAgODQsIDczLCA3OSwgNzgsIDEyOCwgNjksIDg4LCA2NywgNzYsIDY1LCA3NywgNjUsIDg0LCA3MywgNzksIDIwNiwgNjksIDg4LCAKLSAgICA2NywgNzIsIDY1LCA3OCwgNzEsIDY5LCAxMjgsIDY5LCA4OCwgNjcsIDY5LCA4MywgODMsIDEyOCwgNjksIDg4LCA2NywgNjksIAotICAgIDc2LCA3NiwgNjksIDc4LCA4NCwgMTI4LCA2OSwgODcsIDY5LCAxMjgsIDY5LCA4NiwgNjksIDgyLCA3MSwgODIsIDY5LCA2OSwgCi0gICAgMjA2LCA2OSwgODYsIDY5LCA3OCwgNzMsIDc4LCA3MSwgMTI4LCA2OSwgODUsIDgyLCA3OSwgODAsIDY5LCA2NSwgMjA2LCAKLSAgICA2OSwgODUsIDgyLCA3OSwgODAsIDY5LCA0NSwgNjUsIDcwLCA4MiwgNzMsIDY3LCA2NSwgMTI4LCA2OSwgODUsIDgyLCA3OSwgCi0gICAgNDUsIDY3LCA4NSwgODIsIDgyLCA2OSwgNzgsIDY3LCAyMTcsIDY5LCA4NSwgODIsIDIwNywgNjksIDg1LCA3NiwgNjksIAotICAgIDIxMCwgNjksIDg1LCA0NSwgODUsIDEyOCwgNjksIDg1LCA0NSwgNzksIDEyOCwgNjksIDg1LCA0NSwgNjksIDg1LCAxMjgsIAotICAgIDY5LCA4NSwgNDUsIDY5LCA3OSwgMTI4LCA2OSwgODUsIDQ1LCA2OSwgMTI4LCA2OSwgODUsIDQ1LCA2NSwgMTI4LCA2OSwgCi0gICAgODQsIDc4LCA2NSwgNzIsIDg0LCA2NSwgMTI4LCA2OSwgODQsIDcyLCA2OSwgMjA0LCA2OSwgODQsIDY5LCA4MiwgNzksIAotICAgIDIwNiwgNjksIDg0LCA2OSwgODIsIDc4LCA3MywgODQsIDg5LCAxMjgsIDY5LCA4MywgODUsIDc1LCA4NSwgODUsIDY4LCA3OSwgCi0gICAgMTI4LCA2OSwgODMsIDg0LCA3MywgNzcsIDY1LCA4NCwgNjksIDgzLCAxMjgsIDY5LCA4MywgODQsIDczLCA3NywgNjUsIDg0LCAKLSAgICA2OSwgMTk2LCA2OSwgODMsIDcyLCA2OSwgNTEsIDEyOCwgNjksIDgzLCA3MiwgNTAsIDQ5LCAxMjgsIDY5LCA4MywgNzIsIAotICAgIDE3OCwgNjksIDgzLCA3MiwgNDksIDU0LCAxMjgsIDY5LCA4MywgNjcsIDY1LCA4MCwgNjksIDEyOCwgNjksIDgzLCA0NSwgCi0gICAgODQsIDY5LCAxMjgsIDY5LCA4MiwgODIsIDc5LCA4MiwgNDUsIDY2LCA2NSwgODIsIDgyLCA2OSwgMTk2LCA2OSwgODIsIDgyLCAKLSAgICAxMjgsIDY5LCA4MiwgNzMsIDc4LCA1MCwgMTI4LCA2OSwgODIsIDcxLCAxMjgsIDY5LCA4MiwgNjUsIDgzLCAxOTcsIDY5LCAKLSAgICA4MSwgODUsIDczLCA4NiwgNjUsIDc2LCA2OSwgNzgsIDIxMiwgNjksIDgxLCA4NSwgNzMsIDY4LCAxMjgsIDY5LCA4MSwgODUsIAotICAgIDczLCA2NSwgNzgsIDcxLCA4NSwgNzYsIDY1LCAyMTAsIDY5LCA4MSwgODUsIDY1LCA3NiwgODMsIDEyOCwgNjksIDgxLCA4NSwgCi0gICAgNjUsIDc2LCAyMTEsIDY5LCA4MSwgODUsIDY1LCA3NiwgMTI4LCA2OSwgODAsIDgzLCA3MywgNzYsIDc5LCA3OCwgMTI4LCAKLSAgICA2OSwgODAsIDgzLCA3MywgNzYsIDc5LCAyMDYsIDY5LCA4MCwgNzksIDY3LCA3MiwgMTI4LCA2OSwgODAsIDczLCA3MSwgODIsIAotICAgIDY1LCA4MCwgNzIsIDczLCAxOTUsIDY5LCA4MCwgNzMsIDY4LCA2NSwgODUsIDgyLCA2OSwgNjUsIDIwNiwgNjksIDgwLCA2OSwgCi0gICAgNzgsIDg0LCA3MiwgNjksIDg0LCA3MywgMTk1LCA2OSwgODAsIDY5LCA3MSwgNjksIDgyLCA3NywgNjUsIDEyOCwgNjksIDc5LCAKLSAgICA3NiwgNzIsIDg4LCAxMjgsIDY5LCA3OSwgNzIsIDEyOCwgNjksIDc4LCA4OSwgMTI4LCA2OSwgNzgsIDg2LCA2OSwgNzYsIAorICAgIDc2LCA2OCwgNjksIDE5NiwgNzAsIDc5LCA3MSwgNzEsIDg5LCAxMjgsIDcwLCAyMDcsIDcwLCA3NywgMTI4LCA3MCwgNzYsIAorICAgIDg5LCAxMjgsIDcwLCA3NiwgODUsIDg0LCA4NCwgNjksIDgyLCA3MywgNzgsIDE5OSwgNzAsIDc2LCA4NSwgODQsIDY5LCAKKyAgICAxMjgsIDcwLCA3NiwgODUsIDgzLCA3MiwgNjksIDE5NiwgNzAsIDc2LCA3OSwgODcsIDczLCA3OCwgMTk5LCA3MCwgNzYsIAorICAgIDc5LCA4NywgNjksIDIxMCwgNzAsIDc2LCA3OSwgODUsIDgyLCA3MywgODMsIDcyLCAxMjgsIDcwLCA3NiwgNzksIDgyLCA2OSwgCisgICAgODQsIDg0LCA2OSwgMTI4LCA3MCwgNzYsIDc5LCA4MiwgNjUsIDIwNCwgNzAsIDc2LCA3OSwgODAsIDgwLCAyMTcsIDcwLCAKKyAgICA3NiwgNzksIDc5LCA4MiwgMTI4LCA3MCwgNzYsIDczLCA4MCwgMTI4LCA3MCwgNzYsIDczLCA3MSwgNzIsIDg0LCAxMjgsIAorICAgIDcwLCA3NiwgNjksIDg4LCA4NSwgODMsIDEyOCwgNzAsIDc2LCA2OSwgODgsIDY5LCAxOTYsIDcwLCA3NiwgNjksIDg1LCA4MiwgCisgICAgNDUsIDY4LCA2OSwgNDUsIDc2LCA3MywgODMsIDEyOCwgNzAsIDc2LCA2NSwgODQsIDg0LCA2OSwgNzgsIDY5LCAxOTYsIDcwLCAKKyAgICA3NiwgNjUsIDg0LCA3OCwgNjksIDgzLCA4MywgMTI4LCA3MCwgNzYsIDY1LCA4NCwgMTI4LCA3MCwgNzYsIDY1LCAyMTIsIAorICAgIDcwLCA3NiwgNjUsIDcxLCA4MywgMTI4LCA3MCwgNzYsIDY1LCA3MSwgNDUsIDUzLCAxMjgsIDcwLCA3NiwgNjUsIDcxLCA0NSwgCisgICAgNTIsIDEyOCwgNzAsIDc2LCA2NSwgNzEsIDQ1LCA1MSwgMTI4LCA3MCwgNzYsIDY1LCA3MSwgNDUsIDUwLCAxMjgsIDcwLCAKKyAgICA3NiwgNjUsIDcxLCA0NSwgNDksIDEyOCwgNzAsIDc2LCA2NSwgNzEsIDEyOCwgNzAsIDc2LCA2NSwgMTk5LCA3MCwgNzYsIAorICAgIDY1LCAxMjgsIDcwLCA3NiwgMTI4LCA3MCwgNzMsIDg4LCA2OSwgNjgsIDQ1LCA3MCwgNzksIDgyLCAyMDUsIDcwLCA3MywgCisgICAgODgsIDEyOCwgNzAsIDczLCA4NiwgNjksIDQ1LCA4NCwgNzIsIDczLCA4MiwgODQsIDg5LCAxMjgsIDcwLCA3MywgODYsIDY5LCAKKyAgICA0NSwgNzYsIDczLCA3OCwgMTk3LCA3MCwgNzMsIDg2LCAxOTcsIDcwLCA3MywgODQsIDY1LCAxMjgsIDcwLCA3MywgODQsIAorICAgIDEyOCwgNzAsIDczLCA4MywgODQsIDY5LCAxOTYsIDcwLCA3MywgODMsIDg0LCAxMjgsIDcwLCA3MywgODMsIDcyLCA3MywgCisgICAgNzgsIDE5OSwgNzAsIDczLCA4MywgNzIsIDcyLCA3OSwgNzksIDc1LCAxMjgsIDcwLCA3MywgODMsIDcyLCA3MiwgNzksIDc5LCAKKyAgICAyMDMsIDcwLCA3MywgODMsIDcyLCA2OSwgODksIDY5LCAxMjgsIDcwLCA3MywgODMsIDcyLCAxMjgsIDcwLCA3MywgODMsIAorICAgIDIwMCwgNzAsIDczLCA4MiwgODMsIDIxMiwgNzAsIDczLCA4MiwgNzMsIDEyOCwgNzAsIDczLCA4MiwgNjksIDg3LCA3OSwgCisgICAgODIsIDc1LCA4MywgMTI4LCA3MCwgNzMsIDgyLCA2OSwgODcsIDc5LCA4MiwgMjAzLCA3MCwgNzMsIDgyLCA2OSwgMTI4LCAKKyAgICA3MCwgNzMsIDgyLCAxOTcsIDcwLCA3MywgODAsIDEyOCwgNzAsIDczLCA3OCwgNzMsIDg0LCAxOTcsIDcwLCA3MywgNzgsIAorICAgIDcxLCA2OSwgODIsIDc4LCA2NSwgNzMsIDc2LCA4MywgMTI4LCA3MCwgNzMsIDc4LCA3MSwgNjksIDgyLCA2OSwgMTk2LCA3MCwgCisgICAgNzMsIDc4LCA2NSwgNzgsIDY3LCA3MywgNjUsIDc2LCAxMjgsIDcwLCA3MywgNzYsIDc2LCA2OSwgODIsIDEyOCwgNzAsIDczLCAKKyAgICA3NiwgNzYsIDY5LCAxOTYsIDcwLCA3MywgNzYsIDc2LCAxMjgsIDcwLCA3MywgNzYsIDIwNCwgNzAsIDczLCA3NiwgMTk3LCAKKyAgICA3MCwgNzMsIDczLCAxMjgsIDcwLCA3MywgNzEsIDg1LCA4MiwgNjksIDQ1LCA1MSwgMTI4LCA3MCwgNzMsIDcxLCA4NSwgODIsIAorICAgIDY5LCA0NSwgNTAsIDEyOCwgNzAsIDczLCA3MSwgODUsIDgyLCA2OSwgNDUsIDQ5LCAxMjgsIDcwLCA3MywgNzEsIDg1LCA4MiwgCisgICAgMTk3LCA3MCwgNzMsIDcxLCA3MiwgODQsIDEyOCwgNzAsIDczLCA3MCwgODQsIDg5LCAxMjgsIDcwLCA3MywgNzAsIDg0LCAKKyAgICAyMTcsIDcwLCA3MywgNzAsIDg0LCA3MiwgODMsIDEyOCwgNzAsIDczLCA3MCwgODQsIDcyLCAxMjgsIDcwLCA3MywgNzAsIAorICAgIDg0LCA2OSwgNjksIDc4LCAxMjgsIDcwLCA3MywgNzAsIDg0LCA2OSwgNjksIDIwNiwgNzAsIDczLCA2OSwgNzYsIDY4LCAKKyAgICAxMjgsIDcwLCA3MiwgODQsIDc5LCA4MiwgMTkzLCA3MCwgNzAsIDc2LCAxMjgsIDcwLCA3MCwgNzMsIDEyOCwgNzAsIDY5LCAKKyAgICA4NSwgODgsIDEyOCwgNzAsIDY5LCA4NSwgNzAsIDY5LCA4NSwgNjUsIDY5LCA4NCwgMTI4LCA3MCwgNjksIDgzLCA4NCwgNzMsIAorICAgIDg2LCA2NSwgNzYsIDEyOCwgNzAsIDY5LCA4MiwgODIsIDg5LCAxMjgsIDcwLCA2OSwgODIsIDgyLCA3MywgMjExLCA3MCwgCisgICAgNjksIDgyLCA3NywgNjUsIDg0LCA2NSwgMTI4LCA3MCwgNjksIDgyLCA3NywgNjUsIDg0LCAxOTMsIDcwLCA2OSwgNzksIAorICAgIDIwMCwgNzAsIDY5LCA3OCwgMTk5LCA3MCwgNjksIDc4LCA2NywgNjksIDEyOCwgNzAsIDY5LCA3NywgNzMsIDc4LCA3MywgCisgICAgNzgsIDE5NywgNzAsIDY5LCA3NywgNjUsIDc2LCA2OSwgMTI4LCA3MCwgNjksIDc3LCA2NSwgNzYsIDE5NywgNzAsIDY5LCAKKyAgICA3NiwgNzYsIDc5LCA4NywgODMsIDcyLCA3MywgODAsIDEyOCwgNzAsIDY5LCA3MywgMTI4LCA3MCwgNjksIDcyLCAyMTMsIAorICAgIDcwLCA2OSwgNzIsIDEyOCwgNzAsIDY5LCAyMDAsIDcwLCA2OSwgNjksIDc4LCA3MSwgMTI4LCA3MCwgNjksIDY5LCA2OCwgCisgICAgMTI4LCA3MCwgNjksIDY5LCAxOTYsIDcwLCA2OSwgNjksIDEyOCwgNzAsIDY5LCA2NiwgODIsIDg1LCA2NSwgODIsIDg5LCAKKyAgICAxMjgsIDcwLCA2OSwgNjUsIDg0LCA3MiwgNjksIDgyLCAxMjgsIDcwLCA2OSwgNjUsIDg0LCA3MiwgNjksIDIxMCwgNzAsIAorICAgIDY5LCA2NSwgODIsIDc4LCAxMjgsIDcwLCA2OSwgNjUsIDgyLCA3MCwgODUsIDIwNCwgNzAsIDY5LCA2NSwgODIsIDEyOCwgCisgICAgNzAsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNzAsIDY1LCA4OSwgMTI4LCA3MCwgNjUsIDg4LCAxMjgsIDcwLCAKKyAgICA2NSwgMjE2LCA3MCwgNjUsIDg0LCA3MywgNzEsIDg1LCA2OSwgMTI4LCA3MCwgNjUsIDg0LCA3MiwgNjksIDgyLCAxMjgsIAorICAgIDcwLCA2NSwgODQsIDcyLCA2OSwgMjEwLCA3MCwgNjUsIDg0LCA3MiwgNjUsIDg0LCA2NSwgNzgsIDEyOCwgNzAsIDY1LCA4NCwgCisgICAgNzIsIDY1LCA4NCwgNjUsIDIwNiwgNzAsIDY1LCA4NCwgNzIsIDY1LCAxMjgsIDcwLCA2NSwgODQsIDcyLCAxOTMsIDcwLCAKKyAgICA2NSwgODQsIDEyOCwgNzAsIDY1LCA4MiwgODMsIDIwMSwgNzAsIDY1LCA4MSwgMTI4LCA3MCwgNjUsIDgwLCAxMjgsIDcwLCAKKyAgICA2NSwgNzgsIDcxLCAxMjgsIDcwLCA2NSwgNzgsIDY5LCA4MiwgNzksIDgzLCA3MywgMjExLCA3MCwgNjUsIDc4LCAxMjgsIAorICAgIDcwLCA2NSwgNzcsIDczLCA3NiwgODksIDEyOCwgNzAsIDY1LCA3NiwgNzYsIDczLCA3OCwgMTk5LCA3MCwgNjUsIDc2LCA3NiwgCisgICAgNjksIDIwNiwgNzAsIDY1LCA3MywgNzYsIDg1LCA4MiwgNjksIDEyOCwgNzAsIDY1LCA3MywgNzIsIDg1LCAxMjgsIDcwLCAKKyAgICA2NSwgNzIsIDgyLCA2OSwgNzgsIDcyLCA2OSwgNzMsIDg0LCAxMjgsIDcwLCA2NSwgNjcsIDg0LCA3OSwgODIsIDg5LCAxMjgsIAorICAgIDcwLCA2NSwgNjcsIDg0LCA3OSwgMjEwLCA3MCwgNjUsIDY3LCA4MywgNzMsIDc3LCA3MywgNzYsIDE5NywgNzAsIDY1LCA2NywgCisgICAgNjksIDQ1LCA1NCwgMTI4LCA3MCwgNjUsIDY3LCA2OSwgNDUsIDUzLCAxMjgsIDcwLCA2NSwgNjcsIDY5LCA0NSwgNTIsIAorICAgIDEyOCwgNzAsIDY1LCA2NywgNjksIDQ1LCA1MSwgMTI4LCA3MCwgNjUsIDY3LCA2OSwgNDUsIDUwLCAxMjgsIDcwLCA2NSwgCisgICAgNjcsIDY5LCA0NSwgNDksIDEyOCwgNzAsIDY1LCA2NSwgNzcsIDY1LCA2OSwgMTI4LCA3MCwgNjUsIDY1LCA3MywgMTI4LCAKKyAgICA3MCwgNjUsIDY1LCA3MCwgODUsIDEyOCwgNzAsIDQ4LCA1MywgNTEsIDEyOCwgNzAsIDQ4LCA1MywgNTAsIDEyOCwgNzAsIAorICAgIDQ4LCA1MywgNDksIDY3LCAxMjgsIDcwLCA0OCwgNTMsIDQ5LCA2NiwgMTI4LCA3MCwgNDgsIDUzLCA0OSwgNjUsIDEyOCwgCisgICAgNzAsIDQ4LCA1MywgNDksIDEyOCwgNzAsIDQ4LCA1MywgNDgsIDEyOCwgNzAsIDQ4LCA1MiwgNTcsIDEyOCwgNzAsIDQ4LCAKKyAgICA1MiwgNTYsIDEyOCwgNzAsIDQ4LCA1MiwgNTUsIDY1LCAxMjgsIDcwLCA0OCwgNTIsIDU1LCAxMjgsIDcwLCA0OCwgNTIsIAorICAgIDU0LCA2NSwgMTI4LCA3MCwgNDgsIDUyLCA1NCwgMTI4LCA3MCwgNDgsIDUyLCA1MywgNjUsIDEyOCwgNzAsIDQ4LCA1MiwgCisgICAgNTMsIDEyOCwgNzAsIDQ4LCA1MiwgNTIsIDEyOCwgNzAsIDQ4LCA1MiwgNTEsIDEyOCwgNzAsIDQ4LCA1MiwgNTAsIDEyOCwgCisgICAgNzAsIDQ4LCA1MiwgNDksIDEyOCwgNzAsIDQ4LCA1MiwgNDgsIDEyOCwgNzAsIDQ4LCA1MSwgNTcsIDEyOCwgNzAsIDQ4LCAKKyAgICA1MSwgNTYsIDY1LCAxMjgsIDcwLCA0OCwgNTEsIDU2LCAxMjgsIDcwLCA0OCwgNTEsIDU1LCA2NSwgMTI4LCA3MCwgNDgsIAorICAgIDUxLCA1NSwgMTI4LCA3MCwgNDgsIDUxLCA1NCwgMTI4LCA3MCwgNDgsIDUxLCA1MywgMTI4LCA3MCwgNDgsIDUxLCA1MiwgCisgICAgMTI4LCA3MCwgNDgsIDUxLCA1MSwgMTI4LCA3MCwgNDgsIDUxLCA1MCwgMTI4LCA3MCwgNDgsIDUxLCA0OSwgNjUsIDEyOCwgCisgICAgNzAsIDQ4LCA1MSwgNDksIDEyOCwgNzAsIDQ4LCA1MSwgNDgsIDEyOCwgNzAsIDQ4LCA1MCwgNTcsIDEyOCwgNzAsIDQ4LCAKKyAgICA1MCwgNTYsIDEyOCwgNzAsIDQ4LCA1MCwgNTUsIDEyOCwgNzAsIDQ4LCA1MCwgNTQsIDEyOCwgNzAsIDQ4LCA1MCwgNTMsIAorICAgIDEyOCwgNzAsIDQ4LCA1MCwgNTIsIDEyOCwgNzAsIDQ4LCA1MCwgNTEsIDEyOCwgNzAsIDQ4LCA1MCwgNTAsIDEyOCwgNzAsIAorICAgIDQ4LCA1MCwgNDksIDY1LCAxMjgsIDcwLCA0OCwgNTAsIDQ5LCAxMjgsIDcwLCA0OCwgNTAsIDQ4LCAxMjgsIDcwLCA0OCwgCisgICAgNDksIDU3LCAxMjgsIDcwLCA0OCwgNDksIDU2LCAxMjgsIDcwLCA0OCwgNDksIDU1LCAxMjgsIDcwLCA0OCwgNDksIDU0LCAKKyAgICAxMjgsIDcwLCA0OCwgNDksIDUzLCAxMjgsIDcwLCA0OCwgNDksIDUyLCAxMjgsIDcwLCA0OCwgNDksIDUxLCA2NSwgMTI4LCAKKyAgICA3MCwgNDgsIDQ5LCA1MSwgMTI4LCA3MCwgNDgsIDQ5LCA1MCwgMTI4LCA3MCwgNDgsIDQ5LCA0OSwgMTI4LCA3MCwgNDgsIAorICAgIDQ5LCA0OCwgMTI4LCA3MCwgNDgsIDQ4LCA1NywgMTI4LCA3MCwgNDgsIDQ4LCA1NiwgMTI4LCA3MCwgNDgsIDQ4LCA1NSwgCisgICAgMTI4LCA3MCwgNDgsIDQ4LCA1NCwgMTI4LCA3MCwgNDgsIDQ4LCA1MywgMTI4LCA3MCwgNDgsIDQ4LCA1MiwgMTI4LCA3MCwgCisgICAgNDgsIDQ4LCA1MSwgMTI4LCA3MCwgNDgsIDQ4LCA1MCwgMTI4LCA3MCwgNDgsIDQ4LCA0OSwgNjUsIDEyOCwgNzAsIDQ4LCAKKyAgICA0OCwgNDksIDEyOCwgNjksIDkwLCAyMDAsIDY5LCA5MCwgNjksIDc4LCAxMjgsIDY5LCA5MCwgNjksIDIwNiwgNjksIDkwLCAKKyAgICAxMjgsIDY5LCA4OSwgNjksIDgzLCAxMjgsIDY5LCA4OSwgNjksIDcxLCA3NiwgNjUsIDgzLCA4MywgNjksIDgzLCAxMjgsIAorICAgIDY5LCA4OSwgNjYsIDY5LCA4OSwgNzAsIDczLCA3NiwgNzMsIDEyOCwgNjksIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA2OSwgCisgICAgODgsIDg0LCA4MiwgNjUsIDg0LCA2OSwgODIsIDgyLCA2OSwgODMsIDg0LCA4MiwgNzMsIDY1LCAyMDQsIDY5LCA4OCwgODQsIAorICAgIDgyLCA2NSwgNDUsIDc2LCA3OSwgMjE1LCA2OSwgODgsIDg0LCA4MiwgNjUsIDQ1LCA3MiwgNzMsIDcxLCAyMDAsIDY5LCA4OCwgCisgICAgODQsIDY5LCA3OCwgODMsIDczLCA3OSwgNzgsIDEyOCwgNjksIDg4LCA4NCwgNjksIDc4LCA2OCwgNjksIDE5NiwgNjksIDg4LCAKKyAgICA4MCwgODIsIDY5LCA4MywgODMsIDczLCA3OSwgNzgsIDc2LCA2OSwgODMsIDIxMSwgNjksIDg4LCA4MCwgNzksIDc4LCA2OSwgCisgICAgNzgsIDIxMiwgNjksIDg4LCA3OSwgMTI4LCA2OSwgODgsIDIwNywgNjksIDg4LCA3MywgODMsIDg0LCA4MywgMTI4LCA2OSwgCisgICAgODgsIDczLCA4MywgODQsIDEyOCwgNjksIDg4LCA3MiwgNjUsIDg1LCA4MywgODQsIDczLCA3OSwgNzgsIDEyOCwgNjksIDg4LCAKKyAgICA2NywgNzYsIDY1LCA3NywgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDY5LCA4OCwgNjcsIDc2LCA2NSwgNzcsIDY1LCA4NCwgCisgICAgNzMsIDc5LCAyMDYsIDY5LCA4OCwgNjcsIDcyLCA2NSwgNzgsIDcxLCA2OSwgMTI4LCA2OSwgODgsIDY3LCA2OSwgODMsIDgzLCAKKyAgICAxMjgsIDY5LCA4OCwgNjcsIDY5LCA3NiwgNzYsIDY5LCA3OCwgODQsIDEyOCwgNjksIDg3LCA2OSwgMTI4LCA2OSwgODYsIAorICAgIDY5LCA4MiwgNzEsIDgyLCA2OSwgNjksIDIwNiwgNjksIDg2LCA2OSwgNzgsIDczLCA3OCwgNzEsIDEyOCwgNjksIDg1LCA4MiwgCisgICAgNzksIDgwLCA2OSwgNjUsIDIwNiwgNjksIDg1LCA4MiwgNzksIDgwLCA2OSwgNDUsIDY1LCA3MCwgODIsIDczLCA2NywgNjUsIAorICAgIDEyOCwgNjksIDg1LCA4MiwgNzksIDQ1LCA2NywgODUsIDgyLCA4MiwgNjksIDc4LCA2NywgMjE3LCA2OSwgODUsIDgyLCAKKyAgICAyMDcsIDY5LCA4NSwgNzYsIDY5LCAyMTAsIDY5LCA4NSwgNDUsIDg1LCAxMjgsIDY5LCA4NSwgNDUsIDc5LCAxMjgsIDY5LCAKKyAgICA4NSwgNDUsIDY5LCA4NSwgMTI4LCA2OSwgODUsIDQ1LCA2OSwgNzksIDEyOCwgNjksIDg1LCA0NSwgNjksIDEyOCwgNjksIAorICAgIDg1LCA0NSwgNjUsIDEyOCwgNjksIDg0LCA4OCwgMTI4LCA2OSwgODQsIDc4LCA2NSwgNzIsIDg0LCA2NSwgMTI4LCA2OSwgCisgICAgODQsIDcyLCA2OSwgMjA0LCA2OSwgODQsIDY5LCA4MiwgNzksIDIwNiwgNjksIDg0LCA2OSwgODIsIDc4LCA3MywgODQsIDg5LCAKKyAgICAxMjgsIDY5LCA4NCwgNjYsIDEyOCwgNjksIDgzLCA4NSwgNzUsIDg1LCA4NSwgNjgsIDc5LCAxMjgsIDY5LCA4MywgODQsIAorICAgIDczLCA3NywgNjUsIDg0LCA2OSwgODMsIDEyOCwgNjksIDgzLCA4NCwgNzMsIDc3LCA2NSwgODQsIDY5LCAxOTYsIDY5LCA4MywgCisgICAgNzIsIDY5LCA1MSwgMTI4LCA2OSwgODMsIDcyLCA1MCwgNDksIDEyOCwgNjksIDgzLCA3MiwgMTc4LCA2OSwgODMsIDcyLCAKKyAgICA0OSwgNTQsIDEyOCwgNjksIDgzLCA2NywgNjUsIDgwLCA2OSwgMTI4LCA2OSwgODMsIDY3LCAxMjgsIDY5LCA4MywgNjUsIAorICAgIDEyOCwgNjksIDgzLCA0NSwgODQsIDY5LCAxMjgsIDY5LCA4MiwgODIsIDc5LCA4MiwgNDUsIDY2LCA2NSwgODIsIDgyLCA2OSwgCisgICAgMTk2LCA2OSwgODIsIDgyLCAxMjgsIDY5LCA4MiwgNzMsIDc4LCA1MCwgMTI4LCA2OSwgODIsIDcxLCAxMjgsIDY5LCA4MiwgCisgICAgNjUsIDgzLCAxOTcsIDY5LCA4MSwgODUsIDczLCA4NiwgNjUsIDc2LCA2OSwgNzgsIDIxMiwgNjksIDgxLCA4NSwgNzMsIDY4LCAKKyAgICAxMjgsIDY5LCA4MSwgODUsIDczLCA2NSwgNzgsIDcxLCA4NSwgNzYsIDY1LCAyMTAsIDY5LCA4MSwgODUsIDY1LCA3NiwgODMsIAorICAgIDEyOCwgNjksIDgxLCA4NSwgNjUsIDc2LCAyMTEsIDY5LCA4MSwgODUsIDY1LCA3NiwgMTI4LCA2OSwgODAsIDgzLCA3MywgCisgICAgNzYsIDc5LCA3OCwgMTI4LCA2OSwgODAsIDgzLCA3MywgNzYsIDc5LCAyMDYsIDY5LCA4MCwgNzksIDY3LCA3MiwgMTI4LCAKKyAgICA2OSwgODAsIDczLCA3MSwgODIsIDY1LCA4MCwgNzIsIDczLCAxOTUsIDY5LCA4MCwgNzMsIDY4LCA2NSwgODUsIDgyLCA2OSwgCisgICAgNjUsIDIwNiwgNjksIDgwLCA2OSwgNzgsIDg0LCA3MiwgNjksIDg0LCA3MywgMTk1LCA2OSwgODAsIDY5LCA3MSwgNjksIDgyLCAKKyAgICA3NywgNjUsIDEyOCwgNjksIDc5LCA4NCwgMTI4LCA2OSwgNzksIDc3LCAxMjgsIDY5LCA3OSwgNzYsIDcyLCA4OCwgMTI4LCAKKyAgICA2OSwgNzksIDc2LCAxMjgsIDY5LCA3OSwgNzIsIDEyOCwgNjksIDc4LCA4OSwgMTI4LCA2OSwgNzgsIDg2LCA2OSwgNzYsIAogICAgIDc5LCA4MCwgNjksIDEyOCwgNjksIDc4LCA4NiwgNjksIDc2LCA3OSwgODAsIDE5NywgNjksIDc4LCA4NSwgNzcsIDY5LCA4MiwgCiAgICAgNjUsIDg0LCA3MywgNzksIDIwNiwgNjksIDc4LCA4NCwgODIsIDg5LCA0NSwgNTAsIDEyOCwgNjksIDc4LCA4NCwgODIsIDg5LCAKICAgICA0NSwgNDksIDEyOCwgNjksIDc4LCA4NCwgODIsIDg5LCAxMjgsIDY5LCA3OCwgODQsIDgyLCAyMTcsIDY5LCA3OCwgODQsIAogICAgIDcyLCA4NSwgODMsIDczLCA2NSwgODMsIDc3LCAxMjgsIDY5LCA3OCwgODQsIDY5LCA4MiwgODAsIDgyLCA3MywgODMsIDY5LCAKICAgICAxMjgsIDY5LCA3OCwgODQsIDY5LCA4MiwgNzMsIDc4LCAxOTksIDY5LCA3OCwgODQsIDY5LCA4MiwgMTI4LCA2OSwgNzgsIAotICAgIDg0LCA2OSwgMjEwLCA2OSwgNzgsIDgxLCA4NSwgNzMsIDgyLCA4OSwgMTI4LCA2OSwgNzgsIDc5LCAyMTEsIDY5LCA3OCwgCi0gICAgNzgsIDEyOCwgNjksIDc4LCA3NiwgNjUsIDgyLCA3MSwgNjksIDc3LCA2OSwgNzgsIDg0LCAxMjgsIDY5LCA3OCwgNzEsIDczLCAKLSAgICA3OCwgNjksIDEyOCwgNjksIDc4LCA2OCwgNzksIDcwLCA3OSwgNzgsIDc5LCA3OCwgMTI4LCA2OSwgNzgsIDY4LCA3MywgNzgsIAotICAgIDE5OSwgNjksIDc4LCA2OCwgNjksIDgwLCAxMjgsIDY5LCA3OCwgNjgsIDY5LCA2NSwgODYsIDc5LCA4NSwgODIsIDEyOCwgCi0gICAgNjksIDc4LCA2NywgNzksIDg1LCA3OCwgODQsIDY5LCA4MiwgODMsIDEyOCwgNjksIDc4LCA2NywgNzYsIDc5LCA4MywgODUsIAotICAgIDgyLCA2OSwgMTI4LCA2OSwgNzgsIDY3LCA3NiwgNzksIDgzLCA3MywgNzgsIDE5OSwgNjksIDc4LCA2NywgMTI4LCA2OSwgCi0gICAgNzgsIDY1LCA4MiwgODgsIDczLCAyMTEsIDY5LCA3OCwgNjUsIDgyLCA3NywgNzksIDc4LCA3MywgNzksIDIxMSwgNjksIDc3LCAKLSAgICA4MCwgODQsIDIxNywgNjksIDc3LCA4MCwgNzIsIDY1LCA4NCwgNzMsIDE5NSwgNjksIDc3LCA4MCwgNzIsIDY1LCA4MywgNzMsIAotICAgIDIxMSwgNjksIDc3LCA2NiwgODIsIDc5LCA3MywgNjgsIDY5LCA4MiwgODksIDEyOCwgNjksIDc3LCA2NiwgNzYsIDY5LCA3NywgCi0gICAgMTI4LCA2OSwgNzcsIDY2LCA2OSwgNzYsIDc2LCA3MywgODMsIDcyLCA3NywgNjksIDc4LCA4NCwgMTI4LCA2OSwgNzcsIDY2LCAKLSAgICA2OSwgNjgsIDY4LCA3MywgNzgsIDcxLCAxMjgsIDY5LCA3NiwgODQsIDEyOCwgNjksIDc2LCA3NiwgNzMsIDgwLCA4MywgNzMsIAotICAgIDgzLCAxMjgsIDY5LCA3NiwgNzYsIDczLCA4MCwgODMsIDY5LCAxMjgsIDY5LCA3NiwgNzMsIDcwLCA3MywgMTI4LCA2OSwgCi0gICAgNzYsIDY5LCA4NiwgNjksIDc4LCA0NSwgODQsIDcyLCA3MywgODIsIDg0LCA4OSwgMTI4LCA2OSwgNzYsIDY5LCA4NiwgNjksIAotICAgIDc4LCAxMjgsIDY5LCA3NiwgNjksIDg2LCA2OSwgMjA2LCA2OSwgNzYsIDY5LCA4MCwgNzIsIDY1LCA3OCwgODQsIDEyOCwgCi0gICAgNjksIDc2LCA2OSwgNzcsIDY5LCA3OCwgMjEyLCA2OSwgNzYsIDY5LCA2NywgODQsIDgyLCA3MywgNjcsIDY1LCAyMDQsIDY5LCAKLSAgICA3NiwgNjksIDY3LCA4NCwgODIsIDczLCAxOTUsIDY5LCA3NiwgNjUsIDcwLCA4MiwgNzksIDc4LCAxMjgsIDY5LCA3NSwgODMsIAotICAgIDg0LCA4MiwgNjksIDgwLCA4NCwgNzksIDc4LCAxMjgsIDY5LCA3NSwgODMsIDEyOCwgNjksIDc1LCA3MCwgNzksIDc4LCA3MywgCi0gICAgODQsIDczLCA3NSwgNzksIDc4LCAxMjgsIDY5LCA3NSwgNjUsIDgyLCA2NSwgMTI4LCA2OSwgNzQsIDY5LCA2NywgMjEyLCAKLSAgICA2OSwgNzMsIDgzLCAxMjgsIDY5LCA3MywgNzEsIDcyLCA4NCwgODksIDEyOCwgNjksIDczLCA3MSwgNzIsIDg0LCAyMTcsIAotICAgIDY5LCA3MywgNzEsIDcyLCA4NCwgNzIsIDgzLCAxMjgsIDY5LCA3MywgNzEsIDcyLCA4NCwgNzIsIDIxMSwgNjksIDczLCA3MSwgCi0gICAgNzIsIDg0LCA3MiwgMTI4LCA2OSwgNzMsIDcxLCA3MiwgODQsIDY5LCA2OSwgNzgsIDEyOCwgNjksIDczLCA3MSwgNzIsIDg0LCAKLSAgICA2OSwgNjksIDIwNiwgNjksIDczLCA3MSwgNzIsIDg0LCA0NSwgODQsIDcyLCA3MywgODIsIDg0LCA4OSwgMTI4LCA2OSwgNzMsIAotICAgIDY5LCAxMjgsIDY5LCA3MiwgODcsIDY1LCAyMTgsIDY5LCA3MSwgODksIDgwLCA4NCwgNzksIDc2LCA3OSwgNzEsIDczLCA2NywgCi0gICAgNjUsIDIwNCwgNjksIDcxLCA3MywgODIsIDEyOCwgNjksIDcxLCA3MSwgMTI4LCA2OSwgNjksIDg5LCA2NSwgNzgsIDc4LCAKLSAgICA2NSwgMTI4LCA2OSwgNjksIDc1LCA2NSwgNjUsIDEyOCwgNjksIDY5LCA2NiwgNjksIDY5LCA3MCwgNzMsIDc2LCA3MywgCi0gICAgMTI4LCA2OSwgNjgsIDczLCA4NCwgNzksIDgyLCA3MywgNjUsIDIwNCwgNjksIDY4LCA3MywgNzgsIDEyOCwgNjksIDY4LCAKLSAgICA2OCwgMTI4LCA2OSwgNjYsIDY5LCA3MCwgNzMsIDc2LCA3MywgMTI4LCA2OSwgNjUsIDgzLCA4NCwgNjksIDgyLCAyMDYsIAotICAgIDY5LCA2NSwgODMsIDIxMiwgNjksIDY1LCA4MiwgODQsIDcyLCA3NiwgMjE3LCA2OSwgNjUsIDgyLCA4NCwgNzIsIDEyOCwgCi0gICAgNjksIDY1LCA4MiwgODQsIDIwMCwgNjksIDY1LCA4MiwgODMsIDEyOCwgNjksIDY1LCA4MiwgNzYsIDIxNywgNjksIDY1LCAKLSAgICA3NywgNzIsIDY1LCA3OCwgNjcsIDcyLCA3OSwgNzYsIDc2LCAxMjgsIDY5LCA2NSwgNzEsIDc2LCA2OSwgMTI4LCA2OSwgNjUsIAotICAgIDY4LCA3MiwgNjUsIDY4LCA3MiwgMTI4LCA2OSwgNjUsIDY2LCA3MiwgNjUsIDY4LCA3MiwgMTI4LCA2OSwgMTc4LCA2OSwgCi0gICAgNDgsIDUxLCA1NiwgMTI4LCA2OSwgNDgsIDUxLCA1NSwgMTI4LCA2OSwgNDgsIDUxLCA1NCwgMTI4LCA2OSwgNDgsIDUxLCAKLSAgICA1MiwgNjUsIDEyOCwgNjksIDQ4LCA1MSwgNTIsIDEyOCwgNjksIDQ4LCA1MSwgNTEsIDEyOCwgNjksIDQ4LCA1MSwgNTAsIAotICAgIDEyOCwgNjksIDQ4LCA1MSwgNDksIDEyOCwgNjksIDQ4LCA1MSwgNDgsIDEyOCwgNjksIDQ4LCA1MCwgNTcsIDEyOCwgNjksIAotICAgIDQ4LCA1MCwgNTYsIDY1LCAxMjgsIDY5LCA0OCwgNTAsIDU2LCAxMjgsIDY5LCA0OCwgNTAsIDU1LCAxMjgsIDY5LCA0OCwgCi0gICAgNTAsIDU0LCAxMjgsIDY5LCA0OCwgNTAsIDUzLCAxMjgsIDY5LCA0OCwgNTAsIDUyLCAxMjgsIDY5LCA0OCwgNTAsIDUxLCAKLSAgICAxMjgsIDY5LCA0OCwgNTAsIDUwLCAxMjgsIDY5LCA0OCwgNTAsIDQ5LCAxMjgsIDY5LCA0OCwgNTAsIDQ4LCA2NSwgMTI4LCAKLSAgICA2OSwgNDgsIDUwLCA0OCwgMTI4LCA2OSwgNDgsIDQ5LCA1NywgMTI4LCA2OSwgNDgsIDQ5LCA1NiwgMTI4LCA2OSwgNDgsIAotICAgIDQ5LCA1NSwgNjUsIDEyOCwgNjksIDQ4LCA0OSwgNTUsIDEyOCwgNjksIDQ4LCA0OSwgNTQsIDY1LCAxMjgsIDY5LCA0OCwgCi0gICAgNDksIDU0LCAxMjgsIDY5LCA0OCwgNDksIDUzLCAxMjgsIDY5LCA0OCwgNDksIDUyLCAxMjgsIDY5LCA0OCwgNDksIDUxLCAKLSAgICAxMjgsIDY5LCA0OCwgNDksIDUwLCAxMjgsIDY5LCA0OCwgNDksIDQ5LCAxMjgsIDY5LCA0OCwgNDksIDQ4LCAxMjgsIDY5LCAKLSAgICA0OCwgNDgsIDU3LCA2NSwgMTI4LCA2OSwgNDgsIDQ4LCA1NywgMTI4LCA2OSwgNDgsIDQ4LCA1NiwgNjUsIDEyOCwgNjksIAotICAgIDQ4LCA0OCwgNTYsIDEyOCwgNjksIDQ4LCA0OCwgNTUsIDEyOCwgNjksIDQ4LCA0OCwgNTQsIDEyOCwgNjksIDQ4LCA0OCwgCi0gICAgNTMsIDEyOCwgNjksIDQ4LCA0OCwgNTIsIDEyOCwgNjksIDQ4LCA0OCwgNTEsIDEyOCwgNjksIDQ4LCA0OCwgNTAsIDEyOCwgCi0gICAgNjksIDQ4LCA0OCwgNDksIDEyOCwgNjksIDQ1LCA3NywgNjUsIDczLCAyMDQsIDY4LCA5MCwgOTAsIDY5LCAxMjgsIDY4LCAKLSAgICA5MCwgODcsIDY5LCAxMjgsIDY4LCA5MCwgODUsIDEyOCwgNjgsIDkwLCA3OSwgMTI4LCA2OCwgOTAsIDc0LCA2OSwgMTI4LCAKLSAgICA2OCwgOTAsIDczLCAxMjgsIDY4LCA5MCwgNzIsIDY5LCAxMjgsIDY4LCA5MCwgNzIsIDY1LCAxMjgsIDY4LCA5MCwgNjksIAotICAgIDc2LCA3OSwgMTI4LCA2OCwgOTAsIDY5LCA2OSwgMTI4LCA2OCwgOTAsIDY5LCAxMjgsIDY4LCA5MCwgNjUsIDY1LCAxMjgsIAotICAgIDY4LCA5MCwgNjUsIDEyOCwgNjgsIDkwLCAxMjgsIDY4LCAyMTgsIDY4LCA4OSwgNzksIDEyOCwgNjgsIDg5LCAyMDcsIDY4LCAKLSAgICA4OSwgNjksIDcyLCAxMjgsIDY4LCA4OSwgNjksIDIwMCwgNjgsIDg3LCA3OSwgMTI4LCA2OCwgODcsIDY5LCAxMjgsIDY4LCAKLSAgICA4NywgNjUsIDEyOCwgNjgsIDg2LCA3MywgODMsIDg2LCA2NSwgODIsIDY1LCAxMjgsIDY4LCA4NiwgNjgsIDEyOCwgNjgsIAotICAgIDg2LCAxMjgsIDY4LCA4NSwgODQsIDczLCA2OSwgODMsIDEyOCwgNjgsIDg1LCA4MywgNzUsIDEyOCwgNjgsIDg1LCA4MywgCi0gICAgNzIsIDY5LCA3OCwgNzgsIDY1LCAxMjgsIDY4LCA4NSwgODIsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA2OCwgODUsIDgyLCAKLSAgICA1MCwgMTI4LCA2OCwgODUsIDgwLCA3OSwgNzgsIDY4LCA3MywgODUsIDIxMSwgNjgsIDg1LCA3OSwgODgsIDEyOCwgNjgsIAotICAgIDg1LCA3OSwgMTI4LCA2OCwgODUsIDc4LCA1MiwgMTI4LCA2OCwgODUsIDc4LCA1MSwgMTI4LCA2OCwgODUsIDc4LCAxNzksIAotICAgIDY4LCA4NSwgNzcsIDEyOCwgNjgsIDg1LCAyMDQsIDY4LCA4NSwgNzIsIDEyOCwgNjgsIDg1LCA3MSwgODUsIDY4LCAxMjgsIAotICAgIDY4LCA4NSwgNjYsIDUwLCAxMjgsIDY4LCA4NSwgNjYsIDEyOCwgNjgsIDg1LCAxOTQsIDY4LCA4MiwgODksIDEyOCwgNjgsIAotICAgIDgyLCAyMTcsIDY4LCA4MiwgODUsIDc3LCAxMjgsIDY4LCA4MiwgODUsIDIwNSwgNjgsIDgyLCA3OSwgODAsIDgzLCAxMjgsIAotICAgIDY4LCA4MiwgNzksIDgwLCA3NiwgNjksIDg0LCAxMjgsIDY4LCA4MiwgNzksIDgwLCA0NSwgODMsIDcyLCA2NSwgNjgsIDc5LCAKLSAgICA4NywgNjksIDE5NiwgNjgsIDgyLCA3OSwgNzcsIDY5LCA2OCwgNjUsIDgyLCAyMTcsIDY4LCA4MiwgNzMsIDg2LCA2OSwgCi0gICAgMTI4LCA2OCwgODIsIDczLCA4NiwgMTk3LCA2OCwgODIsIDczLCA3OCwgNzUsIDEyOCwgNjgsIDgyLCA3MywgMjA0LCA2OCwgCi0gICAgODIsIDY5LCA4MywgODMsIDEyOCwgNjgsIDgyLCA2NSwgODUsIDcxLCA3MiwgODQsIDIxMSwgNjgsIDgyLCA2NSwgNzcsIAotICAgIDEyOCwgNjgsIDgyLCA2NSwgNzEsIDc5LCA3OCwgMTI4LCA2OCwgODIsIDY1LCA3MSwgNzksIDIwNiwgNjgsIDgyLCA2NSwgCi0gICAgNzAsIDg0LCA3MywgNzgsIDE5OSwgNjgsIDgyLCA2NSwgNjcsIDcyLCA3NywgNjUsIDgzLCAxMjgsIDY4LCA4MiwgNjUsIDY3LCAKLSAgICA3MiwgNzcsIDY1LCAxMjgsIDY4LCA4MiwgNjUsIDY3LCA3MiwgNzcsIDE5MywgNjgsIDc5LCA4NywgNzgsIDg3LCA2NSwgODIsIAotICAgIDY4LCA4MywgMTI4LCA2OCwgNzksIDg3LCA3OCwgODcsIDY1LCA4MiwgNjgsIDIxMSwgNjgsIDc5LCA4NywgNzgsIDQ1LCA4MCwgCi0gICAgNzksIDczLCA3OCwgODQsIDczLCA3OCwgMTk5LCA2OCwgNzksIDg3LCA3OCwgMTI4LCA2OCwgNzksIDg2LCA2OSwgMTI4LCAKLSAgICA2OCwgNzksIDg1LCA3MSwgNzIsIDc4LCA4NSwgODQsIDEyOCwgNjgsIDc5LCA4NSwgNjYsIDg0LCAxMjgsIDY4LCA3OSwgODUsIAotICAgIDY2LCA3NiwgNjksIDE5NiwgNjgsIDc5LCA4NSwgNjYsIDc2LCA2OSwgNDUsIDc2LCA3MywgNzgsIDE5NywgNjgsIDc5LCA4NSwgCi0gICAgNjYsIDc2LCA2OSwgNDUsIDY5LCA3OCwgNjgsIDY5LCAxOTYsIDY4LCA3OSwgODUsIDY2LCA3NiwgNjksIDEyOCwgNjgsIDc5LCAKLSAgICA4NCwgODQsIDY5LCA2OCwgNDUsIDgwLCAxMjgsIDY4LCA3OSwgODQsIDg0LCA2OSwgNjgsIDQ1LCA3OCwgMTI4LCA2OCwgNzksIAotICAgIDg0LCA4NCwgNjksIDY4LCA0NSwgNzYsIDEyOCwgNjgsIDc5LCA4NCwgODQsIDY5LCA2OCwgMTI4LCA2OCwgNzksIDg0LCA4NCwgCi0gICAgNjksIDE5NiwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDU1LCA1NiwgMTI4LCAKLSAgICA2OCwgNzksIDg0LCA4MywgNDUsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIAotICAgIDgzLCA0NSwgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgCi0gICAgNDUsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTMsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTMsIDU1LCAKLSAgICA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUzLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUzLCA1NCwgNTYsIAotICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUzLCA1NCwgCi0gICAgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MywgMTI4LCAKLSAgICA2OCwgNzksIDg0LCA4MywgNDUsIDUyLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUyLCA1NSwgNTYsIDEyOCwgNjgsIAotICAgIDc5LCA4NCwgODMsIDQ1LCA1MiwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MiwgNTQsIDU2LCAxMjgsIDY4LCA3OSwgCi0gICAgODQsIDgzLCA0NSwgNTIsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MiwgNTQsIDU1LCAxMjgsIDY4LCAKLSAgICA3OSwgODQsIDgzLCA0NSwgNTIsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTIsIDUzLCA1NiwgMTI4LCA2OCwgNzksIAotICAgIDg0LCA4MywgNDUsIDUyLCA1MywgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTIsIDUzLCA1NSwgMTI4LCA2OCwgCi0gICAgNzksIDg0LCA4MywgNDUsIDUyLCA1MywgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTIsIDUzLCA1NCwgNTUsIAotICAgIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTIsIDUzLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MiwgCi0gICAgNTMsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTIsIDUzLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTIsIAotICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTUsIDU2LCAKLSAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDU0LCA1NiwgCi0gICAgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDU0LCAKLSAgICA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MywgNTYsIAotICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTMsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MywgCi0gICAgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCAKLSAgICA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIAotICAgIDgzLCA0NSwgNTEsIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgCi0gICAgNDUsIDUxLCA1MiwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTIsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCAKLSAgICA4MywgNDUsIDUxLCA1MiwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTIsIDU0LCA1NiwgMTI4LCA2OCwgNzksIAotICAgIDg0LCA4MywgNDUsIDUxLCA1MiwgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MiwgNTQsIDU1LCAKLSAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDUyLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MiwgNTMsIAotICAgIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDUyLCA1MywgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCi0gICAgNTEsIDUyLCA1MywgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTIsIDUzLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCAKLSAgICA4NCwgODMsIDQ1LCA1MSwgNTIsIDUzLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDUyLCA1MywgCi0gICAgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDUyLCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCAKLSAgICA1MSwgNTIsIDUzLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDUyLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIAotICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTUsIDU2LCAKLSAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDU0LCA1NiwgCi0gICAgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDU0LCAKLSAgICA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MywgNTYsIAotICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTMsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MywgCi0gICAgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCAKLSAgICA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIAotICAgIDgzLCA0NSwgNTAsIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgCi0gICAgNDUsIDUwLCA1MiwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTIsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCAKLSAgICA4MywgNDUsIDUwLCA1MiwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTIsIDU0LCA1NiwgMTI4LCA2OCwgNzksIAotICAgIDg0LCA4MywgNDUsIDUwLCA1MiwgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MiwgNTQsIDU1LCAKLSAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUyLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MiwgNTMsIAotICAgIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUyLCA1MywgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCi0gICAgNTAsIDUyLCA1MywgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTIsIDUzLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCAKLSAgICA4NCwgODMsIDQ1LCA1MCwgNTIsIDUzLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUyLCA1MywgCi0gICAgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUyLCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCAKLSAgICA1MCwgNTIsIDUzLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUyLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIAotICAgIDUxLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCi0gICAgNTAsIDUxLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCAKLSAgICA0NSwgNTAsIDUxLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1NCwgNTUsIDEyOCwgNjgsIAotICAgIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1MywgNTYsIDEyOCwgCi0gICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUzLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIAotICAgIDUzLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgCi0gICAgNDUsIDUwLCA1MSwgNTMsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUzLCA1NCwgNTUsIAotICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgCi0gICAgNTMsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUyLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCAKLSAgICA1MSwgNTIsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTIsIDU1LCAxMjgsIDY4LCA3OSwgODQsIAotICAgIDgzLCA0NSwgNTAsIDUxLCA1MiwgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1MiwgNTQsIDU1LCAKLSAgICA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTIsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIAotICAgIDUwLCA1MSwgNTIsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1MiwgNTMsIDU2LCAxMjgsIDY4LCA3OSwgCi0gICAgODQsIDgzLCA0NSwgNTAsIDUxLCA1MiwgNTMsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTIsIAotICAgIDUzLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTIsIDUzLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgCi0gICAgODMsIDQ1LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTIsIAotICAgIDUzLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUyLCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgCi0gICAgODMsIDQ1LCA1MCwgNTEsIDUyLCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTIsIDEyOCwgNjgsIDc5LCAKLSAgICA4NCwgODMsIDQ1LCA1MCwgNTEsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIAotICAgIDQ5LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgCi0gICAgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDU0LCAKLSAgICA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIAotICAgIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUzLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MywgCi0gICAgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUzLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAKLSAgICA1MywgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUzLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIAotICAgIDgzLCA0NSwgNDksIDUzLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTMsIDU0LCAxMjgsIDY4LCA3OSwgCi0gICAgODQsIDgzLCA0NSwgNDksIDUzLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCA1NiwgMTI4LCA2OCwgNzksIDg0LCAKLSAgICA4MywgNDUsIDQ5LCA1MiwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCA1NSwgMTI4LCA2OCwgNzksIAotICAgIDg0LCA4MywgNDUsIDQ5LCA1MiwgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCA1NCwgNTUsIDU2LCAKLSAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTIsIAotICAgIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCA1MywgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgCi0gICAgNTIsIDUzLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTIsIDUzLCA1NSwgMTI4LCA2OCwgNzksIDg0LCAKLSAgICA4MywgNDUsIDQ5LCA1MiwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MiwgNTMsIDU0LCA1NSwgCi0gICAgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTIsIDUzLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCAKLSAgICA0OSwgNTIsIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MiwgNTMsIDEyOCwgNjgsIDc5LCA4NCwgODMsIAotICAgIDQ1LCA0OSwgNTIsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCi0gICAgNDksIDUxLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCAKLSAgICA0NSwgNDksIDUxLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIAotICAgIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTQsIDEyOCwgCi0gICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDUzLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTMsIAotICAgIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCi0gICAgNDksIDUxLCA1MywgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MywgNTQsIDU1LCA1NiwgMTI4LCAKLSAgICA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTMsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgCi0gICAgNTMsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAKLSAgICA1MSwgNTIsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MiwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIAotICAgIDgzLCA0NSwgNDksIDUxLCA1MiwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDUyLCA1NCwgNTYsIDEyOCwgCi0gICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDUyLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIAotICAgIDUxLCA1MiwgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MiwgNTQsIDEyOCwgNjgsIDc5LCA4NCwgCi0gICAgODMsIDQ1LCA0OSwgNTEsIDUyLCA1MywgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDUyLCA1MywgNTUsIAotICAgIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MiwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCi0gICAgNDksIDUxLCA1MiwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTIsIDUzLCA1NCwgNTUsIAotICAgIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MiwgNTMsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgCi0gICAgNDUsIDQ5LCA1MSwgNTIsIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTIsIDUzLCAxMjgsIDY4LCAKLSAgICA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgMTI4LCA2OCwgNzksIAotICAgIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDU1LCA1NiwgMTI4LCA2OCwgCi0gICAgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDU0LCA1NiwgMTI4LCAKLSAgICA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgCi0gICAgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAKLSAgICA1MCwgNTMsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MywgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIAotICAgIDgzLCA0NSwgNDksIDUwLCA1MywgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUzLCA1NCwgNTYsIDEyOCwgCi0gICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUzLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIAotICAgIDUwLCA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgCi0gICAgODMsIDQ1LCA0OSwgNTAsIDUzLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgNTYsIDEyOCwgNjgsIDc5LCAKLSAgICA4NCwgODMsIDQ1LCA0OSwgNTAsIDUyLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUyLCA1NSwgCi0gICAgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTIsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAKLSAgICA1MCwgNTIsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUyLCA1NCwgNTUsIDEyOCwgNjgsIAotICAgIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUyLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTIsIDUzLCAKLSAgICA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTIsIDUzLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIAotICAgIDQ1LCA0OSwgNTAsIDUyLCA1MywgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUyLCA1MywgNTQsIDU2LCAKLSAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIAotICAgIDQ1LCA0OSwgNTAsIDUyLCA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgNTMsIDU0LCAKLSAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgNTMsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIAotICAgIDUyLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgCi0gICAgNTAsIDUxLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1NSwgMTI4LCA2OCwgNzksIDg0LCAKLSAgICA4MywgNDUsIDQ5LCA1MCwgNTEsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDU0LCA1NSwgCi0gICAgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCAKLSAgICA0OSwgNTAsIDUxLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUzLCA1NiwgMTI4LCA2OCwgNzksIAotICAgIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUzLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCAKLSAgICA1MywgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MywgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIAotICAgIDgzLCA0NSwgNDksIDUwLCA1MSwgNTMsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCAKLSAgICA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTMsIDU0LCAxMjgsIDY4LCA3OSwgODQsIAotICAgIDgzLCA0NSwgNDksIDUwLCA1MSwgNTMsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTYsIDEyOCwgCi0gICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIAotICAgIDUwLCA1MSwgNTIsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTIsIDU0LCA1NiwgMTI4LCA2OCwgCi0gICAgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUyLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIAotICAgIDUwLCA1MSwgNTIsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUyLCA1NCwgMTI4LCA2OCwgCi0gICAgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIAotICAgIDUxLCA1MiwgNTMsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTUsIDEyOCwgCi0gICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIAotICAgIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUyLCAKLSAgICA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NCwgMTI4LCA2OCwgNzksIAotICAgIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUyLCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUyLCAKLSAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgCi0gICAgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAxMjgsIDY4LCA3OSwgODQsIDgzLCAxMjgsIDY4LCA3OSwgODQsIDc2LCAKLSAgICA2OSwgODMsIDIxMSwgNjgsIDc5LCA4MiwgODUsIDEyOCwgNjgsIDc5LCA3OSwgODIsIDEyOCwgNjgsIDc5LCA3OSwgNzgsIAotICAgIDcxLCAxMjgsIDY4LCA3OSwgNzgsIDcxLCAxMjgsIDY4LCA3OSwgNzcsIDY1LCA3MywgMjA2LCA2OCwgNzksIDc2LCA4MCwgCi0gICAgNzIsIDczLCA3OCwgMTI4LCA2OCwgNzksIDc2LCA3NiwgODMsIDEyOCwgNjgsIDc5LCA3NiwgNzYsIDY1LCAyMTAsIDY4LCAKLSAgICA3OSwgNzYsIDczLCA4NSwgNzcsIDEyOCwgNjgsIDc5LCA3NSwgNzcsIDY1LCA3MywgMTI4LCA2OCwgNzksIDczLCA4NCwgCi0gICAgMTI4LCA2OCwgNzksIDcxLCAxMjgsIDY4LCA3OSwgMTk5LCA2OCwgNzksIDY5LCAyMTEsIDY4LCA3OSwgNjgsIDY5LCA3NSwgCi0gICAgNjUsIDg0LCA2NSwgMTI4LCA2OCwgNzksIDY2LCA4MiwgNzksIDEyOCwgNjgsIDc5LCA2NSwgNjcsIDcyLCA2NSwgODMsIDcyLCAKLSAgICA3NywgNjksIDY5LCAxMjgsIDY4LCA3OSwgNjUsIDY3LCA3MiwgNjUsIDgzLCA3MiwgNzcsIDY5LCAxOTcsIDY4LCA3OSwgNjUsIAotICAgIDEyOCwgNjgsIDc5LCA0NSwgNzksIDEyOCwgNjgsIDc3LCAxMjgsIDY4LCAyMDUsIDY4LCA3NiwgODUsIDEyOCwgNjgsIDc2LCAKLSAgICA3OSwgMTI4LCA2OCwgNzYsIDczLCAxMjgsIDY4LCA3NiwgNjksIDY5LCAxMjgsIDY4LCA3NiwgNjUsIDEyOCwgNjgsIDc2LCAKLSAgICAxMjgsIDY4LCA3NSwgNjUsIDgyLCAxMjgsIDY4LCA3NSwgNjUsIDIxMCwgNjgsIDc0LCA2OSwgODIsIDg2LCA3MywgMTI4LCAKLSAgICA2OCwgNzQsIDY5LCA4MiwgODYsIDEyOCwgNjgsIDc0LCA2OSwgMTI4LCA2OCwgNzQsIDY1LCAxMjgsIDY4LCA3NCwgMTI4LCAKLSAgICA2OCwgNzMsIDkwLCA5MCwgMjE3LCA2OCwgNzMsIDg2LCA3OSwgODIsIDY3LCAxOTcsIDY4LCA3MywgODYsIDczLCA4MywgNzMsIAotICAgIDc5LCA3OCwgMTI4LCA2OCwgNzMsIDg2LCA3MywgODMsIDczLCA3OSwgMjA2LCA2OCwgNzMsIDg2LCA3MywgNzgsIDY1LCA4NCwgCi0gICAgNzMsIDc5LCA3OCwgMTI4LCA2OCwgNzMsIDg2LCA3MywgNjgsIDY5LCA4MywgMTI4LCA2OCwgNzMsIDg2LCA3MywgNjgsIDY5LCAKLSAgICA4MiwgMTI4LCA2OCwgNzMsIDg2LCA3MywgNjgsIDY5LCAxOTYsIDY4LCA3MywgODYsIDczLCA2OCwgNjksIDEyOCwgNjgsIAotICAgIDczLCA4NiwgNzMsIDY4LCAxOTcsIDY4LCA3MywgODYsIDY5LCA4MiwgNzEsIDY5LCA3OCwgNjcsIDY5LCAxMjgsIDY4LCA3MywgCi0gICAgODQsIDg0LCAyMDcsIDY4LCA3MywgODMsIDg0LCA3OSwgODIsIDg0LCA3MywgNzksIDc4LCAxMjgsIDY4LCA3MywgODMsIDg0LCAKLSAgICA3MywgNzgsIDcxLCA4NSwgNzMsIDgzLCA3MiwgMTI4LCA2OCwgNzMsIDgzLCA4NCwgNzMsIDc2LCA3NiwgMTI4LCA2OCwgNzMsIAotICAgIDgzLCA4MywgNzksIDc2LCA4NiwgNjksIDQ1LCA1MCwgMTI4LCA2OCwgNzMsIDgzLCA4MywgNzksIDc2LCA4NiwgNjksIDEyOCwgCi0gICAgNjgsIDczLCA4MywgODAsIDY5LCA4MiwgODMsIDczLCA3OSwgNzgsIDEyOCwgNjgsIDczLCA4MywgNzUsIDEyOCwgNjgsIDczLCAKLSAgICA4MywgNzMsIDc3LCA3OSwgODUsIDEyOCwgNjgsIDczLCA4MywgNzIsIDEyOCwgNjgsIDczLCA4MywgNjcsIDc5LCA3OCwgODQsIAotICAgIDczLCA3OCwgODUsIDc5LCA4NSwgMjExLCA2OCwgNzMsIDgzLCAxOTUsIDY4LCA3MywgODMsIDY1LCA4MCwgODAsIDc5LCA3MywgCi0gICAgNzgsIDg0LCA2OSwgMTk2LCA2OCwgNzMsIDgzLCA2NSwgNjYsIDc2LCA2OSwgMTk2LCA2OCwgNzMsIDgyLCA3MSwgMTkzLCAKLSAgICA2OCwgNzMsIDgyLCA2OSwgNjcsIDg0LCA3NiwgMjE3LCA2OCwgNzMsIDgyLCA2OSwgNjcsIDg0LCA3MywgNzksIDc4LCA2NSwgCi0gICAgMjA0LCA2OCwgNzMsIDgwLCA4NCwgNjksIDEyOCwgNjgsIDczLCA4MCwgODAsIDY5LCA4MiwgMTI4LCA2OCwgNzMsIDgwLCAKLSAgICA3NiwgNzksIDg1LCA3OCwgMTI4LCA2OCwgNzMsIDgwLCA3NiwgNzMsIDEyOCwgNjgsIDczLCA4MCwgNzYsIDIwMSwgNjgsIAotICAgIDczLCA3OCwgNzEsIDY2LCA2NSwgMjEyLCA2OCwgNzMsIDIwNiwgNjgsIDczLCA3NywgNzcsIDczLCA3OCwgNzEsIDEyOCwgCi0gICAgNjgsIDczLCA3NywgNzMsIDc4LCA4NSwgODQsIDczLCA3OSwgNzgsIDQ1LCA1MSwgMTI4LCA2OCwgNzMsIDc3LCA3MywgNzgsIAotICAgIDg1LCA4NCwgNzMsIDc5LCA3OCwgNDUsIDUwLCAxMjgsIDY4LCA3MywgNzcsIDczLCA3OCwgODUsIDg0LCA3MywgNzksIDc4LCAKLSAgICA0NSwgNDksIDEyOCwgNjgsIDczLCA3NywgNzMsIDc4LCA3MywgODMsIDcyLCA3NywgNjksIDc4LCA4NCwgMTI4LCA2OCwgNzMsIAotICAgIDc3LCA3MywgNjgsIDczLCAxOTMsIDY4LCA3MywgNzcsIDY5LCA3OCwgODMsIDczLCA3OSwgNzgsIDY1LCAyMDQsIDY4LCA3MywgCi0gICAgNzcsIDY5LCA3OCwgODMsIDczLCA3OSwgMjA2LCA2OCwgNzMsIDc3LCA1MCwgMTI4LCA2OCwgNzMsIDc2LCAxMjgsIDY4LCAKLSAgICA3MywgNzEsIDgyLCA2NSwgODAsIDcyLCAxMjgsIDY4LCA3MywgNzEsIDgyLCA2NSwgODAsIDIwMCwgNjgsIDczLCA3MSwgODIsIAotICAgIDY1LCA3NywgNzcsIDc5LCAyMTEsIDY4LCA3MywgNzEsIDgyLCA2NSwgNzcsIDc3LCAxOTMsIDY4LCA3MywgNzEsIDgyLCA2NSwgCi0gICAgMjA1LCA2OCwgNzMsIDcxLCA3OSwgODIsIDcxLCA3OSwgNzgsIDEyOCwgNjgsIDczLCA3MSwgNzksIDgyLCA3MSwgNzksIAotICAgIDIwNiwgNjgsIDczLCA3MSwgNjUsIDc3LCA3NywgNjUsIDEyOCwgNjgsIDczLCA3MSwgMTkzLCA2OCwgNzMsIDcwLCA4NCwgCi0gICAgNzksIDcxLCA3MSwgNzksIDIxMSwgNjgsIDczLCA3MCwgNzksIDc4LCA3MywgNjUsIDgzLCAxMjgsIDY4LCA3MywgNzAsIDcwLCAKLSAgICA3MywgNjcsIDg1LCA3NiwgODQsIDIxNywgNjgsIDczLCA3MCwgNzAsIDczLCA2NywgODUsIDc2LCA4NCwgNzMsIDY5LCA4MywgCi0gICAgMTI4LCA2OCwgNzMsIDcwLCA3MCwgNjksIDgyLCA2OSwgNzgsIDg0LCA3MywgNjUsIDc2LCAxMjgsIDY4LCA3MywgNzAsIDcwLCAKLSAgICA2OSwgODIsIDY5LCA3OCwgNjcsIDE5NywgNjgsIDczLCA3MCwgNjUsIDg0LCAxMjgsIDY4LCA3MywgNjksIDgzLCA3MywgODMsIAotICAgIDEyOCwgNjgsIDczLCA2OSwgODMsIDczLCAyMTEsIDY4LCA3MywgNjksIDgwLCAxMjgsIDY4LCA3MywgMTk3LCA2OCwgNzMsIAotICAgIDY2LCAxMjgsIDY4LCA3MywgNjUsIDg0LCA3OSwgNzgsIDc5LCAyMDYsIDY4LCA3MywgNjUsIDg0LCA3OSwgNzgsIDczLCA3NSwgCi0gICAgMjAxLCA2OCwgNzMsIDY1LCA4MywgODQsIDc5LCA3NiwgMjAxLCA2OCwgNzMsIDY1LCA3NywgNzksIDc4LCA2OCwgODMsIAotICAgIDEyOCwgNjgsIDczLCA2NSwgNzcsIDc5LCA3OCwgNjgsIDEyOCwgNjgsIDczLCA2NSwgNzcsIDc5LCA3OCwgMTk2LCA2OCwgCi0gICAgNzMsIDY1LCA3NywgNjksIDg0LCA2OSwgMjEwLCA2OCwgNzMsIDY1LCA3NiwgODksIDg0LCA3MywgNzUsIDY1LCAxMjgsIDY4LCAKLSAgICA3MywgNjUsIDc2LCA4OSwgODQsIDczLCA3NSwgMTkzLCA2OCwgNzMsIDY1LCA3NiwgNjksIDY3LCA4NCwgNDUsIDIwOCwgNjgsIAotICAgIDczLCA2NSwgNzEsIDc5LCA3OCwgNjUsIDc2LCAxMjgsIDY4LCA3MywgNjUsIDcxLCA3OSwgNzgsIDY1LCAyMDQsIDY4LCA3MywgCi0gICAgNjUsIDY5LCA4MiwgNjksIDgzLCA3MywgOTAsIDY5LCAxOTYsIDY4LCA3MywgNjUsIDY5LCA4MiwgNjksIDgzLCA3MywgODMsIAotICAgIDEyOCwgNjgsIDczLCA2NSwgNjksIDgyLCA2OSwgODMsIDczLCAyMTEsIDY4LCA3MiwgNzksIDg1LCAxMjgsIDY4LCA3MiwgCi0gICAgNzksIDc5LCAxMjgsIDY4LCA3MiwgNzksIDEyOCwgNjgsIDcyLCA3MywgMTI4LCA2OCwgNzIsIDcyLCA4NSwgMTI4LCA2OCwgCi0gICAgNzIsIDcyLCA3OSwgNzksIDEyOCwgNjgsIDcyLCA3MiwgNzksIDEyOCwgNjgsIDcyLCA3MiwgNzMsIDEyOCwgNjgsIDcyLCAKLSAgICA3MiwgNjksIDY5LCAxMjgsIDY4LCA3MiwgNzIsIDY5LCAxMjgsIDY4LCA3MiwgNzIsIDY1LCAxMjgsIDY4LCA3MiwgNjksIAotICAgIDY5LCAxMjgsIDY4LCA3MiwgNjUsIDgyLCA3NywgNjUsIDEyOCwgNjgsIDcyLCA2NSwgNzYsIDY5LCA4NCwgNzIsIDEyOCwgCi0gICAgNjgsIDcyLCA2NSwgNzYsIDY1LCA4NCwgNzIsIDEyOCwgNjgsIDcyLCA2NSwgNzYsIDEyOCwgNjgsIDcyLCA2NSwgNjgsIDcyLCAKLSAgICA2OSwgMTI4LCA2OCwgNzIsIDY1LCA2NSwgNzYsIDg1LCAxMjgsIDY4LCA3MiwgNjUsIDEyOCwgNjgsIDY5LCA5MCwgMjAwLCAKKyAgICA4NCwgNjksIDIxMCwgNjksIDc4LCA4MSwgODUsIDczLCA4MiwgODksIDEyOCwgNjksIDc4LCA4MSwgMTI4LCA2OSwgNzgsIAorICAgIDc5LCAyMTEsIDY5LCA3OCwgNzgsIDEyOCwgNjksIDc4LCA3NiwgNjUsIDgyLCA3MSwgNjksIDc3LCA2OSwgNzgsIDg0LCAKKyAgICAxMjgsIDY5LCA3OCwgNzEsIDczLCA3OCwgNjksIDEyOCwgNjksIDc4LCA2OCwgNzksIDcwLCA3OSwgNzgsIDc5LCA3OCwgCisgICAgMTI4LCA2OSwgNzgsIDY4LCA3MywgNzgsIDE5OSwgNjksIDc4LCA2OCwgNjksIDgwLCAxMjgsIDY5LCA3OCwgNjgsIDY5LCAKKyAgICA2NSwgODYsIDc5LCA4NSwgODIsIDEyOCwgNjksIDc4LCA2NywgNzksIDg1LCA3OCwgODQsIDY5LCA4MiwgODMsIDEyOCwgNjksIAorICAgIDc4LCA2NywgNzYsIDc5LCA4MywgODUsIDgyLCA2OSwgMTI4LCA2OSwgNzgsIDY3LCA3NiwgNzksIDgzLCA3MywgNzgsIDE5OSwgCisgICAgNjksIDc4LCA2NywgMTI4LCA2OSwgNzgsIDY1LCA4MiwgODgsIDczLCAyMTEsIDY5LCA3OCwgNjUsIDgyLCA3NywgNzksIDc4LCAKKyAgICA3MywgNzksIDIxMSwgNjksIDc3LCA4MCwgODQsIDIxNywgNjksIDc3LCA4MCwgNzIsIDY1LCA4NCwgNzMsIDE5NSwgNjksIAorICAgIDc3LCA4MCwgNzIsIDY1LCA4MywgNzMsIDIxMSwgNjksIDc3LCA2NiwgODIsIDc5LCA3MywgNjgsIDY5LCA4MiwgODksIDEyOCwgCisgICAgNjksIDc3LCA2NiwgNzYsIDY5LCA3NywgMTI4LCA2OSwgNzcsIDY2LCA2OSwgNzYsIDc2LCA3MywgODMsIDcyLCA3NywgNjksIAorICAgIDc4LCA4NCwgMTI4LCA2OSwgNzcsIDY2LCA2OSwgNjgsIDY4LCA3MywgNzgsIDcxLCAxMjgsIDY5LCA3NiwgODQsIDEyOCwgCisgICAgNjksIDc2LCA3NiwgNzMsIDgwLCA4NCwgNzMsIDE5NSwgNjksIDc2LCA3NiwgNzMsIDgwLCA4MywgNzMsIDgzLCAxMjgsIDY5LCAKKyAgICA3NiwgNzYsIDczLCA4MCwgODMsIDY5LCAxMjgsIDY5LCA3NiwgNzMsIDcwLCA3MywgMTI4LCA2OSwgNzYsIDY5LCA4NiwgNjksIAorICAgIDc4LCA0NSwgODQsIDcyLCA3MywgODIsIDg0LCA4OSwgMTI4LCA2OSwgNzYsIDY5LCA4NiwgNjksIDc4LCAxMjgsIDY5LCA3NiwgCisgICAgNjksIDg2LCA2OSwgMjA2LCA2OSwgNzYsIDY5LCA4MCwgNzIsIDY1LCA3OCwgODQsIDEyOCwgNjksIDc2LCA2OSwgNzcsIDY5LCAKKyAgICA3OCwgMjEyLCA2OSwgNzYsIDY5LCA2NywgODQsIDgyLCA3MywgNjcsIDY1LCAyMDQsIDY5LCA3NiwgNjksIDY3LCA4NCwgODIsIAorICAgIDczLCAxOTUsIDY5LCA3NiwgNjUsIDcwLCA4MiwgNzksIDc4LCAxMjgsIDY5LCA3NSwgODMsIDg0LCA4MiwgNjksIDgwLCA4NCwgCisgICAgNzksIDc4LCAxMjgsIDY5LCA3NSwgODMsIDEyOCwgNjksIDc1LCA3MCwgNzksIDc4LCA3MywgODQsIDczLCA3NSwgNzksIDc4LCAKKyAgICAxMjgsIDY5LCA3NSwgNjUsIDgyLCA2NSwgMTI4LCA2OSwgNzQsIDY5LCA2NywgMjEyLCA2OSwgNzMsIDgzLCAxMjgsIDY5LCAKKyAgICA3MywgNzEsIDcyLCA4NCwgODksIDEyOCwgNjksIDczLCA3MSwgNzIsIDg0LCAyMTcsIDY5LCA3MywgNzEsIDcyLCA4NCwgNzIsIAorICAgIDgzLCAxMjgsIDY5LCA3MywgNzEsIDcyLCA4NCwgNzIsIDIxMSwgNjksIDczLCA3MSwgNzIsIDg0LCA3MiwgMTI4LCA2OSwgCisgICAgNzMsIDcxLCA3MiwgODQsIDY5LCA2OSwgNzgsIDEyOCwgNjksIDczLCA3MSwgNzIsIDg0LCA2OSwgNjksIDIwNiwgNjksIDczLCAKKyAgICA3MSwgNzIsIDg0LCA0NSwgODQsIDcyLCA3MywgODIsIDg0LCA4OSwgMTI4LCA2OSwgNzMsIDY5LCAxMjgsIDY5LCA3MiwgODcsIAorICAgIDY1LCAyMTgsIDY5LCA3MSwgODksIDgwLCA4NCwgNzksIDc2LCA3OSwgNzEsIDczLCA2NywgNjUsIDIwNCwgNjksIDcxLCA3MywgCisgICAgODIsIDEyOCwgNjksIDcxLCA3MSwgMTI4LCA2OSwgNjksIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA2OSwgNjksIDc1LCAKKyAgICA2NSwgNjUsIDEyOCwgNjksIDY5LCA3MiwgMTI4LCA2OSwgNjksIDY2LCA2OSwgNjksIDcwLCA3MywgNzYsIDczLCAxMjgsIAorICAgIDY5LCA2OCwgNzMsIDg0LCA3OSwgODIsIDczLCA2NSwgMjA0LCA2OSwgNjgsIDczLCA3OCwgMTI4LCA2OSwgNjgsIDY4LCAKKyAgICAxMjgsIDY5LCA2NiwgNjksIDcwLCA3MywgNzYsIDczLCAxMjgsIDY5LCA2NSwgODMsIDg0LCA2OSwgODIsIDIwNiwgNjksIAorICAgIDY1LCA4MywgMjEyLCA2OSwgNjUsIDgyLCA4NCwgNzIsIDc2LCAyMTcsIDY5LCA2NSwgODIsIDg0LCA3MiwgMTI4LCA2OSwgCisgICAgNjUsIDgyLCA4NCwgMjAwLCA2OSwgNjUsIDgyLCA4MywgMTI4LCA2OSwgNjUsIDgyLCA3NiwgMjE3LCA2OSwgNjUsIDc3LCAKKyAgICA3MiwgNjUsIDc4LCA2NywgNzIsIDc5LCA3NiwgNzYsIDEyOCwgNjksIDY1LCA3MSwgNzYsIDY5LCAxMjgsIDY5LCA2NSwgNjgsIAorICAgIDcyLCA2NSwgNjgsIDcyLCAxMjgsIDY5LCA2NSwgNjYsIDcyLCA2NSwgNjgsIDcyLCAxMjgsIDY5LCAxNzgsIDY5LCA0OCwgCisgICAgNTEsIDU2LCAxMjgsIDY5LCA0OCwgNTEsIDU1LCAxMjgsIDY5LCA0OCwgNTEsIDU0LCAxMjgsIDY5LCA0OCwgNTEsIDUyLCAKKyAgICA2NSwgMTI4LCA2OSwgNDgsIDUxLCA1MiwgMTI4LCA2OSwgNDgsIDUxLCA1MSwgMTI4LCA2OSwgNDgsIDUxLCA1MCwgMTI4LCAKKyAgICA2OSwgNDgsIDUxLCA0OSwgMTI4LCA2OSwgNDgsIDUxLCA0OCwgMTI4LCA2OSwgNDgsIDUwLCA1NywgMTI4LCA2OSwgNDgsIAorICAgIDUwLCA1NiwgNjUsIDEyOCwgNjksIDQ4LCA1MCwgNTYsIDEyOCwgNjksIDQ4LCA1MCwgNTUsIDEyOCwgNjksIDQ4LCA1MCwgCisgICAgNTQsIDEyOCwgNjksIDQ4LCA1MCwgNTMsIDEyOCwgNjksIDQ4LCA1MCwgNTIsIDEyOCwgNjksIDQ4LCA1MCwgNTEsIDEyOCwgCisgICAgNjksIDQ4LCA1MCwgNTAsIDEyOCwgNjksIDQ4LCA1MCwgNDksIDEyOCwgNjksIDQ4LCA1MCwgNDgsIDY1LCAxMjgsIDY5LCAKKyAgICA0OCwgNTAsIDQ4LCAxMjgsIDY5LCA0OCwgNDksIDU3LCAxMjgsIDY5LCA0OCwgNDksIDU2LCAxMjgsIDY5LCA0OCwgNDksIAorICAgIDU1LCA2NSwgMTI4LCA2OSwgNDgsIDQ5LCA1NSwgMTI4LCA2OSwgNDgsIDQ5LCA1NCwgNjUsIDEyOCwgNjksIDQ4LCA0OSwgCisgICAgNTQsIDEyOCwgNjksIDQ4LCA0OSwgNTMsIDEyOCwgNjksIDQ4LCA0OSwgNTIsIDEyOCwgNjksIDQ4LCA0OSwgNTEsIDEyOCwgCisgICAgNjksIDQ4LCA0OSwgNTAsIDEyOCwgNjksIDQ4LCA0OSwgNDksIDEyOCwgNjksIDQ4LCA0OSwgNDgsIDEyOCwgNjksIDQ4LCAKKyAgICA0OCwgNTcsIDY1LCAxMjgsIDY5LCA0OCwgNDgsIDU3LCAxMjgsIDY5LCA0OCwgNDgsIDU2LCA2NSwgMTI4LCA2OSwgNDgsIAorICAgIDQ4LCA1NiwgMTI4LCA2OSwgNDgsIDQ4LCA1NSwgMTI4LCA2OSwgNDgsIDQ4LCA1NCwgMTI4LCA2OSwgNDgsIDQ4LCA1MywgCisgICAgMTI4LCA2OSwgNDgsIDQ4LCA1MiwgMTI4LCA2OSwgNDgsIDQ4LCA1MSwgMTI4LCA2OSwgNDgsIDQ4LCA1MCwgMTI4LCA2OSwgCisgICAgNDgsIDQ4LCA0OSwgMTI4LCA2OSwgNDUsIDc3LCA2NSwgNzMsIDIwNCwgNjgsIDkwLCA5MCwgNjksIDEyOCwgNjgsIDkwLCAKKyAgICA5MCwgNjUsIDEyOCwgNjgsIDkwLCA4NywgNjksIDEyOCwgNjgsIDkwLCA4NSwgMTI4LCA2OCwgOTAsIDc5LCAxMjgsIDY4LCAKKyAgICA5MCwgNzQsIDY5LCAxMjgsIDY4LCA5MCwgNzMsIDEyOCwgNjgsIDkwLCA3MiwgNjksIDEyOCwgNjgsIDkwLCA3MiwgNjUsIAorICAgIDEyOCwgNjgsIDkwLCA2OSwgNzYsIDc5LCAxMjgsIDY4LCA5MCwgNjksIDY5LCAxMjgsIDY4LCA5MCwgNjksIDEyOCwgNjgsIAorICAgIDkwLCA2NSwgNjUsIDEyOCwgNjgsIDkwLCA2NSwgMTI4LCA2OCwgOTAsIDEyOCwgNjgsIDIxOCwgNjgsIDg5LCA3OSwgMTI4LCAKKyAgICA2OCwgODksIDIwNywgNjgsIDg5LCA2OSwgNzIsIDEyOCwgNjgsIDg5LCA2OSwgMjAwLCA2OCwgODcsIDc5LCAxMjgsIDY4LCAKKyAgICA4NywgNjksIDEyOCwgNjgsIDg3LCA2NSwgMTI4LCA2OCwgODYsIDczLCA4MywgODYsIDY1LCA4MiwgNjUsIDEyOCwgNjgsIAorICAgIDg2LCA2OCwgMTI4LCA2OCwgODYsIDEyOCwgNjgsIDg1LCA4NCwgNzMsIDY5LCA4MywgMTI4LCA2OCwgODUsIDgzLCA3NSwgCisgICAgMTI4LCA2OCwgODUsIDgzLCA3MiwgNjksIDc4LCA3OCwgNjUsIDEyOCwgNjgsIDg1LCA4MiwgNjUsIDg0LCA3MywgNzksIDc4LCAKKyAgICAxMjgsIDY4LCA4NSwgODIsIDUwLCAxMjgsIDY4LCA4NSwgODAsIDc5LCA3OCwgNjgsIDczLCA4NSwgMjExLCA2OCwgODUsIAorICAgIDc5LCA4OCwgMTI4LCA2OCwgODUsIDc5LCAxMjgsIDY4LCA4NSwgNzgsIDUyLCAxMjgsIDY4LCA4NSwgNzgsIDUxLCAxMjgsIAorICAgIDY4LCA4NSwgNzgsIDE3OSwgNjgsIDg1LCA3NywgMTI4LCA2OCwgODUsIDIwNCwgNjgsIDg1LCA3MiwgMTI4LCA2OCwgODUsIAorICAgIDcxLCA4NSwgNjgsIDEyOCwgNjgsIDg1LCA2NiwgNTAsIDEyOCwgNjgsIDg1LCA2NiwgMTI4LCA2OCwgODUsIDE5NCwgNjgsIAorICAgIDgyLCA4OSwgMTI4LCA2OCwgODIsIDIxNywgNjgsIDgyLCA4NSwgNzcsIDEyOCwgNjgsIDgyLCA4NSwgMjA1LCA2OCwgODIsIAorICAgIDc5LCA4MCwgODMsIDEyOCwgNjgsIDgyLCA3OSwgODAsIDc2LCA2OSwgODQsIDEyOCwgNjgsIDgyLCA3OSwgODAsIDQ1LCA4MywgCisgICAgNzIsIDY1LCA2OCwgNzksIDg3LCA2OSwgMTk2LCA2OCwgODIsIDc5LCA3NywgNjksIDY4LCA2NSwgODIsIDIxNywgNjgsIDgyLCAKKyAgICA3MywgODYsIDY5LCAxMjgsIDY4LCA4MiwgNzMsIDg2LCAxOTcsIDY4LCA4MiwgNzMsIDc4LCA3NSwgMTI4LCA2OCwgODIsIAorICAgIDczLCAyMDQsIDY4LCA4MiwgNjksIDgzLCA4MywgMTI4LCA2OCwgODIsIDY1LCA4NSwgNzEsIDcyLCA4NCwgMjExLCA2OCwgCisgICAgODIsIDY1LCA3NywgMTI4LCA2OCwgODIsIDY1LCAyMDUsIDY4LCA4MiwgNjUsIDcxLCA3OSwgNzgsIDEyOCwgNjgsIDgyLCAKKyAgICA2NSwgNzEsIDc5LCAyMDYsIDY4LCA4MiwgNjUsIDcwLCA4NCwgNzMsIDc4LCAxOTksIDY4LCA4MiwgNjUsIDY3LCA3MiwgNzcsIAorICAgIDY1LCA4MywgMTI4LCA2OCwgODIsIDY1LCA2NywgNzIsIDc3LCA2NSwgMTI4LCA2OCwgODIsIDY1LCA2NywgNzIsIDc3LCAKKyAgICAxOTMsIDY4LCA3OSwgODcsIDc4LCA4NywgNjUsIDgyLCA2OCwgODMsIDEyOCwgNjgsIDc5LCA4NywgNzgsIDg3LCA2NSwgODIsIAorICAgIDY4LCAyMTEsIDY4LCA3OSwgODcsIDc4LCA0NSwgODAsIDc5LCA3MywgNzgsIDg0LCA3MywgNzgsIDE5OSwgNjgsIDc5LCA4NywgCisgICAgNzgsIDEyOCwgNjgsIDc5LCA4NiwgNjksIDEyOCwgNjgsIDc5LCA4NSwgNzEsIDcyLCA3OCwgODUsIDg0LCAxMjgsIDY4LCAKKyAgICA3OSwgODUsIDY2LCA4NCwgMTI4LCA2OCwgNzksIDg1LCA2NiwgNzYsIDY5LCAxOTYsIDY4LCA3OSwgODUsIDY2LCA3NiwgNjksIAorICAgIDQ1LCA3NiwgNzMsIDc4LCAxOTcsIDY4LCA3OSwgODUsIDY2LCA3NiwgNjksIDQ1LCA2OSwgNzgsIDY4LCA2OSwgMTk2LCA2OCwgCisgICAgNzksIDg1LCA2NiwgNzYsIDY5LCAxMjgsIDY4LCA3OSwgODQsIDg0LCA2OSwgNjgsIDQ1LCA4MCwgMTI4LCA2OCwgNzksIDg0LCAKKyAgICA4NCwgNjksIDY4LCA0NSwgNzgsIDEyOCwgNjgsIDc5LCA4NCwgODQsIDY5LCA2OCwgNDUsIDc2LCAxMjgsIDY4LCA3OSwgODQsIAorICAgIDg0LCA2OSwgNjgsIDEyOCwgNjgsIDc5LCA4NCwgODQsIDY5LCAxOTYsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTYsIDEyOCwgCisgICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1NSwgMTI4LCA2OCwgNzksIDg0LCAKKyAgICA4MywgNDUsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIAorICAgIDQ1LCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUzLCA1NiwgCisgICAgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUzLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MywgNTUsIAorICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MywgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTMsIDU0LCA1NSwgCisgICAgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTMsIDU0LCAKKyAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTMsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MiwgNTYsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA1MiwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTIsIDU1LCAxMjgsIDY4LCA3OSwgCisgICAgODQsIDgzLCA0NSwgNTIsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUyLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCAKKyAgICA3OSwgODQsIDgzLCA0NSwgNTIsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUyLCA1NCwgMTI4LCA2OCwgNzksIAorICAgIDg0LCA4MywgNDUsIDUyLCA1MywgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MiwgNTMsIDU1LCA1NiwgMTI4LCA2OCwgCisgICAgNzksIDg0LCA4MywgNDUsIDUyLCA1MywgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MiwgNTMsIDU0LCA1NiwgMTI4LCAKKyAgICA2OCwgNzksIDg0LCA4MywgNDUsIDUyLCA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUyLCA1MywgCisgICAgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTIsIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUyLCAKKyAgICA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUyLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDU2LCAxMjgsIAorICAgIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1NSwgMTI4LCA2OCwgCisgICAgNzksIDg0LCA4MywgNDUsIDUxLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTQsIDU1LCA1NiwgMTI4LCAKKyAgICA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTQsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTMsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDUzLCA1NSwgNTYsIDEyOCwgCisgICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDUzLCA1NCwgNTYsIAorICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTMsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgCisgICAgNTMsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCAKKyAgICA1MSwgNTMsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTIsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIAorICAgIDUyLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTIsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCisgICAgNTEsIDUyLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTIsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCAKKyAgICA4NCwgODMsIDQ1LCA1MSwgNTIsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MiwgNTQsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA1MSwgNTIsIDUzLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MiwgNTMsIDU1LCAKKyAgICA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MiwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIAorICAgIDUyLCA1MywgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgCisgICAgNzksIDg0LCA4MywgNDUsIDUxLCA1MiwgNTMsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MiwgNTMsIAorICAgIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTEsIDUyLCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCA1MiwgCisgICAgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUxLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDU2LCAxMjgsIDY4LCAKKyAgICA3OSwgODQsIDgzLCA0NSwgNTAsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1NSwgMTI4LCA2OCwgNzksIAorICAgIDg0LCA4MywgNDUsIDUwLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTQsIDU1LCA1NiwgMTI4LCA2OCwgCisgICAgNzksIDg0LCA4MywgNDUsIDUwLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTQsIDEyOCwgNjgsIDc5LCAKKyAgICA4NCwgODMsIDQ1LCA1MCwgNTMsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUzLCA1NSwgNTYsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUzLCA1NCwgNTYsIDEyOCwgCisgICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTMsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTMsIAorICAgIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgCisgICAgNTMsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTIsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUyLCAKKyAgICA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTIsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIAorICAgIDUyLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTIsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgCisgICAgODMsIDQ1LCA1MCwgNTIsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MiwgNTQsIDEyOCwgNjgsIDc5LCAKKyAgICA4NCwgODMsIDQ1LCA1MCwgNTIsIDUzLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MiwgNTMsIDU1LCA1NiwgCisgICAgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MiwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUyLCAKKyAgICA1MywgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUyLCA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIAorICAgIDg0LCA4MywgNDUsIDUwLCA1MiwgNTMsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MiwgNTMsIDU0LCAKKyAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUyLCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MiwgCisgICAgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDU1LCAKKyAgICA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIAorICAgIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgCisgICAgNDUsIDUwLCA1MSwgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1NCwgMTI4LCA2OCwgNzksIDg0LCAKKyAgICA4MywgNDUsIDUwLCA1MSwgNTMsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1MywgNTUsIDU2LCAxMjgsIAorICAgIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1MywgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUzLCAKKyAgICA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUzLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIAorICAgIDgzLCA0NSwgNTAsIDUxLCA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1MywgNTQsIDEyOCwgCisgICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUzLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1MiwgNTYsIAorICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUyLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgCisgICAgNTEsIDUyLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTIsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCAKKyAgICA4MywgNDUsIDUwLCA1MSwgNTIsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUyLCA1NCwgCisgICAgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUyLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCAKKyAgICA1MSwgNTIsIDUzLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDUwLCA1MSwgNTIsIDUzLCA1NSwgNTYsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUyLCA1MywgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUyLCAKKyAgICA1MywgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCAKKyAgICA1MiwgNTMsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCA1MiwgNTMsIDEyOCwgNjgsIDc5LCA4NCwgODMsIAorICAgIDQ1LCA1MCwgNTEsIDUyLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNTAsIDUxLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCisgICAgNTAsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTUsIDU2LCAKKyAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDU0LCA1NiwgCisgICAgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDU0LCAKKyAgICA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MywgNTYsIAorICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTMsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MywgCisgICAgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAKKyAgICA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MywgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIAorICAgIDgzLCA0NSwgNDksIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgCisgICAgNDUsIDQ5LCA1MiwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTIsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCAKKyAgICA4MywgNDUsIDQ5LCA1MiwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTIsIDU0LCA1NiwgMTI4LCA2OCwgNzksIAorICAgIDg0LCA4MywgNDUsIDQ5LCA1MiwgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MiwgNTQsIDU1LCAKKyAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MiwgNTMsIAorICAgIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCA1MywgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCisgICAgNDksIDUyLCA1MywgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTIsIDUzLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCAKKyAgICA4NCwgODMsIDQ1LCA0OSwgNTIsIDUzLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCA1MywgCisgICAgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCAKKyAgICA0OSwgNTIsIDUzLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUyLCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIAorICAgIDUxLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCisgICAgNDksIDUxLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCAKKyAgICA0NSwgNDksIDUxLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1NCwgNTUsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MywgNTYsIDEyOCwgCisgICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDUzLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIAorICAgIDUzLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgCisgICAgNDUsIDQ5LCA1MSwgNTMsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDUzLCA1NCwgNTUsIAorICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgCisgICAgNTMsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDUyLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAKKyAgICA1MSwgNTIsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTIsIDU1LCAxMjgsIDY4LCA3OSwgODQsIAorICAgIDgzLCA0NSwgNDksIDUxLCA1MiwgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MiwgNTQsIDU1LCAKKyAgICA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTIsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIAorICAgIDQ5LCA1MSwgNTIsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUxLCA1MiwgNTMsIDU2LCAxMjgsIDY4LCA3OSwgCisgICAgODQsIDgzLCA0NSwgNDksIDUxLCA1MiwgNTMsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTIsIAorICAgIDUzLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTIsIDUzLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgCisgICAgODMsIDQ1LCA0OSwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTIsIAorICAgIDUzLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTEsIDUyLCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgCisgICAgODMsIDQ1LCA0OSwgNTEsIDUyLCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MSwgNTIsIDEyOCwgNjgsIDc5LCAKKyAgICA4NCwgODMsIDQ1LCA0OSwgNTEsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDU2LCAxMjgsIDY4LCA3OSwgODQsIAorICAgIDgzLCA0NSwgNDksIDUwLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDU1LCAxMjgsIDY4LCA3OSwgCisgICAgODQsIDgzLCA0NSwgNDksIDUwLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDU0LCA1NSwgNTYsIAorICAgIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgCisgICAgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUzLCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAKKyAgICA1MCwgNTMsIDU1LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIAorICAgIDgzLCA0NSwgNDksIDUwLCA1MywgNTQsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MywgNTQsIDU1LCAKKyAgICA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTMsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIAorICAgIDQ5LCA1MCwgNTMsIDU0LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MywgMTI4LCA2OCwgNzksIDg0LCA4MywgCisgICAgNDUsIDQ5LCA1MCwgNTIsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgNTUsIDU2LCAxMjgsIDY4LCAKKyAgICA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUyLCA1NCwgCisgICAgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUyLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCAKKyAgICA0NSwgNDksIDUwLCA1MiwgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgNTQsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUyLCA1MywgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUyLCAKKyAgICA1MywgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIAorICAgIDgzLCA0NSwgNDksIDUwLCA1MiwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTIsIDUzLCAKKyAgICA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgNTMsIDU0LCA1NSwgMTI4LCA2OCwgNzksIAorICAgIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTIsIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTIsIDUzLCAKKyAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIAorICAgIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgCisgICAgNDksIDUwLCA1MSwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCAKKyAgICA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1NCwgNTUsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgCisgICAgNTQsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCAKKyAgICA0OSwgNTAsIDUxLCA1MywgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MywgNTUsIDU2LCAxMjgsIAorICAgIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCAKKyAgICA1MSwgNTMsIDU0LCA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUzLCA1NCwgNTUsIDU2LCAxMjgsIAorICAgIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTMsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAKKyAgICA1MCwgNTEsIDUzLCA1NCwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUzLCAxMjgsIDY4LCA3OSwgODQsIAorICAgIDgzLCA0NSwgNDksIDUwLCA1MSwgNTIsIDU2LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTIsIDU1LCAKKyAgICA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUyLCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIAorICAgIDQ5LCA1MCwgNTEsIDUyLCA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTQsIDU1LCAKKyAgICA1NiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDUyLCA1NCwgNTUsIDEyOCwgNjgsIDc5LCA4NCwgODMsIAorICAgIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU2LCAKKyAgICAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTIsIDUzLCA1NSwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIAorICAgIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU1LCAxMjgsIDY4LCA3OSwgODQsIDgzLCA0NSwgNDksIDUwLCA1MSwgNTIsIDUzLCAKKyAgICA1NCwgNTYsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgNTYsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDU0LCA1NSwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCAKKyAgICA1MCwgNTEsIDUyLCA1MywgNTQsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MiwgNTMsIDEyOCwgNjgsIAorICAgIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDUxLCA1MiwgMTI4LCA2OCwgNzksIDg0LCA4MywgNDUsIDQ5LCA1MCwgNTEsIDEyOCwgCisgICAgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgNTAsIDEyOCwgNjgsIDc5LCA4NCwgODMsIDQ1LCA0OSwgMTI4LCA2OCwgNzksIDg0LCAKKyAgICA4MywgMTI4LCA2OCwgNzksIDg0LCA3NiwgNjksIDgzLCAyMTEsIDY4LCA3OSwgODIsIDg1LCAxMjgsIDY4LCA3OSwgNzksIAorICAgIDgyLCAxMjgsIDY4LCA3OSwgNzksIDc4LCA3MSwgMTI4LCA2OCwgNzksIDc4LCA3MSwgMTI4LCA2OCwgNzksIDc3LCA2NSwgCisgICAgNzMsIDIwNiwgNjgsIDc5LCA3NiwgODAsIDcyLCA3MywgNzgsIDEyOCwgNjgsIDc5LCA3NiwgNzYsIDgzLCAxMjgsIDY4LCAKKyAgICA3OSwgNzYsIDc2LCA2NSwgMjEwLCA2OCwgNzksIDc2LCA3MywgODUsIDc3LCAxMjgsIDY4LCA3OSwgNzUsIDc3LCA2NSwgNzMsIAorICAgIDEyOCwgNjgsIDc5LCA3MywgODQsIDEyOCwgNjgsIDc5LCA3MSwgMTI4LCA2OCwgNzksIDE5OSwgNjgsIDc5LCA2OSwgMjExLCAKKyAgICA2OCwgNzksIDY4LCA2OSwgNzUsIDY1LCA4NCwgNjUsIDEyOCwgNjgsIDc5LCA2NiwgODIsIDc5LCAxMjgsIDY4LCA3OSwgNjUsIAorICAgIDY3LCA3MiwgNjUsIDgzLCA3MiwgNzcsIDY5LCA2OSwgMTI4LCA2OCwgNzksIDY1LCA2NywgNzIsIDY1LCA4MywgNzIsIDc3LCAKKyAgICA2OSwgMTk3LCA2OCwgNzksIDY1LCAxMjgsIDY4LCA3OSwgNDUsIDc5LCAxMjgsIDY4LCA3NywgMTI4LCA2OCwgMjA1LCA2OCwgCisgICAgNzYsIDg1LCAxMjgsIDY4LCA3NiwgNzksIDEyOCwgNjgsIDc2LCA3MywgMTI4LCA2OCwgNzYsIDcyLCA4OSwgNjUsIDEyOCwgCisgICAgNjgsIDc2LCA3MiwgNjUsIDEyOCwgNjgsIDc2LCA2OSwgNjksIDEyOCwgNjgsIDc2LCA2NSwgMTI4LCA2OCwgNzYsIDEyOCwgCisgICAgNjgsIDc1LCA2NSwgODIsIDEyOCwgNjgsIDc1LCA2NSwgMjEwLCA2OCwgNzQsIDY5LCA4MiwgODYsIDczLCAxMjgsIDY4LCAKKyAgICA3NCwgNjksIDgyLCA4NiwgMTI4LCA2OCwgNzQsIDY5LCAxMjgsIDY4LCA3NCwgNjUsIDEyOCwgNjgsIDczLCA5MCwgOTAsIAorICAgIDIxNywgNjgsIDczLCA4NiwgNzksIDgyLCA2NywgMTk3LCA2OCwgNzMsIDg2LCA3MywgODMsIDczLCA3OSwgNzgsIDEyOCwgCisgICAgNjgsIDczLCA4NiwgNzMsIDgzLCA3MywgNzksIDIwNiwgNjgsIDczLCA4NiwgNzMsIDc4LCA2NSwgODQsIDczLCA3OSwgNzgsIAorICAgIDEyOCwgNjgsIDczLCA4NiwgNzMsIDY4LCA2OSwgODMsIDEyOCwgNjgsIDczLCA4NiwgNzMsIDY4LCA2OSwgODIsIDEyOCwgCisgICAgNjgsIDczLCA4NiwgNzMsIDY4LCA2OSwgMTk2LCA2OCwgNzMsIDg2LCA3MywgNjgsIDY5LCAxMjgsIDY4LCA3MywgODYsIDczLCAKKyAgICA2OCwgMTk3LCA2OCwgNzMsIDg2LCA2OSwgODIsIDcxLCA2OSwgNzgsIDY3LCA2OSwgMTI4LCA2OCwgNzMsIDg0LCA4NCwgCisgICAgMjA3LCA2OCwgNzMsIDgzLCA4NCwgNzksIDgyLCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA2OCwgNzMsIDgzLCA4NCwgNzMsIDc4LCAKKyAgICA3MSwgODUsIDczLCA4MywgNzIsIDEyOCwgNjgsIDczLCA4MywgODQsIDczLCA3NiwgNzYsIDEyOCwgNjgsIDczLCA4MywgODMsIAorICAgIDc5LCA3NiwgODYsIDY5LCA0NSwgNTAsIDEyOCwgNjgsIDczLCA4MywgODMsIDc5LCA3NiwgODYsIDY5LCAxMjgsIDY4LCA3MywgCisgICAgODMsIDgwLCA2OSwgODIsIDgzLCA3MywgNzksIDc4LCAxMjgsIDY4LCA3MywgODMsIDc1LCAxMjgsIDY4LCA3MywgODMsIDczLCAKKyAgICA3NywgNzksIDg1LCAxMjgsIDY4LCA3MywgODMsIDcyLCAxMjgsIDY4LCA3MywgODMsIDY3LCA3OSwgNzgsIDg0LCA3MywgNzgsIAorICAgIDg1LCA3OSwgODUsIDIxMSwgNjgsIDczLCA4MywgMTk1LCA2OCwgNzMsIDgzLCA2NSwgODAsIDgwLCA3OSwgNzMsIDc4LCA4NCwgCisgICAgNjksIDE5NiwgNjgsIDczLCA4MywgNjUsIDY2LCA3NiwgNjksIDE5NiwgNjgsIDczLCA4MiwgNzEsIDE5MywgNjgsIDczLCAKKyAgICA4MiwgNjksIDY3LCA4NCwgNzYsIDIxNywgNjgsIDczLCA4MiwgNjksIDY3LCA4NCwgNzMsIDc5LCA3OCwgNjUsIDIwNCwgNjgsIAorICAgIDczLCA4MCwgODQsIDY5LCAxMjgsIDY4LCA3MywgODAsIDgwLCA2OSwgODIsIDEyOCwgNjgsIDczLCA4MCwgNzYsIDc5LCA4NSwgCisgICAgNzgsIDEyOCwgNjgsIDczLCA4MCwgNzYsIDczLCAxMjgsIDY4LCA3MywgODAsIDc2LCAyMDEsIDY4LCA3MywgNzgsIDcxLCAKKyAgICA2NiwgNjUsIDIxMiwgNjgsIDczLCAyMDYsIDY4LCA3MywgNzcsIDc3LCA3MywgNzgsIDcxLCAxMjgsIDY4LCA3MywgNzcsIAorICAgIDczLCA3OCwgODUsIDg0LCA3MywgNzksIDc4LCA0NSwgNTEsIDEyOCwgNjgsIDczLCA3NywgNzMsIDc4LCA4NSwgODQsIDczLCAKKyAgICA3OSwgNzgsIDQ1LCA1MCwgMTI4LCA2OCwgNzMsIDc3LCA3MywgNzgsIDg1LCA4NCwgNzMsIDc5LCA3OCwgNDUsIDQ5LCAxMjgsIAorICAgIDY4LCA3MywgNzcsIDczLCA3OCwgNzMsIDgzLCA3MiwgNzcsIDY5LCA3OCwgODQsIDEyOCwgNjgsIDczLCA3NywgNzMsIDY4LCAKKyAgICA3MywgMTkzLCA2OCwgNzMsIDc3LCA2OSwgNzgsIDgzLCA3MywgNzksIDc4LCA2NSwgMjA0LCA2OCwgNzMsIDc3LCA2OSwgNzgsIAorICAgIDgzLCA3MywgNzksIDIwNiwgNjgsIDczLCA3NywgNTAsIDEyOCwgNjgsIDczLCA3NiwgMTI4LCA2OCwgNzMsIDcxLCA4MiwgCisgICAgNjUsIDgwLCA3MiwgMTI4LCA2OCwgNzMsIDcxLCA4MiwgNjUsIDgwLCAyMDAsIDY4LCA3MywgNzEsIDgyLCA2NSwgNzcsIDc3LCAKKyAgICA3OSwgMjExLCA2OCwgNzMsIDcxLCA4MiwgNjUsIDc3LCA3NywgMTkzLCA2OCwgNzMsIDcxLCA4MiwgNjUsIDIwNSwgNjgsIAorICAgIDczLCA3MSwgNzksIDgyLCA3MSwgNzksIDc4LCAxMjgsIDY4LCA3MywgNzEsIDc5LCA4MiwgNzEsIDc5LCAyMDYsIDY4LCA3MywgCisgICAgNzEsIDY1LCA3NywgNzcsIDY1LCAxMjgsIDY4LCA3MywgNzEsIDE5MywgNjgsIDczLCA3MCwgODQsIDc5LCA3MSwgNzEsIDc5LCAKKyAgICAyMTEsIDY4LCA3MywgNzAsIDc5LCA3OCwgNzMsIDY1LCA4MywgMTI4LCA2OCwgNzMsIDcwLCA3MCwgNzMsIDY3LCA4NSwgNzYsIAorICAgIDg0LCAyMTcsIDY4LCA3MywgNzAsIDcwLCA3MywgNjcsIDg1LCA3NiwgODQsIDczLCA2OSwgODMsIDEyOCwgNjgsIDczLCA3MCwgCisgICAgNzAsIDY5LCA4MiwgNjksIDc4LCA4NCwgNzMsIDY1LCA3NiwgMTI4LCA2OCwgNzMsIDcwLCA3MCwgNjksIDgyLCA2OSwgNzgsIAorICAgIDY3LCAxOTcsIDY4LCA3MywgNzAsIDY1LCA4NCwgMTI4LCA2OCwgNzMsIDY5LCA4MywgNzMsIDgzLCAxMjgsIDY4LCA3MywgCisgICAgNjksIDgzLCA3MywgMjExLCA2OCwgNzMsIDY5LCA4MCwgMTI4LCA2OCwgNzMsIDE5NywgNjgsIDczLCA2NiwgMTI4LCA2OCwgCisgICAgNzMsIDY1LCA4NCwgNzksIDc4LCA3OSwgMjA2LCA2OCwgNzMsIDY1LCA4NCwgNzksIDc4LCA3MywgNzUsIDIwMSwgNjgsIDczLCAKKyAgICA2NSwgODMsIDg0LCA3OSwgNzYsIDIwMSwgNjgsIDczLCA2NSwgNzcsIDc5LCA3OCwgNjgsIDgzLCAxMjgsIDY4LCA3MywgNjUsIAorICAgIDc3LCA3OSwgNzgsIDY4LCAxMjgsIDY4LCA3MywgNjUsIDc3LCA3OSwgNzgsIDE5NiwgNjgsIDczLCA2NSwgNzcsIDY5LCA4NCwgCisgICAgNjksIDIxMCwgNjgsIDczLCA2NSwgNzYsIDg5LCA4NCwgNzMsIDc1LCA2NSwgMTI4LCA2OCwgNzMsIDY1LCA3NiwgODksIDg0LCAKKyAgICA3MywgNzUsIDE5MywgNjgsIDczLCA2NSwgNzYsIDY5LCA2NywgODQsIDQ1LCAyMDgsIDY4LCA3MywgNjUsIDcxLCA3OSwgNzgsIAorICAgIDY1LCA3NiwgMTI4LCA2OCwgNzMsIDY1LCA3MSwgNzksIDc4LCA2NSwgMjA0LCA2OCwgNzMsIDY1LCA2OSwgODIsIDY5LCA4MywgCisgICAgNzMsIDkwLCA2OSwgMTk2LCA2OCwgNzMsIDY1LCA2OSwgODIsIDY5LCA4MywgNzMsIDgzLCAxMjgsIDY4LCA3MywgNjUsIDY5LCAKKyAgICA4MiwgNjksIDgzLCA3MywgMjExLCA2OCwgNzIsIDc5LCA4NSwgMTI4LCA2OCwgNzIsIDc5LCA3OSwgMTI4LCA2OCwgNzIsIAorICAgIDc5LCAxMjgsIDY4LCA3MiwgNzMsIDEyOCwgNjgsIDcyLCA3MiwgODUsIDEyOCwgNjgsIDcyLCA3MiwgNzksIDc5LCAxMjgsIAorICAgIDY4LCA3MiwgNzIsIDc5LCAxMjgsIDY4LCA3MiwgNzIsIDczLCAxMjgsIDY4LCA3MiwgNzIsIDY5LCA2OSwgMTI4LCA2OCwgCisgICAgNzIsIDcyLCA2OSwgMTI4LCA2OCwgNzIsIDcyLCA2NSwgMTI4LCA2OCwgNzIsIDY5LCA2OSwgMTI4LCA2OCwgNzIsIDY1LCAKKyAgICA4MiwgNzcsIDY1LCAxMjgsIDY4LCA3MiwgNjUsIDc2LCA2OSwgODQsIDcyLCAxMjgsIDY4LCA3MiwgNjUsIDc2LCA2NSwgODQsIAorICAgIDcyLCAxMjgsIDY4LCA3MiwgNjUsIDc2LCAxMjgsIDY4LCA3MiwgNjUsIDY4LCA3MiwgNjksIDEyOCwgNjgsIDcyLCA2NSwgCisgICAgNjUsIDc2LCA4NSwgMTI4LCA2OCwgNzIsIDY1LCA2NSwgMTI4LCA2OCwgNzIsIDY1LCAxMjgsIDY4LCA2OSwgOTAsIDIwMCwgCiAgICAgNjgsIDY5LCA4OSwgODQsIDY5LCA4MiwgNzksIDIxMywgNjgsIDY5LCA4OSwgODQsIDY5LCA4MiwgNzksIDIxMSwgNjgsIDY5LCAKICAgICA4OCwgNzMsIDY1LCAxMjgsIDY4LCA2OSwgODYsIDczLCA2NywgMTk3LCA2OCwgNjksIDg2LCA2OSwgNzYsIDc5LCA4MCwgNzcsIAogICAgIDY5LCA3OCwgODQsIDEyOCwgNjgsIDY5LCA4NSwgNzgsIDcxLCAxMjgsIDY4LCA2OSwgODMsIDIwMywgNjgsIDY5LCA4MywgCkBAIC0zODc5LDE2MSArNDA0MCwxNjQgQEAKICAgICA2OCwgNjUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA2OCwgNjgsIDY1LCA4OCwgMTI4LCA2OCwgNjgsIDY1LCA4NCwgCiAgICAgMTI4LCA2OCwgNjgsIDY1LCA4MCwgMTI4LCA2OCwgNjgsIDY1LCA3NiwgMTI4LCA2OCwgNjgsIDY1LCAyMDQsIDY4LCA2OCwgCiAgICAgNjUsIDcyLCA2NSwgNzYsIDEyOCwgNjgsIDY4LCA2NSwgNzIsIDY1LCAyMDQsIDY4LCA2OCwgNjUsIDY1LCAxMjgsIDY4LCAKLSAgICAxOTQsIDY4LCA2NSwgODksIDQ1LCA3OCwgNzMsIDcxLCA3MiwgODQsIDEyOCwgNjgsIDY1LCAyMTcsIDY4LCA2NSwgODYsIAotICAgIDczLCA4OSwgNjUsIDc4LCA3MywgMTI4LCA2OCwgNjUsIDg2LCA3MywgNjgsIDEyOCwgNjgsIDY1LCA4NCwgMTk3LCA2OCwgCi0gICAgNjUsIDgzLCA3MywgNjUsIDEyOCwgNjgsIDY1LCA4MywgNzIsIDY5LCAxOTYsIDY4LCA2NSwgODMsIDcyLCAxMjgsIDY4LCAKLSAgICA2NSwgODMsIDIwMCwgNjgsIDY1LCA4MywgNjksIDczLCA2NSwgMTI4LCA2OCwgNjUsIDgyLCA4NCwgMTI4LCA2OCwgNjUsIAotICAgIDgyLCA3NSwgNjksIDc4LCA3MywgNzgsIDcxLCAxMjgsIDY4LCA2NSwgODIsIDc1LCA2OSwgNzgsIDczLCA3OCwgMTk5LCA2OCwgCi0gICAgNjUsIDgyLCAyMDMsIDY4LCA2NSwgODIsIDcxLCA2NSwgMTI4LCA2OCwgNjUsIDgyLCA2NSwgNTIsIDEyOCwgNjgsIDY1LCAKLSAgICA4MiwgNjUsIDUxLCAxMjgsIDY4LCA2NSwgODIsIDEyOCwgNjgsIDY1LCA4MCwgNDUsIDgwLCA4MiwgNjUsIDIwNSwgNjgsIAotICAgIDY1LCA4MCwgNDUsIDgwLCA3MywgMjAxLCA2OCwgNjUsIDgwLCA0NSwgNzcsIDg1LCA3OSwgMjE3LCA2OCwgNjUsIDgwLCA0NSwgCi0gICAgNjYsIDg1LCA3OSwgMjA2LCA2OCwgNjUsIDgwLCA0NSwgNjYsIDY5LCAyMDEsIDY4LCA2NSwgMjA4LCA2OCwgNjUsIDc4LCAKLSAgICA4NCwgNjUsIDc0LCAxOTMsIDY4LCA2NSwgNzgsIDcxLCA3OSwgMTI4LCA2OCwgNjUsIDc4LCA3MSwgMTI4LCA2OCwgNjUsIAotICAgIDc4LCAxOTksIDY4LCA2NSwgNzgsIDY4LCA2NSwgMTI4LCA2OCwgNjUsIDc4LCA2NywgNjksIDgyLCAxMjgsIDY4LCA2NSwgCi0gICAgNzcsIDgwLCAxMjgsIDY4LCA2NSwgNzcsIDIwOCwgNjgsIDY1LCA3NywgNzcsIDY1LCA4NCwgNjUsIDc4LCAxMjgsIDY4LCAKLSAgICA2NSwgNzcsIDc3LCA2NSwgODQsIDY1LCAyMDYsIDY4LCA2NSwgNzcsIDc3LCA2NSwgMTI4LCA2OCwgNjUsIDc3LCA3NywgCi0gICAgMTkzLCA2OCwgNjUsIDc3LCA2NSwgODIsIDg1LCAxMjgsIDY4LCA2NSwgNzYsIDY5LCA4NCwgNzIsIDEyOCwgNjgsIDY1LCAKLSAgICA3NiwgNjksIDg0LCAxMjgsIDY4LCA2NSwgNzYsIDY5LCAyMTIsIDY4LCA2NSwgNzYsIDY4LCA2NSwgMTI4LCA2OCwgNjUsIAotICAgIDc2LCA2NSwgODQsIDcyLCAxMjgsIDY4LCA2NSwgNzYsIDY1LCA4NCwgMjAwLCA2OCwgNjUsIDc2LCA2NSwgODQsIDEyOCwgCi0gICAgNjgsIDY1LCA3MywgODIsIDEyOCwgNjgsIDY1LCA3MywgNzgsIDcxLCAxMjgsIDY4LCA2NSwgNzIsIDg5LCA2NSwgNjUsIDg1LCAKLSAgICA4MywgNzIsIDQ1LCA1MCwgMTI4LCA2OCwgNjUsIDcyLCA4OSwgNjUsIDY1LCA4NSwgODMsIDcyLCAxMjgsIDY4LCA2NSwgNzEsIAotICAgIDgzLCAxMjgsIDY4LCA2NSwgNzEsIDcxLCA2OSwgODIsIDEyOCwgNjgsIDY1LCA3MSwgNjksIDgzLCA3MiwgMTI4LCA2OCwgCi0gICAgNjUsIDcxLCA2OSwgODMsIDIwMCwgNjgsIDY1LCA3MSwgNjYsIDY1LCA4MywgNzMsIDc4LCA3OCwgNjUsIDEyOCwgNjgsIDY1LCAKLSAgICA3MSwgNjUsIDIxOCwgNjgsIDY1LCA3MSwgNjUsIDc2LCA3MSwgNjUsIDEyOCwgNjgsIDY1LCAxOTksIDY4LCA2NSwgNjksIAotICAgIDc4LCA3MSwgMTI4LCA2OCwgNjUsIDY5LCAxOTksIDY4LCA2NSwgNjgsIDEyOCwgNjgsIDY1LCAxOTYsIDY4LCA2NSwgNjUsIAotICAgIDgzLCA4NSwgMTI4LCA2OCwgNjUsIDY1LCA2OCwgNzIsIDg1LCAxMjgsIDY4LCA0OCwgNTQsIDU1LCA3MiwgMTI4LCA2OCwgCi0gICAgNDgsIDU0LCA1NSwgNzEsIDEyOCwgNjgsIDQ4LCA1NCwgNTUsIDcwLCAxMjgsIDY4LCA0OCwgNTQsIDU1LCA2OSwgMTI4LCAKLSAgICA2OCwgNDgsIDU0LCA1NSwgNjgsIDEyOCwgNjgsIDQ4LCA1NCwgNTUsIDY3LCAxMjgsIDY4LCA0OCwgNTQsIDU1LCA2NiwgCi0gICAgMTI4LCA2OCwgNDgsIDU0LCA1NSwgNjUsIDEyOCwgNjgsIDQ4LCA1NCwgNTUsIDEyOCwgNjgsIDQ4LCA1NCwgNTQsIDEyOCwgCi0gICAgNjgsIDQ4LCA1NCwgNTMsIDEyOCwgNjgsIDQ4LCA1NCwgNTIsIDEyOCwgNjgsIDQ4LCA1NCwgNTEsIDEyOCwgNjgsIDQ4LCAKLSAgICA1NCwgNTAsIDEyOCwgNjgsIDQ4LCA1NCwgNDksIDEyOCwgNjgsIDQ4LCA1NCwgNDgsIDEyOCwgNjgsIDQ4LCA1MywgNTcsIAotICAgIDEyOCwgNjgsIDQ4LCA1MywgNTYsIDEyOCwgNjgsIDQ4LCA1MywgNTUsIDEyOCwgNjgsIDQ4LCA1MywgNTQsIDEyOCwgNjgsIAotICAgIDQ4LCA1MywgNTMsIDEyOCwgNjgsIDQ4LCA1MywgNTIsIDY1LCAxMjgsIDY4LCA0OCwgNTMsIDUyLCAxMjgsIDY4LCA0OCwgCi0gICAgNTMsIDUxLCAxMjgsIDY4LCA0OCwgNTMsIDUwLCA2NSwgMTI4LCA2OCwgNDgsIDUzLCA1MCwgMTI4LCA2OCwgNDgsIDUzLCAKLSAgICA0OSwgMTI4LCA2OCwgNDgsIDUzLCA0OCwgNzMsIDEyOCwgNjgsIDQ4LCA1MywgNDgsIDcyLCAxMjgsIDY4LCA0OCwgNTMsIAotICAgIDQ4LCA3MSwgMTI4LCA2OCwgNDgsIDUzLCA0OCwgNzAsIDEyOCwgNjgsIDQ4LCA1MywgNDgsIDY5LCAxMjgsIDY4LCA0OCwgCi0gICAgNTMsIDQ4LCA2OCwgMTI4LCA2OCwgNDgsIDUzLCA0OCwgNjcsIDEyOCwgNjgsIDQ4LCA1MywgNDgsIDY2LCAxMjgsIDY4LCAKLSAgICA0OCwgNTMsIDQ4LCA2NSwgMTI4LCA2OCwgNDgsIDUzLCA0OCwgMTI4LCA2OCwgNDgsIDUyLCA1NywgMTI4LCA2OCwgNDgsIAotICAgIDUyLCA1NiwgNjUsIDEyOCwgNjgsIDQ4LCA1MiwgNTYsIDEyOCwgNjgsIDQ4LCA1MiwgNTUsIDEyOCwgNjgsIDQ4LCA1MiwgCi0gICAgNTQsIDY1LCAxMjgsIDY4LCA0OCwgNTIsIDU0LCAxMjgsIDY4LCA0OCwgNTIsIDUzLCAxMjgsIDY4LCA0OCwgNTIsIDUyLCAKLSAgICAxMjgsIDY4LCA0OCwgNTIsIDUxLCAxMjgsIDY4LCA0OCwgNTIsIDUwLCAxMjgsIDY4LCA0OCwgNTIsIDQ5LCAxMjgsIDY4LCAKLSAgICA0OCwgNTIsIDQ4LCAxMjgsIDY4LCA0OCwgNTEsIDU3LCAxMjgsIDY4LCA0OCwgNTEsIDU2LCAxMjgsIDY4LCA0OCwgNTEsIAotICAgIDU1LCAxMjgsIDY4LCA0OCwgNTEsIDU0LCAxMjgsIDY4LCA0OCwgNTEsIDUzLCAxMjgsIDY4LCA0OCwgNTEsIDUyLCA2NSwgCi0gICAgMTI4LCA2OCwgNDgsIDUxLCA1MiwgMTI4LCA2OCwgNDgsIDUxLCA1MSwgMTI4LCA2OCwgNDgsIDUxLCA1MCwgMTI4LCA2OCwgCi0gICAgNDgsIDUxLCA0OSwgNjUsIDEyOCwgNjgsIDQ4LCA1MSwgNDksIDEyOCwgNjgsIDQ4LCA1MSwgNDgsIDEyOCwgNjgsIDQ4LCAKLSAgICA1MCwgNTcsIDEyOCwgNjgsIDQ4LCA1MCwgNTYsIDEyOCwgNjgsIDQ4LCA1MCwgNTUsIDY1LCAxMjgsIDY4LCA0OCwgNTAsIAotICAgIDU1LCAxMjgsIDY4LCA0OCwgNTAsIDU0LCAxMjgsIDY4LCA0OCwgNTAsIDUzLCAxMjgsIDY4LCA0OCwgNTAsIDUyLCAxMjgsIAotICAgIDY4LCA0OCwgNTAsIDUxLCAxMjgsIDY4LCA0OCwgNTAsIDUwLCAxMjgsIDY4LCA0OCwgNTAsIDQ5LCAxMjgsIDY4LCA0OCwgCi0gICAgNTAsIDQ4LCAxMjgsIDY4LCA0OCwgNDksIDU3LCAxMjgsIDY4LCA0OCwgNDksIDU2LCAxMjgsIDY4LCA0OCwgNDksIDU1LCAKLSAgICAxMjgsIDY4LCA0OCwgNDksIDU0LCAxMjgsIDY4LCA0OCwgNDksIDUzLCAxMjgsIDY4LCA0OCwgNDksIDUyLCAxMjgsIDY4LCAKLSAgICA0OCwgNDksIDUxLCAxMjgsIDY4LCA0OCwgNDksIDUwLCAxMjgsIDY4LCA0OCwgNDksIDQ5LCAxMjgsIDY4LCA0OCwgNDksIAotICAgIDQ4LCAxMjgsIDY4LCA0OCwgNDgsIDU3LCAxMjgsIDY4LCA0OCwgNDgsIDU2LCA2NSwgMTI4LCA2OCwgNDgsIDQ4LCA1NiwgCi0gICAgMTI4LCA2OCwgNDgsIDQ4LCA1NSwgMTI4LCA2OCwgNDgsIDQ4LCA1NCwgMTI4LCA2OCwgNDgsIDQ4LCA1MywgMTI4LCA2OCwgCi0gICAgNDgsIDQ4LCA1MiwgMTI4LCA2OCwgNDgsIDQ4LCA1MSwgMTI4LCA2OCwgNDgsIDQ4LCA1MCwgMTI4LCA2OCwgNDgsIDQ4LCAKLSAgICA0OSwgMTI4LCA2NywgODksIDg4LCAxMjgsIDY3LCA4OSwgODQsIDEyOCwgNjcsIDg5LCA4MiwgODgsIDEyOCwgNjcsIDg5LCAKLSAgICA4MiwgNjksIDc4LCA2NSwgNzMsIDE5NSwgNjcsIDg5LCA4MiwgMTI4LCA2NywgODksIDgwLCA4MiwgNzMsIDc5LCAyMTIsIAotICAgIDY3LCA4OSwgODAsIDY5LCA4MiwgODUsIDgzLCAxMjgsIDY3LCA4OSwgODAsIDEyOCwgNjcsIDg5LCA3NiwgNzMsIDc4LCA2OCwgCi0gICAgODIsIDczLCA2NywgNzMsIDg0LCA4OSwgMTI4LCA2NywgODksIDY3LCA3NiwgNzksIDc4LCA2OSwgMTI4LCA2NywgODksIDY1LCAKLSAgICAxMjgsIDY3LCA4OSwgMTI4LCA2NywgODcsIDc5LCA3OSwgMTI4LCA2NywgODcsIDc5LCAxMjgsIDY3LCA4NywgNzMsIDczLCAKLSAgICAxMjgsIDY3LCA4NywgNzMsIDEyOCwgNjcsIDg3LCA2OSwgNzksIDgyLCA4NCwgNzIsIDEyOCwgNjcsIDg3LCA2OSwgMTI4LCAKLSAgICA2NywgODcsIDY1LCA2NSwgMTI4LCA2NywgODUsIDg4LCAxMjgsIDY3LCA4NSwgMjEyLCA2NywgODUsIDgzLCA4NCwgNzksIAotICAgIDc3LCA4MywgMTI4LCA2NywgODUsIDgzLCA4NCwgNzksIDc3LCA2OSwgMjEwLCA2NywgODUsIDgzLCA4NCwgNjUsIDgyLCA2OCwgCi0gICAgMTI4LCA2NywgODUsIDgyLCA4OCwgMTI4LCA2NywgODUsIDgyLCA4NiwgNzMsIDc4LCAxOTksIDY3LCA4NSwgODIsIDg2LCAKLSAgICA2OSwgMTk2LCA2NywgODUsIDgyLCA4NiwgNjksIDEyOCwgNjcsIDg1LCA4MiwgODYsIDE5NywgNjcsIDg1LCA4MiwgODIsIAotICAgIDIxNywgNjcsIDg1LCA4MiwgODIsIDY5LCA3OCwgODQsIDEyOCwgNjcsIDg1LCA4MiwgODIsIDY5LCA3OCwgMjEyLCA2NywgCi0gICAgODUsIDgyLCA3NiwgMjE3LCA2NywgODUsIDgyLCA3NiwgMTI4LCA2NywgODUsIDgyLCAxMjgsIDY3LCA4NSwgODAsIDEyOCwgCi0gICAgNjcsIDg1LCA3OSwgODgsIDEyOCwgNjcsIDg1LCA3OSwgODAsIDEyOCwgNjcsIDg1LCA3OSwgMTI4LCA2NywgODUsIDIwNSwgCi0gICAgNjcsIDg1LCA2NiwgNjksIDY4LCAxMjgsIDY3LCA4NSwgNjYsIDE5NywgNjcsIDg1LCA2NSwgODQsIDgyLCA3MywgNzYsIDc2LCAKLSAgICA3OSwgMTI4LCA2NywgODUsIDY1LCA4NCwgODIsIDczLCA3NiwgNzYsIDIwNywgNjcsIDg1LCAxMjgsIDY3LCA4MiwgODksIAotICAgIDgzLCA4NCwgNjUsIDIwNCwgNjcsIDgyLCA4OSwgODAsIDg0LCA3OSwgNzEsIDgyLCA2NSwgNzcsIDc3LCA3MywgMTk1LCA2NywgCi0gICAgODIsIDg5LCA3MywgNzgsIDE5OSwgNjcsIDgyLCA4NSwgOTAsIDY5LCA3MywgODIsIDIwNywgNjcsIDgyLCA4NSwgNjcsIDczLCAKLSAgICA2NiwgNzYsIDY5LCA0NSwgNTMsIDEyOCwgNjcsIDgyLCA4NSwgNjcsIDczLCA2NiwgNzYsIDY5LCA0NSwgNTIsIDEyOCwgNjcsIAotICAgIDgyLCA4NSwgNjcsIDczLCA2NiwgNzYsIDY5LCA0NSwgNTEsIDEyOCwgNjcsIDgyLCA4NSwgNjcsIDczLCA2NiwgNzYsIDY5LCAKLSAgICA0NSwgNTAsIDEyOCwgNjcsIDgyLCA4NSwgNjcsIDczLCA2NiwgNzYsIDY5LCAxMjgsIDY3LCA4MiwgNzksIDg3LCA3OCwgCi0gICAgMTI4LCA2NywgODIsIDc5LCA4MywgODMsIDczLCA3OCwgNzEsIDEyOCwgNjcsIDgyLCA3OSwgODMsIDgzLCA3MywgNzgsIAotICAgIDE5OSwgNjcsIDgyLCA3OSwgODMsIDgzLCA3MiwgNjUsIDg0LCA2NywgMjAwLCA2NywgODIsIDc5LCA4MywgODMsIDY5LCA2OCwgCi0gICAgNDUsIDg0LCA2NSwgNzMsIDc2LCAxMjgsIDY3LCA4MiwgNzksIDgzLCA4MywgNjksIDE5NiwgNjcsIDgyLCA3OSwgODMsIDgzLCAKLSAgICA2NiwgNzksIDc4LCA2OSwgODMsIDEyOCwgNjcsIDgyLCA3OSwgODMsIDgzLCAxMjgsIDY3LCA4MiwgNzksIDgzLCAyMTEsIAotICAgIDY3LCA4MiwgNzksIDgwLCAxMjgsIDY3LCA4MiwgNzksIDczLCA4OCwgMTI4LCA2NywgODIsIDc5LCA2NywgODUsIDIxMSwgCi0gICAgNjcsIDgyLCA3OSwgNjcsIDc5LCA2OCwgNzMsIDc2LCA2OSwgMTI4LCA2NywgODIsIDY5LCA4MywgNjcsIDY5LCA3OCwgODQsIAotICAgIDEyOCwgNjcsIDgyLCA2OSwgODMsIDY3LCA2OSwgNzgsIDIxMiwgNjcsIDgyLCA2OSwgNjgsIDczLCAyMTIsIDY3LCA4MiwgCi0gICAgNjksIDY1LCA4NCwgNzMsIDg2LCAxOTcsIDY3LCA4MiwgNjksIDY1LCA3NywgMTI4LCA2NywgODIsIDY1LCA2NywgNzUsIDY5LCAKLSAgICA4MiwgMTI4LCA2NywgNzksIDg4LCAxMjgsIDY3LCA3OSwgODcsIDEyOCwgNjcsIDc5LCAyMTUsIDY3LCA3OSwgODYsIDY5LCAKLSAgICA4MiwgMTI4LCA2NywgNzksIDg1LCA4MCwgNzYsIDE5NywgNjcsIDc5LCA4NSwgNzgsIDg0LCA3MywgNzgsIDE5OSwgNjcsIAotICAgIDc5LCA4NSwgNzgsIDg0LCA2OSwgODIsIDgzLCA3MywgNzgsIDc1LCAxMjgsIDY3LCA3OSwgODUsIDc4LCA4NCwgNjksIDgyLCAKLSAgICA2NiwgNzksIDgyLCA2OSwgMTI4LCA2NywgNzksIDg1LCA3OCwgNjcsIDczLCAyMDQsIDY3LCA3OSwgODQsIDEyOCwgNjcsIAotICAgIDc5LCA4MiwgODIsIDY5LCA4MywgODAsIDc5LCA3OCwgNjgsIDIxMSwgNjcsIDc5LCA4MiwgODIsIDY5LCA2NywgODQsIDEyOCwgCi0gICAgNjcsIDc5LCA4MiwgODAsIDgzLCA2OSwgMTI4LCA2NywgNzksIDgyLCA4MCwgNzksIDgyLCA2NSwgODQsIDczLCA3OSwgNzgsIAotICAgIDEyOCwgNjcsIDc5LCA4MiwgNzksIDc4LCA3MywgODMsIDEyOCwgNjcsIDc5LCA4MiwgNzgsIDY5LCA4MiwgODMsIDEyOCwgCi0gICAgNjcsIDc5LCA4MiwgNzgsIDY5LCA4MiwgMTI4LCA2NywgNzksIDgyLCA3OCwgNjksIDIxMCwgNjcsIDc5LCA4MCwgODksIDgyLCAKLSAgICA3MywgNzEsIDcyLCA4NCwgMTI4LCA2NywgNzksIDgwLCA4OSwgODIsIDczLCA3MSwgNzIsIDIxMiwgNjcsIDc5LCA4MCwgODksIAotICAgIDEyOCwgNjcsIDc5LCA4MCwgODIsIDc5LCA2OCwgODUsIDY3LCA4NCwgMTI4LCA2NywgNzksIDgwLCA4MCwgNjksIDgyLCA0NSwgCi0gICAgNTAsIDEyOCwgNjcsIDc5LCA4MCwgODAsIDY5LCA4MiwgMTI4LCA2NywgNzksIDgwLCAxMjgsIDY3LCA3OSwgNzksIDc2LCAKLSAgICAxMjgsIDY3LCA3OSwgNzksIDc1LCA3MywgNzgsIDcxLCAxMjgsIDY3LCA3OSwgNzksIDc1LCA3MywgNjksIDEyOCwgNjcsIAotICAgIDc5LCA3OSwgNzUsIDY5LCAxOTYsIDY3LCA3OSwgNzksIDEyOCwgNjcsIDc5LCA3OCwgODYsIDY5LCA4MiwgNzEsIDczLCA3OCwgCi0gICAgMTk5LCA2NywgNzksIDc4LCA4NiwgNjksIDc4LCA3MywgNjksIDc4LCA2NywgMTk3LCA2NywgNzksIDc4LCA4NCwgODIsIDc5LCAKLSAgICA3NiwgMTI4LCA2NywgNzksIDc4LCA4NCwgODIsIDc5LCAyMDQsIDY3LCA3OSwgNzgsIDg0LCA4MiwgNjUsIDgyLCA3MywgNjksIAotICAgIDg0LCA4OSwgMTI4LCA2NywgNzksIDc4LCA4NCwgODIsIDY1LCA2NywgODQsIDczLCA3OSwgNzgsIDEyOCwgNjcsIDc5LCA3OCwgCi0gICAgODQsIDc5LCA4NSwgODIsIDY5LCAxOTYsIDY3LCA3OSwgNzgsIDg0LCA3OSwgODUsIDIxMCwgNjcsIDc5LCA3OCwgODQsIDY5LCAKLSAgICA3OCwgODQsIDczLCA3OSwgNzgsIDEyOCwgNjcsIDc5LCA3OCwgODQsIDY5LCA3NywgODAsIDc2LCA2NSwgODQsIDczLCA3OSwgCi0gICAgNzgsIDEyOCwgNjcsIDc5LCA3OCwgODQsIDY1LCA3MywgNzgsIDIxMSwgNjcsIDc5LCA3OCwgODQsIDY1LCA3MywgNzgsIDczLCAKLSAgICA3OCwgMTk5LCA2NywgNzksIDc4LCA4NCwgNjUsIDczLCAyMDYsIDY3LCA3OSwgNzgsIDg0LCA2NSwgNjcsIDg0LCAxMjgsIAotICAgIDY3LCA3OSwgNzgsIDgzLCA4NCwgODIsIDg1LCA2NywgODQsIDczLCA3OSwgMjA2LCA2NywgNzksIDc4LCA4MywgODQsIDY1LCAKLSAgICA3OCwgODQsIDEyOCwgNjcsIDc5LCA3OCwgODMsIDg0LCA2NSwgNzgsIDIxMiwgNjcsIDc5LCA3OCwgODMsIDg0LCA2NSwgNzgsIAotICAgIDY3LCA4OSwgMTI4LCA2NywgNzksIDc4LCA4MywgNzksIDc4LCA2NSwgNzgsIDIxMiwgNjcsIDc5LCA3OCwgODMsIDY5LCA2NywgCi0gICAgODUsIDg0LCA3MywgODYsIDE5NywgNjcsIDc5LCA3OCwgNzQsIDg1LCA3OCwgNjcsIDg0LCA3MywgNzksIDc4LCAxMjgsIDY3LCAKLSAgICA3OSwgNzgsIDc0LCA4NSwgNzEsIDY1LCA4NCwgMTk3LCA2NywgNzksIDc4LCA3NCwgNzksIDczLCA3OCwgNzMsIDc4LCAxOTksIAotICAgIDY3LCA3OSwgNzgsIDczLCA2NywgNjUsIDIwNCwgNjcsIDc5LCA3OCwgNzEsIDgyLCA4NSwgNjksIDc4LCAyMTIsIDY3LCA3OSwgCi0gICAgNzgsIDcxLCA4MiwgNjUsIDg0LCA4NSwgNzYsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA2NywgNzksIDc4LCA3MCwgNzksIAotICAgIDg1LCA3OCwgNjgsIDY5LCAxOTYsIDY3LCA3OSwgNzgsIDcwLCA3NiwgNzMsIDY3LCA4NCwgMTI4LCA2NywgNzksIDc4LCA3MCwgCi0gICAgNjksIDg0LCA4NCwgMjAxLCA2NywgNzksIDc4LCA2NywgNjUsIDg2LCA2OSwgNDUsIDgzLCA3MywgNjgsIDY5LCAxOTYsIDY3LCAKLSAgICA3OSwgNzgsIDY3LCA2NSwgODYsIDY5LCA0NSwgODAsIDc5LCA3MywgNzgsIDg0LCA2OSwgMTk2LCA2NywgNzksIDc4LCAxMjgsIAotICAgIDY3LCA3OSwgNzcsIDgwLCA4NSwgODQsIDY5LCA4MiwgMTI4LCA2NywgNzksIDc3LCA4MCwgNzksIDgzLCA3MywgODQsIDczLCAKLSAgICA3OSwgNzgsIDEyOCwgNjcsIDc5LCA3NywgODAsIDc5LCA4MywgNzMsIDg0LCA3MywgNzksIDIwNiwgNjcsIDc5LCA3NywgODAsIAotICAgIDc2LCA3MywgNjUsIDc4LCA2NywgNjksIDEyOCwgNjcsIDc5LCA3NywgODAsIDc2LCA2OSwgODQsIDczLCA3OSwgNzgsIDEyOCwgCi0gICAgNjcsIDc5LCA3NywgODAsIDc2LCA2OSwgODQsIDY5LCA2OCwgMTI4LCA2NywgNzksIDc3LCA4MCwgNzYsIDY5LCA3NywgNjksIAotICAgIDc4LCA4NCwgMTI4LCA2NywgNzksIDc3LCA4MCwgNjUsIDgyLCA2OSwgMTI4LCA2NywgNzksIDc3LCA3NywgNzksIDIwNiwgCi0gICAgNjcsIDc5LCA3NywgNzcsIDY5LCA4MiwgNjcsIDczLCA2NSwgMjA0LCA2NywgNzksIDc3LCA3NywgNjUsIDEyOCwgNjcsIDc5LCAKLSAgICA3NywgNzcsIDE5MywgNjcsIDc5LCA3NywgNjksIDg0LCAxMjgsIDY3LCA3OSwgNzcsIDY2LCAxMjgsIDY3LCA3OSwgNzYsIAotICAgIDg1LCA3NywgNzgsIDEyOCwgNjcsIDc5LCA3NiwgNzksIDgyLCAxMjgsIDY3LCA3OSwgNzYsIDc2LCA3MywgODMsIDczLCA3OSwgCi0gICAgMjA2LCA2NywgNzksIDc2LCA3NiwgMTI4LCA2NywgNzksIDc2LCAxOTYsIDY3LCA3OSwgNzAsIDcwLCA3MywgNzgsIDEyOCwgCi0gICAgNjcsIDc5LCA2OSwgNzgsIDcxLCAxMjgsIDY3LCA3OSwgNjgsIDY1LCAxMjgsIDY3LCA3OSwgNjcsIDc1LCA4NCwgNjUsIDczLCAKLSAgICAyMDQsIDY3LCA3OSwgNjUsIDgzLCA4NCwgNjksIDgyLCAxMjgsIDY3LCA3OSwgNjUsIDEyOCwgNjcsIDc5LCAxMjgsIDY3LCAKLSAgICA3NywgMTI4LCA2NywgMjA1LCA2NywgNzYsIDg1LCA4MywgODQsIDY5LCAyMTAsIDY3LCA3NiwgODUsIDY2LCA4MywgMTI4LCAKLSAgICA2NywgNzYsIDg1LCA2NiwgNDUsIDgzLCA4MCwgNzksIDc1LCA2OSwgMTk2LCA2NywgNzYsIDg1LCA2NiwgMTI4LCA2NywgNzYsIAotICAgIDg1LCAxOTQsIDY3LCA3NiwgNzksIDg2LCA2OSwgODIsIDEyOCwgNjcsIDc2LCA3OSwgODUsIDY4LCAxMjgsIDY3LCA3NiwgCi0gICAgNzksIDg1LCAxOTYsIDY3LCA3NiwgNzksIDg0LCA3MiwgNjksIDgzLCAxMjgsIDY3LCA3NiwgNzksIDg0LCA3MiwgMTI4LCAKLSAgICA2NywgNzYsIDc5LCA4MywgNjksIDg0LCAxMjgsIDY3LCA3NiwgNzksIDgzLCA2OSwgNzgsIDY5LCA4MywgODMsIDEyOCwgNjcsIAotICAgIDc2LCA3OSwgODMsIDY5LCA2OCwgMTI4LCA2NywgNzYsIDc5LCA4MywgMTk3LCA2NywgNzYsIDc5LCA2NywgNzUsIDg3LCA3MywgCi0gICAgODMsIDE5NywgNjcsIDc2LCA3OSwgNjcsIDIwMywgNjcsIDc2LCA3MywgODYsIDczLCA4MywgMTI4LCA2NywgNzYsIDczLCAKLSAgICA4MCwgNjYsIDc5LCA2NSwgODIsIDY4LCAxMjgsIDY3LCA3NiwgNzMsIDc4LCA3NSwgNzMsIDc4LCAxOTksIDY3LCA3NiwgNzMsIAotICAgIDc4LCA3MSwgNzMsIDc4LCAxOTksIDY3LCA3NiwgNzMsIDc3LCA2NSwgNjcsIDg1LCA4MywgMTI4LCA2NywgNzYsIDczLCA3MCwgCi0gICAgNzAsIDEyOCwgNjcsIDc2LCA3MywgNjcsIDc1LCAxMjgsIDY3LCA3NiwgNjksIDcwLCA0NSwgNTAsIDEyOCwgNjcsIDc2LCAKLSAgICA2OSwgNzAsIDQ1LCA0OSwgMTI4LCA2NywgNzYsIDY5LCA3MCwgMTI4LCA2NywgNzYsIDY5LCAxOTgsIDY3LCA3NiwgNjksIAotICAgIDY1LCA4NiwgNjksIDgyLCAxMjgsIDY3LCA3NiwgNjksIDY1LCAyMTAsIDY3LCA3NiwgNjUsIDg3LCAxMjgsIDY3LCA3NiwgCi0gICAgNjUsIDgwLCA4MCwgNzMsIDc4LCAxOTksIDY3LCA3NiwgNjUsIDgwLCA4MCwgNjksIDIxMCwgNjcsIDc2LCA2NSwgNzgsIAotICAgIDEyOCwgNjcsIDc2LCA2NSwgNzMsIDc3LCAxMjgsIDY3LCA3NiwgMTI4LCA2NywgNzMsIDg4LCAxMjgsIDY3LCA3MywgODYsIAotICAgIDczLCA3NiwgNzMsIDY1LCA3OCwgMTI4LCA2NywgNzMsIDg0LCA4OSwgODMsIDY3LCA2NSwgODAsIDE5NywgNjcsIDczLCA4NCwgCi0gICAgMTI4LCA2NywgNzMsIDgyLCA2NywgODUsIDIxMSwgNjcsIDczLCA4MiwgNjcsIDg1LCA3NywgNzAsIDc2LCA2OSwgODgsIAotICAgIDEyOCwgNjcsIDczLCA4MiwgNjcsIDg1LCA3NywgNzAsIDc2LCA2OSwgMjE2LCA2NywgNzMsIDgyLCA2NywgODUsIDc2LCA2NSwgCi0gICAgODQsIDczLCA3OSwgMjA2LCA2NywgNzMsIDgyLCA2NywgNzYsIDY5LCA4MywgMTI4LCA2NywgNzMsIDgyLCA2NywgNzYsIDY5LCAKLSAgICAxMjgsIDY3LCA3MywgODAsIDEyOCwgNjcsIDczLCA3OCwgNzgsIDY1LCA2NiwgNjUsIDgyLCAxMjgsIDY3LCA3MywgNzgsIAotICAgIDY5LCA3NywgNjUsIDEyOCwgNjcsIDczLCA3MywgMTI4LCA2NywgNzMsIDY5LCA4OCwgMTI4LCA2NywgNzMsIDY5LCA4NSwgCi0gICAgNjcsIDQ1LCA4MywgODMsIDY1LCA3OCwgNzEsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA2NywgNzMsIDY5LCA4NSwgNjcsIAotICAgIDQ1LCA4MCwgNzMsIDY5LCA4NSwgODAsIDEyOCwgNjcsIDczLCA2OSwgODUsIDY3LCA0NSwgNzMsIDY5LCA4NSwgNzgsIDcxLCAKLSAgICAxMjgsIDY3LCA3MywgNjksIDg1LCAxOTUsIDY3LCA3MywgNjksIDg0LCAxMjgsIDY3LCA3MywgNjksIDgwLCAxMjgsIDY3LCAKLSAgICA3MywgNjksIDEyOCwgNjcsIDczLCAxMjgsIDY3LCA3MiwgODksIDg4LCAxMjgsIDY3LCA3MiwgODksIDg0LCAxMjgsIDY3LCAKLSAgICA3MiwgODksIDgyLCA4OCwgMTI4LCA2NywgNzIsIDg5LCA4MiwgMTI4LCA2NywgNzIsIDg5LCA4MCwgMTI4LCA2NywgNzIsIAotICAgIDg1LCA4OCwgMTI4LCA2NywgNzIsIDg1LCA4MiwgODgsIDEyOCwgNjcsIDcyLCA4NSwgODIsIDY3LCA3MiwgMTI4LCA2NywgCi0gICAgNzIsIDg1LCA4MiwgMTI4LCA2NywgNzIsIDg1LCA4MCwgMTI4LCA2NywgNzIsIDg1LCA3OSwgODgsIDEyOCwgNjcsIDcyLCAKLSAgICA4NSwgNzksIDg0LCAxMjgsIDY3LCA3MiwgODUsIDc5LCA4MCwgMTI4LCA2NywgNzIsIDg1LCA3OSwgMTI4LCA2NywgNzIsIAotICAgIDg1LCA3NiwgNjUsIDEyOCwgNjcsIDcyLCA4NSwgMTI4LCA2NywgNzIsIDgyLCA4OSwgODMsIDY1LCA3OCwgODQsIDcyLCA2OSwgCi0gICAgNzcsIDg1LCA3NywgMTI4LCA2NywgNzIsIDgyLCA3OSwgNzgsIDc5LCA4NSwgMTI4LCA2NywgNzIsIDgyLCA3OSwgNzgsIDc5LCAKLSAgICA3OCwgMTI4LCA2NywgNzIsIDgyLCA3OSwgNzcsIDE5MywgNjcsIDcyLCA4MiwgNzksIDE5MywgNjcsIDcyLCA4MiwgNzMsIAotICAgIDg2LCA3MywgMTI4LCA2NywgNzIsIDgyLCA3MywgODMsIDg0LCA3NywgNjUsIDgzLCAxMjgsIDY3LCA3MiwgODIsIDczLCA4MywgCi0gICAgODQsIDc3LCA2NSwgMjExLCA2NywgNzIsIDc5LCA4OCwgMTI4LCA2NywgNzIsIDc5LCA4NCwgMTI4LCA2NywgNzIsIDc5LCAKLSAgICA4MiwgNjksIDg2LCA3NywgMTkzLCA2NywgNzIsIDc5LCA4MCwgMTI4LCA2NywgNzIsIDc5LCA3NSwgNjksIDEyOCwgNjcsIAotICAgIDcyLCA3OSwgNjksIDEyOCwgNjcsIDcyLCA3OSwgNjcsIDc5LCA3NiwgNjUsIDg0LCAxOTcsIDY3LCA3MiwgNzksIDY1LCAKKyAgICA2NywgODMsIDEyOCwgNjgsIDY3LCA1MiwgMTI4LCA2OCwgNjcsIDUxLCAxMjgsIDY4LCA2NywgNTAsIDEyOCwgNjgsIDY3LCAKKyAgICA0OSwgMTI4LCA2OCwgMTk0LCA2OCwgNjUsIDg5LCA0NSwgNzgsIDczLCA3MSwgNzIsIDg0LCAxMjgsIDY4LCA2NSwgMjE3LCAKKyAgICA2OCwgNjUsIDg2LCA3MywgODksIDY1LCA3OCwgNzMsIDEyOCwgNjgsIDY1LCA4NiwgNzMsIDY4LCAxMjgsIDY4LCA2NSwgODQsIAorICAgIDE5NywgNjgsIDY1LCA4MywgNzMsIDY1LCAxMjgsIDY4LCA2NSwgODMsIDczLCAxOTMsIDY4LCA2NSwgODMsIDcyLCA2OSwgCisgICAgMTk2LCA2OCwgNjUsIDgzLCA3MiwgMTI4LCA2OCwgNjUsIDgzLCAyMDAsIDY4LCA2NSwgODMsIDY5LCA3MywgNjUsIDEyOCwgCisgICAgNjgsIDY1LCA4MiwgODQsIDEyOCwgNjgsIDY1LCA4MiwgNzUsIDY5LCA3OCwgNzMsIDc4LCA3MSwgMTI4LCA2OCwgNjUsIDgyLCAKKyAgICA3NSwgNjksIDc4LCA3MywgNzgsIDE5OSwgNjgsIDY1LCA4MiwgMjAzLCA2OCwgNjUsIDgyLCA3MSwgNjUsIDEyOCwgNjgsIAorICAgIDY1LCA4MiwgNjUsIDUyLCAxMjgsIDY4LCA2NSwgODIsIDY1LCA1MSwgMTI4LCA2OCwgNjUsIDgyLCAxMjgsIDY4LCA2NSwgCisgICAgODAsIDQ1LCA4MCwgODIsIDY1LCAyMDUsIDY4LCA2NSwgODAsIDQ1LCA4MCwgNzMsIDIwMSwgNjgsIDY1LCA4MCwgNDUsIDc3LCAKKyAgICA4NSwgNzksIDIxNywgNjgsIDY1LCA4MCwgNDUsIDY2LCA4NSwgNzksIDIwNiwgNjgsIDY1LCA4MCwgNDUsIDY2LCA2OSwgCisgICAgMjAxLCA2OCwgNjUsIDIwOCwgNjgsIDY1LCA3OCwgODQsIDY1LCA3NCwgMTkzLCA2OCwgNjUsIDc4LCA3MSwgNzksIDEyOCwgCisgICAgNjgsIDY1LCA3OCwgNzEsIDEyOCwgNjgsIDY1LCA3OCwgMTk5LCA2OCwgNjUsIDc4LCA2OCwgNjUsIDEyOCwgNjgsIDY1LCAKKyAgICA3OCwgNjcsIDY5LCA4MiwgMTI4LCA2OCwgNjUsIDc3LCA4MCwgMTI4LCA2OCwgNjUsIDc3LCAyMDgsIDY4LCA2NSwgNzcsIAorICAgIDc3LCA2NSwgODQsIDY1LCA3OCwgMTI4LCA2OCwgNjUsIDc3LCA3NywgNjUsIDg0LCA2NSwgMjA2LCA2OCwgNjUsIDc3LCA3NywgCisgICAgNjUsIDEyOCwgNjgsIDY1LCA3NywgNzcsIDE5MywgNjgsIDY1LCA3NywgNjUsIDgyLCA4NSwgMTI4LCA2OCwgNjUsIDc2LCAKKyAgICA2OSwgODQsIDcyLCAxMjgsIDY4LCA2NSwgNzYsIDY5LCA4NCwgMTI4LCA2OCwgNjUsIDc2LCA2OSwgMjEyLCA2OCwgNjUsIAorICAgIDc2LCA2OCwgNjUsIDEyOCwgNjgsIDY1LCA3NiwgNjUsIDg0LCA3MiwgMTI4LCA2OCwgNjUsIDc2LCA2NSwgODQsIDIwMCwgCisgICAgNjgsIDY1LCA3NiwgNjUsIDg0LCAxMjgsIDY4LCA2NSwgNzMsIDgyLCAxMjgsIDY4LCA2NSwgNzMsIDc4LCA3MSwgMTI4LCAKKyAgICA2OCwgNjUsIDcyLCA4OSwgNjUsIDY1LCA4NSwgODMsIDcyLCA0NSwgNTAsIDEyOCwgNjgsIDY1LCA3MiwgODksIDY1LCA2NSwgCisgICAgODUsIDgzLCA3MiwgMTI4LCA2OCwgNjUsIDcxLCA4MywgMTI4LCA2OCwgNjUsIDcxLCA3MSwgNjksIDgyLCAxMjgsIDY4LCAKKyAgICA2NSwgNzEsIDcxLCA2OSwgMjEwLCA2OCwgNjUsIDcxLCA2OSwgODMsIDcyLCAxMjgsIDY4LCA2NSwgNzEsIDY5LCA4MywgCisgICAgMjAwLCA2OCwgNjUsIDcxLCA2NiwgNjUsIDgzLCA3MywgNzgsIDc4LCA2NSwgMTI4LCA2OCwgNjUsIDcxLCA2NSwgMjE4LCAKKyAgICA2OCwgNjUsIDcxLCA2NSwgNzYsIDcxLCA2NSwgMTI4LCA2OCwgNjUsIDE5OSwgNjgsIDY1LCA2OSwgNzgsIDcxLCAxMjgsIAorICAgIDY4LCA2NSwgNjksIDE5OSwgNjgsIDY1LCA2OCwgMTI4LCA2OCwgNjUsIDE5NiwgNjgsIDY1LCA2NSwgODMsIDg1LCAxMjgsIAorICAgIDY4LCA2NSwgNjUsIDY4LCA3MiwgODUsIDEyOCwgNjgsIDQ4LCA1NCwgNTUsIDcyLCAxMjgsIDY4LCA0OCwgNTQsIDU1LCA3MSwgCisgICAgMTI4LCA2OCwgNDgsIDU0LCA1NSwgNzAsIDEyOCwgNjgsIDQ4LCA1NCwgNTUsIDY5LCAxMjgsIDY4LCA0OCwgNTQsIDU1LCAKKyAgICA2OCwgMTI4LCA2OCwgNDgsIDU0LCA1NSwgNjcsIDEyOCwgNjgsIDQ4LCA1NCwgNTUsIDY2LCAxMjgsIDY4LCA0OCwgNTQsIAorICAgIDU1LCA2NSwgMTI4LCA2OCwgNDgsIDU0LCA1NSwgMTI4LCA2OCwgNDgsIDU0LCA1NCwgMTI4LCA2OCwgNDgsIDU0LCA1MywgCisgICAgMTI4LCA2OCwgNDgsIDU0LCA1MiwgMTI4LCA2OCwgNDgsIDU0LCA1MSwgMTI4LCA2OCwgNDgsIDU0LCA1MCwgMTI4LCA2OCwgCisgICAgNDgsIDU0LCA0OSwgMTI4LCA2OCwgNDgsIDU0LCA0OCwgMTI4LCA2OCwgNDgsIDUzLCA1NywgMTI4LCA2OCwgNDgsIDUzLCAKKyAgICA1NiwgMTI4LCA2OCwgNDgsIDUzLCA1NSwgMTI4LCA2OCwgNDgsIDUzLCA1NCwgMTI4LCA2OCwgNDgsIDUzLCA1MywgMTI4LCAKKyAgICA2OCwgNDgsIDUzLCA1MiwgNjUsIDEyOCwgNjgsIDQ4LCA1MywgNTIsIDEyOCwgNjgsIDQ4LCA1MywgNTEsIDEyOCwgNjgsIAorICAgIDQ4LCA1MywgNTAsIDY1LCAxMjgsIDY4LCA0OCwgNTMsIDUwLCAxMjgsIDY4LCA0OCwgNTMsIDQ5LCAxMjgsIDY4LCA0OCwgCisgICAgNTMsIDQ4LCA3MywgMTI4LCA2OCwgNDgsIDUzLCA0OCwgNzIsIDEyOCwgNjgsIDQ4LCA1MywgNDgsIDcxLCAxMjgsIDY4LCAKKyAgICA0OCwgNTMsIDQ4LCA3MCwgMTI4LCA2OCwgNDgsIDUzLCA0OCwgNjksIDEyOCwgNjgsIDQ4LCA1MywgNDgsIDY4LCAxMjgsIAorICAgIDY4LCA0OCwgNTMsIDQ4LCA2NywgMTI4LCA2OCwgNDgsIDUzLCA0OCwgNjYsIDEyOCwgNjgsIDQ4LCA1MywgNDgsIDY1LCAKKyAgICAxMjgsIDY4LCA0OCwgNTMsIDQ4LCAxMjgsIDY4LCA0OCwgNTIsIDU3LCAxMjgsIDY4LCA0OCwgNTIsIDU2LCA2NSwgMTI4LCAKKyAgICA2OCwgNDgsIDUyLCA1NiwgMTI4LCA2OCwgNDgsIDUyLCA1NSwgMTI4LCA2OCwgNDgsIDUyLCA1NCwgNjUsIDEyOCwgNjgsIAorICAgIDQ4LCA1MiwgNTQsIDEyOCwgNjgsIDQ4LCA1MiwgNTMsIDEyOCwgNjgsIDQ4LCA1MiwgNTIsIDEyOCwgNjgsIDQ4LCA1MiwgCisgICAgNTEsIDEyOCwgNjgsIDQ4LCA1MiwgNTAsIDEyOCwgNjgsIDQ4LCA1MiwgNDksIDEyOCwgNjgsIDQ4LCA1MiwgNDgsIDEyOCwgCisgICAgNjgsIDQ4LCA1MSwgNTcsIDEyOCwgNjgsIDQ4LCA1MSwgNTYsIDEyOCwgNjgsIDQ4LCA1MSwgNTUsIDEyOCwgNjgsIDQ4LCAKKyAgICA1MSwgNTQsIDEyOCwgNjgsIDQ4LCA1MSwgNTMsIDEyOCwgNjgsIDQ4LCA1MSwgNTIsIDY1LCAxMjgsIDY4LCA0OCwgNTEsIAorICAgIDUyLCAxMjgsIDY4LCA0OCwgNTEsIDUxLCAxMjgsIDY4LCA0OCwgNTEsIDUwLCAxMjgsIDY4LCA0OCwgNTEsIDQ5LCA2NSwgCisgICAgMTI4LCA2OCwgNDgsIDUxLCA0OSwgMTI4LCA2OCwgNDgsIDUxLCA0OCwgMTI4LCA2OCwgNDgsIDUwLCA1NywgMTI4LCA2OCwgCisgICAgNDgsIDUwLCA1NiwgMTI4LCA2OCwgNDgsIDUwLCA1NSwgNjUsIDEyOCwgNjgsIDQ4LCA1MCwgNTUsIDEyOCwgNjgsIDQ4LCAKKyAgICA1MCwgNTQsIDEyOCwgNjgsIDQ4LCA1MCwgNTMsIDEyOCwgNjgsIDQ4LCA1MCwgNTIsIDEyOCwgNjgsIDQ4LCA1MCwgNTEsIAorICAgIDEyOCwgNjgsIDQ4LCA1MCwgNTAsIDEyOCwgNjgsIDQ4LCA1MCwgNDksIDEyOCwgNjgsIDQ4LCA1MCwgNDgsIDEyOCwgNjgsIAorICAgIDQ4LCA0OSwgNTcsIDEyOCwgNjgsIDQ4LCA0OSwgNTYsIDEyOCwgNjgsIDQ4LCA0OSwgNTUsIDEyOCwgNjgsIDQ4LCA0OSwgCisgICAgNTQsIDEyOCwgNjgsIDQ4LCA0OSwgNTMsIDEyOCwgNjgsIDQ4LCA0OSwgNTIsIDEyOCwgNjgsIDQ4LCA0OSwgNTEsIDEyOCwgCisgICAgNjgsIDQ4LCA0OSwgNTAsIDEyOCwgNjgsIDQ4LCA0OSwgNDksIDEyOCwgNjgsIDQ4LCA0OSwgNDgsIDEyOCwgNjgsIDQ4LCAKKyAgICA0OCwgNTcsIDEyOCwgNjgsIDQ4LCA0OCwgNTYsIDY1LCAxMjgsIDY4LCA0OCwgNDgsIDU2LCAxMjgsIDY4LCA0OCwgNDgsIAorICAgIDU1LCAxMjgsIDY4LCA0OCwgNDgsIDU0LCAxMjgsIDY4LCA0OCwgNDgsIDUzLCAxMjgsIDY4LCA0OCwgNDgsIDUyLCAxMjgsIAorICAgIDY4LCA0OCwgNDgsIDUxLCAxMjgsIDY4LCA0OCwgNDgsIDUwLCAxMjgsIDY4LCA0OCwgNDgsIDQ5LCAxMjgsIDY3LCA4OSwgCisgICAgODgsIDEyOCwgNjcsIDg5LCA4NCwgMTI4LCA2NywgODksIDgyLCA4OCwgMTI4LCA2NywgODksIDgyLCA2OSwgNzgsIDY1LCAKKyAgICA3MywgMTk1LCA2NywgODksIDgyLCAxMjgsIDY3LCA4OSwgODAsIDgyLCA3MywgNzksIDIxMiwgNjcsIDg5LCA4MCwgNjksIAorICAgIDgyLCA4NSwgODMsIDEyOCwgNjcsIDg5LCA4MCwgMTI4LCA2NywgODksIDc2LCA3MywgNzgsIDY4LCA4MiwgNzMsIDY3LCA3MywgCisgICAgODQsIDg5LCAxMjgsIDY3LCA4OSwgNjcsIDc2LCA3OSwgNzgsIDY5LCAxMjgsIDY3LCA4OSwgNjUsIDEyOCwgNjcsIDg5LCAKKyAgICAxMjgsIDY3LCA4NywgNzksIDc5LCAxMjgsIDY3LCA4NywgNzksIDEyOCwgNjcsIDg3LCA3MywgNzMsIDEyOCwgNjcsIDg3LCAKKyAgICA3MywgMTI4LCA2NywgODcsIDY5LCA3OSwgODIsIDg0LCA3MiwgMTI4LCA2NywgODcsIDY5LCAxMjgsIDY3LCA4NywgNjUsIAorICAgIDY1LCAxMjgsIDY3LCA4NSwgODgsIDEyOCwgNjcsIDg1LCA4NSwgMTI4LCA2NywgODUsIDIxMiwgNjcsIDg1LCA4MywgODQsIAorICAgIDc5LCA3NywgODMsIDEyOCwgNjcsIDg1LCA4MywgODQsIDc5LCA3NywgNjksIDIxMCwgNjcsIDg1LCA4MywgODQsIDY1LCA4MiwgCisgICAgNjgsIDEyOCwgNjcsIDg1LCA4MiwgODgsIDEyOCwgNjcsIDg1LCA4MiwgODYsIDczLCA3OCwgMTk5LCA2NywgODUsIDgyLCAKKyAgICA4NiwgNjksIDE5NiwgNjcsIDg1LCA4MiwgODYsIDY5LCAxMjgsIDY3LCA4NSwgODIsIDg2LCAxOTcsIDY3LCA4NSwgODIsIAorICAgIDgzLCA3MywgODYsIDE5NywgNjcsIDg1LCA4MiwgODIsIDIxNywgNjcsIDg1LCA4MiwgODIsIDY5LCA3OCwgODQsIDEyOCwgCisgICAgNjcsIDg1LCA4MiwgODIsIDY5LCA3OCwgMjEyLCA2NywgODUsIDgyLCA3NiwgMjE3LCA2NywgODUsIDgyLCA3NiwgMTI4LCAKKyAgICA2NywgODUsIDgyLCAxMjgsIDY3LCA4NSwgODAsIDEyOCwgNjcsIDg1LCA3OSwgODgsIDEyOCwgNjcsIDg1LCA3OSwgODAsIAorICAgIDEyOCwgNjcsIDg1LCA3OSwgMTI4LCA2NywgODUsIDIwNSwgNjcsIDg1LCA2NiwgNjksIDY4LCAxMjgsIDY3LCA4NSwgNjYsIAorICAgIDE5NywgNjcsIDg1LCA2NSwgODQsIDgyLCA3MywgNzYsIDc2LCA3OSwgMTI4LCA2NywgODUsIDY1LCA4NCwgODIsIDczLCA3NiwgCisgICAgNzYsIDIwNywgNjcsIDg1LCAxMjgsIDY3LCA4MywgNzMsIDEyOCwgNjcsIDgyLCA4OSwgODMsIDg0LCA2NSwgMjA0LCA2NywgCisgICAgODIsIDg5LCA4MCwgODQsIDc5LCA3MSwgODIsIDY1LCA3NywgNzcsIDczLCAxOTUsIDY3LCA4MiwgODksIDczLCA3OCwgMTk5LCAKKyAgICA2NywgODIsIDg1LCA5MCwgNjksIDczLCA4MiwgMjA3LCA2NywgODIsIDg1LCA2NywgNzMsIDY2LCA3NiwgNjksIDQ1LCA1MywgCisgICAgMTI4LCA2NywgODIsIDg1LCA2NywgNzMsIDY2LCA3NiwgNjksIDQ1LCA1MiwgMTI4LCA2NywgODIsIDg1LCA2NywgNzMsIDY2LCAKKyAgICA3NiwgNjksIDQ1LCA1MSwgMTI4LCA2NywgODIsIDg1LCA2NywgNzMsIDY2LCA3NiwgNjksIDQ1LCA1MCwgMTI4LCA2NywgODIsIAorICAgIDg1LCA2NywgNzMsIDY2LCA3NiwgNjksIDEyOCwgNjcsIDgyLCA3OSwgODcsIDc4LCAxMjgsIDY3LCA4MiwgNzksIDgzLCA4MywgCisgICAgNzMsIDc4LCA3MSwgMTI4LCA2NywgODIsIDc5LCA4MywgODMsIDczLCA3OCwgMTk5LCA2NywgODIsIDc5LCA4MywgODMsIDcyLCAKKyAgICA2NSwgODQsIDY3LCAyMDAsIDY3LCA4MiwgNzksIDgzLCA4MywgNjksIDY4LCA0NSwgODQsIDY1LCA3MywgNzYsIDEyOCwgNjcsIAorICAgIDgyLCA3OSwgODMsIDgzLCA2OSwgMTk2LCA2NywgODIsIDc5LCA4MywgODMsIDY2LCA3OSwgNzgsIDY5LCA4MywgMTI4LCA2NywgCisgICAgODIsIDc5LCA4MywgODMsIDEyOCwgNjcsIDgyLCA3OSwgODMsIDIxMSwgNjcsIDgyLCA3OSwgODAsIDEyOCwgNjcsIDgyLCAKKyAgICA3OSwgNzMsIDg4LCAxMjgsIDY3LCA4MiwgNzksIDY3LCA4NSwgMjExLCA2NywgODIsIDc5LCA2NywgNzksIDY4LCA3MywgNzYsIAorICAgIDY5LCAxMjgsIDY3LCA4MiwgNjksIDgzLCA2NywgNjksIDc4LCA4NCwgMTI4LCA2NywgODIsIDY5LCA4MywgNjcsIDY5LCA3OCwgCisgICAgMjEyLCA2NywgODIsIDY5LCA2OCwgNzMsIDIxMiwgNjcsIDgyLCA2OSwgNjUsIDg0LCA3MywgODYsIDE5NywgNjcsIDgyLCAKKyAgICA2OSwgNjUsIDc3LCAxMjgsIDY3LCA4MiwgNjUsIDY3LCA3NSwgNjksIDgyLCAxMjgsIDY3LCA4MiwgMTI4LCA2NywgNzksIAorICAgIDg4LCAxMjgsIDY3LCA3OSwgODcsIDEyOCwgNjcsIDc5LCAyMTUsIDY3LCA3OSwgODYsIDY5LCA4MiwgMTI4LCA2NywgNzksIAorICAgIDg1LCA4MCwgNzYsIDE5NywgNjcsIDc5LCA4NSwgNzgsIDg0LCA3MywgNzgsIDE5OSwgNjcsIDc5LCA4NSwgNzgsIDg0LCA2OSwgCisgICAgODIsIDgzLCA3MywgNzgsIDc1LCAxMjgsIDY3LCA3OSwgODUsIDc4LCA4NCwgNjksIDgyLCA2NiwgNzksIDgyLCA2OSwgMTI4LCAKKyAgICA2NywgNzksIDg1LCA3OCwgNjcsIDczLCAyMDQsIDY3LCA3OSwgODQsIDEyOCwgNjcsIDc5LCA4MiwgODIsIDY5LCA4MywgODAsIAorICAgIDc5LCA3OCwgNjgsIDIxMSwgNjcsIDc5LCA4MiwgODIsIDY5LCA2NywgODQsIDEyOCwgNjcsIDc5LCA4MiwgODAsIDgzLCA2OSwgCisgICAgMTI4LCA2NywgNzksIDgyLCA4MCwgNzksIDgyLCA2NSwgODQsIDczLCA3OSwgNzgsIDEyOCwgNjcsIDc5LCA4MiwgNzksIDc4LCAKKyAgICA3MywgODMsIDEyOCwgNjcsIDc5LCA4MiwgNzgsIDY5LCA4MiwgODMsIDEyOCwgNjcsIDc5LCA4MiwgNzgsIDY5LCA4MiwgCisgICAgMTI4LCA2NywgNzksIDgyLCA3OCwgNjksIDIxMCwgNjcsIDc5LCA4MCwgODksIDgyLCA3MywgNzEsIDcyLCA4NCwgMTI4LCAKKyAgICA2NywgNzksIDgwLCA4OSwgODIsIDczLCA3MSwgNzIsIDIxMiwgNjcsIDc5LCA4MCwgODksIDEyOCwgNjcsIDc5LCA4MCwgODIsIAorICAgIDc5LCA2OCwgODUsIDY3LCA4NCwgMTI4LCA2NywgNzksIDgwLCA4MCwgNjksIDgyLCA0NSwgNTAsIDEyOCwgNjcsIDc5LCA4MCwgCisgICAgODAsIDY5LCA4MiwgMTI4LCA2NywgNzksIDgwLCAxMjgsIDY3LCA3OSwgNzksIDc2LCAxMjgsIDY3LCA3OSwgNzksIDc1LCAKKyAgICA3MywgNzgsIDcxLCAxMjgsIDY3LCA3OSwgNzksIDc1LCA3MywgNjksIDEyOCwgNjcsIDc5LCA3OSwgNzUsIDY5LCAxOTYsIAorICAgIDY3LCA3OSwgNzksIDEyOCwgNjcsIDc5LCA3OCwgODYsIDY5LCA4MiwgNzEsIDczLCA3OCwgMTk5LCA2NywgNzksIDc4LCA4NiwgCisgICAgNjksIDc4LCA3MywgNjksIDc4LCA2NywgMTk3LCA2NywgNzksIDc4LCA4NCwgODIsIDc5LCA3NiwgMTI4LCA2NywgNzksIDc4LCAKKyAgICA4NCwgODIsIDc5LCAyMDQsIDY3LCA3OSwgNzgsIDg0LCA4MiwgNjUsIDgyLCA3MywgNjksIDg0LCA4OSwgMTI4LCA2NywgNzksIAorICAgIDc4LCA4NCwgODIsIDY1LCA2NywgODQsIDczLCA3OSwgNzgsIDEyOCwgNjcsIDc5LCA3OCwgODQsIDc5LCA4NSwgODIsIDY5LCAKKyAgICAxOTYsIDY3LCA3OSwgNzgsIDg0LCA3OSwgODUsIDIxMCwgNjcsIDc5LCA3OCwgODQsIDY5LCA3OCwgODQsIDczLCA3OSwgNzgsIAorICAgIDEyOCwgNjcsIDc5LCA3OCwgODQsIDY5LCA3NywgODAsIDc2LCA2NSwgODQsIDczLCA3OSwgNzgsIDEyOCwgNjcsIDc5LCA3OCwgCisgICAgODQsIDY1LCA3MywgNzgsIDIxMSwgNjcsIDc5LCA3OCwgODQsIDY1LCA3MywgNzgsIDczLCA3OCwgMTk5LCA2NywgNzksIDc4LCAKKyAgICA4NCwgNjUsIDczLCAyMDYsIDY3LCA3OSwgNzgsIDg0LCA2NSwgNjcsIDg0LCAxMjgsIDY3LCA3OSwgNzgsIDgzLCA4NCwgODIsIAorICAgIDg1LCA2NywgODQsIDczLCA3OSwgMjA2LCA2NywgNzksIDc4LCA4MywgODQsIDY1LCA3OCwgODQsIDEyOCwgNjcsIDc5LCA3OCwgCisgICAgODMsIDg0LCA2NSwgNzgsIDIxMiwgNjcsIDc5LCA3OCwgODMsIDg0LCA2NSwgNzgsIDY3LCA4OSwgMTI4LCA2NywgNzksIDc4LCAKKyAgICA4MywgNjksIDY3LCA4NSwgODQsIDczLCA4NiwgMTk3LCA2NywgNzksIDc4LCA3NCwgODUsIDc4LCA2NywgODQsIDczLCA3OSwgCisgICAgNzgsIDEyOCwgNjcsIDc5LCA3OCwgNzQsIDg1LCA3MSwgNjUsIDg0LCAxOTcsIDY3LCA3OSwgNzgsIDc0LCA3OSwgNzMsIDc4LCAKKyAgICA3MywgNzgsIDE5OSwgNjcsIDc5LCA3OCwgNzMsIDY3LCA2NSwgMjA0LCA2NywgNzksIDc4LCA3MSwgODIsIDg1LCA2OSwgNzgsIAorICAgIDIxMiwgNjcsIDc5LCA3OCwgNzEsIDgyLCA2NSwgODQsIDg1LCA3NiwgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDY3LCA3OSwgCisgICAgNzgsIDcwLCA4NSwgODMsIDY5LCAxOTYsIDY3LCA3OSwgNzgsIDcwLCA3OSwgODUsIDc4LCA2OCwgNjksIDE5NiwgNjcsIDc5LCAKKyAgICA3OCwgNzAsIDc2LCA3MywgNjcsIDg0LCAxMjgsIDY3LCA3OSwgNzgsIDcwLCA2OSwgODQsIDg0LCAyMDEsIDY3LCA3OSwgNzgsIAorICAgIDY3LCA2NSwgODYsIDY5LCA0NSwgODMsIDczLCA2OCwgNjksIDE5NiwgNjcsIDc5LCA3OCwgNjcsIDY1LCA4NiwgNjksIDQ1LCAKKyAgICA4MCwgNzksIDczLCA3OCwgODQsIDY5LCAxOTYsIDY3LCA3OSwgNzgsIDEyOCwgNjcsIDc5LCA3NywgODAsIDg1LCA4NCwgNjksIAorICAgIDgyLCAxMjgsIDY3LCA3OSwgNzcsIDgwLCA3OSwgODMsIDczLCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA2NywgNzksIDc3LCA4MCwgCisgICAgNzksIDgzLCA3MywgODQsIDczLCA3OSwgMjA2LCA2NywgNzksIDc3LCA4MCwgNzYsIDczLCA2NSwgNzgsIDY3LCA2OSwgMTI4LCAKKyAgICA2NywgNzksIDc3LCA4MCwgNzYsIDY5LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA2NywgNzksIDc3LCA4MCwgNzYsIDY5LCA4NCwgCisgICAgNjksIDY4LCAxMjgsIDY3LCA3OSwgNzcsIDgwLCA3NiwgNjksIDc3LCA2OSwgNzgsIDg0LCAxMjgsIDY3LCA3OSwgNzcsIDgwLCAKKyAgICA2NSwgODIsIDY5LCAxMjgsIDY3LCA3OSwgNzcsIDc3LCA3OSwgMjA2LCA2NywgNzksIDc3LCA3NywgNjksIDgyLCA2NywgNzMsIAorICAgIDY1LCAyMDQsIDY3LCA3OSwgNzcsIDc3LCA2NSwgNzgsIDY4LCAxMjgsIDY3LCA3OSwgNzcsIDc3LCA2NSwgMTI4LCA2NywgCisgICAgNzksIDc3LCA3NywgMTkzLCA2NywgNzksIDc3LCA2OSwgODQsIDEyOCwgNjcsIDc5LCA3NywgNjYsIDEyOCwgNjcsIDc5LCAKKyAgICA3NiwgODUsIDc3LCA3OCwgMTI4LCA2NywgNzksIDc2LCA3OSwgODIsIDEyOCwgNjcsIDc5LCA3NiwgNzYsIDczLCA4MywgNzMsIAorICAgIDc5LCAyMDYsIDY3LCA3OSwgNzYsIDc2LCAxMjgsIDY3LCA3OSwgNzYsIDE5NiwgNjcsIDc5LCA3MCwgNzAsIDczLCA3OCwgCisgICAgMTI4LCA2NywgNzksIDY5LCA3OCwgNzEsIDEyOCwgNjcsIDc5LCA2OSwgNzgsIDE5OSwgNjcsIDc5LCA2OCwgNjUsIDEyOCwgCisgICAgNjcsIDc5LCA2NywgNzUsIDg0LCA2NSwgNzMsIDIwNCwgNjcsIDc5LCA2NSwgODMsIDg0LCA2OSwgODIsIDEyOCwgNjcsIDc5LCAKKyAgICA2NSwgMTI4LCA2NywgNzksIDEyOCwgNjcsIDc3LCAxMjgsIDY3LCAyMDUsIDY3LCA3NiwgODUsIDgzLCA4NCwgNjksIDIxMCwgCisgICAgNjcsIDc2LCA4NSwgNjYsIDgzLCAxMjgsIDY3LCA3NiwgODUsIDY2LCA0NSwgODMsIDgwLCA3OSwgNzUsIDY5LCAxOTYsIDY3LCAKKyAgICA3NiwgODUsIDY2LCAxMjgsIDY3LCA3NiwgODUsIDE5NCwgNjcsIDc2LCA3OSwgODYsIDY5LCA4MiwgMTI4LCA2NywgNzYsIAorICAgIDc5LCA4NSwgNjgsIDEyOCwgNjcsIDc2LCA3OSwgODUsIDE5NiwgNjcsIDc2LCA3OSwgODQsIDcyLCA2OSwgODMsIDEyOCwgCisgICAgNjcsIDc2LCA3OSwgODQsIDcyLCAxMjgsIDY3LCA3NiwgNzksIDgzLCA2OSwgODQsIDEyOCwgNjcsIDc2LCA3OSwgODMsIDY5LCAKKyAgICA3OCwgNjksIDgzLCA4MywgMTI4LCA2NywgNzYsIDc5LCA4MywgNjksIDY4LCAxMjgsIDY3LCA3NiwgNzksIDgzLCAxOTcsIAorICAgIDY3LCA3NiwgNzksIDY3LCA3NSwgODcsIDczLCA4MywgMTk3LCA2NywgNzYsIDc5LCA2NywgMjAzLCA2NywgNzYsIDczLCA4NiwgCisgICAgNzMsIDgzLCAxMjgsIDY3LCA3NiwgNzMsIDgwLCA2NiwgNzksIDY1LCA4MiwgNjgsIDEyOCwgNjcsIDc2LCA3MywgNzgsIDc1LCAKKyAgICA3MywgNzgsIDE5OSwgNjcsIDc2LCA3MywgNzgsIDcxLCA3MywgNzgsIDE5OSwgNjcsIDc2LCA3MywgNzcsIDY1LCA2NywgODUsIAorICAgIDgzLCAxMjgsIDY3LCA3NiwgNzMsIDcwLCA3MCwgMTI4LCA2NywgNzYsIDczLCA2NywgNzUsIDEyOCwgNjcsIDc2LCA2OSwgCisgICAgNzAsIDQ1LCA1MCwgMTI4LCA2NywgNzYsIDY5LCA3MCwgNDUsIDQ5LCAxMjgsIDY3LCA3NiwgNjksIDcwLCAxMjgsIDY3LCAKKyAgICA3NiwgNjksIDE5OCwgNjcsIDc2LCA2OSwgNjUsIDg2LCA2OSwgODIsIDEyOCwgNjcsIDc2LCA2OSwgNjUsIDIxMCwgNjcsIAorICAgIDc2LCA2NSwgODcsIDEyOCwgNjcsIDc2LCA2NSwgODAsIDgwLCA3MywgNzgsIDE5OSwgNjcsIDc2LCA2NSwgODAsIDgwLCA2OSwgCisgICAgMjEwLCA2NywgNzYsIDY1LCA3OCwgMTI4LCA2NywgNzYsIDY1LCA3MywgNzcsIDEyOCwgNjcsIDc2LCAxMjgsIDY3LCA3MywgCisgICAgODgsIDEyOCwgNjcsIDczLCA4NiwgNzMsIDc2LCA3MywgNjUsIDc4LCAxMjgsIDY3LCA3MywgODQsIDg5LCA4MywgNjcsIDY1LCAKKyAgICA4MCwgMTk3LCA2NywgNzMsIDg0LCAxMjgsIDY3LCA3MywgODIsIDY3LCA4NSwgMjExLCA2NywgNzMsIDgyLCA2NywgODUsIAorICAgIDc3LCA3MCwgNzYsIDY5LCA4OCwgMTI4LCA2NywgNzMsIDgyLCA2NywgODUsIDc3LCA3MCwgNzYsIDY5LCAyMTYsIDY3LCA3MywgCisgICAgODIsIDY3LCA4NSwgNzYsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDY3LCA3MywgODIsIDY3LCA3NiwgNjksIDgzLCAxMjgsIDY3LCAKKyAgICA3MywgODIsIDY3LCA3NiwgNjksIDEyOCwgNjcsIDczLCA4MCwgMTI4LCA2NywgNzMsIDc4LCA3OCwgNjUsIDY2LCA2NSwgODIsIAorICAgIDEyOCwgNjcsIDczLCA3OCwgNjksIDc3LCA2NSwgMTI4LCA2NywgNzMsIDczLCAxMjgsIDY3LCA3MywgNjksIDg4LCAxMjgsIAorICAgIDY3LCA3MywgNjksIDg1LCA2NywgNDUsIDgzLCA4MywgNjUsIDc4LCA3MSwgODAsIDczLCA2OSwgODUsIDgwLCAxMjgsIDY3LCAKKyAgICA3MywgNjksIDg1LCA2NywgNDUsIDgwLCA3MywgNjksIDg1LCA4MCwgMTI4LCA2NywgNzMsIDY5LCA4NSwgNjcsIDQ1LCA3MywgCisgICAgNjksIDg1LCA3OCwgNzEsIDEyOCwgNjcsIDczLCA2OSwgODUsIDE5NSwgNjcsIDczLCA2OSwgODQsIDEyOCwgNjcsIDczLCAKKyAgICA2OSwgODAsIDEyOCwgNjcsIDczLCA2OSwgMTI4LCA2NywgNzIsIDg5LCA4OCwgMTI4LCA2NywgNzIsIDg5LCA4NCwgMTI4LCAKKyAgICA2NywgNzIsIDg5LCA4MiwgODgsIDEyOCwgNjcsIDcyLCA4OSwgODIsIDEyOCwgNjcsIDcyLCA4OSwgODAsIDEyOCwgNjcsIAorICAgIDcyLCA4NSwgODgsIDEyOCwgNjcsIDcyLCA4NSwgODIsIDg4LCAxMjgsIDY3LCA3MiwgODUsIDgyLCA2NywgNzIsIDEyOCwgCisgICAgNjcsIDcyLCA4NSwgODIsIDEyOCwgNjcsIDcyLCA4NSwgODAsIDEyOCwgNjcsIDcyLCA4NSwgNzksIDg4LCAxMjgsIDY3LCAKKyAgICA3MiwgODUsIDc5LCA4NCwgMTI4LCA2NywgNzIsIDg1LCA3OSwgODAsIDEyOCwgNjcsIDcyLCA4NSwgNzksIDEyOCwgNjcsIAorICAgIDcyLCA4NSwgNzYsIDY1LCAxMjgsIDY3LCA3MiwgODUsIDEyOCwgNjcsIDcyLCA4MiwgODksIDgzLCA2NSwgNzgsIDg0LCA3MiwgCisgICAgNjksIDc3LCA4NSwgNzcsIDEyOCwgNjcsIDcyLCA4MiwgNzksIDc4LCA3OSwgODUsIDEyOCwgNjcsIDcyLCA4MiwgNzksIDc4LCAKKyAgICA3OSwgNzgsIDEyOCwgNjcsIDcyLCA4MiwgNzksIDc3LCAxOTMsIDY3LCA3MiwgODIsIDc5LCAxOTMsIDY3LCA3MiwgODIsIAorICAgIDczLCA4NiwgNzMsIDEyOCwgNjcsIDcyLCA4MiwgNzMsIDgzLCA4NCwgNzcsIDY1LCA4MywgMTI4LCA2NywgNzIsIDgyLCA3MywgCisgICAgODMsIDg0LCA3NywgNjUsIDIxMSwgNjcsIDcyLCA3OSwgODgsIDEyOCwgNjcsIDcyLCA3OSwgODQsIDEyOCwgNjcsIDcyLCAKKyAgICA3OSwgODIsIDY5LCA4NiwgNzcsIDE5MywgNjcsIDcyLCA3OSwgODAsIDEyOCwgNjcsIDcyLCA3OSwgNzUsIDY5LCAxMjgsIAorICAgIDY3LCA3MiwgNzksIDY5LCAxMjgsIDY3LCA3MiwgNzksIDY3LCA3OSwgNzYsIDY1LCA4NCwgMTk3LCA2NywgNzIsIDc5LCA2NSwgCiAgICAgMTI4LCA2NywgNzIsIDIwNywgNjcsIDcyLCA3MywgODQsIDg1LCA2OSwgODUsIDc3LCA4MywgODMsIDY1LCA3OCwgNzEsIDgzLCAKICAgICA3MywgNzksIDgzLCAxMjgsIDY3LCA3MiwgNzMsIDg0LCA4NSwgNjksIDg1LCA3NywgODMsIDgzLCA2NSwgNzgsIDcxLCA2NywgCiAgICAgNzMsIDY5LCA4NSwgNjcsIDEyOCwgNjcsIDcyLCA3MywgODQsIDg1LCA2OSwgODUsIDc3LCA4MywgNzMsIDc5LCA4MywgMTI4LCAKQEAgLTQwNTEsOTA3NSArNDIxNSw5NjA4IEBACiAgICAgMjExLCA2NywgNzIsIDY5LCA4MiwgODIsIDIxNywgNjcsIDcyLCA2OSwgODIsIDgyLCA3MywgNjksIDgzLCAxMjgsIDY3LCAKICAgICA3MiwgNjksIDgxLCA4NSwgNjksIDgyLCA2OSwgMTk2LCA2NywgNzIsIDY5LCA4MCwgMTI4LCA2NywgNzIsIDY5LCAyMDYsIAogICAgIDY3LCA3MiwgNjksIDczLCA3OCwgNjUsIDgwLCAxMjgsIDY3LCA3MiwgNjksIDczLCA3NSwgNzIsIDY5LCA3MywgMTI4LCA2NywgCi0gICAgNzIsIDY5LCA2OSwgODIsIDczLCA3OCwgMTk5LCA2NywgNzIsIDY5LCA2OSwgMTI4LCA2NywgNzIsIDY5LCA2NywgNzUsIAotICAgIDEyOCwgNjcsIDcyLCA2OSwgNjcsIDIwMywgNjcsIDcyLCAxOTcsIDY3LCA3MiwgNjUsIDg4LCAxMjgsIDY3LCA3MiwgNjUsIAotICAgIDg2LCA3MywgODksIDY1LCA3OCwgNzMsIDEyOCwgNjcsIDcyLCA2NSwgODQsIDg0LCA2NSwgODcsIDY1LCAxMjgsIDY3LCA3MiwgCi0gICAgNjUsIDg0LCAxMjgsIDY3LCA3MiwgNjUsIDgyLCA4NCwgMTI4LCA2NywgNzIsIDY1LCA4MiwgMjEyLCA2NywgNzIsIDY1LCAKLSAgICA4MiwgNzMsIDc5LCA4NCwgMTI4LCA2NywgNzIsIDY1LCA4MiwgNzMsIDc5LCAyMTIsIDY3LCA3MiwgNjUsIDgyLCA2NSwgNjcsIAotICAgIDg0LCA2OSwgODIsIDgzLCAxMjgsIDY3LCA3MiwgNjUsIDgyLCA2NSwgNjcsIDg0LCA2OSwgODIsIDEyOCwgNjcsIDcyLCA2NSwgCi0gICAgODIsIDEyOCwgNjcsIDcyLCA2NSwgODAsIDEyOCwgNjcsIDcyLCA2NSwgNzgsIDcxLCAxMjgsIDY3LCA3MiwgNjUsIDc4LCAKLSAgICAxMjgsIDY3LCA3MiwgNjUsIDc3LCA3NSwgNzksIDEyOCwgNjcsIDcyLCA2NSwgNzcsIDczLCA3NiwgNzksIDc4LCAxMjgsIAotICAgIDY3LCA3MiwgNjUsIDc3LCA3MywgNzYsIDczLCAxMjgsIDY3LCA3MiwgNjUsIDczLCA4MiwgMTI4LCA2NywgNzIsIDY1LCA3MywgCi0gICAgNzgsIDgzLCAxMjgsIDY3LCA3MiwgNjUsIDY4LCA2NSwgMTI4LCA2NywgNzIsIDY1LCAxOTYsIDY3LCA3MiwgNjUsIDY1LCAKLSAgICAxMjgsIDY3LCA2OSwgODgsIDEyOCwgNjcsIDY5LCA4MiwgNjksIDgzLCAxMjgsIDY3LCA2OSwgODIsIDY5LCA3NywgNzksIAotICAgIDc4LCA4OSwgMTI4LCA2NywgNjksIDgyLCA2OSwgNzUsIDEyOCwgNjcsIDY5LCA4MiwgNDUsIDg3LCA2NSwgMTI4LCA2NywgCi0gICAgNjksIDgwLCAxMjgsIDY3LCA2OSwgNzksIDc4LCA3MSwgNjcsIDcyLCA3MywgNjksIDg1LCA3NywgODMsIDgzLCA2NSwgNzgsIAotICAgIDcxLCA4MywgNzMsIDc5LCA4MywgMTI4LCA2NywgNjksIDc5LCA3OCwgNzEsIDY3LCA3MiwgNzMsIDY5LCA4NSwgNzcsIDgzLCAKLSAgICA4MywgNjUsIDc4LCA3MSwgNjcsIDczLCA2OSwgODUsIDY3LCAxMjgsIDY3LCA2OSwgNzksIDc4LCA3MSwgNjcsIDcyLCA3MywgCi0gICAgNjksIDg1LCA3NywgODMsIDczLCA3OSwgODMsIDEyOCwgNjcsIDY5LCA3OSwgNzgsIDcxLCA2NywgNzIsIDczLCA2OSwgODUsIAotICAgIDc3LCA2NywgNzMsIDY5LCA4NSwgNjcsIDEyOCwgNjcsIDY5LCA3OSwgNzgsIDcxLCA2NywgNzIsIDczLCA2OSwgODUsIDc3LCAKLSAgICA2NywgNzIsIDczLCA2OSwgODUsIDY3LCA3MiwgMTI4LCA2NywgNjksIDc4LCA4NCwgODUsIDgyLCA3MywgNjUsIDIwNCwgNjcsIAotICAgIDY5LCA3OCwgODQsIDgyLCA2OSwgNzYsIDczLCA3OCwgMTk3LCA2NywgNjksIDc4LCA4NCwgODIsIDY5LCAxOTYsIDY3LCA2OSwgCi0gICAgNzgsIDg0LCA4MiwgNjksIDEyOCwgNjcsIDY5LCA3OCwgODQsIDgyLCAxOTcsIDY3LCA2OSwgNzgsIDEyOCwgNjcsIDY5LCAKLSAgICA3NiwgODMsIDczLCA4NSwgODMsIDEyOCwgNjcsIDY5LCA3NiwgNjksIDY2LCA4MiwgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIAotICAgIDY3LCA2OSwgNzMsIDgyLCA4NCwgMTI4LCA2NywgNjksIDczLCA3NiwgNzMsIDc4LCA3MSwgMTI4LCA2NywgNjksIDY5LCAKLSAgICAxMjgsIDY3LCA2OSwgNjgsIDczLCA3NiwgNzYsIDY1LCAxMjgsIDY3LCA2OSwgNjgsIDczLCA3NiwgNzYsIDE5MywgNjcsIAotICAgIDY5LCA2OCwgMjAxLCA2NywgNjksIDY3LCA2OSwgNzUsIDEyOCwgNjcsIDY5LCA2NywgNjUsIDc1LCAxMjgsIDY3LCA2OSwgCi0gICAgNjcsIDY1LCAyMDMsIDY3LCA2OSwgNjUsIDc2LCA2NywgMTI4LCA2NywgNjcsIDg1LCAxMjgsIDY3LCA2NywgNzksIDEyOCwgCi0gICAgNjcsIDY3LCA3MywgMTI4LCA2NywgNjcsIDcyLCA4NSwgMTI4LCA2NywgNjcsIDcyLCA3OSwgMTI4LCA2NywgNjcsIDcyLCAKLSAgICA3MywgMTI4LCA2NywgNjcsIDcyLCA3MiwgODUsIDEyOCwgNjcsIDY3LCA3MiwgNzIsIDc5LCAxMjgsIDY3LCA2NywgNzIsIAotICAgIDcyLCA3MywgMTI4LCA2NywgNjcsIDcyLCA3MiwgNjksIDY5LCAxMjgsIDY3LCA2NywgNzIsIDcyLCA2OSwgMTI4LCA2NywgCi0gICAgNjcsIDcyLCA3MiwgNjUsIDY1LCAxMjgsIDY3LCA2NywgNzIsIDcyLCA2NSwgMTI4LCA2NywgNjcsIDcyLCA2OSwgNjksIAorICAgIDcyLCA2OSwgNzMsIDc1LCA3MiwgNjUsIDc4LCAxMjgsIDY3LCA3MiwgNjksIDY5LCA4MiwgNzMsIDc4LCAxOTksIDY3LCA3MiwgCisgICAgNjksIDY5LCAxMjgsIDY3LCA3MiwgNjksIDY3LCA3NSwgMTI4LCA2NywgNzIsIDY5LCA2NywgMjAzLCA2NywgNzIsIDE5NywgCisgICAgNjcsIDcyLCA2NSwgODgsIDEyOCwgNjcsIDcyLCA2NSwgODYsIDczLCA4OSwgNjUsIDc4LCA3MywgMTI4LCA2NywgNzIsIDY1LCAKKyAgICA4NCwgODQsIDY1LCA4NywgNjUsIDEyOCwgNjcsIDcyLCA2NSwgODQsIDEyOCwgNjcsIDcyLCA2NSwgODIsIDg0LCAxMjgsIAorICAgIDY3LCA3MiwgNjUsIDgyLCAyMTIsIDY3LCA3MiwgNjUsIDgyLCA3MywgNzksIDg0LCAxMjgsIDY3LCA3MiwgNjUsIDgyLCA3MywgCisgICAgNzksIDIxMiwgNjcsIDcyLCA2NSwgODIsIDY1LCA2NywgODQsIDY5LCA4MiwgODMsIDEyOCwgNjcsIDcyLCA2NSwgODIsIDY1LCAKKyAgICA2NywgODQsIDY5LCA4MiwgMTI4LCA2NywgNzIsIDY1LCA4MiwgMTI4LCA2NywgNzIsIDY1LCA4MCwgMTI4LCA2NywgNzIsIAorICAgIDY1LCA3OCwgNzEsIDEyOCwgNjcsIDcyLCA2NSwgNzgsIDEyOCwgNjcsIDcyLCA2NSwgNzcsIDc1LCA3OSwgMTI4LCA2NywgCisgICAgNzIsIDY1LCA3NywgNzMsIDc2LCA3OSwgNzgsIDEyOCwgNjcsIDcyLCA2NSwgNzcsIDczLCA3NiwgNzMsIDEyOCwgNjcsIDcyLCAKKyAgICA2NSwgNzUsIDc3LCAxOTMsIDY3LCA3MiwgNjUsIDczLCA4MiwgMTI4LCA2NywgNzIsIDY1LCA3MywgNzgsIDgzLCAxMjgsIAorICAgIDY3LCA3MiwgNjUsIDY4LCA2NSwgMTI4LCA2NywgNzIsIDY1LCAxOTYsIDY3LCA3MiwgNjUsIDY1LCAxMjgsIDY3LCA3MSwgCisgICAgNzQsIDEyOCwgNjcsIDY5LCA4OCwgMTI4LCA2NywgNjksIDgyLCA2OSwgODMsIDEyOCwgNjcsIDY5LCA4MiwgNjksIDc3LCAKKyAgICA3OSwgNzgsIDg5LCAxMjgsIDY3LCA2OSwgODIsIDY5LCA3NSwgMTI4LCA2NywgNjksIDgyLCA0NSwgODcsIDY1LCAxMjgsIAorICAgIDY3LCA2OSwgODAsIDEyOCwgNjcsIDY5LCA3OSwgNzgsIDcxLCA2NywgNzIsIDczLCA2OSwgODUsIDc3LCA4MywgODMsIDY1LCAKKyAgICA3OCwgNzEsIDgzLCA3MywgNzksIDgzLCAxMjgsIDY3LCA2OSwgNzksIDc4LCA3MSwgNjcsIDcyLCA3MywgNjksIDg1LCA3NywgCisgICAgODMsIDgzLCA2NSwgNzgsIDcxLCA2NywgNzMsIDY5LCA4NSwgNjcsIDEyOCwgNjcsIDY5LCA3OSwgNzgsIDcxLCA2NywgNzIsIAorICAgIDczLCA2OSwgODUsIDc3LCA4MywgNzMsIDc5LCA4MywgMTI4LCA2NywgNjksIDc5LCA3OCwgNzEsIDY3LCA3MiwgNzMsIDY5LCAKKyAgICA4NSwgNzcsIDY3LCA3MywgNjksIDg1LCA2NywgMTI4LCA2NywgNjksIDc5LCA3OCwgNzEsIDY3LCA3MiwgNzMsIDY5LCA4NSwgCisgICAgNzcsIDY3LCA3MiwgNzMsIDY5LCA4NSwgNjcsIDcyLCAxMjgsIDY3LCA2OSwgNzgsIDg0LCA4NSwgODIsIDczLCA2NSwgMjA0LCAKKyAgICA2NywgNjksIDc4LCA4NCwgODIsIDY5LCA3NiwgNzMsIDc4LCAxOTcsIDY3LCA2OSwgNzgsIDg0LCA4MiwgNjksIDE5NiwgNjcsIAorICAgIDY5LCA3OCwgODQsIDgyLCA2OSwgMTI4LCA2NywgNjksIDc4LCA4NCwgODIsIDE5NywgNjcsIDY5LCA3OCwgMTI4LCA2NywgCisgICAgNjksIDc2LCA4MywgNzMsIDg1LCA4MywgMTI4LCA2NywgNjksIDc2LCA2OSwgNjYsIDgyLCA2NSwgODQsIDczLCA3OSwgNzgsIAorICAgIDEyOCwgNjcsIDY5LCA3MywgODIsIDg0LCAxMjgsIDY3LCA2OSwgNzMsIDc2LCA3MywgNzgsIDcxLCAxMjgsIDY3LCA2OSwgCisgICAgNjksIDEyOCwgNjcsIDY5LCA2OCwgNzMsIDc2LCA3NiwgNjUsIDEyOCwgNjcsIDY5LCA2OCwgNzMsIDc2LCA3NiwgMTkzLCAKKyAgICA2NywgNjksIDY4LCAyMDEsIDY3LCA2OSwgNjcsIDY5LCA3NSwgMTI4LCA2NywgNjksIDY3LCA2NSwgNzUsIDEyOCwgNjcsIAorICAgIDY5LCA2NywgNjUsIDIwMywgNjcsIDY5LCA2NSwgNzYsIDY3LCAxMjgsIDY3LCA2NywgODUsIDEyOCwgNjcsIDY3LCA3OSwgCisgICAgMTI4LCA2NywgNjcsIDczLCAxMjgsIDY3LCA2NywgNzIsIDg1LCAxMjgsIDY3LCA2NywgNzIsIDc5LCAxMjgsIDY3LCA2NywgCisgICAgNzIsIDczLCAxMjgsIDY3LCA2NywgNzIsIDcyLCA4NSwgMTI4LCA2NywgNjcsIDcyLCA3MiwgNzksIDEyOCwgNjcsIDY3LCAKKyAgICA3MiwgNzIsIDczLCAxMjgsIDY3LCA2NywgNzIsIDcyLCA2OSwgNjksIDEyOCwgNjcsIDY3LCA3MiwgNzIsIDY5LCAxMjgsIAorICAgIDY3LCA2NywgNzIsIDcyLCA2NSwgNjUsIDEyOCwgNjcsIDY3LCA3MiwgNzIsIDY1LCAxMjgsIDY3LCA2NywgNzIsIDY5LCA2OSwgCiAgICAgMTI4LCA2NywgNjcsIDcyLCA2OSwgMTI4LCA2NywgNjcsIDcyLCA2NSwgNjUsIDEyOCwgNjcsIDY3LCA3MiwgNjUsIDEyOCwgCi0gICAgNjcsIDY3LCA2OSwgNjksIDEyOCwgNjcsIDY3LCA2OSwgMTI4LCA2NywgNjcsIDY1LCA2NSwgMTI4LCA2NywgNjcsIDY1LCAKLSAgICAxMjgsIDY3LCA2NSwgODksIDc4LCAxMjgsIDY3LCA2NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDY3LCA2NSwgODgsIAotICAgIDEyOCwgNjcsIDY1LCA4NiwgNjksIDEyOCwgNjcsIDY1LCA4NSwgODQsIDczLCA3OSwgMjA2LCA2NywgNjUsIDg1LCA3NiwgCi0gICAgNjgsIDgyLCA3OSwgNzgsIDEyOCwgNjcsIDY1LCA4NSwgNjgsIDY1LCAxMjgsIDY3LCA2NSwgODQsIDY1LCA4NywgNjUsIAotICAgIDEyOCwgNjcsIDY1LCA4NCwgMTI4LCA2NywgNjUsIDIxMiwgNjcsIDY1LCA4MywgODQsIDc2LCA2OSwgMTI4LCA2NywgNjUsIAotICAgIDgyLCA4OSwgODMsIDg0LCA3MywgNjUsIDIwNiwgNjcsIDY1LCA4MiwgODQsIDEyOCwgNjcsIDY1LCA4MiwgMjExLCA2NywgCi0gICAgNjUsIDgyLCA4MiwgNzMsIDY1LCA3MSwgMTk3LCA2NywgNjUsIDgyLCA4MCwgNjksIDc4LCA4NCwgODIsIDIxNywgNjcsIDY1LCAKLSAgICA4MiwgMjA4LCA2NywgNjUsIDgyLCA3OSwgODUsIDgzLCA2OSwgMjA0LCA2NywgNjUsIDgyLCA3OSwgNzgsIDEyOCwgNjcsIAotICAgIDY1LCA4MiwgNzksIDIwNiwgNjcsIDY1LCA4MiwgNzMsIDIwMywgNjcsIDY1LCA4MiwgNzMsIDY1LCAyMDYsIDY3LCA2NSwgCi0gICAgODIsIDY5LCA4NCwgMTI4LCA2NywgNjUsIDgyLCA2OSwgMjEyLCA2NywgNjUsIDgyLCAxOTcsIDY3LCA2NSwgODIsIDY4LCAKLSAgICA4MywgMTI4LCA2NywgNjUsIDgyLCA2OCwgMTI4LCA2NywgNjUsIDgyLCAxOTYsIDY3LCA2NSwgODIsIDEyOCwgNjcsIDY1LCAKLSAgICAyMTAsIDY3LCA2NSwgODAsIDg1LCAyMTIsIDY3LCA2NSwgODAsIDg0LCA3MywgODYsIDY5LCAxMjgsIDY3LCA2NSwgODAsIAotICAgIDgyLCA3MywgNjcsIDc5LCA4MiwgNzgsIDEyOCwgNjcsIDY1LCA4MCwgNzksIDEyOCwgNjcsIDY1LCA4MCwgNzMsIDg0LCA2NSwgCi0gICAgNzYsIDEyOCwgNjcsIDY1LCA3OCwgODQsIDczLCA3NiwgNzYsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDY3LCA2NSwgNzgsIAotICAgIDE5OSwgNjcsIDY1LCA3OCwgNjgsIDg5LCAxMjgsIDY3LCA2NSwgNzgsIDY4LCA4MiwgNjUsIDY2LCA3MywgNzgsIDY4LCA4NSwgCi0gICAgMTI4LCA2NywgNjUsIDc4LCA2OCwgODIsIDY1LCA2NiwgNzMsIDc4LCA2OCwgMjEzLCA2NywgNjUsIDc4LCA2OCwgODIsIDY1LCAKLSAgICAxMjgsIDY3LCA2NSwgNzgsIDY4LCA4MiwgMTkzLCA2NywgNjUsIDc4LCA2NywgNjksIDgyLCAxMjgsIDY3LCA2NSwgNzgsIAotICAgIDY3LCA2OSwgNzYsIDc2LCA2NSwgODQsIDczLCA3OSwgMjA2LCA2NywgNjUsIDc4LCA2NywgNjksIDc2LCAxMjgsIDY3LCA2NSwgCi0gICAgNzgsIDY3LCA2OSwgMjA0LCA2NywgNjUsIDc4LCAxMjgsIDY3LCA2NSwgNzcsIDc4LCA4NSwgMTk1LCA2NywgNjUsIDc3LCAKLSAgICA2OSwgODIsIDY1LCAxMjgsIDY3LCA2NSwgNzcsIDY5LCA3NiwgMTI4LCA2NywgNjUsIDc2LCA4OSwgNjUsIDEyOCwgNjcsIAotICAgIDY1LCA3NiwgODksIDE5MywgNjcsIDY1LCA3NiwgODgsIDEyOCwgNjcsIDY1LCA3NiwgNzYsIDEyOCwgNjcsIDY1LCA3NiwgCi0gICAgNjksIDc4LCA2OCwgNjUsIDgyLCAxMjgsIDY3LCA2NSwgNzYsIDY3LCAxMjgsIDY3LCA2NSwgNzUsIDgyLCA2NSwgMTI4LCAKLSAgICA2NywgNjUsIDc1LCAxOTcsIDY3LCA2NSwgNjksIDgzLCA4NSwgODIsIDY1LCAxMjgsIDY3LCA2NSwgNjgsIDg1LCA2NywgNjksIAotICAgIDg1LCA4MywgMTI4LCA2NywgNjUsIDY4LCAxOTMsIDY3LCA2NSwgNjcsIDg0LCA4NSwgODMsIDEyOCwgNjcsIDY1LCA2NiwgCi0gICAgNzYsIDY5LCA4NywgNjUsIDg5LCAxMjgsIDY3LCA2NSwgNjYsIDY2LCA2NSwgNzEsIDY5LCA0NSwgODQsIDgyLCA2OSwgNjksIAotICAgIDEyOCwgNjcsIDY1LCA2NSwgNzgsIDcxLCAxMjgsIDY3LCA2NSwgNjUsIDczLCAxMjgsIDY3LCAxOTMsIDY3LCA0OCwgNTAsIAotICAgIDUyLCAxMjgsIDY3LCA0OCwgNTAsIDUxLCAxMjgsIDY3LCA0OCwgNTAsIDUwLCAxMjgsIDY3LCA0OCwgNTAsIDQ5LCAxMjgsIAotICAgIDY3LCA0OCwgNTAsIDQ4LCAxMjgsIDY3LCA0OCwgNDksIDU3LCAxMjgsIDY3LCA0OCwgNDksIDU2LCAxMjgsIDY3LCA0OCwgCi0gICAgNDksIDU1LCAxMjgsIDY3LCA0OCwgNDksIDU0LCAxMjgsIDY3LCA0OCwgNDksIDUzLCAxMjgsIDY3LCA0OCwgNDksIDUyLCAKLSAgICAxMjgsIDY3LCA0OCwgNDksIDUxLCAxMjgsIDY3LCA0OCwgNDksIDUwLCAxMjgsIDY3LCA0OCwgNDksIDQ5LCAxMjgsIDY3LCAKLSAgICA0OCwgNDksIDQ4LCA2NSwgMTI4LCA2NywgNDgsIDQ5LCA0OCwgMTI4LCA2NywgNDgsIDQ4LCA1NywgMTI4LCA2NywgNDgsIAotICAgIDQ4LCA1NiwgMTI4LCA2NywgNDgsIDQ4LCA1NSwgMTI4LCA2NywgNDgsIDQ4LCA1NCwgMTI4LCA2NywgNDgsIDQ4LCA1MywgCi0gICAgMTI4LCA2NywgNDgsIDQ4LCA1MiwgMTI4LCA2NywgNDgsIDQ4LCA1MSwgMTI4LCA2NywgNDgsIDQ4LCA1MCwgNjcsIDEyOCwgCi0gICAgNjcsIDQ4LCA0OCwgNTAsIDY2LCAxMjgsIDY3LCA0OCwgNDgsIDUwLCA2NSwgMTI4LCA2NywgNDgsIDQ4LCA1MCwgMTI4LCAKLSAgICA2NywgNDgsIDQ4LCA0OSwgMTI4LCA2NywgNDUsIDgzLCA3MywgNzcsIDgwLCA3NiwgNzMsIDcwLCA3MywgNjksIDE5NiwgNjcsIAotICAgIDQ1LCA1MSwgNTcsIDEyOCwgNjcsIDQ1LCA0OSwgNTYsIDEyOCwgNjYsIDkwLCA4NSwgNzgsIDE5OSwgNjYsIDkwLCA3MiwgCi0gICAgMjAxLCA2NiwgODksIDY5LCA3NiwgNzksIDgyLCA4NSwgODMsIDgzLCA3MywgNjUsIDc4LCA0NSwgODUsIDc1LCA4MiwgNjUsIAotICAgIDczLCA3OCwgNzMsIDY1LCAyMDYsIDY2LCA4OCwgNzEsIDEyOCwgNjYsIDg3LCA3MywgMTI4LCA2NiwgODcsIDY5LCA2OSwgCi0gICAgMTI4LCA2NiwgODcsIDY5LCAxMjgsIDY2LCA4NywgNjUsIDEyOCwgNjYsIDg1LCA4NSwgNzcsIDczLCA4MywgNzIsIDEyOCwgCi0gICAgNjYsIDg1LCA4NCwgODQsIDc5LCA3OCwgMTI4LCA2NiwgODUsIDIxMiwgNjYsIDg1LCA4MywgODQsIDIxMSwgNjYsIDg1LCAKLSAgICA4MywgMjEyLCA2NiwgODUsIDgzLCA4MywgODksIDY5LCA4MiwgODUsIDEyOCwgNjYsIDg1LCAyMTEsIDY2LCA4NSwgODIsIAotICAgIDIxMywgNjYsIDg1LCA4MiwgNTAsIDEyOCwgNjYsIDg1LCAyMTAsIDY2LCA4NSwgNzksIDg4LCAxMjgsIDY2LCA4NSwgNzksIAotICAgIDgwLCAxMjgsIDY2LCA4NSwgNzgsIDc4LCAyMTcsIDY2LCA4NSwgNzgsIDcxLCAxMjgsIDY2LCA4NSwgNzcsIDgwLCAyMTcsIAotICAgIDY2LCA4NSwgNzYsIDg1LCA3MSwgMTI4LCA2NiwgODUsIDc2LCA4NSwgMTk5LCA2NiwgODUsIDc2LCA3NiwgODMsIDY5LCA4OSwgCi0gICAgNjksIDEyOCwgNjYsIDg1LCA3NiwgNzYsIDIxMSwgNjYsIDg1LCA3NiwgNzYsIDY5LCA4NCwgMTI4LCA2NiwgODUsIDc2LCAKLSAgICA3NiwgNjksIDIxMiwgNjYsIDg1LCA3NiwgNzYsIDEyOCwgNjYsIDg1LCA3NiwgNjYsIDEyOCwgNjYsIDg1LCA3NSwgODksIAotICAgIDEyOCwgNjYsIDg1LCA3MywgNzYsIDY4LCA3MywgNzgsIDcxLCA4MywgMTI4LCA2NiwgODUsIDczLCA3NiwgNjgsIDczLCA3OCwgCi0gICAgNzEsIDEyOCwgNjYsIDg1LCA3MiwgNzMsIDE5NiwgNjYsIDg1LCA3MSwgNzMsIDc4LCA2OSwgODMsIDE5NywgNjYsIDg1LCAKLSAgICA3MSwgMTI4LCA2NiwgODUsIDcwLCA3MCwgNjUsIDc2LCA3OSwgMTI4LCA2NiwgODUsIDY3LCA3NSwgNzYsIDY5LCAxMjgsIAotICAgIDY2LCA4MywgODQsIDY1LCA4MiwgMTI4LCA2NiwgODMsIDc1LCA4NSwgMjEwLCA2NiwgODMsIDc1LCA2NSwgMTczLCA2NiwgCi0gICAgODMsIDY4LCA4NSwgMjExLCA2NiwgODIsIDg1LCA4MywgNzIsIDEyOCwgNjYsIDgyLCA4NSwgODMsIDIwMCwgNjYsIDgyLCAKLSAgICA3OSwgNzgsIDkwLCA2OSwgMTI4LCA2NiwgODIsIDc5LCA3NSwgNjksIDIwNiwgNjYsIDgyLCA3OSwgNjUsIDE5NiwgNjYsIAotICAgIDgyLCA3MywgODMsIDg0LCA3NiwgNjksIDEyOCwgNjYsIDgyLCA3MywgNzEsIDcyLCA4NCwgNzgsIDY5LCA4MywgMjExLCA2NiwgCi0gICAgODIsIDczLCA2OSwgNzAsIDY3LCA2NSwgODMsIDY5LCAxMjgsIDY2LCA4MiwgNzMsIDY4LCA3MSwgMTk3LCA2NiwgODIsIDczLCAKLSAgICA2OCwgMTk3LCA2NiwgODIsIDczLCA2NywgNzUsIDEyOCwgNjYsIDgyLCA2OSwgODYsIDczLCA4MywgMTI4LCA2NiwgODIsIAotICAgIDY5LCA4NiwgNjksIDQ1LCA3NywgNjUsIDY3LCA4MiwgNzksIDc4LCAxMjgsIDY2LCA4MiwgNjksIDg2LCAxOTcsIDY2LCA4MiwgCi0gICAgNjksIDY1LCA4NCwgMjAwLCA2NiwgODIsIDY5LCA2NSwgNzUsIDg0LCA3MiwgODIsIDc5LCA4NSwgNzEsIDcyLCAxMjgsIDY2LCAKLSAgICA4MiwgNjksIDY1LCA2OCwgMTI4LCA2NiwgODIsIDY4LCAxOTMsIDY2LCA4MiwgNjUsIDc4LCA2NywgNzIsIDczLCA3OCwgCi0gICAgMTk5LCA2NiwgODIsIDY1LCA3OCwgNjcsIDcyLCAxMjgsIDY2LCA4MiwgNjUsIDc4LCA2NywgMjAwLCA2NiwgODIsIDY1LCAKLSAgICA3NSwgNjcsIDY5LCA4NCwgMTI4LCA2NiwgODIsIDY1LCA2NywgNzUsIDY5LCA4NCwgNjksIDE5NiwgNjYsIDgyLCA2NSwgNjcsIAotICAgIDc1LCA2OSwgMjEyLCA2NiwgODIsIDY1LCA2NywgNjksIDEyOCwgNjYsIDgxLCAxMjgsIDY2LCA3OSwgODksIDEyOCwgNjYsIAotICAgIDc5LCA4NywgODQsIDczLCA2OSwgMTI4LCA2NiwgNzksIDg3LCA4NCwgNzMsIDE5NywgNjYsIDc5LCA4NywgNzYsIDczLCA3OCwgCi0gICAgNzEsIDEyOCwgNjYsIDc5LCA4NywgNzYsIDEyOCwgNjYsIDc5LCA4NywgNzMsIDc4LCAxOTksIDY2LCA3OSwgMjE1LCA2NiwgCi0gICAgNzksIDg1LCA4MSwgODUsIDY5LCA4NCwgMTI4LCA2NiwgNzksIDg1LCA3OCwgNjgsIDY1LCA4MiwgMjE3LCA2NiwgNzksIDg0LCAKLSAgICA4NCwgNzksIDc3LCA0NSwgNzYsIDczLCA3MSwgNzIsIDg0LCA2OSwgMTk2LCA2NiwgNzksIDg0LCA4NCwgNzksIDc3LCAxMjgsIAotICAgIDY2LCA3OSwgODQsIDg0LCA3OSwgMjA1LCA2NiwgNzksIDg0LCA4NCwgNzYsIDY5LCAxMjgsIDY2LCA3OSwgODQsIDg0LCA3NiwgCi0gICAgMTk3LCA2NiwgNzksIDg0LCAyMDAsIDY2LCA3OSwgODIsIDg1LCA4NCwgNzksIDEyOCwgNjYsIDc5LCA4MiwgNjUsIDg4LCAKLSAgICA0NSwgNTEsIDEyOCwgNjYsIDc5LCA4MiwgNjUsIDg4LCA0NSwgNTAsIDEyOCwgNjYsIDc5LCA4MiwgNjUsIDg4LCAxMjgsIAotICAgIDY2LCA3OSwgNzksIDg0LCA4MywgMTI4LCA2NiwgNzksIDc5LCA4NCwgMTI4LCA2NiwgNzksIDc5LCA3NywgNjksIDgyLCA2NSwgCi0gICAgNzgsIDcxLCAxMjgsIDY2LCA3OSwgNzksIDc1LCA4MywgMTI4LCA2NiwgNzksIDc5LCA3NSwgNzcsIDY1LCA4MiwgNzUsIAotICAgIDEyOCwgNjYsIDc5LCA3OSwgNzUsIDc3LCA2NSwgODIsIDIwMywgNjYsIDc5LCA3OCwgNjksIDEyOCwgNjYsIDc5LCA3NywgCi0gICAgNjYsIDEyOCwgNjYsIDc5LCA3NiwgODQsIDEyOCwgNjYsIDc5LCA3NiwgMjEyLCA2NiwgNzksIDY4LCA4OSwgMTI4LCA2NiwgCi0gICAgNzksIDY1LCA4MiwgMTI4LCA2NiwgNzksIDY1LCAxMjgsIDY2LCA3NiwgODUsIDY5LCAxMjgsIDY2LCA3NiwgODUsIDE5NywgCi0gICAgNjYsIDc2LCA3OSwgODcsIDcwLCA3MywgODMsIDcyLCAxMjgsIDY2LCA3NiwgNzksIDgzLCA4MywgNzksIDc3LCAxMjgsIDY2LCAKLSAgICA3NiwgNzksIDc5LCA2OCwgMTI4LCA2NiwgNzYsIDc5LCA3OCwgMTk2LCA2NiwgNzYsIDc5LCA2NywgNzUsIDEyOCwgNjYsIAotICAgIDc2LCA2OSwgNzgsIDY4LCA2OSwgMTk2LCA2NiwgNzYsIDY1LCA3OCwgNzUsIDEyOCwgNjYsIDc2LCA2NSwgNzgsIDIwMywgCi0gICAgNjYsIDc2LCA2NSwgNjgsIDE5NywgNjYsIDc2LCA2NSwgNjcsIDc1LCA3MCwgNzksIDc5LCAyMTIsIDY2LCA3NiwgNjUsIDY3LCAKLSAgICA3NSwgNDUsIDc2LCA2OSwgODQsIDg0LCA2OSwgMjEwLCA2NiwgNzYsIDY1LCA2NywgNzUsIDQ1LCA3MCwgNjksIDY1LCA4NCwgCi0gICAgNzIsIDY5LCA4MiwgNjksIDE5NiwgNjYsIDc2LCA2NSwgNjcsIDc1LCAxMjgsIDY2LCA3NSwgNjUsIDE3MywgNjYsIDczLCAKLSAgICA4NCwgODQsIDY5LCA4MiwgMTI4LCA2NiwgNzMsIDg0LCA3MywgNzgsIDE5OSwgNjYsIDczLCA4MywgNzcsIDg1LCA4NCwgCi0gICAgMjAwLCA2NiwgNzMsIDgzLCA3NywgNzMsIDc2LCA3NiwgNjUsIDIwMCwgNjYsIDczLCA4MywgNzIsIDc5LCA4MCwgMTI4LCAKLSAgICA2NiwgNzMsIDgzLCA2OSwgNjcsIDg0LCA3MywgNzgsIDE5OSwgNjYsIDczLCA4MywgNjUsIDcyLCAxMjgsIDY2LCA3MywgODIsIAotICAgIDg1LCAxMjgsIDY2LCA3MywgODIsIDg0LCA3MiwgNjgsIDY1LCAyMTcsIDY2LCA3MywgODIsIDcxLCA2NSwgMTI4LCA2NiwgCi0gICAgNzMsIDgyLCA2OCwgMTI4LCA2NiwgNzMsIDc5LCA3MiwgNjUsIDkwLCA2NSwgODIsIDE5NiwgNjYsIDczLCA3OCwgNzksIDY3LCAKLSAgICA4NSwgNzYsIDY1LCAyMTAsIDY2LCA3MywgNzgsIDY4LCA3MywgNzgsIDE5OSwgNjYsIDczLCA3OCwgNjgsIDczLCAxMjgsIAotICAgIDY2LCA3MywgNzgsIDY1LCA4MiwgMjE3LCA2NiwgNzMsIDc2LCA3NiwgNzMsIDY1LCA4MiwgNjgsIDgzLCAxMjgsIDY2LCA3MywgCi0gICAgNzYsIDY1LCA2NiwgNzMsIDY1LCAyMDQsIDY2LCA3MywgNzUsIDczLCA3OCwgNzMsIDEyOCwgNjYsIDczLCA3MSwgMTI4LCAKLSAgICA2NiwgNzMsIDE5OSwgNjYsIDczLCA2OSwgODQsIDEyOCwgNjYsIDczLCA2OCwgNjksIDc4LCA4NCwgNjUsIDIwNCwgNjYsIAotICAgIDczLCA2NywgODksIDY3LCA3NiwgNzMsIDgzLCA4NCwgMTI4LCA2NiwgNzMsIDY3LCA4OSwgNjcsIDc2LCA2OSwgODMsIDEyOCwgCi0gICAgNjYsIDczLCA2NywgODksIDY3LCA3NiwgNjksIDEyOCwgNjYsIDczLCA2NywgNjksIDgwLCA4MywgMTI4LCA2NiwgNzMsIDY2LCAKLSAgICA3NiwgNjksIDQ1LCA2NywgODIsIDY5LCAxOTcsIDY2LCA3MywgNjYsIDEyOCwgNjYsIDIwMSwgNjYsIDcyLCA4NSwgMTI4LCAKLSAgICA2NiwgNzIsIDc5LCA3OSwgMTI4LCA2NiwgNzIsIDc5LCAxMjgsIDY2LCA3MiwgNzMsIDEyOCwgNjYsIDcyLCA2OSwgODQsIAotICAgIDcyLCAxMjgsIDY2LCA3MiwgNjksIDY5LCAxMjgsIDY2LCA3MiwgNjksIDEyOCwgNjYsIDcyLCA2NSwgODQsIDg0LCA3MywgCi0gICAgODAsIDgyLCA3OSwgNzYsIDIxMywgNjYsIDcyLCA2NSwgNzcsIDEyOCwgNjYsIDcyLCA2NSwgMTI4LCA2NiwgNjksIDg5LCAKLSAgICA4OSwgNjUsIDc2LCAxMjgsIDY2LCA2OSwgODgsIDEyOCwgNjYsIDY5LCA4NiwgNjksIDgyLCA2NSwgNzEsIDY5LCAxMjgsIAotICAgIDY2LCA2OSwgODQsIDg3LCA2OSwgNjksIDc4LCAxMjgsIDY2LCA2OSwgODQsIDg3LCA2OSwgNjksIDIwNiwgNjYsIDY5LCA4NCwgCi0gICAgNzIsIDEyOCwgNjYsIDY5LCA4NCwgNjUsIDEyOCwgNjYsIDY5LCA4NCwgMTkzLCA2NiwgNjksIDIxMiwgNjYsIDY5LCA4MywgCi0gICAgNzMsIDY4LCAxOTcsIDY2LCA2OSwgODIsIDc1LCA2NSwgNzgsIDY1LCAyMDYsIDY2LCA2OSwgODIsIDY2LCA2OSwgMjEwLCAKLSAgICA2NiwgNjksIDgwLCAxMjgsIDY2LCA2OSwgNzksIDgyLCAxOTUsIDY2LCA2OSwgNzgsIDkwLCA2OSwgNzgsIDE5NywgNjYsIAotICAgIDY5LCA3OCwgODQsIDIwNywgNjYsIDY5LCA3OCwgNjgsIDY5LCAxMjgsIDY2LCA2OSwgNzgsIDY4LCAxMjgsIDY2LCA2OSwgCi0gICAgMjA2LCA2NiwgNjksIDc2LCA4NCwgMTI4LCA2NiwgNjksIDc2LCAyMTIsIDY2LCA2OSwgNzYsIDc5LCAyMTUsIDY2LCA2OSwgCi0gICAgNzYsIDc2LCAxMjgsIDY2LCA2OSwgNzYsIDIwNCwgNjYsIDY5LCA3NiwgNzEsIDg0LCA3MiwgNzksIDIxMCwgNjYsIDY5LCAKLSAgICA3MywgODQsIDcyLCAxMjgsIDY2LCA2OSwgNzIsIDczLCA3OCwgMTk2LCA2NiwgNjksIDcyLCA2OSwgNzIsIDEyOCwgNjYsIAotICAgIDY5LCA3MiwgNjksIDIwMCwgNjYsIDY5LCA3MiwgMTI4LCA2NiwgNjksIDIwMCwgNjYsIDY5LCA3MSwgNzMsIDc4LCA3OCwgCi0gICAgNzMsIDc4LCA3MSwgMTI4LCA2NiwgNjksIDcxLCA3MywgNzgsIDc4LCA2OSwgODIsIDEyOCwgNjYsIDY5LCA3MSwgNzMsIAotICAgIDIwNiwgNjYsIDY5LCA3MCwgNzksIDgyLCAxOTcsIDY2LCA2OSwgNjksIDg0LCA3NiwgNjksIDEyOCwgNjYsIDY5LCA2OSwgCi0gICAgODQsIDY1LCAxMjgsIDY2LCA2OSwgNjksIDIxMCwgNjYsIDY5LCA2OSwgNzIsIDczLCA4NiwgNjksIDEyOCwgNjYsIDY5LCAKLSAgICA2OSwgNzIsIDEyOCwgNjYsIDY5LCA2OSwgMjAwLCA2NiwgNjksIDY3LCA2NSwgODUsIDgzLCA2OSwgMTI4LCA2NiwgNjksIAotICAgIDY1LCA4NiwgNjksIDIxMCwgNjYsIDY5LCA2NSwgODQsIDczLCA3OCwgMTk5LCA2NiwgNjksIDY1LCA4NCwgMTI4LCA2NiwgCi0gICAgNjksIDY1LCAyMTAsIDY2LCA2OSwgNjUsIDc4LCAxMjgsIDY2LCA2OSwgNjUsIDc3LCA2OSwgMTk2LCA2NiwgNjcsIDY1LCAKLSAgICA2OCwgMTI4LCA2NiwgNjcsIDY1LCAxOTYsIDY2LCA2NiwgODksIDg4LCAxMjgsIDY2LCA2NiwgODksIDg0LCAxMjgsIDY2LCAKLSAgICA2NiwgODksIDgwLCAxMjgsIDY2LCA2NiwgODksIDEyOCwgNjYsIDY2LCA4NSwgODgsIDEyOCwgNjYsIDY2LCA4NSwgODQsIAotICAgIDEyOCwgNjYsIDY2LCA4NSwgODIsIDg4LCAxMjgsIDY2LCA2NiwgODUsIDgyLCAxMjgsIDY2LCA2NiwgODUsIDgwLCAxMjgsIAotICAgIDY2LCA2NiwgODUsIDc5LCA4OCwgMTI4LCA2NiwgNjYsIDg1LCA3OSwgODAsIDEyOCwgNjYsIDY2LCA4NSwgNzksIDEyOCwgCi0gICAgNjYsIDY2LCA4NSwgMTI4LCA2NiwgNjYsIDc5LCA4OCwgMTI4LCA2NiwgNjYsIDc5LCA4NCwgMTI4LCA2NiwgNjYsIDc5LCAKLSAgICA4MCwgMTI4LCA2NiwgNjYsIDc5LCAxMjgsIDY2LCA2NiwgNzMsIDg4LCAxMjgsIDY2LCA2NiwgNzMsIDgwLCAxMjgsIDY2LCAKLSAgICA2NiwgNzMsIDY5LCA4OCwgMTI4LCA2NiwgNjYsIDczLCA2OSwgODQsIDEyOCwgNjYsIDY2LCA3MywgNjksIDgwLCAxMjgsIAotICAgIDY2LCA2NiwgNzMsIDY5LCAxMjgsIDY2LCA2NiwgNzMsIDEyOCwgNjYsIDY2LCA2OSwgODgsIDEyOCwgNjYsIDY2LCA2OSwgCi0gICAgODAsIDEyOCwgNjYsIDY2LCA2OSwgNjksIDEyOCwgNjYsIDY2LCA2OSwgMTI4LCA2NiwgNjYsIDY1LCA4OCwgMTI4LCA2NiwgCi0gICAgNjYsIDY1LCA4NCwgMTI4LCA2NiwgNjYsIDY1LCA4MCwgMTI4LCA2NiwgNjYsIDY1LCA2NSwgMTI4LCA2NiwgNjYsIDY1LCAKLSAgICAxMjgsIDY2LCA2NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDY2LCA2NSwgODUsIDEyOCwgNjYsIDY1LCA4NCwgODQsIAotICAgIDY5LCA4MiwgODksIDEyOCwgNjYsIDY1LCA4NCwgNzIsIDg0LCA4NSwgNjYsIDEyOCwgNjYsIDY1LCA4NCwgNzIsIDY1LCA3NywgCi0gICAgNjUsIDgzLCA2NSwgODQsIDEyOCwgNjYsIDY1LCA4NCwgNzIsIDEyOCwgNjYsIDY1LCA4NCwgMjAwLCA2NiwgNjUsIDg0LCAKLSAgICA2NSwgMjAzLCA2NiwgNjUsIDgzLCA4MywgNjUsIDEyOCwgNjYsIDY1LCA4MywgNzUsIDY5LCA4NCwgNjYsIDY1LCA3NiwgCi0gICAgMjA0LCA2NiwgNjUsIDgzLCA3MiwgNzUsIDczLCAyMTAsIDY2LCA2NSwgODMsIDcyLCAxMjgsIDY2LCA2NSwgODMsIDY5LCAKLSAgICA2NiwgNjUsIDc2LCA3NiwgMTI4LCA2NiwgNjUsIDgzLCA2OSwgMTI4LCA2NiwgNjUsIDgzLCAxOTcsIDY2LCA2NSwgODIsIAotICAgIDgzLCAxMjgsIDY2LCA2NSwgODIsIDgyLCA3MywgNjksIDgyLCAxMjgsIDY2LCA2NSwgODIsIDgyLCA2OSwgNzUsIDcyLCAKLSAgICAxMjgsIDY2LCA2NSwgODIsIDgyLCA2OSwgNjksIDEyOCwgNjYsIDY1LCA4MiwgODIsIDY5LCAxOTcsIDY2LCA2NSwgODIsIAotICAgIDc2LCA3MywgNzgsIDY5LCAxMjgsIDY2LCA2NSwgODIsIDc2LCA2OSwgODksIDEyOCwgNjYsIDY1LCA4MiwgNzMsIDg5LCA3OSwgCi0gICAgNzksIDgzLCA2NSwgNzgsIDEyOCwgNjYsIDY1LCA4MiwgNjYsIDY5LCAyMTAsIDY2LCA2NSwgODIsIDY1LCA1MCwgMTI4LCAKLSAgICA2NiwgNjUsIDIxMCwgNjYsIDY1LCA3OCwgODQsIDc5LCA2NywgMTI4LCA2NiwgNjUsIDc4LCA3NSwgNzgsIDc5LCA4NCwgCi0gICAgMTk3LCA2NiwgNjUsIDc4LCA3NSwgMTI4LCA2NiwgNjUsIDc4LCAyMDMsIDY2LCA2NSwgNzgsIDY4LCAxMjgsIDY2LCA2NSwgCi0gICAgNzgsIDY1LCA3OCwgNjUsIDEyOCwgNjYsIDY1LCA3OCwgNTAsIDEyOCwgNjYsIDY1LCA3OCwgMTc4LCA2NiwgNjUsIDc3LCAKLSAgICA2NiwgNzksIDc5LCA4MywgMTI4LCA2NiwgNjUsIDc3LCA2NiwgNzksIDc5LCAxMjgsIDY2LCA2NSwgNzYsIDg1LCA2OCwgNjUsIAotICAgIDEyOCwgNjYsIDY1LCA3NiwgNzYsIDc5LCAyMTIsIDY2LCA2NSwgNzYsIDc2LCA3OSwgNzksIDc4LCA0NSwgODMsIDgwLCA3OSwgCi0gICAgNzUsIDY5LCAxOTYsIDY2LCA2NSwgNzYsIDc2LCA3OSwgNzksIDc4LCAxMjgsIDY2LCA2NSwgNzYsIDY1LCA3MSwgMTI4LCAKLSAgICA2NiwgNjUsIDc2LCAxMjgsIDY2LCA2NSwgMjA0LCA2NiwgNjUsIDczLCA4MiwgNzUsIDY1LCA3OCwgMTI4LCA2NiwgNjUsIAotICAgIDczLCA3NywgNjUsIDczLCAxMjgsIDY2LCA2NSwgNzIsIDg0LCAxMjgsIDY2LCA2NSwgNzIsIDczLCA4MiwgNzEsIDc5LCA3NywgCi0gICAgODUsIDc1LCA3MiwgNjUsIDEyOCwgNjYsIDY1LCA3MiwgNjUsIDgyLCA1MCwgMTI4LCA2NiwgNjUsIDcxLCA3MSwgNjUsIDcxLCAKLSAgICAxOTcsIDY2LCA2NSwgNzEsIDY1LCAxMjgsIDY2LCA2NSwgNzEsIDUxLCAxMjgsIDY2LCA2NSwgMTk5LCA2NiwgNjUsIDY4LCAKLSAgICA3MSwgNjksIDgyLCAxMjgsIDY2LCA2NSwgNjgsIDcxLCA2OSwgMTI4LCA2NiwgNjUsIDY4LCAxMjgsIDY2LCA2NSwgNjcsIAotICAgIDg0LCA4MiwgNzMsIDY1LCAyMDYsIDY2LCA2NSwgNjcsIDc1LCA4MywgODAsIDY1LCA2NywgNjksIDEyOCwgNjYsIDY1LCA2NywgCi0gICAgNzUsIDgzLCA3NiwgNjUsIDgzLCA3MiwgMTI4LCA2NiwgNjUsIDY3LCA3NSwgODMsIDc2LCA2NSwgODMsIDIwMCwgNjYsIDY1LCAKLSAgICA2NywgNzUsIDcyLCA2NSwgNzgsIDE5NiwgNjYsIDY1LCA2NywgNzUsIDQ1LCA4NCwgNzMsIDc2LCA4NCwgNjksIDE5NiwgNjYsIAotICAgIDY1LCA2NywgNzUsIDEyOCwgNjYsIDY1LCA2NywgMjAzLCA2NiwgNjUsIDY2LCA4OSwgMTI4LCA2NiwgNjUsIDY2LCAyMTcsIAotICAgIDY2LCA2NSwgNjUsIDgyLCA2OSwgODIsIDg1LCAxMjgsIDY2LCA1MSwgNDgsIDUzLCAxMjgsIDY2LCA1MCwgNTMsIDU3LCAKLSAgICAxMjgsIDY2LCA1MCwgNTMsIDU2LCAxMjgsIDY2LCA1MCwgNTMsIDU1LCAxMjgsIDY2LCA1MCwgNTMsIDU0LCAxMjgsIDY2LCAKLSAgICA1MCwgNTMsIDUzLCAxMjgsIDY2LCA1MCwgNTMsIDE4MCwgNjYsIDUwLCA1MywgNTEsIDEyOCwgNjYsIDUwLCA1MywgNTAsIAotICAgIDEyOCwgNjYsIDUwLCA1MywgNDksIDEyOCwgNjYsIDUwLCA1MywgNDgsIDEyOCwgNjYsIDUwLCA1MiwgNTcsIDEyOCwgNjYsIAotICAgIDUwLCA1MiwgNTYsIDEyOCwgNjYsIDUwLCA1MiwgMTgzLCA2NiwgNTAsIDUyLCA1NCwgMTI4LCA2NiwgNTAsIDUyLCA1MywgCi0gICAgMTI4LCA2NiwgNTAsIDUyLCAxNzksIDY2LCA1MCwgNTIsIDE3OCwgNjYsIDUwLCA1MiwgMTc3LCA2NiwgNTAsIDUyLCAxNzYsIAotICAgIDY2LCA1MCwgNTEsIDU0LCAxMjgsIDY2LCA1MCwgNTEsIDUyLCAxMjgsIDY2LCA1MCwgNTEsIDE3OSwgNjYsIDUwLCA1MSwgCi0gICAgNTAsIDEyOCwgNjYsIDUwLCA1MSwgMTc3LCA2NiwgNTAsIDUxLCAxNzYsIDY2LCA1MCwgNTAsIDU3LCAxMjgsIDY2LCA1MCwgCi0gICAgNTAsIDU2LCAxMjgsIDY2LCA1MCwgNTAsIDU1LCAxMjgsIDY2LCA1MCwgNTAsIDU0LCAxMjgsIDY2LCA1MCwgNTAsIDE4MSwgCi0gICAgNjYsIDUwLCA1MCwgNTAsIDEyOCwgNjYsIDUwLCA1MCwgNDksIDEyOCwgNjYsIDUwLCA1MCwgMTc2LCA2NiwgNTAsIDQ5LCAKLSAgICA1NywgMTI4LCA2NiwgNTAsIDQ5LCA1NiwgMTI4LCA2NiwgNTAsIDQ5LCA1NSwgMTI4LCA2NiwgNTAsIDQ5LCA1NCwgMTI4LCAKLSAgICA2NiwgNTAsIDQ5LCA1MywgMTI4LCA2NiwgNTAsIDQ5LCA1MiwgMTI4LCA2NiwgNTAsIDQ5LCA1MSwgMTI4LCA2NiwgNTAsIAotICAgIDQ5LCA1MCwgMTI4LCA2NiwgNTAsIDQ5LCA0OSwgMTI4LCA2NiwgNTAsIDQ5LCA0OCwgMTI4LCA2NiwgNTAsIDQ4LCA1NywgCi0gICAgMTI4LCA2NiwgNTAsIDQ4LCA1NiwgMTI4LCA2NiwgNTAsIDQ4LCA1NSwgMTI4LCA2NiwgNTAsIDQ4LCA1NCwgMTI4LCA2NiwgCi0gICAgNTAsIDQ4LCA1MywgMTI4LCA2NiwgNTAsIDQ4LCA1MiwgMTI4LCA2NiwgNTAsIDQ4LCA1MSwgMTI4LCA2NiwgNTAsIDQ4LCAKLSAgICA1MCwgMTI4LCA2NiwgNTAsIDQ4LCA0OSwgMTI4LCA2NiwgNTAsIDQ4LCA0OCwgMTI4LCA2NiwgNDksIDU3LCAxNzcsIDY2LCAKLSAgICA0OSwgNTcsIDQ4LCAxMjgsIDY2LCA0OSwgNTYsIDU3LCAxMjgsIDY2LCA0OSwgNTYsIDUzLCAxMjgsIDY2LCA0OSwgNTYsIAotICAgIDUyLCAxMjgsIDY2LCA0OSwgNTYsIDUxLCAxMjgsIDY2LCA0OSwgNTYsIDUwLCAxMjgsIDY2LCA0OSwgNTYsIDQ5LCAxMjgsIAotICAgIDY2LCA0OSwgNTYsIDQ4LCAxMjgsIDY2LCA0OSwgNTUsIDU3LCAxMjgsIDY2LCA0OSwgNTUsIDU2LCAxMjgsIDY2LCA0OSwgCi0gICAgNTUsIDU1LCAxMjgsIDY2LCA0OSwgNTUsIDE4MiwgNjYsIDQ5LCA1NSwgNTIsIDEyOCwgNjYsIDQ5LCA1NSwgMTc5LCA2NiwgCi0gICAgNDksIDU1LCA1MCwgMTI4LCA2NiwgNDksIDU1LCA0OSwgMTI4LCA2NiwgNDksIDU1LCA0OCwgMTI4LCA2NiwgNDksIDU0LCAKLSAgICA1NywgMTI4LCA2NiwgNDksIDU0LCA1NiwgMTI4LCA2NiwgNDksIDU0LCA1NSwgMTI4LCA2NiwgNDksIDU0LCA1NCwgMTI4LCAKLSAgICA2NiwgNDksIDU0LCA1MywgMTI4LCA2NiwgNDksIDU0LCA1MiwgMTI4LCA2NiwgNDksIDU0LCAxNzksIDY2LCA0OSwgNTQsIAotICAgIDE3OCwgNjYsIDQ5LCA1NCwgNDksIDEyOCwgNjYsIDQ5LCA1NCwgNDgsIDEyOCwgNjYsIDQ5LCA1MywgMTg1LCA2NiwgNDksIAotICAgIDUzLCA1NiwgMTI4LCA2NiwgNDksIDUzLCA1NSwgMTI4LCA2NiwgNDksIDUzLCAxODIsIDY2LCA0OSwgNTMsIDUzLCAxMjgsIAotICAgIDY2LCA0OSwgNTMsIDUyLCAxMjgsIDY2LCA0OSwgNTMsIDUxLCAxMjgsIDY2LCA0OSwgNTMsIDUwLCAxMjgsIDY2LCA0OSwgCi0gICAgNTMsIDE3NywgNjYsIDQ5LCA1MywgNDgsIDEyOCwgNjYsIDQ5LCA1MiwgNTQsIDEyOCwgNjYsIDQ5LCA1MiwgMTgxLCA2NiwgCi0gICAgNDksIDUyLCA1MCwgMTI4LCA2NiwgNDksIDUyLCAxNzcsIDY2LCA0OSwgNTIsIDE3NiwgNjYsIDQ5LCA1MSwgMTgxLCA2NiwgCi0gICAgNDksIDUxLCAxNzksIDY2LCA0OSwgNTEsIDUwLCAxMjgsIDY2LCA0OSwgNTEsIDE3NywgNjYsIDQ5LCA1MSwgMTc2LCA2NiwgCi0gICAgNDksIDUwLCAxODQsIDY2LCA0OSwgNTAsIDE4MywgNjYsIDQ5LCA1MCwgMTgxLCA2NiwgNDksIDUwLCAxNzksIDY2LCA0OSwgCi0gICAgNTAsIDE3OCwgNjYsIDQ5LCA1MCwgMTc3LCA2NiwgNDksIDUwLCAxNzYsIDY2LCA0OSwgNDgsIDU3LCAyMDUsIDY2LCA0OSwgCi0gICAgNDgsIDU3LCAxOTgsIDY2LCA0OSwgNDgsIDU2LCAyMDUsIDY2LCA0OSwgNDgsIDU2LCAxOTgsIDY2LCA0OSwgNDgsIDU1LCAKLSAgICAyMDUsIDY2LCA0OSwgNDgsIDU1LCAxOTgsIDY2LCA0OSwgNDgsIDU0LCAyMDUsIDY2LCA0OSwgNDgsIDU0LCAxOTgsIDY2LCAKLSAgICA0OSwgNDgsIDUzLCAyMDUsIDY2LCA0OSwgNDgsIDUzLCAxOTgsIDY2LCA0OSwgNDgsIDE4MSwgNjYsIDQ5LCA0OCwgMTgwLCAKLSAgICA2NiwgNDksIDQ4LCAxNzgsIDY2LCA0OSwgNDgsIDE3NiwgNjYsIDQ4LCA1NywgMTc3LCA2NiwgNDgsIDU3LCAxNzYsIDY2LCAKLSAgICA0OCwgNTYsIDU3LCAxMjgsIDY2LCA0OCwgNTYsIDE4MywgNjYsIDQ4LCA1NiwgNTQsIDEyOCwgNjYsIDQ4LCA1NiwgMTgxLCAKLSAgICA2NiwgNDgsIDU2LCA1MSwgMTI4LCA2NiwgNDgsIDU2LCA1MCwgMTI4LCA2NiwgNDgsIDU2LCAxNzcsIDY2LCA0OCwgNTYsIAotICAgIDE3NiwgNjYsIDQ4LCA1NSwgNTcsIDEyOCwgNjYsIDQ4LCA1NSwgMTg0LCA2NiwgNDgsIDU1LCAxODMsIDY2LCA0OCwgNTUsIAotICAgIDE4MiwgNjYsIDQ4LCA1NSwgMTgxLCA2NiwgNDgsIDU1LCAxODAsIDY2LCA0OCwgNTUsIDE3OSwgNjYsIDQ4LCA1NSwgMTc4LCAKLSAgICA2NiwgNDgsIDU1LCAxNzcsIDY2LCA0OCwgNTUsIDE3NiwgNjYsIDQ4LCA1NCwgMTg1LCA2NiwgNDgsIDU0LCAxODQsIDY2LCAKLSAgICA0OCwgNTQsIDE4MywgNjYsIDQ4LCA1NCwgMTgyLCA2NiwgNDgsIDU0LCAxODEsIDY2LCA0OCwgNTQsIDUyLCAxMjgsIDY2LCAKLSAgICA0OCwgNTQsIDUxLCAxMjgsIDY2LCA0OCwgNTQsIDE3OCwgNjYsIDQ4LCA1NCwgMTc3LCA2NiwgNDgsIDU0LCAxNzYsIDY2LCAKLSAgICA0OCwgNTMsIDE4NSwgNjYsIDQ4LCA1MywgMTg0LCA2NiwgNDgsIDUzLCAxODMsIDY2LCA0OCwgNTMsIDU0LCAxMjgsIDY2LCAKLSAgICA0OCwgNTMsIDE4MSwgNjYsIDQ4LCA1MywgMTgwLCA2NiwgNDgsIDUzLCAxNzksIDY2LCA0OCwgNTMsIDE3OCwgNjYsIDQ4LCAKLSAgICA1MywgMTc3LCA2NiwgNDgsIDUzLCAxNzYsIDY2LCA0OCwgNTIsIDU3LCAxMjgsIDY2LCA0OCwgNTIsIDE4NCwgNjYsIDQ4LCAKLSAgICA1MiwgNTUsIDEyOCwgNjYsIDQ4LCA1MiwgMTgyLCA2NiwgNDgsIDUyLCAxODEsIDY2LCA0OCwgNTIsIDE4MCwgNjYsIDQ4LCAKLSAgICA1MiwgMTc5LCA2NiwgNDgsIDUyLCAxNzgsIDY2LCA0OCwgNTIsIDE3NywgNjYsIDQ4LCA1MiwgMTc2LCA2NiwgNDgsIDUxLCAKLSAgICAxODUsIDY2LCA0OCwgNTEsIDE4NCwgNjYsIDQ4LCA1MSwgMTgzLCA2NiwgNDgsIDUxLCAxODIsIDY2LCA0OCwgNTEsIDUyLCAKLSAgICAxMjgsIDY2LCA0OCwgNTEsIDE3OSwgNjYsIDQ4LCA1MSwgMTc4LCA2NiwgNDgsIDUxLCAxNzcsIDY2LCA0OCwgNTEsIDE3NiwgCi0gICAgNjYsIDQ4LCA1MCwgMTg1LCA2NiwgNDgsIDUwLCAxODQsIDY2LCA0OCwgNTAsIDE4MywgNjYsIDQ4LCA1MCwgMTgyLCA2NiwgCi0gICAgNDgsIDUwLCAxODEsIDY2LCA0OCwgNTAsIDE4MCwgNjYsIDQ4LCA1MCwgMTc5LCA2NiwgNDgsIDUwLCA1MCwgMTI4LCA2NiwgCi0gICAgNDgsIDUwLCAxNzcsIDY2LCA0OCwgNTAsIDE3NiwgNjYsIDQ4LCA0OSwgNTcsIDEyOCwgNjYsIDQ4LCA0OSwgNTYsIDEyOCwgCi0gICAgNjYsIDQ4LCA0OSwgMTgzLCA2NiwgNDgsIDQ5LCAxODIsIDY2LCA0OCwgNDksIDE4MSwgNjYsIDQ4LCA0OSwgMTgwLCA2NiwgCi0gICAgNDgsIDQ5LCAxNzksIDY2LCA0OCwgNDksIDE3OCwgNjYsIDQ4LCA0OSwgMTc3LCA2NiwgNDgsIDQ5LCAxNzYsIDY2LCA0OCwgCi0gICAgNDgsIDU3LCAxMjgsIDY2LCA0OCwgNDgsIDE4NSwgNjYsIDQ4LCA0OCwgNTYsIDEyOCwgNjYsIDQ4LCA0OCwgMTg0LCA2NiwgCi0gICAgNDgsIDQ4LCA1NSwgMTI4LCA2NiwgNDgsIDQ4LCAxODMsIDY2LCA0OCwgNDgsIDU0LCAxMjgsIDY2LCA0OCwgNDgsIDE4MiwgCi0gICAgNjYsIDQ4LCA0OCwgNTMsIDY1LCAxMjgsIDY2LCA0OCwgNDgsIDUzLCAxMjgsIDY2LCA0OCwgNDgsIDE4MSwgNjYsIDQ4LCAKLSAgICA0OCwgNTIsIDEyOCwgNjYsIDQ4LCA0OCwgMTgwLCA2NiwgNDgsIDQ4LCA1MSwgMTI4LCA2NiwgNDgsIDQ4LCAxNzksIDY2LCAKLSAgICA0OCwgNDgsIDUwLCAxMjgsIDY2LCA0OCwgNDgsIDE3OCwgNjYsIDQ4LCA0OCwgNDksIDEyOCwgNjYsIDQ4LCA0OCwgMTc3LCAKLSAgICA2NSwgOTAsIDg1LCAxMjgsIDY1LCA4OSwgNjksIDIxMCwgNjUsIDg5LCA2NiwgMTI4LCA2NSwgODksIDY1LCA3MiwgMTI4LCAKLSAgICA2NSwgODgsIDY5LCAxMjgsIDY1LCA4NywgNjksIDEyOCwgNjUsIDg2LCA2OSwgODMsIDg0LCA2NSwgMjA2LCA2NSwgODYsIAotICAgIDY5LCA4MiwgNjUsIDcxLCAxOTcsIDY1LCA4NiwgNjUsIDc1LCA4MiwgNjUsIDcyLCA2NSwgODMsIDY1LCA3OCwgODksIDY1LCAKLSAgICAxMjgsIDY1LCA4NiwgNjUsIDcxLCA4MiwgNjUsIDcyLCA2NSwgMTI4LCA2NSwgODUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgCi0gICAgMTI4LCA2NSwgODUsIDg0LCA4NSwgNzcsIDc4LCAxMjgsIDY1LCA4NSwgODQsIDc5LCA3NywgNzksIDY2LCA3MywgNzYsIDY5LCAKLSAgICAxMjgsIDY1LCA4NSwgODQsIDc5LCA3NywgNjUsIDg0LCA2OSwgMTk2LCA2NSwgODUsIDgzLCA4NCwgODIsIDY1LCAyMDQsIAotICAgIDY1LCA4NSwgODIsIDczLCA4MCwgNzMsIDcxLCA3NywgNjksIDc4LCA4NCwgMTI4LCA2NSwgODUsIDgyLCA2NSwgNzcsIDY1LCAKLSAgICA5MCwgNjgsIDY1LCA2NSwgNzIsIDY1LCAxMjgsIDY1LCA4NSwgODIsIDY1LCA3NywgNjUsIDkwLCA2OCwgNjUsIDY1LCA0NSwgCi0gICAgNTAsIDEyOCwgNjUsIDg1LCA4MiwgNjUsIDc3LCA2NSwgOTAsIDY4LCA2NSwgNjUsIDEyOCwgNjUsIDg1LCA3OCwgNzgsIAotICAgIDEyOCwgNjUsIDg1LCA3MSwgODUsIDgzLCA4NCwgMTI4LCA2NSwgODUsIDcxLCA3NywgNjksIDc4LCA4NCwgNjUsIDg0LCA3MywgCi0gICAgNzksIDIwNiwgNjUsIDg1LCA2OSwgMTI4LCA2NSwgODUsIDY2LCA2OSwgODIsIDcxLCA3MywgNzgsIDY5LCAxMjgsIDY1LCAKLSAgICA4NCwgODQsIDczLCAxOTUsIDY1LCA4NCwgODQsIDcyLCA2NSwgNjcsIDY1LCA3OCwgMTI4LCA2NSwgODQsIDg0LCA2OSwgNzgsIAotICAgIDg0LCA3MywgNzksIDc4LCAxMjgsIDY1LCA4NCwgODQsIDY1LCAyMDMsIDY1LCA4NCwgNzksIDIwNSwgNjUsIDg0LCA3OCwgCi0gICAgNjUsIDIwMCwgNjUsIDg0LCA3NywgNjUsIDY1LCA4NSwgMTI4LCA2NSwgODQsIDczLCA4OSwgNjUsIDEyOCwgNjUsIDg0LCAKLSAgICA3MiwgNzYsIDY5LCA4NCwgNzMsIDE5NSwgNjUsIDg0LCA3MiwgNjUsIDgyLCA4NiwgNjUsIDg2LCA2OSwgNjgsIDczLCAxOTUsIAotICAgIDY1LCA4NCwgNzIsIDY1LCA4MCwgNjUsIDgzLCA2NywgNjUsIDIwNiwgNjUsIDgzLCA5MCwgMTI4LCA2NSwgODMsIDg5LCA4NSwgCi0gICAgODIsIDE5MywgNjUsIDgzLCA4OSwgNzcsIDgwLCA4NCwgNzksIDg0LCA3MywgNjcsIDY1LCA3NiwgNzYsIDIxNywgNjUsIDgzLCAKLSAgICA4NCwgODIsIDc5LCA3OCwgNzksIDc3LCA3MywgNjcsIDY1LCAyMDQsIDY1LCA4MywgODQsIDgyLCA3OSwgNzYsIDc5LCA3MSwgCi0gICAgNzMsIDY3LCA2NSwgMjA0LCA2NSwgODMsIDg0LCA3OSwgNzgsIDczLCA4MywgNzIsIDY5LCAxOTYsIDY1LCA4MywgODQsIDY5LCAKLSAgICA4MiwgNzMsIDgzLCA3NywgMTI4LCA2NSwgODMsIDg0LCA2OSwgODIsIDczLCA4MywgNzUsIDIxMSwgNjUsIDgzLCA4NCwgNjksIAotICAgIDgyLCA3MywgODMsIDc1LCAxMjgsIDY1LCA4MywgODQsIDY5LCA4MiwgNzMsIDgzLCAyMDMsIDY1LCA4MywgODQsIDY5LCA4MiwgCi0gICAgNzMsIDgzLCA2NywgODUsIDgzLCAxMjgsIDY1LCA4MywgODMsIDg5LCA4MiwgNzMsIDY1LCAyMDYsIDY1LCA4MywgODMsIDY5LCAKLSAgICA4MiwgODQsIDczLCA3OSwgNzgsIDEyOCwgNjUsIDgzLCA4MCwgNzMsIDgyLCA2NSwgODQsIDY5LCAxOTYsIDY1LCA4MywgODAsIAotICAgIDY5LCA4MiwgMTI4LCA2NSwgODMsIDczLCA2NSwgNDUsIDY1LCA4NSwgODMsIDg0LCA4MiwgNjUsIDc2LCA3MywgNjUsIDEyOCwgCi0gICAgNjUsIDgzLCA3MiwgNzEsIDY1LCA2NiwgMTI4LCA2NSwgODMsIDcyLCA2OSwgODMsIDEyOCwgNjUsIDgzLCA3MiwgNTcsIAotICAgIDEyOCwgNjUsIDgzLCA3MiwgMTc4LCA2NSwgODMsIDY3LCA2OSwgNzgsIDg0LCAxMjgsIDY1LCA4MywgNjcsIDY5LCA3OCwgCi0gICAgNjgsIDczLCA3OCwgMTk5LCA2NSwgODMsIDY1LCA3NiwgNTAsIDEyOCwgNjUsIDgyLCA4NSwgNzIsIDg1LCA2NSwgMTI4LCAKLSAgICA2NSwgODIsIDg0LCA3MywgODMsIDIxMiwgNjUsIDgyLCA4NCwgNzMsIDY3LCA4NSwgNzYsIDY1LCA4NCwgNjksIDE5NiwgNjUsIAotICAgIDgyLCA4NCwgNjUsIDY2LCAxOTcsIDY1LCA4MiwgODMsIDY5LCA3OSwgODMsIDEyOCwgNjUsIDgyLCA4MywgNjksIDc5LCAKLSAgICAyMTEsIDY1LCA4MiwgODMsIDY5LCA3OCwgNzMsIDY3LCAxMjgsIDY1LCA4MiwgODIsIDc5LCA4NywgODMsIDEyOCwgNjUsIAotICAgIDgyLCA4MiwgNzksIDg3LCAyMTEsIDY1LCA4MiwgODIsIDc5LCA4NywgNzIsIDY5LCA2NSwgNjgsIDEyOCwgNjUsIDgyLCA4MiwgCi0gICAgNzksIDg3LCA3MiwgNjksIDY1LCAxOTYsIDY1LCA4MiwgODIsIDc5LCA4NywgNDUsIDg0LCA2NSwgNzMsIDc2LCAxMjgsIDY1LCAKLSAgICA4MiwgODIsIDczLCA4NiwgNjksIDEyOCwgNjUsIDgyLCA4MiwgNjUsIDg5LCAxMjgsIDY1LCA4MiwgODAsIDY5LCA3MSwgNzEsIAotICAgIDczLCA2NSwgODQsIDIwNywgNjUsIDgyLCA3OSwgODUsIDgzLCA3MywgNzgsIDE5OSwgNjUsIDgyLCA3OSwgODUsIDgyLCAKLSAgICAxOTMsIDY1LCA4MiwgNzksIDg1LCA3OCwgNjgsIDQ1LCA4MCwgODIsIDc5LCA3MCwgNzMsIDc2LCA2OSwgMTI4LCA2NSwgODIsIAotICAgIDc5LCA4NSwgNzgsIDE5NiwgNjUsIDgyLCA3NywgODksIDEyOCwgNjUsIDgyLCA3NywgNzksIDg1LCA4MiwgMTI4LCA2NSwgCi0gICAgODIsIDIwNSwgNjUsIDgyLCA3NiwgNjUsIDg1LCAxOTksIDY1LCA4MiwgNzUsIDg0LCA3MywgNzUsIDIwNywgNjUsIDgyLCAKLSAgICA3NSwgNjUsIDY2LCAxMjgsIDY1LCA4MiwgNzUsIDY1LCA2NSwgNzgsIDg1LCAxMjgsIDY1LCA4MiwgNzMsIDgzLCA4NCwgNjksIAotICAgIDgyLCA2NSwgMTI4LCA2NSwgODIsIDczLCA4MywgODQsIDY5LCA4MiwgMTkzLCA2NSwgODIsIDczLCA2OSwgODMsIDEyOCwgCi0gICAgNjUsIDgyLCA3MSwgNzksIDg0LCA2OSwgODIsIDczLCAxMjgsIDY1LCA4MiwgNzEsIDc5LCA4MywgODksIDc4LCA4NCwgNzIsIAotICAgIDY5LCA4NCwgNzksIDc4LCAxMjgsIDY1LCA4MiwgNzEsIDczLCAxMjgsIDY1LCA4MiwgNjksIDgwLCA2NSwgMTI4LCA2NSwgCi0gICAgODIsIDY4LCA3MiwgNjUsIDg2LCA3MywgODMsIDY1LCA4MiwgNzEsIDY1LCAxMjgsIDY1LCA4MiwgNjcsIDcyLCA2NSwgNzMsIAotICAgIDc5LCA3OCwgMTI4LCA2NSwgODIsIDY3LCA3MiwgNjUsIDczLCA3OSwgMjA2LCA2NSwgODIsIDY3LCA3MiwgNjUsIDczLCAKLSAgICAxOTUsIDY1LCA4MiwgNjcsIDIwMCwgNjUsIDgyLCA2NywgMTI4LCA2NSwgODIsIDE5NSwgNjUsIDgyLCA2NSwgNzcsIDY1LCAKLSAgICA3MywgMTk1LCA2NSwgODIsIDY1LCA2OSwgNjUsIDY5LCAxMjgsIDY1LCA4MiwgNjUsIDY5LCA2NSwgNDUsIDg1LCAxMjgsIAotICAgIDY1LCA4MiwgNjUsIDY5LCA2NSwgNDUsIDczLCAxMjgsIDY1LCA4MiwgNjUsIDY5LCA2NSwgNDUsIDY5LCA3OSwgMTI4LCA2NSwgCi0gICAgODIsIDY1LCA2OSwgNjUsIDQ1LCA2OSwgMTI4LCA2NSwgODIsIDY1LCA2OSwgNjUsIDQ1LCA2NSwgMTI4LCA2NSwgODIsIDY1LCAKLSAgICA2OCwgMTI4LCA2NSwgODIsIDY1LCAxOTYsIDY1LCA4MiwgNjUsIDY2LCA3MywgNjcsIDQ1LCA3MywgNzgsIDY4LCA3MywgCi0gICAgMTk1LCA2NSwgODIsIDY1LCA2NiwgNzMsIDY1LCAyMDYsIDY1LCA4MiwgNDUsIDgyLCA2NSwgNzIsIDc3LCA2NSwgMjA2LCAKLSAgICA2NSwgODIsIDQ1LCA4MiwgNjUsIDcyLCA2OSwgNjksIDc3LCAxMjgsIDY1LCA4MSwgODUsIDY1LCA4MiwgNzMsIDg1LCA4MywgCi0gICAgMTI4LCA2NSwgODEsIDg1LCA2NSwgNzAsIDc5LCA4MiwgODQsIDczLCA4MywgMTI4LCA2NSwgODEsIDg1LCAxOTMsIDY1LCAKLSAgICA4MCwgODUsIDIwNiwgNjUsIDgwLCA4MiwgNzMsIDc2LCAxMjgsIDY1LCA4MCwgODAsIDgyLCA3OSwgODgsIDczLCA3NywgNjUsIAotICAgIDg0LCA2OSwgNzYsIDIxNywgNjUsIDgwLCA4MCwgODIsIDc5LCA4OCwgNzMsIDc3LCA2NSwgODQsIDY5LCAxMjgsIDY1LCA4MCwgCi0gICAgODAsIDgyLCA3OSwgNjUsIDY3LCA3MiwgNjksIDIxMSwgNjUsIDgwLCA4MCwgODIsIDc5LCA2NSwgNjcsIDcyLCAxMjgsIDY1LCAKLSAgICA4MCwgODAsIDc2LCA3MywgNjcsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA2NSwgODAsIDc5LCA4NCwgNzIsIDY5LCA4MywgCi0gICAgMTI4LCA2NSwgODAsIDc5LCA4NCwgNzIsIDY5LCA3NywgNjUsIDEyOCwgNjUsIDgwLCA3OSwgODMsIDg0LCA4MiwgNzksIDgwLCAKLSAgICA3MiwgNjksIDEyOCwgNjUsIDgwLCA3OSwgODMsIDg0LCA4MiwgNzksIDcwLCA3OSwgODMsIDEyOCwgNjUsIDgwLCA3OSwgODMsIAotICAgIDg0LCA4MiwgNzksIDcwLCA3OSwgMjExLCA2NSwgODAsIDc5LCA4MywgODQsIDgyLCA3OSwgNzAsIDc5LCAyMDEsIDY1LCA4MCwgCi0gICAgNzksIDY4LCA2OSwgODgsIDczLCA2NSwgMTI4LCA2NSwgODAsIDc5LCA2OCwgNjksIDgyLCA3NywgMTkzLCA2NSwgODAsIDc2LCAKLSAgICA3OSwgODUsIDc4LCAxMjgsIDY1LCA4MCwgNzYsIDIwMSwgNjUsIDgwLCA3MywgNzgsIDEyOCwgNjUsIDgwLCA2OSwgODMsIAotICAgIDIwNywgNjUsIDgwLCA2NSwgODIsIDg0LCAxMjgsIDY1LCA4MCwgNjUsIDY1LCA4NCwgNzksIDEyOCwgNjUsIDc4LCA4NSwgCi0gICAgODMsIDg2LCA2NSwgODIsIDY1LCA4OSwgNjUsIDEyOCwgNjUsIDc4LCA4NSwgODMsIDg2LCA2NSwgODIsIDY1LCAxMjgsIDY1LCAKLSAgICA3OCwgODUsIDgzLCA4NiwgNjUsIDgyLCAxOTMsIDY1LCA3OCwgODUsIDY4LCA2NSwgODQsIDg0LCA2NSwgMTI4LCA2NSwgNzgsIAotICAgIDg1LCA2OCwgNjUsIDg0LCA4NCwgMTkzLCA2NSwgNzgsIDg0LCA3MywgODIsIDY5LCA4MywgODQsIDgyLCA3MywgNjcsIDg0LCAKLSAgICA3MywgNzksIDc4LCAxMjgsIDY1LCA3OCwgODQsIDczLCA3NywgNzksIDc4LCA4OSwgNDUsIDUwLCAxMjgsIDY1LCA3OCwgODQsIAotICAgIDczLCA3NywgNzksIDc4LCA4OSwgMTI4LCA2NSwgNzgsIDg0LCA3MywgNzcsIDc5LCA3OCwgMjE3LCA2NSwgNzgsIDg0LCA3MywgCi0gICAgNzcsIDc5LCA3OCwgNzMsIDY1LCA4NCwgNjksIDEyOCwgNjUsIDc4LCA4NCwgNzMsIDc1LCA2OSwgNzgsIDc5LCA3NywgNjUsIAotICAgIDEyOCwgNjUsIDc4LCA4NCwgNzMsIDc1LCA2OSwgNzgsIDc5LCA3NSwgODksIDc2LCA3MywgODMsIDc3LCA2NSwgMTI4LCA2NSwgCi0gICAgNzgsIDg0LCA3MywgNzAsIDc5LCA3OCwgNzMsIDY1LCAxMjgsIDY1LCA3OCwgODQsIDczLCA2NywgNzYsIDc5LCA2NywgNzUsIAotICAgIDg3LCA3MywgODMsIDY5LCA0NSwgODIsIDc5LCA4NCwgNjUsIDg0LCA2OSwgMTk2LCA2NSwgNzgsIDg0LCA3MywgNjcsIDc2LCAKLSAgICA3OSwgNjcsIDc1LCA4NywgNzMsIDgzLCAxOTcsIDY1LCA3OCwgODQsIDY5LCA3OCwgNzgsIDY1LCAxMjgsIDY1LCA3OCwgODQsIAotICAgIDY5LCA3OCwgNzgsIDE5MywgNjUsIDc4LCA4NCwgNjUsIDgyLCA3MSwgNzksIDc3LCA4NSwgNzUsIDcyLCA2NSwgMTI4LCA2NSwgCi0gICAgNzgsIDgzLCA4NSwgMjE4LCA2NSwgNzgsIDgzLCA3MiwgNjksIDEyOCwgNjUsIDc4LCA4MCwgNjksIDY1LCAxMjgsIDY1LCAKLSAgICA3OCwgMjA3LCA2NSwgNzgsIDc4LCA4NSwgNzMsIDg0LCAyMTcsIDY1LCA3OCwgNzgsIDc5LCA4NCwgNjUsIDg0LCA3MywgNzksIAotICAgIDIwNiwgNjUsIDc4LCA3OCwgNjUsIDY1LCA4NSwgMTI4LCA2NSwgNzgsIDc1LCA3MiwgMTI4LCA2NSwgNzgsIDcyLCA4NSwgCi0gICAgMTI4LCA2NSwgNzgsIDcxLCA4NSwgNzYsIDY1LCA4MiwgMTI4LCA2NSwgNzgsIDcxLCA4MywgODQsIDgyLCA3OSwgMjA1LCAKLSAgICA2NSwgNzgsIDcxLCA4MiwgMjE3LCA2NSwgNzgsIDcxLCA3NSwgNzIsIDY1LCA3OCwgNzUsIDcyLCA4NSwgMTI4LCA2NSwgNzgsIAotICAgIDcxLCA2OSwgMjEwLCA2NSwgNzgsIDcxLCA2OSwgNzYsIDEyOCwgNjUsIDc4LCA3MSwgNjksIDY4LCAxMjgsIDY1LCA3OCwgCi0gICAgNjgsIDY1LCA4MCwgMTI4LCA2NSwgNzgsIDY3LCA3OSwgODIsIDY1LCAxMjgsIDY1LCA3OCwgNjcsIDcyLCA3OSwgODIsIAotICAgIDEyOCwgNjUsIDc4LCA2NSwgODQsIDgyLCA3MywgNjcsIDcyLCA3MywgODMsIDc3LCA2NSwgMTI4LCA2NSwgNzgsIDY1LCA4MCwgCi0gICAgMTI4LCA2NSwgNzcsIDgwLCA4MywgMTI4LCA2NSwgNzcsIDgwLCA2OSwgODIsIDgzLCA2NSwgNzgsIDY4LCAxMjgsIDY1LCAKLSAgICA3NywgNzksIDg1LCA3OCwgMjEyLCA2NSwgNzcsIDY5LCA4MiwgNzMsIDY3LCA2NSwgODMsIDEyOCwgNjUsIDc3LCA2OSwgODIsIAotICAgIDczLCA2NywgNjUsIDIwNiwgNjUsIDc3LCA2NiwgODUsIDc2LCA2NSwgNzgsIDY3LCA2OSwgMTI4LCA2NSwgNzcsIDY2LCAKLSAgICAxOTMsIDY1LCA3NywgNjUsIDgyLCAxMjgsIDY1LCA3NywgNjUsIDIxMCwgNjUsIDc3LCA2NSwgNzYsIDcxLCA2NSwgNzcsIAotICAgIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDY1LCA3NywgNjUsIDc2LCA3MSwgNjUsIDc3LCAxMjgsIDY1LCA3NiwgODYsIDY5LCA3OSwgCi0gICAgNzYsIDY1LCAyMTAsIDY1LCA3NiwgODUsIDc3LCAxMjgsIDY1LCA3NiwgODQsIDY5LCA4MiwgNzgsIDY1LCA4NCwgNzMsIDg2LCAKLSAgICAxOTcsIDY1LCA3NiwgODQsIDY5LCA4MiwgNzgsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDY1LCA3NiwgODQsIDY5LCA4MiwgNzgsIAotICAgIDY1LCA4NCwgMTk3LCA2NSwgNzYsIDg0LCA2NSwgMTI4LCA2NSwgNzYsIDgwLCA3MiwgNjUsIDEyOCwgNjUsIDc2LCA4MCwgCi0gICAgNzIsIDE5MywgNjUsIDc2LCA4MCwgNjUsIDgwLCA4MiwgNjUsIDc4LCA2NSwgMTI4LCA2NSwgNzYsIDgwLCA2NSwgODAsIDgyLCAKLSAgICA2NSwgNjUsIDc4LCAxOTMsIDY1LCA3NiwgODAsIDY1LCAxMjgsIDY1LCA3NiwgNzcsIDc5LCA4MywgMjEyLCA2NSwgNzYsIAotICAgIDc2LCA3OSwgMTI4LCA2NSwgNzYsIDc2LCA3MywgNjUsIDc4LCA2NywgNjksIDEyOCwgNjUsIDc2LCA3NiwgMjAxLCA2NSwgCi0gICAgNzYsIDc2LCA2NSwgMjAwLCA2NSwgNzYsIDc1LCA2NSwgNzYsIDczLCA0NSwgNTAsIDEyOCwgNjUsIDc2LCA3NSwgNjUsIDc2LCAKLSAgICA3MywgMTI4LCA2NSwgNzYsIDczLCA3MSwgNzgsIDY5LCAxOTYsIDY1LCA3NiwgNzMsIDcwLCA4NSwgMTI4LCA2NSwgNzYsIAotICAgIDczLCA2OSwgNzgsIDEyOCwgNjUsIDc2LCA3MywgNjksIDIwNiwgNjUsIDc2LCA3MSwgNzMsIDIxOCwgNjUsIDc2LCA3MCwgCi0gICAgNjUsIDEyOCwgNjUsIDc2LCA2OSwgODUsIDIxMiwgNjUsIDc2LCA2OSwgODAsIDcyLCAxMjgsIDY1LCA3NiwgNjksIDc3LCAKLSAgICA2NiwgNzMsIDY3LCAxMjgsIDY1LCA3NiwgNjksIDcwLCAxMjgsIDY1LCA3NiwgNjUsIDg5LCA3MiwgNjksIDEyOCwgNjUsIAotICAgIDc2LCA2NSwgODksIDcyLCAxOTcsIDY1LCA3NiwgNjUsIDgyLCAyMDUsIDY1LCA3NiwgNjUsIDgwLCA3MiwgMTI4LCA2NSwgCi0gICAgNzYsIDQ1LCA3NiwgNjUsIDc1LCA4NSwgNzgsIDY1LCAxMjgsIDY1LCA3NSwgODQsIDczLCA2OSwgODMsIDY5LCA3NiwgODMsIAotICAgIDc1LCA2NSwgNjYsIDEyOCwgNjUsIDc1LCA4MywgNjUsIDEyOCwgNjUsIDc1LCA3MiwgNzcsIDczLCA3NywgNzMsIDE5NSwgCi0gICAgNjUsIDc1LCA2NiwgNjUsIDIxMCwgNjUsIDc1LCA2NSwgODIsIDY1LCAxMjgsIDY1LCA3NSwgNjUsIDgyLCAxOTMsIDY1LCAKLSAgICA3MywgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDY1LCA3MywgODYsIDczLCA3NiwgNzMsIDIwMywgNjUsIDczLCA4NCwgNzksIAotICAgIDIwNiwgNjUsIDczLCA4MiwgODAsIDc2LCA2NSwgNzgsIDY5LCAxMjgsIDY1LCA3MywgNzgsIDc4LCAxMjgsIDY1LCA3MywgCi0gICAgNzYsIDc3LCAxMjgsIDY1LCA3MywgNzUsIDY1LCA4MiwgNjUsIDEyOCwgNjUsIDczLCA3MiwgODYsIDg1LCA4MywgMTI4LCAKLSAgICA2NSwgNzIsIDgzLCA2OCwgNjUsIDEyOCwgNjUsIDcyLCA4MywgNjUsIDEyOCwgNjUsIDcyLCA2NSwgNzEsIDcxLCA2NSwgCi0gICAgMjEwLCA2NSwgNzIsIDY1LCA2OCwgMTI4LCA2NSwgNzEsIDg1LCA3OCwgNzEsIDEyOCwgNjUsIDcxLCA3OSwgNzEsIDIwMSwgCi0gICAgNjUsIDcxLCA3MSwgODIsIDY1LCA4NiwgNjUsIDg0LCA3MywgNzksIDc4LCAxMjgsIDY1LCA3MSwgNzEsIDgyLCA2NSwgODYsIAotICAgIDY1LCA4NCwgNjksIDE5NiwgNjUsIDcxLCA2NSwgNzMsIDc4LCAxMjgsIDY1LCA3MCwgODQsIDY5LCAyMTAsIDY1LCA3MCwgCi0gICAgODMsIDY1LCA2NSwgODEsIDEyOCwgNjUsIDcwLCA4MiwgNzMsIDY3LCA2NSwgMjA2LCA2NSwgNzAsIDc5LCA4MiwgNjksIDc3LCAKLSAgICA2OSwgNzgsIDg0LCA3MywgNzksIDc4LCA2OSwgNjgsIDEyOCwgNjUsIDcwLCA3MSwgNzIsIDY1LCA3OCwgMjAxLCA2NSwgNzAsIAotICAgIDcwLCA4MiwgNzMsIDY3LCA2NSwgODQsIDczLCA3OSwgMjA2LCA2NSwgNjksIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA2NSwgCi0gICAgNjksIDg5LCAxMjgsIDY1LCA2OSwgODMsIDY3LCA4NSwgNzYsIDY1LCA4MCwgNzMsIDg1LCA4MywgMTI4LCA2NSwgNjksIDgzLCAKLSAgICA2NywgMTI4LCA2NSwgNjksIDgzLCAxMjgsIDY1LCA2OSwgODIsIDczLCA2NSwgMjA0LCA2NSwgNjksIDgyLCAxMjgsIDY1LCAKLSAgICA2OSwgNzYsIDY1LCA0NSwgODAsIDczLCA3NiwgNzYsIDY1LCAxMjgsIDY1LCA2OSwgNzYsIDEyOCwgNjUsIDY5LCA3NSwgCi0gICAgMTI4LCA2NSwgNjksIDcxLCA2OSwgNjUsIDIwNiwgNjUsIDY5LCA3MSwgMTI4LCA2NSwgNjksIDY5LCA4OSwgNjUsIDc4LCAKLSAgICA3OCwgNjUsIDEyOCwgNjUsIDY5LCA2OSwgMTI4LCA2NSwgNjksIDY4LCA2NSwgNDUsIDgwLCA3MywgNzYsIDc2LCA2NSwgCi0gICAgMTI4LCA2NSwgNjksIDY4LCAxMjgsIDY1LCA2OSwgNjYsIDEyOCwgNjUsIDY4LCA4NiwgNjUsIDc4LCA4NCwgNjUsIDcxLCAKLSAgICA2OSwgMTI4LCA2NSwgNjgsIDg2LCA2NSwgNzgsIDY3LCA2OSwgMTI4LCA2NSwgNjgsIDY5LCA3MSwgMTI4LCA2NSwgNjgsIAotICAgIDY5LCAxOTksIDY1LCA2OCwgNjgsIDgyLCA2OSwgODMsIDgzLCA2OSwgMTk2LCA2NSwgNjgsIDY4LCA4MiwgNjksIDgzLCAKLSAgICAyMTEsIDY1LCA2OCwgNjgsIDY1LCA3NSwgMTI4LCA2NSwgNjgsIDY1LCAyMDMsIDY1LCA2NywgODUsIDg0LCA2OSwgNDUsIAotICAgIDc3LCA2NSwgNjcsIDgyLCA3OSwgNzgsIDEyOCwgNjUsIDY3LCA4NSwgODQsIDY5LCA0NSwgNzEsIDgyLCA2NSwgODYsIDY5LCAKLSAgICA0NSwgNjUsIDY3LCA4NSwgODQsIDY5LCAxMjgsIDY1LCA2NywgODUsIDg0LCAxOTcsIDY1LCA2NywgODQsIDg1LCA2NSwgNzYsIAotICAgIDc2LCAyMTcsIDY1LCA2NywgODQsIDczLCA4NiwgNjUsIDg0LCAxOTcsIDY1LCA2NywgODIsIDc5LCA4MCwgNzIsIDc5LCA3OCwgCi0gICAgNzMsIDE5NSwgNjUsIDY3LCA3NSwgNzgsIDc5LCA4NywgNzYsIDY5LCA2OCwgNzEsIDY5LCAxMjgsIDY1LCA2NywgNjcsIDg1LCAKLSAgICA3NywgODUsIDc2LCA2NSwgODQsIDczLCA3OSwgNzgsIDEyOCwgNjUsIDY3LCA2NywgNzksIDg1LCA3OCwgMjEyLCA2NSwgNjcsIAotICAgIDY3LCA2OSwgODAsIDg0LCAxMjgsIDY1LCA2NywgNjcsIDY5LCA3OCwgODQsIDQ1LCA4MywgODQsIDY1LCA2NywgNjcsIDY1LCAKLSAgICA4NCwgNzksIDEyOCwgNjUsIDY3LCA2NywgNjksIDc4LCA4NCwgMTI4LCA2NSwgNjcsIDY3LCA2OSwgNzgsIDIxMiwgNjUsIAotICAgIDY3LCA2NSwgNjgsIDY5LCA3NywgMjE3LCA2NSwgNjYsIDg5LCA4MywgNzcsIDY1LCAyMDQsIDY1LCA2NiwgODUsIDc4LCA2OCwgCi0gICAgNjUsIDc4LCA2NywgNjksIDEyOCwgNjUsIDY2LCA3NSwgNzIsIDY1LCA4MywgNzMsIDY1LCAyMDYsIDY1LCA2NiwgNjYsIDgyLCAKLSAgICA2OSwgODYsIDczLCA2NSwgODQsIDczLCA3OSwgMjA2LCA2NSwgNjYsIDY1LCA3MCwgNzMsIDc2LCA3MywgMTI4LCA2NSwgNjYsIAotICAgIDE3OCwgNjUsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNjUsIDY1LCA4OSwgMTI4LCA2NSwgNjUsIDg3LCAxMjgsIAotICAgIDY1LCA2NSwgNzksIDEyOCwgNjUsIDY1LCA3NCwgMTI4LCA2NSwgNjUsIDY2LCA2NSwgNjUsIDcwLCA3MywgNzYsIDczLCAKLSAgICAxMjgsIDY1LCA2NSwgNDgsIDUxLCA1MCwgMTI4LCA2NSwgNjUsIDQ4LCA1MSwgNDksIDEyOCwgNjUsIDY1LCA0OCwgNTEsIAotICAgIDQ4LCAxMjgsIDY1LCA2NSwgNDgsIDUwLCA1NywgMTI4LCA2NSwgNjUsIDQ4LCA1MCwgNTYsIDEyOCwgNjUsIDY1LCA0OCwgCi0gICAgNTAsIDU1LCAxMjgsIDY1LCA2NSwgNDgsIDUwLCA1NCwgMTI4LCA2NSwgNjUsIDQ4LCA1MCwgNTMsIDEyOCwgNjUsIDY1LCAKLSAgICA0OCwgNTAsIDUyLCAxMjgsIDY1LCA2NSwgNDgsIDUwLCA1MSwgMTI4LCA2NSwgNjUsIDQ4LCA1MCwgNTAsIDEyOCwgNjUsIAotICAgIDY1LCA0OCwgNTAsIDQ5LCAxMjgsIDY1LCA2NSwgNDgsIDUwLCA0OCwgMTI4LCA2NSwgNjUsIDQ4LCA0OSwgNTcsIDEyOCwgCi0gICAgNjUsIDY1LCA0OCwgNDksIDU2LCAxMjgsIDY1LCA2NSwgNDgsIDQ5LCA1NSwgMTI4LCA2NSwgNjUsIDQ4LCA0OSwgNTQsIAotICAgIDEyOCwgNjUsIDY1LCA0OCwgNDksIDUzLCAxMjgsIDY1LCA2NSwgNDgsIDQ5LCA1MiwgMTI4LCA2NSwgNjUsIDQ4LCA0OSwgCi0gICAgNTEsIDEyOCwgNjUsIDY1LCA0OCwgNDksIDUwLCAxMjgsIDY1LCA2NSwgNDgsIDQ5LCA0OSwgMTI4LCA2NSwgNjUsIDQ4LCAKLSAgICA0OSwgNDgsIDEyOCwgNjUsIDY1LCA0OCwgNDgsIDU3LCAxMjgsIDY1LCA2NSwgNDgsIDQ4LCA1NiwgMTI4LCA2NSwgNjUsIAotICAgIDQ4LCA0OCwgNTUsIDY2LCAxMjgsIDY1LCA2NSwgNDgsIDQ4LCA1NSwgNjUsIDEyOCwgNjUsIDY1LCA0OCwgNDgsIDU1LCAKLSAgICAxMjgsIDY1LCA2NSwgNDgsIDQ4LCA1NCwgMTI4LCA2NSwgNjUsIDQ4LCA0OCwgNTMsIDEyOCwgNjUsIDY1LCA0OCwgNDgsIAotICAgIDUyLCAxMjgsIDY1LCA2NSwgNDgsIDQ4LCA1MSwgMTI4LCA2NSwgNjUsIDQ4LCA0OCwgNTAsIDEyOCwgNjUsIDY1LCA0OCwgCi0gICAgNDgsIDQ5LCAxMjgsIDY1LCA0OCwgNTUsIDQ4LCAxMjgsIDY1LCA0OCwgNTQsIDU3LCAxMjgsIDY1LCA0OCwgNTQsIDU2LCAKLSAgICAxMjgsIDY1LCA0OCwgNTQsIDU1LCAxMjgsIDY1LCA0OCwgNTQsIDU0LCAxMjgsIDY1LCA0OCwgNTQsIDUzLCAxMjgsIDY1LCAKLSAgICA0OCwgNTQsIDUyLCAxMjgsIDY1LCA0OCwgNTQsIDUxLCAxMjgsIDY1LCA0OCwgNTQsIDUwLCAxMjgsIDY1LCA0OCwgNTQsIAotICAgIDQ5LCAxMjgsIDY1LCA0OCwgNTQsIDQ4LCAxMjgsIDY1LCA0OCwgNTMsIDU3LCAxMjgsIDY1LCA0OCwgNTMsIDU2LCAxMjgsIAotICAgIDY1LCA0OCwgNTMsIDU1LCAxMjgsIDY1LCA0OCwgNTMsIDU0LCAxMjgsIDY1LCA0OCwgNTMsIDUzLCAxMjgsIDY1LCA0OCwgCi0gICAgNTMsIDUyLCAxMjgsIDY1LCA0OCwgNTMsIDUxLCAxMjgsIDY1LCA0OCwgNTMsIDUwLCAxMjgsIDY1LCA0OCwgNTMsIDQ5LCAKLSAgICAxMjgsIDY1LCA0OCwgNTMsIDQ4LCAxMjgsIDY1LCA0OCwgNTIsIDU3LCAxMjgsIDY1LCA0OCwgNTIsIDU2LCAxMjgsIDY1LCAKLSAgICA0OCwgNTIsIDU1LCAxMjgsIDY1LCA0OCwgNTIsIDU0LCAxMjgsIDY1LCA0OCwgNTIsIDUzLCA2NSwgMTI4LCA2NSwgNDgsIAotICAgIDUyLCA1MywgMTI4LCA2NSwgNDgsIDUyLCA1MiwgMTI4LCA2NSwgNDgsIDUyLCA1MSwgNjUsIDEyOCwgNjUsIDQ4LCA1MiwgCi0gICAgNTEsIDEyOCwgNjUsIDQ4LCA1MiwgNTAsIDY1LCAxMjgsIDY1LCA0OCwgNTIsIDUwLCAxMjgsIDY1LCA0OCwgNTIsIDQ5LCAKLSAgICAxMjgsIDY1LCA0OCwgNTIsIDQ4LCA2NSwgMTI4LCA2NSwgNDgsIDUyLCA0OCwgMTI4LCA2NSwgNDgsIDUxLCA1NywgMTI4LCAKLSAgICA2NSwgNDgsIDUxLCA1NiwgMTI4LCA2NSwgNDgsIDUxLCA1NSwgMTI4LCA2NSwgNDgsIDUxLCA1NCwgMTI4LCA2NSwgNDgsIAotICAgIDUxLCA1MywgMTI4LCA2NSwgNDgsIDUxLCA1MiwgMTI4LCA2NSwgNDgsIDUxLCA1MSwgMTI4LCA2NSwgNDgsIDUxLCA1MCwgCi0gICAgNjUsIDEyOCwgNjUsIDQ4LCA0OSwgNTUsIDY1LCAxMjgsIDY1LCA0OCwgNDksIDUyLCA2NSwgMTI4LCA2NSwgNDgsIDQ4LCAKLSAgICA1NCwgNjYsIDEyOCwgNjUsIDQ4LCA0OCwgNTQsIDY1LCAxMjgsIDY1LCA0OCwgNDgsIDUzLCA2NSwgMTI4LCA2NSwgNDUsIAotICAgIDY5LCA4NSwgMTI4LCA0NSwgODUsIDIwNSwgNDUsIDgwLCA3MiwgODIsIDg1LCAxMjgsIDQ1LCA3NSwgNzIsIDg5LCA4NSwgCi0gICAgMTk2LCA0NSwgNzUsIDcyLCA4OSwgNzMsIDc2LCAxMjgsIDQ1LCA2OCwgOTAsIDg1LCAxOTYsIDQ1LCA2NywgNzIsIDY1LCAKLSAgICAyMTAsIDQ1LCA2NywgNzIsIDY1LCA3NiwgMTI4LCAKKyAgICA2NywgNjcsIDcyLCAxMjgsIDY3LCA2NywgNjksIDY5LCAxMjgsIDY3LCA2NywgNjksIDEyOCwgNjcsIDY3LCA2NSwgNjUsIAorICAgIDEyOCwgNjcsIDY3LCA2NSwgMTI4LCA2NywgNjUsIDg5LCA3OCwgMTI4LCA2NywgNjUsIDg5LCA2NSwgNzgsIDc4LCA2NSwgCisgICAgMTI4LCA2NywgNjUsIDg4LCAxMjgsIDY3LCA2NSwgODYsIDY5LCAxMjgsIDY3LCA2NSwgODUsIDg0LCA3MywgNzksIDIwNiwgCisgICAgNjcsIDY1LCA4NSwgNzYsIDY4LCA4MiwgNzksIDc4LCAxMjgsIDY3LCA2NSwgODUsIDY4LCA2NSwgMTI4LCA2NywgNjUsIDg1LCAKKyAgICAxMjgsIDY3LCA2NSwgODQsIDY1LCA4NywgNjUsIDEyOCwgNjcsIDY1LCA4NCwgMTI4LCA2NywgNjUsIDIxMiwgNjcsIDY1LCAKKyAgICA4MywgODQsIDc2LCA2OSwgMTI4LCA2NywgNjUsIDgyLCA4OSwgODMsIDg0LCA3MywgNjUsIDIwNiwgNjcsIDY1LCA4MiwgODQsIAorICAgIDEyOCwgNjcsIDY1LCA4MiwgMjExLCA2NywgNjUsIDgyLCA4MiwgNzMsIDY1LCA3MSwgMTk3LCA2NywgNjUsIDgyLCA4MCwgCisgICAgNjksIDc4LCA4NCwgODIsIDIxNywgNjcsIDY1LCA4MiwgMjA4LCA2NywgNjUsIDgyLCA3OSwgODUsIDgzLCA2OSwgMjA0LCAKKyAgICA2NywgNjUsIDgyLCA3OSwgNzgsIDEyOCwgNjcsIDY1LCA4MiwgNzksIDIwNiwgNjcsIDY1LCA4MiwgNzMsIDIwMywgNjcsIAorICAgIDY1LCA4MiwgNzMsIDY1LCAyMDYsIDY3LCA2NSwgODIsIDY5LCA4NCwgMTI4LCA2NywgNjUsIDgyLCA2OSwgMjEyLCA2NywgCisgICAgNjUsIDgyLCAxOTcsIDY3LCA2NSwgODIsIDY4LCA4MywgMTI4LCA2NywgNjUsIDgyLCA2OCwgMTI4LCA2NywgNjUsIDgyLCAKKyAgICAxOTYsIDY3LCA2NSwgODIsIDEyOCwgNjcsIDY1LCAyMTAsIDY3LCA2NSwgODAsIDg1LCAyMTIsIDY3LCA2NSwgODAsIDg0LCAKKyAgICA3MywgODYsIDY5LCAxMjgsIDY3LCA2NSwgODAsIDgyLCA3MywgNjcsIDc5LCA4MiwgNzgsIDEyOCwgNjcsIDY1LCA4MCwgNzksIAorICAgIDEyOCwgNjcsIDY1LCA4MCwgNzMsIDg0LCA2NSwgNzYsIDEyOCwgNjcsIDY1LCA3OCwgODQsIDczLCA3NiwgNzYsIDY1LCA4NCwgCisgICAgNzMsIDc5LCAyMDYsIDY3LCA2NSwgNzgsIDE5OSwgNjcsIDY1LCA3OCwgNjgsIDg5LCAxMjgsIDY3LCA2NSwgNzgsIDY4LCAKKyAgICA4MiwgNjUsIDY2LCA3MywgNzgsIDY4LCA4NSwgMTI4LCA2NywgNjUsIDc4LCA2OCwgODIsIDY1LCA2NiwgNzMsIDc4LCA2OCwgCisgICAgMjEzLCA2NywgNjUsIDc4LCA2OCwgODIsIDY1LCAxMjgsIDY3LCA2NSwgNzgsIDY4LCA4MiwgMTkzLCA2NywgNjUsIDc4LCAKKyAgICA2NywgNjksIDgyLCAxMjgsIDY3LCA2NSwgNzgsIDY3LCA2OSwgNzYsIDc2LCA2NSwgODQsIDczLCA3OSwgMjA2LCA2NywgNjUsIAorICAgIDc4LCA2NywgNjksIDc2LCAxMjgsIDY3LCA2NSwgNzgsIDY3LCA2OSwgMjA0LCA2NywgNjUsIDc4LCAxMjgsIDY3LCA2NSwgCisgICAgNzcsIDc4LCA4NSwgMTk1LCA2NywgNjUsIDc3LCA2OSwgODIsIDY1LCAxMjgsIDY3LCA2NSwgNzcsIDY5LCA3NiwgMTI4LCAKKyAgICA2NywgNjUsIDc2LCA4OSwgNjUsIDEyOCwgNjcsIDY1LCA3NiwgODksIDE5MywgNjcsIDY1LCA3NiwgODgsIDEyOCwgNjcsIAorICAgIDY1LCA3NiwgNzYsIDEyOCwgNjcsIDY1LCA3NiwgNjksIDc4LCA2OCwgNjUsIDgyLCAxMjgsIDY3LCA2NSwgNzYsIDY3LCAKKyAgICAxMjgsIDY3LCA2NSwgNzUsIDgyLCA2NSwgMTI4LCA2NywgNjUsIDc1LCAxOTcsIDY3LCA2NSwgNzMsIDEyOCwgNjcsIDY1LCAKKyAgICA3MiwgMTI4LCA2NywgNjUsIDY5LCA4MywgODUsIDgyLCA2NSwgMTI4LCA2NywgNjUsIDY4LCA4NSwgNjcsIDY5LCA4NSwgODMsIAorICAgIDEyOCwgNjcsIDY1LCA2OCwgMTkzLCA2NywgNjUsIDY3LCA4NCwgODUsIDgzLCAxMjgsIDY3LCA2NSwgNjYsIDc2LCA2OSwgCisgICAgODcsIDY1LCA4OSwgMTI4LCA2NywgNjUsIDY2LCA2NiwgNjUsIDcxLCA2OSwgNDUsIDg0LCA4MiwgNjksIDY5LCAxMjgsIDY3LCAKKyAgICA2NSwgNjUsIDc4LCA3MSwgMTI4LCA2NywgNjUsIDY1LCA3MywgMTI4LCA2NywgMTkzLCA2NywgNDgsIDUwLCA1MiwgMTI4LCAKKyAgICA2NywgNDgsIDUwLCA1MSwgMTI4LCA2NywgNDgsIDUwLCA1MCwgMTI4LCA2NywgNDgsIDUwLCA0OSwgMTI4LCA2NywgNDgsIAorICAgIDUwLCA0OCwgMTI4LCA2NywgNDgsIDQ5LCA1NywgMTI4LCA2NywgNDgsIDQ5LCA1NiwgMTI4LCA2NywgNDgsIDQ5LCA1NSwgCisgICAgMTI4LCA2NywgNDgsIDQ5LCA1NCwgMTI4LCA2NywgNDgsIDQ5LCA1MywgMTI4LCA2NywgNDgsIDQ5LCA1MiwgMTI4LCA2NywgCisgICAgNDgsIDQ5LCA1MSwgMTI4LCA2NywgNDgsIDQ5LCA1MCwgMTI4LCA2NywgNDgsIDQ5LCA0OSwgMTI4LCA2NywgNDgsIDQ5LCAKKyAgICA0OCwgNjUsIDEyOCwgNjcsIDQ4LCA0OSwgNDgsIDEyOCwgNjcsIDQ4LCA0OCwgNTcsIDEyOCwgNjcsIDQ4LCA0OCwgNTYsIAorICAgIDEyOCwgNjcsIDQ4LCA0OCwgNTUsIDEyOCwgNjcsIDQ4LCA0OCwgNTQsIDEyOCwgNjcsIDQ4LCA0OCwgNTMsIDEyOCwgNjcsIAorICAgIDQ4LCA0OCwgNTIsIDEyOCwgNjcsIDQ4LCA0OCwgNTEsIDEyOCwgNjcsIDQ4LCA0OCwgNTAsIDY3LCAxMjgsIDY3LCA0OCwgCisgICAgNDgsIDUwLCA2NiwgMTI4LCA2NywgNDgsIDQ4LCA1MCwgNjUsIDEyOCwgNjcsIDQ4LCA0OCwgNTAsIDEyOCwgNjcsIDQ4LCAKKyAgICA0OCwgNDksIDEyOCwgNjcsIDQ1LCA4MywgNzMsIDc3LCA4MCwgNzYsIDczLCA3MCwgNzMsIDY5LCAxOTYsIDY3LCA0NSwgNTEsIAorICAgIDU3LCAxMjgsIDY3LCA0NSwgNDksIDU2LCAxMjgsIDY2LCA5MCwgODUsIDc4LCAxOTksIDY2LCA5MCwgNzIsIDIwMSwgNjYsIAorICAgIDg5LCA4NCwgMTk3LCA2NiwgODksIDY5LCA3NiwgNzksIDgyLCA4NSwgODMsIDgzLCA3MywgNjUsIDc4LCA0NSwgODUsIDc1LCAKKyAgICA4MiwgNjUsIDczLCA3OCwgNzMsIDY1LCAyMDYsIDY2LCA4OCwgNzEsIDEyOCwgNjYsIDg3LCA3MywgMTI4LCA2NiwgODcsIAorICAgIDY5LCA2OSwgMTI4LCA2NiwgODcsIDY5LCAxMjgsIDY2LCA4NywgNjUsIDEyOCwgNjYsIDg1LCA4NSwgNzcsIDczLCA4MywgCisgICAgNzIsIDEyOCwgNjYsIDg1LCA4NCwgODQsIDc5LCA3OCwgMTI4LCA2NiwgODUsIDIxMiwgNjYsIDg1LCA4MywgODQsIDIxMSwgCisgICAgNjYsIDg1LCA4MywgMjEyLCA2NiwgODUsIDgzLCA4MywgODksIDY5LCA4MiwgODUsIDEyOCwgNjYsIDg1LCAyMTEsIDY2LCAKKyAgICA4NSwgODIsIDIxMywgNjYsIDg1LCA4MiwgNTAsIDEyOCwgNjYsIDg1LCAyMTAsIDY2LCA4NSwgNzksIDg4LCAxMjgsIDY2LCAKKyAgICA4NSwgNzksIDgwLCAxMjgsIDY2LCA4NSwgNzgsIDc4LCAyMTcsIDY2LCA4NSwgNzgsIDcxLCAxMjgsIDY2LCA4NSwgNzcsIAorICAgIDgwLCAyMTcsIDY2LCA4NSwgNzYsIDg1LCA3MSwgMTI4LCA2NiwgODUsIDc2LCA4NSwgMTk5LCA2NiwgODUsIDc2LCA3NiwgCisgICAgODMsIDY5LCA4OSwgNjksIDEyOCwgNjYsIDg1LCA3NiwgNzYsIDIxMSwgNjYsIDg1LCA3NiwgNzYsIDY5LCA4NCwgMTI4LCAKKyAgICA2NiwgODUsIDc2LCA3NiwgNjksIDIxMiwgNjYsIDg1LCA3NiwgNzYsIDEyOCwgNjYsIDg1LCA3NiwgNjYsIDEyOCwgNjYsIAorICAgIDg1LCA3NSwgODksIDEyOCwgNjYsIDg1LCA3MywgNzYsIDY4LCA3MywgNzgsIDcxLCA4MywgMTI4LCA2NiwgODUsIDczLCA3NiwgCisgICAgNjgsIDczLCA3OCwgNzEsIDEyOCwgNjYsIDg1LCA3MiwgNzMsIDE5NiwgNjYsIDg1LCA3MSwgNzMsIDc4LCA2OSwgODMsIAorICAgIDE5NywgNjYsIDg1LCA3MSwgMTI4LCA2NiwgODUsIDcwLCA3MCwgNjUsIDc2LCA3OSwgMTI4LCA2NiwgODUsIDY3LCA3NSwgCisgICAgNzYsIDY5LCAxMjgsIDY2LCA4MywgODQsIDY1LCA4MiwgMTI4LCA2NiwgODMsIDc1LCA4NSwgMjEwLCA2NiwgODMsIDc1LCAKKyAgICA2NSwgMTczLCA2NiwgODMsIDY4LCA4NSwgMjExLCA2NiwgODIsIDg1LCA4MywgNzIsIDEyOCwgNjYsIDgyLCA4NSwgODMsIAorICAgIDIwMCwgNjYsIDgyLCA3OSwgNzgsIDkwLCA2OSwgMTI4LCA2NiwgODIsIDc5LCA3NSwgNjksIDIwNiwgNjYsIDgyLCA3OSwgCisgICAgNjUsIDE5NiwgNjYsIDgyLCA3MywgODMsIDg0LCA3NiwgNjksIDEyOCwgNjYsIDgyLCA3MywgNzEsIDcyLCA4NCwgNzgsIDY5LCAKKyAgICA4MywgMjExLCA2NiwgODIsIDczLCA2OSwgNzAsIDY3LCA2NSwgODMsIDY5LCAxMjgsIDY2LCA4MiwgNzMsIDY4LCA3MSwgCisgICAgMTk3LCA2NiwgODIsIDczLCA2OCwgMTk3LCA2NiwgODIsIDczLCA2NywgNzUsIDEyOCwgNjYsIDgyLCA2OSwgODYsIDczLCAKKyAgICA4MywgMTI4LCA2NiwgODIsIDY5LCA4NiwgNjksIDQ1LCA3NywgNjUsIDY3LCA4MiwgNzksIDc4LCAxMjgsIDY2LCA4MiwgNjksIAorICAgIDg2LCAxOTcsIDY2LCA4MiwgNjksIDY1LCA4NCwgMjAwLCA2NiwgODIsIDY5LCA2NSwgNzUsIDg0LCA3MiwgODIsIDc5LCA4NSwgCisgICAgNzEsIDcyLCAxMjgsIDY2LCA4MiwgNjksIDY1LCA2OCwgMTI4LCA2NiwgODIsIDY4LCAxOTMsIDY2LCA4MiwgNjUsIDc4LCAKKyAgICA2NywgNzIsIDczLCA3OCwgMTk5LCA2NiwgODIsIDY1LCA3OCwgNjcsIDcyLCAxMjgsIDY2LCA4MiwgNjUsIDc4LCA2NywgCisgICAgMjAwLCA2NiwgODIsIDY1LCA3NSwgNjcsIDY5LCA4NCwgMTI4LCA2NiwgODIsIDY1LCA2NywgNzUsIDY5LCA4NCwgNjksIAorICAgIDE5NiwgNjYsIDgyLCA2NSwgNjcsIDc1LCA2OSwgMjEyLCA2NiwgODIsIDY1LCA2NywgNjksIDEyOCwgNjYsIDgxLCAxMjgsIAorICAgIDY2LCA4MCwgNzIsIDEyOCwgNjYsIDc5LCA4OSwgMTI4LCA2NiwgNzksIDg3LCA4NCwgNzMsIDY5LCAxMjgsIDY2LCA3OSwgCisgICAgODcsIDg0LCA3MywgMTk3LCA2NiwgNzksIDg3LCA3NiwgNzMsIDc4LCA3MSwgMTI4LCA2NiwgNzksIDg3LCA3NiwgMTI4LCAKKyAgICA2NiwgNzksIDg3LCA3MywgNzgsIDE5OSwgNjYsIDc5LCAyMTUsIDY2LCA3OSwgODUsIDgxLCA4NSwgNjksIDg0LCAxMjgsIAorICAgIDY2LCA3OSwgODUsIDc4LCA2OCwgNjUsIDgyLCAyMTcsIDY2LCA3OSwgODQsIDg0LCA3OSwgNzcsIDQ1LCA3NiwgNzMsIDcxLCAKKyAgICA3MiwgODQsIDY5LCAxOTYsIDY2LCA3OSwgODQsIDg0LCA3OSwgNzcsIDEyOCwgNjYsIDc5LCA4NCwgODQsIDc5LCAyMDUsIAorICAgIDY2LCA3OSwgODQsIDg0LCA3NiwgNjksIDEyOCwgNjYsIDc5LCA4NCwgODQsIDc2LCAxOTcsIDY2LCA3OSwgODQsIDIwMCwgCisgICAgNjYsIDc5LCA4MiwgODUsIDg0LCA3OSwgMTI4LCA2NiwgNzksIDgyLCA2NSwgODgsIDQ1LCA1MSwgMTI4LCA2NiwgNzksIDgyLCAKKyAgICA2NSwgODgsIDQ1LCA1MCwgMTI4LCA2NiwgNzksIDgyLCA2NSwgODgsIDEyOCwgNjYsIDc5LCA4MCwgNzksIDc3LCA3OSwgNzAsIAorICAgIDIwNywgNjYsIDc5LCA3OSwgODQsIDgzLCAxMjgsIDY2LCA3OSwgNzksIDg0LCAxMjgsIDY2LCA3OSwgNzksIDc3LCA2OSwgCisgICAgODIsIDY1LCA3OCwgNzEsIDEyOCwgNjYsIDc5LCA3OSwgNzUsIDgzLCAxMjgsIDY2LCA3OSwgNzksIDc1LCA3NywgNjUsIDgyLCAKKyAgICA3NSwgMTI4LCA2NiwgNzksIDc5LCA3NSwgNzcsIDY1LCA4MiwgMjAzLCA2NiwgNzksIDc4LCA2OSwgMTI4LCA2NiwgNzksIAorICAgIDc3LCA2NiwgMTI4LCA2NiwgNzksIDc3LCAxMjgsIDY2LCA3OSwgNzYsIDg0LCAxMjgsIDY2LCA3OSwgNzYsIDIxMiwgNjYsIAorICAgIDc5LCA3MiwgNjUsIDczLCA4MiwgNzMsIDE5NSwgNjYsIDc5LCA2OCwgODksIDEyOCwgNjYsIDc5LCA2NSwgODIsIDEyOCwgCisgICAgNjYsIDc5LCA2NSwgMTI4LCA2NiwgNzYsIDg1LCA2OSwgMTI4LCA2NiwgNzYsIDg1LCAxOTcsIDY2LCA3NiwgNzksIDg3LCAKKyAgICA3MCwgNzMsIDgzLCA3MiwgMTI4LCA2NiwgNzYsIDc5LCA4MywgODMsIDc5LCA3NywgMTI4LCA2NiwgNzYsIDc5LCA3OSwgNjgsIAorICAgIDEyOCwgNjYsIDc2LCA3OSwgNzgsIDE5NiwgNjYsIDc2LCA3OSwgNjcsIDc1LCAxMjgsIDY2LCA3NiwgNjksIDc4LCA2OCwgCisgICAgNjksIDE5NiwgNjYsIDc2LCA2NSwgNzgsIDc1LCAxMjgsIDY2LCA3NiwgNjUsIDc4LCAyMDMsIDY2LCA3NiwgNjUsIDY4LCAKKyAgICAxOTcsIDY2LCA3NiwgNjUsIDY3LCA3NSwgNzAsIDc5LCA3OSwgMjEyLCA2NiwgNzYsIDY1LCA2NywgNzUsIDQ1LCA3NiwgNjksIAorICAgIDg0LCA4NCwgNjksIDIxMCwgNjYsIDc2LCA2NSwgNjcsIDc1LCA0NSwgNzAsIDY5LCA2NSwgODQsIDcyLCA2OSwgODIsIDY5LCAKKyAgICAxOTYsIDY2LCA3NiwgNjUsIDY3LCA3NSwgMTI4LCA2NiwgNzUsIDY1LCAxNzMsIDY2LCA3MywgODQsIDg0LCA2OSwgODIsIAorICAgIDEyOCwgNjYsIDczLCA4NCwgNzMsIDc4LCAxOTksIDY2LCA3MywgODMsIDc3LCA4NSwgODQsIDIwMCwgNjYsIDczLCA4MywgCisgICAgNzcsIDczLCA3NiwgNzYsIDY1LCAyMDAsIDY2LCA3MywgODMsIDcyLCA3OSwgODAsIDEyOCwgNjYsIDczLCA4MywgNjksIDY3LCAKKyAgICA4NCwgNzMsIDc4LCAxOTksIDY2LCA3MywgODMsIDY1LCA3MiwgMTI4LCA2NiwgNzMsIDgyLCA4NSwgMTI4LCA2NiwgNzMsIAorICAgIDgyLCA4NCwgNzIsIDY4LCA2NSwgMjE3LCA2NiwgNzMsIDgyLCA3MSwgNjUsIDEyOCwgNjYsIDczLCA4MiwgNjgsIDEyOCwgCisgICAgNjYsIDczLCA3OSwgNzIsIDY1LCA5MCwgNjUsIDgyLCAxOTYsIDY2LCA3MywgNzgsIDc5LCA2NywgODUsIDc2LCA2NSwgMjEwLCAKKyAgICA2NiwgNzMsIDc4LCA2OCwgNzMsIDc4LCAxOTksIDY2LCA3MywgNzgsIDY4LCA3MywgMTI4LCA2NiwgNzMsIDc4LCA2NSwgODIsIAorICAgIDIxNywgNjYsIDczLCA3NiwgNzYsIDczLCA2NSwgODIsIDY4LCA4MywgMTI4LCA2NiwgNzMsIDc2LCA2NSwgNjYsIDczLCA2NSwgCisgICAgMjA0LCA2NiwgNzMsIDc1LCA3MywgNzgsIDczLCAxMjgsIDY2LCA3MywgNzEsIDEyOCwgNjYsIDczLCAxOTksIDY2LCA3MywgCisgICAgNjksIDg0LCAxMjgsIDY2LCA3MywgNjgsIDY5LCA3OCwgODQsIDY1LCAyMDQsIDY2LCA3MywgNjgsIDY1LCA3NSwgODUsIDc5LCAKKyAgICAyMDYsIDY2LCA3MywgNjcsIDg5LCA2NywgNzYsIDczLCA4MywgODQsIDEyOCwgNjYsIDczLCA2NywgODksIDY3LCA3NiwgNjksIAorICAgIDgzLCAxMjgsIDY2LCA3MywgNjcsIDg5LCA2NywgNzYsIDY5LCAxMjgsIDY2LCA3MywgNjcsIDY5LCA4MCwgODMsIDEyOCwgCisgICAgNjYsIDczLCA2NiwgNzYsIDY5LCA0NSwgNjcsIDgyLCA2OSwgMTk3LCA2NiwgNzMsIDY2LCAxMjgsIDY2LCAyMDEsIDY2LCAKKyAgICA3MiwgODUsIDEyOCwgNjYsIDcyLCA3OSwgNzksIDEyOCwgNjYsIDcyLCA3OSwgMTI4LCA2NiwgNzIsIDczLCAxMjgsIDY2LCAKKyAgICA3MiwgNjksIDg0LCA3MiwgMTI4LCA2NiwgNzIsIDY5LCA2OSwgMTI4LCA2NiwgNzIsIDY5LCAxMjgsIDY2LCA3MiwgNjUsIAorICAgIDg0LCA4NCwgNzMsIDgwLCA4MiwgNzksIDc2LCAyMTMsIDY2LCA3MiwgNjUsIDc3LCAxMjgsIDY2LCA3MiwgNjUsIDY1LCAKKyAgICAxMjgsIDY2LCA3MiwgNjUsIDEyOCwgNjYsIDY5LCA4OSwgODksIDY1LCA3NiwgMTI4LCA2NiwgNjksIDg4LCAxMjgsIDY2LCAKKyAgICA2OSwgODYsIDY5LCA4MiwgNjUsIDcxLCA2OSwgMTI4LCA2NiwgNjksIDg0LCA4NywgNjksIDY5LCA3OCwgMTI4LCA2NiwgNjksIAorICAgIDg0LCA4NywgNjksIDY5LCAyMDYsIDY2LCA2OSwgODQsIDcyLCAxMjgsIDY2LCA2OSwgODQsIDY1LCAxMjgsIDY2LCA2OSwgCisgICAgODQsIDE5MywgNjYsIDY5LCAyMTIsIDY2LCA2OSwgODMsIDczLCA2OCwgMTk3LCA2NiwgNjksIDgyLCA3NSwgNjUsIDc4LCAKKyAgICA2NSwgMjA2LCA2NiwgNjksIDgyLCA2NiwgNjksIDIxMCwgNjYsIDY5LCA4MCwgMTI4LCA2NiwgNjksIDc5LCA4MiwgMTk1LCAKKyAgICA2NiwgNjksIDc4LCA5MCwgNjksIDc4LCAxOTcsIDY2LCA2OSwgNzgsIDg0LCAyMDcsIDY2LCA2OSwgNzgsIDY4LCA2OSwgCisgICAgMTI4LCA2NiwgNjksIDc4LCA2OCwgMTI4LCA2NiwgNjksIDIwNiwgNjYsIDY5LCA3NiwgODQsIDEyOCwgNjYsIDY5LCA3NiwgCisgICAgMjEyLCA2NiwgNjksIDc2LCA3OSwgMjE1LCA2NiwgNjksIDc2LCA3NiwgMTI4LCA2NiwgNjksIDc2LCAyMDQsIDY2LCA2OSwgCisgICAgNzYsIDcxLCA4NCwgNzIsIDc5LCAyMTAsIDY2LCA2OSwgNzYsIDEyOCwgNjYsIDY5LCA3MywgODQsIDcyLCAxMjgsIDY2LCAKKyAgICA2OSwgNzIsIDczLCA3OCwgMTk2LCA2NiwgNjksIDcyLCA2OSwgNzIsIDEyOCwgNjYsIDY5LCA3MiwgNjksIDIwMCwgNjYsIAorICAgIDY5LCA3MiwgMTI4LCA2NiwgNjksIDIwMCwgNjYsIDY5LCA3MSwgNzMsIDc4LCA3OCwgNzMsIDc4LCA3MSwgMTI4LCA2NiwgCisgICAgNjksIDcxLCA3MywgNzgsIDc4LCA2OSwgODIsIDEyOCwgNjYsIDY5LCA3MSwgNzMsIDIwNiwgNjYsIDY5LCA3MCwgNzksIDgyLCAKKyAgICAxOTcsIDY2LCA2OSwgNjksIDg0LCA3NiwgNjksIDEyOCwgNjYsIDY5LCA2OSwgODQsIDY1LCAxMjgsIDY2LCA2OSwgNjksIAorICAgIDIxMCwgNjYsIDY5LCA2OSwgNzIsIDczLCA4NiwgNjksIDEyOCwgNjYsIDY5LCA2OSwgNzIsIDEyOCwgNjYsIDY5LCA2OSwgCisgICAgMjAwLCA2NiwgNjksIDY3LCA2NSwgODUsIDgzLCA2OSwgMTI4LCA2NiwgNjksIDY1LCA4NiwgNjksIDIxMCwgNjYsIDY5LCAKKyAgICA2NSwgODQsIDczLCA3OCwgMTk5LCA2NiwgNjksIDY1LCA4NCwgMTI4LCA2NiwgNjksIDY1LCAyMTAsIDY2LCA2OSwgNjUsIAorICAgIDc4LCAxMjgsIDY2LCA2OSwgNjUsIDc3LCA2OSwgMTk2LCA2NiwgNjcsIDY1LCA2OCwgMTI4LCA2NiwgNjcsIDY1LCAxOTYsIAorICAgIDY2LCA2NiwgODksIDg4LCAxMjgsIDY2LCA2NiwgODksIDg0LCAxMjgsIDY2LCA2NiwgODksIDgwLCAxMjgsIDY2LCA2NiwgCisgICAgODksIDEyOCwgNjYsIDY2LCA4NSwgODgsIDEyOCwgNjYsIDY2LCA4NSwgODQsIDEyOCwgNjYsIDY2LCA4NSwgODIsIDg4LCAKKyAgICAxMjgsIDY2LCA2NiwgODUsIDgyLCAxMjgsIDY2LCA2NiwgODUsIDgwLCAxMjgsIDY2LCA2NiwgODUsIDc5LCA4OCwgMTI4LCAKKyAgICA2NiwgNjYsIDg1LCA3OSwgODAsIDEyOCwgNjYsIDY2LCA4NSwgNzksIDEyOCwgNjYsIDY2LCA4NSwgMTI4LCA2NiwgNjYsIAorICAgIDc5LCA4OCwgMTI4LCA2NiwgNjYsIDc5LCA4NCwgMTI4LCA2NiwgNjYsIDc5LCA4MCwgMTI4LCA2NiwgNjYsIDc5LCAxMjgsIAorICAgIDY2LCA2NiwgNzMsIDg4LCAxMjgsIDY2LCA2NiwgNzMsIDgwLCAxMjgsIDY2LCA2NiwgNzMsIDY5LCA4OCwgMTI4LCA2NiwgCisgICAgNjYsIDczLCA2OSwgODQsIDEyOCwgNjYsIDY2LCA3MywgNjksIDgwLCAxMjgsIDY2LCA2NiwgNzMsIDY5LCAxMjgsIDY2LCAKKyAgICA2NiwgNzMsIDEyOCwgNjYsIDY2LCA2OSwgODgsIDEyOCwgNjYsIDY2LCA2OSwgODAsIDEyOCwgNjYsIDY2LCA2OSwgNjksIAorICAgIDEyOCwgNjYsIDY2LCA2OSwgMTI4LCA2NiwgNjYsIDY1LCA4OCwgMTI4LCA2NiwgNjYsIDY1LCA4NCwgMTI4LCA2NiwgNjYsIAorICAgIDY1LCA4MCwgMTI4LCA2NiwgNjYsIDY1LCA2NSwgMTI4LCA2NiwgNjYsIDY1LCAxMjgsIDY2LCA2NSwgODksIDY1LCA3OCwgCisgICAgNzgsIDY1LCAxMjgsIDY2LCA2NSwgODUsIDEyOCwgNjYsIDY1LCA4NCwgODQsIDY5LCA4MiwgODksIDEyOCwgNjYsIDY1LCAKKyAgICA4NCwgNzIsIDg0LCA4NSwgNjYsIDEyOCwgNjYsIDY1LCA4NCwgNzIsIDY1LCA3NywgNjUsIDgzLCA2NSwgODQsIDEyOCwgNjYsIAorICAgIDY1LCA4NCwgNzIsIDEyOCwgNjYsIDY1LCA4NCwgMjAwLCA2NiwgNjUsIDg0LCA2NSwgMjAzLCA2NiwgNjUsIDgzLCA4MywgCisgICAgNjUsIDEyOCwgNjYsIDY1LCA4MywgNzUsIDY5LCA4NCwgNjYsIDY1LCA3NiwgMjA0LCA2NiwgNjUsIDgzLCA3MiwgNzUsIDczLCAKKyAgICAyMTAsIDY2LCA2NSwgODMsIDcyLCAxMjgsIDY2LCA2NSwgODMsIDY5LCA2NiwgNjUsIDc2LCA3NiwgMTI4LCA2NiwgNjUsIAorICAgIDgzLCA2OSwgMTI4LCA2NiwgNjUsIDgzLCAxOTcsIDY2LCA2NSwgODIsIDgzLCAxMjgsIDY2LCA2NSwgODIsIDgyLCA3MywgCisgICAgNjksIDgyLCAxMjgsIDY2LCA2NSwgODIsIDgyLCA2OSwgNzUsIDcyLCAxMjgsIDY2LCA2NSwgODIsIDgyLCA2OSwgNjksIAorICAgIDEyOCwgNjYsIDY1LCA4MiwgODIsIDY5LCAxOTcsIDY2LCA2NSwgODIsIDc2LCA3MywgNzgsIDY5LCAxMjgsIDY2LCA2NSwgCisgICAgODIsIDc2LCA2OSwgODksIDEyOCwgNjYsIDY1LCA4MiwgNzMsIDg5LCA3OSwgNzksIDgzLCA2NSwgNzgsIDEyOCwgNjYsIDY1LCAKKyAgICA4MiwgNjYsIDY5LCAyMTAsIDY2LCA2NSwgODIsIDE5NCwgNjYsIDY1LCA4MiwgNjUsIDUwLCAxMjgsIDY2LCA2NSwgMjEwLCAKKyAgICA2NiwgNjUsIDc4LCA4NCwgNzksIDY3LCAxMjgsIDY2LCA2NSwgNzgsIDc1LCA3OCwgNzksIDg0LCAxOTcsIDY2LCA2NSwgNzgsIAorICAgIDc1LCAxMjgsIDY2LCA2NSwgNzgsIDIwMywgNjYsIDY1LCA3OCwgNjgsIDEyOCwgNjYsIDY1LCA3OCwgNjUsIDc4LCA2NSwgCisgICAgMTI4LCA2NiwgNjUsIDc4LCA1MCwgMTI4LCA2NiwgNjUsIDc4LCAxNzgsIDY2LCA2NSwgNzcsIDY2LCA3OSwgNzksIDgzLCAKKyAgICAxMjgsIDY2LCA2NSwgNzcsIDY2LCA3OSwgNzksIDEyOCwgNjYsIDY1LCA3NiwgODUsIDY4LCA2NSwgMTI4LCA2NiwgNjUsIAorICAgIDc2LCA3NiwgNzksIDIxMiwgNjYsIDY1LCA3NiwgNzYsIDc5LCA3OSwgNzgsIDQ1LCA4MywgODAsIDc5LCA3NSwgNjksIDE5NiwgCisgICAgNjYsIDY1LCA3NiwgNzYsIDc5LCA3OSwgNzgsIDEyOCwgNjYsIDY1LCA3NiwgNjUsIDcxLCAxMjgsIDY2LCA2NSwgNzYsIAorICAgIDEyOCwgNjYsIDY1LCAyMDQsIDY2LCA2NSwgNzMsIDgyLCA3NSwgNjUsIDc4LCAxMjgsIDY2LCA2NSwgNzMsIDc3LCA2NSwgCisgICAgNzMsIDEyOCwgNjYsIDY1LCA3MiwgODQsIDEyOCwgNjYsIDY1LCA3MiwgNzMsIDgyLCA3MSwgNzksIDc3LCA4NSwgNzUsIDcyLCAKKyAgICA2NSwgMTI4LCA2NiwgNjUsIDcyLCA2NSwgODIsIDUwLCAxMjgsIDY2LCA2NSwgNzIsIDEyOCwgNjYsIDY1LCA3MSwgNzEsIAorICAgIDY1LCA3MSwgMTk3LCA2NiwgNjUsIDcxLCA2NSwgMTI4LCA2NiwgNjUsIDcxLCA1MSwgMTI4LCA2NiwgNjUsIDE5OSwgNjYsIAorICAgIDY1LCA2OCwgNzEsIDY5LCA4MiwgMTI4LCA2NiwgNjUsIDY4LCA3MSwgNjksIDEyOCwgNjYsIDY1LCA2OCwgMTI4LCA2NiwgCisgICAgNjUsIDY3LCA4NCwgODIsIDczLCA2NSwgMjA2LCA2NiwgNjUsIDY3LCA3NSwgODcsIDY1LCA4MiwgNjgsIDEyOCwgNjYsIDY1LCAKKyAgICA2NywgNzUsIDgzLCA4MCwgNjUsIDY3LCA2OSwgMTI4LCA2NiwgNjUsIDY3LCA3NSwgODMsIDc2LCA2NSwgODMsIDcyLCAxMjgsIAorICAgIDY2LCA2NSwgNjcsIDc1LCA4MywgNzYsIDY1LCA4MywgMjAwLCA2NiwgNjUsIDY3LCA3NSwgNzIsIDY1LCA3OCwgMTk2LCA2NiwgCisgICAgNjUsIDY3LCA3NSwgNDUsIDg0LCA3MywgNzYsIDg0LCA2OSwgMTk2LCA2NiwgNjUsIDY3LCA3NSwgMTI4LCA2NiwgNjUsIDY3LCAKKyAgICAyMDMsIDY2LCA2NSwgNjYsIDg5LCAxMjgsIDY2LCA2NSwgNjYsIDIxNywgNjYsIDY1LCA2NSwgODIsIDY5LCA4MiwgODUsIAorICAgIDEyOCwgNjYsIDY1LCA0NSwgNTAsIDEyOCwgNjYsIDUxLCA0OCwgNTMsIDEyOCwgNjYsIDUwLCA1MywgNTcsIDEyOCwgNjYsIAorICAgIDUwLCA1MywgNTYsIDEyOCwgNjYsIDUwLCA1MywgNTUsIDEyOCwgNjYsIDUwLCA1MywgNTQsIDEyOCwgNjYsIDUwLCA1MywgCisgICAgNTMsIDEyOCwgNjYsIDUwLCA1MywgMTgwLCA2NiwgNTAsIDUzLCA1MSwgMTI4LCA2NiwgNTAsIDUzLCA1MCwgMTI4LCA2NiwgCisgICAgNTAsIDUzLCA0OSwgMTI4LCA2NiwgNTAsIDUzLCA0OCwgMTI4LCA2NiwgNTAsIDUyLCA1NywgMTI4LCA2NiwgNTAsIDUyLCAKKyAgICA1NiwgMTI4LCA2NiwgNTAsIDUyLCAxODMsIDY2LCA1MCwgNTIsIDU0LCAxMjgsIDY2LCA1MCwgNTIsIDUzLCAxMjgsIDY2LCAKKyAgICA1MCwgNTIsIDE3OSwgNjYsIDUwLCA1MiwgMTc4LCA2NiwgNTAsIDUyLCAxNzcsIDY2LCA1MCwgNTIsIDE3NiwgNjYsIDUwLCAKKyAgICA1MSwgNTQsIDEyOCwgNjYsIDUwLCA1MSwgNTIsIDEyOCwgNjYsIDUwLCA1MSwgMTc5LCA2NiwgNTAsIDUxLCA1MCwgMTI4LCAKKyAgICA2NiwgNTAsIDUxLCAxNzcsIDY2LCA1MCwgNTEsIDE3NiwgNjYsIDUwLCA1MCwgNTcsIDEyOCwgNjYsIDUwLCA1MCwgNTYsIAorICAgIDEyOCwgNjYsIDUwLCA1MCwgNTUsIDEyOCwgNjYsIDUwLCA1MCwgNTQsIDEyOCwgNjYsIDUwLCA1MCwgMTgxLCA2NiwgNTAsIAorICAgIDUwLCA1MCwgMTI4LCA2NiwgNTAsIDUwLCA0OSwgMTI4LCA2NiwgNTAsIDUwLCAxNzYsIDY2LCA1MCwgNDksIDU3LCAxMjgsIAorICAgIDY2LCA1MCwgNDksIDU2LCAxMjgsIDY2LCA1MCwgNDksIDU1LCAxMjgsIDY2LCA1MCwgNDksIDU0LCAxMjgsIDY2LCA1MCwgCisgICAgNDksIDUzLCAxMjgsIDY2LCA1MCwgNDksIDUyLCAxMjgsIDY2LCA1MCwgNDksIDUxLCAxMjgsIDY2LCA1MCwgNDksIDUwLCAKKyAgICAxMjgsIDY2LCA1MCwgNDksIDQ5LCAxMjgsIDY2LCA1MCwgNDksIDQ4LCAxMjgsIDY2LCA1MCwgNDgsIDU3LCAxMjgsIDY2LCAKKyAgICA1MCwgNDgsIDU2LCAxMjgsIDY2LCA1MCwgNDgsIDU1LCAxMjgsIDY2LCA1MCwgNDgsIDU0LCAxMjgsIDY2LCA1MCwgNDgsIAorICAgIDUzLCAxMjgsIDY2LCA1MCwgNDgsIDUyLCAxMjgsIDY2LCA1MCwgNDgsIDUxLCAxMjgsIDY2LCA1MCwgNDgsIDUwLCAxMjgsIAorICAgIDY2LCA1MCwgNDgsIDQ5LCAxMjgsIDY2LCA1MCwgNDgsIDQ4LCAxMjgsIDY2LCA0OSwgNTcsIDE3NywgNjYsIDQ5LCA1NywgCisgICAgNDgsIDEyOCwgNjYsIDQ5LCA1NiwgNTcsIDEyOCwgNjYsIDQ5LCA1NiwgNTMsIDEyOCwgNjYsIDQ5LCA1NiwgNTIsIDEyOCwgCisgICAgNjYsIDQ5LCA1NiwgNTEsIDEyOCwgNjYsIDQ5LCA1NiwgNTAsIDEyOCwgNjYsIDQ5LCA1NiwgNDksIDEyOCwgNjYsIDQ5LCAKKyAgICA1NiwgNDgsIDEyOCwgNjYsIDQ5LCA1NSwgNTcsIDEyOCwgNjYsIDQ5LCA1NSwgNTYsIDEyOCwgNjYsIDQ5LCA1NSwgNTUsIAorICAgIDEyOCwgNjYsIDQ5LCA1NSwgMTgyLCA2NiwgNDksIDU1LCA1MiwgMTI4LCA2NiwgNDksIDU1LCAxNzksIDY2LCA0OSwgNTUsIAorICAgIDUwLCAxMjgsIDY2LCA0OSwgNTUsIDQ5LCAxMjgsIDY2LCA0OSwgNTUsIDQ4LCAxMjgsIDY2LCA0OSwgNTQsIDU3LCAxMjgsIAorICAgIDY2LCA0OSwgNTQsIDU2LCAxMjgsIDY2LCA0OSwgNTQsIDU1LCAxMjgsIDY2LCA0OSwgNTQsIDU0LCAxMjgsIDY2LCA0OSwgCisgICAgNTQsIDUzLCAxMjgsIDY2LCA0OSwgNTQsIDUyLCAxMjgsIDY2LCA0OSwgNTQsIDE3OSwgNjYsIDQ5LCA1NCwgMTc4LCA2NiwgCisgICAgNDksIDU0LCA0OSwgMTI4LCA2NiwgNDksIDU0LCA0OCwgMTI4LCA2NiwgNDksIDUzLCAxODUsIDY2LCA0OSwgNTMsIDU2LCAKKyAgICAxMjgsIDY2LCA0OSwgNTMsIDU1LCAxMjgsIDY2LCA0OSwgNTMsIDE4MiwgNjYsIDQ5LCA1MywgNTMsIDEyOCwgNjYsIDQ5LCAKKyAgICA1MywgNTIsIDEyOCwgNjYsIDQ5LCA1MywgNTEsIDEyOCwgNjYsIDQ5LCA1MywgNTAsIDEyOCwgNjYsIDQ5LCA1MywgMTc3LCAKKyAgICA2NiwgNDksIDUzLCA0OCwgMTI4LCA2NiwgNDksIDUyLCA1NCwgMTI4LCA2NiwgNDksIDUyLCAxODEsIDY2LCA0OSwgNTIsIAorICAgIDUwLCAxMjgsIDY2LCA0OSwgNTIsIDE3NywgNjYsIDQ5LCA1MiwgMTc2LCA2NiwgNDksIDUxLCAxODEsIDY2LCA0OSwgNTEsIAorICAgIDE3OSwgNjYsIDQ5LCA1MSwgNTAsIDEyOCwgNjYsIDQ5LCA1MSwgMTc3LCA2NiwgNDksIDUxLCAxNzYsIDY2LCA0OSwgNTAsIAorICAgIDE4NCwgNjYsIDQ5LCA1MCwgMTgzLCA2NiwgNDksIDUwLCAxODEsIDY2LCA0OSwgNTAsIDE3OSwgNjYsIDQ5LCA1MCwgMTc4LCAKKyAgICA2NiwgNDksIDUwLCAxNzcsIDY2LCA0OSwgNTAsIDE3NiwgNjYsIDQ5LCA0OCwgNTcsIDIwNSwgNjYsIDQ5LCA0OCwgNTcsIAorICAgIDE5OCwgNjYsIDQ5LCA0OCwgNTYsIDIwNSwgNjYsIDQ5LCA0OCwgNTYsIDE5OCwgNjYsIDQ5LCA0OCwgNTUsIDIwNSwgNjYsIAorICAgIDQ5LCA0OCwgNTUsIDE5OCwgNjYsIDQ5LCA0OCwgNTQsIDIwNSwgNjYsIDQ5LCA0OCwgNTQsIDE5OCwgNjYsIDQ5LCA0OCwgCisgICAgNTMsIDIwNSwgNjYsIDQ5LCA0OCwgNTMsIDE5OCwgNjYsIDQ5LCA0OCwgMTgxLCA2NiwgNDksIDQ4LCAxODAsIDY2LCA0OSwgCisgICAgNDgsIDE3OCwgNjYsIDQ5LCA0OCwgMTc2LCA2NiwgNDgsIDU3LCAxNzcsIDY2LCA0OCwgNTcsIDE3NiwgNjYsIDQ4LCA1NiwgCisgICAgNTcsIDEyOCwgNjYsIDQ4LCA1NiwgMTgzLCA2NiwgNDgsIDU2LCA1NCwgMTI4LCA2NiwgNDgsIDU2LCAxODEsIDY2LCA0OCwgCisgICAgNTYsIDUxLCAxMjgsIDY2LCA0OCwgNTYsIDUwLCAxMjgsIDY2LCA0OCwgNTYsIDE3NywgNjYsIDQ4LCA1NiwgMTc2LCA2NiwgCisgICAgNDgsIDU1LCA1NywgMTI4LCA2NiwgNDgsIDU1LCAxODQsIDY2LCA0OCwgNTUsIDE4MywgNjYsIDQ4LCA1NSwgMTgyLCA2NiwgCisgICAgNDgsIDU1LCAxODEsIDY2LCA0OCwgNTUsIDE4MCwgNjYsIDQ4LCA1NSwgMTc5LCA2NiwgNDgsIDU1LCAxNzgsIDY2LCA0OCwgCisgICAgNTUsIDE3NywgNjYsIDQ4LCA1NSwgMTc2LCA2NiwgNDgsIDU0LCAxODUsIDY2LCA0OCwgNTQsIDE4NCwgNjYsIDQ4LCA1NCwgCisgICAgMTgzLCA2NiwgNDgsIDU0LCAxODIsIDY2LCA0OCwgNTQsIDE4MSwgNjYsIDQ4LCA1NCwgNTIsIDEyOCwgNjYsIDQ4LCA1NCwgCisgICAgNTEsIDEyOCwgNjYsIDQ4LCA1NCwgMTc4LCA2NiwgNDgsIDU0LCAxNzcsIDY2LCA0OCwgNTQsIDE3NiwgNjYsIDQ4LCA1MywgCisgICAgMTg1LCA2NiwgNDgsIDUzLCAxODQsIDY2LCA0OCwgNTMsIDE4MywgNjYsIDQ4LCA1MywgNTQsIDEyOCwgNjYsIDQ4LCA1MywgCisgICAgMTgxLCA2NiwgNDgsIDUzLCAxODAsIDY2LCA0OCwgNTMsIDE3OSwgNjYsIDQ4LCA1MywgMTc4LCA2NiwgNDgsIDUzLCAxNzcsIAorICAgIDY2LCA0OCwgNTMsIDE3NiwgNjYsIDQ4LCA1MiwgNTcsIDEyOCwgNjYsIDQ4LCA1MiwgMTg0LCA2NiwgNDgsIDUyLCA1NSwgCisgICAgMTI4LCA2NiwgNDgsIDUyLCAxODIsIDY2LCA0OCwgNTIsIDE4MSwgNjYsIDQ4LCA1MiwgMTgwLCA2NiwgNDgsIDUyLCAxNzksIAorICAgIDY2LCA0OCwgNTIsIDE3OCwgNjYsIDQ4LCA1MiwgMTc3LCA2NiwgNDgsIDUyLCAxNzYsIDY2LCA0OCwgNTEsIDE4NSwgNjYsIAorICAgIDQ4LCA1MSwgMTg0LCA2NiwgNDgsIDUxLCAxODMsIDY2LCA0OCwgNTEsIDE4MiwgNjYsIDQ4LCA1MSwgNTIsIDEyOCwgNjYsIAorICAgIDQ4LCA1MSwgMTc5LCA2NiwgNDgsIDUxLCAxNzgsIDY2LCA0OCwgNTEsIDE3NywgNjYsIDQ4LCA1MSwgMTc2LCA2NiwgNDgsIAorICAgIDUwLCAxODUsIDY2LCA0OCwgNTAsIDE4NCwgNjYsIDQ4LCA1MCwgMTgzLCA2NiwgNDgsIDUwLCAxODIsIDY2LCA0OCwgNTAsIAorICAgIDE4MSwgNjYsIDQ4LCA1MCwgMTgwLCA2NiwgNDgsIDUwLCAxNzksIDY2LCA0OCwgNTAsIDUwLCAxMjgsIDY2LCA0OCwgNTAsIAorICAgIDE3NywgNjYsIDQ4LCA1MCwgMTc2LCA2NiwgNDgsIDQ5LCA1NywgMTI4LCA2NiwgNDgsIDQ5LCA1NiwgMTI4LCA2NiwgNDgsIAorICAgIDQ5LCAxODMsIDY2LCA0OCwgNDksIDE4MiwgNjYsIDQ4LCA0OSwgMTgxLCA2NiwgNDgsIDQ5LCAxODAsIDY2LCA0OCwgNDksIAorICAgIDE3OSwgNjYsIDQ4LCA0OSwgMTc4LCA2NiwgNDgsIDQ5LCAxNzcsIDY2LCA0OCwgNDksIDE3NiwgNjYsIDQ4LCA0OCwgNTcsIAorICAgIDEyOCwgNjYsIDQ4LCA0OCwgMTg1LCA2NiwgNDgsIDQ4LCA1NiwgMTI4LCA2NiwgNDgsIDQ4LCAxODQsIDY2LCA0OCwgNDgsIAorICAgIDU1LCAxMjgsIDY2LCA0OCwgNDgsIDE4MywgNjYsIDQ4LCA0OCwgNTQsIDEyOCwgNjYsIDQ4LCA0OCwgMTgyLCA2NiwgNDgsIAorICAgIDQ4LCA1MywgNjUsIDEyOCwgNjYsIDQ4LCA0OCwgNTMsIDEyOCwgNjYsIDQ4LCA0OCwgMTgxLCA2NiwgNDgsIDQ4LCA1MiwgCisgICAgMTI4LCA2NiwgNDgsIDQ4LCAxODAsIDY2LCA0OCwgNDgsIDUxLCAxMjgsIDY2LCA0OCwgNDgsIDE3OSwgNjYsIDQ4LCA0OCwgCisgICAgNTAsIDEyOCwgNjYsIDQ4LCA0OCwgMTc4LCA2NiwgNDgsIDQ4LCA0OSwgMTI4LCA2NiwgNDgsIDQ4LCAxNzcsIDY1LCA5MCwgCisgICAgODUsIDEyOCwgNjUsIDg5LCA2OSwgMjEwLCA2NSwgODksIDY2LCAxMjgsIDY1LCA4OSwgNjUsIDcyLCAxMjgsIDY1LCA4OCwgCisgICAgNjksIDEyOCwgNjUsIDg3LCA2OSwgMTI4LCA2NSwgODYsIDY5LCA4MywgODQsIDY1LCAyMDYsIDY1LCA4NiwgNjksIDgyLCAKKyAgICA2NSwgNzEsIDE5NywgNjUsIDg2LCA2NSwgNzUsIDgyLCA2NSwgNzIsIDY1LCA4MywgNjUsIDc4LCA4OSwgNjUsIDEyOCwgNjUsIAorICAgIDg2LCA2NSwgNzEsIDgyLCA2NSwgNzIsIDY1LCAxMjgsIDY1LCA4NSwgODksIDY1LCA3OCwgNzgsIDY1LCAxMjgsIDY1LCA4NSwgCisgICAgODQsIDg1LCA3NywgNzgsIDEyOCwgNjUsIDg1LCA4NCwgNzksIDc3LCA3OSwgNjYsIDczLCA3NiwgNjksIDEyOCwgNjUsIDg1LCAKKyAgICA4NCwgNzksIDc3LCA2NSwgODQsIDY5LCAxOTYsIDY1LCA4NSwgODMsIDg0LCA4MiwgNjUsIDIwNCwgNjUsIDg1LCA4MiwgNzMsIAorICAgIDgwLCA3MywgNzEsIDc3LCA2OSwgNzgsIDg0LCAxMjgsIDY1LCA4NSwgODIsIDY1LCA3NywgNjUsIDkwLCA2OCwgNjUsIDY1LCAKKyAgICA3MiwgNjUsIDEyOCwgNjUsIDg1LCA4MiwgNjUsIDc3LCA2NSwgOTAsIDY4LCA2NSwgNjUsIDQ1LCA1MCwgMTI4LCA2NSwgODUsIAorICAgIDgyLCA2NSwgNzcsIDY1LCA5MCwgNjgsIDY1LCA2NSwgMTI4LCA2NSwgODUsIDc4LCA3OCwgMTI4LCA2NSwgODUsIDcxLCA4NSwgCisgICAgODMsIDg0LCAxMjgsIDY1LCA4NSwgNzEsIDc3LCA2OSwgNzgsIDg0LCA2NSwgODQsIDczLCA3OSwgMjA2LCA2NSwgODUsIDY5LCAKKyAgICAxMjgsIDY1LCA4NSwgNjYsIDY5LCA4MiwgNzEsIDczLCA3OCwgNjksIDEyOCwgNjUsIDg0LCA4NCwgNzMsIDE5NSwgNjUsIAorICAgIDg0LCA4NCwgNzIsIDY1LCA2NywgNjUsIDc4LCAxMjgsIDY1LCA4NCwgODQsIDY5LCA3OCwgODQsIDczLCA3OSwgNzgsIDEyOCwgCisgICAgNjUsIDg0LCA4NCwgNjUsIDIwMywgNjUsIDg0LCA3OSwgMjA1LCA2NSwgODQsIDc4LCA2NSwgMjAwLCA2NSwgODQsIDc3LCAKKyAgICA2NSwgNjUsIDg1LCAxMjgsIDY1LCA4NCwgNzMsIDg5LCA2NSwgMTI4LCA2NSwgODQsIDcyLCA3NiwgNjksIDg0LCA3MywgCisgICAgMTk1LCA2NSwgODQsIDcyLCA2NSwgODIsIDg2LCA2NSwgODYsIDY5LCA2OCwgNzMsIDE5NSwgNjUsIDg0LCA3MiwgNjUsIDgwLCAKKyAgICA2NSwgODMsIDY3LCA2NSwgMjA2LCA2NSwgODMsIDkwLCAxMjgsIDY1LCA4MywgODksIDg1LCA4MiwgMTkzLCA2NSwgODMsIAorICAgIDg5LCA3NywgODAsIDg0LCA3OSwgODQsIDczLCA2NywgNjUsIDc2LCA3NiwgMjE3LCA2NSwgODMsIDg0LCA4MiwgNzksIDc4LCAKKyAgICA3OSwgNzcsIDczLCA2NywgNjUsIDIwNCwgNjUsIDgzLCA4NCwgODIsIDc5LCA3NiwgNzksIDcxLCA3MywgNjcsIDY1LCAyMDQsIAorICAgIDY1LCA4MywgODQsIDc5LCA3OCwgNzMsIDgzLCA3MiwgNjksIDE5NiwgNjUsIDgzLCA4NCwgNjksIDgyLCA3MywgODMsIDc3LCAKKyAgICAxMjgsIDY1LCA4MywgODQsIDY5LCA4MiwgNzMsIDgzLCA3NSwgMjExLCA2NSwgODMsIDg0LCA2OSwgODIsIDczLCA4MywgNzUsIAorICAgIDEyOCwgNjUsIDgzLCA4NCwgNjksIDgyLCA3MywgODMsIDIwMywgNjUsIDgzLCA4NCwgNjksIDgyLCA3MywgODMsIDY3LCA4NSwgCisgICAgODMsIDEyOCwgNjUsIDgzLCA4MywgODksIDgyLCA3MywgNjUsIDIwNiwgNjUsIDgzLCA4MywgNjksIDgyLCA4NCwgNzMsIDc5LCAKKyAgICA3OCwgMTI4LCA2NSwgODMsIDgwLCA3MywgODIsIDY1LCA4NCwgNzMsIDc5LCA3OCwgMTI4LCA2NSwgODMsIDgwLCA3MywgODIsIAorICAgIDY1LCA4NCwgNjksIDE5NiwgNjUsIDgzLCA4MCwgNjksIDgyLCAxMjgsIDY1LCA4MywgNzMsIDY1LCA0NSwgNjUsIDg1LCA4MywgCisgICAgODQsIDgyLCA2NSwgNzYsIDczLCA2NSwgMTI4LCA2NSwgODMsIDcyLCA3MSwgNjUsIDY2LCAxMjgsIDY1LCA4MywgNzIsIDY5LCAKKyAgICA4MywgMTI4LCA2NSwgODMsIDcyLCA1NywgMTI4LCA2NSwgODMsIDcyLCAxNzgsIDY1LCA4MywgNjcsIDY5LCA3OCwgODQsIAorICAgIDEyOCwgNjUsIDgzLCA2NywgNjksIDc4LCA2OCwgNzMsIDc4LCAxOTksIDY1LCA4MywgNjUsIDc2LCA1MCwgMTI4LCA2NSwgCisgICAgODIsIDg1LCA3MiwgODUsIDY1LCAxMjgsIDY1LCA4MiwgODQsIDczLCA4MywgMjEyLCA2NSwgODIsIDg0LCA3MywgNjcsIDg1LCAKKyAgICA3NiwgNjUsIDg0LCA2OSwgMTk2LCA2NSwgODIsIDg0LCA2NSwgNjYsIDE5NywgNjUsIDgyLCA4MywgNjksIDc5LCA4MywgCisgICAgMTI4LCA2NSwgODIsIDgzLCA2OSwgNzksIDIxMSwgNjUsIDgyLCA4MywgNjksIDc4LCA3MywgNjcsIDEyOCwgNjUsIDgyLCAKKyAgICA4MiwgNzksIDg3LCA4MywgMTI4LCA2NSwgODIsIDgyLCA3OSwgODcsIDIxMSwgNjUsIDgyLCA4MiwgNzksIDg3LCA3MiwgNjksIAorICAgIDY1LCA2OCwgMTI4LCA2NSwgODIsIDgyLCA3OSwgODcsIDcyLCA2OSwgNjUsIDE5NiwgNjUsIDgyLCA4MiwgNzksIDg3LCA0NSwgCisgICAgODQsIDY1LCA3MywgNzYsIDEyOCwgNjUsIDgyLCA4MiwgNzMsIDg2LCA2OSwgMTI4LCA2NSwgODIsIDgyLCA2NSwgODksIAorICAgIDEyOCwgNjUsIDgyLCA4MCwgNjksIDcxLCA3MSwgNzMsIDY1LCA4NCwgMjA3LCA2NSwgODIsIDc5LCA4NSwgODMsIDczLCA3OCwgCisgICAgMTk5LCA2NSwgODIsIDc5LCA4NSwgODIsIDE5MywgNjUsIDgyLCA3OSwgODUsIDc4LCA2OCwgNDUsIDgwLCA4MiwgNzksIDcwLCAKKyAgICA3MywgNzYsIDY5LCAxMjgsIDY1LCA4MiwgNzksIDg1LCA3OCwgMTk2LCA2NSwgODIsIDc3LCA4OSwgMTI4LCA2NSwgODIsIAorICAgIDc3LCA3OSwgODUsIDgyLCAxMjgsIDY1LCA4MiwgMjA1LCA2NSwgODIsIDc2LCA2NSwgODUsIDE5OSwgNjUsIDgyLCA3NSwgCisgICAgODQsIDczLCA3NSwgMjA3LCA2NSwgODIsIDc1LCA2NSwgNjYsIDEyOCwgNjUsIDgyLCA3NSwgNjUsIDY1LCA3OCwgODUsIAorICAgIDEyOCwgNjUsIDgyLCA3MywgODMsIDg0LCA2OSwgODIsIDY1LCAxMjgsIDY1LCA4MiwgNzMsIDgzLCA4NCwgNjksIDgyLCAKKyAgICAxOTMsIDY1LCA4MiwgNzMsIDY5LCA4MywgMTI4LCA2NSwgODIsIDcxLCA3OSwgODQsIDY5LCA4MiwgNzMsIDEyOCwgNjUsIAorICAgIDgyLCA3MSwgNzksIDgzLCA4OSwgNzgsIDg0LCA3MiwgNjksIDg0LCA3OSwgNzgsIDEyOCwgNjUsIDgyLCA3MSwgNzMsIDEyOCwgCisgICAgNjUsIDgyLCA2OSwgODAsIDY1LCAxMjgsIDY1LCA4MiwgNjksIDY1LCAxMjgsIDY1LCA4MiwgNjgsIDcyLCA2NSwgODYsIDczLCAKKyAgICA4MywgNjUsIDgyLCA3MSwgNjUsIDEyOCwgNjUsIDgyLCA2NywgNzIsIDY1LCA3MywgNzksIDc4LCAxMjgsIDY1LCA4MiwgNjcsIAorICAgIDcyLCA2NSwgNzMsIDc5LCAyMDYsIDY1LCA4MiwgNjcsIDcyLCA2NSwgNzMsIDE5NSwgNjUsIDgyLCA2NywgMjAwLCA2NSwgCisgICAgODIsIDY3LCAxMjgsIDY1LCA4MiwgMTk1LCA2NSwgODIsIDY1LCA3NywgNjUsIDczLCAxOTUsIDY1LCA4MiwgNjUsIDY5LCAKKyAgICA2NSwgNjksIDEyOCwgNjUsIDgyLCA2NSwgNjksIDY1LCA0NSwgODUsIDEyOCwgNjUsIDgyLCA2NSwgNjksIDY1LCA0NSwgNzMsIAorICAgIDEyOCwgNjUsIDgyLCA2NSwgNjksIDY1LCA0NSwgNjksIDc5LCAxMjgsIDY1LCA4MiwgNjUsIDY5LCA2NSwgNDUsIDY5LCAKKyAgICAxMjgsIDY1LCA4MiwgNjUsIDY5LCA2NSwgNDUsIDY1LCAxMjgsIDY1LCA4MiwgNjUsIDY4LCAxMjgsIDY1LCA4MiwgNjUsIAorICAgIDE5NiwgNjUsIDgyLCA2NSwgNjYsIDczLCA2NywgNDUsIDczLCA3OCwgNjgsIDczLCAxOTUsIDY1LCA4MiwgNjUsIDY2LCA3MywgCisgICAgNjUsIDIwNiwgNjUsIDgyLCA0NSwgODIsIDY1LCA3MiwgNzcsIDY1LCAyMDYsIDY1LCA4MiwgNDUsIDgyLCA2NSwgNzIsIDY5LCAKKyAgICA2OSwgNzcsIDEyOCwgNjUsIDgxLCA4NSwgNjUsIDgyLCA3MywgODUsIDgzLCAxMjgsIDY1LCA4MSwgODUsIDY1LCA3MCwgNzksIAorICAgIDgyLCA4NCwgNzMsIDgzLCAxMjgsIDY1LCA4MSwgODUsIDE5MywgNjUsIDgwLCA4NSwgMjA2LCA2NSwgODAsIDgyLCA3MywgCisgICAgNzYsIDEyOCwgNjUsIDgwLCA4MCwgODIsIDc5LCA4OCwgNzMsIDc3LCA2NSwgODQsIDY5LCA3NiwgMjE3LCA2NSwgODAsIDgwLCAKKyAgICA4MiwgNzksIDg4LCA3MywgNzcsIDY1LCA4NCwgNjksIDEyOCwgNjUsIDgwLCA4MCwgODIsIDc5LCA2NSwgNjcsIDcyLCA2OSwgCisgICAgMjExLCA2NSwgODAsIDgwLCA4MiwgNzksIDY1LCA2NywgNzIsIDEyOCwgNjUsIDgwLCA4MCwgNzYsIDczLCA2NywgNjUsIDg0LCAKKyAgICA3MywgNzksIDc4LCAxMjgsIDY1LCA4MCwgODAsIDc2LCA3MywgNjcsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDY1LCA4MCwgNzksIAorICAgIDg0LCA3MiwgNjksIDgzLCAxMjgsIDY1LCA4MCwgNzksIDg0LCA3MiwgNjksIDc3LCA2NSwgMTI4LCA2NSwgODAsIDc5LCA4MywgCisgICAgODQsIDgyLCA3OSwgODAsIDcyLCA2OSwgMTI4LCA2NSwgODAsIDc5LCA4MywgODQsIDgyLCA3OSwgNzAsIDc5LCA4MywgMTI4LCAKKyAgICA2NSwgODAsIDc5LCA4MywgODQsIDgyLCA3OSwgNzAsIDc5LCAyMTEsIDY1LCA4MCwgNzksIDgzLCA4NCwgODIsIDc5LCA3MCwgCisgICAgNzksIDIwMSwgNjUsIDgwLCA3OSwgNjgsIDY5LCA4OCwgNzMsIDY1LCAxMjgsIDY1LCA4MCwgNzksIDY4LCA2OSwgODIsIDc3LCAKKyAgICAxOTMsIDY1LCA4MCwgNzYsIDc5LCA4NSwgNzgsIDEyOCwgNjUsIDgwLCA3NiwgMjAxLCA2NSwgODAsIDIwNCwgNjUsIDgwLCAKKyAgICA3MywgNzgsIDEyOCwgNjUsIDgwLCA2OSwgODMsIDIwNywgNjUsIDgwLCA2NywgMTI4LCA2NSwgODAsIDY1LCA4MiwgODQsIAorICAgIDEyOCwgNjUsIDgwLCA2NSwgNjUsIDg0LCA3OSwgMTI4LCA2NSwgNzgsIDg1LCA4MywgODYsIDY1LCA4MiwgNjUsIDg5LCA2NSwgCisgICAgMTI4LCA2NSwgNzgsIDg1LCA4MywgODYsIDY1LCA4MiwgNjUsIDEyOCwgNjUsIDc4LCA4NSwgODMsIDg2LCA2NSwgODIsIAorICAgIDE5MywgNjUsIDc4LCA4NSwgNjgsIDY1LCA4NCwgODQsIDY1LCAxMjgsIDY1LCA3OCwgODUsIDY4LCA2NSwgODQsIDg0LCAKKyAgICAxOTMsIDY1LCA3OCwgODQsIDczLCA4MiwgNjksIDgzLCA4NCwgODIsIDczLCA2NywgODQsIDczLCA3OSwgNzgsIDEyOCwgNjUsIAorICAgIDc4LCA4NCwgNzMsIDc3LCA3OSwgNzgsIDg5LCA0NSwgNTAsIDEyOCwgNjUsIDc4LCA4NCwgNzMsIDc3LCA3OSwgNzgsIDg5LCAKKyAgICAxMjgsIDY1LCA3OCwgODQsIDczLCA3NywgNzksIDc4LCAyMTcsIDY1LCA3OCwgODQsIDczLCA3NywgNzksIDc4LCA3MywgNjUsIAorICAgIDg0LCA2OSwgMTI4LCA2NSwgNzgsIDg0LCA3MywgNzUsIDY5LCA3OCwgNzksIDc3LCA2NSwgMTI4LCA2NSwgNzgsIDg0LCA3MywgCisgICAgNzUsIDY5LCA3OCwgNzksIDc1LCA4OSwgNzYsIDczLCA4MywgNzcsIDY1LCAxMjgsIDY1LCA3OCwgODQsIDczLCA3MCwgNzksIAorICAgIDc4LCA3MywgNjUsIDEyOCwgNjUsIDc4LCA4NCwgNzMsIDY3LCA3NiwgNzksIDY3LCA3NSwgODcsIDczLCA4MywgNjksIDQ1LCAKKyAgICA4MiwgNzksIDg0LCA2NSwgODQsIDY5LCAxOTYsIDY1LCA3OCwgODQsIDczLCA2NywgNzYsIDc5LCA2NywgNzUsIDg3LCA3MywgCisgICAgODMsIDE5NywgNjUsIDc4LCA4NCwgNjksIDc4LCA3OCwgNjUsIDEyOCwgNjUsIDc4LCA4NCwgNjksIDc4LCA3OCwgMTkzLCAKKyAgICA2NSwgNzgsIDg0LCA2NSwgODIsIDcxLCA3OSwgNzcsIDg1LCA3NSwgNzIsIDY1LCAxMjgsIDY1LCA3OCwgODMsIDg1LCAyMTgsIAorICAgIDY1LCA3OCwgODMsIDcyLCA2OSwgMTI4LCA2NSwgNzgsIDgwLCA2OSwgNjUsIDEyOCwgNjUsIDc4LCAyMDcsIDY1LCA3OCwgCisgICAgNzgsIDg1LCA3MywgODQsIDIxNywgNjUsIDc4LCA3OCwgNzksIDg0LCA2NSwgODQsIDczLCA3OSwgMjA2LCA2NSwgNzgsIDc4LCAKKyAgICA2NSwgNjUsIDg1LCAxMjgsIDY1LCA3OCwgNzUsIDcyLCAxMjgsIDY1LCA3OCwgNzQsIDczLCAxMjgsIDY1LCA3OCwgNzIsIAorICAgIDg1LCAxMjgsIDY1LCA3OCwgNzEsIDg1LCA3NiwgNjUsIDgyLCAxMjgsIDY1LCA3OCwgNzEsIDg1LCA3MywgODMsIDcyLCA2OSwgCisgICAgMTk2LCA2NSwgNzgsIDcxLCA4MywgODQsIDgyLCA3OSwgMjA1LCA2NSwgNzgsIDcxLCA4MiwgMjE3LCA2NSwgNzgsIDcxLCAKKyAgICA3NSwgNzIsIDY1LCA3OCwgNzUsIDcyLCA4NSwgMTI4LCA2NSwgNzgsIDcxLCA2OSwgMjEwLCA2NSwgNzgsIDcxLCA2OSwgNzYsIAorICAgIDEyOCwgNjUsIDc4LCA3MSwgNjksIDY4LCAxMjgsIDY1LCA3OCwgNjgsIDY1LCA4MCwgMTI4LCA2NSwgNzgsIDY3LCA3OSwgCisgICAgODIsIDY1LCAxMjgsIDY1LCA3OCwgNjcsIDcyLCA3OSwgODIsIDEyOCwgNjUsIDc4LCA2NSwgODQsIDgyLCA3MywgNjcsIDcyLCAKKyAgICA3MywgODMsIDc3LCA2NSwgMTI4LCA2NSwgNzgsIDY1LCA4MCwgMTI4LCA2NSwgNzcsIDgwLCA4MywgMTI4LCA2NSwgNzcsIAorICAgIDgwLCA2OSwgODIsIDgzLCA2NSwgNzgsIDY4LCAxMjgsIDY1LCA3NywgNzksIDg1LCA3OCwgMjEyLCA2NSwgNzcsIDY5LCA4MiwgCisgICAgNzMsIDY3LCA2NSwgODMsIDEyOCwgNjUsIDc3LCA2OSwgODIsIDczLCA2NywgNjUsIDIwNiwgNjUsIDc3LCA2NiwgODUsIDc2LCAKKyAgICA2NSwgNzgsIDY3LCA2OSwgMTI4LCA2NSwgNzcsIDY2LCAxOTMsIDY1LCA3NywgNjUsIDgyLCAxMjgsIDY1LCA3NywgNjUsIAorICAgIDIxMCwgNjUsIDc3LCA2NSwgNzYsIDcxLCA2NSwgNzcsIDY1LCA4NCwgNzMsIDc5LCAyMDYsIDY1LCA3NywgNjUsIDc2LCA3MSwgCisgICAgNjUsIDc3LCAxMjgsIDY1LCA3NiwgODYsIDY5LCA3OSwgNzYsIDY1LCAyMTAsIDY1LCA3NiwgODUsIDc3LCAxMjgsIDY1LCAKKyAgICA3NiwgODQsIDY5LCA4MiwgNzgsIDY1LCA4NCwgNzMsIDg2LCAxOTcsIDY1LCA3NiwgODQsIDY5LCA4MiwgNzgsIDY1LCA4NCwgCisgICAgNzMsIDc5LCAyMDYsIDY1LCA3NiwgODQsIDY5LCA4MiwgNzgsIDY1LCA4NCwgMTk3LCA2NSwgNzYsIDg0LCA2NSwgMTI4LCAKKyAgICA2NSwgNzYsIDgwLCA3MiwgNjUsIDEyOCwgNjUsIDc2LCA4MCwgNzIsIDE5MywgNjUsIDc2LCA4MCwgNjUsIDgwLCA4MiwgNjUsIAorICAgIDc4LCA2NSwgMTI4LCA2NSwgNzYsIDgwLCA2NSwgODAsIDgyLCA2NSwgNjUsIDc4LCAxOTMsIDY1LCA3NiwgODAsIDY1LCAKKyAgICAxMjgsIDY1LCA3NiwgNzcsIDc5LCA4MywgMjEyLCA2NSwgNzYsIDc2LCA3OSwgMTI4LCA2NSwgNzYsIDc2LCA3MywgNjUsIAorICAgIDc4LCA2NywgNjksIDEyOCwgNjUsIDc2LCA3NiwgMjAxLCA2NSwgNzYsIDc2LCA2NSwgMjAwLCA2NSwgNzYsIDc1LCA2NSwgCisgICAgNzYsIDczLCA0NSwgNTAsIDEyOCwgNjUsIDc2LCA3NSwgNjUsIDc2LCA3MywgMTI4LCA2NSwgNzYsIDczLCA3MSwgNzgsIDY5LCAKKyAgICAxOTYsIDY1LCA3NiwgNzMsIDcwLCA4NSwgMTI4LCA2NSwgNzYsIDczLCA2OSwgNzgsIDEyOCwgNjUsIDc2LCA3MywgNjksIAorICAgIDIwNiwgNjUsIDc2LCA3MSwgNzMsIDIxOCwgNjUsIDc2LCA3MCwgNjUsIDEyOCwgNjUsIDc2LCA2OSwgODUsIDIxMiwgNjUsIAorICAgIDc2LCA2OSwgODIsIDg0LCAxMjgsIDY1LCA3NiwgNjksIDgwLCA3MiwgMTI4LCA2NSwgNzYsIDY5LCA3NywgNjYsIDczLCA2NywgCisgICAgMTI4LCA2NSwgNzYsIDY5LCA3MCwgMTI4LCA2NSwgNzYsIDY1LCA4OSwgNzIsIDY5LCAxMjgsIDY1LCA3NiwgNjUsIDg5LCAKKyAgICA3MiwgMTk3LCA2NSwgNzYsIDY1LCA4MiwgMjA1LCA2NSwgNzYsIDY1LCA4MCwgNzIsIDEyOCwgNjUsIDc2LCA0NSwgNzYsIAorICAgIDY1LCA3NSwgODUsIDc4LCA2NSwgMTI4LCA2NSwgNzUsIDg0LCA3MywgNjksIDgzLCA2OSwgNzYsIDgzLCA3NSwgNjUsIDY2LCAKKyAgICAxMjgsIDY1LCA3NSwgODMsIDY1LCAxMjgsIDY1LCA3NSwgNzIsIDc3LCA3MywgNzcsIDczLCAxOTUsIDY1LCA3NSwgNjYsIAorICAgIDY1LCAyMTAsIDY1LCA3NSwgNjUsIDgyLCA2NSwgMTI4LCA2NSwgNzUsIDY1LCA4MiwgMTkzLCA2NSwgNzMsIDg5LCA2NSwgCisgICAgNzgsIDc4LCA2NSwgMTI4LCA2NSwgNzMsIDg2LCA3MywgNzYsIDczLCAyMDMsIDY1LCA3MywgODQsIDc5LCAyMDYsIDY1LCAKKyAgICA3MywgODIsIDgwLCA3NiwgNjUsIDc4LCA2OSwgMTI4LCA2NSwgNzMsIDc4LCAyMTMsIDY1LCA3MywgNzgsIDc4LCAxMjgsIAorICAgIDY1LCA3MywgNzYsIDc3LCAxMjgsIDY1LCA3MywgNzUsIDY1LCA4MiwgNjUsIDEyOCwgNjUsIDczLCA3MiwgODYsIDg1LCA4MywgCisgICAgMTI4LCA2NSwgNzIsIDgzLCA2OCwgNjUsIDEyOCwgNjUsIDcyLCA4MywgNjUsIDEyOCwgNjUsIDcyLCA2NSwgNzgsIDE5OSwgCisgICAgNjUsIDcyLCA2NSwgNzEsIDcxLCA2NSwgMjEwLCA2NSwgNzIsIDY1LCA2OCwgMTI4LCA2NSwgNzEsIDg1LCA3OCwgNzEsIAorICAgIDEyOCwgNjUsIDcxLCA3OSwgNzEsIDIwMSwgNjUsIDcxLCA3MSwgODIsIDY1LCA4NiwgNjUsIDg0LCA3MywgNzksIDc4LCAKKyAgICAxMjgsIDY1LCA3MSwgNzEsIDgyLCA2NSwgODYsIDY1LCA4NCwgNjksIDE5NiwgNjUsIDcxLCA2NSwgNzMsIDc4LCAxMjgsIAorICAgIDY1LCA3MCwgODQsIDY5LCAyMTAsIDY1LCA3MCwgODMsIDY1LCA2NSwgODEsIDEyOCwgNjUsIDcwLCA4MiwgNzMsIDY3LCA2NSwgCisgICAgMjA2LCA2NSwgNzAsIDc5LCA4MiwgNjksIDc3LCA2OSwgNzgsIDg0LCA3MywgNzksIDc4LCA2OSwgNjgsIDEyOCwgNjUsIDcwLCAKKyAgICA3MSwgNzIsIDY1LCA3OCwgMjAxLCA2NSwgNzAsIDcwLCA4MiwgNzMsIDY3LCA2NSwgODQsIDczLCA3OSwgMjA2LCA2NSwgNjksIAorICAgIDg5LCA2NSwgNzgsIDc4LCA2NSwgMTI4LCA2NSwgNjksIDg5LCAxMjgsIDY1LCA2OSwgODMsIDY3LCA4NSwgNzYsIDY1LCA4MCwgCisgICAgNzMsIDg1LCA4MywgMTI4LCA2NSwgNjksIDgzLCA2NywgMTI4LCA2NSwgNjksIDgzLCAxMjgsIDY1LCA2OSwgODIsIDczLCAKKyAgICA2NSwgMjA0LCA2NSwgNjksIDgyLCAxMjgsIDY1LCA2OSwgNzYsIDY1LCA0NSwgODAsIDczLCA3NiwgNzYsIDY1LCAxMjgsIAorICAgIDY1LCA2OSwgNzYsIDEyOCwgNjUsIDY5LCA3NSwgMTI4LCA2NSwgNjksIDcxLCA2OSwgNjUsIDIwNiwgNjUsIDY5LCA3MSwgCisgICAgMTI4LCA2NSwgNjksIDY5LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNjUsIDY5LCA2OSwgMTI4LCA2NSwgNjksIDY4LCAKKyAgICA2NSwgNDUsIDgwLCA3MywgNzYsIDc2LCA2NSwgMTI4LCA2NSwgNjksIDY4LCAxMjgsIDY1LCA2OSwgNjYsIDEyOCwgNjUsIAorICAgIDY4LCA4NiwgNjUsIDc4LCA4NCwgNjUsIDcxLCA2OSwgMTI4LCA2NSwgNjgsIDg2LCA2NSwgNzgsIDY3LCA2OSwgMTI4LCA2NSwgCisgICAgNjgsIDY5LCA3MSwgMTI4LCA2NSwgNjgsIDY5LCAxOTksIDY1LCA2OCwgNjgsIDgyLCA2OSwgODMsIDgzLCA2OSwgMTk2LCAKKyAgICA2NSwgNjgsIDY4LCA4MiwgNjksIDgzLCAyMTEsIDY1LCA2OCwgNjgsIDY1LCA3NSwgMTI4LCA2NSwgNjgsIDY1LCAyMDMsIAorICAgIDY1LCA2NywgODUsIDg0LCA2OSwgNDUsIDc3LCA2NSwgNjcsIDgyLCA3OSwgNzgsIDEyOCwgNjUsIDY3LCA4NSwgODQsIDY5LCAKKyAgICA0NSwgNzEsIDgyLCA2NSwgODYsIDY5LCA0NSwgNjUsIDY3LCA4NSwgODQsIDY5LCAxMjgsIDY1LCA2NywgODUsIDg0LCAxOTcsIAorICAgIDY1LCA2NywgODQsIDg1LCA2NSwgNzYsIDc2LCAyMTcsIDY1LCA2NywgODQsIDczLCA4NiwgNjUsIDg0LCAxOTcsIDY1LCA2NywgCisgICAgODIsIDc5LCA4MCwgNzIsIDc5LCA3OCwgNzMsIDE5NSwgNjUsIDY3LCA3NSwgNzgsIDc5LCA4NywgNzYsIDY5LCA2OCwgNzEsIAorICAgIDY5LCAxMjgsIDY1LCA2NywgNjcsIDg1LCA3NywgODUsIDc2LCA2NSwgODQsIDczLCA3OSwgNzgsIDEyOCwgNjUsIDY3LCA2NywgCisgICAgNzksIDg1LCA3OCwgMjEyLCA2NSwgNjcsIDY3LCA2OSwgODAsIDg0LCAxMjgsIDY1LCA2NywgNjcsIDY5LCA3OCwgODQsIDQ1LCAKKyAgICA4MywgODQsIDY1LCA2NywgNjcsIDY1LCA4NCwgNzksIDEyOCwgNjUsIDY3LCA2NywgNjksIDc4LCA4NCwgMTI4LCA2NSwgNjcsIAorICAgIDY3LCA2OSwgNzgsIDIxMiwgNjUsIDY3LCA2NSwgNjgsIDY5LCA3NywgMjE3LCA2NSwgNjYsIDg5LCA4MywgNzcsIDY1LCAKKyAgICAyMDQsIDY1LCA2NiwgODUsIDc4LCA2OCwgNjUsIDc4LCA2NywgNjksIDEyOCwgNjUsIDY2LCA3NSwgNzIsIDY1LCA4MywgNzMsIAorICAgIDY1LCAyMDYsIDY1LCA2NiwgNjYsIDgyLCA2OSwgODYsIDczLCA2NSwgODQsIDczLCA3OSwgMjA2LCA2NSwgNjYsIDY1LCA3MCwgCisgICAgNzMsIDc2LCA3MywgMTI4LCA2NSwgNjYsIDE3OCwgNjUsIDY1LCA4OSwgNjUsIDc4LCA3OCwgNjUsIDEyOCwgNjUsIDY1LCAKKyAgICA4OSwgMTI4LCA2NSwgNjUsIDg3LCAxMjgsIDY1LCA2NSwgNzksIDEyOCwgNjUsIDY1LCA3NCwgMTI4LCA2NSwgNjUsIDY2LCAKKyAgICA2NSwgNjUsIDcwLCA3MywgNzYsIDczLCAxMjgsIDY1LCA2NSwgNDgsIDUxLCA1MCwgMTI4LCA2NSwgNjUsIDQ4LCA1MSwgNDksIAorICAgIDEyOCwgNjUsIDY1LCA0OCwgNTEsIDQ4LCAxMjgsIDY1LCA2NSwgNDgsIDUwLCA1NywgMTI4LCA2NSwgNjUsIDQ4LCA1MCwgCisgICAgNTYsIDEyOCwgNjUsIDY1LCA0OCwgNTAsIDU1LCAxMjgsIDY1LCA2NSwgNDgsIDUwLCA1NCwgMTI4LCA2NSwgNjUsIDQ4LCAKKyAgICA1MCwgNTMsIDEyOCwgNjUsIDY1LCA0OCwgNTAsIDUyLCAxMjgsIDY1LCA2NSwgNDgsIDUwLCA1MSwgMTI4LCA2NSwgNjUsIAorICAgIDQ4LCA1MCwgNTAsIDEyOCwgNjUsIDY1LCA0OCwgNTAsIDQ5LCAxMjgsIDY1LCA2NSwgNDgsIDUwLCA0OCwgMTI4LCA2NSwgCisgICAgNjUsIDQ4LCA0OSwgNTcsIDEyOCwgNjUsIDY1LCA0OCwgNDksIDU2LCAxMjgsIDY1LCA2NSwgNDgsIDQ5LCA1NSwgMTI4LCAKKyAgICA2NSwgNjUsIDQ4LCA0OSwgNTQsIDEyOCwgNjUsIDY1LCA0OCwgNDksIDUzLCAxMjgsIDY1LCA2NSwgNDgsIDQ5LCA1MiwgCisgICAgMTI4LCA2NSwgNjUsIDQ4LCA0OSwgNTEsIDEyOCwgNjUsIDY1LCA0OCwgNDksIDUwLCAxMjgsIDY1LCA2NSwgNDgsIDQ5LCAKKyAgICA0OSwgMTI4LCA2NSwgNjUsIDQ4LCA0OSwgNDgsIDEyOCwgNjUsIDY1LCA0OCwgNDgsIDU3LCAxMjgsIDY1LCA2NSwgNDgsIAorICAgIDQ4LCA1NiwgMTI4LCA2NSwgNjUsIDQ4LCA0OCwgNTUsIDY2LCAxMjgsIDY1LCA2NSwgNDgsIDQ4LCA1NSwgNjUsIDEyOCwgCisgICAgNjUsIDY1LCA0OCwgNDgsIDU1LCAxMjgsIDY1LCA2NSwgNDgsIDQ4LCA1NCwgMTI4LCA2NSwgNjUsIDQ4LCA0OCwgNTMsIAorICAgIDEyOCwgNjUsIDY1LCA0OCwgNDgsIDUyLCAxMjgsIDY1LCA2NSwgNDgsIDQ4LCA1MSwgMTI4LCA2NSwgNjUsIDQ4LCA0OCwgCisgICAgNTAsIDEyOCwgNjUsIDY1LCA0OCwgNDgsIDQ5LCAxMjgsIDY1LCA0OCwgNTUsIDQ4LCAxMjgsIDY1LCA0OCwgNTQsIDU3LCAKKyAgICAxMjgsIDY1LCA0OCwgNTQsIDU2LCAxMjgsIDY1LCA0OCwgNTQsIDU1LCAxMjgsIDY1LCA0OCwgNTQsIDU0LCAxMjgsIDY1LCAKKyAgICA0OCwgNTQsIDUzLCAxMjgsIDY1LCA0OCwgNTQsIDUyLCAxMjgsIDY1LCA0OCwgNTQsIDUxLCAxMjgsIDY1LCA0OCwgNTQsIAorICAgIDUwLCAxMjgsIDY1LCA0OCwgNTQsIDQ5LCAxMjgsIDY1LCA0OCwgNTQsIDQ4LCAxMjgsIDY1LCA0OCwgNTMsIDU3LCAxMjgsIAorICAgIDY1LCA0OCwgNTMsIDU2LCAxMjgsIDY1LCA0OCwgNTMsIDU1LCAxMjgsIDY1LCA0OCwgNTMsIDU0LCAxMjgsIDY1LCA0OCwgCisgICAgNTMsIDUzLCAxMjgsIDY1LCA0OCwgNTMsIDUyLCAxMjgsIDY1LCA0OCwgNTMsIDUxLCAxMjgsIDY1LCA0OCwgNTMsIDUwLCAKKyAgICAxMjgsIDY1LCA0OCwgNTMsIDQ5LCAxMjgsIDY1LCA0OCwgNTMsIDQ4LCAxMjgsIDY1LCA0OCwgNTIsIDU3LCAxMjgsIDY1LCAKKyAgICA0OCwgNTIsIDU2LCAxMjgsIDY1LCA0OCwgNTIsIDU1LCAxMjgsIDY1LCA0OCwgNTIsIDU0LCAxMjgsIDY1LCA0OCwgNTIsIAorICAgIDUzLCA2NSwgMTI4LCA2NSwgNDgsIDUyLCA1MywgMTI4LCA2NSwgNDgsIDUyLCA1MiwgMTI4LCA2NSwgNDgsIDUyLCA1MSwgCisgICAgNjUsIDEyOCwgNjUsIDQ4LCA1MiwgNTEsIDEyOCwgNjUsIDQ4LCA1MiwgNTAsIDY1LCAxMjgsIDY1LCA0OCwgNTIsIDUwLCAKKyAgICAxMjgsIDY1LCA0OCwgNTIsIDQ5LCAxMjgsIDY1LCA0OCwgNTIsIDQ4LCA2NSwgMTI4LCA2NSwgNDgsIDUyLCA0OCwgMTI4LCAKKyAgICA2NSwgNDgsIDUxLCA1NywgMTI4LCA2NSwgNDgsIDUxLCA1NiwgMTI4LCA2NSwgNDgsIDUxLCA1NSwgMTI4LCA2NSwgNDgsIAorICAgIDUxLCA1NCwgMTI4LCA2NSwgNDgsIDUxLCA1MywgMTI4LCA2NSwgNDgsIDUxLCA1MiwgMTI4LCA2NSwgNDgsIDUxLCA1MSwgCisgICAgMTI4LCA2NSwgNDgsIDUxLCA1MCwgNjUsIDEyOCwgNjUsIDQ4LCA0OSwgNTUsIDY1LCAxMjgsIDY1LCA0OCwgNDksIDUyLCAKKyAgICA2NSwgMTI4LCA2NSwgNDgsIDQ4LCA1NCwgNjYsIDEyOCwgNjUsIDQ4LCA0OCwgNTQsIDY1LCAxMjgsIDY1LCA0OCwgNDgsIAorICAgIDUzLCA2NSwgMTI4LCA2NSwgNDUsIDY5LCA4NSwgMTI4LCA0NSwgODUsIDIwNSwgNDUsIDgwLCA3MiwgODIsIDg1LCAxMjgsIAorICAgIDQ1LCA3NSwgNzIsIDg5LCA4NSwgMTk2LCA0NSwgNzUsIDcyLCA4OSwgNzMsIDc2LCAxMjgsIDQ1LCA2OCwgOTAsIDg1LCAKKyAgICAxOTYsIDQ1LCA2NywgNzIsIDY1LCAyMTAsIDQ1LCA2NywgNzIsIDY1LCA3NiwgMTI4LCAKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgbGV4aWNvbl9vZmZzZXRbXSA9IHsKLSAgICAwLCAwLCA2LCAxMCwgMTUsIDIzLCAyNywgMzQsIDM5LCA0MSwgNDQsIDUyLCA2MiwgNjgsIDgxLCA5MywgMTAyLCAxMDgsIAotICAgIDExMywgMTIxLCAxMzAsIDEzNSwgMTQwLCAxNDQsIDE1MCwgMTUzLCAxNTgsIDE2NiwgMTczLCAxODEsIDE4NiwgMTkxLCAKLSAgICAxOTQsIDIwMCwgMjA4LCAyMTUsIDIyNSwgMjMyLCAyNDEsIDI0NCwgMjQ3LCAyNTIsIDI1OCwgMjYyLCAyNzEsIDI3OCwgCi0gICAgMjg1LCAyOTAsIDI5OSwgMzA3LCAzMTMsIDMxOSwgMzI1LCAxNDEsIDMzMCwgMzMxLCAzMzcsIDM0NSwgMzUxLCAzNTcsIAotICAgIDM2NSwgMzcyLCAzNzQsIDM3NywgMzgxLCAzODgsIDM5MCwgMzk3LCA0MDIsIDQwOCwgNDEwLCA0MTcsIDQyNSwgNDI3LCAKLSAgICAzMTEsIDQzMCwgNDMyLCA0MzcsIDQ0MiwgNDQ3LCA0NTMsIDQ2MCwgNDY5LCA0NzksIDQ4NCwgNDg5LCA0OTMsIDUwNiwgCi0gICAgNTEzLCA1MTcsIDUyNiwgNTMzLCA1NDAsIDU0MywgNTQ5LCA1NTMsIDU2MywgNTcxLCA1NzksIDU4OCwgNTk2LCA2MDQsIAotICAgIDYwOSwgNjE3LCA2MjQsIDYzNCwgNjQ1LCA2NDksIDY1NCwgNjU3LCA2NjEsIDY2NSwgNjY2LCA2NzIsIDY3OCwgNjgwLCAKLSAgICA2ODMsIDY4NywgMzQ0LCA2OTAsIDY5NCwgNzAzLCA3MDYsIDcwOSwgNzE0LCA3MTgsIDcyNiwgNzI5LCA3MzUsIDc0MiwgCi0gICAgNzQ5LCA3NTgsIDc2NSwgNzc0LCA3NzksIDc4MywgNzkyLCA4MDIsIDgxMSwgODE3LCA4MjMsIDgzMCwgODM4LCA4NDYsIAotICAgIDg1NSwgODYzLCA4NjcsIDg3NSwgODgwLCA3ODEsIDUxMSwgODg5LCA4OTMsIDg5NywgOTA0LCA5MDgsIDkxNSwgNjg5LCAKLSAgICA5MTgsIDkyNiwgOTI5LCA5MzMsIDk0MCwgOTQ0LCA5NDksIDk1NywgOTYwLCAxOTIsIDk2NiwgOTcxLCA5ODEsIDk5MCwgCi0gICAgOTk3LCAxMDA0LCAxMDEyLCAxMDIwLCAxMDI2LCAxMDMwLCAxMDM1LCAxMDQwLCAxMDQ2LCAxMDUxLCAxMDU0LCAxMTEsIAotICAgIDEwNjAsIDEwNjQsIDEwNzAsIDEwNzMsIDEwODYsIDEwODksIDEwOTMsIDIyLCAxMDk3LCAxMTAyLCAxMTA1LCAxMTA4LCAKLSAgICAxMTE0LCAxMTI0LCAxMTI2LCAxMTMyLCAxMTQyLCAxMTQ3LCAxMTU2LCAxMTY0LCAzMjgsIDExNjcsIDExNzAsIDExNzQsIAotICAgIDExNzksIDExODUsIDExOTAsIDExOTcsIDExOTksIDEyMDQsIDEyMDksIDEyMTUsIDEyMjAsIDEyMjUsIDEyMjksIDEyMzQsIAotICAgIDEyNDAsIDEyNDUsIDEyNTAsIDEyNTQsIDEyNTksIDEyNjQsIDEyNjgsIDEyNzMsIDEyNzgsIDEyODMsIDEyODksIDEyOTUsIAotICAgIDEzMDEsIDEzMDYsIDEzMTAsIDEzMTUsIDEzMjAsIDEzMjUsIDEzMjksIDEzMzQsIDEzMzksIDEzNDQsIDEzNDksIDEyMDAsIAotICAgIDEyMDUsIDEyMTAsIDEyMTYsIDEyMjEsIDEzNTMsIDEyMjYsIDEzNTksIDEzNjgsIDEyMzAsIDEzNzIsIDEyMzUsIDEyNDEsIAotICAgIDEyNDYsIDEzNzYsIDEzODEsIDEzODYsIDEzOTAsIDEzOTQsIDE0MDAsIDE0MDQsIDEyNTEsIDE0MDcsIDE0MTEsIDEyNTUsIAotICAgIDE0MTcsIDEyNjAsIDE0MjEsIDE0MjUsIDEyNjUsIDE0MjksIDE0MzQsIDE0MzgsIDE0NDEsIDE0NDUsIDEyNjksIDEyNzQsIAotICAgIDE0NTAsIDEyNzksIDE0NTYsIDE0NjIsIDE0NjgsIDE0NzQsIDEyODQsIDEyOTYsIDEzMDIsIDE0NzgsIDE0ODIsIDE0ODYsIAotICAgIDE0ODksIDEzMDcsIDE0OTMsIDE0OTUsIDE1MDAsIDE1MDUsIDE1MTEsIDE1MTYsIDE1MjEsIDE1MjUsIDE1MzAsIDE1MzUsIAotICAgIDE1NDAsIDE1NDUsIDE1NTEsIDE1NTYsIDE1NjEsIDE1NjcsIDE1NzMsIDE1NzgsIDE1ODIsIDE1ODcsIDE1OTIsIDE1OTcsIAotICAgIDE2MDIsIDE2MDYsIDE2MTQsIDE2MTgsIDE2MjMsIDE2MjgsIDE2MzMsIDE2MzgsIDE2NDIsIDE2NDUsIDE2NTAsIDE2NTUsIAotICAgIDE2NjAsIDE2NjUsIDE2NzEsIDE2NzYsIDE2ODAsIDEzMTEsIDE2ODMsIDE2ODgsIDE2OTMsIDEzMTYsIDE2OTcsIDE3MDEsIAotICAgIDE3MDgsIDEzMjEsIDE3MTUsIDEzMjYsIDE3MTksIDE3MjEsIDE3MjYsIDE3MzIsIDEzMzAsIDE3MzcsIDE3NDYsIDEzMzUsIAotICAgIDE3NTEsIDE3NTcsIDEzNDAsIDE3NjIsIDE3NjcsIDE3NzAsIDE3NzUsIDE3NzksIDE3ODMsIDE3ODcsIDE3OTAsIDE3OTQsIAotICAgIDEzNDUsIDEzNTAsIDExMDAsIDE3OTksIDE4MDUsIDE4MTEsIDE4MTcsIDE4MjMsIDE4MjksIDE4MzUsIDE4NDEsIDE4NDcsIAotICAgIDE4NTIsIDE4NTgsIDE4NjQsIDE4NzAsIDE4NzYsIDE4ODIsIDE4ODgsIDE4OTQsIDE5MDAsIDE5MDYsIDE5MTEsIDE5MTYsIAotICAgIDE5MjEsIDE5MjYsIDE5MzEsIDE5MzYsIDE5NDEsIDE5NDYsIDE5NTEsIDE5NTYsIDE5NjIsIDE5NjcsIDE5NzMsIDE5NzgsIAotICAgIDE5ODQsIDE5OTAsIDE5OTUsIDIwMDEsIDIwMDcsIDIwMTMsIDIwMTksIDIwMjQsIDIwMjksIDIwMzEsIDIwMzIsIDIwMzYsIAotICAgIDIwNDAsIDIwNDUsIDIwNDksIDIwNTMsIDIwNTcsIDIwNjEsIDIwNjQsIDIwNjksIDIwNzMsIDIwNzgsIDIwODIsIDIwODYsIAotICAgIDIwOTEsIDIwOTUsIDIwOTgsIDIxMDIsIDIxMDgsIDIxMjIsIDIxMjYsIDIxMzAsIDIxMzMsIDIxMzgsIDIxNDIsIDIxNDYsIAotICAgIDIxNDksIDIxNTMsIDIxNTgsIDIxNjMsIDIxNjgsIDIxNzMsIDIxNzcsIDIxODEsIDIxODUsIDIxOTAsIDIxOTQsIDIxOTksIAotICAgIDIyMDMsIDIyMDgsIDIyMTQsIDIyMjEsIDIyMjcsIDIyMzIsIDIyMzcsIDIyNDIsIDIyNDgsIDIyNTMsIDIyNTksIDIyNjQsIAotICAgIDIyNjcsIDEyMTcsIDIyNjksIDIyNzYsIDIyODQsIDIyOTQsIDIzMDMsIDIzMTcsIDIzMjEsIDIzMjUsIDIzMzgsIDIzNDYsIAotICAgIDIzNTAsIDIzNTUsIDIzNTksIDIzNjIsIDIzNjYsIDIzNzAsIDIzNzUsIDIzODAsIDIzODUsIDIzODksIDIzOTIsIDIzOTYsIAotICAgIDI0MDMsIDI0MTAsIDI0MTYsIDI0MjEsIDI0MjYsIDI0MzIsIDI0MzgsIDI0NDMsIDI0NDYsIDE3MjMsIDI0NDgsIDI0NTQsIAotICAgIDI0NTgsIDI0NjMsIDI0NjcsIDI0NzEsIDE3MjgsIDE3MzQsIDI0NzYsIDI0ODAsIDI0ODMsIDI0ODgsIDI0OTMsIDI0OTgsIAotICAgIDI1MDMsIDI1MDcsIDI1MTQsIDI1MTksIDI1MjIsIDI1MjksIDI1MzUsIDI1MzksIDI1NDMsIDI1NDcsIDI1NTIsIDI1NTksIAotICAgIDI1NjQsIDI1NjksIDI1NzYsIDI1ODIsIDI1ODgsIDI1OTQsIDI2MDgsIDI2MjUsIDI2NDAsIDI2NTUsIDI2NjQsIDI2NjksIAotICAgIDI2NzMsIDI2NzgsIDI2ODMsIDI2ODcsIDI2OTksIDI3MDYsIDI3MTIsIDIyMTcsIDI3MTgsIDI3MjUsIDI3MzEsIDI3MzUsIAotICAgIDI3MzgsIDI3NDUsIDI3NTEsIDI3NTUsIDI3NTksIDI3NjMsIDIwNTQsIDI3NjcsIDI3NzIsIDI3NzcsIDI3ODEsIDI3ODksIAotICAgIDI3OTMsIDI3OTcsIDI4MDEsIDI4MDYsIDI4MTEsIDI4MTYsIDI4MjAsIDI4MjUsIDI4MzAsIDI4MzQsIDI4MzksIDI4NDMsIAotICAgIDI4NDYsIDI4NTAsIDI4NTQsIDI4NTksIDI4NjMsIDI4NjcsIDI4NzMsIDI4ODIsIDI4ODYsIDI4OTAsIDI4OTYsIDI5MDEsIAotICAgIDI5MDgsIDI5MTIsIDI5MjIsIDI5MjYsIDI5MzEsIDI5MzUsIDI5NDAsIDI5NDYsIDI5NTEsIDI5NTUsIDI5NTksIDI5NjMsIAotICAgIDI0MDYsIDI5NzEsIDI5NzYsIDI5ODIsIDI5ODcsIDI5OTEsIDI5OTYsIDMwMDEsIDMwMDUsIDMwMTEsIDMwMTYsIDMwMjIsIAotICAgIDMwMjYsIDMwMzIsIDMwMzcsIDMwNDIsIDMwNDcsIDMwNTIsIDMwNTcsIDMwNjIsIDMwNjcsIDMwNzIsIDMwNzcsIDMwODMsIAotICAgIDMwODgsIDEyMjcsIDgwLCAzMDk0LCAzMDk4LCAzMTAyLCAzMTA2LCAzMTExLCAzMTE1LCAzMTE5LCAzMTIzLCAzMTI3LCAKLSAgICAzMTMyLCAzMTM2LCAzMTQxLCAzMTQ1LCAzMTQ4LCAzMTUyLCAzMTU3LCAzMTYxLCAzMTY2LCAzMTcwLCAzMTc0LCAzMTc4LCAKLSAgICAzMTgzLCAzMTg3LCAzMTkwLCAzMjAzLCAzMjA3LCAzMjExLCAzMjE1LCAzMjE5LCAzMjIzLCAzMjI2LCAzMjMwLCAzMjM0LCAKLSAgICAzMjM5LCAzMjQzLCAzMjQ4LCAzMjUzLCAzMjU4LCAzMjYyLCAzMjY1LCAzMjY4LCAzMjc0LCAzMjc4LCAzMjgyLCAzMjg1LCAKLSAgICAzMjg5LCAzMjkzLCAzMjk2LCAzMzAyLCAzMzA3LCAzMzEyLCAzMzE4LCAzMzIzLCAzMzI4LCAzMzM0LCAzMzQwLCAzMzQ1LCAKLSAgICAzMzUwLCAzMzU1LCAxMDkxLCA1NDIsIDMzNjAsIDMzNjMsIDMzNjgsIDMzNzIsIDMzNzUsIDMzNzksIDMzODQsIDMzODksIAotICAgIDMzOTMsIDMzOTgsIDM0MDIsIDM0MDcsIDM0MTEsIDM0MTUsIDM0MjEsIDM0MjcsIDM0MzAsIDM0MzMsIDM0MzksIDM0NDYsIAotICAgIDM0NTMsIDM0NTksIDM0NjYsIDM0NzEsIDM0NzUsIDM0ODIsIDM0ODcsIDM0OTEsIDM1MDEsIDM1MDUsIDM1MDksIDM1MTQsIAotICAgIDM1MTksIDM1MjksIDIwNjUsIDM1MzQsIDM1MzgsIDM1NDEsIDM1NDcsIDM1NTIsIDM1NTgsIDM1NjQsIDM1NjksIDM1NzYsIAotICAgIDM1ODAsIDM1ODQsIDY1OCwgNjg4LCAzNTg4LCAzNTk1LCAzNjAyLCAzNjA5LCAzNjE1LCAzNjIxLCAzNjI2LCAzNjMwLCAKLSAgICAzNjM2LCAzNjQxLCAzNjQ1LCAyMDc0LCAzNjQ5LCAzNjU3LCA1ODMsIDM2NjMsIDM2NzQsIDM2NzgsIDM2ODgsIDIwNzksIAotICAgIDM2OTQsIDM2OTksIDM3MTQsIDM3MjAsIDM3MjcsIDM3MzcsIDM3NDMsIDM3NDgsIDM3NTQsIDM3NjAsIDM3NjMsIDM3NjcsIAotICAgIDM3NzIsIDM3NzksIDM3ODQsIDM3ODgsIDM3OTIsIDM3OTYsIDM4MDAsIDM4MDUsIDM4MTEsIDMxNTMsIDM4MTYsIDM4MjgsIAotICAgIDM4MzYsIDM4NDEsIDE1MjcsIDM4NDgsIDM4NTEsIDM4NTQsIDM4NTgsIDM4NjEsIDM4NjcsIDM4NzEsIDM4ODUsIDM4ODksIAotICAgIDM4OTIsIDM4OTYsIDM5MDIsIDM5MDgsIDM5MTMsIDM5MTcsIDM5MjEsIDM5MjcsIDM5MzgsIDM5NDQsIDM5NDksIDM5NTUsIAotICAgIDM5NTksIDM5NjcsIDM5NzcsIDM5ODMsIDM5ODgsIDM5OTcsIDQwMDUsIDQwMTIsIDQwMTYsIDQwMjIsIDQwMzEsIDQwNDAsIAotICAgIDQwNDQsIDQwNDksIDQwNTQsIDQwNTgsIDQwNjYsIDQwNzAsIDQwNzUsIDQwNzksIDIwODcsIDEzNjksIDQwODUsIDQwOTAsIAotICAgIDQwOTYsIDQxMDEsIDQxMDYsIDQxMTEsIDQxMTYsIDQxMjEsIDQxMjYsIDQxMzIsIDQxMzcsIDQxNDMsIDQxNDgsIDQxNTMsIAotICAgIDQxNTgsIDQxNjQsIDQxNjksIDQxNzQsIDQxNzksIDQxODQsIDQxOTAsIDQxOTUsIDQyMDEsIDQyMDYsIDQyMTEsIDQyMTYsIAotICAgIDQyMjEsIDQyMjYsIDQyMzEsIDQyMzcsIDQyNDIsIDQyNDcsIDMzNSwgNDM2LCA0MjUyLCA0MjU4LCA0MjYyLCA0MjY2LCAKLSAgICA0MjcxLCA0Mjc1LCA0Mjc5LCA0MjgyLCA0Mjg2LCA0MjkwLCA0Mjk0LCA0Mjk5LCA0MzAzLCA0MzA3LCA0MzEzLCA0MDgyLCAKLSAgICA0MzE4LCA0MzIxLCA0MzI4LCA0MzMyLCA0MzQ1LCA0MzQ5LCA0MzUzLCA0MzU3LCA0MzYxLCA0MzY1LCA0MzY5LCA0Mzc1LCAKLSAgICA0MzgyLCA0MzkwLCA0Mzk0LCA0NDAyLCA0NDExLCA0NDE3LCA0NDI5LCA0NDM0LCA0NDM3LCA0NDQxLCA0NDUxLCA0NDU5LCAKLSAgICA0NDY3LCA0NDczLCA0NDc3LCA0NDg3LCA0NDk3LCA0NTA1LCA0NTEyLCA0NTE5LCA0NTI1LCA0NTMxLCA0NTM4LCA0NTQyLCAKLSAgICA0NTQ5LCA0NTU5LCA0NTY5LCA0NTc3LCA0NTg0LCA0NTg5LCA0NTkzLCA0NjAxLCA0NjA2LCA0NjEzLCA0NjIxLCA0NjI2LCAKLSAgICA0NjMxLCA0NjM1LCA0NjQ5LCA0NjU0LCA0NjU5LCA0NjY2LCA0Njc1LCA0Njc4LCA0NjgyLCA0Njg2LCA0Njg5LCA0Njk0LCAKLSAgICA0Njk5LCA0NzA4LCA0NzE0LCA0NzIwLCA0NzI2LCA0NzMwLCA0NzQxLCA0NzUxLCA0NzY2LCA0NzgxLCA0Nzk2LCA0ODExLCAKLSAgICA0ODI2LCA0ODQxLCA0ODU2LCA0ODcxLCA0ODg2LCA0OTAxLCA0OTE2LCA0OTMxLCA0OTQ2LCA0OTYxLCA0OTc2LCA0OTkxLCAKLSAgICA1MDA2LCA1MDIxLCA1MDM2LCA1MDUxLCA1MDY2LCA1MDgxLCA1MDk2LCA1MTExLCA1MTI2LCA1MTQxLCA1MTU2LCA1MTcxLCAKLSAgICA1MTg2LCA1MjAxLCA1MjE2LCA1MjMxLCA1MjQ2LCA1MjYxLCA1Mjc2LCA1MjkxLCA1MzA2LCA1MzIxLCA1MzM2LCA1MzUxLCAKLSAgICA1MzY2LCA1MzgxLCA1Mzk2LCA1NDExLCA1NDI2LCA1NDQxLCA1NDU2LCA1NDcxLCA1NDg2LCA1NDk1LCA1NTA0LCA1NTA5LCAKLSAgICA1NTE1LCA1NTI1LCA1NTI5LCA1NTM0LCA1NTM5LCA1NTQ3LCA1NTUxLCA1NTU0LCA1NTU4LCAyOTE3LCA1NTYxLCA1NTY2LCAKLSAgICAzMTAsIDQ0NSwgNTU3MiwgNTU4MCwgNTU4NCwgNTU4OCwgNTU5MSwgNTU5NywgNTYwMSwgNTYwOSwgNTYxNSwgNTYyMCwgCi0gICAgNTYyNywgNTYzNCwgNTY0MCwgNTY0NSwgNTY1MiwgNTY1OCwgNTY2NiwgNTY3MCwgNTY3NSwgNTY4NywgNTY5OCwgNTcwNSwgCi0gICAgNTcxMSwgMzE3NSwgNTcxNSwgNTcyMSwgNTcyNiwgNTczMSwgNTczNiwgNTc0MiwgNTc0NywgNTc1MiwgNTc1NywgNTc2MiwgCi0gICAgNTc2OCwgNTc3MywgNTc3OCwgNTc4NCwgNTc4OSwgNTc5NSwgNTgwMCwgNTgwNiwgNTgxMSwgNTgxNywgNTgyMiwgNTgyNywgCi0gICAgNTgzMiwgNTgzNywgNTg0MiwgNTg0OCwgNTg1MywgNTg1OCwgNTg2MywgNTg2OSwgNTg3NSwgNTg4MSwgNTg4NywgNTg5MywgCi0gICAgNTg5OSwgNTkwNSwgNTkxMSwgNTkxNywgNTkyMywgNTkyOSwgNTkzNSwgNTk0MCwgNTk0NSwgNTk1MCwgNTk1NSwgNTk2MCwgCi0gICAgNTk2NSwgNTk3MCwgNTk3NSwgNTk4MSwgNTk4NywgNTk5MiwgNTk5OCwgNjAwNCwgNjAxMCwgNjAxNSwgNjAyMCwgNjAyNSwgCi0gICAgNjAzMCwgNjAzNiwgNjA0MiwgNjA0NywgNjA1MiwgNjA1NywgNjA2MiwgNjA2NywgNjA3MywgNjA3OCwgNjA4NCwgNjA5MCwgCi0gICAgNjA5NiwgNjEwMiwgNjEwOCwgNjExNCwgNjEyMCwgNjEyNiwgNjEzMiwgMjA5NiwgNTU5MCwgNjEzNywgNjE0MSwgNjE0NSwgCi0gICAgNjE0OCwgNjE1NSwgNjE1OCwgNjE2NiwgNjE3MSwgNjE3NiwgNjE2NywgNjE4MSwgNjE2OCwgNjE4NSwgNjE5MSwgNjE5NywgCi0gICAgNjIwMiwgNjIwNywgNjIxNCwgNjIyMiwgNjIyNywgNjIzMSwgNjIzNCwgNjIzOCwgMjEyNywgNTUxLCA2MjQyLCA2MjQ2LCAKLSAgICA2MjUxLCA2MjU3LCA2MjYyLCA2MjY2LCA2MjY5LCA2MjczLCA2Mjc5LCA2Mjg0LCA2Mjg4LCA2Mjk1LCA2Mjk5LCA2MzAzLCAKLSAgICA2MzA3LCA5NDYsIDc0NywgNjMxMCwgNjMxOCwgNjMyNSwgNjMzMiwgNjMzOCwgNjM0NSwgNjM1MywgNjM2MCwgNjM2NywgCi0gICAgNjM3MiwgNjM4NCwgMTI0NywgMTM3NywgMTM4MiwgNjM5NSwgMTM4NywgNjM5OSwgNjQwMywgNjQxMiwgNjQyMCwgNjQyOSwgCi0gICAgNjQzNSwgNjQ0MCwgNjQ0NCwgNjQ1MCwgNjQ1NSwgNjQ2MiwgNjQ2NiwgNjQ3NSwgNjQ4NCwgNjQ5MywgNjUwMiwgNjUwNywgCi0gICAgNjUxMiwgNjUyNCwgNjUyOSwgNjUzNywgMjE3OCwgNjU0MSwgNjU0MywgNjU0OCwgNjU1MiwgNjU2MSwgNjU2OSwgMTM5MSwgCi0gICAgMTMzLCAzNDAzLCAzNDA4LCA2NTc1LCA2NTc5LCA2NTg4LCA2NTk0LCA2NTk5LCA2NjAyLCA2NjExLCAyNjUyLCA2NjE3LCAKLSAgICA2NjI1LCA2NjI5LCA2NjMzLCAyMTkxLCA2NjM3LCA2NjQyLCA2NjQ5LCA2NjU1LCA2NjYxLCA2NjY0LCA2NjY2LCA2NjY5LCAKLSAgICA2Njc3LCA2Njg1LCA2NjkzLCA2Njk2LCA2NzAxLCA2MTc4LCA2NzA0LCA2NzA2LCA2NzExLCA2NzE2LCA2NzIxLCA2NzI2LCAKLSAgICA2NzMxLCA2NzM2LCA2NzQxLCA2NzQ2LCA2NzUxLCA2NzU2LCA2NzYyLCA2NzY3LCA2NzcyLCA2Nzc3LCA2NzgzLCA2Nzg4LCAKLSAgICA2NzkzLCA2Nzk4LCA2ODAzLCA2ODA4LCA2ODEzLCA2ODE5LCA2ODI0LCA2ODI5LCA2ODM0LCA2ODM5LCA2ODQ0LCA2ODQ5LCAKLSAgICA2ODU0LCA2ODU5LCA2ODY0LCA2ODY5LCA2ODc0LCA2ODc5LCA2ODg0LCA2ODg5LCA2ODk0LCA2ODk5LCA2OTA0LCA2OTEwLCAKLSAgICA2OTE2LCA2OTIxLCA2OTI2LCA2OTMxLCA2OTM2LCA2OTQxLCAyMjE1LCAyMjIyLCAyMjI4LCA2OTQ2LCA2OTUyLCAyMjU0LCAKLSAgICAyMjYwLCA2OTYwLCA2OTY0LCA2OTY5LCA2OTczLCA2OTc3LCA2OTgxLCA2OTg2LCA2OTkwLCA2OTk1LCA2OTk5LCA3MDAyLCAKLSAgICA3MDA1LCA3MDExLCA3MDE3LCA3MDIzLCA3MDI5LCA3MDM1LCA3MDQxLCA3MDQ3LCA3MDUxLCA3MDU1LCA3MDU5LCA3MDYzLCAKLSAgICA3MDY3LCA3MDcyLCA3MDc5LCA3MDkwLCA3MDk4LCA3MTA4LCA3MTE1LCA3MTIwLCA3MTI0LCA3MTM1LCA3MTQ4LCA3MTU5LCAKLSAgICA3MTcyLCA3MTgzLCA3MTk1LCA3MjA3LCA3MjE5LCA3MjMyLCA3MjQ1LCA3MjUyLCA3MjU4LCA3MjcyLCA3Mjc5LCA3Mjg1LCAKLSAgICA3Mjg5LCA3Mjk0LCA3Mjk4LCA3MzA1LCA3MzEzLCA3MzE3LCA3MzIzLCA3MzI5LCA3MzM5LCA3MzQzLCA3MzQ4LCA3MzUzLCAKLSAgICA3MzYwLCA3MzY2LCA3Mzc2LCA2MzQwLCA3MzgyLCA3Mzg2LCA3MzkzLCA3NDYsIDczOTcsIDc0MDEsIDc0MDYsIDc0MTEsIAotICAgIDc0MTYsIDc0MjAsIDc0MjYsIDc0MzQsIDc0NDAsIDc0NDQsIDc0NTAsIDc0NjAsIDc0NjQsIDc0NzAsIDc0NzUsIDc0NzksIAotICAgIDc0ODUsIDc0OTEsIDIxMTksIDc0OTYsIDc0OTgsIDc1MDYsIDc1MTUsIDc1MTksIDc1MjUsIDc1MzAsIDc1MzUsIDc1NDAsIAotICAgIDc1NDUsIDc1NTEsIDc1NTYsIDM5MjMsIDc1NjEsIDc1NjUsIDc1NzEsIDc1NzYsIDc1ODIsIDc1ODcsIDc1OTIsIDc1OTgsIAotICAgIDc2MDMsIDc1MjAsIDc2MDksIDc2MTMsIDc2MjAsIDc2MjYsIDc2MzEsIDc2MzUsIDQ2NDUsIDc2NDAsIDc2NDksIDY2NDUsIAotICAgIDY2NTIsIDc2NTQsIDI4MDMsIDc2NTgsIDc2NjMsIDc2NjgsIDc1MzEsIDc2NzIsIDc1MzYsIDc1NDEsIDc2NzcsIDc2ODQsIAotICAgIDc2OTEsIDc2OTcsIDc3MDMsIDc3MDksIDc3MTQsIDc3MTksIDc3MjQsIDc1NDYsIDc1NTIsIDc3MzAsIDc3MzYsIDc3NDEsIAotICAgIDc3NDksIDc1NTcsIDc3NTQsIDEwMjgsIDc3NTcsIDc3NjUsIDc3NzEsIDc3NzcsIDc3ODYsIDc3OTQsIDc3OTksIDc4MDUsIAotICAgIDc4MTMsIDc4MjAsIDc4MzUsIDc4NTIsIDc4NzEsIDc4ODAsIDc4ODgsIDc5MDMsIDc5MTQsIDc5MjQsIDc5MzQsIDc5NDIsIAotICAgIDc5NDgsIDc5NjAsIDc5NjksIDc5NzcsIDc5ODQsIDc5OTEsIDc5OTcsIDgwMDIsIDgwMTAsIDgwMjAsIDgwMjcsIDgwMzcsIAotICAgIDgwNDcsIDgwNTcsIDgwNjUsIDgwNzIsIDgwODEsIDgwOTEsIDgxMDUsIDgxMjAsIDgxMjksIDgxMzcsIDgxNDIsIDgxNDYsIAotICAgIDgxNTUsIDgxNjEsIDgxNjYsIDgxNzYsIDgxODYsIDgxOTYsIDgyMDEsIDgyMDUsIDgyMTQsIDgyMTksIDgyMjksIDgyNDAsIAotICAgIDgyNTMsIDgyNjYsIDgyNzgsIDgyODYsIDgyOTEsIDgyOTUsIDgzMDEsIDgzMDYsIDgzMTQsIDgzMjIsIDgzMjksIDgzMzQsIAotICAgIDgzNDIsIDgzNDgsIDgzNTEsIDgzNTUsIDgzNjEsIDgzNjksIDgzNzQsIDgzNzgsIDgzODYsIDgzOTUsIDg0MDMsIDg0MDksIAotICAgIDg0MTMsIDg0MjAsIDg0MzEsIDg0MzUsIDg0MzgsIDg0NDQsIDg0NDksIDg0NTMsIDg0NTksIDg0NjYsIDg0NzIsIDg0NzcsIAotICAgIDg0ODQsIDg0OTEsIDg0OTgsIDg1MDUsIDg1MTIsIDg1MTksIDg1MjQsIDc4NDgsIDg1MjksIDg1MzUsIDg1NDIsIDg1NDksIAotICAgIDg1NTQsIDg1NjEsIDg1NzAsIDg1NzQsIDg1ODYsIDg1OTAsIDg1OTMsIDg1OTcsIDg2MDEsIDg2MDUsIDg2MDksIDg2MTUsIAotICAgIDg2MjAsIDg2MjYsIDg2MzEsIDg2MzYsIDg2NDIsIDg2NDcsIDg2NTIsIDczNTYsIDg2NTcsIDg2NjEsIDg2NjUsIDg2NjksIAotICAgIDg2NzQsIDg2NzksIDg2ODcsIDg2OTMsIDg2OTcsIDg3MDEsIDg3MDgsIDg3MTMsIDg3MjEsIDg3MjYsIDg3MzAsIDg3MzMsIAotICAgIDg3MzksIDg3NDYsIDg3NTAsIDg3NTMsIDg3NTgsIDg3NjIsIDM5NjIsIDg3NjgsIDg3NzcsIDM2LCA4Nzg1LCA4NzkxLCAKLSAgICA4Nzk2LCA3MzcxLCA4ODAxLCA4ODA3LCA4ODEyLCA4ODE2LCA4ODE5LCA4ODM0LCA4ODUzLCA4ODY1LCA4ODc4LCA4ODkxLCAKLSAgICA4OTA0LCA4OTE4LCA4OTMxLCA4OTQ2LCA4OTUzLCA4OTU5LCA4OTYzLCA4OTc3LCA4OTgyLCA4OTg4LCA4OTkzLCA5MDAxLCAKLSAgICA5MDA2LCA2NDcxLCA5MDExLCA5MDE0LCA5MDIxLCA5MDI2LCA5MDMwLCAyODA4LCA5NTUsIDkwMzYsIDkwNDAsIDkwNDYsIAotICAgIDkwNTIsIDkwNTcsIDkwNjMsIDkwNjgsIDc1NjYsIDkwNzQsIDkwODAsIDkwODUsIDkwOTAsIDkwOTgsIDkxMDQsIDkxMTcsIAotICAgIDkxMjUsIDkxMzIsIDc1NzIsIDkxMzgsIDkxNDYsIDkxNTQsIDkxNjEsIDkxNzQsIDkxODYsIDkxOTYsIDkyMDMsIDkyMTAsIAotICAgIDkyMTksIDkyMjgsIDkyMzYsIDkyNDMsIDkyNDgsIDkyNTQsIDc1NzcsIDkyNTksIDkyNjUsIDc1ODMsIDkyNzAsIDkyNzMsIAotICAgIDkyODAsIDkyODYsIDkyOTksIDcwODMsIDkzMTAsIDkzMTYsIDkzMjUsIDkzMzMsIDkzNDAsIDkzNDYsIDkzNTIsIDkzNTcsIAotICAgIDkzNjEsIDkzNjYsIDg4MjYsIDkzNzIsIDc1ODgsIDkzNzksIDkzODQsIDkzOTEsIDkzOTcsIDk0MDMsIDk0MDgsIDk0MTYsIAotICAgIDk0MjQsIDk0MzEsIDk0MzUsIDk0NDksIDk0NTksIDk0NjQsIDk0NjgsIDk0NzksIDk0ODUsIDk0OTAsIDk0OTUsIDc1OTMsIAotICAgIDc1OTksIDk0OTksIDk1MDIsIDk1MDcsIDk1MTksIDk1MjYsIDk1MzEsIDk1MzUsIDk1NDAsIDk1NDQsIDk1NTEsIDk1NTcsIAotICAgIDc2MDQsIDc1MjEsIDk1NjQsIDI4MTMsIDgsIDk1NzEsIDk1NzYsIDk1ODAsIDk1ODYsIDk1OTQsIDk2MDQsIDk2MDksIAotICAgIDk2MTQsIDk2MjEsIDk2MjgsIDk2MzIsIDk2NDMsIDk2NTMsIDk2NjIsIDk2NzQsIDk2NzksIDk2ODMsIDk2OTEsIDk3MDUsIAotICAgIDk3MDksIDk3MTIsIDk3MjAsIDk3MjcsIDk3MzUsIDk3MzksIDk3NTAsIDk3NTQsIDk3NjEsIDk3NjYsIDk3NzAsIDk3NzYsIAotICAgIDk3ODEsIDk3ODUsIDk3OTEsIDk3OTYsIDk4MDcsIDk4MTEsIDk4MTQsIDk4MjAsIDk4MjUsIDk4MzEsIDk4MzcsIDk4NDQsIAotICAgIDk4NTUsIDk4NjUsIDk4NzUsIDk4ODQsIDk4OTEsIDc2MTQsIDc2MjEsIDc2MjcsIDc2MzIsIDk4OTcsIDk5MDMsIDc2MzYsIAotICAgIDk5MDksIDk5MTIsIDk5MTksIDk5MjQsIDk5MzksIDk5NTUsIDk5NzAsIDk5NzgsIDk5ODQsIDEwNDMsIDQwMCwgOTk4OSwgCi0gICAgOTk5NywgMTAwMDQsIDEwMDEwLCAxMDAxNSwgMTAwMjAsIDc2NDEsIDEwMDIyLCAxMDAyNiwgMTAwMzEsIDEwMDM1LCAKLSAgICAxMDA0NSwgMTAwNTAsIDEwMDU0LCAxMDA2MywgMTAwNjcsIDEwMDcwLCAxMDA3NywgMTAwODEsIDEwMDg0LCAxMDA5MiwgCi0gICAgMTAwOTksIDEwMTA3LCAxMDExMSwgMTAxMTgsIDEwMTI3LCAxMDEzMCwgMTAxMzQsIDEwMTM4LCAxMDE0NCwgMTAxNDgsIAotICAgIDEwMTUyLCAxMDE1NiwgMTAxNjIsIDEwMTcyLCAxMDE3NiwgMTAxODQsIDEwMTg4LCAxMDE5NSwgMTAxOTksIDEwMjA0LCAKLSAgICAxMDIwOCwgMTAyMTUsIDEwMjIxLCAxMDIyOSwgMTAyMzUsIDEwMjQ1LCAxMDI1MCwgMTAyNTUsIDEwMjU5LCAxMDI2NywgCi0gICAgMzgyMiwgMTAyNzUsIDEwMjgwLCAxMDI4NCwgMTAyODgsIDEwMjkxLCAxMDI5OSwgMTAzMDYsIDEwMzEwLCA0NDY5LCAKLSAgICAxMDMxNCwgMTAzMTksIDEwMzIzLCAxMDMzNCwgMTAzMzksIDEwMzQ1LCAxMDM0OSwgMTAzNTIsIDEwMzYwLCAxMDM2NSwgCi0gICAgMTAzNzAsIDEwMzc3LCAxMDM4MiwgNzY1MCwgMTAzODcsIDEwMzkxLCAxNjg1LCA0NjE5LCAxMDM5OCwgMTA0MDMsIDEwNDA4LCAKLSAgICAxMDQxMywgMTA0MTksIDEwNDI0LCAxMDQzMCwgMTA0MzUsIDEwNDQwLCAxMDQ0NSwgMTA0NTAsIDEwNDU1LCAxMDQ2MCwgCi0gICAgMTA0NjUsIDEwNDcwLCAxMDQ3NSwgMTA0ODAsIDEwNDg1LCAxMDQ5MCwgMTA0OTUsIDEwNTAwLCAxMDUwNSwgMTA1MTAsIAotICAgIDEwNTE2LCAxMDUyMSwgMTA1MjYsIDEwNTMxLCAxMDUzNiwgMTA1NDEsIDEwNTQ3LCAxMDU1MiwgMTA1NTcsIDEwNTYzLCAKLSAgICAxMDU2OCwgMTA1NzQsIDEwNTc5LCAxMDU4NSwgMTA1OTAsIDEwNTk1LCAxMDYwMCwgMTA2MDUsIDEwNjExLCAxMDYxNiwgCi0gICAgMTA2MjEsIDEwNjI2LCA3MjQsIDEzOSwgMTA2MzQsIDEwNjM4LCAxMDY0MywgMTA2NDgsIDEwNjUyLCAxMDY1NiwgMTA2NjAsIAotICAgIDEwNjY1LCAxMDY2OSwgMTA2NzQsIDEwNjc4LCAxMDY4MSwgMTA2ODUsIDEwNjg5LCAxMDY5NCwgMTA3MDQsIDEwNzEwLCAKLSAgICAxMDcxOCwgMTA3MjIsIDEwNzI2LCAxMDczMywgMTA3NDEsIDEwNzUwLCAxMDc2MSwgMTA3NjgsIDEwNzc1LCAxMDc4NCwgCi0gICAgMTA3OTMsIDEwODAxLCAxMDgxMCwgMTA4MTksIDEwODI4LCAxMDgzNywgMTA4NDcsIDEwODU3LCAxMDg2NywgMTA4NzcsIAotICAgIDEwODg3LCAxMDg5NiwgMTA5MDYsIDEwOTE2LCAxMDkyNiwgMTA5MzYsIDEwOTQ2LCAxMDk1NiwgMTA5NjYsIDEwOTc1LCAKLSAgICAxMDk4NSwgMTA5OTUsIDExMDA1LCAxMTAxNSwgMTEwMjUsIDExMDM1LCAxMTA0NCwgMTEwNTQsIDExMDY0LCAxMTA3NCwgCi0gICAgMTEwODQsIDExMDk0LCAxMTEwNCwgMTExMTQsIDExMTI0LCAxMTEzNCwgMTExNDMsIDExMTUzLCAxMTE2MywgMTExNzMsIAotICAgIDExMTgzLCAxMTE5MywgMTEyMDMsIDExMjEzLCAxMTIyMywgMTEyMzMsIDExMjQzLCAxMTI1MiwgMTEyNTgsIDExMjYyLCAKLSAgICAxMTI2NSwgMTEyNjksIDExMjc0LCAxMTI4MSwgMTEyODcsIDExMjkyLCAxMTI5NiwgMTEzMDEsIDExMzEwLCAxMTMxOCwgCi0gICAgMTEzMjMsIDExMzI3LCAxMTMzMSwgMTEzMzcsIDExMzQyLCAxMTM0OCwgNzY1OSwgMTEzNTMsIDExMzU4LCAxMTM2NywgCi0gICAgNzY2NCwgMTEzNzIsIDExMzc1LCAxMTM4MSwgMTEzODksIDc2NjksIDExMzk2LCAxMTQwMCwgMTE0MDQsIDExNDA4LCAKLSAgICAxMTQxOCwgMTE0MjQsIDExNDI5LCAxMTQzOCwgMTE0NDYsIDExNDUzLCAxMTQ2MCwgMTE0NjUsIDExNDcyLCAxMTQ3NywgCi0gICAgMTE0ODEsIDExNDg0LCAxMTQ5NSwgMTE1MDUsIDExNTE0LCAxMTUyMiwgMTE1MzMsIDExNTQ1LCAxMTU1NSwgMTE1NjAsIAotICAgIDExNTY0LCAxMTU2OSwgMTE1NzQsIDExNTc4LCAxMTU4NCwgMTE1OTIsIDExNTk5LCAxMTYxMCwgMTE2MTUsIDExNjI1LCAKLSAgICAxMTYzNCwgMTE2MzgsIDExNjQxLCAxMTY0OCwgMTE2NTgsIDExNjY3LCAxMTY3NCwgMTE2NzgsIDExNjg1LCAxMTY5MSwgCi0gICAgMTE2OTYsIDExNzAxLCAxMTcwNSwgMTE3MTQsIDExNzE5LCAxMTcyNSwgMTE3MjksIDExNzM0LCAxMTczOCwgMTE3NDcsIAotICAgIDExNzU1LCAxMTc2MywgMTE3NzAsIDExNzc4LCAxMTc5MCwgMTE4MDEsIDExODExLCAxMTgxOCwgMTE4MjQsIDExODMzLCAKLSAgICAxMTg0NCwgMTE4NTMsIDExODY1LCAxMTg3NywgMTE4ODksIDExODk5LCAxMTkwOCwgMTE5MTcsIDExOTI1LCAxMTkzMiwgCi0gICAgMTE5NDEsIDExOTQ5LCAxMTk1NSwgMTE5NjEsIDExOTY2LCA2MTk5LCAxMTk3MCwgMTE5NzIsIDExOTc3LCAxMTk4MywgCi0gICAgMTE5OTIsIDEyMDAwLCAxMjAwNywgMTIwMTYsIDEyMDI1LCAxMjAzNCwgMTIwNDMsIDEyMDUyLCAxMjA2MSwgMTIwNzAsIAotICAgIDEyMDc5LCAxMjA4OSwgMTIwOTksIDEyMTA4LCAxMjExNCwgMTIxMjEsIDEyMTM1LCAxMjE0MiwgMTIxNTAsIDEyMTU5LCAKLSAgICAxMjE2NSwgMTIxNzQsIDEyMTgzLCAxMjE5NCwgMTIyMDQsIDEyMjEyLCAxMjIxOSwgMTIyMjcsIDEyMjM2LCAxMjI0OSwgCi0gICAgMTIyNTcsIDEyMjY0LCAxMjI3NywgMTIyODMsIDEyMjg5LCAxMjI5OSwgMTIzMDgsIDEyMzE3LCAxMjMyMiwgMTIzMjYsIAotICAgIDEyMzMyLCAxMjMzOCwgMTIzNDUsIDczNzAsIDEyMzUwLCAxMjM1NSwgMTIzNjIsIDEyMzY3LCAxMjM3MiwgMTIzNzYsIAotICAgIDEyMzg0LCAxMjM5MCwgMTIzOTUsIDEyNDAzLCAxMjQxMSwgMTI0MTgsIDEyNDI2LCAxMjQzMiwgMTI0NDAsIDEyNDQ4LCAKLSAgICAxMjQ1MywgMTI0NTksIDEyNDY2LCAxMjQ3MiwgMTI0NzcsIDEyNDgxLCAxMjQ5MiwgMTI1MDAsIDEyNTA2LCAxMjUxMSwgCi0gICAgMTI1MjAsIDEyNTI2LCAxMjUzMSwgMTI1NDAsIDEyNTU0LCAzNzgxLCAxMjU1OCwgMTI1NjMsIDEyNTY4LCAxMjU3NCwgCi0gICAgMTI1NzksIDEyNTg0LCAxMjU4OCwgMTI1OTMsIDEyNTk4LCA2MTk4LCAxMjYwMywgMTI2MDgsIDEyNjEzLCAxMjYxOCwgCi0gICAgMTI2MjIsIDEyNjI3LCAxMjYzMiwgMTI2MzcsIDEyNjQzLCAxMjY0OSwgMTI2NTQsIDEyNjU4LCAxMjY2MywgMTI2NjgsIAotICAgIDEyNjczLCA3NjczLCAxMjY3OCwgMTI2ODMsIDEyNjg4LCAxMjY5MywgMTI3MTAsIDEyNzI4LCAxMjc0MCwgMTI3NTMsIAotICAgIDEyNzcwLCAxMjc4NiwgMTI4MDMsIDEyODEzLCAxMjgzMiwgMTI4NDMsIDEyODU0LCAxMjg2NSwgMTI4NzYsIDEyODg4LCAKLSAgICAxMjg5OSwgMTI5MTAsIDEyOTI3LCAxMjkzOCwgMTI5NDksIDEyOTU0LCAyMzM1LCAxMjk1OCwgMTI5NjEsIDEyOTY3LCAKLSAgICAxMjk3NSwgMTI5ODMsIDEyOTg4LCAxMjk5NiwgMTMwMDQsIDEzMDExLCAxMzAxNiwgMTMwMjIsIDEzMDI5LCAxMzAzNywgCi0gICAgMTMwNDQsIDEzMDU2LCAxMzA2NCwgMTMwNjksIDk5MzMsIDEzMDc1LCAxMzA4NCwgMTMwOTMsIDEzMTAxLCAxMzEwOCwgCi0gICAgMTMxMTQsIDEzMTIyLCAxMzEyOSwgMTMxMzUsIDEzMTQyLCAxMzE0OCwgMTMxNTcsIDEzMTY1LCAxMzE3NSwgMTMxODIsIAotICAgIDEzMTg4LCAxMzE5NiwgMTMyMDIsIDEzMjEwLCAxMzIxNywgMTMyMzAsIDEzMjM3LCAxMzI0NiwgMTMyNTUsIDEzMjY0LCAKLSAgICAxMzI3MiwgMTMyODIsIDEzMjg5LCAxMzI5NCwgMzQ5NSwgMTMzMDEsIDEzMzA2LCAxMzMwOSwgMTI2MDQsIDEzMzEzLCAKLSAgICAxMzMxOSwgMTMzMjMsIDEzMzMxLCAxMzM0MywgMTMzNDgsIDEzMzU1LCAxMzM2MSwgMTMzNjYsIDEzMzczLCAxMjYwOSwgCi0gICAgMTMzNzcsIDEzMzgxLCAxMjYxNCwgMTMzODUsIDEzMzg5LCAxMzM5MywgMTM0MDAsIDEzNDA1LCAxMzQwOSwgMTM0MTMsIAotICAgIDEzNDIxLCAxMzQyOCwgMTM0MzUsIDEzNDUyLCAxMzQ2MSwgMTM0NjUsIDEzNDY4LCAxMzQ3NiwgMTM0ODIsIDEzNDg3LCAKLSAgICAzNTczLCAxMzQ5MSwgMTM0OTMsIDEzNTAxLCAxMzUwOCwgMTM1MTgsIDEzNTMwLCAxMzUzNSwgMTM1NDEsIDEzNTQ2LCAKLSAgICAxMzU1MCwgMTM1NTYsIDEzNTYxLCAxMzU2NywgMTM1NzAsIDEzNTc3LCAxMzU4NSwgMTM1OTIsIDEzNTk4LCAxMzYwNCwgCi0gICAgMTM2MDksIDEzNjE2LCAxMzYyMiwgMTM2MjcsIDEzNjM0LCAxMzYzOCwgMTM2NDQsIDEzNjQ4LCAxMzY1NSwgMTM2NjEsIAotICAgIDEzNjY3LCAxMzY3NSwgMTM2ODEsIDEzNjg2LCAxMzY5MiwgMTM3MDAsIDEzNzA4LCAxMzcxNCwgMTM3MjAsIDEzNzI1LCAKLSAgICAxMzczMiwgMTM3MzcsIDEzNzQxLCAxMzc0NywgMTM3NTIsIDEzNzU5LCAxMzc2NCwgMTM3NzAsIDEzNzczLCAxMzc3OSwgCi0gICAgMTM3ODUsIDEzNzg4LCAxMzc5MiwgMTM4MDQsIDEzODEwLCAxMzgxNSwgMTM4MjIsIDEzODI4LCAxMzgzNCwgMTM4NDUsIAotICAgIDEzODU1LCAxMzg2NCwgMTM4NzIsIDEzODc5LCAxMzg5MCwgMTM5MDAsIDEzOTEwLCAxMzkxOCwgMTM5MjEsIDEyNjI4LCAKLSAgICAxMzkyNiwgMTM5MzEsIDEyNjMzLCAxMjc1OCwgMTM5MzksIDEzOTUyLCAxMzk2NywgMTM5NzgsIDEyNzc1LCAxMzk5NiwgCi0gICAgMTQwMDksIDE0MDIyLCAxNDAzMywgODg0MSwgMTQwNDQsIDE0MDU3LCAxNDA3NiwgMTQwODcsIDE0MDk4LCAxNDEwOSwgCi0gICAgMjYwMywgMTQxMjIsIDE0MTI2LCAxNDEzNCwgMTQxNDUsIDE0MTUyLCAxNDE1OCwgMTQxNjYsIDE0MTcwLCAxNDE3NiwgCi0gICAgMTQxNzksIDE0MTg5LCAxNDE5NywgMTQyMDQsIDE0MjEyLCAxNDIyMiwgMTQyMjcsIDE0MjM0LCAxNDIzOSwgMTQyNDYsIAotICAgIDE0MjU3LCAxNDI2NywgMTQyNzMsIDE0Mjc4LCAxNDI4MywgMTQyODcsIDE0MjkxLCAxNDI5NywgMTQzMDMsIDE0MzA4LCAKLSAgICAxNDMxMywgMTQzMTgsIDE0MzIyLCAxMjYzOCwgMTI2NDQsIDE0MzI2LCAxMjY1MCwgMTQzMzEsIDE0MzM5LCAxNDM0OCwgCi0gICAgMTQzNTUsIDc1NDIsIDE0MzU5LCAxNDM2MSwgMTQzNjYsIDE0MzcxLCAxNDM3NywgMTQzODIsIDE0Mzg3LCAxNDM5MiwgCi0gICAgMTQzOTcsIDE0NDAxLCAxNDQwNywgMTQ0MTMsIDE0NDE4LCAxNDQyNCwgMTQ0MjksIDE0NDM0LCAxNDQ0MCwgMTQ0NDUsIAotICAgIDE0NDUwLCAxNDQ1NSwgMTQ0NjEsIDE0NDY2LCAxNDQ3MSwgMTQ0NzcsIDE0NDgzLCAxNDQ4OCwgMTQ0OTMsIDE0NTAwLCAKLSAgICAxNDUwNiwgMTQ1MTcsIDE0NTI0LCAxNDUyOSwgMTQ1MzMsIDE0NTM3LCAxNDU0MCwgMTQ1NDgsIDE0NTUzLCAxNDU2MCwgCi0gICAgMTQ1NjcsIDE0NTcyLCAxNDU3NywgMTQ1ODQsIDE0NTk0LCAxNDU5OSwgMTQ2MDYsIDE0NjEyLCAxNDYyMiwgMTQ2MzIsIAotICAgIDE0NjQ2LCAxNDY2MCwgMTQ2NzQsIDE0Njg4LCAxNDcwMywgMTQ3MTgsIDE0NzM1LCAxNDc1MywgMTQ3NjYsIDE0NzcyLCAKLSAgICAxNDc3NywgMTQ3ODIsIDE0Nzg2LCAxNDc5MSwgMTQ3OTksIDE0ODA1LCAxNDgxMCwgMTQ4MTUsIDE0ODE5LCAxNDgyNCwgCi0gICAgMTQ4MjgsIDE0ODMzLCAxNDgzNywgMTQ4NDgsIDE0ODU0LCAxNDg1OSwgMTQ4NjQsIDE0ODcxLCAxNDg3NiwgMTQ4ODAsIAotICAgIDE0ODg1LCAxNDg5MCwgMTQ4OTYsIDE0OTAzLCAxNDkwOSwgMTQ5MTQsIDE0OTE4LCAxNDkyNCwgMTQ5MjksIDE0OTM0LCAKLSAgICAxNDkzOCwgMTQ5NDQsIDE0OTQ5LCAxNDk1NCwgMTQ5NjEsIDE0OTY2LCAxMTQyMCwgMTQ5NzAsIDE0OTc1LCAxNDk3OSwgCi0gICAgMTQ5ODQsIDE0OTkwLCAxNDk5NiwgMTUwMDMsIDE1MDEzLCAxNTAyMSwgMTUwMjgsIDE1MDMzLCAxNTAzNywgMTUwNDYsIAotICAgIDE1MDU0LCAxNTA2MSwgMTUwNjgsIDE1MDc0LCAxNTA4MCwgMTUwODUsIDE1MDkwLCAxNTA5NiwgMTUxMDEsIDE1MTA3LCAKLSAgICAxNTExMiwgMTUxMTgsIDE1MTI0LCAxNTEzMSwgMTUxMzcsIDE1MTQyLCAxNTE0NywgNzcxNSwgMTUxNTYsIDE1MTU5LCAKLSAgICAxNTE2NSwgMTUxNzAsIDE1MTc1LCAxNTE4NSwgMTUxOTIsIDE1MTk4LCAxNTIwMywgMTUyMDksIDE1MjE0LCAxNTIyMCwgCi0gICAgMTUyMjUsIDE1MjMxLCAxNTIzNywgMTUyNDIsIDE1MjUwLCAxNTI1NywgMTUyNjIsIDE1MjY3LCAxNTI3MywgMTUyNzgsIAotICAgIDE1MjgyLCAxNTI5MSwgMTUzMDIsIDE1MzA5LCAxNTMxNywgMTUzMjMsIDE1MzMwLCAxNTMzNiwgMTUzNDEsIDE1MzQ1LCAKLSAgICAxNTM1MSwgMTUzNTYsIDE1MzYxLCAxNTM2NiwgNzcyMCwgNjIyMywgMjgyNywgMTUzNzAsIDE1Mzc0LCAxNTM3OCwgMTUzODIsIAotICAgIDE1Mzg2LCAxNTM4OSwgMTUzOTYsIDE1NDA0LCAxMjY2NCwgMTU0MTEsIDE1NDIxLCAxNTQyOSwgMTU0MzYsIDE1NDQ0LCAKLSAgICAxNTQ1NCwgMTU0NjMsIDE1NDc2LCAxNTQ4MSwgMTU0ODYsIDE1NDk0LCAxNTUwMSwgMTE1MTAsIDExNTE5LCAxNTUwOCwgCi0gICAgMTU1MTgsIDE1NTMzLCAxNTUzOSwgMTU1NDYsIDE1NTUzLCAxNTU1OSwgMTU1NjksIDE1NTc5LCAxMjY2OSwgMTU1ODgsIAotICAgIDE1NTk0LCAxNTYwMCwgMTU2MDgsIDE1NjE2LCAxNTYyMSwgMTU2MzAsIDE1NjM4LCAxNTY1MCwgMTU2NjAsIDE1NjcwLCAKLSAgICAxNTY4MCwgMTU2ODksIDE1NzAxLCAxNTcxMSwgMTU3MjEsIDE1NzMyLCAxNTczNywgMTU3NDksIDE1NzYxLCAxNTc3MywgCi0gICAgMTU3ODUsIDE1Nzk3LCAxNTgwOSwgMTU4MjEsIDE1ODMzLCAxNTg0NSwgMTU4NTcsIDE1ODY4LCAxNTg4MCwgMTU4OTIsIAotICAgIDE1OTA0LCAxNTkxNiwgMTU5MjgsIDE1OTQwLCAxNTk1MiwgMTU5NjQsIDE1OTc2LCAxNTk4OCwgMTU5OTksIDE2MDExLCAKLSAgICAxNjAyMywgMTYwMzUsIDE2MDQ3LCAxNjA1OSwgMTYwNzEsIDE2MDgzLCAxNjA5NSwgMTYxMDcsIDE2MTE5LCAxNjEzMCwgCi0gICAgMTYxNDIsIDE2MTU0LCAxNjE2NiwgMTYxNzgsIDE2MTkwLCAxNjIwMiwgMTYyMTQsIDE2MjI2LCAxNjIzOCwgMTYyNTAsIAotICAgIDE2MjYxLCAxNjI3MywgMTYyODUsIDE2Mjk3LCAxNjMwOSwgMTYzMjEsIDE2MzMzLCAxNjM0NSwgMTYzNTcsIDE2MzY5LCAKLSAgICAxNjM4MSwgMTYzOTIsIDE2NDA0LCAxNjQxNiwgMTY0MjgsIDE2NDQwLCAxNjQ1MiwgMTY0NjQsIDE2NDc2LCAxNjQ4OCwgCi0gICAgMTY1MDAsIDE2NTEyLCAxNjUyMywgMTY1MzUsIDE2NTQ3LCAxNjU1OSwgMTY1NzEsIDE2NTgzLCAxNjU5NSwgMTY2MDcsIAotICAgIDE2NjE5LCAxNjYzMSwgMTY2NDMsIDE2NjU0LCAxNjY2NiwgMTY2NzgsIDE2NjkwLCAxNjcwMiwgMTY3MTUsIDE2NzI4LCAKLSAgICAxNjc0MSwgMTY3NTQsIDE2NzY3LCAxNjc4MCwgMTY3OTMsIDE2ODA1LCAxNjgxOCwgMTY4MzEsIDE2ODQ0LCAxNjg1NywgCi0gICAgMTY4NzAsIDE2ODgzLCAxNjg5NiwgMTY5MDksIDE2OTIyLCAxNjkzNSwgMTY5NDcsIDE2OTYwLCAxNjk3MywgMTY5ODYsIAotICAgIDE2OTk5LCAxNzAxMiwgMTcwMjUsIDE3MDM4LCAxNzA1MSwgMTcwNjQsIDE3MDc3LCAxNzA4OSwgMTcxMDIsIDE3MTE1LCAKLSAgICAxNzEyOCwgMTcxNDEsIDE3MTU0LCAxNzE2NywgMTcxODAsIDE3MTkzLCAxNzIwNiwgMTcyMTksIDE3MjMxLCAxNzI0NCwgCi0gICAgMTcyNTcsIDE3MjcwLCAxNzI4MywgMTcyOTYsIDE3MzA5LCAxNzMyMiwgMTczMzUsIDE3MzQ4LCAxNzM2MSwgMTczNzMsIAotICAgIDE3Mzg2LCAxNzM5OSwgMTc0MTIsIDE3NDI1LCAxNzQzOCwgMTc0NTEsIDE3NDY0LCAxNzQ3NywgMTc0OTAsIDE3NTAzLCAKLSAgICAxNzUxNSwgMTc1MjYsIDE3NTM5LCAxNzU1MiwgMTc1NjUsIDE3NTc4LCAxNzU5MSwgMTc2MDQsIDE3NjE3LCAxNzYzMCwgCi0gICAgMTc2NDMsIDE3NjU2LCAxNzY2OCwgMTc2ODEsIDE3Njk0LCAxNzcwNywgMTc3MjAsIDE3NzMzLCAxNzc0NiwgMTc3NTksIAotICAgIDE3NzcyLCAxNzc4NSwgMTc3OTgsIDE3ODEwLCAxNzgyMywgMTc4MzYsIDE3ODQ5LCAxNzg2MiwgMTc4NzUsIDE3ODg4LCAKLSAgICAxNzkwMSwgMTc5MTQsIDE3OTI3LCAxNzk0MCwgMTc5NTIsIDE3OTY1LCAxNzk3OCwgMTc5OTEsIDE4MDA0LCAxODAxNywgCi0gICAgMTgwMzAsIDE4MDQzLCAxODA1NiwgMTgwNjksIDE4MDgyLCAxODA5NCwgMTgxMDcsIDE4MTIwLCAxODEzMywgMTgxNDYsIAotICAgIDE4MTU5LCAxODE3MiwgMTgxODUsIDE4MTk4LCAxODIxMSwgMTgyMjQsIDE4MjM2LCAxODI0OSwgMTgyNjIsIDE4Mjc1LCAKLSAgICAxODI4OCwgMTgzMDEsIDE4MzE0LCAxODMyNywgMTgzNDAsIDE4MzUzLCAxODM2NiwgMTgzNzgsIDE4MzkxLCAxODQwNCwgCi0gICAgMTg0MTcsIDE4NDMwLCAxODQ0MywgMTg0NTYsIDE4NDY5LCAxODQ4MiwgMTg0OTUsIDE4NTA4LCAxODUyMCwgMTg1MzMsIAotICAgIDE4NTQ2LCAxODU1OSwgMTg1NzIsIDE4NTg1LCAxODU5OCwgMTg2MTEsIDE4NjI0LCAxODYzNywgMTg2NTAsIDE4NjYyLCAKLSAgICAxODY3NSwgMTg2ODgsIDE4NzAxLCAxODcxNCwgMTg3MjcsIDE4NzQwLCAxODc1MywgMTg3NjYsIDE4Nzc5LCAxODc5MiwgCi0gICAgMTg4MDQsIDE4ODE3LCAxODgzMCwgMTg4NDMsIDE4ODU2LCAxODg2OSwgMTg4ODIsIDE4ODk1LCAxODkwOCwgMTg5MjEsIAotICAgIDE4OTM0LCAxODk0NiwgMTg5NTcsIDE4OTY1LCAxODk3MiwgMTg5NzgsIDE4OTgyLCAxODk4OCwgMTg5OTQsIDE5MDAyLCAKLSAgICAxOTAwOCwgMTkwMTMsIDE5MDE3LCAxOTAyNiwgNzU0NywgMTkwMzcsIDE5MDQ0LCAxOTA1MiwgMTkwNTksIDE5MDY2LCAKLSAgICA5MjkzLCAxOTA3MywgMTkwODIsIDE5MDg3LCAxOTA5MiwgNjIzOSwgMTkwOTksIDE5MTA0LCAxOTEwNywgMTkxMTIsIAotICAgIDE5MTIwLCAxOTEyNywgMTkxMzQsIDE5MTQxLCAxOTE0NywgMTkxNTYsIDE5MTY1LCAxOTE3MSwgMTkxODAsIDE5MTg2LCAKLSAgICAxOTE5MSwgMTkyMDEsIDE5MjA4LCAxOTIxNCwgMTkyMjIsIDE5MjI4LCAxOTIzNSwgMTkyNDUsIDE5MjU0LCAxOTI1OCwgCi0gICAgMTkyNjUsIDE5MjY5LCAxOTI3NCwgMTkyODAsIDE5Mjg4LCAxOTI5MiwgMTkzMDIsIDEyNjc5LCAxOTMxMSwgMTkzMTcsIAotICAgIDE5MzIxLCAxOTMzMCwgMTkzMzYsIDE5MzQzLCAxOTM1NCwgMTkzNjIsIDE5MzcxLCA3MzM1LCAxOTM3OSwgMTkzODQsIAotICAgIDE5MzkwLCAxOTM5NSwgMTkzOTksIDE5NDAzLCAxOTQwNywgODAwNiwgMTk0MTIsIDE5NDIwLCAxOTQyNywgMTk0MzYsIAotICAgIDE5NDQzLCAxOTQ1MCwgOTIyMywgMTk0NTcsIDE5NDYzLCAxOTQ2NywgMTk0NzMsIDE5NDc5LCAxOTQ4NywgMTk0OTMsIAotICAgIDE5NTAwLCAxOTUwNiwgMTk1MTIsIDE5NTIxLCAxOTUyNSwgMTk1MzMsIDE5NTQyLCAxOTU0OSwgMTk1NTQsIDE5NTU4LCAKLSAgICAxOTU2OSwgMTk1NzQsIDE5NTc5LCAxOTU4NCwgMTk1OTcsIDY0MjYsIDE5NjAxLCAxOTYwNywgMTk2MTUsIDE5NjE5LCAKLSAgICAxOTYyNiwgMTk2MzUsIDE5NjQwLCAxOTY0OCwgMTk2NjAsIDE5NjY1LCAxOTY2OSwgMTk2NzIsIDE5Njc4LCAxOTY4NCwgCi0gICAgMTk2ODksIDE5NjkzLCAxOTY5NiwgMTk3MDcsIDE5NzEyLCA3NzUwLCAxOTcxOSwgNzU1OCwgNzc1NSwgMTk3MjQsIDE5NzI5LCAKLSAgICAxOTczNCwgMTk3MzksIDE5NzQ0LCAxOTc0OSwgMTk3NTQsIDE5NzU5LCAxOTc2NCwgMTk3NjksIDE5Nzc0LCAxOTc3OSwgCi0gICAgMTk3ODUsIDE5NzkwLCAxOTc5NSwgMTk4MDAsIDE5ODA1LCAxOTgxMCwgMTk4MTUsIDE5ODIwLCAxOTgyNSwgMTk4MzAsIAotICAgIDE5ODM2LCAxOTg0MiwgMTk4NDcsIDE5ODUyLCAxOTg1NywgMTk4NjIsIDE5ODY3LCAxOTg3MiwgMTk4NzcsIDE5ODgyLCAKLSAgICAxOTg4NywgMTk4OTMsIDE5ODk4LCAxOTkwMywgMTk5MDgsIDE5OTE0LCAxOTkyMCwgMTk5MjUsIDE5OTMwLCAxOTkzNSwgCi0gICAgMTk5NDAsIDE5OTQ1LCAxOTk1MCwgMTk5NTUsIDE5OTYwLCAxOTk2NiwgMTk5NzEsIDE5OTc2LCAxOTk4MSwgMTk5ODYsIAotICAgIDE5OTkyLCAxOTk5NywgMjAwMDIsIDIwMDA2LCAxMjksIDIwMDE0LCAyMDAxOCwgMjAwMjIsIDIwMDI2LCAyMDAzMSwgCi0gICAgMjAwMzUsIDIwMDM5LCAxMDc4MSwgMjAwNDMsIDIwMDQ4LCAyMDA1MiwgMjAwNTcsIDIwMDYxLCAyMDA2NiwgMjAwNzAsIAotICAgIDIwMDc2LCAyMDA4MSwgMjAwODUsIDIwMDg5LCAyMDA5NywgMjAxMDEsIDIwMTA2LCAyMDExMSwgMjAxMTUsIDIwMTIxLCAKLSAgICAyMDEyNiwgMjAxMzAsIDIwMTM1LCAyMDE0MCwgMjAxNDQsIDIwMTUxLCAyMDE1OCwgMjAxNjUsIDIwMTY5LCAyMDE3MywgCi0gICAgMjAxNzgsIDIwMTgyLCAyMDE4NSwgMjAxOTEsIDIwMjA0LCAyMDIwOSwgMjAyMTgsIDIwMjIzLCA3Nzk1LCAyMDIyOCwgCi0gICAgMjAyMzEsIDI2NjYsIDI2NzEsIDIwMjM1LCAyMDI0MSwgMjAyNDcsIDIwMjUyLCAyMDI1NywgMjAyNjIsIDIwMjY4LCAKLSAgICAyMDI3MywgMTIxOTAsIDIwMjc4LCAyMDI4MywgMjAyODgsIDIwMjk0LCAyMDI5OSwgMjAzMDQsIDIwMzEwLCAyMDMxNSwgCi0gICAgMjAzMTksIDIwMzI0LCAyMDMyOSwgMjAzMzQsIDIwMzM4LCAyMDM0MywgMjAzNDgsIDIwMzUzLCAyMDM1OCwgMjAzNjIsIAotICAgIDIwMzY2LCAyMDM3MSwgMjgzNiwgMjAzMjAsIDIwMzc1LCAyMDM4MywgMjAzOTAsIDgxMDAsIDIwNDAyLCAyMDQxMCwgCi0gICAgMjAzMjUsIDIwNDE3LCAyMDQyMiwgMjA0MzAsIDIwMzMwLCAyMDQzNSwgMjA0NDAsIDIwNDQ4LCAyMDQ1MywgMjA0NTgsIAotICAgIDIwNDYyLCAyMDQ2NywgMjA0NzEsIDIwNDc3LCAyMDQ4MCwgMjA0ODcsIDIwNDkxLCAyMDQ5NSwgMjA1MDEsIDIwNTA4LCAKLSAgICAyMDUxMywgNzM2MiwgMTY5MCwgMTY5NSwgMjA1MTcsIDIwNTIzLCAyMDUyOSwgMjA1MzQsIDIwNTM4LCAyMDU0MiwgMjA1NDYsIAotICAgIDIwNTQ5LCAyMDU1NSwgMjA1NjIsIDIwNTcwLCAyMDU3NiwgMjA1ODIsIDIwNTg3LCAyMDU5MiwgMjA1OTYsIDEzMDM5LCAKLSAgICAxMzg5NiwgMjA2MDEsIDIwNjEzLCAyMDYxNiwgMjA2MjMsIDIwNjMwLCAyMDYzNCwgMjA2NDIsIDIwNjUzLCAyMDY2MiwgCi0gICAgMjA2NzUsIDIwNjg1LCAyMDY5OSwgMjA3MTEsIDIwNzI1LCAyMDczNywgMjA3NDcsIDIwNzU5LCAyMDc2NSwgMjA3ODAsIAotICAgIDIwODA0LCAyMDgyMiwgMjA4NDEsIDIwODU0LCAyMDg2OCwgMjA4ODYsIDIwOTAyLCAyMDkxOSwgMjA5MzcsIDIwOTQ4LCAKLSAgICAyMDk2NywgMjA5ODQsIDIxMDA0LCAyMTAyMiwgMjEwMzQsIDIxMDQ4LCAyMTA2MiwgMjEwNzQsIDIxMDkxLCAyMTExMCwgCi0gICAgMjExMjgsIDIxMTQwLCAyMTE1OCwgMjExNzcsIDEyODE4LCAyMTE5MCwgMjEyMTAsIDIxMjIyLCA4ODcyLCAyMTIzNCwgCi0gICAgMjEyMzksIDIxMjQ0LCAyMTI0OSwgMjEyNTUsIDIxMjYwLCAyMTI2NCwgMjEyNzEsIDIzNTIsIDIxMjc1LCAyMTI4MSwgCi0gICAgMjEyODUsIDIxMjg4LCAyMTI5MiwgMjEzMDAsIDIxMzA2LCAyMDMzOSwgMjEzMTAsIDIxMzE5LCAyMTMzMCwgMjEzMzYsIAotICAgIDIxMzQyLCAyMTM1MSwgMjEzNTksIDIxMzY2LCAyMTM3MSwgMjEzNzgsIDIxMzg0LCAyMTM5MywgMjE0MDEsIDIxNDA4LCAKLSAgICAyMTQxOCwgMjE0MjcsIDIxNDM3LCAyMTQ0MiwgMjE0NTEsIDIxNDYwLCAyMTQ3MSwgMjE0ODIsIDM4ODAsIDIxNDkyLCAKLSAgICAyMTQ5NiwgMjE1MDYsIDIxNTE0LCAyMTUyNCwgMjE1MzUsIDIxNTQwLCAyMTU0OCwgMjE1NTUsIDIxNTYxLCAyMTU2NiwgCi0gICAgMjAzNDksIDIxNTcwLCAyMTU3OSwgMjE1ODMsIDIxNTg2LCAyMTU5MSwgMjE1OTgsIDIxNjA3LCAyMTYxNSwgMjE2MjMsIAotICAgIDIxNjMzLCAyMTY0MiwgMjE2NDgsIDIxNjU0LCAyMDM1NCwgMjAzNTksIDIxNjU4LCAyMTY2OCwgMjE2NzgsIDIxNjg4LCAKLSAgICAyMTY5NiwgMjE3MDMsIDIxNzEzLCAyMTcyMSwgMjE3MjksIDIxNzM1LCA5NjIsIDIxNzQ0LCAxMzAwMCwgNTM3LCAyMTc1OCwgCi0gICAgMjE3NjcsIDIxNzc1LCAyMTc4NiwgMjE3OTcsIDIxODA3LCAyMTgxNiwgMjE4MjgsIDIxODM3LCAyMTg0NiwgMjE4NTIsIAotICAgIDIxODYxLCAyMTg3MCwgMjE4ODAsIDIxODg4LCAyMTg5NiwgNzcyNywgMjE5MDIsIDIxOTA1LCAyMTkwOSwgMjE5MTQsIAotICAgIDIxOTE5LCA4MjE1LCAyMDM2NywgMjE5MjcsIDIxOTMzLCAyMTkzOSwgMjE5NDQsIDIxOTQ5LCAyMTk1MywgMjE5NjEsIAotICAgIDIxOTY3LCAyMTk3MywgMjE5NzcsIDM0NjcsIDIxOTg1LCAyMTk5MCwgMjE5OTUsIDIxOTk5LCAyMjAwMywgODI4NywgCi0gICAgMjIwMTAsIDIyMDE4LCAyMjAyNSwgMjIwMzEsIDgyOTYsIDgzMDIsIDIyMDM5LCAyMjA0NywgMjIwNTQsIDIyMDU5LCAKLSAgICAyMjA2NCwgMjIwNzAsIDIyMDc0LCAyMjA4NSwgMjIwOTAsIDI1NTUsIDIyMDk1LCAyMjEwNiwgMjIxMTIsIDIyMTE3LCAKLSAgICAyMjEyMSwgMjIxMjUsIDIyMTI4LCAyMjEzNSwgMjIxNDIsIDIyMTQ5LCAyMjE1NSwgMjIxNTksIDIyMTY0LCAyMjE2OCwgCi0gICAgMjIxNzIsIDk3OSwgMjIxNzYsIDIyMTgxLCAyMjE4NiwgMjIxOTEsIDIyMTk2LCAyMjIwMSwgMjIyMDYsIDIyMjExLCAKLSAgICAyMjIxNiwgMjIyMjEsIDIyMjI2LCAyMjIzMSwgMjIyMzYsIDIyMjQxLCAyMjI0NywgMjIyNTIsIDIyMjU3LCAyMjI2MiwgCi0gICAgMjIyNjcsIDIyMjcyLCAyMjI3NywgMjIyODMsIDIyMjg4LCAyMjI5MywgMjIyOTgsIDIyMzAzLCAyMjMwOCwgMjIzMTMsIAotICAgIDIyMzE4LCAyMjMyNCwgMjIzMzAsIDIyMzM1LCAyMjM0MSwgMjIzNDYsIDIyMzUxLCA1LCAyMjM1NywgMjIzNjEsIDIyMzY1LCAKLSAgICAyMjM2OSwgMjIzNzQsIDIyMzc4LCAyMjM4MiwgMjIzODYsIDIyMzkwLCAyMjM5NSwgMjIzOTksIDIyNDA0LCAyMjQwOCwgCi0gICAgMjI0MTEsIDIyNDE1LCAyMjQyMCwgMjI0MjQsIDIyNDI5LCAyMjQzMywgMjI0MzcsIDIyNDQxLCAyMjQ0NiwgMjI0NTAsIAotICAgIDIyNDU0LCAyMjQ2NCwgMjI0NjksIDIyNDczLCAyMjQ3NywgMjI0ODIsIDIyNDg3LCAyMjQ5NiwgMjI1MDEsIDIyNTA2LCAKLSAgICAyMjUxMCwgMjI1MTQsIDIyNTI3LCAyMjUzOSwgMjI1NDgsIDIyNTU3LCAyMjU2MywgMjI1NjgsIDIyNTcyLCAyMjU3NiwgCi0gICAgMjI1ODYsIDIyNTk1LCAyMjYwMywgMjI2MDksIDIyNjE0LCAyMjYxOCwgMjI2MjUsIDIyNjM1LCAyMjY0NCwgMjI2NTIsIAotICAgIDIyNjYwLCAyMjY2NywgMjI2NzUsIDIyNjg0LCAyMjY5MywgMjI3MDEsIDIyNzA2LCAyMjcxMCwgMjI3MTQsIDIyNzE3LCAKLSAgICAyMjcxOSwgMjI3MjMsIDIyNzI3LCAyMjczMiwgMjI3MzcsIDIyNzQxLCAyMjc0NSwgMjI3NDgsIDIyNzUyLCAyMjc1NSwgCi0gICAgMjI3NTksIDIyNzYyLCAyMjc2NSwgMjI3NjksIDIyNzc1LCAyMjc3OSwgMjI3ODMsIDIyNzg3LCAyMjc5MiwgMjI3OTcsIAotICAgIDIyODAyLCAyMjgwNiwgMjI4MDksIDIyODE0LCAyMjgyMCwgMjI4MjUsIDIyODMxLCAyMjgzNiwgMjI4NDAsIDIyODQ0LCAKLSAgICAyMjg0OCwgMjI4NTMsIDIyODU3LCAyMjg2MiwgMjI4NjYsIDIyODczLCAyMjg3NywgMjI4ODAsIDIyODg0LCAyMjg5MCwgCi0gICAgMjI4OTYsIDIyOTAwLCAyMjkwNCwgMjI5MDksIDIyOTE2LCAyMjkyMiwgMjI5MjYsIDIyOTM1LCAyMjkzOSwgMjI5NDMsIAotICAgIDIyOTQ2LCAyMjk1MiwgMjI5NTcsIDIyOTYzLCAxNDUyLCAxNzU0LCAyMjk2OCwgMjI5NzMsIDIyOTc4LCAyMjk4MywgCi0gICAgMjI5ODgsIDIyOTkzLCAyMjk5OCwgMjEwNiwgMjE0OCwgMjMwMDMsIDIzMDA2LCAyMzAxMCwgMjMwMTQsIDIzMDE5LCAKLSAgICAyMzAyMywgMjMwMjcsIDIzMDMwLCAyMzAzNSwgMjMwNDAsIDIzMDQ0LCAyMzA0NywgMjMwNTIsIDIzMDU2LCAyMzA2MSwgCi0gICAgMjMwNjUsIDEzMDEyLCAyMzA3MCwgMjMwNzMsIDIzMDc2LCAyMzA4MCwgMjMwODUsIDIzMDk4LCAyMzEwMiwgMjMxMDUsIAotICAgIDIzMTEzLCAyMzEyMiwgMjMxMjksIDIzMTM0LCAyMzE0MCwgMjMxNDYsIDIzMTUzLCAyMzE2MCwgMjMxNjQsIDIzMTY4LCAKLSAgICAyMzE3MiwgMjMxNzcsIDIzMTgyLCAyMzE4NiwgMjMxOTQsIDIzMTk5LCAyMzIxMSwgMjMyMjIsIDIzMjI3LCAyMzIzMSwgCi0gICAgMjMyMzUsIDIzMjQxLCAyMzI0NiwgMjMyNTEsIDIzMjU1LCAyMzI1OCwgMjMyNjQsIDYzNDYsIDIyNzAsIDIzMjY4LCAKLSAgICAyMzI3MywgMjMyODksIDc4NDIsIDIzMzA5LCAyMzMxOCwgMjMzMzQsIDIzMzM4LCAyMzM0MSwgMjMzNDcsIDIzMzU3LCAKLSAgICAyMzM2MywgMjMzNzgsIDIzMzkwLCAyMzQwMSwgMjM0MDksIDIzNDE4LCAyMzQyNCwgMjM0MzMsIDIzNDQzLCAyMzQ1NCwgCi0gICAgMjM0NjUsIDIzNDc0LCAyMzQ4MywgMjM0OTEsIDIzNDk4LCAyMzUwNiwgMjM1MTksIDIzNTI2LCAyMzUzMiwgMjM1MzcsIAotICAgIDIzNTQ2LCAyMzU1MiwgMjM1NTcsIDIzNTY1LCAyMTUxNiwgMjM1NzcsIDIzNTg5LCAyMzYwMywgMjM2MTEsIDIzNjE4LCAKLSAgICAyMzYzMCwgMjM2MzksIDIzNjQ4LCAyMzY1NiwgMjM2NjQsIDIzNjcyLCAyMzY3OSwgMjM2ODgsIDIzNjk2LCAyMzcwNiwgCi0gICAgMjM3MTUsIDIzNzI1LCAyMzczNCwgMjM3NDMsIDIzNzUxLCAyMzc1NiwgMjM3NjAsIDIzNzYzLCAyMzc2NywgMjM3NzEsIAotICAgIDIzNzc1LCAyMzc3OSwgMjM3ODMsIDIzNzg5LCAyMzc5NSwgMjM4MDMsIDEzMDU3LCAyMzgxMCwgMjM4MTUsIDIzODIyLCAKLSAgICAyMzgyOCwgMjM4MzUsIDEzMDY1LCAyMzg0MiwgMjM4NDUsIDIzODU3LCAyMzg2NSwgMjM4NzEsIDIzODc2LCAyMzg4MCwgCi0gICAgODI0NSwgMjM4OTEsIDIzOTAxLCAyMzkxMCwgMjM5MTcsIDIzOTIxLCAxMzA3MCwgMjM5MjQsIDIzOTMxLCAyMzkzNSwgCi0gICAgMjM5NDEsIDIzOTQ0LCAyMzk1MSwgMjM5NTcsIDIzOTYxLCAyMzk2NiwgMjM5NzAsIDIzOTc5LCAyMzk4NiwgMjM5OTIsIAotICAgIDYzODcsIDIzOTk5LCAyNDAwNywgMjQwMTQsIDI0MDIwLCAyNDAyNSwgMjQwMzEsIDI0MDM3LCAyNDA0NSwgMjQwNDksIAotICAgIDI0MDUyLCAyNDA1NCwgMjM3NjgsIDI0MDYzLCAyNDA2OSwgMjQwNzksIDI0MDg0LCAyNDA5MSwgMjQwOTcsIDI0MTAyLCAKLSAgICAyNDEwNywgMjQxMTIsIDI0MTE3LCAyNDEyNCwgMjQxMzMsIDI0MTQwLCAyNDE0OSwgMjQxNTUsIDI0MTYwLCAyNDE2NiwgCi0gICAgMjQxNzEsIDI0MTc4LCAyNDE4OSwgMjQxOTQsIDI0MTk4LCAyNDIwOCwgMjQyMTQsIDI0MjE4LCAyNDIyMywgMjQyMzMsIAotICAgIDI0MjQyLCAyNDI0NiwgMjQyNTMsIDI0MjYxLCAyNDI2OCwgMjQyNzQsIDI0Mjc5LCAyNDI4NywgMjQyOTQsIDI0MzA2LCAKLSAgICAyNDMxNSwgMjQzMTksIDExMzYyLCAyNDMyNywgMjQzMzcsIDI0MzQxLCAyMzEwOSwgMjQzNTIsIDI0MzU3LCAyNDM2MSwgCi0gICAgMjQzNjgsIDI0Mzc1LCAyMDExNywgMjM2OTMsIDI0MzgwLCAyNDM4NCwgMjQzODcsIDIwOTU0LCAyNDM5MiwgMjQ0MDYsIAotICAgIDI0NDIyLCAyNDQ0MCwgMjQ0NTksIDI0NDc2LCAyNDQ5NCwgMjA5NzMsIDI0NTExLCAyNDUzMSwgMjA5OTAsIDI0NTQzLCAKLSAgICAyNDU1NSwgMTM5ODMsIDI0NTY3LCAyMTAxMCwgMjQ1ODEsIDI0NTkzLCA4ODg1LCAyNDYwNywgMjQ2MTIsIDI0NjE3LCAKLSAgICAyNDYyMiwgMjQ2MjgsIDI0NjM0LCAyNDY0MCwgMjQ2NDQsIDI0NjUxLCAyNDY1NiwgMjQ2NjYsIDI0NjcyLCA4NTMyLCAKLSAgICAyNDY3OCwgMjQ2ODAsIDI0Njg1LCAyNDY5MywgMjQ2OTcsIDI0MTIwLCAyNDcwMywgMjQ3MTAsIDk4NjksIDk4NzksIAotICAgIDI0NzE3LCAyNDcyNywgMjQ3MzIsIDI0NzM2LCAyNDczOSwgMjQ3NDUsIDI0NzUzLCAyNDc2NSwgMjQ3NzUsIDI0NzkxLCAKLSAgICAyNDgwNCwgMjQ4MTgsIDE0MDAxLCAyNDgzMiwgMjQ4MzksIDI0ODQzLCAyNDg0NiwgMjQ4NTEsIDI0ODU1LCAyNDg2MiwgCi0gICAgMjQ4NjksIDI0ODc5LCAyNDg4NCwgMjQ4ODksIDI0ODk0LCAyNDkwMiwgMjQ5MTAsIDI0OTE5LCAyNDkyNCwgNzkzOSwgCi0gICAgMjQ5MjgsIDI0OTMxLCAyNDkzNCwgMjQ5MzksIDI0OTQ2LCAyNDk1MSwgMjQ5NjcsIDI0OTc1LCAyNDk4MywgNzc5MCwgCi0gICAgMjQ5OTEsIDI0OTk2LCAyNTAwMCwgMjUwMDYsIDI1MDEyLCAyNTAxNSwgMjUwMjEsIDI1MDMzLCAyNTA0MSwgMjUwNDgsIAotICAgIDI1MDU0LCAyNTA2MSwgMjUwNzIsIDI1MDg2LCAyNTA5OSwgMjUxMDgsIDI1MTIwLCAyNTEzMSwgMjUxNDEsIDI1MTUwLCAKLSAgICAyNTE1OSwgMjUxNjcsIDI1MTc4LCA2MzY5LCAyNTE4NSwgMjUxOTEsIDI1MTk2LCAyNTIwMiwgMjUyMDksIDI1MjE5LCAKLSAgICAyNTIyOSwgMjUyMzgsIDI1MjQ0LCAyNTI1MSwgMjUyNTYsIDI1MjYzLCAyNTI3MSwgMjUyNzksIDI1MjkxLCA0NzA0LCAKLSAgICAyNTI5OCwgMjUzMDcsIDI1MzE1LCAyNTMyMSwgMjUzMjcsIDI1MzMyLCAyNTMzNiwgMjUzMzksIDI1MzQ1LCAyNTM1MiwgCi0gICAgMjUzNTcsIDI1MzYyLCAyNTM2NiwgMjUzNzgsIDI1Mzg5LCAyNTM5OCwgMjU0MDYsIDEzMTk3LCAyNTQxMSwgMjU0MTcsIAotICAgIDI1NDIzLCA5ODYyLCA3MDQ5LCAyNTQyOCwgMjU0MzEsIDI1NDM0LCAyNTQ0MCwgMjU0NDgsIDI1NDU2LCAyNTQ2MCwgCi0gICAgMjU0NjQsIDI1NDY5LCAyNTQ3MiwgMjU0ODEsIDI1NDg5LCAyNTUwMCwgMjU1MDQsIDI1NTEwLCAyNTUxNiwgMjU1MjAsIAotICAgIDI1NTI2LCAyNTUzNCwgMjU1NTYsIDI1NTgwLCAyNTU4NywgMjU1OTQsIDI1NjAwLCAyNTYwNiwgMjU2MTEsIDI1NjIyLCAKLSAgICAyNTY0MCwgMjU2NDcsIDI1NjU1LCAyNTY1OSwgMjU2NjgsIDI1NjgxLCAyNTY4OSwgMjU3MDEsIDI1NzEyLCAyNTcyMiwgCi0gICAgMjU3MzYsIDI1NzQ1LCAyNTc1MywgMjU3NjUsIDc4NTksIDI1Nzc2LCAyNTc4NywgMjU3OTksIDI1ODA5LCAyNTgxOCwgCi0gICAgMjU4MjMsIDI1ODI3LCAyNTgzNSwgMjU4NDUsIDI1ODUwLCAyNTg1NCwgMjU4NTcsIDI1ODYwLCAyNTg2OCwgMjU4NzYsIAotICAgIDI1ODg1LCAyNTg5NSwgMjU5MDQsIDI1OTEwLCAyNTkyNCwgMjYxNywgMjU5NDYsIDI1OTU3LCAyNTk2NiwgMjU5NzYsIAotICAgIDI1OTg4LCAyNTk5NywgMjYwMDcsIDI2MDE1LCAyNjAyMywgMjYwMzIsIDI2MDM3LCAyNjA0OCwgMjYwNTMsIDI2MDY0LCAKLSAgICAyNjA2OCwgMjYwNzgsIDI2MDg3LCAyNjA5NSwgMjYxMDUsIDI2MTE1LCAyNjEyMywgMjYxMzIsIDI2MTM5LCAyNjE0NywgCi0gICAgMjYxNTQsIDI2MTYzLCAyNjE2NywgMjYxNzUsIDI2MTgyLCAyNjE5MCwgMjYxOTcsIDI2MjA4LCAyNjIyMywgMjYyMzAsIAotICAgIDI2MjM2LCAyNjI0NiwgMjYyNTUsIDI2MjYxLCAyNjI2OCwgMTIzMTIsIDI2Mjc0LCAyNjI3OCwgMjYyODMsIDI2Mjg3LCAKLSAgICAyNjI5MSwgMjYyOTksIDI2MzA3LCAyNjMxMywgMjYzMjIsIDI2MzI5LCAyNjMzNCwgMjYzMzksIDI2MzQ5LCAyMTU2OCwgCi0gICAgMjYzNTMsIDI2MzU2LCAyNjM2MSwgMjYzNjYsIDI2MzcxLCAyNjM3NiwgMjYzODEsIDI2Mzg2LCAyNjM5MSwgMjYzOTYsIAotICAgIDI2NDAyLCAyNjQwNywgMjY0MTIsIDI2NDE4LCAxMjIzLCA2NzksIDI2NDIzLCAyNjQzMiwgMjMxOCwgMjY0MzksIDI2NDQ0LCAKLSAgICAyNjQ0OCwgMjY0NTQsIDEyNTYsIDU0MSwgMzM0LCAyNjQ1OSwgMjY0NjgsIDI2NDc2LCAyNjQ4NSwgMjY0OTMsIDI2NTA0LCAKLSAgICAyNjUxMywgMjY1MjEsIDI2NTI1LCAyNjUyOCwgMjY1MzYsIDI2NTQ0LCAyNjU0OSwgMTMwMjUsIDI2NTU1LCAyNjU2MSwgCi0gICAgMjY1NjcsIDQzNTAsIDI2NTcyLCAyNjU3NiwgMjY1ODIsIDI2NTg2LCAyNjU5MywgMTQxOCwgMjY1OTksIDc5NDYsIDI2NjA2LCAKLSAgICAyNjYxNiwgMjY2MjQsIDI2NjMwLCAyNjYzOSwgMjY2NDcsIDI2NjUzLCAyNjY2MSwgMjY2NjgsIDk0NTUsIDI2Njc0LCAKLSAgICAyNjY4MSwgMjY2ODgsIDE0NTksIDIxMDUsIDI2Njk0LCAyNjcwMCwgMjY3MDcsIDI2NzE4LCAyNjcyOSwgMjY3MzcsIAotICAgIDI2NzQ0LCAyNjc1NCwgMjY3NjMsIDI2NzcxLCAyNjc3OCwgMjY3ODUsIDI2Nzk4LCAyNjgwOSwgMjY4MjgsIDEyNjEsIAotICAgIDI2ODMyLCAyNjgzNywgMjY4NDUsIDM1MTAsIDI2ODQ5LCAyNjg1NCwgMjY4NTgsIDE0MjIsIDIyNzQ2LCAyNjg2OCwgCi0gICAgMjY4NzIsIDI2ODc3LCAyNjg4MSwgMzQzNSwgMjY4ODcsIDI2ODk1LCAyNjkwMiwgMjY5MTMsIDI2OTIxLCAyNjkyOSwgCi0gICAgMzUxMSwgMjY5LCAyNjkzNCwgMjY5NDIsIDI2OTUwLCAyNjk1NywgMjY5NjMsIDI2OTY4LCAyMTcwLCAyNjk3NSwgMjY5ODEsIAotICAgIDIzOTYyLCAyNDE4NCwgMjY5ODcsIDEwNiwgMjY5OTEsIDI2OTk1LCAyNzAwMSwgNjA2LCA3Njk1LCAyNzAwNiwgMjcwMTMsIAotICAgIDI3MDE5LCAyMjgxLCAyNzAyMywgMjcwMjcsIDI3MDMwLCAyNzAzMywgMjcwMzgsIDI3MDQ1LCAyNzA1MSwgMjcwNTYsIAotICAgIDI3MDY0LCAyNzA3MSwgMjcwNzcsIDIwNDU1LCAyNzA4MSwgMzU4MSwgMTQ4MjYsIDI3MDg1LCAyNzA5MCwgMjcwOTMsIAotICAgIDI3MTAxLCAyNzEwOSwgMjcxMTIsIDI3MTE5LCAyNzEyOSwgMjcxNDEsIDI3MTQ2LCAyNzE1MCwgMjcxNTgsIDI3MTY1LCAKLSAgICAyNzE3MSwgMjcxNzgsIDI3MTg1LCAyNzE4OCwgMjcxOTIsIDI3MTk2LCAxNDI2LCAyNzIwNiwgMjcyMDgsIDI3MjEzLCAKLSAgICAyNzIxOSwgMjcyMjUsIDI3MjMwLCAyNzIzNSwgMjcyNDAsIDI3MjQ1LCAyNzI1MCwgMjcyNTUsIDI3MjYwLCAyNzI2NSwgCi0gICAgMjcyNzAsIDI3Mjc1LCAyNzI4MCwgMjcyODUsIDI3MjkwLCAyNzI5NSwgMjczMDEsIDI3MzA3LCAyNzMxMywgMjczMTksIAotICAgIDI3MzI0LCAyNzMyOSwgMjczMzQsIDI3MzQwLCAyNzM0NSwgMjczNTAsIDI3MzU1LCAyNzM2MSwgMjczNjYsIDI3MzcyLCAKLSAgICAyNzM3NywgMjczODIsIDI3Mzg3LCAyNzM5MiwgMjczOTgsIDI3NDAzLCAyNzQwOSwgMjc0MTQsIDI3NDE5LCAyNzQyNCwgCi0gICAgMjc0MjksIDI3NDM1LCAyNzQ0MCwgMjc0NDYsIDI3NDUxLCAyNzQ1NiwgMjc0NjEsIDI3NDY2LCAyNzQ3MSwgMjc0NzYsIAotICAgIDI3NDgxLCAyNzQ4NiwgMjc0OTEsIDI3NDk3LCAyNzUwMywgMjc1MDksIDI3NTE0LCAyNzUxOSwgMjc1MjQsIDI3NTI5LCAKLSAgICAyNzUzNSwgMjc1NDEsIDI3NTQ3LCAyNzU1MywgMjc1NTksIDI3NTY1LCAyNzU3MCwgMjc1NzYsIDI3NTgxLCAyNzU4NiwgCi0gICAgMjc1OTEsIDI3NTk2LCAyNzYwMiwgMjM5NywgMjc2MDcsIDI0MDQsIDI0MTEsIDI3MDgsIDI3NjEyLCAyNDE3LCAyNDI3LCAKLSAgICAyNzYxOCwgMjc2MjIsIDI3NjI3LCAyNzYzMiwgMjc2MzgsIDI3NjQzLCAyNzY0OCwgMjc2NTIsIDI3NjU3LCAyNzY2MywgCi0gICAgMjc2NjgsIDI3NjczLCAyNzY3OCwgMjc2ODQsIDI3Njg5LCAyNzY5MywgMjc2OTcsIDI3NzAyLCAyNzcwNywgMjc3MTIsIAotICAgIDI3NzE3LCAyNzcyMiwgMjc3MjgsIDI3NzM0LCAyNzczOSwgMjc3NDMsIDI3NzQ4LCAyNzc1NCwgMjc3NTgsIDI3NzYzLCAKLSAgICAyNzc2OCwgMjc3NzMsIDI3Nzc4LCAyNzc4MiwgMjc3ODUsIDI3NzkwLCAyNzc5NSwgMjc4MDAsIDI3ODA1LCAyNzgxMSwgCi0gICAgMjc4MTcsIDI3ODIyLCAyNzgyNywgMjc4MzEsIDI3ODM2LCAyNzg0MSwgMjc4NDYsIDI3ODUxLCAyNzg1NiwgMjc4NjAsIAotICAgIDI3ODY1LCAyNzg3MCwgMjc4NzUsIDI3ODc5LCAyNzg4MywgMjc4ODcsIDI3ODkyLCAyNzkwMCwgMjc5MDYsIDI3OTEyLCAKLSAgICAyNzkxOCwgMjc5MjMsIDI3OTI3LCAyNzkzMCwgMjc5MzUsIDI3OTM5LCAyNzk0NCwgMjc5NDgsIDI3OTUzLCAyNzk1NywgCi0gICAgMjc5NjAsIDE1NDg5LCAyNzk2NSwgMjc5NzMsIDE5NDM5LCAyNjYwMywgMjc5NzgsIDI3OTgzLCAyNzk4NywgMjc5OTIsIAotICAgIDI3OTk2LCAyODAwMCwgMjgwMDUsIDI4MDA5LCAyODAxMiwgMjgwMTUsIDI4MDE5LCAyODAyNCwgMjgwMzIsIDI4MDM2LCAKLSAgICAyODAzOSwgMjgwNDQsIDI4MDQ4LCAyODA1MiwgMjgwNTcsIDI4MDYyLCAyODA2NiwgMjgwNzIsIDI4MDc3LCAyODA4MiwgCi0gICAgMjgwODksIDI4MDk2LCAyODEwMCwgMjgxMDMsIDI4MTA5LCAyODExOCwgMjgxMjUsIDI4MTMzLCAyODE0MCwgMjgxNDQsIAotICAgIDI4MTQ5LCAyODE1MywgMjgxNTksIDI4MTY1LCAyODE2OSwgMjgxNzUsIDI4MTgwLCAyODE4NSwgMjgxOTIsIDI4MTk4LCAKLSAgICAyODIwNCwgMjgyMTAsIDI4MjE2LCAyODIyMywgMjgyMjksIDI4MjM1LCAyODI0MSwgMjgyNDcsIDI4MjUzLCAyODI1OSwgCi0gICAgMjgyNjUsIDI4MjcyLCAyODI3OCwgMjgyODUsIDI4MjkxLCAyODI5NywgMjgzMDMsIDI4MzA5LCAyODMxNSwgMjgzMjEsIAotICAgIDI4MzI3LCAyODMzMywgMjgzMzksIDk3NjMsIDI4MzQ1LCAyODM1MCwgMjgzNTUsIDI4MzU4LCAyODM2NiwgMjgzNzEsIAotICAgIDI4MzgwLCAyODM4NiwgMjgzOTEsIDI4Mzk2LCAyODQwMSwgMjg0MDUsIDI4NDEwLCAyODQxNSwgMjg0MjAsIDI4NDI1LCAKLSAgICAyODQzMCwgMjg0MzcsIDI4NDQ0LCAyODQ1MCwgMjg0NTYsIDI4NDYxLCAxNDUxMCwgMjg0NjgsIDI4NDc0LCAyODQ4MSwgCi0gICAgMjg0ODcsIDI4NDkzLCAyODQ5OCwgMjg1MDYsIDI4NTExLCAxNDI5NCwgMjg1MTUsIDI4NTIwLCAyODUyNSwgMjg1MzEsIAotICAgIDI4NTM2LCAyODU0MSwgMjg1NDUsIDI4NTUwLCAyODU1NSwgMjg1NjEsIDI4NTY2LCAyODU3MSwgMjg1NzUsIDI4NTgwLCAKLSAgICAyODU4NSwgMjg1ODksIDI4NTk0LCAyODU5OSwgMjg2MDQsIDI4NjA4LCAyODYxMywgMjg2MTgsIDI4NjIzLCAyODYyNywgCi0gICAgMjg2MzEsIDEzNTMxLCAyODYzNSwgMjg2NDQsIDI4NjUwLCAyODY1NiwgMjg2NjUsIDI4NjczLCAyODY4MiwgMjg2OTAsIAotICAgIDI4Njk1LCAyODY5OSwgMjg3MDYsIDI4NzEyLCAyODcxNiwgMjg3MTksIDI4NzI0LCAyODczMywgMjg3NDEsIDI4NzQ2LCAKLSAgICAxNDU4LCAyODc1MiwgMjg3NTUsIDI4NzU5LCAyMDUyNCwgMjA1MzAsIDI4NzY1LCAyODc2OSwgMjg3ODAsIDI4NzkxLCAKLSAgICAyODgwMiwgMjg4MTQsIDI4ODIxLCAyODgyOCwgMjg4MzMsIDI4ODM3LCA0Mzg3LCA3MzMsIDE5NDM4LCAyODg0NSwgMjg4NDksIAotICAgIDI4ODU0LCAyODg2MCwgMjg4NjUsIDI4ODcxLCAyODg3NiwgMjg4ODIsIDI4ODg3LCA4NzY0LCAyNzg1LCAzMzY1LCAyODg5MSwgCi0gICAgMjg4OTQsIDI4OTAwLCAyODkwNiwgMjg5MTIsIDI4OTE5LCAyODkyNSwgMjg5MzEsIDI4OTM3LCAyODk0MywgMjg5NDksIAotICAgIDI4OTU1LCAyODk2MSwgMjg5NjcsIDI4OTczLCAyODk3OSwgMjg5ODUsIDI4OTkxLCAyODk5OCwgMjkwMDQsIDI5MDEwLCAKLSAgICAyOTAxNiwgMjkwMjIsIDI5MDI4LCAyOTAzMywgMjkwMzYsIDI5MDQzLCAyOTA1MSwgMjkwNTYsIDI5MDYxLCAyOTA2NywgCi0gICAgMjkwNzIsIDI5MDc3LCAyOTA4MSwgMjkwODYsIDI5MDkyLCAyOTA5NywgMjkxMDMsIDI5MTA4LCAyOTExNCwgMjkxMTksIAotICAgIDI5MTI1LCAyOTEzMSwgMjkxMzUsIDI5MTQwLCAyOTE0NSwgMjkxNTAsIDI5MTU1LCAyOTE1OSwgMjkxNjQsIDI5MTY5LCAKLSAgICAyOTE3NCwgMjkxODAsIDI5MTg2LCAyOTE5MiwgMjkxOTgsIDI5MjAzLCAyOTIwNywgMjkyMTAsIDI5MjE2LCAyOTIyMiwgCi0gICAgMjkyMzEsIDI5MjM5LCAyOTI0NiwgMjkyNTEsIDI5MjU1LCAyOTI1OSwgMjkyNjQsIDEzMzk1LCAyOTI2OSwgMjkyNzcsIAotICAgIDI5MjgzLCAzNjExLCAyOTI4OCwgMjkyOTEsIDI5Mjk1LCA2NDM2LCAyOTMwMSwgMjkzMDcsIDI5MzE0LCA2NDQ1LCAyOTMxOCwgCi0gICAgMjkzMjQsIDI5MzMxLCAyOTMzNywgMjkzNDYsIDI5MzU0LCAyOTM2NiwgMjkzNzAsIDI5Mzc3LCAyOTM4MywgMjkzODcsIAotICAgIDI5MzkwLCAyOTM5OSwgMjk0MDcsIDI5NDEyLCAyOTQxNiwgMjk0MjYsIDI5NDM2LCAyOTQ0NiwgMjk0NTIsIDI5NDU3LCAKLSAgICAyOTQ2NywgMjk0NzIsIDI5NDg1LCAyOTQ5OSwgMjk1MTAsIDI5NTIyLCAyOTUzNCwgMjk1NDgsIDI5NTYxLCAyOTU3MywgCi0gICAgMjk1ODUsIDEyODU5LCAyOTU5OSwgMjk2MDQsIDI5NjA5LCAyOTYxMywgMjk2MTcsIDI5NjIxLCAxNzQzLCAyNTEyOSwgCi0gICAgMjk2MjUsIDI5NjMwLCAyOTYzNSwgMjk2MzksIDI5NjQyLCAyOTY0NywgMjk2NTIsIDI5NjU4LCAyOTY2NCwgODQ2MSwgCi0gICAgMjk2NjksIDI5Njc2LCAxMzkzNSwgMjk2ODIsIDI5Njg3LCAyOTY5MiwgMjk2OTYsIDI5NzAxLCAyOTcwNiwgMjg4NTUsIAotICAgIDI5NzExLCAyOTcxNiwgMjk3MjEsIDI5NzI3LCAyODg2MSwgMjk3MzIsIDI5NzM1LCAyOTc0MiwgMjk3NTAsIDI5NzU2LCAKLSAgICAyOTc2MiwgMjk3NjgsIDI5Nzc5LCAyOTc4NCwgMjk3OTEsIDI5Nzk4LCAyOTgwNSwgMjk4MTMsIDI5ODIyLCAyOTgzMSwgCi0gICAgMjk4MzcsIDI5ODQzLCAyOTg1MSwgMjg4NjYsIDI5ODU2LCAyOTg2MiwgMjk4NjgsIDI4ODcyLCAyOTg3MywgMjk4ODEsIAotICAgIDI5ODg5LCAyOTg5NSwgMjk5MDIsIDI5OTA4LCAyOTkxNSwgMjk5MjIsIDI5OTI4LCAyOTkzNiwgMjk5NDYsIDI5OTUzLCAKLSAgICAyOTk1OCwgMjk5NjQsIDI5OTY5LCAyOTk3NCwgMjk5ODEsIDI5OTkwLCAyOTk5OCwgMzAwMDMsIDMwMDA5LCAzMDAxNiwgCi0gICAgMzAwMjQsIDMwMDMwLCAzMDAzNSwgMzAwNDEsIDMwMDUwLCAyNTg5MCwgMzAwNTcsIDMwMDYxLCAzMDA2NiwgMzAwNzUsIAotICAgIDMwMDgwLCAzMDA4NSwgMTA3MTQsIDMwMDkzLCAzMDA5OCwgMzAxMDMsIDMwMTA3LCAzMDExMiwgMzAxMTcsIDMwMTI0LCAKLSAgICAzMDEyOSwgMzAxMzQsIDI4ODc3LCAyODg4MywgMzAxNDAsIDI0NzMsIDIzOSwgMzAxNDMsIDMwMTQ2LCAzMDE1MCwgMzAxNTQsIAotICAgIDMwMTY0LCAzMDE3MiwgMzAxNzYsIDMwMTgzLCAzMDE5MCwgMzAxOTQsIDMwMTk3LCAzMDIwMywgMzAyMTEsIDMwMjE5LCAKLSAgICAzMDIyMywgMzAyMjcsIDMwMjMwLCAzMDIzNywgMzAyNDEsIDMwMjQ4LCAzMDI1NiwgMzAyNjMsIDMwMjY3LCAzMDI3NSwgCi0gICAgNjg0LCAyOTcsIDMwMjg3LCAzMDI5MiwgMzAyOTcsIDMwMzAzLCAzMDMwOCwgMzAzMTMsIDM2MzIsIDMwMzE4LCAzMDMyMSwgCi0gICAgMzAzMjYsIDMwMzMxLCAzMDMzNiwgMzAzNDEsIDMwMzQ2LCAzMDM1MywgMjA2MDksIDMwMzU4LCAzMDM2MywgMzAzNjgsIAotICAgIDMwMzczLCAzMDM3OCwgMzAzODQsIDMwMzg5LCAzMDM5NSwgMjkwMzksIDMwNDAxLCAzMDQwNiwgMzA0MTIsIDMwNDE4LCAKLSAgICAzMDQyOCwgMzA0MzMsIDMwNDM4LCAzMDQ0MiwgMzA0NDcsIDMwNDUyLCAzMDQ1NywgMzA0NjIsIDMwNDc1LCAzMDQ4MCwgCi0gICAgMjA0MDYsIDE0OTA2LCAzNjM4LCAzMDQ4NCwgMzA0ODksIDMwNDk0LCAzMDUwMCwgMzA1MDUsIDMwNTEwLCAzMDUxNCwgCi0gICAgMzA1MTksIDMwNTI0LCAzMDUzMCwgMzA1MzUsIDMwNTQwLCAzMDU0NCwgMzA1NDksIDMwNTU0LCAzMDU1OSwgMzA1NjMsIAotICAgIDMwNTY4LCAzMDU3MywgMzA1NzgsIDMwNTg0LCAzMDU5MCwgMzA1OTUsIDMwNTk5LCAzMDYwNCwgMzA2MDksIDMwNjE0LCAKLSAgICAzMDYxOCwgMzA2MjYsIDMwNjMwLCAzMDYzNiwgMzA2NDAsIDMwNjQ3LCAxNDY5OSwgMzA2NTMsIDMwNjYwLCAzMDY2OCwgCi0gICAgMzA2NzUsIDMwNjgxLCAzMDY5MywgMzA2OTksIDMwNzAzLCAyNzI3LCAzMDcwNywgMzA3MTEsIDMwMjMyLCAzMDcyMCwgCi0gICAgMzA3MzEsIDMwNzM2LCAzMDc0MSwgMzA3NDYsIDMwNzUwLCAzMDc1NSwgMjA1MzUsIDMwNzU5LCAzMDc2NCwgMTk0NTksIAotICAgIDMwNzY4LCAzMDc3MywgMzA3NzksIDMwNzg0LCAzMDc4OCwgMzA3OTIsIDMwNzk1LCAzMDc5OSwgMzA4MDUsIDMwODE2LCAKLSAgICAzMDgyOCwgMzA4MzMsIDMwODM3LCAzMDg0MCwgMzQzLCAzMDg0NCwgMzA4NDksIDMwODU0LCAzMDg1OSwgMzA4NjQsIAotICAgIDMwODY5LCAzMDg3NSwgMzA4ODAsIDMwODg1LCAzMDg5MSwgMzA4OTYsIDMwOTAyLCAzMDkwNywgMzA5MTMsIDMwOTE4LCAKLSAgICAzMDkyMywgMzA5MjgsIDMwOTMzLCAzMDkzOCwgMzA5NDMsIDMwOTQ4LCAzMDk1MywgMzA5NTksIDMwOTY0LCAzMDk2OSwgCi0gICAgMzA5NzQsIDMwOTc5LCAzMDk4NCwgMzA5ODksIDMwOTk0LCAzMTAwMCwgMzEwMDYsIDMxMDExLCAzMTAxNiwgMzEwMjEsIAotICAgIDMxMDI2LCAzMTAzMSwgMzEwMzYsIDMxMDQxLCAzMTA0NiwgMzEwNTEsIDMxMDU2LCAzMTA2MSwgMzEwNjYsIDMxMDcxLCAKLSAgICAzMTA3NiwgMzEwODEsIDMxMDg2LCAzMTA5MSwgMzEwOTYsIDMxMTAyLCAyNiwgMzExMDcsIDMxMTExLCAzMTExNSwgMzExMjMsIAotICAgIDMxMTI3LCAzMTEzMSwgMzExMzQsIDMxMTM3LCAzMTEzOSwgMzExNDQsIDMxMTQ4LCAzMTE1MywgMzExNTcsIDMxMTYyLCAKLSAgICAzMTE2NiwgMzExNzEsIDMxMTc1LCAzMTE3OCwgMzExODAsIDMxMTg1LCAzMTE4OSwgMzEyMDAsIDMxMjAzLCAzMTIwNSwgCi0gICAgMzEyMDksIDMxMjIxLCAzMTIzMCwgMzEyMzQsIDMxMjQwLCAzMTI0NSwgMzEyNTQsIDMxMjYwLCAzMTI2NSwgMzEyNzAsIAotICAgIDMxMjc0LCAzMTI3OSwgMzEyODYsIDMxMjkxLCAzMTI5NywgMzEzMDIsIDMxMzA2LCAzMTMxMywgMjM3MDEsIDIzNzExLCAKLSAgICAzMTMxNywgMzEzMjIsIDMxMzI3LCAzMTMzMiwgMzEzMzksIDMxMzQzLCAzMTM1MCwgNjU0NCwgMzEzNTYsIDMxMzY1LCAKLSAgICAzMTM3MywgMzEzODgsIDMxNDAyLCAzMTQxMCwgMzE0MjEsIDMxNDMwLCAzMTQzNSwgNTY4MSwgMzE0NDUsIDMxNDUwLCAKLSAgICAzMTQ1NSwgMzE0NTksIDMxNDYyLCAzMTQ2NiwgMzE0NzEsIDMxNDc1LCAzMTQ4MiwgMzE0ODcsIDMxNDkyLCA3MzIwLCAKLSAgICAzMTUwMiwgMzE1MDQsIDMxNTA3LCAzMTUxMSwgMzE1MTcsIDMxNTIxLCAzMTUyNiwgMzE1MzEsIDMxNTM3LCAzMTU0MiwgCi0gICAgMzE1NDgsIDMxNTUzLCAzMTU2MywgMzE1NzIsIDMxNTgwLCAzMTU4NSwgMzE1OTEsIDMxNTk2LCAzMTYwMywgMzE2MDcsIAotICAgIDMxNjE1LCAzMTYyMiwgMzE2MzUsIDMxNjQzLCAzMTY0NywgMzE2NTcsIDMxNjYyLCAzMTY2NiwgMzE2NzQsIDMxNjgyLCAKLSAgICAzMTY4NiwgMzE2OTUsIDMxNzAxLCAzMTcwNiwgMzE3MTQsIDMxNzI0LCAzMTczMywgMzE3NDIsIDMxNzUxLCAzMTc2MiwgCi0gICAgMzE3NzAsIDMxNzgxLCAzMTc5MCwgMzE3OTcsIDMxODAzLCAzMTgwOCwgMzE4MTksIDMxODI0LCAzMTgyOCwgMzE4MzEsIAotICAgIDMxODM1LCAzMTg0MywgMzE4NDksIDMxODU3LCAzMTg2NCwgMzE4NzAsIDMxODc1LCAzMTg4MSwgMjM3MiwgMzE4ODUsIAotICAgIDMxODg3LCAzMTg5MiwgMzE4OTcsIDMxOTAwLCAzMTkwMiwgMzE5MDYsIDMxOTA5LCAzMTkxNiwgMzE5MjAsIDMxOTI0LCAKLSAgICAzMTkyNywgMzE5MzMsIDMxOTQzLCAzMTk0OCwgMzE5NTQsIDMxOTU4LCAzMTk2MywgMzE5NzYsIDI0MDc0LCAzMTk4MiwgCi0gICAgMzE5OTEsIDE1NjU0LCAzMTk5OCwgMzIwMDcsIDI5NDMyLCAzMjAxNSwgMzIwMjAsIDMyMDI0LCAzMjAzMiwgMzIwMzksIAotICAgIDMyMDQ0LCAzMjA0OCwgMzIwNTMsIDMyMDU3LCAzMjA2NSwgMzIwNzEsIDMyMDc3LCAzMjA4MiwgMzIwODYsIDMyMDg5LCAKLSAgICAzMjA5NCwgMzIxMDcsIDMyMTIzLCAyMTA4MCwgMzIxNDAsIDMyMTUyLCAzMjE2OSwgMzIxODEsIDMyMTk1LCAyMTA5NywgCi0gICAgMjExMTYsIDMyMjA3LCAzMjIxOSwgMjYzNCwgMzIyMzMsIDMyMjM4LCAzMjI0MywgMzIyNDgsIDMyMjUyLCAzMjI1OSwgCi0gICAgMzIyNzEsIDMyMjc3LCAzMjI4MCwgMzIyOTEsIDMyMzAyLCAyOTg0OCwgNjcwLCAzMjMwNywgMzIzMTEsIDMyMzE0LCAKLSAgICAzMjMxOSwgMzIzMjQsIDMyMzMwLCAzMjMzNSwgMzIzNDAsIDMyMzQ2LCAzMjM1MiwgMzIzNTcsIDMyMzYxLCAzMjM2NiwgCi0gICAgMzIzNzEsIDMyMzc2LCAzMjM4MCwgMzIzODMsIDMyMzg5LCAzMjM5NCwgMzIzOTksIDMyNDA0LCAzMjQwOCwgMzI0MTMsIAotICAgIDMyNDE5LCAzMjQyNywgMjQyOTksIDMyNDMyLCAzMjQzNywgMzI0NDQsIDMyNDUwLCAzMjQ1NiwgMzI0NjEsIDMyNDY5LCAKLSAgICAyMDYxOCwgMzI0NzYsIDMyNDgxLCAzMjQ4NiwgMzI0OTEsIDMyNDk1LCAzMjQ5OCwgMzI1MDMsIDMyNTA3LCAzMjUxMSwgCi0gICAgMzI1MTgsIDMyNTI0LCAzMjUzMCwgMzI1MzYsIDMyNTQzLCAzMjU0OCwgMzI1NTQsIDMxNjc3LCAzMjU1OCwgMzI1NjIsIAotICAgIDMyNTY3LCAzMjU4MCwgMzI1ODUsIDMyNTkxLCAzMjU5OSwgMzI2MDYsIDMyNjE0LCAzMjYyNCwgMzI2MzAsIDMyNjM2LCAKLSAgICAzMjY0MiwgMzI2NDYsIDMyNjU1LCAzMjY2MCwgMzI2NjUsIDg3ODcsIDMyNjcwLCAzMjY3NywgMzI2ODMsIDMyNjkzLCAKLSAgICAzMjY5OCwgMzI3MDQsIDMyNzEyLCAzNTQzLCAzMjcxOSwgMzI3MjYsIDM1NDksIDMyNzMwLCAzMjczNSwgMzI3NDYsIAotICAgIDMyNzUzLCAzMjc1OSwgMzI3NjgsIDMyNzcyLCAzOTMyLCAzMjc3NSwgMzI3ODIsIDMyNzg4LCAzMjc5NCwgMzI4MDIsIAotICAgIDMyODEyLCAyNjk1OCwgMzI4MTksIDMyODI3LCAzMjgzMywgMzI4MzgsIDMyODQ0LCAzMjg0OSwgMzI4NTUsIDMyODU5LCAKLSAgICAzMjg2NiwgMzI4NzIsIDMyODgxLCAyNDA5NCwgMzI4ODgsIDMyODkzLCAzMjg5NywgMzI5MDUsIDMyOTEzLCA3OTc0LCAKLSAgICA0MzczLCAzMjkyMCwgMzI5MjQsIDMyOTI4LCAzMjkzMywgMzI5MzksIDMyOTQ0LCAzMjk0OSwgMzI5NTYsIDMwMzQ5LCAKLSAgICAzMjk2MiwgMzI5NjcsIDMyOTcxLCAzMjk3NiwgMzI5ODAsIDMyOTg5LCAzMjk5MywgMzI5OTksIDMzMDA2LCAzMzAxMiwgCi0gICAgMzMwMTksIDMzMDI0LCAzMzAzMywgMzMwMzgsIDMzMDQyLCAzMzA0NywgMzMwNTQsIDMzMDYyLCAzMzA3MCwgMzMwNzUsIAotICAgIDE5NTA4LCAzMzA3OSwgMzMwODIsIDMzMDg2LCAzMzA5MCwgMzMwOTQsIDMzMDk3LCAzMzA5OSwgMzMxMDQsIDMzMTEyLCAKLSAgICAzMzExNiwgMzMxMjMsIDMzMTI3LCAzMzEzNSwgMzMxNDIsIDMzMTUyLCAzMzE1NiwgMzMxNjAsIDMzMTY4LCAzMzE3NiwgCi0gICAgMzMxODIsIDMzMTg3LCAzMzE5NiwgMTE2NjksIDMzMjAyLCAzMzIxMSwgMzMyMTYsIDMzMjIzLCAzMzIzMSwgMzMyMzksIAotICAgIDMzMjQ3LCAzMzI1NCwgMzMyNjEsIDMzMjY4LCAzMzI3NSwgMzMyODIsIDMzMjg3LCAzMzI5MywgMzMzMTAsIDMzMzE4LCAKLSAgICAzMzMyOCwgMzMzMzYsIDMzMzQzLCAzODUsIDMzMzQ3LCAzMzM1MywgMzMzNTcsIDMzMzYyLCAzMTQyNiwgMzMzNjgsIAotICAgIDMzMzcxLCAzMzM3NSwgMzMzODMsIDM1NTQsIDMzMzkxLCAzMzM5NywgMzM0MDMsIDMzNDEyLCAzMzQyMiwgMzM0MjksIAotICAgIDMzNDM1LCAzNTYwLCAzNTY2LCAzMzQ0NCwgMzM0NTEsIDMzNDU5LCAzMzQ2NCwgMzM0NjgsIDMzNDc1LCAzMzQ4MywgCi0gICAgMzM0ODksIDMzNDk4LCAzMzUwOCwgMzM1MTQsIDMzNTIyLCAzMzUzMSwgMzM1MzgsIDMzNTQ2LCAyMDE3NSwgMzM1NTMsIAotICAgIDMzNTYwLCAzMzU2NiwgMzM1NzYsIDMzNTg1LCAzMzU5NiwgMzM2MDAsIDMzNjEwLCAzMzYxNiwgMzM2MjMsIDMzNjMxLCAKLSAgICAzMzY0MCwgMzM2NDksIDMzNjU5LCAzMzY3MCwgMzM2NzcsIDMzNjgyLCAzMzY4OSwgMjk2NywgMzM2OTcsIDMzNzAzLCAKLSAgICAzMzcwOCwgMzM3MTQsIDMzNzIwLCAzMzcyNSwgMzM3MzgsIDMzNzUxLCAzMzc2NCwgMzM3NzEsIDMzNzc3LCAzMzc4NSwgCi0gICAgMzM3OTAsIDMzNzk0LCAxNDMyLCAzMzc5OCwgMzM4MDMsIDMzODA4LCAzMzgxMywgMzM4MTgsIDMzODI0LCAzMzgyOSwgCi0gICAgMzM4MzQsIDMzODM5LCAzMzg0NCwgMzM4NDksIDMzODU0LCAzMzg1OSwgMzM4NjUsIDMzODcxLCAzMzg3NiwgMzM4ODEsIAotICAgIDMzODg3LCAzMzg5MiwgMzM4OTcsIDMzOTAyLCAzMzkwOCwgMzM5MTMsIDMzOTE4LCAzMzkyMywgMzM5MjgsIDMzOTM0LCAKLSAgICAzMzkzOSwgMzM5NDQsIDMzOTUwLCAzMzk1NSwgMzM5NjAsIDMzOTY1LCAzMzk3MCwgMzM5NzUsIDMzOTgxLCAzMzk4NiwgCi0gICAgMzM5OTIsIDMzOTk3LCAzNDAwMywgMzQwMDgsIDM0MDEzLCAzNDAxOCwgMzQwMjQsIDM0MDMwLCAzNDAzNiwgMzQwNDIsIAotICAgIDM0MDQ4LCAzNDA1NCwgMzQwNjAsIDM0MDY2LCAzNDA3MSwgMzQwNzYsIDM0MDgyLCAzNDA4NywgMzQwOTIsIDM0MDk3LCAKLSAgICAzNDEwMiwgMzQxMDcsIDM0MTEyLCAzNDExNywgMzQxMjMsIDM0MTI4LCAzNDEzMywgMzQxMzksIDM0MTQ1LCAxMDEsIAotICAgIDM0MTUwLCAzNDE1MiwgMzQxNTYsIDM0MTYwLCAzNDE2NCwgMzQxNjksIDM0MTczLCA3ODk1LCAzNDE3NywgMzQxODMsIAotICAgIDQ3MzgsIDM0MTg5LCAzNDE5MiwgMzQxOTcsIDM0MjAxLCAzNDIwNiwgMzQyMTAsIDM0MjE0LCAzNDIxOSwgODU5NCwgCi0gICAgMzQyMjMsIDM0MjI3LCAzNDIzMSwgMTM2MjMsIDM0MjM2LCAzNDI0MCwgMzQyNDUsIDM0MjUwLCAzNDI1NSwgMzQyNTksIAotICAgIDM0MjY2LCAyNDA5OCwgMzQyNzIsIDM0Mjc1LCAzNDI3OSwgMzQyODQsIDM0MjkwLCAzNDI5NCwgMzQzMDIsIDM0MzA4LCAKLSAgICAzNDMxMywgMzQzMTcsIDM0MzIzLCAzNDMyNywgMzQzMzEsIDM0MDQsIDM0MDksIDI3MTQ0LCAzNDMzNCwgMzQzNDIsIAotICAgIDM0MzQ5LCAzNDM1MywgMzQzNjAsIDM0MzY1LCAzMzMsIDM0MzcwLCAzNDM3NCwgMzQzODAsIDM0MzkyLCAzNDM5OCwgCi0gICAgMzQ0MDQsIDM0NDA4LCAzNDQxNCwgMzQ0MjMsIDM0NDI3LCAzNDQzMSwgMzQ0MzYsIDM0NDQxLCAzNDQ0NiwgMzQ0NTAsIAotICAgIDM0NDU0LCAzNDQ2MSwgMzQ0NjcsIDM0NDcyLCAzNDQ4NywgMzQ1MDIsIDM0NTE3LCAzNDUzMywgMzQ1NTEsIDg1NDQsIAotICAgIDM0NTY1LCAzNDU3MiwgMzQ1NzYsIDM0NTc5LCAzNDU4OCwgMzQ1OTMsIDM0NTk3LCAzNDYwNSwgMzE2MjgsIDM0NjEzLCAKLSAgICAzNDYxNywgMzQ2MjcsIDI3MTE0LCAzNDYzOCwgMzQ2NDIsIDM0NjUxLCAzNDY1OSwgODE1MiwgMTMxNjMsIDM0NjYzLCAKLSAgICAzNDY2NiwgMzQ2NjksIDY1NTcsIDM4MDIsIDM0Njc0LCAzNDY4MiwgMzQ2ODYsIDM0Njg5LCAzNDY5MywgMzQ2OTgsIAotICAgIDM0NzAzLCAzNDcwOSwgMzQ3MTUsIDM0NzIwLCAzNDcyNCwgMjM5NDYsIDM0NzI4LCAzNDczMiwgMzQ3MzgsIDM0NzQyLCAKLSAgICA3NDQ2LCAzNDc1MSwgMzQ3NTgsIDM0NzYyLCAxMDIxMCwgMzQ3NjksIDM0Nzc1LCAzNDc4MCwgMzQ3ODcsIDM0Nzk0LCAKLSAgICAzNDgwMSwgMjY0ODAsIDY0ODAsIDM0ODA4LCAzNDgxNSwgMzQ4MjIsIDM0ODI4LCAzNDgzMywgMzQ4NDAsIDM0ODUxLCAKLSAgICAzNDg1NywgMzQ4NjIsIDM0ODY3LCAzNDg3NCwgMzQ4NzgsIDM0ODgyLCAzNDg5MiwgMzQ5MDMsIDM0OTA5LCAzNDkxNCwgCi0gICAgMzQ5MTksIDM0OTI0LCAzNDkyOSwgMzQ5MzQsIDM0OTM4LCAzNDk0MiwgMzQ5NDgsIDM0OTU2LCAyMjczLCA4MjgsIDg2MTYsIAotICAgIDg2MjEsIDg2MjcsIDM0OTY1LCA4NjMyLCA4NjM3LCA4NjQzLCAzNDk3MCwgMzQ5ODAsIDM0OTg0LCA4NjQ4LCAzNDk4OSwgCi0gICAgMzQ5OTIsIDM0OTk3LCAzNTAwMSwgMzUwMDYsIDM1MDExLCAzNTAxOCwgMzUwMjUsIDM1MDMzLCA4NTU3LCAzNTA0MCwgCi0gICAgMzUwNDMsIDM1MDQ5LCAzNTA1OSwgNDQwNywgMzUwNjgsIDM1MDcyLCAzNTA4MCwgMzUwODQsIDM1MDk0LCAzNTEwMCwgCi0gICAgMzUxMTEsIDM1MTE3LCAzNTEyMywgMzUxMjgsIDM1MTM0LCAzNTE0MCwgMzUxNDYsIDM1MTUxLCAzNTE1NCwgMzUxNjEsIAotICAgIDM1MTY3LCAzNTE3MiwgMzUxNzksIDM1MTg2LCAzNTE5MCwgMzUyMDAsIDM1MjEzLCAzNTIyMiwgMzUyMzEsIDM1MjQyLCAKLSAgICAzNTI1NSwgMzUyNjYsIDM1Mjc1LCAzNTI4NiwgMzUyOTEsIDM1MzAwLCAzNTMwNSwgODY1MywgMzUzMTEsIDM1MzE4LCAKLSAgICAzNTMyNiwgMzUzMzEsIDM1MzM1LCAzNTM0MiwgMzUzNDksIDM3NTcsIDIxLCAzNTM1MywgMzUzNTgsIDE0OTU4LCAzNTM2MiwgCi0gICAgMzUzNjUsIDM1MzY4LCAyNjAwMSwgMzUzNzIsIDI2NDg5LCAzNTM4MCwgMzUzODQsIDM1Mzg4LCAzNTM5MSwgMzUzOTcsIAotICAgIDM1NDAzLCAzNTQxMSwgMzU0MTcsIDM1NDI0LCAyNTk5MywgMzU0MjgsIDI2MTc4LCAzNTQzMiwgMzU0NDEsIDM1NDQ3LCAKLSAgICAzNTQ1MywgMzU0NTgsIDM1NDYyLCAzNTQ2OCwgMzU0NzIsIDM1NDc1LCAzNTQ4MywgMzU0OTEsIDI0MTU2LCAzNTQ5NywgCi0gICAgMzU1MDQsIDM1NTEwLCAzNTUxNSwgMzU1MjAsIDM1NTI0LCAzNTUzMCwgMzU1MzUsIDM1NTQxLCAzOTczLCA3NTUsIDM1NTQ4LCAKLSAgICAzNTU1MiwgMzU1NTUsIDEzNTEzLCAzNTU2NywgMzM1MjcsIDM1NTc4LCAzNTU4MSwgMzU1ODgsIDM1NTk0LCAzNTU5OCwgCi0gICAgMzU2MDQsIDM1NjA5LCAzNTYxNSwgMzU2MjAsIDM1NjI1LCAzNTYyOSwgMzU2MzMsIDM1NjM4LCAzNTY0MywgMzU2NTMsIAotICAgIDM1NjU5LCAzNTY3MiwgMzU2NzgsIDM1Njg1LCAzNTY5MCwgMzU2OTYsIDM1NzAxLCAxNDg0NCwgMTQzNSwgMTAwMiwgCi0gICAgMjg5NzQsIDI4OTgwLCAzNTcwNiwgMjg5ODYsIDI4OTk5LCAyOTAwNSwgMjkwMTEsIDM1NzEyLCAyOTAxNywgMjkwMjMsIAotICAgIDM1NzE4LCAzNTcyNCwgMTQsIDM1NzMyLCAzNTczOSwgMzU3NDMsIDM1NzQ3LCAzNTc1NSwgMjk3MzcsIDM1NzU5LCAzNTc2MywgCi0gICAgMzU3NzAsIDM1Nzc1LCAzNTc3OSwgMzU3ODQsIDM1NzkwLCAzNTc5NSwgMzU4MDEsIDM1ODA2LCAzNTgxMCwgMzU4MTQsIAotICAgIDM1ODE4LCAzNTgyMywgMzU4MjcsIDM1ODMyLCAzNTgzNiwgMzU4NDMsIDM1ODQ4LCAzNTg1MiwgMzU4NTcsIDM1ODYxLCAKLSAgICAzNTg2NiwgMzU4NzAsIDM1ODc1LCAzNTg4MSwgMTM3MzMsIDEzNzM4LCAzNTg4NiwgMzU4OTAsIDM1ODkzLCAzNTg5NywgCi0gICAgMzU5MDIsIDM1OTA2LCAzNTkxMiwgMzU5MTksIDM1OTI0LCAzNTkzNCwgMzU5MzksIDM1OTQ3LCAzNTk1MSwgMzU5NTQsIAotICAgIDI5NzUyLCAzNTk1OCwgNDAyNiwgMzU5NjMsIDM1OTY4LCAzNTk3MiwgMzU5NzcsIDM1OTgxLCAzNTk4NiwgMTE2ODcsIAotICAgIDM1OTk3LCAzNjAwMSwgMzYwMDQsIDM2MDA5LCAzNjAxMywgMzYwMTcsIDM2MDIwLCAzNjAyNCwgNjU3NiwgMTE3MDMsIAotICAgIDM2MDI3LCAzNjAzMCwgMzYwMzUsIDM2MDM5LCAzNjA0OCwgMzYwNjQsIDM2MDgwLCAzNjA5MCwgMjU5MDAsIDM2MDk3LCAKLSAgICAzNjEwMSwgMzYxMDYsIDM2MTExLCAzNjExNSwgMzYxMTksIDMzNjQ0LCAzNjEyNSwgMzYxMzAsIDM2MTM0LCAzNjE0MSwgCi0gICAgMzYxNDYsIDM2MTUwLCAzNjE1NCwgMjQ5NTgsIDM2MTYwLCAxOTYwMywgMzYxNjUsIDM2MTcyLCAzNjE4MCwgMzYxODYsIAotICAgIDM2MTkzLCAzNjIwMSwgMzYyMDcsIDM2MjExLCAzNjIxNywgMzYyMjUsIDM2MjI5LCAzNjIzOCwgNzg3NiwgMzYyNDYsIAotICAgIDM2MjUwLCAzNjI1OCwgMzYyNjUsIDM2MjcwLCAzNjI3NSwgMzYyNzksIDM2MjgyLCAzNjI4NiwgMzYyODksIDM2MjkzLCAKLSAgICAzNjMwMCwgMzYzMDUsIDM2MzExLCAyNDM3NywgMjkwMzQsIDM2MzE1LCAzNjMyMiwgMzYzMjgsIDM2MzM0LCAzNjMzOSwgCi0gICAgMzYzNDIsIDM2MzQ0LCAzNjM1MSwgMzYzNTgsIDM2MzY0LCAzNjM2OCwgMzYzNzEsIDM2Mzc1LCAzNjM3OSwgMzYzODMsIAotICAgIDM2Mzg4LCAzNjM5MiwgMzYzOTYsIDM2Mzk5LCAzNjQwMywgMzY0MTcsIDIxMTQ2LCAzNjQzNiwgMzY0NDksIDM2NDYyLCAKLSAgICAzNjQ3NSwgMjExNjQsIDM2NDkwLCA4ODQ2LCAzNjUwNSwgMzY1MTEsIDM2NTE1LCAzNjUxOSwgMzY1MjYsIDM2NTMxLCAKLSAgICAzNjUzNSwgMzY1NDIsIDM2NTQ4LCAzNjU1MywgMzY1NTksIDM2NTY5LCAzNjU4MSwgMzY1OTIsIDM2NTk3LCAzNjYwNCwgCi0gICAgMzY2MDgsIDM2NjEyLCAzNjYxNSwgMTQxMjksIDM2MDUsIDM2NjIzLCAxMzc2MCwgMzY2MzYsIDM2NjQzLCAzNjY0NywgCi0gICAgMzY2NTEsIDM2NjU2LCAzNjY2MSwgMzY2NjcsIDM2NjcxLCAzNjY3NSwgMzY2NzgsIDYxODgsIDEzNzcxLCAzNjY4MywgCi0gICAgMzY2ODcsIDM2NjkzLCAzNjcwMiwgMzY3MDcsIDMzNTA0LCAzNjcxMywgMzY3MTgsIDM2NzIyLCAzNjcyNywgMzY3MzQsIAotICAgIDM2NzM4LCAzNjc0MSwgMTI4MjQsIDM2NzQ2LCAzNjc1MywgMTAwOSwgMzY3NTcsIDM2NzYyLCAzNjc2NywgMzY3NzMsIAotICAgIDM2Nzc4LCAzNjc4MywgMzY3ODcsIDM2Nzk3LCAzNjgwMiwgMzY4MDgsIDM2ODEzLCAzNjgxOSwgMzY4MjQsIDM2ODMwLCAKLSAgICAzNjg0MCwgMzY4NDUsIDM2ODUwLCAzNjg1NCwgNTY4MywgNTY5NSwgMzY4NTksIDM2ODYyLCAzNjg2OSwgMzY4NzUsIAotICAgIDMxNzkzLCAzMTgwMCwgMzY4ODQsIDM2ODg4LCAyOTgwMCwgMzY4OTYsIDM2OTA3LCAzNjkxNSwgMzM2OTIsIDM2OTIyLCAKLSAgICAzNjkyNywgMzY5MzIsIDM2OTQzLCAzNjk1MCwgMzY5NjEsIDI5ODI0LCAxOTYwOSwgMzY5NjksIDcyMiwgMzY5NzQsIAotICAgIDM2OTgwLCAyNTk4NCwgMzY5ODYsIDM2OTkxLCAzNzAwMSwgMzcwMTAsIDM3MDE3LCAzNzAyMywgMzcwMjcsIDM3MDMwLCAKLSAgICAzNzAzNywgMzcwNDMsIDM3MDUwLCAzNzA1NiwgMzcwNjYsIDM3MDc0LCAzNzA4MCwgMzcwODYsIDM3MDkxLCAzNzA5NSwgCi0gICAgMzcxMDIsIDM3MTA4LCAzNzExNSwgMzYzODQsIDUzMCwgMTIxMTIsIDM3MTIxLCAzNzEyNiwgMzcxMjksIDM3MTM1LCAKLSAgICAzNzE0MywgMTM2NCwgMzcxNDgsIDM3MTUyLCAzNzE1NywgMzcxNjQsIDM3MTcwLCAzNzE3NCwgMzcxNzksIDM3MTg4LCAKLSAgICAzNzE5NSwgMzcyMDUsIDM3MjExLCAyNjAxOSwgMzcyMjgsIDM3MjM3LCAzNzI0NSwgMzcyNTEsIDM3MjU2LCAzNzI2MywgCi0gICAgMzcyNjksIDM3Mjc3LCAzNzI4NiwgMzcyOTQsIDM3Mjk4LCAzNzMwMywgMzczMTEsIDI5ODMzLCAzNzMxNywgMzczMzYsIAotICAgIDE0MDYyLCAzNzM1MCwgMzczNjYsIDM3MzgwLCAzNzM4NiwgMzczOTEsIDM3Mzk2LCAzNzQwMSwgMzc0MDcsIDI5ODM5LCAKLSAgICAzNzQxMiwgMzc0MTksIDM3NDI0LCAzNzQyOCwgMzQxLCAyODc4LCAzNzQzNSwgMzc0NDAsIDM3NDQ1LCAyNTI3NSwgMzcyNjYsIAotICAgIDM3NDQ5LCAzNzQ1NCwgMzc0NjIsIDM3NDY2LCAzNzQ2OSwgMzc0NzUsIDM3NDc5LCAyNjA3NCwgMzc0ODIsIDM3NDg3LCAKLSAgICAzNzQ5MSwgMzc0OTQsIDM3NDk5LCAzNzUwMywgMzc1MDgsIDM3NTEzLCAzNzUxNywgMzc1MjIsIDM3NTI2LCAzNzUzMCwgCi0gICAgMTkzNDYsIDE5MzU3LCAzNzUzNCwgMzc1MzksIDM3NTQ1LCAyNDkxNSwgMzc1NTAsIDM3NTU0LCAxOTQyNSwgMTQyODAsIAotICAgIDM3NTU3LCAzNzU2MiwgMzc1NjcsIDM3NTcyLCAzNzU3NywgMzc1ODIsIDM3NTg3LCAzNzU5MiwgNDQwLCA0MywgMjkwNTIsIAotICAgIDI5MDU3LCAyOTA2MiwgMjkwNjgsIDI5MDczLCAyOTA3OCwgMzc1OTcsIDI5MDgyLCAzNzYwMSwgMzc2MDUsIDI5MDg3LCAKLSAgICAyOTA5MywgMzc2MDksIDI5MTA0LCAyOTEwOSwgMzc2MTcsIDM3NjIyLCAyOTExNSwgMzc2MjcsIDM3NjMyLCAzNzYzNywgCi0gICAgMzc2NDIsIDM3NjQ4LCAzNzY1NCwgMzc2NjAsIDI5MTMyLCAzNzY3MywgMzc2NzksIDI5MTM2LCAzNzY4MywgMjkxNDEsIAotICAgIDM3Njg4LCAyOTE0NiwgMjkxNTEsIDM3NjkxLCAzNzY5NiwgMzc3MDAsIDI4Nzk1LCAzNzcwNiwgMTE5MTEsIDM3NzEzLCAKLSAgICAzNzcxOCwgMjkxNTYsIDM3NzIyLCAzNzcyNywgMzc3MzIsIDM3NzM3LCAzNzc0MSwgMzc3NDYsIDM3NzUxLCAzNzc1NywgCi0gICAgMzc3NjIsIDM3NzY3LCAzNzc3MywgMzc3NzksIDM3Nzg0LCAzNzc4OCwgMzc3OTMsIDM3Nzk4LCAzNzgwMywgMzc4MDcsIAotICAgIDM3ODEyLCAzNzgxNywgMzc4MjIsIDM3ODI4LCAzNzgzNCwgMzc4NDAsIDM3ODQ1LCAzNzg0OSwgMzc4NTQsIDM3ODU4LCAKLSAgICAyOTE2MCwgMjkxNjUsIDI5MTcwLCAzNzg2MiwgMzc4NjYsIDI5MTc1LCAyOTE4MSwgMjkxODcsIDI5MTk5LCAzNzg3OCwgCi0gICAgMjM5ODMsIDM3ODgyLCAzNzg4NiwgMzc4OTEsIDM3ODk2LCAzNzkwMSwgMzc5MDUsIDM3OTA5LCAzNzkxOSwgMzc5MjQsIAotICAgIDM3OTI5LCAzNzkzMywgMzc5MzcsIDM3OTQwLCAzNzk0OCwgMjkyNDcsIDM3OTUzLCAxNDQyLCAzNzk1OSwgMzc5NjcsIAotICAgIDM3OTc2LCAzNzk4MCwgMzc5ODgsIDM3OTk0LCAzODAwMiwgMzgwMTgsIDM4MDIzLCAzODAzOCwgMjkyODQsIDE3MTIsIAotICAgIDEwMzc1LCAzODA0MiwgMjkyNCwgMzgwNTQsIDM4MDU1LCAzODA2MywgMzgwNzAsIDM4MDc1LCAzODA4MiwgMzgwODcsIAotICAgIDc3NDYsIDEwOTAsIDg2NzUsIDM4MDk0LCAzODA5OSwgMzgxMDIsIDM4MTA1LCAzODExNCwgMTI3NSwgMzgxMTksIDM2NTMyLCAKLSAgICAzODEyNiwgMzgxMzEsIDIwNTgzLCAyNTExLCAzODEzNSwgOTA5NCwgMzgxNDUsIDM4MTUxLCAyMjkxLCAyMzAxLCAzODE2MCwgCi0gICAgMzgxNjksIDM4MTc5LCAzODE5MCwgMzIzNSwgMzE5NDQsIDg3MjcsIDM3MzUsIDE0ODgyLCAxMjgwLCAzODE5NSwgMzgyMDMsIAotICAgIDM4MjEwLCAzODIxNSwgMzgyMTksIDM4MjIzLCAyMTkzMCwgODc1NCwgMzgyMzEsIDM4MjQwLCAzODI0OSwgMzgyNTcsIAotICAgIDM4MjY0LCAzODI2OSwgMzgyODIsIDM4Mjk1LCAzODMwNywgMzgzMTksIDM4MzMxLCAzODM0NCwgMzgzNTUsIDM4MzY2LCAKLSAgICAzODM3NiwgMzgzODQsIDM4MzkyLCAzODQwNCwgMzg0MTYsIDM4NDI3LCAzODQzNiwgMzg0NDQsIDM4NDUxLCAzODQ2MywgCi0gICAgMzg0NzAsIDM4NDc5LCAzODQ4NiwgMzg0OTksIDM4NTA0LCAzODUxNCwgMzg1MTksIDM4NTI1LCAzODUzMCwgMzQ3NTksIAotICAgIDM4NTM0LCAzODU0MSwgMzg1NDUsIDM4NTUyLCAzODU2MCwgMjQ3MiwgMzg1NjcsIDM4NTc4LCAzODU4OCwgMzg1OTcsIAotICAgIDM4NjA1LCAzODYxNSwgMzg2MjMsIDM4NjMzLCAzODY0MiwgMzg2NDcsIDM4NjUzLCAzODY1OSwgMzg2NzAsIDM4NjgwLCAKLSAgICAzODY4OSwgMzg2OTgsIDM4NzA4LCAzODcxNiwgMzg3MjUsIDM4NzMwLCAzODczNSwgMzg3NDAsIDE2NjgsIDM3LCAzODc0OCwgCi0gICAgMzg3NTYsIDM4NzY3LCAzODc3OCwgMTQ1NjMsIDM4Nzg4LCAzODc5NSwgMzg4MDEsIDM4ODA2LCAzODgxMCwgMzg4MjEsIAotICAgIDM4ODMxLCAzODg0MCwgMzg4NTEsIDE0OTMxLCAxNDkzNiwgMzg4NTYsIDM4ODY1LCAzODg3MCwgMzg4ODAsIDM4ODg1LCAKLSAgICAzODg5MywgMzg5MDEsIDM4OTA4LCAzODkxNCwgNTUzNiwgMTAzOCwgMzg5MTgsIDM4OTI0LCAzODkyOSwgMzg5MzIsIDIwNzUsIAotICAgIDM2NjQ4LCAzODk0MCwgMzg5NDQsIDM4OTQ3LCAxNDc1LCAzODk1MywgMTIyNjEsIDEyODUsIDM4OTU4LCAzODk3MSwgCi0gICAgMzg5ODUsIDI1OTcsIDM5MDAzLCAzOTAxNSwgMzkwMjcsIDI2MTEsIDI2MjgsIDM5MDQxLCAzOTA1NCwgMjY0MywgMzkwNjgsIAotICAgIDM5MDgwLCAyNjU4LCAzOTA5NCwgMTI5MSwgMTI5NywgMTMwMywgOTAxMiwgMzkwOTksIDM5MTA0LCAzOTEwOSwgMzkxMTMsIAotICAgIDM5MTI4LCAzOTE0MywgMzkxNTgsIDM5MTczLCAzOTE4OCwgMzkyMDMsIDM5MjE4LCAzOTIzMywgMzkyNDgsIDM5MjYzLCAKLSAgICAzOTI3OCwgMzkyOTMsIDM5MzA4LCAzOTMyMywgMzkzMzgsIDM5MzUzLCAzOTM2OCwgMzkzODMsIDM5Mzk4LCAzOTQxMywgCi0gICAgMzk0MjgsIDM5NDQzLCAzOTQ1OCwgMzk0NzMsIDM5NDg4LCAzOTUwMywgMzk1MTgsIDM5NTMzLCAzOTU0OCwgMzk1NjMsIAotICAgIDM5NTc4LCAzOTU5MywgMzk2MDgsIDM5NjIzLCAzOTYzOCwgMzk2NTMsIDM5NjY4LCAzOTY4MywgMzk2OTgsIDM5NzEzLCAKLSAgICAzOTcyOCwgMzk3NDMsIDM5NzU4LCAzOTc3MywgMzk3ODgsIDM5ODAzLCAzOTgxOCwgMzk4MzMsIDM5ODQ4LCAzOTg2MywgCi0gICAgMzk4NzgsIDM5ODkzLCAzOTkwOCwgMzk5MjMsIDM5OTM4LCAzOTk1MywgMzk5NjgsIDM5OTgzLCAzOTk5OCwgNDAwMTMsIAotICAgIDQwMDI4LCA0MDA0MywgNDAwNTgsIDQwMDczLCA0MDA4OCwgNDAxMDMsIDQwMTE4LCA0MDEzMywgNDAxNDgsIDQwMTYzLCAKLSAgICA0MDE3OCwgNDAxOTMsIDQwMjA4LCA0MDIyMywgNDAyMzgsIDQwMjUzLCA0MDI2OCwgNDAyODMsIDQwMjk4LCA0MDMxMywgCi0gICAgNDAzMjgsIDQwMzQzLCA0MDM1OCwgNDAzNzMsIDQwMzg4LCA0MDQwMywgNDA0MTgsIDQwNDMzLCA0MDQ0OCwgNDA0NjMsIAotICAgIDQwNDc4LCA0MDQ5MywgNDA1MDgsIDQwNTIzLCA0MDUzOCwgNDA1NTMsIDQwNTY4LCA0MDU4MywgNDA1OTgsIDQwNjEzLCAKLSAgICA0MDYyOCwgNDA2NDMsIDQwNjU4LCA0MDY3MywgNDA2ODgsIDQwNzAzLCA0MDcxOCwgNDA3MzMsIDQwNzQ4LCA0MDc2MywgCi0gICAgNDA3NzgsIDQwNzkzLCA0MDgwOCwgNDA4MjMsIDQwODM4LCA0MDg1MywgNDA4NjgsIDQwODgzLCA0MDg5OCwgNDA5MTMsIAotICAgIDQwOTI4LCA0MDk0MywgNDA5NTgsIDQwOTczLCA0MDk4OCwgNDEwMDMsIDQxMDE4LCA0MTAzMywgNDEwNDgsIDQxMDYzLCAKLSAgICA0MTA3OCwgNDEwOTMsIDQxMTA4LCA0MTEyMywgNDExMzgsIDQxMTUzLCA0MTE2OCwgNDExODMsIDQxMTk4LCA0MTIxMywgCi0gICAgNDEyMjgsIDQxMjQzLCA0MTI1OCwgNDEyNzMsIDQxMjg4LCA0MTMwMywgNDEzMTgsIDQxMzMzLCA0MTM0OCwgNDEzNjMsIAotICAgIDQxMzc4LCA0MTM5MywgNDE0MDgsIDQxNDIzLCA0MTQzOCwgNDE0NTMsIDQxNDY4LCA0MTQ4MywgNDE0OTgsIDQxNTEzLCAKLSAgICA0MTUyOCwgNDE1NDMsIDQxNTU4LCA0MTU3MywgNDE1ODgsIDQxNjAzLCA0MTYxOCwgNDE2MzMsIDQxNjQ4LCA0MTY2MywgCi0gICAgNDE2NzgsIDQxNjkzLCA0MTcwOCwgNDE3MjMsIDQxNzM4LCA0MTc1MywgNDE3NjgsIDQxNzgzLCA0MTc5OCwgNDE4MTMsIAotICAgIDQxODI4LCA0MTg0MywgNDE4NTgsIDQxODczLCA0MTg4OCwgNDE5MDMsIDQxOTE4LCA0MTkzMywgNDE5NDgsIDQxOTYzLCAKLSAgICA0MTk3OCwgNDE5OTMsIDQyMDA4LCA0MjAyMywgNDIwMzgsIDQyMDUzLCA0MjA2OCwgNDIwODMsIDQyMDk4LCA0MjExMywgCi0gICAgNDIxMjgsIDQyMTQzLCA0MjE1OCwgNDIxNzMsIDQyMTg4LCA0MjIwMywgNDIyMTgsIDQyMjMzLCA0MjI0OCwgNDIyNjMsIAotICAgIDQyMjc4LCA0MjI5MywgNDIzMDgsIDQyMzIzLCA0MjMzOCwgNDIzNTMsIDQyMzY4LCA0MjM4MywgNDIzOTgsIDQyNDEzLCAKLSAgICA0MjQyOCwgNDI0NDMsIDQyNDU4LCA0MjQ3MywgNDI0ODgsIDQyNTAzLCA0MjUxOCwgNDI1MzMsIDQyNTQ4LCA0MjU2MywgCi0gICAgNDI1NzgsIDQyNTkzLCA0MjYwOCwgNDI2MjMsIDQyNjM4LCA0MjY1MywgNDI2NjgsIDQyNjgzLCA0MjY5OCwgNDI3MTMsIAotICAgIDQyNzI4LCA0Mjc0MywgNDI3NTgsIDQyNzczLCA0Mjc4OCwgNDI4MDMsIDQyODE4LCA0MjgzMywgNDI4NDgsIDQyODYzLCAKLSAgICA0Mjg3OCwgNDI4OTMsIDQyOTA4LCA0MjkyMywgNDI5MzgsIDQyOTUzLCA0Mjk2OCwgNDI5ODMsIDQyOTk4LCA0MzAxMywgCi0gICAgNDMwMjgsIDQzMDQzLCA0MzA1OCwgNDMwNzMsIDQzMDg4LCA0MzEwMywgNDMxMTgsIDQzMTMzLCA0MzE0OCwgNDMxNjMsIAotICAgIDQzMTc4LCA0MzE5MywgNDMyMDgsIDQzMjIzLCA0MzIzOCwgNDMyNTMsIDQzMjY4LCA0MzI4MywgNDMyOTgsIDQzMzEzLCAKLSAgICA0MzMyOCwgNDMzNDMsIDQzMzU4LCA0MzM3MywgNDMzODgsIDQzNDAzLCA0MzQxOCwgNDM0MzMsIDQzNDQ4LCA0MzQ2MywgCi0gICAgNDM0NzgsIDQzNDkzLCA0MzUwOCwgNDM1MjMsIDQzNTM4LCA0MzU1MywgNDM1NjgsIDQzNTgzLCA0MzU5OCwgNDM2MTMsIAotICAgIDQzNjI4LCA0MzY0MywgNDM2NTgsIDQzNjczLCA0MzY4OCwgNDM3MDMsIDQzNzE4LCA0MzczMywgNDM3NDgsIDQzNzYzLCAKLSAgICA0Mzc3OCwgNDM3OTMsIDQzODA4LCA0MzgyMywgNDM4MzgsIDQzODUzLCA0Mzg2OCwgNDM4ODMsIDQzODk4LCA0MzkxMywgCi0gICAgNDM5MjgsIDQzOTQzLCA0Mzk1OCwgNDM5NzMsIDQzOTg4LCA0NDAwMywgNDQwMTgsIDQ0MDMzLCA0NDA0OCwgNDQwNjMsIAotICAgIDQ0MDc4LCA0NDA5MywgNDQxMDgsIDQ0MTIzLCA0NDEzOCwgNDQxNTMsIDQ0MTY4LCA0NDE4MywgNDQxOTgsIDQ0MjEzLCAKLSAgICA0NDIyOCwgNDQyNDMsIDQ0MjU4LCA0NDI3MywgNDQyODgsIDQ0MzAzLCA0NDMxOCwgNDQzMzMsIDQ0MzQ4LCA0NDM2MywgCi0gICAgNDQzNzgsIDQ0MzkzLCA0NDQwOCwgNDQ0MjMsIDQ0NDM4LCA0NDQ1MywgNDQ0NjgsIDQ0NDgzLCA0NDQ5OCwgNDQ1MTMsIAotICAgIDQ0NTI4LCA0NDU0MywgNDQ1NTgsIDQ0NTczLCA0NDU4OCwgNDQ2MDMsIDQ0NjE4LCA0NDYzMywgNDQ2NDgsIDQ0NjYzLCAKLSAgICA0NDY3OCwgNDQ2OTMsIDQ0NzA4LCA0NDcyMywgNDQ3MzgsIDQ0NzUzLCA0NDc2OCwgNDQ3ODMsIDQ0Nzk4LCA0NDgxMywgCi0gICAgNDQ4MjgsIDQ0ODQzLCA0NDg1OCwgNDQ4NzMsIDQ0ODg4LCA0NDkwMywgNDQ5MTgsIDQ0OTMzLCA0NDk0OCwgNDQ5NjMsIAotICAgIDQ0OTc4LCA0NDk5MywgNDUwMDgsIDQ1MDIzLCA0NTAzOCwgNDUwNTMsIDQ1MDY4LCA0NTA4MywgNDUwOTgsIDQ1MTEzLCAKLSAgICA0NTEyOCwgNDUxNDMsIDQ1MTU4LCA0NTE3MywgNDUxODgsIDQ1MjAzLCA0NTIxOCwgNDUyMzMsIDQ1MjQ4LCA0NTI2MywgCi0gICAgNDUyNzgsIDQ1MjkzLCA0NTMwOCwgNDUzMjMsIDQ1MzM4LCA0NTM1MywgNDUzNjgsIDQ1MzgzLCA0NTM5OCwgNDU0MTMsIAotICAgIDQ1NDI4LCA0NTQ0MywgNDU0NTgsIDQ1NDczLCA0NTQ4OCwgNDU1MDMsIDQ1NTE4LCA0NTUzMywgNDU1NDgsIDQ1NTYzLCAKLSAgICA0NTU3OCwgNDU1OTMsIDQ1NjA4LCA0NTYyMywgNDU2MzgsIDQ1NjUzLCA0NTY2OCwgNDU2ODMsIDQ1Njk4LCA0NTcxMywgCi0gICAgNDU3MjgsIDQ1NzQzLCA0NTc1OCwgNDU3NzMsIDQ1Nzg4LCA0NTgwMywgNDU4MTgsIDQ1ODMzLCA0NTg0OCwgNDU4NjMsIAotICAgIDQ1ODc4LCA0NTg5MywgNDU5MDgsIDQ1OTIzLCA0NTkzOCwgNDU5NTMsIDQ1OTY4LCA0NTk4MywgNDU5OTgsIDQ2MDEzLCAKLSAgICA0NjAyOCwgNDYwNDMsIDQ2MDU4LCA0NjA3MywgNDYwODgsIDQ2MTAzLCA0NjExOCwgNDYxMzMsIDQ2MTQ4LCA0NjE2MywgCi0gICAgNDYxNzgsIDQ2MTkzLCA0NjIwOCwgNDYyMjMsIDQ2MjM4LCA0NjI1MywgNDYyNjgsIDQ2MjgzLCA0NjI5OCwgNDYzMTMsIAotICAgIDQ2MzI4LCA0NjM0MywgNDYzNTgsIDQ2MzczLCA0NjM4OCwgNDY0MDMsIDQ2NDE4LCA0NjQzMywgNDY0NDgsIDQ2NDYzLCAKLSAgICA0NjQ3OCwgNDY0OTMsIDQ2NTA4LCA0NjUyMywgNDY1MzgsIDQ2NTUzLCA0NjU2OCwgNDY1ODMsIDQ2NTk4LCA0NjYxMywgCi0gICAgNDY2MjgsIDQ2NjQzLCA0NjY1OCwgNDY2NzMsIDQ2Njg4LCA0NjcwMywgNDY3MTgsIDQ2NzMzLCA0Njc0OCwgNDY3NjMsIAotICAgIDQ2Nzc4LCA0Njc5MywgNDY4MDgsIDQ2ODIzLCA0NjgzOCwgNDY4NTMsIDQ2ODY4LCA0Njg4MywgNDY4OTksIDQ2OTE1LCAKLSAgICA0NjkzMSwgNDY5NDcsIDQ2OTYzLCA0Njk3OSwgNDY5OTUsIDQ3MDExLCA0NzAyNywgNDcwNDMsIDQ3MDU5LCA0NzA3NSwgCi0gICAgNDcwOTEsIDQ3MTA3LCA0NzEyMywgNDcxMzksIDQ3MTU1LCA0NzE3MSwgNDcxODcsIDQ3MjAzLCA0NzIxOSwgNDcyMzUsIAotICAgIDQ3MjUxLCA0NzI2NywgNDcyODMsIDQ3Mjk5LCA0NzMxNSwgNDczMzEsIDQ3MzQ3LCA0NzM2MywgNDczNzksIDQ3Mzk1LCAKLSAgICA0NzQxMSwgNDc0MjcsIDQ3NDQzLCA0NzQ1OSwgNDc0NzUsIDQ3NDkxLCA0NzUwNywgNDc1MjMsIDQ3NTM5LCA0NzU1NSwgCi0gICAgNDc1NzEsIDQ3NTg3LCA0NzYwMywgNDc2MTksIDQ3NjM1LCA0NzY1MSwgNDc2NjcsIDQ3NjgzLCA0NzY5OSwgNDc3MTUsIAotICAgIDQ3NzMxLCA0Nzc0NywgNDc3NjMsIDQ3Nzc5LCA0Nzc5NSwgNDc4MTEsIDQ3ODI3LCA0Nzg0MywgNDc4NTksIDQ3ODc1LCAKLSAgICA0Nzg5MSwgNDc5MDcsIDQ3OTIzLCA0NzkzOSwgNDc5NTUsIDQ3OTcxLCA0Nzk4NywgNDgwMDMsIDQ4MDE5LCA0ODAzNSwgCi0gICAgNDgwNTEsIDQ4MDY3LCA0ODA4MywgNDgwOTksIDQ4MTE1LCA0ODEzMSwgNDgxNDcsIDQ4MTYzLCA0ODE3OSwgNDgxOTUsIAotICAgIDQ4MjExLCA0ODIyNywgNDgyNDMsIDQ4MjU5LCA0ODI3NSwgNDgyOTEsIDQ4MzA3LCA0ODMyMywgNDgzMzksIDQ4MzU1LCAKLSAgICA0ODM3MSwgNDgzODcsIDQ4NDAzLCA0ODQxOSwgNDg0MzUsIDQ4NDUxLCA0ODQ2NywgNDg0ODMsIDQ4NDk5LCA0ODUxNSwgCi0gICAgNDg1MzEsIDQ4NTQ3LCA0ODU2MywgNDg1NzksIDQ4NTk1LCA0ODYxMSwgNDg2MjcsIDQ4NjQzLCA0ODY1OSwgNDg2NzUsIAotICAgIDQ4NjkxLCA0ODcwNywgNDg3MjMsIDQ4NzM5LCA0ODc1NSwgNDg3NzEsIDQ4Nzg3LCA0ODgwMywgNDg4MTksIDQ4ODM1LCAKLSAgICA0ODg1MSwgNDg4NjcsIDQ4ODgzLCA0ODg5OSwgNDg5MTUsIDQ4OTMxLCA0ODk0NywgNDg5NjMsIDQ4OTc5LCA0ODk5NSwgCi0gICAgNDkwMTEsIDQ5MDI3LCA0OTA0MywgNDkwNTksIDQ5MDc1LCA0OTA5MSwgNDkxMDcsIDQ5MTIzLCA0OTEzOSwgNDkxNTUsIAotICAgIDQ5MTcxLCA0OTE4NywgNDkyMDMsIDQ5MjE5LCA0OTIzNSwgNDkyNTEsIDQ5MjY3LCA0OTI4MywgNDkyOTksIDQ5MzE1LCAKLSAgICA0OTMzMSwgNDkzNDcsIDQ5MzYzLCA0OTM3OSwgNDkzOTUsIDQ5NDExLCA0OTQyNywgNDk0NDMsIDQ5NDU5LCA0OTQ3NSwgCi0gICAgNDk0OTEsIDQ5NTA3LCA0OTUyMywgNDk1MzksIDQ5NTU1LCA0OTU3MSwgNDk1ODcsIDQ5NjAzLCA0OTYxOSwgNDk2MzUsIAotICAgIDQ5NjUxLCA0OTY2NywgNDk2ODMsIDQ5Njk5LCA0OTcxNSwgNDk3MzEsIDQ5NzQ3LCA0OTc2MywgNDk3NzksIDQ5Nzk1LCAKLSAgICA0OTgxMSwgNDk4MjcsIDQ5ODQzLCA0OTg1OSwgNDk4NzUsIDQ5ODkxLCA0OTkwNywgNDk5MjMsIDQ5OTM5LCA0OTk1NSwgCi0gICAgNDk5NzEsIDQ5OTg3LCA1MDAwMywgNTAwMTksIDUwMDM1LCA1MDA1MSwgNTAwNjcsIDUwMDgzLCA1MDA5OSwgNTAxMTUsIAotICAgIDUwMTMxLCA1MDE0NywgNTAxNjMsIDUwMTc5LCA1MDE5NSwgNTAyMTEsIDUwMjI3LCA1MDI0MywgNTAyNTksIDUwMjc1LCAKLSAgICA1MDI5MSwgNTAzMDcsIDUwMzIzLCA1MDMzOSwgNTAzNTUsIDUwMzcxLCA1MDM4NywgNTA0MDMsIDUwNDE5LCA1MDQzNSwgCi0gICAgNTA0NTEsIDUwNDY3LCA1MDQ4MywgNTA0OTksIDUwNTE1LCA1MDUzMSwgNTA1NDcsIDUwNTYzLCA1MDU3OSwgNTA1OTUsIAotICAgIDUwNjExLCA1MDYyNywgNTA2NDMsIDUwNjU5LCA1MDY3NSwgNTA2OTEsIDUwNzA3LCA1MDcyMywgNTA3MzksIDUwNzU1LCAKLSAgICA1MDc3MSwgNTA3ODcsIDUwODAzLCA1MDgxOSwgNTA4MzUsIDUwODUxLCA1MDg2NywgNTA4ODMsIDUwODk5LCA1MDkxNSwgCi0gICAgNTA5MzEsIDUwOTQ3LCA1MDk2MywgNTA5NzksIDUwOTk1LCA1MTAxMSwgNTEwMjcsIDUxMDQzLCA1MTA1OSwgNTEwNzUsIAotICAgIDUxMDkxLCA1MTEwNywgNTExMjMsIDUxMTM5LCA1MTE1NSwgNTExNzEsIDUxMTg3LCA1MTIwMywgNTEyMTksIDUxMjM1LCAKLSAgICA1MTI1MSwgNTEyNjcsIDUxMjgzLCA1MTI5OSwgNTEzMTUsIDUxMzMxLCA1MTM0NywgNTEzNjMsIDUxMzc5LCA1MTM5NSwgCi0gICAgNTE0MTEsIDUxNDI3LCA1MTQ0MywgNTE0NTksIDUxNDc1LCA1MTQ5MSwgNTE1MDcsIDUxNTIzLCA1MTUzOSwgNTE1NTUsIAotICAgIDUxNTcxLCA1MTU4NywgNTE2MDMsIDUxNjE5LCA1MTYzNSwgNTE2NTEsIDUxNjY3LCA1MTY4MywgNTE2OTksIDUxNzE1LCAKLSAgICA1MTczMSwgNTE3NDcsIDUxNzYzLCA1MTc3OSwgNTE3OTUsIDUxODExLCA1MTgyNywgNTE4NDMsIDUxODU5LCA1MTg3NSwgCi0gICAgNTE4OTEsIDUxOTA3LCA1MTkyMywgNTE5MzksIDUxOTU1LCA1MTk3MSwgNTE5ODcsIDUyMDAzLCA1MjAxOSwgNTIwMzUsIAotICAgIDUyMDUxLCA1MjA2NywgNTIwODMsIDUyMDk5LCA1MjExNSwgNTIxMzEsIDUyMTQ3LCA1MjE2MywgNTIxNzksIDUyMTk1LCAKLSAgICA1MjIxMSwgNTIyMjcsIDUyMjQzLCA1MjI1OSwgNTIyNzUsIDUyMjkxLCA1MjMwNywgNTIzMjMsIDUyMzM5LCA1MjM1NSwgCi0gICAgNTIzNzEsIDUyMzg3LCA1MjQwMywgNTI0MTksIDUyNDM1LCA1MjQ1MSwgNTI0NjcsIDUyNDgzLCA1MjQ5OSwgNTI1MTUsIAotICAgIDUyNTMxLCA1MjU0NywgNTI1NjMsIDUyNTc5LCA1MjU5NSwgNTI2MTEsIDUyNjI3LCA1MjY0MywgNTI2NTksIDUyNjc1LCAKLSAgICA1MjY5MSwgNTI3MDcsIDUyNzIzLCA1MjczOSwgNTI3NTUsIDUyNzcxLCA1Mjc4NywgNTI4MDMsIDUyODE5LCA1MjgzNSwgCi0gICAgNTI4NTEsIDUyODY3LCA1Mjg4MywgNTI4OTksIDUyOTE1LCA1MjkzMSwgNTI5NDcsIDUyOTYzLCA1Mjk3OSwgNTI5OTUsIAotICAgIDUzMDExLCA1MzAyNywgNTMwNDMsIDUzMDU5LCA1MzA3NSwgNTMwOTEsIDUzMTA3LCA1MzEyMywgNTMxMzksIDUzMTU1LCAKLSAgICA1MzE3MSwgNTMxODcsIDUzMjAzLCA1MzIxOSwgNTMyMzUsIDUzMjUxLCA1MzI2NywgNTMyODMsIDUzMjk5LCA1MzMxNSwgCi0gICAgNTMzMzEsIDUzMzQ3LCA1MzM2MywgNTMzNzksIDUzMzk1LCA1MzQxMSwgNTM0MjcsIDUzNDQzLCA1MzQ1OSwgNTM0NzUsIAotICAgIDUzNDkxLCA1MzUwNywgNTM1MjMsIDUzNTM5LCA1MzU1NSwgNTM1NzEsIDUzNTg3LCA1MzYwMywgNTM2MTksIDUzNjM1LCAKLSAgICA1MzY1MSwgNTM2NjcsIDUzNjgzLCA1MzY5OSwgNTM3MTUsIDUzNzMxLCA1Mzc0NywgNTM3NjMsIDUzNzc5LCA1Mzc5NSwgCi0gICAgNTM4MTEsIDUzODI3LCA1Mzg0MywgNTM4NTksIDUzODc1LCA1Mzg5MSwgNTM5MDcsIDUzOTIzLCA1MzkzOSwgNTM5NTUsIAotICAgIDUzOTcxLCA1Mzk4NywgNTQwMDMsIDU0MDE5LCA1NDAzNSwgNTQwNTEsIDU0MDY3LCA1NDA4MywgNTQwOTksIDU0MTE1LCAKLSAgICA1NDEzMSwgNTQxNDcsIDU0MTYzLCA1NDE3OSwgNTQxOTUsIDU0MjExLCA1NDIyNywgNTQyNDMsIDU0MjU5LCA1NDI3NSwgCi0gICAgNTQyOTEsIDU0MzA3LCA1NDMyMywgNTQzMzksIDU0MzU1LCA1NDM3MSwgNTQzODcsIDU0NDAzLCA1NDQxOSwgNTQ0MzUsIAotICAgIDU0NDUxLCA1NDQ2NywgNTQ0ODMsIDU0NDk5LCA1NDUxNSwgNTQ1MzEsIDU0NTQ3LCA1NDU2MywgNTQ1NzksIDU0NTk1LCAKLSAgICA1NDYxMSwgNTQ2MjcsIDU0NjQzLCA1NDY1OSwgNTQ2NzUsIDU0NjkxLCA1NDcwNywgNTQ3MjMsIDU0NzM5LCA1NDc1NSwgCi0gICAgNTQ3NzEsIDU0Nzg3LCA1NDgwMywgNTQ4MTksIDU0ODM1LCA1NDg1MSwgNTQ4NjcsIDU0ODgzLCA1NDg5OSwgNTQ5MTUsIAotICAgIDU0OTMxLCA1NDk0NywgNTQ5NjMsIDU0OTc5LCA1NDk5NSwgNTUwMTEsIDU1MDI3LCA1NTA0MywgNTUwNTksIDU1MDc1LCAKLSAgICA1NTA5MSwgNTUxMDcsIDU1MTIzLCA1NTEzOSwgNTUxNTUsIDU1MTcxLCA1NTE4NywgNTUyMDMsIDU1MjE5LCA1NTIzNSwgCi0gICAgNTUyNTEsIDU1MjY3LCA1NTI4MywgNTUyOTksIDU1MzE1LCA1NTMzMSwgNTUzNDcsIDU1MzYzLCA1NTM3OSwgNTUzOTUsIAotICAgIDU1NDExLCA1NTQyNywgNTU0NDMsIDU1NDU5LCA1NTQ3NSwgNTU0OTEsIDU1NTA3LCA1NTUyMywgNTU1MzksIDU1NTU1LCAKLSAgICA1NTU3MCwgMTQ5NjMsIDU1NTc5LCA1NTU4NSwgNTU1OTEsIDU1NjAxLCA1NTYwOSwgMTMxNDQsIDEzNjgzLCA4MzE5LCAKLSAgICA1NTYyMiwgMTQ4MywgNTU2MzAsIDI1Mzg1LCA1NjM3LCA1NTYzNiwgNTU2NDEsIDU1NjQ2LCA1NTY1MSwgNTU2NTYsIAotICAgIDU1NjYyLCA1NTY2NywgNTU2NzMsIDU1Njc4LCA1NTY4NCwgNTU2ODksIDU1Njk0LCA1NTY5OSwgNTU3MDQsIDU1NzEwLCAKLSAgICA1NTcxNSwgNTU3MjAsIDU1NzI1LCA1NTczMCwgNTU3MzUsIDU1NzQwLCA1NTc0NSwgNTU3NTEsIDU1NzU2LCA1NTc2MiwgCi0gICAgNTU3NjksIDI1MTUsIDU1Nzc0LCA1NTc4MCwgNjk0OCwgNTU3ODQsIDU1Nzg5LCA1NTc5NiwgNTU4MDQsIDQwLCA1NTgwOCwgCi0gICAgNTU4MTQsIDU1ODE5LCA1NTgyNCwgNTU4MjgsIDU1ODMzLCA1NTgzNywgNTU4NDEsIDkwMzcsIDU1ODQ1LCA1NTg1NSwgCi0gICAgNTU4NjgsIDU1ODc5LCA1NTg5MiwgNTU4OTksIDU1OTA1LCA1NTkxMCwgNTU5MTYsIDU1OTIyLCA1NTkyOCwgNTU5MzMsIAotICAgIDU1OTM4LCA1NTk0MywgNTU5NDgsIDU1OTUyLCA1NTk1NywgNTU5NjIsIDU1OTY3LCA1NTk3MywgNTU5NzksIDU1OTg1LCAKLSAgICA1NTk5MCwgNTU5OTQsIDU1OTk5LCA1NjAwNCwgNTYwMDgsIDU2MDEzLCA1NjAxOCwgNTYwMjMsIDU2MDI3LCA5MDUzLCAKLSAgICA5MDY0LCA5MDY5LCAxNTI2LCA1NjAzMSwgMTUzMSwgNTYwMzcsIDU2MDQwLCAxNTYyLCA1NjA0NiwgMTU2OCwgMTU3NCwgCi0gICAgOTA5OSwgNTYwNTEsIDU2MDU5LCA1NjA2NiwgNTYwNzAsIDU2MDc2LCA1NjA4MSwgMjg4MjQsIDU2MDg2LCA1NjA5MywgCi0gICAgNTYwOTgsIDU2MTAyLCA1NjEwNiwgMTU3OSwgMTQ1MzgsIDE0NTQ5LCA1NjExNSwgNTYxMjIsIDU2MTI3LCA1NjEzMSwgCi0gICAgMTQ1NjgsIDE1ODMsIDM0ODk3LCA1NjEzNCwgNTYxMzksIDU2MTQ5LCA1NjE1OCwgNTYxNjMsIDU2MTY3LCA1NjE3MywgCi0gICAgMTU4OCwgMzY3MTksIDU2MTc4LCA1NjE4NywgNTYxOTMsIDU2MTk4LCA5MjQ5LCA5MjU1LCA1NjIwNCwgNTYyMTYsIDU2MjMzLCAKLSAgICA1NjI1MCwgNTYyNjcsIDU2Mjg0LCA1NjMwMSwgNTYzMTgsIDU2MzM1LCA1NjM1MiwgNTYzNjksIDU2Mzg2LCA1NjQwMywgCi0gICAgNTY0MjAsIDU2NDM3LCA1NjQ1NCwgNTY0NzEsIDU2NDg4LCA1NjUwNSwgNTY1MjIsIDU2NTM5LCA1NjU1NiwgNTY1NzMsIAotICAgIDU2NTkwLCA1NjYwNywgNTY2MjQsIDU2NjQxLCA1NjY1OCwgNTY2NzUsIDU2NjkyLCA1NjcwOSwgNTY3MjYsIDU2NzQzLCAKLSAgICA1Njc2MCwgNTY3NzcsIDU2Nzk0LCA1NjgxMSwgNTY4MjgsIDU2ODQ1LCA1Njg2MiwgNTY4NzksIDU2ODk2LCA1NjkxMywgCi0gICAgNTY5MzAsIDU2OTQ3LCA1Njk2NCwgNTY5ODEsIDU2OTk4LCA1NzAxNSwgNTcwMzIsIDU3MDQ5LCA1NzA2MCwgNTcwNjUsIAotICAgIDE1OTMsIDU3MDY5LCA1NzA3NSwgNTcwODAsIDc2OTMsIDE1OTgsIDU3MDg1LCA1NzA5NCwgMjU2NjQsIDU3MDk5LCA1NzExMCwgCi0gICAgNTcxMjAsIDU3MTI1LCA1NzEzMiwgNTcxMzgsIDU3MTQzLCA1NzE0OCwgMTQ4MjAsIDU3MTUyLCA5MjY2LCAxNjAzLCA5MjcxLCAKLSAgICA1NzE1OCwgNTcxNjMsIDU3MTY5LCA1NzE3NCwgNTcxNzksIDU3MTg0LCA1NzE4OSwgNTcxOTQsIDU3MTk5LCA1NzIwNCwgCi0gICAgNTcyMTAsIDU3MjE2LCA1NzIyMiwgNTcyMjcsIDU3MjMxLCA1NzIzNiwgNTcyNDEsIDU3MjQ1LCA1NzI1MCwgNTcyNTUsIAotICAgIDU3MjYwLCA1NzI2NCwgNTcyNjksIDU3Mjc1LCA1NzI4MCwgNTcyODUsIDU3Mjg5LCA1NzI5NCwgNTcyOTksIDU3MzA1LCAKLSAgICA1NzMxMCwgNTczMTUsIDU3MzIxLCA1NzMyNywgNTczMzIsIDU3MzM2LCA1NzM0MSwgNTczNDYsIDU3MzUxLCA1NzM1NSwgCi0gICAgNTczNjAsIDU3MzY1LCA1NzM3MCwgNTczNzYsIDU3MzgyLCA1NzM4NywgNTczOTEsIDU3Mzk1LCA1NzQwMCwgNTc0MDUsIAotICAgIDU3NDEwLCAyNzAyNCwgNTc0MTQsIDU3NDE5LCA1NzQyNCwgNTc0MzAsIDU3NDM1LCA1NzQ0MCwgNTc0NDQsIDU3NDQ5LCAKLSAgICA1NzQ1NCwgNTc0NjAsIDU3NDY1LCA1NzQ3MCwgNTc0NzYsIDU3NDgyLCA1NzQ4NywgNTc0OTEsIDU3NDk2LCA1NzUwMSwgCi0gICAgNTc1MDUsIDU3NTEwLCA1NzUxNSwgNTc1MjAsIDU3NTI2LCA1NzUzMiwgNTc1MzcsIDU3NTQxLCA1NzU0NiwgNTc1NTEsIAotICAgIDU3NTU1LCA1NzU2MCwgNTc1NjUsIDU3NTcwLCA1NzU3NCwgNTc1NzcsIDI5Mzk1LCA1NzU4MiwgNTc1OTAsIDE0ODg2LCAKLSAgICAxNDkxMCwgOTM2MiwgNTc1OTYsIDU3NjA2LCA1NzYyMSwgOTM2NywgNTc2MzIsIDU3NjM3LCA1NzY0OCwgNTc2NjAsIAotICAgIDU3NjcyLCA1NzY4NCwgMjY0OSwgNTc2OTYsIDU3NzAxLCA1NzcwNSwgNTc3MTEsIDU3NzE3LCA1NzcyMiwgMTYxNSwgMTAxMCwgCi0gICAgNTc3MzEsIDU3NzM2LCAzNjc1OCwgNTc3NDAsIDU3NzQ0LCA1Nzc0OSwgNTc3NTMsIDE0OTcxLCA1Nzc1OCwgNTc3NjEsIAotICAgIDU3NzY5LCA1Nzc3NywgMTYxOSwgOTM5MiwgOTM5OCwgMTYyNCwgNTc3ODUsIDU3NzkyLCA1Nzc5NywgNTc4MDYsIDU3ODE2LCAKLSAgICA1NzgyMywgNTc4MjgsIDE2MjksIDU3ODM1LCA1Nzg0MCwgMTUwODYsIDU3ODQ0LCA1Nzg0OSwgNTc4NTYsIDU3ODYyLCAKLSAgICA1Nzg2NiwgNTc4NzcsIDU3ODg3LCAxNTEwOCwgNzYxNiwgNzYyMywgMTYzNCwgNTc4OTQsIDU3OTAwLCA1NzkwOCwgNTc5MTUsIAotICAgIDU3OTIxLCA1NzkyOCwgNTc5NDAsIDU3OTQ2LCA1Nzk1MSwgNTc5NjMsIDU3OTc0LCA1Nzk4MywgNTc5OTMsIDM2NjgsIAotICAgIDI4NjYwLCAyODY2OSwgMTUxNDgsIDE2MzksIDE2NDMsIDU4MDAxLCA1ODAxMiwgNTgwMTcsIDE2NDYsIDU4MDI1LCA1ODAzMCwgCi0gICAgNTgwNDIsIDU4MDQ4LCA1ODA1MywgNTgwNjEsIDE2NTEsIDU4MDY2LCA1ODA3MSwgNTgwNzksIDU4MDg3LCA1ODA5NCwgCi0gICAgNTgxMDMsIDU4MTExLCA1ODEyMCwgMTY1NiwgNTgxMjQsIDE2NjEsIDU4MTI5LCA1ODEzNiwgMTUyNjgsIDU4MTQ0LCAKLSAgICA1ODE1MCwgNTgxNTUsIDU4MTYzLCA1ODE3MCwgNTgxNzgsIDIwNjU4LCA1ODE4MywgOTUyNywgNTgxOTIsIDU4MTk4LCAKLSAgICA1ODIwNSwgNTgyMTIsIDU4MjE4LCA1ODIyOCwgNTgyMzQsIDU4MjM5LCA1ODI0NCwgNTgyNTIsIDk1MzYsIDk1NDEsIAotICAgIDU4MjYwLCA1ODI2NiwgNTgyNzQsIDM3MzMsIDM2ODQ2LCA1ODI3OSwgNTgyODUsIDU4MjkwLCA1ODI5OCwgNTgzMDUsIAotICAgIDEwMzU2LCA1ODMxMCwgNTgzMTYsIDE2NzIsIDU4MzIxLCA1ODMyNCwgMTA1OCwgNTgzMzAsIDU4MzM1LCA1ODM0MCwgCi0gICAgNTgzNDYsIDU4MzUxLCA1ODM1NiwgNTgzNjEsIDU4MzY2LCA1ODM3MSwgNTgzNzYsIDE2ODEsIDksIDU4MzgyLCA1ODM4NiwgCi0gICAgNTgzOTEsIDU4Mzk1LCA1ODM5OSwgNTg0MDMsIDI5NjQzLCA1ODQwOCwgNTg0MTMsIDU4NDE4LCA1ODQyMiwgNTg0MjUsIAotICAgIDU4NDI5LCA1ODQzMywgNTg0MzgsIDU4NDQyLCA1ODQ0NywgNTg0NTEsIDMyMzE1LCAzMjMyMCwgMzIzMjUsIDU4NDU0LCAKLSAgICA1ODQ2MSwgNTg0NjcsIDM2NTg1LCA1ODQ3NywgMzIzMzEsIDI5ODkxLCAyOTY1MywgMjk2NTksIDMyMzQ3LCAyOTY2NSwgCi0gICAgNTg0ODIsIDU4NDg3LCAyOTkyNCwgNTg0OTEsIDU4NDk0LCA1ODQ5OCwgNTg1MDUsIDU4NTA4LCA1ODUxMywgNTg1MTcsIAotICAgIDU4NTIxLCA1ODUyNCwgNTg1MzQsIDU4NTQ2LCA1ODU1MywgMzEyODIsIDU4NTU2LCAxMzkzNiwgODIxLCA1ODU1OSwgCi0gICAgNTg1NjMsIDU4NTY4LCA1ODU3MiwgNTg1NzUsIDExOTQ0LCA1ODU4MiwgNTg1ODksIDU4NjAyLCA1ODYxMCwgNTg2MTksIAotICAgIDU4NjI0LCA1ODYzNCwgNTg2NDcsIDU4NjU5LCA1ODY2NiwgNTg2NzEsIDU4NjgwLCA1ODY5MywgMzM3MzIsIDU4NzExLCAKLSAgICA1ODcxNiwgNTg3MjMsIDU4NzI5LCA1ODczNCwgNTg3NDIsIDU4NzQ5LCAyNTIyNCwgNjEzLCA1ODc1NSwgNTg3NjEsIAotICAgIDU4NzcxLCA1ODc3NywgNTg3ODIsIDI5NjgzLCA0NDgxLCAyOTY5NywgNTg3ODYsIDU4Nzk2LCA1ODgwMSwgNTg4MTEsIAotICAgIDU4ODI2LCA1ODgzMiwgNTg4MzgsIDI5NzA3LCA1ODg0MywgMjg4NTYsIDU4ODQ3LCA1ODg1MiwgNTg4NTcsIDU4ODYxLCAKLSAgICA1ODg2NiwgMTUxNTEsIDU4ODczLCA1ODg3OCwgNTg4ODIsIDQ1MjIsIDI5NzMzLCA1ODg4NiwgNTg4OTIsIDMyNywgNTg5MDIsIAotICAgIDU4OTA5LCA1ODkxNiwgNTg5MjEsIDU4OTMwLCA1NjE0MywgNTg5MzYsIDU4OTQ0LCA1ODk0OCwgNTg5NTIsIDU4OTU2LCAKLSAgICA1ODk2MCwgNTg5NjUsIDU4OTY5LCA1ODk3NSwgNTg5ODMsIDU4OTg4LCA1ODk5MywgNTg5OTcsIDU5MDAyLCA1OTAwNiwgCi0gICAgNTkwMTAsIDU5MDE2LCA1OTAyMiwgNTkwMjcsIDU5MDMxLCAyOTg1NywgNTkwMzYsIDI5ODYzLCAyOTg2OSwgNTkwNDEsIAotICAgIDU5MDQ3LCA1OTA1NCwgNTkwNTksIDU5MDYzLCAyODg3MywgMTQ4MTMsIDU5MDY2LCA1OTA3MCwgNTkwNzUsIDU5MDgyLCAKLSAgICA1OTA4OCwgNTkwOTIsIDU5MDk3LCAzNjI5NSwgNTkxMDMsIDU5MTA3LCA1OTExMSwgNTkxMTYsIDU5MTIyLCA1OTEyOCwgCi0gICAgNTkxNDAsIDU5MTQ5LCA1OTE1OSwgNTkxNjUsIDU5MTcyLCA1OTE3NywgNTkxODIsIDU5MTg2LCA1OTE4OSwgNTkxOTUsIAotICAgIDU5MjAyLCA1OTIwNywgNTkyMTIsIDU5MjE5LCA1OTIyNiwgNTkyMzIsIDU5MjM3LCA1OTI0MiwgNTkyNTAsIDU5MjU1LCAKLSAgICAyMzc3LCA1OTI1OSwgNTkyNjQsIDU5MjcwLCA1OTI3NSwgNTkyODEsIDU5Mjg2LCA1OTI5MSwgNTkyOTYsIDU5MzAyLCAKLSAgICAyOTg5MCwgNTkzMDcsIDU5MzEzLCA1OTMxOSwgNTkzMjUsIDI5OTU0LCA1OTMzMCwgNTkzMzUsIDU5MzQwLCAyOTk2NSwgCi0gICAgNTkzNDUsIDU5MzUwLCA1OTM1NSwgNTkzNjEsIDU5MzY3LCAyOTk3MCwgNTkzNzIsIDU5Mzc3LCA1OTM4MiwgMzAwMjUsIAotICAgIDMwMDMxLCA1OTM4NywgNTkzOTIsIDMwMDM2LCA1OTM5NywgMjU4OTEsIDMwMDU4LCAzMDA2MiwgNTk0MDIsIDU5Mzc4LCAKLSAgICA1OTQwNiwgNTk0MTQsIDU5NDIwLCA1OTQyOCwgNTk0MzUsIDU5NDQxLCA1OTQ1MSwgNTk0NTcsIDU5NDY0LCA4OTg0LCAKLSAgICAzMDA3NiwgNTk0NzAsIDU5NDgzLCA1OTQ5MiwgNTk0OTgsIDU5NTA3LCA1OTUxMywgMjE1NzUsIDU5NTIwLCA1OTUyNywgCi0gICAgNTk1MzcsIDMwMDI2LCA1OTU0MCwgNTk1NDcsIDU5NTUyLCA1OTU1NiwgNTk1NjAsIDU5NTY1LCA0NTk4LCA1OTU2OSwgCi0gICAgNTk1NzQsIDU5NTc5LCAzMjQwOSwgMzI0MTQsIDU5NTgzLCAzMjQyOCwgNTk1ODgsIDMyNDMzLCA1OTU5MywgNTk1OTksIAotICAgIDMyNDQ1LCAzMjQ1MSwgMzI0NTcsIDU5NjA0LCA1OTYxMCwgMjA2MTksIDU5NjIxLCA1OTYyNCwgNTk2MzYsIDU5NjQ0LCAKLSAgICAzMDA5NCwgNTk2NDgsIDU5NjU3LCA1OTY2NywgNTk2NzYsIDMwMDk5LCA1OTY4MSwgNTk2ODgsIDU5Njk3LCA1OTcwMywgCi0gICAgNTk3MTEsIDU5NzE4LCA0NTczLCA0MzEwLCA1OTcyMywgMzAwMzcsIDU5NzI5LCA1OTczMiwgNTk3MzgsIDU5NzQ1LCAKLSAgICA1OTc1MCwgNTk3NTUsIDIxNTAyLCA1OTc1OSwgNTk3NjUsIDU5NzcxLCA1OTc3NiwgNTk3ODEsIDU5Nzg1LCA1OTc5MSwgCi0gICAgNTk3OTcsIDMxMTk2LCA4MjYsIDMzNDA2LCAzNDMwNCwgMzQzMTAsIDU5ODAyLCA1OTgwNiwgNTk4MTAsIDU5ODEzLCAKLSAgICA1OTgyNiwgNTk4MzIsIDU5ODM2LCA1OTgzOSwgNTk4NDQsIDMxNDk1LCA1OTg0OCwgMjg4NzgsIDE5NDQ2LCA1OTg1NCwgCi0gICAgNDUwMiwgNDUxMCwgNzQ3MiwgNTk4NTcsIDU5ODYyLCA1OTg2NywgNTk4NzIsIDU5ODc3LCA1OTg4MiwgNTk4ODcsIDU5ODkyLCAKLSAgICA1OTg5NywgNTk5MDIsIDU5OTA4LCA1OTkxMywgNTk5MTgsIDU5OTI0LCA1OTkyOSwgNTk5MzQsIDU5OTM5LCA1OTk0NCwgCi0gICAgNTk5NDksIDU5OTU0LCA1OTk2MCwgNTk5NjUsIDU5OTcxLCA1OTk3NiwgNTk5ODEsIDU5OTg2LCA1OTk5MSwgNTk5OTYsIAotICAgIDYwMDAxLCA2MDAwNiwgNjAwMTEsIDYwMDE2LCA2MDAyMSwgNjAwMjcsIDYwMDMyLCA2MDAzNywgNjAwNDIsIDYwMDQ3LCAKLSAgICA2MDA1MiwgNjAwNTcsIDYwMDYzLCA2MDA2OCwgNjAwNzMsIDYwMDc4LCA2MDA4MywgNjAwODgsIDYwMDkzLCA2MDA5OCwgCi0gICAgNjAxMDMsIDYwMTA4LCA2MDExNCwgNjAxMTksIDYwMTI0LCA2MDEyOSwgNjAxMzQsIDYwMTQwLCA2MDE0NiwgNjAxNTEsIAotICAgIDYwMTU3LCA2MDE2MiwgNjAxNjcsIDYwMTcyLCA2MDE3NywgNjAxODIsIDE0NzYsIDI0MCwgNjAxODcsIDYwMTkxLCA2MDE5NSwgCi0gICAgNjAxOTksIDIzMTU3LCA2MDIwMywgNjAyMDcsIDYwMjEyLCA2MDIxNiwgNjAyMjEsIDYwMjI1LCA2MDIyOSwgNjAyMzMsIAotICAgIDYwMjM4LCA2MDI0MiwgMTE2ODEsIDYwMjQ3LCA2MDI1MSwgNjAyNTgsIDEzNDQ0LCA2MDI2NywgNjAyNzYsIDYwMjgwLCAKLSAgICA2MDI4NSwgNjAyOTAsIDYwMjk0LCAyMjk2MCwgMjk1NywgNjAyOTgsIDYwMzA0LCA2MDMxMywgNjAzMjEsIDYwMzI3LCAKLSAgICA2MDMzOSwgNjAzNTEsIDYwMzU1LCA2MDM2MCwgNjAzNjQsIDYwMzcwLCA2MDM3NiwgNjAzODEsIDYwMzkxLCA2MDQwMSwgCi0gICAgNjA0MDcsIDYwNDEyLCA2MDQxNiwgNjA0MjEsIDYwNDI3LCA2MDQzNiwgNjA0NDUsIDYwNDUzLCAxMzc5OCwgNjA0NTcsIAotICAgIDYwNDY2LCA2MDQ3NCwgNjA0ODYsIDYwNDk3LCA2MDUwOCwgNjA1MTcsIDYwNTIxLCA2MDUzMCwgNjA1NDAsIDYwNTQ2LCAKLSAgICA2MDU1MSwgNjA1NTcsIDYwNTYyLCA5OCwgMjg3NzIsIDYwNTczLCAyNDIyOCwgMjQyMzgsIDYwNTc5LCA2MDU4NiwgNjA1OTIsIAotICAgIDYwNTk2LCA2MDYwNiwgNjA2MTcsIDYwNjI1LCA2MDYzNCwgNjA2MzksIDYwNjQ0LCA2MDY0OCwgMTU1MDQsIDYwNjU2LCAKLSAgICA2MDY2MCwgNjA2NjYsIDYwNjc2LCA2MDY4MywgNjA2ODksIDMyNTA4LCAxMTYyLCA2MDY5NSwgNjA2OTgsIDYwNzAyLCAKLSAgICA2MDcxMiwgNjA3MTgsIDYwNzI1LCAxMTYxOCwgNjA3MzIsIDYwNzM4LCA2MDc0NywgNjA3NTYsIDYwNzYyLCA2MDc2OCwgCi0gICAgNjA3NzQsIDYwNzc5LCA2MDc4NiwgNjA3OTMsIDYwNzk5LCA2MDgxMiwgNjA4MjEsIDYwODMwLCA2MDgzNSwgNjA4MzksIAotICAgIDYwODQ1LCA2MDg1MiwgNjA4NTksIDYwODY2LCA2MDg3MywgNjA4ODAsIDYwODg1LCA2MDg4OSwgNjA4OTMsIDYwODk2LCAKLSAgICA2MDkwNiwgNjA5MTAsIDYwOTIyLCA2MDkzMSwgNjA5MzUsIDYwOTQwLCA2MDk0NCwgNjA5NTAsIDYwOTU1LCA2MDk2MiwgCi0gICAgNjA5NzEsIDYwOTc5LCA2MDk4NywgNjA5OTIsIDYwOTk2LCA2MTAwMSwgNjEwMDYsIDYxMDE2LCA2MTAyNCwgNjEwMjksIAotICAgIDYxMDMzLCA2MTAzNywgNjEwNDMsIDYxMDU1LCA2MTA2MywgNjEwNzMsIDYxMDgwLCA2MTA4NiwgNjEwOTEsIDYxMDk1LCAKLSAgICA2MTA5OSwgNjExMDMsIDYxMTEyLCA2MTEyMSwgNjExMzAsIDYxMTM2LCA2MTE0MiwgNjExNDgsIDYxMTUzLCA2MTE2MCwgCi0gICAgNjExNjYsIDYxMTc0LCA2MTE4MSwgMTA3NzIsIDYxMTg3LCA2MTE5MywgNjExOTcsIDEyNTIzLCA2MTIwMSwgNjEyMDYsIAotICAgIDYxMjE2LCA2MTIyNSwgNjEyMzEsIDYxMjM3LCA2MTI0NSwgNjEyNTIsIDYxMjU2LCA2MTI2MCwgNjEyNjYsIDYxMjc0LCAKLSAgICA2MTI4MSwgNjEyODcsIDYxMjk4LCA2MTMwMiwgNjEzMDYsIDYxMzEwLCA2MTMxMywgNjEzMTksIDYxMzI0LCA2MTMyOCwgCi0gICAgNjEzMzIsIDYxMzQxLCA2MTM0OSwgNjEzNTYsIDYxMzYyLCA2MTM2OSwgMjIwODcsIDM2MzM3LCA2MTM3NCwgNjEzODIsIAotICAgIDYxMzg2LCA2MTM4OSwgNjEzOTcsIDYxNDA0LCA2MTQxMCwgNjE0MTksIDYxNDI3LCA2MTQzMywgNjE0MzgsIDYxNDQyLCAKLSAgICA2MTQ0NywgNjE0NTEsIDYxNDU1LCA2MTQ2MCwgNjE0NjksIDYxNDczLCA2MTQ4MCwgNjE0ODcsIDYxNDkzLCA2MTUwMSwgCi0gICAgNjE1MDcsIDYxNTE4LCA2MTUyNiwgNjE1MzIsIDIwNzUzLCA2MTU0MSwgNjE1NDgsIDYxNTU1LCA2MTU2MiwgNjE1NjksIAotICAgIDYxNTc2LCAzOTI4OCwgMTE0NTYsIDYxNTgzLCA2MTU5MCwgNjE1OTUsIDMyNTQ0LCAzNzQ4NCwgNjE2MDEsIDYxNjA2LCAKLSAgICA2MTYxMSwgNjE2MTcsIDYxNjIzLCA2MTYyOSwgNjE2MzQsIDYxNjM5LCA2MTY0NCwgNjE2NDksIDYxNjU1LCA2MTY2MCwgCi0gICAgNjE2NjYsIDYxNjcxLCA2MTY3NywgNjE2ODIsIDYxNjg3LCA2MTY5MiwgNjE2OTcsIDYxNzAyLCA2MTcwNywgNjE3MTIsIAotICAgIDYxNzE4LCA2MTcyMywgNjE3MjksIDYxNzM0LCA2MTczOSwgNjE3NDQsIDYxNzQ5LCA2MTc1NCwgNjE3NTksIDYxNzY1LCAKLSAgICA2MTc3MCwgNjE3NzUsIDYxNzgwLCA2MTc4NSwgNjE3OTAsIDYxNzk1LCA2MTgwMCwgNjE4MDUsIDYxODEwLCA2MTgxNSwgCi0gICAgNjE4MjEsIDYxODI2LCA2MTgzMSwgNjE4MzYsIDYxODQxLCA2MTg0NiwgNjE4NTEsIDYxODU2LCA2MTg2MSwgNjE4NjcsIAotICAgIDYxODcyLCA2MTg3NywgNjE4ODIsIDYxODg3LCA2MTg5MiwgNjE4OTcsIDYxOTAyLCA2MTkwNywgNjE5MTIsIDYxOTE3LCAKLSAgICA2MTkyMiwgNjE5MjcsIDYxOTMzLCAxNzk3LCAyMjQsIDM0OTkzLCA2MTkzOCwgNjE5NDEsIDYxOTQ2LCA2MTk1MCwgNjE5NTMsIAotICAgIDYxOTU4LCA2MDk4MywgNjE5NjksIDYxOTc5LCA2MTk4NiwgNjIwMDIsIDYyMDExLCA2MjAyMSwgNjIwMzEsIDYyMDM5LCAKLSAgICA2MjA0NywgNjIwNTEsIDYyMDU0LCA2MjA2MSwgNjIwNjcsIDYyMDc4LCA2MjA5MCwgNjIxMDEsIDYyMTEwLCA2MjExNywgCi0gICAgMTI4NiwgMjEzOTEsIDYyMTI3LCAyNTQ0LCA2MjEzMSwgNjIxNDAsIDExMjcsIDE1NDc3LCAzNTYyMiwgNjIxNDgsIDYyMTU2LCAKLSAgICA2MjE3MCwgNjIxODMsIDYyMTg3LCA2MjE5MiwgNjIxOTcsIDYyMjAyLCA2MjIwOCwgNjIyMTQsIDYyMjE5LCA2OTU3LCAKLSAgICA2MjIyNCwgNjIyMzIsIDkzOTMsIDYyMjM3LCA2MjI0MywgMTY4NCwgOTQwNSwgNzIzLCA2MjI1MiwgNjIyNjEsIDYyMjcxLCAKLSAgICAyNDk5MiwgNjIyODAsIDYyMjg2LCAxNTA2MywgNjIyOTIsIDYyMjk2LCAzODgxLCA5NzM2LCA2MjMwMiwgNTgwMDcsIAotICAgIDYyMzA5LCAzOTA1LCAxODQsIDEyNDQ0LCA2MjMxNSwgNjIzMjcsIDYyMzMxLCA2MjMzNywgMjU2ODQsIDYyMzQxLCA5NzI0LCAKLSAgICAyNjg0LCA0LCA2MjM0NiwgNjIzNTYsIDYyMzYyLCA2MjM3MywgNjIzODAsIDYyMzg2LCA2MjM5MiwgNjI0MDAsIDYyNDA3LCAKLSAgICA2MjQxMywgNjI0MjMsIDYyNDMzLCA2MjQ0MywgMTI5OCwgNjI0NTIsIDYyNDU4LCAyNzA3LCAyNzEzLCA2OTU0LCAyMjE4LCAKLSAgICA2MjQ2MiwgNjI0NjYsIDYyNDc1LCA2MjQ4MywgNjI0OTQsIDYyNTAyLCA2MjUxMCwgNjI1MTYsIDYyNTIxLCA2MjUzMiwgCi0gICAgNjI1NDMsIDYyNTUxLCA2MjU1NywgODA2MSwgNjI1NjIsIDYyNTcwLCA2MjU3NCwgNjI1NzgsIDYyNTkwLCAyNjA2MCwgCi0gICAgNjI1OTcsIDYyNjA3LCA2MjYxMywgNjI2MTksIDgxNjMsIDYyNjI5LCA2MjY0MCwgNjI2NTAsIDYyNjU5LCA2MjY2MywgCi0gICAgNjI2NzAsIDExMjksIDI1MzcsIDYyNjgwLCA2MjY4NSwgNjI2OTMsIDYyNzAxLCA2MjcxMiwgNjI3MTksIDYyNzMzLCAKLSAgICAxMjM2OSwgMzc5LCA2Mjc0MywgNjI3NDcsIDYyNzU2LCA2Mjc2NCwgNjI3NzAsIDYyNzg0LCA2Mjc5MSwgNjI3OTcsIAotICAgIDYyODA2LCA2MjgxMywgNjI4MjMsIDYyODMxLCAzNzQwLCAxODksIDYyODM5LCA2Mjg1MCwgNjI4NTQsIDYyODY2LCAyNTg4MiwgCi0gICAgMTU2LCA2Mjg3MiwgNjI4NzcsIDYyODgxLCA2Mjg4OCwgNjI4OTQsIDYyOTAyLCA2MjkwOSwgNzIyNiwgNjI5MTYsIDYyOTI1LCAKLSAgICA2MjkzMywgMzgwNiwgNjI5NDYsIDE1MTA5LCA2Mjk1MCwgMjc1MiwgNDI4LCA2Mjk1NSwgNjI5NjgsIDYyOTczLCAxNzk2LCAKLSAgICA2NDcsIDYyOTc3LCAzODEyLCA2Mjk4NSwgNjI5OTEsIDk2MywgNjMwMDEsIDYzMDEwLCA2MzAxNSwgMTMxNzgsIDEzMTg1LCAKLSAgICA0MjYyMCwgNjMwMTksIDM3NTAsIDExMzUwLCA2MzAyNywgNjMwMzQsIDIxNjE4LCA2MzAzOCwgNjMwNDUsIDYzMDUxLCAKLSAgICA2MzA1NiwgNjMwNjEsIDEzMTk4LCAzNTQsIDYzMDY2LCA2MzA3OCwgNjMwODQsIDYzMDkyLCAyNzY0LCAxNzE2LCA2MzEwMCwgCi0gICAgNjMxMDIsIDYzMTA3LCA2MzExMiwgNjMxMTcsIDYzMTIzLCA2MzEyOCwgNjMxMzMsIDYzMTM4LCA2MzE0MywgNjMxNDgsIAotICAgIDYzMTUzLCA2MzE1OSwgNjMxNjQsIDYzMTY5LCA2MzE3NCwgNjMxNzksIDYzMTg0LCA2MzE4OSwgNjMxOTQsIDYzMTk5LCAKLSAgICA2MzIwNSwgNjMyMTAsIDYzMjE1LCA2MzIyMCwgNjMyMjYsIDYzMjMxLCA2MzIzNywgNjMyNDIsIDYzMjQ3LCA2MzI1MiwgCi0gICAgNjMyNTcsIDYzMjYyLCA2MzI2NywgNjMyNzIsIDYzMjc4LCA2MzI4MywgNjMyODksIDYzMjk0LCA2MzI5OSwgNjMzMDQsIAotICAgIDYzMzA5LCA2MzMxNCwgNjMzMTksIDYzMzI0LCA2MzMyOSwgNjMzMzUsIDYzMzQwLCA2MzM0NSwgNjMzNDksIDYzMzUzLCAKLSAgICA2MzM1OCwgNjMzNjIsIDYzMzY3LCA2MzM3MiwgNjMzNzgsIDYzMzgzLCA2MzM4NywgNjMzOTIsIDYzMzk2LCA2MzM5OSwgCi0gICAgNjM0MDEsIDYzNDA1LCA2MzQwOCwgNjM0MTMsIDYzNDE3LCA2MzQyMSwgNjM0MjUsIDYzNDI5LCA2MzQzOCwgNjM0NDIsIAotICAgIDMwMjg4LCA2MzQ0NSwgMzAyOTMsIDYzNDUyLCA2MzQ1NywgMzAyOTgsIDYzNDY2LCA2MzQ3NSwgMzAzMDQsIDYzNDgwLCAKLSAgICAzMDMwOSwgNjM0ODksIDYzNDk0LCA5OTE0LCA2MzQ5OCwgNjM1MDMsIDYzNTA4LCAzMDMxNCwgNjM1MTIsIDM3NjUwLCAKLSAgICA2MzUxNiwgNjM1MTksIDYzNTIzLCA2NjM4LCA2MzUyOSwgNjM1MzQsIDYzNTM4LCAzNjMzLCAzMDMxOSwgNjM1NDEsIAotICAgIDYzNTQ1LCA2MzU0OCwgNjM1NTMsIDYzNTU3LCA2MzU2MywgNjM1NzEsIDYzNTg0LCA2MzU5MywgNjM1OTksIDYzNjA0LCAKLSAgICA2MzYxMCwgNjM2MTQsIDYzNjIwLCA2MzYyOCwgNjM2MzMsIDYzNjQwLCA2MzY0NiwgNjM2NTQsIDYzNjYzLCA2MzY3MSwgCi0gICAgMzAzMjIsIDYzNjc4LCA2MzY4OCwgNjM2OTcsIDYzNzEwLCA2MzcxNSwgNjM3MjAsIDYzNzI5LCA2MzczNSwgNjM3NDIsIAotICAgIDYzNzUzLCA2Mzc2NSwgNjM3NzIsIDYzNzgxLCA2Mzc5MCwgNjM3OTksIDYzODA2LCA2MzgxMiwgNjM4MTksIDYzODI3LCAKLSAgICA2MzgzNCwgNjM4NDIsIDYzODUxLCA2Mzg1OSwgNjM4NjYsIDYzODc0LCA2Mzg4MywgNjM4OTEsIDYzOTAwLCA2MzkxMCwgCi0gICAgNjM5MTksIDYzOTI3LCA2MzkzNCwgNjM5NDIsIDYzOTUxLCA2Mzk1OSwgNjM5NjgsIDYzOTc4LCA2Mzk4NywgNjM5OTUsIAotICAgIDY0MDA0LCA2NDAxNCwgNjQwMjMsIDY0MDMzLCA2NDA0NCwgNjQwNTQsIDY0MDYzLCA2NDA3MSwgNjQwNzgsIDY0MDg2LCAKLSAgICA2NDA5NSwgNjQxMDMsIDY0MTEyLCA2NDEyMiwgNjQxMzEsIDY0MTM5LCA2NDE0OCwgNjQxNTgsIDY0MTY3LCA2NDE3NywgCi0gICAgNjQxODgsIDY0MTk4LCA2NDIwNywgNjQyMTUsIDY0MjI0LCA2NDIzNCwgNjQyNDMsIDY0MjUzLCA2NDI2NCwgNjQyNzQsIAotICAgIDY0MjgzLCA2NDI5MywgNjQzMDQsIDY0MzE0LCA2NDMyNSwgNjQzMzcsIDY0MzQ4LCA2NDM1OCwgNjQzNjcsIDY0Mzc1LCAKLSAgICA2NDM4MiwgNjQzOTAsIDY0Mzk5LCA2NDQwNywgNjQ0MTYsIDY0NDI2LCA2NDQzNSwgNjQ0NDMsIDY0NDUyLCA2NDQ2MiwgCi0gICAgNjQ0NzEsIDY0NDgxLCA2NDQ5MiwgNjQ1MDIsIDY0NTExLCA2NDUxOSwgNjQ1MjgsIDY0NTM4LCA2NDU0NywgNjQ1NTcsIAotICAgIDY0NTY4LCA2NDU3OCwgNjQ1ODcsIDY0NTk3LCA2NDYwOCwgNjQ2MTgsIDY0NjI5LCA2NDY0MSwgNjQ2NTIsIDY0NjYyLCAKLSAgICA2NDY3MSwgNjQ2NzksIDY0Njg4LCA2NDY5OCwgNjQ3MDcsIDY0NzE3LCA2NDcyOCwgNjQ3MzgsIDY0NzQ3LCA2NDc1NywgCi0gICAgNjQ3NjgsIDY0Nzc4LCA2NDc4OSwgNjQ4MDEsIDY0ODEyLCA2NDgyMiwgNjQ4MzEsIDY0ODQxLCA2NDg1MiwgNjQ4NjIsIAotICAgIDY0ODczLCA2NDg4NSwgNjQ4OTYsIDY0OTA2LCA2NDkxNywgNjQ5MjksIDY0OTQwLCA2NDk1MiwgNjQ5NjUsIDY0OTc3LCAKLSAgICA2NDk4OCwgNjQ5OTgsIDY1MDA3LCA2NTAxNSwgNjUwMjIsIDY1MDMwLCA2NTAzOSwgNjUwNDcsIDY1MDU2LCA2NTA2NiwgCi0gICAgNjUwNzUsIDY1MDgzLCA2NTA5MiwgNjUxMDIsIDY1MTExLCA2NTEyMSwgNjUxMzIsIDY1MTQyLCA2NTE1MSwgNjUxNTksIAotICAgIDY1MTY4LCA2NTE3OCwgNjUxODcsIDY1MTk3LCA2NTIwOCwgNjUyMTgsIDY1MjI3LCA2NTIzNywgNjUyNDgsIDY1MjU4LCAKLSAgICA2NTI2OSwgNjUyODEsIDY1MjkyLCA2NTMwMiwgNjUzMTEsIDY1MzE5LCA2NTMyOCwgNjUzMzgsIDY1MzQ3LCA2NTM1NywgCi0gICAgNjUzNjgsIDY1Mzc4LCA2NTM4NywgNjUzOTcsIDY1NDA4LCA2NTQxOCwgNjU0MjksIDY1NDQxLCA2NTQ1MiwgNjU0NjIsIAotICAgIDY1NDcxLCA2NTQ4MSwgNjU0OTIsIDY1NTAyLCA2NTUxMywgNjU1MjUsIDY1NTM2LCA2NTU0NiwgNjU1NTcsIDY1NTY5LCAKLSAgICA2NTU4MCwgNjU1OTIsIDY1NjA1LCA2NTYxNywgNjU2MjgsIDY1NjM4LCA2NTY0NywgNjU2NTUsIDY1NjY0LCA2NTY3NCwgCi0gICAgNjU2ODMsIDY1NjkzLCA2NTcwNCwgNjU3MTQsIDY1NzIzLCA2NTczMywgNjU3NDQsIDY1NzU0LCA2NTc2NSwgNjU3NzcsIAotICAgIDY1Nzg4LCA2NTc5OCwgNjU4MDcsIDY1ODE3LCA2NTgyOCwgNjU4MzgsIDY1ODQ5LCA2NTg2MSwgNjU4NzIsIDY1ODgyLCAKLSAgICA2NTg5MywgNjU5MDUsIDY1OTE2LCA2NTkyOCwgNjU5NDEsIDY1OTUzLCA2NTk2NCwgNjU5NzQsIDY1OTgzLCA2NTk5MywgCi0gICAgNjYwMDQsIDY2MDE0LCA2NjAyNSwgNjYwMzcsIDY2MDQ4LCA2NjA1OCwgNjYwNjksIDY2MDgxLCA2NjA5MiwgNjYxMDQsIAotICAgIDY2MTE3LCA2NjEyOSwgNjYxNDAsIDY2MTUwLCA2NjE2MSwgNjYxNzMsIDY2MTg0LCA2NjE5NiwgNjYyMDksIDY2MjIxLCAKLSAgICA2NjIzMiwgNjYyNDQsIDY2MjU3LCA2NjI2OSwgNjYyODIsIDY2Mjk2LCA2NjMwOSwgNjYzMjEsIDY2MzMyLCA2NjM0MiwgCi0gICAgNjYzNTEsIDY2MzU5LCA2NjM2NiwgNjYzNzEsIDY0ODksIDY2Mzc4LCAzMDMzMiwgNjYzODMsIDY2Mzg4LCAzMDMzNywgCi0gICAgNjYzOTQsIDE5MTAwLCAzMDM0MiwgNjYzOTksIDY2NDA1LCA2NjQxMywgNjY0MTksIDY2NDI1LCA2NjQzMiwgNjY0MzksIAotICAgIDY2NDQ0LCA2NjQ0OCwgNjY0NTEsIDY2NDU1LCA2NjQ2NCwgNjY0NzAsIDY2NDgyLCA2NjQ5MywgNjY0OTcsIDMwMTksIAotICAgIDY0NjQsIDY2NTAyLCA2NjUwNSwgNjY1MDcsIDY2NTExLCA2NjUxNSwgNjY1MTksIDIzOTI3LCA2NjUyNCwgNjY1MjgsIAotICAgIDY2NTMxLCA2NjUzNiwgNjY1NDAsIDY2NTQ3LCA2NjU1MywgNjY1NTcsIDY2NTYxLCA2NjU2NCwgMzAzNTksIDY2NTY5LCAKLSAgICA2NjU3NiwgNjY1ODUsIDY2NTkzLCA2NjYwNCwgNjY2MTIsIDY2NjIwLCA2NjYyNywgNjY2MzQsIDY2NjQwLCA2NjY1MSwgCi0gICAgMzAzNjQsIDY2NjU2LCA2NjY2NywgNjY2NzksIDY2Njg3LCA2NjY5OCwgNjY3MDcsIDY2NzE4LCA2NjcyMywgNjY3MzEsIAotICAgIDI1MTAsIDY2NzM2LCAzMjAwMiwgNjY3NDksIDY2NzUzLCA2Njc2NSwgNjY3NzMsIDY2Nzc4LCA2Njc4NiwgMTU2NjQsIAotICAgIDY2Nzk3LCA2NjgwMywgNjY4MTAsIDY2ODE4LCA2NjgyNCwgMzAzNzQsIDY2ODI5LCAzODMxLCA1NTYwNSwgNjY4MzYsIAotICAgIDY2ODM5LCA2Njg0NywgNjY4NjAsIDY2ODczLCA2Njg4NiwgNjY4OTksIDY2OTA2LCA2NjkxNywgNjY5MjYsIDM5MTA1LCAKLSAgICAzOTExMCwgNjY5MzEsIDY2OTM1LCA2Njk0MywgNjY5NTAsIDY2OTU5LCA2Njk2NywgNjY5NzMsIDY2OTgyLCA2Njk5MCwgCi0gICAgNjY5OTgsIDY3MDAyLCA2NzAxMSwgNjcwMjAsIDY3MDMwLCA2NzA0MywgNjcwNTYsIDY3MDY2LCAzMDM3OSwgNjcwNzIsIAotICAgIDY3MDc5LCA2NzA4NSwgMzAzODUsIDY3MDkwLCA2NzA5MywgNjcwOTcsIDY3MTA1LCA2NzExNCwgMzg4NDMsIDY3MTIyLCAKLSAgICA2NzEzMSwgNjcxMzksIDY3MTQ2LCA2NzE1NCwgNjcxNjQsIDY3MTczLCA2NzE4MiwgNjcxOTEsIDY3MTk5LCA2NzIxMCwgCi0gICAgNjcyMjAsIDc3MzMsIDE5NzE1LCA2NzIyOSwgNjcyMzQsIDY3MjM5LCA2NzI0MywgNjcyNDcsIDY3MjUyLCA2NzI1OCwgCi0gICAgNjcyNjMsIDY3MjY4LCA2NzI3NCwgNjcyNzksIDY3Mjg0LCAxOTY4MCwgNjcyODksIDY3Mjk2LCA2NzMwNCwgNjczMTIsIAotICAgIDY3MzE3LCA2NzMyNCwgNjczMzEsIDY3MzM1LCA2NzMzOSwgNjczNDcsIDY3MzU1LCAzMDQwMiwgNjczNjEsIDY3MzY3LCAKLSAgICA2NzM3OSwgNjczODUsIDY3Mzg5LCA2NzM5NiwgNjc0MDEsIDY3NDEyLCA2NzQyMiwgNjc0MzIsIDY3NDQ0LCA2NzQ1MCwgCi0gICAgNjc0NjAsIDY3NDcwLCAzMDQyOSwgNjc0NzksIDY3NDg4LCA2NzQ5NCwgNjc1MDYsIDY3NTE3LCA2NzUyNCwgNjc1MjksIAotICAgIDY3NTMzLCA2NzU0MSwgNjc1NDcsIDY3NTUyLCA2NzU1NywgNjc1NjQsIDY3NTcyLCA2NzU4NCwgNjc1OTQsIDY3NjAzLCAKLSAgICA2NzYxMiwgNjc2MTksIDMxODY2LCAyMTkwNiwgNjc2MjUsIDY3NjMwLCA2NzYzNCwgNjc2MzgsIDY3NjQzLCA2NzY0OSwgCi0gICAgNjc2NjAsIDY3NjczLCA2NzY3OCwgNjc2ODUsIDMwNDM0LCA2NzY5MCwgNjc3MDIsIDY3NzExLCA2NzcyMSwgNjc3MzIsIAotICAgIDY3NzQ1LCA2Nzc1MiwgNjc3NjEsIDY3NzcwLCA2Nzc3OCwgNjc3ODMsIDY3Nzg5LCAxNDY1LCA2Nzc5NCwgNjc3OTksIAotICAgIDY3ODA0LCA2NzgwOSwgNjc4MTUsIDY3ODIwLCA2NzgyNSwgNjc4MzEsIDY3ODM3LCA2Nzg0MiwgNjc4NDYsIDY3ODUxLCAKLSAgICA2Nzg1NiwgNjc4NjEsIDU2MTExLCA2Nzg2NiwgNjc4NzEsIDY3ODc2LCA2Nzg4MSwgNjc4ODcsIDY3ODkzLCA2Nzg5OCwgCi0gICAgNjc5MDIsIDY3OTA3LCA2NzkxMiwgNjc5MTcsIDY3OTIzLCA2NzkyOCwgNjc5MzQsIDY3OTM5LCA2Nzk0NCwgNjc5NDksIAotICAgIDY3OTU0LCA2Nzk1OCwgNjc5NjQsIDY3OTY5LCA2Nzk3OCwgNjc5ODMsIDY3OTg4LCA2Nzk5MywgNjc5OTgsIDY4MDAyLCAKLSAgICA2ODAwOSwgNjgwMTUsIDE1MzI2LCAxNTMzMywgNDI4NzUsIDY4MDIwLCA2Nzk3MCwgNjgwMjIsIDY4MDMyLCAzMDQ0MywgCi0gICAgNjgwMzUsIDY4MDQ0LCA2ODA1MCwgNDYxNywgMzA0NDgsIDY4MDU0LCA2ODA2MCwgNjgwNjYsIDY4MDcxLCA2ODA3NSwgCi0gICAgNjgwODIsIDY4MDg3LCA2ODA5NywgNjgxMDYsIDY4MTEwLCA2ODExNiwgNjgxMjIsIDY4MTI4LCA2ODEzMiwgNjgxNDAsIAotICAgIDY4MTQ3LCA2ODE1NSwgNjgxNjMsIDMwNDUzLCA2ODE3MCwgNjgxNzMsIDY4MTgwLCA2ODE4NiwgNjgxOTEsIDY4MTk1LCAKLSAgICA2ODIwMSwgNjgyMDgsIDY4MjEzLCA2ODIxNywgNjgyMjYsIDY4MjM0LCA2ODI0MCwgNjgyNDUsIDMwNDU4LCA2ODI1MiwgCi0gICAgNjgyNTksIDY4MjY1LCA2ODI3MCwgNjgyNzYsIDY4MjgzLCA2ODI4OSwgMTk0NTMsIDI1NDA4LCA2ODI5NSwgNjgzMDAsIAotICAgIDY4MzA2LCA2ODMxOCwgNjgwMDMsIDY4MDEwLCA2ODMyOCwgNjgzMzMsIDY4MzQwLCA2ODM0NywgNjgzNTMsIDY4MzY0LCAKLSAgICA2ODM2OSwgNzUwMiwgNjgzNzcsIDY4MzgwLCA2ODM4NiwgNjgzOTAsIDY4Mzk0LCA2ODM5NywgNjg0MDMsIDMwMjA3LCAKLSAgICA0NjU2LCA5MTMsIDExNzMxLCA2ODQxMCwgNjg0MTYsIDY4NDIyLCA2ODQyOCwgNjg0MzQsIDY4NDQwLCA2ODQ0NiwgNjg0NTIsIAotICAgIDY4NDU4LCA2ODQ2MywgNjg0NjgsIDY4NDczLCA2ODQ3OCwgNjg0ODMsIDY4NDg4LCA2ODQ5MywgNjg0OTgsIDY4NTAzLCAKLSAgICA2ODUwOCwgNjg1MTMsIDY4NTE4LCA2ODUyMywgNjg1MjksIDY4NTM0LCA2ODUzOSwgNjg1NDUsIDY4NTUwLCA2ODU1NSwgCi0gICAgNjg1NjEsIDY4NTY3LCA2ODU3MywgNjg1NzksIDY4NTg1LCA2ODU5MSwgNjg1OTcsIDY4NjAzLCA2ODYwOSwgNjg2MTQsIAotICAgIDY4NjE5LCA2ODYyNSwgNjg2MzAsIDY4NjM1LCA2ODY0MSwgNjg2NDYsIDY4NjUxLCA2ODY1NiwgNjg2NjEsIDY4NjY2LCAKLSAgICA2ODY3MSwgNjg2NzYsIDY4NjgxLCA2ODY4NiwgNjg2OTEsIDY4Njk2LCA2ODcwMSwgNjg3MDcsIDY4NzEyLCA2ODcxNywgCi0gICAgNjg3MjIsIDY4NzI4LCA2ODczMywgNjg3MzgsIDY4NzQzLCA2ODc0OCwgNjg3NTQsIDY4NzU5LCA2ODc2NCwgNjg3NjksIAotICAgIDY4Nzc0LCA2ODc3OSwgNjg3ODQsIDY4Nzg5LCA2ODc5NCwgNjg3OTksIDY4ODA0LCA2ODgwOSwgNjg4MTQsIDY4ODE5LCAKLSAgICA2ODgyNCwgNjg4MjksIDY4ODM0LCA2ODgzOSwgNjg4NDQsIDY4ODQ5LCA2ODg1NSwgNjg4NjAsIDY4ODY1LCA2ODg3MCwgCi0gICAgNjg4NzUsIDY4ODgwLCA2ODg4NSwgNjg4OTAsIDE4MjcsIDE0MywgNjg4OTUsIDY4ODk5LCA2ODkwMywgNjg5MDgsIDY4OTE2LCAKLSAgICA2ODkyMCwgNjg5MjcsIDY4OTM1LCA2ODkzOSwgNjg5NTIsIDY4OTYwLCA2ODk2NCwgNjg5NjcsIDY4OTcyLCA2ODk3NiwgCi0gICAgNjg5ODEsIDY4OTg1LCA2ODk5MywgNjg5OTcsIDE5MTA4LCA2OTAwMiwgNTgyNzAsIDY5MDA2LCA2OTAwOSwgNjkwMTcsIAotICAgIDY5MDI1LCA2OTAzMywgNjkwMzgsIDY5MDQ1LCA2OTA1MSwgNjkwNTcsIDY5MDYyLCA2OTA2NywgNjkwNzUsIDYyMTc1LCAKLSAgICA2OTA4MiwgNjkwODcsIDY5MDkyLCA2OTA5NiwgOTk4MSwgNjkxMDAsIDY5MTA1LCA2OTExMCwgNjkxMTQsIDY5MTE3LCAKLSAgICA2OTEyMywgNjkxMjcsIDY5MTM3LCA2OTE0NiwgNjkxNDksIDY5MTU2LCA2OTE2OSwgNjkxNzUsIDY5MTgzLCA2OTE5NCwgCi0gICAgNjkyMDUsIDY5MjE2LCA2OTIyNywgNjkyMzYsIDY5MjQyLCA2OTI1MSwgNjkyNTksIDY5MjY5LCA2OTI4MiwgNjkyODksIAotICAgIDY5MzAwLCA2OTMwNiwgNjkzMTEsIDY5MzE2LCA2OTMyMiwgNjkzMjgsIDY5MzM4LCA2OTM0NywgNjc2OTIsIDY5MzU1LCAKLSAgICA2OTM2MSwgNjkzNjksIDY5Mzc1LCA2OTM4MywgNjkzODcsIDY5MzkxLCA2OTM5NCwgNjk0MDAsIDY5NDA2LCA2OTQxNCwgCi0gICAgNjk0MjYsIDY5NDM4LCA2OTQ0NSwgNjk0NDksIDY5NDYwLCA2OTQ2OCwgNjk0NzUsIDY5NDg3LCA2OTQ5NSwgNjk1MDMsIAotICAgIDY5NTEwLCA2OTUxNiwgNjk1MjYsIDY5NTM1LCA2OTU0MCwgNjk1NTAsIDY5NTU5LCAzODE4NCwgNjk1NjYsIDY5NTcwLCAKLSAgICA2OTU3NSwgNjk1ODMsIDY5NTkwLCA2OTU5NiwgNjk2MDAsIDY5NjEwLCA2OTYyMSwgNjk2MjksIDY5NjM2LCA2OTY0OCwgCi0gICAgNjk2NjAsIDY5NjY5LCA2NjczOSwgNjk2NzYsIDY5Njg3LCA2OTcwMSwgNjk3MDksIDY5NzE5LCA2OTcyNiwgNjk3MzQsIAotICAgIDY5NzQ2LCA2OTc1NSwgNjk3NjMsIDY5NzczLCA2OTc4MiwgNjk3OTMsIDY5ODA1LCA2OTgxNCwgNjk4MjQsIDY5ODMxLCAKLSAgICA2OTg0MCwgNjk4NTUsIDY5ODY1LCA2OTg3NCwgNjk4ODIsIDY5ODk1LCA2OTkxMCwgNjk5MTQsIDY5OTIzLCA2OTkzNSwgCi0gICAgNjk5NDYsIDY5OTU3LCA2OTk2OCwgNjk5NzgsIDY5OTg5LCA2OTk5NywgNzAwMDMsIDcwMDEzLCA3MDAxOSwgMjY5MjMsIAotICAgIDcwMDI0LCA3MDAzMCwgNzAwMzUsIDcwMDQyLCA4MDc1LCAxNTY4NCwgNzAwNDgsIDcwMDU3LCA3MDA2MiwgNzAwNjYsIAotICAgIDcwMDczLCA3MDA3OSwgNzAwODQsIDcwMDkyLCA3MDEwMCwgNzAxMDQsIDcwMTA3LCA3MDExMCwgNzAxMTIsIDcwMTE5LCAKLSAgICA3MDEyNSwgNzAxMzYsIDcwMTQxLCA3MDE0NSwgNzAxNTIsIDcwMTU4LCA3MDE2MywgNzAxNzEsIDYyNjQyLCA2MjY1MiwgCi0gICAgNzAxNzcsIDcwMTg0LCA3MDE5NCwgODk3MSwgNzAyMDEsIDcwMjA2LCAyNzExMywgNzAyMTUsIDcwMjIwLCA3MDIyNywgCi0gICAgNzAyMzcsIDcwMjQ1LCA3MDI1MywgNzAyNjIsIDcwMjY4LCA3MDI3NCwgNzAyODEsIDcwMjg4LCA3MDI5MywgNzAyOTcsIAotICAgIDcwMzA1LCA3MDMxMCwgNzAzMTUsIDcwMzIzLCA3MDMzMCwgNzAzMzUsIDcwMzQxLCA3MDM0NCwgNzAzNDgsIDcwMzU3LCAKLSAgICA2ODk0NywgNzAzNjYsIDcwMzcwLCA3MDM3NiwgNzAzODcsIDcwMzk3LCAxNTY5MywgNzA0MDgsIDcwNDE2LCAxNTcwNSwgCi0gICAgNzA0MjMsIDcwNDI3LCA3MDQzNiwgMjUyOTQsIDcwNDQzLCA3MDQ0NywgNzA0NTIsIDcwNDY5LCA3MDQ4MSwgODkyNSwgCi0gICAgNzA0OTMsIDcwNDk4LCA3MDUwMywgNzA1MDgsIDcwNTEyLCA3MDUxNSwgNzA1MjAsIDcwNTI1LCA3MDUzMSwgNzA1MzYsIAotICAgIDQzMjQsIDE5MTgxLCA3MDU0MSwgNzA1NDYsIDcwNTUyLCA3MDU1OSwgNzA1NjQsIDcwNTY5LCA3MDU3NSwgNzA1ODEsIAotICAgIDcwNTg3LCA3MDU5MiwgNzA1OTgsIDcwNjAyLCA3MDYxNiwgNzA2MjQsIDcwNjMyLCA3MDYzOCwgNzA2NDMsIDcwNjUwLCAKLSAgICA3MDY2MCwgNzA2NjksIDcwNjc0LCA3MDY3OSwgNzA2ODcsIDcwNjkyLCA3MDY5OCwgNzA3MDMsIDcwNzEyLCA1NzE1NCwgCi0gICAgNzA3MTcsIDcwNzIwLCA3MDczOCwgNzA3NTcsIDcwNzcwLCA3MDc4NCwgNzA4MDAsIDcwODA3LCA3MDgxNCwgNzA4MjAsIAotICAgIDcwODI3LCA3MDgzMiwgNzA4MzgsIDcwODQ0LCA3MDg1MiwgNzA4NTgsIDcwODYzLCA3MDg2OCwgNzA4ODQsIDg5MzgsIAotICAgIDcwODk4LCA3MDkwNSwgNzA5MTMsIDcwOTE5LCA3MDkyMywgNzA5MjYsIDcwOTMxLCA3MDkzNiwgNzA5NDMsIDcwOTQ4LCAKLSAgICA3MDk1NywgNzA5NjIsIDcwOTY4LCA3MDk3NywgNzA5ODYsIDcwOTkxLCA3MDk5NSwgNzEwMDMsIDEwMDA1LCA3MTAxMiwgCi0gICAgNzEwMjAsIDcxMDI1LCA3MTAzMSwgMTAwMTYsIDcxMDM2LCA3MTAzOSwgNzEwNDQsIDcxMDU0LCA3MTA2MywgNzEwNjgsIAotICAgIDcxMDc0LCA3MTA3OSwgNzEwODcsIDcxMDk0LCA3MTEwNSwgNzExMTUsIDcxMTIwLCA2MjEwMywgNzExMjUsIDcxMTMxLCAKLSAgICA3MTEzNiwgNzExNDMsIDcxMTUyLCA3MTE2MCwgNzExNjYsIDcxMTczLCA3MTE3OSwgNzExODMsIDE1MTYxLCAyOTkzLCAKLSAgICA3MTE4OCwgNzExOTIsIDcxMTk4LCA3MTIwNywgNzEyMTMsIDcxMjIwLCA3MTIyNCwgNzEyNDUsIDcxMjY3LCA3MTI4MywgCi0gICAgNzEzMDAsIDcxMzE5LCA3MTMyOCwgNzEzMzgsIDcxMzQ1LCA3MTM1MiwgMjUxODEsIDcxMzU4LCA3MTM2MiwgNzEzNzAsIAotICAgIDcxMzgyLCA3MTM4OCwgNzEzOTYsIDcxNDAwLCA3MTQwOCwgNzE0MTUsIDcxNDE5LCA3MTQyNSwgNzE0MzEsIDcxNDM2LCAKLSAgICAzNDk4LCAzOTMwNSwgNzE0NDIsIDcxNDQ2LCA3MTQ1MCwgNzE0NTQsIDcxNDU5LCA3MTQ2NCwgNzE0NjksIDcxNDc1LCAKLSAgICA3MTQ4MSwgNzE0ODcsIDcxNDk0LCA3MTUwMCwgNzE1MDcsIDcxNTEzLCA3MTUxOSwgNzE1MjQsIDcxNTMwLCA3MTUzNSwgCi0gICAgNzE1NDAsIDcxNTQ0LCA3MTU0OSwgMzkzMjAsIDcxNTUzLCA3MTU1OCwgNzE1NjYsIDcxNTcwLCA3MTU3NSwgNzE1ODIsIAotICAgIDcxNTkxLCA3MTU5NywgNzE2MDQsIDcxNjA4LCA3MTYxMSwgNzE2MTgsIDcxNjI3LCA3MTYzMiwgNzE2MzYsIDcxNjQ0LCAKLSAgICA3MTY1MywgNzE2NTcsIDcxNjY1LCA3MTY3MSwgNzE2NzYsIDcxNjgxLCA3MTY4NywgNzE2OTMsIDcxNjk4LCA3MTcwMiwgCi0gICAgNzE3MDgsIDcxNzEzLCA3MTcxNywgNzE3MjEsIDcxNzI0LCA3MTcyOSwgNzE3MzcsIDcxNzQ3LCA3MTc1MiwgMzY4NjUsIAotICAgIDcxNzYwLCA3MTc3MiwgNzE3NzYsIDcxNzgyLCA3MTc5NCwgNzE4MDUsIDcxODEyLCA3MTgxOCwgNzE4MjUsIDcxODM3LCAKLSAgICA3MTg0NCwgNzE4NTAsIDE5MjU1LCA3MTg1NCwgNzE4NjAsIDcxODY3LCA3MTg3MywgNzE4NzksIDcxODg0LCA3MTg4OSwgCi0gICAgNzE4OTQsIDcxOTAzLCA1NDkxLCA3MTkwOCwgMTQ2MjcsIDcxOTE0LCA3MTkxOCwgNzE5MjYsIDcxOTM1LCA3MTkzOSwgCi0gICAgNzE5NDYsIDcxOTU1LCA3MTk2OCwgNzE5NzQsIDcxNTQ1LCAyNzk2MiwgNzE5NzksIDcxOTgxLCA3MTk4NiwgNzE5OTEsIAotICAgIDcxOTk2LCA3MjAwMSwgNzIwMDYsIDcyMDExLCA3MjAxNiwgNzIwMjEsIDcyMDI2LCA3MjAzMSwgNzIwMzYsIDcyMDQxLCAKLSAgICA3MjA0NiwgNzIwNTEsIDcyMDU3LCA3MjA2MiwgNzIwNjcsIDcyMDcyLCA3MjA3NywgNzIwODIsIDcyMDg3LCA3MjA5MiwgCi0gICAgNzIwOTcsIDcyMTAzLCA3MjEwOSwgNzIxMTUsIDcyMTIwLCA3MjEyNSwgNzIxMzcsIDcyMTQyLCAxODMzLCA2NywgNzIxNDcsIAotICAgIDcyMTUyLCAzMDQ4NSwgMzA0OTAsIDMwNDk1LCAzMDUwMSwgMzA1MDYsIDcyMTU2LCAzMDUxMSwgMjAyMjYsIDcyMTc4LCAKLSAgICA3MjE4MiwgNzIxODYsIDcyMTkxLCA3MjE5NSwgMzA1MTUsIDcyMTk5LCA3MjIwNywgMzA1MjAsIDcyMjE0LCA3MjIxNywgCi0gICAgNzIyMjIsIDcyMjI2LCA3OTEwLCA3MjIzNSwgMzA1MjUsIDIwMDkyLCA3MjIzOCwgNzIyNDIsIDEzOTYsIDcyMjQ3LCAKLSAgICAzMDUzNiwgNzIyNTAsIDcyMjU1LCAyMzcyMCwgMjM3MzAsIDMyOTQwLCA3MjI2MCwgNzIyNjUsIDcyMjcwLCA3MjI3NSwgCi0gICAgNzIyODEsIDcyMjg2LCA3MjI5NSwgNzIzMDAsIDcyMzA3LCA3MjMxMywgNzIzMTgsIDcyMzIzLCA3MjMyOCwgNzIzMzgsIAotICAgIDcyMzQ3LCA3MjM1MiwgNzIzNjAsIDcyMzY0LCA3MjM3MiwgMzAzNTAsIDExODgsIDcyMzc5LCA3MjM4NSwgNzIzOTAsIAotICAgIDcyMzk1LCA3MjQwMCwgNzI0MDYsIDcyNDExLCA3MjQxOCwgNzI0MjQsIDcyNDI5LCA3MjQzNywgNzI0NDcsIDcyNDU3LCAKLSAgICA3MjQ2MywgNzI0NjgsIDcyNDc0LCAxNTcxNSwgNzI0ODEsIDMzNzQ1LCA3MjQ5NCwgNzI0OTksIDcyNTA1LCA3MjUxOCwgCi0gICAgNzI1MjQsIDcyNTI4LCA3MjUzNywgNzI1NDQsIDcyNTUwLCA3MjU1OCwgNzI1NjcsIDcyNTc0LCA3MjU4MCwgNzI1ODMsIAotICAgIDIzODYxLCA3MjU4NywgNzI1OTQsIDcyNjAwLCA3MjYwOCwgNzI2MTMsIDIyMDM1LCA3MjYxOSwgNzI2MjIsIDcyNjMwLCAKLSAgICA3MjYzOCwgNzI2NTIsIDcyNjU5LCA3MjY2NSwgNzI2NzIsIDcyNjc4LCAzMDU1MCwgNzI2ODIsIDcyNjg5LCA3MjY5NywgCi0gICAgNzI3MDUsIDMwNTU1LCA3MjcxMSwgNzI3MTcsIDcyNzIyLCA3MjczMiwgNzI3MzgsIDcyNzQ3LCAyODY3NywgMzI0MTUsIAotICAgIDcyNzU1LCA3Mjc2MCwgNzI3NjUsIDcyNzcwLCA3Mjc3NCwgMTMxNzAsIDM2ODc4LCA3Mjc3OSwgNzI3ODQsIDMwNTYwLCAKLSAgICA1OTU1NCwgNzI3ODgsIDcyNzkzLCA3Mjc5NywgNzI4MDYsIDcyODE0LCA3MjgyMCwgNzI4MjUsIDcyODMxLCA3MjgzOCwgCi0gICAgNzI4NDQsIDcyODQ5LCA3Mjg1NCwgNzI4NjMsIDcyODc1LCA3Mjg5MCwgMzA4MDEsIDcyODk2LCAxNDc0NiwgMzA1NjQsIAotICAgIDcyOTAwLCA3MjkwNywgMjIxNDUsIDcyOTEzLCA3MjkyMCwgNzI5MjksIDcyOTM2LCA3Mjk0NSwgNzI5NTEsIDcyOTU2LCAKLSAgICA3Mjk2NCwgNzI5NzAsIDMwNTc0LCA3Mjk3NSwgNzI5ODQsIDcxODAwLCA3Mjk5MywgNzMwMDAsIDczMDA2LCA3MzAxMiwgCi0gICAgNzMwMjIsIDczMDMwLCA3MzAzNywgNzMwNDEsIDMwNTc5LCA3MzA0NCwgMzA1ODUsIDMwNTkxLCA3MzA0OSwgNzMwNTcsIAotICAgIDczMDY3LCA3MzA3NiwgNzMwODQsIDczMDkxLCA3MzEwMSwgMzA1OTYsIDczMTA1LCA3MzEwNywgNzMxMTEsIDczMTE2LCAKLSAgICA3MzEyMCwgNzMxMjQsIDczMTMwLCA3MzEzNSwgNzMxMzksIDczMTUwLCA3MzE1NSwgMjk5OCwgNzMxNTksIDczMTY2LCAKLSAgICA3MzE3MCwgNzMxNzksIDczMTg3LCA3MzE5NCwgNzMxOTksIDczMjA0LCA1OTYwMCwgNzMyMDgsIDczMjExLCA3MzIxNywgCi0gICAgNzMyMjUsIDczMjMxLCA3MzIzNSwgNzMyNDAsIDczMjQ3LCA3MzI1MiwgNzMyNTgsIDMyNDQ2LCA3MzI2MywgNzMyNjYsIAotICAgIDczMjcxLCA3MzI3NSwgNzMyODAsIDczMjg1LCA3MzI4OSwgNzMyOTcsIDIzNzM5LCAyMzc0OCwgNzMzMDMsIDczMzA5LCAKLSAgICA3MzMxNSwgNzMzMjAsIDczMzI0LCA3MzMyNywgNzMzMzcsIDczMzQ2LCA3MzM1MSwgNzMzNTcsIDczMzY0LCA3MzM3MCwgCi0gICAgNzMzNzQsIDczMzgyLCA3MzM4NywgMzI0NTIsIDczMzkxLCA3MzM5OSwgNzM0MDUsIDczNDEyLCA3MzQxNywgNzM0MjEsIAotICAgIDczNDI2LCA1NTc5MSwgMzI0NTgsIDczNDMyLCA3MzQzNywgNzM0NDEsIDczNDQ2LCA3MzQ1MSwgNzM0NTYsIDczNDYwLCAKLSAgICA3MzQ2NSwgNzM0NzAsIDczNDc2LCA3MzQ4MSwgNzM0ODYsIDczNDkyLCA3MzQ5OCwgNzM1MDMsIDczNTA3LCA3MzUxMiwgCi0gICAgNzM1MTcsIDczNTIyLCA3MzUyNiwgMjIxNDQsIDczNTMxLCA3MzUzNiwgNzM1NDIsIDczNTQ4LCA3MzU1NCwgNzM1NTksIAotICAgIDczNTYzLCA3MzU2OCwgNzM1NzMsIDczNTc4LCA3MzU4MiwgNzM1ODcsIDczNTkyLCA3MzU5NywgNzM2MDIsIDczNjA2LCAKLSAgICAzMDYwMCwgNzM2MTQsIDczNjE4LCA3MzYyNiwgNzM2MzQsIDczNjQ1LCA3MzY1MCwgNzM2NTQsIDIwNDk3LCA3MzY1OSwgCi0gICAgNzM2NjUsIDczNjc1LCA3MzY4MiwgNzM2ODcsIDczNjk2LCA3MzcwMSwgNzM3MDUsIDczNzEwLCA3MzcxOCwgNzM3MjYsIAotICAgIDczNzMzLCA2MjMyMSwgNzM3MzksIDczNzQ3LCA3Mzc1NCwgNzM3NjUsIDczNzcxLCA3Mzc3NywgMzA2MTAsIDczNzgwLCAKLSAgICA3Mzc4NywgNzM3OTUsIDczODAwLCAzNzA2OSwgNzM4MDQsIDczODA5LCA3MzgxNiwgNzM4MjEsIDczODksIDczODI1LCAKLSAgICA3MzgzMywgNzM4NDAsIDczODQ3LCA3Mzg1MywgNzM4NjcsIDYwNjI5LCA3Mzg3NSwgNzM4ODEsIDczODg1LCA3Mzg4OCwgCi0gICAgNzM4OTYsIDczOTAzLCA3MzkwOCwgNzM5MjEsIDczOTI4LCA3MzkzNSwgNzM5NDAsIDU4MTc0LCA3Mzk0NSwgNzM5NDgsIAotICAgIDczOTU1LCA3Mzk2MSwgNzM5NjUsIDczOTczLCA3Mzk4MywgNzM5OTMsIDc0MDAyLCA3NDAxMCwgNzQwMjEsIDc0MDI2LCAKLSAgICA3NDAzMCwgNzQwMzUsIDc0MDM5LCAzMzA3MSwgMTk1MDksIDMzMDgwLCA3NDA0NywgNzQwNTIsIDc0MDU3LCA3NDA2MiwgCi0gICAgNzQwNjcsIDc0MDcyLCA3NDA3NywgNzQwODEsIDc0MDg2LCA3NDA5MSwgNzQwOTYsIDc0MTAxLCA3NDEwNiwgNzQxMTEsIAotICAgIDc0MTE1LCA3NDEyMCwgNzQxMjUsIDc0MTI5LCA3NDEzMywgNzQxMzcsIDc0MTQxLCA3NDE0NiwgNzQxNTEsIDc0MTU1LCAKLSAgICA3NDE2MCwgNzQxNjQsIDc0MTY4LCA3NDE3MywgNzQxNzgsIDc0MTgzLCA3NDE4OCwgNzQxOTIsIDc0MTk3LCA3NDIwMiwgCi0gICAgNzQyMDYsIDc0MjExLCA3NDIxNiwgNzQyMjEsIDc0MjI2LCA3NDIzMSwgNzQyMzYsIDc0MjQxLCA3NDI0NiwgNzQyNTEsIAotICAgIDc0MjU2LCA3NDI2MSwgNzQyNjYsIDc0MjcxLCA3NDI3NiwgNzQyODEsIDc0Mjg2LCA3NDI5MSwgNzQyOTYsIDc0MzAxLCAKLSAgICA3NDMwNiwgNzQzMTAsIDc0MzE1LCA3NDMyMCwgNzQzMjUsIDc0MzMwLCA3NDMzNSwgNzQzNDAsIDc0MzQ1LCA3NDM1MCwgCi0gICAgNzQzNTUsIDc0MzYwLCA3NDM2NSwgNzQzNjksIDc0Mzc0LCA3NDM3OCwgNzQzODMsIDc0Mzg4LCA3NDM5MywgNzQzOTgsIAotICAgIDc0NDAzLCA3NDQwOCwgNzQ0MTMsIDc0NDE4LCA3NDQyMywgNzQ0MjcsIDc0NDMxLCA3NDQzNiwgNzQ0NDEsIDc0NDQ1LCAKLSAgICA3NDQ1MCwgNzQ0NTUsIDc0NDU5LCA3NDQ2NCwgNzQ0NjksIDc0NDc0LCA3NDQ3OSwgNzQ0ODMsIDc0NDg4LCA3NDQ5MywgCi0gICAgNzQ0OTcsIDc0NTAyLCA3NDUwNiwgNzQ1MTAsIDc0NTE0LCA3NDUxOCwgNzQ1MjMsIDc0NTI3LCA3NDUzMSwgNzQ1MzUsIAotICAgIDc0NTM5LCA3NDU0MywgNzQ1NDcsIDc0NTUxLCA3NDU1NSwgNzQ1NTksIDc0NTY0LCA3NDU2OSwgNzQ1NzQsIDc0NTc5LCAKLSAgICA3NDU4NCwgNzQ1ODksIDc0NTk0LCA3NDU5OSwgNzQ2MDQsIDc0NjA5LCA3NDYxMywgNzQ2MTcsIDc0NjIxLCA3NDYyNSwgCi0gICAgNzQ2MjksIDc0NjMzLCA3NDYzOCwgNzQ2NDIsIDc0NjQ3LCA3NDY1MSwgNzQ2NTYsIDc0NjYxLCA3NDY2NSwgNzQ2NjksIAotICAgIDc0Njc0LCA3NDY3OCwgNzQ2ODIsIDc0Njg2LCA3NDY5MCwgNzQ2OTQsIDc0Njk4LCA3NDcwMiwgNzQ3MDYsIDc0NzEwLCAKLSAgICA3NDcxNCwgNzQ3MTgsIDc0NzIyLCA3NDcyNiwgNzQ3MzAsIDc0NzM1LCA3NDc0MCwgNzQ3NDQsIDc0NzQ4LCA3NDc1MiwgCi0gICAgNzQ3NTYsIDc0NzYwLCA3NDc2NCwgNzQ3NjksIDc0NzczLCA3NDc3NywgNzQ3ODEsIDc0Nzg1LCA3NDc4OSwgNzQ3OTMsIAotICAgIDc0Nzk4LCA3NDgwMiwgNzQ4MDcsIDc0ODExLCA3NDgxNSwgNzQ4MTksIDc0ODIzLCA3NDgyNywgNzQ4MzEsIDc0ODM1LCAKLSAgICA3NDgzOSwgNzQ4NDMsIDc0ODQ3LCA3NDg1MSwgNzQ4NTYsIDc0ODYwLCA3NDg2NCwgNzQ4NjgsIDc0ODcyLCA3NDg3NiwgCi0gICAgNzQ4ODAsIDc0ODg0LCA3NDg4OCwgNzQ4OTIsIDc0ODk2LCA3NDkwMCwgNzQ5MDUsIDc0OTA5LCA3NDkxMywgNzQ5MTgsIAotICAgIDc0OTIzLCA3NDkyNywgNzQ5MzEsIDc0OTM1LCA3NDkzOSwgNzQ5NDMsIDc0OTQ3LCA3NDk1MSwgNzQ5NTUsIDc0OTYwLCAKLSAgICA3NDk2NCwgNzQ5NjksIDc0OTczLCA3NDk3OCwgNzQ5ODIsIDc0OTg3LCA3NDk5MSwgNzQ5OTcsIDc1MDAyLCA3NTAwNiwgCi0gICAgNzUwMTEsIDc1MDE1LCA3NTAyMCwgNzUwMjQsIDc1MDI5LCA3NTAzMywgNzUwMzgsIDE0ODQsIDc1MDQyLCAyNzc4LCAxNzIyLCAKLSAgICAxNzI3LCA3NTA0NiwgNzUwNTAsIDI3ODIsIDc1MDU0LCAxMzY1LCA3NTA1OSwgMTMzMSwgNzUwNjMsIDI3OTQsIDc1MDY3LCAKLSAgICA3NTA3NCwgNzUwODEsIDc1MDk1LCAyNzk4LCA1NTg5LCA3NTEwNCwgNzUxMTIsIDc1MTE5LCA3NTEzMCwgNzUxMzksIAotICAgIDc1MTQ2LCA3NTE1OCwgNzUxNzEsIDc1MTg0LCA3NTE5NSwgNzUyMDAsIDc1MjA3LCA3NTIxOSwgNzUyMjMsIDM5MTgsIAotICAgIDEwMDgyLCA3NTIzMywgNzUyMzgsIDc1MjQ3LCA3NTI1NywgMjgwMiwgNzUyNjIsIDc1MjY2LCA3NTI3MSwgNzUyNzgsIAotICAgIDc1Mjg0LCA3NTI5MiwgNzUzMDQsIDEzMzYsIDExMzUxLCA3NTMxNCwgNzUzMTgsIDc1MzI0LCA3NTMzOCwgNzUzNTAsIAotICAgIDc1MzYyLCA3NTM3MiwgNzUzODEsIDc1MzkwLCA3NTM5OSwgNzU0MDcsIDc1NDE4LCA3NTQyNiwgMzk2OCwgNzU0MzYsIAotICAgIDc1NDQ1LCA3NTQ1MSwgNzU0NjYsIDc1NDczLCA3NTQ3OSwgMzMxOTcsIDc1NDg0LCAyODI2LCAxMTM1NSwgNzU0ODgsIAotICAgIDc1NDk1LCA3MzM0LCA3NTUwNCwgMjgzMSwgMzAxMDUsIDc1NTEwLCA1NzkyMywgNzU1MTcsIDc1NTIzLCA3NTUzNCwgCi0gICAgNzU1NDAsIDc1NTQ3LCA3NTU1MywgNzU1NjEsIDc1NTY4LCA3NTU3NCwgNzU1ODQsIDc1NTkzLCA3NTYwNCwgNzU2MTEsIAotICAgIDc1NjE3LCA3NTYyNywgNzU2MzUsIDc1NjQxLCA3NTY1NiwgNzU2NjIsIDc1NjY3LCA3NTY3NCwgNzU2NzcsIDc1NjgzLCAKLSAgICA3NTY5MCwgNzU2OTYsIDc1NzA0LCA3NTcxMywgNzU3MjEsIDc1NzI3LCA3NTczNiwgMzg4NDUsIDc1NzUwLCA3NTc1NSwgCi0gICAgMTMwMDcsIDc1NzYxLCA3NTc3NCwgNzU3ODMsIDc1NzkxLCA3NTc5OCwgNzU4MDIsIDc1ODA2LCA3NTgwOSwgNzU4MTYsIAotICAgIDc1ODIzLCA3NTgzMSwgNzU4MzksIDc1ODQ4LCA3NTg1NiwgMTI5NDMsIDc1ODY0LCA3NTg2OSwgNzU4NzMsIDc1ODg1LCAKLSAgICA3NTg5MiwgNzU5MDEsIDc4MCwgNzU5MTEsIDc1OTIwLCA3NTkzMSwgMjg0NywgNzU5MzUsIDc1OTM5LCA3NTk0NSwgNzU5NTgsIAotICAgIDc1OTcwLCA3NTk4MCwgNzU5ODksIDI0MzMxLCA3NjAwMSwgNzYwMDksIDc2MDE4LCA3NjAyOSwgNzYwNDAsIDc2MDUwLCAKLSAgICA3NjA2MCwgNzYwNjksIDc2MDc3LCA5NjU3LCA3NjA4NCwgNzYwODgsIDc2MDkzLCA3NjA5OCwgNzYxMDQsIDEzNDEsIAotICAgIDEwMTUzLCA3NjExMSwgNzYxMjIsIDc2MTMxLCA3NjEzOSwgNzYxNDgsIDc2MTU2LCA3NjE3MiwgNzYxODMsIDc2MTkyLCAKLSAgICA3NjIwMCwgNzYyMTIsIDc2MjIzLCA3NjIzOSwgNzYyNDksIDc2MjcwLCA3NjI4MywgNzYyOTEsIDc2Mjk4LCAxMzExOCwgCi0gICAgNzYzMTEsIDc2MzE2LCA3NjMyMiwgNDM4NiwgNzYzMjgsIDc2MzMxLCA3NjMzOCwgNzYzNDgsIDY2MDcsIDc2MzU1LCAKLSAgICA3NjM2MCwgNzYzNjUsIDc2MzczLCA3NjM4MSwgODEyMywgODEzMiwgNzYzODYsIDc2Mzk3LCA3NjQwMiwgNzY0MDgsIDI4NTUsIAotICAgIDI4NjAsIDc2NDE0LCA5MjI0LCA3NjQyMCwgNzY0MjcsIDc2NDM0LCA3NjQ0NywgMjIwNSwgNTAsIDc2NDUyLCA3NjQ1NywgCi0gICAgNzY0NjcsIDc2NDczLCA3NjQ4MiwgNzY0OTAsIDc2NTAwLCA3NjUwNCwgNzY1MDksIDc2NTEzLCA3NjUyNSwgMjg4MywgCi0gICAgNzY1MzMsIDc2NTQxLCA3NjU0NiwgNzY1NTcsIDc2NTY4LCA3NjU3NywgNzY1ODIsIDc2NTg4LCA3NjU5MywgNzY2MDMsIAotICAgIDc2NjEzLCA3NjYxOCwgNzY2MjQsIDc2NjI5LCA3NjYzOCwgMTk1NjIsIDc2NjQyLCA0MDQ1LCAxMiwgNzY2NDcsIDc2NjU2LCAKLSAgICA3NjY2MywgNzY2NzAsIDc2Njc2LCA3NjY4MiwgODI3LCA3NjY4NywgNzY2OTIsIDU4MjQwLCA3NjY5NywgNzY3MDIsIAotICAgIDc2NzA4LCA3NjcxNiwgNzY3MjEsIDc2NzI4LCA3NjczNCwgNzY3MzksIDM1NTczLCAzODc0MywgNzY3NDUsIDI4ODcsIDMyLCAKLSAgICA3Njc1NSwgNzY3NjgsIDc2NzczLCA3Njc4MSwgNzY3ODYsIDc2NzkyLCAyOTA5LCAyNjIzNCwgNzY3OTcsIDc2ODA1LCAKLSAgICA3NjgxMiwgNzY4MTcsIDU2MDMzLCA1OTIyMSwgNzY4MjYsIDE2NjcsIDE3NzYsIDc2ODMxLCA3NjgzNiwgNzY4NDMsIDE3ODAsIAotICAgIDI0MiwgNzY4NTAsIDc2ODU2LCA3Njg2MSwgNzY4NjgsIDE3ODQsIDc2ODczLCA3Njg3OSwgNzY4ODQsIDc2ODk2LCA0NTk3LCAKLSAgICA3NjkwNiwgMTc5MSwgNzY5MTIsIDc2OTE3LCA3NjkyNCwgNzY5MzEsIDc2OTQ2LCA3Njk1MywgNzY5NjQsIDc2OTcyLCAKLSAgICAyNTcyLCA3Njk3NiwgNzY5ODgsIDc2OTkzLCA3Njk5NywgNzcwMDMsIDI2MDU5LCAyMjEwLCA3NzAwNywgNzcwMTgsIAotICAgIDc3MDIyLCA3NzAyNiwgNzcwMzIsIDc3MDM2LCA3NzA0NSwgNzcwNDksIDc3MDYwLCA3NzA2NCwgMjI1NiwgMjk5NDQsIAotICAgIDc3MDY4LCA3NzA3OCwgMzAxOCwgNzczOCwgNzcwODYsIDc3MDkxLCA3NzA5NSwgNzcxMDQsIDc3MTExLCA3NzExNywgMjk4OCwgCi0gICAgMTUzNDMsIDc3MTIxLCA3NzEzNCwgNzcxNTIsIDc3MTU3LCA3NzE2NSwgNzcxNzMsIDc3MTgzLCAxMTQ1NywgNzcxOTUsIAotICAgIDc3MjA4LCA3NzIxNSwgNzcyMjIsIDc3MjM4LCA3NzI0NSwgNzcyNTEsIDEwMjQsIDc3MjU4LCA3NzI2NSwgNzcyNzUsIAotICAgIDc3Mjg0LCA3NzI5NiwgMzk3MDksIDc3MzA0LCAzMDAyLCAxMDM1MCwgNzczMDcsIDc3MzE1LCA3NzMxOSwgMzAwNiwgCi0gICAgNzczMjMsIDE5MzU4LCAxMDM2NiwgMzY4NCwgNzczMjcsIDMwMTIsIDc3MzMxLCA3NzM0MSwgNzczNDcsIDc3MzUzLCAKLSAgICA3NzM1OSwgNzczNjUsIDc3MzcxLCA3NzM3NywgNzczODMsIDc3Mzg5LCA3NzM5NSwgNzc0MDEsIDc3NDA3LCA3NzQxMywgCi0gICAgNzc0MTksIDc3NDI1LCA3NzQzMSwgNzc0MzcsIDc3NDQzLCA3NzQ0OSwgNzc0NTUsIDc3NDYxLCA3NzQ2NywgNzc0NzMsIAotICAgIDc3NDc5LCA3NzQ4NSwgNzc0OTEsIDc3NDk4LCA3NzUwNSwgNzc1MTEsIDc3NTE3LCA3NzUyMywgNzc1MjksIDc3NTM1LCAKLSAgICA3NzU0MSwgMTM0NiwgMTQyNzAsIDEwMzg4LCA3NzU0NywgNzc1NTIsIDc3NTU3LCA3NzU2MiwgNzc1NjcsIDc3NTcyLCAKLSAgICA3NzU3NywgNzc1ODIsIDc3NTg3LCA3NzU5MiwgNzc1OTcsIDc3NjAyLCA3NzYwNywgNzc2MTIsIDc3NjE3LCA3NzYyMiwgCi0gICAgNzc2MjcsIDc3NjMyLCA3NzYzNywgNzc2NDIsIDc3NjQ3LCA3NzY1MiwgNzc2NTcsIDc3NjYyLCA3NzY2NywgNzc2NzIsIAotICAgIDc3Njc4LCA3NzY4MywgNzc2ODgsIDc3Njk0LCA3NzY5OSwgNzc3MDUsIDc3NzEwLCA3NzcxNSwgNzc3MjEsIDc3NzI2LCAKLSAgICA3NzczMSwgNzc3MzYsIDc3NzQxLCA3Nzc0NiwgNzc3NTEsIDc3NzU2LCA3Nzc2MSwgNzczNDIsIDc3MzQ4LCA3NzM1NCwgCi0gICAgNzczNjAsIDc3MzY2LCA3NzM3MiwgNzczNzgsIDc3Mzg0LCA3NzM5MCwgNzczOTYsIDc3NDAyLCA3NzQwOCwgNzc0MTQsIAotICAgIDc3NDIwLCA3NzQyNiwgNzc3NjcsIDc3NDMyLCA3NzQzOCwgNzc0NDQsIDc3NzczLCA3NzQ1MCwgNzc0NTYsIDc3NDYyLCAKLSAgICA3NzQ2OCwgNzc0NzQsIDc3NDgwLCA3NzQ4NiwgNzc1MDYsIDc3Nzc5LCA3Nzc4NSwgNzc1MTIsIDc3NzkxLCA3NzUxOCwgCi0gICAgNzc1MjQsIDc3NTMwLCA3NzUzNiwgNzc1NDIsIDMwMzMsIDMwMzgsIDc3Nzk3LCA3NzgwMiwgNzc4MDUsIDc3ODExLCAKLSAgICA3NzgxNywgNzc4MjQsIDc3ODI5LCA3NzgzNCwgMjI2MSwgCisgICAgMCwgMCwgNiwgMTAsIDE4LCAyMywgMjcsIDM0LCAzOSwgNDEsIDQ0LCA1MCwgNjIsIDcwLCA4MCwgOTMsIDEwMiwgMTA4LCAKKyAgICAxMTMsIDEyMSwgMTMwLCAxMzUsIDE0MCwgMTQzLCAxNDcsIDE1MywgMTU4LCAxNjMsIDE3MSwgMTc4LCAxODYsIDE5MSwgCisgICAgMTk0LCAyMDAsIDIwOCwgMjE1LCAyMjUsIDIzMCwgMjM3LCAyNDYsIDI0OSwgMjU0LCAyNTcsIDI2MywgMjY3LCAyNzIsIAorICAgIDI4MSwgMjg4LCAyOTUsIDMwMSwgMzEwLCAzMTUsIDMyMSwgMzI3LCAzMzUsIDE0NCwgMzQxLCAzNDksIDM1MCwgMzU4LCAKKyAgICAzNjEsIDM2NywgMzY5LCAzNzUsIDM4MiwgMzg0LCAzOTEsIDM5NSwgNDAzLCA0MTAsIDQxNSwgNDE3LCA0MjIsIDQyOSwgCisgICAgNDMxLCAyOTksIDQzNywgNDM5LCA0NDQsIDQ0OSwgNDUyLCA0NTcsIDQ2MywgNDcwLCA0NzksIDQ4OSwgNDk0LCA0OTgsIAorICAgIDUwNSwgNTE4LCA1MjIsIDUzMSwgNTM4LCA1NDUsIDU0OCwgNTU0LCA1NTgsIDU2MiwgNTcyLCA1ODAsIDU4OCwgNTk2LCAKKyAgICA2MDUsIDYxMywgNjE4LCA2MTksIDYyMywgNjMxLCA2MzgsIDY0OCwgNjU5LCA2NjMsIDY2NiwgNjcwLCA2NzMsIDM0OCwgCisgICAgNjc4LCA2ODcsIDY5MSwgNjk3LCA3MDMsIDcwNSwgNzA4LCA3MTEsIDcxNCwgNzE4LCA3MjIsIDczMSwgNzM5LCA3NDQsIAorICAgIDc0NywgNzUxLCA3NTcsIDc2NCwgNzcxLCA3NzYsIDc4NSwgNzk0LCA4MDEsIDgwNSwgODE4LCA4MjcsIDgzNSwgODQxLCAKKyAgICA1NTcsIDg1MCwgODYwLCA4NjcsIDg3MywgODc5LCA4ODYsIDg5NCwgODk4LCA3NDksIDkwNiwgOTE1LCA1MDMsIDkyMywgCisgICAgOTI4LCA5MzQsIDE3LCA5NDMsIDk0OCwgOTUxLCA5NTUsIDk1OSwgOTY2LCA5NjksIDk3NiwgOTgwLCA5ODgsIDk5MiwgCisgICAgMTAwMCwgMTAwNCwgMTAwNywgMTAxNCwgMTAyMSwgMTkyLCAxMDI0LCAxMDI5LCAxMDM5LCAxMDQ4LCAxMDU1LCAxMDYxLCAKKyAgICAxMDY5LCAxMDcyLCAxMDc3LCAxMDgzLCAxMDkxLCAxMDk3LCAxMTAyLCAxMTA1LCAxMTA4LCAxMTEsIDExMTMsIDExMTcsIAorICAgIDExMjMsIDExMjksIDExMzIsIDExMzgsIDExNDIsIDExNDcsIDExNTMsIDExNTgsIDExNjgsIDExNzIsIDExNzUsIDExNzgsIAorICAgIDExODcsIDExOTEsIDExOTQsIDExOTksIDEyMDQsIDEyMTAsIDEyMTUsIDEyMjAsIDEyMjUsIDEyMjksIDEyMzQsIDEyNDAsIAorICAgIDEyNDUsIDEyNTAsIDEyNTQsIDEyNjAsIDEyNjUsIDEyNzAsIDEyNzUsIDEyNzksIDEyODQsIDEyODksIDEyOTQsIDEzMDAsIAorICAgIDEzMDYsIDEzMTIsIDEzMTcsIDEzMjEsIDEzMjYsIDEzMzEsIDEzMzYsIDEzNDAsIDEzNDUsIDEzNTAsIDEzNTUsIDEzNjAsIAorICAgIDExOTUsIDEyMDAsIDEyMDUsIDEyMTEsIDEyMTYsIDEzNjQsIDEyMjYsIDEzNzAsIDEzNzUsIDEzODAsIDEzODcsIDEzOTEsIAorICAgIDE0MDAsIDEyMzAsIDE0MDQsIDEyMzUsIDEyNDEsIDEyNDYsIDE0MDgsIDE0MTMsIDE0MTgsIDE0MjIsIDE0MjYsIDE0MzIsIAorICAgIDE0MzYsIDEyNTEsIDE0MzksIDEyNjEsIDE0NDQsIDE0NDgsIDEyNjYsIDE0NTQsIDEyNzEsIDE0NTgsIDE0NjIsIDEyNzYsIAorICAgIDE0NjYsIDE0NzEsIDE0NzUsIDE0NzgsIDE0ODIsIDEyODAsIDEyODUsIDE0ODcsIDEyOTAsIDE0OTMsIDE0OTksIDE1MDUsIAorICAgIDE1MTEsIDEyOTUsIDEzMDcsIDEzMTMsIDE1MTUsIDE1MTksIDE1MjMsIDE1MjYsIDEzMTgsIDE1MzAsIDE1MzIsIDE1MzcsIAorICAgIDE1NDIsIDE1NDgsIDE1NTMsIDE1NTgsIDE1NjIsIDE1NjcsIDE1NzIsIDE1NzcsIDE1ODIsIDE1ODgsIDE1OTMsIDE1OTgsIAorICAgIDE2MDQsIDE2MTAsIDE2MTUsIDE2MTksIDE2MjQsIDE2MjksIDE2MzQsIDE2MzksIDE2NDMsIDE2NTEsIDE2NTUsIDE2NjAsIAorICAgIDE2NjUsIDE2NzAsIDE2NzUsIDE2NzksIDE2ODIsIDE2ODcsIDE2OTIsIDE2OTcsIDE3MDIsIDE3MDgsIDE3MTMsIDE3MTcsIAorICAgIDEzMjIsIDE3MjAsIDE3MjUsIDE3MzAsIDEzMjcsIDE3MzQsIDE3MzgsIDE3NDUsIDEzMzIsIDE3NTIsIDEzMzcsIDE3NTYsIAorICAgIDE3NTgsIDE3NjMsIDE3NjksIDEzNDEsIDE3NzQsIDE3ODMsIDEzNDYsIDE3ODgsIDE3OTQsIDEzNTEsIDE3OTksIDE4MDQsIAorICAgIDE4MDcsIDE4MTIsIDE4MTYsIDE4MjAsIDE4MjQsIDE4MjcsIDE4MzEsIDEzNTYsIDEzNjEsIDExNTYsIDE4MzYsIDE4NDIsIAorICAgIDE4NDgsIDE4NTQsIDE4NjAsIDE4NjYsIDE4NzIsIDE4NzgsIDE4ODQsIDE4ODksIDE4OTUsIDE5MDEsIDE5MDcsIDE5MTMsIAorICAgIDE5MTksIDE5MjUsIDE5MzEsIDE5MzcsIDE5NDMsIDE5NDgsIDE5NTMsIDE5NTgsIDE5NjMsIDE5NjgsIDE5NzMsIDE5NzgsIAorICAgIDE5ODMsIDE5ODgsIDE5OTMsIDE5OTksIDIwMDQsIDIwMTAsIDIwMTUsIDIwMjEsIDIwMjcsIDIwMzIsIDIwMzgsIDIwNDQsIAorICAgIDIwNTAsIDIwNTYsIDIwNjEsIDIwNjYsIDIwNjgsIDIwNjksIDIwNzMsIDIwNzcsIDIwODIsIDIwODYsIDIwOTAsIDIwOTQsIAorICAgIDIwOTksIDIxMDMsIDIxMDYsIDIxMTEsIDIxMTUsIDIxMjAsIDIxMjQsIDIxMjgsIDIxMzMsIDIxMzcsIDIxNDAsIDIxNDQsIAorICAgIDIxNTAsIDIxNjQsIDIxNjgsIDIxNzIsIDIxNzYsIDIxNzksIDIxODQsIDIxODgsIDIxOTIsIDIxOTUsIDIxOTksIDIyMDQsIAorICAgIDIyMDksIDIyMTQsIDIyMTksIDIyMjMsIDIyMjcsIDIyMzEsIDIyMzYsIDIyNDAsIDIyNDUsIDIyNDksIDIyNTQsIDIyNjAsIAorICAgIDIyNjcsIDIyNzMsIDIyNzgsIDIyODMsIDIyODgsIDIyOTQsIDIyOTksIDIzMDUsIDIzMTAsIDIzMTMsIDEyMTIsIDIzMTUsIAorICAgIDIzMjIsIDIzMzAsIDIzNDAsIDIzNDksIDIzNjMsIDIzNjcsIDIzNzEsIDIzODQsIDIzOTIsIDIzOTYsIDI0MDEsIDI0MDUsIAorICAgIDI0MDgsIDI0MTIsIDI0MTYsIDI0MjEsIDI0MjYsIDI0MzEsIDI0MzUsIDI0MzgsIDI0NDIsIDI0NDksIDI0NTYsIDI0NjIsIAorICAgIDI0NjcsIDI0NzIsIDI0NzgsIDI0ODQsIDI0ODksIDI0OTIsIDE3NjAsIDI0OTQsIDI1MDAsIDI1MDQsIDI1MDksIDI1MTMsIAorICAgIDI1MTcsIDE3NjUsIDE3NzEsIDI1MjIsIDI1MjYsIDI1MjksIDI1MzQsIDI1MzksIDI1NDQsIDI1NDksIDI1NTMsIDI1NjAsIAorICAgIDI1NjUsIDI1NjgsIDI1NzUsIDI1ODEsIDI1ODUsIDI1ODksIDI1OTMsIDI1OTgsIDI2MDUsIDI2MTAsIDI2MTUsIDI2MjIsIAorICAgIDI2MjgsIDI2MzQsIDI2NDAsIDI2NTQsIDI2NzEsIDI2ODYsIDI3MDEsIDI3MTAsIDI3MTUsIDI3MTksIDI3MjQsIDI3MjksIAorICAgIDI3MzMsIDI3NDUsIDI3NTIsIDI3NTgsIDIyNjMsIDI3NjQsIDI3NzEsIDI3NzcsIDI3ODEsIDI3ODQsIDI3OTEsIDI3OTcsIAorICAgIDI4MDEsIDI4MDUsIDI4MDksIDIwOTEsIDI4MTMsIDI4MTgsIDI4MjMsIDI4MjcsIDI4MzUsIDI4MzksIDI4NDMsIDI4NDcsIAorICAgIDI4NTEsIDI4NTYsIDI4NjEsIDI4NjYsIDI4NzAsIDI4NzUsIDI4ODAsIDI4ODQsIDI4ODksIDI4OTMsIDI4OTYsIDI5MDAsIAorICAgIDI5MDQsIDI5MTIsIDI5MTcsIDI5MjEsIDI5MjUsIDI5MzEsIDI5NDAsIDI5NDQsIDI5NDgsIDI5NTQsIDI5NTksIDI5NjYsIAorICAgIDI5NzAsIDI5ODAsIDI5ODQsIDI5ODgsIDI5OTMsIDI5OTcsIDMwMDIsIDMwMDgsIDMwMTMsIDMwMTcsIDMwMjEsIDMwMjUsIAorICAgIDI0NTIsIDMwMzMsIDMwMzgsIDMwNDQsIDMwNDksIDMwNTMsIDMwNTgsIDMwNjMsIDMwNjcsIDMwNzMsIDMwNzgsIDIwOTUsIAorICAgIDMwODQsIDMwOTAsIDMwOTUsIDMxMDAsIDMxMDUsIDMxMTAsIDMxMTUsIDMxMjAsIDMxMjUsIDMxMzAsIDMxMzUsIDMxNDEsIAorICAgIDMxNDYsIDEyMjcsIDkyLCAzMTUyLCAzMTU2LCAzMTYwLCAzMTY0LCAzMTY5LCAzMTczLCAzMTc3LCAzMTgxLCAzMTg1LCAKKyAgICAzMTkwLCAzMTk0LCAzMTk5LCAzMjAzLCAzMjA2LCAzMjEwLCAzMjE1LCAzMjE5LCAzMjI0LCAzMjI4LCAzMjMyLCAzMjM2LCAKKyAgICAzMjQxLCAzMjQ1LCAzMjQ4LCAzMjYxLCAzMjY1LCAzMjY5LCAzMjczLCAzMjc3LCAzMjgxLCAzMjg0LCAzMjg4LCAzMjkyLCAKKyAgICAzMjk3LCAzMzAxLCAzMzA2LCAzMzExLCAzMzE2LCAzMzIwLCAzMzIzLCAzMzI2LCAzMzMyLCAzMzM2LCAzMzQwLCAzMzQzLCAKKyAgICAzMzQ3LCAzMzUxLCAzMzU0LCAzMzYwLCAzMzY1LCAzMzcwLCAzMzc2LCAzMzgxLCAzMzg2LCAzMzkyLCAzMzk4LCAzNDAzLCAKKyAgICAzNDA4LCAzNDEzLCAxMTE1LCA1NDcsIDM0MTgsIDM0MjEsIDM0MjYsIDM0MzAsIDM0MzMsIDM0MzcsIDM0NDIsIDM0NDcsIAorICAgIDM0NTEsIDM0NTYsIDM0NjAsIDM0NjUsIDM0NjksIDM0NzMsIDM0NzksIDM0ODUsIDM0ODgsIDM0OTEsIDM0OTcsIDM1MDQsIAorICAgIDM1MTEsIDM1MTcsIDM1MjQsIDM1MjksIDM1MzMsIDM1NDAsIDM1NDcsIDM1NTIsIDM1NTYsIDM1NjYsIDM1NzAsIDM1NzQsIAorICAgIDM1NzksIDM1ODQsIDM1OTQsIDIxMDcsIDM1OTksIDM2MDMsIDM2MDYsIDM2MTIsIDM2MTcsIDM2MjMsIDM2MjksIDM2MzQsIAorICAgIDM2NDEsIDM2NDUsIDM2NDksIDYyMCwgNjcxLCAxMzg4LCAzNjUzLCAzNjYwLCAzNjY3LCAzNjc0LCAzNjgxLCAzNjg3LCAKKyAgICAzNjkzLCAzNjk4LCAzNzAyLCAzNzA4LCAzNzEzLCAzNzE3LCAyMTE2LCAzNzIxLCAzNzI5LCA2MDAsIDM3MzUsIDM3NDYsIAorICAgIDM3NTAsIDM3NjAsIDIxMjEsIDM3NjYsIDM3NzEsIDM3ODYsIDM3OTIsIDM3OTksIDM4MDksIDM4MTUsIDM4MjAsIDM4MjYsIAorICAgIDM4MzIsIDM4MzUsIDM4MzksIDM4NDQsIDM4NTEsIDM4NTYsIDM4NjAsIDM4NjQsIDM4NjgsIDM4NzIsIDM4NzcsIDM4ODMsIAorICAgIDM4OTQsIDMyMTEsIDM4OTksIDM5MTEsIDM5MTksIDM5MjQsIDE1NjQsIDM5MzEsIDM5MzQsIDM5MzcsIDM5NDEsIDM5NDQsIAorICAgIDM5NTAsIDM5NTQsIDM5NjgsIDM5NzIsIDM5NzUsIDM5NzksIDM5ODUsIDM5OTEsIDM5OTYsIDQwMDAsIDQwMDQsIDQwMTAsIAorICAgIDQwMjEsIDQwMjcsIDQwMzIsIDQwMzgsIDQwNDIsIDQwNTAsIDQwNjAsIDQwNjYsIDQwNzEsIDQwODAsIDQwODgsIDQwOTUsIAorICAgIDQwOTksIDQxMDUsIDQxMTQsIDQxMjMsIDQxMjcsIDQxMzIsIDQxMzcsIDQxNDEsIDQxNDksIDQxNTMsIDQxNTgsIDQxNjIsIAorICAgIDIxMjksIDE0MDEsIDQxNjgsIDQxNzMsIDQxNzksIDQxODQsIDQxODksIDQxOTQsIDQxOTksIDQyMDQsIDQyMDksIDQyMTUsIAorICAgIDQyMjAsIDQyMjYsIDQyMzEsIDQyMzYsIDQyNDEsIDQyNDcsIDQyNTIsIDQyNTcsIDQyNjIsIDQyNjcsIDQyNzMsIDQyNzgsIAorICAgIDQyODQsIDQyODksIDQyOTQsIDQyOTksIDQzMDQsIDQzMDksIDQzMTQsIDQzMjAsIDQzMjUsIDQzMzAsIDMxOSwgNDU2LCAKKyAgICA0MzM1LCA0MzQxLCA0MzQ1LCA0MzQ5LCA0MzU0LCA0MzU4LCA0MzYyLCA0MzY1LCA0MzY5LCA0MzczLCA0Mzc3LCA0MzgxLCAKKyAgICA0Mzg2LCA0MzkwLCA0Mzk0LCA0NDAwLCA0MTY1LCA0NDA1LCA0NDA5LCA0NDEyLCA0NDE3LCA0NDIyLCA0NDI3LCA0NDMyLCAKKyAgICA0NDM3LCA0NDQyLCA0NDQ3LCA0NDUyLCA0NDU3LCA0NDYyLCA0NDY2LCA0NDcxLCA0NDc2LCA0NDgxLCA0NDg2LCA0NDkxLCAKKyAgICA0NDk2LCA0NTAxLCA0NTA2LCA0NTExLCA0NTE2LCA0NTIwLCA0NTI1LCA0NTMwLCA0NTM1LCA0NTQwLCA0NTQ1LCA0NTUwLCAKKyAgICA0NTU1LCA0NTYwLCA0NTY1LCA0NTcwLCA0NTc0LCA0NTc5LCA0NTg0LCA0NTg5LCA0NTk0LCA0NTk5LCA0NjA0LCA0NjA5LCAKKyAgICA0NjE0LCA0NjE5LCA0NjI0LCA0NjI4LCA0NjMzLCA0NjM4LCA0NjQzLCA0NjQ4LCA0NjUzLCA0NjU4LCA0NjYzLCA0NjY4LCAKKyAgICA0NjczLCA0Njc4LCA0NjgyLCA0Njg3LCA0NjkyLCA0Njk3LCA0NzAyLCA0NzA3LCA0NzEyLCA0NzE3LCA0NzIyLCA0NzI3LCAKKyAgICA0NzMyLCA0NzM2LCA0NzQxLCA0NzQ2LCA0NzUxLCA0NzU2LCA0NzYxLCA0NzY2LCA0NzcxLCA0Nzc2LCA0NzgxLCA0Nzg2LCAKKyAgICA0NzkwLCA0Nzk1LCA0ODAwLCA0ODA1LCA0ODEwLCA0ODE2LCA0ODIyLCA0ODI4LCA0ODM0LCA0ODQwLCA0ODQ2LCA0ODUyLCAKKyAgICA0ODU3LCA0ODYzLCA0ODY5LCA0ODc1LCA0ODgxLCA0ODg3LCA0ODkzLCA0ODk5LCA0OTA1LCA0OTExLCA0OTE3LCA0OTIyLCAKKyAgICA0OTI4LCA0OTM0LCA0OTQwLCA0OTQ2LCA0OTUyLCA0OTU4LCA0OTY0LCA0OTcwLCA0OTc2LCA0OTgyLCA0OTg3LCA0OTkzLCAKKyAgICA0OTk5LCA1MDA1LCA1MDExLCA1MDE3LCA1MDIzLCA1MDI5LCA1MDM1LCA1MDQxLCA1MDQ3LCA1MDUyLCA1MDU4LCA1MDY0LCAKKyAgICA1MDcwLCA1MDc2LCA1MDgyLCA1MDg4LCA1MDk0LCA1MTAwLCA1MTA2LCA1MTEyLCA1MTE3LCA1MTIzLCA1MTI5LCA1MTM1LCAKKyAgICA1MTQxLCA1MTQ3LCA1MTUzLCA1MTU5LCA1MTY1LCA1MTcxLCA1MTc3LCA1MTgyLCA1MTg2LCA1MTkyLCA1MTk4LCA1MjA0LCAKKyAgICA1MjEwLCA1MjE2LCA1MjIyLCA1MjI4LCA1MjM0LCA1MjQwLCA1MjQ2LCA1MjUxLCA1MjU3LCA1MjYzLCA1MjY5LCA1Mjc1LCAKKyAgICA1MjgxLCA1Mjg3LCA1MjkzLCA1Mjk5LCA1MzA1LCA1MzExLCA1MzE2LCA1MzIyLCA1MzI4LCA1MzM0LCA1MzQwLCA1MzQ2LCAKKyAgICA1MzUyLCA1MzU4LCA1MzY0LCA1MzcwLCA1Mzc2LCA1MzgxLCA1Mzg3LCA1MzkzLCA1Mzk5LCA1NDA1LCA1NDExLCA1NDE3LCAKKyAgICA1NDIzLCA1NDI5LCA1NDM1LCA1NDQxLCA1NDQ2LCA1NDUyLCA1NDU4LCA1NDY0LCA1NDcwLCA1NDc2LCA1NDgyLCA1NDg4LCAKKyAgICA1NDk0LCA1NTAwLCA1NTA2LCA1NTExLCA1NTE3LCA1NTIzLCA1NTI5LCA1NTM1LCA1NTQxLCA1NTQ3LCA1NTUzLCA1NTU5LCAKKyAgICA1NTY1LCA1NTcxLCA1NTc2LCA1NTgyLCA1NTg4LCA1NTk0LCA1NjAwLCA1NjA2LCA1NjEyLCA1NjE4LCA1NjI0LCA1NjMwLCAKKyAgICA1NjM2LCA1NjQxLCA1NjQ3LCA1NjUzLCA1NjU5LCA1NjY1LCA1NjcxLCA1Njc3LCA1NjgzLCA1Njg5LCA1Njk1LCA1NzAxLCAKKyAgICA1NzA2LCA1NzEyLCA1NzE4LCA1NzI0LCA1NzMwLCA1NzM2LCA1NzQyLCA1NzQ4LCA1NzU0LCA1NzYwLCA1NzY2LCA1NzcxLCAKKyAgICA1Nzc3LCA1NzgzLCA1Nzg5LCA1Nzk1LCA1ODAxLCA1ODA3LCA1ODEzLCA1ODE5LCA1ODI1LCA1ODMxLCA1ODM2LCA1ODQwLCAKKyAgICA1ODQzLCA1ODUwLCA1ODU0LCA1ODY3LCA1ODcxLCA1ODc1LCA1ODc5LCA1ODgzLCA1ODg3LCA1ODkxLCA1ODk3LCA1OTA0LCAKKyAgICA1OTEyLCA1OTE2LCA1OTI0LCA1OTMzLCA1OTM5LCA1OTUxLCA1OTU2LCA1OTU5LCA1OTYzLCA1OTczLCA1OTgxLCA1OTg5LCAKKyAgICA1OTk1LCA1OTk5LCA2MDA5LCA2MDE5LCA2MDI3LCA2MDM0LCA2MDQxLCA2MDQ3LCA2MDUzLCA2MDYwLCA2MDY0LCA2MDcxLCAKKyAgICA2MDgxLCA2MDkxLCA2MDk5LCA2MTA2LCA2MTExLCA2MTE1LCA2MTIzLCA2MTI3LCA2MTMyLCA2MTM5LCA2MTQ3LCA2MTUyLCAKKyAgICA2MTU3LCA2MTYxLCA2MTY4LCA2MTczLCA2MTg3LCA2MTkyLCA2MTk3LCA2MjA0LCA2MjEzLCA2MjE2LCA2MjIwLCA2MjI0LCAKKyAgICA2MjI4LCA2MjMxLCA2MjM2LCA2MjQxLCA2MjUwLCA2MjU2LCA2MjYyLCA2MjY4LCA2MjcyLCA2MjgzLCA2MjkzLCA2MzA4LCAKKyAgICA2MzIzLCA2MzM4LCA2MzUzLCA2MzY4LCA2MzgzLCA2Mzk4LCA2NDEzLCA2NDI4LCA2NDQzLCA2NDU4LCA2NDczLCA2NDg4LCAKKyAgICA2NTAzLCA2NTE4LCA2NTMzLCA2NTQ4LCA2NTYzLCA2NTc4LCA2NTkzLCA2NjA4LCA2NjIzLCA2NjM4LCA2NjUzLCA2NjY4LCAKKyAgICA2NjgzLCA2Njk4LCA2NzEzLCA2NzI4LCA2NzQzLCA2NzU4LCA2NzczLCA2Nzg4LCA2ODAzLCA2ODE4LCA2ODMzLCA2ODQ4LCAKKyAgICA2ODYzLCA2ODc4LCA2ODkzLCA2OTA4LCA2OTIzLCA2OTM4LCA2OTUzLCA2OTY4LCA2OTgzLCA2OTk4LCA3MDEzLCA3MDI4LCAKKyAgICA3MDM3LCA3MDQ2LCA3MDUxLCA3MDU3LCA3MDY3LCA3MDcxLCA3MDc2LCA3MDgxLCA3MDg5LCA3MDkzLCA3MDk2LCA3MTAwLCAKKyAgICAyOTc1LCA3MTAzLCA3MTA4LCAyOTgsIDQ0MiwgNzExNCwgNzEyMiwgNzEyNiwgNzEzMCwgNzEzMywgNzEzNywgNzE0MywgCisgICAgNzE0NywgNzE1NSwgNzE2MSwgNzE2NiwgNzE3MywgNzE4MCwgNzE4NiwgNzE5MSwgNzE5OCwgNzIwNCwgNzIxMiwgNzIxNiwgCisgICAgNzIyMSwgNzIzMywgNzI0NCwgNzI1MSwgNzI1NSwgNzI1OSwgNzI2NSwgMzIzMywgNzI2OSwgNzI3NSwgNzI4MCwgNzI4NSwgCisgICAgNzI5MCwgNzI5NiwgNzMwMSwgNzMwNiwgNzMxMSwgNzMxNiwgNzMyMiwgNzMyNywgNzMzMiwgNzMzOCwgNzM0MywgNzM0OSwgCisgICAgNzM1NCwgNzM2MCwgNzM2NSwgNzM3MSwgNzM3NiwgNzM4MSwgNzM4NiwgNzM5MSwgNzM5NiwgNzQwMiwgNzQwNywgNzQxMiwgCisgICAgNzQxNywgNzQyMywgNzQyOSwgNzQzNSwgNzQ0MSwgNzQ0NywgNzQ1MywgNzQ1OSwgNzQ2NSwgNzQ3MSwgNzQ3NywgNzQ4MywgCisgICAgNzQ4OSwgNzQ5NCwgNzQ5OSwgNzUwNCwgNzUwOSwgNzUxNCwgNzUxOSwgNzUyNCwgNzUyOSwgNzUzNSwgNzU0MSwgNzU0NiwgCisgICAgNzU1MiwgNzU1OCwgNzU2NCwgNzU2OSwgNzU3NCwgNzU3OSwgNzU4NCwgNzU5MCwgNzU5NiwgNzYwMSwgNzYwNiwgNzYxMSwgCisgICAgNzYxNiwgNzYyMSwgNzYyNywgNzYzMiwgNzYzOCwgNzY0NCwgNzY1MCwgNzY1NiwgNzY2MiwgNzY2OCwgNzY3NCwgNzY4MCwgCisgICAgNzY4NiwgMjEzOCwgNzEzMiwgNzY5MSwgNzY5NSwgNzY5OSwgNzcwMiwgNzcwOSwgNzcxMiwgNzcyMCwgNzcyNSwgNzczMCwgCisgICAgNzcyMSwgNzczNSwgMjE2NSwgNzczOSwgNzc0NSwgNzc1MSwgNzc1NiwgNzc2MSwgNzc2OCwgNzc3NiwgNzc4MSwgNzc4NSwgCisgICAgNzc4OCwgNzc5MiwgNzc5OCwgNzgwNCwgNzgwOCwgMjE3MywgNTYwLCA3ODExLCA3ODE1LCA3ODIwLCA3ODI2LCA3ODMxLCAKKyAgICA3ODM1LCA3ODM4LCA3ODQyLCA3ODQ4LCA3ODUzLCA3ODU3LCA3ODY0LCA3ODY4LCA3ODcyLCA3ODc2LCA5NDUsIDc2OSwgCisgICAgNzg3OSwgNzg4NywgNzg5NCwgNzkwMSwgNzkwNywgNzkxNCwgNzkyMiwgNzkyOSwgNzkzNiwgNzk0MSwgNzk1MywgMTI0NywgCisgICAgMTQwOSwgMTQxNCwgNzk2NCwgMTQxOSwgNzk2OCwgNzk3MiwgNzk4MSwgNzk4OSwgNzk5OCwgODAwNCwgODAwOSwgODAxMywgCisgICAgODAxOSwgODAyNCwgMjcwNiwgODAzMSwgODAzNSwgODA0NCwgODA1MywgODA2MiwgODA3MSwgODA3NiwgODA4MSwgODA5MywgCisgICAgODA5OCwgODEwNiwgMjIyNCwgODExMCwgODExMiwgODExNywgODEyMSwgODEzMCwgODEzOCwgMTQyMywgMTMzLCAzNDYxLCAKKyAgICAzNDY2LCA4MTQ0LCA4MTQ4LCA4MTU3LCA4MTYzLCA4MTY4LCA4MTcxLCA4MTgwLCAyNjk4LCA4MTg2LCA4MTk0LCA4MTk4LCAKKyAgICA4MjAyLCA4MjA2LCAyMjM3LCA4MjEwLCA4MjE1LCA4MjIyLCA4MjI4LCA4MjM0LCA4MjM3LCA4MjM5LCA4MjQyLCA4MjUwLCAKKyAgICA4MjU4LCA4MjY2LCA4MjY5LCA4Mjc0LCAyMjUwLCA4Mjc5LCA3NzMyLCA4MjgyLCA4Mjg0LCA4Mjg5LCA4Mjk0LCA4Mjk5LCAKKyAgICA4MzA0LCA4MzA5LCA4MzE0LCA4MzE5LCA4MzI0LCA4MzI5LCA4MzM0LCA4MzQwLCA4MzQ1LCA4MzUwLCA4MzU1LCA4MzYxLCAKKyAgICA4MzY2LCA4MzcxLCA4Mzc2LCA4MzgxLCA4Mzg2LCA4MzkxLCA4Mzk3LCA4NDAyLCA4NDA3LCA4NDEyLCA4NDE3LCA4NDIyLCAKKyAgICA4NDI3LCA4NDMyLCA4NDM3LCA4NDQyLCA4NDQ3LCA4NDUyLCA4NDU3LCA4NDYyLCA4NDY3LCA4NDcyLCA4NDc3LCA4NDgyLCAKKyAgICA4NDg4LCA4NDk0LCA4NDk5LCA4NTA0LCA4NTA5LCA4NTE0LCA4NTE5LCAyMjYxLCAyMjY4LCAyMjc0LCA4NTI0LCA4NTMwLCAKKyAgICA4NTM4LCAyMzAwLCAyMzA2LCA4NTQ2LCA4NTUwLCA4NTU1LCA4NTU5LCA4NTYzLCA4NTY3LCA4NTcyLCA4NTc2LCA4NTgxLCAKKyAgICA4NTg1LCA4NTg4LCA4NTkxLCA4NTk3LCA4NjAzLCA4NjA5LCA4NjE1LCA4NjIxLCA4NjI3LCA4NjMzLCA4NjM3LCA4NjQxLCAKKyAgICA4NjQ1LCA4NjQ5LCA4NjUzLCA4NjU4LCA4NjY1LCA4Njc2LCA4Njg0LCA4Njk0LCA4NzAwLCA4NzA3LCA4NzEyLCA4NzE2LCAKKyAgICA4NzI3LCA4NzQwLCA4NzUxLCA4NzY0LCA4Nzc1LCA4Nzg3LCA4Nzk5LCA4ODExLCA4ODI0LCA4ODM3LCA4ODQ0LCA4ODUwLCAKKyAgICA4ODY0LCA4ODcxLCA4ODc3LCA4ODgxLCA4ODg2LCA4ODkwLCA4ODk3LCA4OTA1LCA4OTA5LCA4OTE1LCA4OTE5LCA4OTI1LCAKKyAgICA4OTM1LCA4OTM5LCA4OTQ0LCA4OTQ5LCA4OTU2LCA4OTYyLCA4OTcyLCA3OTA5LCA4OTc4LCA4OTgyLCA4OTg5LCA3NjgsIAorICAgIDg5OTMsIDg5OTcsIDkwMDIsIDkwMDcsIDkwMTIsIDkwMTYsIDkwMjIsIDkwMzAsIDkwMzYsIDkwNDAsIDkwNDYsIDkwNTYsIAorICAgIDkwNjAsIDkwNjYsIDkwNzEsIDkwNzUsIDkwODEsIDkwODcsIDIxNjEsIDkwOTIsIDkwOTQsIDkwOTksIDkxMDcsIDkxMTYsIAorICAgIDkxMjAsIDkxMjYsIDkxMzEsIDkxMzYsIDkxNDEsIDkxNDYsIDkxNTIsIDkxNTcsIDkxNjIsIDQwMDYsIDkxNjcsIDkxNzIsIAorICAgIDkxNzYsIDkxODIsIDkxODcsIDkxOTMsIDkxOTgsIDkyMDMsIDkyMDksIDkyMTQsIDkxMjEsIDkyMjAsIDkyMjQsIDkyMzEsIAorICAgIDkyMzcsIDkyNDIsIDkyNDYsIDYxODMsIDkyNTEsIDkyNjAsIDkyNjUsIDkyNzAsIDgyMTgsIDgyMjUsIDkyNzUsIDI4NTMsIAorICAgIDkyNzksIDkyODQsIDkyODksIDkxMzIsIDkyOTMsIDkyOTgsIDkxMzcsIDkxNDIsIDkzMDMsIDkzMTAsIDkzMTcsIDkzMjMsIAorICAgIDkzMjksIDkzMzUsIDkzNDAsIDkzNDUsIDkzNTAsIDkxNDcsIDkxNTMsIDkzNTYsIDkzNjIsIDkzNjcsIDkzNzUsIDkxNTgsIAorICAgIDkzODAsIDk5MCwgOTM4MywgOTM5MSwgOTM5NywgOTQwMywgOTQxMiwgOTQyMCwgOTQyNSwgOTQzMSwgOTQzOSwgOTQ0NiwgCisgICAgOTQ2MSwgOTQ3OCwgOTQ5NywgOTUwNiwgOTUxNCwgOTUyOSwgOTU0MCwgOTU1MCwgOTU2MCwgOTU2OCwgOTU3NCwgOTU4NiwgCisgICAgOTU5NSwgOTYwMywgOTYxMCwgOTYxNywgOTYyMywgOTYyOCwgOTYzNiwgOTY0NiwgOTY1MywgOTY2MywgOTY3MywgOTY4MywgCisgICAgOTY5MSwgOTY5OCwgOTcwNywgOTcxNywgOTczMSwgOTc0NiwgOTc1NSwgOTc2MywgOTc2OCwgOTc3MiwgOTc4MSwgOTc4NywgCisgICAgOTc5MiwgOTgwMiwgOTgxMiwgOTgyMiwgOTgyNywgOTgzMSwgOTg0MCwgOTg0NSwgOTg1NSwgOTg2NiwgOTg3OSwgOTg4NywgCisgICAgOTkwMCwgOTkxMiwgOTkyMCwgOTkyNSwgOTkyOSwgOTkzNSwgOTk0MCwgOTk0OCwgOTk1NiwgOTk2MywgOTk2OCwgOTk3NiwgCisgICAgOTk4MiwgOTk4NSwgOTk4OSwgOTk5NSwgMTAwMDMsIDEwMDA4LCAxMDAxMiwgMTAwMjAsIDEwMDI5LCAxMDAzNywgMTAwNDMsIAorICAgIDEwMDQ3LCAxMDA1NCwgMTAwNjUsIDEwMDY5LCAxMDA3MiwgMTAwNzgsIDkxNjMsIDEwMDgzLCAxMDA4OSwgMTAwOTYsIAorICAgIDEwMTAyLCAxMDEwNywgMTAxMTQsIDEwMTIxLCAxMDEyOCwgMTAxMzUsIDEwMTQyLCAxMDE0OSwgMTAxNTYsIDEwMTYzLCAKKyAgICAxMDE2OCwgOTQ3NCwgMTAxNzMsIDEwMTc5LCAxMDE4NiwgMTAxOTMsIDEwMTk4LCAxMDIwNSwgMTAyMTQsIDEwMjE4LCAKKyAgICAxMDIzMCwgODI1NiwgMTAyMzQsIDEwMjM3LCAxMDI0MSwgMTAyNDUsIDEwMjQ5LCAxMDI1MywgMTAyNTksIDEwMjY1LCAKKyAgICAxMDI3MCwgMTAyNzYsIDEwMjgxLCAxMDI4NiwgMTAyOTIsIDEwMjk3LCAxMDMwMiwgODk1MiwgMTAzMDcsIDEwMzExLCAKKyAgICAxMDMxNSwgMTAzMTksIDEwMzI0LCAxMDMyOSwgMTAzMzcsIDEwMzQzLCAxMDM0NywgMTAzNTEsIDEwMzU4LCAxMDM2MywgCisgICAgMTAzNzEsIDEwMzc2LCAxMDM4MCwgMTAzODMsIDEwMzg5LCAxMDM5NiwgMTA0MDAsIDEwNDAzLCAxMDQwOCwgMTA0MTIsIAorICAgIDQwNDUsIDEwNDE4LCAxMDQyNywgMzYsIDEwNDM1LCAxMDQ0MSwgMTA0NDYsIDg5NjcsIDEwNDUxLCAxMDQ1NiwgMTA0NjAsIAorICAgIDEwNDYzLCAxMDQ3OCwgMTA0OTcsIDEwNTA5LCAxMDUyMiwgMTA1MzUsIDEwNTQ4LCAxMDU2MiwgMTA1NzUsIDEwNTkwLCAKKyAgICAxMDU5NywgOTE2OCwgMTA2MDMsIDEwNjE3LCAxMDYyMiwgMTA2MjgsIDEwNjMzLCAxMDY0MSwgMTA2NDYsIDgwNDAsIAorICAgIDEwNjUxLCAxMDY1NCwgMTA2NjEsIDEwNjY2LCAxMDY3MCwgMjg1OCwgOTk4LCAxMDY3NiwgMTA2ODAsIDEwNjg2LCAxMDY5MiwgCisgICAgMTA2OTcsIDEwNzAzLCAxMDcwOCwgOTE3NywgMTA3MTQsIDEwNzIwLCAxMDcyNSwgMTA3MzAsIDEwNzM4LCAxMDc0NCwgCisgICAgMTA3NTcsIDEwNzY1LCAxMDc3MiwgOTE4MywgMTA3NzgsIDEwNzg2LCAxMDc5NCwgMTA4MDEsIDEwODE0LCAxMDgyNiwgCisgICAgMTA4MzYsIDEwODQ0LCAxMDg1MSwgMTA4NTgsIDEwODY3LCAxMDg3NiwgMTA4ODQsIDEwODkxLCAxMDg5NiwgMTA5MDIsIAorICAgIDkxODgsIDEwOTA3LCAxMDkxMywgOTE5NCwgMTA5MTgsIDEwOTIxLCAxMDkyOCwgMTA5MzQsIDEwOTQ3LCA4NjY5LCAxMDk1OCwgCisgICAgMTA5NjQsIDEwOTczLCAxMDk4MSwgMTA5ODgsIDEwOTk0LCAxMTAwMCwgMTEwMDUsIDExMDA5LCAxMTAxNCwgMTA0NzAsIAorICAgIDExMDIwLCA5MTk5LCAxMTAyNywgMTEwMzIsIDExMDM5LCAxMTA0NSwgMTEwNTEsIDExMDU2LCAxMTA2NCwgMTEwNzIsIAorICAgIDExMDc5LCAxMTA4MywgMTEwOTcsIDExMTA3LCAxMTExMiwgMTExMTYsIDExMTI3LCAxMTEzMywgMTExMzgsIDExMTQzLCAKKyAgICA5MjA0LCA5MjEwLCAxMTE0NywgMTExNTAsIDExMTU1LCAxMTE2NywgMTExNzQsIDExMTc5LCAxMTE4MywgMTExODgsIAorICAgIDExMTkyLCAxMTE5OSwgMTEyMDUsIDkyMTUsIDkxMjIsIDExMjEyLCAyODYzLCA4LCAxMTIxOSwgMTEyMjQsIDExMjI4LCAKKyAgICAxMTIzNCwgMTEyNDIsIDExMjUyLCAxMTI1NywgMTEyNjIsIDExMjY5LCAxMTI3NiwgMTEyODAsIDExMjkxLCAxMTMwMSwgCisgICAgMTEzMTAsIDExMzIyLCAxMTMyNywgMTEzMzEsIDExMzM5LCAxMTM1MywgMTEzNTcsIDExMzYwLCAxMTM2OCwgMTEzNzUsIAorICAgIDExMzgzLCAxMTM4NywgMTEzOTgsIDExNDAyLCAxMTQwOSwgMTE0MTQsIDExNDE4LCAxMTQyNCwgMTE0MjksIDExNDMzLCAKKyAgICAxMTQzOSwgMTE0NDQsIDExNDU1LCAxMTQ1OSwgMTE0NjIsIDExNDY4LCAxMTQ3MywgMTE0NzksIDExNDg1LCAxMTQ5MiwgCisgICAgMTE1MDMsIDExNTEzLCAxMTUyMywgMTE1MzIsIDExNTM5LCAxMTU0OCwgOTIyNSwgOTIzMiwgOTIzOCwgOTI0MywgMTE1NTQsIAorICAgIDExNTYwLCA5MjQ3LCAxMTU2NiwgMTE1NjksIDExNTc2LCAxMTU4MSwgMTE1OTYsIDExNjEyLCAxMTYyNywgMTE2MzUsIAorICAgIDExNjQxLCAxMTY0NiwgODM4LCA0MjAsIDExNjUxLCAxMTY1OSwgMTE2NjYsIDExNjcyLCAxMTY3NywgMTE2ODIsIDkyNTIsIAorICAgIDExNjg0LCAxMTY4OCwgMTE2OTMsIDExNjk3LCAxMTcwNywgMTE3MTIsIDExNzE2LCAxMTcyNSwgMTE3MjksIDExNzMyLCAKKyAgICA5MjYxLCAxMTczOSwgMTE3NDIsIDExNzUwLCAxMTc1NywgMTE3NjUsIDExNzY5LCAxMTc3NiwgMTE3ODUsIDExNzg4LCAKKyAgICAxMTc5MiwgMTE3OTYsIDExODAyLCAxMTgwNiwgMTE4MTAsIDExODE0LCAxMTgyMCwgMTE4MzAsIDExODM0LCAxMTg0MiwgCisgICAgMTE4NDYsIDExODUzLCAxMTg1NywgMTE4NjIsIDExODY2LCAxMTg3MywgMTE4NzksIDExODg3LCAxMTg5MywgMTE4OTgsIAorICAgIDExOTA4LCAxMTkxMywgMTE5MTgsIDExOTIyLCAxMTkzMCwgMzkwNSwgMTE5MzgsIDExOTQzLCA5MjY2LCAxMTk0NywgCisgICAgMTE5NTEsIDExOTU0LCAxMTk2MiwgMTE5NjksIDExOTczLCA1OTkxLCAxMTk3NywgMTE5ODIsIDExOTg2LCAxMTk5NywgCisgICAgMTIwMDcsIDEyMDEyLCAxMjAxOCwgMTIwMjIsIDEyMDI1LCAxMjAzMywgMTIwMzgsIDEyMDQzLCAxMjA1MCwgMTIwNTUsIAorICAgIDkyNzEsIDEyMDYwLCAxMjA2NCwgMTIwNzEsIDE3MjIsIDYxNDUsIDEyMDc2LCAxMjA4MSwgMTIwODYsIDEyMDkxLCAxMjA5NywgCisgICAgMTIxMDIsIDEyMTA4LCAxMjExMywgMTIxMTgsIDEyMTIzLCAxMjEyOCwgMTIxMzMsIDEyMTM4LCAxMjE0MywgMTIxNDgsIAorICAgIDEyMTUzLCAxMjE1OCwgMTIxNjMsIDEyMTY4LCAxMjE3MywgMTIxNzgsIDEyMTgzLCAxMjE4OCwgMTIxOTQsIDEyMTk5LCAKKyAgICAxMjIwNCwgMTIyMDksIDEyMjE0LCAxMjIxOSwgMTIyMjUsIDEyMjMwLCAxMjIzNSwgMTIyNDEsIDEyMjQ2LCAxMjI1MiwgCisgICAgMTIyNTcsIDEyMjYzLCAxMjI2OCwgMTIyNzMsIDEyMjc4LCAxMjI4MywgMTIyODksIDEyMjk0LCAxMjI5OSwgMTIzMDQsIAorICAgIDczNywgMTM5LCAxMjMxMiwgMTIzMTYsIDEyMzIxLCAxMjMyNiwgMTIzMzAsIDEyMzM0LCAxMjMzOCwgMTIzNDMsIDEyMzQ3LCAKKyAgICAxMjM1MiwgMTIzNTYsIDEyMzU5LCAxMjM2MywgMTIzNjcsIDEyMzczLCAxMjM3OCwgMTIzODgsIDEyMzk0LCAxMjQwMiwgCisgICAgMTI0MDYsIDEyNDEwLCAxMjQxNywgMTI0MjUsIDEyNDM0LCAxMjQ0NSwgMTI0NTIsIDEyNDU5LCAxMjQ2MywgMTI0NzIsIAorICAgIDEyNDgxLCAxMjQ4OSwgMTI0OTgsIDEyNTA3LCAxMjUxNiwgMTI1MjUsIDEyNTM1LCAxMjU0NSwgMTI1NTUsIDEyNTY1LCAKKyAgICAxMjU3NSwgMTI1ODQsIDEyNTk0LCAxMjYwNCwgMTI2MTQsIDEyNjI0LCAxMjYzNCwgMTI2NDQsIDEyNjU0LCAxMjY2MywgCisgICAgMTI2NzMsIDEyNjgzLCAxMjY5MywgMTI3MDMsIDEyNzEzLCAxMjcyMywgMTI3MzIsIDEyNzQyLCAxMjc1MiwgMTI3NjIsIAorICAgIDEyNzcyLCAxMjc4MiwgMTI3OTIsIDEyODAyLCAxMjgxMiwgMTI4MjIsIDEyODMxLCAxMjg0MSwgMTI4NTEsIDEyODYxLCAKKyAgICAxMjg3MSwgMTI4ODEsIDEyODkxLCAxMjkwMSwgMTI5MTEsIDEyOTIxLCAxMjkzMSwgMTI5NDAsIDEyNTYsIDEyOTQ2LCAKKyAgICAxMjk0OSwgMTI5NTMsIDEyOTU4LCAxMjk2NSwgMTI5NzEsIDEyOTc2LCAxMjk4MCwgMTI5ODUsIDEyOTk0LCAxMzAwMiwgCisgICAgMTMwMDcsIDEzMDExLCAxMzAxNSwgMTMwMjEsIDEzMDI2LCAxMzAzMiwgOTI4MCwgMTMwMzcsIDEzMDQyLCAxMzA1MSwgCisgICAgOTI4NSwgMTMwNTYsIDEzMDU5LCAxMzA2NSwgMTMwNzMsIDkyOTAsIDEzMDgwLCAxMzA4NCwgMTMwODgsIDEzMDkyLCAKKyAgICAxMzEwMiwgMTMxMDgsIDEzMTE0LCAxMzExOSwgMTMxMjgsIDEzMTM2LCAxMzE0MywgMTMxNTAsIDEzMTU1LCAxMzE2MiwgCisgICAgMTMxNjcsIDEzMTcxLCAxMzE3NCwgMTMxODUsIDEzMTk1LCAxMzIwNCwgMTMyMTIsIDEzMjIzLCAxMzIzNSwgMTMyNDUsIAorICAgIDEzMjUwLCAxMzI1NCwgMTMyNTksIDEzMjY0LCAxMzI2OCwgMTMyNzQsIDEzMjgyLCAxMzI4OSwgMTMzMDAsIDEzMzA1LCAKKyAgICAxMzMxNSwgMTMzMTksIDEzMzIyLCAxMzMyOSwgMTMzMzksIDEzMzQ4LCAxMzM1NSwgMTMzNTksIDEzMzY2LCAxMzM3MiwgCisgICAgMTMzNzcsIDEzMzgyLCAxMzM4NiwgMTMzOTUsIDEzNDAwLCAxMzQwNiwgMTM0MTAsIDEzNDE1LCAxMzQxOSwgMTM0MjgsIAorICAgIDEzNDM2LCAxMzQ0NCwgMTM0NTEsIDEzNDU5LCAxMzQ3MSwgMTM0ODIsIDEzNDkyLCAxMzQ5OSwgMTM1MDUsIDEzNTE0LCAKKyAgICAxMzUyNSwgMTM1MzQsIDEzNTQ2LCAxMzU1OCwgMTM1NzAsIDEzNTgwLCAxMzU4OSwgMTM1OTgsIDEzNjA2LCAxMzYxMywgCisgICAgMTM2MjIsIDEzNjMwLCAxMzYzNCwgMTM2NDAsIDEzNjQ2LCAxMzY1MSwgNzc1MywgMTM2NTUsIDEzNjU3LCAxMzY2MSwgCisgICAgMTM2NjYsIDEzNjcyLCAxMzY4MSwgMTM2ODUsIDEzNjkzLCAxMzcwMCwgMTM3MDksIDEzNzE4LCAxMzcyNywgMTM3MzYsIAorICAgIDEzNzQ1LCAxMzc1NCwgMTM3NjMsIDEzNzcyLCAxMzc4MiwgMTM3OTIsIDEzODAxLCAxMzgwNywgMTM4MTQsIDEzODIxLCAKKyAgICAxMzgyNywgMTM4NDEsIDEzODQ4LCAxMzg1NiwgMTM4NjUsIDEzODcxLCAxMzg4MCwgMTM4ODksIDEzOTAwLCAxMzkxMCwgCisgICAgMTM5MTgsIDEzOTI1LCAxMzkzMywgMTM5NDIsIDEzOTU1LCAxMzk2MywgMTM5NzAsIDEzOTgzLCAxMzk4OSwgMTM5OTUsIAorICAgIDE0MDA1LCAxNDAxNCwgMTQwMjMsIDE0MDI4LCAxNDAzMiwgMTQwMzgsIDE0MDQ0LCAxNDA1MSwgODk2NiwgMTQwNTYsIAorICAgIDE0MDYxLCAxNDA2OCwgMTQwNzMsIDEyMzY5LCAxNDA3OCwgMTQwODYsIDE0MDkyLCAxNDA5NywgMTQxMDUsIDE0MTEzLCAKKyAgICAxNDEyMCwgMTQxMjgsIDE0MTM0LCAxNDE0MiwgMTQxNTAsIDE0MTU2LCAxNDE2MSwgMTQxNjcsIDE0MTc0LCAxNDE4MCwgCisgICAgMTQxODUsIDE0MTg5LCAxNDIwMCwgMTQyMDgsIDE0MjE0LCAxNDIxOSwgMTQyMjgsIDE0MjM0LCAxNDIzOSwgMTQyNDgsIAorICAgIDE0MjYyLCAzODUzLCAxNDI2NiwgMTQyNzEsIDE0Mjc2LCAxNDI4MiwgMTQyODcsIDE0MjkyLCAxNDI5NiwgMTQzMDEsIAorICAgIDE0MzA2LCAxNDMxMSwgNzc1MiwgMTQzMTYsIDE0MzIxLCAxNDMyNiwgMTQzMzEsIDE0MzM2LCAxNDM0MCwgMTQzNDUsIAorICAgIDE0MzUwLCAxNDM1NSwgMTQzNjAsIDE0MzY2LCAxNDM3MiwgMTQzNzcsIDE0MzgxLCAxNDM4NiwgMTQzOTEsIDE0Mzk2LCAKKyAgICA5Mjk0LCAxNDQwMSwgMTQ0MDYsIDE0NDExLCAxNDQxNiwgMTQ0MjEsIDE0NDM4LCAxNDQ1NiwgMTQ0NjgsIDE0NDgxLCAKKyAgICAxNDQ5OCwgMTQ1MTQsIDE0NTMxLCAxNDU0MSwgMTQ1NjAsIDE0NTcxLCAxNDU4MiwgMTQ1OTMsIDE0NjA0LCAxNDYxNiwgCisgICAgMTQ2MjcsIDE0NjM4LCAxNDY1NSwgMTQ2NjYsIDE0Njc3LCAxNDY4MiwgOTI5OSwgMTQ2ODcsIDE0NjkxLCAyMzgxLCAKKyAgICAxNDY5NSwgMTQ2OTgsIDE0NzA0LCAxNDcxMiwgMTQ3MjAsIDE0NzI1LCAxNDczMywgMTQ3NDEsIDE0NzQ4LCAxNDc1MywgCisgICAgMTQ3NTksIDE0NzY2LCAxNDc3NCwgMTQ3ODEsIDE0NzkzLCAxNDgwMSwgMTQ4MDYsIDExNTkwLCAxNDgxMiwgMTQ4MjEsIAorICAgIDE0ODMwLCAxNDgzOCwgMTQ4NDUsIDE0ODUxLCAxNDg1OSwgMTQ4NjYsIDE0ODcyLCAxNDg3OSwgMTQ4ODUsIDE0ODk0LCAKKyAgICAxNDkwMiwgMTQ5MTIsIDE0OTE5LCAxNDkyNSwgMTQ5MzMsIDE0OTM5LCAxNDk0NywgMTQ5NTQsIDE0OTY3LCAxNDk3NCwgCisgICAgMTQ5ODMsIDE0OTkyLCAxNTAwMSwgMTUwMDksIDE1MDE5LCAxNTAyNiwgMTUwMzEsIDM1NjAsIDE1MDM4LCAxNTA0MywgCisgICAgMTM3MiwgMTUwNDcsIDE0MzE3LCAxNTA1MSwgMTUwNTcsIDE1MDYxLCAxNTA2OSwgMTUwODEsIDE1MDg2LCAxNTA5MywgCisgICAgMTUwOTksIDE1MTA0LCAxNTExMSwgMTQzMjIsIDE1MTE1LCAxNTExOSwgMTUxMjMsIDE0MzI3LCAxNTEyNywgMTQzMzIsIAorICAgIDE1MTMxLCAxNTEzOCwgMTUxNDMsIDE1MTQ3LCAxNTE1NCwgMTUxNTgsIDE1MTY2LCAxNTE3MywgMTUxNzcsIDE1MTg0LCAKKyAgICAxNTIwMSwgMTUyMTAsIDE1MjE0LCAxNTIxNywgMTUyMjUsIDE1MjMxLCAxNTIzNiwgMzYzOCwgMTUyNDAsIDE1MjQyLCAKKyAgICAxNTI1MCwgMTUyNTcsIDE1MjY3LCAxNTI3OSwgMTUyODQsIDE1MjkwLCAxNTI5NSwgMTUyOTksIDE1MzA1LCAxNTMxMCwgCisgICAgMTUzMTYsIDE1MzE5LCAxNTMyNiwgMTUzMzQsIDE1MzQxLCAxNTM0NywgMTUzNTMsIDE1MzU4LCAxNTM2NSwgMTUzNzEsIAorICAgIDE1Mzc2LCAxNTM4MywgMTUzODcsIDE1MzkzLCAxNTM5NywgMTU0MDQsIDE1NDEwLCAxNTQxNiwgMTU0MjQsIDE1NDMwLCAKKyAgICAxNTQzNSwgMTU0NDEsIDE1NDQ5LCAxNTQ1NywgMTU0NjMsIDE1NDY5LCAxNTQ3NCwgMTU0ODEsIDE1NDg2LCAxNTQ5MCwgCisgICAgMTU0OTYsIDE1NTAxLCAxNTUwOCwgMTU1MTMsIDE1NTE5LCAxNTUyMiwgMTU1MjgsIDE1NTM0LCAxNTUzNywgMTU1NDEsIAorICAgIDE1NTUzLCAxNTU1OSwgMTU1NjQsIDE1NTcxLCAxNTU3NywgMTU1ODMsIDE1NTk0LCAxNTYwNCwgMTU2MTMsIDE1NjIxLCAKKyAgICAxNTYyOCwgMTU2MzksIDE1NjQ5LCAxNTY1OSwgMTU2NjcsIDE1NjcwLCAxNDM0NiwgMTU2NzUsIDE1NjgwLCAxNDM1MSwgCisgICAgMTQ0ODYsIDE1Njg4LCAxNTcwMSwgMTU3MTYsIDE1NzI3LCAxNDUwMywgMTU3NDUsIDE1NzU4LCAxNTc3MSwgMTU3ODIsIAorICAgIDEwNDg1LCAxNTc5MywgMTU4MDYsIDE1ODI1LCAxNTgzNiwgMTU4NDcsIDE1ODU4LCAyNjQ5LCAxNTg3MSwgMTU4NzUsIAorICAgIDE1ODgzLCAxNTg5OCwgMTU5MTMsIDE1OTI0LCAxNTkzMSwgMTU5MzcsIDE1OTQ1LCAxNTk0OSwgMTU5NTUsIDE1OTU4LCAKKyAgICAxNTk2OCwgMTU5NzYsIDE1OTgzLCAxNTk5MSwgMTYwMDEsIDE2MDA2LCAxNjAxMywgMTYwMTgsIDE2MDI1LCAxNjAzNiwgCisgICAgMTYwNDYsIDE2MDUyLCAxNjA1NywgMTYwNjIsIDE0MzU2LCAxNjA2NiwgMTYwNzIsIDE2MDc4LCAxNjA4MywgMTYwODgsIAorICAgIDE2MDkzLCAxNjA5NywgMTQzNjEsIDE0MzY3LCAxNjEwMSwgMTQzNzMsIDE2MTA2LCAxNjExNCwgMTYxMjMsIDE2MTMwLCAKKyAgICA5MTQzLCAxNjEzNCwgMTYxMzYsIDE2MTQxLCAxNjE0NiwgMTYxNTIsIDE2MTU3LCAxNjE2MiwgMTYxNjcsIDE2MTcyLCAKKyAgICAxNjE3NiwgMTYxODIsIDE2MTg4LCAxNjE5MywgMTYxOTksIDE2MjA0LCAxNjIwOSwgMTYyMTUsIDE2MjIwLCAxNjIyNSwgCisgICAgMTYyMzAsIDE2MjM1LCAxNjI0MSwgMTYyNDYsIDE2MjUxLCAxNjI1NywgMTYyNjMsIDE2MjY4LCAxNjI3MywgMTYyODAsIAorICAgIDE2Mjg2LCAxNjI5NywgMTYzMDQsIDE2MzA5LCAxNjMxMywgMTYzMTcsIDE2MzIwLCAxNjMyOCwgMTYzMzMsIDE2MzQwLCAKKyAgICAxNjM0NywgMTYzNTMsIDE2MzU4LCAxNjM2MywgMTYzNzAsIDE2MzgwLCAxNjM4NSwgMTYzOTIsIDE2Mzk4LCAxNjQwOCwgCisgICAgMTY0MTgsIDE2NDMyLCAxNjQ0NiwgMTY0NjAsIDE2NDc0LCAxNjQ4OSwgMTY1MDQsIDE2NTIxLCAxNjUzOSwgMTY1NTIsIAorICAgIDE2NTU4LCAxNjU2MywgMTY1NjgsIDE2NTcyLCAxNjU3NywgMTY1ODUsIDE2NTkxLCAxNjU5NiwgMTY2MDEsIDE2NjA1LCAKKyAgICAxNjYxMCwgMTY2MTQsIDE2NjE5LCAxNjYyMywgMTY2MzQsIDE2NjQwLCAxNjY0NSwgMTY2NTAsIDE2NjU3LCAxNjY2MiwgCisgICAgMTY2NjYsIDE2NjcxLCAxNjY3NiwgMTY2ODIsIDE2Njg5LCAxNjY5NSwgMTY3MDAsIDE2NzA0LCAxNjcxMCwgMTY3MTUsIAorICAgIDE2NzIwLCAxNjcyNCwgMTY3MzAsIDE2NzM1LCAxNjc0MCwgMTY3NDcsIDE2NzUyLCAxMzEwNCwgMTY3NTYsIDE2NzYxLCAKKyAgICAxNjc2NSwgMTY3NzAsIDE2Nzc2LCAxNjc4MiwgMTY3ODksIDE2Nzk5LCAxNjgwNywgMTY4MTQsIDE2ODE5LCAxNjgyMywgCisgICAgMTY4MzIsIDE2ODQwLCAxNjg0NywgMTY4NTQsIDE2ODYwLCAxNjg2NiwgMTY4NzEsIDE2ODc2LCAxNjg4MiwgMTY4ODcsIAorICAgIDE2ODkzLCAxNjg5OCwgMTY5MDQsIDE2OTEwLCAxNjkxNywgMTY5MjMsIDE2OTI4LCAxNjkzMywgOTM0MSwgMTY5NDIsIAorICAgIDE2OTQ1LCAxNjk1MSwgMTY5NTYsIDE2OTYxLCAxNjk3MSwgMTY5NzgsIDE2OTg0LCAxNjk4OSwgMTY5OTQsIDE3MDAwLCAKKyAgICAxNzAwNSwgMTcwMTEsIDE3MDE2LCAxNzAyMiwgMTcwMjgsIDE3MDMzLCAxNzA0MSwgMTcwNDgsIDE3MDUzLCAxNzA1OCwgCisgICAgMTcwNjQsIDE3MDY5LCAxNzA3MywgMTcwODIsIDE3MDkzLCAxNzEwMCwgMTcxMDUsIDE3MTEzLCAxNzExOSwgMTcxMjYsIAorICAgIDE3MTMyLCAxNzEzNywgMTcxNDEsIDE3MTQ3LCAxNzE1MiwgMTcxNTcsIDE3MTYyLCAxNDQwLCA3Nzc3LCAyODc3LCAxNzE2NiwgCisgICAgMTcxNzAsIDE3MTc0LCAxNzE3OCwgMTcxODIsIDE3MTg2LCAxNzE4OSwgMTcxOTYsIDE3MjA0LCAxNDM4NywgMTcyMTEsIAorICAgIDE3MjIxLCAxNzIyOSwgMTcyMzYsIDE3MjQ0LCAxNzI1NCwgMTcyNjMsIDE3Mjc2LCAxNzI4MSwgMTcyODYsIDE3Mjk0LCAKKyAgICAxNzMwMSwgMTMyMDAsIDEzMjA5LCAxNzMwOCwgMTczMTgsIDE3MzMzLCAxNzMzOSwgMTczNDYsIDE3MzUzLCAxNzM1OSwgCisgICAgMTczNjcsIDE3Mzc3LCAxNzM4NywgMTQzOTIsIDE3Mzk2LCAxNzQwMiwgMTc0MDgsIDE3NDE2LCAxNzQyNCwgMTc0MjksIAorICAgIDE3NDM4LCAxNzQ0NiwgMTc0NTgsIDE3NDY4LCAxNzQ3OCwgMTc0ODgsIDE3NDk3LCAxNzUwOSwgMTc1MTksIDE3NTI5LCAKKyAgICAxNzU0MCwgMTc1NDUsIDE3NTU3LCAxNzU2OSwgMTc1ODEsIDE3NTkzLCAxNzYwNSwgMTc2MTcsIDE3NjI5LCAxNzY0MSwgCisgICAgMTc2NTMsIDE3NjY1LCAxNzY3NiwgMTc2ODgsIDE3NzAwLCAxNzcxMiwgMTc3MjQsIDE3NzM2LCAxNzc0OCwgMTc3NjAsIAorICAgIDE3NzcyLCAxNzc4NCwgMTc3OTYsIDE3ODA3LCAxNzgxOSwgMTc4MzEsIDE3ODQzLCAxNzg1NSwgMTc4NjcsIDE3ODc5LCAKKyAgICAxNzg5MSwgMTc5MDMsIDE3OTE1LCAxNzkyNywgMTc5MzgsIDE3OTUwLCAxNzk2MiwgMTc5NzQsIDE3OTg2LCAxNzk5OCwgCisgICAgMTgwMTAsIDE4MDIyLCAxODAzNCwgMTgwNDYsIDE4MDU4LCAxODA2OSwgMTgwODEsIDE4MDkzLCAxODEwNSwgMTgxMTcsIAorICAgIDE4MTI5LCAxODE0MSwgMTgxNTMsIDE4MTY1LCAxODE3NywgMTgxODksIDE4MjAwLCAxODIxMiwgMTgyMjQsIDE4MjM2LCAKKyAgICAxODI0OCwgMTgyNjAsIDE4MjcyLCAxODI4NCwgMTgyOTYsIDE4MzA4LCAxODMyMCwgMTgzMzEsIDE4MzQzLCAxODM1NSwgCisgICAgMTgzNjcsIDE4Mzc5LCAxODM5MSwgMTg0MDMsIDE4NDE1LCAxODQyNywgMTg0MzksIDE4NDUxLCAxODQ2MiwgMTg0NzQsIAorICAgIDE4NDg2LCAxODQ5OCwgMTg1MTAsIDE4NTIzLCAxODUzNiwgMTg1NDksIDE4NTYyLCAxODU3NSwgMTg1ODgsIDE4NjAxLCAKKyAgICAxODYxMywgMTg2MjYsIDE4NjM5LCAxODY1MiwgMTg2NjUsIDE4Njc4LCAxODY5MSwgMTg3MDQsIDE4NzE3LCAxODczMCwgCisgICAgMTg3NDMsIDE4NzU1LCAxODc2OCwgMTg3ODEsIDE4Nzk0LCAxODgwNywgMTg4MjAsIDE4ODMzLCAxODg0NiwgMTg4NTksIAorICAgIDE4ODcyLCAxODg4NSwgMTg4OTcsIDE4OTEwLCAxODkyMywgMTg5MzYsIDE4OTQ5LCAxODk2MiwgMTg5NzUsIDE4OTg4LCAKKyAgICAxOTAwMSwgMTkwMTQsIDE5MDI3LCAxOTAzOSwgMTkwNTIsIDE5MDY1LCAxOTA3OCwgMTkwOTEsIDE5MTA0LCAxOTExNywgCisgICAgMTkxMzAsIDE5MTQzLCAxOTE1NiwgMTkxNjksIDE5MTgxLCAxOTE5NCwgMTkyMDcsIDE5MjIwLCAxOTIzMywgMTkyNDYsIAorICAgIDE5MjU5LCAxOTI3MiwgMTkyODUsIDE5Mjk4LCAxOTMxMSwgMTkzMjMsIDE5MzM0LCAxOTM0NywgMTkzNjAsIDE5MzczLCAKKyAgICAxOTM4NiwgMTkzOTksIDE5NDEyLCAxOTQyNSwgMTk0MzgsIDE5NDUxLCAxOTQ2NCwgMTk0NzYsIDE5NDg5LCAxOTUwMiwgCisgICAgMTk1MTUsIDE5NTI4LCAxOTU0MSwgMTk1NTQsIDE5NTY3LCAxOTU4MCwgMTk1OTMsIDE5NjA2LCAxOTYxOCwgMTk2MzEsIAorICAgIDE5NjQ0LCAxOTY1NywgMTk2NzAsIDE5NjgzLCAxOTY5NiwgMTk3MDksIDE5NzIyLCAxOTczNSwgMTk3NDgsIDE5NzYwLCAKKyAgICAxOTc3MywgMTk3ODYsIDE5Nzk5LCAxOTgxMiwgMTk4MjUsIDE5ODM4LCAxOTg1MSwgMTk4NjQsIDE5ODc3LCAxOTg5MCwgCisgICAgMTk5MDIsIDE5OTE1LCAxOTkyOCwgMTk5NDEsIDE5OTU0LCAxOTk2NywgMTk5ODAsIDE5OTkzLCAyMDAwNiwgMjAwMTksIAorICAgIDIwMDMyLCAyMDA0NCwgMjAwNTcsIDIwMDcwLCAyMDA4MywgMjAwOTYsIDIwMTA5LCAyMDEyMiwgMjAxMzUsIDIwMTQ4LCAKKyAgICAyMDE2MSwgMjAxNzQsIDIwMTg2LCAyMDE5OSwgMjAyMTIsIDIwMjI1LCAyMDIzOCwgMjAyNTEsIDIwMjY0LCAyMDI3NywgCisgICAgMjAyOTAsIDIwMzAzLCAyMDMxNiwgMjAzMjgsIDIwMzQxLCAyMDM1NCwgMjAzNjcsIDIwMzgwLCAyMDM5MywgMjA0MDYsIAorICAgIDIwNDE5LCAyMDQzMiwgMjA0NDUsIDIwNDU4LCAyMDQ3MCwgMjA0ODMsIDIwNDk2LCAyMDUwOSwgMjA1MjIsIDIwNTM1LCAKKyAgICAyMDU0OCwgMjA1NjEsIDIwNTc0LCAyMDU4NywgMjA2MDAsIDIwNjEyLCAyMDYyNSwgMjA2MzgsIDIwNjUxLCAyMDY2NCwgCisgICAgMjA2NzcsIDIwNjkwLCAyMDcwMywgMjA3MTYsIDIwNzI5LCAyMDc0MiwgMjA3NTQsIDIwNzY1LCAyMDc3MywgMjA3ODEsIAorICAgIDIwNzg4LCAyMDc5NCwgMjA3OTgsIDIwODA0LCAyMDgxMCwgMjA4MTgsIDIwODI0LCAyMDgyOSwgMjA4MzMsIDIwODQyLCAKKyAgICA5MTQ4LCAyMDg1MywgMjA4NjAsIDIwODY4LCAyMDg3NSwgMjA4ODIsIDEwOTQxLCAyMDg4OSwgMjA4OTgsIDIwOTAzLCAKKyAgICAyMDkwOCwgNzgwNSwgMjA5MTUsIDIwOTIwLCAyMDkyMywgMjA5MjgsIDIwOTM2LCAyMDk0MywgMjA5NTAsIDIwOTU3LCAKKyAgICAyMDk2MywgMjA5NzIsIDIwOTgxLCAyMDk4NywgMjA5OTYsIDIxMDAwLCAyMTAwNiwgMjEwMTEsIDIxMDIxLCAyMTAyOCwgCisgICAgMjEwMzQsIDIxMDQyLCAyMTA0OCwgMjEwNTUsIDIxMDY1LCAyMTA3NCwgMjEwNzgsIDIxMDg1LCAyMTA4OSwgMjEwOTQsIAorICAgIDIxMTAwLCAyMTEwOCwgMjExMTIsIDIxMTIyLCAxNDQwMiwgMjExMzEsIDIxMTM3LCAyMTE0MSwgMjExNTAsIDE0NDA3LCAKKyAgICAyMTE1NiwgMjExNjMsIDIxMTc0LCAyMTE4MiwgMjExOTEsIDIxMTk5LCA4OTMxLCAyMTIwNywgMjEyMTIsIDIxMjE4LCAKKyAgICAyMTIyMywgMjEyMjcsIDIxMjMxLCAyMTIzNSwgOTYzMiwgMjEyNDAsIDIxMjQ4LCAyMTI1NSwgMjEyNjQsIDIxMjcxLCAKKyAgICAyMTI3OCwgMTA4NzEsIDIxMjg1LCAyMTI5MSwgMjEyOTUsIDIxMzAxLCAyMTMwOCwgMjEzMTQsIDIxMzIyLCAyMTMyOCwgCisgICAgMjEzMzUsIDIxMzQxLCAyMTM0NywgMjEzNTYsIDIxMzYwLCAyMTM2OCwgMjEzNzcsIDIxMzg0LCAyMTM4OSwgMjEzOTMsIAorICAgIDIxNDA0LCAyMTQwOSwgMjE0MTQsIDIxNDE5LCAyMTQzMiwgNzk5NSwgMjE0MzYsIDIxNDQyLCAyMTQ1MCwgMjE0NTQsIAorICAgIDIxNDYxLCAyMTQ3MCwgMjE0NzUsIDE0Njc4LCAyMTQ4MywgMjE0ODcsIDIxNDk5LCAyMTUwNCwgMjE1MDgsIDIxNTExLCAKKyAgICAyMTUxNywgMjE1MjMsIDIxNTI4LCAyMTUzMiwgMjE1MzUsIDIxNTQ2LCAyMTU1MSwgOTM3NiwgMjE1NTgsIDIxNTYzLCAKKyAgICA5MzgxLCAyMTU2OCwgMjE1NzMsIDIxNTc4LCAyMTU4MywgMjE1ODgsIDIxNTkzLCAyMTU5OCwgMjE2MDMsIDIxNjA4LCAKKyAgICAyMTYxMywgMjE2MTgsIDIxNjIzLCAyMTYyOSwgMjE2MzQsIDIxNjM5LCAyMTY0NCwgMjE2NDksIDIxNjU0LCAyMTY1OSwgCisgICAgMjE2NjQsIDIxNjY5LCAyMTY3NCwgMjE2ODAsIDIxNjg2LCAyMTY5MSwgMjE2OTYsIDIxNzAxLCAyMTcwNiwgMjE3MTEsIAorICAgIDIxNzE2LCAyMTcyMSwgMjE3MjYsIDIxNzMxLCAyMTczNywgMjE3NDIsIDIxNzQ3LCAyMTc1MiwgMjE3NTgsIDIxNzY0LCAKKyAgICAyMTc2OSwgMjE3NzQsIDIxNzc5LCAyMTc4NCwgMjE3ODksIDIxNzk0LCAyMTc5OSwgMjE4MDQsIDIxODEwLCAyMTgxNSwgCisgICAgMjE4MjAsIDIxODI1LCAyMTgzMCwgMjE4MzYsIDIxODQxLCAyMTg0NiwgMjE4NTAsIDEzNjgsIDEyOSwgMjE4NTgsIDIxODYyLCAKKyAgICAyMTg2NiwgMjE4NzAsIDIxODc1LCAyMTg3OSwgMTMxMTAsIDEyNDY5LCAyMTg4MywgMjE4ODgsIDIxODkyLCAyMTg5NywgCisgICAgMjE5MDEsIDIxOTA2LCAyMTkxMCwgMjE5MTYsIDIxOTIxLCAyMTkyNSwgMjE5MjksIDIxOTM3LCAyMTk0MSwgMjE5NDUsIAorICAgIDIxOTUwLCAyMTk1NSwgMjE5NTksIDIxOTY1LCAyMTk3MCwgMjE5NzQsIDIxOTc5LCAyMTk4NCwgMjE5ODgsIDIxOTk1LCAKKyAgICAyMjAwMiwgMjIwMDksIDIyMDEzLCAyMjAxNywgMjIwMjIsIDIyMDI2LCAyMjAyOSwgMjIwMzUsIDIyMDQ4LCAyMjA1MywgCisgICAgMjIwNjIsIDIyMDY3LCA5NDIxLCAyMjA3MiwgMjIwNzUsIDI3MTIsIDI3MTcsIDIyMDc5LCAyMjA4NSwgMjIwOTEsIDcyMDksIAorICAgIDIyMDk2LCAyMjEwMSwgMjIxMDYsIDIyMTEyLCAyMjExNywgMTM4OTYsIDIyMTIyLCAyMjEyNywgMjIxMzIsIDIyMTM3LCAKKyAgICAyMjE0MywgMjIxNDgsIDIyMTUzLCAyMjE1OSwgMjIxNjQsIDIyMTY4LCAyMjE3MywgMjIxNzgsIDIyMTgzLCAyMjE4OCwgCisgICAgMjIxOTIsIDIyMTk3LCAyMjIwMSwgMjIyMDYsIDIyMjExLCAyMjIxNiwgMjIyMjEsIDIyMjI1LCAyMjIzMCwgMjIyMzQsIAorICAgIDIyMjM5LCAyMjI0NCwgMjIyNDksIDIyMjU0LCAyODg2LCAyMjE2OSwgMjIyNTgsIDIyMjY2LCAyMjI3MywgOTcyNiwgCisgICAgMjIyODUsIDIyMjkzLCAyMjE3NCwgMjIzMDAsIDIyMzA1LCAyMjMxMywgMjIxNzksIDIyMzE4LCAyMjMyMywgMjIzMzEsIAorICAgIDIyMzM2LCAyMjE4NCwgMjIzNDEsIDIyMzQ2LCAyMjM1MCwgMjIzNTYsIDIyMzY0LCAyMjM2NywgMjIzNzQsIDIyMzc4LCAKKyAgICAyMjM4MiwgMjIzODgsIDIyMzk1LCAyMjQwMCwgODk1OCwgMTcyNywgMTczMiwgMjI0MDQsIDIyNDEwLCAyMjQxNiwgMjI0MjEsIAorICAgIDIyNDI1LCAyMjQyOSwgMjI0MzMsIDIyNDM3LCAyMjQ0MSwgMjI0NDUsIDIyNDQ5LCAyMjQ1MiwgMjI0NTgsIDIyNDY1LCAKKyAgICAyMjQ3MywgMjI0NzksIDIyNDg1LCAyMjQ5MCwgMjI0OTUsIDIyNDk5LCAxMzgxNiwgMTM4MjMsIDIyNTA0LCAyMjUxNiwgCisgICAgMjI1MTksIDIyNTI2LCAxNjM0OSwgMjI1MzMsIDIyNTQxLCAyMjU1MiwgMjI1NjEsIDIyNTc0LCAyMjU4NCwgMjI1OTgsIAorICAgIDIyNjEwLCAyMjYyNCwgMjI2MzYsIDIyNjQ2LCAyMjY1OCwgMjI2NjQsIDIyNjc5LCAyMjcwMywgMjI3MjEsIDIyNzQwLCAKKyAgICAyMjc1MywgMjI3NjcsIDIyNzg1LCAyMjgwMSwgMjI4MTgsIDIyODM2LCAyMjg0NywgMjI4NjYsIDIyODgzLCAyMjkwMywgCisgICAgMjI5MjEsIDIyOTMzLCAyMjk0NywgMjI5NjEsIDIyOTczLCAyMjk5MCwgMjMwMDksIDIzMDI3LCAyMzAzOSwgMjMwNTcsIAorICAgIDIzMDc2LCAxNDU0NiwgMjMwODksIDIzMTA5LCAyMzEyMSwgMTA1MTYsIDIzMTMzLCAyMzEzOCwgMjMxNDMsIDIzMTQ4LCAKKyAgICAyMzE1NCwgMjMxNTksIDIzMTYzLCAyMzE3MCwgMjM5OCwgMjMxNzQsIDIzMTgwLCAyMzE4NCwgMjMxODcsIDIzMTkxLCAKKyAgICAyMzE5OSwgMjMyMDUsIDIyMjAyLCAyMzIwOSwgMjMyMTgsIDIzMjI5LCAyMzIzNSwgMjMyNDEsIDIzMjUwLCAyMzI1OCwgCisgICAgMjMyNjUsIDIzMjcwLCAyMzI3NCwgMjMyODEsIDIzMjg3LCAyMzI5NiwgMjMzMDQsIDIzMzExLCAyMzMyMSwgMjMzMzAsIAorICAgIDIzMzQwLCAyMzM0NSwgMjMzNTQsIDIzMzYzLCAyMzM3NCwgMjMzODUsIDM5NjMsIDIzMzk1LCAyMzM5OSwgMjM0MDksIAorICAgIDIzNDE3LCAyMzQyNywgMjM0MzgsIDIzNDQzLCAyMzQ1MywgMjM0NjEsIDIzNDY4LCAyMzQ3NCwgMjM0ODEsIDIzNDg2LCAKKyAgICAyMjIxMiwgMjM0OTAsIDIzNDk5LCAyMzUwMywgMjM1MDYsIDIzNTExLCAyMzUxOCwgMjM1MjcsIDIzNTM1LCAyMzU0MywgCisgICAgMjM1NTMsIDIzNTYyLCAyMzU2OCwgMjM1NzQsIDIyMjE3LCAyMjIyMiwgMjM1NzgsIDIzNTg4LCAyMzU5OCwgMjM2MDgsIAorICAgIDIzNjE2LCAyMzYyMywgMjM2MzMsIDIzNjQxLCAyMzY0OSwgMjM2NTUsIDIzNjYzLCA5MzAsIDIzNjcyLCAxNDczNywgNTQyLCAKKyAgICAyMzY4NiwgMjM2OTUsIDIzNzAzLCAyMzcxNCwgMjM3MjUsIDIzNzM1LCAyMzc0NCwgMjM3NTYsIDIzNzY1LCAyMzc3NCwgCisgICAgMjM3ODAsIDIzNzg5LCAyMzc5OCwgMjM4MDgsIDIzODE2LCAyMzgyNCwgOTM1MywgMjM4MzAsIDIzODMzLCAyMzgzNywgCisgICAgMjM4NDIsIDIzODQ3LCA5ODQxLCAyMjIzNSwgMjIyNDAsIDIzODU1LCAyMzg2MSwgMjM4NjcsIDIzODcyLCAyMzg3NywgCisgICAgMjM4ODEsIDIzODg5LCAyMzg5NSwgMjM5MDEsIDIzOTA1LCAzNTI1LCAyMzkxMywgMjM5MTgsIDIzOTIzLCAyMzkyNywgCisgICAgMjM5MzEsIDk5MjEsIDIzOTM4LCAyMzk0NiwgMjM5NjAsIDIzOTY3LCAyMzk3MywgOTkzMCwgOTkzNiwgMjM5ODEsIDIzOTg5LCAKKyAgICAyMzk5NiwgMjQwMDEsIDI0MDA2LCAyMjI0NSwgMjQwMTIsIDI0MDIzLCAyNDAyNywgMjQwMzIsIDI2MDEsIDI0MDM3LCAKKyAgICAyNDA0OCwgMjQwNTQsIDI0MDU5LCAyNDA2MywgMjQwNjcsIDI0MDcwLCAyNDA3NywgMjQwODQsIDI0MDkxLCAyNDA5NywgCisgICAgMjQxMDEsIDIyMjUwLCAyNDEwNiwgMjQxMTAsIDI0MTE0LCAxMDM3LCAyNDExOSwgMjQxMjQsIDI0MTI5LCAyNDEzNCwgCisgICAgMjQxMzksIDI0MTQ0LCAyNDE0OSwgMjQxNTQsIDI0MTU5LCAyNDE2NCwgMjQxNjksIDI0MTc0LCAyNDE3OSwgMjQxODQsIAorICAgIDI0MTkwLCAyNDE5NSwgMjQyMDAsIDI0MjA1LCAyNDIxMCwgMjQyMTUsIDI0MjIwLCAyNDIyNiwgMjQyMzEsIDI0MjM2LCAKKyAgICAyNDI0MSwgMjQyNDYsIDI0MjUxLCAyNDI1NiwgMjQyNjEsIDI0MjY3LCAyNDI3MywgMjQyNzgsIDI0Mjg0LCAyNDI4OSwgCisgICAgMjQyOTQsIDUsIDI0MzAwLCAyNDMwNCwgMjQzMDgsIDI0MzEyLCAyNDMxNywgMjQzMjEsIDI0MzI1LCAyNDMyOSwgMjQzMzMsIAorICAgIDI0MzM4LCAyNDM0MiwgMjQzNDcsIDI0MzUxLCAyNDM1NCwgMjQzNTgsIDI0MzYzLCAyNDM2NywgMjQzNzIsIDI0Mzc2LCAKKyAgICAyNDM4MCwgMjQzODQsIDI0Mzg5LCAyNDM5MywgMjQzOTcsIDI0NDA3LCAyNDQxMiwgMjQ0MTYsIDI0NDIwLCAyNDQyNSwgCisgICAgMjQ0MzAsIDI0NDM5LCAyNDQ0NCwgMjQ0NDksIDI0NDUzLCAyNDQ1NywgMjQ0NzAsIDI0NDgyLCAyNDQ5MSwgMjQ1MDAsIAorICAgIDI0NTA2LCAyNDUxMSwgMjQ1MTUsIDI0NTE5LCAyNDUyOSwgMjQ1MzgsIDI0NTQ2LCAyNDU1MiwgMjQ1NTcsIDI0NTYxLCAKKyAgICAyNDU2OCwgMjQ1NzgsIDI0NTg3LCAyNDU5NSwgMjQ2MDMsIDI0NjEwLCAyNDYxOCwgMjQ2MjcsIDI0NjM2LCAyNDY0NCwgCisgICAgMjQ2NDksIDI0NjUzLCAyNDY1NywgMjQ2NjAsIDI0NjYyLCAyNDY2NiwgMjQ2NzAsIDI0Njc1LCAyNDY4MCwgMjQ2ODQsIAorICAgIDI0Njg4LCAyNDY5MSwgMjQ2OTUsIDI0Njk4LCAyNDcwMiwgMjQ3MDUsIDI0NzA4LCAyNDcxMiwgMjQ3MTgsIDI0NzIyLCAKKyAgICAyNDcyNiwgMjQ3MzAsIDI0NzM1LCAyNDc0MCwgMjQ3NDUsIDI0NzQ5LCAyNDc1MiwgMjQ3NTcsIDI0NzYzLCAyNDc2OCwgCisgICAgMjQ3NzQsIDI0Nzc5LCAyNDc4MywgMjQ3ODcsIDI0NzkxLCAyNDc5NiwgMjQ4MDAsIDI0ODA1LCAyNDgwOSwgMjQ4MTMsIAorICAgIDI0ODIwLCAyNDgyNCwgMjQ4MjcsIDI0ODMxLCAyNDgzNywgMjQ4NDMsIDI0ODQ3LCAyNDg1MSwgMjQ4NTYsIDI0ODYzLCAKKyAgICAyNDg2OSwgMjQ4NzMsIDI0ODgyLCAyNDg4NiwgMjQ4OTAsIDI0ODkzLCAyNDg5OSwgMjQ5MDQsIDI0OTEwLCAxNDg5LCAKKyAgICAxNzkxLCAyNDkxNSwgMjQ5MjAsIDI0OTI1LCAyNDkzMCwgMjQ5MzUsIDI0OTQwLCAyNDk0NSwgMjE0OCwgMjE5NCwgMjQ5NTAsIAorICAgIDI0OTUzLCAyNDk1NywgMjQ5NjEsIDI0OTY2LCAyNDk3MCwgMjQ5NzQsIDI0OTc3LCAyNDk4MiwgMjQ5ODcsIDI0OTkxLCAKKyAgICAyNDk5NCwgMjQ5OTksIDI1MDAzLCAyNTAwOCwgMjUwMTIsIDE0NzQ5LCAyNTAxNywgMjUwMjAsIDI1MDIzLCAyNTAyNywgCisgICAgMjUwMzIsIDI1MDM2LCAyNTA0OSwgMjUwNTMsIDI1MDU2LCAyNTA2NCwgMjUwNzMsIDI1MDgwLCAyNTA4NSwgMjUwOTEsIAorICAgIDI1MDk3LCAyNTEwNSwgMjUxMTIsIDI1MTE5LCAyNTEyMywgMjUxMjcsIDI1MTMxLCAyNTEzNiwgMjUxNDEsIDI1MTQ1LCAKKyAgICAyNTE1MywgMjUxNTgsIDI1MTcwLCAyNTE4MSwgMjUxODYsIDI1MTkwLCAyNTE5NCwgMjUyMDAsIDI1MjA1LCAyNTIxMCwgCisgICAgMjUyMTQsIDI1MjE4LCAyNTIyMSwgMjUyMjcsIDc5MTUsIDIzMTYsIDI1MjMxLCAyNTIzNiwgMjUyNTIsIDk0NjgsIDI1MjcyLCAKKyAgICAyNTI4MSwgMjUyOTcsIDI1MzAxLCAyNTMwNCwgMjUzMTAsIDI1MzIwLCAyNTMyNiwgMjUzMzUsIDI1MzUwLCAyNTM2MiwgCisgICAgMjUzNzMsIDI1MzgxLCAyNTM5MCwgMjUzOTYsIDI1NDA1LCAyNTQxNSwgMjU0MjYsIDI1NDM3LCAyNTQ0NiwgMjU0NTMsIAorICAgIDI1NDYyLCAyNTQ3MCwgMjU0NzcsIDI1NDg1LCAyNTQ5MiwgMjU0OTksIDI1NTEyLCAyNTUxOSwgMjU1MjUsIDI1NTMwLCAKKyAgICAyNTUzOSwgMjU1NDUsIDI1NTUwLCAyNTU1OCwgMjU1NjUsIDIzNDE5LCAyNTU3NywgMjU1ODksIDI1NjAzLCAyNTYxMSwgCisgICAgMjU2MTgsIDI1NjMwLCAyNTYzOSwgMjU2NDgsIDI1NjU2LCAyNTY2NCwgMjU2NzIsIDI1Njc5LCAyNTY4OCwgMjU2OTYsIAorICAgIDI1NzA2LCAyNTcxNSwgMjU3MjUsIDI1NzM0LCAyNTc0MywgMjU3NTEsIDI1NzU2LCAyNTc2MCwgMjU3NjMsIDI1NzY3LCAKKyAgICAyNTc3MSwgMjU3NzUsIDI1Nzc5LCAyNTc4MywgMjU3ODksIDI1Nzk1LCAyNTgwMywgMTQ3OTQsIDI1ODEwLCAyNTgxNSwgCisgICAgMjU4MjIsIDI1ODI4LCAyNTgzNSwgMTQ4MDIsIDI1ODQyLCAyNTg0NSwgMjU4NTcsIDI1ODY1LCAyNTg3MSwgMjU4NzYsIAorICAgIDI1ODgwLCA5ODcxLCAyNTg5MSwgMjU5MDEsIDI1OTEwLCAyNTkxNywgMjU5MjEsIDE0ODA3LCAyNTkyNCwgMjU5MzEsIAorICAgIDI1OTM1LCAyNTk0MSwgMjU5NDQsIDI1OTUxLCAyNTk1NywgMjU5NjQsIDI1OTcwLCAyNTk3NCwgMjU5NzksIDI1OTgzLCAKKyAgICAyNTk5MiwgMjU5OTksIDI2MDA1LCA3OTU2LCAyNjAxMiwgMjYwMjAsIDI2MDI3LCAyNjAzMywgMjYwMzgsIDI2MDQ0LCAKKyAgICAyNjA1MCwgMjYwNTgsIDI2MDYyLCAyNjA2NSwgMjYwNjcsIDI1NzY4LCAyNjA3NiwgMjYwODIsIDI2MDkyLCAyNjA5NywgCisgICAgMjYxMDQsIDI2MTEwLCAyNjExNSwgMjYxMjAsIDI2MTI1LCAyNjEyOSwgMjYxMzQsIDI2MTQxLCAyNjE1MCwgMjYxNTQsIAorICAgIDI2MTYxLCAyNjE3MCwgMjYxNzYsIDI2MTgxLCAyNjE4NywgMjYxOTIsIDI2MTk5LCAyNjIxMCwgMjYyMTUsIDI2MjE5LCAKKyAgICAyNjIyOSwgMjYyMzUsIDI2MjM5LCAyNjI0NCwgMjYyNTQsIDI2MjYzLCAyNjI2NywgMjYyNzQsIDI2MjgyLCAyNjI4OSwgCisgICAgMjYyOTUsIDI2MzAwLCAyNjMwOCwgMjYzMTUsIDI2MzI3LCAyNjMzNiwgMjYzNDAsIDEzMDQ2LCAyNjM0OCwgMjYzNTgsIAorICAgIDI2MzYyLCAyNTA2MCwgMjYzNzMsIDI2Mzc4LCAyNjM4MiwgMjYzODksIDI2Mzk2LCAyMTk2MSwgMjU2OTMsIDI2NDAxLCAKKyAgICAyNjQwNSwgMjY0MDgsIDIyODUzLCAyNjQxMywgMjY0MjcsIDI2NDQzLCAyNjQ2MSwgMjY0ODAsIDI2NDk3LCAyNjUxNSwgCisgICAgMjI4NzIsIDI2NTMyLCAyNjU1MiwgMjI4ODksIDI2NTY0LCAyNjU3NiwgMTU3MzIsIDI2NTg4LCAyMjkwOSwgMjY2MDIsIAorICAgIDI2NjE0LCAxMDUyOSwgMjY2MjgsIDI2NjMzLCAyNjYzOCwgMjY2NDMsIDI2NjQ5LCAyNjY1NSwgMjY2NjEsIDI2NjY1LCAKKyAgICAyNjY3MiwgMjY2NzcsIDI2Njg3LCAyNjY5MywgMTAxNzYsIDI2Njk5LCAyNjcwMSwgMjY3MDYsIDI2NzE0LCAyNjcxOCwgCisgICAgMjYxMzcsIDI2NzI0LCAyNjczMSwgMTE1MTcsIDExNTI3LCAyNjczOCwgMjY3NDgsIDI2NzUzLCAyNjc1NywgMjY3NjAsIAorICAgIDI2NzY2LCAyNjc3NCwgMjY3ODYsIDI2Nzk2LCAyNjgxMiwgMjY4MjUsIDI2ODM5LCAxNTc1MCwgMjY4NTMsIDI2ODYwLCAKKyAgICAyNjg2NCwgMjY4NjcsIDI2ODcyLCAyNjg3NiwgMjY4ODMsIDI2ODkwLCAyNjkwMCwgMjY5MDUsIDI2OTEwLCAyNjkxNSwgCisgICAgMjY5MjMsIDI2OTMxLCAyNjk0MCwgMjY5NDUsIDk1NjUsIDI2OTQ5LCAyNjk1MiwgMjY5NTUsIDI2OTYwLCAyNjk2NywgCisgICAgMjY5NzIsIDI2OTg4LCAyNjk5NiwgMjcwMDQsIDk0MTYsIDI3MDEyLCAyNzAxNywgMjcwMjEsIDI3MDI3LCAyNzAzMywgCisgICAgMjcwMzYsIDI3MDQyLCAyNzA1NCwgMjcwNjIsIDI3MDY5LCAyNzA3NSwgMjcwODIsIDI3MDkzLCAyNzEwNywgMjcxMjAsIAorICAgIDI3MTI5LCAyNzEzOCwgMjcxNTAsIDI3MTYxLCAyNzE3MSwgMjcxODAsIDI3MTg5LCAyNzE5NywgMjcyMDgsIDc5MzgsIAorICAgIDI3MjE1LCAyNzIyMSwgMjcyMjYsIDI3MjMyLCAyNzIzOSwgMjcyNDksIDI3MjU5LCAyNzI2OCwgMjcyNzQsIDI3MjgxLCAKKyAgICAyNzI4NiwgMjcyOTMsIDI3MzAxLCAyNzMwOSwgMjczMjEsIDYyNDYsIDI3MzI4LCAyNzMzNywgMjczNDUsIDI3MzUxLCAKKyAgICAyNzM1NywgMjczNjIsIDI3MzY2LCAyNzM2OSwgMjczNzUsIDI3MzgyLCAyNzM4NywgMjczOTIsIDI3Mzk2LCAyNzQwOCwgCisgICAgMjc0MTksIDI3NDI4LCAyNzQzNiwgMTQ5MzQsIDI3NDQxLCAyNzQ0NywgMjc0NTMsIDExNTEwLCA4NjM1LCAyNzQ1OCwgCisgICAgMjc0NjIsIDI3NDY1LCAyNzQ2OCwgMjc0NzQsIDI3NDgyLCAyNzQ5MCwgMjc0OTQsIDI3NDk4LCAyNzUwMywgMjc1MDYsIAorICAgIDI3NTE1LCAyNzUxOSwgMjc1MjcsIDI3NTM4LCAyNzU0MiwgMjc1NDgsIDI3NTU0LCAyNzU1OCwgMjc1NjQsIDI3NTcyLCAKKyAgICAyNzU5NCwgMjc2MTgsIDI3NjI1LCAyNzYzMiwgMjc2MzgsIDI3NjQ2LCAyNzY1MiwgMjc2NTcsIDI3NjY4LCAyNzY4NiwgCisgICAgMjc2OTMsIDI3NzAxLCAyNzcwNSwgMjc3MTQsIDI3NzI3LCAyNzczNSwgMjc3NDcsIDI3NzU4LCAyNzc2OCwgMjc3ODIsIAorICAgIDI3NzkxLCAyNzc5OSwgMjc4MTEsIDk0ODUsIDI3ODIyLCAyNzgzMywgMjc4NDUsIDI3ODU1LCAyNzg2NCwgMjc4NjksIAorICAgIDI3ODczLCAyNzg4MSwgMjc4OTEsIDI3ODk2LCAyNzkwMCwgMjc5MDMsIDI3OTA2LCAyNzkxNCwgMjc5MjIsIDI3OTMxLCAKKyAgICAyNzk0MSwgMjc5NTAsIDI3OTU2LCAyNzk3MCwgMjY2MywgMjc5OTIsIDI4MDAzLCAyODAxMiwgMjgwMjIsIDI4MDM0LCAKKyAgICAyODA0MywgMjgwNTIsIDI4MDYyLCAyODA3MCwgMjgwNzgsIDI4MDg3LCAyODA5MiwgMjgxMDMsIDI4MTA4LCAyODExOSwgCisgICAgMjgxMjMsIDI4MTMzLCAyODE0MiwgMjgxNTAsIDI4MTYwLCAyODE3MCwgMjgxNzgsIDI4MTg3LCAyODE5NCwgMjgyMDIsIAorICAgIDI4MjA5LCAyODIxOCwgMjgyMjIsIDI4MjMwLCAyODIzNywgMjgyNDUsIDI4MjUyLCAyODI2MywgMjgyNzgsIDI4Mjg1LCAKKyAgICAyODI5MSwgMjgzMDEsIDI4MzEwLCAyODMxNiwgMjgzMjAsIDI4MzI3LCAyODMzMSwgMTQwMTgsIDI4MzM3LCAyODM0MSwgCisgICAgMjgzNDYsIDI4MzUzLCAyODM1NywgMjgzNjEsIDI4MzY5LCAyODM3NywgMjgzODMsIDI4MzkyLCAyODM5OSwgMjg0MDQsIAorICAgIDI4NDA5LCAyODQxOSwgMjM0ODgsIDI4NDIzLCAyODQyNiwgMjg0MzEsIDI4NDM2LCAyODQ0MSwgMjg0NDYsIDI4NDUxLCAKKyAgICAyODQ1NiwgMjg0NjEsIDI4NDY2LCAyODQ3MiwgMjg0NzcsIDI4NDgyLCAyODQ4OCwgMTIxOCwgNzA0LCAyODQ5MywgMjg1MDIsIAorICAgIDIzNjQsIDI4NTA5LCAyODUxNCwgMjg1MTgsIDI4NTI0LCAxMjY3LCA1NDYsIDMxOCwgMjg1MjksIDI4NTM4LCAyODU0NiwgCisgICAgMjg1NTUsIDI4NTYzLCAyODU3NCwgMjg1ODMsIDI4NTkxLCAyODU5NSwgMjg1OTgsIDI4NjA2LCAyODYxNCwgMjg2MTksIAorICAgIDE0NzYyLCAyODYyNSwgMjg2MzEsIDI4NjM3LCA1ODcyLCAyODY0MiwgMjg2NDYsIDI4NjUyLCAyODY1NiwgMjg2NjMsIAorICAgIDE0NTUsIDI4NjY5LCAyODY3NiwgOTU3MiwgMjg2ODAsIDI4NjkwLCAyODY5OCwgMjg3MDQsIDI4NzEzLCAyODcyMSwgCisgICAgMjg3MjcsIDI4NzM1LCAyODc0MiwgMTExMDMsIDI4NzQ4LCAyODc1NSwgMjg3NjAsIDI4NzY3LCAxNDk2LCAyMTQ3LCAKKyAgICAyODc3MywgMjg3NzksIDI4Nzg2LCAyODc5NywgMjg4MDgsIDI4ODE2LCAyODgyMywgMjg4MzMsIDI4ODQyLCAyODg1MCwgCisgICAgMjg4NTksIDI4ODY2LCAyODg3MywgMjg4ODYsIDI4ODk3LCAxMjcyLCAyODkxNiwgMjg5MjEsIDI4OTI5LCAzNTc1LCAKKyAgICAyODkzMywgMjg5MzgsIDI4OTQyLCAxNDU5LCAyNDY4OSwgMjg5NTIsIDI4OTU2LCAyODk2MSwgMjg5NjUsIDM0OTMsIAorICAgIDI4OTcxLCAyODk3OSwgMjg5ODYsIDI4OTk3LCAyOTAwNSwgMjkwMTMsIDM1NzYsIDI3OSwgMjkwMTgsIDI5MDI2LCAyOTAzNCwgCisgICAgMjkwNDEsIDI5MDQ3LCAyOTA1MiwgMjIxNiwgMjkwNTksIDI5MDY1LCAyNTk3NSwgMjYyMDUsIDI5MDcxLCAxMDYsIDI5MDc1LCAKKyAgICAyOTA3OSwgMjkwODUsIDYxNSwgOTMyMSwgMjkwOTAsIDI5MDk3LCAyOTEwMywgMjMyNywgMjkxMDcsIDI5MTExLCAxNTE3NCwgCisgICAgMjkxMTQsIDI5MTE5LCAyOTEyNiwgMjkxMzIsIDI5MTM3LCAyOTE0NSwgMjkxNTIsIDI5MTU4LCAyMjMzOCwgMjkxNjIsIAorICAgIDI5MTY2LCAzNjQ2LCAxNjYxMiwgMjkxNzAsIDI5MTc1LCAyOTE3OCwgMjkxODYsIDI5MTk0LCAyOTE5OSwgMjkyMDIsIAorICAgIDI5MjA5LCAyOTIxOSwgMjkyMzEsIDI5MjM2LCAyOTI0MCwgMjkyNDgsIDI5MjU1LCAyOTI2MSwgMjkyNjgsIDI5Mjc1LCAKKyAgICAyOTI3OCwgMjkyODIsIDI5Mjg2LCAxNDYzLCAyOTI5NiwgMjkyOTgsIDI5MzAzLCAyOTMwOSwgMjkzMTUsIDI5MzIwLCAKKyAgICAyOTMyNSwgMjkzMzAsIDI5MzM1LCAyOTM0MCwgMjkzNDUsIDI5MzUwLCAyOTM1NSwgMjkzNjAsIDI5MzY1LCAyOTM3MCwgCisgICAgMjkzNzUsIDI5MzgwLCAyOTM4NSwgMjkzOTEsIDI5Mzk3LCAyOTQwMywgMjk0MDksIDI5NDE0LCAyOTQxOSwgMjk0MjQsIAorICAgIDI5NDMwLCAyOTQzNSwgMjk0NDAsIDI5NDQ1LCAyOTQ1MSwgMjk0NTYsIDI5NDYyLCAyOTQ2NywgMjk0NzIsIDI5NDc3LCAKKyAgICAyOTQ4MiwgMjk0ODgsIDI5NDkzLCAyOTQ5OSwgMjk1MDQsIDI5NTA5LCAyOTUxNCwgMjk1MTksIDI5NTI1LCAyOTUzMCwgCisgICAgMjk1MzYsIDI5NTQxLCAyOTU0NiwgMjk1NTEsIDI5NTU2LCAyOTU2MSwgMjk1NjYsIDI5NTcxLCAyOTU3NiwgMjk1ODEsIAorICAgIDI5NTg3LCAyOTU5MywgMjk1OTksIDI5NjA0LCAyOTYwOSwgMjk2MTQsIDI5NjE5LCAyOTYyNSwgMjk2MzEsIDI5NjM3LCAKKyAgICAyOTY0MywgMjk2NDksIDI5NjU1LCAyOTY2MCwgMjk2NjYsIDI5NjcxLCAyOTY3NiwgMjk2ODEsIDI5Njg2LCAyOTY5MiwgCisgICAgMjQ0MywgMjk2OTcsIDI0NTAsIDI0NTcsIDI3NTQsIDI5NzAyLCAyNDYzLCAyNDczLCAyOTcwOCwgMjk3MTIsIDI5NzE3LCAKKyAgICAyOTcyMiwgMjk3MjgsIDI5NzMzLCAyOTczOCwgMjk3NDIsIDI5NzQ3LCAyOTc1MywgMjk3NTgsIDI5NzYzLCAyOTc2OCwgCisgICAgMjk3NzQsIDI5Nzc5LCAyOTc4MywgMjk3ODcsIDI5NzkyLCAyOTc5NywgMjk4MDIsIDI5ODA3LCAyOTgxMiwgMjk4MTgsIAorICAgIDI5ODI0LCAyOTgyOSwgMjk4MzMsIDI5ODM4LCAyOTg0NCwgMjk4NDgsIDI5ODUzLCAyOTg1OCwgMjk4NjMsIDI5ODY4LCAKKyAgICAyOTg3MiwgMjk4NzUsIDI5ODgwLCAyOTg4NSwgMjk4OTAsIDI5ODk1LCAyOTkwMCwgMjk5MDYsIDI5OTEyLCAyOTkxNywgCisgICAgMjk5MjIsIDI5OTI2LCAyOTkzMSwgMjk5MzYsIDI5OTQxLCAyOTk0NiwgMjk5NTEsIDI5OTU1LCAyOTk2MCwgMjk5NjUsIAorICAgIDI5OTcwLCAyOTk3NCwgMjk5NzgsIDI5OTgyLCAyOTk4NywgMjk5OTUsIDMwMDAwLCAzMDAwNiwgMzAwMTIsIDMwMDE4LCAKKyAgICAzMDAyMywgMzAwMjcsIDMwMDMwLCAzMDAzNSwgMzAwNDAsIDMwMDQ0LCAzMDA0OSwgMzAwNTMsIDMwMDU4LCAzMDA2MiwgCisgICAgMzAwNjUsIDMwMDcwLCAxNzI4OSwgMzAwNzUsIDMwMDgwLCAzMDA4NSwgMzAwOTMsIDIxMjY3LCAyODY3MywgOTAxOSwgCisgICAgMzAwOTgsIDMwMTAzLCAzMDEwNywgMzAxMTIsIDMwMTE2LCAzMDEyMCwgMzAxMjUsIDMwMTI5LCAzMDEzMiwgMzAxMzUsIAorICAgIDMwMTM5LCAzMDE0NCwgMzAxNDgsIDMwMTU2LCAzMDE2MCwgMzAxNjMsIDMwMTY4LCAzMDE3MiwgMzAxNzYsIDMwMTgxLCAKKyAgICAzMDE4NiwgMzAxOTAsIDMwMTk2LCAzMDIwMSwgMzAyMDYsIDMwMjEzLCAzMDIyMCwgMzAyMjQsIDMwMjI3LCAzMDIzMywgCisgICAgMzAyNDIsIDMwMjQ5LCAzMDI1NywgMzAyNjQsIDMwMjY4LCAzMDI3MywgMzAyNzcsIDMwMjgxLCAzMDI4NywgMzAyOTMsIAorICAgIDMwMjk3LCAzMDMwMywgMzAzMDgsIDMwMzEzLCAzMDMyMCwgMzAzMjYsIDMwMzMyLCAzMDMzOCwgMzAzNDQsIDMwMzUxLCAKKyAgICAzMDM1NywgMzAzNjMsIDMwMzY5LCAzMDM3NSwgMzAzODEsIDMwMzg3LCAzMDM5MywgMzA0MDAsIDMwNDA2LCAzMDQxMywgCisgICAgMzA0MTksIDMwNDI1LCAzMDQzMSwgMzA0MzcsIDMwNDQzLCAzMDQ0OSwgMzA0NTUsIDMwNDYxLCAzMDQ2NywgMTE0MTEsIAorICAgIDMwNDczLCAzMDQ3OCwgMzA0ODMsIDMwNDg2LCAzMDQ5NCwgMzA0OTksIDMwNTA4LCAzMDUxNCwgMzA1MTksIDMwNTI0LCAKKyAgICAzMDUyOSwgMzA1MzMsIDMwNTM4LCAzMDU0MywgMzA1NDgsIDMwNTUzLCAzMDU1OCwgMzA1NjUsIDMwNTcyLCAzMDU3OCwgCisgICAgMzA1ODQsIDMwNTg5LCAxNjI5MCwgMzA1OTYsIDMwNjAyLCAzMDYwOSwgMzA2MTUsIDMwNjIxLCAzMDYyNiwgMzA2MzQsIAorICAgIDMwNjM5LCAxNjA2OSwgMzA2NDMsIDMwNjQ4LCAzMDY1MywgMzA2NTksIDMwNjY0LCAzMDY2OSwgMzA2NzMsIDMwNjc4LCAKKyAgICAzMDY4MywgMzA2ODksIDMwNjk0LCAzMDY5OSwgMzA3MDMsIDMwNzA4LCAzMDcxMywgMzA3MTcsIDMwNzIyLCAzMDcyNywgCisgICAgMzA3MzIsIDMwNzM2LCAzMDc0MSwgMzA3NDYsIDMwNzUxLCAzMDc1NSwgMzA3NTksIDE1MjgwLCAzMDc2MywgMzA3NzIsIAorICAgIDMwNzc4LCAzMDc4NCwgMzA3OTMsIDMwODAxLCAzMDgxMCwgMzA4MTgsIDMwODIzLCAzMDgyNywgMzA4MzQsIDMwODQwLCAKKyAgICAzMDg0NCwgMzA4NDcsIDMwODUyLCAzMDg2MSwgMzA4NjksIDMwODc0LCAxNDk1LCAzMDg4MCwgMzA4ODMsIDMwODg3LCAKKyAgICAyMjQxMSwgMjI0MTcsIDMwODkzLCAzMDg5NywgMzA5MDgsIDMwOTE5LCAzMDkzMCwgMzA5NDIsIDMwOTQ5LCAzMDk1NiwgCisgICAgMzA5NjEsIDMwOTY1LCA1OTA5LCA3NTUsIDIxMjY2LCAzMDk3MywgMzA5NzgsIDMwOTgyLCAzMDk4NywgMzA5OTEsIDMwOTk3LCAKKyAgICAzMTAwMiwgMzEwMDgsIDMxMDEzLCAzMTAxOSwgMzEwMjQsIDMxMDMwLCAzMTAzNSwgMzEwNDEsIDMxMDQ3LCAzMTA1MywgCisgICAgMzEwNTgsIDMxMDE0LCAzMTAyMCwgMzEwNjIsIDMxMDY3LCAzMTA3MywgMzEwNzgsIDMxMDg0LCAzMTA4OSwgMzEwOTUsIAorICAgIDMxMTAwLCAzMTAyNSwgMTA0MTQsIDMxMTA0LCAzMTAzNiwgMzEwNDIsIDMxMDQ4LCAyODMxLCAzNDIzLCAzMTExMCwgCisgICAgMzExMTMsIDMxMTE5LCAzMTEyNSwgMzExMzEsIDMxMTM4LCAzMTE0NCwgMzExNTAsIDMxMTU2LCAzMTE2MiwgMzExNjgsIAorICAgIDMxMTc0LCAzMTE4MCwgMzExODYsIDMxMTkyLCAzMTE5OCwgMzEyMDQsIDMxMjEwLCAzMTIxNywgMzEyMjMsIDMxMjI5LCAKKyAgICAzMTIzNSwgMzEyNDEsIDMxMjQ3LCAzMTI1MCwgMzEyNTUsIDMxMjU4LCAzMTI2NSwgMzEyNzMsIDMxMjc4LCAzMTI4MywgCisgICAgMzEyODksIDMxMjk0LCAzMTI5OSwgMzEzMDMsIDMxMzA4LCAzMTMxNCwgMzEzMTksIDMxMzI1LCAzMTMzMCwgMzEzMzYsIAorICAgIDMxMzQxLCAzMTM0NywgMzEzNTMsIDMxMzU3LCAzMTM2MiwgMzEzNjcsIDMxMzcyLCAzMTM3NywgMzEzODEsIDMxMzg2LCAKKyAgICAzMTM5MSwgMzEzOTYsIDMxNDAyLCAzMTQwOCwgMzE0MTQsIDMxNDIwLCAzMTQyNSwgMzE0MjksIDMxNDMyLCAzMTQzOCwgCisgICAgMzE0NDQsIDMxNDUzLCAzMTQ2MSwgMzE0NjgsIDMxNDczLCAzMTQ3NywgMzE0ODEsIDMxNDg2LCAxNTEzMywgMzE0OTEsIAorICAgIDMxNDk5LCAzMTUwNSwgMzY4MywgMTM3NywgMzE1MTAsIDMxNTE0LCA4MDA1LCAzMTUyMCwgMzE1MjYsIDMxNTMzLCA4MDE0LCAKKyAgICAzMTUzNywgMzE1NDMsIDMxNTUwLCAzMTU1NiwgMzE1NjUsIDMxNTczLCAzMTU4NSwgMzE1ODksIDMxNTk2LCAzMTYwMiwgCisgICAgMzE2MDYsIDMxNjA5LCAzMTYxOCwgMzE2MjYsIDMxMDE1LCAzMTYzMSwgMzE2NDEsIDMxNjUxLCAzMTY2MSwgMzE2NjcsIAorICAgIDMxNjcyLCAzMTY4MiwgMzE2ODcsIDMxNzAwLCAzMTcxNCwgMzE3MjUsIDMxNzM3LCAzMTc0OSwgMzE3NjMsIDMxNzc2LCAKKyAgICAzMTc4OCwgMzE4MDAsIDE0NTg3LCAzMTgxNCwgMzE4MTksIDMxODI0LCAzMTgyOCwgMzE4MzIsIDMxODM2LCAxNzgwLCAKKyAgICAyNzE1OSwgMzE4NDAsIDMxODQ1LCAzMTA2MywgMzE4NTAsIDMxODUzLCAzMTg1OCwgMzE4NjMsIDMxODY4LCAzMTg3NCwgCisgICAgMzE4ODAsIDEwMDkxLCAzMTg4NSwgMzE4OTIsIDE1Njg0LCAzMTg5OCwgMzE5MDMsIDMxOTA4LCAzMTkxMiwgMzE5MTcsIAorICAgIDMxOTIyLCAzMTA2OCwgMzE5MjcsIDMxOTMyLCAzMTkzNywgMzE5NDMsIDMxMDc0LCAzMTk0OCwgMzE5NTEsIDMxOTU4LCAKKyAgICAzMTk2NiwgMzE5NzIsIDMxOTc4LCAzMTk4NCwgMzE5OTUsIDMyMDAwLCAzMjAwNywgMzIwMTQsIDMyMDIxLCAzMjAyOSwgCisgICAgMzIwMzgsIDMyMDQ3LCAzMjA1MywgMzIwNTksIDMyMDY3LCAzMTA3OSwgMzIwNzIsIDMyMDc4LCAzMjA4NCwgMzEwODUsIAorICAgIDMyMDg5LCAzMjA5NCwgMzIxMDIsIDMyMTEwLCAzMjExNiwgMzIxMjMsIDMyMTI5LCAzMjEzNiwgMzIxNDMsIDMyMTQ5LCAKKyAgICAzMjE1NywgMzIxNjcsIDMyMTc0LCAzMjE3OSwgMzIxODUsIDMyMTkwLCAzMjE5NSwgMzIyMDIsIDMyMjExLCAzMjIxOSwgCisgICAgMzIyMjQsIDMyMjMwLCAzMjIzNywgMzIyNDUsIDMyMjUxLCAzMjI1NiwgMzIyNjIsIDMyMjcxLCAyNzkzNiwgMzIyNzgsIAorICAgIDMyMjgyLCAzMjI4NywgMzIyOTYsIDMyMzAxLCAzMjMwNiwgMzIzMTEsIDEyMzk4LCAzMjMxOSwgMzIzMjQsIDMyMzI5LCAKKyAgICAzMjMzNCwgMzIzMzgsIDMyMzQzLCAzMjM0OCwgMzIzNTUsIDMyMzYwLCAzMjM2NSwgMzIzNzAsIDMxMDkwLCAyMTIwMywgCisgICAgMzIzNzYsIDI1MTksIDI0NCwgMzIzNzksIDMyMzgyLCAzMjM4NiwgMzIzOTAsIDMyNDAwLCAzMjQwOCwgMzI0MTIsIDMyNDE5LCAKKyAgICAzMjQyNiwgMzI0MzAsIDMyNDMzLCAzMjQzOSwgMzI0NDcsIDMyNDU1LCAzMjQ1OSwgMzI0NjMsIDMyNDY2LCAzMjQ3MywgCisgICAgMzI0NzcsIDMyNDgxLCAzMjQ4OCwgMzI0OTYsIDMxMDI2LCAzMjUwMywgMzI1MTEsIDEwMTUxLCA2NjAsIDMwOCwgMzI1MjMsIAorICAgIDMyNTI4LCAzMjUzMywgMzI1MzksIDMyNTQ0LCAzMjU0OSwgMzcwNCwgMzI1NTQsIDMyNTU3LCAzMjU2MiwgMzI1NjcsIAorICAgIDMyNTcyLCAzMjU3NywgMzI1ODIsIDMyNTg5LCAyMjUxMiwgMzI1OTQsIDMyNTk5LCAzMjYwNCwgMzI2MDksIDMyNjE0LCAKKyAgICAzMjYyMCwgMzI2MjUsIDMyNjMxLCAzMTI2MSwgMzI2MzcsIDMyNjQyLCAzMjY0OCwgMzI2NTQsIDMyNjY0LCAzMjY2OSwgCisgICAgMzI2NzQsIDMyNjc4LCAzMjY4MywgMzI2ODgsIDMyNjkzLCAzMjY5OCwgMzI3MTEsIDMyNzE2LCAyMjI4OSwgMTY2OTIsIAorICAgIDM3MTAsIDMyNzIwLCAzMjcyNSwgMzI3MzAsIDMyNzM2LCAzMjc0MSwgMzI3NDYsIDMyNzUwLCAzMjc1NSwgMzI3NjAsIAorICAgIDMyNzY2LCAzMjc3MSwgMzI3NzYsIDEzODIsIDMyNzgwLCAzMjc4NSwgMzI3OTAsIDMyNzk1LCAzMjc5OSwgMzI4MDQsIAorICAgIDMyODA5LCAzMjgxNCwgMzI4MjAsIDMyODI2LCAzMjgzMSwgMzI4MzUsIDMyODM5LCAzMjg0NCwgMzI4NDksIDMyODU0LCAKKyAgICAzMjg1OCwgMzI4NjYsIDMyODcwLCAzMjg3NiwgMzI4ODAsIDMyODg3LCAxNjQ4NSwgMzEwMzcsIDMyODkzLCAzMjkwMCwgCisgICAgMzI5MDgsIDMyOTE1LCAzMjkyMSwgMzI5MzQsIDMyOTQ2LCAzMjk1MiwgMzI5NTYsIDI3NzMsIDMyOTYwLCAzMjk2NCwgCisgICAgMzI0NjgsIDMyOTczLCAzMjk4NCwgMzI5ODksIDMyOTk0LCAzMjk5OSwgMzMwMDMsIDMzMDA4LCAyMjQyMiwgMzMwMTIsIAorICAgIDMzMDE2LCAzMzAyMSwgMzEwNDMsIDIxMjg3LCAzMzAyNSwgMzMwMzAsIDMzMDM2LCAzMzA0MSwgMzMwNDUsIDMzMDQ5LCAKKyAgICAzMzA1MiwgMzMwNTYsIDMzMDYyLCAzMzA3MywgMzMwODUsIDMxMDQ5LCAzMzA5MCwgMzMwOTMsIDMzMDk3LCAzNDcsIAorICAgIDMzMTAyLCAzMzEwNywgMzMxMTIsIDMzMTE3LCAzMzEyMiwgMzMxMjcsIDMzMTMzLCAzMzEzOCwgMzMxNDMsIDMzMTQ5LCAKKyAgICAzMzE1NCwgMzMxNjAsIDMzMTY1LCAzMzE3MSwgMzMxNzYsIDMzMTgxLCAzMzE4NiwgMzMxOTEsIDMzMTk2LCAzMzIwMSwgCisgICAgMzMyMDYsIDMzMjExLCAzMzIxNywgMzMyMjIsIDMzMjI3LCAzMzIzMiwgMzMyMzcsIDMzMjQyLCAzMzI0NywgMzMyNTIsIAorICAgIDMzMjU4LCAzMzI2NCwgMzMyNjksIDMzMjc0LCAzMzI3OSwgMzMyODQsIDMzMjg5LCAzMzI5NCwgMzMyOTksIDMzMzA0LCAKKyAgICAzMzMwOSwgMzMzMTQsIDMzMzE5LCAzMzMyNCwgMzMzMjksIDMzMzM0LCAzMzMzOSwgMzMzNDQsIDMzMzQ5LCAzMzM1NCwgCisgICAgMzMzNjAsIDMxMywgMjYsIDMzMzY1LCAzMzM2OSwgMzMzNzMsIDMzMzgxLCAzMzM4NSwgMzMzODksIDMzMzkyLCAzMzM5NSwgCisgICAgMzMzOTcsIDMzNDAyLCAzMzQwNiwgMzM0MTEsIDMzNDE1LCAzMzQyMCwgMzM0MjQsIDMzNDI5LCAzMzQzMywgMzM0MzYsIAorICAgIDMzNDM4LCAzMzQ0MiwgMzM0NDcsIDMzNDUxLCAzMzQ2MiwgMzM0NjUsIDMzNDY3LCAzMzQ3MSwgMzM0ODMsIDMzNDkyLCAKKyAgICAzMzQ5NiwgMzM1MDAsIDMzNTA2LCAzMzUxMSwgMzM1MjAsIDMzNTI2LCAzMzUzMSwgMzM1MzYsIDMzNTQwLCAzMzU0NSwgCisgICAgMzM1NTIsIDMzNTU3LCAzMzU2MywgMzM1NjgsIDMzNTcyLCAzMzU3OSwgMjU3MDEsIDI1NzExLCAzMzU4MywgMzM1ODgsIAorICAgIDMzNTkzLCAzMzU5OCwgMzM2MDUsIDMzNjA5LCAzMzYxNiwgODExMywgMzM2MjIsIDMzNjMxLCAzMzYzOSwgMzM2NTQsIAorICAgIDMzNjY4LCAzMzY3NiwgMzM2ODcsIDMzNjk2LCAzMzcwMSwgNzIyNywgMzM3MTEsIDMzNzE2LCAzMzcyMSwgMzM3MjUsIAorICAgIDMzNzI4LCAzMzczMiwgMzM3MzcsIDMzNzQxLCAzMzc0OCwgMzM3NTMsIDMzNzU4LCA4OTEyLCAzMzc2OCwgMzM3NzAsIAorICAgIDMzNzczLCAzMzc3NywgMzM3ODMsIDMzNzg3LCAzMzc5MiwgMzM3OTcsIDMzODAzLCAzMzgwOCwgMzM4MTQsIDMzODE5LCAKKyAgICAzMzgyOSwgMzM4MzgsIDMzODQ2LCAzMzg1MSwgMzM4NTcsIDMzODYyLCAzMzg2OSwgMzM4NzMsIDMzODgxLCAzMzg4OCwgCisgICAgMzM5MDEsIDMzOTA5LCAzMzkxMywgMzM5MjMsIDMzOTI4LCAzMzkzMiwgMzM5NDAsIDMzOTQ4LCAzMzk1MiwgMzM5NjEsIAorICAgIDMzOTY3LCAzMzk3MiwgMzM5ODAsIDMzOTkwLCAzMzk5OSwgMzQwMDgsIDM0MDE3LCAzNDAyOCwgMzQwMzYsIDM0MDQ3LCAKKyAgICAzNDA1NiwgMzQwNjMsIDM0MDY5LCAzNDA3NCwgMzQwODUsIDM0MDkwLCAzNDA5NCwgMzQwOTcsIDM0MTAxLCAzNDEwOSwgCisgICAgMzQxMTUsIDM0MTIzLCAzNDEzMCwgMzQxMzYsIDM0MTQxLCAzNDE0NywgMjQxOCwgMzQxNTEsIDM0MTUzLCAzNDE1OCwgCisgICAgMzQxNjMsIDM0MTY4LCAzNDE3MSwgMzQxNzMsIDM0MTc3LCAzNDE4MCwgMzQxODcsIDM0MTkxLCA5ODg0LCAzNDE5NSwgCisgICAgMzQyMDEsIDM0MjExLCAzNDIxNiwgMzQyMjIsIDM0MjI2LCAzNDIzMSwgMzQyNDQsIDI2MDg3LCAzNDI1MCwgMzQyNTksIAorICAgIDE3NDYyLCAzNDI2NiwgMzQyNzUsIDMxNjQ3LCAzNDI4MywgMzQyODgsIDM0MjkyLCAzNDMwMCwgMzQzMDcsIDM0MzEyLCAKKyAgICAzNDMxNiwgMzQzMjEsIDM0MzI1LCAzNDMzMywgMzQzMzksIDM0MzQ1LCAzNDM1MCwgMzQzNTQsIDM0MzU3LCAzNDM2MiwgCisgICAgMzQzNzUsIDM0MzkxLCAyMjk3OSwgMzQ0MDgsIDM0NDIwLCAzNDQzNywgMzQ0NDksIDM0NDYzLCAyMjk5NiwgMjMwMTUsIAorICAgIDM0NDc1LCAzNDQ4NywgMjY4MCwgMzQ1MDEsIDM0NTA2LCAzNDUxMSwgMzQ1MTYsIDM0NTIwLCAzNDUyNywgMzQ1MzksIAorICAgIDM0NTQ1LCAzNDU0OCwgMzQ1NTksIDM0NTcwLCAzNDU3NSwgMzIwNjQsIDY5NSwgMzQ1NzksIDM0NTgzLCAzNDU4NywgCisgICAgMzQ1OTAsIDM0NTk1LCAzNDYwMCwgMzQ2MDYsIDM0NjExLCAzNDYxNiwgMzQ2MjIsIDM0NjI4LCAzNDYzMywgMzQ2MzcsIAorICAgIDM0NjQyLCAzNDY0NywgMzQ2NTIsIDM0NjU2LCAzNDY1OSwgMzQ2NjUsIDM0NjcwLCAzNDY3NSwgMzQ2ODAsIDM0Njg0LCAKKyAgICAzNDY4OSwgMzQ2OTUsIDM0NzAzLCAyNjMyMCwgMzQ3MDgsIDM0NzEzLCAzNDcyMCwgMzQ3MjYsIDM0NzMyLCAzNDczNywgCisgICAgMzQ3NDUsIDIyNTIxLCAzNDc1MiwgMzQ3NTcsIDM0NzYyLCAzNDc2NywgMzQ3NzEsIDM0Nzc0LCAzNDc3OSwgMzQ3ODMsIAorICAgIDM0Nzg3LCAzNDc5NCwgMzQ4MDAsIDM0ODA2LCAzNDgxMiwgMzQ4MTksIDM0ODI0LCAzNDgzMCwgMzM5NDMsIDM0ODM0LCAKKyAgICAzNDgzOCwgMzQ4NDMsIDM0ODU2LCAzNDg2MSwgMzQ4NjcsIDM0ODc1LCAzNDg4MiwgMzQ4OTAsIDM0OTAwLCAzNDkwNiwgCisgICAgMzQ5MTIsIDM0OTE4LCAzNDkyMiwgMzQ5MzEsIDM0OTM5LCAzNDk0NiwgMzQ5NTEsIDM0OTU2LCAxMDQzNywgMzQ5NjEsIAorICAgIDM0OTY5LCAzNDk3NiwgMzQ5ODIsIDM0OTkyLCAzNDk5NywgMzUwMDMsIDM1MDExLCAzNjA4LCAzNTAxOCwgMzUwMjUsIAorICAgIDM2MTQsIDM1MDI5LCAzNTAzNCwgMzUwNDUsIDM1MDUyLCAzNTA1OCwgMzUwNjcsIDM1MDcxLCA0MDE1LCAzNTA3NCwgCisgICAgMzUwODEsIDM1MDg3LCAzNTA5MywgMzUxMDEsIDM1MTExLCAyOTA0MiwgMzUxMTgsIDM1MTI2LCAzNTEzMSwgMzUxMzcsIAorICAgIDM1MTQyLCAyNTk0NywgMzUxNDgsIDM1MTU1LCAzNTE2MSwgMzUxNzAsIDIzNjYwLCAzNTE3NywgMzUxODIsIDM1MTg2LCAKKyAgICAzNTE5NCwgMzUyMDIsIDk2MDAsIDU4OTUsIDM1MjA5LCAzNTIxMywgMzUyMTUsIDM1MjE5LCAzNTIyNCwgMzUyMjYsIAorICAgIDM1MjMyLCAzNTIzNywgMzUyNDIsIDM1MjQ5LCAzMjU4NSwgMzUyNTUsIDM1MjYwLCAzNTI2NCwgMzUyNjksIDM1MjczLCAKKyAgICAzNTI4MiwgMzUyODYsIDM1MjkyLCAzNTI5OSwgMzUzMDUsIDM1MzEyLCAzNTMxNywgMzUzMjYsIDM1MzMxLCAzNTMzNSwgCisgICAgMzUzNDAsIDM1MzQ3LCAzNTM1NSwgMzUzNjMsIDM1MzY4LCAyMTM0MywgMzUzNzIsIDM1Mzc1LCAzNTM3OSwgMzUzODMsIAorICAgIDM1Mzg3LCAzNTM5MCwgMzUzOTIsIDM1NDAwLCAzNTQwNCwgMzU0MTEsIDM1NDE1LCAzNTQxOSwgMzU0MjcsIDM1NDM0LCAKKyAgICAzNTQ0NCwgMzU0NDgsIDM1NDUyLCAzNTQ2MCwgMzU0NjgsIDM1NDc0LCAzNTQ3OSwgMzU0ODgsIDEzMzUwLCAzNTQ5NCwgCisgICAgMzU1MDMsIDM1NTA4LCAzNTUxNSwgMzU1MjMsIDM1NTMxLCAzNTUzOSwgMzU1NDYsIDM1NTUzLCAzNTU2MCwgMzU1NjcsIAorICAgIDM1NTc0LCAzNTU3OSwgMzU1ODUsIDM1NjAyLCAzNTYxMCwgMzU2MjAsIDM1NjI4LCAzNTYzNSwgNDA3LCAzNTYzOSwgCisgICAgMzU2NDUsIDM1NjQ5LCAzNTY1NCwgMzM2OTIsIDM1NjYwLCAzNTY2MywgMzU2NjcsIDM1Njc1LCAzNjE5LCAzNTY4MywgCisgICAgMzU2ODksIDM1Njk1LCAzNTcwNCwgMzU3MTQsIDM1NzIxLCAzNTcyNywgMzYyNSwgMzYzMSwgMzU3MzYsIDM1NzQzLCAKKyAgICAzNTc1MSwgMzU3NTYsIDM1NzYwLCAzNTc2NywgMzU3NzUsIDM1NzgyLCAzNTc4OCwgMzU3OTcsIDM1ODA3LCAzNTgxMywgCisgICAgMzU4MjEsIDM1ODMwLCAzNTgzNywgMzU4NDUsIDM1ODUyLCAyMjAxOSwgMzU4NTYsIDM1ODYzLCAzNTg2OSwgMzU4NzksIAorICAgIDM1ODg4LCAzNTg5OSwgMzU5MDMsIDM1OTEzLCAzNTkxOSwgMzU5MjYsIDM1OTM0LCAzNTk0MywgMzU5NTIsIDM1OTYyLCAKKyAgICAzNTk3MywgMzU5ODAsIDM1OTg1LCAzNTk5MiwgMzAyOSwgMzYwMDAsIDM2MDA2LCAzNjAxMSwgMzYwMTcsIDM2MDIzLCAKKyAgICAzNjAyOCwgMzYwNDEsIDM2MDU0LCAzNjA2NywgMzYwNzQsIDM2MDgwLCAzNjA4OCwgMzYwOTYsIDM2MTAxLCAzNjEwNSwgCisgICAgMTQ2OSwgMzYxMDksIDM2MTE0LCAzNjExOSwgMzYxMjQsIDM2MTI5LCAzNjEzNSwgMzYxNDAsIDM2MTQ1LCAzNjE1MCwgCisgICAgMzYxNTUsIDM2MTYwLCAzNjE2NSwgMzYxNzAsIDM2MTc2LCAzNjE4MiwgMzYxODcsIDM2MTkyLCAzNjE5OCwgMzYyMDMsIAorICAgIDM2MjA4LCAzNjIxMywgMzYyMTksIDM2MjI0LCAzNjIyOSwgMzYyMzQsIDM2MjM5LCAzNjI0NSwgMzYyNTAsIDM2MjU1LCAKKyAgICAzNjI2MSwgMzYyNjYsIDM2MjcxLCAzNjI3NiwgMzYyODEsIDM2Mjg2LCAzNjI5MiwgMzYyOTcsIDM2MzAzLCAzNjMwOCwgCisgICAgMzYzMTQsIDM2MzE5LCAzNjMyNCwgMzYzMjksIDM2MzM1LCAzNjM0MSwgMzYzNDcsIDM2MzUzLCAzNjM1OSwgMzYzNjUsIAorICAgIDM2MzcxLCAzNjM3NywgMzYzODIsIDM2Mzg3LCAzNjM5MywgMzYzOTgsIDM2NDAzLCAzNjQwOCwgMzY0MTMsIDM2NDE4LCAKKyAgICAzNjQyMywgMzY0MjgsIDM2NDM0LCAzNjQzOSwgMzY0NDQsIDM2NDUwLCAzNjQ1NiwgMTAxLCAzNjQ2MSwgMzY0NjMsIAorICAgIDM2NDY3LCAzNjQ3MSwgMzY0NzUsIDM2NDgwLCAzNjQ4NCwgOTUyMSwgMzY0ODgsIDM2NDk0LCAxNzQxLCA2MjgwLCAzNjUwMCwgCisgICAgMzY1MDMsIDM2NTA4LCAzNjUxMiwgMzY1MTcsIDM2NTIxLCAzNjUyNSwgMzY1MzAsIDEwMjM4LCAzNjUzNCwgMzY1MzgsIAorICAgIDM2NTQyLCAzNjU0NiwgMTUzNzIsIDM2NTUxLCAzNjU1NSwgMzY1NjAsIDM2NTY1LCAzNjU3MCwgMzY1NzQsIDM2NTgxLCAKKyAgICAyNjExMSwgMzY1ODcsIDM2NTkwLCAzNjU5NCwgMzY1OTksIDM2NjA1LCAzNjYwOSwgMzY2MTcsIDM2NjIzLCAzNjYyOCwgCisgICAgMzY2MzIsIDM2NjM4LCAzNjY0MiwgMzY2NDYsIDM0NjIsIDM0NjcsIDI5MjM0LCAzNjY0OSwgMzY2NTMsIDM2NjU3LCAKKyAgICAzNjY2MSwgMzY2NjksIDM2Njc2LCAzNjY4MCwgMzY2ODcsIDM2NjkyLCAzMTcsIDM2Njk3LCAzNjcwMSwgMzY3MDcsIAorICAgIDM2NzE5LCAzNjcyNSwgMzY3MzEsIDM2NzM1LCAzNjc0MSwgMzY3NTAsIDM2NzU0LCAzNjc1OCwgMzY3NjMsIDM2NzY5LCAKKyAgICAzNjc3NCwgMzY3NzgsIDM2NzgzLCAzNjc4NywgMzY3OTEsIDM2Nzk4LCAzNjgwNCwgMzY4MDksIDM2ODI0LCAzNjgzOSwgCisgICAgMzY4NTQsIDM2ODcwLCAzNjg4OCwgMTAxODgsIDM2OTAyLCAzNjkwOSwgMzY5MTMsIDM2OTE2LCAzNjkyNSwgMzY5MzAsIAorICAgIDM2OTM0LCAzNjk0MiwgMzM4OTQsIDM2OTUwLCAzNjk1NCwgMzY5NjQsIDM2OTc1LCAyOTIwNCwgMzY5ODgsIDM2OTkyLCAKKyAgICAzNzAwMSwgMzcwMDksIDk3NzgsIDE0OTAwLCAzNzAxMywgMjI0MzQsIDM3MDE2LCAzMDE1MiwgMzcwMjEsIDk3NzcsIAorICAgIDM3MDI2LCAzNzAzMiwgMzcwMzcsIDM3MDQzLCAzNzA0OCwgMzcwNTQsIDM3MDU5LCAzNzA2NSwgMzcwNzAsIDM3MDc2LCAKKyAgICAzNzA4MiwgMzcwODgsIDM3MDkzLCAzNzA0OSwgMzcwNTUsIDM3MDYwLCAzNzA2NiwgMzcwNzEsIDM3MDc3LCAzNzA4MywgCisgICAgODEyNiwgMzg3NCwgMzcwOTcsIDM3MTA1LCAzNzEwOSwgMzcxMTIsIDM3MTE2LCAzNzEyMSwgMzcxMjYsIDM3MTMyLCAKKyAgICAzNzEzOCwgMzcxNDMsIDM3MTQ3LCAyNTk1OSwgMzcxNTEsIDM3MTU1LCAzNzE2MSwgMzcxNjUsIDkwNDIsIDM3MTc0LCAKKyAgICAzNzE4MSwgMzcxODUsIDExODY4LCAzNzE5MiwgMzcxOTgsIDM3MjAzLCAzNzIxMCwgMzcyMTcsIDM3MjI0LCAyODU1MCwgCisgICAgODA0OSwgMzcyMzEsIDM3MjM4LCAzNzI0NSwgMzcyNTEsIDM3MjU2LCAzNzI2MywgMzcyNzQsIDM3MjgwLCAzNzI4NSwgCisgICAgMzcyOTAsIDM3Mjk1LCAzNzMwMiwgMzcwNTAsIDM3MzA2LCAzNzMxNiwgMzczMjcsIDM3MzMzLCAzNzMzOCwgMzczNDMsIAorICAgIDM3MzQ4LCAzNzM1MywgMzczNTgsIDM3MzYyLCAzNzM2NiwgMzczNzIsIDM3MzgwLCAyMzE5LCA4NjUsIDEwMjU0LCAxMDI2NiwgCisgICAgMTAyNzEsIDEwMjc3LCAzNzM4OSwgMTAyODIsIDEwMjg3LCAxMDI5MywgMzczOTQsIDM3NDA0LCAzNzQwOCwgMTAyOTgsIAorICAgIDM3NDEzLCAxNjg5MCwgMzc0MTYsIDM3NDIxLCAzNzQyNSwgMzc0MzAsIDM3NDM1LCAzNzQ0MiwgMzc0NDksIDM3NDUzLCAKKyAgICAzNzQ1NiwgMzc0NjQsIDEwMjAxLCAzNzQ3MSwgMzc0NzQsIDM3NDgwLCAzNzQ5MCwgNTkyOSwgMzc0OTksIDM3NTAzLCAKKyAgICAzNzUxMSwgMzc1MTUsIDM3NTI1LCAzNzUzMSwgMzc1NDIsIDM3NTQ4LCAzNzU1NCwgMzc1NTksIDM3NTY1LCAzNzU3MSwgCisgICAgMzc1NzcsIDM3NTgyLCAzNzU4NSwgMzc1OTIsIDM3NTk4LCAzNzYwMywgMzc2MTAsIDM3NjE3LCAzNzYyMSwgMzc2MzEsIAorICAgIDM3NjQ0LCAzNzY1MywgMzc2NjIsIDM3NjczLCAzNzY4NiwgMzc2OTcsIDM3NzA2LCAzNzcxNywgMzc3MjIsIDM3NzMxLCAKKyAgICAzNzczNiwgMTAzMDMsIDM3NzQyLCAzNzc0OSwgMzc3NTcsIDM3NzYyLCAzNzc2NiwgMzc3NzMsIDM3NzgwLCAzODI5LCAxNiwgCisgICAgMzc3ODQsIDM3Nzg5LCAxNjc0NCwgMzc3OTMsIDM3Nzk2LCAzNzc5OSwgMjgwNTYsIDM3ODAzLCAyODU1OSwgMzc4MTEsIAorICAgIDM3ODE1LCAzNzgxOSwgMzc4MjIsIDM3ODI4LCAzNzA3MiwgMzc4MzQsIDM3ODQyLCAzNzg0OCwgMzc4NTUsIDI4MDM5LCAKKyAgICAzNzg1OSwgMjgyMzMsIDM3ODYzLCAzNzg3MiwgMzc4NzgsIDM3ODg0LCAzNzg4OSwgMzc4OTMsIDM3ODk5LCAzNzkwMywgCisgICAgMzc5MTEsIDM3OTE5LCAyNjE3NywgMzc5MjUsIDM3OTMyLCAzNzkzOCwgMzc5NDMsIDM3OTQ4LCAzNzk1MiwgMzc5NTgsIAorICAgIDM3OTYzLCAzNzk2OSwgNDA1NiwgNzkxLCAzNzk3NiwgMzc5ODAsIDM3OTgzLCAxNTI2MiwgMzc5OTUsIDM1ODI2LCAzODAwNiwgCisgICAgMzgwMDksIDM4MDE2LCAzODAyMCwgMzgwMjYsIDM4MDMwLCAzODAzNiwgMzgwNDEsIDM4MDQ3LCAzODA1MiwgMzgwNTcsIAorICAgIDM4MDYxLCAzODA2NSwgMzgwNzAsIDM4MDc1LCAzODA4NSwgMzgwOTEsIDM4MTA0LCAzODExMCwgMzgxMTYsIDM4MTIzLCAKKyAgICAzODEyOCwgMzgxMzQsIDM4MTM5LCAxNjYzMCwgMTQ3MiwgMTAxOSwgMzExOTMsIDMxMTk5LCAzODE0NCwgMzEyMDUsIAorICAgIDMxMjE4LCAzMTIyNCwgMzEyMzAsIDM4MTUwLCAzMTIzNiwgMzEyNDIsIDM4MTU2LCAzODE2MiwgMjIsIDM4MTcwLCAzODE3NywgCisgICAgMzgxODEsIDM4MTg1LCAzODE5MywgMzE5NTMsIDM4MTk3LCAzODIwMSwgMzgyMDgsIDM4MjEzLCAzODIxNywgMzgyMjIsIAorICAgIDM4MjI4LCAzODIzMywgMzgyMzksIDM4MjQ0LCAzODI0OCwgMzgyNTIsIDM4MjU2LCAzODI2MSwgMzgyNjUsIDM4MjcwLCAKKyAgICAzODI3NCwgMzgyODEsIDM4Mjg2LCAzODI5MCwgMzgyOTUsIDM4Mjk5LCAzODMwNCwgMzgzMDgsIDM4MzEzLCAzODMxOSwgCisgICAgMTU0ODIsIDE1NDg3LCAzODMyNCwgMzgzMjgsIDM4MzMxLCAzODMzNSwgMjExNzAsIDM4MzQwLCAzODM0NCwgMzgzNTAsIAorICAgIDM4MzU3LCAzODM2MiwgMzgzNzIsIDM4Mzc3LCAzODM4NSwgMzgzODksIDM4MzkyLCAzMTk2OCwgMzgzOTYsIDQxMDksIAorICAgIDM4NDAxLCAzODQwNiwgMzg0MTAsIDM4NDE1LCAzODQxOSwgMzg0MjQsIDEzMzY4LCAzODQzNSwgMzg0MzksIDM4NDQyLCAKKyAgICAzODQ0NywgMzg0NTEsIDM4NDU1LCAzODQ1OCwgMzg0NjIsIDgxNDUsIDEzMzg0LCAzODQ2NSwgMzg0NjgsIDM4NDc0LCAKKyAgICAzODQ3OSwgMzg0ODUsIDM4NDkwLCAzODQ5NiwgMzg1MDEsIDM4NTA3LCAzODUxMiwgMzg1MTgsIDM4NTI0LCAzODUzMCwgCisgICAgMzg1MzUsIDM4NTM5LCAzODU0MywgMzg1NTIsIDM4NTY4LCAzODU4NCwgMzg1OTQsIDI3OTQ2LCAzODYwMSwgMzg2MDUsIAorICAgIDM4NjEwLCAzODYxNSwgMzg2MTksIDM4NjIzLCAzNTk0NywgMzg2MjksIDM4NjM0LCAzODYzOCwgMzg2NDUsIDM4NjUwLCAKKyAgICAzODY1NCwgMzg2NTgsIDI2OTc5LCAzODY2NCwgMjE0MzgsIDM4NjY5LCAzODY3NiwgMzg2ODQsIDM4NjkwLCAzODY5NywgCisgICAgMzg3MDUsIDM4NzExLCAzODcxNSwgMzg3MjEsIDM4NzI5LCAzODczMywgMzg3NDIsIDk1MDIsIDM4NzUwLCAzODc1NCwgCisgICAgMzg3NjIsIDM4NzY5LCAzODc3NCwgMzg3NzksIDM4NzgzLCAzODc4NiwgMzg3OTAsIDM4NzkzLCAzODc5NywgMzg4MDQsIAorICAgIDM4ODA5LCAzODgxNSwgMjYzOTgsIDMxMjU2LCAzODgxOSwgMzg4MjYsIDM4ODMyLCAzODgzOCwgMzg4NDMsIDM4ODQ2LCAKKyAgICAzODg0OCwgMzg4NTUsIDM4ODYyLCAzODg2OCwgMzg4NzIsIDM4ODc1LCAzODg3OSwgMzg4ODMsIDM4ODg3LCAzODg5MiwgCisgICAgMzg4OTYsIDM4OTAwLCAzODkwMywgMzg5MDcsIDM4OTIxLCAyMzA0NSwgMzg5NDAsIDM4OTUzLCAzODk2NiwgMzg5NzksIAorICAgIDIzMDYzLCAzODk5NCwgMTA0OTAsIDM5MDA5LCAzOTAxNSwgMzkwMTksIDM5MDIzLCAzOTAzMCwgMzkwMzUsIDM5MDM5LCAKKyAgICAzOTA0NiwgMzkwNTIsIDM5MDU3LCAzOTA2MywgMzkwNzMsIDM5MDg1LCAzOTA5NiwgMzkxMDEsIDM5MTA4LCAzOTExMiwgCisgICAgMzkxMTYsIDM5MTE5LCAxNTg3OCwgMzY3NywgMzkxMjcsIDE1NTA5LCAzOTE0MCwgMzkxNDcsIDM5MTUxLCAzOTE1NSwgCisgICAgMzkxNjAsIDM5MTY1LCAzOTE3MSwgMzkxNzUsIDM5MTc5LCAzOTE4MiwgNzc0MiwgMTU1MjAsIDM5MTg3LCAzOTE5MSwgCisgICAgMzkxOTcsIDM5MjA2LCAzOTIxMSwgMzkyMTgsIDM1ODAzLCAzOTIyNCwgMzkyMjksIDM5MjMzLCAzOTIzOCwgMzkyNDUsIAorICAgIDM5MjQ5LCAzOTI1MiwgMzkyNTYsIDM5MjYxLCAxNDU1MiwgMzkyNjgsIDM5Mjc1LCAxMDY2LCAzOTI3OSwgMzkyODQsIAorICAgIDM5Mjg5LCAzOTI5NSwgMzkzMDAsIDM5MzA1LCAzOTMwOSwgMzkzMTksIDM5MzI0LCAzOTMzMCwgMzkzMzUsIDM5MzQxLCAKKyAgICAzOTM0NiwgMzkzNTIsIDM5MzYyLCAzOTM2NywgMzkzNzIsIDM5Mzc2LCA3MjI5LCA3MjQxLCAzOTM4MSwgMzkzODQsIAorICAgIDM5MzkxLCAzOTM5NywgMzQwNTksIDM0MDY2LCAzOTQwNiwgMzk0MTAsIDMyMDE2LCAzOTQxOCwgMzk0MjksIDM5NDM3LCAKKyAgICAzNTk5NSwgMzk0NDQsIDM5NDQ5LCAzOTQ1NCwgMzk0NjUsIDM5NDcyLCAzOTQ4MywgMzIwNDAsIDIxNDQ0LCAzOTQ5MSwgCisgICAgNzM1LCAzOTQ5NiwgMzk1MDIsIDI4MDMwLCAzOTUwOCwgMzk1MTMsIDM5NTIzLCAzOTUzMiwgMzk1MzksIDM5NTQ1LCAKKyAgICAzOTU0OSwgMzk1NTIsIDM5NTU5LCAzOTU2NSwgMzk1NzIsIDM5NTc4LCAzOTU4OCwgMzk1OTYsIDM5NjAyLCAzOTYwOCwgCisgICAgMzk2MTMsIDM5NjE3LCAzOTYyNCwgMzk2MzAsIDM5NjM3LCAzODg4OCwgNTM1LCAxMzgwNSwgMzk2NDMsIDM5NjQ4LCAKKyAgICAzOTY1MSwgMzk2NTcsIDM5NjY1LCAxMzk2LCAzOTY3MCwgMzk2NzQsIDM5Njc5LCAzOTY4NiwgMzk2OTIsIDM5Njk2LCAKKyAgICAzOTcwMCwgMzk3MDUsIDM5NzE0LCAzOTcyMSwgMzk3MzEsIDM5NzM3LCAyODA3NCwgMzk3NTQsIDM5NzYzLCAzOTc3MSwgCisgICAgMzk3NzcsIDM5NzgyLCAzOTc4OSwgMzk3OTUsIDM5ODAzLCAzOTgxMiwgMzk4MjAsIDM5ODI0LCAzOTgyOSwgMzk4MzcsIAorICAgIDMyMDQ5LCAzOTg0MywgMzk4NjIsIDE1ODExLCAzOTg3NiwgMzk4OTIsIDM5OTA2LCAzOTkxMiwgMzk5MTcsIDM5OTIyLCAKKyAgICAzOTkyNywgMzk5MzMsIDMyMDU1LCAzOTkzOCwgMzk5NDUsIDM5OTUwLCAzOTk1NCwgMzQ1LCAyOTM2LCAzOTk2MSwgMzk5NjYsIAorICAgIDM5OTcxLCAyNzMwNSwgMzk3OTIsIDM5OTc1LCAzOTk4MCwgMzk5ODgsIDM5OTkyLCAzOTk5NSwgNDAwMDEsIDQwMDA3LCAKKyAgICA0MDAxMSwgMjgxMjksIDQwMDE0LCA0MDAxOSwgNDAwMjMsIDQwMDI2LCA0MDAzMSwgNDAwMzUsIDQwMDQwLCA0MDA0NSwgCisgICAgNDAwNDksIDQwMDU0LCA0MDA1OCwgNDAwNjIsIDIxMTY2LCAyMTE3NywgNDAwNjYsIDQwMDcxLCA0MDA3NywgMjY5MzYsIAorICAgIDQwMDgyLCA0MDA4NiwgMjEyNTMsIDE2MDU5LCA0MDA4OSwgNDAwOTQsIDQwMDk5LCA0MDEwNCwgNDAxMDksIDQwMTE0LCAKKyAgICA0MDExOSwgNDAxMjQsIDQ0NywgNDMsIDMxMjc0LCAzMTI3OSwgMzEyODQsIDMxMjkwLCAzMTI5NSwgMzEzMDAsIDQwMTI5LCAKKyAgICAzMTMwNCwgNDAxMzMsIDQwMTM3LCA0MDE0MSwgMzEzMDksIDMxMzE1LCA0MDE1NSwgMzEzMjYsIDMxMzMxLCA0MDE2MywgCisgICAgNDAxNjgsIDMxMzM3LCA0MDE3MywgNDAxNzgsIDQwMTgzLCA0MDE4OCwgNDAxOTQsIDQwMjAwLCA0MDIwNiwgMzEzNTQsIAorICAgIDQwMjE5LCA0MDIyNSwgMzEzNTgsIDQwMjI5LCAzMTM2MywgNDAyMzQsIDMxMzY4LCAzMTM3MywgNDAyMzcsIDQwMjQyLCAKKyAgICA0MDI0NiwgMzA5MjMsIDQwMjUyLCAxMzU5MiwgNDAyNTksIDQwMjY0LCAzMTM3OCwgNDAyNjgsIDQwMjczLCA0MDI3OCwgCisgICAgNDAyODMsIDQwMjg3LCA0MDI5MiwgNDAyOTcsIDQwMzAzLCA0MDMwOCwgNDAzMTMsIDQwMzE5LCA0MDMyNSwgNDAzMzAsIAorICAgIDQwMzM0LCA0MDMzOSwgNDAzNDQsIDQwMzQ5LCA0MDM1MywgNDAzNTgsIDQwMzYzLCA0MDM2OCwgNDAzNzQsIDQwMzgwLCAKKyAgICA0MDM4NiwgNDAzOTEsIDQwMzk1LCA0MDQwMCwgNDA0MDQsIDMxMzgyLCAzMTM4NywgMzEzOTIsIDQwNDA4LCA0MDQxMiwgCisgICAgNDA0MTYsIDMxMzk3LCAzMTQwMywgMzE0MDksIDMxNDIxLCA0MDQyOCwgMjU5OTYsIDQwNDMyLCA0MDQzNiwgNDA0NDEsIAorICAgIDQwNDQ2LCA0MDQ1MSwgNDA0NTYsIDQwNDYwLCA0MDQ2NCwgNDA0NzQsIDQwNDc5LCA0MDQ4NCwgNDA0ODgsIDQwNDkyLCAKKyAgICA0MDQ5NSwgNDA1MDMsIDMxNDY5LCA0MDUwOCwgMTQ3OSwgNDA1MTQsIDQwNTIyLCA0MDUzMSwgNDA1MzUsIDQwNTM5LCAKKyAgICA0MDU0NywgNDA1NTMsIDQwNTYxLCA0MDU3NywgNDA1ODEsIDQwNTg1LCA0MDU5MCwgNDA2MDUsIDMxNTA2LCAxNzQ5LCAKKyAgICAxMjA0OCwgNDA2MDksIDEzNzgsIDQwNjIxLCA0MDYyMiwgNDA2MzAsIDQwNjM3LCA0MDY0MiwgNDA2NDksIDQwNjU0LCAKKyAgICA5MzcyLCAxMTE0LCAxMDMyNSwgNDA2NjEsIDQwNjY2LCA0MDY2OSwgNDA2NzIsIDQwNjgxLCAxMjg2LCA0MDY4NiwgMzkwMzYsIAorICAgIDQwNjkzLCA0MDY5OCwgMjI0ODYsIDI1NTcsIDQwNzAyLCAxMDczNCwgNDA3MTIsIDQwNzE4LCAyMzM3LCAyMzQ3LCA0MDcyNywgCisgICAgNDA3MzYsIDQwNzQ2LCA0MDc1NywgMzI5MywgMzQyMTIsIDEwMzc3LCAzODA3LCAxNjY2OCwgMTI5MSwgNDA3NjIsIDQwNzcwLCAKKyAgICA0MDc3NywgNDA3ODIsIDQwNzg2LCA0MDc5MCwgMjM4NTgsIDEwNDA0LCA0MDc5OCwgNDA4MDcsIDQwODE2LCA0MDgyNCwgCisgICAgNDA4MzEsIDQwODQyLCA0MDg0NywgNDA4NjAsIDQwODczLCA0MDg4NSwgNDA4OTcsIDQwOTA5LCA0MDkyMiwgNDA5MzMsIAorICAgIDQwOTQ0LCA0MDk1NCwgNDA5NjIsIDQwOTcwLCA0MDk4MiwgNDA5OTQsIDQxMDA1LCA0MTAxNCwgNDEwMjIsIDQxMDI5LCAKKyAgICA0MTA0MSwgNDEwNDgsIDQxMDU3LCA0MTA2NCwgNDEwNzcsIDQxMDgyLCA0MTA5MiwgNDEwOTcsIDQxMTAzLCA0MTEwOCwgCisgICAgMzcxODIsIDQxMTEyLCA0MTExOSwgNDExMjMsIDQxMTMwLCA0MTEzOCwgMjUxOCwgNDExNDUsIDQxMTU2LCA0MTE2NiwgCisgICAgNDExNzUsIDQxMTgzLCA0MTE5MywgNDEyMDEsIDQxMjExLCA0MTIyMCwgNDEyMjUsIDQxMjMxLCA0MTIzNywgMzcwOSwgCisgICAgNDEyNDgsIDQxMjU4LCA0MTI2NywgNDEyNzYsIDQxMjg2LCA0MTI5NCwgNDEzMDMsIDQxMzA4LCA0MTMxMywgNDEzMTgsIAorICAgIDE3MDUsIDM3LCA0MTMyNiwgNDEzMzQsIDQxMzQ1LCA0MTM1NiwgMTYzNDMsIDQxMzY2LCA0MTM3MCwgNDEzNzcsIDQxMzgzLCAKKyAgICA0MTM4OCwgNDEzOTIsIDQxNDAzLCA0MTQxMywgNDE0MjIsIDQxNDMzLCAxNjcxNywgMTY3MjIsIDQxNDM4LCA0MTQ0NywgCisgICAgNDE0NTIsIDQxNDYyLCA0MTQ2NywgNDE0NzUsIDQxNDgzLCA0MTQ5MCwgNDE0OTYsIDcwNzgsIDIyOCwgNDE1MDAsIDQxNTA2LCAKKyAgICA0MTUxMSwgNDE1MTQsIDIxMTcsIDM5MTUyLCA0MTUyMiwgNDE1MjYsIDQxNTI5LCAxNTEyLCA0MTUzNSwgMTM5NjcsIDEyOTYsIAorICAgIDQxNTQwLCA0MTU1MywgNDE1NjcsIDI2NDMsIDQxNTg1LCA0MTU5NywgNDE2MDksIDI2NTcsIDI2NzQsIDQxNjIzLCA0MTYzNiwgCisgICAgMjY4OSwgNDE2NTAsIDQxNjYyLCAyNzA0LCA0MTY3NiwgMTMwMiwgMTMwOCwgMTMxNCwgMTA2NTIsIDQxNjgxLCA0MTY4NiwgCisgICAgNDE2OTEsIDQxNjk1LCA0MTcxMCwgNDE3MjUsIDQxNzQwLCA0MTc1NSwgNDE3NzAsIDQxNzg1LCA0MTgwMCwgNDE4MTUsIAorICAgIDQxODMwLCA0MTg0NSwgNDE4NjAsIDQxODc1LCA0MTg5MCwgNDE5MDUsIDQxOTIwLCA0MTkzNSwgNDE5NTAsIDQxOTY1LCAKKyAgICA0MTk4MCwgNDE5OTUsIDQyMDEwLCA0MjAyNSwgNDIwNDAsIDQyMDU1LCA0MjA3MCwgNDIwODUsIDQyMTAwLCA0MjExNSwgCisgICAgNDIxMzAsIDQyMTQ1LCA0MjE2MCwgNDIxNzUsIDQyMTkwLCA0MjIwNSwgNDIyMjAsIDQyMjM1LCA0MjI1MCwgNDIyNjUsIAorICAgIDQyMjgwLCA0MjI5NSwgNDIzMTAsIDQyMzI1LCA0MjM0MCwgNDIzNTUsIDQyMzcwLCA0MjM4NSwgNDI0MDAsIDQyNDE1LCAKKyAgICA0MjQzMCwgNDI0NDUsIDQyNDYwLCA0MjQ3NSwgNDI0OTAsIDQyNTA1LCA0MjUyMCwgNDI1MzUsIDQyNTUwLCA0MjU2NSwgCisgICAgNDI1ODAsIDQyNTk1LCA0MjYxMCwgNDI2MjUsIDQyNjQwLCA0MjY1NSwgNDI2NzAsIDQyNjg1LCA0MjcwMCwgNDI3MTUsIAorICAgIDQyNzMwLCA0Mjc0NSwgNDI3NjAsIDQyNzc1LCA0Mjc5MCwgNDI4MDUsIDQyODIwLCA0MjgzNSwgNDI4NTAsIDQyODY1LCAKKyAgICA0Mjg4MCwgNDI4OTUsIDQyOTEwLCA0MjkyNSwgNDI5NDAsIDQyOTU1LCA0Mjk3MCwgNDI5ODUsIDQzMDAwLCA0MzAxNSwgCisgICAgNDMwMzAsIDQzMDQ1LCA0MzA2MCwgNDMwNzUsIDQzMDkwLCA0MzEwNSwgNDMxMjAsIDQzMTM1LCA0MzE1MCwgNDMxNjUsIAorICAgIDQzMTgwLCA0MzE5NSwgNDMyMTAsIDQzMjI1LCA0MzI0MCwgNDMyNTUsIDQzMjcwLCA0MzI4NSwgNDMzMDAsIDQzMzE1LCAKKyAgICA0MzMzMCwgNDMzNDUsIDQzMzYwLCA0MzM3NSwgNDMzOTAsIDQzNDA1LCA0MzQyMCwgNDM0MzUsIDQzNDUwLCA0MzQ2NSwgCisgICAgNDM0ODAsIDQzNDk1LCA0MzUxMCwgNDM1MjUsIDQzNTQwLCA0MzU1NSwgNDM1NzAsIDQzNTg1LCA0MzYwMCwgNDM2MTUsIAorICAgIDQzNjMwLCA0MzY0NSwgNDM2NjAsIDQzNjc1LCA0MzY5MCwgNDM3MDUsIDQzNzIwLCA0MzczNSwgNDM3NTAsIDQzNzY1LCAKKyAgICA0Mzc4MCwgNDM3OTUsIDQzODEwLCA0MzgyNSwgNDM4NDAsIDQzODU1LCA0Mzg3MCwgNDM4ODUsIDQzOTAwLCA0MzkxNSwgCisgICAgNDM5MzAsIDQzOTQ1LCA0Mzk2MCwgNDM5NzUsIDQzOTkwLCA0NDAwNSwgNDQwMjAsIDQ0MDM1LCA0NDA1MCwgNDQwNjUsIAorICAgIDQ0MDgwLCA0NDA5NSwgNDQxMTAsIDQ0MTI1LCA0NDE0MCwgNDQxNTUsIDQ0MTcwLCA0NDE4NSwgNDQyMDAsIDQ0MjE1LCAKKyAgICA0NDIzMCwgNDQyNDUsIDQ0MjYwLCA0NDI3NSwgNDQyOTAsIDQ0MzA1LCA0NDMyMCwgNDQzMzUsIDQ0MzUwLCA0NDM2NSwgCisgICAgNDQzODAsIDQ0Mzk1LCA0NDQxMCwgNDQ0MjUsIDQ0NDQwLCA0NDQ1NSwgNDQ0NzAsIDQ0NDg1LCA0NDUwMCwgNDQ1MTUsIAorICAgIDQ0NTMwLCA0NDU0NSwgNDQ1NjAsIDQ0NTc1LCA0NDU5MCwgNDQ2MDUsIDQ0NjIwLCA0NDYzNSwgNDQ2NTAsIDQ0NjY1LCAKKyAgICA0NDY4MCwgNDQ2OTUsIDQ0NzEwLCA0NDcyNSwgNDQ3NDAsIDQ0NzU1LCA0NDc3MCwgNDQ3ODUsIDQ0ODAwLCA0NDgxNSwgCisgICAgNDQ4MzAsIDQ0ODQ1LCA0NDg2MCwgNDQ4NzUsIDQ0ODkwLCA0NDkwNSwgNDQ5MjAsIDQ0OTM1LCA0NDk1MCwgNDQ5NjUsIAorICAgIDQ0OTgwLCA0NDk5NSwgNDUwMTAsIDQ1MDI1LCA0NTA0MCwgNDUwNTUsIDQ1MDcwLCA0NTA4NSwgNDUxMDAsIDQ1MTE1LCAKKyAgICA0NTEzMCwgNDUxNDUsIDQ1MTYwLCA0NTE3NSwgNDUxOTAsIDQ1MjA1LCA0NTIyMCwgNDUyMzUsIDQ1MjUwLCA0NTI2NSwgCisgICAgNDUyODAsIDQ1Mjk1LCA0NTMxMCwgNDUzMjUsIDQ1MzQwLCA0NTM1NSwgNDUzNzAsIDQ1Mzg1LCA0NTQwMCwgNDU0MTUsIAorICAgIDQ1NDMwLCA0NTQ0NSwgNDU0NjAsIDQ1NDc1LCA0NTQ5MCwgNDU1MDUsIDQ1NTIwLCA0NTUzNSwgNDU1NTAsIDQ1NTY1LCAKKyAgICA0NTU4MCwgNDU1OTUsIDQ1NjEwLCA0NTYyNSwgNDU2NDAsIDQ1NjU1LCA0NTY3MCwgNDU2ODUsIDQ1NzAwLCA0NTcxNSwgCisgICAgNDU3MzAsIDQ1NzQ1LCA0NTc2MCwgNDU3NzUsIDQ1NzkwLCA0NTgwNSwgNDU4MjAsIDQ1ODM1LCA0NTg1MCwgNDU4NjUsIAorICAgIDQ1ODgwLCA0NTg5NSwgNDU5MTAsIDQ1OTI1LCA0NTk0MCwgNDU5NTUsIDQ1OTcwLCA0NTk4NSwgNDYwMDAsIDQ2MDE1LCAKKyAgICA0NjAzMCwgNDYwNDUsIDQ2MDYwLCA0NjA3NSwgNDYwOTAsIDQ2MTA1LCA0NjEyMCwgNDYxMzUsIDQ2MTUwLCA0NjE2NSwgCisgICAgNDYxODAsIDQ2MTk1LCA0NjIxMCwgNDYyMjUsIDQ2MjQwLCA0NjI1NSwgNDYyNzAsIDQ2Mjg1LCA0NjMwMCwgNDYzMTUsIAorICAgIDQ2MzMwLCA0NjM0NSwgNDYzNjAsIDQ2Mzc1LCA0NjM5MCwgNDY0MDUsIDQ2NDIwLCA0NjQzNSwgNDY0NTAsIDQ2NDY1LCAKKyAgICA0NjQ4MCwgNDY0OTUsIDQ2NTEwLCA0NjUyNSwgNDY1NDAsIDQ2NTU1LCA0NjU3MCwgNDY1ODUsIDQ2NjAwLCA0NjYxNSwgCisgICAgNDY2MzAsIDQ2NjQ1LCA0NjY2MCwgNDY2NzUsIDQ2NjkwLCA0NjcwNSwgNDY3MjAsIDQ2NzM1LCA0Njc1MCwgNDY3NjUsIAorICAgIDQ2NzgwLCA0Njc5NSwgNDY4MTAsIDQ2ODI1LCA0Njg0MCwgNDY4NTUsIDQ2ODcwLCA0Njg4NSwgNDY5MDAsIDQ2OTE1LCAKKyAgICA0NjkzMCwgNDY5NDUsIDQ2OTYwLCA0Njk3NSwgNDY5OTAsIDQ3MDA1LCA0NzAyMCwgNDcwMzUsIDQ3MDUwLCA0NzA2NSwgCisgICAgNDcwODAsIDQ3MDk1LCA0NzExMCwgNDcxMjUsIDQ3MTQwLCA0NzE1NSwgNDcxNzAsIDQ3MTg1LCA0NzIwMCwgNDcyMTUsIAorICAgIDQ3MjMwLCA0NzI0NSwgNDcyNjAsIDQ3Mjc1LCA0NzI5MCwgNDczMDUsIDQ3MzIwLCA0NzMzNSwgNDczNTAsIDQ3MzY1LCAKKyAgICA0NzM4MCwgNDczOTUsIDQ3NDEwLCA0NzQyNSwgNDc0NDAsIDQ3NDU1LCA0NzQ3MCwgNDc0ODUsIDQ3NTAwLCA0NzUxNSwgCisgICAgNDc1MzAsIDQ3NTQ1LCA0NzU2MCwgNDc1NzUsIDQ3NTkwLCA0NzYwNSwgNDc2MjAsIDQ3NjM1LCA0NzY1MCwgNDc2NjUsIAorICAgIDQ3NjgwLCA0NzY5NSwgNDc3MTAsIDQ3NzI1LCA0Nzc0MCwgNDc3NTUsIDQ3NzcwLCA0Nzc4NSwgNDc4MDAsIDQ3ODE1LCAKKyAgICA0NzgzMCwgNDc4NDUsIDQ3ODYwLCA0Nzg3NSwgNDc4OTAsIDQ3OTA1LCA0NzkyMCwgNDc5MzUsIDQ3OTUwLCA0Nzk2NSwgCisgICAgNDc5ODAsIDQ3OTk1LCA0ODAxMCwgNDgwMjUsIDQ4MDQwLCA0ODA1NSwgNDgwNzAsIDQ4MDg1LCA0ODEwMCwgNDgxMTUsIAorICAgIDQ4MTMwLCA0ODE0NSwgNDgxNjAsIDQ4MTc1LCA0ODE5MCwgNDgyMDUsIDQ4MjIwLCA0ODIzNSwgNDgyNTAsIDQ4MjY1LCAKKyAgICA0ODI4MCwgNDgyOTUsIDQ4MzEwLCA0ODMyNSwgNDgzNDAsIDQ4MzU1LCA0ODM3MCwgNDgzODUsIDQ4NDAwLCA0ODQxNSwgCisgICAgNDg0MzAsIDQ4NDQ1LCA0ODQ2MCwgNDg0NzUsIDQ4NDkwLCA0ODUwNSwgNDg1MjAsIDQ4NTM1LCA0ODU1MCwgNDg1NjUsIAorICAgIDQ4NTgwLCA0ODU5NSwgNDg2MTAsIDQ4NjI1LCA0ODY0MCwgNDg2NTUsIDQ4NjcwLCA0ODY4NSwgNDg3MDAsIDQ4NzE1LCAKKyAgICA0ODczMCwgNDg3NDUsIDQ4NzYwLCA0ODc3NSwgNDg3OTAsIDQ4ODA1LCA0ODgyMCwgNDg4MzUsIDQ4ODUwLCA0ODg2NSwgCisgICAgNDg4ODAsIDQ4ODk1LCA0ODkxMCwgNDg5MjUsIDQ4OTQwLCA0ODk1NSwgNDg5NzAsIDQ4OTg1LCA0OTAwMCwgNDkwMTUsIAorICAgIDQ5MDMwLCA0OTA0NSwgNDkwNjAsIDQ5MDc1LCA0OTA5MCwgNDkxMDUsIDQ5MTIwLCA0OTEzNSwgNDkxNTAsIDQ5MTY1LCAKKyAgICA0OTE4MCwgNDkxOTUsIDQ5MjEwLCA0OTIyNSwgNDkyNDAsIDQ5MjU1LCA0OTI3MCwgNDkyODUsIDQ5MzAwLCA0OTMxNSwgCisgICAgNDkzMzAsIDQ5MzQ1LCA0OTM2MCwgNDkzNzUsIDQ5MzkwLCA0OTQwNSwgNDk0MjAsIDQ5NDM1LCA0OTQ1MCwgNDk0NjUsIAorICAgIDQ5NDgwLCA0OTQ5NSwgNDk1MTEsIDQ5NTI3LCA0OTU0MywgNDk1NTksIDQ5NTc1LCA0OTU5MSwgNDk2MDcsIDQ5NjIzLCAKKyAgICA0OTYzOSwgNDk2NTUsIDQ5NjcxLCA0OTY4NywgNDk3MDMsIDQ5NzE5LCA0OTczNSwgNDk3NTEsIDQ5NzY3LCA0OTc4MywgCisgICAgNDk3OTksIDQ5ODE1LCA0OTgzMSwgNDk4NDcsIDQ5ODYzLCA0OTg3OSwgNDk4OTUsIDQ5OTExLCA0OTkyNywgNDk5NDMsIAorICAgIDQ5OTU5LCA0OTk3NSwgNDk5OTEsIDUwMDA3LCA1MDAyMywgNTAwMzksIDUwMDU1LCA1MDA3MSwgNTAwODcsIDUwMTAzLCAKKyAgICA1MDExOSwgNTAxMzUsIDUwMTUxLCA1MDE2NywgNTAxODMsIDUwMTk5LCA1MDIxNSwgNTAyMzEsIDUwMjQ3LCA1MDI2MywgCisgICAgNTAyNzksIDUwMjk1LCA1MDMxMSwgNTAzMjcsIDUwMzQzLCA1MDM1OSwgNTAzNzUsIDUwMzkxLCA1MDQwNywgNTA0MjMsIAorICAgIDUwNDM5LCA1MDQ1NSwgNTA0NzEsIDUwNDg3LCA1MDUwMywgNTA1MTksIDUwNTM1LCA1MDU1MSwgNTA1NjcsIDUwNTgzLCAKKyAgICA1MDU5OSwgNTA2MTUsIDUwNjMxLCA1MDY0NywgNTA2NjMsIDUwNjc5LCA1MDY5NSwgNTA3MTEsIDUwNzI3LCA1MDc0MywgCisgICAgNTA3NTksIDUwNzc1LCA1MDc5MSwgNTA4MDcsIDUwODIzLCA1MDgzOSwgNTA4NTUsIDUwODcxLCA1MDg4NywgNTA5MDMsIAorICAgIDUwOTE5LCA1MDkzNSwgNTA5NTEsIDUwOTY3LCA1MDk4MywgNTA5OTksIDUxMDE1LCA1MTAzMSwgNTEwNDcsIDUxMDYzLCAKKyAgICA1MTA3OSwgNTEwOTUsIDUxMTExLCA1MTEyNywgNTExNDMsIDUxMTU5LCA1MTE3NSwgNTExOTEsIDUxMjA3LCA1MTIyMywgCisgICAgNTEyMzksIDUxMjU1LCA1MTI3MSwgNTEyODcsIDUxMzAzLCA1MTMxOSwgNTEzMzUsIDUxMzUxLCA1MTM2NywgNTEzODMsIAorICAgIDUxMzk5LCA1MTQxNSwgNTE0MzEsIDUxNDQ3LCA1MTQ2MywgNTE0NzksIDUxNDk1LCA1MTUxMSwgNTE1MjcsIDUxNTQzLCAKKyAgICA1MTU1OSwgNTE1NzUsIDUxNTkxLCA1MTYwNywgNTE2MjMsIDUxNjM5LCA1MTY1NSwgNTE2NzEsIDUxNjg3LCA1MTcwMywgCisgICAgNTE3MTksIDUxNzM1LCA1MTc1MSwgNTE3NjcsIDUxNzgzLCA1MTc5OSwgNTE4MTUsIDUxODMxLCA1MTg0NywgNTE4NjMsIAorICAgIDUxODc5LCA1MTg5NSwgNTE5MTEsIDUxOTI3LCA1MTk0MywgNTE5NTksIDUxOTc1LCA1MTk5MSwgNTIwMDcsIDUyMDIzLCAKKyAgICA1MjAzOSwgNTIwNTUsIDUyMDcxLCA1MjA4NywgNTIxMDMsIDUyMTE5LCA1MjEzNSwgNTIxNTEsIDUyMTY3LCA1MjE4MywgCisgICAgNTIxOTksIDUyMjE1LCA1MjIzMSwgNTIyNDcsIDUyMjYzLCA1MjI3OSwgNTIyOTUsIDUyMzExLCA1MjMyNywgNTIzNDMsIAorICAgIDUyMzU5LCA1MjM3NSwgNTIzOTEsIDUyNDA3LCA1MjQyMywgNTI0MzksIDUyNDU1LCA1MjQ3MSwgNTI0ODcsIDUyNTAzLCAKKyAgICA1MjUxOSwgNTI1MzUsIDUyNTUxLCA1MjU2NywgNTI1ODMsIDUyNTk5LCA1MjYxNSwgNTI2MzEsIDUyNjQ3LCA1MjY2MywgCisgICAgNTI2NzksIDUyNjk1LCA1MjcxMSwgNTI3MjcsIDUyNzQzLCA1Mjc1OSwgNTI3NzUsIDUyNzkxLCA1MjgwNywgNTI4MjMsIAorICAgIDUyODM5LCA1Mjg1NSwgNTI4NzEsIDUyODg3LCA1MjkwMywgNTI5MTksIDUyOTM1LCA1Mjk1MSwgNTI5NjcsIDUyOTgzLCAKKyAgICA1Mjk5OSwgNTMwMTUsIDUzMDMxLCA1MzA0NywgNTMwNjMsIDUzMDc5LCA1MzA5NSwgNTMxMTEsIDUzMTI3LCA1MzE0MywgCisgICAgNTMxNTksIDUzMTc1LCA1MzE5MSwgNTMyMDcsIDUzMjIzLCA1MzIzOSwgNTMyNTUsIDUzMjcxLCA1MzI4NywgNTMzMDMsIAorICAgIDUzMzE5LCA1MzMzNSwgNTMzNTEsIDUzMzY3LCA1MzM4MywgNTMzOTksIDUzNDE1LCA1MzQzMSwgNTM0NDcsIDUzNDYzLCAKKyAgICA1MzQ3OSwgNTM0OTUsIDUzNTExLCA1MzUyNywgNTM1NDMsIDUzNTU5LCA1MzU3NSwgNTM1OTEsIDUzNjA3LCA1MzYyMywgCisgICAgNTM2MzksIDUzNjU1LCA1MzY3MSwgNTM2ODcsIDUzNzAzLCA1MzcxOSwgNTM3MzUsIDUzNzUxLCA1Mzc2NywgNTM3ODMsIAorICAgIDUzNzk5LCA1MzgxNSwgNTM4MzEsIDUzODQ3LCA1Mzg2MywgNTM4NzksIDUzODk1LCA1MzkxMSwgNTM5MjcsIDUzOTQzLCAKKyAgICA1Mzk1OSwgNTM5NzUsIDUzOTkxLCA1NDAwNywgNTQwMjMsIDU0MDM5LCA1NDA1NSwgNTQwNzEsIDU0MDg3LCA1NDEwMywgCisgICAgNTQxMTksIDU0MTM1LCA1NDE1MSwgNTQxNjcsIDU0MTgzLCA1NDE5OSwgNTQyMTUsIDU0MjMxLCA1NDI0NywgNTQyNjMsIAorICAgIDU0Mjc5LCA1NDI5NSwgNTQzMTEsIDU0MzI3LCA1NDM0MywgNTQzNTksIDU0Mzc1LCA1NDM5MSwgNTQ0MDcsIDU0NDIzLCAKKyAgICA1NDQzOSwgNTQ0NTUsIDU0NDcxLCA1NDQ4NywgNTQ1MDMsIDU0NTE5LCA1NDUzNSwgNTQ1NTEsIDU0NTY3LCA1NDU4MywgCisgICAgNTQ1OTksIDU0NjE1LCA1NDYzMSwgNTQ2NDcsIDU0NjYzLCA1NDY3OSwgNTQ2OTUsIDU0NzExLCA1NDcyNywgNTQ3NDMsIAorICAgIDU0NzU5LCA1NDc3NSwgNTQ3OTEsIDU0ODA3LCA1NDgyMywgNTQ4MzksIDU0ODU1LCA1NDg3MSwgNTQ4ODcsIDU0OTAzLCAKKyAgICA1NDkxOSwgNTQ5MzUsIDU0OTUxLCA1NDk2NywgNTQ5ODMsIDU0OTk5LCA1NTAxNSwgNTUwMzEsIDU1MDQ3LCA1NTA2MywgCisgICAgNTUwNzksIDU1MDk1LCA1NTExMSwgNTUxMjcsIDU1MTQzLCA1NTE1OSwgNTUxNzUsIDU1MTkxLCA1NTIwNywgNTUyMjMsIAorICAgIDU1MjM5LCA1NTI1NSwgNTUyNzEsIDU1Mjg3LCA1NTMwMywgNTUzMTksIDU1MzM1LCA1NTM1MSwgNTUzNjcsIDU1MzgzLCAKKyAgICA1NTM5OSwgNTU0MTUsIDU1NDMxLCA1NTQ0NywgNTU0NjMsIDU1NDc5LCA1NTQ5NSwgNTU1MTEsIDU1NTI3LCA1NTU0MywgCisgICAgNTU1NTksIDU1NTc1LCA1NTU5MSwgNTU2MDcsIDU1NjIzLCA1NTYzOSwgNTU2NTUsIDU1NjcxLCA1NTY4NywgNTU3MDMsIAorICAgIDU1NzE5LCA1NTczNSwgNTU3NTEsIDU1NzY3LCA1NTc4MywgNTU3OTksIDU1ODE1LCA1NTgzMSwgNTU4NDcsIDU1ODYzLCAKKyAgICA1NTg3OSwgNTU4OTUsIDU1OTExLCA1NTkyNywgNTU5NDMsIDU1OTU5LCA1NTk3NSwgNTU5OTEsIDU2MDA3LCA1NjAyMywgCisgICAgNTYwMzksIDU2MDU1LCA1NjA3MSwgNTYwODcsIDU2MTAzLCA1NjExOSwgNTYxMzUsIDU2MTUxLCA1NjE2NywgNTYxODMsIAorICAgIDU2MTk5LCA1NjIxNSwgNTYyMzEsIDU2MjQ3LCA1NjI2MywgNTYyNzksIDU2Mjk1LCA1NjMxMSwgNTYzMjcsIDU2MzQzLCAKKyAgICA1NjM1OSwgNTYzNzUsIDU2MzkxLCA1NjQwNywgNTY0MjMsIDU2NDM5LCA1NjQ1NSwgNTY0NzEsIDU2NDg3LCA1NjUwMywgCisgICAgNTY1MTksIDU2NTM1LCA1NjU1MSwgNTY1NjcsIDU2NTgzLCA1NjU5OSwgNTY2MTUsIDU2NjMxLCA1NjY0NywgNTY2NjMsIAorICAgIDU2Njc5LCA1NjY5NSwgNTY3MTEsIDU2NzI3LCA1Njc0MywgNTY3NTksIDU2Nzc1LCA1Njc5MSwgNTY4MDcsIDU2ODIzLCAKKyAgICA1NjgzOSwgNTY4NTUsIDU2ODcxLCA1Njg4NywgNTY5MDMsIDU2OTE5LCA1NjkzNSwgNTY5NTEsIDU2OTY3LCA1Njk4MywgCisgICAgNTY5OTksIDU3MDE1LCA1NzAzMSwgNTcwNDcsIDU3MDYzLCA1NzA3OSwgNTcwOTUsIDU3MTExLCA1NzEyNywgNTcxNDMsIAorICAgIDU3MTU5LCA1NzE3NSwgNTcxOTEsIDU3MjA3LCA1NzIyMywgNTcyMzksIDU3MjU1LCA1NzI3MSwgNTcyODcsIDU3MzAzLCAKKyAgICA1NzMxOSwgNTczMzUsIDU3MzUxLCA1NzM2NywgNTczODMsIDU3Mzk5LCA1NzQxNSwgNTc0MzEsIDU3NDQ3LCA1NzQ2MywgCisgICAgNTc0NzksIDU3NDk1LCA1NzUxMSwgNTc1MjcsIDU3NTQzLCA1NzU1OSwgNTc1NzUsIDU3NTkxLCA1NzYwNywgNTc2MjMsIAorICAgIDU3NjM5LCA1NzY1NSwgNTc2NzEsIDU3Njg3LCA1NzcwMywgNTc3MTksIDU3NzM1LCA1Nzc1MSwgNTc3NjcsIDU3NzgzLCAKKyAgICA1Nzc5OSwgNTc4MTUsIDU3ODMxLCA1Nzg0NywgNTc4NjMsIDU3ODc5LCA1Nzg5NSwgNTc5MTEsIDU3OTI3LCA1Nzk0MywgCisgICAgNTc5NTksIDU3OTc1LCA1Nzk5MSwgNTgwMDcsIDU4MDIzLCA1ODAzOSwgNTgwNTUsIDU4MDcxLCA1ODA4NywgNTgxMDMsIAorICAgIDU4MTE5LCA1ODEzNSwgNTgxNTEsIDU4MTY3LCA1ODE4MiwgMTY3NDksIDU4MTkxLCA1ODE5NywgNTgyMDMsIDU4MjEzLCAKKyAgICA1ODIyMSwgMTQ4ODEsIDE1NDMyLCA5OTUzLCA1ODIzNCwgMTUyMCwgNTgyNDIsIDM3NjEsIDI3NDE1LCA3MTgzLCA1ODI0OCwgCisgICAgNTgyNTMsIDU4MjU4LCA1ODI2MywgNTgyNjgsIDU4Mjc0LCA1ODI3OSwgNTgyODUsIDU4MjkwLCA1ODI5NiwgNTgzMDEsIAorICAgIDU4MzA2LCA1ODMxMSwgNTgzMTYsIDU4MzIyLCA1ODMyNywgNTgzMzIsIDU4MzM3LCA1ODM0MiwgNTgzNDcsIDU4MzUyLCAKKyAgICA1ODM1NywgNTgzNjMsIDU4MzY4LCA1ODM3NCwgNTgzODEsIDI1NjEsIDU4Mzg2LCA1ODM5MiwgODUyNiwgNTgzOTYsIAorICAgIDU4NDAxLCA1ODQwOCwgNTg0MTYsIDQwLCA1ODQyMCwgNTg0MjYsIDU4NDMxLCA1ODQzNiwgNTg0NDAsIDU4NDQ1LCA1ODQ0OSwgCisgICAgNTg0NTMsIDEwNjc3LCA1ODQ1NywgNTg0NjcsIDU4NDgwLCA1ODQ5MSwgNTg1MDQsIDU4NTExLCA1ODUxNywgNTg1MjIsIAorICAgIDU4NTI4LCA1ODUzNCwgNTg1NDAsIDU4NTQ1LCA1ODU1MCwgNTg1NTUsIDU4NTYwLCA1ODU2NCwgNTg1NjksIDU4NTc0LCAKKyAgICA1ODU3OSwgNTg1ODUsIDU4NTkxLCA1ODU5NywgNTg2MDIsIDU4NjA2LCA1ODYxMSwgNTg2MTYsIDU4NjIwLCA1ODYyNSwgCisgICAgNTg2MzAsIDU4NjM1LCA1ODYzOSwgMTA2OTMsIDEwNzA0LCAxMDcwOSwgMTU2MywgNTg2NDMsIDE1NjgsIDU4NjQ5LCAKKyAgICAxNjIyNiwgNTg2NTIsIDU4NjU4LCAxNTk5LCA1ODY2NCwgMTYwNSwgMTYxMSwgMTA3MzksIDU4NjY5LCA1ODY3NywgNTg2ODQsIAorICAgIDU4Njg4LCA1ODY5NCwgNTg2OTksIDMwOTUyLCA1ODcwNCwgNTg3MTEsIDU4NzE2LCA1ODcyMCwgNTg3MjQsIDE2MTYsIAorICAgIDE2MzE4LCA1ODczMywgNTg3MzcsIDE2MzI5LCAxMTIwLCA1ODc0MSwgNTg3NDgsIDU4NzUzLCA1ODc1NywgMTYzNTQsIAorICAgIDE2MjAsIDM3MzIxLCA1ODc2MCwgNTg3NjUsIDU4Nzc1LCA1ODc4NCwgNTg3ODksIDU4NzkzLCA1ODc5OSwgMTYyNSwgCisgICAgMzkyMzAsIDU4ODA0LCA1ODgxMywgNTg4MTksIDU4ODI0LCAxMDg5NywgMTA5MDMsIDU4ODMwLCA1ODg0MiwgNTg4NTksIAorICAgIDU4ODc2LCA1ODg5MywgNTg5MTAsIDU4OTI3LCA1ODk0NCwgNTg5NjEsIDU4OTc4LCA1ODk5NSwgNTkwMTIsIDU5MDI5LCAKKyAgICA1OTA0NiwgNTkwNjMsIDU5MDgwLCA1OTA5NywgNTkxMTQsIDU5MTMxLCA1OTE0OCwgNTkxNjUsIDU5MTgyLCA1OTE5OSwgCisgICAgNTkyMTYsIDU5MjMzLCA1OTI1MCwgNTkyNjcsIDU5Mjg0LCA1OTMwMSwgNTkzMTgsIDU5MzM1LCA1OTM1MiwgNTkzNjksIAorICAgIDU5Mzg2LCA1OTQwMywgNTk0MjAsIDU5NDM3LCA1OTQ1NCwgNTk0NzEsIDU5NDg4LCA1OTUwNSwgNTk1MjIsIDU5NTM5LCAKKyAgICA1OTU1NiwgNTk1NzMsIDU5NTkwLCA1OTYwNywgNTk2MjQsIDU5NjQxLCA1OTY1OCwgNTk2NzUsIDU5Njg2LCA1OTY5MSwgCisgICAgMTYzMCwgNTk2OTUsIDU5NzAxLCA1OTcwNiwgNTk3MTEsIDkzMTksIDE2MzUsIDU5NzE3LCA1OTcyNiwgMjc3MTAsIDU5NzMxLCAKKyAgICA1OTc0MiwgNTk3NTIsIDU5NzU3LCA1OTc2NCwgNTk3NzAsIDU5Nzc1LCA1OTc4MCwgMTY2MDYsIDU5Nzg0LCAxMDkxNCwgCisgICAgMTY0MCwgMTA5MTksIDU5NzkwLCA1OTc5NSwgNTk4MDEsIDU5ODA2LCA1OTgxMSwgNTk4MTYsIDU5ODIxLCA1OTgyNiwgCisgICAgNTk4MzEsIDU5ODM2LCA1OTg0MiwgNTk4NDgsIDU5ODU0LCA1OTg1OSwgNTk4NjMsIDU5ODY4LCA1OTg3MywgNTk4NzcsIAorICAgIDU5ODgyLCA1OTg4NywgNTk4OTIsIDU5ODk2LCA1OTkwMSwgNTk5MDcsIDU5OTEyLCA1OTkxNywgNTk5MjEsIDU5OTI2LCAKKyAgICA1OTkzMSwgNTk5MzcsIDU5OTQyLCA1OTk0NywgNTk5NTMsIDU5OTU5LCA1OTk2NCwgNTk5NjgsIDU5OTczLCA1OTk3OCwgCisgICAgNTk5ODMsIDU5OTg3LCA1OTk5MiwgNTk5OTcsIDYwMDAyLCA2MDAwOCwgNjAwMTQsIDYwMDE5LCA2MDAyMywgNjAwMjcsIAorICAgIDYwMDMyLCA2MDAzNywgNjAwNDIsIDI5MTA4LCA2MDA0NiwgNjAwNTEsIDYwMDU2LCA2MDA2MiwgNjAwNjcsIDYwMDcyLCAKKyAgICA2MDA3NiwgNjAwODEsIDYwMDg2LCA2MDA5MiwgNjAwOTcsIDYwMTAyLCA2MDEwOCwgNjAxMTQsIDYwMTE5LCA2MDEyMywgCisgICAgNjAxMjgsIDYwMTMzLCA2MDEzNywgNjAxNDIsIDYwMTQ3LCA2MDE1MiwgNjAxNTgsIDYwMTY0LCA2MDE2OSwgNjAxNzMsIAorICAgIDYwMTc4LCA2MDE4MywgNjAxODcsIDYwMTkyLCA2MDE5NywgNjAyMDIsIDYwMjA2LCA2MDIwOSwgMzE2MTQsIDYwMjE0LCAKKyAgICA2MDIyMiwgMTY2NzIsIDM2NjMsIDExMDEwLCA2MDIyOCwgNjAyMzgsIDYwMjUzLCAxMTAxNSwgNjAyNjQsIDYwMjY5LCAKKyAgICA2MDI4MCwgNjAyOTIsIDYwMzA0LCA2MDMxNiwgMjY5NSwgNjAzMjgsIDYwMzMzLCA2MDM0NSwgNjAzNDksIDYwMzU1LCAKKyAgICA2MDM2MSwgNjAzNjYsIDE2NTIsIDEwNjcsIDYwMzc1LCA2MDM4MCwgMzkyODAsIDYwMzg0LCA2MDM4OCwgNjAzOTMsIAorICAgIDYwMzk3LCAxNjc1NywgNjA0MDIsIDYwNDA1LCA2MDQxMywgNjA0MjEsIDE2NTYsIDExMDQwLCAxMTA0NiwgMTY2MSwgCisgICAgNjA0MjksIDYwNDM2LCA2MDQ0MSwgNjA0NTAsIDYwNDYwLCA2MDQ2NywgNjA0NzIsIDYwNDc3LCAxNjY2LCA2MDQ4NCwgCisgICAgNjA0ODksIDE2ODcyLCA2MDQ5MywgNjA0OTgsIDYwNTA1LCA2MDUxMSwgNjA1MTUsIDYwNTI2LCA2MDUzNiwgMTY4OTQsIAorICAgIDkyMjcsIDkyMzQsIDE2NzEsIDYwNTQzLCA2MDU0OSwgNjA1NTcsIDYwNTY0LCA2MDU3MCwgNjA1NzcsIDYwNTg5LCA2MDU5NSwgCisgICAgNjA2MDAsIDYwNjEyLCA2MDYyMywgNjA2MzIsIDYwNjQyLCAzNzQwLCAzMDc4OCwgMzA3OTcsIDE2OTM0LCAxNjc2LCAxNjgwLCAKKyAgICA2MDY1MCwgNjA2NjEsIDYwNjY2LCAxNjgzLCA2MDY3NCwgNjA2NzksIDE2OTg1LCA2MDY5MSwgNjA2OTcsIDYwNzAyLCAKKyAgICA2MDcxMCwgMTY4OCwgNjA3MTUsIDYwNzIwLCA2MDcyOCwgNjA3MzYsIDYwNzQzLCA2MDc1MiwgNjA3NjAsIDYwNzY5LCAKKyAgICAxNjkzLCA2MDc3MywgMTY5OCwgNjA3NzgsIDYwNzg1LCAxNzA1OSwgNjA3OTMsIDYwNzk5LCA2MDgwNCwgNjA4MTIsIAorICAgIDYwODE5LCA2MDgyNywgMjI1NTcsIDYwODMyLCAxMTE3NSwgNjA4NDEsIDYwODQ3LCA2MDg1NCwgNjA4NjEsIDYwODY3LCAKKyAgICA2MDg3NywgNjA4ODMsIDYwODg4LCA2MDg5OSwgNjA5MDQsIDYwOTEyLCAxMTE4NCwgMTExODksIDYwOTIwLCA2MDkyNiwgCisgICAgNjA5MzQsIDM4MDUsIDE3MTAxLCAzOTM2OCwgNjA5MzksIDYwOTQ1LCA2MDk1MCwgNjA5NTgsIDYwOTY1LCAxMjAyOSwgCisgICAgNjA5NzAsIDYwOTc2LCAxNzA5LCA2MDk4MSwgNjA5ODQsIDExMjcsIDYwOTkwLCA2MDk5NSwgNjEwMDAsIDYxMDA2LCAKKyAgICA2MTAxMSwgNjEwMTYsIDYxMDIxLCA2MTAyNiwgNjEwMzEsIDYxMDM2LCAxNzE4LCA5LCA2MTA0MiwgNjEwNDYsIDYxMDUxLCAKKyAgICA2MTA1NSwgNjEwNTksIDYxMDYzLCAzMTg1NCwgNjEwNjgsIDYxMDczLCA2MTA3OCwgNjEwODIsIDYxMDg1LCA2MTA4OSwgCisgICAgNjEwOTMsIDYxMDk4LCA2MTEwMiwgNjExMDcsIDYxMTExLCAzNDU5MSwgMzQ1OTYsIDM0NjAxLCA2MTExNCwgNjExMjEsIAorICAgIDYxMTI3LCAzOTA4OSwgNjExMzcsIDM0NjA3LCAzMjExMiwgMzE4NjksIDMxODc1LCAzNDYyMywgMzE4ODEsIDYxMTQyLCAKKyAgICA2MTE0NywgMzIxNDUsIDYxMTUxLCA2MTE1NCwgNjExNTgsIDYxMTY1LCA2MTE2OCwgNjExNzMsIDYxMTc3LCA2MTE4MSwgCisgICAgNjExODQsIDYxMTk0LCA2MTIwNiwgNjEyMTMsIDYxMjE5LCA2MTIyNiwgMzM1NDgsIDYxMjI5LCA4NTQzLCA4NzcsIDYxMjMyLCAKKyAgICA2MTIzNiwgNjEyNDEsIDM2OTAsIDYxMjQ1LCA2MTI0OCwgMTM2MjUsIDYxMjU1LCA2MTI2MiwgNjEyNzUsIDYxMjgzLCAKKyAgICA2MTI5MiwgNjEzMDEsIDYxMzA2LCA2MTMxNiwgNjEzMjksIDYxMzQxLCA2MTM0OCwgNjEzNTMsIDYxMzYyLCA2MTM3NSwgCisgICAgMzYwMzUsIDYxMzkzLCA2MTM5OCwgNjE0MDUsIDYxNDExLCA2NTIsIDYxNDE2LCA2MTQyNCwgNjE0MzEsIDI3MjU0LCA2MjcsIAorICAgIDYxNDM3LCA2MTQ0MywgNjE0NTMsIDYxNDU5LCA2MTQ2NCwgMzE4OTksIDYwMDMsIDMxOTEzLCA2MTQ2OCwgNjE0NzgsIAorICAgIDYxNDgzLCA2MTQ5MywgNjE1MDgsIDYxNTE0LCA2MTUyMCwgMzE5MjMsIDYxNTI1LCAzMTA2OSwgNjE1MjksIDYxNTM0LCAKKyAgICA2MTUzOSwgNjE1NDMsIDYxNTQ4LCAxNjkzNywgNjE1NTUsIDYxNTYwLCA2MTU2NCwgNjA0NCwgMzE5NDksIDYxNTY4LCAKKyAgICA2MTU3NCwgMzEyLCA2MTU4NCwgNjE1OTEsIDYxNTk4LCA2MTYwMywgNjE2MTIsIDU4NzY5LCA2MTYxOCwgNjE2MjYsIAorICAgIDYxNjMwLCA2MTYzNCwgNjE2MzgsIDYxNjQyLCA2MTY0NywgNjE2NTEsIDYxNjU3LCA2MTY2NSwgNjE2NzAsIDYxNjc1LCAKKyAgICA2MTY3OSwgNjE2ODQsIDYxNjg4LCA2MTY5MiwgNjE2OTgsIDYxNzA0LCA2MTcwOSwgNjE3MTMsIDMyMDczLCA2MTcxOCwgCisgICAgMzIwNzksIDMyMDg1LCA2MTcyMywgNjE3MjksIDYxNzM2LCA2MTc0MSwgNjE3NDUsIDMxMDg2LCAxNjU5OSwgNjE3NDgsIAorICAgIDYxNzUyLCA2MTc1NywgNjE3NjQsIDYxNzcwLCA2MTc3NCwgNjE3NzksIDM4Nzk5LCA2MTc4NSwgNjE3ODksIDYxNzkzLCAKKyAgICA2MTc5OCwgNjE4MDQsIDYxODEwLCA2MTgyMiwgNjE4MzEsIDYxODQxLCA2MTg0NywgNjE4NTQsIDYxODU5LCA2MTg2NCwgCisgICAgNjE4NjgsIDYxODcxLCA2MTg3NywgNjE4ODQsIDYxODg5LCA2MTg5NCwgNjE5MDEsIDYxOTA4LCA2MTkxNCwgNjE5MTksIAorICAgIDYxOTI0LCA2MTkzMiwgMzIwOTAsIDI0MjMsIDYxOTM3LCA2MTk0MiwgNjE5NDgsIDYxOTUzLCA2MTk1OSwgNjE5NjQsIAorICAgIDYxOTY5LCA2MTk3NCwgNjE5ODAsIDMyMTExLCA2MTk4NSwgNjE5OTEsIDYxOTk3LCA2MjAwMywgMzIxNzUsIDYyMDA4LCAKKyAgICA2MjAxMywgNjIwMTgsIDMyMTg2LCA2MjAyMywgNjIwMjgsIDYyMDMzLCA2MjAzOSwgNjIwNDUsIDMyMTkxLCA2MjA1MCwgCisgICAgNjIwNTUsIDYyMDYwLCAzMjI0NiwgMzIyNTIsIDYyMDY1LCA2MjA3MCwgMzIyNTcsIDYyMDc1LCAyNzkzNywgMzIyNzksIAorICAgIDMyMjgzLCA2MjA4MCwgNjIwNTYsIDYyMDg0LCA2MjA5MiwgNjIwOTgsIDYyMTA2LCA2MjExMywgNjIxMTksIDYyMTI5LCAKKyAgICA2MjEzNSwgNjIxNDIsIDEwNjI0LCAzMjI5NywgNjIxNDgsIDYyMTYxLCA2MjE3MCwgNjIxNzYsIDYyMTg1LCA2MjE5MSwgCisgICAgMjM0OTUsIDYyMTk4LCA2MjIwNSwgNjIyMTUsIDMyMjQ3LCA2MjIxOCwgNjIyMjUsIDYyMjMwLCA2MjIzNCwgNjIyMzgsIAorICAgIDYyMjQzLCA2MTIwLCA2MjI0NywgNjIyNTIsIDYyMjU3LCAzNDY4NSwgMzQ2OTAsIDYyMjYxLCAzNDcwNCwgNjIyNjYsIAorICAgIDM0NzA5LCA2MjI3MSwgNjIyNzcsIDM0NzIxLCAzNDcyNywgMzQ3MzMsIDYyMjgyLCA2MjI4OCwgMjI1MjIsIDYyMjk5LCAKKyAgICA2MjMwMiwgNjIzMTQsIDYyMzIyLCAzMjMyMCwgNjIzMjYsIDYyMzM1LCA2MjM0NSwgNjIzNTQsIDMyMzMwLCA2MjM1OSwgCisgICAgNjIzNjYsIDYyMzc1LCA2MjM4MSwgNjIzODksIDYyMzk2LCA2MDk1LCA0Mzk3LCA2MjQwMSwgMzIyNTgsIDYyNDA3LCAKKyAgICA2MjQxMCwgNjI0MTYsIDYyNDIzLCA2MjQyOCwgNjI0MzMsIDIzNDA1LCA2MjQzNywgNjI0NDMsIDYyNDQ5LCA2MjQ1NCwgCisgICAgNjI0NTksIDYyNDYzLCA2MjQ2OSwgNjI0NzUsIDMzNDU4LCA4NjMsIDM1Njk4LCAzNjYxOSwgMzY2MjUsIDMyMzY2LCAKKyAgICA2MjQ4MCwgNjI0ODQsIDYyNDg4LCA2MjQ5MSwgNjI1MDQsIDYyNTEwLCA2MjUxNCwgNjI1MTcsIDYyNTIyLCAzMzc2MSwgCisgICAgNjI1MjYsIDMxMDkxLCAyMTI3NCwgNjI1MzIsIDYwMjQsIDYwMzIsIDkwNjgsIDYyNTM1LCA2MjU0MCwgNjI1NDUsIDYyNTUwLCAKKyAgICA2MjU1NSwgNjI1NjAsIDYyNTY1LCA2MjU3MCwgNjI1NzUsIDYyNTgwLCA2MjU4NiwgNjI1OTEsIDYyNTk2LCA2MjYwMiwgCisgICAgNjI2MDcsIDYyNjEyLCA2MjYxNywgNjI2MjIsIDYyNjI3LCA2MjYzMiwgNjI2MzgsIDYyNjQzLCA2MjY0OSwgNjI2NTQsIAorICAgIDYyNjU5LCA2MjY2NCwgNjI2NjksIDYyNjc0LCA2MjY3OSwgNjI2ODQsIDYyNjg5LCA2MjY5NCwgNjI2OTksIDYyNzA1LCAKKyAgICA2MjcxMCwgNjI3MTUsIDYyNzIwLCA2MjcyNSwgNjI3MzAsIDYyNzM1LCA2Mjc0MSwgNjI3NDYsIDYyNzUxLCA2Mjc1NiwgCisgICAgNjI3NjEsIDYyNzY2LCA2Mjc3MSwgNjI3NzYsIDYyNzgxLCA2Mjc4NiwgNjI3OTIsIDYyNzk3LCA2MjgwMiwgNjI4MDcsIAorICAgIDYyODEyLCA2MjgxOCwgNjI4MjQsIDYyODI5LCA2MjgzNSwgNjI4NDAsIDYyODQ1LCA2Mjg1MCwgNjI4NTUsIDYyODYwLCAKKyAgICAxNTEzLCAyNDUsIDYyODY1LCA2Mjg2OSwgNjI4NzMsIDYyODc3LCAyNTExNiwgNjI4ODEsIDYyODg1LCA2Mjg5MCwgNjI4OTQsIAorICAgIDYyODk5LCA2MjkwMywgNjI5MDgsIDYyOTEzLCA2MjkxOCwgNjI5MjIsIDYyOTI2LCA2MjkzMSwgNjI5MzUsIDEzMzYyLCAKKyAgICA2Mjk0MCwgNjI5NDQsIDYyOTUxLCA2Mjk2MSwgMTUxOTMsIDYyOTcwLCA2Mjk3OSwgNjI5ODMsIDYyOTg4LCA2Mjk5MywgCisgICAgNjI5OTcsIDI0OTA3LCAzMDE5LCA2MzAwMSwgMTczNTAsIDYzMDA3LCA2MzAxNiwgNjMwMjQsIDYzMDMwLCA2MzA0MiwgCisgICAgNjMwNTQsIDYzMDU4LCA2MzA2MywgNjMwNjcsIDYzMDczLCA2MzA3OSwgNjMwODQsIDYzMDk0LCA2MzEwNCwgNjMxMTAsIAorICAgIDYzMTE1LCA2MzExOSwgNjMxMjQsIDYzMTMwLCA2MzEzOSwgNjMxNDgsIDYzMTU2LCAxNTU0NywgNjMxNjAsIDYzMTY5LCAKKyAgICA2MzE3NywgNjMxODksIDYzMjAwLCA2MzIxMSwgNjMyMjAsIDYzMjI0LCA2MzIzMywgNjMyNDMsIDYzMjUxLCA2MzI1NywgCisgICAgNjMyNjIsIDYzMjY4LCA2MzI3MywgOTgsIDMwOTAwLCA2MzI4NCwgMjYyNDksIDI2MjU5LCA2MzI5MCwgNjMyOTcsIDYzMzAzLCAKKyAgICA2MzMwNywgNjMzMTcsIDYzMzI4LCA2MzMzNiwgNjMzNDUsIDYzMzUwLCA2MzM1NSwgNjMzNTksIDE3MzA0LCA2MzM2NywgCisgICAgNjMzNzEsIDYzMzc3LCA2MzM4NywgNjMzOTQsIDYzNDAwLCAzNDc4NCwgNjM0MDYsIDYzNDA4LCA2MzQxMSwgNjM0MTUsIAorICAgIDYzNDI1LCA2MzQzMSwgNjM0MzgsIDEzMzA4LCA2MzQ0NSwgNjM0NTEsIDYzNDYwLCA2MzQ2OSwgNjM0NzUsIDYzNDgxLCAKKyAgICA2MzQ4NywgNjM0OTIsIDYzNDk5LCA2MzUwNiwgNjM1MTIsIDYzNTI1LCA2MzUzNCwgNjM1NDMsIDYzNTQ4LCA2MzU1MiwgCisgICAgNjM1NTgsIDYzNTY1LCA2MzU3MiwgNjM1NzksIDYzNTg2LCA2MzU5MywgNjM1OTgsIDYzNjAyLCA2MzYwNiwgNjM2MDksIAorICAgIDYzNjE5LCA2MzYyMywgNjM2MzUsIDYzNjQ0LCA2MzY0OCwgNjM2NTMsIDYzNjU3LCA2MzY2MywgNjM2NjgsIDYzNjc1LCAKKyAgICA2MzY4NCwgNjM2OTIsIDYzNzAwLCA2MzcwNSwgNjM3MDksIDYzNzE0LCA2MzcxOSwgNjM3MjksIDYzNzM3LCA2Mzc0MiwgCisgICAgNjM3NDYsIDYzNzUwLCA2Mzc1NiwgNjM3NjgsIDYzNzc2LCA2Mzc4NiwgNjM3OTMsIDYzNzk5LCA2MzgwNCwgNjM4MDgsIAorICAgIDYzODEyLCA2MzgxNiwgNjM4MjUsIDYzODM0LCA2Mzg0MywgNjM4NDksIDYzODU1LCA2Mzg2MSwgNjM4NjYsIDYzODczLCAKKyAgICA2Mzg3OSwgNjM4ODcsIDYzODk0LCAxMjQ1NiwgNjM5MDAsIDYzOTA2LCA2MzkxMCwgMTQyMzEsIDYzOTE0LCA2MzkxOSwgCisgICAgNjM5MjksIDYzOTM4LCA2Mzk0NCwgNjM5NTAsIDYzOTU4LCA2Mzk2NSwgNjM5NjksIDYzOTczLCA2Mzk3OSwgNjM5ODcsIAorICAgIDYzOTk0LCA2NDAwMCwgNjQwMTEsIDY0MDE1LCA2NDAxOSwgNjQwMjMsIDY0MDI2LCA2NDAzMiwgNjQwMzcsIDY0MDQxLCAKKyAgICA2NDA0NSwgNjQwNTQsIDY0MDYyLCA2NDA2OSwgNjQwNzUsIDY0MDgyLCAyNDAyOSwgMzg4NDEsIDY0MDg3LCA2NDA5NSwgCisgICAgNjQwOTksIDY0MTAzLCA2NDEwNiwgNjQxMTQsIDY0MTIxLCA2NDEyNywgNjQxMzYsIDY0MTQ0LCA2NDE1MCwgNjQxNTUsIAorICAgIDY0MTU5LCA2NDE2NCwgNjQxNjgsIDY0MTcyLCA2NDE3NywgNjQxODYsIDY0MTkwLCA2NDE5NywgNjQyMDQsIDY0MjEwLCAKKyAgICA2NDIxOCwgNjQyMjQsIDY0MjM1LCA2NDI0MywgNjQyNDksIDIyNjUyLCA2NDI1OCwgNjQyNjUsIDY0MjcyLCA2NDI3OSwgCisgICAgNjQyODYsIDY0MjkzLCA0MTg3MCwgMTMxNDYsIDY0MzAwLCA2NDMwNywgNjQzMTIsIDM0ODIwLCA2MjE3LCA2NDMxOCwgCisgICAgNjQzMjMsIDY0MzI4LCA2NDMzNCwgNjQzNDAsIDY0MzQ2LCA2NDM1MSwgNjQzNTYsIDY0MzYxLCA2NDM2NiwgNjQzNzIsIAorICAgIDY0Mzc3LCA2NDM4MywgNjQzODgsIDY0Mzk0LCA2NDM5OSwgNjQ0MDQsIDY0NDA5LCA2NDQxNCwgNjQ0MTksIDY0NDI0LCAKKyAgICA2NDQyOSwgNjQ0MzUsIDY0NDQwLCA2NDQ0NiwgNjQ0NTEsIDY0NDU2LCA2NDQ2MSwgNjQ0NjYsIDY0NDcxLCA2NDQ3NiwgCisgICAgNjQ0ODIsIDY0NDg3LCA2NDQ5MiwgNjQ0OTcsIDY0NTAyLCA2NDUwNywgNjQ1MTIsIDY0NTE3LCA2NDUyMiwgNjQ1MjcsIAorICAgIDY0NTMyLCA2NDUzOCwgNjQ1NDMsIDY0NTQ4LCA2NDU1MywgNjQ1NTgsIDY0NTYzLCA2NDU2OCwgNjQ1NzMsIDY0NTc4LCAKKyAgICA2NDU4NCwgNjQ1ODksIDY0NTk0LCA2NDU5OSwgNjQ2MDQsIDY0NjA5LCA2NDYxNCwgNjQ2MTksIDY0NjI0LCA2NDYyOSwgCisgICAgNjQ2MzQsIDY0NjM5LCA2NDY0NCwgNjQ2NTAsIDE4MzQsIDIyNCwgMzc0MTcsIDY0NjU1LCA2NDY1OCwgNjQ2NjMsIDY0NjY3LCAKKyAgICA2NDY3MCwgNjQ2NzUsIDYzNjk2LCA2NDY4NiwgNjQ2OTYsIDY0NzAzLCA2NDcxOSwgNjQ3MjgsIDY0NzM4LCA2NDc0OCwgCisgICAgNjQ3NTYsIDY0NzcwLCA2NDc3OCwgNjQ3ODIsIDY0Nzg1LCA2NDc5MiwgNjQ3OTgsIDY0ODA5LCA2NDgyMSwgNjQ4MzIsIAorICAgIDY0ODQxLCA2NDg0OCwgMTI5NywgMjMyOTQsIDY0ODU4LCAyNTkwLCA2NDg2MiwgNjQ4NzEsIDExMzMsIDE3Mjc3LCAzODA1NCwgCisgICAgNjQ4NzksIDY0ODg3LCA2NDkwMSwgNjQ5MTQsIDY0OTE4LCA2NDkyMywgNjQ5MjgsIDY0OTMzLCA2NDkzOSwgNjQ5NDUsIAorICAgIDY0OTUwLCA4NTM1LCA2NDk1NSwgNjQ5NTksIDY0OTY3LCAxMTA0MSwgNjQ5NzIsIDY0OTc4LCA2NDk4NywgMTcyMSwgCisgICAgMTEwNTMsIDczNiwgNjQ5OTEsIDY1MDAwLCA2NTAxMCwgMjcwMTMsIDY1MDE5LCA2NTAyNSwgMTY4NDksIDY1MDMxLCAKKyAgICA2NTAzNSwgMzk2NCwgMTEzODQsIDY1MDQxLCA2NTA0OCwgNjA2NTYsIDY1MDUyLCA2NTA1NiwgMzk4OCwgMTg5LCAxNDE0NiwgCisgICAgNjUwNjIsIDY1MDc0LCA2NTA3OCwgNjUwODQsIDI3NzMwLCA2NTA4OCwgMTEzNzIsIDI3MzAsIDQsIDY1MDkzLCA2NTEwMywgCisgICAgNjUxMDksIDY1MTIwLCA2NTEyNywgNjUxMzMsIDY1MTM5LCA2NTE0NywgNjUxNTQsIDY1MTYwLCA2NTE3MCwgNjUxODAsIAorICAgIDY1MTkwLCAyMzQ4MiwgMTMwOSwgNjUxOTksIDY1MjAzLCA2NTIwNywgNjUyMTMsIDY1MjE3LCAyNzUzLCAyNzU5LCA4NTMyLCAKKyAgICAyMjY0LCA2NTIyMSwgNjUyMjUsIDY1MjM0LCA2NTI0MiwgNjUyNTMsIDY1MjYxLCA2NTI2OSwgNjUyNzUsIDY1MjgwLCAKKyAgICA2NTI5MSwgNjUzMDIsIDY1MzEwLCA2NTMxNiwgOTY4NywgNjUzMjEsIDY1MzI5LCA2NTMzMywgNjUzMzcsIDY1MzQxLCAKKyAgICA2NTM1MywgMjgxMTUsIDY1MzYwLCA2NTM3MCwgNjUzNzYsIDY1MzgyLCA5Nzg5LCA2NTM5MiwgNjU0MDMsIDY1NDEzLCAKKyAgICA2NTQyMiwgNjU0MjYsIDY1NDMzLCAxMTM1LCAxMTcwLCA2NTQ0MywgNjU0NDgsIDY1NDU2LCA2NTQ2NCwgNjU0NzUsIAorICAgIDY1NDgyLCA2NTQ5NiwgMTQwNzUsIDM5MywgNjU1MDYsIDY1NTEwLCA2NTUxOCwgNjU1MjcsIDY1NTM1LCA2NTU0MSwgCisgICAgNjU1NTUsIDY1NTYyLCA2NTU2OCwgNjU1NzcsIDY1NTg0LCA2NTU5NCwgNjU2MDIsIDM4MTIsIDE1NiwgNjU2MTAsIDY1NjIxLCAKKyAgICA2NTYyNSwgNjU2MzcsIDI3OTI4LCAxNjEsIDY1NjQzLCA2NTY0OCwgNjU2NTIsIDY1NjU5LCA2NTY2NSwgNjU2NzMsIAorICAgIDY1NjgwLCA4ODE4LCA2NTY4NywgNjU2OTYsIDY1NzA0LCAzODc4LCA2NTcxNywgODE5OSwgNjU3MjEsIDI3OTgsIDQ1MCwgCisgICAgNjU3MjYsIDY1NzM5LCA2NTc0NCwgMTgzMywgNjY4LCA2NTc0OCwgMzg5NSwgNjU3NTYsIDY1NzYyLCA2NTc2NiwgOTMxLCAKKyAgICA2NTc3NiwgNjU3ODUsIDY1NzkwLCAxNDkxNSwgMTQ5MjIsIDQ1MjMyLCA2NTc5NCwgMzgyMiwgMTMwMzQsIDY1ODAyLCAKKyAgICA2NTgwOSwgMjM1MzgsIDY1ODEzLCA2NTgyMCwgNjU4MjYsIDY1ODMxLCA2NTgzNiwgMTQ5MzUsIDM3MiwgNjU4NDEsIAorICAgIDY1ODUzLCA2NTg1OSwgNjU4NjcsIDI4MTAsIDE3NTMsIDY1ODc1LCA2NTg3NywgNjU4ODIsIDY1ODg3LCA2NTg5MiwgCisgICAgNjU4OTgsIDY1OTAzLCA2NTkwOCwgNjU5MTMsIDY1OTE4LCA2NTkyMywgNjU5MjgsIDY1OTM0LCA2NTkzOSwgNjU5NDQsIAorICAgIDY1OTQ5LCA2NTk1NCwgNjU5NTksIDY1OTY0LCA2NTk2OSwgNjU5NzQsIDY1OTgwLCA2NTk4NSwgNjU5OTAsIDY1OTk1LCAKKyAgICA2NjAwMSwgNjYwMDYsIDY2MDEyLCA2NjAxNywgNjYwMjIsIDY2MDI3LCA2NjAzMiwgNjYwMzcsIDY2MDQyLCA2NjA0NywgCisgICAgNjYwNTMsIDY2MDU4LCA2NjA2NCwgNjYwNjksIDY2MDc0LCA2NjA3OSwgNjYwODQsIDY2MDg5LCA2NjA5NCwgNjYwOTksIAorICAgIDY2MTA0LCA2NjExMCwgNjYxMTUsIDY2MTIwLCA2NjEyNSwgNjYxMjksIDY2MTMzLCA2NjEzOCwgNjYxNDIsIDY2MTQ3LCAKKyAgICA2NjE1MiwgNjYxNTgsIDY2MTYzLCA2NjE2NywgNjYxNzIsIDY2MTc2LCA2NjE3OSwgNjYxODEsIDY2MTg1LCA2NjE4OCwgCisgICAgNjYxOTMsIDY2MTk3LCA2NjIwMSwgNjYyMDUsIDY2MjA5LCA2NjIxOCwgNjYyMjIsIDMyNTI0LCA2NjIyNSwgMzI1MjksIAorICAgIDY2MjMyLCA2NjIzNywgMzI1MzQsIDY2MjQ2LCA2NjI1NSwgMzI1NDAsIDY2MjYwLCAzMjU0NSwgNjYyNjksIDY2Mjc0LCAKKyAgICAxMTU3MSwgNjYyNzgsIDY2MjgzLCA2NjI4OCwgMzI1NTAsIDY2MjkyLCA0MDE5NiwgNjYyOTYsIDY2Mjk5LCA2NjMwMywgCisgICAgODIxMSwgNjYzMDksIDY2MzE0LCA2NjMxOCwgMzcwNSwgMzI1NTUsIDY2MzIxLCA2NjMyNSwgNjYzMjgsIDY2MzMzLCAKKyAgICA2NjMzNywgNjYzNDMsIDY2MzUxLCA2NjM2NCwgNjYzNzMsIDY2Mzc5LCA2NjM4NCwgNjYzOTAsIDY2Mzk0LCA2NjQwMCwgCisgICAgNjY0MDgsIDY2NDEzLCA2NjQxNywgNjY0MjQsIDY2NDMwLCA2NjQzOCwgNjY0NDcsIDY2NDU1LCAzMjU1OCwgNjY0NjIsIAorICAgIDY2NDcyLCA2NjQ4MSwgNjY0OTQsIDY2NDk5LCA2NjUwNCwgNjY1MTMsIDY2NTE5LCA2NjUyNiwgNjY1MzcsIDY2NTQ5LCAKKyAgICA2NjU1NiwgNjY1NjUsIDY2NTc0LCA2NjU4MywgNjY1OTAsIDY2NTk2LCA2NjYwMywgNjY2MTEsIDY2NjE4LCA2NjYyNiwgCisgICAgNjY2MzUsIDY2NjQzLCA2NjY1MCwgNjY2NTgsIDY2NjY3LCA2NjY3NSwgNjY2ODQsIDY2Njk0LCA2NjcwMywgNjY3MTEsIAorICAgIDY2NzE4LCA2NjcyNiwgNjY3MzUsIDY2NzQzLCA2Njc1MiwgNjY3NjIsIDY2NzcxLCA2Njc3OSwgNjY3ODgsIDY2Nzk4LCAKKyAgICA2NjgwNywgNjY4MTcsIDY2ODI4LCA2NjgzOCwgNjY4NDcsIDY2ODU1LCA2Njg2MiwgNjY4NzAsIDY2ODc5LCA2Njg4NywgCisgICAgNjY4OTYsIDY2OTA2LCA2NjkxNSwgNjY5MjMsIDY2OTMyLCA2Njk0MiwgNjY5NTEsIDY2OTYxLCA2Njk3MiwgNjY5ODIsIAorICAgIDY2OTkxLCA2Njk5OSwgNjcwMDgsIDY3MDE4LCA2NzAyNywgNjcwMzcsIDY3MDQ4LCA2NzA1OCwgNjcwNjcsIDY3MDc3LCAKKyAgICA2NzA4OCwgNjcwOTgsIDY3MTA5LCA2NzEyMSwgNjcxMzIsIDY3MTQyLCA2NzE1MSwgNjcxNTksIDY3MTY2LCA2NzE3NCwgCisgICAgNjcxODMsIDY3MTkxLCA2NzIwMCwgNjcyMTAsIDY3MjE5LCA2NzIyNywgNjcyMzYsIDY3MjQ2LCA2NzI1NSwgNjcyNjUsIAorICAgIDY3Mjc2LCA2NzI4NiwgNjcyOTUsIDY3MzAzLCA2NzMxMiwgNjczMjIsIDY3MzMxLCA2NzM0MSwgNjczNTIsIDY3MzYyLCAKKyAgICA2NzM3MSwgNjczODEsIDY3MzkyLCA2NzQwMiwgNjc0MTMsIDY3NDI1LCA2NzQzNiwgNjc0NDYsIDY3NDU1LCA2NzQ2MywgCisgICAgNjc0NzIsIDY3NDgyLCA2NzQ5MSwgNjc1MDEsIDY3NTEyLCA2NzUyMiwgNjc1MzEsIDY3NTQxLCA2NzU1MiwgNjc1NjIsIAorICAgIDY3NTczLCA2NzU4NSwgNjc1OTYsIDY3NjA2LCA2NzYxNSwgNjc2MjUsIDY3NjM2LCA2NzY0NiwgNjc2NTcsIDY3NjY5LCAKKyAgICA2NzY4MCwgNjc2OTAsIDY3NzAxLCA2NzcxMywgNjc3MjQsIDY3NzM2LCA2Nzc0OSwgNjc3NjEsIDY3NzcyLCA2Nzc4MiwgCisgICAgNjc3OTEsIDY3Nzk5LCA2NzgwNiwgNjc4MTQsIDY3ODIzLCA2NzgzMSwgNjc4NDAsIDY3ODUwLCA2Nzg1OSwgNjc4NjcsIAorICAgIDY3ODc2LCA2Nzg4NiwgNjc4OTUsIDY3OTA1LCA2NzkxNiwgNjc5MjYsIDY3OTM1LCA2Nzk0MywgNjc5NTIsIDY3OTYyLCAKKyAgICA2Nzk3MSwgNjc5ODEsIDY3OTkyLCA2ODAwMiwgNjgwMTEsIDY4MDIxLCA2ODAzMiwgNjgwNDIsIDY4MDUzLCA2ODA2NSwgCisgICAgNjgwNzYsIDY4MDg2LCA2ODA5NSwgNjgxMDMsIDY4MTEyLCA2ODEyMiwgNjgxMzEsIDY4MTQxLCA2ODE1MiwgNjgxNjIsIAorICAgIDY4MTcxLCA2ODE4MSwgNjgxOTIsIDY4MjAyLCA2ODIxMywgNjgyMjUsIDY4MjM2LCA2ODI0NiwgNjgyNTUsIDY4MjY1LCAKKyAgICA2ODI3NiwgNjgyODYsIDY4Mjk3LCA2ODMwOSwgNjgzMjAsIDY4MzMwLCA2ODM0MSwgNjgzNTMsIDY4MzY0LCA2ODM3NiwgCisgICAgNjgzODksIDY4NDAxLCA2ODQxMiwgNjg0MjIsIDY4NDMxLCA2ODQzOSwgNjg0NDgsIDY4NDU4LCA2ODQ2NywgNjg0NzcsIAorICAgIDY4NDg4LCA2ODQ5OCwgNjg1MDcsIDY4NTE3LCA2ODUyOCwgNjg1MzgsIDY4NTQ5LCA2ODU2MSwgNjg1NzIsIDY4NTgyLCAKKyAgICA2ODU5MSwgNjg2MDEsIDY4NjEyLCA2ODYyMiwgNjg2MzMsIDY4NjQ1LCA2ODY1NiwgNjg2NjYsIDY4Njc3LCA2ODY4OSwgCisgICAgNjg3MDAsIDY4NzEyLCA2ODcyNSwgNjg3MzcsIDY4NzQ4LCA2ODc1OCwgNjg3NjcsIDY4Nzc3LCA2ODc4OCwgNjg3OTgsIAorICAgIDY4ODA5LCA2ODgyMSwgNjg4MzIsIDY4ODQyLCA2ODg1MywgNjg4NjUsIDY4ODc2LCA2ODg4OCwgNjg5MDEsIDY4OTEzLCAKKyAgICA2ODkyNCwgNjg5MzQsIDY4OTQ1LCA2ODk1NywgNjg5NjgsIDY4OTgwLCA2ODk5MywgNjkwMDUsIDY5MDE2LCA2OTAyOCwgCisgICAgNjkwNDEsIDY5MDUzLCA2OTA2NiwgNjkwODAsIDY5MDkzLCA2OTEwNSwgNjkxMTYsIDY5MTI2LCA2OTEzNSwgNjkxNDMsIAorICAgIDY5MTUwLCA2OTE1NSwgODA1OCwgNjkxNjIsIDMyNTY4LCA2OTE2NywgNjkxNzIsIDMyNTczLCA2OTE3OCwgMjA5MTYsIAorICAgIDMyNTc4LCA2OTE4MywgNjkxODksIDY5MTk3LCA2OTIwMywgNjkyMDksIDY5MjE2LCA2OTIyMywgNjkyMjgsIDY5MjMyLCAKKyAgICA2OTIzNSwgNjkyMzksIDY5MjQ4LCA2OTI1NCwgNjkyNjYsIDY5Mjc3LCA2OTI4MSwgMzA4MSwgODAzMywgNjkyODYsIAorICAgIDY5Mjg5LCA2OTI5MSwgNjkyOTUsIDY5Mjk5LCA2OTMwMywgNjkzMDksIDY5MzE0LCAyNTkyNywgNjkzMTksIDY5MzIzLCAKKyAgICA2OTMyNiwgNjkzMzEsIDY5MzM1LCA2OTM0MiwgNjkzNDgsIDY5MzUyLCA2MTcwLCA2OTM1NiwgMzI1OTUsIDY5MzYxLCAKKyAgICA2OTM2OCwgNjkzNzcsIDY5Mzg1LCA2OTM5NiwgNjk0MDQsIDY5NDEyLCA2OTQxOSwgNjk0MjYsIDY5NDMyLCA2OTQ0MywgCisgICAgMzI2MDAsIDY5NDQ4LCA2OTQ1OSwgNjk0NzEsIDY5NDc5LCA2OTQ5MCwgNjk0OTksIDY5NTEwLCA2OTUxNSwgNjk1MjMsIAorICAgIDI1NTYsIDY5NTI4LCAzNDI3MCwgNjk1NDEsIDY5NTQ1LCA2OTU1NywgNjk1NjUsIDY5NTcwLCA2OTU3OCwgMTc0NzIsIAorICAgIDY5NTg5LCA2OTU5NSwgNjk2MDIsIDY5NjEwLCA2OTYxNiwgMzI2MTAsIDY5NjIxLCAzOTE0LCA1ODIxNywgNjk2MjgsIAorICAgIDY5NjMxLCA2OTYzOSwgNjk2NTIsIDY5NjY1LCA2OTY3OCwgNjk2OTEsIDY5Njk4LCA2OTcwOSwgNjk3MTgsIDQxNjg3LCAKKyAgICA0MTY5MiwgNjk3MjMsIDY5NzI3LCA2OTczNSwgNjk3NDIsIDY5NzUxLCA2OTc1OSwgNjk3NjUsIDY5Nzc0LCA2OTc4MiwgCisgICAgNjk3OTAsIDY5Nzk0LCA2OTgwMywgNjk4MTIsIDY5ODIyLCA2OTgzNSwgNjk4NDgsIDY5ODU4LCAzMjYxNSwgNjk4NjQsIAorICAgIDY5ODcxLCA2OTg3NywgMzI2MjEsIDY5ODgyLCA2OTg4NSwgNjk4ODksIDY5ODk3LCA2OTkwNiwgNDE0MjUsIDY5OTE0LCAKKyAgICA2OTkyMywgNjk5MzEsIDY5OTM4LCA2OTk0NiwgNjk5NTYsIDY5OTY1LCA2OTk3NCwgNjk5ODMsIDY5OTkxLCA3MDAwMiwgCisgICAgNzAwMTIsIDkzNTksIDIxNTU0LCA3MDAyMSwgNzAwMjYsIDcwMDMxLCA3MDAzNSwgNzAwMzksIDcwMDQ0LCA3MDA1MCwgCisgICAgNzAwNTUsIDcwMDYwLCA3MDA2NiwgNzAwNzEsIDcwMDc2LCAyMTUxOSwgNzAwODEsIDcwMDg4LCA3MDA5NiwgNzAxMDQsIAorICAgIDcwMTA5LCA3MDExNiwgNzAxMjMsIDcwMTI4LCA3MDEzMiwgNzAxMzYsIDcwMTQ0LCA3MDE1MiwgMzI2MzgsIDcwMTU4LCAKKyAgICA3MDE2NCwgNzAxNzYsIDcwMTgyLCA3MDE4NiwgNzAxOTMsIDcwMTk4LCA3MDIwOSwgNzAyMTksIDcwMjI5LCA3MDI0MSwgCisgICAgNzAyNDcsIDcwMjU3LCA3MDI2NywgMzI2NjUsIDcwMjc2LCA3MDI4NSwgNzAyOTEsIDcwMzAzLCA3MDMxNCwgNzAzMjEsIAorICAgIDcwMzI2LCA3MDMzMCwgNzAzMzgsIDcwMzQ0LCA3MDM0OSwgNzAzNTQsIDcwMzYxLCA3MDM2OSwgNzAzODEsIDcwMzkxLCAKKyAgICA3MDQwMCwgNzA0MDksIDcwNDE2LCAzNDEzMiwgMjM4MzQsIDcwNDIyLCA3MDQyNywgNzA0MzEsIDcwNDM1LCA3MDQ0MCwgCisgICAgNzA0NDYsIDcwNDU3LCA3MDQ3MCwgNzA0NzUsIDcwNDgyLCAzMjY3MCwgNzA0ODcsIDcwNDk5LCA3MDUwOCwgNzA1MTgsIAorICAgIDcwNTI5LCA3MDU0MiwgNzA1NDksIDcwNTU4LCA3MDU2NywgNzA1NzUsIDcwNTgwLCA3MDU4NiwgMTA1OCwgNzA1OTEsIAorICAgIDcwNTk2LCA3MDYwMSwgNzA2MDYsIDcwNjEyLCA3MDYxNywgNzA2MjIsIDcwNjI4LCA3MDYzNCwgNzA2MzksIDcwNjQzLCAKKyAgICA3MDY0OCwgNzA2NTMsIDcwNjU4LCA1ODcyOSwgNzA2NjMsIDcwNjY4LCA3MDY3MywgNzA2NzgsIDcwNjg0LCA3MDY5MCwgCisgICAgNzA2OTUsIDcwNjk5LCA3MDcwNCwgNzA3MDksIDcwNzE0LCA3MDcyMCwgNzA3MjUsIDcwNzMxLCA3MDczNiwgNzA3NDEsIAorICAgIDcwNzQ2LCA3MDc1MSwgNzA3NTUsIDcwNzYxLCA3MDc2NiwgNzA3NzUsIDcwNzgwLCA3MDc4NSwgNzA3OTAsIDcwNzk1LCAKKyAgICA3MDc5OSwgNzA4MDYsIDcwODEyLCAxNzEyMiwgMTcxMjksIDcwODE3LCA3MDgyMSwgNzA4MjUsIDcwODI5LCA3MDgzMywgCisgICAgNDU0ODcsIDcwODM3LCA3MDc2NywgNzA4MzksIDcwODQ5LCAzMjY3OSwgNzA4NTIsIDcwODYxLCA3MDg2NywgNjE0MywgCisgICAgMzI2ODQsIDcwODcxLCA3MDg3NywgNzA4ODIsIDcwODg4LCA3MDg5MywgNzA4OTcsIDcwOTA0LCA3MDkwOSwgNzA5MTksIAorICAgIDcwOTI4LCA3MDkzMiwgNzA5MzgsIDcwOTQ0LCA3MDk1MCwgNzA5NTQsIDcwOTYyLCA3MDk2OSwgNzA5NzcsIDcwOTg1LCAKKyAgICAzMjY4OSwgNzA5OTIsIDcwOTk1LCA3MTAwMiwgNzEwMDgsIDcxMDEzLCA3MTAxNywgNzEwMjMsIDcxMDMwLCA3MTAzNSwgCisgICAgNzEwMzksIDcxMDQ4LCA3MTA1NiwgNzEwNjIsIDcxMDY3LCAzMjY5NCwgNzEwNzQsIDcxMDgxLCA3MTA4NywgNzEwOTIsIAorICAgIDcxMDk4LCA3MTEwNSwgNzExMTEsIDIxMjgxLCAyNzQzOCwgNzExMTcsIDcxMTIyLCA3MTEyOCwgNzExNDAsIDcwODAwLCAKKyAgICA3MDgwNywgMjE0NTcsIDcxMTUwLCA3MTE1NSwgNzExNjIsIDcxMTY4LCA3MTE3NSwgNzExODEsIDcxMTkyLCA3MTE5NywgCisgICAgOTEwMywgNzEyMDUsIDcxMjA4LCA3MTIxNCwgNzEyMTgsIDcxMjIyLCA3MTIyNSwgNzEyMzEsIDMyNDQzLCA2MTk0LCA5NjQsIAorICAgIDEzNDEyLCA3MTIzOCwgNzEyNDQsIDcxMjUwLCA3MTI1NiwgNzEyNjIsIDcxMjY4LCA3MTI3NCwgNzEyODAsIDcxMjg2LCAKKyAgICA3MTI5MSwgNzEyOTYsIDcxMzAxLCA3MTMwNiwgNzEzMTEsIDcxMzE2LCA3MTMyMSwgNzEzMjYsIDcxMzMxLCA3MTMzNiwgCisgICAgNzEzNDEsIDcxMzQ2LCA3MTM1MSwgNzEzNTcsIDcxMzYyLCA3MTM2NywgNzEzNzMsIDcxMzc4LCA3MTM4MywgNzEzODksIAorICAgIDcxMzk1LCA3MTQwMSwgNzE0MDcsIDcxNDEzLCA3MTQxOSwgNzE0MjUsIDcxNDMxLCA3MTQzNywgNzE0NDIsIDcxNDQ3LCAKKyAgICA3MTQ1MywgNzE0NTgsIDcxNDYzLCA3MTQ2OSwgNzE0NzQsIDcxNDc5LCA3MTQ4NCwgNzE0ODksIDcxNDk0LCA3MTQ5OSwgCisgICAgNzE1MDQsIDcxNTA5LCA3MTUxNCwgNzE1MTksIDcxNTI0LCA3MTUyOSwgNzE1MzUsIDcxNTQwLCA3MTU0NSwgNzE1NTAsIAorICAgIDcxNTU2LCA3MTU2MSwgNzE1NjYsIDcxNTcxLCA3MTU3NiwgNzE1ODIsIDcxNTg3LCA3MTU5MiwgNzE1OTcsIDcxNjAyLCAKKyAgICA3MTYwNywgNzE2MTIsIDcxNjE3LCA3MTYyMiwgNzE2MjcsIDcxNjMyLCA3MTYzNywgNzE2NDIsIDcxNjQ3LCA3MTY1MiwgCisgICAgNzE2NTcsIDcxNjYyLCA3MTY2NywgNzE2NzIsIDcxNjc3LCA3MTY4MywgNzE2ODgsIDcxNjkzLCA3MTY5OCwgNzE3MDMsIAorICAgIDcxNzA4LCA3MTcxMywgNzE3MTgsIDE4NjQsIDE0MiwgNzE3MjMsIDcxNzI3LCA3MTczMSwgNzE3MzYsIDcxNzQ0LCA3MTc0OCwgCisgICAgNzE3NTUsIDcxNzYzLCA3MTc2NywgNzE3ODAsIDcxNzg4LCA3MTc5MiwgNzE3OTUsIDcxODAwLCA3MTgwNCwgNzE4MDksIAorICAgIDcxODEzLCA3MTgyMSwgNzE4MjUsIDIwOTI0LCA3MTgzMCwgNzE4MzQsIDYwOTMwLCA3MTgzOCwgNzE4NDEsIDcxODQ5LCAKKyAgICA3MTg1NywgNzE4NjUsIDcxODcwLCA3MTg3NywgNzE4ODMsIDcxODg5LCA3MTg5NCwgNzE5MDEsIDcxOTA2LCA3MTkxNCwgCisgICAgNjQ5MDYsIDcxOTIxLCA3MTkyNiwgNzE5MzEsIDcxOTM1LCAxMTYzOCwgNzE5MzksIDcxOTQ0LCA3MTk0OSwgNzE5NTMsIAorICAgIDcxOTU2LCA3MTk2MiwgNzE5NjYsIDcxOTc2LCA3MTk4NSwgNzE5ODgsIDcxOTkyLCA3MTk5OSwgNzIwMTIsIDcyMDE4LCAKKyAgICA3MjAyNiwgNzIwMzcsIDcyMDQ4LCA3MjA1OSwgNzIwNzAsIDcyMDc5LCA3MjA4NSwgNzIwOTQsIDcyMTAyLCA3MjExMiwgCisgICAgNzIxMjUsIDcyMTMyLCA3MjE0MywgNzIxNDksIDcyMTU0LCA3MjE1OSwgNzIxNjUsIDcyMTcxLCA3MjE4MSwgNzIxOTAsIAorICAgIDcwNDg5LCA3MjE5OCwgNzIyMDQsIDcyMjEyLCA3MjIxOCwgNzIyMjYsIDcyMjI5LCA3MjIzMywgNzIyMzcsIDcyMjQwLCAKKyAgICA3MjI0NiwgNzIyNTIsIDcyMjYwLCA3MjI3MiwgNzIyODQsIDcyMjkxLCA3MjI5NSwgNzIzMDYsIDcyMzE0LCA3MjMyMSwgCisgICAgNzIzMzMsIDcyMzQxLCA3MjM0OSwgNzIzNTYsIDcyMzYyLCA3MjM3MiwgNzIzODEsIDcyMzg2LCA3MjM5NiwgNzI0MDUsIAorICAgIDQwNzUxLCA3MjQxMiwgNzI0MTYsIDcyNDIxLCA3MjQyOSwgNzI0MzYsIDcyNDQyLCA3MjQ0NiwgNzI0NTYsIDcyNDY3LCAKKyAgICA3MjQ3NSwgNzI0ODIsIDcyNDk0LCA3MjUwNiwgNzI1MTUsIDY5NTMxLCA3MjUyMiwgNzI1MzMsIDcyNTQ3LCA3MjU1NSwgCisgICAgNzI1NjUsIDcyNTcyLCA3MjU4MCwgNzI1OTIsIDcyNjAxLCA3MjYwOSwgNzI2MTksIDcyNjMwLCA3MjY0MiwgNzI2NTEsIAorICAgIDcyNjYxLCA3MjY2OCwgNzI2NzcsIDcyNjkyLCA3MjcwMCwgNzI3MTAsIDcyNzE5LCA3MjcyNywgNzI3NDAsIDcyNzU1LCAKKyAgICA3Mjc1OSwgNzI3NjgsIDcyNzgwLCA3Mjc5MSwgNzI4MDIsIDcyODEzLCA3MjgyMywgNzI4MzQsIDcyODQyLCA3Mjg0OCwgCisgICAgNzI4NTgsIDcyODY2LCA3Mjg3MiwgMjkwMDcsIDcyODc3LCA3Mjg4MywgNzI4ODgsIDcyODk1LCA5NzAxLCAxNzQ5MiwgCisgICAgNzI5MDEsIDcyOTEwLCA3MjkxNSwgNzI5MTksIDcyOTI2LCA3MjkzMiwgNzI5MzcsIDcyOTQyLCA3Mjk1MCwgNzI5NTgsIAorICAgIDcyOTYyLCA3Mjk2NSwgNzI5NjgsIDcyOTcwLCA3Mjk3NywgNzI5ODMsIDcyOTk0LCA3Mjk5OSwgNzMwMDMsIDczMDEwLCAKKyAgICA3MzAxNiwgNzMwMjEsIDczMDI5LCA2NTQwNSwgNjU0MTUsIDczMDM1LCA3MzA0MiwgNzMwNTIsIDEwNjExLCA3MzA1OSwgCisgICAgNzMwNjQsIDI5MjAzLCA3MzA3MywgNzMwNzgsIDczMDg1LCA3MzA5NSwgNzMxMDMsIDczMTExLCA3MzEyMCwgNzMxMjYsIAorICAgIDczMTMyLCA3MzEzOSwgNzMxNDYsIDczMTUxLCA3MzE1NSwgNzMxNjMsIDczMTY4LCA3MzE3MywgNzMxODEsIDczMTg4LCAKKyAgICA3MzE5MywgNzMxOTksIDczMjAyLCA3MzIwNiwgNzMyMTUsIDcxNzc1LCA3MzIyNCwgNzMyMjgsIDczMjM0LCA3MzI0NSwgCisgICAgNzMyNTUsIDE3NTAxLCA3MzI2NiwgNzMyNzQsIDE3NTEzLCA3MzI4MSwgNzMyODUsIDczMjk0LCAyNzMyNCwgNzMzMDEsIAorICAgIDczMzA1LCA3MzMxMCwgNzMzMjcsIDczMzM5LCAxMDU2OSwgNzMzNTEsIDczMzU2LCA3MzM2MSwgNzMzNjYsIDIwOTk3LCAKKyAgICA3MzM3MCwgNzMzNzUsIDczMzgwLCA3MzM4NiwgNzMzOTEsIDU4NDYsIDIxMDAxLCA3MzM5NiwgNzM0MDEsIDczNDA3LCAKKyAgICA3MzQxNCwgNzM0MTksIDczNDI0LCA3MzQzMCwgNzM0MzYsIDczNDQyLCA3MzQ0NywgNzM0NTMsIDczNDU3LCA3MzQ3MSwgCisgICAgNzM0NzksIDczNDg3LCA3MzQ5MywgNzM0OTgsIDczNTA1LCA3MzUxNSwgNzM1MjQsIDczNTI5LCA3MzUzNCwgNzM1NDIsIAorICAgIDczNTQ3LCA3MzU1MywgNzM1NTgsIDczNTY3LCA1OTc4NiwgNzM1NzIsIDczNTc1LCA3MzU5MywgNzM2MTIsIDczNjI1LCAKKyAgICA3MzYzOSwgNzM2NTUsIDczNjYyLCA3MzY2OSwgNzM2NzUsIDczNjgyLCA3MzY4NywgNzM2OTMsIDczNjk5LCA3MzcwNywgCisgICAgNzM3MTMsIDczNzE4LCA3MzcyMywgNzM3MzksIDEwNTgyLCA3Mzc1MywgNzM3NjAsIDczNzY4LCA3Mzc3NCwgNzM3NzgsIAorICAgIDczNzgxLCA3Mzc4NiwgNzM3OTEsIDczNzk4LCA3MzgwMywgNzM4MTIsIDczODE3LCA3MzgyMywgNzM4MzIsIDczODQxLCAKKyAgICA3Mzg0NiwgNzM4NTAsIDczODU4LCA3Mzg2NywgMTE2NjcsIDczODc2LCA3Mzg4NCwgNzM4ODksIDczODk1LCAxMTY3OCwgCisgICAgNzM5MDAsIDczOTAzLCA3MzkwOCwgNzM5MTgsIDczOTI3LCA3MzkzMiwgNzM5MzgsIDczOTQzLCA3Mzk1MSwgNzM5NTgsIAorICAgIDczOTY5LCA3Mzk3OSwgNzM5ODQsIDY0ODM0LCA3Mzk4OSwgNzM5OTUsIDc0MDAwLCA3NDAwNywgNzQwMTYsIDc0MDI0LCAKKyAgICA3NDAzMCwgNzQwMzYsIDc0MDQzLCA3NDA0OSwgNzQwNTMsIDE2OTQ3LCAzMDU1LCA3NDA1OCwgNzQwNjIsIDc0MDY2LCAKKyAgICA3NDA3MiwgNzQwODEsIDc0MDg3LCA3NDA5NCwgNzQwOTgsIDc0MTE5LCA3NDE0MSwgNzQxNTcsIDc0MTc0LCA3NDE5MywgCisgICAgNzQyMDIsIDc0MjEyLCA3NDIxOSwgNzQyMjYsIDI3MjExLCA3NDIzMiwgNzQyMzYsIDc0MjQ0LCA3NDI1NiwgNzQyNjIsIAorICAgIDc0MjcwLCA3NDI3NCwgNzQyODIsIDc0Mjg5LCA3NDI5MywgNzQyOTksIDc0MzA1LCA3NDMxMCwgMzU2MywgNDE4ODcsIAorICAgIDc0MzE2LCA3NDMyMCwgNzQzMjQsIDc0MzI4LCA3NDMzMywgNzQzMzgsIDc0MzQzLCA3NDM0OSwgNzQzNTUsIDc0MzYxLCAKKyAgICA3NDM2OCwgNzQzNzQsIDc0MzgxLCA3NDM4NywgNzQzOTMsIDc0Mzk4LCA3NDQwNCwgNzQ0MDksIDc0NDEzLCA3NDQxOCwgCisgICAgNzQ0MjIsIDc0NDI3LCA0MTkwMiwgNzQ0MzEsIDc0NDM2LCA3NDQ0NCwgNzQ0NDgsIDc0NDUzLCA3NDQ2MCwgNzQ0NjksIAorICAgIDc0NDc1LCA3NDQ3OSwgNzQ0ODYsIDc0NDkwLCA3NDQ5MywgNzQ1MDAsIDc0NTA5LCA3NDUxNCwgNzQ1MTgsIDc0NTI2LCAKKyAgICA3NDUzNSwgNzQ1MzksIDc0NTQ3LCA3NDU1MywgNzQ1NTgsIDc0NTYzLCA3NDU2OSwgNzQ1NzUsIDc0NTgwLCA3NDU4NCwgCisgICAgNzQ1OTAsIDc0NTk1LCA3NDU5OSwgNzQ2MDMsIDc0NjA2LCA3NDYxMSwgNzQ2MTksIDc0NjI5LCA3NDYzNCwgMzkzODcsIAorICAgIDc0NjQyLCA3NDY1NCwgNzQ2NTgsIDc0NjY0LCA3NDY3NiwgNzQ2ODcsIDc0Njk0LCA3NDcwMCwgNzQ3MDcsIDc0NzE5LCAKKyAgICA3NDcyNiwgNzQ3MzIsIDIxMDc1LCA3NDczNiwgNzQ3NDIsIDc0NzQ5LCA3NDc1NSwgNzQ3NjEsIDc0NzY2LCA3NDc3MSwgCisgICAgNzQ3NzYsIDc0Nzg1LCA3MDMzLCA3NDc5MCwgMTY0MTMsIDc0Nzk2LCA3NDgwMCwgNzQ4MDQsIDc0ODA4LCA3NDgxNiwgCisgICAgNzQ4MjUsIDc0ODI5LCA3NDgzNiwgNzQ4NDUsIDc0ODU4LCA3NDg2NCwgNzQ0MjMsIDMwMDY3LCA3NDg2OSwgNzQ4NzEsIAorICAgIDc0ODc2LCA3NDg4MSwgNzQ4ODYsIDc0ODkxLCA3NDg5NiwgNzQ5MDEsIDc0OTA2LCA3NDkxMSwgNzQ5MTYsIDc0OTIxLCAKKyAgICA3NDkyNiwgNzQ5MzEsIDc0OTM2LCA3NDk0MSwgNzQ5NDcsIDc0OTUyLCA3NDk1NywgNzQ5NjIsIDc0OTY3LCA3NDk3MiwgCisgICAgNzQ5NzcsIDc0OTgyLCA3NDk4NywgNzQ5OTMsIDc0OTk5LCA3NTAwNSwgNzUwMTAsIDc1MDE1LCA3NTAyNywgNzUwMzIsIAorICAgIDE4NzAsIDQ5LCA3NTAzNywgNzUwNDIsIDMyNzIxLCA3NTA0NiwgMzI3MjYsIDMyNzMxLCAzMjczNywgMzI3NDIsIDc1MDUwLCAKKyAgICAzMjc0NywgMjIwNzAsIDc1MDcyLCA3NTA3NiwgNzUwODAsIDc1MDg1LCA3NTA4OSwgMzI3NTEsIDc1MDkzLCA3NTEwMSwgCisgICAgMzI3NTYsIDc1MTA4LCA3NTExMSwgNzUxMTYsIDc1MTIwLCA5NTM2LCA3NTEyOSwgMzI3NjEsIDIxOTMyLCA3NTEzMiwgCisgICAgNzUxMzYsIDE0MjgsIDc1MTQxLCAzMjc3MiwgNzUxNDQsIDc1MTQ5LCAyNTcyMCwgMjU3MzAsIDM1MjMzLCA3NTE1NCwgCisgICAgNzUxNTksIDc1MTY0LCA3NTE2OSwgNzUxNzUsIDc1MTgwLCA3NTE4OSwgNzUxOTQsIDc1MjAxLCA3NTIwNywgNzUyMTIsIAorICAgIDc1MjE3LCA3NTIyMiwgNzUyMzIsIDc1MjQxLCA3NTI0NiwgNzUyNTQsIDc1MjU4LCA3NTI2NiwgMzI1ODYsIDM3Mjg4LCAKKyAgICA3NTI3MywgNzUyNzksIDc1Mjg0LCA3NTI4OSwgMTIwMDksIDc1Mjk0LCA3NTMwMCwgNzUzMDUsIDc1MzEyLCA3NTMxOCwgCisgICAgNzUzMjMsIDc1MzMxLCA3NTM0MSwgNzUzNTEsIDc1MzU3LCA3NTM2MiwgNzUzNjgsIDE3NTIzLCA3NTM3NSwgMzYwNDgsIAorICAgIDc1Mzg4LCA3NTM5MywgNzUzOTksIDMwOTY4LCA3NTQxMiwgNzU0MTgsIDc1NDIyLCA3NTQzMSwgNzU0MzgsIDc1NDQ0LCAKKyAgICA3NTQ1MiwgNzU0NjEsIDc1NDY4LCA3NTQ3NCwgNzU0NzcsIDc1NDgxLCAyNTg2MSwgNzU0ODUsIDc1NDkyLCA3NTQ5OCwgCisgICAgNzU1MDYsIDc1NTExLCAyMzk3NywgNzU1MTcsIDc1NTIwLCA3NTUyOCwgNzU1MzYsIDc1NTUwLCA3NTU1NywgNzU1NjMsIAorICAgIDc1NTcwLCA3NTU3NiwgMzI3ODYsIDc1NTgwLCA3NTU4NywgNzU1OTUsIDc1NjAzLCA3NTYwOSwgMzI3OTEsIDc1NjE3LCAKKyAgICA3NTYyMywgNzU2MjgsIDc1NjM4LCA3NTY0NCwgNzU2NTMsIDMwODA1LCAzNDY5MSwgNzU2NjEsIDc1NjY2LCA3NTY3MSwgCisgICAgNzU2NzUsIDc1NjgwLCA3NTY4NCwgNzU2OTIsIDE0OTA3LCAzOTQwMCwgNzU2OTcsIDc1NzAyLCAzMjc5NiwgNjIyMzIsIAorICAgIDc1NzA2LCA3NTcxMSwgNzU3MTUsIDc1NzI0LCA3NTczMiwgNzU3MzgsIDc1NzQzLCA3NTc0OSwgNzU3NTYsIDc1NzYyLCAKKyAgICA3NTc2NywgNzU3NzIsIDc1NzgxLCA3NTc5MywgNzU4MDgsIDMzMDU4LCA3NTgxNCwgMTY1MzIsIDMyODAwLCA3NTgxOCwgCisgICAgNzU4MjUsIDI0MDg3LCA3NTgzMSwgNzU4MzgsIDc1ODQ3LCA3NTg1NCwgNzU4NjMsIDc1ODY5LCA3NTg3NCwgNzU4ODIsIAorICAgIDc1ODg4LCAzMjgxMCwgNzU4OTMsIDc1OTAyLCA3NDY4MiwgNzU5MTEsIDc1OTE4LCA3NTkyNCwgNzU5MzAsIDc1OTQwLCAKKyAgICA3NTk0OCwgNzU5NTUsIDc1OTU5LCAzMjgxNSwgNzU5NjIsIDMyODIxLCAzMjgyNywgNzU5NjcsIDc1OTc1LCA3NTk4MywgCisgICAgNzU5OTMsIDc2MDAyLCA3NjAxMCwgNzYwMTcsIDc2MDI3LCAzMjgzMiwgNzYwMzEsIDc2MDMzLCA3NjAzNywgNzYwNDIsIAorICAgIDc2MDQ2LCA3NjA1MCwgNzYwNTYsIDc2MDYxLCA3NjA2NSwgNzYwNzYsIDc2MDgxLCA3NjA4NiwgMzA2MCwgNzYwOTAsIAorICAgIDc2MDk3LCA3NjEwMSwgNzYxMTAsIDc2MTE4LCA3NjEyNSwgNzYxMzAsIDc2MTM1LCA2MjI3OCwgNzYxMzksIDc2MTQyLCAKKyAgICA3NjE0OCwgNzYxNTYsIDc2MTYyLCA3NjE2NiwgNzYxNzEsIDc2MTc4LCA3NjE4MywgNzYxODksIDM0NzIyLCA3NjE5NCwgCisgICAgNzYxOTcsIDc2MjAyLCA3NjIwNiwgNzYyMTEsIDc2MjE2LCA3NjIyMCwgNzYyMjgsIDc2MjMyLCAyNTczOSwgMjU3NDgsIAorICAgIDc2MjM4LCA3NjI0NCwgNzYyNTAsIDc2MjU1LCA3NjI1OSwgNzYyNjIsIDc2MjcyLCA3NjI4MSwgNzYyODYsIDc2MjkyLCAKKyAgICA3NjI5OSwgNzYzMDUsIDc2MzA5LCA3NjMxNywgNzYzMjIsIDM0NzI4LCA3NjMyNiwgNzYzMzQsIDc2MzQwLCA3NjM0NywgCisgICAgNzYzNTIsIDc2MzU2LCA3NjM2MSwgNTg0MDMsIDM0NzM0LCA3NjM2NywgNzYzNzIsIDc2Mzc2LCA3NjM4MSwgNzYzODYsIAorICAgIDc2MzkxLCA3NjM5NSwgNzY0MDAsIDc2NDA1LCA3NjQxMSwgNzY0MTYsIDc2NDIxLCA3NjQyNywgNzY0MzMsIDc2NDM4LCAKKyAgICA3NjQ0MiwgNzY0NDcsIDc2NDUyLCA3NjQ1NywgNzY0NjEsIDI0MDg2LCA3NjQ2NiwgNzY0NzEsIDc2NDc3LCA3NjQ4MywgCisgICAgNzY0ODksIDc2NDk0LCA3NjQ5OCwgNzY1MDMsIDc2NTA4LCA3NjUxMywgNzY1MTcsIDc2NTIyLCA3NjUyNywgNzY1MzIsIAorICAgIDc2NTM3LCA3NjU0MSwgMzI4NDAsIDc2NTQ5LCA3NjU1MywgNzY1NjEsIDc2NTY5LCA3NjU4MCwgNzY1ODUsIDc2NTg5LCAKKyAgICAyMjM4NCwgNzY1OTQsIDc2NjAwLCA3NjYxMCwgNzY2MTcsIDc2NjIyLCA3NjYzMSwgNzY2MzYsIDc2NjQwLCA3NjY0NSwgCisgICAgNzY2NTMsIDc2NjYxLCA3NjY2OCwgNjUwNjgsIDc2Njc0LCA3NjY4MiwgNzY2ODksIDc2NzAwLCA3NjcwNiwgNzY3MTAsIAorICAgIDc2NzE2LCAzMjg1MCwgNzY3MTksIDc2NzI2LCA3NjczNCwgNzY3MzksIDM5NTkxLCA3Njc0MywgNzY3NDgsIDc2NzU1LCAKKyAgICA3Njc2MCwgODk4NSwgNzY3NjQsIDc2NzcyLCA3Njc3OSwgNzY3ODYsIDc2NzkyLCA3NjgwNiwgNjMzNDAsIDc2ODE0LCAKKyAgICA3NjgyMCwgNzY4MjQsIDc2ODI3LCA3NjgzNSwgNzY4NDIsIDc2ODQ3LCA3Njg2MCwgNzY4NjcsIDc2ODcxLCA3Njg3OCwgCisgICAgNzY4ODMsIDYwODIzLCA3Njg4OCwgNzY4OTEsIDc2ODk4LCA3NjkwNCwgNzY5MDgsIDc2OTE2LCA3NjkyNSwgNzY5MzUsIAorICAgIDc2OTQ1LCA3Njk1NCwgNzY5NjIsIDc2OTczLCA3Njk3OCwgNzY5ODIsIDc2OTg3LCA3Njk5MSwgMzUzNjQsIDc2OTk5LCAKKyAgICAyMTM0NCwgMzUzNzMsIDc3MDA0LCA3NzAwOSwgNzcwMTQsIDc3MDE5LCA3NzAyNCwgNzcwMjksIDc3MDM0LCA3NzAzOCwgCisgICAgNzcwNDMsIDc3MDQ4LCA3NzA1MywgNzcwNTgsIDc3MDYzLCA3NzA2OCwgNzcwNzIsIDc3MDc3LCA3NzA4MiwgNzcwODYsIAorICAgIDc3MDkwLCA3NzA5NCwgNzcwOTgsIDc3MTAzLCA3NzEwOCwgNzcxMTIsIDc3MTE3LCA3NzEyMSwgNzcxMjUsIDc3MTMwLCAKKyAgICA3NzEzNSwgNzcxNDAsIDc3MTQ1LCA3NzE0OSwgNzcxNTQsIDc3MTU5LCA3NzE2MywgNzcxNjgsIDc3MTczLCA3NzE3OCwgCisgICAgNzcxODMsIDc3MTg4LCA3NzE5MywgNzcxOTgsIDc3MjAzLCA3NzIwOCwgNzcyMTMsIDc3MjE4LCA3NzIyMywgNzcyMjgsIAorICAgIDc3MjMzLCA3NzIzOCwgNzcyNDMsIDc3MjQ4LCA3NzI1MywgNzcyNTgsIDc3MjYzLCA3NzI2NywgNzcyNzIsIDc3Mjc3LCAKKyAgICA3NzI4MiwgNzcyODcsIDc3MjkyLCA3NzI5NywgNzczMDIsIDc3MzA3LCA3NzMxMiwgNzczMTcsIDc3MzIyLCA3NzMyNiwgCisgICAgNzczMzEsIDc3MzM1LCA3NzM0MCwgNzczNDUsIDc3MzUwLCA3NzM1NSwgNzczNjAsIDc3MzY1LCA3NzM3MCwgNzczNzUsIAorICAgIDc3MzgwLCA3NzM4NCwgNzczODgsIDc3MzkzLCA3NzM5OCwgNzc0MDIsIDc3NDA3LCA3NzQxMiwgNzc0MTYsIDc3NDIxLCAKKyAgICA3NzQyNiwgNzc0MzEsIDc3NDM2LCA3NzQ0MCwgNzc0NDUsIDc3NDUwLCA3NzQ1NCwgNzc0NTksIDc3NDYzLCA3NzQ2NywgCisgICAgNzc0NzEsIDc3NDc1LCA3NzQ4MCwgNzc0ODQsIDc3NDg4LCA3NzQ5MiwgNzc0OTYsIDc3NTAwLCA3NzUwNCwgNzc1MDgsIAorICAgIDc3NTEyLCA3NzUxNiwgNzc1MjEsIDc3NTI2LCA3NzUzMSwgNzc1MzYsIDc3NTQxLCA3NzU0NiwgNzc1NTEsIDc3NTU2LCAKKyAgICA3NzU2MSwgNzc1NjYsIDc3NTcwLCA3NzU3NCwgNzc1NzgsIDc3NTgyLCA3NzU4NiwgNzc1OTAsIDc3NTk1LCA3NzU5OSwgCisgICAgNzc2MDQsIDc3NjA4LCA3NzYxMywgNzc2MTgsIDc3NjIyLCA3NzYyNiwgNzc2MzEsIDc3NjM1LCA3NzYzOSwgNzc2NDMsIAorICAgIDc3NjQ3LCA3NzY1MSwgNzc2NTUsIDc3NjU5LCA3NzY2MywgNzc2NjcsIDc3NjcxLCA3NzY3NSwgNzc2NzksIDc3NjgzLCAKKyAgICA3NzY4NywgNzc2OTIsIDc3Njk3LCA3NzcwMSwgNzc3MDUsIDc3NzA5LCA3NzcxMywgNzc3MTcsIDc3NzIxLCA3NzcyNiwgCisgICAgNzc3MzAsIDc3NzM0LCA3NzczOCwgNzc3NDIsIDc3NzQ2LCA3Nzc1MCwgNzc3NTUsIDc3NzU5LCA3Nzc2NCwgNzc3NjgsIAorICAgIDc3NzcyLCA3Nzc3NiwgNzc3ODAsIDc3Nzg0LCA3Nzc4OCwgNzc3OTIsIDc3Nzk2LCA3NzgwMCwgNzc4MDQsIDc3ODA4LCAKKyAgICA3NzgxMywgNzc4MTcsIDc3ODIxLCA3NzgyNSwgNzc4MjksIDc3ODMzLCA3NzgzNywgNzc4NDEsIDc3ODQ1LCA3Nzg0OSwgCisgICAgNzc4NTMsIDc3ODU3LCA3Nzg2MiwgNzc4NjYsIDc3ODcwLCA3Nzg3NSwgNzc4ODAsIDc3ODg0LCA3Nzg4OCwgNzc4OTIsIAorICAgIDc3ODk2LCA3NzkwMCwgNzc5MDQsIDc3OTA4LCA3NzkxMiwgNzc5MTcsIDc3OTIxLCA3NzkyNiwgNzc5MzAsIDc3OTM1LCAKKyAgICA3NzkzOSwgNzc5NDQsIDc3OTQ4LCA3Nzk1NCwgNzc5NTksIDc3OTYzLCA3Nzk2OCwgNzc5NzIsIDc3OTc3LCA3Nzk4MSwgCisgICAgNzc5ODYsIDc3OTkwLCA3Nzk5NSwgMTUyMSwgNzc5OTksIDI4MjQsIDE3NTksIDE3NjQsIDc4MDAzLCA3ODAwNywgMjgyOCwgCisgICAgNzgwMTEsIDEzOTcsIDc4MDE2LCAxMzQyLCA3ODAyMCwgMjg0MCwgNzgwMjQsIDc4MDMxLCA3ODAzOCwgNzgwNTIsIDI4NDQsIAorICAgIDcxMzEsIDc4MDYxLCA3ODA2OSwgNzgwNzYsIDc4MDg3LCA3ODA5NiwgNzgxMDMsIDc4MTE1LCA3ODEyOCwgNzgxNDEsIAorICAgIDc4MTUyLCA3ODE1NywgNzgxNjQsIDc4MTc2LCA3ODE4MCwgMjg0OCwgMTE3NDAsIDc4MTkwLCA3ODE5NSwgNzgyMDQsIAorICAgIDc4MjE0LCAyODUyLCA3ODIxOSwgNzgyMjMsIDc4MjI4LCA3ODIzNSwgNzgyNDEsIDc4MjQ5LCA3ODI2MSwgMTM0NywgCisgICAgMTMwMzUsIDc4MjcxLCA3ODI3NSwgNzgyODEsIDc4Mjk1LCA3ODMwNywgNzgzMTksIDc4MzI5LCA3ODMzOCwgNzgzNDcsIAorICAgIDc4MzU2LCA3ODM2NCwgNzgzNzUsIDc4MzgzLCA0MDUxLCA3ODM5MywgNzg0MDQsIDc4NDEzLCA3ODQxOSwgNzg0MzQsIAorICAgIDc4NDQxLCA3ODQ0NywgMzU0ODksIDc4NDUyLCAyODc2LCAxMzAzOSwgNzg0NTYsIDc4NDYzLCA4OTMwLCA3ODQ3MiwgMjg4MSwgCisgICAgMzIzMzYsIDc4NDc4LCA2MDU3MiwgNzg0ODUsIDc4NDkxLCA3ODUwMiwgNzg1MDgsIDc4NTE1LCA3ODUyMSwgNzg1MjksIAorICAgIDc4NTM2LCA3ODU0MiwgNzg1NTIsIDc4NTYxLCA3ODU3MiwgNzg1NzksIDc4NTg1LCA3ODU5NSwgNzg2MDMsIDc4NjA5LCAKKyAgICA3ODYyNCwgNzg2MzAsIDc4NjM1LCA3ODY0MiwgNzg2NDUsIDc4NjUxLCA3ODY1OCwgNzg2NjQsIDc4NjcyLCA3ODY4MSwgCisgICAgNzg2ODksIDc4Njk1LCA3ODcwNCwgNDE0MjcsIDc4NzE4LCA3ODcyMywgNzg3MjksIDE0NzQ0LCA3ODczNCwgNzg3NDcsIAorICAgIDc4NzU2LCA3ODc2NCwgNzg3NzEsIDc4Nzc1LCA3ODc3OSwgNzg3ODIsIDc4Nzg5LCA3ODc5NiwgNzg4MDQsIDc4ODEyLCAKKyAgICA3ODgyMSwgNzg4MjksIDE0NjcxLCA3ODgzNywgNzg4NDIsIDc4ODQ2LCA3ODg1OCwgNzg4NjUsIDc4ODc0LCA3NDgsIAorICAgIDc4ODg0LCA3ODg5MywgNzg5MDQsIDI4OTcsIDc4OTA4LCA3ODkxMiwgNzg5MTgsIDc4OTMxLCA3ODk0MywgNzg5NTMsIAorICAgIDc4OTYyLCA3ODk3NCwgMjYzNTIsIDc4OTg1LCA3ODk5MywgNzkwMDIsIDc5MDEzLCA3OTAyNCwgNzkwMzQsIDc5MDQ0LCAKKyAgICA3OTA1MywgNzkwNjEsIDExMzA1LCA3OTA2OCwgNzkwNzIsIDc5MDc1LCA3OTA4MCwgNzkwODUsIDc5MDg5LCA3OTA5NSwgCisgICAgMTM1MiwgMTE4MTEsIDc5MTAyLCA3OTExMywgNzkxMjIsIDc5MTMwLCA3OTEzOSwgNzkxNDcsIDc5MTYzLCA3OTE3NCwgCisgICAgNzkxODMsIDc5MTkxLCA3OTIwMywgNzkyMTQsIDc5MjMwLCA3OTI0MCwgNzkyNjEsIDc5Mjc0LCA3OTI4MiwgNzkyODksIAorICAgIDE0ODU1LCA3OTMwMiwgNzkzMDcsIDc5MzEzLCA1OTA4LCA3OTMxOSwgNzkzMjIsIDc5MzI5LCA3OTMzOSwgODE3NiwgCisgICAgNzkzNDYsIDc5MzUxLCA3OTM1NiwgNzkzNjEsIDc5MzY5LCA3OTM3OCwgNzkzODYsIDk3NDksIDk3NTgsIDc5MzkxLCAKKyAgICA3OTQwMiwgNzk0MDcsIDc5NDEzLCAyOTEzLCAyOTE4LCA3OTQxOSwgMTA4NzIsIDc5NDI1LCA3OTQzMiwgNzk0MzksIAorICAgIDc5NDUyLCAyMjUxLCA2OCwgNzk0NTcsIDc5NDYyLCA3OTQ3MiwgNzk0NzgsIDc5NDg3LCA3OTQ5NSwgNzk1MDUsIDc5NTA5LCAKKyAgICA3OTUxNCwgNzk1MTgsIDc5NTMwLCAyOTQxLCA3OTUzOCwgNzk1NDYsIDc5NTUxLCA3OTU2MiwgNzk1NzMsIDc5NTgyLCAKKyAgICA3OTU4NywgNzk1OTMsIDc5NTk4LCA3OTYwOCwgNzk2MTgsIDc5NjIzLCA3OTYyOSwgNzk2MzQsIDc5NjQzLCAyMTM5NywgCisgICAgNzk2NDcsIDQxMjgsIDIwLCA3OTY1MiwgNzk2NjEsIDc5NjY4LCA3OTY3NSwgNzk2ODEsIDc5Njg3LCA4NjQsIDc5NjkyLCAKKyAgICA3OTY5NywgNjA5MDAsIDc5NzAyLCA3OTcwNywgNzk3MTMsIDc5NzE5LCA3OTcyNywgNzk3MzIsIDc5NzM5LCA3OTc0NSwgCisgICAgNzk3NTAsIDM4MDAxLCA0MTMyMSwgNzk3NTYsIDI5NDUsIDMyLCA3OTc2NiwgNzk3NzksIDc5Nzg0LCA3OTc5MiwgNzk3OTcsIAorICAgIDc5ODAzLCAyOTY3LCAyODI4OSwgNzk4MDgsIDc5ODE2LCA3OTgyMywgNzk4MjgsIDU4NjQ1LCA2MTkwMywgNzk4MzcsIAorICAgIDc5ODQxLCAxNzA0LCAxODEzLCA3OTg0NiwgNzk4NTEsIDc5ODU4LCAxODE3LCAyNDcsIDc5ODY1LCA3OTg3MSwgMjk4OSwgCisgICAgNzk4NzYsIDc5ODgxLCA3OTg4OCwgMTgyMSwgNzk4OTMsIDc5ODk5LCA3OTkwNCwgNzk5MTYsIDYxMTksIDc5OTI2LCAxODI4LCAKKyAgICA3OTkzMiwgNzk5MzcsIDc5OTQ0LCA3OTk1MSwgNzk5NjYsIDc5OTczLCA3OTk4NCwgNzk5OTIsIDI2MTgsIDc5OTk2LCAKKyAgICA4MDAwOCwgODAwMTMsIDgwMDE3LCA4MDAyMywgMjgxMTQsIDIyNTYsIDgwMDI3LCA4MDAzOCwgODAwNDIsIDgwMDQ2LCAKKyAgICA4MDA1MiwgODAwNTYsIDgwMDY1LCA4MDA2OSwgODAwODAsIDgwMDg0LCAyMzAyLCAzMjE2NSwgODAwODgsIDgwMDk4LCAKKyAgICAzMDgwLCA5MzY0LCA4MDEwNiwgODAxMTEsIDgwMTE1LCA4MDEyNCwgODAxMzEsIDgwMTM3LCAzMDUwLCAxNzEzOSwgODAxNDEsIAorICAgIDgwMTU0LCA4MDE3MiwgODAxNzcsIDgwMTg1LCA4MDE5MywgODAyMDMsIDk5NzgsIDEzMTQ3LCA4MDIxNSwgODAyMjgsIAorICAgIDgwMjM1LCA4MDI0MiwgODAyNTgsIDgwMjY1LCA4MDI3MSwgMTA5NSwgODAyNzgsIDgwMjg1LCA4MDI5NSwgODAzMDQsIAorICAgIDgwMzE2LCA0MjI5MSwgODAzMjQsIDMwNjQsIDEyMDIzLCA4MDMyNywgODAzMzUsIDgwMzM5LCA3ODIzMSwgMzA2OCwgCisgICAgODAzNDMsIDIxMTc4LCAxMjAzOSwgMzc1NiwgODAzNDcsIDMwNzQsIDgwMzUxLCA4MDM2MSwgODAzNjcsIDgwMzczLCAKKyAgICA4MDM3OSwgODAzODUsIDgwMzkxLCA4MDM5NywgODA0MDMsIDgwNDA5LCA4MDQxNSwgODA0MjEsIDgwNDI3LCA4MDQzMywgCisgICAgODA0MzksIDgwNDQ1LCA4MDQ1MSwgODA0NTcsIDgwNDYzLCA4MDQ2OSwgODA0NzUsIDgwNDgxLCA4MDQ4NywgODA0OTMsIAorICAgIDgwNDk5LCA4MDUwNSwgODA1MTEsIDgwNTE4LCA4MDUyNSwgODA1MzEsIDgwNTM3LCA4MDU0MywgODA1NDksIDgwNTU1LCAKKyAgICA4MDU2MSwgMTM1NywgMTYwNDksIDEyMDYxLCA4MDU2NywgODA1NzIsIDgwNTc3LCA4MDU4MiwgODA1ODcsIDgwNTkyLCAKKyAgICA4MDU5NywgODA2MDIsIDgwNjA3LCA4MDYxMiwgODA2MTcsIDgwNjIyLCA4MDYyNywgODA2MzIsIDgwNjM3LCA4MDY0MiwgCisgICAgODA2NDcsIDgwNjUyLCA4MDY1NywgODA2NjIsIDgwNjY3LCA4MDY3MiwgODA2NzcsIDgwNjgyLCA4MDY4NywgODA2OTIsIAorICAgIDgwNjk4LCA4MDcwMywgODA3MDgsIDgwNzE0LCA4MDcxOSwgODA3MjUsIDgwNzMwLCA4MDczNSwgODA3NDEsIDgwNzQ2LCAKKyAgICA4MDc1MSwgODA3NTYsIDgwNzYxLCA4MDc2NiwgODA3NzEsIDgwNzc2LCA4MDc4MSwgODAzNjIsIDgwMzY4LCA4MDM3NCwgCisgICAgODAzODAsIDgwMzg2LCA4MDM5MiwgODAzOTgsIDgwNDA0LCA4MDQxMCwgODA0MTYsIDgwNDIyLCA4MDQyOCwgODA0MzQsIAorICAgIDgwNDQwLCA4MDQ0NiwgODA3ODcsIDgwNDUyLCA4MDQ1OCwgODA0NjQsIDgwNzkzLCA4MDQ3MCwgODA0NzYsIDgwNDgyLCAKKyAgICA4MDQ4OCwgODA0OTQsIDgwNTAwLCA4MDUwNiwgODA1MjYsIDgwNzk5LCA4MDgwNSwgODA1MzIsIDgwODExLCA4MDUzOCwgCisgICAgODA1NDQsIDgwNTUwLCA4MDU1NiwgODA1NjIsIDMwOTEsIDMwOTYsIDgwODE3LCA4MDgyMiwgODA4MjUsIDgwODMxLCAKKyAgICA4MDgzNywgODA4NDQsIDgwODQ5LCA4MDg1NCwgMjMwNywgCiB9OwogCiAvKiBjb2RlLT5uYW1lIHBocmFzZWJvb2sgKi8KICNkZWZpbmUgcGhyYXNlYm9va19zaGlmdCA3Ci0jZGVmaW5lIHBocmFzZWJvb2tfc2hvcnQgMjExCisjZGVmaW5lIHBocmFzZWJvb2tfc2hvcnQgMjA5CiBzdGF0aWMgdW5zaWduZWQgY2hhciBwaHJhc2Vib29rW10gPSB7Ci0gICAgMCwgMjE5LCAyMDYsIDI0NCwgMjU0LCA3NywgMjI0LCAxNDMsIDc3LCA1MCwgNTIsIDI0NywgODYsIDUyLCAyMjYsIDU3LCAKLSAgICA1MiwgMjU0LCAzNSwgMjUzLCAyMjYsIDQyLCAyMjYsIDEzMSwgNDYsIDIyNiwgMTMxLCAyNTMsIDEzMiwgOTQsIDUyLCAyNDksIAotICAgIDE1NywgMjQwLCAxNTksIDI0MywgMjAwLCAyMTksIDY5LCAyMTksIDIzMSwgMjEsIDIxMiwgNzksIDIxLCAxMTYsIDIxLCAKLSAgICAxMDksIDIxLCAxNjYsIDIxLCAxNjMsIDIxLCAxODAsIDIxLCAxODksIDIxLCAxOTgsIDIxLCAxOTUsIDIxLCAyMDAsIDI0OSwgCi0gICAgMTY0LCAyMjEsIDcwLCAyMzMsIDM5LCA1MiwgMjQ1LCA2MSwgNTIsIDI0MiwgMTA3LCA1MiwgMjI0LCAxNTgsIDc3LCAyNDksIAotICAgIDE1NiwgMjUzLCAxMjIsIDcsIDYsIDEsIDYxLCA3LCA2LCAxLCAyNTMsIDc0LCA3LCA2LCAxLCAyNTAsIDI1MiwgNywgNiwgMSwgCi0gICAgMjQ5LCAzLCA3LCA2LCAxLCA3NCwgNywgNiwgMSwgMjQ0LCAyMzAsIDcsIDYsIDEsIDI0MywgMTc3LCA3LCA2LCAxLCAyNDIsIAotICAgIDQxLCA3LCA2LCAxLCA3MiwgNywgNiwgMSwgMjM1LCAxNDIsIDcsIDYsIDEsIDIzNSwgMjcsIDcsIDYsIDEsIDE1MCwgNywgNiwgCi0gICAgMSwgMTgzLCA3LCA2LCAxLCAyMDQsIDcsIDYsIDEsIDc1LCA3LCA2LCAxLCAyMjYsIDIyOSwgNywgNiwgMSwgMjI0LCAyNDAsIAotICAgIDcsIDYsIDEsIDE0OSwgNywgNiwgMSwgMTk3LCA3LCA2LCAxLCAyMTgsIDk5LCA3LCA2LCAxLCA2OSwgNywgNiwgMSwgMjE1LCAKLSAgICA3OSwgNywgNiwgMSwgMjE0LCA4MiwgNywgNiwgMSwgMjEzLCAxNjYsIDcsIDYsIDEsIDIxMywgMTA1LCA3LCA2LCAxLCAyMTIsIAotICAgIDE1MiwgNDIsIDQxLCAxMjUsIDIyMywgMjAzLCAyMTksIDIzMSwgNDYsIDQxLCAxMjUsIDI0OSwgMjI0LCAyNTQsIDE3NCwgCi0gICAgMTE1LCAyMzIsIDI0MiwgMjQyLCAxMTQsIDI1NCwgMTc0LCA3LCAzLCAxLCA2MSwgNywgMywgMSwgMjUzLCA3NCwgNywgMywgCi0gICAgMSwgMjUwLCAyNTIsIDcsIDMsIDEsIDI0OSwgMywgNywgMywgMSwgNzQsIDcsIDMsIDEsIDI0NCwgMjMwLCA3LCAzLCAxLCAKLSAgICAyNDMsIDE3NywgNywgMywgMSwgMjQyLCA0MSwgNywgMywgMSwgNzIsIDcsIDMsIDEsIDIzNSwgMTQyLCA3LCAzLCAxLCAyMzUsIAotICAgIDI3LCA3LCAzLCAxLCAxNTAsIDcsIDMsIDEsIDE4MywgNywgMywgMSwgMjA0LCA3LCAzLCAxLCA3NSwgNywgMywgMSwgMjI2LCAKLSAgICAyMjksIDcsIDMsIDEsIDIyNCwgMjQwLCA3LCAzLCAxLCAxNDksIDcsIDMsIDEsIDE5NywgNywgMywgMSwgMjE4LCA5OSwgNywgCi0gICAgMywgMSwgNjksIDcsIDMsIDEsIDIxNSwgNzksIDcsIDMsIDEsIDIxNCwgODIsIDcsIDMsIDEsIDIxMywgMTY2LCA3LCAzLCAxLCAKLSAgICAyMTMsIDEwNSwgNywgMywgMSwgMjEyLCAxNTIsIDQyLCAyNDksIDQwLCAxMjUsIDcxLCAyMzIsIDI0MiwgNDYsIDI0OSwgNDAsIAotICAgIDEyNSwgMjE3LCA0MiwgMjI4LCAxODQsIDIxOSwgMjA2LCAyMzUsIDE5MSwgMjQ0LCAyNTQsIDc3LCAyNTAsIDExMCwgNTIsIAotICAgIDIyNSwgMTA4LCA1MiwgMjQ5LCAzOSwgNTIsIDIxMywgMzEsIDUyLCAyNTEsIDYzLCAxMzQsIDIyMiwgOTIsIDUyLCAyNDcsIAotICAgIDIwOSwgMjQ5LCAxMDIsIDUyLCAyNDQsIDEwNSwgMjI3LCAyMSwgMjM1LCAyMzUsIDIzMywgNjYsIDUxLCAyNTQsIDE5LCAKLSAgICAyMjQsIDE0MywgNzcsIDIyOCwgMTYzLCA1MiwgMjE5LCAyMzYsIDI0MCwgMTYwLCAyMjMsIDI1MiwgNTIsIDIzMiwgMzcsIAotICAgIDI0OCwgMjIsIDUyLCAyMjUsIDE1NSwgNTIsIDIxOCwgMjIzLCAxMDksIDIxOCwgMjIzLCAxNjYsIDI1NCwgMTY0LCAyNTQsIAotICAgIDE3NCwgMjMxLCA0MSwgNTIsIDIyNSwgMjAwLCA1MiwgMjMxLCAzNywgMjQ3LCA3NCwgMjUwLCAxMTcsIDIxOCwgMjIzLCAKLSAgICAxMTYsIDIzMSwgMjExLCAyMjcsIDIxLCAyMzUsIDIzNSwgMjIzLCAxNDQsIDUxLCAyNTQsIDE5LCAyMjQsIDE0MywgNzcsIAotICAgIDIxNCwgOTcsIDI0MywgMjI4LCAxMjIsIDIyNCwgMTY2LCAyMTQsIDk3LCAyNDMsIDIyOCwgMTIyLCAyNDIsIDksIDIxNCwgCi0gICAgOTcsIDI0MywgMjI4LCAxMzMsIDIyNCwgMTY0LCAyMzUsIDE5MSwgMjI0LCAxNTgsIDc3LCA3LCA2LCAxLCAxMTgsIDIsIAotICAgIDI0MiwgMTEzLCA3LCA2LCAxLCAxMTgsIDIsIDE3OSwgNywgNiwgMSwgMTE4LCAyLCAyNDksIDIyMywgNywgNiwgMSwgMTE4LCAKLSAgICAyLCAyMTcsIDQyLCA3LCA2LCAxLCAxMTgsIDIsIDI0NywgMjA5LCA3LCA2LCAxLCAxMTgsIDIsIDIyMywgMTMxLCA0OSwgNywgCi0gICAgNiwgMSwgMjU0LCAxNDgsIDcsIDYsIDEsIDI1MCwgMjUzLCAyLCAyNTAsIDExNywgNywgNiwgMSwgMTkxLCAyLCAyNDIsIAotICAgIDExMywgNywgNiwgMSwgMTkxLCAyLCAxNzksIDcsIDYsIDEsIDE5MSwgMiwgMjQ5LCAyMjMsIDcsIDYsIDEsIDE5MSwgMiwgCi0gICAgMjQ3LCAyMDksIDcsIDYsIDEsIDI0MCwgMTQ2LCAyLCAyNDIsIDExMywgNywgNiwgMSwgMjQwLCAxNDYsIDIsIDE3OSwgNywgCi0gICAgNiwgMSwgMjQwLCAxNDYsIDIsIDI0OSwgMjIzLCA3LCA2LCAxLCAyNDAsIDE0NiwgMiwgMjQ3LCAyMDksIDcsIDYsIDEsIAotICAgIDI0NSwgMjUsIDcsIDYsIDEsIDIzMCwgOTgsIDIsIDIxNywgNDIsIDcsIDYsIDEsIDE1NywgMiwgMjQyLCAxMTMsIDcsIDYsIAotICAgIDEsIDE1NywgMiwgMTc5LCA3LCA2LCAxLCAxNTcsIDIsIDI0OSwgMjIzLCA3LCA2LCAxLCAxNTcsIDIsIDIxNywgNDIsIDcsIAotICAgIDYsIDEsIDE1NywgMiwgMjQ3LCAyMDksIDIzMCwgMTU0LCA1MiwgNywgNiwgMSwgMTU3LCAyLCA5MCwgNywgNiwgMSwgMTExLCAKLSAgICAyLCAyNDIsIDExMywgNywgNiwgMSwgMTExLCAyLCAxNzksIDcsIDYsIDEsIDExMSwgMiwgMjQ5LCAyMjMsIDcsIDYsIDEsIAotICAgIDExMSwgMiwgMjQ3LCAyMDksIDcsIDYsIDEsIDIxMywgMTA2LCAyLCAxNzksIDcsIDYsIDEsIDIxNywgMTA0LCA3LCAzLCAxLCAKLSAgICAyMjAsIDI1NSwgMTk3LCA3LCAzLCAxLCAxMTgsIDIsIDI0MiwgMTEzLCA3LCAzLCAxLCAxMTgsIDIsIDE3OSwgNywgMywgMSwgCi0gICAgMTE4LCAyLCAyNDksIDIyMywgNywgMywgMSwgMTE4LCAyLCAyMTcsIDQyLCA3LCAzLCAxLCAxMTgsIDIsIDI0NywgMjA5LCA3LCAKLSAgICAzLCAxLCAxMTgsIDIsIDIyMywgMTMxLCA0OSwgNywgMywgMSwgMjU0LCAxNDgsIDcsIDMsIDEsIDI1MCwgMjUzLCAyLCAyNTAsIAotICAgIDExNywgNywgMywgMSwgMTkxLCAyLCAyNDIsIDExMywgNywgMywgMSwgMTkxLCAyLCAxNzksIDcsIDMsIDEsIDE5MSwgMiwgCi0gICAgMjQ5LCAyMjMsIDcsIDMsIDEsIDE5MSwgMiwgMjQ3LCAyMDksIDcsIDMsIDEsIDI0MCwgMTQ2LCAyLCAyNDIsIDExMywgNywgCi0gICAgMywgMSwgMjQwLCAxNDYsIDIsIDE3OSwgNywgMywgMSwgMjQwLCAxNDYsIDIsIDI0OSwgMjIzLCA3LCAzLCAxLCAyNDAsIAotICAgIDE0NiwgMiwgMjQ3LCAyMDksIDcsIDMsIDEsIDI0NSwgMjUsIDcsIDMsIDEsIDIzMCwgOTgsIDIsIDIxNywgNDIsIDcsIDMsIAotICAgIDEsIDE1NywgMiwgMjQyLCAxMTMsIDcsIDMsIDEsIDE1NywgMiwgMTc5LCA3LCAzLCAxLCAxNTcsIDIsIDI0OSwgMjIzLCA3LCAKLSAgICAzLCAxLCAxNTcsIDIsIDIxNywgNDIsIDcsIDMsIDEsIDE1NywgMiwgMjQ3LCAyMDksIDI0NywgMTIxLCA1MiwgNywgMywgMSwgCi0gICAgMTU3LCAyLCA5MCwgNywgMywgMSwgMTExLCAyLCAyNDIsIDExMywgNywgMywgMSwgMTExLCAyLCAxNzksIDcsIDMsIDEsIAotICAgIDExMSwgMiwgMjQ5LCAyMjMsIDcsIDMsIDEsIDExMSwgMiwgMjQ3LCAyMDksIDcsIDMsIDEsIDIxMywgMTA2LCAyLCAxNzksIAotICAgIDcsIDMsIDEsIDIxNywgMTA0LCA3LCAzLCAxLCAyMTMsIDEwNiwgMiwgMjQ3LCAyMDksIDcsIDYsIDEsIDExOCwgMiwgMjMyLCAKLSAgICAzNywgNywgMywgMSwgMTE4LCAyLCAyMzIsIDM3LCA3LCA2LCAxLCAxMTgsIDIsIDI1MSwgNzQsIDcsIDMsIDEsIDExOCwgMiwgCi0gICAgMjUxLCA3NCwgNywgNiwgMSwgMTE4LCAyLCAyMjcsIDkwLCA3LCAzLCAxLCAxMTgsIDIsIDIyNywgOTAsIDcsIDYsIDEsIAotICAgIDI1MCwgMjUzLCAyLCAxNzksIDcsIDMsIDEsIDI1MCwgMjUzLCAyLCAxNzksIDcsIDYsIDEsIDI1MCwgMjUzLCAyLCAyNDksIAotICAgIDIyMywgNywgMywgMSwgMjUwLCAyNTMsIDIsIDI0OSwgMjIzLCA3LCA2LCAxLCAyNTAsIDI1MywgMiwgNjIsIDQ5LCA3LCAzLCAKLSAgICAxLCAyNTAsIDI1MywgMiwgNjIsIDQ5LCA3LCA2LCAxLCAyNTAsIDI1MywgMiwgMjUwLCAxNjYsIDcsIDMsIDEsIDI1MCwgCi0gICAgMjUzLCAyLCAyNTAsIDE2NiwgNywgNiwgMSwgMjQ5LCA0LCAyLCAyNTAsIDE2NiwgNywgMywgMSwgMjQ5LCA0LCAyLCAyNTAsIAotICAgIDE2NiwgNywgNiwgMSwgMjQ5LCA0LCAyLCA5MCwgNywgMywgMSwgMjQ5LCA0LCAyLCA5MCwgNywgNiwgMSwgMTkxLCAyLCAKLSAgICAyMzIsIDM3LCA3LCAzLCAxLCAxOTEsIDIsIDIzMiwgMzcsIDcsIDYsIDEsIDE5MSwgMiwgMjUxLCA3NCwgNywgMywgMSwgCi0gICAgMTkxLCAyLCAyNTEsIDc0LCA3LCA2LCAxLCAxOTEsIDIsIDYyLCA0OSwgNywgMywgMSwgMTkxLCAyLCA2MiwgNDksIDcsIDYsIAotICAgIDEsIDE5MSwgMiwgMjI3LCA5MCwgNywgMywgMSwgMTkxLCAyLCAyMjcsIDkwLCA3LCA2LCAxLCAxOTEsIDIsIDI1MCwgMTY2LCAKLSAgICA3LCAzLCAxLCAxOTEsIDIsIDI1MCwgMTY2LCA3LCA2LCAxLCAyNDMsIDE3OCwgMiwgMjQ5LCAyMjMsIDcsIDMsIDEsIDI0MywgCi0gICAgMTc4LCAyLCAyNDksIDIyMywgNywgNiwgMSwgMjQzLCAxNzgsIDIsIDI1MSwgNzQsIDcsIDMsIDEsIDI0MywgMTc4LCAyLCAKLSAgICAyNTEsIDc0LCA3LCA2LCAxLCAyNDMsIDE3OCwgMiwgNjIsIDQ5LCA3LCAzLCAxLCAyNDMsIDE3OCwgMiwgNjIsIDQ5LCA3LCAKLSAgICA2LCAxLCAyNDMsIDE3OCwgMiwgMjUwLCAxMTcsIDcsIDMsIDEsIDI0MywgMTc4LCAyLCAyNTAsIDExNywgNywgNiwgMSwgCi0gICAgMjQyLCA0MiwgMiwgMjQ5LCAyMjMsIDcsIDMsIDEsIDI0MiwgNDIsIDIsIDI0OSwgMjIzLCA3LCA2LCAxLCAyNDIsIDQyLCAyLCAKLSAgICA5MCwgNywgMywgMSwgMjQyLCA0MiwgMiwgOTAsIDcsIDYsIDEsIDI0MCwgMTQ2LCAyLCAyMTcsIDQyLCA3LCAzLCAxLCAyNDAsIAotICAgIDE0NiwgMiwgMjE3LCA0MiwgNywgNiwgMSwgMjQwLCAxNDYsIDIsIDIzMiwgMzcsIDcsIDMsIDEsIDI0MCwgMTQ2LCAyLCAKLSAgICAyMzIsIDM3LCA3LCA2LCAxLCAyNDAsIDE0NiwgMiwgMjUxLCA3NCwgNywgMywgMSwgMjQwLCAxNDYsIDIsIDI1MSwgNzQsIDcsIAotICAgIDYsIDEsIDI0MCwgMTQ2LCAyLCAyMjcsIDkwLCA3LCAzLCAxLCAyNDAsIDE0NiwgMiwgMjI3LCA5MCwgNywgNiwgMSwgMjQwLCAKLSAgICAxNDYsIDIsIDYyLCA0OSwgNywgMywgMSwgMjQ3LCA3MywgNzIsIDcsIDYsIDI2LCAyMzYsIDI2LCA3LCAzLCAyNiwgMjM2LCAKLSAgICAyNiwgNywgNiwgMSwgMjM1LCAxNDMsIDIsIDI0OSwgMjIzLCA3LCAzLCAxLCAyMzUsIDE0MywgMiwgMjQ5LCAyMjMsIDcsIDYsIAotICAgIDEsIDIzNSwgMjgsIDIsIDI1MCwgMTE3LCA3LCAzLCAxLCAyMzUsIDI4LCAyLCAyNTAsIDExNywgNywgMywgMSwgMjMzLCAKLSAgICAyNDgsIDcsIDYsIDEsIDIzMywgMTcxLCAyLCAxNzksIDcsIDMsIDEsIDIzMywgMTcxLCAyLCAxNzksIDcsIDYsIDEsIDIzMywgCi0gICAgMTcxLCAyLCAyNTAsIDExNywgNywgMywgMSwgMjMzLCAxNzEsIDIsIDI1MCwgMTE3LCA3LCA2LCAxLCAyMzMsIDE3MSwgMiwgCi0gICAgMjUwLCAxNjYsIDcsIDMsIDEsIDIzMywgMTcxLCAyLCAyNTAsIDE2NiwgNywgNiwgMSwgMjMzLCAxNzEsIDIsIDIzMSwgMzcsIAotICAgIDI0NywgNzQsIDcsIDMsIDEsIDIzMywgMTcxLCAyLCAyMzEsIDM3LCAyNDcsIDc0LCA3LCA2LCAxLCAyMzMsIDE3MSwgMiwgCi0gICAgOTAsIDcsIDMsIDEsIDIzMywgMTcxLCAyLCA5MCwgNywgNiwgMSwgMjMwLCA5OCwgMiwgMTc5LCA3LCAzLCAxLCAyMzAsIDk4LCAKLSAgICAyLCAxNzksIDcsIDYsIDEsIDIzMCwgOTgsIDIsIDI1MCwgMTE3LCA3LCAzLCAxLCAyMzAsIDk4LCAyLCAyNTAsIDExNywgNywgCi0gICAgNiwgMSwgMjMwLCA5OCwgMiwgMjUwLCAxNjYsIDcsIDMsIDEsIDIzMCwgOTgsIDIsIDI1MCwgMTY2LCA3LCAzLCAxLCAyMzAsIAotICAgIDk4LCAyMjUsIDg0LCAyNTEsIDcsIDI1MywgMjI2LCA3LCA2LCAxLCAyNDUsIDk2LCA3LCAzLCAxLCAyNDUsIDk2LCA3LCA2LCAKLSAgICAxLCAxNTcsIDIsIDIzMiwgMzcsIDcsIDMsIDEsIDE1NywgMiwgMjMyLCAzNywgNywgNiwgMSwgMTU3LCAyLCAyNTEsIDc0LCAKLSAgICA3LCAzLCAxLCAxNTcsIDIsIDI1MSwgNzQsIDcsIDYsIDEsIDE1NywgMiwgNTEsIDE3OSwgNywgMywgMSwgMTU3LCAyLCA1MSwgCi0gICAgMTc5LCA3LCA2LCAyNiwgMjI3LCA5OSwgNywgMywgMjYsIDIyNywgOTksIDcsIDYsIDEsIDIyNCwgMTEzLCAyLCAxNzksIDcsIAotICAgIDMsIDEsIDIyNCwgMTEzLCAyLCAxNzksIDcsIDYsIDEsIDIyNCwgMTEzLCAyLCAyNTAsIDExNywgNywgMywgMSwgMjI0LCAKLSAgICAxMTMsIDIsIDI1MCwgMTE3LCA3LCA2LCAxLCAyMjQsIDExMywgMiwgMjUwLCAxNjYsIDcsIDMsIDEsIDIyNCwgMTEzLCAyLCAKLSAgICAyNTAsIDE2NiwgNywgNiwgMSwgMjIzLCA0LCAyLCAxNzksIDcsIDMsIDEsIDIyMywgNCwgMiwgMTc5LCA3LCA2LCAxLCAyMjMsIAotICAgIDQsIDIsIDI0OSwgMjIzLCA3LCAzLCAxLCAyMjMsIDQsIDIsIDI0OSwgMjIzLCA3LCA2LCAxLCAyMjMsIDQsIDIsIDI1MCwgCi0gICAgMTE3LCA3LCAzLCAxLCAyMjMsIDQsIDIsIDI1MCwgMTE3LCA3LCA2LCAxLCAyMjMsIDQsIDIsIDI1MCwgMTY2LCA3LCAzLCAxLCAKLSAgICAyMjMsIDQsIDIsIDI1MCwgMTY2LCA3LCA2LCAxLCAyMTgsIDEwMCwgMiwgMjUwLCAxMTcsIDcsIDMsIDEsIDIxOCwgMTAwLCAKLSAgICAyLCAyNTAsIDExNywgNywgNiwgMSwgMjE4LCAxMDAsIDIsIDI1MCwgMTY2LCA3LCAzLCAxLCAyMTgsIDEwMCwgMiwgMjUwLCAKLSAgICAxNjYsIDcsIDYsIDEsIDIxOCwgMTAwLCAyLCA5MCwgNywgMywgMSwgMjE4LCAxMDAsIDIsIDkwLCA3LCA2LCAxLCAxMTEsIDIsIAotICAgIDIxNywgNDIsIDcsIDMsIDEsIDExMSwgMiwgMjE3LCA0MiwgNywgNiwgMSwgMTExLCAyLCAyMzIsIDM3LCA3LCAzLCAxLCAKLSAgICAxMTEsIDIsIDIzMiwgMzcsIDcsIDYsIDEsIDExMSwgMiwgMjUxLCA3NCwgNywgMywgMSwgMTExLCAyLCAyNTEsIDc0LCA3LCAKLSAgICA2LCAxLCAxMTEsIDIsIDIyMywgMTMxLCA0OSwgNywgMywgMSwgMTExLCAyLCAyMjMsIDEzMSwgNDksIDcsIDYsIDEsIDExMSwgCi0gICAgMiwgNTEsIDE3OSwgNywgMywgMSwgMTExLCAyLCA1MSwgMTc5LCA3LCA2LCAxLCAxMTEsIDIsIDIyNywgOTAsIDcsIDMsIDEsIAotICAgIDExMSwgMiwgMjI3LCA5MCwgNywgNiwgMSwgMjE0LCA4MywgMiwgMjQ5LCAyMjMsIDcsIDMsIDEsIDIxNCwgODMsIDIsIDI0OSwgCi0gICAgMjIzLCA3LCA2LCAxLCAyMTMsIDEwNiwgMiwgMjQ5LCAyMjMsIDcsIDMsIDEsIDIxMywgMTA2LCAyLCAyNDksIDIyMywgNywgCi0gICAgNiwgMSwgMjEzLCAxMDYsIDIsIDI0NywgMjA5LCA3LCA2LCAxLCAyMTIsIDE1MywgMiwgMTc5LCA3LCAzLCAxLCAyMTIsIAotICAgIDE1MywgMiwgMTc5LCA3LCA2LCAxLCAyMTIsIDE1MywgMiwgNjIsIDQ5LCA3LCAzLCAxLCAyMTIsIDE1MywgMiwgNjIsIDQ5LCAKLSAgICA3LCA2LCAxLCAyMTIsIDE1MywgMiwgMjUwLCAxNjYsIDcsIDMsIDEsIDIxMiwgMTUzLCAyLCAyNTAsIDE2NiwgNywgMywgMSwgCi0gICAgMTg0LCAxOTcsIDcsIDMsIDEsIDU0LCAyLCA5MCwgNywgNiwgMSwgNTQsIDIsIDEwMSwgNywgNiwgMSwgNTQsIDIsIDIxNiwgCi0gICAgMjI0LCA3LCAzLCAxLCA1NCwgMiwgMjE2LCAyMjQsIDcsIDYsIDEsIDE2MCwgMTg5LCA3LCAzLCAxLCAxNjAsIDE4OSwgNywgCi0gICAgNiwgMSwgMjI3LCA0MCwgNzUsIDcsIDYsIDEsIDI1MCwgMjUzLCAyLCAxMDEsIDcsIDMsIDEsIDI1MCwgMjUzLCAyLCAxMDEsIAotICAgIDcsIDYsIDEsIDI1NCwgMTI0LCAyNDksIDMsIDcsIDYsIDEsIDI0OSwgNCwgMiwgMTAxLCA3LCA2LCAxLCAyNDksIDQsIDIsIAotICAgIDIxNiwgMjI0LCA3LCAzLCAxLCAyNDksIDQsIDIsIDIxNiwgMjI0LCA3LCAzLCAxLCAyMTYsIDU4LCAyNDgsIDUsIDcsIDYsIAotICAgIDEsIDIyMywgMjAyLCA3NCwgNywgNiwgMSwgMjIyLCAxMTMsIDcsIDYsIDEsIDIyNywgNDAsIDc0LCA3LCA2LCAxLCAyNDQsIAotICAgIDIzMSwgMiwgMTAxLCA3LCAzLCAxLCAyNDQsIDIzMSwgMiwgMTAxLCA3LCA2LCAxLCAyNDMsIDE3OCwgMiwgMTAxLCA3LCA2LCAKLSAgICAxLCAyNDMsIDgzLCA3LCAzLCAxLCAyNDAsIDE5MywgNywgNiwgMSwgMjM1LCAxODMsIDcsIDYsIDEsIDI0MCwgMTQ2LCAyLCAKLSAgICA5MCwgNywgNiwgMSwgMjM1LCAyOCwgMiwgMTAxLCA3LCAzLCAxLCAyMzUsIDI4LCAyLCAxMDEsIDcsIDMsIDEsIDIzMywgCi0gICAgMTcxLCAyLCAxMzQsIDcsIDMsIDEsIDIzMywgMTI0LCAyLCA5MCwgNywgNiwgMSwgMjE2LCA1OCwgMTgzLCA3LCA2LCAxLCAKLSAgICAyMzAsIDk4LCAyLCA0MiwgMTAxLCA3LCAzLCAxLCAyMzAsIDk4LCAyLCAxODQsIDQ2LCAyMzMsIDYwLCA3LCA2LCAxLCAxNTcsIAotICAgIDIsIDIzMSwgMzcsIDIxNywgNDIsIDcsIDYsIDEsIDE1NywgMiwgMjQwLCAyMzUsIDcsIDMsIDEsIDE1NywgMiwgMjQwLCAKLSAgICAyMzUsIDcsIDYsIDEsIDIyNywgODUsIDcsIDMsIDEsIDIyNywgODUsIDcsIDYsIDEsIDIyNiwgMjMwLCAyLCAxMDEsIDcsIDMsIAotICAgIDEsIDIyNiwgMjMwLCAyLCAxMDEsIDcsIDEsIDIxMiwgMjA1LCA3LCA2LCAxLCAxNjAsIDEwOSwgNywgMywgMSwgMTYwLCAKLSAgICAxMDksIDcsIDYsIDEsIDI0NSwgNDAsIDcsIDEsIDIyMywgMjAyLCAyNDUsIDQxLCAyMzIsIDE3NywgNywgMywgMSwgMjE4LCAKLSAgICAxMDAsIDIsIDIyNiwgMTkzLCAxMDEsIDcsIDYsIDEsIDIxOCwgMTAwLCAyLCAxMDEsIDcsIDMsIDEsIDIxOCwgMTAwLCAyLCAKLSAgICAxMDEsIDcsIDYsIDEsIDIxOCwgMTAwLCAyLCAyMjMsIDIwNywgMTAxLCA3LCA2LCAxLCAxMTEsIDIsIDI0MCwgMjM1LCA3LCAKLSAgICAzLCAxLCAxMTEsIDIsIDI0MCwgMjM1LCA3LCA2LCAxLCAyMTUsIDEyOCwgNywgNiwgMSwgMjE1LCA4MCwgMiwgMTAxLCA3LCAKLSAgICA2LCAxLCAyMTMsIDEwNiwgMiwgMTAxLCA3LCAzLCAxLCAyMTMsIDEwNiwgMiwgMTAxLCA3LCA2LCAxLCAyMTIsIDE1MywgMiwgCi0gICAgOTAsIDcsIDMsIDEsIDIxMiwgMTUzLCAyLCA5MCwgNywgNiwgMSwgMjQ0LCAyMzIsIDcsIDYsIDEsIDI0NCwgMjMzLCAyMjMsIAotICAgIDIwMSwgNywgMywgMSwgMjQ0LCAyMzMsIDIyMywgMjAxLCA3LCAzLCAxLCAyNDQsIDIzMywgMiwgMjE4LCAyNywgNywgMSwgCi0gICAgMTE3LCAyLCA5MCwgNywgNiwgMSwgMTYwLCAxODAsIDcsIDMsIDEsIDE2MCwgMTgwLCA3LCAxLCAyMzUsIDE5MSwgMjQyLCAKLSAgICAxNTYsIDIxOSwgNzAsIDIsIDkwLCA3LCAxLCAyMTMsIDE2OSwgNywgMSwgMjQ3LCAyNTQsIDI0OSwgMjA0LCA3LCAxLCAyMzMsIAotICAgIDEwMCwgMjQ5LCAyMDQsIDcsIDEsIDI1NCwgNDYsIDI0OSwgMjA0LCA3LCAxLCAyMjMsIDIwNywgMjQ5LCAyMDQsIDcsIDYsIAotICAgIDEsIDI0NSwgMjUxLCAyLCAyNTAsIDE2NiwgNywgNiwgMSwgMjQ5LCA0LCAyLCAzLCAxLCAyMTIsIDE1MywgMiwgMjUwLCAKLSAgICAxNjYsIDcsIDMsIDEsIDI0NSwgMjUxLCAyLCAyNTAsIDE2NiwgNywgNiwgMSwgMjMyLCAyMTcsIDcsIDYsIDEsIDIzMywgCi0gICAgMTcxLCAyLCAzLCAxLCAyMzUsIDE0MiwgNywgMywgMSwgMjMyLCAyMTcsIDcsIDYsIDEsIDIyOSwgMTcsIDcsIDYsIDEsIAotICAgIDIzMCwgOTgsIDIsIDMsIDEsIDIzNSwgMTQyLCA3LCAzLCAxLCAyMjksIDE3LCA3LCA2LCAxLCAxMTgsIDIsIDI1MCwgMTY2LCAKLSAgICA3LCAzLCAxLCAxMTgsIDIsIDI1MCwgMTY2LCA3LCA2LCAxLCAyNDAsIDE0NiwgMiwgMjUwLCAxNjYsIDcsIDMsIDEsIDI0MCwgCi0gICAgMTQ2LCAyLCAyNTAsIDE2NiwgNywgNiwgMSwgMTU3LCAyLCAyNTAsIDE2NiwgNywgMywgMSwgMTU3LCAyLCAyNTAsIDE2NiwgCi0gICAgNywgNiwgMSwgMTExLCAyLCAyNTAsIDE2NiwgNywgMywgMSwgMTExLCAyLCAyNTAsIDE2NiwgNywgNiwgMSwgMTExLCAyLCAKLSAgICAyNDcsIDIxMCwgMjQsIDIzMiwgMzcsIDcsIDMsIDEsIDExMSwgMiwgMjQ3LCAyMTAsIDI0LCAyMzIsIDM3LCA3LCA2LCAxLCAKLSAgICAxMTEsIDIsIDI0NywgMjEwLCAyNCwgMTc5LCA3LCAzLCAxLCAxMTEsIDIsIDI0NywgMjEwLCAyNCwgMTc5LCA3LCA2LCAxLCAKLSAgICAxMTEsIDIsIDI0NywgMjEwLCAyNCwgMjUwLCAxNjYsIDcsIDMsIDEsIDExMSwgMiwgMjQ3LCAyMTAsIDI0LCAyNTAsIDE2NiwgCi0gICAgNywgNiwgMSwgMTExLCAyLCAyNDcsIDIxMCwgMjQsIDI0MiwgMTEzLCA3LCAzLCAxLCAxMTEsIDIsIDI0NywgMjEwLCAyNCwgCi0gICAgMjQyLCAxMTMsIDcsIDMsIDEsIDIxNiwgNTgsIDc0LCA3LCA2LCAxLCAxMTgsIDIsIDI0NywgMjEwLCAyNCwgMjMyLCAzNywgCi0gICAgNywgMywgMSwgMTE4LCAyLCAyNDcsIDIxMCwgMjQsIDIzMiwgMzcsIDcsIDYsIDEsIDExOCwgMiwgNjIsIDc4LCAyNCwgMjMyLCAKLSAgICAzNywgNywgMywgMSwgMTE4LCAyLCA2MiwgNzgsIDI0LCAyMzIsIDM3LCA3LCA2LCAxLCAyNTQsIDE0OSwgMiwgMjMyLCAzNywgCi0gICAgNywgMywgMSwgMjU0LCAxNDksIDIsIDIzMiwgMzcsIDcsIDYsIDEsIDI0MywgMTc4LCAyLCA5MCwgNywgMywgMSwgMjQzLCAKLSAgICAxNzgsIDIsIDkwLCA3LCA2LCAxLCAyNDMsIDE3OCwgMiwgMjUwLCAxNjYsIDcsIDMsIDEsIDI0MywgMTc4LCAyLCAyNTAsIAotICAgIDE2NiwgNywgNiwgMSwgMjM1LCAyOCwgMiwgMjUwLCAxNjYsIDcsIDMsIDEsIDIzNSwgMjgsIDIsIDI1MCwgMTY2LCA3LCA2LCAKLSAgICAxLCAxNTcsIDIsIDIyNywgOTAsIDcsIDMsIDEsIDE1NywgMiwgMjI3LCA5MCwgNywgNiwgMSwgMTU3LCAyLCAyMjcsIDkxLCAKLSAgICAyNCwgMjMyLCAzNywgNywgMywgMSwgMTU3LCAyLCAyMjcsIDkxLCAyNCwgMjMyLCAzNywgNywgNiwgMSwgMjQ0LCAyMzMsIDIsIAotICAgIDI1MCwgMTY2LCA3LCAzLCAxLCAyNDQsIDIzMywgMiwgMjUwLCAxNjYsIDcsIDMsIDEsIDIzNSwgMTQzLCAyLCAyNTAsIDE2NiwgCi0gICAgNywgNiwgMSwgMjQ1LCAyNTAsIDcsIDYsIDEsIDI0OSwgNCwgMiwgMywgMSwgMjEyLCAxNTIsIDcsIDMsIDEsIDI0NSwgMjUwLCAKLSAgICA3LCA2LCAxLCAyNDMsIDE3OCwgMiwgMTc5LCA3LCAzLCAxLCAyNDMsIDE3OCwgMiwgMTc5LCA3LCA2LCAxLCAyNDAsIDE5MSwgCi0gICAgNywgNiwgMSwgMjEzLCAxNjksIDcsIDYsIDEsIDIzMCwgOTgsIDIsIDI0MiwgMTEzLCA3LCAzLCAxLCAyMzAsIDk4LCAyLCAKLSAgICAyNDIsIDExMywgNywgNiwgMSwgMTE4LCAyLCAyMjMsIDEzMSwgNzgsIDI0LCAxNzksIDcsIDMsIDEsIDExOCwgMiwgMjIzLCAKLSAgICAxMzEsIDc4LCAyNCwgMTc5LCA3LCA2LCAxLCAyNTQsIDE0OSwgMiwgMTc5LCA3LCAzLCAxLCAyNTQsIDE0OSwgMiwgMTc5LCAKLSAgICA3LCA2LCAxLCAxNTcsIDIsIDIxOSwgNDUsIDI0LCAxNzksIDcsIDMsIDEsIDE1NywgMiwgMjE5LCA0NSwgMjQsIDE3OSwgNywgCi0gICAgNiwgMSwgMTE4LCAyLCA1MSwgMjQyLCAxMTMsIDcsIDMsIDEsIDExOCwgMiwgNTEsIDI0MiwgMTEzLCA3LCA2LCAxLCAxMTgsIAotICAgIDIsIDIzNSwgMTkxLCAyNTEsIDc0LCA3LCAzLCAxLCAxMTgsIDIsIDIzNSwgMTkxLCAyNTEsIDc0LCA3LCA2LCAxLCAxOTEsIAotICAgIDIsIDUxLCAyNDIsIDExMywgNywgMywgMSwgMTkxLCAyLCA1MSwgMjQyLCAxMTMsIDcsIDYsIDEsIDE5MSwgMiwgMjM1LCAKLSAgICAxOTEsIDI1MSwgNzQsIDcsIDMsIDEsIDE5MSwgMiwgMjM1LCAxOTEsIDI1MSwgNzQsIDcsIDYsIDEsIDI0MCwgMTQ2LCAyLCAKLSAgICA1MSwgMjQyLCAxMTMsIDcsIDMsIDEsIDI0MCwgMTQ2LCAyLCA1MSwgMjQyLCAxMTMsIDcsIDYsIDEsIDI0MCwgMTQ2LCAyLCAKLSAgICAyMzUsIDE5MSwgMjUxLCA3NCwgNywgMywgMSwgMjQwLCAxNDYsIDIsIDIzNSwgMTkxLCAyNTEsIDc0LCA3LCA2LCAxLCAxNTcsIAotICAgIDIsIDUxLCAyNDIsIDExMywgNywgMywgMSwgMTU3LCAyLCA1MSwgMjQyLCAxMTMsIDcsIDYsIDEsIDE1NywgMiwgMjM1LCAKLSAgICAxOTEsIDI1MSwgNzQsIDcsIDMsIDEsIDE1NywgMiwgMjM1LCAxOTEsIDI1MSwgNzQsIDcsIDYsIDEsIDIyNCwgMTEzLCAyLCAKLSAgICA1MSwgMjQyLCAxMTMsIDcsIDMsIDEsIDIyNCwgMTEzLCAyLCA1MSwgMjQyLCAxMTMsIDcsIDYsIDEsIDIyNCwgMTEzLCAyLCAKLSAgICAyMzUsIDE5MSwgMjUxLCA3NCwgNywgMywgMSwgMjI0LCAxMTMsIDIsIDIzNSwgMTkxLCAyNTEsIDc0LCA3LCA2LCAxLCAxMTEsIAotICAgIDIsIDUxLCAyNDIsIDExMywgNywgMywgMSwgMTExLCAyLCA1MSwgMjQyLCAxMTMsIDcsIDYsIDEsIDExMSwgMiwgMjM1LCAKLSAgICAxOTEsIDI1MSwgNzQsIDcsIDMsIDEsIDExMSwgMiwgMjM1LCAxOTEsIDI1MSwgNzQsIDcsIDYsIDEsIDIyMywgNCwgMiwgCi0gICAgMjQ5LCAxNTgsIDU1LCA3LCAzLCAxLCAyMjMsIDQsIDIsIDI0OSwgMTU4LCA1NSwgNywgNiwgMSwgMjE4LCAxMDAsIDIsIAotICAgIDI0OSwgMTU4LCA1NSwgNywgMywgMSwgMjE4LCAxMDAsIDIsIDI0OSwgMTU4LCA1NSwgNywgNiwgMSwgMjEyLCAyMjIsIDcsIAotICAgIDMsIDEsIDIxMiwgMjIyLCA3LCA2LCAxLCAyNDIsIDQyLCAyLCAyNTAsIDE2NiwgNywgMywgMSwgMjQyLCA0MiwgMiwgMjUwLCAKLSAgICAxNjYsIDcsIDYsIDEsIDIzMCwgOTgsIDIsIDE4NCwgNDYsIDIzMywgNjAsIDcsIDMsIDEsIDI0OSwgNCwgMiwgMjQ5LCA0MSwgCi0gICAgNywgNiwgMSwgMjI3LCAyLCA3LCAzLCAxLCAyMjcsIDIsIDcsIDYsIDEsIDIxMiwgMTUzLCAyLCAxMDEsIDcsIDMsIDEsIAotICAgIDIxMiwgMTUzLCAyLCAxMDEsIDcsIDYsIDEsIDExOCwgMiwgNjIsIDQ5LCA3LCAzLCAxLCAxMTgsIDIsIDYyLCA0OSwgNywgNiwgCi0gICAgMSwgMTkxLCAyLCAyNTAsIDExNywgNywgMywgMSwgMTkxLCAyLCAyNTAsIDExNywgNywgNiwgMSwgMTU3LCAyLCAyNDcsIAotICAgIDIxMCwgMjQsIDIzMiwgMzcsIDcsIDMsIDEsIDE1NywgMiwgMjQ3LCAyMTAsIDI0LCAyMzIsIDM3LCA3LCA2LCAxLCAxNTcsIAotICAgIDIsIDIxNywgNDMsIDI0LCAyMzIsIDM3LCA3LCAzLCAxLCAxNTcsIDIsIDIxNywgNDMsIDI0LCAyMzIsIDM3LCA3LCA2LCAxLCAKLSAgICAxNTcsIDIsIDYyLCA0OSwgNywgMywgMSwgMTU3LCAyLCA2MiwgNDksIDcsIDYsIDEsIDE1NywgMiwgNjIsIDc4LCAyNCwgCi0gICAgMjMyLCAzNywgNywgMywgMSwgMTU3LCAyLCA2MiwgNzgsIDI0LCAyMzIsIDM3LCA3LCA2LCAxLCAyMTMsIDEwNiwgMiwgMjMyLCAKLSAgICAzNywgNywgMywgMSwgMjEzLCAxMDYsIDIsIDIzMiwgMzcsIDcsIDMsIDEsIDIzMywgMTcxLCAyLCAyNDksIDQxLCA3LCAzLCAKLSAgICAxLCAyMzAsIDk4LCAyLCAyNDksIDQxLCA3LCAzLCAxLCAyMTgsIDEwMCwgMiwgMjQ5LCA0MSwgNywgMywgMSwgMjQ3LCA3MywgCi0gICAgMjM1LCAxNDIsIDcsIDMsIDEsIDI0OCwgODksIDI0NywgMTcyLCA3LCAzLCAxLCAyMjQsIDE3NiwgMjQ3LCAxNzIsIDcsIDYsIAotICAgIDEsIDExOCwgMiwgOTAsIDcsIDYsIDEsIDI1MCwgMjUzLCAyLCA5MCwgNywgMywgMSwgMjUwLCAyNTMsIDIsIDkwLCA3LCA2LCAKLSAgICAxLCAyMzMsIDE3MSwgMiwgMTM0LCA3LCA2LCAxLCAyMTgsIDEwMCwgMiwgMjQ3LCAyMDcsIDkwLCA3LCAzLCAxLCAyMjMsIDQsIAotICAgIDIsIDIxOCwgMTk1LCAyMTgsIDI3LCA3LCAzLCAxLCAyMTIsIDE1MywgMiwgMjE4LCAxOTUsIDIxOCwgMjcsIDcsIDYsIDEsIAotICAgIDI0MiwgMTU2LCAyMTksIDY5LCA3LCAzLCAxLCAyNDIsIDE1NiwgMjE5LCA2OSwgNywgNiwgMSwgNTQsIDIsIDkwLCA3LCA2LCAKLSAgICAxLCAxMTEsIDEzNCwgNywgNiwgMSwgMjE2LCA1OCwgMjE1LCA3OSwgNywgNiwgMSwgMTkxLCAyLCA5MCwgNywgMywgMSwgCi0gICAgMTkxLCAyLCA5MCwgNywgNiwgMSwgMjM1LCAxNDMsIDIsIDkwLCA3LCAzLCAxLCAyMzUsIDE0MywgMiwgOTAsIDcsIDYsIDEsIAotICAgIDMsIDIyNCwgMjQxLCAyLCAyNDEsIDM4LCAyMTgsIDI3LCA3LCAzLCAxLCAyMjQsIDI0MSwgMiwgMjQxLCAzOCwgMjE4LCAyNywgCi0gICAgNywgNiwgMSwgMjI0LCAxMTMsIDIsIDkwLCA3LCAzLCAxLCAyMjQsIDExMywgMiwgOTAsIDcsIDYsIDEsIDIxMywgMTA2LCAyLCAKLSAgICA5MCwgNywgMywgMSwgMjEzLCAxMDYsIDIsIDkwLCA3LCAzLCAxLCAyMTYsIDU4LCA2MSwgNywgMywgMSwgMjU0LCA1MiwgNywgCi0gICAgMywgMSwgMjE2LCA1OCwgMjU0LCA1MiwgNywgMywgMSwgNTQsIDIsIDEwMSwgNywgMywgMSwgMjI3LCA0MCwgNzUsIDcsIDMsIAotICAgIDEsIDI1MCwgMjUzLCAyLCAyNDksIDQxLCA3LCAzLCAxLCAyNDksIDQsIDIsIDIxOCwgMjcsIDcsIDMsIDEsIDI0OSwgNCwgMiwgCi0gICAgMTAxLCA3LCAzLCAxLCAyMjMsIDIwMiwgNzQsIDcsIDMsIDEsIDIyMiwgMTEzLCA3LCAzLCAxLCAyMjIsIDExNCwgMiwgMTAxLCAKLSAgICA3LCAzLCAxLCAyMjcsIDQwLCA3NCwgNywgMywgMSwgMjIzLCAyMDIsIDIyNywgNDAsIDc0LCA3LCAzLCAxLCAyMjMsIDIwMiwgCi0gICAgMjI3LCA0MCwgMTkxLCAyLCAxMDEsIDcsIDMsIDEsIDI0OSwgMTkzLCAyMjMsIDIwMiwgMjI3LCA0MCwgNzQsIDcsIDMsIDEsIAotICAgIDI0NywgNzMsIDIzNSwgMTQzLCAyLCA5MCwgNywgMywgMSwgMjQzLCAxNzgsIDIsIDEwMSwgNywgMywgMSwgMTEzLCAyNDMsIAotICAgIDE3NywgNywgMSwgMywgNiwgMjQzLCAxNzcsIDcsIDMsIDEsIDI0MywgODMsIDcsIDMsIDEsIDIyNCwgNDMsIDI0MCwgMjM1LCAKLSAgICA3LCAzLCAxLCAyMTYsIDU4LCAyNDIsIDQxLCA3LCAzLCAxLCAyNDIsIDQyLCAyLCAxMDEsIDcsIDMsIDEsIDI0MSwgMTkyLCAKLSAgICAyLCAxMDEsIDcsIDMsIDEsIDI0MCwgMTQ2LCAyLCA5MCwgNywgMywgMSwgMjM1LCAxODMsIDcsIDEsIDMsIDYsIDcyLCA3LCAKLSAgICAzLCAxLCAyMzMsIDE3MSwgMiwgMjMxLCAzNywgMjE3LCA0MiwgNywgMywgMSwgMjMzLCAxNzEsIDIsIDI1MSwgMjE4LCA3LCAKLSAgICAzLCAxLCAyMzMsIDE3MSwgMiwgMjIzLCAyMDcsIDEwMSwgNywgMywgMSwgMjMzLCAyNywgNywgMywgMSwgMjE2LCA1OCwgCi0gICAgMTgzLCA3LCAzLCAxLCAyMTYsIDU4LCAyMzIsIDExMCwgMiwgMTg0LCAyMzMsIDYwLCA3LCAzLCAxLCAyMzIsIDExMCwgMiwgCi0gICAgMTAxLCA3LCAzLCAxLCAyMzAsIDk4LCAyLCA0MiwgMTAxLCA3LCAzLCAxLCAyMzAsIDk4LCAyLCAyMjMsIDIwNywgMTAxLCA3LCAKLSAgICAxLCAzLCA2LCAyMDQsIDcsIDMsIDEsIDI1MiwgNTQsIDc1LCA3LCAxLCAzLCA2LCAyMjcsIDk5LCA3LCAzLCAxLCAyNDksIAotICAgIDE5MywgMjI3LCA2NywgNywgMywgMSwgMjI2LCA5LCA3LCAzLCAxLCAyMTYsIDU4LCAxNDksIDcsIDMsIDEsIDIxNiwgNTgsIAotICAgIDIyNCwgMTEzLCAyLCAxODQsIDIzMywgNjAsIDcsIDMsIDEsIDIxNiwgNTgsIDIyNCwgMTEzLCAyLCAxMDEsIDcsIDMsIDEsIAotICAgIDIyNCwgMTEzLCAyLCAxODQsIDIzMywgNjAsIDcsIDMsIDEsIDIyNCwgMTEzLCAyLCAyMTgsIDI3LCA3LCAzLCAxLCAyMjQsIAotICAgIDExMywgMiwgMjQ0LCA1NiwgNywgMywgMSwgMjIzLCAyMDIsIDIyNCwgMTEzLCAyLCAyNDQsIDU2LCA3LCAxLCAzLCA2LCAKLSAgICAxNDksIDcsIDEsIDMsIDYsIDIzNSwgMTkxLCAxNDksIDcsIDMsIDEsIDIyMywgNCwgMiwgMTAxLCA3LCAzLCAxLCAyNDUsIAotICAgIDQwLCA3LCAzLCAxLCAyNDcsIDczLCAyMzUsIDE0MywgMiwgMjE5LCA0NSwgMjQsIDEwMSwgNywgMywgMSwgMjE5LCAxNjMsIAotICAgIDIyMywgMjAyLCAyNDUsIDQwLCA3LCAzLCAxLCAyNDUsIDQxLCAyLCAyNDksIDQxLCA3LCAzLCAxLCAyMTYsIDU4LCAyMTgsIAotICAgIDk5LCA3LCAzLCAxLCAyMTgsIDEwMCwgMiwgMjIzLCAyMDcsIDEwMSwgNywgMywgMSwgMTExLCAxMzQsIDcsIDMsIDEsIDIxNSwgCi0gICAgMTI4LCA3LCAzLCAxLCAyMTUsIDgwLCAyLCAxMDEsIDcsIDMsIDEsIDIxNiwgNTgsIDIxNSwgNzksIDcsIDMsIDEsIDIxNiwgCi0gICAgNTgsIDIxNCwgODIsIDcsIDMsIDEsIDIxNiwgNTgsIDIxMywgMTA1LCA3LCAxLCAzLCA2LCAyMTMsIDEwNSwgNywgMywgMSwgCi0gICAgMjEyLCAxNTMsIDIsIDIyMywgMjA3LCAxMDEsIDcsIDMsIDEsIDIxMiwgMTUzLCAyLCAyNDksIDQxLCA3LCAzLCAxLCAyNDQsIAotICAgIDIzMiwgNywgMywgMSwgMjQ0LCAyMzMsIDIsIDI0OSwgNDEsIDcsIDEsIDI0MiwgMTU2LCAyMTksIDY5LCA3LCAxLCAyMjYsIAotICAgIDE1LCAyMTQsIDExNiwgMjQzLCAyMTksIDcsIDEsIDIzNSwgMTkxLCAyNDIsIDE1NiwgMjE5LCA2OSwgNywgMSwgMjE5LCA1MCwgCi0gICAgMjUwLCAyNTIsIDcsIDEsIDI1MSwgMTY5LCAyNDksIDIwNCwgNywgMSwgMywgNiwgMjUzLCA3NCwgNywgMywgMSwgMjQ5LCAKLSAgICAxOTMsIDIyNywgNDAsIDc0LCA3LCAxLCAzLCA2LCAyNDMsIDE3OCwgMiwgMTAxLCA3LCAxLCAzLCA2LCAyNDIsIDQxLCA3LCAKLSAgICAzLCAxLCAyMzUsIDE0MywgMiwgMjQ5LCA2NywgNywgMywgMSwgMjE2LCA1OCwgMjM1LCAyNywgNywgMSwgMywgNiwgMTUwLCAKLSAgICA3LCAzLCAxLCAyMjQsIDI0MSwgMiwgMTAxLCA3LCAxLCAyNDIsIDE1NiwgMjE5LCA3MCwgMiwgOTAsIDcsIDEsIDIyMywgCi0gICAgMjAyLCAyNDIsIDE1NiwgMjE5LCA3MCwgMiwgOTAsIDcsIDMsIDEsIDI0NSwgMjUxLCAyNDcsIDE3MiwgNywgMywgMSwgMjQ3LCAKLSAgICAyMzMsIDI0NywgMTcyLCA3LCAzLCAxLCAyNDUsIDI1MSwgMjQ3LCAxNzMsIDIsIDI0OSwgNDEsIDcsIDMsIDEsIDIxNiwgCi0gICAgMTQzLCAyNDcsIDE3MiwgNywgMywgMSwgMjE3LCAxODgsIDI0NywgMTcyLCA3LCAzLCAxLCAyMTcsIDIzNiwgMjQ3LCAxNzMsIAotICAgIDIsIDI0OSwgNDEsIDcsIDMsIDEsIDI0NCwgMTAzLCAyNDcsIDE3MiwgNywgMywgMSwgMjMyLCAxNTgsIDI0NywgMTcyLCA3LCAKLSAgICAzLCAxLCAyMzIsIDExMSwgMjQ3LCAxNzIsIDcsIDEsIDI1MSwgMTY5LCAyMjYsIDU2LCA3LCAxLCAyNTEsIDE3NywgMjI2LCAKLSAgICA1NiwgNywgMywgMSwgMjE2LCA1OCwgMjQyLCA0MiwgMiwgMjQ0LCA1NiwgNywgMywgMSwgMjE2LCA1OCwgMjQyLCA0MiwgMiwgCi0gICAgMjQ0LCA1NywgMjQsIDIxOCwgMjcsIDU5LCAxLCAzLCAyNDIsIDQxLCA1OSwgMSwgMywgMjQyLCA0MiwgMiwgMTAxLCA1OSwgCi0gICAgMSwgMywgMjM1LCAxNDIsIDU5LCAxLCAzLCAxNDksIDU5LCAxLCAzLCAyMTYsIDU4LCAxNDksIDU5LCAxLCAzLCAyMTYsIDU4LCAKLSAgICAyMjQsIDExMywgMiwgMTAxLCA1OSwgMSwgMywgNiwgMjM1LCAxOTEsIDE0OSwgNTksIDEsIDMsIDIxNCwgODIsIDU5LCAxLCAKLSAgICAzLCAyMTMsIDEwNSwgNTksIDEsIDIyNSwgNzEsIDU5LCAxLCA1MSwgMjI1LCA3MSwgNTksIDEsIDIxNiwgNTgsIDI0OSwgCi0gICAgMTU3LCA1OSwgMSwgMjUzLCAyMjYsIDU5LCAxLCAyMjMsIDIwMiwgMjQ5LCAxNTcsIDU5LCAxLCA0NiwgMTUxLCAyMjMsIAotICAgIDEzMCwgNTksIDEsIDQyLCAxNTEsIDIyMywgMTMwLCA1OSwgMSwgMjQyLCAxNTYsIDIxOSwgNjksIDU5LCAxLCAyMjMsIDIwMiwgCi0gICAgMjQyLCAxNTYsIDIxOSwgNjksIDU5LCAxLCA0MiwgMjUzLCAxNjQsIDU5LCAxLCA0NiwgMjUzLCAxNjQsIDU5LCAxLCAxMTQsIAotICAgIDI1MywgMTY0LCA1OSwgMSwgMTE5LCAyNTMsIDE2NCwgNTksIDEsIDI0OSwgMjI0LCAyNTQsIDE3NCwgMjUwLCAxNjYsIDU5LCAKLSAgICAxLCA3MSwgMjMyLCAyNDIsIDU5LCAxLCAyMzIsIDM3LCA1OSwgMSwgMjU0LCAxNjQsIDI1NCwgMTc0LCA1OSwgMSwgMjQyLCAKLSAgICAxMTQsIDI1NCwgMTc0LCA1OSwgMSwgMTE1LCA3MSwgMjMyLCAyNDIsIDU5LCAxLCAxMTUsIDIzMiwgMzcsIDU5LCAxLCAxMTUsIAotICAgIDI0MiwgMTE0LCAyNTQsIDE3NCwgNTksIDEsIDExNSwgMjU0LCAxNjQsIDI1NCwgMTc0LCA1OSwgMSwgMjE2LCAxODAsIDI0OSwgCi0gICAgMTY0LCA1OSwgMSwgMTUxLCAyMTYsIDE4MCwgMjQ5LCAxNjQsIDU5LCAxLCAyNTAsIDEwNywgNDYsIDE1MSwgMjIzLCAxMzAsIAotICAgIDU5LCAxLCAyNTAsIDEwNywgNDIsIDE1MSwgMjIzLCAxMzAsIDU5LCAxLCAxMTQsIDIxOCwgMzYsIDU5LCAxLCAxMTksIDIxOCwgCi0gICAgMzYsIDU5LCAxLCA5NCwgNTIsIDU5LCAxLCAyMzAsIDI1MSwgNTIsIDI1MSwgNzQsIDYyLCA0OSwgMjIzLCAxMzEsIDQ5LCAKLSAgICAyMjcsIDkwLCAzLCAyMTcsIDQyLCA1MSwgMjU0LCAxNjQsIDI1NCwgMTc0LCA1OSwgMSwgMjIzLCAxODksIDEwMSwgNTksIDEsIAotICAgIDI0OSwgNzEsIDI1NCwgMTc0LCA1OSwgMSwgMywgMjQzLCA4MywgNTksIDEsIDMsIDE1MCwgNTksIDEsIDMsIDE5NywgNTksIAotICAgIDEsIDMsIDIxMywgMTY2LCA1OSwgMSwgMywgMjIzLCAyMDIsIDI0MiwgMTU2LCAyMTksIDY5LCA1OSwgMSwgMjQ0LCAyNDQsIAotICAgIDE2MCwgMTM0LCA1OSwgMSwgMTI0LCAxNjAsIDEzNCwgNTksIDEsIDIzMSwgMzgsIDE2MCwgMTM0LCA1OSwgMSwgMTE1LCAKLSAgICAxNjAsIDEzNCwgNTksIDEsIDI0NCwgMjQzLCAxNjAsIDEzNCwgNTksIDEsIDIxMiwgMjQ1LCAyNDcsIDI1MSwgMTYwLCA3NywgCi0gICAgNTksIDEsIDIxMywgNTksIDI0NywgMjUxLCAxNjAsIDc3LCA1OSwgMSwgMjE0LCAxMTQsIDU5LCAxLCAyMTUsIDE1NiwgNTksIAotICAgIDEsIDUxLCAyNTMsIDIyNiwgNTksIDEsIDExNSwgMTE5LCAyNTMsIDE2NCwgNTksIDEsIDExNSwgMTE0LCAyNTMsIDE2NCwgCi0gICAgNTksIDEsIDExNSwgNDIsIDI1MywgMTY0LCA1OSwgMSwgMTE1LCA0NiwgMjUzLCAxNjQsIDU5LCAxLCAxMTUsIDIyMywgMTMwLCAKLSAgICA1OSwgMSwgMjMxLCAzNywgMjQyLCAxMTQsIDI1NCwgMTc0LCA1OSwgMSwgMjMxLCAzNywgNTEsIDI0MiwgMTE0LCAyNTQsIAotICAgIDE3NCwgNTksIDEsIDIzMSwgMzcsIDUxLCAyNTQsIDE2NCwgMjU0LCAxNzQsIDU5LCAxLCAxMTUsIDIxNywgNDIsIDU5LCAxLCAKLSAgICAyMjQsIDQ4LCAyNDksIDE2NCwgNTksIDEsIDI1MSwgMjM0LCAxMjQsIDIxNiwgMjQxLCA1OSwgMSwgMjQ1LCAxMDEsIDEyNCwgCi0gICAgMjE2LCAyNDEsIDU5LCAxLCAyNTEsIDIzNCwgMTE1LCAyMTYsIDI0MSwgNTksIDEsIDI0NSwgMTAxLCAxMTUsIDIxNiwgMjQxLCAKLSAgICA1OSwgMSwgMjIwLCAyMzQsIDU5LCAxLCAyMjcsIDQwLCAyMjAsIDIzNCwgNTksIDEsIDExNSwgNDIsIDY4LCAzNywgMjQyLCAKLSAgICAxMTQsIDI1NCwgMTc0LCAzNywgMjU0LCAxNjQsIDI1NCwgMTc0LCAzNywgMjQ5LCAyMjQsIDI1NCwgMTc0LCAzNywgMjE3LCAKLSAgICA0MiwgMzcsIDIzMiwgMzcsIDM3LCAyMjYsIDI0MywgMzcsIDI1MSwgNzQsIDM3LCA2MiwgNDksIDM3LCAyNDcsIDIwOSwgMzcsIAotICAgIDI0MSwgMzgsIDQ5LCAzNywgMjIzLCAxMzEsIDQ5LCAzNywgNTEsIDI1NCwgMTY0LCAyNTQsIDE3NCwgMzcsIDI1MCwgMTY2LCAKLSAgICAzNywgNzEsIDIzMiwgMjQzLCA0OSwgMzcsIDUxLCA3MSwgMjMyLCAyNDMsIDQ5LCAzNywgNTEsIDI0MiwgMTE0LCAyNTQsIAotICAgIDE3NCwgMzcsIDI1MCwgMTg3LCAzNywgMjM1LCAxOTEsIDI1MSwgNzQsIDM3LCAyMTYsIDU4LCAyNDksIDE1OCwgNDksIDM3LCAKLSAgICAyNDksIDE1OCwgNDksIDM3LCAyMjMsIDIwMiwgMjQ5LCAxNTgsIDQ5LCAzNywgMjQ5LCAxNTgsIDc4LCAyMjMsIDE0OCwgMzcsIAotICAgIDI0MiwgMTE0LCAyNTQsIDE3NSwgNTUsIDM3LCAyNTQsIDE2NCwgMjU0LCAxNzUsIDU1LCAzNywgNDIsIDIxOCwgMzcsIDU1LCAKLSAgICAzNywgNDYsIDIxOCwgMzcsIDU1LCAzNywgNDIsIDI1NCwgMTksIDQ5LCAzNywgMjQwLCAyMzUsIDM3LCA0MiwgMTUxLCAyMjMsIAotICAgIDEzMSwgNTUsIDM3LCAxMTQsIDIxOCwgMzcsIDU1LCAzNywgMTE5LCAyMTgsIDM3LCA1NSwgMzcsIDk0LCA1LCA1NSwgMzcsIAotICAgIDIzMCwgMjUxLCA1LCA1NSwgMzcsIDIyNiwgMTkxLCAyNDEsIDM4LCA1NSwgMzcsIDIyMywgMjA3LCAyNDEsIDM4LCA1NSwgCi0gICAgMzcsIDYyLCA1NSwgMzcsIDI0NywgMjEwLCA1NSwgMzcsIDIyMywgMTMxLCA1NSwgMzcsIDI0OSwgMTU4LCA1NSwgMzcsIAotICAgIDI1MCwgMTE3LCAzNywgMjI3LCA5MCwgMzcsIDcxLCAyMzIsIDI0MywgNTUsIDM3LCAyNTEsIDY4LCA1NSwgMzcsIDIzNSwgCi0gICAgMTkxLCA1MSwgMjUzLCAxOTQsIDU1LCAzNywgMjUwLCAxNjcsIDU1LCAzNywgMjQ5LCAyMjQsIDI1NCwgMTc1LCA1NSwgMzcsIAotICAgIDI1MSwgNzUsIDU1LCAzNywgMjM1LCAxOTEsIDI1MSwgNzUsIDU1LCAzNywgMjE3LCA0MywgNTUsIDM3LCAyMzIsIDM4LCA1NSwgCi0gICAgMzcsIDExNSwgMjMyLCAyNDIsIDM3LCA1MSwgMTE1LCAyMzIsIDI0MiwgMzcsIDIxNywgNDMsIDIyNiwgMjQ0LCAzNywgMjIwLCAKLSAgICAxNzUsIDIxOSwgNDUsIDIyNiwgMjQ0LCAzNywgMTg0LCAyMTksIDQ1LCAyMjYsIDI0NCwgMzcsIDIyMCwgMTc1LCAyMTksIAotICAgIDIzMiwgMjI2LCAyNDQsIDM3LCAxODQsIDIxOSwgMjMyLCAyMjYsIDI0NCwgMzcsIDQ2LCAxNTEsIDIyMywgMTMxLCA1NSwgCi0gICAgMzcsIDIzNSwgMTkxLCAyNTEsIDY4LCA1NSwgMzcsIDQxLCA1NSwgMzcsIDIyMiwgOTksIDU1LCAzNywgMjEzLCAxNjcsIDQ5LCAKLSAgICAzNywgNzEsIDIxNywgNDIsIDM3LCA1MSwgMjI2LCAyNDMsIDM3LCAyNDIsIDExNCwgMTYwLCA3NywgMzcsIDI1NCwgMTY0LCAKLSAgICAxNjAsIDc3LCAzNywgMjUsIDIyNiwgNTAsIDM3LCAyNSwgMjM0LCAxMSwgMzcsIDI1LCAyNDcsIDIwNCwgMjE2LCAyMzEsIAotICAgIDM3LCAyNSwgMjEyLCAyMTAsIDM3LCAyNTEsIDY4LCA0OSwgMzcsIDI0NSwgNjEsIDUsIDU1LCAzNywgNTEsIDcxLCAyMzIsIAotICAgIDI0MywgNTUsIDM3LCA0MiwgMjU0LCAxOSwgNTUsIDM3LCAyMjgsIDE2MywgMjE3LCA0MywgNDksIDM3LCAyNDEsIDQ0LCA0OSwgCi0gICAgMzcsIDI1NCwgNTcsIDEyMywgMjExLCAyMTEsIDQ5LCAzNywgNDIsIDQ2LCA3NiwgNTUsIDM3LCAyMTUsIDEyNCwgNzYsIDU1LCAKLSAgICAzNywgMjQyLCAxMTgsIDIzNSwgNjYsIDM3LCA0NiwgMjUzLCAxNjUsIDQ5LCAzNywgNDIsIDE1MSwgMjIzLCAxMzEsIDQ5LCAKLSAgICAzNywgMjQ0LCAxMDAsIDM3LCAyMTMsIDE2NywgNTUsIDM3LCA0MiwgMjUzLCAxNjUsIDU1LCAzNywgNDYsIDI1MywgMTY1LCAKLSAgICA1NSwgMzcsIDQ2LCAyNTMsIDE2NSwgMjQsIDExNCwgMjUzLCAxNjUsIDU1LCAzNywgNDYsIDE1MSwgMjIzLCAxMzEsIDQ5LCAKLSAgICAzNywgNjIsIDc4LCAyMjMsIDE0OCwgMzcsIDI1MywgMTMzLCA1NSwgMzcsIDUxLCAyMjMsIDEzMSwgNTUsIDM3LCAyMTIsIAotICAgIDI4LCA0OSwgMzcsIDUxLCAyNTEsIDc1LCA1NSwgMzcsIDUxLCAyNTEsIDc0LCAzNywgNTEsIDIzMiwgMzcsIDM3LCA1MSwgCi0gICAgMjMyLCAzOCwgNTUsIDM3LCA1MSwgMjE3LCA0MiwgMzcsIDUxLCAyMzUsIDE5MSwgMjUxLCA3NCwgMzcsIDUxLCA5NSwgNzYsIAotICAgIDU1LCAzNywgNywgMywgMSwgNjEsIDM3LCA3LCAzLCAxLCA3NCwgMzcsIDcsIDMsIDEsIDcyLCAzNywgNywgMywgMSwgNzUsIAotICAgIDM3LCA3LCAzLCAxLCA2OSwgMzcsIDcsIDMsIDEsIDI1MCwgMjUyLCAzNywgNywgMywgMSwgMjQ5LCAzLCAzNywgNywgMywgMSwgCi0gICAgMjQyLCA0MSwgMzcsIDcsIDMsIDEsIDE4MywgMzcsIDcsIDMsIDEsIDE0OSwgMzcsIDcsIDMsIDEsIDIxOCwgOTksIDM3LCA3LCAKLSAgICAzLCAxLCAyMTUsIDc5LCAzNywgNywgMywgMSwgMjEzLCAxNjYsIDI1LCA2LCAxLCAyNDEsIDE4MSwgMjUsIDMsIDEsIDI0MSwgCi0gICAgMTgxLCAyNSwgNiwgMSwgMjUzLCAxOTMsIDIyMiwgMTYxLCAyNSwgMywgMSwgMjUzLCAxOTMsIDIyMiwgMTYxLCAyNSwgMjI4LCAKLSAgICA1NCwgNTIsIDI1LCAyMzIsIDE2MywgMjI4LCA1NCwgNTIsIDI1LCA2LCAxLCAyMjYsIDE3OCwgMjQ3LCAxNzksIDI1LCAzLCAKLSAgICAxLCAyMjYsIDE3OCwgMjQ3LCAxNzksIDI1LCAyMTIsIDIxMCwgMjUsIDMsIDIyMywgMjAyLCAyMzIsIDE0MSwgMjIwLCAxMDQsIAotICAgIDg3LCAyNSwgMywgMjQ2LCA3MiwgMjMyLCAxNDEsIDIyMCwgMTA0LCA4NywgMjUsIDMsIDIyMywgMjAyLCAyNDYsIDcyLCAKLSAgICAyMzIsIDE0MSwgMjIwLCAxMDQsIDg3LCAyNSwgMjI0LCAxNTgsIDc3LCAyNSwgMjE2LCAyMzEsIDI1LCAyNDcsIDIwNCwgCi0gICAgMjE2LCAyMzEsIDI1LCA2LCAxLCAyNTQsIDUzLCAyLCAyMTYsIDIzMSwgMjUsIDI1NCwgOCwgMjE3LCAyMTEsIDI1LCA2LCAxLCAKLSAgICAyNDUsIDY0LCAyLCAyMTYsIDIzMSwgMjUsIDYsIDEsIDI0NSwgMjksIDIsIDIxNiwgMjMxLCAyNSwgNiwgMSwgMjM1LCAxODQsIAotICAgIDIsIDIxNiwgMjMxLCAyNSwgNiwgMSwgMjI3LCA2NiwgMiwgMjE2LCAyMzEsIDI1LCA2LCAxLCAyMTUsIDEyOSwgMiwgMjE2LCAKLSAgICAyMzEsIDI1LCA2LCAxLCAyMjcsIDY4LCAyLCAyMTYsIDIzMSwgMjUsIDMsIDEsIDIzNSwgMTg0LCAyLCAyNDcsIDIwNCwgMjQsIAotICAgIDIxNiwgMjMxLCAyNSwgNiwgMSwgMjU0LCA1MiwgMjUsIDYsIDEsIDI1MSwgMjAzLCAyNSwgNiwgMSwgMjQzLCA4MywgMjUsIAotICAgIDYsIDEsIDI0OCwgNSwgMjUsIDYsIDEsIDI0NSwgNjMsIDI1LCA2LCAxLCAyMTIsIDc4LCAyNSwgNiwgMSwgMjQ1LCAyOCwgCi0gICAgMjUsIDYsIDEsIDIxNywgMTMyLCAyNSwgNiwgMSwgMjM1LCAxODMsIDI1LCA2LCAxLCAyMzQsIDIyNywgMjUsIDYsIDEsIAotICAgIDIzMywgMTIyLCAyNSwgNiwgMSwgMjMwLCAxNzIsIDI1LCA2LCAxLCAyMjgsIDkyLCAyNSwgNiwgMSwgMjEzLCAxNDUsIDI1LCAKLSAgICA2LCAxLCAyMjcsIDY1LCAyNSwgNiwgMSwgMjI1LCAyNDAsIDI1LCA2LCAxLCAyMjMsIDE5MCwgMjUsIDYsIDEsIDIyMCwgCi0gICAgMTAzLCAyNSwgNiwgMSwgMjE3LCAyNDgsIDI1LCA2LCAxLCAyMTUsIDEyOCwgMjUsIDYsIDEsIDIyNiwgOSwgMjUsIDYsIDEsIAotICAgIDI1MCwgNDcsIDI1LCA2LCAxLCAyMjUsIDQ2LCAyNSwgNiwgMSwgMjI3LCA2NywgMjUsIDYsIDEsIDIzNSwgMTg0LCAyLCAKLSAgICAyNDcsIDIwMywgMjUsIDYsIDEsIDIxNSwgMTI5LCAyLCAyNDcsIDIwMywgMjUsIDMsIDEsIDI1NCwgNTMsIDIsIDIxNiwgCi0gICAgMjMxLCAyNSwgMywgMSwgMjQ1LCA2NCwgMiwgMjE2LCAyMzEsIDI1LCAzLCAxLCAyNDUsIDI5LCAyLCAyMTYsIDIzMSwgMjUsIAotICAgIDMsIDEsIDIzNSwgMTg0LCAyLCAyMTYsIDIzMSwgMjUsIDMsIDEsIDIxNSwgMTI5LCAyLCAyNDcsIDIwNCwgMjQsIDIxNiwgCi0gICAgMjMxLCAyNSwgMywgMSwgMjU0LCA1MiwgMjUsIDMsIDEsIDI1MSwgMjAzLCAyNSwgMywgMSwgMjQzLCA4MywgMjUsIDMsIDEsIAotICAgIDI0OCwgNSwgMjUsIDMsIDEsIDI0NSwgNjMsIDI1LCAzLCAxLCAyMTIsIDc4LCAyNSwgMywgMSwgMjQ1LCAyOCwgMjUsIDMsIAotICAgIDEsIDIxNywgMTMyLCAyNSwgMywgMSwgMjM1LCAxODMsIDI1LCAzLCAxLCAyMzQsIDIyNywgMjUsIDMsIDEsIDIzMywgMTIyLCAKLSAgICAyNSwgMywgMSwgMjMwLCAxNzIsIDI1LCAzLCAxLCAyMjgsIDkyLCAyNSwgMywgMSwgMjEzLCAxNDUsIDI1LCAzLCAxLCAyMjcsIAotICAgIDY1LCAyNSwgMywgMSwgMjI1LCAyNDAsIDI1LCAzLCAxLCAyMjMsIDE5MCwgMjUsIDMsIDEsIDQwLCAyMjAsIDEwMywgMjUsIAotICAgIDMsIDEsIDIyMCwgMTAzLCAyNSwgMywgMSwgMjE3LCAyNDgsIDI1LCAzLCAxLCAyMTUsIDEyOCwgMjUsIDMsIDEsIDIyNiwgOSwgCi0gICAgMjUsIDMsIDEsIDI1MCwgNDcsIDI1LCAzLCAxLCAyMjUsIDQ2LCAyNSwgMywgMSwgMjI3LCA2NywgMjUsIDMsIDEsIDIzNSwgCi0gICAgMTg0LCAyLCAyNDcsIDIwMywgMjUsIDMsIDEsIDIxNSwgMTI5LCAyLCAyNDcsIDIwMywgMjUsIDMsIDEsIDIyNywgNjYsIDIsIAotICAgIDIxNiwgMjMxLCAyNSwgMywgMSwgMjE1LCAxMjksIDIsIDIxNiwgMjMxLCAyNSwgMywgMSwgMjI3LCA2OCwgMiwgMjE2LCAKLSAgICAyMzEsIDI1LCA2LCAyMzQsIDI1MSwgODcsIDI1LCAyNTEsIDIwNCwgODcsIDI1LCAyMTcsIDEzMywgODcsIDI1LCAyMTUsIAotICAgIDEyOSwgMiwgMjQxLCAzOCwgODcsIDI1LCAyMTUsIDEyOSwgMiwgMjU0LCAxNjQsIDI0LCAyNDEsIDM4LCA4NywgMjUsIDIxNSwgCi0gICAgMTI5LCAyLCAyNDcsIDIxMCwgMjQsIDI0MSwgMzgsIDg3LCAyNSwgMjI2LCAxMCwgODcsIDI1LCAyMjUsIDI0MSwgODcsIDI1LCAKLSAgICAyMzQsIDI1MSwgODcsIDI1LCAxLCAyNTMsIDE5MywgMjM0LCAxNSwgMjUsIDMsIDEsIDI1MywgMTkzLCAyMzQsIDE1LCAyNSwgCi0gICAgMSwgMjE5LCA3NywgMjUsIDMsIDEsIDIxOSwgNzcsIDI1LCAxLCAyNDcsIDE3OSwgMjUsIDMsIDEsIDI0NywgMTc5LCAyNSwgCi0gICAgMSwgMjM0LCAxNSwgMjUsIDMsIDEsIDIzNCwgMTUsIDI1LCAxLCAyMjIsIDE2MSwgMjUsIDMsIDEsIDIyMiwgMTYxLCA3OSwgCi0gICAgNiwgMSwgMjIwLCAyMzUsIDc5LCAzLCAxLCAyMjAsIDIzNSwgNzksIDYsIDEsIDI0NCwgMTA5LCA3OSwgMywgMSwgMjQ0LCAKLSAgICAxMDksIDc5LCA2LCAxLCAyMzQsIDEyMywgNzksIDMsIDEsIDIzNCwgMTIzLCA3OSwgNiwgMSwgMjQxLCAzMiwgNzksIDMsIDEsIAotICAgIDI0MSwgMzIsIDc5LCA2LCAxLCAyNDMsIDc4LCA3OSwgMywgMSwgMjQzLCA3OCwgNzksIDYsIDEsIDIyMCwgMjAyLCA3OSwgMywgCi0gICAgMSwgMjIwLCAyMDIsIDc5LCA2LCAxLCAyNDgsIDIwLCA3OSwgMywgMSwgMjQ4LCAyMCwgMjUsIDIzNCwgMjI4LCA4NywgMjUsIAotICAgIDIyMywgMTkxLCA4NywgMjUsIDIzMiwgMTQxLCAyMjAsIDEwNCwgODcsIDI1LCAxLCAyMTIsIDIxNSwgMjUsIDYsIDIxNywgCi0gICAgMTMzLCA4NywgMjUsIDIzMiwgMTQxLCAyNDUsIDY0LCA4NywgMjUsIDIyMywgMjAyLCAyMzIsIDE0MSwgMjQ1LCA2NCwgODcsIAotICAgIDI1LCA2LCAxLCAyMjAsIDE4NywgMjUsIDMsIDEsIDIyMCwgMTg3LCAyNSwgNiwgMjMyLCAxNDEsIDIyMCwgMTA0LCA4NywgCi0gICAgMjUsIDYsIDEsIDIyMiwgMTU5LCAyNSwgMywgMSwgMjIyLCAxNTksIDI1LCAyMjMsIDE5MSwgMiwgMjE5LCA0NSwgODcsIDI1LCAKLSAgICA2LCAyMjMsIDIwMiwgMjMyLCAxNDEsIDIyMCwgMTA0LCA4NywgMjUsIDYsIDI0NiwgNzIsIDIzMiwgMTQxLCAyMjAsIDEwNCwgCi0gICAgODcsIDI1LCA2LCAyMjMsIDIwMiwgMjQ2LCA3MiwgMjMyLCAxNDEsIDIyMCwgMTA0LCA4NywgMzMsIDYsIDEsIDIzNiwgNTYsIAotICAgIDIsIDI0MiwgMTEzLCAzMywgNiwgMSwgMjM1LCAxODcsIDMzLCA2LCAxLCAyNDcsIDExNCwgMzMsIDYsIDEsIDI0MiwgMTYzLCAKLSAgICAzMywgNiwgMSwgMjE1LCAxNzIsIDIzNiwgNTUsIDMzLCA2LCAxLCAyNDUsIDI0NywgMzMsIDYsIDEsIDI1MSwgNSwgNzIsIAotICAgIDMzLCA2LCAxLCAyMTIsIDI1NSwgMzMsIDYsIDEsIDIzNSwgMTI3LCAzMywgNiwgMSwgMjMyLCAyMTYsIDMzLCA2LCAxLCAKLSAgICAyMjksIDksIDMzLCA2LCAxLCAyMTYsIDEzMiwgMzMsIDYsIDEsIDIzNCwgNTcsIDMzLCA2LCAxLCAyNDAsIDE0NiwgMiwgCi0gICAgMjQyLCAxMTMsIDMzLCA2LCAxLCAyMjAsIDE3NSwgNjksIDMzLCA2LCAxLCAyNDUsIDI0MywgMzMsIDYsIDEsIDYxLCAzMywgCi0gICAgNiwgMSwgMjUxLCAyNTEsIDMzLCA2LCAxLCAyMTQsIDIzMiwgMzMsIDYsIDEsIDI0MiwgMjEyLCAzMywgNiwgMSwgMjQ4LCAKLSAgICA0MSwgMzMsIDYsIDEsIDIzNiwgNTUsIDMzLCA2LCAxLCAyMTIsIDY3LCAzMywgNiwgMSwgMjEyLCA4NywgMzMsIDYsIDEsIAotICAgIDcyLCAzMywgNiwgMSwgMjIwLCAxNzUsIDcyLCAzMywgNiwgMSwgMTgxLCAzMywgNiwgMSwgMjQ1LCAxMzEsIDMzLCA2LCAxLCAKLSAgICAyNDUsIDExNywgMzMsIDYsIDEsIDI0NSwgMTA4LCAzMywgNiwgMSwgNzUsIDMzLCA2LCAxLCAyMjYsIDk2LCAzMywgNiwgMSwgCi0gICAgMjQ1LCA1NSwgMzMsIDYsIDEsIDI0NSwgNDUsIDMzLCA2LCAxLCAyMTcsIDIyOSwgMzMsIDYsIDEsIDY5LCAzMywgNiwgMSwgCi0gICAgMjQ1LCAxNTksIDMzLCA2LCAxLCAxNTksIDMzLCA2LCAxLCAyMTYsIDEzNiwgMzMsIDYsIDEsIDI1MCwgNjcsIDMzLCA2LCAxLCAKLSAgICAyMjEsIDI0LCAzMywgNiwgMSwgMjIwLCAyNDUsIDMzLCA2LCAxLCAyNDEsIDI0MiwgNTIsIDMzLCA2LCAxLCAyMTMsIDE4LCAKLSAgICAzMywgNiwgMSwgMjE5LCAyMzYsIDUyLCAzMywgNiwgMSwgNzQsIDMzLCA2LCAxLCAyMTIsIDIwMywgMzMsIDYsIDEsIDE4NiwgCi0gICAgMzMsIDMsIDEsIDYxLCAzMywgMywgMSwgMjUxLCAyNTEsIDMzLCAzLCAxLCAyMTQsIDIzMiwgMzMsIDMsIDEsIDI0MiwgMjEyLCAKLSAgICAzMywgMywgMSwgMjQ4LCA0MSwgMzMsIDMsIDEsIDIzNiwgNTUsIDMzLCAzLCAxLCAyMTIsIDY3LCAzMywgMywgMSwgMjEyLCAKLSAgICA4NywgMzMsIDMsIDEsIDcyLCAzMywgMywgMSwgMjIwLCAxNzUsIDcyLCAzMywgMywgMSwgMTgxLCAzMywgMywgMSwgMjQ1LCAKLSAgICAxMzEsIDMzLCAzLCAxLCAyNDUsIDExNywgMzMsIDMsIDEsIDI0NSwgMTA4LCAzMywgMywgMSwgNzUsIDMzLCAzLCAxLCAyMjYsIAotICAgIDk2LCAzMywgMywgMSwgMjQ1LCA1NSwgMzMsIDMsIDEsIDI0NSwgNDUsIDMzLCAzLCAxLCAyMTcsIDIyOSwgMzMsIDMsIDEsIAotICAgIDY5LCAzMywgMywgMSwgMjQ1LCAxNTksIDMzLCAzLCAxLCAxNTksIDMzLCAzLCAxLCAyMTYsIDEzNiwgMzMsIDMsIDEsIDI1MCwgCi0gICAgNjcsIDMzLCAzLCAxLCAyMjEsIDI0LCAzMywgMywgMSwgMjIwLCAyNDUsIDMzLCAzLCAxLCAyNDEsIDI0MiwgNTIsIDMzLCAzLCAKLSAgICAxLCAyMTMsIDE4LCAzMywgMywgMSwgMjE5LCAyMzYsIDUyLCAzMywgMywgMSwgNzQsIDMzLCAzLCAxLCAyMTIsIDIwMywgMzMsIAotICAgIDMsIDEsIDE4NiwgMzMsIDMsIDEsIDIzNiwgNTYsIDIsIDI0MiwgMTEzLCAzMywgMywgMSwgMjM1LCAxODcsIDMzLCAzLCAxLCAKLSAgICAyNDcsIDExNCwgMzMsIDMsIDEsIDI0MiwgMTYzLCAzMywgMywgMSwgMjE1LCAxNzIsIDIzNiwgNTUsIDMzLCAzLCAxLCAyNDUsIAotICAgIDI0NywgMzMsIDMsIDEsIDI1MSwgNSwgNzIsIDMzLCAzLCAxLCAyMTIsIDI1NSwgMzMsIDMsIDEsIDIzNSwgMTI3LCAzMywgMywgCi0gICAgMSwgMjMyLCAyMTYsIDMzLCAzLCAxLCAyMjksIDksIDMzLCAzLCAxLCAyMTYsIDEzMiwgMzMsIDMsIDEsIDIzNCwgNTcsIDMzLCAKLSAgICAzLCAxLCAyNDAsIDE0NiwgMiwgMjQyLCAxMTMsIDMzLCAzLCAxLCAyMjAsIDE3NSwgNjksIDMzLCAzLCAxLCAyNDUsIDI0MywgCi0gICAgMzMsIDYsIDEsIDIyNywgNjcsIDMzLCAzLCAxLCAyMjcsIDY3LCAzMywgNiwgMSwgMjEzLCA0OSwgMzMsIDMsIDEsIDIxMywgCi0gICAgNDksIDMzLCA2LCAxLCAyMzUsIDE4MSwgNzQsIDMzLCAzLCAxLCAyMzUsIDE4MSwgNzQsIDMzLCA2LCAxLCAyMzIsIDIyMSwgCi0gICAgMjEyLCAxNzQsIDMzLCAzLCAxLCAyMzIsIDIyMSwgMjEyLCAxNzQsIDMzLCA2LCAxLCAyMzUsIDE4MSwgMjMyLCAyMjEsIAotICAgIDIxMiwgMTc0LCAzMywgMywgMSwgMjM1LCAxODEsIDIzMiwgMjIxLCAyMTIsIDE3NCwgMzMsIDYsIDEsIDI1MSwgMTcyLCAKLSAgICAyMTIsIDE3NCwgMzMsIDMsIDEsIDI1MSwgMTcyLCAyMTIsIDE3NCwgMzMsIDYsIDEsIDIzNSwgMTgxLCAyNTEsIDE3MiwgCi0gICAgMjEyLCAxNzQsIDMzLCAzLCAxLCAyMzUsIDE4MSwgMjUxLCAxNzIsIDIxMiwgMTc0LCAzMywgNiwgMSwgMjMzLCAyNDIsIDMzLCAKLSAgICAzLCAxLCAyMzMsIDI0MiwgMzMsIDYsIDEsIDIyNSwgNDYsIDMzLCAzLCAxLCAyMjUsIDQ2LCAzMywgNiwgMSwgMjQ0LCA1MSwgCi0gICAgMzMsIDMsIDEsIDI0NCwgNTEsIDMzLCA2LCAxLCAyMzUsIDE0NCwgMzMsIDMsIDEsIDIzNSwgMTQ0LCAzMywgNiwgMSwgMjM1LCAKLSAgICAxNDUsIDIsIDUxLCAyNDIsIDExNCwgMjU0LCAxNzQsIDMzLCAzLCAxLCAyMzUsIDE0NSwgMiwgNTEsIDI0MiwgMTE0LCAyNTQsIAotICAgIDE3NCwgMzMsIDYsIDEsIDIxNSwgMTc1LCAzMywgMywgMSwgMjE1LCAxNzUsIDMzLCA2LCAxLCAyMjMsIDg3LCAyMjcsIDY3LCAKLSAgICAzMywgMywgMSwgMjIzLCA4NywgMjI3LCA2NywgMzMsIDYsIDEsIDIyNywgNjgsIDIsIDIxNywgMTgsIDMzLCAzLCAxLCAyMjcsIAotICAgIDY4LCAyLCAyMTcsIDE4LCAzMywgNiwgMSwgMjI3LCA4LCAzMywgMywgMSwgMjI3LCA4LCAzMywgNiwgMSwgMjM0LCAxNSwgCi0gICAgMzMsIDMsIDEsIDIzNCwgMTUsIDMzLCAyMTcsIDk5LCA1MiwgMzcsIDMzLCAyMTcsIDE4LCAzNywgMzMsIDIyNiwgMTkyLCAKLSAgICAzNywgMzMsIDIwNywgMjI1LCAxNTIsIDM3LCAzMywgMjI1LCA0MCwgMjI1LCAxNTIsIDM3LCAzMywgMjI1LCAxMzcsIDM3LCAKLSAgICAzMywgMjQwLCAyMDEsIDIxNywgOTksIDUyLCAzNywgMzMsIDIzMSwgNCwgNTIsIDMzLCA2LCAxLCAyMjAsIDE3NSwgMjQwLCAKLSAgICAxNDYsIDIsIDIxOCwgMjcsIDMzLCAzLCAxLCAyMjAsIDE3NSwgMjQwLCAxNDYsIDIsIDIxOCwgMjcsIDMzLCA2LCAxLCAyMjEsIAotICAgIDY2LCA1MiwgMzMsIDMsIDEsIDIyMSwgNjYsIDUyLCAzMywgNiwgMSwgMjQ1LCA1NiwgMiwgMjE3LCA2OCwgMzMsIDMsIDEsIAotICAgIDI0NSwgNTYsIDIsIDIxNywgNjgsIDMzLCA2LCAxLCAyNDIsIDIxMywgMiwgMjE1LCAxMjcsIDMzLCAzLCAxLCAyNDIsIDIxMywgCi0gICAgMiwgMjE1LCAxMjcsIDMzLCA2LCAxLCAyNDIsIDIxMywgMiwgOTAsIDMzLCAzLCAxLCAyNDIsIDIxMywgMiwgOTAsIDMzLCA2LCAKLSAgICAxLCAyNDIsIDIxMywgMiwgMjMxLCAzNywgMTAxLCAzMywgMywgMSwgMjQyLCAyMTMsIDIsIDIzMSwgMzcsIDEwMSwgMzMsIDYsIAotICAgIDEsIDIxMiwgNjgsIDIsIDI0NywgMjQ2LCAzMywgMywgMSwgMjEyLCA2OCwgMiwgMjQ3LCAyNDYsIDMzLCA2LCAxLCAyMTIsIAotICAgIDg4LCAyLCAyNDcsIDI0NiwgMzMsIDMsIDEsIDIxMiwgODgsIDIsIDI0NywgMjQ2LCAzMywgNiwgMSwgMjM1LCAxNywgMiwgCi0gICAgMjQ3LCAyNDYsIDMzLCAzLCAxLCAyMzUsIDE3LCAyLCAyNDcsIDI0NiwgMzMsIDYsIDEsIDIzNSwgMTcsIDIsIDcxLCA5MCwgCi0gICAgMzMsIDMsIDEsIDIzNSwgMTcsIDIsIDcxLCA5MCwgMzMsIDYsIDEsIDIzNSwgMTcsIDIsIDkwLCAzMywgMywgMSwgMjM1LCAKLSAgICAxNywgMiwgOTAsIDMzLCA2LCAxLCAyNTIsIDQ0LCAxODEsIDMzLCAzLCAxLCAyNTIsIDQ0LCAxODEsIDMzLCA2LCAxLCAyNDUsIAotICAgIDEwOSwgMiwgMjQ3LCAyNDYsIDMzLCAzLCAxLCAyNDUsIDEwOSwgMiwgMjQ3LCAyNDYsIDMzLCA2LCAyNiwgMjQ1LCAxMDksIAotICAgIDI0MiwgMjEyLCAzMywgMywgMjYsIDI0NSwgMTA5LCAyNDIsIDIxMiwgMzMsIDYsIDEsIDIyNiwgOTcsIDIsIDIzMSwgMzcsIAotICAgIDEwMSwgMzMsIDMsIDEsIDIyNiwgOTcsIDIsIDIzMSwgMzcsIDEwMSwgMzMsIDYsIDEsIDI1NCwgMTgwLCAxNTksIDMzLCAzLCAKLSAgICAxLCAyNTQsIDE4MCwgMTU5LCAzMywgNiwgMSwgMjQ1LCA0NiwgMiwgMjQ3LCAyNDYsIDMzLCAzLCAxLCAyNDUsIDQ2LCAyLCAKLSAgICAyNDcsIDI0NiwgMzMsIDYsIDEsIDIxNywgMjMwLCAyLCAyNDcsIDI0NiwgMzMsIDMsIDEsIDIxNywgMjMwLCAyLCAyNDcsIAotICAgIDI0NiwgMzMsIDYsIDEsIDIxOSwgNjEsIDY5LCAzMywgMywgMSwgMjE5LCA2MSwgNjksIDMzLCA2LCAxLCAyMTksIDYxLCAKLSAgICAxMTEsIDIsIDkwLCAzMywgMywgMSwgMjE5LCA2MSwgMTExLCAyLCA5MCwgMzMsIDYsIDEsIDI0MiwgMzAsIDIsIDI0NywgCi0gICAgMjQ2LCAzMywgMywgMSwgMjQyLCAzMCwgMiwgMjQ3LCAyNDYsIDMzLCA2LCAyNiwgMjE3LCAyMzAsIDIxNiwgMTM2LCAzMywgCi0gICAgMywgMjYsIDIxNywgMjMwLCAyMTYsIDEzNiwgMzMsIDYsIDEsIDI1MCwgNjgsIDIsIDI0NywgMjQ2LCAzMywgMywgMSwgMjUwLCAKLSAgICA2OCwgMiwgMjQ3LCAyNDYsIDMzLCA2LCAxLCAyNTAsIDY4LCAyLCA3MSwgOTAsIDMzLCAzLCAxLCAyNTAsIDY4LCAyLCA3MSwgCi0gICAgOTAsIDMzLCA2LCAxLCAyMjAsIDIxMywgMzMsIDMsIDEsIDIyMCwgMjEzLCAzMywgNiwgMSwgMjU0LCAxODAsIDI1MCwgNjcsIAotICAgIDMzLCAzLCAxLCAyNTQsIDE4MCwgMjUwLCA2NywgMzMsIDYsIDEsIDI1NCwgMTgwLCAyNTAsIDY4LCAyLCAyNDcsIDI0NiwgCi0gICAgMzMsIDMsIDEsIDI1NCwgMTgwLCAyNTAsIDY4LCAyLCAyNDcsIDI0NiwgMzMsIDEsIDIyNiwgMTg1LCAzMywgNiwgMSwgMjEyLCAKLSAgICA2OCwgMiwgMjUxLCA3NCwgMzMsIDMsIDEsIDIxMiwgNjgsIDIsIDI1MSwgNzQsIDMzLCA2LCAxLCAyMzUsIDE3LCAyLCAxMDEsIAotICAgIDMzLCAzLCAxLCAyMzUsIDE3LCAyLCAxMDEsIDMzLCA2LCAxLCAyNDUsIDEzMiwgMiwgMjE4LCAyNywgMzMsIDMsIDEsIDI0NSwgCi0gICAgMTMyLCAyLCAyMTgsIDI3LCAzMywgNiwgMSwgMjQ1LCAxMDksIDIsIDEwMSwgMzMsIDMsIDEsIDI0NSwgMTA5LCAyLCAxMDEsIAotICAgIDMzLCA2LCAxLCAyNDUsIDEwOSwgMiwgMjE4LCAyNywgMzMsIDMsIDEsIDI0NSwgMTA5LCAyLCAyMTgsIDI3LCAzMywgNiwgMSwgCi0gICAgMjM0LCAxMzMsIDI1MCwgNjcsIDMzLCAzLCAxLCAyMzQsIDEzMywgMjUwLCA2NywgMzMsIDYsIDEsIDI0NSwgMTE4LCAyLCAKLSAgICAyMTgsIDI3LCAzMywgMywgMSwgMjQ1LCAxMTgsIDIsIDIxOCwgMjcsIDMzLCAzLCAxLCAyMjYsIDE4NSwgMzMsIDYsIDEsIAotICAgIDExOCwgMiwgMjUxLCA3NCwgMzMsIDMsIDEsIDExOCwgMiwgMjUxLCA3NCwgMzMsIDYsIDEsIDExOCwgMiwgMjQ3LCAyMDksIAotICAgIDMzLCAzLCAxLCAxMTgsIDIsIDI0NywgMjA5LCAzMywgNiwgMjYsIDExOCwgMjM2LCA1NSwgMzMsIDMsIDI2LCAxMTgsIDIzNiwgCi0gICAgNTUsIDMzLCA2LCAxLCAyMzYsIDU2LCAyLCAyNTEsIDc0LCAzMywgMywgMSwgMjM2LCA1NiwgMiwgMjUxLCA3NCwgMzMsIDYsIAotICAgIDEsIDIyMiwgMTEzLCAzMywgMywgMSwgMjIyLCAxMTMsIDMzLCA2LCAxLCAyMjIsIDExNCwgMiwgMjQ3LCAyMDksIDMzLCAzLCAKLSAgICAxLCAyMjIsIDExNCwgMiwgMjQ3LCAyMDksIDMzLCA2LCAxLCAyMTIsIDY4LCAyLCAyNDcsIDIwOSwgMzMsIDMsIDEsIDIxMiwgCi0gICAgNjgsIDIsIDI0NywgMjA5LCAzMywgNiwgMSwgMjEyLCA4OCwgMiwgMjQ3LCAyMDksIDMzLCAzLCAxLCAyMTIsIDg4LCAyLCAKLSAgICAyNDcsIDIwOSwgMzMsIDYsIDEsIDI1NCwgMTgwLCAyNDUsIDI0NywgMzMsIDMsIDEsIDI1NCwgMTgwLCAyNDUsIDI0NywgMzMsIAotICAgIDYsIDEsIDI0MCwgMTQ2LCAyLCAyMzIsIDM3LCAzMywgMywgMSwgMjQwLCAxNDYsIDIsIDIzMiwgMzcsIDMzLCA2LCAxLCAKLSAgICAyNDAsIDE0NiwgMiwgMjQ3LCAyMDksIDMzLCAzLCAxLCAyNDAsIDE0NiwgMiwgMjQ3LCAyMDksIDMzLCA2LCAxLCAxNTcsIDIsIAotICAgIDI0NywgMjA5LCAzMywgMywgMSwgMTU3LCAyLCAyNDcsIDIwOSwgMzMsIDYsIDEsIDI1MiwgNTQsIDc1LCAzMywgMywgMSwgCi0gICAgMjUyLCA1NCwgNzUsIDMzLCA2LCAxLCAyNTIsIDU0LCAxNTcsIDIsIDI0NywgMjA5LCAzMywgMywgMSwgMjUyLCA1NCwgMTU3LCAKLSAgICAyLCAyNDcsIDIwOSwgMzMsIDYsIDEsIDE5MSwgMiwgMjQ3LCAyMDksIDMzLCAzLCAxLCAxOTEsIDIsIDI0NywgMjA5LCAzMywgCi0gICAgNiwgMSwgMTExLCAyLCAyMzIsIDM3LCAzMywgMywgMSwgMTExLCAyLCAyMzIsIDM3LCAzMywgNiwgMSwgMTExLCAyLCAyNDcsIAotICAgIDIwOSwgMzMsIDMsIDEsIDExMSwgMiwgMjQ3LCAyMDksIDMzLCA2LCAxLCAxMTEsIDIsIDUxLCAxNzksIDMzLCAzLCAxLCAKLSAgICAxMTEsIDIsIDUxLCAxNzksIDMzLCA2LCAxLCAyNTAsIDY4LCAyLCAyNDcsIDIwOSwgMzMsIDMsIDEsIDI1MCwgNjgsIDIsIAotICAgIDI0NywgMjA5LCAzMywgNiwgMSwgMjQyLCAyMTMsIDIsIDI0NywgMjQ2LCAzMywgMywgMSwgMjQyLCAyMTMsIDIsIDI0NywgCi0gICAgMjQ2LCAzMywgNiwgMSwgMjEzLCAxOSwgMiwgMjQ3LCAyMDksIDMzLCAzLCAxLCAyMTMsIDE5LCAyLCAyNDcsIDIwOSwgMzMsIAotICAgIDYsIDEsIDI0MiwgMjEzLCAyLCAyMTksIDQ1LCAyNCwgMTAxLCAzMywgMywgMSwgMjQyLCAyMTMsIDIsIDIxOSwgNDUsIDI0LCAKLSAgICAxMDEsIDMzLCA2LCAxLCAyNDIsIDMwLCAyLCAxMDEsIDMzLCAzLCAxLCAyNDIsIDMwLCAyLCAxMDEsIDMzLCA2LCAxLCAyNDIsIAotICAgIDMwLCAyLCA5MCwgMzMsIDMsIDEsIDI0MiwgMzAsIDIsIDkwLCAzMywgNiwgMSwgMjM0LCAyMywgMjQ4LCA0MSwgMzMsIDMsIAotICAgIDEsIDIzNCwgMjMsIDI0OCwgNDEsIDMzLCA2LCAxLCAyMzQsIDIzLCAyNDcsIDExNCwgMzMsIDMsIDEsIDIzNCwgMjMsIDI0NywgCi0gICAgMTE0LCAzMywgNiwgMSwgMjM0LCAyMywgMjEyLCAyMCwgMzMsIDMsIDEsIDIzNCwgMjMsIDIxMiwgMjAsIDMzLCA2LCAxLCAKLSAgICAyMzQsIDIzLCAyNDUsIDI0MSwgMzMsIDMsIDEsIDIzNCwgMjMsIDI0NSwgMjQxLCAzMywgNiwgMSwgMjM0LCAyMywgMjMyLCAKLSAgICAyMTYsIDMzLCAzLCAxLCAyMzQsIDIzLCAyMzIsIDIxNiwgMzMsIDYsIDEsIDIzNCwgMjMsIDIyOSwgOSwgMzMsIDMsIDEsIAotICAgIDIzNCwgMjMsIDIyOSwgOSwgMzMsIDYsIDEsIDIzNCwgMjMsIDIyMCwgMzcsIDMzLCAzLCAxLCAyMzQsIDIzLCAyMjAsIDM3LCAKLSAgICAzMywgNiwgMSwgMjM0LCAyMywgMjE3LCAxMywgMzMsIDMsIDEsIDIzNCwgMjMsIDIxNywgMTMsIDMzLCA2LCAxLCAyMjMsIAotICAgIDIwMiwgMjEyLCA4NywgMzMsIDMsIDEsIDIyMywgMjAyLCAyMTIsIDg3LCAzMywgNiwgMSwgMjQ1LCAxMzIsIDIsIDEwMSwgCi0gICAgMzMsIDMsIDEsIDI0NSwgMTMyLCAyLCAxMDEsIDMzLCA2LCAxLCAyMzMsIDI1LCAzMywgMywgMSwgMjMzLCAyNSwgMzMsIDYsIAotICAgIDEsIDIyMywgMTkyLCAzMywgMywgMSwgMjIzLCAxOTIsIDMzLCA2LCAxLCAyMTMsIDgwLCAzMywgMywgMSwgMjEzLCA4MCwgCi0gICAgMzMsIDYsIDEsIDIyNCwgMjMyLCAzMywgMywgMSwgMjI0LCAyMzIsIDMzLCA2LCAxLCAyMTQsIDYsIDMzLCAzLCAxLCAyMTQsIAotICAgIDYsIDMzLCA2LCAxLCAyNTQsIDc1LCAxODEsIDMzLCAzLCAxLCAyNTQsIDc1LCAxODEsIDMzLCA2LCAxLCAyNDUsIDEzMiwgMiwgCi0gICAgMjMxLCAzNywgMTAxLCAzMywgMywgMSwgMjQ1LCAxMzIsIDIsIDIzMSwgMzcsIDEwMSwgMzMsIDYsIDEsIDI0NSwgMTA5LCAyLCAKLSAgICAyMzEsIDM3LCAxMDEsIDMzLCAzLCAxLCAyNDUsIDEwOSwgMiwgMjMxLCAzNywgMTAxLCAzMywgNiwgMSwgMjI2LCA5NywgMiwgCi0gICAgMjQ3LCAyNDYsIDMzLCAzLCAxLCAyMjYsIDk3LCAyLCAyNDcsIDI0NiwgMzMsIDYsIDEsIDIyMCwgMjE0LCAyLCAyNDcsIAotICAgIDI0NiwgMzMsIDMsIDEsIDIyMCwgMjE0LCAyLCAyNDcsIDI0NiwgMTQxLCA2LCAxLCAyNTMsIDgwLCAxNDEsIDYsIDEsIDI1MSwgCi0gICAgMjE2LCAxNDEsIDYsIDEsIDI0MiwgMTc5LCAxNDEsIDYsIDEsIDI0OCwgMTY0LCAxNDEsIDYsIDEsIDI0NSwgMTY5LCAxNDEsIAotICAgIDYsIDEsIDIxMiwgMTA5LCAxNDEsIDYsIDEsIDI0NSwgMTU0LCAxNDEsIDYsIDEsIDI0NSwgMzAsIDE0MSwgNiwgMSwgMTA4LCAKLSAgICAxNDEsIDYsIDEsIDIxMiwgNjcsIDE0MSwgNiwgMSwgMjM1LCAyMjQsIDE0MSwgNiwgMSwgMjMyLCAyMTksIDE0MSwgNiwgMSwgCi0gICAgMjEzLCAxNDgsIDE0MSwgNiwgMSwgMjUwLCAyMTksIDE0MSwgNiwgMSwgMjM0LCAxNzEsIDE0MSwgNiwgMSwgMjQxLCA1NCwgCi0gICAgMTQxLCA2LCAxLCAyMzUsIDEzOSwgMTQxLCA2LCAxLCAyNDIsIDIyMiwgMTQxLCA2LCAxLCAyNTAsIDYyLCAxNDEsIDYsIDEsIAotICAgIDIzMSwgMTIyLCAxNDEsIDYsIDEsIDIxMiwgMjU1LCAxNDEsIDYsIDEsIDIyOCwgMTUwLCAxNDEsIDYsIDEsIDIyMSwgMjQsIAotICAgIDE0MSwgNiwgMSwgMjE0LCAxMTksIDE0MSwgNiwgMSwgMjUwLCA5MiwgMTQxLCA2LCAxLCAyMjYsIDgwLCAxNDEsIDYsIDEsIAotICAgIDIzNSwgMTEyLCAxNDEsIDYsIDEsIDIwMywgMTQxLCA2LCAxLCAyMjIsIDgwLCAxNDEsIDYsIDEsIDIxNCwgMTU2LCAxNDEsIAotICAgIDYsIDEsIDIxNywgMTUsIDE0MSwgNiwgMSwgMjIzLCAyNDUsIDE0MSwgNiwgMSwgMjQ5LCAxNzUsIDE0MSwgNiwgMSwgMjEyLCAKLSAgICAyNDAsIDE0MSwgNiwgMSwgMjI1LCAxNzgsIDE0MSwgNiwgMSwgMjM0LCAxODIsIDE0MSwgNiwgMSwgMjI3LCA4OCwgMTQxLCAKLSAgICA2LCAxLCAyNDQsIDExMSwgMTQxLCA1OSwgMSwgNDIsIDE1MSwgMjIzLCAxMzAsIDE0MSwgMjUzLCAyMjYsIDE0MSwgMjQ1LCAKLSAgICAxMTIsIDc3LCAxNDEsIDI0NCwgMjU0LCA3NywgMTQxLCAyNDksIDE1NywgMTQxLCAyMjQsIDE1OCwgNzcsIDE0MSwgMjU0LCAKLSAgICAxODEsIDc3LCAxNDEsIDMsIDEsIDI1MywgODAsIDE0MSwgMywgMSwgMjUxLCAyMTYsIDE0MSwgMywgMSwgMjQyLCAxNzksIAotICAgIDE0MSwgMywgMSwgMjQ4LCAxNjQsIDE0MSwgMywgMSwgMjQ1LCAxNjksIDE0MSwgMywgMSwgMjEyLCAxMDksIDE0MSwgMywgMSwgCi0gICAgMjQ1LCAxNTQsIDE0MSwgMywgMSwgMjQ1LCAzMCwgMTQxLCAzLCAxLCAxMDgsIDE0MSwgMywgMSwgMjEyLCA2NywgMTQxLCAzLCAKLSAgICAxLCAyMzUsIDIyNCwgMTQxLCAzLCAxLCAyMzIsIDIxOSwgMTQxLCAzLCAxLCAyMTMsIDE0OCwgMTQxLCAzLCAxLCAyNTAsIAotICAgIDIxOSwgMTQxLCAzLCAxLCAyMzQsIDE3MSwgMTQxLCAzLCAxLCAyNDEsIDU0LCAxNDEsIDMsIDEsIDIzNSwgMTM5LCAxNDEsIAotICAgIDMsIDEsIDI0MiwgMjIyLCAxNDEsIDMsIDEsIDI1MCwgNjIsIDE0MSwgMywgMSwgMjMxLCAxMjIsIDE0MSwgMywgMSwgMjEyLCAKLSAgICAyNTUsIDE0MSwgMywgMSwgMjI4LCAxNTAsIDE0MSwgMywgMSwgMjIxLCAyNCwgMTQxLCAzLCAxLCAyMTQsIDExOSwgMTQxLCAKLSAgICAzLCAxLCAyNTAsIDkyLCAxNDEsIDMsIDEsIDIyNiwgODAsIDE0MSwgMywgMSwgMjM1LCAxMTIsIDE0MSwgMywgMSwgMjAzLCAKLSAgICAxNDEsIDMsIDEsIDIyMiwgODAsIDE0MSwgMywgMSwgMjE0LCAxNTYsIDE0MSwgMywgMSwgMjE3LCAxNSwgMTQxLCAzLCAxLCAKLSAgICAyMjMsIDI0NSwgMTQxLCAzLCAxLCAyNDksIDE3NSwgMTQxLCAzLCAxLCAyMTIsIDI0MCwgMTQxLCAzLCAxLCAyMjUsIDE3OCwgCi0gICAgMTQxLCAzLCAxLCAyMzQsIDE4MiwgMTQxLCAzLCAxLCAyMjcsIDg4LCAxNDEsIDMsIDEsIDI0NCwgMTExLCAxNDEsIDMsIDI2LCAKLSAgICAyNDUsIDE3MCwgMjEyLCAyNDAsIDE0MSwgMjQzLCAyMDAsIDIxOSwgNjksIDE0MSwgMjQwLCAxNjAsIDkzLCAyNTQsIDE3NSwgCi0gICAgMjQ1LCAyMywgOTMsIDI1NCwgMTc1LCAyMjIsIDgxLCA5MywgMjU0LCAxNzUsIDIyMSwgMTEsIDkzLCAyNTQsIDE3NSwgMjEyLCAKLSAgICA5NywgMjI0LCAyMTUsIDkzLCAyNTQsIDE3NSwgMjEyLCA5NywgMjQzLCAxMDAsIDkzLCAyNTQsIDE3NSwgMjE3LCAyOCwgOTMsIAotICAgIDI1NCwgMTc1LCAyMjMsIDIwMCwgOTMsIDI1NCwgMTc1LCAyMTIsIDk2LCA5MywgMjU0LCAxNzUsIDIyNiwgMTE4LCA5MywgCi0gICAgMjU0LCAxNzUsIDIxMywgMTEsIDkzLCAyNTQsIDE3NSwgMjE3LCAxNjcsIDkzLCAyNTQsIDE3NSwgMjQzLCAxNywgOTMsIAotICAgIDI1NCwgMTc1LCAyNDMsIDE4LCAyMzAsIDEzOSwgOTMsIDI1NCwgMTc1LCAyNDMsIDE1LCA5MywgMjU0LCAxNzUsIDIyNCwgCi0gICAgMjE2LCAyMjYsIDE0NCwgOTMsIDI1NCwgMTc1LCAyMTcsIDIwNiwgMjQzLCAzMiwgOTMsIDI1NCwgMTc1LCAyMjYsIDEwMCwgCi0gICAgOTMsIDI1NCwgMTc1LCAyNTMsIDExNiwgMjQyLCAyMiwgOTMsIDI1NCwgMTc1LCAyMzAsIDE0OSwgOTMsIDI1NCwgMTc1LCAKLSAgICAyMzIsIDEzLCA5MywgMjU0LCAxNzUsIDIzMSwgMTEzLCA5MywgMjU0LCAxNzUsIDIzMSwgMTE0LCAyMzQsIDE4MywgOTMsIAotICAgIDI1NCwgMTc1LCAyNDgsIDEwOCwgOTMsIDI1NCwgMTc1LCAyMjQsIDIyNywgOTMsIDI1NCwgMTc1LCAyMTcsIDIwNiwgMjI0LCAKLSAgICAyMTEsIDkzLCAyNTQsIDE3NSwgMjEzLCAyMSwgMjUxLCAyMTcsIDIxMiwgMjIxLCA5MywgMjU0LCAxNzUsIDIyNywgNzMsIAotICAgIDkzLCAyNTQsIDE3NSwgMjM2LCAxNCwgOTMsIDI1NCwgMTc1LCAyNDgsIDIxLCA5MywgMjU0LCAxNzUsIDIxMiwgMjYsIDkzLCAKLSAgICAxNTIsIDIzMSwgMjA2LCAyNDksIDIyOCwgOTMsIDIyNSwgMTQ1LCAyMjAsIDIxNiwgOTMsIDIyNSwgMTQ1LCAyNDEsIDIzMywgCi0gICAgMjIyLCA4MSwgOTMsIDIyNSwgMTQ1LCAyNDEsIDIzMywgMjI2LCAxMTIsIDkzLCAyMjUsIDE0NSwgMjQxLCAyMzMsIDIyNCwgCi0gICAgMjIwLCA5MywgMjI1LCAxNDUsIDI0MSwgMTQ0LCA5MywgMjI1LCAxNDUsIDIxNiwgMTM0LCA5MywgMjI1LCAxNDUsIDIyMiwgCi0gICAgODEsIDkzLCAyMjUsIDE0NSwgMjI2LCAxMTIsIDkzLCAyMjUsIDE0NSwgMjI0LCAyMjAsIDkzLCAyMjUsIDE0NSwgMjQxLCAKLSAgICA0NywgOTMsIDIyNSwgMTQ1LCAyNDEsIDQ4LCAyNDEsIDIzNSwgMzEsIDIxNCwgMjM2LCA5MywgMjI1LCAxNDUsIDIyNCwgCi0gICAgMTYyLCA5MywgMjI1LCAxNDUsIDI0OCwgMTUxLCAxNjcsIDIzMSwgMjM0LCA5MywgMjI1LCAxNDUsIDIzMSwgMTA1LCA5MywgCi0gICAgMjI1LCAyNywgMjMxLCAyMzEsIDkzLCAyMjUsIDE0NSwgMjI0LCA1OSwgOTMsIDIyNSwgMjcsIDIyNiwgMTIwLCA5MywgMjI1LCAKLSAgICAxNDUsIDIyMCwgMjAxLCAyNDcsIDc0LCA5MywgMjI1LCAxNDUsIDIyMCwgODUsIDI0NywgNzQsIDkzLCAyMjUsIDI3LCAyMTksIAotICAgIDIzNywgMjI2LCAxMTQsIDkzLCAxNTIsIDIxNSwgMTMxLCAyNDcsIDc0LCA5MywgMTUyLCAyMzIsIDE2MywgMjQ3LCA3NCwgCi0gICAgOTMsIDIyNSwgMjcsIDIyOCwgNTEsIDI0MiwgMjEsIDkzLCAyMjUsIDE0NSwgMjI0LCAyMjEsIDIyNCwgMjE1LCA5MywgMSwgCi0gICAgMjU0LCA3OCwgOTMsIDEsIDI1MSwgMjA1LCA5MywgMSwgMjQyLCAxNzcsIDkzLCAxLCAyNDgsIDEzNCwgOTMsIDEsIDI0MSwgCi0gICAgMjIyLCA5MywgMSwgMjE0LCAyMzYsIDkzLCAxLCAyMTIsIDkwLCA5MywgMSwgMjQxLCAxODIsIDkzLCAxLCAyMTcsIDE4MywgCi0gICAgOTMsIDEsIDIxMiwgMjI0LCA5MywgMSwgNDAsIDIzNCwgMjU0LCA5MywgMSwgMjM0LCAyNTQsIDkzLCAxLCAyMzMsIDExOCwgCi0gICAgOTMsIDEsIDQwLCAyMzEsIDEyOSwgOTMsIDEsIDIzMSwgMTI5LCA5MywgMSwgNDAsIDIyOCwgNTAsIDkzLCAxLCAyMjgsIDUwLCAKLSAgICA5MywgMSwgMjIyLCAxNjQsIDkzLCAxLCAyNTMsIDc4LCA5MywgMSwgNDAsIDIyNiwgOTYsIDkzLCAxLCAyMjYsIDk2LCA5MywgCi0gICAgMSwgNDAsIDIxNiwgMTM3LCA5MywgMSwgMjE2LCAxMzcsIDkzLCAxLCAyMjQsIDE4NCwgOTMsIDEsIDIyMywgMjE5LCA5MywgCi0gICAgMSwgMjIwLCAyMDAsIDkzLCAxLCAyMTcsIDI0NSwgOTMsIDI2LCAyMTIsIDI1MywgNTEsIDIxNCwgMjM2LCA5MywgMjYsIAotICAgIDIxMiwgMjUzLCAyMTQsIDIzNywgMjEyLCAyMjQsIDkzLCAyNiwgMjEyLCAyNTMsIDUxLCAyMTIsIDIyNCwgOTMsIDIyNSwgCi0gICAgMjcsIDI0MywgMTcsIDkzLCAyMjUsIDI3LCAyNDMsIDE1LCAxMiwgNTAsIDUyLCAxMiwgNSwgMjIyLCAxNTgsIDEyLCAyNDMsIAotICAgIDI1NSwgMjMxLCAyMTcsIDEyLCA1LCAyMjIsIDE5MiwgMjUzLCAyMDcsIDI0OSwgNTAsIDIyMywgOTUsIDI1MywgMjA3LCAKLSAgICAyNDMsIDIzMCwgMjIzLCA5NSwgMTIsIDIyNCwgMjcsIDI1MywgMjA3LCAyMjYsIDU4LCAyMzEsIDYsIDUyLCAyNTMsIDIwNywgCi0gICAgMjI2LCA1OCwgMjE3LCAyMDEsIDIxNywgMTAxLCA1MiwgMjU0LCAxMjYsIDUyLCAxMiwgMjQ5LCAxNTcsIDEyLCAyNDgsIDk2LCAKLSAgICAyMjEsIDU3LCAxMiwgMjI1LCAxNDcsIDIxNCwgMjE4LCA1MiwgMTIsIDUsIDIzMCwgMjQzLCAxMiwgNSwgMjIyLCAxNzQsIAotICAgIDI1NCwgODAsIDIxNCwgMjksIDEyLCA1LCAyNTQsIDgwLCAyNTMsIDEzNywgMTIsIDUsIDIyNCwgNTgsIDI1NCwgNzksIDEyLCAKLSAgICA1LCAyMjQsIDY1LCAyNTQsIDYxLCAyNTQsIDE0LCAxMiwgNSwgMjE4LCAyMCwgMTIsIDMsIDEyNCwgMjE4LCAyOSwgMTIsIDMsIAotICAgIDEyNCwgMjYsIDEwNiwgMiwgMjMzLCAxMjcsIDIsIDIxMywgMzQsIDEyLCAzLCAxMjQsIDIxMiwgMTAxLCAxMiwgMywgMjQ0LCAKLSAgICAxMzMsIDEyLCAzLCAyNDgsIDEyOSwgMTIsIDMsIDIzNCwgMjEwLCAxMiwgMjIxLCA3MCwgMTIsIDIxNiwgMTY5LCA2MiwgCi0gICAgMjI1LCAyNywgNzcsIDEyLCAyMjQsIDE1OCwgNzcsIDEyLCAxLCAyMzQsIDIxNCwgMjEzLCAzNCwgMTIsIDEsIDI0MiwgMiwgCi0gICAgMTIsIDEsIDEwNiwgMiwgMjMyLCAzMywgNDksIDEyLCAxLCAxMDYsIDIsIDE5MiwgNDksIDEyLCAxLCAyMTQsIDE1LCAyLCAKLSAgICAxOTIsIDQ5LCAxMiwgMSwgMTA2LCAyLCAxOTIsIDU1LCAxMiwgMSwgNzMsIDIsIDE5MiwgNDksIDEyLCAxLCAyNTQsIDc4LCAKLSAgICAxMiwgMSwgMjUxLCAyMzAsIDEyLCAxLCAyMTcsIDIxNiwgMjMxLCAyMjcsIDEyLCAxLCAyMTcsIDIxNSwgMTIsIDEsIDIxNywgCi0gICAgMTQ1LCAxMiwgMSwgMjM1LCAxMjQsIDEyLCAxLCAyNDIsIDE4LCAxMiwgMSwgMjM0LCAxMzUsIDEyLCAxLCAyNDgsIDE0MCwgCi0gICAgMTIsIDEsIDIxNywgMTU1LCAxMiwgMSwgMjIzLCAyNDUsIDEyLCAxLCAyMTIsIDEwMSwgMTIsIDEsIDIyMiwgODUsIDEyLCAxLCAKLSAgICAyMjAsIDIzOSwgMTIsIDEsIDIyMiwgMTk1LCAxMiwgMSwgMjQ4LCAxNTksIDEyLCAxLCAyMTgsIDI5LCAxMiwgMSwgMjEyLCAKLSAgICAxMDQsIDEyLCAxLCAyNTQsIDEwMywgMTIsIDEsIDI0MiwgMjIwLCAxMiwgMSwgMjM0LCAxODEsIDIsIDExNywgMTc2LCA0OSwgCi0gICAgMTIsIDEsIDIzNCwgMTgxLCAyLCAxMzMsIDE3NiwgNTUsIDEyLCAxLCAyNDQsIDEzNiwgNzMsIDIsIDIzNSwgMTkxLCAyMTUsIAotICAgIDc5LCAxMiwgMSwgMjQ0LCAxMzYsIDczLCAyLCAxMTcsIDE3NiwgNDksIDEyLCAxLCAyNDQsIDEzNiwgNzMsIDIsIDEzMywgCi0gICAgMTc2LCA0OSwgMTIsIDIxNywgMjUwLCAxMiwgMSwgMjQ0LCAxMTEsIDEyLCAxLCAyMjQsIDIyNSwgMTIsIDEsIDIzNCwgMjU0LCAKLSAgICAxMiwgMSwgMjMzLCAxMjYsIDEyLCAxLCAyMzEsIDE0MywgMTIsIDEsIDIyOCwgMTczLCAxMiwgMSwgMjQxLCAyMDIsIDEyLCAKLSAgICAxLCAyMTQsIDE0LCAxMiwgMSwgMTA2LCAyMzEsIDI1NSwgMTIsIDEsIDIxMywgMzQsIDEyLCAyNDQsIDEzMSwgMTIsIDI0OCwgCi0gICAgMTI3LCAxMiwgMjM0LCAyMDgsIDEyLCAyNDQsIDEzMywgMTIsIDI0OCwgMTI5LCAxMiwgMjM0LCAyMTAsIDEyLCAyMjEsIDE1LCAKLSAgICAxMiwgMjE4LCAyNDYsIDEyLCAyMzIsIDMxLCA0OSwgMTIsIDE5MiwgNDksIDEyLCAxOTIsIDU1LCAxMiwgMjE5LCAxMCwgCi0gICAgMjU0LCA3OCwgMTIsIDIzNSwgMTkxLCAyNDgsIDEyOSwgMTIsIDE1MiwgMjI4LCAxNzQsIDI0MiwgMTk0LCAxMiwgMjExLCAKLSAgICAyNTAsIDEyLCAzMCwgNSwgMywgMjE1LCA4MCwgNDksIDEyLCAzMCwgNSwgMjM1LCAxOTEsIDMsIDIxNSwgODAsIDQ5LCAxMiwgCi0gICAgMzAsIDUsIDYyLCA1NSwgMTIsIDIyMywgMjAyLCAyNDgsIDEyOSwgMTIsIDI0NCwgMTM0LCAyLCAxMTcsIDI0NywgNzIsIDEyLCAKLSAgICAyMTQsIDE2LCAxOTIsIDU1LCAyNTMsIDIwNywgMjEsIDIxMiwgNzksIDI1MywgMjA3LCAyMSwgMTE2LCAyNTMsIDIwNywgMjEsIAotICAgIDEwOSwgMjUzLCAyMDcsIDIxLCAxNjYsIDI1MywgMjA3LCAyMSwgMTYzLCAyNTMsIDIwNywgMjEsIDE4MCwgMjUzLCAyMDcsIAotICAgIDIxLCAxODksIDI1MywgMjA3LCAyMSwgMTk4LCAyNTMsIDIwNywgMjEsIDE5NSwgMjUzLCAyMDcsIDIxLCAyMDAsIDEyLCAKLSAgICAyMjYsIDU3LCA1MiwgMTIsIDI0OCwgMzQsIDIyMSwgNTcsIDEyLCAyMTcsIDk5LCAyMjEsIDU3LCAxMiwgMjQ0LCA1MCwgCi0gICAgMjI1LCAxNDMsIDIxOSwgOTUsIDEyLCAxLCAyNDcsIDczLCAyNTEsIDIzMCwgMTIsIDEsIDI0NywgNzMsIDIyNCwgMjI1LCAKLSAgICAxMiwgMSwgMjE4LCAyMjMsIDI1NCwgNzgsIDEyLCAxLCAxMDYsIDIxNCwgMzAsIDEyLCAxLCAxMDYsIDIsIDIxNCwgMTYsIAotICAgIDE5MiwgNDksIDEyLCAxLCAxMDYsIDIsIDIxNCwgMTYsIDE5MiwgNTUsIDEyLCAxLCAxMjQsIDI0MiwgMiwgMTIsIDEsIDEyNCwgCi0gICAgMTkyLCAyNTQsIDc4LCAxMiwgMSwgMTI0LCAxOTIsIDIxNCwgMTQsIDEyLCAxLCAxMTEsIDIsIDE5MiwgNDksIDEyLCAxLCAKLSAgICAxMjQsIDE5MiwgMjEzLCAzNCwgMTIsIDEsIDIxNiwgMTA5LCAxMiwgMSwgMjE2LCAxMDcsIDEyLCAxLCAyNTEsIDI0MCwgMTIsIAotICAgIDEsIDIxNywgMjE2LCAyLCAyMjMsIDEzMCwgMTIsIDEsIDIxNywgMjE2LCAyLCAxMzMsIDE3NiwgNzgsIDI0NiwgNTcsIDEyLCAKLSAgICAxLCAyMjYsIDgwLCAxMiwgMSwgMjE3LCAyMTMsIDEyLCAxLCAyNTEsIDIyOCwgMTIsIDEsIDEyMSwgMiwgMTkyLCA0OSwgMTIsIAotICAgIDEsIDEyMSwgMiwgMTE3LCAxNzYsIDcxLCA0OSwgMTIsIDEsIDIyOCwgMTQsIDEyLCAxLCAyNDUsIDI1NCwgMTIsIDEsIDEyMSwgCi0gICAgMiwgMTMzLCAxNzYsIDQ5LCAxMiwgMSwgMjE3LCAyMzMsIDEyLCAxLCAyMTcsIDIzMSwgMTIsIDEsIDI0OCwgODEsIDEyLCAxLCAKLSAgICAyNDgsIDE0MSwgMiwgMjIzLCAxMzAsIDEyLCAxLCAyNDgsIDE0MSwgMiwgNjIsIDU1LCAxMiwgMSwgMjQ4LCAxNDEsIDIsIAotICAgIDYyLCAyNTEsIDIyMCwgMjQsIDMsIDIxOCwgMjksIDEyLCAxLCAyNDgsIDE0NiwgMTIsIDEsIDI0OCwgODMsIDEyLCAxLCAKLSAgICAyNDYsIDI1LCAxMiwgMSwgMjQ4LCAxNDEsIDIsIDEzMywgMTc2LCA3OCwgMjQ2LCA1NywgMTIsIDEsIDI0OCwgMTQxLCAyLCAKLSAgICAyNDMsIDIzNywgMTc2LCA0OSwgMTIsIDEsIDIyMywgNzcsIDEyLCAxLCAyMjMsIDI0NiwgMiwgMywgMjE1LCA3OSwgMTIsIDEsIAotICAgIDIyMywgMjQ2LCAyLCAyMjMsIDEzMCwgMTIsIDEsIDIyMywgMjQ2LCAyLCA2MiwgNTUsIDEyLCAxLCAyMjMsIDI0NiwgMiwgMywgCi0gICAgMjE1LCA4MCwgNTUsIDEyLCAxLCAyMjMsIDI0NiwgMiwgNjIsIDI1MSwgMjIwLCAyNCwgNjIsIDQ5LCAxMiwgMSwgMjIzLCAKLSAgICAyNDYsIDIsIDExNywgMTc2LCA0OSwgMTIsIDEsIDIzNSwgMTIxLCAxMiwgMSwgMjIzLCAyNDYsIDIsIDI0MywgMjM3LCAxNzYsIAotICAgIDQ5LCAxMiwgMSwgMjIyLCA4NiwgMiwgNjIsIDI1MSwgMjIwLCAyNCwgNjIsIDQ5LCAxMiwgMSwgMjIyLCA4NiwgMiwgMTMzLCAKLSAgICAxNzYsIDU1LCAxMiwgMSwgMjIyLCA4NiwgMiwgMTMzLCAxNzYsIDI1MSwgMjIwLCAyNCwgMTMzLCAxNzYsIDQ5LCAxMiwgMSwgCi0gICAgMjIyLCAxOTYsIDIsIDExNywgMTc2LCA1NSwgMTIsIDEsIDIyMiwgMTk2LCAyLCAxMzMsIDE3NiwgNDksIDEyLCAxLCAyMTgsIAotICAgIDMwLCAyLCAxMzMsIDE3NiwgNDksIDEyLCAxLCAyNTQsIDEwNCwgMiwgMTMzLCAxNzYsIDQ5LCAxMiwgMSwgMjQ3LCA3MywgCi0gICAgMjQ0LCAxMTEsIDEyLCAxLCAyNDQsIDExMiwgMiwgNjIsIDIzMCwgMTc5LCA1NSwgMTIsIDEsIDI0NCwgMTEyLCAyLCA2MiwgCi0gICAgNTUsIDEyLCAxLCAyMTQsIDIyNSwgMTIsIDEsIDI0NCwgMTEyLCAyLCAxMzMsIDE3NiwgNTUsIDEyLCAxLCAyMjYsIDc4LCAKLSAgICAxMiwgMSwgMjI0LCAyMjYsIDIsIDYyLCA0OSwgMTIsIDEsIDIyNCwgMjI2LCAyLCAxMzMsIDE3NiwgNDksIDEyLCAxLCAyMzQsIAotICAgIDE4MCwgMTIsIDEsIDIxOCwgMTk1LCAyMzQsIDI1NCwgMTIsIDEsIDIzNCwgMjU1LCAyLCAyMjMsIDEzMCwgMTIsIDEsIDIzNCwgCi0gICAgMjU1LCAyLCA2MiwgNDksIDEyLCAxLCAyMjksIDE2MSwgMTIsIDEsIDIzNCwgMjU1LCAyLCAxMzMsIDE3NiwgNTUsIDEyLCAxLCAKLSAgICAyNDMsIDk3LCAxMiwgMSwgMjQzLCA5OCwgMiwgMjIzLCAxMzAsIDEyLCAxLCAyMjksIDg4LCAxMiwgMSwgMjQzLCA5OCwgMiwgCi0gICAgMTE3LCAxNzYsIDU1LCAxMiwgMSwgMjQyLCA4MiwgMTIsIDEsIDI0MywgOTgsIDIsIDEzMywgMTc2LCA0OSwgMTIsIDEsIAotICAgIDIzMywgMTI3LCAyLCAzLCAyMTUsIDc5LCAxMiwgMSwgMjMzLCAxMjcsIDIsIDYyLCA0OSwgMTIsIDEsIDIzMywgMTI3LCAyLCAKLSAgICAxMzMsIDE3NiwgNDksIDEyLCAxLCAyMzMsIDEyNywgMiwgMTMzLCAxNzYsIDU1LCAxMiwgMSwgMjI4LCAxNzQsIDIsIDYyLCAKLSAgICA1NSwgMTIsIDEsIDIyOCwgMTc0LCAyNDIsIDE5NCwgMTIsIDEsIDIyMywgMTE1LCAxMiwgMSwgMjI4LCAxNzQsIDIsIDIyMywgCi0gICAgMTMwLCAxMiwgMSwgMjI4LCAxNzQsIDIsIDEzMywgMTc2LCA0OSwgMTIsIDEsIDI0MSwgMjAzLCAyNDcsIDk1LCAxMiwgMSwgCi0gICAgMjE3LCAyMzQsIDIsIDYyLCA0OSwgMTIsIDEsIDI0MSwgMjAzLCAyLCA3MywgNDksIDEyLCAxLCAyNDEsIDIwMywgMjQyLCAKLSAgICAxNDcsIDEyLCAxLCAyNDEsIDIwMywgMjQyLCAxNDgsIDIsIDE5MiwgNDksIDEyLCAxLCAyMTcsIDIxNiwgMjMxLCAyMjgsIAotICAgIDI0MiwgMTQ3LCAxMiwgMSwgMjE0LCAxNSwgMiwgMjIzLCAxMzAsIDEyLCAxLCAyMzQsIDgyLCAyMjcsIDk5LCAxMiwgMSwgCi0gICAgMjI3LCA5OSwgMTIsIDEsIDY5LCAxMiwgMSwgMjEyLCAyMDMsIDEyLCAxLCAyMzQsIDgyLCAyMTIsIDIwMywgMTIsIDEsIAotICAgIDIxNCwgMTUsIDIsIDExNywgMTc2LCA0OSwgMTIsIDEsIDIxNCwgMjMyLCAxMiwgMSwgMjQ0LCAxMzYsIDIxMywgMzQsIDEyLCAKLSAgICAxLCA3MywgMiwgMjE4LCAyNywgMTIsIDEsIDczLCAyLCAzLCAyMTUsIDc5LCAxMiwgMSwgMjE0LCAxNSwgMiwgNjIsIDQ5LCAKLSAgICAxMiwgMSwgNzQsIDEyLCAxLCA3MywgMiwgMTMzLCAxNzYsIDU1LCAxMiwgMSwgNzMsIDI1MiwgNTIsIDEyLCAxLCA3MywgCi0gICAgMjUyLCA1MywgMiwgMTkyLCA0OSwgMTIsIDI0MywgMjAwLCAyMTksIDY5LCAxMiwgMSwgMjU0LCAxNDgsIDEyLCAzLCAxMjQsIAotICAgIDI2LCAyMjIsIDE5NiwgMiwgMjMzLCAxMjcsIDIsIDEwNiwgMjMxLCAyNTUsIDEyLCAzLCAxMjQsIDI2LCAyMjQsIDIyNiwgMiwgCi0gICAgMjMzLCAxMjcsIDIsIDEwNiwgMjMxLCAyNTUsIDEyLCAzLCAxMjQsIDYzLCA3MCwgMTcsIDEyLCAzLCAxMjQsIDIzMywgMTI3LCAKLSAgICAyNTQsIDc4LCAxMiwgMywgMTI0LCAyMzUsIDEyNCwgMTIsIDMsIDEyNCwgMTMzLCAyNDcsIDcyLCAxMiwgMywgMTI0LCAyMjIsIAotICAgIDg1LCAxMiwgMjQ1LCAxMDEsIDY1LCAyNTMsIDgyLCAxMiwgMjE5LCA5MSwgNjUsIDIyMywgNDksIDI0NSwgMTMyLCAyNDEsIAotICAgIDE0MSwgMTIsIDMsIDEyNCwgMjIzLCA4NSwgMjEyLCA3OSwgMTIsIDMsIDEyNCwgMjE1LCAxMzAsIDIyNCwgOCwgMjEyLCA3OSwgCi0gICAgMTIsIDMsIDEyNCwgMjQ3LCA3MywgMjQxLCAyMjAsIDY1LCAyMzQsIDEzNSwgMTIsIDMsIDEyNCwgNjMsIDQ4LCAxNywgMTIsIAotICAgIDMsIDExNSwgMjIyLCA4NSwgMTIsIDMsIDEyNCwgMjMyLCAzMiwgMTIsIDMsIDIxNCwgMTQsIDEyLCAzLCAyMTMsIDM0LCAxMiwgCi0gICAgMywgMTI0LCAyMTMsIDM0LCAxMiwgMywgMTI0LCAyMjgsIDE3MywgMTIsIDIyNSwgMTczLCA2NSwgMjIyLCAxODQsIDEyLCAKLSAgICAyNDUsIDExMCwgMjUwLCAxMDksIDExNSwgMjE5LCA2OSwgMTIsIDI0NSwgMTEwLCAyNTAsIDEwOSwgMTI0LCAyMTksIDY5LCAKLSAgICAxMiwgMjIzLCA4NSwgMTI0LCAyMTksIDcwLCAyLCAyNDQsIDczLCAyNTAsIDEwOCwgMTIsIDMsIDExNSwgMjMxLCAxNDMsIAotICAgIDEyLCAxLCAyNDgsIDE0MSwgMiwgMjM1LCAxOTEsIDIxNSwgNzksIDEyLCAxLCAyMjMsIDI0NiwgMiwgMjM1LCAxOTEsIDIxNSwgCi0gICAgNzksIDI0NCwgMjQ2LCAyNTMsIDIwNywgMjEsIDIxMiwgNzksIDI0NCwgMjQ2LCAyNTMsIDIwNywgMjEsIDExNiwgMjQ0LCAKLSAgICAyNDYsIDI1MywgMjA3LCAyMSwgMTA5LCAyNDQsIDI0NiwgMjUzLCAyMDcsIDIxLCAxNjYsIDI0NCwgMjQ2LCAyNTMsIDIwNywgCi0gICAgMjEsIDE2MywgMjQ0LCAyNDYsIDI1MywgMjA3LCAyMSwgMTgwLCAyNDQsIDI0NiwgMjUzLCAyMDcsIDIxLCAxODksIDI0NCwgCi0gICAgMjQ2LCAyNTMsIDIwNywgMjEsIDE5OCwgMjQ0LCAyNDYsIDI1MywgMjA3LCAyMSwgMTk1LCAyNDQsIDI0NiwgMjUzLCAyMDcsIAotICAgIDIxLCAyMDAsIDEyLCAxLCAyMjAsIDI0MCwgMiwgNjIsIDU1LCAxMiwgMSwgMjQ4LCAxNjAsIDIsIDYyLCA1NSwgMTIsIDEsIAotICAgIDI0MiwgMjIxLCAyLCA2MiwgNTUsIDEyLCA1LCAyMjAsIDg0LCAyNTQsIDM1LCAxMiwgNSwgMjIwLCA4NCwgMjI1LCAxMTUsIAotICAgIDIzMSwgMTIyLCAxMiwgMSwgMjQxLCAyMDMsIDIsIDIzNSwgMTkxLCAyMTUsIDc5LCAxNzUsIDI0NSwgMTAxLCA2NSwgMjI2LCAKLSAgICAxNDIsIDE3NSwgMjE4LCAyMTksIDI0MywgMjAwLCAyMTksIDY5LCAxNzUsIDIxOSwgMTIsIDI0MywgMjAwLCAyMTksIDY5LCAKLSAgICAxNzUsIDIxOCwgMjE5LCAyNDksIDE2NCwgMTc1LCAyMTksIDEyLCAyNDksIDE2NCwgMTc1LCAxOTksIDI0OSwgMTY0LCAxNzUsIAotICAgIDI0OSwgMTY1LCAyMjAsIDM0LCAyMzMsIDcwLCAxNzUsIDI0OSwgMTY1LCAyMjAsIDM0LCAyMjMsIDE0OCwgMTc1LCAyMTgsIAotICAgIDIxOSwgMjQ5LCAxNjUsIDIyMCwgMzQsIDIzMywgNzAsIDE3NSwgMjE5LCAxMiwgMjQ5LCAxNjUsIDIyMCwgMzQsIDIyMywgCi0gICAgMTQ4LCAxNzUsIDI0OSwgMTE5LCAxNzUsIDI0MSwgMjQwLCAyMjcsIDExNCwgMTc1LCAyNDEsIDI0MCwgMjMxLCAxMDMsIAotICAgIDE3NSwgMjQxLCAyNDAsIDI1MywgMTM0LCAxNzUsIDI1NCwgMTgxLCA3NywgMTc1LCAxLCAyNTQsIDgyLCAxNzUsIDEsIDIxOCwgCi0gICAgMjIzLCAyNTQsIDgyLCAxNzUsIDEsIDI1MSwgMjAyLCAxNzUsIDEsIDI0MywgODksIDE3NSwgMSwgMjQzLCA5MCwgMjQzLCAKLSAgICA2NywgMTc1LCAxLCAyNDgsIDEzNywgMTc1LCAxLCAyNDcsIDczLCAyNDgsIDEzOCwgMjIzLCAxMjYsIDE3NSwgMSwgMjQxLCAKLSAgICAyMjIsIDE3NSwgMSwgMjE0LCAxNCwgMTc1LCAxLCAyMTIsIDEwMSwgMTc1LCAxLCAyNDEsIDE4MCwgMTc1LCAxLCAyMTcsIAotICAgIDE3OSwgMTc1LCAxLCAyMTcsIDE4MCwgMjQzLCA2NywgMTc1LCAxLCAyMTIsIDE5MCwgMTc1LCAxLCAyMTIsIDE5MSwgMjQxLCAKLSAgICAyMjIsIDE3NSwgMSwgMjM0LCAyMzAsIDE3NSwgMSwgMjMzLCAxMjUsIDE3NSwgMSwgMjMxLCAzLCAxNzUsIDEsIDIyOCwgNTAsIAotICAgIDE3NSwgMSwgMjIxLCA2MywgMTc1LCAxLCA0MCwgMjIxLCA2MywgMTc1LCAxLCA3NCwgMTc1LCAxLCAyMjYsIDk2LCAxNzUsIAotICAgIDEsIDIyMywgMjAyLCAyMjYsIDk2LCAxNzUsIDEsIDIyMiwgMTkzLCAxNzUsIDEsIDIyNCwgMjE5LCAxNzUsIDEsIDIyMywgCi0gICAgMTI2LCAxNzUsIDEsIDIyMCwgMjAwLCAxNzUsIDEsIDIxNywgMjQzLCAxNzUsIDEsIDIyNiwgNDUsIDI1MSwgMTkwLCAxNzUsIAotICAgIDEsIDIyNiwgNDUsIDI0MiwgMjE4LCAxNzUsIDEsIDIyNiwgNDUsIDI0NywgMjI4LCAxNzUsIDIyNSwgMzYsIDQ5LCAxNzUsIAotICAgIDIyNSwgMzYsIDU1LCAxNzUsIDIyNSwgMzYsIDI0NiwgNzEsIDE3NSwgMjEyLCAxMCwgNDksIDE3NSwgMjEyLCAxMCwgNTUsIAotICAgIDE3NSwgMjEyLCAxMCwgMjQ2LCA3MSwgMTc1LCAyMjQsIDI0LCA0OSwgMTc1LCAyMjQsIDI0LCA1NSwgMTc1LCAyNDYsIDcyLCAKLSAgICAyMTIsIDE3LCAyNDEsIDMxLCAxNzUsIDI0NiwgNzIsIDIxMiwgMTcsIDI1NCwgMTUsIDE3NSwgMjQxLCAyMjUsIDQ5LCAxNzUsIAotICAgIDI0MSwgMjI1LCA1NSwgMTc1LCAyNDEsIDIyNCwgMjQ2LCA3MSwgMTc1LCAyNDUsIDQzLCA0OSwgMTc1LCAyNDUsIDQzLCA1NSwgCi0gICAgMTc1LCAyMjMsIDE5LCAxNzUsIDI0NCwgMTA1LCAyNDcsIDc0LCAxNzUsIDIyNCwgMTM3LCAxNzUsIDIyMywgNDUsIDE3NSwgCi0gICAgMTE3LCA3MSwgMTc2LCA0OSwgMTc1LCAxMTcsIDcxLCAxNzYsIDU1LCAxNzUsIDEzMywgMTc2LCA0OSwgMTc1LCAxMzMsIAotICAgIDE3NiwgNTUsIDE3NSwgMjI3LCAxMTIsIDIzMiwgMjQzLCA0OSwgMTc1LCAyMjcsIDExMiwgMjMyLCAyNDMsIDU1LCAxNzUsIAotICAgIDIzMCwgMTI2LCAxNzUsIDI1MiwgNTEsIDE3NSwgMSwgMjE5LCAyMzMsIDIxMiwgNzMsIDE3NSwgMSwgMjE5LCAyMzMsIDIzNCwgCi0gICAgMTI4LCAxNzUsIDEsIDIxOSwgMjMzLCAyNDQsIDEyMywgMTIsIDEsIDI1MSwgMjMxLCAyLCAxMzMsIDE3NiwgMjQwLCAyMzcsIAotICAgIDU1LCAxMiwgMSwgMjUxLCAyMzEsIDIsIDYyLCAyNTEsIDIyMCwgMjQsIDEzMywgMTc2LCA0OSwgMTIsIDEsIDI1MSwgMjMxLCAKLSAgICAyLCAxMzMsIDE3NiwgMjI1LCAxNDEsIDIxNSwgMTI0LCA1NSwgMTIsIDEsIDI1MSwgMjMxLCAyLCAxMzMsIDE3NiwgMjI1LCAKLSAgICAxNDEsIDIxNSwgMTI0LCAyNTEsIDIyMCwgMjQsIDExNywgMTc2LCA0OSwgMTIsIDEsIDI1MSwgMjMxLCAyLCAxMTcsIDE3NiwgCi0gICAgMjUxLCAyMjAsIDI0LCA2MiwgNDksIDEyLCAxLCAyNTEsIDIzMSwgMiwgMjM1LCAxOTEsIDMsIDIxNSwgODAsIDU1LCAxMiwgCi0gICAgMSwgMjUxLCAyMzEsIDIsIDMsIDIxNSwgNzksIDEyLCAxLCAxMjEsIDIsIDExNywgMTc2LCA0OSwgMTIsIDEsIDEyMSwgMiwgCi0gICAgMTMzLCAxNzYsIDIyNSwgMTQxLCAyMTUsIDEyNCwgNTUsIDEyLCAxLCAyNDgsIDE0MSwgMiwgMTE3LCAxNzYsIDIxNCwgMTY2LCAKLSAgICAyNTEsIDIyMCwgMjQsIDMsIDIxOCwgMjksIDEyLCAxLCAyNDgsIDE0MSwgMiwgMjM1LCAxOTEsIDMsIDIxNSwgODAsIDU1LCAKLSAgICAxMiwgMSwgMjIzLCAyNDYsIDIsIDkwLCAxMiwgMSwgMjIyLCA4NiwgMiwgMjQzLCAyMzcsIDE3NiwgNDksIDEyLCAxLCAyNTQsIAotICAgIDEwNCwgMiwgMTE3LCAxNzYsIDQ5LCAxMiwgMSwgMjU0LCAxMDQsIDIsIDEzMywgMTc2LCAyMjUsIDE0MSwgMjQ2LCA1OCwgCi0gICAgNDksIDEyLCAxLCAyNTQsIDEwNCwgMiwgMTE3LCAxNzYsIDIxNCwgMTY2LCA0OSwgMTIsIDEsIDI0NCwgMTEyLCAyLCAxMTcsIAotICAgIDE3NiwgNTUsIDEyLCAxLCAyNDQsIDExMiwgMiwgMTMzLCAxNzYsIDIyNSwgMTQxLCAyMTUsIDEyNCwgNTUsIDEyLCAxLCAKLSAgICAyMzQsIDE4MSwgMiwgNjIsIDQ5LCAxMiwgMSwgMjM0LCAxODEsIDIsIDEzMywgMTc2LCA0OSwgMTIsIDEsIDIzNCwgMTgxLCAKLSAgICAyLCAxMzMsIDE3NiwgMjI1LCAxNDEsIDIxNSwgMTI0LCA1NSwgMTIsIDEsIDYzLCAyLCA2MiwgNDksIDEyLCAxLCA2MywgMiwgCi0gICAgNjIsIDU1LCAxMiwgMSwgMjI4LCAxNzQsIDIsIDExNywgMTc2LCA1NSwgMTIsIDEsIDIyOCwgMTc0LCAyLCAzLCAyMTgsIDI5LCAKLSAgICAxMiwgMSwgMjI4LCAxNzQsIDIsIDMsIDIxNSwgNzksIDEyLCAxLCAyMzMsIDEyNywgMiwgMTM0LCAxMiwgMSwgMjIzLCAyNDYsIAotICAgIDIsIDExNywgMTc2LCAyMTQsIDE2NiwgNDksIDEyLCAxLCAyMjMsIDI0NiwgMiwgMTkyLCA0OSwgMTIsIDEsIDIyMiwgODYsIAotICAgIDIsIDExNywgMTc2LCAyMTQsIDE2NiwgNDksIDEyLCAxLCAxMjEsIDIsIDMsIDEyLCAxLCAyMTgsIDMwLCA1NSwgMTIsIDEsIAotICAgIDEyMSwgMiwgMywgMTIsIDEsIDIxOCwgMzAsIDI0LCAxMTcsIDI0NywgNzIsIDEyLCAxLCAyMjIsIDg2LCAyLCAzLCAxMiwgMSwgCi0gICAgMjE4LCAzMCwgMjQsIDExNywgMjQ3LCA3MiwgMTIsIDEsIDIyMywgMjQ2LCAyLCAzLCAxMiwgMSwgMjE4LCAzMCwgMjQsIAotICAgIDExNywgMjQ3LCA3MiwgMTIsIDEsIDEyMSwgMiwgMywgMTIsIDEsIDIxOCwgMzAsIDQ5LCAxMiwgMSwgMTA2LCAyLCAyNDQsIAotICAgIDI0NiwgMjUzLCAyMDcsIDIxLCAxMTcsIDQ5LCAxMiwgMSwgMTA2LCAyLCAyNDQsIDI0NiwgMjUzLCAyMDcsIDIxLCAxMzMsIAotICAgIDQ5LCAxMiwgMSwgMjQ0LCAxMzYsIDczLCAyLCAyNDQsIDI0NiwgMjUzLCAyMDcsIDIxLCAxMTcsIDQ5LCAxMiwgMSwgMjQ0LCAKLSAgICAxMzYsIDczLCAyLCAyNDQsIDI0NiwgMjUzLCAyMDcsIDIxLCAxMzMsIDQ5LCAxMiwgMSwgMjQ0LCAxMzYsIDczLCAyLCAyNDQsIAotICAgIDI0NiwgMjUzLCAyMDcsIDIxLCAyNDMsIDIzNywgNTUsIDEyLCAxLCAyMTQsIDE1LCAyLCAyNDQsIDI0NiwgMjUzLCAyMDcsIAotICAgIDIxLCAxMTcsIDQ5LCAxMiwgMSwgMjE0LCAxNSwgMiwgMjQ0LCAyNDYsIDI1MywgMjA3LCAyMSwgMTMzLCA0OSwgMTIsIDEsIAotICAgIDczLCAyNTIsIDUzLCAyLCAyNDQsIDI0NiwgMjUzLCAyMDcsIDIxLCAxMTcsIDQ5LCAxMiwgMSwgNzMsIDI1MiwgNTMsIDIsIAotICAgIDI0NCwgMjQ2LCAyNTMsIDIwNywgMjEsIDEzMywgNDksIDEyLCAxLCAxMjEsIDIsIDI0NCwgMjQ2LCAyNTMsIDIwNywgMjEsIAotICAgIDI0MywgMjM3LCA1NSwgMTIsIDEsIDIyMiwgODYsIDIsIDI0NCwgMjQ2LCAyNTMsIDIwNywgMjEsIDI0MywgMjM3LCA0OSwgCi0gICAgMTIsIDEsIDIyMiwgODYsIDIsIDIzNSwgMTkxLCAyMTUsIDc5LCAxMiwgMSwgMjM0LCAyNTUsIDIsIDExNywgMTc2LCA0OSwgCi0gICAgMjE3LCAxNTgsIDEsIDI0MiwgMjcsIDIxNywgMTU4LCAxLCAyMjAsIDI0OCwgMjE3LCAxNTgsIDEsIDIyOCwgMTcyLCAyMTcsIAotICAgIDE1OCwgMSwgMjI0LCA3NCwgMjE3LCAxNTgsIDEsIDI1MiwgMTA2LCAyMTcsIDE1OCwgMSwgMjMzLCAyMiwgMjE3LCAxNTgsIAotICAgIDEsIDIzNSwgMTIsIDIxNywgMTU4LCAxLCAyNTQsIDY4LCAyMTcsIDE1OCwgMSwgMjE0LCAyNTUsIDIxNywgMTU4LCAxLCAKLSAgICAyMzEsIDE0MiwgMjE3LCAxNTgsIDEsIDI0NCwgMTYyLCAyMTcsIDE1OCwgMSwgMjQ3LCAyMzEsIDIxNywgMTU4LCAxLCAyMTcsIAotICAgIDE2MCwgMjE3LCAxNTgsIDEsIDIzMywgMTUzLCAyMTcsIDE1OCwgMSwgMjQzLCAxMDYsIDIxNywgMTU4LCAxLCAyNDIsIDE1MywgCi0gICAgMjE3LCAxNTgsIDEsIDIyMiwgODQsIDIxNywgMTU4LCAxLCAyNDgsIDk0LCAyMTcsIDE1OCwgMSwgMjEyLCA5MywgMjE3LCAKLSAgICAxNTgsIDEsIDIxNywgMjQ0LCAyMTcsIDE1OCwgMSwgMjEzLCA5MSwgMjE3LCAxNTgsIDEsIDIyNiwgMTA3LCAyMTcsIDE1OCwgCi0gICAgMSwgMjM1LCAxMjksIDIxNywgMTU4LCAxLCAyNTAsIDcwLCAyMTcsIDE1OCwgMSwgMjE2LCAxMTQsIDIxNywgMTU4LCAxLCAKLSAgICAyNDEsIDE3MywgMjE3LCAxNTgsIDEsIDIzNCwgMTM3LCAyMTcsIDE1OCwgMSwgMjE3LCAxNTksIDIxNywgMTU4LCAxLCAyMTIsIAotICAgIDEwOCwgMjE3LCAxNTgsIDEsIDIyMCwgMjM4LCAyMTcsIDE1OCwgMSwgMjIyLCAxOTksIDIxNywgMTU4LCAxLCAyNDgsIDE2MiwgCi0gICAgMjE3LCAxNTgsIDEsIDEwOCwgMjE3LCAxNTgsIDEsIDIxMiwgMTYsIDIxNywgMTU4LCAxLCAyNTQsIDEwMSwgMjE3LCAxNTgsIAotICAgIDEsIDI0MiwgMjE5LCAyMTcsIDE1OCwgMSwgMjI0LCAyMjksIDIxNywgMTU4LCAxLCAyMTQsIDQ3LCAyMTcsIDE1OCwgMjU0LCAKLSAgICAxODIsIDIxNywgMTU4LCAyNTQsIDE5NywgMjE3LCAxNTgsIDI0MCwgMTA3LCAyMTcsIDE1OCwgMjQ1LCAxNjQsIDIxNywgCi0gICAgMTU4LCAyMTUsIDE5MSwgMjE3LCAxNTgsIDIyNywgNDgsIDIxNywgMTU4LCAyNDUsIDE3MiwgMjE3LCAxNTgsIDI0NCwgMjQwLCAKLSAgICAyMTcsIDE1OCwgMjI3LCAxMTEsIDIxNywgMTU4LCAyMjcsIDExOSwgMjE3LCAxNTgsIDIxOCwgMjQ2LCAyMTcsIDE1OCwgMSwgCi0gICAgMjMwLCA0MywgMjI4LCAyMjQsIDIxLCAyMTIsIDc5LCAyMjgsIDIyNCwgMjEsIDExNiwgMjI4LCAyMjQsIDIxLCAxMDksIAotICAgIDIyOCwgMjI0LCAyMSwgMTY2LCAyMjgsIDIyNCwgMjEsIDE2MywgMjI4LCAyMjQsIDIxLCAxODAsIDIyOCwgMjI0LCAyMSwgCi0gICAgMTg5LCAyMjgsIDIyNCwgMjEsIDE5OCwgMjI4LCAyMjQsIDIxLCAxOTUsIDIyOCwgMjI0LCAyMSwgMjAwLCAyMjgsIDIyNCwgCi0gICAgMSwgNjEsIDIyOCwgMjI0LCAxLCAyNDUsIDE2NSwgMjI4LCAyMjQsIDEsIDcyLCAyMjgsIDIyNCwgMSwgNzQsIDIyOCwgMjI0LCAKLSAgICAxLCA2OSwgMjI4LCAyMjQsIDEsIDIyNywgNDksIDIyOCwgMjI0LCAxLCA3NSwgMjI4LCAyMjQsIDEsIDI0OCwgMTUyLCAyMjgsIAotICAgIDIyNCwgMSwgMjA0LCAyMjgsIDIyNCwgMSwgMjUyLCAxMDcsIDIyOCwgMjI0LCAxLCAxOTMsIDIyOCwgMjI0LCAxLCAyMTgsIAotICAgIDUyLCAyMjgsIDIyNCwgMSwgMjM1LCAxMzksIDIyOCwgMjI0LCAxLCAyNTAsIDkyLCAyMjgsIDIyNCwgMSwgMjQ4LCAxNjQsIAotICAgIDIyOCwgMjI0LCAxLCAyMDMsIDIyOCwgMjI0LCAxLCAyMjMsIDgxLCAyMjgsIDIyNCwgMSwgMjIyLCAyMDIsIDIyOCwgMjI0LCAKLSAgICAxLCAyNDMsIDU1LCAyMjgsIDIyNCwgMSwgMjQ0LCAxNjQsIDIyOCwgMjI0LCAxLCAxODEsIDIyOCwgMjI0LCAxLCAyMzMsIAotICAgIDE1NywgMjI4LCAyMjQsIDEsIDIzMCwgNDYsIDIxMywgMjEwLCAyMjgsIDIyNCwgMSwgMTg4LCAyMjgsIDIyNCwgMSwgMjI4LCAKLSAgICAyMywgMjI4LCAyMjQsIDEsIDIwNSwgMjI4LCAyMjQsIDEsIDE1OSwgMjI4LCAyMjQsIDEsIDIxNCwgNDksIDIyOCwgMjI0LCAKLSAgICAxLCAxODYsIDIyOCwgMjI0LCAxLCAyMjgsIDI0LCAyMTMsIDIxMCwgMjI4LCAyMjQsIDEsIDIzNSwgNjQsIDIzNSwgMTM5LCAKLSAgICAyMjgsIDIyNCwgMSwgMjM1LCA2NCwgMjUwLCA5MiwgMjI4LCAyMjQsIDEsIDIzNSwgNjQsIDIwMywgMjI4LCAyMjQsIDM3LCAKLSAgICAyMjAsIDE3NSwgMTI0LCAyMTYsIDI0MSwgMjI4LCAyMjQsIDM3LCAyMjAsIDE3NSwgMTE1LCAyMTYsIDI0MSwgMjI4LCAyMjQsIAotICAgIDM3LCAyMjAsIDE3NSwgMjIzLCAxMjUsIDIxNiwgMjQxLCAyMjgsIDIyNCwgMzcsIDE4NCwgMjQ3LCAyNDUsIDIxNiwgMjQxLCAKLSAgICAyMjgsIDIyNCwgMzcsIDE4NCwgMTI0LCAyMTYsIDI0MSwgMjI4LCAyMjQsIDM3LCAxODQsIDExNSwgMjE2LCAyNDEsIDIyOCwgCi0gICAgMjI0LCAzNywgMTg0LCAyMjMsIDEyNSwgMjE2LCAyNDEsIDIyOCwgMjI0LCAzNywgMjMwLCAxMywgNzcsIDIyOCwgMjI0LCAKLSAgICAzNywgNTEsIDYyLCA0OSwgMjI4LCAyMjQsIDEyNCwgMTYwLCAyNTMsIDIyNiwgMjI4LCAyMjQsIDExNSwgMTYwLCAyNTMsIAotICAgIDIyNiwgMjI4LCAyMjQsIDE2LCAyMjcsIDUwLCAyNDgsIDEsIDIyOCwgMjI0LCAxNiwgMjQzLCA1NCwgMjI4LCAyMjQsIDI0OSwgCi0gICAgMTU3LCAyMjgsIDIyNCwgMjQ0LCAyNTQsIDc3LCAyMjgsIDIyNCwgMjMzLCAxMzIsIDIyMiwgMTY3LCAxLCAyNTQsIDg0LCAKLSAgICAyMjIsIDE2NywgMSwgMjUxLCAxNTEsIDIyMiwgMTY3LCAxLCAyNDMsIDg4LCAyMjIsIDE2NywgMSwgMjQ4LCAxMzksIDIyMiwgCi0gICAgMTY3LCAxLCAyMzUsIDE1MCwgMjIyLCAxNjcsIDEsIDI1MiwgMTA2LCAyMjIsIDE2NywgMSwgMjEyLCA4MiwgMjIyLCAxNjcsIAotICAgIDEsIDIzNSwgMTU4LCAyMjIsIDE2NywgMSwgMjE3LCAyMCwgMjIyLCAxNjcsIDEsIDIxMiwgMTczLCAyMjIsIDE2NywgMSwgCi0gICAgMjM1LCAxMywgMjIyLCAxNjcsIDEsIDIzMywgMTUwLCAyMjIsIDE2NywgMSwgMjMxLCAzLCAyMjIsIDE2NywgMSwgMjI4LCAKLSAgICA1MCwgMjIyLCAxNjcsIDEsIDIyMCwgODIsIDIyMiwgMTY3LCAxLCAyMzUsIDI1MSwgMjIyLCAxNjcsIDEsIDI0NCwgOTAsIAotICAgIDIyMiwgMTY3LCAxLCAyMTYsIDEzOSwgMjIyLCAxNjcsIDEsIDIyNCwgMTU1LCAyMjIsIDE2NywgMSwgMjIzLCAxMjYsIDIyMiwgCi0gICAgMTY3LCAxLCAyMjEsIDgsIDIyMiwgMTY3LCAxLCAyMTgsIDQ4LCAyMjIsIDE2NywgMTUyLCAyMzUsIDI1MSwgMjIyLCAxNjcsIAotICAgIDE1MiwgMjM1LCAyNTAsIDIyMiwgMTY3LCAxNTIsIDIyNywgMTA3LCAyMjIsIDE2NywgMTUyLCAyNDgsIDE1MCwgMjIyLCAKLSAgICAxNjcsIDU5LCAxLCAyNDUsIDY4LCAyMTIsIDE3MywgMjIyLCAxNjcsIDE1MiwgMjQ1LCA2OCwgMjEyLCAxNzMsIDIyMiwgCi0gICAgMTY3LCAzMCwgNSwgMTg0LCA3NCwgMjIyLCAxNjcsIDMwLCA1LCA3NCwgMjIyLCAxNjcsIDMwLCA1LCAyMjYsIDI0MiwgMjU0LCAKLSAgICAyMzIsIDIyMiwgMTY3LCAzMCwgNSwgMTg0LCAyNTQsIDIzMiwgMjIyLCAxNjcsIDMwLCA1LCAyNTQsIDIzMiwgMjIyLCAxNjcsIAotICAgIDMwLCA1LCAyMjYsIDI0MiwgNjEsIDIyMiwgMTY3LCAzMCwgNSwgMTg0LCA2MSwgMjIyLCAxNjcsIDMwLCA1LCA2MSwgMjIyLCAKLSAgICAxNjcsIDU5LCAxLCAyMjAsIDE3NSwgNjEsIDIyMiwgMTY3LCAzMCwgNSwgMjIwLCAxNzUsIDYxLCAyMjIsIDE2NywgMzAsIDUsIAotICAgIDE4NCwgNjksIDIyMiwgMTY3LCAzMCwgNSwgNjksIDIyMiwgMTY3LCA1OSwgMSwgNzIsIDIyMiwgMTY3LCAzMCwgNSwgMTg0LCAKLSAgICA3MiwgMjIyLCAxNjcsIDMwLCA1LCA3MiwgMjIyLCAxNjcsIDMwLCA1LCA3NSwgMjIyLCAxNjcsIDMwLCA1LCAyMTgsIDI0NiwgCi0gICAgMjIyLCAxNjcsIDE1MiwgMjI5LCAxNzQsIDIyMiwgMTY3LCAyMjUsIDI3LCAyMjksIDE3NCwgMjIyLCAxNjcsIDIyNSwgMjcsIAotICAgIDI1NCwgMTIzLCAyMjIsIDE2NywgMjI1LCAyNywgMjU0LCAyMywgMjIyLCAxNjcsIDIyNSwgMjcsIDI1MiwgMzQsIDIyMiwgCi0gICAgMTY3LCAyMjUsIDI3LCAyNTMsIDExNywgMjIyLCAxNjcsIDIyNSwgMjcsIDIyMCwgMTg4LCAyMjIsIDE2NywgMjU0LCAxODEsIAotICAgIDc3LCAyMjIsIDE2NywgMjI1LCAyNywgMjMxLCAxMzIsIDIyNCwgMTkwLCAyMjIsIDE2NywgMjI1LCAyNywgMjEyLCAyNCwgCi0gICAgMjIyLCAxNjcsIDIyNSwgMjcsIDIyNCwgMTkwLCAyMjIsIDE2NywgMjI1LCAyNywgMjEyLCAxMDcsIDIyMiwgMTY3LCAyMjUsIAotICAgIDI3LCAyMTYsIDU0LCAyMjIsIDE2NywgMjI1LCAyNywgMjUzLCAxODAsIDIyMiwgMTY3LCAyMjUsIDI3LCAyMTksIDIzNywgCi0gICAgMjMxLCAyMDgsIDIyMiwgMTY3LCAyMjUsIDI3LCAyNTQsIDExLCAyMzEsIDI0NSwgMSwgMjQyLCA3LCAyMzEsIDI0NSwgMSwgCi0gICAgMjU0LCAxODUsIDIzMSwgMjQ1LCAxLCAyNTQsIDEyMSwgMjMxLCAyNDUsIDEsIDI1NCwgMTYwLCAyMzEsIDI0NSwgMSwgMjU0LCAKLSAgICAxMTQsIDIzMSwgMjQ1LCAxLCAyMTUsIDk4LCAyMzEsIDI0NSwgMSwgMjUzLCA3NiwgMjMxLCAyNDUsIDEsIDIzNSwgMTU4LCAKLSAgICAyMzEsIDI0NSwgMSwgMjUzLCAxMTQsIDIzMSwgMjQ1LCAxLCAyNTQsIDg5LCAyMzEsIDI0NSwgMSwgMjU0LCA5NCwgMjMxLCAKLSAgICAyNDUsIDEsIDI1NCwgODYsIDIzMSwgMjQ1LCAxLCAyNTQsIDQ1LCAyMzEsIDI0NSwgMSwgMjU0LCAzMiwgMjMxLCAyNDUsIDEsIAotICAgIDI1MywgMTUyLCAyMzEsIDI0NSwgMSwgMjM1LCAyNTEsIDIzMSwgMjQ1LCAxLCAyNTMsIDIzOSwgMjMxLCAyNDUsIDEsIDI1MywgCi0gICAgMTI0LCAyMzEsIDI0NSwgMSwgMjUzLCAyMTUsIDIzMSwgMjQ1LCAxLCAyNTMsIDIxMSwgMjMxLCAyNDUsIDEsIDI1MywgMTQ2LCAKLSAgICAyMzEsIDI0NSwgMSwgMjUzLCAxMjIsIDIzMSwgMjQ1LCAxLCAyNDYsIDEwLCAyMzEsIDI0NSwgMSwgMjM1LCA2LCAyMzEsIAotICAgIDI0NSwgMSwgMjU0LCAxMDMsIDIzMSwgMjQ1LCAyNTQsIDEyNywgNzcsIDIzMSwgMjQ1LCAyMTQsIDExNywgNzcsIDIzMSwgCi0gICAgMjQ1LCAyNDMsIDI5LCA3NywgMjMxLCAyNDUsIDIyNSwgMjYsIDgyLCA1LCAyMzUsIDE5MSwgMjUwLCAxODcsIDgyLCA1LCAKLSAgICAyNTAsIDE4NywgODIsIDUsIDI1MywgMjQyLCA4MiwgNSwgMjE0LCAxMjgsIDgyLCAxLCAyMjAsIDE3NSwgNjEsIDgyLCAxLCAKLSAgICA2MSwgODIsIDEsIDI1NCwgMjMyLCA4MiwgMSwgNzIsIDgyLCAxLCAyMzYsIDI4LCA4MiwgMSwgNjksIDgyLCAxLCAyMTUsIAotICAgIDkyLCA4MiwgMSwgMTYxLCAxNDksIDgyLCAxLCAxNjEsIDE1MCwgODIsIDEsIDI1MCwgMTkwLCA3NCwgODIsIDEsIDIyMCwgCi0gICAgMTc1LCA3NCwgODIsIDEsIDc0LCA4MiwgMSwgMjU0LCAxMDgsIDgyLCAxLCAyNTAsIDE5MCwgNzUsIDgyLCAxLCAyMjAsIAotICAgIDE3NSwgNzUsIDgyLCAxLCA3NSwgODIsIDEsIDI1MywgMTA4LCA4MiwgMSwgMTgxLCA4MiwgMSwgMjM0LCAxMzgsIDgyLCAxLCAKLSAgICAyNDMsIDExMCwgODIsIDEsIDI0MiwgMjI1LCA4MiwgMSwgMjI5LCAxNTksIDgyLCAxLCAyNTAsIDIxOSwgODIsIDEsIDI1MCwgCi0gICAgOTIsIDgyLCAxLCAyMzUsIDEzOSwgODIsIDEsIDIzNSwgMTE1LCA4MiwgMSwgMjI4LCAyMywgODIsIDEsIDIxNiwgMTE1LCAKLSAgICA4MiwgMSwgMjE2LCAxMDUsIDgyLCAxLCAyNDgsIDg2LCA4MiwgMSwgMjQ4LCA3MCwgODIsIDEsIDIyOCwgMTk4LCA4MiwgMSwgCi0gICAgMjE4LCA1MiwgODIsIDEsIDIxNywgMTYxLCA4MiwgMSwgMjQ4LCAxNjQsIDgyLCAxLCAyNDcsIDIzMiwgODIsIDEsIDIwNSwgCi0gICAgODIsIDEsIDIyOCwgMTg5LCA4MiwgMSwgMTkzLCA4MiwgMSwgMjI2LCAyMywgODIsIDEsIDI1MiwgMTA3LCA4MiwgMSwgMjUxLCAKLSAgICAxOTUsIDgyLCAxLCAxODgsIDgyLCAxLCAxODYsIDgyLCAxLCAyMDMsIDgyLCAxLCAyMjMsIDgxLCA4MiwgMSwgMjMzLCAxNTcsIAotICAgIDgyLCAxLCAyMzIsIDIxMywgODIsIDEsIDIzMiwgMjEyLCA4MiwgMSwgMjE1LCAxLCA4MiwgMSwgMjIxLCAyNCwgODIsIDEsIAotICAgIDIxOSwgMTU3LCA4MiwgMSwgMjIyLCAyMDIsIDgyLCAxLCAxNTksIDgyLCAzMCwgNSwgMjI3LCA5OSwgODIsIDMwLCA1LCAKLSAgICAyMjcsIDQ3LCA4MiwgNSwgMjI4LCA2MCwgODIsIDUsIDI1MywgOTEsIDgyLCAzMCwgNSwgMjU0LCAyMzIsIDgyLCAzMCwgNSwgCi0gICAgNzIsIDgyLCAzMCwgNSwgMjM2LCAyOCwgODIsIDMwLCA1LCA2OSwgODIsIDMwLCA1LCAyMTUsIDkyLCA4MiwgMzAsIDUsIAotICAgIDE2MSwgMTQ5LCA4MiwgMzAsIDUsIDE2MSwgMjIzLCA4MiwgODIsIDMwLCA1LCAyNTAsIDE5MCwgNzQsIDgyLCAzMCwgNSwgCi0gICAgMjIwLCAxNzUsIDc0LCA4MiwgMzAsIDUsIDc0LCA4MiwgMzAsIDUsIDI1NCwgMTA4LCA4MiwgMzAsIDUsIDI1MCwgMTkwLCAKLSAgICA3NSwgODIsIDMwLCA1LCAyMjAsIDE3NSwgNzUsIDgyLCAzMCwgNSwgNzUsIDgyLCAzMCwgNSwgMjUzLCAxMDgsIDgyLCA1LCAKLSAgICAyMTQsIDEzMywgODIsIDMwLCA1LCAyMjUsIDY2LCA3NCwgODIsIDMwLCA1LCAyNTMsIDg3LCA4MiwgMjI3LCA3MCwgODIsIAotICAgIDIxOSwgNTEsIDUsIDIxNSwgMTg1LCA4MiwgMjE5LCA1MSwgNSwgMjUzLCAyNDQsIDgyLCAyNDIsIDExNCwgMjU0LCAxNzQsIAotICAgIDgyLCAyNTQsIDE2NCwgMjU0LCAxNzQsIDgyLCAzMCwgNSwgMjUwLCAxOTAsIDE4NCwgNzQsIDgyLCAzMCwgNSwgMjE1LCAKLSAgICAxODMsIDgyLCAzMCwgNSwgMjE1LCA5MSwgODIsIDEsIDIyNCwgMjMyLCA4MiwgMSwgMjM0LCAxMjEsIDgyLCAxLCAyNDIsIAotICAgIDIwMiwgODIsIDEsIDIxMiwgMTA5LCA4MiwgMSwgMjQ4LCA3NSwgODIsIDEsIDIyMywgMTkyLCA4MiwgMSwgMjQ0LCAxNjQsIAotICAgIDgyLCAxLCAyMTIsIDE2MCwgODIsIDEsIDE2MSwgMjIzLCA4MiwgODIsIDEsIDE2MSwgMjMyLCAyMTQsIDgyLCAzMCwgNSwgCi0gICAgMTYxLCAxNTAsIDgyLCAzMCwgNSwgMTYxLCAyMzIsIDIxNCwgODIsIDI0OCwgMTIzLCA4MiwgNTEsIDI0OCwgMTIzLCA4MiwgCi0gICAgMjEsIDIxMiwgNzksIDgyLCAyMSwgMTE2LCA4MiwgMjEsIDEwOSwgODIsIDIxLCAxNjYsIDgyLCAyMSwgMTYzLCA4MiwgMjEsIAotICAgIDE4MCwgODIsIDIxLCAxODksIDgyLCAyMSwgMTk4LCA4MiwgMjEsIDE5NSwgODIsIDIxLCAyMDAsIDgyLCAyNTQsIDE4MSwgCi0gICAgNTIsIDgyLCA1LCAxMjQsIDIxOSwgMjA1LCAyNDcsIDc0LCA4MiwgMSwgMjUwLCAxOTAsIDYxLCA4MiwgMSwgMjI3LCA5OSwgCi0gICAgODIsIDEsIDIyNywgNDcsIDgyLCAxLCAyNTMsIDg3LCA4MiwgMSwgMjE1LCAxODMsIDgyLCAxLCAyMTUsIDkxLCA4MiwgMSwgCi0gICAgMjEyLCA3NSwgODIsIDEsIDEwNywgMTg2LCA4MiwgMSwgMjQzLCA1LCA4MiwgMSwgMjM1LCA5OSwgODIsIDEsIDI0MiwgMTU2LCAKLSAgICAyMTksIDY5LCA4MiwgMSwgMjQ4LCA3NiwgODIsIDEsIDI1MiwgMzEsIDE0MCwgNSwgMjUwLCAxODcsIDE0MCwgNSwgMjUzLCAKLSAgICAyNDIsIDE0MCwgNSwgMjE0LCAxMjgsIDE0MCwgMSwgNjEsIDE0MCwgMSwgMjU0LCAyMzIsIDE0MCwgMSwgNzIsIDE0MCwgMSwgCi0gICAgMjM2LCAyOCwgMTQwLCAxLCA2OSwgMTQwLCAxLCAyMTUsIDkyLCAxNDAsIDEsIDE2MSwgMTQ5LCAxNDAsIDEsIDE2MSwgMTUwLCAKLSAgICAxNDAsIDEsIDc0LCAxNDAsIDEsIDI1NCwgMTA4LCAxNDAsIDEsIDc1LCAxNDAsIDEsIDI1MywgMTA4LCAxNDAsIDEsIDE4MSwgCi0gICAgMTQwLCAxLCAyMzQsIDEzOCwgMTQwLCAxLCAyNDMsIDExMCwgMTQwLCAxLCAyNDIsIDIyNSwgMTQwLCAxLCAyMjksIDE1OSwgCi0gICAgMTQwLCAxLCAyNTAsIDIxOSwgMTQwLCAxLCAyNTAsIDkyLCAxNDAsIDEsIDIzNSwgMTM5LCAxNDAsIDEsIDIzNSwgMTE1LCAKLSAgICAxNDAsIDEsIDIyOCwgMjMsIDE0MCwgMSwgMjE2LCAxMTUsIDE0MCwgMSwgMjE2LCAxMDUsIDE0MCwgMSwgMjQ4LCA4NiwgCi0gICAgMTQwLCAxLCAyNDgsIDcwLCAxNDAsIDEsIDIyOCwgMTk4LCAxNDAsIDEsIDIxOCwgNTIsIDE0MCwgMSwgMjE3LCAxNjEsIAotICAgIDE0MCwgMSwgMjQ4LCAxNjQsIDE0MCwgMSwgMjQ3LCAyMzIsIDE0MCwgMSwgMjA1LCAxNDAsIDEsIDE5MywgMTQwLCAxLCAKLSAgICAyMjYsIDIzLCAxNDAsIDEsIDI1MiwgMTA3LCAxNDAsIDEsIDI1MSwgMTk1LCAxNDAsIDEsIDE4OCwgMTQwLCAxLCAxODYsIAotICAgIDE0MCwgMSwgMjAzLCAxNDAsIDEsIDIzMywgMTU3LCAxNDAsIDEsIDIyMSwgMjQsIDE0MCwgMSwgMjE5LCAxNTcsIDE0MCwgMSwgCi0gICAgMjIyLCAyMDIsIDE0MCwgMSwgMTU5LCAxNDAsIDUsIDIyOCwgNjAsIDE0MCwgNSwgMjUzLCA5MSwgMTQwLCAzMCwgNSwgMjU0LCAKLSAgICAyMzIsIDE0MCwgMzAsIDUsIDcyLCAxNDAsIDMwLCA1LCAyMzYsIDI4LCAxNDAsIDMwLCA1LCA2OSwgMTQwLCAzMCwgNSwgCi0gICAgMjE1LCA5MiwgMTQwLCAzMCwgNSwgMTYxLCAxNDksIDE0MCwgMzAsIDUsIDE2MSwgMjIzLCA4MiwgMTQwLCAzMCwgNSwgNzQsIAotICAgIDE0MCwgMzAsIDUsIDI1NCwgMTA4LCAxNDAsIDMwLCA1LCA3NSwgMTQwLCAzMCwgNSwgMjUzLCAxMDgsIDE0MCwgNSwgMjE0LCAKLSAgICAxMzMsIDE0MCwgMSwgMjM0LCAxMzAsIDIxOCwgNTIsIDE0MCwgMjUzLCAxMDksIDIzMywgNDcsIDc3LCAxNDAsIDEsIDIyMywgCi0gICAgODEsIDE0MCwgMSwgMjIzLCAxOTIsIDE0MCwgMSwgMjEyLCAxNjAsIDE0MCwgMSwgMTYxLCAyMjMsIDgyLCAxNDAsIDEsIAotICAgIDE2MSwgMjMyLCAyMTQsIDE0MCwgMzAsIDUsIDE2MSwgMTUwLCAxNDAsIDMwLCA1LCAxNjEsIDIzMiwgMjE0LCAxNDAsIDIxLCAKLSAgICAyMTIsIDc5LCAxNDAsIDIxLCAxMTYsIDE0MCwgMjEsIDEwOSwgMTQwLCAyMSwgMTY2LCAxNDAsIDIxLCAxNjMsIDE0MCwgMjEsIAotICAgIDE4MCwgMTQwLCAyMSwgMTg5LCAxNDAsIDIxLCAxOTgsIDE0MCwgMjEsIDE5NSwgMTQwLCAyMSwgMjAwLCAxNDAsIDEsIDIyNCwgCi0gICAgNzcsIDIsIDIzMSwgMzcsIDI0NywgMjA2LCAxNDAsIDEsIDIyNCwgNzcsIDIsIDIzMiwgMTYzLCAyNDcsIDIwNiwgMTQwLCAKLSAgICAyMjMsIDI5LCA3NywgMTQwLCAyMjMsIDI5LCA1MiwgMTQwLCAyNDksIDM5LCAyMjgsIDUzLCAxMTYsIDE0MCwgMjQ5LCAzOSwgCi0gICAgMjI4LCA1MywgMTA5LCAxNDAsIDI0OSwgMzksIDIyOCwgNTMsIDE2NiwgMTQwLCAyNDksIDM5LCAyMjgsIDUzLCAxNjMsIAotICAgIDE0MCwgMjQ5LCAzOSwgMjI4LCA1MywgMTIyLCAyMzMsIDQwLCAyMTcsIDE1NCwgMjE3LCAxNDksIDI0NywgMjU1LCAxNDAsIAotICAgIDI0OSwgMzksIDI0OCwgMCwgMjIwLCA0NywgMTQwLCAyMzUsIDE1OSwgMTQwLCAyNDMsIDc5LCA3NywgMTczLCA1LCAyNTQsIAotICAgIDE1OSwgMjUxLCAxNjYsIDE3MywgNSwgMjUxLCAxNjYsIDE3MywgNSwgMjE0LCAxMjgsIDE3MywgMSwgNjEsIDE3MywgMSwgCi0gICAgMjU0LCAyMzIsIDE3MywgMSwgNzIsIDE3MywgMSwgMjM2LCAyOCwgMTczLCAxLCA2OSwgMTczLCAxLCAyMTUsIDkyLCAxNzMsIAotICAgIDEsIDI0NSwgMTY1LCAxNzMsIDEsIDI1NCwgMTA4LCAxNzMsIDEsIDIyNywgNDksIDE3MywgMSwgMjUzLCAxMDgsIDE3MywgMSwgCi0gICAgMTgxLCAxNzMsIDEsIDIzNCwgMTM4LCAxNzMsIDEsIDI0MywgMTEwLCAxNzMsIDEsIDI0MiwgMjI1LCAxNzMsIDEsIDIyOSwgCi0gICAgMTU5LCAxNzMsIDEsIDI1MCwgMjE5LCAxNzMsIDEsIDI1MCwgOTIsIDE3MywgMSwgMjM1LCAxMzksIDE3MywgMSwgMjM1LCAKLSAgICAxMTUsIDE3MywgMSwgMjI4LCAyMywgMTczLCAxLCAyMTYsIDExNSwgMTczLCAxLCAyMTYsIDEwNSwgMTczLCAxLCAyNDgsIAotICAgIDg2LCAxNzMsIDEsIDI0OCwgNzAsIDE3MywgMSwgMjI4LCAxOTgsIDE3MywgMSwgMjE4LCA1MiwgMTczLCAxLCAyMTcsIDE2MSwgCi0gICAgMTczLCAxLCAyNDgsIDE2NCwgMTczLCAxLCAyNDcsIDIzMiwgMTczLCAxLCAyMDUsIDE3MywgMSwgMTkzLCAxNzMsIDEsIAotICAgIDIyNiwgMjMsIDE3MywgMSwgMjUyLCAxMDcsIDE3MywgMSwgMjUxLCAxOTUsIDE3MywgMSwgMTg4LCAxNzMsIDEsIDE4NiwgCi0gICAgMTczLCAxLCAyMDMsIDE3MywgMSwgMjMzLCAxNTcsIDE3MywgMSwgMjMyLCAyMTMsIDE3MywgMSwgMjE1LCAxLCAxNzMsIDEsIAotICAgIDIyMSwgMjQsIDE3MywgMSwgMjIyLCAyMDIsIDE3MywgMSwgMTU5LCAxNzMsIDUsIDIyOCwgNjAsIDE3MywgMzAsIDUsIDI1NCwgCi0gICAgMjMyLCAxNzMsIDMwLCA1LCA3MiwgMTczLCAzMCwgNSwgMjM2LCAyOCwgMTczLCAzMCwgNSwgNjksIDE3MywgMzAsIDUsIAotICAgIDIxNSwgOTIsIDE3MywgMzAsIDUsIDI0NSwgMTY1LCAxNzMsIDMwLCA1LCAyNTQsIDEwOCwgMTczLCAzMCwgNSwgMjI3LCA0OSwgCi0gICAgMTczLCAzMCwgNSwgMjUzLCAxMDgsIDE3MywgNSwgMjE0LCAxMzMsIDE3MywgNSwgMjE1LCAxODcsIDE3MywgMSwgMjM0LCAKLSAgICAxMjEsIDE3MywgMSwgMjQyLCAyMDIsIDE3MywgMSwgMjEyLCAxMDksIDE3MywgMSwgMjIzLCA4MSwgMTczLCAxLCAyNDQsIAotICAgIDE2NCwgMTczLCAyMSwgMjEyLCA3OSwgMTczLCAyMSwgMTE2LCAxNzMsIDIxLCAxMDksIDE3MywgMjEsIDE2NiwgMTczLCAyMSwgCi0gICAgMTYzLCAxNzMsIDIxLCAxODAsIDE3MywgMjEsIDE4OSwgMTczLCAyMSwgMTk4LCAxNzMsIDIxLCAxOTUsIDE3MywgMjEsIAotICAgIDIwMCwgMTczLCAyMTcsIDI3LCAxNzMsIDI1NCwgMTU4LCAxNzMsIDIzNSwgMTc2LCAxNzMsIDIxNSwgMTE3LCAxNzMsIDI0NSwgCi0gICAgMTM4LCAyMjcsIDU0LCAxNzMsIDUsIDIxMywgNjcsIDE2NCwgNSwgMjUwLCAxODcsIDE2NCwgNSwgMjUzLCAyNDIsIDE2NCwgCi0gICAgNSwgMjE0LCAxMjgsIDE2NCwgMSwgNjEsIDE2NCwgMSwgMjU0LCAyMzIsIDE2NCwgMSwgNzIsIDE2NCwgMSwgMjM2LCAyOCwgCi0gICAgMTY0LCAxLCA2OSwgMTY0LCAxLCAyMTUsIDkyLCAxNjQsIDEsIDE2MSwgMTQ5LCAxNjQsIDEsIDE2MSwgMTUwLCAxNjQsIDMwLCAKLSAgICAyNTAsIDE5MCwgNzQsIDE2NCwgMSwgNzQsIDE2NCwgMSwgMjU0LCAxMDgsIDE2NCwgMzAsIDI1MCwgMTkwLCA3NSwgMTY0LCAKLSAgICAxLCA3NSwgMTY0LCAxLCAyNTMsIDEwOCwgMTY0LCAxLCAxODEsIDE2NCwgMSwgMjM0LCAxMzgsIDE2NCwgMSwgMjQzLCAxMTAsIAotICAgIDE2NCwgMSwgMjQyLCAyMjUsIDE2NCwgMSwgMjI5LCAxNTksIDE2NCwgMSwgMjUwLCAyMTksIDE2NCwgMSwgMjUwLCA5MiwgCi0gICAgMTY0LCAxLCAyMzUsIDEzOSwgMTY0LCAxLCAyMzUsIDExNSwgMTY0LCAxLCAyMjgsIDIzLCAxNjQsIDEsIDIxNiwgMTE1LCAKLSAgICAxNjQsIDEsIDIxNiwgMTA1LCAxNjQsIDEsIDI0OCwgODYsIDE2NCwgMSwgMjQ4LCA3MCwgMTY0LCAxLCAyMjgsIDE5OCwgCi0gICAgMTY0LCAxLCAyMTgsIDUyLCAxNjQsIDEsIDIxNywgMTYxLCAxNjQsIDEsIDI0OCwgMTY0LCAxNjQsIDEsIDI0NywgMjMyLCAKLSAgICAxNjQsIDEsIDIwNSwgMTY0LCAxLCAxOTMsIDE2NCwgMSwgMjI2LCAyMywgMTY0LCAxLCAyNTIsIDEwNywgMTY0LCAxLCAyNTEsIAotICAgIDE5NSwgMTY0LCAxLCAxODgsIDE2NCwgMSwgMTg2LCAxNjQsIDEsIDIwMywgMTY0LCAxLCAyMzMsIDE1NywgMTY0LCAxLCAKLSAgICAyMzIsIDIxMywgMTY0LCAxLCAyMTUsIDEsIDE2NCwgMSwgMjIxLCAyNCwgMTY0LCAxLCAyMTksIDE1NywgMTY0LCAxLCAyMjIsIAotICAgIDIwMiwgMTY0LCAxLCAxNTksIDE2NCwgNSwgMjI4LCA2MCwgMTY0LCA1LCAyNTMsIDkxLCAxNjQsIDMwLCA1LCAyNTQsIDIzMiwgCi0gICAgMTY0LCAzMCwgNSwgNzIsIDE2NCwgMzAsIDUsIDIzNiwgMjgsIDE2NCwgMzAsIDUsIDY5LCAxNjQsIDMwLCA1LCAyMTUsIDkyLCAKLSAgICAxNjQsIDMwLCA1LCAxNjEsIDE0OSwgMTY0LCAzMCwgNSwgMTYxLCAyMjMsIDgyLCAxNjQsIDMwLCA1LCAyNTAsIDE5MCwgNzQsIAotICAgIDE2NCwgMzAsIDUsIDc0LCAxNjQsIDMwLCA1LCAyNTQsIDEwOCwgMTY0LCAzMCwgNSwgMjUwLCAxOTAsIDc1LCAxNjQsIDMwLCAKLSAgICA1LCA3NSwgMTY0LCAzMCwgNSwgMjUzLCAxMDgsIDE2NCwgNSwgMjE0LCAxMzMsIDE2NCwgMjI3LCA3MCwgMTY0LCAxLCAxNjEsIAotICAgIDIyMywgODIsIDE2NCwgMSwgMTYxLCAyMzIsIDIxNCwgMTY0LCAzMCwgNSwgMTYxLCAxNTAsIDE2NCwgMzAsIDUsIDE2MSwgCi0gICAgMjMyLCAyMTQsIDE2NCwgMjEsIDIxMiwgNzksIDE2NCwgMjEsIDExNiwgMTY0LCAyMSwgMTA5LCAxNjQsIDIxLCAxNjYsIAotICAgIDE2NCwgMjEsIDE2MywgMTY0LCAyMSwgMTgwLCAxNjQsIDIxLCAxODksIDE2NCwgMjEsIDE5OCwgMTY0LCAyMSwgMTk1LCAKLSAgICAxNjQsIDIxLCAyMDAsIDE2NCwgMjIzLCAyOSwgNTIsIDE0NywgNSwgMjUwLCAxODcsIDE0NywgNSwgMjUzLCAyNDIsIDE0NywgCi0gICAgNSwgMjE0LCAxMjgsIDE0NywgMSwgNjEsIDE0NywgMSwgMjU0LCAyMzIsIDE0NywgMSwgNzIsIDE0NywgMSwgMjM2LCAyOCwgCi0gICAgMTQ3LCAxLCA2OSwgMTQ3LCAxLCAyMTUsIDkyLCAxNDcsIDEsIDE2MSwgMTQ5LCAxNDcsIDEsIDE2MSwgMTUwLCAxNDcsIDEsIAotICAgIDc0LCAxNDcsIDEsIDI1NCwgMTA4LCAxNDcsIDEsIDc1LCAxNDcsIDEsIDI1MywgMTA4LCAxNDcsIDEsIDE4MSwgMTQ3LCAxLCAKLSAgICAyMzQsIDEzOCwgMTQ3LCAxLCAyNDMsIDExMCwgMTQ3LCAxLCAyNDIsIDIyNSwgMTQ3LCAxLCAyMjksIDE1OSwgMTQ3LCAxLCAKLSAgICAyNTAsIDIxOSwgMTQ3LCAxLCAyNTAsIDkyLCAxNDcsIDEsIDIzNSwgMTM5LCAxNDcsIDEsIDIzNSwgMTE1LCAxNDcsIDEsIAotICAgIDIyOCwgMjMsIDE0NywgMSwgMjE2LCAxMTUsIDE0NywgMSwgMjE2LCAxMDUsIDE0NywgMSwgMjQ4LCA4NiwgMTQ3LCAxLCAKLSAgICAyNDgsIDcwLCAxNDcsIDEsIDIyOCwgMTk4LCAxNDcsIDEsIDIxOCwgNTIsIDE0NywgMSwgMjE3LCAxNjEsIDE0NywgMSwgCi0gICAgMjQ4LCAxNjQsIDE0NywgMSwgMjQ3LCAyMzIsIDE0NywgMSwgMjA1LCAxNDcsIDEsIDE5MywgMTQ3LCAxLCAyMjYsIDIzLCAKLSAgICAxNDcsIDEsIDI1MiwgMTA3LCAxNDcsIDEsIDI1MSwgMTk1LCAxNDcsIDEsIDE4OCwgMTQ3LCAxLCAxODYsIDE0NywgMSwgCi0gICAgMjAzLCAxNDcsIDEsIDIzMywgMTU3LCAxNDcsIDEsIDIzMiwgMjEzLCAxNDcsIDEsIDIxNSwgMSwgMTQ3LCAxLCAyMjEsIDI0LCAKLSAgICAxNDcsIDEsIDIxOSwgMTU3LCAxNDcsIDEsIDIyMiwgMjAyLCAxNDcsIDEsIDE1OSwgMTQ3LCA1LCAyMjgsIDYwLCAxNDcsIDUsIAotICAgIDI1MywgOTEsIDE0NywgMzAsIDUsIDI1NCwgMjMyLCAxNDcsIDMwLCA1LCA3MiwgMTQ3LCAzMCwgNSwgMjM2LCAyOCwgMTQ3LCAKLSAgICAzMCwgNSwgNjksIDE0NywgMzAsIDUsIDIxNSwgOTIsIDE0NywgMzAsIDUsIDE2MSwgMTQ5LCAxNDcsIDMwLCA1LCAxNjEsIAotICAgIDIyMywgODIsIDE0NywgMzAsIDUsIDc0LCAxNDcsIDMwLCA1LCAyNTQsIDEwOCwgMTQ3LCAzMCwgNSwgNzUsIDE0NywgMzAsIAotICAgIDUsIDI1MywgMTA4LCAxNDcsIDUsIDIxNCwgMTMzLCAxNDcsIDI1NCwgMTA5LCAyMzMsIDQ3LCA3NywgMTQ3LCAyNTMsIDEwOSwgCi0gICAgMjMzLCA0NywgNzcsIDE0NywgMSwgMjIzLCA4MSwgMTQ3LCAxLCAyMjMsIDE5MiwgMTQ3LCAxLCAyMTIsIDE2MCwgMTQ3LCAxLCAKLSAgICAxNjEsIDIyMywgODIsIDE0NywgMSwgMTYxLCAyMzIsIDIxNCwgMTQ3LCAzMCwgNSwgMTYxLCAxNTAsIDE0NywgMzAsIDUsIAotICAgIDE2MSwgMjMyLCAyMTQsIDE0NywgMjEsIDIxMiwgNzksIDE0NywgMjEsIDExNiwgMTQ3LCAyMSwgMTA5LCAxNDcsIDIxLCAKLSAgICAxNjYsIDE0NywgMjEsIDE2MywgMTQ3LCAyMSwgMTgwLCAxNDcsIDIxLCAxODksIDE0NywgMjEsIDE5OCwgMTQ3LCAyMSwgCi0gICAgMTk1LCAxNDcsIDIxLCAyMDAsIDE0NywgMjM1LCAxNTksIDE0NywgMSwgMjE0LCA0OSwgMTQ3LCAyNDMsIDIyOCwgMTIyLCAKLSAgICAyMjQsIDE2NiwgMTQ3LCAyNDMsIDIyOCwgMTIyLCAyNDIsIDksIDE0NywgMjQzLCAyMjgsIDEzMywgMjI0LCAxNjQsIDE0NywgCi0gICAgMjQzLCAyMjgsIDEyMiwgMjIwLCA0NSwgMTQ3LCAyNDMsIDIyOCwgMTIyLCAyNDUsIDE0NSwgMTQ3LCAyNDMsIDIyOCwgMTMzLCAKLSAgICAyMjAsIDQ0LCAxNzgsIDUsIDI1MywgMjQyLCAxNzgsIDUsIDIxNCwgMTI4LCAxNzgsIDEsIDYxLCAxNzgsIDEsIDI1NCwgCi0gICAgMjMyLCAxNzgsIDEsIDcyLCAxNzgsIDEsIDIzNiwgMjgsIDE3OCwgMSwgNjksIDE3OCwgMSwgMjE1LCA5MiwgMTc4LCAxLCAKLSAgICA3NCwgMTc4LCAxLCAyNDUsIDE2NSwgMTc4LCAxLCAyNTQsIDEwOCwgMTc4LCAxLCA3NSwgMTc4LCAxLCAyMjcsIDQ5LCAxNzgsIAotICAgIDEsIDI1MywgMTA4LCAxNzgsIDEsIDE4MSwgMTc4LCAxLCAyMjksIDE1OSwgMTc4LCAxLCAyNTAsIDIxOSwgMTc4LCAxLCAKLSAgICAyMzUsIDEzOSwgMTc4LCAxLCAyMjgsIDIzLCAxNzgsIDEsIDIxNiwgMTE1LCAxNzgsIDEsIDIyOCwgMTk4LCAxNzgsIDEsIAotICAgIDIxOCwgNTIsIDE3OCwgMSwgMjA1LCAxNzgsIDEsIDIyOCwgMTg5LCAxNzgsIDEsIDE5MywgMTc4LCAxLCAxODgsIDE3OCwgMSwgCi0gICAgMTg2LCAxNzgsIDEsIDIwMywgMTc4LCAxLCAyMjMsIDgxLCAxNzgsIDEsIDIzMywgMTU3LCAxNzgsIDEsIDIzMiwgMjEzLCAKLSAgICAxNzgsIDEsIDIzMiwgMjEyLCAxNzgsIDEsIDIxNSwgMSwgMTc4LCAxLCAyMjEsIDI0LCAxNzgsIDEsIDIxOSwgMTU3LCAxNzgsIAotICAgIDEsIDIyMiwgMjAyLCAxNzgsIDEsIDE1OSwgMTc4LCAzMCwgNSwgMjU0LCAyMzIsIDE3OCwgMzAsIDUsIDcyLCAxNzgsIDMwLCAKLSAgICA1LCAyMzYsIDI4LCAxNzgsIDMwLCA1LCA2OSwgMTc4LCAzMCwgNSwgMjE1LCA5MiwgMTc4LCAzMCwgNSwgNzQsIDE3OCwgMzAsIAotICAgIDUsIDI0NSwgMTY1LCAxNzgsIDMwLCA1LCAyNTQsIDEwOCwgMTc4LCAzMCwgNSwgNzUsIDE3OCwgMzAsIDUsIDIyNywgNDksIAotICAgIDE3OCwgMzAsIDUsIDI1MywgMTA4LCAxNzgsIDUsIDIxNCwgMTMzLCAxNzgsIDIyNywgNzAsIDE3OCwgMjUzLCAxMDksIDIzMywgCi0gICAgNDcsIDc3LCAxNzgsIDIxLCAyMTIsIDc5LCAxNzgsIDIxLCAxMTYsIDE3OCwgMjEsIDEwOSwgMTc4LCAyMSwgMTY2LCAxNzgsIAotICAgIDIxLCAxNjMsIDE3OCwgMjEsIDE4MCwgMTc4LCAyMSwgMTg5LCAxNzgsIDIxLCAxOTgsIDE3OCwgMjEsIDE5NSwgMTc4LCAyMSwgCi0gICAgMjAwLCAxNzgsIDUwLCAyMTcsIDIwMCwgMTc4LCA1MCwgMTIyLCAyNDAsIDIwMCwgMTc4LCA1MCwgMTIyLCAyMTcsIDEwMCwgCi0gICAgMTc4LCAyNDgsIDkyLCA1MiwgMTc4LCAyMzAsIDIwNSwgNTIsIDE3OCwgMjEzLCAzNiwgNTIsIDE3OCwgMjQ4LCAzOCwgNTIsIAotICAgIDE3OCwgMjQ5LCA3OSwgNTIsIDE3OCwgMjUzLCAxNTMsIDc4LCA1MiwgMTc4LCAyMjMsIDI5LCA1MiwgMTc4LCA1MCwgNTIsIAotICAgIDEzOSwgNSwgMjUwLCAxODcsIDEzOSwgNSwgMjUzLCAyNDIsIDEzOSwgNSwgMjE0LCAxMjgsIDEzOSwgMSwgNjEsIDEzOSwgMSwgCi0gICAgMjU0LCAyMzIsIDEzOSwgMSwgNzIsIDEzOSwgMSwgMjM2LCAyOCwgMTM5LCAxLCA2OSwgMTM5LCAxLCAyMTUsIDkyLCAxMzksIAotICAgIDEsIDE2MSwgMTQ5LCAxMzksIDEsIDE2MSwgMTUwLCAxMzksIDEsIDc0LCAxMzksIDEsIDI0NSwgMTY1LCAxMzksIDEsIDI1NCwgCi0gICAgMTA4LCAxMzksIDEsIDc1LCAxMzksIDEsIDIyNywgNDksIDEzOSwgMSwgMjUzLCAxMDgsIDEzOSwgMSwgMTgxLCAxMzksIDEsIAotICAgIDIzNCwgMTM4LCAxMzksIDEsIDI0MywgMTEwLCAxMzksIDEsIDI0MiwgMjI1LCAxMzksIDEsIDIyOSwgMTU5LCAxMzksIDEsIAotICAgIDI1MCwgMjE5LCAxMzksIDEsIDI1MCwgOTIsIDEzOSwgMSwgMjM1LCAxMzksIDEzOSwgMSwgMjM1LCAxMTUsIDEzOSwgMSwgCi0gICAgMjI4LCAyMywgMTM5LCAxLCAyMTYsIDExNSwgMTM5LCAxLCAyMTYsIDEwNSwgMTM5LCAxLCAyNDgsIDg2LCAxMzksIDEsIAotICAgIDI0OCwgNzAsIDEzOSwgMSwgMjI4LCAxOTgsIDEzOSwgMSwgMjE4LCA1MiwgMTM5LCAxLCAyMTcsIDE2MSwgMTM5LCAxLCAKLSAgICAyNDgsIDE2NCwgMTM5LCAxLCAyNDcsIDIzMiwgMTM5LCAxLCAyMDUsIDEzOSwgMSwgMTkzLCAxMzksIDEsIDIyNiwgMjMsIAotICAgIDEzOSwgMSwgMjUyLCAxMDcsIDEzOSwgMSwgMjUxLCAxOTUsIDEzOSwgMSwgMTg4LCAxMzksIDEsIDE4NiwgMTM5LCAxLCAKLSAgICAyMDMsIDEzOSwgMSwgMjIzLCA4MSwgMTM5LCAxLCAyMzMsIDE1NywgMTM5LCAxLCAyMzIsIDIxMywgMTM5LCAxLCAyMTUsIDEsIAotICAgIDEzOSwgMSwgMjIxLCAyNCwgMTM5LCAxLCAyMTksIDE1NywgMTM5LCAxLCAyMjIsIDIwMiwgMTM5LCAxLCAxNTksIDEzOSwgNSwgCi0gICAgMjUzLCA5MSwgMTM5LCAzMCwgNSwgMjU0LCAyMzIsIDEzOSwgMzAsIDUsIDcyLCAxMzksIDMwLCA1LCAyMzYsIDI4LCAxMzksIAotICAgIDMwLCA1LCA2OSwgMTM5LCAzMCwgNSwgMjE1LCA5MiwgMTM5LCAzMCwgNSwgMTYxLCAxNDksIDEzOSwgMzAsIDUsIDE2MSwgCi0gICAgMjIzLCA4MiwgMTM5LCAzMCwgNSwgNzQsIDEzOSwgMzAsIDUsIDI0NSwgMTY1LCAxMzksIDMwLCA1LCAyNTQsIDEwOCwgMTM5LCAKLSAgICAzMCwgNSwgNzUsIDEzOSwgMzAsIDUsIDIyNywgNDksIDEzOSwgMzAsIDUsIDI1MywgMTA4LCAxMzksIDUsIDIxNCwgMTMzLCAKLSAgICAxMzksIDIzMywgNDcsIDc3LCAxMzksIDI1NCwgMTA5LCAyMzMsIDQ3LCA3NywgMTM5LCAxLCAyMTYsIDE0MSwgMTM5LCAxLCAKLSAgICAyNDUsIDI0OSwgMTM5LCAxLCAxNjEsIDIyMywgODIsIDEzOSwgMSwgMTYxLCAyMzIsIDIxNCwgMTM5LCAzMCwgNSwgMTYxLCAKLSAgICAxNTAsIDEzOSwgMzAsIDUsIDE2MSwgMjMyLCAyMTQsIDEzOSwgMjEsIDIxMiwgNzksIDEzOSwgMjEsIDExNiwgMTM5LCAyMSwgCi0gICAgMTA5LCAxMzksIDIxLCAxNjYsIDEzOSwgMjEsIDE2MywgMTM5LCAyMSwgMTgwLCAxMzksIDIxLCAxODksIDEzOSwgMjEsIAotICAgIDE5OCwgMTM5LCAyMSwgMTk1LCAxMzksIDIxLCAyMDAsIDEzOSwgMjQzLCAyMjgsIDIxLCAyMTIsIDgwLCAzMSwgMjI3LCAKLSAgICAxMDIsIDIyNSwgMTAzLCA2NSwgMTYzLCAxMzksIDI0MywgMjI4LCAyMSwgMTIyLCAzMSwgMjI3LCAxMDIsIDIyNSwgMTAzLCAKLSAgICA2NSwgMTYzLCAxMzksIDI0MywgMjI4LCAyMSwgMTE3LCAzMSwgMjI3LCAxMDIsIDIyNSwgMTAzLCA2NSwgMTYzLCAxMzksIAotICAgIDI0MywgMjI4LCAyMSwgMTMzLCAzMSwgMjI3LCAxMDIsIDIyNSwgMTAzLCA2NSwgMTYzLCAxMzksIDI0MywgMjI4LCAyMSwgCi0gICAgMTIyLCAzMSwgMjQ1LCA5LCAyMjUsIDEwMywgNjUsIDE2MywgMTM5LCAyNDMsIDIyOCwgMjEsIDExNywgMzEsIDI0NSwgOSwgCi0gICAgMjI1LCAxMDMsIDY1LCAxNjMsIDEzOSwgMjQzLCAyMjgsIDIxLCAxMzMsIDMxLCAyNDUsIDksIDIyNSwgMTAzLCA2NSwgMTYzLCAKLSAgICAxMzksIDUsIDIxNiwgNDksIDE1NSwgNSwgMjUzLCAyNDIsIDE1NSwgNSwgMjE0LCAxMjgsIDE1NSwgMSwgNjEsIDE1NSwgMSwgCi0gICAgMjU0LCAyMzIsIDE1NSwgMSwgNzIsIDE1NSwgMSwgMjM2LCAyOCwgMTU1LCAxLCA2OSwgMTU1LCAxLCAyMTUsIDkyLCAxNTUsIAotICAgIDEsIDE2MSwgMTQ5LCAxNTUsIDEsIDE2MSwgMTUwLCAxNTUsIDEsIDc0LCAxNTUsIDEsIDI0NSwgMTY1LCAxNTUsIDEsIDI1NCwgCi0gICAgMTA4LCAxNTUsIDEsIDc1LCAxNTUsIDEsIDIyNywgNDksIDE1NSwgMSwgMjUzLCAxMDgsIDE1NSwgMSwgMTgxLCAxNTUsIDEsIAotICAgIDIzNCwgMTM4LCAxNTUsIDEsIDI0MywgMTEwLCAxNTUsIDEsIDI0MiwgMjI1LCAxNTUsIDEsIDIyOSwgMTU5LCAxNTUsIDEsIAotICAgIDI1MCwgMjE5LCAxNTUsIDEsIDI1MCwgOTIsIDE1NSwgMSwgMjM1LCAxMzksIDE1NSwgMSwgMjM1LCAxMTUsIDE1NSwgMSwgCi0gICAgMjI4LCAyMywgMTU1LCAxLCAyMTYsIDExNSwgMTU1LCAxLCAyMTYsIDEwNSwgMTU1LCAxLCAyNDgsIDg2LCAxNTUsIDEsIAotICAgIDI0OCwgNzAsIDE1NSwgMSwgMjI4LCAxOTgsIDE1NSwgMSwgMjE4LCA1MiwgMTU1LCAxLCAyMTcsIDE2MSwgMTU1LCAxLCAKLSAgICAyNDgsIDE2NCwgMTU1LCAxLCAyNDcsIDIzMiwgMTU1LCAxLCAyMDUsIDE1NSwgMSwgMTkzLCAxNTUsIDEsIDIyNiwgMjMsIAotICAgIDE1NSwgMSwgMjUyLCAxMDcsIDE1NSwgMSwgMjUxLCAxOTUsIDE1NSwgMSwgMTg4LCAxNTUsIDEsIDE4NiwgMTU1LCAxLCAKLSAgICAyMDMsIDE1NSwgMSwgMjIzLCA4MSwgMTU1LCAxLCAyMzMsIDE1NywgMTU1LCAxLCAyMzIsIDIxMywgMTU1LCAxLCAyMTUsIDEsIAotICAgIDE1NSwgMSwgMjIxLCAyNCwgMTU1LCAxLCAyMTksIDE1NywgMTU1LCAxLCAyMjIsIDIwMiwgMTU1LCAxLCAxNTksIDE1NSwgNSwgCi0gICAgMjI4LCA2MCwgMTU1LCA1LCAyNTMsIDkxLCAxNTUsIDMwLCA1LCAyNTQsIDIzMiwgMTU1LCAzMCwgNSwgNzIsIDE1NSwgMzAsIAotICAgIDUsIDIzNiwgMjgsIDE1NSwgMzAsIDUsIDY5LCAxNTUsIDMwLCA1LCAyMTUsIDkyLCAxNTUsIDMwLCA1LCAxNjEsIDE0OSwgCi0gICAgMTU1LCAzMCwgNSwgMTYxLCAyMjMsIDgyLCAxNTUsIDMwLCA1LCA3NCwgMTU1LCAzMCwgNSwgMjQ1LCAxNjUsIDE1NSwgMzAsIAotICAgIDUsIDI1NCwgMTA4LCAxNTUsIDMwLCA1LCA3NSwgMTU1LCAzMCwgNSwgMjI3LCA0OSwgMTU1LCAzMCwgNSwgMjUzLCAxMDgsIAotICAgIDE1NSwgNSwgMjE0LCAxMzMsIDE1NSwgMjMzLCA0NywgNzcsIDE1NSwgMjU0LCAxMDksIDIzMywgNDcsIDc3LCAxNTUsIDEsIAotICAgIDI0NCwgMTY0LCAxNTUsIDEsIDE2MSwgMjIzLCA4MiwgMTU1LCAxLCAxNjEsIDIzMiwgMjE0LCAxNTUsIDMwLCA1LCAxNjEsIAotICAgIDE1MCwgMTU1LCAzMCwgNSwgMTYxLCAyMzIsIDIxNCwgMTU1LCAyMSwgMjEyLCA3OSwgMTU1LCAyMSwgMTE2LCAxNTUsIDIxLCAKLSAgICAxMDksIDE1NSwgMjEsIDE2NiwgMTU1LCAyMSwgMTYzLCAxNTUsIDIxLCAxODAsIDE1NSwgMjEsIDE4OSwgMTU1LCAyMSwgCi0gICAgMTk4LCAxNTUsIDIxLCAxOTUsIDE1NSwgMjEsIDIwMCwgMTU1LCA1LCAyMzUsIDEwNCwgMTU1LCA1LCAyMTUsIDEzMiwgMTMwLCAKLSAgICA1LCAyNTMsIDI0MiwgMTMwLCA1LCAyMTQsIDEyOCwgMTMwLCAxLCA2MSwgMTMwLCAxLCAyNTQsIDIzMiwgMTMwLCAxLCA3MiwgCi0gICAgMTMwLCAxLCAyMzYsIDI4LCAxMzAsIDEsIDY5LCAxMzAsIDEsIDIxNSwgOTIsIDEzMCwgMSwgMTYxLCAxNDksIDEzMCwgMSwgCi0gICAgMTYxLCAxNTAsIDEzMCwgMSwgNzQsIDEzMCwgMSwgMjQ1LCAxNjUsIDEzMCwgMSwgMjU0LCAxMDgsIDEzMCwgMSwgNzUsIAotICAgIDEzMCwgMSwgMjI3LCA0OSwgMTMwLCAxLCAyNTMsIDEwOCwgMTMwLCAxLCAxODEsIDEzMCwgMSwgMjM0LCAxMzgsIDEzMCwgMSwgCi0gICAgMjQzLCAxMTAsIDEzMCwgMSwgMjQyLCAyMjUsIDEzMCwgMSwgMjI5LCAxNTksIDEzMCwgMSwgMjUwLCAyMTksIDEzMCwgMSwgCi0gICAgMjUwLCA5MiwgMTMwLCAxLCAyMzUsIDEzOSwgMTMwLCAxLCAyMzUsIDExNSwgMTMwLCAxLCAyMjgsIDIzLCAxMzAsIDEsIAotICAgIDIxNiwgMTE1LCAxMzAsIDEsIDIxNiwgMTA1LCAxMzAsIDEsIDI0OCwgODYsIDEzMCwgMSwgMjQ4LCA3MCwgMTMwLCAxLCAKLSAgICAyMjgsIDE5OCwgMTMwLCAxLCAyMTgsIDUyLCAxMzAsIDEsIDIxNywgMTYxLCAxMzAsIDEsIDI0OCwgMTY0LCAxMzAsIDEsIAotICAgIDI0NywgMjMyLCAxMzAsIDEsIDIwNSwgMTMwLCAxLCAyMjgsIDE4OSwgMTMwLCAxLCAxOTMsIDEzMCwgMSwgMjI2LCAyMywgCi0gICAgMTMwLCAxLCAyNTIsIDEwNywgMTMwLCAxLCAyNTEsIDE5NSwgMTMwLCAxLCAxODgsIDEzMCwgMSwgMTg2LCAxMzAsIDEsIAotICAgIDIwMywgMTMwLCAxLCAyMjMsIDgxLCAxMzAsIDEsIDIzMywgMTU3LCAxMzAsIDEsIDIzMiwgMjEzLCAxMzAsIDEsIDIzMiwgCi0gICAgMjEyLCAxMzAsIDEsIDIxNSwgMSwgMTMwLCAxLCAyMjEsIDI0LCAxMzAsIDEsIDIxOSwgMTU3LCAxMzAsIDEsIDIyMiwgMjAyLCAKLSAgICAxMzAsIDEsIDE1OSwgMTMwLCAxLCAyMTYsIDg4LCAxMzAsIDUsIDI1MywgOTEsIDEzMCwgMzAsIDUsIDI1NCwgMjMyLCAxMzAsIAotICAgIDMwLCA1LCA3MiwgMTMwLCAzMCwgNSwgMjM2LCAyOCwgMTMwLCAzMCwgNSwgNjksIDEzMCwgMzAsIDUsIDIxNSwgOTIsIDEzMCwgCi0gICAgMzAsIDUsIDE2MSwgMTQ5LCAxMzAsIDMwLCA1LCAxNjEsIDIyMywgODIsIDEzMCwgMzAsIDUsIDc0LCAxMzAsIDMwLCA1LCAKLSAgICAyNDUsIDE2NSwgMTMwLCAzMCwgNSwgMjU0LCAxMDgsIDEzMCwgMzAsIDUsIDc1LCAxMzAsIDMwLCA1LCAyMjcsIDQ5LCAxMzAsIAotICAgIDMwLCA1LCAyNTMsIDEwOCwgMTMwLCA1LCAyMTQsIDEzMywgMTMwLCAxLCA2MiwgMjIzLCAyMjUsIDEzMCwgMjUzLCAxMDksIAotICAgIDIzMywgNDcsIDc3LCAxMzAsIDEsIDE2MSwgMjIzLCA4MiwgMTMwLCAxLCAxNjEsIDIzMiwgMjE0LCAxMzAsIDMwLCA1LCAKLSAgICAxNjEsIDE1MCwgMTMwLCAzMCwgNSwgMTYxLCAyMzIsIDIxNCwgMTMwLCAyMSwgMjEyLCA3OSwgMTMwLCAyMSwgMTE2LCAxMzAsIAotICAgIDIxLCAxMDksIDEzMCwgMjEsIDE2NiwgMTMwLCAyMSwgMTYzLCAxMzAsIDIxLCAxODAsIDEzMCwgMjEsIDE4OSwgMTMwLCAyMSwgCi0gICAgMTk4LCAxMzAsIDIxLCAxOTUsIDEzMCwgMjEsIDIwMCwgMTMwLCA1MCwgMjE3LCAyMDAsIDEzMCwgNTAsIDEyMiwgMjQwLCAKLSAgICAyMDAsIDEzMCwgNTAsIDEyMiwgMjE3LCAxMDAsIDEzMCwgMjQzLCAyMjgsIDEyMiwgMjI0LCAxNjYsIDEzMCwgMjQzLCAyMjgsIAotICAgIDEyMiwgMjQyLCA5LCAxMzAsIDI0MywgMjI4LCAxMzMsIDIyNCwgMTY0LCAxMzAsIDI0OCwgOTYsIDc3LCAxMzAsIDEsIDI1MCwgCi0gICAgMzYsIDIyOCwgMTk5LCAxMzAsIDEsIDI1MCwgMzYsIDIwNCwgMTMwLCAxLCAyNTAsIDM2LCAyMjMsIDgyLCAxMzAsIDEsIAotICAgIDI1MCwgMzYsIDE1MCwgMTMwLCAxLCAyNTAsIDM2LCAyMzIsIDIxNCwgMTMwLCAxLCAyNTAsIDM2LCAyMzUsIDI3LCAxNzIsIAotICAgIDUsIDI1MywgMjQxLCAxNzIsIDUsIDIxNCwgMTI3LCAxNzIsIDEsIDI1MywgODEsIDE3MiwgMSwgMjU0LCAxODcsIDE3MiwgMSwgCi0gICAgMjU0LCAxMjgsIDE3MiwgMSwgMjU0LCAxNDMsIDE3MiwgMSwgMjM1LCAxNDksIDE3MiwgMSwgMjM2LCAyNywgMTcyLCAxLCAKLSAgICAyMTUsIDg0LCAxNzIsIDEsIDIxNSwgODYsIDE3MiwgMSwgMjM1LCAxNzEsIDE3MiwgMSwgMjM1LCAxNzIsIDE3MiwgMSwgCi0gICAgMjM2LCAxMywgMTcyLCAxLCAyMzYsIDE1LCAxNzIsIDEsIDI0NCwgMjQxLCAxNzIsIDEsIDI0NSwgMTYxLCAxNzIsIDEsIAotICAgIDI1NCwgOTYsIDE3MiwgMSwgMjI2LCAyMzIsIDE3MiwgMSwgMjI3LCA0MywgMTcyLCAxLCAyNTMsIDk0LCAxNzIsIDEsIDI1NCwgCi0gICAgNTUsIDIzNCwgMTkzLCAxNzIsIDEsIDIzMiwgMTQsIDIzNCwgMTkzLCAxNzIsIDEsIDI1NCwgNTUsIDI0MywgNTgsIDE3MiwgCi0gICAgMSwgMjMyLCAxNCwgMjQzLCA1OCwgMTcyLCAxLCAyMzQsIDIzNCwgMjMwLCA0MCwgMTcyLCAxLCAyMjIsIDE1MiwgMjQzLCAKLSAgICA1OCwgMTcyLCAxLCAyNTQsIDU1LCAyNTAsIDE0OSwgMTcyLCAxLCAyMzIsIDE0LCAyNTAsIDE0OSwgMTcyLCAxLCAyNTQsIAotICAgIDU1LCAyMzUsIDEyOCwgMTcyLCAxLCAyMzIsIDE0LCAyMzUsIDEyOCwgMTcyLCAxLCAyMTgsIDQ2LCAyMzAsIDQwLCAxNzIsIAotICAgIDEsIDIxOCwgNDYsIDIyMiwgMTUxLCAyMzAsIDQxLCAxNzIsIDEsIDIyMiwgMTUyLCAyMzUsIDEyOCwgMTcyLCAxLCAyNTQsIAotICAgIDU1LCAyMTYsIDExMywgMTcyLCAxLCAyMzIsIDE0LCAyMTYsIDExMywgMTcyLCAxLCAyNTQsIDU1LCAyNDgsIDc3LCAxNzIsIAotICAgIDEsIDIzMiwgMTQsIDI0OCwgNzcsIDE3MiwgMSwgMjMwLCAxMjQsIDIzMCwgMiwgMTcyLCAxLCAyMjIsIDE1MiwgMjQ4LCA3NywgCi0gICAgMTcyLCAxLCAyNTQsIDU1LCAyMTcsIDIzNywgMTcyLCAxLCAyMzIsIDE0LCAyMTcsIDIzNywgMTcyLCAxLCAyNTQsIDU1LCAKLSAgICAyNDgsIDkwLCAxNzIsIDEsIDIzMiwgMTQsIDI0OCwgOTAsIDE3MiwgMSwgMjQ4LCAxMTksIDIzMCwgMiwgMTcyLCAxLCAyMjIsIAotICAgIDE1MiwgMjQ4LCA5MCwgMTcyLCAxLCAyNTQsIDU1LCAyMjYsIDEwMiwgMTcyLCAxLCAyMzIsIDE0LCAyMjYsIDEwMiwgMTcyLCAKLSAgICAxLCAyNTQsIDU1LCAyNTIsIDMyLCAxNzIsIDEsIDIzMiwgMTQsIDI1MiwgMzIsIDE3MiwgMSwgMjMxLCAxOTUsIDE3MiwgMSwgCi0gICAgMjU0LCA0MCwgMjUyLCAzMiwgMTcyLCAxLCAyMTMsIDQyLCAxNzIsIDEsIDIyNCwgMjYsIDE3MiwgMSwgMjQ4LCAxMTksIAotICAgIDIzMywgOTEsIDE3MiwgMSwgMjE0LCAyMzQsIDE3MiwgMSwgMjE4LCA0NiwgMjIyLCAxMjgsIDE3MiwgMSwgMjMwLCAxMjQsIAotICAgIDIyMiwgMTI4LCAxNzIsIDEsIDI0OCwgMTE5LCAyMjIsIDEyOCwgMTcyLCAxLCAyNDEsIDIyNiwgMTcyLCAxLCAyMzAsIDEyNCwgCi0gICAgMjMzLCA5MSwgMTcyLCAxLCAyNDQsIDEyNSwgMTcyLCA1LCAyNTQsIDg1LCAxNzIsIDMwLCA1LCAyNTQsIDEzOCwgMTcyLCAKLSAgICAzMCwgNSwgMjM0LCAxNjEsIDI1NCwgMTQ1LCAxNzIsIDMwLCA1LCAyNDcsIDE4MCwgMjU0LCAxNDUsIDE3MiwgMzAsIDUsIAotICAgIDIzNCwgMTYxLCAyMzUsIDE2OCwgMTcyLCAzMCwgNSwgMjQ3LCAxODAsIDIzNSwgMTY4LCAxNzIsIDMwLCA1LCAyMzQsIDE2MSwgCi0gICAgMjI2LCAyMTIsIDE3MiwgMzAsIDUsIDI0NywgMTgwLCAyMjYsIDIxMiwgMTcyLCAzMCwgNSwgMjQzLCA5OSwgMTcyLCAzMCwgCi0gICAgNSwgMjM0LCAyNCwgMTcyLCAzMCwgNSwgMjQ3LCAxODAsIDIzNCwgMjQsIDE3MiwgMzAsIDUsIDIzNCwgMjYsIDI0OCwgMTgsIAotICAgIDE3MiwgMzAsIDUsIDIzNCwgMjUsIDI0MiwgMjgsIDI1NCwgMTM4LCAxNzIsIDMwLCA1LCAyMzQsIDI1LCAyNDIsIDI4LCAKLSAgICAyNDcsIDE4MCwgMjU0LCAxMzgsIDE3MiwgMzAsIDUsIDIzNCwgMjUsIDI0MiwgMjgsIDI0MywgNTcsIDE3MiwgMzAsIDUsIAotICAgIDI0MywgNTcsIDE3MiwgMzAsIDUsIDI0NywgMTgwLCAyNDMsIDk5LCAxNzIsIDMwLCA1LCAyNDcsIDE4MCwgMjQzLCA1NywgCi0gICAgMTcyLCAyMjUsIDI3LCAyMzMsIDIyOCwgMTU0LCAxMzcsIDIzNCwgMzgsIDIzNCwgMjUwLCAxNTQsIDEzNywgMjM0LCAxMTQsIAotICAgIDIzNCwgMTM0LCAxNTQsIDEzNywgMjM0LCAxMTQsIDIzNCwgMTA3LCAxNTQsIDEzNywgMjM0LCAxMTQsIDIzNCwgMTA0LCAKLSAgICAxNTQsIDEzNywgMjM0LCAxMTQsIDIzNCwgMTExLCAxNTQsIDEzNywgMjM0LCAxMTQsIDIyNCwgNDYsIDE1NCwgMTM3LCAyMjksIAotICAgIDkxLCAyMjksIDc4LCAxNTQsIDEzNywgMjUwLCAyNCwgMjUwLCA4MywgMTU0LCAxMzcsIDI1MCwgMjQsIDI1MCwgMzIsIDE1NCwgCi0gICAgMTM3LCAyNTAsIDI0LCAyNTAsIDgyLCAxNTQsIDEzNywgMjE5LCAyNDMsIDIxOSwgMjQyLCAxNTQsIDEzNywgMjUwLCAyNCwgCi0gICAgMjUwLCAyMCwgMTU0LCAxMzcsIDIxMiwgMjM2LCAyMTIsIDI0MywgMTU0LCAxMzcsIDI0NywgMTAwLCAyNTAsIDg5LCAxNTQsIAotICAgIDEzNywgMjExLCAyMTEsIDIyNiwgMTExLCAxNTQsIDEzNywgMjE3LCAxMTAsIDIxNywgMTUzLCAxNTQsIDEzNywgMjE3LCAKLSAgICAxMTAsIDIzMCwgMjEsIDE1NCwgMTM3LCAyMTcsIDExMCwgMjI1LCAyNDMsIDE1NCwgMTM3LCAyMjgsIDE4NiwgMjI5LCAxODAsIAotICAgIDE1NCwgMTM3LCAyNDcsIDEwMCwgMjQ4LCAxOSwgMTU0LCAxMzcsIDIxMSwgMjExLCAyMTgsIDYsIDE1NCwgMTM3LCAyMTcsIAotICAgIDExMCwgMjE3LCA4NSwgMTU0LCAxMzcsIDIxNywgMTEwLCAyMTcsIDE1NywgMTU0LCAxMzcsIDIxNywgMTEwLCAyMTcsIDEwNywgCi0gICAgMTU0LCAxMzcsIDIyOCwgMTg2LCAyMjgsIDkyLCAxNTQsIDEzNywgMjUxLCAxMjksIDI1MiwgODMsIDE1NCwgMTM3LCAyMjUsIAotICAgIDE1MSwgMjI1LCAxNzQsIDE1NCwgMTM3LCAyMjUsIDI1NCwgMjI1LCAyNDUsIDE1NCwgMTM3LCAyNDQsIDEzLCAyNDQsIDE2NCwgCi0gICAgMTU0LCAxMzcsIDIyNSwgMjU0LCAyMjYsIDE3LCAxNTQsIDEzNywgMjQ0LCAxMywgMjQ0LCAxNDEsIDE1NCwgMTM3LCAyMjUsIAotICAgIDI1NCwgMjIyLCAxNjIsIDE1NCwgMTM3LCAyMzAsIDIzMiwgMTg4LCAxNTQsIDEzNywgMjEyLCAyMzYsIDIxMywgNjgsIDE1NCwgCi0gICAgMTM3LCAyMjMsIDExMywgMjIzLCA1MCwgMTU0LCAxMzcsIDIyMywgNTEsIDE1NCwgMTM3LCAyMzIsIDIwOSwgMjMyLCAyMzUsIAotICAgIDE1NCwgMTM3LCAyMzIsIDE1NiwgMTU0LCAxMzcsIDIxMywgMjE1LCAyMTQsIDQ1LCAxNTQsIDEzNywgMjE5LCAyNDMsIDIyMiwgCi0gICAgMTc3LCAxNTQsIDEzNywgMjE5LCAyNDMsIDIyMywgMjUsIDE1NCwgMTM3LCAyMTksIDI0MywgMjE5LCAyNiwgMTU0LCAxMzcsIAotICAgIDI0MSwgNTUsIDI0MSwgMTQ1LCAxNTQsIDEzNywgMjMyLCAyMDksIDI1MCwgNSwgMTU0LCAxMzcsIDE1NywgMjU0LCAyNCwgCi0gICAgMTU0LCAxMzcsIDI0MSwgNTUsIDIyOCwgMTgxLCAxNTQsIDEzNywgMjI2LCAxOTUsIDE1NCwgMTM3LCAyMjIsIDE0NiwgNjEsIAotICAgIDE1NCwgMTM3LCAyMzIsIDksIDI0MiwgMCwgMTU0LCAxMzcsIDIyMiwgMTQ2LCAyNTQsIDIzMiwgMTU0LCAxMzcsIDIyMiwgCi0gICAgMTQ2LCAyNTQsIDQ1LCAxNTQsIDEzNywgMjIyLCAxNDYsIDcyLCAxNTQsIDEzNywgMjIyLCAxNDYsIDIzNiwgMjgsIDE1NCwgCi0gICAgMTM3LCAyMjIsIDE0NiwgMjE1LCAxODMsIDE1NCwgMTM3LCAyMjIsIDE0NiwgMjE1LCAxODEsIDE1NCwgMTM3LCAyMjIsIAotICAgIDE0NiwgNjksIDE1NCwgMTM3LCAyMjIsIDE0NiwgMjE1LCA5MiwgMTU0LCAxMzcsIDIyNiwgMCwgMTU0LCAyNDksIDM5LCAxNiwgCi0gICAgMjUyLCA4NCwgMTU0LCAxMzcsIDIyMiwgMTQ2LCA3NCwgMTU0LCAxMzcsIDIyMiwgMTQ2LCAyNTQsIDE0OCwgMTU0LCAxMzcsIAotICAgIDIyMiwgMTQ2LCA3NSwgMTU0LCAxMzcsIDIyMiwgMTQ2LCAyNTQsIDEwOSwgMjMyLCA0LCAxNTQsIDEzNywgMjIyLCAxNDYsIAotICAgIDI1NCwgMTA5LCAyMzIsIDUsIDE1NCwgMTM3LCAyMzMsIDEzMCwgMTU0LCAxMzcsIDIzMiwgMSwgMTU0LCAxMzcsIDIzMiwgMiwgCi0gICAgMTU0LCAxMzcsIDIzMiwgOSwgMjQ1LCAxMzcsIDE1NCwgMTM3LCAyMzIsIDksIDIxNywgMTA5LCAxNTQsIDEzNywgMjMyLCA5LCAKLSAgICAyMTYsIDE4NiwgMTU0LCAxMzcsIDIzMiwgOSwgMjUwLCA3MSwgMTU0LCAxMzcsIDIxNywgMTUxLCAxNTQsIDEzNywgMjI5LCAKLSAgICAzNiwgMTU0LCAxMzcsIDIxMywgNjIsIDE1NCwgMTM3LCAyNDQsIDQsIDE1NCwgMjEsIDIxMiwgNzksIDE1NCwgMjEsIDExNiwgCi0gICAgMTU0LCAyMSwgMTA5LCAxNTQsIDIxLCAxNjYsIDE1NCwgMjEsIDE2MywgMTU0LCAyMSwgMTgwLCAxNTQsIDIxLCAxODksIAotICAgIDE1NCwgMjEsIDE5OCwgMTU0LCAyMSwgMTk1LCAxNTQsIDIxLCAyMDAsIDE1NCwgMTM3LCAyNTQsIDIwLCAxNTQsIDEzNywgCi0gICAgMjM0LCAxMTIsIDIzMywgMTEyLCAxLCAyMzQsIDM3LCAyMzMsIDExMiwgMSwgMjM0LCAxMTQsIDIxOCwgMjM1LCAyMzMsIAotICAgIDExMiwgMSwgMjM0LCAxMTQsIDIxOCwgMTMsIDIzMywgMTEyLCAxLCAyMjksIDkwLCAyMzMsIDExMiwgMSwgMjQ5LCAxNzUsIAotICAgIDIzMywgMTEyLCAxLCAyMTksIDI0MywgMjE4LCAxMywgMjMzLCAxMTIsIDEsIDIyNywgMjUzLCAyMzMsIDExMiwgMSwgMjQ3LCAKLSAgICA5OSwgMjMzLCAxMTIsIDEsIDEwOCwgMjMzLCAxMTIsIDEsIDIxNywgMTEwLCAyMTgsIDIzNSwgMjMzLCAxMTIsIDEsIDIxNywgCi0gICAgMTEwLCAyMTgsIDEzLCAyMzMsIDExMiwgMSwgMjI4LCAxODUsIDIzMywgMTEyLCAxLCAyNTEsIDEyOCwgMjMzLCAxMTIsIDEsIAotICAgIDIyNSwgMTUwLCAyMzMsIDExMiwgMSwgMjI1LCAyNTQsIDIxOCwgMjM1LCAyMzMsIDExMiwgMSwgMjQ0LCAxMywgMjE4LCAxMywgCi0gICAgMjMzLCAxMTIsIDEsIDIyNSwgMjU0LCAyMTgsIDEzLCAyMzMsIDExMiwgMSwgMjQ0LCAxMywgMjE4LCAyMzUsIDIzMywgMTEyLCAKLSAgICAxLCAyMzAsIDIzMSwgMjMzLCAxMTIsIDEsIDIxMiwgMjM1LCAyMzMsIDExMiwgMSwgMjMyLCAyMDksIDIzMiwgMjM1LCAyMzMsIAotICAgIDExMiwgMSwgMjMyLCAyMDksIDIzMiwgMTc2LCAyMzMsIDExMiwgMSwgMjEzLCAyMTQsIDIzMywgMTEyLCAxLCAyMTksIDI0MywgCi0gICAgMjE4LCAyMzUsIDIzMywgMTEyLCAxLCAyNDEsIDU1LCAyMTgsIDIzNSwgMjMzLCAxMTIsIDEsIDc1LCAyMzMsIDExMiwgMSwgCi0gICAgMjQxLCA1NSwgMjE4LCAxMywgMjMzLCAxMTIsIDI0NSwgMTIwLCAyMzMsIDExMiwgMzAsIDUsIDYxLCAyMzMsIDExMiwgMzAsIAotICAgIDUsIDIzMiwgOSwgMjM0LCAyMzksIDIzMywgMTEyLCAzMCwgNSwgMjU0LCAyMzIsIDIzMywgMTEyLCAzMCwgNSwgMjU0LCA0NSwgCi0gICAgMjMzLCAxMTIsIDMwLCA1LCA3MiwgMjMzLCAxMTIsIDMwLCA1LCAyMzYsIDI4LCAyMzMsIDExMiwgMzAsIDUsIDIxMywgMTA1LCAKLSAgICAyMzMsIDExMiwgMzAsIDUsIDIxMiwgMTYxLCAyMzMsIDExMiwgMzAsIDUsIDY5LCAyMzMsIDExMiwgMzAsIDUsIDIxNSwgOTIsIAotICAgIDIzMywgMTEyLCAzMCwgNSwgMjMyLCA5LCAyMzQsIDIyLCAyMzMsIDExMiwgMjIxLCA2NSwgNSwgMjMyLCAyMDgsIDIzMywgCi0gICAgMTEyLCAyMjEsIDY1LCA1LCAyMjcsIDI1MywgMjMzLCAxMTIsIDMwLCA1LCA3NCwgMjMzLCAxMTIsIDMwLCA1LCAyNDUsIAotICAgIDE1MiwgMjMzLCAxMTIsIDMwLCA1LCA3NSwgMjMzLCAxMTIsIDMwLCA1LCAyNTMsIDgzLCAyMzMsIDExMiwgMzAsIDUsIDI1NCwgCi0gICAgMTA4LCAyMzMsIDExMiwgMjM0LCAzOCwgMjMzLCAxNTcsIDIzMywgMTEyLCAxNjAsIDIzMiwgOSwgMjQ1LCAxMzcsIDIzMywgCi0gICAgMTEyLCAxNjAsIDIzMiwgOSwgMjE3LCAxMDksIDIzMywgMTEyLCAxNjAsIDIzMiwgOSwgMjE3LCA3MSwgMjMzLCAxMTIsIAotICAgIDE2MCwgMjMyLCA5LCAyNTAsIDE1NSwgMjMzLCAxMTIsIDI1MCwgMTkyLCA3NywgMjMzLCAxMTIsIDIyOSwgNDUsIDIzMywgCi0gICAgMTEyLCAyMSwgMjEyLCA3OSwgMjMzLCAxMTIsIDIxLCAxMTYsIDIzMywgMTEyLCAyMSwgMTA5LCAyMzMsIDExMiwgMjEsIAotICAgIDE2NiwgMjMzLCAxMTIsIDIxLCAxNjMsIDIzMywgMTEyLCAyMSwgMTgwLCAyMzMsIDExMiwgMjEsIDE4OSwgMjMzLCAxMTIsIAotICAgIDIxLCAxOTgsIDIzMywgMTEyLCAyMSwgMTk1LCAyMzMsIDExMiwgMjEsIDIwMCwgMjMzLCAxMTIsIDI0MSwgNTUsIDIyOCwgCi0gICAgMTg1LCAyMzMsIDExMiwgMjQxLCA1NSwgMjMwLCAyMzEsIDYwLCA0LCAyMjcsIDcwLCA2MCwgMTUyLCAyNDIsIDk0LCAyMTIsIAotICAgIDI0NywgMjMxLCA1OSwgMjE2LCAxNDcsIDYxLCA2MCwgMTUyLCAyNDIsIDk0LCAyMTIsIDI0NywgMjMxLCA1OSwgMjU1LCA2MiwgCi0gICAgMjIzLCAxMTcsIDI1MSwgMjUzLCAxODgsIDYwLCAxNTIsIDI0MiwgOTQsIDIxMiwgMjQ3LCAyMzEsIDU5LCAyNTUsIDYyLCAKLSAgICAyNDIsIDk0LCAyMTYsIDEzMSwgMTg4LCA2MCwgMTUyLCA3MCwgMjEyLCAyNDcsIDIzMSwgNTksIDIzMSwgMTU4LCAxODgsIAotICAgIDYwLCAxNTIsIDI0OSwgMTg5LCAyMTIsIDI0NywgMjMxLCA1OSwgMjIxLCAzMCwgMTg4LCA2MCwgMTUyLCAyNTAsIDE3MSwgCi0gICAgMjEyLCAyNDcsIDIzMSwgNTksIDIyNSwgMjQ0LCAyMjEsIDE4LCAxODgsIDYwLCAxNTIsIDIxMiwgMjQ3LCAyMzEsIDU5LCAKLSAgICAyMTYsIDEzMSwgMjIxLCAxOCwgMTg4LCA2MCwgMTUyLCAyMjIsIDEyNiwgMjIxLCAxNywgNjAsIDE1MiwgMjUxLCA1NywgCi0gICAgMjEyLCAyNDcsIDIzMSwgNTgsIDYwLCAxNTIsIDI1MSwgMTQ2LCAyMjAsIDE4MywgMjEyLCAyNDcsIDIzMSwgNTgsIDYwLCAKLSAgICAxNTIsIDIzNSwgMTk0LCAyMTYsIDEzMCwgNjAsIDE1MiwgMjQ4LCAxMiwgMjE2LCAxMzEsIDI1MSwgNTYsIDYwLCAxNTIsIAotICAgIDIyMSwgMTcsIDYwLCAxNTIsIDIyOCwgMiwgMjIxLCAxNywgNjAsIDE1MiwgMjE2LCAxMzEsIDIyMSwgMTcsIDYwLCAxNTIsIAotICAgIDIyOCwgMiwgMjE2LCAxMzEsIDIyMSwgMTcsIDYwLCAxNTIsIDIyMywgMTMzLCAyNTAsIDU5LCAyMTksIDE2OCwgMjIxLCAxNywgCi0gICAgNjAsIDE1MiwgMjIzLCAxOTUsIDI0MiwgMTIyLCAyMjEsIDE3LCA2MCwgMTUyLCAyNTAsIDE3MSwgMjU1LCA2NiwgMjIzLCAKLSAgICA1NSwgMjMxLCAxNTcsIDE4NCwgMjUwLCAxOTUsIDYwLCAxNTIsIDI0MiwgOTQsIDIxNiwgMTMwLCA2MCwgMjMyLCAxOTcsIDUsIAotICAgIDI1MCwgOTAsIDIyMywgNTQsIDYwLCAyMzIsIDE5NywgNSwgMjMzLCAyMywgMjIzLCA1NCwgNjAsIDI1MywgMTI4LCA1LCAKLSAgICAyMjEsIDI3LCAyNDMsIDQxLCAyNTUsIDY3LCAyMjMsIDU0LCA2MCwgMjUzLCAxMjgsIDUsIDI1NSwgNjQsIDE5MywgNjAsIAotICAgIDI1MywgMTI4LCA1LCAyMjIsIDEwMSwgMjE2LCAxMjYsIDYwLCA1LCAyMjQsIDIzLCAyNDcsIDExMSwgMjQzLCA0MCwgNjAsIAotICAgIDUsIDIyNCwgMjMsIDI0NywgMTExLCAyNDIsIDE1MiwgNjAsIDUsIDIyNCwgMjMsIDI0NywgMTExLCAyNDIsIDk1LCA2MCwgNSwgCi0gICAgMjI0LCAyMywgMjMwLCAzNywgMjQzLCA0MCwgNjAsIDUsIDIyNCwgMjMsIDIzMCwgMzcsIDI0MiwgMTUyLCA2MCwgNSwgMjI0LCAKLSAgICAyMywgMjQ3LCAxMTEsIDIyNCwgMjMsIDIzMCwgMzYsIDYwLCAyMSwgMjEyLCA3OSwgNjAsIDIxLCAxMTYsIDYwLCAyMSwgCi0gICAgMTA5LCA2MCwgMjEsIDE2NiwgNjAsIDIxLCAxNjMsIDYwLCAyMSwgMTgwLCA2MCwgMjEsIDE4OSwgNjAsIDIxLCAxOTgsIDYwLCAKLSAgICAyMSwgMTk1LCA2MCwgMjEsIDIwMCwgNjAsIDIxLCAxNTEsIDExNiwgNjAsIDIxLCAxNTEsIDEwOSwgNjAsIDIxLCAxNTEsIAotICAgIDE2NiwgNjAsIDIxLCAxNTEsIDE2MywgNjAsIDIxLCAxNTEsIDE4MCwgNjAsIDIxLCAxNTEsIDE4OSwgNjAsIDIxLCAxNTEsIAotICAgIDE5OCwgNjAsIDIxLCAxNTEsIDE5NSwgNjAsIDIxLCAxNTEsIDIwMCwgNjAsIDIxLCAxNTEsIDIxMiwgNzksIDYwLCAxNTIsIAotICAgIDI1MSwgNTksIDIyMywgNTQsIDYwLCAxNTIsIDIyOSwgMTUxLCAyNTAsIDI1NCwgMjI4LCAxMSwgMjEyLCAxOCwgNjAsIDE1MiwgCi0gICAgMjUwLCAxNzEsIDI1NSwgNjYsIDIyMywgNTUsIDI1MCwgMjU1LCAyMzEsIDE1LCAyNTAsIDE5NSwgNjAsIDE1MiwgMjI5LCAKLSAgICAxNTEsIDI1MCwgMjU0LCAyMjEsIDI4LCAyMjMsIDU0LCA2MCwgMTUyLCAyNTAsIDY4LCAyMzEsIDU4LCA2MCwgMTUyLCAyMTYsIAotICAgIDE0MiwgMjU1LCA2MywgNjAsIDE1MiwgMjQyLCA4MSwgMjIzLCA1NSwgMjQyLCA0NCwgNjAsIDE1MiwgMjQyLCA4MSwgMjIzLCAKLSAgICA1NSwgMjQyLCA1MCwgNjAsIDE1MiwgMjU0LCAyNSwgMjM0LCAxMjksIDI0MiwgNDQsIDYwLCAxNTIsIDI1NCwgMjUsIDIzNCwgCi0gICAgMTI5LCAyNDIsIDUwLCA2MCwgNSwgMjEzLCA1NSwgMjE2LCAxMjksIDYwLCA1LCAyMzEsIDIzMCwgMjE2LCAxMjksIDYwLCAxLCAKLSAgICAxODEsIDYwLCAxLCAyMzQsIDEzOCwgNjAsIDEsIDI0MywgMTEwLCA2MCwgMSwgMjQyLCAyMjUsIDYwLCAxLCAyMjksIDE1OSwgCi0gICAgNjAsIDEsIDI1MCwgMjE5LCA2MCwgMSwgMjUwLCA5MiwgNjAsIDEsIDIzNSwgMTM5LCA2MCwgMSwgMjI4LCAyMywgNjAsIDEsIAotICAgIDIxNiwgMTE1LCA2MCwgMSwgMjE2LCAxMDUsIDYwLCAxLCAyNDgsIDg2LCA2MCwgMSwgMjQ4LCA3MCwgNjAsIDEsIDIyOCwgCi0gICAgMTk4LCA2MCwgMSwgMjE4LCA1MiwgNjAsIDEsIDIxNywgMTYxLCA2MCwgMSwgMjQ4LCAxNjQsIDYwLCAxLCAyNDcsIDIzMiwgCi0gICAgNjAsIDEsIDIwNSwgNjAsIDEsIDE5MywgNjAsIDEsIDIyNiwgMjMsIDYwLCAxLCAyNTIsIDEwNywgNjAsIDEsIDI1MSwgMTk1LCAKLSAgICA2MCwgMSwgMTg4LCA2MCwgMSwgMjE2LCAxNDEsIDYwLCAxLCAyMTYsIDEzMywgNjAsIDEsIDI0NSwgMjQ5LCA2MCwgMSwgCi0gICAgMjQ1LCAyNDQsIDYwLCAxLCAyMTQsIDQ5LCA2MCwgMSwgMjEyLCA3NSwgNjAsIDEsIDIxMiwgMTA5LCA2MCwgMSwgMjU1LCAKLSAgICA2OSwgNjAsIDEsIDE4NiwgNjAsIDEsIDIwMywgNjAsIDEsIDIzMywgMTU3LCA2MCwgMSwgMjIxLCAyNCwgNjAsIDEsIDIxOSwgCi0gICAgMTU3LCA2MCwgMSwgMjIyLCAyMDIsIDYwLCAxLCAxNTksIDYwLCAxLCA2MSwgNjAsIDEsIDIzMywgMjQxLCA2MCwgMSwgMjQ0LCAKLSAgICA0NiwgMjAzLCA2MCwgMSwgMjM0LCA1NSwgNjAsIDEsIDIyMywgODEsIDYwLCAzMCwgNSwgMjU0LCAyMzIsIDYwLCAzMCwgNSwgCi0gICAgNzIsIDYwLCAzMCwgNSwgMjM2LCAyOCwgNjAsIDMwLCA1LCA2OSwgNjAsIDMwLCA1LCAyMTUsIDkyLCA2MCwgMzAsIDUsIAotICAgIDE2MSwgMTQ5LCA2MCwgMzAsIDUsIDE2MSwgMjIzLCA4MiwgNjAsIDMwLCA1LCAxNjEsIDE1MCwgNjAsIDMwLCA1LCAxNjEsIAotICAgIDIzMiwgMjE0LCA2MCwgMzAsIDUsIDc0LCA2MCwgMzAsIDUsIDI0NSwgMTY1LCA2MCwgMzAsIDUsIDc1LCA2MCwgMzAsIDUsIAotICAgIDIyNywgNDksIDYwLCA1LCAyMjMsIDExOCwgMjE5LCAyOCwgMjI5LCAxNjAsIDIyMywgMTEyLCA2MCwgNSwgMjIzLCAxMTcsIAotICAgIDI1MSwgMjUyLCA2MCwgMzAsIDUsIDIyMywgMjAyLCA3MiwgNjAsIDMwLCA1LCAyMjMsIDIwMiwgMjM2LCAyOCwgNjAsIDUsIAotICAgIDIyOCwgMTEsIDIxMiwgMTksIDIzMCwgNDQsIDI0OCwgMTY0LCA2MCwgNSwgMjE5LCAyNTUsIDIzMywgODQsIDYwLCAxNTIsIAotICAgIDI0MiwgMTEsIDYwLCAxNTIsIDIyNiwgMTg0LCA2MCwgNSwgMjMzLCA4NywgMjIzLCA1NCwgNjAsIDUsIDIxMywgNTksIDIyMywgCi0gICAgNTQsIDYwLCA1LCAyMzMsIDg4LCAyMTYsIDE0MiwgMjUwLCAxOTUsIDYwLCA1LCAyMzEsIDE1OSwgMjUwLCAxOTUsIDYwLCA1LCAKLSAgICAyNDIsIDk3LCAyNTAsIDE5NiwgMjIzLCAxOTMsIDYwLCA1LCAyNDIsIDk3LCAyMzEsIDE1MCwgMjIzLCAxOTMsIDYwLCA1LCAKLSAgICAyMzUsIDE5MSwgMjMxLCAxNTksIDI1MCwgMTk1LCA2MCwgMjE5LCAxOCwgNSwgMjMzLCA4OCwgMjE2LCAxNDIsIDI1MCwgCi0gICAgMTk1LCA2MCwgMjE5LCAxOCwgNSwgMjMxLCAxNTksIDI1MCwgMTk1LCA2MCwgMjE5LCAxOCwgNSwgMjM1LCAxOTEsIDIzMSwgCi0gICAgMTU5LCAyNTAsIDE5NSwgNjAsIDIxOSwgMTgsIDEsIDE4MSwgNjAsIDIxOSwgMTgsIDEsIDIzNCwgMTM4LCA2MCwgMjE5LCAKLSAgICAxOCwgMSwgMjQzLCAxMTAsIDYwLCAyMTksIDE4LCAxLCAyNDIsIDIyNSwgNjAsIDIxOSwgMTgsIDEsIDIyOSwgMTU5LCA2MCwgCi0gICAgMjE5LCAxOCwgMSwgMjUwLCAyMTksIDYwLCAyMTksIDE4LCAxLCAyNTAsIDkyLCA2MCwgMjE5LCAxOCwgMSwgMjM1LCAxMzksIAotICAgIDYwLCAyMTksIDE4LCAxLCAyMjgsIDIzLCA2MCwgMjE5LCAxOCwgMSwgMjE2LCAxMTUsIDYwLCAyMTksIDE4LCAxLCAyMTYsIAotICAgIDEwNSwgNjAsIDIxOSwgMTgsIDEsIDI0OCwgODYsIDYwLCAyMTksIDE4LCAxLCAyNDgsIDcwLCA2MCwgMjE5LCAxOCwgMSwgCi0gICAgMjI4LCAxOTgsIDYwLCAyMTksIDE4LCAxLCAyMTgsIDUyLCA2MCwgMjE5LCAxOCwgMSwgMjE3LCAxNjEsIDYwLCAyMTksIDE4LCAKLSAgICAxLCAyNDgsIDE2NCwgNjAsIDIxOSwgMTgsIDEsIDI0NywgMjMyLCA2MCwgMjE5LCAxOCwgMSwgMjA1LCA2MCwgMjE5LCAxOCwgCi0gICAgMSwgMTkzLCA2MCwgMjE5LCAxOCwgMSwgMjI2LCAyMywgNjAsIDIxOSwgMTgsIDEsIDI1MiwgMTA3LCA2MCwgMjE5LCAxOCwgCi0gICAgMSwgMjUxLCAxOTUsIDYwLCAyMTksIDE4LCAxLCAxODgsIDYwLCAyMTksIDE4LCAxLCAyMTYsIDE0MSwgNjAsIDIxOSwgMTgsIAotICAgIDEsIDIxNiwgMTMzLCA2MCwgMjE5LCAxOCwgMSwgMjQ1LCAyNDksIDYwLCAyMTksIDE4LCAxLCAyNDUsIDI0NCwgNjAsIDIxOSwgCi0gICAgMTgsIDEsIDIxNCwgNDksIDYwLCAyMTksIDE4LCAxLCAyMTIsIDc1LCA2MCwgMjE5LCAxOCwgMSwgMjEyLCAxMDksIDYwLCAKLSAgICAyMTksIDE4LCAxLCAyNTUsIDY5LCA2MCwgMjE5LCAxOCwgMSwgMTg2LCA2MCwgMjE5LCAxOCwgMSwgMjAzLCA2MCwgMjE5LCAKLSAgICAxOCwgMSwgMjMzLCAxNTcsIDYwLCAyMTksIDE4LCAxLCAyMjEsIDI0LCA2MCwgMjE5LCAxOCwgMSwgMjE5LCAxNTcsIDYwLCAKLSAgICAyMTksIDE4LCAxLCAyMjIsIDIwMiwgNjAsIDIxOSwgMTgsIDEsIDE1OSwgNjAsIDIxOSwgMTgsIDEsIDYxLCA2MCwgMjE5LCAKLSAgICAxOCwgMSwgMjMzLCAyNDEsIDYwLCAyMTksIDE4LCAxLCAyNDQsIDQ2LCAyMTQsIDQ5LCA2MCwgMjE5LCAxOCwgMSwgMjQ0LCAKLSAgICA0NiwgMTg2LCA2MCwgMjE5LCAxOCwgMSwgMjQ0LCA0NiwgMjAzLCA2MCwgMjMzLCAyMzksIDIyMywgNTIsIDIzNCwgMTM4LCAKLSAgICA2MCwgMjMzLCAyMzksIDIyMywgNTIsIDIzNCwgMTM5LCAyNTAsIDI1NSwgMjMxLCAxNSwgMjUwLCAxOTUsIDYwLCAyNTAsIAotICAgIDE4NCwgNSwgMTA3LCAyNTEsIDI0NiwgNjAsIDI1MCwgMTg0LCA1LCAxNzcsIDI1MSwgMjQ2LCA2MCwgMjUwLCAxODQsIDUsIAotICAgIDI1MCwgMTg1LCAyMTcsIDIyOCwgNjAsIDI1MCwgMTg0LCA1LCAyMjIsIDEyNSwgMjU1LCA2OCwgNjAsIDE2LCAyNDYsIDQ2LCAKLSAgICAyNTEsIDU0LCA2MCwgMTYsIDIyNCwgMjIsIDIyMywgMTE5LCA2MCwgMTYsIDIyNiwgMjAyLCAyNDMsIDM5LCA2MCwgMTYsIAotICAgIDIyNCwgMjIsIDIyMywgMTIwLCAyMjMsIDE5NSwgMjQyLCAxMjEsIDYwLCAxNiwgMjI1LCAyNDQsIDE5MywgNjAsIDE2LCAKLSAgICAyMjgsIDE3MCwgMjUxLCA1NCwgNjAsIDE2LCAyMjgsIDE3MCwgMjUxLCA1NSwgMjI4LCAyLCAyNTUsIDY1LCA2MCwgMTYsIAotICAgIDIyOCwgMTcwLCAyNTEsIDU1LCAyNDIsIDk2LCAyNTUsIDY1LCA2MCwgMTYsIDIyOCwgMTcwLCAyNTEsIDU1LCAyNTAsIDI1NSwgCi0gICAgMjU1LCA2NSwgNjAsIDUsIDIyNCwgMjMsIDIzMCwgMzcsIDIyNCwgMjMsIDI0NywgMTEwLCA2MCwgNSwgMjI0LCAyMywgMjMwLCAKLSAgICAzNywgMjQyLCA5NSwgNjAsIDE1MiwgMjUxLCA1OCwgMjIwLCAxODMsIDI0MiwgMTkxLCAyMzEsIDU5LCAyMjMsIDE5NCwgNjAsIAotICAgIDE1MiwgMjMwLCAyMzMsIDIxMiwgMjQ3LCAyNDIsIDE5MSwgMjMxLCA1OSwgMjIzLCAxOTQsIDYwLCAxNTIsIDIyOCwgMiwgCi0gICAgMjE2LCAxMzAsIDYwLCAxNTIsIDcwLCAyNTEsIDc5LCAyMjMsIDExNCwgMjEyLCAyNDcsIDIzMSwgNTksIDIzMSwgMTU4LCAKLSAgICAxODgsIDYwLCAxNTIsIDI0OSwgMTg5LCAyNTEsIDc5LCAyMjMsIDExNCwgMjEyLCAyNDcsIDIzMSwgNTksIDIyMSwgMzAsIAotICAgIDE4OCwgMjIzLCAxNDcsIDIxOCwgMjAwLCA1MiwgMjMzLCA2OSwgMjE4LCAyMDAsIDUyLCAyMjMsIDE0NywgMjE4LCAyMDAsIAotICAgIDUsIDIsIDI0NywgNzIsIDIzMywgNjksIDIxOCwgMjAwLCA1LCAyLCAyNDcsIDcyLCA2MCwgMTUyLCAyMzMsIDc5LCAyMzEsIAotICAgIDE2MCwgMjIzLCA1NCwgNjAsIDE1MiwgMjE2LCAyMDcsIDIzMSwgMTYwLCAyMjMsIDU0LCA2NCwgMSwgMTgxLCA2NCwgMSwgCi0gICAgMjM0LCAxMzgsIDY0LCAxLCAyNDMsIDExMCwgNjQsIDEsIDI0MiwgMjI1LCA2NCwgMSwgMjI5LCAxNTksIDY0LCAxLCAyNTAsIAotICAgIDIxOSwgNjQsIDEsIDI1MCwgOTIsIDY0LCAxLCAyMzUsIDEzOSwgNjQsIDEsIDIzNSwgMTE1LCA2NCwgMSwgMjI4LCAyMywgCi0gICAgNjQsIDEsIDIyOCwgMTg3LCA2NCwgMSwgMjE2LCAxMTUsIDY0LCAxLCAyMTYsIDEwNSwgNjQsIDEsIDI0OCwgODYsIDY0LCAxLCAKLSAgICAyNDgsIDcwLCA2NCwgMSwgMjI4LCAxOTgsIDY0LCAxLCAyMTgsIDUyLCA2NCwgMSwgMjE3LCAxNjEsIDY0LCAxLCAyNDgsIAotICAgIDE2NCwgNjQsIDEsIDI0NywgMjMyLCA2NCwgMSwgMjA1LCA2NCwgMSwgMTkzLCA2NCwgMSwgMjI2LCAyMywgNjQsIDEsIDI1MiwgCi0gICAgMTA3LCA2NCwgMSwgMjUxLCAxOTUsIDY0LCAxLCAxODgsIDY0LCAxLCAxODYsIDY0LCAxLCAyMDMsIDY0LCAxLCAyMzMsIAotICAgIDE1NywgNjQsIDEsIDIxNCwgNDksIDY0LCAxLCAyMjIsIDIwMiwgNjQsIDEsIDE1OSwgNjQsIDEsIDIzMiwgMjEzLCA2NCwgMSwgCi0gICAgNjEsIDY0LCAxLCAyMjEsIDksIDYxLCA2NCwgMSwgNzIsIDY0LCAxLCAyMzYsIDI4LCA2NCwgMSwgNjksIDY0LCAxLCAyMTUsIAotICAgIDkyLCA2NCwgMSwgNzQsIDY0LCAxLCAyMzAsIDIyMSwgNzQsIDY0LCAxLCA3NSwgNjQsIDEsIDI1MywgMTA4LCA2NCwgMzAsIAotICAgIDUsIDIxOCwgMTUsIDI1NCwgMjMyLCA2NCwgMzAsIDUsIDI1NCwgMjMyLCA2NCwgMzAsIDUsIDcyLCA2NCwgMzAsIDUsIDIzNiwgCi0gICAgMjgsIDY0LCAzMCwgNSwgNjksIDY0LCAzMCwgNSwgMjE1LCA5MiwgNjQsIDMwLCA1LCA3NCwgNjQsIDMwLCA1LCAyNTQsIAotICAgIDEwOCwgNjQsIDMwLCA1LCAyMzAsIDIyMSwgMjM2LCAyOCwgNjQsIDMwLCA1LCAyMzAsIDIyMSwgNzUsIDY0LCAzMCwgNSwgCi0gICAgMTkxLCA0OSwgNjQsIDUsIDI1MywgMjQyLCA2NCwgNSwgNjIsIDU1LCA2NCwgNSwgMjE0LCAxMjgsIDY0LCA1LCAyMTQsIAotICAgIDEzMywgNjQsIDUsIDI1MywgMTUwLCA2NCwgMjQ5LCAxMzMsIDUsIDEzOCwgMTg2LCA2NCwgMjQ5LCAxMzMsIDUsIDEzOCwgCi0gICAgMjAzLCA2NCwgMjQ5LCAxMzMsIDUsIDEzOCwgMjE0LCA0OSwgNjQsIDI0OSwgMTMzLCA1LCAxMzgsIDE1OSwgNjQsIDEsIAotICAgIDI0MiwgMTA5LCAyMjIsIDIwMiwgNjQsIDIxLCAyMTIsIDc5LCA2NCwgMjEsIDExNiwgNjQsIDIxLCAxMDksIDY0LCAyMSwgCi0gICAgMTY2LCA2NCwgMjEsIDE2MywgNjQsIDIxLCAxODAsIDY0LCAyMSwgMTg5LCA2NCwgMjEsIDE5OCwgNjQsIDIxLCAxOTUsIDY0LCAKLSAgICAyMSwgMjAwLCA2NCwgNSwgMjMyLCAyMjEsIDIyMiwgOTEsIDY0LCA1LCAyMjIsIDkxLCA2NCwgMTYsIDIzMiwgMjA1LCA2NCwgCi0gICAgMTYsIDI0OSwgMTUyLCA2NCwgMTYsIDI1NCwgMTI1LCA2NCwgMTYsIDI0MywgMjQsIDY0LCAxLCAyMjEsIDI0LCA2NCwgMSwgCi0gICAgMjE5LCAxNTcsIDY0LCAxLCAxNjEsIDE0OSwgNjQsIDEsIDE2MSwgMjIzLCA4MiwgNjQsIDEsIDE2MSwgMTUwLCA2NCwgMSwgCi0gICAgMTYxLCAyMzIsIDIxNCwgNjQsIDMwLCA1LCAxNjEsIDE0OSwgNjQsIDMwLCA1LCAxNjEsIDIyMywgODIsIDY0LCAzMCwgNSwgCi0gICAgMTYxLCAxNTAsIDY0LCAzMCwgNSwgMTYxLCAyMzIsIDIxNCwgNjQsIDEsIDIzMCwgMjIxLCAyMjksIDE1OSwgNjQsIDEsIAotICAgIDIzMCwgMjIxLCAyMzUsIDExNSwgNjQsIDEsIDIzMCwgMjIxLCAyNTIsIDMxLCA2NCwgMSwgMjMwLCAyMjEsIDI1MiwgMjYsIAotICAgIDY0LCAyNDksIDEzMywgNSwgMjMwLCAyMjEsIDEzOCwgMjA1LCA2NCwgMjQ5LCAxMzMsIDUsIDIzMCwgMjIxLCAxMzgsIDE4OCwgCi0gICAgNjQsIDI0OSwgMTMzLCA1LCAyMzAsIDIyMSwgMTM4LCAyMzMsIDE1NywgNjQsIDEsIDIyMSwgMjksIDIzNCwgMjE4LCAyMjEsIAotICAgIDI0LCA2NCwgMzAsIDUsIDIyMSwgMjksIDIzNCwgMjE4LCAyNDUsIDIyLCA2NCwgMTYwLCAxNTIsIDIyMSwgMjksIDIzNCwgCi0gICAgMjE4LCAyNDEsIDIzMCwgNjQsIDE2MCwgMTUyLCAyMjEsIDI5LCAyMzQsIDIxOCwgMjM0LCAxODksIDIyNSwgMjUzLCA2NCwgCi0gICAgMSwgMjEzLCAyNDgsIDIyNCwgMjUyLCAyMzQsIDIxOCwgMjE3LCAxNjEsIDY0LCAxLCAyMTMsIDI0OCwgMjI0LCAyNTIsIAotICAgIDIzNCwgMjE4LCAyMjUsIDIsIDY0LCAzMCwgNSwgMjEzLCAyNDgsIDIyNCwgMjUyLCAyMzQsIDIxOCwgMjQ1LCAyMiwgNjQsIAotICAgIDMwLCA1LCAyMTMsIDI0OCwgMjI0LCAyNTIsIDIzNCwgMjE4LCAyMTUsIDE4MywgNjQsIDUsIDIxMywgMjQ4LCAyMjQsIDI1MiwgCi0gICAgMjM0LCAyMTgsIDIxNiwgMjQwLCA2NCwgNSwgMjEzLCAyNDgsIDIyNCwgMjUyLCAyMzQsIDIxOCwgMjE2LCAyMzksIDY0LCA1LCAKLSAgICAyMTMsIDI0OCwgMjI0LCAyNTIsIDIzNCwgMjE4LCAyMTYsIDIzOCwgNjQsIDUsIDIxMywgMjQ4LCAyMjQsIDI1MiwgMjM0LCAKLSAgICAyMTgsIDIxNiwgMjM3LCA2NCwgNSwgMjEzLCAyNDgsIDIyNCwgMjUyLCAyMzQsIDIxOCwgMjE2LCAyMzYsIDY0LCAxLCAyNDUsIAotICAgIDE3NSwgMjI0LCAyNTIsIDIzNCwgMjE4LCAyMjgsIDE5OCwgNjQsIDEsIDI0NSwgMTc1LCAyMjQsIDI1MiwgMjM0LCAyMTgsIAotICAgIDIxMiwgMTY4LCA2NCwgMSwgMjQ1LCAxNzUsIDIyNCwgMjUyLCAyMzQsIDIxOCwgMjQyLCAxOTMsIDY0LCAzMCwgNSwgMjQzLCAKLSAgICAzNSwgMjM0LCAyMTgsIDcyLCA2NCwgMzAsIDUsIDIzNCwgMTk0LCAyMjcsIDk5LCA2NCwgMzAsIDUsIDIzNCwgMTk0LCA2OSwgCi0gICAgNjQsIDMwLCA1LCAyMzQsIDE5NCwgMjQ1LCAxNjUsIDY0LCAxLCAyMjEsIDksIDE4MSwgNjQsIDEsIDIyMSwgOSwgMjM0LCAKLSAgICAxMzgsIDY0LCAxLCAyMjEsIDksIDI0MywgMTEwLCA2NCwgMSwgMjIxLCA5LCAyNTAsIDIxOSwgNjQsIDEsIDIyMSwgOSwgCi0gICAgMjEyLCAxMDksIDY0LCAxLCAyMjEsIDksIDIyOCwgMjMsIDY0LCAxLCAyMjEsIDksIDI0OCwgMTY0LCA2NCwgMSwgMjIxLCA5LCAKLSAgICAyMDUsIDY0LCAxLCAyMjEsIDksIDIyNiwgMjMsIDY0LCAxLCAyMjEsIDksIDI0NCwgMTY0LCA2NCwgMSwgMjIxLCA5LCAyNTIsIAotICAgIDEwNywgNjQsIDEsIDIyMSwgOSwgMjE3LCAxNjEsIDY0LCAxLCAyMjEsIDksIDE1OSwgNjQsIDI0OSwgMTMzLCA1LCAyMjEsIAotICAgIDksIDEzOCwgMjE0LCA0OSwgNjQsIDMwLCA1LCAyMjEsIDksIDI1NCwgMjMyLCA2NCwgMzAsIDUsIDIyMSwgOSwgNzQsIDY0LCAKLSAgICAzMCwgNSwgMjIxLCA5LCAxOTEsIDQ5LCA2NCwgMzAsIDUsIDIyMSwgOSwgNDAsIDIxMywgMTA1LCA2NCwgNSwgMjIxLCA5LCAKLSAgICAyMTYsIDIzOSwgNjQsIDUsIDIyMSwgOSwgMjE2LCAyMzgsIDY0LCA1LCAyMjEsIDksIDIxNiwgMjM2LCA2NCwgNSwgMjIxLCAKLSAgICA5LCAyMTYsIDIzNSwgNjQsIDUsIDIyMSwgOSwgMjQ5LCA5MSwgMjE2LCAyMzksIDY0LCA1LCAyMjEsIDksIDI0OSwgOTEsIAotICAgIDIxNiwgMjM4LCA2NCwgNSwgMjIxLCA5LCAyNDksIDkxLCAyNDUsIDExMSwgMjE2LCAyNDEsIDY0LCAxLCAyMjMsIDM5LCAKLSAgICAyMjYsIDE5MCwgMjQ0LCAxNjQsIDY0LCA1LCAyMjMsIDM5LCAyMjYsIDE5MCwgMjE2LCAyMzYsIDY0LCAyMjEsIDksIDIxLCAKLSAgICAyMTIsIDc5LCA2NCwgMjIxLCA5LCAyMSwgMTE2LCA2NCwgMjIxLCA5LCAyMSwgMTA5LCA2NCwgMjIxLCA5LCAyMSwgMTY2LCAKLSAgICA2NCwgMjIxLCA5LCAyMSwgMTYzLCA2NCwgMjIxLCA5LCAyMSwgMTgwLCA2NCwgMjIxLCA5LCAyMSwgMTg5LCA2NCwgMjIxLCAKLSAgICA5LCAyMSwgMTk4LCA2NCwgMjIxLCA5LCAyMSwgMTk1LCA2NCwgMjIxLCA5LCAyMSwgMjAwLCA2NCwgNSwgMjM0LCAxMzIsIAotICAgIDIxNiwgMjQwLCA2NCwgNSwgMjM0LCAxMzIsIDIxNiwgMjM4LCA2NCwgMzAsIDUsIDI1NCwgOTgsIDYxLCA2NCwgMzAsIDUsIAotICAgIDI1NCwgOTgsIDI1NCwgMTA4LCA2NCwgMTYsIDIyMSwgOSwgMTE2LCA2NCwgMTYsIDIyMSwgOSwgMjQ0LCAyNTMsIDEwMCwgNiwgCi0gICAgMSwgMjU0LCAzMiwgMTAwLCA2LCAxLCAyNTIsIDcxLCAxMDAsIDYsIDEsIDI0MywgODIsIDEwMCwgNiwgMSwgMjQ3LCA4MiwgCi0gICAgMTAwLCA2LCAxLCAyNDUsIDEwOCwgMTAwLCA2LCAxLCAyMTQsIDE0MSwgMTAwLCA2LCAxLCAyMTIsIDgyLCAxMDAsIDYsIDEsIAotICAgIDIxOCwgMTEsIDEwMCwgNiwgMSwgMjM1LCAyNTEsIDEwMCwgNiwgMSwgMjM0LCAyMzksIDEwMCwgNiwgMSwgMjMzLCAxMDQsIAotICAgIDEwMCwgNiwgMSwgMjMxLCAyNDgsIDEwMCwgNiwgMSwgMjMwLCAxNSwgMTAwLCA2LCAxLCAyMjcsIDYyLCAxMDAsIDYsIDEsIAotICAgIDIyNiwgMTQ1LCAxMDAsIDYsIDEsIDIxMiwgNzEsIDEwMCwgNiwgMSwgMjI0LCA2MSwgMTAwLCA2LCAxLCAyMjIsIDE1OSwgCi0gICAgMTAwLCA2LCAxLCAyMTgsIDEsIDEwMCwgNiwgMSwgMjE1LCAxNjAsIDEwMCwgNiwgMSwgMjI2LCAxNiwgMTAwLCA2LCAxLCAKLSAgICAyMzQsIDEyNywgMTAwLCA2LCAxLCAyNDIsIDIxNywgMTAwLCA2LCAxLCAyMjQsIDIxNywgMTAwLCA2LCAxLCAyMjAsIDIwMCwgCi0gICAgMTAwLCA2LCAxLCAyNTAsIDM0LCAxMDAsIDYsIDEsIDI1MCwgMTk1LCAxMDAsIDYsIDEsIDIzNSwgMTAzLCAxMDAsIDYsIDEsIAotICAgIDI0OSwgMjMzLCAxMDAsIDYsIDEsIDI1MCwgNzksIDEwMCwgNiwgMSwgMjEzLCAxNTEsIDEwMCwgNiwgMSwgMjM1LCAxMTMsIAotICAgIDEwMCwgNiwgMSwgMjQyLCAyNCwgMTAwLCA2LCAxLCAyNDEsIDIyMiwgMTAwLCA2LCAxLCAyNDEsIDE2MCwgMTAwLCA2LCAxLCAKLSAgICAyMTQsIDYsIDEwMCwgNiwgMSwgMjQxLCAyNDMsIDEwMCwgNiwgMSwgMjQxLCA1MSwgMTAwLCAxLCAyNTQsIDMyLCAxMDAsIDEsIAotICAgIDI1MiwgNzEsIDEwMCwgMSwgMjQzLCA4MiwgMTAwLCAxLCAyNDcsIDgyLCAxMDAsIDEsIDI0NSwgMTA4LCAxMDAsIDEsIDIxNCwgCi0gICAgMTQxLCAxMDAsIDEsIDIxMiwgODIsIDEwMCwgMSwgMjE4LCAxMSwgMTAwLCAxLCAyMzUsIDI1MSwgMTAwLCAxLCAyMzQsIAotICAgIDIzOSwgMTAwLCAxLCAyMzMsIDEwNCwgMTAwLCAxLCAyMzEsIDI0OCwgMTAwLCAxLCAyMzAsIDE1LCAxMDAsIDEsIDIyNywgCi0gICAgNjIsIDEwMCwgMSwgMjI2LCAxNDUsIDEwMCwgMSwgMjEyLCA3MSwgMTAwLCAxLCAyMjQsIDYxLCAxMDAsIDEsIDIyMiwgMTU5LCAKLSAgICAxMDAsIDEsIDIxOCwgMSwgMTAwLCAxLCAyMTUsIDE2MCwgMTAwLCAxLCAyMjYsIDE2LCAxMDAsIDEsIDIzNCwgMTI3LCAxMDAsIAotICAgIDEsIDI0MiwgMjE3LCAxMDAsIDEsIDIyNCwgMjE3LCAxMDAsIDEsIDIyMCwgMjAwLCAxMDAsIDEsIDI1MCwgMzQsIDEwMCwgMSwgCi0gICAgMjUwLCAxOTUsIDEwMCwgMSwgMjM1LCAxMDMsIDEwMCwgMSwgMjQ5LCAyMzMsIDEwMCwgMSwgMjUwLCA3OSwgMTAwLCAxLCAKLSAgICAyMTMsIDE1MSwgMTAwLCAxLCAyMzUsIDExMywgMTAwLCAxLCAyNDIsIDI0LCAxMDAsIDEsIDI0MSwgMjIyLCAxMDAsIDEsIAotICAgIDI0MSwgMTYwLCAxMDAsIDEsIDIxNCwgNiwgMTAwLCAxLCAyNDEsIDI0MywgMTAwLCAxLCAyNDEsIDUxLCAxMDAsIDEsIDI0NCwgCi0gICAgOTAsIDEwMCwgMSwgMjEyLCAyMzcsIDEwMCwgMSwgMjQ1LCAxMjIsIDEwMCwgMSwgMjE2LCA1OCwgMjQzLCA4MiwgMTAwLCAxLCAKLSAgICAyNTQsIDEwMywgMTAwLCAyMjYsIDE0MywgMjIxLCA1NywgNTksIDEsIDEwMCwgMjMwLCAxNSwgMjMsIDk3LCAyMzQsIDY3LCAKLSAgICAyMywgOTcsIDIxOSwgMTUwLCAyMywgOTcsIDIyOSwgNTcsIDIzLCA5NywgMjE3LCA1NSwgMjMsIDk3LCAyMTksIDEzOSwgMjMsIAotICAgIDk3LCAyMjMsIDE3OSwgMjMsIDk3LCAyMzEsIDMwLCAyMywgOTcsIDIyNSwgMjI3LCAyMywgOTcsIDIxOSwgMTQ3LCAyMywgCi0gICAgOTcsIDIyMCwgNzYsIDIzLCA5NywgMjE5LCAxNDQsIDIzLCA5NywgMjM2LCA1MSwgMjMsIDk3LCAyNDksIDIzOSwgMjMsIDk3LCAKLSAgICAyMTksIDE1NCwgMjMsIDk3LCAyNTAsIDQzLCAyMywgOTcsIDIzNCwgMTE2LCAyMywgOTcsIDIxNywgMTI2LCAyMywgOTcsIAotICAgIDIyNiwgNywgMjMsIDk3LCAyNDEsIDE1OCwgMjMsIDk3LCAyMjksIDUzLCAyMywgOTcsIDIxOSwgMTQ4LCAyMywgOTcsIDIyOSwgCi0gICAgNDcsIDIzLCA5NywgMjI5LCA1MSwgMjMsIDk3LCAyMTcsIDUyLCAyMywgOTcsIDIyMywgMTY3LCAyMywgOTcsIDIxOSwgMTQ2LCAKLSAgICAyMywgOTcsIDIyMywgMTc3LCAyMywgOTcsIDIzNCwgMjIzLCAyMywgOTcsIDIzMSwgMjMsIDIzLCA5NywgMjM0LCAyMjYsIAotICAgIDIzLCA5NywgMjI1LCAyMjIsIDIzLCA5NywgMjI1LCAyMjAsIDIzLCA5NywgMjI1LCAyMDgsIDIzLCA5NywgMjI1LCAyMTYsIAotICAgIDIzLCA5NywgMjI1LCAyMTQsIDIzLCA5NywgMjI1LCAyMTEsIDIzLCA5NywgMjI1LCAyMTMsIDIzLCA5NywgMjI1LCAyMTAsIAotICAgIDIzLCA5NywgMjI1LCAyMTUsIDIzLCA5NywgMjI1LCAyMjUsIDIzLCA5NywgMjI1LCAyMjYsIDIzLCA5NywgMjI1LCAyMDksIAotICAgIDIzLCA5NywgMjI1LCAyMTksIDIzLCA5NywgMjM0LCAyMjQsIDIzLCA5NywgMjM0LCAyMjIsIDIzLCA5NywgMjIwLCA2OSwgCi0gICAgMjMsIDk3LCAyMjAsIDY3LCAyMywgOTcsIDIyMCwgNTksIDIzLCA5NywgMjIwLCA2MiwgMjMsIDk3LCAyMjAsIDY4LCAyMywgCi0gICAgOTcsIDIyMCwgNjQsIDIzLCA5NywgMjIwLCA2MywgMjMsIDk3LCAyMjAsIDYxLCAyMywgOTcsIDIyMCwgNzIsIDIzLCA5NywgCi0gICAgMjIwLCA3NCwgMjMsIDk3LCAyMjAsIDc1LCAyMywgOTcsIDIyMCwgNzAsIDIzLCA5NywgMjIwLCA2MCwgMjMsIDk3LCAyMjAsIAotICAgIDY1LCAyMywgOTcsIDIyMCwgNzMsIDIzLCA5NywgMjUwLCAyNywgMjMsIDk3LCAyNTAsIDI1LCAyMywgOTcsIDI1MCwgMTAyLCAKLSAgICAyMywgOTcsIDI1MCwgMTAwLCAyMywgOTcsIDIyNiwgMTYwLCAyMywgOTcsIDIzNiwgNDYsIDIzLCA5NywgMjM2LCAzNywgMjMsIAotICAgIDk3LCAyMzYsIDQ1LCAyMywgOTcsIDIzNiwgNDIsIDIzLCA5NywgMjM2LCA0MCwgMjMsIDk3LCAyMzYsIDQ0LCAyMywgOTcsIAotICAgIDIxOSwgMTUxLCAyMywgOTcsIDIzNiwgNDksIDIzLCA5NywgMjM2LCA1MCwgMjMsIDk3LCAyMzYsIDM4LCAyMywgOTcsIDIzNiwgCi0gICAgNDMsIDIzLCA5NywgMjEzLCAxNywgMjMsIDk3LCAyNDksIDIzOCwgMjMsIDk3LCAyNTAsIDI4LCAyMywgOTcsIDI1MCwgMjYsIAotICAgIDIzLCA5NywgMjUwLCAxMDMsIDIzLCA5NywgMjUwLCAxMDEsIDIzLCA5NywgMjUwLCA0MSwgMjMsIDk3LCAyNTAsIDQyLCAyMywgCi0gICAgOTcsIDI1MCwgMjksIDIzLCA5NywgMjUwLCAxMDQsIDIzLCA5NywgMjI2LCA1LCAyMywgOTcsIDIzNCwgMjI1LCAyMywgOTcsIAotICAgIDIxOSwgMTUyLCAyMywgOTcsIDIxMywgMjMsIDIzLCA5NywgMjM0LCA1OCwgMjMsIDk3LCAyMjksIDQ5LCAyMywgOTcsIDIyOSwgCi0gICAgNTUsIDIzLCA5NywgMjI5LCA1NCwgMjMsIDk3LCAyMTcsIDQ5LCAyMywgOTcsIDI0NCwgNzIsIDIzLCAxMzUsIDI0NCwgNzIsIAotICAgIDIzLCAxMzUsIDYxLCAyMywgMTM1LCAyNTQsIDE0OCwgMjMsIDEzNSwgMTg2LCAyMywgMTM1LCAyMTMsIDgwLCAyMywgMTM1LCAKLSAgICAyNDUsIDc2LCAyMywgMTM1LCA3NCwgMjMsIDEzNSwgMjEzLCAyNywgMjMsIDEzNSwgMjEzLCAzOCwgMjMsIDEzNSwgNzUsIAotICAgIDIzLCAxMzUsIDIxNCwgNDksIDIzLCAxMzUsIDIxNCwgNDYsIDIzLCAxMzUsIDIyNywgOTksIDIzLCAxMzUsIDIxMiwgMjM1LCAKLSAgICAyMywgMTM1LCA2OSwgMjMsIDEzNSwgMjEzLCAyNTIsIDIzLCAxMzUsIDIxNCwgNiwgMjMsIDEzNSwgMjEzLCAyMzUsIDIzLCAKLSAgICAxMzUsIDIxMiwgMjAzLCAyMywgMTM1LCAyNDUsIDIyLCAyMywgMTM1LCAyMTIsIDI1NSwgMjMsIDEzNSwgNzIsIDIzLCAxMzUsIAotICAgIDI1NSwgNjAsIDIzLCAxMzUsIDI1NSwgNTksIDIzLCAxMzUsIDIxMywgOTQsIDIzLCAxMzUsIDIxMywgOTIsIDIzLCAxMzUsIAotICAgIDI0NSwgNzQsIDIzLCAxMzUsIDI0NSwgNzMsIDIzLCAxMzUsIDI0NSwgNzUsIDIzLCAxMzUsIDIxMywgMjYsIDIzLCAxMzUsIAotICAgIDIxMywgMjUsIDIzLCAxMzUsIDIyNywgMjA0LCAyMywgMTM1LCAyMjcsIDIwNSwgMjMsIDEzNSwgMjI3LCAxOTgsIDIzLCAKLSAgICAxMzUsIDIyNywgMjAzLCAyMywgMTM1LCAyMjcsIDIwMSwgMjMsIDEzNSwgMjEyLCAyMjksIDIzLCAxMzUsIDIxMiwgMjI4LCAKLSAgICAyMywgMTM1LCAyMTIsIDIyNywgMjMsIDEzNSwgMjEyLCAyMzAsIDIzLCAxMzUsIDIxMiwgMjMxLCAyMywgMTM1LCAyMTUsIAotICAgIDI1MiwgMjMsIDEzNSwgMjE1LCAyNTEsIDIzLCAxMzUsIDIxNSwgMjUwLCAyMywgMTM1LCAyMTUsIDI0NywgMjMsIDEzNSwgCi0gICAgMjE1LCAyNDgsIDIzLCAxMzUsIDIxMiwgMjAyLCAyMywgMTM1LCAyMTIsIDE5OSwgMjMsIDEzNSwgMjEyLCAyMDAsIDIzLCAKLSAgICAxMzUsIDIxMiwgMTk0LCAyMywgMTM1LCAyMTIsIDE5NSwgMjMsIDEzNSwgMjEyLCAxOTYsIDIzLCAxMzUsIDIxMiwgMTk4LCAKLSAgICAyMywgMTM1LCAyNDUsIDE2LCAyMywgMTM1LCAyNDUsIDE4LCAyMywgMTM1LCAyMTIsIDI1NCwgMjMsIDEzNSwgMjQwLCAxNDUsIAotICAgIDIzLCAxMzUsIDI0MCwgMTM3LCAyMywgMTM1LCAyNDAsIDE0MCwgMjMsIDEzNSwgMjQwLCAxMzgsIDIzLCAxMzUsIDI0MCwgCi0gICAgMTQyLCAyMywgMTM1LCAyNDAsIDE0NCwgMjMsIDEzNSwgMjUzLCAyMDQsIDIzLCAxMzUsIDI1MywgMjAxLCAyMywgMTM1LCAKLSAgICAyNTMsIDE5OSwgMjMsIDEzNSwgMjUzLCAyMDAsIDIzLCAxMzUsIDIxOSwgMTU1LCAyMywgMTM1LCAyNTUsIDYxLCAyMywgCi0gICAgMTM1LCAyMTMsIDkzLCAyMywgMTM1LCAyMTMsIDI0LCAyMywgMTM1LCAyMjcsIDIwMCwgMjMsIDEzNSwgMjI3LCAxOTksIDIzLCAKLSAgICA4OSwgMjM0LCA2NywgMjMsIDg5LCAyMTksIDE1MCwgMjMsIDg5LCAyMzQsIDYwLCAyMywgODksIDIyOSwgNTcsIDIzLCA4OSwgCi0gICAgMjI5LCA1NSwgMjMsIDg5LCAyMjksIDU0LCAyMywgODksIDIxNywgNTUsIDIzLCA4OSwgMjIzLCAxNzksIDIzLCA4OSwgMjIzLCAKLSAgICAxNzQsIDIzLCA4OSwgMjIzLCAxNzEsIDIzLCA4OSwgMjIzLCAxNjQsIDIzLCA4OSwgMjIzLCAxNTksIDIzLCA4OSwgMjIzLCAKLSAgICAxNTQsIDIzLCA4OSwgMjIzLCAxNjUsIDIzLCA4OSwgMjIzLCAxNzcsIDIzLCA4OSwgMjMxLCAzMCwgMjMsIDg5LCAyMjUsIAotICAgIDIyNywgMjMsIDg5LCAyMjUsIDIxNiwgMjMsIDg5LCAyMjAsIDc2LCAyMywgODksIDIxOSwgMTQ0LCAyMywgODksIDIzNiwgCi0gICAgNTEsIDIzLCA4OSwgMjQ5LCAyMzksIDIzLCA4OSwgMjUwLCA0MywgMjMsIDg5LCAyMzQsIDExNiwgMjMsIDg5LCAyMTcsIAotICAgIDEyNiwgMjMsIDg5LCAyMjYsIDcsIDIzLCA4OSwgMjQxLCAxNTgsIDIzLCA4OSwgMjM0LCA2MSwgMjMsIDg5LCAyMzQsIDU5LCAKLSAgICAyMywgODksIDIyOSwgNTMsIDIzLCA4OSwgMjI5LCA0NywgMjMsIDg5LCAyMjksIDQ5LCAyMywgODksIDIyOSwgNTIsIDIzLCAKLSAgICA4OSwgMjI5LCA0OCwgMjMsIDg5LCAyMTcsIDUyLCAyMywgODksIDIxNywgNDksIDIzLCA4OSwgMjIzLCAxNzIsIDIzLCA4OSwgCi0gICAgMjIzLCAxNjcsIDIzLCA4OSwgMjIzLCAxNTMsIDIzLCA4OSwgMjIzLCAxNTIsIDIzLCA4OSwgMjE5LCAxNDYsIDIzLCA4OSwgCi0gICAgMjIzLCAxNjksIDIzLCA4OSwgMjIzLCAxNjgsIDIzLCA4OSwgMjIzLCAxNjEsIDIzLCA4OSwgMjIzLCAxNjMsIDIzLCA4OSwgCi0gICAgMjIzLCAxNzYsIDIzLCA4OSwgMjIzLCAxNTYsIDIzLCA4OSwgMjIzLCAxNjYsIDIzLCA4OSwgMjIzLCAxNzUsIDIzLCA4OSwgCi0gICAgMjIzLCAxNTEsIDIzLCA4OSwgMjMxLCAyNiwgMjMsIDg5LCAyMzEsIDIxLCAyMywgODksIDIzMSwgMjMsIDIzLCA4OSwgMjMxLCAKLSAgICAyMCwgMjMsIDg5LCAyMzEsIDE4LCAyMywgODksIDIzMSwgMjQsIDIzLCA4OSwgMjMxLCAyOSwgMjMsIDg5LCAyMzEsIDI3LCAKLSAgICAyMywgODksIDIzNCwgMjI2LCAyMywgODksIDIyNSwgMjE4LCAyMywgODksIDIyNSwgMjE5LCAyMywgODksIDIyNSwgMjI0LCAKLSAgICAyMywgODksIDIzNCwgMjI0LCAyMywgODksIDIyMCwgNjksIDIzLCA4OSwgMjIwLCA1OSwgMjMsIDg5LCAyMjAsIDYyLCAyMywgCi0gICAgODksIDIyMCwgNjQsIDIzLCA4OSwgMjI2LCAxNjAsIDIzLCA4OSwgMjM2LCA0NiwgMjMsIDg5LCAyMzYsIDM5LCAyMywgODksIAotICAgIDIxOSwgMTUxLCAyMywgODksIDIzNiwgNDcsIDIzLCA4OSwgMjEzLCAxNywgMjMsIDg5LCAyMTMsIDEzLCAyMywgODksIDIxMywgCi0gICAgMTQsIDIzLCA4OSwgMjI2LCA1LCAyMywgODksIDIzNCwgMjI1LCAyMywgODksIDI0MSwgMTU2LCAyMywgODksIDI0MSwgMTU0LCAKLSAgICAyMywgODksIDI0MSwgMTU3LCAyMywgODksIDI0MSwgMTU1LCAyMywgODksIDIxMywgMjMsIDIzLCA4OSwgMjM0LCA2MywgMjMsIAotICAgIDg5LCAyMzQsIDYyLCAyMywgODksIDIzNCwgNjYsIDIzLCA4OSwgMjM0LCA2NCwgMjMsIDg5LCAyMzQsIDY1LCAyMywgODksIAotICAgIDIxOSwgMTQ4LCAyOCwgNCwgMTU5LCAyOCwgNCwgMjQwLCAyMTIsIDI4LCA0LCAyNDEsIDE2NSwgMjgsIDQsIDI0MiwgMjcsIAotICAgIDI4LCA0LCAyNDEsIDIwNCwgMjgsIDQsIDI0MSwgMjIyLCAyOCwgNCwgMjQxLCA1NCwgMjgsIDQsIDI0MSwgNTMsIDI4LCA0LCAKLSAgICAyMzMsIDE1NywgMjgsIDQsIDIzMiwgMTU2LCAyOCwgNCwgMjMzLCAxMywgMjgsIDQsIDIzMywgMTU2LCAyOCwgNCwgMjMzLCAKLSAgICA3NCwgMjgsIDQsIDIzMywgODIsIDI4LCA0LCAyMzIsIDIwOCwgMjgsIDQsIDIzMiwgMTI5LCAyOCwgNCwgMjQxLCAxNzQsIAotICAgIDI4LCA0LCAyNDEsIDE2OCwgMjgsIDQsIDI0MSwgMTcwLCAyOCwgNCwgMjQxLCAxNzMsIDI4LCA0LCAyNDEsIDE3MSwgMjgsIAotICAgIDQsIDI0MSwgMTcyLCAyOCwgNCwgMjQxLCAxNjksIDI4LCA0LCAyNDEsIDE2NywgMjgsIDQsIDE4OCwgMjgsIDQsIDIzMCwgCi0gICAgMTcyLCAyOCwgNCwgMjMxLCA0MiwgMjgsIDQsIDIzMiwgNDEsIDI4LCA0LCAyMzEsIDE0NSwgMjgsIDQsIDIzMSwgMTU2LCAKLSAgICAyOCwgNCwgMjMwLCAyMzEsIDI4LCA0LCAyMzAsIDExNCwgMjgsIDQsIDIxOCwgMTEwLCAyOCwgNCwgMjE4LCAxMDQsIDI4LCAKLSAgICA0LCAyMTgsIDEwNiwgMjgsIDQsIDIxOCwgMTA5LCAyOCwgNCwgMjE4LCAxMDcsIDI4LCA0LCAyMTgsIDEwOCwgMjgsIDQsIAotICAgIDIxOCwgMTA1LCAyOCwgNCwgMjE4LCAxMDMsIDI4LCA0LCAyMDMsIDI4LCA0LCAyMjMsIDUxLCAyOCwgNCwgMjIzLCAxODgsIAotICAgIDI4LCA0LCAyMjQsIDc0LCAyOCwgNCwgMjI0LCAxLCAyOCwgNCwgMjI0LCAyMSwgMjgsIDQsIDIyMywgMTEyLCAyOCwgNCwgCi0gICAgMjIzLCAyMSwgMjgsIDQsIDIyMiwgMjAyLCAyOCwgNCwgMjE5LCAyNywgMjgsIDQsIDIyMCwgMTE3LCAyOCwgNCwgMjIyLCAKLSAgICAyMDAsIDI4LCA0LCAyMjIsIDg5LCAyOCwgNCwgMjIyLCAxMDAsIDI4LCA0LCAyMTksIDI0MiwgMjgsIDQsIDIxOCwgMTk4LCAKLSAgICAyOCwgNCwgMjIxLCAyNCwgMjgsIDQsIDIyMCwgMTUwLCAyOCwgNCwgMjIwLCAyMTIsIDI4LCA0LCAyMjEsIDIwLCAyOCwgNCwgCi0gICAgMjIwLCAyNDEsIDI4LCA0LCAyMjAsIDI0MywgMjgsIDQsIDIyMCwgMTg3LCAyOCwgNCwgMjIwLCAxMzQsIDI4LCA0LCAyMjQsIAotICAgIDIzMiwgMjgsIDQsIDIyNCwgMTc1LCAyOCwgNCwgMjI0LCAxOTgsIDI4LCA0LCAyMjQsIDIzMSwgMjgsIDQsIDIyNCwgMjEyLCAKLSAgICAyOCwgNCwgMjI0LCAyMTMsIDI4LCA0LCAyMjQsIDE4NywgMjgsIDQsIDIyNCwgMTg2LCAyOCwgNCwgMjI0LCAxMzEsIDI4LCAKLSAgICA0LCAyMjQsIDEyNywgMjgsIDQsIDIyNCwgMTMwLCAyOCwgNCwgMjI0LCAxMjgsIDI4LCA0LCAyMjQsIDEyOSwgMjgsIDQsIAotICAgIDIyNCwgMjEwLCAyOCwgNCwgMjI0LCAyMDQsIDI4LCA0LCAyMjQsIDIwNiwgMjgsIDQsIDIyNCwgMjA5LCAyOCwgNCwgMjI0LCAKLSAgICAyMDcsIDI4LCA0LCAyMjQsIDIwOCwgMjgsIDQsIDIyNCwgMjA1LCAyOCwgNCwgMjI0LCAyMDMsIDI4LCA0LCAyMjQsIDE5OSwgCi0gICAgMjgsIDQsIDIyNCwgMjAyLCAyOCwgNCwgMjI0LCAyMDAsIDI4LCA0LCAyMjQsIDIwMSwgMjgsIDQsIDI1MiwgMTA3LCAyOCwgCi0gICAgNCwgMjUxLCA1NCwgMjgsIDQsIDI1MSwgMTg0LCAyOCwgNCwgMjUyLCAxMDYsIDI4LCA0LCAyNTEsIDI0MiwgMjgsIDQsIAotICAgIDI1MSwgMjUxLCAyOCwgNCwgMjUxLCAxMjgsIDI4LCA0LCAyNTEsIDEyLCAyOCwgNCwgMjE1LCAxLCAyOCwgNCwgMjE0LCA5OSwgCi0gICAgMjgsIDQsIDIxNCwgMTU0LCAyOCwgNCwgMjE1LCAwLCAyOCwgNCwgMjE0LCAyMjcsIDI4LCA0LCAyMTQsIDIzMiwgMjgsIDQsIAotICAgIDIxNCwgMTE5LCAyOCwgNCwgMjE0LCA5MSwgMjgsIDQsIDIxOCwgNTIsIDI4LCA0LCAyMTYsIDgyLCAyOCwgNCwgMjE3LCA3MSwgCi0gICAgMjgsIDQsIDIxOCwgNDksIDI4LCA0LCAyMTcsIDIxOSwgMjgsIDQsIDIxNywgMjI5LCAyOCwgNCwgMTA4LCAyOCwgNCwgMjE2LCAKLSAgICA0NSwgMjgsIDQsIDI1MCwgMjE5LCAyOCwgNCwgMjQ5LCA1MywgMjgsIDQsIDI0OSwgMjQ0LCAyOCwgNCwgMjUwLCAyMTgsIAotICAgIDI4LCA0LCAyNTAsIDExNiwgMjgsIDQsIDI1MCwgMTI0LCAyOCwgNCwgMjQ5LCAxNzUsIDI4LCA0LCAyNDksIDI0LCAyOCwgNCwgCi0gICAgMjEzLCAxNTMsIDI4LCA0LCAyMTMsIDEyOSwgMjgsIDQsIDIxMywgMTQ1LCAyOCwgNCwgMjEzLCAxNTIsIDI4LCA0LCAyMTMsIAotICAgIDE0OSwgMjgsIDQsIDIxMywgMTUwLCAyOCwgNCwgMjEzLCAxMzYsIDI4LCA0LCAyMTMsIDEzNSwgMjgsIDQsIDIxMywgMTI0LCAKLSAgICAyOCwgNCwgMjEzLCAxMjAsIDI4LCA0LCAyMTMsIDEyMywgMjgsIDQsIDIxMywgMTIxLCAyOCwgNCwgMjEzLCAxMjIsIDI4LCAKLSAgICA0LCAyMDUsIDI4LCA0LCAyMjgsIDkyLCAyOCwgNCwgMjI5LCA2NCwgMjgsIDQsIDIzMCwgNDMsIDI4LCA0LCAyMjksIDE4NCwgCi0gICAgMjgsIDQsIDIyOSwgMTg3LCAyOCwgNCwgMjI4LCAxODUsIDI4LCA0LCAyMjgsIDMxLCAyOCwgNCwgMjI4LCAyMywgMjgsIDQsIAotICAgIDIyNywgMjQ3LCAyOCwgNCwgMjI4LCAxMCwgMjgsIDQsIDIyOCwgMjIsIDI4LCA0LCAyMjgsIDE2LCAyOCwgNCwgMjI4LCAxNywgCi0gICAgMjgsIDQsIDIyNywgMjUzLCAyOCwgNCwgMjI3LCAyMzksIDI4LCA0LCAyNDIsIDE1NiwgNjEsIDI4LCA0LCAyNDIsIDE1NiwgCi0gICAgNjksIDI4LCA0LCAyNDIsIDE1NiwgNzIsIDI4LCA0LCAyNDIsIDE1NiwgMjU0LCAyMzIsIDI4LCA0LCAyNDIsIDE1NiwgMjQ1LCAKLSAgICAxNjUsIDI4LCA0LCAyNDIsIDE1NiwgNzQsIDI4LCA0LCAyNDIsIDE1NiwgNzUsIDI4LCA0LCAyNDIsIDE1NiwgMjE0LCA0OSwgCi0gICAgMjgsIDQsIDE4MSwgMjgsIDQsIDIzMywgMjM4LCAyOCwgNCwgMjM0LCAxMDEsIDI4LCA0LCAyMzUsIDE0LCAyOCwgNCwgMjM0LCAKLSAgICAxODcsIDI4LCA0LCAyMzQsIDE4OCwgMjgsIDQsIDIzNCwgMzcsIDI4LCA0LCAyMzQsIDM2LCAyOCwgNCwgMjMzLCAyMDQsIAotICAgIDI4LCA0LCAyMzMsIDE5OCwgMjgsIDQsIDIzMywgMjAzLCAyOCwgNCwgMjMzLCAxOTksIDI4LCA0LCAyMzMsIDIwMCwgMjgsIAotICAgIDQsIDIzMywgMTkzLCAyOCwgNCwgMjMzLCAxODcsIDI4LCA0LCAyMzMsIDE4OSwgMjgsIDQsIDIzMywgMTkyLCAyOCwgNCwgCi0gICAgMjMzLCAxOTAsIDI4LCA0LCAyMzMsIDE5MSwgMjgsIDQsIDIzMywgMTg4LCAyOCwgNCwgMjMzLCAxODYsIDI4LCA0LCAyMzMsIAotICAgIDE4MiwgMjgsIDQsIDIzMywgMTg1LCAyOCwgNCwgMjMzLCAxODMsIDI4LCA0LCAyMzMsIDE4NCwgMjgsIDQsIDIxNCwgNDksIAotICAgIDI4LCA0LCAyMTMsIDE4MywgMjgsIDQsIDIxMywgMjM1LCAyOCwgNCwgMjE0LCA0OCwgMjgsIDQsIDIxNCwgMSwgMjgsIDQsIAotICAgIDIxNCwgNiwgMjgsIDQsIDIxMywgMjE0LCAyOCwgNCwgMjEzLCAyMTMsIDI4LCA0LCAyMjYsIDE1LCA2MSwgMjgsIDQsIDIyNiwgCi0gICAgMTUsIDY5LCAyOCwgNCwgMjI2LCAxNSwgNzIsIDI4LCA0LCAyMjYsIDE1LCAyNTQsIDIzMiwgMjgsIDQsIDIyNiwgMTUsIAotICAgIDI0NSwgMTY1LCAyOCwgNCwgMjI2LCAxNSwgNzQsIDI4LCA0LCAyMjYsIDE1LCA3NSwgMjgsIDQsIDIxMiwgMTA5LCAyOCwgNCwgCi0gICAgMjEyLCA4LCAyOCwgNCwgMjEyLCAzNywgMjgsIDQsIDIxMiwgMTA4LCAyOCwgNCwgMjEyLCA4NSwgMjgsIDQsIDIxMiwgODcsIAotICAgIDI4LCA0LCAyMTIsIDE2LCAyOCwgNCwgMjExLCAyNTEsIDI4LCA0LCAyMTIsIDc1LCAyOCwgNCwgMjEyLCA1NSwgMjgsIDQsIAotICAgIDIxMiwgNjIsIDI4LCA0LCAyMTIsIDc0LCAyOCwgNCwgMjEyLCA2NiwgMjgsIDQsIDIxMiwgNjcsIDI4LCA0LCAyMTIsIDYwLCAKLSAgICAyOCwgNCwgMjEyLCA0NiwgMjgsIDQsIDE4NiwgMjgsIDQsIDIxMiwgMjAzLCAyOCwgNCwgMjEyLCAyNTUsIDI4LCA0LCAyMTMsIAotICAgIDkxLCAyOCwgNCwgMjEzLCAzNSwgMjgsIDQsIDIxMywgMzgsIDI4LCA0LCAyMTIsIDIzNSwgMjgsIDQsIDIxMiwgMjI2LCAyOCwgCi0gICAgNCwgMjQ4LCAxNjQsIDI4LCA0LCAyNDYsIDMzLCAyOCwgNCwgMjQ3LCAyMTEsIDI4LCA0LCAyNDgsIDE2MywgMjgsIDQsIAotICAgIDI0OCwgMjgsIDI4LCA0LCAyNDgsIDQxLCAyOCwgNCwgMjQ3LCA5OSwgMjgsIDQsIDI0NiwgMiwgMjgsIDQsIDI0OCwgODYsIAotICAgIDI4LCA0LCAyNDgsIDUxLCAyOCwgNCwgMjQ4LCA2MywgMjgsIDQsIDI0OCwgODUsIDI4LCA0LCAyNDgsIDczLCAyOCwgNCwgCi0gICAgMjQ4LCA3NCwgMjgsIDQsIDI0OCwgNTYsIDI4LCA0LCAyNDgsIDQyLCAyOCwgNCwgMjM1LCAxMzksIDI4LCA0LCAyMzUsIDU0LCAKLSAgICAyOCwgNCwgMjM1LCAxMTAsIDI4LCA0LCAyMzUsIDEzOCwgMjgsIDQsIDIzNSwgMTI1LCAyOCwgNCwgMjM1LCAxMjcsIDI4LCAKLSAgICA0LCAyMzUsIDcxLCAyOCwgNCwgMjM1LCAzNSwgMjgsIDQsIDI0MywgMTEwLCAyOCwgNCwgMjQyLCA5MiwgMjgsIDQsIDI0MiwgCi0gICAgMTkwLCAyOCwgNCwgMjQzLCAxMDcsIDI4LCA0LCAyNDMsIDMxLCAyOCwgNCwgMjQzLCAzOCwgMjgsIDQsIDI0MiwgMTUwLCAKLSAgICAyOCwgNCwgMjQyLCAxNDksIDI4LCA0LCAyNDIsIDU5LCAyOCwgNCwgMjQyLCA1NSwgMjgsIDQsIDI0MiwgNTgsIDI4LCA0LCAKLSAgICAyNDIsIDU2LCAyOCwgNCwgMjQyLCA1NywgMjgsIDQsIDI0MywgNSwgMjgsIDQsIDI0MiwgMjQxLCAyOCwgNCwgMjQyLCAyNTEsIAotICAgIDI4LCA0LCAyNDMsIDQsIDI4LCA0LCAyNDIsIDI1NSwgMjgsIDQsIDI0MywgMCwgMjgsIDQsIDI0MiwgMjQ1LCAyOCwgNCwgCi0gICAgMjQyLCAyMzAsIDI4LCA0LCAyMTcsIDE2MSwgMjgsIDQsIDIxNywgOTAsIDI4LCA0LCAyMTcsIDEyOCwgMjgsIDQsIDIxNywgCi0gICAgMTYwLCAyOCwgNCwgMjE3LCAxNDcsIDI4LCA0LCAyMTcsIDE0OCwgMjgsIDQsIDIxNywgMTA5LCAyOCwgNCwgMjE3LCA4MiwgCi0gICAgMjgsIDQsIDI1MCwgOTIsIDI4LCA0LCAyNTAsIDYsIDI4LCA0LCAyNTAsIDQ3LCAyOCwgNCwgMjUwLCA5MSwgMjgsIDQsIAotICAgIDI1MCwgNjQsIDI4LCA0LCAyNTAsIDY3LCAyOCwgNCwgMjUwLCAyMywgMjgsIDQsIDI0OSwgMjUxLCAyOCwgNCwgMjI2LCAyMywgCi0gICAgMjgsIDQsIDIyNSwgMjQ2LCAyOCwgNCwgMjI2LCA5LCAyOCwgNCwgMjI2LCAyMiwgMjgsIDQsIDIyNiwgMTEsIDI4LCA0LCAKLSAgICAyMjYsIDEyLCAyOCwgNCwgMjI1LCAyNTMsIDI4LCA0LCAyMjUsIDI0MiwgMjgsIDQsIDIxNiwgMTQxLCAyOCwgNCwgMjE2LCAKLSAgICAxMjIsIDI4LCA0LCAyMTYsIDEyNSwgMjgsIDQsIDIxNiwgMTQwLCAyOCwgNCwgMjE2LCAxMzUsIDI4LCA0LCAyMTYsIDEzNiwgCi0gICAgMjgsIDQsIDIxNiwgMTI0LCAyOCwgNCwgMjE2LCAxMjAsIDI4LCA0LCAyMTYsIDUsIDI4LCA0LCAyMTUsIDI1MywgMjgsIDQsIAotICAgIDIxNiwgMSwgMjgsIDQsIDIxNiwgNCwgMjgsIDQsIDIxNiwgMiwgMjgsIDQsIDIxNiwgMywgMjgsIDQsIDIxNSwgMjU1LCAyOCwgCi0gICAgNCwgMjE1LCAyNTQsIDI4LCA0LCAyNDQsIDE2NCwgMjgsIDQsIDI0MywgMjA1LCAyOCwgNCwgMjQ0LCA5MCwgMjgsIDQsIAotICAgIDI0NCwgMTYzLCAyOCwgNCwgMjQ0LCAxMTYsIDI4LCA0LCAyNDQsIDEyMywgMjgsIDQsIDI0NCwgMTIsIDI4LCA0LCAyNDMsIAotICAgIDE4OCwgMjgsIDQsIDE5MywgMjgsIDQsIDIyNSwgMzUsIDI4LCA0LCAyMjUsIDI0MCwgMjgsIDQsIDIyNiwgMjEzLCAyOCwgNCwgCi0gICAgMjI2LCA4NiwgMjgsIDQsIDIyNiwgOTYsIDI4LCA0LCAyMjUsIDE1MCwgMjgsIDQsIDIyNSwgMiwgMjgsIDQsIDIyMywgMTEsIAotICAgIDI4LCA0LCAyMzAsIDEwMywgMjgsIDQsIDI0MywgMTgyLCAyOCwgMzcsIDI0MywgMjksIDI0LCAzMCwgMjMzLCA0NywgNzcsIAotICAgIDI4LCAzNywgMzAsIDIzMywgNDcsIDc3LCAyOCwgMzcsIDI0MywgMjksIDc3LCAyOCwgMjIyLCA5MiwgNzcsIDI4LCAyMTMsIAotICAgIDE5NSwgMjgsIDI0MywgMjAwLCAyMTksIDY5LCAyOCwgMjQ5LCAxNTcsIDI4LCAyMjEsIDcwLCAyOCwgMjQ5LCAxNjQsIDI4LCAKLSAgICAyMjUsIDc5LCAyNDksIDE2NCwgMjgsIDIyNCwgMTU4LCA3NywgMjgsIDIyNiwgMTQzLCAyMjEsIDU3LCAyOCwgMjEsIDExNiwgCi0gICAgMjgsIDIxLCAxMDksIDI4LCAyMSwgMTY2LCAyOCwgMjEsIDE2MywgMjgsIDIxLCAxODAsIDI4LCAyMSwgMTg5LCAyOCwgMjEsIAotICAgIDE5OCwgMjgsIDIxLCAxOTUsIDI4LCAyMSwgMjAwLCAyOCwgNTAsIDIxNywgMjAwLCAyOCwgNTAsIDIxNiwgMzgsIDI4LCA1MCwgCi0gICAgMjE3LCAxMTUsIDI4LCA1MCwgMjQzLCAyNDAsIDI4LCA1MCwgMjQ0LCA4MywgMjgsIDUwLCAyMjAsIDM5LCAyOCwgNTAsIAotICAgIDIyMSwgMzcsIDI4LCA1MCwgMjQ1LCAxNDEsIDI4LCA1MCwgMjI5LCAyNiwgMjgsIDUwLCAyNDAsIDIwMCwgMjgsIDUwLCAKLSAgICAyMTcsIDIwMSwgMjE3LCAxMDAsIDI4LCA0LCAyMjIsIDk2LCAyMzAsIDExNCwgMjgsIDQsIDIzMCwgMTEwLCAyOCwgNCwgCi0gICAgMjMwLCAxMTEsIDI4LCA0LCAyMzAsIDExMiwgMjgsIDQsIDIyMiwgOTYsIDI1MSwgMTIsIDI4LCA0LCAyNTEsIDksIDI4LCA0LCAKLSAgICAyNTEsIDEwLCAyOCwgNCwgMjUxLCAxMSwgMjgsIDQsIDIyMiwgOTYsIDI0MywgMTg4LCAyOCwgNCwgMjQzLCAxODQsIDI4LCAKLSAgICA0LCAyNDMsIDE4NSwgMjgsIDQsIDI0MywgMTg2LCAyOCwgNCwgMjIyLCA5NiwgMjI1LCAyLCAyOCwgNCwgMjI0LCAyNTQsIAotICAgIDI4LCA0LCAyMjQsIDI1NSwgMjgsIDQsIDIyNSwgMCwgMjgsIDIxNiwgMjQyLCAxNTIsIDIxMiwgMjM4LCAyOCwgMjE2LCAKLSAgICAyNDIsIDE1MiwgMjQ3LCAyNDgsIDI4LCAyMTYsIDI0MiwgMTUyLCAyMjMsIDEzNSwgMjgsIDIxNiwgMjQyLCAxNTIsIDIyMCwgCi0gICAgMTc1LCAyMjMsIDEzNSwgMjgsIDIxNiwgMjQyLCAxNTIsIDI0NywgMTg3LCAyOCwgMjE2LCAyNDIsIDE1MiwgMjM0LCAxNzAsIAotICAgIDI4LCAyMTYsIDI0MiwgMTUyLCAyNTAsIDMxLCAyOCwgMjE2LCAyNDIsIDE1MiwgMjQxLCAxNjIsIDI4LCAyMTYsIDI0MiwgCi0gICAgMTUyLCAyNDcsIDI0NywgMjgsIDIxNiwgMjQyLCAxNTIsIDIzMywgMjE1LCAxNTgsIDEsIDYxLCAxNTgsIDEsIDc0LCAxNTgsIAotICAgIDEsIDcyLCAxNTgsIDEsIDc1LCAxNTgsIDEsIDY5LCAxNTgsIDEsIDIxNSwgNzksIDE1OCwgMSwgMjQzLCAxMTAsIDE1OCwgMSwgCi0gICAgMTgxLCAxNTgsIDEsIDI0MywgMzgsIDE1OCwgMSwgMjQyLCAxOTAsIDE1OCwgMSwgMjQyLCAxNTAsIDE1OCwgMSwgMjQyLCAKLSAgICA5MiwgMTU4LCAxLCAyNDIsIDYwLCAxNTgsIDEsIDE1OSwgMTU4LCAxLCAyNDEsIDIyMiwgMTU4LCAxLCAyNDEsIDE2NSwgCi0gICAgMTU4LCAxLCAyNDEsIDU0LCAxNTgsIDEsIDI0MCwgMjEyLCAxNTgsIDEsIDI0MCwgMTkzLCAxNTgsIDEsIDIzMywgMTU3LCAKLSAgICAxNTgsIDEsIDIzMywgODIsIDE1OCwgMSwgMjMzLCAxMywgMTU4LCAxLCAyMzIsIDIwOCwgMTU4LCAxLCAyMzIsIDE1NiwgCi0gICAgMTU4LCAxLCAyMzIsIDEzMCwgMTU4LCAxLCAxODgsIDE1OCwgMSwgMjMxLCAxNTYsIDE1OCwgMSwgMjMxLCA0MiwgMTU4LCAxLCAKLSAgICAyMzAsIDIzMSwgMTU4LCAxLCAyMzAsIDE3MiwgMTU4LCAxLCAyMDUsIDE1OCwgMSwgMjQxLCA3NiwgMTU4LCAxLCAyMzAsIAotICAgIDMxLCAxNTgsIDEsIDIyOSwgMTg3LCAxNTgsIDEsIDIyOSwgNjQsIDE1OCwgMSwgMjI4LCAxODUsIDE1OCwgMSwgMjI4LCA5MiwgCi0gICAgMTU4LCAxLCAyMjgsIDMzLCAxNTgsIDEsIDIyNCwgMTc0LCAxNTgsIDEsIDIyNCwgMTYxLCAxNTgsIDEsIDIyNCwgMTU0LCAKLSAgICAxNTgsIDEsIDIyNCwgMTQ2LCAxNTgsIDEsIDIyNCwgMTM1LCAxNTgsIDEsIDIyNCwgMTMzLCAxNTgsIDEsIDIyMiwgMjAyLCAKLSAgICAxNTgsIDEsIDE5NywgMTU4LCAxLCAyMjIsIDEwMCwgMTU4LCAxLCAyMjAsIDExNywgMTU4LCAxLCAyMTksIDI0MiwgMTU4LCAKLSAgICAxLCAyMTksIDI3LCAxNTgsIDEsIDIxOCwgMjAzLCAxNTgsIDEsIDI0OCwgMTY0LCAxNTgsIDEsIDIxOCwgNTIsIDE1OCwgMSwgCi0gICAgMjQ4LCA0MSwgMTU4LCAxLCAyMTcsIDIyOSwgMTU4LCAxLCAyNDcsIDIxMSwgMTU4LCAxLCAyMTcsIDcxLCAxNTgsIDEsIAotICAgIDI0NywgOTksIDE1OCwgMSwgMjQ2LCAzMywgMTU4LCAxLCAyNDYsIDUsIDE1OCwgMSwgMjQ3LCAxMDgsIDE1OCwgMSwgMjE3LCAKLSAgICAxMiwgMTU4LCAxLCAyMTcsIDExLCAxNTgsIDEsIDIxNywgMSwgMTU4LCAxLCAyMTcsIDAsIDE1OCwgMSwgMjE2LCAyNTUsIAotICAgIDE1OCwgMSwgMjE2LCAyNTQsIDE1OCwgMSwgMjE2LCAxNDEsIDE1OCwgMSwgMjE2LCAxMzYsIDE1OCwgMSwgMjE2LCAxMjUsIAotICAgIDE1OCwgMSwgMjE2LCAxMjQsIDE1OCwgMSwgMjE2LCAxMjIsIDE1OCwgMSwgMjE2LCAxMjEsIDE1OCwgMSwgMjE0LCA0OSwgCi0gICAgMTU4LCAxLCAyMTQsIDYsIDE1OCwgMSwgMjEzLCAyMzUsIDE1OCwgMSwgMjEzLCAyMTQsIDE1OCwgMSwgMjEzLCAxODMsIAotICAgIDE1OCwgMSwgMjEzLCAxNzEsIDE1OCwgMSwgMTg2LCAxNTgsIDEsIDIxMywgMzgsIDE1OCwgMSwgMjEyLCAyNTUsIDE1OCwgMSwgCi0gICAgMjEyLCAyMzUsIDE1OCwgMSwgMjEyLCAyMDMsIDE1OCwgMSwgMjEyLCAxNjksIDE4LCAxOSwgMjQwLCAxNjAsIDE4LCAxOSwgCi0gICAgNzQsIDE4LCAxOSwgMjU0LCAxOTYsIDE4LCAxOSwgNzIsIDE4LCAxOSwgMjM2LCAyOCwgMTgsIDE5LCA3NSwgMTgsIDE5LCAKLSAgICAyMjcsIDQ5LCAxOCwgMTksIDIxMywgMTA0LCAyMjcsIDQ5LCAxOCwgMTksIDY2LCAyNDUsIDE2NSwgMTgsIDE5LCA2NiwgNzIsIAotICAgIDE4LCAxOSwgNjEsIDE4LCAxOSwgMjU0LCAyMzIsIDE4LCAxOSwgMjE0LCA2LCAxOCwgMTksIDE0OCwgMjE0LCA2LCAxOCwgCi0gICAgMTksIDIxMywgMjM1LCAxOCwgMTksIDE0OCwgMjEzLCAyMzUsIDE4LCAxOSwgMjEzLCAyMjcsIDE4LCAxOSwgMTQ4LCAyMTMsIAotICAgIDIyNywgMTgsIDE5LCAyMTMsIDIxNCwgMTgsIDE5LCAxNDgsIDIxMywgMjE0LCAxOCwgMTksIDIxMywgMjAyLCAxOCwgMTksIAotICAgIDE0OCwgMjEzLCAyMDIsIDE4LCAxOSwgMjMwLCAxMSwgMjEzLCAyMDIsIDE4LCAxOSwgMjE0LCA0OSwgMTgsIDE5LCAxNDgsIAotICAgIDIxNCwgNDksIDE4LCAxOSwgMjE0LCA0OCwgMTgsIDE5LCAxNDgsIDIxNCwgNDgsIDE4LCAxOSwgMjMwLCAxMSwgMjE0LCA0OCwgCi0gICAgMTgsIDE5LCAyNTQsIDEwOCwgMTgsIDE5LCAyMTMsIDEwNCwgMjE0LCA4MiwgMTgsIDE5LCAyNDIsIDE1NiwgMjE5LCA2OSwgCi0gICAgMTgsIDE5LCA0MCwgMTc5LCAxOCwgMTksIDQwLCAyNDIsIDExMywgMTgsIDE5LCA0MCwgMjUxLCAxMDEsIDE1MSwgMjIzLCAKLSAgICAxMzAsIDE4LCAxOSwgNDAsIDIxNiwgMjI3LCAxNTEsIDIyMywgMTMwLCAxOCwgMTksIDQwLCA0NiwgMTUxLCAyMjMsIDEzMCwgCi0gICAgMTgsIDE5LCA0MCwgMjIzLCAxMzAsIDE4LCAxOSwgNDAsIDUxLCAxNzksIDE4LCAxOSwgNDAsIDUxLCAyMjAsIDE3NSwgNzEsIAotICAgIDIxOSwgMzIsIDE4LCAxOSwgNDAsIDIzMSwgMzcsIDI0NywgNzQsIDE4LCAxOSwgNDAsIDIyMCwgMTc1LCAxOTksIDkwLCAxOCwgCi0gICAgMTksIDQwLCAyMjUsIDE1NiwgMTgsIDE5LCA0MCwgMTE5LCAyMTgsIDM2LCAxOCwgMTksIDI0NSwgMTA4LCAxOCwgMTksIAotICAgIDIzNSwgMjUxLCAxOCwgMTksIDIyNywgNjIsIDE4LCAxOSwgMjU0LCAzMiwgMTgsIDE5LCAyMjYsIDk2LCAxOCwgMTksIDIyNiwgCi0gICAgMjExLCAxOCwgMTksIDIyNSwgMjQwLCAxOCwgMTksIDIyNSwgMjAzLCAxOCwgMTksIDIyNSwgMTUwLCAxOCwgMTksIDIyNSwgCi0gICAgMTI5LCAxOCwgMTksIDIxMywgMTA0LCAyMjUsIDEyOSwgMTgsIDE5LCA2NiwgMjQxLCAyMDQsIDE4LCAxOSwgNjYsIDI0MSwgCi0gICAgMTY1LCAxOCwgMTksIDE5MywgMTgsIDE5LCAyMjYsIDIxMywgMTgsIDE5LCAyMjUsIDAsIDE4LCAxOSwgMTQ4LCAyMjUsIDAsIAotICAgIDE4LCAxOSwgMjI0LCAyNTQsIDE4LCAxOSwgMTQ4LCAyMjQsIDI1NCwgMTgsIDE5LCAyMjQsIDI1MywgMTgsIDE5LCAxNDgsIAotICAgIDIyNCwgMjUzLCAxOCwgMTksIDIyNCwgMjUxLCAxOCwgMTksIDE0OCwgMjI0LCAyNTEsIDE4LCAxOSwgMjI0LCAyNTAsIDE4LCAKLSAgICAxOSwgMTQ4LCAyMjQsIDI1MCwgMTgsIDE5LCAyMjUsIDIsIDE4LCAxOSwgMTQ4LCAyMjUsIDIsIDE4LCAxOSwgMjI1LCAxLCAKLSAgICAxOCwgMTksIDE0OCwgMjI1LCAxLCAxOCwgMTksIDIxMywgMTA0LCAyMjUsIDEsIDE4LCAxOSwgMjI2LCAyMjksIDE4LCAxOSwgCi0gICAgMTQ4LCAyMjYsIDIyOSwgMTgsIDE5LCA2NiwgMjQyLCA0MSwgMTgsIDE5LCAyMTcsIDIyOSwgMTgsIDE5LCAyMTgsIDQ3LCAKLSAgICAxOCwgMTksIDIxNywgNzEsIDE4LCAxOSwgMjE3LCA1NywgMTgsIDE5LCAxMDgsIDE4LCAxOSwgMjE2LCAyMzAsIDE4LCAxOSwgCi0gICAgMjEzLCAxMDQsIDIxNiwgMjMwLCAxOCwgMTksIDY2LCAyNDgsIDI4LCAxOCwgMTksIDY2LCAyNDcsIDIxMSwgMTgsIDE5LCAKLSAgICAyMTgsIDUyLCAxOCwgMTksIDIxOCwgNDksIDE4LCAxOSwgMjE2LCA0MywgMTgsIDE5LCAxNDgsIDIxNiwgNDMsIDE4LCAxOSwgCi0gICAgMjE2LCAyNywgMTgsIDE5LCAxNDgsIDIxNiwgMjcsIDE4LCAxOSwgMjE2LCAyNiwgMTgsIDE5LCAxNDgsIDIxNiwgMjYsIDE4LCAKLSAgICAxOSwgMTA5LCAxOCwgMTksIDE0OCwgMTA5LCAxOCwgMTksIDIxNiwgMjAsIDE4LCAxOSwgMTQ4LCAyMTYsIDIwLCAxOCwgMTksIAotICAgIDIxNiwgNDUsIDE4LCAxOSwgMTQ4LCAyMTYsIDQ1LCAxOCwgMTksIDIxNiwgNDQsIDE4LCAxOSwgMTQ4LCAyMTYsIDQ0LCAxOCwgCi0gICAgMTksIDIzMCwgMTEsIDIxNiwgNDQsIDE4LCAxOSwgMjE4LCA5OSwgMTgsIDE5LCAyMTYsIDExMiwgMTgsIDE5LCAyMTYsIDk2LCAKLSAgICAxOCwgMTksIDIxNiwgOTUsIDE4LCAxOSwgMjE2LCAxMTUsIDE4LCAxOSwgMjM0LCAxODgsIDE4LCAxOSwgMjM1LCAxMSwgMTgsIAotICAgIDE5LCAyMzQsIDEwMSwgMTgsIDE5LCAyMzQsIDkyLCAxOCwgMTksIDIzNCwgMzcsIDE4LCAxOSwgMjM0LCAxOSwgMTgsIDE5LCAKLSAgICAyMTMsIDEwNCwgMjM0LCAxOSwgMTgsIDE5LCAxODEsIDE4LCAxOSwgMjM1LCAxNCwgMTgsIDE5LCAyMzMsIDIwMCwgMTgsIAotICAgIDE5LCAxNDgsIDIzMywgMjAwLCAxOCwgMTksIDIzMywgMTk4LCAxOCwgMTksIDE0OCwgMjMzLCAxOTgsIDE4LCAxOSwgMjMzLCAKLSAgICAxOTcsIDE4LCAxOSwgMTQ4LCAyMzMsIDE5NywgMTgsIDE5LCAyMzMsIDE5NiwgMTgsIDE5LCAxNDgsIDIzMywgMTk2LCAxOCwgCi0gICAgMTksIDIzMywgMTk1LCAxOCwgMTksIDE0OCwgMjMzLCAxOTUsIDE4LCAxOSwgMjMzLCAyMDQsIDE4LCAxOSwgMTQ4LCAyMzMsIAotICAgIDIwNCwgMTgsIDE5LCAyMzMsIDIwMywgMTgsIDE5LCAxNDgsIDIzMywgMjAzLCAxOCwgMTksIDIzMCwgMTEsIDIzMywgMjAzLCAKLSAgICAxOCwgMTksIDIzNSwgMjcsIDE4LCAxOSwgMjMzLCAyMDUsIDE4LCAxOSwgMjE5LCAyMTQsIDIzNCwgMTgyLCAxOCwgMTksIAotICAgIDIxOSwgMjE0LCAyMzQsIDkzLCAxOCwgMTksIDIxOSwgMjE0LCAyMzQsIDMyLCAxOCwgMTksIDIxOSwgMjE0LCAyMzQsIDI1MiwgCi0gICAgMTgsIDE5LCAyNTAsIDEyNCwgMTgsIDE5LCAyNTAsIDIxNywgMTgsIDE5LCAyNDksIDI0NCwgMTgsIDE5LCAyNDksIDIzNCwgCi0gICAgMTgsIDE5LCAyNDksIDE3NSwgMTgsIDE5LCAyNDksIDExMywgMTgsIDE5LCAyMTMsIDEwNCwgMjQ5LCAxMTMsIDE4LCAxOSwgCi0gICAgMjUwLCAyMTksIDE4LCAxOSwgMjUwLCAyMTgsIDE4LCAxOSwgMjQ5LCAyMiwgMTgsIDE5LCAxNDgsIDI0OSwgMjIsIDE4LCAKLSAgICAxOSwgMjQ5LCAyMCwgMTgsIDE5LCAxNDgsIDI0OSwgMjAsIDE4LCAxOSwgMjQ5LCAxOSwgMTgsIDE5LCAxNDgsIDI0OSwgMTksIAotICAgIDE4LCAxOSwgMjQ5LCAxOCwgMTgsIDE5LCAxNDgsIDI0OSwgMTgsIDE4LCAxOSwgMjQ5LCAxNywgMTgsIDE5LCAxNDgsIDI0OSwgCi0gICAgMTcsIDE4LCAxOSwgMjQ5LCAyNCwgMTgsIDE5LCAxNDgsIDI0OSwgMjQsIDE4LCAxOSwgMjQ5LCAyMywgMTgsIDE5LCAxNDgsIAotICAgIDI0OSwgMjMsIDE4LCAxOSwgMjMwLCAxMSwgMjQ5LCAyMywgMTgsIDE5LCAyNTAsIDI1MiwgMTgsIDE5LCAyMjIsIDEyNywgCi0gICAgMjE3LCAxNjMsIDE4LCAxOSwgMjMxLCAxNTYsIDE4LCAxOSwgMjMyLCA0MCwgMTgsIDE5LCAyMzEsIDQyLCAxOCwgMTksIAotICAgIDIzMSwgMTQsIDE4LCAxOSwgMjMwLCAyMzEsIDE4LCAxOSwgMjMwLCAyMDIsIDE4LCAxOSwgMjEzLCAxMDQsIDIzMCwgMjAyLCAKLSAgICAxOCwgMTksIDE4OCwgMTgsIDE5LCAyMzIsIDQxLCAxOCwgMTksIDIzMCwgMTEyLCAxOCwgMTksIDE0OCwgMjMwLCAxMTIsIAotICAgIDE4LCAxOSwgMjMwLCAxMTAsIDE4LCAxOSwgMTQ4LCAyMzAsIDExMCwgMTgsIDE5LCAyMzAsIDEwOSwgMTgsIDE5LCAxNDgsIAotICAgIDIzMCwgMTA5LCAxOCwgMTksIDIzMCwgMTA4LCAxOCwgMTksIDE0OCwgMjMwLCAxMDgsIDE4LCAxOSwgMjMwLCAxMDcsIDE4LCAKLSAgICAxOSwgMTQ4LCAyMzAsIDEwNywgMTgsIDE5LCAyMzAsIDExNCwgMTgsIDE5LCAxNDgsIDIzMCwgMTE0LCAxOCwgMTksIDIzMCwgCi0gICAgMTEzLCAxOCwgMTksIDE0OCwgMjMwLCAxMTMsIDE4LCAxOSwgMjMwLCAxMSwgMjMwLCAxMTMsIDE4LCAxOSwgMTgzLCAxOCwgCi0gICAgMTksIDE0OCwgMTgzLCAxOCwgMTksIDIzMSwgNDUsIDE4LCAxOSwgMjUzLCAxMjEsIDE4MywgMTgsIDE5LCAyMjIsIDEyNywgCi0gICAgMTgzLCAxOCwgMTksIDIyOSwgMTg3LCAxOCwgMTksIDIzMCwgNDIsIDE4LCAxOSwgMjI5LCA2NCwgMTgsIDE5LCAyMjksIDM5LCAKLSAgICAxOCwgMTksIDIyOCwgMTg1LCAxOCwgMTksIDIyOCwgMTc1LCAxOCwgMTksIDIxMywgMTA0LCAyMjgsIDE3NSwgMTgsIDE5LCAKLSAgICAyMDUsIDE4LCAxOSwgMjMwLCA0MywgMTgsIDE5LCAyMjgsIDI5LCAxOCwgMTksIDE0OCwgMjI4LCAyOSwgMTgsIDE5LCAyMjgsIAotICAgIDMxLCAxOCwgMTksIDE0OCwgMjI4LCAzMSwgMTgsIDE5LCAyMjgsIDMwLCAxOCwgMTksIDE0OCwgMjI4LCAzMCwgMTgsIDE5LCAKLSAgICAyMzAsIDExLCAyMjgsIDMwLCAxOCwgMTksIDIwNCwgMTgsIDE5LCA2NiwgMjI5LCAxNjEsIDE4LCAxOSwgMjI5LCA2OSwgMTgsIAotICAgIDE5LCAyMzMsIDgyLCAxOCwgMTksIDIzMywgMTU1LCAxOCwgMTksIDIzMywgMTMsIDE4LCAxOSwgMjMyLCAyNTUsIDE4LCAxOSwgCi0gICAgMjMyLCAyMDgsIDE4LCAxOSwgMjMyLCAxODAsIDE4LCAxOSwgMjEzLCAxMDQsIDIzMiwgMTgwLCAxOCwgMTksIDIzMywgMTU3LCAKLSAgICAxOCwgMTksIDIzMywgMTU2LCAxOCwgMTksIDIzMiwgMTI3LCAxOCwgMTksIDE0OCwgMjMyLCAxMjcsIDE4LCAxOSwgMjMyLCAKLSAgICAxMjYsIDE4LCAxOSwgMTQ4LCAyMzIsIDEyNiwgMTgsIDE5LCAyMzIsIDEyNSwgMTgsIDE5LCAxNDgsIDIzMiwgMTI1LCAxOCwgCi0gICAgMTksIDIzMiwgMTI0LCAxOCwgMTksIDE0OCwgMjMyLCAxMjQsIDE4LCAxOSwgMjMyLCAxMjMsIDE4LCAxOSwgMTQ4LCAyMzIsIAotICAgIDEyMywgMTgsIDE5LCAyMzIsIDEyOSwgMTgsIDE5LCAxNDgsIDIzMiwgMTI5LCAxOCwgMTksIDIzMiwgMTI4LCAxOCwgMTksIAotICAgIDE0OCwgMjMyLCAxMjgsIDE4LCAxOSwgMTUwLCAxOCwgMTksIDE0OCwgMTUwLCAxOCwgMTksIDEzOCwgMTUwLCAxOCwgMTksIAotICAgIDIyMiwgMTAwLCAxOCwgMTksIDIyMiwgMTk4LCAxOCwgMTksIDIyMCwgMTE3LCAxOCwgMTksIDIyMCwgMTAxLCAxOCwgMTksIAotICAgIDIxOSwgMjQyLCAxOCwgMTksIDIxOSwgMjI2LCAxOCwgMTksIDIxMywgMTA0LCAyMTksIDIyNiwgMTgsIDE5LCAyMjIsIDIwMiwgCi0gICAgMTgsIDE5LCAyMjIsIDIwMCwgMTgsIDE5LCAyMTgsIDE5NCwgMTgsIDE5LCAxNDgsIDIxOCwgMTk0LCAxOCwgMTksIDIxOCwgCi0gICAgMTg4LCAxOCwgMTksIDE0OCwgMjE4LCAxODgsIDE4LCAxOSwgMjE4LCAxODcsIDE4LCAxOSwgMTQ4LCAyMTgsIDE4NywgMTgsIAotICAgIDE5LCAyMTgsIDE4MywgMTgsIDE5LCAxNDgsIDIxOCwgMTgzLCAxOCwgMTksIDIxOCwgMTgyLCAxOCwgMTksIDE0OCwgMjE4LCAKLSAgICAxODIsIDE4LCAxOSwgMjE4LCAxOTgsIDE4LCAxOSwgMTQ4LCAyMTgsIDE5OCwgMTgsIDE5LCAyMTgsIDE5NywgMTgsIDE5LCAKLSAgICAxNDgsIDIxOCwgMTk3LCAxOCwgMTksIDIzMCwgMTEsIDIxOCwgMTk3LCAxOCwgMTksIDE5NywgMTgsIDE5LCAyNTMsIDEyMSwgCi0gICAgMTk3LCAxOCwgMTksIDIxOCwgMTk5LCAxOCwgMTksIDI1MSwgMTQxLCAxOTcsIDE4LCAxOSwgMjMwLCAxOTcsIDIyMCwgMzYsIAotICAgIDE4LCAxOSwgMjMwLCAxMSwgMjIwLCAyNywgMTgsIDE5LCAyMzAsIDExLCAyMjMsIDIsIDE4LCAxOSwgMjMwLCAxMSwgMjE5LCAKLSAgICAxNjcsIDE4LCAxOSwgMjMwLCAxMSwgMjE5LCAyOSwgMTgsIDE5LCAyMzAsIDExLCAyMjAsIDI2LCAxOCwgMTksIDIzMCwgMTEsIAotICAgIDIyMiwgMTAzLCAxOCwgMTksIDIyMCwgMjQzLCAxOCwgMTksIDIyMCwgMjEyLCAxOCwgMTksIDIyMCwgMjA3LCAxOCwgMTksIAotICAgIDIyMCwgMTg3LCAxOCwgMTksIDIyMCwgMTgxLCAxOCwgMTksIDIyMSwgMjQsIDE4LCAxOSwgMjIxLCAyMCwgMTgsIDE5LCAKLSAgICAyMjAsIDEzMiwgMTgsIDE5LCAxNDgsIDIyMCwgMTMyLCAxOCwgMTksIDIyMCwgMTMxLCAxOCwgMTksIDE0OCwgMjIwLCAxMzEsIAotICAgIDE4LCAxOSwgMjIwLCAxMzAsIDE4LCAxOSwgMTQ4LCAyMjAsIDEzMCwgMTgsIDE5LCAyMjAsIDEyOSwgMTgsIDE5LCAxNDgsIAotICAgIDIyMCwgMTI5LCAxOCwgMTksIDIyMCwgMTI4LCAxOCwgMTksIDE0OCwgMjIwLCAxMjgsIDE4LCAxOSwgMjIwLCAxMzQsIDE4LCAKLSAgICAxOSwgMTQ4LCAyMjAsIDEzNCwgMTgsIDE5LCAyMjAsIDEzMywgMTgsIDE5LCAxNDgsIDIyMCwgMTMzLCAxOCwgMTksIDIyMSwgCi0gICAgMjYsIDE4LCAxOSwgMjEzLCAzOCwgMTgsIDE5LCAyMTMsIDg5LCAxOCwgMTksIDIxMiwgMjU1LCAxOCwgMTksIDIxMiwgMjQ2LCAKLSAgICAxOCwgMTksIDIxMiwgMjM1LCAxOCwgMTksIDIxMiwgMjIwLCAxOCwgMTksIDIxMywgMTA0LCAyMTIsIDIyMCwgMTgsIDE5LCAKLSAgICAxODYsIDE4LCAxOSwgMjEzLCA5MSwgMTgsIDE5LCAyMTIsIDE2NiwgMTgsIDE5LCAxNDgsIDIxMiwgMTY2LCAxOCwgMTksIAotICAgIDIxMiwgMTY1LCAxOCwgMTksIDE0OCwgMjEyLCAxNjUsIDE4LCAxOSwgMjEyLCAxNjQsIDE4LCAxOSwgMTQ4LCAyMTIsIDE2NCwgCi0gICAgMTgsIDE5LCAyMTIsIDE2MywgMTgsIDE5LCAxNDgsIDIxMiwgMTYzLCAxOCwgMTksIDIxMiwgMTYyLCAxOCwgMTksIDE0OCwgCi0gICAgMjEyLCAxNjIsIDE4LCAxOSwgMjEyLCAxNjgsIDE4LCAxOSwgMTQ4LCAyMTIsIDE2OCwgMTgsIDE5LCAyMTIsIDE2NywgMTgsIAotICAgIDE5LCAxNDgsIDIxMiwgMTY3LCAxOCwgMTksIDIzMCwgMTEsIDIxMiwgMTY3LCAxOCwgMTksIDIxMywgMTA1LCAxOCwgMTksIAotICAgIDI1MSwgMTgyLCAyMTMsIDEwNSwgMTgsIDE5LCAxNDgsIDIxMywgMTA1LCAxOCwgMTksIDIyMiwgMTI3LCAyMTIsIDI1NSwgCi0gICAgMTgsIDE5LCAyMjQsIDIxLCAxOCwgMTksIDIyNCwgMTEyLCAyMjQsIDIxLCAxOCwgMTksIDE0OCwgMjMzLCA4MiwgMTgsIDE5LCAKLSAgICAyMjQsIDczLCAxOCwgMTksIDIyMywgMTg4LCAxOCwgMTksIDIyMywgMTM2LCAxOCwgMTksIDIyMywgMTEyLCAxOCwgMTksIAotICAgIDIyMywgOTksIDE4LCAxOSwgMTQ4LCAyMzIsIDIwOCwgMTgsIDE5LCAyMDMsIDE4LCAxOSwgMjI0LCA3NCwgMTgsIDE5LCAKLSAgICAxNDgsIDIzMywgMTU3LCAxOCwgMTksIDIyMywgMjAsIDE4LCAxOSwgMTQ4LCAyMjMsIDIwLCAxOCwgMTksIDE0OSwgMTgsIAotICAgIDE5LCAxNDgsIDE0OSwgMTgsIDE5LCAxMzgsIDE0OSwgMTgsIDE5LCAyNDQsIDEyMywgMTgsIDE5LCAyNDQsIDE2MSwgMTgsIAotICAgIDE5LCAyNDQsIDkwLCAxOCwgMTksIDI0NCwgNzcsIDE4LCAxOSwgMjQ0LCAxMiwgMTgsIDE5LCAyNDQsIDMsIDE4LCAxOSwgCi0gICAgMjQ0LCAxNjQsIDE4LCAxOSwgMjQ0LCAxNjMsIDE4LCAxOSwgMjQzLCAxODcsIDE4LCAxOSwgMTQ4LCAyNDMsIDE4NywgMTgsIAotICAgIDE5LCAyNDQsIDIzMCwgMTgsIDE5LCAyMTcsIDE0OCwgMTgsIDE5LCAyMzAsIDk2LCAyMTcsIDE0OCwgMTgsIDE5LCAyMTcsIAotICAgIDEyOCwgMTgsIDE5LCAyMzAsIDk2LCAyMTcsIDEyOCwgMTgsIDE5LCAyMTcsIDEyNCwgMTgsIDE5LCAyMzAsIDk2LCAyMTcsIAotICAgIDEyNCwgMTgsIDE5LCAyMTcsIDEwOSwgMTgsIDE5LCAyMTcsIDEwNiwgMTgsIDE5LCAyMTcsIDE2MSwgMTgsIDE5LCAyMTcsIAotICAgIDE2MCwgMTgsIDE5LCAyMTcsIDgxLCAxOCwgMTksIDE0OCwgMjE3LCA4MSwgMTgsIDE5LCAyMTcsIDE2MywgMTgsIDE5LCAKLSAgICAyMTYsIDEwMywgMTgsIDE5LCAyMTYsIDEwMSwgMTgsIDE5LCAyMTYsIDEwMCwgMTgsIDE5LCAyMTYsIDEwNSwgMTgsIDE5LCAKLSAgICAyMTYsIDEwNiwgMTgsIDE5LCAyMTYsIDE4LCAxOCwgMTksIDIxNiwgMTcsIDE4LCAxOSwgMjE2LCAxNiwgMTgsIDE5LCAyMTYsIAotICAgIDE5LCAxOCwgMTksIDIyOCwgNDksIDI0MSwgMjIyLCAxOCwgMTksIDIyOCwgNDksIDI0MSwgMTY1LCAxOCwgMTksIDIyOCwgCi0gICAgNDksIDI0MSwgMTQ3LCAxOCwgMTksIDIyOCwgNDksIDI0MSwgNTQsIDE4LCAxOSwgMjI4LCA0OSwgMjQxLCAzOSwgMTgsIDE5LCAKLSAgICAyMjgsIDQ5LCAxNTksIDE4LCAxOSwgMjI4LCA0OSwgMjQyLCAyNywgMTgsIDE5LCAyMjgsIDQ5LCAyNDIsIDQxLCAxOCwgMTksIAotICAgIDIyOCwgNDgsIDI0MiwgNDEsIDE4LCAxOSwgMjQxLCAxNDAsIDE4LCAxOSwgMjI0LCAyMjgsIDE4LCAxOSwgMjI0LCAxOTgsIAotICAgIDE4LCAxOSwgMjI0LCAxOTMsIDE4LCAxOSwgMjI0LCAxODcsIDE4LCAxOSwgMjI0LCAxODIsIDE4LCAxOSwgMjI0LCAyMzIsIAotICAgIDE4LCAxOSwgMjI0LCAyMzEsIDE4LCAxOSwgMjI0LCAyNDAsIDE4LCAxOSwgMjE3LCA4LCAxOCwgMTksIDIxNywgNiwgMTgsIAotICAgIDE5LCAyMTcsIDUsIDE4LCAxOSwgMjE3LCA5LCAxOCwgMTksIDE0OCwgMjI0LCAyMSwgMTgsIDE5LCAxNDgsIDIyMywgMTg4LCAKLSAgICAxOCwgMTksIDE0OCwgMjIzLCAxMTIsIDE4LCAxOSwgMTQ4LCAyMDMsIDE4LCAxOSwgMjI5LCAxNTcsIDE4LCAxOSwgMjI5LCAKLSAgICAxMTMsIDE4LCAxOSwgMjI5LCAxMDksIDE4LCAxOSwgMjI5LCA5MCwgMTgsIDE5LCAyMjksIDg1LCAxOCwgMTksIDIyOSwgCi0gICAgMTU5LCAxOCwgMTksIDIyOSwgMTU4LCAxOCwgMTksIDIyOSwgMTYxLCAxOCwgMTksIDIyOCwgMTk2LCAxOCwgMTksIDIyMiwgCi0gICAgMTI3LCAyMjAsIDI0MywgMTgsIDE5LCAyMjIsIDEyNywgMjIwLCAyMTIsIDE4LCAxOSwgMjIyLCAxMjcsIDIyMCwgMTg3LCAKLSAgICAxOCwgMTksIDIyMiwgMTI3LCAyMjEsIDI0LCAxOCwgMTksIDIxMywgMjAwLCAyMTcsIDE0OCwgMTgsIDE5LCAyMTMsIDIwMCwgCi0gICAgMjE3LCAxMjgsIDE4LCAxOSwgMjEzLCAyMDAsIDIxNywgMTA5LCAxOCwgMTksIDIxMywgMjAwLCAyMTcsIDE2MSwgMTgsIDE5LCAKLSAgICAyMTMsIDIwMCwgMjE3LCAxNjMsIDE4LCAxOSwgMjMzLCAxOSwgMTgsIDE5LCAyMzMsIDE4LCAxOCwgMTksIDIzMywgMTcsIAotICAgIDE4LCAxOSwgMjMzLCAxNiwgMTgsIDE5LCAyMzMsIDI1LCAxOCwgMTksIDIzMywgMjQsIDE4LCAxOSwgMjMzLCAyNiwgMTgsIAotICAgIDE5LCAyMTcsIDE2MiwgMjE3LCAxNDgsIDE4LCAxOSwgMjE3LCAxNjIsIDIxNywgMTI4LCAxOCwgMTksIDIxNywgMTYyLCAKLSAgICAyMTcsIDEyNCwgMTgsIDE5LCAyMTcsIDE2MiwgMjE3LCAxMDksIDE4LCAxOSwgMjE3LCAxNjIsIDIxNywgMTA2LCAxOCwgMTksIAotICAgIDIxNywgMTYyLCAyMTcsIDE2MSwgMTgsIDE5LCAyMTcsIDE2MiwgMjE3LCAxNjAsIDE4LCAxOSwgMjE3LCAxNjIsIDIxNywgCi0gICAgMTYzLCAxOCwgMTksIDI1NCwgOTcsIDI1MywgNzQsIDE4LCAxOSwgMjUxLCAxNDEsIDc0LCAxOCwgMTksIDI1MSwgMTQxLCAKLSAgICA3MiwgMTgsIDE5LCAyNTEsIDE0MSwgNzUsIDE4LCAxOSwgMjUxLCAxNDEsIDYxLCAxOCwgMTksIDI1MSwgMTQxLCAyMTQsIDYsIAotICAgIDE4LCAxOSwgMjUxLCAxNDEsIDIxMywgMjM1LCAxOCwgMTksIDI1MSwgMTQxLCAyMTMsIDIxNCwgMTgsIDE5LCAyNTEsIDE0MSwgCi0gICAgMjE0LCA0OSwgMTgsIDE5LCAyNTEsIDE0MSwgMjI5LCAxODcsIDE4LCAxOSwgMjUxLCAxNDEsIDIyOSwgNjQsIDE4LCAxOSwgCi0gICAgMjUxLCAxNDEsIDIyOCwgMTg1LCAxOCwgMTksIDI1MSwgMTQxLCAyMDUsIDE4LCAxOSwgMjUxLCAxNDEsIDIzNCwgMTg4LCAKLSAgICAxOCwgMTksIDI1MSwgMTQxLCAyMzQsIDEwMSwgMTgsIDE5LCAyNTEsIDE0MSwgMjM0LCAzNywgMTgsIDE5LCAyNTEsIDE0MSwgCi0gICAgMTgxLCAxOCwgMTksIDIyMiwgMTI3LCAyNDEsIDIyMiwgMTgsIDE5LCAyMjIsIDEyNywgMjQxLCAxNjUsIDE4LCAxOSwgMjIyLCAKLSAgICAxMjcsIDI0MSwgNTQsIDE4LCAxOSwgMjIyLCAxMjcsIDE1OSwgMTgsIDE5LCA2NiwgMjQyLCAxOTYsIDE4LCAxOSwgNjYsIAotICAgIDI0MiwgMjAwLCAxOCwgMTksIDY2LCAyNDIsIDIxMiwgMTgsIDE5LCA2NiwgMjQyLCAyMTEsIDE4LCAxOSwgNjYsIDI0MiwgCi0gICAgMjAxLCAxOCwgMTksIDY2LCAyNDIsIDIyNSwgMTgsIDE5LCA2NiwgMjIzLCA1MSwgMTgsIDE5LCA2NiwgMjIzLCAxMTIsIDE4LCAKLSAgICAxOSwgNjYsIDIyNCwgMjEsIDE4LCAxOSwgNjYsIDIyNCwgMSwgMTgsIDE5LCA2NiwgMjIzLCAxODgsIDE4LCAxOSwgNjYsIAotICAgIDIwMywgMTgsIDE5LCA2NiwgMjEzLCAxODMsIDE4LCAxOSwgNjYsIDIxMywgMjE0LCAxOCwgMTksIDY2LCAyMTQsIDYsIDE4LCAKLSAgICAxOSwgNjYsIDIxNCwgMSwgMTgsIDE5LCA2NiwgMjEzLCAyMzUsIDE4LCAxOSwgNjYsIDIxNCwgNDksIDE4LCAxOSwgNjYsIAotICAgIDI0MCwgMTg2LCAxOCwgMTksIDY2LCAyNDAsIDE4NywgMTgsIDE5LCA2NiwgMjQwLCAxOTAsIDE4LCAxOSwgNjYsIDI0MCwgCi0gICAgMTg5LCAxOCwgMTksIDY2LCAyNDAsIDE4OCwgMTgsIDE5LCA2NiwgMjQwLCAxOTIsIDE4LCAxOSwgNjYsIDIxNywgOTAsIDE4LCAKLSAgICAxOSwgNjYsIDIxNywgMTA5LCAxOCwgMTksIDY2LCAyMTcsIDE0OCwgMTgsIDE5LCA2NiwgMjE3LCAxNDcsIDE4LCAxOSwgNjYsIAotICAgIDIxNywgMTI4LCAxOCwgMTksIDY2LCAyMTcsIDE2MSwgMTgsIDE5LCA2NiwgMjE2LCA4NiwgMTgsIDE5LCA2NiwgMjE2LCA5NSwgCi0gICAgMTgsIDE5LCA2NiwgMjE2LCAxMTIsIDE4LCAxOSwgNjYsIDIxNiwgMTExLCAxOCwgMTksIDY2LCAyMTYsIDk2LCAxOCwgMTksIAotICAgIDY2LCAyMTYsIDExNSwgMTgsIDE5LCA2NiwgMjI1LCAzNSwgMTgsIDE5LCA2NiwgMjI1LCAxNTAsIDE4LCAxOSwgNjYsIDIyNiwgCi0gICAgOTYsIDE4LCAxOSwgNjYsIDIyNiwgODYsIDE4LCAxOSwgNjYsIDIyNSwgMjQwLCAxOCwgMTksIDY2LCAxOTMsIDE4LCAxOSwgCi0gICAgNjYsIDIyNiwgMjI5LCAxOCwgMTksIDY2LCAyNDIsIDkyLCAxOCwgMTksIDY2LCAyNDIsIDE1MCwgMTgsIDE5LCA2NiwgMjQzLCAKLSAgICAzOCwgMTgsIDE5LCA2NiwgMjQzLCAzMSwgMTgsIDE5LCA2NiwgMjQyLCAxOTAsIDE4LCAxOSwgNjYsIDI0MywgMTEwLCAxOCwgCi0gICAgMTksIDY2LCAyMzQsIDEwOCwgMTgsIDE5LCA2NiwgMjM0LCAxMTMsIDE4LCAxOSwgNjYsIDIzNCwgMTI1LCAxOCwgMTksIDY2LCAKLSAgICAyMzQsIDEyNCwgMTgsIDE5LCA2NiwgMjM0LCAxMTgsIDE4LCAxOSwgNjYsIDIzNCwgMTM4LCAxOCwgMTksIDY2LCAyMzQsIAotICAgIDUwLCAxOCwgMTksIDY2LCAyMzQsIDUxLCAxOCwgMTksIDY2LCAyMzQsIDU0LCAxOCwgMTksIDY2LCAyMzQsIDUzLCAxOCwgCi0gICAgMTksIDY2LCAyMzQsIDUyLCAxOCwgMTksIDY2LCAyMzQsIDU1LCAxOCwgMTksIDY2LCAyMzQsIDU2LCAxOCwgMTksIDY2LCAKLSAgICAyMjgsIDkyLCAxOCwgMTksIDY2LCAyMjgsIDE4NSwgMTgsIDE5LCA2NiwgMjI5LCAxODcsIDE4LCAxOSwgNjYsIDIyOSwgCi0gICAgMTg0LCAxOCwgMTksIDY2LCAyMjksIDY0LCAxOCwgMTksIDY2LCAyMDUsIDE4LCAxOSwgNjYsIDIzMCwgMTcyLCAxOCwgMTksIAotICAgIDY2LCAyMzAsIDIzMSwgMTgsIDE5LCA2NiwgMjMxLCAxNTYsIDE4LCAxOSwgNjYsIDIzMSwgMTQ1LCAxOCwgMTksIDY2LCAKLSAgICAyMzEsIDQyLCAxOCwgMTksIDY2LCAxODgsIDE4LCAxOSwgNjYsIDIxMiwgMjAzLCAxOCwgMTksIDY2LCAyMTIsIDIzNSwgMTgsIAotICAgIDE5LCA2NiwgMjEzLCAzOCwgMTgsIDE5LCA2NiwgMjEzLCAzNSwgMTgsIDE5LCA2NiwgMjEyLCAyNTUsIDE4LCAxOSwgNjYsIAotICAgIDE4NiwgMTgsIDE5LCA2NiwgMjM1LCA1NCwgMTgsIDE5LCAyMjIsIDEyNywgMjM1LCA1NCwgMTgsIDE5LCA2NiwgMjM1LCA3MSwgCi0gICAgMTgsIDE5LCA2NiwgMjM1LCAxMjcsIDE4LCAxOSwgNjYsIDIzNSwgMTI1LCAxOCwgMTksIDY2LCAyMzUsIDExMCwgMTgsIDE5LCAKLSAgICAyMjIsIDEyNywgMjM1LCAxMTAsIDE4LCAxOSwgNjYsIDIzNSwgMTM5LCAxOCwgMTksIDY2LCAyMzUsIDg0LCAxOCwgMTksIAotICAgIDY2LCAyMzUsIDg4LCAxOCwgMTksIDY2LCAyMzUsIDk4LCAxOCwgMTksIDY2LCAyMzUsIDk3LCAxOCwgMTksIDY2LCAyMzUsIAotICAgIDk2LCAxOCwgMTksIDY2LCAyMzUsIDk5LCAxOCwgMTksIDY2LCAyMzIsIDE1NiwgMTgsIDE5LCA2NiwgMjMyLCAyMDgsIDE4LCAKLSAgICAxOSwgNjYsIDIzMywgODIsIDE4LCAxOSwgNjYsIDIzMywgNzQsIDE4LCAxOSwgNjYsIDIzMywgMTMsIDE4LCAxOSwgNjYsIAotICAgIDIzMywgMTU3LCAxOCwgMTksIDY2LCAyNDcsIDEwMywgMTgsIDE5LCA2NiwgMjQ3LCAxMDQsIDE4LCAxOSwgNjYsIDI0NywgCi0gICAgMTA3LCAxOCwgMTksIDY2LCAyNDcsIDEwNiwgMTgsIDE5LCA2NiwgMjQ3LCAxMDUsIDE4LCAxOSwgNjYsIDI0NywgMTA4LCAKLSAgICAxOCwgMTksIDY2LCAyMzMsIDE1LCAxOCwgMTksIDY2LCAyMzMsIDE3LCAxOCwgMTksIDY2LCAyMzMsIDIxLCAxOCwgMTksIAotICAgIDY2LCAyMzMsIDIwLCAxOCwgMTksIDY2LCAyMzMsIDE5LCAxOCwgMTksIDY2LCAyMzMsIDI1LCAxOCwgMTksIDY2LCAyMTcsIAotICAgIDMsIDE4LCAxOSwgNjYsIDIxNywgNSwgMTgsIDE5LCA2NiwgMjE3LCA4LCAxOCwgMTksIDY2LCAyMTcsIDcsIDE4LCAxOSwgCi0gICAgNjYsIDIxNywgNiwgMTgsIDE5LCA2NiwgMjE3LCA5LCAxOCwgMTksIDY2LCAyMTYsIDI1NSwgMTgsIDE5LCA2NiwgMjE3LCAwLCAKLSAgICAxOCwgMTksIDY2LCAyMTcsIDExLCAxOCwgMTksIDY2LCAyMTcsIDEwLCAxOCwgMTksIDY2LCAyMTcsIDEsIDE4LCAxOSwgNjYsIAotICAgIDIxNywgMTIsIDE4LCAxOSwgNjYsIDIxMiwgOCwgMTgsIDE5LCA2NiwgMjEyLCAxNiwgMTgsIDE5LCA2NiwgMjEyLCA4NywgCi0gICAgMTgsIDE5LCA2NiwgMjEyLCA4NSwgMTgsIDE5LCA2NiwgMjEyLCAzNywgMTgsIDE5LCA2NiwgMjEyLCAxMDksIDE4LCAxOSwgCi0gICAgNjYsIDIxMiwgMTUyLCAxOCwgMTksIDY2LCA3MCwgMjEyLCAxNTIsIDE4LCAxOSwgNjYsIDI0NSwgMjM5LCAxOCwgMTksIDY2LCAKLSAgICAyNDUsIDI0MCwgMTgsIDE5LCA2NiwgMjQ1LCAyNDcsIDE4LCAxOSwgNjYsIDI0NSwgMjQ2LCAxOCwgMTksIDY2LCAyNDUsIAotICAgIDI0MiwgMTgsIDE5LCA2NiwgMjQ1LCAyNDksIDE4LCAxOSwgNjYsIDIxOSwgMjcsIDE4LCAxOSwgNjYsIDIxOSwgMjQyLCAxOCwgCi0gICAgMTksIDY2LCAyMjIsIDEwMCwgMTgsIDE5LCA2NiwgMjIyLCA4OSwgMTgsIDE5LCA2NiwgMjIwLCAxMTcsIDE4LCAxOSwgNjYsIAotICAgIDIyMiwgMjAyLCAxOCwgMTksIDY2LCAyMjAsIDE1MCwgMTgsIDE5LCA2NiwgMjIwLCAxODcsIDE4LCAxOSwgNjYsIDIyMCwgCi0gICAgMjQzLCAxOCwgMTksIDY2LCAyMjAsIDI0MSwgMTgsIDE5LCA2NiwgMjIwLCAyMTIsIDE4LCAxOSwgNjYsIDIyMSwgMjQsIDE4LCAKLSAgICAxOSwgNjYsIDIyMSwgMjYsIDE4LCAxOSwgNjYsIDIxNiwgMTIyLCAxOCwgMTksIDY2LCAyMTYsIDEyNCwgMTgsIDE5LCA2NiwgCi0gICAgMjE2LCAxMzYsIDE4LCAxOSwgNjYsIDIxNiwgMTM1LCAxOCwgMTksIDY2LCAyMTYsIDEyNSwgMTgsIDE5LCA2NiwgMjE2LCAKLSAgICAxNDEsIDE4LCAxOSwgNjYsIDI1MCwgNiwgMTgsIDE5LCA2NiwgMjUwLCAyMywgMTgsIDE5LCA2NiwgMjUwLCA2NywgMTgsIAotICAgIDE5LCA2NiwgMjUwLCA2NCwgMTgsIDE5LCA2NiwgMjUwLCA0NywgMTgsIDE5LCA2NiwgMjUwLCA5MiwgMTgsIDE5LCA2NiwgCi0gICAgMjE2LCA4OSwgMTgsIDE5LCA2NiwgMjE2LCA5MCwgMTgsIDE5LCA2NiwgMjE2LCA5MywgMTgsIDE5LCA2NiwgMjE2LCA5MiwgCi0gICAgMTgsIDE5LCA2NiwgMjE2LCA5MSwgMTgsIDE5LCA2NiwgMjE2LCA5NCwgMTgsIDE5LCAyNTAsIDQ4LCA1MiwgMTgsIDE5LCAKLSAgICAyNDMsIDIwMCwgMjE5LCA2OSwgMTgsIDE5LCAyMjQsIDIyNCwgMTgsIDE5LCAyMjksIDE1NiwgMTgsIDE5LCAyMjgsIDE5MywgCi0gICAgMTgsIDE5LCAyMjgsIDE5MiwgMTgsIDE5LCAyMjgsIDE5MSwgMTgsIDE5LCAyMjgsIDE5MCwgMTgsIDE5LCAyMjgsIDE5NSwgCi0gICAgMTgsIDE5LCAyMjgsIDE5NCwgMTgsIDE5LCAyMTMsIDIwMCwgMjE3LCA3OSwgMTgsIDE5LCAyMTMsIDIwMCwgMjE3LCA3OCwgCi0gICAgMTgsIDE5LCAyMTMsIDIwMCwgMjE3LCA3NywgMTgsIDE5LCAyMTMsIDIwMCwgMjE3LCA3NiwgMTgsIDE5LCAyMTMsIDIwMCwgCi0gICAgMjE3LCA3NSwgMTgsIDE5LCAyMTMsIDIwMCwgMjE3LCA4MiwgMTgsIDE5LCAyMTMsIDIwMCwgMjE3LCA4MSwgMTgsIDE5LCAKLSAgICAyMTMsIDIwMCwgNDAsIDIxNywgMTYzLCAxOCwgMTksIDI1MSwgMTQxLCAyMTQsIDgyLCAyMjcsIDkyLCAyMTksIDIwNywgNzcsIAotICAgIDIyNywgOTIsIDEsIDI1MSwgMjI0LCAyMjcsIDkyLCAxLCAyMzIsIDE0NSwgMjI3LCA5MiwgMSwgMjQ0LCAxMjAsIDIyNywgCi0gICAgOTIsIDEsIDIyMiwgMTg2LCAyMjcsIDkyLCAxLCAyMjksIDI0LCAyMjcsIDkyLCAxLCAyMTUsIDE5NSwgMjI3LCA5MiwgMSwgCi0gICAgMjQ4LCAxNDIsIDIyNywgOTIsIDEsIDIxNywgMzMsIDIyNywgOTIsIDEsIDI0OSwgMTY3LCAyMjcsIDkyLCAxLCAyNTAsIAotICAgIDExNCwgMjI3LCA5MiwgMSwgMjMwLCAxNjEsIDIyNywgOTIsIDEsIDI0MiwgMTMyLCAyMjcsIDkyLCAxLCAyMjksIDE0NywgCi0gICAgMjI3LCA5MiwgMSwgMjE5LCA2MiwgMjI3LCA5MiwgMSwgMjIzLCA0NiwgMjI3LCA5MiwgMSwgMjU0LCAxMDUsIDIyNywgOTIsIAotICAgIDEsIDIyNywgNTMsIDIyNywgOTIsIDEsIDIxNSwgMTIxLCAyMjcsIDkyLCAxLCAyNDUsIDE4NywgMjI3LCA5MiwgMSwgMjM1LCAKLSAgICAxODYsIDIyNywgOTIsIDEsIDI0NSwgMTg4LCAyMjcsIDkyLCAxLCAyMjcsIDI0LCAyMjcsIDkyLCAxLCAyMTUsIDE3NiwgCi0gICAgMjI3LCA5MiwgMSwgMjM2LCAzNCwgMjI3LCA5MiwgMSwgMjQ1LCAxODUsIDIyNywgOTIsIDEsIDIyNiwgNzcsIDIyNywgOTIsIAotICAgIDI0NCwgMTE5LCA3NywgMjI3LCA5MiwgMjIzLCAyMDIsIDI0NCwgMTE5LCA3NywgMTY4LCAxLCAyNDQsIDExMCwgMjQ0LCAKLSAgICAxMDIsIDI0NCwgMTI0LCAyNDQsIDIzMCwgMTY4LCAxLCAyMTUsIDc5LCAxNjgsIDEsIDIxNSwgMTA2LCAyMTUsIDEyMiwgNjksIAotICAgIDE2OCwgMSwgMjEyLCAyMDUsIDE2OCwgMSwgMjEzLCAxMDUsIDE2OCwgMSwgMjE0LCA4MiwgMTY4LCAxLCAyMTcsIDg0LCAKLSAgICAyMTcsIDgzLCAyMTcsIDEwNCwgMTY4LCAxLCAyNDUsIDI1LCAxNjgsIDEsIDI1NCwgNCwgNjEsIDE2OCwgMSwgMjI3LCAxMCwgCi0gICAgNzUsIDE2OCwgMSwgMjU0LCAxNzcsIDYxLCAxNjgsIDEsIDI1NCwgMTMyLCAxNjgsIDEsIDIzMiwgMTg2LCA3NSwgMTY4LCAxLCAKLSAgICAyMjAsIDE2OCwgNzUsIDE2OCwgMSwgNzUsIDE2OCwgMSwgMjI3LCA5OSwgMTY4LCAxLCAyMjcsIDYyLCAxNjgsIDEsIDIyNCwgCi0gICAgNTUsIDIyNCwgNjcsIDIyMywgMjQ0LCAxNDksIDE2OCwgMSwgMjM0LCAxOTksIDE2OCwgMSwgMjUwLCAxMTEsIDE2OCwgMSwgCi0gICAgMjM0LCAyMDAsIDIzNSwgMjcsIDE2OCwgMSwgMjQzLCAxNzcsIDE2OCwgMSwgMjQ1LCA5NiwgMTY4LCAxLCAyNDMsIDM0LCAKLSAgICAyNDIsIDQ3LCAyNDMsIDE3NywgMTY4LCAxLCAyNDMsIDcyLCAxNjgsIDEsIDIxMywgMTc2LCAyMTMsIDE3MCwgMjE0LCA4MiwgCi0gICAgMTY4LCAxLCAyNDIsIDE5LCAyNDIsIDQxLCAxNjgsIDEsIDI0MiwgMjMsIDI0MiwgNDEsIDE2OCwgMSwgMjMyLCAxODgsIAotICAgIDI0MiwgNDEsIDE2OCwgMSwgMjIwLCAxNzEsIDI0MiwgNDEsIDE2OCwgMSwgMjMwLCA3LCAyMjgsIDE4LCAyMzAsIDgsIDIwNCwgCi0gICAgMTY4LCAxLCAyMjAsIDE2OSwgMjA0LCAxNjgsIDEsIDI0NiwgNjksIDE2OCwgMSwgMjM1LCAxNjYsIDIzNSwgMTcwLCAyMzUsIAotICAgIDE2MCwgNzIsIDE2OCwgMSwgNzQsIDE2OCwgMSwgMjM1LCAxMTgsIDIzNSwgMTQyLCAxNjgsIDEsIDI0MywgMTksIDE2OCwgMSwgCi0gICAgMjMyLCAxODksIDI1NCwgMTQ4LCAxNjgsIDEsIDIyMCwgMTczLCA2MSwgMTY4LCAxLCAyMzUsIDE1MiwgMjQ1LCA3MiwgMTY4LCAKLSAgICAxLCAyMjYsIDQwLCAyMjYsIDYxLCAyMjYsIDIyOSwgMTY4LCAxLCAyNTQsIDcyLCAyNDUsIDcxLCAxNjgsIDEsIDIxOSwgCi0gICAgMjExLCAxOTcsIDE2OCwgMSwgMjIwLCAxMDUsIDIzMiwgMTg1LCAxOTcsIDE2OCwgMSwgMjIwLCAxNjcsIDE5NywgMTY4LCAxLCAKLSAgICAyNTAsIDI1MiwgMTY4LCAxLCAyMTIsIDE1MiwgMTY4LCAxLCAyMTcsIDE2LCAyMTcsIDI2LCAyMTYsIDcsIDIxOCwgOTksIAotICAgIDE2OCwgMSwgMjIwLCAxNjYsIDIxOCwgOTksIDE2OCwgMSwgMjQ5LCAzLCAxNjgsIDEsIDI1MSwgMjA4LCAyNTEsIDIxMSwgCi0gICAgMjUxLCAxNDcsIDI1MywgNzQsIDE2OCwgMSwgMjIwLCAxNzIsIDI1MywgNzQsIDE2OCwgMSwgMjQ2LCA2OCwgMTY4LCAxLCAKLSAgICAyMjcsIDM2LCAxNjgsIDEsIDI0NSwgMTUzLCAyNDUsIDE1NSwgNzQsIDE2OCwgMSwgMjMxLCAyNDEsIDIzMSwgMjQ5LCAxODMsIAotICAgIDE2OCwgMSwgMjMyLCAxODcsIDE4MywgMTY4LCAxLCAyMjAsIDE3MCwgMTgzLCAxNjgsIDEsIDIzMywgOTcsIDIzMywgMTM3LCAKLSAgICAyMzIsIDE5NiwgMTUwLCAxNjgsIDEsIDI0NiwgNzAsIDE2OCwgMSwgMjM1LCAyMjcsIDE2OCwgMSwgMjM1LCAyMjgsIDE2OCwgCi0gICAgMSwgMjQ4LCAxNTMsIDI0OCwgMTU4LCAyNDksIDMsIDE2OCwgMSwgMjI3LCA2LCAyNDUsIDI0LCA3NSwgMTY4LCAxLCAyNDUsIAotICAgIDE4MywgMTY4LCAxLCAyMzUsIDE4NSwgMTY4LCAxLCAyNDksIDIxLCAxNjgsIDEsIDI1MCwgMjA1LCAxNjgsIDEsIDI1MCwgCi0gICAgMTIzLCAxNjgsIDEsIDIxOSwgMTAwLCAxNjgsIDEsIDIzMiwgMTg0LCAxNjgsIDEsIDIyMCwgMTY1LCAxNjgsIDEsIDI0MCwgCi0gICAgMTAzLCAxNjgsIDEsIDIyNCwgMjQwLCAxNjgsIDEsIDIxMywgMTY2LCAxNjgsIDIyMCwgODEsIDIyNSwgMjYsIDE2OCwgMjMwLCAKLSAgICAxNTUsIDIyNSwgMjYsIDE2OCwgMjQ5LCA3MSwgMjI1LCAyNiwgMTY4LCAyNTMsIDE3NywgODcsIDE2OCwgMjE2LCA0NywgODcsIAotICAgIDE2OCwgMjUxLCAyMjMsIDg3LCAyMTgsIDMyLCAxLCA2MSwgMjE4LCAzMiwgMSwgNzIsIDIxOCwgMzIsIDEsIDY5LCAyMTgsIAotICAgIDMyLCAxLCAxODEsIDIxOCwgMzIsIDEsIDI0MywgMTEwLCAyMTgsIDMyLCAxLCAyMjksIDE1OSwgMjE4LCAzMiwgMSwgMjE4LCAKLSAgICA1MiwgMjE4LCAzMiwgMSwgMjQ4LCAxNjQsIDIxOCwgMzIsIDEsIDIwNSwgMjE4LCAzMiwgMSwgMTkzLCAyMTgsIDMyLCAxLCAKLSAgICAyNTIsIDEwNywgMjE4LCAzMiwgMSwgMTg4LCAyMTgsIDMyLCAxLCAxODYsIDIxOCwgMzIsIDEsIDIzMywgMTU3LCAyMTgsIAotICAgIDMyLCAxLCAyMTQsIDQ5LCAyMTgsIDMyLCAxLCAyMjIsIDIwMiwgMjE4LCAzMiwgMSwgMTU5LCAyMTgsIDMyLCAzMCwgNSwgCi0gICAgNzIsIDIxOCwgMzIsIDMwLCA1LCA2OSwgMjE4LCAzMiwgNSwgMjE0LCAxMzMsIDI0MSwgMjQ2LCAxLCA2MSwgMjQxLCAyNDYsIAotICAgIDEsIDcyLCAyNDEsIDI0NiwgMSwgNjksIDI0MSwgMjQ2LCAxLCAxODEsIDI0MSwgMjQ2LCAxLCAyNDMsIDExMCwgMjQxLCAKLSAgICAyNDYsIDEsIDIyOSwgMTU5LCAyNDEsIDI0NiwgMSwgMjE4LCA1MiwgMjQxLCAyNDYsIDEsIDI0OCwgMTY0LCAyNDEsIDI0NiwgCi0gICAgMSwgMjA1LCAyNDEsIDI0NiwgMSwgMTkzLCAyNDEsIDI0NiwgMSwgMjUyLCAxMDcsIDI0MSwgMjQ2LCAxLCAxODgsIDI0MSwgCi0gICAgMjQ2LCAxLCAxODYsIDI0MSwgMjQ2LCAxLCAyMDMsIDI0MSwgMjQ2LCAxLCAyMzMsIDE1NywgMjQxLCAyNDYsIDEsIDIxNCwgCi0gICAgNDksIDI0MSwgMjQ2LCAxLCAyMjIsIDIwMiwgMjQxLCAyNDYsIDEsIDE1OSwgMjQxLCAyNDYsIDMwLCA1LCA3MiwgMjQxLCAKLSAgICAyNDYsIDMwLCA1LCA2OSwgMjQxLCAyNDYsIDUsIDIyNiwgMTc2LCAyMjYsIDIsIDIyMCwgODEsIDIyNSwgMjYsIDIyNiwgMiwgCi0gICAgNTEsIDIyNSwgMjYsIDI1MSwgNDksIDEsIDYxLCAyNTEsIDQ5LCAxLCA3MiwgMjUxLCA0OSwgMSwgNjksIDI1MSwgNDksIDEsIAotICAgIDE4MSwgMjUxLCA0OSwgMSwgMjQzLCAxMTAsIDI1MSwgNDksIDEsIDIyOSwgMTU5LCAyNTEsIDQ5LCAxLCAyMTgsIDUyLCAKLSAgICAyNTEsIDQ5LCAxLCAyNDgsIDE2NCwgMjUxLCA0OSwgMSwgMjA1LCAyNTEsIDQ5LCAxLCAxOTMsIDI1MSwgNDksIDEsIDI1MiwgCi0gICAgMTA3LCAyNTEsIDQ5LCAxLCAxODgsIDI1MSwgNDksIDEsIDE4NiwgMjUxLCA0OSwgMSwgMjAzLCAyNTEsIDQ5LCAxLCAyMzMsIAotICAgIDE1NywgMjUxLCA0OSwgMSwgMjE0LCA0OSwgMjUxLCA0OSwgMSwgMjIyLCAyMDIsIDI1MSwgNDksIDEsIDE1OSwgMjUxLCA0OSwgCi0gICAgMzAsIDUsIDcyLCAyNTEsIDQ5LCAzMCwgNSwgNjksIDIxOCwgMzEsIDEsIDYxLCAyMTgsIDMxLCAxLCA3MiwgMjE4LCAzMSwgCi0gICAgMSwgNjksIDIxOCwgMzEsIDEsIDE4MSwgMjE4LCAzMSwgMSwgMjQzLCAxMTAsIDIxOCwgMzEsIDEsIDIyOSwgMTU5LCAyMTgsIAotICAgIDMxLCAxLCAyMTgsIDUyLCAyMTgsIDMxLCAxLCAyNDgsIDE2NCwgMjE4LCAzMSwgMSwgMjA1LCAyMTgsIDMxLCAxLCAxOTMsIAotICAgIDIxOCwgMzEsIDEsIDI1MiwgMTA3LCAyMTgsIDMxLCAxLCAxODgsIDIxOCwgMzEsIDEsIDE4NiwgMjE4LCAzMSwgMSwgMjMzLCAKLSAgICAxNTcsIDIxOCwgMzEsIDEsIDIxNCwgNDksIDIxOCwgMzEsIDEsIDIyMiwgMjAyLCAyMTgsIDMxLCAzMCwgNSwgNzIsIDIxOCwgCi0gICAgMzEsIDMwLCA1LCA2OSwgODQsIDEsIDE4MSwgODQsIDEsIDIzNCwgMTM4LCA4NCwgMSwgMjM0LCAzNywgODQsIDEsIDIzNCwgCi0gICAgMTEzLCA4NCwgMSwgMjI5LCA5MCwgODQsIDEsIDI1MCwgMjE5LCA4NCwgMSwgMjUwLCA5MiwgODQsIDEsIDI0OSwgMTc1LCAKLSAgICA4NCwgMSwgMjUwLCAyMywgODQsIDEsIDIyNywgMjUzLCA4NCwgMSwgMjQ4LCAxNjQsIDg0LCAxLCAyMTYsIDEwNSwgODQsIDEsIAotICAgIDI0NywgOTksIDg0LCAxLCAyMTYsIDEwMCwgODQsIDEsIDIyOCwgMTg4LCA4NCwgMSwgMjE4LCA1MiwgODQsIDEsIDIxNywgCi0gICAgMTYxLCA4NCwgMSwgMTA4LCA4NCwgMSwgMjE3LCAxMDksIDg0LCAxLCAyMjgsIDE4NSwgODQsIDEsIDI1MiwgMTA3LCA4NCwgCi0gICAgMSwgMjI2LCAyMywgODQsIDEsIDIyNSwgMTUwLCA4NCwgMSwgMjI1LCAyNTMsIDg0LCAxLCAyMzAsIDIzMSwgODQsIDEsIAotICAgIDIxMiwgMjM1LCA4NCwgMSwgMjIzLCAxMTIsIDg0LCAxLCAyMzIsIDIwOCwgODQsIDEsIDIxNCwgMTE5LCA4NCwgMSwgMjIxLCAKLSAgICAyNCwgODQsIDEsIDIxOSwgMTIxLCA4NCwgMSwgMjIyLCAyMDIsIDg0LCAxLCAxNTksIDg0LCAxLCAyMzMsIDE1NywgODQsIDEsIAotICAgIDIyNCwgMjMyLCA4NCwgMjM1LCAyNDAsIDMwLCAyMjQsIDIxOCwgODQsIDIzNSwgMjQwLCAzMCwgMjI0LCAyMzEsIDg0LCAKLSAgICAyMzUsIDI0MCwgMzAsIDIyNCwgMTk4LCA4NCwgMjM1LCAyNDAsIDMwLCAyMjQsIDE5MywgODQsIDIzNSwgMjQwLCAzMCwgCi0gICAgMjI0LCAxNzUsIDg0LCAyMzUsIDI0MCwgMzAsIDIyNCwgMTQ3LCA4NCwgMjM1LCAyNDAsIDMwLCAyMjQsIDEzNSwgODQsIAotICAgIDIzNSwgMjQwLCAzMCwgMjI0LCAxMzQsIDg0LCAyMzUsIDI0MCwgMzAsIDIyMywgMTIsIDg0LCAyMzUsIDI0MCwgMzAsIDIyMywgCi0gICAgNSwgODQsIDIzNSwgMjQwLCAzMCwgMjMyLCAxMjEsIDg0LCAyMzUsIDI0MCwgMzAsIDIzMiwgMTEyLCA4NCwgMjM1LCAyNDAsIAotICAgIDMwLCAyMjQsIDIxMywgODQsIDIzNSwgMjQwLCAzMCwgMjI0LCAyMjQsIDg0LCAyMzUsIDI0MCwgMzAsIDIyNCwgMTgzLCAKLSAgICAyMTYsIDE1LCAxMTYsIDg0LCAyMzUsIDI0MCwgMzAsIDIyNCwgMTgzLCAyMTYsIDE1LCAxMDksIDg0LCAyMzUsIDI0MCwgMzAsIAotICAgIDIyNCwgMjE0LCA4NCwgMzAsIDIzNSwgMjI2LCAyNTMsIDIxNSwgODQsIDMwLCAyMzUsIDIyNiwgMjU0LCAyMzIsIDg0LCAzMCwgCi0gICAgNSwgMjU0LCAyMzIsIDg0LCAzMCwgNSwgNzIsIDg0LCAzMCwgNSwgMjM2LCAyOCwgODQsIDMwLCA1LCAyMTMsIDEwNSwgODQsIAotICAgIDMwLCA1LCAyMTIsIDE2MSwgODQsIDMwLCA1LCA2OSwgODQsIDMwLCA1LCAyMTUsIDkyLCA4NCwgMzAsIDUsIDIxNSwgMTk2LCAKLSAgICA4NCwgMzAsIDUsIDIyNywgOTksIDg0LCAzMCwgNSwgMTg2LCA4NCwgMzAsIDUsIDIzNiwgNTUsIDg0LCAzMCwgNSwgNzQsIAotICAgIDg0LCAzMCwgNSwgMjU0LCAxNDgsIDg0LCAzMCwgNSwgMjU0LCAxMDgsIDg0LCAzMCwgNSwgMjI3LCA0OSwgODQsIDMwLCA1LCAKLSAgICAyNTMsIDEwOCwgODQsIDUsIDIyOSwgMzcsIDg0LCA1LCAyMjQsIDE5LCA4NCwgNSwgMjEyLCAxNzIsIDg0LCA1LCAyMzAsIAotICAgIDEyMywgODQsIDUsIDIxNiwgMTcxLCA4NCwgNSwgMjUyLCA2MiwgODQsIDUsIDIyMywgMTA3LCA4NCwgNSwgMjE2LCAyNTEsIAotICAgIDg0LCA1LCAyMzQsIDI0NiwgODQsIDUsIDI1NCwgMTEwLCA4NCwgNSwgMjIyLCAxNjAsIDIyMiwgMTU0LCA4NCwgNSwgMjE0LCAKLSAgICAxMzAsIDg0LCA1LCAyNDksIDE3MCwgODQsIDUsIDI1MiwgMzcsIDg0LCA1LCAyMzQsIDEzMSwgODQsIDUsIDI1MiwgNTcsIAotICAgIDg0LCA1LCAyNTAsIDE5NywgMjI1LCAyMDQsIDIzMywgMjA5LCA4NCwgNSwgMjMzLCA1NCwgMjE2LCAyMzAsIDg0LCA1LCAKLSAgICAyNTEsIDE5NywgODQsIDUsIDIyNSwgMjU1LCAyMzAsIDE2OSwgODQsIDUsIDIzNCwgMTgsIDg0LCAyNDksIDM5LCAxNiwgCi0gICAgMjIzLCAxODEsIDg0LCA1LCAyNTMsIDkwLCA4NCwgNSwgMjUzLCAxMTEsIDg0LCAyMSwgMjEyLCA3OSwgODQsIDIxLCAxMTYsIAotICAgIDg0LCAyMSwgMTA5LCA4NCwgMjEsIDE2NiwgODQsIDIxLCAxNjMsIDg0LCAyMSwgMTgwLCA4NCwgMjEsIDE4OSwgODQsIDIxLCAKLSAgICAxOTgsIDg0LCAyMSwgMTk1LCA4NCwgMjEsIDIwMCwgODQsIDE2LCAyMzMsIDU0LCAyNTMsIDExMywgMjE5LCAyMjksIDg0LCAKLSAgICAxNiwgMjMzLCA1NCwgMjUzLCAxMTMsIDIzMCwgMTQxLCA4NCwgMTYsIDIzMywgNTQsIDI1MywgMTEzLCAyMjUsIDIwMywgODQsIAotICAgIDE2LCAyMzMsIDU0LCAyNTMsIDExMywgMjUxLCAyMjUsIDg0LCAxNiwgMjMzLCA1NCwgMjUzLCAxMTMsIDI1MSwgMzIsIDg0LCAKLSAgICAxNiwgMjMzLCA1NCwgMjUzLCAxMTMsIDIyNSwgOTUsIDg0LCAxNiwgMjMzLCA1NCwgMjUzLCAxMTMsIDIyNSwgODksIDg0LCAKLSAgICAxNiwgMjMzLCA1NCwgMjUzLCAxMTMsIDIyNSwgODcsIDg0LCAxNiwgMjMzLCA1NCwgMjUzLCAxMTMsIDIyNSwgOTMsIDg0LCAKLSAgICAxNiwgMjMzLCA1NCwgMjUzLCAxMTMsIDIyNSwgOTEsIDgxLCAyNTEsIDE1OSwgODEsIDI0NSwgMTIwLCA4MSwgMjQ5LCAxNTcsIAotICAgIDgxLCAyNDMsIDIwMCwgMjE5LCA2OSwgODEsIDI0OSwgMTY0LCA4MSwgMjQzLCAyMzcsIDI0NywgNzIsIDgxLCAyMTYsIDI1MCwgCi0gICAgMjE5LCAyMzYsIDI0MCwgMTYwLCA4MSwgMjIwLCAxMTYsIDQsIDI1MSwgOTgsIDIzMSwgMjE3LCA4MSwgMjMxLCAyNDYsIAotICAgIDI0OSwgMTU3LCA4MSwgMjMxLCAyNDYsIDI0MywgMjAwLCAyMTksIDY5LCA4MSwgMjI5LCAyMiwgODEsIDI0MywgMjIzLCA0MywgCi0gICAgMjIyLCA3NywgMTE2LCA4MSwgMjQzLCAyMjMsIDQzLCAyMjIsIDc3LCAxMDksIDgxLCAyNDMsIDIyMywgNDMsIDIyMiwgNzcsIAotICAgIDE2NiwgODEsIDMwLCAyMjEsIDU3LCA4MSwgMjEsIDIxMiwgNzksIDgxLCAyMSwgMTE2LCA4MSwgMjEsIDEwOSwgODEsIDIxLCAKLSAgICAxNjYsIDgxLCAyMSwgMTYzLCA4MSwgMjEsIDE4MCwgODEsIDIxLCAxODksIDgxLCAyMSwgMTk4LCA4MSwgMjEsIDE5NSwgODEsIAotICAgIDIxLCAyMDAsIDgxLCAxLCA2MSwgODEsIDEsIDc0LCA4MSwgMSwgNzIsIDgxLCAxLCA3NSwgODEsIDEsIDY5LCA4MSwgMSwgCi0gICAgMjI3LCA5OSwgODEsIDEsIDIxNSwgMTgzLCA4MSwgMSwgMjQ1LCAxNjUsIDgxLCAxLCAyMDUsIDgxLCAxLCAyNTQsIDI0LCAKLSAgICA4MSwgMSwgMjUyLCAxMDcsIDgxLCAxLCAxOTMsIDgxLCAxLCAyMjQsIDIzMiwgODEsIDEsIDI0MywgMTEwLCA4MSwgMSwgCi0gICAgMTg4LCA4MSwgMSwgMjMzLCAxNTcsIDgxLCAxLCAyMjIsIDIwMiwgODEsIDEsIDIyMSwgMjQsIDgxLCAxLCAyMTgsIDUyLCAKLSAgICA4MSwgMSwgMjQ4LCAxNjQsIDgxLCAxLCAyNTAsIDkyLCA4MSwgMSwgMjM1LCAxMzksIDgxLCAxLCAxODYsIDgxLCAxLCAyMDMsIAotICAgIDgxLCAxLCAyMTQsIDQ5LCA4MSwgMSwgMjQ0LCAxNjQsIDgxLCAxLCAxODEsIDgxLCAxLCAyMzQsIDEzOCwgODEsIDEsIDIxNiwgCi0gICAgMTQxLCA4MSwgMSwgMjEyLCAxMDksIDgxLCAxLCAyNDIsIDI3LCA4MSwgMSwgMjEyLCA5LCA4MSwgMSwgMjMzLCAyNSwgODEsIAotICAgIDEsIDIxMiwgNjIsIDgxLCAxLCAyNTAsIDQ3LCA4MSwgMSwgMjE2LCAyNTAsIDE4NCwgMzAsIDUyLCA4MSwgMSwgMjE2LCAKLSAgICAyNTAsIDc0LCA4MSwgMSwgMjE2LCAyNTAsIDcyLCA4MSwgMSwgMjE2LCAyNTAsIDc1LCA4MSwgMSwgMjE2LCAyNTAsIDY5LCAKLSAgICA4MSwgMSwgMjE2LCAyNTAsIDIyNywgOTksIDgxLCAxLCAyMTYsIDI1MCwgMjE1LCAxODMsIDgxLCAxLCAyMTYsIDI1MCwgCi0gICAgMjU0LCAyNCwgODEsIDEsIDIxNiwgMjUwLCAyNTIsIDEwNywgODEsIDEsIDIxNiwgMjUwLCAxOTMsIDgxLCAxLCAyMTYsIAotICAgIDI1MCwgMjI0LCAyMzIsIDgxLCAxLCAyMTYsIDI1MCwgMjQzLCAxMTAsIDgxLCAxLCAyMTYsIDI1MCwgMTg4LCA4MSwgMSwgCi0gICAgMjE2LCAyNTAsIDIxOCwgNTIsIDgxLCAxLCAyMTYsIDI1MCwgMjQ4LCAxNjQsIDgxLCAxLCAyMTYsIDI1MCwgMjUwLCA5MiwgCi0gICAgODEsIDEsIDIxNiwgMjUwLCAyMzUsIDEzOSwgODEsIDEsIDIxNiwgMjUwLCAyMTYsIDE0MSwgODEsIDEsIDIxNiwgMjUwLCAKLSAgICAxODYsIDgxLCAxLCAyMTYsIDI1MCwgMjE0LCA0OSwgODEsIDEsIDIxNiwgMjUwLCAxODEsIDgxLCAxLCAyMTYsIDI1MCwgCi0gICAgMjQzLCAxMDcsIDgxLCAxLCAyMTYsIDI1MCwgMjQyLCAyNywgODEsIDEsIDIxNiwgMjUwLCAyMzUsIDEwOSwgODEsIDEsIAotICAgIDIxNiwgMjUwLCAyMjksIDYyLCA4MSwgMSwgMjE2LCAyNTAsIDI0NSwgMjQ5LCA4MSwgMSwgMjIwLCAxMTYsIDc0LCA4MSwgMSwgCi0gICAgMjIwLCAxMTYsIDcyLCA4MSwgMSwgMjIwLCAxMTYsIDIzNSwgMTUwLCA4MSwgMSwgMjIwLCAxMTYsIDIxNSwgMTgzLCA4MSwgCi0gICAgMSwgMjIwLCAxMTYsIDY5LCA4MSwgMSwgMjIwLCAxMTYsIDI1NCwgMjQsIDgxLCAxLCAyMjAsIDExNiwgMTgxLCA4MSwgMSwgCi0gICAgMjIwLCAxMTYsIDI0MywgMTEwLCA4MSwgMSwgMjIwLCAxMTYsIDE1OSwgODEsIDEsIDIyMCwgMTE2LCAxOTMsIDgxLCAxLCAKLSAgICAyMjAsIDExNiwgMjIxLCAyNCwgODEsIDEsIDIyMCwgMTE2LCAyMTgsIDUyLCA4MSwgMSwgMjIwLCAxMTYsIDI0OCwgMTY0LCAKLSAgICA4MSwgMSwgMjIwLCAxMTYsIDIzNSwgMTM5LCA4MSwgMSwgMjIwLCAxMTYsIDI0NCwgMTY0LCA4MSwgMSwgMjIwLCAxMTYsIAotICAgIDI0MywgMTA3LCA4MSwgMSwgMjIwLCAxMTYsIDI0MiwgMjcsIDgxLCAxLCAyMjAsIDExNiwgMjE2LCAxNDEsIDgxLCAxLCAKLSAgICAyMjAsIDExNiwgMjEyLCAxMDksIDgxLCAxLCAyMjAsIDExNiwgMjI0LCA3NCwgODEsIDEsIDIyMCwgMTE2LCAyNTAsIDkyLCAKLSAgICA4MSwgMSwgMjIwLCAxMTYsIDIxMiwgNzUsIDgxLCAxLCAyMzEsIDI0NiwgNzIsIDgxLCAxLCAyMzEsIDI0NiwgMTgxLCA4MSwgCi0gICAgMSwgMjMxLCAyNDYsIDIwMywgODEsIDEsIDIzMSwgMjQ2LCAyNDQsIDE2NCwgODEsIDEsIDIzMSwgMjQ2LCAyMTIsIDc1LCAKLSAgICA4MSwgMSwgMjU0LCA3MSwgMjQzLCA5MiwgMjUzLCAyNDMsIDExNiwgODEsIDEsIDI1NCwgNzEsIDI0MywgOTIsIDIxNCwgCi0gICAgMTI5LCAxMTYsIDgxLCAxLCAyNTQsIDcxLCAyNDMsIDkyLCAyNDgsIDEzMSwgODEsIDEsIDI1NCwgNzEsIDI0MywgOTIsIAotICAgIDIxNSwgMTkzLCA4MSwgMSwgMjU0LCA3MSwgMjQzLCA5MiwgMjM1LCAxOTEsIDIxNSwgMTkzLCA4MSwgMSwgMjU0LCA3MSwgCi0gICAgMjQzLCA5MiwgMjUyLCA3NCwgODEsIDEsIDI1NCwgNzEsIDI0MywgOTIsIDEzMywgMjUyLCA3NCwgODEsIDEsIDI1NCwgNzEsIAotICAgIDI0MywgOTIsIDYxLCA4MSwgMSwgMjU0LCA3MSwgMjQzLCA5MiwgNzIsIDgxLCAxLCAyNTQsIDcxLCAyNDMsIDkyLCAxODEsIAotICAgIDgxLCAxLCAyNTQsIDcxLCAyNDMsIDkyLCAyMjksIDE1OSwgODEsIDEsIDI1NCwgNzEsIDI0MywgOTIsIDI1MCwgMjE5LCA4MSwgCi0gICAgMSwgMjU0LCA3MSwgMjQzLCA5MiwgMjE2LCAxMTUsIDgxLCAxLCAyNTQsIDcxLCAyNDMsIDkyLCAyMTYsIDEwNSwgODEsIDEsIAotICAgIDI1NCwgNzEsIDI0MywgOTIsIDI0OCwgODYsIDgxLCAxLCAyNTQsIDcxLCAyNDMsIDkyLCAyMjgsIDE5OCwgODEsIDEsIDI1NCwgCi0gICAgNzEsIDI0MywgOTIsIDIxOCwgNTIsIDgxLCAxLCAyNTQsIDcxLCAyNDMsIDkyLCAyNDgsIDE2NCwgODEsIDEsIDI1NCwgNzEsIAotICAgIDI0MywgOTIsIDE5MywgODEsIDEsIDI1NCwgNzEsIDI0MywgOTIsIDIyNiwgMjMsIDgxLCAxLCAyNTQsIDcxLCAyNDMsIDkyLCAKLSAgICAyMTksIDE1NywgODEsIDEsIDI1NCwgNzEsIDI0MywgOTIsIDIxMiwgNzUsIDgxLCAxLCAyNTQsIDcxLCAyNDMsIDkyLCAyMTIsIAotICAgIDEwOSwgODEsIDEsIDI1NCwgNzEsIDI0MywgOTIsIDI1NCwgMTE0LCA4MSwgMSwgMjE2LCAyNTAsIDI1NCwgNzEsIDI0MywgCi0gICAgOTIsIDIxOCwgNTIsIDgxLCAxLCAyMTYsIDI1MCwgMjU0LCA3MSwgMjQzLCA5MiwgMjEyLCA3NSwgODEsIDEsIDIzMSwgMjQ2LCAKLSAgICAyNTQsIDcxLCAyNDMsIDkyLCAyNDIsIDIyNSwgODEsIDEsIDIzMSwgMjQ2LCAyNTQsIDcxLCAyNDMsIDkyLCAyMjksIDE1OSwgCi0gICAgODEsIDEsIDIzMSwgMjQ2LCAyNTQsIDcxLCAyNDMsIDkyLCAyNTAsIDIxOSwgODEsIDEsIDIzMSwgMjQ2LCAyNTQsIDcxLCAKLSAgICAyNDMsIDkyLCAyMzUsIDExNSwgODEsIDEsIDIzMSwgMjQ2LCAyNTQsIDcxLCAyNDMsIDkyLCAyMTYsIDExNSwgODEsIDEsIAotICAgIDIzMSwgMjQ2LCAyNTQsIDcxLCAyNDMsIDkyLCAyNDgsIDcwLCA4MSwgMSwgMjMxLCAyNDYsIDI1NCwgNzEsIDI0MywgOTIsIAotICAgIDIxOCwgNTIsIDgxLCAxLCAyMzEsIDI0NiwgMjU0LCA3MSwgMjQzLCA5MiwgMjQ3LCAyMzIsIDgxLCAxLCAyMzEsIDI0NiwgCi0gICAgMjU0LCA3MSwgMjQzLCA5MiwgMjE5LCAxNTcsIDgxLCAxLCAyMzEsIDI0NiwgMjU0LCA3MSwgMjQzLCA5MiwgMjQ5LCAxNSwgCi0gICAgODEsIDEsIDIzMSwgMjQ2LCAyNTQsIDcxLCAyNDMsIDkyLCAyMTIsIDc1LCA4MSwgMSwgMjMxLCAyNDYsIDI1NCwgNzEsIAotICAgIDI0MywgOTIsIDIxMiwgMTA5LCA4MSwgMSwgMjU0LCA3MSwgMjQzLCA5MiwgMTUxLCA2OSwgODEsIDEsIDI1NCwgNzEsIDI0MywgCi0gICAgOTIsIDE1MSwgMTg2LCA4MSwgMSwgMjMxLCAyNDYsIDI1NCwgNzEsIDI0MywgOTIsIDI1MSwgMTk1LCA4MSwgMSwgMjU0LCAKLSAgICA3MSwgMjQzLCA5MiwgMjQ4LCAxNTQsIDgxLCAxLCAyMzEsIDI0NiwgMjU0LCA3MSwgMjQzLCA5MiwgMjMzLCAyNSwgMTgsIAotICAgIDE5LCAyMjYsIDIzMywgMTgsIDE5LCAyNTMsIDgzLCAxOCwgMTksIDI1NCwgMTg4LCAxOCwgMTksIDIxNCwgOSwgMTgsIDE5LCAKLSAgICAyMjUsIDEwMSwgMTgsIDE5LCAyMjYsIDEwMywgMTgsIDE5LCAyMjQsIDI0OSwgMTgsIDE5LCAyMTcsIDIzOCwgMTgsIDE5LCAKLSAgICAyMzQsIDE5NSwgMTgsIDE5LCAyMzMsIDIwMSwgMTgsIDE5LCAyMzEsIDE5NiwgMTgsIDE5LCAyMjgsIDE0OCwgMTgsIDE5LCAKLSAgICAyMzAsIDMsIDE4LCAxOSwgMjMzLCA5MiwgMTgsIDE5LCAyMTksIDIwOSwgMTgsIDE5LCAyMjIsIDEyOSwgMTgsIDE5LCAyMjAsIAotICAgIDE1NiwgMTgsIDE5LCAyMjAsIDI0NiwgMTgsIDE5LCAyMjAsIDEyNywgMTgsIDE5LCAyMTIsIDIxMSwgMTgsIDE5LCAyMTMsIAotICAgIDQzLCAxOCwgMTksIDIyNCwgMjcsIDE4LCAxOSwgMjI4LCAyOCwgMTgsIDE5LCAyMjcsIDgyLCAyMjgsIDI4LCAxOCwgMTksIAotICAgIDIyOCwgMjcsIDE4LCAxOSwgMjI3LCA4MiwgMjI4LCAyNywgMTgsIDE5LCAyMjgsIDI2LCAxOCwgMTksIDIyNywgODIsIDIyOCwgCi0gICAgMjYsIDE4LCAxOSwgMjI4LCAyNSwgMTgsIDE5LCAyMjcsIDgyLCAyMjgsIDI1LCAxOCwgMTksIDIyMywgMTcsIDE4LCAxOSwgCi0gICAgMjIzLCAxNiwgMTgsIDE5LCAyMjMsIDE1LCAxOCwgMTksIDIyMywgMTQsIDE4LCAxOSwgMjIzLCAxMywgMTgsIDE5LCAyMjMsIAotICAgIDIxLCAxOCwgMTksIDIyNywgODIsIDIyNiwgMjI5LCAxOCwgMTksIDIyNywgODIsIDIxOCwgOTksIDE4LCAxOSwgMjI3LCA4MiwgCi0gICAgMjM1LCAyNywgMTgsIDE5LCAyMjcsIDgyLCAyNTAsIDI1MiwgMTgsIDE5LCAyMjcsIDgyLCAxODMsIDE4LCAxOSwgMjI3LCAKLSAgICA4MiwgMjA0LCAxOCwgMTksIDIyNywgODIsIDE5NywgMTgsIDE5LCAyMjcsIDgyLCAyMjEsIDI2LCAxOCwgMTksIDI0NSwgCi0gICAgMTc1LCAyMTQsIDgyLCAxOCwgMTksIDIxMywgMjQ4LCAyMTQsIDgyLCAxOCwgMTksIDQwLCAzLCAyMjMsIDEzMCwgMTgsIDE5LCAKLSAgICA0MCwgMjI0LCA0OCwgMjQ3LCA3NCwgMTgsIDE5LCAyMjQsIDExMiwgMjIzLCAxOCwgMTgsIDE5LCAxNDgsIDIzMiwgMTgwLCAKLSAgICAxOCwgMTksIDE0OCwgMjMzLCAxNTYsIDE4LCAxOSwgMjE3LCA4MCwgMTgsIDE5LCAyMTcsIDgyLCAxOCwgMTksIDIxNiwgOTcsIAotICAgIDE4LCAxOSwgMjE2LCA5OSwgMTgsIDE5LCAyMTYsIDEwNCwgMTgsIDE5LCAyMTcsIDIsIDE4LCAxOSwgMjE3LCA0LCAxOCwgCi0gICAgMTksIDIyMiwgMTI3LCAyMjAsIDEzMiwgMTgsIDE5LCAyMjIsIDEyNywgMjIwLCAxODEsIDE4LCAxOSwgMjIyLCAxMjcsIAotICAgIDI0MSwgMzksIDE4LCAxOSwgNjYsIDI0MiwgNTQsIDE4LCAxOSwgNjYsIDI0OCwgMywgMjQzLCAzMSwgMTgsIDE5LCA2NiwgCi0gICAgMjQzLCAxMDcsIDE4LCAxOSwgNjYsIDI0MiwgNTksIDE4LCAxOSwgMjIyLCAxMjcsIDIzNSwgMzcsIDE4LCAxOSwgNjYsIAotICAgIDIzNSwgMzUsIDE4LCAxOSwgMjUxLCAyNDQsIDI0OCwgMywgMTUwLCAxOCwgMTksIDI1MSwgMjQ0LCAyNDgsIDMsIDE0OSwgCi0gICAgMTgsIDE5LCA2NiwgMjQ3LCAyNTQsIDE5NywgMjA5LCAyMTQsIDEwMywgMjMzLCAzNCwgMjA5LCAxLCAxODEsIDIwOSwgMSwgCi0gICAgMjM0LCAxMzgsIDIwOSwgMSwgMjQzLCAxMTAsIDIwOSwgMSwgMjQyLCAyMjUsIDIwOSwgMSwgMjI5LCAxNTksIDIwOSwgMSwgCi0gICAgMjUwLCAyMTksIDIwOSwgMSwgMjUwLCA5MiwgMjA5LCAxLCAyMzUsIDEzOSwgMjA5LCAxLCAyMzUsIDExNSwgMjA5LCAxLCAKLSAgICAyMTMsIDYwLCAyMDksIDEsIDIxOCwgNTIsIDIwOSwgMSwgMjE3LCAxNjEsIDIwOSwgMSwgMjQ4LCAxNjQsIDIwOSwgMSwgCi0gICAgMjQ3LCAyMzIsIDIwOSwgMSwgMjA1LCAyMDksIDEsIDE5MywgMjA5LCAxLCAyMjYsIDIzLCAyMDksIDEsIDI1MiwgMTA3LCAKLSAgICAyMDksIDEsIDI1MSwgMTk1LCAyMDksIDEsIDE4OCwgMjA5LCAxLCAxODYsIDIwOSwgMSwgMjAzLCAyMDksIDEsIDIzMywgCi0gICAgMTU3LCAyMDksIDEsIDIxNCwgNDksIDIwOSwgMSwgMjIxLCAyNCwgMjA5LCAxLCAyMTksIDE1NywgMjA5LCAxLCAyMjIsIAotICAgIDIwMiwgMjA5LCAxLCAxNTksIDIwOSwgMzAsIDUsIDYxLCAyMDksIDMwLCA1LCA3MiwgMjA5LCAzMCwgNSwgNjksIDIwOSwgCi0gICAgMzAsIDUsIDI0NSwgMTY1LCAyMDksIDMwLCA1LCAyNTQsIDEwOCwgMjA5LCAzMCwgNSwgMjI3LCA0OSwgMjA5LCAzMCwgNSwgCi0gICAgMjUzLCAxMDgsIDIwOSwgMzAsIDUsIDc0LCAyMDksIDMwLCA1LCA3NSwgMjA5LCAyMTksIDE4LCAxLCAxODYsIDIwOSwgMjE5LCAKLSAgICAxOCwgMSwgMjAzLCAyMDksIDIxOSwgMTgsIDEsIDIxNCwgNDksIDIwOSwgMywgMSwgMTgxLCAyMDksIDMsIDEsIDIyOSwgCi0gICAgMTU5LCAyMDksIDMsIDEsIDI1MywgMjQyLCAyMDksIDMsIDEsIDIxOCwgNTIsIDIwOSwgMywgMSwgMjA1LCAyMDksIDMsIDEsIAotICAgIDE5MywgMjA5LCAzLCAxLCAxODgsIDIwOSwgMywgMSwgMjAzLCAyMDksIDMsIDEsIDIzMywgMTU3LCAyMDksIDUsIDIzMCwgCi0gICAgMTU5LCAyMDksIDUsIDIzNCwgMTc3LCAyMDksIDUsIDIyMiwgMjAxLCAyMDksIDUsIDIzMiwgMTgwLCAyMDksIDI0NCwgMjU0LCAKLSAgICA3NywgMjA5LCAyMjQsIDE1OCwgNzcsIDIwOSwgMjEsIDIxMiwgNzksIDIwOSwgMjEsIDExNiwgMjA5LCAyMSwgMTA5LCAyMDksIAotICAgIDIxLCAxNjYsIDIwOSwgMjEsIDE2MywgMjA5LCAyMSwgMTgwLCAyMDksIDIxLCAxODksIDIwOSwgMjEsIDE5OCwgMjA5LCAyMSwgCi0gICAgMTk1LCAyMDksIDIxLCAyMDAsIDM4LCAyMzMsIDgzLCAxLCAxODEsIDM4LCAyMzMsIDgzLCAxLCAyMTMsIDE1MywgMzgsIAotICAgIDIzMywgODMsIDEsIDIyOSwgMTU5LCAzOCwgMjMzLCA4MywgMSwgMjE2LCAxNDEsIDM4LCAyMzMsIDgzLCAxLCAyMjIsIDIwMiwgCi0gICAgMzgsIDIzMywgODMsIDEsIDE4NiwgMzgsIDIzMywgODMsIDEsIDIxOCwgNTIsIDM4LCAyMzMsIDgzLCAxLCAyMTcsIDE2MSwgCi0gICAgMzgsIDIzMywgODMsIDEsIDIzMywgMTU3LCAzOCwgMjMzLCA4MywgMSwgMTkzLCAzOCwgMjMzLCA4MywgMSwgMjI2LCAyMywgCi0gICAgMzgsIDIzMywgODMsIDEsIDE4OCwgMzgsIDIzMywgODMsIDEsIDI0NCwgMTY0LCAzOCwgMjMzLCA4MywgMSwgMjE1LCAxLCAKLSAgICAzOCwgMjMzLCA4MywgMSwgMTU5LCAzOCwgMjMzLCA4MywgMSwgMjI0LCAyMzIsIDM4LCAyMzMsIDgzLCAxLCAyMzQsIDEzOCwgCi0gICAgMzgsIDIzMywgODMsIDEsIDIxNiwgMTMzLCAzOCwgMjMzLCA4MywgMSwgMjA1LCAzOCwgMjMzLCA4MywgMSwgNjEsIDM4LCAKLSAgICAyMzMsIDgzLCAxLCA3MiwgMzgsIDIzMywgODMsIDEsIDI0NSwgMTY1LCAzOCwgMjMzLCA4MywgMSwgMjQ1LCAxNTQsIDM4LCAKLSAgICAyMzMsIDgzLCAxLCA2OSwgMzgsIDIzMywgODMsIDEsIDIyNywgNDksIDM4LCAyMzMsIDgzLCAxLCA3NSwgMzgsIDIzMywgODMsIAotICAgIDEsIDIxNSwgMTgzLCAzOCwgMjMzLCA4MywgMSwgNzQsIDM4LCAyMzMsIDgzLCAxLCAyNTMsIDEwNiwgMzgsIDIzMywgODMsIAotICAgIDEsIDI1NCwgMTA4LCAzOCwgMjMzLCA4MywgMSwgMjE2LCAyMzksIDM4LCAyMzMsIDgzLCAxLCAyMTYsIDIzOCwgMzgsIDIzMywgCi0gICAgODMsIDEsIDIxNiwgMjM3LCAzOCwgMjMzLCA4MywgMSwgMjE2LCAyMzYsIDM4LCAyMzMsIDgzLCAxLCAyMTYsIDIzNSwgMTU2LCAKLSAgICAzOCwgMTY1LCAxLCAxMjQsIDIyNCwgMjMyLCAxNTYsIDM4LCAxNjUsIDEsIDExNSwgMjI0LCAyMzIsIDE1NiwgMzgsIDE2NSwgCi0gICAgMSwgMTI0LCAxODEsIDE1NiwgMzgsIDE2NSwgMSwgMTI0LCAyMTMsIDE1MywgMTU2LCAzOCwgMTY1LCAxLCAxMjQsIDIyOSwgCi0gICAgMTU5LCAxNTYsIDM4LCAxNjUsIDEsIDExNSwgMTgxLCAxNTYsIDM4LCAxNjUsIDEsIDExNSwgMjEzLCAxNTMsIDE1NiwgMzgsIAotICAgIDE2NSwgMSwgMTE1LCAyMjksIDE1OSwgMTU2LCAzOCwgMTY1LCAxLCAxMjQsIDIxNiwgMTQxLCAxNTYsIDM4LCAxNjUsIDEsIAotICAgIDEyNCwgMjIyLCAyMDIsIDE1NiwgMzgsIDE2NSwgMSwgMTI0LCAxODYsIDE1NiwgMzgsIDE2NSwgMSwgMTE1LCAyMTYsIDE0MSwgCi0gICAgMTU2LCAzOCwgMTY1LCAxLCAxMTUsIDIyMiwgMjAyLCAxNTYsIDM4LCAxNjUsIDEsIDExNSwgMTg2LCAxNTYsIDM4LCAxNjUsIAotICAgIDEsIDEyNCwgMjE4LCA1MiwgMTU2LCAzOCwgMTY1LCAxLCAxMjQsIDIxNywgMTYxLCAxNTYsIDM4LCAxNjUsIDEsIDEyNCwgCi0gICAgMjA1LCAxNTYsIDM4LCAxNjUsIDEsIDExNSwgMjE4LCA1MiwgMTU2LCAzOCwgMTY1LCAxLCAxMTUsIDIxNywgMTYxLCAxNTYsIAotICAgIDM4LCAxNjUsIDEsIDExNSwgMjA1LCAxNTYsIDM4LCAxNjUsIDEsIDEyNCwgMTkzLCAxNTYsIDM4LCAxNjUsIDEsIDEyNCwgCi0gICAgMjI2LCAyMywgMTU2LCAzOCwgMTY1LCAxLCAxMjQsIDE4OCwgMTU2LCAzOCwgMTY1LCAxLCAxMTUsIDE5MywgMTU2LCAzOCwgCi0gICAgMTY1LCAxLCAxMTUsIDIyNiwgMjMsIDE1NiwgMzgsIDE2NSwgMSwgMTE1LCAxODgsIDE1NiwgMzgsIDE2NSwgMSwgMTI0LCAKLSAgICAyNDQsIDE2NCwgMTU2LCAzOCwgMTY1LCAxLCAxMjQsIDIxNSwgMSwgMTU2LCAzOCwgMTY1LCAxLCAxMjQsIDIzMywgMTU3LCAKLSAgICAxNTYsIDM4LCAxNjUsIDEsIDExNSwgMjQ0LCAxNjQsIDE1NiwgMzgsIDE2NSwgMSwgMTE1LCAyMTUsIDEsIDE1NiwgMzgsIAotICAgIDE2NSwgMSwgMTE1LCAyMzMsIDE1NywgMTU2LCAzOCwgMTY1LCAxLCAxMjQsIDE1OSwgMTU2LCAzOCwgMTY1LCAxLCAxMjQsIAotICAgIDI0OCwgMTY0LCAxNTYsIDM4LCAxNjUsIDEsIDEyNCwgMjUyLCAxMDcsIDE1NiwgMzgsIDE2NSwgMSwgMTE1LCAxNTksIDE1NiwgCi0gICAgMzgsIDE2NSwgMSwgMTE1LCAyNDgsIDE2NCwgMTU2LCAzOCwgMTY1LCAxLCAxMTUsIDI1MiwgMTA3LCAxNTYsIDM4LCAxNjUsIAotICAgIDEsIDEyNCwgMjMzLCAyMDYsIDE1NiwgMzgsIDE2NSwgMSwgMTI0LCAyMTMsIDEyNiwgMTU2LCAzOCwgMTY1LCAxLCAxMTUsIAotICAgIDIzMywgMjA2LCAxNTYsIDM4LCAxNjUsIDEsIDExNSwgMjEzLCAxMjYsIDE1NiwgMzgsIDE2NSwgMSwgMTI0LCAyMTksIDI2LCAKLSAgICAxNTYsIDM4LCAxNjUsIDEsIDExNSwgMjE5LCAyNiwgMTU2LCAzOCwgMTY1LCAzMCwgNSwgMzAsIDIyMCwgMTYzLCAxNTYsIAotICAgIDM4LCAxNjUsIDMwLCA1LCAyNTQsIDIzMiwgMTU2LCAzOCwgMTY1LCAzMCwgNSwgMjM2LCAyOCwgMTU2LCAzOCwgMTY1LCAzMCwgCi0gICAgNSwgNjksIDE1NiwgMzgsIDE2NSwgMzAsIDUsIDIxNSwgOTIsIDE1NiwgMzgsIDE2NSwgMzAsIDUsIDc0LCAxNTYsIDM4LCAKLSAgICAxNjUsIDMwLCA1LCAyNTQsIDE0OCwgMTU2LCAzOCwgMTY1LCAzMCwgNSwgNzUsIDE1NiwgMzgsIDE2NSwgMzAsIDUsIDIyNywgCi0gICAgMTIwLCAxNTYsIDM4LCAxNjUsIDMwLCA1LCAyMTUsIDE4MywgMTU2LCAzOCwgMTY1LCAzMCwgNSwgMjUzLCA4MywgMTU2LCAKLSAgICAzOCwgMTY1LCAzMCwgNSwgMjU0LCAxODgsIDE1NiwgMzgsIDE2NSwgMzAsIDUsIDIxNSwgODUsIDE1NiwgMzgsIDE2NSwgMzAsIAotICAgIDUsIDIyNiwgMjMzLCAxNTYsIDM4LCAxNjUsIDMwLCA1LCAyMjcsIDExNywgMTU2LCAzOCwgMTY1LCAzMCwgNSwgMjE1LCAKLSAgICAxODAsIDE1NiwgMzgsIDE2NSwgMzAsIDUsIDIzNSwgMTUwLCAxNTYsIDM4LCAxNjUsIDEsIDQwLCAyMTUsIDc5LCAxNTYsIAotICAgIDM4LCAxNjUsIDEsIDQwLCAyMjksIDE2MSwgMTU2LCAzOCwgMTY1LCAxLCA0MCwgMjA0LCAxNTYsIDM4LCAxNjUsIDEsIDQwLCAKLSAgICAxODMsIDE1NiwgMzgsIDE2NSwgMSwgNDAsIDIzNSwgMjcsIDE1NiwgMzgsIDE2NSwgMSwgNDAsIDI0OSwgMywgMTU2LCAzOCwgCi0gICAgMTY1LCAxLCA0MCwgMjUzLCA3NCwgMTU2LCAzOCwgMTY1LCAxNjAsIDIzMSwgMjIxLCAxNTYsIDM4LCAxNjUsIDE2MCwgMjMxLCAKLSAgICAyMjAsIDE1NiwgMzgsIDE2NSwgMjEsIDIxMiwgNzksIDE1NiwgMzgsIDE2NSwgMjEsIDExNiwgMTU2LCAzOCwgMTY1LCAyMSwgCi0gICAgMTA5LCAxNTYsIDM4LCAxNjUsIDIxLCAxNjYsIDE1NiwgMzgsIDE2NSwgMjEsIDE2MywgMTU2LCAzOCwgMTY1LCAyMSwgMTgwLCAKLSAgICAxNTYsIDM4LCAxNjUsIDIxLCAxODksIDE1NiwgMzgsIDE2NSwgMjEsIDE5OCwgMTU2LCAzOCwgMTY1LCAyMSwgMTk1LCAxNTYsIAotICAgIDM4LCAxNjUsIDIxLCAyMDAsIDE1NiwgMzgsIDE2NSwgODgsIDIxLCAxMTYsIDE1NiwgMzgsIDE2NSwgNSwgMjMzLCAxNDMsIAotICAgIDE1NiwgMzgsIDE2NSwgNSwgMjMzLCAxNDIsIDg0LCAxNiwgMjI2LCAxMDksIDg0LCAxNiwgMjMwLCAxNDIsIDIzNCwgMzQsIAotICAgIDg0LCAxNiwgMjI1LCAyMDQsIDIzNCwgMzQsIDg0LCAxNiwgMjUxLCAyMjYsIDIzNCwgMzQsIDg0LCAxNiwgMjUxLCAzMywgCi0gICAgMjM0LCAzNCwgODQsIDE2LCAyMjUsIDk2LCAyMzQsIDM0LCA4NCwgMTYsIDIyNSwgOTAsIDIzNCwgMzQsIDg0LCAxNiwgMjI1LCAKLSAgICA4OCwgMjM0LCAzNCwgODQsIDE2LCAyMjUsIDk0LCAyMzQsIDM0LCA4NCwgMTYsIDIyNSwgOTIsIDIzNCwgMzQsIDg0LCAxNiwgCi0gICAgMjQ4LCAxMTgsIDIzNCwgMzQsIDg0LCAxNiwgMjQ4LCAxMTQsIDIzNCwgMzQsIDg0LCAxNiwgMjQ4LCAxMTMsIDIzNCwgMzQsIAotICAgIDg0LCAxNiwgMjQ4LCAxMTYsIDIzNCwgMzQsIDg0LCAxNiwgMjQ4LCAxMTUsIDIzNCwgMzQsIDg0LCAxNiwgMjQ4LCAxMTIsIAotICAgIDIzNCwgMzQsIDg0LCAxNiwgMjE2LCA1MSwgODQsIDE2LCAyMzAsIDE0MiwgMjIzLCAxMDYsIDg0LCAxNiwgMjI1LCAyMDQsIAotICAgIDIyMywgMTA2LCA4NCwgMTYsIDI1MSwgMjI2LCAyMjMsIDEwNiwgODQsIDE2LCAyNTEsIDMzLCAyMjMsIDEwNiwgODQsIDE2LCAKLSAgICAyMjUsIDk2LCAyMjMsIDEwNiwgODQsIDE2LCAyMjUsIDkwLCAyMjMsIDEwNiwgODQsIDE2LCAyMjUsIDg4LCAyMjMsIDEwNiwgCi0gICAgODQsIDE2LCAyMjUsIDk0LCAyMjMsIDEwNiwgODQsIDE2LCAyMjUsIDkyLCAyMjMsIDEwNiwgODQsIDE2LCAyNDgsIDExOCwgCi0gICAgMjIzLCAxMDYsIDg0LCAxNiwgMjQ4LCAxMTQsIDIyMywgMTA2LCA4NCwgMTYsIDI0OCwgMTEzLCAyMjMsIDEwNiwgODQsIDE2LCAKLSAgICAyNDgsIDExNiwgMjIzLCAxMDYsIDg0LCAxNiwgMjQ4LCAxMTUsIDIyMywgMTA2LCA4NCwgMTYsIDI0OCwgMTEyLCAyMjMsIAotICAgIDEwNiwgMjUxLCA1MCwgMSwgMTgxLCAyNTEsIDUwLCAxLCAyNDMsIDExMCwgMjUxLCA1MCwgMSwgMjI5LCAxNTksIDI1MSwgCi0gICAgNTAsIDEsIDIyOSwgMTA4LCAyNTEsIDUwLCAxLCAxOTMsIDI1MSwgNTAsIDEsIDI1MiwgMTA3LCAyNTEsIDUwLCAxLCAxODgsIAotICAgIDI1MSwgNTAsIDEsIDIzMCwgMTc1LCAyNTEsIDUwLCAxLCAyMTgsIDUyLCAyNTEsIDUwLCAxLCAyNDgsIDE2NCwgMjUxLCA1MCwgCi0gICAgMSwgMjA1LCAyNTEsIDUwLCAxLCAyMjgsIDE0NywgMjUxLCA1MCwgMSwgMjUwLCAyMTksIDI1MSwgNTAsIDEsIDIzNSwgMTM5LCAKLSAgICAyNTEsIDUwLCAxLCAyMjgsIDIzLCAyNTEsIDUwLCAxLCAyMjgsIDE5LCAyNTEsIDUwLCAxLCAxODYsIDI1MSwgNTAsIDEsIAotICAgIDIwMywgMjUxLCA1MCwgMSwgMjMzLCAxNTcsIDI1MSwgNTAsIDEsIDIxNSwgMSwgMjUxLCA1MCwgMSwgMjIyLCAyMDIsIDI1MSwgCi0gICAgNTAsIDEsIDYxLCAyNTEsIDUwLCAxLCAxNTksIDI1MSwgNTAsIDMwLCA1LCA3MiwgMjUxLCA1MCwgMzAsIDUsIDY5LCAyNTEsIAotICAgIDUwLCAzMCwgNSwgNzQsIDI1MSwgNTAsIDMwLCA1LCA3NSwgMjUxLCA1MCwgMzAsIDUsIDI1NCwgMTQ4LCAyNTEsIDUwLCAKLSAgICAyMjYsIDE4NywgMjUxLCA1MCwgMjQ1LCAxMDEsIDY1LCAyMjIsIDkxLCAzOCwgODgsIDEsIDEyNCwgMTgxLCAzOCwgODgsIDEsIAotICAgIDEyNCwgMjM0LCAxMzgsIDM4LCA4OCwgMSwgMTI0LCAyMzMsIDE5MywgMzgsIDg4LCAxLCAxMTUsIDE4MSwgMzgsIDg4LCAxLCAKLSAgICAxMTUsIDIzMywgMTkzLCAzOCwgODgsIDEsIDExNSwgMjM0LCAxMzgsIDM4LCA4OCwgMSwgMjI5LCAxNTksIDM4LCA4OCwgMSwgCi0gICAgMTI0LCAyNTAsIDIxOSwgMzgsIDg4LCAxLCAxMjQsIDI1MCwgOTIsIDM4LCA4OCwgMSwgMTE1LCAyNTAsIDIxOSwgMzgsIDg4LCAKLSAgICAxLCAxMTUsIDIyMiwgMjAyLCAzOCwgODgsIDEsIDExNSwgMjUwLCA5MiwgMzgsIDg4LCAxLCAyMjgsIDIzLCAzOCwgODgsIDEsIAotICAgIDIyNCwgMzIsIDM4LCA4OCwgMSwgMTI0LCAyMjQsIDMwLCAzOCwgODgsIDEsIDI0OCwgMTY0LCAzOCwgODgsIDEsIDExNSwgCi0gICAgMjI0LCAzMCwgMzgsIDg4LCAxLCAyMjQsIDQxLCAzOCwgODgsIDEsIDEyNCwgMjE4LCA1MiwgMzgsIDg4LCAxLCAxMjQsIAotICAgIDIxNywgMTYxLCAzOCwgODgsIDEsIDExNSwgMjE4LCA1MiwgMzgsIDg4LCAxLCAxMTUsIDIxNywgMTYxLCAzOCwgODgsIDEsIAotICAgIDIwNSwgMzgsIDg4LCAxLCAyNTIsIDEwNywgMzgsIDg4LCAxLCAxMjQsIDE5MywgMzgsIDg4LCAxLCAxMjQsIDIyNiwgMjMsIAotICAgIDM4LCA4OCwgMSwgMTI0LCAyNDQsIDE2NCwgMzgsIDg4LCAxLCAxMTUsIDE5MywgMzgsIDg4LCAxLCAxMTUsIDI0NCwgMTY0LCAKLSAgICAzOCwgODgsIDEsIDExNSwgMjI2LCAyMywgMzgsIDg4LCAxLCAxODgsIDM4LCA4OCwgMSwgMTE1LCAxODYsIDM4LCA4OCwgMSwgCi0gICAgMTI0LCAxODYsIDM4LCA4OCwgMSwgMjAzLCAzOCwgODgsIDEsIDIyMywgNDgsIDM4LCA4OCwgMSwgMjMzLCAxNTcsIDM4LCAKLSAgICA4OCwgMSwgMjMyLCAxNTEsIDM4LCA4OCwgMSwgMjE0LCA0OSwgMzgsIDg4LCAxLCAxMjQsIDIyMSwgMjQsIDM4LCA4OCwgMSwgCi0gICAgMTI0LCAyMTksIDE1NywgMzgsIDg4LCAxLCAxMjQsIDIyMiwgMjAyLCAzOCwgODgsIDEsIDEyNCwgMTU5LCAzOCwgODgsIDEsIAotICAgIDIzMiwgMjEzLCAzOCwgODgsIDEsIDYxLCAzOCwgODgsIDEsIDExNSwgMTU5LCAzOCwgODgsIDEsIDcyLCAzOCwgODgsIDEsIAotICAgIDIzNiwgMjgsIDM4LCA4OCwgMSwgNjksIDM4LCA4OCwgMSwgMjE1LCA5MiwgMzgsIDg4LCAxLCAyNDUsIDE2NSwgMzgsIDg4LCAKLSAgICAxLCAyMjcsIDQ5LCAzOCwgODgsIDEsIDIzMywgMTQzLCAzOCwgODgsIDEsIDI0MiwgMTA5LCAyMjIsIDIwMiwgMzgsIDg4LCAKLSAgICAyNDksIDEzMywgNSwgMTM4LCAyMDMsIDM4LCA4OCwgMjQ5LCAxMzMsIDUsIDEzOCwgMjMzLCAxNTcsIDM4LCA4OCwgMjQ5LCAKLSAgICAxMzMsIDUsIDIzMywgMTU4LCAyMTgsIDksIDIzMywgMTMzLCAzOCwgODgsIDUsIDIzMiwgOSwgMjM0LCAyMzYsIDIzMywgCi0gICAgMTMzLCAzOCwgODgsIDI0OSwgMTMzLCA1LCA0MCwgMjI5LCAxNTksIDM4LCA4OCwgMjQ5LCAxMzMsIDUsIDExNSwgMTkzLCAKLSAgICAzOCwgODgsIDI0OSwgMTMzLCA1LCAxMjQsIDIyNCwgMzEsIDE2NywgMTE1LCAxOTMsIDM4LCA4OCwgMjQ5LCAxMzMsIDUsIAotICAgIDE4OCwgMzgsIDg4LCAyNDksIDEzMywgNSwgMjUyLCAxMDcsIDM4LCA4OCwgMjQ5LCAxMzMsIDUsIDIyMiwgMjAyLCAzOCwgCi0gICAgODgsIDUsIDIyMiwgMTgxLCAzOCwgODgsIDMwLCA1LCA2MSwgMzgsIDg4LCAzMCwgNSwgMjMyLCA5LCAyMjIsIDE0MiwgMzgsIAotICAgIDg4LCAzMCwgNSwgMjU0LCAyMzIsIDM4LCA4OCwgMzAsIDUsIDIxOCwgMTUsIDI1NCwgMjMyLCAzOCwgODgsIDMwLCA1LCA3MiwgCi0gICAgMzgsIDg4LCAzMCwgNSwgMjM2LCAyOCwgMzgsIDg4LCAzMCwgNSwgMjE1LCAxODMsIDM4LCA4OCwgMzAsIDUsIDIxNSwgOTEsIAotICAgIDM4LCA4OCwgMzAsIDUsIDY5LCAzOCwgODgsIDMwLCA1LCAyMTUsIDkyLCAzOCwgODgsIDMwLCA1LCA3NSwgMzgsIDg4LCAzMCwgCi0gICAgNSwgMjI3LCAxMjEsIDU1LCAzOCwgODgsIDMwLCA1LCAyMjYsIDIzMywgMzgsIDg4LCAzMCwgNSwgNzQsIDM4LCA4OCwgMzAsIAotICAgIDUsIDI1NCwgMTQ4LCAzOCwgODgsIDMwLCA1LCAyMjcsIDQ5LCAzOCwgODgsIDMwLCA1LCAyNTQsIDEwOCwgMzgsIDg4LCAzMCwgCi0gICAgNSwgODgsIDI1NCwgMTA4LCAzOCwgODgsIDMwLCA1LCAyMjcsIDEyMSwgNDksIDM4LCA4OCwgNSwgMjMyLCA5LCAyMzQsIAotICAgIDIzNSwgMzgsIDg4LCA1LCAyMTYsIDI0MCwgMzgsIDg4LCA1LCAyMTYsIDIzOSwgMzgsIDg4LCA1LCAyMzQsIDEwNiwgMjE2LCAKLSAgICAyMzgsIDM4LCA4OCwgNSwgMjM0LCAxMDYsIDIxNiwgMjM3LCAzOCwgODgsIDUsIDIzNCwgMTA2LCAyMTYsIDIzNiwgMzgsIAotICAgIDg4LCA1LCAyMjQsIDc3LCAyNDIsIDI2LCAzOCwgODgsIDUsIDIzMiwgOSwgMjIyLCAxNjgsIDM4LCA4OCwgNSwgMjM0LCAKLSAgICAxMDUsIDIzNCwgMjIwLCAzOCwgODgsIDM3LCAyNDksIDU1LCAyNDcsIDc0LCAzOCwgODgsIDI0MSwgMzMsIDIxLCAyMTIsIAotICAgIDc5LCAzOCwgODgsIDI0MSwgMzMsIDIxLCAxMTYsIDM4LCA4OCwgMjQxLCAzMywgMjEsIDEwOSwgMzgsIDg4LCAyNDEsIDMzLCAKLSAgICAyMSwgMTY2LCAzOCwgODgsIDI0MSwgMzMsIDIxLCAxNjMsIDM4LCA4OCwgMjQxLCAzMywgMjEsIDE4MCwgMzgsIDg4LCAyNDEsIAotICAgIDMzLCAyMSwgMTg5LCAzOCwgODgsIDI0MSwgMzMsIDIxLCAxOTgsIDM4LCA4OCwgMjQxLCAzMywgMjEsIDE5NSwgMzgsIDg4LCAKLSAgICAyNDEsIDMzLCAyMSwgMjAwLCAzOCwgODgsIDg4LCAyMSwgMjEyLCA3OSwgMzgsIDg4LCA4OCwgMjEsIDExNiwgMzgsIDg4LCAKLSAgICA4OCwgMjEsIDEwOSwgMzgsIDg4LCA4OCwgMjEsIDE2NiwgMzgsIDg4LCA4OCwgMjEsIDE2MywgMzgsIDg4LCA4OCwgMjEsIAotICAgIDE4MCwgMzgsIDg4LCA4OCwgMjEsIDE4OSwgMzgsIDg4LCA4OCwgMjEsIDE5OCwgMzgsIDg4LCA4OCwgMjEsIDE5NSwgMzgsIAotICAgIDg4LCA4OCwgMjEsIDIwMCwgMzgsIDg4LCA1LCAyMTMsIDIzNCwgMzgsIDg4LCA1LCAyMTMsIDIzMywgMzgsIDg4LCA1LCAKLSAgICAyMjIsIDEzMywgMzgsIDg4LCA1LCAyMzQsIDE2NiwgMzgsIDg4LCA1LCAyNDAsIDIxOSwgMzgsIDg4LCA1LCAyNDcsIDg4LCAKLSAgICAzOCwgODgsIDUsIDIyMywgMjAyLCAyMjMsIDg5LCAyMjQsIDQxLCAzOCwgODgsIDUsIDIzMiwgOSwgMjEzLCA2MSwgMzgsIAotICAgIDg4LCA1LCAyMzUsIDEwLCAzOCwgODgsIDUsIDIzNSwgOSwgMzgsIDg4LCA1LCAyMjIsIDEzOSwgMzgsIDg4LCA1LCAyMjIsIAotICAgIDEzOCwgMzgsIDg4LCA1LCAyNDEsIDI0OCwgMzgsIDg4LCA1LCAyNTAsIDIxNiwgOTksIDUsIDIxNSwgMTcwLCAyMjMsIDE4MywgCi0gICAgOTksIDUsIDIxNSwgMTcwLCAyNTAsIDE4OSwgOTksIDUsIDI1MCwgMTIwLCA5OSwgNSwgMjE4LCAyMTUsIDk5LCA1LCAyNTEsIAotICAgIDE1NiwgOTksIDEsIDI1NCwgOTIsIDk5LCAxLCAyNTQsIDkzLCAyMTcsIDIyMSwgOTksIDEsIDIzNiwgMjQsIDk5LCAxLCAKLSAgICAyMzYsIDI1LCAyMTcsIDIyMSwgOTksIDEsIDIxNSwgMTczLCA5OSwgMSwgMjE1LCAxNzQsIDIxNywgMjIxLCA5OSwgMSwgCi0gICAgMjI0LCA3NywgMjIzLCAyMjksIDk5LCAxLCAyMjQsIDc3LCAyMjMsIDIzMCwgMjE3LCAyMjEsIDk5LCAxLCAyMzMsIDE1OCwgCi0gICAgMjMzLCA0OCwgOTksIDEsIDIzMywgMTU4LCAyMzMsIDQ5LCAyMTcsIDIyMSwgOTksIDEsIDI0NSwgMTM2LCA5OSwgMSwgMjU0LCAKLSAgICAxMDYsIDk5LCAxLCAyMjcsIDc4LCA5OSwgMSwgMjI3LCA3OSwgMjE3LCAyMjEsIDk5LCAxLCAxODEsIDk5LCAxLCAyMzUsIAotICAgIDE3LCAyMzIsIDEyLCA5OSwgMSwgMjQzLCAxMTAsIDk5LCAxLCAyNDMsIDExMSwgMjQyLCAxMzcsIDk5LCAxLCAyMjksIDE1OSwgCi0gICAgOTksIDEsIDI1MCwgMjE5LCA5OSwgMSwgMjUwLCAyMjAsIDIzMywgMTQ2LCA5OSwgMSwgMjM1LCAxMzksIDk5LCAxLCAyMzUsIAotICAgIDE0MCwgMjM1LCAxMTksIDk5LCAxLCAyMjgsIDIzLCA5OSwgMSwgMjE4LCA1MywgMjMzLCA5OSwgOTksIDEsIDIxOCwgNTMsIAotICAgIDIzMCwgMTM3LCAyMzIsIDEyLCA5OSwgMSwgMjQ4LCAxNjUsIDIzMCwgMTM3LCAyNTQsIDU0LCA5OSwgMSwgMjQ4LCAxNjUsIAotICAgIDIzMCwgMTM3LCAyMzIsIDEyLCA5OSwgMSwgMjMwLCA0NiwgMjI0LCA0NCwgOTksIDEsIDIxOCwgNTIsIDk5LCAxLCAyMTgsIAotICAgIDUzLCAyMTcsIDI0MiwgOTksIDEsIDI0OCwgMTY0LCA5OSwgMSwgMjQ4LCAxNjUsIDIzMiwgMzAsIDk5LCAxLCAyMDUsIDk5LCAKLSAgICAxLCAxOTMsIDk5LCAxLCAyMjYsIDIxNCwgMjM0LCAyMzEsIDk5LCAxLCAyNTIsIDEwNywgOTksIDEsIDI1MiwgMTA4LCAyMzQsIAotICAgIDE3OCwgOTksIDEsIDE4OCwgOTksIDEsIDE4NiwgOTksIDEsIDIwMywgOTksIDEsIDIzMywgMTU3LCA5OSwgMSwgMjE0LCA0OSwgCi0gICAgOTksIDEsIDIyMiwgMjAzLCAyMjIsIDE4OSwgOTksIDEsIDIyMiwgMjAzLCAyMjIsIDE0OSwgOTksIDEsIDIyMiwgMjAyLCAKLSAgICA5OSwgMSwgMTU5LCA5OSwgNSwgMjIzLCAyMjIsIDk5LCAzMCwgNSwgMjE3LCAyMjEsIDk5LCAzMCwgNSwgMjE1LCAxNjksIAotICAgIDk5LCAzMCwgNSwgMjE1LCAxNzAsIDIyMiwgMTQ1LCA5OSwgMzAsIDUsIDIxOCwgMjQ4LCA5OSwgMzAsIDUsIDIxOCwgMjQ5LCAKLSAgICAyMzYsIDE2LCA5OSwgMzAsIDUsIDIyNCwgNzcsIDIyMywgMjI5LCA5OSwgMzAsIDUsIDIyNCwgNzcsIDIyMywgMjMwLCAyMTcsIAotICAgIDIyMSwgOTksIDMwLCA1LCAyMzMsIDE1OCwgMjMzLCA0OCwgOTksIDMwLCA1LCAyMzMsIDE1OCwgMjMzLCA0OSwgMjE3LCAKLSAgICAyMjEsIDk5LCAzMCwgNSwgMjE4LCAxNiwgOTksIDMwLCA1LCAyMTgsIDE3LCAyMjMsIDIyOSwgOTksIDMwLCA1LCAyMTgsIAotICAgIDE3LCAyMTcsIDIyMSwgOTksIDMwLCA1LCAyMTgsIDE3LCAyMjMsIDIzMCwgMjE3LCAyMjEsIDk5LCAzMCwgNSwgMjI2LCA1OSwgCi0gICAgOTksIDMwLCA1LCAyMjYsIDYwLCAyMTcsIDIyMSwgOTksIDI1NCwgMTU1LCAyNTQsIDE1NCwgOTksIDEsIDIzNCwgMjU1LCAKLSAgICAyMjIsIDE0NCwgOTksIDEsIDIzNCwgMTEwLCAyMjIsIDE0NCwgOTksIDEsIDIxNiwgMCwgMjIyLCAxNDQsIDk5LCAxLCAyNDUsIAotICAgIDE2MCwgMjIyLCAxNDQsIDk5LCAxLCAyMTQsIDIzMywgMjIyLCAxNDQsIDk5LCAxLCAyMTIsIDEwMCwgMjIyLCAxNDQsIDk5LCAKLSAgICAxLCAyNTMsIDEyNSwgMjIyLCAxNDQsIDk5LCAyMSwgMjEyLCA3OSwgOTksIDIxLCAxMTYsIDk5LCAyMSwgMTA5LCA5OSwgMjEsIAotICAgIDE2NiwgOTksIDIxLCAxNjMsIDk5LCAyMSwgMTgwLCA5OSwgMjEsIDE4OSwgOTksIDIxLCAxOTgsIDk5LCAyMSwgMTk1LCA5OSwgCi0gICAgMjEsIDIwMCwgOTksIDIyNiwgMTU3LCA5OSwgMjI2LCAxODIsIDk5LCAyMTMsIDIyMywgOTksIDI1MCwgMTY4LCAyMjYsIAotICAgIDE3NSwgOTksIDI1MCwgMTY4LCAyMjAsIDk4LCA5OSwgMjUwLCAxNjgsIDIyNiwgMTMwLCA5OSwgMjI2LCAxODEsIDk5LCAyNywgCi0gICAgMTYsIDI0NywgODAsIDk5LCAyNywgMTYsIDI0OCwgMiwgOTksIDI3LCAxNiwgMjQ2LCAxOSwgOTksIDI3LCAxNiwgMjQ4LCAKLSAgICAxMjEsIDk5LCAyNywgMTYsIDI0OCwgMTIyLCAyMTgsIDIxNSwgOTksIDI3LCAxNiwgMjQ3LCAxNTcsIDk5LCAyNywgMTYsIAotICAgIDI0OCwgMTU3LCA5OSwgMjcsIDE2LCAyNDcsIDI0MCwgOTksIDI3LCAxNiwgMjQ4LCAxNDMsIDk5LCAyNywgMTYsIDI0OCwgCi0gICAgMTIyLCAyNDMsIDMzLCA5OSwgMjcsIDE2LCAzNywgMjE3LCAyMTcsIDk5LCAyNywgMTYsIDM3LCAyNDUsIDk5LCA5OSwgMjcsIAotICAgIDE2LCAzNywgMjM0LCAxNzMsIDk5LCAyNywgMTYsIDM3LCAyMzQsIDE3NSwgOTksIDI3LCAxNiwgMzcsIDIzNSwgMTIzLCA5OSwgCi0gICAgMjcsIDE2LCAzNywgMjM0LCAxNzQsIDIsIDIzNSwgMTIzLCA5OSwgMjcsIDE2LCAzNywgMjM0LCAxNzYsIDIsIDIzNSwgMTIzLCAKLSAgICA5OSwgMjcsIDE2LCAzNywgMjUxLCAyMTQsIDk5LCAyNywgMTYsIDM3LCAyNDIsIDE0MSwgOTksIDI3LCAxNiwgMjIzLCAxNDYsIAotICAgIDIyNywgNDAsIDI0NiwgMjksIDk5LCAyNywgMTYsIDIyMywgMTQ2LCAyMjcsIDQwLCAyNDgsIDE1NSwgOTksIDI3LCAxNiwgCi0gICAgMjIzLCAxNDYsIDI0OSwgMTkzLCAyMTYsIDc1LCA5OSwgMjcsIDE2LCAyMjMsIDE0NiwgMjQ5LCAxOTMsIDIxOCwgMjMsIDk5LCAKLSAgICAyNywgMTYsIDIzMywgNjgsIDIyNywgNDAsIDIyNiwgMTcwLCA5OSwgMjcsIDE2LCAyMzMsIDY4LCAyMjcsIDQwLCAyMjUsIAotICAgIDI1LCA5OSwgMjcsIDE2LCAyMzMsIDY4LCAyNDksIDE5MywgMjI1LCAxNzAsIDk5LCAyNywgMTYsIDIzMywgNjgsIDI0OSwgCi0gICAgMTkzLCAyMjUsIDE2MCwgOTksIDI3LCAxNiwgMjMzLCA2OCwgMjI3LCA0MCwgMjI1LCAxOTMsIDIxOCwgMjM3LCA1LCAyMjYsIAotICAgIDE1NCwgMjE4LCAyMzcsIDUsIDIyNiwgMTY2LCAyMTgsIDIzNywgNSwgMjI2LCAxNjMsIDIxOCwgMjM3LCAxLCA2MSwgMjE4LCAKLSAgICAyMzcsIDEsIDcyLCAyMTgsIDIzNywgMSwgNjksIDIxOCwgMjM3LCAxLCAyNTQsIDE0OCwgMjE4LCAyMzcsIDEsIDc1LCAyMTgsIAotICAgIDIzNywgMSwgNzQsIDIxOCwgMjM3LCAxLCAyNDUsIDIyLCAyMTgsIDIzNywgMSwgMTgxLCAyMTgsIDIzNywgMSwgMjI0LCAKLSAgICAyMzIsIDIxOCwgMjM3LCAxLCAyNDMsIDExMCwgMjE4LCAyMzcsIDEsIDIyOSwgMTU5LCAyMTgsIDIzNywgMSwgMjUwLCAyMTksIAotICAgIDIxOCwgMjM3LCAxLCAyMzUsIDEzOSwgMjE4LCAyMzcsIDEsIDIxMiwgMTA5LCAyMTgsIDIzNywgMSwgMjI4LCAyMywgMjE4LCAKLSAgICAyMzcsIDEsIDIxOCwgNTIsIDIxOCwgMjM3LCAxLCAyNDgsIDE2NCwgMjE4LCAyMzcsIDEsIDIwNSwgMjE4LCAyMzcsIDEsIAotICAgIDE5MywgMjE4LCAyMzcsIDEsIDI0NCwgMTY0LCAyMTgsIDIzNywgMSwgMjE1LCAxLCAyMTgsIDIzNywgMSwgMjUyLCAxMDcsIAotICAgIDIxOCwgMjM3LCAxLCAxODgsIDIxOCwgMjM3LCAxLCAxODYsIDIxOCwgMjM3LCAxLCAyMDMsIDIxOCwgMjM3LCAxLCAyMzMsIAotICAgIDE1NywgMjE4LCAyMzcsIDEsIDIxNCwgNDksIDIxOCwgMjM3LCAxLCAyMjIsIDIwMiwgMjE4LCAyMzcsIDEsIDIxMywgMTUzLCAKLSAgICAyMTgsIDIzNywgMSwgMTU5LCAyMTgsIDIzNywgMjQ5LCAxMzMsIDUsIDIyNiwgMTc5LCAyMTgsIDIzNywgMjQ5LCAxMzMsIDUsIAotICAgIDIyNiwgMTU2LCAyMTgsIDIzNywgMjQ5LCAxMzMsIDUsIDIyNiwgMTUzLCAyMTgsIDIzNywgMzAsIDUsIDIyNiwgMTY5LCAKLSAgICAyMTgsIDIzNywgMzAsIDUsIDIyNiwgMTUyLCAyMTgsIDIzNywgMzAsIDUsIDIyNiwgMTczLCAyMTgsIDIzNywgMzAsIDUsIAotICAgIDIyNiwgMTYyLCAyMTgsIDIzNywgMzAsIDUsIDIyNiwgMTgwLCAyMTgsIDIzNywgMzAsIDUsIDIyNiwgMTcxLCAyMTgsIDIzNywgCi0gICAgNSwgMjI2LCAxODMsIDIxOCwgMjM3LCAxLCAyMzQsIDEzOCwgMjE4LCAyMzcsIDEsIDIxOCwgMTc2LCAyMTgsIDIzNywgMjEsIAotICAgIDIxMiwgNzksIDIxOCwgMjM3LCAyMSwgMTE2LCAyMTgsIDIzNywgMjEsIDEwOSwgMjE4LCAyMzcsIDIxLCAxNjYsIDIxOCwgCi0gICAgMjM3LCAyMSwgMTYzLCAyMTgsIDIzNywgMjEsIDE4MCwgMjE4LCAyMzcsIDIxLCAxODksIDIxOCwgMjM3LCAyMSwgMTk4LCAKLSAgICAyMTgsIDIzNywgMjEsIDE5NSwgMjE4LCAyMzcsIDIxLCAyMDAsIDI1MiwgNDAsIDEsIDYxLCAyNTIsIDQwLCAxLCAyMjAsIAotICAgIDkwLCA2MSwgMjUyLCA0MCwgMSwgMTU5LCAyNTIsIDQwLCAxLCAyMjAsIDkwLCAxNTksIDI1MiwgNDAsIDEsIDIzMSwgMjQ0LCAKLSAgICAxNTksIDI1MiwgNDAsIDEsIDI1MiwgMTA3LCAyNTIsIDQwLCAxLCAyMzQsIDIxNywgMjUyLCAxMDcsIDI1MiwgNDAsIDEsIAotICAgIDE5MywgMjUyLCA0MCwgMSwgMjIwLCA5MCwgMTkzLCAyNTIsIDQwLCAxLCAyMDUsIDI1MiwgNDAsIDEsIDIzMSwgMjQ0LCAKLSAgICAyMDUsIDI1MiwgNDAsIDEsIDIxNCwgNDksIDI1MiwgNDAsIDEsIDIyMCwgOTAsIDIxNCwgNDksIDI1MiwgNDAsIDEsIDIyNiwgCi0gICAgMTk0LCAyMTQsIDQ5LCAyNTIsIDQwLCAxLCAyNDMsIDExMCwgMjUyLCA0MCwgMSwgMjIwLCA5MCwgMjQzLCAxMTAsIDI1MiwgCi0gICAgNDAsIDEsIDIzNSwgMTM5LCAyNTIsIDQwLCAxLCAyNDgsIDE2NCwgMjUyLCA0MCwgMSwgMjAzLCAyNTIsIDQwLCAxLCAyMjAsIAotICAgIDkwLCAyMDMsIDI1MiwgNDAsIDEsIDE4OCwgMjUyLCA0MCwgMSwgMjIwLCA5MCwgMTg4LCAyNTIsIDQwLCAxLCAyMTksIDIxMywgCi0gICAgMjE4LCA1MiwgMjUyLCA0MCwgMSwgMjI4LCAxNjYsIDIxOCwgNTIsIDI1MiwgNDAsIDEsIDIyMiwgMjAyLCAyNTIsIDQwLCAxLCAKLSAgICAyMjAsIDkwLCAyMjIsIDIwMiwgMjUyLCA0MCwgMSwgMjMxLCAyNDQsIDIyMiwgMjAyLCAyNTIsIDQwLCAxLCAxODYsIDI1MiwgCi0gICAgNDAsIDEsIDIyMCwgOTAsIDE4NiwgMjUyLCA0MCwgMSwgMjI5LCAxNTksIDI1MiwgNDAsIDEsIDIzMywgMTU3LCAyNTIsIDQwLCAKLSAgICAxLCAyMjAsIDkwLCAyMzMsIDE1NywgMjUyLCA0MCwgMSwgMjI4LCAyMywgMjUyLCA0MCwgMSwgMjUwLCAyMTksIDI1MiwgNDAsIAotICAgIDEsIDIyOSwgMjI4LCAyNTIsIDQwLCAxLCAyMzEsIDE4NywgMjUyLCA0MCwgMSwgNzIsIDI1MiwgNDAsIDEsIDY5LCAyNTIsIAotICAgIDQwLCA1LCAyMTYsIDI0NCwgMjUyLCA0MCwgMzAsIDUsIDc0LCAyNTIsIDQwLCAzMCwgNSwgMjI2LCAxOTQsIDc0LCAyNTIsIAotICAgIDQwLCAzMCwgNSwgMjQ1LCAxNjUsIDI1MiwgNDAsIDMwLCA1LCA3MiwgMjUyLCA0MCwgMzAsIDUsIDIzNCwgMjE3LCA3MiwgCi0gICAgMjUyLCA0MCwgMzAsIDUsIDc1LCAyNTIsIDQwLCAzMCwgNSwgMjM0LCAyMTcsIDc1LCAyNTIsIDQwLCAzMCwgNSwgNjksIAotICAgIDI1MiwgNDAsIDMwLCA1LCAxMTEsIDMxLCAyMjAsIDkwLCAyMjIsIDIwMiwgMjUyLCA0MCwgMjQ5LCAxMzMsIDUsIDIyOSwgCi0gICAgMTYxLCAyNTIsIDQwLCAyNDksIDEzMywgNSwgMjQyLCA0MSwgMjUyLCA0MCwgMjI2LCAxNjUsIDI1MiwgNDAsIDIyNiwgMTYxLCAKLSAgICAyNTIsIDQwLCAxNiwgMjUxLCAxNjQsIDIzMCwgNDYsIDIzMSwgMTA0LCAyNTIsIDQwLCAxNiwgMjUxLCAxNjQsIDIyNSwgCi0gICAgMTk2LCAyNTIsIDQwLCAxNiwgMjUxLCAxNjQsIDIzNSwgNTEsIDI1MiwgNDAsIDE2LCAyNTEsIDE2NCwgMjI2LCAxNjUsIAotICAgIDE4MiwgMSwgMTgxLCAxODIsIDEsIDIzNCwgNDgsIDE4MiwgMSwgMjM0LCAxMzgsIDE4MiwgMSwgMjQzLCAxMTAsIDE4MiwgMSwgCi0gICAgMjQyLCAxNjIsIDE4MiwgMSwgMjI5LCAxNTksIDE4MiwgMSwgMjUwLCAyMTksIDE4MiwgMSwgMjUwLCA5MiwgMTgyLCAxLCAKLSAgICAyMzUsIDEzOSwgMTgyLCAxLCAyMjgsIDIzLCAxODIsIDEsIDIxOCwgNTIsIDE4MiwgMSwgMjE3LCAxNjEsIDE4MiwgMSwgCi0gICAgMjQ4LCAxNjQsIDE4MiwgMSwgMjA1LCAxODIsIDEsIDE5MywgMTgyLCAxLCAyMjUsIDE3NCwgMTgyLCAxLCAyMjYsIDIzLCAKLSAgICAxODIsIDEsIDI0NCwgMTY0LCAxODIsIDEsIDI0NCwgNDQsIDE4MiwgMSwgMjUyLCAxMDcsIDE4MiwgMSwgMjUxLCAxNDUsIAotICAgIDE4MiwgMSwgMTg4LCAxODIsIDEsIDIzMCwgMjM3LCAxODIsIDEsIDIxNiwgMTQxLCAxODIsIDEsIDIxNiwgMTMzLCAxODIsIAotICAgIDEsIDI0NSwgMjQ5LCAxODIsIDEsIDE4NiwgMTgyLCAxLCAyMDMsIDE4MiwgMSwgMjMzLCAxNTcsIDE4MiwgMSwgMTU5LCAKLSAgICAxODIsIDEsIDI0MSwgMTM5LCAxODIsIDEsIDIxNSwgMSwgMTgyLCAxLCAyMjIsIDIwMiwgMTgyLCAxLCAyMjEsIDI0LCAxODIsIAotICAgIDEsIDIxNCwgNDksIDE4MiwgMSwgNjEsIDE4MiwgMjE5LCAxOCwgMSwgMTg2LCAxODIsIDIxOSwgMTgsIDEsIDIwMywgMTgyLCAKLSAgICAzMCwgNSwgMjU0LCAyMzIsIDE4MiwgMzAsIDUsIDcyLCAxODIsIDMwLCA1LCA3NSwgMTgyLCAzMCwgNSwgMjI3LCA0OSwgCi0gICAgMTgyLCAzMCwgNSwgNjksIDE4MiwgMzAsIDUsIDIxNSwgOTIsIDE4MiwgMzAsIDUsIDc0LCAxODIsIDI0OSwgMTMzLCA1LCAKLSAgICAyMzUsIDI3LCAxODIsIDI0OSwgMTMzLCA1LCAxODMsIDE4MiwgMjQ5LCAxMzMsIDUsIDE1MCwgMTgyLCAyNDksIDEzMywgNSwgCi0gICAgMjA0LCAxODIsIDI0OSwgMTMzLCA1LCAyMjYsIDIyOSwgMTgyLCAyNDksIDEzMywgNSwgMTQ5LCAxODIsIDI0OSwgMTMzLCA1LCAKLSAgICAyMTgsIDk5LCAxODIsIDI0OSwgMTMzLCA1LCAyMjgsIDUsIDE4MiwgMjQ5LCAxMzMsIDUsIDIzNCwgMjM1LCAxODIsIDUsIAotICAgIDIyNCwgNDIsIDE4MiwgNSwgMjI4LCA2MCwgMTgyLCAyMjUsIDI3LCAyMTgsIDUxLCAxODIsIDIyNSwgMjcsIDIyOCwgMTMsIAotICAgIDIxNywgNzQsIDIxOCwgNTEsIDE4MiwgMjI1LCAyNywgMjUwLCA5OCwgMTgyLCAyMjUsIDI3LCAyMTYsIDEyOCwgMjUwLCA5OCwgCi0gICAgMTgyLCAyMjUsIDI3LCAyMTYsIDEyNywgMTgyLCAyMSwgMjEyLCA3OSwgMTgyLCAyMSwgMTE2LCAxODIsIDIxLCAxMDksIAotICAgIDE4MiwgMjEsIDE2NiwgMTgyLCAyMSwgMTYzLCAxODIsIDIxLCAxODAsIDE4MiwgMjEsIDE4OSwgMTgyLCAyMSwgMTk4LCAKLSAgICAxODIsIDIxLCAxOTUsIDE4MiwgMjEsIDIwMCwgMTgyLCAxLCAyMTYsIDExNSwgMTgyLCAxLCAyMTYsIDEwNSwgMTgyLCAxLCAKLSAgICAyNDgsIDg2LCAyMjcsIDc2LCAyNTAsIDQwLCAyMSwgMjEyLCA3OSwgMjI3LCA3NiwgMjUwLCA0MCwgMjEsIDExNiwgMjI3LCAKLSAgICA3NiwgMjUwLCA0MCwgMjEsIDEwOSwgMjI3LCA3NiwgMjUwLCA0MCwgMjEsIDE2NiwgMjI3LCA3NiwgMjUwLCA0MCwgMjEsIAotICAgIDE2MywgMjI3LCA3NiwgMjUwLCA0MCwgMjEsIDE4MCwgMjI3LCA3NiwgMjUwLCA0MCwgMjEsIDE4OSwgMjI3LCA3NiwgMjUwLCAKLSAgICA0MCwgMjEsIDE5OCwgMjI3LCA3NiwgMjUwLCA0MCwgMjEsIDE5NSwgMjI3LCA3NiwgMjUwLCA0MCwgMjEsIDIwMCwgMjI3LCAKLSAgICA3NiwgMjUwLCA0MCwgMSwgMjMzLCAxNTcsIDIyNywgNzYsIDI1MCwgNDAsIDEsIDI1MywgMTIyLCAyMjcsIDc2LCAyNTAsIAotICAgIDQwLCAxLCAyNTQsIDEyMSwgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjU0LCAyNCwgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjU0LCAKLSAgICA4NiwgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjMzLCAxNTYsIDIyNywgNzYsIDI1MCwgNDAsIDEsIDI1NCwgMTk0LCAyMjcsIAotICAgIDc2LCAyNTAsIDQwLCAxLCAyNTQsIDE5NSwgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjU0LCAxOTMsIDIyNywgNzYsIDI1MCwgCi0gICAgNDAsIDEsIDI1NCwgMTg5LCAyMjcsIDc2LCAyNTAsIDQwLCAxLCAyMzMsIDEzLCAyMjcsIDc2LCAyNTAsIDQwLCAxLCAyMzUsIAotICAgIDE2OSwgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjM2LCAyOSwgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjM1LCAxODgsIDIyNywgCi0gICAgNzYsIDI1MCwgNDAsIDEsIDIzNSwgMTc3LCAyMjcsIDc2LCAyNTAsIDQwLCAxLCAyMzIsIDE1NiwgMjI3LCA3NiwgMjUwLCAKLSAgICA0MCwgMSwgMjE1LCAxOTAsIDIyNywgNzYsIDI1MCwgNDAsIDEsIDIxNSwgMTg4LCAyMjcsIDc2LCAyNTAsIDQwLCAxLCAyMTUsIAotICAgIDEzOSwgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjE1LCA4NSwgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjMzLCA4MiwgMjI3LCA3NiwgCi0gICAgMjUwLCA0MCwgMSwgMjQ1LCA3MCwgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjQ1LCAxNjgsIDIyNywgNzYsIDI1MCwgNDAsIDEsIAotICAgIDI0NSwgMTA4LCAyMjcsIDc2LCAyNTAsIDQwLCAxLCAyNDUsIDQ5LCAyMjcsIDc2LCAyNTAsIDQwLCAxLCAyMzIsIDIwOCwgCi0gICAgMjI3LCA3NiwgMjUwLCA0MCwgMSwgMjI3LCA1LCAyMjcsIDc2LCAyNTAsIDQwLCAxLCAyMjcsIDExNiwgMjI3LCA3NiwgMjUwLCAKLSAgICA0MCwgMSwgMjI2LCAyNDksIDIyNywgNzYsIDI1MCwgNDAsIDEsIDIyNywgODgsIDIyNywgNzYsIDI1MCwgNDAsIDIzMCwgCi0gICAgMTczLCAyMTYsIDg0LCAyMjcsIDc2LCAyNTAsIDQwLCAyNDMsIDEwNSwgMjE2LCA4NSwgMjI3LCA3NiwgMjUwLCA0MCwgMjMwLCAKLSAgICAxNzEsIDIxNiwgODUsIDIyNywgNzYsIDI1MCwgNDAsIDIyMywgMjQyLCAyMjcsIDc2LCAyNTAsIDQwLCAyMjYsIDIxLCAyMjcsIAotICAgIDc2LCAyNTAsIDQwLCAyNTQsIDExMywgMjI3LCA3NiwgMjUwLCA0MCwgMjI1LCAyNywgMjMwLCAxNjgsIDIyNywgNzYsIDI1MCwgCi0gICAgNDAsIDIyNSwgMjcsIDUxLCAyMzAsIDE2OCwgMjE0LCAyMjksIDE2MCwgMjM0LCAyMTUsIDIxNCwgMjI5LCAxNjAsIDIyMSwgCi0gICAgMCwgMjE0LCAyMjksIDE2MCwgMjI1LCA3OCwgMjE0LCAyMjksIDUsIDIyOSwgNDAsIDIxNCwgMjI5LCA1LCAyMTMsIDY5LCAKLSAgICAyMzEsIDM1LCAyMTgsIDIwMSwgMjE0LCAyMjksIDE2MCwgMjEzLCA2OSwgMjU0LCAxMTgsIDIzNSwgMjQwLCAyMTgsIDIwMSwgCi0gICAgMjE0LCAyMjksIDE2MCwgMjEzLCA2OSwgMjM1LCAyNDAsIDIxOCwgMjAxLCAyMTQsIDIyOSwgMTYwLCAyMTMsIDY5LCAyMzQsIAotICAgIDIwMywgMjM1LCAyNDAsIDIxOCwgMjAxLCAyMTQsIDIyOSwgMTYwLCAyNTAsIDE5MCwgNTUsIDIxNCwgMjI5LCAxNjAsIDIxMywgCi0gICAgNjksIDIzNCwgMjAzLCAyMzUsIDI0MCwgMjE4LCAyMDIsIDIyMiwgMTE1LCAyMTQsIDIyOSwgMTYwLCA1MSwgMjE4LCAyMDEsIAotICAgIDIxNCwgMjI5LCAxNjAsIDIxNiwgMTY5LCAyMTgsIDIwMSwgMjE0LCAyMjksIDE2MCwgMjM0LCAyMDMsIDI1MywgMjQ0LCAKLSAgICAyMTQsIDIyOSwgMTYwLCA2MiwgNTUsIDIxNCwgMjI5LCAxNjAsIDExNywgMTc2LCA1NSwgMjE0LCAyMjksIDE2MCwgMTMzLCAKLSAgICAxNzYsIDU1LCAyMTQsIDIyOSwgMTYwLCAyMjMsIDEzNywgMjM0LCAyMTQsIDIzNSwgMjQwLCAyMTgsIDIwMSwgMjE0LCAyMjksIAotICAgIDE2MCwgMjUzLCAxMjAsIDIzNSwgMjQwLCAyMTgsIDIwMSwgMjE0LCAyMjksIDUsIDIxNCwgMTI5LCAyMTgsIDIwMSwgMjE0LCAKLSAgICAyMjksIDUsIDIxNCwgMTI5LCAyMTUsIDE4NSwgMjE0LCAyMjksIDUsIDIyMywgMjAyLCAyMTQsIDEyOSwgMjE1LCAxODUsIAotICAgIDIxNCwgMjI5LCA1LCAyMTQsIDEyOSwgMjUzLCAyNDQsIDIxNCwgMjI5LCA1LCAyMjMsIDIwMiwgMjE0LCAxMjksIDI1MywgCi0gICAgMjQ0LCAyMTQsIDIyOSwgNSwgMjE0LCAxMjksIDIxNSwgMTg2LCAyLCAyMTgsIDI3LCAyMTQsIDIyOSwgNSwgMjE0LCAxMjksIAotICAgIDI1MywgMjQ1LCAyLCAyMTgsIDI3LCAyMTQsIDIyOSwgNSwgMjUzLCAyNDMsIDI1NCwgMiwgMjE0LCAyMjksIDUsIDI1MywgCi0gICAgMjQzLCAyNTIsIDg1LCAyMTQsIDIyOSwgNSwgMjUzLCAyNDMsIDIxNCwgMjUyLCAyMTQsIDIyOSwgNSwgMjUzLCAyNDMsIAotICAgIDIxNCwgMjUzLCAyLCAyMTgsIDI3LCAyMTQsIDIyOSwgNSwgMjE3LCAyMSwgMjE0LCAyMjksIDUsIDI0MSwgMTc2LCAxODQsIAotICAgIDI1MywgMjQyLCAyMTQsIDIyOSwgNSwgMTg0LCAyNTMsIDI0MiwgMjE0LCAyMjksIDUsIDIyMywgNTMsIDE4NCwgMjUzLCAKLSAgICAyNDIsIDIxNCwgMjI5LCA1LCAyNTMsIDI0MywgMjE1LCAxOTIsIDIzMCwgMTYwLCAyMTQsIDIyOSwgNSwgMjUzLCAxOTAsIDcsIAotICAgIDEsIDMsIDYsIDYxLCA3LCAxLCAzLCA2LCAyNTQsIDE0OCwgNywgMywgMSwgMjE2LCA1OCwgMjU0LCAxNDgsIDcsIDEsIDMsIAotICAgIDYsIDI1MiwgNTQsIDI1MywgNzQsIDcsIDEsIDMsIDYsIDI1MCwgMjUyLCA3LCAxLCAzLCA2LCAyNDksIDMsIDcsIDEsIDMsIAotICAgIDYsIDI0NSwgMjUsIDcsIDEsIDMsIDYsIDc0LCA3LCAzLCAxLCAyMTYsIDU4LCAyMjcsIDQwLCA3NCwgNywgMywgMSwgMjE2LCAKLSAgICA1OCwgNzIsIDcsIDEsIDMsIDYsIDIzNSwgMTQyLCA3LCAxLCAzLCA2LCAyMzUsIDI3LCA3LCAxLCAzLCA2LCAyMzMsIDE3MSwgCi0gICAgMiwgOTAsIDcsIDEsIDMsIDYsIDE4MywgNywgMSwgMywgNiwgMjIzLCAyMDIsIDIwNCwgNywgMSwgMywgNiwgNzUsIDcsIDEsIAotICAgIDMsIDYsIDIyNywgNDAsIDc1LCA3LCAzLCAxLCAyMjAsIDExMywgNzUsIDcsIDMsIDEsIDIyMCwgMTEzLCAyMjcsIDQwLCA3NSwgCi0gICAgNywgMywgMSwgMjIwLCAxMTMsIDE1NywgMiwgOTAsIDcsIDMsIDEsIDIxNiwgNTgsIDIyNywgOTksIDcsIDEsIDMsIDYsIAotICAgIDIyNywgMiwgNywgMywgMSwgMjE2LCAyMjcsIDE1MSwgNzUsIDcsIDMsIDEsIDI1MSwgMTAxLCAxNTEsIDc1LCA3LCAxLCAzLCAKLSAgICA2LCAyMjYsIDIyOSwgNywgMSwgMywgNiwgMjIzLCAyMDIsIDE0OSwgNywgMSwgMywgNiwgMjE2LCA1OCwgMTQ5LCA3LCAxLCAKLSAgICAzLCA2LCAyMTgsIDk5LCA3LCAxLCAzLCA2LCA2OSwgNywgMywgMSwgMjIwLCAxMTMsIDY5LCA3LCAzLCAxLCAyMjAsIDExMywgCi0gICAgMjQ3LCAyMDgsIDY5LCA3LCAzLCAxLCAyMjAsIDExMywgMjE2LCA1OCwgMTgzLCA3LCAxLCAzLCA2LCAyMTUsIDc5LCA3LCAxLCAKLSAgICAzLCA2LCAyMTQsIDgyLCA3LCAxLCAzLCA2LCAyMTIsIDE1MiwgNywgMSwgMywgNiwgMjQ0LCAyMzIsIDcsIDEsIDIxNCwgCi0gICAgMTE2LCAyMzMsIDEwNSwgMjE5LCAxODIsIDcsIDEsIDI1NCwgMTAzLCAyNSwgMSwgMywgNiwgMjQzLCA4MywgMjUsIDEsIDMsIAotICAgIDYsIDIzMywgMTIyLCAyNSwgMSwgMywgNiwgMjI1LCAyNDAsIDI1LCAxLCAzLCA2LCAyMjMsIDE5MCwgMjUsIDEsIDMsIDYsIAotICAgIDIyNSwgNDYsIDMzLCAxLCAzLCA2LCAyNDUsIDEzMSwgNTksIDEsIDYsIDYxLCA1OSwgMSwgNiwgMjU0LCAxNDgsIDU5LCAxLCAKLSAgICA2LCAyNTMsIDc0LCA1OSwgMSwgNiwgMjUyLCA1NCwgMjUzLCA3NCwgNTksIDEsIDYsIDI0OSwgMywgNTksIDEsIDYsIDc0LCAKLSAgICA1OSwgMSwgNiwgMjIzLCAyMDIsIDc0LCA1OSwgMSwgNiwgMjQzLCAxNzcsIDU5LCAxLCA2LCAyNDIsIDQxLCA1OSwgMSwgNiwgCi0gICAgNzIsIDU5LCAxLCA2LCAyMzUsIDE0MiwgNTksIDEsIDYsIDIzNSwgMjcsIDU5LCAxLCA2LCAxNTAsIDU5LCAxLCA2LCAxODMsIAotICAgIDU5LCAxLCA2LCAyMDQsIDU5LCAxLCA2LCAyMjMsIDIwMiwgMjA0LCA1OSwgMSwgNiwgNzUsIDU5LCAxLCA2LCAyMjcsIDIsIAotICAgIDU5LCAxLCA2LCAyMjYsIDIyOSwgNTksIDEsIDYsIDE0OSwgNTksIDEsIDYsIDIxOCwgOTksIDU5LCAxLCA2LCA2OSwgNTksIAotICAgIDEsIDYsIDIxNCwgODIsIDU5LCAxLCAzLCA2MSwgNTksIDEsIDMsIDIxNiwgNTgsIDYxLCA1OSwgMSwgMywgMjU0LCA1MiwgCi0gICAgNTksIDEsIDMsIDIxNiwgNTgsIDI1NCwgMTQ4LCA1OSwgMSwgMywgMjUzLCA3NCwgNTksIDEsIDMsIDI0OSwgMywgNTksIDEsIAotICAgIDMsIDc0LCA1OSwgMSwgMywgMjIyLCAxMTMsIDU5LCAxLCAzLCAyMjcsIDQwLCA3NCwgNTksIDEsIDMsIDIxNiwgNTgsIDIyNywgCi0gICAgNDAsIDc0LCA1OSwgMSwgMywgMjQzLCAxNzcsIDU5LCAxLCAzLCAyMTYsIDU4LCA3MiwgNTksIDEsIDMsIDIzNSwgMjcsIDU5LCAKLSAgICAxLCAzLCAxODMsIDU5LCAxLCAzLCAyNDUsIDk2LCA1OSwgMSwgMywgNzUsIDU5LCAxLCAzLCAyMjcsIDQwLCA3NSwgNTksIDEsIAotICAgIDMsIDIxNiwgMjI3LCAxNTEsIDc1LCA1OSwgMSwgMywgMjUxLCAxMDEsIDE1MSwgNzUsIDU5LCAxLCAzLCAyMjYsIDIyOSwgCi0gICAgNTksIDEsIDMsIDIxOCwgOTksIDU5LCAxLCAzLCA2OSwgNTksIDEsIDMsIDIyMCwgMTEzLCA2OSwgNTksIDEsIDMsIDIxNiwgCi0gICAgNTgsIDE4MywgNTksIDEsIDMsIDIxNSwgNzksIDU5LCAxLCAzLCAyNTQsIDEwMywgNTksIDEsIDMsIDI1MSwgMjAzLCA1OSwgCi0gICAgMSwgMywgMjUsIDI0MywgODMsIDU5LCAxLCAzLCAyNDgsIDUsIDU5LCAxLCAzLCAyNSwgMjI2LCA5LCA1OSwgMSwgMywgMjUwLCAKLSAgICA0NywgNywgMjE5LCAxMCwgMywgMSwgNzIsIDcsIDIxOSwgMTAsIDMsIDEsIDE0OSwgNywgMjE5LCAxMCwgMywgMSwgNjksIDcsIAotICAgIDIxOSwgMTAsIDMsIDEsIDIxNSwgNzksIDI1LCAyMTksIDEwLCAzLCAxLCAyNTEsIDIwMywgMjUsIDIxOSwgMTAsIDMsIDEsIAotICAgIDI0MywgODMsIDI1LCAyMTksIDEwLCAzLCAxLCAyMjMsIDE5MCwgMjUsIDIxOSwgMTAsIDMsIDEsIDIyNiwgOSwgMjUsIDIxOSwgCi0gICAgMTAsIDMsIDEsIDI1MCwgNDcsIDcsIDMsIDEsIDIxNSwgMTgzLCA3LCAzLCAxLCA1NCwgMiwgMjMxLCAzNywgMjE3LCA0MiwgCi0gICAgNywgMywgMSwgMjQ5LCA0LCAyLCAyMzEsIDM3LCAyMTcsIDQyLCA3LCAzLCAxLCAyNDQsIDIzMSwgMiwgMjMxLCAzNywgMjE3LCAKLSAgICA0MiwgNywgMywgMSwgMjMyLCAxMTAsIDIsIDIzMSwgMzcsIDIxNywgNDIsIDcsIDMsIDEsIDIzMCwgOTgsIDIsIDIzMSwgMzcsIAotICAgIDIxNywgNDIsIDcsIDMsIDEsIDIyNiwgMjMwLCAyLCAyMzEsIDM3LCAyMTcsIDQyLCA3LCAzLCAxLCAyMjQsIDExMywgMiwgCi0gICAgMjMxLCAzNywgMjE3LCA0MiwgNywgMywgMSwgMjI0LCAxMTMsIDIsIDI0NCwgNTcsIDI0LCAyMzEsIDM3LCAyMTcsIDQyLCA3LCAKLSAgICAzLCAxLCAyMjMsIDQsIDIsIDIzMSwgMzcsIDIxNywgNDIsIDcsIDMsIDEsIDIxOCwgMTAwLCAyLCAyMzEsIDM3LCAyMTcsIAotICAgIDQyLCA3LCAzLCAxLCAyMTIsIDE1MywgMiwgMjMxLCAzNywgMjE3LCA0MiwgNywgMywgMSwgMjE2LCA1OCwgMjQzLCAxNzcsIAotICAgIDU5LCAxLCAzMywgMjQ1LCAxMDgsIDcsIDMsIDEsIDIzNSwgMjEwLCAyNDMsIDE3NywgNywgMywgMSwgMjE3LCAxNjQsIDIsIAotICAgIDIxOSwgNDcsIDcsIDMsIDYsIDEsIDI0MCwgMTQ2LCAyLCA5MCwgNywgMywgMSwgMjM1LCAxODQsIDIsIDkwLCA3LCAzLCAxLCAKLSAgICAyMjYsIDIzMCwgMiwgOTAsIDcsIDMsIDYsIDEsIDExMSwgMiwgOTAsIDcsIDMsIDEsIDIxNSwgMTI5LCAyLCA5MCwgNywgMywgCi0gICAgMSwgNTQsIDIsIDIyNiwgMTkzLCAxMDEsIDcsIDMsIDEsIDI0OSwgNCwgMiwgMjI2LCAxOTMsIDEwMSwgNywgMywgMSwgMjQ0LCAKLSAgICAyMzEsIDIsIDIyNiwgMTkzLCAxMDEsIDcsIDMsIDEsIDI0MywgMTc4LCAyLCAyMjYsIDE5MywgMTAxLCA3LCAzLCAxLCAyMzUsIAotICAgIDI4LCAyLCAyMjYsIDE5MywgMTAxLCA3LCAzLCAxLCAyMzMsIDE3MSwgMiwgMjI2LCAxOTMsIDEwMSwgNywgMywgMSwgMjMyLCAKLSAgICAxMTAsIDIsIDIyNiwgMTkzLCAxMDEsIDcsIDMsIDEsIDIzMCwgOTgsIDIsIDIyNiwgMTkzLCAxMDEsIDcsIDMsIDEsIDIyNiwgCi0gICAgMjMwLCAyLCAyMjYsIDE5MywgMTAxLCA3LCAzLCAxLCAyMjQsIDExMywgMiwgMjI2LCAxOTMsIDEwMSwgNywgMywgMSwgMjIzLCAKLSAgICA0LCAyLCAyMjYsIDE5MywgMTAxLCA3LCAzLCAxLCAyNDUsIDQxLCAyLCAyMjYsIDE5MywgMTAxLCA3LCAzLCAxLCAyMTUsIAotICAgIDgwLCAyLCAyMjYsIDE5MywgMTAxLCA3LCAzLCAxLCAyMTMsIDE2NywgMiwgMjI2LCAxOTMsIDEwMSwgNywgMywgMSwgMjEyLCAKLSAgICAxNTMsIDIsIDIyNiwgMTkzLCAxMDEsIDcsIDMsIDEsIDExOCwgMiwgMjIzLCAyMDcsIDEwMSwgNywgMywgMSwgMjU0LCA1MywgCi0gICAgMiwgMjIzLCAyMDcsIDEwMSwgNywgMywgMSwgMjQ5LCA0LCAyLCAyNDEsIDM4LCAyNCwgMjE4LCAyNywgNywgMywgMSwgMTkxLCAKLSAgICAyLCAyMjMsIDIwNywgMTAxLCA3LCAzLCAxLCAyMjcsIDQwLCAxOTEsIDIsIDIyMywgMjA3LCAxMDEsIDcsIDMsIDEsIDIyMywgCi0gICAgMjAyLCAyMjcsIDQwLCAxOTEsIDIsIDIyMywgMjA3LCAxMDEsIDcsIDMsIDEsIDIyMiwgMTE0LCAyLCAyMjMsIDIwNywgMTAxLCAKLSAgICA3LCAzLCAxLCAyNDAsIDE0NiwgMiwgMjIzLCAyMDcsIDEwMSwgNywgMywgMSwgMjI3LCA0MCwgMTU3LCAyLCAyMjMsIDIwNywgCi0gICAgMTAxLCA3LCAzLCAxLCAyNDUsIDQxLCAyLCAyMjMsIDIwNywgMTAxLCA3LCAzLCAxLCAxMTEsIDIsIDIyMywgMjA3LCAxMDEsIAotICAgIDcsIDMsIDEsIDI0NCwgMjMzLCAyLCAyMjMsIDIwNywgMTAxLCA1OSwgMSwgMywgMjE2LCA1OCwgMjU0LCA1MiwgNTksIDEsIAotICAgIDMsIDI1MCwgMjUyLCA1OSwgMSwgMywgMjUwLCAyNTMsIDIsIDI0OSwgNDEsIDU5LCAxLCAzLCAyNDUsIDI1LCA1OSwgMSwgMywgCi0gICAgMjIzLCAyMDIsIDIyNywgNDAsIDc0LCA1OSwgMSwgMywgMjQ0LCAyMzAsIDU5LCAxLCAzLCAyNDcsIDczLCAyMzUsIDE0MywgCi0gICAgMiwgOTAsIDU5LCAxLCAzLCAxMTMsIDI0MywgMTc3LCA1OSwgMSwgMywgMjE2LCA1OCwgMjQyLCA0MSwgNTksIDEsIDMsIAotICAgIDI0MCwgMTQ2LCAyLCA5MCwgNTksIDEsIDMsIDIzNSwgMTgzLCA1OSwgMSwgMywgNiwgNzIsIDU5LCAxLCAzLCA2LCAyNDAsIAotICAgIDE0NiwgMiwgOTAsIDU5LCAxLCAzLCAyMzUsIDE0MywgMiwgMjQ5LCA2NywgNTksIDEsIDMsIDIzMywgMTcxLCAyLCAyMjMsIAotICAgIDIwNywgMTAxLCA1OSwgMSwgMywgMjMzLCAxNzEsIDIsIDIyNiwgMTkzLCAxMDEsIDU5LCAxLCAzLCA2LCAxNTAsIDU5LCAxLCAKLSAgICAzLCAyMzIsIDExMCwgMiwgMTAxLCA1OSwgMSwgMywgMjE2LCA1OCwgMjMyLCAxMTAsIDIsIDE4NCwgMjMzLCA2MCwgNTksIDEsIAotICAgIDMsIDIzMCwgOTgsIDIsIDQyLCAxMDEsIDU5LCAxLCAzLCAyMzAsIDk4LCAyLCAyMjMsIDIwNywgMTAxLCA1OSwgMSwgMywgNiwgCi0gICAgMjA0LCA1OSwgMSwgMywgMjUyLCA1NCwgNzUsIDU5LCAxLCAzLCAyMjYsIDksIDU5LCAxLCAzLCAyMjMsIDQsIDIsIDEwMSwgCi0gICAgNTksIDEsIDMsIDI0NSwgNDAsIDU5LCAxLCAzLCAyMTgsIDEwMCwgMiwgMjI2LCAxOTMsIDEwMSwgNTksIDEsIDMsIDExMSwgCi0gICAgMTM0LCA1OSwgMSwgMywgMjE1LCAxMjgsIDU5LCAxLCAzLCA2LCA2OSwgNTksIDEsIDMsIDIxNSwgODAsIDIsIDEwMSwgNTksIAotICAgIDEsIDMsIDIxNiwgNTgsIDIxNSwgNzksIDU5LCAxLCAzLCAyMTIsIDE1MiwgNTksIDEsIDMsIDIxMiwgMTUzLCAyLCAyMjMsIAotICAgIDIwNywgMTAxLCA1OSwgMSwgMywgMjEyLCAxNTMsIDIsIDI0OSwgNDEsIDU5LCAxLCAzLCAyNDQsIDIzMiwgNTksIDEsIDMsIAotICAgIDIxNywgMTMyLCAzNywgMjQ2LCA3MiwgMjQyLCAxMTQsIDI1NCwgMTc0LCAzNywgMjQ2LCA3MiwgMjU0LCAxNjQsIDI1NCwgCi0gICAgMTc0LCAzNywgMjE5LCAyNTMsIDU1LCAzNywgMjE4LCAyMDcsIDc3LCAzNywgMjMyLCAzNiwgMzcsIDI0MiwgMTExLCAzNywgCi0gICAgMjMyLCAzNCwgMzcsIDI1NCwgMTYyLCAzNywgMjQyLCAxMTIsIDM3LCAyNTQsIDE2MywgMzcsIDcsIDMsIDEsIDIyNCwgMTEzLCAKLSAgICA1NSwgMzcsIDI1MSwgNzMsIDM3LCAyMzIsIDM1LCAzNywgNTEsIDI0OSwgMjI0LCA0OSwgMzcsIDIyNywgOTEsIDQ5LCAzNywgCi0gICAgMjEyLCAyOCwgNTUsIDM3LCAyMzUsIDE3MCwgNTUsIDM3LCAyMTUsIDEyMiwgNDksIDM3LCAyMTUsIDEwNSwgNDksIDM3LCA3LCAKLSAgICAzLCAxLCAyNDQsIDMyLCAyMjcsIDQwLCAxMTgsIDQ5LCAzNywgNywgMywgMSwgMjU0LCAxNDgsIDM3LCA3LCAzLCAxLCAyNTMsIAotICAgIDI0MCwgMzcsIDcsIDMsIDEsIDI1MywgOTIsIDM3LCA3LCAzLCAxLCAyNTAsIDI1MywgMjUwLCAxMTcsIDM3LCA3LCAzLCAxLCAKLSAgICAyMzUsIDIxMCwgMjQ5LCAzLCAzNywgNywgMywgMSwgMjQ1LCAyNSwgMzcsIDcsIDMsIDEsIDI0MywgMTc3LCAzNywgNywgMSwgCi0gICAgMywgNiwgMjQzLCAxNzcsIDM3LCA3LCAzLCAxLCAyMzUsIDI3LCAzNywgNywgMywgMSwgMTUwLCAzNywgNywgMSwgMywgNiwgCi0gICAgMTUwLCAzNywgNywgMSwgMywgNiwgMTgzLCAzNywgNywgMywgMSwgMjA0LCAzNywgNywgMSwgMywgNiwgMjA0LCAzNywgNywgCi0gICAgMSwgMywgNiwgMTQ5LCAzNywgNywgMywgMSwgMjI0LCAxMTMsIDIyMywgODgsIDM3LCA3LCAzLCAxLCAxOTcsIDM3LCA3LCAzLCAKLSAgICAxLCAxODQsIDE5NywgMzcsIDcsIDMsIDEsIDIxMiwgMTUyLCAzNywgNTEsIDIzNSwgMTkxLCAyNTEsIDc1LCA1NSwgMzcsIAotICAgIDI1NCwgNTcsIDEyMywgMjExLCAyMTEsIDU1LCAzNywgNDIsIDI1MywgMTY1LCA0OSwgMzcsIDQ2LCAyNTMsIDE2NSwgMjQsIAotICAgIDExOSwgMjUzLCAxNjUsIDU1LCA3LCA2LCAxLCAxMTgsIDIsIDIyMywgMTMxLCA1NSwgNywgMywgMSwgMTE4LCAyLCAyMjMsIAotICAgIDEzMSwgNTUsIDcsIDYsIDEsIDU0LCAyLCA2MiwgNDksIDcsIDMsIDEsIDU0LCAyLCA2MiwgNDksIDcsIDYsIDEsIDU0LCAyLCAKLSAgICA2MiwgNTUsIDcsIDMsIDEsIDU0LCAyLCA2MiwgNTUsIDcsIDYsIDEsIDU0LCAyLCAyMzIsIDI0MywgNTUsIDcsIDMsIDEsIAotICAgIDU0LCAyLCAyMzIsIDI0MywgNTUsIDcsIDYsIDEsIDI1MCwgMjUzLCAyLCAyNTAsIDExOCwgMjQsIDE3OSwgNywgMywgMSwgCi0gICAgMjUwLCAyNTMsIDIsIDI1MCwgMTE4LCAyNCwgMTc5LCA3LCA2LCAxLCAyNDksIDQsIDIsIDYyLCA0OSwgNywgMywgMSwgMjQ5LCAKLSAgICA0LCAyLCA2MiwgNDksIDcsIDYsIDEsIDI0OSwgNCwgMiwgNjIsIDU1LCA3LCAzLCAxLCAyNDksIDQsIDIsIDYyLCA1NSwgNywgCi0gICAgNiwgMSwgMjQ5LCA0LCAyLCAyMzIsIDI0MywgNTUsIDcsIDMsIDEsIDI0OSwgNCwgMiwgMjMyLCAyNDMsIDU1LCA3LCA2LCAxLCAKLSAgICAyNDksIDQsIDIsIDI1MCwgMTE3LCA3LCAzLCAxLCAyNDksIDQsIDIsIDI1MCwgMTE3LCA3LCA2LCAxLCAyNDksIDQsIDIsIAotICAgIDI0OSwgMjI0LCA1NSwgNywgMywgMSwgMjQ5LCA0LCAyLCAyNDksIDIyNCwgNTUsIDcsIDYsIDEsIDE5MSwgMiwgMjMyLCAzOCwgCi0gICAgMjQsIDI0MiwgMTEzLCA3LCAzLCAxLCAxOTEsIDIsIDIzMiwgMzgsIDI0LCAyNDIsIDExMywgNywgNiwgMSwgMTkxLCAyLCAKLSAgICAyMzIsIDM4LCAyNCwgMTc5LCA3LCAzLCAxLCAxOTEsIDIsIDIzMiwgMzgsIDI0LCAxNzksIDcsIDYsIDEsIDE5MSwgMiwgCi0gICAgMjQ5LCAyMjQsIDU1LCA3LCAzLCAxLCAxOTEsIDIsIDI0OSwgMjI0LCA1NSwgNywgNiwgMSwgMTkxLCAyLCAyMTcsIDQzLCAKLSAgICA1NSwgNywgMywgMSwgMTkxLCAyLCAyMTcsIDQzLCA1NSwgNywgNiwgMSwgMTkxLCAyLCAyNTAsIDExOCwgMjQsIDI1MSwgNzQsIAotICAgIDcsIDMsIDEsIDE5MSwgMiwgMjUwLCAxMTgsIDI0LCAyNTEsIDc0LCA3LCA2LCAxLCAyNDQsIDIzMSwgMiwgNjIsIDQ5LCA3LCAKLSAgICAzLCAxLCAyNDQsIDIzMSwgMiwgNjIsIDQ5LCA3LCA2LCAxLCAyNDMsIDE3OCwgMiwgMjMyLCAzNywgNywgMywgMSwgMjQzLCAKLSAgICAxNzgsIDIsIDIzMiwgMzcsIDcsIDYsIDEsIDI0MiwgNDIsIDIsIDYyLCA0OSwgNywgMywgMSwgMjQyLCA0MiwgMiwgNjIsIAotICAgIDQ5LCA3LCA2LCAxLCAyNDIsIDQyLCAyLCA2MiwgNTUsIDcsIDMsIDEsIDI0MiwgNDIsIDIsIDYyLCA1NSwgNywgNiwgMSwgCi0gICAgMjQyLCA0MiwgMiwgMjQ3LCAyMDksIDcsIDMsIDEsIDI0MiwgNDIsIDIsIDI0NywgMjA5LCA3LCA2LCAxLCAyNDIsIDQyLCAyLCAKLSAgICAyNTAsIDExNywgNywgMywgMSwgMjQyLCA0MiwgMiwgMjUwLCAxMTcsIDcsIDYsIDEsIDI0MiwgNDIsIDIsIDI1MSwgNzUsIAotICAgIDU1LCA3LCAzLCAxLCAyNDIsIDQyLCAyLCAyNTEsIDc1LCA1NSwgNywgNiwgMSwgMjQwLCAxNDYsIDIsIDIxNywgNDMsIDU1LCAKLSAgICA3LCAzLCAxLCAyNDAsIDE0NiwgMiwgMjE3LCA0MywgNTUsIDcsIDYsIDEsIDI0MCwgMTQ2LCAyLCAyNDcsIDIxMCwgMjQsIAotICAgIDE3OSwgNywgMywgMSwgMjQwLCAxNDYsIDIsIDI0NywgMjEwLCAyNCwgMTc5LCA3LCA2LCAxLCAyMzUsIDI4LCAyLCAxNzksIAotICAgIDcsIDMsIDEsIDIzNSwgMjgsIDIsIDE3OSwgNywgNiwgMSwgMjM1LCAyOCwgMiwgNjIsIDU1LCA3LCAzLCAxLCAyMzUsIDI4LCAKLSAgICAyLCA2MiwgNTUsIDcsIDYsIDEsIDIzNSwgMjgsIDIsIDIzMiwgMjQzLCA1NSwgNywgMywgMSwgMjM1LCAyOCwgMiwgMjMyLCAKLSAgICAyNDMsIDU1LCA3LCA2LCAxLCAyMzMsIDE3MSwgMiwgNjIsIDU1LCA3LCAzLCAxLCAyMzMsIDE3MSwgMiwgNjIsIDU1LCA3LCAKLSAgICA2LCAxLCAyMzMsIDE3MSwgMiwgNjIsIDI1MSwgMjIwLCAyNCwgMjMyLCAzNywgNywgMywgMSwgMjMzLCAxNzEsIDIsIDYyLCAKLSAgICAyNTEsIDIyMCwgMjQsIDIzMiwgMzcsIDcsIDYsIDEsIDIzMywgMTcxLCAyLCAyMzIsIDI0MywgNTUsIDcsIDMsIDEsIDIzMywgCi0gICAgMTcxLCAyLCAyMzIsIDI0MywgNTUsIDcsIDYsIDEsIDIzMywgMTcxLCAyLCAyNDksIDIyNCwgNTUsIDcsIDMsIDEsIDIzMywgCi0gICAgMTcxLCAyLCAyNDksIDIyNCwgNTUsIDcsIDYsIDEsIDIzMiwgMTEwLCAyLCAxNzksIDcsIDMsIDEsIDIzMiwgMTEwLCAyLCAKLSAgICAxNzksIDcsIDYsIDEsIDIzMiwgMTEwLCAyLCA2MiwgNDksIDcsIDMsIDEsIDIzMiwgMTEwLCAyLCA2MiwgNDksIDcsIDYsIDEsIAotICAgIDIzMiwgMTEwLCAyLCA2MiwgNTUsIDcsIDMsIDEsIDIzMiwgMTEwLCAyLCA2MiwgNTUsIDcsIDYsIDEsIDIzMCwgOTgsIDIsIAotICAgIDYyLCA0OSwgNywgMywgMSwgMjMwLCA5OCwgMiwgNjIsIDQ5LCA3LCA2LCAxLCAyMzAsIDk4LCAyLCA2MiwgNTUsIDcsIDMsIAotICAgIDEsIDIzMCwgOTgsIDIsIDYyLCA1NSwgNywgNiwgMSwgMjMwLCA5OCwgMiwgMjMyLCAyNDMsIDU1LCA3LCAzLCAxLCAyMzAsIAotICAgIDk4LCAyLCAyMzIsIDI0MywgNTUsIDcsIDYsIDEsIDIzMCwgOTgsIDIsIDI0OSwgMjI0LCA1NSwgNywgMywgMSwgMjMwLCA5OCwgCi0gICAgMiwgMjQ5LCAyMjQsIDU1LCA3LCA2LCAxLCAxNTcsIDIsIDIxNywgNDMsIDI0LCAxNzksIDcsIDMsIDEsIDE1NywgMiwgMjE3LCAKLSAgICA0MywgMjQsIDE3OSwgNywgNiwgMSwgMTU3LCAyLCAyMTcsIDQzLCAyNCwgMjQ3LCAyMDksIDcsIDMsIDEsIDE1NywgMiwgCi0gICAgMjE3LCA0MywgMjQsIDI0NywgMjA5LCA3LCA2LCAxLCAxNTcsIDIsIDIzMiwgMzgsIDI0LCAyNDIsIDExMywgNywgMywgMSwgCi0gICAgMTU3LCAyLCAyMzIsIDM4LCAyNCwgMjQyLCAxMTMsIDcsIDYsIDEsIDE1NywgMiwgMjMyLCAzOCwgMjQsIDE3OSwgNywgMywgCi0gICAgMSwgMTU3LCAyLCAyMzIsIDM4LCAyNCwgMTc5LCA3LCA2LCAxLCAyMjYsIDIzMCwgMiwgMTc5LCA3LCAzLCAxLCAyMjYsIAotICAgIDIzMCwgMiwgMTc5LCA3LCA2LCAxLCAyMjYsIDIzMCwgMiwgNjIsIDQ5LCA3LCAzLCAxLCAyMjYsIDIzMCwgMiwgNjIsIDQ5LCAKLSAgICA3LCA2LCAxLCAyMjQsIDExMywgMiwgNjIsIDQ5LCA3LCAzLCAxLCAyMjQsIDExMywgMiwgNjIsIDQ5LCA3LCA2LCAxLCAyMjQsIAotICAgIDExMywgMiwgNjIsIDU1LCA3LCAzLCAxLCAyMjQsIDExMywgMiwgNjIsIDU1LCA3LCA2LCAxLCAyMjQsIDExMywgMiwgNjIsIAotICAgIDI1MSwgMjIwLCAyNCwgMjMyLCAzNywgNywgMywgMSwgMjI0LCAxMTMsIDIsIDYyLCAyNTEsIDIyMCwgMjQsIDIzMiwgMzcsIAotICAgIDcsIDYsIDEsIDIyNCwgMTEzLCAyLCAyMzIsIDI0MywgNTUsIDcsIDMsIDEsIDIyNCwgMTEzLCAyLCAyMzIsIDI0MywgNTUsIAotICAgIDcsIDYsIDEsIDIyMywgNCwgMiwgNjIsIDQ5LCA3LCAzLCAxLCAyMjMsIDQsIDIsIDYyLCA0OSwgNywgNiwgMSwgMjIzLCA0LCAKLSAgICAyLCA2MiwgNTUsIDcsIDMsIDEsIDIyMywgNCwgMiwgNjIsIDU1LCA3LCA2LCAxLCAyMjMsIDQsIDIsIDI1NCwgMTY0LCAyNCwgCi0gICAgNjIsIDQ5LCA3LCAzLCAxLCAyMjMsIDQsIDIsIDI1NCwgMTY0LCAyNCwgNjIsIDQ5LCA3LCA2LCAxLCAyMjMsIDQsIDIsIAotICAgIDI1MCwgMTY3LCAyNCwgNjIsIDQ5LCA3LCAzLCAxLCAyMjMsIDQsIDIsIDI1MCwgMTY3LCAyNCwgNjIsIDQ5LCA3LCA2LCAxLCAKLSAgICAyMjMsIDQsIDIsIDYyLCAyNTEsIDIyMCwgMjQsIDYyLCA0OSwgNywgMywgMSwgMjIzLCA0LCAyLCA2MiwgMjUxLCAyMjAsIAotICAgIDI0LCA2MiwgNDksIDcsIDYsIDEsIDIxOCwgMTAwLCAyLCA2MiwgNDksIDcsIDMsIDEsIDIxOCwgMTAwLCAyLCA2MiwgNDksIAotICAgIDcsIDYsIDEsIDIxOCwgMTAwLCAyLCA2MiwgNTUsIDcsIDMsIDEsIDIxOCwgMTAwLCAyLCA2MiwgNTUsIDcsIDYsIDEsIDIxOCwgCi0gICAgMTAwLCAyLCAyMzIsIDI0MywgNTUsIDcsIDMsIDEsIDIxOCwgMTAwLCAyLCAyMzIsIDI0MywgNTUsIDcsIDYsIDEsIDIxOCwgCi0gICAgMTAwLCAyLCAyNDksIDIyNCwgNTUsIDcsIDMsIDEsIDIxOCwgMTAwLCAyLCAyNDksIDIyNCwgNTUsIDcsIDYsIDEsIDExMSwgCi0gICAgMiwgMjQ3LCAyMTAsIDU1LCA3LCAzLCAxLCAxMTEsIDIsIDI0NywgMjEwLCA1NSwgNywgNiwgMSwgMTExLCAyLCAyMTcsIDQzLCAKLSAgICA1NSwgNywgMywgMSwgMTExLCAyLCAyMTcsIDQzLCA1NSwgNywgNiwgMSwgMTExLCAyLCAyNDksIDIyNCwgNTUsIDcsIDMsIDEsIAotICAgIDExMSwgMiwgMjQ5LCAyMjQsIDU1LCA3LCA2LCAxLCAxMTEsIDIsIDIxNywgNDMsIDI0LCAxNzksIDcsIDMsIDEsIDExMSwgMiwgCi0gICAgMjE3LCA0MywgMjQsIDE3OSwgNywgNiwgMSwgMTExLCAyLCAyMzIsIDM4LCAyNCwgMjQ3LCAyMDksIDcsIDMsIDEsIDExMSwgCi0gICAgMiwgMjMyLCAzOCwgMjQsIDI0NywgMjA5LCA3LCA2LCAxLCAyMTUsIDgwLCAyLCAyMTcsIDQyLCA3LCAzLCAxLCAyMTUsIDgwLCAKLSAgICAyLCAyMTcsIDQyLCA3LCA2LCAxLCAyMTUsIDgwLCAyLCA2MiwgNTUsIDcsIDMsIDEsIDIxNSwgODAsIDIsIDYyLCA1NSwgNywgCi0gICAgNiwgMSwgMjE0LCA4MywgMiwgMjQyLCAxMTMsIDcsIDMsIDEsIDIxNCwgODMsIDIsIDI0MiwgMTEzLCA3LCA2LCAxLCAyMTQsIAotICAgIDgzLCAyLCAxNzksIDcsIDMsIDEsIDIxNCwgODMsIDIsIDE3OSwgNywgNiwgMSwgMjE0LCA4MywgMiwgMjQ3LCAyMDksIDcsIAotICAgIDMsIDEsIDIxNCwgODMsIDIsIDI0NywgMjA5LCA3LCA2LCAxLCAyMTQsIDgzLCAyLCA2MiwgNDksIDcsIDMsIDEsIDIxNCwgCi0gICAgODMsIDIsIDYyLCA0OSwgNywgNiwgMSwgMjE0LCA4MywgMiwgNjIsIDU1LCA3LCAzLCAxLCAyMTQsIDgzLCAyLCA2MiwgNTUsIAotICAgIDcsIDYsIDEsIDIxMywgMTY3LCAyLCA2MiwgNDksIDcsIDMsIDEsIDIxMywgMTY3LCAyLCA2MiwgNDksIDcsIDYsIDEsIDIxMywgCi0gICAgMTY3LCAyLCAyNDcsIDIwOSwgNywgMywgMSwgMjEzLCAxNjcsIDIsIDI0NywgMjA5LCA3LCA2LCAxLCAyMTMsIDEwNiwgMiwgCi0gICAgNjIsIDQ5LCA3LCAzLCAxLCAyMTMsIDEwNiwgMiwgNjIsIDQ5LCA3LCA2LCAxLCAyMTIsIDE1MywgMiwgMjQ5LCAyMjMsIDcsIAotICAgIDMsIDEsIDIxMiwgMTUzLCAyLCAyNDksIDIyMywgNywgNiwgMSwgMjEyLCAxNTMsIDIsIDYyLCA1NSwgNywgMywgMSwgMjEyLCAKLSAgICAxNTMsIDIsIDYyLCA1NSwgNywgNiwgMSwgMjEyLCAxNTMsIDIsIDIzMiwgMjQzLCA1NSwgNywgMywgMSwgMjEyLCAxNTMsIDIsIAotICAgIDIzMiwgMjQzLCA1NSwgNywgMywgMSwgMjQyLCA0MiwgMiwgMjMyLCAyNDMsIDU1LCA3LCAzLCAxLCAyMTgsIDEwMCwgMiwgCi0gICAgMjQ3LCAyMDksIDcsIDMsIDEsIDIxNCwgODMsIDIsIDIyMywgMTMxLCA0OSwgNywgMywgMSwgMjEzLCAxMDYsIDIsIDIyMywgCi0gICAgMTMxLCA0OSwgNywgMywgMSwgMTE4LCAyLCA0NiwgMTUxLCAyMjMsIDEzMCwgNywgMywgMSwgMTg0LCAyMjMsIDQsIDIsIDYyLCAKLSAgICA0OSwgNywgMywgMSwgMTg0LCAyMjMsIDQsIDIsIDI0NywgMjA3LCA5MCwgNywgMywgMSwgMTg0LCAyMjMsIDQsIDIsIDEyNCwgCi0gICAgOTAsIDcsIDYsIDEsIDIyMCwgMjU1LCAxOTcsIDcsIDMsIDEsIDI0OCwgNSwgNywgNiwgMSwgMTE4LCAyLCA2MiwgNTUsIDcsIAotICAgIDMsIDEsIDExOCwgMiwgNjIsIDU1LCA3LCA2LCAxLCAxMTgsIDIsIDI0MSwgMzgsIDQ5LCA3LCAzLCAxLCAxMTgsIDIsIDI0MSwgCi0gICAgMzgsIDQ5LCA3LCA2LCAxLCAxMTgsIDIsIDI0OSwgMjI0LCAyNCwgMTc5LCA3LCAzLCAxLCAxMTgsIDIsIDI0OSwgMjI0LCAKLSAgICAyNCwgMTc5LCA3LCA2LCAxLCAxMTgsIDIsIDI0OSwgMjI0LCAyNCwgMjQyLCAxMTMsIDcsIDMsIDEsIDExOCwgMiwgMjQ5LCAKLSAgICAyMjQsIDI0LCAyNDIsIDExMywgNywgNiwgMSwgMTE4LCAyLCAyNDksIDIyNCwgMjQsIDI0MSwgMzgsIDQ5LCA3LCAzLCAxLCAKLSAgICAxMTgsIDIsIDI0OSwgMjI0LCAyNCwgMjQxLCAzOCwgNDksIDcsIDYsIDEsIDExOCwgMiwgMjQ5LCAyMjQsIDI0LCAyMTcsIAotICAgIDQyLCA3LCAzLCAxLCAxMTgsIDIsIDI0OSwgMjI0LCAyNCwgMjE3LCA0MiwgNywgNiwgMSwgMTE4LCAyLCAyNDksIDIyNCwgCi0gICAgMjQsIDYyLCA1NSwgNywgMywgMSwgMTE4LCAyLCAyNDksIDIyNCwgMjQsIDYyLCA1NSwgNywgNiwgMSwgMTE4LCAyLCAyNTEsIAotICAgIDc1LCAyNCwgMTc5LCA3LCAzLCAxLCAxMTgsIDIsIDI1MSwgNzUsIDI0LCAxNzksIDcsIDYsIDEsIDExOCwgMiwgMjUxLCA3NSwgCi0gICAgMjQsIDI0MiwgMTEzLCA3LCAzLCAxLCAxMTgsIDIsIDI1MSwgNzUsIDI0LCAyNDIsIDExMywgNywgNiwgMSwgMTE4LCAyLCAKLSAgICAyNTEsIDc1LCAyNCwgMjQxLCAzOCwgNDksIDcsIDMsIDEsIDExOCwgMiwgMjUxLCA3NSwgMjQsIDI0MSwgMzgsIDQ5LCA3LCAKLSAgICA2LCAxLCAxMTgsIDIsIDI1MSwgNzUsIDI0LCAyMTcsIDQyLCA3LCAzLCAxLCAxMTgsIDIsIDI1MSwgNzUsIDI0LCAyMTcsIAotICAgIDQyLCA3LCA2LCAxLCAxMTgsIDIsIDI1MSwgNzUsIDI0LCA2MiwgNTUsIDcsIDMsIDEsIDExOCwgMiwgMjUxLCA3NSwgMjQsIAotICAgIDYyLCA1NSwgNywgNiwgMSwgMTkxLCAyLCA2MiwgNTUsIDcsIDMsIDEsIDE5MSwgMiwgNjIsIDU1LCA3LCA2LCAxLCAxOTEsIAotICAgIDIsIDI0MSwgMzgsIDQ5LCA3LCAzLCAxLCAxOTEsIDIsIDI0MSwgMzgsIDQ5LCA3LCA2LCAxLCAxOTEsIDIsIDIxNywgNDIsIAotICAgIDcsIDMsIDEsIDE5MSwgMiwgMjE3LCA0MiwgNywgNiwgMSwgMTkxLCAyLCAyNDksIDIyNCwgMjQsIDE3OSwgNywgMywgMSwgCi0gICAgMTkxLCAyLCAyNDksIDIyNCwgMjQsIDE3OSwgNywgNiwgMSwgMTkxLCAyLCAyNDksIDIyNCwgMjQsIDI0MiwgMTEzLCA3LCAzLCAKLSAgICAxLCAxOTEsIDIsIDI0OSwgMjI0LCAyNCwgMjQyLCAxMTMsIDcsIDYsIDEsIDE5MSwgMiwgMjQ5LCAyMjQsIDI0LCAyNDEsIAotICAgIDM4LCA0OSwgNywgMywgMSwgMTkxLCAyLCAyNDksIDIyNCwgMjQsIDI0MSwgMzgsIDQ5LCA3LCA2LCAxLCAxOTEsIDIsIDI0OSwgCi0gICAgMjI0LCAyNCwgMjE3LCA0MiwgNywgMywgMSwgMTkxLCAyLCAyNDksIDIyNCwgMjQsIDIxNywgNDIsIDcsIDYsIDEsIDE5MSwgCi0gICAgMiwgMjQ5LCAyMjQsIDI0LCA2MiwgNTUsIDcsIDMsIDEsIDE5MSwgMiwgMjQ5LCAyMjQsIDI0LCA2MiwgNTUsIDcsIDYsIDEsIAotICAgIDI0MCwgMTQ2LCAyLCAyNDEsIDM4LCA0OSwgNywgMywgMSwgMjQwLCAxNDYsIDIsIDI0MSwgMzgsIDQ5LCA3LCA2LCAxLCAKLSAgICAyNDAsIDE0NiwgMiwgNjIsIDU1LCA3LCAzLCAxLCAyNDAsIDE0NiwgMiwgNjIsIDU1LCA3LCA2LCAxLCAxNTcsIDIsIDYyLCAKLSAgICA1NSwgNywgMywgMSwgMTU3LCAyLCA2MiwgNTUsIDcsIDYsIDEsIDE1NywgMiwgMjQxLCAzOCwgNDksIDcsIDMsIDEsIDE1NywgCi0gICAgMiwgMjQxLCAzOCwgNDksIDcsIDYsIDEsIDE1NywgMiwgMjQ5LCAyMjQsIDI0LCAxNzksIDcsIDMsIDEsIDE1NywgMiwgMjQ5LCAKLSAgICAyMjQsIDI0LCAxNzksIDcsIDYsIDEsIDE1NywgMiwgMjQ5LCAyMjQsIDI0LCAyNDIsIDExMywgNywgMywgMSwgMTU3LCAyLCAKLSAgICAyNDksIDIyNCwgMjQsIDI0MiwgMTEzLCA3LCA2LCAxLCAxNTcsIDIsIDI0OSwgMjI0LCAyNCwgMjQxLCAzOCwgNDksIDcsIDMsIAotICAgIDEsIDE1NywgMiwgMjQ5LCAyMjQsIDI0LCAyNDEsIDM4LCA0OSwgNywgNiwgMSwgMTU3LCAyLCAyNDksIDIyNCwgMjQsIDIxNywgCi0gICAgNDIsIDcsIDMsIDEsIDE1NywgMiwgMjQ5LCAyMjQsIDI0LCAyMTcsIDQyLCA3LCA2LCAxLCAxNTcsIDIsIDI0OSwgMjI0LCAKLSAgICAyNCwgNjIsIDU1LCA3LCAzLCAxLCAxNTcsIDIsIDI0OSwgMjI0LCAyNCwgNjIsIDU1LCA3LCA2LCAxLCAxNTcsIDIsIDI0MCwgCi0gICAgMjM2LCAyNCwgMTc5LCA3LCAzLCAxLCAxNTcsIDIsIDI0MCwgMjM2LCAyNCwgMTc5LCA3LCA2LCAxLCAxNTcsIDIsIDI0MCwgCi0gICAgMjM2LCAyNCwgMjQyLCAxMTMsIDcsIDMsIDEsIDE1NywgMiwgMjQwLCAyMzYsIDI0LCAyNDIsIDExMywgNywgNiwgMSwgMTU3LCAKLSAgICAyLCAyNDAsIDIzNiwgMjQsIDI0MSwgMzgsIDQ5LCA3LCAzLCAxLCAxNTcsIDIsIDI0MCwgMjM2LCAyNCwgMjQxLCAzOCwgNDksIAotICAgIDcsIDYsIDEsIDE1NywgMiwgMjQwLCAyMzYsIDI0LCAyMTcsIDQyLCA3LCAzLCAxLCAxNTcsIDIsIDI0MCwgMjM2LCAyNCwgCi0gICAgMjE3LCA0MiwgNywgNiwgMSwgMTU3LCAyLCAyNDAsIDIzNiwgMjQsIDYyLCA1NSwgNywgMywgMSwgMTU3LCAyLCAyNDAsIAotICAgIDIzNiwgMjQsIDYyLCA1NSwgNywgNiwgMSwgMTExLCAyLCA2MiwgNTUsIDcsIDMsIDEsIDExMSwgMiwgNjIsIDU1LCA3LCA2LCAKLSAgICAxLCAxMTEsIDIsIDI0MSwgMzgsIDQ5LCA3LCAzLCAxLCAxMTEsIDIsIDI0MSwgMzgsIDQ5LCA3LCA2LCAxLCAxMTEsIDIsIAotICAgIDI0MCwgMjM2LCAyNCwgMTc5LCA3LCAzLCAxLCAxMTEsIDIsIDI0MCwgMjM2LCAyNCwgMTc5LCA3LCA2LCAxLCAxMTEsIDIsIAotICAgIDI0MCwgMjM2LCAyNCwgMjQyLCAxMTMsIDcsIDMsIDEsIDExMSwgMiwgMjQwLCAyMzYsIDI0LCAyNDIsIDExMywgNywgNiwgMSwgCi0gICAgMTExLCAyLCAyNDAsIDIzNiwgMjQsIDI0MSwgMzgsIDQ5LCA3LCAzLCAxLCAxMTEsIDIsIDI0MCwgMjM2LCAyNCwgMjQxLCAKLSAgICAzOCwgNDksIDcsIDYsIDEsIDExMSwgMiwgMjQwLCAyMzYsIDI0LCAyMTcsIDQyLCA3LCAzLCAxLCAxMTEsIDIsIDI0MCwgCi0gICAgMjM2LCAyNCwgMjE3LCA0MiwgNywgNiwgMSwgMTExLCAyLCAyNDAsIDIzNiwgMjQsIDYyLCA1NSwgNywgMywgMSwgMTExLCAyLCAKLSAgICAyNDAsIDIzNiwgMjQsIDYyLCA1NSwgNywgNiwgMSwgMjEzLCAxMDYsIDIsIDI0MiwgMTEzLCA3LCAzLCAxLCAyMTMsIDEwNiwgCi0gICAgMiwgMjQyLCAxMTMsIDcsIDYsIDEsIDIxMywgMTA2LCAyLCA2MiwgNTUsIDcsIDMsIDEsIDIxMywgMTA2LCAyLCA2MiwgNTUsIAotICAgIDcsIDYsIDEsIDIxMywgMTA2LCAyLCAyNDEsIDM4LCA0OSwgNywgMywgMSwgMjEzLCAxMDYsIDIsIDI0MSwgMzgsIDQ5LCA3LCAKLSAgICA2LCAxLCAyMTMsIDEwNiwgMiwgMjE3LCA0MiwgNywgMywgMSwgMjEzLCAxMDYsIDIsIDIxNywgNDIsIDcsIDYsIDEsIDIzMSwgCi0gICAgMzYsIDIzMiwgMjE0LCA3LCAzLCAxLCAyMzEsIDM2LCAyMzIsIDIxNCwgNywgNiwgMSwgMjMxLCAzNiwgMjE1LCA3OSwgNywgCi0gICAgMywgMSwgMjMxLCAzNiwgMjE1LCA3OSwgNywgNiwgMSwgMjEzLCAxMDYsIDIsIDIzMiwgMTc3LCA3LCAzLCAxLCAyMTMsIAotICAgIDEwNiwgMiwgMjMyLCAxNzcsIDI1LCAzLCAxLCAyNTQsIDUzLCAyLCAyMjUsIDM5LCAyNSwgMywgMSwgMjU0LCA1MywgMiwgCi0gICAgMjQ4LCA5OSwgMjUsIDMsIDEsIDI1NCwgNTMsIDIsIDIyNSwgNDAsIDI0LCAyMTQsIDI0NSwgMjUsIDMsIDEsIDI1NCwgNTMsIAotICAgIDIsIDIwNywgMjQsIDIxNCwgMjQ1LCAyNSwgMywgMSwgMjU0LCA1MywgMiwgMjI1LCA0MCwgMjQsIDIyNiwgMjM0LCAyNSwgMywgCi0gICAgMSwgMjU0LCA1MywgMiwgMjA3LCAyNCwgMjI2LCAyMzQsIDI1LCAzLCAxLCAyNTQsIDUzLCAyLCAyMjUsIDQwLCAyNCwgMjI2LCAKLSAgICA1MCwgMjUsIDMsIDEsIDI1NCwgNTMsIDIsIDIwNywgMjQsIDIyNiwgNTAsIDI1LCA2LCAxLCAyNTQsIDUzLCAyLCAyMjUsIAotICAgIDM5LCAyNSwgNiwgMSwgMjU0LCA1MywgMiwgMjQ4LCA5OSwgMjUsIDYsIDEsIDI1NCwgNTMsIDIsIDIyNSwgNDAsIDI0LCAKLSAgICAyMTQsIDI0NSwgMjUsIDYsIDEsIDI1NCwgNTMsIDIsIDIwNywgMjQsIDIxNCwgMjQ1LCAyNSwgNiwgMSwgMjU0LCA1MywgMiwgCi0gICAgMjI1LCA0MCwgMjQsIDIyNiwgMjM0LCAyNSwgNiwgMSwgMjU0LCA1MywgMiwgMjA3LCAyNCwgMjI2LCAyMzQsIDI1LCA2LCAxLCAKLSAgICAyNTQsIDUzLCAyLCAyMjUsIDQwLCAyNCwgMjI2LCA1MCwgMjUsIDYsIDEsIDI1NCwgNTMsIDIsIDIwNywgMjQsIDIyNiwgNTAsIAotICAgIDI1LCAzLCAxLCAyNDUsIDY0LCAyLCAyMjUsIDM5LCAyNSwgMywgMSwgMjQ1LCA2NCwgMiwgMjQ4LCA5OSwgMjUsIDMsIDEsIAotICAgIDI0NSwgNjQsIDIsIDIyNSwgNDAsIDI0LCAyMTQsIDI0NSwgMjUsIDMsIDEsIDI0NSwgNjQsIDIsIDIwNywgMjQsIDIxNCwgCi0gICAgMjQ1LCAyNSwgMywgMSwgMjQ1LCA2NCwgMiwgMjI1LCA0MCwgMjQsIDIyNiwgMjM0LCAyNSwgMywgMSwgMjQ1LCA2NCwgMiwgCi0gICAgMjA3LCAyNCwgMjI2LCAyMzQsIDI1LCA2LCAxLCAyNDUsIDY0LCAyLCAyMjUsIDM5LCAyNSwgNiwgMSwgMjQ1LCA2NCwgMiwgCi0gICAgMjQ4LCA5OSwgMjUsIDYsIDEsIDI0NSwgNjQsIDIsIDIyNSwgNDAsIDI0LCAyMTQsIDI0NSwgMjUsIDYsIDEsIDI0NSwgNjQsIAotICAgIDIsIDIwNywgMjQsIDIxNCwgMjQ1LCAyNSwgNiwgMSwgMjQ1LCA2NCwgMiwgMjI1LCA0MCwgMjQsIDIyNiwgMjM0LCAyNSwgNiwgCi0gICAgMSwgMjQ1LCA2NCwgMiwgMjA3LCAyNCwgMjI2LCAyMzQsIDI1LCAzLCAxLCAyNDUsIDI5LCAyLCAyMjUsIDM5LCAyNSwgMywgCi0gICAgMSwgMjQ1LCAyOSwgMiwgMjQ4LCA5OSwgMjUsIDMsIDEsIDI0NSwgMjksIDIsIDIyNSwgNDAsIDI0LCAyMTQsIDI0NSwgMjUsIAotICAgIDMsIDEsIDI0NSwgMjksIDIsIDIwNywgMjQsIDIxNCwgMjQ1LCAyNSwgMywgMSwgMjQ1LCAyOSwgMiwgMjI1LCA0MCwgMjQsIAotICAgIDIyNiwgMjM0LCAyNSwgMywgMSwgMjQ1LCAyOSwgMiwgMjA3LCAyNCwgMjI2LCAyMzQsIDI1LCAzLCAxLCAyNDUsIDI5LCAyLCAKLSAgICAyMjUsIDQwLCAyNCwgMjI2LCA1MCwgMjUsIDMsIDEsIDI0NSwgMjksIDIsIDIwNywgMjQsIDIyNiwgNTAsIDI1LCA2LCAxLCAKLSAgICAyNDUsIDI5LCAyLCAyMjUsIDM5LCAyNSwgNiwgMSwgMjQ1LCAyOSwgMiwgMjQ4LCA5OSwgMjUsIDYsIDEsIDI0NSwgMjksIDIsIAotICAgIDIyNSwgNDAsIDI0LCAyMTQsIDI0NSwgMjUsIDYsIDEsIDI0NSwgMjksIDIsIDIwNywgMjQsIDIxNCwgMjQ1LCAyNSwgNiwgMSwgCi0gICAgMjQ1LCAyOSwgMiwgMjI1LCA0MCwgMjQsIDIyNiwgMjM0LCAyNSwgNiwgMSwgMjQ1LCAyOSwgMiwgMjA3LCAyNCwgMjI2LCAKLSAgICAyMzQsIDI1LCA2LCAxLCAyNDUsIDI5LCAyLCAyMjUsIDQwLCAyNCwgMjI2LCA1MCwgMjUsIDYsIDEsIDI0NSwgMjksIDIsIAotICAgIDIwNywgMjQsIDIyNiwgNTAsIDI1LCAzLCAxLCAyMzUsIDE4NCwgMiwgMjI1LCAzOSwgMjUsIDMsIDEsIDIzNSwgMTg0LCAyLCAKLSAgICAyNDgsIDk5LCAyNSwgMywgMSwgMjM1LCAxODQsIDIsIDIyNSwgNDAsIDI0LCAyMTQsIDI0NSwgMjUsIDMsIDEsIDIzNSwgCi0gICAgMTg0LCAyLCAyMDcsIDI0LCAyMTQsIDI0NSwgMjUsIDMsIDEsIDIzNSwgMTg0LCAyLCAyMjUsIDQwLCAyNCwgMjI2LCAyMzQsIAotICAgIDI1LCAzLCAxLCAyMzUsIDE4NCwgMiwgMjA3LCAyNCwgMjI2LCAyMzQsIDI1LCAzLCAxLCAyMzUsIDE4NCwgMiwgMjI1LCA0MCwgCi0gICAgMjQsIDIyNiwgNTAsIDI1LCAzLCAxLCAyMzUsIDE4NCwgMiwgMjA3LCAyNCwgMjI2LCA1MCwgMjUsIDYsIDEsIDIzNSwgMTg0LCAKLSAgICAyLCAyMjUsIDM5LCAyNSwgNiwgMSwgMjM1LCAxODQsIDIsIDI0OCwgOTksIDI1LCA2LCAxLCAyMzUsIDE4NCwgMiwgMjI1LCAKLSAgICA0MCwgMjQsIDIxNCwgMjQ1LCAyNSwgNiwgMSwgMjM1LCAxODQsIDIsIDIwNywgMjQsIDIxNCwgMjQ1LCAyNSwgNiwgMSwgCi0gICAgMjM1LCAxODQsIDIsIDIyNSwgNDAsIDI0LCAyMjYsIDIzNCwgMjUsIDYsIDEsIDIzNSwgMTg0LCAyLCAyMDcsIDI0LCAyMjYsIAotICAgIDIzNCwgMjUsIDYsIDEsIDIzNSwgMTg0LCAyLCAyMjUsIDQwLCAyNCwgMjI2LCA1MCwgMjUsIDYsIDEsIDIzNSwgMTg0LCAyLCAKLSAgICAyMDcsIDI0LCAyMjYsIDUwLCAyNSwgMywgMSwgMjI3LCA2NiwgMiwgMjI1LCAzOSwgMjUsIDMsIDEsIDIyNywgNjYsIDIsIAotICAgIDI0OCwgOTksIDI1LCAzLCAxLCAyMjcsIDY2LCAyLCAyMjUsIDQwLCAyNCwgMjE0LCAyNDUsIDI1LCAzLCAxLCAyMjcsIDY2LCAKLSAgICAyLCAyMDcsIDI0LCAyMTQsIDI0NSwgMjUsIDMsIDEsIDIyNywgNjYsIDIsIDIyNSwgNDAsIDI0LCAyMjYsIDIzNCwgMjUsIDMsIAotICAgIDEsIDIyNywgNjYsIDIsIDIwNywgMjQsIDIyNiwgMjM0LCAyNSwgNiwgMSwgMjI3LCA2NiwgMiwgMjI1LCAzOSwgMjUsIDYsIAotICAgIDEsIDIyNywgNjYsIDIsIDI0OCwgOTksIDI1LCA2LCAxLCAyMjcsIDY2LCAyLCAyMjUsIDQwLCAyNCwgMjE0LCAyNDUsIDI1LCAKLSAgICA2LCAxLCAyMjcsIDY2LCAyLCAyMDcsIDI0LCAyMTQsIDI0NSwgMjUsIDYsIDEsIDIyNywgNjYsIDIsIDIyNSwgNDAsIDI0LCAKLSAgICAyMjYsIDIzNCwgMjUsIDYsIDEsIDIyNywgNjYsIDIsIDIwNywgMjQsIDIyNiwgMjM0LCAyNSwgMywgMSwgMjE1LCAxMjksIDIsIAotICAgIDIyNSwgMzksIDI1LCAzLCAxLCAyMTUsIDEyOSwgMiwgMjQ4LCA5OSwgMjUsIDMsIDEsIDIxNSwgMTI5LCAyLCAyMjUsIDQwLCAKLSAgICAyNCwgMjE0LCAyNDUsIDI1LCAzLCAxLCAyMTUsIDEyOSwgMiwgMjA3LCAyNCwgMjE0LCAyNDUsIDI1LCAzLCAxLCAyMTUsIAotICAgIDEyOSwgMiwgMjI1LCA0MCwgMjQsIDIyNiwgMjM0LCAyNSwgMywgMSwgMjE1LCAxMjksIDIsIDIwNywgMjQsIDIyNiwgMjM0LCAKLSAgICAyNSwgMywgMSwgMjE1LCAxMjksIDIsIDIyNSwgNDAsIDI0LCAyMjYsIDUwLCAyNSwgMywgMSwgMjE1LCAxMjksIDIsIDIwNywgCi0gICAgMjQsIDIyNiwgNTAsIDI1LCA2LCAxLCAyMTUsIDEyOSwgMiwgMjQ4LCA5OSwgMjUsIDYsIDEsIDIxNSwgMTI5LCAyLCAyMDcsIAotICAgIDI0LCAyMTQsIDI0NSwgMjUsIDYsIDEsIDIxNSwgMTI5LCAyLCAyMDcsIDI0LCAyMjYsIDIzNCwgMjUsIDYsIDEsIDIxNSwgCi0gICAgMTI5LCAyLCAyMDcsIDI0LCAyMjYsIDUwLCAyNSwgMywgMSwgMjI3LCA2OCwgMiwgMjI1LCAzOSwgMjUsIDMsIDEsIDIyNywgCi0gICAgNjgsIDIsIDI0OCwgOTksIDI1LCAzLCAxLCAyMjcsIDY4LCAyLCAyMjUsIDQwLCAyNCwgMjE0LCAyNDUsIDI1LCAzLCAxLCAKLSAgICAyMjcsIDY4LCAyLCAyMDcsIDI0LCAyMTQsIDI0NSwgMjUsIDMsIDEsIDIyNywgNjgsIDIsIDIyNSwgNDAsIDI0LCAyMjYsIAotICAgIDIzNCwgMjUsIDMsIDEsIDIyNywgNjgsIDIsIDIwNywgMjQsIDIyNiwgMjM0LCAyNSwgMywgMSwgMjI3LCA2OCwgMiwgMjI1LCAKLSAgICA0MCwgMjQsIDIyNiwgNTAsIDI1LCAzLCAxLCAyMjcsIDY4LCAyLCAyMDcsIDI0LCAyMjYsIDUwLCAyNSwgNiwgMSwgMjI3LCAKLSAgICA2OCwgMiwgMjI1LCAzOSwgMjUsIDYsIDEsIDIyNywgNjgsIDIsIDI0OCwgOTksIDI1LCA2LCAxLCAyMjcsIDY4LCAyLCAyMjUsIAotICAgIDQwLCAyNCwgMjE0LCAyNDUsIDI1LCA2LCAxLCAyMjcsIDY4LCAyLCAyMDcsIDI0LCAyMTQsIDI0NSwgMjUsIDYsIDEsIDIyNywgCi0gICAgNjgsIDIsIDIyNSwgNDAsIDI0LCAyMjYsIDIzNCwgMjUsIDYsIDEsIDIyNywgNjgsIDIsIDIwNywgMjQsIDIyNiwgMjM0LCAKLSAgICAyNSwgNiwgMSwgMjI3LCA2OCwgMiwgMjI1LCA0MCwgMjQsIDIyNiwgNTAsIDI1LCA2LCAxLCAyMjcsIDY4LCAyLCAyMDcsIAotICAgIDI0LCAyMjYsIDUwLCAyNSwgMywgMSwgMjU0LCA1MywgMiwgMjE0LCAyNDUsIDI1LCAzLCAxLCAyNTQsIDUzLCAyLCAyMjYsIAotICAgIDIzNCwgMjUsIDMsIDEsIDI0NSwgNjQsIDIsIDIxNCwgMjQ1LCAyNSwgMywgMSwgMjQ1LCA2NCwgMiwgMjI2LCAyMzQsIDI1LCAKLSAgICAzLCAxLCAyNDUsIDI5LCAyLCAyMTQsIDI0NSwgMjUsIDMsIDEsIDI0NSwgMjksIDIsIDIyNiwgMjM0LCAyNSwgMywgMSwgCi0gICAgMjM1LCAxODQsIDIsIDIxNCwgMjQ1LCAyNSwgMywgMSwgMjM1LCAxODQsIDIsIDIyNiwgMjM0LCAyNSwgMywgMSwgMjI3LCAKLSAgICA2NiwgMiwgMjE0LCAyNDUsIDI1LCAzLCAxLCAyMjcsIDY2LCAyLCAyMjYsIDIzNCwgMjUsIDMsIDEsIDIxNSwgMTI5LCAyLCAKLSAgICAyMTQsIDI0NSwgMjUsIDMsIDEsIDIxNSwgMTI5LCAyLCAyMjYsIDIzNCwgMjUsIDMsIDEsIDIyNywgNjgsIDIsIDIxNCwgCi0gICAgMjQ1LCAyNSwgMywgMSwgMjI3LCA2OCwgMiwgMjI2LCAyMzQsIDI1LCAzLCAxLCAyNTQsIDUzLCAyLCAyMjUsIDQwLCAyNCwgCi0gICAgMjEyLCAyMTAsIDI1LCAzLCAxLCAyNTQsIDUzLCAyLCAyMDcsIDI0LCAyMTIsIDIxMCwgMjUsIDMsIDEsIDI1NCwgNTMsIDIsIAotICAgIDIyNSwgNDAsIDI0LCAyMTQsIDI0NiwgMjQsIDIxMiwgMjEwLCAyNSwgMywgMSwgMjU0LCA1MywgMiwgMjA3LCAyNCwgMjE0LCAKLSAgICAyNDYsIDI0LCAyMTIsIDIxMCwgMjUsIDMsIDEsIDI1NCwgNTMsIDIsIDIyNSwgNDAsIDI0LCAyMjYsIDIzNSwgMjQsIDIxMiwgCi0gICAgMjEwLCAyNSwgMywgMSwgMjU0LCA1MywgMiwgMjA3LCAyNCwgMjI2LCAyMzUsIDI0LCAyMTIsIDIxMCwgMjUsIDMsIDEsIAotICAgIDI1NCwgNTMsIDIsIDIyNSwgNDAsIDI0LCAyMjYsIDUxLCAyNCwgMjEyLCAyMTAsIDI1LCAzLCAxLCAyNTQsIDUzLCAyLCAKLSAgICAyMDcsIDI0LCAyMjYsIDUxLCAyNCwgMjEyLCAyMTAsIDI1LCA2LCAxLCAyNTQsIDUzLCAyLCAyMjUsIDQwLCAyNCwgMjI1LCAKLSAgICA1MSwgMjUsIDYsIDEsIDI1NCwgNTMsIDIsIDIwNywgMjQsIDIyNSwgNTEsIDI1LCA2LCAxLCAyNTQsIDUzLCAyLCAyMjUsIAotICAgIDQwLCAyNCwgMjE0LCAyNDYsIDI0LCAyMjUsIDUxLCAyNSwgNiwgMSwgMjU0LCA1MywgMiwgMjA3LCAyNCwgMjE0LCAyNDYsIAotICAgIDI0LCAyMjUsIDUxLCAyNSwgNiwgMSwgMjU0LCA1MywgMiwgMjI1LCA0MCwgMjQsIDIyNiwgMjM1LCAyNCwgMjI1LCA1MSwgCi0gICAgMjUsIDYsIDEsIDI1NCwgNTMsIDIsIDIwNywgMjQsIDIyNiwgMjM1LCAyNCwgMjI1LCA1MSwgMjUsIDYsIDEsIDI1NCwgNTMsIAotICAgIDIsIDIyNSwgNDAsIDI0LCAyMjYsIDUxLCAyNCwgMjI1LCA1MSwgMjUsIDYsIDEsIDI1NCwgNTMsIDIsIDIwNywgMjQsIDIyNiwgCi0gICAgNTEsIDI0LCAyMjUsIDUxLCAyNSwgMywgMSwgMjQ1LCAyOSwgMiwgMjI1LCA0MCwgMjQsIDIxMiwgMjEwLCAyNSwgMywgMSwgCi0gICAgMjQ1LCAyOSwgMiwgMjA3LCAyNCwgMjEyLCAyMTAsIDI1LCAzLCAxLCAyNDUsIDI5LCAyLCAyMjUsIDQwLCAyNCwgMjE0LCAKLSAgICAyNDYsIDI0LCAyMTIsIDIxMCwgMjUsIDMsIDEsIDI0NSwgMjksIDIsIDIwNywgMjQsIDIxNCwgMjQ2LCAyNCwgMjEyLCAyMTAsIAotICAgIDI1LCAzLCAxLCAyNDUsIDI5LCAyLCAyMjUsIDQwLCAyNCwgMjI2LCAyMzUsIDI0LCAyMTIsIDIxMCwgMjUsIDMsIDEsIDI0NSwgCi0gICAgMjksIDIsIDIwNywgMjQsIDIyNiwgMjM1LCAyNCwgMjEyLCAyMTAsIDI1LCAzLCAxLCAyNDUsIDI5LCAyLCAyMjUsIDQwLCAKLSAgICAyNCwgMjI2LCA1MSwgMjQsIDIxMiwgMjEwLCAyNSwgMywgMSwgMjQ1LCAyOSwgMiwgMjA3LCAyNCwgMjI2LCA1MSwgMjQsIAotICAgIDIxMiwgMjEwLCAyNSwgNiwgMSwgMjQ1LCAyOSwgMiwgMjI1LCA0MCwgMjQsIDIyNSwgNTEsIDI1LCA2LCAxLCAyNDUsIDI5LCAKLSAgICAyLCAyMDcsIDI0LCAyMjUsIDUxLCAyNSwgNiwgMSwgMjQ1LCAyOSwgMiwgMjI1LCA0MCwgMjQsIDIxNCwgMjQ2LCAyNCwgCi0gICAgMjI1LCA1MSwgMjUsIDYsIDEsIDI0NSwgMjksIDIsIDIwNywgMjQsIDIxNCwgMjQ2LCAyNCwgMjI1LCA1MSwgMjUsIDYsIDEsIAotICAgIDI0NSwgMjksIDIsIDIyNSwgNDAsIDI0LCAyMjYsIDIzNSwgMjQsIDIyNSwgNTEsIDI1LCA2LCAxLCAyNDUsIDI5LCAyLCAKLSAgICAyMDcsIDI0LCAyMjYsIDIzNSwgMjQsIDIyNSwgNTEsIDI1LCA2LCAxLCAyNDUsIDI5LCAyLCAyMjUsIDQwLCAyNCwgMjI2LCAKLSAgICA1MSwgMjQsIDIyNSwgNTEsIDI1LCA2LCAxLCAyNDUsIDI5LCAyLCAyMDcsIDI0LCAyMjYsIDUxLCAyNCwgMjI1LCA1MSwgMjUsIAotICAgIDMsIDEsIDIyNywgNjgsIDIsIDIyNSwgNDAsIDI0LCAyMTIsIDIxMCwgMjUsIDMsIDEsIDIyNywgNjgsIDIsIDIwNywgMjQsIAotICAgIDIxMiwgMjEwLCAyNSwgMywgMSwgMjI3LCA2OCwgMiwgMjI1LCA0MCwgMjQsIDIxNCwgMjQ2LCAyNCwgMjEyLCAyMTAsIDI1LCAKLSAgICAzLCAxLCAyMjcsIDY4LCAyLCAyMDcsIDI0LCAyMTQsIDI0NiwgMjQsIDIxMiwgMjEwLCAyNSwgMywgMSwgMjI3LCA2OCwgMiwgCi0gICAgMjI1LCA0MCwgMjQsIDIyNiwgMjM1LCAyNCwgMjEyLCAyMTAsIDI1LCAzLCAxLCAyMjcsIDY4LCAyLCAyMDcsIDI0LCAyMjYsIAotICAgIDIzNSwgMjQsIDIxMiwgMjEwLCAyNSwgMywgMSwgMjI3LCA2OCwgMiwgMjI1LCA0MCwgMjQsIDIyNiwgNTEsIDI0LCAyMTIsIAotICAgIDIxMCwgMjUsIDMsIDEsIDIyNywgNjgsIDIsIDIwNywgMjQsIDIyNiwgNTEsIDI0LCAyMTIsIDIxMCwgMjUsIDYsIDEsIDIyNywgCi0gICAgNjgsIDIsIDIyNSwgNDAsIDI0LCAyMjUsIDUxLCAyNSwgNiwgMSwgMjI3LCA2OCwgMiwgMjA3LCAyNCwgMjI1LCA1MSwgMjUsIAotICAgIDYsIDEsIDIyNywgNjgsIDIsIDIyNSwgNDAsIDI0LCAyMTQsIDI0NiwgMjQsIDIyNSwgNTEsIDI1LCA2LCAxLCAyMjcsIDY4LCAKLSAgICAyLCAyMDcsIDI0LCAyMTQsIDI0NiwgMjQsIDIyNSwgNTEsIDI1LCA2LCAxLCAyMjcsIDY4LCAyLCAyMjUsIDQwLCAyNCwgCi0gICAgMjI2LCAyMzUsIDI0LCAyMjUsIDUxLCAyNSwgNiwgMSwgMjI3LCA2OCwgMiwgMjA3LCAyNCwgMjI2LCAyMzUsIDI0LCAyMjUsIAotICAgIDUxLCAyNSwgNiwgMSwgMjI3LCA2OCwgMiwgMjI1LCA0MCwgMjQsIDIyNiwgNTEsIDI0LCAyMjUsIDUxLCAyNSwgNiwgMSwgCi0gICAgMjI3LCA2OCwgMiwgMjA3LCAyNCwgMjI2LCA1MSwgMjQsIDIyNSwgNTEsIDI1LCAzLCAxLCAyNTQsIDUzLCAyLCAyMTQsIAotICAgIDEwMSwgMjUsIDMsIDEsIDI1NCwgNTMsIDIsIDIzMiwgMzcsIDI1LCAzLCAxLCAyNTQsIDUzLCAyLCAyMTQsIDI0NiwgMjQsIAotICAgIDIxMiwgMjEwLCAyNSwgMywgMSwgMjU0LCA1MywgMiwgMjEyLCAyMTAsIDI1LCAzLCAxLCAyNTQsIDUzLCAyLCAyMjYsIDIzNSwgCi0gICAgMjQsIDIxMiwgMjEwLCAyNSwgMywgMSwgMjU0LCA1MywgMiwgMjI2LCA1MCwgMjUsIDMsIDEsIDI1NCwgNTMsIDIsIDIyNiwgCi0gICAgNTEsIDI0LCAyMTIsIDIxMCwgMjUsIDYsIDEsIDI1NCwgNTMsIDIsIDIxNCwgMTAxLCAyNSwgNiwgMSwgMjU0LCA1MywgMiwgCi0gICAgMjMyLCAzNywgMjUsIDYsIDEsIDI1NCwgNTMsIDIsIDIxNCwgMjQ1LCAyNSwgNiwgMSwgMjU0LCA1MywgMiwgMjI2LCAyMzQsIAotICAgIDI1LCA2LCAxLCAyNTQsIDUzLCAyLCAyMjUsIDUxLCAyNSwgMjM0LCAxMSwgMjUsIDIyNSwgNTEsIDI1LCAyMjUsIDM5LCAyNSwgCi0gICAgMjI2LCA1MCwgMjUsIDI0NywgMjA0LCAyNCwgMjI2LCA1MCwgMjUsIDMsIDEsIDI0NSwgMjksIDIsIDIxNCwgMjQ2LCAyNCwgCi0gICAgMjEyLCAyMTAsIDI1LCAzLCAxLCAyNDUsIDI5LCAyLCAyMTIsIDIxMCwgMjUsIDMsIDEsIDI0NSwgMjksIDIsIDIyNiwgMjM1LCAKLSAgICAyNCwgMjEyLCAyMTAsIDI1LCAzLCAxLCAyNDUsIDI5LCAyLCAyMjYsIDUwLCAyNSwgMywgMSwgMjQ1LCAyOSwgMiwgMjI2LCAKLSAgICA1MSwgMjQsIDIxMiwgMjEwLCAyNSwgNiwgMSwgMjQ1LCA2NCwgMiwgMjE0LCAyNDUsIDI1LCA2LCAxLCAyNDUsIDY0LCAyLCAKLSAgICAyMjYsIDIzNCwgMjUsIDYsIDEsIDI0NSwgMjksIDIsIDIxNCwgMjQ1LCAyNSwgNiwgMSwgMjQ1LCAyOSwgMiwgMjI2LCAyMzQsIAotICAgIDI1LCA2LCAxLCAyNDUsIDI5LCAyLCAyMjUsIDUxLCAyNSwgMjI1LCA0MCwgMjQsIDIxNCwgMjQ1LCAyNSwgMjI1LCA0MCwgCi0gICAgMjQsIDIyNiwgMjM0LCAyNSwgMjI1LCA0MCwgMjQsIDIyNiwgNTAsIDI1LCAzLCAxLCAyMzUsIDE4NCwgMiwgMjE0LCAxMDEsIAotICAgIDI1LCAzLCAxLCAyMzUsIDE4NCwgMiwgMjMyLCAzNywgMjUsIDMsIDEsIDIzNSwgMTg0LCAyLCAyNDcsIDIwNCwgMjQsIDIxNCwgCi0gICAgMjQ1LCAyNSwgMywgMSwgMjM1LCAxODQsIDIsIDI0NywgMjA0LCAyNCwgMjI2LCAyMzQsIDI1LCAzLCAxLCAyMzUsIDE4NCwgCi0gICAgMiwgMjI2LCA1MCwgMjUsIDMsIDEsIDIzNSwgMTg0LCAyLCAyNDcsIDIwNCwgMjQsIDIyNiwgNTAsIDI1LCA2LCAxLCAyMzUsIAotICAgIDE4NCwgMiwgMjE0LCAxMDEsIDI1LCA2LCAxLCAyMzUsIDE4NCwgMiwgMjMyLCAzNywgMjUsIDYsIDEsIDIzNSwgMTg0LCAyLCAKLSAgICAyMTQsIDI0NSwgMjUsIDYsIDEsIDIzNSwgMTg0LCAyLCAyMjYsIDIzNCwgMjUsIDIwNywgMjQsIDIxNCwgMjQ1LCAyNSwgCi0gICAgMjA3LCAyNCwgMjI2LCAyMzQsIDI1LCAyMDcsIDI0LCAyMjYsIDUwLCAyNSwgMywgMSwgMjE1LCAxMjksIDIsIDIxNCwgMTAxLCAKLSAgICAyNSwgMywgMSwgMjE1LCAxMjksIDIsIDIzMiwgMzcsIDI1LCAzLCAxLCAyMTUsIDEyOSwgMiwgMjQ3LCAyMDQsIDI0LCAyMTQsIAotICAgIDI0NSwgMjUsIDMsIDEsIDIxNSwgMTI5LCAyLCAyNDcsIDIwNCwgMjQsIDIyNiwgMjM0LCAyNSwgMywgMSwgMjIzLCAxOTEsIAotICAgIDIsIDIyNSwgMzksIDI1LCAzLCAxLCAyMjMsIDE5MSwgMiwgMjQ4LCA5OSwgMjUsIDMsIDEsIDIxNSwgMTI5LCAyLCAyMjYsIAotICAgIDUwLCAyNSwgMywgMSwgMjE1LCAxMjksIDIsIDI0NywgMjA0LCAyNCwgMjI2LCA1MCwgMjUsIDYsIDEsIDIxNSwgMTI5LCAyLCAKLSAgICAyMTQsIDEwMSwgMjUsIDYsIDEsIDIxNSwgMTI5LCAyLCAyMzIsIDM3LCAyNSwgNiwgMSwgMjE1LCAxMjksIDIsIDIxNCwgCi0gICAgMjQ1LCAyNSwgNiwgMSwgMjE1LCAxMjksIDIsIDIyNiwgMjM0LCAyNSwgNiwgMSwgMjIzLCAxOTEsIDIsIDI0OCwgOTksIDI1LCAKLSAgICAyNDcsIDIwNCwgMjQsIDIxNCwgMjQ1LCAyNSwgMjQ3LCAyMDQsIDI0LCAyMjYsIDIzNCwgMjUsIDIxNCwgMjQ1LCAyNSwgMywgCi0gICAgMSwgMjI3LCA2OCwgMiwgMjE0LCAyNDYsIDI0LCAyMTIsIDIxMCwgMjUsIDMsIDEsIDIyNywgNjgsIDIsIDIxMiwgMjEwLCAKLSAgICAyNSwgMywgMSwgMjI3LCA2OCwgMiwgMjI2LCAyMzUsIDI0LCAyMTIsIDIxMCwgMjUsIDMsIDEsIDIyNywgNjgsIDIsIDIyNiwgCi0gICAgNTAsIDI1LCAzLCAxLCAyMjcsIDY4LCAyLCAyMjYsIDUxLCAyNCwgMjEyLCAyMTAsIDI1LCA2LCAxLCAyMjcsIDY2LCAyLCAKLSAgICAyMTQsIDI0NSwgMjUsIDYsIDEsIDIyNywgNjYsIDIsIDIyNiwgMjM0LCAyNSwgNiwgMSwgMjI3LCA2OCwgMiwgMjE0LCAyNDUsIAotICAgIDI1LCA2LCAxLCAyMjcsIDY4LCAyLCAyMjYsIDIzNCwgMjUsIDYsIDEsIDIyNywgNjgsIDIsIDIyNSwgNTEsIDI1LCAyMjYsIAotICAgIDIzNCwgMjUsIDI0OCwgOTksIDI0NSwgMTA5LCAyMjQsIDE3MiwgMjQ1LCAxMTgsIDIyNCwgMTcyLCAyNDUsIDEwOSwgMjE5LCAKLSAgICAyMDYsIDI0NSwgMTE4LCAyMTksIDIwNiwgMjE3LCA5NSwgMjE5LCAyMDYsIDI0MywgMjM1LCAyMTksIDIwNiwgMjIwLCA1MSwgCi0gICAgMjE5LCAyMDYsIDI0NCwgODEsIDIxOSwgMjA2LCAyMjUsIDI3LCAyMTksIDIwNiwgMjE3LCAxMjMsIDIxOSwgMjA2LCAyNDIsIAotICAgIDE3LCAyMTksIDIwNiwgMjEyLCA4MCwgMjEzLCAyMzAsIDIxOSwgMjA2LCAyMTIsIDgwLCAyMTMsIDIzMCwgMjI4LCAxNzgsIAotICAgIDIxMiwgODAsIDIxMywgMjMwLCAyMzUsIDY2LCAyMzMsIDYyLCA3NywgMjIzLCAxNDAsIDc3LCAyNDAsIDE2MCwgMjI4LCAKLSAgICAxNzksIDI0MCwgMTYwLCAyNDQsIDgxLCAyNDgsIDEwMSwgMjQ1LCAxMDksIDI0OCwgMTAxLCAyNDUsIDExOCwgMjQ4LCAxMDEsIAotICAgIDE5OSwgMTM0LCA1MSwgNzEsIDIzMiwgMjQyLCA1MSwgMTE1LCAyMzIsIDI0MiwgNDIsIDIyMCwgODEsIDIyNCwgMTQzLCA3NywgCi0gICAgNDYsIDIyMCwgODEsIDIyNCwgMTQzLCA3NywgMjIwLCA4MSwgMjMyLCAxNjQsIDIyNCwgMTQzLCA3NywgMjIwLCA4MSwgMjQxLCAKLSAgICAxNDksIDIyNCwgMTQzLCA3NywgNDIsIDUxLCAyMjQsIDE0MywgNzcsIDQ2LCA1MSwgMjI0LCAxNDMsIDc3LCA1MSwgMjMyLCAKLSAgICAxNjQsIDIyNCwgMTQzLCA3NywgNTEsIDI0MSwgMTQ5LCAyMjQsIDE0MywgNzcsIDI0OCwgMTQ5LCA1MSwgMjQ4LCAxNDksIAotICAgIDI1MSwgNDIsIDIxNiwgMTgwLCAyNTEsIDQyLCAxMjIsIDYyLCAyMzMsIDgwLCAxMTcsIDYyLCAyMzMsIDgwLCAxOTksIDI0NSwgCi0gICAgMTIwLCAyNDAsIDE1OCwgMjI1LCAxNDQsIDIzMiwgMjQzLCAyMjEsIDU3LCAyMjYsIDE0MywgMjIxLCA1NywgMjMzLCA2MiwgCi0gICAgMjQ1LCAxMTYsIDIyMywgMTQwLCAyNDUsIDExNiwgMjI1LCAxMjYsIDI0NywgMTQ4LCAyNDMsIDI0NCwgMjMzLCA2MiwgMjI2LCAKLSAgICAyNDEsIDIyMywgMTQwLCAyMjYsIDI0MSwgMjMwLCAxNCwgMjI4LCAxODQsIDIxOSwgMjA2LCAyMjYsIDU4LCAyMzEsIDYsIAotICAgIDUyLCAyMjYsIDU4LCAyMTcsIDIwMSwgMjE3LCAxMDEsIDUyLCAyMjUsIDcxLCA1MSwgMjI1LCA3MSwgMjE2LCAxNjksIDIyNSwgCi0gICAgNzEsIDIyMywgMjAyLCAyMjUsIDcxLCAyMjMsIDIwMiwgNTEsIDIyNSwgNzEsIDIyMywgMjAyLCAyMTYsIDE2OSwgMjI1LCAKLSAgICA3MSwgMjUwLCAxNzAsIDIyMCwgODEsIDIzMywgNjYsIDI1NCwgMTksIDIyNCwgMTQzLCA3NywgMjIwLCA4MSwgMjIzLCAxNDQsIAotICAgIDI1NCwgMTksIDIyNCwgMTQzLCA3NywgMjI0LCAwLCA3NywgNTEsIDI0NCwgMjU0LCA3NywgMjM1LCAxOTgsIDIyNiwgMjQzLCAKLSAgICAyMTUsIDE1MCwgMTM3LCAyMTcsIDY1LCAyNTAsIDE3MSwgMjM1LCAyMTMsIDIyNSwgMTQ0LCAyNTMsIDEzMCwgMjQwLCAxNjEsIAotICAgIDI1MSwgNDIsIDI0MywgMjI4LCAyMjAsIDIzLCA0MiwgNDEsIDI1MSwgODUsIDIsIDIyNCwgMTUyLCA0NiwgNDEsIDI1MSwgCi0gICAgODUsIDIsIDIyNCwgMTUyLCA1MSwgMjI0LCAxNTgsIDc3LCAyMjQsIDE1OCwgMjQ0LCAyNTQsIDc3LCAyNDQsIDI1NCwgMjI0LCAKLSAgICAxNTgsIDc3LCAyMTcsIDIzLCA1LCAyNDUsIDMwLCAyMjMsIDIwMiwgMjI1LCAyMDAsIDUyLCA4MywgMTMyLCAyNTEsIDQyLCAKLSAgICA4MywgOTUsIDI1MSwgNDIsIDExNSwgMjUzLCAxMzIsIDIyMywgMjAyLCAyMjEsIDcwLCAyNDksIDE5NCwgMjE1LCAxMzQsIAotICAgIDExNywgMjUzLCAxMzEsIDI1NCwgNjcsIDIxNCwgMTY1LCAyNDksIDE1NiwgMjMwLCAyNTEsIDUyLCAyMTgsIDE3OSwgMjQ4LCAKLSAgICAxMDEsIDIzNSwgMTkxLCAyMTUsIDE1MCwgMjQ0LCAyMSwgMjI1LCAyNywgNzcsIDEzMywgNjIsIDIyNSwgMjYsIDIyNCwgCi0gICAgMTY5LCAyMjUsIDcxLCAyNDMsIDIzNywgNjIsIDIyNSwgMjYsIDI0NCwgNTAsIDYyLCAyMjUsIDI2LCAxMTcsIDYyLCAyMjUsIAotICAgIDI2LCAyNDMsIDIzNywgNjIsIDc3LCAyNDYsIDcyLCAyNDksIDcwLCAyMTYsIDE3OSwgNzEsIDI0MywgMjM3LCAyNDcsIDcyLCAKLSAgICAyMzEsIDE0NywgMTQsIDIxOSwgMjA2LCAyMTMsIDE5NiwgMjM1LCA2NiwgMjQzLCAxOTgsIDI1MywgMjIyLCAyMzUsIDE4OSwgCi0gICAgMjE3LCAzOCwgMjM1LCAxODksIDIyMSwgNTcsIDIzNSwgMTg5LCAyMjUsIDE1NiwgMjM1LCAyMjUsIDIxOCwgMTI3LCAyMTgsIAotICAgIDE5NiwgMjU0LCAxNjYsIDIxOCwgMTI3LCAyMTgsIDE5NiwgMjM1LCAyMjUsIDEyLCAyNDMsIDI0NSwgMjIxLCAzLCAyNTQsIAotICAgIDE2NiwgMTIsIDI0MywgMjQ1LCAyMjEsIDMsIDIzMCwgMTAsIDIxLCAyMjEsIDQsIDIyOCwgMTgwLCAyMSwgMjIxLCA0LCAKLSAgICAyMTgsIDIyMywgMjEyLCA3OSwgMjE4LCAyMjMsIDcsIDMsIDEsIDcyLCAyMTgsIDIyMywgMTYzLCAyMTgsIDIyMywgMTgwLCAKLSAgICAyMTgsIDIyMywgMTg5LCAyMTgsIDIyMywgMTk4LCAyMTgsIDIyMywgMTk1LCAyMTgsIDIyMywgMjAwLCAyMTgsIDIyMywgOTQsIAotICAgIDUyLCAyMTgsIDIyMywgMjMwLCAyNTAsIDIxOCwgMjIzLCAyNDUsIDYxLCA1MiwgMjE4LCAyMjMsIDQyLCAyMjYsIDEzMSwgCi0gICAgMjE4LCAyMjMsIDQ2LCAyMjYsIDEzMSwgMjE4LCAyMjMsIDcsIDMsIDEsIDIwNCwgMjE5LCAxMCwgMjEyLCA3OSwgMjE5LCAKLSAgICAxMCwgMTE2LCAyMTksIDEwLCAxMDksIDIxOSwgMTAsIDE2NiwgMjE5LCAxMCwgMTYzLCAyMTksIDEwLCAxODAsIDIxOSwgMTAsIAotICAgIDE4OSwgMjE5LCAxMCwgMTk4LCAyMTksIDEwLCAxOTUsIDIxOSwgMTAsIDIwMCwgMjE5LCAxMCwgOTQsIDUyLCAyMTksIDEwLCAKLSAgICAyMzAsIDI1MCwgMjE5LCAxMCwgMjQ1LCA2MSwgNTIsIDIxOSwgMTAsIDQyLCAyMjYsIDEzMSwgMjE5LCAxMCwgNDYsIDIyNiwgCi0gICAgMTMxLCA3LCAyMTksIDEwLCAzLCAxLCA2MSwgNywgMjE5LCAxMCwgMywgMSwgNzQsIDcsIDIxOSwgMTAsIDMsIDEsIDc1LCA3LCAKLSAgICAyMTksIDEwLCAzLCAxLCAyMTMsIDE2NiwgNywgMjE5LCAxMCwgMywgMSwgMjIyLCAxMTMsIDcsIDIxOSwgMTAsIDMsIDEsIAotICAgIDI0MiwgNDEsIDcsIDIxOSwgMTAsIDMsIDEsIDIzNSwgMjcsIDcsIDIxOSwgMTAsIDMsIDEsIDE1MCwgNywgMjE5LCAxMCwgMywgCi0gICAgMSwgMTgzLCA3LCAyMTksIDEwLCAzLCAxLCAyMDQsIDcsIDIxOSwgMTAsIDMsIDEsIDIyNiwgMjI5LCA3LCAyMTksIDEwLCAzLCAKLSAgICAxLCAxOTcsIDcsIDIxOSwgMTAsIDMsIDEsIDIxOCwgOTksIDI0NSwgMTMsIDUyLCAyNDksIDE2NSwgNTIsIDI0OSwgNTcsIAotICAgIDUyLCAyNDMsIDIyMSwgMjQzLCAyMjQsIDUyLCAyMzIsIDIyNywgNTIsIDIzMSwgNywgNTIsIDIzMCwgMjksIDUyLCAyMjYsIAotICAgIDM4LCA1MiwgMjIzLCAyOSwgNTIsIDIxMywgMjA0LCA1MiwgMTU2LCAyMjAsIDIyOSwgNTIsIDI0NywgODEsIDUyLCAyNDUsIAotICAgIDE0LCA1MiwgMjM0LCA4NSwgNTIsIDIxNiwgNzYsIDUyLCAyNDYsIDU1LCA1MiwgMjQzLCAxNiwgMjI2LCA2OCwgNTIsIDIyNiwgCi0gICAgMzYsIDUyLCAyNDIsIDg4LCA1MiwgMjUzLCA5OCwgNTIsIDI0MCwgMjE1LCA1MiwgMjUwLCAxMTksIDUyLCAyMzIsIDIyMCwgCi0gICAgMjE2LCAyMTYsIDUyLCAyMTksIDE4OCwgNTIsIDIxNywgMTk4LCA1MiwgMjM1LCAyMzgsIDIyMywgMjksIDUyLCAzNywgNDIsIAotICAgIDI0MSwgMjM4LCA0OSwgMzcsIDQ2LCAyNDEsIDIzOCwgNDksIDM3LCAxODQsIDcxLCAyMzIsIDI0MywgMjI2LCAyNDQsIDM3LCAKLSAgICAyMjAsIDE3NSwgNzEsIDIzMiwgMjQzLCAyMjYsIDI0NCwgMzcsIDI1MywgMjU1LCA3NiwgNDksIDM3LCAyNDksIDE5NSwgNzYsIAotICAgIDQ5LCAzNywgNDIsIDc2LCA0OSwgMzcsIDQ2LCA3NiwgNDksIDM3LCAyMjMsIDEzMSwgMjI2LCAyNDQsIDM3LCAyNDksIDE5NSwgCi0gICAgMjIzLCAxMzEsIDIyNiwgMjQ0LCAzNywgMjUzLCAyNTUsIDIyMywgMTMxLCAyMjYsIDI0NCwgMzcsIDEzMywgMTc2LCA0OSwgCi0gICAgMzcsIDI0MywgMjM3LCAxNzYsIDQ5LCAzNywgMjQ1LCAxMDQsIDI0OSwgMjI4LCAzNywgMjQ1LCAxMDQsIDIxOSwgMTY2LCAKLSAgICAzNywgMjQ1LCAxMDQsIDI0NywgMjAwLCAzNywgMjQ1LCAxMDQsIDI0OSwgMjI5LCAyNTIsIDk3LCAzNywgNDIsIDQ2LCA3NiwgCi0gICAgNDksIDM3LCAyNDUsIDEwNCwgMjIyLCAxMDcsIDM3LCAyNDUsIDEwNCwgMjM0LCAxNDEsIDM3LCAyNDUsIDEwNCwgMjE1LCAKLSAgICAxMjYsIDIyNSwgMTQxLCAyMTYsIDE4MywgMzcsIDIyMywgMjAzLCAyMTksIDIzMiwgMjI2LCAyNDQsIDM3LCA1MSwgNzEsIAotICAgIDIxOSwgNDUsIDIyNiwgMjQ0LCAzNywgMjU0LCA5LCA4NywgMzcsIDIxNiwgMTY5LCAyMTUsIDE1MiwgMzcsIDIxMywgMjMyLCAKLSAgICAyNTEsIDY4LCA0OSwgMzcsIDEzMiwgNzYsIDIyNiwgMjQ0LCAzNywgMTg0LCA1MSwgMjE5LCAyMzIsIDIyNiwgMjQ0LCAzNywgCi0gICAgOTUsIDI0MSwgMjM4LCAyLCAyMDYsIDI0NiwgNTcsIDM3LCAxMzIsIDI0MSwgMjM4LCAyLCAyMDYsIDI0NiwgNTcsIDM3LCAKLSAgICA0MiwgNzYsIDU1LCAzNywgNDYsIDc2LCA1NSwgMzcsIDI1MywgMTMzLCA0OSwgMjU0LCAxNzEsIDIyNywgOTcsIDI1NCwgCi0gICAgMTU2LCAyMTEsIDIxMSwgMjE3LCAxNDksIDIxOSwgMTksIDE4NywgNiwgMjUwLCAyNTIsIDI0OCwgMjIsIDI1MCwgMTEyLCAKLSAgICAyNTAsIDEwOSwgMjMyLCAyNDMsIDg3LCAyNTAsIDE3MiwgMjI3LCA5NywgMjUwLCAyMTIsIDIxNSwgMTU5LCAyNDUsIDE1LCAKLSAgICAyNDksIDEzMCwgMjIyLCAxMDQsIDI0OCwgMjIsIDI0NCwgMTQ3LCAxMTMsIDMsIDI0MywgMTc3LCAxMTMsIDYsIDI0MiwgNDEsIAotICAgIDI1MSwgMTQyLCA2LCAyNDIsIDQxLCAxODcsIDYsIDI0MiwgNDEsIDIyNSwgMTY5LCAyNDksIDEzMCwgMjI1LCAxNjksIDI0OSwgCi0gICAgMTMxLCAxMTAsIDExNywgMjI1LCAyNDAsIDExMywgNiwgNzIsIDI1MSwgMTQyLCA2LCA3MiwgMTEzLCA2LCAxNTAsIDExMywgCi0gICAgMywgMTUwLCAyMzMsIDE3MSwgNTQsIDI1MiwgNjAsIDg3LCAxODcsIDYsIDIwNCwgMjI4LCA1MiwgNTIsIDIxOSwgMjE4LCAKLSAgICAyMjQsIDEyLCAyNDksIDEwMSwgMTEzLCA2LCAyMjYsIDIyOSwgMTg3LCA2LCAyMjYsIDIyOSwgMTg3LCA2LCAyMjQsIDI0MCwgCi0gICAgMTEzLCA2LCAxNDksIDI1MSwgMTQyLCA2LCAxNDksIDE4NywgNiwgMTQ5LCAyMjUsIDc2LCAyMTgsIDIxLCAyMjMsIDIxNCwgCi0gICAgMjIxLCA1MywgNzcsIDIxNywgMjEwLCA1MiwgMjE2LCAyMTAsIDE1MiwgNTIsIDIxNCwgMjE3LCAxODcsIDYsIDIxMiwgMTUyLCAKLSAgICAyMjcsIDEsIDUyLCAyMjcsIDg3LCA1MiwgMjM1LCAxOTEsIDIyNywgODcsIDUyLCAyNTEsIDE0MiwgNiwgMjEyLCAxNTIsIAotICAgIDIxNiwgNTgsIDI1LCAzLCAxLCAyMzUsIDE4MywgMjM0LCAxNzksIDUyLCAyNTQsIDE2LCA1MiwgMTEzLCA2LCAyNTMsIDc0LCAKLSAgICAyNTEsIDE0MiwgNiwgMjUwLCAyNTIsIDI0NSwgMzMsIDg3LCAxMTMsIDMsIDc0LCAxMTMsIDYsIDc0LCAxMTMsIDYsIDI0NCwgCi0gICAgMjMwLCAyMTYsIDU4LCA2LCAyNDQsIDIzMCwgMTEzLCA2LCAxODMsIDExMywgMywgNzUsIDEwNiwgODcsIDI1MSwgMjA2LCAKLSAgICA4NywgMjQyLCAxNzgsIDg3LCAyNDgsIDEzNSwgODcsIDIzNSwgMjI5LCAyMTksIDIxNiwgMjIzLCA4OSwgNiwgMjI0LCAyNDAsIAotICAgIDI0NCwgMTUwLCA1MiwgMTg3LCAzLCAyMjUsIDI0MCwgMTg3LCAzLCAyNDMsIDgzLCAxODcsIDYsIDI0MywgODMsIDE4NywgNiwgCi0gICAgMjI1LCAyNDAsIDE4NywgMjMwLCA5NywgMjE4LCAyNDEsIDIxNiwgNTgsIDM1LCA2LCAyNDMsIDE3NywgMjE2LCA1OCwgMzUsIAotICAgIDYsIDE1MCwgMjIzLCAyMDIsIDM1LCA2LCAxNTAsIDIxNiwgNTgsIDM1LCA2LCAyMTMsIDEwNSwgMTg3LCAzMiwgNiwgMjQ5LCAKLSAgICAzLCAxODcsIDMyLCAzLCAyNDksIDMsIDE4NywgMzIsIDMsIDc0LCAxODcsIDMyLCAzLCA3MiwgMTg3LCAzMiwgMywgMjM1LCAKLSAgICAxNDIsIDIyNSwgNTQsIDIzMiwgMjQyLCAyMTYsIDU4LCAyNTQsIDM1LCAyMjYsIDU4LCA1MiwgMjU0LCA4OCwgMjE2LCA1OCwgCi0gICAgMywgMjQ0LCAyMzAsIDE2LCAzMSwgMjIyLCAxNjcsIDIxOSwgMjE2LCAyMTQsIDk3LCAyNDMsIDIyOCwgMTIyLCAyMjEsIDM5LCAKLSAgICAyMTQsIDk3LCAyNDMsIDIyOCwgMTIyLCAyMjksIDI1LCAyMTQsIDk3LCAyNDMsIDIyOCwgMTIyLCAyMTcsIDE5NCwgMjE0LCAKLSAgICA5NywgMjQzLCAyMjgsIDEyMiwgMjE3LCAxMjEsIDIxNCwgOTcsIDI0MywgMjI4LCAxMTcsIDIxNywgMTE5LCAyMTQsIDk3LCAKLSAgICAyNDMsIDIyOCwgMTIyLCAyNDQsIDg2LCAyMTQsIDk3LCAyNDMsIDIyOCwgMTE3LCAyNDQsIDg1LCAyMTQsIDk3LCAyNDMsIAotICAgIDIyOCwgMTMzLCAyNDQsIDg1LCAyMTQsIDk3LCAyNDMsIDIyOCwgMjQzLCAyMzcsIDI0NCwgODUsIDIxNCwgOTcsIDI0MywgCi0gICAgMjI4LCAxMjIsIDIyMCwgNDMsIDIxNCwgOTcsIDI0MywgMjI4LCAyNDQsIDUwLCAyMjAsIDQxLCAyMTQsIDk3LCAyNDMsIAotICAgIDIyOCwgMTIyLCAyNDUsIDE0NSwgMjE0LCA5NywgMjQzLCAyMjgsIDEzMywgMjQ1LCAxNDMsIDIxNCwgOTcsIDI0MywgMjI4LCAKLSAgICAyNDQsIDUwLCAyNDUsIDE0MywgMjE0LCA5NywgMjQzLCAyMjgsIDIyMSwgNDMsIDI0NSwgMTQzLCAyNDMsIDIyOCwgMjI4LCAKLSAgICA1MywgMTE2LCAyMjMsIDEwMCwgMjI4LCA1NCwgMTE2LCAyMjMsIDEwMCwgMjI4LCA1NCwgMTA5LCAyMjMsIDEwMCwgMjI4LCAKLSAgICA1NCwgMTY2LCAyMjMsIDEwMCwgMjI4LCA1NCwgMTYzLCAyMjMsIDEwMCwgMjI4LCA1NCwgMTgwLCAyMjMsIDEwMCwgMjI4LCAKLSAgICA1NCwgMTg5LCAyMjMsIDEwMCwgMjI4LCA1NCwgMTk4LCAyMjMsIDEwMCwgMjI4LCA1NCwgMTk1LCAyMjMsIDEwMCwgMjI4LCAKLSAgICA1NCwgMjAwLCAyMjMsIDEwMCwgMjI4LCA1NCwgMjE3LCAyMDAsIDIyMywgMTAwLCAyMjgsIDU0LCAyNDUsIDEyNCwgMjIzLCAKLSAgICAxMDAsIDIyOCwgNTQsIDIxNiwgNDEsIDIyMywgMTAwLCAyMjgsIDU0LCAyNDQsIDgzLCAyMjMsIDEwMCwgMjI4LCA1NCwgCi0gICAgMTIyLCAyNDAsIDIwMCwgMjIzLCAxMDAsIDIyOCwgNTQsIDI0NCwgNTAsIDI0MCwgMjAwLCAyMjMsIDEwMCwgMjI4LCA1NCwgCi0gICAgMTIyLCAyMTcsIDEwMCwgMywgMjIzLCAxMDAsIDIyOCwgNTQsIDExNiwgMywgMjIzLCAxMDAsIDIyOCwgNTQsIDEwOSwgMywgCi0gICAgMjIzLCAxMDAsIDIyOCwgNTQsIDE2NiwgMywgMjIzLCAxMDAsIDIyOCwgNTQsIDE2MywgMywgMjIzLCAxMDAsIDIyOCwgNTQsIAotICAgIDE4MCwgMywgMjIzLCAxMDAsIDIyOCwgNTQsIDE4OSwgMywgMjIzLCAxMDAsIDIyOCwgNTQsIDE5OCwgMywgMjIzLCAxMDAsIAotICAgIDIyOCwgNTQsIDE5NSwgMywgMjIzLCAxMDAsIDIyOCwgNTQsIDIwMCwgMywgMjIzLCAxMDAsIDIyOCwgNTQsIDIxNywgMjAwLCAKLSAgICAzLCAyMjMsIDEwMCwgMjI4LCA1NCwgMjQ1LCAxMjQsIDMsIDIyMywgMTAwLCAyMjgsIDU0LCAyMTYsIDQxLCAzLCAyMjMsIAotICAgIDEwMCwgMjI4LCA1NCwgMjQ0LCA4MywgMywgMjIzLCAxMDAsIDIyOCwgNTQsIDEyMiwgMjQwLCAyMDAsIDMsIDIyMywgMTAwLCAKLSAgICAyMjgsIDU0LCAyNDQsIDUwLCAyNDAsIDIwMCwgMywgMjIzLCAxMDAsIDIyOCwgNTQsIDEyMiwgMjE3LCAxMDAsIDIyMywgCi0gICAgMTAwLCAyMjgsIDU0LCAxMjIsIDIxNywgMTAxLCAyNTAsIDI1MywgMjQ5LCAzLCAyMjMsIDEwMCwgMjI4LCA1NCwgMjQ0LCAKLSAgICA1MCwgMjE3LCAxMDAsIDIyMywgMTAwLCAyMjgsIDU0LCAyMTcsIDIwMSwgMjE3LCAxMDAsIDIyMywgMTAwLCAyMjgsIDU0LCAKLSAgICAyMjMsIDIwMiwgMTIyLCAyNDAsIDIwMCwgNywgMywgMSwgMjIzLCAyMDIsIDI1MCwgMjUyLCAyMjMsIDEwMCwgMjI4LCA1NCwgCi0gICAgMjIwLCA1MywgMjMzLCAxMDEsIDE3LCAyMjMsIDEwMCwgMjI4LCA1NCwgMjQ0LCA4NCwgMjQ1LCAxODIsIDE3LCAyMjMsIAotICAgIDEwMCwgMjI4LCA1NCwgMjQ0LCA4NCwgMjE3LCAxMDAsIDIyMywgMTAwLCAyMjgsIDU0LCAxMjIsIDI0MCwgMjAxLCAyMTcsIAotICAgIDEwMCwgMjE0LCA5NywgMjQzLCAyMjgsIDIxMiwgODAsIDIxNywgMTE5LCAxMzIsIDY4LCAyMTUsIDEyNCwgNjgsIDk1LCA2OCwgCi0gICAgMjQ2LCA1OCwgNjgsIDQyLCA0NiwgNjgsIDExNCwgMTE5LCA2OCwgMjI4LCAxNjcsIDIxMywgMjUwLCA2OCwgMjI4LCAxNjcsIAotICAgIDI0NSwgMTc2LCA2OCwgMjE5LCAyMTUsIDI0NSwgMTc2LCA2OCwgMjE5LCAyMTUsIDIxMywgMjUwLCA2OCwgMTMyLCA3NiwgMiwgCi0gICAgOTAsIDk1LCA3NiwgMiwgOTAsIDEzMiwgMjE0LCAyMCwgNjgsIDk1LCAyMTQsIDIwLCA2OCwgMTMyLCAxMTcsIDI0MSwgMjE4LCAKLSAgICA2OCwgMjE1LCAxMjQsIDExNywgMjQxLCAyMTgsIDY4LCA5NSwgMTE3LCAyNDEsIDIxOCwgNjgsIDI0NiwgNTgsIDExNywgCi0gICAgMjQxLCAyMTgsIDY4LCAxMzIsIDc2LCAyLCAyMTgsIDI3LCA5NSwgNzYsIDIsIDIxOCwgMjcsIDEzMiwgNzYsIDI0MywgMjEzLCAKLSAgICAxMzQsIDIxNSwgMTI0LCA3NiwgMjQzLCAyMTMsIDEzNCwgOTUsIDc2LCAyNDMsIDIxMywgMTM0LCAyNDYsIDU4LCA3NiwgCi0gICAgMjQzLCAyMTMsIDEzNCwgMTE0LCAxMTksIDc2LCAyLCAyNTIsIDQ3LCAxMzIsIDc2LCAyLCAxMDEsIDk1LCA3NiwgMiwgMTAxLCAKLSAgICAxMzIsIDc2LCAyLCAyMzIsIDE3NywgOTUsIDc2LCAyLCAyMzIsIDE3NywgNDIsIDQ2LCAyMTQsIDIwLCA2OCwgNDIsIDQ2LCAKLSAgICA3NiwgMiwgOTAsIDI0NiwgNTgsIDIxMiwgMjgsIDY4LCAyMTUsIDEyNCwgNzYsIDIsIDIxNywgMzAsIDIzMywgNjEsIDIxNSwgCi0gICAgMTI0LCA3NiwgMiwgMjE3LCAzMCwgMjIzLCAxMzgsIDI0NiwgNTgsIDc2LCAyLCAyMTcsIDMwLCAyMzMsIDYxLCAyNDYsIDU4LCAKLSAgICA3NiwgMiwgMjE3LCAzMCwgMjIzLCAxMzgsIDk1LCA3NiwgMiwgMjQ5LCAxMDAsIDI0NiwgNTcsIDI0NiwgNTgsIDc2LCAyLCAKLSAgICAyNDksIDEwMCwgMjMzLCA2MSwgMjUzLCAyNTUsIDIxNiwgMjI3LCAyMjEsIDczLCA2OCwgMjQ5LCAxOTUsIDIxNiwgMjI3LCAKLSAgICAyMjEsIDczLCA2OCwgMjI4LCAxNjcsIDIxMywgMjUwLCA3NiwgMjExLCAyMTEsIDE4NCwgMTM0LCAxMzIsIDc2LCAyMTEsIAotICAgIDIxMSwgMjUyLCA2MCwgMTEwLCA5NSwgNzYsIDIxMSwgMjExLCAxMzQsIDI1MywgMjU1LCAyMjcsIDQwLCAyNDksIDIyOSwgCi0gICAgNjgsIDI0OSwgMTk1LCAyMjcsIDQwLCAyNDksIDIyOSwgNjgsIDEzMiwgMjQxLCAyMzgsIDIsIDIwNiwgMjE1LCAxMjMsIAotICAgIDEzMiwgMjQxLCAyMzgsIDIsIDIwNiwgMjQ2LCA1NywgMjE1LCAxMjQsIDI0MSwgMjM4LCAyLCAyMDYsIDIyMywgMTM4LCAKLSAgICAyMTUsIDEyNCwgMjQxLCAyMzgsIDIsIDIwNiwgMjMzLCA2MSwgOTUsIDI0MSwgMjM4LCAyLCAyMDYsIDIxNSwgMTIzLCA5NSwgCi0gICAgMjQxLCAyMzgsIDIsIDIwNiwgMjQ2LCA1NywgMjQ2LCA1OCwgMjQxLCAyMzgsIDIsIDIwNiwgMjIzLCAxMzgsIDI0NiwgNTgsIAotICAgIDI0MSwgMjM4LCAyLCAyMDYsIDIzMywgNjEsIDk1LCA3NiwgMTEwLCAxMzIsIDY4LCAyMTUsIDEyNCwgNzYsIDEzMiwgNjUsIAotICAgIDI0NiwgNTgsIDY4LCAxMzIsIDc2LCAxMTAsIDk1LCA2OCwgMTMyLCAyMjYsIDE5NywgMjUzLCAxNjIsIDIxNSwgMTI0LCAKLSAgICAyMjYsIDE5NywgMjUzLCAxNjIsIDk1LCAyMjYsIDE5NywgMjUzLCAxNjIsIDI0NiwgNTgsIDIyNiwgMTk3LCAyNTMsIDE2MiwgCi0gICAgMTMyLCAyNDEsIDIzOCwgMTEwLCA5NSwgMjQxLCAyMzcsIDk1LCAyNDEsIDIzOCwgMTEwLCAxMzIsIDI0MSwgMjM3LCAxMzIsIAotICAgIDUxLCA3NiwgMiwgOTAsIDQyLCA0NiwgNTEsIDc2LCAyLCA5MCwgOTUsIDUxLCA3NiwgMiwgOTAsIDEzMiwgNTEsIDY4LCAKLSAgICAyMTUsIDEyNCwgNTEsIDY4LCA5NSwgNTEsIDY4LCAyNDYsIDU4LCA1MSwgNjgsIDQyLCA0NiwgNTEsIDY4LCAxMTQsIDExOSwgCi0gICAgNTEsIDY4LCAyMjgsIDE2NywgMjEzLCAyNTAsIDUxLCA2OCwgMjI4LCAxNjcsIDI0NSwgMTc2LCA1MSwgNjgsIDIxOSwgMjE1LCAKLSAgICAyNDUsIDE3NiwgNTEsIDY4LCAyMTksIDIxNSwgMjEzLCAyNTAsIDUxLCA2OCwgMTMyLCAyMTYsIDE2OSwgNjgsIDk1LCAyMTYsIAotICAgIDE2OSwgNjgsIDEzMiwgMjE5LCAxNjIsIDY4LCA5NSwgMjE5LCAxNjIsIDY4LCAyMTUsIDEyNCwgNzYsIDIsIDUxLCA5MCwgCi0gICAgMjQ2LCA1OCwgNzYsIDIsIDUxLCA5MCwgMTMyLCAyNDgsIDEwMCwgNjgsIDIxNSwgMTI0LCAyNDgsIDEwMCwgNjgsIDk1LCAKLSAgICAyNDgsIDEwMCwgNjgsIDI0NiwgNTgsIDI0OCwgMTAwLCA2OCwgMTMyLCA3NiwgMjExLCAyMTEsIDEzNCwgOTUsIDc2LCAyMTEsIAotICAgIDIxMSwgMTM0LCAxMzIsIDY3LCA2OCwgMjE1LCAxMjQsIDY3LCA2OCwgOTUsIDY3LCA2OCwgMjQ2LCA1OCwgNjcsIDY4LCAKLSAgICAyMTUsIDEyNCwgNjcsIDc2LCAyNDMsIDIxMywgMTM0LCAyMTUsIDEyNCwgNjcsIDc2LCAyMjcsIDYzLCAyMjYsIDg5LCAyMTUsIAotICAgIDEyNCwgNjcsIDc2LCAyMjcsIDYzLCAyMjYsIDkwLCAyLCAxOTksIDEzNCwgMjE1LCAxMjQsIDY3LCA3NiwgMjI3LCA2MywgCi0gICAgMjI2LCA5MCwgMiwgNzEsIDEzNCwgMjE1LCAxMjQsIDY3LCA1MSwgNjgsIDIxNSwgMTI0LCA2NywgNTEsIDc2LCAyMjcsIDYzLCAKLSAgICAyMjYsIDg5LCA5NSwgNjcsIDc2LCAyNDMsIDIxMywgMjE0LCA0MCwgMjI4LCAxNjcsIDIxMywgMjUwLCA3NiwgMjExLCAyMTEsIAotICAgIDI0OSwgOTksIDIxOSwgMjE1LCAyNDUsIDE3NiwgNzYsIDIxMSwgMjExLCAyNDksIDk5LCAxMTQsIDExOSwgNjcsIDY4LCA0NiwgCi0gICAgNzYsIDIsIDMsIDI0OSwgMjI4LCAyNDYsIDU4LCA3NiwgMTMyLCA2NSwgMjE1LCAxMjQsIDY4LCAxMzMsIDk1LCAyNTMsIAotICAgIDE2MiwgMTMyLCA3NiwgMiwgNzEsIDkwLCA5NSwgNzYsIDIsIDcxLCA5MCwgNDIsIDQ2LCA3NiwgMiwgNzEsIDkwLCAxMzIsIAotICAgIDc2LCAyLCA1MSwgNzEsIDkwLCA5NSwgNzYsIDIsIDUxLCA3MSwgOTAsIDQyLCA0NiwgNzYsIDIsIDUxLCA3MSwgOTAsIDEzMiwgCi0gICAgMjI3LCAzOCwgNjgsIDk1LCAyMjcsIDM4LCA2OCwgNDIsIDQ2LCAyMjcsIDM4LCA2OCwgMzEsIDI1NCwgNjMsIDI0OSwgMTUzLCAKLSAgICAyMjYsIDEyNSwgMjQ3LCAxODUsIDIxNywgMTQwLCAyNDQsIDI1MCwgMjE3LCAxNDAsIDI0NywgOTIsIDIyOCwgMTYzLCAyNDQsIAotICAgIDI1MSwgMjQ1LCAxMTAsIDIyMSwgNDgsIDIzNSwgMjQxLCAyMzAsIDM5LCAyNDUsIDEyNywgMjI3LCA5NywgMjI4LCAxNjMsIAotICAgIDI1NCwgMzMsIDI0NSwgMTI3LCAyMjcsIDk3LCAzLCAyNDUsIDEyNywgMjI3LCA5NywgMjQ5LCAxMjUsIDI1MywgMTUzLCAKLSAgICAyMzEsIDEyNiwgMjQ3LCA5MiwgMjI4LCAxNjMsIDI0OSwgMTI3LCAyNTMsIDE1MywgMjMxLCAxMjYsIDMsIDI0OSwgMTI1LCAKLSAgICAyNTMsIDE1MywgMjMxLCAxMjYsIDI0NSwgMTAxLCA2NSwgMjI1LCA1NiwgMjMwLCA5NywgMjI1LCA2MywgMjMwLCA5NywgCi0gICAgMjQ5LCAxMDQsIDIzMCwgOTcsIDIxOCwgMjQxLCAyMzAsIDI1MSwgNTIsIDIzMCwgMjQ5LCA1MiwgNjIsIDIyNSwgMTU2LCAKLSAgICAyNDcsIDEyMSwgMjIwLCAyMywgMjIxLCA0OSwgMjMwLCAyNTAsIDI1MywgMTMzLCAyMjcsIDMzLCAyMjMsIDEzMSwgMjI3LCAKLSAgICAzMywgMjUxLCA0MywgMjI3LCAzMywgNDEsIDIyMywgOTUsIDI0OSwgNTAsIDIyMywgOTUsIDI0MywgMjMwLCAyMjMsIDk1LCAKLSAgICAyMjUsIDUyLCAxMDgsIDIzNSwgMjMxLCA0NiwgMjU0LCAxOCwgMjU0LCAxOCwgMjMxLCAxNTMsIDI1NCwgMTgsIDIxOSwgCi0gICAgMTg3LCAyNTQsIDE4LCAyNDcsIDEyMywgMjQ3LCA5MiwgMjI4LCAxNjMsIDI0NywgMTI2LCAyMjYsIDEzNiwgMTA4LCAyMjgsIAotICAgIDE2MywgMjI2LCAxMzYsIDEwOCwgMjMyLCAxOTksIDI1NCwgMjcsIDIzMiwgMTk5LCAyMjcsIDI0LCAyMzUsIDE5NSwgMjE1LCAKLSAgICAxNDYsIDIzNSwgMjA4LCA1MSwgMjM1LCAyMDgsIDIxNiwgMTY5LCAyMzUsIDIwOCwgMjQ5LCAxMjEsIDIzNSwgMjA4LCAyMTgsIAotICAgIDIxMywgMjM1LCAyMDgsIDIxNCwgMTEwLCAyMzUsIDIwOCwgMjQ5LCAxOTUsIDIzNSwgMjA4LCAyNDksIDE5NSwgMjQ5LCAKLSAgICAxMjEsIDIzNSwgMjA4LCAyNTMsIDI1NSwgMjQ5LCAxMjEsIDIzNSwgMjA4LCAyMTcsIDEzOSwgMjUxLCAyNDMsIDIyNCwgMjksIAotICAgIDIyNSwgNTMsIDYyLCAyMzAsIDI1MCwgMjQ1LCAwLCAyNDMsIDIyLCAyMjUsIDUzLCAyNDEsIDQzLCAyMTcsIDQzLCAyMjcsIAotICAgIDMzLCAyMjMsIDIwMiwgMjE3LCA0MiwgMjM1LCAxOTEsIDIzMywgODksIDE5NywgMjIwLCA4MywgMjE0LCAxOSwgMjEzLCAKLSAgICAxODgsIDIyNSwgNjMsIDIyOCwgMTYzLCAyMTcsIDQyLCAyMzAsIDI1MSwgMjE3LCA0MiwgMjUzLCAxMjYsIDEyMywgMTA4LCAKLSAgICAyMjgsIDE2MywgMjUzLCAxMjYsIDEyMywgMTA4LCAyNTMsIDIxOCwgMTIzLCAxMDgsIDI1MywgMjE4LCAyNTEsIDE3LCAyMjgsIAotICAgIDE2MywgMjU0LCAxNjUsIDEyMywgMTA4LCAyMjksIDE4MSwgMjUzLCAyMTgsIDIyOCwgMTcwLCAyNTQsIDE2NSwgMTIzLCAKLSAgICAxMDgsIDI1NCwgNTcsIDEyMywgMTA4LCAyMjgsIDE2MywgMjU0LCA1NywgMTIzLCAxMDgsIDI1NCwgNTcsIDEyMywgMTY3LCAKLSAgICAxMjMsIDEwOCwgMjE2LCAxNjksIDIxNywgNDIsIDI1NCwgNjQsIDEyMywgMTA4LCAyNDUsIDU3LCAxMDgsIDI0MywgMjEsIAotICAgIDI0NSwgNTcsIDEwOCwgMjQ3LCAxODYsIDI1MSwgMjAwLCAyNTMsIDIyMCwgMjE3LCAxNDksIDIzMiwgMjUwLCAyNDMsIDIxLCAKLSAgICAxMjMsIDEwOCwgMjUzLCAyMTgsIDEyMywgMjExLCAyMTEsIDE2NywgMjE3LCAxNDksIDIzNiwgMTAsIDIyNywgOTcsIDIzNiwgCi0gICAgMTAsIDY1LCAxNjcsIDI1MywgMjE4LCAxMjMsIDEwOCwgMjQ5LCAxNjUsIDI0NSwgNjAsIDI0NSwgNjEsIDI0OSwgMTY0LCAKLSAgICAyMjMsIDEzMSwgMjM1LCAyNTIsIDEyMywgMTA4LCAyMjMsIDEzMSwgMTIzLCAxMDgsIDI0OSwgOTMsIDEwOCwgMjQ1LCAzMiwgCi0gICAgMjQ1LCA1OSwgMTA4LCAyMTksIDk2LCAyNDUsIDYwLCAyNDgsIDYsIDEyMywgMTA4LCAxMjMsIDIxMSwgMjExLCAyNTEsIDcsIAotICAgIDI0OCwgMjMsIDIzMSwgMTUzLCAyNTEsIDYsIDIyNCwgMTU2LCAxMjMsIDEwOCwgMjI4LCAxNjMsIDEyMywgMTA4LCAyNDAsIAotICAgIDk3LCAxMDgsIDIyOCwgMTYzLCAyNDAsIDk3LCAxMDgsIDIxOSwgNDksIDI0NSwgNTcsIDEwOCwgMjMzLCAzOSwgMTY3LCAKLSAgICAxMjMsIDEwOCwgMjQyLCAxMDcsIDE2NywgMTIzLCAxMDgsIDIzMywgMzksIDExMCwgMTIzLCAxMDgsIDI0MiwgMTA3LCAxMTAsIAotICAgIDEyMywgMTA4LCAyMzMsIDM5LCAyNTEsIDE3LCAyMjgsIDE2MywgMTIzLCAxMDgsIDI0MiwgMTA3LCAyNTEsIDE3LCAyMjgsIAotICAgIDE2MywgMTIzLCAxMDgsIDIzMCwgMTY3LCAyMzMsIDM4LCAyMzAsIDE2NywgMjQyLCAxMDYsIDI1MSwgMjAwLCAyMjgsIDE2MywgCi0gICAgMjQ1LCA1NywgMTA4LCAyMjgsIDE2MywgMjMzLCAzOCwgMjI4LCAxNjMsIDI0MiwgMTA2LCAyMjksIDE4MSwgMjMzLCAzOSwgCi0gICAgMjI4LCAxNzAsIDEyMywgMTA4LCAyMjksIDE4MSwgMjQyLCAxMDcsIDIyOCwgMTcwLCAxMjMsIDEwOCwgMjMzLCAzOSwgMTY3LCAKLSAgICAyNDUsIDU3LCAxMDgsIDI0MiwgMTA3LCAxNjcsIDI0NSwgNTcsIDEwOCwgMjI5LCAxODEsIDIzMywgMzksIDIyOCwgMTcwLCAKLSAgICAyNDUsIDU3LCAxMDgsIDIyOSwgMTgxLCAyNDIsIDEwNywgMjI4LCAxNzAsIDI0NSwgNTcsIDEwOCwgMjMzLCAzOSwgMTY3LCAKLSAgICAyNDIsIDEwNiwgMjQyLCAxMDcsIDE2NywgMjMzLCAzOCwgMjI5LCAxODEsIDIzMywgMzksIDIyOCwgMTcwLCAyNDIsIDEwNiwgCi0gICAgMjI5LCAxODEsIDI0MiwgMTA3LCAyMjgsIDE3MCwgMjMzLCAzOCwgMjI1LCA4MiwgMjE5LCAwLCAyMjUsIDgzLCAxNjcsIAotICAgIDEyMywgMTA4LCAyMTksIDEsIDE2NywgMTIzLCAxMDgsIDIyNSwgODMsIDE2NywgMjQ1LCA1NywgMTA4LCAyMTksIDEsIDE2NywgCi0gICAgMjQ1LCA1NywgMTA4LCAyNDcsIDkyLCAyMjgsIDE2MywgMjI1LCA4NSwgMjQ3LCA5MiwgMjI4LCAxNjMsIDIxOSwgMiwgMjE5LCAKLSAgICA5LCAyMjcsIDk3LCAyMTgsIDIyMiwgMjI3LCA5NywgMjI4LCAxNjMsIDExOCwgMjE5LCA5LCAyMjcsIDk3LCAyMjgsIDE2MywgCi0gICAgMTE4LCAyMTgsIDIyMiwgMjI3LCA5NywgMjE5LCA5LCA2NSwgMTY3LCAxMjMsIDEwOCwgMjE4LCAyMjIsIDY1LCAxNjcsIAotICAgIDEyMywgMTA4LCAyMjksIDE4MSwgMTE4LCAyMTksIDksIDY1LCAyMjgsIDE3MCwgMTIzLCAxMDgsIDIyOSwgMTgxLCAxMTgsIAotICAgIDIxOCwgMjIyLCA2NSwgMjI4LCAxNzAsIDEyMywgMTA4LCAyMTksIDksIDY1LCAyLCAyMjgsIDE2MywgMTIzLCAxMDgsIDIxOCwgCi0gICAgMjIyLCA2NSwgMiwgMjI4LCAxNjMsIDEyMywgMTA4LCAyMzAsIDE1MSwgMjMwLCAxNTIsIDIzMCwgMTUzLCAyMzAsIDE1MiwgCi0gICAgMjE1LCAxNDYsIDQxLCAyMzYsIDEwLCAyMjcsIDk3LCA0MSwgMjI3LCAxNywgMjI3LCA5NywgNDEsIDIzNiwgMTAsIDY1LCAKLSAgICAxNjcsIDEyMywgMTA4LCA0MSwgMjI3LCAxNywgNjUsIDE2NywgMTIzLCAxMDgsIDQxLCAyNTAsIDE4MywgNDEsIDI0OSwgNDMsIAotICAgIDM2LCAyMjUsIDE1NiwgMzYsIDIzMCwgMjUwLCAzNiwgMjE3LCAzOCwgMzYsIDI0NywgMTIxLCAyMjAsIDIzLCAzNiwgNjIsIAotICAgIDIyNywgMzMsIDM2LCAyMjMsIDEzMSwgMjI3LCAzMywgMzYsIDI1MywgMTMzLCAyMjcsIDMzLCAzNiwgMjQ1LCA2MCwgMzYsIAotICAgIDI0OCwgMTAxLCA5MSwgMjI1LCAxNTYsIDkxLCAyMzAsIDI1MCwgOTEsIDIxNywgMzgsIDkxLCA2MiwgMjI3LCAzMywgNDYsIAotICAgIDIxOCwgMzYsIDQyLCAyMTgsIDM2LCAxMTksIDIxOCwgMzYsIDExNCwgMjE4LCAzNiwgMjUzLCAxMzYsIDIzMCwgMjI2LCAKLSAgICAyMTYsIDE0OSwgMjQzLCAyNTAsIDIxNiwgMTY5LCA3MSwgMjUyLCA2MCwgNDYsIDIxNiwgNTcsIDUxLCA3MSwgMjUyLCA2MCwgCi0gICAgNTEsIDQ2LCAyMTYsIDU3LCAyNDcsIDkyLCAyMjgsIDE2MywgMjI1LCA0OCwgMjI4LCAxNjMsIDIxNiwgMTQ5LCAyNDcsIDkyLCAKLSAgICAyMjgsIDE2MywgMjQzLCAyNTEsIDIyOSwgMTgzLCA1MSwgNzEsIDI1MiwgNjAsIDUxLCA0NiwgMjE2LCA1NywgMjI1LCA4MywgCi0gICAgMjE1LCAxNTQsIDIyMywgMjQxLCAyMTksIDEsIDIxNSwgMTU0LCAyMjMsIDI0MSwgMjI4LCAxNjgsIDIxOSwgMjIsIDIyNywgCi0gICAgOTcsIDI0OSwgMTI1LCAyNTMsIDE1MywgMjI4LCAxNjgsIDIxOSwgMjEsIDIyOCwgMTY4LCAyMTksIDIyLCA2NSwgMTY3LCAKLSAgICAxMjMsIDEwOCwgMjQ5LCAxMjUsIDI1MywgMTUzLCAyMjgsIDE2OCwgMjE5LCAyMiwgMTY3LCAxMjMsIDEwOCwgMjI3LCAxNywgCi0gICAgMjI3LCA5NywgMjM2LCAxMCwgMjI3LCA5NywgMjMwLCAxNTcsIDI0MSwgMTg1LCAyNDksIDEzNiwgMjMxLCAyMDAsIDIzNSwgCi0gICAgMjA1LCAyMTMsIDEzMywgMjMwLCAyMiwgMjI4LCAxNjksIDQ2LCAyNTQsIDE5LCAyLCAyNTMsIDE5NSwgNDYsIDIxNiwgMTgzLCAKLSAgICAyMzAsIDk3LCAyMzIsIDE5OSwgMjU0LCAyNywgMjMwLCA5NywgMjMyLCAxOTksIDIyNywgMjQsIDIzMCwgOTcsIDIzNSwgCi0gICAgMTk1LCAyMzAsIDk3LCAyMTUsIDE0NiwgMjQ3LCAyMDEsIDIyNywgMzMsIDYyLCAyMjcsIDMzLCAyMTksIDk2LCAyMjcsIDMzLCAKLSAgICAyNDcsIDEyMSwgMjE3LCAzOCwgMjUxLCA5MCwgNDIsIDIyOCwgMTY4LCAyNDQsIDE0OSwgMjIxLCA2OSwgMjI1LCA2MywgNDYsIAotICAgIDIyOCwgMTY4LCAyNDQsIDE0OSwgMjIxLCA2OSwgMjI1LCA2MywgNDIsIDIyMSwgNjksIDIyNSwgNjMsIDQ2LCAyMjEsIDY5LCAKLSAgICAyMjUsIDYzLCAyMjMsIDIwMiwgMjE3LCA0MywgMjQ1LCA2MCwgMjQ5LCA0MCwgMjMyLCAxOTksIDIyNywgMjQsIDI0OSwgNDAsIAotICAgIDIzMiwgMTk5LCAyNTQsIDI3LCA1MSwgMjE5LCA4LCA1MSwgMjE4LCAyMjEsIDUxLCAyMzUsIDE5NSwgNTEsIDIxNSwgMTQ2LCAKLSAgICAyMjUsIDE3OSwgMTIzLCAyNCwgMjI2LCAxMzYsIDEwOCwgMjMzLCAzOSwgMiwgMjQ3LCA3NCwgMjQyLCAxMDcsIDIsIDI0NywgCi0gICAgNzQsIDIxNCwgMTY0LCAyMzAsIDE2NywgMjMzLCAzOCwgMjE0LCAxNjQsIDIzMCwgMTY3LCAyNDIsIDEwNiwgMjMzLCAzOSwgCi0gICAgMTIzLCAyMTEsIDIxMSwgMTY3LCAyNDIsIDEwNiwgMjQyLCAxMDcsIDEyMywgMjExLCAyMTEsIDE2NywgMjMzLCAzOCwgMTIzLCAKLSAgICAyMTEsIDIxMSwgMTY3LCAyMzMsIDM4LCAxMjMsIDIxMSwgMjExLCAxNjcsIDI0MiwgMTA2LCAxMjMsIDIxMSwgMjExLCAxNjcsIAotICAgIDIyNSwgODIsIDEyMywgMjExLCAyMTEsIDE2NywgMjE5LCAwLCAyNDcsIDkyLCAyMjgsIDE2MywgMjI1LCA4NiwgMTY3LCAKLSAgICAyNDUsIDYyLCAyNDcsIDkyLCAyMjgsIDE2MywgMjE5LCAzLCAxNjcsIDI0NSwgNjIsIDIyOCwgMTYzLCA0MSwgMjM2LCAxMCwgCi0gICAgNjUsIDE2NywgMTIzLCAxMDgsIDIyOCwgMTYzLCA0MSwgMjI3LCAxNywgNjUsIDE2NywgMTIzLCAxMDgsIDQxLCAyMzYsIDEwLCAKLSAgICA2NSwgMTY3LCAyMjgsIDE2MywgMTIzLCAxMDgsIDQxLCAyMjcsIDE3LCA2NSwgMTY3LCAyMjgsIDE2MywgMTIzLCAxMDgsIAotICAgIDIzMywgMzksIDI1MSwgMTcsIDIyOCwgMTYzLCAyNDUsIDU3LCAxMDgsIDI0MiwgMTA3LCAyNTEsIDE3LCAyMjgsIDE2MywgCi0gICAgMjQ1LCA1NywgMTA4LCAyMjUsIDgzLCAyNTEsIDE3LCAyMjgsIDE2MywgMjQ1LCA1NywgMTA4LCAyMTksIDEsIDI1MSwgMTcsIAotICAgIDIyOCwgMTYzLCAyNDUsIDU3LCAxMDgsIDIyOCwgMTYzLCAyMjgsIDE2OCwgMjE5LCAyMiwgMjI3LCA5NywgMjQ3LCA5MiwgCi0gICAgMjI4LCAxNjMsIDI0OSwgMTI3LCAyNTMsIDE1MywgMjI4LCAxNjgsIDIxOSwgMjEsIDIyOCwgMTYzLCAyMjgsIDE2OCwgMjE5LCAKLSAgICAyMiwgNjUsIDE2NywgMTIzLCAxMDgsIDI0NywgOTIsIDIyOCwgMTYzLCAyNDksIDEyNywgMjUzLCAxNTMsIDIyOCwgMTY4LCAKLSAgICAyMTksIDIyLCAxNjcsIDI0NSwgNjIsIDcxLCAyNDUsIDEyMCwgMjMxLCAzNSwgMTk5LCAyNDUsIDEyMCwgMTE0LCA0NiwgCi0gICAgMjQ3LCAyMDcsIDI0NSwgMTIwLCAxMTksIDQ2LCAyNDcsIDIwNywgMjQ1LCAxMjAsIDI0NSwgMTI3LCA2NSwgMiwgMTg0LCAKLSAgICAxOTksIDkwLCAyNDUsIDEyNywgNjUsIDIsIDcxLCAyNTIsIDYwLCAyNTMsIDEyMywgMjQ1LCAxMDEsIDY1LCAxOTksIDkwLCAKLSAgICAzLCAyNDUsIDEyNywgNjUsIDIsIDcxLCAyNTIsIDYwLCAyNTMsIDEyMywgMjQ1LCAxMDEsIDY1LCAxOTksIDkwLCAyNDUsIAotICAgIDEyNywgNjUsIDIsIDYyLCA0OSwgMjQ1LCAxMjcsIDY1LCAyLCAyMjYsIDI0NywgMywgMjQ1LCAxMjcsIDY1LCAyLCAyMjYsIAotICAgIDI0NywgMjQ1LCAxMjcsIDY1LCAyLCAyMTUsIDE1MywgMjQ1LCAxMjcsIDY1LCAyLCAxMTcsIDE5OSwgMjE5LCAzMiwgMjQ5LCAKLSAgICAxMjUsIDIsIDE4NCwgMTk5LCA5MCwgMjQ5LCAxMjUsIDIsIDcxLCAyNTIsIDYwLCAyNTMsIDEyMywgMjQ1LCAxMDEsIDY1LCAKLSAgICAxOTksIDkwLCAzLCAyNDksIDEyNSwgMiwgNzEsIDI1MiwgNjAsIDI1MywgMTIzLCAyNDUsIDEwMSwgNjUsIDE5OSwgOTAsIAotICAgIDI0OSwgMTI1LCAyLCAyMjYsIDI0NywgMywgMjQ5LCAxMjUsIDIsIDIyNiwgMjQ3LCAyMTIsIDE1MywgMTc0LCAyNTIsIDkxLCAKLSAgICAyMzEsIDEyNSwgMjQ3LCAyMDIsIDUyLCAyNDUsIDEyOSwgNjgsIDI0MCwgMjIxLCAxMTQsIDI1MywgMTY0LCAxMTksIDI1MywgCi0gICAgMTY0LCAyMjUsIDU5LCAyMjYsIDQxLCAyMTQsIDE2LCAyMzIsIDI0MiwgNDIsIDI1MCwgMTE1LCA0NiwgMjUwLCAxMTUsIDQyLCAKLSAgICAyNDQsIDI2LCA0NiwgMjQ0LCAyNiwgMjUxLCAxMDEsIDQ2LCAyNDksIDcyLCAyNTEsIDEwMSwgNDIsIDI0OSwgNzIsIDIxNiwgCi0gICAgMjI3LCA0NiwgMjQ5LCA3MiwgMjE2LCAyMjcsIDQyLCAyNDksIDcyLCAyMjMsIDIwMiwgMjI4LCAxNjMsIDUyLCA0MSwgMjMyLCAKLSAgICAxNTksIDI1MywgMTk1LCAyMjIsIDgzLCAyMjIsIDkwLCAyMTcsIDIxMCwgMjI0LCAxMywgMjI1LCAxMjEsIDIzNSwgMjM1LCAKLSAgICAyMTQsIDE0NSwgMjE5LCAxNjYsIDIyNSwgMTczLCA2NSwgMjM1LCAyMDQsIDUyLCAyMTYsIDU4LCAyMjgsIDE2MywgNTIsIAotICAgIDIxNCwgMjYsIDI0MCwgMjIzLCAyMTYsIDIyNywgNDIsIDI0OSwgOTksIDIxNiwgMjI3LCA0NiwgMjQ5LCA5OSwgMjUxLCAKLSAgICAxMDEsIDQyLCAyNDksIDk5LCAyNTEsIDEwMSwgNDYsIDI0OSwgOTksIDIxNiwgMjI3LCAxNTEsIDIzNSwgMjA4LCAyNTEsIAotICAgIDEwMSwgMTUxLCAyMzUsIDIwOCwgMjQzLCAyMTAsIDIyMCwgMywgMTE0LCAyNTMsIDE2NSwgMjUxLCAyMDEsIDExNywgMTk5LCAKLSAgICAyNTIsIDQ5LCAyMjcsIDI2LCAyMzQsIDE0NCwgMjQ1LCA1MywgMjExLCAyMTEsIDIxNywgMTQ5LCAyMjMsIDE0OCwgMjEzLCAKLSAgICAxNjcsIDIzNSwgMjUyLCAxMTgsIDIyNCwgMTAsIDI1MSwgODksIDIzNCwgMTQzLCAyMzMsIDY2LCAyNTQsIDE5LCAxMjUsIAotICAgIDIyMywgMTQ0LCAyNTQsIDE5LCAxMjUsIDI0NSwgNTMsIDIxMSwgMjExLCAyMTcsIDE0OSwgMjMzLCA3MCwgMjUxLCAyMTIsIAotICAgIDIyMywgMTMwLCAyNDksIDEzLCAyNTQsIDY0LCAyNTMsIDE3MiwgMjE4LCAxMjYsIDIxNiwgMjE3LCAyMjMsIDM0LCAyNDcsIAotICAgIDE2NywgMjI3LCAxOCwgMjQ5LCAxMzgsIDIxOCwgMywgMjIwLCAxNCwgMjQ5LCA5MCwgMjQ5LCA4OSwgMTk0LCAxOTYsIDE2LCAKLSAgICAyNDAsIDE0MywgMTk0LCAxOTYsIDE2LCAyMTksIDE2MCwgMjI0LCAxNzIsIDE5NCwgMTk2LCAxNiwgMjI0LCAxNzMsIDI0NSwgCi0gICAgNjIsIDE5NCwgMTk2LCAxNiwgMjI0LCAxNzMsIDI0NywgMTI2LCAxOTQsIDE5NiwgMTYsIDIyNCwgMTczLCAyNDcsIDIwMCwgCi0gICAgMTk0LCAxOTYsIDE2LCAyMjQsIDE3MywgMjM1LCA1OSwgMTk0LCAxOTYsIDE2LCAyMjQsIDE3MywgMjQ5LCAyMjgsIDE5NCwgCi0gICAgMTk2LCAxNiwgMjQ5LCAyMjksIDIxOSwgNzUsIDE5NCwgMTk2LCAxNiwgMjQ5LCAyMjksIDIzNSwgNTksIDE5NCwgMTk2LCAKLSAgICAxNiwgMjIwLCAyNCwgMTM0LCAxOTQsIDE5NiwgMTYsIDI1MiwgOTgsIDEzNCwgMTk0LCAxOTYsIDE2LCAyMjQsIDE3MywgCi0gICAgMjIwLCAyMywgMTk0LCAxOTYsIDE2LCAyMjQsIDE3MywgMjUyLCA5NywgMTk0LCAxOTYsIDE2LCAyMjQsIDE3MywgMjMzLCAKLSAgICAzOCwgMTk0LCAxOTYsIDE2LCAyMjQsIDE3MywgMjQyLCAxMDYsIDE5NCwgMTk2LCAxNiwgMTMyLCAyMTQsIDI1MSwgMTk0LCAKLSAgICAxOTYsIDE2LCA5NSwgMjE0LCAyNTEsIDE5NCwgMTk2LCAxNiwgMjI0LCAxNzMsIDEzMiwgNjgsIDE5NCwgMTk2LCAxNiwgCi0gICAgMjI0LCAxNzMsIDk1LCA2OCwgMTk0LCAxOTYsIDE2LCAyNDksIDIyOSwgMjUyLCA5NywgMTk0LCAxOTYsIDE2LCAxMTksIAotICAgIDIxOCwgMzcsIDIxNSwgMTUzLCAxOTQsIDE5NiwgMTYsIDI0OCwgNiwgMjE5LCA3NSwgMTk0LCAxOTYsIDE2LCAyMjQsIDE3MywgCi0gICAgMTE5LCAyNTAsIDE3MCwgMTk0LCAxOTYsIDE2LCAyMjQsIDE3MywgMjQ4LCA1LCAxOTQsIDE5NiwgMTYsIDExOSwgMjE4LCAKLSAgICAzNywgMjM1LCA1OSwgMTk0LCAxOTYsIDE2LCAyMTUsIDEyNCwgMjE0LCAyNTEsIDE5NCwgMTk2LCAxNiwgMjI0LCAxNzMsIAotICAgIDIxNSwgMTI0LCA2OCwgMTk0LCAxOTYsIDE2LCAxMTQsIDIxOCwgMzcsIDIyNiwgMjQ3LCAxOTQsIDE5NiwgMTYsIDI0OCwgCi0gICAgMTcsIDIxOSwgNzUsIDE5NCwgMTk2LCAxNiwgMjI0LCAxNzMsIDExNCwgMjUwLCAxNzAsIDE5NCwgMTk2LCAxNiwgMjI0LCAKLSAgICAxNzMsIDI0OCwgMTYsIDE5NCwgMTk2LCAxNiwgMTE0LCAyMTgsIDM3LCAyMzUsIDU5LCAxOTQsIDE5NiwgMTYsIDI0NiwgNTgsIAotICAgIDIxNCwgMjUxLCAxOTQsIDE5NiwgMTYsIDIyNCwgMTczLCAyNDYsIDU4LCA2OCwgMTk0LCAxOTYsIDE2LCAyMjQsIDE0MiwgCi0gICAgMjE1LCAxNTMsIDE5NCwgMTk2LCAxNiwgMjQ4LCA2LCAyMTUsIDE1MywgMTk0LCAxOTYsIDE2LCAyNDcsIDIwMSwgMjE1LCAKLSAgICAxNTMsIDE5NCwgMTk2LCAxNiwgMjM1LCA2MCwgMjE1LCAxNTMsIDE5NCwgMTk2LCAxNiwgMjQ5LCAyMjksIDIxNSwgMTUzLCAKLSAgICAxOTQsIDE5NiwgMTYsIDExNCwgMjIwLCAxODUsIDIzNSwgNTksIDE5NCwgMTk2LCAxNiwgMjI0LCAxNDIsIDIyNCwgMTcyLCAKLSAgICAxOTQsIDE5NiwgMTYsIDI0OSwgMjI5LCAyMTksIDk1LCAxOTQsIDE5NiwgMTYsIDIyNCwgMTczLCAyNDksIDE2NCwgMTk0LCAKLSAgICAxOTYsIDE2LCAxMTQsIDIxOCwgMzcsIDI0NywgMjA5LCAxOTQsIDE5NiwgMTYsIDI0OCwgMTcsIDI0NywgMjA5LCAxOTQsIAotICAgIDE5NiwgMTYsIDIxOSwgOTYsIDI0NywgMjA5LCAxOTQsIDE5NiwgMTYsIDIzNSwgNjAsIDI0NywgMjA5LCAxOTQsIDE5NiwgCi0gICAgMTYsIDI0OSwgMjI5LCAyNDcsIDIwOSwgMTk0LCAxOTYsIDE2LCAxMTksIDIyMCwgMTg1LCAyMTksIDc1LCAxOTQsIDE5NiwgCi0gICAgMTYsIDQyLCAyMjAsIDE4NSwgMjE5LCA3NSwgMTk0LCAxOTYsIDE2LCAyMTcsIDQzLCAyNDcsIDIwOSwgMTk0LCAxOTYsIDE2LCAKLSAgICAyNDIsIDEwNywgMjQ3LCAyMDksIDE5NCwgMTk2LCAxNiwgMjQ5LCAxNTgsIDEzNCwgMTk0LCAxOTYsIDE2LCAyNDgsIDE3LCAKLSAgICAyMTcsIDQyLCAxOTQsIDE5NiwgMTYsIDIxMiwgMjcsIDE5NCwgMTk2LCAxNiwgMjE5LCA3NiwgMjE3LCA0MiwgMTk0LCAxOTYsIAotICAgIDE2LCAyMjEsIDcxLCAyMTUsIDE1MywgMTk0LCAxOTYsIDE2LCAyMjQsIDE3MywgMjI4LCAxNjMsIDI0NSwgNjIsIDE5NCwgCi0gICAgMTk2LCAxNiwgMjI0LCAxNzMsIDIyNCwgMTU3LCAxOTQsIDE5NiwgMTYsIDExOSwgMjUwLCAxNzEsIDIxNywgNDIsIDE5NCwgCi0gICAgMTk2LCAxNiwgMTE0LCAyNTAsIDE3MSwgMjE3LCA0MiwgMTk0LCAxOTYsIDE2LCAyMzUsIDE4MywgMTk0LCAxOTYsIDE2LCAKLSAgICAyMjMsIDE5MCwgMTk0LCAxOTYsIDE2LCAyMjcsIDY3LCAxOTQsIDE5NiwgMTYsIDI1NCwgNTMsIDIxNSwgMTUzLCAxOTQsIAotICAgIDE5NiwgMTYsIDI0NSwgNjQsIDIxNSwgMTUzLCAxOTQsIDE5NiwgMTYsIDIzNSwgMTg0LCAyMTUsIDE1MywgMTk0LCAxOTYsIAotICAgIDE2LCAyMjcsIDY4LCAyMTUsIDE1MywgMTk0LCAxOTYsIDE2LCAyNTQsIDUyLCAyMjgsIDE2MywgMjUwLCA2NiwgNzcsIDQ2LCAKLSAgICAyNTQsIDE5LCAyLCAyNDYsIDU4LCAyMTIsIDI4LCA2OCwgMjIwLCAxNTksIDIyNywgNDAsIDI1MSwgODksIDI1MSwgMjIyLCAKLSAgICA4NywgNzEsIDIzMiwgMjQzLCAyLCAyMzEsIDM3LCAyNDcsIDc0LCAyMzUsIDIxMywgODcsIDI0OSwgMTIyLCAyMTUsIDE1MSwgCi0gICAgODcsIDI0NywgMTQxLCAyMTUsIDE1MSwgODcsIDI0NSwgMTEyLCA4NywgMjQ5LCAxNDksIDg3LCA2NywgNDEsIDIsIDI1MCwgCi0gICAgMTA5LCA3MSwgMjMyLCAyNDIsIDI0NSwgODksIDg3LCAyNTQsIDQ4LCAyMzQsIDE0NSwgODcsIDI0MSwgMTk3LCA4NywgMzYsIAotICAgIDE5OSwgMjUyLCA2MCwgMiwgMjI4LCAxNjEsIDM2LCAyMTYsIDE4NCwgMjQ2LCA2MCwgMjUxLCA2MywgMjQ5LCAyMjksIDIsIAotICAgIDIyOCwgMTY1LCA2OCwgMjE1LCAxNDksIDg3LCAyMzAsIDIwNywgODcsIDI0MCwgMTU2LCA4NywgMjI3LCAzOSwgMjQyLCA0MCwgCi0gICAgODcsIDIyNywgMzksIDIzMywgMTY5LCA4NywgMjI2LCAxMTcsIDg3LCAyMjYsIDExNiwgODcsIDI0NywgMTQ5LCAyNDksIDM4LCAKLSAgICAxNiwgMjQzLCAyNDUsIDEwOSwgMjE5LCAyMzQsIDg3LCAxOTQsIDE5NiwgMTYsIDIyNCwgMTcyLCAyNDgsIDM0LCAyMjEsIAotICAgIDU4LCAyMzQsIDE0NSwgODcsIDIyNSwgNzMsIDIyNiwgMjAwLCAyMjksIDE2NCwgMjI2LCAyMDAsIDIyNSwgNjksIDIyMiwgCi0gICAgMTA4LCA4NywgMjQ5LCAyMTAsIDIyMiwgMTA4LCA4NywgNDIsIDIyNiwgMTMyLCAyMTUsIDEzMSwgMTAxLCA0MiwgMjI2LCAKLSAgICAxMzIsIDI0NCwgMjQ1LCA0MiwgMjI2LCAxMzIsIDIzMiwgMTYzLCAxMDEsIDQ2LCAyMjYsIDEzMiwgMjE1LCAxMzEsIDEwMSwgCi0gICAgNDYsIDIyNiwgMTMyLCAyNDQsIDI0NSwgNDYsIDIyNiwgMTMyLCAyMzIsIDE2MywgMTAxLCA0MiwgNDEsIDI1MSwgODUsIAotICAgIDIxNSwgMTMxLCAyNDksIDk5LCA0MiwgNDEsIDI1MSwgODUsIDI0NCwgMjQ1LCA0MiwgNDEsIDI1MSwgODUsIDIzMiwgMTYzLCAKLSAgICAyNDksIDk5LCA0NiwgNDEsIDI1MSwgODUsIDIxNSwgMTMxLCAyNDksIDk5LCA0NiwgNDEsIDI1MSwgODUsIDI0NCwgMjQ1LCAKLSAgICA0NiwgNDEsIDI1MSwgODUsIDIzMiwgMTYzLCAyNDksIDk5LCA0MiwgMjQ5LCA0MCwgMjUxLCA4NSwgMjE1LCAxMzEsIDEwMSwgCi0gICAgNDIsIDI0OSwgNDAsIDI1MSwgODUsIDIzMSwgMzcsIDIyNSwgMjMzLCA0MiwgMjQ5LCA0MCwgMjUxLCA4NSwgMjMyLCAxNjMsIAotICAgIDEwMSwgMjQ5LCA0MCwgMjUxLCA4NSwgMjQ0LCAyNDUsIDQ2LCAyNDksIDQwLCAyNTEsIDg1LCAyMTUsIDEzMSwgMTAxLCA0NiwgCi0gICAgMjQ5LCA0MCwgMjUxLCA4NSwgMjMxLCAzNywgMjI1LCAyMzMsIDQ2LCAyNDksIDQwLCAyNTEsIDg1LCAyMzIsIDE2MywgMTAxLCAKLSAgICAyMzUsIDIwOSwgMjQ0LCAyNDUsIDE5OSwgMjMyLCAyNDMsIDI0NCwgMjQ1LCAyMTUsIDEzMSwgNDIsIDE2NywgMjMyLCAxNjMsIAotICAgIDQ2LCAyNDksIDQwLCAyNTEsIDg1LCAyMjIsIDkxLCAyMTUsIDEzMSwgNDYsIDE2NywgMjMyLCAxNjMsIDQyLCAyNDksIDQwLCAKLSAgICAyNTEsIDg1LCAyMjIsIDkxLCAyMTgsIDI0MiwgMjE2LCAyMjYsIDIxOCwgMjQyLCAyNTEsIDEwMCwgMjE2LCAyMjcsIDQxLCAKLSAgICAxMjUsIDI1MSwgMTAxLCA0MSwgMTI1LCAyNTEsIDEwMSwgNDEsIDI1MSwgODUsIDExMCwgMjE2LCAyMjcsIDQxLCAxMjUsIAotICAgIDM0LCAxNiwgMjUxLCAxMDAsIDQyLCA3MSwgOTIsIDIzMiwgMjQyLCA0NiwgNzEsIDkyLCAyMzIsIDI0MiwgMTk5LCAyMjIsIAotICAgIDEyMywgMjMyLCAyNDEsIDE5OSwgMjIyLCAxMjMsIDIzMiwgMjQwLCAxOTksIDIyMiwgMTIzLCAyMzIsIDIzOSwgMTk5LCAKLSAgICAyMjIsIDEyMywgMjMyLCAyMzgsIDI0NywgMjUzLCAxNiwgMTc3LCA3MSwgMjQsIDIxNiwgMjI3LCAyMjMsIDE0OCwgMjQ3LCAKLSAgICAyNTMsIDE2LCAxNzcsIDcxLCAyNCwgMjUxLCAxMDEsIDIyMywgMTQ4LCAyNDcsIDI1MywgMTYsIDE3NywgNzEsIDIsIDI0OSwgCi0gICAgMjI4LCAyNDcsIDI1MywgMTYsIDE3NywgMTE5LCAyNCwgMTk5LCAyLCAyNDksIDIyOCwgMjQ3LCAyNTMsIDE2LCAxNzcsIAotICAgIDExNCwgMjQsIDE5OSwgMiwgMjQ5LCAyMjgsIDI0NywgMjUzLCAxNiwgMTc3LCA3MSwgMiwgMjE2LCAxODMsIDI0NywgMjUzLCAKLSAgICAxNiwgMTc3LCAxMTksIDI0LCAxOTksIDIsIDIxNiwgMTgzLCAyNDcsIDI1MywgMTYsIDE3NywgMTE0LCAyNCwgMTk5LCAyLCAKLSAgICAyMTYsIDE4MywgMjQ3LCAyNTMsIDE2LCAxNzcsIDcxLCAyNCwgMjE0LCAxOSwgMjQ3LCAyNTMsIDE2LCAxNzcsIDExOSwgMjQsIAotICAgIDE5OSwgMiwgMjE0LCAxOSwgMjQ3LCAyNTMsIDE2LCAxNzcsIDExNCwgMjQsIDE5OSwgMiwgMjE0LCAxOSwgMjQ3LCAyNTMsIAotICAgIDE2LCAxNzcsIDExOSwgMjQsIDI0MSwgMzEsIDI0NywgMjUzLCAxNiwgMTc3LCAxMTQsIDI0LCAyNDEsIDMxLCAyNDcsIDI1MywgCi0gICAgMTYsIDE3NywgNzEsIDI0LCAyMTYsIDIyNywgMjMzLCA3MCwgMjQ3LCAyNTMsIDE2LCAxNzcsIDcxLCAyNCwgMjUxLCAxMDEsIAotICAgIDIzMywgNzAsIDQxLCAyNDQsIDEsIDIyMywgMjA2LCA4NywgMjQ1LCAxMzksIDg3LCA3MSwgMjMyLCAyNDMsIDI0NCwgMjQ1LCAKLSAgICAyMzEsIDEwMCwgMjUxLCA3NCwgMjMxLCAxMDAsIDE4NCwgMTEwLCAyMjAsIDE3NCwgMjMxLCAxMDAsIDIyMCwgMTc1LCAxMTAsIAotICAgIDIzMiwgMTkwLCAyMzEsIDEwMCwgMTg0LCAxMTAsIDExNywgMjIwLCAxNjEsIDIzMSwgMTAwLCAxMTcsIDIyMCwgMTYyLCAKLSAgICAxMTAsIDIzMiwgMTkwLCAyMzEsIDEwMCwgMTE3LCAyMjAsIDE2MiwgMjM1LCA2NywgMjMxLCAxMDAsIDIxNiwgMTY2LCAyMzEsIAotICAgIDEwMCwgMjE3LCAxNzYsIDIzMSwgMTAwLCAyMjYsIDYzLCAyNDUsIDE4MCwgMjQyLCAxMDAsIDI0MywgMTkxLCAyMTYsIDIyNywgCi0gICAgMjI2LCAxMzEsIDI1MSwgMTAxLCAyMjYsIDEzMSwgMjE2LCAyMjcsIDI0OSwgNDAsIDEyNSwgMjUxLCAxMDEsIDI0OSwgNDAsIAotICAgIDEyNSwgMjE2LCAyMjcsIDIxNiwgMjE5LCAyMjAsIDIzMywgMTI1LCAyNTEsIDEwMSwgMjE2LCAyMTksIDIyMCwgMjMzLCAKLSAgICAxMjUsIDY3LCAyMTYsIDE5NywgMjUxLCAyMTIsIDIyMywgMTMxLCAyLCAyNDksIDIyOCwgMjE5LCA2MCwgMjQ0LCAzMywgCi0gICAgMjU0LCAxNzcsIDI0OSwgMzcsIDI0NSwgMTI4LCAyMzUsIDE5NSwgMjQ4LCAzNCwgMjQ0LCAyNDcsIDg3LCA4MywgMjIzLCAKLSAgICAxNDQsIDUxLCAyMTYsIDE4MywgODMsIDIzMywgNjYsIDUxLCAyMTYsIDE4MywgODMsIDIxNSwgMTMzLCA1MSwgMjE2LCAxODMsIAotICAgIDgzLCAyNDYsIDU5LCA1MSwgMjE2LCAxODMsIDgzLCAyMjMsIDE0NCwgNTEsIDIxNiwgMTg0LCAyLCA3MSwgMTM0LCA4MywgCi0gICAgMjMzLCA2NiwgNTEsIDIxNiwgMTg0LCAyLCA3MSwgMTM0LCA4MywgMjIzLCAxNDQsIDIxNiwgMTg0LCAyLCA1MSwgNzEsIAotICAgIDEzNCwgMjU0LCA4MSwgMjQ5LCAxOTYsIDIxOSwgNjYsIDIxNywgMzksIDI0OSwgMTk2LCAyNDAsIDIyNCwgMiwgMjQ0LCAxOSwgCi0gICAgMjIyLCAxNTcsIDE2LCAzMSwgMjI4LCA1OCwgMTYsIDMxLCAyMTksIDkxLCA2NSwgMjQxLCAyMTcsIDE2LCAzMSwgMjE5LCAKLSAgICA5MSwgNjUsIDIxNywgMTY1LCAxNiwgMzEsIDI0NSwgMTAxLCA2NSwgMjE3LCAxNjUsIDE2LCAzMSwgMjQ1LCAxMDEsIDY1LCAKLSAgICAyMTYsIDIwMCwgMTYsIDMxLCAyNDUsIDkxLCAxNiwgMzEsIDI1NCwgMTY4LCAxNiwgMzEsIDI1MSwgMjIxLCAxNiwgMzEsIAotICAgIDI1MiwgOTYsIDE2LCAzMSwgMTk5LCAyMTgsIDM4LCAxNiwgMzEsIDIzMiwgMjQzLCAyNDQsIDExNCwgMTYsIDMxLCA3MSwgCi0gICAgMjE4LCAzOCwgMTYsIDMxLCAyNDMsIDI0NSwgMjQ0LCAxMTQsIDE2LCAzMSwgMjUwLCAxNjIsIDIyMywgMjA1LCAxNiwgMzEsIAotICAgIDIyMCwgMjA4LCAyMjYsIDI1NCwgMTYsIDMxLCAyMjAsIDIwOCwgMjM1LCAyNTEsIDE2LCAzMSwgMjQ4LCA5NywgMjMyLCAKLSAgICAyMzMsIDI0NSwgNDIsIDE2LCAzMSwgMjQ3LCAyMzgsIDI0OSwgMTE3LCAxMTYsIDE2LCAzMSwgMjQ3LCAyMzgsIDI0OSwgCi0gICAgMTE3LCAxMDksIDE2LCAzMSwgMjQ3LCAyMzgsIDI0OSwgMTE3LCAxNjYsIDE2LCAzMSwgMjQ3LCAyMzgsIDI0OSwgMTE3LCAKLSAgICAxNjMsIDE2LCAzMSwgMTQ2LCAyNTQsIDE2OCwgMTYsIDMxLCAyMTgsIDEyMywgMjM2LCA1NywgMTYsIDMxLCAyNDUsIDEwMSwgCi0gICAgNjUsIDIxNiwgMjAxLCAyNTEsIDEzNiwgMTYsIDMxLCAyNTAsIDE5MywgMTYsIDMxLCAyNDUsIDEwMSwgNjUsIDIzMSwgMTQ2LCAKLSAgICAxNiwgMzEsIDIxOSwgNiwgMTYsIDMxLCAyNDUsIDQyLCAxNiwgMzEsIDI0NCwgNzYsIDIyMSwgNTcsIDE2LCAzMSwgMjQyLCAKLSAgICA5OSwgMjIxLCA1NywgMTYsIDMxLCAyMjQsIDE0LCAyMjEsIDU3LCAxNiwgMzEsIDIxNSwgMTQ1LCAyMjEsIDU3LCAxNiwgMzEsIAotICAgIDIxOSwgMjA2LCAxNiwgMzEsIDI0OCwgMTQsIDI1MSwgMTM5LCA4NywgMjI3LCA0MCwgMjUxLCA4OSwgMTYsIDMxLCAyMjksIAotICAgIDE2NywgMTYsIDMxLCAyNDgsIDE1LCAyNDMsIDI0NSwgMTA5LCAxNiwgMzEsIDIxOSwgNywgMjQzLCAyNDUsIDEwOSwgMjI3LCAKLSAgICAxMDUsIDEwMSwgMjI3LCAxMDUsIDI1MCwgODcsIDIyNywgMTA1LCAyNDMsIDI0OCwgMjI3LCAxMDUsIDIzNSwgMTkxLCAyNDMsIAotICAgIDI0OCwgMjI3LCAxMDUsIDI1MSwgMjE5LCAyNTEsIDUzLCAyMjcsIDEwNSwgMjUxLCA5NiwgMjE3LCA2NSwgMjI3LCAxMDUsIAotICAgIDI1MSwgODIsIDI1MiwgNjUsIDI0MCwgOTYsIDIyNywgMTA1LCAyNTQsIDM2LCA2NSwgMjUwLCA2NSwgMjI3LCAxMDUsIDI0OCwgCi0gICAgMTAxLCAyMjcsIDEwNSwgMjQ5LCAyOSwgMjU0LCAxNzEsIDIyOCwgNTYsIDIyNywgMTA1LCA1MSwgMjUyLCA5NywgMzYsIDIxLCAKLSAgICAxMTYsIDM2LCAyMSwgMTA5LCAzNiwgMjEsIDE2NiwgMzYsIDIxLCAxNjMsIDM2LCAyMSwgMTgwLCAzNiwgMjEsIDE4OSwgMzYsIAotICAgIDIxLCAxOTgsIDM2LCAyMSwgMTk1LCAzNiwgMjEsIDIwMCwgMzYsIDUwLCAyMTcsIDIwMCwgMzYsIDUwLCAyNDUsIDEyNCwgCi0gICAgMzYsIDUwLCAyMTYsIDQxLCAzNiwgNTAsIDIxNywgMTE3LCAzNiwgNTAsIDI0MywgMjMxLCAzNiwgNTAsIDI0NCwgODcsIDM2LCAKLSAgICA1MCwgMjIwLCA0NywgMzYsIDUwLCAyMjEsIDQwLCAzNiwgNTAsIDI0NSwgMTQ3LCAzNiwgNTAsIDIyOSwgMjgsIDM2LCA1MCwgCi0gICAgMjE2LCAzOCwgODYsIDIxLCAxMTYsIDg2LCAyMSwgMTA5LCA4NiwgMjEsIDE2NiwgODYsIDIxLCAxNjMsIDg2LCAyMSwgMTgwLCAKLSAgICA4NiwgMjEsIDE4OSwgODYsIDIxLCAxOTgsIDg2LCAyMSwgMTk1LCA4NiwgMjEsIDIwMCwgODYsIDUwLCAyMTcsIDIwMCwgODYsIAotICAgIDUwLCAyNDUsIDEyNCwgODYsIDUwLCAyMTYsIDQxLCA4NiwgNTAsIDIxNywgMTE3LCA4NiwgNTAsIDI0MywgMjMxLCA4NiwgCi0gICAgNTAsIDI0NCwgODcsIDg2LCA1MCwgMjIwLCA0NywgODYsIDUwLCAyMjEsIDQwLCA4NiwgNTAsIDI0NSwgMTQ3LCA4NiwgNTAsIAotICAgIDIyOSwgMjgsIDg2LCA1MCwgMjE2LCAzOCwgMjEsIDEyMiwgMjQzLCAyMDAsIDIxOSwgNjksIDIxLCAxMTcsIDI0MywgMjAwLCAKLSAgICAyMTksIDY5LCAyMSwgMTMzLCAyNDMsIDIwMCwgMjE5LCA2OSwgMjEsIDI0MywgMjM3LCAyNDMsIDIwMCwgMjE5LCA2OSwgMjEsIAotICAgIDI0NCwgNTAsIDI0MywgMjAwLCAyMTksIDY5LCAyMSwgMjIwLCA1MywgMjQzLCAyMDAsIDIxOSwgNjksIDIxLCAyMjEsIDQzLCAKLSAgICAyNDMsIDIwMCwgMjE5LCA2OSwgMjEsIDI0NSwgMTUwLCAyNDMsIDIwMCwgMjE5LCA2OSwgMjEsIDIyOSwgMzEsIDI0MywgCi0gICAgMjAwLCAyMTksIDY5LCA1MCwgMjE3LCAyMDEsIDI0MywgMjAwLCAyMTksIDY5LCA1MCwgMjQ1LCAxMjUsIDI0MywgMjAwLCAKLSAgICAyMTksIDY5LCA1MCwgMjE2LCA0MiwgMjQzLCAyMDAsIDIxOSwgNjksIDUwLCAyMTcsIDExOCwgMjQzLCAyMDAsIDIxOSwgNjksIAotICAgIDUwLCAyNDMsIDIzMiwgMjQzLCAyMDAsIDIxOSwgNjksIDUwLCAyNDQsIDg4LCAyNDMsIDIwMCwgMjE5LCA2OSwgNTAsIDIyMCwgCi0gICAgNDgsIDI0MywgMjAwLCAyMTksIDY5LCA1MCwgMjIxLCA0MSwgMjQzLCAyMDAsIDIxOSwgNjksIDUwLCAyNDUsIDE0OCwgMjQzLCAKLSAgICAyMDAsIDIxOSwgNjksIDUwLCAyMjksIDI5LCAyNDMsIDIwMCwgMjE5LCA2OSwgNTAsIDIxNiwgMzksIDI0MywgMjAwLCAyMTksIAotICAgIDY5LCA4NiwgNywgMywgMSwgNjEsIDg2LCA3LCAzLCAxLCAyNTMsIDc0LCA4NiwgNywgMywgMSwgMjUwLCAyNTIsIDg2LCA3LCAKLSAgICAzLCAxLCAyNDksIDMsIDg2LCA3LCAzLCAxLCA3NCwgODYsIDcsIDMsIDEsIDI0NCwgMjMwLCA4NiwgNywgMywgMSwgMjQzLCAKLSAgICAxNzcsIDg2LCA3LCAzLCAxLCAyNDIsIDQxLCA4NiwgNywgMywgMSwgNzIsIDg2LCA3LCAzLCAxLCAyMzUsIDE0MiwgODYsIDcsIAotICAgIDMsIDEsIDIzNSwgMjcsIDg2LCA3LCAzLCAxLCAxNTAsIDg2LCA3LCAzLCAxLCAxODMsIDg2LCA3LCAzLCAxLCAyMDQsIDg2LCAKLSAgICA3LCAzLCAxLCA3NSwgODYsIDcsIDMsIDEsIDIyNiwgMjI5LCA4NiwgNywgMywgMSwgMjI0LCAyNDAsIDg2LCA3LCAzLCAxLCAKLSAgICAxNDksIDg2LCA3LCAzLCAxLCAxOTcsIDg2LCA3LCAzLCAxLCAyMTgsIDk5LCA4NiwgNywgMywgMSwgNjksIDg2LCA3LCAzLCAKLSAgICAxLCAyMTUsIDc5LCA4NiwgNywgMywgMSwgMjE0LCA4MiwgODYsIDcsIDMsIDEsIDIxMywgMTY2LCA4NiwgNywgMywgMSwgCi0gICAgMjEzLCAxMDUsIDg2LCA3LCAzLCAxLCAyMTIsIDE1MiwgMzYsIDcsIDYsIDEsIDYxLCAzNiwgNywgNiwgMSwgMjUzLCA3NCwgCi0gICAgMzYsIDcsIDYsIDEsIDI1MCwgMjUyLCAzNiwgNywgNiwgMSwgMjQ5LCAzLCAzNiwgNywgNiwgMSwgNzQsIDM2LCA3LCA2LCAxLCAKLSAgICAyNDQsIDIzMCwgMzYsIDcsIDYsIDEsIDI0MywgMTc3LCAzNiwgNywgNiwgMSwgMjQyLCA0MSwgMzYsIDcsIDYsIDEsIDcyLCAKLSAgICAzNiwgNywgNiwgMSwgMjM1LCAxNDIsIDM2LCA3LCA2LCAxLCAyMzUsIDI3LCAzNiwgNywgNiwgMSwgMTUwLCAzNiwgNywgNiwgCi0gICAgMSwgMTgzLCAzNiwgNywgNiwgMSwgMjA0LCAzNiwgNywgNiwgMSwgNzUsIDM2LCA3LCA2LCAxLCAyMjYsIDIyOSwgMzYsIDcsIAotICAgIDYsIDEsIDIyNCwgMjQwLCAzNiwgNywgNiwgMSwgMTQ5LCAzNiwgNywgNiwgMSwgMTk3LCAzNiwgNywgNiwgMSwgMjE4LCA5OSwgCi0gICAgMzYsIDcsIDYsIDEsIDY5LCAzNiwgNywgNiwgMSwgMjE1LCA3OSwgMzYsIDcsIDYsIDEsIDIxNCwgODIsIDM2LCA3LCA2LCAxLCAKLSAgICAyMTMsIDE2NiwgMzYsIDcsIDYsIDEsIDIxMywgMTA1LCAzNiwgNywgNiwgMSwgMjEyLCAxNTIsIDM2LCA3LCAzLCAxLCA2MSwgCi0gICAgMzYsIDcsIDMsIDEsIDI1MywgNzQsIDM2LCA3LCAzLCAxLCAyNTAsIDI1MiwgMzYsIDcsIDMsIDEsIDI0OSwgMywgMzYsIDcsIAotICAgIDMsIDEsIDc0LCAzNiwgNywgMywgMSwgMjQ0LCAyMzAsIDM2LCA3LCAzLCAxLCAyNDMsIDE3NywgMzYsIDcsIDMsIDEsIDI0MiwgCi0gICAgNDEsIDM2LCA3LCAzLCAxLCA3MiwgMzYsIDcsIDMsIDEsIDIzNSwgMTQyLCAzNiwgNywgMywgMSwgMjM1LCAyNywgMzYsIDcsIAotICAgIDMsIDEsIDE1MCwgMzYsIDcsIDMsIDEsIDE4MywgMzYsIDcsIDMsIDEsIDIwNCwgMzYsIDcsIDMsIDEsIDc1LCAzNiwgNywgMywgCi0gICAgMSwgMjI2LCAyMjksIDM2LCA3LCAzLCAxLCAyMjQsIDI0MCwgMzYsIDcsIDMsIDEsIDE0OSwgMzYsIDcsIDMsIDEsIDE5NywgCi0gICAgMzYsIDcsIDMsIDEsIDIxOCwgOTksIDM2LCA3LCAzLCAxLCA2OSwgMzYsIDcsIDMsIDEsIDIxNSwgNzksIDM2LCA3LCAzLCAxLCAKLSAgICAyMTQsIDgyLCAzNiwgNywgMywgMSwgMjEzLCAxNjYsIDM2LCA3LCAzLCAxLCAyMTMsIDEwNSwgMzYsIDcsIDMsIDEsIDIxMiwgCi0gICAgMTUyLCAzNiwgMjEsIDIxMiwgNzksIDE0NiwgMzYsIDUwLCAyNDUsIDEyNCwgMTQ2LCAzNiwgNTAsIDIxNiwgNDEsIDE0NiwgCi0gICAgMzYsIDUwLCAyMTcsIDExNywgMTQ2LCAzNiwgNTAsIDI0MywgMjMxLCAxNDYsIDM2LCA1MCwgMjQ0LCA4NywgMTQ2LCAzNiwgCi0gICAgNTAsIDIyMCwgNDcsIDE0NiwgMzYsIDUwLCAyMjEsIDQwLCAxNDYsIDM2LCA1MCwgMjQ1LCAxNDcsIDE0NiwgMzYsIDUwLCAKLSAgICAyMjksIDI4LCAxNDYsIDM2LCA1MCwgMjE2LCAzOCwgNTEsIDM2LCAyMSwgMTE2LCA1MSwgMzYsIDIxLCAxMDksIDUxLCAzNiwgCi0gICAgMjEsIDE2NiwgNTEsIDM2LCAyMSwgMTYzLCA1MSwgMzYsIDIxLCAxODAsIDUxLCAzNiwgMjEsIDE4OSwgNTEsIDM2LCAyMSwgCi0gICAgMTk4LCA1MSwgMzYsIDIxLCAxOTUsIDUxLCAzNiwgMjEsIDIwMCwgNTEsIDM2LCA1MCwgMjE3LCAyMDAsIDE0NiwgMzYsIDIxLCAKLSAgICAyMTIsIDc5LCA5MiwgOTYsIDE3NywgMjQxLCAzMSwgOTIsIDk2LCAxMDcsIDI0MSwgMzEsIDkyLCA5NiwgMTc3LCAyMTQsIAotICAgIDIxNiwgOTIsIDk2LCAxMDcsIDIxNCwgMjE2LCA5MiwgOTYsIDE3NywgMjE2LCAxNjksIDI0OCwgMTAyLCAyNDEsIDMxLCA5MiwgCi0gICAgOTYsIDEwNywgMjE2LCAxNjksIDI0OCwgMTAyLCAyNDEsIDMxLCA5MiwgOTYsIDE3NywgMjE2LCAxNjksIDI0OCwgMTAyLCAKLSAgICAyMTQsIDIxNiwgOTIsIDk2LCAxMDcsIDIxNiwgMTY5LCAyNDgsIDEwMiwgMjE0LCAyMTYsIDkyLCA5NiwgMTc3LCAyMjQsIAotICAgIDE2OSwgMjQ4LCAxMDIsIDI0MSwgMzEsIDkyLCA5NiwgMTA3LCAyMjQsIDE2OSwgMjQ4LCAxMDIsIDI0MSwgMzEsIDkyLCA5NiwgCi0gICAgMTc3LCAyMjQsIDE2OSwgMjQ4LCAxMDIsIDIxNCwgMjE2LCA5MiwgOTYsIDEwNywgMjI0LCAxNjksIDI0OCwgMTAyLCAyMTQsIAotICAgIDIxNiwgOTIsIDk2LCAxNzcsIDExOSwgMjQsIDIyMywgMTQ4LCA5MiwgOTYsIDExOSwgMTc3LCAyNCwgNDYsIDI0MSwgMjA1LCAKLSAgICA5MiwgOTYsIDExOSwgMTA3LCAyNCwgNDYsIDIzMywgMiwgOTIsIDk2LCAxMDcsIDExOSwgMjQsIDIyMywgMTQ4LCA5MiwgOTYsIAotICAgIDE3NywgMTE5LCAyNCwgMjMzLCA3MCwgOTIsIDk2LCAxMTksIDE3NywgMjQsIDQyLCAyNDEsIDIwNSwgOTIsIDk2LCAxMTksIAotICAgIDEwNywgMjQsIDQyLCAyMzMsIDIsIDkyLCA5NiwgMTA3LCAxMTksIDI0LCAyMzMsIDcwLCA5MiwgOTYsIDE3NywgMTE0LCAyNCwgCi0gICAgMjIzLCAxNDgsIDkyLCA5NiwgMTE0LCAxNzcsIDI0LCA0NiwgMjQxLCAyMDUsIDkyLCA5NiwgMTE0LCAxMDcsIDI0LCA0NiwgCi0gICAgMjMzLCAyLCA5MiwgOTYsIDEwNywgMTE0LCAyNCwgMjIzLCAxNDgsIDkyLCA5NiwgMTc3LCAxMTQsIDI0LCAyMzMsIDcwLCAKLSAgICA5MiwgOTYsIDExNCwgMTc3LCAyNCwgNDIsIDI0MSwgMjA1LCA5MiwgOTYsIDExNCwgMTA3LCAyNCwgNDIsIDIzMywgMiwgOTIsIAotICAgIDk2LCAxMDcsIDExNCwgMjQsIDIzMywgNzAsIDkyLCA5NiwgMTc3LCA3MSwgMjQsIDIyMywgMTQ4LCA5MiwgOTYsIDcxLCAKLSAgICAxNzcsIDI0LCA0NiwgMjQxLCAyMDUsIDkyLCA5NiwgMTE0LCAxMDcsIDI0LCA0NiwgMTE5LCAyMzMsIDIsIDkyLCA5NiwgCi0gICAgMTE5LCAxMDcsIDI0LCA0NiwgMTE0LCAyMzMsIDIsIDkyLCA5NiwgNzEsIDEwNywgMjQsIDQ2LCAyMzMsIDIsIDkyLCA5NiwgCi0gICAgMTE5LCAxNzcsIDI0LCA0NiwgMTE0LCAyNDEsIDIwNSwgOTIsIDk2LCAxMTQsIDE3NywgMjQsIDQ2LCAxMTksIDI0MSwgMjA1LCAKLSAgICA5MiwgOTYsIDEwNywgNzEsIDI0LCAyMjMsIDE0OCwgOTIsIDk2LCAxNzcsIDcxLCAyNCwgMjMzLCA3MCwgOTIsIDk2LCA3MSwgCi0gICAgMTc3LCAyNCwgNDIsIDI0MSwgMjA1LCA5MiwgOTYsIDExNCwgMTA3LCAyNCwgNDIsIDExOSwgMjMzLCAyLCA5MiwgOTYsIAotICAgIDExOSwgMTA3LCAyNCwgNDIsIDExNCwgMjMzLCAyLCA5MiwgOTYsIDcxLCAxMDcsIDI0LCA0MiwgMjMzLCAyLCA5MiwgOTYsIAotICAgIDExOSwgMTc3LCAyNCwgNDIsIDExNCwgMjQxLCAyMDUsIDkyLCA5NiwgMTE0LCAxNzcsIDI0LCA0MiwgMTE5LCAyNDEsIDIwNSwgCi0gICAgOTIsIDk2LCAxMDcsIDcxLCAyNCwgMjMzLCA3MCwgOTIsIDk2LCAxNzcsIDExOSwgMjQsIDI0MSwgMzEsIDkyLCA5NiwgNDIsIAotICAgIDEwNywgMjQsIDQ2LCAxMTksIDIzMywgMiwgOTIsIDk2LCA0NiwgMTA3LCAyNCwgNDIsIDExOSwgMjMzLCAyLCA5MiwgOTYsIAotICAgIDExOSwgMTc3LCAyNCwgMTk5LCAyNDEsIDIwNSwgOTIsIDk2LCAxMTksIDEwNywgMjQsIDE5OSwgMjMzLCAyLCA5MiwgOTYsIAotICAgIDQ2LCAxNzcsIDI0LCA0MiwgMTE5LCAyNDEsIDIwNSwgOTIsIDk2LCA0MiwgMTc3LCAyNCwgNDYsIDExOSwgMjQxLCAyMDUsIAotICAgIDkyLCA5NiwgMTA3LCAxMTksIDI0LCAyNDEsIDMxLCA5MiwgOTYsIDE3NywgMTE0LCAyNCwgMjQxLCAzMSwgOTIsIDk2LCA0MiwgCi0gICAgMTA3LCAyNCwgNDYsIDExNCwgMjMzLCAyLCA5MiwgOTYsIDQ2LCAxMDcsIDI0LCA0MiwgMTE0LCAyMzMsIDIsIDkyLCA5NiwgCi0gICAgMTE0LCAxNzcsIDI0LCAxOTksIDI0MSwgMjA1LCA5MiwgOTYsIDExNCwgMTA3LCAyNCwgMTk5LCAyMzMsIDIsIDkyLCA5NiwgCi0gICAgNDYsIDE3NywgMjQsIDQyLCAxMTQsIDI0MSwgMjA1LCA5MiwgOTYsIDQyLCAxNzcsIDI0LCA0NiwgMTE0LCAyNDEsIDIwNSwgCi0gICAgOTIsIDk2LCAxMDcsIDExNCwgMjQsIDI0MSwgMzEsIDkyLCA5NiwgMTc3LCA3MSwgMjQsIDI0MSwgMzEsIDkyLCA5NiwgNDIsIAotICAgIDEwNywgMjQsIDQ2LCA3MSwgMjMzLCAyLCA5MiwgOTYsIDQ2LCAxMDcsIDI0LCA0MiwgNzEsIDIzMywgMiwgOTIsIDk2LCA3MSwgCi0gICAgMTc3LCAyNCwgMTk5LCAyNDEsIDIwNSwgOTIsIDk2LCAxMTQsIDEwNywgMjQsIDExOSwgMTk5LCAyMzMsIDIsIDkyLCA5NiwgCi0gICAgMTE5LCAxMDcsIDI0LCAxMTQsIDE5OSwgMjMzLCAyLCA5MiwgOTYsIDcxLCAxMDcsIDI0LCAxOTksIDIzMywgMiwgOTIsIDk2LCAKLSAgICA0MiwgMTE0LCAxMDcsIDI0LCA0NiwgMTE5LCAyMzMsIDIsIDkyLCA5NiwgNDYsIDExNCwgMTA3LCAyNCwgNDIsIDExOSwgCi0gICAgMjMzLCAyLCA5MiwgOTYsIDQyLCAxMTksIDEwNywgMjQsIDQ2LCAxMTQsIDIzMywgMiwgOTIsIDk2LCA0NiwgMTE5LCAxMDcsIAotICAgIDI0LCA0MiwgMTE0LCAyMzMsIDIsIDkyLCA5NiwgMTE5LCAxNzcsIDI0LCAxMTQsIDE5OSwgMjQxLCAyMDUsIDkyLCA5NiwgCi0gICAgMTE0LCAxNzcsIDI0LCAxMTksIDE5OSwgMjQxLCAyMDUsIDkyLCA5NiwgNDYsIDE3NywgMjQsIDQyLCA3MSwgMjQxLCAyMDUsIAotICAgIDkyLCA5NiwgNDIsIDE3NywgMjQsIDQ2LCA3MSwgMjQxLCAyMDUsIDkyLCA5NiwgMTA3LCA3MSwgMjQsIDI0MSwgMzEsIDkyLCAKLSAgICA5NiwgMTc3LCA1MSwgMjQ4LCAxMDIsIDI0MSwgMzEsIDkyLCA5NiwgMTA3LCA1MSwgMjQ4LCAxMDIsIDI0MSwgMzEsIDkyLCAKLSAgICA5NiwgMTc3LCA1MSwgMjQ4LCAxMDIsIDIxNCwgMjE2LCA5MiwgOTYsIDEwNywgNTEsIDI0OCwgMTAyLCAyMTQsIDIxNiwgOTIsIAotICAgIDk2LCA1MSwgMjQxLCAzMSwgOTIsIDk2LCA1MSwgMjE0LCAyMTYsIDkyLCA5NiwgMTE5LCAyMjAsIDgxLCAyNCwgNDYsIDI0NiwgCi0gICAgNjcsIDkyLCA5NiwgMTE5LCA1MSwgMjQsIDQ2LCAyMjAsIDgwLCA5MiwgOTYsIDUxLCAxMTksIDI0LCAyMjMsIDE0OCwgOTIsIAotICAgIDk2LCAxMTksIDIyMCwgODEsIDI0LCA0MiwgMjQ2LCA2NywgOTIsIDk2LCAxMTksIDUxLCAyNCwgNDIsIDIyMCwgODAsIDkyLCAKLSAgICA5NiwgNTEsIDExOSwgMjQsIDIzMywgNzAsIDkyLCA5NiwgMTE0LCAyMjAsIDgxLCAyNCwgNDYsIDI0NiwgNjcsIDkyLCA5NiwgCi0gICAgMTE0LCA1MSwgMjQsIDQ2LCAyMjAsIDgwLCA5MiwgOTYsIDUxLCAxMTQsIDI0LCAyMjMsIDE0OCwgOTIsIDk2LCAxMTQsIAotICAgIDIyMCwgODEsIDI0LCA0MiwgMjQ2LCA2NywgOTIsIDk2LCAxMTQsIDUxLCAyNCwgNDIsIDIyMCwgODAsIDkyLCA5NiwgNTEsIAotICAgIDExNCwgMjQsIDIzMywgNzAsIDkyLCA5NiwgNzEsIDIyMCwgODEsIDI0LCA0NiwgMjQ2LCA2NywgOTIsIDk2LCA3MSwgNTEsIAotICAgIDI0LCA0NiwgMjIwLCA4MCwgOTIsIDk2LCA1MSwgNzEsIDI0LCAyMjMsIDE0OCwgOTIsIDk2LCA3MSwgMjIwLCA4MSwgMjQsIAotICAgIDQyLCAyNDYsIDY3LCA5MiwgOTYsIDcxLCA1MSwgMjQsIDQyLCAyMjAsIDgwLCA5MiwgOTYsIDUxLCA3MSwgMjQsIDIzMywgCi0gICAgNzAsIDkyLCA5NiwgMTE5LCAyMjAsIDgxLCAyNCwgMTk5LCAyNDYsIDY3LCA5MiwgOTYsIDExOSwgNTEsIDI0LCAxOTksIAotICAgIDIyMCwgODAsIDkyLCA5NiwgNTEsIDExOSwgMjQsIDI0MSwgMzEsIDkyLCA5NiwgMTE0LCAyMjAsIDgxLCAyNCwgMTk5LCAKLSAgICAyNDYsIDY3LCA5MiwgOTYsIDExNCwgNTEsIDI0LCAxOTksIDIyMCwgODAsIDkyLCA5NiwgNTEsIDExNCwgMjQsIDI0MSwgMzEsIAotICAgIDkyLCA5NiwgNzEsIDIyMCwgODEsIDI0LCAxOTksIDI0NiwgNjcsIDkyLCA5NiwgNzEsIDUxLCAyNCwgMTk5LCAyMjAsIDgwLCAKLSAgICA5MiwgOTYsIDUxLCA3MSwgMjQsIDI0MSwgMzEsIDkyLCA5NiwgMTc3LCAyNTMsIDE5NiwgMTE5LCAyNCwgMjIzLCAxNDgsIAotICAgIDkyLCA5NiwgMTc3LCAyNTMsIDE5NiwgMTE5LCAyNCwgMjMzLCA3MCwgOTIsIDk2LCAxNzcsIDI1MywgMTk2LCAxMTQsIDI0LCAKLSAgICAyMzMsIDcwLCA5MiwgOTYsIDE3NywgMjUzLCAxOTYsIDExNCwgMjQsIDIyMywgMTQ4LCA5MiwgOTYsIDE3NywgMjQ3LCAyMDcsIAotICAgIDIxNSwgMTMxLCA0NiwgMjExLCAyMTEsIDIzMiwgMTYzLCAyMzMsIDcwLCA5MiwgOTYsIDE3NywgMjQ3LCAyMDcsIDIxNSwgCi0gICAgMTMxLCA0MiwgMjExLCAyMTEsIDIzMiwgMTYzLCAyMjMsIDE0OCwgOTIsIDk2LCAxNzcsIDI0NywgMjA3LCAyNDksIDcwLCAKLSAgICA5MiwgOTYsIDE3NywgMjMzLCA3MCwgOTIsIDk2LCAxNzcsIDIxNSwgMTM0LCA5MiwgOTYsIDE3NywgMjIzLCAxNDgsIDkyLCAKLSAgICA5NiwgMTc3LCAyNDYsIDYwLCA5MiwgOTYsIDEwNywgMjMzLCA3MCwgOTIsIDk2LCAxMDcsIDIxNSwgMTM0LCA5MiwgOTYsIAotICAgIDEwNywgMjIzLCAxNDgsIDkyLCA5NiwgMTA3LCAyNDYsIDYwLCA5MiwgOTYsIDE3NywgNDIsIDI0LCAxMDcsIDIyMywgMTQ4LCAKLSAgICA5MiwgOTYsIDE3NywgMTE0LCAyNCwgMTA3LCAyNDYsIDYwLCA5MiwgOTYsIDEwNywgNDIsIDI0LCAxNzcsIDIyMywgMTQ4LCAKLSAgICA5MiwgOTYsIDEwNywgMTE0LCAyNCwgMTc3LCAyNDYsIDYwLCAyMTUsIDEzMSwgMTUxLCAyNTEsIDEzNiwgMjMyLCAxNjMsIAotICAgIDEyMiwgMjQ1LCAxNDYsIDI1MSwgMTM2LCAyMzIsIDE2MywgMTIyLCAyMjQsIDE2NywgMjUxLCAxMzYsIDIzMiwgMTYzLCAKLSAgICAxMzMsIDI0NSwgMTQ0LCAyNTEsIDEzNiwgMjMyLCAxNjMsIDE1MSwgMjUxLCAxMzYsIDIzMiwgMTYzLCAyNDQsIDUwLCAyNDUsIAotICAgIDE0NCwgMjUxLCAxMzYsIDIzMiwgMTYzLCAxMzMsIDIyNCwgMTY1LCAyNTEsIDEzNiwgMjMyLCAxNjMsIDIyMSwgNDMsIDI0NSwgCi0gICAgMTQ0LCAyNTEsIDEzNiwgMjQzLCAyMDAsIDI1MSwgMTM2LCA0MiwgMjIxLCA0MywgMjQ1LCAxNDQsIDI1MSwgMTM2LCA0MiwgCi0gICAgMTMzLCAyMjQsIDE2NSwgMjUxLCAxMzYsIDQyLCAyNDQsIDUwLCAyNDUsIDE0NCwgMjUxLCAxMzYsIDQyLCAxNTEsIDI1MSwgCi0gICAgMTM2LCA0MiwgMTMzLCAyNDUsIDE0NCwgMjUxLCAxMzYsIDQyLCAxMjIsIDIyNCwgMTY3LCAyNTEsIDEzNiwgNDIsIDEyMiwgCi0gICAgMjQ1LCAxNDYsIDI1MSwgMTM2LCA0NiwgMTUxLCAyNTEsIDEzNiwgMTc3LCAyMjEsIDE0LCAyMzEsIDE0NywgMjIxLCAxNCwgCi0gICAgMjQ4LCAxMDcsIDIyMSwgMTQsIDIxNSwgMTMxLCAxMjIsIDI0NSwgMTQ2LCAyNTEsIDEzNiwgNDYsIDEyMiwgMjQ1LCAxNDYsIAotICAgIDI1MSwgMTM2LCAyMjQsIDE3MSwgMjMyLCAxNjMsIDIzMywgNzAsIDIyNCwgMTcxLCAyMzIsIDE2MywgMjIzLCAxNDgsIDIyNCwgCi0gICAgMTcxLCAyMTUsIDEzMSwgMjMzLCA3MCwgMjI0LCAxNzEsIDIxNSwgMTMxLCA0MiwgMjQsIDIzMiwgMTYzLCA0MiwgMjQsIAotICAgIDIzMiwgMTYzLCAyMjMsIDE0OCwgMjI0LCAxNzEsIDIxNSwgMTMxLCA0MiwgMjQsIDIzMiwgMTYzLCAyMjMsIDE0OCwgMjI0LCAKLSAgICAxNzEsIDIxNSwgMTMxLCA0MiwgMjQsIDIxNSwgMTMxLCA0NiwgMjQsIDIzMiwgMTYzLCAyMzMsIDcwLCAyMjQsIDE3MSwgCi0gICAgMjE1LCAxMzEsIDQyLCAyNCwgMjE1LCAxMzEsIDQ2LCAyNCwgMjMyLCAxNjMsIDIyMywgMTQ4LCAyMjQsIDE3MSwgMjE1LCAKLSAgICAxMzEsIDIyMywgMTQ4LCAyMjQsIDE3MSwgMjE1LCAxMzEsIDQ2LCAyNCwgMjMyLCAxNjMsIDIzMywgNzAsIDIyNCwgMTcxLCAKLSAgICAyMTUsIDEzMSwgNDYsIDI0LCAyMzIsIDE2MywgNDIsIDI0LCAyMzIsIDE2MywgMjIzLCAxNDgsIDgzLCAyMTksIDE2NiwgNjcsIAotICAgIDIxOSwgMTY2LCA2NywgNDEsIDIsIDIyMywgODUsIDI0OSwgOTgsIDY3LCA0MSwgMjQ5LCAxMjYsIDgzLCAzLCAyMTksIDE2NiwgCi0gICAgNDEsIDIsIDE5OSwgMjQ0LCA3NCwgNDEsIDIsIDcxLCAyNDQsIDc0LCA0MSwgMiwgMjI3LCAxMSwgMjQ5LCA2NiwgMjQ0LCAKLSAgICA3NCwgNDEsIDIsIDIxNSwgMTMxLCA0MiwgMjExLCAyMTEsIDIzMiwgMTYzLCA0NiwgMjQ0LCA3NCwgNDEsIDIsIDIxNSwgCi0gICAgMTMxLCA0NiwgMjExLCAyMTEsIDIzMiwgMTYzLCA0MiwgMjQ0LCA3NCwgNDEsIDIsIDI0NywgMjA3LCAyNDksIDY2LCAyNDQsIAotICAgIDc0LCA4MywgMywgMjE5LCAxNjYsIDY3LCAzLCAyMTksIDE2NiwgODMsIDIyNCwgOSwgNjcsIDIyNCwgOSwgODMsIDcxLCAKLSAgICAyMjQsIDksIDY3LCA3MSwgMjI0LCA5LCA4MywgMjI2LCAxMzQsIDY3LCAyMjYsIDEzNCwgODMsIDIxNSwgMTMzLCAyMTYsIAotICAgIDE4MywgNjcsIDIxNSwgMTMzLCAyMTYsIDE4MywgODMsIDIxNSwgMTMzLCAzLCAyMTYsIDE4MywgNjcsIDIxNSwgMTMzLCAzLCAKLSAgICAyMTYsIDE4MywgODMsIDIyMywgMTQ0LCAyMTYsIDE4MywgNjcsIDIyMywgMTQ0LCAyMTYsIDE4MywgODMsIDIyMywgMTQ0LCAKLSAgICAzLCAyMTYsIDE4MywgNjcsIDIyMywgMTQ0LCAzLCAyMTYsIDE4MywgODMsIDIyMywgMTQ0LCAyMjUsIDE0MiwgNjcsIDIyMywgCi0gICAgMTQ0LCAyMjUsIDE0MiwgODMsIDI0NiwgNTksIDIxNiwgMTgzLCA2NywgMjQ2LCA1OSwgMjE2LCAxODMsIDgzLCAyNDYsIDU5LCAKLSAgICAzLCAyMTYsIDE4MywgNjcsIDI0NiwgNTksIDMsIDIxNiwgMTgzLCA4MywgMjMzLCA2NiwgMjE2LCAxODMsIDY3LCAyMzMsIAotICAgIDY2LCAyMTYsIDE4MywgODMsIDIzMywgNjYsIDMsIDIxNiwgMTgzLCA2NywgMjMzLCA2NiwgMywgMjE2LCAxODMsIDgzLCAKLSAgICAyMzMsIDY2LCAyMjUsIDE0MiwgNjcsIDIzMywgNjYsIDIyNSwgMTQyLCA4MywgMjQ3LCAyMDAsIDY3LCAyNDcsIDIwMCwgNjcsIAotICAgIDI0NywgMjAxLCAyNDksIDEyNiwgODMsIDMsIDI0NywgMjAwLCAyNDQsIDU4LCAyMzIsIDE1OSwgNjcsIDI0OSwgMjI4LCAKLSAgICAyNDYsIDcyLCAyNDksIDIyOCwgMjQ5LCAyMjksIDIsIDcxLCAyNDQsIDc0LCAyNTEsIDQwLCA4MywgMjQ5LCAyMjgsIDI0OSwgCi0gICAgMjI5LCAyLCA0MiwgMTUxLCAyNTEsIDE0NCwgMjQ5LCAyMjksIDIsIDQ2LCAxNTEsIDI1MSwgMTQ0LCAyNDksIDIyOSwgMiwgCi0gICAgMjMyLCAxNjMsIDE1MSwgMjUxLCAxNDQsIDI0OSwgMjI5LCAyLCAyMTUsIDEzMSwgMTUxLCAyNTEsIDE0NCwgMjQ5LCAyMjksIAotICAgIDIsIDIxNSwgMTMxLCA0NiwgMjI0LCAxNzEsIDI1MSwgMTQ0LCAyNDksIDIyOSwgMiwgMjU0LCA2NCwgMjUxLCAxNywgMjE1LCAKLSAgICAxMzEsIDQyLCAyMjQsIDE3MSwgMjUxLCAxNDQsIDQyLCAxNTEsIDgzLCAyNDksIDIyOCwgNDYsIDE1MSwgODMsIDI0OSwgCi0gICAgMjI4LCAyMzUsIDE5MiwgMjUxLCA0MiwgMjM1LCAxOTIsIDY3LCAyNDksIDIyOCwgMjE1LCAxMzEsIDE1MSwgMjM1LCAxOTIsIAotICAgIDY3LCAyNDksIDIyOCwgMjMyLCAxNjMsIDE1MSwgMjM1LCAxOTIsIDY3LCAyNDksIDIyOCwgMjE1LCAxMzEsIDQyLCAyMjQsIAotICAgIDE3MSwgMjQ5LCAyMjYsIDI1MywgMTk1LCAyMTUsIDEzMSwgNDYsIDIyNCwgMTcxLCAyNDksIDIyNiwgMjUzLCAxOTUsIDIzMiwgCi0gICAgMTYzLCA0NiwgMjI0LCAxNzEsIDI0OSwgMjI2LCAyNTMsIDE5NSwgMjMyLCAxNjMsIDQyLCAyMjQsIDE3MSwgMjQ5LCAyMjYsIAotICAgIDI1MywgMTk1LCAyMTUsIDEzMSwgMTUxLCAyNDksIDIyOCwgMjMyLCAxNjMsIDE1MSwgMjQ5LCAyMjgsIDgzLCAyMzIsIDE2MywgCi0gICAgNDYsIDIxNiwgMTgzLCA4MywgMjMyLCAxNjMsIDQyLCAyMTYsIDE4MywgODMsIDIxNSwgMTMxLCA0MiwgMjE2LCAxODMsIDgzLCAKLSAgICAyMTUsIDEzMSwgNDYsIDIxNiwgMTgzLCA2NywgMjUxLCA0MiwgNDEsIDIsIDQyLCAxNTEsIDI1MSwgMTQ0LCA0MSwgMiwgNDYsIAotICAgIDE1MSwgMjUxLCAxNDQsIDQxLCAyLCAyMTUsIDEzMSwgNDIsIDI0NywgMjA3LCAxNTEsIDI1MSwgMTQ0LCA0MSwgMiwgMjMyLCAKLSAgICAxNjMsIDQ2LCAyNDcsIDIwNywgMTUxLCAyNTEsIDE0NCwgNjcsIDQxLCAyLCA3MSwgMjUxLCAxNTUsIDIzMiwgMjQyLCA2NywgCi0gICAgMjE1LCAxMzMsIDIxNiwgMTg0LCAyLCAyNDcsIDc0LCAyMTUsIDEzMywgMjE2LCAxODQsIDIsIDQyLCAxNTEsIDI1MSwgMTQ0LCAKLSAgICAyMTUsIDEzMywgMjE2LCAxODQsIDIsIDQ2LCAxNTEsIDI1MSwgMTQ0LCAyMzMsIDEwOCwgMjQ5LCAyMjgsIDY3LCA0MSwgMiwgCi0gICAgMjE1LCAxMzEsIDQyLCAyMjQsIDE3MCwgNjcsIDQxLCAyLCAyMzIsIDE2MywgNDIsIDIyNCwgMTcwLCA2NywgNDEsIDIsIAotICAgIDIzMiwgMTYzLCA0NiwgMjI0LCAxNzAsIDY3LCA0MSwgMiwgMjE1LCAxMzEsIDQ2LCAyMjQsIDE3MCwgNjcsIDI0OSwgMjI5LCAKLSAgICAyLCAyMTUsIDEzMSwgNDIsIDIyNCwgMTcwLCA2NywgMjQ5LCAyMjksIDIsIDIzMiwgMTYzLCA0MiwgMjI0LCAxNzAsIDY3LCAKLSAgICAyNDksIDIyOSwgMiwgMjMyLCAxNjMsIDQ2LCAyMjQsIDE3MCwgNjcsIDI0OSwgMjI5LCAyLCAyMTUsIDEzMSwgNDYsIDIyNCwgCi0gICAgMTcwLCAyMTUsIDEzMSwgNDIsIDIxNiwgMTgzLCAyMTUsIDEzMSwgNDYsIDIxNiwgMTgzLCAyMzIsIDE2MywgNDIsIDIxNiwgCi0gICAgMTgzLCA2NywgMjMxLCAxNDcsIDIxOSwgMTY2LCA4MywgMjMxLCAxNDcsIDIxOSwgMTY2LCA2NywgMjMxLCAxNDcsIDMsIAotICAgIDIxOSwgMTY2LCA4MywgMjMxLCAxNDcsIDMsIDIxOSwgMTY2LCAyMzIsIDE2MywgNDYsIDIxNiwgMTgzLCA4MywgMjE4LCAKLSAgICAyMzksIDIsIDIyNCwgMjUsIDI0OSwgMTg0LCAyMTUsIDE2NCwgMjE5LCAyNDQsIDI0OSwgMTYwLCA4MywgMjE5LCA5NSwgNjcsIAotICAgIDIxOSwgOTUsIDIzMywgMCwgMjE3LCA4NiwgMjE4LCAyMzgsIDI1MywgMTQ5LCAyMjgsIDE4MiwgMjQ3LCAyNDUsIDIyOCwgCi0gICAgMTgyLCAyNDksIDEzNSwgMjI3LCAyOSwgODMsIDIxNywgMjA5LCA2NywgMjE3LCAyMDksIDI1MiwgNzUsIDI1MSwgODksIAotICAgIDI1MiwgNzUsIDkyLCAyLCAyNTAsIDY1LCAyNTIsIDc1LCA5MiwgMiwgMjEzLCAxNjYsIDIyMiwgMTY5LCAyMTUsIDE2NSwgMiwgCi0gICAgMjI0LCA1MSwgMjQ2LCAzOSwgMjQwLCAyMzAsIDI1MSwgMTk5LCA2NywgMjIwLCAxODIsIDIyNSwgMjMzLCA4MywgMjIwLCAKLSAgICAxODIsIDIyNSwgMjMzLCAyMjEsIDEwLCAyMjMsIDIwMiwgMjIzLCA4OSwgMjQ0LCAyNCwgMjQxLCAyMTIsIDI1MSwgNDIsIAotICAgIDgzLCA0MiwgMjI1LCAxNDEsIDIzNSwgMjM5LCA4MywgNDYsIDIyNSwgMTQxLCAyMzUsIDIzOSwgNjcsIDQyLCAyMjUsIDE0MSwgCi0gICAgMjM1LCAyMzksIDY3LCAxMTQsIDIyNSwgMTQxLCAyMzUsIDIzOSwgNjcsIDQ2LCAyMjUsIDE0MSwgMjM1LCAyMzksIDY3LCAKLSAgICAxMTksIDIyNSwgMTQxLCAyMzUsIDIzOSwgMjIwLCAyOSwgMjQsIDI0OSwgNjksIDI1MCwgMTUyLCA1MiwgMjI0LCA2MiwgNTIsIAotICAgIDI1MSwgMTYyLCA1MiwgMjUwLCAyMTEsIDI1NCwgMTMsIDIyNywgMTIsIDI0OSwgNzAsIDI1MCwgNDgsIDIyMywgMTkwLCAKLSAgICAyNDksIDcxLCA2NSwgMjMyLCAxNzMsIDI0OSwgNzEsIDY1LCAyMzUsIDExNywgMjE5LCA5NiwgMjQsIDI0OSwgNzYsIDI0NCwgCi0gICAgMTM2LCA4NywgMjU0LCAxNTMsIDIyMSwgMTIsIDI0MiwgNSwgMjQsIDIyMCwgMTE1LCAyMjYsIDk1LCA4NywgMjEyLCAyNDUsIAotICAgIDIxMywgNTgsIDIxNiwgMTczLCAzMSwgMjQxLCAyMDcsIDIxNiwgMTczLCAzMSwgMjMzLCAxMzEsIDIxNiwgMTczLCAzMSwgCi0gICAgMjQ0LCA2NSwgMjE2LCAxNzMsIDMxLCAyMTcsIDg3LCAyMTYsIDE3MywgMzEsIDIxMywgMjI0LCAyMTYsIDE3MywgMzEsIAotICAgIDIxNCwgMjQsIDIxNiwgMTczLCAzMSwgMjMwLCAxODUsIDIxNiwgMTczLCAzMSwgMjQ1LCAxNzksIDIxMywgMjQyLCA2NSwgCi0gICAgMjQ3LCAyMjYsIDY3LCAyNDMsIDIwOSwgMjQ0LCAxNTgsIDY3LCAyMjAsIDIsIDI0NCwgMTU4LCA4MywgMjIwLCAyLCAyNDQsIAotICAgIDE1OCwgNjcsIDIxOCwgMjM5LCAyLCAyMjQsIDI1LCAyNDQsIDYxLCAyMjQsIDE2NywgMjMwLCAxOTgsIDIzMywgMTAzLCAKLSAgICAyMjQsIDE2NywgMjMwLCAxOTgsIDIzMSwgMTE4LCAyNDQsIDEwNywgNTIsIDI0NSwgMTc5LCAyMzEsIDI1MywgNTIsIDIzNSwgCi0gICAgNDEsIDIyMiwgMTM3LCAyMTUsIDExNiwgMjI5LCAxNzUsIDIyNSwgMTU0LCAyNTMsIDE4MywgMjE3LCAyNDcsIDI0MywgMjgsIAotICAgIDI1MCwgMTkxLCAyMzMsIDQzLCAyMTQsIDEzMSwgMjMzLCAxMCwgMjIyLCAxMTAsIDIyMiwgMTg4LCAyNTAsIDE4MCwgMjUzLCAKLSAgICAyMTIsIDIyNSwgMTg0LCA2NywgMjUwLCA1NCwgMjM0LCA4NywgNjcsIDI1MCwgNTQsIDIyNCwgMTU5LCA2NywgMjUwLCA1NCwgCi0gICAgMjIzLCA5NywgNjcsIDI1MCwgNTQsIDI1MSwgMTU0LCA2NywgMjUwLCA1NCwgMjM0LCAzOSwgNjcsIDI1MCwgNTQsIDIyNiwgCi0gICAgMTA1LCA4MywgMjUwLCA1NCwgMjM0LCA4NywgODMsIDI1MCwgNTQsIDIyNCwgMTU5LCA4MywgMjUwLCA1NCwgMjIzLCA5NywgCi0gICAgODMsIDI1MCwgNTQsIDI1MSwgMTU0LCA4MywgMjUwLCA1NCwgMjM0LCAzOSwgODMsIDI1MCwgNTQsIDIyNiwgMTA1LCA4MywgCi0gICAgMjE5LCAyMDQsIDIxOCwgMjUxLCA2NywgMjQxLCAyMTIsIDIxOCwgMjUxLCA2NywgMjQ3LCAyMDEsIDIxOCwgMjUxLCA4MywgCi0gICAgMjQ5LCAxODIsIDIxOCwgMjUxLCA2NywgMjE5LCAyMDQsIDIxOCwgMjUxLCA4MywgMjQxLCAyMTIsIDIxOCwgMjUxLCA4MywgCi0gICAgMjQ3LCAyMDEsIDIxOCwgMjUxLCA2NywgMjQ5LCAxODIsIDIxOCwgMjUxLCAyNDAsIDIzMCwgMjE5LCAxNzAsIDIyNCwgMTY3LCAKLSAgICAyMjgsIDE1OCwgMjQ1LCAxNDYsIDIyOCwgMTU4LCAyNTEsIDI0OSwgMjQ1LCAxNDYsIDIyOCwgMTUzLCAyNTEsIDI0OSwgCi0gICAgMjIwLCA0NiwgMjI4LCAxNTMsIDIzMCwgMTI3LCAyNDQsIDM1LCA1MiwgMjMwLCAxMjcsIDIzMCwgOSwgNTIsIDIzMCwgMTI3LCAKLSAgICAyMjAsIDI1NSwgNTIsIDIxMywgMjUwLCAxNzUsIDI0OSwgNzAsIDI0NSwgMTc2LCAxNzUsIDI0OSwgNzAsIDIxNSwgMTQyLCAKLSAgICAyMjQsIDUsIDg3LCAyMjQsIDUsIDE2LCAzMSwgMjE2LCAxNCwgMjI1LCAxNjYsIDIyNCwgNSwgMTYsIDMxLCAyMTYsIDEzLCAKLSAgICAyMjUsIDE2NiwgMjI0LCA1LCAxNiwgMzEsIDIxNiwgMTIsIDIyNSwgMTY2LCAyMjQsIDUsIDE2LCAzMSwgMjE2LCAxMSwgCi0gICAgMjI1LCAxNjYsIDIyNCwgNSwgMTYsIDMxLCAyMTYsIDEwLCAyMjUsIDE2NiwgMjI0LCA1LCAxNiwgMzEsIDIxNiwgOSwgMjI1LCAKLSAgICAxNjYsIDIyNCwgNSwgMTYsIDMxLCAyMTYsIDgsIDIyNSwgMTY2LCAyMjQsIDUsIDE2LCAzMSwgMjQzLCAyNiwgMjMxLCAyMDEsIAotICAgIDgzLCAyMTUsIDE0MiwgMjI0LCA1LCA4NywgMjI0LCA2LCAyMjYsIDE0OCwgODcsIDIyNiwgMTI0LCAyMjYsIDE0OCwgODcsIAotICAgIDIyNiwgNDksIDIyNiwgMTQ4LCA1MiwgMjEzLCAyNDAsIDg3LCAyNDcsIDE5MywgMjQ0LCAxNTcsIDI0NywgMTkzLCAyNDQsIAotICAgIDE1NiwgMjQ3LCAxOTMsIDI0NCwgMTU1LCAyNDcsIDE5MywgMjQ0LCAxNTQsIDI0NywgMTkzLCAyNDQsIDE1MywgMjQ3LCAKLSAgICAxOTMsIDI0NCwgMTUyLCA2NywgMjQ5LCAyMjksIDIsIDYyLCAyMjMsIDE0OCwgNjcsIDI0OSwgMjI5LCAyLCAxMTcsIDI0NywgCi0gICAgNzIsIDgzLCAyNDksIDIyOSwgMiwgNjcsIDYyLCAyMjMsIDE0OCwgODMsIDI0OSwgMjI5LCAyLCAxMTcsIDY3LCAyNDcsIDcyLCAKLSAgICAyMzAsIDIxMiwgMzEsIDIxMywgNTgsIDIzMCwgMjEyLCAzMSwgMjEyLCAyNDQsIDI0NywgMTc2LCAzMSwgMjQyLCAxMDgsIAotICAgIDIxMywgNTgsIDI0NywgMTc2LCAzMSwgMjMzLCAzNywgMjEyLCAyNDQsIDI0NywgMTc2LCAzMSwgMjMzLCAzNywgMjEzLCA1OCwgCi0gICAgMjQ3LCAxNzYsIDMxLCAyNDIsIDEwOCwgMjEyLCAyNDQsIDY3LCAyNDQsIDQyLCA4MywgMjQ0LCA0MiwgMjQyLCA1LCAyNCwgCi0gICAgMjI1LCAyMzYsIDI1NCwgMjksIDI0OSwgNjgsIDIxOCwgMTgwLCAyMTksIDEwMywgNjUsIDI1NCwgMTMxLCAyMjIsIDEyNCwgCi0gICAgMjU0LCA3NywgMjQ0LCAyMCwgMjQzLCAzNiwgMjE5LCAxMDMsIDY1LCAyNDEsIDE4NywgMjUzLCAxMTUsIDg3LCAyNDQsIDMxLCAKLSAgICAyMjYsIDI1MCwgNjcsIDIxOSwgOTUsIDEzMywgMjMyLCAyMzcsIDI0OSwgMTE0LCAyMjMsIDE0OCwgMTMzLCAyMzIsIDIzNywgCi0gICAgMjQ5LCAxMTQsIDIzMywgNzAsIDIxNCwgMzQsIDUyLCAxMjQsIDIxNCwgMTExLCA1MiwgMjQ2LCA2NCwgMjQ0LCAxMDcsIDUyLCAKLSAgICAyNDYsIDY0LCAyMzEsIDI1MywgNTIsIDIzNSwgMjAwLCAyNDQsIDEwNywgMjQsIDIzMSwgMjUzLCA1MiwgMjMxLCAyNTMsIAotICAgIDI0LCAyNDQsIDEwNywgNTIsIDIzMSwgMjUzLCAyLCAyMTksIDQ1LCA1MiwgMjMxLCAyNTMsIDIsIDIxOSwgNDUsIDI0LCAKLSAgICAyMzEsIDI1MywgMjQsIDI0NCwgMTA3LCA1MiwgNzEsIDIzMSwgMjUzLCAyLCAyMTksIDQ1LCA1MiwgMTk5LCAyMzEsIDI1MywgCi0gICAgMiwgMjE5LCA0NSwgNTIsIDIzMSwgMTQ3LCA2NywgMjQ5LCAyMjgsIDIzMSwgMTQ3LCA4MywgMjQ5LCAyMjgsIDIzMSwgMTQ3LCAKLSAgICAzLCA2NywgMjQ5LCAyMjgsIDIzMSwgMjE2LCA4NywgMjQ3LCAxMTksIDg3LCAyMTUsIDE0MCwgMjI2LCAxMjMsIDg3LCAyNDksIAotICAgIDE2OSwgMjQzLCAxOTYsIDIxNSwgMTEyLCAyMjksIDE3MCwgMjUwLCA5NSwgMjI2LCAxODgsIDIzNSwgNDcsIDIxNCwgMTYyLCAKLSAgICAyNTAsIDMwLCA4MywgMjMwLCAxOTksIDIzMiwgMjUzLCAyMjEsIDMzLCAyMjEsIDY3LCAyMjQsIDE1MCwgMjIxLCA1MSwgCi0gICAgMjE5LCAyMzksIDI1MiwgNzgsIDI1MiwgNDYsIDkxLCAyMzQsIDE0NCwgNjcsIDI0NiwgNDgsIDIzMSwgMjQ4LCA2NywgMjQ2LCAKLSAgICA0OCwgMjM0LCA4NywgODMsIDI0NiwgNDgsIDIzMSwgMjQ4LCA4MywgMjQ2LCA0OCwgMjM0LCA4NywgMjE5LCAyNDUsIDIxMywgCi0gICAgMjE2LCAyMTksIDI0OCwgMjE4LCAyMzksIDI1MSwgMjI3LCAyNDksIDE4NCwgMjI0LCA1MCwgODMsIDIxOSwgMjQ0LCAyMTcsIAotICAgIDg4LCAyNDksIDE4NSwgMjQsIDIyNCwgNTAsIDIxNiwgNTgsIDY3LCAyMjAsIDE4MiwgMjI1LCAyMzMsIDIxNiwgNTgsIDgzLCAKLSAgICAyMjAsIDE4MiwgMjI1LCAyMzMsIDY3LCAyNDcsIDIwMSwgMjM1LCAyNTIsIDIxOSwgMTY2LCAyNDksIDY1LCAyMzMsIDExNSwgCi0gICAgMjQ3LCAxNDUsIDI1MCwgMTc2LCAyMjcsIDMyLCAyMjUsIDIzNiwgMjUwLCAxNzcsIDIyMCwgMTYsIDI0MSwgMTk2LCAyLCAKLSAgICA2NywgMjQ5LCA3MCwgMzYsIDI0OSwgNjUsIDIzMywgMTE1LCAyNTAsIDg4LCAyMjgsIDE4NiwgMjQ1LCA4MywgMjU0LCA1MCwgCi0gICAgMjI3LCA1NywgNDIsIDIxNCwgMTAsIDIxNiwgMjA4LCA4MywgMjE2LCAyMSwgNDIsIDIxNCwgMTAsIDIxNiwgMjA4LCA2NywgCi0gICAgMjE2LCAyMSwgNDIsIDIxNCwgMTAsIDIxNiwgMjA4LCA4MywgNDIsIDIzMywgMTE2LCAyMzEsIDExNywgNjcsIDQyLCAyMzMsIAotICAgIDExNiwgMjMxLCAxMTcsIDI0NiwgNDQsIDIyMCwgMTAsIDUyLCAxMDcsIDY3LCAyNDYsIDU5LCAyMTYsIDE4MywgNDIsIDI0OSwgCi0gICAgMTkzLCAyNDUsIDgzLCA5MSwgMjIyLCAxNjksIDI0NCwgMTQzLCAyNDcsIDIwNywgMjM1LCAyNTIsIDY3LCAyNDksIDIyOSwgCi0gICAgMjM1LCAyNTIsIDgzLCAyMTksIDE2NiwgODMsIDIxNiwgMTUwLCAyMjMsIDIxMiwgNDIsIDI0NSwgODIsIDIyMywgMjEyLCAKLSAgICA0MiwgMjQ1LCA4MSwgMjUzLCAxMjcsIDE2LCAzMSwgMjE1LCAxMTYsIDEwNywgMjQ5LCAyMjksIDIsIDIxOSwgNDUsIDI0LCAKLSAgICAxMTcsIDE3NiwgNDksIDIyNiwgNjQsIDIyMywgMTQ1LCAyMzUsIDIwMiwgMjI2LCA2NCwgMjMzLCA2NywgMjM1LCAyMDIsIAotICAgIDIyNiwgNjQsIDIzNSwgMTkxLCAyMjYsIDY0LCA4MywgMjQ5LCA3MSwgMjI3LCA2MywgMjIwLCAyMDksIDIyMCwgMTk3LCAKLSAgICAyMjAsIDE1NCwgMjQ5LCAyNTQsIDI1MCwgMTU4LCAyNDEsIDE0MywgMjIwLCA1NCwgMjQzLCAzNywgMjEzLCAyMTYsIDI0MCwgCi0gICAgMjEwLCAyNDMsIDM3LCAyLCAyNDEsIDI1MSwgMjMxLCAyMzYsIDE2LCAzMSwgMjMzLCAxLCAyMzAsIDE4NSwgMjE1LCAxNjUsIAotICAgIDIyNywgNjMsIDI0MiwgMTAwLCAyNDMsIDIzOCwgMjQ0LCA0MywgMjM1LCAyNTIsIDI0MSwgNDUsIDI0NCwgOTgsIDIyMiwgCi0gICAgMTg1LCA0MSwgMjQzLCAyMzcsIDI0OSwgOTgsIDIyMCwgMzIsIDI0MCwgMTA1LCAyMjAsIDM1LCAyMjYsIDQ0LCAyLCAyNTIsIAotICAgIDc4LCAyMTcsIDE5NSwgMjM1LCAxMzEsIDI1MiwgNjUsIDg3LCAyNDEsIDIxNSwgMjQyLCAxMTAsIDg3LCAyNDMsIDIwMywgCi0gICAgMjI1LCAyOCwgMjQ5LCA0NCwgMjI3LCA2MywgODMsIDIxOSwgMTY2LCA2NywgMjQ0LCA0MywgMiwgMTk5LCAyMzEsIDM3LCAKLSAgICA4MywgMjE5LCA0NiwgMjE1LCAxMzEsIDI1MSwgMTQwLCAyMjIsIDExMiwgODMsIDIyMiwgMTEyLCAyMzIsIDE2MywgMjUxLCAKLSAgICAxNDAsIDIyMiwgMTEyLCA2NywgMjIyLCAxMTIsIDY3LCAxMDcsIDI1MCwgNjYsIDc3LCAyMTcsIDIxMCwgMjMyLCAyMDYsIAotICAgIDUyLCAyMTgsIDQsIDI0NiwgNDMsIDI1NCwgOTksIDI0NSwgNzgsIDIyNCwgNDgsIDI0NCwgNTQsIDIyNCwgNDgsIDI0MSwgCi0gICAgMjU0LCAyMTQsIDE1MiwgMjQxLCAyNTQsIDIxMywgMTg2LCAyNDEsIDI1NCwgMjMyLCAxNjMsIDQ2LCAyMjYsIDczLCAyMjYsIAotICAgIDczLCAyMTUsIDEzMSwgNDYsIDIyNiwgNzMsIDY3LCAyMjksIDYxLCA4MywgMjI5LCA2MSwgMjUwLCA2NiwgNzcsIDEwNywgCi0gICAgMjUwLCA2NiwgNzcsIDIzMCwgMTU0LCAyMTMsIDE2NiwgMTA3LCAyMzAsIDE1NCwgMjEzLCAxNjYsIDI1MiwgNzUsIDIxMywgCi0gICAgMTY2LCAxMDcsIDI1MiwgNzUsIDIxMywgMTY2LCAyMjYsIDI1MCwgMjUsIDI0OSwgNzAsIDEwNywgMjUsIDI0OSwgNzAsIAotICAgIDIyNywgNDAsIDI1MCwgMTA5LCAyNDksIDcwLCAxMDcsIDIyNywgNDAsIDI1MCwgMTA5LCAyNDksIDcwLCA3LCAyNDksIDcwLCAKLSAgICAyMjEsIDEzLCA2NywgNywgMjQ5LCA3MCwgMjI2LCAyNTAsIDcsIDI0OSwgNzAsIDIzMSwgMjUwLCAyNDksIDcwLCAyMTksIAotICAgIDk2LCA2NSwgMjQ4LCA5NSwgMjQzLCAyMzcsIDIxNywgMjIzLCAyNTMsIDEzMiwgMjQzLCAyMzcsIDI1MiwgNzYsIDI1MywgCi0gICAgMTMyLCAxMDcsIDI0MywgMjM3LCAyNTIsIDc2LCAyNTMsIDEzMiwgMjQzLCAyMzcsIDI0OSwgMTgwLCAyNTMsIDEzMiwgODMsIAotICAgIDI0MywgMjM3LCAyMjUsIDE0MywgMjE5LCA5NSwgNjcsIDI0MywgMjM3LCAyMjUsIDE0MywgMjE5LCA5NSwgMjE5LCAxOTksIAotICAgIDIxOSwgNTEsIDIyNiwgMjUwLCA2NywgMjE5LCA5NSwgMzYsIDY3LCAyMTksIDk1LCAyMjcsIDQwLCAyNTAsIDEwOSwgODMsIAotICAgIDIxOSwgOTUsIDgzLCAyNTAsIDEwOSwgNjcsIDIxOSwgOTUsIDIyNiwgMjUwLCA4MywgMjE5LCA5NSwgMTA3LCAyMjYsIDI1MCwgCi0gICAgODMsIDIxOSwgOTUsIDIyNSwgMTkyLCAyMTksIDk1LCAyMjEsIDEzLCA2NywgMjE5LCA5NSwgMTA3LCAyNTMsIDEzMiwgMjI3LCAKLSAgICA0MCwgMjUwLCAxMDksIDI1MywgMTMyLCAyNDUsIDE1MCwgMjE5LCAxNzYsIDI1MywgMTMyLCAyNDUsIDE1MCwgMjI1LCAxNDMsIAotICAgIDgzLCAyMTksIDk1LCAyNDUsIDE1MCwgMjI1LCAxNDMsIDIyNSwgMTkyLCAyMTksIDk1LCAyMjAsIDUzLCAyMjUsIDE0MywgCi0gICAgODMsIDIxOSwgOTUsIDI0NSwgMTUwLCAyMjUsIDE0MywgMjI0LCA3LCA4MywgMjE5LCA5NSwgMTA3LCAyNDUsIDE1MCwgMjI1LCAKLSAgICAxNDMsIDIyNCwgNywgODMsIDIxOSwgOTUsIDIxNiwgNDIsIDIyNSwgMTQzLCA4MywgMjE5LCA5NSwgMjIwLCA0OCwgMjI1LCAKLSAgICAxNDMsIDI1MywgMTMyLCAyMTcsIDIyMywgMjUzLCAxMzIsIDIyNywgNDAsIDI1MCwgMTA5LCAyMTcsIDIyMywgMjUzLCAxMzIsIAotICAgIDEwNywgMjE3LCAyMjMsIDI1MywgMTMyLCAyMjAsIDUzLCAyMjYsIDMzLCA4MywgMjQsIDY3LCAyNDQsIDIzLCA4MywgMjQ0LCAKLSAgICAyMywgNjcsIDI0NCwgMjMsIDI0NSwgMTUwLCAyMjYsIDMzLCAyMjYsIDI1MCwgODMsIDI0NCwgMjMsIDM2LCAyMjcsIDQwLCAKLSAgICAyNTAsIDEwOSwgMjQ1LCAxNTAsIDIyNSwgMTQzLCAyMTksIDk1LCAxMDcsIDIxNywgMjIzLCAyMjUsIDE5MiwgMjUzLCAxMzIsIAotICAgIDIxOSwgMjQ2LCAyMTcsIDU5LCAyMTYsIDE3NiwgMjE5LCAyNDYsIDEwNywgMjUwLCA1MSwgMjE5LCAyNDYsIDIxOSwgMjAxLCAKLSAgICAxMDcsIDIxOSwgMjAxLCAyNTIsIDc2LCAyNTMsIDEzMiwgMjQ1LCAxNTAsIDIxNywgMjIzLCAyMjUsIDU1LCAyNTMsIDEzMiwgCi0gICAgMTA3LCAyNDUsIDE1MCwgMjE3LCAyMjMsIDIyNSwgNTUsIDI1MywgMTMyLCAyNDksIDcxLCA3NywgMjIxLCAxMywgNjcsIAotICAgIDI0OSwgMjI4LCAxNDYsIDkxLCAyNDksIDcxLCA3NywgMjMyLCAxNjMsIDQ2LCAyNDYsIDQxLCA2NywgMjE5LCAxNjYsIDIxNSwgCi0gICAgMTMxLCA0NiwgMjQ2LCA0MSwgNjcsIDIxOSwgMTY2LCAyMzIsIDE2MywgNDYsIDIyMSwgMTMsIDY3LCAyMTksIDE2NiwgMjE1LCAKLSAgICAxMzEsIDQ2LCAyMjEsIDEzLCA2NywgMjE5LCAxNjYsIDgzLCAyMjQsIDE1OCwgMTUyLCAyMjcsIDE0LCA2NywgMjI0LCAxNTgsIAotICAgIDE1MiwgMjI3LCAxNCwgNjcsIDI0NCwgMjU0LCAxNTIsIDIyNywgMTQsIDgzLCAyNDcsIDIwMSwgMjMwLCAyNTEsIDY3LCAKLSAgICAyMTMsIDE2NiwgMTA3LCAyNDQsIDI1NCwgMTUyLCA4NywgMTc3LCA3MSwgMTM0LCAyMzEsIDE0NywgNzEsIDEzNCwgMTA3LCAKLSAgICA3MSwgMTM0LCAxMDcsIDIyMCwgODEsIDIxNiwgNTgsIDI0OSwgMTU4LCAyMjQsIDE0MywgMTUyLCAyMjcsIDE0LCAxMDcsIAotICAgIDIyMCwgODEsIDI0OSwgMTU4LCAyMjQsIDE0MywgMTUyLCAyMjcsIDE0LCAxMDcsIDUxLCAyMTYsIDU4LCAyNDksIDE1OCwgCi0gICAgMjI0LCAxNDMsIDE1MiwgMjI3LCAxNCwgMTA3LCA1MSwgMjQ5LCAxNTgsIDIyNCwgMTQzLCAxNTIsIDIyNywgMTQsIDEwNywgCi0gICAgMTE1LCAyMjAsIDgxLCAyNDksIDE1OCwgMjI0LCAxNDMsIDE1MiwgMjI3LCAxNCwgMTA3LCAxMTUsIDUxLCAyNDksIDE1OCwgCi0gICAgMjI0LCAxNDMsIDE1MiwgMjI3LCAxNCwgMjQ5LCAzMywgMjE5LCA4MCwgMjI2LCAxNDMsIDUsIDIyNywgMTQsIDEwNywgMjQ0LCAKLSAgICAyNTQsIDE1MiwgMjI3LCAxNCwgMTA3LCAyNDEsIDIxMiwgMjQ0LCAyNTQsIDE1MiwgMjI3LCAxNCwgMTA3LCA4MywgMjQxLCAKLSAgICAyMTEsIDIyMywgODksIDEwNywgODMsIDI0MSwgMjEyLCAyNTEsIDQyLCAyNDQsIDI0LCAyNDEsIDIxMSwgMjIzLCA4OSwgCi0gICAgMjQ0LCAyNCwgMjQxLCAyMTIsIDI1MSwgNDIsIDIzMSwgMTQ3LCA0MiwgMjI2LCAxMzIsIDIyNywgMTQsIDIzMSwgMTQ3LCAKLSAgICA0NiwgMjI2LCAxMzIsIDIyNywgMTQsIDIzMSwgMTQ3LCAyNDQsIDMyLCA0MiwgMjI2LCAxMzIsIDIyNywgMTQsIDIzMSwgCi0gICAgMTQ3LCAyNDQsIDMyLCA0NiwgMjI2LCAxMzIsIDIyNywgMTQsIDIzMSwgMTQ3LCAyMzMsIDY2LCAyNTQsIDE5LCAyNTEsIDg1LCAKLSAgICAyMjcsIDE0LCAyMzEsIDE0NywgMjIzLCAxNDQsIDI1NCwgMTksIDI1MSwgODUsIDIyNywgMTQsIDEwNywgMjMzLCA2NiwgCi0gICAgMjU0LCAxOSwgMjI0LCAxNDMsIDE1MiwgMjI3LCAxNCwgMTA3LCAyMjMsIDE0NCwgMjU0LCAxOSwgMjI0LCAxNDMsIDE1MiwgCi0gICAgMjI3LCAxNCwgMTA3LCAyMzMsIDY2LCAyNTQsIDE5LCAyNTEsIDg1LCAyMjcsIDE0LCAxMDcsIDIyMywgMTQ0LCAyNTQsIDE5LCAKLSAgICAyNTEsIDg1LCAyMjcsIDE0LCAxNzcsIDQyLCAyMTYsIDIxOSwgMjIwLCAyMzMsIDI1MSwgODUsIDIyNywgMTQsIDE3NywgNDYsIAotICAgIDIxNiwgMjE5LCAyMjAsIDIzMywgMjUxLCA4NSwgMjI3LCAxNCwgMjMxLCAxNDcsIDQyLCAyNDksIDQwLCAyNTEsIDg1LCAKLSAgICAyMjcsIDE0LCAyMzEsIDE0NywgNDYsIDI0OSwgNDAsIDI1MSwgODUsIDIyNywgMTQsIDI0NywgMTU2LCAxNDYsIDM2LCAyMSwgCi0gICAgMTE2LCAyNDcsIDE1NiwgMTQ2LCAzNiwgMjEsIDEwOSwgMjQ3LCAxNTYsIDE0NiwgMzYsIDIxLCAxNjYsIDI0NywgMTU2LCAKLSAgICAxNDYsIDM2LCAyMSwgMTYzLCAyNDcsIDE1NiwgMTQ2LCAzNiwgMjEsIDE4MCwgMjQ3LCAxNTYsIDE0NiwgMzYsIDIxLCAxODksIAotICAgIDI0NywgMTU2LCAxNDYsIDM2LCAyMSwgMTk4LCAyNDcsIDE1NiwgMTQ2LCAzNiwgMjEsIDE5NSwgMjQ3LCAxNTYsIDE0NiwgCi0gICAgMzYsIDIxLCAyMDAsIDI0NywgMTU2LCAxNDYsIDM2LCA1MCwgMjE3LCAyMDAsIDI0NywgMTU2LCAzNiwgMzUsIDIxLCAxMTYsIAotICAgIDI0NywgMTU2LCAzNiwgMzUsIDIxLCAxMDksIDI0NywgMTU2LCAzNiwgMzUsIDIxLCAxNjYsIDI0NywgMTU2LCAzNiwgMzUsIAotICAgIDIxLCAxNjMsIDI0NywgMTU2LCAzNiwgMzUsIDIxLCAxODAsIDI0NywgMTU2LCAzNiwgMzUsIDIxLCAxODksIDI0NywgMTU2LCAKLSAgICAzNiwgMzUsIDIxLCAxOTgsIDI0NywgMTU2LCAzNiwgMzUsIDIxLCAxOTUsIDI0NywgMTU2LCAzNiwgMzUsIDIxLCAyMDAsIAotICAgIDI0NywgMTU2LCAzNiwgMzUsIDUwLCAyMTcsIDIwMCwgMjQ3LCAxNTYsIDE0NiwgMzYsIDM1LCAyMSwgMTE2LCAyNDcsIDE1NiwgCi0gICAgMTQ2LCAzNiwgMzUsIDIxLCAxMDksIDI0NywgMTU2LCAxNDYsIDM2LCAzNSwgMjEsIDE2NiwgMjQ3LCAxNTYsIDE0NiwgMzYsIAotICAgIDM1LCAyMSwgMTYzLCAyNDcsIDE1NiwgMTQ2LCAzNiwgMzUsIDIxLCAxODAsIDI0NywgMTU2LCAxNDYsIDM2LCAzNSwgMjEsIAotICAgIDE4OSwgMjQ3LCAxNTYsIDE0NiwgMzYsIDM1LCAyMSwgMTk4LCAyNDcsIDE1NiwgMTQ2LCAzNiwgMzUsIDIxLCAxOTUsIDI0NywgCi0gICAgMTU2LCAxNDYsIDM2LCAzNSwgMjEsIDIwMCwgMjQ3LCAxNTYsIDE0NiwgMzYsIDM1LCA1MCwgMjE3LCAyMDAsIDEwNywgMjEzLCAKLSAgICAyMzEsIDk1LCA2OCwgMTA3LCA5NCwgNTIsIDEwNywgMjMwLCAyNTEsIDUyLCAxMDcsIDI0NywgMTIxLCA1MiwgMTA3LCAyMTksIAotICAgIDIxNSwgMjQ1LCAxNzYsIDY4LCAxMDcsIDk1LCA2OCwgMTA3LCAyMjgsIDE2NywgMjQ1LCAxNzYsIDY4LCAyNDYsIDUyLCAKLSAgICAyMjUsIDE0NSwgOTUsIDY4LCAxMDcsIDIyMywgODYsIDk1LCA2OCwgMjE2LCAxODIsIDk1LCA2OCwgMTA3LCAyMTYsIDE4MiwgCi0gICAgOTUsIDY4LCAyNDgsIDEwMCwgMjE2LCAxODIsIDk1LCA2OCwgMTA3LCAyNDgsIDEwMCwgMjE2LCAxODIsIDk1LCA2OCwgODMsIAotICAgIDk1LCA2OCwgMjE3LCA5NywgMjE2LCAyMjUsIDk1LCAyNTMsIDE2NCwgMjE3LCA5NywgMjUxLCA5OSwgOTUsIDI1MywgMTY0LCAKLSAgICA4MywgOTUsIDI1MywgMTY0LCAxMDcsIDgzLCAyNDksIDMzLCAyNDYsIDU4LCAyNCwgOTUsIDY4LCAxMDcsIDgzLCAyNDksIAotICAgIDMzLCAyMTUsIDEyNCwgMjQsIDk1LCA2OCwgMjE5LCAxNjMsIDgzLCA5NSwgNjgsIDEwNywgMjQ5LCAxNDUsIDgzLCA5NSwgCi0gICAgNjgsIDIyMywgMTQzLCA2NywgOTUsIDY4LCAyMzMsIDY1LCA2NywgOTUsIDY4LCAyNTIsIDEwMCwgMjIxLCAxMywgNjcsIDk1LCAKLSAgICA2OCwgMjQzLCAyMTEsIDIyMSwgMTMsIDY3LCA5NSwgNjgsIDEwNywgMjMyLCAxNjMsIDIyMywgMTQyLCA2NywgOTUsIDY4LCAKLSAgICAxMDcsIDIxNSwgMTMxLCAyMjMsIDE0MiwgNjcsIDk1LCA2OCwgMjI4LCAxNjAsIDIzMiwgMTYzLCAyMjMsIDE0MiwgNjcsIAotICAgIDk1LCA2OCwgMjQ5LCA0MCwgMjMyLCAxNzcsIDIyOCwgMTYwLCAyMTUsIDEzMSwgMjIzLCAxNDIsIDY3LCA5NSwgNjgsIDM2LCAKLSAgICAxMDcsIDY3LCA5NSwgNjgsIDIxMywgMjM3LCA5NSwgNjgsIDI1MSwgMTQzLCAyMTksIDIxNSwgMjQ1LCAxNzYsIDY4LCAyNTEsIAotICAgIDE0MywgOTUsIDY4LCAyNTEsIDE0MywgMjI4LCAxNjcsIDI0NSwgMTc2LCA2OCwgMTA3LCAyNTEsIDE0MywgMjE5LCAyMTUsIAotICAgIDI0NSwgMTc2LCA2OCwgMTA3LCAyNTEsIDE0MywgOTUsIDY4LCAxMDcsIDI1MSwgMTQzLCAyMjgsIDE2NywgMjQ1LCAxNzYsIAotICAgIDY4LCAyMTcsIDIyNSwgOTUsIDY4LCAxMDcsIDIxNywgMjI0LCA5NSwgNjgsIDIxNCwgMiwgOTUsIDY4LCAxMDcsIDIxNCwgMiwgCi0gICAgOTUsIDY4LCAyMjcsIDM3LCA5NSwgNjgsIDUxLCAyNDksIDQwLCAyMzIsIDE3NywgMTMzLCAyNDcsIDE2NiwgMjU0LCAxOCwgCi0gICAgNjcsIDIxNiwgMTg0LCAyNDksIDEyNiwgMywgNjcsIDIxNiwgMTgzLCAyMjYsIDQ3LCAyMjcsIDQwLCAyMTksIDgsIDIyNywgCi0gICAgNDAsIDIxOCwgMjIxLCA0MiwgMjIzLCAzLCAyNTIsIDkxLCAyNDgsIDExLCA0NiwgMjIzLCAzLCAyNTIsIDkxLCAyNDgsIDExLCAKLSAgICAxNjcsIDIsIDYyLCAyMzUsIDIxMiwgMjIzLCAyMDMsIDIxOSwgMjMyLCAyMjUsIDgxLCAyMTksIDgsIDIxOCwgMjIyLCAyMjUsIAotICAgIDgxLCAyMTksIDIzMSwgNzEsIDI1MiwgNjAsIDIsIDE5OSwgOTAsIDE4NCwgMjQ3LCAxMjAsIDkxLCAyMzIsIDE5OSwgMjU0LCAKLSAgICAyNywgOTEsIDIzMiwgMTk5LCAyMjcsIDI0LCA2NywgMjQ3LCAyMDEsIDIsIDI1MCwgMTA3LCAyNDcsIDc0LCAyNCwgMiwgCi0gICAgMjQ3LCA3NCwgMjQ1LCAxMjcsIDY1LCAyMjcsIDM1LCAyMTUsIDEyMywgMjMyLCAxNjMsIDQ2LCAyNDksIDEwMCwgMiwgMjQ3LCAKLSAgICA3NCwgMjE1LCAxMzEsIDQyLCAyNDksIDEwMCwgMiwgMjQ3LCA3NCwgNDIsIDIyNiwgMjUyLCAyMzUsIDY5LCA0NiwgMjI2LCAKLSAgICAyNTIsIDIzNSwgNjksIDI0MywgMjAwLCAyMjYsIDI1MiwgMjM1LCA2OSwgMjMzLCAxMDgsIDExNCwgMjE4LCAzNiwgMjMzLCAKLSAgICAxMDgsIDExOSwgMjE4LCAzNiwgNDIsIDI0LCA0NiwgNTEsIDIxNiwgNTcsIDQyLCAyNCwgNDYsIDIxOCwgMzYsIDQyLCAyMzAsIAotICAgIDE1NywgMTg0LCA0NiwgMjE4LCAzNiwgMTg0LCA0MiwgMjE4LCAzNiwgMTE0LCAyMTgsIDM3LCAyLCAyNDksIDIyOSwgNDksIAotICAgIDIzMiwgMTYwLCAyNDcsIDEyNSwgMjUxLCA3LCAxOTksIDIyMywgNDQsIDY3LCAyNDksIDE0NCwgMjQ3LCAyMDAsIDY3LCAKLSAgICAyNDksIDE0NCwgMjQ3LCAyMDEsIDIsIDEzMiwgMjE3LCA2OCwgNjcsIDI0OSwgMTQ0LCAyNDcsIDIwMSwgMiwgOTUsIDIxNywgCi0gICAgNjgsIDY3LCA0MSwgMiwgMTMyLCAyMTcsIDY4LCA2NywgNDEsIDIsIDk1LCAyMTcsIDY4LCAxNCwgNDIsIDY3LCA0MSwgMTI1LCAKLSAgICAxNCwgNDYsIDY3LCA0MSwgMTI1LCAxNCwgNDIsIDI1NCwgMTksIDEyNSwgMTQsIDQ2LCAyNTQsIDE5LCAxMjUsIDE0LCA0MiwgCi0gICAgNTEsIDI1NCwgMTksIDEyNSwgMTQsIDQ2LCA1MSwgMjU0LCAxOSwgMTI1LCAxNCwgNDIsIDY3LCAyMTYsIDIxOSwgMjIwLCAKLSAgICAyMzMsIDEyNSwgMTQsIDQ2LCA2NywgMjE2LCAyMTksIDIyMCwgMjMzLCAxMjUsIDE0LCA0MiwgMjQ0LCAzMiwgMjI2LCAxMzEsIAotICAgIDE0LCA0NiwgMjQ0LCAzMiwgMjI2LCAxMzEsIDIxNSwgMTI0LCAyMjQsIDE2OSwgNjgsIDI0NiwgNTgsIDIyNCwgMTY5LCA2OCwgCi0gICAgMjUzLCAyNTUsIDI0MywgNzQsIDI0OSwgMjI5LCA2OCwgMjQ5LCAxOTUsIDI0MywgNzQsIDI0OSwgMjI5LCA2OCwgNDYsIDc2LCAKLSAgICAyLCAzNiwgMjI1LCAxNTYsIDE4NCwgMTMyLCA2OCwgMTg0LCA5NSwgNjgsIDE4NCwgNDIsIDQ2LCA2OCwgMTg0LCAxMzIsIAotICAgIDUxLCA2OCwgMTg0LCA5NSwgNTEsIDY4LCAxODQsIDQyLCA0NiwgNTEsIDY4LCAxODQsIDEzMiwgNzYsIDI0MywgMjEzLCAKLSAgICAxMzQsIDE4NCwgOTUsIDc2LCAyNDMsIDIxMywgMTM0LCAxODQsIDEzMiwgNTEsIDc2LCAyNDMsIDIxMywgMTM0LCAxODQsIAotICAgIDk1LCA1MSwgNzYsIDI0MywgMjEzLCAxMzQsIDE4NCwgOTUsIDIxOSwgMTYyLCA2OCwgNDQsIDQ1LCAyNTEsIDEzOCwgNDQsIAotICAgIDQ1LCAyNDcsIDcxLCA0NCwgNDUsIDI0NiwgMTk5LCA0NCwgNDUsIDI0NywgNzAsIDQ0LCA0NSwgMjQ2LCAxMzUsIDQ0LCA0NSwgCi0gICAgMjQ3LCA2LCA0NCwgNDUsIDI0NiwgMTk4LCA0NCwgNDUsIDI0NywgNjksIDQ0LCA0NSwgMjQ2LCAxMDMsIDQ0LCA0NSwgMjQ2LCAKLSAgICAyMzAsIDQ0LCA0NSwgMjQ2LCAxNjYsIDQ0LCA0NSwgMjQ3LCAzNywgNDQsIDQ1LCAyNDYsIDEzNCwgNDQsIDQ1LCAyNDcsIDUsIAotICAgIDQ0LCA0NSwgMjQ2LCAxOTcsIDQ0LCA0NSwgMjQ3LCA2OCwgNDQsIDQ1LCAyNDYsIDg3LCA0NCwgNDUsIDI0NiwgMjE0LCA0NCwgCi0gICAgNDUsIDI0NiwgMTUwLCA0NCwgNDUsIDI0NywgMjEsIDQ0LCA0NSwgMjQ2LCAxMTgsIDQ0LCA0NSwgMjQ2LCAyNDUsIDQ0LCAKLSAgICA0NSwgMjQ2LCAxODEsIDQ0LCA0NSwgMjQ3LCA1MiwgNDQsIDQ1LCAyNDYsIDEwMiwgNDQsIDQ1LCAyNDYsIDIyOSwgNDQsIAotICAgIDQ1LCAyNDYsIDE2NSwgNDQsIDQ1LCAyNDcsIDM2LCA0NCwgNDUsIDI0NiwgMTMzLCA0NCwgNDUsIDI0NywgNCwgNDQsIDQ1LCAKLSAgICAyNDYsIDE5NiwgNDQsIDQ1LCAyNDcsIDY3LCA0NCwgNDUsIDI0NiwgNzksIDQ0LCA0NSwgMjQ2LCAyMDYsIDQ0LCA0NSwgCi0gICAgMjQ2LCAxNDIsIDQ0LCA0NSwgMjQ3LCAxMywgNDQsIDQ1LCAyNDYsIDExMCwgNDQsIDQ1LCAyNDYsIDIzNywgNDQsIDQ1LCAKLSAgICAyNDYsIDE3MywgNDQsIDQ1LCAyNDcsIDQ0LCA0NCwgNDUsIDI0NiwgOTQsIDQ0LCA0NSwgMjQ2LCAyMjEsIDQ0LCA0NSwgCi0gICAgMjQ2LCAxNTcsIDQ0LCA0NSwgMjQ3LCAyOCwgNDQsIDQ1LCAyNDYsIDEyNSwgNDQsIDQ1LCAyNDYsIDI1MiwgNDQsIDQ1LCAKLSAgICAyNDYsIDE4OCwgNDQsIDQ1LCAyNDcsIDU5LCA0NCwgNDUsIDI0NiwgODYsIDQ0LCA0NSwgMjQ2LCAyMTMsIDQ0LCA0NSwgCi0gICAgMjQ2LCAxNDksIDQ0LCA0NSwgMjQ3LCAyMCwgNDQsIDQ1LCAyNDYsIDExNywgNDQsIDQ1LCAyNDYsIDI0NCwgNDQsIDQ1LCAKLSAgICAyNDYsIDE4MCwgNDQsIDQ1LCAyNDcsIDUxLCA0NCwgNDUsIDI0NiwgMTAxLCA0NCwgNDUsIDI0NiwgMjI4LCA0NCwgNDUsIAotICAgIDI0NiwgMTY0LCA0NCwgNDUsIDI0NywgMzUsIDQ0LCA0NSwgMjQ2LCAxMzIsIDQ0LCA0NSwgMjQ3LCAzLCA0NCwgNDUsIDI0NiwgCi0gICAgMTk1LCA0NCwgNDUsIDI0NywgNjYsIDQ0LCA0NSwgMjQ2LCA3NSwgNDQsIDQ1LCAyNDYsIDIwMiwgNDQsIDQ1LCAyNDYsIAotICAgIDEzOCwgNDQsIDQ1LCAyNDcsIDksIDQ0LCA0NSwgMjQ2LCAxMDYsIDQ0LCA0NSwgMjQ2LCAyMzMsIDQ0LCA0NSwgMjQ2LCAKLSAgICAxNjksIDQ0LCA0NSwgMjQ3LCA0MCwgNDQsIDQ1LCAyNDYsIDkwLCA0NCwgNDUsIDI0NiwgMjE3LCA0NCwgNDUsIDI0NiwgCi0gICAgMTUzLCA0NCwgNDUsIDI0NywgMjQsIDQ0LCA0NSwgMjQ2LCAxMjEsIDQ0LCA0NSwgMjQ2LCAyNDgsIDQ0LCA0NSwgMjQ2LCAKLSAgICAxODQsIDQ0LCA0NSwgMjQ3LCA1NSwgNDQsIDQ1LCAyNDYsIDgyLCA0NCwgNDUsIDI0NiwgMjA5LCA0NCwgNDUsIDI0NiwgCi0gICAgMTQ1LCA0NCwgNDUsIDI0NywgMTYsIDQ0LCA0NSwgMjQ2LCAxMTMsIDQ0LCA0NSwgMjQ2LCAyNDAsIDQ0LCA0NSwgMjQ2LCAKLSAgICAxNzYsIDQ0LCA0NSwgMjQ3LCA0NywgNDQsIDQ1LCAyNDYsIDk3LCA0NCwgNDUsIDI0NiwgMjI0LCA0NCwgNDUsIDI0NiwgCi0gICAgMTYwLCA0NCwgNDUsIDI0NywgMzEsIDQ0LCA0NSwgMjQ2LCAxMjgsIDQ0LCA0NSwgMjQ2LCAyNTUsIDQ0LCA0NSwgMjQ2LCAKLSAgICAxOTEsIDQ0LCA0NSwgMjQ3LCA2MiwgNDQsIDQ1LCAyNDYsIDc4LCA0NCwgNDUsIDI0NiwgMjA1LCA0NCwgNDUsIDI0NiwgCi0gICAgMTQxLCA0NCwgNDUsIDI0NywgMTIsIDQ0LCA0NSwgMjQ2LCAxMDksIDQ0LCA0NSwgMjQ2LCAyMzYsIDQ0LCA0NSwgMjQ2LCAKLSAgICAxNzIsIDQ0LCA0NSwgMjQ3LCA0MywgNDQsIDQ1LCAyNDYsIDkzLCA0NCwgNDUsIDI0NiwgMjIwLCA0NCwgNDUsIDI0NiwgCi0gICAgMTU2LCA0NCwgNDUsIDI0NywgMjcsIDQ0LCA0NSwgMjQ2LCAxMjQsIDQ0LCA0NSwgMjQ2LCAyNTEsIDQ0LCA0NSwgMjQ2LCAKLSAgICAxODcsIDQ0LCA0NSwgMjQ3LCA1OCwgNDQsIDQ1LCAyNDYsIDg1LCA0NCwgNDUsIDI0NiwgMjEyLCA0NCwgNDUsIDI0NiwgCi0gICAgMTQ4LCA0NCwgNDUsIDI0NywgMTksIDQ0LCA0NSwgMjQ2LCAxMTYsIDQ0LCA0NSwgMjQ2LCAyNDMsIDQ0LCA0NSwgMjQ2LCAKLSAgICAxNzksIDQ0LCA0NSwgMjQ3LCA1MCwgNDQsIDQ1LCAyNDYsIDEwMCwgNDQsIDQ1LCAyNDYsIDIyNywgNDQsIDQ1LCAyNDYsIAotICAgIDE2MywgNDQsIDQ1LCAyNDcsIDM0LCA0NCwgNDUsIDI0NiwgMTMxLCA0NCwgNDUsIDI0NywgMiwgNDQsIDQ1LCAyNDYsIDE5NCwgCi0gICAgNDQsIDQ1LCAyNDcsIDY1LCA0NCwgNDUsIDI0NiwgNzMsIDQ0LCA0NSwgMjQ2LCAyMDAsIDQ0LCA0NSwgMjQ2LCAxMzYsIDQ0LCAKLSAgICA0NSwgMjQ3LCA3LCA0NCwgNDUsIDI0NiwgMTA0LCA0NCwgNDUsIDI0NiwgMjMxLCA0NCwgNDUsIDI0NiwgMTY3LCA0NCwgNDUsIAotICAgIDI0NywgMzgsIDQ0LCA0NSwgMjQ2LCA4OCwgNDQsIDQ1LCAyNDYsIDIxNSwgNDQsIDQ1LCAyNDYsIDE1MSwgNDQsIDQ1LCAKLSAgICAyNDcsIDIyLCA0NCwgNDUsIDI0NiwgMTE5LCA0NCwgNDUsIDI0NiwgMjQ2LCA0NCwgNDUsIDI0NiwgMTgyLCA0NCwgNDUsIAotICAgIDI0NywgNTMsIDQ0LCA0NSwgMjQ2LCA4MCwgNDQsIDQ1LCAyNDYsIDIwNywgNDQsIDQ1LCAyNDYsIDE0MywgNDQsIDQ1LCAKLSAgICAyNDcsIDE0LCA0NCwgNDUsIDI0NiwgMTExLCA0NCwgNDUsIDI0NiwgMjM4LCA0NCwgNDUsIDI0NiwgMTc0LCA0NCwgNDUsIAotICAgIDI0NywgNDUsIDQ0LCA0NSwgMjQ2LCA5NSwgNDQsIDQ1LCAyNDYsIDIyMiwgNDQsIDQ1LCAyNDYsIDE1OCwgNDQsIDQ1LCAKLSAgICAyNDcsIDI5LCA0NCwgNDUsIDI0NiwgMTI2LCA0NCwgNDUsIDI0NiwgMjUzLCA0NCwgNDUsIDI0NiwgMTg5LCA0NCwgNDUsIAotICAgIDI0NywgNjAsIDQ0LCA0NSwgMjQ2LCA3NiwgNDQsIDQ1LCAyNDYsIDIwMywgNDQsIDQ1LCAyNDYsIDEzOSwgNDQsIDQ1LCAKLSAgICAyNDcsIDEwLCA0NCwgNDUsIDI0NiwgMTA3LCA0NCwgNDUsIDI0NiwgMjM0LCA0NCwgNDUsIDI0NiwgMTcwLCA0NCwgNDUsIAotICAgIDI0NywgNDEsIDQ0LCA0NSwgMjQ2LCA5MSwgNDQsIDQ1LCAyNDYsIDIxOCwgNDQsIDQ1LCAyNDYsIDE1NCwgNDQsIDQ1LCAKLSAgICAyNDcsIDI1LCA0NCwgNDUsIDI0NiwgMTIyLCA0NCwgNDUsIDI0NiwgMjQ5LCA0NCwgNDUsIDI0NiwgMTg1LCA0NCwgNDUsIAotICAgIDI0NywgNTYsIDQ0LCA0NSwgMjQ2LCA4MywgNDQsIDQ1LCAyNDYsIDIxMCwgNDQsIDQ1LCAyNDYsIDE0NiwgNDQsIDQ1LCAKLSAgICAyNDcsIDE3LCA0NCwgNDUsIDI0NiwgMTE0LCA0NCwgNDUsIDI0NiwgMjQxLCA0NCwgNDUsIDI0NiwgMTc3LCA0NCwgNDUsIAotICAgIDI0NywgNDgsIDQ0LCA0NSwgMjQ2LCA5OCwgNDQsIDQ1LCAyNDYsIDIyNSwgNDQsIDQ1LCAyNDYsIDE2MSwgNDQsIDQ1LCAKLSAgICAyNDcsIDMyLCA0NCwgNDUsIDI0NiwgMTI5LCA0NCwgNDUsIDI0NywgMCwgNDQsIDQ1LCAyNDYsIDE5MiwgNDQsIDQ1LCAyNDcsIAotICAgIDYzLCA0NCwgNDUsIDI0NiwgNzQsIDQ0LCA0NSwgMjQ2LCAyMDEsIDQ0LCA0NSwgMjQ2LCAxMzcsIDQ0LCA0NSwgMjQ3LCA4LCAKLSAgICA0NCwgNDUsIDI0NiwgMTA1LCA0NCwgNDUsIDI0NiwgMjMyLCA0NCwgNDUsIDI0NiwgMTY4LCA0NCwgNDUsIDI0NywgMzksIAotICAgIDQ0LCA0NSwgMjQ2LCA4OSwgNDQsIDQ1LCAyNDYsIDIxNiwgNDQsIDQ1LCAyNDYsIDE1MiwgNDQsIDQ1LCAyNDcsIDIzLCA0NCwgCi0gICAgNDUsIDI0NiwgMTIwLCA0NCwgNDUsIDI0NiwgMjQ3LCA0NCwgNDUsIDI0NiwgMTgzLCA0NCwgNDUsIDI0NywgNTQsIDQ0LCAKLSAgICA0NSwgMjQ2LCA4MSwgNDQsIDQ1LCAyNDYsIDIwOCwgNDQsIDQ1LCAyNDYsIDE0NCwgNDQsIDQ1LCAyNDcsIDE1LCA0NCwgNDUsIAotICAgIDI0NiwgMTEyLCA0NCwgNDUsIDI0NiwgMjM5LCA0NCwgNDUsIDI0NiwgMTc1LCA0NCwgNDUsIDI0NywgNDYsIDQ0LCA0NSwgCi0gICAgMjQ2LCA5NiwgNDQsIDQ1LCAyNDYsIDIyMywgNDQsIDQ1LCAyNDYsIDE1OSwgNDQsIDQ1LCAyNDcsIDMwLCA0NCwgNDUsIAotICAgIDI0NiwgMTI3LCA0NCwgNDUsIDI0NiwgMjU0LCA0NCwgNDUsIDI0NiwgMTkwLCA0NCwgNDUsIDI0NywgNjEsIDQ0LCA0NSwgCi0gICAgMjQ2LCA3NywgNDQsIDQ1LCAyNDYsIDIwNCwgNDQsIDQ1LCAyNDYsIDE0MCwgNDQsIDQ1LCAyNDcsIDExLCA0NCwgNDUsIAotICAgIDI0NiwgMTA4LCA0NCwgNDUsIDI0NiwgMjM1LCA0NCwgNDUsIDI0NiwgMTcxLCA0NCwgNDUsIDI0NywgNDIsIDQ0LCA0NSwgCi0gICAgMjQ2LCA5MiwgNDQsIDQ1LCAyNDYsIDIxOSwgNDQsIDQ1LCAyNDYsIDE1NSwgNDQsIDQ1LCAyNDcsIDI2LCA0NCwgNDUsIAotICAgIDI0NiwgMTIzLCA0NCwgNDUsIDI0NiwgMjUwLCA0NCwgNDUsIDI0NiwgMTg2LCA0NCwgNDUsIDI0NywgNTcsIDQ0LCA0NSwgCi0gICAgMjQ2LCA4NCwgNDQsIDQ1LCAyNDYsIDIxMSwgNDQsIDQ1LCAyNDYsIDE0NywgNDQsIDQ1LCAyNDcsIDE4LCA0NCwgNDUsIAotICAgIDI0NiwgMTE1LCA0NCwgNDUsIDI0NiwgMjQyLCA0NCwgNDUsIDI0NiwgMTc4LCA0NCwgNDUsIDI0NywgNDksIDQ0LCA0NSwgCi0gICAgMjQ2LCA5OSwgNDQsIDQ1LCAyNDYsIDIyNiwgNDQsIDQ1LCAyNDYsIDE2MiwgNDQsIDQ1LCAyNDcsIDMzLCA0NCwgNDUsIAotICAgIDI0NiwgMTMwLCA0NCwgNDUsIDI0NywgMSwgNDQsIDQ1LCAyNDYsIDE5MywgNDQsIDQ1LCAyNDcsIDY0LCA5NSwgMjE2LCAyNCwgCi0gICAgNzYsIDIsIDcxLCA5MCwgOTUsIDIxNiwgMjQsIDc2LCAyLCA1MSwgNzEsIDkwLCAxMzIsIDUxLCA3NiwgMiwgNzEsIDkwLCAKLSAgICA5NSwgNTEsIDc2LCAyLCA3MSwgOTAsIDQyLCA0NiwgNTEsIDc2LCAyLCA3MSwgOTAsIDk1LCAyMTYsIDI0LCA3NiwgMjQzLCAKLSAgICAyMTMsIDEzNCwgMTMyLCA1MSwgNzYsIDI0MywgMjEzLCAxMzQsIDk1LCA1MSwgNzYsIDI0MywgMjEzLCAxMzQsIDI0NiwgNTgsIAotICAgIDc2LCAyLCAxOTksIDkwLCAyMTUsIDEyNCwgNzYsIDIsIDE5OSwgOTAsIDIxNSwgMTI0LCAyMTYsIDE2OSwgNjgsIDI0NiwgCi0gICAgNTgsIDIxNiwgMTY5LCA2OCwgMTMyLCA1MSwgMjQ4LCAxMDIsIDY4LCA5NSwgNTEsIDI0OCwgMTAyLCA2OCwgMTMyLCAyMTYsIAotICAgIDE2OSwgMjQ4LCAxMDIsIDY4LCA5NSwgMjE2LCAxNjksIDI0OCwgMTAyLCA2OCwgOTUsIDIxNiwgMjQsIDIxNiwgMTY5LCAKLSAgICAyNDgsIDEwMiwgNjgsIDk1LCA3NiwgMiwgMjQ2LCA3MiwgMjE5LCA3OSwgMjE1LCAxMjQsIDc2LCAyMTEsIDIxMSwgMTM0LCAKLSAgICAyNDYsIDU4LCA3NiwgMjExLCAyMTEsIDEzNCwgOTUsIDc2LCAyLCAyMTgsIDI4LCAyLCA3MSwgOTAsIDk1LCA3NiwgMiwgCi0gICAgMjE4LCAyOCwgMiwgNTEsIDcxLCA5MCwgOTUsIDIxNiwgMjQsIDc2LCAyLCAyMTgsIDI3LCA5NSwgMjE2LCAyNCwgNzYsIDIsIAotICAgIDIxOCwgMjgsIDIsIDcxLCA5MCwgOTUsIDIxNiwgMjQsIDc2LCAyLCAyMTgsIDI4LCAyLCA1MSwgNzEsIDkwLCAxMzIsIDI1MywgCi0gICAgMTY2LCA5NSwgMjUzLCAxNjYsIDEzMiwgNTEsIDI1MywgMTY2LCA5NSwgNTEsIDI1MywgMTY2LCAxMzIsIDc2LCAyMTEsIAotICAgIDIxMSwgODMsIDI0NywgMjAwLCA5NSwgNzYsIDIxMSwgMjExLCA4MywgMjQ3LCAyMDAsIDEzMiwgNzYsIDI0MywgMjEzLCAKLSAgICAyNTIsIDYwLCAyMTEsIDIxMSwgODMsIDI0NywgMjAwLCA5NSwgNzYsIDI0MywgMjEzLCAyNTIsIDYwLCAyMTEsIDIxMSwgODMsIAotICAgIDI0NywgMjAwLCAyMjgsIDE2NywgMjEzLCAyNTAsIDI0LCAyMTksIDIxNSwgMjQ1LCAxNzYsIDY4LCAyMjgsIDE2NywgMjQ1LCAKLSAgICAxNzYsIDI0LCAyMTksIDIxNSwgMjEzLCAyNTAsIDY4LCAyMjgsIDE2NywgMjEzLCAyNTAsIDc2LCAyLCAxMDEsIDIyOCwgCi0gICAgMTY3LCAyNDUsIDE3NiwgNzYsIDIsIDEwMSwgMjE5LCAyMTUsIDI0NSwgMTc2LCA3NiwgMiwgMTAxLCAyMTksIDIxNSwgMjEzLCAKLSAgICAyNTAsIDc2LCAyLCAxMDEsIDIyOCwgMTY3LCAyMTMsIDI1MCwgNzYsIDI0LCAyMjgsIDE2NywgMjQ1LCAxNzYsIDY4LCAyMjgsIAotICAgIDE2NywgMjQ1LCAxNzYsIDc2LCAyNCwgMjE5LCAyMTUsIDI0NSwgMTc2LCA2OCwgMjE5LCAyMTUsIDI0NSwgMTc2LCA3NiwgCi0gICAgMjQsIDIxOSwgMjE1LCAyMTMsIDI1MCwgNjgsIDIxOSwgMjE1LCAyMTMsIDI1MCwgNzYsIDI0LCAyMjgsIDE2NywgMjEzLCAKLSAgICAyNTAsIDY4LCAyMjMsIDEyNSwgMjQ3LCAyMDcsIDI0OSwgNjUsIDI0NCwgMTQzLCAyNDcsIDIwNiwgMjQ0LCAxNDMsIDI0NywgCi0gICAgMjA3LCAyNDksIDY1LCAyMjMsIDEyNSwgMjQ3LCAyMDYsIDIxOSwgMjE1LCAyNDUsIDE3NiwgNzYsIDI0OSwgNjUsIDIyOCwgCi0gICAgMTY3LCAyNDUsIDE3NiwgNjgsIDIyOCwgMTY3LCAyNDUsIDE3NiwgNzYsIDI0OSwgNjUsIDIxOSwgMjE1LCAyNDUsIDE3NiwgCi0gICAgNjgsIDI0NCwgMTQzLCAyNDcsIDIwNywgMjQ5LCA2NSwgMjI4LCAxNjcsIDI0NSwgMTc2LCA2OCwgMjIzLCAxMjUsIDI0NywgCi0gICAgMjA3LCAyNDksIDY1LCAyMTksIDIxNSwgMjQ1LCAxNzYsIDY4LCAyMjgsIDE2NywgMjQ1LCAxNzYsIDc2LCAyNDksIDY1LCAKLSAgICAyMjgsIDE2NywgMjEzLCAyNTAsIDY4LCAyMjgsIDE2NywgMjEzLCAyNTAsIDc2LCAyNDksIDY1LCAyMjgsIDE2NywgMjQ1LCAKLSAgICAxNzYsIDY4LCAyMTQsIDIwLCA3NiwgMjI1LCAxNDEsIDI0NywgMTQ3LCAyMjMsIDE0OCwgNzYsIDIyNSwgMTQxLCA5NSwgCi0gICAgMjE3LCAxNDEsIDI0OSwgMzIsIDIxNSwgMTIzLCA3NiwgMjI1LCAxNDEsIDk1LCAyMTcsIDE0MSwgMjQ5LCAzMiwgMjQ2LCAKLSAgICA1NywgNzYsIDIyNSwgMTQxLCAyNDYsIDU4LCAyMTcsIDE0MSwgMjQ5LCAzMiwgMjMzLCA2MSwgNzYsIDIyNSwgMTQxLCAyNDYsIAotICAgIDU4LCAyMTcsIDE0MSwgMjQ5LCAzMiwgMjIzLCAxMzgsIDIyMywgMTQxLCAyNTMsIDE5NiwgMjQ5LCAxOTUsIDY4LCAyMzMsIAotICAgIDY0LCAyNTMsIDE5NiwgMjUzLCAyNTUsIDY4LCAyMTYsIDIyNywgMjUzLCAxOTYsIDI1MywgMjU1LCA2OCwgMjUxLCAxMDEsIAotICAgIDI1MywgMTk2LCAyNTMsIDI1NSwgNjgsIDIxNiwgMjI3LCAyNTMsIDE5NiwgMjQ5LCAxOTUsIDc2LCAyLCAyMzAsIDI1MCwgCi0gICAgMjE2LCAyMjcsIDI1MywgMTk2LCAyNTMsIDI1NSwgNzYsIDIsIDIyNSwgMTU2LCAyMzIsIDE2MywgNDYsIDIyMSwgNzIsIAotICAgIDI0OSwgMTk1LCA2OCwgMjMyLCAxNjMsIDQyLCAyMjEsIDcyLCAyNTMsIDI1NSwgNjgsIDI1MywgMjU1LCAyNDksIDE5MywgCi0gICAgMjQ5LCAyMjksIDY4LCAyNDksIDE5NSwgMjQ5LCAxOTMsIDI0OSwgMjI5LCA2OCwgOTUsIDc2LCA3OCwgMjIwLCAxNzUsIAotICAgIDEzMiwgNjgsIDEzMiwgNzYsIDc4LCAyMjAsIDE3NSwgOTUsIDY4LCAyMjAsIDE3NSwgOTUsIDc2LCA3OCwgMTMyLCA2OCwgCi0gICAgOTUsIDc2LCAyLCA5NCwgNTUsIDEzMiwgNzYsIDIsIDk0LCA1NSwgOTUsIDc2LCAyMTcsIDkzLCAyMTMsIDE2NiwgNDIsIDQ2LCAKLSAgICA3NiwgMjE3LCA5MywgMywgMjQ5LCAyMjgsIDIxNSwgMTI0LCAyMTYsIDI0LCA3NiwgMjQzLCAyMTMsIDMsIDI0OSwgMjI4LCAKLSAgICA0MiwgMjA2LCAxMTQsIDQ2LCAyMDYsIDExOSwgMjQxLCAyMzcsIDQyLCAyMDYsIDExOSwgNDYsIDIwNiwgMTE0LCAyNDEsIAotICAgIDIzNywgMTE0LCAyMDYsIDQ2LCAxMTksIDIwNiwgNDIsIDI0MSwgMjM3LCAxMTQsIDIwNiwgNDIsIDExOSwgMjA2LCA0NiwgCi0gICAgMjQxLCAyMzcsIDQyLCAyMDYsIDExNCwgNDYsIDIwNiwgMTE0LCAyNDEsIDIzNywgMTE0LCAyMDYsIDQ2LCAxMTksIDIwNiwgCi0gICAgNDYsIDI0MSwgMjM3LCA0MiwgMjA2LCAxMTksIDQ2LCAyMDYsIDExOSwgMjQxLCAyMzcsIDExNCwgMjA2LCA0MiwgMTE5LCAKLSAgICAyMDYsIDQyLCAyNDEsIDIzNywgMTMyLCAyNDEsIDIzOCwgMiwgMjA2LCAxMTQsIDIxMSwgMjExLCAxMzQsIDk1LCAyNDEsIAotICAgIDIzOCwgMiwgMjA2LCAxMTQsIDIxMSwgMjExLCAxMzQsIDIxNSwgMTI0LCAyNDEsIDIzOCwgMiwgMjA2LCA0NiwgMjExLCAKLSAgICAyMTEsIDEzNCwgMjQ2LCA1OCwgMjQxLCAyMzgsIDIsIDIwNiwgNDYsIDIxMSwgMjExLCAxMzQsIDEzMiwgMjQxLCAyMzgsIDIsIAotICAgIDIwNiwgMTE5LCAyMTEsIDIxMSwgMTM0LCA5NSwgMjQxLCAyMzgsIDIsIDIwNiwgMTE5LCAyMTEsIDIxMSwgMTM0LCAyMTUsIAotICAgIDEyNCwgMjQxLCAyMzgsIDIsIDIwNiwgNDIsIDIxMSwgMjExLCAxMzQsIDI0NiwgNTgsIDI0MSwgMjM4LCAyLCAyMDYsIDQyLCAKLSAgICAyMTEsIDIxMSwgMTM0LCAxMzIsIDI0MSwgMjM4LCAyLCAyMDYsIDExNCwgMjQzLCAyMTMsIDEzNCwgOTUsIDI0MSwgMjM4LCAKLSAgICAyLCAyMDYsIDExNCwgMjQzLCAyMTMsIDEzNCwgMjE1LCAxMjQsIDI0MSwgMjM4LCAyLCAyMDYsIDQ2LCAyNDMsIDIxMywgCi0gICAgMTM0LCAyNDYsIDU4LCAyNDEsIDIzOCwgMiwgMjA2LCA0NiwgMjQzLCAyMTMsIDEzNCwgMTMyLCAyNDEsIDIzOCwgMiwgMjA2LCAKLSAgICAxMTksIDI0MywgMjEzLCAxMzQsIDk1LCAyNDEsIDIzOCwgMiwgMjA2LCAxMTksIDI0MywgMjEzLCAxMzQsIDIxNSwgMTI0LCAKLSAgICAyNDEsIDIzOCwgMiwgMjA2LCA0MiwgMjQzLCAyMTMsIDEzNCwgMjQ2LCA1OCwgMjQxLCAyMzgsIDIsIDIwNiwgNDIsIDI0MywgCi0gICAgMjEzLCAxMzQsIDEzMiwgMjQxLCAyMzgsIDIsIDIwNiwgMTE0LCA3OCwgMTMyLCAyNDEsIDIzOCwgMiwgMjA2LCAyNDYsIDYwLCAKLSAgICAyMTUsIDEyNCwgMjQxLCAyMzgsIDIsIDIwNiwgNDIsIDI1MSwgMjA3LCAyMTUsIDEyNCwgMjQxLCAyMzgsIDIsIDIwNiwgCi0gICAgMjIzLCAxNDgsIDk1LCAyNDEsIDIzOCwgMiwgMjA2LCAxMTQsIDc4LCA5NSwgMjQxLCAyMzgsIDIsIDIwNiwgMjQ2LCA2MCwgCi0gICAgMjQ2LCA1OCwgMjQxLCAyMzgsIDIsIDIwNiwgNDIsIDI1MSwgMjA3LCAyNDYsIDU4LCAyNDEsIDIzOCwgMiwgMjA2LCAyMjMsIAotICAgIDE0OCwgMTMyLCAyNDEsIDIzOCwgMiwgMjA2LCAxMTQsIDc4LCA5NSwgMjQxLCAyMzgsIDIsIDIwNiwgMjE1LCAxMzQsIDEzMiwgCi0gICAgMjQxLCAyMzgsIDIsIDIwNiwgMTE5LCA3OCwgOTUsIDI0MSwgMjM4LCAyLCAyMDYsIDI0NiwgNjAsIDk1LCAyNDEsIDIzOCwgCi0gICAgMiwgMjA2LCAxMTQsIDc4LCAxMzIsIDI0MSwgMjM4LCAyLCAyMDYsIDIxNSwgMTM0LCA5NSwgMjQxLCAyMzgsIDIsIDIwNiwgCi0gICAgMTE5LCA3OCwgMTMyLCAyNDEsIDIzOCwgMiwgMjA2LCAyNDYsIDYwLCAxMzIsIDI0MSwgMjM4LCAyLCAyMDYsIDExNCwgNzgsIAotICAgIDE4NCwgMjQ4LCAxMDEsIDEzMiwgMjQxLCAyMzgsIDIsIDIwNiwgMTE5LCAyNTEsIDIyMCwgMTg0LCAyNDgsIDEwMSwgOTUsIAotICAgIDI0MSwgMjM4LCAyLCAyMDYsIDExNCwgNzgsIDE4NCwgMjQ4LCAxMDEsIDk1LCAyNDEsIDIzOCwgMiwgMjA2LCAxMTksIDI1MSwgCi0gICAgMjIwLCAxODQsIDI0OCwgMTAxLCAyMTUsIDEyNCwgMjQxLCAyMzgsIDIsIDIwNiwgNDIsIDI1MSwgMjA3LCAyNDYsIDU4LCAKLSAgICAyNDEsIDIzOCwgMiwgMjA2LCAyMjMsIDE0OCwgMjQ2LCA1OCwgMjQxLCAyMzgsIDIsIDIwNiwgNDIsIDI1MSwgMjA3LCAyMTUsIAotICAgIDEyNCwgMjQxLCAyMzgsIDIsIDIwNiwgMjIzLCAxNDgsIDQ2LCA1MSwgNzYsIDIsIDIyMywgODUsIDI0MSwgMjE5LCAyNDUsIAotICAgIDYxLCA1LCA3OCwgOTUsIDY4LCAyMTcsIDQzLCAyMjcsIDM0LCA3OCwgOTUsIDY4LCAxMzIsIDc2LCA3OCwgMjE3LCA0MywgCi0gICAgMjI3LCAzMywgOTUsIDc2LCA3OCwgMjE3LCA0MywgMjI3LCAzMywgOTUsIDc2LCA3OCwgMjU0LCA1NywgMTIzLCAxMDgsIAotICAgIDIzMywgMzksIDc4LCAxMzIsIDY4LCAxMzIsIDc2LCAyMTcsIDkzLCAyMzMsIDM4LCAyNDIsIDEwNywgNzgsIDk1LCA2OCwgCi0gICAgMjE5LCA5LCA3OCwgOTUsIDY4LCAxMzIsIDc2LCAyMTcsIDkzLCAyMTksIDgsIDIxOCwgMjIyLCA3OCwgMTMyLCA2OCwgNDIsIAotICAgIDI0NCwgNjAsIDIxOCwgMjcsIDQ2LCAyNDQsIDYwLCAyMTgsIDI3LCAxMTQsIDI0NCwgNjAsIDIxOCwgMjcsIDExOSwgMjQ0LCAKLSAgICA2MCwgMjE4LCAyNywgMjE2LCAxNjksIDcxLCAyNTIsIDYwLCAyNDgsIDExLCAyMTIsIDE1MywgMTc0LCAyMTksIDE3NCwgCi0gICAgMjEyLCAxNTMsIDE3NCwgMjE2LCAxNSwgMjQ5LCAxNjQsIDQyLCA2NywgMjQ5LCA0MCwgMTI1LCA0NiwgNjcsIDI0OSwgNDAsIAotICAgIDEyNSwgNDIsIDY3LCAyMjYsIDEzMSwgNDYsIDY3LCAyMjYsIDEzMSwgMjEyLCAxNTMsIDE3NCwgNDIsIDIzNiwgMTAsIDEyNSwgCi0gICAgMjEyLCAxNTMsIDE3NCwgNDYsIDIzNiwgMTAsIDEyNSwgMjEyLCAxNTMsIDE3NCwgNDIsIDI1MSwgMTY1LCAxMjUsIDIxMiwgCi0gICAgMTUzLCAxNzQsIDQ2LCAyNTEsIDE2NSwgMTI1LCA0MiwgNDEsIDI1MSwgODUsIDIsIDIxNSwgMTUzLCA0NiwgNDEsIDI1MSwgCi0gICAgODUsIDIsIDIxNSwgMTUzLCA0MiwgNDEsIDI1MSwgODUsIDIsIDIxNywgNjksIDIzNSwgMjUyLCAyMTYsIDIyNywgMjQ5LCAKLSAgICA5OSwgNDYsIDQxLCAyNTEsIDg1LCAyLCAyMTcsIDY5LCAyMzUsIDI1MiwgMjUxLCAxMDEsIDI0OSwgOTksIDQyLCA0MSwgCi0gICAgMjUxLCA4NSwgMiwgMjE3LCA2OSwgMjM1LCAyNTIsIDI1MSwgMTAxLCAyNDksIDk5LCA0NiwgNDEsIDI1MSwgODUsIDIsIAotICAgIDIxNywgNjksIDIzNSwgMjUyLCAyMTYsIDIyNywgMjQ5LCA5OSwgNDIsIDI1NCwgMTksIDI1MSwgODUsIDIsIDI0NywgNzQsIAotICAgIDQ2LCAyNTQsIDE5LCAyNTEsIDg1LCAyLCAyNDcsIDc0LCA0MiwgMjUzLCAxOTYsIDIzMywgMzksIDEyNSwgNDYsIDI1MywgCi0gICAgMTk2LCAyNDIsIDEwNywgMTI1LCA1MSwgNDIsIDI1MywgMTk2LCAyNDIsIDEwNywgMTI1LCA1MSwgNDYsIDI1MywgMTk2LCAKLSAgICAyMzMsIDM5LCAxMjUsIDQyLCA4MywgMjE2LCAyMTksIDIyMCwgMjMzLCAxMjUsIDQ2LCA4MywgMjE2LCAyMTksIDIyMCwgCi0gICAgMjMzLCAxMjUsIDI0NiwgNzIsIDI0NCwgMTA0LCA3MSwgMjEyLCAyOCwgMjMyLCAyNDIsIDIzMSwgMTUzLCAyNTQsIDE5LCAKLSAgICAyMjcsIDM1LCAyMzMsIDcwLCA0NiwgMjU0LCAxOSwgMjE0LCAyNDQsIDIsIDIxOSwgMTY2LCAyMzEsIDE1MywgNDYsIDI1NCwgCi0gICAgMTksIDIsIDI0NywgNzQsIDI1NCwgMTksIDIsIDIyMywgNCwgMjM1LCAyMTIsIDI1NCwgMTY0LCAyNTQsIDE4LCAyMTksIAotICAgIDE4NywgMjU0LCAxOSwgMjI3LCAzNSwgMjMzLCA3MCwgMjE5LCAxODcsIDI1NCwgMTksIDIyNywgMzUsIDIxNSwgMTM0LCAKLSAgICAyMTYsIDU4LCAyNTQsIDE4LCAyMjMsIDIwMiwgMjU0LCAxOCwgMjU0LCAxOSwgMiwgMjE1LCAxNTMsIDIyMywgMjAyLCAyNTQsIAotICAgIDE5LCAyLCAyMTUsIDE1MywgMjI3LCAxMTIsIDI1NCwgMTksIDIyNywgMzUsIDIxNSwgMTM0LCAyMjcsIDExMiwgMjU0LCAxOSwgCi0gICAgMjI3LCAzNSwgMjQ2LCA2MCwgMjMxLCAxNTMsIDI1NCwgMTksIDIsIDIyNywgNDAsIDI1MywgMTc2LCAyNDUsIDk4LCAyMzUsIAotICAgIDI1MiwgNzYsIDIyNSwgMTQxLCAxMTQsIDI0LCAyMjMsIDE0OCwgMjMxLCAxNTMsIDI1NCwgMTksIDIsIDIyNywgNDAsIDI1MywgCi0gICAgMTc2LCAyNDUsIDk4LCAyMzUsIDI1MiwgNzYsIDIyNSwgMTQxLCAxMTQsIDI0LCAyMzMsIDcwLCAyMzEsIDE1MywgMjU0LCAKLSAgICAxOSwgMiwgMjI3LCA0MCwgMjUzLCAxNzYsIDI0NSwgOTgsIDIzNSwgMjUyLCA3NiwgMjI1LCAxNDEsIDExOSwgMjQsIDIyMywgCi0gICAgMTQ4LCAyMzEsIDE1MywgMjU0LCAxOSwgMiwgMjI3LCA0MCwgMjUzLCAxNzYsIDI0NSwgOTgsIDIzNSwgMjUyLCA3NiwgMjI1LCAKLSAgICAxNDEsIDExOSwgMjQsIDIzMywgNzAsIDIzMSwgMTUzLCAyNTQsIDE5LCAyLCAyMjcsIDQwLCAyNTMsIDE3NiwgMjQ1LCA5OCwgCi0gICAgMjM1LCAyNTIsIDc2LCAyMjUsIDE0MSwgNDYsIDI0LCAyMTUsIDEzNCwgMjMxLCAxNTMsIDI1NCwgMTksIDIsIDIyNywgNDAsIAotICAgIDI1MywgMTc2LCAyNDUsIDk4LCAyMzUsIDI1MiwgNzYsIDIyNSwgMTQxLCA0MiwgMjQsIDIxNSwgMTM0LCAyMzEsIDE1MywgCi0gICAgMjU0LCAxOSwgMiwgMjI3LCA0MCwgMjUzLCAxNzYsIDI0NSwgOTgsIDIzNSwgMjUyLCA3NiwgMjI1LCAxNDEsIDQ2LCAyNCwgCi0gICAgMjQ2LCA2MCwgMjMxLCAxNTMsIDI1NCwgMTksIDIsIDIyNywgNDAsIDI1MywgMTc2LCAyNDUsIDk4LCAyMzUsIDI1MiwgNzYsIAotICAgIDIyNSwgMTQxLCA0MiwgMjQsIDI0NiwgNjAsIDIyMywgMjAyLCAyNDUsIDExMCwgMjIxLCA0OCwgMjQ1LCAxMTAsIDIyMSwgCi0gICAgNDksIDIsIDIyNiwgMjQ3LCAyNDUsIDExMCwgMjIxLCA0OSwgMiwgMywgMjQ5LCAyMjksIDQ5LCAyNDUsIDExMCwgMjIxLCAKLSAgICA0OSwgMiwgNDYsIDc2LCA0OSwgMjQ1LCAxMTAsIDIyMSwgNDksIDIsIDQyLCA3NiwgNDksIDI0OSwgMjI5LCAyLCAxOTksIAotICAgIDEzNCwgMzYsIDcxLCAxMzQsIDM2LCAyMjYsIDEzNSwgMzYsIDIyMywgMjAzLCAyMTksIDIzMSwgMzYsIDIyNiwgNDcsIDI0OSwgCi0gICAgMjI5LCAyNDcsIDEyNSwgMjUxLCA3LCAxOTksIDI1MiwgNjAsIDI0LCAyMTYsIDIyNywgMTUxLCAyNDcsIDEyNSwgMjUxLCA3LCAKLSAgICA3MSwgMTM0LCAyNDksIDIyOSwgMiwgMjE4LCAyMjQsIDIxMywgMTY2LCAzNiwgMjUzLCAyNTQsIDI0NywgMTIxLCA1MiwgCi0gICAgMTE0LCA3NiwgMjE3LCA5MywgMjQ5LCAyMjgsIDM2LCA2NywgMjUxLCA0MiwgMzYsIDI1MSwgNDIsIDM2LCAyMzMsIDM4LCAKLSAgICAzNiwgMjQyLCAxMDYsIDI0OSwgMjI5LCAyLCAzLCAyNDksIDIyOSwgMjExLCAyMTEsIDIxNywgMTQ5LCAyMjMsIDE0OCwgCi0gICAgMjQ5LCAyMjksIDIsIDExNywgMTk5LCAyMTksIDMzLCAyMTEsIDIxMSwgMjE3LCAxNDksIDIyMywgMTQ4LCA5MSwgMjIzLCAKLSAgICAxMjUsIDI0NywgMjA3LCAyMjAsIDIzLCA5MSwgMjQ0LCAxNDMsIDI0NywgMjA3LCAyMjAsIDIzLCA5MSwgMjUzLCAxMzIsIAotICAgIDkxLCAzLCAyNDksIDIyOCwgOTEsIDIxOSwgMTY2LCAxMTcsIDIzNSwgNjgsIDIxOSwgMTY0LCAyMTYsIDE4NCwgMiwgNjIsIAotICAgIDQ5LCAyMTYsIDE4NCwgMiwgMjE1LCAxNTMsIDIyMywgNCwgMjM1LCAyNTIsIDIxNiwgMTgzLCAyMTYsIDE4NCwgMiwgMjIxLCAKLSAgICA1NSwgMjUzLCAxMjMsIDI1MSwgMTAwLCA0NiwgMjE2LCAxODQsIDc4LCA0MiwgMjE2LCAxODMsIDQyLCAyMTYsIDE4NCwgCi0gICAgMjUxLCAyMDcsIDcxLCAxMzQsIDcxLCAyNTIsIDYwLCAyNTEsIDIwNywgNDYsIDIxNiwgMTgzLCAyNTEsIDkxLCAyLCA0MiwgCi0gICAgMTUxLCAyNTEsIDE0NCwgMjUxLCA5MSwgMiwgNDYsIDE1MSwgMjUxLCAxNDQsIDgzLCAyNTEsIDkwLCAyOSwgMiwgNDIsIAotICAgIDE1MSwgMjUxLCAxNDQsIDI5LCAyLCA0NiwgMTUxLCAyNTEsIDE0NCwgNjcsIDI0MCwgMjIzLCA4MywgMjQwLCAyMjMsIDQyLCAKLSAgICAyMTMsIDIyOSwgMjQ0LCAxMDQsIDQ2LCAyMTMsIDIyOSwgMjQ0LCAxMDQsIDQyLCA1MSwgMjEzLCAyMjksIDI0NCwgMTA0LCAKLSAgICA0NiwgNTEsIDIxMywgMjI5LCAyNDQsIDEwNCwgMjM1LCAyNDQsIDIzNSwgMjMxLCAyMTcsIDY2LCAxMTAsIDIzNSwgMjMxLCAKLSAgICAyMzUsIDIzMiwgMjI5LCAxODMsIDIsIDcxLCAxMzQsIDI0NiwgNjYsIDIzMCwgMTU3LCA0MSwgMiwgMjQ5LCAxMjAsIDIyNiwgCi0gICAgMjUxLCAyMzUsIDI0MiwgMjUzLCAxNTIsIDIyMCwgMTQ0LCAyMjUsIDYzLCAyNDUsIDYxLCA1LCAyNCwgMjIwLCAyNSwgMjI2LCAKLSAgICAxMzUsIDI0NSwgNjEsIDUsIDI0LCAyMjAsIDI1LCAyMjYsIDEzNiwgMiwgMjE3LCA0MywgNDksIDI0MCwgOTcsIDIxMSwgCi0gICAgMjExLCAyNCwgMjIwLCAyNSwgMjI2LCAxMzUsIDI0MiwgMTU5LCAyMTksIDk0LCAyMTcsIDEzOCwgMjQ2LCA1OSwgMjE2LCAKLSAgICAxODQsIDIsIDQyLCAxNTEsIDI1MSwgMTQ0LCAyNDYsIDU5LCAyMTYsIDE4NCwgMiwgNDYsIDE1MSwgMjUxLCAxNDQsIDgzLCAKLSAgICAyNDcsIDIwMSwgMiwgMTE5LCA2OCwgODMsIDIzMiwgMTU5LCA2NywgMjQ5LCAyMjksIDIsIDExOSwgNjgsIDgzLCAyNDksIAotICAgIDIyOSwgMiwgMTE5LCA2OCwgMjQ1LCA0OCwgNjcsIDIxOSwgMTY2LCAyNDUsIDQ4LCA4MywgMjE5LCAxNjYsIDI0NSwgNDgsIAotICAgIDY3LCAyNDcsIDIwMCwgMjQ1LCA0OCwgODMsIDI0NywgMjAwLCAyNDUsIDQ4LCA2NywgMjQ5LCAyMjgsIDI0NSwgNDgsIDgzLCAKLSAgICAyNDksIDIyOCwgMjIzLCA0MywgMjIzLCAyMDMsIDIxOSwgMjMyLCAyMjcsIDMzLCAyMTksIDIzMiwgMiwgMjI2LCAyNDcsIAotICAgIDIyMywgMjAzLCAyMTksIDIzMiwgMiwgMTk5LCA5MCwgMjUxLCAxNzIsIDIxOSwgMjMxLCAyNTEsIDE3MiwgMjIzLCAyMDMsIAotICAgIDIxOSwgMjMxLCA1MSwgMjI1LCAxNTYsIDIxNiwgMTY5LCAyMjUsIDE1NiwgMjMzLCA2NiwgMjQ5LCAzMywgMjU0LCAxOSwgCi0gICAgMTI1LCAyMjMsIDE0NCwgMjQ5LCAzMywgMjU0LCAxOSwgMTI1LCAyMTcsIDMxLCAyMzAsIDI0OCwgMjMwLCA5NywgMzYsIDYyLCAKLSAgICAyMjcsIDMzLCAyMzAsIDk3LCAzNiwgOTQsIDIyNywgMzMsIDIzMCwgOTcsIDM2LCAyOSwgMjI3LCAzMywgMjMwLCA5NywgCi0gICAgMjE1LCAxNDcsIDIyNywgMzQsIDIsIDI0NywgNzQsIDIzMCwgOTcsIDIxNSwgMTQ3LCAyMjcsIDM0LCAyLCAyMjUsIDE1NiwgCi0gICAgMjMwLCA5NywgNDEsIDIzNSwgMTk2LCAyMjcsIDMzLCAyMzAsIDk3LCA0MSwgMjE1LCAxNDcsIDIyNywgMzMsIDExNywgMjMyLCAKLSAgICAxOTksIDI0LCAyMjcsIDMzLCAxMTcsIDIzMiwgMTk5LCAxNjcsIDIyNywgMzMsIDIzMCwgOTcsIDI5LCAyMjcsIDMzLCAyMzAsIAotICAgIDIyNCwgMTE3LCAyMTgsIDI0NCwgMjE4LCAyNDIsIDIsIDIzNSwgMjA4LCAyMjQsIDE2OSwgMjM1LCAyMDksIDIyNywgMzMsIAotICAgIDI0NCwgNjgsIDIyNiwgMTI3LCAyMzUsIDIwOCwgMjM1LCAyMDksIDIsIDUxLCA5MCwgMjM1LCAyMDksIDI1MywgODksIDIsIAotICAgIDIyMCwgMjMsIDI0OSwgMjI1LCAyNDMsIDE5NywgMjUzLCAyNTUsIDIzNSwgMjA2LCAyMzIsIDI0MywgMjM1LCAyMDcsIDIsIAotICAgIDIyNCwgOCwgMjI2LCAxMTAsIDI1MywgMTczLCAyMjUsIDEzNSwgMjMyLCAyNDMsIDIzNSwgMjA3LCAyLCAyMjEsIDcyLCAKLSAgICAyMjYsIDExMCwgMjUzLCAxNzMsIDIyNSwgMTM1LCAyMzIsIDI0MywgMjM1LCAyMDcsIDIyOCwgMTYzLCAyMzUsIDI0NiwgCi0gICAgMjE3LCAxNDksIDIyNSwgMTM1LCAyMzUsIDIwOSwgMjUzLCAxNzMsIDExOCwgMjI1LCAxNDUsIDIyNywgMzMsIDIyNCwgMTYzLCAKLSAgICAyMzUsIDIwOSwgMjI3LCAzMywgMjM1LCAyMDksIDIsIDEzMiwgNzYsIDIsIDEwMSwgMjM1LCAyMDksIDIsIDI5LCA1MiwgCi0gICAgMjM1LCAyMDksIDIsIDIzNSwgMTk1LCAyMzUsIDIwOSwgMiwgMjE1LCAxNDYsIDIzNSwgMjA5LCAyLCAyMjYsIDI0NywgMjM1LCAKLSAgICAyMDksIDIsIDIxNSwgMTUzLCAyMzUsIDY5LCAyMzMsIDEwOCwgNDIsIDIxNiwgMTg0LCAyMjcsIDMzLCAyMTIsIDE1MywgCi0gICAgMTc0LCAyMjIsIDExOSwgMjQ5LCAxNDgsIDIxMiwgMTUzLCAxNzQsIDIyMiwgMTE5LCAyMjUsIDE4OCwgMjEyLCAxNTMsIAotICAgIDE3NCwgMjIyLCAxMTksIDIyNSwgNjAsIDk0LCA1LCAyLCAzLCAyNDksIDIyOSwgNDksIDk0LCA1LCAyLCAyNDksIDIyNCwgCi0gICAgMjU0LCAxNzUsIDQ5LCA5NCwgNSwgMiwgMjE3LCA0MywgNDksIDk0LCA1LCAyLCA2MiwgNTUsIDk0LCA1LCAyLCAyMTcsIDQzLCAKLSAgICA1NSwgOTQsIDUsIDIsIDIxOSwgMTAsIDEwOSwgOTQsIDUsIDIsIDgzLCAyMTYsIDE4MywgMjMwLCAyNTEsIDUsIDIsIDI0OSwgCi0gICAgMTU4LCA0OSwgMjMwLCAyNTEsIDUsIDIsIDYyLCA1NSwgMjMwLCAyNTEsIDUsIDIsIDI0NCwgMTQzLCAyNDcsIDcyLCAyMzAsIAotICAgIDI1MSwgNSwgMiwgMjIzLCAxMjUsIDI0NywgNzIsIDk0LCA1LCAyMzUsIDI1MiwgNDIsIDE1MSwgMjQ5LCAyMjgsIDk0LCA1LCAKLSAgICAyMzUsIDI1MiwgNDYsIDE1MSwgMjQ5LCAyMjgsIDIxNCwgMjMxLCAxNjcsIDI0OSwgNzEsIDIyNSwgNjMsIDIzMCwgMTU0LCAKLSAgICA1LCAyLCA2MiwgNDksIDIzMCwgMTU0LCA1LCAyLCAyMTUsIDE1MywgMjIxLCA2OSwgMjI1LCA2NCwgMiwgMjUxLCAxMDEsIAotICAgIDI0OSwgMTkyLCAyMjAsIDUsIDIyNSwgNjMsIDIzMCwgMTU0LCA1LCAyMzUsIDI1MiwgNDIsIDE1MSwgMjQ5LCAyMjgsIDIzMCwgCi0gICAgMTU0LCA1LCAyMzUsIDI1MiwgNDYsIDE1MSwgMjQ5LCAyMjgsIDM2LCAyMzAsIDE1NCwgNSwgMiwgMjQ5LCAyMjQsIDI1NCwgCi0gICAgMTc0LCAyMzAsIDE1NCwgNSwgMjM1LCAyNTIsIDUxLCAyNDksIDIyOCwgMzYsIDI0NywgMTIxLCA1MiwgOTQsIDUsIDIzNSwgCi0gICAgMjUyLCAyMTYsIDE4MywgMjMwLCAyNTEsIDUsIDIzNSwgMjUyLCAyMTYsIDE4MywgMjMwLCAxNTQsIDUsIDIzNSwgMjUyLCAKLSAgICAyMTYsIDE4MywgMjM1LCAyMDMsIDIyNSwgNjMsIDIyMywgMTM5LCAyMzUsIDIwMywgMjI1LCA2MywgMjEyLCAxNTMsIDE3NCwgCi0gICAgMjIzLCAyNDAsIDI0OSwgMTQ4LCAyNTQsIDQzLCAxNjcsIDI0OSwgMTA0LCAyMzUsIDE5NiwgMiwgMjQ3LCA3NCwgMjE1LCAKLSAgICAxNDcsIDIsIDIzMCwgMjUxLCA1MiwgMjE1LCAxNDcsIDIsIDIyNiwgMjQ3LCAyMzUsIDE5NiwgMiwgMjI2LCAyNDcsIDIzNSwgCi0gICAgMTk2LCAyLCAyMzIsIDE5OSwgMjU0LCAyNywgMjE1LCAxNDcsIDIsIDIzMiwgMTk5LCAyMjcsIDI0LCAyMTUsIDE0NywgNzgsIAotICAgIDIzNSwgMTk1LCAyMzUsIDE5NiwgNzgsIDIxNSwgMTQ2LCAyMTUsIDE0NywgNzgsIDI1MiwgNjAsIDc4LCAyMzUsIDE5NSwgCi0gICAgMjM1LCAxOTYsIDc4LCAyNTIsIDYwLCA3OCwgMjE1LCAxNDYsIDIxNSwgMTQ3LCAyNTEsIDIwNywgMjQsIDIzNSwgNjgsIDIsIAotICAgIDIxNSwgMTQ2LCAyMzUsIDE5NiwgMjUxLCAyMDcsIDI0LCAyMzUsIDY4LCAyLCAyMzUsIDE5NSwgMjQ5LCAxOTMsIDIxNSwgCi0gICAgMTQ3LCAyLCAyMjEsIDU0LCAyNDksIDE5MywgMjM1LCAxOTYsIDIsIDIyMSwgNTQsIDUxLCA0MSwgMjM1LCAxOTUsIDUxLCAKLSAgICA0MSwgMjE1LCAxNDYsIDI0OSwgMTkzLCAyMTUsIDE0NywgMiwgMjIxLCA1NSwgMjQsIDIyMCwgNSwgMjI1LCA2MywgMjMyLCAKLSAgICAxOTksIDI0LCAyLCA2MiwgNDksIDIzMiwgMTk5LCAxNjcsIDIsIDYyLCA0OSwgNTEsIDIzMiwgMTk5LCAyNTQsIDI3LCA1MSwgCi0gICAgMjMyLCAxOTksIDIyNywgMjQsIDExNywgMjM1LCAxOTcsIDIzMiwgMTk5LCAyNTQsIDI3LCAxMTcsIDIzNSwgMTk3LCAyMzIsIAotICAgIDE5OSwgMjI3LCAyNCwgMjIwLCAxMywgMjMzLCAxMDgsIDIyNywgMjQsIDIyMCwgMTMsIDIzMywgMTA4LCAyNTQsIDI3LCAKLSAgICAyMzIsIDE5OSwgMTY3LCAyMjYsIDI0NSwgMjMyLCAxOTksIDI1NCwgMjcsIDIzMiwgMTk5LCAyNCwgMiwgMjMxLCAzNywgCi0gICAgMjE5LCA3OSwgMjMyLCAxOTksIDE2NywgMiwgMjMxLCAzNywgMjE5LCA3OSwgMjMyLCAxOTksIDI0LCAyLCAxOTksIDI0OCwgCi0gICAgMTAxLCAyMzIsIDE5OSwgMTY3LCAyLCAxOTksIDI0OCwgMTAxLCAyMzIsIDE5OSwgMjQsIDIsIDUxLCAyMjYsIDI0NywgMjMyLCAKLSAgICAxOTksIDI0LCAyLCAyMTUsIDE1MywgMjMyLCAxOTksIDI0LCAyLCA1MSwgMjE1LCAxNTMsIDMsIDIxNCwgMjI4LCAyLCAyMTUsIAotICAgIDE1MywgMjMyLCAxOTksIDE2NywgMiwgNTEsIDIyNiwgMjQ3LCAyMzIsIDE5OSwgMTY3LCAyLCA1MSwgMjE1LCAxNTMsIDIxMiwgCi0gICAgMTUzLCAxNzQsIDI0NywgODMsIDI1MywgMjQ2LCAyMTIsIDE1MywgMTc0LCAyMjQsIDQwLCAyNTMsIDI0NiwgMjQ1LCA2MSwgCi0gICAgNSwgMiwgNjIsIDU1LCAyNDAsIDk3LCAyLCA2MiwgNDksIDIxNiwgMTY5LCAxOTksIDI1MiwgNjAsIDIsIDUxLCA3MSwgOTAsIAotICAgIDIxNiwgMTY5LCAxOTksIDI1MiwgNjAsIDIsIDIxNiwgMTY5LCA3MSwgOTAsIDIxNywgNDMsIDIyNywgMzQsIDIsIDYyLCA0OSwgCi0gICAgMjE3LCA0MywgMjI3LCAzNCwgMiwgMjIzLCAxMjUsIDI0NywgNzIsIDIyMCwgODgsIDIzMCwgMjUxLCAyMjAsIDg3LCAyNDksIAotICAgIDEzOSwgMiwgNjIsIDQ5LCAyNDUsIDYxLCAyLCAyNTMsIDEzMiwgMjU0LCA1NywgMTIzLCAyMTEsIDIxMSwgMiwgMjQ5LCAKLSAgICAyMjQsIDI1NCwgMTc0LCAyNTMsIDIxOCwgMTIzLCAxNjcsIDEyMywgMTA4LCAyNDUsIDYxLCA1LCA3OCwgOTQsIDUyLCA5NCwgCi0gICAgNSwgNzgsIDI0NSwgNjEsIDUyLCAyNDUsIDYxLCA1LCA3OCwgMjE3LCA0MywgMjI3LCAzMywgNTEsIDI0OSwgMTY1LCAyNDUsIAotICAgIDYyLCAxMTcsIDI0OSwgMTM0LCAyNDUsIDYxLCAyMjAsIDEwMiwgMTMzLCAyNDksIDEzNCwgMjQ1LCA2MSwgMjIwLCAxMDIsIAotICAgIDI0NSwgNjEsIDUsIDIsIDExNywgMTc2LCA3OCwgMjQsIDExNywgMTc2LCA1NSwgMjQ1LCA1NywgMiwgMjQzLCAyMzcsIDE3NiwgCi0gICAgNDksIDIzMywgMzksIDIsIDI0OSwgMjI5LCAyMzUsIDIxMiwgMjQyLCAxMDcsIDIsIDI0OSwgMjI5LCAyMzUsIDIxMiwgMjMzLCAKLSAgICAzOSwgMiwgMjI0LCAxNTgsIDE1MiwgNDksIDI0MiwgMTA3LCAyLCAyMjQsIDE1OCwgMTUyLCA0OSwgMjMzLCAzOSwgMTY3LCAKLSAgICAyMjAsIDI1LCAxMjMsIDEwOCwgMjQyLCAxMDcsIDE2NywgMjIwLCAyNSwgMTIzLCAxMDgsIDIzMywgMzksIDE2NywgMjIwLCAKLSAgICAyNSwgMTIzLCAyMTEsIDIxMSwgMiwgNjIsIDIzNSwgMjEyLCAyNDIsIDEwNywgMTY3LCAyMjAsIDI1LCAxMjMsIDIxMSwgCi0gICAgMjExLCAyLCA2MiwgMjM1LCAyMTIsIDIzMywgMzksIDE2NywgMjIwLCAyNSwgMTIzLCAyMTEsIDIxMSwgMiwgNjIsIDQ5LCAKLSAgICAyNDIsIDEwNywgMTY3LCAyMjAsIDI1LCAxMjMsIDIxMSwgMjExLCAyLCA2MiwgNDksIDIzMywgMzksIDE2NywgMjIwLCAyNSwgCi0gICAgMTIzLCAyMTEsIDIxMSwgMiwgNjIsIDc4LCAyMjMsIDE0OCwgMjQyLCAxMDcsIDE2NywgMjIwLCAyNSwgMTIzLCAyMTEsIAotICAgIDIxMSwgMiwgNjIsIDc4LCAyMzMsIDcwLCAyMzMsIDM5LCAxNjcsIDI1MywgMjE5LCAyNDIsIDEwNywgMTY3LCAyNTMsIDIxOSwgCi0gICAgMjMzLCAzOSwgMjQsIDIyMCwgNzksIDIyOCwgMTYzLCAxMjMsIDEwOCwgMjQyLCAxMDcsIDI0LCAyMjAsIDc5LCAyMjgsIAotICAgIDE2MywgMTIzLCAxMDgsIDIzMywgMzksIDI0LCAyMjgsIDE2MywgMjUzLCAyMTksIDI0MiwgMTA3LCAyNCwgMjI4LCAxNjMsIAotICAgIDI1MywgMjE5LCAyMzMsIDM5LCA3OCwgMjQ2LCA2NSwgMTIzLCA3OCwgMjQyLCAxMDYsIDI0MiwgMTA3LCA3OCwgMjQ2LCA2NSwgCi0gICAgMTIzLCA3OCwgMjMzLCAzOCwgMjMzLCAzOSwgNzgsIDIyMCwgODgsIDE2NywgMjQ1LCA2MiwgMjQyLCAxMDcsIDc4LCAyMjAsIAotICAgIDg4LCAxNjcsIDI0NSwgNjIsIDIzMywgMzksIDc4LCAyMjAsIDg4LCA3OCwgMjQyLCAxMDYsIDI0MiwgMTA3LCA3OCwgMjIwLCAKLSAgICA4OCwgNzgsIDIzMywgMzgsIDIzMywgMzksIDc4LCAyNDIsIDEwNywgNzgsIDI0NiwgNjUsIDI0NSwgNjIsIDI0MiwgMTA3LCAKLSAgICA3OCwgMjMzLCAzOSwgNzgsIDI0NiwgNjUsIDI0NSwgNjIsIDIzMywgMzksIDc4LCAyMjAsIDI1LCAxMjMsIDc4LCAyNDIsIAotICAgIDEwNywgNzgsIDIyMCwgMjUsIDI0NSwgNjIsIDI0MiwgMTA3LCA3OCwgMjIwLCAyNSwgMTIzLCA3OCwgMjMzLCAzOSwgNzgsIAotICAgIDIyMCwgMjUsIDI0NSwgNjIsIDIyMCwgMjUsIDEyMywgMjExLCAyMTEsIDE2NywgMjMzLCAzOCwgMjIwLCAyNSwgMTIzLCAKLSAgICAyMTEsIDIxMSwgMTY3LCAyNDIsIDEwNiwgMjIwLCAyNSwgMTIzLCAyMTEsIDIxMSwgMTY3LCAyMzMsIDM5LCAyLCA2MiwgCi0gICAgMjM1LCAyMTIsIDIyMCwgMjUsIDEyMywgMjExLCAyMTEsIDE2NywgMjQyLCAxMDcsIDIsIDYyLCAyMzUsIDIxMiwgMjQ2LCAKLSAgICA2NSwgMTIzLCAyMTEsIDIxMSwgMTY3LCAyMzMsIDM4LCAyNDYsIDY1LCAxMjMsIDIxMSwgMjExLCAxNjcsIDI0MiwgMTA2LCAKLSAgICAyNDYsIDY1LCAyMjAsIDI1LCAxMjMsIDIxMSwgMjExLCAxNjcsIDIzMywgMzgsIDI0NiwgNjUsIDIyMCwgMjUsIDEyMywgCi0gICAgMjExLCAyMTEsIDE2NywgMjQyLCAxMDYsIDIyMCwgODgsIDE2NywgMjMzLCAzOCwgMjIwLCA4OCwgMTY3LCAyNDIsIDEwNiwgCi0gICAgMjIwLCA4OCwgNzgsIDIzMywgMzksIDc4LCAyNDUsIDYxLCA1MiwgMjIwLCA4OCwgNzgsIDI0MiwgMTA3LCA3OCwgMjQ1LCAKLSAgICA2MSwgNTIsIDUxLCAyMjksIDE3MywgMjMzLCAzOCwgNTEsIDIyOSwgMTczLCAyNDIsIDEwNiwgNTEsIDIyOSwgMTczLCAyMzMsIAotICAgIDM5LCAyLCAyMTUsIDE1MywgMjQyLCAxMDcsIDIyNiwgMjQ1LCAyMzMsIDM4LCAyNDIsIDEwNywgMjUxLCAyMDcsIDIzMywgCi0gICAgMzgsIDIzMywgMzksIDI0OSwgMTkzLCAyNTEsIDcsIDI0OSwgMzQsIDI0MiwgMTA3LCAyNDksIDE5MywgMjUxLCA3LCAyNDksIAotICAgIDM0LCAyMzMsIDM5LCAyNDksIDE5MywgMjUxLCA3LCAyNDksIDM1LCA3OCwgMjIwLCAyNSwgMjQ1LCA2MiwgMjQyLCAxMDcsIAotICAgIDI0OSwgMTkzLCAyNTEsIDcsIDI0OSwgMzUsIDc4LCAyMjAsIDI1LCAyNDUsIDYyLCAyMjAsIDYsIDIxNywgMTUzLCAyMzMsIAotICAgIDEwNiwgMjE3LCAxNTMsIDIyMCwgNiwgMjE3LCAxNTQsIDE2NywgMTIzLCAxMDgsIDIzMywgMTA2LCAyMTcsIDE1NCwgMTY3LCAKLSAgICAxMjMsIDEwOCwgMjQ1LCA2MSwgNSwgMiwgMjUxLCAzNywgNDksIDIyNSwgODMsIDc4LCAyMjAsIDc5LCAyNDUsIDYxLCA1MiwgCi0gICAgMjE5LCAxLCA3OCwgMjIwLCA3OSwgMjQ1LCA2MSwgNTIsIDIyNSwgODMsIDc4LCAyMjAsIDc5LCAyMjgsIDE2MywgMTIzLCAKLSAgICAxMDgsIDIxOSwgMSwgNzgsIDIyMCwgNzksIDIyOCwgMTYzLCAxMjMsIDEwOCwgMjI1LCA4MywgNzgsIDI0NSwgNjEsIDUyLCAKLSAgICAyMTksIDEsIDc4LCAyNDUsIDYxLCA1MiwgMjI1LCA4MywgNzgsIDIyOCwgMTYzLCAxMjMsIDEwOCwgMjE5LCAxLCA3OCwgCi0gICAgMjI4LCAxNjMsIDEyMywgMTA4LCAyMjUsIDgzLCA3OCwgMjU0LCA1NywgMTIzLCAxMDgsIDIxOSwgMSwgNzgsIDI1NCwgNTcsIAotICAgIDEyMywgMTA4LCAyMjUsIDgzLCA3OCwgMjI4LCAxNjMsIDI1NCwgNTcsIDEyMywgMTA4LCAyMTksIDEsIDc4LCAyMjgsIDE2MywgCi0gICAgMjU0LCA1NywgMTIzLCAxMDgsIDUxLCAyMjUsIDgyLCA1MSwgMjE5LCAwLCAyMTksIDksIDIsIDI0NywgNzQsIDIxOCwgMjIyLCAKLSAgICAyLCAyNDcsIDc0LCAyMTksIDksIDIsIDk0LCA1LCA1NSwgMjE4LCAyMjIsIDIsIDk0LCA1LCA1NSwgMjE5LCA5LCAyLCAyMzAsIAotICAgIDE1NCwgNSwgNTUsIDIxOCwgMjIyLCAyLCAyMzAsIDE1NCwgNSwgNTUsIDIxOSwgOSwgNjUsIDE2NywgMTIzLCAyMTEsIDIxMSwgCi0gICAgMiwgNjIsIDQ5LCAyMTgsIDIyMiwgNjUsIDE2NywgMTIzLCAyMTEsIDIxMSwgMiwgNjIsIDQ5LCAyMTksIDksIDY1LCA3OCwgCi0gICAgMjQ1LCA2MSwgNTIsIDIxOCwgMjIyLCA2NSwgNzgsIDI0NSwgNjEsIDUyLCAyMTksIDksIDY1LCA3OCwgMjE3LCA0MywgMjI3LCAKLSAgICAzMywgMjE4LCAyMjIsIDY1LCA3OCwgMjE3LCA0MywgMjI3LCAzMywgMjE5LCA5LCA2NSwgNzgsIDI1NCwgNTcsIDEyMywgCi0gICAgMTA4LCAyMTgsIDIyMiwgNjUsIDc4LCAyNTQsIDU3LCAxMjMsIDEwOCwgMjE5LCA5LCA2NSwgNzgsIDIyOCwgMTYzLCAxMjMsIAotICAgIDEwOCwgMjE4LCAyMjIsIDY1LCA3OCwgMjI4LCAxNjMsIDEyMywgMTA4LCA0MSwgNDIsIDIyNywgNDAsIDkyLCAyMjcsIDMzLCAKLSAgICA0MSwgNDYsIDIyNywgNDAsIDkyLCAyMjcsIDMzLCAyNDksIDE5MywgMjE5LCA4LCAyNDksIDE5MywgMjE4LCAyMjEsIDI0OSwgCi0gICAgMTkzLCAyMTksIDksIDE2NywgMTIzLCAxMDgsIDI0OSwgMTkzLCAyMTgsIDIyMiwgMTY3LCAxMjMsIDEwOCwgMjE5LCA5LCAKLSAgICA3OCwgMjE4LCAyMjEsIDIxOCwgMjIyLCA3OCwgMjE5LCA4LCAyMTksIDksIDc4LCAyMTksIDgsIDIxOCwgMjIyLCA3OCwgCi0gICAgMjE4LCAyMjEsIDIxOCwgMjIyLCAyNTEsIDIwNywgMjE5LCA4LCAyMTgsIDIyMiwgMjUxLCAyMDcsIDI0LCAyMzUsIDY4LCAKLSAgICAyNTEsIDcsIDI0OCwgMTAyLCAyLCAyMTksIDgsIDI0NSwgMTI3LCA2NSwgMjI3LCAzNSwgMjQ2LCA1NywgMjI1LCAxODAsIDIsIAotICAgIDIxNywgMjIwLCAyMTYsIDIyNiwgMjE2LCAxOTgsIDIzNSwgMTk1LCAyNDMsIDI0NiwgMjI4LCAxNzYsIDIyMCwgMTc1LCA0MiwgCi0gICAgMjE4LCAzNiwgMjIwLCAxNzUsIDExOSwgMjE4LCAzNiwgMjIwLCAxNzUsIDExNCwgMjE4LCAzNiwgMjI2LCA0OCwgMiwgMTk3LCAKLSAgICA3MSwgMjUyLCA2MCwgMjE2LCAxNjksIDQ2LCAyMTYsIDU3LCA1MSwgNzEsIDI1MiwgNjAsIDQyLCAyMTYsIDU3LCA3MSwgCi0gICAgMjUyLCA2MCwgNTEsIDQyLCAyMTYsIDU3LCA1MSwgNzEsIDI1MiwgNjAsIDUxLCA0MiwgMjE2LCA1NywgMTg0LCAyNDgsIAotICAgIDEwMiwgMjQzLCAyMTMsIDQyLCAyMzEsIDEyNywgNjUsIDUxLCAyMTQsIDIxNiwgMjIwLCAxNzUsIDExOSwgMjE4LCAzNywgMiwgCi0gICAgMjI2LCAyNDcsIDIyMCwgMTc1LCAxMTQsIDIxOCwgMzcsIDIsIDIxNSwgMTUzLCAyMjAsIDE3NSwgMTE0LCAyMTgsIDM3LCAKLSAgICA3OCwgMjIwLCAxNzUsIDExOSwgMjE4LCAzNiwgNTEsIDExOSwgMjE4LCAzNiwgNTEsIDExNCwgMjE4LCAzNiwgNTEsIDIxOSwgCi0gICAgNDUsIDIyOCwgMTYzLCA1MiwgMjIzLCAyMDIsIDUxLCAyMTksIDQ1LCAyMjgsIDE2MywgNTIsIDI0NywgOTIsIDIyOCwgMTYzLCAKLSAgICAyNDcsIDEyNywgMiwgMjIzLCAyMDIsIDIyOSwgMTgyLCAyMjAsIDIzLCA3MSwgMjMyLCAyNDMsIDIsIDI0OSwgMjI5LCA0OSwgCi0gICAgNzEsIDIzMiwgMjQzLCAyLCAyNDksIDIyOSwgNTUsIDExOSwgMjE4LCAzNywgMiwgMjQ5LCAyMjksIDU1LCAyMjYsIDEzNiwgCi0gICAgMiwgMTk5LCA5MCwgMjI2LCAxMzYsIDIsIDIxNywgNDMsIDIyNywgMzMsIDIxNiwgMTY5LCA3MSwgMjUyLCA2MCwgMjUxLCAKLSAgICAxNjcsIDIyMywgMjQxLCAyMTYsIDE2OSwgNzEsIDI1MiwgNjAsIDIsIDE5OSwgOTAsIDIxNiwgMTY5LCAyNDksIDE2NSwgCi0gICAgMjI3LCAzMywgMjE2LCAxNjksIDIyOSwgMTczLCAyMzMsIDM4LCAyMTYsIDE2OSwgMjI5LCAxNzMsIDI0MiwgMTA2LCAyNDYsIAotICAgIDY1LCAyMjAsIDI1LCAyMzMsIDM5LCAxNjcsIDEyMywgMTA4LCAyNDYsIDY1LCAyMjAsIDI1LCAyNDIsIDEwNywgMTY3LCAKLSAgICAxMjMsIDEwOCwgMjE2LCAxNjksIDIxOSwgMjMyLCAyNTEsIDE2NywgMjIzLCAyNDEsIDIzMywgMTA4LCAyMTYsIDE2OSwgNzEsIAotICAgIDI1MiwgNjAsIDIyNywgMzMsIDUxLCAyMTksIDIzMiwgMjI3LCAzMywgNjcsIDcxLCAxMzQsIDIzMCwgOTcsIDY3LCA3MSwgCi0gICAgMTM0LCAyMjgsIDE2NywgMjQ1LCAxNzYsIDY3LCA2OCwgMjI4LCAxNjcsIDIxMywgMjUwLCA2NywgNjgsIDIxOSwgMjE1LCAKLSAgICAyNDUsIDE3NiwgNjcsIDY4LCAyMTksIDIxNSwgMjEzLCAyNTAsIDY3LCA2OCwgNDIsIDQ2LCA2NywgNjgsIDEzMiwgODMsIAotICAgIDY4LCAyMTUsIDEyNCwgODMsIDY4LCAyNDYsIDU4LCA4MywgNjgsIDIyOCwgMTY3LCAyNDUsIDE3NiwgODMsIDY4LCAyMjgsIAotICAgIDE2NywgMjEzLCAyNTAsIDgzLCA2OCwgMjE5LCAyMTUsIDI0NSwgMTc2LCA4MywgNjgsIDIxOSwgMjE1LCAyMTMsIDI1MCwgCi0gICAgODMsIDY4LCA0MiwgNDYsIDgzLCA2OCwgMTE0LCAxMTksIDgzLCA2OCwgOTUsIDc2LCAyLCAyMTcsIDMwLCAyNDYsIDU3LCAKLSAgICA5NSwgNzYsIDIsIDIxNywgMzAsIDIxNSwgMTIzLCAxMzIsIDc2LCAyLCAyMTcsIDMwLCAyNDYsIDU3LCAxMzIsIDc2LCAyLCAKLSAgICAyMTcsIDMwLCAyMTUsIDEyMywgNDEsIDIsIDIxNiwgMjI3LCAxNTEsIDI1MSwgMTQ0LCA0MSwgMiwgMjUxLCAxMDEsIDE1MSwgCi0gICAgMjUxLCAxNDQsIDQxLCAyLCAyMTUsIDEzMSwgNDYsIDI0NywgMjA3LCAxNTEsIDI1MSwgMTQ0LCA0MSwgMiwgMjMyLCAxNjMsIAotICAgIDQyLCAyNDcsIDIwNywgMTUxLCAyNTEsIDE0NCwgMjQ3LCAyMDEsIDIsIDQyLCAxNTEsIDI1MSwgMTQ0LCAyNDcsIDIwMSwgMiwgCi0gICAgNDYsIDE1MSwgMjUxLCAxNDQsIDI0NywgMjAxLCAyLCAyMTYsIDIyNywgMTUxLCAyNTEsIDE0NCwgMjQ3LCAyMDEsIDIsIAotICAgIDI1MSwgMTAxLCAxNTEsIDI1MSwgMTQ0LCAyNDYsIDcyLCAyMTksIDE2NiwgODMsIDIzMywgMTA4LCAyMTksIDE2NiwgNjcsIAotICAgIDIzMywgMTA4LCAyMTksIDE2NiwgODMsIDIxNCwgMTY0LCAzLCAyMTksIDE2NiwgNjcsIDIxNCwgMTY0LCAzLCAyMTksIDE2NiwgCi0gICAgODMsIDIyNiwgNjUsIDY3LCAyMjYsIDY1LCA2NywgMjQxLCAxNzgsIDgzLCAyNDEsIDE3OCwgMTk5LCA4MywgMjQxLCAxNzgsIAotICAgIDgzLCAyMzMsIDEwOCwgMjQ5LCAyMjgsIDgzLCAyMzEsIDE0NywgMjQ3LCAyMDAsIDY3LCAyMzEsIDE0NywgMjQ3LCAyMDAsIAotICAgIDgzLCAyMzEsIDE0NywgMjMyLCAxNTksIDY3LCAyMzEsIDE0NywgMjMyLCAxNTksIDgzLCAzLCAyNDcsIDIwMCwgODMsIDMsIAotICAgIDIzMiwgMTU5LCA2NywgMywgMjMyLCAxNTksIDgzLCAxOTksIDI0NSwgMTIxLCA2NywgMTk5LCAyNDUsIDEyMSwgODMsIDcxLCAKLSAgICAyNDUsIDEyMSwgNjcsIDcxLCAyNDUsIDEyMSwgNDIsIDc2LCAyLCAzLCAyNDksIDIyOCwgMTMzLCAxMzIsIDI1MywgMTYyLCAKLSAgICA0MiwgNzYsIDIsIDM2LCAyMjUsIDE1NiwgMTg0LCAxMzIsIDIxOSwgMTYyLCA2OCwgMTMyLCAyMTYsIDI0LCA3NiwgMiwgNzEsIAotICAgIDkwLCAxMzIsIDIxNiwgMjQsIDc2LCAyLCA1MSwgNzEsIDkwLCAxMzIsIDIxNiwgMjQsIDc2LCAyNDMsIDIxMywgMTM0LCAKLSAgICAxMzIsIDIxNiwgMjQsIDIxNiwgMTY5LCAyNDgsIDEwMiwgNjgsIDEzMiwgNzYsIDIsIDI0NiwgNzIsIDIxOSwgNzksIDEzMiwgCi0gICAgNzYsIDIsIDIxOCwgMjgsIDIsIDcxLCA5MCwgMTMyLCA3NiwgMiwgMjE4LCAyOCwgMiwgNTEsIDcxLCA5MCwgMTMyLCAyMTYsIAotICAgIDI0LCA3NiwgMiwgMjE4LCAyNywgMTMyLCAyMTYsIDI0LCA3NiwgMiwgMjE4LCAyOCwgMiwgNzEsIDkwLCAxMzIsIDIxNiwgCi0gICAgMjQsIDc2LCAyLCAyMTgsIDI4LCAyLCA1MSwgNzEsIDkwLCAxMzIsIDc2LCAyMTcsIDkzLCAyMTMsIDE2NiwgMjE0LCAyMCwgCi0gICAgNzYsIDIyNSwgMTQxLCAyNDcsIDE0NywgMjMzLCA3MCwgMjQ1LCA2MSwgNSwgNzgsIDEzMiwgNjgsIDIyMywgMjAzLCAyMTcsIAotICAgIDQzLCAyMjcsIDM0LCA3OCwgMTMyLCA2OCwgMTMyLCA3NiwgNzgsIDIyMywgMjAzLCAyNTQsIDU3LCAxMjMsIDEwOCwgOTUsIAotICAgIDc2LCAyMTcsIDkzLCAyNDIsIDEwNiwgOTUsIDc2LCAyMTcsIDkzLCAyMTgsIDIyMSwgMTMyLCAyMjQsIDE2OSwgNjgsIDk1LCAKLSAgICAyMjQsIDE2OSwgNjgsIDIyMywgMjAzLCAyMTcsIDQzLCAyMjcsIDM0LCA3OCwgOTUsIDY4LCA5NSwgNzYsIDc4LCAyMjMsIAotICAgIDIwMywgMjU0LCA1NywgMTIzLCAxMDgsIDIxNywgNDMsIDIyNywgMzQsIDc4LCAxMzIsIDY4LCAxMzIsIDc2LCA3OCwgMjU0LCAKLSAgICA1NywgMTIzLCAxMDgsIDEzMiwgNzYsIDc4LCAyMjMsIDIwMywgMjE3LCA0MywgMjI3LCAzMywgOTUsIDc2LCA3OCwgMjIzLCAKLSAgICAyMDMsIDIxNywgNDMsIDIyNywgMzMsIDY3LCAyMzEsIDE0NywgMjE5LCA5NSwgODMsIDMsIDIxOSwgOTUsIDY3LCAzLCAyMTksIAotICAgIDk1LCA4MywgMjIzLCAxNDQsIDIyNiwgNjUsIDY3LCAyMjMsIDE0NCwgMjI2LCA2NSwgMTA3LCAyMzMsIDEwOCwgMjQ5LCAKLSAgICAyMjgsIDEwNywgMjI2LCAyNDgsIDIsIDIyNiwgMjQ4LCAyMzUsIDIxMiwgMTA3LCAyNDksIDIyOSwgMiwgMjQ5LCAyMjksIAotICAgIDIzNSwgMjEyLCAxMDcsIDI0OSwgMjI4LCAxMDcsIDM2LCAyMjIsIDE2OSwgMTM2LCA2LCAxLCAyNTMsIDc1LCAxMzYsIDYsIAotICAgIDEsIDI1MSwgNDYsIDEzNiwgNiwgMSwgMjE0LCAyMzAsIDEzNiwgNiwgMSwgMjQyLCAxNjEsIDEzNiwgNiwgMSwgMjQ3LCA5NCwgCi0gICAgMTM2LCA2LCAxLCAyMTMsIDEyLCAxMzYsIDYsIDEsIDIxMiwgNjEsIDEzNiwgNiwgMSwgMjQ1LCAyNDUsIDEzNiwgNiwgMSwgCi0gICAgMjEyLCA4NCwgMTM2LCA2LCAxLCAyMzUsIDE0NiwgMTM2LCA2LCAxLCA3MCwgMjM1LCAxNDYsIDEzNiwgNiwgMSwgNzIsIAotICAgIDEzNiwgNiwgMSwgMjQ3LCAxMTIsIDEzNiwgNiwgMSwgMjM0LCAyNDUsIDEzNiwgNiwgMSwgMjMyLCAyMTUsIDEzNiwgNiwgMSwgCi0gICAgMjMwLCAxMDEsIDEzNiwgNiwgMSwgMjMwLCAxMiwgMTM2LCA2LCAxLCAyMjcsIDUxLCAxMzYsIDYsIDEsIDIyNSwgMTM4LCAKLSAgICAxMzYsIDYsIDEsIDIyMywgMTI0LCAxMzYsIDYsIDEsIDIyMCwgMTEsIDEzNiwgNiwgMSwgMjE2LCA0NiwgMTM2LCA2LCAxLCAKLSAgICAyMTUsIDE3MSwgMTM2LCA2LCAxLCAyNDMsIDIxNiwgMTM2LCA2LCAxLCAyNDEsIDE4NCwgMTM2LCA2LCAxLCAyMjcsIDMsIAotICAgIDEzNiwgNiwgMSwgMjI2LCA5NiwgMTM2LCA2LCAxLCAyMjAsIDE1MywgMTM2LCA2LCAxLCAyMTYsIDEyNSwgMTM2LCA2LCAxLCAKLSAgICAyNTAsIDEyLCAxMzYsIDYsIDEsIDIyMSwgMjQsIDEzNiwgNiwgMSwgMjEzLCAxOCwgMTM2LCA2LCAxLCAyMTMsIDIwLCAxMzYsIAotICAgIDYsIDEsIDIxMywgNDcsIDEzNiwgNiwgMSwgMjE5LCAxODUsIDE1OSwgMTM2LCA2LCAxLCAyMTIsIDIwMywgMTM2LCA2LCAxLCAKLSAgICAzLCAyMTIsIDE3NCwgMTM2LCA2LCAxLCAzLCAyMTIsIDE3NSwgMiwgMjE4LCAyNywgMTM2LCA2LCAxLCAyMTIsIDIzNSwgCi0gICAgMTM2LCA2LCAxLCAyMzUsIDE4MiwgMywgMjEyLCAxNzQsIDEzNiwgNiwgMSwgMjUxLCAxNzIsIDIxMiwgMTc0LCAxMzYsIDYsIAotICAgIDEsIDIzNSwgMTgyLCAyNTEsIDE3MiwgMjEyLCAxNzQsIDEzNiwgNiwgMSwgMjQ0LCA1MSwgMTM2LCA2LCAxLCAyMzUsIDE0NCwgCi0gICAgMTM2LCA2LCAxLCAyMjAsIDE1MiwgMTM2LCA2LCAxLCAyMTYsIDE2MCwgNjEsIDEzNiwgNiwgMSwgMjMzLCA5OCwgMjMwLCAKLSAgICAxMDEsIDEzNiwgMywgMSwgMjUzLCA3NSwgMTM2LCAzLCAxLCAyNTEsIDQ2LCAxMzYsIDMsIDEsIDIxNCwgMjMwLCAxMzYsIDMsIAotICAgIDEsIDI0MiwgMTYxLCAxMzYsIDMsIDEsIDI0NywgOTQsIDEzNiwgMywgMSwgMjEzLCAxMiwgMTM2LCAzLCAxLCAyMTIsIDYxLCAKLSAgICAxMzYsIDMsIDEsIDI0NSwgMjQ1LCAxMzYsIDMsIDEsIDIxMiwgODQsIDEzNiwgMywgMSwgMjM1LCAxNDYsIDEzNiwgMywgMSwgCi0gICAgNzAsIDIzNSwgMTQ2LCAxMzYsIDMsIDEsIDcyLCAxMzYsIDMsIDEsIDI0NywgMTEyLCAxMzYsIDMsIDEsIDIzNCwgMjQ1LCAKLSAgICAxMzYsIDMsIDEsIDIzMiwgMjE1LCAxMzYsIDMsIDEsIDIzMCwgMTAxLCAxMzYsIDMsIDEsIDIzMCwgMTIsIDEzNiwgMywgMSwgCi0gICAgMjI3LCA1MSwgMTM2LCAzLCAxLCAyMjUsIDEzOCwgMTM2LCAzLCAxLCAyMjMsIDEyNCwgMTM2LCAzLCAxLCAyMjAsIDExLCAKLSAgICAxMzYsIDMsIDEsIDIxNiwgNDYsIDEzNiwgMywgMSwgMjE1LCAxNzEsIDEzNiwgMywgMSwgMjQzLCAyMTYsIDEzNiwgMywgMSwgCi0gICAgMjQxLCAxODQsIDEzNiwgMywgMSwgMjI3LCAzLCAxMzYsIDMsIDEsIDIyNiwgOTYsIDEzNiwgMywgMSwgMjIwLCAxNTMsIAotICAgIDEzNiwgMywgMSwgMjE2LCAxMjUsIDEzNiwgMywgMSwgMjUwLCAxMiwgMTM2LCAzLCAxLCAyMjEsIDI0LCAxMzYsIDMsIDEsIAotICAgIDIxMywgMTgsIDEzNiwgMywgMSwgMjEzLCAyMCwgMTM2LCAzLCAxLCAyMTMsIDQ3LCAxMzYsIDMsIDEsIDIxOSwgMTg1LCAKLSAgICAxNTksIDEzNiwgMywgMSwgMjEyLCAyMDMsIDEzNiwgMywgMSwgMywgMjEyLCAxNzQsIDEzNiwgMywgMSwgMywgMjEyLCAxNzUsIAotICAgIDIsIDIxOCwgMjcsIDEzNiwgMywgMSwgMjEyLCAyMzUsIDEzNiwgMywgMSwgMjM1LCAxODIsIDMsIDIxMiwgMTc0LCAxMzYsIAotICAgIDMsIDEsIDI1MSwgMTcyLCAyMTIsIDE3NCwgMTM2LCAzLCAxLCAyMzUsIDE4MiwgMjUxLCAxNzIsIDIxMiwgMTc0LCAxMzYsIAotICAgIDMsIDEsIDI0NCwgNTEsIDEzNiwgMywgMSwgMjM1LCAxNDQsIDEzNiwgMywgMSwgMjIwLCAxNTIsIDEzNiwgMywgMSwgMjE2LCAKLSAgICAxNjAsIDYxLCAxMzYsIDMsIDEsIDIzMywgOTgsIDIzMCwgMTAxLCA3LCA2LCAxLCAyMzMsIDE3MSwgMiwgNTEsIDEzNCwgNywgCi0gICAgMywgMSwgMjMzLCAxNzEsIDIsIDUxLCAxMzQsIDcsIDYsIDEsIDIzMywgMTcxLCAyLCAyMzEsIDM3LCAyMTcsIDQyLCA3LCA2LCAKLSAgICAxLCAyMjYsIDIzMCwgMiwgOTAsIDcsIDYsIDEsIDIyNCwgMTEzLCAyLCAyMTgsIDI3LCA3LCAzLCAxLCAxMTgsIDIsIDkwLCAKLSAgICA3LCAzLCAxLCAyMTgsIDEwMCwgMiwgMjQ3LCAyMDcsIDkwLCA3LCA2LCAxLCAyNDIsIDQyLCAyLCAyNDcsIDI0NiwgNywgMywgCi0gICAgMSwgMjQyLCA0MiwgMiwgMjQ3LCAyNDYsIDcsIDYsIDEsIDIzNSwgMjgsIDIsIDI0NywgMjQ2LCA3LCAzLCAxLCAyMzUsIDI4LCAKLSAgICAyLCAyNDcsIDI0NiwgNywgNiwgMSwgMjEyLCAxNTMsIDIsIDI0NywgMjQ2LCA3LCAzLCAxLCAyMTIsIDE1MywgMiwgMjQ3LCAKLSAgICAyNDYsIDcsIDYsIDEsIDI1NCwgNTIsIDcsIDYsIDEsIDIzMiwgMTEwLCAyLCAxMDEsIDcsIDYsIDEsIDIxNiwgNTgsIDYxLCAKLSAgICA3LCA2LCAxLCAyMTYsIDU4LCAyNTQsIDUyLCA3LCAzLCAxLCAyMTUsIDgwLCAyLCA0NiwgMTAxLCA3LCA2LCAxLCAyMTQsIAotICAgIDgzLCAyLCAxMDEsIDcsIDMsIDEsIDIxNCwgODMsIDIsIDEwMSwgNywgMywgMSwgMjE1LCA4MCwgMiwgMjQ5LCA0MSwgNywgNiwgCi0gICAgMSwgMTUxLCAyNDIsIDQxLCA3LCAzLCAxLCAxNTEsIDI0MiwgNDEsIDcsIDMsIDEsIDIxOCwgMjUsIDIyNiwgOSwgNywgMywgCi0gICAgMSwgMTkxLCAyLCAyMjgsIDE2MSwgNywgMywgMSwgMjE2LCA1OCwgMjI0LCAxMTMsIDIsIDIxOCwgMjcsIDcsIDMsIDEsIAotICAgIDE1NywgMiwgMTE1LCAyMjMsIDEzMSwgMjM1LCAyMTIsIDcsIDEsIDMsIDYsIDIxNiwgNTgsIDc0LCA3LCAyMTksIDEwLCAzLCAKLSAgICAxLCAyMzUsIDE0MiwgNTksIDEsIDYsIDIxNSwgNzksIDcsIDYsIDEsIDIyMywgNCwgMiwgMjE4LCAxOTUsIDIxOCwgMjcsIDcsIAotICAgIDYsIDEsIDIxMiwgMTUzLCAyLCAyMTgsIDE5NSwgMjE4LCAyNywgNzksIDYsIDEsIDI1NCwgNzMsIDc5LCAzLCAxLCAyNTQsIAotICAgIDczLCA3OSwgNiwgMSwgMjE0LCAxNTEsIDc5LCAzLCAxLCAyMTQsIDE1MSwgNzksIDYsIDEsIDI0MywgODMsIDc5LCAzLCAxLCAKLSAgICAyNDMsIDgzLCA3OSwgNiwgMSwgMjQ4LCAxMzYsIDc5LCAzLCAxLCAyNDgsIDEzNiwgNzksIDYsIDEsIDI0NSwgMTUxLCA3OSwgCi0gICAgMywgMSwgMjQ1LCAxNTEsIDc5LCA2LCAxLCAyMTksIDIyMCwgNzksIDMsIDEsIDIxOSwgMjIwLCA3OSwgNiwgMSwgMjEyLCAKLSAgICA5NCwgNzksIDMsIDEsIDIxMiwgOTQsIDc5LCA2LCAxLCAyNDEsIDIzMSwgNzksIDMsIDEsIDI0MSwgMjMxLCA3OSwgNiwgMSwgCi0gICAgMjE3LCAxMzAsIDc5LCAzLCAxLCAyMTcsIDEzMCwgNzksIDYsIDEsIDI0MCwgMTA5LCA3OSwgMywgMSwgMjQwLCAxMDksIDc5LCAKLSAgICA2LCAxLCAyMzQsIDIzMiwgNzksIDMsIDEsIDIzNCwgMjMyLCA3OSwgNiwgMSwgMjMzLCA5NiwgNzksIDMsIDEsIDIzMywgOTYsIAotICAgIDc5LCA2LCAxLCAyMzEsIDQyLCA3OSwgMywgMSwgMjMxLCA0MiwgNzksIDYsIDEsIDIyOSwgNjQsIDc5LCAzLCAxLCAyMjksIAotICAgIDY0LCA3OSwgNiwgMSwgMjMzLCAyNDIsIDc5LCAzLCAxLCAyMzMsIDI0MiwgNzksIDYsIDEsIDc1LCA3OSwgMywgMSwgNzUsIAotICAgIDc5LCA2LCAxLCAyMjUsIDI0MCwgNzksIDMsIDEsIDIyNSwgMjQwLCA3OSwgNiwgMSwgMjIzLCAxMTIsIDc5LCAzLCAxLCAKLSAgICAyMjMsIDExMiwgNzksIDYsIDEsIDIyMCwgOTEsIDc5LCAzLCAxLCAyMjAsIDkxLCA3OSwgNiwgMSwgMjE3LCAyNDgsIDc5LCAKLSAgICAzLCAxLCAyMTcsIDI0OCwgNzksIDYsIDEsIDIxNSwgMTk2LCA3OSwgMywgMSwgMjE1LCAxOTYsIDc5LCA2LCAxLCAyNDQsIAotICAgIDkwLCA3OSwgMywgMSwgMjQ0LCA5MCwgNzksIDYsIDEsIDIzNCwgMTE4LCA3OSwgMywgMSwgMjM0LCAxMTgsIDc5LCA2LCAxLCAKLSAgICAyMjUsIDQ2LCA3OSwgMywgMSwgMjI1LCA0NiwgNzksIDYsIDEsIDIyNywgNDQsIDc5LCAzLCAxLCAyMjcsIDQ0LCA3OSwgNiwgCi0gICAgMSwgMjQ3LCAyMDUsIDI1NCwgNzgsIDc5LCAzLCAxLCAyNDcsIDIwNSwgMjU0LCA3OCwgNzksIDYsIDEsIDUzLCA3OSwgMjU0LCAKLSAgICAxMDMsIDc5LCAzLCAxLCA1MywgNzksIDI1NCwgMTAzLCA3OSwgNiwgMSwgMjQ5LCA1NSwgMjQ1LCAxNTEsIDc5LCAzLCAxLCAKLSAgICAyNDksIDU1LCAyNDUsIDE1MSwgNzksIDYsIDEsIDI0NywgMjA1LCAyMzQsIDIzMiwgNzksIDMsIDEsIDI0NywgMjA1LCAyMzQsIAotICAgIDIzMiwgNzksIDYsIDEsIDI0NywgMjA1LCAyMjksIDY0LCA3OSwgMywgMSwgMjQ3LCAyMDUsIDIyOSwgNjQsIDc5LCA2LCAxLCAKLSAgICAyNDksIDU1LCAyMjksIDY0LCA3OSwgMywgMSwgMjQ5LCA1NSwgMjI5LCA2NCwgNzksIDYsIDEsIDUzLCA3OSwgMjI3LCA0NCwgCi0gICAgNzksIDMsIDEsIDUzLCA3OSwgMjI3LCA0NCwgNzksIDYsIDEsIDIyMiwgMTYxLCA3OSwgMywgMSwgMjIyLCAxNjEsIDc5LCA2LCAKLSAgICAxLCAyNDksIDY4LCAyMjAsIDIzNSwgNzksIDMsIDEsIDI0OSwgNjgsIDIyMCwgMjM1LCA3OSwgNiwgMSwgNTMsIDc5LCAyMjAsIAotICAgIDIzNSwgNzksIDMsIDEsIDUzLCA3OSwgMjIwLCAyMzUsIDc5LCA2LCAxLCA1MywgNzksIDI0NSwgNDAsIDc5LCAzLCAxLCA1MywgCi0gICAgNzksIDI0NSwgNDAsIDc5LCA2LCAxLCAyNTQsIDkwLCAyMzQsIDEyMywgNzksIDMsIDEsIDI1NCwgOTAsIDIzNCwgMTIzLCAKLSAgICA3OSwgNiwgMSwgMjQ3LCAyMDUsIDI0MSwgMzIsIDc5LCAzLCAxLCAyNDcsIDIwNSwgMjQxLCAzMiwgNzksIDYsIDEsIDUzLCAKLSAgICA3OSwgMjQxLCAzMiwgNzksIDMsIDEsIDUzLCA3OSwgMjQxLCAzMiwgNzksIDYsIDEsIDUzLCA3OSwgMTU5LCA3OSwgMywgMSwgCi0gICAgNTMsIDc5LCAxNTksIDc5LCA2LCAxLCAyMzMsIDE3MCwgMTU5LCA3OSwgMywgMSwgMjMzLCAxNzAsIDE1OSwgNzksIDYsIDEsIAotICAgIDUzLCA3OSwgMjQxLCAyMDEsIDc5LCAzLCAxLCA1MywgNzksIDI0MSwgMjAxLCA3OSwgNiwgMSwgNTMsIDc5LCAyNDEsIDIzNCwgCi0gICAgNzksIDMsIDEsIDUzLCA3OSwgMjQxLCAyMzQsIDc5LCA2LCAxLCA1MywgNzksIDI0MywgNzgsIDc5LCAzLCAxLCA1MywgNzksIAotICAgIDI0MywgNzgsIDc5LCA2LCAxLCA1MywgNzksIDI0NywgMTE1LCA3OSwgMywgMSwgNTMsIDc5LCAyNDcsIDExNSwgNzksIDYsIAotICAgIDEsIDUzLCA3OSwgMjIwLCAyMDIsIDc5LCAzLCAxLCA1MywgNzksIDIyMCwgMjAyLCA3OSwgNiwgMSwgNTMsIDIyOCwgNjMsIAotICAgIDIyMCwgMjAyLCA3OSwgMywgMSwgNTMsIDIyOCwgNjMsIDIyMCwgMjAyLCA3OSwgNiwgMSwgNTMsIDIyOCwgNjMsIDIyOSwgCi0gICAgMTEzLCA3OSwgMywgMSwgNTMsIDIyOCwgNjMsIDIyOSwgMTEzLCA3OSwgNiwgMSwgNTMsIDIyOCwgNjMsIDIyOCwgMTAsIDc5LCAKLSAgICAzLCAxLCA1MywgMjI4LCA2MywgMjI4LCAxMCwgNzksIDYsIDEsIDUzLCAyMjgsIDYzLCAyMTQsIDIxLCA3OSwgMywgMSwgNTMsIAotICAgIDIyOCwgNjMsIDIxNCwgMjEsIDc5LCAxNiwgMjM0LCAyNTAsIDc5LCAxNiwgMjMxLCA0MywgMjIzLCAxMTIsIDc5LCAxNiwgCi0gICAgMjI1LCAyNDEsIDIyMywgMTEyLCA3OSwgMTYsIDIxOSwgODcsIDc5LCAxNiwgMjE3LCAyNDksIDIyMywgMTEyLCA3OSwgMTYsIAotICAgIDIzNCwgMTE5LCAyMjMsIDExMiwgNzksIDE2LCAyMjAsIDIwMywgMjIwLCA5MSwgNzksIDYsIDEsIDI0OSwgNTUsIDIyMCwgCi0gICAgMjM1LCA3OSwgMywgMSwgMjQ5LCA1NSwgMjIwLCAyMzUsIDc5LCA2LCAxLCAyNDksIDU1LCAyNDMsIDc4LCA3OSwgMywgMSwgCi0gICAgMjQ5LCA1NSwgMjQzLCA3OCwgNzksIDM3LCAyMjksIDY1LCA0OSwgNzksIDM3LCAyMTksIDE3OSwgMjUzLCAxMzksIDc5LCAKLSAgICAzNywgMjE5LCAxNzksIDIzMywgNDUsIDc5LCA1MywgMjI4LCA2MywgMjQzLCAyMDAsIDIxOSwgNjksIDc5LCA1MywgMjI4LCAKLSAgICA2MywgMjQ3LCAxNDksIDIyNCwgMTU4LCA3NywgNzksIDUzLCAyMjgsIDYzLCAyMzUsIDIzNCwgMjI0LCAxNTgsIDc3LCA3OSwgCi0gICAgNTMsIDIyOCwgNjMsIDIxNCwgMjE4LCAyNDcsIDEyNCwgNzksIDI0MywgMjI4LCAxMjIsIDI0MiwgOSwgNzksIDI0MywgMjAwLCAKLSAgICAyMTksIDY5LCA3OSwgMjMwLCAxOTQsIDI0NywgMTI0LCAxMDAsIDMsIDEsIDI1NCwgMzIsIDEwMCwgMywgMSwgMjUyLCA3MSwgCi0gICAgMTAwLCAzLCAxLCAyNDMsIDgyLCAxMDAsIDMsIDEsIDI0NywgODIsIDEwMCwgMywgMSwgMjQ1LCAxMDgsIDEwMCwgMywgMSwgCi0gICAgMjE0LCAxNDEsIDEwMCwgMywgMSwgMjEyLCA4MiwgMTAwLCAzLCAxLCAyMTgsIDExLCAxMDAsIDMsIDEsIDIzNSwgMjUxLCAKLSAgICAxMDAsIDMsIDEsIDIzNCwgMjM5LCAxMDAsIDMsIDEsIDIzMywgMTA0LCAxMDAsIDMsIDEsIDIzMSwgMjQ4LCAxMDAsIDMsIDEsIAotICAgIDIzMCwgMTUsIDEwMCwgMywgMSwgMjI3LCA2MiwgMTAwLCAzLCAxLCAyMjYsIDE0NSwgMTAwLCAzLCAxLCAyMTIsIDcxLCAKLSAgICAxMDAsIDMsIDEsIDIyNCwgNjEsIDEwMCwgMywgMSwgMjIyLCAxNTksIDEwMCwgMywgMSwgMjE4LCAxLCAxMDAsIDMsIDEsIAotICAgIDIxNSwgMTYwLCAxMDAsIDMsIDEsIDIyNiwgMTYsIDEwMCwgMywgMSwgMjM0LCAxMjcsIDEwMCwgMywgMSwgMjQyLCAyMTcsIAotICAgIDEwMCwgMywgMSwgMjI0LCAyMTcsIDEwMCwgMywgMSwgMjIwLCAyMDAsIDEwMCwgMywgMSwgMjUwLCAzNCwgMTAwLCAzLCAxLCAKLSAgICAyNTAsIDE5NSwgMTAwLCAzLCAxLCAyMzUsIDEwMywgMTAwLCAzLCAxLCAyNDksIDIzMywgMTAwLCAzLCAxLCAyNTAsIDc5LCAKLSAgICAxMDAsIDMsIDEsIDIxMywgMTUxLCAxMDAsIDMsIDEsIDIzNSwgMTEzLCAxMDAsIDMsIDEsIDI0MiwgMjQsIDEwMCwgMywgMSwgCi0gICAgMjQxLCAyMjIsIDEwMCwgMywgMSwgMjQxLCAxNjAsIDEwMCwgMywgMSwgMjE0LCA2LCAxMDAsIDMsIDEsIDI0MSwgMjQzLCAKLSAgICAxMDAsIDMsIDEsIDI0MSwgNTEsIDIxNywgNjIsIDEsIDE4NiwgMjE3LCA2MiwgMSwgMjEzLCA4NywgMjE3LCA2MiwgMSwgCi0gICAgMjEzLCA4NiwgMjE3LCA2MiwgMSwgMjEzLCA3NiwgMjE3LCA2MiwgMSwgMjEzLCA3NCwgMjE3LCA2MiwgMSwgMjUxLCAyMDksIAotICAgIDI1NCwgMTc2LCAyMTMsIDcwLCAyMTcsIDYyLCAxLCAyMTMsIDcwLCAyMTcsIDYyLCAxLCAyMTMsIDg0LCAyMTcsIDYyLCAxLCAKLSAgICAyMTMsIDgxLCAyMTcsIDYyLCAxLCAyMTMsIDgzLCAyMTcsIDYyLCAxLCAyMTMsIDgyLCAyMTcsIDYyLCAxLCAyMTMsIDMsIAotICAgIDIxNywgNjIsIDEsIDIxMywgNzgsIDIxNywgNjIsIDEsIDIxMywgNjgsIDIxNywgNjIsIDEsIDIxNiwgNzksIDIxMywgNjgsIAotICAgIDIxNywgNjIsIDEsIDIxMywgNjUsIDIxNywgNjIsIDEsIDIxMywgNzIsIDIxNywgNjIsIDEsIDI1MSwgMjA5LCAyNTQsIDE3NiwgCi0gICAgMjEzLCA3MiwgMjE3LCA2MiwgMSwgMjE2LCA3OSwgMjEzLCA3MiwgMjE3LCA2MiwgMSwgMjEzLCA3MSwgMjE3LCA2MiwgMSwgCi0gICAgMjEzLCA5MSwgMjE3LCA2MiwgMSwgMjEzLCA2NiwgMjE3LCA2MiwgMSwgMjE2LCA3OSwgMjEzLCA2NiwgMjE3LCA2MiwgMSwgCi0gICAgMjEzLCA1NiwgMjE3LCA2MiwgMSwgMjE2LCA3OSwgMjEzLCA1NiwgMjE3LCA2MiwgMSwgMjEyLCAyNTUsIDIxNywgNjIsIDEsIAotICAgIDIxMywgNDAsIDIxNywgNjIsIDEsIDI1NCwgMTEyLCAyMTMsIDQwLCAyMTcsIDYyLCAxLCAyMTYsIDc5LCAyMTMsIDQwLCAKLSAgICAyMTcsIDYyLCAxLCAyMTMsIDY0LCAyMTcsIDYyLCAxLCAyMTMsIDYzLCAyMTcsIDYyLCAxLCAyMTMsIDYwLCAyMTcsIDYyLCAKLSAgICAxLCAyMTYsIDc5LCAyMTMsIDczLCAyMTcsIDYyLCAxLCAyMTYsIDc5LCAyMTMsIDU4LCAyMTcsIDYyLCAxLCAyMTMsIDU3LCAKLSAgICAyMTcsIDYyLCAxLCAyMTIsIDIwMywgMjE3LCA2MiwgMSwgMjEzLCA1NCwgMjE3LCA2MiwgMSwgMjEzLCA1MywgMjE3LCA2MiwgCi0gICAgMSwgMjEzLCA3NSwgMjE3LCA2MiwgMSwgMjE2LCA3OSwgMjEzLCA3NSwgMjE3LCA2MiwgMSwgMjUzLCA3OSwgMjEzLCA3NSwgCi0gICAgMjE3LCA2MiwgMSwgMjEzLCA1MiwgMjE3LCA2MiwgMSwgMjEzLCA1MCwgMjE3LCA2MiwgMSwgMjEzLCA1MSwgMjE3LCA2MiwgCi0gICAgMSwgMjEzLCA0OSwgMjE3LCA2MiwgMSwgMjEzLCA0OCwgMjE3LCA2MiwgMSwgMjEzLCA4NSwgMjE3LCA2MiwgMSwgMjEzLCAKLSAgICA0NiwgMjE3LCA2MiwgMSwgMjEzLCA0NSwgMjE3LCA2MiwgMSwgMjEzLCA0NCwgMjE3LCA2MiwgMSwgMjEzLCA0MywgMjE3LCAKLSAgICA2MiwgMSwgMjEzLCA0MSwgMjE3LCA2MiwgMSwgMjE3LCAyNDEsIDIxMywgNDEsIDIxNywgNjIsIDEsIDIxMywgMzksIDIxNywgCi0gICAgNjIsIDU5LCAxLCAyMzMsIDE0OSwgNzcsIDIxNywgNjIsIDIyMSwgNTgsIDc3LCAyMTcsIDYyLCAyNDksIDEzMywgMjM1LCAKLSAgICA2NiwgMjgsIDQsIDIzMiwgMjA3LCAyOCwgNCwgMjMwLCAyMzAsIDI4LCA0LCAyMjMsIDExMCwgMjgsIDQsIDIxOSwgMjQxLCAKLSAgICAyOCwgNCwgMjIwLCAxODYsIDI4LCA0LCAyNTEsIDEyNywgMjgsIDQsIDIxNiwgMjUyLCAyOCwgNCwgMjQ5LCAxNzQsIDI4LCAKLSAgICA0LCAyMjgsIDE4MywgMjgsIDQsIDIyNywgMjUyLCAyOCwgNCwgMjQyLCAxNTYsIDIyNywgMTIwLCAyOCwgNCwgMjEyLCAxNSwgCi0gICAgMjgsIDQsIDI0NywgOTcsIDI4LCA0LCAyNDgsIDU1LCAyOCwgNCwgMjM1LCA3MCwgMjgsIDQsIDIxNywgMTA4LCAyOCwgNCwgCi0gICAgMjUwLCAyMiwgMjgsIDQsIDIyNSwgMjUyLCAyOCwgNCwgMjI1LCAxNDksIDI4LCA0LCAyNDIsIDIzMSwgMjgsIDQsIDI0MiwgCi0gICAgMjI3LCAyOCwgNCwgMjQyLCAyMjgsIDI4LCA0LCAyNDIsIDIyOSwgMjgsIDQsIDIxOSwgMTU3LCAyOCwgNCwgMjE5LCAxMTcsIAotICAgIDI4LCA0LCAyMTksIDEyOCwgMjgsIDQsIDIxOSwgMTU2LCAyOCwgNCwgMjE5LCAxMzIsIDI4LCA0LCAyMTksIDEzMywgMjgsIAotICAgIDQsIDIxOSwgMTIxLCAyOCwgNCwgMjUwLCAxNDYsIDI4LCA0LCAyNTAsIDEyNiwgMjgsIDQsIDI1MCwgMTI4LCAyOCwgNCwgCi0gICAgMjUwLCAxNDUsIDI4LCA0LCAyNTAsIDE0MywgMjgsIDQsIDI1MCwgMTQ0LCAyOCwgNCwgMjUwLCAxMjcsIDI4LCA0LCAyMTEsIAotICAgIDI0MiwgMjgsIDQsIDIxMSwgMjIyLCAyOCwgNCwgMjExLCAyMzMsIDI4LCA0LCAyMTEsIDI0MSwgMjgsIDQsIDIxMSwgMjM2LCAKLSAgICAyOCwgNCwgMjExLCAyMzcsIDI4LCA0LCAyMTEsIDIyNSwgMjgsIDQsIDI1MCwgMTQyLCAyOCwgNCwgMjUwLCAxMjksIDI4LCAKLSAgICA0LCAyNTAsIDEzMSwgMjgsIDQsIDI1MCwgMTQxLCAyOCwgNCwgMjUwLCAxMzksIDI4LCA0LCAyNTAsIDE0MCwgMjgsIDQsIAotICAgIDI1MCwgMTMwLCAyOCwgNCwgMjI0LCAxMjUsIDI4LCA0LCAyMjQsIDExNSwgMjgsIDQsIDIyNCwgMTIxLCAyOCwgNCwgMjI0LCAKLSAgICAxMjQsIDI4LCA0LCAyMjQsIDEyMiwgMjgsIDQsIDIyNCwgMTIzLCAyOCwgNCwgMjI0LCAxMjAsIDI4LCA0LCAyMzMsIDE4MSwgCi0gICAgMjgsIDQsIDIzMywgMTczLCAyOCwgNCwgMjMzLCAxNzYsIDI4LCA0LCAyMzMsIDE4MCwgMjgsIDQsIDIzMywgMTc3LCAyOCwgCi0gICAgNCwgMjMzLCAxNzgsIDI4LCA0LCAyMzMsIDE3NCwgMjgsIDQsIDIxMywgMTE4LCAyOCwgNCwgMjEzLCAxMDgsIDI4LCA0LCAKLSAgICAyMTMsIDExNCwgMjgsIDQsIDIxMywgMTE3LCAyOCwgNCwgMjEzLCAxMTUsIDI4LCA0LCAyMTMsIDExNiwgMjgsIDQsIDIxMywgCi0gICAgMTEzLCAyOCwgNCwgMjQyLCA1MiwgMjgsIDQsIDI0MiwgNDMsIDI4LCA0LCAyNDIsIDQ2LCAyOCwgNCwgMjQyLCA1MSwgMjgsIAotICAgIDQsIDI0MiwgNDgsIDI4LCA0LCAyNDIsIDQ5LCAyOCwgNCwgMjQyLCA0NSwgMzcsIDMzLCAxLCAyNTEsIDI1MSwgMzcsIDMzLCAKLSAgICAxLCAyMTQsIDIzMiwgMzcsIDMzLCAxLCAyNDIsIDIxMiwgMzcsIDMzLCAxLCAyNDgsIDQxLCAzNywgMzMsIDEsIDIxMiwgNjcsIAotICAgIDM3LCAzMywgMSwgMjEyLCA4NywgMzcsIDMzLCAxLCAxODEsIDM3LCAzMywgMSwgMjQ1LCAxMzEsIDM3LCAzMywgMSwgMjQ1LCAKLSAgICAxMTcsIDM3LCAzMywgMSwgMjQ1LCAxMDgsIDM3LCAzMywgMSwgNzUsIDM3LCAzMywgMSwgMjI2LCA5NiwgMzcsIDMzLCAxLCAKLSAgICAyNDUsIDU1LCAzNywgMzMsIDEsIDI0NSwgNDUsIDM3LCAzMywgMSwgMjE3LCAyMjksIDM3LCAzMywgMSwgMTU5LCAzNywgMzMsIAotICAgIDEsIDIxNiwgMTM2LCAzNywgMzMsIDEsIDI1MCwgNjcsIDM3LCAzMywgMSwgMjIxLCAyNCwgMzcsIDMzLCAxLCAyMjAsIDI0NSwgCi0gICAgMzcsIDMzLCAxLCAyNDQsIDUxLCAzNywgMzMsIDEsIDI0NSwgNDQsIDM3LCAzMywgMSwgNjEsIDM3LCAzMywgMSwgMjM2LCAKLSAgICA1NSwgMzcsIDMzLCAxLCAyNDcsIDExMywgMzcsIDMzLCAxLCAyMzAsIDIxMCwgMjE1LCAxNzUsIDM3LCAzMywgMSwgMjEzLCAKLSAgICA0OSwgMzcsIDMzLCAxLCAyMTIsIDIwMywgMzcsIDMzLCAxLCAyMzUsIDE4MSwgNjEsIDM3LCAzMywgMSwgMjMyLCAyMjEsIAotICAgIDIxMiwgMTc0LCAzNywgMzMsIDEsIDI1MSwgMTcyLCAyMTIsIDE3NCwgMzcsIDMzLCAxLCAyMzUsIDE4MSwgMjUxLCAxNzIsIAotICAgIDIxMiwgMTc0LCA0NiwgMjU0LCAxOSwgMjE5LCA1LCAyMzEsIDIxNywgNDYsIDI1NCwgMTksIDI0NiwgNzIsIDIxOSwgNSwgCi0gICAgMjMxLCAyMTcsIDQyLCAyMTksIDUsIDEyNSwgNDYsIDIxOSwgNSwgMTI1LCA0MiwgMjQ2LCA3MiwgMjE5LCA1LCAxMjUsIDQ2LCAKLSAgICAyNDYsIDcyLCAyMTksIDUsIDEyNSwgMjI0LCA0OCwgMjM1LCAxOTksIDIzMSwgMjE3LCAyMjQsIDQ4LCAyNDYsIDcyLCAyMzUsIAotICAgIDE5OSwgMjMxLCAyMTcsIDI0NiwgNzIsIDIxNiwgMTk5LCAyMzEsIDIxNywgNDIsIDIxNiwgMTk5LCAxMjUsIDQ2LCAyMTYsIAotICAgIDE5OSwgMTI1LCAyMjQsIDQ4LCAyMTksIDE2NiwgNDIsIDIyNCwgNDgsIDIyNywgNjQsIDEyNSwgNDYsIDIyNCwgNDgsIDIyNywgCi0gICAgNjQsIDEyNSwgMjQ1LCAxNjYsIDI0OSwgOTcsIDIyNiwgMTQxLCAyNDMsIDI0NywgMjI2LCAxNDEsIDIyMywgMjAyLCAyNDMsIAotICAgIDI0NywgMjI2LCAxNDEsIDI0MCwgMTU3LCAyNDYsIDcyLCAyMjcsIDExNSwgMjQ2LCA1OCwgMjU0LCAyOCwgMjE1LCAxMjQsIAotICAgIDI1NCwgMjgsIDI0NiwgNzIsIDIyMywgMTQ0LCAyNTQsIDE4LCA1MSwgMjI3LCAxMTIsIDI0MCwgMTYwLCAyMzUsIDE5MSwgCi0gICAgMjM1LCAxOTgsIDIyNiwgMTg2LCAyNTEsIDgxLCAyNDAsIDE2MSwgMiwgMjQ3LCAyMDksIDIxNywgNDMsIDIsIDIyMywgMTMxLCAKLSAgICA0OSwgNDIsIDExNSwgMjI2LCAxMzMsIDEyNSwgNDYsIDExNSwgMjI2LCAxMzMsIDEyNSwgMjE3LCA0MywgMiwgNjIsIDQ5LCAKLSAgICAyMTcsIDQzLCAyLCA2MiwgNTUsIDQyLCA3MSwgMjUyLCA2MCwgMiwgMjI0LCAxNTIsIDQ2LCA3MSwgMjUyLCA2MCwgMiwgCi0gICAgMjI0LCAxNTIsIDIxNiwgMjI3LCA0MiwgMTUxLCAxMjUsIDIxNiwgMjI3LCA0NiwgMTUxLCAxMjUsIDI1MSwgMTAxLCA0MiwgCi0gICAgMTUxLCAxMjUsIDI1MSwgMTAxLCA0NiwgMTUxLCAxMjUsIDQyLCAyMjAsIDExMywgMTExLCAxMjUsIDQ2LCAyMjAsIDExMywgCi0gICAgMTExLCAxMjUsIDQyLCA1MSwgMjI2LCAxMzEsIDQ2LCA1MSwgMjI2LCAxMzEsIDExNywgMTc2LCAxMTAsIDEyMiwgNjIsIAotICAgIDIyNSwgMjYsIDEyMiwgNjIsIDExMCwgMTE3LCAxNzYsIDIyNSwgMjYsIDkxLCAyNDMsIDIzNywgNjIsIDIyNSwgMjYsIDI0NCwgCi0gICAgNTAsIDYyLCA3NywgMjIzLCAyMDIsIDIyNCwgMTU4LCA3NywgNzEsIDIxNywgNDIsIDIyMywgMTMxLCAyMjUsIDE0NCwgMjEzLCAKLSAgICAxOTYsIDIyMSwgNTgsIDIzMSwgMzcsIDI0NywgNzQsIDksIDM0LCAyMjMsIDIyNywgOSwgMzQsIDI0OSwgMjAzLCA5LCAzNCwgCi0gICAgMjIyLCA5NSwgMTE2LCA5LCAzNCwgMjIyLCA5NSwgMTA5LCA5LCAzNCwgMjIyLCA5NSwgMTY2LCA5LCAzNCwgMjI2LCA0MywgCi0gICAgOSwgMzQsIDI1MSwgODksIDksIDM0LCAyMTgsIDQwLCA5LCAzNCwgMjM0LCA0MiwgMTE2LCA5LCAzNCwgMjM0LCA0MiwgMTA5LCAKLSAgICA5LCAzNCwgMjQ3LCAxMjIsIDksIDM0LCAyMjIsIDk4LCA5LCAzNCwgMywgMTE2LCA5LCAzNCwgMywgMTA5LCA5LCAzNCwgCi0gICAgMjMzLCAxMjEsIDExNiwgOSwgMzQsIDIzMywgMTIxLCAxMDksIDksIDM0LCAyMzMsIDEyMSwgMTY2LCA5LCAzNCwgMjMzLCAKLSAgICAxMjEsIDE2MywgOSwgMzQsIDIxOSwgMjUyLCA5LCAzNCwgMjE3LCA5OCwgOSwgMzQsIDIxOSwgMjUwLCAxMTYsIDksIDM0LCAKLSAgICAyMTksIDI1MCwgMTA5LCA5LCAzNCwgMjQxLCAyMTIsIDExNiwgOSwgMzQsIDI0MSwgMjEyLCAxMDksIDksIDM0LCAyNDEsIAotICAgIDI1NCwgOSwgMzQsIDIyNCwgMzksIDksIDM0LCAyNTAsIDE5LCA5LCAzNCwgMjE4LCAyMzgsIDksIDM0LCAyMzAsIDE5OCwgOSwgCi0gICAgMzQsIDI0OCwgMzksIDksIDM0LCAyMzAsIDE5MCwgOSwgMzQsIDI0OSwgMjE4LCA5LCAzNCwgMjE0LCAyNSwgMTE2LCA5LCAKLSAgICAzNCwgMjE0LCAyNSwgMTA5LCA5LCAzNCwgMjQ0LCA2NSwgOSwgMzQsIDIyNiwgMTA2LCAxMTYsIDksIDM0LCAyMjYsIDEwNiwgCi0gICAgMTA5LCA5LCAzNCwgMjIwLCA4NiwgMTUxLCAyMTYsIDE5NCwgMjE2LCAxNDYsIDksIDM0LCAyNDksIDg0LCA5LCAzNCwgMjQ3LCAKLSAgICA5MCwgOSwgMzQsIDIzNSwgMTM1LCA5LCAzNCwgMjUxLCAxMjIsIDY1LCAyNDksIDE4NywgOSwgMzQsIDI0NCwgMjM5LCA5LCAKLSAgICAzNCwgMjE5LCAxODEsIDExNiwgOSwgMzQsIDIxOSwgMTgxLCAxMDksIDksIDM0LCAyNTIsIDczLCA5LCAzNCwgMjIwLCA5MywgCi0gICAgOSwgMzQsIDI1MCwgMjQ5LCAyMjAsIDkzLCA5LCAzNCwgMjI5LCAxNzIsIDExNiwgOSwgMzQsIDIyOSwgMTcyLCAxMDksIDksIAotICAgIDM0LCAyMjksIDE3MiwgMTY2LCA5LCAzNCwgMjI5LCAxNzIsIDE2MywgOSwgMzQsIDIzMSwgMTExLCA5LCAzNCwgMjIwLCAKLSAgICAyMzcsIDksIDM0LCAyMjQsIDQ1LCA5LCAzNCwgMjQ1LCA0LCA5LCAzNCwgMjI3LCA3NSwgOSwgMzQsIDI1MSwgNjEsIDExNiwgCi0gICAgOSwgMzQsIDI1MSwgNjEsIDEwOSwgOSwgMzQsIDIzMSwgMTUxLCA5LCAzNCwgMjMwLCAxOTMsIDksIDM0LCAyNDIsIDExNywgCi0gICAgMTE2LCA5LCAzNCwgMjQyLCAxMTcsIDEwOSwgOSwgMzQsIDI0MiwgMTE3LCAxNjYsIDksIDM0LCAyMTcsIDYwLCA5LCAzNCwgCi0gICAgMjQ5LCAxODYsIDksIDM0LCAyMTMsIDI1MCwgMTE2LCA5LCAzNCwgMjEzLCAyNTAsIDEwOSwgOSwgMzQsIDI1MCwgMjQ5LCAKLSAgICAyMjIsIDg5LCA5LCAzNCwgMjIwLCA4NiwgMjQwLCAyMzUsIDksIDM0LCAyNDAsIDIzNSwgOSwgMzQsIDI1MCwgMjQ5LCAyMTksIAotICAgIDE5MCwgOSwgMzQsIDI1MCwgMjQ5LCAyMjAsIDIzMiwgOSwgMzQsIDI0NCwgMSwgOSwgMzQsIDI1MCwgMjQ5LCAyNTAsIDE2MCwgCi0gICAgOSwgMzQsIDIyMCwgODYsIDIxNCwgNDEsIDksIDM0LCAyMTQsIDQyLCAxMTYsIDksIDM0LCAyMTQsIDQyLCAxMDksIDksIDM0LCAKLSAgICAyNDksIDIyMCwgOSwgMzQsIDI1MCwgMjQ5LCAyNDIsIDE0MiwgOSwgMzQsIDE4NCwgMTE2LCA5LCAzNCwgMTg0LCAxMDksIDksIAotICAgIDM0LCAyNTAsIDI0OSwgMjMyLCAxOTAsIDksIDM0LCAyNTAsIDI0OSwgMjQzLCA2NCwgOSwgMzQsIDIzMCwgMTg5LCAxMTYsIAotICAgIDksIDM0LCAyMzAsIDE4OSwgMTA5LCA5LCAzNCwgMjI0LCA1MCwgOSwgMzQsIDI1MSwgMTMwLCA5LCAzNCwgMjUwLCAyNDksIAotICAgIDIxOCwgNywgMjMzLCA3NiwgOSwgMzQsIDI1MCwgMjQ5LCAyMzMsIDc3LCA5LCAzNCwgMjUwLCAyNDksIDIxMywgMjI0LCA5LCAKLSAgICAzNCwgMjUwLCAyNDksIDI0NCwgMTUsIDksIDM0LCAyNDUsIDE3NCwgMTE2LCA5LCAzNCwgMjQ1LCAxNzQsIDEwOSwgOSwgMzQsIAotICAgIDI0NSwgMTc0LCAxNjYsIDksIDM0LCAyNTAsIDI0OSwgMjQ1LCAxNzMsIDksIDM0LCAyNDEsIDIxOSwgOSwgMzQsIDI1MCwgCi0gICAgMjQ5LCAyNDAsIDIzMiwgOSwgMzQsIDI1MSwgMTE5LCA5LCAzNCwgMjQyLCAxOTgsIDksIDM0LCAyNTAsIDI0OSwgMjQ0LCAKLSAgICA1OSwgOSwgMzQsIDI1MCwgMjQ5LCAyNTEsIDE2MCwgOSwgMzQsIDI1MCwgMjQ5LCAyMjIsIDE3MiwgOSwgMzQsIDIyMCwgODYsIAotICAgIDIxMywgMjQzLCA5LCAzNCwgMjIwLCA4NiwgMjEzLCAzMiwgOSwgMzQsIDI1MCwgMjQ5LCAyNDMsIDIxNCwgOSwgMzQsIDIzNSwgCi0gICAgMTQxLCAyNDUsIDgsIDksIDM0LCAyNTAsIDI0OSwgMjQ1LCA4LCA5LCAzNCwgMjM1LCAxNDEsIDIxNiwgMjI4LCA5LCAzNCwgCi0gICAgMjUwLCAyNDksIDIxNiwgMjI4LCA5LCAzNCwgMjM1LCAxNDEsIDI0NiwgNTAsIDksIDM0LCAyNTAsIDI0OSwgMjQ2LCA1MCwgCi0gICAgOSwgMzQsIDIxNiwgNTUsIDksIDM0LCAyMzUsIDE0MSwgMjE2LCA1NSwgOSwgMzQsIDI1MCwgMjQ5LCAyMTYsIDU1LCA1NywgCi0gICAgMzQsIDExNiwgNTcsIDM0LCAyMzIsIDI0MiwgNTcsIDM0LCAyNDcsIDc0LCA1NywgMzQsIDIyMCwgMjMsIDU3LCAzNCwgMjIyLCAKLSAgICA5NCwgNTcsIDM0LCAxMDEsIDU3LCAzNCwgMTA5LCA1NywgMzQsIDIzMywgOSwgNTcsIDM0LCAyMzEsIDI0OCwgNTcsIDM0LCAKLSAgICAyMzMsIDU3LCA1NywgMzQsIDI0NSwgODgsIDU3LCAzNCwgMTk1LCA1NywgMzQsIDExOSwgMjUxLCA4OSwgNTcsIDM0LCAyNDksIAotICAgIDg2LCA1NywgMzQsIDI0MCwgMTA0LCA1NywgMzQsIDIxOCwgNDAsIDU3LCAzNCwgMjI3LCA0MCwgMjUxLCA4OSwgNTcsIDM0LCAKLSAgICAyMzQsIDQxLCA1NywgMzQsIDIyNSwgMTA0LCA1NywgMzQsIDIxMywgMTkwLCA1NywgMzQsIDIxOSwgMTc1LCA1NywgMzQsIAotICAgIDQ2LCAyMjcsIDQwLCAyNTEsIDg5LCA1NywgMzQsIDI0MSwgMTYxLCAyNDUsIDEwMywgNTcsIDM0LCAyMTcsIDIwMCwgNTcsIAotICAgIDM0LCAyNDcsIDEyMiwgNTcsIDM0LCAyMjIsIDk4LCA1NywgMzQsIDI0OSwgMjAzLCA1NywgMzQsIDIyNSwgNjUsIDU3LCAzNCwgCi0gICAgMjU0LCAxMjAsIDU3LCAzNCwgMjMwLCAxODAsIDU3LCAzNCwgMjQ1LCAxMDMsIDU3LCAzNCwgMjQ1LCAxNzksIDU3LCAzNCwgCi0gICAgMjIyLCAxMTgsIDU3LCAzNCwgMjQyLCAxNTAsIDU3LCAzNCwgMjQyLCAxNTEsIDIyMCwgOSwgNTcsIDM0LCAyNDUsIDcsIDU3LCAKLSAgICAzNCwgMjUxLCAxNzEsIDU3LCAzNCwgMjEzLCAyMDgsIDU3LCAzNCwgMjUwLCAzOCwgNTcsIDM0LCAyMjMsIDk4LCA1NywgMzQsIAotICAgIDIzNSwgMjQ3LCA1NywgMzQsIDIyMCwgNywgNTcsIDM0LCAyMzMsIDEyMCwgNTcsIDM0LCAyNDksIDk1LCA1NywgMzQsIDIxOSwgCi0gICAgMTY5LCA1NywgMzQsIDIzMCwgMTg1LCA1NywgMzQsIDIyMywgMTIxLCA1NywgMzQsIDIxMywgMTkzLCA1NywgMzQsIDIyNywgCi0gICAgNTYsIDU3LCAzNCwgMjE2LCA2MSwgNTcsIDM0LCAyNDYsIDM1LCA1NywgMzQsIDIyMCwgMTc1LCAyMTcsIDk4LCA1NywgMzQsIAotICAgIDI0NiwgNzIsIDI0OSwgMjAzLCA1NywgMzQsIDE4NCwgMjE5LCA0OCwgNTcsIDM0LCAxMTcsIDI0MSwgMjQ5LCA1NywgMzQsIAotICAgIDIyMCwgMTgwLCA1NywgMzQsIDI1MSwgOTUsIDU3LCAzNCwgMjE5LCAyNDksIDU3LCAzNCwgMjUxLCA2NSwgNTcsIDM0LCAKLSAgICAyMTksIDc4LCA1NywgMzQsIDI0MSwgMjExLCA1NywgMzQsIDI0MiwgMTAsIDU3LCAzNCwgMjQ3LCA3NywgNTcsIDM0LCAyNDEsIAotICAgIDI1NCwgNTcsIDM0LCAyNTEsIDgxLCA1NywgMzQsIDIyNCwgMzksIDU3LCAzNCwgMjIyLCAxMDYsIDU3LCAzNCwgMjQ3LCAKLSAgICAxNTEsIDU3LCAzNCwgMjUzLCA4NCwgNTcsIDM0LCAyMTksIDE2NiwgNTcsIDM0LCAyMjgsIDE2MiwgNTcsIDM0LCAyMTgsIAotICAgIDIzOCwgNTcsIDM0LCAyMjIsIDEyOSwgNTcsIDM0LCAyMzAsIDE5OCwgNTcsIDM0LCAyMTYsIDE5MywgNTcsIDM0LCAyMzMsIAotICAgIDE0NSwgNTcsIDM0LCAyMTksIDY5LCA1NywgMzQsIDI0OCwgMzksIDU3LCAzNCwgMjE0LCA1LCA1NywgMzQsIDI0NywgMTAwLCAKLSAgICAyMjgsIDE2MiwgNTcsIDM0LCAyNDksIDE1NCwgNTcsIDM0LCAyNDMsIDE5NCwgNTcsIDM0LCAyNDksIDIxNCwgNTcsIDM0LCAKLSAgICAyMTksIDgyLCA1NywgMzQsIDIxNCwgMjQsIDU3LCAzNCwgMjQ0LCA2NSwgNTcsIDM0LCAyNDksIDIxMSwgNTcsIDM0LCAyNDQsIAotICAgIDEyOSwgNTcsIDM0LCA1MSwgMjEzLCAxNjYsIDU3LCAzNCwgMTUxLCAyMTYsIDE5NCwgMjE2LCAxNDYsIDU3LCAzNCwgMjIwLCAKLSAgICAxNywgNTcsIDM0LCAyNDQsIDEzOSwgNTcsIDM0LCAyNDksIDg0LCA1NywgMzQsIDI0NywgOTAsIDU3LCAzNCwgMjI1LCA2MiwgCi0gICAgNTcsIDM0LCAyMzUsIDEzNSwgNTcsIDM0LCAyMzEsIDEzMSwgNTcsIDM0LCAyMTcsIDQxLCA1NywgMzQsIDIxOCwgMTkwLCAKLSAgICA1NywgMzQsIDIzMywgMywgNTcsIDM0LCAyMTUsIDEwMywgNTcsIDM0LCAyNDQsIDg5LCA1NywgMzQsIDI1MSwgMTIyLCA2NSwgCi0gICAgMjQ5LCAxODcsIDU3LCAzNCwgMjIwLCAxMTQsIDU3LCAzNCwgMjQ2LCA3MiwgMjE3LCAxOTUsIDU3LCAzNCwgMjEzLCAyMzgsIAotICAgIDU3LCAzNCwgMjIwLCAzMSwgNTcsIDM0LCAyNDcsIDEzOSwgNTcsIDM0LCAyNDQsIDIzOSwgNTcsIDM0LCAyMTksIDE5MywgCi0gICAgNTcsIDM0LCA2OCwgNTcsIDM0LCAyMTksIDcxLCA1NywgMzQsIDIxOSwgMTgwLCA1NywgMzQsIDIxNiwgMjEyLCA1NywgMzQsIAotICAgIDI0MiwgMTIzLCA1NywgMzQsIDI1MCwgMTUxLCA1NywgMzQsIDIxOSwgOTksIDU3LCAzNCwgMjUyLCA3MywgNTcsIDM0LCAKLSAgICAyMjMsIDE4NCwgNTcsIDM0LCAyMjAsIDkzLCA1NywgMzQsIDIzNSwgMTMwLCA1NywgMzQsIDIyOSwgMTcxLCA1NywgMzQsIAotICAgIDIyMCwgMjM3LCA1NywgMzQsIDI0NCwgMTE4LCA1NywgMzQsIDIyNywgNzUsIDU3LCAzNCwgMjU0LCAyNywgNTcsIDM0LCAKLSAgICAyMjUsIDE2MiwgNTcsIDM0LCAyNDUsIDE4MywgNTcsIDM0LCAyNTEsIDYwLCA1NywgMzQsIDIzMSwgMTUxLCA1NywgMzQsIAotICAgIDIzMCwgMjUyLCA1NywgMzQsIDIyMSwgNzYsIDU3LCAzNCwgMjUzLCAxNjcsIDU3LCAzNCwgMjMwLCAxOTMsIDU3LCAzNCwgCi0gICAgMjE2LCAyMzIsIDU3LCAzNCwgMjI3LCAzMSwgNTcsIDM0LCAyNTEsIDEyNCwgNTcsIDM0LCAyMTksIDY3LCA1NywgMzQsIAotICAgIDI0OSwgMTYzLCA1NywgMzQsIDI0MiwgMTE2LCA1NywgMzQsIDIxNywgNjAsIDU3LCAzNCwgMjM1LCAyMTQsIDU3LCAzNCwgCi0gICAgMjUxLCAxMzQsIDU3LCAzNCwgMjE0LCA0MiwgMjQ1LCAxMDMsIDU3LCAzNCwgMjQ5LCAxODYsIDU3LCAzNCwgMjEzLCAyNDksIAotICAgIDU3LCAzNCwgMjIyLCA4OSwgNTcsIDM0LCAyNDAsIDIzNSwgNTcsIDM0LCAyMTksIDE5MCwgNTcsIDM0LCAyMTQsIDI1NCwgCi0gICAgNTcsIDM0LCAyNTEsIDI0OCwgNTcsIDM0LCAyMjUsIDIwNSwgNTcsIDM0LCAyNTIsIDkyLCA1NywgMzQsIDIyMCwgMjMyLCAKLSAgICA1NywgMzQsIDIyNCwgMywgNTcsIDM0LCAyMjMsIDM3LCA1NywgMzQsIDI0NCwgMSwgNTcsIDM0LCAyNTEsIDEyMywgNTcsIAotICAgIDM0LCAyNTAsIDE2MCwgNTcsIDM0LCAyNTEsIDE0OSwgNTcsIDM0LCAyMzAsIDE5NSwgNTcsIDM0LCAyMTQsIDQxLCA1NywgCi0gICAgMzQsIDI0OSwgMjIwLCA1NywgMzQsIDIxMywgMjIxLCA1NywgMzQsIDI0NywgMTMyLCA1NywgMzQsIDIxNCwgMTQyLCA1NywgCi0gICAgMzQsIDI0MiwgMTQyLCA1NywgMzQsIDIzMiwgMTkwLCA1NywgMzQsIDI0MywgNjQsIDU3LCAzNCwgMjMwLCAxODgsIDU3LCAKLSAgICAzNCwgMjIwLCAyMiwgNTcsIDM0LCAyMjAsIDE3NSwgMjE4LCAyNiwgMjUxLCAxNjAsIDU3LCAzNCwgMjI0LCA1MCwgNTcsIAotICAgIDM0LCAyNTEsIDEzMCwgNTcsIDM0LCAyMTMsIDE4NSwgNTcsIDM0LCAyNDQsIDE1OCwgNTcsIDM0LCAyMzMsIDc2LCA1NywgCi0gICAgMzQsIDIxOCwgNywgMjMzLCA3NiwgNTcsIDM0LCAyMzMsIDcyLCA1NywgMzQsIDIxOSwgMjE3LCA1NywgMzQsIDIzMywgNzcsIAotICAgIDU3LCAzNCwgMjEzLCAyMjQsIDU3LCAzNCwgMjQ0LCAxNSwgNTcsIDM0LCAyNDUsIDE3MywgNTcsIDM0LCAyNDEsIDIxOSwgCi0gICAgNTcsIDM0LCAyNDMsIDIyNiwgNTcsIDM0LCAyNDAsIDIzMiwgNTcsIDM0LCAyNTEsIDExOSwgNTcsIDM0LCAyMTgsIDE0LCAKLSAgICA1NywgMzQsIDI0MiwgMTYsIDU3LCAzNCwgMjQ0LCA4MiwgNTcsIDM0LCAyMjIsIDE5NywgMjEzLCAyMjEsIDU3LCAzNCwgCi0gICAgMjUwLCAxNTMsIDU3LCAzNCwgMjQyLCAxOTgsIDU3LCAzNCwgMjQ0LCA1OSwgNTcsIDM0LCAyNTEsIDE2MCwgNTcsIDM0LCAKLSAgICAyMjIsIDE3MiwgNTcsIDM0LCAyNDgsIDI1LCA1NywgMzQsIDIxMywgMjQzLCA1NywgMzQsIDI0MSwgMTk0LCA1NywgMzQsIAotICAgIDIxMywgMzIsIDU3LCAzNCwgMjMxLCA1LCA1NywgMzQsIDI1MSwgMTQ0LCA1NywgMzQsIDI0NSwgMTEzLCA1NywgMzQsIDI0MywgCi0gICAgMjE0LCA1NywgMzQsIDIxNiwgMTY3LCA1NywgMzQsIDI0NiwgMzcsIDU3LCAzNCwgMjI0LCAzMywgNTcsIDM0LCAyMjgsIAotICAgIDE2NCwgNTcsIDM0LCAyNDUsIDgsIDU3LCAzNCwgMjE2LCAyMjgsIDU3LCAzNCwgMjQ2LCA1MCwgNTcsIDM0LCAyMTYsIDU1LCAKLSAgICA1NywgMzQsIDI0NCwgMTcsIDEwNSwgMjQ3LCAyNDQsIDEzNywgNDIsIDIxMSwgMjExLCAyMjMsIDE0OCwgMTA1LCAyNDcsIAotICAgIDI0NCwgMTM3LCA3OCwgMjExLCAyMTEsIDU1LCAxMDUsIDI0NywgMjQ0LCAxMzcsIDQyLCAyMTEsIDIxMSwgMjMxLCAzNywgCi0gICAgMjQsIDIyMywgMTQ4LCAxMDUsIDI0NywgMjQ0LCAxMzcsIDc4LCAyMTEsIDIxMSwgMjMxLCAzNywgMjQsIDU1LCAxMDUsIAotICAgIDI0NywgMjQ0LCAxMzcsIDI0MywgMjAwLCAyMTgsIDIxMCwgMTA1LCAyNDcsIDI0NCwgMTM3LCAyMTgsIDIxMSwgMjQzLCAKLSAgICAyMTMsIDQ5LCAxMDUsIDI0NywgMjQ0LCAxMzcsIDIxOCwgMjExLCAyNDMsIDIxMywgNTUsIDEwNSwgMjQ3LCAyNDQsIDEzNywgCi0gICAgMjE4LCAyMTEsIDI0MywgMjEzLCAyMzMsIDcwLCAxMDUsIDI0NywgMjQ0LCAxMzcsIDIxOCwgMjExLCAyNDMsIDIxMywgMjE1LCAKLSAgICAxMzEsIDIzMywgNzAsIDEwNSwgMjQ3LCAyNDQsIDEzNywgMjE4LCAyMTEsIDI0MywgMjEzLCAyMTUsIDEzMSwgMjIzLCAxNDgsIAotICAgIDEwNSwgMjQ3LCAyNDQsIDEzNywgMjE4LCAyMTEsIDI0MywgMjEzLCAyMzIsIDE2MywgMjMzLCA3MCwgMTA1LCAyNDcsIDI0NCwgCi0gICAgMTM3LCAyMjYsIDI0NiwgMTA1LCAyMTksIDIwNiwgMTA1LCAyNDksIDE1NywgMTA1LCAyNDMsIDIwMCwgMjE5LCA2OSwgMjQ3LCAKLSAgICAxMjksIDc3LCAyMzUsIDEzMSwgMjM1LCAyMzMsIDIxOSwgOTgsIDg3LCAxMDUsIDIzNSwgMTU2LCA3NywgMTA1LCAyNDksIAotICAgIDE4OSwgNzcsIDEwNSwgNTAsIDIxMiwgNzksIDQyLCAyNTQsIDE5LCAxMjUsIDQ2LCAyNTQsIDE5LCAxMjUsIDQyLCA1MSwgCi0gICAgMjU0LCAxOSwgMTI1LCA0NiwgNTEsIDI1NCwgMTksIDEyNSwgNDIsIDI0OSwgMTAwLCAxMjUsIDQ2LCAyNDksIDEwMCwgMTI1LCAKLSAgICA0MiwgNjcsIDI0OSwgMTAwLCAxMjUsIDQ2LCA2NywgMjQ5LCAxMDAsIDEyNSwgNDIsIDgzLCAyMzMsIDQ0LCAxMjUsIDQ2LCAKLSAgICA4MywgMjMzLCA0NCwgMTI1LCAyMjUsIDExNywgNzcsIDI0MywgOCwgNzcsIDQyLCAyMTYsIDIxOSwgMjIwLCAyMzMsIDEyNSwgCi0gICAgNDYsIDIxNiwgMjE5LCAyMjAsIDIzMywgMTI1LCA0MiwgNjcsIDIzMywgNDQsIDEyNSwgNDYsIDY3LCAyMzMsIDQ0LCAxMjUsIAotICAgIDQyLCA2NywgMjE2LCAyMTksIDIyMCwgMjMzLCAxMjUsIDQ2LCA2NywgMjE2LCAyMTksIDIyMCwgMjMzLCAxMjUsIDQyLCA2NywgCi0gICAgNDEsIDEyNSwgNDYsIDY3LCA0MSwgMTI1LCAyMTQsIDIwLCAyNDgsIDEwMSwgMjIzLCAyMDIsIDUxLCAyMjUsIDcyLCAyMjQsIAotICAgIDE0MywgNzcsIDUxLCAyMjUsIDcyLCAyMjQsIDE0MywgNzcsIDExNSwgNTEsIDIyNSwgNzIsIDIyNCwgMTQzLCA3NywgMjI1LCAKLSAgICAxMTcsIDE1MiwgMjQ0LCAxNTgsIDI0MSwgMjQ3LCAyMjgsIDU0LCAxMTYsIDI0MSwgMjQ3LCAyMjgsIDU0LCAxMDksIDI0MSwgCi0gICAgMjQ3LCAyMjgsIDU0LCAxNjYsIDI0MSwgMjQ3LCAyMjgsIDU0LCAxNjMsIDI0MSwgMjQ3LCAyMjgsIDU0LCAxODAsIDI0MSwgCi0gICAgMjQ3LCAyMjgsIDU0LCAxODksIDI0MSwgMjQ3LCAyMjgsIDU0LCAxOTgsIDI0MSwgMjQ3LCAyMjgsIDU0LCAxOTUsIDI0MSwgCi0gICAgMjQ3LCAyMjgsIDU0LCAyMDAsIDEwNSwgMjMzLCAyOSwgMTYwLCA3NywgMTA1LCAyMjMsIDEyNSwgMTYwLCA3NywgMTA1LCAKLSAgICAyNDcsIDI1MSwgMTYwLCA3NywgMTA1LCAyNDUsIDg3LCAxNjAsIDc3LCAyMywgMjIwLCA4MSwgNjIsIDE2MCwgNzcsIDIzLCAKLSAgICA1MSwgNjIsIDE2MCwgNzcsIDIxNCwgMTYsIDI0OCwgMTAxLCA3MSwgMjM0LCAyMzgsIDIyMywgMjI4LCA3NywgNzEsIDIzNCwgCi0gICAgMjM4LCAyMjMsIDIyOCwgMiwgMjE0LCAxMTYsIDIxOSwgMjE4LCA3NywgNzEsIDIzNCwgMjM4LCAyMjMsIDIyOCwgMTUyLCAKLSAgICAyMTUsIDEzMSwgMjQyLCA5LCA3MSwgMjM0LCAyMzgsIDIyMywgMjI4LCAyLCAyMTQsIDExNiwgMjE5LCAyMTgsIDE1MiwgCi0gICAgMjE1LCAxMzEsIDI0MiwgOSwgNzEsIDIzNCwgMjM4LCAyMjMsIDIyOCwgMTUyLCAyMzIsIDE2MywgMjQyLCA5LCAzNiwgMjI1LCAKLSAgICAxMTcsIDc3LCAxMDUsIDIwMSwgMjMyLCAyNDMsIDI0NCwgMTE1LCAyMjEsIDU4LCA4NywgMjQxLCAyNDcsIDIyOCwgNTQsIAotICAgIDIxNywgMjAwLCAyNDEsIDI0NywgMjI4LCA1NCwgMjE2LCAzOCwgMjQxLCAyNDcsIDIyOCwgNTQsIDIxNywgMTE1LCA3MSwgCi0gICAgMTA1LCAyMzUsIDE1NiwgNzcsIDIzMSwgMjAzLCA3NywgMjI2LCAxMjcsIDI1NCwgNDksIDc3LCAxMDUsIDQzLCAyMzUsIAotICAgIDIzNSwgMTA1LCAxNTEsIDI0NCwgNzUsIDIxOSwgMjA2LCAxNDIsIDEsIDMsIDYxLCAxNDIsIDEsIDYxLCAxNDIsIDEsIDMsIAotICAgIDcyLCAxNDIsIDEsIDcyLCAxNDIsIDEsIDMsIDY5LCAxNDIsIDEsIDY5LCAxNDIsIDEsIDMsIDc0LCAxNDIsIDEsIDc0LCAKLSAgICAxNDIsIDEsIDMsIDc1LCAxNDIsIDEsIDc1LCAxNDIsIDEsIDE4MSwgMTQyLCAxLCAyNDMsIDExMCwgMTQyLCAxLCAyMzQsIAotICAgIDEwMSwgMTQyLCAxLCAyNDIsIDE5MCwgMTQyLCAxLCAyMzMsIDIzOCwgMTQyLCAxLCAyNDIsIDkyLCAxNDIsIDEsIDIzNCwgCi0gICAgMTg4LCAxNDIsIDEsIDI0MywgMzgsIDE0MiwgMSwgMjM0LCAzNywgMTQyLCAxLCAyNDIsIDE1MCwgMTQyLCAxLCAyMjIsIAotICAgIDIwMiwgMTQyLCAxLCAyMTIsIDEwOSwgMTQyLCAxLCAyMjAsIDExNywgMTQyLCAxLCAyMTIsIDM3LCAxNDIsIDEsIDIxOSwgCi0gICAgMjcsIDE0MiwgMSwgMjEyLCA4LCAxNDIsIDEsIDIyMiwgMTAwLCAxNDIsIDEsIDIxMiwgODcsIDE0MiwgMSwgMjE5LCAyNDIsIAotICAgIDE0MiwgMSwgMjEyLCAxNiwgMTQyLCAxLCAyMTgsIDUyLCAxNDIsIDEsIDI0OCwgMTY0LCAxNDIsIDEsIDIxNywgNzEsIDE0MiwgCi0gICAgMSwgMjQ3LCAyMTEsIDE0MiwgMSwgMywgMjE2LCA4MiwgMTQyLCAxLCAyMTYsIDgyLCAxNDIsIDEsIDI0NiwgMzMsIDE0MiwgCi0gICAgMSwgMjE3LCAyMjksIDE0MiwgMSwgMjQ4LCA0MSwgMTQyLCAxLCAxMDgsIDE0MiwgMSwgMjQ3LCA5OSwgMTQyLCAxLCAyMDUsIAotICAgIDE0MiwgMSwgMjI5LCA2NCwgMTQyLCAxLCAyMjgsIDkyLCAxNDIsIDEsIDIyOSwgMTg3LCAxNDIsIDEsIDIyOCwgMTg1LCAKLSAgICAxNDIsIDEsIDE1OSwgMTQyLCAxLCAyNTIsIDEwNywgMTQyLCAxLCAxOTMsIDE0MiwgMSwgMjQxLCAxNjUsIDE0MiwgMSwgCi0gICAgMjUxLCAxODQsIDE0MiwgMSwgMjI1LCAyNDAsIDE0MiwgMSwgMjQwLCAyMTIsIDE0MiwgMSwgMjUxLCA1NCwgMTQyLCAxLCAKLSAgICAyMjUsIDM1LCAxNDIsIDEsIDI0MSwgMjIyLCAxNDIsIDEsIDI1MSwgMjUxLCAxNDIsIDEsIDIyNiwgOTYsIDE0MiwgMSwgCi0gICAgMjQxLCA1NCwgMTQyLCAxLCAyNTEsIDEyOCwgMTQyLCAxLCAyMjUsIDE1MCwgMTQyLCAxLCAxODgsIDE0MiwgMSwgMjMxLCAKLSAgICA0MiwgMTQyLCAxLCAyMzAsIDE3MiwgMTQyLCAxLCAyMzEsIDE1NiwgMTQyLCAxLCAyMzAsIDIzMSwgMTQyLCAxLCAzLCAxODYsIAotICAgIDE0MiwgMSwgMTg2LCAxNDIsIDEsIDMsIDIxMiwgMjAzLCAxNDIsIDEsIDIxMiwgMjAzLCAxNDIsIDEsIDMsIDIxMiwgMjM1LCAKLSAgICAxNDIsIDEsIDIxMiwgMjM1LCAxNDIsIDEsIDIwMywgMTQyLCAxLCAyMjMsIDE4OCwgMTQyLCAxLCAyMjMsIDUxLCAxNDIsIDEsIAotICAgIDIyNCwgMjEsIDE0MiwgMSwgMjIzLCAxMTIsIDE0MiwgMSwgMywgMjE0LCA0OSwgMTQyLCAxLCAyMTQsIDQ5LCAxNDIsIDEsIAotICAgIDIxMywgMjM1LCAxNDIsIDEsIDIxNCwgNiwgMTQyLCAxLCAyMTMsIDIxNCwgMTQyLCAxLCAyMDQsIDE0MiwgMSwgMjE0LCA5OSwgCi0gICAgMTQyLCAxLCAzLCAxODEsIDE0MiwgMSwgMywgMjM0LCAxODgsIDM3LCAyMzQsIDIwNiwgMjE0LCAxMTYsIDIxOSwgMjE4LCAKLSAgICA3NywgMzcsIDIzNCwgMjA2LCAyMjEsIDc1LCAyMTksIDIxOCwgNzcsIDIzNCwgMjA2LCAyMTQsIDExNiwgMjE5LCAyMTgsIAotICAgIDc3LCAyMzQsIDIwNiwgMjIxLCA3NSwgMjE5LCAyMTgsIDc3LCAxNDIsIDIzNSwgMTU2LCA3NywgMTQyLCAyMTQsIDExNiwgCi0gICAgMjM1LCAxNTYsIDc3LCAxNDIsIDI0NywgMTczLCAyMTIsIDIxNiwgMjM0LCAyMDYsIDUxLCAyNDAsIDE2MCwgNTYsIDEsIDMsIAotICAgIDYxLCA1NiwgMSwgNjEsIDU2LCAxLCAzLCA3MiwgNTYsIDEsIDcyLCA1NiwgMSwgMywgNjksIDU2LCAxLCA2OSwgNTYsIDEsIAotICAgIDMsIDc0LCA1NiwgMSwgNzQsIDU2LCAxLCAzLCA3NSwgNTYsIDEsIDc1LCA1NiwgMSwgMTgxLCA1NiwgMSwgMjQzLCAxMTAsIAotICAgIDU2LCAxLCAyMzQsIDEwMSwgNTYsIDEsIDI0MiwgMTkwLCA1NiwgMSwgMjMzLCAyMzgsIDU2LCAxLCAyNDIsIDkyLCA1NiwgMSwgCi0gICAgMjM0LCAxODgsIDU2LCAxLCAyNDMsIDM4LCA1NiwgMSwgMjM0LCAzNywgNTYsIDEsIDI0MiwgMTUwLCA1NiwgMSwgMjIyLCAKLSAgICAyMDIsIDU2LCAxLCAyMTIsIDEwOSwgNTYsIDEsIDIyMCwgMTE3LCA1NiwgMSwgMjEyLCAzNywgNTYsIDEsIDIxOSwgMjcsIAotICAgIDU2LCAxLCAyMTIsIDgsIDU2LCAxLCAyMjIsIDEwMCwgNTYsIDEsIDIxMiwgODcsIDU2LCAxLCAyMTksIDI0MiwgNTYsIDEsIAotICAgIDIxMiwgMTYsIDU2LCAxLCAyMTgsIDUyLCA1NiwgMSwgMjQ4LCAxNjQsIDU2LCAxLCAyMTcsIDcxLCA1NiwgMSwgMjQ3LCAKLSAgICAyMTEsIDU2LCAxLCAzLCAyMTYsIDgyLCA1NiwgMSwgMjE2LCA4MiwgNTYsIDEsIDI0NiwgMzMsIDU2LCAxLCAyMTcsIDIyOSwgCi0gICAgNTYsIDEsIDI0OCwgNDEsIDU2LCAxLCAxMDgsIDU2LCAxLCAyNDcsIDk5LCA1NiwgMSwgMjA1LCA1NiwgMSwgMjI5LCA2NCwgCi0gICAgNTYsIDEsIDIyOCwgOTIsIDU2LCAxLCAyMjksIDE4NywgNTYsIDEsIDIyOCwgMTg1LCA1NiwgMSwgMTU5LCA1NiwgMSwgMjUyLCAKLSAgICAxMDcsIDU2LCAxLCAxOTMsIDU2LCAxLCAyNDEsIDE2NSwgNTYsIDEsIDI1MSwgMTg0LCA1NiwgMSwgMjI1LCAyNDAsIDU2LCAKLSAgICAxLCAyNDAsIDIxMiwgNTYsIDEsIDI1MSwgNTQsIDU2LCAxLCAyMjUsIDM1LCA1NiwgMSwgMjQxLCAyMjIsIDU2LCAxLCAyNTEsIAotICAgIDI1MSwgNTYsIDEsIDIyNiwgOTYsIDU2LCAxLCAyNDEsIDU0LCA1NiwgMSwgMjUxLCAxMjgsIDU2LCAxLCAyMjUsIDE1MCwgCi0gICAgNTYsIDEsIDE4OCwgNTYsIDEsIDIzMSwgNDIsIDU2LCAxLCAyMzAsIDE3MiwgNTYsIDEsIDIzMSwgMTU2LCA1NiwgMSwgMjMwLCAKLSAgICAyMzEsIDU2LCAxLCAzLCAxODYsIDU2LCAxLCAxODYsIDU2LCAxLCAzLCAyMTIsIDIwMywgNTYsIDEsIDIxMiwgMjAzLCA1NiwgCi0gICAgMSwgMywgMjEyLCAyMzUsIDU2LCAxLCAyMTIsIDIzNSwgNTYsIDEsIDIwMywgNTYsIDEsIDIyMywgMTg4LCA1NiwgMSwgMjIzLCAKLSAgICA1MSwgNTYsIDEsIDIyNCwgMjEsIDU2LCAxLCAyMjMsIDExMiwgNTYsIDEsIDMsIDIxNCwgNDksIDU2LCAxLCAyMTQsIDQ5LCAKLSAgICA1NiwgMSwgMjEzLCAyMzUsIDU2LCAxLCAyMTQsIDYsIDU2LCAxLCAyMTMsIDIxNCwgNTYsIDEsIDIwNCwgNTYsIDEsIDIxNCwgCi0gICAgOTksIDU2LCAxLCAzLCAxODEsIDU2LCAxLCAzLCAyMzQsIDE4OCwgNTYsIDEsIDIxNSwgMSwgNTYsIDEsIDIxNCwgMTU0LCAKLSAgICA1NiwgMSwgMjE0LCAyMzIsIDU2LCAxLCAyMTQsIDExOSwgNTYsIDIzMSwgMzcsIDI0NywgNzQsIDIzNCwgMjA2LCAyMjUsIAotICAgIDU3LCAyMTksIDIxOCwgNzcsIDU2LCAyMzUsIDE1NiwgNzcsIDU2LCAyMTQsIDExNiwgMjM1LCAxNTYsIDc3LCA1NiwgMjQ3LCAKLSAgICAxNzMsIDIzNCwgOCwgMjAyLCAxLCAyNTMsIDc0LCAyMDIsIDEsIDIyNiwgMjI5LCAyMDIsIDEsIDE4MywgMjAyLCAxLCAyNDQsIAotICAgIDIzMCwgMjAyLCAxLCAyNDksIDMsIDIwMiwgMSwgMjE4LCA5OSwgMjAyLCAxLCAyMDQsIDIwMiwgMSwgMTUwLCAyMDIsIDEsIAotICAgIDI0MywgMTc3LCAyMDIsIDEsIDIzNSwgMjcsIDIwMiwgMSwgMjQyLCA0MSwgMjAyLCAxLCAyMzUsIDE0MiwgMjAyLCAxLCAKLSAgICAyMjQsIDI0MCwgMjAyLCAxLCAyMTMsIDE2NiwgMjAyLCAxLCAyMTIsIDc2LCAyMDIsIDEsIDI1MCwgOTMsIDIwMiwgMSwgCi0gICAgMjIxLCAyNiwgMjAyLCAxLCAxNDksIDIwMiwgMSwgMjEyLCAxNTIsIDIwMiwgMSwgMjUwLCAyNTIsIDIwMiwgMSwgMTk3LCAKLSAgICAyMDIsIDEsIDYxLCAyMDIsIDEsIDc1LCAyMDIsIDEsIDc0LCAyMDIsIDEsIDI0NSwgMTU0LCAyMDIsIDEsIDI1NCwgMTA4LCAKLSAgICAyMDIsIDEsIDI0NSwgMTUyLCAyMDIsIDEsIDI1MywgMTA4LCAyMDIsIDEsIDIyNywgMiwgMjAyLCAxLCAyNTQsIDMyLCAyMDIsIAotICAgIDEsIDI0NSwgMTA4LCAyMDIsIDEsIDI1NCwgMjQsIDIwMiwgMSwgMjQ1LCA5NiwgMjAyLCAxLCAyNDUsIDU1LCAyMDIsIDEsIAotICAgIDcyLCAyMDIsIDEsIDY5LCAyMDIsIDEsIDIzNSwgMTU0LCAyMDIsIDEsIDIxNSwgNzksIDIwMiwgMSwgMjI5LCAxNjEsIDIwMiwgCi0gICAgMSwgMjQyLCAxNTQsIDIwMiwgMSwgMjM2LCAyOSwgMjMsIDEsIDIzNCwgNjcsIDIzLCAxLCAyMTksIDE1MCwgMjMsIDEsIAotICAgIDIzNCwgNjAsIDIzLCAxLCAyMjksIDU3LCAyMywgMSwgMjI5LCA1NSwgMjMsIDEsIDIyOSwgNTQsIDIzLCAxLCAyMTcsIDU1LCAKLSAgICAyMywgMSwgMjE5LCAxMzksIDIzLCAxLCAyMjMsIDE3OSwgMjMsIDEsIDIyMywgMTc0LCAyMywgMSwgMjIzLCAxNzEsIDIzLCAKLSAgICAxLCAyMjMsIDE2NCwgMjMsIDEsIDIyMywgMTU5LCAyMywgMSwgMjIzLCAxNTQsIDIzLCAxLCAyMjMsIDE2NSwgMjMsIDEsIAotICAgIDIyMywgMTc3LCAyMywgMSwgMjMxLCAzMCwgMjMsIDEsIDIyNSwgMjI3LCAyMywgMSwgMjE5LCAxNDcsIDIzLCAxLCAyMjUsIAotICAgIDIxNiwgMjMsIDEsIDIyMCwgNzYsIDIzLCAxLCAyMTksIDE0NCwgMjMsIDEsIDIzNiwgNTEsIDIzLCAxLCAyNDksIDIzOSwgCi0gICAgMjMsIDEsIDIxOSwgMTU0LCAyMywgMSwgMjUwLCA0MywgMjMsIDEsIDIzNCwgMTE2LCAyMywgMSwgMjE3LCAxMjYsIDIzLCAxLCAKLSAgICAyMjYsIDcsIDIzLCAxLCAyNDEsIDE1OCwgMjMsIDEsIDYxLCAyMywgMSwgMjU0LCAxNDgsIDIzLCAxLCAxODYsIDIzLCAxLCAKLSAgICAyMTMsIDgwLCAyMywgMSwgMjQ1LCA3NiwgMjMsIDEsIDc0LCAyMywgMSwgMjEzLCAyNywgMjMsIDEsIDIxMywgMzgsIDIzLCAKLSAgICAxLCA3NSwgMjMsIDEsIDIxNCwgNDksIDIzLCAxLCAyMTQsIDQ2LCAyMywgMSwgMjI3LCA5OSwgMjMsIDEsIDIxMiwgMjM1LCAKLSAgICAyMywgMSwgNjksIDIzLCAxLCAyMTMsIDI1MiwgMjMsIDEsIDIxNCwgNiwgMjMsIDEsIDIxMywgMjM1LCAyMywgMSwgMjEyLCAKLSAgICAyMDMsIDIzLCAxLCAyNDUsIDIyLCAyMywgMSwgMjEyLCAyNTUsIDIzLCAxLCA3MiwgMjMsIDI0NCwgNzIsIDIzLCAxLCAyMTksIAotICAgIDE0OCwgMjMsIDEsIDIyOSwgNDcsIDIzLCAxLCAyMjksIDQ5LCAyMywgMSwgMjI5LCA1MiwgMjMsIDEsIDIyMywgMTcyLCAyMywgCi0gICAgMSwgMjIzLCAxNTMsIDIzLCAxLCAyMjMsIDE2MSwgMjMsIDEsIDIyMywgMTY2LCAyMywgMSwgMjIzLCAxNTEsIDIzLCAxLCAKLSAgICAyMzEsIDIzLCAyMywgMSwgMjMxLCAyMCwgMjMsIDEsIDIzMSwgMjQsIDIzLCAxLCAyMzQsIDIyNiwgMjMsIDEsIDIyNSwgCi0gICAgMjIyLCAyMywgMSwgMjI1LCAyMDgsIDIzLCAxLCAyMjUsIDIxNCwgMjMsIDEsIDIyNSwgMjExLCAyMywgMSwgMjI1LCAyMjUsIAotICAgIDIzLCAxLCAyMjUsIDIwOSwgMjMsIDEsIDIzNCwgMjI0LCAyMywgMSwgMjM0LCAyMjIsIDIzLCAxLCAyMjAsIDY5LCAyMywgMSwgCi0gICAgMjIwLCA2NywgMjMsIDEsIDIyMCwgNTksIDIzLCAxLCAyMjAsIDY0LCAyMywgMSwgMjIwLCA3NCwgMjMsIDEsIDIyNiwgMTYwLCAKLSAgICAyMywgMSwgMjE5LCAxNTEsIDIzLCAxLCAyMTMsIDE3LCAyMywgMSwgMjEzLCAxMywgMjMsIDEsIDIxMywgMTQsIDIzLCAxLCAKLSAgICAyMzQsIDIyNSwgMjMsIDEsIDIxOSwgMTUyLCAyMywgMSwgMjEzLCAyMywgMjMsIDEsIDIxMiwgMjI5LCAyMywgMSwgMjEyLCAKLSAgICAyMjgsIDIzLCAxLCAyMTIsIDIzMSwgMjMsIDEsIDIxMiwgMTk0LCAyMywgMSwgMjEyLCAxOTUsIDIzLCAxLCAyMTIsIDE5OCwgCi0gICAgMjMsIDEsIDI1MywgMjA0LCAyMywgMSwgMjUzLCAxOTgsIDEwNSwgMjU0LCAxMCwgMjMyLCAyMzIsIDc3LCAxMDUsIDI1NCwgCi0gICAgMTAsIDIyMywgMjAzLCA3NywgMTA1LCAyNTQsIDEwLCAxMjIsIDc3LCAxMDUsIDI1NCwgMTAsIDExNywgNzcsIDEwNSwgMjU0LCAKLSAgICAxMCwgMTMzLCA3NywgMTA1LCAyNTQsIDEwLCAyNDMsIDIzNywgNzcsIDEwNSwgMjU0LCAxMCwgMjE2LCAyMjcsIDc3LCAxMDUsIAotICAgIDI1NCwgMTAsIDIzMSwgMzcsIDc3LCAxMDUsIDI1NCwgMTAsIDI1MSwgMTAxLCA3NywgMTA1LCAyNTQsIDEwLCAyNDQsIDYxLCAKLSAgICA3NywgMTA1LCAyNTQsIDEwLCAyMjIsIDk1LCA3NywgMTA1LCAyNTQsIDEwLCAyMTcsIDEyMiwgNzcsIDEwNSwgMjU0LCAxMCwgCi0gICAgMjQzLCAyMzAsIDc3LCAxMDUsIDI1NCwgMTAsIDI0MSwgMjA4LCA3NywgMTA1LCAyNTQsIDEwLCAyNDUsIDE4MCwgNzcsIAotICAgIDEwNSwgMjU0LCAxMCwgMjMxLCAyNDksIDc3LCAyMDIsIDEsIDI1MSwgNTQsIDIwMiwgMSwgMjEyLCAzNywgMjAyLCAxLCAKLSAgICAyMzUsIDExMCwgMjAyLCAxLCAyNDIsIDkyLCAyMDIsIDEsIDI0NSwgMTY1LCAyMDIsIDEsIDI0NSwgOTMsIDIwMiwgMSwgCi0gICAgMjI3LCA0OSwgMjAyLCAxLCAyMjcsIDUzLCAyMDIsIDEsIDIzNSwgMTc3LCAyMDIsIDEsIDI1NCwgMTIsIDIwMiwgMSwgMjM1LCAKLSAgICAyMjEsIDIwMiwgMSwgMjE1LCAxMzksIDIwMiwgMSwgMjM2LCAxMSwgMjAyLCAxLCAyMjksIDE0MiwgMjAyLCAxLCAyNTQsIAotICAgIDEwMiwgMjAyLCAxLCAyNTMsIDEwMywgMjAyLCAxLCAyNTQsIDQ1LCAyMDIsIDEsIDIyNywgNzAsIDIwMiwgMSwgMjI3LCA1NSwgCi0gICAgMjAyLCAxLCAyMzUsIDIxOCwgMjAyLCA0MCwgMSwgMjI2LCAyMjksIDIwMiwgNDAsIDEsIDIxOCwgOTksIDIwMiwgNDAsIDEsIAotICAgIDIzNSwgMjcsIDIwMiwgNDAsIDEsIDI0MiwgNDEsIDIwMiwgMSwgMjQyLCAyMjYsIDIwMiwgMSwgMjMzLCAyNiwgMjAyLCAxLCAKLSAgICAyMTEsIDI0OSwgOSwgMjE5LCA0NSwgMjE4LCA5OSwgOSwgMjE5LCA0NSwgMjEzLCAyNDUsIDksIDIxOSwgNDUsIDIxMywgCi0gICAgMTQ2LCA5LCAyMTksIDQ1LCAyNTEsIDgsIDksIDIxOSwgNDUsIDIxOCwgMTk5LCA5LCAyMTksIDQ1LCAyNDAsIDE1MCwgOSwgCi0gICAgMjE5LCA0NSwgMjQwLCAxNTQsIDksIDIxOSwgNDUsIDI0MCwgMjE4LCA5LCAyMTksIDQ1LCAyNDAsIDE1MSwgOSwgMjE5LCAKLSAgICA0NSwgMjE4LCAxMDIsIDksIDIxOSwgNDUsIDI0MCwgMTUzLCA5LCAyMTksIDQ1LCAyNDAsIDE0OSwgOSwgMjE5LCA0NSwgCi0gICAgMjQwLCAyMTYsIDksIDIxOSwgNDUsIDI0MCwgMTUyLCA5LCAyMTksIDQ1LCAyNDAsIDE0OCwgOSwgMjE5LCA0NSwgMjA0LCA5LCAKLSAgICAyMTksIDQ1LCAyNDIsIDQxLCA5LCAyMTksIDQ1LCAxOTcsIDksIDIxOSwgNDUsIDIyNiwgMjI5LCA5LCAyMTksIDQ1LCAyMTksIAotICAgIDIwOCwgOSwgMjE5LCA0NSwgMjQ5LCAzLCA5LCAyMTksIDQ1LCAyNDAsIDE1NSwgOSwgMjE5LCA0NSwgMjQxLCAxNzUsIDksIAotICAgIDIxOSwgNDUsIDIxOCwgMTExLCA5LCAyMTksIDQ1LCAyMTgsIDE3OCwgOSwgMjE5LCA0NSwgMjE5LCAxMDcsIDksIDIxOSwgCi0gICAgNDUsIDIyMSwgMzEsIDksIDIxOSwgNDUsIDIyNiwgOTgsIDksIDIxOSwgNDUsIDIyNCwgMjQyLCA5LCAyMTksIDQ1LCAyMTYsIAotICAgIDI1MywgOSwgMjE5LCA0NSwgMjE4LCAxMDEsIDksIDIxOSwgNDUsIDIxOCwgMTg5LCA5LCAyMTksIDQ1LCAyNDAsIDE2MiwgOSwgCi0gICAgMjE5LCA0NSwgMjQwLCAxNDcsIDksIDIxOSwgNDUsIDIyNiwgMjUsIDksIDIxOSwgNDUsIDIyNCwgMjQwLCA1NiwgMSwgMywgCi0gICAgMjMzLCAyMzgsIDU2LCAxLCAzLCAyMjAsIDExNywgNTYsIDEsIDMsIDIxOSwgMjcsIDU2LCAxLCAzLCAxMDgsIDU2LCAxLCAzLCAKLSAgICAyMjgsIDkyLCA1NiwgMSwgMywgMTU5LCA1NiwgMSwgMywgMjQxLCAxNjUsIDU2LCAxLCAzLCAyNDAsIDIxMiwgNTYsIDEsIDMsIAotICAgIDI0MSwgMjIyLCA1NiwgMSwgMywgMjQxLCA1NCwgNTYsIDEsIDMsIDIzMCwgMTcyLCA1NiwgMSwgMywgMjAzLCA1NiwgMSwgMywgCi0gICAgMjIzLCAxODgsIDU2LCAxLCAzLCAyMjMsIDUxLCA1NiwgMSwgMywgMjI0LCAyMSwgNTYsIDEsIDMsIDIyMywgMTEyLCA4NiwgCi0gICAgMjMsIDIzNCwgNjcsIDg2LCAyMywgMjI5LCA1NywgODYsIDIzLCAyMTcsIDU1LCA4NiwgMjMsIDIyMywgMTc5LCA4NiwgMjMsIAotICAgIDIzMSwgMzAsIDg2LCAyMywgMjI1LCAyMjcsIDg2LCAyMywgMjIwLCA3NiwgODYsIDIzLCAyMzYsIDUxLCA4NiwgMjMsIDI0OSwgCi0gICAgMjM5LCA4NiwgMjMsIDI1MCwgNDMsIDg2LCAyMywgMjM0LCAxMTYsIDg2LCAyMywgMjE3LCAxMjYsIDg2LCAyMywgMjI2LCA3LCAKLSAgICA4NiwgMjMsIDI0MSwgMTU4LCA4NiwgMjMsIDIzNCwgNjgsIDYxLCA4NiwgMjMsIDIyOSwgNTgsIDYxLCA4NiwgMjMsIDIxNywgCi0gICAgNTYsIDYxLCA4NiwgMjMsIDIyMywgMTgwLCA2MSwgODYsIDIzLCAyMzEsIDMxLCA2MSwgODYsIDIzLCAyMjUsIDIyOCwgNjEsIAotICAgIDg2LCAyMywgMjIwLCA3NywgNjEsIDg2LCAyMywgMjM2LCA1MiwgNjEsIDg2LCAyMywgMjQ5LCAyNDAsIDYxLCA4NiwgMjMsIAotICAgIDI1MCwgNDQsIDYxLCA4NiwgMjMsIDIzNCwgMTE3LCA2MSwgODYsIDIzLCAyMTcsIDEyNywgNjEsIDg2LCAyMywgMjI2LCA4LCAKLSAgICA2MSwgODYsIDIzLCAyNDEsIDE1OSwgNjEsIDg2LCAyMywgMjQ5LCAyNDAsIDY5LCA4NiwgMjM0LCAxMiwgMTM3LCAyMjcsIAotICAgIDgzLCA4NiwgMjM0LCAxMiwgMTM3LCAxNTcsIDI0MCwgMjEyLCA4NiwgMTQzLCAxMTYsIDg2LCAxNDMsIDEwOSwgODYsIDE0MywgCi0gICAgMTY2LCA4NiwgMTQzLCAxNjMsIDg2LCAxNDMsIDE4MCwgODYsIDE0MywgMTg5LCA4NiwgMTQzLCAxOTgsIDg2LCAxNDMsIAotICAgIDE5NSwgODYsIDE0MywgMjAwLCA4NiwgMTQzLCAyMTcsIDIwMCwgODYsIDE0MywgMjMwLCAxOTgsIDg2LCAxNDMsIDI0NCwgCi0gICAgNjUsIDg2LCAxNDMsIDIxNCwgMjQsIDg2LCAxNDMsIDIxMywgMjAxLCA4NiwgMTQzLCAyMzEsIDEwNiwgODYsIDE0MywgMjQ1LCAKLSAgICAxNzksIDg2LCAxNDMsIDIxOCwgMjM4LCA4NiwgMTQzLCAyMTksIDcyLCA4NiwgMTQzLCAyNDEsIDIyOCwgODYsIDE0MywgCi0gICAgMjE5LCAyMzgsIDg2LCAxNDMsIDIzMCwgMjQsIDg2LCAxNDMsIDIxOSwgMTkyLCA4NiwgMTQzLCAyNDQsIDcxLCA4NiwgMTQzLCAKLSAgICAyNDksIDE0MCwgODYsIDE0MywgMjMzLCAxNDgsIDg2LCAxNDMsIDIyMywgMjIzLCA4NiwgMTQzLCAyNTAsIDIwMywgODYsIAotICAgIDE0MywgMjE5LCAzMCwgODYsIDE0MywgMjE4LCAyMjAsIDg2LCAxNDMsIDI0NSwgODYsIDg2LCAxNDMsIDIyMywgMjE1LCA4NiwgCi0gICAgMTQzLCAyNTQsIDU5LCA4NiwgMTQzLCAyNDQsIDk3LCA4NiwgMTQzLCAyMjMsIDIxMywgODYsIDE0MywgMjIxLCA3NiwgODYsIAotICAgIDE0MywgMjI0LCAyMCwgMzYsIDE0MywgMjI0LCAxNTcsIDM2LCAxNDMsIDIzNCwgODksIDM2LCAxNDMsIDIyMiwgMTE2LCAzNiwgCi0gICAgMTQzLCAyMzQsIDgsIDM2LCA1MCwgMjE3LCAyMDEsIDIyNywgNjMsIDgzLCAyMTksIDE2NiwgMzYsIDUwLCAyMTYsIDM5LCAKLSAgICAyMjcsIDYzLCA4MywgMjE5LCAxNjYsIDM2LCA1MCwgMjE3LCAxMTYsIDIyNywgNjMsIDgzLCAyMTksIDE2NiwgMzYsIDUwLCAKLSAgICAyNDMsIDI0MSwgMjI3LCA2MywgODMsIDIxOSwgMTY2LCAzNiwgNTAsIDI0NCwgODQsIDIyNywgNjMsIDgzLCAyMTksIDE2NiwgCi0gICAgMzYsIDUwLCAyMjAsIDQwLCAyMjcsIDYzLCA4MywgMjE5LCAxNjYsIDM2LCA1MCwgMjIxLCAzOCwgMjI3LCA2MywgODMsIAotICAgIDIxOSwgMTY2LCAzNiwgNTAsIDI0NSwgMTQyLCAyMjcsIDYzLCA4MywgMjE5LCAxNjYsIDIyNiwgMTIzLCA1MiwgMzYsIDUwLCAKLSAgICAyMTYsIDM5LCAxMTYsIDM2LCA1MCwgMjE2LCAzOSwgMTA5LCAzNiwgNTAsIDIxNiwgMzksIDE2NiwgMzYsIDUwLCAyMTYsIAotICAgIDM5LCAxNjMsIDM2LCA1MCwgMjE2LCAzOSwgMTgwLCAzNiwgNTAsIDIxNiwgMzksIDE4OSwgMzYsIDUwLCAyMTYsIDM5LCAKLSAgICAxOTgsIDM2LCA1MCwgMjE2LCAzOSwgMTk1LCAzNiwgNTAsIDIxNiwgMzksIDIwMCwgMzYsIDUwLCAyMTcsIDExNSwgMzYsIAotICAgIDUwLCAyMTcsIDExNiwgMTE2LCAzNiwgNTAsIDIxNywgMTE2LCAxMDksIDM2LCA1MCwgMjE3LCAxMTYsIDE2NiwgMzYsIDUwLCAKLSAgICAyMTcsIDExNiwgMTYzLCAzNiwgNTAsIDIxNywgMTE2LCAxODAsIDM2LCAyMywgMjM0LCA2NywgMzYsIDIzLCAyMjksIDU3LCAKLSAgICAzNiwgMjMsIDIxNywgNTUsIDM2LCAyMywgMjIzLCAxNzksIDM2LCAyMywgMjMxLCAzMCwgMzYsIDIzLCAyMjUsIDIyNywgMzYsIAotICAgIDIzLCAyMjAsIDc2LCAzNiwgMjMsIDIzNiwgNTEsIDM2LCAyMywgMjQ5LCAyMzksIDM2LCAyMywgMjUwLCA0MywgMzYsIDIzLCAKLSAgICAyMzQsIDExNiwgMzYsIDIzLCAyMTcsIDEyNiwgMzYsIDIzLCAyMjYsIDcsIDM2LCAyMywgMjQxLCAxNTgsIDM2LCAyMywgCi0gICAgMjM0LCA2OCwgNjEsIDM2LCAyMywgMjI5LCA1OCwgNjEsIDM2LCAyMywgMjE3LCA1NiwgNjEsIDM2LCAyMywgMjIzLCAxODAsIAotICAgIDYxLCAzNiwgMjMsIDIzMSwgMzEsIDYxLCAzNiwgMjMsIDIyNSwgMjI4LCA2MSwgMzYsIDIzLCAyMjAsIDc3LCA2MSwgMzYsIAotICAgIDIzLCAyMzYsIDUyLCA2MSwgMzYsIDIzLCAyNDksIDI0MCwgNjEsIDM2LCAyMywgMjUwLCA0NCwgNjEsIDM2LCAyMywgMjM0LCAKLSAgICAxMTcsIDYxLCAzNiwgMjMsIDIxNywgMTI3LCA2MSwgMzYsIDIzLCAyMjYsIDgsIDYxLCAzNiwgMjMsIDI0MSwgMTU5LCA2MSwgCi0gICAgMzYsIDIzNCwgMTIsIDEzNywgMjUwLCA4NCwgMzYsIDIzNCwgMTIsIDEzNywgMjM1LCA1MCwgMzYsIDIzLCAyMzYsIDUyLCAKLSAgICA2OSwgMjM0LCAxMiwgMjE5LCA5OCwgODcsIDM2LCAxNDMsIDExNiwgMzYsIDE0MywgMTA5LCAzNiwgMTQzLCAxNjYsIDM2LCAKLSAgICAxNDMsIDE2MywgMzYsIDE0MywgMTgwLCAzNiwgMTQzLCAxODksIDM2LCAxNDMsIDE5OCwgMzYsIDE0MywgMTk1LCAzNiwgCi0gICAgMTQzLCAyMDAsIDM2LCAxNDMsIDIxNywgMjAwLCAzNiwgMTQzLCAyMzAsIDE5OCwgMzYsIDE0MywgMjQ0LCA2NSwgMzYsIAotICAgIDE0MywgMjE0LCAyNCwgMzYsIDE0MywgMjEzLCAyMDEsIDM2LCAxNDMsIDIzMSwgMTA2LCAzNiwgMTQzLCAyNDUsIDE3OSwgCi0gICAgMzYsIDE0MywgMjE4LCAyMzgsIDM2LCAxNDMsIDIxOSwgNzIsIDM2LCAxNDMsIDI0MSwgMjI4LCAzNiwgMTQzLCAyMTksIAotICAgIDIzOCwgMzYsIDE0MywgMjMwLCAyNCwgMzYsIDE0MywgMjE5LCAxOTIsIDM2LCAxNDMsIDI0NCwgNzEsIDM2LCAxNDMsIDI0OSwgCi0gICAgMTQwLCAzNiwgMTQzLCAyMzMsIDE0OCwgMzYsIDE0MywgMjIyLCA5MywgMzYsIDE0MywgMjMxLCAyNTIsIDM2LCAxNDMsIAotICAgIDI0NCwgMTA2LCAzNiwgMTQzLCAyMTgsIDI1MCwgMzYsIDE0MywgMjQ1LCAxLCAzNiwgMTQzLCAyMjUsIDY4LCAzNiwgMTQzLCAKLSAgICAyNTMsIDExMiwgMzYsIDE0MywgMjM1LCAxNTcsIDM2LCAxNDMsIDIyMywgMjEzLCAzNiwgMTQzLCAyNDksIDEwMywgMzYsIAotICAgIDE0MywgMjQ5LCA5NCwgMzYsIDE0MywgMjQxLCAxNTEsIDM2LCAxNDMsIDI1MCwgMTA4LCAzNiwgMTQzLCAyMzIsIDE2NSwgCi0gICAgMzYsIDE0MywgMjMzLCA3MCwgMzYsIDE0MywgMjIzLCAxNDgsIDM2LCAxNDMsIDIzMSwgMTQ4LCAzNiwgMTQzLCAyMjMsIAotICAgIDIzNywgMzYsIDE0MywgMjE5LCAzMCwgMzYsIDE0MywgMjE4LCAyMjAsIDM2LCAxNDMsIDI0NSwgODYsIDM2LCAxNDMsIDIyMywgCi0gICAgMjE1LCAzNiwgMTQzLCAyNTQsIDU5LCAzNiwgMTQzLCAyMjksIDQzLCAzNiwgNTAsIDIxNywgMTE2LCAxODksIDM2LCA1MCwgCi0gICAgMjE3LCAxMTYsIDE5OCwgMzYsIDUwLCAyMTcsIDExNiwgMTk1LCAzNiwgNTAsIDIxNywgMTE2LCAyMDAsIDM2LCA1MCwgMjQzLCAKLSAgICAyNDAsIDM2LCA1MCwgMjQzLCAyNDEsIDExNiwgMzYsIDUwLCAyNDMsIDI0MSwgMTA5LCAzNiwgNTAsIDI0MywgMjQxLCAxNjYsIAotICAgIDM2LCA1MCwgMjQzLCAyNDEsIDE2MywgMzYsIDUwLCAyNDMsIDI0MSwgMTgwLCAzNiwgNTAsIDI0MywgMjQxLCAxODksIDM2LCAKLSAgICA1MCwgMjQzLCAyNDEsIDE5OCwgMzYsIDUwLCAyNDMsIDI0MSwgMTk1LCAzNiwgNTAsIDI0MywgMjQxLCAyMDAsIDM2LCA1MCwgCi0gICAgMjQ0LCA4MywgMTA1LCAyMDEsIDE2LCAzMSwgMjM1LCAxMzMsIDEwNSwgMjAxLCAxNiwgMzEsIDI0NCwgMTE3LCAxMDUsIAotICAgIDIwMSwgMTYsIDMxLCAyMzEsIDIyMywgMTA1LCAyMDEsIDE2LCAzMSwgMjUzLCAyMTcsIDEwNSwgMjAxLCAxNiwgMzEsIDIzMSwgCi0gICAgMTk2LCAxMDUsIDIwMSwgMTYsIDMxLCAyMzUsIDQ4LCAxMDUsIDIwMSwgMTYsIDMxLCAyMzUsIDQ5LCAxMDUsIDIwMSwgMTYsIAotICAgIDMxLCAyNTMsIDEwNCwgMTA1LCAyMDEsIDE2LCAzMSwgMjIxLCA1NiwgMTA1LCAyMDEsIDE2LCAzMSwgMjI3LCAxMDQsIDEwNSwgCi0gICAgMjAxLCAxNiwgMzEsIDIyOCwgMTUxLCAxMDUsIDIwMSwgMTYsIDMxLCAyNDgsIDM2LCA0MSwgMjQxLCAxNzUsIDQxLCAyNDUsIAotICAgIDUxLCA0MSwgMjQ1LCAxMCwgMjMyLCAyNDgsIDIzMywgMTIsIDUyLCAzNiwgNTYsIDYxLCAzNiwgNTYsIDcyLCAzNiwgNTYsIAotICAgIDY5LCAzNiwgNTYsIDc0LCAzNiwgNTYsIDc1LCAzNiwgNTYsIDE4MSwgMzYsIDU2LCAyMzQsIDEwMSwgMzYsIDU2LCAyMzMsIAotICAgIDIzOCwgMzYsIDU2LCAyMzQsIDE4OCwgMzYsIDU2LCAyMzQsIDM3LCAzNiwgNTYsIDIyMiwgMjAyLCAzNiwgNTYsIDIyMCwgCi0gICAgMTE3LCAzNiwgNTYsIDIxOSwgMjcsIDM2LCA1NiwgMjIyLCAxMDAsIDM2LCA1NiwgMjE5LCAyNDIsIDM2LCA1NiwgMjE4LCAKLSAgICA1MiwgMzYsIDU2LCAyMTcsIDcxLCAzNiwgNTYsIDIxNiwgODIsIDM2LCA1NiwgMjE3LCAyMjksIDM2LCA1NiwgMTA4LCAzNiwgCi0gICAgNTYsIDIwNSwgMzYsIDU2LCAyMjksIDY0LCAzNiwgNTYsIDIyOCwgOTIsIDM2LCA1NiwgMjI5LCAxODcsIDM2LCA1NiwgMjI4LCAKLSAgICAxODUsIDM2LCA1NiwgMTU5LCAzNiwgNTYsIDI0MSwgMTY1LCAzNiwgNTYsIDI0MCwgMjEyLCAzNiwgNTYsIDI0MSwgMjIyLCAKLSAgICAzNiwgNTYsIDI0MSwgNTQsIDM2LCA1NiwgMTg4LCAzNiwgNTYsIDIzMSwgNDIsIDM2LCA1NiwgMjMwLCAxNzIsIDM2LCA1NiwgCi0gICAgMjMxLCAxNTYsIDM2LCA1NiwgMjMwLCAyMzEsIDM2LCA1NiwgMTg2LCAzNiwgNTYsIDIxMiwgMjAzLCAzNiwgNTYsIDIxMiwgCi0gICAgMjM1LCAzNiwgNTYsIDIwMywgMzYsIDU2LCAyMjMsIDE4OCwgMzYsIDU2LCAyMjMsIDUxLCAzNiwgNTYsIDIyNCwgMjEsIDM2LCAKLSAgICA1NiwgMjIzLCAxMTIsIDM2LCA1NiwgMjE0LCA0OSwgMzYsIDU2LCAyMTMsIDIzNSwgMzYsIDU2LCAyMTQsIDYsIDM2LCA1NiwgCi0gICAgMjEzLCAyMTQsIDQxLCAyNTMsIDIzOCwgNDEsIDI1MywgMTU0LCA0MSwgMjU0LCA2LCA0MSwgMjU0LCAxOTAsIDQxLCAyMzUsIAotICAgIDIyMywgNDEsIDIzNSwgMTkzLCA0MSwgMjE1LCAxMzcsIDQxLCAyNDUsIDMxLCA0MSwgMjQ1LCAxNjMsIDQxLCAyMjcsIDUyLCAKLSAgICA0MSwgMjI3LCA0NiwgNDEsIDIzNCwgMjQ5LCA0MSwgMjM0LCAyMTksIDQxLCAyMzQsIDIxNiwgNDEsIDI0MywgNjgsIDQxLCAKLSAgICAyNDMsIDc3LCA0MSwgMjQyLCAxODAsIDQxLCAyNDIsIDE3NiwgNDEsIDIzMywgMTcyLCA0MSwgMjQyLCAxNjksIDQxLCAyMzQsIAotICAgIDgxLCA0MSwgMjM0LCA4MCwgNDEsIDIzNCwgNzksIDQxLCAyMzQsIDc4LCA0MSwgMjQyLCA2NywgNDEsIDI0MiwgNjYsIDQxLCAKLSAgICAyMzMsIDIxNCwgNDEsIDIzMywgMjE2LCA0MSwgMjM0LCAxODQsIDQxLCAyMzQsIDEwLCA0MSwgMjM0LCAxNywgNDEsIDIyMiwgCi0gICAgMTg3LCA0MSwgMjIyLCAxNTMsIDQxLCAyMjAsIDU3LCA0MSwgMjIxLCA2MSwgNDEsIDIyMSwgNjAsIDQxLCAyNDgsIDE2MSwgCi0gICAgNDEsIDI0NywgMjQzLCA0MSwgMjQ3LCA3NSwgNDEsIDIxNiwgMjQzLCA0MSwgMjMwLCAyMCwgNDEsIDIyOCwgMTUyLCA0MSwgCi0gICAgMjQyLCAxNCwgNDEsIDIyNiwgMjA4LCA0MSwgMjI2LCAyMDcsIDQxLCAyNTIsIDEwNSwgNDEsIDIyNSwgMjM3LCA0MSwgMjI1LCAKLSAgICAyMDEsIDQxLCAyMjUsIDIwMiwgNDEsIDI1MSwgMTU3LCA0MSwgMjQwLCAyMTEsIDQxLCAyNDAsIDIwNywgNDEsIDI1MSwgMjAsIAotICAgIDQxLCAyNDAsIDE5NCwgNDEsIDI0MSwgMTk5LCA0MSwgMjI2LCAzNSwgNDEsIDIyNiwgNjksIDQxLCAyNDEsIDE4MywgNDEsIAotICAgIDIyNiwgNjYsIDQxLCAyMjYsIDgyLCA0MSwgMjUxLCAyMzcsIDQxLCAyMjUsIDE0MCwgNDEsIDI1MSwgMTA2LCA0MSwgMjQxLCAKLSAgICA0MiwgNDEsIDIyNSwgMTMwLCA0MSwgMjQxLCAzNSwgNDEsIDI0MSwgMzcsIDQxLCAyMzIsIDcsIDQxLCAyMzIsIDMsIDQxLCAKLSAgICAyMzIsIDExLCA0MSwgMjMxLCAyMTMsIDQxLCAyMzEsIDIzOCwgNDEsIDIzMSwgMTAsIDQxLCAyMzAsIDI0NSwgNDEsIDIzMCwgCi0gICAgMjQ0LCA0MSwgMjMxLCAxMzgsIDQxLCAyMzEsIDEzNSwgNDEsIDIzMSwgMTM5LCA0MSwgMjEzLCA5MCwgNDEsIDIxMywgODgsIAotICAgIDQxLCAyMTIsIDE5MiwgNDEsIDIyMywgMTIzLCA0MSwgMjIzLCAxMjcsIDQxLCAyMjMsIDI4LCA0MSwgMjIzLCAyMywgNDEsIAotICAgIDIyMywgMjM1LCA0MSwgMjIzLCAyMzIsIDQxLCAyMTQsIDIyLCAxMDUsIDIwMSwgMTYsIDMxLCAyNDAsIDIyNiwgMjEyLCA3OSwgCi0gICAgMTA1LCAyMDEsIDE2LCAzMSwgMjQwLCAyMjYsIDExNiwgMTA1LCAyMDEsIDE2LCAzMSwgMjQwLCAyMjYsIDEwOSwgMTA1LCAKLSAgICAyMDEsIDE2LCAzMSwgMjQwLCAyMjYsIDE2NiwgMTA1LCAyMDEsIDE2LCAzMSwgMjQwLCAyMjYsIDE2MywgMTA1LCAyMDEsIAotICAgIDE2LCAzMSwgMjQwLCAyMjYsIDE4MCwgMTA1LCAyMDEsIDE2LCAzMSwgMjQwLCAyMjYsIDE4OSwgMTA1LCAyMDEsIDE2LCAzMSwgCi0gICAgMjQwLCAyMjYsIDE5OCwgMTA1LCAyMDEsIDE2LCAzMSwgMjQwLCAyMjYsIDE5NSwgMTA1LCAyMDEsIDE2LCAzMSwgMjQwLCAKLSAgICAyMjYsIDIwMCwgMTA1LCAyMDEsIDE2LCAzMSwgMjQwLCAyMjYsIDIxNywgMjAwLCAxMDUsIDIwMSwgMTYsIDMxLCAyNDAsIAotICAgIDIyNiwgMjQ1LCAxMjQsIDEwNSwgMjAxLCAxNiwgMzEsIDI0MCwgMjI2LCAyMTYsIDQxLCAxMDUsIDIwMSwgMTYsIDMxLCAKLSAgICAyNDAsIDIyNiwgMjE3LCAxMTcsIDEwNSwgMjAxLCAxNiwgMzEsIDI0MCwgMjI2LCAyNDMsIDIzMSwgMTA1LCAyMDEsIDE2LCAKLSAgICAzMSwgMjQwLCAyMjYsIDI0NCwgODcsIDEwNSwgMjAxLCAxNiwgMzEsIDI0MCwgMjI2LCAyMjAsIDQ3LCAxMDUsIDIwMSwgMTYsIAotICAgIDMxLCAyNDAsIDIyNiwgMjIxLCA0MCwgMTA1LCAyMDEsIDE2LCAzMSwgMjQwLCAyMjYsIDI0NSwgMTQ3LCAxMDUsIDIwMSwgCi0gICAgMTYsIDMxLCAyNDAsIDIyNiwgMjI5LCAyOCwgMTA1LCAyMDEsIDE2LCAzMSwgMjQwLCAyMjYsIDIxNiwgMzgsIDEwNSwgMjAxLCAKLSAgICAxNiwgMzEsIDI0MCwgMjI2LCAyMTYsIDMyLCAxMDUsIDIwMSwgMTYsIDMxLCAyNDAsIDIyNiwgMjE2LCAyOCwgMTA1LCAyMDEsIAotICAgIDE2LCAzMSwgMjQwLCAyMjYsIDIxNiwgMjksIDEwNSwgMjAxLCAxNiwgMzEsIDI0MCwgMjI2LCAyMTYsIDM0LCA0MSwgMjQwLCAKLSAgICAyMTcsIDQxLCAyNDgsIDE2NCwgNDEsIDI1MywgMTA4LCA0MSwgMTM0LCA0MSwgMjI2LCAyNDksIDQxLCAyMjYsIDk5LCA0MSwgCi0gICAgMjQ3LCAxMDEsIDQxLCAyNDcsIDEwMiwgMjE5LCAxNjUsIDQxLCAyNDcsIDEwMiwgMjQ5LCA0OSwgNDEsIDIzNSwgMTU0LCAKLSAgICA0MSwgMjQ1LCA1NCwgMjMwLCAyNSwgMjQxLCAyMDAsIDQxLCAyNDUsIDU0LCAyMzAsIDI1LCAyMTgsIDEyMCwgNDEsIDI0NSwgCi0gICAgNTQsIDIzMCwgMjUsIDIxOCwgMjQsIDQxLCAyNDUsIDU0LCAyMzAsIDI1LCAyMzEsIDEzNCwgNDEsIDI0OSwgOTYsIDQxLCAKLSAgICAyMjYsIDIxNCwgMjU0LCAzNCwgNDEsIDIwNSwgNDEsIDIzMCwgMTczLCA2MSwgNDEsIDE4OCwgNDEsIDE4MSwgNDEsIDIzNCwgCi0gICAgMTkxLCA0MSwgMjMxLCAxOTIsIDQxLCAyNDMsIDU2LCA0MSwgMjUwLCAyMDYsIDQxLCAyMzQsIDE5MCwgNDEsIDIyNiwgMjYsIAotICAgIDQxLCAyMjksIDE2MywgNDEsIDIzMCwgMTczLCAyNDQsIDIzMCwgNDEsIDIzMCwgMTczLCAyNDMsIDE3NywgNDEsIDIzMSwgCi0gICAgODIsIDQxLCAyMzQsIDE0MCwgNDEsIDI0MCwgMTU1LCA0MSwgMjM0LCAxMDMsIDQxLCAyMzEsIDQ0LCA0MSwgMjQyLCAxOTIsIAotICAgIDQxLCAyMTcsIDczLCA0MSwgMjMwLCAxNzMsIDE1MCwgNDEsIDIzMCwgMjM4LCA0MSwgMjQ3LCAxMDksIDQxLCAyMzQsIDQ5LCAKLSAgICA0MSwgMjQ0LCAxNCwgNDEsIDIyOCwgMjAwLCA0MSwgMjMwLCAxNzMsIDE4MywgNDEsIDIzMCwgMjM1LCA0MSwgMjQ5LCAxNzYsIAotICAgIDQxLCAyMzQsIDQzLCA0MSwgMjMwLCAyMzYsIDIxOSwgMTY1LCA0MSwgMjQ5LCAxNzcsIDIxOSwgMTY1LCA0MSwgMjMyLCAKLSAgICAxMTAsIDIxOSwgMTY1LCA0MSwgMjM0LCA0NCwgMjE5LCAxNjUsIDQxLCAyMzAsIDIzNiwgMjQ5LCA0OSwgNDEsIDI0OSwgCi0gICAgMTc3LCAyNDksIDQ5LCA0MSwgMjMyLCAxMTAsIDI0OSwgNDksIDQxLCAyMzQsIDQ0LCAyNDksIDQ5LCA0MSwgMjMyLCAxMTAsIAotICAgIDExMCwgMTk3LCA0MSwgMjMyLCAxMTAsIDExMCwgMjIzLCA0LCAyMTksIDE2NSwgNDEsIDE5MywgNDEsIDIzNCwgNCwgNDEsIAotICAgIDIzMCwgMTc1LCA0MSwgMjQyLCAxMjcsIDQxLCAyMjQsIDY2LCA0MSwgMjI0LCA2NywgMTEwLCAxOTcsIDQxLCAyMjQsIDY3LCAKLSAgICAxMTAsIDIyMywgNCwgMjE5LCAxNjUsIDQxLCAyMjUsIDQ3LCA0MSwgMjI4LCAxMjQsIDQxLCAyMzAsIDE3MywgMTk3LCA0MSwgCi0gICAgMjMwLCAxNzQsIDQxLCAyMjUsIDQsIDQxLCAyMjgsIDMzLCA0MSwgMjMwLCAxNzMsIDIxNSwgNzksIDQxLCAyMzAsIDEyMCwgCi0gICAgNDEsIDIzMywgMjA3LCA0MSwgMjMwLCAxMjEsIDIzMSwgMTM4LCA0MSwgMjI1LCAzLCA0MSwgMjI4LCAzMiwgNDEsIDIzMCwgCi0gICAgMTczLCAyMTQsIDgyLCA0MSwgMjMwLCAxMTUsIDQxLCAyMzMsIDIwNSwgNDEsIDIzMCwgMTE2LCAyMzEsIDEzOCwgNDEsIAotICAgIDIzNSwgMjgsIDIyNywgODYsIDQxLCAyMzIsIDExMCwgMjI3LCA4NiwgNDEsIDI1NCwgNDUsIDQxLCAyNTEsIDg3LCA0MSwgCi0gICAgMjUwLCAxNDcsIDQxLCAyNTAsIDEyNSwgNDEsIDI1MCwgMjUzLCAxMTAsIDIzNCwgMTQwLCA0MSwgMjQ5LCAxNzUsIDQxLCAKLSAgICAyNDgsIDg4LCA0MSwgMjQyLCA1MywgNDEsIDE1OSwgNDEsIDI0MCwgMjE4LCA0MSwgMjM1LCAyNTEsIDQxLCAyMzQsIDU2LCAKLSAgICA0MSwgMjM0LCA0NCwgMjUwLCAxODIsIDQxLCAyMzMsIDI0MCwgNDEsIDIzMiwgMjExLCA0MSwgMjMyLCAyMTAsIDQxLCAyMzIsIAotICAgIDIwMCwgNDEsIDIzMiwgMTIyLCA0MSwgMjMxLCAxOTMsIDIyMCwgNywgNDEsIDIzMSwgOSwgNDEsIDIzMCwgMjIyLCA0MSwgCi0gICAgMjI2LCAyNCwgNDEsIDIyNSwgMTUzLCA0MSwgMjI1LCA5OSwgNDEsIDIyNSwgOTcsIDQxLCAyMTksIDE1OSwgNDEsIDIxOCwgCi0gICAgMjAzLCA0MSwgMjE0LCA4LCA0MSwgMjE1LCA4MCwgMTEwLCAxODMsIDQxLCAxMTgsIDExMCwgMTgzLCAxMDUsIDIwMSwgMTYsIAotICAgIDMxLCAyNDgsIDkyLCAxMTYsIDEwNSwgMjAxLCAxNiwgMzEsIDI0OCwgOTIsIDEwOSwgMTA1LCAyMDEsIDE2LCAzMSwgMjQ4LCAKLSAgICA5MiwgMTY2LCAxMDUsIDIwMSwgMTYsIDMxLCAyNDgsIDkyLCAxNjMsIDEwNSwgMjAxLCAxNiwgMzEsIDI0OCwgOTIsIDE4MCwgCi0gICAgMTA1LCAyMDEsIDE2LCAzMSwgMjQ4LCA5MiwgMTg5LCAxMDUsIDIwMSwgMTYsIDMxLCAyNDgsIDkyLCAxOTgsIDEwNSwgMjAxLCAKLSAgICAxNiwgMzEsIDI0OCwgOTIsIDE5NSwgMTA1LCAyMDEsIDE2LCAzMSwgMjQ4LCA5MiwgMjAwLCAxMDUsIDIwMSwgMTYsIDMxLCAKLSAgICAyNDgsIDkyLCAyMTcsIDIwMCwgMTA1LCAyMDEsIDE2LCAzMSwgMjQ4LCA5MiwgMjQ1LCAxMjQsIDEwNSwgMjAxLCAxNiwgMzEsIAotICAgIDI0OCwgOTIsIDIxNiwgNDEsIDEwNSwgMjAxLCAxNiwgMzEsIDI0OCwgOTIsIDIxNywgMTE3LCAxMDUsIDIwMSwgMTYsIDMxLCAKLSAgICAyNDgsIDkyLCAyNDMsIDIzMSwgMTA1LCAyMDEsIDE2LCAzMSwgMjQ4LCA5MiwgMjQ0LCA4NywgMTA1LCAyMDEsIDE2LCAzMSwgCi0gICAgMjQ4LCA5MiwgMjIwLCA0NywgMTA1LCAyMDEsIDE2LCAzMSwgMjQ4LCA5MiwgMjIxLCA0MCwgMTA1LCAyMDEsIDE2LCAzMSwgCi0gICAgMjQ4LCA5MiwgMjQ1LCAxNDcsIDEwNSwgMjAxLCAxNiwgMzEsIDI0OCwgOTIsIDIyOSwgMjgsIDEwNSwgMjAxLCAxNiwgMzEsIAotICAgIDI0OCwgOTIsIDIxNiwgMzgsIDEwNSwgMjAxLCAxNiwgMzEsIDI0OCwgOTIsIDIxNiwgMzIsIDEwNSwgMjAxLCAxNiwgMzEsIAotICAgIDI0OCwgOTIsIDIxNiwgMjgsIDEwNSwgMjAxLCAxNiwgMzEsIDI0OCwgOTIsIDIxNiwgMjksIDEwNSwgMjAxLCAxNiwgMzEsIAotICAgIDI0OCwgOTIsIDIxNiwgMzQsIDEwNSwgMjAxLCAxNiwgMzEsIDI0OCwgOTIsIDIxNiwgMzUsIDEwNSwgMjAxLCAxNiwgMzEsIAotICAgIDI0OCwgOTIsIDIxNiwgMzAsIDEwNSwgMjAxLCAxNiwgMzEsIDI0OCwgOTIsIDIxNiwgMzEsIDEwNSwgMjAxLCAxNiwgMzEsIAotICAgIDI0OCwgOTIsIDIxNiwgMzcsIDEwNSwgMjAxLCAxNiwgMzEsIDI0OCwgOTIsIDIxNiwgMzMsIDEwNSwgMjAxLCAxNiwgMzEsIAotICAgIDI0OCwgOTIsIDIxNywgMTE1LCAxMDUsIDIwMSwgMTYsIDMxLCAyNDgsIDkyLCAyMTcsIDExNCwgNDEsIDI0MywgOTQsIDI0MSwgCi0gICAgMTc3LCAzMSwgMjE3LCAxNDksIDI0OSwgODAsIDI0MSwgMjA3LCAyNDEsIDE3NywgMzEsIDIxNywgMTQ5LCAyMjQsIDE1LCAKLSAgICAyNDUsIDE3OSwgMjQxLCAxNzcsIDMxLCAyNDcsIDE4MywgMjUzLCAxMjMsIDIxNywgMTQ5LCAyNTEsIDIzMiwgMjQxLCAxNzcsIAotICAgIDMxLCAyMTIsIDIxNCwgMjQ0LCA3LCAyNDEsIDE3NywgMzEsIDIxNCwgNDMsIDI0MSwgMTc3LCAzMSwgMjQ5LCAxNDIsIDI0MSwgCi0gICAgMTc3LCAzMSwgMjE3LCAxNDksIDI1MywgMTc0LCAyNDEsIDE3NywgMzEsIDI0MSwgNDYsIDIxNiwgMjQ5LCAyNDEsIDE3NywgCi0gICAgMzEsIDMsIDIxOCwgMTIsIDI0MSwgMTc3LCAzMSwgMjE2LCAxOTUsIDI0MSwgMTc3LCAzMSwgMjI2LCA5NCwgMjQxLCAxNzcsIAotICAgIDMxLCAyMTksIDk3LCAyNDEsIDE3NywgMzEsIDI0NCwgMTA4LCAyNDEsIDE3NywgMzEsIDI0MiwgMTA5LCAyMjUsIDEyMCwgCi0gICAgMjQxLCAxNzcsIDMxLCAyMzAsIDIyNSwgMjQxLCAxNzcsIDMxLCAyNDUsIDg1LCAyNDEsIDE3NywgMzEsIDI0NCwgOCwgMjQxLCAKLSAgICAxNzcsIDMxLCAyMTMsIDE5NCwgMjI3LCA2MywgMjE3LCAxNDksIDI0OCwgMzcsIDI0MSwgMTc3LCAzMSwgMjUzLCAyMjEsIAotICAgIDI0MSwgMTc3LCAzMSwgMjQ5LCAxMjQsIDI0MSwgMTc3LCAzMSwgMjUxLCAxNTAsIDIxNywgOTIsIDI0MSwgMTc3LCAzMSwgCi0gICAgMjQyLCAxMjUsIDI0MSwgMTc3LCAzMSwgMjE5LCAxNzcsIDI1MywgMjM3LCAyNDEsIDE3NywgMzEsIDIyMywgMjA1LCAyNDEsIAotICAgIDE3NywgMzEsIDIzNSwgMjE3LCAyNDEsIDE3NywgMzEsIDI0MiwgMTA5LCAyMTgsIDEyLCAyNDEsIDE3NywgMzEsIDIzMCwgCi0gICAgMTgxLCAyNDksIDk4LCAyNDEsIDE3NywgMzEsIDI0MiwgMTA5LCAyMjUsIDc3LCAyNDEsIDE3NywgMzEsIDIxNywgMTQ5LCAKLSAgICAyNTQsIDE3OCwgMjE0LCAyNCwgMjQxLCAxNzcsIDMxLCAyMTcsIDE0OSwgMjQ5LCAyMDEsIDI0NCwgNjUsIDI0MSwgMTc3LCAKLSAgICAzMSwgMjM1LCAyMzAsIDI0MSwgMTc3LCAzMSwgMjQ2LCAxMiwgMjQxLCAxNzcsIDMxLCAyMjMsIDIwOCwgMjQxLCAxNzcsIAotICAgIDMxLCAyNDIsIDEwOSwgMjI1LCAxMDQsIDI0MSwgMTc3LCAzMSwgMjI1LCA2MSwgMjQxLCAxNzcsIDMxLCAyNDgsIDEwNiwgCi0gICAgNjUsIDIxNywgMTQ5LCAyMzMsIDIsIDI0MSwgMTc3LCAzMSwgMjE3LCAxNDksIDI0NCwgMTQyLCAyNDEsIDE3NywgMzEsIAotICAgIDIyNywgMjksIDI0MSwgMTc3LCAzMSwgMjI3LCAxMDgsIDI0MSwgMTc3LCAzMSwgMjQ4LCAxMCwgMjQxLCAxNzcsIDMxLCAKLSAgICAyNDgsIDMwLCAyNDEsIDE3NywgMzEsIDIzNSwgMjQzLCAyNDEsIDE3NywgMzEsIDI1MSwgNzcsIDI0MSwgMTc3LCAzMSwgCi0gICAgMjQ5LCAxNTksIDIxMSwgMjExLCAyMzEsIDE0MSwgMjQxLCAxNzcsIDMxLCAyNDMsIDYzLCAyMTYsIDI0OSwgMjQxLCAxNzcsIAotICAgIDMxLCAyMjUsIDEyLCAyMTUsIDEyNSwgMjQxLCAxNzcsIDMxLCAyMjcsIDI4LCAyNDEsIDE3NywgMzEsIDIxNywgMTQ5LCAKLSAgICAyMTMsIDI1NCwgMjQxLCAxNzcsIDMxLCAyMjMsIDE5OCwgMjQxLCAxNzcsIDMxLCAyMTcsIDE0OSwgMjUwLCAxNTMsIDI0MSwgCi0gICAgMTc3LCAzMSwgMjE3LCAxNDksIDI1MywgMTcwLCAyMTcsIDg3LCAyNDEsIDE3NywgMzEsIDIxNywgMTQ5LCAyMzQsIDE4NSwgCi0gICAgMjE5LCA3NCwgMjMwLCAxODUsIDI0MSwgMTc3LCAzMSwgMjQ3LCAyMzksIDI0MSwgMTc3LCAzMSwgMjE3LCAxNDksIDIzMSwgCi0gICAgMjE1LCAyMzIsIDgsIDI0MSwgMTc3LCAzMSwgMjU0LCAxNzksIDI0MSwgMTc3LCAzMSwgMjE3LCAxNDksIDIxNCwgMzgsIAotICAgIDI0MSwgMTc3LCAzMSwgMjE3LCAxNDksIDI0MywgMjMsIDIxMywgMjI0LCAyNDEsIDE3NywgMzEsIDIxNywgMTQ5LCAyMzUsIAotICAgIDU1LCAyMzMsIDEzMSwgMjQxLCAxNzcsIDMxLCAyNDcsIDEzNiwgMjQxLCAxNzcsIDMxLCAyMzIsIDI0OSwgMjQxLCAxNzcsIAotICAgIDMxLCAyMzUsIDIyMCwgMjE2LCAxNDUsIDI0MSwgMTc3LCAzMSwgMywgMjI1LCA3NywgMjQxLCAxNzcsIDMxLCAyNTQsIDEyMiwgCi0gICAgMjQ5LCAxNTEsIDI0MSwgMTc3LCAzMSwgMjUxLCAyMzUsIDI0OSwgMTUxLCA4LCA0LCAyMzUsIDE1OCwgOCwgNCwgMjM1LCAKLSAgICAxNTEsIDgsIDQsIDcyLCA4LCA0LCAyMzUsIDE4MCwgOCwgNCwgMjM2LCA1MywgOCwgNCwgMjM2LCAzNiwgOCwgNCwgMjM2LCAKLSAgICA1NSwgOCwgNCwgMjM2LCA1NCwgOCwgNCwgMjUzLCAxMjIsIDgsIDQsIDI1MywgODUsIDgsIDQsIDYxLCA4LCA0LCAyNTMsIAotICAgIDIzOSwgOCwgNCwgMjE1LCAxMzUsIDgsIDQsIDIxNSwgMTM4LCA4LCA0LCAyMTUsIDEzNiwgOCwgNCwgMjI3LCA4LCA4LCA0LCAKLSAgICAyMjYsIDIzOCwgOCwgNCwgNzUsIDgsIDQsIDIyNywgNDEsIDgsIDQsIDI0NSwgMiwgOCwgNCwgNzQsIDgsIDQsIDIxMywgCi0gICAgMTgzLCA4LCA0LCAyNTEsIDE1MSwgOCwgNCwgMjUxLCAxNDgsIDgsIDQsIDI1MSwgMTg0LCA4LCA0LCAyNTEsIDE2MSwgOCwgCi0gICAgNCwgMjUxLCAxNzQsIDgsIDQsIDI1MSwgMTczLCA4LCA0LCAyNTEsIDE3NiwgOCwgNCwgMjUxLCAxNzUsIDgsIDQsIDI1MiwgCi0gICAgNDEsIDgsIDQsIDI1MiwgMzMsIDgsIDQsIDI1MiwgMTA3LCA4LCA0LCAyNTIsIDYxLCA4LCA0LCAyNTEsIDMwLCA4LCA0LCAKLSAgICAyNTEsIDM0LCA4LCA0LCAyNTEsIDMxLCA4LCA0LCAyNTEsIDEwNSwgOCwgNCwgMjUxLCA4OSwgOCwgNCwgMjUxLCAxMjgsIDgsIAotICAgIDQsIDI1MSwgMTEwLCA4LCA0LCAyNTEsIDE5OCwgOCwgNCwgMjUxLCAyNTEsIDgsIDQsIDI1MSwgMjEwLCA4LCA0LCAyNTEsIAotICAgIDE2LCA4LCA0LCAyNTEsIDEzLCA4LCA0LCAyNTEsIDU0LCA4LCA0LCAyNTEsIDI5LCA4LCA0LCAyNTEsIDIzLCA4LCA0LCAKLSAgICAyNTEsIDI3LCA4LCA0LCAyNTEsIDEsIDgsIDQsIDI1MSwgMCwgOCwgNCwgMjUxLCA2LCA4LCA0LCAyNTEsIDQsIDgsIDQsIAotICAgIDI1MSwgMiwgOCwgNCwgMjUxLCAzLCA4LCA0LCAyMjUsIDE4MSwgOCwgNCwgMjI1LCAxNzcsIDgsIDQsIDIyNSwgMjQwLCA4LCAKLSAgICA0LCAyMjUsIDE5MSwgOCwgNCwgMjI1LCAyMDcsIDgsIDQsIDIyNSwgMjM0LCA4LCA0LCAyMjUsIDIzMCwgOCwgNCwgMjI2LCAKLSAgICAxMTMsIDgsIDQsIDIyNiwgMTA0LCA4LCA0LCAxOTMsIDgsIDQsIDIyNiwgMTQ5LCA4LCA0LCAyMjUsIDIxLCA4LCA0LCAyMjUsIAotICAgIDIzLCA4LCA0LCAyMjUsIDIyLCA4LCA0LCAyMjUsIDExMywgOCwgNCwgMjI1LCAxMDIsIDgsIDQsIDIyNSwgMTUwLCA4LCA0LCAKLSAgICAyMjUsIDEyNSwgOCwgNCwgMjI1LCA4LCA4LCA0LCAyMjUsIDUsIDgsIDQsIDIyNSwgMzUsIDgsIDQsIDIyNSwgMjAsIDgsIDQsIAotICAgIDIyNSwgMTMsIDgsIDQsIDIyNSwgMTgsIDgsIDQsIDIyNCwgMjQ0LCA4LCA0LCAyMjQsIDI0MywgOCwgNCwgMjI0LCAyNDgsIAotICAgIDgsIDQsIDIyNCwgMjQ3LCA4LCA0LCAyMjQsIDI0NSwgOCwgNCwgMjI0LCAyNDYsIDgsIDQsIDI1MiwgMTYsIDgsIDQsIDI1MiwgCi0gICAgMTUsIDgsIDQsIDI1MiwgMjIsIDgsIDQsIDI1MiwgMTcsIDgsIDQsIDI1MiwgMTksIDgsIDQsIDI1MiwgMTgsIDgsIDQsIAotICAgIDI1MiwgMjEsIDgsIDQsIDI1MiwgMjAsIDgsIDQsIDI1MiwgMjgsIDgsIDQsIDI1MiwgMjcsIDgsIDQsIDI1MiwgMzEsIDgsIAotICAgIDQsIDI1MiwgMjksIDgsIDQsIDI1MiwgNywgOCwgNCwgMjUyLCA5LCA4LCA0LCAyNTIsIDgsIDgsIDQsIDI1MiwgMTIsIDgsIAotICAgIDQsIDI1MiwgMTEsIDgsIDQsIDI1MiwgMTQsIDgsIDQsIDI1MiwgMTMsIDgsIDQsIDI1MiwgMjMsIDgsIDQsIDI1MiwgMjYsIAotICAgIDgsIDQsIDI1MiwgMjQsIDgsIDQsIDI1MiwgMywgOCwgNCwgMjUyLCAyLCA4LCA0LCAyNTIsIDEwLCA4LCA0LCAyNTIsIDYsIAotICAgIDgsIDQsIDI1MiwgNCwgOCwgNCwgMjUyLCA1LCA4LCA0LCAyNTEsIDI1NSwgOCwgNCwgMjUxLCAyNTQsIDgsIDQsIDI1MiwgMSwgCi0gICAgOCwgNCwgMjUyLCAwLCA4LCA0LCAyMjksIDI0OCwgOCwgNCwgMjI5LCAyNDcsIDgsIDQsIDIyOSwgMjUzLCA4LCA0LCAyMjksIAotICAgIDI0OSwgOCwgNCwgMjI5LCAyNTAsIDgsIDQsIDIyOSwgMjUyLCA4LCA0LCAyMjksIDI1MSwgOCwgNCwgMjI5LCAyNTUsIDgsIAotICAgIDQsIDIyOSwgMjU0LCA4LCA0LCAyMzAsIDEsIDgsIDQsIDIzMCwgMCwgOCwgNCwgMjI5LCAyNDQsIDgsIDQsIDIyOSwgMjQzLCAKLSAgICA4LCA0LCAyMjksIDI0NiwgOCwgNCwgMjI5LCAyNDUsIDgsIDQsIDIyOSwgMjM4LCA4LCA0LCAyMjksIDIzNywgOCwgNCwgCi0gICAgMjI5LCAyNDIsIDgsIDQsIDIyOSwgMjQxLCA4LCA0LCAyMjksIDIzOSwgOCwgNCwgMjI5LCAyNDAsIDgsIDQsIDIyOSwgMjMyLCAKLSAgICA4LCA0LCAyMjksIDIzMSwgOCwgNCwgMjI5LCAyMzYsIDgsIDQsIDIyOSwgMjM1LCA4LCA0LCAyMjksIDIzMywgOCwgNCwgCi0gICAgMjI5LCAyMzQsIDgsIDQsIDI0MSwgOTYsIDgsIDQsIDI0MSwgOTUsIDgsIDQsIDI0MSwgMTAxLCA4LCA0LCAyNDEsIDk3LCA4LCAKLSAgICA0LCAyNDEsIDk4LCA4LCA0LCAyNDEsIDEwMCwgOCwgNCwgMjQxLCA5OSwgOCwgNCwgMjQxLCAxMDQsIDgsIDQsIDI0MSwgCi0gICAgMTAzLCA4LCA0LCAyNDEsIDEwNiwgOCwgNCwgMjQxLCAxMDUsIDgsIDQsIDI0MSwgODcsIDgsIDQsIDI0MSwgODksIDgsIDQsIAotICAgIDI0MSwgODgsIDgsIDQsIDI0MSwgOTIsIDgsIDQsIDI0MSwgOTEsIDgsIDQsIDI0MSwgOTQsIDgsIDQsIDI0MSwgOTMsIDgsIAotICAgIDQsIDI0MSwgODMsIDgsIDQsIDI0MSwgODIsIDgsIDQsIDI0MSwgOTAsIDgsIDQsIDI0MSwgODYsIDgsIDQsIDI0MSwgODQsIAotICAgIDgsIDQsIDI0MSwgODUsIDgsIDQsIDI0MSwgNzcsIDgsIDQsIDI0MSwgODEsIDgsIDQsIDI0MSwgODAsIDgsIDQsIDI0MSwgCi0gICAgNzgsIDgsIDQsIDI0MSwgNzksIDgsIDQsIDIzMCwgMjQxLCA4LCA0LCAyMzAsIDI0MCwgOCwgNCwgMjMxLCA0MiwgOCwgNCwgCi0gICAgMjMwLCAyNDcsIDgsIDQsIDIzMSwgMTYsIDgsIDQsIDIzMSwgMzQsIDgsIDQsIDIzMSwgMzIsIDgsIDQsIDIzMSwgMjAyLCA4LCAKLSAgICA0LCAyMzEsIDE5OCwgOCwgNCwgMTg4LCA4LCA0LCAyMzEsIDIzNSwgOCwgNCwgMjMwLCAxNDQsIDgsIDQsIDIzMCwgMTQzLCAKLSAgICA4LCA0LCAyMzAsIDE0NywgOCwgNCwgMjMwLCAxNDUsIDgsIDQsIDIzMCwgMTkxLCA4LCA0LCAyMzAsIDE3NywgOCwgNCwgCi0gICAgMjMwLCAyMzEsIDgsIDQsIDIzMCwgMTk2LCA4LCA0LCAyMzEsIDkzLCA4LCA0LCAyMzEsIDE1NiwgOCwgNCwgMjMwLCAxMjUsIAotICAgIDgsIDQsIDIzMCwgMTIyLCA4LCA0LCAyMzAsIDE3MiwgOCwgNCwgMjMwLCAxNDAsIDgsIDQsIDIzMCwgMTMzLCA4LCA0LCAKLSAgICAyMzAsIDEzOCwgOCwgNCwgMjMwLCAxMDAsIDgsIDQsIDIzMCwgOTksIDgsIDQsIDIzMCwgMTA1LCA4LCA0LCAyMzAsIDEwMiwgCi0gICAgOCwgNCwgMjQ0LCA1MiwgOCwgNCwgMjQ0LCA0NywgOCwgNCwgMjQ0LCA5MCwgOCwgNCwgMjQ0LCA2NywgOCwgNCwgMjQ0LCAKLSAgICAxMzUsIDgsIDQsIDI0NCwgMTI2LCA4LCA0LCAyNDQsIDE2NCwgOCwgNCwgMjQ0LCAxMzgsIDgsIDQsIDI0MywgMjI5LCA4LCAKLSAgICA0LCAyNDQsIDEyLCA4LCA0LCAyNDMsIDI1MiwgOCwgNCwgMjQzLCAxOTAsIDgsIDQsIDI0MywgMTg5LCA4LCA0LCAyNDMsIAotICAgIDIwNSwgOCwgNCwgMjQzLCAxOTUsIDgsIDQsIDI0MywgMTkzLCA4LCA0LCAyNDMsIDE5NCwgOCwgNCwgMjQzLCAxODAsIDgsIAotICAgIDQsIDI0MywgMTc5LCA4LCA0LCAyNDMsIDE4MywgOCwgNCwgMjQzLCAxODEsIDgsIDQsIDIxNCwgMTI1LCA4LCA0LCAyMTQsIAotICAgIDEyMCwgOCwgNCwgMjE0LCAxNTQsIDgsIDQsIDIxNCwgMTM0LCA4LCA0LCAyMTQsIDE0NiwgOCwgNCwgMjE0LCAxNDMsIDgsIAotICAgIDQsIDIxNCwgMTQ4LCA4LCA0LCAyMTQsIDE0NywgOCwgNCwgMjE0LCAyMzksIDgsIDQsIDIxNCwgMjM1LCA4LCA0LCAyMTUsIAotICAgIDEsIDgsIDQsIDIxNCwgMjUwLCA4LCA0LCAyMTQsIDEwNiwgOCwgNCwgMjE0LCAxMDIsIDgsIDQsIDIxNCwgMTE5LCA4LCA0LCAKLSAgICAyMTQsIDEwNywgOCwgNCwgMjE0LCAxNTUsIDgsIDQsIDIxNCwgMjIxLCA4LCA0LCAyMTQsIDkzLCA4LCA0LCAyMTQsIDkyLCAKLSAgICA4LCA0LCAyMTQsIDk5LCA4LCA0LCAyMTQsIDk2LCA4LCA0LCAyMTQsIDk0LCA4LCA0LCAyMTQsIDk1LCA4LCA0LCAyMTQsIAotICAgIDg2LCA4LCA0LCAyMTQsIDg1LCA4LCA0LCAyMTQsIDkwLCA4LCA0LCAyMTQsIDg5LCA4LCA0LCAyMTQsIDg3LCA4LCA0LCAKLSAgICAyMTQsIDg4LCA4LCA0LCAyNDcsIDEzMCwgOCwgNCwgMjQ3LCAxMTgsIDgsIDQsIDI0NywgMjExLCA4LCA0LCAyNDcsIDE1NSwgCi0gICAgOCwgNCwgMjQ3LCAxODgsIDgsIDQsIDI0NywgMTkyLCA4LCA0LCAyNDcsIDE5MSwgOCwgNCwgMjQ4LCA5OCwgOCwgNCwgMjQ4LCAKLSAgICA5MywgOCwgNCwgMjQ4LCAxNjQsIDgsIDQsIDI0OCwgMTE3LCA4LCA0LCAyNDYsIDE3LCA4LCA0LCAyNDYsIDE4LCA4LCA0LCAKLSAgICAyNDcsIDc0LCA4LCA0LCAyNDYsIDU2LCA4LCA0LCAyNDcsIDk5LCA4LCA0LCAyNDcsIDc2LCA4LCA0LCAyNDcsIDIzNywgOCwgCi0gICAgNCwgMjQ4LCA0MSwgOCwgNCwgMjQ3LCAyNTIsIDgsIDQsIDI0NiwgOCwgOCwgNCwgMjQ2LCA2LCA4LCA0LCAyNDYsIDMzLCA4LCAKLSAgICA0LCAyNDYsIDE2LCA4LCA0LCAyNDYsIDExLCA4LCA0LCAyNDYsIDE0LCA4LCA0LCAyMTcsIDIwLCA4LCA0LCAyMTcsIDE0LCAKLSAgICA4LCA0LCAyMTcsIDcxLCA4LCA0LCAyMTcsIDI5LCA4LCA0LCAyMTcsIDYzLCA4LCA0LCAyMTcsIDY1LCA4LCA0LCAyMTcsIAotICAgIDY0LCA4LCA0LCAyMTcsIDI1MywgOCwgNCwgMjE3LCAyNDAsIDgsIDQsIDIxOCwgNTIsIDgsIDQsIDIxOCwgNSwgOCwgNCwgCi0gICAgMjE2LCA2NiwgOCwgNCwgMjE2LCA2NSwgOCwgNCwgMjE2LCA2OCwgOCwgNCwgMjE2LCA2NywgOCwgNCwgMjE2LCAyMTgsIDgsIAotICAgIDQsIDIxNiwgMjE0LCA4LCA0LCAxMDgsIDgsIDQsIDIxNiwgMjI2LCA4LCA0LCAyMTcsIDE2NiwgOCwgNCwgMjE3LCAyMjksIAotICAgIDgsIDQsIDIxNywgMTkwLCA4LCA0LCAyMTYsIDUyLCA4LCA0LCAyMTYsIDQ4LCA4LCA0LCAyMTYsIDgyLCA4LCA0LCAyMTYsIAotICAgIDY0LCA4LCA0LCAyMTYsIDUzLCA4LCA0LCAyMTYsIDYyLCA4LCA0LCAyNDgsIDU4LCA4LCA0LCAyNDgsIDU3LCA4LCA0LCAKLSAgICAyNDgsIDYzLCA4LCA0LCAyNDgsIDU5LCA4LCA0LCAyNDgsIDYwLCA4LCA0LCAyNDgsIDYyLCA4LCA0LCAyNDgsIDYxLCA4LCAKLSAgICA0LCAyNDgsIDc5LCA4LCA0LCAyNDgsIDc4LCA4LCA0LCAyNDgsIDg2LCA4LCA0LCAyNDgsIDgwLCA4LCA0LCAyNDgsIDQ4LCAKLSAgICA4LCA0LCAyNDgsIDUwLCA4LCA0LCAyNDgsIDQ5LCA4LCA0LCAyNDgsIDUzLCA4LCA0LCAyNDgsIDUyLCA4LCA0LCAyNDgsIAotICAgIDU2LCA4LCA0LCAyNDgsIDU0LCA4LCA0LCAyNDgsIDcxLCA4LCA0LCAyNDgsIDc0LCA4LCA0LCAyNDgsIDcyLCA4LCA0LCAKLSAgICAyNDgsIDQ0LCA4LCA0LCAyNDgsIDQzLCA4LCA0LCAyNDgsIDUxLCA4LCA0LCAyNDgsIDQ3LCA4LCA0LCAyNDgsIDQ1LCA4LCAKLSAgICA0LCAyNDgsIDQ2LCA4LCA0LCAyMjksIDIwNiwgOCwgNCwgMjI5LCAyMDUsIDgsIDQsIDIyOSwgMjEzLCA4LCA0LCAyMjksIAotICAgIDIwOCwgOCwgNCwgMjI5LCAyMDksIDgsIDQsIDIyOSwgMjEwLCA4LCA0LCAyMjksIDIyMiwgOCwgNCwgMjI5LCAyMjEsIDgsIAotICAgIDQsIDIyOSwgMjI4LCA4LCA0LCAyMjksIDIyMywgOCwgNCwgMjI5LCAxOTgsIDgsIDQsIDIyOSwgMTk3LCA4LCA0LCAyMjksIAotICAgIDIwNCwgOCwgNCwgMjI5LCAxOTksIDgsIDQsIDIyOSwgMjE0LCA4LCA0LCAyMjksIDIyMCwgOCwgNCwgMjI5LCAyMTgsIDgsIAotICAgIDQsIDIyOSwgMTkwLCA4LCA0LCAyMjksIDE4OSwgOCwgNCwgMjI5LCAxOTUsIDgsIDQsIDIyOSwgMTkzLCA4LCA0LCAyMjksIAotICAgIDE5MSwgOCwgNCwgMjI5LCAxOTIsIDgsIDQsIDI0MSwgNjMsIDgsIDQsIDI0MSwgNjIsIDgsIDQsIDI0MSwgNjksIDgsIDQsIAotICAgIDI0MSwgNjQsIDgsIDQsIDI0MSwgNjYsIDgsIDQsIDI0MSwgNjUsIDgsIDQsIDI0MSwgNjgsIDgsIDQsIDI0MSwgNjcsIDgsIAotICAgIDQsIDI0MSwgNzQsIDgsIDQsIDI0MSwgNzMsIDgsIDQsIDI0MSwgNzYsIDgsIDQsIDI0MSwgNzUsIDgsIDQsIDI0MSwgNTcsIAotICAgIDgsIDQsIDI0MSwgNTgsIDgsIDQsIDI0MSwgNjAsIDgsIDQsIDI0MSwgNTksIDgsIDQsIDI0MSwgNjEsIDgsIDQsIDI0MSwgCi0gICAgNzAsIDgsIDQsIDI0MSwgNzIsIDgsIDQsIDI0MSwgNzEsIDgsIDQsIDI0MSwgNTYsIDgsIDQsIDIyOSwgMjAsIDgsIDQsIAotICAgIDIyOSwgMTgsIDgsIDQsIDIyOSwgNjQsIDgsIDQsIDIyOSwgMjMsIDgsIDQsIDIyOSwgNDYsIDgsIDQsIDIyOSwgNjAsIDgsIAotICAgIDQsIDIyOSwgNTksIDgsIDQsIDIzMCwgNSwgOCwgNCwgMjA1LCA4LCA0LCAyMzAsIDE3LCA4LCA0LCAyMjgsIDQyLCA4LCA0LCAKLSAgICAyMjgsIDQ0LCA4LCA0LCAyMjgsIDQzLCA4LCA0LCAyMjgsIDE2MiwgOCwgNCwgMjI4LCAxNDksIDgsIDQsIDIyOCwgMTg1LCAKLSAgICA4LCA0LCAyMjgsIDE3MSwgOCwgNCwgMjI5LCAxNjUsIDgsIDQsIDIyOSwgMTg3LCA4LCA0LCAyMjksIDE3NiwgOCwgNCwgCi0gICAgMjI4LCAzNywgOCwgNCwgMjI4LCAzNCwgOCwgNCwgMjI4LCA5MiwgOCwgNCwgMjI4LCA0MSwgOCwgNCwgMjI4LCAzOSwgOCwgCi0gICAgNCwgMjI4LCA0MCwgOCwgNCwgMjQxLCAxMjcsIDgsIDQsIDI0MSwgMTI2LCA4LCA0LCAyNDEsIDEzMiwgOCwgNCwgMjQxLCAKLSAgICAxMjgsIDgsIDQsIDI0MSwgMTI5LCA4LCA0LCAyNDEsIDEzMSwgOCwgNCwgMjQxLCAxMzAsIDgsIDQsIDI0MSwgMTM3LCA4LCAKLSAgICA0LCAyNDEsIDEzNiwgOCwgNCwgMjQxLCAxMzksIDgsIDQsIDI0MSwgMTM4LCA4LCA0LCAyNDEsIDExOSwgOCwgNCwgMjQxLCAKLSAgICAxMjEsIDgsIDQsIDI0MSwgMTIwLCA4LCA0LCAyNDEsIDEyMywgOCwgNCwgMjQxLCAxMjUsIDgsIDQsIDI0MSwgMTI0LCA4LCAKLSAgICA0LCAyNDEsIDEzMywgOCwgNCwgMjQxLCAxMzUsIDgsIDQsIDI0MSwgMTM0LCA4LCA0LCAyNDEsIDExNSwgOCwgNCwgMjQxLCAKLSAgICAxMTQsIDgsIDQsIDI0MSwgMTIyLCA4LCA0LCAyNDEsIDExOCwgOCwgNCwgMjQxLCAxMTYsIDgsIDQsIDI0MSwgMTE3LCA4LCAKLSAgICA0LCAyNDEsIDEwOSwgOCwgNCwgMjQxLCAxMDgsIDgsIDQsIDI0MSwgMTEzLCA4LCA0LCAyNDEsIDExMiwgOCwgNCwgMjQxLCAKLSAgICAxMTAsIDgsIDQsIDI0MSwgMTExLCA4LCA0LCAyMzIsIDIyNCwgOCwgNCwgMjMyLCAyMTgsIDgsIDQsIDIzMywgMTMsIDgsIDQsIAotICAgIDIzMiwgMjMxLCA4LCA0LCAyMzMsIDUsIDgsIDQsIDIzMywgNCwgOCwgNCwgMjMzLCA4LCA4LCA0LCAyMzMsIDYsIDgsIDQsIAotICAgIDIzMywgMTAyLCA4LCA0LCAyMzMsIDkzLCA4LCA0LCAyMzMsIDE1NywgOCwgNCwgMjMzLCAxMTEsIDgsIDQsIDIzMiwgMTM3LCAKLSAgICA4LCA0LCAyMzIsIDEzNiwgOCwgNCwgMjMyLCAxMzksIDgsIDQsIDIzMiwgMTM4LCA4LCA0LCAyMzIsIDE3MSwgOCwgNCwgCi0gICAgMjMyLCAxNjEsIDgsIDQsIDIzMiwgMjA4LCA4LCA0LCAyMzIsIDE3NSwgOCwgNCwgMjMzLCAyOCwgOCwgNCwgMjMzLCA4MiwgCi0gICAgOCwgNCwgMjMzLCA0MSwgOCwgNCwgMjMyLCAxMzIsIDgsIDQsIDIzMiwgMTMxLCA4LCA0LCAyMzIsIDE1NiwgOCwgNCwgMjMyLCAKLSAgICAxMzUsIDgsIDQsIDIzMiwgMTMzLCA4LCA0LCAyMzIsIDEzNCwgOCwgNCwgMjMyLCAxMTQsIDgsIDQsIDIzMiwgMTEzLCA4LCAKLSAgICA0LCAyMzIsIDEyMSwgOCwgNCwgMjMyLCAxMTcsIDgsIDQsIDIzMiwgMTE1LCA4LCA0LCAyMzIsIDExNiwgOCwgNCwgMjQyLCAKLSAgICAxNjUsIDgsIDQsIDI0MiwgMTY0LCA4LCA0LCAyNDIsIDE5MCwgOCwgNCwgMjQyLCAxNzUsIDgsIDQsIDI0MiwgMTgyLCA4LCAKLSAgICA0LCAyNDIsIDE4MSwgOCwgNCwgMjQyLCAxODQsIDgsIDQsIDI0MiwgMTgzLCA4LCA0LCAyNDMsIDY1LCA4LCA0LCAyNDMsIAotICAgIDYwLCA4LCA0LCAyNDMsIDExMCwgOCwgNCwgMjQzLCA3NSwgOCwgNCwgMjQyLCA3MiwgOCwgNCwgMjQyLCA3MSwgOCwgNCwgCi0gICAgMjQyLCA3NCwgOCwgNCwgMjQyLCA3MywgOCwgNCwgMjQyLCAxMzAsIDgsIDQsIDI0MiwgMTI4LCA4LCA0LCAyNDIsIDE1MCwgCi0gICAgOCwgNCwgMjQyLCAxMzgsIDgsIDQsIDI0MywgOSwgOCwgNCwgMjQzLCA3LCA4LCA0LCAyNDMsIDM4LCA4LCA0LCAyNDMsIDIwLCAKLSAgICA4LCA0LCAyNDIsIDYyLCA4LCA0LCAyNDIsIDYxLCA4LCA0LCAyNDIsIDkyLCA4LCA0LCAyNDIsIDcwLCA4LCA0LCAyNDIsIAotICAgIDYzLCA4LCA0LCAyNDIsIDY5LCA4LCA0LCAyMzQsIDcwLCA4LCA0LCAyMzQsIDY5LCA4LCA0LCAyMzQsIDEwMSwgOCwgNCwgCi0gICAgMjM0LCA4NCwgOCwgNCwgMjM0LCA5NCwgOCwgNCwgMjM0LCA5NywgOCwgNCwgMjM0LCA5NSwgOCwgNCwgMjM0LCAyMDcsIDgsIAotICAgIDQsIDIzNCwgMTk2LCA4LCA0LCAxODEsIDgsIDQsIDIzNCwgMjMzLCA4LCA0LCAyMzMsIDIyMSwgOCwgNCwgMjMzLCAyMjYsIAotICAgIDgsIDQsIDIzMywgMjIzLCA4LCA0LCAyMzQsIDksIDgsIDQsIDIzNCwgNSwgOCwgNCwgMjM0LCAzNywgOCwgNCwgMjM0LCAxNiwgCi0gICAgOCwgNCwgMjM0LCAxNjIsIDgsIDQsIDIzNCwgMTQ2LCA4LCA0LCAyMzQsIDE4OCwgOCwgNCwgMjM0LCAxNjUsIDgsIDQsIAotICAgIDIzMywgMjEwLCA4LCA0LCAyMzMsIDIwOCwgOCwgNCwgMjMzLCAyMzgsIDgsIDQsIDIzMywgMjIwLCA4LCA0LCAyMzMsIDIxMywgCi0gICAgOCwgNCwgMjMzLCAyMTcsIDgsIDQsIDI0MiwgMjQ3LCA4LCA0LCAyNDIsIDI0NiwgOCwgNCwgMjQyLCAyNTEsIDgsIDQsIAotICAgIDI0MiwgMjQ4LCA4LCA0LCAyNDIsIDI1MCwgOCwgNCwgMjQyLCAyNDksIDgsIDQsIDI0MywgMiwgOCwgNCwgMjQzLCAxLCA4LCAKLSAgICA0LCAyNDMsIDUsIDgsIDQsIDI0MywgMywgOCwgNCwgMjQyLCAyMzgsIDgsIDQsIDI0MiwgMjM3LCA4LCA0LCAyNDIsIDI0MCwgCi0gICAgOCwgNCwgMjQyLCAyMzksIDgsIDQsIDI0MiwgMjQzLCA4LCA0LCAyNDIsIDI0MiwgOCwgNCwgMjQyLCAyNDUsIDgsIDQsIAotICAgIDI0MiwgMjQ0LCA4LCA0LCAyNDIsIDI1MywgOCwgNCwgMjQyLCAyNTIsIDgsIDQsIDI0MywgMCwgOCwgNCwgMjQyLCAyNTQsIAotICAgIDgsIDQsIDI0MiwgMjMzLCA4LCA0LCAyNDIsIDIzMiwgOCwgNCwgMjQyLCAyNDEsIDgsIDQsIDI0MiwgMjM2LCA4LCA0LCAKLSAgICAyNDIsIDIzNCwgOCwgNCwgMjQyLCAyMzUsIDgsIDQsIDIzMSwgNjAsIDgsIDQsIDIzMSwgNjEsIDgsIDQsIDIzMSwgNzksIDgsIAotICAgIDQsIDIzMSwgNzgsIDgsIDQsIDIzMSwgODEsIDgsIDQsIDIzMSwgODAsIDgsIDQsIDIzMSwgNTEsIDgsIDQsIDIzMSwgNTMsIAotICAgIDgsIDQsIDIzMSwgNTIsIDgsIDQsIDIzMSwgNTYsIDgsIDQsIDIzMSwgNTUsIDgsIDQsIDIzMSwgNTgsIDgsIDQsIDIzMSwgCi0gICAgNTcsIDgsIDQsIDIzMSwgNjIsIDgsIDQsIDIzMSwgNjQsIDgsIDQsIDIzMSwgNjMsIDgsIDQsIDIzMSwgNDcsIDgsIDQsIAotICAgIDIzMSwgNDYsIDgsIDQsIDIzMSwgNTQsIDgsIDQsIDIzMSwgNTAsIDgsIDQsIDIzMSwgNDgsIDgsIDQsIDIzMSwgNDksIDgsIAotICAgIDQsIDI0MCwgMTcyLCA4LCA0LCAyNDAsIDE3MSwgOCwgNCwgMjQwLCAxNzgsIDgsIDQsIDI0MCwgMTczLCA4LCA0LCAyNDAsIAotICAgIDE3NSwgOCwgNCwgMjQwLCAxNzQsIDgsIDQsIDI0MCwgMTc3LCA4LCA0LCAyNDAsIDE3NiwgOCwgNCwgMjQwLCAxODMsIDgsIAotICAgIDQsIDI0MCwgMTgyLCA4LCA0LCAyNDAsIDE4NSwgOCwgNCwgMjQwLCAxODQsIDgsIDQsIDI0MCwgMTY0LCA4LCA0LCAyNDAsIAotICAgIDE2MywgOCwgNCwgMjQwLCAxNjYsIDgsIDQsIDI0MCwgMTY1LCA4LCA0LCAyNDAsIDE2OCwgOCwgNCwgMjQwLCAxNjcsIDgsIAotICAgIDQsIDI0MCwgMTcwLCA4LCA0LCAyNDAsIDE2OSwgOCwgNCwgMjQwLCAxNzksIDgsIDQsIDI0MCwgMTgxLCA4LCA0LCAyNDAsIAotICAgIDE4MCwgOCwgNCwgMjI5LCAxMTAsIDgsIDQsIDIyOSwgMTEyLCA4LCA0LCAyMjksIDExMSwgOCwgNCwgMjI5LCAxNTAsIDgsIAotICAgIDQsIDIyOSwgMTQ5LCA4LCA0LCAyMjksIDE1OSwgOCwgNCwgMjI5LCAxNTMsIDgsIDQsIDIyOSwgNzMsIDgsIDQsIDIyOSwgCi0gICAgNzIsIDgsIDQsIDIyOSwgNzQsIDgsIDQsIDIyOSwgODIsIDgsIDQsIDIyOSwgNzksIDgsIDQsIDIyOSwgOTAsIDgsIDQsIAotICAgIDIyOSwgODQsIDgsIDQsIDIyOSwgMTQzLCA4LCA0LCAyMjksIDE0OCwgOCwgNCwgMjI5LCAxNDUsIDgsIDQsIDI0MSwgMTQyLCAKLSAgICA4LCA0LCAyNDEsIDE1MiwgOCwgNCwgMjQxLCAxNjAsIDgsIDQsIDI0MSwgMjM0LCA4LCA0LCAyNDEsIDIyNywgOCwgNCwgCi0gICAgMTU5LCA4LCA0LCAyNDEsIDI0NSwgOCwgNCwgMjQwLCAxOTYsIDgsIDQsIDI0MCwgMTk1LCA4LCA0LCAyNDAsIDE5OCwgOCwgCi0gICAgNCwgMjQwLCAxOTcsIDgsIDQsIDI0MCwgMjI5LCA4LCA0LCAyNDAsIDIyMCwgOCwgNCwgMjQxLCA1NCwgOCwgNCwgMjQxLCAKLSAgICAzNCwgOCwgNCwgMjQxLCAxNzksIDgsIDQsIDI0MSwgMjIyLCA4LCA0LCAyNDEsIDE5MCwgOCwgNCwgMjE0LCAyNywgOCwgNCwgCi0gICAgMjE0LCAxMiwgOCwgNCwgMjE0LCA0OSwgOCwgNCwgMjE0LCAzNSwgOCwgNCwgMjEzLCAxNzMsIDgsIDQsIDIxMywgMTc1LCA4LCAKLSAgICA0LCAyMTMsIDE3NCwgOCwgNCwgMjEzLCAxOTEsIDgsIDQsIDIxMywgMjE0LCA4LCA0LCAyMTMsIDE5NywgOCwgNCwgMjEzLCAKLSAgICAyNDYsIDgsIDQsIDIxNCwgNiwgOCwgNCwgMjEzLCAyNTEsIDgsIDQsIDIxMiwgMjMsIDgsIDQsIDIxMiwgMjIsIDgsIDQsIAotICAgIDIxMiwgMzcsIDgsIDQsIDIxMiwgMjUsIDgsIDQsIDIxMiwgMzAsIDgsIDQsIDIxMiwgMzIsIDgsIDQsIDIxMiwgMzEsIDgsIAotICAgIDQsIDIxMiwgOTUsIDgsIDQsIDIxMiwgOTIsIDgsIDQsIDIxMiwgMTA5LCA4LCA0LCAyMTIsIDk4LCA4LCA0LCAyMTIsIDEsIAotICAgIDgsIDQsIDIxMiwgMywgOCwgNCwgMjEyLCAyLCA4LCA0LCAyMTIsIDEyLCA4LCA0LCAyMTIsIDExLCA4LCA0LCAyMTIsIDE2LCAKLSAgICA4LCA0LCAyMTIsIDEzLCA4LCA0LCAyMTIsIDc3LCA4LCA0LCAyMTIsIDg3LCA4LCA0LCAyMTIsIDgxLCA4LCA0LCAyMTEsIAotICAgIDI1MywgOCwgNCwgMjExLCAyNTIsIDgsIDQsIDIxMiwgOCwgOCwgNCwgMjEyLCAwLCA4LCA0LCAyMTEsIDI1NCwgOCwgNCwgCi0gICAgMjExLCAyNTUsIDgsIDQsIDIxMSwgMjQ0LCA4LCA0LCAyMTEsIDI0MywgOCwgNCwgMjExLCAyNDksIDgsIDQsIDIxMSwgMjQ3LCAKLSAgICA4LCA0LCAyMTEsIDI0NSwgOCwgNCwgMjExLCAyNDYsIDgsIDQsIDI0OSwgMjIxLCA4LCA0LCAyNDksIDIxNywgOCwgNCwgCi0gICAgMjQ5LCAyNDQsIDgsIDQsIDI0OSwgMjMwLCA4LCA0LCAyNDksIDI0MSwgOCwgNCwgMjQ5LCAyMzUsIDgsIDQsIDI0OSwgMjQzLCAKLSAgICA4LCA0LCAyNDksIDI0MiwgOCwgNCwgMjUwLCAxNTYsIDgsIDQsIDI1MCwgMTUwLCA4LCA0LCAyNTAsIDIxOSwgOCwgNCwgCi0gICAgMjUwLCAxODMsIDgsIDQsIDI0OSwgNDUsIDgsIDQsIDI0OSwgNDcsIDgsIDQsIDI0OSwgNDYsIDgsIDQsIDI0OSwgOTIsIDgsIAotICAgIDQsIDI0OSwgODMsIDgsIDQsIDI0OSwgMTc1LCA4LCA0LCAyNDksIDEwOCwgOCwgNCwgMjUwLCA5NCwgOCwgNCwgMjUwLCAKLSAgICAxMjQsIDgsIDQsIDI1MCwgOTksIDgsIDQsIDI0OSwgMjYsIDgsIDQsIDI0OSwgMjUsIDgsIDQsIDI0OSwgNTMsIDgsIDQsIAotICAgIDI0OSwgNDMsIDgsIDQsIDI0OSwgMzEsIDgsIDQsIDI0OSwgNDIsIDgsIDQsIDI0OSwgNiwgOCwgNCwgMjQ5LCA1LCA4LCA0LCAKLSAgICAyNDksIDE2LCA4LCA0LCAyNDksIDEyLCA4LCA0LCAyNDksIDcsIDgsIDQsIDI0OSwgOSwgOCwgNCwgMjExLCAyMjcsIDgsIDQsIAotICAgIDIxMSwgMjI2LCA4LCA0LCAyMTEsIDIzMywgOCwgNCwgMjExLCAyMjgsIDgsIDQsIDIxMSwgMjMwLCA4LCA0LCAyMTEsIDIyOSwgCi0gICAgOCwgNCwgMjExLCAyMzIsIDgsIDQsIDIxMSwgMjMxLCA4LCA0LCAyMTEsIDIzOSwgOCwgNCwgMjExLCAyMzgsIDgsIDQsIAotICAgIDIxMSwgMjQyLCA4LCA0LCAyMTEsIDI0MCwgOCwgNCwgMjExLCAyMjMsIDgsIDQsIDIxMSwgMjI1LCA4LCA0LCAyMTEsIDIyNCwgCi0gICAgOCwgNCwgMjExLCAyMzQsIDgsIDQsIDIxMSwgMjM3LCA4LCA0LCAyMTEsIDIzNSwgOCwgNCwgMjExLCAyMTgsIDgsIDQsIAotICAgIDIxMSwgMjIyLCA4LCA0LCAyMTEsIDIyMSwgOCwgNCwgMjExLCAyMTksIDgsIDQsIDIxMSwgMjIwLCA4LCA0LCAyMTEsIDIxMywgCi0gICAgOCwgNCwgMjExLCAyMTIsIDgsIDQsIDIxMSwgMjE3LCA4LCA0LCAyMTEsIDIxNiwgOCwgNCwgMjExLCAyMTQsIDgsIDQsIAotICAgIDIxMSwgMjE1LCA4LCA0LCAyMjcsIDIyNCwgOCwgNCwgMjI3LCAyMjMsIDgsIDQsIDIyNywgMjI5LCA4LCA0LCAyMjcsIDIyNSwgCi0gICAgOCwgNCwgMjI3LCAyMjYsIDgsIDQsIDIyNywgMjI4LCA4LCA0LCAyMjcsIDIyNywgOCwgNCwgMjI3LCAyMzQsIDgsIDQsIAotICAgIDIyNywgMjMzLCA4LCA0LCAyMjcsIDIzNywgOCwgNCwgMjI3LCAyMzYsIDgsIDQsIDIyNywgMjE3LCA4LCA0LCAyMjcsIDIxOCwgCi0gICAgOCwgNCwgMjI3LCAyMjEsIDgsIDQsIDIyNywgMjIyLCA4LCA0LCAyMjcsIDIzMCwgOCwgNCwgMjI3LCAyMzIsIDgsIDQsIAotICAgIDIyNywgMjEyLCA4LCA0LCAyMjcsIDIyMCwgOCwgNCwgMjI3LCAyMTYsIDgsIDQsIDIyNywgMjEzLCA4LCA0LCAyMjcsIDIxNCwgCi0gICAgOCwgNCwgMjI3LCAyMDcsIDgsIDQsIDIyNywgMjA2LCA4LCA0LCAyMjcsIDIxMSwgOCwgNCwgMjI3LCAyMTAsIDgsIDQsIAotICAgIDIyNywgMjA4LCA4LCA0LCAyMjcsIDIwOSwgOCwgNCwgMjIwLCA1NSwgOCwgNCwgMTg5LCA4LCA0LCAyMjAsIDExNywgOCwgNCwgCi0gICAgMjIwLCA1OCwgOCwgNCwgMjIwLCAxMDksIDgsIDQsIDIyMCwgMTEyLCA4LCA0LCAyMjAsIDExMCwgOCwgNCwgMjIyLCAxNDIsIAotICAgIDgsIDQsIDIyMiwgMTMyLCA4LCA0LCAyMjIsIDIwMiwgOCwgNCwgMjIyLCAxNTAsIDgsIDQsIDIxOCwgMjI4LCA4LCA0LCAKLSAgICAyMTgsIDIzMCwgOCwgNCwgMjE4LCAyMjksIDgsIDQsIDIxOSwgMjIxLCA4LCA0LCAyMTksIDIxMCwgOCwgNCwgMjE5LCAyNDIsIAotICAgIDgsIDQsIDIxOSwgMjI0LCA4LCA0LCAyMjEsIDM1LCA4LCA0LCAyMjIsIDEwMCwgOCwgNCwgMjIxLCA1OSwgOCwgNCwgMjE4LCAKLSAgICAyMDYsIDgsIDQsIDIxOCwgMjA0LCA4LCA0LCAyMTksIDI3LCA4LCA0LCAyMTgsIDIyNywgOCwgNCwgMjE4LCAyMDksIDgsIDQsIAotICAgIDIxOCwgMjE3LCA4LCA0LCAyMTgsIDExMywgOCwgNCwgMjE4LCAxMTIsIDgsIDQsIDIxOCwgMTc3LCA4LCA0LCAyMTgsIDExOSwgCi0gICAgOCwgNCwgMjE4LCAxMTQsIDgsIDQsIDIxOCwgMTE4LCA4LCA0LCAyMTksIDEyMywgOCwgNCwgMjE5LCAxMjIsIDgsIDQsIAotICAgIDIxOSwgMTI4LCA4LCA0LCAyMTksIDEyNCwgOCwgNCwgMjE5LCAxMjUsIDgsIDQsIDIxOSwgMTI3LCA4LCA0LCAyMTksIDEyNiwgCi0gICAgOCwgNCwgMjE5LCAxMzUsIDgsIDQsIDIxOSwgMTM0LCA4LCA0LCAyMTksIDE1NywgOCwgNCwgMjE5LCAxMzYsIDgsIDQsIAotICAgIDIxOSwgMTE5LCA4LCA0LCAyMTksIDExOCwgOCwgNCwgMjE5LCAxMjEsIDgsIDQsIDIxOSwgMTIwLCA4LCA0LCAyMTksIDEzMCwgCi0gICAgOCwgNCwgMjE5LCAxMzMsIDgsIDQsIDIxOSwgMTMxLCA4LCA0LCAyMTksIDExNSwgOCwgNCwgMjE5LCAxMTQsIDgsIDQsIAotICAgIDIxOSwgMTE3LCA4LCA0LCAyMTksIDExNiwgOCwgNCwgMjE5LCAxMDksIDgsIDQsIDIxOSwgMTA4LCA4LCA0LCAyMTksIDExMywgCi0gICAgOCwgNCwgMjE5LCAxMTIsIDgsIDQsIDIxOSwgMTEwLCA4LCA0LCAyMTksIDExMSwgOCwgNCwgMjEyLCA3MCwgOCwgNCwgMjEyLCAKLSAgICA2OSwgOCwgNCwgMjEyLCA3NSwgOCwgNCwgMjEyLCA3MiwgOCwgNCwgMjEyLCA1MiwgOCwgNCwgMjEyLCA1NCwgOCwgNCwgCi0gICAgMjEyLCA1MywgOCwgNCwgMjEyLCA1NywgOCwgNCwgMjEyLCA1NiwgOCwgNCwgMjEyLCA2MCwgOCwgNCwgMjEyLCA1OCwgOCwgCi0gICAgNCwgMjEyLCA2NCwgOCwgNCwgMjEyLCA2MywgOCwgNCwgMjEyLCA2NywgOCwgNCwgMjEyLCA2NSwgOCwgNCwgMjEyLCA0OCwgCi0gICAgOCwgNCwgMjEyLCA0NywgOCwgNCwgMjEyLCA1NSwgOCwgNCwgMjEyLCA1MSwgOCwgNCwgMjEyLCA0OSwgOCwgNCwgMjEyLCAKLSAgICA1MCwgOCwgNCwgMjEyLCA0MCwgOCwgNCwgMjEyLCAzOSwgOCwgNCwgMjEyLCA0NCwgOCwgNCwgMjEyLCA0MywgOCwgNCwgCi0gICAgMjEyLCA0MSwgOCwgNCwgMjEyLCA0MiwgOCwgNCwgMjUwLCA3MiwgOCwgNCwgMjUwLCA2OSwgOCwgNCwgMjUwLCA5MiwgOCwgCi0gICAgNCwgMjUwLCA4MCwgOCwgNCwgMjUwLCAyLCA4LCA0LCAyNTAsIDEsIDgsIDQsIDI1MCwgNCwgOCwgNCwgMjUwLCAzLCA4LCA0LCAKLSAgICAyNTAsIDE2LCA4LCA0LCAyNTAsIDE1LCA4LCA0LCAyNTAsIDIzLCA4LCA0LCAyNTAsIDE4LCA4LCA0LCAyNTAsIDUyLCA4LCAKLSAgICA0LCAyNTAsIDUwLCA4LCA0LCAyNTAsIDY3LCA4LCA0LCAyNTAsIDU4LCA4LCA0LCAyNDksIDI1MiwgOCwgNCwgMjUwLCA2LCAKLSAgICA4LCA0LCAyNTAsIDAsIDgsIDQsIDI0OSwgMjUzLCA4LCA0LCAyNDksIDI1NSwgOCwgNCwgMjQ5LCAyNDYsIDgsIDQsIDI0OSwgCi0gICAgMjQ1LCA4LCA0LCAyNDksIDI1MCwgOCwgNCwgMjQ5LCAyNDksIDgsIDQsIDI0OSwgMjQ3LCA4LCA0LCAyNDksIDI0OCwgOCwgCi0gICAgNCwgMjIzLCA4MCwgOCwgNCwgMjIzLCA4MSwgOCwgNCwgMjIzLCA2NywgOCwgNCwgMjIzLCA2OCwgOCwgNCwgMjIzLCA3MSwgCi0gICAgOCwgNCwgMjIzLCA3MCwgOCwgNCwgMjIzLCA3MywgOCwgNCwgMjIzLCA3MiwgOCwgNCwgMjIzLCA3NSwgOCwgNCwgMjIzLCAKLSAgICA3NCwgOCwgNCwgMjIzLCA3OSwgOCwgNCwgMjIzLCA3NiwgOCwgNCwgMjIzLCA2MywgOCwgNCwgMjIzLCA2MiwgOCwgNCwgCi0gICAgMjIzLCA2OSwgOCwgNCwgMjIzLCA2NiwgOCwgNCwgMjIzLCA2NCwgOCwgNCwgMjIzLCA2NSwgOCwgNCwgMjIzLCA1NywgOCwgCi0gICAgNCwgMjIzLCA1NiwgOCwgNCwgMjIzLCA2MSwgOCwgNCwgMjIzLCA2MCwgOCwgNCwgMjIzLCA1OCwgOCwgNCwgMjIzLCA1OSwgCi0gICAgOCwgNCwgMjI4LCAxNDUsIDgsIDQsIDIyOCwgMTQ0LCA4LCA0LCAyMjgsIDE0NywgOCwgNCwgMjI4LCAxNDYsIDgsIDQsIAotICAgIDIyOCwgMTM3LCA4LCA0LCAyMjgsIDEzOSwgOCwgNCwgMjI4LCAxMzgsIDgsIDQsIDIyOCwgMTQxLCA4LCA0LCAyMjgsIDE0MCwgCi0gICAgOCwgNCwgMjI4LCAxNDMsIDgsIDQsIDIyOCwgMTQyLCA4LCA0LCAyMjgsIDEzMiwgOCwgNCwgMjI4LCAxMzEsIDgsIDQsIAotICAgIDIyOCwgMTM2LCA4LCA0LCAyMjgsIDEzNSwgOCwgNCwgMjI4LCAxMzMsIDgsIDQsIDIyOCwgMTM0LCA4LCA0LCAyMjgsIDEyNiwgCi0gICAgOCwgNCwgMjI4LCAxMjUsIDgsIDQsIDIyOCwgMTMwLCA4LCA0LCAyMjgsIDEyOSwgOCwgNCwgMjI4LCAxMjcsIDgsIDQsIAotICAgIDIyOCwgMTI4LCA4LCA0LCAyMjAsIDI1MSwgOCwgNCwgMjIwLCAyNDcsIDgsIDQsIDIyMSwgMjQsIDgsIDQsIDIyMSwgNiwgOCwgCi0gICAgNCwgMjIwLCAxNDAsIDgsIDQsIDIyMCwgMTQyLCA4LCA0LCAyMjAsIDE0MSwgOCwgNCwgMjIwLCAxNjAsIDgsIDQsIDIyMCwgCi0gICAgMTU3LCA4LCA0LCAyMjAsIDE4NywgOCwgNCwgMjIwLCAxNzgsIDgsIDQsIDIyMCwgMjIyLCA4LCA0LCAyMjAsIDIxNSwgOCwgCi0gICAgNCwgMjIwLCAyNDMsIDgsIDQsIDIyMCwgMjMwLCA4LCA0LCAyMjAsIDEzNiwgOCwgNCwgMjIwLCAxMzUsIDgsIDQsIDIyMCwgCi0gICAgMTUwLCA4LCA0LCAyMjAsIDEzOSwgOCwgNCwgMjIwLCAxMzcsIDgsIDQsIDIyMCwgMTM4LCA4LCA0LCAyMjAsIDEyMCwgOCwgCi0gICAgNCwgMjIwLCAxMTksIDgsIDQsIDIyMCwgMTI2LCA4LCA0LCAyMjAsIDEyMywgOCwgNCwgMjIwLCAxMjEsIDgsIDQsIDIyMCwgCi0gICAgMTIyLCA4LCA0LCAyMjQsIDMzLCA4LCA0LCAyMjQsIDI4LCA4LCA0LCAyMDMsIDgsIDQsIDIyNCwgMzksIDgsIDQsIDIyMywgCi0gICAgMzEsIDgsIDQsIDIyMywgMzMsIDgsIDQsIDIyMywgMzIsIDgsIDQsIDIyMywgOTAsIDgsIDQsIDIyMywgODMsIDgsIDQsIAotICAgIDIyMywgMTEyLCA4LCA0LCAyMjMsIDk0LCA4LCA0LCAyMjMsIDE5NiwgOCwgNCwgMjI0LCAyMSwgOCwgNCwgMjIzLCAyMzEsIAotICAgIDgsIDQsIDIyMywgMjQsIDgsIDQsIDIyMywgMjIsIDgsIDQsIDIyMywgNTEsIDgsIDQsIDIyMywgMzAsIDgsIDQsIDIyMywgCi0gICAgMjYsIDgsIDQsIDIyMywgMjcsIDgsIDQsIDIyMywgNywgOCwgNCwgMjIzLCA2LCA4LCA0LCAyMjMsIDEyLCA4LCA0LCAyMjMsIAotICAgIDEwLCA4LCA0LCAyMjMsIDgsIDgsIDQsIDIyMywgOSwgOCwgNCwgMjM1LCAxMDEsIDgsIDQsIDIzNSwgMTAwLCA4LCA0LCAKLSAgICAyMzUsIDExMCwgOCwgNCwgMjM1LCAxMDIsIDgsIDQsIDIzNSwgMTA2LCA4LCA0LCAyMzUsIDEwNSwgOCwgNCwgMjM1LCAxMDgsIAotICAgIDgsIDQsIDIzNSwgMTA3LCA4LCA0LCAyMzUsIDQ0LCA4LCA0LCAyMzUsIDQzLCA4LCA0LCAyMzUsIDQ2LCA4LCA0LCAyMzUsIAotICAgIDQ1LCA4LCA0LCAyMzUsIDU5LCA4LCA0LCAyMzUsIDU3LCA4LCA0LCAyMzUsIDcxLCA4LCA0LCAyMzUsIDYxLCA4LCA0LCAKLSAgICAyMzUsIDM4LCA4LCA0LCAyMzUsIDM2LCA4LCA0LCAyMzUsIDU0LCA4LCA0LCAyMzUsIDQyLCA4LCA0LCAyMzUsIDM5LCA4LCAKLSAgICA0LCAyMzUsIDQwLCA4LCA0LCAyMzUsIDMwLCA4LCA0LCAyMzUsIDI5LCA4LCA0LCAyMzUsIDM0LCA4LCA0LCAyMzUsIDMzLCAKLSAgICA4LCA0LCAyMzUsIDMxLCA4LCA0LCAyMzUsIDMyLCA4LCA0LCAyMjQsIDE5MSwgOCwgNCwgMjI0LCAxODksIDgsIDQsIDIyNCwgCi0gICAgMTk4LCA4LCA0LCAyMjQsIDE5MiwgOCwgNCwgMjI0LCAxOTUsIDgsIDQsIDIyNCwgMTk0LCA4LCA0LCAyMjQsIDE5NywgOCwgCi0gICAgNCwgMjI0LCAxOTYsIDgsIDQsIDIyNCwgMTQ0LCA4LCA0LCAyMjQsIDE0MSwgOCwgNCwgMjI0LCAxNDYsIDgsIDQsIDIyNCwgCi0gICAgMTQ1LCA4LCA0LCAyMjQsIDE3OCwgOCwgNCwgMjI0LCAxNzcsIDgsIDQsIDIyNCwgMTg3LCA4LCA0LCAyMjQsIDE4MSwgOCwgCi0gICAgNCwgMjI0LCAxMzYsIDgsIDQsIDIyNCwgMTMyLCA4LCA0LCAyMjQsIDE3NSwgOCwgNCwgMjI0LCAxNDAsIDgsIDQsIDIyNCwgCi0gICAgMTM4LCA4LCA0LCAyMjQsIDEzOSwgOCwgNCwgMjI0LCAxMTYsIDgsIDQsIDIyNCwgMTE0LCA4LCA0LCAyMjQsIDEyNiwgOCwgCi0gICAgNCwgMjI0LCAxMTksIDgsIDQsIDIyNCwgMTE3LCA4LCA0LCAyMjQsIDExOCwgOCwgNCwgMjM1LCA5MCwgOCwgNCwgMjM1LCAKLSAgICA4OSwgOCwgNCwgMjM1LCA5NiwgOCwgNCwgMjM1LCA5MSwgOCwgNCwgMjM1LCA5MywgOCwgNCwgMjM1LCA5MiwgOCwgNCwgCi0gICAgMjM1LCA5NSwgOCwgNCwgMjM1LCA5NCwgOCwgNCwgMjM1LCA4MSwgOCwgNCwgMjM1LCA4MywgOCwgNCwgMjM1LCA4MiwgOCwgCi0gICAgNCwgMjM1LCA4NiwgOCwgNCwgMjM1LCA4NSwgOCwgNCwgMjM1LCA4OCwgOCwgNCwgMjM1LCA4NywgOCwgNCwgMjM1LCA3NywgCi0gICAgOCwgNCwgMjM1LCA3NiwgOCwgNCwgMjM1LCA4NCwgOCwgNCwgMjM1LCA4MCwgOCwgNCwgMjM1LCA3OCwgOCwgNCwgMjM1LCAKLSAgICA3OSwgOCwgNCwgMjM1LCA3MywgOCwgNCwgMjM1LCA3MiwgOCwgNCwgMjM1LCA3NSwgOCwgNCwgMjM1LCA3NCwgOCwgNCwgCi0gICAgMjI4LCAyNDksIDgsIDQsIDIyOCwgMjQ4LCA4LCA0LCAyMjksIDAsIDgsIDQsIDIyOCwgMjUwLCA4LCA0LCAyMjgsIDI1MiwgCi0gICAgOCwgNCwgMjI4LCAyNTEsIDgsIDQsIDIyOCwgMjU1LCA4LCA0LCAyMjgsIDI1MywgOCwgNCwgMjI4LCAyMzgsIDgsIDQsIAotICAgIDIyOCwgMjM5LCA4LCA0LCAyMjgsIDI0NCwgOCwgNCwgMjI4LCAyNDMsIDgsIDQsIDIyOCwgMjQ3LCA4LCA0LCAyMjgsIDI0NSwgCi0gICAgOCwgNCwgMjI4LCAyMzMsIDgsIDQsIDIyOCwgMjQyLCA4LCA0LCAyMjgsIDIzNywgOCwgNCwgMjI4LCAyMzQsIDgsIDQsIAotICAgIDIyOCwgMjM1LCA4LCA0LCAyMjgsIDIyOCwgOCwgNCwgMjI4LCAyMjcsIDgsIDQsIDIyOCwgMjMyLCA4LCA0LCAyMjgsIDIzMSwgCi0gICAgOCwgNCwgMjI4LCAyMjksIDgsIDQsIDIyOCwgMjMwLCA4LCA0LCAyMjgsIDAsIDgsIDQsIDIyNywgMjU1LCA4LCA0LCAyMjgsIAotICAgIDEwLCA4LCA0LCAyMjgsIDQsIDgsIDQsIDIyOCwgNywgOCwgNCwgMjI4LCA2LCA4LCA0LCAyMjgsIDksIDgsIDQsIDIyOCwgOCwgCi0gICAgOCwgNCwgMjI3LCAyNDMsIDgsIDQsIDIyNywgMjQ1LCA4LCA0LCAyMjcsIDI0NCwgOCwgNCwgMjI3LCAyNDksIDgsIDQsIAotICAgIDIyNywgMjQ4LCA4LCA0LCAyMjcsIDI1MywgOCwgNCwgMjI3LCAyNTAsIDgsIDQsIDIyNywgMjQxLCA4LCA0LCAyMjcsIDI0MCwgCi0gICAgOCwgNCwgMjI3LCAyNDcsIDgsIDQsIDIyNywgMjQyLCA4LCA0LCAyMTMsIDEzOCwgOCwgNCwgMjEzLCAxMzcsIDgsIDQsIAotICAgIDIxMywgMTQ1LCA4LCA0LCAyMTMsIDE0MCwgOCwgNCwgMjEzLCAxNDIsIDgsIDQsIDIxMywgMTQxLCA4LCA0LCAyMTMsIDE0NCwgCi0gICAgOCwgNCwgMjEzLCAxNDMsIDgsIDQsIDIxMywgMTI3LCA4LCA0LCAyMTMsIDEyOCwgOCwgNCwgMjEzLCAxMzIsIDgsIDQsIAotICAgIDIxMywgMTMxLCA4LCA0LCAyMTMsIDEzNiwgOCwgNCwgMjEzLCAxMzQsIDgsIDQsIDIxMywgMTA5LCA4LCA0LCAyMTMsIDEwNywgCi0gICAgOCwgNCwgMjEzLCAxMTksIDgsIDQsIDIxMywgMTEyLCA4LCA0LCAyMTMsIDExMCwgOCwgNCwgMjEzLCAxMTEsIDgsIDQsIAotICAgIDIxMiwgMjQxLCA4LCA0LCAyMTIsIDIzOSwgOCwgNCwgMjEyLCAyNTUsIDgsIDQsIDIxMiwgMjQyLCA4LCA0LCAyMTIsIDI0OSwgCi0gICAgOCwgNCwgMjEyLCAyNDgsIDgsIDQsIDIxMiwgMjUyLCA4LCA0LCAyMTIsIDI1MCwgOCwgNCwgMjEyLCAxODIsIDgsIDQsIAotICAgIDIxMiwgMTgxLCA4LCA0LCAyMTIsIDE4NSwgOCwgNCwgMjEyLCAxODMsIDgsIDQsIDIxMiwgMjE1LCA4LCA0LCAyMTIsIDIxMiwgCi0gICAgOCwgNCwgMjEyLCAyMzUsIDgsIDQsIDIxMiwgMjE5LCA4LCA0LCAyMTIsIDE3MywgOCwgNCwgMjEyLCAxNzAsIDgsIDQsIAotICAgIDIxMiwgMjAzLCA4LCA0LCAyMTIsIDE4MCwgOCwgNCwgMjEyLCAxNzYsIDgsIDQsIDIxMiwgMTc3LCA4LCA0LCAyMTIsIDE1NSwgCi0gICAgOCwgNCwgMjEyLCAxNTQsIDgsIDQsIDIxMiwgMTYxLCA4LCA0LCAyMTIsIDE1OCwgOCwgNCwgMjEyLCAxNTYsIDgsIDQsIAotICAgIDIxMiwgMTU3LCA4LCAzNCwgMjI0LCAxNzgsIDgsIDM0LCAyMzMsIDEzLCA4LCAzNCwgMjM0LCA3MCwgOCwgMzQsIDIyOCwgNCwgCi0gICAgOCwgMzQsIDI0OSwgMTIsIDgsIDM0LCAyMTksIDEyOCwgOCwgMzQsIDI0MiwgMjQ0LCA4LCAzNCwgMjQzLCAyMCwgOCwgMzQsIAotICAgIDIzMSwgNDIsIDgsIDM0LCAyNDAsIDE3MiwgOCwgMzQsIDIzMiwgMTE2LCA4LCAzNCwgMjUyLCAzLCA4LCAzNCwgMjMwLCAKLSAgICAxOTYsIDgsIDM0LCAyMTIsIDIzNSwgOCwgMzQsIDIyNSwgOCwgOCwgMzQsIDI0MCwgMTY2LCA4LCAzNCwgMjE3LCAyNTMsIDgsIAotICAgIDM0LCAyNDMsIDExMCwgOCwgMzQsIDIxMiwgMCwgOCwgMzQsIDI0OSwgNiwgOCwgMzQsIDI0OCwgNDYsIDgsIDM0LCAyNTEsIAotICAgIDI3LCA4LCAzNCwgMjQyLCAyNDAsIDgsIDM0LCAyMjcsIDI1MCwgOCwgMzQsIDIxNiwgODIsIDgsIDM0LCAyMjcsIDQxLCA4LCAKLSAgICAzNCwgMjM1LCA3NywgOCwgMzQsIDIxMiwgMTIsIDgsIDM0LCAyMjQsIDI0NCwgOCwgMzQsIDI0MSwgOTQsIDgsIDM0LCAyMTIsIAotICAgIDI0MSwgOCwgMzQsIDIxNCwgOTUsIDgsIDM0LCAyMjAsIDEyNiwgOCwgMzQsIDIxNCwgMjIxLCA4LCAzNCwgMjEyLCAxMDksIAotICAgIDgsIDM0LCAyMzUsIDcxLCA4LCAzNCwgMjI3LCAyMTYsIDgsIDM0LCAyMzUsIDc1LCA4LCAzNCwgMjQyLCAxMzAsIDgsIDM0LCAKLSAgICAyMzUsIDk1LCA4LCAzNCwgMjEzLCAyMTQsIDgsIDM0LCAyNDYsIDMzLCA4LCAzNCwgMjIwLCAxMzgsIDgsIDM0LCAyMzMsIDgsIAotICAgIDgsIDM0LCAyNDksIDE2LCA4LCAzNCwgMjQ5LCA0NiwgOCwgMzQsIDI0OSwgMjMwLCA4LCAzNCwgMjQwLCAxNjksIDgsIDM0LCAKLSAgICAyMjAsIDI1MSwgOCwgMzQsIDIxMSwgMjU1LCA4LCAzNCwgMjIwLCAxNzgsIDgsIDM0LCAyNTAsIDY3LCA4LCAzNCwgMjExLCAKLSAgICAyMzAsIDgsIDM0LCAyMjksIDI1MiwgOCwgMzQsIDIzNCwgMTg4LCAyMzIsIDIyNSwgMSwgMjUyLCAxMDcsIDIzMiwgMjI1LCAKLSAgICAxLCAxOTMsIDIzMiwgMjI1LCAxLCAyMjYsIDIzLCAyMzIsIDIyNSwgMSwgMjQ4LCAxNjQsIDIzMiwgMjI1LCAxLCAyMTgsIAotICAgIDUyLCAyMzIsIDIyNSwgMSwgMjE3LCAxNjEsIDIzMiwgMjI1LCAxLCAyNDMsIDExMCwgMjMyLCAyMjUsIDEsIDE4MSwgMjMyLCAKLSAgICAyMjUsIDEsIDIzNCwgMTM4LCAyMzIsIDIyNSwgMSwgMjM1LCAxMzksIDIzMiwgMjI1LCAxLCAyNTAsIDIxOSwgMjMyLCAyMjUsIAotICAgIDEsIDI1MCwgOTIsIDIzMiwgMjI1LCAxLCAyNDUsIDI0OSwgMjMyLCAyMjUsIDEsIDIxNiwgMTQxLCAyMzIsIDIyNSwgMSwgCi0gICAgMjE2LCAxMzMsIDIzMiwgMjI1LCAxLCAxODgsIDIzMiwgMjI1LCAxLCAyMDUsIDIzMiwgMjI1LCAxLCAyMzMsIDE1NywgMjMyLCAKLSAgICAyMjUsIDEsIDIyMiwgMjAyLCAyMzIsIDIyNSwgMSwgMjEyLCA3NSwgMjMyLCAyMjUsIDEsIDIxMiwgMTA5LCAyMzIsIDIyNSwgCi0gICAgMSwgMjI5LCAxNTksIDIzMiwgMjI1LCAxLCAxNTksIDIzMiwgMjI1LCAxLCAyMTMsIDE1MywgMjMyLCAyMjUsIDEsIDI0MSwgCi0gICAgMTc0LCAyMzIsIDIyNSwgMSwgMjQ0LCAxNjQsIDIzMiwgMjI1LCAxLCAyMTQsIDQ5LCAyMzIsIDIyNSwgMSwgMjIxLCAyNCwgCi0gICAgMjMyLCAyMjUsIDEsIDE4NiwgMjMyLCAyMjUsIDEsIDI0MiwgMjI1LCAyMzIsIDIyNSwgMSwgNjEsIDIzMiwgMjI1LCAxLCAKLSAgICAyNTQsIDE0OCwgMjMyLCAyMjUsIDEsIDc0LCAyMzIsIDIyNSwgMSwgMjQ1LCAyMiwgMjMyLCAyMjUsIDEsIDcyLCAyMzIsIAotICAgIDIyNSwgMSwgNzUsIDIzMiwgMjI1LCAxLCA2OSwgMjMyLCAyMjUsIDEsIDIxNSwgMTgzLCAyMzIsIDIyNSwgMSwgMjE1LCAKLSAgICAxNzgsIDIzMiwgMjI1LCAxLCAyMjcsIDk5LCAyMzIsIDIyNSwgMSwgMTYwLCAyMzAsIDEwNCwgMjE3LCA3MSwgMjMyLCAyMjUsIAotICAgIDEsIDE2MCwgMjMwLCA0NiwgMjI1LCAxNTAsIDIzMiwgMjI1LCAxLCAxNjAsIDIzMCwgMTA0LCAyNDksIDE1LCAyMzIsIDIyNSwgCi0gICAgMSwgMTYwLCAyMzAsIDEwNCwgMjUxLCAxMjgsIDIzMiwgMjI1LCAxLCAxNjAsIDIzMCwgMTA0LCAyMDUsIDIzMiwgMjI1LCAxLCAKLSAgICAxNjAsIDIzMCwgMTA0LCAyMzUsIDExNiwgMjMyLCAyMjUsIDIyNSwgMjcsIDI0OSwgMTU3LCAyMzIsIDIyNSwgMjI1LCAyNywgCi0gICAgMjQzLCAyMDAsIDIxOSwgNjksIDM5LCA0LCAyNDUsIDE2NSwgMzksIDQsIDI0NSwgMTYyLCAzOSwgNCwgMjQxLCAyMDQsIDM5LCAKLSAgICA0LCAyMTQsIDEsIDM5LCA0LCAyMTQsIDAsIDM5LCA0LCAyMjYsIDg2LCAzOSwgNCwgMjUxLCAxOTEsIDM5LCA0LCAyNTEsIAotICAgIDI0MiwgMzksIDQsIDIzMSwgMTc5LCAzOSwgNCwgMjM0LCAwLCAzOSwgNCwgMjMxLCA3MywgMzksIDQsIDI0MywgNTEsIDM5LCAKLSAgICA0LCAyNDQsIDExNiwgMzksIDQsIDIxNCwgMjI3LCAzOSwgNCwgMjE3LCAyMTksIDM5LCA0LCAyMTcsIDE0NywgMzksIDQsIAotICAgIDI0NywgMjI0LCAzOSwgNCwgMjQ3LCAyMjEsIDM5LCA0LCAyMzMsIDc0LCAzOSwgNCwgMjI0LCAxLCAzOSwgNCwgMjQ4LCAyOCwgCi0gICAgMzksIDQsIDIyOSwgMjE5LCAzOSwgNCwgMjIyLCA4OSwgMzksIDQsIDIyMCwgMjQxLCAzOSwgNCwgMjEyLCA4NSwgMzksIDQsIAotICAgIDIxMiwgNjYsIDM5LCA0LCAyNTAsIDExNiwgMzksIDQsIDIzNSwgMTI1LCAzOSwgNCwgMjI5LCA3LCAzOSwgNCwgMjEzLCAzNSwgCi0gICAgMzksIDQsIDIzNCwgMTg3LCAzOSwgNCwgMjI5LCAxMzYsIDM5LCA0LCAyNDMsIDMxLCAzOSwgNCwgMjMxLCAxNDUsIDM5LCA0LCAKLSAgICAyMjksIDE4NCwgMzksIDQsIDIyOCwgMTYsIDM5LCA0LCA3MiwgMzksIDQsIDIzNSwgMjUxLCAzOSwgNCwgMjQxLCAxNjUsIAotICAgIDM5LCA0LCAyNDEsIDE0NiwgMzksIDQsIDIxMywgMjM1LCAzOSwgNCwgMjEzLCAyMjYsIDM5LCA0LCAyMjUsIDI0MCwgMzksIAotICAgIDQsIDI1MSwgMTg5LCAzOSwgNCwgMjUxLCAxODQsIDM5LCA0LCAyMzEsIDE3MiwgMzksIDQsIDIzMywgMjUzLCAzOSwgNCwgCi0gICAgMjMxLCA3MCwgMzksIDQsIDI0MywgNDcsIDM5LCA0LCAyNDQsIDkwLCAzOSwgNCwgMjE0LCAxNTQsIDM5LCA0LCAyMTcsIDcxLCAKLSAgICAzOSwgNCwgMjE3LCAxMjgsIDM5LCA0LCAyNDcsIDIxNiwgMzksIDQsIDI0NywgMjIwLCAzOSwgNCwgMjMzLCAxMywgMzksIDQsIAotICAgIDIyMywgMTg4LCAzOSwgNCwgMjQ3LCAyMTEsIDM5LCA0LCAyMjksIDIxMywgMzksIDQsIDIyMCwgMTE3LCAzOSwgNCwgMjIwLCAKLSAgICAyMTIsIDM5LCA0LCAyMTIsIDM3LCAzOSwgNCwgMjEyLCA2MiwgMzksIDQsIDI0OSwgMjQ0LCAzOSwgNCwgMjM1LCAxMTAsIAotICAgIDM5LCA0LCAyMjksIDAsIDM5LCA0LCAyMTIsIDI1NSwgMzksIDQsIDIzNCwgMTAxLCAzOSwgNCwgMjI5LCAxMjgsIDM5LCA0LCAKLSAgICAyNDIsIDE5MCwgMzksIDQsIDIzMSwgNDIsIDM5LCA0LCAyMjksIDY0LCAzOSwgNCwgMjI4LCAxMCwgMzksIDQsIDYxLCAzOSwgCi0gICAgNCwgMjU0LCAzMiwgMzksIDQsIDIyOSwgMTU1LCAzOSwgNCwgMTU5LCAzOSwgNCwgMjQyLCAxLCAzOSwgNCwgMjE0LCA0OSwgCi0gICAgMzksIDQsIDIxNCwgMzksIDM5LCA0LCAxOTMsIDM5LCA0LCAyNTEsIDE5NSwgMzksIDQsIDI1MiwgMTA3LCAzOSwgNCwgMjMxLCAKLSAgICAxODcsIDM5LCA0LCAyMzQsIDQsIDM5LCA0LCAyMzQsIDMsIDM5LCA0LCAyMzEsIDc3LCAzOSwgNCwgMjQzLCA1NSwgMzksIDQsIAotICAgIDI0NCwgMTY0LCAzOSwgNCwgMjE1LCAxLCAzOSwgNCwgMjE4LCA1MiwgMzksIDQsIDIxNywgMTYxLCAzOSwgNCwgMjQ3LCAKLSAgICAyMzIsIDM5LCA0LCAyNDcsIDIyMywgMzksIDQsIDIzMywgMTU3LCAzOSwgNCwgMjAzLCAzOSwgNCwgMjQ4LCAxNjQsIDM5LCAKLSAgICA0LCAyMjksIDIyOCwgMzksIDQsIDIyMiwgMjAyLCAzOSwgNCwgMjIxLCAyNCwgMzksIDQsIDIxMiwgMTA5LCAzOSwgNCwgCi0gICAgMjEyLCA3NSwgMzksIDQsIDI1MCwgMjE5LCAzOSwgNCwgMjM1LCAxMzksIDM5LCA0LCAyMjksIDE2LCAzOSwgNCwgMTg2LCAKLSAgICAzOSwgNCwgMTgxLCAzOSwgNCwgMjM0LCAyMzksIDM5LCA0LCAyMjksIDE0MSwgMzksIDQsIDI0MywgMTEwLCAzOSwgNCwgCi0gICAgMTg4LCAzOSwgNCwgMjA1LCAzOSwgNCwgMjI4LCAyMywgMzksIDQsIDIyNywgNDksIDM5LCA0LCAyMjcsIDQ1LCAzOSwgNCwgCi0gICAgMjQxLCAzOSwgMzksIDQsIDIxMywgMjAyLCAzOSwgNCwgMjEzLCAxOTgsIDM5LCA0LCAyMjUsIDEyOSwgMzksIDQsIDI1MSwgCi0gICAgMTg3LCAzOSwgNCwgMjUxLCAxMTgsIDM5LCA0LCAyMzEsIDE2NywgMzksIDQsIDIzMywgMjUxLCAzOSwgNCwgMjMxLCA2NiwgCi0gICAgMzksIDQsIDI0MywgNDMsIDM5LCA0LCAyNDQsIDMsIDM5LCA0LCAyMTQsIDEwOCwgMzksIDQsIDIxNiwgMjMwLCAzOSwgNCwgCi0gICAgMjE3LCAxMDYsIDM5LCA0LCAyNDcsIDIxNCwgMzksIDQsIDI0NywgMjE4LCAzOSwgNCwgMjMyLCAxODAsIDM5LCA0LCAyMjMsIAotICAgIDk5LCAzOSwgNCwgMjQ3LCA3OSwgMzksIDQsIDIyOSwgMjAwLCAzOSwgNCwgMjE5LCAyMjYsIDM5LCA0LCAyMjAsIDE4MSwgCi0gICAgMzksIDQsIDIxMiwgMTQsIDM5LCA0LCAyMTIsIDU5LCAzOSwgNCwgMjQ5LCAxMTMsIDM5LCA0LCAyMzUsIDYyLCAzOSwgNCwgCi0gICAgMjI4LCAyNDYsIDM5LCA0LCAyMTIsIDIyMCwgMzksIDQsIDIzNCwgMTksIDM5LCA0LCAyMjksIDEyNiwgMzksIDQsIDI0MiwgCi0gICAgMTQwLCAzOSwgNCwgMjMwLCAyMDIsIDM5LCA0LCAyMjgsIDE3NSwgMzksIDQsIDIyNywgMjUxLCAzOSwgNCwgNjksIDM5LCA0LCAKLSAgICAyMTUsIDE2MCwgMzksIDQsIDI0MCwgMjEyLCAzOSwgNCwgMjQwLCAyMDIsIDM5LCA0LCAyMTMsIDE4MywgMzksIDQsIDIxMywgCi0gICAgMTc3LCAzOSwgNCwgMjI1LCAzNSwgMzksIDQsIDI1MSwgMTg2LCAzOSwgNCwgMjUxLCA1NCwgMzksIDQsIDIzMSwgMTY2LCAKLSAgICAzOSwgNCwgMjMzLCAyNDksIDM5LCA0LCAyMzEsIDY1LCAzOSwgNCwgMjQzLCA0MiwgMzksIDQsIDI0MywgMjA1LCAzOSwgNCwgCi0gICAgMjE0LCA5OSwgMzksIDQsIDIxNiwgODIsIDM5LCA0LCAyMTcsIDkwLCAzOSwgNCwgMjQ3LCAyMTIsIDM5LCA0LCAyNDcsIAotICAgIDIxNywgMzksIDQsIDIzMiwgMTU2LCAzOSwgNCwgMjIzLCA1MSwgMzksIDQsIDI0NiwgMzMsIDM5LCA0LCAyMjksIDE5NSwgCi0gICAgMzksIDQsIDIxOSwgMjcsIDM5LCA0LCAyMjAsIDE1MCwgMzksIDQsIDIxMiwgOCwgMzksIDQsIDIxMiwgNTUsIDM5LCA0LCAKLSAgICAyNDksIDUzLCAzOSwgNCwgMjM1LCA1NCwgMzksIDQsIDIyOCwgMjQyLCAzOSwgNCwgMjEyLCAyMDMsIDM5LCA0LCAyMzMsIAotICAgIDIzOCwgMzksIDQsIDIyOSwgMTI1LCAzOSwgNCwgMjQyLCA5MiwgMzksIDQsIDIzMCwgMTcyLCAzOSwgNCwgMjI4LCA5MiwgCi0gICAgMzksIDQsIDIyNywgMjQ3LCAzOSwgNCwgNzUsIDM5LCA0LCAyMjcsIDYyLCAzOSwgNCwgMjI5LCA4NiwgMzksIDQsIDI0MSwgCi0gICAgNTQsIDM5LCA0LCAyNDEsIDQyLCAzOSwgNCwgMjEzLCAyMTQsIDM5LCA0LCAyMTMsIDIwMywgMzksIDQsIDIyNSwgMTUwLCAKLSAgICAzOSwgNCwgMjUxLCAxODgsIDM5LCA0LCAyNTEsIDEyOCwgMzksIDQsIDIzMSwgMTY4LCAzOSwgNCwgMjMzLCAyNTIsIDM5LCAKLSAgICA0LCAyMzEsIDY4LCAzOSwgNCwgMjQzLCA0NSwgMzksIDQsIDI0MywgNDQsIDM5LCA0LCAyNDQsIDEyLCAzOSwgNCwgMjE0LCAKLSAgICAxMTksIDM5LCA0LCAxMDgsIDM5LCA0LCAyMTcsIDEwOSwgMzksIDQsIDI0NywgMjE1LCAzOSwgNCwgMjQ3LCAyMTksIDM5LCAKLSAgICA0LCAyMzIsIDIwOCwgMzksIDQsIDIyMywgMTEyLCAzOSwgNCwgMjQ3LCA5OSwgMzksIDQsIDIyOSwgMjA0LCAzOSwgNCwgCi0gICAgMjE5LCAyNDIsIDM5LCA0LCAyMjAsIDE4NywgMzksIDQsIDIxMiwgMTYsIDM5LCA0LCAyMTIsIDYwLCAzOSwgNCwgMjQ5LCAKLSAgICAxNzUsIDM5LCA0LCAyMzUsIDcxLCAzOSwgNCwgMjI4LCAyNDcsIDM5LCA0LCAyMTIsIDIzNSwgMzksIDQsIDIzNCwgMzcsIAotICAgIDM5LCA0LCAyMjksIDEyNywgMzksIDQsIDI0MiwgMTUwLCAzOSwgNCwgMjMwLCAyMzEsIDM5LCA0LCAyMjgsIDE4NSwgMzksIAotICAgIDQsIDIyNywgMjUzLCAzOSwgNCwgNzQsIDM5LCA0LCAyNDUsIDEwOCwgMzksIDQsIDIyOSwgMTQ2LCAzOSwgNCwgMjQxLCAKLSAgICAyMjIsIDM5LCA0LCAyNDEsIDE5MywgMzksIDQsIDIxNCwgNiwgMzksIDQsIDIxMywgMjUzLCAzOSwgNCwgMjI2LCA5NiwgMzksIAotICAgIDQsIDI1MSwgMTkyLCAzOSwgNCwgMjUxLCAyNTEsIDM5LCA0LCAyMzEsIDE4MCwgMzksIDQsIDIzNCwgMSwgMzksIDQsIDIzMywgCi0gICAgMjU1LCAzOSwgNCwgMjMxLCA3NCwgMzksIDQsIDI0MywgNTIsIDM5LCA0LCAyNDMsIDUwLCAzOSwgNCwgMjQ0LCAxMjMsIDM5LCAKLSAgICA0LCAyMTQsIDIzMiwgMzksIDQsIDIxNywgMjI5LCAzOSwgNCwgMjE3LCAxNDgsIDM5LCA0LCAyNDcsIDIyNSwgMzksIDQsIAotICAgIDI0NywgMjIyLCAzOSwgNCwgMjMzLCA4MiwgMzksIDQsIDIyNCwgMjEsIDM5LCA0LCAyNDgsIDQxLCAzOSwgNCwgMjI5LCAKLSAgICAyMjAsIDM5LCA0LCAyMjIsIDEwMCwgMzksIDQsIDIyMCwgMjQzLCAzOSwgNCwgMjEyLCA4NywgMzksIDQsIDIxMiwgNjcsIAotICAgIDM5LCA0LCAyNTAsIDEyNCwgMzksIDQsIDIzNSwgMTI3LCAzOSwgNCwgMjI5LCA5LCAzOSwgNCwgMjEzLCAzOCwgMzksIDQsIAotICAgIDIzNCwgMTg4LCAzOSwgNCwgMjI5LCAxMzcsIDM5LCA0LCAyMjksIDEzMywgMzksIDQsIDI0MywgMzgsIDM5LCA0LCAyNDMsIAotICAgIDI3LCAzOSwgNCwgMjMxLCAxNTYsIDM5LCA0LCAyMjksIDE4NywgMzksIDQsIDIyOCwgMTcsIDM5LCA0LCAyMjksIDE2MSwgCi0gICAgMzksIDQsIDIzMywgNDYsIDM5LCAyNDksIDE1NywgMzksIDI0MywgMjAwLCAyMTksIDY5LCAzOSwgMjI0LCAxNTgsIDc3LCAKLSAgICAzOSwgNCwgMjI5LCAyMDMsIDI0NCwgMTY0LCAzOSwgNCwgMjI5LCAyMDMsIDE4MSwgMzksIDQsIDIyOSwgMjAzLCAyMTksIAotICAgIDIyNiwgMzksIDE2LCAyNDQsIDExMywgMzksIDE2LCAyMzQsIDE4NiwgMzksIDE2LCAyMTcsIDM0LCAzOSwgMTYsIDIyOSwgCi0gICAgMzksIDM5LCAxNiwgMjUyLCA2NiwgMzksIDE2LCAyNDQsIDE2MywgMzksIDE2LCAyMTgsIDQ5LCAzOSwgMTYsIDI0OCwgMTIxLCAKLSAgICAzOSwgMTYsIDI0NywgNzgsIDM5LCAxNiwgMjMzLCAyMjcsIDM5LCAxNiwgMjE2LCAyMzQsIDM5LCAxNiwgMjQ3LCA5OCwgMzksIAotICAgIDE2LCAyMzUsIDYzLCAzOSwgMjEsIDIxMiwgNzksIDM5LCAyMSwgMTE2LCAzOSwgMjEsIDEwOSwgMzksIDIxLCAxNjYsIDM5LCAKLSAgICAyMSwgMTYzLCAzOSwgMjEsIDE4MCwgMzksIDIxLCAxODksIDM5LCAyMSwgMTk4LCAzOSwgMjEsIDE5NSwgMzksIDIxLCAyMDAsIAotICAgIDM5LCA0LCAyMjksIDIwMywgMTg4LCAzOSwgNCwgMjI5LCAyMDMsIDI0NywgOTksIDMzLCA2LCAxLCAyMTIsIDgzLCAzMywgMywgCi0gICAgMSwgMjEyLCA4MywgMzMsIDYsIDEsIDI0NSwgMjQ1LCAzMywgMywgMSwgMjQ1LCAyNDUsIDMzLCA2LCAxLCAyMjMsIDIwMiwgCi0gICAgMjQ1LCAyNDcsIDMzLCAzLCAxLCAyMjMsIDIwMiwgMjQ1LCAyNDcsIDMzLCA2LCAxLCAyMzUsIDE4MywgMzMsIDMsIDEsIAotICAgIDIzNSwgMTgzLCAzMywgNiwgMSwgMjQ3LCAxMTMsIDMzLCAzLCAxLCAyNDcsIDExMywgMzMsIDYsIDEsIDIzMCwgMjEwLCAKLSAgICAyMTUsIDE3NSwgMzMsIDMsIDEsIDIzMCwgMjEwLCAyMTUsIDE3NSwgMzMsIDYsIDEsIDI1MSwgNjQsIDIyNywgNjcsIDMzLCAKLSAgICAzLCAxLCAyNTEsIDY0LCAyMjcsIDY3LCAzMywgNiwgMSwgMjI5LCAxNjksIDIxMywgMjIsIDMzLCAzLCAxLCAyMjksIDE2OSwgCi0gICAgMjEzLCAyMiwgMzMsIDYsIDEsIDIxMywgMTksIDIsIDI1MiwgMTAyLCAyMTMsIDIyLCAzMywgMywgMSwgMjEzLCAxOSwgMiwgCi0gICAgMjUyLCAxMDIsIDIxMywgMjIsIDMzLCA2LCAxLCAyMzUsIDE4MSwgMjEzLCA0OSwgMzMsIDMsIDEsIDIzNSwgMTgxLCAyMTMsIAotICAgIDQ5LCAzMywgNiwgMSwgMjIzLCAyMDIsIDIxMiwgMjAzLCAzMywgMywgMSwgMjIzLCAyMDIsIDIxMiwgMjAzLCAzMywgNiwgMSwgCi0gICAgMjM1LCAxODEsIDYxLCAzMywgMywgMSwgMjM1LCAxODEsIDYxLCAzMywgNiwgMSwgMjQ5LCAxOTMsIDIzMiwgMjIxLCAyMTIsIAotICAgIDE3NCwgMzMsIDMsIDEsIDI0OSwgMTkzLCAyMzIsIDIyMSwgMjEyLCAxNzQsIDMzLCA2LCAxLCAyNTEsIDEzNywgMjEyLCAKLSAgICAxNzQsIDMzLCAzLCAxLCAyNTEsIDEzNywgMjEyLCAxNzQsIDMzLCA2LCAxLCAyMzUsIDE4MSwgMjQ5LCAxOTMsIDIzMiwgCi0gICAgMjIxLCAyMTIsIDE3NCwgMzMsIDMsIDEsIDIzNSwgMTgxLCAyNDksIDE5MywgMjMyLCAyMjEsIDIxMiwgMTc0LCAzMywgNiwgCi0gICAgMSwgMjEyLCAyMzcsIDMzLCAzLCAxLCAyMTIsIDIzNywgMzMsIDYsIDEsIDIyMywgMjAyLCAyMTYsIDEzNiwgMzMsIDMsIDEsIAotICAgIDIyMywgMjAyLCAyMTYsIDEzNiwgMzMsIDYsIDEsIDIxOSwgMjM2LCAyNDgsIDQxLCAzMywgMywgMSwgMjE5LCAyMzYsIDI0OCwgCi0gICAgNDEsIDMzLCA2LCAxLCAyMTksIDIzNiwgMjQ1LCAxMzEsIDMzLCAzLCAxLCAyMTksIDIzNiwgMjQ1LCAxMzEsIDMzLCA2LCAxLCAKLSAgICAyMTksIDIzNiwgMjQ1LCAxMTcsIDMzLCAzLCAxLCAyMTksIDIzNiwgMjQ1LCAxMTcsIDMzLCA2LCAxLCAyMzAsIDIxNCwgNzUsIAotICAgIDMzLCAzLCAxLCAyMzAsIDIxNCwgNzUsIDMzLCA2LCAxLCAyNTEsIDE2MywgNzUsIDMzLCAzLCAxLCAyNTEsIDE2MywgNzUsIAotICAgIDMzLCA2LCAxLCA1MSwgMjMwLCAyMTQsIDc1LCAzMywgMywgMSwgNTEsIDIzMCwgMjE0LCA3NSwgMzMsIDEsIDIzMCwgMTU2LCAKLSAgICA3NSwgMzcsIDMzLCAyMTQsIDg0LCAzNywgMzMsIDIxNywgMjAxLCAyMzEsIDQsIDUyLCAzNywgMzMsIDI0MCwgMjAxLCAyMzEsIAotICAgIDQsIDUyLCAzNywgMzMsIDIxNywgMTAxLCAyMzEsIDQsIDUyLCAyMjAsIDIxLCAyNTMsIDEzMiwgMzcsIDMzLCAyMzQsIDE5OCwgCi0gICAgMzcsIDMzLCAyMjYsIDEwMSwgMzMsIDIzNCwgMTk4LCAzMywgMjI2LCAxMDEsIDMzLCA2LCAxLCAyNDYsIDEsIDMzLCAzLCAxLCAKLSAgICAyNDYsIDEsIDMzLCA2LCAxLCAyNDUsIDIzOCwgMzMsIDMsIDEsIDI0NSwgMjM4LCAzMywgNiwgMSwgMjEyLCA0NSwgMzMsIDMsIAotICAgIDEsIDIxMiwgNDUsIDMzLCA2LCAxLCAyNTAsIDE0MCwgMzMsIDMsIDEsIDI1MCwgMTQwLCAzMywgNiwgMSwgMjQ1LCAyMzcsIAotICAgIDMzLCAzLCAxLCAyNDUsIDIzNywgMzMsIDYsIDEsIDIxNywgMjMwLCAyLCAyMzEsIDM3LCAxMDEsIDMzLCAzLCAxLCAyMTcsIAotICAgIDIzMCwgMiwgMjMxLCAzNywgMTAxLCAzMywgNiwgMSwgMjE2LCA0MywgMzMsIDMsIDEsIDIxNiwgNDMsIDMzLCA2LCAxLCAKLSAgICAyMTYsIDExOSwgMzMsIDMsIDEsIDIxNiwgMTE5LCAzMywgNiwgMSwgMjE2LCAxMjMsIDMzLCAzLCAxLCAyMTYsIDEyMywgMzMsIAotICAgIDYsIDEsIDIxNywgMjM1LCAzMywgMywgMSwgMjE3LCAyMzUsIDMzLCA2LCAxLCAyNDAsIDE5MCwgMzMsIDMsIDEsIDI0MCwgCi0gICAgMTkwLCAzMywgNiwgMSwgMjIwLCAxMzIsIDMzLCAzLCAxLCAyMjAsIDEzMiwgMjAsIDEsIDYxLCAyMCwgMSwgMTgxLCAyMCwgCi0gICAgMSwgNjksIDIwLCAxLCAyMzMsIDIzOCwgMjAsIDEsIDI0NSwgMTY1LCAyMCwgMSwgMjI0LCAxLCAyMCwgMSwgMjE4LCAzNSwgCi0gICAgMjAsIDEsIDc1LCAyMCwgMSwgMjI4LCAxMCwgMjAsIDEsIDcyLCAyMCwgMSwgMjMzLCAxNTcsIDIwLCAxLCAxOTMsIDIwLCAxLCAKLSAgICAyMjMsIDEzNiwgMjAsIDEsIDIyMywgMTgyLCAyMCwgMSwgMjMzLCA3MywgMjAsIDEsIDIzMSwgMTQ0LCAyMCwgMSwgMjE4LCAKLSAgICA0OSwgMjAsIDEsIDIyOSwgMjI2LCAyMCwgMSwgMjI5LCAxNCwgMjAsIDEsIDE4MywgMjAsIDEsIDIxOCwgMjA1LCAyMCwgMSwgCi0gICAgMjMwLCAxNzIsIDIwLCAxLCAyMjAsIDIwNywgMjAsIDEsIDIyMCwgMTE3LCAyMCwgMSwgMjIwLCAyMTcsIDIwLCAxLCAyMjEsIAotICAgIDQ0LCAyMCwgMSwgMjMzLCAxNzcsIDIwLCAxLCAyMzQsIDE2MiwgMjAsIDEsIDIyOCwgNjQsIDIwLCAxLCAyMjgsIDkyLCAyMCwgCi0gICAgMSwgMjI4LCAyNDEsIDIwLCAxLCAyMTIsIDIxNywgMjAsIDEsIDIyMCwgMTUwLCAyMCwgMSwgMjEyLCAxNzgsIDIwLCAxLCAKLSAgICAxODYsIDIwLCAxLCAyMjgsIDEyMCwgMjAsIDEsIDIzNCwgMTQ4LCAyMCwgMSwgMjI2LCAyNywgMjAsIDEsIDIyOSwgNywgMjAsIAotICAgIDEsIDIyOCwgMTAxLCAyMCwgMSwgMjI1LCAzMCwgMjAsIDEsIDIxMywgMTgwLCAyMCwgMSwgMjI2LCA4NiwgMjAsIDEsIDI0NCwgCi0gICAgMTE2LCAyMCwgMSwgMjIzLCA1MSwgMjAsIDEsIDIzMiwgMTU2LCAyMCwgMSwgMjMxLCA0MiwgMjAsIDEsIDIyOSwgNjQsIDIwLCAKLSAgICAxLCAyMjMsIDIwNCwgMjAsIDEsIDIyNCwgNjEsIDIwLCAxLCAyMzQsIDE3MSwgMjAsIDEsIDIyOSwgOTMsIDIwLCAxLCAyMjksIAotICAgIDE0MSwgMjAsIDEsIDIyOSwgMTU5LCAyMCwgMSwgMjIwLCAxODcsIDIwLCAxLCAyMjUsIDMzLCAyMCwgMSwgMjQzLCAyMDUsIAotICAgIDIwLCAxLCAyNDQsIDYsIDIwLCAxLCAyMTQsIDQ5LCAyMCwgMSwgMjA1LCAyMCwgMSwgMjMzLCAxMywgMjAsIDEsIDIyNSwgCi0gICAgMjQwLCAyMCwgMSwgMjMyLCAxNzQsIDIwLCAxLCAyMzQsIDM3LCAyMCwgMSwgMjMxLCAxNzcsIDIwLCAxLCAyMjMsIDIzMywgCi0gICAgMjAsIDEsIDIzMSwgMTIyLCAyMCwgMSwgMTg4LCAyMCwgMSwgMjE3LCA3MSwgMjAsIDEsIDIzNCwgMTAxLCAyMCwgMSwgMjMwLCAKLSAgICAyMzEsIDIwLCAxLCAyMzEsIDE4NSwgMjAsIDEsIDIxNywgMTgzLCAyMCwgMSwgMjM0LCA0LCAyMCwgMSwgMjE3LCAyMDAsIAotICAgIDIwLCAxLCAyMjgsIDkzLCAyMCwgMSwgMjIyLCAxNjYsIDIwLCAxLCAyNDQsIDE2MCwgMjAsIDEsIDIzNCwgNiwgMjAsIDEsIAotICAgIDIzNCwgMzMsIDIwLCAzNywgMTUyLCAyMzQsIDE0LCAyMCwgMzcsIDE1MiwgMjE2LCA3NCwgMjAsIDIyOSwgMTMsIDIwLCAKLSAgICAyNDMsIDIwMCwgMjE5LCA2OSwgMjAsIDI0OSwgMTY0LCAyMCwgMjQ5LCAxNTcsIDIwLCAyMjEsIDcwLCAyMCwgMjI0LCAxNTgsIAotICAgIDc3LCA1OSwgMSwgMjUwLCAzMywgMTYwLCAyMTIsIDI0NSwgMjI1LCAxOTMsIDU5LCAxLCAyNTAsIDMzLCAxNjAsIDIxMywgCi0gICAgNTksIDIyNSwgMTkzLCA1OSwgMSwgMjUwLCAzMywgMTYwLCAyMTIsIDI0NSwgMjIxLCA3LCA1OSwgMSwgMjUwLCAzMywgMTYwLCAKLSAgICAyMTMsIDU5LCAyMjEsIDcsIDU5LCAxLCAyNTAsIDMzLCAxNjAsIDIxMiwgMjQ1LCAyMjQsIDE3NSwgNTksIDEsIDI1MCwgMzMsIAotICAgIDE2MCwgMjEzLCA1OSwgMjI0LCAxNzUsIDU5LCAxLCAyNTAsIDMzLCAxNjAsIDIxMiwgMjQ1LCAyMjMsIDUxLCA1OSwgMSwgCi0gICAgMjUwLCAzMywgMTYwLCAyMTMsIDU5LCAyMjMsIDUxLCA1OSwgMSwgMjQ0LCAyNDQsIDI0NiwgNzIsIDE2MCwgMTM0LCA1OSwgCi0gICAgMSwgMTI0LCAyNDYsIDcyLCAxNjAsIDEzNCwgNTksIDEsIDIzMSwgMzgsIDI0NiwgNzIsIDE2MCwgMTM0LCA1OSwgMSwgMTE1LCAKLSAgICAyNDYsIDcyLCAxNjAsIDEzNCwgNTksIDEsIDI0NCwgMjQzLCAyNDYsIDcyLCAxNjAsIDEzNCwgNTksIDEsIDI0NCwgMjQ0LCAKLSAgICAyNDYsIDcyLCAyMzMsIDYzLCAxNjAsIDEzNCwgNTksIDEsIDEyNCwgMjQ2LCA3MiwgMjMzLCA2MywgMTYwLCAxMzQsIDU5LCAKLSAgICAxLCAyMzEsIDM4LCAyNDYsIDcyLCAyMzMsIDYzLCAxNjAsIDEzNCwgNTksIDEsIDExNSwgMjQ2LCA3MiwgMjMzLCA2MywgCi0gICAgMTYwLCAxMzQsIDU5LCAxLCAyNDQsIDI0MywgMjQ2LCA3MiwgMjMzLCA2MywgMTYwLCAxMzQsIDU5LCAxLCAyNDQsIDI0NCwgCi0gICAgMjMzLCA2MywgMTYwLCAxMzQsIDU5LCAxLCAxMjQsIDIzMywgNjMsIDE2MCwgMTM0LCA1OSwgMSwgMjMxLCAzOCwgMjMzLCAKLSAgICA2MywgMTYwLCAxMzQsIDU5LCAxLCAxMTUsIDIzMywgNjMsIDE2MCwgMTM0LCA1OSwgMSwgMjQ0LCAyNDMsIDIzMywgNjMsIAotICAgIDE2MCwgMTM0LCA1OSwgMSwgNjIsIDcxLCAxMzQsIDU5LCAxLCA2MiwgMjIwLCAyMywgNTksIDEsIDYyLCAxOTksIDEzNCwgCi0gICAgNTksIDEsIDIzMiwgMTYzLCA0NiwgMjQ5LCAxMDAsIDI1NCwgMTgsIDU5LCAxLCAyMjQsIDQ4LCAxMTQsIDY4LCA1OSwgMSwgCi0gICAgMjI0LCA0OCwgMTE5LCA2OCwgNTksIDEsIDIyNCwgNDgsIDI0NCwgMjU0LCA3NywgNTksIDEsIDIyNCwgNDgsIDIzNSwgMTkxLCAKLSAgICAyNDQsIDI1NCwgNzcsIDU5LCAxLCAxMTUsIDIzNSwgMTkxLCAyNDQsIDI1NCwgNzcsIDU5LCAxLCAyMTksIDUxLCAyNCwgCi0gICAgMTI0LCAyMTYsIDI0MSwgNTksIDEsIDIxOSwgNTEsIDI0LCAxMTUsIDIxNiwgMjQxLCA3LCA2LCAxLCAyNDUsIDE1NiwgMjU0LCAKLSAgICA3OCwgNywgMywgMSwgMjQ1LCAxNTYsIDI1NCwgNzgsIDcsIDYsIDEsIDI0NSwgMTU2LCAyNTQsIDEwMywgNywgMywgMSwgCi0gICAgMjQ1LCAxNTYsIDI1NCwgMTAzLCA3LCA2LCAxLCAyNDEsIDE5MSwgNywgMywgMSwgMjQxLCAxOTEsIDcsIDYsIDEsIDIxNiwgCi0gICAgNiwgNywgMywgMSwgMjE2LCA2LCA3LCA2LCAxLCAyMTYsIDE4NywgNywgMywgMSwgMjE2LCAxODcsIDcsIDYsIDEsIDI0OSwgCi0gICAgNTEsIDcsIDMsIDEsIDI0OSwgNTEsIDcsIDYsIDEsIDI0OSwgNTIsIDIsIDI0OSwgMTU3LCA3LCAzLCAxLCAyNDksIDUyLCAyLCAKLSAgICAyNDksIDE1NywgNywgMSwgMywgNiwgMjQ0LCAyMzAsIDcsIDEsIDMsIDYsIDE5NywgNywgNiwgMSwgMjU0LCAyMzIsIDcsIDMsIAotICAgIDEsIDI1NCwgMjMyLCA3LCA2LCAxLCAyNTMsIDI0MCwgNywgMywgMSwgMjUzLCAyNDAsIDcsIDYsIDEsIDI1MywgMTA4LCA3LCAKLSAgICAzLCAxLCAyNTMsIDEwOCwgNywgNiwgMSwgMjUzLCA5MiwgNywgMywgMSwgMjUzLCA5MiwgNywgNiwgMSwgMjUzLCA5MywgMiwgCi0gICAgMTk5LCAxMzQsIDcsIDMsIDEsIDI1MywgOTMsIDIsIDE5OSwgMTM0LCA3LCA2LCAxLCAyNTMsIDgzLCA3LCAzLCAxLCAyNTMsIAotICAgIDgzLCA3LCA2LCAxLCAyMjMsIDIwMiwgMjUwLCAyNTMsIDIsIDI0NywgNzQsIDcsIDMsIDEsIDIyMywgMjAyLCAyNTAsIDI1MywgCi0gICAgMiwgMjQ3LCA3NCwgNywgNiwgMSwgMjM1LCAyOCwgMiwgOTAsIDcsIDMsIDEsIDIzNSwgMjgsIDIsIDkwLCA3LCA2LCAxLCAKLSAgICAyMzUsIDI4LCAyLCAyNDcsIDIwNywgOTAsIDcsIDMsIDEsIDIzNSwgMjgsIDIsIDI0NywgMjA3LCA5MCwgNywgNiwgMSwgCi0gICAgMjM1LCAyOCwgMiwgMjE5LCA0NSwgMjQsIDI0NywgMjA3LCA5MCwgNywgMywgMSwgMjM1LCAyOCwgMiwgMjE5LCA0NSwgMjQsIAotICAgIDI0NywgMjA3LCA5MCwgNywgNiwgMSwgMjUxLCA2MywgMTUwLCA3LCAzLCAxLCAyNTEsIDYzLCAxNTAsIDcsIDYsIDEsIDIzMywgCi0gICAgMTcxLCAyLCAxMjQsIDkwLCA3LCAzLCAxLCAyMzMsIDE3MSwgMiwgMTI0LCA5MCwgNywgNiwgMSwgMTU3LCAyLCAxODQsIAotICAgIDIxOSwgNDUsIDIyNiwgMjQ0LCA3LCAzLCAxLCAxNTcsIDIsIDE4NCwgMjE5LCA0NSwgMjI2LCAyNDQsIDcsIDYsIDEsIDE1NywgCi0gICAgMiwgMjMyLCAxNzcsIDcsIDMsIDEsIDE1NywgMiwgMjMyLCAxNzcsIDcsIDYsIDEsIDIyNywgNDksIDcsIDMsIDEsIDIyNywgCi0gICAgNDksIDcsIDYsIDEsIDIyNiwgMjMwLCAyLCAyMTksIDQ1LCAyMTcsIDkzLCAyNDcsIDI0NiwgNywgMywgMSwgMjI2LCAyMzAsIAotICAgIDIsIDIxOSwgNDUsIDIxNywgOTMsIDI0NywgMjQ2LCA3LCA2LCAxLCAyMjYsIDIzMCwgMiwgMjQ0LCAyMiwgNywgMywgMSwgCi0gICAgMjI2LCAyMzAsIDIsIDI0NCwgMjIsIDcsIDYsIDEsIDIyNiwgMjMwLCAyLCAyMTksIDE2MSwgMjE4LCAyNywgNywgMywgMSwgCi0gICAgMjI2LCAyMzAsIDIsIDIxOSwgMTYxLCAyMTgsIDI3LCA3LCA2LCAxLCAyMjQsIDI0MSwgMiwgMjE5LCA0NSwgMjE3LCA5MywgCi0gICAgMjQ3LCAyNDYsIDcsIDMsIDEsIDIyNCwgMjQxLCAyLCAyMTksIDQ1LCAyMTcsIDkzLCAyNDcsIDI0NiwgNywgNiwgMSwgMjI0LCAKLSAgICAyNDEsIDIsIDI0NywgMjA3LCA5MCwgNywgMywgMSwgMjI0LCAyNDEsIDIsIDI0NywgMjA3LCA5MCwgNywgNiwgMSwgMjI0LCAKLSAgICAxMTMsIDIyMywgODgsIDcsIDMsIDEsIDIyNCwgMTEzLCAyMjMsIDg4LCA3LCA2LCAxLCAyMjMsIDQxLCAyMjMsIDg4LCA3LCAKLSAgICAzLCAxLCAyMjMsIDQxLCAyMjMsIDg4LCA3LCA2LCAxLCAyMTUsIDgwLCAyLCAyNDcsIDIwNywgOTAsIDcsIDMsIDEsIDIxNSwgCi0gICAgODAsIDIsIDI0NywgMjA3LCA5MCwgNywgNiwgMSwgMjE0LCA5MCwgNywgMywgMSwgMjE0LCA5MCwgNywgNiwgMSwgMjE0LCAKLSAgICAxMjYsIDIxMiwgMTUyLCA3LCAzLCAxLCAyMTQsIDEyNiwgMjEyLCAxNTIsIDcsIDYsIDEsIDIxNywgMTA1LCAyLCA5MCwgNywgCi0gICAgMywgMSwgMjE3LCAxMDUsIDIsIDkwLCA3LCA2LCAxLCAyMTcsIDEwNSwgMiwgMjE5LCA0NSwgMjE3LCA5MywgMjQ3LCAyNDYsIAotICAgIDcsIDMsIDEsIDIxNywgMTA1LCAyLCAyMTksIDQ1LCAyMTcsIDkzLCAyNDcsIDI0NiwgNywgNiwgMSwgMjE0LCAyMjIsIDcsIAotICAgIDMsIDEsIDIxNCwgMjIyLCA3LCA2LCAxLCAyNDUsIDMwLCA3LCAzLCAxLCAyNDUsIDMwLCA3LCA2LCAxLCAyMzUsIDE2OSwgNywgCi0gICAgMywgMSwgMjM1LCAxNjksIDcsIDYsIDEsIDI0OSwgMTQ2LCA3LCAzLCAxLCAyNDksIDE0NiwgNTksIDEsIDIxNSwgMTA0LCA3LCAKLSAgICAzLCAxLCAyNDYsIDI0LCA3LCAzLCAxLCAyMzIsIDE0MiwgNywgMywgMSwgMjMwLCAxNTAsIDcsIDMsIDEsIDIyOCwgNTcsIDcsIAotICAgIDMsIDEsIDIyMywgNDAsIDcsIDEsIDMsIDYsIDIyMywgNDAsIDcsIDMsIDEsIDIxNiwgNzIsIDcsIDMsIDEsIDIxNSwgMTY3LCAKLSAgICA3LCA2LCAxLCAyMzUsIDIxMCwgMjQ5LCAzLCA3LCAzLCAxLCAyMzUsIDIxMCwgMjQ5LCAzLCA3LCA2LCAxLCAyMzUsIDIxMCwgCi0gICAgMjQ0LCAyMzAsIDcsIDMsIDEsIDIzNSwgMjEwLCAyNDQsIDIzMCwgNywgNiwgMSwgMjM1LCAyMTAsIDI0MywgMTc3LCA3LCA2LCAKLSAgICAxLCAyMTYsIDU4LCAyMzUsIDIxMCwgMjQzLCAxNzcsIDcsIDMsIDEsIDIxNiwgNTgsIDIzNSwgMjEwLCAyNDMsIDE3NywgNywgCi0gICAgNiwgMSwgMjE2LCA1OCwgMTUwLCA3LCAzLCAxLCAyMTYsIDU4LCAxNTAsIDcsIDYsIDEsIDIzNSwgMjEwLCAxNDksIDcsIDMsIAotICAgIDEsIDIzNSwgMjEwLCAxNDksIDcsIDYsIDEsIDIzNSwgMjEwLCAxOTcsIDcsIDMsIDEsIDIzNSwgMjEwLCAxOTcsIDcsIDYsIAotICAgIDEsIDIzNSwgMjEwLCAyMTgsIDk5LCA3LCAzLCAxLCAyMzUsIDIxMCwgMjE4LCA5OSwgNTksIDEsIDExNSwgMjQ5LCAyMjQsIAotICAgIDI1NCwgMTc0LCA1OSwgMSwgMjQ5LCAxNjQsIDU5LCAxLCAyMjAsIDE3NSwgMjQ1LCA2MSwgNTIsIDcsIDYsIDEsIDIyMiwgCi0gICAgMTcwLCA3LCAzLCAxLCAyMjIsIDE3MCwgNywgNiwgMSwgMjE2LCA1OCwgMjQyLCA0MSwgNywgMywgMSwgMjMzLCAxNzEsIDIsIAotICAgIDIyMywgMjA3LCAyNDEsIDM4LCAyNCwgMjUxLCAyMTgsIDcsIDYsIDEsIDIzMCwgOTgsIDIsIDI0NywgMjQ2LCA3LCAzLCAxLCAKLSAgICAyMzAsIDk4LCAyLCAyNDcsIDI0NiwgNywgNiwgMSwgMjQzLCAxNzgsIDIsIDIyNywgMTEyLCA5MCwgNywgMywgMSwgMjQzLCAKLSAgICAxNzgsIDIsIDIyNywgMTEyLCA5MCwgNywgNiwgMSwgMjM1LCAyOCwgMiwgMjI3LCAxMTIsIDkwLCA3LCAzLCAxLCAyMzUsIAotICAgIDI4LCAyLCAyMjcsIDExMiwgOTAsIDcsIDYsIDEsIDIzMCwgOTgsIDIsIDIyNywgMTEyLCA5MCwgNywgMywgMSwgMjMwLCA5OCwgCi0gICAgMiwgMjI3LCAxMTIsIDkwLCA3LCA2LCAxLCAyMjQsIDExMywgMiwgMjI3LCAxMTIsIDkwLCA3LCAzLCAxLCAyMjQsIDExMywgCi0gICAgMiwgMjI3LCAxMTIsIDkwLCA3LCA2LCAxLCAyMjMsIDQsIDIsIDIyNywgMTEyLCA5MCwgNywgMywgMSwgMjIzLCA0LCAyLCAKLSAgICAyMjcsIDExMiwgOTAsIDcsIDEsIDMsIDYsIDIxNiwgNTgsIDE4MywgNywgMjQ1LCA2NiwgMSwgMjIzLCAyMDIsIDI0NCwgCi0gICAgMjMwLCA3LCAyNDUsIDY2LCAxLCAyMjMsIDIwMiwgMjI2LCAyMjksIDcsIDI0NSwgNjYsIDEsIDIzNSwgMTkxLCAxODMsIDcsIAotICAgIDI0NSwgNjYsIDEsIDI0MCwgMTQ2LCAyMzIsIDE4MiwgNywgMjQ1LCA2NiwgMSwgMjUzLCAxOTMsIDE4MywgMjE4LCAxNzUsIAotICAgIDIzMCwgMzIsIDEsIDYxLCAyMTgsIDE3NSwgMjMwLCAzMiwgMSwgNzIsIDIxOCwgMTc1LCAyMzAsIDMyLCA1LCAyNDYsIDMsIAotICAgIDIxOCwgMTc1LCAyMzAsIDMyLCAxLCA2OSwgMjE4LCAxNzUsIDIzMCwgMzIsIDEsIDc0LCAyMTgsIDE3NSwgMjMwLCAzMiwgMSwgCi0gICAgNzUsIDIxOCwgMTc1LCAyMzAsIDMyLCA1LCAyNDEsIDIzNiwgMjE4LCAxNzUsIDIzMCwgMzIsIDEsIDIzNCwgMzcsIDIxOCwgCi0gICAgMTc1LCAyMzAsIDMyLCAxLCAyMzQsIDExMywgMjE4LCAxNzUsIDIzMCwgMzIsIDEsIDI0MiwgMTUwLCAyMTgsIDE3NSwgMjMwLCAKLSAgICAzMiwgMSwgMjQyLCAyMDAsIDIxOCwgMTc1LCAyMzAsIDMyLCA1LCAyNTMsIDI0MiwgMjE4LCAxNzUsIDIzMCwgMzIsIDEsIAotICAgIDI0OSwgMTc1LCAyMTgsIDE3NSwgMjMwLCAzMiwgMSwgMjUwLCAyMywgMjE4LCAxNzUsIDIzMCwgMzIsIDEsIDIzNSwgNzEsIAotICAgIDIxOCwgMTc1LCAyMzAsIDMyLCAxLCAyMzUsIDExMSwgMjE4LCAxNzUsIDIzMCwgMzIsIDEsIDIxNiwgOTUsIDIxOCwgMTc1LCAKLSAgICAyMzAsIDMyLCAxLCAyMTYsIDEwMCwgMjE4LCAxNzUsIDIzMCwgMzIsIDEsIDI0OCwgNTYsIDIxOCwgMTc1LCAyMzAsIDMyLCAKLSAgICAxLCAyNDgsIDY1LCAyMTgsIDE3NSwgMjMwLCAzMiwgMSwgMTA4LCAyMTgsIDE3NSwgMjMwLCAzMiwgMSwgMjE3LCAxMDksIAotICAgIDIxOCwgMTc1LCAyMzAsIDMyLCAxLCAyNDcsIDk5LCAyMTgsIDE3NSwgMjMwLCAzMiwgMSwgMjQ3LCAyMTUsIDIxOCwgMTc1LCAKLSAgICAyMzAsIDMyLCAxLCAyMjgsIDE4NSwgMjE4LCAxNzUsIDIzMCwgMzIsIDEsIDIyNSwgMTUwLCAyMTgsIDE3NSwgMjMwLCAzMiwgCi0gICAgMSwgMjI1LCAyNTMsIDIxOCwgMTc1LCAyMzAsIDMyLCAxLCAyNTEsIDEyOCwgMjE4LCAxNzUsIDIzMCwgMzIsIDEsIDI1MSwgCi0gICAgMTg4LCAyMTgsIDE3NSwgMjMwLCAzMiwgMSwgMjMwLCAyMzEsIDIxOCwgMTc1LCAyMzAsIDMyLCAxLCAyMjMsIDExMiwgMjE4LCAKLSAgICAxNzUsIDIzMCwgMzIsIDEsIDIzMiwgMjA4LCAyMTgsIDE3NSwgMjMwLCAzMiwgMSwgMjIzLCA3MywgMjE4LCAxNzUsIDIzMCwgCi0gICAgMzIsIDEsIDIxOSwgMjQyLCAyMTgsIDE3NSwgMjMwLCAzMiwgMSwgMjQxLCA1NCwgMjE4LCAxNzUsIDIzMCwgMzIsIDMwLCA1LCAKLSAgICA2MSwgMjE4LCAxNzUsIDIzMCwgMzIsIDMwLCA1LCA3MiwgMjE4LCAxNzUsIDIzMCwgMzIsIDMwLCA1LCA2OSwgMjE4LCAxNzUsIAotICAgIDIzMCwgMzIsIDMwLCA1LCA3NCwgMjE4LCAxNzUsIDIzMCwgMzIsIDMwLCA1LCAyMjcsIDQ5LCAyMTgsIDE3NSwgMjMwLCAzMiwgCi0gICAgMjI1LCAxNDYsIDIzMSwgMjIxLCAyMTgsIDE3NSwgMjMwLCAzMiwgMjI1LCAxNDYsIDIzMSwgMjIwLCAyMTgsIDE3NSwgMjMwLCAKLSAgICAzMiwgMjI1LCAxNDYsIDIzMSwgMjE5LCAyMTgsIDE3NSwgMjMwLCAzMiwgMjI1LCAxNDYsIDIzMSwgMjE4LCAyMjgsIDE2NywgCi0gICAgMjM1LCAyMzcsIDI0MywgMjI4LCAxMjIsIDIyNCwgMTY2LCAyMjgsIDE2NywgMjM1LCAyMzcsIDI0MywgMjI4LCAxMjIsIAotICAgIDI0MiwgOSwgMjI4LCAxNjcsIDIzNSwgMjM3LCAyNDMsIDIyOCwgMTMzLCAyMjQsIDE2NCwgMjI4LCAxNjcsIDIzNSwgMjM3LCAKLSAgICAyNDMsIDIyOCwgMTIyLCAyMjAsIDQ1LCAyMjgsIDE2NywgMjM1LCAyMzcsIDI0MywgMjI4LCAxMjIsIDI0NSwgMTQ1LCAyMjgsIAotICAgIDE2NywgMjM1LCAyMzcsIDI0MywgMjI4LCAxMzMsIDIyMCwgNDQsIDIyOCwgMTY3LCAyMzUsIDIzNywgMjI0LCAxNjcsIDc3LCAKLSAgICAyMjgsIDE2NywgMjM1LCAyMzcsIDIyNSwgMTcyLCA3NywgMjI4LCAxNjcsIDIzNSwgMjM3LCAyMjMsIDI5LCA3NywgMjI4LCAKLSAgICAxNjcsIDIzNSwgMjM3LCAyMjQsIDE2OCwgNzcsIDIyNiwgMjAsIDEsIDE4MSwgMjI2LCAyMCwgMSwgMjM0LCAxMzgsIDIyNiwgCi0gICAgMjAsIDEsIDI0MywgMTEwLCAyMjYsIDIwLCAxLCAyMjksIDE1OSwgMjI2LCAyMCwgMSwgMjUwLCAyMTksIDIyNiwgMjAsIDEsIAotICAgIDI1MCwgOTIsIDIyNiwgMjAsIDEsIDIzNSwgMTM5LCAyMjYsIDIwLCAxLCAyMjgsIDIzLCAyMjYsIDIwLCAxLCAyMTgsIDUyLCAKLSAgICAyMjYsIDIwLCAxLCAyMTcsIDE2MSwgMjI2LCAyMCwgMSwgMjQ4LCAxNjQsIDIyNiwgMjAsIDEsIDIwNSwgMjI2LCAyMCwgMSwgCi0gICAgMTkzLCAyMjYsIDIwLCAxLCAyMjYsIDIzLCAyMjYsIDIwLCAxLCAyNTIsIDEwNywgMjI2LCAyMCwgMSwgMTg4LCAyMjYsIDIwLCAKLSAgICAxLCAyMTYsIDE0MSwgMjI2LCAyMCwgMSwgMjE2LCAxMzMsIDIyNiwgMjAsIDEsIDI0NSwgMjQ5LCAyMjYsIDIwLCAxLCAyMTQsIAotICAgIDQ5LCAyMjYsIDIwLCAxLCAyMTIsIDc1LCAyMjYsIDIwLCAxLCAyMTIsIDEwOSwgMjI2LCAyMCwgMSwgMywgNjEsIDIyNiwgCi0gICAgMjAsIDEsIDE4NiwgMjI2LCAyMCwgMSwgMjAzLCAyMjYsIDIwLCAxLCAyMzMsIDE1NywgMjI2LCAyMCwgMSwgMjIxLCAyNCwgCi0gICAgMjI2LCAyMCwgMSwgMjIyLCAyMDIsIDIyNiwgMjAsIDEsIDE1OSwgMjI2LCAyMCwgMSwgNjEsIDIyNiwgMjAsIDEsIDcyLCAKLSAgICAyMjYsIDIwLCAxLCA2OSwgMjI2LCAyMCwgMSwgNzQsIDIyNiwgMjAsIDEsIDc1LCAyMjYsIDIwLCAxLCAyMjQsIDIzMiwgCi0gICAgMjI2LCAyMCwgMSwgMjEzLCAxNTMsIDIyNiwgMjAsIDEsIDI0NCwgMTY0LCAyMjYsIDIwLCAxLCAyNDMsIDUsIDIyNiwgMjAsIAotICAgIDEsIDI0NSwgMTY1LCAyMjYsIDIwLCAyMTksIDE4LCAxLCAyMTQsIDQ5LCAyMjYsIDIwLCAyMTksIDE4LCAxLCAxODYsIDIyNiwgCi0gICAgMjAsIDEsIDIxNiwgMTE1LCAyMjYsIDIwLCAxLCAyMTYsIDEwNSwgMjI2LCAyMCwgMSwgMjQ4LCA4NiwgMjI2LCAyMCwgMSwgCi0gICAgMjI4LCAxOTgsIDIyNiwgMjAsIDEsIDI1NCwgNTAsIDE4NiwgMjI2LCAyMCwgMSwgMjE0LCAxMTUsIDIyMSwgMjQsIDIyNiwgCi0gICAgMjAsIDEsIDIxNCwgMTE2LCAxNTksIDIyNiwgMjAsIDEsIDI1MywgMTM4LCAyNDQsIDE2NCwgMjI2LCAyMCwgMjE5LCAxOCwgCi0gICAgMSwgMjAzLCAyMjYsIDIwLCAyMTgsIDIyNSwgMSwgMjAzLCAyMjYsIDIwLCAxLCAyNTAsIDE4NywgMjI2LCAyMCwgMjIwLCAKLSAgICA4MSwgMjQxLCAyMjAsIDc3LCAyMjYsIDIwLCA1MSwgMjQxLCAyMjAsIDc3LCAyMjYsIDIwLCAxNTIsIDIyMSwgMTcsIDIyNiwgCi0gICAgMjAsIDE1MiwgNTEsIDIyMSwgMTcsIDE2OSwgNSwgMjUzLCAyNDIsIDE2OSwgNSwgMjE0LCAxMjgsIDE2OSwgMSwgNjEsIAotICAgIDE2OSwgMSwgMjU0LCAyMzIsIDE2OSwgMSwgNzIsIDE2OSwgMSwgMjM2LCAyOCwgMTY5LCAxLCA2OSwgMTY5LCAxLCAyMTUsIAotICAgIDkyLCAxNjksIDEsIDE2MSwgMTQ5LCAxNjksIDEsIDE2MSwgMjIzLCA4MiwgMTY5LCAxLCAxNjEsIDE1MCwgMTY5LCAxLCAKLSAgICAxNjEsIDIzMiwgMjE0LCAxNjksIDEsIDc0LCAxNjksIDEsIDI0NSwgMTY1LCAxNjksIDEsIDI1NCwgMTA4LCAxNjksIDEsIAotICAgIDc1LCAxNjksIDEsIDIyNywgNDksIDE2OSwgMSwgMjUzLCAxMDgsIDE2OSwgMSwgMTgxLCAxNjksIDEsIDIzNCwgMTM4LCAKLSAgICAxNjksIDEsIDI0MywgMTEwLCAxNjksIDEsIDI0MiwgMjI1LCAxNjksIDEsIDIyOSwgMTU5LCAxNjksIDEsIDI1MCwgMjE5LCAKLSAgICAxNjksIDEsIDI1MCwgOTIsIDE2OSwgMSwgMjM1LCAxMzksIDE2OSwgMSwgMjM1LCAxMTUsIDE2OSwgMSwgMjI4LCAyMywgCi0gICAgMTY5LCAxLCAyMTYsIDExNSwgMTY5LCAxLCAyMTYsIDEwNSwgMTY5LCAxLCAyNDgsIDg2LCAxNjksIDEsIDI0OCwgNzAsIAotICAgIDE2OSwgMSwgMjI4LCAxOTgsIDE2OSwgMSwgMjE4LCA1MiwgMTY5LCAxLCAyMTcsIDE2MSwgMTY5LCAxLCAyNDgsIDE2NCwgCi0gICAgMTY5LCAxLCAyNDcsIDIzMiwgMTY5LCAxLCAyMDUsIDE2OSwgMSwgMTkzLCAxNjksIDEsIDIyNiwgMjMsIDE2OSwgMSwgMjUyLCAKLSAgICAxMDcsIDE2OSwgMSwgMjUxLCAxOTUsIDE2OSwgMSwgMTg4LCAxNjksIDEsIDE4NiwgMTY5LCAxLCAyMDMsIDE2OSwgMSwgCi0gICAgMjMzLCAxNTcsIDE2OSwgMSwgMjE1LCAxLCAxNjksIDEsIDIyMSwgMjQsIDE2OSwgMSwgMjE5LCAxNTcsIDE2OSwgMSwgMjIyLCAKLSAgICAyMDIsIDE2OSwgMSwgMTU5LCAxNjksIDEsIDIzMiwgMjEzLCAxNjksIDI0OSwgMTMzLCA1LCAyNDIsIDI1LCAxNjksIDMwLCAKLSAgICA1LCAyNTQsIDIzMiwgMTY5LCAzMCwgNSwgNzIsIDE2OSwgMzAsIDUsIDIzNiwgMjgsIDE2OSwgMzAsIDUsIDY5LCAxNjksIAotICAgIDMwLCA1LCAyMTUsIDkyLCAxNjksIDMwLCA1LCAxNjEsIDE0OSwgMTY5LCAzMCwgNSwgMTYxLCAyMjMsIDgyLCAxNjksIDMwLCAKLSAgICA1LCAxNjEsIDE1MCwgMTY5LCAzMCwgNSwgMTYxLCAyMzIsIDIxNCwgMTY5LCAzMCwgNSwgNzQsIDE2OSwgMzAsIDUsIDI0NSwgCi0gICAgMTY1LCAxNjksIDMwLCA1LCAyNTQsIDEwOCwgMTY5LCAzMCwgNSwgNzUsIDE2OSwgMzAsIDUsIDIyNywgNDksIDE2OSwgMzAsIAotICAgIDUsIDI1MywgMTA4LCAxNjksIDUsIDIxNCwgMTMzLCAxNjksIDI0OCwgMTIzLCAxNjksIDUxLCAyNDgsIDEyMywgMTY5LCAyMSwgCi0gICAgMjEyLCA3OSwgMTY5LCAyMSwgMTE2LCAxNjksIDIxLCAxMDksIDE2OSwgMjEsIDE2NiwgMTY5LCAyMSwgMTYzLCAxNjksIDIxLCAKLSAgICAxODAsIDE2OSwgMjEsIDE4OSwgMTY5LCAyMSwgMTk4LCAxNjksIDIxLCAxOTUsIDE2OSwgMjEsIDIwMCwgMzcsIDgyLCAyMSwgCi0gICAgMjEyLCA3OSwgMzcsIDgyLCAyMSwgMTE2LCAzNywgODIsIDIxLCAxMDksIDM3LCA4MiwgMjEsIDE2NiwgMzcsIDgyLCAyMSwgCi0gICAgMTYzLCAzNywgODIsIDIxLCAxODAsIDM3LCA4MiwgMjEsIDE4OSwgMzcsIDgyLCAyMSwgMTk4LCAzNywgODIsIDIxLCAxOTUsIAotICAgIDM3LCA4MiwgMjEsIDIwMCwgMzcsIDgyLCAxLCA2MSwgMzcsIDgyLCAxLCA2OSwgMzcsIDgyLCAxLCAxODEsIDM3LCA4MiwgMSwgCi0gICAgMjA1LCAzNywgODIsIDEsIDE5MywgMzcsIDgyLCAxLCAyMDMsIDM3LCA4MiwgMSwgMjE0LCAxNTQsIDM3LCA4MiwgNSwgMjUzLCAKLSAgICA5MSwgODIsIDUsIDIxOSwgMjA1LCAyNTAsIDE4NywgODIsIDUsIDI1MCwgMTg4LCAyMTQsIDEzMywgODIsIDUsIDUxLCAyNTAsIAotICAgIDE4OCwgMjE0LCAxMzMsIDgyLCA1LCAyNTAsIDE4OCwgMTA5LCA4MiwgNSwgMjUwLCAxODgsIDE2NiwgODIsIDUsIDI1MCwgCi0gICAgMTg4LCAyNTMsIDkxLCA4MiwgNSwgMjI1LCAxMSwgODIsIDI0MywgNzYsIDI0NCwgNzIsIDgyLCAyNTAsIDE3MCwgODIsIAotICAgIDI0MSwgMjE0LCAyMzQsIDE5NCwgMjMzLCAxNCwgMjEsIDIxMiwgNzksIDIzNCwgMTk0LCAyMzMsIDE0LCAyMSwgMTE2LCAKLSAgICAyMzQsIDE5NCwgMjMzLCAxNCwgMjEsIDEwOSwgMjM0LCAxOTQsIDIzMywgMTQsIDIxLCAxNjYsIDIzNCwgMTk0LCAyMzMsIAotICAgIDE0LCAyMSwgMTYzLCAyMzQsIDE5NCwgMjMzLCAxNCwgMjEsIDE4MCwgMjM0LCAxOTQsIDIzMywgMTQsIDIxLCAxODksIDIzNCwgCi0gICAgMTk0LCAyMzMsIDE0LCAyMSwgMTk4LCAyMzQsIDE5NCwgMjMzLCAxNCwgMjEsIDE5NSwgMjM0LCAxOTQsIDIzMywgMTQsIDIxLCAKLSAgICAyMDAsIDIzNCwgMTk0LCAyMzMsIDE0LCAxLCAxODEsIDIzNCwgMTk0LCAyMzMsIDE0LCAxLCAyMzQsIDEzOCwgMjM0LCAxOTQsIAotICAgIDIzMywgMTQsIDEsIDI0MywgMTEwLCAyMzQsIDE5NCwgMjMzLCAxNCwgMSwgMjI5LCAxNTksIDIzNCwgMTk0LCAyMzMsIDE0LCAKLSAgICAxLCAyMjIsIDIwMiwgMjM0LCAxOTQsIDIzMywgMTQsIDEsIDIyMSwgMjQsIDIzNCwgMTk0LCAyMzMsIDE0LCAxLCAyMTIsIAotICAgIDEwOSwgMjM0LCAxOTQsIDIzMywgMTQsIDEsIDIyOCwgMjMsIDIzNCwgMTk0LCAyMzMsIDE0LCAxLCAyMTgsIDUyLCAyMzQsIAotICAgIDE5NCwgMjMzLCAxNCwgMSwgMjQwLCAyMTQsIDIzNCwgMTk0LCAyMzMsIDE0LCAxLCAyMDUsIDIzNCwgMTk0LCAyMzMsIDE0LCAKLSAgICAxLCAxOTMsIDIzNCwgMTk0LCAyMzMsIDE0LCAxLCAyMjYsIDIzLCAyMzQsIDE5NCwgMjMzLCAxNCwgMSwgMTg4LCAyMzQsIAotICAgIDE5NCwgMjMzLCAxNCwgMSwgMjQ4LCAxNjQsIDIzNCwgMTk0LCAyMzMsIDE0LCAxLCAyNTIsIDEwNywgMjM0LCAxOTQsIDIzMywgCi0gICAgMTQsIDEsIDIwMywgMjM0LCAxOTQsIDIzMywgMTQsIDEsIDE4NiwgMjM0LCAxOTQsIDIzMywgMTQsIDEsIDIzMywgMTU3LCAKLSAgICAyMzQsIDE5NCwgMjMzLCAxNCwgMSwgMjE0LCA0OSwgMjM0LCAxOTQsIDIzMywgMTQsIDEsIDIxNywgMTYxLCAyMzQsIDE5NCwgCi0gICAgMjMzLCAxNCwgMSwgMTU5LCAyMzQsIDE5NCwgMjMzLCAxNCwgMSwgMjE1LCAxLCAyMzQsIDE5NCwgMjMzLCAxNCwgMSwgMjUwLCAKLSAgICAyMTksIDIzNCwgMTk0LCAyMzMsIDE0LCAxLCA2MSwgMjM0LCAxOTQsIDIzMywgMTQsIDEsIDIyNywgOTksIDIzNCwgMTk0LCAKLSAgICAyMzMsIDE0LCAxLCA3MiwgMjM0LCAxOTQsIDIzMywgMTQsIDEsIDIyNywgNDksIDIzNCwgMTk0LCAyMzMsIDE0LCAzMCwgCi0gICAgMjE1LCAxODMsIDIzNCwgMTk0LCAyMzMsIDE0LCAzMCwgNzQsIDIzNCwgMTk0LCAyMzMsIDE0LCAzMCwgNjksIDIzNCwgMTk0LCAKLSAgICAyMzMsIDE0LCAzMCwgMjQ1LCAxNjUsIDIzNCwgMTk0LCAyMzMsIDE0LCAzMCwgNzUsIDIzNCwgMTk0LCAyMzMsIDE0LCAxNjAsIAotICAgIDIyNSwgMTYzLCAyMzQsIDE5NCwgMjMzLCAxNCwgMTYwLCAyNTAsIDIwMCwgMjM0LCAxOTQsIDIzMywgMTQsIDE2MCwgMjUwLCAKLSAgICAyMDEsIDIyNSwgMTYzLCAyMzQsIDE5NCwgMjMzLCAxNCwgNSwgMjQ5LCAyMCwgMjM0LCAxOTQsIDIzMywgMTQsIDUsIDIyMCwgCi0gICAgMTI1LCAyMjMsIDI0MywgMSwgMTgxLCAyMjMsIDI0MywgMSwgMjQzLCAxMTAsIDIyMywgMjQzLCAxLCAyMjksIDE1OSwgMjIzLCAKLSAgICAyNDMsIDEsIDIxOCwgNTIsIDIyMywgMjQzLCAxLCAyNDgsIDE2NCwgMjIzLCAyNDMsIDEsIDIwNSwgMjIzLCAyNDMsIDEsIAotICAgIDE5MywgMjIzLCAyNDMsIDEsIDI1MiwgMTA3LCAyMjMsIDI0MywgMSwgMTg4LCAyMjMsIDI0MywgMSwgMjUwLCAyMTksIDIyMywgCi0gICAgMjQzLCAxLCAyMzUsIDEzOSwgMjIzLCAyNDMsIDEsIDIyOCwgMjMsIDIyMywgMjQzLCAxLCAyMjIsIDIwMiwgMjIzLCAyNDMsIAotICAgIDEsIDIwMywgMjIzLCAyNDMsIDEsIDIzMywgMTU3LCAyMjMsIDI0MywgMSwgMTg2LCAyMjMsIDI0MywgMSwgMjE0LCA0OSwgCi0gICAgMjIzLCAyNDMsIDEsIDE1OSwgMjIzLCAyNDMsIDEsIDIzMSwgMTg3LCAyMjMsIDI0MywgMSwgMjI5LCAxNDEsIDIyMywgMjQzLCAKLSAgICAxLCAyMjksIDIyOCwgMjIzLCAyNDMsIDEsIDIyNywgMjU0LCAyMjMsIDI0MywgMSwgNjEsIDIyMywgMjQzLCAzMCwgNSwgNzIsIAotICAgIDIyMywgMjQzLCAzMCwgNSwgNjksIDIyMywgMjQzLCAzMCwgNSwgNzQsIDIyMywgMjQzLCAzMCwgNSwgMjU0LCAxMDgsIDIyMywgCi0gICAgMjQzLCAzMCwgNSwgNzUsIDIyMywgMjQzLCAzMCwgNSwgMjUzLCAxMDgsIDIyMywgMjQzLCAzMCwgNSwgMjQ1LCAyMiwgMjIzLCAKLSAgICAyNDMsIDMwLCA1LCAyNDUsIDE4OSwgMjIzLCAyNDMsIDI0OSwgMTMzLCA1LCAyMjksIDE2MSwgMjIzLCAyNDMsIDI0OSwgCi0gICAgMTMzLCA1LCAyMDQsIDIyMywgMjQzLCAyNDksIDEzMywgNSwgMTQ5LCAyMjMsIDI0MywgMjQ5LCAxMzMsIDUsIDI0MiwgNDEsIAotICAgIDIyMywgMjQzLCAyMTQsIDEzMywgMjIzLCAyNDMsIDIyMiwgOTIsIDc3LCAyMywgOTcsIDIxNywgNTEsIDIzLCA5NywgMjE3LCAKLSAgICA1MCwgMjMsIDk3LCAyMTcsIDQ4LCAyMywgOTcsIDIxNywgNTMsIDIzLCA5NywgMjIzLCAxNzQsIDIzLCA5NywgMjIzLCAxNTgsIAotICAgIDIzLCA5NywgMjIzLCAxNTMsIDIzLCA5NywgMjIzLCAxNTUsIDIzLCA5NywgMjIzLCAxNzEsIDIzLCA5NywgMjIzLCAxNjQsIAotICAgIDIzLCA5NywgMjIzLCAxNTcsIDIzLCA5NywgMjIzLCAxNzYsIDIzLCA5NywgMjIzLCAxNTksIDIzLCA5NywgMjIzLCAxNzgsIAotICAgIDIzLCA5NywgMjIzLCAxNzUsIDIzLCA5NywgMjMxLCAyNiwgMjMsIDk3LCAyMzEsIDE3LCAyMywgOTcsIDIzMSwgMjAsIDIzLCAKLSAgICA5NywgMjI1LCAyMTIsIDIzLCA5NywgMjI1LCAyMjMsIDIzLCA5NywgMjI1LCAyMjQsIDIzLCA5NywgMjE5LCAxNDIsIDIzLCAKLSAgICA5NywgMjM2LCA0MSwgMjMsIDk3LCAyMzYsIDQ4LCAyMywgOTcsIDIxOSwgMTUzLCAyMywgOTcsIDIxOSwgMTQwLCAyMywgOTcsIAotICAgIDIyNiwgNiwgMjMsIDk3LCAyNDEsIDE1MywgMjMsIDk3LCAyMTksIDEzNywgMTQ0LCA1LCAyMjYsIDE1NSwgMTQ0LCA1LCAKLSAgICAyNTAsIDEyMSwgMTQ0LCA1LCAyMzMsIDkwLCAxNDQsIDUsIDIxMywgMjI4LCAxNDQsIDEsIDYxLCAxNDQsIDEsIDI0MCwgCi0gICAgMTQ2LCAyMzQsIDE5NywgMTQ0LCAxLCA3MiwgMTQ0LCAxLCAyMzYsIDI4LCAxNDQsIDEsIDY5LCAxNDQsIDEsIDIyNiwgMjE0LCAKLSAgICAyNTAsIDk3LCAxNDQsIDEsIDIyOSwgMTYwLCAyMzMsIDUyLCAxNDQsIDEsIDIyOSwgMTYwLCAyMzMsIDUzLCAyMjQsIDM0LCAKLSAgICAxNDQsIDEsIDc0LCAxNDQsIDEsIDI1NCwgMTA4LCAxNDQsIDEsIDc1LCAxNDQsIDEsIDE4MSwgMTQ0LCAxLCAyMzUsIDE3LCAKLSAgICAyMjIsIDE0NCwgMTQ0LCAxLCAyMzUsIDE3LCAyMzAsIDEzNiwgMTQ0LCAxLCAyNDMsIDExMCwgMTQ0LCAxLCAyNDMsIDExMSwgCi0gICAgMjMwLCAxMzYsIDE0NCwgMSwgMjI5LCAxNTksIDE0NCwgMSwgMjUwLCAyMTksIDE0NCwgMSwgMjUwLCAyMjAsIDIzMCwgMTM2LCAKLSAgICAxNDQsIDEsIDIzNSwgMTM5LCAxNDQsIDEsIDIyOCwgMjQsIDIzMCwgMTM2LCAxNDQsIDEsIDIzNSwgMTQwLCAyMzIsIDEyLCAKLSAgICAxNDQsIDEsIDIyOCwgMjMsIDE0NCwgMSwgMjE2LCAxMTUsIDE0NCwgMSwgMjE2LCAxMTYsIDIzMiwgMTIsIDE0NCwgMSwgCi0gICAgMjQ4LCA4NiwgMTQ0LCAxLCAyNDgsIDg3LCAyMzIsIDEyLCAxNDQsIDEsIDIzMCwgNDYsIDIzMCwgMTM2LCAxNDQsIDEsIAotICAgIDIxOCwgNTIsIDE0NCwgMSwgMjE4LCA1MywgMjMwLCAxMzYsIDE0NCwgMSwgMjQ4LCAxNjQsIDE0NCwgMSwgMjQ4LCAxNjUsIAotICAgIDIzMiwgMTIsIDE0NCwgMSwgMjA1LCAxNDQsIDEsIDE5MywgMTQ0LCAxLCAyMjYsIDIxNCwgMjMwLCAxMzYsIDE0NCwgMSwgCi0gICAgMjUyLCAxMDcsIDE0NCwgMSwgMjUyLCAxMDgsIDIzMCwgMTM2LCAxNDQsIDEsIDE4OCwgMTQ0LCAxLCAxODYsIDE0NCwgMSwgCi0gICAgMjAzLCAxNDQsIDEsIDIyNCwgNzcsIDI1NCwgMTE1LCAxNDQsIDEsIDIzMywgMTU3LCAxNDQsIDEsIDIxNCwgNDksIDE0NCwgCi0gICAgMSwgMjIyLCAyMDMsIDIzMCwgMTM2LCAxNDQsIDEsIDIyMiwgMjAzLCAyMzIsIDEyLCAxNDQsIDEsIDIyMiwgMjAyLCAxNDQsIAotICAgIDEsIDE1OSwgMTQ0LCA1LCAyNTAsIDEyMiwgMjE3LCAyMDMsIDE0NCwgMzAsIDUsIDIxNywgMjU0LCAxNDQsIDMwLCA1LCAKLSAgICAyMTYsIDI0NiwgMTQ0LCAzMCwgNSwgMjEzLCAxNzgsIDE0NCwgMzAsIDUsIDIxMywgMTc5LCAyMzEsIDEzMywgMTQ0LCAzMCwgCi0gICAgNSwgMjE4LCAyNDgsIDE0NCwgMzAsIDUsIDIxOCwgMjQ5LCAyMzEsIDEyMSwgMTQ0LCAzMCwgNSwgMjE4LCAxNiwgMTQ0LCAKLSAgICAzMCwgNSwgMjQ3LCAxNDYsIDIzMCwgMTM1LCAxNDQsIDMwLCA1LCAyMjYsIDU5LCAxNDQsIDI0OSwgMTMzLCA1LCAyMzQsIAotICAgIDE2NCwgMTQ0LCAyNDksIDEzMywgNSwgMjI2LCA3MSwgMTQ0LCAyNDksIDEzMywgNSwgMjUwLCAyMDcsIDE0NCwgMjI2LCAKLSAgICAxNjcsIDE0NCwgNDIsIDIyMywgMjIxLCAxNDQsIDQ2LCAyMjMsIDIyMSwgMTQ0LCAyMjYsIDIwMywgMjU0LCAyNiwgMTQ0LCAKLSAgICAyMjYsIDIwMywgMjMyLCAyOSwgMTQ0LCAyMjYsIDIwMywgMjMyLCAxNDYsIDE0NCwgMjI2LCAyMDMsIDIxMywgMjIzLCAxNDQsIAotICAgIDIyNiwgMjAzLCAyMjYsIDE2OCwgMTQ0LCAyMjYsIDIwMywgMjMyLCAyMzQsIDE0NCwgMjI2LCAyMDMsIDIzMiwgMTQwLCAKLSAgICAxNDQsIDIyNiwgMjAzLCAyNTQsIDE1NCwgMTQ0LCAyMjYsIDIwMywgMjU0LCAxNTUsIDI1NCwgMTU0LCAxNDQsIDIyNiwgCi0gICAgMjAzLCAyMjUsIDE4MywgMTQ0LCAyMTYsIDU4LCAyMjYsIDIwMywgMjI1LCAxODMsIDE0NCwgMjI2LCAxNjQsIDE0NCwgMjEsIAotICAgIDIxMiwgNzksIDE0NCwgMjEsIDExNiwgMTQ0LCAyMSwgMTA5LCAxNDQsIDIxLCAxNjYsIDE0NCwgMjEsIDE2MywgMTQ0LCAyMSwgCi0gICAgMTgwLCAxNDQsIDIxLCAxODksIDE0NCwgMjEsIDE5OCwgMTQ0LCAyMSwgMTk1LCAxNDQsIDIxLCAyMDAsIDE0NCwgMjI2LCAKLSAgICAyMDMsIDIxNywgMjIsIDIxNiwgNzAsIDE0NCwgMjI2LCAyMDMsIDIzNSwgMTY1LCAxNjIsIDEsIDYxLCAxNjIsIDEsIDcyLCAKLSAgICAxNjIsIDEsIDY5LCAxNjIsIDEsIDc0LCAxNjIsIDEsIDI1NCwgMTA4LCAxNjIsIDEsIDc1LCAxNjIsIDEsIDE4MSwgMTYyLCAKLSAgICAxLCAyMzQsIDEzOCwgMTYyLCAxLCAyNDMsIDExMCwgMTYyLCAxLCAyNDIsIDIyNSwgMTYyLCAxLCAyMjksIDc1LCAxNjIsIDEsIAotICAgIDIyOSwgMTU5LCAxNjIsIDEsIDI1MCwgOTIsIDE2MiwgMSwgMjUwLCA0OSwgMTYyLCAxLCAyMzUsIDEzOSwgMTYyLCAxLCAKLSAgICAyMzUsIDExNSwgMTYyLCAxLCAyMjksIDY2LCAxNjIsIDEsIDIyOSwgNjgsIDE2MiwgMSwgMjI5LCA2NywgMTYyLCAxLCAyMTgsIAotICAgIDUyLCAxNjIsIDEsIDIxNywgMTYxLCAxNjIsIDEsIDI0OCwgMTY0LCAxNjIsIDEsIDI0NywgMjMyLCAxNjIsIDEsIDIyOCwgCi0gICAgNjIsIDE2MiwgMSwgMjA1LCAxNjIsIDEsIDI0OCwgODYsIDE2MiwgMSwgMTkzLCAxNjIsIDEsIDIyNSwgMTAwLCAxNjIsIDEsIAotICAgIDIyNiwgMjMsIDE2MiwgMSwgMjUyLCAxMDcsIDE2MiwgMSwgMjUxLCAxOTUsIDE2MiwgMSwgMjMwLCAxNjUsIDE2MiwgMSwgCi0gICAgMTg4LCAxNjIsIDEsIDI1MiwgMzEsIDE2MiwgMSwgMTg2LCAxNjIsIDEsIDIwMywgMTYyLCAxLCAyMzMsIDE1NywgMTYyLCAxLCAKLSAgICAyMTUsIDEsIDE2MiwgMSwgMjE5LCAxNTcsIDE2MiwgMSwgMjIyLCAyMDIsIDE2MiwgMSwgMTU5LCAxNjIsIDMwLCA1LCAyNTQsIAotICAgIDIzMiwgMTYyLCAzMCwgNSwgNzIsIDE2MiwgMzAsIDUsIDIzNiwgMjgsIDE2MiwgMzAsIDUsIDI0NSwgMTUyLCAxNjIsIDMwLCAKLSAgICA1LCA2OSwgMTYyLCAzMCwgNSwgMjI3LCA5OSwgMTYyLCAzMCwgNSwgNzUsIDE2MiwgMzAsIDUsIDI1NCwgMTA4LCAxNjIsIAotICAgIDMwLCA1LCAyNTMsIDEwOCwgMTYyLCAzMCwgNSwgMjE1LCAxODMsIDE2MiwgMjQ5LCAxMzMsIDUsIDE4NiwgMTYyLCAyNDksIAotICAgIDEzMywgNSwgMjAzLCAxNjIsIDI0OSwgMTMzLCA1LCAyMzMsIDE1NywgMTYyLCAyNDksIDEzMywgNSwgMjE0LCA0OSwgMTYyLCAKLSAgICAxLCA0MCwgMjM1LCAyNywgMTYyLCAxLCA0MCwgMjQzLCAxNzcsIDE2MiwgMSwgNDAsIDIyOSwgMTYxLCAxNjIsIDI0OSwgCi0gICAgMTMzLCA1LCA0MCwgMjI5LCAxNjEsIDE2MiwgMSwgNDAsIDI1MCwgOTMsIDE2MiwgMSwgNDAsIDIxOCwgOTksIDE2MiwgMSwgCi0gICAgNDAsIDIwNCwgMTYyLCAxLCA0MCwgMjI2LCAyMjksIDE2MiwgMSwgNDAsIDIxMywgMTA1LCAxNjIsIDEsIDQwLCAxNDksIAotICAgIDE2MiwgMSwgNDAsIDE1MCwgMTYyLCAxLCA0MCwgMjE5LCAxNTgsIDE2MiwgMjQ5LCAxMzMsIDUsIDQwLCAxODMsIDE2MiwgCi0gICAgMjQ5LCAxMzMsIDUsIDQwLCAyNDIsIDQxLCAxNjIsIDIxLCAyMTIsIDc5LCAxNjIsIDIxLCAxMTYsIDE2MiwgMjEsIDEwOSwgCi0gICAgMTYyLCAyMSwgMTY2LCAxNjIsIDIxLCAxNjMsIDE2MiwgMjEsIDE4MCwgMTYyLCAyMSwgMTg5LCAxNjIsIDIxLCAxOTgsIAotICAgIDE2MiwgMjEsIDE5NSwgMTYyLCAyMSwgMjAwLCAxNjIsIDIyNSwgMjcsIDIxOSwgMTgzLCAxNjIsIDIyNSwgMjcsIDI0OCwgCi0gICAgMTIzLCAxNjIsIDIyNSwgMjcsIDUxLCAyNDgsIDEyMywgMTYyLCAyMjUsIDI3LCAyMTYsIDE2OSwgMjQ4LCAxMjMsIDY0LCAxLCAKLSAgICAyMzQsIDEzMiwgMjQzLCAxMTAsIDY0LCAxLCAyMzQsIDEzMiwgMjUwLCAyMTksIDY0LCAxLCAyMzQsIDEzMiwgMjUwLCA5MiwgCi0gICAgNjQsIDEsIDIzNCwgMTMyLCAyMzUsIDEzOSwgNjQsIDEsIDIzNCwgMTMyLCAyMzUsIDExNSwgNjQsIDEsIDIzNCwgMTMyLCAKLSAgICAyMjgsIDIzLCA2NCwgMSwgMjM0LCAxMzIsIDIxNiwgMTE1LCA2NCwgMSwgMjM0LCAxMzIsIDIxNiwgMTA1LCA2NCwgMSwgCi0gICAgMjM0LCAxMzIsIDI0OCwgODYsIDY0LCAxLCAyMzQsIDEzMiwgMjQ4LCA3MCwgNjQsIDEsIDIzNCwgMTMyLCAyNDcsIDIzMiwgCi0gICAgNjQsIDEsIDIzNCwgMTMyLCAyMDUsIDY0LCAxLCAyMzQsIDEzMiwgMjIyLCAyMDIsIDY0LCAxLCAyMzQsIDEzMiwgMTU5LCAKLSAgICA2NCwgMSwgMjM0LCAxMzIsIDI0MSwgMTc0LCA2NCwgMSwgMjM0LCAxMzIsIDI0NCwgMTY0LCA2NCwgNTksIDEsIDIzNCwgCi0gICAgMTMyLCAyMjQsIDIsIDY0LCAxLCAyMzQsIDEzMiwgMjEzLCAxNTMsIDY0LCAxLCAyMzQsIDEzMiwgMjEyLCAxMDksIDY0LCAxLCAKLSAgICAyMzQsIDEzMiwgMjAzLCA2NCwgMjMyLCAxOTgsIDIzNCwgMTMyLCAyMjcsIDExNywgNjQsIDIzMiwgMTk4LCAyMzQsIDEzMiwgCi0gICAgMjI0LCAxODgsIDY0LCAyMzIsIDE5OCwgMjM0LCAxMzIsIDI0MSwgMTA3LCA2NCwgMTYsIDI1NCwgOTgsIDI0NCwgMjUzLCAKLSAgICA2NCwgMTYsIDI1NCwgOTgsIDExNiwgNjQsIDE2LCAyNTQsIDk4LCAxMDksIDY0LCAxLCAyNTQsIDk4LCAyMDMsIDY0LCA1LCAKLSAgICAyMjYsIDE1MSwgMjM0LCAyMTgsIDIxNiwgMjQxLCAzOCwgMTkwLCAxLCAxMTUsIDIzNCwgMzcsIDM4LCAxOTAsIDEsIDEyNCwgCi0gICAgMjM0LCAzNywgMzgsIDE5MCwgMSwgMTE1LCAyMzQsIDExMywgMzgsIDE5MCwgMSwgMTI0LCAyMzQsIDExMywgMzgsIDE5MCwgCi0gICAgMSwgMTE1LCAyMzQsIDEyMCwgMzgsIDE5MCwgMSwgMTI0LCAyMzQsIDEyMCwgMzgsIDE5MCwgMSwgMTE1LCAyNDIsIDE1MCwgCi0gICAgMzgsIDE5MCwgMSwgMTI0LCAyNDIsIDE1MCwgMzgsIDE5MCwgMSwgMTE1LCAyMjksIDkwLCAzOCwgMTkwLCAxLCAxMjQsIAotICAgIDIyOSwgOTAsIDM4LCAxOTAsIDEsIDExNSwgMjQ5LCAxNzUsIDM4LCAxOTAsIDEsIDEyNCwgMjQ5LCAxNzUsIDM4LCAxOTAsIAotICAgIDEsIDExNSwgMjUwLCAyMywgMzgsIDE5MCwgMSwgMTI0LCAyNTAsIDIzLCAzOCwgMTkwLCAxLCAxMTUsIDIxOSwgMjQyLCAzOCwgCi0gICAgMTkwLCAxLCAxMjQsIDIxOSwgMjQyLCAzOCwgMTkwLCAxLCAxMTUsIDIyNywgMjUzLCAzOCwgMTkwLCAxLCAxMjQsIDIyNywgCi0gICAgMjUzLCAzOCwgMTkwLCAxLCAxMTUsIDI0NywgOTksIDM4LCAxOTAsIDEsIDEyNCwgMjQ3LCA5OSwgMzgsIDE5MCwgMSwgMTE1LCAKLSAgICAxMDgsIDM4LCAxOTAsIDEsIDEyNCwgMTA4LCAzOCwgMTkwLCAxLCAxMTUsIDIxNywgMTA5LCAzOCwgMTkwLCAxLCAxMjQsIAotICAgIDIxNywgMTA5LCAzOCwgMTkwLCAxLCAxMTUsIDIyOCwgMTg1LCAzOCwgMTkwLCAxLCAxMjQsIDIyOCwgMTg1LCAzOCwgMTkwLCAKLSAgICAxLCAxMTUsIDI1MSwgMTI4LCAzOCwgMTkwLCAxLCAxMjQsIDI1MSwgMTI4LCAzOCwgMTkwLCAxLCAxMTUsIDIyNSwgMTUwLCAKLSAgICAzOCwgMTkwLCAxLCAxMjQsIDIyNSwgMTUwLCAzOCwgMTkwLCAxLCAxMTUsIDIyNSwgMjUzLCAzOCwgMTkwLCAxLCAxMjQsIAotICAgIDIyNSwgMjUzLCAzOCwgMTkwLCAxLCAxMTUsIDI0NCwgMTIsIDM4LCAxOTAsIDEsIDEyNCwgMjQ0LCAxMiwgMzgsIDE5MCwgMSwgCi0gICAgMTE1LCAyMzAsIDIzMSwgMzgsIDE5MCwgMSwgMTI0LCAyMzAsIDIzMSwgMzgsIDE5MCwgMSwgMTE1LCAyMTIsIDIzNSwgMzgsIAotICAgIDE5MCwgMSwgMTI0LCAyMTIsIDIzNSwgMzgsIDE5MCwgMSwgMTE1LCAyMjMsIDExMiwgMzgsIDE5MCwgMSwgMTI0LCAyMjMsIAotICAgIDExMiwgMzgsIDE5MCwgMSwgMTE1LCAyMzIsIDIwOCwgMzgsIDE5MCwgMSwgMTI0LCAyMzIsIDIwOCwgMzgsIDE5MCwgMSwgCi0gICAgMTE1LCAyMTQsIDExOSwgMzgsIDE5MCwgMSwgMTI0LCAyMTQsIDExOSwgMzgsIDE5MCwgMSwgMTE1LCAyNDEsIDU0LCAzOCwgCi0gICAgMTkwLCAxLCAxMjQsIDI0MSwgNTQsIDM4LCAxOTAsIDEsIDExNSwgNzUsIDM4LCAxOTAsIDEsIDEyNCwgNzUsIDM4LCAxOTAsIAotICAgIDIzMiwgOSwgMjM0LCAyMzUsIDM4LCAxOTAsIDMwLCAyNTQsIDIzMiwgMzgsIDE5MCwgMzAsIDcyLCAzOCwgMTkwLCAzMCwgCi0gICAgMjE1LCAxODMsIDM4LCAxOTAsIDMwLCA2OSwgMzgsIDE5MCwgMzAsIDc0LCAzOCwgMTkwLCAzMCwgNzUsIDM4LCAxOTAsIAotICAgIDIzMiwgOSwgMjM0LCAxMTUsIDM4LCAxOTAsIDMwLCAyNDAsIDExMSwgMzgsIDE5MCwgMzAsIDIxNSwgMTgyLCAzOCwgMTkwLCAKLSAgICAzMCwgMjE1LCAxOTYsIDM4LCAxOTAsIDMwLCAyNTMsIDEwNiwgMzgsIDE5MCwgMzAsIDI1MywgODMsIDM4LCAxOTAsIDMwLCAKLSAgICAyNTQsIDMyLCAzOCwgMTkwLCAzMCwgMjU0LCA0NSwgMzgsIDE5MCwgMTYwLCAyMzIsIDksIDI0NSwgMTM3LCAzOCwgMTkwLCAKLSAgICAxNjAsIDIzMiwgOSwgMjI4LCA2MSwgMzgsIDE5MCwgMTYwLCAyMzIsIDksIDIxNywgMTA5LCAzOCwgMTkwLCAxNjAsIDIzMiwgCi0gICAgOSwgMjE5LCAyMjgsIDM4LCAxOTAsIDE2LCAyMzQsIDIyLCAzOCwgMTkwLCAxNiwgMjI4LCA2MSwgMzgsIDE5MCwgMTYsIAotICAgIDIyMiwgMTY4LCAzOCwgMTkwLCAxNiwgMjQxLCA1NSwgMjQxLCA1MCwgMzgsIDE5MCwgMTYsIDIzNCwgMzEsIDIzNCwgMzAsIAotICAgIDI4LCA0LCAyMTYsIDk4LCAyOCwgNCwgMjE2LCAxMDEsIDI4LCA0LCAyMTYsIDEwNCwgMjgsIDQsIDIxNiwgMTAyLCAyOCwgNCwgCi0gICAgMjE2LCAxMDMsIDI4LCA0LCAyMTYsIDEwMCwgMjgsIDQsIDI0OCwgNjQsIDI4LCA0LCAyNDgsIDY2LCAyOCwgNCwgMjQ4LCAKLSAgICA2OSwgMjgsIDQsIDI0OCwgNjcsIDI4LCA0LCAyNDgsIDY4LCAyOCwgNCwgMjQ4LCA2NSwgMjgsIDQsIDI0NSwgMjM5LCAyOCwgCi0gICAgNCwgMjQ1LCAyNDIsIDI4LCA0LCAyNDUsIDI0OCwgMjgsIDQsIDI0NSwgMjQ2LCAyOCwgNCwgMjQ1LCAyNDcsIDI4LCA0LCAKLSAgICAyNDUsIDI0MCwgMjgsIDQsIDI1MCwgMTM4LCAyOCwgNCwgMjUwLCAxMzIsIDI4LCA0LCAyNTAsIDEzNCwgMjgsIDQsIDI1MCwgCi0gICAgMTM3LCAyOCwgNCwgMjUwLCAxMzUsIDI4LCA0LCAyNTAsIDEzNiwgMjgsIDQsIDI1MCwgMTMzLCAyOCwgNCwgMjUyLCAzMSwgCi0gICAgMjgsIDQsIDI1MiwgMTAsIDI4LCA0LCAyNTIsIDIyLCAyOCwgNCwgMjUyLCAzMCwgMjgsIDQsIDI1MiwgMjUsIDI4LCA0LCAKLSAgICAyNTIsIDI2LCAyOCwgNCwgMjUyLCAxNCwgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyMzQsIDI4LCAyMzEsIDE0MCwgMjMxLCAKLSAgICAxOTQsIDEsIDIyMiwgMTY4LCAyMzEsIDE0MCwgMjMxLCAxOTQsIDEsIDIzMywgMTMzLCAyMzEsIDE0MCwgMjMxLCAxOTQsIDEsIAotICAgIDIzMCwgMjQxLCAyMzEsIDE0MCwgMjMxLCAxOTQsIDEsIDE5MywgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyMDUsIDIzMSwgCi0gICAgMTQwLCAyMzEsIDE5NCwgMSwgMjUwLCAzOSwgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyMTcsIDQ0LCAyMzEsIDE0MCwgMjMxLCAKLSAgICAxOTQsIDEsIDIzNCwgMTA5LCAyMzEsIDE0MCwgMjMxLCAxOTQsIDEsIDIyOSwgODAsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMSwgCi0gICAgMjE3LCAxMDMsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMSwgMjE0LCA0NCwgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyMTMsIDU4LCAKLSAgICAyMzEsIDE0MCwgMjMxLCAxOTQsIDEsIDI0MCwgMjA2LCAyMzEsIDE0MCwgMjMxLCAxOTQsIDEsIDIxNSwgMTYwLCAyMzEsIAotICAgIDE0MCwgMjMxLCAxOTQsIDEsIDcyLCAyMzEsIDE0MCwgMjMxLCAxOTQsIDEsIDIyNiwgMTgsIDIzMSwgMTQwLCAyMzEsIDE5NCwgCi0gICAgMSwgMjUzLCAxMTgsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMSwgMjQyLCAxNDMsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMSwgMjM1LCAKLSAgICAxMTQsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMSwgMjI0LCA1NywgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyNTIsIDEwNywgCi0gICAgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyMzUsIDEwMywgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyNDcsIDE3MSwgMjMxLCAKLSAgICAxNDAsIDIzMSwgMTk0LCAxLCAyNDIsIDE5NywgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyNDcsIDIxMywgMjMxLCAxNDAsIAotICAgIDIzMSwgMTk0LCAxLCAyNTEsIDE5NCwgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyMzQsIDI5LCAyMzIsIDE4MSwgMjMxLCAKLSAgICAxNDAsIDIzMSwgMTk0LCAxLCAyMzMsIDEzNCwgMjMyLCAxODEsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMSwgMjMwLCAyNDIsIAotICAgIDIzMiwgMTgxLCAyMzEsIDE0MCwgMjMxLCAxOTQsIDEsIDIyNiwgMjE0LCAyMzIsIDE4MSwgMjMxLCAxNDAsIDIzMSwgMTk0LCAKLSAgICAxLCAyMzAsIDQ2LCAyMzIsIDE4MSwgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyMTcsIDQ1LCAyMzIsIDE4MSwgMjMxLCAxNDAsIAotICAgIDIzMSwgMTk0LCAxLCAyMjksIDgxLCAyMzIsIDE4MSwgMjMxLCAxNDAsIDIzMSwgMTk0LCAxLCAyNDAsIDE0NiwgMjMyLCAKLSAgICAxODEsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMzAsIDUsIDIyNywgNjEsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMzAsIDUsIDIzNSwgCi0gICAgMjQ5LCAyMzEsIDE0MCwgMjMxLCAxOTQsIDMwLCA1LCAyNTQsIDMxLCAyMzEsIDE0MCwgMjMxLCAxOTQsIDMwLCA1LCAyMTMsIAotICAgIDI5LCAyMzEsIDE0MCwgMjMxLCAxOTQsIDMwLCA1LCAyMTksIDIxOSwgMjMxLCAxNDAsIDIzMSwgMTk0LCAzMCwgNSwgMjE1LCAKLSAgICAxNTcsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMzAsIDUsIDI1MCwgNjAsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMzAsIDUsIDIyOCwgCi0gICAgNDcsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMjUwLCA2MSwgMjMxLCAxNDAsIDIzMSwgMTk0LCAyMzIsIDE0MywgMjM1LCAxNDgsIAotICAgIDIzMSwgMTQwLCAyMzEsIDE5NCwgMjUzLCAyMTYsIDIzNSwgMTQ4LCAyMzEsIDE0MCwgMjMxLCAxOTQsIDIxLCAyMTIsIDc5LCAKLSAgICAyMzEsIDE0MCwgMjMxLCAxOTQsIDIxLCAxMTYsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMjEsIDEwOSwgMjMxLCAxNDAsIDIzMSwgCi0gICAgMTk0LCAyMSwgMTY2LCAyMzEsIDE0MCwgMjMxLCAxOTQsIDIxLCAxNjMsIDIzMSwgMTQwLCAyMzEsIDE5NCwgMjEsIDE4MCwgCi0gICAgMjMxLCAxNDAsIDIzMSwgMTk0LCAyMSwgMTg5LCAyMzEsIDE0MCwgMjMxLCAxOTQsIDIxLCAxOTgsIDIzMSwgMTQwLCAyMzEsIAotICAgIDE5NCwgMjEsIDE5NSwgMjMxLCAxNDAsIDIzMSwgMTk0LCAyMSwgMjAwLCAyMywgMTM1LCAyMjcsIDE5NywgMjMsIDEzNSwgCi0gICAgMjI3LCAyMDIsIDIzLCAxMzUsIDIxMiwgMjM0LCAyMywgMTM1LCAyMTIsIDIzMywgMjMsIDEzNSwgMjEyLCAyMzIsIDIzLCAKLSAgICAxMzUsIDIxNSwgMjQ2LCAyMywgMTM1LCAyMTUsIDI0OSwgMjMsIDEzNSwgMjEyLCAyMDEsIDIzLCAxMzUsIDIxMiwgMTk3LCAKLSAgICAyMywgMTM1LCAyNDUsIDIxLCAyMywgMTM1LCAyNDUsIDE5LCAyMywgMTM1LCAyNDUsIDIwLCAyMywgMTM1LCAyNDUsIDE3LCAKLSAgICAyMywgMTM1LCAyNDAsIDEzNiwgMjMsIDEzNSwgMjQwLCAxMzUsIDIzLCAxMzUsIDI0MCwgMTMzLCAyMywgMTM1LCAyNDAsIAotICAgIDEzNCwgMjMsIDEzNSwgMjQwLCAxMzksIDIzLCAxMzUsIDI0MCwgMTMyLCAyMywgMTM1LCAyNDAsIDEzMSwgMjMsIDEzNSwgCi0gICAgMjQwLCAxNDEsIDIzLCAxMzUsIDI1MywgMjAzLCAyMywgMTM1LCAyNTMsIDIwMiwgMjMsIDg5LCAyMjksIDUwLCAyMywgODksIAotICAgIDIyOSwgNTYsIDIzLCA4OSwgMjE5LCAxMzksIDIzLCA4OSwgMjE5LCAxMzgsIDIzLCA4OSwgMjE3LCA1MCwgMjMsIDg5LCAKLSAgICAyMTcsIDQ4LCAyMywgODksIDIxNywgNDcsIDIzLCA4OSwgMjE3LCA1MywgMjMsIDg5LCAyMTcsIDU0LCAyMywgODksIDIxNywgCi0gICAgNDYsIDIzLCA4OSwgMjIzLCAxNTgsIDIzLCA4OSwgMjIzLCAxNzMsIDIzLCA4OSwgMjE5LCAxNDUsIDIzLCA4OSwgMjIzLCAKLSAgICAxNzAsIDIzLCA4OSwgMjIzLCAxNjAsIDIzLCA4OSwgMjIzLCAxNjIsIDIzLCA4OSwgMjIzLCAxNDksIDIzLCA4OSwgMjIzLCAKLSAgICAxNTAsIDIzLCA4OSwgMjM0LCAyMjMsIDIzLCA4OSwgMjMxLCAyNSwgMjMsIDg5LCAyMzEsIDE5LCAyMywgODksIDIxOSwgCi0gICAgMTQ5LCAyMywgODksIDIzMSwgMjIsIDIzLCA4OSwgMjMxLCAyOCwgMjMsIDg5LCAyMjUsIDIwOCwgMjMsIDg5LCAyMjUsIAotICAgIDIxNywgMjMsIDg5LCAyMjUsIDIyMSwgMjMsIDg5LCAyMTksIDE0NywgMjMsIDg5LCAyMjUsIDIxMSwgMjMsIDg5LCAyMjUsIAotICAgIDIyNSwgMjMsIDg5LCAyMjUsIDIyNiwgMjMsIDg5LCAyMjAsIDY4LCAyMywgODksIDIyMCwgNzEsIDIzLCA4OSwgMjE5LCAKLSAgICAxNDMsIDIzLCA4OSwgMjE5LCAxNDEsIDIzLCA4OSwgMjIwLCA2NiwgMjMsIDg5LCAyMjAsIDc0LCAyMywgODksIDIyMCwgNzUsIAotICAgIDIzLCA4OSwgMjIwLCA2MCwgMjMsIDg5LCAyMjAsIDczLCAyMywgODksIDIyNiwgMTU4LCAyMywgODksIDIyNiwgMTU5LCAyMywgCi0gICAgODksIDIxMywgMTUsIDIzLCA4OSwgMjEzLCAxNiwgMjMsIDg5LCAyNDksIDIzNywgMjMsIDg5LCAyNDksIDIzNiwgMjMsIDg5LCAKLSAgICAyMTksIDE1NCwgMjMsIDg5LCAyMjYsIDQsIDIzLCA4OSwgMjI2LCAzLCA5LCAxMywgMjM4LCAxNywgOSwgMTMsIDIzOCwgMTYsIAotICAgIDksIDEzLCAyMzgsIDE1LCA5LCAxMywgMjM4LCAxNCwgOSwgMTMsIDIzOCwgMTMsIDksIDEzLCAyMzgsIDEyLCA5LCAxMywgCi0gICAgMjM4LCAxMSwgOSwgMTMsIDIzOCwgMTAsIDksIDEzLCAyMzgsIDksIDksIDEzLCAyMzgsIDgsIDksIDEzLCAyMzgsIDcsIDksIAotICAgIDEzLCAyMzgsIDYsIDksIDEzLCAyMzgsIDUsIDksIDEzLCAyMzgsIDQsIDksIDEzLCAyMzgsIDMsIDksIDEzLCAyMzgsIDIsIAotICAgIDksIDEzLCAyMzgsIDEsIDksIDEzLCAyMzgsIDAsIDksIDEzLCAyMzcsIDI1NSwgOSwgMTMsIDIzNywgMjU0LCA5LCAxMywgCi0gICAgMjM3LCAyNTMsIDksIDEzLCAyMzcsIDI1MiwgOSwgMTMsIDIzNywgMjUxLCA5LCAxMywgMjM3LCAyNTAsIDksIDEzLCAyMzcsIAotICAgIDI0OSwgOSwgMTMsIDIzNywgMjQ4LCA5LCAxMywgMjM3LCAyNDcsIDksIDEzLCAyMzcsIDI0NiwgOSwgMTMsIDIzNywgMjQ1LCAKLSAgICA5LCAxMywgMjM3LCAyNDQsIDksIDEzLCAyMzcsIDI0MywgOSwgMTMsIDIzNywgMjQyLCA5LCAxMywgMjM3LCAyNDEsIDksIAotICAgIDEzLCAyMzcsIDI0MCwgOSwgMTMsIDIzNywgMjM5LCA5LCAxMywgMjM3LCAyMzgsIDksIDEzLCAyMzcsIDIzNywgOSwgMTMsIAotICAgIDIzNywgMjM2LCA5LCAxMywgMjM3LCAyMzUsIDksIDEzLCAyMzcsIDIzNCwgOSwgMTMsIDIzNywgMjMzLCA5LCAxMywgMjM3LCAKLSAgICAyMzIsIDksIDEzLCAyMzcsIDIzMSwgOSwgMTMsIDIzNywgMjMwLCA5LCAxMywgMjM3LCAyMjksIDksIDEzLCAyMzcsIDIyOCwgCi0gICAgOSwgMTMsIDIzNywgMjI3LCA5LCAxMywgMjM3LCAyMjYsIDksIDEzLCAyMzcsIDIyNSwgOSwgMTMsIDIzNywgMjI0LCA5LCAKLSAgICAxMywgMjM3LCAyMjMsIDksIDEzLCAyMzcsIDIyMiwgOSwgMTMsIDIzNywgMjIxLCA5LCAxMywgMjM3LCAyMjAsIDksIDEzLCAKLSAgICAyMzcsIDIxOSwgOSwgMTMsIDIzNywgMjE4LCA5LCAxMywgMjM3LCAyMTcsIDksIDEzLCAyMzcsIDIxNiwgOSwgMTMsIDIzNywgCi0gICAgMjE1LCA5LCAxMywgMjM3LCAyMTQsIDksIDEzLCAyMzcsIDIxMywgOSwgMTMsIDIzNywgMjEyLCA5LCAxMywgMjM3LCAyMTEsIAotICAgIDksIDEzLCAyMzcsIDIxMCwgOSwgMTMsIDIzNywgMjA5LCA5LCAxMywgMjM3LCAyMDgsIDksIDEzLCAyMzcsIDIwNywgOSwgCi0gICAgMTMsIDIzNywgMjA2LCA5LCAxMywgMjM3LCAyMDUsIDksIDEzLCAyMzcsIDIwNCwgOSwgMTMsIDIzNywgMjAzLCA5LCAxMywgCi0gICAgMjM3LCAyMDIsIDksIDEzLCAyMzcsIDIwMSwgOSwgMTMsIDIzNywgMjAwLCA5LCAxMywgMjM3LCAxOTksIDksIDEzLCAyMzcsIAotICAgIDE5OCwgOSwgMTMsIDIzNywgMTk3LCA5LCAxMywgMjM3LCAxOTYsIDksIDEzLCAyMzcsIDE5NSwgOSwgMTMsIDIzNywgMTk0LCAKLSAgICA5LCAxMywgMjM3LCAxOTMsIDksIDEzLCAyMzcsIDE5MiwgOSwgMTMsIDIzNywgMTkxLCA5LCAxMywgMjM3LCAxOTAsIDksIAotICAgIDEzLCAyMzcsIDE4OSwgOSwgMTMsIDIzNywgMTg4LCA5LCAxMywgMjM3LCAxODcsIDksIDEzLCAyMzcsIDE4NiwgOSwgMTMsIAotICAgIDIzNywgMTg1LCA5LCAxMywgMjM3LCAxODQsIDksIDEzLCAyMzcsIDE4MywgOSwgMTMsIDIzNywgMTgyLCA5LCAxMywgMjM3LCAKLSAgICAxODEsIDksIDEzLCAyMzcsIDE4MCwgOSwgMTMsIDIzNywgMTc5LCA5LCAxMywgMjM3LCAxNzgsIDksIDEzLCAyMzcsIDE3NywgCi0gICAgOSwgMTMsIDIzNywgMTc2LCA5LCAxMywgMjM3LCAxNzUsIDksIDEzLCAyMzcsIDE3NCwgOSwgMTMsIDIzNywgMTczLCA5LCAKLSAgICAxMywgMjM3LCAxNzIsIDksIDEzLCAyMzcsIDE3MSwgOSwgMTMsIDIzNywgMTcwLCA5LCAxMywgMjM3LCAxNjksIDksIDEzLCAKLSAgICAyMzcsIDE2OCwgOSwgMTMsIDIzNywgMTY3LCA5LCAxMywgMjM3LCAxNjYsIDksIDEzLCAyMzcsIDE2NSwgOSwgMTMsIDIzNywgCi0gICAgMTY0LCA5LCAxMywgMjM3LCAxNjMsIDksIDEzLCAyMzcsIDE2MiwgOSwgMTMsIDIzNywgMTYxLCA5LCAxMywgMjM3LCAxNjAsIAotICAgIDksIDEzLCAyMzcsIDE1OSwgOSwgMTMsIDIzNywgMTU4LCA5LCAxMywgMjM3LCAxNTcsIDksIDEzLCAyMzcsIDE1NiwgOSwgCi0gICAgMTMsIDIzNywgMTU1LCA5LCAxMywgMjM3LCAxNTQsIDksIDEzLCAyMzcsIDE1MywgOSwgMTMsIDIzNywgMTUyLCA5LCAxMywgCi0gICAgMjM3LCAxNTEsIDksIDEzLCAyMzcsIDE1MCwgOSwgMTMsIDIzNywgMTQ5LCA5LCAxMywgMjM3LCAxNDgsIDksIDEzLCAyMzcsIAotICAgIDE0NywgOSwgMTMsIDIzNywgMTQ2LCA5LCAxMywgMjM3LCAxNDUsIDksIDEzLCAyMzcsIDE0NCwgOSwgMTMsIDIzNywgMTQzLCAKLSAgICA5LCAxMywgMjM3LCAxNDIsIDksIDEzLCAyMzcsIDE0MSwgOSwgMTMsIDIzNywgMTQwLCA5LCAxMywgMjM3LCAxMzksIDksIAotICAgIDEzLCAyMzcsIDEzOCwgOSwgMTMsIDIzNywgMTM3LCA5LCAxMywgMjM3LCAxMzYsIDksIDEzLCAyMzcsIDEzNSwgOSwgMTMsIAotICAgIDIzNywgMTM0LCA5LCAxMywgMjM3LCAxMzMsIDksIDEzLCAyMzcsIDEzMiwgOSwgMTMsIDIzNywgMTMxLCA5LCAxMywgMjM3LCAKLSAgICAxMzAsIDksIDEzLCAyMzcsIDEyOSwgOSwgMTMsIDIzNywgMTI4LCA5LCAxMywgMjM3LCAxMjcsIDksIDEzLCAyMzcsIDEyNiwgCi0gICAgOSwgMTMsIDIzNywgMTI1LCA5LCAxMywgMjM3LCAxMjQsIDksIDEzLCAyMzcsIDEyMywgOSwgMTMsIDIzNywgMTIyLCA5LCAKLSAgICAxMywgMjM3LCAxMjEsIDksIDEzLCAyMzcsIDEyMCwgOSwgMTMsIDIzNywgMTE5LCA5LCAxMywgMjM3LCAxMTgsIDksIDEzLCAKLSAgICAyMzcsIDExNywgOSwgMTMsIDIzNywgMTE2LCA5LCAxMywgMjM3LCAxMTUsIDksIDEzLCAyMzcsIDExNCwgOSwgMTMsIDIzNywgCi0gICAgMTEzLCA5LCAxMywgMjM3LCAxMTIsIDksIDEzLCAyMzcsIDExMSwgOSwgMTMsIDIzNywgMTEwLCA5LCAxMywgMjM3LCAxMDksIAotICAgIDksIDEzLCAyMzcsIDEwOCwgOSwgMTMsIDIzNywgMTA3LCA5LCAxMywgMjM3LCAxMDYsIDksIDEzLCAyMzcsIDEwNSwgOSwgCi0gICAgMTMsIDIzNywgMTA0LCA5LCAxMywgMjM3LCAxMDMsIDksIDEzLCAyMzcsIDEwMiwgOSwgMTMsIDIzNywgMTAxLCA5LCAxMywgCi0gICAgMjM3LCAxMDAsIDksIDEzLCAyMzcsIDk5LCA5LCAxMywgMjM3LCA5OCwgOSwgMTMsIDIzNywgOTcsIDksIDEzLCAyMzcsIDk2LCAKLSAgICA5LCAxMywgMjM3LCA5NSwgOSwgMTMsIDIzNywgOTQsIDksIDEzLCAyMzcsIDkzLCA5LCAxMywgMjM3LCA5MiwgOSwgMTMsIAotICAgIDIzNywgOTEsIDksIDEzLCAyMzcsIDkwLCA5LCAxMywgMjM3LCA4OSwgOSwgMTMsIDIzNywgODgsIDksIDEzLCAyMzcsIDg3LCAKLSAgICA5LCAxMywgMjM3LCA4NiwgOSwgMTMsIDIzNywgODUsIDksIDEzLCAyMzcsIDg0LCA5LCAxMywgMjM3LCA4MywgOSwgMTMsIAotICAgIDIzNywgODIsIDksIDEzLCAyMzcsIDgxLCA5LCAxMywgMjM3LCA4MCwgOSwgMTMsIDIzNywgNzksIDksIDEzLCAyMzcsIDc4LCAKLSAgICA5LCAxMywgMjM3LCA3NywgOSwgMTMsIDIzNywgNzYsIDksIDEzLCAyMzcsIDc1LCA5LCAxMywgMjM3LCA3NCwgOSwgMTMsIAotICAgIDIzNywgNzMsIDksIDEzLCAyMzcsIDcyLCA5LCAxMywgMjM3LCA3MSwgOSwgMTMsIDIzNywgNzAsIDksIDEzLCAyMzcsIDY5LCAKLSAgICA5LCAxMywgMjM3LCA2OCwgOSwgMTMsIDIzNywgNjcsIDksIDEzLCAyMzcsIDY2LCA5LCAxMywgMjM3LCA2NSwgOSwgMTMsIAotICAgIDIzNywgNjQsIDksIDEzLCAyMzcsIDYzLCA5LCAxMywgMjM3LCA2MiwgOSwgMTMsIDIzNywgNjEsIDksIDEzLCAyMzcsIDYwLCAKLSAgICA5LCAxMywgMjM3LCA1OSwgOSwgMTMsIDIzNywgNTgsIDksIDEzLCAyMzcsIDU3LCA5LCAxMywgMjM3LCA1NiwgOSwgMTMsIAotICAgIDIzNywgNTUsIDksIDEzLCAyMzcsIDU0LCA5LCAxMywgMjM3LCA1MywgOSwgMTMsIDIzNywgNTIsIDksIDEzLCAyMzcsIDUxLCAKLSAgICA5LCAxMywgMjM3LCA1MCwgOSwgMTMsIDIzNywgNDksIDksIDEzLCAyMzcsIDQ4LCA5LCAxMywgMjM3LCA0NywgOSwgMTMsIAotICAgIDIzNywgNDYsIDksIDEzLCAyMzcsIDQ1LCA5LCAxMywgMjM3LCA0NCwgOSwgMTMsIDIzNywgNDMsIDksIDEzLCAyMzcsIDQyLCAKLSAgICA5LCAxMywgMjM3LCA0MSwgOSwgMTMsIDIzNywgNDAsIDksIDEzLCAyMzcsIDM5LCA5LCAxMywgMjM3LCAzOCwgOSwgMTMsIAotICAgIDIzNywgMzcsIDksIDEzLCAyMzcsIDM2LCA5LCAxMywgMjM3LCAzNSwgOSwgMTMsIDIzNywgMzQsIDksIDEzLCAyMzcsIDMzLCAKLSAgICA5LCAxMywgMjM3LCAzMiwgOSwgMTMsIDIzNywgMzEsIDksIDEzLCAyMzcsIDMwLCA5LCAxMywgMjM3LCAyOSwgOSwgMTMsIAotICAgIDIzNywgMjgsIDksIDEzLCAyMzcsIDI3LCA5LCAxMywgMjM3LCAyNiwgOSwgMTMsIDIzNywgMjUsIDksIDEzLCAyMzcsIDI0LCAKLSAgICA5LCAxMywgMjM3LCAyMywgOSwgMTMsIDIzNywgMjIsIDksIDEzLCAyMzcsIDIxLCA5LCAxMywgMjM3LCAyMCwgOSwgMTMsIAotICAgIDIzNywgMTksIDksIDEzLCAyMzcsIDE4LCA5LCAxMywgMjM3LCAxNywgOSwgMTMsIDIzNywgMTYsIDksIDEzLCAyMzcsIDE1LCAKLSAgICA5LCAxMywgMjM3LCAxNCwgOSwgMTMsIDIzNywgMTMsIDksIDEzLCAyMzcsIDEyLCA5LCAxMywgMjM3LCAxMSwgOSwgMTMsIAotICAgIDIzNywgMTAsIDksIDEzLCAyMzcsIDksIDksIDEzLCAyMzcsIDgsIDksIDEzLCAyMzcsIDcsIDksIDEzLCAyMzcsIDYsIDksIAotICAgIDEzLCAyMzcsIDUsIDksIDEzLCAyMzcsIDQsIDksIDEzLCAyMzcsIDMsIDksIDEzLCAyMzcsIDIsIDksIDEzLCAyMzcsIDEsIAotICAgIDksIDEzLCAyMzcsIDAsIDksIDEzLCAyMzYsIDI1NSwgOSwgMTMsIDIzNiwgMjU0LCA5LCAxMywgMjM2LCAyNTMsIDksIDEzLCAKLSAgICAyMzYsIDI1MiwgOSwgMTMsIDIzNiwgMjUxLCA5LCAxMywgMjM2LCAyNTAsIDksIDEzLCAyMzYsIDI0OSwgOSwgMTMsIDIzNiwgCi0gICAgMjQ4LCA5LCAxMywgMjM2LCAyNDcsIDksIDEzLCAyMzYsIDI0NiwgOSwgMTMsIDIzNiwgMjQ1LCA5LCAxMywgMjM2LCAyNDQsIAotICAgIDksIDEzLCAyMzYsIDI0MywgOSwgMTMsIDIzNiwgMjQyLCA5LCAxMywgMjM2LCAyNDEsIDksIDEzLCAyMzYsIDI0MCwgOSwgCi0gICAgMTMsIDIzNiwgMjM5LCA5LCAxMywgMjM2LCAyMzgsIDksIDEzLCAyMzYsIDIzNywgOSwgMTMsIDIzNiwgMjM2LCA5LCAxMywgCi0gICAgMjM2LCAyMzUsIDksIDEzLCAyMzYsIDIzNCwgOSwgMTMsIDIzNiwgMjMzLCA5LCAxMywgMjM2LCAyMzIsIDksIDEzLCAyMzYsIAotICAgIDIzMSwgOSwgMTMsIDIzNiwgMjMwLCA5LCAxMywgMjM2LCAyMjksIDksIDEzLCAyMzYsIDIyOCwgOSwgMTMsIDIzNiwgMjI3LCAKLSAgICA5LCAxMywgMjM2LCAyMjYsIDksIDEzLCAyMzYsIDIyNSwgOSwgMTMsIDIzNiwgMjI0LCA5LCAxMywgMjM2LCAyMjMsIDksIAotICAgIDEzLCAyMzYsIDIyMiwgOSwgMTMsIDIzNiwgMjIxLCA5LCAxMywgMjM2LCAyMjAsIDksIDEzLCAyMzYsIDIxOSwgOSwgMTMsIAotICAgIDIzNiwgMjE4LCA5LCAxMywgMjM2LCAyMTcsIDksIDEzLCAyMzYsIDIxNiwgOSwgMTMsIDIzNiwgMjE1LCA5LCAxMywgMjM2LCAKLSAgICAyMTQsIDksIDEzLCAyMzYsIDIxMywgOSwgMTMsIDIzNiwgMjEyLCA5LCAxMywgMjM2LCAyMTEsIDksIDEzLCAyMzYsIDIxMCwgCi0gICAgOSwgMTMsIDIzNiwgMjA5LCA5LCAxMywgMjM2LCAyMDgsIDksIDEzLCAyMzYsIDIwNywgOSwgMTMsIDIzNiwgMjA2LCA5LCAKLSAgICAxMywgMjM2LCAyMDUsIDksIDEzLCAyMzYsIDIwNCwgOSwgMTMsIDIzNiwgMjAzLCA5LCAxMywgMjM2LCAyMDIsIDksIDEzLCAKLSAgICAyMzYsIDIwMSwgOSwgMTMsIDIzNiwgMjAwLCA5LCAxMywgMjM2LCAxOTksIDksIDEzLCAyMzYsIDE5OCwgOSwgMTMsIDIzNiwgCi0gICAgMTk3LCA5LCAxMywgMjM2LCAxOTYsIDksIDEzLCAyMzYsIDE5NSwgOSwgMTMsIDIzNiwgMTk0LCA5LCAxMywgMjM2LCAxOTMsIAotICAgIDksIDEzLCAyMzYsIDE5MiwgOSwgMTMsIDIzNiwgMTkxLCA5LCAxMywgMjM2LCAxOTAsIDksIDEzLCAyMzYsIDE4OSwgOSwgCi0gICAgMTMsIDIzNiwgMTg4LCA5LCAxMywgMjM2LCAxODcsIDksIDEzLCAyMzYsIDE4NiwgOSwgMTMsIDIzNiwgMTg1LCA5LCAxMywgCi0gICAgMjM2LCAxODQsIDksIDEzLCAyMzYsIDE4MywgOSwgMTMsIDIzNiwgMTgyLCA5LCAxMywgMjM2LCAxODEsIDksIDEzLCAyMzYsIAotICAgIDE4MCwgOSwgMTMsIDIzNiwgMTc5LCA5LCAxMywgMjM2LCAxNzgsIDksIDEzLCAyMzYsIDE3NywgOSwgMTMsIDIzNiwgMTc2LCAKLSAgICA5LCAxMywgMjM2LCAxNzUsIDksIDEzLCAyMzYsIDE3NCwgOSwgMTMsIDIzNiwgMTczLCA5LCAxMywgMjM2LCAxNzIsIDksIAotICAgIDEzLCAyMzYsIDE3MSwgOSwgMTMsIDIzNiwgMTcwLCA5LCAxMywgMjM2LCAxNjksIDksIDEzLCAyMzYsIDE2OCwgOSwgMTMsIAotICAgIDIzNiwgMTY3LCA5LCAxMywgMjM2LCAxNjYsIDksIDEzLCAyMzYsIDE2NSwgOSwgMTMsIDIzNiwgMTY0LCA5LCAxMywgMjM2LCAKLSAgICAxNjMsIDksIDEzLCAyMzYsIDE2MiwgOSwgMTMsIDIzNiwgMTYxLCA5LCAxMywgMjM2LCAxNjAsIDksIDEzLCAyMzYsIDE1OSwgCi0gICAgOSwgMTMsIDIzNiwgMTU4LCA5LCAxMywgMjM2LCAxNTcsIDksIDEzLCAyMzYsIDE1NiwgOSwgMTMsIDIzNiwgMTU1LCA5LCAKLSAgICAxMywgMjM2LCAxNTQsIDksIDEzLCAyMzYsIDE1MywgOSwgMTMsIDIzNiwgMTUyLCA5LCAxMywgMjM2LCAxNTEsIDksIDEzLCAKLSAgICAyMzYsIDE1MCwgOSwgMTMsIDIzNiwgMTQ5LCA5LCAxMywgMjM2LCAxNDgsIDksIDEzLCAyMzYsIDE0NywgOSwgMTMsIDIzNiwgCi0gICAgMTQ2LCA5LCAxMywgMjM2LCAxNDUsIDksIDEzLCAyMzYsIDE0NCwgOSwgMTMsIDIzNiwgMTQzLCA5LCAxMywgMjM2LCAxNDIsIAotICAgIDksIDEzLCAyMzYsIDE0MSwgOSwgMTMsIDIzNiwgMTQwLCA5LCAxMywgMjM2LCAxMzksIDksIDEzLCAyMzYsIDEzOCwgOSwgCi0gICAgMTMsIDIzNiwgMTM3LCA5LCAxMywgMjM2LCAxMzYsIDksIDEzLCAyMzYsIDEzNSwgOSwgMTMsIDIzNiwgMTM0LCA5LCAxMywgCi0gICAgMjM2LCAxMzMsIDksIDEzLCAyMzYsIDEzMiwgOSwgMTMsIDIzNiwgMTMxLCA5LCAxMywgMjM2LCAxMzAsIDksIDEzLCAyMzYsIAotICAgIDEyOSwgOSwgMTMsIDIzNiwgMTI4LCA5LCAxMywgMjM2LCAxMjcsIDksIDEzLCAyMzYsIDEyNiwgOSwgMTMsIDIzNiwgMTI1LCAKLSAgICA5LCAxMywgMjM2LCAxMjQsIDksIDEzLCAyMzYsIDEyMywgOSwgMTMsIDIzNiwgMTIyLCA5LCAxMywgMjM2LCAxMjEsIDksIAotICAgIDEzLCAyMzYsIDEyMCwgOSwgMTMsIDIzNiwgMTE5LCA5LCAxMywgMjM2LCAxMTgsIDksIDEzLCAyMzYsIDExNywgOSwgMTMsIAotICAgIDIzNiwgMTE2LCA5LCAxMywgMjM2LCAxMTUsIDksIDEzLCAyMzYsIDExNCwgOSwgMTMsIDIzNiwgMTEzLCA5LCAxMywgMjM2LCAKLSAgICAxMTIsIDksIDEzLCAyMzYsIDExMSwgOSwgMTMsIDIzNiwgMTEwLCA5LCAxMywgMjM2LCAxMDksIDksIDEzLCAyMzYsIDEwOCwgCi0gICAgOSwgMTMsIDIzNiwgMTA3LCA5LCAxMywgMjM2LCAxMDYsIDksIDEzLCAyMzYsIDEwNSwgOSwgMTMsIDIzNiwgMTA0LCA5LCAKLSAgICAxMywgMjM2LCAxMDMsIDksIDEzLCAyMzYsIDEwMiwgOSwgMTMsIDIzNiwgMTAxLCA5LCAxMywgMjM2LCAxMDAsIDksIDEzLCAKLSAgICAyMzYsIDk5LCA5LCAxMywgMjM2LCA5OCwgOSwgMTMsIDIzNiwgOTcsIDksIDEzLCAyMzYsIDk2LCA5LCAxMywgMjM2LCA5NSwgCi0gICAgOSwgMTMsIDIzNiwgOTQsIDksIDEzLCAyMzYsIDkzLCA5LCAxMywgMjM2LCA5MiwgOSwgMTMsIDIzNiwgOTEsIDksIDEzLCAKLSAgICAyMzYsIDkwLCA5LCAxMywgMjM2LCA4OSwgOSwgMTMsIDIzNiwgODgsIDksIDEzLCAyMzYsIDg3LCA5LCAxMywgMjM2LCA4NiwgCi0gICAgOSwgMTMsIDIzNiwgODUsIDksIDEzLCAyMzYsIDg0LCA5LCAxMywgMjM2LCA4MywgOSwgMTMsIDIzNiwgODIsIDksIDEzLCAKLSAgICAyMzYsIDgxLCA5LCAxMywgMjM2LCA4MCwgOSwgMTMsIDIzNiwgNzksIDksIDEzLCAyMzYsIDc4LCA5LCAxMywgMjM2LCA3NywgCi0gICAgOSwgMTMsIDIzNiwgNzYsIDksIDEzLCAyMzYsIDc1LCA5LCAxMywgMjM2LCA3NCwgOSwgMTMsIDIzNiwgNzMsIDksIDEzLCAKLSAgICAyMzYsIDcyLCA5LCAxMywgMjM2LCA3MSwgOSwgMTMsIDIzNiwgNzAsIDksIDEzLCAyMzYsIDY5LCA5LCAxMywgMjM2LCA2OCwgCi0gICAgOSwgMTMsIDIzNiwgNjcsIDksIDEzLCAyMzYsIDY2LCA5LCAxMywgMjM2LCA2NSwgOSwgMTMsIDIzNiwgNjQsIDksIDEzLCAKLSAgICAyMzYsIDYzLCA5LCAxMywgMjM2LCA2MiwgOSwgMTMsIDIzNiwgNjEsIDksIDEzLCAyMzYsIDYwLCA3LCAzLCAyNiwgMjQ0LCAKLSAgICA5NCwgNywgMywgMjYsIDI0NCwgOTAsIDcsIDMsIDI2LCAyNDQsIDQ1LCA3LCAzLCAyNiwgMjQ0LCA5MywgNywgMywgMjYsIAotICAgIDI0NCwgOTIsIDcsIDMsIDI2LCAxODQsIDIyMywgNCwgMjE4LCA5OSwgNywgMywgMjYsIDIxOSwgMTA3LCAxNDEsIDMsIDI2LCAKLSAgICAyMzEsIDEyMywgMjI4LCAxNTAsIDE0MSwgMywgMjYsIDIzMSwgMTIzLCAyNDUsIDE2OSwgMTQxLCAzLCAyNiwgMjMxLCAxMjMsIAotICAgIDIzNSwgMjI0LCAxNDEsIDMsIDI2LCAyMTQsIDE1NywgMjI4LCAxNTAsIDE0MSwgMywgMjYsIDIzMSwgMTIzLCAyMTMsIDE0OCwgCi0gICAgOTMsIDEsIDIxMiwgMjI1LCAyLCAyNDEsIDE0NCwgOTMsIDIyNSwgMTQ1LCAyMzUsIDUzLCAyMTQsIDI0MywgOTMsIDI2LCAKLSAgICAyMTIsIDI1MywgMjEyLCAyMjUsIDIxMiwgMjI1LCAyMjYsIDExMiwgOTMsIDEsIDI1NCwgNDgsIDI1MywgNzgsIDkzLCAxLCAKLSAgICAyMTMsIDIzMiwgMjU0LCA3OCwgOTMsIDEsIDIxMywgMjMyLCAyNDgsIDEzNCwgOTMsIDEsIDIxMywgMjMyLCAyNDEsIDIyMiwgCi0gICAgOTMsIDEsIDIxMywgMjMyLCAyMzQsIDI1NCwgOTMsIDEsIDIxMywgMjMyLCAyMzMsIDExOCwgOTMsIDEsIDIxMywgMjMyLCAKLSAgICA0MCwgMjMxLCAxMjksIDkzLCAxLCAyMTMsIDIzMiwgMjIzLCAyMTksIDkzLCAxLCAyMTMsIDIzMiwgMjE3LCAyNDUsIDkzLCAKLSAgICAxLCAyNTQsIDQ4LCA5NCwgNTIsIDkzLCAxLCAyMjAsIDIwMSwgMiwgMjIwLCAyMDEsIDI0NywgNzQsIDkzLCAxLCAyMjAsIAotICAgIDIwMSwgMiwgMjIwLCA4NSwgMjQ3LCA3NCwgOTMsIDEsIDIyMCwgMjAxLCAyLCAyNDgsIDE1MSwgMjQsIDIyMCwgMjAxLCAKLSAgICAyNDcsIDc0LCA5MywgMSwgMjIwLCAyMDEsIDIsIDI0OCwgMTUxLCAyNCwgMjIwLCA4NSwgMjQ3LCA3NCwgOTMsIDEsIDEwNiwgCi0gICAgMiwgMjI2LCAxMTIsIDkzLCAxLCAxMDYsIDIsIDIyNCwgMjIwLCA5MywgMSwgMTA2LCAyLCAyMzEsIDIzNCwgOTMsIDEsIAotICAgIDI1MSwgMjA2LCAyLCAyNDgsIDE1MCwgOTMsIDEsIDI0MiwgMTc4LCAyLCAyNDgsIDE1MCwgOTMsIDEsIDI0OCwgMTM1LCAyLCAKLSAgICAyNDgsIDE1MCwgOTMsIDEsIDI0MSwgMjIzLCAyLCAyMzEsIDIzNCwgOTMsIDEsIDIxNCwgMjM3LCAyLCAyNDgsIDE1MCwgOTMsIAotICAgIDEsIDIxMiwgOTEsIDIsIDI0OCwgMTUwLCA5MywgMSwgMjE3LCAxODQsIDIsIDI0OCwgMTUwLCA5MywgMSwgMjEyLCAyMjUsIAotICAgIDIsIDI0OCwgMTUwLCA5MywgMSwgNDAsIDIzNCwgMjU1LCAyLCAyNDgsIDE1MCwgOTMsIDEsIDIzNCwgMjU1LCAyLCAyNDgsIAotICAgIDE1MCwgOTMsIDEsIDIzMywgMTE5LCAyLCAyNDgsIDE1MCwgOTMsIDEsIDIzMSwgMTMwLCAyLCAyNDgsIDE1MCwgOTMsIDEsIAotICAgIDIyOCwgNTEsIDIsIDI0OCwgMTUwLCA5MywgMSwgMjIyLCAxNjUsIDIsIDI0OCwgMTUwLCA5MywgMSwgNDAsIDIyNiwgOTcsIAotICAgIDIsIDI0OCwgMTUwLCA5MywgMSwgMjI2LCA5NywgMiwgMjQ4LCAxNTAsIDkzLCAxLCAyMTYsIDEzOCwgMiwgMjQ4LCAxNTAsIAotICAgIDkzLCAxLCAyMjQsIDE4NSwgMiwgMjQ4LCAxNTAsIDkzLCAxLCAyMjMsIDIyMCwgMiwgMjQ4LCAxNTAsIDkzLCAxLCAyMjAsIAotICAgIDIwMSwgMiwgMjQ4LCAxNTAsIDkzLCAxLCAyMTcsIDI0NiwgMiwgMjQ4LCAxNTAsIDkzLCAxLCAyMTQsIDIzNywgMiwgMjQxLCAKLSAgICA0NywgOTMsIDEsIDI1MSwgMjA2LCAyLCAyMjQsIDU5LCA5MywgMSwgMjM0LCAyNTUsIDIsIDIyNCwgNTksIDkzLCAxLCAyMjYsIAotICAgIDk3LCAyLCAyMjQsIDU5LCA5MywgMjYsIDEwNiwgMjMzLCAxMTgsIDEyLCAxLCAxMDYsIDIxNCwgMzEsIDQ4LCAxNywgMTIsIAotICAgIDEsIDEwNiwgMjE0LCAzMSwgNDAsIDE3LCAxMiwgMSwgMjUxLCAyNDEsIDQ4LCAxNywgMTIsIDEsIDI1MSwgMjQxLCA0MCwgCi0gICAgMTcsIDEyLCAxLCAyNTEsIDI0MSwgNzAsIDE3LCAxMiwgMSwgMjUxLCAyNDEsIDEzOCwgMTcsIDEyLCAxLCAyMjYsIDgxLCAKLSAgICA0OCwgMTcsIDEyLCAxLCAyMjYsIDgxLCA0MCwgMTcsIDEyLCAxLCAyMjYsIDgxLCA3MCwgMTcsIDEyLCAxLCAyMjYsIDgxLCAKLSAgICAxMzgsIDE3LCAxMiwgMSwgMjUxLCAyMjksIDQ4LCAxNywgMTIsIDEsIDI1MSwgMjI5LCA0MCwgMTcsIDEyLCAxLCAyNTEsIAotICAgIDIyOSwgNzAsIDE3LCAxMiwgMSwgMjUxLCAyMjksIDEzOCwgMTcsIDEyLCAxLCAyMTYsIDEwOCwgNDgsIDE3LCAxMiwgMSwgCi0gICAgMjE2LCAxMDgsIDQwLCAxNywgMTIsIDEsIDIxNiwgMTA4LCA3MCwgMTcsIDEyLCAxLCAyMTYsIDEwOCwgMTM4LCAxNywgMTIsIAotICAgIDEsIDIxNywgMjE0LCA0OCwgMTcsIDEyLCAxLCAyMTcsIDIxNCwgNDAsIDE3LCAxMiwgMSwgMjE3LCAyMTQsIDcwLCAxNywgCi0gICAgMTIsIDEsIDIxNywgMjE0LCAxMzgsIDE3LCAxMiwgMSwgMjE2LCAxMTAsIDQ4LCAxNywgMTIsIDEsIDIxNiwgMTEwLCA0MCwgCi0gICAgMTcsIDEyLCAxLCAyMTYsIDExMCwgNzAsIDE3LCAxMiwgMSwgMjE2LCAxMTAsIDEzOCwgMTcsIDEyLCAxLCAyMTQsIDIyNiwgCi0gICAgNDgsIDE3LCAxMiwgMSwgMjE0LCAyMjYsIDQwLCAxNywgMTIsIDEsIDIxNCwgMjI2LCA3MCwgMTcsIDEyLCAxLCAyMTQsIAotICAgIDIyNiwgMTM4LCAxNywgMTIsIDEsIDIyNiwgNzksIDQ4LCAxNywgMTIsIDEsIDIyNiwgNzksIDQwLCAxNywgMTIsIDEsIDIyNiwgCi0gICAgNzksIDcwLCAxNywgMTIsIDEsIDIyNiwgNzksIDEzOCwgMTcsIDEyLCAxLCAyNDUsIDI1NSwgNDgsIDE3LCAxMiwgMSwgMjQ1LCAKLSAgICAyNTUsIDQwLCAxNywgMTIsIDEsIDI0NSwgMjU1LCA3MCwgMTcsIDEyLCAxLCAyNDUsIDI1NSwgMTM4LCAxNywgMTIsIDEsIAotICAgIDIyOCwgMTUsIDQ4LCAxNywgMTIsIDEsIDIyOCwgMTUsIDQwLCAxNywgMTIsIDEsIDIyOCwgMTUsIDcwLCAxNywgMTIsIDEsIAotICAgIDIyOCwgMTUsIDEzOCwgMTcsIDEyLCAxLCAyMTcsIDIzNCwgNDgsIDE3LCAxMiwgMSwgMjE3LCAyMzQsIDQwLCAxNywgMTIsIAotICAgIDEsIDIxNywgMjM0LCA3MCwgMTcsIDEyLCAxLCAyMTcsIDIzNCwgMTM4LCAxNywgMTIsIDEsIDIxNywgMjMyLCA0OCwgMTcsIAotICAgIDEyLCAxLCAyMTcsIDIzMiwgNDAsIDE3LCAxMiwgMSwgMjE3LCAyMzIsIDcwLCAxNywgMTIsIDEsIDIxNywgMjMyLCAxMzgsIAotICAgIDE3LCAxMiwgMSwgMjQ4LCA4NCwgNDgsIDE3LCAxMiwgMSwgMjQ4LCA4NCwgNDAsIDE3LCAxMiwgMSwgMjQ4LCAxNDcsIDQ4LCAKLSAgICAxNywgMTIsIDEsIDI0OCwgMTQ3LCA0MCwgMTcsIDEyLCAxLCAyNDYsIDI2LCA0OCwgMTcsIDEyLCAxLCAyNDYsIDI2LCA0MCwgCi0gICAgMTcsIDEyLCAxLCAyNDgsIDgyLCA0OCwgMTcsIDEyLCAxLCAyNDgsIDgyLCA0MCwgMTcsIDEyLCAxLCAyMzUsIDEyMiwgNDgsIAotICAgIDE3LCAxMiwgMSwgMjM1LCAxMjIsIDQwLCAxNywgMTIsIDEsIDIyMywgNzgsIDQ4LCAxNywgMTIsIDEsIDIyMywgNzgsIDQwLCAKLSAgICAxNywgMTIsIDEsIDIzNCwgMTgxLCA0OCwgMTcsIDEyLCAxLCAyMzQsIDE4MSwgNDAsIDE3LCAxMiwgMSwgMjM0LCAxODEsIAotICAgIDcwLCAxNywgMTIsIDEsIDIzNCwgMTgxLCAxMzgsIDE3LCAxMiwgMSwgMjQzLCA5OCwgNDgsIDE3LCAxMiwgMSwgMjQzLCA5OCwgCi0gICAgNDAsIDE3LCAxMiwgMSwgMjQzLCA5OCwgNzAsIDE3LCAxMiwgMSwgMjQzLCA5OCwgMTM4LCAxNywgMTIsIDEsIDI0MiwgODMsIAotICAgIDQ4LCAxNywgMTIsIDEsIDI0MiwgODMsIDQwLCAxNywgMTIsIDEsIDI0MiwgODMsIDcwLCAxNywgMTIsIDEsIDI0MiwgODMsIAotICAgIDEzOCwgMTcsIDEyLCAxLCAyMjksIDg5LCA0OCwgMTcsIDEyLCAxLCAyMjksIDg5LCA0MCwgMTcsIDEyLCAxLCAyMjksIDg5LCAKLSAgICA3MCwgMTcsIDEyLCAxLCAyMjksIDg5LCAxMzgsIDE3LCAxMiwgMSwgMjI4LCAxNzQsIDI0MiwgMTk1LCA0OCwgMTcsIDEyLCAKLSAgICAxLCAyMjgsIDE3NCwgMjQyLCAxOTUsIDQwLCAxNywgMTIsIDEsIDIyMywgMTE2LCA0OCwgMTcsIDEyLCAxLCAyMjMsIDExNiwgCi0gICAgNDAsIDE3LCAxMiwgMSwgMjIzLCAxMTYsIDcwLCAxNywgMTIsIDEsIDIyMywgMTE2LCAxMzgsIDE3LCAxMiwgMSwgMjQxLCAKLSAgICAyMDMsIDIsIDczLCA3OCwgNDgsIDE3LCAxMiwgMSwgMjQxLCAyMDMsIDIsIDczLCA3OCwgNDAsIDE3LCAxMiwgMSwgMjQxLCAKLSAgICAyMDMsIDI0MiwgMTQ4LCA0OCwgMTcsIDEyLCAxLCAyNDEsIDIwMywgMjQyLCAxNDgsIDQwLCAxNywgMTIsIDEsIDI0MSwgCi0gICAgMjAzLCAyNDIsIDE0OCwgNzAsIDE3LCAxMiwgMSwgMjQxLCAyMDMsIDI0MiwgMTQ4LCAxMzgsIDE3LCAxMiwgMSwgMjQxLCAKLSAgICAyMDMsIDI0NywgOTYsIDQ4LCAxNywgMTIsIDEsIDI0MSwgMjAzLCAyNDcsIDk2LCA0MCwgMTcsIDEyLCAxLCAyNDEsIDIwMywgCi0gICAgMjQ3LCA5NiwgNzAsIDE3LCAxMiwgMSwgMjQxLCAyMDMsIDI0NywgOTYsIDEzOCwgMTcsIDEyLCAxLCA3MywgMjUyLCA1MywgCi0gICAgNDgsIDE3LCAxMiwgMSwgNzMsIDI1MiwgNTMsIDQwLCAxNywgMTIsIDEsIDczLCAyNTIsIDUzLCAyLCAxOTIsIDc4LCA0OCwgCi0gICAgMTcsIDEyLCAxLCA3MywgMjUyLCA1MywgMiwgMTkyLCA3OCwgNDAsIDE3LCAxMiwgMTYsIDYyLCA0OSwgMTIsIDE2LCA2MiwgCi0gICAgNTUsIDEyLCAxNiwgMTE3LCAxNzYsIDQ5LCAxMiwgMTYsIDExNywgMTc2LCA1NSwgMTIsIDE2LCAxMzMsIDE3NiwgNDksIDEyLCAKLSAgICAxNiwgMTMzLCAxNzYsIDU1LCAxMiwgMTYsIDEzMywgMTc2LCAyMjUsIDE0MSwgMjQ2LCA1OCwgNDksIDEyLCAxNiwgMTMzLCAKLSAgICAxNzYsIDIyNSwgMTQxLCAyNDYsIDU4LCA1NSwgMTIsIDE2LCAyNDMsIDIzNywgMTc2LCA0OSwgMTIsIDE2LCAyNDMsIDIzNywgCi0gICAgMTc2LCA1NSwgMTIsIDE2LCA1MSwgNzEsIDI1MiwgNjAsIDU1LCAxMiwgMTYsIDExNywgMTc2LCAyMTQsIDE2NiwgNDksIDEyLCAKLSAgICAxNiwgMTE3LCAxNzYsIDIxNCwgMTY2LCA1NSwgMTIsIDE2LCAyMjMsIDEzMCwgMTIsIDE2LCAzLCAyMTgsIDMwLCA0OSwgMTIsIAotICAgIDE2LCAzLCAyMTgsIDMwLCA1NSwgMTIsIDEsIDIyOSwgMTYyLCA0OCwgMTcsIDEyLCAxLCAyMjksIDE2MiwgNDAsIDE3LCAxMiwgCi0gICAgMSwgMjI5LCAxNjIsIDcwLCAxNywgMTIsIDEsIDIyOSwgMTYyLCAxMzgsIDE3LCAxMiwgMSwgMTExLCA0OCwgMTcsIDEyLCAxLCAKLSAgICAxMTEsIDQwLCAxNywgMTIsIDEsIDIyNywgMTAwLCA0OCwgMTcsIDEyLCAxLCAyMjcsIDEwMCwgNDAsIDE3LCAxMiwgMSwgCi0gICAgMjEyLCAyMDQsIDQ4LCAxNywgMTIsIDEsIDIxMiwgMjA0LCA0MCwgMTcsIDEyLCAxLCAxMTEsIDIsIDE5MiwgNzgsIDQ4LCAKLSAgICAxNywgMTIsIDEsIDIxNCwgMjMzLCA0OCwgMTcsIDEyLCAxLCAyMTQsIDIzMywgNDAsIDE3LCAxMiwgMSwgMjM0LCA4MiwgCi0gICAgMjI3LCAxMDAsIDQ4LCAxNywgMTIsIDEsIDIzNCwgODIsIDIyNywgMTAwLCA0MCwgMTcsIDEyLCAxLCAyMzQsIDgyLCAyMTIsIAotICAgIDIwNCwgNDgsIDE3LCAxMiwgMSwgMjM0LCA4MiwgMjEyLCAyMDQsIDQwLCAxNywgMTIsIDEsIDE5MSwgNDgsIDE3LCAxMiwgMSwgCi0gICAgMTkxLCA0MCwgMTcsIDEyLCAxLCAxOTEsIDcwLCAxNywgMTIsIDEsIDE5MSwgMTM4LCAxNywgMTIsIDEsIDIxNSwgMTc3LCAKLSAgICAyMzQsIDE5MiwgMjM0LCA4MiwgMTA2LCAyMTAsIDcwLCAxNywgMTIsIDEsIDIxNSwgMTc3LCAyMzQsIDE5MiwgMjM0LCA4MiwgCi0gICAgMTA2LCAyMTAsIDEzOCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgNzgsIDIsIDEwNiwgNDgsIDE3LCAxMiwgMjYsIDczLCAyLCAKLSAgICAxOTIsIDc4LCAyLCAxMDYsIDQwLCAxNywgMTIsIDI2LCA3MywgMiwgMTkyLCA3OCwgMiwgMjU0LCAxNDksIDQ4LCAxNywgMTIsIAotICAgIDI2LCA3MywgMiwgMTkyLCA3OCwgMiwgMjU0LCAxNDksIDQwLCAxNywgMTIsIDI2LCA3MywgMiwgMTkyLCA3OCwgMiwgMjE0LCAKLSAgICAxNSwgNDgsIDE3LCAxMiwgMjYsIDczLCAyLCAxOTIsIDc4LCAyLCAyMTQsIDE1LCA0MCwgMTcsIDEyLCAyNiwgNzMsIDIsIAotICAgIDE5MiwgNzgsIDIsIDExMSwgNDgsIDE3LCAxMiwgMjYsIDczLCAyLCAxOTIsIDc4LCAyLCAxMTEsIDQwLCAxNywgMTIsIDI2LCAKLSAgICA3MywgMiwgMTkyLCA3OCwgMiwgMjI3LCAxMDAsIDQ4LCAxNywgMTIsIDI2LCA3MywgMiwgMTkyLCA3OCwgMiwgMjI3LCAxMDAsIAotICAgIDQwLCAxNywgMTIsIDI2LCA3MywgMiwgMTkyLCA3OCwgMiwgMjEyLCAyMDQsIDQ4LCAxNywgMTIsIDI2LCA3MywgMiwgMTkyLCAKLSAgICA3OCwgMiwgMjEyLCAyMDQsIDQwLCAxNywgMTIsIDI2LCA3MywgMiwgMTkyLCA3OCwgMiwgMTkxLCA0OCwgMTcsIDEyLCAyNiwgCi0gICAgNzMsIDIsIDE5MiwgNzgsIDIsIDE5MSwgNDAsIDE3LCAxMiwgMjYsIDczLCAyLCAxOTIsIDc4LCAyLCAxOTEsIDcwLCAxNywgCi0gICAgMTIsIDI2LCAyMTUsIDE3NywgMjM0LCA4MiwgNzMsIDIsIDE5MiwgNzgsIDIsIDEwNiwgMjEwLCA0OCwgMTcsIDEyLCAyNiwgCi0gICAgMjE1LCAxNzcsIDIzNCwgODIsIDczLCAyLCAxOTIsIDc4LCAyLCAxMDYsIDIxMCwgNDAsIDE3LCAxMiwgMjYsIDIxNSwgMTc3LCAKLSAgICAyMzQsIDgyLCA3MywgMiwgMTkyLCA3OCwgMiwgMTA2LCAyMTAsIDcwLCAxNywgMTIsIDEsIDI0NCwgMTM2LCA3MywgNDgsIAotICAgIDE3LCAxMiwgMSwgMjQ0LCAxMzYsIDczLCA0MCwgMTcsIDEyLCAxLCAyNDQsIDEzNiwgNzMsIDcwLCAxNywgMTIsIDEsIDI0NCwgCi0gICAgMTM2LCA3MywgMTM4LCAxNywgMTIsIDI2LCA3MywgMiwgMTkyLCA3OCwgMiwgMTQ1LCA0OCwgMTcsIDEyLCAyNiwgNzMsIDIsIAotICAgIDE5MiwgNzgsIDIsIDEyMSwgNDgsIDE3LCAxMiwgMjYsIDczLCAyLCAxOTIsIDc4LCAyLCA2MywgNDgsIDE3LCAxMiwgMjYsIAotICAgIDczLCAyLCAxOTIsIDc4LCAyLCAxMDYsIDIxMCwgNDgsIDE3LCAxMiwgMjYsIDczLCAyLCAxOTIsIDc4LCAyLCA3MywgNDgsIAotICAgIDE3LCAxMiwgMjYsIDI1MSwgMjMxLCAyLCAxNDUsIDQ4LCAxNywgMTIsIDI2LCAyNTEsIDIzMSwgMiwgMTIxLCA0OCwgMTcsIAotICAgIDEyLCAyNiwgMjUxLCAyMzEsIDIsIDIzNCwgMTM2LCA0OCwgMTcsIDEyLCAyNiwgMjUxLCAyMzEsIDIsIDYzLCA0OCwgMTcsIAotICAgIDEyLCAyNiwgMjUxLCAyMzEsIDIsIDEwNiwgMjEwLCA0OCwgMTcsIDEyLCAyNiwgMjUxLCAyMzEsIDIsIDczLCA0OCwgMTcsIAotICAgIDEyLCAyNiwgMjE3LCAyMTYsIDIsIDE0NSwgNDgsIDE3LCAxMiwgMjYsIDIxNywgMjE2LCAyLCAxMjEsIDQ4LCAxNywgMTIsIAotICAgIDI2LCAyMTcsIDIxNiwgMiwgMjM0LCAxMzYsIDQ4LCAxNywgMTIsIDI2LCAyMTcsIDIxNiwgMiwgNjMsIDQ4LCAxNywgMTIsIAotICAgIDI2LCAyMTcsIDIxNiwgMiwgMTA2LCAyMTAsIDQ4LCAxNywgMTIsIDI2LCAyMTcsIDIxNiwgMiwgNzMsIDQ4LCAxNywgMTIsIAotICAgIDI2LCAyMTcsIDE0NiwgMiwgMTQ1LCA0OCwgMTcsIDEyLCAyNiwgMjE3LCAxNDYsIDIsIDYzLCA0OCwgMTcsIDEyLCAyNiwgCi0gICAgMjE3LCAxNDYsIDIsIDEwNiwgMjEwLCA0OCwgMTcsIDEyLCAyNiwgMjE3LCAxNDYsIDIsIDczLCA0OCwgMTcsIDEyLCAyNiwgCi0gICAgMTQ1LCAyLCAxMjEsIDQ4LCAxNywgMTIsIDI2LCAxNDUsIDIsIDYzLCA0OCwgMTcsIDEyLCAyNiwgMTIxLCAyLCAxNDUsIDQ4LCAKLSAgICAxNywgMTIsIDI2LCAxMjEsIDIsIDYzLCA0OCwgMTcsIDEyLCAyNiwgMjM0LCAxMzYsIDIsIDE0NSwgNDgsIDE3LCAxMiwgMjYsIAotICAgIDIzNCwgMTM2LCAyLCAxMjEsIDQ4LCAxNywgMTIsIDI2LCAyMzQsIDEzNiwgMiwgNjMsIDQ4LCAxNywgMTIsIDI2LCAyMjIsIAotICAgIDg2LCAyLCAxNDUsIDQ4LCAxNywgMTIsIDI2LCAyMjIsIDg2LCAyLCAxMjEsIDQ4LCAxNywgMTIsIDI2LCAyMjIsIDg2LCAyLCAKLSAgICAyMzQsIDEzNiwgNDgsIDE3LCAxMiwgMjYsIDIyMiwgODYsIDIsIDYzLCA0OCwgMTcsIDEyLCAyNiwgMjIyLCAxOTYsIDIsIAotICAgIDEyMSwgNDgsIDE3LCAxMiwgMjYsIDIyMiwgMTk2LCAyLCA2MywgNDgsIDE3LCAxMiwgMjYsIDI0OCwgMTYwLCAyLCAxNDUsIAotICAgIDQ4LCAxNywgMTIsIDI2LCAyNDgsIDE2MCwgMiwgMTIxLCA0OCwgMTcsIDEyLCAyNiwgMjQ4LCAxNjAsIDIsIDIzNCwgMTM2LCAKLSAgICA0OCwgMTcsIDEyLCAyNiwgMjQ4LCAxNjAsIDIsIDYzLCA0OCwgMTcsIDEyLCAyNiwgMjE4LCAzMCwgMiwgMTIxLCA0OCwgMTcsIAotICAgIDEyLCAyNiwgMjE4LCAzMCwgMiwgNjMsIDQ4LCAxNywgMTIsIDI2LCAyMTIsIDEwNSwgMiwgNjMsIDQ4LCAxNywgMTIsIDI2LCAKLSAgICAyNTQsIDEwNCwgMiwgMTQ1LCA0OCwgMTcsIDEyLCAyNiwgMjU0LCAxMDQsIDIsIDYzLCA0OCwgMTcsIDEyLCAyNiwgMjQyLCAKLSAgICAyMjEsIDIsIDE0NSwgNDgsIDE3LCAxMiwgMjYsIDI0MiwgMjIxLCAyLCA2MywgNDgsIDE3LCAxMiwgMjYsIDI0NCwgMTEyLCAKLSAgICAyLCAxNDUsIDQ4LCAxNywgMTIsIDI2LCAyNDQsIDExMiwgMiwgMTIxLCA0OCwgMTcsIDEyLCAyNiwgMjQ0LCAxMTIsIDIsIAotICAgIDIzNCwgMTM2LCA0OCwgMTcsIDEyLCAyNiwgMjQ0LCAxMTIsIDIsIDYzLCA0OCwgMTcsIDEyLCAyNiwgMjQ0LCAxMTIsIDIsIAotICAgIDEwNiwgMjEwLCA0OCwgMTcsIDEyLCAyNiwgMjQ0LCAxMTIsIDIsIDczLCA0OCwgMTcsIDEyLCAyNiwgMjI0LCAyMjYsIDIsIAotICAgIDEyMSwgNDgsIDE3LCAxMiwgMjYsIDIyNCwgMjI2LCAyLCA2MywgNDgsIDE3LCAxMiwgMjYsIDIyNCwgMjI2LCAyLCAxMDYsIAotICAgIDIxMCwgNDgsIDE3LCAxMiwgMjYsIDIyNCwgMjI2LCAyLCA3MywgNDgsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAxMDYsIAotICAgIDQ4LCAxNywgMTIsIDI2LCAyMzQsIDI1NSwgMiwgMTQ1LCA0OCwgMTcsIDEyLCAyNiwgMjM0LCAyNTUsIDIsIDEyMSwgNDgsIAotICAgIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAyMzQsIDEzNiwgNDgsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAyMzMsIDEyNywgCi0gICAgNDgsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCA2MywgNDgsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAxMDYsIDIxMCwgCi0gICAgNDgsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCA3MywgNDgsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCAxNDUsIDQ4LCAKLSAgICAxNywgMTIsIDI2LCAyMzMsIDEyNywgMiwgMTIxLCA0OCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDIzNCwgMTM2LCA0OCwgCi0gICAgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDYzLCA0OCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDEwNiwgMjEwLCA0OCwgCi0gICAgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDczLCA0OCwgMTcsIDEyLCAyNiwgNjMsIDIsIDE0NSwgNDgsIDE3LCAxMiwgMjYsIAotICAgIDYzLCAyLCAxMjEsIDQ4LCAxNywgMTIsIDI2LCA2MywgMiwgMjM0LCAxMzYsIDQ4LCAxNywgMTIsIDI2LCA2MywgMiwgNjMsIAotICAgIDQ4LCAxNywgMTIsIDI2LCA2MywgMiwgMTA2LCAyMTAsIDQ4LCAxNywgMTIsIDI2LCA2MywgMiwgNzMsIDQ4LCAxNywgMTIsIAotICAgIDI2LCAyMjgsIDE3NCwgMiwgMTQ1LCA0OCwgMTcsIDEyLCAyNiwgMjI4LCAxNzQsIDIsIDEyMSwgNDgsIDE3LCAxMiwgMjYsIAotICAgIDIyOCwgMTc0LCAyLCAyMzQsIDEzNiwgNDgsIDE3LCAxMiwgMjYsIDIyOCwgMTc0LCAyLCA2MywgNDgsIDE3LCAxMiwgMjYsIAotICAgIDIyOCwgMTc0LCAyLCAxMDYsIDIxMCwgNDgsIDE3LCAxMiwgMjYsIDIyOCwgMTc0LCAyLCA3MywgNDgsIDE3LCAxMiwgMjYsIAotICAgIDI0MSwgMjAzLCAyLCAxNDUsIDQ4LCAxNywgMTIsIDI2LCAyNDEsIDIwMywgMiwgNjMsIDQ4LCAxNywgMTIsIDI2LCAyNDEsIAotICAgIDIwMywgMiwgMTA2LCAyMTAsIDQ4LCAxNywgMTIsIDI2LCAyNDEsIDIwMywgMiwgNzMsIDQ4LCAxNywgMTIsIDI2LCA3MywgMiwgCi0gICAgMTQ1LCA0OCwgMTcsIDEyLCAyNiwgNzMsIDIsIDEyMSwgNDgsIDE3LCAxMiwgMjYsIDczLCAyLCAyMzQsIDEzNiwgNDgsIDE3LCAKLSAgICAxMiwgMjYsIDczLCAyLCA2MywgNDgsIDE3LCAxMiwgMjYsIDczLCAyLCAxMDYsIDIxMCwgNDgsIDE3LCAxMiwgMjYsIDczLCAKLSAgICAyLCA3MywgNDgsIDE3LCAxMiwgMjYsIDIxNywgMTU2LCAyLCAyMTgsIDIyMywgMTA2LCA0OCwgMTcsIDEyLCAyNiwgMjIzLCAKLSAgICAyNDYsIDIsIDIxOCwgMjIzLCAxMDYsIDQ4LCAxNywgMTIsIDI2LCAxMDYsIDIxMCwgMiwgMjE4LCAyMjMsIDEwNiwgNDgsIAotICAgIDE3LCAxMiwgMjYsIDIyMSwgMTYsIDIsIDI0OCwgMTI4LCA0OCwgMTcsIDEyLCAyNiwgMjIxLCAxNiwgMiwgMjM0LCAyMDksIAotICAgIDQ4LCAxNywgMTIsIDI2LCAyMjEsIDE2LCAyLCAyNDQsIDEzNCwgNDgsIDE3LCAxMiwgMjYsIDIyMSwgMTYsIDIsIDI0OCwgCi0gICAgMTMwLCA0OCwgMTcsIDEyLCAyNiwgMjIxLCAxNiwgMiwgMjM0LCAyMTEsIDQ4LCAxNywgMTIsIDI2LCAyMjEsIDE2LCAyLCAKLSAgICAyMTgsIDIyMywgMTA2LCA0OCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgNzgsIDIsIDIyMywgMjQ2LCA0MCwgMTcsIDEyLCAKLSAgICAyNiwgNzMsIDIsIDE5MiwgNzgsIDIsIDIxMiwgMTAyLCA0MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgNzgsIDIsIDYzLCAKLSAgICA0MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgNzgsIDIsIDIyOCwgMTc0LCA0MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgCi0gICAgNzgsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgNzgsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgCi0gICAgMjUxLCAyMzEsIDIsIDIyMywgMjQ2LCA0MCwgMTcsIDEyLCAyNiwgMjUxLCAyMzEsIDIsIDIxMiwgMTAyLCA0MCwgMTcsIDEyLCAKLSAgICAyNiwgMjUxLCAyMzEsIDIsIDYzLCA0MCwgMTcsIDEyLCAyNiwgMjUxLCAyMzEsIDIsIDIyOCwgMTc0LCA0MCwgMTcsIDEyLCAKLSAgICAyNiwgMjUxLCAyMzEsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjUxLCAyMzEsIDIsIDczLCA0MCwgMTcsIDEyLCAKLSAgICAyNiwgMjE3LCAyMTYsIDIsIDIyMywgMjQ2LCA0MCwgMTcsIDEyLCAyNiwgMjE3LCAyMTYsIDIsIDIxMiwgMTAyLCA0MCwgMTcsIAotICAgIDEyLCAyNiwgMjE3LCAyMTYsIDIsIDYzLCA0MCwgMTcsIDEyLCAyNiwgMjE3LCAyMTYsIDIsIDIyOCwgMTc0LCA0MCwgMTcsIAotICAgIDEyLCAyNiwgMjE3LCAyMTYsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjE3LCAyMTYsIDIsIDczLCA0MCwgMTcsIAotICAgIDEyLCAyNiwgMjE3LCAxNDYsIDIsIDIyMywgMjQ2LCA0MCwgMTcsIDEyLCAyNiwgMjE3LCAxNDYsIDIsIDIxMiwgMTAyLCA0MCwgCi0gICAgMTcsIDEyLCAyNiwgMjE3LCAxNDYsIDIsIDYzLCA0MCwgMTcsIDEyLCAyNiwgMjE3LCAxNDYsIDIsIDIyOCwgMTc0LCA0MCwgCi0gICAgMTcsIDEyLCAyNiwgMjE3LCAxNDYsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjE3LCAxNDYsIDIsIDczLCA0MCwgCi0gICAgMTcsIDEyLCAyNiwgMjQ0LCAxMTIsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjQ0LCAxMTIsIDIsIDczLCA0MCwgCi0gICAgMTcsIDEyLCAyNiwgMjI0LCAyMjYsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjI0LCAyMjYsIDIsIDczLCA0MCwgCi0gICAgMTcsIDEyLCAyNiwgMjM0LCAyNTUsIDIsIDEwNiwgNDAsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAyMzMsIDEyNywgNDAsIAotICAgIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCA2MywgNDAsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAxMDYsIDIxMCwgNDAsIAotICAgIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCA3MywgNDAsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCA2MywgNDAsIDE3LCAxMiwgCi0gICAgMjYsIDIzMywgMTI3LCAyLCAxMDYsIDIxMCwgNDAsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCA3MywgNDAsIDE3LCAxMiwgCi0gICAgMjYsIDYzLCAyLCAxMDYsIDQwLCAxNywgMTIsIDI2LCA2MywgMiwgNjMsIDQwLCAxNywgMTIsIDI2LCAyMjgsIDE3NCwgMiwgCi0gICAgMjIzLCAyNDYsIDQwLCAxNywgMTIsIDI2LCAyMjgsIDE3NCwgMiwgMjEyLCAxMDIsIDQwLCAxNywgMTIsIDI2LCAyMjgsIAotICAgIDE3NCwgMiwgNjMsIDQwLCAxNywgMTIsIDI2LCAyMjgsIDE3NCwgMiwgMjI4LCAxNzQsIDQwLCAxNywgMTIsIDI2LCAyMjgsIAotICAgIDE3NCwgMiwgMTA2LCAyMTAsIDQwLCAxNywgMTIsIDI2LCAyMjgsIDE3NCwgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAxMDYsIAotICAgIDIxMCwgMiwgMjE4LCAyMjMsIDEwNiwgNDAsIDE3LCAxMiwgMjYsIDczLCAyLCAyMjMsIDI0NiwgNDAsIDE3LCAxMiwgMjYsIAotICAgIDczLCAyLCAyMTIsIDEwMiwgNDAsIDE3LCAxMiwgMjYsIDczLCAyLCA2MywgNDAsIDE3LCAxMiwgMjYsIDczLCAyLCAyMjgsIAotICAgIDE3NCwgNDAsIDE3LCAxMiwgMjYsIDczLCAyLCAxMDYsIDIxMCwgNDAsIDE3LCAxMiwgMjYsIDczLCAyLCA3MywgNDAsIDE3LCAKLSAgICAxMiwgMjYsIDczLCAyLCAxOTIsIDc4LCAyLCAxNDUsIDcwLCAxNywgMTIsIDI2LCA3MywgMiwgMTkyLCA3OCwgMiwgMTIxLCAKLSAgICA3MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgNzgsIDIsIDIzNCwgMTM2LCA3MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgCi0gICAgNzgsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgNzgsIDIsIDI0MSwgMjAzLCA3MCwgMTcsIDEyLCAyNiwgCi0gICAgMjUxLCAyMzEsIDIsIDE0NSwgNzAsIDE3LCAxMiwgMjYsIDI1MSwgMjMxLCAyLCAxMjEsIDcwLCAxNywgMTIsIDI2LCAyNTEsIAotICAgIDIzMSwgMiwgMjM0LCAxMzYsIDcwLCAxNywgMTIsIDI2LCAyNTEsIDIzMSwgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAyNTEsIAotICAgIDIzMSwgMiwgMjQxLCAyMDMsIDcwLCAxNywgMTIsIDI2LCAyMTcsIDIxNiwgMiwgMTQ1LCA3MCwgMTcsIDEyLCAyNiwgMjE3LCAKLSAgICAyMTYsIDIsIDEyMSwgNzAsIDE3LCAxMiwgMjYsIDIxNywgMjE2LCAyLCAyMzQsIDEzNiwgNzAsIDE3LCAxMiwgMjYsIDIxNywgCi0gICAgMjE2LCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDIxNywgMjE2LCAyLCAyNDEsIDIwMywgNzAsIDE3LCAxMiwgMjYsIDIxNywgCi0gICAgMTQ2LCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDE0NSwgMiwgMTIxLCA3MCwgMTcsIDEyLCAyNiwgMTQ1LCAyLCA2MywgNzAsIAotICAgIDE3LCAxMiwgMjYsIDEyMSwgMiwgMTQ1LCA3MCwgMTcsIDEyLCAyNiwgMTIxLCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDIzNCwgCi0gICAgMTM2LCAyLCAxNDUsIDcwLCAxNywgMTIsIDI2LCAyMzQsIDEzNiwgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAyMjIsIDg2LCAyLCAKLSAgICAxNDUsIDcwLCAxNywgMTIsIDI2LCAyMjIsIDg2LCAyLCAxMjEsIDcwLCAxNywgMTIsIDI2LCAyMjIsIDg2LCAyLCAyMzQsIAotICAgIDEzNiwgNzAsIDE3LCAxMiwgMjYsIDIyMiwgODYsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgMjIyLCAxOTYsIDIsIDEyMSwgCi0gICAgNzAsIDE3LCAxMiwgMjYsIDIyMiwgMTk2LCAyLCAyMzQsIDEzNiwgNzAsIDE3LCAxMiwgMjYsIDIyMiwgMTk2LCAyLCA2MywgCi0gICAgNzAsIDE3LCAxMiwgMjYsIDI0OCwgMTYwLCAyLCAxNDUsIDcwLCAxNywgMTIsIDI2LCAyNDgsIDE2MCwgMiwgMTIxLCA3MCwgCi0gICAgMTcsIDEyLCAyNiwgMjQ4LCAxNjAsIDIsIDIzNCwgMTM2LCA3MCwgMTcsIDEyLCAyNiwgMjQ4LCAxNjAsIDIsIDYzLCA3MCwgCi0gICAgMTcsIDEyLCAyNiwgMjE4LCAzMCwgMiwgMTIxLCA3MCwgMTcsIDEyLCAyNiwgMjEyLCAxMDUsIDIsIDYzLCA3MCwgMTcsIDEyLCAKLSAgICAyNiwgMjU0LCAxMDQsIDIsIDE0NSwgNzAsIDE3LCAxMiwgMjYsIDI1NCwgMTA0LCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIAotICAgIDI0MiwgMjIxLCAyLCAxNDUsIDcwLCAxNywgMTIsIDI2LCAyNDIsIDIyMSwgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAyNDQsIAotICAgIDExMiwgMiwgMTQ1LCA3MCwgMTcsIDEyLCAyNiwgMjQ0LCAxMTIsIDIsIDEyMSwgNzAsIDE3LCAxMiwgMjYsIDI0NCwgMTEyLCAKLSAgICAyLCAyMzQsIDEzNiwgNzAsIDE3LCAxMiwgMjYsIDI0NCwgMTEyLCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDIyNCwgMjI2LCAKLSAgICAyLCAxMjEsIDcwLCAxNywgMTIsIDI2LCAyMjQsIDIyNiwgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAyMzQsIDI1NSwgMiwgCi0gICAgMTQ1LCA3MCwgMTcsIDEyLCAyNiwgMjM0LCAyNTUsIDIsIDEyMSwgNzAsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAyMzQsIAotICAgIDEzNiwgNzAsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAyMzMsIDEyNywgNzAsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAKLSAgICA2MywgNzAsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCAxNDUsIDcwLCAxNywgMTIsIDI2LCAyMzMsIDEyNywgMiwgMTIxLCAKLSAgICA3MCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDIzNCwgMTM2LCA3MCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDYzLCAKLSAgICA3MCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDI0MSwgMjAzLCA3MCwgMTcsIDEyLCAyNiwgNjMsIDIsIDE0NSwgNzAsIAotICAgIDE3LCAxMiwgMjYsIDYzLCAyLCAxMjEsIDcwLCAxNywgMTIsIDI2LCA2MywgMiwgMjM0LCAxMzYsIDcwLCAxNywgMTIsIDI2LCAKLSAgICA2MywgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAyMjgsIDE3NCwgMiwgMTQ1LCA3MCwgMTcsIDEyLCAyNiwgMjI4LCAxNzQsIDIsIAotICAgIDEyMSwgNzAsIDE3LCAxMiwgMjYsIDIyOCwgMTc0LCAyLCAyMzQsIDEzNiwgNzAsIDE3LCAxMiwgMjYsIDIyOCwgMTc0LCAyLCAKLSAgICA2MywgNzAsIDE3LCAxMiwgMjYsIDIyOCwgMTc0LCAyLCAyNDEsIDIwMywgNzAsIDE3LCAxMiwgMjYsIDI0MSwgMjAzLCAyLCAKLSAgICAxNDUsIDcwLCAxNywgMTIsIDI2LCAyNDEsIDIwMywgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAyNDEsIDIwMywgMiwgMjE4LCAKLSAgICAyMjMsIDEwNiwgNzAsIDE3LCAxMiwgMjYsIDczLCAyLCAxNDUsIDcwLCAxNywgMTIsIDI2LCA3MywgMiwgMTIxLCA3MCwgMTcsIAotICAgIDEyLCAyNiwgNzMsIDIsIDIzNCwgMTM2LCA3MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgNzMsIAotICAgIDIsIDI0MSwgMjAzLCA3MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDE5MiwgNzgsIDIsIDYzLCAxMzgsIDE3LCAxMiwgMjYsIDczLCAKLSAgICAyLCAxOTIsIDc4LCAyLCAyNDEsIDIwMywgMTM4LCAxNywgMTIsIDI2LCAyNTEsIDIzMSwgMiwgNjMsIDEzOCwgMTcsIDEyLCAKLSAgICAyNiwgMjUxLCAyMzEsIDIsIDI0MSwgMjAzLCAxMzgsIDE3LCAxMiwgMjYsIDIxNywgMjE2LCAyLCA2MywgMTM4LCAxNywgMTIsIAotICAgIDI2LCAyMTcsIDIxNiwgMiwgMjQxLCAyMDMsIDEzOCwgMTcsIDEyLCAyNiwgMjE3LCAxNDYsIDIsIDYzLCAxMzgsIDE3LCAxMiwgCi0gICAgMjYsIDIxNywgMTQ2LCAyLCAyNDEsIDIwMywgMTM4LCAxNywgMTIsIDI2LCAyMjIsIDg2LCAyLCA2MywgMTM4LCAxNywgMTIsIAotICAgIDI2LCAyMjIsIDg2LCAyLCAyNDEsIDIwMywgMTM4LCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgNjMsIDEzOCwgMTcsIDEyLCAKLSAgICAyNiwgMjIwLCAyNDAsIDIsIDI0MSwgMjAzLCAxMzgsIDE3LCAxMiwgMjYsIDIzNCwgMjU1LCAyLCAyMzMsIDEyNywgMTM4LCAKLSAgICAxNywgMTIsIDI2LCAyMzQsIDI1NSwgMiwgNjMsIDEzOCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDYzLCAxMzgsIDE3LCAKLSAgICAxMiwgMjYsIDIyOCwgMTc0LCAyLCA2MywgMTM4LCAxNywgMTIsIDI2LCAyMjgsIDE3NCwgMiwgMjQxLCAyMDMsIDEzOCwgMTcsIAotICAgIDEyLCAyNiwgNzMsIDIsIDYzLCAxMzgsIDE3LCAxMiwgMjYsIDczLCAyLCAyNDEsIDIwMywgMTM4LCAxNywgMTIsIDI2LCAKLSAgICAyMjEsIDE2LCAyLCAyNDQsIDEzNCwgMTM4LCAxNywgMTIsIDI2LCAyMjEsIDE2LCAyLCAyNDgsIDEzMCwgMTM4LCAxNywgMTIsIAotICAgIDI2LCAyMjEsIDE2LCAyLCAyMzQsIDIxMSwgMTM4LCAxNywgMTIsIDI2LCAyMTgsIDMwLCAyLCAxMDYsIDIxMCwgNDgsIDE3LCAKLSAgICAxMiwgMjYsIDIxOCwgMzAsIDIsIDczLCA0OCwgMTcsIDEyLCAyNiwgMjU0LCAxMDQsIDIsIDEwNiwgMjEwLCA0OCwgMTcsIAotICAgIDEyLCAyNiwgMjU0LCAxMDQsIDIsIDczLCA0OCwgMTcsIDEyLCAyNiwgMjQyLCAyMjEsIDIsIDEwNiwgMjEwLCA0OCwgMTcsIAotICAgIDEyLCAyNiwgMjQyLCAyMjEsIDIsIDczLCA0OCwgMTcsIDEyLCAyNiwgMjIyLCA4NiwgMiwgMTA2LCAyMTAsIDQ4LCAxNywgCi0gICAgMTIsIDI2LCAyMjIsIDg2LCAyLCA3MywgNDgsIDE3LCAxMiwgMjYsIDIyMCwgMjQwLCAyLCAxMDYsIDIxMCwgNDgsIDE3LCAKLSAgICAxMiwgMjYsIDIyMCwgMjQwLCAyLCA3MywgNDgsIDE3LCAxMiwgMjYsIDEyMSwgMiwgMTA2LCAyMTAsIDQ4LCAxNywgMTIsIAotICAgIDI2LCAxMjEsIDIsIDczLCA0OCwgMTcsIDEyLCAyNiwgMTQ1LCAyLCAxMDYsIDIxMCwgNDgsIDE3LCAxMiwgMjYsIDE0NSwgMiwgCi0gICAgNzMsIDQ4LCAxNywgMTIsIDI2LCAyMzQsIDEzNiwgMiwgMTA2LCAyMTAsIDQ4LCAxNywgMTIsIDI2LCAyMzQsIDEzNiwgMiwgCi0gICAgNzMsIDQ4LCAxNywgMTIsIDI2LCAyMjIsIDE5NiwgMiwgMTA2LCAyMTAsIDQ4LCAxNywgMTIsIDI2LCAyMjIsIDE5NiwgMiwgCi0gICAgNzMsIDQ4LCAxNywgMTIsIDI2LCAyNDgsIDE2MCwgMiwgMTA2LCAyMTAsIDQ4LCAxNywgMTIsIDI2LCAyNDgsIDE2MCwgMiwgCi0gICAgNzMsIDQ4LCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgMTQ1LCA0OCwgMTcsIDEyLCAyNiwgMjIwLCAyNDAsIDIsIDEyMSwgCi0gICAgNDgsIDE3LCAxMiwgMjYsIDIyMCwgMjQwLCAyLCAyMzQsIDEzNiwgNDgsIDE3LCAxMiwgMjYsIDIyMCwgMjQwLCAyLCA2MywgCi0gICAgNDgsIDE3LCAxMiwgMjYsIDIyMCwgMjQwLCAyLCAyMjMsIDI0NiwgNDgsIDE3LCAxMiwgMjYsIDIyMiwgODYsIDIsIDIyMywgCi0gICAgMjQ2LCA0OCwgMTcsIDEyLCAyNiwgMjIyLCAxOTYsIDIsIDIyMywgMjQ2LCA0OCwgMTcsIDEyLCAyNiwgMjQ4LCAxNjAsIDIsIAotICAgIDIyMywgMjQ2LCA0OCwgMTcsIDEyLCAyNiwgMjE4LCAzMCwgMiwgMTA2LCAyMTAsIDQwLCAxNywgMTIsIDI2LCAyMTgsIDMwLCAKLSAgICAyLCA3MywgNDAsIDE3LCAxMiwgMjYsIDI1NCwgMTA0LCAyLCAxMDYsIDIxMCwgNDAsIDE3LCAxMiwgMjYsIDI1NCwgMTA0LCAKLSAgICAyLCA3MywgNDAsIDE3LCAxMiwgMjYsIDI0MiwgMjIxLCAyLCAxMDYsIDIxMCwgNDAsIDE3LCAxMiwgMjYsIDI0MiwgMjIxLCAKLSAgICAyLCA3MywgNDAsIDE3LCAxMiwgMjYsIDIyMiwgODYsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjIyLCA4NiwgMiwgCi0gICAgNzMsIDQwLCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgMTA2LCAyMTAsIDQwLCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgCi0gICAgNzMsIDQwLCAxNywgMTIsIDI2LCAxMjEsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMTIxLCAyLCA3MywgNDAsIDE3LCAKLSAgICAxMiwgMjYsIDE0NSwgMiwgMTA2LCAyMTAsIDQwLCAxNywgMTIsIDI2LCAxNDUsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgCi0gICAgMjM0LCAxMzYsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjM0LCAxMzYsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgCi0gICAgMjIyLCAxOTYsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjIyLCAxOTYsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgCi0gICAgMjQ4LCAxNjAsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjQ4LCAxNjAsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgCi0gICAgMjIwLCAyNDAsIDIsIDE0NSwgNDAsIDE3LCAxMiwgMjYsIDIyMCwgMjQwLCAyLCAxMjEsIDQwLCAxNywgMTIsIDI2LCAyMjAsIAotICAgIDI0MCwgMiwgMjM0LCAxMzYsIDQwLCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgNjMsIDQwLCAxNywgMTIsIDI2LCAyMjAsIAotICAgIDI0MCwgMiwgMjIzLCAyNDYsIDQwLCAxNywgMTIsIDI2LCAyMjIsIDg2LCAyLCAyMjMsIDI0NiwgNDAsIDE3LCAxMiwgMjYsIAotICAgIDIyMiwgMTk2LCAyLCAyMjMsIDI0NiwgNDAsIDE3LCAxMiwgMjYsIDI0OCwgMTYwLCAyLCAyMjMsIDI0NiwgNDAsIDE3LCAxMiwgCi0gICAgMjYsIDIyMCwgMjQwLCAyLCAxNDUsIDcwLCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgMTIxLCA3MCwgMTcsIDEyLCAyNiwgCi0gICAgMjIwLCAyNDAsIDIsIDIzNCwgMTM2LCA3MCwgMTcsIDEyLCAyNiwgMjIwLCAyNDAsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgCi0gICAgMjIyLCA4NiwgMiwgMjQxLCAyMDMsIDcwLCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgMjQxLCAyMDMsIDcwLCAxNywgMTIsIAotICAgIDI2LCAyMTgsIDMwLCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDIyMiwgODYsIDIsIDE0NSwgMTM4LCAxNywgMTIsIDI2LCAKLSAgICAyMjIsIDg2LCAyLCAxMjEsIDEzOCwgMTcsIDEyLCAyNiwgMjIyLCA4NiwgMiwgMjM0LCAxMzYsIDEzOCwgMTcsIDEyLCAyNiwgCi0gICAgMjIwLCAyNDAsIDIsIDE0NSwgMTM4LCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgMTIxLCAxMzgsIDE3LCAxMiwgMjYsIAotICAgIDIyMCwgMjQwLCAyLCAyMzQsIDEzNiwgMTM4LCAxNywgMTIsIDI2LCAyMTgsIDMwLCAyLCA2MywgMTM4LCAxNywgMTIsIDI2LCAKLSAgICAyMTIsIDEwNSwgMiwgNjMsIDEzOCwgMTcsIDEyLCAyNiwgMTA2LCAyLCAyNDQsIDEzMiwgNDAsIDE3LCAxMiwgMjYsIDEwNiwgCi0gICAgMiwgMjQ0LCAxMzIsIDQ4LCAxNywgMjI3LCAxMywgNDIsIDIyNiwgMTMxLCAyMjcsIDEzLCA0NiwgMjI2LCAxMzEsIDEyLCAKLSAgICAyNiwgMjE3LCAyMTYsIDIsIDE0NSwgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAyMTcsIDIxNiwgMiwgMTIxLCAyLCAxNDUsIAotICAgIDQwLCAxNywgMTIsIDI2LCAyMTcsIDIxNiwgMiwgMTIxLCAyLCAxNDUsIDcwLCAxNywgMTIsIDI2LCAyMTcsIDIxNiwgMiwgCi0gICAgMTIxLCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDIxNywgMjE2LCAyLCAyMzQsIDEzNiwgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAKLSAgICAyMTcsIDIxNiwgMiwgNjMsIDIsIDE0NSwgNzAsIDE3LCAxMiwgMjYsIDIxNywgMjE2LCAyLCA2MywgMiwgMTIxLCA3MCwgMTcsIAotICAgIDEyLCAyNiwgMjE3LCAyMTYsIDIsIDYzLCAyLCAyMzQsIDEzNiwgNzAsIDE3LCAxMiwgMjYsIDE0NSwgMiwgNjMsIDIsIDEyMSwgCi0gICAgNDAsIDE3LCAxMiwgMjYsIDE0NSwgMiwgNjMsIDIsIDEyMSwgNzAsIDE3LCAxMiwgMjYsIDEyMSwgMiwgNjMsIDIsIDczLCAKLSAgICA0MCwgMTcsIDEyLCAyNiwgMTIxLCAyLCA2MywgMiwgMTA2LCAyMTAsIDQwLCAxNywgMTIsIDI2LCAyMjIsIDg2LCAyLCAxMjEsIAotICAgIDIsIDE0NSwgNzAsIDE3LCAxMiwgMjYsIDIyMiwgODYsIDIsIDE0NSwgMiwgMTIxLCA3MCwgMTcsIDEyLCAyNiwgMjIyLCA4NiwgCi0gICAgMiwgMTQ1LCAyLCAxMDYsIDIxMCwgNDAsIDE3LCAxMiwgMjYsIDIyMiwgODYsIDIsIDYzLCAyLCAxMjEsIDQwLCAxNywgMTIsIAotICAgIDI2LCAyMjIsIDg2LCAyLCA2MywgMiwgMTIxLCA3MCwgMTcsIDEyLCAyNiwgMjIyLCA4NiwgMiwgNjMsIDIsIDE0NSwgNzAsIAotICAgIDE3LCAxMiwgMjYsIDIyMiwgODYsIDIsIDYzLCAyLCA2MywgNDAsIDE3LCAxMiwgMjYsIDIyMiwgODYsIDIsIDYzLCAyLCA2MywgCi0gICAgNzAsIDE3LCAxMiwgMjYsIDIyMiwgMTk2LCAyLCAxMjEsIDIsIDEyMSwgNDAsIDE3LCAxMiwgMjYsIDIyMiwgMTk2LCAyLCAKLSAgICAxMjEsIDIsIDEyMSwgNzAsIDE3LCAxMiwgMjYsIDIyMiwgMTk2LCAyLCA2MywgMiwgNjMsIDQwLCAxNywgMTIsIDI2LCAyMjAsIAotICAgIDI0MCwgMiwgMTIxLCAyLCA2MywgNDAsIDE3LCAxMiwgMjYsIDIyMCwgMjQwLCAyLCAxMjEsIDIsIDYzLCA3MCwgMTcsIDEyLCAKLSAgICAyNiwgMjIwLCAyNDAsIDIsIDE0NSwgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgNjMsIDIsIDIzNCwgCi0gICAgMTM2LCA0MCwgMTcsIDEyLCAyNiwgMjIwLCAyNDAsIDIsIDYzLCAyLCAyMzQsIDEzNiwgNzAsIDE3LCAxMiwgMjYsIDIyMCwgCi0gICAgMjQwLCAyLCA2MywgMiwgNjMsIDQwLCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgNjMsIDIsIDYzLCA3MCwgMTcsIDEyLCAKLSAgICAyNiwgMjQ4LCAxNjAsIDIsIDEyMSwgMiwgMTA2LCAyMTAsIDQwLCAxNywgMTIsIDI2LCAyNDgsIDE2MCwgMiwgMjM0LCAxMzYsIAotICAgIDIsIDYzLCA0MCwgMTcsIDEyLCAyNiwgMjQ4LCAxNjAsIDIsIDIzNCwgMTM2LCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDIxOCwgCi0gICAgMzAsIDIsIDYzLCAyLCAxMjEsIDQwLCAxNywgMTIsIDI2LCAyMTgsIDMwLCAyLCA2MywgMiwgMTIxLCA3MCwgMTcsIDEyLCAKLSAgICAyNiwgMjE4LCAzMCwgMiwgNjMsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgMjE4LCAzMCwgMiwgNjMsIDIsIDczLCA0MCwgMTcsIAotICAgIDEyLCAyNiwgMjU0LCAxMDQsIDIsIDE0NSwgMiwgNjMsIDQwLCAxNywgMTIsIDI2LCAyNTQsIDEwNCwgMiwgNjMsIDIsIDYzLCAKLSAgICA0MCwgMTcsIDEyLCAyNiwgMjU0LCAxMDQsIDIsIDYzLCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDI1NCwgMTA0LCAyLCA2MywgCi0gICAgMiwgMTA2LCAyMTAsIDQwLCAxNywgMTIsIDI2LCAyNDIsIDIyMSwgMiwgNjMsIDIsIDYzLCA0MCwgMTcsIDEyLCAyNiwgMjQyLCAKLSAgICAyMjEsIDIsIDYzLCAyLCA3MywgNDAsIDE3LCAxMiwgMjYsIDI0MiwgMjIxLCAyLCA2MywgMiwgMTA2LCAyMTAsIDQwLCAxNywgCi0gICAgMTIsIDI2LCAyNDQsIDExMiwgMiwgMjM0LCAxMzYsIDIsIDYzLCA0MCwgMTcsIDEyLCAyNiwgMjQ0LCAxMTIsIDIsIDIzNCwgCi0gICAgMTM2LCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDIyNCwgMjI2LCAyLCA2MywgMiwgMTIxLCA0MCwgMTcsIDEyLCAyNiwgMjI0LCAKLSAgICAyMjYsIDIsIDYzLCAyLCA2MywgNDAsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCAxMjEsIDIsIDYzLCA0MCwgMTcsIDEyLCAKLSAgICAyNiwgMjMzLCAxMjcsIDIsIDEyMSwgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAyMzMsIDEyNywgMiwgMTIxLCAyLCAxMDYsIAotICAgIDIxMCwgNDAsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCAxNDUsIDIsIDE0NSwgNzAsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAKLSAgICAyLCAxNDUsIDIsIDE0NSwgNDAsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCAyMzQsIDEzNiwgMiwgNjMsIDQwLCAxNywgMTIsIAotICAgIDI2LCAyMzMsIDEyNywgMiwgMjM0LCAxMzYsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDYzLCAyLCAKLSAgICAxMjEsIDQwLCAxNywgMTIsIDI2LCAyMzMsIDEyNywgMiwgNjMsIDIsIDEyMSwgNzAsIDE3LCAxMiwgMjYsIDYzLCAyLCAxMjEsIAotICAgIDIsIDE0NSwgNzAsIDE3LCAxMiwgMjYsIDYzLCAyLCAxMjEsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgNjMsIDIsIDEyMSwgMiwgCi0gICAgNzMsIDQwLCAxNywgMTIsIDI2LCA2MywgMiwgMTQ1LCAyLCAxMjEsIDcwLCAxNywgMTIsIDI2LCA2MywgMiwgMTQ1LCAyLCAKLSAgICA2MywgNzAsIDE3LCAxMiwgMjYsIDYzLCAyLCAyMzQsIDEzNiwgMiwgMTQ1LCA3MCwgMTcsIDEyLCAyNiwgNjMsIDIsIDIzNCwgCi0gICAgMTM2LCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDYzLCAyLCAxNDUsIDIsIDIzNCwgMTM2LCA3MCwgMTcsIDEyLCAyNiwgMjQxLCAKLSAgICAyMDMsIDIsIDYzLCAyLCAxNDUsIDcwLCAxNywgMTIsIDI2LCAyNDEsIDIwMywgMiwgNjMsIDIsIDYzLCA3MCwgMTcsIDEyLCAKLSAgICAyNiwgMjI4LCAxNzQsIDIsIDEyMSwgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAyMjgsIDE3NCwgMiwgMTIxLCAyLCAxMDYsIAotICAgIDIxMCwgNDAsIDE3LCAxMiwgMjYsIDIyOCwgMTc0LCAyLCAxNDUsIDIsIDYzLCA0MCwgMTcsIDEyLCAyNiwgMjI4LCAxNzQsIAotICAgIDIsIDE0NSwgMiwgNjMsIDcwLCAxNywgMTIsIDI2LCAyMjgsIDE3NCwgMiwgMTQ1LCAyLCAxMDYsIDIxMCwgNDAsIDE3LCAxMiwgCi0gICAgMjYsIDIyOCwgMTc0LCAyLCA2MywgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAyMjgsIDE3NCwgMiwgNjMsIDIsIDEwNiwgMjEwLCAKLSAgICA0MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDYzLCAyLCA2MywgNDAsIDE3LCAxMiwgMjYsIDczLCAyLCA2MywgMiwgNjMsIDcwLCAKLSAgICAxNywgMTIsIDI2LCAyNTEsIDIzMSwgMiwgMjM0LCAxMzYsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgMjE3LCAyMTYsIDIsIAotICAgIDE0NSwgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAyMTcsIDIxNiwgMiwgMTQ1LCAyLCAxMDYsIDIxMCwgNDAsIDE3LCAxMiwgCi0gICAgMjYsIDIxNywgMjE2LCAyLCAyMzQsIDEzNiwgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAyMTcsIDIxNiwgMiwgMjM0LCAxMzYsIAotICAgIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjE3LCAyMTYsIDIsIDYzLCAyLCA3MywgNDAsIDE3LCAxMiwgMjYsIDIxNywgCi0gICAgMjE2LCAyLCA2MywgMiwgMTA2LCAyMTAsIDQwLCAxNywgMTIsIDI2LCAxNDUsIDIsIDYzLCAyLCA3MywgNDAsIDE3LCAxMiwgCi0gICAgMjYsIDE0NSwgMiwgMTIxLCAyLCAxMDYsIDIxMCwgNDAsIDE3LCAxMiwgMjYsIDE0NSwgMiwgNjMsIDIsIDEwNiwgMjEwLCAKLSAgICA0MCwgMTcsIDEyLCAyNiwgMjIyLCA4NiwgMiwgMjM0LCAxMzYsIDIsIDEwNiwgMjEwLCA0MCwgMTcsIDEyLCAyNiwgMjIyLCAKLSAgICAxOTYsIDIsIDEyMSwgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAyMjAsIDI0MCwgMiwgMTIxLCAyLCA3MywgNDAsIDE3LCAxMiwgCi0gICAgMjYsIDI0OCwgMTYwLCAyLCAxMjEsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDE0NSwgMiwgNzMsIDQwLCAKLSAgICAxNywgMTIsIDI2LCAyMzMsIDEyNywgMiwgNjMsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgNzMsIDIsIDEyMSwgMiwgNzMsIAotICAgIDQwLCAxNywgMTIsIDI2LCA3MywgMiwgMTQ1LCAyLCA3MywgNDAsIDE3LCAxMiwgMjYsIDczLCAyLCA2MywgMiwgNzMsIDQwLCAKLSAgICAxNywgMTIsIDI2LCA2MywgMiwgNjMsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgMjI0LCAyMjYsIDIsIDYzLCAyLCA3MywgNDAsIAotICAgIDE3LCAxMiwgMjYsIDIyOCwgMTc0LCAyLCAxMjEsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgMjI0LCAyMjYsIDIsIDYzLCAyLCAKLSAgICAxMjEsIDcwLCAxNywgMTIsIDI2LCAyMzMsIDEyNywgMiwgMTIxLCAyLCA2MywgNzAsIDE3LCAxMiwgMjYsIDI1NCwgMTA0LCAKLSAgICAyLCA2MywgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAyMzQsIDI1NSwgMiwgNjMsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgCi0gICAgMjI4LCAxNzQsIDIsIDE0NSwgMiwgMTIxLCA3MCwgMTcsIDEyLCAyNiwgNjMsIDIsIDIzNCwgMTM2LCAyLCA3MywgNDAsIDE3LCAKLSAgICAxMiwgMjYsIDIzMywgMTI3LCAyLCAxNDUsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgMjM0LCAyNTUsIDIsIDYzLCAyLCA2MywgCi0gICAgNDAsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCAxNDUsIDIsIDYzLCA0MCwgMTcsIDEyLCAyNiwgMjI4LCAxNzQsIDIsIAotICAgIDE0NSwgMiwgMTIxLCA0MCwgMTcsIDEyLCAyNiwgMTQ1LCAyLCAxMjEsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgMTIxLCAyLCAKLSAgICAxNDUsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgNjMsIDIsIDE0NSwgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAyNDQsIDExMiwgCi0gICAgMiwgNjMsIDIsIDczLCA0MCwgMTcsIDEyLCAyNiwgMjUxLCAyMzEsIDIsIDEyMSwgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAKLSAgICAyMzQsIDI1NSwgMiwgNjMsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgMjU0LCAxMDQsIDIsIDE0NSwgMiwgNjMsIDcwLCAxNywgCi0gICAgMTIsIDI2LCAyMjIsIDE5NiwgMiwgNjMsIDIsIDYzLCA3MCwgMTcsIDEyLCAyNiwgMjIyLCA4NiwgMiwgMjM0LCAxMzYsIDIsIAotICAgIDczLCA0MCwgMTcsIDEyLCAyNiwgMjI4LCAxNzQsIDIsIDE0NSwgMiwgNzMsIDQwLCAxNywgMTIsIDI2LCAyMjIsIDE3NSwgCi0gICAgMjE1LCAxMDIsIDI1MywgMTUzLCAyMzQsIDEzLCAyMTksIDcwLCA1LCA0OCwgMTcsIDEyLCAyNiwgMjI0LCAyMjIsIDIxNSwgCi0gICAgMTAyLCAyNTMsIDE1MywgMjM0LCAxMywgMjE5LCA3MCwgNSwgNDgsIDE3LCAxMiwgMjYsIDI1NCwgNjIsIDQ4LCAxNywgMTIsIAotICAgIDI2LCAyNTQsIDkxLCA0OCwgMTcsIDEyLCAyNiwgMjMwLCAyMjMsIDQ4LCAxNywgMTIsIDI2LCAyMjIsIDE3NiwgNDgsIDE3LCAKLSAgICAxMiwgMjYsIDIyNCwgMzUsIDQ4LCAxNywgMTIsIDI2LCAyNTQsIDgwLCA0OCwgMTcsIDEyLCAyNiwgMjE0LCAzMywgNDgsIAotICAgIDE3LCAxMiwgMjYsIDIyMiwgMTc1LCA0OCwgMTcsIDEyLCAyNiwgMjIyLCAxNzQsIDI1NCwgODAsIDIxNCwgMzIsIDEyLCAyNiwgCi0gICAgMjM1LCAxMzQsIDIyMywgMTg3LCA1MiwgMTIsIDI2LCAyNTEsIDE1MywgMjUzLCAyMDksIDI1MywgMjEwLCA0MywgMjIyLCAKLSAgICA3NiwgNDMsIDIyMSwgMjIxLCA0MywgMjIxLCAxNTMsIDQzLCAyMjEsIDE0MiwgNDMsIDIyMSwgMTMxLCA0MywgMjIxLCAxMjAsIAotICAgIDQzLCAyMjEsIDEwOSwgNDMsIDIyMSwgOTgsIDQzLCAyMjEsIDg3LCA0MywgMjIyLCA3NSwgNDMsIDIyMiwgNjQsIDQzLCAKLSAgICAyMjIsIDUzLCA0MywgMjIyLCA0MiwgNDMsIDIyMiwgMzEsIDQzLCAyMjIsIDIwLCA0MywgMjIyLCA5LCAyMjUsIDc0LCAyNDMsIAotICAgIDI0NSwgMzEsIDcxLCAyNDksIDE1NywgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgMTA1LCAyNDksIDE1NywgMjI1LCA3NCwgCi0gICAgMjQzLCAyNDUsIDMxLCA3MSwgMTA1LCAyNDMsIDIwMCwgMjE5LCA2OSwgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgMjQ5LCAKLSAgICAxNjQsIDIyNSwgNzQsIDI0MywgMjQ1LCAzMSwgNzEsIDIyMSwgNzAsIDIyNSwgNzQsIDI0MywgMjQ1LCAzMSwgNzEsIDI0NCwgCi0gICAgMjU0LCA3NywgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgMjI0LCAxNTgsIDc3LCAyMjUsIDc0LCAyNDMsIDI0NSwgMzEsIAotICAgIDcxLCA0MiwgNjcsIDIzMywgNDQsIDEyNSwgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgNDYsIDY3LCAyMzMsIDQ0LCAKLSAgICAyNTEsIDgzLCAyMjUsIDc0LCAyNDMsIDI0NSwgMzEsIDcxLCAxOTksIDI0NSwgMTIwLCAzNywgMjYsIDQyLCAyNDIsIDksIAotICAgIDM3LCAyNiwgNDYsIDI0MiwgOSwgMzcsIDUxLCAyMTcsIDQzLCA0MiwgMjQyLCA5LCAzNywgNTEsIDIxNywgNDMsIDQ2LCAKLSAgICAyNDIsIDksIDM3LCAyMzIsIDM4LCA0MiwgMjQyLCA5LCAzNywgMjMyLCAzOCwgNDYsIDI0MiwgOSwgMzcsIDI0OSwgMTM3LCAKLSAgICAyMzIsIDM3LCAyMjUsIDc0LCAyNDMsIDI0NSwgMzEsIDcxLCAxMTcsIDYyLCAyMzMsIDgwLCAyMjUsIDc0LCAyNDMsIDI0NSwgCi0gICAgMzEsIDcxLCAyNDUsIDExOCwgMjQ4LCAxMDEsIDIyNSwgNzQsIDI0MywgMjQ1LCAzMSwgNzEsIDI0NSwgMTA5LCAyNDgsIAotICAgIDEwMSwgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgMTE1LCAyMzIsIDI0MiwgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgCi0gICAgMjE0LCAxNiwgMTE1LCAyMzIsIDI0MiwgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgNDIsIDIyNiwgMTMxLCAyMjUsIDc0LCAKLSAgICAyNDMsIDI0NSwgMzEsIDcxLCA0NiwgMjI2LCAxMzEsIDIyNSwgNzQsIDI0MywgMjQ1LCAzMSwgNzEsIDQyLCAyNDksIDQwLCAKLSAgICAxMjUsIDIyNSwgNzQsIDI0MywgMjQ1LCAzMSwgNzEsIDQ2LCAyNDksIDQwLCAxMjUsIDIyNSwgNzQsIDI0MywgMjQ1LCAzMSwgCi0gICAgNzEsIDQyLCAyMTYsIDIxOSwgMjIwLCAyMzMsIDEyNSwgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgNDYsIDIxNiwgMjE5LCAKLSAgICAyMjAsIDIzMywgMTI1LCAyMjUsIDc0LCAyNDMsIDI0NSwgMzEsIDcxLCA0MiwgODMsIDIzMywgNDQsIDEyNSwgMjI1LCA3NCwgCi0gICAgMjQzLCAyNDUsIDMxLCA3MSwgNDYsIDgzLCAyMzMsIDQ0LCAxMjUsIDIyNSwgNzQsIDI0MywgMjQ1LCAzMSwgNzEsIDQyLCAKLSAgICA1MSwgMjU0LCAxOSwgMTI1LCAyMjUsIDc0LCAyNDMsIDI0NSwgMzEsIDcxLCA0NiwgNTEsIDI1NCwgMTksIDEyNSwgMjI1LCAKLSAgICA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgNDIsIDI1NCwgMTksIDEyNSwgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgNDYsIAotICAgIDI1NCwgMTksIDEyNSwgMjI1LCA3NCwgMjQzLCAyNDUsIDMxLCA3MSwgNDIsIDI0OSwgMTAwLCAxMjUsIDIyNSwgNzQsIDI0MywgCi0gICAgMjQ1LCAzMSwgNzEsIDQ2LCAyNDksIDEwMCwgMTI1LCAyMjUsIDc0LCAyNDMsIDI0NSwgMzEsIDcxLCA0MiwgNjcsIDI0OSwgCi0gICAgMTAwLCAxMjUsIDIyNSwgNzQsIDI0MywgMjQ1LCAzMSwgNzEsIDQ2LCA2NywgMjQ5LCAxMDAsIDEyNSwgMjIxLCA1MiwgMjQ3LCAKLSAgICA3NCwgNjcsIDIyMSwgNTIsIDI0NywgNzQsIDIyNSwgNzQsIDI0MywgMjQ1LCAzMSwgNzEsIDQyLCA0MSwgMTI1LCAyMjUsIAotICAgIDc0LCAyNDMsIDI0NSwgMzEsIDcxLCA0NiwgNDEsIDEyNSwgMjQ4LCAxMDAsIDIyNiwgMjQzLCAyNTAsIDEwNiwgMjI2LCAKLSAgICAyNDMsIDIxNCwgMTYsIDIyNiwgMjQzLCA1MSwgMjE0LCAxNiwgMjI2LCAyNDMsIDI0OCwgMTAwLCAxMTUsIDIzMiwgMjQyLCAKLSAgICAyNTAsIDEwNiwgMTE1LCAyMzIsIDI0MiwgMjE0LCAxNiwgMTE1LCAyMzIsIDI0MiwgMywgMjQ5LCAxNTcsIDMsIDEwNSwgCi0gICAgMjQ5LCAxNTcsIDMsIDI0MywgMjAwLCAyMTksIDY5LCAzLCAyMjEsIDcwLCAzLCAyNDksIDE2NCwgMywgMjI0LCAxNTgsIDc3LCAKLSAgICAzLCAyNDQsIDI1NCwgNzcsIDMsIDI0NSwgMTE4LCAyNDgsIDEwMSwgMywgNDIsIDIyNiwgMTMxLCAzLCA0NiwgMjI2LCAxMzEsIAotICAgIDMsIDQyLCAyNDksIDQwLCAxMjUsIDMsIDQ2LCAyNDksIDQwLCAxMjUsIDMsIDQyLCAyMTYsIDIxOSwgMjIwLCAyMzMsIDEyNSwgCi0gICAgMywgNDYsIDIxNiwgMjE5LCAyMjAsIDIzMywgMTI1LCAzLCA1MCwgNTIsIDMsIDI1NCwgMzUsIDMsIDI1MywgMTMyLCAzLCAKLSAgICA5NCwgNTIsIDMsIDI0MCwgMTU5LCAzLCAyMzMsIDM5LCA1MiwgMywgMjQyLCAxMDcsIDUyLCAzLCAyNDUsIDYxLCA1MiwgMywgCi0gICAgMjIzLCAyMDMsIDIxOSwgMjMxLCAzLCAyNDcsIDg2LCA1MiwgMywgMjI2LCA1NywgNTIsIDMsIDI0OSwgMTU2LCAyNTMsIAotICAgIDEyMiwgMTIsIDI0NCwgMTMyLCA0OCwgMTcsIDEyLCAyMTcsIDI1MSwgMiwgMjQ0LCAxMzIsIDQ5LCAxMiwgMjQ4LCAxMjgsIAotICAgIDQ4LCAxNywgMTIsIDIxOCwgMjgsIDI0MywgMjI3LCAxMiwgMjM0LCAyMDksIDQ4LCAxNywgMTIsIDI0NCwgMTM0LCA0OCwgCi0gICAgMTcsIDEyLCAyNDQsIDEzNCwgMTM4LCAxNywgMTIsIDI0OCwgMTMwLCA0OCwgMTcsIDEyLCAyNDgsIDEzMCwgMTM4LCAxNywgCi0gICAgMTIsIDIzNCwgMjExLCA0OCwgMTcsIDEyLCAyMzQsIDIxMSwgMTM4LCAxNywgMTIsIDIyMSwgMTYsIDQ4LCAxNywgMTIsIAotICAgIDIyMSwgMTYsIDEzOCwgMTcsIDEyLCAyMTgsIDI0NywgNDgsIDE3LCAxMiwgMjE4LCAyNDcsIDEzOCwgMTcsIDEyLCAxLCAKLSAgICAxOTIsIDQ4LCAxNywgMTIsIDEsIDEwNiwgMiwgMjMyLCAzMywgNzgsIDQ4LCAxNywgMTIsIDEsIDEwNiwgMiwgMjMyLCAzMywgCi0gICAgNzgsIDQwLCAxNywgMTIsIDEsIDEwNiwgMiwgMTkyLCA3OCwgNDgsIDE3LCAxMiwgMSwgMTA2LCAyLCAxOTIsIDc4LCA0MCwgCi0gICAgMTcsIDEyLCAxLCAyMTQsIDE1LCAyLCAxOTIsIDc4LCA0OCwgMTcsIDEyLCAxLCAyMTQsIDE1LCAyLCAxOTIsIDc4LCA0MCwgCi0gICAgMTcsIDEyLCAxLCAxMDYsIDIsIDE5MiwgMjUxLCAyMjAsIDQ4LCAxNywgMTIsIDEsIDEwNiwgMiwgMTkyLCAyNTEsIDIyMCwgCi0gICAgNDAsIDE3LCAxMiwgMSwgNzMsIDIsIDE5MiwgNzgsIDQ4LCAxNywgMTIsIDEsIDczLCAyLCAxOTIsIDc4LCA0MCwgMTcsIDEyLCAKLSAgICAxLCA3MywgMiwgMTkyLCA3OCwgNzAsIDE3LCAxMiwgMSwgNzMsIDIsIDE5MiwgNzgsIDEzOCwgMTcsIDEyLCAxLCAxMDYsIAotICAgIDQ4LCAxNywgMTIsIDEsIDEwNiwgNDAsIDE3LCAxMiwgMSwgMjUxLCAyMzEsIDQ4LCAxNywgMTIsIDEsIDI1MSwgMjMxLCA0MCwgCi0gICAgMTcsIDEyLCAxLCAyNTEsIDIzMSwgNzAsIDE3LCAxMiwgMSwgMjUxLCAyMzEsIDEzOCwgMTcsIDEyLCAxLCAyMTcsIDIxNiwgCi0gICAgMjMxLCAyMjgsIDQ4LCAxNywgMTIsIDEsIDIxNywgMjE2LCAyMzEsIDIyOCwgNDAsIDE3LCAxMiwgMSwgMjE3LCAyMTYsIDQ4LCAKLSAgICAxNywgMTIsIDEsIDIxNywgMjE2LCA0MCwgMTcsIDEyLCAxLCAyMTcsIDIxNiwgNzAsIDE3LCAxMiwgMSwgMjE3LCAyMTYsIAotICAgIDEzOCwgMTcsIDEyLCAxLCAyMTcsIDE0NiwgNDgsIDE3LCAxMiwgMSwgMjE3LCAxNDYsIDQwLCAxNywgMTIsIDEsIDIxNywgCi0gICAgMTQ2LCA3MCwgMTcsIDEyLCAxLCAyMTcsIDE0NiwgMTM4LCAxNywgMTIsIDEsIDE0NSwgNDgsIDE3LCAxMiwgMSwgMTQ1LCAKLSAgICA0MCwgMTcsIDEyLCAxLCAxNDUsIDcwLCAxNywgMTIsIDEsIDE0NSwgMTM4LCAxNywgMTIsIDEsIDEyMSwgNDgsIDE3LCAxMiwgCi0gICAgMSwgMTIxLCA0MCwgMTcsIDEyLCAxLCAxMjEsIDcwLCAxNywgMTIsIDEsIDEyMSwgMTM4LCAxNywgMTIsIDEsIDIzNCwgMTM2LCAKLSAgICA0OCwgMTcsIDEyLCAxLCAyMzQsIDEzNiwgNDAsIDE3LCAxMiwgMSwgMjM0LCAxMzYsIDcwLCAxNywgMTIsIDEsIDIzNCwgCi0gICAgMTM2LCAxMzgsIDE3LCAxMiwgMSwgMjQ4LCAxNDEsIDQ4LCAxNywgMTIsIDEsIDI0OCwgMTQxLCA0MCwgMTcsIDEyLCAxLCAKLSAgICAyMTcsIDE1NiwgNDgsIDE3LCAxMiwgMSwgMjE3LCAxNTYsIDQwLCAxNywgMTIsIDEsIDIyMywgMjQ2LCA0OCwgMTcsIDEyLCAKLSAgICAxLCAyMjMsIDI0NiwgNDAsIDE3LCAxMiwgMSwgMjEyLCAxMDIsIDQ4LCAxNywgMTIsIDEsIDIxMiwgMTAyLCA0MCwgMTcsIAotICAgIDEyLCAxLCAyMjIsIDg2LCA0OCwgMTcsIDEyLCAxLCAyMjIsIDg2LCA0MCwgMTcsIDEyLCAxLCAyMjIsIDg2LCA3MCwgMTcsIAotICAgIDEyLCAxLCAyMjIsIDg2LCAxMzgsIDE3LCAxMiwgMSwgMjIwLCAyNDAsIDQ4LCAxNywgMTIsIDEsIDIyMCwgMjQwLCA0MCwgCi0gICAgMTcsIDEyLCAxLCAyMjAsIDI0MCwgNzAsIDE3LCAxMiwgMSwgMjIwLCAyNDAsIDEzOCwgMTcsIDEyLCAxLCAyMjIsIDE5NiwgCi0gICAgNDgsIDE3LCAxMiwgMSwgMjIyLCAxOTYsIDQwLCAxNywgMTIsIDEsIDIyMiwgMTk2LCA3MCwgMTcsIDEyLCAxLCAyMjIsIAotICAgIDE5NiwgMTM4LCAxNywgMTIsIDEsIDI0OCwgMTYwLCA0OCwgMTcsIDEyLCAxLCAyNDgsIDE2MCwgNDAsIDE3LCAxMiwgMSwgCi0gICAgMjQ4LCAxNjAsIDcwLCAxNywgMTIsIDEsIDI0OCwgMTYwLCAxMzgsIDE3LCAxMiwgMSwgMjE4LCAzMCwgNDgsIDE3LCAxMiwgCi0gICAgMSwgMjE4LCAzMCwgNDAsIDE3LCAxMiwgMSwgMjE4LCAzMCwgNzAsIDE3LCAxMiwgMSwgMjE4LCAzMCwgMTM4LCAxNywgMTIsIAotICAgIDEsIDIxMiwgMTA1LCA0OCwgMTcsIDEyLCAxLCAyMTIsIDEwNSwgNDAsIDE3LCAxMiwgMSwgMjEyLCAxMDUsIDcwLCAxNywgCi0gICAgMTIsIDEsIDIxMiwgMTA1LCAxMzgsIDE3LCAxMiwgMSwgMjU0LCAxMDQsIDQ4LCAxNywgMTIsIDEsIDI1NCwgMTA0LCA0MCwgCi0gICAgMTcsIDEyLCAxLCAyNTQsIDEwNCwgNzAsIDE3LCAxMiwgMSwgMjU0LCAxMDQsIDEzOCwgMTcsIDEyLCAxLCAyNDIsIDIyMSwgCi0gICAgNDgsIDE3LCAxMiwgMSwgMjQyLCAyMjEsIDQwLCAxNywgMTIsIDEsIDI0MiwgMjIxLCA3MCwgMTcsIDEyLCAxLCAyNDIsIAotICAgIDIyMSwgMTM4LCAxNywgMTIsIDEsIDI0NCwgMTEyLCA0OCwgMTcsIDEyLCAxLCAyNDQsIDExMiwgNDAsIDE3LCAxMiwgMSwgCi0gICAgMjQ0LCAxMTIsIDcwLCAxNywgMTIsIDEsIDI0NCwgMTEyLCAxMzgsIDE3LCAxMiwgMSwgMjI0LCAyMjYsIDQ4LCAxNywgMTIsIAotICAgIDEsIDIyNCwgMjI2LCA0MCwgMTcsIDEyLCAxLCAyMjQsIDIyNiwgNzAsIDE3LCAxMiwgMSwgMjI0LCAyMjYsIDEzOCwgMTcsIAotICAgIDEyLCAxLCAyMzQsIDI1NSwgNDgsIDE3LCAxMiwgMSwgMjM0LCAyNTUsIDQwLCAxNywgMTIsIDEsIDIzNCwgMjU1LCA3MCwgCi0gICAgMTcsIDEyLCAxLCAyMzQsIDI1NSwgMTM4LCAxNywgMTIsIDEsIDIzMywgMTI3LCA0OCwgMTcsIDEyLCAxLCAyMzMsIDEyNywgCi0gICAgNDAsIDE3LCAxMiwgMSwgMjMzLCAxMjcsIDcwLCAxNywgMTIsIDEsIDIzMywgMTI3LCAxMzgsIDE3LCAxMiwgMSwgNjMsIDQ4LCAKLSAgICAxNywgMTIsIDEsIDYzLCA0MCwgMTcsIDEyLCAxLCA2MywgNzAsIDE3LCAxMiwgMSwgNjMsIDEzOCwgMTcsIDEyLCAxLCAyMjgsIAotICAgIDE3NCwgNDgsIDE3LCAxMiwgMSwgMjI4LCAxNzQsIDQwLCAxNywgMTIsIDEsIDIyOCwgMTc0LCA3MCwgMTcsIDEyLCAxLCAKLSAgICAyMjgsIDE3NCwgMTM4LCAxNywgMTIsIDEsIDI0MSwgMjAzLCA0OCwgMTcsIDEyLCAxLCAyNDEsIDIwMywgNDAsIDE3LCAxMiwgCi0gICAgMSwgMjQxLCAyMDMsIDcwLCAxNywgMTIsIDEsIDI0MSwgMjAzLCAxMzgsIDE3LCAxMiwgMSwgMjE0LCAxNSwgNDgsIDE3LCAKLSAgICAxMiwgMSwgMjE0LCAxNSwgNDAsIDE3LCAxMiwgMSwgMTA2LCAyMTAsIDQ4LCAxNywgMTIsIDEsIDEwNiwgMjEwLCA0MCwgMTcsIAotICAgIDEyLCAxLCA3MywgNDgsIDE3LCAxMiwgMSwgNzMsIDQwLCAxNywgMTIsIDEsIDczLCA3MCwgMTcsIDEyLCAxLCA3MywgMTM4LCAKLSAgICAxNywgMTIsIDI2LCAyMzMsIDEyNywgMiwgMTA2LCAyLCAyMzIsIDMzLCA3OCwgNDgsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAKLSAgICAyLCAxMDYsIDIsIDIzMiwgMzMsIDc4LCA0MCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDEwNiwgMiwgMTkyLCA3OCwgNDgsIAotICAgIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCAxMDYsIDIsIDE5MiwgNzgsIDQwLCAxNywgMTIsIDI2LCAyMzMsIDEyNywgMiwgCi0gICAgMTA2LCAyLCAxOTIsIDI1MSwgMjIwLCA0OCwgMTcsIDEyLCAyNiwgMjMzLCAxMjcsIDIsIDEwNiwgMiwgMTkyLCAyNTEsIAotICAgIDIyMCwgNDAsIDE3LCAxMiwgMjYsIDIzMywgMTI3LCAyLCAxMDYsIDQ4LCAxNywgMTIsIDI2LCAyMzMsIDEyNywgMiwgMTA2LCAKLSAgICA0MCwgMTcsIDIxMiwgODAsIDIxMywgMjMwLCAyMjgsIDE4NCwgMjE5LCAyMDYsIDEyMCwgMjQ0LCAyNTQsIDc3LCAxMjAsIAotICAgIDIyNCwgMTQzLCA3NywgMTIwLCA1MCwgNTIsIDEyMCwgMjQ3LCA4NiwgNTIsIDEyMCwgMjI2LCA1NywgNTIsIDEyMCwgMjU0LCAKLSAgICAzNSwgMTIwLCAyNTMsIDIyNiwgMTIwLCA0MiwgMjI2LCAxMzEsIDEyMCwgNDYsIDIyNiwgMTMxLCAxMjAsIDI1MywgMTMyLCAKLSAgICAxMjAsIDk0LCA1MiwgMTIwLCAyNDksIDE1NywgMTIwLCAyNDAsIDE1OSwgMTIwLCAyNDMsIDIwMCwgMjE5LCA2OSwgMTIwLCAKLSAgICAyMTksIDIzMSwgMTIwLCAyMSwgMjEyLCA3OSwgMTIwLCAyMSwgMTE2LCAxMjAsIDIxLCAxMDksIDEyMCwgMjEsIDE2NiwgCi0gICAgMTIwLCAyMSwgMTYzLCAxMjAsIDIxLCAxODAsIDEyMCwgMjEsIDE4OSwgMTIwLCAyMSwgMTk4LCAxMjAsIDIxLCAxOTUsIAotICAgIDEyMCwgMjEsIDIwMCwgMTIwLCAyNDksIDE2NCwgMTIwLCAyMjEsIDcwLCAxMjAsIDIzMywgMzksIDUyLCAxMjAsIDI0NSwgCi0gICAgNjEsIDUyLCAxMjAsIDI0MiwgMTA3LCA1MiwgMTIwLCAyMjQsIDE1OCwgNzcsIDEyMCwgMjQ5LCAxNTYsIDI1MywgMTIyLCAKLSAgICAxMjAsIDcsIDYsIDEsIDYxLCAxMjAsIDcsIDYsIDEsIDI1MywgNzQsIDEyMCwgNywgNiwgMSwgMjUwLCAyNTIsIDEyMCwgNywgCi0gICAgNiwgMSwgMjQ5LCAzLCAxMjAsIDcsIDYsIDEsIDc0LCAxMjAsIDcsIDYsIDEsIDI0NCwgMjMwLCAxMjAsIDcsIDYsIDEsIAotICAgIDI0MywgMTc3LCAxMjAsIDcsIDYsIDEsIDI0MiwgNDEsIDEyMCwgNywgNiwgMSwgNzIsIDEyMCwgNywgNiwgMSwgMjM1LCAKLSAgICAxNDIsIDEyMCwgNywgNiwgMSwgMjM1LCAyNywgMTIwLCA3LCA2LCAxLCAxNTAsIDEyMCwgNywgNiwgMSwgMTgzLCAxMjAsIDcsIAotICAgIDYsIDEsIDIwNCwgMTIwLCA3LCA2LCAxLCA3NSwgMTIwLCA3LCA2LCAxLCAyMjYsIDIyOSwgMTIwLCA3LCA2LCAxLCAyMjQsIAotICAgIDI0MCwgMTIwLCA3LCA2LCAxLCAxNDksIDEyMCwgNywgNiwgMSwgMTk3LCAxMjAsIDcsIDYsIDEsIDIxOCwgOTksIDEyMCwgNywgCi0gICAgNiwgMSwgNjksIDEyMCwgNywgNiwgMSwgMjE1LCA3OSwgMTIwLCA3LCA2LCAxLCAyMTQsIDgyLCAxMjAsIDcsIDYsIDEsIAotICAgIDIxMywgMTY2LCAxMjAsIDcsIDYsIDEsIDIxMywgMTA1LCAxMjAsIDcsIDYsIDEsIDIxMiwgMTUyLCAxMjAsIDQyLCA0MSwgCi0gICAgMTI1LCAxMjAsIDIyMywgMjAzLCAyMTksIDIzMSwgMTIwLCA0NiwgNDEsIDEyNSwgMTIwLCAyNDksIDIyNCwgMjU0LCAxNzQsIAotICAgIDEyMCwgMTE1LCAyMzIsIDI0MiwgMTIwLCAyNDIsIDExNCwgMjU0LCAxNzQsIDEyMCwgNywgMywgMSwgNjEsIDEyMCwgNywgMywgCi0gICAgMSwgMjUzLCA3NCwgMTIwLCA3LCAzLCAxLCAyNTAsIDI1MiwgMTIwLCA3LCAzLCAxLCAyNDksIDMsIDEyMCwgNywgMywgMSwgCi0gICAgNzQsIDEyMCwgNywgMywgMSwgMjQ0LCAyMzAsIDEyMCwgNywgMywgMSwgMjQzLCAxNzcsIDEyMCwgNywgMywgMSwgMjQyLCAKLSAgICA0MSwgMTIwLCA3LCAzLCAxLCA3MiwgMTIwLCA3LCAzLCAxLCAyMzUsIDE0MiwgMTIwLCA3LCAzLCAxLCAyMzUsIDI3LCAxMjAsIAotICAgIDcsIDMsIDEsIDE1MCwgMTIwLCA3LCAzLCAxLCAxODMsIDEyMCwgNywgMywgMSwgMjA0LCAxMjAsIDcsIDMsIDEsIDc1LCAKLSAgICAxMjAsIDcsIDMsIDEsIDIyNiwgMjI5LCAxMjAsIDcsIDMsIDEsIDIyNCwgMjQwLCAxMjAsIDcsIDMsIDEsIDE0OSwgMTIwLCAKLSAgICA3LCAzLCAxLCAxOTcsIDEyMCwgNywgMywgMSwgMjE4LCA5OSwgMTIwLCA3LCAzLCAxLCA2OSwgMTIwLCA3LCAzLCAxLCAyMTUsIAotICAgIDc5LCAxMjAsIDcsIDMsIDEsIDIxNCwgODIsIDEyMCwgNywgMywgMSwgMjEzLCAxNjYsIDEyMCwgNywgMywgMSwgMjEzLCAKLSAgICAxMDUsIDEyMCwgNywgMywgMSwgMjEyLCAxNTIsIDEyMCwgNDIsIDI0OSwgNDAsIDEyNSwgMTIwLCA3MSwgMjMyLCAyNDIsIAotICAgIDEyMCwgNDYsIDI0OSwgNDAsIDEyNSwgMTIwLCAyMTcsIDQyLCAxMjAsIDQyLCA2NywgMjI2LCAxMzEsIDEyMCwgNDYsIDY3LCAKLSAgICAyMjYsIDEzMSwgOTgsIDEwNSwgMjQzLCAyMDAsIDIxOSwgNjksIDk4LCA0MiwgMjQ5LCAxMDAsIDEyNSwgOTgsIDQ2LCAyNDksIAotICAgIDEwMCwgMTI1LCA5OCwgMTA1LCAyNDksIDE1NywgOTgsIDU2LCAyMzEsIDM3LCAyNDcsIDc0LCA5OCwgNTYsIDEsIDIxMywgCi0gICAgMjE0LCA5OCwgNTYsIDEsIDMsIDYxLCA5OCwgNTYsIDEsIDMsIDcyLCA5OCwgNTYsIDEsIDMsIDY5LCA5OCwgNTYsIDEsIDMsIAotICAgIDc0LCA5OCwgNTYsIDEsIDMsIDc1LCA5OCwgNTYsIDEsIDMsIDE4NiwgOTgsIDU2LCAxLCAzLCAyMTIsIDIwMywgOTgsIDU2LCAKLSAgICAxLCAzLCAyMTIsIDIzNSwgOTgsIDU2LCAxLCAzLCAyMTYsIDgyLCA5OCwgMjM0LCAyMDYsIDIyNSwgNTcsIDIxOSwgMjE4LCAKLSAgICA3NywgOTgsIDU2LCAxLCA2MSwgOTgsIDU2LCAxLCA3MiwgOTgsIDU2LCAxLCA2OSwgOTgsIDU2LCAxLCA3NCwgOTgsIDU2LCAKLSAgICAxLCA3NSwgOTgsIDU2LCAxLCAxODEsIDk4LCA1NiwgMSwgMjM0LCAxMDEsIDk4LCA1NiwgMSwgMjMzLCAyMzgsIDk4LCA1NiwgCi0gICAgMSwgMjM0LCAxODgsIDk4LCA1NiwgMSwgMjM0LCAzNywgOTgsIDU2LCAxLCAyMjIsIDIwMiwgOTgsIDU2LCAxLCAyMjAsIAotICAgIDExNywgOTgsIDU2LCAxLCAyMTksIDI3LCA5OCwgNTYsIDEsIDIyMiwgMTAwLCA5OCwgNTYsIDEsIDIxOSwgMjQyLCA5OCwgCi0gICAgNTYsIDEsIDIxOCwgNTIsIDk4LCA1NiwgMSwgMjE3LCA3MSwgOTgsIDU2LCAxLCAyMTYsIDgyLCA5OCwgNTYsIDEsIDIxNywgCi0gICAgMjI5LCA5OCwgNTYsIDEsIDEwOCwgOTgsIDU2LCAxLCAyMDUsIDk4LCA1NiwgMSwgMjI5LCA2NCwgOTgsIDU2LCAxLCAyMjgsIAotICAgIDkyLCA5OCwgNTYsIDEsIDIyOSwgMTg3LCA5OCwgNTYsIDEsIDIyOCwgMTg1LCA5OCwgNTYsIDEsIDE1OSwgOTgsIDU2LCAxLCAKLSAgICAyNDEsIDE2NSwgOTgsIDU2LCAxLCAyNDAsIDIxMiwgOTgsIDU2LCAxLCAyNDEsIDIyMiwgOTgsIDU2LCAxLCAyNDEsIDU0LCAKLSAgICA5OCwgNTYsIDEsIDE4OCwgOTgsIDU2LCAxLCAyMzEsIDQyLCA5OCwgNTYsIDEsIDIzMCwgMTcyLCA5OCwgNTYsIDEsIDIzMSwgCi0gICAgMTU2LCA5OCwgNTYsIDEsIDIzMCwgMjMxLCA5OCwgNTYsIDEsIDE4NiwgOTgsIDU2LCAxLCAyMTIsIDIwMywgOTgsIDU2LCAxLCAKLSAgICAyMTIsIDIzNSwgOTgsIDU2LCAxLCAyMDMsIDk4LCA1NiwgMSwgMjIzLCAxODgsIDk4LCA1NiwgMSwgMjIzLCA1MSwgOTgsIAotICAgIDU2LCAxLCAyMjQsIDIxLCA5OCwgNTYsIDEsIDIyMywgMTEyLCA5OCwgNTYsIDEsIDIxNCwgNDksIDk4LCA1NiwgMSwgMjA0LCAKLSAgICA5OCwgNTYsIDIxNCwgMTE2LCAyMTksIDIxOCwgNzcsIDk4LCA1NiwgMjIxLCA3NSwgMjE5LCAyMTgsIDc3LCA5OCwgMjMsIAotICAgIDI0NCwgNzIsIDk4LCAyMywgMSwgMjM0LCA2NywgOTgsIDIzLCAxLCAyMTksIDE1MCwgOTgsIDIzLCAxLCAyMzQsIDYwLCA5OCwgCi0gICAgMjMsIDEsIDIyOSwgNTcsIDk4LCAyMywgMSwgMjI5LCA1NSwgOTgsIDIzLCAxLCAyMjksIDU0LCA5OCwgMjMsIDEsIDIxNywgCi0gICAgNTUsIDk4LCAyMywgMSwgMjE5LCAxMzksIDk4LCAyMywgMSwgMjIzLCAxNzksIDk4LCAyMywgMSwgMjIzLCAxNzQsIDk4LCAKLSAgICAyMywgMSwgMjIzLCAxNzEsIDk4LCAyMywgMSwgMjIzLCAxNjQsIDk4LCAyMywgMSwgMjIzLCAxNTksIDk4LCAyMywgMSwgCi0gICAgMjIzLCAxNTQsIDk4LCAyMywgMSwgMjIzLCAxNjUsIDk4LCAyMywgMSwgMjIzLCAxNzcsIDk4LCAyMywgMSwgMjMxLCAzMCwgCi0gICAgOTgsIDIzLCAxLCAyMjUsIDIyNywgOTgsIDIzLCAxLCAyMTksIDE0NywgOTgsIDIzLCAxLCAyMjUsIDIxNiwgOTgsIDIzLCAxLCAKLSAgICAyMjAsIDc2LCA5OCwgMjMsIDEsIDIxOSwgMTQ0LCA5OCwgMjMsIDEsIDIzNiwgNTEsIDk4LCAyMywgMSwgMjQ5LCAyMzksIAotICAgIDk4LCAyMywgMSwgMjE5LCAxNTQsIDk4LCAyMywgMSwgMjUwLCA0MywgOTgsIDIzLCAxLCAyMzQsIDExNiwgOTgsIDIzLCAxLCAKLSAgICAyMTcsIDEyNiwgOTgsIDIzLCAxLCAyMjYsIDcsIDk4LCAyMywgMSwgMjQxLCAxNTgsIDk4LCAyMywgMSwgNjEsIDk4LCAyMywgCi0gICAgMSwgMjU0LCAxNDgsIDk4LCAyMywgMSwgMTg2LCA5OCwgMjMsIDEsIDIxMywgODAsIDk4LCAyMywgMSwgMjQ1LCA3NiwgOTgsIAotICAgIDIzLCAxLCA3NCwgOTgsIDIzLCAxLCAyMTMsIDI3LCA5OCwgMjMsIDEsIDIxMywgMzgsIDk4LCAyMywgMSwgNzUsIDk4LCAyMywgCi0gICAgMSwgMjE0LCA0OSwgOTgsIDIzLCAxLCAyMTQsIDQ2LCA5OCwgMjMsIDEsIDIyNywgOTksIDk4LCAyMywgMSwgMjEyLCAyMzUsIAotICAgIDk4LCAyMywgMSwgNjksIDk4LCAyMywgMSwgMjEzLCAyNTIsIDk4LCAyMywgMSwgMjE0LCA2LCA5OCwgMjMsIDEsIDIxMywgCi0gICAgMjM1LCA5OCwgMjMsIDEsIDIxMiwgMjAzLCA5OCwgMjMsIDEsIDI0NSwgMjIsIDk4LCAyMywgMSwgMjEyLCAyNTUsIDk4LCAKLSAgICAyMywgMSwgNzIsIDEyMCwgMjUwLCAxMTAsIDUyLCAxMjAsIDIyNSwgMTA4LCA1MiwgMTIwLCAyMjgsIDE2MywgNTIsIDEyMCwgCi0gICAgMjMyLCAzNywgMTIwLCAyNTEsIDYzLCAxMzQsIDEyMCwgMjEzLCAzMSwgNTIsIDEyMCwgMjEzLCAyMDQsIDUyLCA5OCwgMjQzLCAKLSAgICAyNDMsIDE3NywgMjE0LCAyMTYsIDk4LCAxMzIsIDY4LCA5OCwgMjE1LCAxMjQsIDY4LCA5OCwgOTUsIDY4LCA5OCwgMjQ2LCAKLSAgICA1OCwgNjgsIDk4LCA4MywgMjE5LCAxNjYsIDk4LCA2NywgMjQ5LCAyMjgsIDIzNSwgMjAxLCAyNTQsIDEwLCAyNTQsIDI5LCAKLSAgICAyMzUsIDIwMSwgMjU0LCAxMCwgMjIxLCA1NywgMjM1LCAyMDEsIDI1NCwgMTAsIDIxNywgMTg5LCAyMjcsIDExMywgMjIzLCAKLSAgICAyMjQsIDI1MCwgNzgsIDIyMywgMjI0LCAyNTAsIDc4LCA1OCwgNTQsIDQsIDI1MywgNTgsIDYxLCA1OCwgNTQsIDQsIDI1MywgCi0gICAgMjcsIDc0LCA1OCwgNTQsIDQsIDI1MywgMzYsIDcyLCA1OCwgNTQsIDQsIDI1MywgNCwgNzUsIDU4LCA1NCwgNCwgMjUzLCAKLSAgICA1NCwgNjksIDU4LCA1NCwgNCwgMjUzLCA3MywgMjQ4LCAxNjQsIDU4LCA1NCwgNCwgMjUzLCAyMCwgMjQ4LCA0MSwgNTgsIAotICAgIDU0LCA0LCAyNTMsIDYwLCAyNDcsIDIxMSwgNTgsIDU0LCA0LCAyNTMsIDUwLCAyNDcsIDk5LCA1OCwgNTQsIDQsIDI1MywgCi0gICAgMTQsIDI0NiwgMzMsIDU4LCA1NCwgNCwgMjUzLCA4LCAyMzUsIDEzOSwgNTgsIDU0LCA0LCAyNTMsIDE5LCAyMzUsIDEyNywgCi0gICAgNTgsIDU0LCA0LCAyNTMsIDI5LCAyMzUsIDcxLCA1OCwgNTQsIDQsIDI1MywgMCwgMjM1LCA1NCwgNTgsIDU0LCA0LCAyNTIsIAotICAgIDI0NCwgMTgxLCA1OCwgNTQsIDQsIDI1MywgMjEsIDIzNCwgMTg4LCA1OCwgNTQsIDQsIDI1MiwgMjU0LCAyMzQsIDEwMSwgCi0gICAgNTgsIDU0LCA0LCAyNTIsIDI1MSwgMjM0LCAzNywgNTgsIDU0LCA0LCAyNTIsIDI0MCwgMjMzLCAyMzgsIDU4LCA1NCwgNCwgCi0gICAgMjUyLCAyNDEsIDE4OCwgNTgsIDU0LCA0LCAyNTMsIDUxLCAyMzEsIDE1NiwgNTgsIDU0LCA0LCAyNTIsIDI0OCwgMjMxLCAKLSAgICA0MiwgNTgsIDU0LCA0LCAyNTMsIDQ5LCAyMzAsIDIzMSwgNTgsIDU0LCA0LCAyNTMsIDQxLCAyMzAsIDE3MiwgNTgsIDU0LCAKLSAgICA0LCAyNTMsIDYyLCAyMDUsIDU4LCA1NCwgNCwgMjUzLCA0MCwgMjI5LCAxODcsIDU4LCA1NCwgNCwgMjUzLCAzNCwgMjI5LCAKLSAgICA2NCwgNTgsIDU0LCA0LCAyNTMsIDEzLCAyMjgsIDE4NSwgNTgsIDU0LCA0LCAyNTMsIDEwLCAyMjgsIDkyLCA1OCwgNTQsIDQsIAotICAgIDI1MywgNjksIDE5MywgNTgsIDU0LCA0LCAyNTIsIDI0OSwgMjI2LCA5NiwgNTgsIDU0LCA0LCAyNTMsIDI2LCAyMjUsIDI0MCwgCi0gICAgNTgsIDU0LCA0LCAyNTMsIDUzLCAyMjUsIDE1MCwgNTgsIDU0LCA0LCAyNTMsIDE1LCAyMjUsIDM1LCA1OCwgNTQsIDQsIAotICAgIDI1MywgNDgsIDIyNCwgMjMyLCA1OCwgNTQsIDQsIDI1MiwgMjQzLCAyMjQsIDIxMywgNTgsIDU0LCA0LCAyNTMsIDQzLCAKLSAgICAyMjQsIDE5OCwgNTgsIDU0LCA0LCAyNTMsIDMyLCAyMjQsIDE4NywgNTgsIDU0LCA0LCAyNTMsIDUsIDIwMywgNTgsIDU0LCAKLSAgICA0LCAyNTMsIDM3LCAyMjQsIDIxLCA1OCwgNTQsIDQsIDI1MywgMTIsIDIyMywgMTg4LCA1OCwgNTQsIDQsIDI1MywgNzEsIAotICAgIDIyMywgMTEyLCA1OCwgNTQsIDQsIDI1MywgMzgsIDIyMywgNTEsIDU4LCA1NCwgNCwgMjUzLCAzMywgMjIyLCAyMDIsIDU4LCAKLSAgICA1NCwgNCwgMjUzLCA1NiwgMjIyLCAxMDAsIDU4LCA1NCwgNCwgMjUzLCAyNCwgMjIwLCAxMTcsIDU4LCA1NCwgNCwgMjUzLCAKLSAgICA1MiwgMjE5LCAyNDIsIDU4LCA1NCwgNCwgMjUzLCA3LCAyMTksIDI3LCA1OCwgNTQsIDQsIDI1MywgNiwgMjE4LCA1MiwgNTgsIAotICAgIDU0LCA0LCAyNTMsIDY3LCAyMTcsIDIyOSwgNTgsIDU0LCA0LCAyNTMsIDI4LCAyMTcsIDcxLCA1OCwgNTQsIDQsIDI1MywgCi0gICAgNjUsIDEwOCwgNTgsIDU0LCA0LCAyNTIsIDI1MiwgMjE2LCA4MiwgNTgsIDU0LCA0LCAyNTMsIDExLCAyMTQsIDQ5LCA1OCwgCi0gICAgNTQsIDQsIDI1MiwgMjQ2LCAyMTQsIDYsIDU4LCA1NCwgNCwgMjUzLCAyNSwgMjEzLCAyMzUsIDU4LCA1NCwgNCwgMjUzLCAKLSAgICAyMywgMjEzLCAyMTQsIDU4LCA1NCwgNCwgMjUzLCA0NywgMjEyLCAxMDksIDU4LCA1NCwgNCwgMjUyLCAyNDcsIDIxMiwgODcsIAotICAgIDU4LCA1NCwgNCwgMjUzLCA0NCwgMjEyLCAxNiwgNTgsIDU0LCA0LCAyNTMsIDM5LCAyNTQsIDIzNCwgNTgsIDU0LCA0LCAKLSAgICAyNTMsIDIyLCAyNTQsIDIzMywgNTgsIDU0LCA0LCAyNTIsIDIzNywgMjUzLCAxMDgsIDU4LCA1NCwgNCwgMjUyLCAyNTAsIAotICAgIDI0NiwgMSwgNTgsIDU0LCA0LCAyNTIsIDIzMywgMjQ2LCAwLCA1OCwgNTQsIDQsIDI1MywgMTcsIDIyOCwgMzEsIDU4LCA1NCwgCi0gICAgNCwgMjUzLCAzNSwgMjI1LCAzNCwgNTgsIDU0LCA0LCAyNTMsIDMsIDIyNSwgMzcsIDU4LCA1NCwgNCwgMjUyLCAyNDUsIAotICAgIDIyNCwgNzYsIDU4LCA1NCwgNCwgMjUzLCAzMSwgMjI0LCA3NSwgNTgsIDU0LCA0LCAyNTIsIDI1MywgMjIzLCAxMTEsIDU4LCAKLSAgICA1NCwgNCwgMjUyLCAyNTUsIDIxOCwgNTAsIDU4LCA1NCwgNCwgMjUyLCAyMzUsIDIxNiwgNDMsIDU4LCA1NCwgNCwgMjUyLCAKLSAgICAyMzIsIDEwOSwgNTgsIDU0LCAxNiwgMjUzLCA0NiwgNTgsIDU0LCAxNiwgMjUzLCA0NSwgNTgsIDU0LCAxNiwgMjUzLCA0MiwgCi0gICAgNTgsIDU0LCAxNiwgMjUzLCAzMCwgNTgsIDU0LCAxNiwgMjUzLCAxOCwgNTgsIDU0LCAxNiwgMjUzLCAxNiwgNTgsIDU0LCAKLSAgICAxNiwgMjUzLCA5LCA1OCwgNTQsIDE2LCAyNTMsIDIsIDU4LCA1NCwgMTYsIDI1MywgMSwgNTgsIDU0LCAxNiwgMjUyLCAyNDIsIAotICAgIDU4LCA1NCwgMTYsIDI1MiwgMjM5LCA1OCwgNTQsIDE2LCAyNTIsIDIzOCwgNTgsIDU0LCAxNiwgMjUyLCAyMzYsIDU4LCA1NCwgCi0gICAgMTYsIDI1MiwgMjM0LCA1OCwgNTQsIDEwMiwgMjUyLCAyMzEsIDIzMSwgMjQ4LCA1OCwgNTQsIDEwMiwgMjUyLCAyMzAsIAotICAgIDIxMywgMjA4LCA1OCwgNTQsIDEwMiwgMjUyLCAyMjksIDI0OCwgMjUsIDU4LCA1NCwgMTAyLCAyNTIsIDIyOCwgMjQ1LCA1OCwgCi0gICAgNTgsIDU0LCAxMDIsIDI1MiwgMjI3LCAyMzEsIDIyMiwgNTgsIDU0LCAxMDIsIDI1MiwgMjI2LCAyMTksIDEwMSwgNTgsIDU0LCAKLSAgICAxMDIsIDI1MiwgMjI1LCAyNDUsIDQsIDU4LCA1NCwgMTAyLCAyNTIsIDIyNCwgMjI0LCA0NSwgNTgsIDU0LCAxMDIsIDI1MiwgCi0gICAgMjIzLCAyMjAsIDI0MiwgNTgsIDU0LCAxMDIsIDI1MiwgMjIyLCAyNDEsIDIyMSwgNTgsIDU0LCAxMDIsIDI1MiwgMjIxLCAKLSAgICAyMTksIDIxMiwgNTgsIDU0LCAxMDIsIDI1MiwgMjIwLCAyNTEsIDEyNiwgNTgsIDU0LCAxMDIsIDI1MiwgMjE5LCAyNDksIAotICAgIDg0LCA1OCwgNTQsIDEwMiwgMjUyLCAyMTgsIDI1MSwgNDQsIDU4LCA1NCwgMTAyLCAyNTIsIDIxNywgMjEzLCAyNDMsIDU4LCAKLSAgICA1NCwgMTAyLCAyNTIsIDIxNiwgMjUyLCA1NiwgNTgsIDU0LCAxMDIsIDI1MiwgMjE1LCAyMjcsIDcxLCA1OCwgNTQsIDEwMiwgCi0gICAgMjUyLCAyMTQsIDIxOSwgMTg2LCA1OCwgNTQsIDEwMiwgMjUyLCAyMTMsIDI0OSwgMTEsIDU4LCA1NCwgMjMwLCAyMTIsIAotICAgIDI1MiwgMjEyLCAyMzQsIDIyOSwgNTgsIDU0LCAyMzAsIDIxMiwgMjUyLCAyMTEsIDIzNCwgMjM3LCA1OCwgNTQsIDEwMiwgCi0gICAgMjUyLCAyMTAsIDIyNywgODQsIDU4LCA1NCwgMTAyLCAyNTIsIDIwOSwgMjEzLCAyMjEsIDU4LCA1NCwgMTAyLCAyNTIsIAotICAgIDIwOCwgNTgsIDU0LCAyMzAsIDIxMiwgMjUyLCAyMDcsIDI1MywgMTg4LCA1OCwgNTQsIDIzMCwgMjEyLCAyNTIsIDIwNiwgCi0gICAgMjMxLCAxMTYsIDU4LCA1NCwgMTAyLCAyNTIsIDIwNSwgMjUxLCA2MiwgNTgsIDU0LCAxMDIsIDI1MiwgMjA0LCAyNDIsIAotICAgIDE0MiwgNTgsIDU0LCAxMDIsIDI1MiwgMjAzLCA1OCwgNTQsIDEwMiwgMjUyLCAyMDIsIDIxMywgMTk5LCA1OCwgNTQsIDEwMiwgCi0gICAgMjUyLCAyMDEsIDU4LCA1NCwgMTAyLCAyNTIsIDIwMCwgNTgsIDU0LCAxMDIsIDI1MiwgMTk5LCAyNDAsIDIzNSwgNTgsIDU0LCAKLSAgICAxMDIsIDI1MiwgMTk4LCA1OCwgNTQsIDEwMiwgMjUyLCAxOTcsIDU4LCA1NCwgMTAyLCAyNTIsIDE5NiwgNTgsIDU0LCAyMzAsIAotICAgIDIxMiwgMjUyLCAxOTQsIDIxNiwgNTYsIDU4LCA1NCwgMTAyLCAyNTIsIDE5MywgNTgsIDU0LCAxMDIsIDI1MiwgMTkyLCA1OCwgCi0gICAgNTQsIDEwMiwgMjUyLCAxOTEsIDI0OSwgMTg3LCA1OCwgNTQsIDEwMiwgMjUyLCAxOTAsIDU4LCA1NCwgMTAyLCAyNTIsIAotICAgIDE4OSwgNTgsIDU0LCAxMDIsIDI1MiwgMTg4LCAyNDMsIDY5LCA1OCwgNTQsIDEwMiwgMjUyLCAxODcsIDI1MywgMTc1LCA1OCwgCi0gICAgNTQsIDEwMiwgMjUyLCAxODYsIDU4LCA1NCwgMTAyLCAyNTIsIDE4NSwgNTgsIDU0LCAxMDIsIDI1MiwgMTg0LCA1OCwgNTQsIAotICAgIDEwMiwgMjUyLCAxODMsIDU4LCA1NCwgMTAyLCAyNTIsIDE4MiwgNTgsIDU0LCAxMDIsIDI1MiwgMTgxLCA1OCwgNTQsIDEwMiwgCi0gICAgMjUyLCAxODAsIDU4LCA1NCwgMTAyLCAyNTIsIDE3OSwgNTgsIDU0LCAxMDIsIDI1MiwgMTc4LCA1OCwgNTQsIDEwMiwgMjUyLCAKLSAgICAxNzcsIDIzMCwgMjA0LCA1OCwgNTQsIDEwMiwgMjUyLCAxNzYsIDU4LCA1NCwgMTAyLCAyNTIsIDE3NSwgMjE2LCAxOTMsIAotICAgIDU4LCA1NCwgMTAyLCAyNTIsIDE3NCwgNTgsIDU0LCAxMDIsIDI1MiwgMTczLCA1OCwgNTQsIDEwMiwgMjUyLCAxNzIsIDU4LCAKLSAgICA1NCwgMTAyLCAyNTIsIDE3MSwgNTgsIDU0LCAxMDIsIDI1MiwgMTcwLCA1OCwgNTQsIDEwMiwgMjUyLCAxNjksIDU4LCA1NCwgCi0gICAgMTAyLCAyNTIsIDE2OCwgNTgsIDU0LCAxMDIsIDI1MiwgMTY3LCA1OCwgNTQsIDEwMiwgMjUyLCAxNjYsIDU4LCA1NCwgMTAyLCAKLSAgICAyNTIsIDE2NSwgNTgsIDU0LCAxMDIsIDI1MiwgMTY0LCA1OCwgNTQsIDEwMiwgMjUyLCAxNjMsIDI0MSwgMTk1LCA1OCwgNTQsIAotICAgIDEwMiwgMjUyLCAxNDIsIDI0MywgMjUzLCA1OCwgNTQsIDEwMiwgMjUyLCAxMzksIDI1MiwgMzYsIDU4LCA1NCwgMTAyLCAKLSAgICAyNTIsIDEzNCwgMjE5LCAxOTMsIDU4LCA1NCwgMTAyLCAyNTIsIDEzMywgNjgsIDU4LCA1NCwgMTAyLCAyNTIsIDEzMiwgNTgsIAotICAgIDU0LCAxMDIsIDI1MiwgMTMxLCAyMTgsIDE4MSwgNTgsIDU0LCAxMDIsIDI1MiwgMTMwLCA1OCwgNTQsIDEwMiwgMjUyLCAKLSAgICAxMjksIDU4LCA1NCwgMTAyLCAyNTIsIDEyOCwgMjEzLCAyMzksIDI1MCwgNzUsIDU4LCA1NCwgMTAyLCAyNTIsIDEyNywgCi0gICAgMjUwLCA3NSwgNTgsIDU0LCAxMDIsIDI1MiwgMTI2LCAyNTAsIDc2LCAyNDMsIDIyNSwgNTgsIDU0LCAxMDIsIDI1MiwgMTI1LCAKLSAgICAyMTMsIDI0MSwgNTgsIDU0LCAxMDIsIDI1MiwgMTI0LCA1OCwgNTQsIDEwMiwgMjUyLCAxMjMsIDU4LCA1NCwgMjMwLCAyMTIsIAotICAgIDI1MiwgMTIyLCAyNDcsIDE1MCwgNTgsIDU0LCAxMDIsIDI1MiwgMTIxLCA1OCwgNTQsIDEwMiwgMjUyLCAxMjAsIDU4LCA1NCwgCi0gICAgMTAyLCAyNTIsIDExOCwgNTgsIDU0LCAxMDIsIDI1MiwgMTE3LCA1OCwgNTQsIDEwMiwgMjUyLCAxMTYsIDU4LCA1NCwgMTAyLCAKLSAgICAyNTIsIDExNSwgMjQ4LCAxMDQsIDU4LCA1NCwgMTAyLCAyNTIsIDExNCwgNTgsIDU0LCAxMDIsIDI1MiwgMTEzLCA1OCwgNTQsIAotICAgIDEwMiwgMjUyLCAxMTIsIDU4LCA1NCwgMTAyLCAyNTIsIDExMSwgNTgsIDU0LCAxMDIsIDI1MiwgMTEwLCA1OCwgNTQsIDEwMiwgCi0gICAgMjE0LCAxNjMsIDI1MiwgMTk1LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTYyLCA1OCwgNTQsIDEwMiwgMjE0LCAKLSAgICAxNjMsIDI1MiwgMTYxLCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTYwLCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIAotICAgIDI1MiwgMTU5LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTU4LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgCi0gICAgMTU3LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTU2LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTU1LCAKLSAgICA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTU0LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTUzLCA1OCwgNTQsIAotICAgIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTUyLCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTUxLCA1OCwgNTQsIDEwMiwgCi0gICAgMjE0LCAxNjMsIDI1MiwgMTUwLCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTQ5LCA1OCwgNTQsIDEwMiwgMjE0LCAKLSAgICAxNjMsIDI1MiwgMTQ4LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTQ3LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIAotICAgIDI1MiwgMTQ2LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTQ1LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgCi0gICAgMTQ0LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTQzLCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTQxLCAKLSAgICA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTQwLCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTM4LCA1OCwgNTQsIAotICAgIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTM3LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTM2LCA1OCwgNTQsIDEwMiwgCi0gICAgMjE0LCAxNjMsIDI1MiwgMTM1LCA1OCwgNTQsIDEwMiwgMjE0LCAxNjMsIDI1MiwgMTE5LCA1OCwgNTQsIDEwMiwgMjE0LCAKLSAgICAxNjMsIDI1MiwgMTA5LCAyNTQsIDE0MSwgMjEzLCAxOTYsIDIyMSwgNTgsIDIzMiwgMjQyLCAyNTQsIDE0MSwgMjEzLCAxOTYsIAotICAgIDIyMSwgNTgsIDI0NywgNzQsIDI1NCwgMTQxLCAyNTAsIDY2LCA3NywgMjU0LCAxNDEsIDUwLCAxMTYsIDI1NCwgMTQxLCA1MCwgCi0gICAgMTA5LCAyNTQsIDE0MSwgNTAsIDE2NiwgMjU0LCAxNDEsIDUwLCAxNjMsIDI1NCwgMTQxLCA1MCwgMTgwLCAyNTQsIDE0MSwgCi0gICAgNTAsIDE4OSwgMjU0LCAxNDEsIDUwLCAxOTgsIDI1NCwgMTQxLCA1MCwgMTk1LCAyNTQsIDE0MSwgNTAsIDIwMCwgMjU0LCAKLSAgICAxNDEsIDUwLCAyMTcsIDIwMCwgMjU0LCAxNDEsIDUwLCAyMTYsIDM4LCAyNTQsIDE0MSwgNTAsIDIxNywgMTE1LCAyNTQsIAotICAgIDE0MSwgNTAsIDI0MywgMjQwLCAyNTQsIDE0MSwgNTAsIDI0NCwgODMsIDI1NCwgMTQxLCA1MCwgMjIwLCAzOSwgMjU0LCAKLSAgICAxNDEsIDUwLCAyMjEsIDM3LCAyNTQsIDE0MSwgNTAsIDI0NSwgMTQxLCAyNTQsIDE0MSwgNTAsIDIyOSwgMjYsIDI1NCwgCi0gICAgMTQxLCA1MCwgMTIyLCAyNDAsIDIwMCwgMjU0LCAxNDEsIDUwLCAxMTcsIDI0MCwgMjAwLCAyNTQsIDE0MSwgNTAsIDEzMywgCi0gICAgMjQwLCAyMDAsIDI1NCwgMTQxLCA1MCwgMjQzLCAyMzcsIDI0MCwgMjAwLCAyNTQsIDE0MSwgNTAsIDI0NCwgNTAsIDI0MCwgCi0gICAgMjAwLCAyNTQsIDE0MSwgNTAsIDIyMCwgNTMsIDI0MCwgMjAwLCAyNTQsIDE0MSwgNTAsIDIyMSwgNDMsIDI0MCwgMjAwLCAKLSAgICAyNTQsIDE0MSwgNTAsIDI0NSwgMTUwLCAyNDAsIDIwMCwgMjU0LCAxNDEsIDUwLCAyMjksIDMxLCAyNDAsIDIwMCwgMjU0LCAKLSAgICAxNDEsIDUwLCAxMjIsIDIxNywgMTAwLCAyNTQsIDE0MSwgNTAsIDExNywgMjE3LCAxMDAsIDI1NCwgMTQxLCA1MCwgMTMzLCAKLSAgICAyMTcsIDEwMCwgMjU0LCAxNDEsIDUwLCAyNDMsIDIzNywgMjE3LCAxMDAsIDI1NCwgMTQxLCA1MCwgMjQ0LCA1MCwgMjE3LCAKLSAgICAxMDAsIDI1NCwgMTQxLCA1MCwgMjIwLCA1MywgMjE3LCAxMDAsIDI1NCwgMTQxLCA1MCwgMjIxLCA0MywgMjE3LCAxMDAsIAotICAgIDI1NCwgMTQxLCA1MCwgMjQ1LCAxNTAsIDIxNywgMTAwLCAyNTQsIDE0MSwgNTAsIDIyOSwgMzEsIDIxNywgMTAwLCAyNTQsIAotICAgIDE0MSwgNTAsIDIxNywgMjAxLCAyMTcsIDEwMCwgMjU0LCAxNDEsIDUwLCAyMTYsIDM5LCAyMTcsIDEwMCwgMjU0LCAxNDEsIAotICAgIDUwLCAyMTcsIDExNiwgMjE3LCAxMDAsIDI1NCwgMTQxLCA1MCwgMjQzLCAyNDEsIDIxNywgMTAwLCAyNTQsIDE0MSwgNTAsIAotICAgIDI0NCwgODQsIDIxNywgMTAwLCAyNTQsIDE0MSwgNTAsIDIyMCwgNDAsIDIxNywgMTAwLCAyNTQsIDE0MSwgNTAsIDIyMSwgCi0gICAgMzgsIDIxNywgMTAwLCAyNTQsIDE0MSwgNTAsIDI0NSwgMTQyLCAyMTcsIDEwMCwgMjU0LCAxNDEsIDUwLCAyMjksIDI3LCAKLSAgICAyMTcsIDEwMCwgMjU0LCAxNDEsIDIxMywgMjU1LCAyNTIsIDQ4LCAyMTUsIDE0NCwgMjU0LCAxNDEsIDIxMywgMjU1LCAyNDQsIAotICAgIDYxLCAyMTksIDQsIDI1NCwgMTQxLCAyMTMsIDI1NSwgMjIyLCA5NSwgMjE5LCA0LCAyNTQsIDE0MSwgMjEzLCAyNTUsIDIxNywgCi0gICAgMTIyLCAyMTksIDQsIDI1NCwgMTQxLCAyMTMsIDI1NSwgMjQzLCAyMzAsIDIxOSwgNCwgMjU0LCAxNDEsIDI0NiwgMzYsIAotICAgIDIzMSwgMTU1LCAyNDQsIDYxLCAyMTksIDQsIDI1NCwgMTQxLCAyMzIsIDIyOCwgMjMxLCAxNTUsIDI0NCwgNjEsIDIxOSwgNCwgCi0gICAgMjU0LCAxNDEsIDIzMSwgMTU1LCAyMjIsIDk1LCAyMTksIDQsIDI1NCwgMTQxLCAyMzEsIDE1NSwgMjE3LCAxMjIsIDIxOSwgCi0gICAgNCwgMjUsIDI1NCwgMTY3LCAyNTMsIDExMCwgMTIyLCAyMjQsIDE2NiwgMjUsIDI1NCwgMTY3LCAyNTMsIDExMCwgMTIyLCAKLSAgICAyNDIsIDksIDI1LCAyNTQsIDE2NywgMjUzLCAxMTAsIDEyMiwgMjQ2LCA1NCwgMjUsIDI1NCwgMTY3LCAyNTMsIDExMCwgCi0gICAgMTgwLCAyNSwgMjU0LCAxNjcsIDI1MywgMTEwLCAyNDQsIDgzLCAyNSwgMjU0LCAxNjcsIDI1MywgMTEwLCAyNDQsIDUwLCAKLSAgICAyNDAsIDIwMCwgMjUsIDI1NCwgMTY3LCAyNTMsIDExMCwgMjQ0LCA1MCwgMjE3LCAxMDAsIDI1LCAyNTQsIDE2NywgMjUzLCAKLSAgICAxMTAsIDI0NCwgODQsIDIxNywgMTAwLCAyNSwgMjU0LCAxNjcsIDI1MywgMTEwLCAyNDQsIDUwLCAyMTgsIDE4LCAyNSwgCi0gICAgMjU0LCAxNjcsIDI1MywgMTEwLCAyMTcsIDIwMSwgMjE4LCAxOCwgMjUsIDI1NCwgMTY3LCAyNTMsIDExMCwgMjQ0LCA4NCwgCi0gICAgMjE4LCAxOCwgMjUsIDI1NCwgMTY3LCAyNTMsIDExMCwgMTIyLCAyNDAsIDIwMSwgMjE4LCAxOCwgMjUsIDI1NCwgMTY3LCAKLSAgICAyNTMsIDExMCwgMjQ0LCA1MCwgMjQwLCAyMDEsIDIxOCwgMTgsIDI1LCAyNTQsIDE2NywgMjUzLCAxMTAsIDEyMiwgMjE3LCAKLSAgICAxMDEsIDIxOCwgMTgsIDI1LCAyNTQsIDE2NywgMjUzLCAxMTAsIDI0NCwgNTAsIDIxNywgMTAxLCAyMTgsIDE4LCAyNSwgCi0gICAgMjU0LCAxNjcsIDI1MywgMTEwLCAyNDQsIDUwLCAyMTksIDkwLCAyNSwgMjU0LCAxNjcsIDI1MywgMTEwLCAyMTcsIDIwMSwgCi0gICAgMjE5LCA5MCwgMjUsIDI1NCwgMTY3LCAyNTMsIDExMCwgMjQ0LCA4NCwgMjE5LCA5MCwgMjUsIDI1NCwgMTY3LCAyNTMsIAotICAgIDExMCwgMTIyLCAyNDAsIDIwMSwgMjE5LCA5MCwgMjUsIDI1NCwgMTY3LCAyNTMsIDExMCwgMjQ0LCA1MCwgMjQwLCAyMDEsIAotICAgIDIxOSwgOTAsIDI1LCAyNTQsIDE2NywgMjUzLCAxMTAsIDEyMiwgMjE3LCAxMDEsIDIxOSwgOTAsIDI1LCAyNTQsIDE2NywgCi0gICAgMjUzLCAxMTAsIDIxNywgMjAxLCAyMTcsIDEwMSwgMjE5LCA5MCwgMjUsIDI1NCwgMTY3LCAyNTMsIDExMCwgMjQ0LCA4NCwgCi0gICAgMjE3LCAxMDEsIDIxOSwgOTAsIDI1LCAyNTQsIDE2NywgMjUzLCAxMTAsIDIxNywgMjAxLCAyMzAsIDIzNCwgMjUsIDI1NCwgCi0gICAgMTY3LCAyNDEsIDE4OSwgMTIyLCAyMjUsIDE2NCwgMjUsIDI1NCwgMTY3LCAyMTcsIDEzNCwgMTE2LCAyNSwgMjU0LCAxNjcsIAotICAgIDI0MSwgMTg2LCAxMTYsIDI1LCAyNTQsIDE2NywgMjQ1LCA2NywgMTA5LCAyNSwgMjU0LCAxNjcsIDIxNywgMTM0LCAxMDksIAotICAgIDI1LCAyNTQsIDE2NywgMjQ5LCA4LCAxMTcsIDI0NiwgNTMsIDI1LCAyNTQsIDE2NywgMjQ1LCA2NywgMTE3LCAyNDYsIDUzLCAKLSAgICAyNSwgMjU0LCAxNjcsIDIxNiwgMTYxLCAxODAsIDI1LCAyNTQsIDE2NywgMjE2LCAxNjEsIDIxNywgMjAwLCAyNSwgMjU0LCAKLSAgICAxNjcsIDIxNiwgMTYxLCAyMTcsIDIwMSwgMjU0LCA1MCwgMTcsIDI1LCAyNTQsIDE2NywgMjQxLCAxODYsIDIxNywgMjAwLCAKLSAgICAyNSwgMjU0LCAxNjcsIDIzMSwgMTA4LCAyMTcsIDIwMCwgMjUsIDI1NCwgMTY3LCAyMTcsIDEzNCwgMjE3LCAyMDAsIDI1LCAKLSAgICAyNTQsIDE2NywgMjE3LCAxMzQsIDIxNywgMTE1LCAyNSwgMjU0LCAxNjcsIDIxNiwgMTYxLCAyNDQsIDgzLCAyNSwgMjU0LCAKLSAgICAxNjcsIDIxNiwgMTYxLCAyNDQsIDg0LCAyNTQsIDUwLCAxNywgMjUsIDI1NCwgMTY3LCAyNDEsIDE4NiwgMjQ0LCA4MywgMjUsIAotICAgIDI1NCwgMTY3LCAyMTcsIDEzNCwgMjQ0LCA4MywgMjUsIDI1NCwgMTY3LCAyMTcsIDEzNCwgMTIyLCAyNDAsIDIwMCwgMjUsIAotICAgIDI1NCwgMTY3LCAyMTcsIDEzNCwgMTMzLCAyNDAsIDIwMCwgMjUsIDI1NCwgMTY3LCAyNDUsIDY3LCAyNDQsIDUwLCAyNDAsIAotICAgIDIwMCwgMjUsIDI1NCwgMTY3LCAyMTYsIDE2MSwgMjQ0LCA1MCwgMjQwLCAyMDAsIDI1LCAyNTQsIDE2NywgMjE3LCAxMzQsIAotICAgIDI0NCwgNTAsIDI0MCwgMjAwLCAyNSwgMjU0LCAxNjcsIDI1MCwgMTU5LCAyNDQsIDUwLCAyNDAsIDIwMCwgMjUsIDI1NCwgCi0gICAgMTY3LCAyMzAsIDQsIDI0NCwgNTAsIDI0MCwgMjAwLCAyNSwgMjU0LCAxNjcsIDIxNywgMTM0LCAxMjIsIDIxNywgMTAwLCAKLSAgICAyNSwgMjU0LCAxNjcsIDIxNywgMTM0LCAyNDQsIDUwLCAyMTcsIDEwMCwgMjUsIDI1NCwgMTY3LCAyNDgsIDgsIDI0NCwgNTAsIAotICAgIDIzMCwgMjM0LCAyNSwgMjU0LCAxNjcsIDIxOSwgNTgsIDI0NCwgODQsIDIzMCwgMjM0LCAyNSwgMTIyLCAxNTEsIDUyLCAyNSwgCi0gICAgMTIyLCAxNTEsIDUsIDI1NCwgNTAsIDE3LCAyNSwgMTE3LCAyMTcsIDEyMCwgNTIsIDI1LCAxMzMsIDIyNCwgMTY1LCA1MiwgCi0gICAgMjUsIDIxMywgMzYsIDUyLCAyNSwgMjE4LCAxOSwgNTIsIDI1LCAyNDYsIDU1LCA1MiwgMjUsIDIyNywgMTEwLCA1MiwgMjUsIAotICAgIDExNywgMjI3LCAxMDksIDUyLCAyNSwgMTMzLCAyMjcsIDEwOSwgNTIsIDI1LCAyNDMsIDIzNywgMjI3LCAxMDksIDUyLCAyNSwgCi0gICAgMjQ0LCA1MCwgMjI3LCAxMDksIDUyLCAyNSwgMjMxLCAxMDIsIDUyLCAyNSwgMjMzLCAxNzksIDI1MiwgNDgsIDUyLCAyNSwgCi0gICAgMjMyLCAyMjMsIDUyLCAyNSwgMjI2LCAyNTUsIDUyLCAyNSwgMjEzLCAxNDcsIDUyLCAyNSwgMjUzLCAxNTgsIDUyLCAyNSwgCi0gICAgMjUzLCAxNzEsIDUyLCAyNSwgMjQyLCAxMjAsIDUyLCAyNSwgMjE2LCAxNDQsIDI1MiwgNDgsIDUyLCAyNSwgMjEyLCA4MCwgCi0gICAgNTIsIDIyMywgMTAwLCAyMjEsIDM0LCA1MiwgMjIzLCAxMDAsIDIxNSwgMTU1LCA1MiwgMjIzLCAxMDAsIDIyMSwgNjIsIDUyLCAKLSAgICAyMjMsIDEwMCwgMjIxLCAzMiwgNTIsIDIyMywgMTAwLCAyNDcsIDE2NSwgMjIxLCAzMiwgNTIsIDIyMywgMTAwLCAyMjAsIAotICAgIDk0LCA1MiwgMjIzLCAxMDAsIDI0OCwgNCwgNTIsIDIyMywgMTAwLCAyMjQsIDE1MSwgNTIsIDIyMywgMTAwLCAyMjEsIDUwLCAKLSAgICA1MiwgMjIzLCAxMDAsIDI0NiwgMTUsIDUyLCAyMjMsIDEwMCwgMjUzLCAxNTMsIDUyLCAyMjMsIDEwMCwgMjUwLCAxMDUsIAotICAgIDUyLCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjI2LCA4OCwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDIyNSwgMTU4LCAyNDEsIAotICAgIDIxOSwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDIxNywgMjUyLCAyNDEsIDIxOSwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDI1MCwgCi0gICAgMTc5LCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjUwLCAzOCwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDIxMywgMjA4LCAyMjYsIAotICAgIDE5LCAyNDcsIDE0MywgNSwgMjQxLCAxOTUsIDIyNiwgMTksIDI0NywgMTQzLCA1LCAyNDMsIDYxLCAyMjYsIDE5LCAyNDcsIAotICAgIDE0MywgNSwgMjE3LCA3MCwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDY4LCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjUxLCA5NSwgCi0gICAgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDIyMCwgMjA5LCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjQ5LCAxODEsIDIyNiwgMTksIAotICAgIDI0NywgMTQzLCA1LCAyMzEsIDI0NywgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDIzMSwgMTk5LCAyMjYsIDE5LCAyNDcsIDE0MywgCi0gICAgNSwgMjIyLCAxMzQsIDIyNiwgMTksIDI0NywgMTQzLCA1LCAyMzMsIDksIDIyNiwgMTksIDI0NywgMTQzLCA1LCAyNTEsIAotICAgIDExMywgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDI1MCwgMTYzLCAyMjUsIDE2NywgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDI0NywgCi0gICAgODcsIDIyNiwgMTksIDI0NywgMTQzLCA1LCAyNDksIDE2MSwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDIyMCwgMTUsIDIyNiwgCi0gICAgMTksIDI0NywgMTQzLCA1LCAyNDksIDE2MiwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDI1MSwgMjM5LCAyMjYsIDE5LCAyNDcsIAotICAgIDE0MywgNSwgMjIwLCAxOTYsIDIyNiwgMTksIDI0NywgMTQzLCA1LCAyNDAsIDIzNSwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIAotICAgIDI0MSwgMTYzLCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjUxLCA0MSwgMjMzLCA2MCwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIAotICAgIDI1MCwgMTU2LCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjI0LCA0NSwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDI0NSwgMTg2LCAKLSAgICAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjQ2LCA2MSwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDIxNiwgNjksIDIyNiwgMTksIAotICAgIDI0NywgMTQzLCA1LCAyNTEsIDI0MiwgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDIyNSwgMTY4LCAyMTYsIDE5MywgMjI2LCAxOSwgCi0gICAgMjQ3LCAxNDMsIDUsIDIxNCwgMTQwLCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjI2LCAxNDYsIDIyNiwgMTksIDI0NywgMTQzLCAKLSAgICA1LCAyMjMsIDkyLCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjMyLCAyNTIsIDIyNiwgMTksIDI0NywgMTQzLCA1LCAyMjYsIAotICAgIDIzOSwgMjUyLCAxMDEsIDIyNiwgMTksIDI0NywgMTQzLCA1LCAyNDQsIDE3LCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMjQyLCAKLSAgICAxMTUsIDIyNiwgMTksIDI0NywgMTQzLCA1LCAyMTksIDU5LCAyMjYsIDE5LCAyNDcsIDE0MywgNSwgMywgMjUzLCA4NCwgCi0gICAgMjI2LCAxOSwgMjQ3LCAxNDMsIDUsIDIxNCwgMTYsIDI1MiwgNjcsIDIyNiwgMTksIDI0NywgMTQzLCA1LCAzNywgMjI3LCAKLSAgICAxMTIsIDkwLCAyMzIsIDEyMCwgMSwgNjEsIDIzMiwgMTIwLCAxLCA3NCwgMjMyLCAxMjAsIDEsIDI1MywgNzQsIDIzMiwgCi0gICAgMTIwLCAxLCAyNTEsIDE5NiwgMjMyLCAxMjAsIDEsIDI0MywgMTc3LCAyMzIsIDEyMCwgMSwgMjQ5LCAzLCAyMzIsIDEyMCwgCi0gICAgMSwgNzIsIDIzMiwgMTIwLCAxLCAyMTQsIDgyLCAyMzIsIDEyMCwgMSwgMjEyLCAxNTIsIDIzMiwgMTIwLCAxLCAyMTcsIAotICAgIDE2MywgMjMyLCAxMjAsIDEsIDIzNSwgMTQyLCAyMzIsIDEyMCwgMSwgMjM1LCAyNywgMjMyLCAxMjAsIDEsIDIyNCwgMjQwLCAKLSAgICAyMzIsIDEyMCwgMSwgMTUwLCAyMzIsIDEyMCwgMSwgMTgzLCAyMzIsIDEyMCwgMSwgMjA0LCAyMzIsIDEyMCwgMSwgMjMwLCAKLSAgICAyMzUsIDIzMiwgMTIwLCAxLCAyMjgsIDE5OSwgMjMyLCAxMjAsIDEsIDY5LCAyMzIsIDEyMCwgMSwgMjI2LCAyMjksIDIzMiwgCi0gICAgMTIwLCAxLCAyMzQsIDU2LCAyMzIsIDEyMCwgMSwgMTQ5LCAyMzIsIDEyMCwgMSwgMTk3LCAyMzIsIDEyMCwgMSwgMjE4LCAKLSAgICA5OSwgMjMyLCAxMjAsIDEsIDIxNiwgMTE4LCAyMzIsIDEyMCwgMSwgMjU0LCAzMiwgMjMyLCAxMjAsIDEsIDI0NSwgMTA4LCAKLSAgICAyMzIsIDEyMCwgMSwgMjQyLCA0MSwgMjMyLCAxMjAsIDEsIDIxMywgMTY2LCAyNTAsIDE2OSwgMSwgNjEsIDI1MCwgMTY5LCAKLSAgICAxLCAyMjYsIDIxNSwgMjUwLCAxNjksIDEsIDI0OSwgMywgMjUwLCAxNjksIDEsIDE1MCwgMjUwLCAxNjksIDEsIDIxNSwgOTAsIAotICAgIDI1MCwgMTY5LCAxLCAxNDksIDI1MCwgMTY5LCAxLCAyMzMsIDg2LCAyNTAsIDE2OSwgMSwgMjU0LCAyMzQsIDI1MCwgMTY5LCAKLSAgICAxLCAyMjQsIDI0MCwgMjUwLCAxNjksIDEsIDI1MywgNzQsIDI1MCwgMTY5LCAxLCAxODMsIDI1MCwgMTY5LCAxLCA3NSwgCi0gICAgMjUwLCAxNjksIDEsIDI0OCwgMTY2LCAyNTAsIDE2OSwgMSwgMjE4LCA5OSwgMjUwLCAxNjksIDEsIDIyMSwgMjYsIDI1MCwgCi0gICAgMTY5LCAxLCAyMjEsIDI1LCAyNTAsIDE2OSwgMSwgMTk3LCAyNTAsIDE2OSwgMSwgMjUwLCAyNTEsIDI1MCwgMTY5LCAxLCAKLSAgICA2OSwgMjUwLCAxNjksIDEsIDIyOCwgMTk5LCAyNTAsIDE2OSwgMSwgMjEzLCAxNjYsIDI1MCwgMTY5LCAxLCAyMDQsIDI1MCwgCi0gICAgMTY5LCAxLCAyMTYsIDExNywgMjUwLCAxNjksIDEsIDIyNiwgMjI5LCAyNTAsIDE2OSwgMSwgMjE5LCAxNTgsIDI1MCwgMTY5LCAKLSAgICAxLCA3MiwgMjUwLCAxNjksIDEsIDc0LCAyNTAsIDE2OSwgMSwgMjE1LCA4NywgMjUwLCAxNjksIDEsIDIzNSwgMjcsIDI1MCwgCi0gICAgMTY5LCAxLCAyMzUsIDE4LCAyNTAsIDE2OSwgMSwgMjI5LCAyMzAsIDI1MCwgMTY5LCAxLCAyMTUsIDkyLCAyNTAsIDE2OSwgCi0gICAgMSwgMjQzLCAxNzcsIDI1MCwgMTY5LCAxLCAyNDMsIDExMiwgMjUwLCAxNjksIDEsIDIxOSwgMTA3LCAyNTAsIDE2OSwgMSwgCi0gICAgMjE5LCAxMDYsIDI1MCwgMTY5LCAxLCAyMjksIDE2MSwgMjUwLCAxNjksIDEsIDIzNiwgMjgsIDI1MCwgMTY5LCAxLCAyNTAsIAotICAgIDI1MCwgMjUwLCAxNjksIDEsIDIxNiwgMTE4LCAyNTAsIDE2OSwgMSwgMjE1LCA4OSwgMjUwLCAxNjksIDEsIDIyMywgODIsIAotICAgIDI1MCwgMTY5LCAxLCAyMzEsIDE5MiwgMjUwLCAxNjksIDEsIDIzMSwgMTkxLCAyNTAsIDE2OSwgMSwgMjMxLCAxOTAsIDI1MCwgCi0gICAgMTY5LCAxLCAyMzEsIDE4OSwgMjUwLCAxNjksIDEsIDIzMywgODUsIDI1MCwgMTY5LCAxLCAyNDUsIDE5MCwgMjUwLCAxNjksIAotICAgIDEsIDIxNSwgODgsIDUzLCAzMiwgMSwgNjEsIDUzLCAzMiwgMSwgMjUxLCAyNTEsIDUzLCAzMiwgMSwgMjM0LCAxODgsIDUzLCAKLSAgICAzMiwgMSwgMjQ4LCA0MSwgNTMsIDMyLCAxLCA3NCwgNTMsIDMyLCAxLCAyMTQsIDIzMiwgNTMsIDMyLCAxLCAyMTIsIDg3LCAKLSAgICA1MywgMzIsIDEsIDI0MSwgMjIyLCA1MywgMzIsIDEsIDIxNywgMTQ4LCA1MywgMzIsIDEsIDcyLCA1MywgMzIsIDEsIDE4MSwgCi0gICAgNTMsIDMyLCAxLCAyNDUsIDEzMSwgNTMsIDMyLCAxLCAyNDUsIDExNywgNTMsIDMyLCAxLCAyNDUsIDEwOCwgNTMsIDMyLCAxLCAKLSAgICAyNDUsIDQwLCA1MywgMzIsIDEsIDc1LCA1MywgMzIsIDEsIDIyNiwgOTYsIDUzLCAzMiwgMSwgMjIwLCAyNDMsIDUzLCAzMiwgCi0gICAgMSwgMjMzLCAyMzgsIDUzLCAzMiwgMSwgMjQ1LCA1NSwgNTMsIDMyLCAxLCAyNDUsIDQ1LCA1MywgMzIsIDEsIDIxNywgMjI5LCAKLSAgICA1MywgMzIsIDEsIDY5LCA1MywgMzIsIDEsIDI0NSwgMTM0LCA1MywgMzIsIDEsIDIyNiwgMTIsIDUzLCAzMiwgMSwgMjM0LCAKLSAgICAxMjUsIDUzLCAzMiwgMSwgMjQ1LCAxNTksIDUzLCAzMiwgMSwgMjQ1LCA0NywgNTMsIDMyLCAxLCAyNTAsIDY3LCA1MywgMzIsIAotICAgIDEsIDIzNiwgMjgsIDUzLCAzMiwgMSwgMjE1LCA5MiwgNTMsIDMyLCAyMjgsIDU0LCAxMTYsIDUzLCAzMiwgMjI4LCA1NCwgCi0gICAgMTgwLCA1MywgMzIsIDIyOCwgNTQsIDIxNywgMjAwLCA1MywgMzIsIDIyOCwgNTQsIDI0NCwgODMsIDI0MiwgMTI5LCAxLCAKLSAgICAyNTQsIDExMSwgMjQyLCAxMjksIDEsIDI1MiwgODIsIDI0MiwgMTI5LCAxLCAyNDIsIDE4NywgMjQyLCAxMjksIDEsIDI0OCwgCi0gICAgMTQ4LCAyNDIsIDEyOSwgMSwgMjU0LCAxMDcsIDI0MiwgMTI5LCAxLCAyMjQsIDIyMywgMjQyLCAxMjksIDEsIDIzNSwgMTUzLCAKLSAgICAyNDIsIDEyOSwgMSwgMjQyLCAyMCwgMjQyLCAxMjksIDEsIDIxNywgMTExLCAyNDIsIDEyOSwgMSwgMjQ1LCAxNDAsIDI0MiwgCi0gICAgMTI5LCAxLCAyMzMsIDIxMSwgMjQyLCAxMjksIDEsIDIzMywgMTM2LCAyNDIsIDEyOSwgMSwgMjMxLCAyNDIsIDI0MiwgMTI5LCAKLSAgICAxLCAyMzAsIDYsIDI0MiwgMTI5LCAxLCAyMzUsIDEyMCwgMjQyLCAxMjksIDEsIDIxNSwgMTA3LCAyNDIsIDEyOSwgMSwgCi0gICAgMjI2LCAxOTYsIDI0MiwgMTI5LCAxLCAyMjksIDI2LCAyNDIsIDEyOSwgMSwgMjI0LCA1NiwgMjQyLCAxMjksIDEsIDIyMiwgCi0gICAgMTM2LCAyNDIsIDEyOSwgMSwgMjE3LCAyMTIsIDI0MiwgMTI5LCAxLCAyMTMsIDIxOSwgMjQyLCAxMjksIDEsIDI0NCwgMTQ2LCAKLSAgICAyNDIsIDEyOSwgMSwgMjM2LCAzMiwgMjQyLCAxMjksIDEsIDI0MCwgMTkxLCAyNDIsIDEyOSwgMSwgMjI3LCA3LCAyNDIsIAotICAgIDEyOSwgMSwgMjI5LCAzMSwgMjQwLCAyMDAsIDIxNSwgMTc5LCAxLCAyNTQsIDU2LCAyMTUsIDE3OSwgMSwgMjUxLCAyMDMsIAotICAgIDIxNSwgMTc5LCAxLCAyNDMsIDg0LCAyMTUsIDE3OSwgMSwgMjM0LCAxMzgsIDIxNSwgMTc5LCAxLCAyNDgsIDUsIDIxNSwgCi0gICAgMTc5LCAxLCAyNDEsIDU0LCAyMTUsIDE3OSwgMSwgMjEzLCAyMTQsIDIxNSwgMTc5LCAxLCAyMTIsIDc4LCAyMTUsIDE3OSwgCi0gICAgMSwgMjQwLCAyMjgsIDIxNSwgMTc5LCAxLCAyMTcsIDE4MywgMjE1LCAxNzksIDEsIDIxMiwgMjI0LCAyMTUsIDE3OSwgMSwgCi0gICAgMjM0LCAyNTQsIDIxNSwgMTc5LCAxLCAyMjAsIDIwMCwgMjE1LCAxNzksIDEsIDIzMywgMTIyLCAyMTUsIDE3OSwgMSwgMjMxLCAKLSAgICAxMjksIDIxNSwgMTc5LCAxLCAyNDcsIDIyOSwgMjE1LCAxNzksIDEsIDIyOCwgNTAsIDIxNSwgMTc5LCAxLCAyMTIsIDgsIAotICAgIDIxNSwgMTc5LCAxLCAyMjIsIDE2MywgMjE1LCAxNzksIDEsIDI1NCwgMTAzLCAyMTUsIDE3OSwgMSwgMjI1LCAzNSwgMjE1LCAKLSAgICAxNzksIDEsIDIyMiwgMTk0LCAyMTUsIDE3OSwgMSwgMjI0LCAxODAsIDIxNSwgMTc5LCAxLCAyMjQsIDM2LCAyMTUsIDE3OSwgCi0gICAgMSwgMjE3LCAxNTIsIDIxNSwgMTc5LCAxLCAyNDIsIDIyMCwgMjE1LCAxNzksIDEsIDEwOCwgMjE1LCAxNzksIDEsIDcyLCAKLSAgICAyMTUsIDE3OSwgMSwgNjksIDIxNSwgMTc5LCAxLCAyMTksIDExNywgMjE1LCAxNzksIDIxMywgMTk2LCAyNDcsIDEyNCwgNTMsIAotICAgIDIyNiwgNDUsIDUsIDYxLCA1MywgMjI2LCA0NSwgNSwgNzIsIDUzLCAyMjYsIDQ1LCA1LCA2OSwgNTMsIDIyNiwgNDUsIDUsIAotICAgIDE4MSwgNTMsIDIyNiwgNDUsIDUsIDIzMywgMjM4LCA1MywgMjI2LCA0NSwgNSwgMjQzLCAxMTAsIDUzLCAyMjYsIDQ1LCA1LCAKLSAgICAyNDIsIDkyLCA1MywgMjI2LCA0NSwgNSwgMjEzLCAxNTMsIDUzLCAyMjYsIDQ1LCA1LCAyNTAsIDIxOSwgNTMsIDIyNiwgNDUsIAotICAgIDUsIDIzNSwgMTM5LCA1MywgMjI2LCA0NSwgNSwgMjM1LCAxMTAsIDUzLCAyMjYsIDQ1LCA1LCAyMTgsIDUyLCA1MywgMjI2LCAKLSAgICA0NSwgNSwgMjE2LCA4MiwgNTMsIDIyNiwgNDUsIDUsIDI0OCwgMTY0LCA1MywgMjI2LCA0NSwgNSwgMjQ3LCAyMTEsIDUzLCAKLSAgICAyMjYsIDQ1LCA1LCAyNDYsIDMzLCA1MywgMjI2LCA0NSwgNSwgMjE3LCAxNjEsIDUzLCAyMjYsIDQ1LCA1LCAxOTMsIDUzLCAKLSAgICAyMjYsIDQ1LCA1LCAyNTIsIDEwNywgNTMsIDIyNiwgNDUsIDUsIDI0NCwgMTY0LCA1MywgMjI2LCA0NSwgNSwgMjA1LCA1MywgCi0gICAgMjI2LCA0NSwgNSwgMjI4LCA5MiwgNTMsIDIyNiwgNDUsIDUsIDE4OCwgNTMsIDIyNiwgNDUsIDUsIDIzMSwgNDIsIDUzLCAKLSAgICAyMjYsIDQ1LCA1LCAyMzAsIDE3MiwgNTMsIDIyNiwgNDUsIDUsIDE4NiwgNTMsIDIyNiwgNDUsIDUsIDIxNSwgMSwgNTMsIAotICAgIDIyNiwgNDUsIDUsIDIxNCwgMTU0LCA1MywgMjI2LCA0NSwgNSwgMjAzLCA1MywgMjI2LCA0NSwgNSwgMjIzLCA1MSwgNTMsIAotICAgIDIyNiwgNDUsIDUsIDIzMywgMTU3LCA1MywgMjI2LCA0NSwgNSwgMjIyLCAyMDIsIDUzLCAyMjYsIDQ1LCA1LCAyMTIsIDEwOSwgCi0gICAgNTMsIDIyNiwgNDUsIDUsIDIyMSwgMjQsIDUzLCAyMjYsIDQ1LCA1LCAyMTksIDE1NywgNTMsIDIyNiwgNDUsIDUsIDE1OSwgCi0gICAgNTMsIDIyNiwgNDUsIDUsIDI1MywgMTAyLCA1MywgMjI2LCA0NSwgNSwgMjUzLCAxMDEsIDUzLCAyMjYsIDQ1LCA1LCAyNTMsIAotICAgIDEwMCwgNTMsIDIyNiwgNDUsIDUsIDIxMywgMTMwLCA1MywgMjI2LCA0NSwgNSwgMjQ4LCAxNDUsIDUzLCAyMjYsIDQ1LCA1LCAKLSAgICAyNDgsIDE0NCwgNTMsIDIyNiwgNDUsIDUsIDI1MiwgODgsIDUzLCAyMjYsIDQ1LCA1LCAyNTEsIDE0LCA1MywgMjI2LCA0NSwgCi0gICAgMjEzLCAxOTYsIDI0NywgMTI0LCA1MywgMjI2LCA0NSwgNTAsIDExNiwgNTMsIDIyNiwgNDUsIDUwLCAxMDksIDUzLCAyMjYsIAotICAgIDQ1LCA1MCwgMjE3LCAyMDAsIDUzLCAyMjYsIDQ1LCA1MCwgMjE2LCAzOCwgNTMsIDIyNiwgNDUsIDUwLCAyNDAsIDIwMCwgCi0gICAgMTcxLCA2LCAxLCAxODQsIDcyLCAxNzEsIDYsIDEsIDE4NCwgNzQsIDE3MSwgNiwgMSwgMTg0LCA2MSwgMTcxLCA2LCAxLCAKLSAgICAxODQsIDI1NCwgMTE0LCAxNzEsIDYsIDEsIDE4NCwgNzUsIDE3MSwgNiwgMSwgMTg0LCAyMjcsIDQ5LCAxNzEsIDYsIDEsIAotICAgIDIyMCwgMTc1LCA3MiwgMTcxLCA2LCAxLCAyMjAsIDE3NSwgNzQsIDE3MSwgNiwgMSwgMjIwLCAxNzUsIDYxLCAxNzEsIDYsIAotICAgIDEsIDIyMCwgMTc1LCAyNTQsIDExNCwgMTcxLCA2LCAxLCAyMjAsIDE3NSwgNzUsIDE3MSwgNiwgMSwgMjIwLCAxNzUsIDIyNywgCi0gICAgNDksIDE3MSwgNiwgMSwgMjUzLCA4MywgMTcxLCA2LCAxLCAyMjYsIDI0MCwgMTcxLCA2LCAxLCAyMTMsIDE4MywgMTcxLCA2LCAKLSAgICAxLCAyMTMsIDM1LCAxNzEsIDYsIDEsIDI0MiwgNDEsIDE3MSwgNiwgMSwgMjI2LCA4NiwgMTcxLCA2LCAxLCAyNTEsIDI0MiwgCi0gICAgMTcxLCA2LCAxLCAyMTcsIDIxOSwgMTcxLCA2LCAxLCAyNDgsIDI4LCAxNzEsIDYsIDEsIDI1MCwgNjQsIDE3MSwgNiwgMSwgCi0gICAgMjM1LCAxMjUsIDE3MSwgNiwgMSwgMjM0LCAxOTUsIDE3MSwgNiwgMSwgMjQzLCA1OSwgMTcxLCA2LCAxLCAyNDUsIDE1OSwgCi0gICAgMTcxLCA2LCAxLCAyMTQsIDIyNywgMTcxLCA2LCAxLCAyNDUsIDI1LCAxNzEsIDYsIDEsIDIxNywgMTQ3LCAxNzEsIDYsIDEsIAotICAgIDI0NSwgNDUsIDE3MSwgNiwgMSwgMjEyLCA4NSwgMTcxLCA2LCAxLCAyNDUsIDQwLCAxNzEsIDYsIDEsIDIxMiwgNjYsIDE3MSwgCi0gICAgNiwgMSwgMjQ1LCA1NSwgMTcxLCA2LCAxLCAyNDUsIDEzMSwgMTcxLCA2LCAxLCAyNDUsIDExNywgMTcxLCA2LCAxLCAyNDUsIAotICAgIDEwOCwgMTcxLCA2LCAxLCAyNDUsIDk2LCAxNzEsIDYsIDEsIDIyNywgODUsIDE3MSwgNiwgMSwgMjQ1LCA1LCAxNzEsIDMsIAotICAgIDEsIDE4NCwgNzIsIDE3MSwgMywgMSwgMTg0LCA3NCwgMTcxLCAzLCAxLCAxODQsIDYxLCAxNzEsIDMsIDEsIDE4NCwgMjU0LCAKLSAgICAxMTQsIDE3MSwgMywgMSwgMTg0LCA3NSwgMTcxLCAzLCAxLCAxODQsIDIyNywgNDksIDE3MSwgMywgMSwgMjIwLCAxNzUsIAotICAgIDcyLCAxNzEsIDMsIDEsIDIyMCwgMTc1LCA3NCwgMTcxLCAzLCAxLCAyMjAsIDE3NSwgNjEsIDE3MSwgMywgMSwgMjIwLCAKLSAgICAxNzUsIDI1NCwgMTE0LCAxNzEsIDMsIDEsIDIyMCwgMTc1LCA3NSwgMTcxLCAzLCAxLCAyMjAsIDE3NSwgMjI3LCA0OSwgCi0gICAgMTcxLCAzLCAxLCAyNTMsIDgzLCAxNzEsIDMsIDEsIDIyNiwgMjQwLCAxNzEsIDMsIDEsIDIxMywgMTgzLCAxNzEsIDMsIDEsIAotICAgIDIxMywgMzUsIDE3MSwgMywgMSwgMjQyLCA0MSwgMTcxLCAzLCAxLCAyMjYsIDg2LCAxNzEsIDMsIDEsIDI1MSwgMjQyLCAKLSAgICAxNzEsIDMsIDEsIDIxNywgMjE5LCAxNzEsIDMsIDEsIDI0OCwgMjgsIDE3MSwgMywgMSwgMjUwLCA2NCwgMTcxLCAzLCAxLCAKLSAgICAyMzUsIDEyNSwgMTcxLCAzLCAxLCAyMzQsIDE5NSwgMTcxLCAzLCAxLCAyNDMsIDU5LCAxNzEsIDMsIDEsIDI0NSwgMTU5LCAKLSAgICAxNzEsIDMsIDEsIDIxNCwgMjI3LCAxNzEsIDMsIDEsIDI0NSwgMjUsIDE3MSwgMywgMSwgMjE3LCAxNDcsIDE3MSwgMywgMSwgCi0gICAgMjQ1LCA0NSwgMTcxLCAzLCAxLCAyMTIsIDg1LCAxNzEsIDMsIDEsIDI0NSwgNDAsIDE3MSwgMywgMSwgMjEyLCA2NiwgMTcxLCAKLSAgICAzLCAxLCAyNDUsIDU1LCAxNzEsIDMsIDEsIDI0NSwgMTMxLCAxNzEsIDMsIDEsIDI0NSwgMTE3LCAxNzEsIDMsIDEsIDI0NSwgCi0gICAgMTA4LCAxNzEsIDMsIDEsIDI0NSwgOTYsIDE3MSwgMywgMSwgMjI3LCA4NSwgMTcxLCAzLCAxLCAyNDUsIDUsIDIyMCwgMjQ5LCAKLSAgICAxLCAyMjYsIDg0LCAyMjAsIDI0OSwgMSwgMjE2LCAyMTgsIDIyMCwgMjQ5LCAxLCAyMzQsIDEwMCwgMjIwLCAyNDksIDEsIAotICAgIDI0NCwgMTE2LCAyMjAsIDI0OSwgMSwgMjE3LCAxMjUsIDIyMCwgMjQ5LCAxLCAyMTksIDI0MiwgMjIwLCAyNDksIDEsIDIxOCwgCi0gICAgMjE0LCAyMjAsIDI0OSwgMSwgMjQ5LCAyNTQsIDIyMCwgMjQ5LCAxLCAyMTMsIDM3LCAyMjAsIDI0OSwgMSwgMjQwLCAxOTksIAotICAgIDIyMCwgMjQ5LCAxLCAyNTEsIDE4MywgMjIwLCAyNDksIDEsIDI0OCwgNDAsIDIyMCwgMjQ5LCAxLCAyNDMsIDk2LCAyMjAsIAotICAgIDI0OSwgMSwgMjE0LCAxMDQsIDIyMCwgMjQ5LCAxLCAyMTcsIDEyOSwgMjIwLCAyNDksIDEsIDIxMiwgMTQsIDIyMCwgMjQ5LCAKLSAgICAxLCAyMzEsIDE1NCwgMjIwLCAyNDksIDEsIDIzNSwgNTIsIDIyMCwgMjQ5LCAxLCAyMTMsIDIxMiwgMjIwLCAyNDksIDEsIAotICAgIDI0MiwgMjksIDIyMCwgMjQ5LCAxLCAyMzIsIDE5NSwgMjIwLCAyNDksIDEsIDIzMSwgMiwgMjIwLCAyNDksIDEsIDIzNiwgCi0gICAgMzUsIDIyMCwgMjQ5LCAxLCAyNDUsIDE1OCwgMjIwLCAyNDksIDEsIDI1MywgMTQ2LCAyMjAsIDI0OSwgMSwgMjU0LCAxNTIsIAotICAgIDIyMCwgMjQ5LCAxLCAyMjcsIDYyLCAyMjAsIDI0OSwgMSwgMjEzLCAxOTksIDIyMCwgMjQ5LCAxLCAyMjYsIDI1NCwgMjIwLCAKLSAgICAyNDksIDEsIDI1NCwgMTE0LCAyMjAsIDI0OSwgMSwgMjIzLCAxMDksIDIyMCwgMjQ5LCAxLCAyMjgsIDUwLCAyMjAsIDI0OSwgCi0gICAgMSwgMjQ1LCAxNzMsIDIyMCwgMjQ5LCAxLCAyNTQsIDExOSwgMjIwLCAyNDksIDEsIDI0MCwgMTA0LCAyMjAsIDI0OSwgMSwgCi0gICAgMjE1LCAxMzQsIDIyMCwgMjQ5LCAxLCAyMjcsIDExOCwgMjIwLCAyNDksIDEsIDIyNywgNDIsIDIyMCwgMjQ5LCAxLCAyMjcsIAotICAgIDg0LCAyMjAsIDI0OSwgMSwgMjUzLCA4NiwgMjIwLCAyNDksIDEsIDI1MywgMTg5LCAyMjAsIDI0OSwgMSwgMjI3LCAyNCwgCi0gICAgMjIwLCAyNDksIDEsIDI1NCwgMTAwLCAyMjAsIDI0OSwgMSwgMjQ1LCA0OSwgMjIwLCAyNDksIDEsIDI1MywgMTY4LCAyMjAsIAotICAgIDI0OSwgMSwgMjQ1LCAxODMsIDIyMCwgMjQ5LCAxLCAyNDAsIDExMCwgMjIwLCAyNDksIDEsIDIxMywgNCwgMjI3LCA5LCAxLCAKLSAgICAyNTQsIDc4LCAyMjcsIDksIDEsIDI1MiwgMTA3LCAyMjcsIDksIDEsIDIxOCwgNTIsIDIyNywgOSwgMSwgMjM1LCAxMzksIAotICAgIDIyNywgOSwgMSwgMjEzLCAxNTMsIDIyNywgOSwgMSwgMjM0LCAxMzgsIDIyNywgOSwgMSwgMjQ4LCAyNywgMjI3LCA5LCAxLCAKLSAgICAyMDMsIDIyNywgOSwgMSwgMjIyLCAyMDIsIDIyNywgOSwgMSwgMjIwLCAyMDYsIDIyNywgOSwgMSwgMjQ3LCAyMzIsIDIyNywgCi0gICAgOSwgMSwgMjUwLCAxNDgsIDIyNywgOSwgMSwgMjQzLCAxMTAsIDIyNywgOSwgMSwgMjQ0LCAxNjQsIDIyNywgOSwgMSwgMjI0LCAKLSAgICAyMzAsIDIyNywgOSwgMSwgMjM1LCAxMywgMjI3LCA5LCAxLCAyMzMsIDE1MiwgMjI3LCA5LCAxLCAyMzEsIDEzLCAyMjcsIDksIAotICAgIDEsIDIyOCwgMzUsIDIyNywgOSwgMSwgMjE0LCAxNCwgMjI3LCA5LCAxLCAxNTksIDIyNywgOSwgMSwgMTg2LCAyMjcsIDksIAotICAgIDEsIDYxLCAyMjcsIDksIDEsIDc0LCAyMjcsIDksIDEsIDcyLCAyMjcsIDksIDEsIDc1LCAyMjcsIDksIDEsIDY5LCAyMjcsIAotICAgIDksIDEsIDI1NCwgMjMyLCAyMjcsIDksIDEsIDI0NSwgMTY1LCAyMjcsIDksIDEsIDIyNywgNDksIDIyNywgOSwgMjEsIDIxMiwgCi0gICAgNzksIDIyNywgOSwgMjEsIDExNiwgMjI3LCA5LCAyMSwgMTA5LCAyMjcsIDksIDIxLCAxNjYsIDIyNywgOSwgMjEsIDE2MywgCi0gICAgMjI3LCA5LCAyMSwgMTgwLCAyMjcsIDksIDIxLCAxODksIDIyNywgOSwgMjEsIDE5OCwgMjI3LCA5LCAyMSwgMTk1LCAyMjcsIAotICAgIDksIDIxLCAyMDAsIDI0OSwgMTAsIDQsIDYxLCAyNDksIDEwLCA0LCA3NCwgMjQ5LCAxMCwgNCwgNzIsIDI0OSwgMTAsIDQsIAotICAgIDc1LCAyNDksIDEwLCA0LCA2OSwgMjQ5LCAxMCwgNCwgMjM1LCAxMzksIDI0OSwgMTAsIDQsIDIzNSwgNzEsIDI0OSwgMTAsIAotICAgIDQsIDE4MSwgMjQ5LCAxMCwgNCwgMjM0LCAxODgsIDI0OSwgMTAsIDQsIDIzNCwgMTAxLCAyNDksIDEwLCA0LCAyMzQsIDM3LCAKLSAgICAyNDksIDEwLCA0LCAyMzMsIDIzOCwgMjQ5LCAxMCwgNCwgMjMzLCAxNTcsIDI0OSwgMTAsIDQsIDIzMywgODIsIDI0OSwgMTAsIAotICAgIDQsIDIzMywgMTMsIDI0OSwgMTAsIDQsIDIzMiwgMjA4LCAyNDksIDEwLCA0LCAyMzIsIDE1NiwgMjQ5LCAxMCwgNCwgMTg4LCAKLSAgICAyNDksIDEwLCA0LCAyMzEsIDE1NiwgMjQ5LCAxMCwgNCwgMjMxLCA0MiwgMjQ5LCAxMCwgNCwgMjMwLCAyMzEsIDI0OSwgMTAsIAotICAgIDQsIDIzMCwgMTcyLCAyNDksIDEwLCA0LCAyMDUsIDI0OSwgMTAsIDQsIDIyOSwgMTg3LCAyNDksIDEwLCA0LCAyMjksIDY0LCAKLSAgICAyNDksIDEwLCA0LCAyMjgsIDE4NSwgMjQ5LCAxMCwgNCwgMjI4LCA5MiwgMjQ5LCAxMCwgNCwgMTkzLCAyNDksIDEwLCA0LCAKLSAgICAyMjYsIDk2LCAyNDksIDEwLCA0LCAyMjUsIDI0MCwgMjQ5LCAxMCwgNCwgMjI1LCAxNTAsIDI0OSwgMTAsIDQsIDIyNSwgMzUsIAotICAgIDI0OSwgMTAsIDQsIDIwMywgMjQ5LCAxMCwgNCwgMjI0LCAyMSwgMjQ5LCAxMCwgNCwgMjIzLCAxODgsIDI0OSwgMTAsIDQsIAotICAgIDIyMywgMTEyLCAyNDksIDEwLCA0LCAyMjMsIDUxLCAyNDksIDEwLCA0LCAyMjIsIDIwMiwgMjQ5LCAxMCwgNCwgMjIyLCAKLSAgICAxMDAsIDI0OSwgMTAsIDQsIDIyMCwgMTE3LCAyNDksIDEwLCA0LCAyMTksIDI0MiwgMjQ5LCAxMCwgNCwgMjE5LCAyNywgCi0gICAgMjQ5LCAxMCwgNCwgMjE4LCA1MiwgMjQ5LCAxMCwgNCwgMjE3LCAyMjksIDI0OSwgMTAsIDQsIDIxNywgNzEsIDI0OSwgMTAsIAotICAgIDQsIDEwOCwgMjQ5LCAxMCwgNCwgMjE2LCA4MiwgMjQ5LCAxMCwgNCwgMjE0LCA0OSwgMjQ5LCAxMCwgNCwgMjE0LCA2LCAKLSAgICAyNDksIDEwLCA0LCAyMTMsIDIzNSwgMjQ5LCAxMCwgNCwgMjEzLCAyMTQsIDI0OSwgMTAsIDQsIDIxMywgMTUzLCAyNDksIAotICAgIDEwLCA0LCAyMTMsIDE1MCwgMjQ5LCAxMCwgNCwgMjEyLCAxMDksIDI0OSwgMTAsIDQsIDIxMiwgMTYsIDIzNSwgMjUzLCAKLSAgICAyNTMsIDE5NywgMSwgMjU0LCA3NiwgMjM1LCAyNTMsIDI1MywgMTk3LCAxLCAyNTEsIDIwMiwgMjM1LCAyNTMsIDI1MywgCi0gICAgMTk3LCAxLCAyNDIsIDE3NywgMjM1LCAyNTMsIDI1MywgMTk3LCAxLCAyNDgsIDEzMywgMjM1LCAyNTMsIDI1MywgMTk3LCAxLCAKLSAgICAyNDEsIDIyMiwgMjM1LCAyNTMsIDI1MywgMTk3LCAxLCAyMTQsIDE0LCAyMzUsIDI1MywgMjUzLCAxOTcsIDEsIDIxMiwgOTAsIAotICAgIDIzNSwgMjUzLCAyNTMsIDE5NywgMSwgMjQxLCAxODAsIDIzNSwgMjUzLCAyNTMsIDE5NywgMSwgMjE3LCAxNzksIDIzNSwgCi0gICAgMjUzLCAyNTMsIDE5NywgMSwgMjEyLCAyMjMsIDIzNSwgMjUzLCAyNTMsIDE5NywgMSwgMjM0LCAyMzAsIDIzNSwgMjUzLCAKLSAgICAyNTMsIDE5NywgMSwgMjMzLCAxMTcsIDIzNSwgMjUzLCAyNTMsIDE5NywgMSwgMjMxLCAxMjksIDIzNSwgMjUzLCAyNTMsIAotICAgIDE5NywgMSwgMjI4LCA1MCwgMjM1LCAyNTMsIDI1MywgMTk3LCAxLCAyMjIsIDE2NCwgMjM1LCAyNTMsIDI1MywgMTk3LCAxLCAKLSAgICAyNTMsIDc4LCAyMzUsIDI1MywgMjUzLCAxOTcsIDEsIDIyNiwgOTYsIDIzNSwgMjUzLCAyNTMsIDE5NywgMSwgMjIyLCAxOTMsIAotICAgIDIzNSwgMjUzLCAyNTMsIDE5NywgMSwgMjI0LCAxNzksIDIzNSwgMjUzLCAyNTMsIDE5NywgMSwgMjIzLCAyMTksIDIzNSwgCi0gICAgMjUzLCAyNTMsIDE5NywgMSwgMjIwLCAyMDAsIDIzNSwgMjUzLCAyNTMsIDE5NywgMSwgMjE3LCAyNDMsIDIzNSwgMjUzLCAKLSAgICAyNTMsIDE5NywgMjIyLCA5MiwgNTIsIDIzNSwgMjUzLCAyNTMsIDE5NywgNTAsIDExNiwgMjM1LCAyNTMsIDI1MywgMTk3LCAKLSAgICA1MCwgMTA5LCAyMzUsIDI1MywgMjUzLCAxOTcsIDUwLCAxNjYsIDIzNSwgMjUzLCAyNTMsIDE5NywgNTAsIDIxNywgMjAwLCAKLSAgICAyMzUsIDI1MywgMjUzLCAxOTcsIDUwLCAyMTYsIDM4LCAyMzUsIDI1MywgMjUzLCAxOTcsIDUwLCAxMjIsIDI0MCwgMjAwLCAKLSAgICAyMzUsIDI1MywgMjUzLCAxOTcsIDUwLCAxMjIsIDIxNywgMTAwLCAyMzUsIDI1MywgMjUzLCAxOTcsIDUwLCAyMTcsIDIwMSwgCi0gICAgMjE3LCAxMDAsIDIyNSwgMjUxLCAxLCAyNTQsIDc0LCAyMjUsIDI1MSwgMSwgMjUxLCAyMDUsIDIyNSwgMjUxLCAxLCAyNDMsIAotICAgIDg1LCAyMjUsIDI1MSwgMSwgMjQ4LCA3LCAyMjUsIDI1MSwgMSwgMjQxLCAyMjIsIDIyNSwgMjUxLCAxLCAyMTQsIDIxLCAKLSAgICAyMjUsIDI1MSwgMSwgMjEyLCAxMDMsIDIyNSwgMjUxLCAxLCAyNDEsIDE4MiwgMjI1LCAyNTEsIDEsIDIxNywgMTgzLCAyMjUsIAotICAgIDI1MSwgMSwgMjEyLCAyMjQsIDIyNSwgMjUxLCAxLCAyMzQsIDI1NCwgMjI1LCAyNTEsIDEsIDIzMywgMTIzLCAyMjUsIDI1MSwgCi0gICAgMSwgMjMxLCAxMjksIDIyNSwgMjUxLCAxLCAyMjgsIDUwLCAyMjUsIDI1MSwgMSwgMjIxLCA2NCwgMjI1LCAyNTEsIDEsIAotICAgIDI1NCwgMTAzLCAyMjUsIDI1MSwgMSwgMjI2LCA5NiwgMjI1LCAyNTEsIDEsIDIyMiwgMTk0LCAyMjUsIDI1MSwgMSwgMjI0LCAKLSAgICAxODQsIDIyNSwgMjUxLCAxLCAyMjMsIDkxLCAyMjUsIDI1MSwgMSwgMjIwLCAyMDAsIDIyNSwgMjUxLCAxLCAyMTcsIDI0OCwgCi0gICAgMjI1LCAyNTEsIDUwLCAxMTYsIDIyNSwgMjUxLCA1MCwgMjE3LCAyMDAsIDIyNSwgMjUxLCA1MCwgMjE2LCAzOCwgMjI1LCAKLSAgICAyNTEsIDUwLCAxMjIsIDI0MCwgMjAwLCAyMjUsIDI1MSwgNTAsIDEwOSwgMjI1LCAyNTEsIDUwLCAxNjYsIDIyNSwgMjUxLCAKLSAgICAyMTMsIDE5NiwgMjIxLCA1NywgMjMyLCAxMTksIDEsIDYxLCAyMzIsIDExOSwgMSwgMjUzLCA3NCwgMjMyLCAxMTksIDEsIAotICAgIDI0MywgMTc3LCAyMzIsIDExOSwgMSwgMjQ5LCAzLCAyMzIsIDExOSwgMSwgNzQsIDIzMiwgMTE5LCAxLCAyMTUsIDc5LCAKLSAgICAyMzIsIDExOSwgMSwgNzIsIDIzMiwgMTE5LCAxLCAyMTMsIDEwNSwgMjMyLCAxMTksIDEsIDIzNSwgMjcsIDIzMiwgMTE5LCAKLSAgICAxLCAxNTAsIDIzMiwgMTE5LCAxLCAxODMsIDIzMiwgMTE5LCAxLCAyMDQsIDIzMiwgMTE5LCAxLCA3NSwgMjMyLCAxMTksIDEsIAotICAgIDE0OSwgMjMyLCAxMTksIDEsIDIxOSwgMTU4LCAyMzIsIDExOSwgMSwgMjE4LCA5OSwgMjMyLCAxMTksIDEsIDY5LCAyMzIsIAotICAgIDExOSwgMSwgMjQ0LCAyMzAsIDIzMiwgMTE5LCAxLCAyMjQsIDI0MCwgMjMyLCAxMTksIDEsIDE5NywgMjMyLCAxMTksIDEsIAotICAgIDIxNiwgMTE4LCAyMzIsIDExOSwgMSwgMjU0LCAzMiwgMjMyLCAxMTksIDEsIDI0NSwgMTA4LCAyMzIsIDExOSwgMSwgMjMyLCAKLSAgICAxMjEsIDIzMiwgMTE5LCAxLCAyMjgsIDE5OSwgMjMyLCAxMTksIDEsIDI1MCwgMjUyLCAyMzIsIDExOSwgMjE2LCAxODAsIAotICAgIDc3LCAyMzQsIDEyNiwgMSwgNjEsIDIzNCwgMTI2LCAzMCwgNSwgNzIsIDIzNCwgMTI2LCAzMCwgNSwgNjksIDIzNCwgMTI2LCAKLSAgICAzMCwgNSwgMTYxLCAxNDksIDIzNCwgMTI2LCAzMCwgNSwgNzQsIDIzNCwgMTI2LCAzMCwgNSwgNzUsIDIzNCwgMTI2LCAzMCwgCi0gICAgMjMzLCA0NywgNzcsIDIzNCwgMTI2LCA1LCA1MSwgMjIzLCAxMzEsIDU1LCAyMzQsIDEyNiwgNSwgMjUzLCAyNDIsIDIzNCwgCi0gICAgMTI2LCA1LCAyMTQsIDEyOCwgMjM0LCAxMjYsIDEsIDE4MSwgMjM0LCAxMjYsIDEsIDIzNCwgMTM4LCAyMzQsIDEyNiwgMSwgCi0gICAgMjQzLCAxMTAsIDIzNCwgMTI2LCAxLCAyNDIsIDIyNSwgMjM0LCAxMjYsIDEsIDI1MCwgMjE5LCAyMzQsIDEyNiwgMSwgMjUwLCAKLSAgICA5MiwgMjM0LCAxMjYsIDEsIDIzNSwgMTM5LCAyMzQsIDEyNiwgMSwgMjI4LCAyMywgMjM0LCAxMjYsIDEsIDIxNiwgMTE1LCAKLSAgICAyMzQsIDEyNiwgMSwgMjE2LCAxMDUsIDIzNCwgMTI2LCAxLCAyNDgsIDg2LCAyMzQsIDEyNiwgMSwgMjQ4LCA3MCwgMjM0LCAKLSAgICAxMjYsIDEsIDIyOCwgMTk4LCAyMzQsIDEyNiwgMSwgMjE4LCA1MiwgMjM0LCAxMjYsIDEsIDIxNywgMTYxLCAyMzQsIDEyNiwgCi0gICAgMSwgMjQ4LCAxNjQsIDIzNCwgMTI2LCAxLCAyNDcsIDIzMiwgMjM0LCAxMjYsIDEsIDIwNSwgMjM0LCAxMjYsIDEsIDE5MywgCi0gICAgMjM0LCAxMjYsIDEsIDIyNiwgMjMsIDIzNCwgMTI2LCAxLCAyNTIsIDEwNywgMjM0LCAxMjYsIDEsIDI1MSwgMTk1LCAyMzQsIAotICAgIDEyNiwgMSwgMTg4LCAyMzQsIDEyNiwgMSwgMTg2LCAyMzQsIDEyNiwgMSwgMjAzLCAyMzQsIDEyNiwgMSwgMjMzLCAxNTcsIAotICAgIDIzNCwgMTI2LCAxLCAyMTUsIDEsIDIzNCwgMTI2LCAxLCAyMjEsIDI0LCAyMzQsIDEyNiwgMSwgMjE5LCAxNTcsIDIzNCwgCi0gICAgMTI2LCAxLCAyMjIsIDIwMiwgMjM0LCAxMjYsIDEsIDIxMiwgMTA5LCAyMzQsIDEyNiwgMSwgMTU5LCAyMzQsIDEyNiwgMSwgCi0gICAgMjM0LCA1NSwgMjM0LCAxMjYsIDEsIDIxNiwgODcsIDIzNCwgMTI2LCA1LCAyNTIsIDYwLCA0OSwgMjM0LCAxMjYsIDUsIAotICAgIDI1MCwgMTU0LCAyMzQsIDEyNiwgNSwgNjIsIDU1LCAyMzQsIDEyNiwgMjE0LCAxMzMsIDIzNCwgMTI2LCAyMSwgMTE2LCAKLSAgICAyMzQsIDEyNiwgMjEsIDEwOSwgMjM0LCAxMjYsIDIxLCAxNjYsIDIzNCwgMTI2LCAyMSwgMTYzLCAyMzQsIDEyNiwgNTAsIAotICAgIDIxNywgMjAwLCAyMzQsIDEyNiwgNTAsIDIxNiwgMzgsIDIzNCwgMTI2LCA1MCwgMTIyLCAyNDAsIDIwMCwgMjM0LCAxMjYsIAotICAgIDUwLCAxMjIsIDIxNywgMTAwLCAyMzQsIDEyNiwgMjI1LCAyNywgMjQ3LCA3NCwgMjM0LCAxMjYsIDIyNSwgMjcsIDMsIDI0OSwgCi0gICAgMjI4LCAyMzQsIDEyNiwgMjI1LCAyNywgMjQ5LCAyMjgsIDIzNCwgMTI2LCAyMjUsIDI3LCAyNDksIDc3LCAxMzQsIDIzNCwgCi0gICAgMTI2LCAyMjUsIDI3LCAyMzEsIDI0MywgMjM0LCAxMjYsIDIyNSwgMjcsIDIzMiwgMTcwLCAyMzQsIDEyNiwgMjI1LCAyNywgCi0gICAgMjQ4LCAxMjMsIDIzNCwgMTI2LCAyMjUsIDI3LCA1MSwgMjQ4LCAxMjMsIDIzNCwgMTI2LCAyMjUsIDI3LCAyMzIsIDIzNiwgCi0gICAgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjQxLCAyMjIsIDUzLCAyMTksIDIxNSwgMjUzLCAyMDgsIDEsIDIzMywgMTE3LCAKLSAgICA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyNDEsIDE4MCwgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjMxLCAxMjksIAotICAgIDUzLCAyMTksIDIxNSwgMjUzLCAyMDgsIDEsIDIyNCwgMTc5LCA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyMTQsIDE0LCAKLSAgICA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyMjAsIDIwMCwgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjIzLCAyMTksIAotICAgIDUzLCAyMTksIDIxNSwgMjUzLCAyMDgsIDEsIDI1MSwgMjAyLCA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyMTcsIDI0MywgCi0gICAgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjIyLCAxNDIsIDUzLCAyMTksIDIxNSwgMjUzLCAyMDgsIDEsIDIzNCwgMjMwLCAKLSAgICA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyMjgsIDUwLCA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyMzQsIDEyMiwgCi0gICAgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjIyLCAxOTMsIDUzLCAyMTksIDIxNSwgMjUzLCAyMDgsIDEsIDIyMiwgMTY0LCAKLSAgICA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyNDQsIDEyMywgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjU0LCA3OCwgCi0gICAgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjUzLCA3NywgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjQ3LCAyMzAsIAotICAgIDUzLCAyMTksIDIxNSwgMjUzLCAyMDgsIDEsIDI0MiwgMTc3LCA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyNDgsIDEzMywgCi0gICAgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjQyLCAyMTQsIDUzLCAyMTksIDIxNSwgMjUzLCAyMDgsIDEsIDIxNywgMTc5LCAKLSAgICA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyMTIsIDg5LCA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyNDcsIDIyNywgCi0gICAgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgMSwgMjEyLCAyMjMsIDUzLCAyMTksIDIxNSwgMjUzLCAyMDgsIDEsIDIxNywgMTUwLCAKLSAgICA1MywgMjE5LCAyMTUsIDI1MywgMjA4LCAxLCAyMTcsIDEzMSwgNTMsIDIxOSwgMjE1LCAyNTMsIDIwOCwgNTAsIDExNiwgNTMsIAotICAgIDIxOSwgMjE1LCAyNTMsIDIwOCwgNTAsIDI0NCwgODMsIDUzLCAyMTksIDIxNSwgMjUzLCAyMDgsIDEyOCwgMjM1LCAyMzUsIAotICAgIDI1MywgODgsIDEsIDYxLCAyNTMsIDg4LCAxLCAyNTQsIDIzMiwgMjUzLCA4OCwgMSwgMjUzLCAyNDAsIDI1MywgODgsIDEsIAotICAgIDI1NCwgMTkxLCAyNTMsIDg4LCAxLCAyNTQsIDMyLCAyNTMsIDg4LCAxLCAyNTQsIDE5MiwgMjUzLCA4OCwgMSwgMjU0LCAKLSAgICAxNDgsIDI1MywgODgsIDEsIDI1NCwgMTQ0LCAyNTMsIDg4LCAxLCA3NCwgMjUzLCA4OCwgMSwgMjQ1LCAxNjUsIDI1MywgODgsIAotICAgIDEsIDc1LCAyNTMsIDg4LCAxLCAyMjcsIDQ5LCAyNTMsIDg4LCAxLCA3MiwgMjUzLCA4OCwgMSwgMjM2LCAyOCwgMjUzLCA4OCwgCi0gICAgMSwgNjksIDI1MywgODgsIDEsIDIxNSwgOTIsIDI1MywgODgsIDEsIDIzNCwgMTg4LCAyNTMsIDg4LCAxLCAyMTMsIDE1MCwgCi0gICAgMjUzLCA4OCwgMSwgMjEzLCAxMTYsIDI1MywgODgsIDEsIDIxMywgMTI1LCAyNTMsIDg4LCAxLCAyNDMsIDM4LCAyNTMsIDg4LCAKLSAgICAxLCAyNDMsIDAsIDI1MywgODgsIDEsIDI0MiwgMjEyLCAyNTMsIDg4LCAxLCAyNTAsIDEyNCwgMjUzLCA4OCwgMSwgMjM1LCAKLSAgICAxMjcsIDI1MywgODgsIDEsIDIxNywgMjI5LCAyNTMsIDg4LCAxLCAyMTcsIDE0OCwgMjUzLCA4OCwgMSwgMjQ4LCA0MSwgCi0gICAgMjUzLCA4OCwgMSwgMjQ3LCAyMjUsIDI1MywgODgsIDEsIDIxNiwgMTEyLCAyNTMsIDg4LCAxLCAyMjYsIDk2LCAyNTMsIDg4LCAKLSAgICAxLCAyNDQsIDEyMywgMjUzLCA4OCwgMSwgMjUxLCAyNTEsIDI1MywgODgsIDEsIDI1MSwgMTkyLCAyNTMsIDg4LCAxLCAyMjksIAotICAgIDE0OCwgMjUzLCA4OCwgMSwgMjI5LCA3MCwgMjUzLCA4OCwgMSwgMjI5LCA3MSwgMjUzLCA4OCwgMSwgMjI5LCAxODcsIDI1MywgCi0gICAgODgsIDEsIDIyOCwgMTcsIDI1MywgODgsIDEsIDIyOCwgMTk3LCAyNTMsIDg4LCAxLCAyMzEsIDE1NiwgMjUzLCA4OCwgMSwgCi0gICAgMjQxLCAxMDIsIDI1MywgODgsIDEsIDIxMiwgMTU5LCAyNTMsIDg4LCAxLCAyMTMsIDM4LCAyNTMsIDg4LCAxLCAyMTQsIAotICAgIDIzMiwgMjUzLCA4OCwgMSwgMjI0LCAyMSwgMjUzLCA4OCwgMSwgMjMzLCA4MiwgMjUzLCA4OCwgMSwgMjIyLCAxMDAsIDI1MywgCi0gICAgODgsIDEsIDIxMiwgODcsIDI1MywgODgsIDEsIDIyMCwgMjQzLCAyNTMsIDg4LCAxLCAyMTIsIDY3LCAyNTMsIDg4LCAxLCAKLSAgICAyMjAsIDEyNCwgMjUzLCA4OCwgMSwgMjE5LCAxMjksIDI1MywgODgsIDEsIDI0MSwgMjIyLCAyNTMsIDg4LCAyNTQsIDE4MSwgCi0gICAgNzcsIDIxNywgMzIsIDExNywgMTc2LCAxMTAsIDEyMiwgNjIsIDIyNSwgMjYsIDMsIDExNywgMTc2LCAxMTAsIDEyMiwgNjIsIAotICAgIDIyNSwgMjYsIDIzMywgMTA4LCAxMTcsIDE3NiwgMTEwLCAxMjIsIDYyLCAyMjUsIDI2LCAyMzMsIDEwOCwgMTIyLCA2MiwgCi0gICAgMTEwLCAxMTcsIDE3NiwgMjI1LCAyNiwgMjMzLCAxMDgsIDExNywgMjIzLCAxMjksIDExMCwgMTIyLCAyMjMsIDEzMSwgMjI1LCAKLSAgICAyNiwgMjMzLCAxMDgsIDEyMiwgMjIzLCAxMzEsIDExMCwgMTE3LCAyMjMsIDEyOSwgMjI1LCAyNiwgMjM1LCAyMTUsIDIyNiwgCi0gICAgMTI2LCAxLCAyNTQsIDc2LCAyMzUsIDIxNSwgMjI2LCAxMjYsIDEsIDI1MSwgMjAyLCAyMzUsIDIxNSwgMjI2LCAxMjYsIDEsIAotICAgIDI0MiwgMTc3LCAyMzUsIDIxNSwgMjI2LCAxMjYsIDEsIDI0OCwgMTMzLCAyMzUsIDIxNSwgMjI2LCAxMjYsIDEsIDI0MSwgCi0gICAgMjIyLCAyMzUsIDIxNSwgMjI2LCAxMjYsIDEsIDIxNCwgMTQsIDIzNSwgMjE1LCAyMjYsIDEyNiwgMSwgMjEyLCA5MCwgMjM1LCAKLSAgICAyMTUsIDIyNiwgMTI2LCAxLCAyNDEsIDE4MCwgMjM1LCAyMTUsIDIyNiwgMTI2LCAxLCAyMTcsIDE3OSwgMjM1LCAyMTUsIAotICAgIDIyNiwgMTI2LCAxLCAyMTIsIDIyMywgMjM1LCAyMTUsIDIyNiwgMTI2LCAxLCAyMzQsIDIzMCwgMjM1LCAyMTUsIDIyNiwgCi0gICAgMTI2LCAxLCAyMzMsIDExNywgMjM1LCAyMTUsIDIyNiwgMTI2LCAxLCAyMzEsIDEyOSwgMjM1LCAyMTUsIDIyNiwgMTI2LCAxLCAKLSAgICAyMjgsIDUwLCAyMzUsIDIxNSwgMjI2LCAxMjYsIDEsIDIyMiwgMTY0LCAyMzUsIDIxNSwgMjI2LCAxMjYsIDEsIDI1MywgNzgsIAotICAgIDIzNSwgMjE1LCAyMjYsIDEyNiwgMSwgMjI2LCA5NiwgMjM1LCAyMTUsIDIyNiwgMTI2LCAxLCAyMjIsIDE5MywgMjM1LCAKLSAgICAyMTUsIDIyNiwgMTI2LCAxLCAyMjQsIDE3OSwgMjM1LCAyMTUsIDIyNiwgMTI2LCAxLCAyMjMsIDIxOSwgMjM1LCAyMTUsIAotICAgIDIyNiwgMTI2LCAxLCAyMjAsIDIwMCwgMjM1LCAyMTUsIDIyNiwgMTI2LCAxLCAyMTcsIDI0MywgMjM1LCAyMTUsIDIyNiwgCi0gICAgMTI2LCA1MCwgMTE2LCAyMzUsIDIxNSwgMjI2LCAxMjYsIDUwLCAxMDksIDIzNSwgMjE1LCAyMjYsIDEyNiwgNTAsIDE2NiwgCi0gICAgMjM1LCAyMTUsIDIyNiwgMTI2LCA1MCwgMTYzLCAyMzUsIDIxNSwgMjI2LCAxMjYsIDUwLCAyMTcsIDIwMCwgMjM1LCAyMTUsIAotICAgIDIyNiwgMTI2LCA1MCwgMjE2LCAzOCwgMjM1LCAyMTUsIDIyNiwgMTI2LCA1MCwgMTIyLCAyNDAsIDIwMCwgMjM1LCAyMTUsIAotICAgIDIyNiwgMTI2LCA1MCwgMTIyLCAyMTcsIDEwMCwgMjM1LCAyMTUsIDIyNiwgMTk4LCAxLCAyNTQsIDc2LCAyMzUsIDIxNSwgCi0gICAgMjI2LCAxOTgsIDEsIDI1MSwgMjAyLCAyMzUsIDIxNSwgMjI2LCAxOTgsIDEsIDI0MiwgMTc3LCAyMzUsIDIxNSwgMjI2LCAKLSAgICAxOTgsIDEsIDI0OCwgMTMzLCAyMzUsIDIxNSwgMjI2LCAxOTgsIDEsIDI0MSwgMjIyLCAyMzUsIDIxNSwgMjI2LCAxOTgsIDEsIAotICAgIDIxNCwgMTMsIDIzNSwgMjE1LCAyMjYsIDE5OCwgMSwgMjEyLCA5MCwgMjM1LCAyMTUsIDIyNiwgMTk4LCAxLCAyNDEsIDE4MCwgCi0gICAgMjM1LCAyMTUsIDIyNiwgMTk4LCAxLCAyMTcsIDE3OSwgMjM1LCAyMTUsIDIyNiwgMTk4LCAxLCAyMTIsIDIyMywgMjM1LCAKLSAgICAyMTUsIDIyNiwgMTk4LCAxLCAyMzQsIDIzMCwgMjM1LCAyMTUsIDIyNiwgMTk4LCAxLCAyMzMsIDExNywgMjM1LCAyMTUsIAotICAgIDIyNiwgMTk4LCAxLCAyMzEsIDEyOCwgMjM1LCAyMTUsIDIyNiwgMTk4LCAxLCAyMjgsIDUwLCAyMzUsIDIxNSwgMjI2LCAKLSAgICAxOTgsIDEsIDIyMiwgMTY0LCAyMzUsIDIxNSwgMjI2LCAxOTgsIDEsIDIyNiwgOTYsIDIzNSwgMjE1LCAyMjYsIDE5OCwgMSwgCi0gICAgMjIyLCAxOTMsIDIzNSwgMjE1LCAyMjYsIDE5OCwgMSwgMjIwLCAyMDAsIDIzNSwgMjE1LCAyMjYsIDE5OCwgMSwgMjE3LCAKLSAgICAyNDMsIDIzNSwgMjE1LCAyMjYsIDE5OCwgNTAsIDExNiwgMjM1LCAyMTUsIDIyNiwgMTk4LCA1MCwgMTA5LCAyMzUsIDIxNSwgCi0gICAgMjI2LCAxOTgsIDUwLCAxNjYsIDIzNSwgMjE1LCAyMjYsIDE5OCwgNTAsIDE2MywgMjM1LCAyMTUsIDIyNiwgMTk4LCA1MCwgCi0gICAgMjE3LCAyMDAsIDIzNSwgMjE1LCAyMjYsIDE5OCwgNTAsIDIxNiwgMzgsIDIzNSwgMjE1LCAyMjYsIDE5OCwgNTAsIDEyMiwgCi0gICAgMjQwLCAyMDAsIDIzNSwgMjE1LCAyMjYsIDE5OCwgNTAsIDEyMiwgMjE3LCAxMDAsIDUzLCAxODUsIDEsIDIyNywgMTYsIDYxLCAKLSAgICA1MywgMTg1LCAxLCAyMTMsIDI4LCA2MSwgNTMsIDE4NSwgMSwgMjEzLCAyOCwgMjU0LCAxNDgsIDUzLCAxODUsIDEsIDIyNywgCi0gICAgMTYsIDcyLCA1MywgMTg1LCAxLCAyMTMsIDI4LCA3MiwgNTMsIDE4NSwgMSwgMjEzLCAyOCwgNzQsIDUzLCAxODUsIDEsIAotICAgIDIyNywgMTYsIDc1LCA1MywgMTg1LCAxLCAyMjcsIDE2LCAyMjcsIDk5LCA1MywgMTg1LCAxLCAyMTMsIDI4LCAyMjcsIDk5LCAKLSAgICA1MywgMTg1LCAxLCAyMjcsIDE2LCAyNTQsIDE4NSwgNTMsIDE4NSwgMSwgMjEzLCAyOCwgMjU0LCAxODUsIDUzLCAxODUsIDEsIAotICAgIDIyNywgMTYsIDI1NCwgMTQ3LCA1MywgMTg1LCAxLCAyMTMsIDI4LCAyNTQsIDE0NywgNTMsIDE4NSwgMSwgMjI3LCAxNiwgCi0gICAgMjU0LCAxMjEsIDUzLCAxODUsIDEsIDIxMywgMjgsIDI1NCwgMTIxLCA1MywgMTg1LCAxLCAyMjcsIDE2LCAyNTQsIDE0MiwgCi0gICAgNTMsIDE4NSwgMSwgMjEzLCAyOCwgMjU0LCAxNDIsIDUzLCAxODUsIDEsIDIyNywgMTYsIDI1NCwgMTYwLCA1MywgMTg1LCAxLCAKLSAgICAyMTMsIDI4LCAyNTQsIDE2MCwgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjU0LCAxNDYsIDUzLCAxODUsIDEsIDIyNywgMTYsIAotICAgIDI0NCwgMjM2LCA1MywgMTg1LCAxLCAyMTMsIDI4LCAyNDQsIDIzNiwgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjUzLCA4MywgCi0gICAgNTMsIDE4NSwgMSwgMjEzLCAyOCwgMjUzLCA4MywgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjU0LCAxMjksIDUzLCAxODUsIDEsIAotICAgIDIxMywgMjgsIDI1NCwgMTI5LCA1MywgMTg1LCAxLCAyMjcsIDE2LCAyNTQsIDE0MCwgNTMsIDE4NSwgMSwgMjEzLCAyOCwgCi0gICAgMjU0LCAxNDAsIDUzLCAxODUsIDEsIDIyNywgMTYsIDIyNywgOTgsIDUzLCAxODUsIDEsIDIxMywgMjgsIDIyNywgOTgsIDUzLCAKLSAgICAxODUsIDEsIDIyNywgMTYsIDI1NCwgODYsIDUzLCAxODUsIDEsIDIxMywgMjgsIDI1NCwgODYsIDUzLCAxODUsIDEsIDIyNywgCi0gICAgMTYsIDI1NCwgMTM5LCA1MywgMTg1LCAxLCAyMjcsIDE2LCAyNDUsIDExOSwgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjQ1LCAKLSAgICAxMTcsIDUzLCAxODUsIDEsIDIyNywgMTYsIDI1NCwgMzIsIDUzLCAxODUsIDEsIDIyNywgMTYsIDI1NCwgMTM3LCA1MywgCi0gICAgMTg1LCAxLCAyMTMsIDI4LCAyNTQsIDEzNywgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjQ1LCA5MCwgNTMsIDE4NSwgMSwgMjEzLCAKLSAgICAyOCwgMjQ1LCA5MCwgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjQ1LCAxMDUsIDUzLCAxODUsIDEsIDIxMywgMjgsIDI0NSwgCi0gICAgMTA1LCA1MywgMTg1LCAxLCAyMjcsIDE2LCAyNDUsIDc3LCA1MywgMTg1LCAxLCAyMTMsIDI4LCAyNDUsIDc3LCA1MywgMTg1LCAKLSAgICAxLCAyMTMsIDI4LCAyNTQsIDI0LCA1MywgMTg1LCAxLCAyMjcsIDE2LCAyNDUsIDk2LCA1MywgMTg1LCAxLCAyMTMsIDI4LCAKLSAgICAyNTQsIDEzNiwgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjQ1LCA3MCwgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjI3LCA0MSwgNTMsIAotICAgIDE4NSwgMSwgMjI3LCAxNiwgMjQwLCAxMDYsIDUzLCAxODUsIDEsIDIyNywgMTYsIDI0NSwgMTcxLCA1MywgMTg1LCAxLCAKLSAgICAyMTMsIDI4LCAyNDUsIDE3MSwgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjUzLCAyMTUsIDUzLCAxODUsIDEsIDIxMywgMjgsIAotICAgIDI1MywgMjE1LCA1MywgMTg1LCAxLCAyMjcsIDE2LCAyMzUsIDE3OSwgNTMsIDE4NSwgMSwgMjEzLCAyOCwgMjM1LCAxNzksIAotICAgIDUzLCAxODUsIDEsIDIyNywgMTYsIDIyNywgMjUsIDUzLCAxODUsIDEsIDIxMywgMjgsIDIyNywgMjUsIDUzLCAxODUsIDEsIAotICAgIDIyNywgMTYsIDI1MywgMjExLCA1MywgMTg1LCAxLCAyMTMsIDI4LCAyNTMsIDIxMSwgNTMsIDE4NSwgMSwgMjI3LCAxNiwgCi0gICAgMjU0LCAxMzUsIDUzLCAxODUsIDEsIDIyNywgMTYsIDI1MywgMTUyLCA1MywgMTg1LCAxLCAyMjcsIDE2LCAyNTQsIDEzMywgCi0gICAgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjUzLCAxNDYsIDUzLCAxODUsIDEsIDIxMywgMjgsIDI1MywgMTQ2LCA1MywgMTg1LCAxLCAKLSAgICAyMjcsIDE2LCAyNDUsIDQwLCA1MywgMTg1LCAxLCAyMTMsIDI4LCAyNDUsIDQwLCA1MywgMTg1LCAxLCAyMjcsIDE2LCAyNTMsIAotICAgIDEyMiwgNTMsIDE4NSwgMSwgMjEzLCAyOCwgMjUzLCAxMjIsIDUzLCAxODUsIDEsIDIyNywgMTYsIDI1NCwgMTMwLCA1MywgCi0gICAgMTg1LCAxLCAyMTMsIDI4LCAyNTQsIDEzMCwgNTMsIDE4NSwgMSwgMjI3LCAxNiwgMjI3LCA4LCA1MywgMTg1LCAxLCAyMjcsIAotICAgIDE2LCAyNTIsIDQ1LCAyMjMsIDM4LCAyMSwgMTE2LCAyMjMsIDM4LCAyMSwgMTA5LCAyMjMsIDM4LCAyMSwgMTY2LCAyMjMsIAotICAgIDM4LCAyMSwgMTYzLCAyMjMsIDM4LCAyMSwgMTgwLCAyMjMsIDM4LCAyMSwgMTg5LCAyMjMsIDM4LCAyMSwgMTk4LCAyMjMsIAotICAgIDM4LCAyMSwgMTk1LCAyMjMsIDM4LCAyMSwgMjAwLCAyMjMsIDM4LCA1MCwgMjE3LCAyMDAsIDIyMywgMzgsIDUwLCAyMTYsIAotICAgIDM4LCAyMjMsIDM4LCA1MCwgMjE3LCAxMTUsIDIyMywgMzgsIDUwLCAyNDMsIDI0MCwgMjIzLCAzOCwgNTAsIDI0NCwgODMsIAotICAgIDIyMywgMzgsIDUwLCAyMjAsIDM5LCAyMjMsIDM4LCA1MCwgMjIxLCAzNywgMjIzLCAzOCwgNTAsIDI0NSwgMTQxLCAyMjMsIAotICAgIDM4LCA1MCwgMjI5LCAyNiwgMjIzLCAzOCwgNTAsIDEyMiwgMjQwLCAyMDAsIDIyMywgMzgsIDUwLCAxMTcsIDI0MCwgMjAwLCAKLSAgICAyMjMsIDM4LCA1MCwgMTMzLCAyNDAsIDIwMCwgMjIzLCAzOCwgNTAsIDI0MywgMjM3LCAyNDAsIDIwMCwgMjIzLCAzOCwgNTAsIAotICAgIDI0NCwgNTAsIDI0MCwgMjAwLCAyMjMsIDM4LCA1MCwgMjIwLCA1MywgMjQwLCAyMDAsIDIyMywgMzgsIDUwLCAyMjEsIDQzLCAKLSAgICAyNDAsIDIwMCwgMjIzLCAzOCwgNTAsIDI0NSwgMTUwLCAyNDAsIDIwMCwgMjIzLCAzOCwgNTAsIDIyOSwgMzEsIDI0MCwgCi0gICAgMjAwLCAyMjMsIDM4LCAyNDMsIDIyOCwgMTIyLCAyNDIsIDksIDIyMywgMzgsIDI0MywgMjI4LCAxMjIsIDIyNCwgMTY2LCAKLSAgICAyMjMsIDM4LCAyNDMsIDIyOCwgMTIyLCAyMTcsIDEyMSwgMjIzLCAzOCwgMjQzLCAyMjgsIDExNywgMjE3LCAxMTksIDExMiwgCi0gICAgNSwgMjUwLCAxODcsIDExMiwgNSwgMjUzLCAyNDIsIDExMiwgNSwgMjE0LCAxMjgsIDExMiwgNSwgMjM1LCAxMDQsIDExMiwgCi0gICAgNSwgMjE1LCAxMzIsIDExMiwgMSwgNjEsIDExMiwgMSwgMjU0LCAyMzIsIDExMiwgMSwgNzIsIDExMiwgMSwgMjM2LCAyOCwgCi0gICAgMTEyLCAxLCA2OSwgMTEyLCAxLCAyMTUsIDkyLCAxMTIsIDEsIDE2MSwgMTQ5LCAxMTIsIDEsIDE2MSwgMjIzLCA4MiwgMTEyLCAKLSAgICAxLCAxNjEsIDE1MCwgMTEyLCAxLCAxNjEsIDIzMiwgMjE0LCAxMTIsIDEsIDc0LCAxMTIsIDEsIDI1NCwgMTA4LCAxMTIsIDEsIAotICAgIDc1LCAxMTIsIDEsIDI1MywgMTA4LCAxMTIsIDEsIDE4MSwgMTEyLCAxLCAyMzQsIDEzOCwgMTEyLCAxLCAyNDMsIDExMCwgCi0gICAgMTEyLCAxLCAyNDIsIDIyNSwgMTEyLCAxLCAyMjksIDE1OSwgMTEyLCAxLCAyNTAsIDIxOSwgMTEyLCAxLCAyNTAsIDkyLCAKLSAgICAxMTIsIDEsIDIzNSwgMTM5LCAxMTIsIDEsIDIzNSwgMTE1LCAxMTIsIDEsIDIyOCwgMjMsIDExMiwgMSwgMjE2LCAxMTUsIAotICAgIDExMiwgMSwgMjE2LCAxMDUsIDExMiwgMSwgMjQ4LCA4NiwgMTEyLCAxLCAyNDgsIDcwLCAxMTIsIDEsIDIyOCwgMTk4LCAKLSAgICAxMTIsIDEsIDIxOCwgNTIsIDExMiwgMSwgMjE3LCAxNjEsIDExMiwgMSwgMjQ4LCAxNjQsIDExMiwgMSwgMjQ3LCAyMzIsIAotICAgIDExMiwgMSwgMjA1LCAxMTIsIDEsIDE5MywgMTEyLCAxLCAyMjYsIDIzLCAxMTIsIDEsIDI1MiwgMTA3LCAxMTIsIDEsIDI1MSwgCi0gICAgMTk1LCAxMTIsIDEsIDE4OCwgMTEyLCAxLCAxODYsIDExMiwgMSwgMjAzLCAxMTIsIDEsIDIzMywgMTU3LCAxMTIsIDEsIAotICAgIDIxNSwgMSwgMTEyLCAxLCAyMjEsIDI0LCAxMTIsIDEsIDIxOSwgMTU3LCAxMTIsIDEsIDIyMiwgMjAyLCAxMTIsIDEsIDE1OSwgCi0gICAgMTEyLCAxLCAyMzIsIDIxMywgMTEyLCAxLCA1MywgMTc4LCAyMzIsIDIxMiwgMTEyLCAxLCA1MywgMTc4LCAyMjMsIDgxLCAKLSAgICAxMTIsIDEsIDUzLCAxNzgsIDIyOCwgMTg5LCAxMTIsIDMwLCA1LCAyNTQsIDIzMiwgMTEyLCAzMCwgNSwgMjUxLCAxOTMsIAotICAgIDI1NCwgMjMyLCAxMTIsIDMwLCA1LCA3MiwgMTEyLCAzMCwgNSwgMjM2LCAyOCwgMTEyLCAzMCwgNSwgNjksIDExMiwgMzAsIAotICAgIDUsIDIxNSwgOTIsIDExMiwgMzAsIDUsIDE2MSwgMTQ5LCAxMTIsIDMwLCA1LCAxNjEsIDIyMywgODIsIDExMiwgMzAsIDUsIAotICAgIDE2MSwgMTUwLCAxMTIsIDMwLCA1LCAxNjEsIDIzMiwgMjE0LCAxMTIsIDMwLCA1LCA3NCwgMTEyLCAzMCwgNSwgMjU0LCAKLSAgICAxMDgsIDExMiwgMzAsIDUsIDc1LCAxMTIsIDMwLCA1LCAyNTMsIDEwOCwgMTEyLCAyMTQsIDEzMywgMTEyLCAyNDgsIDEyMywgCi0gICAgMTEyLCA1MSwgMjQ4LCAxMjMsIDExMiwgMjI1LCAyNywgMjQ3LCA3NCwgMTEyLCAyMjUsIDI3LCA1MSwgMjQ3LCA3NCwgMTEyLCAKLSAgICAyMjUsIDI3LCAyMzIsIDI0MiwgMTEyLCAyMjUsIDI3LCAyNDksIDc3LCAxMzQsIDExMiwgMjI1LCAyNywgMjMyLCAxNzAsIAotICAgIDExMiwgNTAsIDExNiwgMTEyLCA1MCwgMTA5LCAxMTIsIDUwLCAxNjYsIDExMiwgNTAsIDE2MywgMTEyLCA1MCwgMTgwLCAKLSAgICAxMTIsIDUwLCAxODksIDExMiwgNTAsIDE5OCwgMTEyLCA1MCwgMTk1LCAxMTIsIDUwLCAyMDAsIDExMiwgNTAsIDIxNywgCi0gICAgMjAwLCAxMTIsIDUwLCAyMTYsIDM4LCAxMTIsIDUwLCAyMTcsIDExNSwgMTEyLCA1MCwgMjQzLCAyNDAsIDExMiwgNTAsIAotICAgIDI0NCwgODMsIDExMiwgNTAsIDIyMCwgMzksIDExMiwgNTAsIDIyMSwgMzcsIDExMiwgNTAsIDI0NSwgMTQxLCAxMTIsIDUwLCAKLSAgICAyMjksIDI2LCAxMTIsIDUwLCAxMjIsIDI0MCwgMjAwLCAxMTIsIDUwLCAxMjIsIDIxNywgMTAwLCAxMTIsIDIxLCAyMTIsIAotICAgIDc5LCAxMTIsIDIxLCAxMTYsIDExMiwgMjEsIDEwOSwgMTEyLCAyMSwgMTY2LCAxMTIsIDIxLCAxNjMsIDExMiwgMjEsIDE4MCwgCi0gICAgMTEyLCAyMSwgMTg5LCAxMTIsIDIxLCAxOTgsIDExMiwgMjEsIDE5NSwgMTEyLCAyMSwgMjAwLCAyMDgsIDUsIDI1MCwgMTg3LCAKLSAgICAyMDgsIDUsIDI1MywgMjQyLCAyMDgsIDUsIDIxNCwgMTI4LCAyMDgsIDEsIDYxLCAyMDgsIDEsIDI1NCwgMjMyLCAyMDgsIDEsIAotICAgIDcyLCAyMDgsIDEsIDIzNiwgMjgsIDIwOCwgMSwgNjksIDIwOCwgMSwgMjE1LCA5MiwgMjA4LCAxLCA3NCwgMjA4LCAxLCAKLSAgICAyNTQsIDEwOCwgMjA4LCAxLCA3NSwgMjA4LCAxLCAyNTMsIDEwOCwgMjA4LCAxLCAxODEsIDIwOCwgMSwgMjM0LCAxMzgsIAotICAgIDIwOCwgMSwgMjQzLCAxMTAsIDIwOCwgMSwgMjQyLCAyMjUsIDIwOCwgMSwgMjI5LCAxNTksIDIwOCwgMSwgMjUwLCAyMTksIAotICAgIDIwOCwgMSwgMjUwLCA5MiwgMjA4LCAxLCAyMzUsIDEzOSwgMjA4LCAxLCAyMzUsIDExNSwgMjA4LCAxLCAyMjgsIDIzLCAKLSAgICAyMDgsIDEsIDIxNiwgMTE1LCAyMDgsIDEsIDIxNiwgMTA1LCAyMDgsIDEsIDI0OCwgODYsIDIwOCwgMSwgMjQ4LCA3NSwgCi0gICAgMjA4LCAxLCAyNDgsIDcwLCAyMDgsIDEsIDIyMywgMTkyLCAyMDgsIDEsIDIyOCwgMTk4LCAyMDgsIDEsIDIxOCwgNTIsIAotICAgIDIwOCwgMSwgMjE3LCAxNjEsIDIwOCwgMSwgMjQ4LCAxNjQsIDIwOCwgMSwgMjQ3LCAyMzIsIDIwOCwgMSwgMjA1LCAyMDgsIAotICAgIDEsIDE5MywgMjA4LCAxLCAyMjYsIDIzLCAyMDgsIDEsIDI1MiwgMTA3LCAyMDgsIDEsIDI1MSwgMTk1LCAyMDgsIDEsIDE4OCwgCi0gICAgMjA4LCAxLCAxODYsIDIwOCwgMSwgMjAzLCAyMDgsIDEsIDIzMywgMTU3LCAyMDgsIDEsIDIxNSwgMSwgMjA4LCAxLCAyMjEsIAotICAgIDI0LCAyMDgsIDEsIDIxOSwgMTU3LCAyMDgsIDEsIDIyMiwgMjAyLCAyMDgsIDEsIDE1OSwgMjA4LCAzMCwgNSwgMjU0LCAKLSAgICAyMzIsIDIwOCwgMzAsIDUsIDcyLCAyMDgsIDMwLCA1LCAyMzYsIDI4LCAyMDgsIDMwLCA1LCA2OSwgMjA4LCAzMCwgNSwgCi0gICAgMjE1LCA5MiwgMjA4LCAzMCwgNSwgNzQsIDIwOCwgMzAsIDUsIDI1NCwgMTA4LCAyMDgsIDMwLCA1LCA3NSwgMjA4LCAzMCwgCi0gICAgNSwgMjUzLCAxMDgsIDIwOCwgNSwgMjE0LCAxMzMsIDIwOCwgNSwgMjI4LCA2MCwgMjA4LCAyNTQsIDE4MSwgNTIsIDIwOCwgCi0gICAgMjQ1LCA4MCwgNTIsIDIwOCwgNTAsIDUyLCAyMDgsIDIyMiwgOTIsIDc3LCAyMDgsIDUxLCAyMjIsIDkyLCA3NywgMjA4LCAKLSAgICAyNDgsIDEyMywgMjA4LCA1MSwgMjQ4LCAxMjMsIDE1LCA1LCA2MSwgMTUsIDUsIDExOCwgMjksIDYxLCAxNSwgNSwgMTE4LCAKLSAgICAyOSwgMjUyLCA5NCwgMTUsIDUsIDExOCwgMjksIDI0MywgODEsIDIxNywgMTkyLCAxNSwgNSwgMTE4LCAyOSwgMTU5LCAxNSwgCi0gICAgNSwgMTE4LCAyOSwgMjM2LCAzMCwgMTUsIDUsIDExOCwgMjksIDIzMywgMTM5LCAyNDIsIDc1LCAxNSwgNSwgMTE4LCAyOSwgCi0gICAgMjMwLCAxMzEsIDE1LCA1LCAxMTgsIDI5LCAyMjIsIDE5MCwgMTUsIDUsIDI1NCwgMjM0LCAxNSwgNSwgMjU0LCAxODUsIDE1LCAKLSAgICA1LCAyNTQsIDE4NiwgMjksIDI1MywgMTQ0LCAxNSwgNSwgMjU0LCAxODYsIDI5LCAyNDYsIDIyLCAyNDIsIDc1LCAxNSwgNSwgCi0gICAgMjU0LCAxODYsIDI5LCAyNDMsIDk0LCAxNSwgNSwgMjU0LCAxODYsIDI5LCAyNDMsIDgxLCAyMTcsIDE5MiwgMTUsIDUsIAotICAgIDI1NCwgMTg2LCAyOSwgMTU5LCAxNSwgNSwgMjU0LCAxODYsIDI5LCAyMzYsIDMxLCAyNDIsIDc1LCAxNSwgNSwgMjU0LCAKLSAgICAxODYsIDI5LCAyMzYsIDQsIDE1LCA1LCAyNTQsIDE4NiwgMjksIDIzMywgMTQwLCAxNSwgNSwgMjU0LCAxODYsIDI5LCAyMjAsIAotICAgIDIyOCwgMTUsIDUsIDI1NCwgMTg2LCAyOSwgMTExLCA5NCwgMTExLCA5NCwgNjksIDE1LCA1LCAyNTQsIDE4NiwgMjQyLCA3NSwgCi0gICAgMTUsIDUsIDI1NCwgMTgzLCAxNSwgNSwgMjU0LCAxODQsIDI5LCAyNTIsIDc5LCAxNSwgNSwgMjU0LCAxODQsIDI5LCAyNDMsIAotICAgIDgxLCAyMTcsIDE5MiwgMTUsIDUsIDI1NCwgMTg0LCAyOSwgMjMxLCAxNTcsIDk0LCAyNDUsIDEwOCwgMTUsIDUsIDI1NCwgCi0gICAgMTg0LCAyOSwgMjIxLCAyMiwgMTUsIDUsIDI1NCwgMTg0LCAyOSwgMjE4LCAyMiwgMTUsIDUsIDI1NCwgMTYwLCAxNSwgNSwgCi0gICAgMjU0LCA5NCwgMTUsIDUsIDI1NCwgOTUsIDI5LCAyNDUsIDUwLCAxNSwgNSwgMjU0LCA5NSwgMjksIDIyMCwgMTkwLCA5NCwgCi0gICAgMjQyLCAxNjYsIDE1LCA1LCAyNTQsIDg2LCAxNSwgNSwgMjU0LCA4NywgMjksIDI1NCwgODYsIDE1LCA1LCAyNTQsIDg3LCAKLSAgICAyOSwgMjQ3LCAxNjgsIDE1LCA1LCAyNTQsIDg3LCAyOSwgMjQyLCAxNjYsIDE1LCA1LCAyNTQsIDg3LCAyOSwgMTU5LCAxNSwgCi0gICAgNSwgMjU0LCA4NywgMjksIDIzNSwgMywgMTUsIDUsIDI1NCwgODcsIDI5LCAyMzQsIDEwMSwgMTUsIDUsIDI1NCwgODcsIDI5LCAKLSAgICAyMjAsIDI0MywgMTUsIDUsIDI1NCwgODcsIDI5LCAyMTUsIDEwMCwgMTUsIDUsIDI1NCwgODMsIDE1LCA1LCAyNTQsIDc2LCAKLSAgICAxNSwgNSwgMjU0LCA0MSwgMTUsIDUsIDI1NCwgNDIsIDI5LCAyMjAsIDI0MywgMTUsIDUsIDI1NCwgMzIsIDE1LCA1LCAyNTQsIAotICAgIDMzLCAxMTAsIDI1NCwgMzIsIDE1LCA1LCAyNTQsIDMzLCAxMzMsIDIxNywgMzgsIDE1LCA1LCAyNTQsIDMzLCA5NCwgMjMwLCAKLSAgICAzNSwgMjI3LCAzMCwgMjU0LCAzMywgOTQsIDIzMCwgMzQsIDE1LCA1LCAyNTQsIDMzLCA5NCwgMjMwLCAzNSwgMjE5LCAxNjUsIAotICAgIDE1LCA1LCAyNTQsIDUsIDE1LCA1LCAyNTMsIDIzNSwgMTUsIDUsIDI1MywgMjA1LCAxNSwgNSwgMjUzLCAyMDYsIDI5LCAKLSAgICAyMzMsIDIxNywgMTUsIDUsIDI1MywgMTc5LCAxNSwgNSwgMjUzLCAxNTEsIDE1LCA1LCAyNTMsIDE0NiwgMTUsIDUsIDI1MywgCi0gICAgMTQ3LCAyMTIsIDMzLCAyMTcsIDE5MiwgMTUsIDUsIDI1MywgMTQ3LCAyMzUsIDcsIDIxNywgMTkyLCAxNSwgNSwgMjUzLCAKLSAgICAxNDcsIDExMCwgMjUzLCAxNDcsIDIxNiwgNzgsIDExMCwgMjE2LCA3OCwgMjE2LCA3OCwgMTEwLCAyMTYsIDc4LCAyMjYsIAotICAgIDE0OSwgMTUsIDUsIDI1MywgMTQ3LCAxMTAsIDI1MywgMTQ3LCAxMTAsIDI1MywgMTQ2LCAxNSwgNSwgMjUzLCAxNDcsIDExMCwgCi0gICAgMjUzLCAxNDcsIDExMCwgMjUzLCAxNDcsIDI0OSwgNjUsIDI1MywgMTQ3LCAxMTAsIDI1MywgMTQ3LCAxMTAsIDI1MywgMTQ2LCAKLSAgICAxNSwgNSwgMjUzLCAxNDQsIDE1LCA1LCAyNTMsIDE0MSwgMTUsIDUsIDI1MiwgMTA3LCAxNSwgNSwgMjUyLCA5NCwgMTUsIDUsIAotICAgIDI1MiwgODksIDE1LCA1LCAyNTIsIDg2LCAxNSwgNSwgMjUyLCA4MCwgMTUsIDUsIDI1MiwgODEsIDExMCwgMjUyLCA4MCwgCi0gICAgMTUsIDUsIDI1MiwgNzksIDE1LCA1LCAxMzQsIDE1LCA1LCAyNTIsIDU5LCAxNSwgNSwgMjUxLCAxODQsIDE1LCA1LCAyNTEsIAotICAgIDE4NSwgMjksIDYxLCAxNSwgNSwgMjUxLCAxODUsIDI5LCAyNDMsIDcyLCAxNSwgNSwgMjUxLCAxODUsIDI5LCAyMzYsIDMxLCAKLSAgICAyNDIsIDc1LCAxNSwgNSwgMjUxLCA1NCwgMTUsIDUsIDI1MSwgNTUsIDExMCwgMjUxLCA1NSwgMjU0LCAxODUsIDE1LCA1LCAKLSAgICAyNTEsIDU1LCAxMTAsIDI1MSwgNTUsIDIxNSwgMTYwLCAxNSwgNSwgMjUxLCA1NSwgMjQ5LCA2NSwgMjUxLCA1NCwgMTUsIDUsIAotICAgIDI1MSwgMzgsIDE1LCA1LCAyNTEsIDM5LCAxMTAsIDI1MSwgMzgsIDE1LCA1LCAyNTEsIDI3LCAxNSwgNSwgMjUxLCAyNiwgCi0gICAgMTUsIDUsIDI0OCwgMTY0LCAxNSwgNSwgMjQ4LCAxNTUsIDE1LCA1LCAyNDgsIDE1NiwgMjM0LCA3NSwgMjksIDExOCwgOTQsIAotICAgIDIzMSwgMjEwLCAxNSwgNSwgMjQ4LCAxNTYsIDIzNCwgNzUsIDI5LCAyNTQsIDQxLCAxNSwgNSwgMjQ4LCAxNTYsIDIzNCwgCi0gICAgNzUsIDI5LCAyNTIsIDc5LCAxNSwgNSwgMjQ4LCAxNTYsIDIzNCwgNzUsIDI5LCAyNTEsIDE4NCwgMTUsIDUsIDI0OCwgMTU2LCAKLSAgICAyMzQsIDc1LCAyOSwgMjQzLCAxMTAsIDE1LCA1LCAyNDgsIDE1NiwgMjM0LCA3NSwgMjksIDI0MywgMTExLCA5NCwgMjMxLCAKLSAgICAyMTAsIDE1LCA1LCAyNDgsIDE1NiwgMjM0LCA3NSwgMjksIDI0MiwgMTkwLCAxNSwgNSwgMjQ4LCAxNTYsIDIzNCwgNzUsIAotICAgIDI5LCAyNDIsIDE3MywgMTUsIDUsIDI0OCwgMTU2LCAyMzQsIDc1LCAyOSwgMjQyLCA4NCwgMTUsIDUsIDI0OCwgMTU2LCAKLSAgICAyMzQsIDc1LCAyOSwgMTU5LCAxNSwgNSwgMjQ4LCAxNTYsIDIzNCwgNzUsIDI5LCAyMzUsIDE3NywgMTUsIDUsIDI0OCwgCi0gICAgMTU2LCAyMzQsIDc1LCAyOSwgMjM1LCAxNzgsIDk0LCAyMzIsIDE1NiwgMTUsIDUsIDI0OCwgMTU2LCAyMzQsIDc1LCAyOSwgCi0gICAgMjM0LCAyNDcsIDE1LCA1LCAyNDgsIDE1NiwgMjM0LCA3NSwgMjksIDIzMywgMTU3LCAxNSwgNSwgMjQ4LCAxNTYsIDIzNCwgCi0gICAgNzUsIDI5LCAyMzIsIDE1NiwgMTUsIDUsIDI0OCwgMTU2LCAyMzQsIDc1LCAyOSwgMjMyLCAxNTcsIDk0LCAyMzEsIDIwOSwgCi0gICAgMTUsIDUsIDI0OCwgMTU2LCAyMzQsIDc1LCAyOSwgMjMyLCAxNDIsIDE1LCA1LCAyNDgsIDE1NiwgMjM0LCA3NSwgMjksIAotICAgIDIyOSwgMTg3LCAxNSwgNSwgMjQ4LCAxNTYsIDIzNCwgNzUsIDI5LCAyMjYsIDE1MCwgOTQsIDIyNiwgMTQ5LCAxNSwgNSwgCi0gICAgMjQ4LCAxNTYsIDIzNCwgNzUsIDI5LCAyMjAsIDExNywgMTUsIDUsIDI0OCwgMTU2LCAyMzQsIDc1LCAyOSwgMjE4LCAyMiwgCi0gICAgMTUsIDUsIDI0OCwgMTU2LCAyMzQsIDc1LCAyOSwgMjE1LCAxOTgsIDk0LCAyNDIsIDE3MywgMTUsIDUsIDI0OCwgMTU2LCAKLSAgICAyMzQsIDc1LCAyOSwgMjE1LCAxMDAsIDE1LCA1LCAyNDgsIDEzMiwgMTUsIDUsIDI0OCwgMTExLCAxNSwgNSwgMjQ4LCAxMTAsIAotICAgIDE1LCA1LCAyNDgsIDEwOSwgMTUsIDUsIDI0NywgMjExLCAxNSwgNSwgMjQ3LCAxOTQsIDE1LCA1LCAyNDcsIDE2OSwgMTUsIAotICAgIDUsIDI0NywgMTcwLCAyOSwgMjIwLCAyNDMsIDE1LCA1LCAyNDcsIDE2OCwgMTUsIDUsIDI0NywgMTU4LCAxNSwgNSwgMjQ3LCAKLSAgICAxNTksIDIzNCwgMjEzLCAxMTEsIDI0MiwgNzYsIDI0NywgMTM5LCAxNSwgNSwgMjQ3LCAxMzksIDE1LCA1LCAyNDYsIDMzLCAKLSAgICAxNSwgNSwgMjQ2LCAzNCwgMTEwLCAyNDYsIDMzLCAxNSwgNSwgMjQ2LCAzNCwgMjQyLCA3NSwgMTUsIDUsIDI0NiwgMzQsIAotICAgIDIyMCwgMjI1LCAxNSwgNSwgMjQ2LCAzMSwgMTUsIDUsIDI0NiwgMzIsIDI5LCAyNDUsIDM3LCAxNSwgNSwgMjQ2LCAzMCwgCi0gICAgMTUsIDUsIDI0NiwgMjksIDE1LCA1LCAyNDYsIDI4LCAxNSwgNSwgMjQ2LCAyNywgMTUsIDUsIDI0NiwgMjMsIDE1LCA1LCAKLSAgICAyNDYsIDIxLCAxNSwgNSwgMjQ2LCAyMiwgMjQyLCA3NSwgMTUsIDUsIDI0NiwgMjIsIDI0MiwgNzYsIDI0MiwgNzUsIDE1LCAKLSAgICA1LCAyNDYsIDIwLCAxNSwgNSwgMjQ2LCAxMywgMTUsIDUsIDc0LCAxNSwgNSwgMTkxLCAyOSwgMjI2LCAxNDksIDE1LCA1LCAKLSAgICAxOTEsIDExMCwgMTkxLCAyMjgsIDUxLCAxMTAsIDIyOCwgNTAsIDE1LCA1LCAyNDUsIDE5MCwgMTUsIDUsIDI0NSwgMTkxLCAKLSAgICAyOSwgMTE4LCA5NCwgMjQyLCAzMCwgOTQsIDI0OCwgMTY0LCAxNSwgNSwgMjQ1LCAxOTEsIDI5LCAyNDMsIDcyLCAxNSwgNSwgCi0gICAgMjQ1LCAxOTEsIDI5LCAyMzEsIDQyLCAxNSwgNSwgMjQ1LCAxOTEsIDI5LCAyMjIsIDE3OSwgMTUsIDUsIDI0NSwgMTkxLCAKLSAgICAyOSwgMjIwLCAyNDMsIDE1LCA1LCAyNDUsIDE5MSwgMjksIDY5LCAxNSwgNSwgMjQ1LCAxNjcsIDE1LCA1LCAyNDUsIDE1NywgCi0gICAgMTUsIDUsIDI0NSwgMTMxLCAxNSwgNSwgMjQ1LCAxMDgsIDE1LCA1LCAyNDUsIDEwOSwgMjksIDI0MywgODAsIDE1LCA1LCAKLSAgICAyNDUsIDEwOSwgMjksIDI0MywgODEsIDIxNywgMTkyLCAxNSwgNSwgMjQ1LCAxMDksIDI5LCAyMzEsIDE1NiwgMTUsIDUsIAotICAgIDI0NSwgMTA5LCAyNDksIDY1LCAyNDUsIDEwOCwgMTUsIDUsIDI0NSwgMTA5LCAyMjcsIDMwLCAyNDUsIDEwOCwgMTUsIDUsIAotICAgIDI0NSwgMTA5LCAyMTksIDE2NSwgMTUsIDUsIDI0NSwgNTIsIDE1LCA1LCAyNDUsIDUwLCAxNSwgNSwgMjQ1LCAzNywgMTUsIAotICAgIDUsIDI0NCwgMjM0LCAxNSwgNSwgMjQ0LCAyMzUsIDI5LCA2MSwgMTUsIDUsIDI0NCwgMjM1LCAyOSwgMTE4LCA5NCwgMjMzLCAKLSAgICAxMjgsIDE1LCA1LCAyNDQsIDIzNSwgMjksIDExOCwgOTQsIDIzMywgMTI5LCAyOSwgMjMzLCAxMjgsIDE1LCA1LCAyNDQsIAotICAgIDIzNSwgMjksIDI1NCwgMzIsIDE1LCA1LCAyNDQsIDIzNSwgMjksIDI1MiwgOTQsIDE1LCA1LCAyNDQsIDIzNSwgMjksIDI0NiwgCi0gICAgMjIsIDI0MiwgNzUsIDE1LCA1LCAyNDQsIDIzNSwgMjksIDI0NiwgMjIsIDI0MiwgNzYsIDI0MiwgNzUsIDE1LCA1LCAyNDQsIAotICAgIDIzNSwgMjksIDE1OSwgMTUsIDUsIDI0NCwgMjM1LCAyOSwgMjQyLCAzMCwgMjQyLCA3NSwgMTUsIDUsIDI0NCwgMjM1LCAyOSwgCi0gICAgMjM2LCAzMSwgMjQyLCA3NSwgMTUsIDUsIDI0NCwgMjM1LCAyOSwgMjM0LCAyMTIsIDE1LCA1LCAyNDQsIDIzNSwgMjksIAotICAgIDIzNCwgMjEzLCAyMTksIDE2NSwgMTUsIDUsIDI0NCwgMjM1LCAyOSwgMjMzLCAyMzYsIDE1LCA1LCAyNDQsIDIzNSwgMjksIAotICAgIDIzMywgMTU3LCAxNSwgNSwgMjQ0LCAyMzUsIDI5LCAyMzMsIDEyOSwgMjksIDIzMywgMTI4LCAxNSwgNSwgMjQ0LCAyMzUsIAotICAgIDI5LCAyMzMsIDEzLCAxNSwgNSwgMjQ0LCAyMzUsIDI5LCAyMzIsIDE1NiwgMTUsIDUsIDI0NCwgMjM1LCAyOSwgMjE1LCAKLSAgICAxOTcsIDE1LCA1LCAyNDQsIDIzNSwgMjksIDIxNSwgMTg4LCAxNSwgNSwgMjQzLCAxMTAsIDE1LCA1LCAyNDMsIDExMSwgCi0gICAgMjQyLCA3NSwgMTUsIDUsIDI0MywgMTA4LCAxNSwgNSwgMjQzLCAxMDksIDI5LCAxMTgsIDk0LCAyNDgsIDE2NSwgOTQsIAotICAgIDE1OSwgMTUsIDUsIDI0MywgMTA5LCAyOSwgMTE4LCA5NCwgMTU5LCAxNSwgNSwgMjQzLCAxMDksIDI5LCAxMTgsIDk0LCAKLSAgICAyMzYsIDMwLCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNTQsIDE4NCwgMjE3LCAxOTMsIDk0LCAyMTgsIDQxLCAxNSwgNSwgCi0gICAgMjQzLCAxMDksIDI5LCAyNTQsIDMyLCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNTMsIDE0NiwgMTUsIDUsIDI0MywgMTA5LCAKLSAgICAyOSwgMjUzLCAxNDUsIDk0LCAyNDMsIDk0LCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNTIsIDk0LCAxNSwgNSwgMjQzLCAxMDksIAotICAgIDI5LCAyNTIsIDYwLCA5NCwgMjAzLCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNTEsIDI3LCAxNSwgNSwgMjQzLCAxMDksIDI5LCAKLSAgICAyNTEsIDI4LCA5NCwgMjAzLCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNDgsIDE2NCwgMTUsIDUsIDI0MywgMTA5LCAyOSwgCi0gICAgMjQ3LCAyMTEsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDI0NywgMTcwLCAyOSwgMjIwLCAyNDMsIDE1LCA1LCAyNDMsIDEwOSwgCi0gICAgMjksIDI0NiwgMzEsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDI0NSwgMTMxLCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNDUsIAotICAgIDEzMiwgOTQsIDIzMywgMTU3LCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNDUsIDEwOCwgMTUsIDUsIDI0MywgMTA5LCAyOSwgCi0gICAgMjQ1LCAxMDksIDI5LCAyNDMsIDgxLCAyMTcsIDE5MiwgMTUsIDUsIDI0MywgMTA5LCAyOSwgMjQzLCA4MSwgMjE3LCAxOTIsIAotICAgIDE1LCA1LCAyNDMsIDEwOSwgMjksIDI0MywgNzIsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDI0MiwgMTkwLCAxNSwgNSwgMjQzLCAKLSAgICAxMDksIDI5LCAyNDIsIDE4OCwgMTUsIDUsIDI0MywgMTA5LCAyOSwgMjQyLCAxODksIDk0LCA2MSwgMTUsIDUsIDI0MywgCi0gICAgMTA5LCAyOSwgMjQyLCAxNzQsIDk0LCAyMTksIDI3LCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNDIsIDMwLCA5NCwgMjMyLCAKLSAgICAxNTcsIDk0LCAyNDUsIDM3LCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNDIsIDEyLCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyNDIsIAotICAgIDEzLCA5NCwgMjMzLCAxNTcsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDI0MSwgMTY2LCA5NCwgMjMzLCAxMywgMTUsIDUsIDI0MywgCi0gICAgMTA5LCAyOSwgMjQwLCAyMDgsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDIzNiwgMzEsIDI0MiwgNzUsIDE1LCA1LCAyNDMsIAotICAgIDEwOSwgMjksIDIzNSwgMTY0LCA5NCwgMjQwLCAyMTMsIDk0LCAyNTMsIDE0NiwgMTUsIDUsIDI0MywgMTA5LCAyOSwgMjM0LCAKLSAgICAyNDcsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDIzNCwgMjEyLCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyMzQsIDk4LCAxNSwgNSwgCi0gICAgMjQzLCAxMDksIDI5LCAyMzQsIDk5LCA5NCwgMjMzLCAxMjgsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDIzMywgMjM3LCA5NCwgCi0gICAgMjU0LCAzMiwgMTUsIDUsIDI0MywgMTA5LCAyOSwgMjMzLCAxNTcsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDIzMSwgMTU3LCAKLSAgICA5NCwgMjQ1LCAxMDgsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDIzMSwgNDIsIDE1LCA1LCAyNDMsIDEwOSwgMjksIDIyOCwgNTAsIAotICAgIDE1LCA1LCAyNDMsIDEwOSwgMjksIDIyOCwgNTEsIDExMCwgMjI4LCA1MCwgMTUsIDUsIDI0MywgMTA5LCAyOSwgMTkzLCAxNSwgCi0gICAgNSwgMjQzLCAxMDksIDI5LCAyMjIsIDE3OSwgMTUsIDUsIDI0MywgMTA5LCAyOSwgMjIyLCAxNDcsIDE1LCA1LCAyNDMsIAotICAgIDEwOSwgMjksIDIyMCwgMjQzLCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyMjAsIDI0NCwgOTQsIDIxNiwgNjIsIDE1LCA1LCAKLSAgICAyNDMsIDEwOSwgMjksIDIyMCwgMjEwLCAxNSwgNSwgMjQzLCAxMDksIDI5LCAyMTgsIDI0NCwgMTUsIDUsIDI0MywgMTA5LCAKLSAgICAyOSwgMjE4LCAyMiwgMTUsIDUsIDI0MywgMTA5LCAyOSwgNjksIDE1LCA1LCAyNDMsIDEwOSwgMjksIDIxNSwgMTg4LCAxNSwgCi0gICAgNSwgMjQzLCAxMDksIDI5LCAyMTUsIDE4OSwgOTQsIDI0NiwgMzMsIDE1LCA1LCAyNDMsIDEwOSwgMTEwLCAyNDMsIDEwOCwgCi0gICAgMTUsIDUsIDI0MywgMTAzLCAxNSwgNSwgMjQzLCAxMDQsIDI0OSwgNjUsIDI0MywgMTAzLCAxNSwgNSwgMjQzLCAxMDEsIDE1LCAKLSAgICA1LCAyNDMsIDEwMiwgMTEwLCAyNDMsIDEwMiwgMjQzLCA3MywgMTEwLCAyNDMsIDcyLCAxNSwgNSwgMjQzLCA5NCwgMTUsIDUsIAotICAgIDI0MywgOTUsIDI0MywgMTAyLCAxMTAsIDI0MywgMTAyLCAyNDMsIDczLCAxMTAsIDI0MywgNzIsIDE1LCA1LCAyNDMsIDkzLCAKLSAgICAxNSwgNSwgMjQzLCA5MSwgMTUsIDUsIDI0MywgODIsIDE1LCA1LCAyNDMsIDgwLCAxNSwgNSwgMjQzLCA4MSwgMjE3LCAxOTIsIAotICAgIDE1LCA1LCAyNDMsIDgxLCAxMTAsIDI0MywgODAsIDE1LCA1LCAyNDMsIDgxLCAyNDksIDY1LCAyNDMsIDgwLCAxNSwgNSwgCi0gICAgMjQzLCA3MiwgMTUsIDUsIDI0MywgNzEsIDE1LCA1LCAyNDMsIDY2LCAxNSwgNSwgMjQzLCAxMiwgMTUsIDUsIDI0MywgMTMsIAotICAgIDI5LCAyMzMsIDIxNywgMTUsIDUsIDI0MiwgMTkwLCAxNSwgNSwgMjQyLCAxOTEsIDI5LCA3NCwgMTUsIDUsIDI0MiwgMTkxLCAKLSAgICAyOSwgNjksIDE1LCA1LCAyNDIsIDE5MSwgMjQ5LCA2NSwgMjQyLCAxOTAsIDE1LCA1LCAyNDIsIDE4OCwgMTUsIDUsIDI0MiwgCi0gICAgMTg5LCAxMTAsIDI0MiwgMTg4LCAxNSwgNSwgMjQyLCAxODksIDI0OSwgNjUsIDI0MiwgMTg4LCAxNSwgNSwgMjQyLCAxODUsIAotICAgIDE1LCA1LCAyNDIsIDE3MywgMTUsIDUsIDI0MiwgMTc0LCAyNDIsIDc1LCAxNSwgNSwgMjQyLCAxNzEsIDE1LCA1LCAyNDIsIAotICAgIDE3MiwgMjksIDExOCwgOTQsIDIzNiwgMzAsIDE1LCA1LCAyNDIsIDE3MiwgMjksIDI0MywgODEsIDIxNywgMTkyLCAxNSwgNSwgCi0gICAgMjQyLCAxNzIsIDI5LCAyMzYsIDMwLCAxNSwgNSwgMjQyLCAxNzIsIDI5LCAyMzIsIDE1NywgOTQsIDIzNiwgMzAsIDE1LCA1LCAKLSAgICAyNDIsIDE3MiwgMjksIDE5MywgMTUsIDUsIDI0MiwgMTY4LCAxNSwgNSwgMjQyLCAxNjYsIDE1LCA1LCAyNDIsIDE2NywgCi0gICAgMjQ5LCA2NSwgMjQyLCAxNjYsIDE1LCA1LCAyNDIsIDE2NywgMjksIDI1MiwgOTQsIDE1LCA1LCAyNDIsIDE2NywgMjksIAotICAgIDIxOCwgMjIsIDE1LCA1LCAyNDIsIDE2NywgMjE3LCAxOTIsIDE1LCA1LCAyNDIsIDkyLCAxNSwgNSwgMjQyLCA5MywgMjQ5LCAKLSAgICA2NSwgMjQyLCA5MiwgMTUsIDUsIDI0MiwgOTAsIDE1LCA1LCAyNDIsIDkxLCAyOSwgMjM0LCAyNDcsIDE1LCA1LCAyNDIsIAotICAgIDkxLCAyOSwgMjM0LCAyNDgsIDI5LCAyMzYsIDMxLCAyNDIsIDc1LCAxNSwgNSwgMjQyLCA5MSwgMjksIDIyOCwgNTAsIDE1LCAKLSAgICA1LCAyNDIsIDkxLCAyOSwgMjIyLCAxODAsIDk0LCAyMTYsIDc3LCAxNSwgNSwgMjQyLCA5MSwgMjQyLCA3NSwgMTUsIDUsIAotICAgIDI0MiwgODQsIDE1LCA1LCAyNDIsIDg1LCAyOSwgMTE4LCA5NCwgMjMzLCAyMTcsIDE1LCA1LCAyNDIsIDg1LCAyOSwgMjMzLCAKLSAgICAyMTcsIDE1LCA1LCAyNDIsIDg1LCAxMTAsIDI0MiwgODUsIDIzMiwgMTQ5LCAxNSwgNSwgMjQyLCA3OSwgMTUsIDUsIDI0MiwgCi0gICAgNzcsIDE1LCA1LCAyNDIsIDc4LCAyOSwgMjIwLCAyNDMsIDE1LCA1LCAyNDIsIDY5LCAxNSwgNSwgMjQyLCA2OCwgMTUsIDUsIAotICAgIDI0MiwgNjUsIDE1LCA1LCAyNDIsIDY0LCAxNSwgNSwgMTU5LCAxNSwgNSwgMjQyLCAzMCwgMjE3LCAxOTIsIDE1LCA1LCAKLSAgICAyNDIsIDMwLCAyNDIsIDc1LCAxNSwgNSwgMjQyLCAxMiwgMTUsIDUsIDI0MSwgMTY1LCAxNSwgNSwgMjQxLCAxNjYsIDI5LCAKLSAgICAyNTMsIDE0NiwgMTUsIDUsIDI0MSwgMTY2LCAyOSwgMjUzLCAxNDQsIDE1LCA1LCAyNDEsIDE2NiwgMjksIDI1MiwgOTQsIAotICAgIDE1LCA1LCAyNDEsIDE2NiwgMjksIDI0NywgMTM5LCAxNSwgNSwgMjQxLCAxNjYsIDI5LCAyNDMsIDEwMSwgMTUsIDUsIDI0MSwgCi0gICAgMTY2LCAyOSwgMjM0LCA5MCwgMTUsIDUsIDI0MSwgMTY2LCAyOSwgMjI4LCA1MCwgMTUsIDUsIDI0MSwgMTY2LCAyOSwgMjIwLCAKLSAgICAyNDMsIDE1LCA1LCAyNDEsIDE2NiwgMjksIDY5LCAxNSwgNSwgMjQwLCAyMTIsIDE1LCA1LCAyNDAsIDIwOCwgMTUsIDUsIAotICAgIDI0MCwgMjA5LCAyOSwgMjU0LCAzMiwgMTUsIDUsIDI0MCwgMjA5LCAyOSwgMjQyLCAxMiwgMTUsIDUsIDI0MCwgMjA5LCAyOSwgCi0gICAgMjM0LCAyMTIsIDE1LCA1LCAyNDAsIDIwOSwgMjksIDIzMiwgMjI2LCAxNSwgNSwgMjQwLCAyMDksIDI5LCAyMTUsIDE4OCwgCi0gICAgMTUsIDUsIDI0MCwgMjA1LCAxNSwgNSwgNzIsIDE1LCA1LCAyNDAsIDE0NiwgNjEsIDE1LCA1LCAyNDAsIDEwOCwgMTUsIDUsIAotICAgIDIzNiwgNTgsIDE1LCA1LCAyMzYsIDU5LCAxMTAsIDIzNiwgNTksIDI1MSwgMjcsIDE1LCA1LCAyMzYsIDU5LCAxMTAsIDIzNiwgCi0gICAgNTksIDIxOSwgMTY1LCAxNSwgNSwgMjM2LCAzMywgMTUsIDUsIDIzNiwgMzAsIDE1LCA1LCAyMzYsIDMxLCAyNDcsIDE5NCwgCi0gICAgMTUsIDUsIDIzNiwgMzEsIDIyMywgMTg4LCAxNSwgNSwgMjM2LCAzMSwgMTEwLCAyMzYsIDMxLCAyMjAsIDE5NCwgMTEwLCAKLSAgICAyMjAsIDE5NCwgMjE1LCAxODksIDExMCwgMjE1LCAxODgsIDE1LCA1LCAyMzYsIDMxLCAyNDIsIDc1LCAxNSwgNSwgMjM2LCAKLSAgICAyMiwgMTUsIDUsIDIzNiwgMjMsIDI5LCAyNDMsIDgxLCAyMTcsIDE5MiwgMTUsIDUsIDIzNiwgMjEsIDE1LCA1LCAyMzYsIAotICAgIDExLCAxNSwgNSwgMjM2LCAxMiwgMjksIDIxOCwgMjIsIDE1LCA1LCAyMzYsIDEyLCAyNDksIDY1LCAyMzYsIDExLCAxNSwgNSwgCi0gICAgMjM2LCAxMiwgMjI3LCAzMCwgMjM2LCAxMSwgMTUsIDUsIDIzNiwgMTIsIDIxOSwgMTY1LCAxNSwgNSwgMjM2LCA0LCAxNSwgCi0gICAgNSwgMjM1LCAyNTEsIDE1LCA1LCAyMzUsIDE3NywgMTUsIDUsIDIzNSwgMTYzLCAxNSwgNSwgMTgxLCAxNSwgNSwgMjM1LCAKLSAgICAxNywgMjksIDYxLCAxNSwgNSwgMjM1LCAxNywgMjksIDI1NCwgMTYwLCAxNSwgNSwgMjM1LCAxNywgMjksIDI1NCwgMTYxLCAKLSAgICA5NCwgMjMzLCAyMzYsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjUzLCAxNDQsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjUyLCA5NCwgCi0gICAgMTUsIDUsIDIzNSwgMTcsIDI5LCAyNTIsIDc5LCAxNSwgNSwgMjM1LCAxNywgMjksIDEzNCwgMTUsIDUsIDIzNSwgMTcsIDI5LCAKLSAgICAyNTEsIDE4NCwgMTUsIDUsIDIzNSwgMTcsIDI5LCAyNDUsIDUwLCAxNSwgNSwgMjM1LCAxNywgMjksIDI0NSwgMzcsIDE1LCAKLSAgICA1LCAyMzUsIDE3LCAyOSwgMjQzLCAxMTAsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjQzLCA5NCwgMTUsIDUsIDIzNSwgMTcsIAotICAgIDI5LCAyNDMsIDgxLCAyMTcsIDE5MiwgMTUsIDUsIDIzNSwgMTcsIDI5LCAyNDMsIDcyLCAxNSwgNSwgMjM1LCAxNywgMjksIAotICAgIDI0MywgNzMsIDk0LCAyMjEsIDIzLCA5NCwgNjEsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjQyLCAxOTAsIDE1LCA1LCAyMzUsIAotICAgIDE3LCAyOSwgMjQyLCAxNzMsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjQyLCAxNjcsIDk0LCAyMjIsIDE0NywgMTUsIDUsIDIzNSwgCi0gICAgMTcsIDI5LCAyNDIsIDE2NywgMjQ5LCA2NSwgMjQyLCAxNjYsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjQyLCA5MiwgMTUsIDUsIAotICAgIDIzNSwgMTcsIDI5LCAyNDIsIDY4LCAxNSwgNSwgMjM1LCAxNywgMjksIDIzNiwgMzAsIDE1LCA1LCAyMzUsIDE3LCAyOSwgCi0gICAgMjM2LCAxMSwgMTUsIDUsIDIzNSwgMTcsIDI5LCAyMzQsIDI0NywgMTUsIDUsIDIzNSwgMTcsIDI5LCAyMzQsIDEwMSwgMTUsIAotICAgIDUsIDIzNSwgMTcsIDI5LCAyMzQsIDk4LCAxNSwgNSwgMjM1LCAxNywgMjksIDIzMywgMTMsIDE1LCA1LCAyMzUsIDE3LCAyOSwgCi0gICAgMjMyLCAxNTYsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjMxLCAxNTYsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjMxLCAxNTcsIDk0LCAKLSAgICAyNDYsIDMzLCAxNSwgNSwgMjM1LCAxNywgMjksIDIzMSwgMTU3LCA5NCwgMjQyLCAxOTAsIDE1LCA1LCAyMzUsIDE3LCAyOSwgCi0gICAgMjMxLCAxNTcsIDk0LCAyMTcsIDIyOSwgMTUsIDUsIDIzNSwgMTcsIDI5LCAyMzEsIDQyLCAxNSwgNSwgMjM1LCAxNywgMjksIAotICAgIDIzMSwgNDMsIDk0LCAyMjgsIDQ1LCAxNSwgNSwgMjM1LCAxNywgMjksIDIyOSwgMTg3LCAxNSwgNSwgMjM1LCAxNywgMjksIAotICAgIDIyOCwgNTAsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjI1LCAyNDAsIDE1LCA1LCAyMzUsIDE3LCAyOSwgMjIzLCA1MSwgMTUsIAotICAgIDUsIDIzNSwgMTcsIDI5LCAyMjIsIDIwMiwgMTUsIDUsIDIzNSwgMTcsIDI5LCAyMjIsIDE0NywgMTUsIDUsIDIzNSwgMTcsIAotICAgIDI5LCAyMjEsIDI0LCAxNSwgNSwgMjM1LCAxNywgMjksIDIyMCwgMjQzLCAxNSwgNSwgMjM1LCAxNywgMjksIDIyMCwgMjEwLCAKLSAgICAxNSwgNSwgMjM1LCAxNywgMjksIDIyMCwgMTUwLCAxNSwgNSwgMjM1LCAxNywgMjksIDIyMCwgMTA4LCAxNSwgNSwgMjM1LCAKLSAgICAxNywgMjksIDIxOCwgMjUyLCAxNSwgNSwgMjM1LCAxNywgMjksIDIxOCwgMSwgMTUsIDUsIDIzNSwgMTcsIDI5LCA2OSwgMTUsIAotICAgIDUsIDIzNSwgMTcsIDI5LCAyMTUsIDE5NywgMTUsIDUsIDIzNSwgMTcsIDI5LCAyMTUsIDE4OCwgMTUsIDUsIDIzNSwgMTcsIAotICAgIDI5LCAyMTUsIDE2MywgMjksIDE5MywgMTUsIDUsIDIzNSwgMTcsIDI5LCAyMTUsIDEwMCwgMTUsIDUsIDIzNSwgMTcsIDI5LCAKLSAgICAyMTIsIDM3LCAxNSwgNSwgMjM1LCAxNSwgMTUsIDUsIDIzNSwgMTYsIDI0OSwgNjUsIDIzNSwgMTUsIDE1LCA1LCAyMzUsIDgsIAotICAgIDE1LCA1LCAyMzUsIDUsIDE1LCA1LCAyMzUsIDMsIDE1LCA1LCAyMzUsIDIsIDE1LCA1LCAyMzUsIDAsIDE1LCA1LCAyMzUsIAotICAgIDEsIDExMCwgMjM1LCAwLCAxNSwgNSwgMjM0LCAyNDcsIDE1LCA1LCAyMzQsIDI0OCwgMjksIDIzNiwgMzEsIDI0MiwgNzUsIAotICAgIDE1LCA1LCAyMzQsIDI0MywgMTUsIDUsIDIzNCwgMjQ0LCAyOSwgMjUyLCA5NCwgMTUsIDUsIDIzNCwgMjQ0LCAyNDksIDY1LCAKLSAgICAyMzQsIDI0MywgMTUsIDUsIDIzNCwgMjQxLCAxNSwgNSwgMjM0LCAyNDAsIDE1LCA1LCAyMzQsIDIxMiwgMTUsIDUsIDIzNCwgCi0gICAgMjEzLCAyMzMsIDE0MSwgMjksIDExMSwgMTEwLCAyMzMsIDE0MSwgMjksIDY5LCAxNSwgNSwgMjM0LCAyMTMsIDExMCwgMjM0LCAKLSAgICAyMTMsIDIzMywgMTQxLCAyOSwgMTExLCAxMTAsIDIzMywgMTQxLCAyOSwgNjksIDE1LCA1LCAyMzQsIDE2MywgMTUsIDUsIAotICAgIDIzNCwgMTAxLCAxNSwgNSwgMjM0LCAxMDIsIDI5LCAyNTIsIDk0LCAxNSwgNSwgMjM0LCAxMDIsIDI5LCA2OSwgMTUsIDUsIAotICAgIDIzNCwgMTAyLCAyOSwgMjE1LCAxODgsIDE1LCA1LCAyMzQsIDk4LCAxNSwgNSwgMjM0LCA5MCwgMTUsIDUsIDIzNCwgNzcsIAotICAgIDE1LCA1LCAyMzQsIDc2LCAxNSwgNSwgMjM0LCA3NCwgMTUsIDUsIDIzNCwgNzUsIDExMCwgMjM0LCA3NCwgMTUsIDUsIDIzMywgCi0gICAgMjM4LCAxNSwgNSwgMjMzLCAyMzksIDExMCwgMjQxLCAxNjYsIDI5LCAyNTMsIDE0NSwgMjMzLCAyMzksIDExMCwgMjQxLCAKLSAgICAxNjYsIDI5LCAyNTMsIDE0NCwgMTUsIDUsIDIzMywgMjM2LCAxNSwgNSwgMjMzLCAyMzQsIDE1LCA1LCAyMzMsIDIzNSwgCi0gICAgMjE0LCAyNDQsIDE3LCAxNSwgNSwgMjMzLCAyMzMsIDE1LCA1LCAyMzMsIDIzMCwgMTUsIDUsIDIzMywgMjMxLCAyNDIsIDc1LCAKLSAgICAxNSwgNSwgMjMzLCAyMjksIDE1LCA1LCAyMzMsIDIxNywgMTUsIDUsIDIzMywgMjE4LCAyMjcsIDMwLCAyMzMsIDIxNywgMTUsIAotICAgIDUsIDIzMywgMjEyLCAxNSwgNSwgMjMzLCAxOTQsIDE1LCA1LCAyMzMsIDE1NywgMTUsIDUsIDIzMywgMTQwLCAxNSwgNSwgCi0gICAgMjMzLCAxNDEsIDI5LCA2MSwgMTUsIDUsIDIzMywgMTQxLCAyOSwgMTE4LCA5NCwgMjQ4LCAxNjUsIDk0LCAxNTksIDE1LCA1LCAKLSAgICAyMzMsIDE0MSwgMjksIDExOCwgOTQsIDI0MywgNzIsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDExOCwgOTQsIDIzMywgMTI4LCAKLSAgICAxNSwgNSwgMjMzLCAxNDEsIDI5LCAyNTQsIDg2LCAxNSwgNSwgMjMzLCAxNDEsIDI5LCAyNTQsIDMyLCAxNSwgNSwgMjMzLCAKLSAgICAxNDEsIDI5LCAyNTMsIDE0NywgMjEyLCAzMywgMjE3LCAxOTIsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDI1MiwgOTQsIDE1LCAKLSAgICA1LCAyMzMsIDE0MSwgMjksIDI1MSwgMTg0LCAxNSwgNSwgMjMzLCAxNDEsIDI5LCAyNDgsIDExMSwgMTUsIDUsIDIzMywgCi0gICAgMTQxLCAyOSwgMjQ1LCAxMDgsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDI0MywgMTEwLCAxNSwgNSwgMjMzLCAxNDEsIDI5LCAKLSAgICAyNDMsIDcyLCAxNSwgNSwgMjMzLCAxNDEsIDI5LCAyNDIsIDg0LCAxNSwgNSwgMjMzLCAxNDEsIDI5LCAyNDIsIDg1LCA5NCwgCi0gICAgMjQyLCA4NCwgMTUsIDUsIDIzMywgMTQxLCAyOSwgMTU5LCAxNSwgNSwgMjMzLCAxNDEsIDI5LCAyNDIsIDEyLCAxNSwgNSwgCi0gICAgMjMzLCAxNDEsIDI5LCAyNDEsIDE2NiwgMjksIDIyOCwgNTAsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIzNiwgMzEsIDI0MiwgCi0gICAgNzUsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIzNiwgMTEsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIzNiwgMTIsIDk0LCAxNTksIAotICAgIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIzNiwgMTIsIDk0LCAyMzIsIDE1NiwgMTUsIDUsIDIzMywgMTQxLCAyOSwgMjM0LCAKLSAgICAxMDEsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIzNCwgOTAsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIzMywgMjM2LCAxNSwgNSwgCi0gICAgMjMzLCAxNDEsIDI5LCAyMzMsIDIzMCwgMTUsIDUsIDIzMywgMTQxLCAyOSwgMjMzLCAyMzEsIDk0LCAyNDEsIDE2NiwgOTQsIAotICAgIDYxLCAxNSwgNSwgMjMzLCAxNDEsIDI5LCAyMzMsIDE0MCwgMTUsIDUsIDIzMywgMTQxLCAyOSwgMjMyLCAyMjYsIDE1LCA1LCAKLSAgICAyMzMsIDE0MSwgMjksIDIzMiwgMTU2LCAxNSwgNSwgMjMzLCAxNDEsIDI5LCAyMzIsIDE0NCwgMTUsIDUsIDIzMywgMTQxLCAKLSAgICAyOSwgMjMxLCAxNTYsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIzMSwgMTU3LCA5NCwgMjQ1LCAxMDgsIDE1LCA1LCAyMzMsIAotICAgIDE0MSwgMjksIDIzMCwgMTMxLCAxNSwgNSwgMjMzLCAxNDEsIDI5LCAyMjksIDE4NywgMTUsIDUsIDIzMywgMTQxLCAyOSwgCi0gICAgMjIwLCAyNDQsIDk0LCAyMTgsIDI0NCwgMTUsIDUsIDIzMywgMTQxLCAyOSwgMjIwLCAxOTAsIDk0LCAyNDIsIDE2NywgOTQsIAotICAgIDI0NSwgNTAsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIyMCwgMTkwLCA5NCwgMjQyLCAxNjcsIDIxNywgMTkyLCAxNSwgNSwgCi0gICAgMjMzLCAxNDEsIDI5LCAyMjAsIDE0OCwgMTUsIDUsIDIzMywgMTQxLCAyOSwgMjIwLCAxNDksIDk0LCAyMjAsIDE0OCwgMTUsIAotICAgIDUsIDIzMywgMTQxLCAyOSwgMjE4LCAyNDQsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIxOCwgMzMsIDE1LCA1LCAyMzMsIDE0MSwgCi0gICAgMjksIDIxOCwgMjIsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIxNywgMjMwLCA5NCwgMTE4LCA5NCwgMjE5LCAyOCwgOTQsIAotICAgIDIwNSwgMTUsIDUsIDIzMywgMTQxLCAyOSwgNjksIDE1LCA1LCAyMzMsIDE0MSwgMjksIDExMSwgOTQsIDYxLCAxNSwgNSwgCi0gICAgMjMzLCAxNDEsIDI5LCAxMTEsIDk0LCAxMTEsIDk0LCA2OSwgMTUsIDUsIDIzMywgMTQxLCAyOSwgMjE1LCAxOTgsIDk0LCAKLSAgICAyNTMsIDE0NiwgMTUsIDUsIDIzMywgMTQxLCAyOSwgMjE1LCAxODgsIDE1LCA1LCAyMzMsIDE0MSwgMjksIDIxNSwgMTAwLCAKLSAgICAxNSwgNSwgMjMzLCAxNDEsIDIxOSwgMTY1LCAxNSwgNSwgMjMzLCAxMzgsIDE1LCA1LCAyMzMsIDEzOSwgMjksIDIyMCwgCi0gICAgMjQzLCAxNSwgNSwgMjMzLCAxMzksIDI5LCAyMjAsIDI0NCwgOTQsIDIxOCwgMjQ0LCAxNSwgNSwgMjMzLCAxMzksIDI0MiwgCi0gICAgNzUsIDE1LCA1LCAyMzMsIDEzOSwgMjQyLCA3NiwgMTEwLCAyMzMsIDEzOSwgMjQyLCA3NiwgMjIwLCAyNDMsIDE1LCA1LCAKLSAgICAyMzMsIDEzNSwgMTUsIDUsIDIzMywgMTI4LCAxNSwgNSwgMjMzLCAxMjksIDI5LCAyMzMsIDEyOCwgMTUsIDUsIDIzMywgCi0gICAgMTI2LCAxNSwgNSwgMjMzLCAxMjcsIDI5LCAyMzMsIDIxNywgMTUsIDUsIDIzMywgMTI3LCAyOSwgMjMzLCAyMTgsIDk0LCAKLSAgICAyMjMsIDUxLCAxNSwgNSwgMjMzLCAxMywgMTUsIDUsIDIzMiwgMjU0LCAxNSwgNSwgMjMyLCAyNDUsIDE1LCA1LCAyMzIsIAotICAgIDIyNiwgMTUsIDUsIDIzMiwgMTU2LCAxNSwgNSwgMjMyLCAxNTcsIDI5LCAyNTIsIDk0LCAxNSwgNSwgMjMyLCAxNTQsIDE1LCAKLSAgICA1LCAyMzIsIDE1NSwgMjksIDI1NCwgODYsIDE1LCA1LCAyMzIsIDE1NSwgMjksIDI1MiwgOTQsIDE1LCA1LCAyMzIsIDE1NSwgCi0gICAgMjksIDI0NSwgMzcsIDE1LCA1LCAyMzIsIDE1NSwgMjksIDI0NSwgMzgsIDIxNywgMTkyLCAxNSwgNSwgMjMyLCAxNTUsIDI5LCAKLSAgICAyNDMsIDgxLCAyMTcsIDE5MiwgMTUsIDUsIDIzMiwgMTU1LCAyOSwgMjQxLCAxNjYsIDI5LCAyNTIsIDk0LCAxNSwgNSwgCi0gICAgMjMyLCAxNTUsIDI5LCAyMzYsIDExLCAxNSwgNSwgMjMyLCAxNTUsIDI5LCAyMzUsIDUsIDE1LCA1LCAyMzIsIDE1NSwgMjksIAotICAgIDIzNSwgMywgMTUsIDUsIDIzMiwgMTU1LCAyOSwgMjM1LCA0LCA5NCwgMjUzLCAxNDYsIDE1LCA1LCAyMzIsIDE1NSwgMjksIAotICAgIDIzNCwgMTAxLCAxNSwgNSwgMjMyLCAxNTUsIDI5LCAyMzMsIDE1OCwgOTQsIDI1MywgMTQ2LCAxNSwgNSwgMjMyLCAxNTUsIAotICAgIDI5LCAyMzMsIDE0MCwgMTUsIDUsIDIzMiwgMTU1LCAyOSwgMjMxLCAxNTcsIDk0LCAyNDUsIDEwOCwgMTUsIDUsIDIzMiwgCi0gICAgMTU1LCAyOSwgMjI5LCAxODcsIDE1LCA1LCAyMzIsIDE1NSwgMjksIDIyOCwgOTIsIDE1LCA1LCAyMzIsIDE1NSwgMjksIAotICAgIDIyMCwgMTE4LCA5NCwgMjUzLCAxNDYsIDE1LCA1LCAyMzIsIDE1NSwgMjksIDIyMCwgMTAwLCA5NCwgMjUxLCA1NCwgMTUsIAotICAgIDUsIDIzMiwgMTU1LCAyOSwgMjE2LCA3NywgMTUsIDUsIDIzMiwgMTU1LCAyMTcsIDE5MiwgMTUsIDUsIDIzMiwgMTU1LCAKLSAgICAyNDksIDY1LCAyMzIsIDE1NCwgMTUsIDUsIDIzMiwgMTU1LCAyMjcsIDMwLCAyMzIsIDE1NCwgMTUsIDUsIDIzMiwgMTU1LCAKLSAgICAyMTksIDE2NSwgMTUsIDUsIDIzMiwgMTU1LCAyMjAsIDIyNSwgMTUsIDUsIDIzMiwgMTUzLCAxNSwgNSwgMjMyLCAxNDksIAotICAgIDE1LCA1LCAyMzIsIDE1MCwgMTEwLCAyMzIsIDE0OSwgMTUsIDUsIDIzMiwgMTUwLCAyMjcsIDMwLCAyMzIsIDE0OSwgMTUsIAotICAgIDUsIDIzMiwgMTUwLCAyMjAsIDIyNSwgMTUsIDUsIDIzMiwgMTQ3LCAxNSwgNSwgMjMyLCAxNDQsIDE1LCA1LCAyMzIsIDE0MiwgCi0gICAgMTUsIDUsIDIzMiwgMTQzLCAxMTAsIDIzMiwgMTQyLCAxNSwgNSwgMjMyLCAxNDMsIDExMCwgMjMyLCAxNDMsIDI0MywgNzMsIAotICAgIDExMCwgMjQzLCA3MiwgMTUsIDUsIDE4OCwgMTUsIDUsIDIzMiwgNDMsIDI5LCAyMTgsIDIyLCAxNSwgNSwgMjMyLCA0MywgCi0gICAgMjQyLCA3NSwgMTUsIDUsIDIzMiwgNDIsIDE1LCA1LCAyMzIsIDE1LCAxNSwgNSwgMjMxLCAyMjksIDE1LCA1LCAyMzEsIAotICAgIDIxMCwgMTUsIDUsIDIzMSwgMjA5LCAxNSwgNSwgMjMxLCAxNTYsIDE1LCA1LCAyMzEsIDExMiwgMTUsIDUsIDIzMSwgNDIsIAotICAgIDE1LCA1LCAyMzEsIDEsIDE1LCA1LCAyMzAsIDE3MiwgMTUsIDUsIDIzMCwgMTczLCAxMTAsIDIzMCwgMTcyLCAxNSwgNSwgCi0gICAgMjMwLCAxNjMsIDE1LCA1LCAyMzAsIDE2NCwgMjQyLCA3NSwgMTUsIDUsIDIzMCwgMTQ4LCAxNSwgNSwgMjMwLCAxMzQsIDE1LCAKLSAgICA1LCAyMzAsIDEzMSwgMTUsIDUsIDIzMCwgMTMyLCAyOSwgNjEsIDE1LCA1LCAyMzAsIDEzMiwgMjksIDIzMywgMjE3LCAxNSwgCi0gICAgNSwgMjMwLCAxMzIsIDI5LCAyMTIsIDEwOSwgMTUsIDUsIDIzMCwgMTMyLCAxMTAsIDIzMCwgMTMxLCAxNSwgNSwgMjMwLCAKLSAgICAxMzIsIDExMCwgMjMwLCAxMzIsIDI5LCAxMTgsIDk0LCAyMDUsIDE1LCA1LCAyMzAsIDEzMiwgMjQ5LCA2NSwgMjMwLCAxMzEsIAotICAgIDE1LCA1LCAyMzAsIDEyOSwgMTUsIDUsIDIzMCwgMTMwLCAyOSwgNjEsIDE1LCA1LCAyMzAsIDEzMCwgMjksIDExOCwgOTQsIAotICAgIDI0NywgMjExLCAxNSwgNSwgMjMwLCAxMzAsIDI5LCAyNDcsIDIxMSwgMTUsIDUsIDIzMCwgMTMwLCAyNDIsIDc1LCAxNSwgNSwgCi0gICAgMjA1LCAxNSwgNSwgMjMwLCA0NSwgMTUsIDUsIDIzMCwgMzQsIDE1LCA1LCAyMzAsIDM1LCAyMzUsIDE5MCwgMTUsIDUsIAotICAgIDIzMCwgMzUsIDI5LCAyMjAsIDE1MSwgMjE3LCAxOTIsIDE1LCA1LCAyMzAsIDM1LCAyMjcsIDMwLCAyMzAsIDM0LCAxNSwgNSwgCi0gICAgMjMwLCAzMywgMTUsIDUsIDIzMCwgMjgsIDIyOCwgMzYsIDE1LCA1LCAyMzAsIDI3LCAxNSwgNSwgMjMwLCAyNiwgMTUsIDUsIAotICAgIDIyOSwgMTg3LCAxNSwgNSwgMjI5LCAxODgsIDI5LCA2MSwgMTUsIDUsIDIyOSwgMTg4LCAyOSwgMjE1LCAxODgsIDE1LCA1LCAKLSAgICAyMjksIDE4OCwgMjIwLCAyMjUsIDE1LCA1LCAyMjksIDY0LCAxNSwgNSwgMjI5LCA2NSwgMjksIDc0LCAxNSwgNSwgMjI5LCAKLSAgICA2MywgMTUsIDUsIDIyOSwgMzQsIDE1LCA1LCAyMjksIDM1LCAyOSwgMjQzLCA4MSwgMjE3LCAxOTIsIDE1LCA1LCAyMjksIAotICAgIDM1LCAyOSwgMjQzLCA3MywgOTQsIDI0MywgODEsIDIxNywgMTkyLCAxNSwgNSwgMjI5LCAzMiwgMTUsIDUsIDIyOSwgMzMsIAotICAgIDI5LCAyNTQsIDMyLCAxNSwgNSwgMjI5LCAzMywgMjksIDI1MywgMTQ2LCAxNSwgNSwgMjI5LCAzMywgMjksIDI1MywgMTQ3LCAKLSAgICA5NCwgMjUzLCAxNDYsIDE1LCA1LCAyMjksIDMzLCAyOSwgMjQyLCA4NCwgMTUsIDUsIDIyOSwgMzMsIDI5LCAyMzEsIDE1NywgCi0gICAgOTQsIDI0MywgODEsIDIxNywgMTkyLCAxNSwgNSwgMjI5LCAzMywgMjksIDIyOSwgMTg3LCAxNSwgNSwgMjI5LCAzMywgMjksIAotICAgIDIyOCwgNTAsIDE1LCA1LCAyMjksIDMzLCAyOSwgMjIwLCAyNDMsIDE1LCA1LCAyMjksIDMzLCAyOSwgMjIwLCAyNDQsIDk0LCAKLSAgICAxMTgsIDI1NCwgMzIsIDE1LCA1LCAyMjksIDMzLCAyOSwgMjIwLCAyNDQsIDk0LCAyNTMsIDE0NiwgMTUsIDUsIDIyOSwgMzMsIAotICAgIDI5LCAyMjAsIDI0NCwgOTQsIDI1MywgMTQ3LCA5NCwgMjUzLCAxNDYsIDE1LCA1LCAyMjksIDMzLCAyOSwgMjE1LCAxOTgsIAotICAgIDk0LCAyNTMsIDE0NiwgMTUsIDUsIDIyOSwgMzMsIDI5LCAyMTUsIDEwMCwgMTUsIDUsIDIyOSwgMjEsIDE1LCA1LCAyMjgsIAotICAgIDkyLCAxNSwgNSwgMjI4LCA2NSwgMTUsIDUsIDIyOCwgNTAsIDE1LCA1LCAyMjgsIDUxLCAyMzMsIDEzOSwgMjksIDI0MywgCi0gICAgNzIsIDE1LCA1LCAyMjgsIDUxLCAyMzMsIDEzOSwgMjksIDIzMSwgMjEwLCAxNSwgNSwgMjI4LCA1MSwgMjMzLCAxMzksIDI5LCAKLSAgICAyMjIsIDE3OSwgMTUsIDUsIDIyOCwgNTEsIDIzMywgMTM5LCAyOSwgMjIyLCAxODAsIDExMCwgMjI4LCA1MSwgMjMzLCAxMzksIAotICAgIDI5LCAyMjIsIDE3OSwgMTUsIDUsIDIyOCwgNTEsIDIzMywgMTM5LCAyOSwgMjE1LCAxMDAsIDE1LCA1LCAyMjgsIDUxLCAKLSAgICAyMTcsIDE5MiwgMTUsIDUsIDIyOCwgNTEsIDExMCwgMjI4LCA1MCwgMTUsIDUsIDIyOCwgNTEsIDI0OSwgNjUsIDIyOCwgNTAsIAotICAgIDE1LCA1LCAyMjgsIDUxLCAyNDksIDY1LCAyMjgsIDUxLCAyMzMsIDEzOSwgMTEwLCAyMzMsIDEzOCwgMTUsIDUsIDIyOCwgCi0gICAgNDUsIDE1LCA1LCAyMjgsIDQ2LCAyNTQsIDE4NCwgMjksIDI1MywgMTQxLCAxNSwgNSwgMjI4LCA0NiwgMjU0LCAxODQsIDI5LCAKLSAgICAyNTEsIDE4NCwgMTUsIDUsIDIyOCwgNDYsIDI1NCwgMTg0LCAyOSwgMjQ2LCAyOSwgMTUsIDUsIDIyOCwgNDYsIDI1NCwgCi0gICAgMTg0LCAyOSwgMjQyLCA4NCwgMTUsIDUsIDIyOCwgNDYsIDI1NCwgMTg0LCAyOSwgMjM2LCAzMSwgMjQyLCA3NSwgMTUsIDUsIAotICAgIDIyOCwgNDYsIDI1NCwgMTg0LCAyOSwgMjM1LCAzLCAxNSwgNSwgMjI4LCA0NiwgMjU0LCAxODQsIDI5LCAyMzMsIDE1NywgCi0gICAgMTUsIDUsIDIyOCwgNDYsIDI1NCwgMTg0LCAyOSwgMjI5LCAxODcsIDE1LCA1LCAyMjgsIDQ2LCAyNTQsIDE4NCwgMjksIAotICAgIDIyMCwgOTcsIDE1LCA1LCAyMjgsIDQ2LCAyNTQsIDE4NCwgMjksIDIxNSwgMTk3LCAxNSwgNSwgMjI4LCA0NiwgMjM0LCA3NSwgCi0gICAgMjksIDI1MSwgMTg0LCAxNSwgNSwgMjI4LCA0NiwgMjM0LCA3NSwgMjksIDI1MSwgMTg1LCA2OSwgMTUsIDUsIDE5MywgMTUsIAotICAgIDUsIDIyNiwgMjA0LCAxNSwgNSwgMjI2LCAxNzQsIDE1LCA1LCAyMjYsIDE0OSwgMTUsIDUsIDIyNiwgMzcsIDE1LCA1LCAKLSAgICAyMjUsIDI0MCwgMTUsIDUsIDIyNSwgMjQxLCAyOSwgNjEsIDE1LCA1LCAyMjUsIDI0MSwgMjksIDI1NCwgMTg1LCAxNSwgNSwgCi0gICAgMjI1LCAyNDEsIDI5LCAyNTEsIDE4NCwgMTUsIDUsIDIyNSwgMjQxLCAyOSwgMjUxLCA1NCwgMTUsIDUsIDIyNSwgMjQxLCAKLSAgICAyOSwgNzQsIDE1LCA1LCAyMjUsIDI0MSwgMjksIDcyLCAxNSwgNSwgMjI1LCAyNDEsIDI5LCAyNDAsIDEwOCwgMTUsIDUsIAotICAgIDIyNSwgMjQxLCAyOSwgNjksIDE1LCA1LCAyMjUsIDI0MSwgMjksIDIxNSwgMTk3LCAxNSwgNSwgMjI1LCAyNDEsIDI0OSwgCi0gICAgNjUsIDIyNSwgMjQwLCAxNSwgNSwgMjI1LCAxODUsIDE1LCA1LCAyMjUsIDE4NiwgMjksIDIzNCwgMjQzLCAxNSwgNSwgMjI1LCAKLSAgICAxODYsIDI5LCAyMTUsIDE4OCwgMTUsIDUsIDIyNSwgMTg2LCAyOSwgMjEyLCAxMDksIDE1LCA1LCAyMjUsIDE4NiwgMjI3LCAKLSAgICAzMCwgMjI1LCAxODUsIDE1LCA1LCAyMDMsIDE1LCA1LCAyMjQsIDcyLCAxNSwgNSwgMjIzLCAxODgsIDE1LCA1LCAyMjMsIAotICAgIDUxLCAxNSwgNSwgMjIyLCAyMDIsIDE1LCA1LCAyMjIsIDE5MSwgMjI4LCAzNiwgMTUsIDUsIDIyMiwgMTkwLCAxNSwgNSwgCi0gICAgMjIyLCAxOTEsIDI5LCA2MSwgMTUsIDUsIDIyMiwgMTkxLCAyOSwgMjQ2LCAzMywgMTUsIDUsIDIyMiwgMTkxLCAyOSwgMjQ2LCAKLSAgICAzMSwgMTUsIDUsIDIyMiwgMTkxLCAyOSwgMTU5LCAxNSwgNSwgMjIyLCAxOTEsIDI5LCAyMzQsIDI0NywgMTUsIDUsIDIyMiwgCi0gICAgMTkxLCAyOSwgMjMzLCAyMTcsIDE1LCA1LCAyMjIsIDE5MSwgMjksIDIzMiwgMTQyLCAxNSwgNSwgMjIyLCAxOTEsIDI5LCAKLSAgICAyMzEsIDQyLCAxNSwgNSwgMjIyLCAxOTEsIDI5LCAyMjgsIDUwLCAxNSwgNSwgMjIyLCAxOTEsIDI5LCAyMjIsIDE3OSwgMTUsIAotICAgIDUsIDIyMiwgMTkxLCAyOSwgMjIwLCAyMTAsIDE1LCA1LCAyMjIsIDE5MSwgMjksIDIxOCwgNDEsIDE1LCA1LCAyMjIsIDE5MSwgCi0gICAgMjksIDIxNSwgMTk3LCAxNSwgNSwgMjIyLCAxOTEsIDI5LCAyMTUsIDE5NCwgMTUsIDUsIDIyMiwgMTkxLCAyOSwgMjE1LCAKLSAgICAxNjcsIDE1LCA1LCAyMjIsIDE5MSwgMjksIDIxNSwgMTIxLCAxNSwgNSwgMjIyLCAxOTEsIDI5LCAyMTUsIDEwMCwgMTUsIDUsIAotICAgIDIyMiwgMTkxLCAxMTAsIDIyMiwgMTkwLCAxNSwgNSwgMjIyLCAxOTEsIDI0MiwgNzUsIDE1LCA1LCAyMjIsIDE3OSwgMTUsIAotICAgIDUsIDIyMiwgMTgwLCAyMzMsIDE0MSwgMjksIDI1MywgMTQ0LCAxNSwgNSwgMjIyLCAxNTUsIDE1LCA1LCAyMjIsIDE0NywgCi0gICAgMTUsIDUsIDIyMSwgMjQsIDE1LCA1LCAyMjEsIDIyLCAxNSwgNSwgMjIxLCAyMywgMjksIDYxLCAxNSwgNSwgMjIxLCAyMywgCi0gICAgMjksIDI1MiwgOTQsIDE1LCA1LCAyMjEsIDIzLCAyOSwgMjQyLCAxNjYsIDE1LCA1LCAyMjEsIDIzLCAyOSwgMjI5LCAxODcsIAotICAgIDE1LCA1LCAyMjEsIDIzLCAyOSwgMjIwLCAxNDgsIDE1LCA1LCAyMjEsIDIzLCAyOSwgMjE2LCA2MiwgMTUsIDUsIDIyMSwgCi0gICAgMjMsIDI5LCA2OSwgMTUsIDUsIDIyMSwgMjMsIDI5LCAxMTEsIDk0LCA2MSwgMTUsIDUsIDIyMSwgMjEsIDE1LCA1LCAyMjEsIAotICAgIDE5LCAxNSwgNSwgMjIxLCAxLCAxNSwgNSwgMjIwLCAyNDMsIDE1LCA1LCAyMjAsIDI0NCwgMjQwLCAyMTIsIDE1LCA1LCAKLSAgICAyMjAsIDI0NCwgMTEwLCAyMjAsIDI0NCwgMjQzLCAxMDIsIDExMCwgMjQzLCAxMDIsIDI0MywgNzMsIDExMCwgMjQzLCA3MiwgCi0gICAgMTUsIDUsIDIyMCwgMjQ0LCAxMTAsIDIyMCwgMjQ0LCAyMTgsIDQyLCAxMTAsIDIxOCwgNDIsIDI0MywgNzMsIDExMCwgMjQzLCAKLSAgICA3MiwgMTUsIDUsIDIyMCwgMjM2LCAxNSwgNSwgMjIwLCAyMzEsIDE1LCA1LCAyMjAsIDIyOCwgMTUsIDUsIDIyMCwgMjI3LCAKLSAgICAxNSwgNSwgMjIwLCAyMjQsIDE1LCA1LCAyMjAsIDIxMCwgMTUsIDUsIDIyMCwgMjExLCAyOSwgNjEsIDE1LCA1LCAyMjAsIAotICAgIDIxMSwgMjksIDIzNiwgMTEsIDE1LCA1LCAyMjAsIDIwNCwgMTUsIDUsIDIyMCwgMjA1LCAyOSwgNjEsIDE1LCA1LCAyMjAsIAotICAgIDIwNSwgMjksIDI1MiwgODAsIDE1LCA1LCAyMjAsIDIwNSwgMjksIDI1MSwgMzgsIDE1LCA1LCAyMjAsIDIwNSwgMjksIDI0NywgCi0gICAgMTU4LCAxNSwgNSwgMjIwLCAyMDUsIDI5LCAyNDMsIDcyLCAxNSwgNSwgMjIwLCAyMDUsIDI5LCAyMzYsIDMwLCAxNSwgNSwgCi0gICAgMjIwLCAyMDUsIDI5LCAyMzYsIDMxLCAyNDIsIDc1LCAxNSwgNSwgMjIwLCAyMDUsIDI5LCAyMzMsIDIxMiwgMTUsIDUsIAotICAgIDIyMCwgMjA1LCAyOSwgMjMyLCAxNDQsIDE1LCA1LCAyMjAsIDIwNSwgMjksIDIzMCwgMTYzLCAxNSwgNSwgMjIwLCAyMDUsIAotICAgIDI5LCAyMjIsIDE3OSwgMTUsIDUsIDIyMCwgMTk4LCAxNSwgNSwgMjIwLCAxOTMsIDE1LCA1LCAyMjAsIDE5NCwgMjE3LCAKLSAgICAxOTIsIDE1LCA1LCAyMjAsIDE5NCwgMTEwLCAyMjAsIDE5NCwgMjUxLCAyOCwgMTEwLCAyNTEsIDI3LCAxNSwgNSwgMjIwLCAKLSAgICAxODksIDE1LCA1LCAyMjAsIDE1MCwgMTUsIDUsIDIyMCwgMTUxLCAxMTAsIDIzNSwgMTkxLCAyMjAsIDE1MCwgMTUsIDUsIAotICAgIDIyMCwgMTQ4LCAxNSwgNSwgMjIwLCAxNDcsIDE1LCA1LCAyMjAsIDExNywgMTUsIDUsIDIyMCwgMTE4LCAyNDIsIDc1LCAxNSwgCi0gICAgNSwgMjIwLCAxMDgsIDE1LCA1LCAyMjAsIDEwNiwgMTUsIDUsIDIyMCwgMTA3LCAxMTAsIDIyMCwgMTA3LCAyMjAsIDE0OCwgCi0gICAgMTUsIDUsIDIyMCwgOTksIDE1LCA1LCAyMjAsIDk3LCAxNSwgNSwgMjE5LCAyNywgMTUsIDUsIDIxOSwgMjgsIDExMCwgMjE5LCAKLSAgICAyNywgMTUsIDUsIDIxOCwgMjU1LCAxNSwgNSwgMjE4LCAyNTQsIDE1LCA1LCAyMTgsIDI1MiwgMTUsIDUsIDIxOCwgMjQ0LCAKLSAgICAxNSwgNSwgMjE4LCAyNDMsIDE1LCA1LCAyMTgsIDIxNywgMTUsIDUsIDIxOCwgMjE2LCAxNSwgNSwgMjE4LCA1MiwgMTUsIDUsIAotICAgIDIxOCwgNTMsIDI1MywgMTMyLCAxNSwgNSwgMjE4LCA1MywgMjksIDI0MSwgMTY1LCAxNSwgNSwgMjE4LCA1MywgMjksIDIzMSwgCi0gICAgNDIsIDE1LCA1LCAyMTgsIDUzLCAyNDIsIDc1LCAxNSwgNSwgMjE4LCA0MSwgMTUsIDUsIDIxOCwgNDIsIDExMCwgMjE4LCAKLSAgICA0MiwgMjI5LCA2NSwgMTEwLCAyMjksIDY1LCAyNDcsIDE0MCwgMTEwLCAyNDcsIDEzOSwgMTUsIDUsIDIxOCwgNDIsIDIxOSwgCi0gICAgMTY1LCAxNSwgNSwgMjE4LCAzMywgMTUsIDUsIDEyNiwgMjksIDI1MSwgMTg0LCAxNSwgNSwgMTI2LCAyOSwgMjQyLCA4NCwgCi0gICAgMTUsIDUsIDEyNiwgMjksIDIyMCwgMjQzLCAxNSwgNSwgMTI2LCAyOSwgMjIwLCAxNTAsIDE1LCA1LCAxMjYsIDI5LCAyMTYsIAotICAgIDc3LCAxNSwgNSwgMTI2LCAyOSwgMjE1LCAxODgsIDE1LCA1LCAyMTgsIDIyLCAxNSwgNSwgMjE4LCAxLCAxNSwgNSwgMjE3LCAKLSAgICAyMjksIDE1LCA1LCAyMTcsIDIzMCwgMjQyLCA3NSwgMTUsIDUsIDIxNywgNzEsIDE1LCA1LCAyMTcsIDcyLCAyMTcsIDE5MiwgCi0gICAgMTUsIDUsIDIxNywgNDQsIDE1LCA1LCAyMTcsIDI1LCAxNSwgNSwgMjE3LCAyNiwgMjksIDIxOCwgMjIsIDE1LCA1LCAyMTcsIAotICAgIDI2LCAxMTAsIDIxNywgMjUsIDE1LCA1LCAyMTcsIDI2LCAxMTAsIDIxNywgMjYsIDI0MywgMTAyLCAxMTAsIDI0MywgMTAyLCAKLSAgICAyNDMsIDczLCAxMTAsIDI0MywgNzIsIDE1LCA1LCAyMTYsIDgyLCAxNSwgNSwgMjE2LCA3NywgMTUsIDUsIDIxNiwgNzUsIAotICAgIDE1LCA1LCAyMTYsIDcyLCAxNSwgNSwgMjE2LCA2MiwgMTUsIDUsIDIxNiwgNjMsIDExMCwgMjE2LCA2MywgMjEyLCAxMTAsIAotICAgIDExMCwgMjEyLCAxMDksIDE1LCA1LCA2OSwgMTUsIDUsIDExMSwgMjQyLCA4NCwgMTUsIDUsIDExMSwgMTExLCA2OSwgMTUsIAotICAgIDUsIDExMSwgMTEwLCAxMTEsIDIyNiwgMjE0LCAxMTAsIDIyNiwgMjE0LCAyNDMsIDczLCAxMTAsIDI0MywgNzIsIDE1LCA1LCAKLSAgICAxMTEsIDExMCwgMTExLCAyMTgsIDIxOCwgMTEwLCAyMTgsIDIxNywgMTUsIDUsIDExMSwgMTEwLCAxMTEsIDExMSwgMjIzLCAKLSAgICAyMDIsIDExMCwgMTExLCAyMjMsIDIwMSwgMTUsIDUsIDIxNSwgMTk3LCAxNSwgNSwgMjE1LCAxOTQsIDE1LCA1LCAyMTUsIAotICAgIDE4OCwgMTUsIDUsIDIxNSwgMTg5LCAyMzMsIDIxMiwgMTUsIDUsIDIxNSwgMTg5LCAyOSwgMjUyLCA5NCwgMTUsIDUsIDIxNSwgCi0gICAgMTg5LCAyOSwgMjMxLCA0MiwgMTUsIDUsIDIxNSwgMTg5LCAyOSwgMTExLCA5NCwgMTExLCA5NCwgNjksIDE1LCA1LCAyMTUsIAotICAgIDE4OSwgMjksIDExMSwgOTQsIDExMSwgOTQsIDExMSwgMjQyLCA3NSwgMTUsIDUsIDIxNSwgMTg5LCAyNDIsIDc1LCAxNSwgNSwgCi0gICAgMjE1LCAxODksIDIyMCwgMjI1LCAxNSwgNSwgMjE1LCAxODksIDIyMCwgMjI2LCAyOSwgMjUyLCA5NCwgMTUsIDUsIDIxNSwgCi0gICAgMTg0LCAxNSwgNSwgMjE1LCAxNjcsIDE1LCA1LCAyMTUsIDE2OCwgMjksIDIzMywgMTQwLCAxNSwgNSwgMjE1LCAxNjgsIDI5LCAKLSAgICAyMzEsIDE1NywgOTQsIDI0OCwgMTY0LCAxNSwgNSwgMjE1LCAxNjgsIDI5LCAyMjEsIDIyLCAxNSwgNSwgMjE1LCAxNjgsIAotICAgIDI5LCA2OSwgMTUsIDUsIDIxNSwgMTY2LCAxNSwgNSwgMjE1LCAxNjIsIDE1LCA1LCAyMTUsIDE2MywgMjksIDIzNCwgMjEyLCAKLSAgICAxNSwgNSwgMjE1LCAxNjMsIDI5LCAxOTMsIDE1LCA1LCAyMTUsIDE2MCwgMTUsIDUsIDIxNSwgMTYxLCAyNDIsIDc1LCAxNSwgCi0gICAgNSwgMjE1LCAxMjEsIDE1LCA1LCAyMTUsIDEyMiwgMjQ5LCA2NSwgMjE1LCAxMjEsIDE1LCA1LCAyMTUsIDEyMiwgMjIwLCAKLSAgICAyMjUsIDE1LCA1LCAyMTUsIDExOSwgMTUsIDUsIDIxNSwgMTIwLCAyOSwgMTE4LCA5NCwgMTU5LCAxNSwgNSwgMjE1LCAxMjAsIAotICAgIDI5LCAxMTgsIDk0LCAyMDUsIDE1LCA1LCAyMTUsIDEyMCwgMjksIDI1NCwgODYsIDE1LCA1LCAyMTUsIDEyMCwgMjksIDE1OSwgCi0gICAgMTUsIDUsIDIxNSwgMTIwLCAyOSwgMjI4LCA1MCwgMTUsIDUsIDIxNSwgMTIwLCAyOSwgMjE1LCAxOTcsIDE1LCA1LCAyMTUsIAotICAgIDEyMCwgMjksIDIxNSwgMTk4LCA5NCwgMjUzLCAxNDYsIDE1LCA1LCAyMTUsIDEyMCwgMjksIDIxNSwgMTk4LCA5NCwgMjUxLCAKLSAgICAxODQsIDE1LCA1LCAyMTUsIDExOCwgMTUsIDUsIDIxNSwgMTE1LCAxNSwgNSwgMjE1LCAxMTQsIDE1LCA1LCAyMTUsIDExMCwgCi0gICAgMTUsIDUsIDIxNSwgMTExLCAyOSwgNjEsIDE1LCA1LCAyMTUsIDExMSwgMjksIDI1MywgMTQxLCAxNSwgNSwgMjE1LCAxMTEsIAotICAgIDI5LCAxMzQsIDE1LCA1LCAyMTUsIDExMSwgMjksIDI0NiwgMjMsIDE1LCA1LCAyMTUsIDExMSwgMjksIDI0MywgMTEwLCAxNSwgCi0gICAgNSwgMjE1LCAxMTEsIDI5LCAyNDMsIDk0LCAxNSwgNSwgMjE1LCAxMTEsIDI5LCAyNDMsIDgxLCAyMTcsIDE5MiwgMTUsIDUsIAotICAgIDIxNSwgMTExLCAyOSwgMjQzLCA3MiwgMTUsIDUsIDIxNSwgMTExLCAyOSwgMjQyLCA5MiwgMTUsIDUsIDIxNSwgMTExLCAyOSwgCi0gICAgMTU5LCAxNSwgNSwgMjE1LCAxMTEsIDI5LCAyMzYsIDMwLCAxNSwgNSwgMjE1LCAxMTEsIDI5LCAyMzYsIDExLCAxNSwgNSwgCi0gICAgMjE1LCAxMTEsIDI5LCAyMzUsIDE2MywgMTUsIDUsIDIxNSwgMTExLCAyOSwgMjM0LCAxMDEsIDE1LCA1LCAyMTUsIDExMSwgCi0gICAgMjksIDIzMiwgMTQyLCAxNSwgNSwgMjE1LCAxMTEsIDI5LCAyMzEsIDEsIDE1LCA1LCAyMTUsIDExMSwgMjksIDE5MywgMTUsIAotICAgIDUsIDIxNSwgMTExLCAyOSwgMjIwLCAyNDMsIDE1LCA1LCAyMTUsIDExMSwgMjksIDIyMCwgMTA2LCAxNSwgNSwgMjE1LCAKLSAgICAxMTEsIDI5LCAyMTYsIDgyLCAxNSwgNSwgMjE1LCAxMTEsIDI5LCAxMTEsIDk0LCAyNDIsIDg0LCAxNSwgNSwgMjE1LCAxMTEsIAotICAgIDI5LCAyMTUsIDE4OCwgMTUsIDUsIDIxNSwgMTExLCAyOSwgMjE1LCAxMDgsIDE1LCA1LCAyMTUsIDEwOCwgMTUsIDUsIDIxNSwgCi0gICAgMTA5LCAyOSwgNjksIDE1LCA1LCAyMTUsIDEwMCwgMTUsIDUsIDIxNSwgMTAxLCAyOSwgNjEsIDE1LCA1LCAyMTUsIDEwMSwgCi0gICAgMjksIDIzMywgMjM4LCAxNSwgNSwgMjE1LCAxMDEsIDI5LCAyMzMsIDIxNywgMTUsIDUsIDIxNSwgMTAxLCAyOSwgMjE4LCAKLSAgICAyMiwgMTUsIDUsIDIxNSwgOTYsIDE1LCA1LCAyMTUsIDk5LCAxNSwgNSwgMjE1LCA5NywgMTUsIDUsIDIxNSwgOTMsIDE1LCAKLSAgICA1LCAyMTUsIDgyLCAxNSwgNSwgMjE1LCA4MywgMjksIDIzNCwgMjEyLCAxNSwgNSwgMjE1LCA4MSwgMTUsIDUsIDIxMiwgCi0gICAgMTA5LCAxNSwgNSwgMjEyLCAxMTAsIDIxNywgMTkyLCAxNSwgNSwgMjEyLCAxMTAsIDkxLCAyOSwgMjMzLCAyMTcsIDE1LCA1LCAKLSAgICAyMTIsIDEwNiwgMTUsIDUsIDIxMiwgOTksIDE1LCA1LCAyMTIsIDg2LCAxNSwgNSwgMjEyLCAzNywgMTUsIDUsIDIxMiwgMzgsIAotICAgIDExMCwgMjEyLCAzNywgMTUsIDUsIDIxMiwgMzYsIDE1LCA1LCAyMTIsIDM0LCAxNSwgNSwgMjEyLCAzNSwgMjM1LCA3LCAKLSAgICAyMTcsIDE5MiwgMTUsIDUsIDIxMiwgMjksIDE1LCA1LCAyMTIsIDIxLCAxNSwgNSwgMjEyLCA4LCAxNSwgNSwgMjEyLCA2LCAKLSAgICAxNSwgNSwgMjEyLCA3LCAyOSwgNjEsIDE1LCA1LCAyMTIsIDUsIDE1LCA1LCAyMTIsIDQsIDE1LCAxMjgsIDUsIDExNywgCi0gICAgMjUzLCAxNDYsIDE1LCAxMjgsIDUsIDEzMywgMjUzLCAxNDYsIDE1LCAxMjgsIDUsIDI0MywgMjM3LCAyNTMsIDE0NiwgMTUsIAotICAgIDEyOCwgNSwgMjQ0LCA1MCwgMjUzLCAxNDYsIDE1LCAxMjgsIDUsIDIyMCwgNTMsIDI1MywgMTQ2LCAxNSwgMTI4LCA1LCAKLSAgICAyMjEsIDQzLCAyNTMsIDE0NiwgMTUsIDEyOCwgNSwgMjQ1LCAxNTAsIDI1MywgMTQ2LCAxNSwgMTI4LCA1LCAyMjksIDMxLCAKLSAgICAyNTMsIDE0NiwgMTUsIDEyOCwgNSwgMTMzLCAyNDcsIDEzOSwgMTUsIDEyOCwgNSwgMjQzLCAyMzcsIDI0NywgMTM5LCAxNSwgCi0gICAgMTI4LCA1LCAyNDQsIDUwLCAyNDcsIDEzOSwgMTUsIDEyOCwgNSwgMjIwLCA1MywgMjQ3LCAxMzksIDE1LCAxMjgsIDUsIAotICAgIDIyMSwgNDMsIDI0NywgMTM5LCAxNSwgMTI4LCA1LCAyNDUsIDE1MCwgMjQ3LCAxMzksIDE1LCAxMjgsIDUsIDIyOSwgMzEsIAotICAgIDI0NywgMTM5LCAxNSwgMTI4LCA1LCAyNDMsIDIzNywgNjksIDE1LCAxMjgsIDUsIDI0NCwgNTAsIDY5LCAxNSwgMTI4LCA1LCAKLSAgICAyMjAsIDUzLCA2OSwgMTUsIDEyOCwgNSwgMjIxLCA0MywgNjksIDE1LCAxMjgsIDUsIDI0NSwgMTUwLCA2OSwgMTUsIDEyOCwgCi0gICAgNSwgMjI5LCAzMSwgNjksIDE1LCAxMjgsIDUsIDEyMiwgMjQzLCAxNCwgMTUsIDEyOCwgNSwgMTE3LCAyNDMsIDE0LCAxNSwgCi0gICAgMTI4LCA1LCAxMzMsIDI0MywgMTQsIDE1LCAxMjgsIDUsIDI0MywgMjM3LCAyNDMsIDE0LCAxNSwgMTI4LCA1LCAyNDQsIDUwLCAKLSAgICAyNDMsIDE0LCAxNSwgMTI4LCA1LCAyMjAsIDUzLCAyNDMsIDE0LCAxNSwgMTI4LCA1LCAyMjEsIDQzLCAyNDMsIDE0LCAxNSwgCi0gICAgMTI4LCA1LCAyNDUsIDE1MCwgMjQzLCAxNCwgMTUsIDEyOCwgNSwgMjI5LCAzMSwgMjQzLCAxNCwgMTUsIDEyOCwgNSwgMTIyLCAKLSAgICAyNDMsIDExLCAxNSwgMTI4LCA1LCAxMTcsIDI0MywgMTEsIDE1LCAxMjgsIDUsIDEzMywgMjQzLCAxMSwgMTUsIDEyOCwgNSwgCi0gICAgMjQzLCAyMzcsIDI0MywgMTEsIDE1LCAxMjgsIDUsIDI0NCwgNTAsIDI0MywgMTEsIDE1LCAxMjgsIDUsIDExNywgMjIxLCAxLCAKLSAgICAxNSwgMTI4LCA1LCAxMzMsIDIyMSwgMSwgMTUsIDEyOCwgNSwgMTMzLCAyMjEsIDIsIDIxNCwgMjQ0LCAxNywgMTUsIDEyOCwgCi0gICAgNSwgMjQzLCAyMzcsIDIyMSwgMSwgMTUsIDEyOCwgNSwgMjQ0LCA1MCwgMjIxLCAxLCAxNSwgMTI4LCA1LCAyMjAsIDUzLCAKLSAgICAyMjEsIDEsIDE1LCAxMjgsIDUsIDIyMSwgNDMsIDIyMSwgMSwgMTUsIDEyOCwgNSwgMjQ1LCAxNTAsIDIyMSwgMSwgMTUsIAotICAgIDEyOCwgNSwgMjI5LCAzMSwgMjIxLCAxLCAxNSwgMTI4LCA1LCAxMjIsIDIyMCwgMjUyLCAxNSwgMTI4LCA1LCAxMTcsIDIyMCwgCi0gICAgMjUyLCAxNSwgMTI4LCA1LCAxMzMsIDIyMCwgMjUyLCAxNSwgMTI4LCA1LCAxMzMsIDIyMCwgMjUzLCAyMTQsIDI0NCwgMTcsIAotICAgIDE1LCAxMjgsIDUsIDI0MywgMjM3LCAyMjAsIDI1MiwgMTUsIDEyOCwgNSwgMjQ0LCA1MCwgMjIwLCAyNTIsIDE1LCAxMjgsIAotICAgIDUsIDIyMSwgMiwgMjksIDI0MywgOTUsIDk0LCAyNDcsIDEzOSwgMTUsIDEyOCwgNSwgMjIxLCAyLCAyOSwgMjQzLCA5NSwgCi0gICAgOTQsIDIzMSwgMSwgMTUsIDEyOCwgNSwgMTIyLCAyNTEsIDI0LCAxNSwgMTI4LCA1LCAxMTcsIDI1MSwgMjQsIDE1LCAxMjgsIAotICAgIDUsIDEzMywgMjUxLCAyNCwgMTUsIDEyOCwgNSwgMTMzLCAyNTEsIDI1LCAyMTQsIDI0NCwgMTcsIDE1LCAxMjgsIDUsIDI0MywgCi0gICAgMjM3LCAyNTEsIDI0LCAxNSwgMTI4LCA1LCAyNDQsIDUwLCAyNTEsIDI0LCAxNSwgMTI4LCA1LCAxMzMsIDIxNCwgMjQ0LCAKLSAgICAyNDMsIDI0NSwgMjQ1LCAzOSwgMTUsIDEyOCwgNSwgMTMzLCAyMTQsIDI0NCwgMjQzLCAyNDUsIDI0NSwgMzYsIDE1LCAxMjgsIAotICAgIDUsIDI0MywgMjM3LCAyMTQsIDI0NCwgMjQzLCAyNDUsIDIzMiwgMjQ2LCAxNSwgMTI4LCA1LCAyNDMsIDIzNywgMjE0LCAKLSAgICAyNDQsIDI0MywgMjQ1LCAyMzIsIDI0NCwgMTUsIDEyOCwgNSwgMjQzLCAyMzcsIDIxNCwgMjQ0LCAyNDMsIDI0NSwgMjMyLCAKLSAgICAyNDcsIDYxLCAxNSwgMTI4LCA1LCAyNDMsIDIzNywgMjE0LCAyNDQsIDI0MywgMjQ1LCAyMzIsIDI0NywgMjUzLCA3NCwgMTUsIAotICAgIDEyOCwgNSwgMjIwLCA1MywgMjE0LCAyNDQsIDI0MywgMjQ1LCAyNTMsIDE0MywgMTUsIDEyOCwgNSwgMjIxLCA0MywgMjE0LCAKLSAgICAyNDQsIDI0MywgMjQ1LCAyMzYsIDMsIDE1LCAxMjgsIDUsIDIyMSwgNDMsIDIxNCwgMjQ0LCAyNDMsIDI0NSwgMjM2LCA1LCAKLSAgICA2MSwgMTUsIDEyOCwgNSwgMjIxLCA0MywgMjE0LCAyNDQsIDI0MywgMjQ1LCAyMzYsIDUsIDI1MywgNzQsIDE1LCAxMjgsIDUsIAotICAgIDI0NSwgMTUwLCAyMTQsIDI0NCwgMjQzLCAyNDUsIDIxNSwgOTUsIDE1LCAxMjgsIDUsIDI0NSwgMTUwLCAyMTQsIDI0NCwgCi0gICAgMjQzLCAyNDUsIDIxNSwgOTQsIDE1LCAxMjgsIDUsIDIyOSwgMzEsIDIxNCwgMjQ0LCAyNDMsIDI0NSwgMjM2LCAxOSwgMTUsIAotICAgIDEyOCwgNSwgMjI5LCAzMSwgMjE0LCAyNDQsIDI0MywgMjQ1LCAyMzYsIDE4LCAxNSwgMTI4LCA1LCAyMjksIDMxLCAyMTQsIAotICAgIDI0NCwgMjQzLCAyNDUsIDIzNiwgMTcsIDE1LCAxMjgsIDUsIDIyOSwgMzEsIDIxNCwgMjQ0LCAyNDMsIDI0NSwgMjM2LCAyMCwgCi0gICAgNjEsIDE1LCAxMjgsIDUsIDExNywgMjUzLCAxNDcsIDIxNywgMTkyLCAxNSwgMTI4LCA1LCAxMzMsIDI1MywgMTQ3LCAyMTcsIAotICAgIDE5MiwgMTUsIDEyOCwgNSwgMjQzLCAyMzcsIDI1MywgMTQ3LCAyMTcsIDE5MiwgMTUsIDEyOCwgNSwgMjQ0LCA1MCwgMjUzLCAKLSAgICAxNDcsIDIxNywgMTkyLCAxNSwgMTI4LCA1LCAyMjAsIDUzLCAyNTMsIDE0NywgMjE3LCAxOTIsIDE1LCAxMjgsIDUsIDEyMiwgCi0gICAgMjUyLCA2OSwgMTUsIDEyOCwgNSwgMTE3LCAyNTIsIDY5LCAxNSwgMTI4LCA1LCAxMzMsIDI1MiwgNjksIDE1LCAxMjgsIDUsIAotICAgIDI0MywgMjM3LCAyNTIsIDY5LCAxNSwgMTI4LCA1LCAyNDMsIDIzNywgMjUyLCA3MCwgMjE0LCAyNDQsIDE3LCAxNSwgMTI4LCAKLSAgICA1LCAyNDQsIDUwLCAyNTIsIDY5LCAxNSwgMTI4LCA1LCAyNDQsIDUwLCAyNTIsIDcwLCAyMTQsIDI0NCwgMTcsIDE1LCAxMjgsIAotICAgIDUsIDIyOSwgNDEsIDE1LCAxMjgsIDUsIDIyOSwgNDIsIDE1LCAxMjgsIDUsIDEyMiwgMjQ1LCAzNSwgMTUsIDEyOCwgNSwgCi0gICAgMTE3LCAyNDUsIDM1LCAxNSwgMTI4LCA1LCAxMjIsIDIxNywgMTIyLCAyNDcsIDEzOSwgMTUsIDEyOCwgNSwgMTE3LCAyMTcsIAotICAgIDEyMCwgMjQ3LCAxMzksIDE1LCAxMjgsIDUsIDI0NCwgNTAsIDIyMCwgNDIsIDI0NywgMTM5LCAxNSwgMTI4LCA1LCAxMjIsIAotICAgIDIxNywgMTIyLCAyMTQsIDI0NCwgMjQzLCAyNDUsIDYxLCAxNSwgMTI4LCA1LCAxMTcsIDIxNywgMTIwLCAyMTQsIDI0NCwgCi0gICAgMjQzLCAyNDUsIDYxLCAxNSwgMTI4LCA1LCAxMjIsIDI0NSwgMTQ2LCAyNTMsIDE0NiwgMTUsIDEyOCwgNSwgMTIyLCAyMjQsIAotICAgIDE2NywgMjUzLCAxNDYsIDE1LCAxMjgsIDUsIDUzLCAyNTMsIDEzNSwgMTIyLCAyMjAsIDQzLCAxNSwgMTI4LCA1LCA1MywgCi0gICAgMjUzLCAxMzUsIDEyMiwgMjI0LCAxNjYsIDE1LCAyMjUsIDI3LCA1LCA1MywgMjUzLCAxMzUsIDIxMywgMTk2LCAyNDcsIAotICAgIDEyNCwgMTUsIDIyNSwgMjcsIDUsIDcxLCAyNDksIDE2NCwgMTUsIDIyNSwgMjcsIDUsIDI0NywgMjA3LCAyNDksIDE2NCwgCi0gICAgMTUsIDIyNSwgMjcsIDUsIDI0NywgMjA3LCAyMTYsIDE3OSwgMTAsIDExLCAyNTUsIDU4LCAxMCwgMTEsIDI1NSwgNTcsIDEwLCAKLSAgICAxMSwgMjU1LCA1NiwgMTAsIDExLCAyNTUsIDU1LCAxMCwgMTEsIDI1NSwgNTQsIDEwLCAxMSwgMjU1LCA1MywgMTAsIDExLCAKLSAgICAyNTUsIDUyLCAxMCwgMTEsIDI1NSwgNTEsIDEwLCAxMSwgMjU1LCA1MCwgMTAsIDExLCAyNTUsIDQ5LCAxMCwgMTEsIDI1NSwgCi0gICAgNDgsIDEwLCAxMSwgMjU1LCA0NywgMTAsIDExLCAyNTUsIDQ2LCAxMCwgMTEsIDI1NSwgNDUsIDEwLCAxMSwgMjU1LCA0NCwgCi0gICAgMTAsIDExLCAyNTUsIDQzLCAxMCwgMTEsIDI1NSwgNDIsIDEwLCAxMSwgMjU1LCA0MSwgMTAsIDExLCAyNTUsIDQwLCAxMCwgCi0gICAgMTEsIDI1NSwgMzksIDEwLCAxMSwgMjU1LCAzOCwgMTAsIDExLCAyNTUsIDM3LCAxMCwgMTEsIDI1NSwgMzYsIDEwLCAxMSwgCi0gICAgMjU1LCAzNSwgMTAsIDExLCAyNTUsIDM0LCAxMCwgMTEsIDI1NSwgMzMsIDEwLCAxMSwgMjU1LCAzMiwgMTAsIDExLCAyNTUsIAotICAgIDMxLCAxMCwgMTEsIDI1NSwgMzAsIDEwLCAxMSwgMjU1LCAyOSwgMTAsIDExLCAyNTUsIDI4LCAxMCwgMTEsIDI1NSwgMjcsIAotICAgIDEwLCAxMSwgMjU1LCAyNiwgMTAsIDExLCAyNTUsIDI1LCAxMCwgMTEsIDI1NSwgMjQsIDEwLCAxMSwgMjU1LCAyMywgMTAsIAotICAgIDExLCAyNTUsIDIyLCAxMCwgMTEsIDI1NSwgMjEsIDEwLCAxMSwgMjU1LCAyMCwgMTAsIDExLCAyNTUsIDE5LCAxMCwgMTEsIAotICAgIDI1NSwgMTgsIDEwLCAxMSwgMjU1LCAxNywgMTAsIDExLCAyNTUsIDE2LCAxMCwgMTEsIDI1NSwgMTUsIDEwLCAxMSwgMjU1LCAKLSAgICAxNCwgMTAsIDExLCAyNTUsIDEzLCAxMCwgMTEsIDI1NSwgMTIsIDEwLCAxMSwgMjU1LCAxMSwgMTAsIDExLCAyNTUsIDEwLCAKLSAgICAxMCwgMTEsIDI1NSwgOSwgMTAsIDExLCAyNTUsIDgsIDEwLCAxMSwgMjU1LCA3LCAxMCwgMTEsIDI1NSwgNiwgMTAsIDExLCAKLSAgICAyNTUsIDUsIDEwLCAxMSwgMjU1LCA0LCAxMCwgMTEsIDI1NSwgMywgMTAsIDExLCAyNTUsIDIsIDEwLCAxMSwgMjU1LCAxLCAKLSAgICAxMCwgMTEsIDI1NSwgMCwgMTAsIDExLCAyNTQsIDI1NSwgMTAsIDExLCAyNTQsIDI1NCwgMTAsIDExLCAyNTQsIDI1MywgMTAsIAotICAgIDExLCAyNTQsIDI1MiwgMTAsIDExLCAyNTQsIDI1MSwgMTAsIDExLCAyNTQsIDI1MCwgMTAsIDExLCAyNTQsIDI0OSwgMTAsIAotICAgIDExLCAyNTQsIDI0OCwgMTAsIDExLCAyNTQsIDI0NywgMTAsIDExLCAyNTQsIDI0NiwgMTAsIDExLCAyNTQsIDI0NSwgMTAsIAotICAgIDExLCAyNTQsIDI0NCwgMTAsIDExLCAyNTQsIDI0MywgMTAsIDExLCAyNTQsIDI0MiwgMTAsIDExLCAyNTQsIDI0MSwgMTAsIAotICAgIDExLCAyNTQsIDI0MCwgMTAsIDExLCAyNTQsIDIzOSwgMTAsIDExLCAyNTQsIDIzOCwgMTAsIDExLCAyNTQsIDIzNywgMTAsIAotICAgIDExLCAyNTQsIDIzNiwgMTAsIDExLCAyNTQsIDIzNSwgMTAsIDExLCAyNTMsIDcyLCAxMCwgMTEsIDI1MywgNzAsIDEwLCAxMSwgCi0gICAgMjUzLCA2OCwgMTAsIDExLCAyNTMsIDY2LCAxMCwgMTEsIDI1MywgNjQsIDEwLCAxMSwgMjUzLCA2MywgMTAsIDExLCAyNTMsIAotICAgIDYxLCAxMCwgMTEsIDI1MywgNTksIDEwLCAxMSwgMjUzLCA1NywgMTAsIDExLCAyNTMsIDU1LCAxMCwgMTEsIDI1MCwgMjQ4LCAKLSAgICAxMCwgMTEsIDI1MCwgMjQ3LCAxMCwgMTEsIDI1MCwgMjQ2LCAxMCwgMTEsIDI1MCwgMjQ1LCAxMCwgMTEsIDI1MCwgMjQ0LCAKLSAgICAxMCwgMTEsIDI1MCwgMjQzLCAxMCwgMTEsIDI1MCwgMjQyLCAxMCwgMTEsIDI1MCwgMjQxLCAxMCwgMTEsIDI1MCwgMjQwLCAKLSAgICAxMCwgMTEsIDI1MCwgMjM5LCAxMCwgMTEsIDI1MCwgMjM4LCAxMCwgMTEsIDI1MCwgMjM3LCAxMCwgMTEsIDI1MCwgMjM2LCAKLSAgICAxMCwgMTEsIDI1MCwgMjM1LCAxMCwgMTEsIDI1MCwgMjM0LCAxMCwgMTEsIDI1MCwgMjMzLCAxMCwgMTEsIDI1MCwgMjMyLCAKLSAgICAxMCwgMTEsIDI1MCwgMjMxLCAxMCwgMTEsIDI1MCwgMjMwLCAxMCwgMTEsIDI1MCwgMjI5LCAxMCwgMTEsIDI1MCwgMjI4LCAKLSAgICAxMCwgMTEsIDI1MCwgMjI3LCAxMCwgMTEsIDI1MCwgMjI2LCAxMCwgMTEsIDI1MCwgMjI1LCAxMCwgMTEsIDI1MCwgMjI0LCAKLSAgICAxMCwgMTEsIDI1MCwgMjIzLCAxMCwgMTEsIDI1MCwgMjIyLCAxMCwgMTEsIDI1MCwgMjIxLCAxMCwgMTEsIDI0OSwgMiwgMTAsIAotICAgIDExLCAyNDksIDEsIDEwLCAxMSwgMjQ5LCAwLCAxMCwgMTEsIDI0OCwgMjU1LCAxMCwgMTEsIDI0OCwgMjU0LCAxMCwgMTEsIAotICAgIDI0OCwgMjUzLCAxMCwgMTEsIDI0OCwgMjUyLCAxMCwgMTEsIDI0OCwgMjUxLCAxMCwgMTEsIDI0OCwgMjUwLCAxMCwgMTEsIAotICAgIDI0OCwgMjQ5LCAxMCwgMTEsIDI0OCwgMjQ4LCAxMCwgMTEsIDI0OCwgMjQ3LCAxMCwgMTEsIDI0OCwgMjQ2LCAxMCwgMTEsIAotICAgIDI0OCwgMjQ1LCAxMCwgMTEsIDI0OCwgMjQ0LCAxMCwgMTEsIDI0OCwgMjQzLCAxMCwgMTEsIDI0OCwgMjQyLCAxMCwgMTEsIAotICAgIDI0OCwgMjQxLCAxMCwgMTEsIDI0OCwgMjQwLCAxMCwgMTEsIDI0OCwgMjM5LCAxMCwgMTEsIDI0OCwgMjM4LCAxMCwgMTEsIAotICAgIDI0OCwgMjM3LCAxMCwgMTEsIDI0OCwgMjM2LCAxMCwgMTEsIDI0OCwgMjM1LCAxMCwgMTEsIDI0OCwgMjM0LCAxMCwgMTEsIAotICAgIDI0OCwgMjMzLCAxMCwgMTEsIDI0OCwgMjMyLCAxMCwgMTEsIDI0OCwgMjMxLCAxMCwgMTEsIDI0OCwgMjMwLCAxMCwgMTEsIAotICAgIDI0OCwgMjI5LCAxMCwgMTEsIDI0OCwgMjI4LCAxMCwgMTEsIDI0OCwgMjI3LCAxMCwgMTEsIDI0OCwgMjI2LCAxMCwgMTEsIAotICAgIDI0OCwgMjI1LCAxMCwgMTEsIDI0OCwgMjI0LCAxMCwgMTEsIDI0OCwgMjIzLCAxMCwgMTEsIDI0OCwgMjIyLCAxMCwgMTEsIAotICAgIDI0OCwgMjIxLCAxMCwgMTEsIDI0OCwgMjIwLCAxMCwgMTEsIDI0OCwgMjE5LCAxMCwgMTEsIDI0OCwgMjE4LCAxMCwgMTEsIAotICAgIDI0OCwgMjE3LCAxMCwgMTEsIDI0OCwgMjE2LCAxMCwgMTEsIDI0OCwgMjE1LCAxMCwgMTEsIDI0OCwgMjE0LCAxMCwgMTEsIAotICAgIDI0OCwgMjEzLCAxMCwgMTEsIDI0OCwgMjEyLCAxMCwgMTEsIDI0OCwgMjExLCAxMCwgMTEsIDI0OCwgMjEwLCAxMCwgMTEsIAotICAgIDI0OCwgMjA5LCAxMCwgMTEsIDI0OCwgMjA4LCAxMCwgMTEsIDI0OCwgMjA3LCAxMCwgMTEsIDI0OCwgMjA2LCAxMCwgMTEsIAotICAgIDI0OCwgMjA1LCAxMCwgMTEsIDI0OCwgMjA0LCAxMCwgMTEsIDI0OCwgMjAzLCAxMCwgMTEsIDI0OCwgMjAyLCAxMCwgMTEsIAotICAgIDI0OCwgMjAxLCAxMCwgMTEsIDI0OCwgMjAwLCAxMCwgMTEsIDI0OCwgMTk5LCAxMCwgMTEsIDI0OCwgMTk4LCAxMCwgMTEsIAotICAgIDI0OCwgMTk3LCAxMCwgMTEsIDI0OCwgMTk2LCAxMCwgMTEsIDI0OCwgMTk1LCAxMCwgMTEsIDI0OCwgMTk0LCAxMCwgMTEsIAotICAgIDI0OCwgMTkzLCAxMCwgMTEsIDI0OCwgMTkyLCAxMCwgMTEsIDI0OCwgMTkxLCAxMCwgMTEsIDI0OCwgMTkwLCAxMCwgMTEsIAotICAgIDI0OCwgMTg5LCAxMCwgMTEsIDI0OCwgMTg4LCAxMCwgMTEsIDI0OCwgMTg3LCAxMCwgMTEsIDI0OCwgMTg2LCAxMCwgMTEsIAotICAgIDI0OCwgMTg1LCAxMCwgMTEsIDI0OCwgMTg0LCAxMCwgMTEsIDI0OCwgMTgzLCAxMCwgMTEsIDI0OCwgMTgyLCAxMCwgMTEsIAotICAgIDI0OCwgMTgxLCAxMCwgMTEsIDI0OCwgMTgwLCAxMCwgMTEsIDI0OCwgMTc5LCAxMCwgMTEsIDI0OCwgMTc4LCAxMCwgMTEsIAotICAgIDI0OCwgMTc3LCAxMCwgMTEsIDI0OCwgMTc2LCAxMCwgMTEsIDI0OCwgMTc1LCAxMCwgMTEsIDI0OCwgMTc0LCAxMCwgMTEsIAotICAgIDI0OCwgMTczLCAxMCwgMTEsIDI0OCwgMTcyLCAxMCwgMTEsIDI0OCwgMTcxLCAxMCwgMTEsIDI0OCwgMTcwLCAxMCwgMTEsIAotICAgIDI0OCwgMTY5LCAxMCwgMTEsIDI0OCwgMTY4LCAxMCwgMTEsIDI0OCwgMTY3LCAxMCwgMTEsIDI0NSwgMjM1LCAxMCwgMTEsIAotICAgIDI0NSwgMjM0LCAxMCwgMTEsIDI0NSwgMjMzLCAxMCwgMTEsIDI0NSwgMjMyLCAxMCwgMTEsIDI0NSwgMjMxLCAxMCwgMTEsIAotICAgIDI0NSwgMjMwLCAxMCwgMTEsIDI0NSwgMjI5LCAxMCwgMTEsIDI0NSwgMjI4LCAxMCwgMTEsIDI0NSwgMjI3LCAxMCwgMTEsIAotICAgIDI0NSwgMjI2LCAxMCwgMTEsIDI0NSwgMjI1LCAxMCwgMTEsIDI0NSwgMjI0LCAxMCwgMTEsIDI0NSwgMjIzLCAxMCwgMTEsIAotICAgIDI0NSwgMjIyLCAxMCwgMTEsIDI0NSwgMjIxLCAxMCwgMTEsIDI0NSwgMjIwLCAxMCwgMTEsIDI0NSwgMjE5LCAxMCwgMTEsIAotICAgIDI0NSwgMjE4LCAxMCwgMTEsIDI0NSwgMjE3LCAxMCwgMTEsIDI0NSwgMjE2LCAxMCwgMTEsIDI0NSwgMjE1LCAxMCwgMTEsIAotICAgIDI0NSwgMjE0LCAxMCwgMTEsIDI0NSwgMjEzLCAxMCwgMTEsIDI0NSwgMjEyLCAxMCwgMTEsIDI0NSwgMjExLCAxMCwgMTEsIAotICAgIDI0NSwgMjEwLCAxMCwgMTEsIDI0NSwgMjA5LCAxMCwgMTEsIDI0NSwgMjA4LCAxMCwgMTEsIDI0NSwgMjA3LCAxMCwgMTEsIAotICAgIDI0NSwgMjA2LCAxMCwgMTEsIDI0NSwgMjA1LCAxMCwgMTEsIDI0NSwgMjA0LCAxMCwgMTEsIDI0NSwgMjAzLCAxMCwgMTEsIAotICAgIDI0NSwgMjAyLCAxMCwgMTEsIDI0NSwgMjAxLCAxMCwgMTEsIDI0NSwgMjAwLCAxMCwgMTEsIDI0NSwgMTk5LCAxMCwgMTEsIAotICAgIDI0NSwgMTk4LCAxMCwgMTEsIDI0NSwgMTk3LCAxMCwgMTEsIDI0NSwgMTk2LCAxMCwgMTEsIDI0NSwgMTk1LCAxMCwgMTEsIAotICAgIDI0NSwgMTk0LCAxMCwgMTEsIDI0NSwgMTkzLCAxMCwgMTEsIDI0NSwgMTkyLCAxMCwgMTEsIDI0NCwgMjI5LCAxMCwgMTEsIAotICAgIDI0NCwgMjI4LCAxMCwgMTEsIDI0NCwgMjI3LCAxMCwgMTEsIDI0NCwgMjI2LCAxMCwgMTEsIDI0NCwgMjI1LCAxMCwgMTEsIAotICAgIDI0NCwgMjI0LCAxMCwgMTEsIDI0NCwgMjIzLCAxMCwgMTEsIDI0NCwgMjIyLCAxMCwgMTEsIDI0NCwgMjIxLCAxMCwgMTEsIAotICAgIDI0NCwgMjIwLCAxMCwgMTEsIDI0NCwgMjE5LCAxMCwgMTEsIDI0NCwgMjE4LCAxMCwgMTEsIDI0NCwgMjE3LCAxMCwgMTEsIAotICAgIDI0NCwgMjE2LCAxMCwgMTEsIDI0NCwgMjE1LCAxMCwgMTEsIDI0NCwgMjE0LCAxMCwgMTEsIDI0NCwgMjEzLCAxMCwgMTEsIAotICAgIDI0NCwgMjEyLCAxMCwgMTEsIDI0NCwgMjExLCAxMCwgMTEsIDI0NCwgMjEwLCAxMCwgMTEsIDI0NCwgMjA5LCAxMCwgMTEsIAotICAgIDI0NCwgMjA4LCAxMCwgMTEsIDI0NCwgMjA3LCAxMCwgMTEsIDI0NCwgMjA2LCAxMCwgMTEsIDI0NCwgMjA1LCAxMCwgMTEsIAotICAgIDI0NCwgMjA0LCAxMCwgMTEsIDI0NCwgMjAzLCAxMCwgMTEsIDI0NCwgMjAyLCAxMCwgMTEsIDI0NCwgMjAxLCAxMCwgMTEsIAotICAgIDI0NCwgMjAwLCAxMCwgMTEsIDI0NCwgMTk5LCAxMCwgMTEsIDI0NCwgMTk4LCAxMCwgMTEsIDI0NCwgMTk3LCAxMCwgMTEsIAotICAgIDI0NCwgMTk2LCAxMCwgMTEsIDI0NCwgMTk1LCAxMCwgMTEsIDI0NCwgMTk0LCAxMCwgMTEsIDI0NCwgMTkzLCAxMCwgMTEsIAotICAgIDI0NCwgMTkyLCAxMCwgMTEsIDI0NCwgMTkxLCAxMCwgMTEsIDI0NCwgMTkwLCAxMCwgMTEsIDI0NCwgMTg5LCAxMCwgMTEsIAotICAgIDI0NCwgMTg4LCAxMCwgMTEsIDI0NCwgMTg3LCAxMCwgMTEsIDI0NCwgMTg2LCAxMCwgMTEsIDI0NCwgMTg1LCAxMCwgMTEsIAotICAgIDI0NCwgMTg0LCAxMCwgMTEsIDI0NCwgMTgzLCAxMCwgMTEsIDI0NCwgMTgyLCAxMCwgMTEsIDI0NCwgMTgxLCAxMCwgMTEsIAotICAgIDI0NCwgMTgwLCAxMCwgMTEsIDI0NCwgMTc5LCAxMCwgMTEsIDI0NCwgMTc4LCAxMCwgMTEsIDI0NCwgMTc3LCAxMCwgMTEsIAotICAgIDI0NCwgMTc2LCAxMCwgMTEsIDI0NCwgMTc1LCAxMCwgMTEsIDI0NCwgMTc0LCAxMCwgMTEsIDI0NCwgMTczLCAxMCwgMTEsIAotICAgIDI0NCwgMTcyLCAxMCwgMTEsIDI0NCwgMTcxLCAxMCwgMTEsIDI0NCwgMTcwLCAxMCwgMTEsIDI0NCwgMTY5LCAxMCwgMTEsIAotICAgIDI0NCwgMTY4LCAxMCwgMTEsIDI0NCwgMTY3LCAxMCwgMTEsIDI0NCwgMTY2LCAxMCwgMTEsIDI0NCwgMTY1LCAxMCwgMTEsIAotICAgIDI0MywgMTc2LCAxMCwgMTEsIDI0MywgMTc1LCAxMCwgMTEsIDI0MywgMTc0LCAxMCwgMTEsIDI0MywgMTczLCAxMCwgMTEsIAotICAgIDI0MywgMTcyLCAxMCwgMTEsIDI0MywgMTcxLCAxMCwgMTEsIDI0MywgMTcwLCAxMCwgMTEsIDI0MywgMTY5LCAxMCwgMTEsIAotICAgIDI0MywgMTY4LCAxMCwgMTEsIDI0MywgMTY3LCAxMCwgMTEsIDI0MywgMTY2LCAxMCwgMTEsIDI0MywgMTY1LCAxMCwgMTEsIAotICAgIDI0MywgMTY0LCAxMCwgMTEsIDI0MywgMTYzLCAxMCwgMTEsIDI0MywgMTYyLCAxMCwgMTEsIDI0MywgMTYxLCAxMCwgMTEsIAotICAgIDI0MywgMTYwLCAxMCwgMTEsIDI0MywgMTU5LCAxMCwgMTEsIDI0MywgMTU4LCAxMCwgMTEsIDI0MywgMTU3LCAxMCwgMTEsIAotICAgIDI0MywgMTU2LCAxMCwgMTEsIDI0MywgMTU1LCAxMCwgMTEsIDI0MywgMTU0LCAxMCwgMTEsIDI0MywgMTUzLCAxMCwgMTEsIAotICAgIDI0MywgMTUyLCAxMCwgMTEsIDI0MywgMTUxLCAxMCwgMTEsIDI0MywgMTUwLCAxMCwgMTEsIDI0MywgMTQ5LCAxMCwgMTEsIAotICAgIDI0MywgMTQ4LCAxMCwgMTEsIDI0MywgMTQ3LCAxMCwgMTEsIDI0MywgMTQ2LCAxMCwgMTEsIDI0MywgMTQ1LCAxMCwgMTEsIAotICAgIDI0MywgMTQ0LCAxMCwgMTEsIDI0MywgMTQzLCAxMCwgMTEsIDI0MywgMTQyLCAxMCwgMTEsIDI0MywgMTQxLCAxMCwgMTEsIAotICAgIDI0MywgMTQwLCAxMCwgMTEsIDI0MywgMTM5LCAxMCwgMTEsIDI0MywgMTM4LCAxMCwgMTEsIDI0MywgMTM3LCAxMCwgMTEsIAotICAgIDI0MywgMTM2LCAxMCwgMTEsIDI0MywgMTM1LCAxMCwgMTEsIDI0MywgMTM0LCAxMCwgMTEsIDI0MywgMTMzLCAxMCwgMTEsIAotICAgIDI0MywgMTMyLCAxMCwgMTEsIDI0MywgMTMxLCAxMCwgMTEsIDI0MywgMTMwLCAxMCwgMTEsIDI0MywgMTI5LCAxMCwgMTEsIAotICAgIDI0MywgMTI4LCAxMCwgMTEsIDI0MywgMTI3LCAxMCwgMTEsIDI0MywgMTI2LCAxMCwgMTEsIDI0MywgMTI1LCAxMCwgMTEsIAotICAgIDI0MywgMTI0LCAxMCwgMTEsIDI0MywgMTIzLCAxMCwgMTEsIDI0MywgMTIyLCAxMCwgMTEsIDI0MywgMTIxLCAxMCwgMTEsIAotICAgIDI0MywgMTIwLCAxMCwgMTEsIDI0MywgMTE5LCAxMCwgMTEsIDI0MywgMTE4LCAxMCwgMTEsIDI0MywgMTE3LCAxMCwgMTEsIAotICAgIDI0MywgMTE2LCAxMCwgMTEsIDI0MywgMTE1LCAxMCwgMTEsIDI0MywgMTE0LCAxMCwgMTEsIDI0MywgMTEzLCAxMCwgMTEsIAotICAgIDI0MiwgMzksIDEwLCAxMSwgMjQyLCAzOCwgMTAsIDExLCAyNDIsIDM3LCAxMCwgMTEsIDI0MiwgMzYsIDEwLCAxMSwgMjQyLCAKLSAgICAzNSwgMTAsIDExLCAyNDIsIDM0LCAxMCwgMTEsIDI0MiwgMzMsIDEwLCAxMSwgMjQyLCAzMiwgMTAsIDExLCAyNDIsIDMxLCAKLSAgICAxMCwgMTEsIDI0MCwgMTMwLCAxMCwgMTEsIDI0MCwgMTI5LCAxMCwgMTEsIDI0MCwgMTI4LCAxMCwgMTEsIDI0MCwgMTI3LCAKLSAgICAxMCwgMTEsIDI0MCwgMTI2LCAxMCwgMTEsIDI0MCwgMTI1LCAxMCwgMTEsIDI0MCwgMTI0LCAxMCwgMTEsIDI0MCwgMTIzLCAKLSAgICAxMCwgMTEsIDI0MCwgMTIyLCAxMCwgMTEsIDI0MCwgMTIxLCAxMCwgMTEsIDI0MCwgMTIwLCAxMCwgMTEsIDI0MCwgMTE5LCAKLSAgICAxMCwgMTEsIDI0MCwgMTE4LCAxMCwgMTEsIDI0MCwgMTE3LCAxMCwgMTEsIDI0MCwgMTE2LCAxMCwgMTEsIDI0MCwgMTE1LCAKLSAgICAxMCwgMTEsIDI0MCwgMTE0LCAxMCwgMTEsIDI0MCwgMTEzLCAxMCwgMTEsIDI0MCwgMTEyLCAxMCwgMTEsIDIzNSwgMjYsIAotICAgIDEwLCAxMSwgMjM1LCAyNSwgMTAsIDExLCAyMzUsIDI0LCAxMCwgMTEsIDIzNSwgMjMsIDEwLCAxMSwgMjM1LCAyMiwgMTAsIAotICAgIDExLCAyMzUsIDIxLCAxMCwgMTEsIDIzNSwgMjAsIDEwLCAxMSwgMjM1LCAxOSwgMTAsIDExLCAyMzMsIDE2OCwgMTAsIDExLCAKLSAgICAyMzMsIDE2NywgMTAsIDExLCAyMzMsIDE2NiwgMTAsIDExLCAyMzMsIDE2NSwgMTAsIDExLCAyMzMsIDE2NCwgMTAsIDExLCAKLSAgICAyMzMsIDE2MywgMTAsIDExLCAyMzMsIDE2MiwgMTAsIDExLCAyMzMsIDE2MSwgMTAsIDExLCAyMzMsIDE2MCwgMTAsIDExLCAKLSAgICAyMzMsIDE1OSwgMTAsIDExLCAyMzIsIDEwOSwgMTAsIDExLCAyMzIsIDEwOCwgMTAsIDExLCAyMzIsIDEwNywgMTAsIDExLCAKLSAgICAyMzIsIDEwNiwgMTAsIDExLCAyMzIsIDEwNSwgMTAsIDExLCAyMzIsIDEwNCwgMTAsIDExLCAyMzIsIDEwMywgMTAsIDExLCAKLSAgICAyMzIsIDEwMiwgMTAsIDExLCAyMzIsIDEwMSwgMTAsIDExLCAyMzIsIDEwMCwgMTAsIDExLCAyMzIsIDk5LCAxMCwgMTEsIAotICAgIDIzMiwgOTgsIDEwLCAxMSwgMjMyLCA5NywgMTAsIDExLCAyMzIsIDk2LCAxMCwgMTEsIDIzMiwgOTUsIDEwLCAxMSwgMjMyLCAKLSAgICA5NCwgMTAsIDExLCAyMzIsIDkzLCAxMCwgMTEsIDIzMiwgOTIsIDEwLCAxMSwgMjMyLCA5MSwgMTAsIDExLCAyMzIsIDkwLCAKLSAgICAxMCwgMTEsIDIzMiwgODksIDEwLCAxMSwgMjMyLCA4OCwgMTAsIDExLCAyMzIsIDg3LCAxMCwgMTEsIDIzMiwgODYsIDEwLCAKLSAgICAxMSwgMjMyLCA4NSwgMTAsIDExLCAyMzIsIDg0LCAxMCwgMTEsIDIzMiwgODMsIDEwLCAxMSwgMjMyLCA4MiwgMTAsIDExLCAKLSAgICAyMzIsIDgxLCAxMCwgMTEsIDIzMiwgODAsIDEwLCAxMSwgMjMyLCA3OSwgMTAsIDExLCAyMzIsIDc4LCAxMCwgMTEsIDIzMiwgCi0gICAgNzcsIDEwLCAxMSwgMjMyLCA3NiwgMTAsIDExLCAyMzIsIDc1LCAxMCwgMTEsIDIzMiwgNzQsIDEwLCAxMSwgMjMyLCA3MywgCi0gICAgMTAsIDExLCAyMzIsIDcyLCAxMCwgMTEsIDIzMiwgNzEsIDEwLCAxMSwgMjMyLCA3MCwgMTAsIDExLCAyMzIsIDY5LCAxMCwgCi0gICAgMTEsIDIzMiwgNjgsIDEwLCAxMSwgMjMyLCA2NywgMTAsIDExLCAyMzIsIDY2LCAxMCwgMTEsIDIzMiwgNjUsIDEwLCAxMSwgCi0gICAgMjMyLCA2NCwgMTAsIDExLCAyMzIsIDYzLCAxMCwgMTEsIDIzMiwgNjIsIDEwLCAxMSwgMjMyLCA2MSwgMTAsIDExLCAyMzIsIAotICAgIDYwLCAxMCwgMTEsIDIzMiwgNTksIDEwLCAxMSwgMjMyLCA1OCwgMTAsIDExLCAyMzIsIDU3LCAxMCwgMTEsIDIzMiwgNTYsIAotICAgIDEwLCAxMSwgMjMyLCA1NSwgMTAsIDExLCAyMzIsIDU0LCAxMCwgMTEsIDIzMiwgNTMsIDEwLCAxMSwgMjMyLCA1MiwgMTAsIAotICAgIDExLCAyMzIsIDUxLCAxMCwgMTEsIDIzMiwgNTAsIDEwLCAxMSwgMjMyLCA0OSwgMTAsIDExLCAyMzIsIDQ4LCAxMCwgMTEsIAotICAgIDIzMiwgNDcsIDEwLCAxMSwgMjMyLCA0NiwgMTAsIDExLCAyMzIsIDQ1LCAxMCwgMTEsIDIzMiwgNDQsIDEwLCAxMSwgMjMwLCAKLSAgICA5NSwgMTAsIDExLCAyMzAsIDk0LCAxMCwgMTEsIDIzMCwgOTMsIDEwLCAxMSwgMjMwLCA5MiwgMTAsIDExLCAyMzAsIDkxLCAKLSAgICAxMCwgMTEsIDIzMCwgOTAsIDEwLCAxMSwgMjMwLCA4OSwgMTAsIDExLCAyMzAsIDg4LCAxMCwgMTEsIDIzMCwgODcsIDEwLCAKLSAgICAxMSwgMjMwLCA4NiwgMTAsIDExLCAyMzAsIDg1LCAxMCwgMTEsIDIzMCwgODQsIDEwLCAxMSwgMjMwLCA4MywgMTAsIDExLCAKLSAgICAyMzAsIDgyLCAxMCwgMTEsIDIzMCwgODEsIDEwLCAxMSwgMjMwLCA4MCwgMTAsIDExLCAyMzAsIDc5LCAxMCwgMTEsIDIzMCwgCi0gICAgNzgsIDEwLCAxMSwgMjMwLCA3NywgMTAsIDExLCAyMzAsIDc2LCAxMCwgMTEsIDIzMCwgNzUsIDEwLCAxMSwgMjMwLCA3NCwgCi0gICAgMTAsIDExLCAyMzAsIDczLCAxMCwgMTEsIDIzMCwgNzIsIDEwLCAxMSwgMjMwLCA3MSwgMTAsIDExLCAyMzAsIDcwLCAxMCwgCi0gICAgMTEsIDIzMCwgNjksIDEwLCAxMSwgMjMwLCA2OCwgMTAsIDExLCAyMzAsIDY3LCAxMCwgMTEsIDIzMCwgNjYsIDEwLCAxMSwgCi0gICAgMjMwLCA2NSwgMTAsIDExLCAyMzAsIDY0LCAxMCwgMTEsIDIzMCwgNjMsIDEwLCAxMSwgMjMwLCA2MiwgMTAsIDExLCAyMzAsIAotICAgIDYxLCAxMCwgMTEsIDIzMCwgNjAsIDEwLCAxMSwgMjMwLCA1OSwgMTAsIDExLCAyMzAsIDU4LCAxMCwgMTEsIDIzMCwgNTcsIAotICAgIDEwLCAxMSwgMjMwLCA1NiwgMTAsIDExLCAyMzAsIDU1LCAxMCwgMTEsIDIzMCwgNTQsIDEwLCAxMSwgMjMwLCA1MywgMTAsIAotICAgIDExLCAyMzAsIDUyLCAxMCwgMTEsIDIzMCwgNTEsIDEwLCAxMSwgMjMwLCA1MCwgMTAsIDExLCAyMzAsIDQ5LCAxMCwgMTEsIAotICAgIDIzMCwgNDgsIDEwLCAxMSwgMjMwLCA0NywgMTAsIDExLCAyMjgsIDIyMiwgMTAsIDExLCAyMjgsIDIyMSwgMTAsIDExLCAKLSAgICAyMjgsIDIyMCwgMTAsIDExLCAyMjgsIDIxOSwgMTAsIDExLCAyMjgsIDIxOCwgMTAsIDExLCAyMjgsIDIxNywgMTAsIDExLCAKLSAgICAyMjgsIDIxNiwgMTAsIDExLCAyMjgsIDIxNSwgMTAsIDExLCAyMjgsIDIxNCwgMTAsIDExLCAyMjgsIDIxMywgMTAsIDExLCAKLSAgICAyMjgsIDIxMiwgMTAsIDExLCAyMjgsIDIxMSwgMTAsIDExLCAyMjgsIDIxMCwgMTAsIDExLCAyMjgsIDIwOSwgMTAsIDExLCAKLSAgICAyMjgsIDIwOCwgMTAsIDExLCAyMjgsIDIwNywgMTAsIDExLCAyMjgsIDIwNiwgMTAsIDExLCAyMjgsIDIwNSwgMTAsIDExLCAKLSAgICAyMjgsIDIwNCwgMTAsIDExLCAyMjgsIDIwMywgMTAsIDExLCAyMjgsIDIwMiwgMTAsIDExLCAyMjgsIDIwMSwgMTAsIDExLCAKLSAgICAyMjgsIDkxLCAxMCwgMTEsIDIyOCwgOTAsIDEwLCAxMSwgMjI4LCA4OSwgMTAsIDExLCAyMjgsIDg4LCAxMCwgMTEsIDIyOCwgCi0gICAgODcsIDEwLCAxMSwgMjI4LCA4NiwgMTAsIDExLCAyMjgsIDg1LCAxMCwgMTEsIDIyOCwgODQsIDEwLCAxMSwgMjI4LCA4MywgCi0gICAgMTAsIDExLCAyMjgsIDgyLCAxMCwgMTEsIDIyOCwgODEsIDEwLCAxMSwgMjI4LCA4MCwgMTAsIDExLCAyMjgsIDc5LCAxMCwgCi0gICAgMTEsIDIyOCwgNzgsIDEwLCAxMSwgMjI4LCA3NywgMTAsIDExLCAyMjgsIDc2LCAxMCwgMTEsIDIyOCwgNzUsIDEwLCAxMSwgCi0gICAgMjI4LCA3NCwgMTAsIDExLCAyMjgsIDczLCAxMCwgMTEsIDIyOCwgNzIsIDEwLCAxMSwgMjI4LCA3MSwgMTAsIDExLCAyMjgsIAotICAgIDcwLCAxMCwgMTEsIDIyOCwgNjksIDEwLCAxMSwgMjI4LCA2OCwgMTAsIDExLCAyMjgsIDY3LCAxMCwgMTEsIDIyOCwgNjYsIAotICAgIDEwLCAxMSwgMjI3LCAxOTYsIDEwLCAxMSwgMjI3LCAxOTUsIDEwLCAxMSwgMjI3LCAxOTQsIDEwLCAxMSwgMjI3LCAxOTMsIAotICAgIDEwLCAxMSwgMjI3LCAxOTIsIDEwLCAxMSwgMjI3LCAxOTEsIDEwLCAxMSwgMjI3LCAxOTAsIDEwLCAxMSwgMjI3LCAxODksIAotICAgIDEwLCAxMSwgMjI3LCAxODgsIDEwLCAxMSwgMjI3LCAxODcsIDEwLCAxMSwgMjI3LCAxODYsIDEwLCAxMSwgMjI3LCAxODUsIAotICAgIDEwLCAxMSwgMjI3LCAxODQsIDEwLCAxMSwgMjI3LCAxODMsIDEwLCAxMSwgMjI3LCAxODIsIDEwLCAxMSwgMjI3LCAxODEsIAotICAgIDEwLCAxMSwgMjI3LCAxODAsIDEwLCAxMSwgMjI3LCAxNzksIDEwLCAxMSwgMjI3LCAxNzgsIDEwLCAxMSwgMjI3LCAxNzcsIAotICAgIDEwLCAxMSwgMjI3LCAxNzYsIDEwLCAxMSwgMjI3LCAxNzUsIDEwLCAxMSwgMjI3LCAxNzQsIDEwLCAxMSwgMjI3LCAxNzMsIAotICAgIDEwLCAxMSwgMjI3LCAxNzIsIDEwLCAxMSwgMjI3LCAxNzEsIDEwLCAxMSwgMjI3LCAxNzAsIDEwLCAxMSwgMjI3LCAxNjksIAotICAgIDEwLCAxMSwgMjI3LCAxNjgsIDEwLCAxMSwgMjI3LCAxNjcsIDEwLCAxMSwgMjI3LCAxNjYsIDEwLCAxMSwgMjI3LCAxNjUsIAotICAgIDEwLCAxMSwgMjI3LCAxNjQsIDEwLCAxMSwgMjI3LCAxNjMsIDEwLCAxMSwgMjI3LCAxNjIsIDEwLCAxMSwgMjI3LCAxNjEsIAotICAgIDEwLCAxMSwgMjI3LCAxNjAsIDEwLCAxMSwgMjI3LCAxNTksIDEwLCAxMSwgMjI3LCAxNTgsIDEwLCAxMSwgMjI3LCAxNTcsIAotICAgIDEwLCAxMSwgMjI3LCAxNTYsIDEwLCAxMSwgMjI3LCAxNTUsIDEwLCAxMSwgMjI3LCAxNTQsIDEwLCAxMSwgMjI3LCAxNTMsIAotICAgIDEwLCAxMSwgMjI3LCAxNTIsIDEwLCAxMSwgMjI3LCAxNTEsIDEwLCAxMSwgMjI3LCAxNTAsIDEwLCAxMSwgMjI3LCAxNDksIAotICAgIDEwLCAxMSwgMjI3LCAxNDgsIDEwLCAxMSwgMjI3LCAxNDcsIDEwLCAxMSwgMjI3LCAxNDYsIDEwLCAxMSwgMjI3LCAxNDUsIAotICAgIDEwLCAxMSwgMjI3LCAxNDQsIDEwLCAxMSwgMjI3LCAxNDMsIDEwLCAxMSwgMjI3LCAxNDIsIDEwLCAxMSwgMjI3LCAxNDEsIAotICAgIDEwLCAxMSwgMjI3LCAxNDAsIDEwLCAxMSwgMjI3LCAxMzksIDEwLCAxMSwgMjI3LCAxMzgsIDEwLCAxMSwgMjI3LCAxMzcsIAotICAgIDEwLCAxMSwgMjI3LCAxMzYsIDEwLCAxMSwgMjI3LCAxMzUsIDEwLCAxMSwgMjI3LCAxMzQsIDEwLCAxMSwgMjI3LCAxMzMsIAotICAgIDEwLCAxMSwgMjI3LCAxMzIsIDEwLCAxMSwgMjI3LCAxMzEsIDEwLCAxMSwgMjI3LCAxMzAsIDEwLCAxMSwgMjI3LCAxMjksIAotICAgIDEwLCAxMSwgMjI3LCAxMjgsIDEwLCAxMSwgMjI3LCAxMjcsIDEwLCAxMSwgMjI3LCAxMjYsIDEwLCAxMSwgMjI3LCAxMjUsIAotICAgIDEwLCAxMSwgMjI3LCAxMjQsIDEwLCAxMSwgMjI3LCAxMjMsIDEwLCAxMSwgMjI3LCAxMjIsIDEwLCAxMSwgMjI2LCAyMjgsIAotICAgIDEwLCAxMSwgMjI2LCAyMjcsIDEwLCAxMSwgMjI2LCAyMjYsIDEwLCAxMSwgMjI2LCAyMjUsIDEwLCAxMSwgMjI2LCAyMjQsIAotICAgIDEwLCAxMSwgMjI2LCAyMjMsIDEwLCAxMSwgMjI2LCAyMjIsIDEwLCAxMSwgMjI2LCAyMjEsIDEwLCAxMSwgMjI2LCAyMjAsIAotICAgIDEwLCAxMSwgMjI2LCAyMTksIDEwLCAxMSwgMjI2LCAyMTgsIDEwLCAxMSwgMjI2LCAyMTcsIDEwLCAxMSwgMjI2LCAyMTYsIAotICAgIDEwLCAxMSwgMjI0LCAyMzksIDEwLCAxMSwgMjI0LCAyMzgsIDEwLCAxMSwgMjI0LCAyMzcsIDEwLCAxMSwgMjI0LCAyMzYsIAotICAgIDEwLCAxMSwgMjI0LCAyMzUsIDEwLCAxMSwgMjI0LCAyMzQsIDEwLCAxMSwgMjI0LCAyMzMsIDEwLCAxMSwgMjI0LCAxMTEsIAotICAgIDEwLCAxMSwgMjI0LCAxMTAsIDEwLCAxMSwgMjI0LCAxMDksIDEwLCAxMSwgMjI0LCAxMDgsIDEwLCAxMSwgMjI0LCAxMDcsIAotICAgIDEwLCAxMSwgMjI0LCAxMDYsIDEwLCAxMSwgMjI0LCAxMDUsIDEwLCAxMSwgMjI0LCAxMDQsIDEwLCAxMSwgMjI0LCAxMDMsIAotICAgIDEwLCAxMSwgMjI0LCAxMDIsIDEwLCAxMSwgMjI0LCAxMDEsIDEwLCAxMSwgMjI0LCAxMDAsIDEwLCAxMSwgMjI0LCA5OSwgCi0gICAgMTAsIDExLCAyMjQsIDk4LCAxMCwgMTEsIDIyNCwgOTcsIDEwLCAxMSwgMjI0LCA5NiwgMTAsIDExLCAyMjQsIDk1LCAxMCwgCi0gICAgMTEsIDIyNCwgOTQsIDEwLCAxMSwgMjI0LCA5MywgMTAsIDExLCAyMjQsIDkyLCAxMCwgMTEsIDIyNCwgOTEsIDEwLCAxMSwgCi0gICAgMjI0LCA5MCwgMTAsIDExLCAyMjQsIDg5LCAxMCwgMTEsIDIyNCwgODgsIDEwLCAxMSwgMjI0LCA4NywgMTAsIDExLCAyMjQsIAotICAgIDg2LCAxMCwgMTEsIDIyNCwgODUsIDEwLCAxMSwgMjI0LCA4NCwgMTAsIDExLCAyMjQsIDgzLCAxMCwgMTEsIDIyNCwgODIsIAotICAgIDEwLCAxMSwgMjI0LCA4MSwgMTAsIDExLCAyMjQsIDgwLCAxMCwgMTEsIDIyNCwgNzksIDEwLCAxMSwgMjI0LCA3OCwgMTAsIAotICAgIDExLCAyMjMsIDEsIDEwLCAxMSwgMjIzLCAwLCAxMCwgMTEsIDIyMiwgMjU1LCAxMCwgMTEsIDIyMiwgMjU0LCAxMCwgMTEsIAotICAgIDIyMiwgMjUzLCAxMCwgMTEsIDIyMiwgMjUyLCAxMCwgMTEsIDIyMiwgMjUxLCAxMCwgMTEsIDIyMiwgMjUwLCAxMCwgMTEsIAotICAgIDIyMiwgMjQ5LCAxMCwgMTEsIDIyMiwgMjQ4LCAxMCwgMTEsIDIyMiwgMjQ3LCAxMCwgMTEsIDIyMiwgMjQ2LCAxMCwgMTEsIAotICAgIDIyMiwgMjQ1LCAxMCwgMTEsIDIyMiwgMjQ0LCAxMCwgMTEsIDIyMiwgMjQzLCAxMCwgMTEsIDIyMiwgMjQyLCAxMCwgMTEsIAotICAgIDIyMiwgMjQxLCAxMCwgMTEsIDIyMiwgMjQwLCAxMCwgMTEsIDIyMiwgMjM5LCAxMCwgMTEsIDIyMiwgMjM4LCAxMCwgMTEsIAotICAgIDIyMiwgMjM3LCAxMCwgMTEsIDIyMiwgMjM2LCAxMCwgMTEsIDIyMiwgMjM1LCAxMCwgMTEsIDIyMiwgMjM0LCAxMCwgMTEsIAotICAgIDIyMiwgMjMzLCAxMCwgMTEsIDIyMiwgMjMyLCAxMCwgMTEsIDIyMiwgMjMxLCAxMCwgMTEsIDIyMiwgMjMwLCAxMCwgMTEsIAotICAgIDIyMiwgMjI5LCAxMCwgMTEsIDIyMiwgMjI4LCAxMCwgMTEsIDIyMiwgMjI3LCAxMCwgMTEsIDIyMiwgMjI2LCAxMCwgMTEsIAotICAgIDIyMiwgMjI1LCAxMCwgMTEsIDIyMiwgMjI0LCAxMCwgMTEsIDIyMiwgMjIzLCAxMCwgMTEsIDIyMiwgMjIyLCAxMCwgMTEsIAotICAgIDIyMiwgMjIxLCAxMCwgMTEsIDIyMiwgMjIwLCAxMCwgMTEsIDIyMiwgMjE5LCAxMCwgMTEsIDIyMiwgMjE4LCAxMCwgMTEsIAotICAgIDIyMiwgMjE3LCAxMCwgMTEsIDIyMiwgMjE2LCAxMCwgMTEsIDIyMiwgMjE1LCAxMCwgMTEsIDIyMiwgMjE0LCAxMCwgMTEsIAotICAgIDIyMiwgMjEzLCAxMCwgMTEsIDIyMiwgMjEyLCAxMCwgMTEsIDIyMiwgMjExLCAxMCwgMTEsIDIyMiwgMjEwLCAxMCwgMTEsIAotICAgIDIyMiwgMjA5LCAxMCwgMTEsIDIyMiwgMjA4LCAxMCwgMTEsIDIyMiwgMjA3LCAxMCwgMTEsIDIyMiwgMjA2LCAxMCwgMTEsIAotICAgIDIyMiwgMjA1LCAxMCwgMTEsIDIyMiwgMjA0LCAxMCwgMTEsIDIxOCwgOTcsIDEwLCAxMSwgMjE4LCA5NiwgMTAsIDExLCAKLSAgICAyMTgsIDk1LCAxMCwgMTEsIDIxOCwgOTQsIDEwLCAxMSwgMjE4LCA5MywgMTAsIDExLCAyMTgsIDkyLCAxMCwgMTEsIDIxOCwgCi0gICAgOTEsIDEwLCAxMSwgMjE4LCA5MCwgMTAsIDExLCAyMTgsIDg5LCAxMCwgMTEsIDIxOCwgODgsIDEwLCAxMSwgMjE4LCA4NywgCi0gICAgMTAsIDExLCAyMTgsIDg2LCAxMCwgMTEsIDIxOCwgODUsIDEwLCAxMSwgMjE4LCA4NCwgMTAsIDExLCAyMTgsIDgzLCAxMCwgCi0gICAgMTEsIDIxOCwgODIsIDEwLCAxMSwgMjE4LCA4MSwgMTAsIDExLCAyMTgsIDgwLCAxMCwgMTEsIDIxOCwgNzksIDEwLCAxMSwgCi0gICAgMjE4LCA3OCwgMTAsIDExLCAyMTgsIDc3LCAxMCwgMTEsIDIxOCwgNzYsIDEwLCAxMSwgMjE4LCA3NSwgMTAsIDExLCAyMTgsIAotICAgIDc0LCAxMCwgMTEsIDIxOCwgNzMsIDEwLCAxMSwgMjE4LCA3MiwgMTAsIDExLCAyMTgsIDcxLCAxMCwgMTEsIDIxOCwgNzAsIAotICAgIDEwLCAxMSwgMjE4LCA2OSwgMTAsIDExLCAyMTgsIDY4LCAxMCwgMTEsIDIxOCwgNjcsIDEwLCAxMSwgMjE4LCA2NiwgMTAsIAotICAgIDExLCAyMTgsIDY1LCAxMCwgMTEsIDIxOCwgNjQsIDEwLCAxMSwgMjE4LCA2MywgMTAsIDExLCAyMTgsIDYyLCAxMCwgMTEsIAotICAgIDIxOCwgNjEsIDEwLCAxMSwgMjE4LCA2MCwgMTAsIDExLCAyMTgsIDU5LCAxMCwgMTEsIDIxOCwgNTgsIDEwLCAxMSwgMjE4LCAKLSAgICA1NywgMTAsIDExLCAyMTgsIDU2LCAxMCwgMTEsIDIxOCwgNTUsIDEwLCAxMSwgMjE4LCA1NCwgMTAsIDExLCAyMTUsIDI0NSwgCi0gICAgMTAsIDExLCAyMTUsIDI0NCwgMTAsIDExLCAyMTUsIDI0MywgMTAsIDExLCAyMTUsIDI0MiwgMTAsIDExLCAyMTUsIDI0MSwgCi0gICAgMTAsIDExLCAyMTUsIDI0MCwgMTAsIDExLCAyMTUsIDIzOSwgMTAsIDExLCAyMTUsIDIzOCwgMTAsIDExLCAyMTUsIDIzNywgCi0gICAgMTAsIDExLCAyMTUsIDIzNiwgMTAsIDExLCAyMTUsIDIzNSwgMTAsIDExLCAyMTUsIDIzNCwgMTAsIDExLCAyMTUsIDIzMywgCi0gICAgMTAsIDExLCAyMTUsIDIzMiwgMTAsIDExLCAyMTUsIDIzMSwgMTAsIDExLCAyMTUsIDIzMCwgMTAsIDExLCAyMTUsIDIyOSwgCi0gICAgMTAsIDExLCAyMTUsIDIyOCwgMTAsIDExLCAyMTUsIDIyNywgMTAsIDExLCAyMTUsIDIyNiwgMTAsIDExLCAyMTUsIDIyNSwgCi0gICAgMTAsIDExLCAyMTUsIDIyNCwgMTAsIDExLCAyMTUsIDIyMywgMTAsIDExLCAyMTUsIDIyMiwgMTAsIDExLCAyMTUsIDIyMSwgCi0gICAgMTAsIDExLCAyMTUsIDIyMCwgMTAsIDExLCAyMTUsIDIxOSwgMTAsIDExLCAyMTUsIDIxOCwgMTAsIDExLCAyMTUsIDIxNywgCi0gICAgMTAsIDExLCAyMTUsIDIxNiwgMTAsIDExLCAyMTUsIDIxNSwgMTAsIDExLCAyMTUsIDIxNCwgMTAsIDExLCAyMTUsIDIxMywgCi0gICAgMTAsIDExLCAyMTUsIDIxMiwgMTAsIDExLCAyMTUsIDIxMSwgMTAsIDExLCAyMTUsIDIxMCwgMTAsIDExLCAyMTUsIDIwOSwgCi0gICAgMTAsIDExLCAyMTUsIDIwOCwgMTAsIDExLCAyMTUsIDIwNywgMTAsIDExLCAyMTUsIDIwNiwgMTAsIDExLCAyMTUsIDIwNSwgCi0gICAgMTAsIDExLCAyMTUsIDIwNCwgMTAsIDExLCAyMTUsIDIwMywgMTAsIDExLCAyMTUsIDIwMiwgMTAsIDExLCAyMTUsIDIwMSwgCi0gICAgMTAsIDExLCAyMTUsIDIwMCwgMTAsIDExLCAyMTUsIDE5OSwgMTAsIDExLCAyMTUsIDc4LCAxMCwgMTEsIDIxNSwgNzcsIDEwLCAKLSAgICAxMSwgMjE1LCA3NiwgMTAsIDExLCAyMTUsIDc1LCAxMCwgMTEsIDIxNSwgNzQsIDEwLCAxMSwgMjE1LCA3MywgMTAsIDExLCAKLSAgICAyMTUsIDcyLCAxMCwgMTEsIDIxNSwgNzEsIDEwLCAxMSwgMjE1LCA3MCwgMTAsIDExLCAyMTUsIDY5LCAxMCwgMTEsIDIxNSwgCi0gICAgNjgsIDEwLCAxMSwgMjE1LCA2NywgMTAsIDExLCAyMTUsIDY2LCAxMCwgMTEsIDIxNSwgNjUsIDEwLCAxMSwgMjE1LCA2NCwgCi0gICAgMTAsIDExLCAyMTUsIDYzLCAxMCwgMTEsIDIxNSwgNjIsIDEwLCAxMSwgMjE1LCA2MSwgMTAsIDExLCAyMTUsIDYwLCAxMCwgCi0gICAgMTEsIDIxNSwgNTksIDEwLCAxMSwgMjE1LCA1OCwgMTAsIDExLCAyMTUsIDU3LCAxMCwgMTEsIDIxNSwgNTYsIDEwLCAxMSwgCi0gICAgMjE1LCA1NSwgMTAsIDExLCAyMTUsIDU0LCAxMCwgMTEsIDIxNSwgNTMsIDEwLCAxMSwgMjE1LCA1MiwgMTAsIDExLCAyMTUsIAotICAgIDUxLCAxMCwgMTEsIDIxNSwgNTAsIDEwLCAxMSwgMjE1LCA0OSwgMTAsIDExLCAyMTUsIDQ4LCAxMCwgMTEsIDIxNSwgNDcsIAotICAgIDEwLCAxMSwgMjE1LCA0NiwgMTAsIDExLCAyMTUsIDQ1LCAxMCwgMTEsIDIxNSwgNDQsIDEwLCAxMSwgMjE1LCA0MywgMTAsIAotICAgIDExLCAyMTUsIDQyLCAxMCwgMTEsIDIxNSwgNDEsIDEwLCAxMSwgMjE1LCA0MCwgMTAsIDExLCAyMTUsIDM5LCAxMCwgMTEsIAotICAgIDIxNSwgMzgsIDEwLCAxMSwgMjE1LCAzNywgMTAsIDExLCAyMTUsIDM2LCAxMCwgMTEsIDIxNSwgMzUsIDEwLCAxMSwgMjE1LCAKLSAgICAzNCwgMTAsIDExLCAyMTUsIDMzLCAxMCwgMTEsIDIxNSwgMzIsIDEwLCAxMSwgMjE1LCAzMSwgMTAsIDExLCAyMTUsIDMwLCAKLSAgICAxMCwgMTEsIDIxNSwgMjksIDEwLCAxMSwgMjE1LCAyOCwgMTAsIDExLCAyMTUsIDI3LCAxMCwgMTEsIDIxNSwgMjYsIDEwLCAKLSAgICAxMSwgMjE1LCAyNSwgMTAsIDExLCAyMTUsIDI0LCAxMCwgMTEsIDIxNSwgMjMsIDEwLCAxMSwgMjE1LCAyMiwgMTAsIDExLCAKLSAgICAyMTUsIDIxLCAxMCwgMTEsIDIxNSwgMjAsIDEwLCAxMSwgMjE1LCAxOSwgMTAsIDExLCAyMTUsIDE4LCAxMCwgMTEsIDIxNSwgCi0gICAgMTcsIDEwLCAxMSwgMjE1LCAxNiwgMTAsIDExLCAyMTUsIDE1LCAxMCwgMTEsIDIxNSwgMTQsIDEwLCAxMSwgMjE1LCAxMywgCi0gICAgMTAsIDExLCAyMTUsIDEyLCAxMCwgMTEsIDIxNSwgMTEsIDEwLCAxMSwgMjE1LCAxMCwgMTAsIDExLCAyMTUsIDksIDEwLCAKLSAgICAxMSwgMjE1LCA4LCAxMCwgMTEsIDIxNSwgNywgMTAsIDExLCAyMTUsIDYsIDEwLCAxMSwgMjE1LCA1LCAxMCwgMTEsIDIxNSwgCi0gICAgNCwgMTAsIDExLCAyMTUsIDMsIDEwLCAxMSwgMjE1LCAyLCAxMCwgMTEsIDIxNCwgODEsIDEwLCAxMSwgMjE0LCA4MCwgMTAsIAotICAgIDExLCAyMTQsIDc5LCAxMCwgMTEsIDIxNCwgNzgsIDEwLCAxMSwgMjE0LCA3NywgMTAsIDExLCAyMTQsIDc2LCAxMCwgMTEsIAotICAgIDIxNCwgNzUsIDEwLCAxMSwgMjE0LCA3NCwgMTAsIDExLCAyMTQsIDczLCAxMCwgMTEsIDIxNCwgNzIsIDEwLCAxMSwgMjE0LCAKLSAgICA3MSwgMTAsIDExLCAyMTQsIDcwLCAxMCwgMTEsIDIxNCwgNjksIDEwLCAxMSwgMjE0LCA2OCwgMTAsIDExLCAyMTQsIDY3LCAKLSAgICAxMCwgMTEsIDIxNCwgNjYsIDEwLCAxMSwgMjE0LCA2NSwgMTAsIDExLCAyMTQsIDY0LCAxMCwgMTEsIDIxNCwgNjMsIDEwLCAKLSAgICAxMSwgMjE0LCA2MiwgMTAsIDExLCAyMTQsIDYxLCAxMCwgMTEsIDIxNCwgNjAsIDEwLCAxMSwgMjE0LCA1OSwgMTAsIDExLCAKLSAgICAyMTQsIDU4LCAxMCwgMTEsIDIxNCwgNTcsIDEwLCAxMSwgMjE0LCA1NiwgMTAsIDExLCAyMTQsIDU1LCAxMCwgMTEsIDIxNCwgCi0gICAgNTQsIDEwLCAxMSwgMjE0LCA1MywgMTAsIDExLCAyMTQsIDUyLCAxMCwgMTEsIDIxNCwgNTEsIDEwLCAxMSwgMjE0LCA1MCwgCi0gICAgMTAsIDExLCAyMTMsIDE2NSwgMTAsIDExLCAyMTMsIDE2NCwgMTAsIDExLCAyMTMsIDE2MywgMTAsIDExLCAyMTMsIDE2MiwgCi0gICAgMTAsIDExLCAyMTMsIDE2MSwgMTAsIDExLCAyMTMsIDE2MCwgMTAsIDExLCAyMTMsIDE1OSwgMTAsIDExLCAyMTMsIDE1OCwgCi0gICAgMTAsIDExLCAyMTMsIDE1NywgMTAsIDExLCAyMTMsIDE1NiwgMTAsIDExLCAyMTMsIDE1NSwgMTAsIDExLCAyMTMsIDE1NCwgCi0gICAgMTAsIDExLCAyMTMsIDEwMywgMTAsIDExLCAyMTMsIDEwMiwgMTAsIDExLCAyMTMsIDEwMSwgMTAsIDExLCAyMTMsIDEwMCwgCi0gICAgMTAsIDExLCAyMTMsIDk5LCAxMCwgMTEsIDIxMywgOTgsIDEwLCAxMSwgMjEzLCA5NywgMTAsIDExLCAyMTMsIDk2LCAxMCwgCi0gICAgMTEsIDIxMywgOTUsIDEwLCAxMSwgMjEyLCAxNTEsIDEwLCAxMSwgMjEyLCAxNTAsIDEwLCAxMSwgMjEyLCAxNDksIDEwLCAKLSAgICAxMSwgMjEyLCAxNDgsIDEwLCAxMSwgMjEyLCAxNDcsIDEwLCAxMSwgMjEyLCAxNDYsIDEwLCAxMSwgMjEyLCAxNDUsIDEwLCAKLSAgICAxMSwgMjEyLCAxNDQsIDEwLCAxMSwgMjEyLCAxNDMsIDEwLCAxMSwgMjEyLCAxNDIsIDEwLCAxMSwgMjEyLCAxNDEsIDEwLCAKLSAgICAxMSwgMjEyLCAxNDAsIDEwLCAxMSwgMjEyLCAxMzksIDEwLCAxMSwgMjEyLCAxMzgsIDEwLCAxMSwgMjEyLCAxMzcsIDEwLCAKLSAgICAxMSwgMjEyLCAxMzYsIDEwLCAxMSwgMjEyLCAxMzUsIDEwLCAxMSwgMjEyLCAxMzQsIDEwLCAxMSwgMjEyLCAxMzMsIDEwLCAKLSAgICAxMSwgMjEyLCAxMzIsIDEwLCAxMSwgMjEyLCAxMzEsIDEwLCAxMSwgMjEyLCAxMzAsIDEwLCAxMSwgMjEyLCAxMjksIDEwLCAKLSAgICAxMSwgMjEyLCAxMjgsIDEwLCAxMSwgMjEyLCAxMjcsIDEwLCAxMSwgMjEyLCAxMjYsIDEwLCAxMSwgMjEyLCAxMjUsIDEwLCAKLSAgICAxMSwgMjEyLCAxMjQsIDEwLCAxMSwgMjEyLCAxMjMsIDEwLCAxMSwgMjEyLCAxMjIsIDEwLCAxMSwgMjEyLCAxMjEsIDEwLCAKLSAgICAxMSwgMjEyLCAxMjAsIDEwLCAxMSwgMjEyLCAxMTksIDEwLCAxMSwgMjEyLCAxMTgsIDEwLCAxMSwgMjEyLCAxMTcsIDEwLCAKLSAgICAxMSwgMjEyLCAxMTYsIDEwLCAxMSwgMjEyLCAxMTUsIDEwLCAxMSwgMjEyLCAxMTQsIDEwLCAxMSwgMjEyLCAxMTMsIDEwLCAKLSAgICAxMSwgMjEyLCAxMTIsIDEwLCAxMSwgMjEyLCAxMTEsIDEwLCAxMSwgMjU0LCAyMzEsIDEwLCAxMSwgMjU0LCAyMzAsIDEwLCAKLSAgICAxMSwgMjU0LCAyMjksIDEwLCAxMSwgMjU0LCAyMjgsIDEwLCAxMSwgMjU0LCAyMjcsIDEwLCAxMSwgMjU0LCAyMjYsIDEwLCAKLSAgICAxMSwgMjU0LCAyMjUsIDEwLCAxMSwgMjU0LCAyMjQsIDEwLCAxMSwgMjU0LCAyMjMsIDEwLCAxMSwgMjU0LCAyMjIsIDEwLCAKLSAgICAxMSwgMjU0LCAyMjEsIDEwLCAxMSwgMjU0LCAyMjAsIDEwLCAxMSwgMjU0LCAyMTksIDEwLCAxMSwgMjU0LCAyMTgsIDEwLCAKLSAgICAxMSwgMjU0LCAyMTcsIDEwLCAxMSwgMjU0LCAyMTYsIDEwLCAxMSwgMjU0LCAyMTUsIDEwLCAxMSwgMjU0LCAyMTQsIDEwLCAKLSAgICAxMSwgMjU0LCAyMTMsIDEwLCAxMSwgMjU0LCAyMTIsIDEwLCAxMSwgMjU0LCAyMTEsIDEwLCAxMSwgMjU0LCAyMTAsIDEwLCAKLSAgICAxMSwgMjU0LCAyMDksIDEwLCAxMSwgMjU0LCAyMDgsIDEwLCAxMSwgMjU0LCAyMDcsIDEwLCAxMSwgMjU0LCAyMDYsIDEwLCAKLSAgICAxMSwgMjU0LCAyMDUsIDEwLCAxMSwgMjU0LCAyMDQsIDEwLCAxMSwgMjU0LCAyMDMsIDEwLCAxMSwgMjU0LCAyMDIsIDEwLCAKLSAgICAxMSwgMjU0LCAyMDEsIDEwLCAxMSwgMjU0LCAyMDAsIDEwLCAxMSwgMjU0LCAxOTksIDEwLCAxMSwgMjU0LCAxOTgsIDIwLCAKLSAgICAxLCAxNTMsIDIyOSwgOTgsIDIzMSwgODMsIDIwLCAxLCAxNTMsIDI0MywgNDYsIDI0NCwgNSwgMjAsIDEsIDE1MywgMjI1LCAKLSAgICAxMzEsIDIzMSwgODQsIDIyNSwgMTg5LCAyMCwgMSwgMTUzLCAyMjUsIDEzMSwgMjMxLCA4NCwgMjI1LCAxOTAsIDIwLCAxLCAKLSAgICAxNTMsIDIzMCwgNDQsIDIzMSwgODMsIDIwLCAxLCAxNTMsIDIyMCwgMTQ2LCAyMCwgMSwgMTUzLCAyMTcsIDE5LCAyMzEsIAotICAgIDgzLCAyMCwgMSwgMTUzLCAyMjcsIDIzOCwgMjMxLCA4MywgMjAsIDEsIDE1MywgMjIwLCAxOTksIDIyNiwgMjE0LCAyMjksIAotICAgIDAsIDIwLCAxLCAxNTMsIDIyNSwgMTMxLCAyMjYsIDIxNCwgMjI5LCAxLCAyMjUsIDE4OSwgMjAsIDEsIDE1MywgMjI1LCAKLSAgICAxMzEsIDIyNiwgMjE0LCAyMjksIDEsIDIyNSwgMTkwLCAyMCwgMSwgMTUzLCAyMzIsIDIzLCAyMCwgMSwgMTUzLCAyMTYsIAotICAgIDgzLCAyMzIsIDI0LCAyMCwgMSwgMTUzLCAyMjksIDE1NCwgMjAsIDEsIDE1MywgMjMyLCAyMCwgMjAsIDEsIDE1MywgMjMxLCAKLSAgICAyMzksIDIwLCAxLCAxNTMsIDIzMCwgMTE5LCAyMCwgMSwgMTUzLCAyMjEsIDQ1LCAyMCwgMSwgMTUzLCAyMjgsIDk2LCAyMCwgCi0gICAgMSwgMTUzLCAyMzQsIDE1NSwgMjAsIDEsIDE1MywgMjI4LCAyMjUsIDIwLCAxLCAxNTMsIDIxOCwgMjA1LCAyMCwgMSwgMTUzLCAKLSAgICAyMjksIDk3LCAyMCwgMSwgMTUzLCAyMzMsIDExMCwgMjAsIDEsIDE1MywgMjMzLCAzNiwgMjMzLCAyMTAsIDIwLCAxLCAxNTMsIAotICAgIDIyOCwgMTAzLCAyMzEsIDkxLCAyMCwgMSwgMTUzLCAyMzIsIDI3LCAyMCwgMSwgMTUzLCAyMjYsIDExOSwgMjAsIDEsIDE1MywgCi0gICAgMjQyLCAyMDcsIDIwLCAxLCAxNTMsIDIyNiwgMTc3LCAyMCwgMSwgMTUzLCAyMzAsIDIyMSwgMjI5LCAxMzAsIDIwLCAxLCAKLSAgICAxNTMsIDIyNywgMjE5LCAyMzEsIDk0LCAyMCwgMSwgMTUzLCAxMTEsIDIxMiwgMTc5LCAyMzAsIDM4LCAyMCwgMSwgMTUzLCAKLSAgICAyNDIsIDIwOCwgMjAsIDEsIDE1MywgMjI4LCAxMDMsIDIyOCwgMTA0LCAyMCwgMSwgMTUzLCAyMjAsIDU2LCAyMCwgMSwgCi0gICAgMTUzLCAyMzEsIDc2LCAyMCwgMSwgMTUzLCAyMzEsIDk3LCAyMCwgMSwgMTUzLCAyMzAsIDIwMCwgMjAsIDEsIDE1MywgMjM0LCAKLSAgICAyNTMsIDIwLCAxLCAxNTMsIDIyNiwgMjE0LCAyMzMsIDcxLCAyMCwgMSwgMTUzLCAyMjksIDIyOSwgMjMzLCA3MSwgMjAsIDEsIAotICAgIDE1MywgMjI2LCAzNCwgMjAsIDEsIDE1MywgMjMyLCAyMSwgMjAsIDEsIDE1MywgMjI5LCAzOCwgMjAsIDEsIDE1MywgMjI1LCAKLSAgICAyMCwgMjAsIDEsIDE1MywgMjE2LCA4MCwgMjAsIDEsIDE1MywgMjMyLCAxNTIsIDIwLCAxLCAxNTMsIDIxOSwgMjI3LCAyMCwgCi0gICAgMSwgMTUzLCAyMTcsIDE2OSwgMjAsIDEsIDE1MywgMjMyLCAxOCwgMjAsIDEsIDE1MywgMjM0LCAxNjIsIDIwLCAxLCAxNTMsIAotICAgIDIyOSwgMjI1LCAyMCwgMSwgMTUzLCAyMzMsIDIyMiwgMjAsIDEsIDE1MywgMjMwLCAyMDEsIDIwLCAxLCAxNTMsIDIyMCwgCi0gICAgMTQzLCAyMCwgMSwgMTUzLCAyMzIsIDE5MSwgMjAsIDEsIDE1MywgMjQ0LCA2MiwgMjAsIDEsIDE1MywgMjIzLCAxMDEsIDIwLCAKLSAgICAxLCAxNTMsIDIzMywgMjUwLCAyMCwgMSwgMTUzLCAyMTksIDIyMywgMjAsIDEsIDE1MywgMjMxLCAyMzYsIDIyNSwgMjMxLCAKLSAgICAyMCwgMSwgMTUzLCAyMjAsIDE5MiwgMjAsIDEsIDE1MywgMjI4LCAxMDIsIDIwLCAxLCAxNTMsIDIyMCwgMTc3LCAyMjgsIAotICAgIDExMywgMjEyLCAxODcsIDIwLCAxLCAxNTMsIDIyOCwgMSwgMjMwLCAyMTgsIDIwLCAxLCAxNTMsIDIyNiwgMjA5LCAyMCwgMSwgCi0gICAgMTUzLCAyMjgsIDIyNiwgMjAsIDEsIDE1MywgMjE1LCAxNDEsIDIwLCAxLCAxNTMsIDIyOSwgMTMzLCAyMCwgMSwgMTUzLCAKLSAgICAyMzIsIDE3LCAyMCwgMSwgMTUzLCAyMjksIDEyLCAyMCwgMSwgMTUzLCAyMzEsIDE4MiwgMjAsIDEsIDE1MywgMjI4LCAxMiwgCi0gICAgMjAsIDEsIDE1MywgMjE3LCAxNzMsIDIwLCAxLCAxNTMsIDIxOSwgMjIxLCAyMCwgMSwgMTUzLCAyMjYsIDIxMCwgMjAsIDEsIAotICAgIDE1MywgMjI4LCAxMTcsIDIwLCAxLCAxNTMsIDIzMiwgMjUsIDIwLCAxLCAxNTMsIDIyOCwgMTAsIDIwLCAxLCAxNTMsIDIzNCwgCi0gICAgMjIxLCAyMCwgMSwgMTUzLCAyMjgsIDEyMCwgMjAsIDEsIDE1MywgMjE0LCAyMjcsIDIwLCAxLCAxNTMsIDIzMiwgMTU2LCAKLSAgICAyMCwgMSwgMTUzLCAyMjksIDE4MCwgMjAsIDEsIDE1MywgMjMwLCAxNiwgMjAsIDEsIDE1MywgMjMxLCAxODEsIDIwLCAxLCAKLSAgICAyMjYsIDE0LCAyMjgsIDExNSwgMjAsIDEsIDIyNiwgMTQsIDIxNiwgODMsIDIzMiwgMjIsIDIwLCAxLCAyMjYsIDE0LCAyMjAsIAotICAgIDExMSwgMjAsIDEsIDIyNiwgMTQsIDIyMSwgNDksIDIxNiwgODIsIDIwLCAxLCAyMjYsIDE0LCAyMzIsIDE5MywgMjI4LCA5OSwgCi0gICAgMjAsIDEsIDIyNiwgMTQsIDIzMSwgMTg4LCAyMzIsIDI2LCAyMCwgMSwgMjI2LCAxNCwgMjM0LCA5NiwgMjAsIDEsIDIyNiwgCi0gICAgMTQsIDIxMywgNiwgMjAsIDEsIDIyNiwgMTQsIDIzMSwgMTgzLCAyMCwgMSwgMjI2LCAxNCwgMjM0LCAyNDIsIDIwLCAxLCAKLSAgICAyMjYsIDE0LCAyMjYsIDgzLCAyMCwgMSwgMjI2LCAxNCwgMjEzLCA3NywgMjMzLCA3MSwgMjAsIDEsIDIyNiwgMTQsIDIzMywgCi0gICAgMTI3LCAyMjgsIDExMywgMjI4LCAyMCwgMjAsIDEsIDIyNiwgMTQsIDIyOCwgOTcsIDIyMCwgMjE4LCAyMCwgMSwgMjI2LCAKLSAgICAxNCwgMjI5LCAxOTYsIDIyOSwgMTUsIDIwLCAxLCAyMjYsIDE0LCAyNDIsIDIwNSwgMjAsIDEsIDIyNiwgMTQsIDIyNSwgCi0gICAgMTgxLCAyMCwgMSwgMjI2LCAxNCwgMjE2LCA4MywgMjI4LCAxMTEsIDIwLCAxLCAyMjYsIDE0LCAyMjAsIDIyMywgMjI5LCAKLSAgICAxMCwgMjAsIDEsIDIyNiwgMTQsIDIyMCwgMjE5LCAyMCwgMSwgMjI2LCAxNCwgMjMxLCA4NCwgMjE3LCAxNzIsIDIwLCAxLCAKLSAgICAyMjYsIDE0LCAyMzEsIDE3MCwgMjMxLCAxODQsIDIwLCAxLCAyMjYsIDE0LCAyMjgsIDExLCAyMjgsIDk5LCAyMCwgMSwgCi0gICAgMjI2LCAxNCwgMjM0LCAxNTEsIDIwLCAxLCAyMjYsIDE0LCAyNDIsIDIwNiwgMjAsIDEsIDIyNiwgMTQsIDIzNCwgMTQ3LCAKLSAgICAyMCwgMSwgMjI2LCAxNCwgMjMzLCAxNTEsIDIwLCAxLCAyMjYsIDE0LCAyMjYsIDEyMSwgMjAsIDEsIDIyNiwgMTQsIDIxNCwgCi0gICAgMTU5LCAyMCwgMSwgMjI2LCAxNCwgMjI5LCA5OSwgMjMwLCAxMTcsIDIwLCAxLCAyMjYsIDE0LCAyMjksIDEzMiwgMjMxLCAKLSAgICAxNjYsIDIwLCAxLCAyMjYsIDE0LCAyMTMsIDE4MSwgMjAsIDEsIDIyNiwgMTQsIDIyMiwgMTgyLCAyMCwgMSwgMjI2LCAxNCwgCi0gICAgMjE4LCA0NSwgMjAsIDEsIDIyNiwgMTQsIDIzMSwgOTYsIDIwLCAxLCAyMjYsIDE0LCAyMjksIDExNywgMjAsIDEsIDIyNiwgCi0gICAgMTQsIDIyOSwgMTE4LCAyMzMsIDEwNywgMjAsIDEsIDIyNiwgMTQsIDIzMSwgODYsIDIwLCAxLCAyMjYsIDE0LCAyMTgsIAotICAgIDI1MywgMjAsIDEsIDIyNiwgMTQsIDIzMSwgMTc0LCAyMCwgMSwgMjI2LCAxNCwgMjMwLCAyMDMsIDIwLCAxLCAyMjYsIDE0LCAKLSAgICAyMjgsIDIxLCAyMCwgMSwgMjI2LCAxNCwgMjI1LCAyNCwgMjAsIDEsIDIyNiwgMTQsIDIzMSwgOTUsIDIyOSwgMTM0LCAyMCwgCi0gICAgMSwgMjI2LCAxNCwgMjQ0LCA5NSwgMjAsIDEsIDIyNiwgMTQsIDIzMSwgMTYxLCAyMCwgMSwgMjI2LCAxNCwgMjQ0LCAxMTYsIAotICAgIDIwLCAxLCAyMjYsIDE0LCAyMzQsIDE1OSwgMjAsIDEsIDIyNiwgMTQsIDIzMiwgNDMsIDIyOSwgNCwgMjAsIDEsIDIyNiwgCi0gICAgMTQsIDIzMiwgNDMsIDIyOCwgMjM2LCAyMCwgMSwgMjI2LCAxNCwgMjMzLCAzNSwgMjAsIDEsIDIyNiwgMTQsIDIyOSwgMTQwLCAKLSAgICAyMCwgMSwgMjI2LCAxNCwgMjI4LCAxMjIsIDIwLCAxLCAyMjYsIDE0LCAxODgsIDIwLCAxLCAyMjYsIDE0LCAyMzQsIDgzLCAKLSAgICAyMCwgMSwgMjI2LCAxNCwgMjI5LCA4NywgMjAsIDEsIDEzMSwgMjI5LCA5OCwgMjMyLCAyNCwgMjAsIDEsIDEzMSwgMjI3LCAKLSAgICAyMzcsIDIwLCAxLCAxMzEsIDIxMiwgMTg3LCAyMCwgMSwgMTMxLCAyMTQsIDM3LCAyMCwgMSwgMTMxLCAyMjksIDEzMywgMjAsIAotICAgIDEsIDEzMSwgMjI5LCAyMTcsIDIwLCAxLCAxMzEsIDIyOSwgMTA1LCAyMCwgMSwgMTMxLCAyNDIsIDIxNSwgMjAsIDEsIDEzMSwgCi0gICAgMjMxLCAxNzgsIDIwLCAxLCAxMzEsIDI0MywgNTMsIDIwLCAxLCAxMzEsIDIyOCwgMywgMjMwLCAyMzksIDIzMSwgOTgsIDIwLCAKLSAgICAxLCAxMzEsIDIyOCwgOTUsIDIzMSwgMTY5LCAyMCwgMSwgMTMxLCAyMzEsIDE3NSwgMjAsIDEsIDEzMSwgMjI1LCAxODcsIAotICAgIDIwLCAxLCAxMzEsIDIyOSwgMjAyLCAyMCwgMSwgMTMxLCAyMzEsIDE4NiwgMjUwLCAyMTUsIDIwLCAxLCAxMzEsIDIzNCwgCi0gICAgMTQ5LCAyMCwgMSwgMTMxLCAyNDIsIDIxNiwgMjAsIDEsIDEzMSwgMjM0LCAxNTYsIDIwLCAxLCAxMzEsIDIxMiwgMjA0LCAKLSAgICAyMzAsIDE0NiwgMjAsIDEsIDEzMSwgMjI3LCAyMzEsIDIwLCAxLCAxMzEsIDIzMSwgMTYzLCAyMCwgMSwgMTMxLCAyMjgsIAotICAgIDEyMSwgMjAsIDEsIDEzMSwgMjMxLCAxNjksIDIwLCAxLCAxMzEsIDIxMywgNywgMjAsIDEsIDEzMSwgMjM0LCAyLCAyMCwgMSwgCi0gICAgMTMxLCAyMzUsIDE0LCAyMCwgMSwgMTMxLCAyMjEsIDQ0LCAyMCwgMSwgMTMxLCAyMjksIDIxMSwgMjAsIDEsIDEzMSwgMjE4LCAKLSAgICA0MywgMjAsIDEsIDEzMSwgMjI4LCAyNDAsIDIwLCAxLCAxMzEsIDIxNywgMTksIDIxMiwgMTg5LCAyMCwgMSwgMTMxLCAyMTksIAotICAgIDIzLCAyMCwgMSwgMTMxLCAyMjksIDEyNCwgMjI4LCAyMCwgMjAsIDEsIDEzMSwgMjE0LCAxNTgsIDIwLCAxLCAxMzEsIDIzMCwgCi0gICAgMTksIDIwLCAxLCAxMzEsIDIzMiwgNDMsIDIzNCwgMTU4LCAyMCwgMSwgMTMxLCAyMjgsIDEwNCwgMjAsIDEsIDEzMSwgMjI5LCAKLSAgICAxMTksIDIwLCAxLCAxMzEsIDIzMywgMTExLCAyMCwgMSwgMTMxLCAyMzEsIDE3MSwgMjAsIDEsIDEzMSwgMjMxLCA3NSwgMjAsIAotICAgIDEsIDEzMSwgMjI4LCA5OCwgMjAsIDEsIDEzMSwgMjE3LCAxNjgsIDIwLCAxLCAxMzEsIDIyOSwgMTIxLCAyMCwgMSwgMTMxLCAKLSAgICAyNDMsIDIwNCwgMjAsIDEsIDEzMSwgMjI5LCAyMTYsIDIwLCAxLCAxMzEsIDIyOCwgMTIzLCAyMCwgMSwgMTMxLCAyMjgsIAotICAgIDExOSwgMjAsIDEsIDEzMSwgMjUxLCAzNiwgMjAsIDEsIDEzMSwgMjE0LCAxNjAsIDIwLCAxLCAxMzEsIDIzMSwgMTc2LCAyMCwgCi0gICAgMSwgMTMxLCAyMjMsIDUxLCAyMCwgMSwgMTMxLCAyMjksIDE0LCAyMCwgMSwgMTMxLCAyMzMsIDEyNiwgMjAsIDEsIDEzMSwgCi0gICAgMjE3LCAxNywgMjAsIDEsIDEzMSwgMjI4LCAxMDUsIDIyOSwgODcsIDIwLCAxLCAxMzEsIDIyOSwgNiwgMjAsIDEsIDEzMSwgCi0gICAgMjM0LCAxNjIsIDIwLCAxLCAxMzEsIDIyOSwgMTI1LCAyMCwgMSwgMTMxLCAyMzIsIDE3LCAyMCwgMSwgMTMxLCAyMzEsIAotICAgIDE2NCwgMjAsIDEsIDEzMSwgMjMyLCAxNTYsIDIwLCAxLCAxMzEsIDIzMywgMjEwLCAyMCwgMSwgMTMxLCAyMjksIDEyLCAyMCwgCi0gICAgMSwgMTMxLCAyMjksIDg3LCAyMCwgMSwgMTMxLCAyMTMsIDE3MiwgMjAsIDEsIDEzMSwgMjI5LCAxMjIsIDIwLCAxLCAxMzEsIAotICAgIDIyOCwgMTA4LCAyMCwgMSwgMTMxLCAyMjgsIDEwMCwgMjAsIDEsIDEzMSwgMjMzLCAyMjQsIDIyOCwgMjI2LCAyMCwgMSwgCi0gICAgMTMxLCAyMjgsIDEwNiwgMjAsIDEsIDEzMSwgMjI5LCAyMjQsIDIwLCAxLCAxMzEsIDIzMiwgNDMsIDIyOCwgMTExLCAyMCwgCi0gICAgMSwgMTMxLCAyMTMsIDkxLCAyMCwgMSwgMTMxLCAyMjksIDIyMywgMjAsIDEsIDEzMSwgMjIwLCAxNDUsIDIwLCAxLCAxMzEsIAotICAgIDIyMSwgNDcsIDIwLCAxLCAxMzEsIDIzMSwgMTcyLCAyMCwgMSwgMTMxLCAyMzIsIDI0LCAyMCwgMSwgMTMxLCAyMzEsIDE4MiwgCi0gICAgMjAsIDEsIDEzMSwgMjM0LCAxNTAsIDIwLCAxLCAxMzEsIDIzMSwgMTczLCAyMCwgMSwgMTMxLCAyMzQsIDE1NCwgMjAsIDEsIAotICAgIDEzMSwgMjMxLCAxODYsIDIyNSwgMjM1LCAyMCwgMSwgMTMxLCAyMTIsIDE3MSwgMjAsIDEsIDEzMSwgMjI5LCAyLCAyMCwgMSwgCi0gICAgMTMxLCAyMzEsIDMzLCAyMCwgMSwgMTMxLCAyMzAsIDE3MCwgMjAsIDEsIDEzMSwgMjIwLCAxOTUsIDIwLCAxLCAxMzEsIAotICAgIDIzNCwgMTcyLCAyMzMsIDk0LCAyMCwgMSwgMTMxLCAyMzQsIDE3MiwgMjQ0LCAxMjgsIDIwLCAxLCAxMzEsIDIyOSwgMTUyLCAKLSAgICAyMCwgMSwgMTMxLCAyMzAsIDE2LCAyMCwgMSwgMTMxLCAyMzIsIDIyOSwgMjAsIDEsIDEzMSwgMjI1LCAxOTcsIDIwLCAxLCAKLSAgICAxMzEsIDIyNiwgNzQsIDIwLCAxLCAxMzEsIDIxNywgMTgzLCAyMCwgMSwgMTAzLCAyMzEsIDE2MiwgMjAsIDEsIDEwMywgCi0gICAgMjE0LCAzNSwgMjAsIDEsIDEwMywgMjI5LCAwLCAyMCwgMSwgMTAzLCAyMzEsIDgzLCAyMCwgMSwgMTAzLCAyMjgsIDI1NCwgCi0gICAgMjAsIDEsIDEwMywgMjMzLCA3LCAyMCwgMSwgMTAzLCAyMjksIDMsIDIwLCAxLCAxMDMsIDIyOCwgMTE4LCAyMCwgMSwgMTAzLCAKLSAgICAyMjksIDEzOSwgMjAsIDEsIDEwMywgMjI4LCAyMCwgMjAsIDEsIDEwMywgMjEzLCAxODIsIDIwLCAxLCAxMDMsIDIyOSwgOTUsIAotICAgIDIwLCAxLCAxMDMsIDIyMCwgMjQxLCAyMCwgMSwgMTAzLCAyMjksIDEwNiwgMjAsIDEsIDEwMywgMjM0LCAxNTcsIDIwLCAxLCAKLSAgICAxMDMsIDIxNywgMTcwLCAyMCwgMSwgMTAzLCAyMjAsIDIyMSwgMjAsIDEsIDEwMywgMjI5LCAxMSwgMjAsIDEsIDEwMywgCi0gICAgMjE4LCAyNTMsIDIwLCAxLCAxMDMsIDIzNCwgMTYyLCAyMCwgMSwgMTAzLCAyMTMsIDc5LCAyMCwgMSwgMTAzLCAyMzMsIAotICAgIDIyNSwgMjAsIDEsIDEwMywgMjIyLCAxNTAsIDIwLCAxLCAxMDMsIDIzMSwgODgsIDIwLCAxLCAxMDMsIDIyOSwgMjE1LCAyMCwgCi0gICAgMSwgMTAzLCAyMzEsIDI1MSwgMjAsIDEsIDEwMywgMjMxLCA5NCwgMjAsIDEsIDEwMywgMjIxLCA0NiwgMjAsIDEsIDEwMywgCi0gICAgMjEzLCAzMCwgMjAsIDEsIDEwMywgMjI5LCA1LCAyMCwgMSwgMTAzLCAyMzQsIDE1MywgMjMxLCAxNjUsIDIwLCAxLCAxMDMsIAotICAgIDIyOSwgMTAyLCAyMCwgMSwgMTAzLCAyMTYsIDgyLCAyMCwgMSwgMTAzLCAyNDIsIDIyNCwgMjAsIDEsIDEwMywgMjI5LCA5MiwgCi0gICAgMjAsIDEsIDEwMywgMjQ0LCA5NiwgMjAsIDEsIDEwMywgMjI5LCAyMTksIDIwLCAxLCAxMDMsIDIzMSwgNjcsIDIwLCAxLCAKLSAgICAxMDMsIDIzMywgMzEsIDIwLCAxLCAxMDMsIDIyOSwgMjAxLCAyMCwgMSwgMTAzLCAyMzAsIDIxNywgMjAsIDEsIDEwMywgCi0gICAgMjMxLCA3MSwgMjAsIDEsIDEwMywgMjI1LCA2LCAyMCwgMSwgMTAzLCAyMzEsIDY5LCAyMCwgMSwgMTAzLCAyMzEsIDg1LCAKLSAgICAyMCwgMSwgMTAzLCAyMzIsIDE0MiwgMjAsIDEsIDEwMywgMjI4LCAxMTAsIDIwLCAxLCAxMDMsIDIzMSwgMTg1LCAyMCwgMSwgCi0gICAgMTAzLCAyMzMsIDIwMiwgMjAsIDEsIDEwMywgMjI4LCAxMiwgMjAsIDEsIDEwMywgMjE3LCAxNzMsIDIwLCAxLCAxMDMsIAotICAgIDIxOSwgMjIxLCAyMCwgMSwgMTAzLCAyMTIsIDE3MSwgMjAsIDEsIDEwMywgMjM0LCAxNTQsIDIwLCAxLCAxMDMsIDIyNCwgCi0gICAgNjAsIDIwLCAxLCAxMDMsIDIxNywgMjE4LCAyMCwgMSwgMTAzLCAyMjksIDEwMywgMjAsIDEsIDEwMywgMjMxLCA5MCwgMjAsIAotICAgIDEsIDEwMywgMjI4LCAxMDksIDIwLCAxLCAxMDMsIDIzNCwgMTUyLCAyMCwgMSwgMTAzLCAyMjUsIDE5MSwgMjAsIDEsIDEwMywgCi0gICAgMjI2LCAyOCwgMjAsIDEsIDEwMywgMjI3LCAyNDYsIDIwLCAxLCAxMDMsIDIzMywgMzUsIDIwLCAxLCAxMDMsIDIyOSwgMTQwLCAKLSAgICAyMCwgMSwgMTAzLCAyMzEsIDg3LCAyMCwgMSwgMTAzLCAyMjksIDExNCwgMjAsIDEsIDEwMywgMjEyLCAxODQsIDIwLCAxLCAKLSAgICAxMDMsIDIyNiwgMTQ5LCAyMCwgMSwgMTAzLCAyMTIsIDE4MywgMjAsIDEsIDEwMywgMjI5LCAyMjQsIDIwLCAxLCAxMDMsIAotICAgIDIyOCwgOTksIDIwLCAxLCAxMDMsIDIxOSwgMjUsIDIwLCAxLCAxMDMsIDIzMywgMjI5LCAyMCwgMSwgMTAzLCAyMjksIDEyOSwgCi0gICAgMjAsIDEsIDEwMywgMjI5LCAxMDAsIDIwLCAxLCAxMDMsIDIxNiwgNjYsIDIwLCAxLCAxMDMsIDIzMSwgOTgsIDIwLCAxLCAKLSAgICAxMDMsIDIzMywgMjE5LCAyMCwgMSwgMTAzLCAyMjgsIDEwNywgMjAsIDEsIDEwMywgMjE3LCAxNzEsIDIwLCAxLCAxMDMsIAotICAgIDIzMiwgMTksIDIwLCAxLCAxMDMsIDIyOSwgMTM4LCAyMCwgMSwgMTAzLCAyMzMsIDMwLCAyMCwgMSwgMTAzLCAyMjksIDEyMCwgCi0gICAgMjAsIDEsIDEwMywgMjI4LCAxMTIsIDIwLCAxLCAxMDMsIDIyOCwgMjQwLCAyMCwgMSwgMTAzLCAyNDIsIDIwOSwgMjAsIDEsIAotICAgIDEwMywgMjMzLCAyMzgsIDIwLCAxLCAxMDMsIDIyMywgMjM0LCAyMjcsIDc1LCAyMCwgMSwgMTAzLCAyMTgsIDM1LCAyMCwgMSwgCi0gICAgMTAzLCAyMTYsIDIyMywgMjAsIDEsIDEwMywgMjI4LCAxMCwgMjAsIDEsIDEwMywgMjIzLCAxMzYsIDIwLCAxLCAxMDMsIAotICAgIDIzMywgNzMsIDIwLCAxLCAxMDMsIDIzMSwgMTQ0LCAyMCwgMSwgMTAzLCAxODMsIDIwLCAxLCAxMDMsIDIxOCwgMjA1LCAyMCwgCi0gICAgMSwgMTAzLCAyMzAsIDE3MiwgMjAsIDEsIDEwMywgMjIwLCAyMDcsIDIwLCAxLCAxMDMsIDIyMCwgMjE3LCAyMCwgMSwgMTAzLCAKLSAgICAyMzMsIDE3NywgMjAsIDEsIDEwMywgMjI4LCA5MiwgMjAsIDEsIDEwMywgMjIwLCAxNTAsIDIwLCAxLCAxMDMsIDIyOCwgCi0gICAgMTAxLCAyMCwgMSwgMTAzLCAyMjYsIDg2LCAyMCwgMSwgMTAzLCAyMjksIDY0LCAyMCwgMSwgMTAzLCAyMjAsIDE3NiwgMjAsIAotICAgIDEsIDEwMywgMjI1LCAxOSwgMjAsIDEsIDEwMywgMjMwLCAxMTcsIDIwLCAxLCAxMDMsIDIzMiwgMTc0LCAyMCwgMSwgMTAzLCAKLSAgICAyMjMsIDIzNCwgMjMwLCAxNjYsIDIwLCAxLCAxMDMsIDIxNywgNzEsIDIwLCAxLCAxMDMsIDIyOCwgOTMsIDIwLCAxLCAxMDMsIAotICAgIDIzMSwgMTg2LCAxOTgsIDIwLCAxLCAxMDMsIDIyMiwgMTQ4LCAyMCwgMSwgMTAzLCAyNDQsIDE2MywgMjAsIDEsIDgwLCAKLSAgICAyMjksIDIyMywgMjAsIDEsIDgwLCAyMTYsIDIyOSwgMjAsIDEsIDgwLCAyMzEsIDE3NSwgMjAsIDEsIDgwLCAyMzMsIDExMSwgCi0gICAgMjAsIDEsIDgwLCAyMTQsIDEwOSwgMjAsIDEsIDgwLCAyMzIsIDE3OCwgMjAsIDEsIDgwLCAyMjYsIDIxMywgMjAsIDEsIDgwLCAKLSAgICAyMTksIDIzMCwgMjAsIDEsIDgwLCAyMjQsIDM3LCAyMCwgMSwgODAsIDIyOCwgMTE0LCAyMCwgMSwgODAsIDIyOSwgMTk0LCAKLSAgICAyMCwgMSwgODAsIDIyNSwgMzMsIDIwLCAxLCA4MCwgMjE4LCAxMywgMjAsIDEsIDgwLCAyMjksIDEwOCwgMjAsIDEsIDgwLCAKLSAgICAyMzMsIDI1NCwgMjAsIDEsIDgwLCAyMTMsIDE3NSwgMjAsIDEsIDgwLCAyMjIsIDg5LCAyMCwgMSwgODAsIDIyOSwgMTMwLCAKLSAgICAyMCwgMSwgODAsIDIyNiwgMjEwLCAyMCwgMSwgODAsIDIxNiwgMjMwLCAyMCwgMSwgODAsIDIzMywgMjIzLCAyMCwgMSwgODAsIAotICAgIDIzMiwgMTkyLCAyMCwgMSwgODAsIDIyOCwgMTE3LCAyMCwgMSwgODAsIDIyOSwgODQsIDIwLCAxLCA4MCwgMjMyLCAyNSwgCi0gICAgMjAsIDEsIDgwLCAyMjksIDEwMSwgMjAsIDEsIDgwLCAyMjksIDgzLCAyMCwgMSwgODAsIDIyOCwgMTE2LCAyMCwgMSwgODAsIAotICAgIDIyMywgMTM0LCAyMCwgMSwgODAsIDIyOSwgMiwgMjAsIDEsIDgwLCAyMjYsIDg1LCAyMCwgMSwgODAsIDIyMiwgMjAwLCAyMCwgCi0gICAgMSwgODAsIDIyOSwgMTE1LCAyMCwgMSwgODAsIDIzMSwgNzcsIDIwLCAxLCA4MCwgMjQyLCAyMDMsIDIwLCAxLCA4MCwgMjI5LCAKLSAgICAxMDQsIDIwLCAxLCA4MCwgMjI5LCAxMywgMjAsIDEsIDgwLCAyMzEsIDIzNSwgMjAsIDEsIDgwLCAyMzIsIDE3NiwgMjAsIDEsIAotICAgIDgwLCAyMjksIDEzNSwgMjAsIDEsIDgwLCAyMjksIDIwNywgMjAsIDEsIDgwLCAyMTgsIDM0LCAyMjgsIDk5LCAyMCwgMSwgCi0gICAgODAsIDIyMSwgNDgsIDIwLCAxLCA4MCwgMjI1LCAyOSwgMjAsIDEsIDgwLCAyMjksIDIyNywgMjE5LCAyMzUsIDIwLCAxLCAKLSAgICA4MCwgMjI5LCAxMjMsIDIyOCwgMjAsIDIwLCAxLCA4MCwgMjEyLCAyNTEsIDIwLCAxLCA4MCwgMjQyLCAyMDQsIDIwLCAxLCAKLSAgICA4MCwgMjE2LCA4MSwgMjAsIDEsIDgwLCAyMTMsIDEwLCAyMCwgMSwgODAsIDIyNSwgMTUwLCAyMCwgMSwgODAsIDIxNiwgNzEsIAotICAgIDIwLCAxLCA4MCwgMjM0LCAxNjAsIDIwLCAxLCA4MCwgMjE5LCAyNCwgMjAsIDEsIDgwLCAyMTcsIDE3MiwgMjAsIDEsIDgwLCAKLSAgICAyMTQsIDE2MSwgMjAsIDEsIDgwLCAyMTMsIDI0NywgMjAsIDEsIDgwLCAyMzMsIDE1NCwgMjAsIDEsIDgwLCAyMjUsIDM1LCAKLSAgICAyMCwgMSwgODAsIDIxOCwgNDQsIDIwLCAxLCA4MCwgMjQyLCAyMjMsIDIwLCAxLCA4MCwgMjI5LCAxNDQsIDIwLCAxLCA4MCwgCi0gICAgMjIwLCAyMjAsIDIwLCAxLCA4MCwgMjMxLCA3MiwgMjAsIDEsIDgwLCAyMzEsIDE3OSwgMjAsIDEsIDgwLCAyMjcsIDIzNSwgCi0gICAgMjAsIDEsIDgwLCAyMjgsIDIyMywgMjAsIDEsIDgwLCAyNDMsIDQ5LCAyMCwgMSwgODAsIDIxNiwgNzIsIDIwLCAxLCA4MCwgCi0gICAgMjMzLCAyMzIsIDIwLCAxLCA4MCwgMjEzLCA1NywgMjAsIDEsIDgwLCAyMjgsIDExLCAyNDksIDIwOSwgMjAsIDEsIDgwLCAKLSAgICAyMTIsIDI0MSwgMjAsIDEsIDgwLCAyMzEsIDg5LCAyMCwgMSwgODAsIDIyOSwgMjEyLCAyMCwgMSwgODAsIDIyNSwgMjMyLCAKLSAgICAyMCwgMSwgODAsIDIxMiwgMTg4LCAyMCwgMSwgODAsIDIzMywgMzIsIDIwLCAxLCA4MCwgMjQzLCAyMDQsIDIwLCAxLCA4MCwgCi0gICAgMjQzLCA0OCwgMjAsIDEsIDgwLCAyMjksIDk0LCAyMCwgMSwgODAsIDIzNCwgMTYyLCAyMCwgMSwgODAsIDIzMiwgMjgsIDIwLCAKLSAgICAxLCA4MCwgMjI5LCAxMDcsIDIwLCAxLCA4MCwgMjQyLCAyMTAsIDIwLCAxLCA4MCwgMjQ0LCAxNjQsIDIwLCAxLCA4MCwgCi0gICAgMjI4LCA5NCwgMjAsIDEsIDgwLCAyMjYsIDI5LCAyMCwgMSwgODAsIDIxMywgOCwgMjAsIDEsIDgwLCAyMjksIDEzMSwgMjAsIAotICAgIDEsIDgwLCAyMjgsIDExLCAyNTEsIDIwMCwgMjAsIDEsIDgwLCAyMjcsIDIxNSwgMjAsIDEsIDgwLCAyMjUsIDEyNywgMjAsIAotICAgIDEsIDgwLCAyMzEsIDMzLCAyMCwgMSwgODAsIDI0MywgMjAyLCAyMCwgMSwgODAsIDIzMCwgMzgsIDIwLCAxLCA4MCwgMjMwLCAKLSAgICAxNzAsIDIwLCAxLCA4MCwgMjQyLCAyMDksIDIwLCAxLCA4MCwgMjQzLCAyMDYsIDcyLCAyMCwgMSwgODAsIDIzMCwgMTE4LCAKLSAgICAyMCwgMSwgODAsIDIyNSwgMzIsIDIwLCAxLCA4MCwgMjI5LCA5NiwgMjAsIDEsIDgwLCAyMzMsIDIxMCwgMjAsIDEsIDgwLCAKLSAgICAyMjUsIDIyOSwgMjAsIDEsIDgwLCAyMjgsIDEwMiwgMjAsIDEsIDgwLCAyMTMsIDksIDIwLCAxLCA4MCwgMjI5LCAxMTYsIAotICAgIDIwLCAxLCA4MCwgMjI2LCAyMTQsIDIyNiwgNjIsIDIwLCAxLCA4MCwgMjQzLCAyMDYsIDI1MCwgMjAzLCAyMCwgMSwgODAsIAotICAgIDI0NCwgNiwgMjAsIDEsIDgwLCAyMjksIDcsIDIwLCAxLCA4MCwgNjEsIDIwLCAxLCA4MCwgMjE2LCAyMjMsIDIwLCAxLCA4MCwgCi0gICAgNzUsIDIwLCAxLCA4MCwgNzIsIDIwLCAxLCA4MCwgMjMzLCAxMDksIDIwLCAxLCA4MCwgMjI2LCAyMTQsIDIyNSwgMTU3LCAKLSAgICAyMCwgMSwgODAsIDIxOCwgNDksIDIwLCAxLCA4MCwgMjE4LCAyLCAyMCwgMSwgODAsIDIyOSwgMjI3LCAyMzAsIDEwNiwgCi0gICAgMjQwLCAyMjEsIDIwLCAxLCA4MCwgMjIwLCAxOTUsIDIwLCAxLCA4MCwgMjEzLCA1LCAyMCwgMSwgODAsIDIyOSwgNzcsIDIwLCAKLSAgICAxLCA4MCwgMjEyLCAxOTMsIDIwLCAxLCA4MCwgMjEyLCAyMTgsIDIxOCwgMTg1LCAyMCwgMSwgODAsIDIxMiwgMjE4LCAyNDksIAotICAgIDg2LCAyMCwgMSwgODAsIDIxMiwgMTc4LCAyMCwgMSwgODAsIDIxMiwgMTg2LCAyMCwgMSwgODAsIDIzNCwgMTQ4LCAyMCwgMSwgCi0gICAgODAsIDIyNiwgMjcsIDIwLCAxLCA4MCwgMjI5LCA4LCAyNDUsIDY1LCAyMCwgMSwgODAsIDIyNSwgMzAsIDIwLCAxLCA4MCwgCi0gICAgMjEzLCAxODAsIDIwLCAxLCA4MCwgMjQ0LCAxMTYsIDIwLCAxLCA4MCwgMjE0LCAyMjcsIDIwLCAxLCA4MCwgMjMyLCAxNTYsIAotICAgIDIwLCAxLCA4MCwgMjMxLCA0MiwgMjAsIDEsIDgwLCAyMjMsIDIwNCwgMjAsIDEsIDgwLCAyMjQsIDYxLCAyMCwgMSwgODAsIAotICAgIDIyOSwgNzYsIDIwLCAxLCA4MCwgMjI5LCAxNTksIDIwLCAxLCA4MCwgMjIwLCAxODcsIDIwLCAxLCA4MCwgMjIwLCAxNzYsIAotICAgIDIwLCAxLCA4MCwgMjQzLCAyMDYsIDIyMywgMjM2LCAyMCwgMSwgODAsIDIwNSwgMjAsIDEsIDgwLCAyMjUsIDI0MCwgMjAsIAotICAgIDEsIDgwLCAyMzIsIDE3NCwgMjAsIDEsIDgwLCAyMzQsIDM3LCAyMCwgMSwgODAsIDIzMSwgMTIyLCAyMCwgMSwgODAsIDE4OCwgCi0gICAgMjAsIDEsIDgwLCAyMzEsIDIzMiwgMjAsIDEsIDgwLCAyMTcsIDE3NCwgMjAsIDEsIDgwLCAyMzQsIDEwMSwgMjAsIDEsIDgwLCAKLSAgICAyMzAsIDIyMCwgMjAsIDEsIDgwLCAyMTcsIDIwMCwgMjAsIDEsIDgwLCAyNDQsIDEzNywgMjAsIDEsIDgwLCAyNDIsIDE5OSwgCi0gICAgMjAsIDEsIDIyNiwgMTMsIDE4MSwgMjAsIDEsIDIyNiwgMTMsIDY5LCAyMCwgMSwgMjI2LCAxMywgMjMzLCAyMzgsIDIwLCAxLCAKLSAgICAyMjYsIDEzLCAyNDUsIDE2NSwgMjAsIDEsIDIyNiwgMTMsIDIyNCwgMSwgMjAsIDEsIDIyNiwgMTMsIDIxOCwgMzUsIDIwLCAKLSAgICAxLCAyMjYsIDEzLCAyMjgsIDEwLCAyMCwgMSwgMjI2LCAxMywgMjMzLCAxNTcsIDIwLCAxLCAyMjYsIDEzLCAyMjMsIDEzNiwgCi0gICAgMjAsIDEsIDIyNiwgMTMsIDIyMywgMTgyLCAyMCwgMSwgMjI2LCAxMywgMjMxLCAxNDQsIDIwLCAxLCAyMjYsIDEzLCAyMTgsIAotICAgIDQ5LCAyMCwgMSwgMjI2LCAxMywgMjI5LCAyMjYsIDIwLCAxLCAyMjYsIDEzLCAyMjksIDE0LCAyMCwgMSwgMjI2LCAxMywgCi0gICAgMTgzLCAyMCwgMSwgMjI2LCAxMywgMjE4LCAyMDUsIDIwLCAxLCAyMjYsIDEzLCAyMjAsIDIwNywgMjAsIDEsIDIyNiwgMTMsIAotICAgIDIyMCwgMTE3LCAyMCwgMSwgMjI2LCAxMywgMjIxLCA0NCwgMjAsIDEsIDIyNiwgMTMsIDIzMywgMTc3LCAyMCwgMSwgMjI2LCAKLSAgICAxMywgMjM0LCAxNjIsIDIwLCAxLCAyMjYsIDEzLCAyMjgsIDY0LCAyMCwgMSwgMjI2LCAxMywgMjI4LCA5MiwgMjAsIDEsIAotICAgIDIyNiwgMTMsIDIyOCwgMjQxLCAyMCwgMSwgMjI2LCAxMywgMjEyLCAyMTcsIDIwLCAxLCAyMjYsIDEzLCAyMjAsIDE1MCwgCi0gICAgMjAsIDEsIDIyNiwgMTMsIDE4NiwgMjAsIDEsIDIyNiwgMTMsIDIyOCwgMTIwLCAyMCwgMSwgMjI2LCAxMywgMjI2LCAyNywgCi0gICAgMjAsIDEsIDIyNiwgMTMsIDIyOCwgMTAxLCAyMCwgMSwgMjI2LCAxMywgMjEzLCAxODAsIDIwLCAxLCAyMjYsIDEzLCAyMjYsIAotICAgIDg2LCAyMCwgMSwgMjI2LCAxMywgMjIzLCA1MSwgMjAsIDEsIDIyNiwgMTMsIDIyOSwgNjQsIDIwLCAxLCAyMjYsIDEzLCAKLSAgICAyMjMsIDIwNCwgMjAsIDEsIDIyNiwgMTMsIDIzNCwgMTcxLCAyMCwgMSwgMjI2LCAxMywgMjI5LCA5MywgMjAsIDEsIDIyNiwgCi0gICAgMTMsIDIyOSwgMTQxLCAyMCwgMSwgMjI2LCAxMywgMjIwLCAxODcsIDIwLCAxLCAyMjYsIDEzLCAyMjUsIDMzLCAyMCwgMSwgCi0gICAgMjI2LCAxMywgMjQ0LCA2LCAyMCwgMSwgMjI2LCAxMywgMjE0LCA0OSwgMjAsIDEsIDIyNiwgMTMsIDIzMywgMTMsIDIwLCAxLCAKLSAgICAyMjYsIDEzLCAyMzIsIDE3NCwgMjAsIDEsIDIyNiwgMTMsIDIzNCwgMzcsIDIwLCAxLCAyMjYsIDEzLCAyMzEsIDE3NywgMjAsIAotICAgIDEsIDIyNiwgMTMsIDIyMywgMjMzLCAyMCwgMSwgMjI2LCAxMywgMTg4LCAyMCwgMSwgMjI2LCAxMywgMjMwLCAyMzEsIDIwLCAKLSAgICAxLCAyMjYsIDEzLCAyMzEsIDE4NSwgMjAsIDEsIDIyNiwgMTMsIDIxNywgMTgzLCAyMCwgMSwgMjI2LCAxMywgMjM0LCA0LCAKLSAgICAyMCwgMSwgMjI2LCAxMywgMjIyLCAxNjYsIDIwLCAxLCAyMjYsIDEzLCAyMTQsIDk4LCA1NiwgMSwgMjUzLCAxOTMsIDc0LCAKLSAgICAxNDIsIDEsIDI1MywgMTkzLCAyMTMsIDM4LCA0NywgMjcsIDE2LCAyMjUsIDM5LCA0NywgMjcsIDE2LCAyNDgsIDEwMywgNDcsIAotICAgIDI3LCAxNiwgMjI2LCA1MCwgNDcsIDI3LCAxNiwgMjI2LCAyMzcsIDI0NSwgMTM1LCA0NywgMjcsIDE2LCAyMjYsIDIzNywgCi0gICAgMjQ3LCAxNTMsIDQ3LCAyNywgMTYsIDIxNCwgMjQ4LCAyNDUsIDEzNSwgNDcsIDI3LCAxNiwgMjE0LCAyNDgsIDI0NywgMTUzLCAKLSAgICA0NywgMjcsIDE2LCAyMzQsIDIwMiwgNDcsIDI3LCAxNiwgMjE4LCAxMTUsIDQ3LCAyNywgMTYsIDIyNiwgMTM3LCA0NywgMjcsIAotICAgIDE2LCAyMTIsIDIwOCwgNDcsIDI3LCAxNiwgMjEyLCAyMDksIDI0NywgMTUzLCA0NywgMjcsIDE2LCAyMzMsIDI0MywgNDcsIAotICAgIDI3LCAxNiwgMjUzLCAyMzYsIDI0NSwgMTM1LCA0NywgMjcsIDE2LCAyNDQsIDI0OSwgMjQ1LCAxMzUsIDQ3LCAyNywgMTYsIAotICAgIDIxNywgMjExLCA0NywgMjcsIDE2LCAyMzQsIDE2NywgNDcsIDI3LCAxNiwgMjUzLCAyMjcsIDQ3LCAyNywgMTYsIDI1MywgCi0gICAgMjI4LCAyNDcsIDE1MywgNDcsIDI3LCAxNiwgMjE4LCAxMjEsIDQ3LCAyNywgMTYsIDIxNywgMTEyLCA0NywgMjcsIDE2LCAKLSAgICAyMjcsIDcyLCAyNTMsIDE5MSwgNDcsIDI3LCAxNiwgMjQyLCAxMzUsIDI1MywgMTkxLCA0NywgMjcsIDE2LCAyMjUsIDM4LCAKLSAgICA0NywgMjcsIDE2LCAyNTAsIDg1LCA0NywgMjcsIDE2LCAyMTQsIDIzOCwgNDcsIDI3LCAxNiwgMjM1LCAxNjIsIDI1MywgCi0gICAgMTkxLCA0NywgMjcsIDE2LCAyMzQsIDE2OSwgMjUzLCAxOTEsIDQ3LCAyNywgMTYsIDIzNCwgMTY4LCAyNTMsIDE5MSwgNDcsIAotICAgIDI3LCAxNiwgMjIyLCAxMzEsIDQ3LCAyNywgMTYsIDIyNiwgMTI4LCA0NywgMjcsIDE2LCAyMTksIDg2LCAyNTMsIDIzMCwgCi0gICAgNDcsIDI3LCAxNiwgMjI2LCAyMzYsIDI1MywgMTkxLCA0NywgMjcsIDE2LCAyMTQsIDI0NywgMjUzLCAxOTEsIDQ3LCAyNywgCi0gICAgMTYsIDI1MywgMjMxLCAyNTMsIDE5MSwgNDcsIDI3LCAxNiwgMjUzLCAyMjUsIDQ3LCAyNywgMTYsIDIzNCwgNDYsIDQ3LCAKLSAgICAyNywgMTYsIDIyMywgMTk5LCA0NywgMjcsIDE2LCAyMjUsIDIzOCwgMjUzLCAxOTEsIDQ3LCAyNywgMTYsIDIxNywgMzYsIAotICAgIDQ3LCAyNywgMTYsIDI1NCwgMzAsIDQ3LCAyNywgMTYsIDIyMiwgNzgsIDQ3LCAyNywgMTYsIDIxOCwgMTI0LCAyNTMsIDE5MSwgCi0gICAgNDcsIDI3LCAxNiwgMjE4LCAxMjQsIDIzMSwgMTA3LCAyMTksIDg0LCA0NywgMjcsIDE2LCAyMjYsIDIzMSwgMjUzLCAxOTEsIAotICAgIDQ3LCAyNywgMTYsIDIxNywgMTQzLCA0NywgMjcsIDE2LCAyMzMsIDUxLCA0NywgMjcsIDE2LCAyNDUsIDI1MiwgNDcsIDI3LCAKLSAgICAxNiwgMjE2LCAxODUsIDQ3LCAyNywgMTYsIDIxNywgMTg1LCA0NywgMjcsIDE2LCAyMzMsIDI0NiwgNDcsIDI3LCAxNiwgCi0gICAgMjUzLCAyMzYsIDI0NCwgMjQ5LCAyMjksIDE3NywgNDcsIDI3LCAxNiwgMjQzLCAyMDcsIDI1MywgMTkxLCA0NywgMjcsIDE2LCAKLSAgICAyMzYsIDcsIDQ3LCAyNywgMTYsIDIxNiwgMTU3LCAyNTMsIDE5MSwgNDcsIDI3LCAxNiwgMjM0LCAyMDUsIDIxNiwgMTU2LCAKLSAgICA0NywgMjcsIDE2LCAyMjYsIDc1LCA0NywgMjcsIDE2LCAyMjUsIDQzLCA0NywgMjcsIDE2LCAyMzQsIDIwLCA0NywgMjcsIAotICAgIDE2LCAyNTAsIDE3LCAyNTMsIDE5MSwgNDcsIDI3LCAxNiwgMjI0LCAzOCwgNDcsIDI3LCAxNiwgMjI2LCAxNDAsIDI1MywgCi0gICAgMTkxLCA0NywgMjcsIDE2LCAyMjYsIDEzOCwgMjUzLCAxOTEsIDQ3LCAyNywgMTYsIDI0MCwgMTAyLCA0NywgMjcsIDE2LCAKLSAgICAyMzAsIDIzLCA0NywgMjcsIDE2LCAyMjYsIDMyLCA0NywgMjcsIDE2LCAyMzQsIDIxLCAyNTQsIDU4LCA0NywgMjcsIDE2LCAKLSAgICAyMTYsIDE1NywgMjU0LCA1OCwgNDcsIDI3LCAxNiwgMjE5LCA2MywgNDcsIDI3LCAxNiwgMjQyLCAxMDEsIDQ3LCAyNywgMTYsIAotICAgIDIzNSwgMTYyLCAyMjksIDE3NywgNDcsIDI3LCAxNiwgMjI3LCA3MiwgMjI5LCAxNzcsIDQ3LCAyNywgMTYsIDIyNiwgMjM3LCAKLSAgICAyMjksIDE3NywgNDcsIDI3LCAxNiwgMjI2LCAzMSwgNDcsIDI3LCAxNiwgMjM0LCA3LCA0NywgMjcsIDE2LCAyMjYsIDMwLCAKLSAgICA0NywgMjcsIDE2LCAyMzMsIDI0NSwgNDcsIDI3LCAxNiwgMjI2LCA3NiwgMjI5LCAxNzcsIDQ3LCAyNywgMTYsIDIzNCwgCi0gICAgMTY4LCAyMjksIDE3OCwgMjU0LCA3LCA0NywgMjcsIDE2LCAyMzQsIDE2OSwgMjI5LCAxNzgsIDI1NCwgNywgNDcsIDI3LCAKLSAgICAxNiwgMjEyLCAyMDYsIDQ3LCAyNywgMTYsIDI1MywgMjI4LCAyMjksIDE3NywgNDcsIDI3LCAxNiwgMjUzLCAyMjksIDIxOCwgCi0gICAgMTIyLCAyMjksIDE3NywgNDcsIDI3LCAxNiwgMjEyLCAyMDcsIDQ3LCAyNywgMTYsIDIzMywgMjQ0LCA0NywgMjcsIDE2LCAKLSAgICAyNDUsIDEzMCwgNDcsIDI3LCAxNiwgMjUwLCA4NiwgNDcsIDI3LCAxNiwgMjMxLCAxMSwgMjM1LCAxNjEsIDQ3LCAyNywgMTYsIAotICAgIDIxNCwgMjQ4LCAyMjksIDE3NywgNDcsIDI3LCAxNiwgMjI1LCAyMzgsIDIyOSwgMTc3LCA0NywgMjcsIDE2LCAyMjUsIDQ0LCAKLSAgICAyMjksIDE3NywgNDcsIDI3LCAxNiwgMjI3LCA2OSwgNDcsIDI3LCAxNiwgMjUzLCAyNTEsIDQ3LCAyNywgMTYsIDIzMiwgCi0gICAgMTE4LCA0NywgMjcsIDE2LCAyMjYsIDEzOCwgMjI5LCAxNzcsIDQ3LCAyNywgMTYsIDIyNiwgMTQwLCAyMjksIDE3NywgNDcsIAotICAgIDI3LCAxNiwgMjQ1LCAyNiwgMjI2LCAxMzksIDQ3LCAyNywgMTYsIDIzMywgMTc1LCA0NywgMjcsIDE2LCAyNTMsIDI1MiwgCi0gICAgNDcsIDI3LCAxNiwgMjE2LCAxNTcsIDIyOSwgMTc3LCA0NywgMjcsIDE2LCAyNDUsIDEzMywgNDcsIDI3LCAxNiwgMjE4LCAKLSAgICAxMjQsIDIyOSwgMTc3LCA0NywgMjcsIDE2LCAyMTgsIDExNiwgNDcsIDI3LCAxNiwgMjUwLCAxNywgMjI5LCAxNzcsIDQ3LCAKLSAgICAyNywgMTYsIDI0NSwgNjksIDQ3LCAyNywgMTYsIDIyMiwgNzksIDIyOSwgMTc3LCA0NywgMjcsIDE2LCAyMTMsIDEzOSwgCi0gICAgMjM0LCA0NiwgNDcsIDI3LCAxNiwgMjE2LCAxNTQsIDQ3LCAyNywgMTYsIDIyNSwgNDUsIDQ3LCAyNywgMTYsIDIxNiwgMTU4LCAKLSAgICA0NywgMjcsIDE2LCAyMTYsIDE1NSwgNDcsIDI3LCAxNiwgMjI1LCA0MiwgNDcsIDI3LCAxNiwgMjE2LCAxNTMsIDQ3LCAyNywgCi0gICAgMTYsIDIyNSwgNDEsIDQ3LCAyNywgMTYsIDI0MiwgMTM0LCA0NywgMjcsIDE2LCAyNTMsIDE4NSwgNDcsIDI3LCAxNiwgMjQ1LCAKLSAgICAyNiwgMjUzLCAxODUsIDQ3LCAyNywgMTYsIDIyNiwgMjMxLCAyMjksIDE3NywgNDcsIDI3LCAxNiwgMjE3LCAxNDIsIDI0NSwgCi0gICAgMzQsIDQ3LCAyNywgMTYsIDIxNywgMTQyLCAyNDQsIDI0OCwgNDcsIDI3LCAxNiwgMjE3LCAxNDQsIDI1MywgMjMyLCA0NywgCi0gICAgMjcsIDE2LCAyMTcsIDEzNywgMjM0LCAyNTEsIDI1MywgMjI0LCA0NywgMjcsIDE2LCAyMzQsIDIwNCwgNDcsIDI3LCAxNiwgCi0gICAgMjQ1LCA5NywgNDcsIDI3LCAxNiwgMjEzLCAyLCAyMzQsIDIwMSwgNDcsIDI3LCAxNiwgMjEzLCAyLCAyNTQsIDcsIDQ3LCAKLSAgICAyNywgMTYsIDIxOSwgODUsIDQ3LCAyNywgMTYsIDIzNCwgNDcsIDI1NCwgNywgNDcsIDI3LCAxNiwgMjQ3LCAxNTQsIDI1MywgCi0gICAgMTkxLCA0NywgMjcsIDE2LCAyMzMsIDI0NywgMjUzLCAxOTEsIDQ3LCAyNywgMTYsIDIzMywgMjQ3LCAyNTQsIDU4LCA0NywgCi0gICAgMjcsIDE2LCAyMzMsIDI0NywgMjI5LCAxNzcsIDQ3LCAyNywgMTYsIDI1MywgMjMxLCAyMjksIDE3NywgNDcsIDI3LCAxNiwgCi0gICAgMjUzLCAyMzMsIDQ3LCAyNywgMTYsIDI0NywgMTUzLCA0NywgMjcsIDE2LCAyMTYsIDE2OCwgNDcsIDI3LCAxNiwgMjE3LCAKLSAgICAxNzcsIDQ3LCAyNywgMTYsIDIzNCwgMTEsIDQ3LCAyNywgMTYsIDIzMywgNTYsIDI0NSwgOTIsIDI1MCwgOCwgNDcsIDI3LCAKLSAgICAxNiwgMjMzLCA1NiwgMjQ1LCAyNTMsIDI1MCwgOSwgNDcsIDI3LCAxNiwgMjMzLCA1NiwgMjE2LCAxNzAsIDI1MCwgOSwgNDcsIAotICAgIDI3LCAxNiwgMjMzLCA1NiwgMjE3LCAxODcsIDI1MCwgOSwgNDcsIDI3LCAxNiwgMjMzLCA1NiwgMjM2LCAyLCAyNTAsIDgsIAotICAgIDQ3LCAyNywgMTYsIDI0MiwgMTM1LCAyMjksIDE3OCwgMjU0LCA3LCA0NywgMjcsIDE2LCAyNDIsIDEzNSwgMjI2LCAxMjksIAotICAgIDI1MywgMTgxLCA0NywgMjcsIDE2LCAyNDIsIDEzNSwgMjI2LCAxMjksIDI0NywgMjM2LCA0NywgMjcsIDE2LCAyNDcsIDE3NywgCi0gICAgNDcsIDI3LCAxNiwgMjQ3LCAxNzgsIDIyNiwgMTI5LCAyNTMsIDE4MiwgMjM0LCAyMDEsIDQ3LCAyNywgMTYsIDI0NywgMTc4LCAKLSAgICAyMjYsIDEyOSwgMjUzLCAxODIsIDI1NCwgNywgNDcsIDI3LCAxNiwgMjQ3LCAxNzgsIDIyNiwgMTI5LCAyNDcsIDIzNiwgNDcsIAotICAgIDI3LCAxNiwgMjE2LCAxNzQsIDQ3LCAyNywgMTYsIDI1MywgMTg2LCA0NywgMjcsIDE2LCAyMzYsIDksIDQ3LCAyNywgMTYsIAotICAgIDI0NywgMTk4LCA0NywgMjcsIDE2LCAyNTQsIDExNiwgMjI1LCAxMzQsIDI1MywgMTg3LCA0NywgMjcsIDE2LCAyNTQsIDExNiwgCi0gICAgMjUzLCAxODQsIDQ3LCAyNywgMTYsIDI1NCwgMTE2LCAyNTMsIDE4NywgNDcsIDI3LCAxNiwgMjU0LCAxMTYsIDIzMSwgMTAxLCAKLSAgICA0NywgMjcsIDE2LCAyNTQsIDExNiwgMjMxLCAxMTAsIDQ3LCAyNywgMTYsIDI1NCwgMTE2LCAyNDIsIDEzNiwgNDcsIDI3LCAKLSAgICAxNiwgMjU0LCAxMTYsIDI0MiwgMTMzLCA0NywgMjcsIDE2LCAyNTQsIDExNiwgMjI1LCAxMzQsIDI0MiwgMTM2LCA0NywgMjcsIAotICAgIDE2LCAyMzEsIDIxNCwgMjI1LCA1MCwgMjQwLCAxMDAsIDQ3LCAyNywgMTYsIDIzMSwgMjE0LCAyNTQsIDYwLCAyMjUsIDUwLCAKLSAgICAyNDAsIDEwMCwgNDcsIDI3LCAxNiwgMjMxLCAyMTQsIDI0NywgMjM1LCAyNDAsIDEwMCwgNDcsIDI3LCAxNiwgMjMxLCAyMTQsIAotICAgIDI1NCwgNjAsIDI0NywgMjM1LCAyNDAsIDEwMCwgNDcsIDI3LCAxNiwgMjMxLCAyMTQsIDIxNiwgMTYzLCAyNDAsIDEwMCwgCi0gICAgNDcsIDI3LCAxNiwgMjMxLCAyMTQsIDIxNiwgMTc1LCA0NywgMjcsIDE2LCAyMzEsIDIxNCwgMjE3LCAxODEsIDI0MCwgMTAwLCAKLSAgICA0NywgMjcsIDE2LCAyMzEsIDIxNCwgMjE3LCAxODEsIDIzMywgNTksIDI0MCwgMTAwLCA0NywgMjcsIDE2LCAyMzEsIDIxNCwgCi0gICAgMjMzLCA1OSwgMjQwLCAxMDAsIDQ3LCAyNywgMTYsIDIzMSwgMjE0LCAyMjUsIDE3MSwgMjQwLCAxMDAsIDQ3LCAyNywgMTYsIAotICAgIDIzNSwgMTY3LCAyMTcsIDIwNCwgMjQwLCAxMDEsIDQ3LCAyNywgMTYsIDI1MywgMjI5LCAyMTcsIDIwNCwgMjQwLCAxMDEsIAotICAgIDQ3LCAyNywgMTYsIDI0NCwgMTQwLCAyMTcsIDE3OCwgNDcsIDI3LCAxNiwgMjQ0LCAxNDAsIDIzMCwgMjEzLCA0NywgMjcsIAotICAgIDE2LCAyNDQsIDE0MCwgMjQ3LCAxODIsIDQ3LCAyNywgMTYsIDIzMSwgMjE0LCAyMTQsIDI0MiwgMjQwLCAxMDAsIDQ3LCAyNywgCi0gICAgMTYsIDIzMSwgMjE0LCAyMjUsIDQ5LCAyNDAsIDEwMCwgNDcsIDI3LCAxNiwgMjMxLCAyMTQsIDIyNSwgMTcxLCAyMTcsIAotICAgIDE4MSwgMjQwLCAxMDAsIDQ3LCAyNywgMTYsIDI0MiwgMTMxLCAyMzAsIDk4LCAyNTMsIDIzMiwgNDcsIDI3LCAxNiwgMjQyLCAKLSAgICAxMzEsIDIzMCwgOTgsIDI0NywgMTUyLCA0NywgMjcsIDE2LCAyNDUsIDEwNiwgMjM0LCAyNTEsIDI0MywgMjA3LCAyMTQsIAotICAgIDEwNSwgNDcsIDI3LCAxNiwgMjM2LCA4LCA0NywgMjcsIDE2LCAyMzYsIDYsIDQ3LCAyNywgMTYsIDI0MywgMjA3LCAyNTMsIAotICAgIDE5MiwgMjQ3LCAyMzQsIDI0MCwgOTksIDQ3LCAyNywgMTYsIDI0MywgMjA3LCAyNDcsIDE5NiwgMTkzLCA0NywgMjcsIDE2LCAKLSAgICAyNDMsIDIwNywgMjQ3LCAxOTYsIDIzMCwgMjMsIDQ3LCAyNywgMTYsIDI0MywgMjA3LCAyMzAsIDE4LCAyNDAsIDEwMCwgNDcsIAotICAgIDI3LCAxNiwgMjQzLCAyMDcsIDI0NywgMTk2LCAyNDcsIDIxMSwgNDcsIDI3LCAxNiwgMjQzLCAyMDcsIDIyMCwgMzAsIDI0NywgCi0gICAgMTk1LCAyNDcsIDIxMSwgNDcsIDI3LCAxNiwgMjQzLCAyMDcsIDI0NywgMTk2LCAyMzQsIDE4OCwgNDcsIDI3LCAxNiwgMjQzLCAKLSAgICAyMDcsIDI0NywgMTk2LCAyMTIsIDE2LCA0NywgMjcsIDE2LCAyNDMsIDIwNywgMjQ3LCAxOTYsIDIyOSwgNjUsIDIzNCwgCi0gICAgMjAxLCA0NywgMjcsIDE2LCAyNDMsIDIwNywgMjQ3LCAxOTYsIDIyOSwgNjUsIDI1NCwgNywgNDcsIDI3LCAxNiwgMjQzLCAKLSAgICAyMDcsIDIzMSwgMjU0LCAyNTAsIDEwLCAyNDcsIDE4MiwgNDcsIDI3LCAxNiwgMjQzLCAyMDcsIDIzMSwgMjU0LCAyNTAsIAotICAgIDEwLCAyMzAsIDIxMywgNDcsIDI3LCAxNiwgMjQ0LCA5MSwgMjIwLCAzMCwgMjUwLCAxMCwgMjE0LCAyNDEsIDQ3LCAyNywgCi0gICAgMTYsIDI0MywgMjA3LCAyMjAsIDMwLCAyNTAsIDEwLCAyMTgsIDEyNSwgNDcsIDI3LCAxNiwgMjQzLCAyMDcsIDIyOSwgMTc5LCAKLSAgICA0NywgMjcsIDE2LCAyNTAsIDExLCAyMTEsIDI0OCwgNDcsIDI3LCAxNiwgMjUwLCAxMSwgMjM0LCA0NSwgNDcsIDI3LCAxNiwgCi0gICAgMjUwLCAxMSwgMjE5LCAxOTcsIDQ3LCAyNywgMTYsIDI0MywgMjA3LCAyNDAsIDE0NiwgMjEzLCAxLCAyMTcsIDE4MiwgNDcsIAotICAgIDI3LCAxNiwgMjQzLCAyMDcsIDI0NSwgMTA3LCAyNTMsIDI1MywgNDcsIDI3LCAxNiwgMjEzLCAxLCAyMTYsIDE2NCwgNDcsIAotICAgIDI3LCAxNiwgMjQ3LCAxOTAsIDIxNiwgMTY0LCA0NywgMjcsIDE2LCAyNDcsIDE5MCwgMjE3LCAxODIsIDQ3LCAyNywgMTYsIAotICAgIDI0NywgMTkwLCAyNTMsIDIzNCwgMjQ1LCAyNTMsIDI0NywgOTMsIDQ3LCAyNywgMTYsIDI0NywgMTkwLCAyMzAsIDIxMSwgCi0gICAgMjE3LCAxODYsIDI0NywgOTMsIDQ3LCAyNywgMTYsIDI0NywgMTkwLCAyNDcsIDE3NCwgMjQ1LCAzLCAyNDcsIDkzLCA0NywgCi0gICAgMjcsIDE2LCAyNDcsIDE5MCwgMjE2LCAxNzIsIDIyNywgNzcsIDI0NywgOTMsIDQ3LCAyNywgMTYsIDIxMywgMSwgMjUzLCAKLSAgICAyMzQsIDI0NSwgMjUzLCAyNDcsIDkzLCA0NywgMjcsIDE2LCAyMTMsIDEsIDIzMCwgMjExLCAyMTcsIDE4NiwgMjQ3LCA5MywgCi0gICAgNDcsIDI3LCAxNiwgMjEzLCAxLCAyNDcsIDE3NCwgMjQ1LCAzLCAyNDcsIDkzLCA0NywgMjcsIDE2LCAyMTMsIDEsIDIxNiwgCi0gICAgMTcyLCAyMjcsIDc3LCAyNDcsIDkzLCA0NywgMjcsIDE2LCAyNDMsIDI1LCAyNDcsIDE4OSwgNDcsIDI3LCAxNiwgMjQzLCAKLSAgICAyNSwgMjEzLCAwLCA0NywgMjcsIDE2LCAyNDcsIDE5NywgMjUzLCAyMzQsIDIzMSwgMTIsIDQ3LCAyNywgMTYsIDI0NywgCi0gICAgMTk3LCAyNTMsIDIzNCwgMjMxLCAxMzcsIDQ3LCAyNywgMTYsIDI0NywgMTk3LCAyNDcsIDE1MywgNDcsIDI3LCAxNiwgMjQ3LCAKLSAgICAxOTcsIDIxNywgMTM1LCA0NywgMjcsIDE2LCAyMjAsIDg5LCAyMTcsIDEzNSwgNDcsIDI3LCAxNiwgMjIwLCA4OSwgMjE3LCAKLSAgICAxMzYsIDI0NywgMTM4LCA0NywgMjcsIDE2LCAyMjAsIDg5LCAyMTcsIDEzNiwgMjE2LCAxNjUsIDQ3LCAyNywgMTYsIDIyMCwgCi0gICAgODksIDIxNywgMTM2LCAyMTcsIDE3NSwgNDcsIDI3LCAxNiwgMjIwLCA4OSwgMjUzLCAxNTksIDQ3LCAyNywgMTYsIDIyMCwgCi0gICAgODksIDI1MywgMTYwLCAyNDcsIDEzOCwgNDcsIDI3LCAxNiwgMjIwLCA4OSwgMjUzLCAxNjAsIDIxNiwgMTY1LCA0NywgMjcsIAotICAgIDE2LCAyMjAsIDg5LCAyNTMsIDE2MCwgMjE3LCAxNzUsIDQ3LCAyNywgMTYsIDI0NywgMTc1LCAyNDMsIDYsIDQ3LCAyNywgCi0gICAgMTYsIDI0NywgMTgxLCAyMjcsIDIsIDQ3LCAyNywgMTYsIDIxOSwgNzcsIDQ3LCAyNywgMTYsIDI1MywgMTc4LCAxOTMsIDQ3LCAKLSAgICAyNywgMTYsIDI1MywgMTc4LCAyMTQsIDEwNSwgNDcsIDI3LCAxNiwgMjUzLCAxNzgsIDI0MywgMTEwLCA0NywgMjcsIDE2LCAKLSAgICAyNTMsIDE3OCwgMjQ3LCAyMTEsIDQ3LCAyNywgMTYsIDI1MywgMTc4LCAyMzQsIDE4OCwgNDcsIDI3LCAxNiwgMjUzLCAxNzgsIAotICAgIDIxMiwgMTYsIDQ3LCAyNywgMTYsIDI1MywgMTc4LCAyMjksIDY0LCA0NywgMjcsIDE2LCAyMzQsIDE2OCwgMjI5LCAxNzgsIAotICAgIDIzMSwgMTA5LCA0NywgMjcsIDE2LCAyMzQsIDE2OSwgMjI5LCAxNzgsIDIzMSwgMTA5LCA0NywgMjcsIDE2LCAyMzQsIDE2OCwgCi0gICAgMjI5LCAxNzgsIDIzNCwgMjAxLCA0NywgMjcsIDE2LCAyMzQsIDE2OSwgMjI5LCAxNzgsIDIzNCwgMjAxLCA0NywgMjcsIDE2LCAKLSAgICAyMzQsIDQ3LCAyMzQsIDIwMSwgNDcsIDI3LCAxNiwgMjQyLCAxMzUsIDIyOSwgMTc4LCAyMzQsIDIwMSwgMjcsIDE2LCAyMjAsIAotICAgIDgxLCAyNTIsIDU1LCAyNywgMTYsIDUxLCAyNTIsIDU1LCAyNywgMTYsIDQwLCAyNTIsIDU1LCAyNywgMTYsIDIyMywgMjAzLCAKLSAgICA0MCwgMjUyLCA1NSwgMjcsIDE2LCAyNDgsIDEwMCwgMjUyLCA1NSwgMjcsIDE2LCAyMjAsIDE3NSwgMjUyLCA1NSwgMjcsIAotICAgIDE2LCA0MiwgMjIzLCAyMjgsIDUyLCAyNywgMTYsIDQ2LCAyMjMsIDIyOCwgNTIsIDI3LCAxNiwgMjIzLCAyMjgsIDI0NywgCi0gICAgNzIsIDI3LCAxNiwgMjQ4LCAxNDEsIDIyMiwgODIsIDI3LCAxNiwgMjQ4LCAxNjUsIDI1MCwgMTgxLCAyNywgMTYsIDIyMiwgCi0gICAgODIsIDI3LCAxNiwgMjQ5LCAxNzEsIDI3LCAxNiwgMjIzLCAyMjYsIDI0NCwgODAsIDI3LCAxNiwgMjIzLCAyMjYsIDI0NCwgCi0gICAgNzksIDI3LCAxNiwgMjIzLCAyMjYsIDI0NCwgNzgsIDI3LCAxNiwgMjQ0LCAxMDAsIDI3LCAxNiwgMjQ0LCAxMDEsIDU1LCAKLSAgICAyNywgMTYsIDI1MSwgNzYsIDc3LCAyNywgMTYsIDI1MCwgMjEwLCAyNywgMTYsIDI1MSwgODYsIDI3LCAxNiwgMTI1LCAyNywgCi0gICAgMTYsIDIyNywgNTksIDIxOSwgMTAyLCAyNywgMTYsIDIxNiwgMjMsIDIxOSwgMTAyLCAyNywgMTYsIDIxNywgOTYsIDIxOSwgCi0gICAgMTAyLCAyNywgMTYsIDI0MywgMjM2LCAyMTksIDEwMiwgMjcsIDE2LCAyNDQsIDQ5LCAyMTksIDEwMiwgMjcsIDE2LCAyMjAsIAotICAgIDUyLCAyMTksIDEwMiwgMjcsIDE2LCAyMjAsIDUwLCAyNDMsIDIyMCwgMjcsIDE2LCAyNDMsIDIzNCwgMjQzLCAyMjAsIDI3LCAKLSAgICAxNiwgMjQzLCAxNzgsIDI0OSwgMjA3LCAyNywgMTYsIDI0MywgMTc4LCAyNDksIDIwOCwgMjI3LCA0LCAyNTQsIDUxLCAyNywgCi0gICAgMTYsIDI0MywgMTc4LCAyNDksIDIwOCwgMjI3LCA0LCAyNTIsIDQyLCAyNywgMTYsIDI1MCwgMjUzLCAyNDksIDIwNywgMjcsIAotICAgIDE2LCAyNDQsIDIzMSwgMjQ5LCAyMDcsIDI3LCAxNiwgMjQ0LCAyMzEsIDI0OSwgMjA4LCAyMjcsIDQsIDI1NCwgNTEsIDI3LCAKLSAgICAxNiwgMjQ0LCAyMzEsIDI0OSwgMjA4LCAyMjcsIDQsIDI1MiwgNDIsIDI3LCAxNiwgMjQ2LCAzOCwgMjQ5LCAyMDYsIDI3LCAKLSAgICAxNiwgMjQ2LCAzOCwgMjQ5LCAyMDUsIDI3LCAxNiwgMjMwLCAxNTUsIDIzMSwgMTU1LCAyMjMsIDIxMywgMjcsIDE2LCA1MSwgCi0gICAgMjIwLCAyNTQsIDI3LCAxNiwgNTEsIDI0NCwgMzQsIDI3LCAxNiwgMjQ0LCAzNSwgMjE1LCAxMzQsIDI3LCAxNiwgMjQ0LCAKLSAgICAzNSwgMjQ2LCA2MCwgMjcsIDE2LCAyMzAsIDksIDIxNSwgMTM0LCAyNywgMTYsIDIzMCwgOSwgMjQ2LCA2MCwgMjcsIDE2LCAKLSAgICAyMjAsIDI1NSwgMjE1LCAxMzQsIDI3LCAxNiwgMjIwLCAyNTUsIDI0NiwgNjAsIDI3LCAxNiwgMjI0LCAxNjcsIDE2MCwgCi0gICAgMjIwLCAyNTQsIDI3LCAxNiwgMjI0LCAxNjcsIDE2MCwgMjQ0LCAzNCwgMjcsIDE2LCAyNDksIDE1NSwgMjE3LCA0MCwgMjcsIAotICAgIDE2LCAyNDksIDI3LCAyMTcsIDQwLCAyNywgMTYsIDIyNywgNCwgMjU0LCA1MSwgMjcsIDE2LCAyMjcsIDQsIDI1MiwgNDIsIAotICAgIDI3LCAxNiwgMjI0LCAxNDksIDI1NCwgNTEsIDI3LCAxNiwgMjI0LCAxNDksIDI1MiwgNDIsIDI3LCAxNiwgMjMwLCAxNTgsIAotICAgIDIyMywgMjEzLCAyNywgMTYsIDIxMywgMjM2LCAyMjMsIDIxMywgMjcsIDE2LCAxNTEsIDIyMywgMjEzLCAyNywgMTYsIDIyNCwgCi0gICAgMTY3LCAyMjMsIDIxMywgMjcsIDE2LCAyNDUsIDE0NiwgMjIzLCAyMTMsIDI3LCAxNiwgMjIwLCA0NiwgMjIzLCAyMTMsIDI3LCAKLSAgICAxNiwgMjE3LCAxMTMsIDIyMywgMjEzLCAyNywgMTYsIDIyMCwgMzgsIDIyMywgMjEzLCAyNywgMTYsIDEyMiwgMjQwLCAyMDEsIAotICAgIDIxNiwgMzYsIDIyMywgMjEzLCAyNywgMTYsIDIxMywgMTY3LCAyMjgsIDE1NCwgMjcsIDE2LCA5NCwgMjI4LCAxNTQsIDI3LCAKLSAgICAxNiwgMjQ5LCAyMjksIDIxMywgMTY3LCAyMjgsIDE1NCwgMjcsIDE2LCA0MSwgMjI4LCAxNTUsIDIxMywgMjM4LCAyNywgMTYsIAotICAgIDQxLCAyMjgsIDE1NSwgMjUxLCAxNDQsIDI3LCAxNiwgMjE2LCAxODQsIDIyOCwgMTU1LCAxMTQsIDIxMywgMjM4LCAyNywgCi0gICAgMTYsIDIxNiwgMTg0LCAyMjgsIDE1NSwgMTE0LCAyNTEsIDE0NCwgMjcsIDE2LCAyMTYsIDE4NCwgMjI4LCAxNTUsIDQyLCAKLSAgICAyMTMsIDIzOCwgMjcsIDE2LCAyMTYsIDE4NCwgMjI4LCAxNTUsIDQyLCAyNTEsIDE0NCwgMjcsIDE2LCAyMTYsIDE4NCwgCi0gICAgMjI4LCAxNTUsIDQ2LCAyMTMsIDIzOCwgMjcsIDE2LCAyMTYsIDE4NCwgMjI4LCAxNTUsIDQ2LCAyNTEsIDE0NCwgMjcsIDE2LCAKLSAgICAyMTYsIDE4NCwgMjI4LCAxNTUsIDExOSwgMjEzLCAyMzgsIDI3LCAxNiwgMjE2LCAxODQsIDIyOCwgMTU1LCAxMTksIDI1MSwgCi0gICAgMTQ0LCAyNywgMTYsIDIxNiwgMTg0LCAyMjgsIDE1NSwgMTE0LCA0NiwgMjEzLCAyMzgsIDI3LCAxNiwgMjE2LCAxODQsIAotICAgIDIyOCwgMTU1LCAxMTQsIDQ2LCAyNTEsIDE0NCwgMjcsIDE2LCAyMzAsIDE5OSwgMjI4LCAxNTUsIDIxMywgMjM4LCAyNywgCi0gICAgMTYsIDIzMCwgMTk5LCAyMjgsIDE1NSwgMjUxLCAxNDQsIDI3LCAxNiwgMjE2LCAxODEsIDIyOCwgMTU1LCAxMTksIDIxMywgCi0gICAgMjM4LCAyNywgMTYsIDIxNiwgMTgxLCAyMjgsIDE1NSwgMTE5LCAyNTEsIDE0NCwgMjcsIDE2LCAyMjYsIDEzMiwgMjI4LCAKLSAgICAxNTQsIDI3LCAxNiwgMjE0LCAxMTMsIDIyOCwgMTU0LCAyNywgMTYsIDIyOCwgMTU1LCAyNTEsIDE0NCwgMjcsIDE2LCAyMjgsIAotICAgIDU5LCAyMjgsIDE1NCwgMjcsIDE2LCAyNDksIDE3OCwgMjI4LCAxNTUsIDIxMywgMjM4LCAyNywgMTYsIDI0OSwgMTc4LCAKLSAgICAyMjgsIDE1NSwgMjUxLCAxNDQsIDI3LCAxNiwgMjUxLCA3NCwgMjcsIDE2LCAyMTMsIDIzNiwgMjI4LCAxNTgsIDI3LCAxNiwgCi0gICAgMTUxLCAyMjgsIDE1OCwgMjcsIDE2LCAyMjQsIDE2NywgMjI4LCAxNTgsIDI3LCAxNiwgMjQ1LCAxNDYsIDIyOCwgMTU4LCAKLSAgICAyNywgMTYsIDIyMCwgNDYsIDIyOCwgMTU4LCAyNywgMTYsIDIxNywgMTEzLCAyMjgsIDE1OCwgMjcsIDE2LCAyMjAsIDM4LCAKLSAgICAyMjgsIDE1OCwgMjcsIDE2LCAxMjIsIDI0MCwgMjAxLCAyMTYsIDM2LCAyMjgsIDE1OCwgMjcsIDE2LCAzNywgMjE5LCA3OSwgCi0gICAgMjcsIDE2LCAzNywgMjE5LCAxNzIsIDIxOSwgNzksIDI3LCAxNiwgMzcsIDIxNiwgMTkyLCAyNywgMTYsIDM3LCAyMTYsIAotICAgIDE5MSwgMjcsIDE2LCAzNywgMjE2LCAxOTAsIDI3LCAxNiwgMjQ0LCA3MCwgMjE2LCAxOTIsIDI3LCAxNiwgMjQ0LCA3MCwgCi0gICAgMjE2LCAxOTEsIDI3LCAxNiwgMjQ0LCA3MCwgMjE2LCAxOTAsIDI3LCAxNiwgMzcsIDI1MywgMTA1LCAyNDcsIDc0LCAyNywgCi0gICAgMTYsIDM3LCAyNDQsIDQxLCAyNywgMTYsIDM3LCAyNDQsIDQwLCAyNywgMTYsIDM3LCAyNDQsIDM5LCAyNywgMTYsIDM3LCAKLSAgICAyNDQsIDM4LCAyNywgMTYsIDM3LCAyNDQsIDM3LCAyNywgMTYsIDI1MSwgMjM0LCAyNTEsIDI1MCwgMjcsIDE2LCAyNDUsIAotICAgIDEwMSwgMjUxLCAyNTAsIDI3LCAxNiwgMjUxLCAyMzQsIDIxNywgNjUsIDI3LCAxNiwgMjQ1LCAxMDEsIDIxNywgNjUsIDI3LCAKLSAgICAxNiwgMjUxLCAyMzQsIDIyMCwgOCwgMjcsIDE2LCAyNDUsIDEwMSwgMjIwLCA4LCAyNywgMTYsIDI1MSwgMjM0LCAyMjUsIAotICAgIDI0NywgMjcsIDE2LCAyNDUsIDEwMSwgMjI1LCAyNDcsIDI3LCAxNiwgMzcsIDI1NCwgMTc0LCAyNywgMTYsIDM3LCAyMTksIAotICAgIDEwNCwgMjcsIDE2LCAzNywgMjE3LCAxOTEsIDI3LCAxNiwgMzcsIDIxOSwgMTA1LCAyNywgMTYsIDM3LCAyMzEsIDIyNSwgCi0gICAgMjcsIDE2LCAzNywgMjMxLCAyMjQsIDI3LCAxNiwgMzcsIDI1NCwgMTczLCAyNywgMTYsIDM3LCAyMzIsIDE2NywgMjcsIDE2LCAKLSAgICAyNTMsIDE2OSwgMjE1LCAxMzQsIDI3LCAxNiwgMjUzLCAxNjksIDI0NiwgNjAsIDI3LCAxNiwgMzcsIDI0NywgODksIDI3LCAKLSAgICAxNiwgMzcsIDIyMywgMTI4LCAyNywgMTYsIDM3LCAyNDQsIDI3LCAyNywgMTYsIDM3LCAyMjAsIDQsIDI3LCAxNiwgMzcsIAotICAgIDI1MSwgMjE1LCAyNywgMTYsIDM3LCA1MSwgMjE2LCAyMzIsIDI3LCAxNiwgMzcsIDIxNiwgMTY5LCAyMTYsIDIzMiwgMjcsIAotICAgIDE2LCAyMjMsIDEzMiwgMjcsIDE2LCAyMTksIDIwLCAyNywgMTYsIDIxMiwgMTUyLCAyNywgMTYsIDIyNSwgMjM5LCAyNywgCi0gICAgMTYsIDIzMSwgOTIsIDI3LCAxNiwgMjQzLCAyNDIsIDI3LCAxNiwgMjQ5LCA3OCwgMjcsIDE2LCAyNDgsIDI5LCAyNywgMTYsIAotICAgIDI0MiwgMTI2LCAyMjgsIDE1OSwgMjIwLCAyMywgMjcsIDE2LCAyNDIsIDEyNiwgMjI4LCAxNTksIDIyOCwgMTg2LCAyMjAsIAotICAgIDIzLCAyNywgMTYsIDIxNiwgMjEzLCAyNywgMTYsIDIxNiwgNTksIDI3LCAxNiwgMjM1LCAxOTEsIDIxNiwgNTksIDI3LCAxNiwgCi0gICAgMjE2LCA2MCwgMjIwLCAyMywgMjcsIDE2LCAyMTYsIDYwLCAyMTUsIDEzNCwgMjcsIDE2LCAyMjcsIDE1LCAyMTksIDQ0LCAKLSAgICAyNywgMTYsIDIyNywgMTUsIDIxOSwgNDEsIDI3LCAxNiwgMjI3LCAxNSwgMjE5LCA0MCwgMjcsIDE2LCAyMjcsIDE1LCAyMTksIAotICAgIDM5LCAyNywgMTYsIDIyNywgMTUsIDIxOSwgMzgsIDI3LCAxNiwgMjI3LCAxNSwgMjE5LCAzNywgMjcsIDE2LCAyMjcsIDE1LCAKLSAgICAyMTksIDM2LCAyNywgMTYsIDIyNywgMTUsIDIxOSwgMzUsIDI3LCAxNiwgMjI3LCAxNSwgMjE5LCAzNCwgMjcsIDE2LCAyMjcsIAotICAgIDE1LCAyMTksIDQzLCAyNywgMTYsIDIyNywgMTUsIDIxOSwgNDIsIDI3LCAxNiwgMjQxLCAyMjksIDI3LCAxNiwgMjI5LCAKLSAgICAxODYsIDI3LCAxNiwgMjQ1LCAxMDEsIDY1LCAyMTksIDczLCAyNywgMTYsIDI0OCwgMjIsIDIyMCwgMjMsIDI3LCAxNiwgMzcsIAotICAgIDExOSwgMjUxLCA5NSwgMjcsIDE2LCAzNywgMTE0LCAyNTEsIDk1LCAyNywgMTYsIDM3LCAyNDEsIDIzOSwgMjcsIDE2LCAzNywgCi0gICAgMjE5LCAyNTEsIDIyNSwgMTc1LCAyNywgMTYsIDIyNiwgOTEsIDc3LCAyNywgMTYsIDIyNiwgOTEsIDExNCwgNzcsIDI3LCAKLSAgICAxNiwgMTUxLCAyMjYsIDkxLCA3NywgMjcsIDE2LCAyNDIsIDE1OCwgMjE1LCAxMzQsIDI3LCAxNiwgMjQyLCAxNTgsIDI0NiwgCi0gICAgNjAsIDI3LCAxNiwgMiwgMjQ0LCA2OSwgMjcsIDE2LCAyNDgsIDEyNSwgMjcsIDE2LCAyNDgsIDEyNiwgMjU0LCA2MywgMjcsIAotICAgIDE2LCAyMzEsIDE5NywgMjcsIDE2LCAyMzIsIDE4MiwgMjcsIDE2LCAyNTEsIDcxLCAyNywgMTYsIDIyMSwgNzQsIDIxMywgCi0gICAgMjM4LCAyNywgMTYsIDIyMSwgNzQsIDI1MSwgMTQ0LCAyNywgMTYsIDIzMCwgMjUzLCAyNywgMTYsIDIzMCwgMjU0LCAyNTEsIAotICAgIDE0NCwgMjcsIDE2LCAyMjEsIDY4LCAyMTMsIDIzOCwgMjcsIDE2LCAyMjEsIDY4LCAyNTEsIDE0NCwgMjcsIDE2LCAyNDMsIAotICAgIDE5MiwgMjEzLCAyMzgsIDI3LCAxNiwgMjQzLCAxOTIsIDI1MSwgMTQ0LCAyNywgMTYsIDIzMiwgMTgzLCAyMjYsIDU1LCAKLSAgICAyMjMsIDIxMywgMjcsIDE2LCAyMzIsIDE4MywgMjM2LCAwLCAyMjMsIDIxMywgMjcsIDE2LCAyNTEsIDcyLCAyMjMsIDIxMywgCi0gICAgMjcsIDE2LCAyMjEsIDc0LCAyMjMsIDIxMywgMjcsIDE2LCAyMzAsIDI1NCwgMjIzLCAyMTMsIDI3LCAxNiwgMjIxLCA2OCwgCi0gICAgMjIzLCAyMTMsIDI3LCAxNiwgMjE3LCAyMDIsIDIyNiwgNTMsIDI0OSwgNDgsIDIyNSwgNTgsIDIyNiwgNTQsIDI3LCAxNiwgCi0gICAgMjE3LCAyMDIsIDIyNiwgNTMsIDI0OSwgNDgsIDIyNSwgNTgsIDIzNSwgMjU1LCAyNywgMTYsIDIxNywgMjAyLCAyMjYsIDUzLCAKLSAgICAyNDksIDQ4LCAyMjUsIDU4LCAyMjYsIDU1LCAyNDcsIDE2MywgMjcsIDE2LCAyMTcsIDIwMiwgMjM1LCAyNTQsIDI0OSwgNDgsIAotICAgIDIyNSwgNTgsIDIyNiwgNTQsIDI3LCAxNiwgMjE3LCAyMDIsIDIzNSwgMjU0LCAyNDksIDQ4LCAyMjUsIDU4LCAyMzUsIDI1NSwgCi0gICAgMjcsIDE2LCAyMTcsIDIwMiwgMjM1LCAyNTQsIDI0OSwgNDgsIDIyNSwgNTgsIDIzNiwgMCwgMjQ3LCAxNjMsIDI3LCAxNiwgCi0gICAgMjE3LCAyMDIsIDIzNSwgMjU0LCAyNDksIDQ4LCAyMjUsIDU4LCAyMzYsIDAsIDI0NywgMTYyLCAyNywgMTYsIDIxNywgMjAyLCAKLSAgICAyMzUsIDI1NCwgMjQ5LCA0OCwgMjI1LCA1OCwgMjM2LCAwLCAyNDcsIDE2MSwgMjcsIDE2LCAyNDksIDczLCAyNywgMTYsIAotICAgIDI0MiwgMTAzLCAyNTAsIDI1MywgMjQ5LCAyMDcsIDI3LCAxNiwgMjQyLCAxMDMsIDI0NCwgMjMxLCAyNDksIDIwNywgMjcsIAotICAgIDE2LCA0MSwgMjUzLCA3NCwgMjcsIDE2LCAyMTQsIDEzMiwgMjcsIDE2LCAyMjUsIDE0OCwgMjcsIDE2LCAyNDksIDE5OCwgCi0gICAgMjcsIDE2LCAyMjIsIDEyMSwgMjcsIDE2LCAyNDksIDIwMiwgMjcsIDE2LCAyMTYsIDIyMCwgMjcsIDE2LCAyMjUsIDEyMiwgCi0gICAgMjcsIDE2LCAyMjUsIDEyMywgMjQ0LCAyOSwgMjcsIDE2LCAyMjIsIDEyMiwgMjQ0LCAyOSwgMjcsIDE2LCAyMTYsIDIyMSwgCi0gICAgMjIzLCAyMTAsIDI3LCAxNiwgMjI2LCAzOSwgMjE5LCAxMSwgMjUsIDIxNCwgMTE4LCAxNzQsIDIxOCwgMTc0LCAyNSwgMjE0LCAKLSAgICAxMTgsIDE3NCwgMjE4LCAxNjMsIDI1LCAyMTQsIDExOCwgMTc0LCAyMTgsIDE1MywgMjUsIDIxNCwgMTE4LCAxNzQsIDIxOCwgCi0gICAgMTQ2LCAyNSwgMjE0LCAxMTgsIDE3NCwgMjE4LCAxMzgsIDI1LCAyMTQsIDExOCwgMTc0LCAyMTgsIDEzMiwgMjUsIDIxNCwgCi0gICAgMTE4LCAxNzQsIDIxOCwgMTMxLCAyNSwgMjE0LCAxMTgsIDE3NCwgMjE4LCAxMzAsIDI1LCAyMTQsIDExOCwgMTc0LCAyMTgsIAotICAgIDEyOSwgMjUsIDIxNCwgMTE4LCAxNzQsIDIxOCwgMTczLCAyNSwgMjE0LCAxMTgsIDE3NCwgMjE4LCAxNzIsIDI1LCAyMTQsIAotICAgIDExOCwgMTc0LCAyMTgsIDE3MSwgMjUsIDIxNCwgMTE4LCAxNzQsIDIxOCwgMTcwLCAyNSwgMjE0LCAxMTgsIDE3NCwgMjE4LCAKLSAgICAxNjksIDI1LCAyMTQsIDExOCwgMTc0LCAyMTgsIDE2OCwgMjUsIDIxNCwgMTE4LCAxNzQsIDIxOCwgMTY3LCAyNSwgMjE0LCAKLSAgICAxMTgsIDE3NCwgMjE4LCAxNjYsIDI1LCAyMTQsIDExOCwgMTc0LCAyMTgsIDE2NSwgMjUsIDIxNCwgMTE4LCAxNzQsIDIxOCwgCi0gICAgMTY0LCAyNSwgMjE0LCAxMTgsIDE3NCwgMjE4LCAxNjIsIDI1LCAyMTQsIDExOCwgMTc0LCAyMTgsIDE2MSwgMjUsIDIxNCwgCi0gICAgMTE4LCAxNzQsIDIxOCwgMTYwLCAyNSwgMjE0LCAxMTgsIDE3NCwgMjE4LCAxNTksIDI1LCAyMTQsIDExOCwgMTc0LCAyMTgsIAotICAgIDE1OCwgMjUsIDIxNCwgMTE4LCAxNzQsIDIxOCwgMTM3LCAyNSwgMjE0LCAxMTgsIDE3NCwgMjE4LCAxMzYsIDI1LCAyMTQsIAotICAgIDExOCwgMTc0LCAyMTgsIDEzNSwgMjUsIDIxNCwgMTE4LCAxNzQsIDIxOCwgMTM0LCAyNSwgMjE0LCAxMTgsIDE3NCwgMjE4LCAKLSAgICAxMzMsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIDE3NCwgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgMTYzLCAyNSwgMjM1LCAKLSAgICAyMTEsIDE3NCwgMjE4LCAxNDYsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIDEzOCwgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgCi0gICAgMTMxLCAyNSwgMjM1LCAyMTEsIDE3NCwgMjE4LCAxMzAsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIDE3MiwgMjUsIDIzNSwgCi0gICAgMjExLCAxNzQsIDIxOCwgMTcxLCAyNSwgMjM1LCAyMTEsIDE3NCwgMjE4LCAxNzAsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIAotICAgIDE2OSwgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgMTY2LCAyNSwgMjM1LCAyMTEsIDE3NCwgMjE4LCAxNjUsIDI1LCAyMzUsIAotICAgIDIxMSwgMTc0LCAyMTgsIDE2NCwgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgMTU5LCAyNSwgMjM1LCAyMTEsIDE3NCwgMjE4LCAKLSAgICAxNTgsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIDE1NywgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgMTU2LCAyNSwgMjM1LCAKLSAgICAyMTEsIDE3NCwgMjE4LCAxNTUsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIDE1NCwgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgCi0gICAgMTUyLCAyNSwgMjM1LCAyMTEsIDE3NCwgMjE4LCAxNTEsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIDE1MCwgMjUsIDIzNSwgCi0gICAgMjExLCAxNzQsIDIxOCwgMTQ5LCAyNSwgMjM1LCAyMTEsIDE3NCwgMjE4LCAxNDgsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIAotICAgIDE0NywgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgMTQ1LCAyNSwgMjM1LCAyMTEsIDE3NCwgMjE4LCAxNDQsIDI1LCAyMzUsIAotICAgIDIxMSwgMTc0LCAyMTgsIDE0MywgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgMTQyLCAyNSwgMjM1LCAyMTEsIDE3NCwgMjE4LCAKLSAgICAxNDEsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIDE0MCwgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgMTM5LCAyNSwgMjM1LCAKLSAgICAyMTEsIDE3NCwgMjE4LCAxMzcsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIDEzNiwgMjUsIDIzNSwgMjExLCAxNzQsIDIxOCwgCi0gICAgMTM1LCAyNSwgMjM1LCAyMTEsIDE3NCwgMjE4LCAxMzQsIDI1LCAyMzUsIDIxMSwgMTc0LCAyMTgsIDEzMywgMzcsIDI1LCAKLSAgICAyNywgMjE2LCAxNjYsIDM3LCAyNSwgMjcsIDIxNywgMTc2LCAzNywgMjUsIDI3LCAyMjYsIDYzLCAyNSwgMjcsIDIzMywgNTUsIAotICAgIDIzMCwgMjEyLCAzMSwgMjQ1LCAxNzksIDI0NywgMTc2LCAzMSwgMjQxLCAyMDYsIDI0NSwgMTc5LCAyNDcsIDE3NiwgMzEsIAotICAgIDI0MCwgMjA0LCAyNDUsIDE3OSwgMjQ3LCAxNzYsIDMxLCAyNDUsIDE3OCwgMjQxLCAyMDcsIDI0NywgMTc2LCAzMSwgMjQ1LCAKLSAgICAxNzgsIDI0MCwgMjAzLCAyNDcsIDE3NiwgMzEsIDI0NSwgMTc5LCAxNzAsIDMxLCAyNTAsIDEwOCwgMTcwLCAzMSwgMjQzLCAKLSAgICAyMDAsIDI0OSwgMjI4LCAxNzAsIDMxLCAyMzAsIDI0NiwgMTcwLCAzMSwgMjUyLCA1MCwgMTcwLCAzMSwgMjM0LCAxODUsIAotICAgIDIyMCwgNywgMTcwLCAzMSwgMjQ5LCAxMTgsIDE3MCwgMzEsIDI1MywgMTQ4LCAxNzAsIDMxLCAyMjcsIDI5LCAxNzAsIDMxLCAKLSAgICAyNTEsIDgwLCAyMjYsIDI1NCwgMTcwLCAzMSwgMjQ4LCAyNCwgMTY3LCAyNDcsIDEzMSwgMTcwLCAzMSwgMjQ3LCAxMjgsIAotICAgIDE3MCwgMzEsIDIxMiwgMjEzLCAxNzAsIDMxLCAyMzUsIDI0MywgMTcwLCAzMSwgMjI2LCA3MiwgMTcwLCAzMSwgMjI0LCAyMCwgCi0gICAgMTcwLCAzMSwgMjQ5LCAxMjgsIDE3MCwgMzEsIDI0MSwgNDYsIDI1MiwgMTAxLCAxNzAsIDMxLCAyMTQsIDQzLCAxNzAsIDMxLCAKLSAgICAyNDQsIDgsIDE3MCwgMzEsIDI1NCwgMTUxLCAxNzAsIDMxLCAyMjMsIDIzOSwgMTcwLCAzMSwgMjIzLCAyMTcsIDE3MCwgMzEsIAotICAgIDI0NSwgMTc3LCAxNzAsIDMxLCAyMzUsIDU2LCAxNzAsIDMxLCAyNDksIDEyMywgMTcwLCAzMSwgMjQ1LCAxMDAsIDE3MCwgCi0gICAgMzEsIDI0NiwgNywgMTcwLCAzMSwgMjUwLCA4MSwgMTcwLCAzMSwgMjQ4LCAzMywgMTcwLCAzMSwgMjIsIDIyMywgMjE2LCAKLSAgICAxNzAsIDMxLCAyMjYsIDIwNSwgMTcwLCAzMSwgMjMzLCA1OCwgMTcwLCAzMSwgMjQ5LCAxOTEsIDE3MCwgMzEsIDIzNCwgODYsIAotICAgIDE3MCwgMzEsIDI0MywgNjIsIDE3MCwgMzEsIDIxOSwgNTIsIDE3MCwgMzEsIDIyNSwgMTYsIDE3MCwgMzEsIDI0MywgMTk5LCAKLSAgICAxNzAsIDMxLCAyMjMsIDIxOCwgMTcwLCAzMSwgMjMzLCA5NSwgMTY3LCAyMzAsIDIyNywgMTcwLCAzMSwgMjIzLCAyMTQsIAotICAgIDE3MCwgMzEsIDI0MiwgMTQ0LCAyMTEsIDIxMSwgMjMxLCAxNDEsIDE3MCwgMzEsIDI0NSwgMTAyLCAxNzAsIDMxLCAyMTksIAotICAgIDY0LCAxNzAsIDMxLCAyNDIsIDEwNSwgMTcwLCAzMSwgMjQ1LCA5NCwgMTcwLCAzMSwgMjI2LCAxMDgsIDE3MCwgMzEsIDIyMywgCi0gICAgMTIyLCAxNzAsIDMxLCAyNDQsIDI4LCAxNzAsIDMxLCAyMTQsIDI0MCwgMTY3LCAyMTQsIDI4LCAxNzAsIDMxLCAyNDksIAotICAgIDEzMiwgMTcwLCAzMSwgMjMxLCAxNTQsIDE3MCwgMzEsIDI0NSwgMjcsIDE3MCwgMzEsIDIxNSwgMTQzLCAxNzAsIDMxLCAKLSAgICAyNDcsIDE2NCwgMTcwLCAzMSwgMjQ5LCAxOTMsIDIzMCwgMTgwLCAxNzAsIDMxLCAyNDIsIDg3LCAxNzAsIDMxLCAyNDMsIAotICAgIDYzLCAyMzUsIDI1MSwgMTcwLCAzMSwgMjMxLCAyMDQsIDE3MCwgMzEsIDI1NCwgMTcwLCAxNzAsIDMxLCAyNDUsIDExNSwgCi0gICAgMTcwLCAzMSwgMjQ2LCA2MywgMTcwLCAzMSwgMjE0LCAyNiwgMTcwLCAzMSwgMjIwLCA3OCwgMTcwLCAzMSwgMjM1LCAyMTksIAotICAgIDE3MCwgMzEsIDI0NywgMjQ5LCAxNzAsIDMxLCAyNDgsIDEwNSwgMTcwLCAzMSwgMjQ3LCAxNjAsIDE3MCwgMzEsIDI0NCwgCi0gICAgMjUyLCAxNzAsIDMxLCAyMjEsIDM2LCAxNzAsIDMxLCAyMTksIDY4LCAxNzAsIDMxLCAyNDEsIDI0MSwgMTcwLCAzMSwgMjQ5LCAKLSAgICAxNTEsIDE3MCwgMzEsIDI0OSwgMTg4LCAxNzAsIDMxLCAyNDQsIDE0NSwgMTcwLCAzMSwgMjU0LCAxMTcsIDE3MCwgMzEsIAotICAgIDI0OSwgMTUwLCAxNzAsIDMxLCAyMjcsIDYzLCAyMTcsIDE0OSwgMjE0LCAyMTksIDE3MCwgMzEsIDI0NywgMTg0LCAxNzAsIAotICAgIDMxLCAyMzMsIDE0NywgMTcwLCAzMSwgMjQzLCAyMzksIDI0OSwgODgsIDIyMywgMTAzLCAyMTUsIDE0NSwgMjEsIDExNiwgCi0gICAgMjQ5LCA4OCwgMjIzLCAxMDMsIDIxNSwgMTQ1LCAyMSwgMTA5LCAyNDksIDg4LCAyMjMsIDEwMywgMjE1LCAxNDUsIDIxLCAKLSAgICAxNjYsIDI0OSwgODgsIDIyMywgMTAzLCAyMTUsIDE0NSwgMjEsIDE2MywgMjQ5LCA4OCwgMjIzLCAxMDMsIDIxNSwgMTQ1LCAKLSAgICAyMSwgMTgwLCAyNDksIDg4LCAyMjMsIDEwMywgMjE1LCAxNDUsIDIxLCAxODksIDI0OSwgODgsIDIyMywgMTAzLCAyMTUsIAotICAgIDE0NSwgMjEsIDE5OCwgMjQ5LCA4OCwgMjIzLCAxMDMsIDIxNSwgMTQ1LCAyMSwgMTk1LCAyNDksIDg4LCAyMjMsIDEwMywgCi0gICAgMjE1LCAxNDUsIDIxLCAyMDAsIDI0OSwgODgsIDIyMywgMTAzLCAyMTcsIDE5NiwgMjEsIDExNiwgMjQ5LCA4OCwgMjIzLCAKLSAgICAxMDMsIDIxNywgMTk2LCAyMSwgMTA5LCAyNDksIDg4LCAyMjMsIDEwMywgMjE3LCAxOTYsIDIxLCAxNjYsIDI0OSwgODgsIAotICAgIDIyMywgMTAzLCAyMTcsIDE5NiwgMjEsIDE2MywgMjQ5LCA4OCwgMjIzLCAxMDMsIDIxNywgMTk2LCAyMSwgMTgwLCAyNDksIAotICAgIDg4LCAyMjMsIDEwMywgMjE3LCAxOTYsIDIxLCAxODksIDI0OSwgODgsIDIyMywgMTAzLCAyMTcsIDE5NiwgMjEsIDE5OCwgCi0gICAgMjQ5LCA4OCwgMjIzLCAxMDMsIDIxNywgMTk2LCAyMSwgMTk1LCAyNDksIDg4LCAyMjMsIDEwMywgMjE3LCAxOTYsIDIxLCAKLSAgICAyMDAsIDE0LCAyMiwgNiwgNjEsIDE0LCAyMiwgNiwgMjUzLCA3NCwgMTQsIDIyLCA2LCAyNTAsIDI1MiwgMTQsIDIyLCA2LCAKLSAgICAyNDksIDMsIDE0LCAyMiwgNiwgNzQsIDE0LCAyMiwgNiwgMjQ0LCAyMzAsIDE0LCAyMiwgNiwgMjQzLCAxNzcsIDE0LCAyMiwgCi0gICAgNiwgMjQyLCA0MSwgMTQsIDIyLCA2LCA3MiwgMTQsIDIyLCA2LCAyMzUsIDE0MiwgMTQsIDIyLCA2LCAyMzUsIDI3LCAxNCwgCi0gICAgMjIsIDYsIDE1MCwgMTQsIDIyLCA2LCAxODMsIDE0LCAyMiwgNiwgMjA0LCAxNCwgMjIsIDYsIDc1LCAxNCwgMjIsIDYsIAotICAgIDIyNiwgMjI5LCAxNCwgMjIsIDYsIDIyNCwgMjQwLCAxNCwgMjIsIDYsIDE0OSwgMTQsIDIyLCA2LCAxOTcsIDE0LCAyMiwgNiwgCi0gICAgMjE4LCA5OSwgMTQsIDIyLCA2LCA2OSwgMTQsIDIyLCA2LCAyMTUsIDc5LCAxNCwgMjIsIDYsIDIxNCwgODIsIDE0LCAyMiwgCi0gICAgNiwgMjEzLCAxNjYsIDE0LCAyMiwgNiwgMjEzLCAxMDUsIDE0LCAyMiwgNiwgMjEyLCAxNTIsIDE0LCAyMiwgMywgNjEsIDE0LCAKLSAgICAyMiwgMywgMjUzLCA3NCwgMTQsIDIyLCAzLCAyNTAsIDI1MiwgMTQsIDIyLCAzLCAyNDksIDMsIDE0LCAyMiwgMywgNzQsIAotICAgIDE0LCAyMiwgMywgMjQ0LCAyMzAsIDE0LCAyMiwgMywgMjQzLCAxNzcsIDE0LCAyMiwgMywgMjQyLCA0MSwgMTQsIDIyLCAzLCAKLSAgICA3MiwgMTQsIDIyLCAzLCAyMzUsIDE0MiwgMTQsIDIyLCAzLCAyMzUsIDI3LCAxNCwgMjIsIDMsIDE1MCwgMTQsIDIyLCAzLCAKLSAgICAxODMsIDE0LCAyMiwgMywgMjA0LCAxNCwgMjIsIDMsIDc1LCAxNCwgMjIsIDMsIDIyNiwgMjI5LCAxNCwgMjIsIDMsIDIyNCwgCi0gICAgMjQwLCAxNCwgMjIsIDMsIDE0OSwgMTQsIDIyLCAzLCAxOTcsIDE0LCAyMiwgMywgMjE4LCA5OSwgMTQsIDIyLCAzLCA2OSwgCi0gICAgMTQsIDIyLCAzLCAyMTUsIDc5LCAxNCwgMjIsIDMsIDIxNCwgODIsIDE0LCAyMiwgMywgMjEzLCAxNjYsIDE0LCAyMiwgMywgCi0gICAgMjEzLCAxMDUsIDE0LCAyMiwgMywgMjEyLCAxNTIsIDE0LCAzMiwgNiwgNjEsIDE0LCAzMiwgNiwgMjUzLCA3NCwgMTQsIDMyLCAKLSAgICA2LCAyNTAsIDI1MiwgMTQsIDMyLCA2LCAyNDksIDMsIDE0LCAzMiwgNiwgNzQsIDE0LCAzMiwgNiwgMjQ0LCAyMzAsIDE0LCAKLSAgICAzMiwgNiwgMjQzLCAxNzcsIDE0LCAzMiwgNiwgMjQyLCA0MSwgMTQsIDMyLCA2LCA3MiwgMTQsIDMyLCA2LCAyMzUsIDE0MiwgCi0gICAgMTQsIDMyLCA2LCAyMzUsIDI3LCAxNCwgMzIsIDYsIDE1MCwgMTQsIDMyLCA2LCAxODMsIDE0LCAzMiwgNiwgMjA0LCAxNCwgCi0gICAgMzIsIDYsIDc1LCAxNCwgMzIsIDYsIDIyNiwgMjI5LCAxNCwgMzIsIDYsIDIyNCwgMjQwLCAxNCwgMzIsIDYsIDE0OSwgMTQsIAotICAgIDMyLCA2LCAxOTcsIDE0LCAzMiwgNiwgMjE4LCA5OSwgMTQsIDMyLCA2LCA2OSwgMTQsIDMyLCA2LCAyMTUsIDc5LCAxNCwgCi0gICAgMzIsIDYsIDIxNCwgODIsIDE0LCAzMiwgNiwgMjEzLCAxNjYsIDE0LCAzMiwgNiwgMjEzLCAxMDUsIDE0LCAzMiwgNiwgMjEyLCAKLSAgICAxNTIsIDE0LCAzMiwgMywgNjEsIDE0LCAzMiwgMywgMjUzLCA3NCwgMTQsIDMyLCAzLCAyNTAsIDI1MiwgMTQsIDMyLCAzLCAKLSAgICAyNDksIDMsIDE0LCAzMiwgMywgNzQsIDE0LCAzMiwgMywgMjQ0LCAyMzAsIDE0LCAzMiwgMywgMjQzLCAxNzcsIDE0LCAzMiwgCi0gICAgMywgNzIsIDE0LCAzMiwgMywgMjM1LCAxNDIsIDE0LCAzMiwgMywgMjM1LCAyNywgMTQsIDMyLCAzLCAxNTAsIDE0LCAzMiwgCi0gICAgMywgMTgzLCAxNCwgMzIsIDMsIDIwNCwgMTQsIDMyLCAzLCA3NSwgMTQsIDMyLCAzLCAyMjYsIDIyOSwgMTQsIDMyLCAzLCAKLSAgICAyMjQsIDI0MCwgMTQsIDMyLCAzLCAxNDksIDE0LCAzMiwgMywgMTk3LCAxNCwgMzIsIDMsIDIxOCwgOTksIDE0LCAzMiwgMywgCi0gICAgNjksIDE0LCAzMiwgMywgMjE1LCA3OSwgMTQsIDMyLCAzLCAyMTQsIDgyLCAxNCwgMzIsIDMsIDIxMywgMTY2LCAxNCwgMzIsIAotICAgIDMsIDIxMywgMTA1LCAxNCwgMzIsIDMsIDIxMiwgMTUyLCAxNCwgMjIsIDMyLCA2LCA2MSwgMTQsIDIyLCAzMiwgNiwgMjUzLCAKLSAgICA3NCwgMTQsIDIyLCAzMiwgNiwgMjUwLCAyNTIsIDE0LCAyMiwgMzIsIDYsIDI0OSwgMywgMTQsIDIyLCAzMiwgNiwgNzQsIAotICAgIDE0LCAyMiwgMzIsIDYsIDI0NCwgMjMwLCAxNCwgMjIsIDMyLCA2LCAyNDMsIDE3NywgMTQsIDIyLCAzMiwgNiwgMjQyLCA0MSwgCi0gICAgMTQsIDIyLCAzMiwgNiwgNzIsIDE0LCAyMiwgMzIsIDYsIDIzNSwgMTQyLCAxNCwgMjIsIDMyLCA2LCAyMzUsIDI3LCAxNCwgCi0gICAgMjIsIDMyLCA2LCAxNTAsIDE0LCAyMiwgMzIsIDYsIDE4MywgMTQsIDIyLCAzMiwgNiwgMjA0LCAxNCwgMjIsIDMyLCA2LCAKLSAgICA3NSwgMTQsIDIyLCAzMiwgNiwgMjI2LCAyMjksIDE0LCAyMiwgMzIsIDYsIDIyNCwgMjQwLCAxNCwgMjIsIDMyLCA2LCAxNDksIAotICAgIDE0LCAyMiwgMzIsIDYsIDE5NywgMTQsIDIyLCAzMiwgNiwgMjE4LCA5OSwgMTQsIDIyLCAzMiwgNiwgNjksIDE0LCAyMiwgCi0gICAgMzIsIDYsIDIxNSwgNzksIDE0LCAyMiwgMzIsIDYsIDIxNCwgODIsIDE0LCAyMiwgMzIsIDYsIDIxMywgMTY2LCAxNCwgMjIsIAotICAgIDMyLCA2LCAyMTMsIDEwNSwgMTQsIDIyLCAzMiwgNiwgMjEyLCAxNTIsIDE0LCAyMiwgMzIsIDMsIDYxLCAxNCwgMjIsIDMyLCAKLSAgICAzLCAyNTMsIDc0LCAxNCwgMjIsIDMyLCAzLCAyNTAsIDI1MiwgMTQsIDIyLCAzMiwgMywgMjQ5LCAzLCAxNCwgMjIsIDMyLCAKLSAgICAzLCA3NCwgMTQsIDIyLCAzMiwgMywgMjQ0LCAyMzAsIDE0LCAyMiwgMzIsIDMsIDI0MywgMTc3LCAxNCwgMjIsIDMyLCAzLCAKLSAgICAyNDIsIDQxLCAxNCwgMjIsIDMyLCAzLCA3MiwgMTQsIDIyLCAzMiwgMywgMjM1LCAxNDIsIDE0LCAyMiwgMzIsIDMsIDIzNSwgCi0gICAgMjcsIDE0LCAyMiwgMzIsIDMsIDE1MCwgMTQsIDIyLCAzMiwgMywgMTgzLCAxNCwgMjIsIDMyLCAzLCAyMDQsIDE0LCAyMiwgCi0gICAgMzIsIDMsIDc1LCAxNCwgMjIsIDMyLCAzLCAyMjYsIDIyOSwgMTQsIDIyLCAzMiwgMywgMjI0LCAyNDAsIDE0LCAyMiwgMzIsIAotICAgIDMsIDE0OSwgMTQsIDIyLCAzMiwgMywgMTk3LCAxNCwgMjIsIDMyLCAzLCAyMTgsIDk5LCAxNCwgMjIsIDMyLCAzLCA2OSwgCi0gICAgMTQsIDIyLCAzMiwgMywgMjE1LCA3OSwgMTQsIDIyLCAzMiwgMywgMjE0LCA4MiwgMTQsIDIyLCAzMiwgMywgMjEzLCAxNjYsIAotICAgIDE0LCAyMiwgMzIsIDMsIDIxMywgMTA1LCAxNCwgMjIsIDMyLCAzLCAyMTIsIDE1MiwgMTQsIDExMywgNiwgNjEsIDE0LCAKLSAgICAxMTMsIDYsIDI1MCwgMjUyLCAxNCwgMTEzLCA2LCAyNDksIDMsIDE0LCAxMTMsIDYsIDI0MywgMTc3LCAxNCwgMTEzLCA2LCAKLSAgICAyMzUsIDE0MiwgMTQsIDExMywgNiwgMjM1LCAyNywgMTQsIDExMywgNiwgMjA0LCAxNCwgMTEzLCA2LCA3NSwgMTQsIDExMywgCi0gICAgNiwgMjI2LCAyMjksIDE0LCAxMTMsIDYsIDIyNCwgMjQwLCAxNCwgMTEzLCA2LCAxOTcsIDE0LCAxMTMsIDYsIDIxOCwgOTksIAotICAgIDE0LCAxMTMsIDYsIDY5LCAxNCwgMTEzLCA2LCAyMTUsIDc5LCAxNCwgMTEzLCA2LCAyMTQsIDgyLCAxNCwgMTEzLCA2LCAKLSAgICAyMTMsIDE2NiwgMTQsIDExMywgNiwgMjEzLCAxMDUsIDE0LCAxMTMsIDYsIDIxMiwgMTUyLCAxNCwgMTEzLCAzLCA2MSwgMTQsIAotICAgIDExMywgMywgMjUzLCA3NCwgMTQsIDExMywgMywgMjUwLCAyNTIsIDE0LCAxMTMsIDMsIDI0OSwgMywgMTQsIDExMywgMywgCi0gICAgMjQ0LCAyMzAsIDE0LCAxMTMsIDMsIDI0MiwgNDEsIDE0LCAxMTMsIDMsIDcyLCAxNCwgMTEzLCAzLCAyMzUsIDE0MiwgMTQsIAotICAgIDExMywgMywgMjM1LCAyNywgMTQsIDExMywgMywgMTUwLCAxNCwgMTEzLCAzLCAxODMsIDE0LCAxMTMsIDMsIDIwNCwgMTQsIAotICAgIDExMywgMywgMjI2LCAyMjksIDE0LCAxMTMsIDMsIDIyNCwgMjQwLCAxNCwgMTEzLCAzLCAxNDksIDE0LCAxMTMsIDMsIDE5NywgCi0gICAgMTQsIDExMywgMywgMjE4LCA5OSwgMTQsIDExMywgMywgNjksIDE0LCAxMTMsIDMsIDIxNSwgNzksIDE0LCAxMTMsIDMsIAotICAgIDIxNCwgODIsIDE0LCAxMTMsIDMsIDIxMywgMTY2LCAxNCwgMTEzLCAzLCAyMTMsIDEwNSwgMTQsIDExMywgMywgMjEyLCAKLSAgICAxNTIsIDE0LCAyMiwgMTEzLCA2LCA2MSwgMTQsIDIyLCAxMTMsIDYsIDI1MywgNzQsIDE0LCAyMiwgMTEzLCA2LCAyNTAsIAotICAgIDI1MiwgMTQsIDIyLCAxMTMsIDYsIDI0OSwgMywgMTQsIDIyLCAxMTMsIDYsIDc0LCAxNCwgMjIsIDExMywgNiwgMjQ0LCAKLSAgICAyMzAsIDE0LCAyMiwgMTEzLCA2LCAyNDMsIDE3NywgMTQsIDIyLCAxMTMsIDYsIDI0MiwgNDEsIDE0LCAyMiwgMTEzLCA2LCAKLSAgICA3MiwgMTQsIDIyLCAxMTMsIDYsIDIzNSwgMTQyLCAxNCwgMjIsIDExMywgNiwgMjM1LCAyNywgMTQsIDIyLCAxMTMsIDYsIAotICAgIDE1MCwgMTQsIDIyLCAxMTMsIDYsIDE4MywgMTQsIDIyLCAxMTMsIDYsIDIwNCwgMTQsIDIyLCAxMTMsIDYsIDc1LCAxNCwgCi0gICAgMjIsIDExMywgNiwgMjI2LCAyMjksIDE0LCAyMiwgMTEzLCA2LCAyMjQsIDI0MCwgMTQsIDIyLCAxMTMsIDYsIDE0OSwgMTQsIAotICAgIDIyLCAxMTMsIDYsIDE5NywgMTQsIDIyLCAxMTMsIDYsIDIxOCwgOTksIDE0LCAyMiwgMTEzLCA2LCA2OSwgMTQsIDIyLCAKLSAgICAxMTMsIDYsIDIxNSwgNzksIDE0LCAyMiwgMTEzLCA2LCAyMTQsIDgyLCAxNCwgMjIsIDExMywgNiwgMjEzLCAxNjYsIDE0LCAKLSAgICAyMiwgMTEzLCA2LCAyMTMsIDEwNSwgMTQsIDIyLCAxMTMsIDYsIDIxMiwgMTUyLCAxNCwgMjIsIDExMywgMywgNjEsIDE0LCAKLSAgICAyMiwgMTEzLCAzLCAyNTMsIDc0LCAxNCwgMjIsIDExMywgMywgMjUwLCAyNTIsIDE0LCAyMiwgMTEzLCAzLCAyNDksIDMsIAotICAgIDE0LCAyMiwgMTEzLCAzLCA3NCwgMTQsIDIyLCAxMTMsIDMsIDI0NCwgMjMwLCAxNCwgMjIsIDExMywgMywgMjQzLCAxNzcsIAotICAgIDE0LCAyMiwgMTEzLCAzLCAyNDIsIDQxLCAxNCwgMjIsIDExMywgMywgNzIsIDE0LCAyMiwgMTEzLCAzLCAyMzUsIDE0MiwgCi0gICAgMTQsIDIyLCAxMTMsIDMsIDIzNSwgMjcsIDE0LCAyMiwgMTEzLCAzLCAxNTAsIDE0LCAyMiwgMTEzLCAzLCAxODMsIDE0LCAKLSAgICAyMiwgMTEzLCAzLCAyMDQsIDE0LCAyMiwgMTEzLCAzLCA3NSwgMTQsIDIyLCAxMTMsIDMsIDIyNiwgMjI5LCAxNCwgMjIsIAotICAgIDExMywgMywgMjI0LCAyNDAsIDE0LCAyMiwgMTEzLCAzLCAxNDksIDE0LCAyMiwgMTEzLCAzLCAxOTcsIDE0LCAyMiwgMTEzLCAKLSAgICAzLCAyMTgsIDk5LCAxNCwgMjIsIDExMywgMywgNjksIDE0LCAyMiwgMTEzLCAzLCAyMTUsIDc5LCAxNCwgMjIsIDExMywgMywgCi0gICAgMjE0LCA4MiwgMTQsIDIyLCAxMTMsIDMsIDIxMywgMTY2LCAxNCwgMjIsIDExMywgMywgMjEzLCAxMDUsIDE0LCAyMiwgMTEzLCAKLSAgICAzLCAyMTIsIDE1MiwgMTQsIDEyOSwgNiwgNjEsIDE0LCAxMjksIDYsIDI1MywgNzQsIDE0LCAxMjksIDYsIDI0OSwgMywgMTQsIAotICAgIDEyOSwgNiwgNzQsIDE0LCAxMjksIDYsIDI0NCwgMjMwLCAxNCwgMTI5LCA2LCAyNDMsIDE3NywgMTQsIDEyOSwgNiwgMjM1LCAKLSAgICAxNDIsIDE0LCAxMjksIDYsIDIzNSwgMjcsIDE0LCAxMjksIDYsIDE1MCwgMTQsIDEyOSwgNiwgMTgzLCAxNCwgMTI5LCA2LCAKLSAgICAyMDQsIDE0LCAxMjksIDYsIDc1LCAxNCwgMTI5LCA2LCAyMjYsIDIyOSwgMTQsIDEyOSwgNiwgMjI0LCAyNDAsIDE0LCAxMjksIAotICAgIDYsIDE5NywgMTQsIDEyOSwgNiwgMjE4LCA5OSwgMTQsIDEyOSwgNiwgNjksIDE0LCAxMjksIDYsIDIxNSwgNzksIDE0LCAKLSAgICAxMjksIDYsIDIxNCwgODIsIDE0LCAxMjksIDYsIDIxMywgMTY2LCAxNCwgMTI5LCA2LCAyMTMsIDEwNSwgMTQsIDEyOSwgMywgCi0gICAgNjEsIDE0LCAxMjksIDMsIDI1MywgNzQsIDE0LCAxMjksIDMsIDI1MCwgMjUyLCAxNCwgMTI5LCAzLCAyNDksIDMsIDE0LCAKLSAgICAxMjksIDMsIDc0LCAxNCwgMTI5LCAzLCAyNDQsIDIzMCwgMTQsIDEyOSwgMywgMjQzLCAxNzcsIDE0LCAxMjksIDMsIDI0MiwgCi0gICAgNDEsIDE0LCAxMjksIDMsIDcyLCAxNCwgMTI5LCAzLCAyMzUsIDE0MiwgMTQsIDEyOSwgMywgMjM1LCAyNywgMTQsIDEyOSwgCi0gICAgMywgMTUwLCAxNCwgMTI5LCAzLCAxODMsIDE0LCAxMjksIDMsIDIwNCwgMTQsIDEyOSwgMywgNzUsIDE0LCAxMjksIDMsIAotICAgIDIyNiwgMjI5LCAxNCwgMTI5LCAzLCAyMjQsIDI0MCwgMTQsIDEyOSwgMywgMTQ5LCAxNCwgMTI5LCAzLCAxOTcsIDE0LCAKLSAgICAxMjksIDMsIDIxOCwgOTksIDE0LCAxMjksIDMsIDY5LCAxNCwgMTI5LCAzLCAyMTUsIDc5LCAxNCwgMTI5LCAzLCAyMTQsIAotICAgIDgyLCAxNCwgMTI5LCAzLCAyMTMsIDE2NiwgMTQsIDEyOSwgMywgMjEzLCAxMDUsIDE0LCAxMjksIDMsIDIxMiwgMTUyLCAxNCwgCi0gICAgMTg3LCA2LCA2MSwgMTQsIDE4NywgNiwgMjUzLCA3NCwgMTQsIDE4NywgNiwgMjQ5LCAzLCAxNCwgMTg3LCA2LCA3NCwgMTQsIAotICAgIDE4NywgNiwgMjQ0LCAyMzAsIDE0LCAxODcsIDYsIDI0MywgMTc3LCAxNCwgMTg3LCA2LCA3MiwgMTQsIDE4NywgNiwgMjM1LCAKLSAgICAxNDIsIDE0LCAxODcsIDYsIDIzNSwgMjcsIDE0LCAxODcsIDYsIDE1MCwgMTQsIDE4NywgNiwgMTgzLCAxNCwgMTg3LCA2LCAKLSAgICA3NSwgMTQsIDE4NywgNiwgMTk3LCAxNCwgMTg3LCA2LCAyMTgsIDk5LCAxNCwgMTg3LCA2LCA2OSwgMTQsIDE4NywgNiwgCi0gICAgMjE1LCA3OSwgMTQsIDE4NywgNiwgMjE0LCA4MiwgMTQsIDE4NywgNiwgMjEzLCAxNjYsIDE0LCAxODcsIDYsIDIxMywgMTA1LCAKLSAgICAxNCwgMTg3LCAzLCA2MSwgMTQsIDE4NywgMywgMjUzLCA3NCwgMTQsIDE4NywgMywgMjUwLCAyNTIsIDE0LCAxODcsIDMsIAotICAgIDI0OSwgMywgMTQsIDE4NywgMywgNzQsIDE0LCAxODcsIDMsIDI0NCwgMjMwLCAxNCwgMTg3LCAzLCAyNDMsIDE3NywgMTQsIAotICAgIDE4NywgMywgMjQyLCA0MSwgMTQsIDE4NywgMywgNzIsIDE0LCAxODcsIDMsIDIzNSwgMTQyLCAxNCwgMTg3LCAzLCAyMzUsIAotICAgIDI3LCAxNCwgMTg3LCAzLCAxNTAsIDE0LCAxODcsIDMsIDE4MywgMTQsIDE4NywgMywgMjA0LCAxNCwgMTg3LCAzLCA3NSwgCi0gICAgMTQsIDE4NywgMywgMjI2LCAyMjksIDE0LCAxODcsIDMsIDIyNCwgMjQwLCAxNCwgMTg3LCAzLCAxNDksIDE0LCAxODcsIDMsIAotICAgIDE5NywgMTQsIDE4NywgMywgMjE4LCA5OSwgMTQsIDE4NywgMywgNjksIDE0LCAxODcsIDMsIDIxNSwgNzksIDE0LCAxODcsIAotICAgIDMsIDIxNCwgODIsIDE0LCAxODcsIDMsIDIxMywgMTY2LCAxNCwgMTg3LCAzLCAyMTMsIDEwNSwgMTQsIDE4NywgMywgMjEyLCAKLSAgICAxNTIsIDE0LCAyMiwgMTI5LCA2LCA2MSwgMTQsIDIyLCAxMjksIDYsIDI1MywgNzQsIDE0LCAyMiwgMTI5LCA2LCAyNTAsIAotICAgIDI1MiwgMTQsIDIyLCAxMjksIDYsIDI0OSwgMywgMTQsIDIyLCAxMjksIDYsIDc0LCAxNCwgMjIsIDEyOSwgNiwgMjQ0LCAKLSAgICAyMzAsIDE0LCAyMiwgMTI5LCA2LCAyNDMsIDE3NywgMTQsIDIyLCAxMjksIDYsIDI0MiwgNDEsIDE0LCAyMiwgMTI5LCA2LCAKLSAgICA3MiwgMTQsIDIyLCAxMjksIDYsIDIzNSwgMTQyLCAxNCwgMjIsIDEyOSwgNiwgMjM1LCAyNywgMTQsIDIyLCAxMjksIDYsIAotICAgIDE1MCwgMTQsIDIyLCAxMjksIDYsIDE4MywgMTQsIDIyLCAxMjksIDYsIDIwNCwgMTQsIDIyLCAxMjksIDYsIDc1LCAxNCwgCi0gICAgMjIsIDEyOSwgNiwgMjI2LCAyMjksIDE0LCAyMiwgMTI5LCA2LCAyMjQsIDI0MCwgMTQsIDIyLCAxMjksIDYsIDE0OSwgMTQsIAotICAgIDIyLCAxMjksIDYsIDE5NywgMTQsIDIyLCAxMjksIDYsIDIxOCwgOTksIDE0LCAyMiwgMTI5LCA2LCA2OSwgMTQsIDIyLCAKLSAgICAxMjksIDYsIDIxNSwgNzksIDE0LCAyMiwgMTI5LCA2LCAyMTQsIDgyLCAxNCwgMjIsIDEyOSwgNiwgMjEzLCAxNjYsIDE0LCAKLSAgICAyMiwgMTI5LCA2LCAyMTMsIDEwNSwgMTQsIDIyLCAxMjksIDYsIDIxMiwgMTUyLCAxNCwgMjIsIDEyOSwgMywgNjEsIDE0LCAKLSAgICAyMiwgMTI5LCAzLCAyNTMsIDc0LCAxNCwgMjIsIDEyOSwgMywgMjUwLCAyNTIsIDE0LCAyMiwgMTI5LCAzLCAyNDksIDMsIAotICAgIDE0LCAyMiwgMTI5LCAzLCA3NCwgMTQsIDIyLCAxMjksIDMsIDI0NCwgMjMwLCAxNCwgMjIsIDEyOSwgMywgMjQzLCAxNzcsIAotICAgIDE0LCAyMiwgMTI5LCAzLCAyNDIsIDQxLCAxNCwgMjIsIDEyOSwgMywgNzIsIDE0LCAyMiwgMTI5LCAzLCAyMzUsIDE0MiwgCi0gICAgMTQsIDIyLCAxMjksIDMsIDIzNSwgMjcsIDE0LCAyMiwgMTI5LCAzLCAxNTAsIDE0LCAyMiwgMTI5LCAzLCAxODMsIDE0LCAKLSAgICAyMiwgMTI5LCAzLCAyMDQsIDE0LCAyMiwgMTI5LCAzLCA3NSwgMTQsIDIyLCAxMjksIDMsIDIyNiwgMjI5LCAxNCwgMjIsIAotICAgIDEyOSwgMywgMjI0LCAyNDAsIDE0LCAyMiwgMTI5LCAzLCAxNDksIDE0LCAyMiwgMTI5LCAzLCAxOTcsIDE0LCAyMiwgMTI5LCAKLSAgICAzLCAyMTgsIDk5LCAxNCwgMjIsIDEyOSwgMywgNjksIDE0LCAyMiwgMTI5LCAzLCAyMTUsIDc5LCAxNCwgMjIsIDEyOSwgMywgCi0gICAgMjE0LCA4MiwgMTQsIDIyLCAxMjksIDMsIDIxMywgMTY2LCAxNCwgMjIsIDEyOSwgMywgMjEzLCAxMDUsIDE0LCAyMiwgMTI5LCAKLSAgICAzLCAyMTIsIDE1MiwgMTQsIDM1LCA2LCA2MSwgMTQsIDM1LCA2LCAyNTMsIDc0LCAxNCwgMzUsIDYsIDI1MCwgMjUyLCAxNCwgCi0gICAgMzUsIDYsIDI0OSwgMywgMTQsIDM1LCA2LCA3NCwgMTQsIDM1LCA2LCAyNDQsIDIzMCwgMTQsIDM1LCA2LCAyNDMsIDE3NywgCi0gICAgMTQsIDM1LCA2LCAyNDIsIDQxLCAxNCwgMzUsIDYsIDcyLCAxNCwgMzUsIDYsIDIzNSwgMTQyLCAxNCwgMzUsIDYsIDIzNSwgCi0gICAgMjcsIDE0LCAzNSwgNiwgMTUwLCAxNCwgMzUsIDYsIDE4MywgMTQsIDM1LCA2LCAyMDQsIDE0LCAzNSwgNiwgNzUsIDE0LCAKLSAgICAzNSwgNiwgMjI2LCAyMjksIDE0LCAzNSwgNiwgMjI0LCAyNDAsIDE0LCAzNSwgNiwgMTQ5LCAxNCwgMzUsIDYsIDE5NywgMTQsIAotICAgIDM1LCA2LCAyMTgsIDk5LCAxNCwgMzUsIDYsIDY5LCAxNCwgMzUsIDYsIDIxNSwgNzksIDE0LCAzNSwgNiwgMjE0LCA4MiwgCi0gICAgMTQsIDM1LCA2LCAyMTMsIDE2NiwgMTQsIDM1LCA2LCAyMTMsIDEwNSwgMTQsIDM1LCA2LCAyMTIsIDE1MiwgMTQsIDM1LCAzLCAKLSAgICA2MSwgMTQsIDM1LCAzLCAyNTMsIDc0LCAxNCwgMzUsIDMsIDI1MCwgMjUyLCAxNCwgMzUsIDMsIDI0OSwgMywgMTQsIDM1LCAKLSAgICAzLCA3NCwgMTQsIDM1LCAzLCAyNDQsIDIzMCwgMTQsIDM1LCAzLCAyNDMsIDE3NywgMTQsIDM1LCAzLCAyNDIsIDQxLCAxNCwgCi0gICAgMzUsIDMsIDcyLCAxNCwgMzUsIDMsIDIzNSwgMTQyLCAxNCwgMzUsIDMsIDIzNSwgMjcsIDE0LCAzNSwgMywgMTUwLCAxNCwgCi0gICAgMzUsIDMsIDE4MywgMTQsIDM1LCAzLCAyMDQsIDE0LCAzNSwgMywgNzUsIDE0LCAzNSwgMywgMjI2LCAyMjksIDE0LCAzNSwgCi0gICAgMywgMjI0LCAyNDAsIDE0LCAzNSwgMywgMTQ5LCAxNCwgMzUsIDMsIDE5NywgMTQsIDM1LCAzLCAyMTgsIDk5LCAxNCwgMzUsIAotICAgIDMsIDY5LCAxNCwgMzUsIDMsIDIxNSwgNzksIDE0LCAzNSwgMywgMjE0LCA4MiwgMTQsIDM1LCAzLCAyMTMsIDE2NiwgMTQsIAotICAgIDM1LCAzLCAyMTMsIDEwNSwgMTQsIDM1LCAzLCAyMTIsIDE1MiwgMTQsIDM1LCAyMiwgNiwgNjEsIDE0LCAzNSwgMjIsIDYsIAotICAgIDI1MywgNzQsIDE0LCAzNSwgMjIsIDYsIDI1MCwgMjUyLCAxNCwgMzUsIDIyLCA2LCAyNDksIDMsIDE0LCAzNSwgMjIsIDYsIAotICAgIDc0LCAxNCwgMzUsIDIyLCA2LCAyNDQsIDIzMCwgMTQsIDM1LCAyMiwgNiwgMjQzLCAxNzcsIDE0LCAzNSwgMjIsIDYsIDI0MiwgCi0gICAgNDEsIDE0LCAzNSwgMjIsIDYsIDcyLCAxNCwgMzUsIDIyLCA2LCAyMzUsIDE0MiwgMTQsIDM1LCAyMiwgNiwgMjM1LCAyNywgCi0gICAgMTQsIDM1LCAyMiwgNiwgMTUwLCAxNCwgMzUsIDIyLCA2LCAxODMsIDE0LCAzNSwgMjIsIDYsIDIwNCwgMTQsIDM1LCAyMiwgCi0gICAgNiwgNzUsIDE0LCAzNSwgMjIsIDYsIDIyNiwgMjI5LCAxNCwgMzUsIDIyLCA2LCAyMjQsIDI0MCwgMTQsIDM1LCAyMiwgNiwgCi0gICAgMTQ5LCAxNCwgMzUsIDIyLCA2LCAxOTcsIDE0LCAzNSwgMjIsIDYsIDIxOCwgOTksIDE0LCAzNSwgMjIsIDYsIDY5LCAxNCwgCi0gICAgMzUsIDIyLCA2LCAyMTUsIDc5LCAxNCwgMzUsIDIyLCA2LCAyMTQsIDgyLCAxNCwgMzUsIDIyLCA2LCAyMTMsIDE2NiwgMTQsIAotICAgIDM1LCAyMiwgNiwgMjEzLCAxMDUsIDE0LCAzNSwgMjIsIDYsIDIxMiwgMTUyLCAxNCwgMzUsIDIyLCAzLCA2MSwgMTQsIDM1LCAKLSAgICAyMiwgMywgMjUzLCA3NCwgMTQsIDM1LCAyMiwgMywgMjUwLCAyNTIsIDE0LCAzNSwgMjIsIDMsIDI0OSwgMywgMTQsIDM1LCAKLSAgICAyMiwgMywgNzQsIDE0LCAzNSwgMjIsIDMsIDI0NCwgMjMwLCAxNCwgMzUsIDIyLCAzLCAyNDMsIDE3NywgMTQsIDM1LCAyMiwgCi0gICAgMywgMjQyLCA0MSwgMTQsIDM1LCAyMiwgMywgNzIsIDE0LCAzNSwgMjIsIDMsIDIzNSwgMTQyLCAxNCwgMzUsIDIyLCAzLCAKLSAgICAyMzUsIDI3LCAxNCwgMzUsIDIyLCAzLCAxNTAsIDE0LCAzNSwgMjIsIDMsIDE4MywgMTQsIDM1LCAyMiwgMywgMjA0LCAxNCwgCi0gICAgMzUsIDIyLCAzLCA3NSwgMTQsIDM1LCAyMiwgMywgMjI2LCAyMjksIDE0LCAzNSwgMjIsIDMsIDIyNCwgMjQwLCAxNCwgMzUsIAotICAgIDIyLCAzLCAxNDksIDE0LCAzNSwgMjIsIDMsIDE5NywgMTQsIDM1LCAyMiwgMywgMjE4LCA5OSwgMTQsIDM1LCAyMiwgMywgCi0gICAgNjksIDE0LCAzNSwgMjIsIDMsIDIxNSwgNzksIDE0LCAzNSwgMjIsIDMsIDIxNCwgODIsIDE0LCAzNSwgMjIsIDMsIDIxMywgCi0gICAgMTY2LCAxNCwgMzUsIDIyLCAzLCAyMTMsIDEwNSwgMTQsIDM1LCAyMiwgMywgMjEyLCAxNTIsIDE0LCAzNSwgMzIsIDYsIDYxLCAKLSAgICAxNCwgMzUsIDMyLCA2LCAyNTMsIDc0LCAxNCwgMzUsIDMyLCA2LCAyNTAsIDI1MiwgMTQsIDM1LCAzMiwgNiwgMjQ5LCAzLCAKLSAgICAxNCwgMzUsIDMyLCA2LCA3NCwgMTQsIDM1LCAzMiwgNiwgMjQ0LCAyMzAsIDE0LCAzNSwgMzIsIDYsIDI0MywgMTc3LCAxNCwgCi0gICAgMzUsIDMyLCA2LCAyNDIsIDQxLCAxNCwgMzUsIDMyLCA2LCA3MiwgMTQsIDM1LCAzMiwgNiwgMjM1LCAxNDIsIDE0LCAzNSwgCi0gICAgMzIsIDYsIDIzNSwgMjcsIDE0LCAzNSwgMzIsIDYsIDE1MCwgMTQsIDM1LCAzMiwgNiwgMTgzLCAxNCwgMzUsIDMyLCA2LCAKLSAgICAyMDQsIDE0LCAzNSwgMzIsIDYsIDc1LCAxNCwgMzUsIDMyLCA2LCAyMjYsIDIyOSwgMTQsIDM1LCAzMiwgNiwgMjI0LCAyNDAsIAotICAgIDE0LCAzNSwgMzIsIDYsIDE0OSwgMTQsIDM1LCAzMiwgNiwgMTk3LCAxNCwgMzUsIDMyLCA2LCAyMTgsIDk5LCAxNCwgMzUsIAotICAgIDMyLCA2LCA2OSwgMTQsIDM1LCAzMiwgNiwgMjE1LCA3OSwgMTQsIDM1LCAzMiwgNiwgMjE0LCA4MiwgMTQsIDM1LCAzMiwgNiwgCi0gICAgMjEzLCAxNjYsIDE0LCAzNSwgMzIsIDYsIDIxMywgMTA1LCAxNCwgMzUsIDMyLCA2LCAyMTIsIDE1MiwgMTQsIDM1LCAzMiwgCi0gICAgMywgNjEsIDE0LCAzNSwgMzIsIDMsIDI1MywgNzQsIDE0LCAzNSwgMzIsIDMsIDI1MCwgMjUyLCAxNCwgMzUsIDMyLCAzLCAKLSAgICAyNDksIDMsIDE0LCAzNSwgMzIsIDMsIDc0LCAxNCwgMzUsIDMyLCAzLCAyNDQsIDIzMCwgMTQsIDM1LCAzMiwgMywgMjQzLCAKLSAgICAxNzcsIDE0LCAzNSwgMzIsIDMsIDI0MiwgNDEsIDE0LCAzNSwgMzIsIDMsIDcyLCAxNCwgMzUsIDMyLCAzLCAyMzUsIDE0MiwgCi0gICAgMTQsIDM1LCAzMiwgMywgMjM1LCAyNywgMTQsIDM1LCAzMiwgMywgMTUwLCAxNCwgMzUsIDMyLCAzLCAxODMsIDE0LCAzNSwgCi0gICAgMzIsIDMsIDIwNCwgMTQsIDM1LCAzMiwgMywgNzUsIDE0LCAzNSwgMzIsIDMsIDIyNiwgMjI5LCAxNCwgMzUsIDMyLCAzLCAKLSAgICAyMjQsIDI0MCwgMTQsIDM1LCAzMiwgMywgMTQ5LCAxNCwgMzUsIDMyLCAzLCAxOTcsIDE0LCAzNSwgMzIsIDMsIDIxOCwgOTksIAotICAgIDE0LCAzNSwgMzIsIDMsIDY5LCAxNCwgMzUsIDMyLCAzLCAyMTUsIDc5LCAxNCwgMzUsIDMyLCAzLCAyMTQsIDgyLCAxNCwgCi0gICAgMzUsIDMyLCAzLCAyMTMsIDE2NiwgMTQsIDM1LCAzMiwgMywgMjEzLCAxMDUsIDE0LCAzNSwgMzIsIDMsIDIxMiwgMTUyLCAKLSAgICAxNCwgMzUsIDIyLCAzMiwgNiwgNjEsIDE0LCAzNSwgMjIsIDMyLCA2LCAyNTMsIDc0LCAxNCwgMzUsIDIyLCAzMiwgNiwgCi0gICAgMjUwLCAyNTIsIDE0LCAzNSwgMjIsIDMyLCA2LCAyNDksIDMsIDE0LCAzNSwgMjIsIDMyLCA2LCA3NCwgMTQsIDM1LCAyMiwgCi0gICAgMzIsIDYsIDI0NCwgMjMwLCAxNCwgMzUsIDIyLCAzMiwgNiwgMjQzLCAxNzcsIDE0LCAzNSwgMjIsIDMyLCA2LCAyNDIsIDQxLCAKLSAgICAxNCwgMzUsIDIyLCAzMiwgNiwgNzIsIDE0LCAzNSwgMjIsIDMyLCA2LCAyMzUsIDE0MiwgMTQsIDM1LCAyMiwgMzIsIDYsIAotICAgIDIzNSwgMjcsIDE0LCAzNSwgMjIsIDMyLCA2LCAxNTAsIDE0LCAzNSwgMjIsIDMyLCA2LCAxODMsIDE0LCAzNSwgMjIsIDMyLCAKLSAgICA2LCAyMDQsIDE0LCAzNSwgMjIsIDMyLCA2LCA3NSwgMTQsIDM1LCAyMiwgMzIsIDYsIDIyNiwgMjI5LCAxNCwgMzUsIDIyLCAKLSAgICAzMiwgNiwgMjI0LCAyNDAsIDE0LCAzNSwgMjIsIDMyLCA2LCAxNDksIDE0LCAzNSwgMjIsIDMyLCA2LCAxOTcsIDE0LCAzNSwgCi0gICAgMjIsIDMyLCA2LCAyMTgsIDk5LCAxNCwgMzUsIDIyLCAzMiwgNiwgNjksIDE0LCAzNSwgMjIsIDMyLCA2LCAyMTUsIDc5LCAKLSAgICAxNCwgMzUsIDIyLCAzMiwgNiwgMjE0LCA4MiwgMTQsIDM1LCAyMiwgMzIsIDYsIDIxMywgMTY2LCAxNCwgMzUsIDIyLCAzMiwgCi0gICAgNiwgMjEzLCAxMDUsIDE0LCAzNSwgMjIsIDMyLCA2LCAyMTIsIDE1MiwgMTQsIDM1LCAyMiwgMzIsIDMsIDYxLCAxNCwgMzUsIAotICAgIDIyLCAzMiwgMywgMjUzLCA3NCwgMTQsIDM1LCAyMiwgMzIsIDMsIDI1MCwgMjUyLCAxNCwgMzUsIDIyLCAzMiwgMywgMjQ5LCAKLSAgICAzLCAxNCwgMzUsIDIyLCAzMiwgMywgNzQsIDE0LCAzNSwgMjIsIDMyLCAzLCAyNDQsIDIzMCwgMTQsIDM1LCAyMiwgMzIsIDMsIAotICAgIDI0MywgMTc3LCAxNCwgMzUsIDIyLCAzMiwgMywgMjQyLCA0MSwgMTQsIDM1LCAyMiwgMzIsIDMsIDcyLCAxNCwgMzUsIDIyLCAKLSAgICAzMiwgMywgMjM1LCAxNDIsIDE0LCAzNSwgMjIsIDMyLCAzLCAyMzUsIDI3LCAxNCwgMzUsIDIyLCAzMiwgMywgMTUwLCAxNCwgCi0gICAgMzUsIDIyLCAzMiwgMywgMTgzLCAxNCwgMzUsIDIyLCAzMiwgMywgMjA0LCAxNCwgMzUsIDIyLCAzMiwgMywgNzUsIDE0LCAKLSAgICAzNSwgMjIsIDMyLCAzLCAyMjYsIDIyOSwgMTQsIDM1LCAyMiwgMzIsIDMsIDIyNCwgMjQwLCAxNCwgMzUsIDIyLCAzMiwgMywgCi0gICAgMTQ5LCAxNCwgMzUsIDIyLCAzMiwgMywgMTk3LCAxNCwgMzUsIDIyLCAzMiwgMywgMjE4LCA5OSwgMTQsIDM1LCAyMiwgMzIsIAotICAgIDMsIDY5LCAxNCwgMzUsIDIyLCAzMiwgMywgMjE1LCA3OSwgMTQsIDM1LCAyMiwgMzIsIDMsIDIxNCwgODIsIDE0LCAzNSwgCi0gICAgMjIsIDMyLCAzLCAyMTMsIDE2NiwgMTQsIDM1LCAyMiwgMzIsIDMsIDIxMywgMTA1LCAxNCwgMzUsIDIyLCAzMiwgMywgMjEyLCAKLSAgICAxNTIsIDE0LCAyMzAsIDIwOCwgNiwgNjEsIDE0LCAyMzAsIDIwOCwgNiwgMjUzLCA3NCwgMTQsIDIzMCwgMjA4LCA2LCAyNTAsIAotICAgIDI1MiwgMTQsIDIzMCwgMjA4LCA2LCAyNDksIDMsIDE0LCAyMzAsIDIwOCwgNiwgNzQsIDE0LCAyMzAsIDIwOCwgNiwgMjQ0LCAKLSAgICAyMzAsIDE0LCAyMzAsIDIwOCwgNiwgMjQzLCAxNzcsIDE0LCAyMzAsIDIwOCwgNiwgMjQyLCA0MSwgMTQsIDIzMCwgMjA4LCAKLSAgICA2LCA3MiwgMTQsIDIzMCwgMjA4LCA2LCAyMzUsIDE0MiwgMTQsIDIzMCwgMjA4LCA2LCAyMzUsIDI3LCAxNCwgMjMwLCAyMDgsIAotICAgIDYsIDE1MCwgMTQsIDIzMCwgMjA4LCA2LCAxODMsIDE0LCAyMzAsIDIwOCwgNiwgMjA0LCAxNCwgMjMwLCAyMDgsIDYsIDc1LCAKLSAgICAxNCwgMjMwLCAyMDgsIDYsIDIyNiwgMjI5LCAxNCwgMjMwLCAyMDgsIDYsIDIyNCwgMjQwLCAxNCwgMjMwLCAyMDgsIDYsIAotICAgIDE0OSwgMTQsIDIzMCwgMjA4LCA2LCAxOTcsIDE0LCAyMzAsIDIwOCwgNiwgMjE4LCA5OSwgMTQsIDIzMCwgMjA4LCA2LCA2OSwgCi0gICAgMTQsIDIzMCwgMjA4LCA2LCAyMTUsIDc5LCAxNCwgMjMwLCAyMDgsIDYsIDIxNCwgODIsIDE0LCAyMzAsIDIwOCwgNiwgMjEzLCAKLSAgICAxNjYsIDE0LCAyMzAsIDIwOCwgNiwgMjEzLCAxMDUsIDE0LCAyMzAsIDIwOCwgNiwgMjEyLCAxNTIsIDE0LCAyMzAsIDIwOCwgCi0gICAgMywgNjEsIDE0LCAyMzAsIDIwOCwgMywgMjUzLCA3NCwgMTQsIDIzMCwgMjA4LCAzLCAyNTAsIDI1MiwgMTQsIDIzMCwgMjA4LCAKLSAgICAzLCAyNDksIDMsIDE0LCAyMzAsIDIwOCwgMywgNzQsIDE0LCAyMzAsIDIwOCwgMywgMjQ0LCAyMzAsIDE0LCAyMzAsIDIwOCwgCi0gICAgMywgMjQzLCAxNzcsIDE0LCAyMzAsIDIwOCwgMywgMjQyLCA0MSwgMTQsIDIzMCwgMjA4LCAzLCA3MiwgMTQsIDIzMCwgMjA4LCAKLSAgICAzLCAyMzUsIDE0MiwgMTQsIDIzMCwgMjA4LCAzLCAyMzUsIDI3LCAxNCwgMjMwLCAyMDgsIDMsIDE1MCwgMTQsIDIzMCwgCi0gICAgMjA4LCAzLCAxODMsIDE0LCAyMzAsIDIwOCwgMywgMjA0LCAxNCwgMjMwLCAyMDgsIDMsIDc1LCAxNCwgMjMwLCAyMDgsIDMsIAotICAgIDIyNiwgMjI5LCAxNCwgMjMwLCAyMDgsIDMsIDIyNCwgMjQwLCAxNCwgMjMwLCAyMDgsIDMsIDE0OSwgMTQsIDIzMCwgMjA4LCAKLSAgICAzLCAxOTcsIDE0LCAyMzAsIDIwOCwgMywgMjE4LCA5OSwgMTQsIDIzMCwgMjA4LCAzLCA2OSwgMTQsIDIzMCwgMjA4LCAzLCAKLSAgICAyMTUsIDc5LCAxNCwgMjMwLCAyMDgsIDMsIDIxNCwgODIsIDE0LCAyMzAsIDIwOCwgMywgMjEzLCAxNjYsIDE0LCAyMzAsIAotICAgIDIwOCwgMywgMjEzLCAxMDUsIDE0LCAyMzAsIDIwOCwgMywgMjEyLCAxNTIsIDE0LCAzMiwgMywgMjQ3LCA3MywgNzIsIDE0LCAKLSAgICAzMiwgMywgMjQ3LCA3MywgMjM1LCAxNDIsIDE0LCAyMiwgNiwgMjU0LCA1MiwgMTQsIDIyLCA2LCAyNTEsIDIwMywgMTQsIAotICAgIDIyLCA2LCAyNDMsIDgzLCAxNCwgMjIsIDYsIDI0OCwgNSwgMTQsIDIyLCA2LCAyNDUsIDYzLCAxNCwgMjIsIDYsIDIxMiwgCi0gICAgNzgsIDE0LCAyMiwgNiwgMjQ1LCAyOCwgMTQsIDIyLCA2LCAyMTcsIDEzMiwgMTQsIDIyLCA2LCAyMzUsIDE4MywgMTQsIDIyLCAKLSAgICA2LCAyMzQsIDIyNywgMTQsIDIyLCA2LCAyMzMsIDEyMiwgMTQsIDIyLCA2LCAyMzAsIDE3MiwgMTQsIDIyLCA2LCAyMjgsIAotICAgIDkyLCAxNCwgMjIsIDYsIDIxMywgMTQ1LCAxNCwgMjIsIDYsIDIyNywgNjUsIDE0LCAyMiwgNiwgMjI1LCAyNDAsIDE0LCAyMiwgCi0gICAgNiwgMjIzLCAxOTAsIDE0LCAyMiwgNiwgMjE3LCAxMzMsIDg3LCAxNCwgMjIsIDYsIDIyMCwgMTAzLCAxNCwgMjIsIDYsIAotICAgIDIxNywgMjQ4LCAxNCwgMjIsIDYsIDIxNSwgMTI4LCAxNCwgMjIsIDYsIDIyNiwgOSwgMTQsIDIyLCA2LCAyNTAsIDQ3LCAxNCwgCi0gICAgMjIsIDYsIDIyNSwgNDYsIDE0LCAyMiwgNiwgMjI3LCA2NywgMTQsIDIyLCAyMzAsIDM5LCAxNCwgMjIsIDMsIDI1NCwgNTIsIAotICAgIDE0LCAyMiwgMywgMjUxLCAyMDMsIDE0LCAyMiwgMywgMjQzLCA4MywgMTQsIDIyLCAzLCAyNDgsIDUsIDE0LCAyMiwgMywgCi0gICAgMjQ1LCA2MywgMTQsIDIyLCAzLCAyMTIsIDc4LCAxNCwgMjIsIDMsIDI0NSwgMjgsIDE0LCAyMiwgMywgMjE3LCAxMzIsIDE0LCAKLSAgICAyMiwgMywgMjM1LCAxODMsIDE0LCAyMiwgMywgMjM0LCAyMjcsIDE0LCAyMiwgMywgMjMzLCAxMjIsIDE0LCAyMiwgMywgCi0gICAgMjMwLCAxNzIsIDE0LCAyMiwgMywgMjI4LCA5MiwgMTQsIDIyLCAzLCAyMTMsIDE0NSwgMTQsIDIyLCAzLCAyMjcsIDY1LCAKLSAgICAxNCwgMjIsIDMsIDIyNSwgMjQwLCAxNCwgMjIsIDMsIDIyMywgMTkwLCAxNCwgMjIsIDMsIDQwLCAyMjAsIDEwMywgMTQsIAotICAgIDIyLCAzLCAyMjAsIDEwMywgMTQsIDIyLCAzLCAyMTcsIDI0OCwgMTQsIDIyLCAzLCAyMTUsIDEyOCwgMTQsIDIyLCAzLCAKLSAgICAyMjYsIDksIDE0LCAyMiwgMywgMjUwLCA0NywgMTQsIDIyLCAzLCAyMjUsIDQ2LCAxNCwgMjIsIDMsIDIyNywgNjcsIDE0LCAKLSAgICAyMiwgMjI2LCAxMjUsIDI0NywgMTg1LCAxNCwgMjIsIDI0NSwgNjQsIDg3LCAxNCwgMjIsIDIxNywgMTMzLCA4NywgMTQsIAotICAgIDIyLCAyMzQsIDIyOCwgODcsIDE0LCAyMiwgMjI2LCAxMCwgODcsIDE0LCAyMiwgMjIzLCAxOTEsIDg3LCAxNCwgMjIsIDIyNSwgCi0gICAgMjQxLCA4NywgMTQsIDMyLCA2LCAyNTQsIDUyLCAxNCwgMzIsIDYsIDI1MSwgMjAzLCAxNCwgMzIsIDYsIDI0MywgODMsIDE0LCAKLSAgICAzMiwgNiwgMjQ4LCA1LCAxNCwgMzIsIDYsIDI0NSwgNjMsIDE0LCAzMiwgNiwgMjEyLCA3OCwgMTQsIDMyLCA2LCAyNDUsIAotICAgIDI4LCAxNCwgMzIsIDYsIDIxNywgMTMyLCAxNCwgMzIsIDYsIDIzNSwgMTgzLCAxNCwgMzIsIDYsIDIzNCwgMjI3LCAxNCwgCi0gICAgMzIsIDYsIDIzMywgMTIyLCAxNCwgMzIsIDYsIDIzMCwgMTcyLCAxNCwgMzIsIDYsIDIyOCwgOTIsIDE0LCAzMiwgNiwgMjEzLCAKLSAgICAxNDUsIDE0LCAzMiwgNiwgMjI3LCA2NSwgMTQsIDMyLCA2LCAyMjUsIDI0MCwgMTQsIDMyLCA2LCAyMjMsIDE5MCwgMTQsIAotICAgIDMyLCA2LCAyMTcsIDEzMywgODcsIDE0LCAzMiwgNiwgMjIwLCAxMDMsIDE0LCAzMiwgNiwgMjE3LCAyNDgsIDE0LCAzMiwgNiwgCi0gICAgMjE1LCAxMjgsIDE0LCAzMiwgNiwgMjI2LCA5LCAxNCwgMzIsIDYsIDI1MCwgNDcsIDE0LCAzMiwgNiwgMjI1LCA0NiwgMTQsIAotICAgIDMyLCA2LCAyMjcsIDY3LCAxNCwgMzIsIDIzMCwgMzksIDE0LCAzMiwgMywgMjU0LCA1MiwgMTQsIDMyLCAzLCAyNTEsIDIwMywgCi0gICAgMTQsIDMyLCAzLCAyNDMsIDgzLCAxNCwgMzIsIDMsIDI0OCwgNSwgMTQsIDMyLCAzLCAyNDUsIDYzLCAxNCwgMzIsIDMsIAotICAgIDIxMiwgNzgsIDE0LCAzMiwgMywgMjQ1LCAyOCwgMTQsIDMyLCAzLCAyMTcsIDEzMiwgMTQsIDMyLCAzLCAyMzUsIDE4MywgCi0gICAgMTQsIDMyLCAzLCAyMzQsIDIyNywgMTQsIDMyLCAzLCAyMzMsIDEyMiwgMTQsIDMyLCAzLCAyMzAsIDE3MiwgMTQsIDMyLCAzLCAKLSAgICAyMjgsIDkyLCAxNCwgMzIsIDMsIDIxMywgMTQ1LCAxNCwgMzIsIDMsIDIyNywgNjUsIDE0LCAzMiwgMywgMjI1LCAyNDAsIAotICAgIDE0LCAzMiwgMywgMjIzLCAxOTAsIDE0LCAzMiwgMywgNDAsIDIyMCwgMTAzLCAxNCwgMzIsIDMsIDIyMCwgMTAzLCAxNCwgCi0gICAgMzIsIDMsIDIxNywgMjQ4LCAxNCwgMzIsIDMsIDIxNSwgMTI4LCAxNCwgMzIsIDMsIDIyNiwgOSwgMTQsIDMyLCAzLCAyNTAsIAotICAgIDQ3LCAxNCwgMzIsIDMsIDIyNSwgNDYsIDE0LCAzMiwgMywgMjI3LCA2NywgMTQsIDMyLCAyMjYsIDEyNSwgMjQ3LCAxODUsIAotICAgIDE0LCAzMiwgMjQ1LCA2NCwgODcsIDE0LCAzMiwgMjE3LCAxMzMsIDg3LCAxNCwgMzIsIDIzNCwgMjI4LCA4NywgMTQsIDMyLCAKLSAgICAyMjYsIDEwLCA4NywgMTQsIDMyLCAyMjMsIDE5MSwgODcsIDE0LCAzMiwgMjI1LCAyNDEsIDg3LCAxNCwgMjIsIDMyLCA2LCAKLSAgICAyNTQsIDUyLCAxNCwgMjIsIDMyLCA2LCAyNTEsIDIwMywgMTQsIDIyLCAzMiwgNiwgMjQzLCA4MywgMTQsIDIyLCAzMiwgNiwgCi0gICAgMjQ4LCA1LCAxNCwgMjIsIDMyLCA2LCAyNDUsIDYzLCAxNCwgMjIsIDMyLCA2LCAyMTIsIDc4LCAxNCwgMjIsIDMyLCA2LCAKLSAgICAyNDUsIDI4LCAxNCwgMjIsIDMyLCA2LCAyMTcsIDEzMiwgMTQsIDIyLCAzMiwgNiwgMjM1LCAxODMsIDE0LCAyMiwgMzIsIDYsIAotICAgIDIzNCwgMjI3LCAxNCwgMjIsIDMyLCA2LCAyMzMsIDEyMiwgMTQsIDIyLCAzMiwgNiwgMjMwLCAxNzIsIDE0LCAyMiwgMzIsIAotICAgIDYsIDIyOCwgOTIsIDE0LCAyMiwgMzIsIDYsIDIxMywgMTQ1LCAxNCwgMjIsIDMyLCA2LCAyMjcsIDY1LCAxNCwgMjIsIDMyLCAKLSAgICA2LCAyMjUsIDI0MCwgMTQsIDIyLCAzMiwgNiwgMjIzLCAxOTAsIDE0LCAyMiwgMzIsIDYsIDIxNywgMTMzLCA4NywgMTQsIAotICAgIDIyLCAzMiwgNiwgMjIwLCAxMDMsIDE0LCAyMiwgMzIsIDYsIDIxNywgMjQ4LCAxNCwgMjIsIDMyLCA2LCAyMTUsIDEyOCwgCi0gICAgMTQsIDIyLCAzMiwgNiwgMjI2LCA5LCAxNCwgMjIsIDMyLCA2LCAyNTAsIDQ3LCAxNCwgMjIsIDMyLCA2LCAyMjUsIDQ2LCAKLSAgICAxNCwgMjIsIDMyLCA2LCAyMjcsIDY3LCAxNCwgMjIsIDMyLCAyMzAsIDM5LCAxNCwgMjIsIDMyLCAzLCAyNTQsIDUyLCAxNCwgCi0gICAgMjIsIDMyLCAzLCAyNTEsIDIwMywgMTQsIDIyLCAzMiwgMywgMjQzLCA4MywgMTQsIDIyLCAzMiwgMywgMjQ4LCA1LCAxNCwgCi0gICAgMjIsIDMyLCAzLCAyNDUsIDYzLCAxNCwgMjIsIDMyLCAzLCAyMTIsIDc4LCAxNCwgMjIsIDMyLCAzLCAyNDUsIDI4LCAxNCwgCi0gICAgMjIsIDMyLCAzLCAyMTcsIDEzMiwgMTQsIDIyLCAzMiwgMywgMjM1LCAxODMsIDE0LCAyMiwgMzIsIDMsIDIzNCwgMjI3LCAKLSAgICAxNCwgMjIsIDMyLCAzLCAyMzMsIDEyMiwgMTQsIDIyLCAzMiwgMywgMjMwLCAxNzIsIDE0LCAyMiwgMzIsIDMsIDIyOCwgOTIsIAotICAgIDE0LCAyMiwgMzIsIDMsIDIxMywgMTQ1LCAxNCwgMjIsIDMyLCAzLCAyMjcsIDY1LCAxNCwgMjIsIDMyLCAzLCAyMjUsIDI0MCwgCi0gICAgMTQsIDIyLCAzMiwgMywgMjIzLCAxOTAsIDE0LCAyMiwgMzIsIDMsIDQwLCAyMjAsIDEwMywgMTQsIDIyLCAzMiwgMywgMjIwLCAKLSAgICAxMDMsIDE0LCAyMiwgMzIsIDMsIDIxNywgMjQ4LCAxNCwgMjIsIDMyLCAzLCAyMTUsIDEyOCwgMTQsIDIyLCAzMiwgMywgCi0gICAgMjI2LCA5LCAxNCwgMjIsIDMyLCAzLCAyNTAsIDQ3LCAxNCwgMjIsIDMyLCAzLCAyMjUsIDQ2LCAxNCwgMjIsIDMyLCAzLCAKLSAgICAyMjcsIDY3LCAxNCwgMjIsIDMyLCAyMjYsIDEyNSwgMjQ3LCAxODUsIDE0LCAyMiwgMzIsIDI0NSwgNjQsIDg3LCAxNCwgMjIsIAotICAgIDMyLCAyMTcsIDEzMywgODcsIDE0LCAyMiwgMzIsIDIzNCwgMjI4LCA4NywgMTQsIDIyLCAzMiwgMjI2LCAxMCwgODcsIDE0LCAKLSAgICAyMiwgMzIsIDIyMywgMTkxLCA4NywgMTQsIDIyLCAzMiwgMjI1LCAyNDEsIDg3LCAxNCwgMzUsIDIyLCA2LCAyNTQsIDUyLCAKLSAgICAxNCwgMzUsIDIyLCA2LCAyNTEsIDIwMywgMTQsIDM1LCAyMiwgNiwgMjQzLCA4MywgMTQsIDM1LCAyMiwgNiwgMjQ4LCA1LCAKLSAgICAxNCwgMzUsIDIyLCA2LCAyNDUsIDYzLCAxNCwgMzUsIDIyLCA2LCAyMTIsIDc4LCAxNCwgMzUsIDIyLCA2LCAyNDUsIDI4LCAKLSAgICAxNCwgMzUsIDIyLCA2LCAyMTcsIDEzMiwgMTQsIDM1LCAyMiwgNiwgMjM1LCAxODMsIDE0LCAzNSwgMjIsIDYsIDIzNCwgCi0gICAgMjI3LCAxNCwgMzUsIDIyLCA2LCAyMzMsIDEyMiwgMTQsIDM1LCAyMiwgNiwgMjMwLCAxNzIsIDE0LCAzNSwgMjIsIDYsIAotICAgIDIyOCwgOTIsIDE0LCAzNSwgMjIsIDYsIDIxMywgMTQ1LCAxNCwgMzUsIDIyLCA2LCAyMjcsIDY1LCAxNCwgMzUsIDIyLCA2LCAKLSAgICAyMjUsIDI0MCwgMTQsIDM1LCAyMiwgNiwgMjIzLCAxOTAsIDE0LCAzNSwgMjIsIDYsIDIxNywgMTMzLCA4NywgMTQsIDM1LCAKLSAgICAyMiwgNiwgMjIwLCAxMDMsIDE0LCAzNSwgMjIsIDYsIDIxNywgMjQ4LCAxNCwgMzUsIDIyLCA2LCAyMTUsIDEyOCwgMTQsIAotICAgIDM1LCAyMiwgNiwgMjI2LCA5LCAxNCwgMzUsIDIyLCA2LCAyNTAsIDQ3LCAxNCwgMzUsIDIyLCA2LCAyMjUsIDQ2LCAxNCwgCi0gICAgMzUsIDIyLCA2LCAyMjcsIDY3LCAxNCwgMzUsIDIyLCAyMzAsIDM5LCAxNCwgMzUsIDIyLCAzLCAyNTQsIDUyLCAxNCwgMzUsIAotICAgIDIyLCAzLCAyNTEsIDIwMywgMTQsIDM1LCAyMiwgMywgMjQzLCA4MywgMTQsIDM1LCAyMiwgMywgMjQ4LCA1LCAxNCwgMzUsIAotICAgIDIyLCAzLCAyNDUsIDYzLCAxNCwgMzUsIDIyLCAzLCAyMTIsIDc4LCAxNCwgMzUsIDIyLCAzLCAyNDUsIDI4LCAxNCwgMzUsIAotICAgIDIyLCAzLCAyMTcsIDEzMiwgMTQsIDM1LCAyMiwgMywgMjM1LCAxODMsIDE0LCAzNSwgMjIsIDMsIDIzNCwgMjI3LCAxNCwgCi0gICAgMzUsIDIyLCAzLCAyMzMsIDEyMiwgMTQsIDM1LCAyMiwgMywgMjMwLCAxNzIsIDE0LCAzNSwgMjIsIDMsIDIyOCwgOTIsIDE0LCAKLSAgICAzNSwgMjIsIDMsIDIxMywgMTQ1LCAxNCwgMzUsIDIyLCAzLCAyMjcsIDY1LCAxNCwgMzUsIDIyLCAzLCAyMjUsIDI0MCwgMTQsIAotICAgIDM1LCAyMiwgMywgMjIzLCAxOTAsIDE0LCAzNSwgMjIsIDMsIDQwLCAyMjAsIDEwMywgMTQsIDM1LCAyMiwgMywgMjIwLCAKLSAgICAxMDMsIDE0LCAzNSwgMjIsIDMsIDIxNywgMjQ4LCAxNCwgMzUsIDIyLCAzLCAyMTUsIDEyOCwgMTQsIDM1LCAyMiwgMywgCi0gICAgMjI2LCA5LCAxNCwgMzUsIDIyLCAzLCAyNTAsIDQ3LCAxNCwgMzUsIDIyLCAzLCAyMjUsIDQ2LCAxNCwgMzUsIDIyLCAzLCAKLSAgICAyMjcsIDY3LCAxNCwgMzUsIDIyLCAyMjYsIDEyNSwgMjQ3LCAxODUsIDE0LCAzNSwgMjIsIDI0NSwgNjQsIDg3LCAxNCwgMzUsIAotICAgIDIyLCAyMTcsIDEzMywgODcsIDE0LCAzNSwgMjIsIDIzNCwgMjI4LCA4NywgMTQsIDM1LCAyMiwgMjI2LCAxMCwgODcsIDE0LCAKLSAgICAzNSwgMjIsIDIyMywgMTkxLCA4NywgMTQsIDM1LCAyMiwgMjI1LCAyNDEsIDg3LCAxNCwgMzUsIDIyLCAzMiwgNiwgMjU0LCAKLSAgICA1MiwgMTQsIDM1LCAyMiwgMzIsIDYsIDI1MSwgMjAzLCAxNCwgMzUsIDIyLCAzMiwgNiwgMjQzLCA4MywgMTQsIDM1LCAyMiwgCi0gICAgMzIsIDYsIDI0OCwgNSwgMTQsIDM1LCAyMiwgMzIsIDYsIDI0NSwgNjMsIDE0LCAzNSwgMjIsIDMyLCA2LCAyMTIsIDc4LCAKLSAgICAxNCwgMzUsIDIyLCAzMiwgNiwgMjQ1LCAyOCwgMTQsIDM1LCAyMiwgMzIsIDYsIDIxNywgMTMyLCAxNCwgMzUsIDIyLCAzMiwgCi0gICAgNiwgMjM1LCAxODMsIDE0LCAzNSwgMjIsIDMyLCA2LCAyMzQsIDIyNywgMTQsIDM1LCAyMiwgMzIsIDYsIDIzMywgMTIyLCAKLSAgICAxNCwgMzUsIDIyLCAzMiwgNiwgMjMwLCAxNzIsIDE0LCAzNSwgMjIsIDMyLCA2LCAyMjgsIDkyLCAxNCwgMzUsIDIyLCAzMiwgCi0gICAgNiwgMjEzLCAxNDUsIDE0LCAzNSwgMjIsIDMyLCA2LCAyMjcsIDY1LCAxNCwgMzUsIDIyLCAzMiwgNiwgMjI1LCAyNDAsIDE0LCAKLSAgICAzNSwgMjIsIDMyLCA2LCAyMjMsIDE5MCwgMTQsIDM1LCAyMiwgMzIsIDYsIDIxNywgMTMzLCA4NywgMTQsIDM1LCAyMiwgMzIsIAotICAgIDYsIDIyMCwgMTAzLCAxNCwgMzUsIDIyLCAzMiwgNiwgMjE3LCAyNDgsIDE0LCAzNSwgMjIsIDMyLCA2LCAyMTUsIDEyOCwgCi0gICAgMTQsIDM1LCAyMiwgMzIsIDYsIDIyNiwgOSwgMTQsIDM1LCAyMiwgMzIsIDYsIDI1MCwgNDcsIDE0LCAzNSwgMjIsIDMyLCA2LCAKLSAgICAyMjUsIDQ2LCAxNCwgMzUsIDIyLCAzMiwgNiwgMjI3LCA2NywgMTQsIDM1LCAyMiwgMzIsIDIzMCwgMzksIDE0LCAzNSwgMjIsIAotICAgIDMyLCAzLCAyNTQsIDUyLCAxNCwgMzUsIDIyLCAzMiwgMywgMjUxLCAyMDMsIDE0LCAzNSwgMjIsIDMyLCAzLCAyNDMsIDgzLCAKLSAgICAxNCwgMzUsIDIyLCAzMiwgMywgMjQ4LCA1LCAxNCwgMzUsIDIyLCAzMiwgMywgMjQ1LCA2MywgMTQsIDM1LCAyMiwgMzIsIDMsIAotICAgIDIxMiwgNzgsIDE0LCAzNSwgMjIsIDMyLCAzLCAyNDUsIDI4LCAxNCwgMzUsIDIyLCAzMiwgMywgMjE3LCAxMzIsIDE0LCAzNSwgCi0gICAgMjIsIDMyLCAzLCAyMzUsIDE4MywgMTQsIDM1LCAyMiwgMzIsIDMsIDIzNCwgMjI3LCAxNCwgMzUsIDIyLCAzMiwgMywgMjMzLCAKLSAgICAxMjIsIDE0LCAzNSwgMjIsIDMyLCAzLCAyMzAsIDE3MiwgMTQsIDM1LCAyMiwgMzIsIDMsIDIyOCwgOTIsIDE0LCAzNSwgMjIsIAotICAgIDMyLCAzLCAyMTMsIDE0NSwgMTQsIDM1LCAyMiwgMzIsIDMsIDIyNywgNjUsIDE0LCAzNSwgMjIsIDMyLCAzLCAyMjUsIDI0MCwgCi0gICAgMTQsIDM1LCAyMiwgMzIsIDMsIDIyMywgMTkwLCAxNCwgMzUsIDIyLCAzMiwgMywgNDAsIDIyMCwgMTAzLCAxNCwgMzUsIDIyLCAKLSAgICAzMiwgMywgMjIwLCAxMDMsIDE0LCAzNSwgMjIsIDMyLCAzLCAyMTcsIDI0OCwgMTQsIDM1LCAyMiwgMzIsIDMsIDIxNSwgCi0gICAgMTI4LCAxNCwgMzUsIDIyLCAzMiwgMywgMjI2LCA5LCAxNCwgMzUsIDIyLCAzMiwgMywgMjUwLCA0NywgMTQsIDM1LCAyMiwgCi0gICAgMzIsIDMsIDIyNSwgNDYsIDE0LCAzNSwgMjIsIDMyLCAzLCAyMjcsIDY3LCAxNCwgMzUsIDIyLCAzMiwgMjI2LCAxMjUsIAotICAgIDI0NywgMTg1LCAxNCwgMzUsIDIyLCAzMiwgMjQ1LCA2NCwgODcsIDE0LCAzNSwgMjIsIDMyLCAyMTcsIDEzMywgODcsIDE0LCAKLSAgICAzNSwgMjIsIDMyLCAyMzQsIDIyOCwgODcsIDE0LCAzNSwgMjIsIDMyLCAyMjYsIDEwLCA4NywgMTQsIDM1LCAyMiwgMzIsIAotICAgIDIyMywgMTkxLCA4NywgMTQsIDM1LCAyMiwgMzIsIDIyNSwgMjQxLCA4NywgMTQsIDIyLCA2LCAyNDcsIDE3OSwgMTQsIDIyLCAKLSAgICAzLCAyNDcsIDE3OSwgMTQsIDIyLCAyMSwgMjEyLCA3OSwgMTQsIDIyLCAyMSwgMTE2LCAxNCwgMjIsIDIxLCAxMDksIDE0LCAKLSAgICAyMiwgMjEsIDE2NiwgMTQsIDIyLCAyMSwgMTYzLCAxNCwgMjIsIDIxLCAxODAsIDE0LCAyMiwgMjEsIDE4OSwgMTQsIDIyLCAKLSAgICAyMSwgMTk4LCAxNCwgMjIsIDIxLCAxOTUsIDE0LCAyMiwgMjEsIDIwMCwgMTQsIDE4NywgMjEsIDIxMiwgNzksIDE0LCAxODcsIAotICAgIDIxLCAxMTYsIDE0LCAxODcsIDIxLCAxMDksIDE0LCAxODcsIDIxLCAxNjYsIDE0LCAxODcsIDIxLCAxNjMsIDE0LCAxODcsIAotICAgIDIxLCAxODAsIDE0LCAxODcsIDIxLCAxODksIDE0LCAxODcsIDIxLCAxOTgsIDE0LCAxODcsIDIxLCAxOTUsIDE0LCAxODcsIAotICAgIDIxLCAyMDAsIDE0LCAzNSwgMjEsIDIxMiwgNzksIDE0LCAzNSwgMjEsIDExNiwgMTQsIDM1LCAyMSwgMTA5LCAxNCwgMzUsIAotICAgIDIxLCAxNjYsIDE0LCAzNSwgMjEsIDE2MywgMTQsIDM1LCAyMSwgMTgwLCAxNCwgMzUsIDIxLCAxODksIDE0LCAzNSwgMjEsIAotICAgIDE5OCwgMTQsIDM1LCAyMSwgMTk1LCAxNCwgMzUsIDIxLCAyMDAsIDE0LCAzNSwgMjIsIDIxLCAyMTIsIDc5LCAxNCwgMzUsIAotICAgIDIyLCAyMSwgMTE2LCAxNCwgMzUsIDIyLCAyMSwgMTA5LCAxNCwgMzUsIDIyLCAyMSwgMTY2LCAxNCwgMzUsIDIyLCAyMSwgCi0gICAgMTYzLCAxNCwgMzUsIDIyLCAyMSwgMTgwLCAxNCwgMzUsIDIyLCAyMSwgMTg5LCAxNCwgMzUsIDIyLCAyMSwgMTk4LCAxNCwgCi0gICAgMzUsIDIyLCAyMSwgMTk1LCAxNCwgMzUsIDIyLCAyMSwgMjAwLCAxNCwgMjMwLCAyMDgsIDIxLCAyMTIsIDc5LCAxNCwgMjMwLCAKLSAgICAyMDgsIDIxLCAxMTYsIDE0LCAyMzAsIDIwOCwgMjEsIDEwOSwgMTQsIDIzMCwgMjA4LCAyMSwgMTY2LCAxNCwgMjMwLCAyMDgsIAotICAgIDIxLCAxNjMsIDE0LCAyMzAsIDIwOCwgMjEsIDE4MCwgMTQsIDIzMCwgMjA4LCAyMSwgMTg5LCAxNCwgMjMwLCAyMDgsIDIxLCAKLSAgICAxOTgsIDE0LCAyMzAsIDIwOCwgMjEsIDE5NSwgMTQsIDIzMCwgMjA4LCAyMSwgMjAwLCAyMzIsIDEwLCA4NSwgMjQ1LCAxNzYsIAotICAgIDIxMywgMjI0LCAyMzIsIDEwLCA4NSwgMjE5LCAyMTUsIDIxMywgMjI0LCAyMzIsIDEwLCA4NSwgMjEzLCAyNTAsIDIxMywgCi0gICAgMjI0LCAyMzIsIDEwLCA4NSwgMjI4LCAxNjcsIDIxMywgMjI0LCAyMzIsIDEwLCA4NSwgMjI0LCA0LCAyNDYsIDUwLCAyMzIsIAotICAgIDEwLCA4NSwgMjQyLCAxMDQsIDI0NiwgNTAsIDIzMiwgMTAsIDg1LCA2NywgMjQ2LCA1MCwgMjMyLCAxMCwgODUsIDEyMiwgCi0gICAgNjUsIDI1MCwgNzcsIDIzMiwgMTAsIDg1LCAxMTcsIDY1LCAyNTAsIDc3LCAyMzIsIDEwLCA4NSwgMTMzLCA2NSwgMjUwLCAKLSAgICA3NywgMjMyLCAxMCwgODUsIDI0MywgMjM3LCA2NSwgMjUwLCA3NywgMjMyLCAxMCwgODUsIDI0NCwgNTAsIDY1LCAyNTAsIAotICAgIDc3LCAyMzIsIDEwLCA4NSwgMjIwLCA1MywgNjUsIDI1MCwgNzcsIDIzMiwgMTAsIDg1LCAyMjEsIDQzLCA2NSwgMjUwLCA3NywgCi0gICAgMjMyLCAxMCwgODUsIDI0NSwgMTUwLCA2NSwgMjUwLCA3NywgMjMyLCAxMCwgODUsIDIyOSwgMzEsIDY1LCAyNTAsIDc3LCAKLSAgICAyMzIsIDEwLCA4NSwgMTIyLCA2NSwgMjUyLCA3MiwgMjMyLCAxMCwgODUsIDExNywgNjUsIDI1MiwgNzIsIDIzMiwgMTAsIAotICAgIDg1LCAxMzMsIDY1LCAyNTIsIDcyLCAyMzIsIDEwLCA4NSwgMjQzLCAyMzcsIDY1LCAyNTIsIDcyLCAyMzIsIDEwLCA4NSwgCi0gICAgMjQ0LCA1MCwgNjUsIDI1MiwgNzIsIDIzMiwgMTAsIDg1LCAyMjAsIDUzLCA2NSwgMjUyLCA3MiwgMjMyLCAxMCwgODUsIAotICAgIDIyMSwgNDMsIDY1LCAyNTIsIDcyLCAyMzIsIDEwLCA4NSwgMjQ1LCAxNTAsIDY1LCAyNTIsIDcyLCAyMzIsIDEwLCA4NSwgCi0gICAgMjI5LCAzMSwgNjUsIDI1MiwgNzIsIDIzMiwgMTAsIDg1LCAxMjIsIDY1LCAyNDksIDIyNywgMjMyLCAxMCwgODUsIDExNywgCi0gICAgNjUsIDI0OSwgMjI3LCAyMzIsIDEwLCA4NSwgMTMzLCA2NSwgMjQ5LCAyMjcsIDIzMiwgMTAsIDg1LCAyNDMsIDIzNywgNjUsIAotICAgIDI0OSwgMjI3LCAyMzIsIDEwLCA4NSwgMjQ0LCA1MCwgNjUsIDI0OSwgMjI3LCAyMzIsIDEwLCA4NSwgMjIwLCA1MywgNjUsIAotICAgIDI0OSwgMjI3LCAyMzIsIDEwLCA4NSwgMjIxLCA0MywgNjUsIDI0OSwgMjI3LCAyMzIsIDEwLCA4NSwgMjQ1LCAxNTAsIDY1LCAKLSAgICAyNDksIDIyNywgMjMyLCAxMCwgODUsIDIyOSwgMzEsIDY1LCAyNDksIDIyNywgMjMyLCAxMCwgODUsIDIyNSwgMTU5LCAyMzIsIAotICAgIDEwLCA4NSwgMjI3LCAyMiwgMjMyLCAxMCwgODUsIDI1MiwgNzMsIDIzMiwgMTAsIDg1LCAyNTAsIDcsIDIzMiwgMTAsIDg1LCAKLSAgICAyMTksIDE3MSwgMjMyLCAxMCwgODUsIDIxOCwgMjQwLCAyMzIsIDEwLCA4NSwgMjUzLCA5NSwgMjMyLCAxMCwgODUsIDIxMywgCi0gICAgMjE3LCAyMzIsIDEwLCA4NSwgMjM1LCA2NSwgMjMyLCAxMCwgODUsIDI1MiwgMTAxLCAxMjcsIDg1LCAxOTksIDI1MiwgMTAxLCAKLSAgICAxMjcsIDg1LCAyNDEsIDMwLCAxMjcsIDg1LCAyNDEsIDI5LCAxMjcsIDg1LCAyNDEsIDI4LCAxMjcsIDg1LCAyNDEsIDI3LCAKLSAgICAxMjcsIDg1LCAyNDEsIDI2LCAxMjcsIDg1LCAyNDEsIDI1LCAxMjcsIDg1LCAyNDEsIDI0LCAxMjcsIDg1LCAyNDEsIDIzLCAKLSAgICAxMjcsIDg1LCAyNDEsIDIyLCAxMjcsIDg1LCAyNDEsIDIxLCAxMjcsIDg1LCAyNDEsIDIwLCAxMjcsIDg1LCAyNDEsIDE5LCAKLSAgICAxMjcsIDg1LCAyNDEsIDE4LCAxMjcsIDg1LCAyNDEsIDE3LCAxMjcsIDg1LCAyNDEsIDE2LCAxMjcsIDg1LCAyNDEsIDE1LCAKLSAgICAxMjcsIDg1LCAyNDEsIDE0LCAxMjcsIDg1LCAyNDEsIDEzLCAxMjcsIDg1LCAyNDEsIDEyLCAxMjcsIDg1LCAyNDEsIDExLCAKLSAgICAxMjcsIDg1LCAyNDEsIDEwLCAxMjcsIDg1LCAyNDEsIDksIDEyNywgODUsIDI0MSwgOCwgMTI3LCA4NSwgMjQxLCA3LCAxMjcsIAotICAgIDg1LCAyNDEsIDYsIDEyNywgODUsIDI0MSwgNSwgMTI3LCA4NSwgMjQxLCA0LCAxMjcsIDg1LCAyNDEsIDMsIDEyNywgODUsIAotICAgIDI0MSwgMiwgMTI3LCA4NSwgMjQxLCAxLCAxMjcsIDg1LCAyNDEsIDAsIDEyNywgODUsIDI0MCwgMjU1LCAxMjcsIDg1LCAKLSAgICAyNDAsIDI1NCwgMTI3LCA4NSwgMjQwLCAyNTMsIDEyNywgODUsIDI0MCwgMjUyLCAxMjcsIDg1LCAyNDAsIDI1MSwgMTI3LCAKLSAgICA4NSwgMjQwLCAyNTAsIDEyNywgODUsIDI0MCwgMjQ5LCAxMjcsIDg1LCAyNDAsIDI0OCwgMTI3LCA4NSwgMjQwLCAyNDcsIAotICAgIDEyNywgODUsIDI0MCwgMjQ2LCAxMjcsIDg1LCAyNDAsIDI0NSwgMTI3LCA4NSwgMjQwLCAyNDQsIDEyNywgODUsIDI0MCwgCi0gICAgMjQzLCAxMjcsIDg1LCAyNDAsIDI0MiwgMTI3LCA4NSwgMjQwLCAyNDEsIDEyNywgODUsIDI0MCwgMjQwLCAxMjcsIDg1LCAKLSAgICAyNDAsIDIzOSwgMTI3LCA4NSwgMjQwLCAyMzgsIDEyNywgODUsIDcxLCAyNTIsIDEwMSwgMTI3LCA4NSwgMjE0LCAyMTUsIAotICAgIDEyNywgODUsIDIxNCwgMjE0LCAxMjcsIDg1LCAyMTQsIDIxMywgMTI3LCA4NSwgMjE0LCAyMTIsIDEyNywgODUsIDIxNCwgCi0gICAgMjExLCAxMjcsIDg1LCAyMTQsIDIxMCwgMTI3LCA4NSwgMjE0LCAyMDksIDEyNywgODUsIDIxNCwgMjA4LCAxMjcsIDg1LCAKLSAgICAyMTQsIDIwNywgMTI3LCA4NSwgMjE0LCAyMDYsIDEyNywgODUsIDIxNCwgMjA1LCAxMjcsIDg1LCAyMTQsIDIwNCwgMTI3LCAKLSAgICA4NSwgMjE0LCAyMDMsIDEyNywgODUsIDIxNCwgMjAyLCAxMjcsIDg1LCAyMTQsIDIwMSwgMTI3LCA4NSwgMjE0LCAyMDAsIAotICAgIDEyNywgODUsIDIxNCwgMTk5LCAxMjcsIDg1LCAyMTQsIDE5OCwgMTI3LCA4NSwgMjE0LCAxOTcsIDEyNywgODUsIDIxNCwgCi0gICAgMTk2LCAxMjcsIDg1LCAyMTQsIDE5NSwgMTI3LCA4NSwgMjE0LCAxOTQsIDEyNywgODUsIDIxNCwgMTkzLCAxMjcsIDg1LCAKLSAgICAyMTQsIDE5MiwgMTI3LCA4NSwgMjE0LCAxOTEsIDEyNywgODUsIDIxNCwgMTkwLCAxMjcsIDg1LCAyMTQsIDE4OSwgMTI3LCAKLSAgICA4NSwgMjE0LCAxODgsIDEyNywgODUsIDIxNCwgMTg3LCAxMjcsIDg1LCAyMTQsIDE4NiwgMTI3LCA4NSwgMjE0LCAxODUsIAotICAgIDEyNywgODUsIDIxNCwgMTg0LCAxMjcsIDg1LCAyMTQsIDE4MywgMTI3LCA4NSwgMjE0LCAxODIsIDEyNywgODUsIDIxNCwgCi0gICAgMTgxLCAxMjcsIDg1LCAyMTQsIDE4MCwgMTI3LCA4NSwgMjE0LCAxNzksIDEyNywgODUsIDIxNCwgMTc4LCAxMjcsIDg1LCAKLSAgICAyMTQsIDE3NywgMTI3LCA4NSwgMjE0LCAxNzYsIDEyNywgODUsIDIxNCwgMTc1LCAxMjcsIDg1LCAyMTQsIDE3NCwgMTI3LCAKLSAgICA4NSwgMjE0LCAxNzMsIDEyNywgODUsIDIxNCwgMTcyLCAxMjcsIDg1LCAyMTQsIDE3MSwgMTI3LCA4NSwgMjE0LCAxNzAsIAotICAgIDEyNywgODUsIDIxNCwgMTY5LCAxMjcsIDg1LCAyMTQsIDE2OCwgMTI3LCA4NSwgMjE0LCAxNjcsIDIyNSwgMTY1LCAyNTAsIAotICAgIDE3NSwgMjUyLCAxMDEsIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjU0LCAxNjksIDY1LCAyMTksIDIwMywgMjI1LCAxNjUsIDI1MCwgCi0gICAgMTc1LCAxMTcsIDY1LCAyMTksIDIwMywgMjI1LCAxNjUsIDI1MCwgMTc1LCAxMzMsIDY1LCAyMTksIDIwMywgMjI1LCAxNjUsIAotICAgIDI1MCwgMTc1LCAyNDMsIDIzNywgNjUsIDIxOSwgMjAzLCAyMjUsIDE2NSwgMjUwLCAxNzUsIDI0NCwgNTAsIDY1LCAyMTksIAotICAgIDIwMywgMjI1LCAxNjUsIDI1MCwgMTc1LCAyMjAsIDUzLCA2NSwgMjE5LCAyMDMsIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjIxLCAKLSAgICA0MywgNjUsIDIxOSwgMjAzLCAyMjUsIDE2NSwgMjUwLCAxNzUsIDI0NSwgMTUwLCA2NSwgMjE5LCAyMDMsIDIyNSwgMTY1LCAKLSAgICAyNTAsIDE3NSwgMjI5LCAzMSwgNjUsIDIxOSwgMjAzLCAyMjUsIDE2NSwgMjUwLCAxNzUsIDIxNywgMjAxLCA2NSwgMjE5LCAKLSAgICAyMDMsIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjM1LCAxMzcsIDY1LCAyMTksIDIwMywgMjI1LCAxNjUsIDI1MCwgMTc1LCAyMzQsIAotICAgIDQwLCA2NSwgMjE5LCAyMDMsIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjI0LCAxNjAsIDY1LCAyMTksIDIwMywgMjI1LCAxNjUsIAotICAgIDI1MCwgMTc1LCAyMzQsIDg4LCA2NSwgMjE5LCAyMDMsIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjU0LCAxNjksIDY1LCAyNDEsIAotICAgIDIwOSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAxMTcsIDY1LCAyNDEsIDIwOSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAxMzMsIDY1LCAKLSAgICAyNDEsIDIwOSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyNDMsIDIzNywgNjUsIDI0MSwgMjA5LCAyMjUsIDE2NSwgMjUwLCAxNzUsIAotICAgIDI0NCwgNTAsIDY1LCAyNDEsIDIwOSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyMjAsIDUzLCA2NSwgMjQxLCAyMDksIDIyNSwgCi0gICAgMTY1LCAyNTAsIDE3NSwgMjIxLCA0MywgNjUsIDI0MSwgMjA5LCAyMjUsIDE2NSwgMjUwLCAxNzUsIDI0NSwgMTUwLCA2NSwgCi0gICAgMjQxLCAyMDksIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjI5LCAzMSwgNjUsIDI0MSwgMjA5LCAyMjUsIDE2NSwgMjUwLCAxNzUsIAotICAgIDIxNywgMjAxLCA2NSwgMjQxLCAyMDksIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjM1LCAxMzcsIDY1LCAyNDEsIDIwOSwgMjI1LCAKLSAgICAxNjUsIDI1MCwgMTc1LCAyMzQsIDQwLCA2NSwgMjQxLCAyMDksIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjI0LCAxNjAsIDY1LCAKLSAgICAyNDEsIDIwOSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyMzQsIDg4LCA2NSwgMjQxLCAyMDksIDIyNSwgMTY1LCAyNTAsIDE3NSwgCi0gICAgMjU0LCAxNjksIDY1LCAyNDcsIDE5OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAxMTcsIDY1LCAyNDcsIDE5OSwgMjI1LCAxNjUsIAotICAgIDI1MCwgMTc1LCAxMzMsIDY1LCAyNDcsIDE5OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyNDMsIDIzNywgNjUsIDI0NywgMTk5LCAKLSAgICAyMjUsIDE2NSwgMjUwLCAxNzUsIDI0NCwgNTAsIDY1LCAyNDcsIDE5OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyMjAsIDUzLCAKLSAgICA2NSwgMjQ3LCAxOTksIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjIxLCA0MywgNjUsIDI0NywgMTk5LCAyMjUsIDE2NSwgMjUwLCAKLSAgICAxNzUsIDI0NSwgMTUwLCA2NSwgMjQ3LCAxOTksIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjI5LCAzMSwgNjUsIDI0NywgMTk5LCAKLSAgICAyMjUsIDE2NSwgMjUwLCAxNzUsIDIxNywgMjAxLCA2NSwgMjQ3LCAxOTksIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjM1LCAxMzcsIAotICAgIDY1LCAyNDcsIDE5OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyMzQsIDQwLCA2NSwgMjQ3LCAxOTksIDIyNSwgMTY1LCAyNTAsIAotICAgIDE3NSwgMjI0LCAxNjAsIDY1LCAyNDcsIDE5OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyMzQsIDg4LCA2NSwgMjQ3LCAxOTksIAotICAgIDIyNSwgMTY1LCAyNTAsIDE3NSwgODMsIDIzNSwgNjUsIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjU0LCAxNjksIDY1LCAyNDksIAotICAgIDE3OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAxMTcsIDY1LCAyNDksIDE3OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAxMzMsIDY1LCAKLSAgICAyNDksIDE3OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyNDMsIDIzNywgNjUsIDI0OSwgMTc5LCAyMjUsIDE2NSwgMjUwLCAxNzUsIAotICAgIDI0NCwgNTAsIDY1LCAyNDksIDE3OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyMjAsIDUzLCA2NSwgMjQ5LCAxNzksIDIyNSwgCi0gICAgMTY1LCAyNTAsIDE3NSwgMjIxLCA0MywgNjUsIDI0OSwgMTc5LCAyMjUsIDE2NSwgMjUwLCAxNzUsIDI0NSwgMTUwLCA2NSwgCi0gICAgMjQ5LCAxNzksIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjI5LCAzMSwgNjUsIDI0OSwgMTc5LCAyMjUsIDE2NSwgMjUwLCAxNzUsIAotICAgIDIxNywgMjAxLCA2NSwgMjQ5LCAxNzksIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjM1LCAxMzcsIDY1LCAyNDksIDE3OSwgMjI1LCAKLSAgICAxNjUsIDI1MCwgMTc1LCAyMzQsIDQwLCA2NSwgMjQ5LCAxNzksIDIyNSwgMTY1LCAyNTAsIDE3NSwgMjI0LCAxNjAsIDY1LCAKLSAgICAyNDksIDE3OSwgMjI1LCAxNjUsIDI1MCwgMTc1LCAyMzQsIDg4LCA2NSwgMjQ5LCAxNzksIDIyNSwgMTY1LCAyNTAsIDE3NSwgCi0gICAgNjcsIDIzNSwgNjUsIDIxLCAyMTIsIDgwLCAyNDMsIDIwMCwgMjE5LCA2OSwgMjEsIDIxMiwgODAsIDI0OSwgMTU3LCAyMSwgCi0gICAgMTIyLCAyNDksIDE1NywgMjEsIDExNywgMjQ5LCAxNTcsIDIxLCAxMzMsIDI0OSwgMTU3LCAyMSwgMjQzLCAyMzcsIDI0OSwgCi0gICAgMTU3LCAyMSwgMjQ0LCA1MCwgMjQ5LCAxNTcsIDIxLCAyMjAsIDUzLCAyNDksIDE1NywgMjEsIDIyMSwgNDMsIDI0OSwgMTU3LCAKLSAgICAyMSwgMjQ1LCAxNTAsIDI0OSwgMTU3LCAyMSwgMjI5LCAzMSwgMjQ5LCAxNTcsIDg2LCA3LCA2LCAxLCA2MSwgODYsIDcsIDYsIAotICAgIDEsIDI1MywgNzQsIDg2LCA3LCA2LCAxLCAyNTAsIDI1MiwgODYsIDcsIDYsIDEsIDI0OSwgMywgODYsIDcsIDYsIDEsIDc0LCAKLSAgICA4NiwgNywgNiwgMSwgMjQ0LCAyMzAsIDg2LCA3LCA2LCAxLCAyNDMsIDE3NywgODYsIDcsIDYsIDEsIDI0MiwgNDEsIDg2LCAKLSAgICA3LCA2LCAxLCA3MiwgODYsIDcsIDYsIDEsIDIzNSwgMTQyLCA4NiwgNywgNiwgMSwgMjM1LCAyNywgODYsIDcsIDYsIDEsIAotICAgIDE1MCwgODYsIDcsIDYsIDEsIDE4MywgODYsIDcsIDYsIDEsIDIwNCwgODYsIDcsIDYsIDEsIDc1LCA4NiwgNywgNiwgMSwgCi0gICAgMjI2LCAyMjksIDg2LCA3LCA2LCAxLCAyMjQsIDI0MCwgODYsIDcsIDYsIDEsIDE0OSwgODYsIDcsIDYsIDEsIDE5NywgODYsIAotICAgIDcsIDYsIDEsIDIxOCwgOTksIDg2LCA3LCA2LCAxLCA2OSwgODYsIDcsIDYsIDEsIDIxNSwgNzksIDg2LCA3LCA2LCAxLCAKLSAgICAyMTQsIDgyLCA4NiwgNywgNiwgMSwgMjEzLCAxNjYsIDg2LCA3LCA2LCAxLCAyMTMsIDEwNSwgODYsIDcsIDYsIDEsIDIxMiwgCi0gICAgMTUyLCAyMTYsIDIxOSwgMjIwLCAyMzMsIDI1MSwgODQsIDcsIDYsIDEsIDE5NywgMzYsIDMyLCA3LCA2LCAxLCAyNTAsIAotICAgIDI1MiwgMzYsIDMyLCA3LCA2LCAxLCAxNDksIDM2LCAyNTAsIDEyNSwgMzYsIDIxMywgMTY4LCA5MSwgNywgNiwgMSwgNjEsIAotICAgIDkxLCA3LCA2LCAxLCAyNTMsIDc0LCA5MSwgNywgNiwgMSwgMjUwLCAyNTIsIDkxLCA3LCA2LCAxLCAyNDksIDMsIDkxLCA3LCAKLSAgICA2LCAxLCA3NCwgOTEsIDcsIDYsIDEsIDI0NCwgMjMwLCA5MSwgNywgNiwgMSwgMjQzLCAxNzcsIDkxLCA3LCA2LCAxLCAyNDIsIAotICAgIDQxLCA5MSwgNywgNiwgMSwgNzIsIDkxLCA3LCA2LCAxLCAyMzUsIDE0MiwgOTEsIDcsIDYsIDEsIDIzNSwgMjcsIDkxLCA3LCAKLSAgICA2LCAxLCAxNTAsIDkxLCA3LCA2LCAxLCAxODMsIDkxLCA3LCA2LCAxLCAyMDQsIDkxLCA3LCA2LCAxLCA3NSwgOTEsIDcsIDYsIAotICAgIDEsIDIyNiwgMjI5LCA5MSwgNywgNiwgMSwgMjI0LCAyNDAsIDkxLCA3LCA2LCAxLCAxNDksIDkxLCA3LCA2LCAxLCAxOTcsIAotICAgIDkxLCA3LCA2LCAxLCAyMTgsIDk5LCA5MSwgNywgNiwgMSwgNjksIDkxLCA3LCA2LCAxLCAyMTUsIDc5LCA5MSwgNywgNiwgMSwgCi0gICAgMjE0LCA4MiwgOTEsIDcsIDYsIDEsIDIxMywgMTY2LCA5MSwgNywgNiwgMSwgMjEzLCAxMDUsIDkxLCA3LCA2LCAxLCAyMTIsIAotICAgIDE1MiwgOTEsIDI0MCwgMTkzLCA5MSwgMjMwLCAxMjAsIDkxLCAyMjIsIDEwMiwgOTEsIDIxOSwgMTU4LCA5MSwgMjI1LCA5OCwgCi0gICAgOTEsIDIxNCwgNywgMTQ2LCAzNiwgNywgNiwgMSwgNjEsIDE0NiwgMzYsIDcsIDYsIDEsIDI1MywgNzQsIDE0NiwgMzYsIDcsIAotICAgIDYsIDEsIDI1MCwgMjUyLCAxNDYsIDM2LCA3LCA2LCAxLCAyNDksIDMsIDE0NiwgMzYsIDcsIDYsIDEsIDc0LCAxNDYsIDM2LCAKLSAgICA3LCA2LCAxLCAyNDQsIDIzMCwgMTQ2LCAzNiwgNywgNiwgMSwgMjQzLCAxNzcsIDE0NiwgMzYsIDcsIDYsIDEsIDI0MiwgNDEsIAotICAgIDE0NiwgMzYsIDcsIDYsIDEsIDcyLCAxNDYsIDM2LCA3LCA2LCAxLCAyMzUsIDE0MiwgMTQ2LCAzNiwgNywgNiwgMSwgMjM1LCAKLSAgICAyNywgMTQ2LCAzNiwgNywgNiwgMSwgMTUwLCAxNDYsIDM2LCA3LCA2LCAxLCAxODMsIDE0NiwgMzYsIDcsIDYsIDEsIDIwNCwgCi0gICAgMTQ2LCAzNiwgNywgNiwgMSwgNzUsIDE0NiwgMzYsIDcsIDYsIDEsIDIyNiwgMjI5LCAxNDYsIDM2LCA3LCA2LCAxLCAyMjQsIAotICAgIDI0MCwgMTQ2LCAzNiwgNywgNiwgMSwgMTQ5LCAxNDYsIDM2LCA3LCA2LCAxLCAxOTcsIDE0NiwgMzYsIDcsIDYsIDEsIDIxOCwgCi0gICAgOTksIDE0NiwgMzYsIDcsIDYsIDEsIDY5LCAxNDYsIDM2LCA3LCA2LCAxLCAyMTUsIDc5LCAxNDYsIDM2LCA3LCA2LCAxLCAKLSAgICAyMTQsIDgyLCAxNDYsIDM2LCA3LCA2LCAxLCAyMTMsIDE2NiwgMTQ2LCAzNiwgNywgNiwgMSwgMjEzLCAxMDUsIDE0NiwgMzYsIAotICAgIDcsIDYsIDEsIDIxMiwgMTUyLCAxNDYsIDkxLCA3LCA2LCAxLCA2MSwgMTQ2LCA5MSwgNywgNiwgMSwgMjUzLCA3NCwgMTQ2LCAKLSAgICA5MSwgNywgNiwgMSwgMjUwLCAyNTIsIDE0NiwgOTEsIDcsIDYsIDEsIDI0OSwgMywgMTQ2LCA5MSwgNywgNiwgMSwgNzQsIAotICAgIDE0NiwgOTEsIDcsIDYsIDEsIDI0NCwgMjMwLCAxNDYsIDkxLCA3LCA2LCAxLCAyNDMsIDE3NywgMTQ2LCA5MSwgNywgNiwgMSwgCi0gICAgMjQyLCA0MSwgMTQ2LCA5MSwgNywgNiwgMSwgNzIsIDE0NiwgOTEsIDcsIDYsIDEsIDIzNSwgMTQyLCAxNDYsIDkxLCA3LCA2LCAKLSAgICAxLCAyMzUsIDI3LCAxNDYsIDkxLCA3LCA2LCAxLCAxNTAsIDE0NiwgOTEsIDcsIDYsIDEsIDE4MywgMTQ2LCA5MSwgNywgNiwgCi0gICAgMSwgMjA0LCAxNDYsIDkxLCA3LCA2LCAxLCA3NSwgMTQ2LCA5MSwgNywgNiwgMSwgMjI2LCAyMjksIDE0NiwgOTEsIDcsIDYsIAotICAgIDEsIDIyNCwgMjQwLCAxNDYsIDkxLCA3LCA2LCAxLCAxNDksIDE0NiwgOTEsIDcsIDYsIDEsIDE5NywgMTQ2LCA5MSwgNywgNiwgCi0gICAgMSwgMjE4LCA5OSwgMTQ2LCA5MSwgNywgNiwgMSwgNjksIDE0NiwgOTEsIDcsIDYsIDEsIDIxNSwgNzksIDE0NiwgOTEsIDcsIAotICAgIDYsIDEsIDIxNCwgODIsIDE0NiwgOTEsIDcsIDYsIDEsIDIxMywgMTY2LCAxNDYsIDkxLCA3LCA2LCAxLCAyMTMsIDEwNSwgCi0gICAgMTQ2LCA5MSwgNywgNiwgMSwgMjEyLCAxNTIsIDI0OSwgNjgsIDE0NiwgOTEsIDcsIDYsIDEsIDIyNiwgMjI5LCAxNDYsIDkxLCAKLSAgICAyNDAsIDEwNiwgMTQ2LCA5MSwgMTkzLCAxNDYsIDkxLCAyMjIsIDIwMiwgMTQ2LCA5MSwgMjU0LCAxODUsIDE0NiwgOTEsIAotICAgIDIxNCwgNywgNDEsIDI0NywgMTE2LCA5MSwgMjQ5LCAyMTYsIDkxLCAyNDksIDEwOSwgOTEsIDI0MywgMjIyLCA5MSwgMjQwLCAKLSAgICA5OCwgOTEsIDIyOSwgMTY4LCA5MSwgMjI5LCAxNjEsIDkxLCAyMjcsIDgwLCA5MSwgMjE5LCAyMjIsIDkxLCAxMTQsIDIsIAotICAgIDI0NCwgMjU0LCA3NywgOTEsIDIxNCwgMTAwLCAyMjMsIDI1MywgMjM1LCAyMzYsIDE2LCAxLCA2MSwgMjIzLCAyNTMsIDIzNSwgCi0gICAgMjM2LCAxNiwgMSwgMjUzLCA3NCwgMjIzLCAyNTMsIDIzNSwgMjM2LCAxNiwgMSwgMjUwLCAyNTIsIDIyMywgMjUzLCAyMzUsIAotICAgIDIzNiwgMTYsIDEsIDI0OSwgMywgMjIzLCAyNTMsIDIzNSwgMjM2LCAxNiwgMSwgNzQsIDIyMywgMjUzLCAyMzUsIDIzNiwgCi0gICAgMTYsIDEsIDI0NCwgMjMwLCAyMjMsIDI1MywgMjM1LCAyMzYsIDE2LCAxLCAyNDMsIDE3NywgMjIzLCAyNTMsIDIzNSwgMjM2LCAKLSAgICAxNiwgMSwgMjQyLCA0MSwgMjIzLCAyNTMsIDIzNSwgMjM2LCAxNiwgMSwgNzIsIDIyMywgMjUzLCAyMzUsIDIzNiwgMTYsIDEsIAotICAgIDIzNSwgMTQyLCAyMjMsIDI1MywgMjM1LCAyMzYsIDE2LCAxLCAyMzUsIDI3LCAyMjMsIDI1MywgMjM1LCAyMzYsIDE2LCAxLCAKLSAgICAxNTAsIDIyMywgMjUzLCAyMzUsIDIzNiwgMTYsIDEsIDE4MywgMjIzLCAyNTMsIDIzNSwgMjM2LCAxNiwgMSwgMjA0LCAyMjMsIAotICAgIDI1MywgMjM1LCAyMzYsIDE2LCAxLCA3NSwgMjIzLCAyNTMsIDIzNSwgMjM2LCAxNiwgMSwgMjI2LCAyMjksIDIyMywgMjUzLCAKLSAgICAyMzUsIDIzNiwgMTYsIDEsIDIyNCwgMjQwLCAyMjMsIDI1MywgMjM1LCAyMzYsIDE2LCAxLCAxNDksIDIyMywgMjUzLCAyMzUsIAotICAgIDIzNiwgMTYsIDEsIDE5NywgMjIzLCAyNTMsIDIzNSwgMjM2LCAxNiwgMSwgMjE4LCA5OSwgMjIzLCAyNTMsIDIzNSwgMjM2LCAKLSAgICAxNiwgMSwgNjksIDIyMywgMjUzLCAyMzUsIDIzNiwgMTYsIDEsIDIxNSwgNzksIDIyMywgMjUzLCAyMzUsIDIzNiwgMTYsIDEsIAotICAgIDIxNCwgODIsIDIyMywgMjUzLCAyMzUsIDIzNiwgMTYsIDEsIDIxMywgMTY2LCAyMjMsIDI1MywgMjM1LCAyMzYsIDE2LCAxLCAKLSAgICAyMTMsIDEwNSwgMjIzLCAyNTMsIDIzNSwgMjM2LCAxNiwgMSwgMjEyLCAxNTIsIDQxLCAxNDIsIDI0MSwgNDksIDkxLCA1NiwgCi0gICAgMjM0LCAyNywgOTEsIDU2LCAyMjIsIDIwMiwgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDQzLCA5MSwgOSwgMjE1LCAxNDgsIAotICAgIDIzOCwgNDcsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCA1NSwgOTEsIDU2LCAyNDgsIDQxLCA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgCi0gICAgNjIsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCA0OSwgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDIxLCA5MSwgOSwgMjE1LCAxNDgsIAotICAgIDIzOCwgNDgsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCA2MSwgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDM1LCA5MSwgOSwgMjE1LCAKLSAgICAxNDgsIDIzOCwgMjgsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCAzNywgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDU4LCA5MSwgOSwgCi0gICAgMjE1LCAxNDgsIDIzOCwgNDQsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCA2MCwgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDM2LCAKLSAgICA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgNTksIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCAyMiwgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIAotICAgIDI3LCA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgMjAsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCA1MCwgOTEsIDksIDIxNSwgMTQ4LCAKLSAgICAyMzgsIDUyLCA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgMzAsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCA0MSwgOTEsIDksIDIxNSwgCi0gICAgMTQ4LCAyMzgsIDM5LCA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgNjUsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCA2NCwgOTEsIDksIAotICAgIDIxNSwgMTQ4LCAyMzgsIDE4LCA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgNDUsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCA2MywgCi0gICAgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDU0LCA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgNDAsIDkxLCA5LCAyMTUsIDE0OCwgMjM4LCAKLSAgICAxOSwgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDQyLCA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgMjQsIDkxLCA5LCAyMTUsIDE0OCwgCi0gICAgMjM4LCAyMywgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDUzLCA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgMzEsIDkxLCA5LCAyMTUsIAotICAgIDE0OCwgMjM4LCAzMywgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDM0LCA5MSwgOSwgMjE1LCAxNDgsIDIzOCwgMjYsIDkxLCA5LCAKLSAgICAyMTUsIDE0OCwgMjM4LCA1NywgOTEsIDksIDIxNSwgMTQ4LCAyMzgsIDUxLCAyMTYsIDIxOSwgMjIwLCAyMzMsIDI1MSwgODQsIAotICAgIDksIDIxNSwgMTQ4LCAyMzgsIDMyLCAyMTYsIDIxOSwgMjIwLCAyMzMsIDI1MSwgODQsIDksIDIxNSwgMTQ4LCAyMzgsIDY0LCAKLSAgICAyMTYsIDIxOSwgMjIwLCAyMzMsIDI1MSwgODQsIDksIDIxNSwgMTQ4LCAyMzgsIDYyLCAyMTYsIDIxOSwgMjIwLCAyMzMsIAotICAgIDI1MSwgODQsIDksIDIxNSwgMTQ4LCAyMzgsIDQ2LCAyMTYsIDIxOSwgMjIwLCAyMzMsIDI1MSwgODQsIDksIDIxNSwgMTQ4LCAKLSAgICAyMzgsIDI5LCAyMTYsIDIxOSwgMjIwLCAyMzMsIDI1MSwgODQsIDksIDIxNSwgMTQ4LCAyMzgsIDQyLCAyMTYsIDIxOSwgCi0gICAgMjIwLCAyMzMsIDI1MSwgODQsIDksIDIxNSwgMTQ4LCAyMzgsIDI1LCAyMTYsIDIxOSwgMjIwLCAyMzMsIDI1MSwgODQsIDksIAotICAgIDIxNSwgMTQ4LCAyMzgsIDU2LCAyMTYsIDIxOSwgMjIwLCAyMzMsIDI1MSwgODQsIDksIDIxNSwgMTQ4LCAyMzgsIDM4LCAzNiwgCi0gICAgMTQzLCAyNTQsIDE1MCwgMzYsIDE0MywgMjU0LCAxNzIsIDI0OSwgMTQsIDI0NCwgMTEsIDI0OSwgMTkzLCAyMTUsIDE2NCwgCi0gICAgMjI5LCA0NCwgMiwgMjE5LCA5MiwgMjE4LCAyMzMsIDExMCwgMjMwLCAxODQsIDIxOCwgMjMyLCAyNDksIDIxOSwgMjUzLCAKLSAgICAxMjMsIDI0NiwgOSwgMjE4LCAyMzEsIDExMCwgMjUxLCA0NywgMjI0LCA0OSwgMjUxLCA2OCwgMjUzLCAxMjMsIDIyOSwgNDMsIAotICAgIDIxNCwgMjUsIDIxNCwgMTksIDIxNCwgMTEyLCAyMzEsIDgsIDIxNCwgOSwgMjQ1LCAxODAsIDI0MiwgMTU3LCAyNDUsIDEyLCAKLSAgICAyNDUsIDE4MCwgMjQyLCAxNTcsIDI1NCwgMzcsIDI0NSwgMTgwLCAyNDIsIDE1NywgMjUzLCAxNDAsIDI0MiwgMTU3LCAyLCAKLSAgICAyMzEsIDExNSwgMTU2LCAyMzAsIDE5OSwgODcsIDIxNCwgMTEsIDI0OSwgNzcsIDIzMCwgMTk5LCA4NywgMjQ0LCA2MSwgCi0gICAgMjI0LCAxNjcsIDIzMCwgMTk5LCA4NywgMjE0LCAxMSwgMjQyLCAxODYsIDIzMCwgMTk5LCA4NywgMjQzLCAyMDAsIDIzMCwgCi0gICAgMTk5LCA4NywgMjE0LCAzNiwgMjQyLCAxODYsIDIzMCwgMTk5LCA4NywgMjMzLCAxMDMsIDIyNCwgMTY3LCAyMzAsIDE5OSwgCi0gICAgODcsIDIxNCwgMzYsIDI0OSwgNzcsIDIzMCwgMTk5LCA4NywgMjQ5LCA3NywgMjMwLCAxOTgsIDE1NiwgMjMwLCAxOTksIDIsIAotICAgIDI0NCwgMTU4LCAyNDQsIDYxLCAyMjQsIDE2NywgMjMwLCAxOTksIDIsIDI0NCwgMTU4LCAyMzMsIDEwMywgMjI0LCAxNjcsIAotICAgIDIzMCwgMTk5LCAyLCAyNDQsIDE1OCwgMjQzLCAyMDAsIDIzMCwgMTk5LCAyLCAyNDQsIDE1OCwgMjE4LCAyMzksIDIsIDI0NCwgCi0gICAgMTU4LCAyNDIsIDE1NSwgMjE5LCA5NSwgMjIwLCAxNzksIDIxOSwgOTUsIDI1MCwgNTMsIDIyMiwgODcsIDI0NSwgNiwgMjE2LCAKLSAgICAxOTMsIDI0OCwgMzUsIDIxNiwgMTkzLCAyMjYsIDE4NiwgMjE2LCAxOTMsIDI1MCwgMjEzLCAyMTYsIDczLCAyNTAsIDU1LCAKLSAgICAyNTEsIDEzMywgMjIzLCA5MywgMjQxLCAxNjQsIDIxOCwgMjM2LCAyNTEsIDEzMywgMjQ1LCAxODQsIDY1LCAyMzIsIDAsIAotICAgIDI0NSwgMTg0LCA2NSwgMjIzLCAxODQsIDI0MSwgMTg4LCAyNDMsIDIzNywgMjMzLCA3OCwgMjQ5LCAxODMsIDIzMSwgMjMzLCAKLSAgICAyMzMsIDc3LCAyNDQsIDE0NCwgMjMzLCA3NywgMjMzLCA3OCwgMjQ0LCAxNiwgMjM1LCAyNTIsIDIxMywgMjI0LCAyMzAsIAotICAgIDEyOCwgMjE2LCAyNDUsIDI1MywgMTA3LCAyNDIsIDExOSwgMjMxLCAxMzEsIDIxNCwgMjMsIDIxOCwgOCwgMjMzLCA1MCwgCi0gICAgMjUyLCA2OCwgMjI1LCAxOTQsIDIyNCwgNCwgMjUzLCAyMjMsIDI0MiwgMTA0LCAyNTMsIDIyMywgMjI2LCA5MiwgMjI2LCAKLSAgICA5MywgMjUwLCA1NiwgMjE5LCA1NCwgMjQyLCA2LCAyMjAsIDE4LCA2NSwgMjI1LCAxNzYsIDIzMSwgMTUyLCAyMjcsIDYzLCAKLSAgICAyNTEsIDExOSwgMjI1LCAxMDksIDIzMywgNjAsIDIyMywgMTg1LCAyNDksIDgyLCAyMjMsIDE4NSwgMjUyLCA3OCwgMjQ5LCAKLSAgICAxMTIsIDIyMywgMTg0LCAyNDksIDM2LCAyNCwgMjIzLCAxODQsIDIxOSwgODEsIDI1MSwgOTMsIDIxOSwgMjAyLCAyNTEsIAotICAgIDc4LCAyNDMsIDIyMSwgMjQzLCAyMTcsIDIyMywgMTA4LCAyMTgsIDE5MSwgMjI1LCAxMTEsIDI0OCwgMTIwLCAyMjcsIDEwMSwgCi0gICAgMjE4LCAyMDgsIDI0MywgMjE4LCAyMjAsIDE1NSwgMjQ0LCA2MCwgMjUwLCAyMDksIDIsIDIxOCwgMTg0LCAyNDcsIDI0MiwgCi0gICAgMjE5LCAyMzYsIDI0MCwgMTA1LCAyNDksIDgxLCAyMjAsIDI1MCwgMjQwLCAxMDQsIDI0MCwgMTA1LCAyNDksIDgxLCAyNDYsIAotICAgIDYyLCAyNDksIDExMSwgMjUwLCAyMSwgMTM0LCAyNTAsIDE4NiwgMjMyLCAxOTQsIDI0OSwgMzAsIDI0MSwgNDEsIDIyNSwgCi0gICAgMTEzLCAyMjAsIDE2NCwgMjUxLCAyMTMsIDI1MSwgODksIDIyNSwgMTE0LCA2NSwgMjQ0LCAyLCAyNDksIDExMCwgMjQzLCAKLSAgICAyNDksIDI0LCAyMzQsIDQxLCAyMTcsIDIyNywgMjEzLCAyMTYsIDI0MSwgMjUyLCAyMjIsIDE4MywgMjUxLCAxMDMsIDI0LCAKLSAgICAyNDksIDQzLCAyMTMsIDIyMiwgMjQyLCAxNjAsIDI0OSwgMTcyLCAyNDIsIDE2MCwgMjE2LCAxNTEsIDI0NiwgNDUsIDI1MSwgCi0gICAgMjM4LCAyMzAsIDE2MywgMjQ5LCAyMDAsIDI1MSwgMjM4LCAyMzAsIDE2MiwgMjUyLCAxMDQsIDI1MSwgMTAyLCAyMjMsIAotICAgIDE4NiwgMjEzLCAxODksIDIyNSwgNzUsIDI1MSwgMTU4LCAyNTAsIDIwOCwgMjM1LCAxMzYsIDI1MCwgMTQsIDIxNiwgMTkzLCAKLSAgICAyNDQsIDEzMCwgMjUwLCAxMywgMjQ0LCA2MywgMjQ0LCA2NCwgMjE5LCAyMDAsIDI1MiwgNzcsIDIyNiwgMTIyLCAyMjUsIAotICAgIDEyNCwgMjQ5LCAxNDMsIDI1MiwgNzgsIDIxOCwgMTAsIDIxNiwgMTkzLCAyNDksIDY4LCAyNDQsIDM2LCAyMjUsIDE5NSwgCi0gICAgMjQ4LCAzMiwgMjM1LCAxMzEsIDI0NywgODUsIDI1MCwgMTY0LCAyMTksIDUzLCAyMTMsIDIyNSwgMjUwLCAzNSwgMjMwLCAKLSAgICAxOTksIDIxNCwgMTQ0LCAyNTAsIDk2LCAyMjIsIDExNywgMjIyLCAxNDEsIDI0MiwgMTI0LCAyNTAsIDE4MywgMjUwLCAxNjUsIAotICAgIDI0MCwgMjMyLCAyNDQsIDk5LCAyMTMsIDI0MSwgMjIzLCAxMDIsIDI0OSwgMTczLCAyNDQsIDU1LCAyMjUsIDEzNiwgMjQsIAotICAgIDI0NCwgNTksIDIzMSwgNDAsIDIzMCwgMTc4LCAyNTAsIDE5OCwgMjQ5LCAyMzIsIDI0MSwgMjE2LCAyNTMsIDE1NiwgMjI2LCAKLSAgICAxODksIDIxNiwgMjI3LCAyNDEsIDIzNCwgMjQ5LCAyMjIsIDIxNywgMTk1LCAyMTcsIDY3LCAyNDksIDIxMywgMjUxLCAxMjUsIAotICAgIDIyNiwgNTIsIDI1MywgMTU1LCAyMTQsIDE1MCwgMjQzLCA4NiwgMjQ3LCAxNDksIDI0MSwgMTQyLCAyMjAsIDEyLCAyMzIsIAotICAgIDM5LCAyNTEsIDE2OCwgMjQzLCA4NywgMjQ3LCAxOTIsIDI1MSwgOTIsIDI0NCwgMjEsIDIyNSwgMTY1LCAyNTAsIDE3MywgCi0gICAgMjcsIDIyOCwgMTU4LCAyMzAsIDE1NSwgMjcsIDIyOCwgMTUzLCAyMjIsIDEzMCwgMjQyLCA4MCwgMjcsIDIzNCwgMTQzLCAKLSAgICAyMTYsIDE0OCwgMjE0LCAxMzUsIDI3LCAyMjIsIDExMSwgMjIzLCAzNSwgMjIwLCAxOTEsIDIsIDIyMiwgMTQzLCAyMTcsIAotICAgIDE5NywgMjI0LCA2OCwgMjQsIDI1MiwgNzgsIDIyMCwgMzMsIDI0LCAyMjAsIDMzLCAyNTEsIDExMiwgMjUyLCA0MywgMjQsIAotICAgIDI0MSwgMzYsIDI1MCwgNTcsIDI0NCwgNDIsIDIxOSwgMjQ3LCAyMjMsIDM2LCAyMTgsIDIxMiwgMjE2LCAxNTIsIDI0MCwgCi0gICAgMjMzLCAyMjQsIDY5LCAyNTQsIDM4LCAyNDQsIDAsIDIyMywgNDcsIDI0NCwgMCwgMjE4LCAxODYsIDI0MCwgMjIyLCAyNTEsIAotICAgIDQ4LCAyNDAsIDIyMiwgMiwgMjQzLCA3MCwgMjI3LCA5NSwgMjUxLCA0OCwgMjM1LCAxMzEsIDIyNSwgMTE5LCAyMjcsIDk0LCAKLSAgICAyNDUsIDExLCAyMjUsIDExOSwgMjI3LCA5NCwgMjQwLCAyMzEsIDI1MiwgNjQsIDI1MywgOTcsIDIxNywgMjA1LCAyMzIsIAotICAgIDM5LCAyNDAsIDIyNywgMjMyLCAxNjYsIDI0MCwgMjI3LCAyNDksIDExNSwgMjE5LCA2NSwgMjIyLCAxMTYsIDI0NywgMjUwLCAKLSAgICAyMTksIDY1LCAyNDQsIDE0OCwgMjM1LCAxNDcsIDIzMywgMTEzLCAyMzUsIDEzMSwgMjUwLCAxNTgsIDI0NSwgMTEsIDI1MCwgCi0gICAgMTU4LCAyMjQsIDMzLCAyMzAsIDE4MiwgMjI2LCAyMzgsIDIxNCwgMjUsIDI1MSwgNTIsIDI0OSwgODQsIDIxNywgNjAsIAotICAgIDIzMywgNDIsIDIyNCwgNzAsIDI1MCwgMTU2LCAyNDYsIDUwLCAyNDksIDc1LCAyMTMsIDI0NCwgMjE5LCAyNTQsIDIxOSwgCi0gICAgMjUyLCAyNDAsIDIzMiwgMjI0LCA0NSwgMjQyLCAxNDYsIDIyMCwgMjM3LCAyMzAsIDIxNSwgMjIzLCA5NiwgMjUwLCA0NSwgCi0gICAgMjQ3LCA5MCwgMjI1LCAyMDUsIDI1MSwgMTI2LCAyNDUsIDEyNiwgMjI3LCAxMDMsIDIxOSwgMTg0LCAyMjAsIDIzMiwgMjUxLCAKLSAgICA1MSwgMjU0LCAzLCAyNDEsIDQwLCAyMzMsIDE0NCwgMjUxLCAyMzYsIDI0NCwgNTksIDIxNiwgMTUxLCAyNDQsIDU5LCAyNTEsIAotICAgIDEzMiwgMjE2LCA1NSwgMjQxLCAyMzIsIDI1MCwgNDYsIDI1MiwgMTA0LCAyNTAsIDQ2LCAyNDMsIDIxMiwgMjUyLCAxMDQsIAotICAgIDI1MCwgNDYsIDI1MSwgMTYwLCAyMjYsIDcwLCAyMzQsIDM1LCAyMjUsIDEyOCwgMjQ2LCA0MiwgMjUwLCAxOTksIDI1MiwgCi0gICAgOTUsIDI1MCwgMTk5LCAyNDcsIDg0LCAyMzAsIDE4MywgMjQ0LCAxNTgsIDI0OSwgODUsIDI0NCwgMTU4LCAyMTcsIDYxLCAKLSAgICAyNDQsIDE1OCwgMjI0LCA3MSwgMjQ0LCAxNTgsIDI1MCwgMTU3LCAyNDQsIDE1OCwgMjQ2LCA1MSwgMjQ0LCAxNTgsIDIxOSwgCi0gICAgMTczLCAyMTMsIDI0NCwgMjQwLCAyMzMsIDI0NCwgMTU4LCAyMzAsIDIxNiwgMjQ0LCAxNTgsIDI0NywgOTEsIDI0NCwgMTU4LCAKLSAgICAyMjUsIDIwNiwgMjQ0LCAxNTgsIDI0MywgMjE1LCAyNDQsIDE1OCwgMjQyLCAzLCAyNDQsIDE1OCwgMjEzLCAyMTEsIDI0NCwgCi0gICAgMTU4LCAyNTEsIDI0NywgMjQ0LCAxNTgsIDIyNiwgMTcyLCAyNDQsIDE1OCwgMjI1LCAyMDYsIDIyOCwgMTY0LCAyMjYsIAotICAgIDEwNiwgMjI1LCA2NywgMjQ0LCAyMzcsIDI0NSwgMTgzLCAyMjgsIDE2NCwgMjMwLCAxODAsIDIxNiwgMjMyLCA2NywgMTE0LCAKLSAgICAyMjUsIDE0MSwgMjUyLCA5OSwgMjM1LCAyMzksIDY3LCAxMTksIDIyNSwgMTQxLCAyNTIsIDk5LCAyMzUsIDIzOSwgNjcsIAotICAgIDQyLCAyMjUsIDE0MSwgMjUyLCA5OSwgMjM1LCAyMzksIDY3LCA0NiwgMjI1LCAxNDEsIDI1MiwgOTksIDIzNSwgMjM5LCAKLSAgICAyNDQsIDUzLCAyNDEsIDI1NSwgNTIsIDIxNCwgMTcsIDI0MSwgMjU1LCA1MiwgMjI3LCA4MSwgMjQxLCAyNTUsIDUyLCAyMTcsIAotICAgIDg5LCAxMTQsIDUyLCAyMTcsIDg5LCAxMTksIDUyLCAyNDksIDIxMiwgMjQxLCAyNTAsIDUyLCAyMjcsIDQwLCAyNDEsIDI1MCwgCi0gICAgNTIsIDI0OSwgNjMsIDIxMywgMjA3LCAyNDEsIDIzNCwgMjQ0LCAyMzgsIDIyOSwgMTg1LCAyMTgsIDk4LCAyMzUsIDEyNiwgCi0gICAgMjQ2LCA0NywgMjM0LCA5MSwgMjUxLCAxNzAsIDIxMywgMjA3LCAyNDksIDE4NiwgMjI1LCAxNCwgMjQxLCAyNTMsIDIyNSwgCi0gICAgMTEwLCAyMzEsIDI0MCwgMjIwLCAxODQsIDI1MywgMTE5LCAyMjAsIDE4NCwgMjQxLCAxNTAsIDIyMCwgMTg0LCAyMTMsIAotICAgIDIwNywgMjIyLCAxNTYsIDIxMywgMjA3LCAyNTEsIDExMSwgMjQzLCAyNTQsIDI1MSwgMTksIDIzNSwgMjUyLCAyMjAsIDk1LCAKLSAgICAyNTEsIDE4LCAyMzUsIDI1MiwgMjIwLCA5NSwgMjUxLCA4OCwgMjQyLCAxNzAsIDIzMSwgMjQ4LCAyMTMsIDIwOCwgMjQ0LCAKLSAgICAxNDIsIDIzMSwgMjQ5LCAyNCwgMjEzLCAyMDksIDI0MSwgNDYsIDI0MSwgMjQ5LCAxMTcsIDIzMSwgMTIzLCAyNDEsIDQ2LCAKLSAgICAyNDEsIDI0OSwgMTE3LCAyMTMsIDIwNiwgMjQxLCA0NiwgMjQxLCAyNDksIDIyNSwgMTMzLCAyMjcsIDkzLCAyMTMsIDIwOSwgCi0gICAgMiwgMjUxLCAzNSwgMjQ1LCAxODEsIDI1MSwgNjksIDIsIDIxNCwgMjIzLCAyMjYsIDQ0LCAyLCAyNTEsIDEzNSwgMjQyLCAKLSAgICAxNiwgMjMxLCAyNDksIDIsIDI0MiwgODksIDIyNSwgMjQxLCAyMzEsIDIzNywgMjMxLCAyNDksIDIsIDIxNiwgNjEsIDIyNywgCi0gICAgNzQsIDIzMSwgMjQ4LCAyMjcsIDc0LCAyMTMsIDIwOCwgMjUyLCAxMDMsIDI0OSwgMTI5LCAyMTMsIDE5MiwgMjI1LCA3MCwgCi0gICAgMjM1LCAxMzEsIDIyNywgODksIDIzNSwgMTMxLCAyNDIsIDE0NSwgMjQyLCAxOTgsIDI1MiwgMTA0LCAyNTQsIDIyLCAyNDQsIAotICAgIDI0MiwgMjU0LCA2OSwgMjU0LCA3MCwgMjMwLCAyMDYsIDIzNiwgMSwgMjIwLCAyOCwgMjM1LCAyMjksIDI0NywgMjQxLCAKLSAgICAyMjYsIDQzLCAyNDIsIDg2LCAyNDgsIDEyNCwgMjMyLCAyMzAsIDIzMCwgMzAsIDIyNSwgMTMyLCAyNDQsIDE1OSwgMjMxLCAKLSAgICAyMDUsIDI0MiwgMTUsIDI1MiwgNTgsIDIyNSwgMTM1LCAyMTgsIDExNywgMjI1LCAxOTgsIDIzNCwgNzMsIDc3LCAyMzIsIAotICAgIDE2NiwgMjMzLCAzNCwgMjIzLCAxMzAsIDI0MywgMzAsIDIxOSwgNzEsIDIzNCwgNzIsIDI1MSwgOTcsIDI0OSwgODcsIDIsIAotICAgIDI0MSwgMjExLCAyMTQsIDMsIDI1MSwgMjQ1LCAyNDEsIDIxMSwgMjUxLCA2MywgMjQxLCAyMTEsIDExNywgMjQxLCAyMDksIAotICAgIDIxOSwgMTk4LCAyNDEsIDIxMSwgMjQyLCA5OCwgMjQxLCAyMTEsIDI0MSwgMjEyLCAyLCA2OCwgMjUxLCAxMzEsIDI0MSwgCi0gICAgMjExLCAyNDIsIDEwNCwgMjQxLCAyMTEsIDIxMywgMzMsIDI0MSwgMjExLCAyMjUsIDE1LCAyNDEsIDIxMSwgMjQxLCAyMTIsIAotICAgIDIsIDIyMywgMTg2LCAyMjMsIDE5NywgMjQxLCAyMDksIDI0MSwgMjEyLCAyNDgsIDMyLCAyNDcsIDIwMSwgMjIxLCA1LCAyLCAKLSAgICAxMTgsIDYyLCAyMzUsIDIxMiwgMjQ1LCAxMjksIDE3NywgMjUxLCA0NSwgMjU0LCAyMSwgODcsIDI1MSwgMTIwLCAyMjAsIAotICAgIDIwLCA4NywgMjQ5LCAxNjYsIDg3LCAyMTksIDE3OCwgMjE4LCAxOTMsIDg3LCAyNDYsIDQwLCAyNDgsIDEwMiwgODcsIDIyNSwgCi0gICAgMTk5LCA2NSwgMjI1LCAxMjksIDI0NCwgMzAsIDI1MSwgMTgxLCAyNDcsIDExNywgODcsIDIxOSwgMTkxLCAyNTIsIDc3LCAKLSAgICAyMTcsIDEwMiwgMjUyLCA3NywgNjcsIDI0NCwgMjAsIDI0MCwgMjAxLCAyMjUsIDEzOSwgODcsIDIzMCwgMjE5LCAyNTIsIAotICAgIDkwLCAyNDksIDM5LCAyNDQsIDI1NSwgMTA3LCAyNDcsIDg2LCA1MiwgMjQ5LCA3OSwgMjUwLCAxNzQsIDI1MiwgNjMsIDIsIAotICAgIDIxMywgMzEsIDUyLCAyNTIsIDYzLCAyLCAyNDcsIDg2LCA1MiwgMjUyLCA2MywgMiwgMjQ1LCAxNCwgNTIsIDI1MiwgNjMsIAotICAgIDIsIDIyNSwgMTA4LCA1MiwgMjMwLCAyMTksIDIsIDIxMywgMjIwLCAyNTAsIDc0LCAyLCAyMTUsIDEyNCwgMjE2LCAxODksIAotICAgIDI0LCAyMTMsIDMxLCA1MiwgMjIyLCA5NywgMjI2LCA0MiwgMjQ5LCAxNDcsIDI1MSwgNjcsIDIzMCwgMjU1LCAyNDQsIDI1LCAKLSAgICAyNDcsIDEzNywgMjI3LCAyNywgMjQ3LCAxNDIsIDI0NiwgNCwgMjQ0LCA3NiwgMjQ0LCA5LCAyMjcsIDQwLCAyNDQsIDc2LCAKLSAgICAyNDQsIDksIDIyNiwgMjAxLCAyLCAyNDksIDQxLCAyMjYsIDIwMSwgMjQ0LCAxNTEsIDIxNSwgMTM0LCAyNTAsIDIwNCwgCi0gICAgMjE3LCAyMjYsIDI1MCwgMjA0LCAyNTAsIDE3NSwgMjM1LCAyMzksIDI1MCwgNzQsIDIsIDIxNSwgMTI0LCAyMTYsIDE4OCwgCi0gICAgMjUwLCA3NCwgMiwgMjQ2LCA1OCwgMjE2LCAxODgsIDI1MiwgNjAsIDI1MCwgNzMsIDI0OSwgMTk5LCAyMjUsIDEwLCAyMjMsIAotICAgIDg3LCAyMjUsIDEwLCAyMjYsIDE0NywgMjE5LCA2MSwgMjIzLCA0MiwgMjE2LCAxODAsIDIyMywgNDIsIDI1MSwgMTE2LCAKLSAgICAyMTgsIDM5LCAyMzMsIDc1LCAyMjgsIDE1NiwgMjI4LCAxNTcsIDIsIDI0OCwgMzEsIDI0OSwgODYsIDI0OSwgMTkzLCAyNTEsIAotICAgIDExNywgMjI3LCA0MCwgMjUxLCAxMTcsIDI0MiwgMTA0LCAyNTEsIDExNywgMjUxLCAxMzEsIDI1MSwgMTE3LCAyMjcsIDIzLCAKLSAgICAyNTEsIDExNywgMjUxLCAxMTQsIDIzMCwgMjUsIDI1MiwgOTMsIDIyMiwgMTA1LCAyMzEsIDEyNCwgMjE3LCAyMTAsIDIyNCwgCi0gICAgMTYsIDIyNiwgMTk5LCAyNDQsIDEyNywgMjMyLCAzOSwgMjIyLCAxNDAsIDI1NCwgMCwgMjI1LCAzMSwgMjU0LCAxNTcsIAotICAgIDIzMiwgMTY4LCAyNTAsIDYzLCAyMzEsIDEzNiwgMjI2LCAyNTMsIDIxNiwgMTk2LCAyMzUsIDI0OCwgMjE2LCAxOTYsIDIyNiwgCi0gICAgMjA2LCAyNDUsIDIzNiwgODcsIDIzNSwgMjQ1LCAyNDUsIDc4LCAyNDUsIDc5LCAyLCAyNDYsIDU4LCA3NiwgNDksIDI0OSwgCi0gICAgMTkzLCAyMzIsIDYsIDIsIDIzMiwgMTYyLCAyNDQsIDQyLCAyNDksIDE5MywgMjMyLCA2LCAyLCAyMjQsIDQ4LCAyNDQsIDQyLCAKLSAgICAyMjcsIDQwLCAyMzIsIDYsIDIsIDIyNCwgNDgsIDI0NCwgNDIsIDIyNywgNDAsIDIzMiwgNiwgMiwgMjMyLCAxNjIsIDI0NCwgCi0gICAgNDIsIDIyNSwgMTE2LCAyMjUsIDExNywgMjQwLCAyMzUsIDIyOSwgMTY2LCAyMzAsIDIyOSwgMjI1LCAyNDksIDIzMCwgMjI5LCAKLSAgICAyMjUsIDI1MCwgMiwgOTUsIDc2LCAyNTMsIDEyMywgMjMzLCA3MCwgMjE0LCAxNTMsIDIzMCwgMjI4LCAyMzAsIDIyOSwgCi0gICAgMjI1LCAyNTAsIDIyNywgOTYsIDIyOCwgMTg2LCAyMzAsIDIyOSwgMjI1LCAyNDgsIDI1NCwgMSwgMiwgMjUyLCA0OSwgMjUwLCAKLSAgICAxOTgsIDIxNCwgMTUwLCAyNTAsIDE5OCwgMjE3LCAyMDcsIDIyNCwgNjMsIDIxNCwgMTQ5LCAyMTYsIDI1LCA5NSwgMjUzLCAKLSAgICAxNjIsIDI0OSwgMTk1LCA5NSwgMjQsIDEzMiwgMjI3LCA0MCwgMjQ5LCAyMjksIDI1MywgMTYyLCAyNDksIDE5NSwgOTUsIAotICAgIDI0LCAxMzIsIDIyNywgNDAsIDI0OSwgMjI5LCAyNTMsIDE2MywgMiwgMzYsIDEyMiwgMjI2LCAyNDQsIDI0OSwgMTk1LCAKLSAgICAyNDYsIDU4LCAyNCwgMjE1LCAxMjQsIDIyNywgNDAsIDI0OSwgMjI5LCAyNTMsIDE2MiwgMjUzLCAyNTUsIDI0NiwgNTgsIAotICAgIDI0LCAyMTUsIDEyNCwgMjI3LCA0MCwgMjQ5LCAyMjksIDI1MywgMTYyLCAxMTUsIDI1MSwgNjYsIDg3LCAxMjQsIDI1MSwgCi0gICAgNjYsIDg3LCAyMTksIDE5NSwgMiwgMjUwLCAxOTIsIDkwLCAyMTksIDE5NCwgMjE5LCAxOTUsIDIsIDEyMiwgMjE5LCAyMTgsIAotICAgIDIxNCwgMTksIDIxOSwgMTk1LCAyLCAxMzMsIDIxOSwgMjE4LCAyMTQsIDE4LCAyNTIsIDM1LCAyNDUsIDEyOSwgMjI1LCAKLSAgICAxNjEsIDIzMywgNjYsIDIzMiwgMTYsIDI0MiwgMTYwLCAyMjMsIDE0NCwgMjMyLCAxNiwgMjQyLCAxNjAsIDIzMiwgMjA0LCAKLSAgICAyLCAyMzUsIDIyMiwgMjI2LCA3NCwgMjQ5LCAxOTMsIDIzMiwgMjA0LCAyLCAyMzQsIDE0NCwgMjM0LCAxNDQsIDIzMiwgCi0gICAgMjAzLCAyMjcsIDQwLCAyMzIsIDIwMywgMjUxLCAyMjEsIDI1MSwgMjIyLCAyLCAyNTAsIDE5MiwgOTAsIDI1MSwgMTE1LCAKLSAgICAyMzIsIDIzMywgODcsIDIyNCwgNjQsIDI1MSwgMTUsIDI1MiwgMTAyLCAyLCAxMzIsIDc2LCA0OSwgMjQ1LCAxMDEsIDIsIAotICAgIDEzMiwgNzYsIDQ5LCAyMjcsIDYzLCAyLCAyNDQsIDI1NCwgMTUyLCAyLCA0MiwgNDYsIDc2LCA0OSwgMjE5LCAyMjUsIDIsIAotICAgIDk1LCA3NiwgNDksIDIxNiwgMjI3LCAyLCAyMTUsIDEyNCwgNzYsIDQ5LCAyMjgsIDE4NiwgMTIyLCAyMTUsIDE1NCwgMjQ1LCAKLSAgICAxNDgsIDg3LCAyMzQsIDE0MiwgMjE3LCAyMDAsIDIzNSwgMjE2LCAxNiwgMzEsIDcsIDYsIDIzMywgMzMsIDIzNSwgMjE2LCAKLSAgICAxNiwgMzEsIDcsIDMsIDIzMywgMzMsIDIzNSwgMjE2LCAxNiwgMzEsIDIyOCwgNTUsIDIzNSwgMjE2LCAxNiwgMzEsIDIxOCwgCi0gICAgMTI4LCAyMzUsIDIxNiwgMTYsIDMxLCA3LCAyMzMsIDMzLCAyNDQsIDY1LCAyNDUsIDEyOSwgMjE2LCAyMjIsIDIxMywgMTg3LCAKLSAgICAyNDIsIDQsIDIyOCwgMzgsIDI0LCAyNTEsIDEyMSwgMjQxLCA1MiwgMjI1LCAxODIsIDIzMSwgMzksIDIxNywgMjA4LCAyNDksIAotICAgIDU0LCAyNTIsIDc4LCAyMjAsIDUzLCAyMjUsIDE0MywgMjE5LCA5NiwgMiwgMjMxLCAzNywgMjQ3LCA3NCwgMjM1LCAxMzEsIAotICAgIDE2LCAzMSwgMjUxLCAyMzMsIDIxNiwgMTc4LCAyNDUsIDExNCwgODMsIDQxLCAyNTEsIDE1LCA2NywgNDEsIDI1MSwgMTUsIAotICAgIDIzMywgMTA4LCAyMjQsIDQsIDI0OSwgMjI4LCAyMzMsIDEwOCwgMjUxLCAxMzEsIDI0OSwgMjI4LCAyMzMsIDEwOCwgMjI3LCAKLSAgICAyMywgMjQ3LCAyMDAsIDIzMywgMTA4LCAyNTEsIDEzMSwgMjQ3LCAyMDAsIDMsIDIyNywgMjMsIDI0NywgMjAwLCAzLCAyNTEsIAotICAgIDEzMSwgMjQ3LCAyMDAsIDIxNSwgMTMzLCAyMjQsIDQsIDIxNiwgMTgzLCAyNDYsIDU5LCAyMjQsIDQsIDIxNiwgMTgzLCAKLSAgICAyMTUsIDEzMywgMywgMjI0LCA0LCAyMTYsIDE4MywgMjQ2LCA1OSwgMywgMjI0LCA0LCAyMTYsIDE4MywgMjQ5LCAxOTcsIAotICAgIDI0NCwgMTU5LCAxMjIsIDIyNywgMTA2LCAyNDksIDE5NywgMjQ0LCAxNTksIDExNywgMjI3LCAxMDYsIDI0OSwgMTk3LCAKLSAgICAyNDQsIDE1OSwgMTMzLCAyMjcsIDEwNiwgMjQ5LCAxOTcsIDI0NCwgMTU5LCAyNDMsIDIzNywgMjI3LCAxMDYsIDI0OSwgCi0gICAgMTk3LCAyNDQsIDE1OSwgMjQ0LCA1MCwgMjI3LCAxMDYsIDI0OSwgMTk3LCAyNDQsIDE1OSwgMjIwLCA1MywgMjI3LCAxMDYsIAotICAgIDI0OSwgMTk3LCAyNDQsIDE1OSwgMjIxLCA0MywgMjI3LCAxMDYsIDI0OSwgMTk3LCAyNDQsIDE1OSwgMjQ1LCAxNTAsIDIyNywgCi0gICAgMTA2LCAyNDksIDE5NywgMjQ0LCAxNTksIDIyOSwgMzEsIDIyNywgMTA2LCAyNDksIDE5NywgMjQ0LCAxNTksIDIxNywgMjAxLCAKLSAgICAyMjcsIDEwNiwgMjQ5LCAxOTcsIDI0NCwgMTU5LCAyNDUsIDEyNSwgMjI3LCAxMDYsIDI0OSwgMTk3LCAyNDQsIDE1OSwgCi0gICAgMjE2LCA0MiwgMjI3LCAxMDYsIDI0OSwgMTk3LCAyNDQsIDE1OSwgMjI3LCA1OCwgMjQ5LCAxOTcsIDI0NCwgMTU5LCAyMTYsIAotICAgIDIyLCAyNDksIDE5NywgMjQ0LCAxNTksIDIxNywgOTQsIDI0OSwgMTk3LCAyNDQsIDE1OSwgMjQzLCAyMzMsIDI0OSwgMTk3LCAKLSAgICAyNDQsIDE1OSwgMjQ0LCA0OCwgMjQ5LCAxOTcsIDI0NCwgMTU5LCAyMjAsIDQ5LCAyNDksIDE5NywgMjQ0LCAxNTksIDIyMSwgCi0gICAgNDIsIDI0OSwgMTk3LCAyNDQsIDE1OSwgMjQ1LCAxNDksIDI0OSwgMTk3LCAyNDQsIDE1OSwgMjI5LCAzMCwgMjQ5LCAxOTcsIAotICAgIDI0NCwgMTU5LCAyMTcsIDE5OSwgMjQ5LCAxOTcsIDI0NCwgMTU5LCAyNDUsIDEyMywgMjQ5LCAxOTcsIDI0NCwgMTU5LCAKLSAgICAyMTYsIDQwLCAyMzAsIDE4NywgMjQzLCAyMDEsIDIxNiwgMjQ3LCAyMTYsIDIxNSwgMjE5LCA4OCwgNjUsIDIzMywgMTEsIAotICAgIDIyMCwgOTYsIDY1LCAyMzUsIDEzMiwgMjMwLCAxNzYsIDI0MiwgMTAyLCAyNDQsIDE1OSwgMiwgMjIwLCAyLCAyNDQsIDIzNywgCi0gICAgMjQ0LCAxNTksIDIsIDIxNywgMjIyLCA2NSwgMjM1LCA1NiwgMjIwLCAyLCAyNDQsIDE1OSwgMiwgMjI3LCA0MCwgMjMwLCAKLSAgICAxODAsIDIyMCwgMiwgMjQ0LCAxNTksIDIsIDIyNywgNDAsIDIzMCwgMTgxLCAyNCwgMjIwLCAyLCAyNDQsIDIzNywgMjIwLCAKLSAgICAyLCAyNDQsIDE1OSwgMiwgMjI3LCA0MCwgMjMwLCAxODEsIDI0LCAyNDksIDE2OCwgMjE4LCAxOTIsIDIyMCwgMiwgMjQ0LCAKLSAgICAxNTksIDIsIDIyNywgNDAsIDIzMCwgMTgxLCAyNCwgMjE3LCA1OCwgMjQ0LCAyMzcsIDIyMCwgMiwgMjQ0LCAxNTksIDIsIAotICAgIDI0MiwgOCwgMjIwLCAyLCAyNDQsIDE1OSwgMiwgMjQwLCAyMzQsIDIxMywgMjE4LCAyNDQsIDE1OCwgMjIwLCAyLCAyNDQsIAotICAgIDE1OSwgMiwgMjIwLCAyLCAyNDQsIDIzNywgMjQ0LCAxNTksIDIyMiwgMTM1LCAyNDgsIDEzLCAyNDQsIDIsIDIyMywgMjM4LCAKLSAgICAyNDQsIDE1OCwgMjIwLCAyLCAyNDQsIDE1OSwgMiwgMjQxLCAyMTAsIDI0NCwgMjM3LCAyMjAsIDIsIDI0NCwgMTU5LCAyLCAKLSAgICAyMTgsIDIzNCwgMjIwLCAxLCAyNDQsIDE1OCwgMjI5LCAxNjksIDI0NCwgMTU4LCAyMTUsIDE1OCwgMjQ0LCAxNTgsIDI0NCwgCi0gICAgMTU5LCAyLCAyNDksIDE2OCwgMjE4LCAxOTIsIDIyNiwgNjcsIDI0NCwgMTU4LCAyNDksIDE0MSwgMjQ0LCAxNTgsIDI0NCwgCi0gICAgMTU5LCAyMTcsIDkxLCAxMTgsIDIzNCwgNzIsIDIzNCwgNzEsIDI0NCwgMTU5LCAyLCAyNDksIDE5MywgMjQ0LCAyMzcsIAotICAgIDI0NCwgMTU5LCAyLCAyMTksIDMxLCAyMTYsIDIzMywgMjQsIDIxMywgMjE4LCAyNDQsIDIzOSwgMjQ0LCAxNTksIDIsIDIxOSwgCi0gICAgMzEsIDIxNiwgMjMzLCAyNCwgMjE3LCA1OCwgMjQ0LCAyMzcsIDI0NywgMTQ0LCAyNDQsIDE1OCwgMjU0LCAxNywgMjQ0LCAKLSAgICAxNTgsIDIyNSwgMTA3LCAyNDQsIDE1OCwgMjQ5LCA1NiwgMjQ0LCAxNTgsIDIyNiwgNDYsIDI0NCwgMTU4LCAyNDQsIDE1OSwgCi0gICAgMiwgMjMyLCAxNzksIDY1LCAyMTYsIDE2MiwgMjQ3LCAxNDQsIDI1MSwgMTcsIDIyMywgMjM4LCAyNDQsIDE1OCwgMjQ0LCAKLSAgICAxMjEsIDI0NCwgMTU4LCAyMTQsIDQsIDI0NCwgMTU4LCAyMjAsIDE5LCAyNDQsIDE1OCwgMjE3LCAyNCwgMjQ0LCAxNTgsIAotICAgIDIzMiwgMTY5LCAyNDksIDU2LCAyNDQsIDE1OCwgMjQ0LCAxNTksIDIsIDIyNywgNDAsIDIzMCwgMTgxLCAyNCwgMjQ5LCAKLSAgICAxNjgsIDIxOCwgMTkyLCAyNDQsIDE1OSwgMjIyLCAxMDksIDIzNSwgMjUyLCAyNDQsIDEyMiwgMjUzLCAxMjksIDI0NCwgCi0gICAgMTU4LCAyNDQsIDE4LCAyNDQsIDE1OCwgMjQ3LCAxMTcsIDI0NCwgMTU4LCAyNDQsIDE1OSwgMjEzLCAyMTYsIDIzMCwgMTgwLCAKLSAgICAyNDQsIDE1OSwgMiwgMjMxLCAxNDksIDIzMSwgMjA3LCAyNDIsIDEwMiwgMjUwLCAxNTcsIDI0NCwgMTU5LCAyLCAyMjAsIDIsIAotICAgIDI0NCwgMjM3LCAyNTAsIDE1NywgMjQ0LCAxNTksIDIsIDIxNywgMjIyLCA2NSwgMjM1LCA1NiwgMjIwLCAyLCAyNTAsIDE1NywgCi0gICAgMjQ0LCAxNTksIDIsIDIyNywgNDAsIDIzMCwgMTgwLCAyMjAsIDIsIDI1MCwgMTU3LCAyNDQsIDE1OSwgMiwgMjQxLCAyMTAsIAotICAgIDI0NCwgMjM3LCAyNTAsIDE1NywgMjQ0LCAxNTksIDIsIDIxMywgMTg0LCAyMjAsIDMsIDIzNCwgNzEsIDI1MCwgMTU3LCAKLSAgICAyNDQsIDE1OSwgMiwgMjQ5LCAxOTMsIDI0NCwgMjM3LCAyMjUsIDEwNywgMjUwLCAxNTcsIDI0NCwgMTU4LCAyNDksIDU2LCAKLSAgICAyNTAsIDE1NywgMjQ0LCAxNTgsIDIxNCwgNCwgMjUwLCAxNTcsIDI0NCwgMTU4LCAyNDQsIDE1OSwgMiwgMjI4LCAxODYsIAotICAgIDI0MiwgMTM5LCAyNDMsIDEwLCAyNDQsIDE1OSwgMiwgMjI3LCA4MSwgMjQzLCAxMCwgMjI2LCA0NCwgMjUxLCA5NCwgMjQ4LCAKLSAgICAyNiwgMjIyLCA4OCwgMjMwLCAyMTUsIDI0MSwgMjEzLCAyMzAsIDIxNSwgMjE5LCAxOTYsIDIzMCwgMjE1LCAyNDEsIDI0NCwgCi0gICAgMjI2LCA0NCwgMjI0LCA0NywgMTIyLCAyNDEsIDI1NCwgMjI2LCA0NCwgMjI0LCA0NywgMjUxLCAxMDQsIDI0MSwgMjUwLCAKLSAgICAyMzUsIDI1MiwgMjUwLCAxMTMsIDIyNiwgNDQsIDI0MywgMjA4LCAyMjYsIDQ0LCAyLCAyMjUsIDEwNywgMjQ0LCAxNTgsIAotICAgIDIyNiwgNDQsIDIsIDI0NCwgMTAsIDI0MSwgMjQ5LCAyMjMsIDEwNCwgMjQxLCAxOTgsIDIxOSwgODMsIDIzMiwgMjAyLCAKLSAgICAyMjQsIDUzLCAyNTAsIDE3NiwgMjQxLCAxNDgsIDIxNiwgMjA1LCAyNDEsIDE0OCwgMjE2LCAyMDYsIDIsIDI1MSwgNDMsIAotICAgIDIyOCwgMTY0LCAyMTYsIDIwNSwgMjMxLCA5OSwgMTc3LCAyMjQsIDU0LCAyMTksIDg5LCAyMTYsIDIwMywgMjE2LCAyMDQsIAotICAgIDI1MCwgMTc2LCAyNTEsIDIxLCAyMjcsIDYwLCAyNTEsIDIxLCAyMTYsIDE1OSwgMjUxLCAyMiwgMjE5LCA2OSwgMjMxLCAwLCAKLSAgICAyNTQsIDM5LCAyNDQsIDY2LCAyNDUsIDk1LCAyMjUsIDEzMywgMjUwLCAxNzYsIDIyNywgNjAsIDIyNSwgMTMzLCAyNTAsIAotICAgIDE3NiwgMjE3LCAyMzksIDIyNywgNjAsIDIxNywgMjM5LCAyNTMsIDk2LCAyMjcsIDYwLCAyNTMsIDk2LCAyMjQsIDExLCAKLSAgICAyMTQsIDIyNCwgMjQ4LCA5LCAyMTYsIDE1MCwgMjUzLCAxNTcsIDIzMiwgMTcyLCAyMTYsIDIxMSwgMjMwLCAyMDksIDIzMCwgCi0gICAgMTg2LCAyMjQsIDUyLCAyMTgsIDIwNywgMjI0LCA1MiwgMjMwLCAxODYsIDI1MCwgMjE0LCAyNTQsIDEzNCwgMjE2LCAyMDIsIAotICAgIDIyMCwgMTk2LCAyMjMsIDg0LCAyMTksIDE4OSwgMTk5LCAyMTYsIDIwOSwgMjMzLCAyLCA3MSwgMjE2LCAyMDksIDIzMywgMiwgCi0gICAgMjQ5LCAxMjksIDUyLCAyMjUsIDEzMywgMjUwLCAxNjEsIDIyMywgMTk3LCAyMzMsIDIsIDIxNiwgMTgwLCAyNDQsIDQzLCAKLSAgICAyMjcsIDYzLCAyMjUsIDExOCwgMjQ3LCA3NywgMjI4LCAxODYsIDI0NSwgODQsIDUyLCAyMjAsIDAsIDg3LCAyMjgsIDE4NiwgCi0gICAgMjIwLCAwLCA4NywgMjI1LCA5LCAyMzIsIDIyMiwgMjM1LCAyNTIsIDIzNSwgMTU1LCAyMjUsIDE3MywgODcsIDI0NywgMTAwLCAKLSAgICAyMjgsIDE2MywgMjMyLCAyMjIsIDg3LCAyMjUsIDExMiwgMjE0LCAyNSwgODcsIDIyOCwgMTc3LCAyMTQsIDI1LCA4NywgCi0gICAgMjUxLCAxODAsIDIyOCwgMTg2LCAyNTEsIDE3OSwgMjUxLCAxNzgsIDIzMCwgMTg2LCAyNTEsIDE3OCwgMjI2LCA4OCwgMjI4LCAKLSAgICAxODYsIDIyNiwgODcsIDI1MCwgMzcsIDI0OSwgNjQsIDIzMSwgMTIwLCA4NywgMjEzLCAyMDUsIDg3LCAyMjMsIDIxMSwgCi0gICAgMjUyLCAxMDQsIDg3LCAyMTYsIDI0OCwgMjE0LCAyNSwgMjQ5LCAxOTAsIDIyMCwgMTU4LCAyNTIsIDM4LCAyNTIsIDM2LCAKLSAgICAyMjYsIDExNSwgMjQ5LCAxMTYsIDI0OSwgMjgsIDI1MiwgODcsIDI0OSwgMjE1LCA0MiwgMjMyLCAxNDgsIDEwNCwgMTYsIAotICAgIDMxLCAyMjQsIDE0OCwgMTA0LCAxNiwgMzEsIDI1NCwgMTAwLCAxMDQsIDE2LCAzMSwgMjQ0LCA2NSwgMTA0LCAxNiwgMzEsIAotICAgIDI0NSwgMTc5LCAxMDQsIDE2LCAzMSwgMjE0LCAyNCwgMTA0LCAxNiwgMzEsIDI1MywgMjEzLCAxMDQsIDE2LCAzMSwgMjUzLCAKLSAgICAyMTQsIDIyMywgMjU1LCAxMDQsIDE2LCAzMSwgMjUzLCAyMTQsIDIyMywgMjU0LCAxMDQsIDE2LCAzMSwgMjUzLCAyMTQsIAotICAgIDIxNCwgMTI0LCAxMDQsIDE2LCAzMSwgMjUzLCAyMTQsIDIxNCwgMTIzLCAxMDQsIDE2LCAzMSwgMjE0LCAxMzgsIDEwNCwgCi0gICAgMTYsIDMxLCAyMTQsIDEzNywgMTA0LCAxNiwgMzEsIDIxNCwgMTM2LCAxMDQsIDE2LCAzMSwgMjE4LCAyNDUsIDEwNCwgMTYsIAotICAgIDMxLCAyMjYsIDEsIDIxOCwgMjQ1LCAxMDQsIDE2LCAzMSwgODMsIDIxOCwgMjQ1LCAxMDQsIDE2LCAzMSwgMjMxLCAxMTksIAotICAgIDIxOSwgMTYsIDEwNCwgMTYsIDMxLCAyMzEsIDExOSwgMjE5LCAxNSwgMTA0LCAxNiwgMzEsIDIzMSwgMTE5LCAyMTksIDE0LCAKLSAgICAxMDQsIDE2LCAzMSwgMjQ5LCAyMzEsIDEwNCwgMTYsIDMxLCAyMjIsIDE3MiwgMTA0LCAxNiwgMzEsIDIyOSwgMTksIDEwNCwgCi0gICAgMTYsIDMxLCAyMTQsIDEyMiwgMTA0LCAxNiwgMzEsIDIxNCwgMTIxLCAxMDQsIDE2LCAzMSwgMjIzLCAxMDUsIDIyMiwgMTcyLCAKLSAgICAxMDQsIDE2LCAzMSwgMjIzLCAxMDUsIDIyMiwgMTcxLCAxMDQsIDE2LCAzMSwgMjQyLCAxNDIsIDEwNCwgMTYsIDMxLCAyMjAsIAotICAgIDkyLCAxMDQsIDE2LCAzMSwgMjM1LCAxNzUsIDIyNywgMjAsIDEwNCwgMTYsIDMxLCAyMzUsIDE3NSwgMjI3LCAxOSwgMTA0LCAKLSAgICAxNiwgMzEsIDI0OSwgNzQsIDY1LCAyMzUsIDE3NCwgMTA0LCAxNiwgMzEsIDIyMywgMjUxLCA2NSwgMjM1LCAxNzQsIDEwNCwgCi0gICAgMTYsIDMxLCAyNDksIDEwNywgMjI3LCAyMCwgMTA0LCAxNiwgMzEsIDIzNSwgMTczLCAyMjcsIDIwLCAxMDQsIDE2LCAzMSwgCi0gICAgMjE5LCAxNywgNjUsIDI0OSwgMTA2LCAxMDQsIDE2LCAzMSwgMjQ5LCA3NCwgNjUsIDI0OSwgMTA2LCAxMDQsIDE2LCAzMSwgCi0gICAgMjQ5LCA3NCwgNjUsIDI0OSwgMTA1LCAxMDQsIDE2LCAzMSwgMjQ5LCAxMDcsIDI1MywgMjUwLCAxMDQsIDE2LCAzMSwgMjIyLCAKLSAgICAxNzMsIDY1LCAyNDksIDEwNywgMjUzLCAyNTAsIDEwNCwgMTYsIDMxLCAyMTksIDE3LCA2NSwgMjIyLCAxNzMsIDY1LCAyNDksIAotICAgIDEwNiwgMTA0LCAxNiwgMzEsIDIxNCwgMjIwLCAxMDQsIDE2LCAzMSwgMjE3LCAzNywgMjI3LCAyMCwgMTA0LCAxNiwgMzEsIAotICAgIDIzMywgODEsIDIyNywgMjAsIDEwNCwgMTYsIDMxLCAyNTMsIDI0OSwgMjI3LCAyMCwgMTA0LCAxNiwgMzEsIDIxOSwgMTcsIAotICAgIDY1LCAyNTMsIDI0OCwgMTA0LCAxNiwgMzEsIDIyMiwgMTczLCA2NSwgMjUzLCAyNDgsIDEwNCwgMTYsIDMxLCAyMTksIDE3LCAKLSAgICA2NSwgMjIyLCAxNzMsIDY1LCAyNTMsIDI0OCwgMTA0LCAxNiwgMzEsIDIxNCwgMTM5LCA2NSwgMjUzLCAyNDgsIDEwNCwgMTYsIAotICAgIDMxLCAyMjMsIDI1MSwgNjUsIDI1MywgMjQ4LCAxMDQsIDE2LCAzMSwgMjIzLCAyNTEsIDY1LCAyNTMsIDI0NywgMTA0LCAxNiwgCi0gICAgMzEsIDIyMywgMjUwLCAxMDQsIDE2LCAzMSwgMjIzLCAyNDksIDEwNCwgMTYsIDMxLCAyMjMsIDI0OCwgMTA0LCAxNiwgMzEsIAotICAgIDIyMywgMjQ3LCAxMDQsIDE2LCAzMSwgMjU0LCA2NiwgMTA0LCAxNiwgMzEsIDI1NCwgNjUsIDEwNCwgMTYsIDMxLCAyMzEsIAotICAgIDIyNiwgMTA0LCAxNiwgMzEsIDIyMiwgMTc4LCAxMDQsIDE2LCAzMSwgMjUzLCAxNjEsIDEwNCwgMTYsIDMxLCAyMjQsIDE4LCAKLSAgICAxMDQsIDE2LCAzMSwgMjI0LCAxNywgMTA0LCAxNiwgMzEsIDI1MywgOTksIDEwNCwgMTYsIDMxLCAyNTEsIDE1MiwgMjI3LCAKLSAgICAyMCwgMTA0LCAxNiwgMzEsIDIxOCwgMCwgMTA0LCAxNiwgMzEsIDIxNywgMjU1LCAxMDQsIDE2LCAzMSwgMjI0LCAxNTMsIAotICAgIDIzMiwgMjUxLCAxMDQsIDE2LCAzMSwgMjUxLCAxMDksIDEwNCwgMTYsIDMxLCAyNTEsIDEwOCwgMTA0LCAxNiwgMzEsIDI1MSwgCi0gICAgMTA3LCAxMDQsIDE2LCAzMSwgMjU0LCA0NywgMTA0LCAxNiwgMzEsIDIyNywgODQsIDEwNCwgMTYsIDMxLCAyMTksIDE4MCwgCi0gICAgMTA0LCAxNiwgMzEsIDIxNywgMzUsIDEwNCwgMTYsIDMxLCAyNDIsIDc3LCAxMDQsIDE2LCAzMSwgMjE0LCAxMiwgMTA0LCAKLSAgICAxNiwgMzEsIDIyNSwgMTA2LCAxMDQsIDE2LCAzMSwgMjUwLCAyMDIsIDEwNCwgMTYsIDMxLCAyMTYsIDUwLCAxMDQsIDE2LCAKLSAgICAzMSwgMjUwLCAxNzgsIDIzMCwgMTkyLCAxMDQsIDE2LCAzMSwgMjIyLCAxMjAsIDY1LCAyMzUsIDU4LCAxMDQsIDE2LCAzMSwgCi0gICAgMjUwLCAyMTEsIDEwNCwgMTYsIDMxLCAyMTYsIDE3NywgMTA0LCAxNiwgMzEsIDIxOSwgOTMsIDIxNiwgMTc3LCAxMDQsIDE2LCAKLSAgICAzMSwgMjMyLCAyMDEsIDEwNCwgMTYsIDMxLCAyMTksIDI0MCwgMTA0LCAxNiwgMzEsIDIxNSwgMTEzLCAxMDQsIDE2LCAzMSwgCi0gICAgMjQwLCAyMzMsIDI0NiwgMTksIDEwNCwgMTYsIDMxLCAyNTMsIDE0MiwgMTA0LCAxNiwgMzEsIDIyNSwgMTE0LCAyNTMsIAotICAgIDE0MiwgMTA0LCAxNiwgMzEsIDI1MSwgNzAsIDEwNCwgMTYsIDMxLCAyMjUsIDEwNSwgMjUxLCA3MCwgMTA0LCAxNiwgMzEsIAotICAgIDI1NCwgNDQsIDEwNCwgMTYsIDMxLCAyMTksIDU3LCAyMTgsIDIyNiwgMjE5LCA1NiwgMTA0LCAxNiwgMzEsIDIxOSwgNTcsIAotICAgIDIxOCwgMjI2LCAyMTksIDU1LCAxMDQsIDE2LCAzMSwgMjE5LCAxMywgMTA0LCAxNiwgMzEsIDIyNSwgODAsIDEwNCwgMTYsIAotICAgIDMxLCAyNDcsIDEzMywgMTA0LCAxNiwgMzEsIDI0NywgMTM1LCAxMDQsIDE2LCAzMSwgMjQ3LCAxMzQsIDEwNCwgMTYsIDMxLCAKLSAgICAyMjUsIDE3LCAxMDQsIDE2LCAzMSwgMjI1LCA3LCAxMDQsIDE2LCAzMSwgMjQ5LCA2MiwgMTA0LCAxNiwgMzEsIDI0OSwgNjEsIAotICAgIDEwNCwgMTYsIDMxLCAyNDksIDYwLCAxMDQsIDE2LCAzMSwgMjQ5LCA1OSwgMTA0LCAxNiwgMzEsIDI0OSwgNTgsIDEwNCwgCi0gICAgMTYsIDMxLCAyNTQsIDc3LCAxMDQsIDE2LCAzMSwgMjUyLCAzOSwgNjUsIDIzMSwgMjEyLCAxMDQsIDE2LCAzMSwgMjUyLCAKLSAgICAzOSwgNjUsIDIxNCwgMjQ5LCAxMDQsIDE2LCAzMSwgMjIzLCAyMDksIDEwNCwgMTYsIDMxLCAyNDAsIDIyNSwgMTA0LCAxNiwgCi0gICAgMzEsIDIyOSwgNDMsIDEwNCwgMTYsIDMxLCAyNDgsIDkxLCAxMDQsIDE2LCAzMSwgMjMwLCAyMDQsIDEwNCwgMTYsIDMxLCAKLSAgICAxNTEsIDI0NiwgNDksIDEwNCwgMTYsIDMxLCAxNTEsIDIyNywgMCwgOSwgMTMsIDI0MCwgOTUsIDksIDEzLCAyNDAsIDk0LCAKLSAgICA5LCAxMywgMjQwLCA5MywgOSwgMTMsIDI0MCwgOTIsIDksIDEzLCAyNDAsIDkxLCA5LCAxMywgMjQwLCA5MCwgOSwgMTMsIAotICAgIDI0MCwgODksIDksIDEzLCAyNDAsIDg4LCA5LCAxMywgMjQwLCA4NywgOSwgMTMsIDI0MCwgODYsIDksIDEzLCAyNDAsIDg1LCAKLSAgICA5LCAxMywgMjQwLCA4NCwgOSwgMTMsIDI0MCwgODMsIDksIDEzLCAyNDAsIDgyLCA5LCAxMywgMjQwLCA4MSwgOSwgMTMsIAotICAgIDI0MCwgODAsIDksIDEzLCAyNDAsIDc5LCA5LCAxMywgMjQwLCA3OCwgOSwgMTMsIDI0MCwgNzcsIDksIDEzLCAyNDAsIDc2LCAKLSAgICA5LCAxMywgMjQwLCA3NSwgOSwgMTMsIDI0MCwgNzQsIDksIDEzLCAyNDAsIDczLCA5LCAxMywgMjQwLCA3MiwgOSwgMTMsIAotICAgIDI0MCwgNzEsIDksIDEzLCAyNDAsIDcwLCA5LCAxMywgMjQwLCA2OSwgOSwgMTMsIDI0MCwgNjgsIDksIDEzLCAyNDAsIDY3LCAKLSAgICA5LCAxMywgMjQwLCA2NiwgOSwgMTMsIDI0MCwgNjUsIDksIDEzLCAyNDAsIDY0LCA5LCAxMywgMjQwLCA2MywgOSwgMTMsIAotICAgIDI0MCwgNjIsIDksIDEzLCAyNDAsIDYxLCA5LCAxMywgMjQwLCA2MCwgOSwgMTMsIDI0MCwgNTksIDksIDEzLCAyNDAsIDU4LCAKLSAgICA5LCAxMywgMjQwLCA1NywgOSwgMTMsIDI0MCwgNTYsIDksIDEzLCAyNDAsIDU1LCA5LCAxMywgMjQwLCA1NCwgOSwgMTMsIAotICAgIDI0MCwgNTMsIDksIDEzLCAyNDAsIDUyLCA5LCAxMywgMjQwLCA1MSwgOSwgMTMsIDI0MCwgNTAsIDksIDEzLCAyNDAsIDQ5LCAKLSAgICA5LCAxMywgMjQwLCA0OCwgOSwgMTMsIDI0MCwgNDcsIDksIDEzLCAyNDAsIDQ2LCA5LCAxMywgMjQwLCA0NSwgOSwgMTMsIAotICAgIDI0MCwgNDQsIDksIDEzLCAyNDAsIDQzLCA5LCAxMywgMjQwLCA0MiwgOSwgMTMsIDI0MCwgNDEsIDksIDEzLCAyNDAsIDQwLCAKLSAgICA5LCAxMywgMjQwLCAzOSwgOSwgMTMsIDI0MCwgMzgsIDksIDEzLCAyNDAsIDM3LCA5LCAxMywgMjQwLCAzNiwgOSwgMTMsIAotICAgIDI0MCwgMzUsIDksIDEzLCAyNDAsIDM0LCA5LCAxMywgMjQwLCAzMywgOSwgMTMsIDI0MCwgMzIsIDksIDEzLCAyNDAsIDMxLCAKLSAgICA5LCAxMywgMjQwLCAzMCwgOSwgMTMsIDI0MCwgMjksIDksIDEzLCAyNDAsIDI4LCA5LCAxMywgMjQwLCAyNywgOSwgMTMsIAotICAgIDI0MCwgMjYsIDksIDEzLCAyNDAsIDI1LCA5LCAxMywgMjQwLCAyNCwgOSwgMTMsIDI0MCwgMjMsIDksIDEzLCAyNDAsIDIyLCAKLSAgICA5LCAxMywgMjQwLCAyMSwgOSwgMTMsIDI0MCwgMjAsIDksIDEzLCAyNDAsIDE5LCA5LCAxMywgMjQwLCAxOCwgOSwgMTMsIAotICAgIDI0MCwgMTcsIDksIDEzLCAyNDAsIDE2LCA5LCAxMywgMjQwLCAxNSwgOSwgMTMsIDI0MCwgMTQsIDksIDEzLCAyNDAsIDEzLCAKLSAgICA5LCAxMywgMjQwLCAxMiwgOSwgMTMsIDI0MCwgMTEsIDksIDEzLCAyNDAsIDEwLCA5LCAxMywgMjQwLCA5LCA5LCAxMywgCi0gICAgMjQwLCA4LCA5LCAxMywgMjQwLCA3LCA5LCAxMywgMjQwLCA2LCA5LCAxMywgMjQwLCA1LCA5LCAxMywgMjQwLCA0LCA5LCAKLSAgICAxMywgMjQwLCAzLCA5LCAxMywgMjQwLCAyLCA5LCAxMywgMjQwLCAxLCA5LCAxMywgMjQwLCAwLCA5LCAxMywgMjM5LCAyNTUsIAotICAgIDksIDEzLCAyMzksIDI1NCwgOSwgMTMsIDIzOSwgMjUzLCA5LCAxMywgMjM5LCAyNTIsIDksIDEzLCAyMzksIDI1MSwgOSwgCi0gICAgMTMsIDIzOSwgMjUwLCA5LCAxMywgMjM5LCAyNDksIDksIDEzLCAyMzksIDI0OCwgOSwgMTMsIDIzOSwgMjQ3LCA5LCAxMywgCi0gICAgMjM5LCAyNDYsIDksIDEzLCAyMzksIDI0NSwgOSwgMTMsIDIzOSwgMjQ0LCA5LCAxMywgMjM5LCAyNDMsIDksIDEzLCAyMzksIAotICAgIDI0MiwgOSwgMTMsIDIzOSwgMjQxLCA5LCAxMywgMjM5LCAyNDAsIDksIDEzLCAyMzksIDIzOSwgOSwgMTMsIDIzOSwgMjM4LCAKLSAgICA5LCAxMywgMjM5LCAyMzcsIDksIDEzLCAyMzksIDIzNiwgOSwgMTMsIDIzOSwgMjM1LCA5LCAxMywgMjM5LCAyMzQsIDksIAotICAgIDEzLCAyMzksIDIzMywgOSwgMTMsIDIzOSwgMjMyLCA5LCAxMywgMjM5LCAyMzEsIDksIDEzLCAyMzksIDIzMCwgOSwgMTMsIAotICAgIDIzOSwgMjI5LCA5LCAxMywgMjM5LCAyMjgsIDksIDEzLCAyMzksIDIyNywgOSwgMTMsIDIzOSwgMjI2LCA5LCAxMywgMjM5LCAKLSAgICAyMjUsIDksIDEzLCAyMzksIDIyNCwgOSwgMTMsIDIzOSwgMjIzLCA5LCAxMywgMjM5LCAyMjIsIDksIDEzLCAyMzksIDIyMSwgCi0gICAgOSwgMTMsIDIzOSwgMjIwLCA5LCAxMywgMjM5LCAyMTksIDksIDEzLCAyMzksIDIxOCwgOSwgMTMsIDIzOSwgMjE3LCA5LCAKLSAgICAxMywgMjM5LCAyMTYsIDksIDEzLCAyMzksIDIxNSwgOSwgMTMsIDIzOSwgMjE0LCA5LCAxMywgMjM5LCAyMTMsIDksIDEzLCAKLSAgICAyMzksIDIxMiwgOSwgMTMsIDIzOSwgMjExLCA5LCAxMywgMjM5LCAyMTAsIDksIDEzLCAyMzksIDIwOSwgOSwgMTMsIDIzOSwgCi0gICAgMjA4LCA5LCAxMywgMjM5LCAyMDcsIDksIDEzLCAyMzksIDIwNiwgOSwgMTMsIDIzOSwgMjA1LCA5LCAxMywgMjM5LCAyMDQsIAotICAgIDksIDEzLCAyMzksIDIwMywgOSwgMTMsIDIzOSwgMjAyLCA5LCAxMywgMjM5LCAyMDEsIDksIDEzLCAyMzksIDIwMCwgOSwgCi0gICAgMTMsIDIzOSwgMTk5LCA5LCAxMywgMjM5LCAxOTgsIDksIDEzLCAyMzksIDE5NywgOSwgMTMsIDIzOSwgMTk2LCA5LCAxMywgCi0gICAgMjM5LCAxOTUsIDksIDEzLCAyMzksIDE5NCwgOSwgMTMsIDIzOSwgMTkzLCA5LCAxMywgMjM5LCAxOTIsIDksIDEzLCAyMzksIAotICAgIDE5MSwgOSwgMTMsIDIzOSwgMTkwLCA5LCAxMywgMjM5LCAxODksIDksIDEzLCAyMzksIDE4OCwgOSwgMTMsIDIzOSwgMTg3LCAKLSAgICA5LCAxMywgMjM5LCAxODYsIDksIDEzLCAyMzksIDE4NSwgOSwgMTMsIDIzOSwgMTg0LCA5LCAxMywgMjM5LCAxODMsIDksIAotICAgIDEzLCAyMzksIDE4MiwgOSwgMTMsIDIzOSwgMTgxLCA5LCAxMywgMjM5LCAxODAsIDksIDEzLCAyMzksIDE3OSwgOSwgMTMsIAotICAgIDIzOSwgMTc4LCA5LCAxMywgMjM5LCAxNzcsIDksIDEzLCAyMzksIDE3NiwgOSwgMTMsIDIzOSwgMTc1LCA5LCAxMywgMjM5LCAKLSAgICAxNzQsIDksIDEzLCAyMzksIDE3MywgOSwgMTMsIDIzOSwgMTcyLCA5LCAxMywgMjM5LCAxNzEsIDksIDEzLCAyMzksIDE3MCwgCi0gICAgOSwgMTMsIDIzOSwgMTY5LCA5LCAxMywgMjM5LCAxNjgsIDksIDEzLCAyMzksIDE2NywgOSwgMTMsIDIzOSwgMTY2LCA5LCAKLSAgICAxMywgMjM5LCAxNjUsIDksIDEzLCAyMzksIDE2NCwgOSwgMTMsIDIzOSwgMTYzLCA5LCAxMywgMjM5LCAxNjIsIDksIDEzLCAKLSAgICAyMzksIDE2MSwgOSwgMTMsIDIzOSwgMTYwLCA5LCAxMywgMjM5LCAxNTksIDksIDEzLCAyMzksIDE1OCwgOSwgMTMsIDIzOSwgCi0gICAgMTU3LCA5LCAxMywgMjM5LCAxNTYsIDksIDEzLCAyMzksIDE1NSwgOSwgMTMsIDIzOSwgMTU0LCA5LCAxMywgMjM5LCAxNTMsIAotICAgIDksIDEzLCAyMzksIDE1MiwgOSwgMTMsIDIzOSwgMTUxLCA5LCAxMywgMjM5LCAxNTAsIDksIDEzLCAyMzksIDE0OSwgOSwgCi0gICAgMTMsIDIzOSwgMTQ4LCA5LCAxMywgMjM5LCAxNDcsIDksIDEzLCAyMzksIDE0NiwgOSwgMTMsIDIzOSwgMTQ1LCA5LCAxMywgCi0gICAgMjM5LCAxNDQsIDksIDEzLCAyMzksIDE0MywgOSwgMTMsIDIzOSwgMTQyLCA5LCAxMywgMjM5LCAxNDEsIDksIDEzLCAyMzksIAotICAgIDE0MCwgOSwgMTMsIDIzOSwgMTM5LCA5LCAxMywgMjM5LCAxMzgsIDksIDEzLCAyMzksIDEzNywgOSwgMTMsIDIzOSwgMTM2LCAKLSAgICA5LCAxMywgMjM5LCAxMzUsIDksIDEzLCAyMzksIDEzNCwgOSwgMTMsIDIzOSwgMTMzLCA5LCAxMywgMjM5LCAxMzIsIDksIAotICAgIDEzLCAyMzksIDEzMSwgOSwgMTMsIDIzOSwgMTMwLCA5LCAxMywgMjM5LCAxMjksIDksIDEzLCAyMzksIDEyOCwgOSwgMTMsIAotICAgIDIzOSwgMTI3LCA5LCAxMywgMjM5LCAxMjYsIDksIDEzLCAyMzksIDEyNSwgOSwgMTMsIDIzOSwgMTI0LCA5LCAxMywgMjM5LCAKLSAgICAxMjMsIDksIDEzLCAyMzksIDEyMiwgOSwgMTMsIDIzOSwgMTIxLCA5LCAxMywgMjM5LCAxMjAsIDksIDEzLCAyMzksIDExOSwgCi0gICAgOSwgMTMsIDIzOSwgMTE4LCA5LCAxMywgMjM5LCAxMTcsIDksIDEzLCAyMzksIDExNiwgOSwgMTMsIDIzOSwgMTE1LCA5LCAKLSAgICAxMywgMjM5LCAxMTQsIDksIDEzLCAyMzksIDExMywgOSwgMTMsIDIzOSwgMTEyLCA5LCAxMywgMjM5LCAxMTEsIDksIDEzLCAKLSAgICAyMzksIDExMCwgOSwgMTMsIDIzOSwgMTA5LCA5LCAxMywgMjM5LCAxMDgsIDksIDEzLCAyMzksIDEwNywgOSwgMTMsIDIzOSwgCi0gICAgMTA2LCA5LCAxMywgMjM5LCAxMDUsIDksIDEzLCAyMzksIDEwNCwgOSwgMTMsIDIzOSwgMTAzLCA5LCAxMywgMjM5LCAxMDIsIAotICAgIDksIDEzLCAyMzksIDEwMSwgOSwgMTMsIDIzOSwgMTAwLCA5LCAxMywgMjM5LCA5OSwgOSwgMTMsIDIzOSwgOTgsIDksIDEzLCAKLSAgICAyMzksIDk3LCA5LCAxMywgMjM5LCA5NiwgOSwgMTMsIDIzOSwgOTUsIDksIDEzLCAyMzksIDk0LCA5LCAxMywgMjM5LCA5MywgCi0gICAgOSwgMTMsIDIzOSwgOTIsIDksIDEzLCAyMzksIDkxLCA5LCAxMywgMjM5LCA5MCwgOSwgMTMsIDIzOSwgODksIDksIDEzLCAKLSAgICAyMzksIDg4LCA5LCAxMywgMjM5LCA4NywgOSwgMTMsIDIzOSwgODYsIDksIDEzLCAyMzksIDg1LCA5LCAxMywgMjM5LCA4NCwgCi0gICAgOSwgMTMsIDIzOSwgODMsIDksIDEzLCAyMzksIDgyLCA5LCAxMywgMjM5LCA4MSwgOSwgMTMsIDIzOSwgODAsIDksIDEzLCAKLSAgICAyMzksIDc5LCA5LCAxMywgMjM5LCA3OCwgOSwgMTMsIDIzOSwgNzcsIDksIDEzLCAyMzksIDc2LCA5LCAxMywgMjM5LCA3NSwgCi0gICAgOSwgMTMsIDIzOSwgNzQsIDksIDEzLCAyMzksIDczLCA5LCAxMywgMjM5LCA3MiwgOSwgMTMsIDIzOSwgNzEsIDksIDEzLCAKLSAgICAyMzksIDcwLCA5LCAxMywgMjM5LCA2OSwgOSwgMTMsIDIzOSwgNjgsIDksIDEzLCAyMzksIDY3LCA5LCAxMywgMjM5LCA2NiwgCi0gICAgOSwgMTMsIDIzOSwgNjUsIDksIDEzLCAyMzksIDY0LCA5LCAxMywgMjM5LCA2MywgOSwgMTMsIDIzOSwgNjIsIDksIDEzLCAKLSAgICAyMzksIDYxLCA5LCAxMywgMjM5LCA2MCwgOSwgMTMsIDIzOSwgNTksIDksIDEzLCAyMzksIDU4LCA5LCAxMywgMjM5LCA1NywgCi0gICAgOSwgMTMsIDIzOSwgNTYsIDksIDEzLCAyMzksIDU1LCA5LCAxMywgMjM5LCA1NCwgOSwgMTMsIDIzOSwgNTMsIDksIDEzLCAKLSAgICAyMzksIDUyLCA5LCAxMywgMjM5LCA1MSwgOSwgMTMsIDIzOSwgNTAsIDksIDEzLCAyMzksIDQ5LCA5LCAxMywgMjM5LCA0OCwgCi0gICAgOSwgMTMsIDIzOSwgNDcsIDksIDEzLCAyMzksIDQ2LCA5LCAxMywgMjM5LCA0NSwgOSwgMTMsIDIzOSwgNDQsIDksIDEzLCAKLSAgICAyMzksIDQzLCA5LCAxMywgMjM5LCA0MiwgOSwgMTMsIDIzOSwgNDEsIDksIDEzLCAyMzksIDQwLCA5LCAxMywgMjM5LCAzOSwgCi0gICAgOSwgMTMsIDIzOSwgMzgsIDksIDEzLCAyMzksIDM3LCA5LCAxMywgMjM5LCAzNiwgOSwgMTMsIDIzOSwgMzUsIDksIDEzLCAKLSAgICAyMzksIDM0LCA5LCAxMywgMjM5LCAzMywgOSwgMTMsIDIzOSwgMzIsIDksIDEzLCAyMzksIDMxLCA5LCAxMywgMjM5LCAzMCwgCi0gICAgOSwgMTMsIDIzOSwgMjksIDksIDEzLCAyMzksIDI4LCA5LCAxMywgMjM5LCAyNywgOSwgMTMsIDIzOSwgMjYsIDksIDEzLCAKLSAgICAyMzksIDI1LCA5LCAxMywgMjM5LCAyNCwgOSwgMTMsIDIzOSwgMjMsIDksIDEzLCAyMzksIDIyLCA5LCAxMywgMjM5LCAyMSwgCi0gICAgOSwgMTMsIDIzOSwgMjAsIDksIDEzLCAyMzksIDE5LCA5LCAxMywgMjM5LCAxOCwgOSwgMTMsIDIzOSwgMTcsIDksIDEzLCAKLSAgICAyMzksIDE2LCA5LCAxMywgMjM5LCAxNSwgOSwgMTMsIDIzOSwgMTQsIDksIDEzLCAyMzksIDEzLCA5LCAxMywgMjM5LCAxMiwgCi0gICAgOSwgMTMsIDIzOSwgMTEsIDksIDEzLCAyMzksIDEwLCA5LCAxMywgMjM5LCA5LCA5LCAxMywgMjM5LCA4LCA5LCAxMywgMjM5LCAKLSAgICA3LCA5LCAxMywgMjM5LCA2LCA5LCAxMywgMjM5LCA1LCA5LCAxMywgMjM5LCA0LCA5LCAxMywgMjM5LCAzLCA5LCAxMywgCi0gICAgMjM5LCAyLCA5LCAxMywgMjM5LCAxLCA5LCAxMywgMjM5LCAwLCA5LCAxMywgMjM4LCAyNTUsIDksIDEzLCAyMzgsIDI1NCwgCi0gICAgOSwgMTMsIDIzOCwgMjUzLCA5LCAxMywgMjM4LCAyNTIsIDksIDEzLCAyMzgsIDI1MSwgOSwgMTMsIDIzOCwgMjUwLCA5LCAKLSAgICAxMywgMjM4LCAyNDksIDksIDEzLCAyMzgsIDI0OCwgOSwgMTMsIDIzOCwgMjQ3LCA5LCAxMywgMjM4LCAyNDYsIDksIDEzLCAKLSAgICAyMzgsIDI0NSwgOSwgMTMsIDIzOCwgMjQ0LCA5LCAxMywgMjM4LCAyNDMsIDksIDEzLCAyMzgsIDI0MiwgOSwgMTMsIDIzOCwgCi0gICAgMjQxLCA5LCAxMywgMjM4LCAyNDAsIDksIDEzLCAyMzgsIDIzOSwgOSwgMTMsIDIzOCwgMjM4LCA5LCAxMywgMjM4LCAyMzcsIAotICAgIDksIDEzLCAyMzgsIDIzNiwgOSwgMTMsIDIzOCwgMjM1LCA5LCAxMywgMjM4LCAyMzQsIDksIDEzLCAyMzgsIDIzMywgOSwgCi0gICAgMTMsIDIzOCwgMjMyLCA5LCAxMywgMjM4LCAyMzEsIDksIDEzLCAyMzgsIDIzMCwgOSwgMTMsIDIzOCwgMjI5LCA5LCAxMywgCi0gICAgMjM4LCAyMjgsIDksIDEzLCAyMzgsIDIyNywgOSwgMTMsIDIzOCwgMjI2LCA5LCAxMywgMjM4LCAyMjUsIDksIDEzLCAyMzgsIAotICAgIDIyNCwgOSwgMTMsIDIzOCwgMjIzLCA5LCAxMywgMjM4LCAyMjIsIDksIDEzLCAyMzgsIDIyMSwgOSwgMTMsIDIzOCwgMjIwLCAKLSAgICA5LCAxMywgMjM4LCAyMTksIDksIDEzLCAyMzgsIDIxOCwgOSwgMTMsIDIzOCwgMjE3LCA5LCAxMywgMjM4LCAyMTYsIDksIAotICAgIDEzLCAyMzgsIDIxNSwgOSwgMTMsIDIzOCwgMjE0LCA5LCAxMywgMjM4LCAyMTMsIDksIDEzLCAyMzgsIDIxMiwgOSwgMTMsIAotICAgIDIzOCwgMjExLCA5LCAxMywgMjM4LCAyMTAsIDksIDEzLCAyMzgsIDIwOSwgOSwgMTMsIDIzOCwgMjA4LCA5LCAxMywgMjM4LCAKLSAgICAyMDcsIDksIDEzLCAyMzgsIDIwNiwgOSwgMTMsIDIzOCwgMjA1LCA5LCAxMywgMjM4LCAyMDQsIDksIDEzLCAyMzgsIDIwMywgCi0gICAgOSwgMTMsIDIzOCwgMjAyLCA5LCAxMywgMjM4LCAyMDEsIDksIDEzLCAyMzgsIDIwMCwgOSwgMTMsIDIzOCwgMTk5LCA5LCAKLSAgICAxMywgMjM4LCAxOTgsIDksIDEzLCAyMzgsIDE5NywgOSwgMTMsIDIzOCwgMTk2LCA5LCAxMywgMjM4LCAxOTUsIDksIDEzLCAKLSAgICAyMzgsIDE5NCwgOSwgMTMsIDIzOCwgMTkzLCA5LCAxMywgMjM4LCAxOTIsIDksIDEzLCAyMzgsIDE5MSwgOSwgMTMsIDIzOCwgCi0gICAgMTkwLCA5LCAxMywgMjM4LCAxODksIDksIDEzLCAyMzgsIDE4OCwgOSwgMTMsIDIzOCwgMTg3LCA5LCAxMywgMjM4LCAxODYsIAotICAgIDksIDEzLCAyMzgsIDE4NSwgOSwgMTMsIDIzOCwgMTg0LCA5LCAxMywgMjM4LCAxODMsIDksIDEzLCAyMzgsIDE4MiwgOSwgCi0gICAgMTMsIDIzOCwgMTgxLCA5LCAxMywgMjM4LCAxODAsIDksIDEzLCAyMzgsIDE3OSwgOSwgMTMsIDIzOCwgMTc4LCA5LCAxMywgCi0gICAgMjM4LCAxNzcsIDksIDEzLCAyMzgsIDE3NiwgOSwgMTMsIDIzOCwgMTc1LCA5LCAxMywgMjM4LCAxNzQsIDksIDEzLCAyMzgsIAotICAgIDE3MywgOSwgMTMsIDIzOCwgMTcyLCA5LCAxMywgMjM4LCAxNzEsIDksIDEzLCAyMzgsIDE3MCwgOSwgMTMsIDIzOCwgMTY5LCAKLSAgICA5LCAxMywgMjM4LCAxNjgsIDksIDEzLCAyMzgsIDE2NywgOSwgMTMsIDIzOCwgMTY2LCA5LCAxMywgMjM4LCAxNjUsIDksIAotICAgIDEzLCAyMzgsIDE2NCwgOSwgMTMsIDIzOCwgMTYzLCA5LCAxMywgMjM4LCAxNjIsIDksIDEzLCAyMzgsIDE2MSwgOSwgMTMsIAotICAgIDIzOCwgMTYwLCA5LCAxMywgMjM4LCAxNTksIDksIDEzLCAyMzgsIDE1OCwgOSwgMTMsIDIzOCwgMTU3LCA5LCAxMywgMjM4LCAKLSAgICAxNTYsIDksIDEzLCAyMzgsIDE1NSwgOSwgMTMsIDIzOCwgMTU0LCA5LCAxMywgMjM4LCAxNTMsIDksIDEzLCAyMzgsIDE1MiwgCi0gICAgOSwgMTMsIDIzOCwgMTUxLCA5LCAxMywgMjM4LCAxNTAsIDksIDEzLCAyMzgsIDE0OSwgOSwgMTMsIDIzOCwgMTQ4LCA5LCAKLSAgICAxMywgMjM4LCAxNDcsIDksIDEzLCAyMzgsIDE0NiwgOSwgMTMsIDIzOCwgMTQ1LCA5LCAxMywgMjM4LCAxNDQsIDksIDEzLCAKLSAgICAyMzgsIDE0MywgOSwgMTMsIDIzOCwgMTQyLCA5LCAxMywgMjM4LCAxNDEsIDksIDEzLCAyMzgsIDE0MCwgOSwgMTMsIDIzOCwgCi0gICAgMTM5LCA5LCAxMywgMjM4LCAxMzgsIDksIDEzLCAyMzgsIDEzNywgOSwgMTMsIDIzOCwgMTM2LCA5LCAxMywgMjM4LCAxMzUsIAotICAgIDksIDEzLCAyMzgsIDEzNCwgOSwgMTMsIDIzOCwgMTMzLCA5LCAxMywgMjM4LCAxMzIsIDksIDEzLCAyMzgsIDEzMSwgOSwgCi0gICAgMTMsIDIzOCwgMTMwLCA5LCAxMywgMjM4LCAxMjksIDksIDEzLCAyMzgsIDEyOCwgOSwgMTMsIDIzOCwgMTI3LCA5LCAxMywgCi0gICAgMjM4LCAxMjYsIDksIDEzLCAyMzgsIDEyNSwgOSwgMTMsIDIzOCwgMTI0LCA5LCAxMywgMjM4LCAxMjMsIDksIDEzLCAyMzgsIAotICAgIDEyMiwgOSwgMTMsIDIzOCwgMTIxLCA5LCAxMywgMjM4LCAxMjAsIDksIDEzLCAyMzgsIDExOSwgOSwgMTMsIDIzOCwgMTE4LCAKLSAgICA5LCAxMywgMjM4LCAxMTcsIDksIDEzLCAyMzgsIDExNiwgOSwgMTMsIDIzOCwgMTE1LCA5LCAxMywgMjM4LCAxMTQsIDksIAotICAgIDEzLCAyMzgsIDExMywgOSwgMTMsIDIzOCwgMTEyLCA5LCAxMywgMjM4LCAxMTEsIDksIDEzLCAyMzgsIDExMCwgOSwgMTMsIAotICAgIDIzOCwgMTA5LCA5LCAxMywgMjM4LCAxMDgsIDksIDEzLCAyMzgsIDEwNywgOSwgMTMsIDIzOCwgMTA2LCA5LCAxMywgMjM4LCAKLSAgICAxMDUsIDksIDEzLCAyMzgsIDEwNCwgOSwgMTMsIDIzOCwgMTAzLCA5LCAxMywgMjM4LCAxMDIsIDksIDEzLCAyMzgsIDEwMSwgCi0gICAgOSwgMTMsIDIzOCwgMTAwLCA5LCAxMywgMjM4LCA5OSwgOSwgMTMsIDIzOCwgOTgsIDksIDEzLCAyMzgsIDk3LCA5LCAxMywgCi0gICAgMjM4LCA5NiwgOSwgMTMsIDIzOCwgOTUsIDksIDEzLCAyMzgsIDk0LCA5LCAxMywgMjM4LCA5MywgOSwgMTMsIDIzOCwgOTIsIAotICAgIDksIDEzLCAyMzgsIDkxLCA5LCAxMywgMjM4LCA5MCwgOSwgMTMsIDIzOCwgODksIDksIDEzLCAyMzgsIDg4LCA5LCAxMywgCi0gICAgMjM4LCA4NywgOSwgMTMsIDIzOCwgODYsIDksIDEzLCAyMzgsIDg1LCA5LCAxMywgMjM4LCA4NCwgOSwgMTMsIDIzOCwgODMsIAotICAgIDksIDEzLCAyMzgsIDgyLCA5LCAxMywgMjM4LCA4MSwgOSwgMTMsIDIzOCwgODAsIDksIDEzLCAyMzgsIDc5LCA5LCAxMywgCi0gICAgMjM4LCA3OCwgOSwgMTMsIDIzOCwgNzcsIDksIDEzLCAyMzgsIDc2LCA5LCAxMywgMjM4LCA3NSwgOSwgMTMsIDIzOCwgNzQsIAotICAgIDksIDEzLCAyMzgsIDczLCA5LCAxMywgMjM4LCA3MiwgOSwgMTMsIDIzOCwgNzEsIDksIDEzLCAyMzgsIDcwLCA5LCAxMywgCi0gICAgMjM4LCA2OSwgOSwgMTMsIDIzOCwgNjgsIDksIDEzLCAyMzgsIDY3LCA5LCAxMywgMjM4LCA2NiwgMjMzLCAxMTQsIDIxOCwgCi0gICAgMzMsIDEyNiwgMjE5LCAyMDYsIDEyNiwgMjQ0LCAyNTQsIDc3LCAxMjYsIDIyNCwgMTQzLCA3NywgMTI2LCA1MCwgNTIsIAotICAgIDEyNiwgMjQ3LCA4NiwgNTIsIDEyNiwgMjI2LCA1NywgNTIsIDEyNiwgMjU0LCAzNSwgMTI2LCAyNTMsIDIyNiwgMTI2LCA0MiwgCi0gICAgMjI2LCAxMzEsIDEyNiwgNDYsIDIyNiwgMTMxLCAxMjYsIDI1MywgMTMyLCAxMjYsIDk0LCA1MiwgMTI2LCAyNDksIDE1NywgCi0gICAgMTI2LCAyNDAsIDE1OSwgMTI2LCAyNDMsIDIwMCwgMjE5LCA2OSwgMTI2LCAyMTksIDIzMSwgMTI2LCAyMSwgMjEyLCA3OSwgCi0gICAgMTI2LCAyMSwgMTE2LCAxMjYsIDIxLCAxMDksIDEyNiwgMjEsIDE2NiwgMTI2LCAyMSwgMTYzLCAxMjYsIDIxLCAxODAsIAotICAgIDEyNiwgMjEsIDE4OSwgMTI2LCAyMSwgMTk4LCAxMjYsIDIxLCAxOTUsIDEyNiwgMjEsIDIwMCwgMTI2LCAyNDksIDE2NCwgCi0gICAgMTI2LCAyMjEsIDcwLCAxMjYsIDIzMywgMzksIDUyLCAxMjYsIDI0NSwgNjEsIDUyLCAxMjYsIDI0MiwgMTA3LCA1MiwgMTI2LCAKLSAgICAyMjQsIDE1OCwgNzcsIDEyNiwgMjQ5LCAxNTYsIDI1MywgMTIyLCAxMjYsIDcsIDYsIDEsIDYxLCAxMjYsIDcsIDYsIDEsIAotICAgIDI1MywgNzQsIDEyNiwgNywgNiwgMSwgMjUwLCAyNTIsIDEyNiwgNywgNiwgMSwgMjQ5LCAzLCAxMjYsIDcsIDYsIDEsIDc0LCAKLSAgICAxMjYsIDcsIDYsIDEsIDI0NCwgMjMwLCAxMjYsIDcsIDYsIDEsIDI0MywgMTc3LCAxMjYsIDcsIDYsIDEsIDI0MiwgNDEsIAotICAgIDEyNiwgNywgNiwgMSwgNzIsIDEyNiwgNywgNiwgMSwgMjM1LCAxNDIsIDEyNiwgNywgNiwgMSwgMjM1LCAyNywgMTI2LCA3LCAKLSAgICA2LCAxLCAxNTAsIDEyNiwgNywgNiwgMSwgMTgzLCAxMjYsIDcsIDYsIDEsIDIwNCwgMTI2LCA3LCA2LCAxLCA3NSwgMTI2LCAKLSAgICA3LCA2LCAxLCAyMjYsIDIyOSwgMTI2LCA3LCA2LCAxLCAyMjQsIDI0MCwgMTI2LCA3LCA2LCAxLCAxNDksIDEyNiwgNywgNiwgCi0gICAgMSwgMTk3LCAxMjYsIDcsIDYsIDEsIDIxOCwgOTksIDEyNiwgNywgNiwgMSwgNjksIDEyNiwgNywgNiwgMSwgMjE1LCA3OSwgCi0gICAgMTI2LCA3LCA2LCAxLCAyMTQsIDgyLCAxMjYsIDcsIDYsIDEsIDIxMywgMTY2LCAxMjYsIDcsIDYsIDEsIDIxMywgMTA1LCAKLSAgICAxMjYsIDcsIDYsIDEsIDIxMiwgMTUyLCAxMjYsIDQyLCA0MSwgMTI1LCAxMjYsIDIyMywgMjAzLCAyMTksIDIzMSwgMTI2LCAKLSAgICA0NiwgNDEsIDEyNSwgMTI2LCAyNDksIDIyNCwgMjU0LCAxNzQsIDEyNiwgMTE1LCAyMzIsIDI0MiwgMTI2LCAyNDIsIDExNCwgCi0gICAgMjU0LCAxNzQsIDEyNiwgNywgMywgMSwgNjEsIDEyNiwgNywgMywgMSwgMjUzLCA3NCwgMTI2LCA3LCAzLCAxLCAyNTAsIAotICAgIDI1MiwgMTI2LCA3LCAzLCAxLCAyNDksIDMsIDEyNiwgNywgMywgMSwgNzQsIDEyNiwgNywgMywgMSwgMjQ0LCAyMzAsIDEyNiwgCi0gICAgNywgMywgMSwgMjQzLCAxNzcsIDEyNiwgNywgMywgMSwgMjQyLCA0MSwgMTI2LCA3LCAzLCAxLCA3MiwgMTI2LCA3LCAzLCAxLCAKLSAgICAyMzUsIDE0MiwgMTI2LCA3LCAzLCAxLCAyMzUsIDI3LCAxMjYsIDcsIDMsIDEsIDE1MCwgMTI2LCA3LCAzLCAxLCAxODMsIAotICAgIDEyNiwgNywgMywgMSwgMjA0LCAxMjYsIDcsIDMsIDEsIDc1LCAxMjYsIDcsIDMsIDEsIDIyNiwgMjI5LCAxMjYsIDcsIDMsIAotICAgIDEsIDIyNCwgMjQwLCAxMjYsIDcsIDMsIDEsIDE0OSwgMTI2LCA3LCAzLCAxLCAxOTcsIDEyNiwgNywgMywgMSwgMjE4LCA5OSwgCi0gICAgMTI2LCA3LCAzLCAxLCA2OSwgMTI2LCA3LCAzLCAxLCAyMTUsIDc5LCAxMjYsIDcsIDMsIDEsIDIxNCwgODIsIDEyNiwgNywgCi0gICAgMywgMSwgMjEzLCAxNjYsIDEyNiwgNywgMywgMSwgMjEzLCAxMDUsIDEyNiwgNywgMywgMSwgMjEyLCAxNTIsIDEyNiwgNDIsIAotICAgIDI0OSwgNDAsIDEyNSwgMTI2LCA3MSwgMjMyLCAyNDIsIDEyNiwgNDYsIDI0OSwgNDAsIDEyNSwgMTI2LCAyMTcsIDQyLCAKLSAgICAyNTAsIDE5NCwgMjE4LCAzMywgNDMsIDIyMSwgMjU0LCA0MywgMjIxLCAyNDMsIDQzLCAyMjEsIDIzMiwgNDMsIDIyMSwgCi0gICAgMjIwLCA0MywgMjIxLCAyMDksIDQzLCAyMjEsIDE5OCwgNDMsIDIyMSwgMTg3LCA0MywgMjIxLCAxNzYsIDQzLCAyMjEsIAotICAgIDE2NSwgNDMsIDIyMSwgMTU3LCA0MywgMjIxLCAxNTYsIDQzLCAyMjEsIDE1NSwgNDMsIDIyMSwgMTU0LCA0MywgMjIxLCAKLSAgICAxNTIsIDQzLCAyMjEsIDE1MSwgNDMsIDIyMSwgMTUwLCA0MywgMjIxLCAxNDksIDQzLCAyMjEsIDE0OCwgNDMsIDIyMSwgCi0gICAgMTQ3LCA0MywgMjIxLCAxNDYsIDQzLCAyMjEsIDE0NSwgNDMsIDIyMSwgMTQ0LCA0MywgMjIxLCAxNDMsIDQzLCAyMjEsIAotICAgIDE0MSwgNDMsIDIyMSwgMTQwLCA0MywgMjIxLCAxMzksIDQzLCAyMjEsIDEzOCwgNDMsIDIyMSwgMTM3LCA0MywgMjIxLCAKLSAgICAxMzYsIDQzLCAyMjEsIDEzNSwgNDMsIDIyMSwgMTM0LCA0MywgMjIxLCAxMzMsIDQzLCAyMjEsIDEzMiwgNDMsIDIyMSwgCi0gICAgMTMwLCA0MywgMjIxLCAxMjksIDQzLCAyMjEsIDEyOCwgNDMsIDIyMSwgMTI3LCA0MywgMjIxLCAxMjYsIDQzLCAyMjEsIAotICAgIDEyNSwgNDMsIDIyMSwgMTI0LCA0MywgMjIxLCAxMjMsIDQzLCAyMjEsIDEyMiwgNDMsIDIyMSwgMTIxLCA0MywgMjIxLCAKLSAgICAxMTksIDQzLCAyMjEsIDExOCwgNDMsIDIyMSwgMTE3LCA0MywgMjIxLCAxMTYsIDQzLCAyMjEsIDExNSwgNDMsIDIyMSwgCi0gICAgMTE0LCA0MywgMjIxLCAxMTMsIDQzLCAyMjEsIDExMiwgNDMsIDIyMSwgMTExLCA0MywgMjIxLCAxMTAsIDQzLCAyMjEsIAotICAgIDEwOCwgNDMsIDIyMSwgMTA3LCA0MywgMjIxLCAxMDYsIDQzLCAyMjEsIDEwNSwgNDMsIDIyMSwgMTA0LCA0MywgMjIxLCAKLSAgICAxMDMsIDQzLCAyMjEsIDEwMiwgNDMsIDIyMSwgMTAxLCA0MywgMjIxLCAxMDAsIDQzLCAyMjEsIDk5LCA0MywgMjIxLCA5NywgCi0gICAgNDMsIDIyMSwgOTYsIDQzLCAyMjEsIDk1LCA0MywgMjIxLCA5NCwgNDMsIDIyMSwgOTMsIDQzLCAyMjEsIDkyLCA0MywgMjIxLCAKLSAgICA5MSwgNDMsIDIyMSwgOTAsIDQzLCAyMjEsIDg5LCA0MywgMjIxLCA4OCwgNDMsIDIyMSwgODYsIDQzLCAyMjEsIDg1LCA0MywgCi0gICAgMjIxLCA4NCwgNDMsIDIyMSwgODMsIDQzLCAyMjEsIDgyLCA0MywgMjIxLCA4MSwgNDMsIDIyMSwgODAsIDQzLCAyMjEsIDc5LCAKLSAgICA0MywgMjIxLCA3OCwgNDMsIDIyMSwgNzcsIDQzLCAyMjIsIDc0LCA0MywgMjIyLCA3MywgNDMsIDIyMiwgNzIsIDQzLCAyMjIsIAotICAgIDcxLCA0MywgMjIyLCA3MCwgNDMsIDIyMiwgNjksIDQzLCAyMjIsIDY4LCA0MywgMjIyLCA2NywgNDMsIDIyMiwgNjYsIDQzLCAKLSAgICAyMjIsIDY1LCA0MywgMjIyLCA2MywgNDMsIDIyMiwgNjIsIDQzLCAyMjIsIDYxLCA0MywgMjIyLCA2MCwgNDMsIDIyMiwgNTksIAotICAgIDQzLCAyMjIsIDU4LCA0MywgMjIyLCA1NywgNDMsIDIyMiwgNTYsIDQzLCAyMjIsIDU1LCA0MywgMjIyLCA1NCwgNDMsIDIyMiwgCi0gICAgNTIsIDQzLCAyMjIsIDUxLCA0MywgMjIyLCA1MCwgNDMsIDIyMiwgNDksIDQzLCAyMjIsIDQ4LCA0MywgMjIyLCA0NywgNDMsIAotICAgIDIyMiwgNDYsIDQzLCAyMjIsIDQ1LCA0MywgMjIyLCA0NCwgNDMsIDIyMiwgNDMsIDQzLCAyMjIsIDQxLCA0MywgMjIyLCA0MCwgCi0gICAgNDMsIDIyMiwgMzksIDQzLCAyMjIsIDM4LCA0MywgMjIyLCAzNywgNDMsIDIyMiwgMzYsIDQzLCAyMjIsIDM1LCA0MywgMjIyLCAKLSAgICAzNCwgNDMsIDIyMiwgMzMsIDQzLCAyMjIsIDMyLCA0MywgMjIyLCAzMCwgNDMsIDIyMiwgMjksIDQzLCAyMjIsIDI4LCA0MywgCi0gICAgMjIyLCAyNywgNDMsIDIyMiwgMjYsIDQzLCAyMjIsIDI1LCA0MywgMjIyLCAyNCwgNDMsIDIyMiwgMjMsIDQzLCAyMjIsIDIyLCAKLSAgICA0MywgMjIyLCAyMSwgNDMsIDIyMiwgMTksIDQzLCAyMjIsIDE4LCA0MywgMjIyLCAxNywgNDMsIDIyMiwgMTYsIDQzLCAyMjIsIAotICAgIDE1LCA0MywgMjIyLCAxNCwgNDMsIDIyMiwgMTMsIDQzLCAyMjIsIDEyLCA0MywgMjIyLCAxMSwgNDMsIDIyMiwgMTAsIDQzLCAKLSAgICAyMjIsIDgsIDQzLCAyMjIsIDcsIDQzLCAyMjIsIDYsIDQzLCAyMjIsIDUsIDQzLCAyMjIsIDQsIDQzLCAyMjIsIDMsIDQzLCAKLSAgICAyMjIsIDIsIDQzLCAyMjIsIDEsIDQzLCAyMjIsIDAsIDQzLCAyMjEsIDI1NSwgNDMsIDIyMSwgMjUzLCA0MywgMjIxLCAyNTIsIAotICAgIDQzLCAyMjEsIDI1MSwgNDMsIDIyMSwgMjUwLCA0MywgMjIxLCAyNDksIDQzLCAyMjEsIDI0OCwgNDMsIDIyMSwgMjQ3LCA0MywgCi0gICAgMjIxLCAyNDYsIDQzLCAyMjEsIDI0NSwgNDMsIDIyMSwgMjQ0LCA0MywgMjIxLCAyNDIsIDQzLCAyMjEsIDI0MSwgNDMsIAotICAgIDIyMSwgMjQwLCA0MywgMjIxLCAyMzksIDQzLCAyMjEsIDIzOCwgNDMsIDIyMSwgMjM3LCA0MywgMjIxLCAyMzYsIDQzLCAKLSAgICAyMjEsIDIzNSwgNDMsIDIyMSwgMjM0LCA0MywgMjIxLCAyMzMsIDQzLCAyMjEsIDIzMSwgNDMsIDIyMSwgMjMwLCA0MywgCi0gICAgMjIxLCAyMjksIDQzLCAyMjEsIDIyOCwgNDMsIDIyMSwgMjI3LCA0MywgMjIxLCAyMjYsIDQzLCAyMjEsIDIyNSwgNDMsIAotICAgIDIyMSwgMjI0LCA0MywgMjIxLCAyMjMsIDQzLCAyMjEsIDIyMiwgNDMsIDIyMSwgMjE5LCA0MywgMjIxLCAyMTgsIDQzLCAKLSAgICAyMjEsIDIxNywgNDMsIDIyMSwgMjE2LCA0MywgMjIxLCAyMTUsIDQzLCAyMjEsIDIxNCwgNDMsIDIyMSwgMjEzLCA0MywgCi0gICAgMjIxLCAyMTIsIDQzLCAyMjEsIDIxMSwgNDMsIDIyMSwgMjEwLCA0MywgMjIxLCAyMDgsIDQzLCAyMjEsIDIwNywgNDMsIAotICAgIDIyMSwgMjA2LCA0MywgMjIxLCAyMDUsIDQzLCAyMjEsIDIwNCwgNDMsIDIyMSwgMjAzLCA0MywgMjIxLCAyMDIsIDQzLCAKLSAgICAyMjEsIDIwMSwgNDMsIDIyMSwgMjAwLCA0MywgMjIxLCAxOTksIDQzLCAyMjEsIDE5NywgNDMsIDIyMSwgMTk2LCA0MywgCi0gICAgMjIxLCAxOTUsIDQzLCAyMjEsIDE5NCwgNDMsIDIyMSwgMTkzLCA0MywgMjIxLCAxOTIsIDQzLCAyMjEsIDE5MSwgNDMsIAotICAgIDIyMSwgMTkwLCA0MywgMjIxLCAxODksIDQzLCAyMjEsIDE4OCwgNDMsIDIyMSwgMTg2LCA0MywgMjIxLCAxODUsIDQzLCAKLSAgICAyMjEsIDE4NCwgNDMsIDIyMSwgMTgzLCA0MywgMjIxLCAxODIsIDQzLCAyMjEsIDE4MSwgNDMsIDIyMSwgMTgwLCA0MywgCi0gICAgMjIxLCAxNzksIDQzLCAyMjEsIDE3OCwgNDMsIDIyMSwgMTc3LCA0MywgMjIxLCAxNzUsIDQzLCAyMjEsIDE3NCwgNDMsIAotICAgIDIyMSwgMTczLCA0MywgMjIxLCAxNzIsIDQzLCAyMjEsIDE3MSwgNDMsIDIyMSwgMTcwLCA0MywgMjIxLCAxNjksIDQzLCAKLSAgICAyMjEsIDE2OCwgNDMsIDIyMSwgMTY3LCA0MywgMjIxLCAxNjYsIDQzLCAyMjEsIDE2NCwgNDMsIDIyMSwgMTYzLCA0MywgCi0gICAgMjIxLCAxNjIsIDQzLCAyMjEsIDE2MSwgNDMsIDIyMSwgMTYwLCA0MywgMjIxLCAxNTksIDQzLCAyMjEsIDE1OCwgCisgICAgMCwgMjE5LCAxOCwgMjQ1LCAzMSwgNzgsIDIyMywgMjU0LCA3OCwgNTQsIDUwLCAyNDcsIDEzMiwgNTAsIDIyNSwgMTgyLCAKKyAgICA1MCwgMjU0LCAxMjYsIDI1NCwgNTcsIDQzLCAyMjYsIDMsIDQ0LCAyMjYsIDMsIDI1MywgMjE2LCA5NiwgNTAsIDI0OSwgCisgICAgMjE5LCAyNDAsIDE2NywgMjQzLCAyMjksIDIxOCwgMTI5LCAyMTksIDQ2LCAyMSwgMjEwLCA4NiwgMjEsIDExMCwgMjEsIAorICAgIDEwNSwgMjEsIDE1OCwgMjEsIDE2MSwgMjEsIDE4OSwgMjEsIDE5NCwgMjEsIDE5OCwgMjEsIDE5NSwgMjEsIDIwMCwgMjQ5LCAKKyAgICAyMjYsIDIyMCwgMTUwLCAyMzMsIDE1LCA1MCwgMjQ1LCA5OCwgNTAsIDI0MiwgMTMwLCA1MCwgMjI0LCAxMywgNzgsIDI0OSwgCisgICAgMjE3LCAyNTMsIDIwNiwgNywgNiwgMSwgNjEsIDcsIDYsIDEsIDI1MywgMTU4LCA3LCA2LCAxLCAyNTEsIDY2LCA3LCA2LCAxLCAKKyAgICAyNDksIDYwLCA3LCA2LCAxLCA3NSwgNywgNiwgMSwgMjQ1LCA2LCA3LCA2LCAxLCAyNDMsIDIwMiwgNywgNiwgMSwgMjQyLCAKKyAgICA2MCwgNywgNiwgMSwgNzMsIDcsIDYsIDEsIDIzNSwgMTQ0LCA3LCA2LCAxLCAyMzUsIDIzLCA3LCA2LCAxLCAxNTYsIDcsIDYsIAorICAgIDEsIDE5MywgNywgNiwgMSwgMjMwLCAyNSwgNywgNiwgMSwgNzYsIDcsIDYsIDEsIDIyNiwgMTA1LCA3LCA2LCAxLCAyMjQsIAorICAgIDk2LCA3LCA2LCAxLCAxNTMsIDcsIDYsIDEsIDIyMiwgOTEsIDcsIDYsIDEsIDIxNywgMTUyLCA3LCA2LCAxLCA3MCwgNywgNiwgCisgICAgMSwgMjE0LCAxMDUsIDcsIDYsIDEsIDIxMiwgOTgsIDcsIDYsIDEsIDIxMSwgMTc4LCA3LCA2LCAxLCAyMTEsIDExNywgNywgCisgICAgNiwgMSwgMjEwLCAxNTksIDQzLCA0MiwgMTI3LCAyMjMsIDUwLCAyMTksIDQ2LCA0NCwgNDIsIDEyNywgMjUwLCAzMSwgMjU1LCAKKyAgICAxNCwgMTIxLCAyMzIsIDIxMywgMjQyLCAxMzcsIDI1NSwgMTQsIDcsIDQsIDEsIDYxLCA3LCA0LCAxLCAyNTMsIDE1OCwgNywgCisgICAgNCwgMSwgMjUxLCA2NiwgNywgNCwgMSwgMjQ5LCA2MCwgNywgNCwgMSwgNzUsIDcsIDQsIDEsIDI0NSwgNiwgNywgNCwgMSwgCisgICAgMjQzLCAyMDIsIDcsIDQsIDEsIDI0MiwgNjAsIDcsIDQsIDEsIDczLCA3LCA0LCAxLCAyMzUsIDE0NCwgNywgNCwgMSwgMjM1LCAKKyAgICAyMywgNywgNCwgMSwgMTU2LCA3LCA0LCAxLCAxOTMsIDcsIDQsIDEsIDIzMCwgMjUsIDcsIDQsIDEsIDc2LCA3LCA0LCAxLCAKKyAgICAyMjYsIDEwNSwgNywgNCwgMSwgMjI0LCA5NiwgNywgNCwgMSwgMTUzLCA3LCA0LCAxLCAyMjIsIDkxLCA3LCA0LCAxLCAyMTcsIAorICAgIDE1MiwgNywgNCwgMSwgNzAsIDcsIDQsIDEsIDIxNCwgMTA1LCA3LCA0LCAxLCAyMTIsIDk4LCA3LCA0LCAxLCAyMTEsIDE3OCwgCisgICAgNywgNCwgMSwgMjExLCAxMTcsIDcsIDQsIDEsIDIxMCwgMTU5LCA0MywgMjQ5LCA5OSwgMTI3LCA2NywgMjMyLCAyMTMsIDQ0LCAKKyAgICAyNDksIDk5LCAxMjcsIDE4MiwgMjI4LCA3MywgMjE5LCAxOCwgMjM1LCAxOTMsIDI0NSwgMzEsIDc4LCAyNTAsIDE3NiwgNTAsIAorICAgIDIyNCwgMjI4LCA1MCwgMjQ5LCA5OCwgNTAsIDIxMSwgNDAsIDUwLCAyNTEsIDEzNSwgMTMwLCAyMjEsIDE3MywgNTAsIDI0OCwgCisgICAgMSwgMjQ5LCAxNjMsIDUwLCAyNDQsIDEzNiwgMjI2LCAxNTQsIDIzNSwgMjM4LCAyMzMsIDQyLCA1MiwgMjU0LCAxMTAsIAorICAgIDIyMywgMjU0LCA3OCwgMjI4LCA1MiwgNTAsIDIxOSwgNTIsIDI0MCwgMTY4LCAyMjMsIDEwMiwgNTAsIDIzMSwgMjMyLCAKKyAgICAyNDgsIDcxLCA1MCwgMjI1LCAyMSwgNTAsIDIxOCwgMjMsIDEwNSwgMjE4LCAyMywgMTU4LCAyNTUsIDMsIDI1NSwgMTQsIAorICAgIDIzMCwgMjI4LCA1MCwgMjI1LCA2OCwgNTAsIDIzMCwgMjI0LCAyNDcsIDEyMCwgMjUwLCAxODMsIDIxOCwgMjMsIDExMCwgCisgICAgMjMxLCAxNDgsIDIyNiwgMTU0LCAyMzUsIDIzOCwgMjIyLCAyNDcsIDUyLCAyNTQsIDExMCwgMjIzLCAyNTQsIDc4LCAyMTIsIAorICAgIDExNCwgMjQ0LCAyLCAxMjMsIDIyNCwgMjEsIDIxMiwgMTE0LCAyNDQsIDIsIDEyMywgMjQyLCAyNywgMjEyLCAxMTQsIDI0NCwgCisgICAgMiwgMTM0LCAyMjQsIDE5LCAyMzUsIDE5MywgMjI0LCAxMywgNzgsIDcsIDYsIDEsIDExNSwgMiwgMjQyLCAxMzYsIDcsIDYsIAorICAgIDEsIDExNSwgMiwgMTQyLCA3LCA2LCAxLCAxMTUsIDIsIDI1MCwgMzAsIDcsIDYsIDEsIDExNSwgMiwgMTgyLCA3LCA2LCAxLCAKKyAgICAxMTUsIDIsIDI0OCwgMSwgNywgNiwgMSwgMTE1LCAyLCAyMjIsIDIzNCwgNDgsIDcsIDYsIDEsIDI1NCwgMjQzLCA3LCA2LCAKKyAgICAxLCAyNTEsIDY3LCAyLCAyNTAsIDE4MywgNywgNiwgMSwgMTYwLCAyLCAyNDIsIDEzNiwgNywgNiwgMSwgMTYwLCAyLCAxNDIsIAorICAgIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAzMCwgNywgNiwgMSwgMTYwLCAyLCAyNDgsIDEsIDcsIDYsIDEsIDI0MCwgMTU0LCAyLCAKKyAgICAyNDIsIDEzNiwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDE0MiwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDI1MCwgMzAsIDcsIDYsIAorICAgIDEsIDI0MCwgMTU0LCAyLCAyNDgsIDEsIDcsIDYsIDEsIDI0NSwgNTksIDcsIDYsIDEsIDIzMCwgMjYsIDIsIDE4MiwgNywgNiwgCisgICAgMSwgMTQ0LCAyLCAyNDIsIDEzNiwgNywgNiwgMSwgMTQ0LCAyLCAxNDIsIDcsIDYsIDEsIDE0NCwgMiwgMjUwLCAzMCwgNywgCisgICAgNiwgMSwgMTQ0LCAyLCAxODIsIDcsIDYsIDEsIDE0NCwgMiwgMjQ4LCAxLCAyMzAsIDg0LCA1MCwgNywgNiwgMSwgMTQ0LCAyLCAKKyAgICA5MSwgNywgNiwgMSwgMTA0LCAyLCAyNDIsIDEzNiwgNywgNiwgMSwgMTA0LCAyLCAxNDIsIDcsIDYsIDEsIDEwNCwgMiwgCisgICAgMjUwLCAzMCwgNywgNiwgMSwgMTA0LCAyLCAyNDgsIDEsIDcsIDYsIDEsIDIxMSwgMTE4LCAyLCAxNDIsIDcsIDYsIDEsIAorICAgIDIxNiwgMTUxLCA3LCA0LCAxLCAyMjAsIDc2LCAyMjIsIDkxLCA3LCA0LCAxLCAxMTUsIDIsIDI0MiwgMTM2LCA3LCA0LCAxLCAKKyAgICAxMTUsIDIsIDE0MiwgNywgNCwgMSwgMTE1LCAyLCAyNTAsIDMwLCA3LCA0LCAxLCAxMTUsIDIsIDE4MiwgNywgNCwgMSwgCisgICAgMTE1LCAyLCAyNDgsIDEsIDcsIDQsIDEsIDExNSwgMiwgMjIyLCAyMzQsIDQ4LCA3LCA0LCAxLCAyNTQsIDI0MywgNywgNCwgCisgICAgMSwgMjUxLCA2NywgMiwgMjUwLCAxODMsIDcsIDQsIDEsIDE2MCwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDE2MCwgMiwgMTQyLCAKKyAgICA3LCA0LCAxLCAxNjAsIDIsIDI1MCwgMzAsIDcsIDQsIDEsIDE2MCwgMiwgMjQ4LCAxLCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgCisgICAgMjQyLCAxMzYsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCAxNDIsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCAyNTAsIDMwLCA3LCA0LCAKKyAgICAxLCAyNDAsIDE1NCwgMiwgMjQ4LCAxLCA3LCA0LCAxLCAyNDUsIDU5LCA3LCA0LCAxLCAyMzAsIDI2LCAyLCAxODIsIDcsIDQsIAorICAgIDEsIDE0NCwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDE0NCwgMiwgMTQyLCA3LCA0LCAxLCAxNDQsIDIsIDI1MCwgMzAsIDcsIAorICAgIDQsIDEsIDE0NCwgMiwgMTgyLCA3LCA0LCAxLCAxNDQsIDIsIDI0OCwgMSwgMjQ3LCAxNjksIDUwLCA3LCA0LCAxLCAxNDQsIAorICAgIDIsIDkxLCA3LCA0LCAxLCAxMDQsIDIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxMDQsIDIsIDE0MiwgNywgNCwgMSwgMTA0LCAyLCAKKyAgICAyNTAsIDMwLCA3LCA0LCAxLCAxMDQsIDIsIDI0OCwgMSwgNywgNCwgMSwgMjExLCAxMTgsIDIsIDE0MiwgNywgNCwgMSwgCisgICAgMjE2LCAxNTEsIDcsIDQsIDEsIDIxMSwgMTE4LCAyLCAyNDgsIDEsIDcsIDYsIDEsIDExNSwgMiwgMjMxLCAyMzIsIDcsIDQsIAorICAgIDEsIDExNSwgMiwgMjMxLCAyMzIsIDcsIDYsIDEsIDExNSwgMiwgMjUxLCAxNDYsIDcsIDQsIDEsIDExNSwgMiwgMjUxLCAKKyAgICAxNDYsIDcsIDYsIDEsIDExNSwgMiwgMjI2LCAyMjQsIDcsIDQsIDEsIDExNSwgMiwgMjI2LCAyMjQsIDcsIDYsIDEsIDI1MSwgCisgICAgNjcsIDIsIDE0MiwgNywgNCwgMSwgMjUxLCA2NywgMiwgMTQyLCA3LCA2LCAxLCAyNTEsIDY3LCAyLCAyNTAsIDMwLCA3LCA0LCAKKyAgICAxLCAyNTEsIDY3LCAyLCAyNTAsIDMwLCA3LCA2LCAxLCAyNTEsIDY3LCAyLCA1OSwgNDgsIDcsIDQsIDEsIDI1MSwgNjcsIDIsIAorICAgIDU5LCA0OCwgNywgNiwgMSwgMjUxLCA2NywgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDI1MSwgNjcsIDIsIDI1MCwgMjM0LCA3LCAKKyAgICA2LCAxLCAyNDksIDYxLCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjQ5LCA2MSwgMiwgMjUwLCAyMzQsIDcsIDYsIDEsIDI0OSwgCisgICAgNjEsIDIsIDkxLCA3LCA0LCAxLCAyNDksIDYxLCAyLCA5MSwgNywgNiwgMSwgMTYwLCAyLCAyMzEsIDIzMiwgNywgNCwgMSwgCisgICAgMTYwLCAyLCAyMzEsIDIzMiwgNywgNiwgMSwgMTYwLCAyLCAyNTEsIDE0NiwgNywgNCwgMSwgMTYwLCAyLCAyNTEsIDE0NiwgCisgICAgNywgNiwgMSwgMTYwLCAyLCA1OSwgNDgsIDcsIDQsIDEsIDE2MCwgMiwgNTksIDQ4LCA3LCA2LCAxLCAxNjAsIDIsIDIyNiwgCisgICAgMjI0LCA3LCA0LCAxLCAxNjAsIDIsIDIyNiwgMjI0LCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAxNjAsIAorICAgIDIsIDI1MCwgMjM0LCA3LCA2LCAxLCAyNDMsIDIwMywgMiwgMjUwLCAzMCwgNywgNCwgMSwgMjQzLCAyMDMsIDIsIDI1MCwgCisgICAgMzAsIDcsIDYsIDEsIDI0MywgMjAzLCAyLCAyNTEsIDE0NiwgNywgNCwgMSwgMjQzLCAyMDMsIDIsIDI1MSwgMTQ2LCA3LCA2LCAKKyAgICAxLCAyNDMsIDIwMywgMiwgNTksIDQ4LCA3LCA0LCAxLCAyNDMsIDIwMywgMiwgNTksIDQ4LCA3LCA2LCAxLCAyNDMsIDIwMywgCisgICAgMiwgMjUwLCAxODMsIDcsIDQsIDEsIDI0MywgMjAzLCAyLCAyNTAsIDE4MywgNywgNiwgMSwgMjQyLCA2MSwgMiwgMjUwLCAKKyAgICAzMCwgNywgNCwgMSwgMjQyLCA2MSwgMiwgMjUwLCAzMCwgNywgNiwgMSwgMjQyLCA2MSwgMiwgOTEsIDcsIDQsIDEsIDI0MiwgCisgICAgNjEsIDIsIDkxLCA3LCA2LCAxLCAyNDAsIDE1NCwgMiwgMTgyLCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgMTgyLCA3LCA2LCAxLCAKKyAgICAyNDAsIDE1NCwgMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDI0MCwgMTU0LCAyLCAyMzEsIDIzMiwgNywgNiwgMSwgMjQwLCAxNTQsIAorICAgIDIsIDI1MSwgMTQ2LCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgMjUxLCAxNDYsIDcsIDYsIDEsIDI0MCwgMTU0LCAyLCAyMjYsIAorICAgIDIyNCwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDIyNiwgMjI0LCA3LCA2LCAxLCAyNDAsIDE1NCwgMiwgNTksIDQ4LCA3LCA0LCAKKyAgICAxLCAyNDcsIDExOSwgNzMsIDcsIDYsIDI3LCAyMzYsIDMxLCA3LCA0LCAyNywgMjM2LCAzMSwgNywgNiwgMSwgMjM1LCAxNDUsIAorICAgIDIsIDI1MCwgMzAsIDcsIDQsIDEsIDIzNSwgMTQ1LCAyLCAyNTAsIDMwLCA3LCA2LCAxLCAyMzUsIDI0LCAyLCAyNTAsIDE4MywgCisgICAgNywgNCwgMSwgMjM1LCAyNCwgMiwgMjUwLCAxODMsIDcsIDQsIDEsIDIzMywgMjM5LCA3LCA2LCAxLCAyMzMsIDE0OSwgMiwgCisgICAgMTQyLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgMTQyLCA3LCA2LCAxLCAyMzMsIDE0OSwgMiwgMjUwLCAxODMsIDcsIDQsIDEsIAorICAgIDIzMywgMTQ5LCAyLCAyNTAsIDE4MywgNywgNiwgMSwgMjMzLCAxNDksIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAyMzMsIDE0OSwgCisgICAgMiwgMjUwLCAyMzQsIDcsIDYsIDEsIDIzMywgMTQ5LCAyLCAyMzAsIDIyNCwgMjQ3LCAxMjAsIDcsIDQsIDEsIDIzMywgMTQ5LCAKKyAgICAyLCAyMzAsIDIyNCwgMjQ3LCAxMjAsIDcsIDYsIDEsIDIzMywgMTQ5LCAyLCA5MSwgNywgNCwgMSwgMjMzLCAxNDksIDIsIAorICAgIDkxLCA3LCA2LCAxLCAyMzAsIDI2LCAyLCAxNDIsIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDE0MiwgNywgNiwgMSwgMjMwLCAyNiwgCisgICAgMiwgMjUwLCAxODMsIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDI1MCwgMTgzLCA3LCA2LCAxLCAyMzAsIDI2LCAyLCAyNTAsIAorICAgIDIzNCwgNywgNCwgMSwgMjMwLCAyNiwgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDIzMCwgMjYsIDIyNCwgMjA0LCAyNTEsIDc4LCAKKyAgICAyNTQsIDU3LCA3LCA2LCAxLCAyNDUsIDEzOCwgNywgNCwgMSwgMjQ1LCAxMzgsIDcsIDYsIDEsIDE0NCwgMiwgMjMxLCAyMzIsIAorICAgIDcsIDQsIDEsIDE0NCwgMiwgMjMxLCAyMzIsIDcsIDYsIDEsIDE0NCwgMiwgMjUxLCAxNDYsIDcsIDQsIDEsIDE0NCwgMiwgCisgICAgMjUxLCAxNDYsIDcsIDYsIDEsIDE0NCwgMiwgNTIsIDE0MiwgNywgNCwgMSwgMTQ0LCAyLCA1MiwgMTQyLCA3LCA2LCAyNywgCisgICAgMjI2LCAyMzQsIDcsIDQsIDI3LCAyMjYsIDIzNCwgNywgNiwgMSwgMjIzLCAyMjQsIDIsIDE0MiwgNywgNCwgMSwgMjIzLCAKKyAgICAyMjQsIDIsIDE0MiwgNywgNiwgMSwgMjIzLCAyMjQsIDIsIDI1MCwgMTgzLCA3LCA0LCAxLCAyMjMsIDIyNCwgMiwgMjUwLCAKKyAgICAxODMsIDcsIDYsIDEsIDIyMywgMjI0LCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjIzLCAyMjQsIDIsIDI1MCwgMjM0LCA3LCAKKyAgICA2LCAxLCAyMjIsIDkyLCAyLCAxNDIsIDcsIDQsIDEsIDIyMiwgOTIsIDIsIDE0MiwgNywgNiwgMSwgMjIyLCA5MiwgMiwgCisgICAgMjUwLCAzMCwgNywgNCwgMSwgMjIyLCA5MiwgMiwgMjUwLCAzMCwgNywgNiwgMSwgMjIyLCA5MiwgMiwgMjUwLCAxODMsIDcsIAorICAgIDQsIDEsIDIyMiwgOTIsIDIsIDI1MCwgMTgzLCA3LCA2LCAxLCAyMjIsIDkyLCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjIyLCAKKyAgICA5MiwgMiwgMjUwLCAyMzQsIDcsIDYsIDEsIDIxNywgMTUzLCAyLCAyNTAsIDE4MywgNywgNCwgMSwgMjE3LCAxNTMsIDIsIAorICAgIDI1MCwgMTgzLCA3LCA2LCAxLCAyMTcsIDE1MywgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDIxNywgMTUzLCAyLCAyNTAsIDIzNCwgCisgICAgNywgNiwgMSwgMjE3LCAxNTMsIDIsIDkxLCA3LCA0LCAxLCAyMTcsIDE1MywgMiwgOTEsIDcsIDYsIDEsIDEwNCwgMiwgMTgyLCAKKyAgICA3LCA0LCAxLCAxMDQsIDIsIDE4MiwgNywgNiwgMSwgMTA0LCAyLCAyMzEsIDIzMiwgNywgNCwgMSwgMTA0LCAyLCAyMzEsIAorICAgIDIzMiwgNywgNiwgMSwgMTA0LCAyLCAyNTEsIDE0NiwgNywgNCwgMSwgMTA0LCAyLCAyNTEsIDE0NiwgNywgNiwgMSwgMTA0LCAKKyAgICAyLCAyMjIsIDIzNCwgNDgsIDcsIDQsIDEsIDEwNCwgMiwgMjIyLCAyMzQsIDQ4LCA3LCA2LCAxLCAxMDQsIDIsIDUyLCAxNDIsIAorICAgIDcsIDQsIDEsIDEwNCwgMiwgNTIsIDE0MiwgNywgNiwgMSwgMTA0LCAyLCAyMjYsIDIyNCwgNywgNCwgMSwgMTA0LCAyLCAKKyAgICAyMjYsIDIyNCwgNywgNiwgMSwgMjEyLCA5OSwgMiwgMjUwLCAzMCwgNywgNCwgMSwgMjEyLCA5OSwgMiwgMjUwLCAzMCwgNywgCisgICAgNiwgMSwgMjExLCAxMTgsIDIsIDI1MCwgMzAsIDcsIDQsIDEsIDIxMSwgMTE4LCAyLCAyNTAsIDMwLCA3LCA2LCAxLCAyMTEsIAorICAgIDExOCwgMiwgMjQ4LCAxLCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgMTQyLCA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgMTQyLCA3LCAKKyAgICA2LCAxLCAyMTAsIDE2MCwgMiwgNTksIDQ4LCA3LCA0LCAxLCAyMTAsIDE2MCwgMiwgNTksIDQ4LCA3LCA2LCAxLCAyMTAsIAorICAgIDE2MCwgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMTk5LCAyMjIsIDkxLCAKKyAgICA3LCA0LCAxLCA1NywgMiwgOTEsIDcsIDYsIDEsIDU3LCAyLCAxMDMsIDcsIDYsIDEsIDU3LCAyLCAyMTYsIDExLCA3LCA0LCAKKyAgICAxLCA1NywgMiwgMjE2LCAxMSwgNywgNiwgMSwgMTM4LCAxOTQsIDcsIDQsIDEsIDEzOCwgMTk0LCA3LCA2LCAxLCAyMDQsIAorICAgIDc2LCA3LCA2LCAxLCAyNTEsIDY3LCAyLCAxMDMsIDcsIDQsIDEsIDI1MSwgNjcsIDIsIDEwMywgNywgNiwgMSwgMjU0LCAKKyAgICAyMTksIDI0OSwgNjAsIDcsIDYsIDEsIDI0OSwgNjEsIDIsIDEwMywgNywgNiwgMSwgMjQ5LCA2MSwgMiwgMjE2LCAxMSwgNywgCisgICAgNCwgMSwgMjQ5LCA2MSwgMiwgMjE2LCAxMSwgNywgNCwgMSwgMjE1LCA5NCwgMjQ4LCA1NCwgNywgNiwgMSwgMjIzLCA0OSwgCisgICAgNzUsIDcsIDYsIDEsIDIyMSwgMTk1LCA3LCA2LCAxLCAyMDQsIDc1LCA3LCA2LCAxLCAyNDUsIDcsIDIsIDEwMywgNywgNCwgCisgICAgMSwgMjQ1LCA3LCAyLCAxMDMsIDcsIDYsIDEsIDI0MywgMjAzLCAyLCAxMDMsIDcsIDYsIDEsIDI0MywgMTA3LCA3LCA0LCAxLCAKKyAgICAyNDAsIDIwMSwgNywgNiwgMSwgMjM1LCAxODUsIDcsIDYsIDEsIDI0MCwgMTU0LCAyLCA5MSwgNywgNiwgMSwgMjM1LCAyNCwgCisgICAgMiwgMTAzLCA3LCA0LCAxLCAyMzUsIDI0LCAyLCAxMDMsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCAxMzAsIDcsIDQsIDEsIAorICAgIDIzMywgMTAwLCAyLCA5MSwgNywgNiwgMSwgMjE1LCA5NCwgMTkzLCA3LCA2LCAxLCAyMzAsIDI2LCAyLCA0MywgMTAzLCA3LCAKKyAgICA0LCAxLCAyMzAsIDI2LCAyLCAxOTksIDQ0LCAyMzMsIDM2LCA3LCA2LCAxLCAxNDQsIDIsIDIzMCwgMjI0LCAxODIsIDcsIDYsIAorICAgIDEsIDE0NCwgMiwgMjQwLCAyNDgsIDcsIDQsIDEsIDE0NCwgMiwgMjQwLCAyNDgsIDcsIDYsIDEsIDIyNiwgMjE5LCA3LCA0LCAKKyAgICAxLCAyMjYsIDIxOSwgNywgNiwgMSwgMjI2LCAxMDYsIDIsIDEwMywgNywgNCwgMSwgMjI2LCAxMDYsIDIsIDEwMywgNywgMSwgCisgICAgMjEwLCAyMTQsIDcsIDYsIDEsIDEzOCwgMTA1LCA3LCA0LCAxLCAxMzgsIDEwNSwgNywgNiwgMSwgMjQ1LCA3NSwgNywgMSwgCisgICAgMjIzLCA0OSwgMjQ1LCA3NiwgMjMyLCAxMjMsIDcsIDQsIDEsIDIxNywgMTUzLCAyLCAyMjYsIDY2LCAxMDMsIDcsIDYsIDEsIAorICAgIDIxNywgMTUzLCAyLCAxMDMsIDcsIDQsIDEsIDIxNywgMTUzLCAyLCAxMDMsIDcsIDYsIDEsIDIxNywgMTUzLCAyLCAyMjMsIAorICAgIDU1LCAxMDMsIDcsIDYsIDEsIDEwNCwgMiwgMjQwLCAyNDgsIDcsIDQsIDEsIDEwNCwgMiwgMjQwLCAyNDgsIDcsIDYsIDEsIAorICAgIDIxNCwgMTU3LCA3LCA2LCAxLCAyMTQsIDEwNiwgMiwgMTAzLCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgMTAzLCA3LCA0LCAxLCAKKyAgICAyMTEsIDExOCwgMiwgMTAzLCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgOTEsIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCA5MSwgNywgCisgICAgNiwgMSwgMjQ1LCA4LCA3LCA2LCAxLCAyNDUsIDksIDIyMywgNDgsIDcsIDQsIDEsIDI0NSwgOSwgMjIzLCA0OCwgNywgNCwgCisgICAgMSwgMjQ1LCA5LCAyLCAyMTcsIDc3LCA3LCAxLCAxMTMsIDIsIDkxLCA3LCA2LCAxLCAxMzgsIDE4OSwgNywgNCwgMSwgMTM4LCAKKyAgICAxODksIDcsIDEsIDIzNSwgMTkzLCAyNDIsIDE4MCwgMjE4LCAxMzAsIDIsIDkxLCA3LCAxLCAyMTEsIDE4MSwgNywgMSwgCisgICAgMjQ4LCA0NywgMjUwLCAxMSwgNywgMSwgMjMzLCA3NywgMjUwLCAxMSwgNywgMSwgMjU0LCAxMzcsIDI1MCwgMTEsIDcsIDEsIAorICAgIDIyMywgNTUsIDI1MCwgMTEsIDcsIDYsIDEsIDI0NiwgNDAsIDIsIDI1MCwgMjM0LCA3LCA2LCAxLCAyNDksIDYxLCAyLCA0LCAKKyAgICAxLCAyMTAsIDE2MCwgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDI0NiwgNDAsIDIsIDI1MCwgMjM0LCA3LCA2LCAxLCAyMzIsIAorICAgIDE4OCwgNywgNiwgMSwgMjMzLCAxNDksIDIsIDQsIDEsIDIzNSwgMTQ0LCA3LCA0LCAxLCAyMzIsIDE4OCwgNywgNiwgMSwgCisgICAgMjI4LCAxODYsIDcsIDYsIDEsIDIzMCwgMjYsIDIsIDQsIDEsIDIzNSwgMTQ0LCA3LCA0LCAxLCAyMjgsIDE4NiwgNywgNiwgCisgICAgMSwgMTE1LCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMTE1LCAyLCAyNTAsIDIzNCwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIAorICAgIDI1MCwgMjM0LCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgMjUwLCAyMzQsIDcsIDYsIDEsIDE0NCwgMiwgMjUwLCAyMzQsIDcsIAorICAgIDQsIDEsIDE0NCwgMiwgMjUwLCAyMzQsIDcsIDYsIDEsIDEwNCwgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDEwNCwgMiwgMjUwLCAKKyAgICAyMzQsIDcsIDYsIDEsIDEwNCwgMiwgMjQ4LCAyLCAyMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDEwNCwgMiwgMjQ4LCAyLCAyMiwgCisgICAgMjMxLCAyMzIsIDcsIDYsIDEsIDEwNCwgMiwgMjQ4LCAyLCAyMiwgMTQyLCA3LCA0LCAxLCAxMDQsIDIsIDI0OCwgMiwgMjIsIAorICAgIDE0MiwgNywgNiwgMSwgMTA0LCAyLCAyNDgsIDIsIDIyLCAyNTAsIDIzNCwgNywgNCwgMSwgMTA0LCAyLCAyNDgsIDIsIDIyLCAKKyAgICAyNTAsIDIzNCwgNywgNiwgMSwgMTA0LCAyLCAyNDgsIDIsIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTA0LCAyLCAyNDgsIDIsIAorICAgIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjE1LCA5NCwgNzUsIDcsIDYsIDEsIDExNSwgMiwgMjQ4LCAyLCAyMiwgMjMxLCAKKyAgICAyMzIsIDcsIDQsIDEsIDExNSwgMiwgMjQ4LCAyLCAyMiwgMjMxLCAyMzIsIDcsIDYsIDEsIDExNSwgMiwgNTksIDc3LCAyMiwgCisgICAgMjMxLCAyMzIsIDcsIDQsIDEsIDExNSwgMiwgNTksIDc3LCAyMiwgMjMxLCAyMzIsIDcsIDYsIDEsIDI1NCwgMjQ0LCAyLCAKKyAgICAyMzEsIDIzMiwgNywgNCwgMSwgMjU0LCAyNDQsIDIsIDIzMSwgMjMyLCA3LCA2LCAxLCAyNDMsIDIwMywgMiwgOTEsIDcsIDQsIAorICAgIDEsIDI0MywgMjAzLCAyLCA5MSwgNywgNiwgMSwgMjQzLCAyMDMsIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAyNDMsIDIwMywgMiwgCisgICAgMjUwLCAyMzQsIDcsIDYsIDEsIDIzNSwgMjQsIDIsIDI1MCwgMjM0LCA3LCA0LCAxLCAyMzUsIDI0LCAyLCAyNTAsIDIzNCwgCisgICAgNywgNiwgMSwgMTQ0LCAyLCAyMjYsIDIyNCwgNywgNCwgMSwgMTQ0LCAyLCAyMjYsIDIyNCwgNywgNiwgMSwgMTQ0LCAyLCAKKyAgICAyMjYsIDIyNSwgMjIsIDIzMSwgMjMyLCA3LCA0LCAxLCAxNDQsIDIsIDIyNiwgMjI1LCAyMiwgMjMxLCAyMzIsIDcsIDYsIDEsIAorICAgIDI0NSwgOSwgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDI0NSwgOSwgMiwgMjUwLCAyMzQsIDcsIDQsIDEsIDIzNSwgMTQ1LCAyLCAKKyAgICAyNTAsIDIzNCwgNywgNiwgMSwgMjQ2LCAzOSwgNywgNiwgMSwgMjQ5LCA2MSwgMiwgNCwgMSwgMjEwLCAxNTksIDcsIDQsIDEsIAorICAgIDI0NiwgMzksIDcsIDYsIDEsIDI0MywgMjAzLCAyLCAxNDIsIDcsIDQsIDEsIDI0MywgMjAzLCAyLCAxNDIsIDcsIDYsIDEsIAorICAgIDI0MCwgMTk5LCA3LCA2LCAxLCAyMTEsIDE4MSwgNywgNiwgMSwgMjMwLCAyNiwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDIzMCwgCisgICAgMjYsIDIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxMTUsIDIsIDIyMiwgMjM0LCA3NywgMjIsIDE0MiwgNywgNCwgMSwgMTE1LCAyLCAKKyAgICAyMjIsIDIzNCwgNzcsIDIyLCAxNDIsIDcsIDYsIDEsIDI1NCwgMjQ0LCAyLCAxNDIsIDcsIDQsIDEsIDI1NCwgMjQ0LCAyLCAKKyAgICAxNDIsIDcsIDYsIDEsIDE0NCwgMiwgMjE4LCAxMDMsIDIyLCAxNDIsIDcsIDQsIDEsIDE0NCwgMiwgMjE4LCAxMDMsIDIyLCAKKyAgICAxNDIsIDcsIDYsIDEsIDExNSwgMiwgNTIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxMTUsIDIsIDUyLCAyNDIsIDEzNiwgNywgNiwgCisgICAgMSwgMTE1LCAyLCAyMzUsIDE5MywgMjUxLCAxNDYsIDcsIDQsIDEsIDExNSwgMiwgMjM1LCAxOTMsIDI1MSwgMTQ2LCA3LCA2LCAKKyAgICAxLCAxNjAsIDIsIDUyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTYwLCAyLCA1MiwgMjQyLCAxMzYsIDcsIDYsIDEsIDE2MCwgMiwgCisgICAgMjM1LCAxOTMsIDI1MSwgMTQ2LCA3LCA0LCAxLCAxNjAsIDIsIDIzNSwgMTkzLCAyNTEsIDE0NiwgNywgNiwgMSwgMjQwLCAKKyAgICAxNTQsIDIsIDUyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDUyLCAyNDIsIDEzNiwgNywgNiwgMSwgMjQwLCAKKyAgICAxNTQsIDIsIDIzNSwgMTkzLCAyNTEsIDE0NiwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDIzNSwgMTkzLCAyNTEsIDE0NiwgNywgCisgICAgNiwgMSwgMTQ0LCAyLCA1MiwgMjQyLCAxMzYsIDcsIDQsIDEsIDE0NCwgMiwgNTIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxNDQsIAorICAgIDIsIDIzNSwgMTkzLCAyNTEsIDE0NiwgNywgNCwgMSwgMTQ0LCAyLCAyMzUsIDE5MywgMjUxLCAxNDYsIDcsIDYsIDEsIDIyMywgCisgICAgMjI0LCAyLCA1MiwgMjQyLCAxMzYsIDcsIDQsIDEsIDIyMywgMjI0LCAyLCA1MiwgMjQyLCAxMzYsIDcsIDYsIDEsIDIyMywgCisgICAgMjI0LCAyLCAyMzUsIDE5MywgMjUxLCAxNDYsIDcsIDQsIDEsIDIyMywgMjI0LCAyLCAyMzUsIDE5MywgMjUxLCAxNDYsIDcsIAorICAgIDYsIDEsIDEwNCwgMiwgNTIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxMDQsIDIsIDUyLCAyNDIsIDEzNiwgNywgNiwgMSwgMTA0LCAKKyAgICAyLCAyMzUsIDE5MywgMjUxLCAxNDYsIDcsIDQsIDEsIDEwNCwgMiwgMjM1LCAxOTMsIDI1MSwgMTQ2LCA3LCA2LCAxLCAyMjIsIAorICAgIDkyLCAyLCAyNDksIDIyMCwgNTEsIDcsIDQsIDEsIDIyMiwgOTIsIDIsIDI0OSwgMjIwLCA1MSwgNywgNiwgMSwgMjE3LCAKKyAgICAxNTMsIDIsIDI0OSwgMjIwLCA1MSwgNywgNCwgMSwgMjE3LCAxNTMsIDIsIDI0OSwgMjIwLCA1MSwgNywgNiwgMSwgMjEwLCAKKyAgICAyMzEsIDcsIDQsIDEsIDIxMCwgMjMxLCA3LCA2LCAxLCAyNDIsIDYxLCAyLCAyNTAsIDIzNCwgNywgNCwgMSwgMjQyLCA2MSwgCisgICAgMiwgMjUwLCAyMzQsIDcsIDYsIDEsIDIzMCwgMjYsIDIsIDE5OSwgNDQsIDIzMywgMzYsIDcsIDQsIDEsIDI0OSwgNjEsIDIsIAorICAgIDI0OSwgMTAwLCA3LCA2LCAxLCAyMjYsIDEzNCwgNywgNCwgMSwgMjI2LCAxMzQsIDcsIDYsIDEsIDIxMCwgMTYwLCAyLCAKKyAgICAxMDMsIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCAxMDMsIDcsIDYsIDEsIDExNSwgMiwgNTksIDQ4LCA3LCA0LCAxLCAxMTUsIDIsIAorICAgIDU5LCA0OCwgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDE4MywgNywgNCwgMSwgMTYwLCAyLCAyNTAsIDE4MywgNywgNiwgMSwgCisgICAgMTQ0LCAyLCAyNDgsIDIsIDIyLCAyMzEsIDIzMiwgNywgNCwgMSwgMTQ0LCAyLCAyNDgsIDIsIDIyLCAyMzEsIDIzMiwgNywgCisgICAgNiwgMSwgMTQ0LCAyLCAyMTYsIDg5LCAyMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDE0NCwgMiwgMjE2LCA4OSwgMjIsIDIzMSwgCisgICAgMjMyLCA3LCA2LCAxLCAxNDQsIDIsIDU5LCA0OCwgNywgNCwgMSwgMTQ0LCAyLCA1OSwgNDgsIDcsIDYsIDEsIDE0NCwgMiwgCisgICAgNTksIDc3LCAyMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDE0NCwgMiwgNTksIDc3LCAyMiwgMjMxLCAyMzIsIDcsIDYsIDEsIAorICAgIDIxMSwgMTE4LCAyLCAyMzEsIDIzMiwgNywgNCwgMSwgMjExLCAxMTgsIDIsIDIzMSwgMjMyLCA3LCA0LCAxLCAyMzMsIDE0OSwgCisgICAgMiwgMjQ5LCAxMDAsIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDI0OSwgMTAwLCA3LCA0LCAxLCAyMTcsIDE1MywgMiwgMjQ5LCAKKyAgICAxMDAsIDcsIDQsIDEsIDI0NywgMTE5LCAyMzUsIDE0NCwgNywgNCwgMSwgMjQ4LCAxNDMsIDI0NywgMjIwLCA3LCA0LCAxLCAKKyAgICAyMjQsIDMxLCAyNDcsIDIyMCwgNywgNiwgMSwgMTE1LCAyLCA5MSwgNywgNiwgMSwgMjUxLCA2NywgMiwgOTEsIDcsIDQsIDEsIAorICAgIDI1MSwgNjcsIDIsIDkxLCA3LCA2LCAxLCAyMzMsIDE0OSwgMiwgMTMwLCA3LCA2LCAxLCAyMTcsIDE1MywgMiwgMjQ3LCAKKyAgICAyNTUsIDkxLCA3LCA0LCAxLCAyMjIsIDkyLCAyLCAyMTcsIDI1MCwgMjE3LCA3NywgNywgNCwgMSwgMjEwLCAxNjAsIDIsIAorICAgIDIxNywgMjUwLCAyMTcsIDc3LCA3LCA2LCAxLCAyNDIsIDE4MCwgMjE4LCAxMjksIDcsIDQsIDEsIDI0MiwgMTgwLCAyMTgsIAorICAgIDEyOSwgNywgNiwgMSwgNTcsIDIsIDkxLCA3LCA2LCAxLCAxMDQsIDEzMCwgNywgNiwgMSwgMjE1LCA5NCwgMjE0LCAxMDUsIAorICAgIDcsIDYsIDEsIDE2MCwgMiwgOTEsIDcsIDQsIDEsIDE2MCwgMiwgOTEsIDcsIDYsIDEsIDIzNSwgMTQ1LCAyLCA5MSwgNywgNCwgCisgICAgMSwgMjM1LCAxNDUsIDIsIDkxLCA3LCA2LCAxLCA0LCAyMjQsIDk3LCAyLCAyNDEsIDUyLCAyMTcsIDc3LCA3LCA0LCAxLCAKKyAgICAyMjQsIDk3LCAyLCAyNDEsIDUyLCAyMTcsIDc3LCA3LCA2LCAxLCAyMjMsIDIyNCwgMiwgOTEsIDcsIDQsIDEsIDIyMywgCisgICAgMjI0LCAyLCA5MSwgNywgNiwgMSwgMjExLCAxMTgsIDIsIDkxLCA3LCA0LCAxLCAyMTEsIDExOCwgMiwgOTEsIDcsIDQsIDEsIAorICAgIDIxNSwgOTQsIDYxLCA3LCA0LCAxLCAyNTQsIDE0MywgNywgNCwgMSwgMjE1LCA5NCwgMjU0LCAxNDMsIDcsIDQsIDEsIDU3LCAKKyAgICAyLCAxMDMsIDcsIDQsIDEsIDIwNCwgNzYsIDcsIDQsIDEsIDI1MSwgNjcsIDIsIDI0OSwgMTAwLCA3LCA0LCAxLCAyNDksIAorICAgIDYxLCAyLCAyMTcsIDc3LCA3LCA0LCAxLCAyNDksIDYxLCAyLCAxMDMsIDcsIDQsIDEsIDIyMywgNDksIDc1LCA3LCA0LCAxLCAKKyAgICAyMjEsIDE5NSwgNywgNCwgMSwgMjIxLCAxOTYsIDIsIDEwMywgNywgNCwgMSwgMjA0LCA3NSwgNywgNCwgMSwgMjIzLCA0OSwgCisgICAgMjA0LCA3NSwgNywgNCwgMSwgMjIzLCA0OSwgMjA0LCAxNjAsIDIsIDEwMywgNywgNCwgMSwgMjUwLCAwLCAyMjMsIDQ5LCAKKyAgICAyMDQsIDc1LCA3LCA0LCAxLCAyNDcsIDExOSwgMjM1LCAxNDUsIDIsIDkxLCA3LCA0LCAxLCAyNDMsIDIwMywgMiwgMTAzLCAKKyAgICA3LCA0LCAxLCAxMTksIDI0MywgMjAyLCA3LCAxLCA0LCA2LCAyNDMsIDIwMiwgNywgNCwgMSwgMjQzLCAxMDcsIDcsIDQsIDEsIAorICAgIDIyMywgMTUxLCAyNDAsIDI0OCwgNywgNCwgMSwgMjE1LCA5NCwgMjQyLCA2MCwgNywgNCwgMSwgMjQyLCA2MSwgMiwgMTAzLCAKKyAgICA3LCA0LCAxLCAyNDEsIDIwOCwgMiwgMTAzLCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgOTEsIDcsIDQsIDEsIDIzNSwgMTg1LCAKKyAgICA3LCAxLCA0LCA2LCA3MywgNywgNCwgMSwgMjMzLCAxNDksIDIsIDIzMCwgMjI0LCAxODIsIDcsIDQsIDEsIDIzMywgMTQ5LCAKKyAgICAyLCAyNTIsIDQxLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgMjIzLCA1NSwgMTAzLCA3LCA0LCAxLCAyMzMsIDEsIDcsIDQsIDEsIAorICAgIDIxNSwgOTQsIDE5MywgNywgNCwgMSwgMjE1LCA5NCwgMjMyLCA1MCwgMiwgMTk5LCAyMzMsIDM2LCA3LCA0LCAxLCAyMzIsIAorICAgIDUwLCAyLCAxMDMsIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDQzLCAxMDMsIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDIyMywgNTUsIAorICAgIDEwMywgNywgMSwgNCwgNiwgMjMwLCAyNSwgNywgNCwgMSwgMjUyLCAxMzQsIDc2LCA3LCAxLCA0LCA2LCAyMjYsIDIzNCwgNywgCisgICAgNCwgMSwgMjUwLCAwLCAyMjYsIDIwMSwgNywgNCwgMSwgMjI1LCAxMzMsIDcsIDQsIDEsIDIxNSwgOTQsIDE1MywgNywgNCwgCisgICAgMSwgMjE1LCA5NCwgMjIzLCAyMjQsIDIsIDE5OSwgMjMzLCAzNiwgNywgNCwgMSwgMjE1LCA5NCwgMjIzLCAyMjQsIDIsIAorICAgIDEwMywgNywgNCwgMSwgMjIzLCAyMjQsIDIsIDE5OSwgMjMzLCAzNiwgNywgNCwgMSwgMjIzLCAyMjQsIDIsIDIxNywgNzcsIAorICAgIDcsIDQsIDEsIDIyMywgMjI0LCAyLCAyNDQsIDg3LCA3LCA0LCAxLCAyMjMsIDQ5LCAyMjMsIDIyNCwgMiwgMjQ0LCA4NywgNywgCisgICAgMSwgNCwgNiwgMTUzLCA3LCAxLCA0LCA2LCAyMzUsIDE5MywgMTUzLCA3LCA0LCAxLCAyMjIsIDkyLCAyLCAxMDMsIDcsIDQsIAorICAgIDEsIDI0NSwgNzUsIDcsIDQsIDEsIDI0NywgMTE5LCAyMzUsIDE0NSwgMiwgMjE4LCAxMDMsIDIyLCAxMDMsIDcsIDQsIDEsIAorICAgIDIxOCwgMjMxLCAyMjMsIDQ5LCAyNDUsIDc1LCA3LCA0LCAxLCAyNDUsIDc2LCAyLCAyNDksIDEwMCwgNywgNCwgMSwgMjE1LCAKKyAgICA5NCwgMjE3LCAxNTIsIDcsIDQsIDEsIDIxNywgMTUzLCAyLCAyMjMsIDU1LCAxMDMsIDcsIDQsIDEsIDEwNCwgMTMwLCA3LCAKKyAgICA0LCAxLCAyMTQsIDE1NywgNywgNCwgMSwgMjE0LCAxMDYsIDIsIDEwMywgNywgNCwgMSwgMjE1LCA5NCwgMjE0LCAxMDUsIDcsIAorICAgIDQsIDEsIDIxNSwgOTQsIDIxMiwgOTgsIDcsIDQsIDEsIDIxNSwgOTQsIDIxMSwgMTE3LCA3LCAxLCA0LCA2LCAyMTEsIDExNywgCisgICAgNywgNCwgMSwgMjEwLCAxNjAsIDIsIDIyMywgNTUsIDEwMywgNywgNCwgMSwgMjEwLCAxNjAsIDIsIDI0OSwgMTAwLCA3LCA0LCAKKyAgICAxLCAyNDUsIDgsIDcsIDQsIDEsIDI0NSwgOSwgMiwgMjQ5LCAxMDAsIDcsIDEsIDI0MiwgMTgwLCAyMTgsIDEyOSwgNywgMSwgCisgICAgMjI1LCAxMzksIDIxMywgMTM1LCAyNDMsIDI0OSwgNywgMSwgMjM1LCAxOTMsIDI0MiwgMTgwLCAyMTgsIDEyOSwgNywgMSwgCisgICAgMjE4LCAxMTAsIDI1MSwgNjYsIDcsIDEsIDI1MSwgMjQ2LCAyNTAsIDExLCA3LCAxLCA0LCA2LCAyNTMsIDE1OCwgNywgNCwgCisgICAgMSwgMjUwLCAwLCAyMDQsIDc1LCA3LCAxLCA0LCA2LCAyNDMsIDIwMywgMiwgMTAzLCA3LCAxLCA0LCA2LCAyNDIsIDYwLCA3LCAKKyAgICA0LCAxLCAyMzUsIDE0NSwgMiwgMjQ5LCAxMjcsIDcsIDQsIDEsIDIxNSwgOTQsIDIzNSwgMjMsIDcsIDEsIDQsIDYsIDE1NiwgCisgICAgNywgNCwgMSwgMjI0LCA5NywgMiwgMTAzLCA3LCAxLCAyNDIsIDE4MCwgMjE4LCAxMzAsIDIsIDkxLCA3LCAxLCAyMjMsIDQ5LCAKKyAgICAyNDIsIDE4MCwgMjE4LCAxMzAsIDIsIDkxLCA3LCA0LCAxLCAyNDYsIDQwLCAyNDcsIDIyMCwgNywgNCwgMSwgMjQ4LCAyNiwgCisgICAgMjQ3LCAyMjAsIDcsIDQsIDEsIDI0NiwgNDAsIDI0NywgMjIxLCAyLCAyNDksIDEwMCwgNywgNCwgMSwgMjE1LCAxODUsIAorICAgIDI0NywgMjIwLCA3LCA0LCAxLCAyMTYsIDIzNSwgMjQ3LCAyMjAsIDcsIDQsIDEsIDIxNywgMjksIDI0NywgMjIxLCAyLCAKKyAgICAyNDksIDEwMCwgNywgNCwgMSwgMjQ0LCAxMzQsIDI0NywgMjIwLCA3LCA0LCAxLCAyMzIsIDEwMCwgMjQ3LCAyMjAsIDcsIDQsIAorICAgIDEsIDIzMiwgNTEsIDI0NywgMjIwLCA3LCAxLCAyNTEsIDI0NiwgMjI1LCAxODEsIDcsIDEsIDI1MSwgMjU0LCAyMjUsIDE4MSwgCisgICAgNywgNCwgMSwgMjE1LCA5NCwgMjQyLCA2MSwgMiwgMjQ0LCA4NywgNywgNCwgMSwgMjE1LCA5NCwgMjQyLCA2MSwgMiwgMjQ0LCAKKyAgICA4OCwgMjIsIDIxNywgNzcsIDU4LCAxLCA0LCAyNDIsIDYwLCA1OCwgMSwgNCwgMjQyLCA2MSwgMiwgMTAzLCA1OCwgMSwgNCwgCisgICAgMjM1LCAxNDQsIDU4LCAxLCA0LCAxNTMsIDU4LCAxLCA0LCAyMTUsIDk0LCAxNTMsIDU4LCAxLCA0LCAyMTUsIDk0LCAyMjMsIAorICAgIDIyNCwgMiwgMTAzLCA1OCwgMSwgNCwgNiwgMjM1LCAxOTMsIDE1MywgNTgsIDEsIDQsIDIxMiwgOTgsIDU4LCAxLCA0LCAKKyAgICAyMTEsIDExNywgNTgsIDEsIDIyNCwgMTkwLCA1OCwgMSwgNTIsIDIyNCwgMTkwLCA1OCwgMSwgMjE1LCA5NCwgMjQ5LCAyMTksIAorICAgIDU4LCAxLCAyNTQsIDU3LCA1OCwgMSwgMjIzLCA0OSwgMjQ5LCAyMTksIDU4LCAxLCA0NCwgMTYzLCAyMjIsIDIzMywgNTgsIAorICAgIDEsIDQzLCAxNjMsIDIyMiwgMjMzLCA1OCwgMSwgMjQyLCAxODAsIDIxOCwgMTI5LCA1OCwgMSwgMjIzLCA0OSwgMjQyLCAKKyAgICAxODAsIDIxOCwgMTI5LCA1OCwgMSwgNDMsIDI1MywgMjQ5LCA1OCwgMSwgNDQsIDI1MywgMjQ5LCA1OCwgMSwgMTIwLCAyNTMsIAorICAgIDI0OSwgNTgsIDEsIDEyNCwgMjUzLCAyNDksIDU4LCAxLCAyNTAsIDMxLCAyNTUsIDE0LCAyNTAsIDIzNCwgNTgsIDEsIDY3LCAKKyAgICAyMzIsIDIxMywgNTgsIDEsIDIzMSwgMjMyLCA1OCwgMSwgMjU1LCAzLCAyNTUsIDE0LCA1OCwgMSwgMjQyLCAxMzcsIDI1NSwgCisgICAgMTQsIDU4LCAxLCAxMjEsIDY3LCAyMzIsIDIxMywgNTgsIDEsIDEyMSwgMjMxLCAyMzIsIDU4LCAxLCAxMjEsIDI0MiwgMTM3LCAKKyAgICAyNTUsIDE0LCA1OCwgMSwgMTIxLCAyNTUsIDMsIDI1NSwgMTQsIDU4LCAxLCAyMTUsIDIyMiwgMjQ5LCAyMjYsIDU4LCAxLCAKKyAgICAxNjMsIDIxNSwgMjIyLCAyNDksIDIyNiwgNTgsIDEsIDI1MCwgMTczLCA0NCwgMTYzLCAyMjIsIDIzMywgNTgsIDEsIDI1MCwgCisgICAgMTczLCA0MywgMTYzLCAyMjIsIDIzMywgNTgsIDEsIDEyMCwgMjE3LCA4NywgNTgsIDEsIDEyNCwgMjE3LCA4NywgNTgsIDEsIAorICAgIDk2LCA1MCwgNTgsIDEsIDIzMCwgMTgyLCA1MCwgMjUxLCAxNDYsIDU5LCA0OCwgMjIyLCAyMzQsIDQ4LCAyMjYsIDIyNCwgNCwgCisgICAgMTgyLCA1MiwgMjU1LCAzLCAyNTUsIDE0LCA1OCwgMSwgMjIzLCAzNiwgMTAzLCA1OCwgMSwgMjQ5LCAxMzEsIDI1NSwgMTQsIAorICAgIDU4LCAxLCA0LCAyNDMsIDEwNywgNTgsIDEsIDQsIDE1NiwgNTgsIDEsIDQsIDIyMiwgOTEsIDU4LCAxLCA0LCAyMTEsIDE3OCwgCisgICAgNTgsIDEsIDQsIDIyMywgNDksIDI0MiwgMTgwLCAyMTgsIDEyOSwgNTgsIDEsIDI0NSwgMjAsIDEzOCwgMTMwLCA1OCwgMSwgCisgICAgMTI1LCAxMzgsIDEzMCwgNTgsIDEsIDIzMCwgMjI1LCAxMzgsIDEzMCwgNTgsIDEsIDEyMSwgMTM4LCAxMzAsIDU4LCAxLCAKKyAgICAyNDUsIDE5LCAxMzgsIDEzMCwgNTgsIDEsIDIxMCwgMjU0LCAyNDgsIDQ0LCAxMzgsIDc4LCA1OCwgMSwgMjExLCA3MCwgCisgICAgMjQ4LCA0NCwgMTM4LCA3OCwgNTgsIDEsIDIxMywgMTMzLCA1OCwgMSwgMjE0LCAxODYsIDU4LCAxLCA1MiwgMjU0LCA1NywgCisgICAgNTgsIDEsIDEyMSwgMTI0LCAyNTMsIDI0OSwgNTgsIDEsIDEyMSwgMTIwLCAyNTMsIDI0OSwgNTgsIDEsIDEyMSwgNDMsIAorICAgIDI1MywgMjQ5LCA1OCwgMSwgMTIxLCA0NCwgMjUzLCAyNDksIDU4LCAxLCAxMjEsIDIyMiwgMjMzLCA1OCwgMSwgMjMwLCAKKyAgICAyMjQsIDI0MiwgMTM3LCAyNTUsIDE0LCA1OCwgMSwgMjMwLCAyMjQsIDUyLCAyNDIsIDEzNywgMjU1LCAxNCwgNTgsIDEsIAorICAgIDIzMCwgMjI0LCA1MiwgMjU1LCAzLCAyNTUsIDE0LCA1OCwgMSwgMTIxLCAxODIsIDU4LCAxLCAyMjMsIDE1NywgMjQ5LCAKKyAgICAyMjYsIDU4LCAxLCAyNTIsIDU4LCAxMjUsIDIxNiwgMzAsIDU4LCAxLCAyNDUsIDE0MywgMTI1LCAyMTYsIDMwLCA1OCwgMSwgCisgICAgMjUyLCA1OCwgMTIxLCAyMTYsIDMwLCA1OCwgMSwgMjQ1LCAxNDMsIDEyMSwgMjE2LCAzMCwgNTgsIDEsIDIyMCwgNTQsIDU4LCAKKyAgICAxLCAyMDQsIDIyMCwgNTQsIDU4LCAxLCAxMjEsIDQzLCA3NCwgMzgsIDI0MiwgMTM3LCAyNTUsIDE0LCAzOCwgMjU1LCAzLCAKKyAgICAyNTUsIDE0LCAzOCwgMjUwLCAzMSwgMjU1LCAxNCwgMzgsIDE4MiwgMzgsIDIzMSwgMjMyLCAzOCwgMjI2LCAxMTksIDM4LCAKKyAgICAyNTEsIDE0NiwgMzgsIDU5LCA0OCwgMzgsIDI0OCwgMSwgMzgsIDI0MSwgNTIsIDQ4LCAzOCwgMjIyLCAyMzQsIDQ4LCAzOCwgCisgICAgNTIsIDI1NSwgMywgMjU1LCAxNCwgMzgsIDI1MCwgMjM0LCAzOCwgNjcsIDIzMiwgMjE0LCA0OCwgMzgsIDUyLCA2NywgMjMyLCAKKyAgICAyMTQsIDQ4LCAzOCwgNTIsIDI0MiwgMTM3LCAyNTUsIDE0LCAzOCwgMjUwLCAyNTUsIDM4LCAyMzUsIDE5MywgMjUxLCAxNDYsIAorICAgIDM4LCAyMTUsIDk0LCAyNDksIDIyMCwgNDgsIDM4LCAyNDksIDIyMCwgNDgsIDM4LCAyMjMsIDQ5LCAyNDksIDIyMCwgNDgsIAorICAgIDM4LCAyNDksIDIyMCwgNzcsIDIyMiwgMjUxLCAzOCwgMjQyLCAxMzcsIDI1NSwgMTUsIDUxLCAzOCwgMjU1LCAzLCAyNTUsIAorICAgIDE1LCA1MSwgMzgsIDQzLCAyMTcsIDg4LCA1MSwgMzgsIDQ0LCAyMTcsIDg4LCA1MSwgMzgsIDQzLCAyNTQsIDExMCwgNDgsIAorICAgIDM4LCAyNDAsIDI0OCwgMzgsIDQzLCAxNjMsIDIyMiwgMjM0LCA1MSwgMzgsIDEyMCwgMjE3LCA4OCwgNTEsIDM4LCAxMjQsIAorICAgIDIxNywgODgsIDUxLCAzOCwgOTYsIDUsIDUxLCAzOCwgMjMwLCAxODIsIDUsIDUxLCAzOCwgMjI2LCA2NCwgMjQxLCA1MiwgCisgICAgNTEsIDM4LCAyMjMsIDU1LCAyNDEsIDUyLCA1MSwgMzgsIDU5LCA1MSwgMzgsIDI0OCwgMiwgNTEsIDM4LCAyMjIsIDIzNCwgCisgICAgNTEsIDM4LCAyNDksIDIyMCwgNTEsIDM4LCAyNTAsIDE4MywgMzgsIDIyNiwgMjI0LCAzOCwgNjcsIDIzMiwgMjE0LCA1MSwgCisgICAgMzgsIDI1MSwgMTQwLCA1MSwgMzgsIDIzNSwgMTkzLCA1MiwgMjU0LCAyNCwgNTEsIDM4LCAyNTAsIDIzNSwgNTEsIDM4LCAKKyAgICAyNTAsIDMxLCAyNTUsIDE1LCA1MSwgMzgsIDI1MSwgMTQ3LCA1MSwgMzgsIDIzNSwgMTkzLCAyNTEsIDE0NywgNTEsIDM4LCAKKyAgICAyMTYsIDg5LCA1MSwgMzgsIDIzMSwgMjMzLCA1MSwgMzgsIDEyMSwgMjMyLCAyMTMsIDM4LCA1MiwgMTIxLCAyMzIsIDIxMywgCisgICAgMzgsIDIxNiwgODksIDIyNiwgMTIwLCAzOCwgMjE5LCAyNTEsIDIxOCwgMTAzLCAyMjYsIDEyMCwgMzgsIDE5OSwgMjE4LCAKKyAgICAxMDMsIDIyNiwgMTIwLCAzOCwgMjE5LCAyNTEsIDIxOSwgNDcsIDIyNiwgMTIwLCAzOCwgMTk5LCAyMTksIDQ3LCAyMjYsIAorICAgIDEyMCwgMzgsIDQ0LCAxNjMsIDIyMiwgMjM0LCA1MSwgMzgsIDIzNSwgMTkzLCAyNTEsIDE0MCwgNTEsIDM4LCA0MiwgNTEsIAorICAgIDM4LCAyMjEsIDE4MCwgNTEsIDM4LCAyMTEsIDE3OSwgNDgsIDM4LCA2NywgMTgyLCAzOCwgNTIsIDIyNiwgMTE5LCAzOCwgCisgICAgMjQyLCAxMzcsIDEzOCwgNzgsIDM4LCAyNTUsIDMsIDEzOCwgNzgsIDM4LCAyNiwgMjI1LCAxNzUsIDM4LCAyNiwgMjM0LCAyLCAKKyAgICAzOCwgMjYsIDI0NywgMjUyLCAyMTYsIDE4LCAzOCwgMjYsIDIxMCwgMjE5LCAzOCwgMjUxLCAxNDAsIDQ4LCAzOCwgMjQ1LCAKKyAgICA5OCwgNSwgNTEsIDM4LCA1MiwgNjcsIDIzMiwgMjE0LCA1MSwgMzgsIDQzLCAyNTQsIDExMCwgNTEsIDM4LCAyMjgsIDUyLCAKKyAgICAyMTYsIDg5LCA0OCwgMzgsIDI0MSwgNTgsIDQ4LCAzOCwgMjU0LCAxNDgsIDEyOCwgMjE2LCA0MiwgNDgsIDM4LCA0MywgNDQsIAorICAgIDgwLCA1MSwgMzgsIDIxNCwgMTUzLCA4MCwgNTEsIDM4LCAyNDIsIDE0MiwgMjM1LCA2MywgMzgsIDQ0LCAyNTMsIDI1MCwgCisgICAgNDgsIDM4LCA0MywgMTYzLCAyMjIsIDIzNCwgNDgsIDM4LCAyNDQsIDEzMSwgMzgsIDIxMSwgMTc5LCA1MSwgMzgsIDQzLCAKKyAgICAyNTMsIDI1MCwgNTEsIDM4LCA0NCwgMjUzLCAyNTAsIDUxLCAzOCwgNDQsIDI1MywgMjUwLCAyMiwgMTIwLCAyNTMsIDI1MCwgCisgICAgNTEsIDM4LCA0NCwgMTYzLCAyMjIsIDIzNCwgNDgsIDM4LCA1OSwgNzcsIDIyMiwgMjUxLCAzOCwgMjUzLCAyMTcsIDUxLCAKKyAgICAzOCwgNTIsIDIyMiwgMjM0LCA1MSwgMzgsIDIxMCwgMzUsIDQ4LCAzOCwgNTIsIDI1MSwgMTQ3LCA1MSwgMzgsIDUyLCAyNTEsIAorICAgIDE0NiwgMzgsIDUyLCAyMzEsIDIzMiwgMzgsIDUyLCAyMzEsIDIzMywgNTEsIDM4LCA1MiwgMTgyLCAzOCwgNTIsIDIzNSwgCisgICAgMTkzLCAyNTEsIDE0NiwgMzgsIDUyLCA5NywgODAsIDUxLCAzOCwgNywgNCwgMSwgNjEsIDM4LCA3LCA0LCAxLCA3NSwgMzgsIAorICAgIDcsIDQsIDEsIDczLCAzOCwgNywgNCwgMSwgNzYsIDM4LCA3LCA0LCAxLCA3MCwgMzgsIDcsIDQsIDEsIDI1MSwgNjYsIDM4LCAKKyAgICA3LCA0LCAxLCAyNDksIDYwLCAzOCwgNywgNCwgMSwgMjQyLCA2MCwgMzgsIDcsIDQsIDEsIDE5MywgMzgsIDcsIDQsIDEsIAorICAgIDE1MywgMzgsIDcsIDQsIDEsIDIxNywgMTUyLCAzOCwgNywgNCwgMSwgMjE0LCAxMDUsIDM4LCA3LCA0LCAxLCAyMTEsIDE3OCwgCisgICAgMjYsIDYsIDEsIDI0MSwgMTk2LCAyNiwgNCwgMSwgMjQxLCAxOTYsIDI2LCA2LCAxLCAyNTQsIDIzLCAyMjEsIDI0NiwgMjYsIAorICAgIDQsIDEsIDI1NCwgMjMsIDIyMSwgMjQ2LCAyNiwgMjI3LCAxOTgsIDUwLCAyNiwgMjMyLCAxMDgsIDIyNywgMTk4LCA1MCwgCisgICAgMjYsIDYsIDEsIDIyNiwgNTEsIDI0NywgMjI3LCAyNiwgNCwgMSwgMjI2LCA1MSwgMjQ3LCAyMjcsIDI2LCAyMTAsIDIxOSwgCisgICAgMjYsIDQsIDIyMywgNDksIDIzMiwgODMsIDIxOSwgMTc4LCA4NywgMjYsIDQsIDI0NiwgMTE4LCAyMzIsIDgzLCAyMTksIAorICAgIDE3OCwgODcsIDI2LCA0LCAyMjMsIDQ5LCAyNDYsIDExOCwgMjMyLCA4MywgMjE5LCAxNzgsIDg3LCAyNiwgMjI0LCAxMywgCisgICAgNzgsIDI2LCAyMTYsIDE4LCAyNiwgMjQ3LCAyNTIsIDIxNiwgMTgsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjE2LCAxOCwgCisgICAgMjYsIDI1NCwgOTcsIDIxNywgMiwgMjYsIDYsIDEsIDI0NSwgMTAxLCAyLCAyMTYsIDE4LCAyNiwgNiwgMSwgMjQ1LCA2NCwgCisgICAgMiwgMjE2LCAxOCwgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyMTYsIDE4LCAyNiwgNiwgMSwgMjI2LCAyMDAsIDIsIDIxNiwgCisgICAgMTgsIDI2LCA2LCAxLCAyMTQsIDE1OCwgMiwgMjE2LCAxOCwgMjYsIDYsIDEsIDIyNiwgMjAyLCAyLCAyMTYsIDE4LCAyNiwgCisgICAgNCwgMSwgMjM1LCAxODYsIDIsIDI0NywgMjUyLCAyMiwgMjE2LCAxOCwgMjYsIDYsIDEsIDI1NCwgMTQzLCAyNiwgNiwgMSwgCisgICAgMjUyLCAyNiwgMjYsIDYsIDEsIDI0MywgMTA3LCAyNiwgNiwgMSwgMjQ4LCA1NCwgMjYsIDYsIDEsIDI0NSwgMTAwLCAyNiwgCisgICAgNiwgMSwgMjEwLCA4NSwgMjYsIDYsIDEsIDI0NSwgNjMsIDI2LCA2LCAxLCAyMTYsIDE3OSwgMjYsIDYsIDEsIDIzNSwgMTg1LCAKKyAgICAyNiwgNiwgMSwgMjM0LCAyMjIsIDI2LCA2LCAxLCAyMzMsIDk4LCAyNiwgNiwgMSwgMjMwLCAxMDIsIDI2LCA2LCAxLCAyMjcsIAorICAgIDIzNywgMjYsIDYsIDEsIDIxMSwgMTU3LCAyNiwgNiwgMSwgMjI2LCAxOTksIDI2LCA2LCAxLCAyMjUsIDEwOCwgMjYsIDYsIAorICAgIDEsIDIyMywgMzcsIDI2LCA2LCAxLCAyMTksIDE3NywgMjYsIDYsIDEsIDIxNywgNDEsIDI2LCA2LCAxLCAyMTQsIDE1NywgCisgICAgMjYsIDYsIDEsIDIyNSwgMTMzLCAyNiwgNiwgMSwgMjUwLCAxMTAsIDI2LCA2LCAxLCAyMjQsIDE2MSwgMjYsIDYsIDEsIAorICAgIDIyNiwgMjAxLCAyNiwgNiwgMSwgMjM1LCAxODYsIDIsIDI0NywgMjUxLCAyNiwgNiwgMSwgMjE0LCAxNTgsIDIsIDI0NywgCisgICAgMjUxLCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDIxNiwgMTgsIDI2LCA0LCAxLCAyNDUsIDEwMSwgMiwgMjE2LCAxOCwgMjYsIAorICAgIDQsIDEsIDI0NSwgNjQsIDIsIDIxNiwgMTgsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMiwgMjE2LCAxOCwgMjYsIDQsIDEsIDIxNCwgCisgICAgMTU4LCAyLCAyNDcsIDI1MiwgMjIsIDIxNiwgMTgsIDI2LCA0LCAxLCAyNTQsIDE0MywgMjYsIDQsIDEsIDI1MiwgMjYsIDI2LCAKKyAgICA0LCAxLCAyNDMsIDEwNywgMjYsIDQsIDEsIDI0OCwgNTQsIDI2LCA0LCAxLCAyNDUsIDEwMCwgMjYsIDQsIDEsIDIxMCwgODUsIAorICAgIDI2LCA0LCAxLCAyNDUsIDYzLCAyNiwgNCwgMSwgMjE2LCAxNzksIDI2LCA0LCAxLCAyMzUsIDE4NSwgMjYsIDQsIDEsIDIzNCwgCisgICAgMjIyLCAyNiwgNCwgMSwgMjMzLCA5OCwgMjYsIDQsIDEsIDIzMCwgMTAyLCAyNiwgNCwgMSwgMjI3LCAyMzcsIDI2LCA0LCAxLCAKKyAgICAyMTEsIDE1NywgMjYsIDQsIDEsIDIyNiwgMTk5LCAyNiwgNCwgMSwgMjI1LCAxMDgsIDI2LCA0LCAxLCAyMjMsIDM3LCAyNiwgCisgICAgNCwgMSwgNDAsIDIxOSwgMTc3LCAyNiwgNCwgMSwgMjE5LCAxNzcsIDI2LCA0LCAxLCAyMTcsIDQxLCAyNiwgNCwgMSwgMjE0LCAKKyAgICAxNTcsIDI2LCA0LCAxLCAyMjUsIDEzMywgMjYsIDQsIDEsIDI1MCwgMTEwLCAyNiwgNCwgMSwgMjI0LCAxNjEsIDI2LCA0LCAKKyAgICAxLCAyMjYsIDIwMSwgMjYsIDQsIDEsIDIzNSwgMTg2LCAyLCAyNDcsIDI1MSwgMjYsIDQsIDEsIDIxNCwgMTU4LCAyLCAyNDcsIAorICAgIDI1MSwgMjYsIDQsIDEsIDIyNiwgMjAwLCAyLCAyMTYsIDE4LCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDIxNiwgMTgsIDI2LCAKKyAgICA0LCAxLCAyMjYsIDIwMiwgMiwgMjE2LCAxOCwgMjYsIDYsIDIzNCwgMjQ3LCA4NywgMjYsIDI1MiwgMjcsIDg3LCAyNiwgCisgICAgMjE2LCAxODAsIDg3LCAyNiwgMjE0LCAxNTgsIDIsIDI0MSwgNTIsIDg3LCAyNiwgMjE0LCAxNTgsIDIsIDI1NSwgMywgMjIsIAorICAgIDI0MSwgNTIsIDg3LCAyNiwgMjE0LCAxNTgsIDIsIDI0OCwgMiwgMjIsIDI0MSwgNTIsIDg3LCAyNiwgMjI1LCAxMzQsIDg3LCAKKyAgICAyNiwgMjI1LCAxMDksIDg3LCAyNiwgMjM0LCAyNDcsIDg3LCAyNiwgMSwgMjU0LCAyMywgMjM0LCA2LCAyNiwgNCwgMSwgCisgICAgMjU0LCAyMywgMjM0LCA2LCAyNiwgMSwgMjE4LCAxMzcsIDI2LCA0LCAxLCAyMTgsIDEzNywgMjYsIDEsIDI0NywgMjI3LCAKKyAgICAyNiwgNCwgMSwgMjQ3LCAyMjcsIDI2LCAxLCAyMzQsIDYsIDI2LCA0LCAxLCAyMzQsIDYsIDI2LCAxLCAyMjEsIDI0NiwgMjYsIAorICAgIDQsIDEsIDIyMSwgMjQ2LCA4MSwgNiwgMSwgMjIwLCA1NSwgODEsIDQsIDEsIDIyMCwgNTUsIDgxLCA2LCAxLCAyNDQsIDE0MCwgCisgICAgODEsIDQsIDEsIDI0NCwgMTQwLCA4MSwgNiwgMSwgMjM0LCAxMTcsIDgxLCA0LCAxLCAyMzQsIDExNywgODEsIDYsIDEsIAorICAgIDI0MSwgNDUsIDgxLCA0LCAxLCAyNDEsIDQ1LCA4MSwgNiwgMSwgMjQzLCAxMDIsIDgxLCA0LCAxLCAyNDMsIDEwMiwgODEsIAorICAgIDYsIDEsIDIyMCwgMjIsIDgxLCA0LCAxLCAyMjAsIDIyLCA4MSwgNiwgMSwgMjQ4LCA2OSwgODEsIDQsIDEsIDI0OCwgNjksIAorICAgIDI2LCAyMzQsIDIyMywgODcsIDI2LCAyMjMsIDM4LCA4NywgMjYsIDIzMiwgODMsIDIxOSwgMTc4LCA4NywgMjYsIDEsIDIxMCwgCisgICAgMjI0LCAyNiwgNiwgMjE2LCAxODAsIDg3LCAyNiwgMjMyLCA4MywgMjQ1LCAxMDEsIDg3LCAyNiwgMjIzLCA0OSwgMjMyLCAKKyAgICA4MywgMjQ1LCAxMDEsIDg3LCAyNiwgNiwgMSwgMjIwLCA3LCAyNiwgNCwgMSwgMjIwLCA3LCAyNiwgNiwgMjMyLCA4MywgCisgICAgMjE5LCAxNzgsIDg3LCAyNiwgNiwgMSwgMjIxLCAyNDMsIDI2LCA0LCAxLCAyMjEsIDI0MywgMjYsIDIyMywgMzgsIDIsIAorICAgIDIxOCwgMTAzLCA4NywgMjYsIDYsIDIyMywgNDksIDIzMiwgODMsIDIxOSwgMTc4LCA4NywgMjYsIDYsIDI0NiwgMTE4LCAKKyAgICAyMzIsIDgzLCAyMTksIDE3OCwgODcsIDI2LCA2LCAyMjMsIDQ5LCAyNDYsIDExOCwgMjMyLCA4MywgMjE5LCAxNzgsIDg3LCAKKyAgICAzMywgNiwgMSwgMjM2LCA2MSwgMiwgMjQyLCAxMzYsIDMzLCA2LCAxLCAyMzUsIDE4OSwgMzMsIDYsIDEsIDI0NywgMTYyLCAKKyAgICAzMywgNiwgMSwgMjQyLCAxODcsIDMzLCA2LCAxLCAyMTQsIDIwMiwgMjM2LCA2MCwgMzMsIDYsIDEsIDI0NiwgMzYsIDMzLCAKKyAgICA2LCAxLCAyNTEsIDc2LCA3MywgMzMsIDYsIDEsIDIxMSwgOCwgMzMsIDYsIDEsIDIzNSwgMTI2LCAzMywgNiwgMSwgMjMyLCAKKyAgICAxODcsIDMzLCA2LCAxLCAyMjgsIDE3OCwgMzMsIDYsIDEsIDIxNSwgMTc0LCAzMywgNiwgMSwgMjM0LCA0OCwgMzMsIDYsIDEsIAorICAgIDI0MCwgMTU0LCAyLCAyNDIsIDEzNiwgMzMsIDYsIDEsIDIxOSwgMjUxLCA3MCwgMzMsIDYsIDEsIDI0NiwgMzIsIDMzLCA2LCAKKyAgICAxLCA2MSwgMzMsIDYsIDEsIDI1MiwgNzUsIDMzLCA2LCAxLCAyMTMsIDI1NSwgMzMsIDYsIDEsIDI0MiwgMjM2LCAzMywgNiwgCisgICAgMSwgMjQ4LCA5MCwgMzMsIDYsIDEsIDIzNiwgNjAsIDMzLCA2LCAxLCAyMTAsIDc0LCAzMywgNiwgMSwgMjEwLCA5NCwgMzMsIAorICAgIDYsIDEsIDczLCAzMywgNiwgMSwgMjE5LCAyNTEsIDczLCAzMywgNiwgMSwgMTc2LCAzMywgNiwgMSwgMjQ1LCAxNzQsIDMzLCAKKyAgICA2LCAxLCAyNDUsIDE1OSwgMzMsIDYsIDEsIDI0NSwgMTUwLCAzMywgNiwgMSwgNzYsIDMzLCA2LCAxLCAyMjUsIDIyMSwgMzMsIAorICAgIDYsIDEsIDI0NSwgOTIsIDMzLCA2LCAxLCAyNDUsIDgyLCAzMywgNiwgMSwgMjE3LCAyMiwgMzMsIDYsIDEsIDcwLCAzMywgNiwgCisgICAgMSwgMjQ1LCAyMDIsIDMzLCA2LCAxLCAxNjIsIDMzLCA2LCAxLCAyMTUsIDE3OCwgMzMsIDYsIDEsIDI1MCwgMTMxLCAzMywgCisgICAgNiwgMSwgMjIwLCAxMDIsIDMzLCA2LCAxLCAyMjAsIDY1LCAzMywgNiwgMSwgMjQyLCAzLCA1MCwgMzMsIDYsIDEsIDIxMSwgCisgICAgMjcsIDMzLCA2LCAxLCAyMTksIDUyLCA1MCwgMzMsIDYsIDEsIDc1LCAzMywgNiwgMSwgMjEwLCAyMTIsIDMzLCA2LCAxLCAKKyAgICAxOTEsIDMzLCA0LCAxLCA2MSwgMzMsIDQsIDEsIDI1MiwgNzUsIDMzLCA0LCAxLCAyMTMsIDI1NSwgMzMsIDQsIDEsIDI0MiwgCisgICAgMjM2LCAzMywgNCwgMSwgMjQ4LCA5MCwgMzMsIDQsIDEsIDIzNiwgNjAsIDMzLCA0LCAxLCAyMTAsIDc0LCAzMywgNCwgMSwgCisgICAgMjEwLCA5NCwgMzMsIDQsIDEsIDczLCAzMywgNCwgMSwgMjE5LCAyNTEsIDczLCAzMywgNCwgMSwgMTc2LCAzMywgNCwgMSwgCisgICAgMjQ1LCAxNzQsIDMzLCA0LCAxLCAyNDUsIDE1OSwgMzMsIDQsIDEsIDI0NSwgMTUwLCAzMywgNCwgMSwgNzYsIDMzLCA0LCAxLCAKKyAgICAyMjUsIDIyMSwgMzMsIDQsIDEsIDI0NSwgOTIsIDMzLCA0LCAxLCAyNDUsIDgyLCAzMywgNCwgMSwgMjE3LCAyMiwgMzMsIDQsIAorICAgIDEsIDcwLCAzMywgNCwgMSwgMjQ1LCAyMDIsIDMzLCA0LCAxLCAxNjIsIDMzLCA0LCAxLCAyMTUsIDE3OCwgMzMsIDQsIDEsIAorICAgIDI1MCwgMTMxLCAzMywgNCwgMSwgMjIwLCAxMDIsIDMzLCA0LCAxLCAyMjAsIDY1LCAzMywgNCwgMSwgMjQyLCAzLCA1MCwgCisgICAgMzMsIDQsIDEsIDIxMSwgMjcsIDMzLCA0LCAxLCAyMTksIDUyLCA1MCwgMzMsIDQsIDEsIDc1LCAzMywgNCwgMSwgMjEwLCAKKyAgICAyMTIsIDMzLCA0LCAxLCAxOTEsIDMzLCA0LCAxLCAyMzYsIDYxLCAyLCAyNDIsIDEzNiwgMzMsIDQsIDEsIDIzNSwgMTg5LCAKKyAgICAzMywgNCwgMSwgMjQ3LCAxNjIsIDMzLCA0LCAxLCAyNDIsIDE4NywgMzMsIDQsIDEsIDIxNCwgMjAyLCAyMzYsIDYwLCAzMywgCisgICAgNCwgMSwgMjQ2LCAzNiwgMzMsIDQsIDEsIDI1MSwgNzYsIDczLCAzMywgNCwgMSwgMjExLCA4LCAzMywgNCwgMSwgMjM1LCAKKyAgICAxMjYsIDMzLCA0LCAxLCAyMzIsIDE4NywgMzMsIDQsIDEsIDIyOCwgMTc4LCAzMywgNCwgMSwgMjE1LCAxNzQsIDMzLCA0LCAKKyAgICAxLCAyMzQsIDQ4LCAzMywgNCwgMSwgMjQwLCAxNTQsIDIsIDI0MiwgMTM2LCAzMywgNCwgMSwgMjE5LCAyNTEsIDcwLCAzMywgCisgICAgNCwgMSwgMjQ2LCAzMiwgMzMsIDYsIDEsIDIyNiwgMjAxLCAzMywgNCwgMSwgMjI2LCAyMDEsIDMzLCA2LCAxLCAyMTEsIDU5LCAKKyAgICAzMywgNCwgMSwgMjExLCA1OSwgMzMsIDYsIDEsIDIzNSwgMTgzLCA3NSwgMzMsIDQsIDEsIDIzNSwgMTgzLCA3NSwgMzMsIDYsIAorICAgIDEsIDIzMiwgMTkyLCAyMTAsIDE4MywgMzMsIDQsIDEsIDIzMiwgMTkyLCAyMTAsIDE4MywgMzMsIDYsIDEsIDIzNSwgMTgzLCAKKyAgICAyMzIsIDE5MiwgMjEwLCAxODMsIDMzLCA0LCAxLCAyMzUsIDE4MywgMjMyLCAxOTIsIDIxMCwgMTgzLCAzMywgNiwgMSwgCisgICAgMjUxLCAyNDksIDIxMCwgMTgzLCAzMywgNCwgMSwgMjUxLCAyNDksIDIxMCwgMTgzLCAzMywgNiwgMSwgMjM1LCAxODMsIAorICAgIDI1MSwgMjQ5LCAyMTAsIDE4MywgMzMsIDQsIDEsIDIzNSwgMTgzLCAyNTEsIDI0OSwgMjEwLCAxODMsIDMzLCA2LCAxLCAKKyAgICAyMzMsIDIzMywgMzMsIDQsIDEsIDIzMywgMjMzLCAzMywgNiwgMSwgMjI0LCAxNjEsIDMzLCA0LCAxLCAyMjQsIDE2MSwgMzMsIAorICAgIDYsIDEsIDI0NCwgODIsIDMzLCA0LCAxLCAyNDQsIDgyLCAzMywgNiwgMSwgMjM1LCAxNDYsIDMzLCA0LCAxLCAyMzUsIDE0NiwgCisgICAgMzMsIDYsIDEsIDIzNSwgMTQ3LCAyLCA1MiwgMjQyLCAxMzcsIDI1NSwgMTQsIDMzLCA0LCAxLCAyMzUsIDE0NywgMiwgNTIsIAorICAgIDI0MiwgMTM3LCAyNTUsIDE0LCAzMywgNiwgMSwgMjE0LCAyMDUsIDMzLCA0LCAxLCAyMTQsIDIwNSwgMzMsIDYsIDEsIDIyMiwgCisgICAgMTg1LCAyMjYsIDIwMSwgMzMsIDQsIDEsIDIyMiwgMTg1LCAyMjYsIDIwMSwgMzMsIDYsIDEsIDIyNiwgMjAyLCAyLCAyMTYsIAorICAgIDY1LCAzMywgNCwgMSwgMjI2LCAyMDIsIDIsIDIxNiwgNjUsIDMzLCA2LCAxLCAyMjYsIDE0MCwgMzMsIDQsIDEsIDIyNiwgCisgICAgMTQwLCAzMywgNiwgMSwgMjM0LCA2LCAzMywgNCwgMSwgMjM0LCA2LCAzMywgMjE2LCAxNDYsIDUwLCAzOCwgMzMsIDIxNiwgCisgICAgNjUsIDM4LCAzMywgMjI2LCA2NSwgMzgsIDMzLCAyNDgsIDE1NCwgMjI1LCAxOCwgMzgsIDMzLCAyMjQsIDE1NSwgMjI1LCAKKyAgICAxOCwgMzgsIDMzLCAyMjUsIDMsIDM4LCAzMywgMjQwLCAyMTEsIDIxNiwgMTQ2LCA1MCwgMzgsIDMzLCAyMzAsIDE5MSwgNTAsIAorICAgIDMzLCA2LCAxLCAyMTksIDI1MSwgMjQwLCAxNTQsIDIsIDIxNywgNzcsIDMzLCA0LCAxLCAyMTksIDI1MSwgMjQwLCAxNTQsIAorICAgIDIsIDIxNywgNzcsIDMzLCA2LCAxLCAyMjAsIDE0NiwgNTAsIDMzLCA0LCAxLCAyMjAsIDE0NiwgNTAsIDMzLCA2LCAxLCAKKyAgICAyNDUsIDkzLCAyLCAyMTYsIDExNCwgMzMsIDQsIDEsIDI0NSwgOTMsIDIsIDIxNiwgMTE0LCAzMywgNiwgMSwgMjQyLCAyMzcsIAorICAgIDIsIDIxNCwgMTU2LCAzMywgNCwgMSwgMjQyLCAyMzcsIDIsIDIxNCwgMTU2LCAzMywgNiwgMSwgMjQyLCAyMzcsIDIsIDkxLCAKKyAgICAzMywgNCwgMSwgMjQyLCAyMzcsIDIsIDkxLCAzMywgNiwgMSwgMjQyLCAyMzcsIDIsIDIzMCwgMjI0LCAxMDMsIDMzLCA0LCAKKyAgICAxLCAyNDIsIDIzNywgMiwgMjMwLCAyMjQsIDEwMywgMzMsIDYsIDEsIDIxMCwgNzUsIDIsIDI0OCwgMzksIDMzLCA0LCAxLCAKKyAgICAyMTAsIDc1LCAyLCAyNDgsIDM5LCAzMywgNiwgMSwgMjEwLCA5NSwgMiwgMjQ4LCAzOSwgMzMsIDQsIDEsIDIxMCwgOTUsIDIsIAorICAgIDI0OCwgMzksIDMzLCA2LCAxLCAyMzUsIDEzLCAyLCAyNDgsIDM5LCAzMywgNCwgMSwgMjM1LCAxMywgMiwgMjQ4LCAzOSwgCisgICAgMzMsIDYsIDEsIDIzNSwgMTMsIDIsIDY3LCA5MSwgMzMsIDQsIDEsIDIzNSwgMTMsIDIsIDY3LCA5MSwgMzMsIDYsIDEsIAorICAgIDIzNSwgMTMsIDIsIDkxLCAzMywgNCwgMSwgMjM1LCAxMywgMiwgOTEsIDMzLCA2LCAxLCAyNTIsIDEyNCwgMTc2LCAzMywgNCwgCisgICAgMSwgMjUyLCAxMjQsIDE3NiwgMzMsIDYsIDEsIDI0NSwgMTUxLCAyLCAyNDgsIDM5LCAzMywgNCwgMSwgMjQ1LCAxNTEsIDIsIAorICAgIDI0OCwgMzksIDMzLCA2LCAyNywgMjQ1LCAxNTEsIDI0MiwgMjM2LCAzMywgNCwgMjcsIDI0NSwgMTUxLCAyNDIsIDIzNiwgCisgICAgMzMsIDYsIDEsIDIyNSwgMjIyLCAyLCAyMzAsIDIyNCwgMTAzLCAzMywgNCwgMSwgMjI1LCAyMjIsIDIsIDIzMCwgMjI0LCAKKyAgICAxMDMsIDMzLCA2LCAxLCAyNTUsIDIwLCAxNjIsIDMzLCA0LCAxLCAyNTUsIDIwLCAxNjIsIDMzLCA2LCAxLCAyNDUsIDgzLCAKKyAgICAyLCAyNDgsIDM5LCAzMywgNCwgMSwgMjQ1LCA4MywgMiwgMjQ4LCAzOSwgMzMsIDYsIDEsIDIxNywgMjMsIDIsIDI0OCwgMzksIAorICAgIDMzLCA0LCAxLCAyMTcsIDIzLCAyLCAyNDgsIDM5LCAzMywgNiwgMSwgMjE4LCAxMjEsIDcwLCAzMywgNCwgMSwgMjE4LCAKKyAgICAxMjEsIDcwLCAzMywgNiwgMSwgMjE4LCAxMjEsIDEwNCwgMiwgOTEsIDMzLCA0LCAxLCAyMTgsIDEyMSwgMTA0LCAyLCA5MSwgCisgICAgMzMsIDYsIDEsIDI0MiwgNDksIDIsIDI0OCwgMzksIDMzLCA0LCAxLCAyNDIsIDQ5LCAyLCAyNDgsIDM5LCAzMywgNiwgMjcsIAorICAgIDIxNywgMjMsIDIxNSwgMTc4LCAzMywgNCwgMjcsIDIxNywgMjMsIDIxNSwgMTc4LCAzMywgNiwgMSwgMjUwLCAxMzIsIDIsIAorICAgIDI0OCwgMzksIDMzLCA0LCAxLCAyNTAsIDEzMiwgMiwgMjQ4LCAzOSwgMzMsIDYsIDEsIDI1MCwgMTMyLCAyLCA2NywgOTEsIAorICAgIDMzLCA0LCAxLCAyNTAsIDEzMiwgMiwgNjcsIDkxLCAzMywgNiwgMSwgMjIwLCAzMywgMzMsIDQsIDEsIDIyMCwgMzMsIDMzLCAKKyAgICA2LCAxLCAyNTUsIDIwLCAyNTAsIDEzMSwgMzMsIDQsIDEsIDI1NSwgMjAsIDI1MCwgMTMxLCAzMywgNiwgMSwgMjU1LCAyMCwgCisgICAgMjUwLCAxMzIsIDIsIDI0OCwgMzksIDMzLCA0LCAxLCAyNTUsIDIwLCAyNTAsIDEzMiwgMiwgMjQ4LCAzOSwgMzMsIDEsIAorICAgIDIyNiwgNTgsIDMzLCA2LCAxLCAyMTAsIDc1LCAyLCAyNTEsIDE0NiwgMzMsIDQsIDEsIDIxMCwgNzUsIDIsIDI1MSwgMTQ2LCAKKyAgICAzMywgNiwgMSwgMjM1LCAxMywgMiwgMTAzLCAzMywgNCwgMSwgMjM1LCAxMywgMiwgMTAzLCAzMywgNiwgMSwgMjQ1LCAxNzUsIAorICAgIDIsIDIxNywgNzcsIDMzLCA0LCAxLCAyNDUsIDE3NSwgMiwgMjE3LCA3NywgMzMsIDYsIDEsIDI0NSwgMTUxLCAyLCAxMDMsIAorICAgIDMzLCA0LCAxLCAyNDUsIDE1MSwgMiwgMTAzLCAzMywgNiwgMSwgMjQ1LCAxNTEsIDIsIDIxNywgNzcsIDMzLCA0LCAxLCAKKyAgICAyNDUsIDE1MSwgMiwgMjE3LCA3NywgMzMsIDYsIDEsIDIzNCwgMTI3LCAyNTAsIDEzMSwgMzMsIDQsIDEsIDIzNCwgMTI3LCAKKyAgICAyNTAsIDEzMSwgMzMsIDYsIDEsIDI0NSwgMTYwLCAyLCAyMTcsIDc3LCAzMywgNCwgMSwgMjQ1LCAxNjAsIDIsIDIxNywgNzcsIAorICAgIDMzLCA0LCAxLCAyMjYsIDU4LCAzMywgNiwgMSwgMTE1LCAyLCAyNTEsIDE0NiwgMzMsIDQsIDEsIDExNSwgMiwgMjUxLCAKKyAgICAxNDYsIDMzLCA2LCAxLCAxMTUsIDIsIDI0OCwgMSwgMzMsIDQsIDEsIDExNSwgMiwgMjQ4LCAxLCAzMywgNiwgMjcsIDExNSwgCisgICAgMjM2LCA2MCwgMzMsIDQsIDI3LCAxMTUsIDIzNiwgNjAsIDMzLCA2LCAxLCAyMzYsIDYxLCAyLCAyNTEsIDE0NiwgMzMsIDQsIAorICAgIDEsIDIzNiwgNjEsIDIsIDI1MSwgMTQ2LCAzMywgNiwgMSwgMjIxLCAxOTUsIDMzLCA0LCAxLCAyMjEsIDE5NSwgMzMsIDYsIAorICAgIDEsIDIyMSwgMTk2LCAyLCAyNDgsIDEsIDMzLCA0LCAxLCAyMjEsIDE5NiwgMiwgMjQ4LCAxLCAzMywgNiwgMSwgMjEwLCA3NSwgCisgICAgMiwgMjQ4LCAxLCAzMywgNCwgMSwgMjEwLCA3NSwgMiwgMjQ4LCAxLCAzMywgNiwgMSwgMjEwLCA5NSwgMiwgMjQ4LCAxLCAKKyAgICAzMywgNCwgMSwgMjEwLCA5NSwgMiwgMjQ4LCAxLCAzMywgNiwgMSwgMjU1LCAyMCwgMjQ2LCAzNiwgMzMsIDQsIDEsIDI1NSwgCisgICAgMjAsIDI0NiwgMzYsIDMzLCA2LCAxLCAyNDAsIDE1NCwgMiwgMjMxLCAyMzIsIDMzLCA0LCAxLCAyNDAsIDE1NCwgMiwgMjMxLCAKKyAgICAyMzIsIDMzLCA2LCAxLCAyNDAsIDE1NCwgMiwgMjQ4LCAxLCAzMywgNCwgMSwgMjQwLCAxNTQsIDIsIDI0OCwgMSwgMzMsIDYsIAorICAgIDEsIDE0NCwgMiwgMjQ4LCAxLCAzMywgNCwgMSwgMTQ0LCAyLCAyNDgsIDEsIDMzLCA2LCAxLCAyNTIsIDEzNCwgNzYsIDMzLCAKKyAgICA0LCAxLCAyNTIsIDEzNCwgNzYsIDMzLCA2LCAxLCAyNTIsIDEzNCwgMTQ0LCAyLCAyNDgsIDEsIDMzLCA0LCAxLCAyNTIsIAorICAgIDEzNCwgMTQ0LCAyLCAyNDgsIDEsIDMzLCA2LCAxLCAxNjAsIDIsIDI0OCwgMSwgMzMsIDQsIDEsIDE2MCwgMiwgMjQ4LCAxLCAKKyAgICAzMywgNiwgMSwgMTA0LCAyLCAyMzEsIDIzMiwgMzMsIDQsIDEsIDEwNCwgMiwgMjMxLCAyMzIsIDMzLCA2LCAxLCAxMDQsIDIsIAorICAgIDI0OCwgMSwgMzMsIDQsIDEsIDEwNCwgMiwgMjQ4LCAxLCAzMywgNiwgMSwgMTA0LCAyLCA1MiwgMTQyLCAzMywgNCwgMSwgCisgICAgMTA0LCAyLCA1MiwgMTQyLCAzMywgNiwgMSwgMjUwLCAxMzIsIDIsIDI0OCwgMSwgMzMsIDQsIDEsIDI1MCwgMTMyLCAyLCAKKyAgICAyNDgsIDEsIDMzLCA2LCAxLCAyNDIsIDIzNywgMiwgMjQ4LCAzOSwgMzMsIDQsIDEsIDI0MiwgMjM3LCAyLCAyNDgsIDM5LCAKKyAgICAzMywgNiwgMSwgMjExLCAyOCwgMiwgMjQ4LCAxLCAzMywgNCwgMSwgMjExLCAyOCwgMiwgMjQ4LCAxLCAzMywgNiwgMSwgCisgICAgMjQyLCAyMzcsIDIsIDIxOCwgMTAzLCAyMiwgMTAzLCAzMywgNCwgMSwgMjQyLCAyMzcsIDIsIDIxOCwgMTAzLCAyMiwgMTAzLCAKKyAgICAzMywgNiwgMSwgMjQyLCA0OSwgMiwgMTAzLCAzMywgNCwgMSwgMjQyLCA0OSwgMiwgMTAzLCAzMywgNiwgMSwgMjQyLCA0OSwgCisgICAgMiwgOTEsIDMzLCA0LCAxLCAyNDIsIDQ5LCAyLCA5MSwgMzMsIDYsIDEsIDIzNCwgMTQsIDI0OCwgOTAsIDMzLCA0LCAxLCAKKyAgICAyMzQsIDE0LCAyNDgsIDkwLCAzMywgNiwgMSwgMjM0LCAxNCwgMjQ3LCAxNjIsIDMzLCA0LCAxLCAyMzQsIDE0LCAyNDcsIAorICAgIDE2MiwgMzMsIDYsIDEsIDIzNCwgMTQsIDIxMCwgMjcsIDMzLCA0LCAxLCAyMzQsIDE0LCAyMTAsIDI3LCAzMywgNiwgMSwgCisgICAgMjM0LCAxNCwgMjQ2LCAzMCwgMzMsIDQsIDEsIDIzNCwgMTQsIDI0NiwgMzAsIDMzLCA2LCAxLCAyMzQsIDE0LCAyMzIsIAorICAgIDE4NywgMzMsIDQsIDEsIDIzNCwgMTQsIDIzMiwgMTg3LCAzMywgNiwgMSwgMjM0LCAxNCwgMjI4LCAxNzgsIDMzLCA0LCAxLCAKKyAgICAyMzQsIDE0LCAyMjgsIDE3OCwgMzMsIDYsIDEsIDIzNCwgMTQsIDIxOSwgMTA5LCAzMywgNCwgMSwgMjM0LCAxNCwgMjE5LCAKKyAgICAxMDksIDMzLCA2LCAxLCAyMzQsIDE0LCAyMTYsIDYwLCAzMywgNCwgMSwgMjM0LCAxNCwgMjE2LCA2MCwgMzMsIDYsIDEsIAorICAgIDIyMywgNDksIDIxMCwgOTQsIDMzLCA0LCAxLCAyMjMsIDQ5LCAyMTAsIDk0LCAzMywgNiwgMSwgMjQ1LCAxNzUsIDIsIDEwMywgCisgICAgMzMsIDQsIDEsIDI0NSwgMTc1LCAyLCAxMDMsIDMzLCA2LCAxLCAyMzIsIDI1NCwgMzMsIDQsIDEsIDIzMiwgMjU0LCAzMywgCisgICAgNiwgMSwgMjIzLCAzOSwgMzMsIDQsIDEsIDIyMywgMzksIDMzLCA2LCAxLCAyMTEsIDkyLCAzMywgNCwgMSwgMjExLCA5MiwgCisgICAgMzMsIDYsIDEsIDIyNCwgODgsIDMzLCA0LCAxLCAyMjQsIDg4LCAzMywgNiwgMSwgMjEyLCAyMiwgMzMsIDQsIDEsIDIxMiwgCisgICAgMjIsIDMzLCA2LCAxLCAyNTQsIDE2NiwgMTc2LCAzMywgNCwgMSwgMjU0LCAxNjYsIDE3NiwgMzMsIDYsIDEsIDI0NSwgMTc1LCAKKyAgICAyLCAyMzAsIDIyNCwgMTAzLCAzMywgNCwgMSwgMjQ1LCAxNzUsIDIsIDIzMCwgMjI0LCAxMDMsIDMzLCA2LCAxLCAyNDUsIAorICAgIDE1MSwgMiwgMjMwLCAyMjQsIDEwMywgMzMsIDQsIDEsIDI0NSwgMTUxLCAyLCAyMzAsIDIyNCwgMTAzLCAzMywgNiwgMSwgCisgICAgMjI1LCAyMjIsIDIsIDI0OCwgMzksIDMzLCA0LCAxLCAyMjUsIDIyMiwgMiwgMjQ4LCAzOSwgMzMsIDYsIDEsIDIyMCwgMzQsIAorICAgIDIsIDI0OCwgMzksIDMzLCA0LCAxLCAyMjAsIDM0LCAyLCAyNDgsIDM5LCAxNTAsIDYsIDEsIDI1MywgMTY0LCAxNTAsIDYsIAorICAgIDEsIDI1MiwgMzksIDE1MCwgNiwgMSwgMjQyLCAyMDMsIDE1MCwgNiwgMSwgMjQ4LCAyMjEsIDE1MCwgNiwgMSwgMjQ1LCAKKyAgICAyMTMsIDE1MCwgNiwgMSwgMjEwLCAxMTYsIDE1MCwgNiwgMSwgMjQ1LCAxOTcsIDE1MCwgNiwgMSwgMjQ1LCA2NSwgMTUwLCAKKyAgICA2LCAxLCAxMTEsIDE1MCwgNiwgMSwgMjEwLCA3NCwgMTUwLCA2LCAxLCAyMzUsIDIyNywgMTUwLCA2LCAxLCAyMzIsIDE5MCwgCisgICAgMTUwLCA2LCAxLCAyMTEsIDE2MCwgMTUwLCA2LCAxLCAyNTEsIDMzLCAxNTAsIDYsIDEsIDIzNCwgMTY1LCAxNTAsIDYsIDEsIAorICAgIDI0MSwgNjgsIDE1MCwgNiwgMSwgMjM1LCAxNDEsIDE1MCwgNiwgMSwgMjQyLCAyNDYsIDE1MCwgNiwgMSwgMjUwLCAxMjYsIAorICAgIDE1MCwgNiwgMSwgMjMxLCA1OCwgMTUwLCA2LCAxLCAyMTEsIDgsIDE1MCwgNiwgMSwgMjI4LCAzOSwgMTUwLCA2LCAxLCAKKyAgICAyMjAsIDEwMiwgMTUwLCA2LCAxLCAyMTMsIDEzOCwgMTUwLCA2LCAxLCAyNTAsIDE1NywgMTUwLCA2LCAxLCAyMjUsIDIwNSwgCisgICAgMTUwLCA2LCAxLCAyMzUsIDExMCwgMTUwLCA2LCAxLCAyMDUsIDE1MCwgNiwgMSwgMjIxLCAxNjEsIDE1MCwgNiwgMSwgMjEzLCAKKyAgICAxNzksIDE1MCwgNiwgMSwgMjE2LCA2MiwgMTUwLCA2LCAxLCAyMjMsIDk1LCAxNTAsIDYsIDEsIDI0OSwgMjM4LCAxNTAsIDYsIAorICAgIDEsIDIxMCwgMjQ5LCAxNTAsIDYsIDEsIDIyNSwgNDYsIDE1MCwgNiwgMSwgMjM0LCAxNzYsIDE1MCwgNiwgMSwgMjI2LCAKKyAgICAyMjIsIDE1MCwgNiwgMSwgMjQ0LCAxNDIsIDE1MCwgNTgsIDEsIDQzLCAxNjMsIDIyMiwgMjMzLCAxNTAsIDI1NCwgNTcsIAorICAgIDE1MCwgMjQ1LCAxNTQsIDc4LCAxNTAsIDI0NSwgMzEsIDc4LCAxNTAsIDI0OSwgMjE5LCAxNTAsIDIyNCwgMTMsIDc4LCAKKyAgICAxNTAsIDI1NSwgMjEsIDc4LCAxNTAsIDQsIDEsIDI1MywgMTY0LCAxNTAsIDQsIDEsIDI1MiwgMzksIDE1MCwgNCwgMSwgCisgICAgMjQyLCAyMDMsIDE1MCwgNCwgMSwgMjQ4LCAyMjEsIDE1MCwgNCwgMSwgMjQ1LCAyMTMsIDE1MCwgNCwgMSwgMjEwLCAxMTYsIAorICAgIDE1MCwgNCwgMSwgMjQ1LCAxOTcsIDE1MCwgNCwgMSwgMjQ1LCA2NSwgMTUwLCA0LCAxLCAxMTEsIDE1MCwgNCwgMSwgMjEwLCAKKyAgICA3NCwgMTUwLCA0LCAxLCAyMzUsIDIyNywgMTUwLCA0LCAxLCAyMzIsIDE5MCwgMTUwLCA0LCAxLCAyMTEsIDE2MCwgMTUwLCAKKyAgICA0LCAxLCAyNTEsIDMzLCAxNTAsIDQsIDEsIDIzNCwgMTY1LCAxNTAsIDQsIDEsIDI0MSwgNjgsIDE1MCwgNCwgMSwgMjM1LCAKKyAgICAxNDEsIDE1MCwgNCwgMSwgMjQyLCAyNDYsIDE1MCwgNCwgMSwgMjUwLCAxMjYsIDE1MCwgNCwgMSwgMjMxLCA1OCwgMTUwLCAKKyAgICA0LCAxLCAyMTEsIDgsIDE1MCwgNCwgMSwgMjI4LCAzOSwgMTUwLCA0LCAxLCAyMjAsIDEwMiwgMTUwLCA0LCAxLCAyMTMsIAorICAgIDEzOCwgMTUwLCA0LCAxLCAyNTAsIDE1NywgMTUwLCA0LCAxLCAyMjUsIDIwNSwgMTUwLCA0LCAxLCAyMzUsIDExMCwgMTUwLCAKKyAgICA0LCAxLCAyMDUsIDE1MCwgNCwgMSwgMjIxLCAxNjEsIDE1MCwgNCwgMSwgMjEzLCAxNzksIDE1MCwgNCwgMSwgMjE2LCA2MiwgCisgICAgMTUwLCA0LCAxLCAyMjMsIDk1LCAxNTAsIDQsIDEsIDI0OSwgMjM4LCAxNTAsIDQsIDEsIDIxMCwgMjQ5LCAxNTAsIDQsIDEsIAorICAgIDIyNSwgNDYsIDE1MCwgNCwgMSwgMjM0LCAxNzYsIDE1MCwgNCwgMSwgMjI2LCAyMjIsIDE1MCwgNCwgMSwgMjQ0LCAxNDIsIAorICAgIDE1MCwgNCwgMjcsIDI0NSwgMjE0LCAyMTAsIDI0OSwgMTUwLCAyNDMsIDIyOSwgMjE4LCAxMjksIDE1MCwgMjQwLCAxNjgsIAorICAgIDE1MCwgMjQ2LCA5NSwgNTAsIDk0LCAyNTUsIDE1LCAyNDUsIDU3LCA5NCwgMjU1LCAxNSwgMjIxLCAxNjIsIDk0LCAyNTUsIAorICAgIDE1LCAyMjAsIDg4LCA5NCwgMjU1LCAxNSwgMjEwLCAxMDQsIDIyNCwgNzEsIDk0LCAyNTUsIDE1LCAyMTAsIDEwNCwgMjQzLCAKKyAgICAxMjUsIDk0LCAyNTUsIDE1LCAyMTYsIDc1LCA5NCwgMjU1LCAxNSwgMjIzLCA0NywgOTQsIDI1NSwgMTUsIDIxMCwgMTAzLCAKKyAgICA5NCwgMjU1LCAxNSwgMjI1LCAyNDUsIDk0LCAyNTUsIDE1LCAyMTEsIDIwLCA5NCwgMjU1LCAxNSwgMjE2LCAyMTQsIDk0LCAKKyAgICAyNTUsIDE1LCAyNDMsIDQxLCA5NCwgMjU1LCAxNSwgMjQzLCA0MiwgMjMwLCA2OSwgOTQsIDI1NSwgMTUsIDI0MywgMzksIAorICAgIDk0LCAyNTUsIDE1LCAyMjQsIDcyLCAyMjYsIDE2LCA5NCwgMjU1LCAxNSwgMjE2LCAyNTMsIDI0MywgNTYsIDk0LCAyNTUsIAorICAgIDE1LCAyMjUsIDIyNiwgOTQsIDI1NSwgMTUsIDI1MywgMjAwLCAyNDIsIDQxLCA5NCwgMjU1LCAxNSwgMjMwLCA3OSwgOTQsIAorICAgIDI1NSwgMTUsIDIzMSwgMjA4LCA5NCwgMjU1LCAxNSwgMjMxLCA0OSwgOTQsIDI1NSwgMTUsIDIzMSwgNTAsIDIzNCwgMTc3LCAKKyAgICA5NCwgMjU1LCAxNSwgMjQ4LCAxNjMsIDk0LCAyNTUsIDE1LCAyMjQsIDgzLCA5NCwgMjU1LCAxNSwgMjE2LCAyNTMsIDIyNCwgCisgICAgNjcsIDk0LCAyNTUsIDE1LCAyMTEsIDMwLCAyNTIsIDQwLCAyMTAsIDIzMCwgOTQsIDI1NSwgMTUsIDIyNiwgMjA3LCA5NCwgCisgICAgMjU1LCAxNSwgMjM2LCAxOSwgOTQsIDI1NSwgMTUsIDI0OCwgNzAsIDk0LCAyNTUsIDE1LCAyMTAsIDMzLCA5NCwgMTY0LCAKKyAgICAyMzEsIDE0MywgMjUwLCAzNSwgOTQsIDIyNSwgMTEsIDIyMCwgMzYsIDk0LCAyMjUsIDExLCAyNDEsIDI1MCwgMjIxLCAxNjIsIAorICAgIDk0LCAyMjUsIDExLCAyNDEsIDI1MCwgMjI1LCAyMzksIDk0LCAyMjUsIDExLCAyNDEsIDI1MCwgMjI0LCA3NiwgOTQsIDIyNSwgCisgICAgMTEsIDI0MSwgMTU4LCA5NCwgMjI1LCAxMSwgMjE1LCAxNzYsIDk0LCAyMjUsIDExLCAyMjEsIDE2MiwgOTQsIDIyNSwgMTEsIAorICAgIDIyNSwgMjM5LCA5NCwgMjI1LCAxMSwgMjI0LCA3NiwgOTQsIDIyNSwgMTEsIDI0MSwgNjEsIDk0LCAyMjUsIDExLCAyNDEsIAorICAgIDYyLCAyNDEsIDI1MiwgMzEsIDIxNCwgMywgOTQsIDIyNSwgMTEsIDIyNCwgMTcsIDk0LCAyMjUsIDExLCAyNDgsIDIwOCwgCisgICAgMTc3LCAyMzEsIDE3MSwgOTQsIDIyNSwgMTEsIDIzMSwgMzgsIDk0LCAyMjQsIDE0MSwgMjMxLCAxNjgsIDk0LCAyMjUsIDExLCAKKyAgICAyMjMsIDE2OSwgOTQsIDIyNCwgMTQxLCAyMjUsIDI0NywgOTQsIDIyNSwgMTEsIDIyMCwgMjEsIDI0NywgMTIwLCA5NCwgCisgICAgMjI1LCAxMSwgMjE5LCAxNTksIDI0NywgMTIwLCA5NCwgMjI0LCAxNDEsIDIxOSwgNTMsIDIyNSwgMjQxLCA5NCwgMTY0LCAKKyAgICAyMTQsIDE2MCwgMjQ3LCAxMjAsIDk0LCAxNjQsIDIzMiwgMTA4LCAyNDcsIDEyMCwgOTQsIDIyNCwgMTQxLCAyMjcsIDE5NSwgCisgICAgMjQyLCA0MCwgOTQsIDIyNSwgMTEsIDIyNCwgNzcsIDIyNCwgNzEsIDk0LCAxLCAyNTQsIDE3MCwgOTQsIDEsIDI1MiwgMjgsIAorICAgIDk0LCAxLCAyNDIsIDIwMSwgOTQsIDEsIDI0OCwgMTg5LCA5NCwgMSwgMjQxLCAyMzgsIDk0LCAxLCAyMTQsIDMsIDk0LCAxLCAKKyAgICAyMTAsIDk3LCA5NCwgMSwgMjQxLCAxOTcsIDk0LCAxLCAyMTYsIDIzMCwgOTQsIDEsIDIxMCwgMjMzLCA5NCwgMSwgNDAsIAorICAgIDIzNCwgMjUwLCA5NCwgMSwgMjM0LCAyNTAsIDk0LCAxLCAyMzMsIDk0LCA5NCwgMSwgNDAsIDIzMSwgNjUsIDk0LCAxLCAKKyAgICAyMzEsIDY1LCA5NCwgMSwgNDAsIDIyNywgMTk0LCA5NCwgMSwgMjI3LCAxOTQsIDk0LCAxLCAyMjEsIDI0OSwgOTQsIDEsIAorICAgIDI1MywgMTYyLCA5NCwgMSwgNDAsIDIyNSwgMjIxLCA5NCwgMSwgMjI1LCAyMjEsIDk0LCAxLCA0MCwgMjE1LCAxNzksIDk0LCAKKyAgICAxLCAyMTUsIDE3OSwgOTQsIDEsIDIyNCwgMzksIDk0LCAxLCAyMjMsIDY3LCA5NCwgMSwgMjIwLCAyMCwgOTQsIDEsIDIxNywgCisgICAgMzgsIDk0LCAyNywgMjExLCA2LCA1MiwgMjE0LCAzLCA5NCwgMjcsIDIxMSwgNiwgMjE0LCA0LCAyMTAsIDIzMywgOTQsIDI3LCAKKyAgICAyMTEsIDYsIDUyLCAyMTAsIDIzMywgOTQsIDIyNCwgMTQxLCAyNDMsIDQxLCA5NCwgMjI0LCAxNDEsIDI0MywgMzksIDEwLCAKKyAgICA1NCwgNTAsIDEwLCA1LCAyMjEsIDI0MiwgMTAsIDI0NCwgMzAsIDIzMSwgMTU0LCAxMCwgNSwgMjIyLCAyMywgMTAsIDUsIAorICAgIDIyMSwgMjQ1LCAyNTQsIDM3LCAyNDksIDEwOSwgMjIyLCAxOTMsIDI1NCwgMzcsIDI0NCwgNCwgMjIyLCAxOTMsIDEwLCAKKyAgICAyMjMsIDEzNCwgMjU0LCAzNywgMjI1LCAxODMsIDIzMCwgMTkzLCA1MCwgMjU0LCAzNywgMjI1LCAxODMsIDIxNiwgMjQ4LCAKKyAgICAyMTYsIDE0OCwgNTAsIDI1NCwgMjIxLCA1MCwgMTAsIDI0OSwgMjE5LCAxMCwgMjQ4LCAxNTAsIDIyMCwgMTM3LCAxMCwgCisgICAgMjI1LCAxMywgMjEzLCAyNDEsIDUwLCAxMCwgNSwgMjMwLCAxNzQsIDEwLCA1LCAyMjIsIDMsIDI1NCwgMTcyLCAyMTIsIDQ1LCAKKyAgICAxMCwgNSwgMjU0LCAxNzIsIDI1MywgMjIxLCAxMCwgNSwgMjIzLCAxNjcsIDI1NCwgMTcxLCAxMCwgNSwgMjIzLCAxNzUsIAorICAgIDI1NCwgMTUyLCAyNTQsIDEwNCwgMTAsIDUsIDIxNywgNzAsIDEwLCA0LCAxMjUsIDIxNywgODAsIDEwLCA0LCAxMjUsIDI3LCAKKyAgICAxMTIsIDIsIDIzMywgMTAzLCAyLCAyMTEsIDQzLCAxMCwgNCwgMTI1LCAyMTAsIDEwOCwgMTAsIDQsIDI0NCwgMTY1LCAxMCwgCisgICAgNCwgMjQ4LCAxODQsIDEwLCA0LCAyMzQsIDIwNSwgMTAsIDIyMCwgMTUwLCAxMCwgMjE1LCAyMTEsIDU5LCAyMjQsIDE0MSwgCisgICAgNzgsIDEwLCAyMjQsIDEzLCA3OCwgMTAsIDEsIDIzNCwgMjA5LCAyMTEsIDQzLCAxMCwgMSwgMjQyLCAxOSwgMTAsIDEsIAorICAgIDExMiwgMiwgMjMxLCAyMjgsIDQ4LCAxMCwgMSwgMTEyLCAyLCAyMDIsIDQ4LCAxMCwgMSwgMjEyLCAzMSwgMiwgMjAyLCA0OCwgCisgICAgMTAsIDEsIDExMiwgMiwgMjAyLCA1MSwgMTAsIDEsIDc5LCAyLCAyMDIsIDQ4LCAxMCwgMSwgMjU0LCAxNzAsIDEwLCAxLCAKKyAgICAyNTIsIDU0LCAxMCwgMSwgMjE3LCA4LCAyMzEsIDE2NCwgMTAsIDEsIDIxNywgNywgMTAsIDEsIDIxNiwgMTkyLCAxMCwgMSwgCisgICAgMjM1LCAxMjMsIDEwLCAxLCAyNDIsIDM3LCAxMCwgMSwgMjM0LCAxMjksIDEwLCAxLCAyNDgsIDE5NSwgMTAsIDEsIDIxNiwgCisgICAgMjAyLCAxMCwgMSwgMjIzLCA5NSwgMTAsIDEsIDIxMCwgMTA4LCAxMCwgMSwgMjIxLCAxNjYsIDEwLCAxLCAyMjAsIDU5LCAKKyAgICAxMCwgMSwgMjIyLCAyNiwgMTAsIDEsIDI0OCwgMjE2LCAxMCwgMSwgMjE3LCA4MCwgMTAsIDEsIDIxMCwgMTExLCAxMCwgMSwgCisgICAgMjU0LCAxOTYsIDEwLCAxLCAyNDIsIDI0NCwgMTAsIDEsIDIzNCwgMTc1LCAyLCAxMTMsIDE3MCwgNDgsIDEwLCAxLCAyMzQsIAorICAgIDE3NSwgMiwgMTM0LCAxNzAsIDUxLCAxMCwgMSwgMjQ0LCAxNjgsIDc5LCAyLCAyMzUsIDE5MywgMjE0LCAxMDUsIDEwLCAxLCAKKyAgICAyNDQsIDE2OCwgNzksIDIsIDExMywgMTcwLCA0OCwgMTAsIDEsIDI0NCwgMTY4LCA3OSwgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgCisgICAgMjE3LCA0MywgMTAsIDEsIDI0NCwgMTQyLCAxMCwgMSwgMjI0LCA4MSwgMTAsIDEsIDIzNCwgMjUwLCAxMCwgMSwgMjMzLCAKKyAgICAxMDIsIDEwLCAxLCAyMzEsIDc4LCAxMCwgMSwgMjI4LCA2MiwgMTAsIDEsIDI0MSwgMjE4LCAxMCwgMSwgMjEyLCAzMCwgMTAsIAorICAgIDEsIDExMiwgMjMxLCAxOTIsIDEwLCAxLCAyMTEsIDQzLCAxMCwgMjQ0LCAxNjMsIDEwLCAyNDgsIDE4MiwgMTAsIDIzNCwgCisgICAgMjAzLCAxMCwgMjQ0LCAxNjUsIDEwLCAyNDgsIDE4NCwgMTAsIDIzNCwgMjA1LCAxMCwgMjIwLCA5MywgMTAsIDIxOCwgNDUsIAorICAgIDEwLCAyMzEsIDIyNiwgNDgsIDEwLCAyMDIsIDQ4LCAxMCwgMjAyLCA1MSwgMTAsIDIxOCwgNjUsIDI1NCwgMTcwLCAxMCwgCisgICAgMjM1LCAxOTMsIDI0OCwgMTg0LCAxMCwgMTY0LCAyMjgsIDYzLCAyNDIsIDIxOCwgMTAsIDIwOSwgMjU1LCAxMCwgMjUsIDUsIAorICAgIDQsIDIxNCwgMTA2LCA0OCwgMTAsIDI1LCA1LCAyMzUsIDE5MywgNCwgMjE0LCAxMDYsIDQ4LCAxMCwgMjUsIDUsIDU5LCA1MSwgCisgICAgMTAsIDIyMywgNDksIDI0OCwgMTg0LCAxMCwgMjQ0LCAxNjYsIDIsIDExMywgMjQ3LCAxMTgsIDEwLCAyMTIsIDMyLCAyMDIsIAorICAgIDUxLCAyNTQsIDM3LCAyMSwgMjEwLCA4NiwgMjU0LCAzNywgMjEsIDExMCwgMjU0LCAzNywgMjEsIDEwNSwgMjU0LCAzNywgCisgICAgMjEsIDE1OCwgMjU0LCAzNywgMjEsIDE2MSwgMjU0LCAzNywgMjEsIDE4OSwgMjU0LCAzNywgMjEsIDE5NCwgMjU0LCAzNywgCisgICAgMjEsIDE5OCwgMjU0LCAzNywgMjEsIDE5NSwgMjU0LCAzNywgMjEsIDIwMCwgMTAsIDIyNSwgMTgyLCA1MCwgMTAsIDI0OCwgCisgICAgODMsIDIyMCwgMTM3LCAxMCwgMjE2LCAxNDYsIDIyMCwgMTM3LCAxMCwgMjQ0LCA4MSwgMjI1LCA5LCAyMTgsIDE1NiwgMTAsIAorICAgIDEsIDI0NywgMTE5LCAyNTIsIDU0LCAxMCwgMSwgMjQ3LCAxMTksIDIyNCwgODEsIDEwLCAxLCAyMTgsIDIzLCAyNTQsIDE3MCwgCisgICAgMTAsIDEsIDExMiwgMjEyLCA0NiwgMTAsIDEsIDExMiwgMiwgMjEyLCAzMiwgMjAyLCA0OCwgMTAsIDEsIDExMiwgMiwgMjEyLCAKKyAgICAzMiwgMjAyLCA1MSwgMTAsIDEsIDEyNSwgMjQyLCAxOSwgMTAsIDEsIDEyNSwgMjAyLCAyNTQsIDE3MCwgMTAsIDEsIDEyNSwgCisgICAgMjAyLCAyMTIsIDMwLCAxMCwgMSwgMTA0LCAyLCAyMDIsIDQ4LCAxMCwgMSwgMTI1LCAyMDIsIDIxMSwgNDMsIDEwLCAxLCAKKyAgICAyMTUsIDE0OCwgMTAsIDEsIDIxNSwgMTQ2LCAxMCwgMSwgMjUyLCA2NCwgMTAsIDEsIDIxNywgOCwgMiwgMjIyLCAyMzMsIAorICAgIDEwLCAxLCAyMTcsIDgsIDIsIDEzNCwgMTcwLCA3NywgMjQ2LCAxMDMsIDEwLCAxLCAyMjUsIDIwNSwgMTAsIDEsIDIxNywgNSwgCisgICAgMTAsIDEsIDI1MiwgNTIsIDEwLCAxLCAxMjIsIDIsIDIwMiwgNDgsIDEwLCAxLCAxMjIsIDIsIDExMywgMTcwLCA2NywgNDgsIAorICAgIDEwLCAxLCAyMjcsIDE1MywgMTAsIDEsIDI0NiwgNDMsIDEwLCAxLCAxMjIsIDIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDIxNywgCisgICAgMjYsIDEwLCAxLCAyMTcsIDI0LCAxMCwgMSwgMjQ4LCAxMzAsIDEwLCAxLCAyNDgsIDE5NiwgMiwgMjIyLCAyMzMsIDEwLCAxLCAKKyAgICAyNDgsIDE5NiwgMiwgNTksIDUxLCAxMCwgMSwgMjQ4LCAxOTYsIDIsIDU5LCAyNTIsIDQzLCAyMiwgNCwgMjE3LCA4MCwgMTAsIAorICAgIDEsIDI0OCwgMjAxLCAxMCwgMSwgMjQ4LCAxMzIsIDEwLCAxLCAyNDYsIDcwLCAxMCwgMSwgMjQ4LCAxOTYsIDIsIDEzNCwgCisgICAgMTcwLCA3NywgMjQ2LCAxMDMsIDEwLCAxLCAyNDgsIDE5NiwgMiwgMjQ0LCAxMSwgMTcwLCA0OCwgMTAsIDEsIDIyMiwgMTcxLCAKKyAgICAxMCwgMSwgMjIzLCA5NiwgMiwgNCwgMjE0LCAxMDUsIDEwLCAxLCAyMjMsIDk2LCAyLCAyMjIsIDIzMywgMTAsIDEsIDIyMywgCisgICAgOTYsIDIsIDU5LCA1MSwgMTAsIDEsIDIyMywgOTYsIDIsIDQsIDIxNCwgMTA2LCA1MSwgMTAsIDEsIDIyMywgOTYsIDIsIDU5LCAKKyAgICAyNTIsIDQzLCAyMiwgNTksIDQ4LCAxMCwgMSwgMjIzLCA5NiwgMiwgMTEzLCAxNzAsIDQ4LCAxMCwgMSwgMjM1LCAxMjAsIAorICAgIDEwLCAxLCAyMjMsIDk2LCAyLCAyNDQsIDExLCAxNzAsIDQ4LCAxMCwgMSwgMjIxLCAxNjcsIDIsIDU5LCAyNTIsIDQzLCAyMiwgCisgICAgNTksIDQ4LCAxMCwgMSwgMjIxLCAxNjcsIDIsIDEzNCwgMTcwLCA1MSwgMTAsIDEsIDIyMSwgMTY3LCAyLCAxMzQsIDE3MCwgCisgICAgMjUyLCA0MywgMjIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDIyMiwgMjcsIDIsIDExMywgMTcwLCA1MSwgMTAsIDEsIDIyMiwgCisgICAgMjcsIDIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDIxNywgODEsIDIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDI1NCwgMTk3LCAyLCAKKyAgICAxMzQsIDE3MCwgNDgsIDEwLCAxLCAyNDcsIDExOSwgMjQ0LCAxNDIsIDEwLCAxLCAyNDQsIDE0MywgMiwgNTksIDIzMCwgCisgICAgMTA5LCA1MSwgMTAsIDEsIDI0NCwgMTQzLCAyLCA1OSwgNTEsIDEwLCAxLCAyMTMsIDI0OCwgMTAsIDEsIDI0NCwgMTQzLCAyLCAKKyAgICAxMzQsIDE3MCwgNTEsIDEwLCAxLCAyMjUsIDIwMywgMTAsIDEsIDIyNCwgODIsIDIsIDU5LCA0OCwgMTAsIDEsIDIyNCwgODIsIAorICAgIDIsIDEzNCwgMTcwLCA0OCwgMTAsIDEsIDIzNCwgMTc0LCAxMCwgMSwgMjE3LCAyNTAsIDIzNCwgMjUwLCAxMCwgMSwgMjM0LCAKKyAgICAyNTEsIDIsIDIyMiwgMjMzLCAxMCwgMSwgMjM0LCAyNTEsIDIsIDU5LCA0OCwgMTAsIDEsIDIyOSwgNzksIDEwLCAxLCAyMzQsIAorICAgIDI1MSwgMiwgMTM0LCAxNzAsIDUxLCAxMCwgMSwgMjQzLCAxMjIsIDEwLCAxLCAyNDMsIDEyMywgMiwgMjIyLCAyMzMsIDEwLCAKKyAgICAxLCAyMjksIDIsIDEwLCAxLCAyNDMsIDEyMywgMiwgMTEzLCAxNzAsIDUxLCAxMCwgMSwgMjQyLCAxMDEsIDEwLCAxLCAyNDMsIAorICAgIDEyMywgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjMzLCAxMDMsIDIsIDQsIDIxNCwgMTA1LCAxMCwgMSwgMjMzLCAxMDMsIAorICAgIDIsIDU5LCA0OCwgMTAsIDEsIDIzMywgMTAzLCAyLCAxMzQsIDE3MCwgNDgsIDEwLCAxLCAyMzMsIDEwMywgMiwgMTM0LCAKKyAgICAxNzAsIDUxLCAxMCwgMSwgMjI4LCA2MywgMiwgNTksIDUxLCAxMCwgMSwgMjI4LCA2MywgMjQyLCAyMTgsIDEwLCAxLCAyMjIsIAorICAgIDIxNCwgMTAsIDEsIDIyOCwgNjMsIDIsIDIyMiwgMjMzLCAxMCwgMSwgMjI4LCA2MywgMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgCisgICAgMjQxLCAyMTksIDI0NywgMTQxLCAxMCwgMSwgMjE3LCAyNywgMiwgNTksIDQ4LCAxMCwgMSwgMjQxLCAyMTksIDIsIDc5LCAKKyAgICA0OCwgMTAsIDEsIDI0MSwgMjE5LCAyNDIsIDE3MSwgMTAsIDEsIDI0MSwgMjE5LCAyNDIsIDE3MiwgMiwgMjAyLCA0OCwgMTAsIAorICAgIDEsIDIxNywgOCwgMjMxLCAxNjUsIDI0MiwgMTcxLCAxMCwgMSwgMjEyLCAzMSwgMiwgMjIyLCAyMzMsIDEwLCAxLCAyMzQsIAorICAgIDczLCAyMjYsIDIzNCwgMTAsIDEsIDIyNiwgMjM0LCAxMCwgMSwgNzAsIDEwLCAxLCAyMTAsIDIxMiwgMTAsIDEsIDIzNCwgCisgICAgNzMsIDIxMCwgMjEyLCAxMCwgMSwgMjEyLCAzMSwgMiwgMTEzLCAxNzAsIDQ4LCAxMCwgMSwgMjEzLCAyNTUsIDEwLCAxLCAKKyAgICAyNDQsIDE2OCwgMjExLCA0MywgMTAsIDEsIDc5LCAyLCAyMTcsIDc3LCAxMCwgMSwgNzksIDIsIDQsIDIxNCwgMTA1LCAxMCwgCisgICAgMSwgMjEyLCAzMSwgMiwgNTksIDQ4LCAxMCwgMSwgNzUsIDEwLCAxLCA3OSwgMiwgMTM0LCAxNzAsIDUxLCAxMCwgMSwgNzksIAorICAgIDI1MiwgMTMyLCAxMCwgMSwgNzksIDI1MiwgMTMzLCAyLCAyMDIsIDQ4LCAxMCwgMjQzLCAyMjksIDIxOCwgMTI5LCAxMCwgMSwgCisgICAgMjU0LCAyNDMsIDEwLCA0LCAxMjUsIDI3LCAyMjIsIDI3LCAyLCAyMzMsIDEwMywgMiwgMTEyLCAyMzEsIDE5MiwgMTAsIDQsIAorICAgIDEyNSwgMjcsIDIyNCwgODIsIDIsIDIzMywgMTAzLCAyLCAxMTIsIDIzMSwgMTkyLCAxMCwgNCwgMTI1LCA2NiwgNjUsIDE3LCAKKyAgICAxMCwgNCwgMTI1LCAyMzMsIDEwMywgMjU0LCAxNzAsIDEwLCA0LCAxMjUsIDIzNSwgMTIzLCAxMCwgNCwgMTI1LCAxMzQsIAorICAgIDI0NywgMTE4LCAxMCwgNCwgMTI1LCAyMjEsIDE2NiwgMTAsIDI0NSwgMTQzLCA2NCwgMjUzLCAxNjYsIDEwLCAyMTgsIDE1MiwgCisgICAgNjQsIDIyMiwgMTM4LCAyNDUsIDE3NSwgMjQxLCAxNTUsIDEwLCA0LCAxMjUsIDIyMiwgMTgzLCAyMTAsIDg2LCAxMCwgNCwgCisgICAgMTI1LCAyMTQsIDE1OSwgMjIzLCAxMTUsIDIxMCwgODYsIDEwLCA0LCAxMjUsIDI0NywgMTE5LCAyNDEsIDIzNiwgNjQsIAorICAgIDIzNCwgMTI5LCAxMCwgNCwgMTI1LCA2NiwgNTMsIDE3LCAxMCwgNCwgMTIxLCAyMjEsIDE2NiwgMTAsIDQsIDEyNSwgMjMxLCAKKyAgICAyMjcsIDEwLCA0LCAyMTIsIDMwLCAxMCwgNCwgMjExLCA0MywgMTAsIDQsIDEyNSwgMjExLCA0MywgMTAsIDQsIDEyNSwgCisgICAgMjI4LCA2MiwgMTAsIDIyNSwgNDEsIDY0LCAyMjIsIDEzLCAxMCwgMjQ1LCAxNTIsIDI1MCwgMTc1LCAxMjEsIDIxOCwgMTI5LCAKKyAgICAxMCwgMjQ1LCAxNTIsIDI1MCwgMTc1LCAxMjUsIDIxOCwgMTI5LCAxMCwgMjIyLCAxODMsIDEyNSwgMjE4LCAxMzAsIDIsIAorICAgIDI0NCwgMTA0LCAyNTAsIDE3NCwgMTAsIDQsIDEyMSwgMjMxLCA3OCwgMTAsIDEsIDI0OCwgMTk2LCAyLCAyMzUsIDE5MywgCisgICAgMjE0LCAxMDUsIDEwLCAxLCAyMjMsIDk2LCAyLCAyMzUsIDE5MywgMjE0LCAxMDUsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAKKyAgICAyMTAsIDg2LCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTEwLCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTA1LCAyNDUsIDIyLCAKKyAgICAyNTQsIDM3LCAyMSwgMTU4LCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTYxLCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTg5LCAKKyAgICAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTk0LCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTk4LCAyNDUsIDIyLCAyNTQsIDM3LCAKKyAgICAyMSwgMTk1LCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMjAwLCAxMCwgMSwgMjIwLCA2MCwgMiwgNTksIDUxLCAxMCwgMSwgCisgICAgMjQ4LCAyMTcsIDIsIDU5LCA1MSwgMTAsIDEsIDI0MiwgMjQ1LCAyLCA1OSwgNTEsIDEwLCA1LCAyMTksIDE1OCwgMjU0LCAKKyAgICAxMjYsIDEwLCA1LCAyMTksIDE1OCwgMjI0LCAyMzUsIDIzMSwgNTgsIDEwLCAxLCAyNDEsIDIxOSwgMiwgMjM1LCAxOTMsIAorICAgIDIxNCwgMTA1LCAxODgsIDI0NSwgMTQzLCA2NCwgMjI2LCAxNCwgMTg4LCAyMTgsIDE5LCAyNDMsIDIyOSwgMjE4LCAxMjksIAorICAgIDE4OCwgMjE4LCA2NywgMjQzLCAyMjksIDIxOCwgMTI5LCAxODgsIDIxOCwgMTksIDI0OSwgMjI2LCAxODgsIDIxOCwgNjcsIAorICAgIDI0OSwgMjI2LCAxODgsIDIwMywgMjQ5LCAyMjYsIDE4OCwgMjQ5LCAyMjcsIDIxOSwgMTA2LCAyMzMsIDQ2LCAxODgsIDI0OSwgCisgICAgMjI3LCAyMTksIDEwNiwgMjIyLCAyNTEsIDE4OCwgMjE4LCAxOSwgMjQ5LCAyMjcsIDIxOSwgMTA2LCAyMzMsIDQ2LCAxODgsIAorICAgIDIxOCwgNjcsIDI0OSwgMjI3LCAyMTksIDEwNiwgMjIyLCAyNTEsIDE4OCwgMjQ5LCAxODAsIDE4OCwgMjQyLCAxLCAyMjYsIAorICAgIDI1MCwgMTg4LCAyNDIsIDEsIDIzMSwgMzYsIDE4OCwgMjQyLCAxLCAyNTMsIDIxOCwgMTg4LCAyNTUsIDIxLCA3OCwgMTg4LCAKKyAgICAxLCAyNTQsIDE3NCwgMTg4LCAxLCAyMTgsIDIzLCAyNTQsIDE3NCwgMTg4LCAxLCAyNTIsIDI1LCAxODgsIDEsIDI0MywgCisgICAgMTEzLCAxODgsIDEsIDI0MywgMTE0LCAyNDMsIDkxLCAxODgsIDEsIDI0OCwgMTkyLCAxODgsIDEsIDI0NywgMTE5LCAyNDgsIAorICAgIDE5MywgMjIyLCAyMjksIDE4OCwgMSwgMjQxLCAyMzgsIDE4OCwgMSwgMjEyLCAzMCwgMTg4LCAxLCAyMTAsIDEwOCwgMTg4LCAKKyAgICAxLCAyNDEsIDE5NSwgMTg4LCAxLCAyMTYsIDIyNiwgMTg4LCAxLCAyMTYsIDIyNywgMjQzLCA5MSwgMTg4LCAxLCAyMTAsIAorICAgIDE5OSwgMTg4LCAxLCAyMTAsIDIwMCwgMjQxLCAyMzgsIDE4OCwgMSwgMjM0LCAyMjUsIDE4OCwgMSwgMjMzLCAxMDEsIDE4OCwgCisgICAgMSwgMjMwLCAxOTAsIDE4OCwgMSwgMjI3LCAxOTQsIDE4OCwgMSwgMjIwLCAxNDMsIDE4OCwgMSwgNDAsIDIyMCwgMTQzLCAKKyAgICAxODgsIDEsIDc1LCAxODgsIDEsIDIyNSwgMjIxLCAxODgsIDEsIDIyMywgNDksIDIyNSwgMjIxLCAxODgsIDEsIDIyMiwgMjQsIAorICAgIDE4OCwgMSwgMjI0LCA3NSwgMTg4LCAxLCAyMjIsIDIyOSwgMTg4LCAxLCAyMjAsIDIwLCAxODgsIDEsIDIxNywgMzYsIDE4OCwgCisgICAgMSwgMjI1LCAxNjksIDI1MiwgMTIsIDE4OCwgMSwgMjI1LCAxNjksIDI0MiwgMjQyLCAxODgsIDEsIDIyNSwgMTY5LCAyNDgsIAorICAgIDIwLCAxODgsIDIyNCwgMTUxLCA0OCwgMTg4LCAyMjQsIDE1MSwgNTEsIDE4OCwgMjI0LCAxNTEsIDI0NiwgMTE3LCAxODgsIAorICAgIDIxMCwgMTcsIDQ4LCAxODgsIDIxMCwgMTcsIDUxLCAxODgsIDIxMCwgMTcsIDI0NiwgMTE3LCAxODgsIDIyMywgMTMxLCA0OCwgCisgICAgMTg4LCAyMjMsIDEzMSwgNTEsIDE4OCwgMjQ2LCAxMTgsIDIxMCwgMjQsIDI0MSwgNDQsIDE4OCwgMjQ2LCAxMTgsIDIxMCwgCisgICAgMjQsIDI1NCwgMTA1LCAxODgsIDI0MSwgMjQxLCA0OCwgMTg4LCAyNDEsIDI0MSwgNTEsIDE4OCwgMjQxLCAyNDAsIDI0NiwgCisgICAgMTE3LCAxODgsIDI0NSwgNzksIDQ4LCAxODgsIDI0NSwgNzksIDUxLCAxODgsIDIyMiwgMTA3LCAxODgsIDI0NCwgMTM2LCAKKyAgICAyNDcsIDEyMCwgMTg4LCAyMjMsIDI0OCwgMTg4LCAyMjIsIDEzNCwgMTg4LCAxMTMsIDY3LCAxNzAsIDQ4LCAxODgsIDExMywgCisgICAgNjcsIDE3MCwgNTEsIDE4OCwgMTM0LCAxNzAsIDQ4LCAxODgsIDEzNCwgMTcwLCA1MSwgMTg4LCAyMjYsIDI0OCwgMjMyLCAKKyAgICAyMTQsIDQ4LCAxODgsIDIyNiwgMjQ4LCAyMzIsIDIxNCwgNTEsIDE4OCwgMjMwLCA1NiwgMTg4LCAyNTIsIDEzMSwgMTg4LCAKKyAgICAxLCAyMTksIDQ5LCAyMTAsIDgwLCAxODgsIDEsIDIxOSwgNDksIDIzNCwgMTIyLCAxODgsIDEsIDIxOSwgNDksIDI0NCwgCisgICAgMTU0LCAxMCwgMSwgMjUyLCA1NSwgMiwgMTM0LCAxNzAsIDI0MCwgMjUwLCA1MSwgMTAsIDEsIDI1MiwgNTUsIDIsIDU5LCAKKyAgICAyNTIsIDQzLCAyMiwgMTM0LCAxNzAsIDQ4LCAxMCwgMSwgMjUyLCA1NSwgMiwgMTM0LCAxNzAsIDIyNSwgNywgMjE0LCAxNTMsIAorICAgIDUxLCAxMCwgMSwgMjUyLCA1NSwgMiwgMTM0LCAxNzAsIDIyNSwgNywgMjE0LCAxNTMsIDI1MiwgNDMsIDIyLCAxMTMsIDE3MCwgCisgICAgNDgsIDEwLCAxLCAyNTIsIDU1LCAyLCAxMTMsIDE3MCwgMjUyLCA0MywgMjIsIDU5LCA0OCwgMTAsIDEsIDI1MiwgNTUsIDIsIAorICAgIDIzNSwgMTkzLCA0LCAyMTQsIDEwNiwgNTEsIDEwLCAxLCAyNTIsIDU1LCAyLCA0LCAyMTQsIDEwNSwgMTAsIDEsIDEyMiwgMiwgCisgICAgMTEzLCAxNzAsIDQ4LCAxMCwgMSwgMTIyLCAyLCAxMzQsIDE3MCwgMjI1LCA3LCAyMTQsIDE1MywgNTEsIDEwLCAxLCAyNDgsIAorICAgIDE5NiwgMiwgMTEzLCAxNzAsIDIxMywgMTg5LCAyNTIsIDQzLCAyMiwgNCwgMjE3LCA4MCwgMTAsIDEsIDI0OCwgMTk2LCAyLCAKKyAgICAyMzUsIDE5MywgNCwgMjE0LCAxMDYsIDUxLCAxMCwgMSwgMjIzLCA5NiwgMiwgOTEsIDEwLCAxLCAyMjEsIDE2NywgMiwgCisgICAgMjQ0LCAxMSwgMTcwLCA0OCwgMTAsIDEsIDI1NCwgMTk3LCAyLCAxMTMsIDE3MCwgNDgsIDEwLCAxLCAyNTQsIDE5NywgMiwgCisgICAgMTM0LCAxNzAsIDIyNSwgNywgMjQ2LCAxMDQsIDQ4LCAxMCwgMSwgMjU0LCAxOTcsIDIsIDExMywgMTcwLCAyMTMsIDE4OSwgCisgICAgNDgsIDEwLCAxLCAyNDQsIDE0MywgMiwgMTEzLCAxNzAsIDUxLCAxMCwgMSwgMjQ0LCAxNDMsIDIsIDEzNCwgMTcwLCAyMjUsIAorICAgIDcsIDIxNCwgMTUzLCA1MSwgMTAsIDEsIDIzNCwgMTc1LCAyLCA1OSwgNDgsIDEwLCAxLCAyMzQsIDE3NSwgMiwgMTM0LCAKKyAgICAxNzAsIDQ4LCAxMCwgMSwgMjM0LCAxNzUsIDIsIDEzNCwgMTcwLCAyMjUsIDcsIDIxNCwgMTUzLCA1MSwgMTAsIDEsIDY2LCAKKyAgICAyLCA1OSwgNDgsIDEwLCAxLCA2NiwgMiwgNTksIDUxLCAxMCwgMSwgMjI4LCA2MywgMiwgMTEzLCAxNzAsIDUxLCAxMCwgMSwgCisgICAgMjI4LCA2MywgMiwgNCwgMjE3LCA4MCwgMTAsIDEsIDIyOCwgNjMsIDIsIDQsIDIxNCwgMTA1LCAxMCwgMSwgMjMzLCAxMDMsIAorICAgIDIsIDEzMCwgMTAsIDEsIDIyMywgOTYsIDIsIDExMywgMTcwLCAyMTMsIDE4OSwgNDgsIDEwLCAxLCAyMjMsIDk2LCAyLCAKKyAgICAyMDIsIDQ4LCAxMCwgMSwgMjIxLCAxNjcsIDIsIDExMywgMTcwLCAyMTMsIDE4OSwgNDgsIDEwLCAxLCAxMjIsIDIsIDQsIAorICAgIDEwLCAxLCAyMTcsIDgxLCA1MSwgMTAsIDEsIDEyMiwgMiwgNCwgMTAsIDEsIDIxNywgODEsIDIyLCAxMTMsIDI0NywgMTE4LCAKKyAgICAxMCwgMSwgMjIxLCAxNjcsIDIsIDQsIDEwLCAxLCAyMTcsIDgxLCAyMiwgMTEzLCAyNDcsIDExOCwgMTAsIDEsIDIyMywgOTYsIAorICAgIDIsIDQsIDEwLCAxLCAyMTcsIDgxLCAyMiwgMTEzLCAyNDcsIDExOCwgMTAsIDEsIDEyMiwgMiwgNCwgMTAsIDEsIDIxNywgCisgICAgODEsIDQ4LCAxMCwgMSwgMTEyLCAyLCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTEzLCA0OCwgMTAsIDEsIDExMiwgMiwgMjQ1LCAKKyAgICAyMiwgMjU0LCAzNywgMjEsIDEzNCwgNDgsIDEwLCAxLCAyNDQsIDE2OCwgNzksIDIsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAKKyAgICAxMTMsIDQ4LCAxMCwgMSwgMjQ0LCAxNjgsIDc5LCAyLCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgMTM0LCA0OCwgMTAsIDEsIAorICAgIDI0NCwgMTY4LCA3OSwgMiwgMjQ1LCAyMiwgMjU0LCAzNywgMjEsIDI0NCwgMTEsIDUxLCAxMCwgMSwgMjEyLCAzMSwgMiwgCisgICAgMjQ1LCAyMiwgMjU0LCAzNywgMjEsIDExMywgNDgsIDEwLCAxLCAyMTIsIDMxLCAyLCAyNDUsIDIyLCAyNTQsIDM3LCAyMSwgCisgICAgMTM0LCA0OCwgMTAsIDEsIDc5LCAyNTIsIDEzMywgMiwgMjQ1LCAyMiwgMjU0LCAzNywgMjEsIDExMywgNDgsIDEwLCAxLCAKKyAgICA3OSwgMjUyLCAxMzMsIDIsIDI0NSwgMjIsIDI1NCwgMzcsIDIxLCAxMzQsIDQ4LCAxMCwgMSwgMTIyLCAyLCAyNDUsIDIyLCAKKyAgICAyNTQsIDM3LCAyMSwgMjQ0LCAxMSwgNTEsIDEwLCAxLCAyMjEsIDE2NywgMiwgMjQ1LCAyMiwgMjU0LCAzNywgMjEsIDI0NCwgCisgICAgMTEsIDQ4LCAxMCwgMSwgMjIxLCAxNjcsIDIsIDIzNSwgMTkzLCAyMTQsIDEwNSwgMTAsIDEsIDIzNCwgMjUxLCAyLCAxMTMsIAorICAgIDE3MCwgNDgsIDIxNiwgMjA1LCAxLCAyNDIsIDQ2LCAyMTYsIDIwNSwgMSwgMjIwLCA2OCwgMjE2LCAyMDUsIDEsIDIyOCwgCisgICAgNjEsIDIxNiwgMjA1LCAxLCAyMjMsIDE4NCwgMjE2LCAyMDUsIDEsIDI1MiwgMTg5LCAyMTYsIDIwNSwgMSwgMjMyLCAyNTEsIAorICAgIDIxNiwgMjA1LCAxLCAyMzUsIDgsIDIxNiwgMjA1LCAxLCAyNTQsIDE1OSwgMjE2LCAyMDUsIDEsIDIxNCwgMjUsIDIxNiwgCisgICAgMjA1LCAxLCAyMzEsIDc3LCAyMTYsIDIwNSwgMSwgMjQ0LCAxOTQsIDIxNiwgMjA1LCAxLCAyNDgsIDIzLCAyMTYsIDIwNSwgCisgICAgMSwgMjE2LCAyMDcsIDIxNiwgMjA1LCAxLCAyMzMsIDEzMSwgMjE2LCAyMDUsIDEsIDI0MywgMTMxLCAyMTYsIDIwNSwgMSwgCisgICAgMjQyLCAxNzcsIDIxNiwgMjA1LCAxLCAyMjEsIDE2NSwgMjE2LCAyMDUsIDEsIDI0OCwgMTQ4LCAyMTYsIDIwNSwgMSwgMjEwLCAKKyAgICAxMDAsIDIxNiwgMjA1LCAxLCAyMTcsIDM3LCAyMTYsIDIwNSwgMSwgMjExLCAxMDMsIDIxNiwgMjA1LCAxLCAyMjUsIDIzMywgCisgICAgMjE2LCAyMDUsIDEsIDIzNSwgMTI4LCAyMTYsIDIwNSwgMSwgMjUwLCAxMzQsIDIxNiwgMjA1LCAxLCAyMTUsIDE1NSwgMjE2LCAKKyAgICAyMDUsIDEsIDI0MSwgMTg4LCAyMTYsIDIwNSwgMSwgMjM0LCAxMzEsIDIxNiwgMjA1LCAxLCAyMTYsIDIwNiwgMjE2LCAyMDUsIAorICAgIDEsIDIxMCwgMTE1LCAyMTYsIDIwNSwgMSwgMjIwLCA1OCwgMjE2LCAyMDUsIDEsIDIyMiwgMzAsIDIxNiwgMjA1LCAxLCAKKyAgICAyNDgsIDIxOSwgMjE2LCAyMDUsIDEsIDExMSwgMjE2LCAyMDUsIDEsIDIxMCwgMjMsIDIxNiwgMjA1LCAxLCAyNTQsIDE5MywgCisgICAgMjE2LCAyMDUsIDEsIDI0MiwgMjQzLCAyMTYsIDIwNSwgMSwgMjI0LCA4NSwgMjE2LCAyMDUsIDEsIDIxMiwgNjMsIDIxNiwgCisgICAgMjA1LCAyNTUsIDIyLCAyMTYsIDIwNSwgMjU1LCAzOCwgMjE2LCAyMDUsIDI0MCwgMTE0LCAyMTYsIDIwNSwgMjQ1LCAyMDgsIAorICAgIDIxNiwgMjA1LCAyMTQsIDIyMiwgMjE2LCAyMDUsIDIyNiwgMTgyLCAyMTYsIDIwNSwgMjQ1LCAyMTYsIDIxNiwgMjA1LCAKKyAgICAyNDUsIDE2LCAyMTYsIDIwNSwgMjI2LCAyNDcsIDIxNiwgMjA1LCAyMjYsIDI1NSwgMjE2LCAyMDUsIDIxOCwgNDUsIDIxNiwgCisgICAgMjA1LCAxLCAyMjksIDIyNSwgMjI4LCAxMzcsIDIxLCAyMTAsIDg2LCAyMjgsIDEzNywgMjEsIDExMCwgMjI4LCAxMzcsIDIxLCAKKyAgICAxMDUsIDIyOCwgMTM3LCAyMSwgMTU4LCAyMjgsIDEzNywgMjEsIDE2MSwgMjI4LCAxMzcsIDIxLCAxODksIDIyOCwgMTM3LCAKKyAgICAyMSwgMTk0LCAyMjgsIDEzNywgMjEsIDE5OCwgMjI4LCAxMzcsIDIxLCAxOTUsIDIyOCwgMTM3LCAyMSwgMjAwLCAyMjgsIAorICAgIDEzNywgMSwgNjEsIDIyOCwgMTM3LCAxLCAyNDUsIDIwOSwgMjI4LCAxMzcsIDEsIDczLCAyMjgsIDEzNywgMSwgNzUsIDIyOCwgCisgICAgMTM3LCAxLCA3MCwgMjI4LCAxMzcsIDEsIDIyNiwgMTgzLCAyMjgsIDEzNywgMSwgNzYsIDIyOCwgMTM3LCAxLCAyNDgsIAorICAgIDIwOSwgMjI4LCAxMzcsIDEsIDIzMCwgMjUsIDIyOCwgMTM3LCAxLCAyNTIsIDE5MSwgMjI4LCAxMzcsIDEsIDE5MCwgMjI4LCAKKyAgICAxMzcsIDEsIDIxNywgMTA1LCAyMjgsIDEzNywgMSwgMjM1LCAxNDEsIDIyOCwgMTM3LCAxLCAyNTAsIDE1NywgMjI4LCAxMzcsIAorICAgIDEsIDI0OCwgMjIxLCAyMjgsIDEzNywgMSwgMjA1LCAyMjgsIDEzNywgMSwgMjIyLCAxNzksIDIyOCwgMTM3LCAxLCAyMDYsIAorICAgIDIyOCwgMTM3LCAxLCAyNDMsIDc5LCAyMjgsIDEzNywgMSwgMjQ0LCAxOTYsIDIyOCwgMTM3LCAxLCAxNzYsIDIyOCwgMTM3LCAKKyAgICAxLCAyMzMsIDEzNSwgMjI4LCAxMzcsIDEsIDIyOSwgMjI5LCAyMTEsIDIyMywgMjI4LCAxMzcsIDEsIDE4NCwgMjI4LCAxMzcsIAorICAgIDEsIDIyNywgMTY1LCAyMjgsIDEzNywgMSwgMTk3LCAyMjgsIDEzNywgMSwgMTYyLCAyMjgsIDEzNywgMSwgMjEyLCA2NSwgCisgICAgMjI4LCAxMzcsIDEsIDE5MSwgMjI4LCAxMzcsIDEsIDIyNywgMTY2LCAyMTEsIDIyMywgMjI4LCAxMzcsIDEsIDIzNSwgNjEsIAorICAgIDIzNSwgMTQxLCAyMjgsIDEzNywgMSwgMjM1LCA2MSwgMjUwLCAxNTcsIDIyOCwgMTM3LCAxLCAyMzUsIDYxLCAyMDUsIDIyOCwgCisgICAgMTM3LCAzOCwgMjE5LCAyNTEsIDEyNSwgMjE2LCAzMCwgMjI4LCAxMzcsIDM4LCAyMTksIDI1MSwgMTIxLCAyMTYsIDMwLCAKKyAgICAyMjgsIDEzNywgMzgsIDIxOSwgMjUxLCAyMjIsIDIyOCwgMjE2LCAzMCwgMjI4LCAxMzcsIDM4LCAxOTksIDI0OCwgMzgsIAorICAgIDIxNiwgMzAsIDIyOCwgMTM3LCAzOCwgMTk5LCAxMjUsIDIxNiwgMzAsIDIyOCwgMTM3LCAzOCwgMTk5LCAxMjEsIDIxNiwgCisgICAgMzAsIDIyOCwgMTM3LCAzOCwgMTk5LCAyMjIsIDIyOCwgMjE2LCAzMCwgMjI4LCAxMzcsIDM4LCAyMjksIDE5MywgNzgsIAorICAgIDIyOCwgMTM3LCAzOCwgNTIsIDU5LCA0OCwgMjI4LCAxMzcsIDEyNSwgMTM4LCAyNTQsIDU3LCAyMjgsIDEzNywgMTIxLCAKKyAgICAxMzgsIDI1NCwgNTcsIDIyOCwgMTM3LCAxNiwgMjI2LCAxODQsIDI0OCwgNTAsIDIyOCwgMTM3LCAxNiwgMjQzLCA3OCwgCisgICAgMjI4LCAxMzcsIDI0OSwgMjE5LCAyMjgsIDEzNywgMjQ1LCAzMSwgNzgsIDIyOCwgMTM3LCAyMzMsIDEwOCwgMjIxLCAyNTIsIAorICAgIDEsIDI1NCwgMTc2LCAyMjEsIDI1MiwgMSwgMjUxLCAyMjgsIDIyMSwgMjUyLCAxLCAyNDMsIDExMiwgMjIxLCAyNTIsIDEsIAorICAgIDI0OCwgMTk0LCAyMjEsIDI1MiwgMSwgMjM1LCAxNTIsIDIyMSwgMjUyLCAxLCAyNTIsIDE4OSwgMjIxLCAyNTIsIDEsIDIxMCwgCisgICAgODksIDIyMSwgMjUyLCAxLCAyMzUsIDE2MCwgMjIxLCAyNTIsIDEsIDIxNiwgNjcsIDIyMSwgMjUyLCAxLCAyMTAsIDE4MiwgCisgICAgMjIxLCAyNTIsIDEsIDIzNSwgOSwgMjIxLCAyNTIsIDEsIDIzMywgMTI4LCAyMjEsIDI1MiwgMSwgMjMwLCAxOTAsIDIyMSwgCisgICAgMjUyLCAxLCAyMjcsIDE5NCwgMjIxLCAyNTIsIDEsIDIxOSwgMTU2LCAyMjEsIDI1MiwgMSwgMjM1LCAyNTUsIDIyMSwgMjUyLCAKKyAgICAxLCAyNDQsIDEyMSwgMjIxLCAyNTIsIDEsIDIxNSwgMTgxLCAyMjEsIDI1MiwgMSwgMjI0LCAxMCwgMjIxLCAyNTIsIDEsIAorICAgIDIyMiwgMjI5LCAyMjEsIDI1MiwgMSwgMjIwLCA4NSwgMjIxLCAyNTIsIDEsIDIxNywgMTAwLCAyMjEsIDI1MiwgMTY0LCAKKyAgICAyMzUsIDI1NSwgMjIxLCAyNTIsIDE2NCwgMjM1LCAyNTQsIDIyMSwgMjUyLCAxNjQsIDIyNiwgMjQzLCAyMjEsIDI1MiwgCisgICAgMTY0LCAyNDgsIDIwNywgMjIxLCAyNTIsIDU4LCAxLCAyNDUsIDEwNSwgMjEwLCAxODIsIDIyMSwgMjUyLCAxNjQsIDI0NSwgCisgICAgMTA1LCAyMTAsIDE4MiwgMjIxLCAyNTIsIDI1LCA1LCAxOTksIDc1LCAyMjEsIDI1MiwgMjUsIDUsIDc1LCAyMjEsIDI1MiwgCisgICAgMjUsIDUsIDIyNiwgMTE4LCAyNTUsIDczLCAyMjEsIDI1MiwgMjUsIDUsIDE5OSwgMjU1LCA3MywgMjIxLCAyNTIsIDI1LCA1LCAKKyAgICAyNTUsIDczLCAyMjEsIDI1MiwgMjUsIDUsIDIyNiwgMTE4LCA2MSwgMjIxLCAyNTIsIDI1LCA1LCAxOTksIDYxLCAyMjEsIAorICAgIDI1MiwgMjUsIDUsIDYxLCAyMjEsIDI1MiwgNTgsIDEsIDIxOSwgMjUxLCA2MSwgMjIxLCAyNTIsIDI1LCA1LCAyMTksIDI1MSwgCisgICAgNjEsIDIyMSwgMjUyLCAyNSwgNSwgMTk5LCA3MCwgMjIxLCAyNTIsIDI1LCA1LCA3MCwgMjIxLCAyNTIsIDU4LCAxLCA3MywgCisgICAgMjIxLCAyNTIsIDI1LCA1LCAxOTksIDczLCAyMjEsIDI1MiwgMjUsIDUsIDczLCAyMjEsIDI1MiwgMjUsIDUsIDc2LCAyMjEsIAorICAgIDI1MiwgMjUsIDUsIDIxOCwgNDUsIDIyMSwgMjUyLCAxNjQsIDIyOSwgOTIsIDIyMSwgMjUyLCAyMjQsIDE0MSwgMjI5LCA5MiwgCisgICAgMjIxLCAyNTIsIDIyNCwgMTQxLCAyNTQsIDIxOCwgMjIxLCAyNTIsIDIyNCwgMTQxLCAyNTQsIDExNCwgMjIxLCAyNTIsIAorICAgIDIyNCwgMTQxLCAyNTIsIDExNCwgMjIxLCAyNTIsIDIyNCwgMTQxLCAyNTMsIDIwMSwgMjIxLCAyNTIsIDIyNCwgMTQxLCAKKyAgICAyMjAsIDgsIDIyMSwgMjUyLCAyNTUsIDIxLCA3OCwgMjIxLCAyNTIsIDIyNCwgMTQxLCAyMzEsIDY4LCAyMjQsIDQ1LCAyMjEsIAorICAgIDI1MiwgMjI0LCAxNDEsIDIxMCwgMzEsIDIyMSwgMjUyLCAyMjQsIDE0MSwgMjI0LCA0NSwgMjIxLCAyNTIsIDIyNCwgMTQxLCAKKyAgICAyMTAsIDExNCwgMjIxLCAyNTIsIDIyNCwgMTQxLCAyMTUsIDkwLCAyMjEsIDI1MiwgMjI0LCAxNDEsIDI1NCwgOSwgMjIxLCAKKyAgICAyNTIsIDIyNCwgMTQxLCAyMTksIDUzLCAyMzEsIDE0NSwgMjIxLCAyNTIsIDIyNCwgMTQxLCAyNTQsIDEwMCwgMjMxLCAxODIsIAorICAgIDEsIDI0MiwgMjQsIDIzMSwgMTgyLCAxLCAyNTUsIDI1LCAyMzEsIDE4MiwgMSwgMjU0LCAyMTYsIDIzMSwgMTgyLCAxLCAKKyAgICAyNTQsIDI1NSwgMjMxLCAxODIsIDEsIDI1NCwgMjA5LCAyMzEsIDE4MiwgMSwgMjE0LCAxMjQsIDIzMSwgMTgyLCAxLCAyNTMsIAorICAgIDE2MCwgMjMxLCAxODIsIDEsIDIzNSwgMTYwLCAyMzEsIDE4MiwgMSwgMjUzLCAxOTgsIDIzMSwgMTgyLCAxLCAyNTQsIDE4MSwgCisgICAgMjMxLCAxODIsIDEsIDI1NCwgMTg2LCAyMzEsIDE4MiwgMSwgMjU0LCAxNzgsIDIzMSwgMTgyLCAxLCAyNTQsIDEzNiwgMjMxLCAKKyAgICAxODIsIDEsIDI1NCwgMTIzLCAyMzEsIDE4MiwgMSwgMjUzLCAyMzcsIDIzMSwgMTgyLCAxLCAyMzUsIDI1NSwgMjMxLCAxODIsIAorICAgIDEsIDI1NCwgNzIsIDIzMSwgMTgyLCAxLCAyNTMsIDIwOCwgMjMxLCAxODIsIDEsIDI1NCwgNDUsIDIzMSwgMTgyLCAxLCAKKyAgICAyNTQsIDQxLCAyMzEsIDE4MiwgMSwgMjUzLCAyMzEsIDIzMSwgMTgyLCAxLCAyNTMsIDIwNiwgMjMxLCAxODIsIDEsIDI0NiwgCisgICAgNTUsIDIzMSwgMTgyLCAxLCAyMzUsIDIsIDIzMSwgMTgyLCAxLCAyNTQsIDE5NiwgMjMxLCAxODIsIDI1NCwgMjIyLCA3OCwgCisgICAgMjMxLCAxODIsIDIxMywgMTM2LCA3OCwgMjMxLCAxODIsIDI0MywgNTMsIDc4LCAyMzEsIDE4MiwgMjI0LCAxNDAsIDEwLCAxLCAKKyAgICAyNTIsIDU1LCAyLCA0LCAyMTQsIDEwNiwgNTEsIDEwLCAxLCAxNTEsIDIsIDExMywgMTcwLCA0OCwgMTAsIDEsIDIxNywgODEsIAorICAgIDIsIDExMywgMTcwLCA0OCwgMTAsIDEsIDI0NCwgMTQzLCAyLCA1OSwgMjUyLCA0MywgMjIsIDEzNCwgMTcwLCA0OCwgMTAsIAorICAgIDEsIDIyNCwgODIsIDIsIDU5LCA1MSwgMTAsIDEsIDIzMywgMTAzLCAyLCA1MiwgMTMwLCAxMCwgMSwgNjYsIDIsIDEzNCwgCisgICAgMTcwLCA0OCwgMTAsIDEsIDc5LCAyLCAxMTMsIDE3MCwgMjUyLCA0MywgMjIsIDIwMiwgNDgsIDEwLCAxLCA3OSwgMiwgMTEzLCAKKyAgICAxNzAsIDI1MiwgNDMsIDIyLCA1OSwgNDgsIDEwLCAxLCAyMjMsIDk2LCAyLCAyMzIsIDEyMywgMTAsIDEsIDIxMiwgMzEsIDIsIAorICAgIDU5LCAyMTEsIDIzMSwgMTAsIDEsIDIyMiwgMjAxLCAyMTEsIDQzLCAxMCwgMjQ5LCA5OSwgMjQ0LCAxNjUsIDEwLCAyNDksIAorICAgIDk5LCAyNDgsIDE4NCwgMTAsIDI0OSwgOTksIDIzNCwgMjA1LCAxMCwgMjQ5LCA5OSwgMjQ0LCAxNjMsIDEwLCAyNDksIDk5LCAKKyAgICAyNDgsIDE4MiwgMTAsIDI0OSwgOTksIDIzNCwgMjAzLCAxMCwgMTM4LCAxMjMsIDU5LCA0OCwgMTAsIDEzOCwgMTEzLCAxNzAsIAorICAgIDQ4LCAxMCwgMTM4LCAyMzIsIDEyNCwgNDgsIDEwLCAxMzgsIDEyMywgNTksIDUxLCAxMCwgMTM4LCAxMTMsIDE3MCwgNTEsIAorICAgIDEwLCAxMzgsIDIzMiwgMTI0LCA1MSwgMTAsIDIwNCwgMjQ0LCAxNjMsIDEwLCAyMDQsIDI0OCwgMTgyLCAxMCwgMjA0LCAKKyAgICAyMzQsIDIwMywgMTAsIDQsIDEyNSwgMjEyLCAzMCwgMTAsIDI0NCwgMTY2LCAyLCAyMjIsIDIzMywgMTAsIDI0NCwgMTY2LCAKKyAgICAyLCA1OSwgNDgsIDEwLCAyMzQsIDIwNiwgMiwgNTksIDUxLCAxMCwgNDMsIDI1MywgMjUwLCA0OCwgMTAsIDQ0LCAyNTMsIAorICAgIDI1MCwgNDgsIDEwLCA0MywgMjUzLCAyNTAsIDUxLCAxMCwgNDQsIDI1MywgMjUwLCA1MSwgMTAsIDUyLCA0NCwgMjUzLCAKKyAgICAyNTAsIDQ4LCAxMCwgNTIsIDQ0LCAyNTMsIDI1MCwgNzcsIDIsIDI0NywgMTIwLCAxMCwgNDQsIDI1MywgMjUwLCA3NywgMiwgCisgICAgMjQ3LCAxMjAsIDEwLCAyNDgsIDE4NSwgMiwgMjQ3LCAxMjAsIDg0LCA1LCAyMzUsIDE5MywgMjUwLCAyNTUsIDg0LCA1LCAKKyAgICAyNTAsIDI1NSwgODQsIDUsIDI1NCwgNzUsIDg0LCA1LCAyMTMsIDE0NywgODQsIDEsIDIxOSwgMjUxLCA2MSwgODQsIDEsIAorICAgIDYxLCA4NCwgMSwgMjU1LCA3MywgODQsIDEsIDczLCA4NCwgMSwgMjM2LCAzMywgODQsIDEsIDcwLCA4NCwgMSwgMjE0LCAKKyAgICAxMTgsIDg0LCAxLCAxNDksIDE1MywgODQsIDEsIDE0OSwgMTU2LCA4NCwgMSwgMjUxLCAyLCA3NSwgODQsIDEsIDIxOSwgCisgICAgMjUxLCA3NSwgODQsIDEsIDc1LCA4NCwgMSwgMjU0LCAyMDEsIDg0LCAxLCAyNTEsIDIsIDc2LCA4NCwgMSwgMjE5LCAyNTEsIAorICAgIDc2LCA4NCwgMSwgNzYsIDg0LCAxLCAyNTMsIDE5MiwgODQsIDEsIDE3NiwgODQsIDEsIDIzNCwgMTMyLCA4NCwgMSwgMjQzLCAKKyAgICAxMzUsIDg0LCAxLCAyNDIsIDI0OSwgODQsIDEsIDIyOSwgNzcsIDg0LCAxLCAyNTEsIDMzLCA4NCwgMSwgMjUwLCAxNTcsIAorICAgIDg0LCAxLCAyMzUsIDE0MSwgODQsIDEsIDIzNSwgMTE0LCA4NCwgMSwgMjI3LCAxNjUsIDg0LCAxLCAyMTUsIDE1NiwgODQsIAorICAgIDEsIDIxNSwgMTQ0LCA4NCwgMSwgMjQ4LCAxMzUsIDg0LCAxLCAyNDgsIDExOSwgODQsIDEsIDIyOCwgMTEwLCA4NCwgMSwgCisgICAgMjE3LCAxMDUsIDg0LCAxLCAyMTYsIDIwOCwgODQsIDEsIDI0OCwgMjIxLCA4NCwgMSwgMjQ4LCAyNSwgODQsIDEsIDE5NywgCisgICAgODQsIDEsIDIyOCwgOTIsIDg0LCAxLCAxOTAsIDg0LCAxLCAyMjUsIDE0NywgODQsIDEsIDI1MiwgMTkxLCA4NCwgMSwgMjUyLCAKKyAgICAxOCwgODQsIDEsIDE4NCwgODQsIDEsIDE5MSwgODQsIDEsIDIwNSwgODQsIDEsIDIyMiwgMTc5LCA4NCwgMSwgMjMzLCAxMzUsIAorICAgIDg0LCAxLCAyMzIsIDE4NCwgODQsIDEsIDIzMiwgMTc1LCA4NCwgMSwgMjE0LCAyNywgODQsIDEsIDIyMCwgMTAyLCA4NCwgMSwgCisgICAgMjE4LCAyMjMsIDg0LCAxLCAyMDYsIDg0LCAxLCAxNjIsIDg0LCAyNSwgNSwgMjI2LCAyMzQsIDg0LCAyNSwgNSwgMjI2LCAKKyAgICAxODEsIDg0LCA1LCAyMjcsIDIwNSwgODQsIDUsIDI1MywgMTc1LCA4NCwgMjUsIDUsIDI1NSwgNzMsIDg0LCAyNSwgNSwgNzMsIAorICAgIDg0LCAyNSwgNSwgMjM2LCAzMywgODQsIDI1LCA1LCA3MCwgODQsIDI1LCA1LCAyMTQsIDExOCwgODQsIDI1LCA1LCAxNDksIAorICAgIDE1MywgODQsIDI1LCA1LCAxNDksIDIyMiwgMTgwLCA4NCwgMjUsIDUsIDI1MSwgMiwgNzUsIDg0LCAyNSwgNSwgMjE5LCAKKyAgICAyNTEsIDc1LCA4NCwgMjUsIDUsIDc1LCA4NCwgMjUsIDUsIDI1NCwgMjAxLCA4NCwgMjUsIDUsIDI1MSwgMiwgNzYsIDg0LCAKKyAgICAyNSwgNSwgMjE5LCAyNTEsIDc2LCA4NCwgMjUsIDUsIDc2LCA4NCwgMjUsIDUsIDI1MywgMTkyLCA4NCwgNSwgMjEzLCAxNTIsIAorICAgIDg0LCAyNSwgNSwgMjI0LCAxODUsIDc1LCA4NCwgMjUsIDUsIDI1MywgMTcxLCA4NCwgMjI2LCAyMDQsIDg0LCAyMTgsIDExMSwgCisgICAgNSwgMjE0LCAyMTYsIDg0LCAyMTgsIDExMSwgNSwgMjU0LCA3NywgODQsIDI0MiwgMTM3LCAyNTUsIDE0LCA4NCwgMjU1LCAzLCAKKyAgICAyNTUsIDE0LCA4NCwgMjUsIDUsIDI1MSwgMiwgMTk5LCA3NSwgODQsIDI1LCA1LCAyMTQsIDIxNCwgODQsIDI1LCA1LCAyMTQsIAorICAgIDExNywgODQsIDEsIDIyNCwgODgsIDg0LCAxLCAyMzQsIDExNSwgODQsIDEsIDI0MiwgMjI2LCA4NCwgMSwgMjEwLCAxMTYsIAorICAgIDg0LCAxLCAyNDgsIDEyNCwgODQsIDEsIDIyMywgMzksIDg0LCAxLCAyNDQsIDE5NiwgODQsIDEsIDIxMCwgMTY4LCA4NCwgMSwgCisgICAgMTQ5LCAyMjIsIDE4MCwgODQsIDEsIDE0OSwgMjMyLCAxODUsIDg0LCAyNSwgNSwgMTQ5LCAxNTYsIDg0LCAyNSwgNSwgMTQ5LCAKKyAgICAyMzIsIDE4NSwgODQsIDI0OCwgMTc4LCA4NCwgNTIsIDI0OCwgMTc4LCA4NCwgMjEsIDIxMCwgODYsIDg0LCAyMSwgMTEwLCAKKyAgICA4NCwgMjEsIDEwNSwgODQsIDIxLCAxNTgsIDg0LCAyMSwgMTYxLCA4NCwgMjEsIDE4OSwgODQsIDIxLCAxOTQsIDg0LCAyMSwgCisgICAgMTk4LCA4NCwgMjEsIDE5NSwgODQsIDIxLCAyMDAsIDg0LCAyNTUsIDIxLCA1MCwgODQsIDUsIDEyNSwgMjE5LCAxNywgMjQ3LCAKKyAgICAxMjAsIDg0LCAxLCAyNTEsIDIsIDYxLCA4NCwgMSwgMjI2LCAyMzQsIDg0LCAxLCAyMjYsIDE4MSwgODQsIDEsIDI1MywgCisgICAgMTcxLCA4NCwgMSwgMjE0LCAyMTQsIDg0LCAxLCAyMTQsIDExNywgODQsIDEsIDIxMCwgODIsIDg0LCAxLCAxMTQsIDE5MSwgCisgICAgODQsIDEsIDI0MywgMjksIDg0LCAxLCAyMzUsIDk2LCA4NCwgMSwgMjQyLCAxODAsIDIxOCwgMTI5LCA4NCwgMSwgMjQ4LCAKKyAgICAxMjUsIDg0LCAxLCAyNTIsIDExMSwgMTQ2LCA1LCAyNTAsIDI1NSwgMTQ2LCA1LCAyNTQsIDc1LCAxNDYsIDUsIDIxMywgCisgICAgMTQ3LCAxNDYsIDEsIDYxLCAxNDYsIDEsIDI1NSwgNzMsIDE0NiwgMSwgNzMsIDE0NiwgMSwgMjM2LCAzMywgMTQ2LCAxLCAKKyAgICA3MCwgMTQ2LCAxLCAyMTQsIDExOCwgMTQ2LCAxLCAxNDksIDE1MywgMTQ2LCAxLCAxNDksIDE1NiwgMTQ2LCAxLCA3NSwgCisgICAgMTQ2LCAxLCAyNTQsIDIwMSwgMTQ2LCAxLCA3NiwgMTQ2LCAxLCAyNTMsIDE5MiwgMTQ2LCAxLCAxNzYsIDE0NiwgMSwgMjM0LCAKKyAgICAxMzIsIDE0NiwgMSwgMjQzLCAxMzUsIDE0NiwgMSwgMjQyLCAyNDksIDE0NiwgMSwgMjI5LCA3NywgMTQ2LCAxLCAyNTEsIAorICAgIDMzLCAxNDYsIDEsIDI1MCwgMTU3LCAxNDYsIDEsIDIzNSwgMTQxLCAxNDYsIDEsIDIzNSwgMTE0LCAxNDYsIDEsIDIyNywgCisgICAgMTY1LCAxNDYsIDEsIDIxNSwgMTU2LCAxNDYsIDEsIDIxNSwgMTQ0LCAxNDYsIDEsIDI0OCwgMTM1LCAxNDYsIDEsIDI0OCwgCisgICAgMTE5LCAxNDYsIDEsIDIyOCwgMTEwLCAxNDYsIDEsIDIxNywgMTA1LCAxNDYsIDEsIDIxNiwgMjA4LCAxNDYsIDEsIDI0OCwgCisgICAgMjIxLCAxNDYsIDEsIDI0OCwgMjUsIDE0NiwgMSwgMTk3LCAxNDYsIDEsIDE5MCwgMTQ2LCAxLCAyMjUsIDE0NywgMTQ2LCAxLCAKKyAgICAyNTIsIDE5MSwgMTQ2LCAxLCAyNTIsIDE4LCAxNDYsIDEsIDE4NCwgMTQ2LCAxLCAxOTEsIDE0NiwgMSwgMjA1LCAxNDYsIDEsIAorICAgIDIzMywgMTM1LCAxNDYsIDEsIDIyMCwgMTAyLCAxNDYsIDEsIDIxOCwgMjIzLCAxNDYsIDEsIDIwNiwgMTQ2LCAxLCAxNjIsIAorICAgIDE0NiwgNSwgMjI3LCAyMDUsIDE0NiwgNSwgMjUzLCAxNzUsIDE0NiwgMjUsIDUsIDI1NSwgNzMsIDE0NiwgMjUsIDUsIDczLCAKKyAgICAxNDYsIDI1LCA1LCAyMzYsIDMzLCAxNDYsIDI1LCA1LCA3MCwgMTQ2LCAyNSwgNSwgMjE0LCAxMTgsIDE0NiwgMjUsIDUsIAorICAgIDE0OSwgMTUzLCAxNDYsIDI1LCA1LCAxNDksIDIyMiwgMTgwLCAxNDYsIDI1LCA1LCA3NSwgMTQ2LCAyNSwgNSwgMjU0LCAKKyAgICAyMDEsIDE0NiwgMjUsIDUsIDc2LCAxNDYsIDI1LCA1LCAyNTMsIDE5MiwgMTQ2LCA1LCAyMTMsIDE1MiwgMTQ2LCAxLCAyMzQsIAorICAgIDEyNCwgMjE3LCAxMDUsIDE0NiwgMjUzLCAxOTMsIDIzMywgMjMsIDc4LCAxNDYsIDEsIDIyMiwgMTc5LCAxNDYsIDEsIDIyMywgCisgICAgMzksIDE0NiwgMSwgMjEwLCAxNjgsIDE0NiwgMSwgMTQ5LCAyMjIsIDE4MCwgMTQ2LCAxLCAxNDksIDIzMiwgMTg1LCAxNDYsIAorICAgIDI1LCA1LCAxNDksIDE1NiwgMTQ2LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NSwgMTQ2LCAyMSwgMjEwLCA4NiwgMTQ2LCAyMSwgCisgICAgMTEwLCAxNDYsIDIxLCAxMDUsIDE0NiwgMjEsIDE1OCwgMTQ2LCAyMSwgMTYxLCAxNDYsIDIxLCAxODksIDE0NiwgMjEsIAorICAgIDE5NCwgMTQ2LCAyMSwgMTk4LCAxNDYsIDIxLCAxOTUsIDE0NiwgMjEsIDIwMCwgMTQ2LCAxLCAyMjMsIDE4OCwgMiwgMjMwLCAKKyAgICAyMjQsIDI0NywgMjU0LCAxNDYsIDEsIDIyMywgMTg4LCAyLCAyMzIsIDEwOCwgMjQ3LCAyNTQsIDE0NiwgMjIyLCAxMTgsIAorICAgIDc4LCAxNDYsIDIyMiwgMTE4LCA1MCwgMTQ2LCAyNDksIDk4LCAyMjcsIDE5NywgMTEwLCAxNDYsIDI0OSwgOTgsIDIyNywgCisgICAgMTk3LCAxMDUsIDE0NiwgMjQ5LCA5OCwgMjI3LCAxOTcsIDE1OCwgMTQ2LCAyNDksIDk4LCAyMjcsIDE5NywgMTYxLCAxNDYsIAorICAgIDI0OSwgOTgsIDIyNywgMTk3LCAxMjMsIDIzMywgMTYsIDIxNiwgMjAxLCAyMTYsIDE5NiwgMjQ4LCA0OCwgMTQ2LCAyNDksIAorICAgIDk4LCAyNDgsIDQ5LCAyMTksIDExOSwgMTQ2LCAyMzUsIDE2MSwgMTQ2LCAyNDMsIDEwMywgNzgsIDE4MywgNSwgMjU0LCAKKyAgICAyNTQsIDI1MSwgMjQzLCAxODMsIDUsIDI1MSwgMjQzLCAxODMsIDUsIDIxMywgMTQ3LCAxODMsIDEsIDYxLCAxODMsIDEsIAorICAgIDI1NSwgNzMsIDE4MywgMSwgNzMsIDE4MywgMSwgMjM2LCAzMywgMTgzLCAxLCA3MCwgMTgzLCAxLCAyMTQsIDExOCwgMTgzLCAKKyAgICAxLCAyNDUsIDIwOSwgMTgzLCAxLCAyNTQsIDIwMSwgMTgzLCAxLCAyMjYsIDE4MywgMTgzLCAxLCAyNTMsIDE5MiwgMTgzLCAKKyAgICAxLCAxNzYsIDE4MywgMSwgMjM0LCAxMzIsIDE4MywgMSwgMjQzLCAxMzUsIDE4MywgMSwgMjQyLCAyNDksIDE4MywgMSwgCisgICAgMjI5LCA3NywgMTgzLCAxLCAyNTEsIDMzLCAxODMsIDEsIDI1MCwgMTU3LCAxODMsIDEsIDIzNSwgMTQxLCAxODMsIDEsIAorICAgIDIzNSwgMTE0LCAxODMsIDEsIDIyNywgMTY1LCAxODMsIDEsIDIxNSwgMTU2LCAxODMsIDEsIDIxNSwgMTQ0LCAxODMsIDEsIAorICAgIDI0OCwgMTM1LCAxODMsIDEsIDI0OCwgMTE5LCAxODMsIDEsIDIyOCwgMTEwLCAxODMsIDEsIDIxNywgMTA1LCAxODMsIDEsIAorICAgIDIxNiwgMjA4LCAxODMsIDEsIDI0OCwgMjIxLCAxODMsIDEsIDI0OCwgMjUsIDE4MywgMSwgMTk3LCAxODMsIDEsIDE5MCwgCisgICAgMTgzLCAxLCAyMjUsIDE0NywgMTgzLCAxLCAyNTIsIDE5MSwgMTgzLCAxLCAyNTIsIDE4LCAxODMsIDEsIDE4NCwgMTgzLCAxLCAKKyAgICAxOTEsIDE4MywgMSwgMjA1LCAxODMsIDEsIDIzMywgMTM1LCAxODMsIDEsIDIzMiwgMTg0LCAxODMsIDEsIDIxNCwgMjcsIAorICAgIDE4MywgMSwgMjIwLCAxMDIsIDE4MywgMSwgMjA2LCAxODMsIDEsIDE2MiwgMTgzLCA1LCAyMjcsIDIwNSwgMTgzLCAyNSwgNSwgCisgICAgMjU1LCA3MywgMTgzLCAyNSwgNSwgNzMsIDE4MywgMjUsIDUsIDIzNiwgMzMsIDE4MywgMjUsIDUsIDcwLCAxODMsIDI1LCA1LCAKKyAgICAyMTQsIDExOCwgMTgzLCAyNSwgNSwgMjQ1LCAyMDksIDE4MywgMjUsIDUsIDI1NCwgMjAxLCAxODMsIDI1LCA1LCAyMjYsIAorICAgIDE4MywgMTgzLCAyNSwgNSwgMjUzLCAxOTIsIDE4MywgNSwgMjEzLCAxNTIsIDE4MywgNSwgMjE0LCAyMTgsIDE4MywgMSwgCisgICAgMjM0LCAxMTUsIDE4MywgMSwgMjQyLCAyMjYsIDE4MywgMSwgMjEwLCAxMTYsIDE4MywgMSwgMjIyLCAxNzksIDE4MywgMSwgCisgICAgMjQ0LCAxOTYsIDE4MywgMjEsIDIxMCwgODYsIDE4MywgMjEsIDExMCwgMTgzLCAyMSwgMTA1LCAxODMsIDIxLCAxNTgsIAorICAgIDE4MywgMjEsIDE2MSwgMTgzLCAyMSwgMTg5LCAxODMsIDIxLCAxOTQsIDE4MywgMjEsIDE5OCwgMTgzLCAyMSwgMTk1LCAKKyAgICAxODMsIDIxLCAyMDAsIDE4MywgMjE2LCA3NCwgMTgzLCAyNTQsIDI1MywgMTgzLCAyMzUsIDE3OCwgMTgzLCAyMTQsIDE0NiwgCisgICAgMTgzLCAyNDUsIDE4MSwgMjI2LCAxODgsIDE4MywgNSwgMjExLCA3OCwgMTcxLCA1LCAyNTAsIDI1NSwgMTcxLCA1LCAyNTQsIAorICAgIDc1LCAxNzEsIDUsIDIxMywgMTQ3LCAxNzEsIDEsIDYxLCAxNzEsIDEsIDI1NSwgNzMsIDE3MSwgMSwgNzMsIDE3MSwgMSwgCisgICAgMjM2LCAzMywgMTcxLCAxLCA3MCwgMTcxLCAxLCAyMTQsIDExOCwgMTcxLCAxLCAxNDksIDE1MywgMTcxLCAxLCAxNDksIAorICAgIDE1NiwgMTcxLCAyNSwgMjUxLCAyLCA3NSwgMTcxLCAxLCA3NSwgMTcxLCAxLCAyNTQsIDIwMSwgMTcxLCAyNSwgMjUxLCAyLCAKKyAgICA3NiwgMTcxLCAxLCA3NiwgMTcxLCAxLCAyNTMsIDE5MiwgMTcxLCAxLCAxNzYsIDE3MSwgMSwgMjM0LCAxMzIsIDE3MSwgMSwgCisgICAgMjQzLCAxMzUsIDE3MSwgMSwgMjQyLCAyNDksIDE3MSwgMSwgMjI5LCA3NywgMTcxLCAxLCAyNTEsIDMzLCAxNzEsIDEsIAorICAgIDI1MCwgMTU3LCAxNzEsIDEsIDIzNSwgMTQxLCAxNzEsIDEsIDIzNSwgMTE0LCAxNzEsIDEsIDIyNywgMTY1LCAxNzEsIDEsIAorICAgIDIxNSwgMTU2LCAxNzEsIDEsIDIxNSwgMTQ0LCAxNzEsIDEsIDI0OCwgMTM1LCAxNzEsIDEsIDI0OCwgMTE5LCAxNzEsIDEsIAorICAgIDIyOCwgMTEwLCAxNzEsIDEsIDIxNywgMTA1LCAxNzEsIDEsIDIxNiwgMjA4LCAxNzEsIDEsIDI0OCwgMjIxLCAxNzEsIDEsIAorICAgIDI0OCwgMjUsIDE3MSwgMSwgMTk3LCAxNzEsIDEsIDE5MCwgMTcxLCAxLCAyMjUsIDE0NywgMTcxLCAxLCAyNTIsIDE5MSwgCisgICAgMTcxLCAxLCAyNTIsIDE4LCAxNzEsIDEsIDE4NCwgMTcxLCAxLCAxOTEsIDE3MSwgMSwgMjA1LCAxNzEsIDEsIDIzMywgMTM1LCAKKyAgICAxNzEsIDEsIDIzMiwgMTg0LCAxNzEsIDEsIDIxNCwgMjcsIDE3MSwgMSwgMjIwLCAxMDIsIDE3MSwgMSwgMjE4LCAyMjMsIAorICAgIDE3MSwgMSwgMjA2LCAxNzEsIDEsIDE2MiwgMTcxLCA1LCAyMjcsIDIwNSwgMTcxLCA1LCAyNTMsIDE3NSwgMTcxLCAyNSwgNSwgCisgICAgMjU1LCA3MywgMTcxLCAyNSwgNSwgNzMsIDE3MSwgMjUsIDUsIDIzNiwgMzMsIDE3MSwgMjUsIDUsIDcwLCAxNzEsIDI1LCA1LCAKKyAgICAyMTQsIDExOCwgMTcxLCAyNSwgNSwgMTQ5LCAxNTMsIDE3MSwgMjUsIDUsIDE0OSwgMjIyLCAxODAsIDE3MSwgMjUsIDUsIAorICAgIDI1MSwgMiwgNzUsIDE3MSwgMjUsIDUsIDc1LCAxNzEsIDI1LCA1LCAyNTQsIDIwMSwgMTcxLCAyNSwgNSwgMjUxLCAyLCA3NiwgCisgICAgMTcxLCAyNSwgNSwgNzYsIDE3MSwgMjUsIDUsIDI1MywgMTkyLCAxNzEsIDUsIDIxMywgMTUyLCAxNzEsIDIyNiwgMjA0LCAKKyAgICAxNzEsIDEsIDE0OSwgMjIyLCAxODAsIDE3MSwgMSwgMTQ5LCAyMzIsIDE4NSwgMTcxLCAyNSwgNSwgMTQ5LCAxNTYsIDE3MSwgCisgICAgMjUsIDUsIDE0OSwgMjMyLCAxODUsIDE3MSwgMjEsIDIxMCwgODYsIDE3MSwgMjEsIDExMCwgMTcxLCAyMSwgMTA1LCAxNzEsIAorICAgIDIxLCAxNTgsIDE3MSwgMjEsIDE2MSwgMTcxLCAyMSwgMTg5LCAxNzEsIDIxLCAxOTQsIDE3MSwgMjEsIDE5OCwgMTcxLCAyMSwgCisgICAgMTk1LCAxNzEsIDIxLCAyMDAsIDE3MSwgMjU1LCAyMSwgNTAsIDE3MSwgMjIyLCAxMTgsIDUwLCAxNTcsIDUsIDI1MCwgMjU1LCAKKyAgICAxNTcsIDUsIDI1NCwgNzUsIDE1NywgNSwgMjEzLCAxNDcsIDE1NywgMSwgNjEsIDE1NywgMSwgMjU1LCA3MywgMTU3LCAxLCAKKyAgICA3MywgMTU3LCAxLCAyMzYsIDMzLCAxNTcsIDEsIDcwLCAxNTcsIDEsIDIxNCwgMTE4LCAxNTcsIDEsIDE0OSwgMTUzLCAxNTcsIAorICAgIDEsIDE0OSwgMTU2LCAxNTcsIDEsIDc1LCAxNTcsIDEsIDI1NCwgMjAxLCAxNTcsIDEsIDc2LCAxNTcsIDEsIDI1MywgMTkyLCAKKyAgICAxNTcsIDEsIDE3NiwgMTU3LCAxLCAyMzQsIDEzMiwgMTU3LCAxLCAyNDMsIDEzNSwgMTU3LCAxLCAyNDIsIDI0OSwgMTU3LCAKKyAgICAxLCAyMjksIDc3LCAxNTcsIDEsIDI1MSwgMzMsIDE1NywgMSwgMjUwLCAxNTcsIDE1NywgMSwgMjM1LCAxNDEsIDE1NywgMSwgCisgICAgMjM1LCAxMTQsIDE1NywgMSwgMjI3LCAxNjUsIDE1NywgMSwgMjE1LCAxNTYsIDE1NywgMSwgMjE1LCAxNDQsIDE1NywgMSwgCisgICAgMjQ4LCAxMzUsIDE1NywgMSwgMjQ4LCAxMTksIDE1NywgMSwgMjI4LCAxMTAsIDE1NywgMSwgMjE3LCAxMDUsIDE1NywgMSwgCisgICAgMjE2LCAyMDgsIDE1NywgMSwgMjQ4LCAyMjEsIDE1NywgMSwgMjQ4LCAyNSwgMTU3LCAxLCAxOTcsIDE1NywgMSwgMTkwLCAKKyAgICAxNTcsIDEsIDIyNSwgMTQ3LCAxNTcsIDEsIDI1MiwgMTkxLCAxNTcsIDEsIDI1MiwgMTgsIDE1NywgMSwgMTg0LCAxNTcsIDEsIAorICAgIDE5MSwgMTU3LCAxLCAyMDUsIDE1NywgMSwgMjMzLCAxMzUsIDE1NywgMSwgMjMyLCAxODQsIDE1NywgMSwgMjE0LCAyNywgCisgICAgMTU3LCAxLCAyMjAsIDEwMiwgMTU3LCAxLCAyMTgsIDIyMywgMTU3LCAxLCAyMDYsIDE1NywgMSwgMTYyLCAxNTcsIDUsIAorICAgIDIyNywgMjA1LCAxNTcsIDUsIDI1MywgMTc1LCAxNTcsIDI1LCA1LCAyNTUsIDczLCAxNTcsIDI1LCA1LCA3MywgMTU3LCAyNSwgCisgICAgNSwgMjM2LCAzMywgMTU3LCAyNSwgNSwgNzAsIDE1NywgMjUsIDUsIDIxNCwgMTE4LCAxNTcsIDI1LCA1LCAxNDksIDE1MywgCisgICAgMTU3LCAyNSwgNSwgMTQ5LCAyMjIsIDE4MCwgMTU3LCAyNSwgNSwgNzUsIDE1NywgMjUsIDUsIDI1NCwgMjAxLCAxNTcsIDI1LCAKKyAgICA1LCA3NiwgMTU3LCAyNSwgNSwgMjUzLCAxOTIsIDE1NywgNSwgMjEzLCAxNTIsIDE1NywgMjU0LCAyMDIsIDIzMywgMjMsIAorICAgIDc4LCAxNTcsIDI1MywgMTkzLCAyMzMsIDIzLCA3OCwgMTU3LCAxLCAyMjIsIDE3OSwgMTU3LCAxLCAyMjMsIDM5LCAxNTcsIAorICAgIDEsIDIxMCwgMTY4LCAxNTcsIDEsIDE0OSwgMjIyLCAxODAsIDE1NywgMSwgMTQ5LCAyMzIsIDE4NSwgMTU3LCAyNSwgNSwgCisgICAgMTQ5LCAxNTYsIDE1NywgMjUsIDUsIDE0OSwgMjMyLCAxODUsIDE1NywgMjEsIDIxMCwgODYsIDE1NywgMjEsIDExMCwgMTU3LCAKKyAgICAyMSwgMTA1LCAxNTcsIDIxLCAxNTgsIDE1NywgMjEsIDE2MSwgMTU3LCAyMSwgMTg5LCAxNTcsIDIxLCAxOTQsIDE1NywgMjEsIAorICAgIDE5OCwgMTU3LCAyMSwgMTk1LCAxNTcsIDIxLCAyMDAsIDE1NywgMjM1LCAxNjEsIDE1NywgMSwgMjEyLCA2NSwgMTU3LCAKKyAgICAyNDQsIDIsIDEyMywgMjI0LCAyMSwgMTU3LCAyNDQsIDIsIDEyMywgMjQyLCAyNywgMTU3LCAyNDQsIDIsIDEzNCwgMjI0LCAKKyAgICAxOSwgMTU3LCAyNDQsIDIsIDEyMywgMjE5LCAxMTcsIDE1NywgMjQ0LCAyLCAxMjMsIDI0NSwgMTg4LCAxNTcsIDI0NCwgMiwgCisgICAgMTM0LCAyMTksIDExNiwgMzYsIDUsIDI1NCwgNzUsIDM2LCA1LCAyMTMsIDE0NywgMzYsIDEsIDYxLCAzNiwgMSwgMjU1LCAKKyAgICA3MywgMzYsIDEsIDczLCAzNiwgMSwgMjM2LCAzMywgMzYsIDEsIDcwLCAzNiwgMSwgMjE0LCAxMTgsIDM2LCAxLCA3NSwgMzYsIAorICAgIDEsIDI0NSwgMjA5LCAzNiwgMSwgMjU0LCAyMDEsIDM2LCAxLCA3NiwgMzYsIDEsIDIyNiwgMTgzLCAzNiwgMSwgMjUzLCAKKyAgICAxOTIsIDM2LCAxLCAxNzYsIDM2LCAxLCAyMjksIDc3LCAzNiwgMSwgMjUxLCAzMywgMzYsIDEsIDIzNSwgMTQxLCAzNiwgMSwgCisgICAgMjI3LCAxNjUsIDM2LCAxLCAyMTUsIDE1NiwgMzYsIDEsIDIyOCwgMTEwLCAzNiwgMSwgMjE3LCAxMDUsIDM2LCAxLCAxOTcsIAorICAgIDM2LCAxLCAyMjgsIDkyLCAzNiwgMSwgMTkwLCAzNiwgMSwgMTg0LCAzNiwgMSwgMTkxLCAzNiwgMSwgMjA1LCAzNiwgMSwgCisgICAgMjIyLCAxNzksIDM2LCAxLCAyMzMsIDEzNSwgMzYsIDEsIDIzMiwgMTg0LCAzNiwgMSwgMjMyLCAxNzUsIDM2LCAxLCAyMTQsIAorICAgIDI3LCAzNiwgMSwgMjIwLCAxMDIsIDM2LCAxLCAyMTgsIDIyMywgMzYsIDEsIDIwNiwgMzYsIDEsIDE2MiwgMzYsIDI1LCA1LCAKKyAgICAyNTUsIDczLCAzNiwgMjUsIDUsIDczLCAzNiwgMjUsIDUsIDIzNiwgMzMsIDM2LCAyNSwgNSwgNzAsIDM2LCAyNSwgNSwgCisgICAgMjE0LCAxMTgsIDM2LCAyNSwgNSwgNzUsIDM2LCAyNSwgNSwgMjQ1LCAyMDksIDM2LCAyNSwgNSwgMjU0LCAyMDEsIDM2LCAKKyAgICAyNSwgNSwgNzYsIDM2LCAyNSwgNSwgMjI2LCAxODMsIDM2LCAyNSwgNSwgMjUzLCAxOTIsIDM2LCA1LCAyMTMsIDE1MiwgMzYsIAorICAgIDIyNiwgMjA0LCAzNiwgMjUzLCAxOTMsIDIzMywgMjMsIDc4LCAzNiwgMjEsIDIxMCwgODYsIDM2LCAyMSwgMTEwLCAzNiwgCisgICAgMjEsIDEwNSwgMzYsIDIxLCAxNTgsIDM2LCAyMSwgMTYxLCAzNiwgMjEsIDE4OSwgMzYsIDIxLCAxOTQsIDM2LCAyMSwgMTk4LCAKKyAgICAzNiwgMjEsIDE5NSwgMzYsIDIxLCAyMDAsIDM2LCA1NCwgMjE2LCAyNDcsIDM2LCA1NCwgMTIzLCAyNDAsIDIxMCwgMzYsIAorICAgIDU0LCAxMjMsIDIxNiwgMTQ3LCAzNiwgMjQ4LCAxNDYsIDUwLCAzNiwgMjMwLCAxMzUsIDUwLCAzNiwgMjExLCA0NSwgNTAsIAorICAgIDM2LCAyNDgsIDg3LCA1MCwgMzYsIDI0OSwgMTM5LCA1MCwgMzYsIDI1MywgMjM4LCA3NywgNTAsIDM2LCAyMjIsIDExOCwgCisgICAgNTAsIDM2LCA1NCwgNTAsIDE0OCwgNSwgMjUwLCAyNTUsIDE0OCwgNSwgMjU0LCA3NSwgMTQ4LCA1LCAyMTMsIDE0NywgMTQ4LCAKKyAgICAxLCA2MSwgMTQ4LCAxLCAyNTUsIDczLCAxNDgsIDEsIDczLCAxNDgsIDEsIDIzNiwgMzMsIDE0OCwgMSwgNzAsIDE0OCwgMSwgCisgICAgMjE0LCAxMTgsIDE0OCwgMSwgMTQ5LCAxNTMsIDE0OCwgMSwgMTQ5LCAxNTYsIDE0OCwgMSwgNzUsIDE0OCwgMSwgMjQ1LCAKKyAgICAyMDksIDE0OCwgMSwgMjU0LCAyMDEsIDE0OCwgMSwgNzYsIDE0OCwgMSwgMjI2LCAxODMsIDE0OCwgMSwgMjUzLCAxOTIsIAorICAgIDE0OCwgMSwgMTc2LCAxNDgsIDEsIDIzNCwgMTMyLCAxNDgsIDEsIDI0MywgMTM1LCAxNDgsIDEsIDI0MiwgMjQ5LCAxNDgsIAorICAgIDEsIDIyOSwgNzcsIDE0OCwgMSwgMjUxLCAzMywgMTQ4LCAxLCAyNTAsIDE1NywgMTQ4LCAxLCAyMzUsIDE0MSwgMTQ4LCAxLCAKKyAgICAyMzUsIDExNCwgMTQ4LCAxLCAyMjcsIDE2NSwgMTQ4LCAxLCAyMTUsIDE1NiwgMTQ4LCAxLCAyMTUsIDE0NCwgMTQ4LCAxLCAKKyAgICAyNDgsIDEzNSwgMTQ4LCAxLCAyNDgsIDExOSwgMTQ4LCAxLCAyMjgsIDExMCwgMTQ4LCAxLCAyMTcsIDEwNSwgMTQ4LCAxLCAKKyAgICAyMTYsIDIwOCwgMTQ4LCAxLCAyNDgsIDIyMSwgMTQ4LCAxLCAyNDgsIDI1LCAxNDgsIDEsIDE5NywgMTQ4LCAxLCAxOTAsIAorICAgIDE0OCwgMSwgMjI1LCAxNDcsIDE0OCwgMSwgMjUyLCAxOTEsIDE0OCwgMSwgMjUyLCAxOCwgMTQ4LCAxLCAxODQsIDE0OCwgMSwgCisgICAgMTkxLCAxNDgsIDEsIDIwNSwgMTQ4LCAxLCAyMjIsIDE3OSwgMTQ4LCAxLCAyMzMsIDEzNSwgMTQ4LCAxLCAyMzIsIDE4NCwgCisgICAgMTQ4LCAxLCAyMTQsIDI3LCAxNDgsIDEsIDIyMCwgMTAyLCAxNDgsIDEsIDIxOCwgMjIzLCAxNDgsIDEsIDIwNiwgMTQ4LCAxLCAKKyAgICAxNjIsIDE0OCwgNSwgMjUzLCAxNzUsIDE0OCwgMjUsIDUsIDI1NSwgNzMsIDE0OCwgMjUsIDUsIDczLCAxNDgsIDI1LCA1LCAKKyAgICAyMzYsIDMzLCAxNDgsIDI1LCA1LCA3MCwgMTQ4LCAyNSwgNSwgMjE0LCAxMTgsIDE0OCwgMjUsIDUsIDE0OSwgMTUzLCAxNDgsIAorICAgIDI1LCA1LCAxNDksIDIyMiwgMTgwLCAxNDgsIDI1LCA1LCA3NSwgMTQ4LCAyNSwgNSwgMjQ1LCAyMDksIDE0OCwgMjUsIDUsIAorICAgIDI1NCwgMjAxLCAxNDgsIDI1LCA1LCA3NiwgMTQ4LCAyNSwgNSwgMjI2LCAxODMsIDE0OCwgMjUsIDUsIDI1MywgMTkyLCAKKyAgICAxNDgsIDUsIDIxMywgMTUyLCAxNDgsIDIzMywgMjMsIDc4LCAxNDgsIDI1NCwgMjAyLCAyMzMsIDIzLCA3OCwgMTQ4LCAxLCAKKyAgICAyMTUsIDE4MywgMTQ4LCAxLCAyNDYsIDM4LCAxNDgsIDEsIDE0OSwgMjIyLCAxODAsIDE0OCwgMSwgMTQ5LCAyMzIsIDE4NSwgCisgICAgMTQ4LCAyNSwgNSwgMTQ5LCAxNTYsIDE0OCwgMjUsIDUsIDE0OSwgMjMyLCAxODUsIDE0OCwgMjEsIDIxMCwgODYsIDE0OCwgCisgICAgMjEsIDExMCwgMTQ4LCAyMSwgMTA1LCAxNDgsIDIxLCAxNTgsIDE0OCwgMjEsIDE2MSwgMTQ4LCAyMSwgMTg5LCAxNDgsIDIxLCAKKyAgICAxOTQsIDE0OCwgMjEsIDE5OCwgMTQ4LCAyMSwgMTk1LCAxNDgsIDIxLCAyMDAsIDE0OCwgMjQ0LCAyLCAyMSwgMjEwLCA4NywgCisgICAgMzEsIDIyNiwgMjM3LCAyMjQsIDIyMywgNjQsIDE2MSwgMTQ4LCAyNDQsIDIsIDIxLCAxMjMsIDMxLCAyMjYsIDIzNywgMjI0LCAKKyAgICAyMjMsIDY0LCAxNjEsIDE0OCwgMjQ0LCAyLCAyMSwgMTEzLCAzMSwgMjI2LCAyMzcsIDIyNCwgMjIzLCA2NCwgMTYxLCAxNDgsIAorICAgIDI0NCwgMiwgMjEsIDEzNCwgMzEsIDIyNiwgMjM3LCAyMjQsIDIyMywgNjQsIDE2MSwgMTQ4LCAyNDQsIDIsIDIxLCAxMjMsIAorICAgIDMxLCAyNDUsIDQyLCAyMjQsIDIyMywgNjQsIDE2MSwgMTQ4LCAyNDQsIDIsIDIxLCAxMTMsIDMxLCAyNDUsIDQyLCAyMjQsIAorICAgIDIyMywgNjQsIDE2MSwgMTQ4LCAyNDQsIDIsIDIxLCAxMzQsIDMxLCAyNDUsIDQyLCAyMjQsIDIyMywgNjQsIDE2MSwgMTQ4LCAKKyAgICA1LCAyMTUsIDg0LCAxNjUsIDUsIDI1NCwgNzUsIDE2NSwgNSwgMjEzLCAxNDcsIDE2NSwgMSwgNjEsIDE2NSwgMSwgMjU1LCAKKyAgICA3MywgMTY1LCAxLCA3MywgMTY1LCAxLCAyMzYsIDMzLCAxNjUsIDEsIDcwLCAxNjUsIDEsIDIxNCwgMTE4LCAxNjUsIDEsIAorICAgIDE0OSwgMTUzLCAxNjUsIDEsIDE0OSwgMTU2LCAxNjUsIDEsIDc1LCAxNjUsIDEsIDI0NSwgMjA5LCAxNjUsIDEsIDI1NCwgCisgICAgMjAxLCAxNjUsIDEsIDc2LCAxNjUsIDEsIDIyNiwgMTgzLCAxNjUsIDEsIDI1MywgMTkyLCAxNjUsIDEsIDE3NiwgMTY1LCAxLCAKKyAgICAyMzQsIDEzMiwgMTY1LCAxLCAyNDMsIDEzNSwgMTY1LCAxLCAyNDIsIDI0OSwgMTY1LCAxLCAyMjksIDc3LCAxNjUsIDEsIAorICAgIDI1MSwgMzMsIDE2NSwgMSwgMjUwLCAxNTcsIDE2NSwgMSwgMjM1LCAxNDEsIDE2NSwgMSwgMjM1LCAxMTQsIDE2NSwgMSwgCisgICAgMjI3LCAxNjUsIDE2NSwgMSwgMjE1LCAxNTYsIDE2NSwgMSwgMjE1LCAxNDQsIDE2NSwgMSwgMjQ4LCAxMzUsIDE2NSwgMSwgCisgICAgMjQ4LCAxMTksIDE2NSwgMSwgMjI4LCAxMTAsIDE2NSwgMSwgMjE3LCAxMDUsIDE2NSwgMSwgMjE2LCAyMDgsIDE2NSwgMSwgCisgICAgMjQ4LCAyMjEsIDE2NSwgMSwgMjQ4LCAyNSwgMTY1LCAxLCAxOTcsIDE2NSwgMSwgMTkwLCAxNjUsIDEsIDIyNSwgMTQ3LCAKKyAgICAxNjUsIDEsIDI1MiwgMTkxLCAxNjUsIDEsIDI1MiwgMTgsIDE2NSwgMSwgMTg0LCAxNjUsIDEsIDE5MSwgMTY1LCAxLCAyMDUsIAorICAgIDE2NSwgMSwgMjIyLCAxNzksIDE2NSwgMSwgMjMzLCAxMzUsIDE2NSwgMSwgMjMyLCAxODQsIDE2NSwgMSwgMjE0LCAyNywgCisgICAgMTY1LCAxLCAyMjAsIDEwMiwgMTY1LCAxLCAyMTgsIDIyMywgMTY1LCAxLCAyMDYsIDE2NSwgMSwgMTYyLCAxNjUsIDUsIAorICAgIDIyNywgMjA1LCAxNjUsIDUsIDI1MywgMTc1LCAxNjUsIDI1LCA1LCAyNTUsIDczLCAxNjUsIDI1LCA1LCA3MywgMTY1LCAyNSwgCisgICAgNSwgMjM2LCAzMywgMTY1LCAyNSwgNSwgNzAsIDE2NSwgMjUsIDUsIDIxNCwgMTE4LCAxNjUsIDI1LCA1LCAxNDksIDE1MywgCisgICAgMTY1LCAyNSwgNSwgMTQ5LCAyMjIsIDE4MCwgMTY1LCAyNSwgNSwgNzUsIDE2NSwgMjUsIDUsIDI0NSwgMjA5LCAxNjUsIDI1LCAKKyAgICA1LCAyNTQsIDIwMSwgMTY1LCAyNSwgNSwgNzYsIDE2NSwgMjUsIDUsIDIyNiwgMTgzLCAxNjUsIDI1LCA1LCAyNTMsIDE5MiwgCisgICAgMTY1LCA1LCAyMTMsIDE1MiwgMTY1LCAyMzMsIDIzLCA3OCwgMTY1LCAyNTQsIDIwMiwgMjMzLCAyMywgNzgsIDE2NSwgMSwgCisgICAgMjQ0LCAxOTYsIDE2NSwgMSwgMTQ5LCAyMjIsIDE4MCwgMTY1LCAxLCAxNDksIDIzMiwgMTg1LCAxNjUsIDI1LCA1LCAxNDksIAorICAgIDE1NiwgMTY1LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NSwgMTY1LCAyMSwgMjEwLCA4NiwgMTY1LCAyMSwgMTEwLCAxNjUsIDIxLCAKKyAgICAxMDUsIDE2NSwgMjEsIDE1OCwgMTY1LCAyMSwgMTYxLCAxNjUsIDIxLCAxODksIDE2NSwgMjEsIDE5NCwgMTY1LCAyMSwgCisgICAgMTk4LCAxNjUsIDIxLCAxOTUsIDE2NSwgMjEsIDIwMCwgMTY1LCA1LCAyMzUsIDEwMiwgMTY1LCA1LCAyMTQsIDE2MSwgMTM2LCAKKyAgICA1LCAyNTQsIDc1LCAxMzYsIDUsIDIxMywgMTQ3LCAxMzYsIDEsIDYxLCAxMzYsIDEsIDI1NSwgNzMsIDEzNiwgMSwgNzMsIAorICAgIDEzNiwgMSwgMjM2LCAzMywgMTM2LCAxLCA3MCwgMTM2LCAxLCAyMTQsIDExOCwgMTM2LCAxLCAxNDksIDE1MywgMTM2LCAxLCAKKyAgICAxNDksIDE1NiwgMTM2LCAxLCA3NSwgMTM2LCAxLCAyNDUsIDIwOSwgMTM2LCAxLCAyNTQsIDIwMSwgMTM2LCAxLCA3NiwgCisgICAgMTM2LCAxLCAyMjYsIDE4MywgMTM2LCAxLCAyNTMsIDE5MiwgMTM2LCAxLCAxNzYsIDEzNiwgMSwgMjM0LCAxMzIsIDEzNiwgCisgICAgMSwgMjQzLCAxMzUsIDEzNiwgMSwgMjQyLCAyNDksIDEzNiwgMSwgMjI5LCA3NywgMTM2LCAxLCAyNTEsIDMzLCAxMzYsIDEsIAorICAgIDI1MCwgMTU3LCAxMzYsIDEsIDIzNSwgMTQxLCAxMzYsIDEsIDIzNSwgMTE0LCAxMzYsIDEsIDIyNywgMTY1LCAxMzYsIDEsIAorICAgIDIxNSwgMTU2LCAxMzYsIDEsIDIxNSwgMTQ0LCAxMzYsIDEsIDI0OCwgMTM1LCAxMzYsIDEsIDI0OCwgMTE5LCAxMzYsIDEsIAorICAgIDIyOCwgMTEwLCAxMzYsIDEsIDIxNywgMTA1LCAxMzYsIDEsIDIxNiwgMjA4LCAxMzYsIDEsIDI0OCwgMjIxLCAxMzYsIDEsIAorICAgIDI0OCwgMjUsIDEzNiwgMSwgMTk3LCAxMzYsIDEsIDIyOCwgOTIsIDEzNiwgMSwgMTkwLCAxMzYsIDEsIDIyNSwgMTQ3LCAKKyAgICAxMzYsIDEsIDI1MiwgMTkxLCAxMzYsIDEsIDI1MiwgMTgsIDEzNiwgMSwgMTg0LCAxMzYsIDEsIDE5MSwgMTM2LCAxLCAyMDUsIAorICAgIDEzNiwgMSwgMjIyLCAxNzksIDEzNiwgMSwgMjMzLCAxMzUsIDEzNiwgMSwgMjMyLCAxODQsIDEzNiwgMSwgMjMyLCAxNzUsIAorICAgIDEzNiwgMSwgMjE0LCAyNywgMTM2LCAxLCAyMjAsIDEwMiwgMTM2LCAxLCAyMTgsIDIyMywgMTM2LCAxLCAyMDYsIDEzNiwgMSwgCisgICAgMTYyLCAxMzYsIDEsIDIxNSwgMTI1LCAxMzYsIDUsIDI1MywgMTc1LCAxMzYsIDI1LCA1LCAyNTUsIDczLCAxMzYsIDI1LCA1LCAKKyAgICA3MywgMTM2LCAyNSwgNSwgMjM2LCAzMywgMTM2LCAyNSwgNSwgNzAsIDEzNiwgMjUsIDUsIDIxNCwgMTE4LCAxMzYsIDI1LCAKKyAgICA1LCAxNDksIDE1MywgMTM2LCAyNSwgNSwgMTQ5LCAyMjIsIDE4MCwgMTM2LCAyNSwgNSwgNzUsIDEzNiwgMjUsIDUsIDI0NSwgCisgICAgMjA5LCAxMzYsIDI1LCA1LCAyNTQsIDIwMSwgMTM2LCAyNSwgNSwgNzYsIDEzNiwgMjUsIDUsIDIyNiwgMTgzLCAxMzYsIDI1LCAKKyAgICA1LCAyNTMsIDE5MiwgMTM2LCA1LCAyMTMsIDE1MiwgMTM2LCAxLCA1OSwgMjIzLCA3MywgMTM2LCAyNTMsIDE5MywgMjMzLCAKKyAgICAyMywgNzgsIDEzNiwgMSwgMTQ5LCAyMjIsIDE4MCwgMTM2LCAxLCAxNDksIDIzMiwgMTg1LCAxMzYsIDI1LCA1LCAxNDksIAorICAgIDE1NiwgMTM2LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NSwgMTM2LCAyMSwgMjEwLCA4NiwgMTM2LCAyMSwgMTEwLCAxMzYsIDIxLCAKKyAgICAxMDUsIDEzNiwgMjEsIDE1OCwgMTM2LCAyMSwgMTYxLCAxMzYsIDIxLCAxODksIDEzNiwgMjEsIDE5NCwgMTM2LCAyMSwgCisgICAgMTk4LCAxMzYsIDIxLCAxOTUsIDEzNiwgMjEsIDIwMCwgMTM2LCA1NCwgMjE2LCAyNDcsIDEzNiwgNTQsIDEyMywgMjQwLCAKKyAgICAyMTAsIDEzNiwgNTQsIDEyMywgMjE2LCAxNDcsIDEzNiwgMjQ0LCAyLCAxMjMsIDIyNCwgMjEsIDEzNiwgMjQ0LCAyLCAxMjMsIAorICAgIDI0MiwgMjcsIDEzNiwgMjQ0LCAyLCAxMzQsIDIyNCwgMTksIDEzNiwgMjQ4LCAxNTAsIDc4LCAxMzYsIDEsIDI1MCwgOTksIAorICAgIDIyOCwgMTExLCAxMzYsIDEsIDI1MCwgOTksIDIzMCwgMjUsIDEzNiwgMSwgMjUwLCA5OSwgMjIyLCAxODAsIDEzNiwgMSwgCisgICAgMjUwLCA5OSwgMTU2LCAxMzYsIDEsIDI1MCwgOTksIDIzMiwgMTg1LCAxMzYsIDEsIDI1MCwgOTksIDIzNSwgMjMsIDE3NSwgCisgICAgNSwgMjU0LCA3NCwgMTc1LCA1LCAyMTMsIDE0NiwgMTc1LCAxLCAyNTMsIDE2NSwgMTc1LCAxLCAyNTUsIDI3LCAxNzUsIDEsIAorICAgIDI1NCwgMjIzLCAxNzUsIDEsIDI1NCwgMjM4LCAxNzUsIDEsIDIzNSwgMTUxLCAxNzUsIDEsIDIzNiwgMzIsIDE3NSwgMSwgCisgICAgMjE0LCAxMTAsIDE3NSwgMSwgMjE0LCAxMTIsIDE3NSwgMSwgMjM1LCAxNzMsIDE3NSwgMSwgMjM1LCAxNzQsIDE3NSwgMSwgCisgICAgMjM2LCAxOCwgMTc1LCAxLCAyMzYsIDIwLCAxNzUsIDEsIDI0NSwgMTcsIDE3NSwgMSwgMjQ1LCAyMDQsIDE3NSwgMSwgMjU0LCAKKyAgICAxODgsIDE3NSwgMSwgMjI2LCAxMDgsIDE3NSwgMSwgMjI2LCAxNzcsIDE3NSwgMSwgMjUzLCAxNzgsIDE3NSwgMSwgMjU0LCAKKyAgICAxNDYsIDIzNCwgMTg3LCAxNzUsIDEsIDIzMSwgMjA5LCAyMzQsIDE4NywgMTc1LCAxLCAyNTQsIDE0NiwgMjQzLCA4MiwgCisgICAgMTc1LCAxLCAyMzEsIDIwOSwgMjQzLCA4MiwgMTc1LCAxLCAyMzQsIDIyOSwgMjI5LCAyMjIsIDE3NSwgMSwgMjIxLCAyMzYsIAorICAgIDI0MywgODIsIDE3NSwgMSwgMjU0LCAxNDYsIDI1MCwgMjE2LCAxNzUsIDEsIDIzMSwgMjA5LCAyNTAsIDIxNiwgMTc1LCAxLCAKKyAgICAyNTQsIDE0NiwgMjM1LCAxMjcsIDE3NSwgMSwgMjMxLCAyMDksIDIzNSwgMTI3LCAxNzUsIDEsIDIxNywgOTgsIDIyOSwgCisgICAgMjIyLCAxNzUsIDEsIDIxNywgOTgsIDIyMSwgMjM1LCAyMjksIDIyMywgMTc1LCAxLCAyMjEsIDIzNiwgMjM1LCAxMjcsIAorICAgIDE3NSwgMSwgMjU0LCAxNDYsIDIxNSwgMTUyLCAxNzUsIDEsIDIzMSwgMjA5LCAyMTUsIDE1MiwgMTc1LCAxLCAyNTQsIDE0NiwgCisgICAgMjQ4LCAxMjYsIDE3NSwgMSwgMjMxLCAyMDksIDI0OCwgMTI2LCAxNzUsIDEsIDIzMCwgNTMsIDIyOSwgMTgwLCAxNzUsIDEsIAorICAgIDIyMSwgMjM2LCAyNDgsIDEyNiwgMTc1LCAxLCAyNTQsIDE0NiwgMjE3LCAzMCwgMTc1LCAxLCAyMzEsIDIwOSwgMjE3LCAzMCwgCisgICAgMTc1LCAxLCAyNTQsIDE0NiwgMjQ4LCAxNDQsIDE3NSwgMSwgMjMxLCAyMDksIDI0OCwgMTQ0LCAxNzUsIDEsIDI0OCwgMTc0LCAKKyAgICAyMjksIDE4MCwgMTc1LCAxLCAyMjEsIDIzNiwgMjQ4LCAxNDQsIDE3NSwgMSwgMjU0LCAxNDYsIDIyNSwgMjI4LCAxNzUsIDEsIAorICAgIDIzMSwgMjA5LCAyMjUsIDIyOCwgMTc1LCAxLCAyNTQsIDE0NiwgMjUyLCAxMTIsIDE3NSwgMSwgMjMxLCAyMDksIDI1MiwgCisgICAgMTEyLCAxNzUsIDEsIDIzMSwgMTMxLCAxNzUsIDEsIDI1NCwgMTMxLCAyNTIsIDExMiwgMTc1LCAxLCAyMTEsIDUxLCAxNzUsIAorICAgIDEsIDIyMywgMTMzLCAxNzUsIDEsIDI0OCwgMTc0LCAyMzMsIDY3LCAxNzUsIDEsIDIxNCwgMSwgMTc1LCAxLCAyMTcsIDk4LCAKKyAgICAyMjEsIDIxMCwgMTc1LCAxLCAyMzAsIDUzLCAyMjEsIDIxMCwgMTc1LCAxLCAyNDgsIDE3NCwgMjIxLCAyMTAsIDE3NSwgMSwgCisgICAgMjQxLCAyNDIsIDE3NSwgMSwgMjMwLCA1MywgMjMzLCA2NywgMTc1LCAxLCAyNDQsIDE1NiwgMTc1LCA1LCAyNTQsIDE3NywgCisgICAgMTc1LCAyNSwgNSwgMjU0LCAyMzMsIDE3NSwgMjUsIDUsIDIzNCwgMTU1LCAyNTQsIDI0MCwgMTc1LCAyNSwgNSwgMjQ3LCAKKyAgICAyMjgsIDI1NCwgMjQwLCAxNzUsIDI1LCA1LCAyMzQsIDE1NSwgMjM1LCAxNzAsIDE3NSwgMjUsIDUsIDI0NywgMjI4LCAyMzUsIAorICAgIDE3MCwgMTc1LCAyNSwgNSwgMjM0LCAxNTUsIDIyNiwgODgsIDE3NSwgMjUsIDUsIDI0NywgMjI4LCAyMjYsIDg4LCAxNzUsIAorICAgIDI1LCA1LCAyNDMsIDEyNCwgMTc1LCAyNSwgNSwgMjM0LCAxNSwgMTc1LCAyNSwgNSwgMjQ3LCAyMjgsIDIzNCwgMTUsIDE3NSwgCisgICAgMjUsIDUsIDIzNCwgMTcsIDI0OCwgNjcsIDE3NSwgMjUsIDUsIDIzNCwgMTYsIDI0MiwgNDcsIDI1NCwgMjMzLCAxNzUsIDI1LCAKKyAgICA1LCAyMzQsIDE2LCAyNDIsIDQ3LCAyNDcsIDIyOCwgMjU0LCAyMzMsIDE3NSwgMjUsIDUsIDIzNCwgMTYsIDI0MiwgNDcsIAorICAgIDI0MywgODEsIDE3NSwgMjUsIDUsIDI0MywgODEsIDE3NSwgMjUsIDUsIDI0NywgMjI4LCAyNDMsIDEyNCwgMTc1LCAyNSwgNSwgCisgICAgMjQ3LCAyMjgsIDI0MywgODEsIDE3NSwgMjI0LCAxNDEsIDIzMywgMjA3LCAxNjgsIDEzNSwgMjM0LCAyOSwgMjM0LCAyNDYsIAorICAgIDE2OCwgMTM1LCAyMzQsIDEwNiwgMjM0LCAxMjgsIDE2OCwgMTM1LCAyMzQsIDEwNiwgMjM0LCA5OSwgMTY4LCAxMzUsIDIzNCwgCisgICAgMTA2LCAyMzQsIDk1LCAxNjgsIDEzNSwgMjM0LCAxMDYsIDIzNCwgMTAzLCAxNjgsIDEzNSwgMjM0LCAxMDYsIDIyMywgMTU0LCAKKyAgICAxNjgsIDEzNSwgMjI5LCA1LCAyMjgsIDI0OCwgMTY4LCAxMzUsIDI1MCwgODcsIDI1MCwgMTQ3LCAxNjgsIDEzNSwgMjUwLCAKKyAgICA4NywgMjUwLCA5NSwgMTY4LCAxMzUsIDI1MCwgODcsIDI1MCwgMTQ2LCAxNjgsIDEzNSwgMjE5LCA1OSwgMjE5LCA1OCwgCisgICAgMTY4LCAxMzUsIDI1MCwgODcsIDI1MCwgODMsIDE2OCwgMTM1LCAyMTAsIDI0NSwgMjEwLCAyNTIsIDE2OCwgMTM1LCAyNDcsIAorICAgIDE0NiwgMjUwLCAxNTQsIDE2OCwgMTM1LCAyMTYsIDQyLCAyMjUsIDIzOCwgMTY4LCAxMzUsIDIxNiwgMTU3LCAyMTYsIDIwMCwgCisgICAgMTY4LCAxMzUsIDIxNiwgMTU3LCAyMjksIDIwMSwgMTY4LCAxMzUsIDIxNiwgMTU3LCAyMjUsIDExMSwgMTY4LCAxMzUsIAorICAgIDIyOCwgNzUsIDIyOSwgOTgsIDE2OCwgMTM1LCAyNDcsIDE0NiwgMjQ4LCA2OCwgMTY4LCAxMzUsIDIxNiwgNDIsIDIxNywgCisgICAgNTUsIDE2OCwgMTM1LCAyMTYsIDE1NywgMjE2LCAxMzEsIDE2OCwgMTM1LCAyMTYsIDE1NywgMjE2LCAyMDQsIDE2OCwgMTM1LCAKKyAgICAyMTYsIDE1NywgMjE2LCAxNTQsIDE2OCwgMTM1LCAyMjgsIDc1LCAyMjcsIDIzNywgMTY4LCAxMzUsIDI1MSwgMjA2LCAyNTIsIAorICAgIDE2NCwgMTY4LCAxMzUsIDIyNSwgMTcsIDIyNSwgNDIsIDE2OCwgMTM1LCAyMjUsIDEyMiwgMjI1LCAxMTMsIDE2OCwgMTM1LCAKKyAgICAyNDQsIDQ0LCAyNDQsIDE5NiwgMTY4LCAxMzUsIDIyNSwgMTIyLCAyMjUsIDE0MSwgMTY4LCAxMzUsIDI0NCwgNDQsIDI0NCwgCisgICAgMTczLCAxNjgsIDEzNSwgMjI1LCAxMjIsIDIyMSwgMjQ3LCAxNjgsIDEzNSwgMjMwLCAxNjIsIDE4NCwgMTY4LCAxMzUsIAorICAgIDIxMCwgMjQ1LCAyMTEsIDc5LCAxNjgsIDEzNSwgMjIyLCAyMTIsIDIyMiwgMTM5LCAxNjgsIDEzNSwgMjIyLCAxNDAsIDE2OCwgCisgICAgMTM1LCAyMzIsIDE1NywgMjMyLCAyMDYsIDE2OCwgMTM1LCAyMzIsIDk4LCAxNjgsIDEzNSwgMjExLCAyMjgsIDIxMiwgNjEsIAorICAgIDE2OCwgMTM1LCAyMTksIDU5LCAyMjIsIDYsIDE2OCwgMTM1LCAyMTksIDU5LCAyMjIsIDExNCwgMTY4LCAxMzUsIDIxOSwgCisgICAgNTksIDIxOCwgODIsIDE2OCwgMTM1LCAyNDEsIDY5LCAyNDEsIDE1OSwgMTY4LCAxMzUsIDIzMiwgMTU3LCAyNTAsIDY4LCAKKyAgICAxNjgsIDEzNSwgMTQ0LCAyNTQsIDExNSwgMTY4LCAxMzUsIDI0MSwgNjksIDIyOCwgNzAsIDE2OCwgMTM1LCAyMjYsIDY4LCAKKyAgICAxNjgsIDEzNSwgMjIxLCAyMzAsIDYxLCAxNjgsIDEzNSwgMjMxLCAyMDQsIDI0MiwgMTcsIDE2OCwgMTM1LCAyMjEsIDIzMCwgCisgICAgMjU1LCA3MywgMTY4LCAxMzUsIDIyMSwgMjMwLCAyNTQsIDEzNiwgMTY4LCAxMzUsIDIyMSwgMjMwLCA3MywgMTY4LCAxMzUsIAorICAgIDIyMSwgMjMwLCAyMzYsIDMzLCAxNjgsIDEzNSwgMjIxLCAyMzAsIDIxNCwgMjE0LCAxNjgsIDEzNSwgMjIxLCAyMzAsIDIxNCwgCisgICAgMjEyLCAxNjgsIDEzNSwgMjIxLCAyMzAsIDcwLCAxNjgsIDEzNSwgMjIxLCAyMzAsIDIxNCwgMTE4LCAxNjgsIDEzNSwgMjI1LCAKKyAgICAxMjQsIDE2OCwgMjQ5LCA5OCwgMTYsIDI1MiwgMTY1LCAxNjgsIDEzNSwgMjIxLCAyMzAsIDc1LCAxNjgsIDEzNSwgMjIxLCAKKyAgICAyMzAsIDI1NCwgMjQzLCAxNjgsIDEzNSwgMjIxLCAyMzAsIDc2LCAxNjgsIDEzNSwgMjIxLCAyMzAsIDI1NCwgMjAyLCAyMzEsIAorICAgIDE5OCwgMTY4LCAxMzUsIDIyMSwgMjMwLCAyNTQsIDIwMiwgMjMxLCAxOTksIDE2OCwgMTM1LCAyMzMsIDEwNiwgMTY4LCAKKyAgICAxMzUsIDIzMSwgMTk1LCAxNjgsIDEzNSwgMjMxLCAxOTYsIDE2OCwgMTM1LCAyMzEsIDIwNCwgMjQ1LCAxODAsIDE2OCwgCisgICAgMTM1LCAyMzEsIDIwNCwgMjE2LCAxNTYsIDE2OCwgMTM1LCAyMzEsIDIwNCwgMjE1LCAyMjgsIDE2OCwgMTM1LCAyMzEsIAorICAgIDIwNCwgMjUwLCAxMzUsIDE2OCwgMTM1LCAyMTYsIDE5OCwgMTY4LCAxMzUsIDIyOCwgMjA1LCAxNjgsIDEzNSwgMjExLCA3MywgCisgICAgMTY4LCAxMzUsIDI0NCwgMzUsIDE2OCwgMjEsIDIxMCwgODYsIDE2OCwgMjEsIDExMCwgMTY4LCAyMSwgMTA1LCAxNjgsIDIxLCAKKyAgICAxNTgsIDE2OCwgMjEsIDE2MSwgMTY4LCAyMSwgMTg5LCAxNjgsIDIxLCAxOTQsIDE2OCwgMjEsIDE5OCwgMTY4LCAyMSwgCisgICAgMTk1LCAxNjgsIDIxLCAyMDAsIDE2OCwgMTM1LCAyNTQsIDExMSwgMTY4LCAxMzUsIDIzNCwgMTA0LCAyMDksIDIwOSwgMSwgCisgICAgMjM0LCAyOCwgMjA5LCAyMDksIDEsIDIzNCwgMTA2LCAyMTgsIDM1LCAyMDksIDIwOSwgMSwgMjM0LCAxMDYsIDIxNywgNjIsIAorICAgIDIwOSwgMjA5LCAxLCAyMjksIDQsIDIwOSwgMjA5LCAxLCAyNDksIDIzOCwgMjA5LCAyMDksIDEsIDIxOSwgNTksIDIxNywgCisgICAgNjIsIDIwOSwgMjA5LCAxLCAyMjcsIDEzNCwgMjA5LCAyMDksIDEsIDI0NywgMTQ1LCAyMDksIDIwOSwgMSwgMTExLCAyMDksIAorICAgIDIwOSwgMSwgMjE2LCAxNTcsIDIxOCwgMzUsIDIwOSwgMjA5LCAxLCAyMTYsIDE1NywgMjE3LCA2MiwgMjA5LCAyMDksIDEsIAorICAgIDIyOCwgNzQsIDIwOSwgMjA5LCAxLCAyNTEsIDIwNSwgMjA5LCAyMDksIDEsIDIyNSwgMTYsIDIwOSwgMjA5LCAxLCAyMjUsIAorICAgIDEyMiwgMjE4LCAzNSwgMjA5LCAyMDksIDEsIDI0NCwgNDQsIDIxNywgNjIsIDIwOSwgMjA5LCAxLCAyMjUsIDEyMiwgMjE3LCAKKyAgICA2MiwgMjA5LCAyMDksIDEsIDI0NCwgNDQsIDIxOCwgMzUsIDIwOSwgMjA5LCAxLCAyMzAsIDE2MSwgMjA5LCAyMDksIDEsIAorICAgIDIxMCwgMjQ0LCAyMDksIDIwOSwgMSwgMjMyLCAxNTcsIDIzMiwgMjA2LCAyMDksIDIwOSwgMSwgMjMyLCAxNTcsIDIzMiwgCisgICAgMTIxLCAyMDksIDIwOSwgMSwgMjExLCAyMjcsIDIwOSwgMjA5LCAxLCAyMTksIDU5LCAyMTgsIDM1LCAyMDksIDIwOSwgMSwgCisgICAgMjQxLCA2OSwgMjE4LCAzNSwgMjA5LCAyMDksIDEsIDc2LCAyMDksIDIwOSwgMSwgMjQxLCA2OSwgMjE3LCA2MiwgMjA5LCAKKyAgICAyMDksIDI0NSwgMTYzLCAyMDksIDIwOSwgMjUsIDUsIDYxLCAyMDksIDIwOSwgMjUsIDUsIDIzMSwgMjA0LCAyMzQsIDIzNCwgCisgICAgMjA5LCAyMDksIDI1LCA1LCAyNTUsIDczLCAyMDksIDIwOSwgMjUsIDUsIDI1NCwgMTM2LCAyMDksIDIwOSwgMjUsIDUsIDczLCAKKyAgICAyMDksIDIwOSwgMjUsIDUsIDIzNiwgMzMsIDIwOSwgMjA5LCAyNSwgNSwgMjExLCAxMTcsIDIwOSwgMjA5LCAyNSwgNSwgCisgICAgMjEwLCAxNjksIDIwOSwgMjA5LCAyNSwgNSwgNzAsIDIwOSwgMjA5LCAyNSwgNSwgMjE0LCAxMTgsIDIwOSwgMjA5LCAyNSwgCisgICAgNSwgMjMxLCAyMDQsIDIzNCwgMTMsIDIwOSwgMjA5LCAyMjAsIDE0NSwgNSwgMjMyLCAxNTYsIDIwOSwgMjA5LCAyMjAsIAorICAgIDE0NSwgNSwgMjI3LCAxMzQsIDIwOSwgMjA5LCAyNSwgNSwgNzUsIDIwOSwgMjA5LCAyNSwgNSwgMjQ1LCAxOTUsIDIwOSwgCisgICAgMjA5LCAyNSwgNSwgNzYsIDIwOSwgMjA5LCAyNSwgNSwgMjUzLCAxNjcsIDIwOSwgMjA5LCAyNSwgNSwgMjU0LCAyMDEsIAorICAgIDIwOSwgMjA5LCAyMzQsIDI5LCAyMzMsIDEzNSwgMjA5LCAyMDksIDEzOCwgMjMxLCAyMDQsIDI0NSwgMTgwLCAyMDksIDIwOSwgCisgICAgMTM4LCAyMzEsIDIwNCwgMjE2LCAxNTYsIDIwOSwgMjA5LCAxMzgsIDIzMSwgMjA0LCAyMTYsIDExNywgMjA5LCAyMDksIAorICAgIDEzOCwgMjMxLCAyMDQsIDI1MCwgMjIzLCAyMDksIDIwOSwgMjUxLCA0LCA3OCwgMjA5LCAyMDksIDIyOCwgMjE0LCAyMDksIAorICAgIDIwOSwgMjEsIDIxMCwgODYsIDIwOSwgMjA5LCAyMSwgMTEwLCAyMDksIDIwOSwgMjEsIDEwNSwgMjA5LCAyMDksIDIxLCAKKyAgICAxNTgsIDIwOSwgMjA5LCAyMSwgMTYxLCAyMDksIDIwOSwgMjEsIDE4OSwgMjA5LCAyMDksIDIxLCAxOTQsIDIwOSwgMjA5LCAKKyAgICAyMSwgMTk4LCAyMDksIDIwOSwgMjEsIDE5NSwgMjA5LCAyMDksIDIxLCAyMDAsIDIwOSwgMjA5LCAyNDEsIDY5LCAyMjgsIAorICAgIDc0LCAyMDksIDIwOSwgMjQxLCA2OSwgMjMwLCAxNjEsIDIwOSwgMjA5LCAxLCAyMzQsIDEwNywgMjQyLCAxNzQsIDIwOSwgCisgICAgMjA5LCAxLCAyMzQsIDEwNywgMjI3LCAxMzQsIDYzLCAzLCAyMjYsIDIwNCwgNjMsIDE2NCwgMjQyLCAxMTUsIDIxMSwgMCwgCisgICAgMjMwLCAyNDgsIDIxNSwgMTg5LCA2MSwgNjMsIDE2NCwgMjQyLCAxMTUsIDIxMSwgMCwgMjMwLCAyNDgsIDI1NSwgMTU5LCAKKyAgICAyMjIsIDIxNiwgMjUyLCA3NywgMTg0LCA2MywgMTY0LCAyNDIsIDExNSwgMjExLCAwLCAyMzAsIDI0OCwgMjU1LCAxNTksIAorICAgIDI0MiwgMTE1LCAyMTUsIDE3MywgMTg0LCA2MywgMTY0LCA2NSwgMjExLCAwLCAyMzAsIDI0OCwgMjMxLCA5MywgMTg0LCA2MywgCisgICAgMTY0LCAyNDksIDI1MiwgMjExLCAwLCAyMzAsIDI0OCwgMjIwLCAxMDksIDE4NCwgNjMsIDE2NCwgMjUwLCAyMzksIDIxMSwgCisgICAgMCwgMjMwLCAyNDgsIDIyNSwgMTEyLCAyMjAsIDk2LCAxODQsIDYzLCAxNjQsIDIxMSwgMCwgMjMwLCAyNDgsIDIxNSwgMTczLCAKKyAgICAyMjAsIDk2LCAxODQsIDYzLCAxNjQsIDIyMSwgMjA4LCAyMjAsIDk1LCA2MywgMTY0LCAyNTEsIDEyOCwgMjExLCAwLCAyMzAsIAorICAgIDI0NywgNjMsIDE2NCwgMjUxLCAyMjMsIDIyMCwgMywgMjExLCAwLCAyMzAsIDI0NywgNjMsIDE2NCwgMjM1LCAxOTcsIDIxNSwgCisgICAgMTcyLCA2MywgMTY0LCAyNDgsIDYxLCAyMTUsIDE3MywgMjUxLCAxMjcsIDYzLCAxNjQsIDIyMCwgOTUsIDYzLCAxNjQsIAorICAgIDIyNywgMTM5LCAyMjAsIDk1LCA2MywgMTY0LCAyMTUsIDE3MywgMjIwLCA5NSwgNjMsIDE2NCwgMjI3LCAxMzksIDIxNSwgCisgICAgMTczLCAyMjAsIDk1LCA2MywgMTY0LCAyMjIsIDIzNiwgMjUwLCAxMjIsIDIxOCwgMjM2LCAyMjAsIDk1LCA2MywgMTY0LCAKKyAgICAyMjMsIDQyLCAyNDIsIDE0NiwgMjIwLCA5NSwgNjMsIDE2NCwgMjUwLCAyMzksIDI1NSwgMTYzLCAyMjIsIDE0NCwgMjMxLCAKKyAgICA5MiwgMTk5LCAyNTEsIDcsIDYzLCAxNjQsIDI0MiwgMTE1LCAyMTUsIDE3MiwgNjMsIDIzMiwgMTQ0LCA1LCAyNTAsIDE1NSwgCisgICAgMjIyLCAxNDMsIDYzLCAyMzIsIDE0NCwgNSwgMjMyLCAyNTIsIDIyMiwgMTQzLCA2MywgMjUzLCAyMTIsIDUsIDIyMCwgMTA1LCAKKyAgICAyNDMsIDY1LCAyNTUsIDE2NCwgMjIyLCAxNDMsIDYzLCAyNTMsIDIxMiwgNSwgMjU1LCAxNjEsIDE5MCwgNjMsIDI1MywgCisgICAgMjEyLCA1LCAyMjEsIDE4MiwgMjE1LCAxNjgsIDYzLCA1LCAyMjMsIDEzMCwgMjQ3LCAxNTksIDI0MywgNjQsIDYzLCA1LCAKKyAgICAyMjMsIDEzMCwgMjQ3LCAxNTksIDI0MiwgMTc2LCA2MywgNSwgMjIzLCAxMzAsIDI0NywgMTU5LCAyNDIsIDExNiwgNjMsIDUsIAorICAgIDIyMywgMTMwLCAyMjksIDIxOSwgMjQzLCA2NCwgNjMsIDUsIDIyMywgMTMwLCAyMjksIDIxOSwgMjQyLCAxNzYsIDYzLCA1LCAKKyAgICAyMjMsIDEzMCwgMjQ3LCAxNTksIDIyMywgMTMwLCAyMjksIDIxOCwgNjMsIDIxLCAyMTAsIDg2LCA2MywgMjEsIDExMCwgNjMsIAorICAgIDIxLCAxMDUsIDYzLCAyMSwgMTU4LCA2MywgMjEsIDE2MSwgNjMsIDIxLCAxODksIDYzLCAyMSwgMTk0LCA2MywgMjEsIDE5OCwgCisgICAgNjMsIDIxLCAxOTUsIDYzLCAyMSwgMjAwLCA2MywgMjEsIDE2MywgMTEwLCA2MywgMjEsIDE2MywgMTA1LCA2MywgMjEsIAorICAgIDE2MywgMTU4LCA2MywgMjEsIDE2MywgMTYxLCA2MywgMjEsIDE2MywgMTg5LCA2MywgMjEsIDE2MywgMTk0LCA2MywgMjEsIAorICAgIDE2MywgMTk4LCA2MywgMjEsIDE2MywgMTk1LCA2MywgMjEsIDE2MywgMjAwLCA2MywgMjEsIDE2MywgMjEwLCA4NiwgNjMsIAorICAgIDE2NCwgMjUxLCAxMzAsIDIyMiwgMTQzLCA2MywgMTY0LCAyMjksIDY4LCAyNTEsIDY4LCAyMjcsIDE0OSwgMjEwLCAyNSwgCisgICAgNjMsIDE2NCwgMjUwLCAyMzksIDI1NSwgMTYzLCAyMjIsIDE0NCwgMjUxLCA2OSwgMjMwLCAyMDIsIDI1MSwgNywgNjMsIAorICAgIDE2NCwgMjI5LCA2OCwgMjUxLCA2OCwgMjIwLCAxMDYsIDIyMiwgMTQzLCA2MywgMTY0LCAyNTAsIDEzMiwgMjMwLCAyNDcsIAorICAgIDYzLCAxNjQsIDIxNSwgMTg0LCAyNTUsIDE2MCwgNjMsIDE2NCwgMjQyLCAxMDAsIDIyMiwgMTQ0LCAyNDIsIDYzLCA2MywgCisgICAgMTY0LCAyNDIsIDEwMCwgMjIyLCAxNDQsIDI0MiwgNjksIDYzLCAxNjQsIDI1NCwgMTE2LCAyMzQsIDEyMywgMjQyLCA2MywgCisgICAgNjMsIDE2NCwgMjU0LCAxMTYsIDIzNCwgMTIzLCAyNDIsIDY5LCA2MywgNSwgMjExLCA2NSwgMjE1LCAxNzEsIDYzLCA1LCAKKyAgICAyMzEsIDE2NywgMjE1LCAxNzEsIDYzLCAxLCAxNzYsIDYzLCAxLCAyMzQsIDEzMiwgNjMsIDEsIDI0MywgMTM1LCA2MywgMSwgCisgICAgMjQyLCAyNDksIDYzLCAxLCAyMjksIDc3LCA2MywgMSwgMjUxLCAzMywgNjMsIDEsIDI1MCwgMTU3LCA2MywgMSwgMjM1LCAKKyAgICAxNDEsIDYzLCAxLCAyMjcsIDE2NSwgNjMsIDEsIDIxNSwgMTU2LCA2MywgMSwgMjE1LCAxNDQsIDYzLCAxLCAyNDgsIDEzNSwgCisgICAgNjMsIDEsIDI0OCwgMTE5LCA2MywgMSwgMjI4LCAxMTAsIDYzLCAxLCAyMTcsIDEwNSwgNjMsIDEsIDIxNiwgMjA4LCA2MywgCisgICAgMSwgMjQ4LCAyMjEsIDYzLCAxLCAyNDgsIDI1LCA2MywgMSwgMTk3LCA2MywgMSwgMTkwLCA2MywgMSwgMjI1LCAxNDcsIDYzLCAKKyAgICAxLCAyNTIsIDE5MSwgNjMsIDEsIDI1MiwgMTgsIDYzLCAxLCAxODQsIDYzLCAxLCAyMTUsIDE4MywgNjMsIDEsIDIxNSwgCisgICAgMTc1LCA2MywgMSwgMjQ2LCAzOCwgNjMsIDEsIDI0NiwgMzMsIDYzLCAxLCAyMTIsIDY1LCA2MywgMSwgMjEwLCA4MiwgNjMsIAorICAgIDEsIDIxMCwgMTE2LCA2MywgMSwgMjU1LCAxNjYsIDYzLCAxLCAxOTEsIDYzLCAxLCAyMDUsIDYzLCAxLCAyMzMsIDEzNSwgCisgICAgNjMsIDEsIDIyMCwgMTAyLCA2MywgMSwgMjE4LCAyMjMsIDYzLCAxLCAyMDYsIDYzLCAxLCAxNjIsIDYzLCAxLCA2MSwgNjMsIAorICAgIDEsIDIzMywgMjMxLCA2MywgMSwgMjQ0LCA3NywgMjA1LCA2MywgMSwgMjM0LCA0NiwgNjMsIDEsIDIyMiwgMTc5LCA2MywgCisgICAgMjUsIDUsIDI1NSwgNzMsIDYzLCAyNSwgNSwgNzMsIDYzLCAyNSwgNSwgMjM2LCAzMywgNjMsIDI1LCA1LCA3MCwgNjMsIDI1LCAKKyAgICA1LCAyMTQsIDExOCwgNjMsIDI1LCA1LCAxNDksIDE1MywgNjMsIDI1LCA1LCAxNDksIDIyMiwgMTgwLCA2MywgMjUsIDUsIAorICAgIDE0OSwgMTU2LCA2MywgMjUsIDUsIDE0OSwgMjMyLCAxODUsIDYzLCAyNSwgNSwgNzUsIDYzLCAyNSwgNSwgMjQ1LCAyMDksIAorICAgIDYzLCAyNSwgNSwgNzYsIDYzLCAyNSwgNSwgMjI2LCAxODMsIDYzLCA1LCAyMjIsIDIyMSwgMjE4LCA4NCwgMjI5LCA3OCwgCisgICAgMjIyLCAyMTEsIDYzLCA1LCAyMjIsIDIxNiwgMjUyLCA3NiwgNjMsIDI1LCA1LCAyMjMsIDQ5LCA3MywgNjMsIDI1LCA1LCAKKyAgICAyMjMsIDQ5LCAyMzYsIDMzLCA2MywgNSwgMjI3LCAxNDksIDIxMCwgMjYsIDIyOSwgMjI2LCAyNDgsIDIyMSwgNjMsIDUsIAorICAgIDIxOSwgNzEsIDIzMywgNjAsIDYzLCAxNjQsIDI0MiwgMjksIDYzLCAxNjQsIDIyNiwgNTcsIDYzLCA1LCAyMzMsIDYzLCAKKyAgICAyMjIsIDE0MywgNjMsIDUsIDIxMSwgNzAsIDIyMiwgMTQzLCA2MywgNSwgMjMzLCA2NCwgMjE1LCAxODQsIDI1MSwgNywgNjMsIAorICAgIDUsIDIzMSwgOTUsIDI1MSwgNywgNjMsIDUsIDI0MiwgMTE5LCAyNTEsIDgsIDIyMywgNDAsIDYzLCA1LCAyNDIsIDExOSwgCisgICAgMjMxLCA4NSwgMjIzLCA0MCwgNjMsIDUsIDIzNSwgMTkzLCAyMzEsIDk1LCAyNTEsIDcsIDYzLCAyMTgsIDczLCA1LCAyMzMsIAorICAgIDY0LCAyMTUsIDE4NCwgMjUxLCA3LCA2MywgMjE4LCA3MywgNSwgMjMxLCA5NSwgMjUxLCA3LCA2MywgMjE4LCA3MywgNSwgCisgICAgMjM1LCAxOTMsIDIzMSwgOTUsIDI1MSwgNywgNjMsIDIxOCwgNzMsIDEsIDE3NiwgNjMsIDIxOCwgNzMsIDEsIDIzNCwgMTMyLCAKKyAgICA2MywgMjE4LCA3MywgMSwgMjQzLCAxMzUsIDYzLCAyMTgsIDczLCAxLCAyNDIsIDI0OSwgNjMsIDIxOCwgNzMsIDEsIDIyOSwgCisgICAgNzcsIDYzLCAyMTgsIDczLCAxLCAyNTEsIDMzLCA2MywgMjE4LCA3MywgMSwgMjUwLCAxNTcsIDYzLCAyMTgsIDczLCAxLCAKKyAgICAyMzUsIDE0MSwgNjMsIDIxOCwgNzMsIDEsIDIyNywgMTY1LCA2MywgMjE4LCA3MywgMSwgMjE1LCAxNTYsIDYzLCAyMTgsIAorICAgIDczLCAxLCAyMTUsIDE0NCwgNjMsIDIxOCwgNzMsIDEsIDI0OCwgMTM1LCA2MywgMjE4LCA3MywgMSwgMjQ4LCAxMTksIDYzLCAKKyAgICAyMTgsIDczLCAxLCAyMjgsIDExMCwgNjMsIDIxOCwgNzMsIDEsIDIxNywgMTA1LCA2MywgMjE4LCA3MywgMSwgMjE2LCAyMDgsIAorICAgIDYzLCAyMTgsIDczLCAxLCAyNDgsIDIyMSwgNjMsIDIxOCwgNzMsIDEsIDI0OCwgMjUsIDYzLCAyMTgsIDczLCAxLCAxOTcsIAorICAgIDYzLCAyMTgsIDczLCAxLCAxOTAsIDYzLCAyMTgsIDczLCAxLCAyMjUsIDE0NywgNjMsIDIxOCwgNzMsIDEsIDI1MiwgMTkxLCAKKyAgICA2MywgMjE4LCA3MywgMSwgMjUyLCAxOCwgNjMsIDIxOCwgNzMsIDEsIDE4NCwgNjMsIDIxOCwgNzMsIDEsIDIxNSwgMTgzLCAKKyAgICA2MywgMjE4LCA3MywgMSwgMjE1LCAxNzUsIDYzLCAyMTgsIDczLCAxLCAyNDYsIDM4LCA2MywgMjE4LCA3MywgMSwgMjQ2LCAKKyAgICAzMywgNjMsIDIxOCwgNzMsIDEsIDIxMiwgNjUsIDYzLCAyMTgsIDczLCAxLCAyMTAsIDgyLCA2MywgMjE4LCA3MywgMSwgCisgICAgMjEwLCAxMTYsIDYzLCAyMTgsIDczLCAxLCAyNTUsIDE2NiwgNjMsIDIxOCwgNzMsIDEsIDE5MSwgNjMsIDIxOCwgNzMsIDEsIAorICAgIDIwNSwgNjMsIDIxOCwgNzMsIDEsIDIzMywgMTM1LCA2MywgMjE4LCA3MywgMSwgMjIwLCAxMDIsIDYzLCAyMTgsIDczLCAxLCAKKyAgICAyMTgsIDIyMywgNjMsIDIxOCwgNzMsIDEsIDIwNiwgNjMsIDIxOCwgNzMsIDEsIDE2MiwgNjMsIDIxOCwgNzMsIDEsIDYxLCAKKyAgICA2MywgMjE4LCA3MywgMSwgMjMzLCAyMzEsIDYzLCAyMTgsIDczLCAxLCAyNDQsIDc3LCAyMTIsIDY1LCA2MywgMjE4LCA3MywgCisgICAgMSwgMjQ0LCA3NywgMTkxLCA2MywgMjE4LCA3MywgMSwgMjQ0LCA3NywgMjA1LCA2MywgMjMzLCAyMTgsIDIyMiwgMTQxLCAKKyAgICAyMzQsIDEzMiwgNjMsIDIzMywgMjE4LCAyMjIsIDE0MSwgMjM0LCAxMzMsIDI1MSwgNjksIDIzMCwgMjAyLCAyNTEsIDcsIAorICAgIDYzLCAyNTAsIDI1MiwgNSwgMTE0LCAyNTIsIDcwLCA2MywgMjUwLCAyNTIsIDUsIDE5MiwgMjUyLCA3MCwgNjMsIDI1MCwgCisgICAgMjUyLCA1LCAyNTAsIDI1MywgMjE3LCAyMCwgNjMsIDI1MCwgMjUyLCA1LCAyMjEsIDIwNywgMjU1LCAxNjUsIDYzLCAxNiwgCisgICAgMjQ2LCA5MSwgMjUxLCAxMjUsIDYzLCAxNiwgMjIzLCAxMjksIDIyMiwgMjIyLCA2MywgMTYsIDIyNiwgNzcsIDI0MywgNjMsIAorICAgIDYzLCAxNiwgMjIzLCAxMjksIDIyMiwgMjIzLCAyMjMsIDQyLCAyNDIsIDE0NSwgNjMsIDE2LCAyMjUsIDExMiwgMTkwLCA2MywgCisgICAgMTYsIDIyOCwgNTksIDI1MSwgMTI1LCA2MywgMTYsIDIyOCwgNTksIDI1MSwgMTI2LCAyMjcsIDEzOSwgMjU1LCAxNjIsIDYzLCAKKyAgICAxNiwgMjI4LCA1OSwgMjUxLCAxMjYsIDI0MiwgMTE3LCAyNTUsIDE2MiwgNjMsIDE2LCAyMjgsIDU5LCAyNTEsIDEyNiwgCisgICAgMjUxLCA2OSwgMjU1LCAxNjIsIDYzLCA1LCAyMjMsIDEzMCwgMjI5LCAyMTksIDIyMywgMTMwLCAyNDcsIDE1OCwgNjMsIDUsIAorICAgIDIyMywgMTMwLCAyMjksIDIxOSwgMjQyLCAxMTYsIDYzLCAxNjQsIDI1MSwgMTI5LCAyMjAsIDMsIDI0MiwgMjE1LCAyMzAsIAorICAgIDI0OCwgMjIzLCA0MSwgNjMsIDE2NCwgMjMwLCAxNjMsIDIxMSwgMCwgMjQyLCAyMTUsIDIzMCwgMjQ4LCAyMjMsIDQxLCA2MywgCisgICAgMTY0LCAyMjcsIDEzOSwgMjE1LCAxNzIsIDYzLCAxNjQsIDY1LCAyNTEsIDE1MiwgMjIyLCAyMTMsIDIxMSwgMCwgMjMwLCAKKyAgICAyNDgsIDIzMSwgOTMsIDE4NCwgNjMsIDE2NCwgMjQ5LCAyNTIsIDI1MSwgMTUyLCAyMjIsIDIxMywgMjExLCAwLCAyMzAsIAorICAgIDI0OCwgMjIwLCAxMDksIDE4NCwgMjIyLCAyNTAsIDIxNywgMjU1LCA1MCwgMjMzLCA0NSwgMjE3LCAyNTUsIDUwLCAyMjIsIAorICAgIDI1MCwgMjE3LCAyNTUsIDUsIDIsIDI0NywgMTE4LCAyMzMsIDQ1LCAyMTcsIDI1NSwgNSwgMiwgMjQ3LCAxMTgsIDYzLCAKKyAgICAxNjQsIDIzMywgNTUsIDIzMSwgOTYsIDIyMiwgMTQzLCA2MywgMTY0LCAyMTUsIDI1MCwgMjMxLCA5NiwgMjIyLCAxNDMsIAorICAgIDY4LCAxLCAxNzYsIDY4LCAxLCAyMzQsIDEzMiwgNjgsIDEsIDI0MywgMTM1LCA2OCwgMSwgMjQyLCAyNDksIDY4LCAxLCAKKyAgICAyMjksIDc3LCA2OCwgMSwgMjUxLCAzMywgNjgsIDEsIDI1MCwgMTU3LCA2OCwgMSwgMjM1LCAxNDEsIDY4LCAxLCAyMzUsIAorICAgIDExNCwgNjgsIDEsIDIyNywgMTY1LCA2OCwgMSwgMjI4LCA3NiwgNjgsIDEsIDIxNSwgMTU2LCA2OCwgMSwgMjE1LCAxNDQsIAorICAgIDY4LCAxLCAyNDgsIDEzNSwgNjgsIDEsIDI0OCwgMTE5LCA2OCwgMSwgMjI4LCAxMTAsIDY4LCAxLCAyMTcsIDEwNSwgNjgsIAorICAgIDEsIDIxNiwgMjA4LCA2OCwgMSwgMjQ4LCAyMjEsIDY4LCAxLCAyNDgsIDI1LCA2OCwgMSwgMTk3LCA2OCwgMSwgMTkwLCA2OCwgCisgICAgMSwgMjI1LCAxNDcsIDY4LCAxLCAyNTIsIDE5MSwgNjgsIDEsIDI1MiwgMTgsIDY4LCAxLCAxODQsIDY4LCAxLCAxOTEsIDY4LCAKKyAgICAxLCAyMDUsIDY4LCAxLCAyMzMsIDEzNSwgNjgsIDEsIDIxMiwgNjUsIDY4LCAxLCAyMDYsIDY4LCAxLCAxNjIsIDY4LCAxLCAKKyAgICAyMzIsIDE4NCwgNjgsIDEsIDYxLCA2OCwgMSwgMjIwLCA4NiwgNjEsIDY4LCAxLCA3MywgNjgsIDEsIDIzNiwgMzMsIDY4LCAKKyAgICAxLCA3MCwgNjgsIDEsIDIxNCwgMTE4LCA2OCwgMSwgNzUsIDY4LCAxLCAyMzAsIDE1MSwgNzUsIDY4LCAxLCA3NiwgNjgsIDEsIAorICAgIDI1MywgMTkyLCA2OCwgMjUsIDUsIDIxNywgNjQsIDI1NSwgNzMsIDY4LCAyNSwgNSwgMjU1LCA3MywgNjgsIDI1LCA1LCA3MywgCisgICAgNjgsIDI1LCA1LCAyMzYsIDMzLCA2OCwgMjUsIDUsIDcwLCA2OCwgMjUsIDUsIDIxNCwgMTE4LCA2OCwgMjUsIDUsIDc1LCAKKyAgICA2OCwgMjUsIDUsIDI1NCwgMjAxLCA2OCwgMjUsIDUsIDIzMCwgMTUxLCAyMzYsIDMzLCA2OCwgMjUsIDUsIDIzMCwgMTUxLCAKKyAgICA3NiwgNjgsIDI1LCA1LCAxNjAsIDQ4LCA2OCwgNSwgMjU0LCA3NSwgNjgsIDUsIDU5LCA1MSwgNjgsIDUsIDIxMywgMTQ3LCAKKyAgICA2OCwgNSwgMjEzLCAxNTIsIDY4LCA1LCAyNTMsIDIzNSwgNjgsIDExNiwgNSwgMTQ3LCAxOTEsIDY4LCAxMTYsIDUsIDE0NywgCisgICAgMjA1LCA2OCwgMTE2LCA1LCAxNDcsIDIxMiwgNjUsIDY4LCAxMTYsIDUsIDE0NywgMTYyLCA2OCwgMSwgMjQyLCAxMzIsIAorICAgIDIwNiwgNjgsIDIxLCAyMTAsIDg2LCA2OCwgMjEsIDExMCwgNjgsIDIxLCAxMDUsIDY4LCAyMSwgMTU4LCA2OCwgMjEsIDE2MSwgCisgICAgNjgsIDIxLCAxODksIDY4LCAyMSwgMTk0LCA2OCwgMjEsIDE5OCwgNjgsIDIxLCAxOTUsIDY4LCAyMSwgMjAwLCA2OCwgNSwgCisgICAgMjMyLCAxOTIsIDIyMSwgMTcyLCA2OCwgNSwgMjIxLCAxNzIsIDY4LCAxNiwgMjMyLCAxNTMsIDY4LCAxNiwgMjQ5LCAyMTMsIAorICAgIDY4LCAxNiwgMjU0LCAyMjAsIDY4LCAxNiwgMjQzLCA0OCwgNjgsIDEsIDIyMCwgMTAyLCA2OCwgMSwgMjE4LCAyMjMsIDY4LCAKKyAgICAxLCAxNDksIDE1MywgNjgsIDEsIDE0OSwgMjIyLCAxODAsIDY4LCAxLCAxNDksIDE1NiwgNjgsIDEsIDE0OSwgMjMyLCAxODUsIAorICAgIDY4LCAyNSwgNSwgMTQ5LCAxNTMsIDY4LCAyNSwgNSwgMTQ5LCAyMjIsIDE4MCwgNjgsIDI1LCA1LCAxNDksIDE1NiwgNjgsIAorICAgIDI1LCA1LCAxNDksIDIzMiwgMTg1LCA2OCwgMSwgMjMwLCAxNTEsIDIyOSwgNzcsIDY4LCAxLCAyMzAsIDE1MSwgMjM1LCAKKyAgICAxMTQsIDY4LCAxLCAyMzAsIDE1MSwgMjUyLCAxMTEsIDY4LCAxLCAyMzAsIDE1MSwgMjUyLCAxMDYsIDY4LCAxMTYsIDUsIAorICAgIDIzMCwgMTUxLCAxNDcsIDE5NywgNjgsIDExNiwgNSwgMjMwLCAxNTEsIDE0NywgMTg0LCA2OCwgMTE2LCA1LCAyMzAsIDE1MSwgCisgICAgMTQ3LCAyMzMsIDEzNSwgNjgsIDEsIDIyMCwgMTA4LCAyMzQsIDIxMywgMjIwLCAxMDIsIDY4LCAyNSwgNSwgMjIwLCAxMDgsIAorICAgIDIzNCwgMjEzLCAyNDUsIDU1LCA2OCwgMTM4LCAxNjQsIDIyMCwgMTA4LCAyMzQsIDIxMywgMjQxLCAyNDcsIDY4LCAxMzgsIAorICAgIDE2NCwgMjIwLCAxMDgsIDIzNCwgMjEzLCAyMzQsIDE4MywgMjI1LCAxMjEsIDY4LCAxLCAyMTIsIDcsIDIyNCwgMTA4LCAKKyAgICAyMzQsIDIxMywgMjE2LCAyMDgsIDY4LCAxLCAyMTIsIDcsIDIyNCwgMTA4LCAyMzQsIDIxMywgMjI0LCAxMTQsIDY4LCAyNSwgCisgICAgNSwgMjEyLCA3LCAyMjQsIDEwOCwgMjM0LCAyMTMsIDI0NSwgNTUsIDY4LCAyNSwgNSwgMjEyLCA3LCAyMjQsIDEwOCwgMjM0LCAKKyAgICAyMTMsIDIxNCwgMjE0LCA2OCwgNSwgMjEyLCA3LCAyMjQsIDEwOCwgMjM0LCAyMTMsIDIxNiwgMjksIDY4LCA1LCAyMTIsIDcsIAorICAgIDIyNCwgMTA4LCAyMzQsIDIxMywgMjE2LCAyOCwgNjgsIDUsIDIxMiwgNywgMjI0LCAxMDgsIDIzNCwgMjEzLCAyMTYsIDI3LCAKKyAgICA2OCwgNSwgMjEyLCA3LCAyMjQsIDEwOCwgMjM0LCAyMTMsIDIxNiwgMjYsIDY4LCA1LCAyMTIsIDcsIDIyNCwgMTA4LCAyMzQsIAorICAgIDIxMywgMjE2LCAyNSwgNjgsIDEsIDI0NSwgMjE5LCAyMjQsIDEwOCwgMjM0LCAyMTMsIDIyOCwgMTEwLCA2OCwgMSwgMjQ1LCAKKyAgICAyMTksIDIyNCwgMTA4LCAyMzQsIDIxMywgMjEwLCAxNzYsIDY4LCAxLCAyNDUsIDIxOSwgMjI0LCAxMDgsIDIzNCwgMjEzLCAKKyAgICAyNDIsIDIxNywgNjgsIDI1LCA1LCAyNDMsIDU5LCAyMzQsIDIxMywgNzMsIDY4LCAyNSwgNSwgMjM0LCAxODgsIDIyNiwgCisgICAgMjM0LCA2OCwgMjUsIDUsIDIzNCwgMTg4LCA3MCwgNjgsIDI1LCA1LCAyMzQsIDE4OCwgMjQ1LCAyMDksIDY4LCAxLCAyMjAsIAorICAgIDg2LCAxNzYsIDY4LCAxLCAyMjAsIDg2LCAyMzQsIDEzMiwgNjgsIDEsIDIyMCwgODYsIDI0MywgMTM1LCA2OCwgMSwgMjIwLCAKKyAgICA4NiwgMjUxLCAzMywgNjgsIDEsIDIyMCwgODYsIDIxMCwgMTE2LCA2OCwgMSwgMjIwLCA4NiwgMjI3LCAxNjUsIDY4LCAxLCAKKyAgICAyMjAsIDg2LCAyNDgsIDIyMSwgNjgsIDEsIDIyMCwgODYsIDE5NywgNjgsIDEsIDIyMCwgODYsIDIyNSwgMTQ3LCA2OCwgMSwgCisgICAgMjIwLCA4NiwgMjQ0LCAxOTYsIDY4LCAxLCAyMjAsIDg2LCAyNTIsIDE5MSwgNjgsIDEsIDIyMCwgODYsIDIxNiwgMjA4LCAKKyAgICA2OCwgMSwgMjIwLCA4NiwgMTYyLCA2OCwgMTE2LCA1LCAyMjAsIDg2LCAxNDcsIDIxMiwgNjUsIDY4LCAyNSwgNSwgMjIwLCAKKyAgICA4NiwgMjU1LCA3MywgNjgsIDI1LCA1LCAyMjAsIDg2LCA3NSwgNjgsIDI1LCA1LCAyMjAsIDg2LCAxNjAsIDQ4LCA2OCwgMjUsIAorICAgIDUsIDIyMCwgODYsIDQwLCAyMTEsIDExNywgNjgsIDUsIDIyMCwgODYsIDIxNiwgMjgsIDY4LCA1LCAyMjAsIDg2LCAyMTYsIAorICAgIDI3LCA2OCwgNSwgMjIwLCA4NiwgMjE2LCAyNSwgNjgsIDUsIDIyMCwgODYsIDIxNiwgMjQsIDY4LCA1LCAyMjAsIDg2LCAKKyAgICAyNDksIDE1MiwgMjE2LCAyOCwgNjgsIDUsIDIyMCwgODYsIDI0OSwgMTUyLCAyMTYsIDI3LCA2OCwgNSwgMjIwLCA4NiwgCisgICAgMjQ5LCAxNTIsIDI0NSwgMTUzLCAyMTYsIDMwLCA2OCwgMSwgMjIyLCAxMjgsIDIyNiwgNjMsIDI0NCwgMTk2LCA2OCwgNSwgCisgICAgMjIyLCAxMjgsIDIyNiwgNjMsIDIxNiwgMjUsIDY4LCAyMjAsIDg2LCAyMSwgMjEwLCA4NiwgNjgsIDIyMCwgODYsIDIxLCAKKyAgICAxMTAsIDY4LCAyMjAsIDg2LCAyMSwgMTA1LCA2OCwgMjIwLCA4NiwgMjEsIDE1OCwgNjgsIDIyMCwgODYsIDIxLCAxNjEsIAorICAgIDY4LCAyMjAsIDg2LCAyMSwgMTg5LCA2OCwgMjIwLCA4NiwgMjEsIDE5NCwgNjgsIDIyMCwgODYsIDIxLCAxOTgsIDY4LCAKKyAgICAyMjAsIDg2LCAyMSwgMTk1LCA2OCwgMjIwLCA4NiwgMjEsIDIwMCwgNjgsIDUsIDIzNCwgMTI2LCAyMTYsIDI5LCA2OCwgNSwgCisgICAgMjM0LCAxMjYsIDIxNiwgMjcsIDY4LCAyNSwgNSwgMjU0LCAxOTAsIDYxLCA2OCwgMjUsIDUsIDI1NCwgMTkwLCAyNTQsIAorICAgIDIwMSwgNjgsIDE2LCAyMjAsIDg2LCAxMTAsIDY4LCAxNiwgMjIwLCA4NiwgMjQ1LCAzMCwgOTgsIDYsIDEsIDI1NCwgMTIzLCAKKyAgICA5OCwgNiwgMSwgMjUyLCAxNTIsIDk4LCA2LCAxLCAyNDMsIDEwNiwgOTgsIDYsIDEsIDI0NywgMTI4LCA5OCwgNiwgMSwgCisgICAgMjQ1LCAxNTAsIDk4LCA2LCAxLCAyMTMsIDE2MCwgOTgsIDYsIDEsIDIxMCwgODksIDk4LCA2LCAxLCAyMTcsIDYwLCA5OCwgCisgICAgNiwgMSwgMjM1LCAyNTUsIDk4LCA2LCAxLCAyMzQsIDIzNCwgOTgsIDYsIDEsIDIzMywgODEsIDk4LCA2LCAxLCAyMzEsIAorICAgIDE4NSwgOTgsIDYsIDEsIDIyOSwgMTk1LCA5OCwgNiwgMSwgMjI2LCAxOTYsIDk4LCA2LCAxLCAyMjYsIDE3LCA5OCwgNiwgMSwgCisgICAgMjEwLCA3OCwgOTgsIDYsIDEsIDIyMywgMTcxLCA5OCwgNiwgMSwgMjIxLCAyNDMsIDk4LCA2LCAxLCAyMTcsIDUwLCA5OCwgCisgICAgNiwgMSwgMjE0LCAxOTAsIDk4LCA2LCAxLCAyMjUsIDE0MCwgOTgsIDYsIDEsIDIzNCwgMTIxLCA5OCwgNiwgMSwgMjQyLCAKKyAgICAyNDEsIDk4LCA2LCAxLCAyMjQsIDczLCA5OCwgNiwgMSwgMjIwLCAyMCwgOTgsIDYsIDEsIDI1MCwgOTcsIDk4LCA2LCAxLCAKKyAgICAyNTEsIDcsIDk4LCA2LCAxLCAyMzUsIDEwMCwgOTgsIDYsIDEsIDI1MCwgNDAsIDk4LCA2LCAxLCAyNTAsIDE0MywgOTgsIDYsIAorICAgIDEsIDIxMSwgMTYzLCA5OCwgNiwgMSwgMjM1LCAxMTEsIDk4LCA2LCAxLCAyNDIsIDQzLCA5OCwgNiwgMSwgMjQxLCAyMzgsIAorICAgIDk4LCA2LCAxLCAyNDEsIDE3NSwgOTgsIDYsIDEsIDIxMiwgMjIsIDk4LCA2LCAxLCAyNDIsIDQsIDk4LCA2LCAxLCAyNDEsIAorICAgIDY1LCA5OCwgNiwgMSwgMjEwLCAyNDYsIDk4LCA2LCAxLCAyNTQsIDIzMiwgOTgsIDEsIDI1NCwgMTIzLCA5OCwgMSwgMjUyLCAKKyAgICAxNTIsIDk4LCAxLCAyNDMsIDEwNiwgOTgsIDEsIDI0NywgMTI4LCA5OCwgMSwgMjQ1LCAxNTAsIDk4LCAxLCAyMTMsIDE2MCwgCisgICAgOTgsIDEsIDIxMCwgODksIDk4LCAxLCAyMTcsIDYwLCA5OCwgMSwgMjM1LCAyNTUsIDk4LCAxLCAyMzQsIDIzNCwgOTgsIDEsIAorICAgIDIzMywgODEsIDk4LCAxLCAyMzEsIDE4NSwgOTgsIDEsIDIyOSwgMTk1LCA5OCwgMSwgMjI2LCAxOTYsIDk4LCAxLCAyMjYsIAorICAgIDE3LCA5OCwgMSwgMjEwLCA3OCwgOTgsIDEsIDIyMywgMTcxLCA5OCwgMSwgMjIxLCAyNDMsIDk4LCAxLCAyMTcsIDUwLCA5OCwgCisgICAgMSwgMjE0LCAxOTAsIDk4LCAxLCAyMjUsIDE0MCwgOTgsIDEsIDIzNCwgMTIxLCA5OCwgMSwgMjQyLCAyNDEsIDk4LCAxLCAKKyAgICAyMjQsIDczLCA5OCwgMSwgMjIwLCAyMCwgOTgsIDEsIDI1MCwgOTcsIDk4LCAxLCAyNTEsIDcsIDk4LCAxLCAyMzUsIDEwMCwgCisgICAgOTgsIDEsIDI1MCwgNDAsIDk4LCAxLCAyNTAsIDE0MywgOTgsIDEsIDIxMSwgMTYzLCA5OCwgMSwgMjM1LCAxMTEsIDk4LCAxLCAKKyAgICAyNDIsIDQzLCA5OCwgMSwgMjQxLCAyMzgsIDk4LCAxLCAyNDEsIDE3NSwgOTgsIDEsIDIxMiwgMjIsIDk4LCAxLCAyNDIsIDQsIAorICAgIDk4LCAxLCAyNDEsIDY1LCA5OCwgMSwgMjQ0LCAxMjEsIDk4LCAxLCAyMTAsIDI0NiwgOTgsIDEsIDI0NSwgMTY1LCA5OCwgMSwgCisgICAgMjE1LCA5NCwgMjQzLCAxMDYsIDk4LCAxLCAyNTQsIDE5NiwgOTgsIDIyNiwgMTUsIDIyMCwgMTM3LCA1OCwgMSwgOTgsIAorICAgIDIyOSwgMTk1LCA5OCwgMSwgMjU0LCAyMzIsIDk4LCAxLCAyNDIsIDMsIDUwLCA5OCwgMSwgMjMzLCAxMjcsIDUwLCAyNCwgCisgICAgMTAwLCAyMzQsIDU4LCAyNCwgMTAwLCAyMTgsIDIxNSwgMjQsIDEwMCwgMjI4LCAyMjYsIDI0LCAxMDAsIDIxNiwgMTAxLCAKKyAgICAyNCwgMTAwLCAyMTgsIDIwNCwgMjQsIDEwMCwgMjIzLCAyNiwgMjQsIDEwMCwgMjMwLCAyMTcsIDI0LCAxMDAsIDIyNSwgOTUsIAorICAgIDI0LCAxMDAsIDIxOCwgMjEyLCAyNCwgMTAwLCAyMTksIDE0OCwgMjQsIDEwMCwgMjE4LCAyMDksIDI0LCAxMDAsIDIzNiwgCisgICAgNTYsIDI0LCAxMDAsIDI1MCwgNDYsIDI0LCAxMDAsIDIxOCwgMjE5LCAyNCwgMTAwLCAyNTAsIDEwNiwgMjQsIDEwMCwgMjM0LCAKKyAgICAxMTAsIDI0LCAxMDAsIDIxNiwgMTczLCAyNCwgMTAwLCAyMjUsIDEzMSwgMjQsIDEwMCwgMjQxLCAxNzIsIDI0LCAxMDAsIAorICAgIDIyOCwgMjIyLCAyNCwgMTAwLCAyMTgsIDIxMywgMjQsIDEwMCwgMjI4LCAyMTYsIDI0LCAxMDAsIDIyOCwgMjIwLCAyNCwgCisgICAgMTAwLCAyMTYsIDk4LCAyNCwgMTAwLCAyMjMsIDE0LCAyNCwgMTAwLCAyMTgsIDIxMSwgMjQsIDEwMCwgMjIzLCAyNCwgMjQsIAorICAgIDEwMCwgMjM0LCAyMTgsIDI0LCAxMDAsIDIzMCwgMjEwLCAyNCwgMTAwLCAyMzQsIDIyMSwgMjQsIDEwMCwgMjI1LCA5MCwgCisgICAgMjQsIDEwMCwgMjI1LCA4OCwgMjQsIDEwMCwgMjI1LCA3NiwgMjQsIDEwMCwgMjI1LCA4NCwgMjQsIDEwMCwgMjI1LCA4MiwgCisgICAgMjQsIDEwMCwgMjI1LCA3OSwgMjQsIDEwMCwgMjI1LCA4MSwgMjQsIDEwMCwgMjI1LCA3OCwgMjQsIDEwMCwgMjI1LCA4MywgCisgICAgMjQsIDEwMCwgMjI1LCA5MywgMjQsIDEwMCwgMjI1LCA5NCwgMjQsIDEwMCwgMjI1LCA3NywgMjQsIDEwMCwgMjI1LCA4NywgCisgICAgMjQsIDEwMCwgMjM0LCAyMTksIDI0LCAxMDAsIDIzNCwgMjE3LCAyNCwgMTAwLCAyMTksIDE0MSwgMjQsIDEwMCwgMjE5LCAKKyAgICAxMzksIDI0LCAxMDAsIDIxOSwgMTMxLCAyNCwgMTAwLCAyMTksIDEzNCwgMjQsIDEwMCwgMjE5LCAxNDAsIDI0LCAxMDAsIAorICAgIDIxOSwgMTM2LCAyNCwgMTAwLCAyMTksIDEzNSwgMjQsIDEwMCwgMjE5LCAxMzMsIDI0LCAxMDAsIDIxOSwgMTQ0LCAyNCwgCisgICAgMTAwLCAyMTksIDE0NiwgMjQsIDEwMCwgMjE5LCAxNDcsIDI0LCAxMDAsIDIxOSwgMTQyLCAyNCwgMTAwLCAyMTksIDEzMiwgCisgICAgMjQsIDEwMCwgMjE5LCAxMzcsIDI0LCAxMDAsIDIxOSwgMTQ1LCAyNCwgMTAwLCAyNTAsIDkwLCAyNCwgMTAwLCAyNTAsIDg4LCAKKyAgICAyNCwgMTAwLCAyNTAsIDE2OCwgMjQsIDEwMCwgMjUwLCAxNjYsIDI0LCAxMDAsIDIyNiwgMzIsIDI0LCAxMDAsIDIzNiwgNTEsIAorICAgIDI0LCAxMDAsIDIzNiwgNDIsIDI0LCAxMDAsIDIzNiwgNTAsIDI0LCAxMDAsIDIzNiwgNDcsIDI0LCAxMDAsIDIzNiwgNDUsIAorICAgIDI0LCAxMDAsIDIzNiwgNDksIDI0LCAxMDAsIDIxOCwgMjE2LCAyNCwgMTAwLCAyMzYsIDU0LCAyNCwgMTAwLCAyMzYsIDU1LCAKKyAgICAyNCwgMTAwLCAyMzYsIDQzLCAyNCwgMTAwLCAyMzYsIDQ4LCAyNCwgMTAwLCAyMTEsIDI2LCAyNCwgMTAwLCAyNTAsIDQ1LCAKKyAgICAyNCwgMTAwLCAyNTAsIDkxLCAyNCwgMTAwLCAyNTAsIDg5LCAyNCwgMTAwLCAyNTAsIDE2OSwgMjQsIDEwMCwgMjUwLCAxNjcsIAorICAgIDI0LCAxMDAsIDI1MCwgMTA0LCAyNCwgMTAwLCAyNTAsIDEwNSwgMjQsIDEwMCwgMjUwLCA5MiwgMjQsIDEwMCwgMjUwLCAKKyAgICAxNzAsIDI0LCAxMDAsIDIyNSwgMTI5LCAyNCwgMTAwLCAyMzQsIDIyMCwgMjQsIDEwMCwgMjE4LCAyMTcsIDI0LCAxMDAsIAorICAgIDIxMSwgMzIsIDI0LCAxMDAsIDIzNCwgNDksIDI0LCAxMDAsIDIyOCwgMjE4LCAyNCwgMTAwLCAyMjgsIDIyNCwgMjQsIDEwMCwgCisgICAgMjI4LCAyMjMsIDI0LCAxMDAsIDIxNiwgOTUsIDI0LCAxMDAsIDI0NCwgMTAzLCAyNCwgMTQzLCAyNDQsIDEwMywgMjQsIAorICAgIDE0MywgNjEsIDI0LCAxNDMsIDI1NCwgMjQzLCAyNCwgMTQzLCAxOTEsIDI0LCAxNDMsIDIxMSwgOTIsIDI0LCAxNDMsIDI0NSwgCisgICAgMTE3LCAyNCwgMTQzLCA3NSwgMjQsIDE0MywgMjExLCAzNiwgMjQsIDE0MywgMjExLCA0NywgMjQsIDE0MywgNzYsIDI0LCAKKyAgICAxNDMsIDIxMiwgNjUsIDI0LCAxNDMsIDIxMiwgNjIsIDI0LCAxNDMsIDIyNiwgMjM0LCAyNCwgMTQzLCAyMTAsIDI0NCwgMjQsIAorICAgIDE0MywgNzAsIDI0LCAxNDMsIDIxMiwgMTEsIDI0LCAxNDMsIDIxMiwgMjIsIDI0LCAxNDMsIDIxMSwgMjUwLCAyNCwgMTQzLCAKKyAgICAyMTAsIDIxMiwgMjQsIDE0MywgMjQ1LCA1NSwgMjQsIDE0MywgMjExLCA4LCAyNCwgMTQzLCA3MywgMjQsIDE0MywgMjU1LCAKKyAgICAxNTcsIDI0LCAxNDMsIDI1NSwgMTU2LCAyNCwgMTQzLCAyMTEsIDEwNiwgMjQsIDE0MywgMjExLCAxMDQsIDI0LCAxNDMsIAorICAgIDI0NSwgMTE1LCAyNCwgMTQzLCAyNDUsIDExNCwgMjQsIDE0MywgMjQ1LCAxMTYsIDI0LCAxNDMsIDIxMSwgMzUsIDI0LCAKKyAgICAxNDMsIDIxMSwgMzQsIDI0LCAxNDMsIDIyNywgODQsIDI0LCAxNDMsIDIyNywgODUsIDI0LCAxNDMsIDIyNywgNzgsIDI0LCAKKyAgICAxNDMsIDIyNywgODMsIDI0LCAxNDMsIDIyNywgODEsIDI0LCAxNDMsIDIxMCwgMjM4LCAyNCwgMTQzLCAyMTAsIDIzNywgMjQsIAorICAgIDE0MywgMjEwLCAyMzYsIDI0LCAxNDMsIDIxMCwgMjM5LCAyNCwgMTQzLCAyMTAsIDI0MCwgMjQsIDE0MywgMjE1LCAzMCwgCisgICAgMjQsIDE0MywgMjE1LCAyOSwgMjQsIDE0MywgMjE1LCAyNywgMjQsIDE0MywgMjE1LCAyNCwgMjQsIDE0MywgMjE1LCAyNSwgCisgICAgMjQsIDE0MywgMjEwLCAyMTEsIDI0LCAxNDMsIDIxMCwgMjA4LCAyNCwgMTQzLCAyMTAsIDIwOSwgMjQsIDE0MywgMjEwLCAKKyAgICAyMDMsIDI0LCAxNDMsIDIxMCwgMjA0LCAyNCwgMTQzLCAyMTAsIDIwNSwgMjQsIDE0MywgMjEwLCAyMDcsIDI0LCAxNDMsIAorICAgIDI0NSwgNDksIDI0LCAxNDMsIDI0NSwgNTEsIDI0LCAxNDMsIDIxMSwgNywgMjQsIDE0MywgMjQwLCAxNTMsIDI0LCAxNDMsIAorICAgIDI0MCwgMTQ1LCAyNCwgMTQzLCAyNDAsIDE0OCwgMjQsIDE0MywgMjQwLCAxNDYsIDI0LCAxNDMsIDI0MCwgMTUwLCAyNCwgCisgICAgMTQzLCAyNDAsIDE1MiwgMjQsIDE0MywgMjU0LCAzNCwgMjQsIDE0MywgMjU0LCAzMSwgMjQsIDE0MywgMjU0LCAyOSwgMjQsIAorICAgIDE0MywgMjU0LCAzMCwgMjQsIDE0MywgMjE4LCAyMjAsIDI0LCAxNDMsIDI1NSwgMTU4LCAyNCwgMTQzLCAyMTEsIDEwNSwgCisgICAgMjQsIDE0MywgMjExLCAzMywgMjQsIDE0MywgMjI3LCA4MCwgMjQsIDE0MywgMjI3LCA3OSwgMjQsIDkwLCAyMzQsIDU4LCAKKyAgICAyNCwgOTAsIDIxOCwgMjE1LCAyNCwgOTAsIDIzNCwgNTEsIDI0LCA5MCwgMjI4LCAyMjYsIDI0LCA5MCwgMjI4LCAyMjQsIAorICAgIDI0LCA5MCwgMjI4LCAyMjMsIDI0LCA5MCwgMjE2LCAxMDEsIDI0LCA5MCwgMjIzLCAyNiwgMjQsIDkwLCAyMjMsIDIxLCAyNCwgCisgICAgOTAsIDIyMywgMTgsIDI0LCA5MCwgMjIzLCAxMSwgMjQsIDkwLCAyMjMsIDYsIDI0LCA5MCwgMjIzLCAxLCAyNCwgOTAsIAorICAgIDIyMywgMTIsIDI0LCA5MCwgMjIzLCAyNCwgMjQsIDkwLCAyMzAsIDIxNywgMjQsIDkwLCAyMjUsIDk1LCAyNCwgOTAsIDIyNSwgCisgICAgODQsIDI0LCA5MCwgMjE5LCAxNDgsIDI0LCA5MCwgMjE4LCAyMDksIDI0LCA5MCwgMjM2LCA1NiwgMjQsIDkwLCAyNTAsIDQ2LCAKKyAgICAyNCwgOTAsIDI1MCwgMTA2LCAyNCwgOTAsIDIzNCwgMTEwLCAyNCwgOTAsIDIxNiwgMTczLCAyNCwgOTAsIDIyNSwgMTMxLCAKKyAgICAyNCwgOTAsIDI0MSwgMTcyLCAyNCwgOTAsIDIzNCwgNTIsIDI0LCA5MCwgMjM0LCA1MCwgMjQsIDkwLCAyMjgsIDIyMiwgMjQsIAorICAgIDkwLCAyMjgsIDIxNiwgMjQsIDkwLCAyMjgsIDIxOCwgMjQsIDkwLCAyMjgsIDIyMSwgMjQsIDkwLCAyMjgsIDIxNywgMjQsIAorICAgIDkwLCAyMTYsIDk4LCAyNCwgOTAsIDIxNiwgOTUsIDI0LCA5MCwgMjIzLCAxOSwgMjQsIDkwLCAyMjMsIDE0LCAyNCwgOTAsIAorICAgIDIyMywgMCwgMjQsIDkwLCAyMjIsIDI1NSwgMjQsIDkwLCAyMTgsIDIxMSwgMjQsIDkwLCAyMjMsIDE2LCAyNCwgOTAsIDIyMywgCisgICAgMTUsIDI0LCA5MCwgMjIzLCA4LCAyNCwgOTAsIDIyMywgMTAsIDI0LCA5MCwgMjIzLCAyMywgMjQsIDkwLCAyMjMsIDMsIDI0LCAKKyAgICA5MCwgMjIzLCAxMywgMjQsIDkwLCAyMjMsIDIyLCAyNCwgOTAsIDIyMiwgMjU0LCAyNCwgOTAsIDIzMCwgMjEzLCAyNCwgOTAsIAorICAgIDIzMCwgMjA4LCAyNCwgOTAsIDIzMCwgMjEwLCAyNCwgOTAsIDIzMCwgMjA3LCAyNCwgOTAsIDIzMCwgMjA1LCAyNCwgOTAsIAorICAgIDIzMCwgMjExLCAyNCwgOTAsIDIzMCwgMjE2LCAyNCwgOTAsIDIzMCwgMjE0LCAyNCwgOTAsIDIzNCwgMjIxLCAyNCwgOTAsIAorICAgIDIyNSwgODYsIDI0LCA5MCwgMjI1LCA4NywgMjQsIDkwLCAyMjUsIDkyLCAyNCwgOTAsIDIzNCwgMjE5LCAyNCwgOTAsIDIxOSwgCisgICAgMTQxLCAyNCwgOTAsIDIxOSwgMTMxLCAyNCwgOTAsIDIxOSwgMTM0LCAyNCwgOTAsIDIxOSwgMTM2LCAyNCwgOTAsIDIyNiwgCisgICAgMzIsIDI0LCA5MCwgMjM2LCA1MSwgMjQsIDkwLCAyMzYsIDQ0LCAyNCwgOTAsIDIxOCwgMjE2LCAyNCwgOTAsIDIzNiwgNTIsIAorICAgIDI0LCA5MCwgMjExLCAyNiwgMjQsIDkwLCAyMTEsIDIyLCAyNCwgOTAsIDIxMSwgMjMsIDI0LCA5MCwgMjI1LCAxMjksIDI0LCAKKyAgICA5MCwgMjM0LCAyMjAsIDI0LCA5MCwgMjQxLCAxNzAsIDI0LCA5MCwgMjQxLCAxNjgsIDI0LCA5MCwgMjQxLCAxNzEsIDI0LCAKKyAgICA5MCwgMjQxLCAxNjksIDI0LCA5MCwgMjExLCAzMiwgMjQsIDkwLCAyMzQsIDU0LCAyNCwgOTAsIDIzNCwgNTMsIDI0LCA5MCwgCisgICAgMjM0LCA1NywgMjQsIDkwLCAyMzQsIDU1LCAyNCwgOTAsIDIzNCwgNTYsIDI0LCA5MCwgMjE4LCAyMTMsIDI5LCAzLCAxNjIsIAorICAgIDI5LCAzLCAyNDAsIDIyMiwgMjksIDMsIDI0MSwgMTgwLCAyOSwgMywgMjQyLCA0NiwgMjksIDMsIDI0MSwgMjIwLCAyOSwgMywgCisgICAgMjQxLCAyMzgsIDI5LCAzLCAyNDEsIDY4LCAyOSwgMywgMjQxLCA2NywgMjksIDMsIDIzMywgMTM1LCAyOSwgMywgMjMyLCAKKyAgICA5OCwgMjksIDMsIDIzMiwgMjQxLCAyOSwgMywgMjMzLCAxMzQsIDI5LCAzLCAyMzMsIDUwLCAyOSwgMywgMjMzLCA1OCwgMjksIAorICAgIDMsIDIzMiwgMTU2LCAyOSwgMywgMjMyLCA3MCwgMjksIDMsIDI0MSwgMTg5LCAyOSwgMywgMjQxLCAxODMsIDI5LCAzLCAKKyAgICAyNDEsIDE4NSwgMjksIDMsIDI0MSwgMTg4LCAyOSwgMywgMjQxLCAxODYsIDI5LCAzLCAyNDEsIDE4NywgMjksIDMsIDI0MSwgCisgICAgMTg0LCAyOSwgMywgMjQxLCAxODIsIDI5LCAzLCAxODQsIDI5LCAzLCAyMzAsIDEwMiwgMjksIDMsIDIzMCwgMjMwLCAyOSwgCisgICAgMywgMjMxLCAyMzcsIDI5LCAzLCAyMzEsIDgwLCAyOSwgMywgMjMxLCA5MSwgMjksIDMsIDIzMCwgMTYxLCAyOSwgMywgMjMwLCAKKyAgICA0MiwgMjksIDMsIDIxNywgMTYzLCAyOSwgMywgMjE3LCAxNTcsIDI5LCAzLCAyMTcsIDE1OSwgMjksIDMsIDIxNywgMTYyLCAKKyAgICAyOSwgMywgMjE3LCAxNjAsIDI5LCAzLCAyMTcsIDE2MSwgMjksIDMsIDIxNywgMTU4LCAyOSwgMywgMjE3LCAxNTYsIDI5LCAKKyAgICAzLCAyMDUsIDI5LCAzLCAyMjIsIDE0MCwgMjksIDMsIDIyMywgMzUsIDI5LCAzLCAyMjMsIDE4NCwgMjksIDMsIDIyMywgCisgICAgMTA4LCAyOSwgMywgMjIzLCAxMjgsIDI5LCAzLCAyMjIsIDIxMSwgMjksIDMsIDIyMiwgMTA5LCAyOSwgMywgMjA2LCAyOSwgCisgICAgMywgMjE4LCA4MywgMjksIDMsIDIxOSwgMTkxLCAyOSwgMywgMjIyLCAzMSwgMjksIDMsIDIyMSwgMTcwLCAyOSwgMywgMjIxLCAKKyAgICAxODEsIDI5LCAzLCAyMTksIDU4LCAyOSwgMywgMjE3LCAyNTMsIDI5LCAzLCAyMjAsIDEwMiwgMjksIDMsIDIxOSwgMjI1LCAKKyAgICAyOSwgMywgMjIwLCAzMiwgMjksIDMsIDIyMCwgOTgsIDI5LCAzLCAyMjAsIDYxLCAyOSwgMywgMjIwLCA2MywgMjksIDMsIAorICAgIDIyMCwgNywgMjksIDMsIDIxOSwgMjA4LCAyOSwgMywgMjI0LCA4OCwgMjksIDMsIDIyNCwgMzAsIDI5LCAzLCAyMjQsIDUzLCAKKyAgICAyOSwgMywgMjI0LCA4NywgMjksIDMsIDIyNCwgNjgsIDI5LCAzLCAyMjQsIDY5LCAyOSwgMywgMjI0LCA0MiwgMjksIDMsIAorICAgIDIyNCwgNDEsIDI5LCAzLCAyMjMsIDI0MiwgMjksIDMsIDIyMywgMjM4LCAyOSwgMywgMjIzLCAyNDEsIDI5LCAzLCAyMjMsIAorICAgIDIzOSwgMjksIDMsIDIyMywgMjQwLCAyOSwgMywgMjI0LCA2NSwgMjksIDMsIDIyNCwgNTksIDI5LCAzLCAyMjQsIDYxLCAyOSwgCisgICAgMywgMjI0LCA2NCwgMjksIDMsIDIyNCwgNjIsIDI5LCAzLCAyMjQsIDYzLCAyOSwgMywgMjI0LCA2MCwgMjksIDMsIDIyNCwgCisgICAgNTgsIDI5LCAzLCAyMjQsIDU0LCAyOSwgMywgMjI0LCA1NywgMjksIDMsIDIyNCwgNTUsIDI5LCAzLCAyMjQsIDU2LCAyOSwgCisgICAgMywgMjUyLCAxOTEsIDI5LCAzLCAyNTEsIDEyNSwgMjksIDMsIDI1MiwgNiwgMjksIDMsIDI1MiwgMTg5LCAyOSwgMywgMjUyLCAKKyAgICA2NiwgMjksIDMsIDI1MiwgNzUsIDI5LCAzLCAyNTEsIDIwNSwgMjksIDMsIDI1MSwgODMsIDI5LCAzLCAyMTQsIDI3LCAyOSwgCisgICAgMywgMjEyLCAxMTYsIDI5LCAzLCAyMTMsIDE3NiwgMjksIDMsIDIxNCwgMjYsIDI5LCAzLCAyMTMsIDI1MCwgMjksIDMsIAorICAgIDIxMywgMjU1LCAyOSwgMywgMjEzLCAxMzgsIDI5LCAzLCAyMTIsIDEwNywgMjksIDMsIDIxNywgMTA1LCAyOSwgMywgMjE1LCAKKyAgICAxMTgsIDI5LCAzLCAyMTYsIDExNywgMjksIDMsIDIxNywgMTAxLCAyOSwgMywgMjE3LCAxMSwgMjksIDMsIDIxNywgMjIsIAorICAgIDI5LCAzLCAxMTEsIDI5LCAzLCAyMTUsIDgwLCAyOSwgMywgMjUxLCAzMywgMjksIDMsIDI0OSwgMTEyLCAyOSwgMywgMjUwLCAKKyAgICA1MSwgMjksIDMsIDI1MSwgMzIsIDI5LCAzLCAyNTAsIDE4MiwgMjksIDMsIDI1MCwgMTkwLCAyOSwgMywgMjQ5LCAyMzgsIAorICAgIDI5LCAzLCAyNDksIDgxLCAyOSwgMywgMjExLCAxNjUsIDI5LCAzLCAyMTEsIDE0MSwgMjksIDMsIDIxMSwgMTU3LCAyOSwgMywgCisgICAgMjExLCAxNjQsIDI5LCAzLCAyMTEsIDE2MSwgMjksIDMsIDIxMSwgMTYyLCAyOSwgMywgMjExLCAxNDgsIDI5LCAzLCAyMTEsIAorICAgIDE0NywgMjksIDMsIDIxMSwgMTM2LCAyOSwgMywgMjExLCAxMzIsIDI5LCAzLCAyMTEsIDEzNSwgMjksIDMsIDIxMSwgMTMzLCAKKyAgICAyOSwgMywgMjExLCAxMzQsIDI5LCAzLCAxOTcsIDI5LCAzLCAyMjcsIDIzNywgMjksIDMsIDIyOCwgMjMzLCAyOSwgMywgCisgICAgMjI5LCAyMjUsIDI5LCAzLCAyMjksIDEwMywgMjksIDMsIDIyOSwgMTA3LCAyOSwgMywgMjI4LCA3NCwgMjksIDMsIDIyNywgCisgICAgMTc0LCAyOSwgMywgMjI3LCAxNjUsIDI5LCAzLCAyMjcsIDEyOCwgMjksIDMsIDIyNywgMTQ4LCAyOSwgMywgMjI3LCAxNjQsIAorICAgIDI5LCAzLCAyMjcsIDE1NSwgMjksIDMsIDIyNywgMTU2LCAyOSwgMywgMjI3LCAxMzQsIDI5LCAzLCAyMjcsIDExOSwgMjksIAorICAgIDMsIDI0MiwgMTgwLCA2MSwgMjksIDMsIDI0MiwgMTgwLCA3MCwgMjksIDMsIDI0MiwgMTgwLCA3MywgMjksIDMsIDI0MiwgCisgICAgMTgwLCAyNTUsIDczLCAyOSwgMywgMjQyLCAxODAsIDI0NSwgMjA5LCAyOSwgMywgMjQyLCAxODAsIDc1LCAyOSwgMywgMjQyLCAKKyAgICAxODAsIDc2LCAyOSwgMywgMjQyLCAxODAsIDIxMiwgNjUsIDI5LCAzLCAxNzYsIDI5LCAzLCAyMzMsIDIxNywgMjksIDMsIAorICAgIDIzNCwgOTIsIDI5LCAzLCAyMzUsIDEwLCAyOSwgMywgMjM0LCAxODEsIDI5LCAzLCAyMzQsIDE4MiwgMjksIDMsIDIzNCwgCisgICAgMjgsIDI5LCAzLCAyMzQsIDI3LCAyOSwgMywgMjMzLCAxODIsIDI5LCAzLCAyMzMsIDE3NiwgMjksIDMsIDIzMywgMTgxLCAKKyAgICAyOSwgMywgMjMzLCAxNzcsIDI5LCAzLCAyMzMsIDE3OCwgMjksIDMsIDIzMywgMTcxLCAyOSwgMywgMjMzLCAxNjUsIDI5LCAKKyAgICAzLCAyMzMsIDE2NywgMjksIDMsIDIzMywgMTcwLCAyOSwgMywgMjMzLCAxNjgsIDI5LCAzLCAyMzMsIDE2OSwgMjksIDMsIAorICAgIDIzMywgMTY2LCAyOSwgMywgMjMzLCAxNjQsIDI5LCAzLCAyMzMsIDE2MCwgMjksIDMsIDIzMywgMTYzLCAyOSwgMywgMjMzLCAKKyAgICAxNjEsIDI5LCAzLCAyMzMsIDE2MiwgMjksIDMsIDIxMiwgNjUsIDI5LCAzLCAyMTEsIDE5NSwgMjksIDMsIDIxMSwgMjUwLCAKKyAgICAyOSwgMywgMjEyLCA2NCwgMjksIDMsIDIxMiwgMTcsIDI5LCAzLCAyMTIsIDIyLCAyOSwgMywgMjExLCAyMjcsIDI5LCAzLCAKKyAgICAyMTEsIDIyNiwgMjksIDMsIDIyNSwgMTM5LCA2MSwgMjksIDMsIDIyNSwgMTM5LCA3MCwgMjksIDMsIDIyNSwgMTM5LCA3MywgCisgICAgMjksIDMsIDIyNSwgMTM5LCAyNTUsIDczLCAyOSwgMywgMjI1LCAxMzksIDI0NSwgMjA5LCAyOSwgMywgMjI1LCAxMzksIDc1LCAKKyAgICAyOSwgMywgMjI1LCAxMzksIDc2LCAyOSwgMywgMjEwLCAxMTYsIDI5LCAzLCAyMTAsIDEzLCAyOSwgMywgMjEwLCA0NCwgMjksIAorICAgIDMsIDIxMCwgMTE1LCAyOSwgMywgMjEwLCA5MiwgMjksIDMsIDIxMCwgOTQsIDI5LCAzLCAyMTAsIDIzLCAyOSwgMywgMjEwLCAKKyAgICAwLCAyOSwgMywgMjEwLCA4MiwgMjksIDMsIDIxMCwgNjIsIDI5LCAzLCAyMTAsIDY5LCAyOSwgMywgMjEwLCA4MSwgMjksIDMsIAorICAgIDIxMCwgNzMsIDI5LCAzLCAyMTAsIDc0LCAyOSwgMywgMjEwLCA2NywgMjksIDMsIDIxMCwgNTMsIDI5LCAzLCAxOTEsIDI5LCAKKyAgICAzLCAyMTAsIDIxMiwgMjksIDMsIDIxMSwgOCwgMjksIDMsIDIxMSwgMTAzLCAyOSwgMywgMjExLCA0NCwgMjksIDMsIDIxMSwgCisgICAgNDcsIDI5LCAzLCAyMTAsIDI0NCwgMjksIDMsIDIxMCwgMjM1LCAyOSwgMywgMjQ4LCAyMjEsIDI5LCAzLCAyNDYsIDc4LCAKKyAgICAyOSwgMywgMjQ4LCAzLCAyOSwgMywgMjQ4LCAyMjAsIDI5LCAzLCAyNDgsIDc3LCAyOSwgMywgMjQ4LCA5MCwgMjksIDMsIAorICAgIDI0NywgMTQ1LCAyOSwgMywgMjQ2LCA0NywgMjksIDMsIDI0OCwgMTM1LCAyOSwgMywgMjQ4LCAxMDAsIDI5LCAzLCAyNDgsIAorICAgIDExMiwgMjksIDMsIDI0OCwgMTM0LCAyOSwgMywgMjQ4LCAxMjIsIDI5LCAzLCAyNDgsIDEyMywgMjksIDMsIDI0OCwgMTA1LCAKKyAgICAyOSwgMywgMjQ4LCA5MSwgMjksIDMsIDIzNSwgMTQxLCAyOSwgMywgMjM1LCA1MSwgMjksIDMsIDIzNSwgMTA4LCAyOSwgMywgCisgICAgMjM1LCAxNDAsIDI5LCAzLCAyMzUsIDEyNCwgMjksIDMsIDIzNSwgMTI2LCAyOSwgMywgMjM1LCA2OCwgMjksIDMsIDIzNSwgCisgICAgMzEsIDI5LCAzLCAyNDMsIDEzNSwgMjksIDMsIDI0MiwgMTEzLCAyOSwgMywgMjQyLCAyMTQsIDI5LCAzLCAyNDMsIDEzMiwgCisgICAgMjksIDMsIDI0MywgNTUsIDI5LCAzLCAyNDMsIDYyLCAyOSwgMywgMjQyLCAxNzQsIDI5LCAzLCAyNDIsIDE3MywgMjksIDMsIAorICAgIDI0MiwgNzgsIDI5LCAzLCAyNDIsIDc0LCAyOSwgMywgMjQyLCA3NywgMjksIDMsIDI0MiwgNzUsIDI5LCAzLCAyNDIsIDc2LCAKKyAgICAyOSwgMywgMjQzLCAyOSwgMjksIDMsIDI0MywgOSwgMjksIDMsIDI0MywgMTksIDI5LCAzLCAyNDMsIDI4LCAyOSwgMywgCisgICAgMjQzLCAyMywgMjksIDMsIDI0MywgMjQsIDI5LCAzLCAyNDMsIDEzLCAyOSwgMywgMjQyLCAyNTQsIDI5LCAzLCAyMTYsIAorICAgIDIwOCwgMjksIDMsIDIxNiwgMTM2LCAyOSwgMywgMjE2LCAxNzUsIDI5LCAzLCAyMTYsIDIwNywgMjksIDMsIDIxNiwgMTk0LCAKKyAgICAyOSwgMywgMjE2LCAxOTUsIDI5LCAzLCAyMTYsIDE1NiwgMjksIDMsIDIxNiwgMTI4LCAyOSwgMywgMjUwLCAxNTcsIDI5LCAKKyAgICAzLCAyNTAsIDY5LCAyOSwgMywgMjUwLCAxMTAsIDI5LCAzLCAyNTAsIDE1NiwgMjksIDMsIDI1MCwgMTI4LCAyOSwgMywgCisgICAgMjUwLCAxMzEsIDI5LCAzLCAyNTAsIDg2LCAyOSwgMywgMjUwLCA1OCwgMjksIDMsIDIyNSwgMTQ3LCAyOSwgMywgMjI1LCAKKyAgICAxMTQsIDI5LCAzLCAyMjUsIDEzMywgMjksIDMsIDIyNSwgMTQ2LCAyOSwgMywgMjI1LCAxMzUsIDI5LCAzLCAyMjUsIDEzNiwgCisgICAgMjksIDMsIDIyNSwgMTIxLCAyOSwgMywgMjI1LCAxMTAsIDI5LCAzLCAyMTUsIDE4MywgMjksIDMsIDIxNSwgMTYzLCAyOSwgCisgICAgMywgMjE1LCAxNjcsIDI5LCAzLCAyMTUsIDE4MiwgMjksIDMsIDIxNSwgMTc3LCAyOSwgMywgMjE1LCAxNzgsIDI5LCAzLCAKKyAgICAyMTUsIDE2NiwgMjksIDMsIDIxNSwgMTYxLCAyOSwgMywgMjE1LCAzOSwgMjksIDMsIDIxNSwgMzEsIDI5LCAzLCAyMTUsIAorICAgIDM1LCAyOSwgMywgMjE1LCAzOCwgMjksIDMsIDIxNSwgMzYsIDI5LCAzLCAyMTUsIDM3LCAyOSwgMywgMjE1LCAzMywgMjksIAorICAgIDMsIDIxNSwgMzIsIDI5LCAzLCAyNDQsIDE5NiwgMjksIDMsIDI0MywgMjM0LCAyOSwgMywgMjQ0LCAxMjEsIDI5LCAzLCAKKyAgICAyNDQsIDE5NSwgMjksIDMsIDI0NCwgMTQ3LCAyOSwgMywgMjQ0LCAxNTQsIDI5LCAzLCAyNDQsIDQzLCAyOSwgMywgMjQzLCAKKyAgICAyMTMsIDI5LCAzLCAxOTAsIDI5LCAzLCAyMjQsIDE1MCwgMjksIDMsIDIyNSwgMTA4LCAyOSwgMywgMjI2LCA4OSwgMjksIDMsIAorICAgIDIyNSwgMjExLCAyOSwgMywgMjI1LCAyMjEsIDI5LCAzLCAyMjUsIDE2LCAyOSwgMywgMjI0LCAxMTQsIDI5LCAzLCAyMjIsIAorICAgIDk5LCAyOSwgMywgMjMwLCAzMSwgMjksIDMsIDI0MywgMjA3LCAyOSwgMzgsIDI0MywgNTMsIDIyLCAyNSwgMjMzLCAyMywgCisgICAgNzgsIDI5LCAzOCwgMjUsIDIzMywgMjMsIDc4LCAyOSwgMzgsIDI0MywgNTMsIDc4LCAyOSwgMjIxLCAxNzMsIDc4LCAyOSwgCisgICAgMjExLCAyMDgsIDI5LCAyNDMsIDIyOSwgMjE4LCAxMjksIDI5LCAyNDksIDIxOSwgMjksIDIyMCwgMTUwLCAyOSwgMjQ5LCAKKyAgICAyMjYsIDI5LCAyMjQsIDE5OSwgMjQ5LCAyMjYsIDI5LCAyMjQsIDEzLCA3OCwgMjksIDIyNiwgMTUsIDIyMCwgMTM3LCAyOSwgCisgICAgMjEsIDExMCwgMjksIDIxLCAxMDUsIDI5LCAyMSwgMTU4LCAyOSwgMjEsIDE2MSwgMjksIDIxLCAxODksIDI5LCAyMSwgMTk0LCAKKyAgICAyOSwgMjEsIDE5OCwgMjksIDIxLCAxOTUsIDI5LCAyMSwgMjAwLCAyOSwgNTQsIDIxNiwgMjQ3LCAyOSwgNTQsIDIxNSwgNzMsIAorICAgIDI5LCA1NCwgMjE2LCAxNjIsIDI5LCA1NCwgMjQ0LCAxNSwgMjksIDU0LCAyNDQsIDExNCwgMjksIDU0LCAyMTksIDExMSwgCisgICAgMjksIDU0LCAyMjAsIDExNiwgMjksIDU0LCAyNDUsIDE4NCwgMjksIDU0LCAyMjgsIDE5NSwgMjksIDU0LCAyNDAsIDIxMCwgCisgICAgMjksIDU0LCAyMTYsIDI0OCwgMjE2LCAxNDcsIDI5LCAzLCAyMjEsIDE3NywgMjMwLCA0MiwgMjksIDMsIDIzMCwgMzgsIDI5LCAKKyAgICAzLCAyMzAsIDM5LCAyOSwgMywgMjMwLCA0MCwgMjksIDMsIDIyMSwgMTc3LCAyNTEsIDgzLCAyOSwgMywgMjUxLCA4MCwgMjksIAorICAgIDMsIDI1MSwgODEsIDI5LCAzLCAyNTEsIDgyLCAyOSwgMywgMjIxLCAxNzcsIDI0MywgMjEzLCAyOSwgMywgMjQzLCAyMDksIAorICAgIDI5LCAzLCAyNDMsIDIxMCwgMjksIDMsIDI0MywgMjExLCAyOSwgMywgMjIxLCAxNzcsIDIyNCwgMTE0LCAyOSwgMywgMjI0LCAKKyAgICAxMTAsIDI5LCAzLCAyMjQsIDExMSwgMjksIDMsIDIyNCwgMTEyLCAyOSwgMjE2LCAzMSwgMTY0LCAyMTAsIDI0NywgMjksIAorICAgIDIxNiwgMzEsIDE2NCwgMjQ4LCA0MSwgMjksIDIxNiwgMzEsIDE2NCwgMjIyLCAyMzgsIDI5LCAyMTYsIDMxLCAxNjQsIDIxOSwgCisgICAgMjUxLCAyMjIsIDIzOCwgMjksIDIxNiwgMzEsIDE2NCwgMjQ3LCAyMzUsIDI5LCAyMTYsIDMxLCAxNjQsIDIzNCwgMTY0LCAKKyAgICAyOSwgMjE2LCAzMSwgMTY0LCAyNTAsIDk0LCAyOSwgMjE2LCAzMSwgMTY0LCAyNDEsIDE3NywgMjksIDIxNiwgMzEsIDE2NCwgCisgICAgMjQ4LCA0MCwgMjksIDIxNiwgMzEsIDE2NCwgMjMzLCAxOTQsIDE2OSwgMSwgNjEsIDE2OSwgMSwgNzUsIDE2OSwgMSwgNzMsIAorICAgIDE2OSwgMSwgNzYsIDE2OSwgMSwgNzAsIDE2OSwgMSwgMjE0LCAxMDUsIDE2OSwgMSwgMjQzLCAxMzUsIDE2OSwgMSwgMTc2LCAKKyAgICAxNjksIDEsIDI0MywgNjIsIDE2OSwgMSwgMjQyLCAyMTQsIDE2OSwgMSwgMjQyLCAxNzQsIDE2OSwgMSwgMjQyLCAxMTMsIAorICAgIDE2OSwgMSwgMjQyLCA3OSwgMTY5LCAxLCAxNjIsIDE2OSwgMSwgMjQxLCAyMzgsIDE2OSwgMSwgMjQxLCAxODAsIDE2OSwgMSwgCisgICAgMjQxLCA2OCwgMTY5LCAxLCAyNDAsIDIyMiwgMTY5LCAxLCAyNDAsIDIwMSwgMTY5LCAxLCAyMzMsIDEzNSwgMTY5LCAxLCAKKyAgICAyMzMsIDU4LCAxNjksIDEsIDIzMiwgMjQxLCAxNjksIDEsIDIzMiwgMTU2LCAxNjksIDEsIDIzMiwgOTgsIDE2OSwgMSwgCisgICAgMjMyLCA3MSwgMTY5LCAxLCAxODQsIDE2OSwgMSwgMjMxLCA5MSwgMTY5LCAxLCAyMzAsIDIzMCwgMTY5LCAxLCAyMzAsIAorICAgIDE2MSwgMTY5LCAxLCAyMzAsIDEwMiwgMTY5LCAxLCAxOTcsIDE2OSwgMSwgMjQxLCA5MCwgMTY5LCAxLCAyMjksIDIxMywgCisgICAgMTY5LCAxLCAyMjksIDEwNywgMTY5LCAxLCAyMjgsIDIzMywgMTY5LCAxLCAyMjgsIDc0LCAxNjksIDEsIDIyNywgMjM3LCAKKyAgICAxNjksIDEsIDIyNywgMTc2LCAxNjksIDEsIDIyNCwgMjksIDE2OSwgMSwgMjI0LCAxNiwgMTY5LCAxLCAyMjQsIDksIDE2OSwgCisgICAgMSwgMjI0LCAxLCAxNjksIDEsIDIyMywgMjQ2LCAxNjksIDEsIDIyMywgMjQ0LCAxNjksIDEsIDIwNiwgMTY5LCAxLCAyMjIsIAorICAgIDkxLCAxNjksIDEsIDIyMSwgMTgxLCAxNjksIDEsIDIxOSwgMTkxLCAxNjksIDEsIDIxOSwgNTgsIDE2OSwgMSwgMjE4LCA4MywgCisgICAgMTY5LCAxLCAyMTgsIDIsIDE2OSwgMSwgMjQ4LCAyMjEsIDE2OSwgMSwgMjE3LCAxMDUsIDE2OSwgMSwgMjQ4LCA5MCwgMTY5LCAKKyAgICAxLCAyMTcsIDIyLCAxNjksIDEsIDI0OCwgMywgMTY5LCAxLCAyMTYsIDExNywgMTY5LCAxLCAyNDcsIDE0NSwgMTY5LCAxLCAKKyAgICAyNDYsIDc4LCAxNjksIDEsIDI0NiwgNTAsIDE2OSwgMSwgMjQ3LCAxNTYsIDE2OSwgMSwgMjE2LCA1OSwgMTY5LCAxLCAyMTYsIAorICAgIDU4LCAxNjksIDEsIDIxNiwgNDcsIDE2OSwgMSwgMjE2LCA0NiwgMTY5LCAxLCAyMTYsIDQ1LCAxNjksIDEsIDIxNiwgNDQsIAorICAgIDE2OSwgMSwgMjE1LCAxODMsIDE2OSwgMSwgMjE1LCAxNzgsIDE2OSwgMSwgMjE1LCAxNjcsIDE2OSwgMSwgMjE1LCAxNjYsIAorICAgIDE2OSwgMSwgMjE1LCAxNjMsIDE2OSwgMSwgMjE1LCAxNjIsIDE2OSwgMSwgMjEyLCA2NSwgMTY5LCAxLCAyMTIsIDIyLCAKKyAgICAxNjksIDEsIDIxMSwgMjUwLCAxNjksIDEsIDIxMSwgMjI3LCAxNjksIDEsIDIxMSwgMTk1LCAxNjksIDEsIDIxMSwgMTgzLCAKKyAgICAxNjksIDEsIDE5MSwgMTY5LCAxLCAyMTEsIDQ3LCAxNjksIDEsIDIxMSwgOCwgMTY5LCAxLCAyMTAsIDI0NCwgMTY5LCAxLCAKKyAgICAyMTAsIDIxMiwgMTY5LCAxLCAyMTAsIDE3NywgMTgsIDE5LCAyNDAsIDE2OCwgMTgsIDE5LCA3NSwgMTgsIDE5LCAyNTUsIAorICAgIDM3LCAxOCwgMTksIDczLCAxOCwgMTksIDIzNiwgMzMsIDE4LCAxOSwgNzYsIDE4LCAxOSwgMjI2LCAxODMsIDE4LCAxOSwgCisgICAgMjExLCAxMTYsIDIyNiwgMTgzLCAxOCwgMTksIDcyLCAyNDUsIDIwOSwgMTgsIDE5LCA3MiwgNzMsIDE4LCAxOSwgNjEsIDE4LCAKKyAgICAxOSwgMjU1LCA3MywgMTgsIDE5LCAyMTIsIDIyLCAxOCwgMTksIDE1OSwgMjEyLCAyMiwgMTgsIDE5LCAyMTEsIDI1MCwgMTgsIAorICAgIDE5LCAxNTksIDIxMSwgMjUwLCAxOCwgMTksIDIxMSwgMjQyLCAxOCwgMTksIDE1OSwgMjExLCAyNDIsIDE4LCAxOSwgMjExLCAKKyAgICAyMjcsIDE4LCAxOSwgMTU5LCAyMTEsIDIyNywgMTgsIDE5LCAyMTEsIDIxNSwgMTgsIDE5LCAxNTksIDIxMSwgMjE1LCAxOCwgCisgICAgMTksIDIyOSwgMTkwLCAyMTEsIDIxNSwgMTgsIDE5LCAyMTIsIDY1LCAxOCwgMTksIDE1OSwgMjEyLCA2NSwgMTgsIDE5LCAKKyAgICAyMTIsIDY0LCAxOCwgMTksIDE1OSwgMjEyLCA2NCwgMTgsIDE5LCAyMjksIDE5MCwgMjEyLCA2NCwgMTgsIDE5LCAyNTQsIAorICAgIDIwMSwgMTgsIDE5LCAyMTEsIDExNiwgMjEyLCA5OCwgMTgsIDE5LCAyNDIsIDE4MCwgMjE4LCAxMjksIDE4LCAxOSwgNDAsIAorICAgIDE0MiwgMTgsIDE5LCA0MCwgMjQyLCAxMzYsIDE4LCAxOSwgNDAsIDI1MSwgMTc1LCAxNjMsIDIyMiwgMjMzLCAxOCwgMTksIAorICAgIDQwLCAyMTYsIDE0LCAxNjMsIDIyMiwgMjMzLCAxOCwgMTksIDQwLCA0NCwgMTYzLCAyMjIsIDIzMywgMTgsIDE5LCA0MCwgCisgICAgMjIyLCAyMzMsIDE4LCAxOSwgNDAsIDUyLCAxNDIsIDE4LCAxOSwgNDAsIDUyLCAyMTksIDI1MSwgNjcsIDIxOCwgOTAsIDE4LCAKKyAgICAxOSwgNDAsIDIzMCwgMjI0LCAyNDcsIDEyMCwgMTgsIDE5LCA0MCwgMjE5LCAyNTEsIDIwMywgOTEsIDE4LCAxOSwgNDAsIAorICAgIDIyNSwgMjIsIDE4LCAxOSwgNDAsIDEyNCwgMjE3LCA4NywgMTgsIDE5LCAyNDUsIDE1MCwgMTgsIDE5LCAyMzUsIDI1NSwgCisgICAgMTgsIDE5LCAyMjYsIDE5NiwgMTgsIDE5LCAyNTQsIDEyMywgMTgsIDE5LCAyMjUsIDIyMSwgMTgsIDE5LCAyMjYsIDg3LCAKKyAgICAxOCwgMTksIDIyNSwgMTA4LCAxOCwgMTksIDIyNSwgNzEsIDE4LCAxOSwgMjI1LCAxNiwgMTgsIDE5LCAyMjQsIDI0OSwgMTgsIAorICAgIDE5LCAyMTEsIDExNiwgMjI0LCAyNDksIDE4LCAxOSwgNzIsIDI0MSwgMjIwLCAxOCwgMTksIDcyLCAyNDEsIDE4MCwgMTgsIAorICAgIDE5LCAxOTAsIDE4LCAxOSwgMjI2LCA4OSwgMTgsIDE5LCAyMjQsIDExMiwgMTgsIDE5LCAxNTksIDIyNCwgMTEyLCAxOCwgCisgICAgMTksIDIyNCwgMTEwLCAxOCwgMTksIDE1OSwgMjI0LCAxMTAsIDE4LCAxOSwgMjI0LCAxMDksIDE4LCAxOSwgMTU5LCAyMjQsIAorICAgIDEwOSwgMTgsIDE5LCAyMjQsIDEwNywgMTgsIDE5LCAxNTksIDIyNCwgMTA3LCAxOCwgMTksIDIyNCwgMTA2LCAxOCwgMTksIAorICAgIDE1OSwgMjI0LCAxMDYsIDE4LCAxOSwgMjI0LCAxMTQsIDE4LCAxOSwgMTU5LCAyMjQsIDExNCwgMTgsIDE5LCAyMjQsIDExMywgCisgICAgMTgsIDE5LCAxNTksIDIyNCwgMTEzLCAxOCwgMTksIDIxMSwgMTE2LCAyMjQsIDExMywgMTgsIDE5LCAyMjYsIDEwNSwgMTgsIAorICAgIDE5LCAxNTksIDIyNiwgMTA1LCAxOCwgMTksIDcyLCAyNDIsIDYwLCAxOCwgMTksIDIxNywgMjIsIDE4LCAxOSwgMjE3LCA5OSwgCisgICAgMTgsIDE5LCAyMTYsIDExNywgMTgsIDE5LCAyMTYsIDEwMywgMTgsIDE5LCAxMTEsIDE4LCAxOSwgMjE2LCAxNywgMTgsIDE5LCAKKyAgICAyMTEsIDExNiwgMjE2LCAxNywgMTgsIDE5LCA3MiwgMjQ4LCA3NywgMTgsIDE5LCA3MiwgMjQ4LCAzLCAxOCwgMTksIDIxNywgCisgICAgMTA1LCAxOCwgMTksIDIxNywgMTAxLCAxOCwgMTksIDIxNSwgNzgsIDE4LCAxOSwgMTU5LCAyMTUsIDc4LCAxOCwgMTksIAorICAgIDIxNSwgNjIsIDE4LCAxOSwgMTU5LCAyMTUsIDYyLCAxOCwgMTksIDIxNSwgNjEsIDE4LCAxOSwgMTU5LCAyMTUsIDYxLCAxOCwgCisgICAgMTksIDEwNSwgMTgsIDE5LCAxNTksIDEwNSwgMTgsIDE5LCAyMTUsIDU0LCAxOCwgMTksIDE1OSwgMjE1LCA1NCwgMTgsIDE5LCAKKyAgICAyMTUsIDgwLCAxOCwgMTksIDE1OSwgMjE1LCA4MCwgMTgsIDE5LCAyMTUsIDc5LCAxOCwgMTksIDE1OSwgMjE1LCA3OSwgMTgsIAorICAgIDE5LCAyMjksIDE5MCwgMjE1LCA3OSwgMTgsIDE5LCAyMTcsIDE1MiwgMTgsIDE5LCAyMTUsIDE1MSwgMTgsIDE5LCAyMTUsIAorICAgIDEzNSwgMTgsIDE5LCAyMTUsIDEzMywgMTgsIDE5LCAyMTUsIDE1NiwgMTgsIDE5LCAyMzQsIDE4MiwgMTgsIDE5LCAyMzUsIAorICAgIDcsIDE4LCAxOSwgMjM0LCA5MiwgMTgsIDE5LCAyMzQsIDgzLCAxOCwgMTksIDIzNCwgMjgsIDE4LCAxOSwgMjM0LCAxMCwgCisgICAgMTgsIDE5LCAyMTEsIDExNiwgMjM0LCAxMCwgMTgsIDE5LCAxNzYsIDE4LCAxOSwgMjM1LCAxMCwgMTgsIDE5LCAyMzMsIAorICAgIDE3OCwgMTgsIDE5LCAxNTksIDIzMywgMTc4LCAxOCwgMTksIDIzMywgMTc2LCAxOCwgMTksIDE1OSwgMjMzLCAxNzYsIDE4LCAKKyAgICAxOSwgMjMzLCAxNzUsIDE4LCAxOSwgMTU5LCAyMzMsIDE3NSwgMTgsIDE5LCAyMzMsIDE3NCwgMTgsIDE5LCAxNTksIDIzMywgCisgICAgMTc0LCAxOCwgMTksIDIzMywgMTczLCAxOCwgMTksIDE1OSwgMjMzLCAxNzMsIDE4LCAxOSwgMjMzLCAxODIsIDE4LCAxOSwgCisgICAgMTU5LCAyMzMsIDE4MiwgMTgsIDE5LCAyMzMsIDE4MSwgMTgsIDE5LCAxNTksIDIzMywgMTgxLCAxOCwgMTksIDIyOSwgMTkwLCAKKyAgICAyMzMsIDE4MSwgMTgsIDE5LCAyMzUsIDIzLCAxOCwgMTksIDIzMywgMTgzLCAxOCwgMTksIDIxOSwgMjcsIDIzNCwgMTc2LCAKKyAgICAxOCwgMTksIDIxOSwgMjcsIDIzNCwgODQsIDE4LCAxOSwgMjE5LCAyNywgMjM0LCAyMywgMTgsIDE5LCAyMTksIDI3LCAyMzQsIAorICAgIDI0OCwgMTgsIDE5LCAyNTAsIDE5MCwgMTgsIDE5LCAyNTEsIDMxLCAxOCwgMTksIDI1MCwgNTEsIDE4LCAxOSwgMjUwLCA0MSwgCisgICAgMTgsIDE5LCAyNDksIDIzOCwgMTgsIDE5LCAyNDksIDE3NCwgMTgsIDE5LCAyMTEsIDExNiwgMjQ5LCAxNzQsIDE4LCAxOSwgCisgICAgMjUxLCAzMywgMTgsIDE5LCAyNTEsIDMyLCAxOCwgMTksIDI0OSwgNzksIDE4LCAxOSwgMTU5LCAyNDksIDc5LCAxOCwgMTksIAorICAgIDI0OSwgNzcsIDE4LCAxOSwgMTU5LCAyNDksIDc3LCAxOCwgMTksIDI0OSwgNzYsIDE4LCAxOSwgMTU5LCAyNDksIDc2LCAxOCwgCisgICAgMTksIDI0OSwgNzUsIDE4LCAxOSwgMTU5LCAyNDksIDc1LCAxOCwgMTksIDI0OSwgNzQsIDE4LCAxOSwgMTU5LCAyNDksIDc0LCAKKyAgICAxOCwgMTksIDI0OSwgODEsIDE4LCAxOSwgMTU5LCAyNDksIDgxLCAxOCwgMTksIDI0OSwgODAsIDE4LCAxOSwgMTU5LCAyNDksIAorICAgIDgwLCAxOCwgMTksIDIyOSwgMTkwLCAyNDksIDgwLCAxOCwgMTksIDI1MSwgNjYsIDE4LCAxOSwgMjIxLCAyMDksIDIxNiwgCisgICAgMjEwLCAxOCwgMTksIDIzMSwgOTEsIDE4LCAxOSwgMjMxLCAyMzYsIDE4LCAxOSwgMjMwLCAyMzAsIDE4LCAxOSwgMjMwLCAKKyAgICAyMDEsIDE4LCAxOSwgMjMwLCAxNjEsIDE4LCAxOSwgMjMwLCAxMzIsIDE4LCAxOSwgMjExLCAxMTYsIDIzMCwgMTMyLCAxOCwgCisgICAgMTksIDE4NCwgMTgsIDE5LCAyMzEsIDIzNywgMTgsIDE5LCAyMzAsIDQwLCAxOCwgMTksIDE1OSwgMjMwLCA0MCwgMTgsIDE5LCAKKyAgICAyMzAsIDM4LCAxOCwgMTksIDE1OSwgMjMwLCAzOCwgMTgsIDE5LCAyMzAsIDM3LCAxOCwgMTksIDE1OSwgMjMwLCAzNywgMTgsIAorICAgIDE5LCAyMzAsIDM2LCAxOCwgMTksIDE1OSwgMjMwLCAzNiwgMTgsIDE5LCAyMzAsIDM1LCAxOCwgMTksIDE1OSwgMjMwLCAzNSwgCisgICAgMTgsIDE5LCAyMzAsIDQyLCAxOCwgMTksIDE1OSwgMjMwLCA0MiwgMTgsIDE5LCAyMzAsIDQxLCAxOCwgMTksIDE1OSwgMjMwLCAKKyAgICA0MSwgMTgsIDE5LCAyMjksIDE5MCwgMjMwLCA0MSwgMTgsIDE5LCAxOTMsIDE4LCAxOSwgMTU5LCAxOTMsIDE4LCAxOSwgCisgICAgMjMwLCAyMzQsIDE4LCAxOSwgMjUzLCAyMDUsIDE5MywgMTgsIDE5LCAyMjEsIDIwOSwgMTkzLCAxOCwgMTksIDIyOSwgMTA3LCAKKyAgICAxOCwgMTksIDIyOSwgMjI0LCAxOCwgMTksIDIyOCwgMjMzLCAxOCwgMTksIDIyOCwgMjA4LCAxOCwgMTksIDIyOCwgNzQsIAorICAgIDE4LCAxOSwgMjI4LCA2NCwgMTgsIDE5LCAyMTEsIDExNiwgMjI4LCA2NCwgMTgsIDE5LCAxOTcsIDE4LCAxOSwgMjI5LCAKKyAgICAyMjUsIDE4LCAxOSwgMjI3LCAxNzIsIDE4LCAxOSwgMTU5LCAyMjcsIDE3MiwgMTgsIDE5LCAyMjcsIDE3NCwgMTgsIDE5LCAKKyAgICAxNTksIDIyNywgMTc0LCAxOCwgMTksIDIyNywgMTczLCAxOCwgMTksIDE1OSwgMjI3LCAxNzMsIDE4LCAxOSwgMjI5LCAxOTAsIAorICAgIDIyNywgMTczLCAxOCwgMTksIDIzMCwgMjUsIDE4LCAxOSwgNzIsIDIyOSwgNzksIDE4LCAxOSwgMjI4LCAyMzgsIDE4LCAxOSwgCisgICAgMjMzLCA1OCwgMTgsIDE5LCAyMzMsIDEzMywgMTgsIDE5LCAyMzIsIDI0MSwgMTgsIDE5LCAyMzIsIDIyNywgMTgsIDE5LCAKKyAgICAyMzIsIDE1NiwgMTgsIDE5LCAyMzIsIDEyNywgMTgsIDE5LCAyMTEsIDExNiwgMjMyLCAxMjcsIDE4LCAxOSwgMjMzLCAxMzUsIAorICAgIDE4LCAxOSwgMjMzLCAxMzQsIDE4LCAxOSwgMjMyLCA2OCwgMTgsIDE5LCAxNTksIDIzMiwgNjgsIDE4LCAxOSwgMjMyLCA2NywgCisgICAgMTgsIDE5LCAxNTksIDIzMiwgNjcsIDE4LCAxOSwgMjMyLCA2NiwgMTgsIDE5LCAxNTksIDIzMiwgNjYsIDE4LCAxOSwgMjMyLCAKKyAgICA2NSwgMTgsIDE5LCAxNTksIDIzMiwgNjUsIDE4LCAxOSwgMjMyLCA2NCwgMTgsIDE5LCAxNTksIDIzMiwgNjQsIDE4LCAxOSwgCisgICAgMjMyLCA3MCwgMTgsIDE5LCAxNTksIDIzMiwgNzAsIDE4LCAxOSwgMjMyLCA2OSwgMTgsIDE5LCAxNTksIDIzMiwgNjksIDE4LCAKKyAgICAxOSwgMTU2LCAxOCwgMTksIDE1OSwgMTU2LCAxOCwgMTksIDE0NywgMTU2LCAxOCwgMTksIDIyMSwgMTgxLCAxOCwgMTksIAorICAgIDIyMiwgMjksIDE4LCAxOSwgMjE5LCAxOTEsIDE4LCAxOSwgMjE5LCAxNzUsIDE4LCAxOSwgMjE5LCA1OCwgMTgsIDE5LCAKKyAgICAyMTksIDQwLCAxOCwgMTksIDIxMSwgMTE2LCAyMTksIDQwLCAxOCwgMTksIDIwNiwgMTgsIDE5LCAyMjIsIDMxLCAxOCwgMTksIAorICAgIDIxNywgMjQ5LCAxOCwgMTksIDE1OSwgMjE3LCAyNDksIDE4LCAxOSwgMjE3LCAyNDMsIDE4LCAxOSwgMTU5LCAyMTcsIDI0MywgCisgICAgMTgsIDE5LCAyMTcsIDI0MiwgMTgsIDE5LCAxNTksIDIxNywgMjQyLCAxOCwgMTksIDIxNywgMjM4LCAxOCwgMTksIDE1OSwgCisgICAgMjE3LCAyMzgsIDE4LCAxOSwgMjE3LCAyMzcsIDE4LCAxOSwgMTU5LCAyMTcsIDIzNywgMTgsIDE5LCAyMTcsIDI1MywgMTgsIAorICAgIDE5LCAxNTksIDIxNywgMjUzLCAxOCwgMTksIDIxNywgMjUyLCAxOCwgMTksIDE1OSwgMjE3LCAyNTIsIDE4LCAxOSwgMjI5LCAKKyAgICAxOTAsIDIxNywgMjUyLCAxOCwgMTksIDIyMiwgOTEsIDE4LCAxOSwgMjUzLCAyMDUsIDIyMiwgOTEsIDE4LCAxOSwgMjE3LCAKKyAgICAyNTQsIDE4LCAxOSwgMjUxLCAyMTgsIDIyMiwgOTEsIDE4LCAxOSwgMjMwLCAxMjcsIDIxOSwgMTA4LCAxOCwgMTksIDIyOSwgCisgICAgMTkwLCAyMTksIDk5LCAxOCwgMTksIDIyOSwgMTkwLCAyMjIsIDg5LCAxOCwgMTksIDIyOSwgMTkwLCAyMTgsIDIzNSwgMTgsIAorICAgIDE5LCAyMjksIDE5MCwgMjE4LCA4NiwgMTgsIDE5LCAyMjksIDE5MCwgMjE5LCA5OCwgMTgsIDE5LCAyMjksIDE5MCwgMjIxLCAKKyAgICAxODQsIDE4LCAxOSwgMjIwLCA2MywgMTgsIDE5LCAyMjAsIDMyLCAxOCwgMTksIDIyMCwgMjcsIDE4LCAxOSwgMjIwLCA3LCAKKyAgICAxOCwgMTksIDIyMCwgMSwgMTgsIDE5LCAyMjAsIDEwMiwgMTgsIDE5LCAyMjAsIDk4LCAxOCwgMTksIDIxOSwgMjA2LCAxOCwgCisgICAgMTksIDE1OSwgMjE5LCAyMDYsIDE4LCAxOSwgMjE5LCAyMDUsIDE4LCAxOSwgMTU5LCAyMTksIDIwNSwgMTgsIDE5LCAyMTksIAorICAgIDIwNCwgMTgsIDE5LCAxNTksIDIxOSwgMjA0LCAxOCwgMTksIDIxOSwgMjAzLCAxOCwgMTksIDE1OSwgMjE5LCAyMDMsIDE4LCAKKyAgICAxOSwgMjE5LCAyMDIsIDE4LCAxOSwgMTU5LCAyMTksIDIwMiwgMTgsIDE5LCAyMTksIDIwOCwgMTgsIDE5LCAxNTksIDIxOSwgCisgICAgMjA4LCAxOCwgMTksIDIxOSwgMjA3LCAxOCwgMTksIDE1OSwgMjE5LCAyMDcsIDE4LCAxOSwgMjIwLCAxMDQsIDE4LCAxOSwgCisgICAgMjExLCA0NywgMTgsIDE5LCAyMTEsIDEwMSwgMTgsIDE5LCAyMTEsIDgsIDE4LCAxOSwgMjEwLCAyNTUsIDE4LCAxOSwgMjEwLCAKKyAgICAyNDQsIDE4LCAxOSwgMjEwLCAyMjksIDE4LCAxOSwgMjExLCAxMTYsIDIxMCwgMjI5LCAxOCwgMTksIDE5MSwgMTgsIDE5LCAKKyAgICAyMTEsIDEwMywgMTgsIDE5LCAyMTAsIDE3NCwgMTgsIDE5LCAxNTksIDIxMCwgMTc0LCAxOCwgMTksIDIxMCwgMTczLCAxOCwgCisgICAgMTksIDE1OSwgMjEwLCAxNzMsIDE4LCAxOSwgMjEwLCAxNzIsIDE4LCAxOSwgMTU5LCAyMTAsIDE3MiwgMTgsIDE5LCAyMTAsIAorICAgIDE3MSwgMTgsIDE5LCAxNTksIDIxMCwgMTcxLCAxOCwgMTksIDIxMCwgMTcwLCAxOCwgMTksIDE1OSwgMjEwLCAxNzAsIDE4LCAKKyAgICAxOSwgMjEwLCAxNzYsIDE4LCAxOSwgMTU5LCAyMTAsIDE3NiwgMTgsIDE5LCAyMTAsIDE3NSwgMTgsIDE5LCAxNTksIDIxMCwgCisgICAgMTc1LCAxOCwgMTksIDIyOSwgMTkwLCAyMTAsIDE3NSwgMTgsIDE5LCAyMTEsIDExNywgMTgsIDE5LCAyNTIsIDQsIDIxMSwgCisgICAgMTE3LCAxOCwgMTksIDE1OSwgMjExLCAxMTcsIDE4LCAxOSwgMjIxLCAyMDksIDIxMSwgOCwgMTgsIDE5LCAyMjMsIDEyOCwgCisgICAgMTgsIDE5LCAyMjMsIDIyMywgMjIzLCAxMjgsIDE4LCAxOSwgMTU5LCAyMzMsIDU4LCAxOCwgMTksIDIyMywgMTgzLCAxOCwgCisgICAgMTksIDIyMywgMzUsIDE4LCAxOSwgMjIyLCAyMzksIDE4LCAxOSwgMjIyLCAyMTEsIDE4LCAxOSwgMjIyLCAxOTcsIDE4LCAKKyAgICAxOSwgMTU5LCAyMzIsIDE1NiwgMTgsIDE5LCAyMDUsIDE4LCAxOSwgMjIzLCAxODQsIDE4LCAxOSwgMTU5LCAyMzMsIDEzNSwgCisgICAgMTgsIDE5LCAyMjIsIDEwOCwgMTgsIDE5LCAxNTksIDIyMiwgMTA4LCAxOCwgMTksIDE1MywgMTgsIDE5LCAxNTksIDE1MywgCisgICAgMTgsIDE5LCAxNDcsIDE1MywgMTgsIDE5LCAyNDQsIDE1NCwgMTgsIDE5LCAyNDQsIDE5MywgMTgsIDE5LCAyNDQsIDEyMSwgCisgICAgMTgsIDE5LCAyNDQsIDEwOCwgMTgsIDE5LCAyNDQsIDQzLCAxOCwgMTksIDI0NCwgMzQsIDE4LCAxOSwgMjQ0LCAxOTYsIDE4LCAKKyAgICAxOSwgMjQ0LCAxOTUsIDE4LCAxOSwgMjQzLCAyMTIsIDE4LCAxOSwgMTU5LCAyNDMsIDIxMiwgMTgsIDE5LCAyNDUsIDYsIAorICAgIDE4LCAxOSwgMjE2LCAxOTUsIDE4LCAxOSwgMjMwLCAyMywgMjE2LCAxOTUsIDE4LCAxOSwgMjE2LCAxNzUsIDE4LCAxOSwgCisgICAgMjMwLCAyMywgMjE2LCAxNzUsIDE4LCAxOSwgMjE2LCAxNzEsIDE4LCAxOSwgMjMwLCAyMywgMjE2LCAxNzEsIDE4LCAxOSwgCisgICAgMjE2LCAxNTYsIDE4LCAxOSwgMjE2LCAxNTMsIDE4LCAxOSwgMjE2LCAyMDgsIDE4LCAxOSwgMjE2LCAyMDcsIDE4LCAxOSwgCisgICAgMjE2LCAxMjcsIDE4LCAxOSwgMTU5LCAyMTYsIDEyNywgMTgsIDE5LCAyMTYsIDIxMCwgMTgsIDE5LCAyMTUsIDE0MiwgMTgsIAorICAgIDE5LCAyMTUsIDE0MCwgMTgsIDE5LCAyMTUsIDEzOSwgMTgsIDE5LCAyMTUsIDE0NCwgMTgsIDE5LCAyMTUsIDE0NSwgMTgsIAorICAgIDE5LCAyMTUsIDUyLCAxOCwgMTksIDIxNSwgNTEsIDE4LCAxOSwgMjE1LCA1MCwgMTgsIDE5LCAyMTUsIDUzLCAxOCwgMTksIAorICAgIDIyNywgMTkzLCAyNDEsIDIzOCwgMTgsIDE5LCAyMjcsIDE5MywgMjQxLCAxODAsIDE4LCAxOSwgMjI3LCAxOTMsIDI0MSwgCisgICAgMTYxLCAxOCwgMTksIDIyNywgMTkzLCAyNDEsIDY4LCAxOCwgMTksIDIyNywgMTkzLCAyNDEsIDUzLCAxOCwgMTksIDIyNywgCisgICAgMTkzLCAxNjIsIDE4LCAxOSwgMjI3LCAxOTMsIDI0MiwgNDYsIDE4LCAxOSwgMjI3LCAxOTMsIDI0MiwgNjAsIDE4LCAxOSwgCisgICAgMjI3LCAxOTIsIDI0MiwgNjAsIDE4LCAxOSwgMjQxLCAxNTQsIDE4LCAxOSwgMjI0LCA4NCwgMTgsIDE5LCAyMjQsIDUzLCAKKyAgICAxOCwgMTksIDIyNCwgNDgsIDE4LCAxOSwgMjI0LCA0MiwgMTgsIDE5LCAyMjQsIDM3LCAxOCwgMTksIDIyNCwgODgsIDE4LCAKKyAgICAxOSwgMjI0LCA4NywgMTgsIDE5LCAyMjQsIDk2LCAxOCwgMTksIDIxNiwgNTUsIDE4LCAxOSwgMjE2LCA1MywgMTgsIDE5LCAKKyAgICAyMTYsIDUyLCAxOCwgMTksIDIxNiwgNTYsIDE4LCAxOSwgMTU5LCAyMjMsIDEyOCwgMTgsIDE5LCAxNTksIDIyMywgMzUsIAorICAgIDE4LCAxOSwgMTU5LCAyMjIsIDIxMSwgMTgsIDE5LCAxNTksIDIwNSwgMTgsIDE5LCAyMjksIDc1LCAxOCwgMTksIDIyOSwgCisgICAgMjcsIDE4LCAxOSwgMjI5LCAyMywgMTgsIDE5LCAyMjksIDQsIDE4LCAxOSwgMjI4LCAyNTUsIDE4LCAxOSwgMjI5LCA3NywgCisgICAgMTgsIDE5LCAyMjksIDc2LCAxOCwgMTksIDIyOSwgNzksIDE4LCAxOSwgMjI4LCAxMDMsIDE4LCAxOSwgMjIxLCAyMDksIAorICAgIDIyMCwgNjMsIDE4LCAxOSwgMjIxLCAyMDksIDIyMCwgMzIsIDE4LCAxOSwgMjIxLCAyMDksIDIyMCwgNywgMTgsIDE5LCAKKyAgICAyMjEsIDIwOSwgMjIwLCAxMDIsIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMTk1LCAxOCwgMTksIDIxMSwgMjEzLCAyMTYsIAorICAgIDE3NSwgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAxNTYsIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMjA4LCAxOCwgMTksIDIxMSwgCisgICAgMjEzLCAyMTYsIDIxMCwgMTgsIDE5LCAyMzIsIDI0OCwgMTgsIDE5LCAyMzIsIDI0NywgMTgsIDE5LCAyMzIsIDI0NiwgMTgsIAorICAgIDE5LCAyMzIsIDI0NSwgMTgsIDE5LCAyMzIsIDI1NCwgMTgsIDE5LCAyMzIsIDI1MywgMTgsIDE5LCAyMzIsIDI1NSwgMTgsIAorICAgIDE5LCAyMTYsIDIwOSwgMjE2LCAxOTUsIDE4LCAxOSwgMjE2LCAyMDksIDIxNiwgMTc1LCAxOCwgMTksIDIxNiwgMjA5LCAKKyAgICAyMTYsIDE3MSwgMTgsIDE5LCAyMTYsIDIwOSwgMjE2LCAxNTYsIDE4LCAxOSwgMjE2LCAyMDksIDIxNiwgMTUzLCAxOCwgMTksIAorICAgIDIxNiwgMjA5LCAyMTYsIDIwOCwgMTgsIDE5LCAyMTYsIDIwOSwgMjE2LCAyMDcsIDE4LCAxOSwgMjE2LCAyMDksIDIxNiwgCisgICAgMjEwLCAxOCwgMTksIDI1NCwgMTg5LCAyNTMsIDE1OCwgMTgsIDE5LCAyNTEsIDIxOCwgNzUsIDE4LCAxOSwgMjUxLCAyMTgsIAorICAgIDczLCAxOCwgMTksIDI1MSwgMjE4LCA3NiwgMTgsIDE5LCAyNTEsIDIxOCwgNjEsIDE4LCAxOSwgMjUxLCAyMTgsIDIxMiwgCisgICAgMjIsIDE4LCAxOSwgMjUxLCAyMTgsIDIxMSwgMjUwLCAxOCwgMTksIDI1MSwgMjE4LCAyMTEsIDIyNywgMTgsIDE5LCAyNTEsIAorICAgIDIxOCwgMjEyLCA2NSwgMTgsIDE5LCAyNTEsIDIxOCwgMjI5LCAxMDcsIDE4LCAxOSwgMjUxLCAyMTgsIDIyOCwgMjMzLCAxOCwgCisgICAgMTksIDI1MSwgMjE4LCAyMjgsIDc0LCAxOCwgMTksIDI1MSwgMjE4LCAxOTcsIDE4LCAxOSwgMjUxLCAyMTgsIDIzNCwgMTgyLCAKKyAgICAxOCwgMTksIDI1MSwgMjE4LCAyMzQsIDkyLCAxOCwgMTksIDI1MSwgMjE4LCAyMzQsIDI4LCAxOCwgMTksIDI1MSwgMjE4LCAKKyAgICAxNzYsIDE4LCAxOSwgMjIxLCAyMDksIDI0MSwgMjM4LCAxOCwgMTksIDIyMSwgMjA5LCAyNDEsIDE4MCwgMTgsIDE5LCAyMjEsIAorICAgIDIwOSwgMjQxLCA2OCwgMTgsIDE5LCAyMjEsIDIwOSwgMTYyLCAxOCwgMTksIDcyLCAyNDIsIDIyMCwgMTgsIDE5LCA3MiwgCisgICAgMjQyLCAyMjQsIDE4LCAxOSwgNzIsIDI0MiwgMjM2LCAxOCwgMTksIDcyLCAyNDIsIDIzNSwgMTgsIDE5LCA3MiwgMjQyLCAKKyAgICAyMjUsIDE4LCAxOSwgNzIsIDI0MiwgMjQ5LCAxOCwgMTksIDcyLCAyMjIsIDE0MCwgMTgsIDE5LCA3MiwgMjIyLCAyMTEsIAorICAgIDE4LCAxOSwgNzIsIDIyMywgMTI4LCAxOCwgMTksIDcyLCAyMjMsIDEwOCwgMTgsIDE5LCA3MiwgMjIzLCAzNSwgMTgsIDE5LCAKKyAgICA3MiwgMjA1LCAxOCwgMTksIDcyLCAyMTEsIDE5NSwgMTgsIDE5LCA3MiwgMjExLCAyMjcsIDE4LCAxOSwgNzIsIDIxMiwgMjIsIAorICAgIDE4LCAxOSwgNzIsIDIxMiwgMTcsIDE4LCAxOSwgNzIsIDIxMSwgMjUwLCAxOCwgMTksIDcyLCAyMTIsIDY1LCAxOCwgMTksIAorICAgIDcyLCAyNDAsIDE5NCwgMTgsIDE5LCA3MiwgMjQwLCAxOTUsIDE4LCAxOSwgNzIsIDI0MCwgMTk4LCAxOCwgMTksIDcyLCAKKyAgICAyNDAsIDE5NywgMTgsIDE5LCA3MiwgMjQwLCAxOTYsIDE4LCAxOSwgNzIsIDI0MCwgMjAwLCAxOCwgMTksIDcyLCAyMTYsIAorICAgIDEzNiwgMTgsIDE5LCA3MiwgMjE2LCAxNTYsIDE4LCAxOSwgNzIsIDIxNiwgMTk1LCAxOCwgMTksIDcyLCAyMTYsIDE5NCwgCisgICAgMTgsIDE5LCA3MiwgMjE2LCAxNzUsIDE4LCAxOSwgNzIsIDIxNiwgMjA4LCAxOCwgMTksIDcyLCAyMTUsIDEyMywgMTgsIDE5LCAKKyAgICA3MiwgMjE1LCAxMzMsIDE4LCAxOSwgNzIsIDIxNSwgMTUxLCAxOCwgMTksIDcyLCAyMTUsIDE1MCwgMTgsIDE5LCA3MiwgCisgICAgMjE1LCAxMzUsIDE4LCAxOSwgNzIsIDIxNSwgMTU2LCAxOCwgMTksIDcyLCAyMjQsIDE1MCwgMTgsIDE5LCA3MiwgMjI1LCAKKyAgICAxNiwgMTgsIDE5LCA3MiwgMjI1LCAyMjEsIDE4LCAxOSwgNzIsIDIyNSwgMjExLCAxOCwgMTksIDcyLCAyMjUsIDEwOCwgMTgsIAorICAgIDE5LCA3MiwgMTkwLCAxOCwgMTksIDcyLCAyMjYsIDEwNSwgMTgsIDE5LCA3MiwgMjQyLCAxMTMsIDE4LCAxOSwgNzIsIDI0MiwgCisgICAgMTc0LCAxOCwgMTksIDcyLCAyNDMsIDYyLCAxOCwgMTksIDcyLCAyNDMsIDU1LCAxOCwgMTksIDcyLCAyNDIsIDIxNCwgMTgsIAorICAgIDE5LCA3MiwgMjQzLCAxMzUsIDE4LCAxOSwgNzIsIDIzNCwgMTAwLCAxOCwgMTksIDcyLCAyMzQsIDEwNSwgMTgsIDE5LCA3MiwgCisgICAgMjM0LCAxMTksIDE4LCAxOSwgNzIsIDIzNCwgMTE4LCAxOCwgMTksIDcyLCAyMzQsIDExMiwgMTgsIDE5LCA3MiwgMjM0LCAKKyAgICAxMzIsIDE4LCAxOSwgNzIsIDIzNCwgNDEsIDE4LCAxOSwgNzIsIDIzNCwgNDIsIDE4LCAxOSwgNzIsIDIzNCwgNDUsIDE4LCAKKyAgICAxOSwgNzIsIDIzNCwgNDQsIDE4LCAxOSwgNzIsIDIzNCwgNDMsIDE4LCAxOSwgNzIsIDIzNCwgNDYsIDE4LCAxOSwgNzIsIAorICAgIDIzNCwgNDcsIDE4LCAxOSwgNzIsIDIyNywgMjM3LCAxOCwgMTksIDcyLCAyMjgsIDc0LCAxOCwgMTksIDcyLCAyMjksIDEwNywgCisgICAgMTgsIDE5LCA3MiwgMjI5LCAxMDMsIDE4LCAxOSwgNzIsIDIyOCwgMjMzLCAxOCwgMTksIDcyLCAxOTcsIDE4LCAxOSwgNzIsIAorICAgIDIzMCwgMTAyLCAxOCwgMTksIDcyLCAyMzAsIDE2MSwgMTgsIDE5LCA3MiwgMjMxLCA5MSwgMTgsIDE5LCA3MiwgMjMxLCA4MCwgCisgICAgMTgsIDE5LCA3MiwgMjMwLCAyMzAsIDE4LCAxOSwgNzIsIDE4NCwgMTgsIDE5LCA3MiwgMjEwLCAyMTIsIDE4LCAxOSwgNzIsIAorICAgIDIxMCwgMjQ0LCAxOCwgMTksIDcyLCAyMTEsIDQ3LCAxOCwgMTksIDcyLCAyMTEsIDQ0LCAxOCwgMTksIDcyLCAyMTEsIDgsIAorICAgIDE4LCAxOSwgNzIsIDE5MSwgMTgsIDE5LCA3MiwgMjM1LCA1MSwgMTgsIDE5LCAyMjEsIDIwOSwgMjM1LCA1MSwgMTgsIDE5LCAKKyAgICA3MiwgMjM1LCA2OCwgMTgsIDE5LCA3MiwgMjM1LCAxMjYsIDE4LCAxOSwgNzIsIDIzNSwgMTI0LCAxOCwgMTksIDcyLCAyMzUsIAorICAgIDEwOCwgMTgsIDE5LCAyMjEsIDIwOSwgMjM1LCAxMDgsIDE4LCAxOSwgNzIsIDIzNSwgMTQxLCAxOCwgMTksIDcyLCAyMzUsIAorICAgIDgxLCAxOCwgMTksIDcyLCAyMzUsIDg1LCAxOCwgMTksIDcyLCAyMzUsIDk1LCAxOCwgMTksIDcyLCAyMzUsIDk0LCAxOCwgCisgICAgMTksIDcyLCAyMzUsIDkzLCAxOCwgMTksIDcyLCAyMzUsIDk2LCAxOCwgMTksIDcyLCAyMzIsIDk4LCAxOCwgMTksIDcyLCAKKyAgICAyMzIsIDE1NiwgMTgsIDE5LCA3MiwgMjMzLCA1OCwgMTgsIDE5LCA3MiwgMjMzLCA1MCwgMTgsIDE5LCA3MiwgMjMyLCAyNDEsIAorICAgIDE4LCAxOSwgNzIsIDIzMywgMTM1LCAxOCwgMTksIDcyLCAyNDcsIDE0OSwgMTgsIDE5LCA3MiwgMjQ3LCAxNTAsIDE4LCAxOSwgCisgICAgNzIsIDI0NywgMTU1LCAxOCwgMTksIDcyLCAyNDcsIDE1NCwgMTgsIDE5LCA3MiwgMjQ3LCAxNTEsIDE4LCAxOSwgNzIsIAorICAgIDI0NywgMTU2LCAxOCwgMTksIDcyLCAyMzIsIDI0NCwgMTgsIDE5LCA3MiwgMjMyLCAyNDYsIDE4LCAxOSwgNzIsIDIzMiwgCisgICAgMjUwLCAxOCwgMTksIDcyLCAyMzIsIDI0OSwgMTgsIDE5LCA3MiwgMjMyLCAyNDgsIDE4LCAxOSwgNzIsIDIzMiwgMjU0LCAKKyAgICAxOCwgMTksIDcyLCAyMTYsIDUwLCAxOCwgMTksIDcyLCAyMTYsIDUyLCAxOCwgMTksIDcyLCAyMTYsIDU1LCAxOCwgMTksIAorICAgIDcyLCAyMTYsIDU0LCAxOCwgMTksIDcyLCAyMTYsIDUzLCAxOCwgMTksIDcyLCAyMTYsIDU2LCAxOCwgMTksIDcyLCAyMTYsIAorICAgIDQ1LCAxOCwgMTksIDcyLCAyMTYsIDQ2LCAxOCwgMTksIDcyLCAyMTYsIDU4LCAxOCwgMTksIDcyLCAyMTYsIDU3LCAxOCwgCisgICAgMTksIDcyLCAyMTYsIDQ3LCAxOCwgMTksIDcyLCAyMTYsIDU5LCAxOCwgMTksIDcyLCAyMTAsIDEzLCAxOCwgMTksIDcyLCAKKyAgICAyMTAsIDIzLCAxOCwgMTksIDcyLCAyMTAsIDk0LCAxOCwgMTksIDcyLCAyMTAsIDkyLCAxOCwgMTksIDcyLCAyMTAsIDQ0LCAKKyAgICAxOCwgMTksIDcyLCAyMTAsIDExNiwgMTgsIDE5LCA3MiwgMjEwLCAxNTksIDE4LCAxOSwgNzIsIDY1LCAyMTAsIDE1OSwgMTgsIAorICAgIDE5LCA3MiwgMjQ2LCAyOCwgMTgsIDE5LCA3MiwgMjQ2LCAyOSwgMTgsIDE5LCA3MiwgMjQ2LCAzNiwgMTgsIDE5LCA3MiwgCisgICAgMjQ2LCAzNSwgMTgsIDE5LCA3MiwgMjQ2LCAzMSwgMTgsIDE5LCA3MiwgMjQ2LCAzOCwgMTgsIDE5LCA3MiwgMjE4LCA4MywgCisgICAgMTgsIDE5LCA3MiwgMjE5LCA1OCwgMTgsIDE5LCA3MiwgMjIxLCAxODEsIDE4LCAxOSwgNzIsIDIyMSwgMTcwLCAxOCwgMTksIAorICAgIDcyLCAyMTksIDE5MSwgMTgsIDE5LCA3MiwgMjA2LCAxOCwgMTksIDcyLCAyMTksIDIyNSwgMTgsIDE5LCA3MiwgMjIwLCA3LCAKKyAgICAxOCwgMTksIDcyLCAyMjAsIDYzLCAxOCwgMTksIDcyLCAyMjAsIDYxLCAxOCwgMTksIDcyLCAyMjAsIDMyLCAxOCwgMTksIAorICAgIDcyLCAyMjAsIDEwMiwgMTgsIDE5LCA3MiwgMjIwLCAxMDQsIDE4LCAxOSwgNzIsIDIxNSwgMTYzLCAxOCwgMTksIDcyLCAKKyAgICAyMTUsIDE2NiwgMTgsIDE5LCA3MiwgMjE1LCAxNzgsIDE4LCAxOSwgNzIsIDIxNSwgMTc3LCAxOCwgMTksIDcyLCAyMTUsIAorICAgIDE2NywgMTgsIDE5LCA3MiwgMjE1LCAxODMsIDE4LCAxOSwgNzIsIDI1MCwgNjksIDE4LCAxOSwgNzIsIDI1MCwgODYsIDE4LCAKKyAgICAxOSwgNzIsIDI1MCwgMTMxLCAxOCwgMTksIDcyLCAyNTAsIDEyOCwgMTgsIDE5LCA3MiwgMjUwLCAxMTAsIDE4LCAxOSwgNzIsIAorICAgIDI1MCwgMTU3LCAxOCwgMTksIDcyLCAyMTUsIDEyNiwgMTgsIDE5LCA3MiwgMjE1LCAxMjcsIDE4LCAxOSwgNzIsIDIxNSwgCisgICAgMTMwLCAxOCwgMTksIDcyLCAyMTUsIDEyOSwgMTgsIDE5LCA3MiwgMjE1LCAxMjgsIDE4LCAxOSwgNzIsIDIxNSwgMTMxLCAKKyAgICAxOCwgMTksIDI1MCwgMTExLCA1MCwgMTgsIDE5LCAyNDMsIDIyOSwgMjE4LCAxMjksIDE4LCAxOSwgMjI0LCA4MCwgMTgsIAorICAgIDE5LCAyMjksIDczLCAxOCwgMTksIDIyOCwgMTAwLCAxOCwgMTksIDIyOCwgOTksIDE4LCAxOSwgMjI4LCA5OCwgMTgsIDE5LCAKKyAgICAyMjgsIDk3LCAxOCwgMTksIDIyOCwgMTAyLCAxOCwgMTksIDIyOCwgMTAxLCAxOCwgMTksIDIxMSwgMjEzLCAyMTYsIDEyNSwgCisgICAgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAxMjQsIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMTIzLCAxOCwgMTksIDIxMSwgMjEzLCAKKyAgICAyMTYsIDEyMiwgMTgsIDE5LCAyMTEsIDIxMywgMjE2LCAxMjEsIDE4LCAxOSwgMjExLCAyMTMsIDIxNiwgMTI4LCAxOCwgMTksIAorICAgIDIxMSwgMjEzLCAyMTYsIDEyNywgMTgsIDE5LCAyMTEsIDIxMywgNDAsIDIxNiwgMjEwLCAxOCwgMTksIDI1MSwgMjE4LCAKKyAgICAyMTIsIDk4LCAyMjYsIDIyNiwgMjE5LCAxOSwgNzgsIDIyNiwgMjI2LCAxLCAyNTIsIDQ4LCAyMjYsIDIyNiwgMSwgMjMyLCAKKyAgICA4NywgMjI2LCAyMjYsIDEsIDI0NCwgMTUxLCAyMjYsIDIyNiwgMSwgMjIyLCAxNSwgMjI2LCAyMjYsIDEsIDIyOCwgMTkzLCAKKyAgICAyMjYsIDIyNiwgMSwgMjE0LCAyMjYsIDIyNiwgMjI2LCAxLCAyNDgsIDE5NywgMjI2LCAyMjYsIDEsIDIxNiwgODAsIDIyNiwgCisgICAgMjI2LCAxLCAyNDksIDIyOSwgMjI2LCAyMjYsIDEsIDI1MCwgMTgwLCAyMjYsIDIyNiwgMSwgMjMwLCA5MSwgMjI2LCAyMjYsIAorICAgIDEsIDI0MiwgMTU2LCAyMjYsIDIyNiwgMSwgMjI5LCA2MywgMjI2LCAyMjYsIDEsIDIxOCwgMTIyLCAyMjYsIDIyNiwgMSwgCisgICAgMjIyLCAxMzUsIDIyNiwgMjI2LCAxLCAyNTQsIDE5OCwgMjI2LCAyMjYsIDEsIDIyNiwgMTg3LCAyMjYsIDIyNiwgMSwgMjE0LCAKKyAgICAxNTAsIDIyNiwgMjI2LCAxLCAyNDUsIDIzMSwgMjI2LCAyMjYsIDEsIDIzNSwgMTg4LCAyMjYsIDIyNiwgMSwgMjQ1LCAyMzIsIAorICAgIDIyNiwgMjI2LCAxLCAyMjYsIDE1OCwgMjI2LCAyMjYsIDEsIDIxNCwgMjA2LCAyMjYsIDIyNiwgMSwgMjM2LCAzOSwgMjI2LCAKKyAgICAyMjYsIDEsIDI0NSwgMjI5LCAyMjYsIDIyNiwgMSwgMjI1LCAyMDIsIDIyNiwgMjI2LCAyNDQsIDE1MCwgNzgsIDIyNiwgCisgICAgMjI2LCAyMjMsIDQ5LCAyNDQsIDE1MCwgNzgsIDE3OCwgMSwgMjQ0LCAxNDEsIDI0NCwgMTMzLCAyNDQsIDE1NSwgMjQ1LCA2LCAKKyAgICAxNzgsIDEsIDIxNCwgMTA1LCAxNzgsIDEsIDIxNCwgMTM1LCAyMTQsIDE1MSwgNzAsIDE3OCwgMSwgMjEwLCAyMTQsIDE3OCwgCisgICAgMSwgMjExLCAxMTcsIDE3OCwgMSwgMjEyLCA5OCwgMTc4LCAxLCAyMTYsIDEzMCwgMjE2LCAxMjksIDIxNiwgMTUxLCAxNzgsIAorICAgIDEsIDI0NSwgNTksIDE3OCwgMSwgMjU0LCA5MywgNjEsIDE3OCwgMSwgMjI2LCAxNDMsIDc2LCAxNzgsIDEsIDI1NSwgMTcsIAorICAgIDYxLCAxNzgsIDEsIDI1NCwgMjI3LCAxNzgsIDEsIDIzMiwgMTMzLCA3NiwgMTc4LCAxLCAyMTksIDI0NCwgNzYsIDE3OCwgMSwgCisgICAgNzYsIDE3OCwgMSwgMjI2LCAyMzQsIDE3OCwgMSwgMjI2LCAxOTYsIDE3OCwgMSwgMjIzLCAxNjQsIDIyMywgMTc3LCAyMjMsIAorICAgIDk0LCAxNTMsIDE3OCwgMSwgMjM0LCAxOTMsIDE3OCwgMSwgMjUwLCAxNzcsIDE3OCwgMSwgMjM0LCAxOTQsIDIzNSwgMjMsIAorICAgIDE3OCwgMSwgMjQzLCAyMDIsIDE3OCwgMSwgMjQ1LCAxMzgsIDE3OCwgMSwgMjQzLCA1OCwgMjQyLCA2NiwgMjQzLCAyMDIsIAorICAgIDE3OCwgMSwgMjQzLCA5NiwgMTc4LCAxLCAyMTEsIDE4OCwgMjExLCAxODIsIDIxMiwgOTgsIDE3OCwgMSwgMjQyLCAzOCwgCisgICAgMjQyLCA2MCwgMTc4LCAxLCAyNDIsIDQyLCAyNDIsIDYwLCAxNzgsIDEsIDIzMiwgMTM1LCAyNDIsIDYwLCAxNzgsIDEsIAorICAgIDIxOSwgMjQ3LCAyNDIsIDYwLCAxNzgsIDEsIDIyOSwgMTg1LCAyMjcsIDE1NywgMjI5LCAxODYsIDIzMCwgMjUsIDE3OCwgMSwgCisgICAgMjE5LCAyNDUsIDIzMCwgMjUsIDE3OCwgMSwgMjQ2LCAxMTUsIDE3OCwgMSwgMjM1LCAxNjgsIDIzNSwgMTcyLCAyMzUsIAorICAgIDE2MiwgNzMsIDE3OCwgMSwgNzUsIDE3OCwgMSwgMjM1LCAxMTcsIDIzNSwgMTQ0LCAxNzgsIDEsIDI0MywgNDMsIDE3OCwgMSwgCisgICAgMjMyLCAxMzYsIDI1NCwgMjQzLCAxNzgsIDEsIDIxOSwgMjQ5LCA2MSwgMTc4LCAxLCAyMzUsIDE1NCwgMjQ1LCAxMTMsIAorICAgIDE3OCwgMSwgMjI1LCAxNjQsIDIyNSwgMTg2LCAyMjYsIDEwNSwgMTc4LCAxLCAyNTQsIDE2MywgMjQ1LCAxMTEsIDE3OCwgMSwgCisgICAgMjE5LCAyNCwgMjIyLCA5MSwgMTc4LCAxLCAyMTksIDE3OSwgMjMyLCAxMzIsIDIyMiwgOTEsIDE3OCwgMSwgMjE5LCAyNDMsIAorICAgIDIyMiwgOTEsIDE3OCwgMSwgMjUxLCA2NiwgMTc4LCAxLCAyMTAsIDE1OSwgMTc4LCAxLCAyMTYsIDYzLCAyMTYsIDczLCAKKyAgICAyMTUsIDQxLCAyMTcsIDE1MiwgMTc4LCAxLCAyMTksIDI0MiwgMjE3LCAxNTIsIDE3OCwgMSwgMjQ5LCA2MCwgMTc4LCAxLCAKKyAgICAyNTIsIDMxLCAyNTIsIDM0LCAyNTEsIDIyNCwgMjUzLCAxNTgsIDE3OCwgMSwgMjE5LCAyNDgsIDI1MywgMTU4LCAxNzgsIDEsIAorICAgIDI0NiwgMTE0LCAxNzgsIDEsIDIyNiwgMTcxLCAxNzgsIDEsIDI0NSwgMTk2LCAyNDUsIDE5OCwgNzUsIDE3OCwgMSwgMjMxLCAKKyAgICAxNzgsIDIzMSwgMTg2LCAxOTMsIDE3OCwgMSwgMjMyLCAxMzQsIDE5MywgMTc4LCAxLCAyMTksIDI0NiwgMTkzLCAxNzgsIDEsIAorICAgIDIzMywgNzMsIDIzMywgMTE0LCAyMzIsIDE0MywgMTU2LCAxNzgsIDEsIDI0NiwgMTE2LCAxNzgsIDEsIDIzNSwgMjMwLCAKKyAgICAxNzgsIDEsIDIzNSwgMjMxLCAxNzgsIDEsIDI0OCwgMjEwLCAyNDgsIDIxNSwgMjQ5LCA2MCwgMTc4LCAxLCAyMjYsIDEzOCwgCisgICAgMjQ1LCA1OCwgNzYsIDE3OCwgMSwgMjQ1LCAyMjcsIDE3OCwgMSwgMjM1LCAxODcsIDE3OCwgMSwgMjQ5LCA3OCwgMTc4LCAxLCAKKyAgICAyNTEsIDE3LCAxNzgsIDEsIDI1MCwgMTg5LCAxNzgsIDEsIDIxOCwgMTYxLCAxNzgsIDEsIDIzMiwgMTMxLCAxNzgsIDEsIAorICAgIDIxOSwgMjQxLCAxNzgsIDEsIDI0MCwgMTEwLCAxNzgsIDEsIDIyNCwgOTYsIDE3OCwgMSwgMjExLCAxNzgsIDE3OCwgMjE5LCAKKyAgICAxNTUsIDIyNCwgMTQwLCAxNzgsIDIzMCwgODUsIDIyNCwgMTQwLCAxNzgsIDI0OSwgMTMxLCAyMjQsIDE0MCwgMTc4LCAyNTQsIAorICAgIDYsIDg3LCAxNzgsIDIxNSwgODIsIDg3LCAxNzgsIDI1MiwgNDYsIDg3LCAyMTcsIDgzLCAxLCA2MSwgMjE3LCA4MywgMSwgCisgICAgNzMsIDIxNywgODMsIDEsIDcwLCAyMTcsIDgzLCAxLCAxNzYsIDIxNywgODMsIDEsIDI0MywgMTM1LCAyMTcsIDgzLCAxLCAKKyAgICAyMjksIDc3LCAyMTcsIDgzLCAxLCAyMTcsIDEwNSwgMjE3LCA4MywgMSwgMjQ4LCAyMjEsIDIxNywgODMsIDEsIDE5NywgCisgICAgMjE3LCA4MywgMSwgMTkwLCAyMTcsIDgzLCAxLCAyNTIsIDE5MSwgMjE3LCA4MywgMSwgMTg0LCAyMTcsIDgzLCAxLCAxOTEsIAorICAgIDIxNywgODMsIDEsIDIzMywgMTM1LCAyMTcsIDgzLCAxLCAyMTIsIDY1LCAyMTcsIDgzLCAxLCAyMDYsIDIxNywgODMsIDEsIAorICAgIDE2MiwgMjE3LCA4MywgMjUsIDUsIDczLCAyMTcsIDgzLCAyNSwgNSwgNzAsIDIxNywgODMsIDUsIDIxMywgMTUyLCAyNDIsIAorICAgIDcsIDEsIDYxLCAyNDIsIDcsIDEsIDczLCAyNDIsIDcsIDEsIDcwLCAyNDIsIDcsIDEsIDE3NiwgMjQyLCA3LCAxLCAyNDMsIAorICAgIDEzNSwgMjQyLCA3LCAxLCAyMjksIDc3LCAyNDIsIDcsIDEsIDIxNywgMTA1LCAyNDIsIDcsIDEsIDI0OCwgMjIxLCAyNDIsIAorICAgIDcsIDEsIDE5NywgMjQyLCA3LCAxLCAxOTAsIDI0MiwgNywgMSwgMjUyLCAxOTEsIDI0MiwgNywgMSwgMTg0LCAyNDIsIDcsIAorICAgIDEsIDE5MSwgMjQyLCA3LCAxLCAyMDUsIDI0MiwgNywgMSwgMjMzLCAxMzUsIDI0MiwgNywgMSwgMjEyLCA2NSwgMjQyLCA3LCAKKyAgICAxLCAyMDYsIDI0MiwgNywgMSwgMTYyLCAyNDIsIDcsIDI1LCA1LCA3MywgMjQyLCA3LCAyNSwgNSwgNzAsIDI0MiwgNywgNSwgCisgICAgMjI2LCA0OSwgMjI1LCAxMjYsIDIxOSwgMTU1LCAyMjQsIDE0MCwgMjI1LCAxMjYsIDUyLCAyMjQsIDE0MCwgMjUxLCAxMjAsIAorICAgIDEsIDYxLCAyNTEsIDEyMCwgMSwgNzMsIDI1MSwgMTIwLCAxLCA3MCwgMjUxLCAxMjAsIDEsIDE3NiwgMjUxLCAxMjAsIDEsIAorICAgIDI0MywgMTM1LCAyNTEsIDEyMCwgMSwgMjI5LCA3NywgMjUxLCAxMjAsIDEsIDIxNywgMTA1LCAyNTEsIDEyMCwgMSwgMjQ4LCAKKyAgICAyMjEsIDI1MSwgMTIwLCAxLCAxOTcsIDI1MSwgMTIwLCAxLCAxOTAsIDI1MSwgMTIwLCAxLCAyNTIsIDE5MSwgMjUxLCAxMjAsIAorICAgIDEsIDE4NCwgMjUxLCAxMjAsIDEsIDE5MSwgMjUxLCAxMjAsIDEsIDIwNSwgMjUxLCAxMjAsIDEsIDIzMywgMTM1LCAyNTEsIAorICAgIDEyMCwgMSwgMjEyLCA2NSwgMjUxLCAxMjAsIDEsIDIwNiwgMjUxLCAxMjAsIDEsIDE2MiwgMjUxLCAxMjAsIDI1LCA1LCA3MywgCisgICAgMjUxLCAxMjAsIDI1LCA1LCA3MCwgMjE3LCA4MiwgMSwgNjEsIDIxNywgODIsIDEsIDczLCAyMTcsIDgyLCAxLCA3MCwgMjE3LCAKKyAgICA4MiwgMSwgMTc2LCAyMTcsIDgyLCAxLCAyNDMsIDEzNSwgMjE3LCA4MiwgMSwgMjI5LCA3NywgMjE3LCA4MiwgMSwgMjE3LCAKKyAgICAxMDUsIDIxNywgODIsIDEsIDI0OCwgMjIxLCAyMTcsIDgyLCAxLCAxOTcsIDIxNywgODIsIDEsIDE5MCwgMjE3LCA4MiwgMSwgCisgICAgMjUyLCAxOTEsIDIxNywgODIsIDEsIDE4NCwgMjE3LCA4MiwgMSwgMTkxLCAyMTcsIDgyLCAxLCAyMzMsIDEzNSwgMjE3LCAKKyAgICA4MiwgMSwgMjEyLCA2NSwgMjE3LCA4MiwgMSwgMjA2LCAyMTcsIDgyLCAyNSwgNSwgNzMsIDIxNywgODIsIDI1LCA1LCA3MCwgCisgICAgNjksIDEsIDE3NiwgNjksIDEsIDIzNCwgMTMyLCA2OSwgMSwgMjM0LCAyOCwgNjksIDEsIDIzNCwgMTA1LCA2OSwgMSwgMjI5LCAKKyAgICA0LCA2OSwgMSwgMjUxLCAzMywgNjksIDEsIDI1MCwgMTU3LCA2OSwgMSwgMjQ5LCAyMzgsIDY5LCAxLCAyNTAsIDg2LCA2OSwgCisgICAgMSwgMjI3LCAxMzQsIDY5LCAxLCAyNDgsIDIyMSwgNjksIDEsIDIxNSwgMTQ0LCA2OSwgMSwgMjQ3LCAxNDUsIDY5LCAxLCAKKyAgICAyMTUsIDEzOSwgNjksIDEsIDIyOCwgODAsIDY5LCAxLCAyMTcsIDEwNSwgNjksIDEsIDIxNiwgMjA4LCA2OSwgMSwgMTExLCAKKyAgICA2OSwgMSwgMjE2LCAxNTYsIDY5LCAxLCAyMjgsIDc0LCA2OSwgMSwgMjUyLCAxOTEsIDY5LCAxLCAyMjUsIDE0NywgNjksIDEsIAorICAgIDIyNSwgMTYsIDY5LCAxLCAyMjUsIDEyMSwgNjksIDEsIDIzMCwgMTYxLCA2OSwgMSwgMjEwLCAyNDQsIDY5LCAxLCAyMjIsIAorICAgIDIxMSwgNjksIDEsIDIzMiwgMTU2LCA2OSwgMSwgMjEzLCAxMzgsIDY5LCAxLCAyMjAsIDEwMiwgNjksIDEsIDIxOCwgMTg0LCAKKyAgICA2OSwgMSwgMjA2LCA2OSwgMSwgMTYyLCA2OSwgMSwgMjMzLCAxMzUsIDY5LCAxLCAyMjQsIDg4LCA2OSwgMjM1LCAyNDMsIAorICAgIDI1LCAyMjQsIDc0LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIDg3LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIDUzLCA2OSwgCisgICAgMjM1LCAyNDMsIDI1LCAyMjQsIDQ4LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIDMwLCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIAorICAgIDIsIDY5LCAyMzUsIDI0MywgMjUsIDIyMywgMjQ2LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjMsIDI0NSwgNjksIDIzNSwgMjQzLCAKKyAgICAyNSwgMjIyLCAxMDAsIDY5LCAyMzUsIDI0MywgMjUsIDIyMiwgOTMsIDY5LCAyMzUsIDI0MywgMjUsIDIzMiwgNjIsIDY5LCAKKyAgICAyMzUsIDI0MywgMjUsIDIzMiwgNTIsIDY5LCAyMzUsIDI0MywgMjUsIDIyNCwgNjksIDY5LCAyMzUsIDI0MywgMjUsIDIyNCwgCisgICAgODAsIDY5LCAyMzUsIDI0MywgMjUsIDIyNCwgMzgsIDIxNSwgNDksIDExMCwgNjksIDIzNSwgMjQzLCAyNSwgMjI0LCAzOCwgCisgICAgMjE1LCA0OSwgMTA1LCA2OSwgMjM1LCAyNDMsIDI1LCAyMjQsIDcwLCA2OSwgMjUsIDIzNSwgMjI5LCAyNTQsIDQ1LCA2OSwgCisgICAgMjUsIDIzNSwgMjI5LCAyNTUsIDczLCA2OSwgMjUsIDUsIDI1NSwgNzMsIDY5LCAyNSwgNSwgNzMsIDY5LCAyNSwgNSwgMjM2LCAKKyAgICAzMywgNjksIDI1LCA1LCAyMTEsIDExNywgNjksIDI1LCA1LCAyMTAsIDE2OSwgNjksIDI1LCA1LCA3MCwgNjksIDI1LCA1LCAKKyAgICAyMTQsIDExOCwgNjksIDI1LCA1LCAyMTQsIDIyOSwgNjksIDI1LCA1LCAyMjYsIDIzNCwgNjksIDI1LCA1LCAxOTEsIDY5LCAKKyAgICAyNSwgNSwgMjM2LCA2MCwgNjksIDI1LCA1LCA3NSwgNjksIDI1LCA1LCAyNTQsIDI0MywgNjksIDI1LCA1LCAyNTQsIDIwMSwgCisgICAgNjksIDI1LCA1LCAyMjYsIDE4MywgNjksIDI1LCA1LCAyNTMsIDE5MiwgNjksIDUsIDIyOCwgMjA2LCA2OSwgNSwgMjIzLCAKKyAgICAxMjYsIDY5LCA1LCAyMTAsIDE4MCwgNjksIDUsIDIzMCwgNTIsIDY5LCA1LCAyMTUsIDIxMywgNjksIDUsIDI1MiwgMTQzLCAKKyAgICA2OSwgNSwgMjIyLCAyMDYsIDY5LCA1LCAyMTYsIDQwLCA2OSwgNSwgMjM0LCAyNDEsIDY5LCA1LCAyNTQsIDIwMywgNjksIDUsIAorICAgIDIyMSwgMjQ0LCAyMjEsIDIzOCwgNjksIDUsIDIxMywgMTQ5LCA2OSwgNSwgMjQ5LCAyMzIsIDY5LCA1LCAyNTIsIDExNywgCisgICAgNjksIDUsIDIzNCwgMTI1LCA2OSwgNSwgMjUyLCAxMzcsIDY5LCA1LCAyNTEsIDksIDIyNSwgNzIsIDIzMywgMTg3LCA2OSwgCisgICAgNSwgMjMzLCAzMCwgMjE2LCAxNywgNjksIDUsIDI1MiwgMjAsIDY5LCA1LCAyMjUsIDEyMywgMjMwLCA5OSwgNjksIDUsIAorICAgIDIzNCwgOSwgNjksIDI0OSwgOTgsIDE2LCAyMjMsIDI4LCA2OSwgNSwgMjUzLCAxNzQsIDY5LCA1LCAyNTMsIDE5NSwgNjksIAorICAgIDIxLCAyMTAsIDg2LCA2OSwgMjEsIDExMCwgNjksIDIxLCAxMDUsIDY5LCAyMSwgMTU4LCA2OSwgMjEsIDE2MSwgNjksIDIxLCAKKyAgICAxODksIDY5LCAyMSwgMTk0LCA2OSwgMjEsIDE5OCwgNjksIDIxLCAxOTUsIDY5LCAyMSwgMjAwLCA2OSwgMTYsIDIzMywgMzAsIAorICAgIDI1MywgMTk3LCAyMTksIDQzLCA2OSwgMTYsIDIzMywgMzAsIDI1MywgMTk3LCAyMzAsIDcxLCA2OSwgMTYsIDIzMywgMzAsIAorICAgIDI1MywgMTk3LCAyMjUsIDcxLCA2OSwgMTYsIDIzMywgMzAsIDI1MywgMTk3LCAyNTIsIDQ5LCA2OSwgMTYsIDIzMywgMzAsIAorICAgIDI1MywgMTk3LCAyNTEsIDEwMywgNjksIDE2LCAyMzMsIDMwLCAyNTMsIDE5NywgMjI0LCAyMTUsIDY5LCAxNiwgMjMzLCAzMCwgCisgICAgMjUzLCAxOTcsIDIyNCwgMjA5LCA2OSwgMTYsIDIzMywgMzAsIDI1MywgMTk3LCAyMjQsIDIwNywgNjksIDE2LCAyMzMsIDMwLCAKKyAgICAyNTMsIDE5NywgMjI0LCAyMTMsIDY5LCAxNiwgMjMzLCAzMCwgMjUzLCAxOTcsIDIyNCwgMjExLCA4MywgMjUxLCAyMzYsIAorICAgIDgzLCAyNDUsIDE2MywgODMsIDI0OSwgMjE5LCA4MywgMjQzLCAyMjksIDIxOCwgMTI5LCA4MywgMjQ5LCAyMjYsIDgzLCAKKyAgICAyNDQsIDExLCAyNDcsIDExOCwgODMsIDIxNiwgMzksIDIxOSwgNTIsIDI0MCwgMTY4LCA4MywgMjE5LCAxOTAsIDMsIDI1MSwgCisgICAgMTcyLCAyMzEsIDE1NCwgODMsIDIzMSwgMTgzLCAyNDksIDIxOSwgODMsIDIzMSwgMTgzLCAyNDMsIDIyOSwgMjE4LCAxMjksIAorICAgIDgzLCAyMjgsIDE5MSwgODMsIDI0MywgMjUzLCA0NSwgMjIxLCAxNTcsIDExMCwgODMsIDI0MywgMjUzLCA0NSwgMjIxLCAKKyAgICAxNTcsIDEwNSwgODMsIDI0MywgMjUzLCA0NSwgMjIxLCAxNTcsIDE1OCwgODMsIDI1LCAyMjAsIDEzNywgODMsIDIxLCAyMTAsIAorICAgIDg2LCA4MywgMjEsIDExMCwgODMsIDIxLCAxMDUsIDgzLCAyMSwgMTU4LCA4MywgMjEsIDE2MSwgODMsIDIxLCAxODksIDgzLCAKKyAgICAyMSwgMTk0LCA4MywgMjEsIDE5OCwgODMsIDIxLCAxOTUsIDgzLCAyMSwgMjAwLCA4MywgMSwgNjEsIDgzLCAxLCA3NSwgODMsIAorICAgIDEsIDczLCA4MywgMSwgNzYsIDgzLCAxLCA3MCwgODMsIDEsIDIyNiwgMjM0LCA4MywgMSwgMjE0LCAyMTQsIDgzLCAxLCAKKyAgICAyNDUsIDIwOSwgODMsIDEsIDE5NywgODMsIDEsIDI1NCwgMTE1LCA4MywgMSwgMjUyLCAxOTEsIDgzLCAxLCAxOTAsIDgzLCAKKyAgICAxLCAyMjQsIDg4LCA4MywgMSwgMjQzLCAxMzUsIDgzLCAxLCAxODQsIDgzLCAxLCAyMzMsIDEzNSwgODMsIDEsIDIwNiwgODMsIAorICAgIDEsIDIyMCwgMTAyLCA4MywgMSwgMjE3LCAxMDUsIDgzLCAxLCAyNDgsIDIyMSwgODMsIDEsIDI1MCwgMTU3LCA4MywgMSwgCisgICAgMjM1LCAxNDEsIDgzLCAxLCAxOTEsIDgzLCAxLCAyMDUsIDgzLCAxLCAyMTIsIDY1LCA4MywgMSwgMjQ0LCAxOTYsIDgzLCAxLCAKKyAgICAxNzYsIDgzLCAxLCAyMzQsIDEzMiwgODMsIDEsIDIxNSwgMTgzLCA4MywgMSwgMjEwLCAxMTYsIDgzLCAxLCAyNDIsIDQ2LCAKKyAgICA4MywgMSwgMjEwLCAxNiwgODMsIDEsIDIzMiwgMjU0LCA4MywgMSwgMjEwLCA2OSwgODMsIDEsIDI1MCwgMTEwLCA4MywgMSwgCisgICAgMjE2LCAzOSwgMTk5LCAyNSwgNTAsIDgzLCAxLCAyMTYsIDM5LCA3NSwgODMsIDEsIDIxNiwgMzksIDczLCA4MywgMSwgMjE2LCAKKyAgICAzOSwgNzYsIDgzLCAxLCAyMTYsIDM5LCA3MCwgODMsIDEsIDIxNiwgMzksIDIyNiwgMjM0LCA4MywgMSwgMjE2LCAzOSwgCisgICAgMjE0LCAyMTQsIDgzLCAxLCAyMTYsIDM5LCAyNTQsIDExNSwgODMsIDEsIDIxNiwgMzksIDI1MiwgMTkxLCA4MywgMSwgMjE2LCAKKyAgICAzOSwgMTkwLCA4MywgMSwgMjE2LCAzOSwgMjI0LCA4OCwgODMsIDEsIDIxNiwgMzksIDI0MywgMTM1LCA4MywgMSwgMjE2LCAKKyAgICAzOSwgMTg0LCA4MywgMSwgMjE2LCAzOSwgMjE3LCAxMDUsIDgzLCAxLCAyMTYsIDM5LCAyNDgsIDIyMSwgODMsIDEsIDIxNiwgCisgICAgMzksIDI1MCwgMTU3LCA4MywgMSwgMjE2LCAzOSwgMjM1LCAxNDEsIDgzLCAxLCAyMTYsIDM5LCAyMTUsIDE4MywgODMsIDEsIAorICAgIDIxNiwgMzksIDE5MSwgODMsIDEsIDIxNiwgMzksIDIxMiwgNjUsIDgzLCAxLCAyMTYsIDM5LCAxNzYsIDgzLCAxLCAyMTYsIAorICAgIDM5LCAyNDMsIDEzMiwgODMsIDEsIDIxNiwgMzksIDI0MiwgNDYsIDgzLCAxLCAyMTYsIDM5LCAyMzUsIDEwNywgODMsIDEsIAorICAgIDIxNiwgMzksIDIyOCwgMjMxLCA4MywgMSwgMjE2LCAzOSwgMjQ2LCAzOCwgODMsIDEsIDIxOSwgMTkwLCA3NSwgODMsIDEsIAorICAgIDIxOSwgMTkwLCA3MywgODMsIDEsIDIxOSwgMTkwLCAyMzUsIDE1MiwgODMsIDEsIDIxOSwgMTkwLCAyMTQsIDIxNCwgODMsIAorICAgIDEsIDIxOSwgMTkwLCA3MCwgODMsIDEsIDIxOSwgMTkwLCAyNTQsIDExNSwgODMsIDEsIDIxOSwgMTkwLCAxNzYsIDgzLCAxLCAKKyAgICAyMTksIDE5MCwgMjQzLCAxMzUsIDgzLCAxLCAyMTksIDE5MCwgMTYyLCA4MywgMSwgMjE5LCAxOTAsIDE5MCwgODMsIDEsIAorICAgIDIxOSwgMTkwLCAyMjAsIDEwMiwgODMsIDEsIDIxOSwgMTkwLCAyMTcsIDEwNSwgODMsIDEsIDIxOSwgMTkwLCAyNDgsIDIyMSwgCisgICAgODMsIDEsIDIxOSwgMTkwLCAyMzUsIDE0MSwgODMsIDEsIDIxOSwgMTkwLCAyNDQsIDE5NiwgODMsIDEsIDIxOSwgMTkwLCAKKyAgICAyNDMsIDEzMiwgODMsIDEsIDIxOSwgMTkwLCAyNDIsIDQ2LCA4MywgMSwgMjE5LCAxOTAsIDIxNSwgMTgzLCA4MywgMSwgCisgICAgMjE5LCAxOTAsIDIxMCwgMTE2LCA4MywgMSwgMjE5LCAxOTAsIDIyMywgMTg0LCA4MywgMSwgMjE5LCAxOTAsIDI1MCwgMTU3LCAKKyAgICA4MywgMSwgMjE5LCAxOTAsIDIxMCwgODIsIDgzLCAxLCAyMzEsIDE4MywgNzMsIDgzLCAxLCAyMzEsIDE4MywgMTc2LCA4MywgCisgICAgMSwgMjMxLCAxODMsIDIwNSwgODMsIDEsIDIzMSwgMTgzLCAyNDQsIDE5NiwgODMsIDEsIDIzMSwgMTgzLCAyMTAsIDgyLCAKKyAgICA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAyNTQsIDc2LCAxMTAsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxMywgCisgICAgMTQ4LCAxMTAsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDI0OCwgMTg2LCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAKKyAgICAyMTQsIDIyNCwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjM1LCAxOTMsIDIxNCwgMjI0LCA4MywgMSwgMjU0LCAxNjIsIAorICAgIDI0MywgMTE2LCAyNTIsIDE1NSwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMTM0LCAyNTIsIDE1NSwgODMsIDEsIDI1NCwgCisgICAgMTYyLCAyNDMsIDExNiwgNjEsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDczLCA4MywgMSwgMjU0LCAxNjIsIDI0MywgCisgICAgMTE2LCAxNzYsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIyOSwgNzcsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIAorICAgIDI1MSwgMzMsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxNSwgMTU2LCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAKKyAgICAyMTUsIDE0NCwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjQ4LCAxMzUsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIAorICAgIDIyOCwgMTEwLCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAyMTcsIDEwNSwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgCisgICAgMjQ4LCAyMjEsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDE5MCwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjI1LCAKKyAgICAxNDcsIDgzLCAxLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxOCwgMjIzLCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAyMTAsIAorICAgIDgyLCA4MywgMSwgMjU0LCAxNjIsIDI0MywgMTE2LCAyMTAsIDExNiwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjU0LCAKKyAgICAyMDksIDgzLCAxLCAyMTYsIDM5LCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxNywgMTA1LCA4MywgMSwgMjE2LCAzOSwgMjU0LCAKKyAgICAxNjIsIDI0MywgMTE2LCAyMTAsIDgyLCA4MywgMSwgMjMxLCAxODMsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjQyLCAyNDksIAorICAgIDgzLCAxLCAyMzEsIDE4MywgMjU0LCAxNjIsIDI0MywgMTE2LCAyMjksIDc3LCA4MywgMSwgMjMxLCAxODMsIDI1NCwgMTYyLCAKKyAgICAyNDMsIDExNiwgMjUxLCAzMywgODMsIDEsIDIzMSwgMTgzLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIzNSwgMTE0LCA4MywgMSwgCisgICAgMjMxLCAxODMsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjE1LCAxNTYsIDgzLCAxLCAyMzEsIDE4MywgMjU0LCAxNjIsIDI0MywgCisgICAgMTE2LCAyNDgsIDExOSwgODMsIDEsIDIzMSwgMTgzLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxNywgMTA1LCA4MywgMSwgMjMxLCAKKyAgICAxODMsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjQ4LCAyNSwgODMsIDEsIDIzMSwgMTgzLCAyNTQsIDE2MiwgMjQzLCAxMTYsIAorICAgIDIxOCwgMjIzLCA4MywgMSwgMjMxLCAxODMsIDI1NCwgMTYyLCAyNDMsIDExNiwgMjQ5LCA3MiwgODMsIDEsIDIzMSwgMTgzLCAKKyAgICAyNTQsIDE2MiwgMjQzLCAxMTYsIDIxMCwgODIsIDgzLCAxLCAyMzEsIDE4MywgMjU0LCAxNjIsIDI0MywgMTE2LCAyMTAsIAorICAgIDExNiwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMTYzLCA3MCwgODMsIDEsIDI1NCwgMTYyLCAyNDMsIDExNiwgMTYzLCAKKyAgICAxOTEsIDgzLCAxLCAyMzEsIDE4MywgMjU0LCAxNjIsIDI0MywgMTE2LCAyNTIsIDE4LCA4MywgMSwgMjU0LCAxNjIsIDI0MywgCisgICAgMTE2LCAyNDgsIDIxMSwgODMsIDEsIDIzMSwgMTgzLCAyNTQsIDE2MiwgMjQzLCAxMTYsIDIzMiwgMjU0LCAxOCwgMTksIAorICAgIDIyNiwgMTA5LCAxOCwgMTksIDI1MywgMTY3LCAxOCwgMTksIDI1NSwgMjgsIDE4LCAxOSwgMjEyLCAyNSwgMTgsIDE5LCAKKyAgICAyMjQsIDIyMSwgMTgsIDE5LCAyMjUsIDIyOSwgMTgsIDE5LCAyMjQsIDEwNSwgMTgsIDE5LCAyMTcsIDMxLCAxOCwgMTksIAorICAgIDIzNCwgMTg5LCAxOCwgMTksIDIzMywgMTc5LCAxOCwgMTksIDIzMSwgMTMyLCAxOCwgMTksIDIyOCwgMzcsIDE4LCAxOSwgCisgICAgMjI5LCAxODEsIDE4LCAxOSwgMjMzLCA2OCwgMTgsIDE5LCAyMTksIDIyLCAxOCwgMTksIDIyMSwgMjExLCAxOCwgMTksIAorICAgIDIxOSwgMjMyLCAxOCwgMTksIDIyMCwgNjYsIDE4LCAxOSwgMjE5LCAyMDEsIDE4LCAxOSwgMjEwLCAyMjAsIDE4LCAxOSwgCisgICAgMjExLCA1MiwgMTgsIDE5LCAyMjMsIDEzNCwgMTgsIDE5LCAyMjcsIDE3MSwgMTgsIDE5LCAyMjYsIDIxNiwgMjI3LCAxNzEsIAorICAgIDE4LCAxOSwgMjI3LCAxNzAsIDE4LCAxOSwgMjI2LCAyMTYsIDIyNywgMTcwLCAxOCwgMTksIDIyNywgMTY5LCAxOCwgMTksIAorICAgIDIyNiwgMjE2LCAyMjcsIDE2OSwgMTgsIDE5LCAyMjcsIDE2OCwgMTgsIDE5LCAyMjYsIDIxNiwgMjI3LCAxNjgsIDE4LCAxOSwgCisgICAgMjIyLCAxMDUsIDE4LCAxOSwgMjIyLCAxMDQsIDE4LCAxOSwgMjIyLCAxMDMsIDE4LCAxOSwgMjIyLCAxMDIsIDE4LCAxOSwgCisgICAgMjIyLCAxMDEsIDE4LCAxOSwgMjIyLCAxMDksIDE4LCAxOSwgMjI2LCAyMTYsIDIyNiwgMTA1LCAxOCwgMTksIDIyNiwgMjE2LCAKKyAgICAyMTcsIDE1MiwgMTgsIDE5LCAyMjYsIDIxNiwgMjM1LCAyMywgMTgsIDE5LCAyMjYsIDIxNiwgMjUxLCA2NiwgMTgsIDE5LCAKKyAgICAyMjYsIDIxNiwgMTkzLCAxOCwgMTksIDIyNiwgMjE2LCAyMzAsIDI1LCAxOCwgMTksIDIyNiwgMjE2LCAyMjIsIDkxLCAxOCwgCisgICAgMTksIDIyNiwgMjE2LCAyMjAsIDEwNCwgMTgsIDE5LCAyNDUsIDIxOSwgMjEyLCA5OCwgMTgsIDE5LCAyMTIsIDcsIDIxMiwgCisgICAgOTgsIDE4LCAxOSwgNDAsIDQsIDIyMiwgMjMzLCAxOCwgMTksIDQwLCAyMjMsIDE1NywgMjQ3LCAxMjAsIDE4LCAxOSwgMjIzLCAKKyAgICAyMjMsIDIyMiwgMTA2LCAxOCwgMTksIDE1OSwgMjMyLCAxMjcsIDE4LCAxOSwgMTU5LCAyMzMsIDEzNCwgMTgsIDE5LCAyMTYsIAorICAgIDEyNiwgMTgsIDE5LCAyMTYsIDEyOCwgMTgsIDE5LCAyMTUsIDEzNiwgMTgsIDE5LCAyMTUsIDEzOCwgMTgsIDE5LCAyMTUsIAorICAgIDE0MywgMTgsIDE5LCAyMTYsIDQ5LCAxOCwgMTksIDIxNiwgNTEsIDE4LCAxOSwgMjIxLCAyMDksIDIxOSwgMjA2LCAxOCwgCisgICAgMTksIDIyMSwgMjA5LCAyMjAsIDEsIDE4LCAxOSwgMjIxLCAyMDksIDI0MSwgNTMsIDE4LCAxOSwgNzIsIDI0MiwgNzMsIDE4LCAKKyAgICAxOSwgNzIsIDI0OCwgNTIsIDI0MywgNTUsIDE4LCAxOSwgNzIsIDI0MywgMTMyLCAxOCwgMTksIDcyLCAyNDIsIDc4LCAxOCwgCisgICAgMTksIDIyMSwgMjA5LCAyMzUsIDMzLCAxOCwgMTksIDcyLCAyMzUsIDMxLCAxOCwgMTksIDI1MiwgNjgsIDI0OCwgNTIsIAorICAgIDE1NiwgMTgsIDE5LCAyNTIsIDY4LCAyNDgsIDUyLCAxNTMsIDE4LCAxOSwgNzIsIDI0OCwgNDcsIDIyMiwgOTEsIDIzMiwgCisgICAgMjIzLCAyMTMsIDEyMiwgMjMzLCAxMCwgMjMyLCAyMjMsIDEsIDE3NiwgMjMyLCAyMjMsIDEsIDIzNCwgMTMyLCAyMzIsIAorICAgIDIyMywgMSwgMjQzLCAxMzUsIDIzMiwgMjIzLCAxLCAyNDIsIDI0OSwgMjMyLCAyMjMsIDEsIDIyOSwgNzcsIDIzMiwgMjIzLCAKKyAgICAxLCAyNTEsIDMzLCAyMzIsIDIyMywgMSwgMjUwLCAxNTcsIDIzMiwgMjIzLCAxLCAyMzUsIDE0MSwgMjMyLCAyMjMsIDEsIAorICAgIDIzNSwgMTE0LCAyMzIsIDIyMywgMSwgMjExLCA3MSwgMjMyLCAyMjMsIDEsIDIxNywgMTA1LCAyMzIsIDIyMywgMSwgMjE2LCAKKyAgICAyMDgsIDIzMiwgMjIzLCAxLCAyNDgsIDIyMSwgMjMyLCAyMjMsIDEsIDI0OCwgMjUsIDIzMiwgMjIzLCAxLCAxOTcsIDIzMiwgCisgICAgMjIzLCAxLCAxOTAsIDIzMiwgMjIzLCAxLCAyMjUsIDE0NywgMjMyLCAyMjMsIDEsIDI1MiwgMTkxLCAyMzIsIDIyMywgMSwgCisgICAgMjUyLCAxOCwgMjMyLCAyMjMsIDEsIDE4NCwgMjMyLCAyMjMsIDEsIDE5MSwgMjMyLCAyMjMsIDEsIDIwNSwgMjMyLCAyMjMsIAorICAgIDEsIDIzMywgMTM1LCAyMzIsIDIyMywgMSwgMjEyLCA2NSwgMjMyLCAyMjMsIDEsIDIyMCwgMTAyLCAyMzIsIDIyMywgMSwgCisgICAgMjE4LCAyMjMsIDIzMiwgMjIzLCAxLCAyMDYsIDIzMiwgMjIzLCAxLCAxNjIsIDIzMiwgMjIzLCAyNSwgNSwgNjEsIDIzMiwgCisgICAgMjIzLCAyNSwgNSwgNzMsIDIzMiwgMjIzLCAyNSwgNSwgNzAsIDIzMiwgMjIzLCAyNSwgNSwgMjQ1LCAyMDksIDIzMiwgMjIzLCAKKyAgICAyNSwgNSwgMjU0LCAyMDEsIDIzMiwgMjIzLCAyNSwgNSwgMjI2LCAxODMsIDIzMiwgMjIzLCAyNSwgNSwgMjUzLCAxOTIsIAorICAgIDIzMiwgMjIzLCAyNSwgNSwgNzUsIDIzMiwgMjIzLCAyNSwgNSwgNzYsIDIzMiwgMjIzLCAyMTgsIDczLCAxLCAxOTEsIDIzMiwgCisgICAgMjIzLCAyMTgsIDczLCAxLCAyMDUsIDIzMiwgMjIzLCAyMTgsIDczLCAxLCAyMTIsIDY1LCAyMzIsIDIyMywgNCwgMSwgMTc2LCAKKyAgICAyMzIsIDIyMywgNCwgMSwgMjI5LCA3NywgMjMyLCAyMjMsIDQsIDEsIDI1NCwgNzUsIDIzMiwgMjIzLCA0LCAxLCAyMTcsIAorICAgIDEwNSwgMjMyLCAyMjMsIDQsIDEsIDE5NywgMjMyLCAyMjMsIDQsIDEsIDE5MCwgMjMyLCAyMjMsIDQsIDEsIDE4NCwgMjMyLCAKKyAgICAyMjMsIDQsIDEsIDIwNSwgMjMyLCAyMjMsIDQsIDEsIDIzMywgMTM1LCAyMzIsIDIyMywgNSwgMjMwLCA4OSwgMjMyLCAyMjMsIAorICAgIDUsIDIzNCwgMTcxLCAyMzIsIDIyMywgNSwgMjIyLCAzMiwgMjMyLCAyMjMsIDUsIDIzMiwgMTI3LCAyMzIsIDIyMywgMjQ1LCAKKyAgICAzMSwgNzgsIDIzMiwgMjIzLCAyMjQsIDEzLCA3OCwgMjMyLCAyMjMsIDIxLCAyMTAsIDg2LCAyMzIsIDIyMywgMjEsIDExMCwgCisgICAgMjMyLCAyMjMsIDIxLCAxMDUsIDIzMiwgMjIzLCAyMSwgMTU4LCAyMzIsIDIyMywgMjEsIDE2MSwgMjMyLCAyMjMsIDIxLCAKKyAgICAxODksIDIzMiwgMjIzLCAyMSwgMTk0LCAyMzIsIDIyMywgMjEsIDE5OCwgMjMyLCAyMjMsIDIxLCAxOTUsIDIzMiwgMjIzLCAKKyAgICAyMSwgMjAwLCAzOSwgMjMzLCA1OSwgMSwgMTc2LCAzOSwgMjMzLCA1OSwgMSwgMjExLCAxNjUsIDM5LCAyMzMsIDU5LCAxLCAKKyAgICAyMjksIDc3LCAzOSwgMjMzLCA1OSwgMSwgMjE1LCAxODMsIDM5LCAyMzMsIDU5LCAxLCAyMDYsIDM5LCAyMzMsIDU5LCAxLCAKKyAgICAxOTEsIDM5LCAyMzMsIDU5LCAxLCAyMTcsIDEwNSwgMzksIDIzMywgNTksIDEsIDIxNiwgMjA4LCAzOSwgMjMzLCA1OSwgMSwgCisgICAgMjMzLCAxMzUsIDM5LCAyMzMsIDU5LCAxLCAxOTAsIDM5LCAyMzMsIDU5LCAxLCAyMjUsIDE0NywgMzksIDIzMywgNTksIDEsIAorICAgIDE4NCwgMzksIDIzMywgNTksIDEsIDI0NCwgMTk2LCAzOSwgMjMzLCA1OSwgMSwgMjE0LCAyNywgMzksIDIzMywgNTksIDEsIAorICAgIDE2MiwgMzksIDIzMywgNTksIDEsIDIyNCwgODgsIDM5LCAyMzMsIDU5LCAxLCAyMzQsIDEzMiwgMzksIDIzMywgNTksIDEsIAorICAgIDIxNSwgMTc1LCAzOSwgMjMzLCA1OSwgMSwgMTk3LCAzOSwgMjMzLCA1OSwgMSwgNjEsIDM5LCAyMzMsIDU5LCAxLCA3MywgCisgICAgMzksIDIzMywgNTksIDEsIDI0NSwgMjA5LCAzOSwgMjMzLCA1OSwgMSwgMjQ1LCAxOTcsIDM5LCAyMzMsIDU5LCAxLCA3MCwgCisgICAgMzksIDIzMywgNTksIDEsIDIyNiwgMTgzLCAzOSwgMjMzLCA1OSwgMSwgNzYsIDM5LCAyMzMsIDU5LCAxLCAyMTQsIDIxNCwgCisgICAgMzksIDIzMywgNTksIDEsIDc1LCAzOSwgMjMzLCA1OSwgMSwgMjUzLCAxOTAsIDM5LCAyMzMsIDU5LCAxLCAyNTQsIDIwMSwgCisgICAgMzksIDIzMywgNTksIDEsIDIxNiwgMjgsIDM5LCAyMzMsIDU5LCAxLCAyMTYsIDI3LCAzOSwgMjMzLCA1OSwgMSwgMjE2LCAKKyAgICAyNiwgMzksIDIzMywgNTksIDEsIDIxNiwgMjUsIDM5LCAyMzMsIDU5LCAxLCAyMTYsIDI0LCAxNjYsIDM5LCAxNzMsIDEsIAorICAgIDEyNSwgMjI0LCA4OCwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDIyNCwgODgsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAxNzYsIAorICAgIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMTEsIDE2NSwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDIyOSwgNzcsIDE2NiwgMzksIAorICAgIDE3MywgMSwgMTIxLCAxNzYsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyMTEsIDE2NSwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIAorICAgIDIyOSwgNzcsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMTUsIDE4MywgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDIwNiwgMTY2LCAKKyAgICAzOSwgMTczLCAxLCAxMjUsIDE5MSwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDIxNSwgMTgzLCAxNjYsIDM5LCAxNzMsIDEsIAorICAgIDEyMSwgMjA2LCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMTkxLCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjE3LCAxMDUsIDE2NiwgCisgICAgMzksIDE3MywgMSwgMTI1LCAyMTYsIDIwOCwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDE5NywgMTY2LCAzOSwgMTczLCAxLCAKKyAgICAxMjEsIDIxNywgMTA1LCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMjE2LCAyMDgsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAxOTcsIAorICAgIDE2NiwgMzksIDE3MywgMSwgMTI1LCAxOTAsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMjUsIDE0NywgMTY2LCAzOSwgMTczLCAKKyAgICAxLCAxMjUsIDE4NCwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDE5MCwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDIyNSwgMTQ3LCAKKyAgICAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgMTg0LCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjQ0LCAxOTYsIDE2NiwgMzksIDE3MywgCisgICAgMSwgMTI1LCAyMTQsIDI3LCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjMzLCAxMzUsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAKKyAgICAyNDQsIDE5NiwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDIxNCwgMjcsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyMzMsIDEzNSwgCisgICAgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDE2MiwgMTY2LCAzOSwgMTczLCAxLCAxMjUsIDI0OCwgMjIxLCAxNjYsIDM5LCAxNzMsIAorICAgIDEsIDEyNSwgMjUyLCAxOTEsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAxNjIsIDE2NiwgMzksIDE3MywgMSwgMTIxLCAyNDgsIAorICAgIDIyMSwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDI1MiwgMTkxLCAxNjYsIDM5LCAxNzMsIDEsIDEyNSwgMjMzLCAxODQsIDE2NiwgCisgICAgMzksIDE3MywgMSwgMTI1LCAyMTEsIDEzOCwgMTY2LCAzOSwgMTczLCAxLCAxMjEsIDIzMywgMTg0LCAxNjYsIDM5LCAxNzMsIAorICAgIDEsIDEyMSwgMjExLCAxMzgsIDE2NiwgMzksIDE3MywgMSwgMTI1LCAyMTgsIDgyLCAxNjYsIDM5LCAxNzMsIDEsIDEyMSwgCisgICAgMjE4LCA4MiwgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjUsIDIxOSwgMjM5LCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyNTUsIDczLCAKKyAgICAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyMzYsIDMzLCAxNjYsIDM5LCAxNzMsIDI1LCA1LCA3MCwgMTY2LCAzOSwgMTczLCAyNSwgCisgICAgNSwgMjE0LCAxMTgsIDE2NiwgMzksIDE3MywgMjUsIDUsIDc1LCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyNTQsIDI0MywgMTY2LCAKKyAgICAzOSwgMTczLCAyNSwgNSwgNzYsIDE2NiwgMzksIDE3MywgMjUsIDUsIDIyNywgMCwgMTY2LCAzOSwgMTczLCAyNSwgNSwgCisgICAgMjE0LCAyMTQsIDE2NiwgMzksIDE3MywgMjUsIDUsIDI1MywgMTY3LCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyNTUsIDI4LCAKKyAgICAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyMTQsIDExMSwgMTY2LCAzOSwgMTczLCAyNSwgNSwgMjI2LCAxMDksIDE2NiwgMzksIAorICAgIDE3MywgMjUsIDUsIDIyNiwgMjUzLCAxNjYsIDM5LCAxNzMsIDI1LCA1LCAyMTQsIDIxMCwgMTY2LCAzOSwgMTczLCAyNSwgNSwgCisgICAgMjM1LCAxNTIsIDE2NiwgMzksIDE3MywgMSwgNDAsIDIxNCwgMTA1LCAxNjYsIDM5LCAxNzMsIDEsIDQwLCAyMjksIDc5LCAKKyAgICAxNjYsIDM5LCAxNzMsIDEsIDQwLCAyMzAsIDI1LCAxNjYsIDM5LCAxNzMsIDEsIDQwLCAxOTMsIDE2NiwgMzksIDE3MywgMSwgCisgICAgNDAsIDIzNSwgMjMsIDE2NiwgMzksIDE3MywgMSwgNDAsIDI0OSwgNjAsIDE2NiwgMzksIDE3MywgMSwgNDAsIDI1MywgMTU4LCAKKyAgICAxNjYsIDM5LCAxNzMsIDEzOCwgMjMxLCAxNTgsIDE2NiwgMzksIDE3MywgMTM4LCAyMzEsIDE1NywgMTY2LCAzOSwgMTczLCAKKyAgICAyMSwgMjEwLCA4NiwgMTY2LCAzOSwgMTczLCAyMSwgMTEwLCAxNjYsIDM5LCAxNzMsIDIxLCAxMDUsIDE2NiwgMzksIDE3MywgCisgICAgMjEsIDE1OCwgMTY2LCAzOSwgMTczLCAyMSwgMTYxLCAxNjYsIDM5LCAxNzMsIDIxLCAxODksIDE2NiwgMzksIDE3MywgMjEsIAorICAgIDE5NCwgMTY2LCAzOSwgMTczLCAyMSwgMTk4LCAxNjYsIDM5LCAxNzMsIDIxLCAxOTUsIDE2NiwgMzksIDE3MywgMjEsIDIwMCwgCisgICAgMTY2LCAzOSwgMTczLCA4OSwgMjEsIDExMCwgMTY2LCAzOSwgMTczLCA1LCAyMzMsIDEyMCwgMTY2LCAzOSwgMTczLCA1LCAKKyAgICAyMzMsIDExOSwgNjksIDE2LCAyMjUsIDIzNiwgNjksIDE2LCAyMzAsIDcyLCAyMzQsIDI1LCA2OSwgMTYsIDIyNSwgNzIsIAorICAgIDIzNCwgMjUsIDY5LCAxNiwgMjUyLCA1MCwgMjM0LCAyNSwgNjksIDE2LCAyNTEsIDEwNCwgMjM0LCAyNSwgNjksIDE2LCAKKyAgICAyMjQsIDIxNiwgMjM0LCAyNSwgNjksIDE2LCAyMjQsIDIxMCwgMjM0LCAyNSwgNjksIDE2LCAyMjQsIDIwOCwgMjM0LCAyNSwgCisgICAgNjksIDE2LCAyMjQsIDIxNCwgMjM0LCAyNSwgNjksIDE2LCAyMjQsIDIxMiwgMjM0LCAyNSwgNjksIDE2LCAyNDgsIDE3MywgCisgICAgMjM0LCAyNSwgNjksIDE2LCAyNDgsIDE2OSwgMjM0LCAyNSwgNjksIDE2LCAyNDgsIDE2OCwgMjM0LCAyNSwgNjksIDE2LCAKKyAgICAyNDgsIDE3MSwgMjM0LCAyNSwgNjksIDE2LCAyNDgsIDE3MCwgMjM0LCAyNSwgNjksIDE2LCAyNDgsIDE2NywgMjM0LCAyNSwgCisgICAgNjksIDE2LCAyMTUsIDg3LCA2OSwgMTYsIDIzMCwgNzIsIDIyMiwgMjA1LCA2OSwgMTYsIDIyNSwgNzIsIDIyMiwgMjA1LCAKKyAgICA2OSwgMTYsIDI1MiwgNTAsIDIyMiwgMjA1LCA2OSwgMTYsIDI1MSwgMTA0LCAyMjIsIDIwNSwgNjksIDE2LCAyMjQsIDIxNiwgCisgICAgMjIyLCAyMDUsIDY5LCAxNiwgMjI0LCAyMTAsIDIyMiwgMjA1LCA2OSwgMTYsIDIyNCwgMjA4LCAyMjIsIDIwNSwgNjksIDE2LCAKKyAgICAyMjQsIDIxNCwgMjIyLCAyMDUsIDY5LCAxNiwgMjI0LCAyMTIsIDIyMiwgMjA1LCA2OSwgMTYsIDI0OCwgMTczLCAyMjIsIAorICAgIDIwNSwgNjksIDE2LCAyNDgsIDE2OSwgMjIyLCAyMDUsIDY5LCAxNiwgMjQ4LCAxNjgsIDIyMiwgMjA1LCA2OSwgMTYsIDI0OCwgCisgICAgMTcxLCAyMjIsIDIwNSwgNjksIDE2LCAyNDgsIDE3MCwgMjIyLCAyMDUsIDY5LCAxNiwgMjQ4LCAxNjcsIDIyMiwgMjA1LCAKKyAgICAyNTEsIDEyMSwgMSwgMTc2LCAyNTEsIDEyMSwgMSwgMjQzLCAxMzUsIDI1MSwgMTIxLCAxLCAyMjksIDc3LCAyNTEsIDEyMSwgCisgICAgMSwgMjI5LCAyMiwgMjUxLCAxMjEsIDEsIDE5MCwgMjUxLCAxMjEsIDEsIDI1MiwgMTkxLCAyNTEsIDEyMSwgMSwgMTg0LCAKKyAgICAyNTEsIDEyMSwgMSwgMjMwLCAxMDUsIDI1MSwgMTIxLCAxLCAyMTcsIDEwNSwgMjUxLCAxMjEsIDEsIDI0OCwgMjIxLCAyNTEsIAorICAgIDEyMSwgMSwgMTk3LCAyNTEsIDEyMSwgMSwgMjI4LCAzNiwgMjUxLCAxMjEsIDEsIDI1MSwgMzMsIDI1MSwgMTIxLCAxLCAKKyAgICAyMzUsIDE0MSwgMjUxLCAxMjEsIDEsIDIyNywgMTY1LCAyNTEsIDEyMSwgMSwgMjI3LCAxNTgsIDI1MSwgMTIxLCAxLCAxOTEsIAorICAgIDI1MSwgMTIxLCAxLCAyMDUsIDI1MSwgMTIxLCAxLCAyMzMsIDEzNSwgMjUxLCAxMjEsIDEsIDIxNCwgMjcsIDI1MSwgMTIxLCAKKyAgICAxLCAyMDYsIDI1MSwgMTIxLCAxLCA2MSwgMjUxLCAxMjEsIDEsIDE2MiwgMjUxLCAxMjEsIDI1LCA1LCA3MywgMjUxLCAxMjEsIAorICAgIDI1LCA1LCA3MCwgMjUxLCAxMjEsIDI1LCA1LCA3NSwgMjUxLCAxMjEsIDI1LCA1LCA3NiwgMjUxLCAxMjEsIDI1LCA1LCAKKyAgICAyNTQsIDI0MywgMjUxLCAxMjEsIDIyNiwgNjAsIDI1MSwgMTIxLCAyNDUsIDE0MywgNjQsIDIyMSwgMTcyLCAzOSwgODksIDEsIAorICAgIDEyNSwgMTc2LCAzOSwgODksIDEsIDEyNSwgMjM0LCAxMzIsIDM5LCA4OSwgMSwgMTI1LCAyMzMsIDE3MSwgMzksIDg5LCAxLCAKKyAgICAxMjEsIDE3NiwgMzksIDg5LCAxLCAxMjEsIDIzMywgMTcxLCAzOSwgODksIDEsIDEyMSwgMjM0LCAxMzIsIDM5LCA4OSwgMSwgCisgICAgMjI5LCA3NywgMzksIDg5LCAxLCAxMjUsIDI1MSwgMzMsIDM5LCA4OSwgMSwgMTI1LCAyNTAsIDE1NywgMzksIDg5LCAxLCAKKyAgICAxMjEsIDI1MSwgMzMsIDM5LCA4OSwgMSwgMTIxLCAyMDYsIDM5LCA4OSwgMSwgMTIxLCAyNTAsIDE1NywgMzksIDg5LCAxLCAKKyAgICAyMjcsIDE2NSwgMzksIDg5LCAxLCAyMjMsIDE0MCwgMzksIDg5LCAxLCAxMjUsIDIyMywgMTM4LCAzOSwgODksIDEsIDI0OCwgCisgICAgMjIxLCAzOSwgODksIDEsIDEyMSwgMjIzLCAxMzgsIDM5LCA4OSwgMSwgMjIzLCAxNDksIDM5LCA4OSwgMSwgMTI1LCAyMTcsIAorICAgIDEwNSwgMzksIDg5LCAxLCAxMjUsIDIxNiwgMjA4LCAzOSwgODksIDEsIDEyMSwgMjE3LCAxMDUsIDM5LCA4OSwgMSwgMTIxLCAKKyAgICAyMTYsIDIwOCwgMzksIDg5LCAxLCAxOTcsIDM5LCA4OSwgMSwgMjUyLCAxOTEsIDM5LCA4OSwgMSwgMTI1LCAxOTAsIDM5LCAKKyAgICA4OSwgMSwgMTI1LCAyMjUsIDE0NywgMzksIDg5LCAxLCAxMjUsIDI0NCwgMTk2LCAzOSwgODksIDEsIDEyMSwgMTkwLCAzOSwgCisgICAgODksIDEsIDEyMSwgMjQ0LCAxOTYsIDM5LCA4OSwgMSwgMTIxLCAyMjUsIDE0NywgMzksIDg5LCAxLCAxODQsIDM5LCA4OSwgCisgICAgMSwgMTIxLCAxOTEsIDM5LCA4OSwgMSwgMTI1LCAxOTEsIDM5LCA4OSwgMSwgMjA1LCAzOSwgODksIDEsIDIyMiwgMTM3LCAKKyAgICAzOSwgODksIDEsIDIzMywgMTM1LCAzOSwgODksIDEsIDIzMiwgOTMsIDM5LCA4OSwgMSwgMjEyLCA2NSwgMzksIDg5LCAxLCAKKyAgICAxMjUsIDIyMCwgMTAyLCAzOSwgODksIDEsIDEyNSwgMjE4LCAyMjMsIDM5LCA4OSwgMSwgMTI1LCAyMDYsIDM5LCA4OSwgMSwgCisgICAgMTI1LCAxNjIsIDM5LCA4OSwgMSwgMjMyLCAxODQsIDM5LCA4OSwgMSwgNjEsIDM5LCA4OSwgMSwgMTIxLCAxNjIsIDM5LCAKKyAgICA4OSwgMSwgNzMsIDM5LCA4OSwgMSwgMjM2LCAzMywgMzksIDg5LCAxLCA3MCwgMzksIDg5LCAxLCAyMTQsIDExOCwgMzksIAorICAgIDg5LCAxLCAyNDUsIDIwOSwgMzksIDg5LCAxLCAyMjYsIDE4MywgMzksIDg5LCAxLCAyMzMsIDEyMCwgMzksIDg5LCAxLCAKKyAgICAyNDIsIDEzMiwgMjA2LCAzOSwgODksIDExNiwgNSwgMTQ3LCAyMDUsIDM5LCA4OSwgMTE2LCA1LCAxNDcsIDIzMywgMTM1LCAKKyAgICAzOSwgODksIDExNiwgNSwgMjMzLCAxMzYsIDIxNywgNTgsIDIzMywgMTA5LCAzOSwgODksIDUsIDIzMSwgMjA0LCAyMzQsIAorICAgIDIzMSwgMjMzLCAxMDksIDM5LCA4OSwgMTE2LCA1LCA0MCwgMjI5LCA3NywgMzksIDg5LCAxMTYsIDUsIDEyMSwgMTkwLCAzOSwgCisgICAgODksIDExNiwgNSwgMTI1LCAyMjMsIDEzOSwgMTc3LCAxMjEsIDE5MCwgMzksIDg5LCAxMTYsIDUsIDE4NCwgMzksIDg5LCAKKyAgICAxMTYsIDUsIDI1MiwgMTkxLCAzOSwgODksIDExNiwgNSwgMjA2LCAzOSwgODksIDUsIDIyMiwgMTAsIDM5LCA4OSwgMjUsIDUsIAorICAgIDYxLCAzOSwgODksIDI1LCA1LCAyMzEsIDIwNCwgMjIxLCAyMjYsIDM5LCA4OSwgMjUsIDUsIDI1NSwgNzMsIDM5LCA4OSwgCisgICAgMjUsIDUsIDIxNywgNjQsIDI1NSwgNzMsIDM5LCA4OSwgMjUsIDUsIDczLCAzOSwgODksIDI1LCA1LCAyMzYsIDMzLCAzOSwgCisgICAgODksIDI1LCA1LCAyMTQsIDIxNCwgMzksIDg5LCAyNSwgNSwgMjE0LCAxMTcsIDM5LCA4OSwgMjUsIDUsIDcwLCAzOSwgODksIAorICAgIDI1LCA1LCAyMTQsIDExOCwgMzksIDg5LCAyNSwgNSwgNzYsIDM5LCA4OSwgMjUsIDUsIDIyNywgMSwgNTEsIDM5LCA4OSwgCisgICAgMjUsIDUsIDIyNiwgMTA5LCAzOSwgODksIDI1LCA1LCA3NSwgMzksIDg5LCAyNSwgNSwgMjU0LCAyNDMsIDM5LCA4OSwgMjUsIAorICAgIDUsIDIyNiwgMTgzLCAzOSwgODksIDI1LCA1LCAyNTQsIDIwMSwgMzksIDg5LCAyNSwgNSwgODksIDI1NCwgMjAxLCAzOSwgCisgICAgODksIDI1LCA1LCAyMjcsIDEsIDQ4LCAzOSwgODksIDUsIDIzMSwgMjA0LCAyMzQsIDIzMCwgMzksIDg5LCA1LCAyMTYsIDI5LCAKKyAgICAzOSwgODksIDUsIDIxNiwgMjgsIDM5LCA4OSwgNSwgMjM0LCA5NywgMjE2LCAyNywgMzksIDg5LCA1LCAyMzQsIDk3LCAyMTYsIAorICAgIDI2LCAzOSwgODksIDUsIDIzNCwgOTcsIDIxNiwgMjUsIDM5LCA4OSwgNSwgMjIzLCAxODgsIDI0MiwgNDUsIDM5LCA4OSwgNSwgCisgICAgMjMxLCAyMDQsIDIyMSwgMjUzLCAzOSwgODksIDUsIDIzNCwgOTYsIDIzNCwgMjE1LCAzOSwgODksIDM4LCAyNDksIDExNSwgCisgICAgMjQ3LCAxMjAsIDM5LCA4OSwgMjQxLCA0NiwgMjEsIDIxMCwgODYsIDM5LCA4OSwgMjQxLCA0NiwgMjEsIDExMCwgMzksIDg5LCAKKyAgICAyNDEsIDQ2LCAyMSwgMTA1LCAzOSwgODksIDI0MSwgNDYsIDIxLCAxNTgsIDM5LCA4OSwgMjQxLCA0NiwgMjEsIDE2MSwgMzksIAorICAgIDg5LCAyNDEsIDQ2LCAyMSwgMTg5LCAzOSwgODksIDI0MSwgNDYsIDIxLCAxOTQsIDM5LCA4OSwgMjQxLCA0NiwgMjEsIDE5OCwgCisgICAgMzksIDg5LCAyNDEsIDQ2LCAyMSwgMTk1LCAzOSwgODksIDI0MSwgNDYsIDIxLCAyMDAsIDM5LCA4OSwgODksIDIxLCAyMTAsIAorICAgIDg2LCAzOSwgODksIDg5LCAyMSwgMTEwLCAzOSwgODksIDg5LCAyMSwgMTA1LCAzOSwgODksIDg5LCAyMSwgMTU4LCAzOSwgCisgICAgODksIDg5LCAyMSwgMTYxLCAzOSwgODksIDg5LCAyMSwgMTg5LCAzOSwgODksIDg5LCAyMSwgMTk0LCAzOSwgODksIDg5LCAKKyAgICAyMSwgMTk4LCAzOSwgODksIDg5LCAyMSwgMTk1LCAzOSwgODksIDg5LCAyMSwgMjAwLCAzOSwgODksIDUsIDIxMSwgMjQ5LCAKKyAgICAzOSwgODksIDUsIDIxMSwgMjQ4LCAzOSwgODksIDUsIDIyMSwgMjE1LCAzOSwgODksIDUsIDIzNCwgMTYwLCAzOSwgODksIDUsIAorICAgIDI0MCwgMjMyLCAzOSwgODksIDUsIDI0NywgMTM0LCAzOSwgODksIDUsIDIyMywgNDksIDIyMiwgMTg3LCAyMjMsIDE0OSwgCisgICAgMzksIDg5LCA1LCAyMzEsIDIwNCwgMjExLCA3MiwgMzksIDg5LCA1LCAyMzUsIDYsIDM5LCA4OSwgNSwgMjM1LCA1LCAzOSwgCisgICAgODksIDUsIDIyMSwgMjIyLCAzOSwgODksIDUsIDIyMSwgMjIxLCAzOSwgODksIDUsIDI0MiwgOSwgMzksIDg5LCA1LCAyNTEsIAorICAgIDMwLCAxMDIsIDUsIDIxNCwgMjAwLCAyMjMsIDMwLCAxMDIsIDUsIDIxNCwgMjAwLCAyNTEsIDEsIDEwMiwgNSwgMjUwLCAKKyAgICAxODYsIDEwMiwgNSwgMjE4LCAxNSwgMTAyLCA1LCAyNTEsIDIzMywgMTAyLCAxLCAyNTQsIDE4NCwgMTAyLCAxLCAyNTQsIAorICAgIDE4NSwgMjE3LCAxMywgMTAyLCAxLCAyMzYsIDI5LCAxMDIsIDEsIDIzNiwgMzAsIDIxNywgMTMsIDEwMiwgMSwgMjE0LCAKKyAgICAyMDMsIDEwMiwgMSwgMjE0LCAyMDQsIDIxNywgMTMsIDEwMiwgMSwgMjIzLCAxODgsIDIyMywgNzksIDEwMiwgMSwgMjIzLCAKKyAgICAxODgsIDIyMywgODAsIDIxNywgMTMsIDEwMiwgMSwgMjMzLCAxMzYsIDIzMywgMjQsIDEwMiwgMSwgMjMzLCAxMzYsIDIzMywgCisgICAgMjUsIDIxNywgMTMsIDEwMiwgMSwgMjQ1LCAxNzksIDEwMiwgMSwgMjU0LCAxOTksIDEwMiwgMSwgMjI2LCAyMTIsIDEwMiwgCisgICAgMSwgMjI2LCAyMTMsIDIxNywgMTMsIDEwMiwgMSwgMTc2LCAxMDIsIDEsIDIzNSwgMTMsIDIzMSwgMjA3LCAxMDIsIDEsIAorICAgIDI0MywgMTM1LCAxMDIsIDEsIDI0MywgMTM2LCAyNDIsIDE2MSwgMTAyLCAxLCAyMjksIDc3LCAxMDIsIDEsIDI1MSwgMzMsIAorICAgIDEwMiwgMSwgMjUxLCAzNCwgMjMzLCAxMjMsIDEwMiwgMSwgMjM1LCAxNDEsIDEwMiwgMSwgMjM1LCAxNDIsIDIzNSwgMTE4LCAKKyAgICAxMDIsIDEsIDIyNywgMTY1LCAxMDIsIDEsIDIxNywgMTA2LCAyMzMsIDc2LCAxMDIsIDEsIDIxNywgMTA2LCAyMzAsIDY3LCAKKyAgICAyMzEsIDIwNywgMTAyLCAxLCAyNDgsIDIyMiwgMjMwLCA2NywgMjU0LCAxNDUsIDEwMiwgMSwgMjQ4LCAyMjIsIDIzMCwgNjcsIAorICAgIDIzMSwgMjA3LCAxMDIsIDEsIDIyOSwgMjI5LCAyMjMsIDE1MiwgMTAyLCAxLCAyMTcsIDEwNSwgMTAyLCAxLCAyMTcsIDEwNiwgCisgICAgMjE3LCAzNSwgMTAyLCAxLCAyNDgsIDIyMSwgMTAyLCAxLCAyNDgsIDIyMiwgMjMxLCAyMjUsIDEwMiwgMSwgMTk3LCAxMDIsIAorICAgIDEsIDE5MCwgMTAyLCAxLCAyMjYsIDkwLCAyMzQsIDIyNiwgMTAyLCAxLCAyNTIsIDE5MSwgMTAyLCAxLCAyNTIsIDE5MiwgCisgICAgMjM0LCAxNzIsIDEwMiwgMSwgMTg0LCAxMDIsIDEsIDE5MSwgMTAyLCAxLCAyMDUsIDEwMiwgMSwgMjMzLCAxMzUsIDEwMiwgCisgICAgMSwgMjEyLCA2NSwgMTAyLCAxLCAyMjIsIDM0LCAyMjIsIDIwLCAxMDIsIDEsIDIyMiwgMzQsIDIyMSwgMjMzLCAxMDIsIDEsIAorICAgIDIwNiwgMTAyLCAxLCAxNjIsIDEwMiwgNSwgMjIzLCA3MCwgMTAyLCAyNSwgNSwgMjE3LCAxMywgMTAyLCAyNSwgNSwgMjE0LCAKKyAgICAxOTksIDEwMiwgMjUsIDUsIDIxNCwgMjAwLCAyMjEsIDIyOSwgMTAyLCAyNSwgNSwgMjE4LCA0NywgMTAyLCAyNSwgNSwgCisgICAgMjE4LCA0OCwgMjM2LCAyMSwgMTAyLCAyNSwgNSwgMjIzLCAxODgsIDIyMywgNzksIDEwMiwgMjUsIDUsIDIyMywgMTg4LCAKKyAgICAyMjMsIDgwLCAyMTcsIDEzLCAxMDIsIDI1LCA1LCAyMzMsIDEzNiwgMjMzLCAyNCwgMTAyLCAyNSwgNSwgMjMzLCAxMzYsIAorICAgIDIzMywgMjUsIDIxNywgMTMsIDEwMiwgMjUsIDUsIDIxNywgNjUsIDEwMiwgMjUsIDUsIDIxNywgNjYsIDIyMywgNzksIDEwMiwgCisgICAgMjUsIDUsIDIxNywgNjYsIDIxNywgMTMsIDEwMiwgMjUsIDUsIDIxNywgNjYsIDIyMywgODAsIDIxNywgMTMsIDEwMiwgMjUsIAorICAgIDUsIDIyNSwgMTg0LCAxMDIsIDI1LCA1LCAyMjUsIDE4NSwgMjE3LCAxMywgMTAyLCAyNTQsIDI1MCwgMjU0LCAyNDksIDEwMiwgCisgICAgMSwgMjM0LCAyNTEsIDIyMSwgMjI4LCAxMDIsIDEsIDIzNCwgMTAyLCAyMjEsIDIyOCwgMTAyLCAxLCAyMTUsIDM0LCAyMjEsIAorICAgIDIyOCwgMTAyLCAxLCAyNDUsIDIwMywgMjIxLCAyMjgsIDEwMiwgMSwgMjE0LCAwLCAyMjEsIDIyOCwgMTAyLCAxLCAyMTAsIAorICAgIDEwNywgMjIxLCAyMjgsIDEwMiwgMSwgMjUzLCAyMDksIDIyMSwgMjI4LCAxMDIsIDIxLCAyMTAsIDg2LCAxMDIsIDIxLCAKKyAgICAxMTAsIDEwMiwgMjEsIDEwNSwgMTAyLCAyMSwgMTU4LCAxMDIsIDIxLCAxNjEsIDEwMiwgMjEsIDE4OSwgMTAyLCAyMSwgCisgICAgMTk0LCAxMDIsIDIxLCAxOTgsIDEwMiwgMjEsIDE5NSwgMTAyLCAyMSwgMjAwLCAxMDIsIDIyNiwgMjksIDEwMiwgMjI2LCAKKyAgICA1NSwgMTAyLCAyMTEsIDIzOCwgMTAyLCAyNTAsIDIzNiwgMjI2LCA0OCwgMTAyLCAyNTAsIDIzNiwgMjE5LCAxNzIsIDEwMiwgCisgICAgMjUwLCAyMzYsIDIyNiwgMiwgMTAyLCAyMjYsIDU0LCAxMDIsIDI4LCAxNiwgMjQ3LCAxMjYsIDEwMiwgMjgsIDE2LCAyNDgsIAorICAgIDUxLCAxMDIsIDI4LCAxNiwgMjQ2LCA2NCwgMTAyLCAyOCwgMTYsIDI0OCwgMTc2LCAxMDIsIDI4LCAxNiwgMjQ4LCAxNzcsIAorICAgIDIxOCwgMTUsIDEwMiwgMjgsIDE2LCAyNDcsIDIwNSwgMTAyLCAyOCwgMTYsIDI0OCwgMjE0LCAxMDIsIDI4LCAxNiwgMjQ4LCAKKyAgICAzMywgMTAyLCAyOCwgMTYsIDI0OCwgMTk4LCAxMDIsIDI4LCAxNiwgMjQ4LCAxNzcsIDI0MywgNTcsIDEwMiwgMjgsIDE2LCAKKyAgICAzOCwgMjE3LCA5LCAxMDIsIDI4LCAxNiwgMzgsIDI0NSwgMTQxLCAxMDIsIDI4LCAxNiwgMzgsIDIzNCwgMTY3LCAxMDIsIAorICAgIDI4LCAxNiwgMzgsIDIzNCwgMTY5LCAxMDIsIDI4LCAxNiwgMzgsIDIzNSwgMTIyLCAxMDIsIDI4LCAxNiwgMzgsIDIzNCwgCisgICAgMTY4LCAyLCAyMzUsIDEyMiwgMTAyLCAyOCwgMTYsIDM4LCAyMzQsIDE3MCwgMiwgMjM1LCAxMjIsIDEwMiwgMjgsIDE2LCAKKyAgICAzOCwgMjUyLCAzNywgMTAyLCAyOCwgMTYsIDM4LCAyNDIsIDE2NSwgMTAyLCAyOCwgMTYsIDIyMiwgMjQ5LCAyMDQsIDI0NiwgCisgICAgNzQsIDEwMiwgMjgsIDE2LCAyMjIsIDI0OSwgMjA0LCAyNDgsIDIxMiwgMTAyLCAyOCwgMTYsIDIyMiwgMjQ5LCAyNTAsIDAsIAorICAgIDIxNSwgMTExLCAxMDIsIDI4LCAxNiwgMjIyLCAyNDksIDI1MCwgMCwgMjE3LCA3MywgMTAyLCAyOCwgMTYsIDIzMywgNDQsIAorICAgIDIwNCwgMjI2LCA0MywgMTAyLCAyOCwgMTYsIDIzMywgNDQsIDIwNCwgMjI0LCAxMzksIDEwMiwgMjgsIDE2LCAyMzMsIDQ0LCAKKyAgICAyNTAsIDAsIDIyNSwgMzgsIDEwMiwgMjgsIDE2LCAyMzMsIDQ0LCAyNTAsIDAsIDIyNSwgMjYsIDEwMiwgMjgsIDE2LCAyMzMsIAorICAgIDQ0LCAyMDQsIDIyNSwgNjEsIDIwNywgNSwgMjI2LCAyNiwgMjA3LCA1LCAyMjYsIDM5LCAyMDcsIDUsIDIyNiwgMzUsIDIwNywgCisgICAgMSwgNjEsIDIwNywgMSwgNzMsIDIwNywgMSwgNzAsIDIwNywgMSwgMjU0LCAyNDMsIDIwNywgMSwgNzYsIDIwNywgMSwgNzUsIAorICAgIDIwNywgMSwgMjQ1LCA1NSwgMjA3LCAxLCAxNzYsIDIwNywgMSwgMjI0LCA4OCwgMjA3LCAxLCAyNDMsIDEzNSwgMjA3LCAxLCAKKyAgICAyMjksIDc3LCAyMDcsIDEsIDI1MSwgMzMsIDIwNywgMSwgMjM1LCAxNDEsIDIwNywgMSwgMjEwLCAxMTYsIDIwNywgMSwgCisgICAgMjI3LCAxNjUsIDIwNywgMSwgMjE3LCAxMDUsIDIwNywgMSwgMjQ4LCAyMjEsIDIwNywgMSwgMTk3LCAyMDcsIDEsIDE5MCwgCisgICAgMjA3LCAxLCAyNDQsIDE5NiwgMjA3LCAxLCAyMTQsIDI3LCAyMDcsIDEsIDI1MiwgMTkxLCAyMDcsIDEsIDE4NCwgMjA3LCAxLCAKKyAgICAxOTEsIDIwNywgMSwgMjA1LCAyMDcsIDEsIDIzMywgMTM1LCAyMDcsIDEsIDIxMiwgNjUsIDIwNywgMSwgMjA2LCAyMDcsIDEsIAorICAgIDIxMSwgMTY1LCAyMDcsIDEsIDE2MiwgMjA3LCAxMTYsIDUsIDIyNiwgNTIsIDIwNywgMTE2LCA1LCAyMjYsIDI4LCAyMDcsIAorICAgIDExNiwgNSwgMjI2LCAyNSwgMjA3LCAyNSwgNSwgMjI2LCA0MiwgMjA3LCAyNSwgNSwgMjI2LCAyNCwgMjA3LCAyNSwgNSwgCisgICAgMjI2LCA0NiwgMjA3LCAyNSwgNSwgMjI2LCAzNCwgMjA3LCAyNSwgNSwgMjI2LCA1MywgMjA3LCAyNSwgNSwgMjI2LCA0NCwgCisgICAgMjA3LCA1LCAyMjYsIDU2LCAyMDcsIDUsIDIxMywgMTUyLCAyMDcsIDExNiwgNSwgMjI1LCAyNDgsIDE4NCwgMjA3LCAxMTYsIAorICAgIDUsIDIyNSwgMjQ4LCAyMTIsIDY1LCAyMDcsIDEsIDIzNCwgMTMyLCAyMDcsIDEsIDIxNywgMjMxLCAyMDcsIDIxLCAyMTAsIAorICAgIDg2LCAyMDcsIDIxLCAxMTAsIDIwNywgMjEsIDEwNSwgMjA3LCAyMSwgMTU4LCAyMDcsIDIxLCAxNjEsIDIwNywgMjEsIDE4OSwgCisgICAgMjA3LCAyMSwgMTk0LCAyMDcsIDIxLCAxOTgsIDIwNywgMjEsIDE5NSwgMjA3LCAyMSwgMjAwLCAyMDcsIDI1MywgMTc1LCAKKyAgICAyMDcsIDEsIDIyMywgNTIsIDIwNywgMSwgMjMzLCA3LCAyMDcsIDEsIDI1MiwgMTgsIDIwNywgMSwgNDAsIDIzNSwgMjMsIAorICAgIDIwNywgMSwgNDAsIDE5MywgMjUyLCAxMjAsIDEsIDYxLCAyNTIsIDEyMCwgMSwgMjE5LCAxNjQsIDYxLCAyNTIsIDEyMCwgMSwgCisgICAgMTYyLCAyNTIsIDEyMCwgMSwgMjE5LCAxNjQsIDE2MiwgMjUyLCAxMjAsIDEsIDIzMSwgMTgxLCAxNjIsIDI1MiwgMTIwLCAxLCAKKyAgICAyNTIsIDE5MSwgMjUyLCAxMjAsIDEsIDIzNCwgMjEyLCAyNTIsIDE5MSwgMjUyLCAxMjAsIDEsIDE5MCwgMjUyLCAxMjAsIDEsIAorICAgIDIxOSwgMTY0LCAxOTAsIDI1MiwgMTIwLCAxLCAxOTcsIDI1MiwgMTIwLCAxLCAyMzEsIDE4MSwgMTk3LCAyNTIsIDEyMCwgMSwgCisgICAgMjEyLCA2NSwgMjUyLCAxMjAsIDEsIDIxOSwgMTY0LCAyMTIsIDY1LCAyNTIsIDEyMCwgMSwgMjI2LCA2NywgMjEyLCA2NSwgCisgICAgMjUyLCAxMjAsIDEsIDI0MywgMTM1LCAyNTIsIDEyMCwgMSwgMjE5LCAxNjQsIDI0MywgMTM1LCAyNTIsIDEyMCwgMSwgMjM1LCAKKyAgICAxNDEsIDI1MiwgMTIwLCAxLCAyNDgsIDIyMSwgMjUyLCAxMjAsIDEsIDIwNSwgMjUyLCAxMjAsIDEsIDIxOSwgMTY0LCAyMDUsIAorICAgIDI1MiwgMTIwLCAxLCAxODQsIDI1MiwgMTIwLCAxLCAyMTksIDE2NCwgMTg0LCAyNTIsIDEyMCwgMSwgMjE5LCAyNiwgMjE3LCAKKyAgICAxMDUsIDI1MiwgMTIwLCAxLCAyMjgsIDU1LCAyMTcsIDEwNSwgMjUyLCAxMjAsIDEsIDIwNiwgMjUyLCAxMjAsIDEsIDIxOSwgCisgICAgMTY0LCAyMDYsIDI1MiwgMTIwLCAxLCAyMzEsIDE4MSwgMjA2LCAyNTIsIDEyMCwgMSwgMTkxLCAyNTIsIDEyMCwgMSwgMjE5LCAKKyAgICAxNjQsIDE5MSwgMjUyLCAxMjAsIDEsIDIyOSwgNzcsIDI1MiwgMTIwLCAxLCAyMzMsIDEzNSwgMjUyLCAxMjAsIDEsIDIxOSwgCisgICAgMTY0LCAyMzMsIDEzNSwgMjUyLCAxMjAsIDEsIDIyNywgMTY1LCAyNTIsIDEyMCwgMSwgMjUxLCAzMywgMjUyLCAxMjAsIDEsIAorICAgIDIyOSwgMTQ4LCAyNTIsIDEyMCwgMSwgMjMxLCAxMjQsIDI1MiwgMTIwLCAxLCA3MywgMjUyLCAxMjAsIDEsIDcwLCAyNTIsIAorICAgIDEyMCwgNSwgMjE2LCAzMywgMjUyLCAxMjAsIDI1LCA1LCA3NSwgMjUyLCAxMjAsIDI1LCA1LCAyMjYsIDY3LCA3NSwgMjUyLCAKKyAgICAxMjAsIDI1LCA1LCAyNDUsIDIwOSwgMjUyLCAxMjAsIDI1LCA1LCA3MywgMjUyLCAxMjAsIDI1LCA1LCAyMzQsIDIxMiwgNzMsIAorICAgIDI1MiwgMTIwLCAyNSwgNSwgNzYsIDI1MiwgMTIwLCAyNSwgNSwgMjM0LCAyMTIsIDc2LCAyNTIsIDEyMCwgMjUsIDUsIDcwLCAKKyAgICAyNTIsIDEyMCwgMjUsIDUsIDEwNCwgMzEsIDIxOSwgMTY0LCAyMDYsIDI1MiwgMTIwLCAxMTYsIDUsIDIyOSwgNzksIDI1MiwgCisgICAgMTIwLCAxMTYsIDUsIDI0MiwgNjAsIDI1MiwgMTIwLCAyMjYsIDM3LCAyNTIsIDEyMCwgMjI2LCAzMywgMjUyLCAxMjAsIDE2LCAKKyAgICAyNTEsIDI0MSwgMjI5LCAyMjksIDIzMSwgMzcsIDI1MiwgMTIwLCAxNiwgMjUxLCAyNDEsIDIyNSwgNjQsIDI1MiwgMTIwLCAKKyAgICAxNiwgMjUxLCAyNDEsIDIzNSwgNDgsIDI1MiwgMTIwLCAxNiwgMjUxLCAyNDEsIDIyNiwgMzcsIDE5NiwgMSwgMTc2LCAxOTYsIAorICAgIDEsIDIzNCwgMzksIDE5NiwgMSwgMjM0LCAxMzIsIDE5NiwgMSwgMjQzLCAxMzUsIDE5NiwgMSwgMjQyLCAxODYsIDE5NiwgMSwgCisgICAgMjI5LCA3NywgMTk2LCAxLCAyNTEsIDMzLCAxOTYsIDEsIDI1MCwgMTU3LCAxOTYsIDEsIDIzNSwgMTQxLCAxOTYsIDEsIAorICAgIDIyNywgMTY1LCAxOTYsIDEsIDIxNywgMTA1LCAxOTYsIDEsIDIxNiwgMjA4LCAxOTYsIDEsIDI0OCwgMjIxLCAxOTYsIDEsIAorICAgIDE5NywgMTk2LCAxLCAxOTAsIDE5NiwgMSwgMjI1LCA0MiwgMTk2LCAxLCAyMjUsIDE0NywgMTk2LCAxLCAyNDQsIDE5NiwgCisgICAgMTk2LCAxLCAyNDQsIDc1LCAxOTYsIDEsIDI1MiwgMTkxLCAxOTYsIDEsIDI1MSwgMjIyLCAxOTYsIDEsIDE4NCwgMTk2LCAxLCAKKyAgICAyMzAsIDE2OCwgMTk2LCAxLCAyMTUsIDE4MywgMTk2LCAxLCAyMTUsIDE3NSwgMTk2LCAxLCAyNDYsIDM4LCAxOTYsIDEsIAorICAgIDE5MSwgMTk2LCAxLCAyMDUsIDE5NiwgMSwgMjMzLCAxMzUsIDE5NiwgMSwgMTYyLCAxOTYsIDEsIDI0MSwgMTUzLCAxOTYsIAorICAgIDEsIDIxNCwgMjcsIDE5NiwgMSwgMjA2LCAxOTYsIDEsIDIyMCwgMTAyLCAxOTYsIDEsIDIxMiwgNjUsIDE5NiwgMSwgNjEsIAorICAgIDE5NiwgMjE4LCA3MywgMSwgMTkxLCAxOTYsIDIxOCwgNzMsIDEsIDIwNSwgMTk2LCAyNSwgNSwgMjU1LCA3MywgMTk2LCAyNSwgCisgICAgNSwgNzMsIDE5NiwgMjUsIDUsIDc2LCAxOTYsIDI1LCA1LCAyMjYsIDE4MywgMTk2LCAyNSwgNSwgNzAsIDE5NiwgMjUsIDUsIAorICAgIDIxNCwgMTE4LCAxOTYsIDI1LCA1LCA3NSwgMTk2LCAxMTYsIDUsIDIzNSwgMjMsIDE5NiwgMTE2LCA1LCAxOTMsIDE5NiwgCisgICAgMTE2LCA1LCAxNTYsIDE5NiwgMTE2LCA1LCAyMzAsIDI1LCAxOTYsIDExNiwgNSwgMjI2LCAxMDUsIDE5NiwgMTE2LCA1LCAKKyAgICAxNTMsIDE5NiwgMTE2LCA1LCAyMTcsIDE1MiwgMTk2LCAxMTYsIDUsIDIyNywgMTQyLCAxOTYsIDExNiwgNSwgMjM0LCAyMzAsIAorICAgIDE5NiwgNSwgMjIzLCAxNTAsIDE5NiwgNSwgMjI3LCAyMDUsIDE5NiwgMjI0LCAxNDEsIDIxNywgMTAzLCAxOTYsIDIyNCwgCisgICAgMTQxLCAyMjcsIDE1MiwgMjE2LCAxMjAsIDIxNywgMTAzLCAxOTYsIDIyNCwgMTQxLCAyNTAsIDE2NCwgMTk2LCAyMjQsIAorICAgIDE0MSwgMjE1LCAxNzAsIDI1MCwgMTY0LCAxOTYsIDIyNCwgMTQxLCAyMTUsIDE2OSwgMTk2LCAyMSwgMjEwLCA4NiwgMTk2LCAKKyAgICAyMSwgMTEwLCAxOTYsIDIxLCAxMDUsIDE5NiwgMjEsIDE1OCwgMTk2LCAyMSwgMTYxLCAxOTYsIDIxLCAxODksIDE5NiwgMjEsIAorICAgIDE5NCwgMTk2LCAyMSwgMTk4LCAxOTYsIDIxLCAxOTUsIDE5NiwgMjEsIDIwMCwgMTk2LCAxLCAyMTUsIDE1NiwgMTk2LCAxLCAKKyAgICAyMTUsIDE0NCwgMTk2LCAxLCAyNDgsIDEzNSwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMSwgMjEwLCA4NiwgMjI2LCAyMTAsIAorICAgIDI1MCwgMTAzLCAyMSwgMTEwLCAyMjYsIDIxMCwgMjUwLCAxMDMsIDIxLCAxMDUsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjEsIAorICAgIDE1OCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMSwgMTYxLCAyMjYsIDIxMCwgMjUwLCAxMDMsIDIxLCAxODksIDIyNiwgMjEwLCAKKyAgICAyNTAsIDEwMywgMjEsIDE5NCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMSwgMTk4LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDIxLCAKKyAgICAxOTUsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjEsIDIwMCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyMzMsIDEzNSwgMjI2LCAKKyAgICAyMTAsIDI1MCwgMTAzLCAxLCAyNTMsIDIwNiwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyNTQsIDIxNiwgMjI2LCAyMTAsIAorICAgIDI1MCwgMTAzLCAxLCAyNTQsIDExNSwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyNTQsIDE3OCwgMjI2LCAyMTAsIDI1MCwgCisgICAgMTAzLCAxLCAyMzMsIDEzNCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyNTUsIDM1LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIAorICAgIDI1NSwgMzYsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjU1LCAzNCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyNTUsIDI5LCAKKyAgICAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDIzMiwgMjQxLCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDIzNSwgMTcxLCAyMjYsIAorICAgIDIxMCwgMjUwLCAxMDMsIDEsIDIzNiwgMzQsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjM1LCAxOTAsIDIyNiwgMjEwLCAKKyAgICAyNTAsIDEwMywgMSwgMjM1LCAxNzksIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjMyLCA5OCwgMjI2LCAyMTAsIDI1MCwgCisgICAgMTAzLCAxLCAyMTQsIDIyMSwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyMTQsIDIxOSwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAKKyAgICAyMTQsIDE2OCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyMTQsIDExMSwgMjI2LCAyMTAsIDI1MCwgMTAzLCAxLCAyMzMsIAorICAgIDU4LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDI0NSwgMTA4LCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDI0NSwgMjEyLCAKKyAgICAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDI0NSwgMTUwLCAyMjYsIDIxMCwgMjUwLCAxMDMsIDEsIDI0NSwgODYsIDIyNiwgCisgICAgMjEwLCAyNTAsIDEwMywgMSwgMjMyLCAxNTYsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjI2LCAxMzcsIDIyNiwgMjEwLCAKKyAgICAyNTAsIDEwMywgMSwgMjI2LCAyNTIsIDIyNiwgMjEwLCAyNTAsIDEwMywgMSwgMjI2LCAxMjUsIDIyNiwgMjEwLCAyNTAsIAorICAgIDEwMywgMSwgMjI2LCAyMjIsIDIyNiwgMjEwLCAyNTAsIDEwMywgMjMwLCAxMDMsIDIxNSwgMTIxLCAyMjYsIDIxMCwgMjUwLCAKKyAgICAxMDMsIDI0MywgMTMwLCAyMTUsIDEyMiwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMzAsIDEwMSwgMjE1LCAxMjIsIDIyNiwgCisgICAgMjEwLCAyNTAsIDEwMywgMjIzLCA5MiwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMjUsIDE0NSwgMjI2LCAyMTAsIDI1MCwgMTAzLCAKKyAgICAyNTQsIDIwOCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMjQsIDE0MSwgMjMwLCA5OCwgMjI2LCAyMTAsIDI1MCwgMTAzLCAyMjQsIAorICAgIDE0MSwgNTIsIDIzMCwgOTgsIDIwNywgMjI0LCAxNDEsIDI1MSwgMjQxLCAyMTgsIDgsIDIwNywgMjI0LCAxNDEsIDI1MSwgCisgICAgMjQxLCAyMjYsIDM4LCAyMDcsIDIyNCwgMTQxLCAyNTEsIDI0MSwgMjI0LCAxMjksIDIwNywgMjI0LCAxNDEsIDI1MSwgMjQxLCAKKyAgICAyNTEsIDE5LCAyMDcsIDIyNCwgMTQxLCAyNTEsIDI0MSwgMjMzLCA4LCAyMjEsIDIyNSwgMjA3LCAyMjQsIDE0MSwgMjUxLCAKKyAgICAyNDEsIDIzNSwgMTMsIDIyMSwgMjI1LCAyMDcsIDIyNCwgMTQxLCAyNTEsIDI0MSwgMjQ4LCAyMjIsIDIyMSwgMjI1LCAyMDcsIAorICAgIDIyNCwgMTQxLCAyNTEsIDI0MSwgMjUyLCAxOTIsIDIyMSwgMjI1LCAyMTMsIDI1MiwgMTM4LCAyMzQsIDIxMCwgMjEzLCAKKyAgICAyNTIsIDEzOCwgMjIwLCA3NywgMjEzLCAyNTIsIDEzOCwgMjI0LCAxOTgsIDIxMywgMjUyLCA1LCAyMjgsIDIwOSwgMjEzLCAKKyAgICAyNTIsIDUsIDIxMSwgODAsIDIzMCwgMjIyLCAyMTgsIDAsIDIxMywgMjUyLCAxMzgsIDIxMSwgODAsIDI1NCwgMjEzLCAyMzUsIAorICAgIDI0MywgMjE4LCAwLCAyMTMsIDI1MiwgMTM4LCAyMTEsIDgwLCAyMzUsIDI0MywgMjE4LCAwLCAyMTMsIDI1MiwgMTM4LCAKKyAgICAyMTEsIDgwLCAyMzQsIDE5OCwgMjM1LCAyNDMsIDIxOCwgMCwgMjEzLCAyNTIsIDEzOCwgMjUxLCAyLCA1MSwgMjEzLCAyNTIsIAorICAgIDEzOCwgMjExLCA4MCwgMjM0LCAxOTgsIDIzNSwgMjQzLCAyMTgsIDEsIDIyMSwgMTk3LCAyMTMsIDI1MiwgMTM4LCA1MiwgCisgICAgMjE4LCAwLCAyMTMsIDI1MiwgMTM4LCAyMTUsIDIxMSwgMjE4LCAwLCAyMTMsIDI1MiwgMTM4LCAyMzQsIDE5OCwgMjU0LCAKKyAgICA3NywgMjEzLCAyNTIsIDEzOCwgNTksIDUxLCAyMTMsIDI1MiwgMTM4LCAxMTMsIDE3MCwgNTEsIDIxMywgMjUyLCAxMzgsIAorICAgIDEzNCwgMTcwLCA1MSwgMjEzLCAyNTIsIDEzOCwgMjIyLCAyNDAsIDIzNCwgMjA5LCAyMzUsIDI0MywgMjE4LCAwLCAyMTMsIAorICAgIDI1MiwgMTM4LCAyNTMsIDIwNCwgMjM1LCAyNDMsIDIxOCwgMCwgMjEzLCAyNTIsIDUsIDIxMywgMTQ4LCAyMTgsIDAsIDIxMywgCisgICAgMjUyLCA1LCAyMTMsIDE0OCwgMjE0LCAyMTYsIDIxMywgMjUyLCA1LCAyMjMsIDQ5LCAyMTMsIDE0OCwgMjE0LCAyMTYsIAorICAgIDIxMywgMjUyLCA1LCAyMTMsIDE0OCwgMjU0LCA3NywgMjEzLCAyNTIsIDUsIDIyMywgNDksIDIxMywgMTQ4LCAyNTQsIDc3LCAKKyAgICAyMTMsIDI1MiwgNSwgMjEzLCAxNDgsIDIxNCwgMjE3LCAyLCAyMTcsIDc3LCAyMTMsIDI1MiwgNSwgMjEzLCAxNDgsIDI1NCwgCisgICAgNzgsIDIsIDIxNywgNzcsIDIxMywgMjUyLCA1LCAyNTQsIDc2LCAyNTQsIDkxLCAyMTMsIDI1MiwgNSwgMjU0LCA3NiwgMjUyLCAKKyAgICAxNjYsIDIxMywgMjUyLCA1LCAyNTQsIDc2LCAyMTQsIDIwLCAyMTMsIDI1MiwgNSwgMjU0LCA3NiwgMjE0LCAyMSwgMiwgCisgICAgMjE3LCA3NywgMjEzLCAyNTIsIDUsIDIxNiwgNjgsIDIxMywgMjUyLCA1LCAyNDEsIDE5MSwgMTk5LCAyNTQsIDc1LCAyMTMsIAorICAgIDI1MiwgNSwgMTk5LCAyNTQsIDc1LCAyMTMsIDI1MiwgNSwgMjIyLCAxNDIsIDE5OSwgMjU0LCA3NSwgMjEzLCAyNTIsIDUsIAorICAgIDI1NCwgNzYsIDIxNCwgMjIzLCAyMzAsIDkwLCAyMTMsIDI1MiwgNSwgMjU0LCAyMCwgMjEzLCAyNTIsIDUsIDIyMiwgMTg3LCAKKyAgICAyNTQsIDIwLCAyMTMsIDI1MiwgMTM4LCAyNTEsIDIsIDQ4LCAyMTMsIDI1MiwgNSwgMjM1LCAxMDIsIDIxMywgMjUyLCA1LCAKKyAgICAyMTQsIDE2MSwgNywgMSwgNCwgNiwgNjEsIDcsIDEsIDQsIDYsIDI1NCwgMjQzLCA3LCA0LCAxLCAyMTUsIDk0LCAyNTQsIAorICAgIDI0MywgNywgMSwgNCwgNiwgMjUyLCAxMzQsIDI1MywgMTU4LCA3LCAxLCA0LCA2LCAyNTEsIDY2LCA3LCAxLCA0LCA2LCAKKyAgICAyNDksIDYwLCA3LCAxLCA0LCA2LCAyNDUsIDU5LCA3LCAxLCA0LCA2LCA3NSwgNywgNCwgMSwgMjE1LCA5NCwgMjA0LCA3NSwgCisgICAgNywgNCwgMSwgMjE1LCA5NCwgNzMsIDcsIDEsIDQsIDYsIDIzNSwgMTQ0LCA3LCAxLCA0LCA2LCAyMzUsIDIzLCA3LCAxLCA0LCAKKyAgICA2LCAyMzMsIDE0OSwgMiwgOTEsIDcsIDEsIDQsIDYsIDE5MywgNywgMSwgNCwgNiwgMjIzLCA0OSwgMjMwLCAyNSwgNywgMSwgCisgICAgNCwgNiwgNzYsIDcsIDEsIDQsIDYsIDIwNCwgNzYsIDcsIDQsIDEsIDIxOSwgMTg3LCA3NiwgNywgNCwgMSwgMjE5LCAxODcsIAorICAgIDIwNCwgNzYsIDcsIDQsIDEsIDIxOSwgMTg3LCAxNDQsIDIsIDkxLCA3LCA0LCAxLCAyMTUsIDk0LCAyMjYsIDIzNCwgNywgMSwgCisgICAgNCwgNiwgMjI2LCAxMzQsIDcsIDQsIDEsIDIxNiwgMTQsIDE2MywgNzYsIDcsIDQsIDEsIDI1MSwgMTc1LCAxNjMsIDc2LCA3LCAKKyAgICAxLCA0LCA2LCAyMjYsIDEwNSwgNywgMSwgNCwgNiwgMjIzLCA0OSwgMTUzLCA3LCAxLCA0LCA2LCAyMTUsIDk0LCAxNTMsIDcsIAorICAgIDEsIDQsIDYsIDIxNywgMTUyLCA3LCAxLCA0LCA2LCA3MCwgNywgNCwgMSwgMjE5LCAxODcsIDcwLCA3LCA0LCAxLCAyMTksIAorICAgIDE4NywgMjQ4LCAwLCA3MCwgNywgNCwgMSwgMjE5LCAxODcsIDIxNSwgOTQsIDE5MywgNywgMSwgNCwgNiwgMjE0LCAxMDUsIAorICAgIDcsIDEsIDQsIDYsIDIxMiwgOTgsIDcsIDEsIDQsIDYsIDIxMCwgMTU5LCA3LCAxLCA0LCA2LCAyNDUsIDgsIDcsIDEsIDIxMywgCisgICAgMTM1LCAyMzMsIDgyLCAyMTgsIDI1MCwgNywgMSwgMjU0LCAxOTYsIDI2LCAxLCA0LCA2LCAyNDMsIDEwNywgMjYsIDEsIDQsIAorICAgIDYsIDIzMywgOTgsIDI2LCAxLCA0LCA2LCAyMjUsIDEwOCwgMjYsIDEsIDQsIDYsIDIyMywgMzcsIDI2LCAxLCA0LCA2LCAKKyAgICAyMjQsIDE2MSwgMzMsIDEsIDQsIDYsIDI0NSwgMTc0LCA1OCwgMSwgNiwgNjEsIDU4LCAxLCA2LCAyNTQsIDI0MywgNTgsIDEsIAorICAgIDYsIDI1MywgMTU4LCA1OCwgMSwgNiwgMjUyLCAxMzQsIDI1MywgMTU4LCA1OCwgMSwgNiwgMjQ5LCA2MCwgNTgsIDEsIDYsIAorICAgIDc1LCA1OCwgMSwgNiwgMjIzLCA0OSwgNzUsIDU4LCAxLCA2LCAyNDMsIDIwMiwgNTgsIDEsIDYsIDI0MiwgNjAsIDU4LCAxLCAKKyAgICA2LCA3MywgNTgsIDEsIDYsIDIzNSwgMTQ0LCA1OCwgMSwgNiwgMjM1LCAyMywgNTgsIDEsIDYsIDE1NiwgNTgsIDEsIDYsIAorICAgIDE5MywgNTgsIDEsIDYsIDIzMCwgMjUsIDU4LCAxLCA2LCAyMjMsIDQ5LCAyMzAsIDI1LCA1OCwgMSwgNiwgNzYsIDU4LCAxLCAKKyAgICA2LCAyMjYsIDEzNCwgNTgsIDEsIDYsIDIyNiwgMTA1LCA1OCwgMSwgNiwgMTUzLCA1OCwgMSwgNiwgMjE3LCAxNTIsIDU4LCAKKyAgICAxLCA2LCA3MCwgNTgsIDEsIDYsIDIxMiwgOTgsIDU4LCAxLCA0LCA2MSwgNTgsIDEsIDQsIDIxNSwgOTQsIDYxLCA1OCwgMSwgCisgICAgNCwgMjU0LCAxNDMsIDU4LCAxLCA0LCAyMTUsIDk0LCAyNTQsIDI0MywgNTgsIDEsIDQsIDI1MywgMTU4LCA1OCwgMSwgNCwgCisgICAgMjQ5LCA2MCwgNTgsIDEsIDQsIDc1LCA1OCwgMSwgNCwgMjIxLCAxOTUsIDU4LCAxLCA0LCAyMDQsIDc1LCA1OCwgMSwgNCwgCisgICAgMjE1LCA5NCwgMjA0LCA3NSwgNTgsIDEsIDQsIDI0MywgMjAyLCA1OCwgMSwgNCwgMjE1LCA5NCwgNzMsIDU4LCAxLCA0LCAKKyAgICAyMzUsIDIzLCA1OCwgMSwgNCwgMTkzLCA1OCwgMSwgNCwgMjQ1LCAxMzgsIDU4LCAxLCA0LCA3NiwgNTgsIDEsIDQsIDIwNCwgCisgICAgNzYsIDU4LCAxLCA0LCAyMTYsIDE0LCAxNjMsIDc2LCA1OCwgMSwgNCwgMjUxLCAxNzUsIDE2MywgNzYsIDU4LCAxLCA0LCAKKyAgICAyMjYsIDEwNSwgNTgsIDEsIDQsIDIxNywgMTUyLCA1OCwgMSwgNCwgNzAsIDU4LCAxLCA0LCAyMTksIDE4NywgNzAsIDU4LCAKKyAgICAxLCA0LCAyMTUsIDk0LCAxOTMsIDU4LCAxLCA0LCAyMTQsIDEwNSwgNTgsIDEsIDQsIDI1NCwgMTk2LCA1OCwgMSwgNCwgCisgICAgMjUyLCAyNiwgNTgsIDEsIDQsIDI2LCAyNDMsIDEwNywgNTgsIDEsIDQsIDI0OCwgNTQsIDU4LCAxLCA0LCAyNiwgMjI1LCAKKyAgICAxMzMsIDU4LCAxLCA0LCAyNTAsIDExMCwgNywgMjE4LCA2NSwgNCwgMSwgNzMsIDcsIDIxOCwgNjUsIDQsIDEsIDE1MywgNywgCisgICAgMjE4LCA2NSwgNCwgMSwgNzAsIDcsIDIxOCwgNjUsIDQsIDEsIDIxNCwgMTA1LCAyNiwgMjE4LCA2NSwgNCwgMSwgMjUyLCAKKyAgICAyNiwgMjYsIDIxOCwgNjUsIDQsIDEsIDI0MywgMTA3LCAyNiwgMjE4LCA2NSwgNCwgMSwgMjIzLCAzNywgMjYsIDIxOCwgNjUsIAorICAgIDQsIDEsIDIyNSwgMTMzLCAyNiwgMjE4LCA2NSwgNCwgMSwgMjUwLCAxMTAsIDcsIDQsIDEsIDIxNCwgMjE0LCA3LCA0LCAxLCAKKyAgICA1NywgMiwgMjMwLCAyMjQsIDE4MiwgNywgNCwgMSwgMjQ5LCA2MSwgMiwgMjMwLCAyMjQsIDE4MiwgNywgNCwgMSwgMjQ1LCAKKyAgICA3LCAyLCAyMzAsIDIyNCwgMTgyLCA3LCA0LCAxLCAyMzIsIDUwLCAyLCAyMzAsIDIyNCwgMTgyLCA3LCA0LCAxLCAyMzAsIAorICAgIDI2LCAyLCAyMzAsIDIyNCwgMTgyLCA3LCA0LCAxLCAyMjYsIDEwNiwgMiwgMjMwLCAyMjQsIDE4MiwgNywgNCwgMSwgMjIzLCAKKyAgICAyMjQsIDIsIDIzMCwgMjI0LCAxODIsIDcsIDQsIDEsIDIyMywgMjI0LCAyLCAyNDQsIDg4LCAyMiwgMjMwLCAyMjQsIDE4MiwgCisgICAgNywgNCwgMSwgMjIyLCA5MiwgMiwgMjMwLCAyMjQsIDE4MiwgNywgNCwgMSwgMjE3LCAxNTMsIDIsIDIzMCwgMjI0LCAxODIsIAorICAgIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCAyMzAsIDIyNCwgMTgyLCA3LCA0LCAxLCAyMTUsIDk0LCAyNDMsIDIwMiwgNTgsIDEsIAorICAgIDMzLCAyNDUsIDE1MCwgNywgNCwgMSwgMjM1LCAyMTMsIDI0MywgMjAyLCA3LCA0LCAxLCAyMTYsIDIxMSwgMiwgMjE4LCAKKyAgICAxMDcsIDcsIDQsIDYsIDEsIDI0MCwgMTU0LCAyLCA5MSwgNywgNCwgMSwgMjM1LCAxODYsIDIsIDkxLCA3LCA0LCAxLCAyMjYsIAorICAgIDEwNiwgMiwgOTEsIDcsIDQsIDYsIDEsIDEwNCwgMiwgOTEsIDcsIDQsIDEsIDIxNCwgMTU4LCAyLCA5MSwgNywgNCwgMSwgCisgICAgNTcsIDIsIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjQ5LCA2MSwgMiwgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyNDUsIDcsIAorICAgIDIsIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjQzLCAyMDMsIDIsIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjM1LCAyNCwgMiwgCisgICAgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyMzIsIDUwLCAyLCAKKyAgICAyMjYsIDY2LCAxMDMsIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjI2LCAxMDYsIDIsIAorICAgIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjIzLCAyMjQsIDIsIDIyNiwgNjYsIDEwMywgNywgNCwgMSwgMjIyLCA5MiwgMiwgCisgICAgMjI2LCA2NiwgMTAzLCA3LCA0LCAxLCAyNDUsIDc2LCAyLCAyMjYsIDY2LCAxMDMsIDcsIDQsIDEsIDIxNCwgMTA2LCAyLCAKKyAgICAyMjYsIDY2LCAxMDMsIDcsIDQsIDEsIDIxMSwgMTc5LCAyLCAyMjYsIDY2LCAxMDMsIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCAKKyAgICAyMjYsIDY2LCAxMDMsIDcsIDQsIDEsIDExNSwgMiwgMjIzLCA1NSwgMTAzLCA3LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjIzLCAKKyAgICA1NSwgMTAzLCA3LCA0LCAxLCAyNDksIDYxLCAyLCAyNDEsIDUyLCAyMiwgMjE3LCA3NywgNywgNCwgMSwgMTYwLCAyLCAyMjMsIAorICAgIDU1LCAxMDMsIDcsIDQsIDEsIDIwNCwgMTYwLCAyLCAyMjMsIDU1LCAxMDMsIDcsIDQsIDEsIDIyMywgNDksIDIwNCwgMTYwLCAKKyAgICAyLCAyMjMsIDU1LCAxMDMsIDcsIDQsIDEsIDIyMSwgMTk2LCAyLCAyMjMsIDU1LCAxMDMsIDcsIDQsIDEsIDI0MCwgMTU0LCAKKyAgICAyLCAyMjMsIDU1LCAxMDMsIDcsIDQsIDEsIDIwNCwgMTQ0LCAyLCAyMjMsIDU1LCAxMDMsIDcsIDQsIDEsIDI0NSwgNzYsIDIsIAorICAgIDIyMywgNTUsIDEwMywgNywgNCwgMSwgMTA0LCAyLCAyMjMsIDU1LCAxMDMsIDcsIDQsIDEsIDI0NSwgOSwgMiwgMjIzLCA1NSwgCisgICAgMTAzLCA1OCwgMSwgNCwgMjE1LCA5NCwgMjU0LCAxNDMsIDU4LCAxLCA0LCAyNTEsIDY2LCA1OCwgMSwgNCwgMjUxLCA2NywgCisgICAgMiwgMjQ5LCAxMDAsIDU4LCAxLCA0LCAyNDUsIDU5LCA1OCwgMSwgNCwgMjIzLCA0OSwgMjA0LCA3NSwgNTgsIDEsIDQsIAorICAgIDI0NSwgNiwgNTgsIDEsIDQsIDI0NywgMTE5LCAyMzUsIDE0NSwgMiwgOTEsIDU4LCAxLCA0LCAxMTksIDI0MywgMjAyLCA1OCwgCisgICAgMSwgNCwgMjE1LCA5NCwgMjQyLCA2MCwgNTgsIDEsIDQsIDI0MCwgMTU0LCAyLCA5MSwgNTgsIDEsIDQsIDIzNSwgMTg1LCAKKyAgICA1OCwgMSwgNCwgNiwgNzMsIDU4LCAxLCA0LCA2LCAyNDAsIDE1NCwgMiwgOTEsIDU4LCAxLCA0LCAyMzUsIDE0NSwgMiwgCisgICAgMjQ5LCAxMjcsIDU4LCAxLCA0LCAyMzMsIDE0OSwgMiwgMjIzLCA1NSwgMTAzLCA1OCwgMSwgNCwgMjMzLCAxNDksIDIsIAorICAgIDIyNiwgNjYsIDEwMywgNTgsIDEsIDQsIDYsIDE1NiwgNTgsIDEsIDQsIDIzMiwgNTAsIDIsIDEwMywgNTgsIDEsIDQsIDIxNSwgCisgICAgOTQsIDIzMiwgNTAsIDIsIDE5OSwgMjMzLCAzNiwgNTgsIDEsIDQsIDIzMCwgMjYsIDIsIDQzLCAxMDMsIDU4LCAxLCA0LCAKKyAgICAyMzAsIDI2LCAyLCAyMjMsIDU1LCAxMDMsIDU4LCAxLCA0LCA2LCAyMzAsIDI1LCA1OCwgMSwgNCwgMjUyLCAxMzQsIDc2LCAKKyAgICA1OCwgMSwgNCwgMjI1LCAxMzMsIDU4LCAxLCA0LCAyMjIsIDkyLCAyLCAxMDMsIDU4LCAxLCA0LCAyNDUsIDc1LCA1OCwgMSwgCisgICAgNCwgMjE3LCAxNTMsIDIsIDIyNiwgNjYsIDEwMywgNTgsIDEsIDQsIDEwNCwgMTMwLCA1OCwgMSwgNCwgMjE0LCAxNTcsIDU4LCAKKyAgICAxLCA0LCA2LCA3MCwgNTgsIDEsIDQsIDIxNCwgMTA2LCAyLCAxMDMsIDU4LCAxLCA0LCAyMTUsIDk0LCAyMTQsIDEwNSwgNTgsIAorICAgIDEsIDQsIDIxMCwgMTU5LCA1OCwgMSwgNCwgMjEwLCAxNjAsIDIsIDIyMywgNTUsIDEwMywgNTgsIDEsIDQsIDIxMCwgMTYwLCAKKyAgICAyLCAyNDksIDEwMCwgNTgsIDEsIDQsIDI0NSwgOCwgNTgsIDEsIDQsIDIxNiwgMTc5LCAzOCwgMjQ2LCAxMTgsIDI0MiwgCisgICAgMTM3LCAyNTUsIDE0LCAzOCwgMjQ2LCAxMTgsIDI1NSwgMywgMjU1LCAxNCwgMzgsIDIxOSwgNjksIDUxLCAzOCwgMjE4LCA2LCAKKyAgICA3OCwgMzgsIDIzMSwgMjMxLCAzOCwgMjQyLCAxMzQsIDM4LCAyMzEsIDIyOSwgMzgsIDI1NSwgMSwgMzgsIDI0MiwgMTM1LCAKKyAgICAzOCwgMjU1LCAyLCAzOCwgNywgNCwgMSwgMjIzLCAyMjQsIDUxLCAzOCwgMjUxLCAxNDUsIDM4LCAyMzEsIDIzMCwgMzgsIAorICAgIDUyLCAyNTAsIDMxLCA0OCwgMzgsIDIyNiwgMjI1LCA0OCwgMzgsIDIxMCwgMzUsIDUxLCAzOCwgMjM1LCAxNzIsIDUxLCAzOCwgCisgICAgMjE0LCAxNTEsIDQ4LCAzOCwgMjE0LCAxMzQsIDQ4LCAzOCwgNywgNCwgMSwgMjQ0LCA2MywgMjA0LCAxMTUsIDQ4LCAzOCwgCisgICAgNywgNCwgMSwgMjU0LCAyNDMsIDM4LCA3LCA0LCAxLCAyNTQsIDczLCAzOCwgNywgNCwgMSwgMjUzLCAxNzYsIDM4LCA3LCA0LCAKKyAgICAxLCAyNTEsIDY3LCAyNTAsIDE4MywgMzgsIDcsIDQsIDEsIDIzNSwgMjEzLCAyNDksIDYwLCAzOCwgNywgNCwgMSwgMjQ1LCAKKyAgICA1OSwgMzgsIDcsIDQsIDEsIDI0MywgMjAyLCAzOCwgNywgMSwgNCwgNiwgMjQzLCAyMDIsIDM4LCA3LCA0LCAxLCAyMzUsIAorICAgIDIzLCAzOCwgNywgNCwgMSwgMTU2LCAzOCwgNywgMSwgNCwgNiwgMTU2LCAzOCwgNywgMSwgNCwgNiwgMTkzLCAzOCwgNywgNCwgCisgICAgMSwgMjMwLCAyNSwgMzgsIDcsIDEsIDQsIDYsIDIzMCwgMjUsIDM4LCA3LCAxLCA0LCA2LCAxNTMsIDM4LCA3LCA0LCAxLCAKKyAgICAyMjMsIDIyNCwgMjIyLCAxODYsIDM4LCA3LCA0LCAxLCAyMjIsIDkxLCAzOCwgNywgNCwgMSwgMTk5LCAyMjIsIDkxLCAzOCwgCisgICAgNywgNCwgMSwgMjEwLCAxNTksIDM4LCA1MiwgMjM1LCAxOTMsIDI1MSwgMTQ3LCA1MSwgMzgsIDI1NCwgMTQ4LCAxMjgsIAorICAgIDIxNiwgNDIsIDUxLCAzOCwgNDMsIDI1MywgMjUwLCA0OCwgMzgsIDQ0LCAyNTMsIDI1MCwgMjIsIDEyNCwgMjUzLCAyNTAsIAorICAgIDUxLCA3LCA2LCAxLCAxMTUsIDIsIDIyMiwgMjM0LCA1MSwgNywgNCwgMSwgMTE1LCAyLCAyMjIsIDIzNCwgNTEsIDcsIDYsIAorICAgIDEsIDU3LCAyLCA1OSwgNDgsIDcsIDQsIDEsIDU3LCAyLCA1OSwgNDgsIDcsIDYsIDEsIDU3LCAyLCA1OSwgNTEsIDcsIDQsIAorICAgIDEsIDU3LCAyLCA1OSwgNTEsIDcsIDYsIDEsIDU3LCAyLCAyMzIsIDIxNCwgNTEsIDcsIDQsIDEsIDU3LCAyLCAyMzIsIDIxNCwgCisgICAgNTEsIDcsIDYsIDEsIDI1MSwgNjcsIDIsIDI1MCwgMTg0LCAyMiwgMTQyLCA3LCA0LCAxLCAyNTEsIDY3LCAyLCAyNTAsIAorICAgIDE4NCwgMjIsIDE0MiwgNywgNiwgMSwgMjQ5LCA2MSwgMiwgNTksIDQ4LCA3LCA0LCAxLCAyNDksIDYxLCAyLCA1OSwgNDgsIAorICAgIDcsIDYsIDEsIDI0OSwgNjEsIDIsIDU5LCA1MSwgNywgNCwgMSwgMjQ5LCA2MSwgMiwgNTksIDUxLCA3LCA2LCAxLCAyNDksIAorICAgIDYxLCAyLCAyMzIsIDIxNCwgNTEsIDcsIDQsIDEsIDI0OSwgNjEsIDIsIDIzMiwgMjE0LCA1MSwgNywgNiwgMSwgMjQ5LCA2MSwgCisgICAgMiwgMjUwLCAxODMsIDcsIDQsIDEsIDI0OSwgNjEsIDIsIDI1MCwgMTgzLCA3LCA2LCAxLCAyNDksIDYxLCAyLCAyNTAsIDMxLCAKKyAgICA1MSwgNywgNCwgMSwgMjQ5LCA2MSwgMiwgMjUwLCAzMSwgNTEsIDcsIDYsIDEsIDE2MCwgMiwgMjMxLCAyMzMsIDIyLCAyNDIsIAorICAgIDEzNiwgNywgNCwgMSwgMTYwLCAyLCAyMzEsIDIzMywgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxNjAsIDIsIDIzMSwgMjMzLCAKKyAgICAyMiwgMTQyLCA3LCA0LCAxLCAxNjAsIDIsIDIzMSwgMjMzLCAyMiwgMTQyLCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMzEsIAorICAgIDUxLCA3LCA0LCAxLCAxNjAsIDIsIDI1MCwgMzEsIDUxLCA3LCA2LCAxLCAxNjAsIDIsIDIxNiwgODksIDUxLCA3LCA0LCAxLCAKKyAgICAxNjAsIDIsIDIxNiwgODksIDUxLCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMTg0LCAyMiwgMjUxLCAxNDYsIDcsIDQsIDEsIAorICAgIDE2MCwgMiwgMjUwLCAxODQsIDIyLCAyNTEsIDE0NiwgNywgNiwgMSwgMjQ1LCA3LCAyLCA1OSwgNDgsIDcsIDQsIDEsIDI0NSwgCisgICAgNywgMiwgNTksIDQ4LCA3LCA2LCAxLCAyNDMsIDIwMywgMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDI0MywgMjAzLCAyLCAyMzEsIAorICAgIDIzMiwgNywgNiwgMSwgMjQyLCA2MSwgMiwgNTksIDQ4LCA3LCA0LCAxLCAyNDIsIDYxLCAyLCA1OSwgNDgsIDcsIDYsIDEsIAorICAgIDI0MiwgNjEsIDIsIDU5LCA1MSwgNywgNCwgMSwgMjQyLCA2MSwgMiwgNTksIDUxLCA3LCA2LCAxLCAyNDIsIDYxLCAyLCAKKyAgICAyNDgsIDEsIDcsIDQsIDEsIDI0MiwgNjEsIDIsIDI0OCwgMSwgNywgNiwgMSwgMjQyLCA2MSwgMiwgMjUwLCAxODMsIDcsIDQsIAorICAgIDEsIDI0MiwgNjEsIDIsIDI1MCwgMTgzLCA3LCA2LCAxLCAyNDIsIDYxLCAyLCAyNTEsIDE0NywgNTEsIDcsIDQsIDEsIDI0MiwgCisgICAgNjEsIDIsIDI1MSwgMTQ3LCA1MSwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDIxNiwgODksIDUxLCA3LCA0LCAxLCAyNDAsIAorICAgIDE1NCwgMiwgMjE2LCA4OSwgNTEsIDcsIDYsIDEsIDI0MCwgMTU0LCAyLCAyNDgsIDIsIDIyLCAxNDIsIDcsIDQsIDEsIDI0MCwgCisgICAgMTU0LCAyLCAyNDgsIDIsIDIyLCAxNDIsIDcsIDYsIDEsIDIzNSwgMjQsIDIsIDE0MiwgNywgNCwgMSwgMjM1LCAyNCwgMiwgCisgICAgMTQyLCA3LCA2LCAxLCAyMzUsIDI0LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDIzNSwgMjQsIDIsIDU5LCA1MSwgNywgNiwgMSwgCisgICAgMjM1LCAyNCwgMiwgMjMyLCAyMTQsIDUxLCA3LCA0LCAxLCAyMzUsIDI0LCAyLCAyMzIsIDIxNCwgNTEsIDcsIDYsIDEsIAorICAgIDIzMywgMTQ5LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCA1OSwgNTEsIDcsIDYsIDEsIDIzMywgMTQ5LCAyLCAKKyAgICA1OSwgMjUyLCA0MywgMjIsIDIzMSwgMjMyLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgNTksIDI1MiwgNDMsIDIyLCAyMzEsIAorICAgIDIzMiwgNywgNiwgMSwgMjMzLCAxNDksIDIsIDIzMiwgMjE0LCA1MSwgNywgNCwgMSwgMjMzLCAxNDksIDIsIDIzMiwgMjE0LCAKKyAgICA1MSwgNywgNiwgMSwgMjMzLCAxNDksIDIsIDI1MCwgMzEsIDUxLCA3LCA0LCAxLCAyMzMsIDE0OSwgMiwgMjUwLCAzMSwgNTEsIAorICAgIDcsIDYsIDEsIDIzMiwgNTAsIDIsIDE0MiwgNywgNCwgMSwgMjMyLCA1MCwgMiwgMTQyLCA3LCA2LCAxLCAyMzIsIDUwLCAyLCAKKyAgICA1OSwgNDgsIDcsIDQsIDEsIDIzMiwgNTAsIDIsIDU5LCA0OCwgNywgNiwgMSwgMjMyLCA1MCwgMiwgNTksIDUxLCA3LCA0LCAKKyAgICAxLCAyMzIsIDUwLCAyLCA1OSwgNTEsIDcsIDYsIDEsIDIzMCwgMjYsIDIsIDU5LCA0OCwgNywgNCwgMSwgMjMwLCAyNiwgMiwgCisgICAgNTksIDQ4LCA3LCA2LCAxLCAyMzAsIDI2LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDIzMCwgMjYsIDIsIDU5LCA1MSwgNywgNiwgCisgICAgMSwgMjMwLCAyNiwgMiwgMjMyLCAyMTQsIDUxLCA3LCA0LCAxLCAyMzAsIDI2LCAyLCAyMzIsIDIxNCwgNTEsIDcsIDYsIDEsIAorICAgIDIzMCwgMjYsIDIsIDI1MCwgMzEsIDUxLCA3LCA0LCAxLCAyMzAsIDI2LCAyLCAyNTAsIDMxLCA1MSwgNywgNiwgMSwgMTQ0LCAKKyAgICAyLCAyMTYsIDg5LCAyMiwgMTQyLCA3LCA0LCAxLCAxNDQsIDIsIDIxNiwgODksIDIyLCAxNDIsIDcsIDYsIDEsIDE0NCwgMiwgCisgICAgMjE2LCA4OSwgMjIsIDI0OCwgMSwgNywgNCwgMSwgMTQ0LCAyLCAyMTYsIDg5LCAyMiwgMjQ4LCAxLCA3LCA2LCAxLCAxNDQsIAorICAgIDIsIDIzMSwgMjMzLCAyMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDE0NCwgMiwgMjMxLCAyMzMsIDIyLCAyNDIsIDEzNiwgNywgNiwgCisgICAgMSwgMTQ0LCAyLCAyMzEsIDIzMywgMjIsIDE0MiwgNywgNCwgMSwgMTQ0LCAyLCAyMzEsIDIzMywgMjIsIDE0MiwgNywgNiwgCisgICAgMSwgMjI2LCAxMDYsIDIsIDE0MiwgNywgNCwgMSwgMjI2LCAxMDYsIDIsIDE0MiwgNywgNiwgMSwgMjI2LCAxMDYsIDIsIDU5LCAKKyAgICA0OCwgNywgNCwgMSwgMjI2LCAxMDYsIDIsIDU5LCA0OCwgNywgNiwgMSwgMjIzLCAyMjQsIDIsIDU5LCA0OCwgNywgNCwgMSwgCisgICAgMjIzLCAyMjQsIDIsIDU5LCA0OCwgNywgNiwgMSwgMjIzLCAyMjQsIDIsIDU5LCA1MSwgNywgNCwgMSwgMjIzLCAyMjQsIDIsIAorICAgIDU5LCA1MSwgNywgNiwgMSwgMjIzLCAyMjQsIDIsIDU5LCAyNTIsIDQzLCAyMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDIyMywgCisgICAgMjI0LCAyLCA1OSwgMjUyLCA0MywgMjIsIDIzMSwgMjMyLCA3LCA2LCAxLCAyMjMsIDIyNCwgMiwgMjMyLCAyMTQsIDUxLCA3LCAKKyAgICA0LCAxLCAyMjMsIDIyNCwgMiwgMjMyLCAyMTQsIDUxLCA3LCA2LCAxLCAyMjIsIDkyLCAyLCA1OSwgNDgsIDcsIDQsIDEsIAorICAgIDIyMiwgOTIsIDIsIDU5LCA0OCwgNywgNiwgMSwgMjIyLCA5MiwgMiwgNTksIDUxLCA3LCA0LCAxLCAyMjIsIDkyLCAyLCA1OSwgCisgICAgNTEsIDcsIDYsIDEsIDIyMiwgOTIsIDIsIDI1NSwgMywgMjIsIDU5LCA0OCwgNywgNCwgMSwgMjIyLCA5MiwgMiwgMjU1LCAzLCAKKyAgICAyMiwgNTksIDQ4LCA3LCA2LCAxLCAyMjIsIDkyLCAyLCAyNTAsIDIzNSwgMjIsIDU5LCA0OCwgNywgNCwgMSwgMjIyLCA5MiwgCisgICAgMiwgMjUwLCAyMzUsIDIyLCA1OSwgNDgsIDcsIDYsIDEsIDIyMiwgOTIsIDIsIDU5LCAyNTIsIDQzLCAyMiwgNTksIDQ4LCA3LCAKKyAgICA0LCAxLCAyMjIsIDkyLCAyLCA1OSwgMjUyLCA0MywgMjIsIDU5LCA0OCwgNywgNiwgMSwgMjE3LCAxNTMsIDIsIDU5LCA0OCwgCisgICAgNywgNCwgMSwgMjE3LCAxNTMsIDIsIDU5LCA0OCwgNywgNiwgMSwgMjE3LCAxNTMsIDIsIDU5LCA1MSwgNywgNCwgMSwgMjE3LCAKKyAgICAxNTMsIDIsIDU5LCA1MSwgNywgNiwgMSwgMjE3LCAxNTMsIDIsIDIzMiwgMjE0LCA1MSwgNywgNCwgMSwgMjE3LCAxNTMsIDIsIAorICAgIDIzMiwgMjE0LCA1MSwgNywgNiwgMSwgMjE3LCAxNTMsIDIsIDI1MCwgMzEsIDUxLCA3LCA0LCAxLCAyMTcsIDE1MywgMiwgCisgICAgMjUwLCAzMSwgNTEsIDcsIDYsIDEsIDEwNCwgMiwgMjQ4LCAyLCA1MSwgNywgNCwgMSwgMTA0LCAyLCAyNDgsIDIsIDUxLCA3LCAKKyAgICA2LCAxLCAxMDQsIDIsIDIxNiwgODksIDUxLCA3LCA0LCAxLCAxMDQsIDIsIDIxNiwgODksIDUxLCA3LCA2LCAxLCAxMDQsIDIsIAorICAgIDI1MCwgMzEsIDUxLCA3LCA0LCAxLCAxMDQsIDIsIDI1MCwgMzEsIDUxLCA3LCA2LCAxLCAxMDQsIDIsIDIxNiwgODksIDIyLCAKKyAgICAxNDIsIDcsIDQsIDEsIDEwNCwgMiwgMjE2LCA4OSwgMjIsIDE0MiwgNywgNiwgMSwgMTA0LCAyLCAyMzEsIDIzMywgMjIsIAorICAgIDI0OCwgMSwgNywgNCwgMSwgMTA0LCAyLCAyMzEsIDIzMywgMjIsIDI0OCwgMSwgNywgNiwgMSwgMjE0LCAxMDYsIDIsIDE4MiwgCisgICAgNywgNCwgMSwgMjE0LCAxMDYsIDIsIDE4MiwgNywgNiwgMSwgMjE0LCAxMDYsIDIsIDU5LCA1MSwgNywgNCwgMSwgMjE0LCAKKyAgICAxMDYsIDIsIDU5LCA1MSwgNywgNiwgMSwgMjEyLCA5OSwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDIxMiwgOTksIDIsIDI0MiwgCisgICAgMTM2LCA3LCA2LCAxLCAyMTIsIDk5LCAyLCAxNDIsIDcsIDQsIDEsIDIxMiwgOTksIDIsIDE0MiwgNywgNiwgMSwgMjEyLCAKKyAgICA5OSwgMiwgMjQ4LCAxLCA3LCA0LCAxLCAyMTIsIDk5LCAyLCAyNDgsIDEsIDcsIDYsIDEsIDIxMiwgOTksIDIsIDU5LCA0OCwgCisgICAgNywgNCwgMSwgMjEyLCA5OSwgMiwgNTksIDQ4LCA3LCA2LCAxLCAyMTIsIDk5LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDIxMiwgCisgICAgOTksIDIsIDU5LCA1MSwgNywgNiwgMSwgMjExLCAxNzksIDIsIDU5LCA0OCwgNywgNCwgMSwgMjExLCAxNzksIDIsIDU5LCAKKyAgICA0OCwgNywgNiwgMSwgMjExLCAxNzksIDIsIDI0OCwgMSwgNywgNCwgMSwgMjExLCAxNzksIDIsIDI0OCwgMSwgNywgNiwgMSwgCisgICAgMjExLCAxMTgsIDIsIDU5LCA0OCwgNywgNCwgMSwgMjExLCAxMTgsIDIsIDU5LCA0OCwgNywgNiwgMSwgMjEwLCAxNjAsIDIsIAorICAgIDI1MCwgMzAsIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCAyNTAsIDMwLCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgNTksIDUxLCA3LCAKKyAgICA0LCAxLCAyMTAsIDE2MCwgMiwgNTksIDUxLCA3LCA2LCAxLCAyMTAsIDE2MCwgMiwgMjMyLCAyMTQsIDUxLCA3LCA0LCAxLCAKKyAgICAyMTAsIDE2MCwgMiwgMjMyLCAyMTQsIDUxLCA3LCA0LCAxLCAyNDIsIDYxLCAyLCAyMzIsIDIxNCwgNTEsIDcsIDQsIDEsIAorICAgIDIxNywgMTUzLCAyLCAyNDgsIDEsIDcsIDQsIDEsIDIxMiwgOTksIDIsIDIyMiwgMjM0LCA0OCwgNywgNCwgMSwgMjExLCAKKyAgICAxMTgsIDIsIDIyMiwgMjM0LCA0OCwgNywgNCwgMSwgMTE1LCAyLCA0NCwgMTYzLCAyMjIsIDIzMywgNywgNCwgMSwgMTk5LCAKKyAgICAyMjIsIDkyLCAyLCA1OSwgNDgsIDcsIDQsIDEsIDE5OSwgMjIyLCA5MiwgMiwgMjQ3LCAyNTUsIDkxLCA3LCA0LCAxLCAxOTksIAorICAgIDIyMiwgOTIsIDIsIDEyNSwgOTEsIDcsIDYsIDEsIDIyMCwgNzYsIDIyMiwgOTEsIDcsIDQsIDEsIDI0OCwgNTQsIDcsIDYsIAorICAgIDEsIDExNSwgMiwgNTksIDUxLCA3LCA0LCAxLCAxMTUsIDIsIDU5LCA1MSwgNywgNiwgMSwgMTE1LCAyLCAyNDEsIDUyLCA0OCwgCisgICAgNywgNCwgMSwgMTE1LCAyLCAyNDEsIDUyLCA0OCwgNywgNiwgMSwgMTE1LCAyLCAyNTAsIDMxLCAyMiwgMTQyLCA3LCA0LCAxLCAKKyAgICAxMTUsIDIsIDI1MCwgMzEsIDIyLCAxNDIsIDcsIDYsIDEsIDExNSwgMiwgMjUwLCAzMSwgMjIsIDI0MiwgMTM2LCA3LCA0LCAKKyAgICAxLCAxMTUsIDIsIDI1MCwgMzEsIDIyLCAyNDIsIDEzNiwgNywgNiwgMSwgMTE1LCAyLCAyNTAsIDMxLCAyMiwgMjQxLCA1MiwgCisgICAgNDgsIDcsIDQsIDEsIDExNSwgMiwgMjUwLCAzMSwgMjIsIDI0MSwgNTIsIDQ4LCA3LCA2LCAxLCAxMTUsIDIsIDI1MCwgMzEsIAorICAgIDIyLCAxODIsIDcsIDQsIDEsIDExNSwgMiwgMjUwLCAzMSwgMjIsIDE4MiwgNywgNiwgMSwgMTE1LCAyLCAyNTAsIDMxLCAyMiwgCisgICAgNTksIDUxLCA3LCA0LCAxLCAxMTUsIDIsIDI1MCwgMzEsIDIyLCA1OSwgNTEsIDcsIDYsIDEsIDExNSwgMiwgMjUxLCAxNDcsIAorICAgIDIyLCAxNDIsIDcsIDQsIDEsIDExNSwgMiwgMjUxLCAxNDcsIDIyLCAxNDIsIDcsIDYsIDEsIDExNSwgMiwgMjUxLCAxNDcsIAorICAgIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTE1LCAyLCAyNTEsIDE0NywgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxMTUsIDIsIAorICAgIDI1MSwgMTQ3LCAyMiwgMjQxLCA1MiwgNDgsIDcsIDQsIDEsIDExNSwgMiwgMjUxLCAxNDcsIDIyLCAyNDEsIDUyLCA0OCwgNywgCisgICAgNiwgMSwgMTE1LCAyLCAyNTEsIDE0NywgMjIsIDE4MiwgNywgNCwgMSwgMTE1LCAyLCAyNTEsIDE0NywgMjIsIDE4MiwgNywgCisgICAgNiwgMSwgMTE1LCAyLCAyNTEsIDE0NywgMjIsIDU5LCA1MSwgNywgNCwgMSwgMTE1LCAyLCAyNTEsIDE0NywgMjIsIDU5LCAKKyAgICA1MSwgNywgNiwgMSwgMTYwLCAyLCA1OSwgNTEsIDcsIDQsIDEsIDE2MCwgMiwgNTksIDUxLCA3LCA2LCAxLCAxNjAsIDIsIAorICAgIDI0MSwgNTIsIDQ4LCA3LCA0LCAxLCAxNjAsIDIsIDI0MSwgNTIsIDQ4LCA3LCA2LCAxLCAxNjAsIDIsIDE4MiwgNywgNCwgMSwgCisgICAgMTYwLCAyLCAxODIsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAzMSwgMjIsIDE0MiwgNywgNCwgMSwgMTYwLCAyLCAyNTAsIDMxLCAKKyAgICAyMiwgMTQyLCA3LCA2LCAxLCAxNjAsIDIsIDI1MCwgMzEsIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTYwLCAyLCAyNTAsIAorICAgIDMxLCAyMiwgMjQyLCAxMzYsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAzMSwgMjIsIDI0MSwgNTIsIDQ4LCA3LCA0LCAxLCAKKyAgICAxNjAsIDIsIDI1MCwgMzEsIDIyLCAyNDEsIDUyLCA0OCwgNywgNiwgMSwgMTYwLCAyLCAyNTAsIDMxLCAyMiwgMTgyLCA3LCAKKyAgICA0LCAxLCAxNjAsIDIsIDI1MCwgMzEsIDIyLCAxODIsIDcsIDYsIDEsIDE2MCwgMiwgMjUwLCAzMSwgMjIsIDU5LCA1MSwgNywgCisgICAgNCwgMSwgMTYwLCAyLCAyNTAsIDMxLCAyMiwgNTksIDUxLCA3LCA2LCAxLCAyNDAsIDE1NCwgMiwgMjQxLCA1MiwgNDgsIDcsIAorICAgIDQsIDEsIDI0MCwgMTU0LCAyLCAyNDEsIDUyLCA0OCwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDU5LCA1MSwgNywgNCwgMSwgCisgICAgMjQwLCAxNTQsIDIsIDU5LCA1MSwgNywgNiwgMSwgMTQ0LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDE0NCwgMiwgNTksIDUxLCA3LCAKKyAgICA2LCAxLCAxNDQsIDIsIDI0MSwgNTIsIDQ4LCA3LCA0LCAxLCAxNDQsIDIsIDI0MSwgNTIsIDQ4LCA3LCA2LCAxLCAxNDQsIDIsIAorICAgIDI1MCwgMzEsIDIyLCAxNDIsIDcsIDQsIDEsIDE0NCwgMiwgMjUwLCAzMSwgMjIsIDE0MiwgNywgNiwgMSwgMTQ0LCAyLCAKKyAgICAyNTAsIDMxLCAyMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDE0NCwgMiwgMjUwLCAzMSwgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAKKyAgICAxNDQsIDIsIDI1MCwgMzEsIDIyLCAyNDEsIDUyLCA0OCwgNywgNCwgMSwgMTQ0LCAyLCAyNTAsIDMxLCAyMiwgMjQxLCA1MiwgCisgICAgNDgsIDcsIDYsIDEsIDE0NCwgMiwgMjUwLCAzMSwgMjIsIDE4MiwgNywgNCwgMSwgMTQ0LCAyLCAyNTAsIDMxLCAyMiwgMTgyLCAKKyAgICA3LCA2LCAxLCAxNDQsIDIsIDI1MCwgMzEsIDIyLCA1OSwgNTEsIDcsIDQsIDEsIDE0NCwgMiwgMjUwLCAzMSwgMjIsIDU5LCAKKyAgICA1MSwgNywgNiwgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgMjIsIDE0MiwgNywgNCwgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgMjIsIAorICAgIDE0MiwgNywgNiwgMSwgMTQ0LCAyLCAyNDAsIDI0OSwgMjIsIDI0MiwgMTM2LCA3LCA0LCAxLCAxNDQsIDIsIDI0MCwgMjQ5LCAKKyAgICAyMiwgMjQyLCAxMzYsIDcsIDYsIDEsIDE0NCwgMiwgMjQwLCAyNDksIDIyLCAyNDEsIDUyLCA0OCwgNywgNCwgMSwgMTQ0LCAKKyAgICAyLCAyNDAsIDI0OSwgMjIsIDI0MSwgNTIsIDQ4LCA3LCA2LCAxLCAxNDQsIDIsIDI0MCwgMjQ5LCAyMiwgMTgyLCA3LCA0LCAKKyAgICAxLCAxNDQsIDIsIDI0MCwgMjQ5LCAyMiwgMTgyLCA3LCA2LCAxLCAxNDQsIDIsIDI0MCwgMjQ5LCAyMiwgNTksIDUxLCA3LCAKKyAgICA0LCAxLCAxNDQsIDIsIDI0MCwgMjQ5LCAyMiwgNTksIDUxLCA3LCA2LCAxLCAxMDQsIDIsIDU5LCA1MSwgNywgNCwgMSwgCisgICAgMTA0LCAyLCA1OSwgNTEsIDcsIDYsIDEsIDEwNCwgMiwgMjQxLCA1MiwgNDgsIDcsIDQsIDEsIDEwNCwgMiwgMjQxLCA1MiwgCisgICAgNDgsIDcsIDYsIDEsIDEwNCwgMiwgMjQwLCAyNDksIDIyLCAxNDIsIDcsIDQsIDEsIDEwNCwgMiwgMjQwLCAyNDksIDIyLCAKKyAgICAxNDIsIDcsIDYsIDEsIDEwNCwgMiwgMjQwLCAyNDksIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTA0LCAyLCAyNDAsIDI0OSwgCisgICAgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxMDQsIDIsIDI0MCwgMjQ5LCAyMiwgMjQxLCA1MiwgNDgsIDcsIDQsIDEsIDEwNCwgCisgICAgMiwgMjQwLCAyNDksIDIyLCAyNDEsIDUyLCA0OCwgNywgNiwgMSwgMTA0LCAyLCAyNDAsIDI0OSwgMjIsIDE4MiwgNywgNCwgCisgICAgMSwgMTA0LCAyLCAyNDAsIDI0OSwgMjIsIDE4MiwgNywgNiwgMSwgMTA0LCAyLCAyNDAsIDI0OSwgMjIsIDU5LCA1MSwgNywgCisgICAgNCwgMSwgMTA0LCAyLCAyNDAsIDI0OSwgMjIsIDU5LCA1MSwgNywgNiwgMSwgMjExLCAxMTgsIDIsIDI0MiwgMTM2LCA3LCA0LCAKKyAgICAxLCAyMTEsIDExOCwgMiwgMjQyLCAxMzYsIDcsIDYsIDEsIDIxMSwgMTE4LCAyLCA1OSwgNTEsIDcsIDQsIDEsIDIxMSwgCisgICAgMTE4LCAyLCA1OSwgNTEsIDcsIDYsIDEsIDIxMSwgMTE4LCAyLCAyNDEsIDUyLCA0OCwgNywgNCwgMSwgMjExLCAxMTgsIDIsIAorICAgIDI0MSwgNTIsIDQ4LCA3LCA2LCAxLCAyMTEsIDExOCwgMiwgMTgyLCA3LCA0LCAxLCAyMTEsIDExOCwgMiwgMTgyLCA3LCA2LCAKKyAgICAxLCAyMzAsIDIyMywgMjMyLCAxODUsIDcsIDQsIDEsIDIzMCwgMjIzLCAyMzIsIDE4NSwgNywgNiwgMSwgMjMwLCAyMjMsIAorICAgIDIxNCwgMTA1LCA3LCA0LCAxLCAyMzAsIDIyMywgMjE0LCAxMDUsIDcsIDYsIDEsIDIxMSwgMTE4LCAyLCAyMzIsIDEyMywgNywgCisgICAgNCwgMSwgMjExLCAxMTgsIDIsIDIzMiwgMTIzLCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDIyNCwgMTU0LCAyNiwgNCwgMSwgCisgICAgMjU0LCAxNDQsIDIsIDI0OCwgMTUzLCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIAorICAgIDQsIDEsIDI1NCwgMTQ0LCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjI0LCAKKyAgICAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyNDgsIDE1NCwgMjIsIDIyNiwgMTEwLCAyNiwgNCwgCisgICAgMSwgMjU0LCAxNDQsIDIsIDIyNCwgMTU1LCAyMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjQ4LCAxNTQsIAorICAgIDIyLCAyMjUsIDE3NSwgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NCwgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAKKyAgICAyNDgsIDE1MywgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NSwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyNTQsIAorICAgIDE0NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjU0LCAxNDQsIDIsIDIyNCwgMTU1LCAyMiwgMjI2LCAKKyAgICAxMTAsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjYsIDExMCwgMjYsIDYsIDEsIDI1NCwgMTQ0LCAKKyAgICAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc1LCAyNiwgNiwgMSwgMjU0LCAxNDQsIDIsIDI0OCwgMTU0LCAyMiwgMjI1LCAxNzUsIAorICAgIDI2LCA0LCAxLCAyNDUsIDEwMSwgMiwgMjI0LCAxNTQsIDI2LCA0LCAxLCAyNDUsIDEwMSwgMiwgMjQ4LCAxNTMsIDI2LCA0LCAKKyAgICAxLCAyNDUsIDEwMSwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjQ1LCAxMDEsIDIsIDI0OCwgMTU0LCAKKyAgICAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDI0NSwgMTAxLCAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgCisgICAgMjQ1LCAxMDEsIDIsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTAsIDI2LCA2LCAxLCAyNDUsIDEwMSwgMiwgMjI0LCAxNTQsIDI2LCAKKyAgICA2LCAxLCAyNDUsIDEwMSwgMiwgMjQ4LCAxNTMsIDI2LCA2LCAxLCAyNDUsIDEwMSwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIAorICAgIDEzLCAyNiwgNiwgMSwgMjQ1LCAxMDEsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDI0NSwgMTAxLCAyLCAKKyAgICAyMjQsIDE1NSwgMjIsIDIyNiwgMTEwLCAyNiwgNiwgMSwgMjQ1LCAxMDEsIDIsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTAsIAorICAgIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NCwgMjYsIDQsIDEsIDI0NSwgNjQsIDIsIDI0OCwgMTUzLCAyNiwgNCwgMSwgCisgICAgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAKKyAgICAyMTQsIDEzLCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDQsIDEsIDI0NSwgNjQsIAorICAgIDIsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTAsIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc1LCAKKyAgICAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjUsIDE3NSwgMjYsIDYsIDEsIDI0NSwgNjQsIDIsIDIyNCwgCisgICAgMTU0LCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTMsIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgMjIsIAorICAgIDIxNCwgMTMsIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyNDUsIDY0LCAKKyAgICAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgMTEwLCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjYsIDExMCwgCisgICAgMjYsIDYsIDEsIDI0NSwgNjQsIDIsIDIyNCwgMTU1LCAyMiwgMjI1LCAxNzUsIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyNDgsIAorICAgIDE1NCwgMjIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIDIyNCwgMTU0LCAyNiwgNCwgMSwgMjM1LCAxODYsIAorICAgIDIsIDI0OCwgMTUzLCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIzNSwgCisgICAgMTg2LCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIAorICAgIDExMCwgMjYsIDQsIDEsIDIzNSwgMTg2LCAyLCAyNDgsIDE1NCwgMjIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjM1LCAxODYsIAorICAgIDIsIDIyNCwgMTU1LCAyMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMiwgMjQ4LCAxNTQsIDIyLCAyMjUsIDE3NSwgCisgICAgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyMjQsIDE1NCwgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyNDgsIDE1MywgMjYsIDYsIAorICAgIDEsIDIzNSwgMTg2LCAyLCAyMjQsIDE1NSwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMzUsIDE4NiwgMiwgMjQ4LCAxNTQsIAorICAgIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjM1LCAxODYsIDIsIDIyNCwgMTU1LCAyMiwgMjI2LCAxMTAsIDI2LCA2LCAxLCAKKyAgICAyMzUsIDE4NiwgMiwgMjQ4LCAxNTQsIDIyLCAyMjYsIDExMCwgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyMjQsIDE1NSwgMjIsIAorICAgIDIyNSwgMTc1LCAyNiwgNiwgMSwgMjM1LCAxODYsIDIsIDI0OCwgMTU0LCAyMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyMjYsIAorICAgIDIwMCwgMiwgMjI0LCAxNTQsIDI2LCA0LCAxLCAyMjYsIDIwMCwgMiwgMjQ4LCAxNTMsIDI2LCA0LCAxLCAyMjYsIDIwMCwgMiwgCisgICAgMjI0LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjI2LCAyMDAsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAxMywgMjYsIAorICAgIDQsIDEsIDIyNiwgMjAwLCAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjI2LCAyMDAsIDIsIDI0OCwgCisgICAgMTU0LCAyMiwgMjI2LCAxMTAsIDI2LCA2LCAxLCAyMjYsIDIwMCwgMiwgMjI0LCAxNTQsIDI2LCA2LCAxLCAyMjYsIDIwMCwgCisgICAgMiwgMjQ4LCAxNTMsIDI2LCA2LCAxLCAyMjYsIDIwMCwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjI2LCAKKyAgICAyMDAsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIyNiwgMjAwLCAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgCisgICAgMTEwLCAyNiwgNiwgMSwgMjI2LCAyMDAsIDIsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTAsIDI2LCA0LCAxLCAyMTQsIDE1OCwgCisgICAgMiwgMjI0LCAxNTQsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjQ4LCAxNTMsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjI0LCAKKyAgICAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAxMywgMjYsIDQsIDEsIAorICAgIDIxNCwgMTU4LCAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDI0OCwgMTU0LCAyMiwgCisgICAgMjI2LCAxMTAsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjI0LCAxNTUsIDIyLCAyMjUsIDE3NSwgMjYsIDQsIDEsIDIxNCwgCisgICAgMTU4LCAyLCAyNDgsIDE1NCwgMjIsIDIyNSwgMTc1LCAyNiwgNiwgMSwgMjE0LCAxNTgsIDIsIDI0OCwgMTUzLCAyNiwgNiwgCisgICAgMSwgMjE0LCAxNTgsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIxNCwgMTU4LCAyLCAyNDgsIDE1NCwgCisgICAgMjIsIDIyNiwgMTEwLCAyNiwgNiwgMSwgMjE0LCAxNTgsIDIsIDI0OCwgMTU0LCAyMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAKKyAgICAyMjYsIDIwMiwgMiwgMjI0LCAxNTQsIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjQ4LCAxNTMsIDI2LCA0LCAxLCAyMjYsIAorICAgIDIwMiwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAKKyAgICAxMywgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIAorICAgIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTAsIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjI0LCAxNTUsIDIyLCAyMjUsIDE3NSwgCisgICAgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1NCwgMjIsIDIyNSwgMTc1LCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIAorICAgIDIyNCwgMTU0LCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDI0OCwgMTUzLCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDIyNCwgCisgICAgMTU1LCAyMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTMsIDI2LCA2LCAxLCAKKyAgICAyMjYsIDIwMiwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDYsIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1NCwgMjIsIAorICAgIDIyNiwgMTEwLCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDIyNCwgMTU1LCAyMiwgMjI1LCAxNzUsIDI2LCA2LCAxLCAyMjYsIAorICAgIDIwMiwgMiwgMjQ4LCAxNTQsIDIyLCAyMjUsIDE3NSwgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMTQsIDEzLCAyNiwgNCwgMSwgCisgICAgMjU0LCAxNDQsIDIsIDIyNiwgMTEwLCAyNiwgNCwgMSwgMjQ1LCAxMDEsIDIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyNDUsIAorICAgIDEwMSwgMiwgMjI2LCAxMTAsIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgCisgICAgMjI2LCAxMTAsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIzNSwgMTg2LCAyLCAyMjYsIAorICAgIDExMCwgMjYsIDQsIDEsIDIyNiwgMjAwLCAyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjI2LCAyMDAsIDIsIDIyNiwgMTEwLCAyNiwgCisgICAgNCwgMSwgMjE0LCAxNTgsIDIsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjI2LCAxMTAsIDI2LCA0LCAxLCAKKyAgICAyMjYsIDIwMiwgMiwgMjE0LCAxMywgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyMjYsIDExMCwgMjYsIDQsIDEsIDI1NCwgCisgICAgMTQ0LCAyLCAyMjQsIDE1NSwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDI0OCwgMTU0LCAyMiwgMjEwLCAKKyAgICAyMTksIDI2LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIDE0LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAKKyAgICAxLCAyNTQsIDE0NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMTQsIDE0LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNTQsIDE0NCwgCisgICAgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMSwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDI0OCwgMTU0LCAKKyAgICAyMiwgMjI2LCAxMTEsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgCisgICAgMTc2LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNTQsIDE0NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjUsIDE3NiwgMjIsIAorICAgIDIxMCwgMjE5LCAyNiwgNiwgMSwgMjU0LCAxNDQsIDIsIDIyNCwgMTU1LCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyNTQsIAorICAgIDE0NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjQsIDE2NywgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NSwgMjIsIDIxNCwgCisgICAgMTQsIDIyLCAyMjQsIDE2NywgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyNDgsIDE1NCwgMjIsIDIxNCwgMTQsIDIyLCAyMjQsIAorICAgIDE2NywgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgMTExLCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAKKyAgICAxLCAyNTQsIDE0NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjYsIDExMSwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjU0LCAxNDQsIAorICAgIDIsIDIyNCwgMTU1LCAyMiwgMjI1LCAxNzYsIDIyLCAyMjQsIDE2NywgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyNDgsIDE1NCwgCisgICAgMjIsIDIyNSwgMTc2LCAyMiwgMjI0LCAxNjcsIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgMjIsIDIxMCwgMjE5LCAKKyAgICAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI0NSwgNjQsIDIsIDIyNCwgCisgICAgMTU1LCAyMiwgMjE0LCAxNCwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMTQsIAorICAgIDE0LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNiwgMTExLCAyMiwgMjEwLCAKKyAgICAyMTksIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyNDgsIDE1NCwgMjIsIDIyNiwgMTExLCAyMiwgMjEwLCAyMTksIDI2LCA0LCAKKyAgICAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc2LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNDUsIDY0LCAKKyAgICAyLCAyNDgsIDE1NCwgMjIsIDIyNSwgMTc2LCAyMiwgMjEwLCAyMTksIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgCisgICAgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgMjQ4LCAxNTQsIDIyLCAyMjQsIDE2NywgMjYsIDYsIDEsIAorICAgIDI0NSwgNjQsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAxNCwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjQ1LCA2NCwgMiwgCisgICAgMjQ4LCAxNTQsIDIyLCAyMTQsIDE0LCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgMjIsIAorICAgIDIyNiwgMTExLCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyNDgsIDE1NCwgMjIsIDIyNiwgMTExLCAyMiwgCisgICAgMjI0LCAxNjcsIDI2LCA2LCAxLCAyNDUsIDY0LCAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc2LCAyMiwgMjI0LCAxNjcsIDI2LCAKKyAgICA2LCAxLCAyNDUsIDY0LCAyLCAyNDgsIDE1NCwgMjIsIDIyNSwgMTc2LCAyMiwgMjI0LCAxNjcsIDI2LCA0LCAxLCAyMjYsIAorICAgIDIwMiwgMiwgMjI0LCAxNTUsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1NCwgMjIsIDIxMCwgCisgICAgMjE5LCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDIyNCwgMTU1LCAyMiwgMjE0LCAxNCwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgCisgICAgMSwgMjI2LCAyMDIsIDIsIDI0OCwgMTU0LCAyMiwgMjE0LCAxNCwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjI2LCAyMDIsIAorICAgIDIsIDIyNCwgMTU1LCAyMiwgMjI2LCAxMTEsIDIyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDIyNiwgMjAyLCAyLCAyNDgsIDE1NCwgCisgICAgMjIsIDIyNiwgMTExLCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjI0LCAxNTUsIDIyLCAyMjUsIAorICAgIDE3NiwgMjIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDI0OCwgMTU0LCAyMiwgMjI1LCAxNzYsIDIyLCAKKyAgICAyMTAsIDIxOSwgMjYsIDYsIDEsIDIyNiwgMjAyLCAyLCAyMjQsIDE1NSwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgMSwgMjI2LCAKKyAgICAyMDIsIDIsIDI0OCwgMTU0LCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyMjYsIDIwMiwgMiwgMjI0LCAxNTUsIDIyLCAyMTQsIAorICAgIDE0LCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyMjYsIDIwMiwgMiwgMjQ4LCAxNTQsIDIyLCAyMTQsIDE0LCAyMiwgMjI0LCAKKyAgICAxNjcsIDI2LCA2LCAxLCAyMjYsIDIwMiwgMiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMSwgMjIsIDIyNCwgMTY3LCAyNiwgNiwgCisgICAgMSwgMjI2LCAyMDIsIDIsIDI0OCwgMTU0LCAyMiwgMjI2LCAxMTEsIDIyLCAyMjQsIDE2NywgMjYsIDYsIDEsIDIyNiwgMjAyLCAKKyAgICAyLCAyMjQsIDE1NSwgMjIsIDIyNSwgMTc2LCAyMiwgMjI0LCAxNjcsIDI2LCA2LCAxLCAyMjYsIDIwMiwgMiwgMjQ4LCAxNTQsIAorICAgIDIyLCAyMjUsIDE3NiwgMjIsIDIyNCwgMTY3LCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDIxMywgMTIwLCAyNiwgNCwgMSwgCisgICAgMjU0LCAxNDQsIDIsIDIzMSwgMjMyLCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDIxNCwgMTQsIDIyLCAyMTAsIDIxOSwgMjYsIAorICAgIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI1NCwgMTQ0LCAyLCAyMjYsIDExMSwgMjIsIDIxMCwgCisgICAgMjE5LCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjU0LCAxNDQsIDIsIDIyNSwgMTc2LCAKKyAgICAyMiwgMjEwLCAyMTksIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjEzLCAxMjAsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgCisgICAgMjMxLCAyMzIsIDI2LCA2LCAxLCAyNTQsIDE0NCwgMiwgMjE0LCAxMywgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyMjYsIAorICAgIDExMCwgMjYsIDYsIDEsIDI1NCwgMTQ0LCAyLCAyMjQsIDE2NywgMjYsIDIzNCwgMiwgMjYsIDIyNCwgMTY3LCAyNiwgMjI0LCAKKyAgICAxNTQsIDI2LCAyMjUsIDE3NSwgMjYsIDI0NywgMjUyLCAyMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyMTQsIAorICAgIDE0LCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyMTAsIDIxOSwgMjYsIDQsIDEsIDI0NSwgNjQsIDIsIAorICAgIDIyNiwgMTExLCAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyNDUsIDY0LCAyLCAyMjUsIDE3NSwgMjYsIDQsIDEsIDI0NSwgCisgICAgNjQsIDIsIDIyNSwgMTc2LCAyMiwgMjEwLCAyMTksIDI2LCA2LCAxLCAyNDUsIDEwMSwgMiwgMjE0LCAxMywgMjYsIDYsIDEsIAorICAgIDI0NSwgMTAxLCAyLCAyMjYsIDExMCwgMjYsIDYsIDEsIDI0NSwgNjQsIDIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyNDUsIDY0LCAKKyAgICAyLCAyMjYsIDExMCwgMjYsIDYsIDEsIDI0NSwgNjQsIDIsIDIyNCwgMTY3LCAyNiwgMjI0LCAxNTUsIDIyLCAyMTQsIDEzLCAKKyAgICAyNiwgMjI0LCAxNTUsIDIyLCAyMjYsIDExMCwgMjYsIDIyNCwgMTU1LCAyMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyMzUsIAorICAgIDE4NiwgMiwgMjEzLCAxMjAsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMiwgMjMxLCAyMzIsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMiwgCisgICAgMjQ3LCAyNTIsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjM1LCAxODYsIDIsIDI0NywgMjUyLCAyMiwgMjI2LCAxMTAsIDI2LCAKKyAgICA0LCAxLCAyMzUsIDE4NiwgMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyMzUsIDE4NiwgMiwgMjQ3LCAyNTIsIDIyLCAyMjUsIAorICAgIDE3NSwgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyMTMsIDEyMCwgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyMzEsIDIzMiwgCisgICAgMjYsIDYsIDEsIDIzNSwgMTg2LCAyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjM1LCAxODYsIDIsIDIyNiwgMTEwLCAyNiwgMjQ4LCAKKyAgICAxNTQsIDIyLCAyMTQsIDEzLCAyNiwgMjQ4LCAxNTQsIDIyLCAyMjYsIDExMCwgMjYsIDI0OCwgMTU0LCAyMiwgMjI1LCAxNzUsIAorICAgIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjEzLCAxMjAsIDI2LCA0LCAxLCAyMTQsIDE1OCwgMiwgMjMxLCAyMzIsIDI2LCA0LCAKKyAgICAxLCAyMTQsIDE1OCwgMiwgMjQ3LCAyNTIsIDIyLCAyMTQsIDEzLCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDI0NywgMjUyLCAKKyAgICAyMiwgMjI2LCAxMTAsIDI2LCA0LCAxLCAyMjMsIDM4LCAyLCAyMjQsIDE1NCwgMjYsIDQsIDEsIDIyMywgMzgsIDIsIDI0OCwgCisgICAgMTUzLCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDIyNSwgMTc1LCAyNiwgNCwgMSwgMjE0LCAxNTgsIDIsIDI0NywgMjUyLCAKKyAgICAyMiwgMjI1LCAxNzUsIDI2LCA2LCAxLCAyMTQsIDE1OCwgMiwgMjEzLCAxMjAsIDI2LCA2LCAxLCAyMTQsIDE1OCwgMiwgCisgICAgMjMxLCAyMzIsIDI2LCA2LCAxLCAyMTQsIDE1OCwgMiwgMjE0LCAxMywgMjYsIDYsIDEsIDIxNCwgMTU4LCAyLCAyMjYsIAorICAgIDExMCwgMjYsIDYsIDEsIDIyMywgMzgsIDIsIDI0OCwgMTUzLCAyNiwgMjQ3LCAyNTIsIDIyLCAyMTQsIDEzLCAyNiwgMjQ3LCAKKyAgICAyNTIsIDIyLCAyMjYsIDExMCwgMjYsIDIxNCwgMTMsIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjE0LCAxNCwgMjIsIDIxMCwgCisgICAgMjE5LCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDIxMCwgMjE5LCAyNiwgNCwgMSwgMjI2LCAyMDIsIDIsIDIyNiwgMTExLCAKKyAgICAyMiwgMjEwLCAyMTksIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgMjI1LCAxNzUsIDI2LCA0LCAxLCAyMjYsIDIwMiwgMiwgCisgICAgMjI1LCAxNzYsIDIyLCAyMTAsIDIxOSwgMjYsIDYsIDEsIDIyNiwgMjAwLCAyLCAyMTQsIDEzLCAyNiwgNiwgMSwgMjI2LCAKKyAgICAyMDAsIDIsIDIyNiwgMTEwLCAyNiwgNiwgMSwgMjI2LCAyMDIsIDIsIDIxNCwgMTMsIDI2LCA2LCAxLCAyMjYsIDIwMiwgMiwgCisgICAgMjI2LCAxMTAsIDI2LCA2LCAxLCAyMjYsIDIwMiwgMiwgMjI0LCAxNjcsIDI2LCAyMjYsIDExMCwgMjYsIDI0OCwgMTUzLCAKKyAgICAyNDUsIDE1MSwgMjI0LCAyNywgMjQ1LCAxNjAsIDIyNCwgMjcsIDI0NSwgMTUxLCAyMTksIDE4LCAyNDUsIDE2MCwgMjE5LCAKKyAgICAxOCwgMjE2LCAxNDEsIDIxOSwgMTgsIDI0NCwgOSwgMjE5LCAxOCwgMjE5LCAxMjMsIDIxOSwgMTgsIDI0NCwgMTEyLCAyMTksIAorICAgIDE4LCAyMjQsIDE0MSwgMjE5LCAxOCwgMjE2LCAxNzAsIDIxOSwgMTgsIDI0MiwgMzUsIDIxOSwgMTgsIDIxMCwgODcsIDIxMSwgCisgICAgMjQ1LCAyMTksIDE4LCAyMTAsIDg3LCAyMTEsIDI0NSwgMjI4LCA2NywgMjEwLCA4NywgMjExLCAyNDUsIDIzNSwgNjMsIAorICAgIDIzMywgMzgsIDc4LCAyMjIsIDI0MywgNzgsIDI0MCwgMTY4LCAyMjgsIDY4LCAyNDAsIDE2OCwgMjQ0LCAxMTIsIDI0OCwgCisgICAgMTU2LCAyNDUsIDE1MSwgMjQ4LCAxNTYsIDI0NSwgMTYwLCAyNDgsIDE1NiwgMjAzLCAxMzAsIDUyLCA2NywgMjMyLCAyMTMsIAorICAgIDUyLCAxMjEsIDIzMiwgMjEzLCA0MywgMjE5LCAxNTUsIDIyMywgMjU0LCA3OCwgNDQsIDIxOSwgMTU1LCAyMjMsIDI1NCwgCisgICAgNzgsIDIxOSwgMTU1LCAyMzIsIDEwOSwgMjIzLCAyNTQsIDc4LCAyMTksIDE1NSwgMjQxLCAxNjMsIDIyMywgMjU0LCA3OCwgCisgICAgNDMsIDUyLCAyMjMsIDI1NCwgNzgsIDQ0LCA1MiwgMjIzLCAyNTQsIDc4LCA1MiwgMjMyLCAxMDksIDIyMywgMjU0LCA3OCwgCisgICAgNTIsIDI0MSwgMTYzLCAyMjMsIDI1NCwgNzgsIDI0OCwgMjA1LCA1MiwgMjQ4LCAyMDUsIDI1MSwgMTEzLCAyMTUsIDIyMiwgCisgICAgMjUxLCAxMTMsIDEyMywgNTksIDIzMywgNTYsIDExMywgNTksIDIzMywgNTYsIDIwMywgMjQ1LCAxNjMsIDI0MCwgMTY2LCAKKyAgICAyMjUsIDEwLCAyMzIsIDIxNCwgMjIwLCAxMzcsIDIyNiwgMTUsIDIyMCwgMTM3LCAyMzMsIDM4LCAyNDUsIDE1OCwgMjIyLCAKKyAgICAyNDMsIDI0NSwgMTU4LCAyMjQsIDI0NiwgMjQ3LCAxOTYsIDI0NCwgMTksIDIzMywgMzgsIDIyNiwgMTE3LCAyMjIsIDI0MywgCisgICAgMjI2LCAxMTcsIDIyOSwgMTk0LCAyMjgsIDczLCAyMTksIDE4LCAyMjUsIDE4MywgMjMwLCAxOTMsIDUwLCAyMjUsIDE4MywgCisgICAgMjE2LCAyNDgsIDIxNiwgMTQ4LCA1MCwgMjI0LCAxOTAsIDUyLCAyMjQsIDE5MCwgMjE1LCAyMTEsIDIyNCwgMTkwLCAyMjMsIAorICAgIDQ5LCAyMjQsIDE5MCwgMjIzLCA0OSwgNTIsIDIyNCwgMTkwLCAyMjMsIDQ5LCAyMTUsIDIxMSwgMjI0LCAxOTAsIDI1MCwgCisgICAgMjM4LCAyMTksIDE1NSwgMjMzLCA0MiwgMjU0LCAxMTAsIDIyMywgMjU0LCA3OCwgMjE5LCAxNTUsIDIyMiwgMjQ3LCAyNTQsIAorICAgIDExMCwgMjIzLCAyNTQsIDc4LCAyMjMsIDEwNywgNzgsIDUyLCAyNDUsIDMxLCA3OCwgMjM1LCAyMDEsIDIyNiwgMTE5LCAKKyAgICAyMTQsIDE4MCwgMTM1LCAyMTYsIDExMSwgMjUwLCAyMzksIDIzNSwgMjE2LCAyMjUsIDEwLCAyNTMsIDIxNCwgMjQwLCAxNjksIAorICAgIDI1MSwgMTEzLCAyNDQsIDIsIDIxOSwgOTUsIDQzLCA0MiwgMjUxLCAxNTgsIDIsIDIyNCwgNywgNDQsIDQyLCAyNTEsIDE1OCwgCisgICAgMiwgMjI0LCA3LCA1MiwgMjI0LCAxMywgNzgsIDIyNCwgMTMsIDI0NSwgMzEsIDc4LCAyNDUsIDMxLCAyMjQsIDEzLCA3OCwgCisgICAgMjE2LCA3MCwgNSwgMjQ1LCA2NSwgMjIzLCA0OSwgMjI1LCA2OCwgNTAsIDg1LCAxNDAsIDI1MSwgMTEzLCA4NSwgOTcsIAorICAgIDI1MSwgMTEzLCAxMjEsIDI1MywgMjE2LCAyMjMsIDQ5LCAyMjAsIDE1MCwgMjUwLCAxLCAyMTQsIDE2MywgMTEzLCAyNTMsIAorICAgIDIxNSwgMjU0LCAxNTgsIDIxMywgMTg4LCAyNDksIDIxNywgMjMwLCAxODIsIDUwLCAyMTcsIDIzNCwgMjQ4LCAxNTYsIDIzNSwgCisgICAgMTkzLCAyMTQsIDE4MCwgMjQ0LCA1MiwgMjI0LCAxNDEsIDc4LCAxMzQsIDU5LCAyMjQsIDE0MCwgMjI0LCAyNCwgMjI0LCAKKyAgICAxOTAsIDI0NCwgMTEsIDU5LCAyMjQsIDE0MCwgMjQ0LCA4MSwgNTksIDIyNCwgMTQwLCAxMTMsIDU5LCAyMjQsIDE0MCwgCisgICAgMjQ0LCAxMSwgNTksIDc4LCAyNDYsIDExOCwgMjQ5LCAxMzAsIDIxNSwgMjIxLCA2NywgMjQ0LCAxMSwgMjQ3LCAxMTgsIAorICAgIDIzMSwgODIsIDExLCAyMTksIDE4LCAyMTEsIDIwOSwgMjM1LCA2MywgMjQzLCAyMjcsIDI1NCwgNTIsIDIzNSwgMTkxLCAKKyAgICAyMTYsIDg1LCAyMzUsIDE5MSwgMjIwLCAxMzcsIDIzNSwgMTkxLCAyMjUsIDIyLCAyMzUsIDIyOCwgMjE3LCAxODIsIDIxNywgCisgICAgMjUxLCAyNTUsIDUsIDIxNywgMTgyLCAyMTcsIDI1MSwgMjM1LCAyMjgsIDEwLCAyNDQsIDIwLCAyMjAsIDgwLCAyNTUsIDUsIAorICAgIDEwLCAyNDQsIDIwLCAyMjAsIDgwLCAyMjksIDE4OSwgMjEsIDIyMCwgODEsIDIyOCwgNjksIDIxLCAyMjAsIDgxLCAyMTgsIAorICAgIDIzLCAyMTAsIDg2LCAyMTgsIDIzLCA3LCA0LCAxLCA3MywgMjE4LCAyMywgMTYxLCAyMTgsIDIzLCAxODksIDIxOCwgMjMsIAorICAgIDE5NCwgMjE4LCAyMywgMTk4LCAyMTgsIDIzLCAxOTUsIDIxOCwgMjMsIDIwMCwgMjE4LCAyMywgOTYsIDUwLCAyMTgsIDIzLCAKKyAgICAyMzAsIDE4MSwgMjE4LCAyMywgMjQ1LCA5OCwgNTAsIDIxOCwgMjMsIDQzLCAyMjYsIDMsIDIxOCwgMjMsIDQ0LCAyMjYsIDMsIAorICAgIDIxOCwgMjMsIDcsIDQsIDEsIDIzMCwgMjUsIDIxOCwgNjUsIDIxMCwgODYsIDIxOCwgNjUsIDExMCwgMjE4LCA2NSwgMTA1LCAKKyAgICAyMTgsIDY1LCAxNTgsIDIxOCwgNjUsIDE2MSwgMjE4LCA2NSwgMTg5LCAyMTgsIDY1LCAxOTQsIDIxOCwgNjUsIDE5OCwgCisgICAgMjE4LCA2NSwgMTk1LCAyMTgsIDY1LCAyMDAsIDIxOCwgNjUsIDk2LCA1MCwgMjE4LCA2NSwgMjMwLCAxODEsIDIxOCwgNjUsIAorICAgIDI0NSwgOTgsIDUwLCAyMTgsIDY1LCA0MywgMjI2LCAzLCAyMTgsIDY1LCA0NCwgMjI2LCAzLCA3LCAyMTgsIDY1LCA0LCAxLCAKKyAgICA2MSwgNywgMjE4LCA2NSwgNCwgMSwgNzUsIDcsIDIxOCwgNjUsIDQsIDEsIDc2LCA3LCAyMTgsIDY1LCA0LCAxLCAyMTEsIAorICAgIDE3OCwgNywgMjE4LCA2NSwgNCwgMSwgMjIxLCAxOTUsIDcsIDIxOCwgNjUsIDQsIDEsIDI0MiwgNjAsIDcsIDIxOCwgNjUsIAorICAgIDQsIDEsIDIzNSwgMjMsIDcsIDIxOCwgNjUsIDQsIDEsIDE1NiwgNywgMjE4LCA2NSwgNCwgMSwgMTkzLCA3LCAyMTgsIDY1LCAKKyAgICA0LCAxLCAyMzAsIDI1LCA3LCAyMTgsIDY1LCA0LCAxLCAyMjYsIDEwNSwgNywgMjE4LCA2NSwgNCwgMSwgMjIyLCA5MSwgNywgCisgICAgMjE4LCA2NSwgNCwgMSwgMjE3LCAxNTIsIDI0NSwgNDYsIDUwLCAyNDksIDIyNywgNTAsIDI0OSwgMTE3LCA1MCwgMjQzLCAKKyAgICAyNTEsIDI0MywgMjU0LCA1MCwgMjMyLCAxOTgsIDUwLCAyMzAsIDE5NCwgNTAsIDIyOSwgMjEwLCA1MCwgMjI1LCAxNjIsIAorICAgIDUwLCAyMjIsIDExOCwgNTAsIDIxMSwgMjE3LCA1MCwgMTY2LCAyMjAsIDQ5LCA1MCwgMjQ3LCAxMjcsIDUwLCAyNDUsIDQ3LCAKKyAgICA1MCwgMjM0LCA3NiwgNTAsIDIxNSwgMTEyLCA1MCwgMjQ2LCAxMDEsIDUwLCAyNDMsIDQwLCAyMjUsIDE5MywgNTAsIDIyNSwgCisgICAgMTYwLCA1MCwgMjQyLCAxMDksIDUwLCAyNTMsIDE4MiwgNTAsIDI0MCwgMjI4LCA1MCwgMjUwLCAxODUsIDUwLCAyMzIsIAorICAgIDE5MSwgMjE2LCAzLCA1MCwgMjE5LCAwLCA1MCwgMjE2LCAyNDUsIDUwLCAyMzUsIDI0MSwgMjIyLCAxMTgsIDUwLCAzOCwgCisgICAgNDMsIDI0MSwgMjU1LCA0OCwgMzgsIDQ0LCAyNDEsIDI1NSwgNDgsIDM4LCAxOTksIDY3LCAyMzIsIDIxNCwgMjI2LCAxMjAsIAorICAgIDM4LCAyMTksIDI1MSwgNjcsIDIzMiwgMjE0LCAyMjYsIDEyMCwgMzgsIDI1NCwgODgsIDgwLCA0OCwgMzgsIDI1MCwgMiwgCisgICAgODAsIDQ4LCAzOCwgNDMsIDgwLCA0OCwgMzgsIDQ0LCA4MCwgNDgsIDM4LCAyMjIsIDIzNCwgMjI2LCAxMjAsIDM4LCAyNTAsIAorICAgIDIsIDIyMiwgMjM0LCAyMjYsIDEyMCwgMzgsIDI1NCwgODgsIDIyMiwgMjM0LCAyMjYsIDEyMCwgMzgsIDEzNCwgMTcwLCA0OCwgCisgICAgMzgsIDI0NCwgMTEsIDE3MCwgNDgsIDM4LCAyNDUsIDE0NiwgMjUwLCAzNSwgMzgsIDI0NSwgMTQ2LCAyMTgsIDIzNCwgMzgsIAorICAgIDI0NSwgMTQ2LCAyNDcsIDI0OCwgMzgsIDI0NSwgMTQ2LCAyNTAsIDM2LCAyNTIsIDE4MCwgMzgsIDQzLCA0NCwgODAsIDQ4LCAKKyAgICAzOCwgMjQ1LCAxNDYsIDIyMSwgMTg4LCAzOCwgMjQ1LCAxNDYsIDIzNCwgMTM1LCAzOCwgMjQ1LCAxNDYsIDIxNCwgMTU1LCAKKyAgICAyMjUsIDcsIDIxNSwgMjI1LCAzOCwgMjIzLCA1MCwgMjE5LCA0NywgMjI2LCAxMjAsIDM4LCA1MiwgNjcsIDIxOCwgMTAzLCAKKyAgICAyMjYsIDEyMCwgMzgsIDI1NCwgOTgsIDg3LCAzOCwgMjE1LCAyMTEsIDIxNCwgMTgyLCAzOCwgMjExLCAyNDcsIDI1MSwgCisgICAgMTQwLCA0OCwgMzgsIDE0MCwgODAsIDIyNiwgMTIwLCAzOCwgMTk5LCA1MiwgMjE5LCA0NywgMjI2LCAxMjAsIDM4LCA5NywgCisgICAgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAyNDYsIDEwMywgMzgsIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAyNDYsIAorICAgIDEwMywgMzgsIDQzLCA4MCwgNTEsIDM4LCA0NCwgODAsIDUxLCAzOCwgMjUzLCAyMTcsIDQ4LCAyNTUsIDExLCAyMjYsIDIzMSwgCisgICAgMjU0LCAyNTEsIDIxNiwgNDIsIDIxNiwgMTk2LCAyMTgsIDc0LCAxMzksIDYsIDI1MSwgNjYsIDI0OCwgNzEsIDI1MCwgMTc4LCAKKyAgICAyNTAsIDE3NSwgMjMyLCAyMTQsIDg3LCAyNTAsIDI0MCwgMjI2LCAyMzEsIDI1MSwgMjYsIDIxNCwgMTg5LCAyNDUsIDQ4LCAKKyAgICAyNDksIDE5MSwgMjIxLCAxODUsIDI0OCwgNzEsIDI0NCwgMTc5LCAxMTksIDQsIDI0MywgMjAyLCAxMTksIDYsIDI0MiwgNjAsIAorICAgIDI1MSwgMjE5LCA2LCAyNDIsIDYwLCAxMzksIDYsIDI0MiwgNjAsIDIyNSwgMzcsIDI0OSwgMTkxLCAyMjUsIDM3LCAyNDksIAorICAgIDE5MiwgMTE3LCAxMTMsIDIyNSwgMTA4LCAxMTksIDYsIDczLCAyNTEsIDIxOSwgNiwgNzMsIDExOSwgNiwgMTU2LCAxMTksIAorICAgIDQsIDE1NiwgMjMzLCAxNDksIDU3LCAyNTIsIDE0MSwgODcsIDEzOSwgNiwgMjMwLCAyNSwgMjI3LCAxOTYsIDUwLCAyMTksIAorICAgIDMxLCAyMjMsIDExOSwgMjQ5LCAxNjIsIDExOSwgNiwgMjI2LCAxMDUsIDEzOSwgNiwgMjI2LCAxMDUsIDEzOSwgNiwgMjI0LCAKKyAgICA5NiwgMTE5LCA2LCAxNTMsIDI1MSwgMjE5LCA2LCAxNTMsIDEzOSwgNiwgMTUzLCAyMjQsIDE5NiwgMjE3LCA3MSwgMjIzLCAKKyAgICA2MiwgMjIwLCAxMzIsIDc4LCAyMTcsIDEsIDUwLCAyMTUsIDI1MywgMTY0LCA1MCwgMjEzLCAyNDAsIDEzOSwgNiwgMjEwLCAKKyAgICAxNTksIDIyNiwgMTMzLCA1MCwgMjI2LCAyMjEsIDUwLCAyMzUsIDE5MywgMjI2LCAyMjEsIDUwLCAyNTEsIDIxOSwgNiwgCisgICAgMjEwLCAxNTksIDIxNSwgOTQsIDI2LCA0LCAxLCAyMzUsIDE4NSwgMjM0LCAxNzMsIDUwLCAyNTQsIDEwNywgNTAsIDExOSwgCisgICAgNiwgMjUzLCAxNTgsIDI1MSwgMjE5LCA2LCAyNTEsIDY2LCAyNDUsIDY4LCA4NywgMTE5LCA0LCA3NSwgMTE5LCA2LCA3NSwgCisgICAgMTE5LCA2LCAyNDUsIDYsIDIxNSwgOTQsIDYsIDI0NSwgNiwgMTE5LCA2LCAxOTMsIDExOSwgNCwgNzYsIDExMiwgODcsIAorICAgIDI1MiwgMjksIDg3LCAyNDIsIDIwMiwgODcsIDI0OCwgMTkwLCA4NywgMjM1LCAyMzIsIDIxOSwgMjksIDIyMiwgMTg3LCA2LCAKKyAgICAyMjQsIDk2LCAyNDQsIDE4MiwgNTAsIDEzOSwgNCwgMjI1LCAxMDgsIDEzOSwgNCwgMjQzLCAxMDcsIDEzOSwgNiwgMjQzLCAKKyAgICAxMDcsIDEzOSwgNiwgMjI1LCAxMDgsIDEzOSwgMjMwLCAyNCwgMjE4LCA0MCwgMjE1LCA5NCwgMzUsIDYsIDI0MywgMjAyLCAKKyAgICAyMTUsIDk0LCAzNSwgNiwgMTU2LCAyMjMsIDQ5LCAzNSwgNiwgMTU2LCAyMTUsIDk0LCAzNSwgNiwgMjExLCAxMTcsIDEzOSwgCisgICAgMzIsIDYsIDI0OSwgNjAsIDEzOSwgMzIsIDQsIDI0OSwgNjAsIDEzOSwgMzIsIDQsIDc1LCAxMzksIDMyLCA0LCA3MywgMTM5LCAKKyAgICAzMiwgNCwgMjM1LCAxNDQsIDIyNCwgMTcwLCAyMzIsIDIxMywgMjE1LCA5NCwgMjU0LCAxMjYsIDIyNSwgMTgzLCA1MCwgCisgICAgMjU0LCAxODAsIDIxNSwgOTQsIDQsIDI0NSwgNiwgMTYsIDMxLCAyMjEsIDI1MiwgMjE5LCAyOSwgMjEyLCAxMTQsIDI0NCwgCisgICAgMiwgMTIzLCAyMjAsIDExOCwgMjEyLCAxMTQsIDI0NCwgMiwgMTIzLCAyMjgsIDE5NCwgMjEyLCAxMTQsIDI0NCwgMiwgMTIzLCAKKyAgICAyMTYsIDI0MSwgMjEyLCAxMTQsIDI0NCwgMiwgMTIzLCAyMTYsIDE2OCwgMjEyLCAxMTQsIDI0NCwgMiwgMTEzLCAyMTYsIAorICAgIDE2NiwgMjEyLCAxMTQsIDI0NCwgMiwgMTIzLCAyNDQsIDExNywgMjEyLCAxMTQsIDI0NCwgMiwgMTEzLCAyNDQsIDExNiwgCisgICAgMjEyLCAxMTQsIDI0NCwgMiwgMTM0LCAyNDQsIDExNiwgMjEyLCAxMTQsIDI0NCwgMiwgMjQ0LCAxMSwgMjQ0LCAxMTYsIAorICAgIDIxMiwgMTE0LCAyNDQsIDIsIDEyMywgMjE5LCAxMTUsIDIxMiwgMTE0LCAyNDQsIDIsIDI0NCwgODEsIDIxOSwgMTEzLCAKKyAgICAyMTIsIDExNCwgMjQ0LCAyLCAxMjMsIDI0NSwgMTg4LCAyMTIsIDExNCwgMjQ0LCAyLCAxMzQsIDI0NSwgMTg2LCAyMTIsIAorICAgIDExNCwgMjQ0LCAyLCAyNDQsIDgxLCAyNDUsIDE4NiwgMjEyLCAxMTQsIDI0NCwgMiwgMjIwLCAxMjIsIDI0NSwgMTg2LCAKKyAgICAyNDQsIDIsIDIyNywgMTk3LCAxMTAsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTEwLCAyMjIsIDE5OCwgMjI3LCAxOTgsIDEwNSwgCisgICAgMjIyLCAxOTgsIDIyNywgMTk4LCAxNTgsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTYxLCAyMjIsIDE5OCwgMjI3LCAxOTgsIAorICAgIDE4OSwgMjIyLCAxOTgsIDIyNywgMTk4LCAxOTQsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTk4LCAyMjIsIDE5OCwgMjI3LCAKKyAgICAxOTgsIDE5NSwgMjIyLCAxOTgsIDIyNywgMTk4LCAyMDAsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjE2LCAyNDcsIDIyMiwgCisgICAgMTk4LCAyMjcsIDE5OCwgMjQ1LCAxNjcsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjE1LCA3NiwgMjIyLCAxOTgsIDIyNywgMTk4LCAKKyAgICAyNDQsIDExNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAxMjMsIDI0MCwgMjEwLCAyMjIsIDE5OCwgMjI3LCAxOTgsIDI0NCwgODEsIAorICAgIDI0MCwgMjEwLCAyMjIsIDE5OCwgMjI3LCAxOTgsIDEyMywgMjE2LCAxNDcsIDQsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTEwLCAKKyAgICA0LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDEwNSwgNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAxNTgsIDQsIDIyMiwgMTk4LCAyMjcsIAorICAgIDE5OCwgMTYxLCA0LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDE4OSwgNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAxOTQsIDQsIDIyMiwgCisgICAgMTk4LCAyMjcsIDE5OCwgMTk4LCA0LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDE5NSwgNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAKKyAgICAyMDAsIDQsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjE2LCAyNDcsIDQsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjQ1LCAxNjcsIDQsIAorICAgIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjE1LCA3NiwgNCwgMjIyLCAxOTgsIDIyNywgMTk4LCAyNDQsIDExNCwgNCwgMjIyLCAKKyAgICAxOTgsIDIyNywgMTk4LCAxMjMsIDI0MCwgMjEwLCA0LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDI0NCwgODEsIDI0MCwgMjEwLCAKKyAgICA0LCAyMjIsIDE5OCwgMjI3LCAxOTgsIDEyMywgMjE2LCAxNDcsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTIzLCAyMTYsIDE0OCwgCisgICAgMjUxLCA2NywgMjQ5LCA2MCwgMjIyLCAxOTgsIDIyNywgMTk4LCAyNDQsIDgxLCAyMTYsIDE0NywgMjIyLCAxOTgsIDIyNywgCisgICAgMTk4LCAyMTYsIDI0OCwgMjE2LCAxNDcsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMjIzLCA0OSwgMTIzLCAyNDAsIDIxMCwgNywgCisgICAgNCwgMSwgMjIzLCA0OSwgMjUxLCA2NiwgMjIyLCAxOTgsIDIyNywgMTk4LCAyMTksIDEyNSwgMjMzLCA3OCwgMTcsIDIyMiwgCisgICAgMTk4LCAyMjcsIDE5OCwgMjQ0LCAxMTUsIDI0NSwgMjI2LCAxNywgMjIyLCAxOTgsIDIyNywgMTk4LCAyNDQsIDExNSwgMjE2LCAKKyAgICAxNDcsIDIyMiwgMTk4LCAyMjcsIDE5OCwgMTIzLCAyNDAsIDIxMSwgMjE2LCAxNDcsIDIxMiwgMTE0LCAyNDQsIDIsIDIxMCwgCisgICAgODcsIDIxNiwgMTY2LCAxNDAsIDc0LCAyMTQsIDE1MywgNzQsIDk3LCA3NCwgMjQ2LCAxMDQsIDc0LCA0MywgNDQsIDc0LCAKKyAgICAxMjAsIDEyNCwgNzQsIDIyOCwgNTYsIDIxMiwgOSwgNzQsIDIyOCwgNTYsIDI0NSwgMjIwLCA3NCwgMjE5LCAyOCwgMjQ1LCAKKyAgICAyMjAsIDc0LCAyMTksIDI4LCAyMTIsIDksIDc0LCAxNDAsIDgwLCAyLCA5MSwgOTcsIDgwLCAyLCA5MSwgMTQwLCAyMTIsIAorICAgIDM2LCA3NCwgOTcsIDIxMiwgMzYsIDc0LCAxNDAsIDExMywgMjQxLCAyMzQsIDc0LCAyMTQsIDE1MywgMTEzLCAyNDEsIDIzNCwgCisgICAgNzQsIDk3LCAxMTMsIDI0MSwgMjM0LCA3NCwgMjQ2LCAxMDQsIDExMywgMjQxLCAyMzQsIDc0LCAxNDAsIDgwLCAyLCAyMTcsIAorICAgIDc3LCA5NywgODAsIDIsIDIxNywgNzcsIDE0MCwgODAsIDI0MywgMjQzLCAxMzAsIDIxNCwgMTUzLCA4MCwgMjQzLCAyNDMsIAorICAgIDEzMCwgOTcsIDgwLCAyNDMsIDI0MywgMTMwLCAyNDYsIDEwNCwgODAsIDI0MywgMjQzLCAxMzAsIDEyMCwgMTI0LCA4MCwgMiwgCisgICAgMjUyLCAxMjcsIDE0MCwgODAsIDIsIDEwMywgOTcsIDgwLCAyLCAxMDMsIDE0MCwgODAsIDIsIDIzMiwgMTIzLCA5NywgODAsIAorICAgIDIsIDIzMiwgMTIzLCA0MywgNDQsIDIxMiwgMzYsIDc0LCA0MywgNDQsIDgwLCAyLCA5MSwgMjQ2LCAxMDQsIDIxMCwgMzUsIAorICAgIDc0LCAyMTQsIDE1MywgODAsIDIsIDIxNiwgNzcsIDIzMywgMzcsIDIxNCwgMTUzLCA4MCwgMiwgMjE2LCA3NywgMjIyLCAKKyAgICAyNDEsIDI0NiwgMTA0LCA4MCwgMiwgMjE2LCA3NywgMjMzLCAzNywgMjQ2LCAxMDQsIDgwLCAyLCAyMTYsIDc3LCAyMjIsIAorICAgIDI0MSwgOTcsIDgwLCAyLCAyNDksIDE2MSwgMjQ2LCAxMDMsIDI0NiwgMTA0LCA4MCwgMiwgMjQ5LCAxNjEsIDIzMywgMzcsIAorICAgIDI1NCwgODgsIDIxNiwgMTQsIDIyMCwgMTUzLCA3NCwgMjUwLCAyLCAyMTYsIDE0LCAyMjAsIDE1MywgNzQsIDIyOCwgNTYsIAorICAgIDIxMiwgOSwgODAsIDIxNiwgNDIsIDE5OSwgMTMwLCAxNDAsIDgwLCAyMTYsIDQyLCAyNTIsIDE0MSwgMTE3LCA5NywgODAsIAorICAgIDIxNiwgNDIsIDEzMCwgMjU0LCA4OCwgMjA0LCAyNTAsIDM2LCA3NCwgMjUwLCAyLCAyMDQsIDI1MCwgMzYsIDc0LCAxNDAsIAorICAgIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMjE0LCAxNTIsIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAyNDYsIDEwMywgCisgICAgMjE0LCAxNTMsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMjIyLCAyNDEsIDIxNCwgMTUzLCAyNDEsIDI1NSwgMiwgMjUyLCAKKyAgICAxMzksIDIzMywgMzcsIDk3LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDIxNCwgMTUyLCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgCisgICAgMTM5LCAyNDYsIDEwMywgMjQ2LCAxMDQsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMjIyLCAyNDEsIDI0NiwgMTA0LCAyNDEsIAorICAgIDI1NSwgMiwgMjUyLCAxMzksIDIzMywgMzcsIDk3LCA4MCwgMTE3LCAxNDAsIDc0LCAyMTQsIDE1MywgODAsIDE0MCwgNjQsIAorICAgIDI0NiwgMTA0LCA3NCwgMTQwLCA4MCwgMTE3LCA5NywgNzQsIDE0MCwgMjI2LCA3MCwgMjUzLCAyNDcsIDIxNCwgMTUzLCAKKyAgICAyMjYsIDcwLCAyNTMsIDI0NywgOTcsIDIyNiwgNzAsIDI1MywgMjQ3LCAyNDYsIDEwNCwgMjI2LCA3MCwgMjUzLCAyNDcsIAorICAgIDE0MCwgMjQxLCAyNTUsIDExNywgOTcsIDI0MSwgMjU0LCA5NywgMjQxLCAyNTUsIDExNywgMTQwLCAyNDEsIDI1NCwgMTQwLCAKKyAgICA1MiwgODAsIDIsIDkxLCA0MywgNDQsIDUyLCA4MCwgMiwgOTEsIDk3LCA1MiwgODAsIDIsIDkxLCAxNDAsIDUyLCA3NCwgCisgICAgMjE0LCAxNTMsIDUyLCA3NCwgOTcsIDUyLCA3NCwgMjQ2LCAxMDQsIDUyLCA3NCwgNDMsIDQ0LCA1MiwgNzQsIDEyMCwgMTI0LCAKKyAgICA1MiwgNzQsIDIyOCwgNTYsIDIxMiwgOSwgNTIsIDc0LCAyMjgsIDU2LCAyNDUsIDIyMCwgNTIsIDc0LCAyMTksIDI4LCAyNDUsIAorICAgIDIyMCwgNTIsIDc0LCAyMTksIDI4LCAyMTIsIDksIDUyLCA3NCwgMTQwLCAyMTUsIDIxMSwgNzQsIDk3LCAyMTUsIDIxMSwgCisgICAgNzQsIDE0MCwgMjE4LCAyMzAsIDc0LCA5NywgMjE4LCAyMzAsIDc0LCAyMTQsIDE1MywgODAsIDIsIDUyLCA5MSwgMjQ2LCAKKyAgICAxMDQsIDgwLCAyLCA1MiwgOTEsIDE0MCwgMjQ4LCAxNTUsIDc0LCAyMTQsIDE1MywgMjQ4LCAxNTUsIDc0LCA5NywgMjQ4LCAKKyAgICAxNTUsIDc0LCAyNDYsIDEwNCwgMjQ4LCAxNTUsIDc0LCAxNDAsIDgwLCAyMTYsIDQyLCAxMzAsIDk3LCA4MCwgMjE2LCA0MiwgCisgICAgMTMwLCAxNDAsIDcxLCA3NCwgMjE0LCAxNTMsIDcxLCA3NCwgOTcsIDcxLCA3NCwgMjQ2LCAxMDQsIDcxLCA3NCwgMjE0LCAKKyAgICAxNTMsIDcxLCA4MCwgMjQzLCAyNDMsIDEzMCwgMjE0LCAxNTMsIDcxLCA4MCwgMjI2LCAxOTcsIDIyNSwgMjE0LCAyMTQsIAorICAgIDE1MywgNzEsIDgwLCAyMjYsIDE5NywgMjI1LCAyMTUsIDIsIDIwMywgMTMwLCAyMTQsIDE1MywgNzEsIDgwLCAyMjYsIDE5NywgCisgICAgMjI1LCAyMTUsIDIsIDY3LCAxMzAsIDIxNCwgMTUzLCA3MSwgNTIsIDc0LCAyMTQsIDE1MywgNzEsIDUyLCA4MCwgMjI2LCAKKyAgICAxOTcsIDIyNSwgMjE0LCA5NywgNzEsIDgwLCAyNDMsIDI0MywgMjEyLCA1NiwgMjI4LCA1NiwgMjEyLCA5LCA4MCwgMjE2LCAKKyAgICA0MiwgMjQ5LCAxNjAsIDIxOSwgMjgsIDI0NSwgMjIwLCA4MCwgMjE2LCA0MiwgMjQ5LCAxNjAsIDEyMCwgMTI0LCA3MSwgNzQsIAorICAgIDQ0LCA4MCwgMiwgNCwgMjUwLCAzNSwgMjQ2LCAxMDQsIDgwLCAxNDAsIDY0LCAyMTQsIDE1MywgNzQsIDEzNCwgOTcsIDI1MywgCisgICAgMjQ3LCAxNDAsIDgwLCAyLCA2NywgOTEsIDk3LCA4MCwgMiwgNjcsIDkxLCA0MywgNDQsIDgwLCAyLCA2NywgOTEsIDE0MCwgCisgICAgODAsIDIsIDUyLCA2NywgOTEsIDk3LCA4MCwgMiwgNTIsIDY3LCA5MSwgNDMsIDQ0LCA4MCwgMiwgNTIsIDY3LCA5MSwgMTQwLCAKKyAgICAyMjYsIDE3MywgNzQsIDk3LCAyMjYsIDE3MywgNzQsIDQzLCA0NCwgMjI2LCAxNzMsIDc0LCAzMSwgMjU0LCAxNTQsIDI0OSwgCisgICAgMjE0LCAyMjUsIDI1MywgMjQ3LCAyMzMsIDIxNiwgMTg3LCAyNDUsIDI3LCAyMTYsIDE4NywgMjQ3LCAxMzgsIDIyOCwgNTIsIAorICAgIDI0NSwgMjgsIDI0NSwgMTUyLCAyMjAsIDEyNywgMjM1LCAyNDUsIDIyOSwgMjIxLCAyNDUsIDE3MCwgMjI2LCAyMzEsIDIyOCwgCisgICAgNTIsIDI1NCwgMTI0LCAyNDUsIDE3MCwgMjI2LCAyMzEsIDQsIDI0NSwgMTcwLCAyMjYsIDIzMSwgMjQ5LCAxODYsIDI1MywgCisgICAgMjM4LCAyMzEsIDYyLCAyNDcsIDEzOCwgMjI4LCA1MiwgMjQ5LCAxODgsIDI1MywgMjM4LCAyMzEsIDYyLCA0LCAyNDksIAorICAgIDE4NiwgMjUzLCAyMzgsIDIzMSwgNjIsIDI0NSwgMTQzLCA2NCwgMjI0LCAxNzIsIDIzMCwgMjQsIDIyNCwgMTgwLCAyMzAsIAorICAgIDI0LCAyNDksIDE2NSwgMjMwLCAyNCwgMjE4LCA0MCwgMjMwLCAxODIsIDUwLCAyMzAsIDE4MCwgNTAsIDU5LCAyMjUsIDIyLCAKKyAgICAyNDcsIDE2OSwgMjE5LCA5NSwgMjIwLCAxMjgsIDIzMCwgMTgxLCAyNTMsIDIxNywgMjI2LCAxNjcsIDIyMiwgMjM0LCAyMjYsIAorICAgIDE2NywgMjUxLCAxMTQsIDIyNiwgMTY3LCA0MiwgMjIyLCAxOTMsIDI0OSwgMTA5LCAyMjIsIDE5MywgMjQ0LCA0LCAyMjIsIAorICAgIDE5MywgMjI0LCAxNjgsIDExMSwgMjM1LCAyMzQsIDQ0LCAyNTQsIDEwOSwgMjU0LCAxMDksIDIzMSwgODgsIDI1NCwgMTA5LCAKKyAgICAyMTgsIDI1NSwgMjU0LCAxMDksIDI0NywgMTcxLCAyNDcsIDEzOCwgMjI4LCA1MiwgMjQ3LCAxNzQsIDIyNiwgOCwgMTExLCAKKyAgICAyMjgsIDUyLCAyMjYsIDgsIDExMSwgMjMyLCAxNDYsIDI1NCwgMTE4LCAyMzIsIDE0NiwgMjI2LCAxNTgsIDIzNSwgMTk4LCAKKyAgICAyMTQsIDE3NSwgMjM1LCAyMTEsIDUyLCAyMzUsIDIxMSwgMjE1LCAyMTEsIDIzNSwgMjExLCAyNDksIDE4MiwgMjM1LCAyMTEsIAorICAgIDIxOCwgMTMsIDIzNSwgMjExLCAyMTMsIDEyOSwgMjM1LCAyMTEsIDI1MCwgMiwgMjM1LCAyMTEsIDI1MCwgMiwgMjQ5LCAKKyAgICAxODIsIDIzNSwgMjExLCAyNTQsIDg4LCAyNDksIDE4MiwgMjM1LCAyMTEsIDIxNiwgMTg2LCAyNTIsIDY3LCAyMjMsIDEzNywgCisgICAgMjI0LCAxNjksIDU5LCAyMzAsIDE4MSwgMjQ1LCAzMywgMjQzLCA0NiwgMjI0LCAxNjksIDI0MSwgNTcsIDIxNiwgODksIAorICAgIDIyNiwgMTY3LCAyMjMsIDQ5LCAxODIsIDIzNSwgMTkzLCAyMzMsIDY1LCAyMjIsIDkxLCAyMTksIDE1NywgMjEyLCAzNSwgCisgICAgMjExLCAyMDAsIDIyNCwgMTgwLCAyMjgsIDUyLCAxODIsIDIzMCwgMTgyLCAxODIsIDI1MywgMjEwLCAxMjgsIDExMSwgMjI4LCAKKyAgICA1MiwgMjUzLCAyMTAsIDEyOCwgMTExLCAyNTQsIDQ4LCAxMjgsIDExMSwgMjU0LCA0OCwgMjUxLCA4OCwgMjI4LCA1MiwgCisgICAgMjU1LCA0LCAxMjgsIDExMSwgMjI5LCAxMDAsIDI1NCwgNDgsIDIyOCwgNTksIDI1NSwgNCwgMTI4LCAxMTEsIDI1NCwgMTQ4LCAKKyAgICAxMjgsIDExMSwgMjI4LCA1MiwgMjU0LCAxNDgsIDEyOCwgMTExLCAyNTQsIDE0OCwgMTI4LCAxNzcsIDEyOCwgMTExLCAyMTUsIAorICAgIDIxMSwgMTgyLCAyNTQsIDE1NSwgMTI4LCAxMTEsIDI0NSwgOTQsIDExMSwgMjQzLCA0NSwgMjQ1LCA5NCwgMTExLCAyNDcsIAorICAgIDIzNCwgMjUyLCAyMywgMjU0LCA1MCwgMjE2LCAxOTYsIDIzMiwgMjIxLCAyNDMsIDQ1LCAxMjgsIDExMSwgMjU0LCA0OCwgCisgICAgMTI4LCAyMTYsIDQyLCAxNzcsIDIxNiwgMTk2LCAyMzYsIDE1LCAyMjYsIDIzMSwgMjM2LCAxNSwgNjQsIDE3NywgMjU0LCAKKyAgICA0OCwgMTI4LCAxMTEsIDI0OSwgMjI3LCAyNDUsIDk3LCAyNDUsIDk4LCAyNDksIDIyNiwgMjIyLCAyMzQsIDIzNiwgMCwgCisgICAgMTI4LCAxMTEsIDIyMiwgMjM0LCAxMjgsIDExMSwgMjQ5LCAxNTQsIDExMSwgMjQ1LCA2NywgMjQ1LCA5NiwgMTExLCAyMTgsIAorICAgIDE1NywgMjQ1LCA5NywgMjQ4LCA1NSwgMTI4LCAxMTEsIDEyOCwgMjE2LCA0MiwgMjUxLCA3OCwgMjQ4LCA3MiwgMjMxLCA4OCwgCisgICAgMjUxLCA3NywgMjI0LCAxMSwgMTI4LCAxMTEsIDIyOCwgNTIsIDEyOCwgMTExLCAyNDAsIDEwNCwgMTExLCAyMjgsIDUyLCAKKyAgICAyNDAsIDEwNCwgMTExLCAyMTgsIDEwOSwgMjQ1LCA5NCwgMTExLCAyMzMsIDE1LCAxNzcsIDEyOCwgMTExLCAyNDIsIDEzMCwgCisgICAgMTc3LCAxMjgsIDExMSwgMjMzLCAxNSwgMTE3LCAxMjgsIDExMSwgMjQyLCAxMzAsIDExNywgMTI4LCAxMTEsIDIzMywgMTUsIAorICAgIDI1MSwgODgsIDIyOCwgNTIsIDEyOCwgMTExLCAyNDIsIDEzMCwgMjUxLCA4OCwgMjI4LCA1MiwgMTI4LCAxMTEsIDIzMCwgCisgICAgOTcsIDIzMywgMTQsIDIzMCwgOTcsIDI0MiwgMTI5LCAyNTIsIDIzLCAyMjgsIDUyLCAyNDUsIDk0LCAxMTEsIDIyOCwgNTIsIAorICAgIDIzMywgMTQsIDIyOCwgNTIsIDI0MiwgMTI5LCAyMjksIDEwMCwgMjMzLCAxNSwgMjI4LCA1OSwgMTI4LCAxMTEsIDIyOSwgCisgICAgMTAwLCAyNDIsIDEzMCwgMjI4LCA1OSwgMTI4LCAxMTEsIDIzMywgMTUsIDE3NywgMjQ1LCA5NCwgMTExLCAyNDIsIDEzMCwgCisgICAgMTc3LCAyNDUsIDk0LCAxMTEsIDIyOSwgMTAwLCAyMzMsIDE1LCAyMjgsIDU5LCAyNDUsIDk0LCAxMTEsIDIyOSwgMTAwLCAKKyAgICAyNDIsIDEzMCwgMjI4LCA1OSwgMjQ1LCA5NCwgMTExLCAyMzMsIDE1LCAxNzcsIDI0MiwgMTI5LCAyNDIsIDEzMCwgMTc3LCAKKyAgICAyMzMsIDE0LCAyMjksIDEwMCwgMjMzLCAxNSwgMjI4LCA1OSwgMjQyLCAxMjksIDIyOSwgMTAwLCAyNDIsIDEzMCwgMjI4LCAKKyAgICA1OSwgMjMzLCAxNCwgMjI0LCAyMDIsIDIxOCwgNTUsIDIyNCwgMjAzLCAxNzcsIDEyOCwgMTExLCAyMTgsIDU2LCAxNzcsIAorICAgIDEyOCwgMTExLCAyMjQsIDIwMywgMTc3LCAyNDUsIDk0LCAxMTEsIDIxOCwgNTYsIDE3NywgMjQ1LCA5NCwgMTExLCAyNDcsIAorICAgIDEzOCwgMjI4LCA1MiwgMjI0LCAyMDUsIDI0NywgMTM4LCAyMjgsIDUyLCAyMTgsIDU3LCAyMTgsIDY0LCAyMjYsIDIzMSwgCisgICAgMjE4LCAyMiwgMjI2LCAyMzEsIDIyOCwgNTIsIDExNSwgMjE4LCA2NCwgMjI2LCAyMzEsIDIyOCwgNTIsIDExNSwgMjE4LCAKKyAgICAyMiwgMjI2LCAyMzEsIDIxOCwgNjQsIDY0LCAxNzcsIDEyOCwgMTExLCAyMTgsIDIyLCA2NCwgMTc3LCAxMjgsIDExMSwgCisgICAgMjI5LCAxMDAsIDExNSwgMjE4LCA2NCwgNjQsIDIyOCwgNTksIDEyOCwgMTExLCAyMjksIDEwMCwgMTE1LCAyMTgsIDIyLCAKKyAgICA2NCwgMjI4LCA1OSwgMTI4LCAxMTEsIDIxOCwgNjQsIDY0LCAyLCAyMjgsIDUyLCAxMjgsIDExMSwgMjE4LCAyMiwgNjQsIDIsIAorICAgIDIyOCwgNTIsIDEyOCwgMTExLCAyMzAsIDgxLCAyMzAsIDgyLCAyMzAsIDgzLCAyMzAsIDgyLCAyMTQsIDE3NSwgNDIsIDIzNiwgCisgICAgMTUsIDIyNiwgMjMxLCA0MiwgMjI2LCAxNTAsIDIyNiwgMjMxLCA0MiwgMjM2LCAxNSwgNjQsIDE3NywgMTI4LCAxMTEsIDQyLCAKKyAgICAyMjYsIDE1MCwgNjQsIDE3NywgMTI4LCAxMTEsIDQyLCAyNTAsIDI1MSwgNDIsIDI0OSwgMTAyLCAzNywgMjI1LCAyMiwgMzcsIAorICAgIDIzMCwgMTgxLCAzNywgMjE2LCA4NSwgMzcsIDI0NywgMTY5LCAyMTksIDk1LCAzNywgNTksIDIyNiwgMTY3LCAzNywgMjIyLCAKKyAgICAyMzQsIDIyNiwgMTY3LCAzNywgMjUzLCAyMTcsIDIyNiwgMTY3LCAzNywgMjQ1LCA5NywgMzcsIDI0OCwgMTU2LCA5MiwgCisgICAgMjI1LCAyMiwgOTIsIDIzMCwgMTgxLCA5MiwgMjE2LCA4NSwgOTIsIDU5LCAyMjYsIDE2NywgNDQsIDIxNywgODcsIDQzLCAKKyAgICAyMTcsIDg3LCAxMjQsIDIxNywgODcsIDEyMCwgMjE3LCA4NywgMjUzLCAyMjAsIDIzMCwgMTU2LCAyMTUsIDE5MSwgMjQ0LCAKKyAgICAyNSwgMjE1LCAyMTEsIDY3LCAyNTIsIDE0MSwgNDQsIDIxNSwgOTMsIDUyLCA2NywgMjUyLCAxNDEsIDUyLCA0NCwgMjE1LCAKKyAgICA5MywgMjQ3LCAxMzgsIDIyOCwgNTIsIDIyNCwgMTYzLCAyMjgsIDUyLCAyMTUsIDE5MSwgMjQ3LCAxMzgsIDIyOCwgNTIsIAorICAgIDI0NCwgMjYsIDIyOSwgMTAyLCA1MiwgNjcsIDI1MiwgMTQxLCA1MiwgNDQsIDIxNSwgOTMsIDIyNCwgMjAzLCAyMTQsIDE4NCwgCisgICAgMjIzLCA5MSwgMjE4LCA1NiwgMjE0LCAxODQsIDIyMywgOTEsIDIyOCwgNTcsIDIxOCwgNzcsIDIyNiwgMjMxLCAyNDksIAorICAgIDE4NiwgMjUzLCAyMzgsIDIyOCwgNTcsIDIxOCwgNzYsIDIyOCwgNTcsIDIxOCwgNzcsIDY0LCAxNzcsIDEyOCwgMTExLCAKKyAgICAyNDksIDE4NiwgMjUzLCAyMzgsIDIyOCwgNTcsIDIxOCwgNzcsIDE3NywgMTI4LCAxMTEsIDIyNiwgMTUwLCAyMjYsIDIzMSwgCisgICAgMjM2LCAxNSwgMjI2LCAyMzEsIDIzMCwgODcsIDI0MSwgMjAwLCAyNDksIDE5NiwgMjMxLCAxMzcsIDIzNSwgMjA4LCAyMTEsIAorICAgIDE0NSwgMjI5LCAyMDIsIDIyOCwgNTgsIDQ0LCAyNTQsIDExMCwgMiwgMjU0LCAyNSwgNDQsIDIxNSwgMjI1LCAyMzAsIDI0LCAKKyAgICAyMzIsIDE0NiwgMjU0LCAxMTgsIDIzMCwgMjQsIDIzMiwgMTQ2LCAyMjYsIDE1OCwgMjMwLCAyNCwgMjM1LCAxOTgsIDIzMCwgCisgICAgMjQsIDIxNCwgMTc1LCAyNDcsIDI0OSwgMjI2LCAxNjcsIDU5LCAyMjYsIDE2NywgMjE4LCAxNTcsIDIyNiwgMTY3LCAyNDcsIAorICAgIDE2OSwgMjE2LCA4NSwgMjUxLCAxNjQsIDQzLCAyMjgsIDU3LCAyNDQsIDE4MSwgMjIwLCAxNDksIDIyNCwgMTgwLCA0NCwgCisgICAgMjI4LCA1NywgMjQ0LCAxODEsIDIyMCwgMTQ5LCAyMjQsIDE4MCwgNDMsIDIyMCwgMTQ5LCAyMjQsIDE4MCwgNDQsIDIyMCwgCisgICAgMTQ5LCAyMjQsIDE4MCwgMjIzLCA0OSwgMjE2LCA4OSwgMjQ1LCA5NywgMjQ5LCA5OSwgMjMyLCAxNDYsIDIyNiwgMTU4LCAKKyAgICAyNDksIDk5LCAyMzIsIDE0NiwgMjU0LCAxMTgsIDUyLCAyMTgsIDYzLCA1MiwgMjE4LCAyMSwgNTIsIDIzNSwgMTk4LCA1MiwgCisgICAgMjE0LCAxNzUsIDIyNSwgNDcsIDEyOCwgMjIsIDIyNiwgOCwgMTExLCAyMzMsIDE1LCAyLCAyNDcsIDEyMCwgMjQyLCAxMzAsIAorICAgIDIsIDI0NywgMTIwLCAyMTMsIDE4NywgMjMwLCA5NywgMjMzLCAxNCwgMjEzLCAxODcsIDIzMCwgOTcsIDI0MiwgMTI5LCAKKyAgICAyMzMsIDE1LCAxMjgsIDIxNiwgNDIsIDE3NywgMjQyLCAxMjksIDI0MiwgMTMwLCAxMjgsIDIxNiwgNDIsIDE3NywgMjMzLCAKKyAgICAxNCwgMTI4LCAyMTYsIDQyLCAxNzcsIDIzMywgMTQsIDEyOCwgMjE2LCA0MiwgMTc3LCAyNDIsIDEyOSwgMTI4LCAyMTYsIAorICAgIDQyLCAxNzcsIDIyNCwgMjAyLCAxMjgsIDIxNiwgNDIsIDE3NywgMjE4LCA1NSwgMjQ3LCAxMzgsIDIyOCwgNTIsIDIyNCwgCisgICAgMjA2LCAxNzcsIDI0NSwgOTksIDI0NywgMTM4LCAyMjgsIDUyLCAyMTgsIDU4LCAxNzcsIDI0NSwgOTksIDIyOCwgNTIsIDQyLCAKKyAgICAyMzYsIDE1LCA2NCwgMTc3LCAxMjgsIDExMSwgMjI4LCA1MiwgNDIsIDIyNiwgMTUwLCA2NCwgMTc3LCAxMjgsIDExMSwgNDIsIAorICAgIDIzNiwgMTUsIDY0LCAxNzcsIDIyOCwgNTIsIDEyOCwgMTExLCA0MiwgMjI2LCAxNTAsIDY0LCAxNzcsIDIyOCwgNTIsIDEyOCwgCisgICAgMTExLCAyMzMsIDE1LCAyNTEsIDg4LCAyMjgsIDUyLCAyNDUsIDk0LCAxMTEsIDI0MiwgMTMwLCAyNTEsIDg4LCAyMjgsIDUyLCAKKyAgICAyNDUsIDk0LCAxMTEsIDIyNCwgMjAzLCAyNTEsIDg4LCAyMjgsIDUyLCAyNDUsIDk0LCAxMTEsIDIxOCwgNTYsIDI1MSwgODgsIAorICAgIDIyOCwgNTIsIDI0NSwgOTQsIDExMSwgMjI4LCA1MiwgMjI4LCA1NywgMjE4LCA3NywgMjI2LCAyMzEsIDI0NywgMTM4LCAKKyAgICAyMjgsIDUyLCAyNDksIDE4OCwgMjUzLCAyMzgsIDIyOCwgNTcsIDIxOCwgNzYsIDIyOCwgNTIsIDIyOCwgNTcsIDIxOCwgNzcsIAorICAgIDY0LCAxNzcsIDEyOCwgMTExLCAyNDcsIDEzOCwgMjI4LCA1MiwgMjQ5LCAxODgsIDI1MywgMjM4LCAyMjgsIDU3LCAyMTgsIAorICAgIDc3LCAxNzcsIDI0NSwgOTksIDY3LCAyNDUsIDE2MywgMjMwLCAyMjIsIDIwMywgMjQ1LCAxNjMsIDEyMCwgNDQsIDI0NywgCisgICAgMjU1LCAyNDUsIDE2MywgMTI0LCA0NCwgMjQ3LCAyNTUsIDI0NSwgMTYzLCAyNDUsIDE3MCwgNjQsIDIsIDE5OSwgMjAzLCAKKyAgICA5MSwgMjQ1LCAxNzAsIDY0LCAyLCA2NywgMjUyLCAxNDEsIDI1MywgMjA3LCAyNDUsIDE0MywgNjQsIDIwMywgOTEsIDQsIAorICAgIDI0NSwgMTcwLCA2NCwgMiwgNjcsIDI1MiwgMTQxLCAyNTMsIDIwNywgMjQ1LCAxNDMsIDY0LCAyMDMsIDkxLCAyNDUsIDE3MCwgCisgICAgNjQsIDIsIDU5LCA0OCwgMjQ1LCAxNzAsIDY0LCAyLCAyMjYsIDEyMywgNCwgMjQ1LCAxNzAsIDY0LCAyLCAyMjYsIDEyMywgCisgICAgMjQ1LCAxNzAsIDY0LCAyLCAyMTQsIDE4MywgMjQ1LCAxNzAsIDY0LCAyLCAxMTMsIDIwMywgMjE4LCA5MCwgMjQ5LCAxODYsIAorICAgIDIsIDE5OSwgMjAzLCA5MSwgMjQ5LCAxODYsIDIsIDY3LCAyNTIsIDE0MSwgMjUzLCAyMDcsIDI0NSwgMTQzLCA2NCwgMjAzLCAKKyAgICA5MSwgNCwgMjQ5LCAxODYsIDIsIDY3LCAyNTIsIDE0MSwgMjUzLCAyMDcsIDI0NSwgMTQzLCA2NCwgMjAzLCA5MSwgMjQ5LCAKKyAgICAxODYsIDIsIDIyNiwgMTIzLCA0LCAyNDksIDE4NiwgMiwgMjI2LCAxMjMsIDIxMCwgMTYwLCAxODcsIDI1MiwgMTczLCAyMzEsIAorICAgIDYxLCAyNDcsIDI1MCwgNTAsIDI0NSwgMTcyLCA3NCwgMjQwLCAyMzQsIDEyMCwgMjUzLCAyNDksIDEyNCwgMjUzLCAyNDksIAorICAgIDIyNCwgMTc1LCAyMjUsIDE2NSwgMjEyLCAzMiwgMjMyLCAyMTMsIDQzLCAyNTAsIDE4MSwgNDQsIDI1MCwgMTgxLCA0MywgCisgICAgMjQ0LCA1NywgNDQsIDI0NCwgNTcsIDI1MSwgMTc1LCA0NCwgMjQ5LCAxMzIsIDI1MSwgMTc1LCA0MywgMjQ5LCAxMzIsIAorICAgIDIxNiwgMTQsIDQ0LCAyNDksIDEzMiwgMjE2LCAxNCwgNDMsIDI0OSwgMTMyLCAyMjMsIDQ5LCAyMjgsIDUyLCA1MCwgNDIsIAorICAgIDIzMiwgMTA0LCAyNTQsIDI1LCAyMjEsIDE2NCwgMjIxLCAxNzEsIDIxNywgMSwgMjIzLCAxMjAsIDIyNCwgMjQxLCAyMzUsIAorICAgIDIzOCwgMjEzLCAxNjUsIDIxOCwgMjM0LCAyMjUsIDQxLCA2NCwgMjM1LCAyMDcsIDUwLCAyMTUsIDk0LCAyMjgsIDUyLCA1MCwgCisgICAgMjEyLCA0MiwgMjQwLCAyMzYsIDIxNiwgMTQsIDQzLCAyNDksIDE2MCwgMjE2LCAxNCwgNDQsIDI0OSwgMTYwLCAyNTEsIAorICAgIDE3NSwgNDMsIDI0OSwgMTYwLCAyNTEsIDE3NSwgNDQsIDI0OSwgMTYwLCAyMTYsIDE0LCAxNjMsIDIzNSwgMjExLCAyNTEsIAorICAgIDE3NSwgMTYzLCAyMzUsIDIxMSwgMjQzLCAyNDAsIDIxOSwgNzUsIDEyMCwgMjUzLCAyNTAsIDI1MiwgMjQsIDExMywgMjAzLCAKKyAgICAyNTIsIDEyOSwgMjI2LCAxNjAsIDIzNCwgMTM4LCAyNDUsIDkwLCAyMTYsIDQyLCAyMTYsIDE5NiwgMjIyLCAyNTEsIDIxMSwgCisgICAgMTc5LCAyMzYsIDAsIDExNSwgMjIzLCAxMTcsIDI1MSwgMTYzLCAyMzQsIDEzNywgMjMzLCA0MiwgMjU0LCAxMTAsIDEyNywgCisgICAgMjIyLCAyNDcsIDI1NCwgMTEwLCAxMjcsIDI0NSwgOTAsIDIxNiwgNDIsIDIxNiwgMTk2LCAyMzMsIDQ2LCAyNTIsIDM1LCAKKyAgICAyMjIsIDIzMywgMjQ5LCA3MCwgMjU0LCAxNTUsIDI1NCwgMSwgMjE3LCAxODEsIDIxNiwgNCwgMjIyLCAxMjMsIDI0NywgCisgICAgMjE1LCAyMjYsIDE1MSwgMjQ5LCAxOTgsIDIxNywgNTIsIDIxOSwgODYsIDI0OSwgMTUxLCAyNDksIDE1MCwgMjU0LCA2NiwgCisgICAgMjQzLCAyMjUsIDE2LCAyNDAsIDE1MSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMTgsIDIyOCwgMjI0LCAyNywgMjU0LCAKKyAgICA2NiwgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCAyNDUsIDk5LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDI0NywgCisgICAgMTc0LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDI0NywgMjQ4LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIAorICAgIDIyNCwgMjgsIDIzNSwgNTYsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgMjUwLCAzNSwgMjU0LCA2NiwgMjQzLCAKKyAgICAyMjUsIDE2LCAyNTAsIDM2LCAyMTgsIDEzNSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyNTAsIDM2LCAyMzUsIDU2LCAyNTQsIAorICAgIDY2LCAyNDMsIDIyNSwgMTYsIDIxOSwgOTYsIDEzMCwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyNTIsIDE4MSwgMTMwLCAKKyAgICAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDIxOSwgOTUsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgCisgICAgMjUyLCAxODAsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgMjMzLCAxNCwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAKKyAgICAyMjQsIDI4LCAyNDIsIDEyOSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAxNDAsIDIxNCwgMTksIDI1NCwgNjYsIDI0MywgCisgICAgMjI1LCAxNiwgOTcsIDIxNCwgMTksIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgMTQwLCA3NCwgMjU0LCA2NiwgCisgICAgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCA5NywgNzQsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjUwLCAzNiwgMjUyLCAxODAsIAorICAgIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMTI0LCAyMTcsIDg4LCAyMTQsIDE4MywgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAKKyAgICAyNDgsIDU1LCAyMTgsIDEzNSwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCAxMjQsIDI1MCwgMjM4LCAyNTQsIAorICAgIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIDI0OCwgNTQsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMTI0LCAyMTcsIDg4LCAKKyAgICAyMzUsIDU2LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIxNCwgMTUzLCAyMTQsIDE5LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIAorICAgIDIyNCwgMjgsIDIxNCwgMTUzLCA3NCwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAxMjAsIDIxNywgODgsIDIyNiwgMTIzLCAKKyAgICAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDI0OCwgNjYsIDIxOCwgMTM1LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIAorICAgIDEyMCwgMjUwLCAyMzgsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgMjQ4LCA2NSwgMjU0LCA2NiwgMjQzLCAKKyAgICAyMjUsIDE2LCAxMjAsIDIxNywgODgsIDIzNSwgNTYsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjQ2LCAxMDQsIDIxNCwgMTksIAorICAgIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgMjQ2LCAxMDQsIDc0LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyMywgCisgICAgMjUzLCAyMTQsIDE4MywgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyNDgsIDU1LCAyMTQsIDE4MywgMjU0LCA2NiwgMjQzLCAKKyAgICAyMjUsIDE2LCAyNDcsIDI0OSwgMjE0LCAxODMsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjM1LCA1NywgMjE0LCAxODMsIAorICAgIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjUwLCAzNiwgMjE0LCAxODMsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMTIwLCAKKyAgICAyMjAsIDUsIDIzNSwgNTYsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjIzLCAyNTMsIDIyNCwgMjcsIDI1NCwgNjYsIDI0MywgCisgICAgMjI1LCAxNiwgMjUwLCAzNiwgMjE4LCAxNTYsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjI0LCAyOCwgMjQ5LCAyMjYsIAorICAgIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMTIwLCAyMTcsIDg4LCAyNDgsIDEsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjQ4LCAKKyAgICA2NiwgMjQ4LCAxLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIxOCwgMTU3LCAyNDgsIDEsIDI1NCwgNjYsIDI0MywgMjI1LCAKKyAgICAxNiwgMjM1LCA1NywgMjQ4LCAxLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDI1MCwgMzYsIDI0OCwgMSwgMjU0LCA2NiwgCisgICAgMjQzLCAyMjUsIDE2LCAxMjQsIDIyMCwgNSwgMjE4LCAxMzUsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgNDMsIDIyMCwgNSwgCisgICAgMjE4LCAxMzUsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjE2LCA4OSwgMjQ4LCAxLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIAorICAgIDI0MiwgMTMwLCAyNDgsIDEsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjQ5LCAyMjAsIDEzMCwgMjU0LCA2NiwgMjQzLCAKKyAgICAyMjUsIDE2LCAyNDgsIDY2LCAxODIsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMjEwLCAzNCwgMjU0LCA2NiwgMjQzLCAyMjUsIAorICAgIDE2LCAyMTgsIDEzNiwgMTgyLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyMCwgMTUxLCAyMTQsIDE4MywgMjU0LCA2NiwgCisgICAgMjQzLCAyMjUsIDE2LCAyMjQsIDI4LCAyMjgsIDUyLCAyNDUsIDk5LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjgsIAorICAgIDIyNCwgMTIsIDI1NCwgNjYsIDI0MywgMjI1LCAxNiwgMTI0LCAyNTAsIDIzOSwgMTgyLCAyNTQsIDY2LCAyNDMsIDIyNSwgCisgICAgMTYsIDEyMCwgMjUwLCAyMzksIDE4MiwgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyMzUsIDE4NSwgMjU0LCA2NiwgMjQzLCAKKyAgICAyMjUsIDE2LCAyMjMsIDM3LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNiwgMjAxLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIAorICAgIDI1NCwgMTQ0LCAyMTQsIDE4MywgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyNDUsIDEwMSwgMjE0LCAxODMsIDI1NCwgNjYsIAorICAgIDI0MywgMjI1LCAxNiwgMjM1LCAxODYsIDIxNCwgMTgzLCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNiwgMjAyLCAyMTQsIAorICAgIDE4MywgMjU0LCA2NiwgMjQzLCAyMjUsIDE2LCAyNTQsIDE0MywgMjI4LCA1MiwgMjUwLCAxMzAsIDc4LCA0NCwgMjU0LCAKKyAgICAxMTAsIDIsIDI0NiwgMTA0LCAyMTAsIDM1LCA3NCwgMjE5LCAyMzUsIDIwNCwgMjUxLCAxNjMsIDI1MiwgNDUsIDg3LCA2NywgCisgICAgMjMyLCAyMTQsIDIsIDIzMCwgMjI0LCAyNDcsIDEyMCwgMjM1LCAyMTYsIDg3LCAyNDksIDE4MywgMjE0LCAxODEsIDg3LCAKKyAgICAyNDcsIDE4OSwgMjE0LCAxODEsIDg3LCAyNDUsIDE1NCwgODcsIDI0OSwgMjEwLCA4NywgNzEsIDQyLCAyLCAyNTAsIDE3NSwgCisgICAgNjcsIDIzMiwgMjEzLCAyNDUsIDEzMCwgODcsIDI1NCwgMTM5LCAyMzQsIDEzOSwgODcsIDI0MSwgMjEzLCA4NywgMzcsIAorICAgIDIwMywgMjUyLCAxNDEsIDIsIDIyOCwgNTAsIDM3LCAyMTUsIDIyNiwgMjQ2LCAxMDYsIDI1MSwgMTM1LCAyNTAsIDM2LCAyLCAKKyAgICAyMjgsIDU0LCA3NCwgMjE0LCAxNzksIDg3LCAyMzAsIDEzNywgODcsIDI0MCwgMTY0LCA4NywgMjI2LCAxNzQsIDI0MiwgNTksIAorICAgIDg3LCAyMjYsIDE3NCwgMjMzLCAxNDcsIDg3LCAyMjUsIDI0NCwgODcsIDIyNSwgMjQzLCA4NywgMjQ3LCAxOTcsIDI0OSwgCisgICAgOTcsIDE2LCAyNDQsIDIwLCAxMDUsIDIxOSwgNTAsIDg3LCAyNTQsIDY2LCAyNDMsIDIyNSwgMTYsIDIyNCwgMjcsIDI0OCwgCisgICAgODMsIDIyMCwgMTM4LCAyMzQsIDEzOSwgODcsIDIyNCwgMTkyLCAyMjYsIDc1LCAyMjksIDgyLCAyMjYsIDc1LCAyMjQsIAorICAgIDE4OCwgMjIxLCAxODksIDg3LCAyNTAsIDE3LCAyMjEsIDE4OSwgODcsIDQzLCAyMjYsIDQsIDIxNCwgMTYwLCAxMDMsIDQzLCAKKyAgICAyMjYsIDQsIDI0NSwgMjEsIDQzLCAyMjYsIDQsIDIzMiwgMTA4LCAxMDMsIDQ0LCAyMjYsIDQsIDIxNCwgMTYwLCAxMDMsIAorICAgIDQ0LCAyMjYsIDQsIDI0NSwgMjEsIDQ0LCAyMjYsIDQsIDIzMiwgMTA4LCAxMDMsIDQzLCA0MiwgMjUxLCAxNTgsIDIxNCwgCisgICAgMTYwLCAyNDksIDE2MCwgNDMsIDQyLCAyNTEsIDE1OCwgMjQ1LCAyMSwgNDMsIDQyLCAyNTEsIDE1OCwgMjMyLCAxMDgsIAorICAgIDI0OSwgMTYwLCA0NCwgNDIsIDI1MSwgMTU4LCAyMTQsIDE2MCwgMjQ5LCAxNjAsIDQ0LCA0MiwgMjUxLCAxNTgsIDI0NSwgCisgICAgMjEsIDQ0LCA0MiwgMjUxLCAxNTgsIDIzMiwgMTA4LCAyNDksIDE2MCwgNDMsIDI0OSwgOTksIDI1MSwgMTU4LCAyMTQsIAorICAgIDE2MCwgMTAzLCA0MywgMjQ5LCA5OSwgMjUxLCAxNTgsIDIzMCwgMjI0LCAyMjUsIDEwMSwgNDMsIDI0OSwgOTksIDI1MSwgCisgICAgMTU4LCAyMzIsIDEwOCwgMTAzLCAyNDksIDk5LCAyNTEsIDE1OCwgMjQ1LCAyMSwgNDQsIDI0OSwgOTksIDI1MSwgMTU4LCAKKyAgICAyMTQsIDE2MCwgMTAzLCA0NCwgMjQ5LCA5OSwgMjUxLCAxNTgsIDIzMCwgMjI0LCAyMjUsIDEwMSwgNDQsIDI0OSwgOTksIAorICAgIDI1MSwgMTU4LCAyMzIsIDEwOCwgMTAzLCAyMzUsIDIxMiwgMjQ1LCAyMSwgMjAzLCAyMzIsIDIxNCwgMjQ1LCAyMSwgMjE0LCAKKyAgICAxNjAsIDQzLCAxNzcsIDIzMiwgMTA4LCA0NCwgMjQ5LCA5OSwgMjUxLCAxNTgsIDIyMSwgMTcyLCAyMTQsIDE2MCwgNDQsIAorICAgIDE3NywgMjMyLCAxMDgsIDQzLCAyNDksIDk5LCAyNTEsIDE1OCwgMjIxLCAxNzIsIDIxOCwgNDEsIDIxNiwgMTMsIDIxOCwgCisgICAgNDEsIDI1MSwgMTc0LCAyMTYsIDE0LCA0MiwgMTI3LCAyNTEsIDE3NSwgNDIsIDEyNywgMjUxLCAxNzUsIDQyLCAyNTEsIAorICAgIDE1OCwgMTE3LCAyMTYsIDE0LCA0MiwgMTI3LCAzNCwgMTYsIDI1MSwgMTc0LCA0MywgNjcsIDkzLCAyMzIsIDIxMywgNDQsIAorICAgIDY3LCA5MywgMjMyLCAyMTMsIDIwMywgMjIxLCAyMDUsIDIzMiwgMjEyLCAyMDMsIDIyMSwgMjA1LCAyMzIsIDIxMSwgMjAzLCAKKyAgICAyMjEsIDIwNSwgMjMyLCAyMTAsIDIwMywgMjIxLCAyMDUsIDIzMiwgMjA5LCAyNDgsIDQ2LCAxNiwgMTkyLCA2NywgMjIsIAorICAgIDIxNiwgMTQsIDIyMiwgMjUxLCAyNDgsIDQ2LCAxNiwgMTkyLCA2NywgMjIsIDI1MSwgMTc1LCAyMjIsIDI1MSwgMjQ4LCA0NiwgCisgICAgMTYsIDE5MiwgNjcsIDIsIDI1MCwgMzUsIDI0OCwgNDYsIDE2LCAxOTIsIDEyNCwgMjIsIDIwMywgMiwgMjUwLCAzNSwgMjQ4LCAKKyAgICA0NiwgMTYsIDE5MiwgMTIwLCAyMiwgMjAzLCAyLCAyNTAsIDM1LCAyNDgsIDQ2LCAxNiwgMTkyLCA2NywgMiwgMjE1LCAyMjUsIAorICAgIDI0OCwgNDYsIDE2LCAxOTIsIDEyNCwgMjIsIDIwMywgMiwgMjE1LCAyMjUsIDI0OCwgNDYsIDE2LCAxOTIsIDEyMCwgMjIsIAorICAgIDIwMywgMiwgMjE1LCAyMjUsIDI0OCwgNDYsIDE2LCAxOTIsIDY3LCAyMiwgMjEyLCAzNSwgMjQ4LCA0NiwgMTYsIDE5MiwgCisgICAgMTI0LCAyMiwgMjAzLCAyLCAyMTIsIDM1LCAyNDgsIDQ2LCAxNiwgMTkyLCAxMjAsIDIyLCAyMDMsIDIsIDIxMiwgMzUsIAorICAgIDI0OCwgNDYsIDE2LCAxOTIsIDEyNCwgMjIsIDI0MSwgNDQsIDI0OCwgNDYsIDE2LCAxOTIsIDEyMCwgMjIsIDI0MSwgNDQsIAorICAgIDI0OCwgNDYsIDE2LCAxOTIsIDY3LCAyMiwgMjE2LCAxNCwgMjMzLCA0NiwgMjQ4LCA0NiwgMTYsIDE5MiwgNjcsIDIyLCAKKyAgICAyNTEsIDE3NSwgMjMzLCA0NiwgNDIsIDI0NCwgMzIsIDIyMywgNTQsIDg3LCAyNDUsIDE4MiwgODcsIDY3LCAyMzIsIDIxNCwgCisgICAgMjQ1LCAyMSwgMjMxLCAzMywgMjUxLCAxNDYsIDIzMSwgMzMsIDE5OSwgMTE3LCAyMTksIDI1MCwgMjMxLCAzMywgMjE5LCAKKyAgICAyNTEsIDExNywgMjMyLCAxMzcsIDIzMSwgMzMsIDE5OSwgMTE3LCAxMTMsIDIxOSwgMjM3LCAyMzEsIDMzLCAxMTMsIDIxOSwgCisgICAgMjM4LCAxMTcsIDIzMiwgMTM3LCAyMzEsIDMzLCAxMTMsIDIxOSwgMjM4LCAyMzUsIDY0LCAyMzEsIDMzLCAyMTUsIDIwOCwgCisgICAgMjMxLCAzMywgMjE2LCAyMjMsIDIzMSwgMzMsIDIyNSwgMTg4LCAyNDUsIDIyNCwgMjQyLCAxMjIsIDI0MywgMjE5LCAyMTYsIAorICAgIDE0LCAyMjYsIDMsIDI1MSwgMTc1LCAyMjYsIDMsIDIxNiwgMTQsIDI0OSwgOTksIDEyNywgMjUxLCAxNzUsIDI0OSwgOTksIAorICAgIDEyNywgMjE2LCAxNCwgMjE2LCA2LCAyMjAsIDUzLCAxMjcsIDI1MSwgMTc1LCAyMTYsIDYsIDIyMCwgNTMsIDEyNywgNzEsIAorICAgIDIxNSwgMjM5LCAyNTIsIDM1LCAyMjIsIDIzNCwgMiwgMjUwLCAzNSwgMjE4LCAxMjAsIDI0NCwgNjQsIDI1NSwgMTcsIDI0OSwgCisgICAgOTYsIDI0NSwgMTcxLCAyMzUsIDE5OCwgMjQ4LCA4MywgMjQ1LCAyNCwgODcsIDg1LCAyMjIsIDI0NywgNTIsIDIxNSwgMjI1LCAKKyAgICA4NSwgMjMzLCA0MiwgNTIsIDIxNSwgMjI1LCA4NSwgMjE0LCAxNjIsIDUyLCAyMTUsIDIyNSwgODUsIDI0NiwgMTA1LCA1MiwgCisgICAgMjE1LCAyMjUsIDg1LCAyMjIsIDI0NywgNTIsIDIxNSwgMjI2LCAyLCA2NywgMTMwLCA4NSwgMjMzLCA0MiwgNTIsIDIxNSwgCisgICAgMjI2LCAyLCA2NywgMTMwLCA4NSwgMjIyLCAyNDcsIDIxNSwgMjI2LCAyLCA1MiwgNjcsIDEzMCwgMjU0LCAxNzMsIDI1MCwgCisgICAgMywgMjE4LCAxMjYsIDIxNiwgODYsIDI1MCwgMywgMjQwLCAyMzcsIDIsIDI0NCwgNTAsIDIyMSwgMjQxLCAxNiwgMzEsIAorICAgIDIyNywgMjAyLCAxNiwgMzEsIDIxOCwgMTUyLCA2NCwgMjQxLCAyMzMsIDE2LCAzMSwgMjE4LCAxNTIsIDY0LCAyMTYsIDIxMiwgCisgICAgMTYsIDMxLCAyNDUsIDE0MywgNjQsIDIxNiwgMjEyLCAxNiwgMzEsIDI0NSwgMTQzLCA2NCwgMjE1LCAyNDMsIDE2LCAzMSwgCisgICAgMjQ1LCAxMzIsIDE2LCAzMSwgMjU1LCA3LCAxNiwgMzEsIDI1MiwgNDQsIDE2LCAzMSwgMjUyLCAxNzksIDE2LCAzMSwgMjAzLCAKKyAgICAyMTcsIDg5LCAxNiwgMzEsIDIzMiwgMjE0LCAyNDQsIDE0NSwgMTYsIDMxLCA2NywgMjE3LCA4OSwgMTYsIDMxLCAyNDQsIAorICAgIDIwLCAyNDQsIDE0NSwgMTYsIDMxLCAyNTAsIDIzMCwgMjIzLCA1MywgMTYsIDMxLCAyMjAsIDI4LCAyMjYsIDEzMCwgMTYsIAorICAgIDMxLCAyMjAsIDI4LCAyMzUsIDI1NSwgMTYsIDMxLCAyNDgsIDE1MSwgMjMyLCAyMDQsIDI0NSwgNzcsIDE2LCAzMSwgMjQ4LCAKKyAgICAzMSwgMjQ5LCAxNzgsIDExMCwgMTYsIDMxLCAyNDgsIDMxLCAyNDksIDE3OCwgMTA1LCAxNiwgMzEsIDI0OCwgMzEsIDI0OSwgCisgICAgMTc4LCAxNTgsIDE2LCAzMSwgMjQ4LCAzMSwgMjQ5LCAxNzgsIDE2MSwgMTYsIDMxLCAxNTIsIDI1NSwgNywgMTYsIDMxLCAKKyAgICAyMTcsIDE3NywgMjM2LCA2MiwgMTYsIDMxLCAyNDUsIDE0MywgNjQsIDIxNSwgMjQ0LCAyNTEsIDIxMywgMTYsIDMxLCAyNTEsIAorICAgIDUsIDE2LCAzMSwgMjQ1LCAxNDMsIDY0LCAyMzEsIDgxLCAxNiwgMzEsIDIxOCwgNjEsIDE2LCAzMSwgMjQ1LCA3NywgMTYsIAorICAgIDMxLCAyNDQsIDEwNywgMjIwLCAxMzcsIDE2LCAzMSwgMjQyLCAxMjEsIDIyMCwgMTM3LCAxNiwgMzEsIDIyMywgMTIxLCAKKyAgICAyMjAsIDEzNywgMTYsIDMxLCAyMTQsIDE3NCwgMjIwLCAxMzcsIDE2LCAzMSwgMjE5LCAxOCwgMTYsIDMxLCAyNDgsIDYzLCAKKyAgICAyNTEsIDIxNiwgODcsIDIwNCwgMjUxLCAxNjMsIDE2LCAzMSwgMjI5LCA4NSwgMTYsIDMxLCAyNDgsIDY0LCAyNDQsIDIwLCAKKyAgICAxMDUsIDE2LCAzMSwgMjE4LCA2MiwgMjQ0LCAyMCwgMTA1LCAyMjYsIDI0MSwgMTAzLCAyMjYsIDI0MSwgMjUwLCAxNTIsIAorICAgIDIyNiwgMjQxLCAyNDQsIDIzLCAyMjYsIDI0MSwgMjM1LCAxOTMsIDI0NCwgMjMsIDIyNiwgMjQxLCAyNTIsIDQyLCAyNTEsIAorICAgIDEyNCwgMjI2LCAyNDEsIDI1MSwgMTcwLCAyMTYsIDExMSwgMjI2LCAyNDEsIDI1MSwgMTU1LCAyNTIsIDE0NiwgMjQwLCAKKyAgICAxMDMsIDIyNiwgMjQxLCAyNTQsIDEyNywgNjQsIDI1MCwgMTI5LCAyMjYsIDI0MSwgMjQ4LCAxNTYsIDIyNiwgMjQxLCAyNDksIAorICAgIDg3LCAyNTUsIDExLCAyMjcsIDIwMCwgMjI2LCAyNDEsIDUyLCAyNTIsIDE4MCwgMzcsIDIxLCAxMTAsIDM3LCAyMSwgMTA1LCAKKyAgICAzNywgMjEsIDE1OCwgMzcsIDIxLCAxNjEsIDM3LCAyMSwgMTg5LCAzNywgMjEsIDE5NCwgMzcsIDIxLCAxOTgsIDM3LCAyMSwgCisgICAgMTk1LCAzNywgMjEsIDIwMCwgMzcsIDU0LCAyMTYsIDI0NywgMzcsIDU0LCAyNDUsIDE2NywgMzcsIDU0LCAyMTUsIDc2LCAKKyAgICAzNywgNTQsIDIxNiwgMTY0LCAzNywgNTQsIDI0NCwgNSwgMzcsIDU0LCAyNDQsIDExOCwgMzcsIDU0LCAyMTksIDExOSwgMzcsIAorICAgIDU0LCAyMjAsIDExOSwgMzcsIDU0LCAyNDUsIDE5MCwgMzcsIDU0LCAyMjgsIDE5NywgMzcsIDU0LCAyMTUsIDczLCA4OCwgCisgICAgMjEsIDExMCwgODgsIDIxLCAxMDUsIDg4LCAyMSwgMTU4LCA4OCwgMjEsIDE2MSwgODgsIDIxLCAxODksIDg4LCAyMSwgMTk0LCAKKyAgICA4OCwgMjEsIDE5OCwgODgsIDIxLCAxOTUsIDg4LCAyMSwgMjAwLCA4OCwgNTQsIDIxNiwgMjQ3LCA4OCwgNTQsIDI0NSwgCisgICAgMTY3LCA4OCwgNTQsIDIxNSwgNzYsIDg4LCA1NCwgMjE2LCAxNjQsIDg4LCA1NCwgMjQ0LCA1LCA4OCwgNTQsIDI0NCwgMTE4LCAKKyAgICA4OCwgNTQsIDIxOSwgMTE5LCA4OCwgNTQsIDIyMCwgMTE5LCA4OCwgNTQsIDI0NSwgMTkwLCA4OCwgNTQsIDIyOCwgMTk3LCAKKyAgICA4OCwgNTQsIDIxNSwgNzMsIDIxLCAxMjMsIDI0MywgMjI5LCAyMTgsIDEyOSwgMjEsIDExMywgMjQzLCAyMjksIDIxOCwgCisgICAgMTI5LCAyMSwgMTM0LCAyNDMsIDIyOSwgMjE4LCAxMjksIDIxLCAyNDQsIDExLCAyNDMsIDIyOSwgMjE4LCAxMjksIDIxLCAKKyAgICAyNDQsIDgxLCAyNDMsIDIyOSwgMjE4LCAxMjksIDIxLCAyMTksIDEyNSwgMjQzLCAyMjksIDIxOCwgMTI5LCAyMSwgMjIwLCAKKyAgICAxMjIsIDI0MywgMjI5LCAyMTgsIDEyOSwgMjEsIDI0NSwgMTkzLCAyNDMsIDIyOSwgMjE4LCAxMjksIDIxLCAyMjgsIDIwMCwgCisgICAgMjQzLCAyMjksIDIxOCwgMTI5LCA1NCwgMjE2LCAyNDgsIDI0MywgMjI5LCAyMTgsIDEyOSwgNTQsIDI0NSwgMTY4LCAyNDMsIAorICAgIDIyOSwgMjE4LCAxMjksIDU0LCAyMTUsIDc3LCAyNDMsIDIyOSwgMjE4LCAxMjksIDU0LCAyMTYsIDE2NSwgMjQzLCAyMjksIAorICAgIDIxOCwgMTI5LCA1NCwgMjQ0LCA2LCAyNDMsIDIyOSwgMjE4LCAxMjksIDU0LCAyNDQsIDExOSwgMjQzLCAyMjksIDIxOCwgCisgICAgMTI5LCA1NCwgMjE5LCAxMjAsIDI0MywgMjI5LCAyMTgsIDEyOSwgNTQsIDIyMCwgMTIwLCAyNDMsIDIyOSwgMjE4LCAxMjksIAorICAgIDU0LCAyNDUsIDE5MSwgMjQzLCAyMjksIDIxOCwgMTI5LCA1NCwgMjI4LCAxOTgsIDI0MywgMjI5LCAyMTgsIDEyOSwgNTQsIAorICAgIDIxNSwgNzQsIDI0MywgMjI5LCAyMTgsIDEyOSwgODgsIDcsIDQsIDEsIDYxLCA4OCwgNywgNCwgMSwgMjUzLCAxNTgsIDg4LCAKKyAgICA3LCA0LCAxLCAyNTEsIDY2LCA4OCwgNywgNCwgMSwgMjQ5LCA2MCwgODgsIDcsIDQsIDEsIDc1LCA4OCwgNywgNCwgMSwgCisgICAgMjQ1LCA2LCA4OCwgNywgNCwgMSwgMjQzLCAyMDIsIDg4LCA3LCA0LCAxLCAyNDIsIDYwLCA4OCwgNywgNCwgMSwgNzMsIDg4LCAKKyAgICA3LCA0LCAxLCAyMzUsIDE0NCwgODgsIDcsIDQsIDEsIDIzNSwgMjMsIDg4LCA3LCA0LCAxLCAxNTYsIDg4LCA3LCA0LCAxLCAKKyAgICAxOTMsIDg4LCA3LCA0LCAxLCAyMzAsIDI1LCA4OCwgNywgNCwgMSwgNzYsIDg4LCA3LCA0LCAxLCAyMjYsIDEwNSwgODgsIDcsIAorICAgIDQsIDEsIDIyNCwgOTYsIDg4LCA3LCA0LCAxLCAxNTMsIDg4LCA3LCA0LCAxLCAyMjIsIDkxLCA4OCwgNywgNCwgMSwgMjE3LCAKKyAgICAxNTIsIDg4LCA3LCA0LCAxLCA3MCwgODgsIDcsIDQsIDEsIDIxNCwgMTA1LCA4OCwgNywgNCwgMSwgMjEyLCA5OCwgODgsIDcsIAorICAgIDQsIDEsIDIxMSwgMTc4LCA4OCwgNywgNCwgMSwgMjExLCAxMTcsIDg4LCA3LCA0LCAxLCAyMTAsIDE1OSwgMzcsIDcsIDYsIAorICAgIDEsIDYxLCAzNywgNywgNiwgMSwgMjUzLCAxNTgsIDM3LCA3LCA2LCAxLCAyNTEsIDY2LCAzNywgNywgNiwgMSwgMjQ5LCA2MCwgCisgICAgMzcsIDcsIDYsIDEsIDc1LCAzNywgNywgNiwgMSwgMjQ1LCA2LCAzNywgNywgNiwgMSwgMjQzLCAyMDIsIDM3LCA3LCA2LCAxLCAKKyAgICAyNDIsIDYwLCAzNywgNywgNiwgMSwgNzMsIDM3LCA3LCA2LCAxLCAyMzUsIDE0NCwgMzcsIDcsIDYsIDEsIDIzNSwgMjMsIAorICAgIDM3LCA3LCA2LCAxLCAxNTYsIDM3LCA3LCA2LCAxLCAxOTMsIDM3LCA3LCA2LCAxLCAyMzAsIDI1LCAzNywgNywgNiwgMSwgCisgICAgNzYsIDM3LCA3LCA2LCAxLCAyMjYsIDEwNSwgMzcsIDcsIDYsIDEsIDIyNCwgOTYsIDM3LCA3LCA2LCAxLCAxNTMsIDM3LCA3LCAKKyAgICA2LCAxLCAyMjIsIDkxLCAzNywgNywgNiwgMSwgMjE3LCAxNTIsIDM3LCA3LCA2LCAxLCA3MCwgMzcsIDcsIDYsIDEsIDIxNCwgCisgICAgMTA1LCAzNywgNywgNiwgMSwgMjEyLCA5OCwgMzcsIDcsIDYsIDEsIDIxMSwgMTc4LCAzNywgNywgNiwgMSwgMjExLCAxMTcsIAorICAgIDM3LCA3LCA2LCAxLCAyMTAsIDE1OSwgMzcsIDcsIDQsIDEsIDYxLCAzNywgNywgNCwgMSwgMjUzLCAxNTgsIDM3LCA3LCA0LCAKKyAgICAxLCAyNTEsIDY2LCAzNywgNywgNCwgMSwgMjQ5LCA2MCwgMzcsIDcsIDQsIDEsIDc1LCAzNywgNywgNCwgMSwgMjQ1LCA2LCAKKyAgICAzNywgNywgNCwgMSwgMjQzLCAyMDIsIDM3LCA3LCA0LCAxLCAyNDIsIDYwLCAzNywgNywgNCwgMSwgNzMsIDM3LCA3LCA0LCAKKyAgICAxLCAyMzUsIDE0NCwgMzcsIDcsIDQsIDEsIDIzNSwgMjMsIDM3LCA3LCA0LCAxLCAxNTYsIDM3LCA3LCA0LCAxLCAxOTMsIAorICAgIDM3LCA3LCA0LCAxLCAyMzAsIDI1LCAzNywgNywgNCwgMSwgNzYsIDM3LCA3LCA0LCAxLCAyMjYsIDEwNSwgMzcsIDcsIDQsIAorICAgIDEsIDIyNCwgOTYsIDM3LCA3LCA0LCAxLCAxNTMsIDM3LCA3LCA0LCAxLCAyMjIsIDkxLCAzNywgNywgNCwgMSwgMjE3LCAKKyAgICAxNTIsIDM3LCA3LCA0LCAxLCA3MCwgMzcsIDcsIDQsIDEsIDIxNCwgMTA1LCAzNywgNywgNCwgMSwgMjEyLCA5OCwgMzcsIDcsIAorICAgIDQsIDEsIDIxMSwgMTc4LCAzNywgNywgNCwgMSwgMjExLCAxMTcsIDM3LCA3LCA0LCAxLCAyMTAsIDE1OSwgMzcsIDIxLCAKKyAgICAyMTAsIDg2LCAxNTIsIDM3LCA1NCwgMjQ1LCAxNjcsIDE1MiwgMzcsIDU0LCAyMTUsIDc2LCAxNTIsIDM3LCA1NCwgMjE2LCAKKyAgICAxNjQsIDE1MiwgMzcsIDU0LCAyNDQsIDUsIDE1MiwgMzcsIDU0LCAyNDQsIDExOCwgMTUyLCAzNywgNTQsIDIxOSwgMTE5LCAKKyAgICAxNTIsIDM3LCA1NCwgMjIwLCAxMTksIDE1MiwgMzcsIDU0LCAyNDUsIDE5MCwgMTUyLCAzNywgNTQsIDIyOCwgMTk3LCAxNTIsIAorICAgIDM3LCA1NCwgMjE1LCA3MywgNTIsIDM3LCAyMSwgMTEwLCA1MiwgMzcsIDIxLCAxMDUsIDUyLCAzNywgMjEsIDE1OCwgNTIsIAorICAgIDM3LCAyMSwgMTYxLCA1MiwgMzcsIDIxLCAxODksIDUyLCAzNywgMjEsIDE5NCwgNTIsIDM3LCAyMSwgMTk4LCA1MiwgMzcsIAorICAgIDIxLCAxOTUsIDUyLCAzNywgMjEsIDIwMCwgNTIsIDM3LCA1NCwgMjE2LCAyNDcsIDE1MiwgMzcsIDIxLCAyMTAsIDg2LCA5MywgCisgICAgOTksIDE5MiwgMjQxLCA0NCwgOTMsIDk5LCAxMTQsIDI0MSwgNDQsIDkzLCA5OSwgMTkyLCAyMTMsIDIzOSwgOTMsIDk5LCAKKyAgICAxMTQsIDIxMywgMjM5LCA5MywgOTksIDE5MiwgMjE1LCAyMTEsIDI0OCwgMTU3LCAyNDEsIDQ0LCA5MywgOTksIDExNCwgCisgICAgMjE1LCAyMTEsIDI0OCwgMTU3LCAyNDEsIDQ0LCA5MywgOTksIDE5MiwgMjE1LCAyMTEsIDI0OCwgMTU3LCAyMTMsIDIzOSwgCisgICAgOTMsIDk5LCAxMTQsIDIxNSwgMjExLCAyNDgsIDE1NywgMjEzLCAyMzksIDkzLCA5OSwgMTkyLCAyMjQsIDI0LCAyNDgsIAorICAgIDE1NywgMjQxLCA0NCwgOTMsIDk5LCAxMTQsIDIyNCwgMjQsIDI0OCwgMTU3LCAyNDEsIDQ0LCA5MywgOTksIDE5MiwgMjI0LCAKKyAgICAyNCwgMjQ4LCAxNTcsIDIxMywgMjM5LCA5MywgOTksIDExNCwgMjI0LCAyNCwgMjQ4LCAxNTcsIDIxMywgMjM5LCA5MywgOTksIAorICAgIDE5MiwgMTI0LCAyMiwgMjIyLCAyNTEsIDkzLCA5OSwgMTI0LCAxOTIsIDIyLCA0NCwgMjQxLCAyMjEsIDkzLCA5OSwgMTI0LCAKKyAgICAxMTQsIDIyLCA0NCwgMjMyLCAyMzAsIDkzLCA5OSwgMTE0LCAxMjQsIDIyLCAyMjIsIDI1MSwgOTMsIDk5LCAxOTIsIDEyNCwgCisgICAgMjIsIDIzMywgNDYsIDkzLCA5OSwgMTI0LCAxOTIsIDIyLCA0MywgMjQxLCAyMjEsIDkzLCA5OSwgMTI0LCAxMTQsIDIyLCAKKyAgICA0MywgMjMyLCAyMzAsIDkzLCA5OSwgMTE0LCAxMjQsIDIyLCAyMzMsIDQ2LCA5MywgOTksIDE5MiwgMTIwLCAyMiwgMjIyLCAKKyAgICAyNTEsIDkzLCA5OSwgMTIwLCAxOTIsIDIyLCA0NCwgMjQxLCAyMjEsIDkzLCA5OSwgMTIwLCAxMTQsIDIyLCA0NCwgMjMyLCAKKyAgICAyMzAsIDkzLCA5OSwgMTE0LCAxMjAsIDIyLCAyMjIsIDI1MSwgOTMsIDk5LCAxOTIsIDEyMCwgMjIsIDIzMywgNDYsIDkzLCAKKyAgICA5OSwgMTIwLCAxOTIsIDIyLCA0MywgMjQxLCAyMjEsIDkzLCA5OSwgMTIwLCAxMTQsIDIyLCA0MywgMjMyLCAyMzAsIDkzLCAKKyAgICA5OSwgMTE0LCAxMjAsIDIyLCAyMzMsIDQ2LCA5MywgOTksIDE5MiwgNjcsIDIyLCAyMjIsIDI1MSwgOTMsIDk5LCA2NywgCisgICAgMTkyLCAyMiwgNDQsIDI0MSwgMjIxLCA5MywgOTksIDEyMCwgMTE0LCAyMiwgNDQsIDEyNCwgMjMyLCAyMzAsIDkzLCA5OSwgCisgICAgMTI0LCAxMTQsIDIyLCA0NCwgMTIwLCAyMzIsIDIzMCwgOTMsIDk5LCA2NywgMTE0LCAyMiwgNDQsIDIzMiwgMjMwLCA5MywgCisgICAgOTksIDEyNCwgMTkyLCAyMiwgNDQsIDEyMCwgMjQxLCAyMjEsIDkzLCA5OSwgMTIwLCAxOTIsIDIyLCA0NCwgMTI0LCAyNDEsIAorICAgIDIyMSwgOTMsIDk5LCAxMTQsIDY3LCAyMiwgMjIyLCAyNTEsIDkzLCA5OSwgMTkyLCA2NywgMjIsIDIzMywgNDYsIDkzLCA5OSwgCisgICAgNjcsIDE5MiwgMjIsIDQzLCAyNDEsIDIyMSwgOTMsIDk5LCAxMjAsIDExNCwgMjIsIDQzLCAxMjQsIDIzMiwgMjMwLCA5MywgCisgICAgOTksIDEyNCwgMTE0LCAyMiwgNDMsIDEyMCwgMjMyLCAyMzAsIDkzLCA5OSwgNjcsIDExNCwgMjIsIDQzLCAyMzIsIDIzMCwgCisgICAgOTMsIDk5LCAxMjQsIDE5MiwgMjIsIDQzLCAxMjAsIDI0MSwgMjIxLCA5MywgOTksIDEyMCwgMTkyLCAyMiwgNDMsIDEyNCwgCisgICAgMjQxLCAyMjEsIDkzLCA5OSwgMTE0LCA2NywgMjIsIDIzMywgNDYsIDkzLCA5OSwgMTkyLCAxMjQsIDIyLCAyNDEsIDQ0LCAKKyAgICA5MywgOTksIDQzLCAxMTQsIDIyLCA0NCwgMTI0LCAyMzIsIDIzMCwgOTMsIDk5LCA0NCwgMTE0LCAyMiwgNDMsIDEyNCwgCisgICAgMjMyLCAyMzAsIDkzLCA5OSwgMTI0LCAxOTIsIDIyLCAyMDMsIDI0MSwgMjIxLCA5MywgOTksIDEyNCwgMTE0LCAyMiwgMjAzLCAKKyAgICAyMzIsIDIzMCwgOTMsIDk5LCA0NCwgMTkyLCAyMiwgNDMsIDEyNCwgMjQxLCAyMjEsIDkzLCA5OSwgNDMsIDE5MiwgMjIsIAorICAgIDQ0LCAxMjQsIDI0MSwgMjIxLCA5MywgOTksIDExNCwgMTI0LCAyMiwgMjQxLCA0NCwgOTMsIDk5LCAxOTIsIDEyMCwgMjIsIAorICAgIDI0MSwgNDQsIDkzLCA5OSwgNDMsIDExNCwgMjIsIDQ0LCAxMjAsIDIzMiwgMjMwLCA5MywgOTksIDQ0LCAxMTQsIDIyLCA0MywgCisgICAgMTIwLCAyMzIsIDIzMCwgOTMsIDk5LCAxMjAsIDE5MiwgMjIsIDIwMywgMjQxLCAyMjEsIDkzLCA5OSwgMTIwLCAxMTQsIDIyLCAKKyAgICAyMDMsIDIzMiwgMjMwLCA5MywgOTksIDQ0LCAxOTIsIDIyLCA0MywgMTIwLCAyNDEsIDIyMSwgOTMsIDk5LCA0MywgMTkyLCAKKyAgICAyMiwgNDQsIDEyMCwgMjQxLCAyMjEsIDkzLCA5OSwgMTE0LCAxMjAsIDIyLCAyNDEsIDQ0LCA5MywgOTksIDE5MiwgNjcsIAorICAgIDIyLCAyNDEsIDQ0LCA5MywgOTksIDQzLCAxMTQsIDIyLCA0NCwgNjcsIDIzMiwgMjMwLCA5MywgOTksIDQ0LCAxMTQsIDIyLCAKKyAgICA0MywgNjcsIDIzMiwgMjMwLCA5MywgOTksIDY3LCAxOTIsIDIyLCAyMDMsIDI0MSwgMjIxLCA5MywgOTksIDEyMCwgMTE0LCAKKyAgICAyMiwgMTI0LCAyMDMsIDIzMiwgMjMwLCA5MywgOTksIDEyNCwgMTE0LCAyMiwgMTIwLCAyMDMsIDIzMiwgMjMwLCA5MywgOTksIAorICAgIDY3LCAxMTQsIDIyLCAyMDMsIDIzMiwgMjMwLCA5MywgOTksIDQzLCAxMjAsIDExNCwgMjIsIDQ0LCAxMjQsIDIzMiwgMjMwLCAKKyAgICA5MywgOTksIDQ0LCAxMjAsIDExNCwgMjIsIDQzLCAxMjQsIDIzMiwgMjMwLCA5MywgOTksIDQzLCAxMjQsIDExNCwgMjIsIAorICAgIDQ0LCAxMjAsIDIzMiwgMjMwLCA5MywgOTksIDQ0LCAxMjQsIDExNCwgMjIsIDQzLCAxMjAsIDIzMiwgMjMwLCA5MywgOTksIAorICAgIDEyNCwgMTkyLCAyMiwgMTIwLCAyMDMsIDI0MSwgMjIxLCA5MywgOTksIDEyMCwgMTkyLCAyMiwgMTI0LCAyMDMsIDI0MSwgCisgICAgMjIxLCA5MywgOTksIDQ0LCAxOTIsIDIyLCA0MywgNjcsIDI0MSwgMjIxLCA5MywgOTksIDQzLCAxOTIsIDIyLCA0NCwgNjcsIAorICAgIDI0MSwgMjIxLCA5MywgOTksIDExNCwgNjcsIDIyLCAyNDEsIDQ0LCA5MywgOTksIDE5MiwgNTIsIDI0OCwgMTU3LCAyNDEsIAorICAgIDQ0LCA5MywgOTksIDExNCwgNTIsIDI0OCwgMTU3LCAyNDEsIDQ0LCA5MywgOTksIDE5MiwgNTIsIDI0OCwgMTU3LCAyMTMsIAorICAgIDIzOSwgOTMsIDk5LCAxMTQsIDUyLCAyNDgsIDE1NywgMjEzLCAyMzksIDkzLCA5OSwgNTIsIDI0MSwgNDQsIDkzLCA5OSwgCisgICAgNTIsIDIxMywgMjM5LCA5MywgOTksIDEyNCwgMjE5LCAxNTUsIDIyLCA0NCwgMjQ2LCAxMTMsIDkzLCA5OSwgMTI0LCA1MiwgCisgICAgMjIsIDQ0LCAyMTksIDE1NCwgOTMsIDk5LCA1MiwgMTI0LCAyMiwgMjIyLCAyNTEsIDkzLCA5OSwgMTI0LCAyMTksIDE1NSwgCisgICAgMjIsIDQzLCAyNDYsIDExMywgOTMsIDk5LCAxMjQsIDUyLCAyMiwgNDMsIDIxOSwgMTU0LCA5MywgOTksIDUyLCAxMjQsIDIyLCAKKyAgICAyMzMsIDQ2LCA5MywgOTksIDEyMCwgMjE5LCAxNTUsIDIyLCA0NCwgMjQ2LCAxMTMsIDkzLCA5OSwgMTIwLCA1MiwgMjIsIAorICAgIDQ0LCAyMTksIDE1NCwgOTMsIDk5LCA1MiwgMTIwLCAyMiwgMjIyLCAyNTEsIDkzLCA5OSwgMTIwLCAyMTksIDE1NSwgMjIsIAorICAgIDQzLCAyNDYsIDExMywgOTMsIDk5LCAxMjAsIDUyLCAyMiwgNDMsIDIxOSwgMTU0LCA5MywgOTksIDUyLCAxMjAsIDIyLCAKKyAgICAyMzMsIDQ2LCA5MywgOTksIDY3LCAyMTksIDE1NSwgMjIsIDQ0LCAyNDYsIDExMywgOTMsIDk5LCA2NywgNTIsIDIyLCA0NCwgCisgICAgMjE5LCAxNTQsIDkzLCA5OSwgNTIsIDY3LCAyMiwgMjIyLCAyNTEsIDkzLCA5OSwgNjcsIDIxOSwgMTU1LCAyMiwgNDMsIAorICAgIDI0NiwgMTEzLCA5MywgOTksIDY3LCA1MiwgMjIsIDQzLCAyMTksIDE1NCwgOTMsIDk5LCA1MiwgNjcsIDIyLCAyMzMsIDQ2LCAKKyAgICA5MywgOTksIDEyNCwgMjE5LCAxNTUsIDIyLCAyMDMsIDI0NiwgMTEzLCA5MywgOTksIDEyNCwgNTIsIDIyLCAyMDMsIDIxOSwgCisgICAgMTU0LCA5MywgOTksIDUyLCAxMjQsIDIyLCAyNDEsIDQ0LCA5MywgOTksIDEyMCwgMjE5LCAxNTUsIDIyLCAyMDMsIDI0NiwgCisgICAgMTEzLCA5MywgOTksIDEyMCwgNTIsIDIyLCAyMDMsIDIxOSwgMTU0LCA5MywgOTksIDUyLCAxMjAsIDIyLCAyNDEsIDQ0LCAKKyAgICA5MywgOTksIDY3LCAyMTksIDE1NSwgMjIsIDIwMywgMjQ2LCAxMTMsIDkzLCA5OSwgNjcsIDUyLCAyMiwgMjAzLCAyMTksIAorICAgIDE1NCwgOTMsIDk5LCA1MiwgNjcsIDIyLCAyNDEsIDQ0LCA5MywgOTksIDE5MiwgMjU0LCAyNiwgMTI0LCAyMiwgMjIyLCAKKyAgICAyNTEsIDkzLCA5OSwgMTkyLCAyNTQsIDI2LCAxMjQsIDIyLCAyMzMsIDQ2LCA5MywgOTksIDE5MiwgMjU0LCAyNiwgMTIwLCAKKyAgICAyMiwgMjMzLCA0NiwgOTMsIDk5LCAxOTIsIDI1NCwgMjYsIDEyMCwgMjIsIDIyMiwgMjUxLCA5MywgOTksIDE5MiwgMjQ3LCAKKyAgICAyNTUsIDIxNCwgMTYwLCA0NCwgMjE2LCA0MiwgMjMyLCAxMDgsIDIzMywgNDYsIDkzLCA5OSwgMTkyLCAyNDcsIDI1NSwgCisgICAgMjE0LCAxNjAsIDQzLCAyMTYsIDQyLCAyMzIsIDEwOCwgMjIyLCAyNTEsIDkzLCA5OSwgMTkyLCAyNDcsIDI1NSwgMjQ5LCAKKyAgICAxMzAsIDkzLCA5OSwgMTkyLCAyMzMsIDQ2LCA5MywgOTksIDE5MiwgMjE0LCAxNjMsIDkzLCA5OSwgMTkyLCAyMjIsIDI1MSwgCisgICAgOTMsIDk5LCAxOTIsIDI0NiwgMTA2LCA5MywgOTksIDExNCwgMjMzLCA0NiwgOTMsIDk5LCAxMTQsIDIxNCwgMTYzLCA5MywgCisgICAgOTksIDExNCwgMjIyLCAyNTEsIDkzLCA5OSwgMTE0LCAyNDYsIDEwNiwgOTMsIDk5LCAxOTIsIDQzLCAyMiwgMTE0LCAyMjIsIAorICAgIDI1MSwgOTMsIDk5LCAxOTIsIDEyMCwgMjIsIDExNCwgMjQ2LCAxMDYsIDkzLCA5OSwgMTE0LCA0MywgMjIsIDE5MiwgMjIyLCAKKyAgICAyNTEsIDkzLCA5OSwgMTE0LCAxMjAsIDIyLCAxOTIsIDI0NiwgMTA2LCAyMTQsIDE2MCwgMTYzLCAyNTEsIDIxMywgMjMyLCAKKyAgICAxMDgsIDEyMywgMjQ1LCAxODksIDI1MSwgMjEzLCAyMzIsIDEwOCwgMTIzLCAyMjQsIDIyLCAyNTEsIDIxMywgMjMyLCAxMDgsIAorICAgIDEzNCwgMjQ1LCAxODcsIDI1MSwgMjEzLCAyMzIsIDEwOCwgMTYzLCAyNTEsIDIxMywgMjMyLCAxMDgsIDI0NCwgODEsIDI0NSwgCisgICAgMTg3LCAyNTEsIDIxMywgMjMyLCAxMDgsIDEzNCwgMjI0LCAyMCwgMjUxLCAyMTMsIDIzMiwgMTA4LCAyMjAsIDEyMiwgMjQ1LCAKKyAgICAxODcsIDI1MSwgMjEzLCAyNDMsIDIyOSwgMjUxLCAyMTMsIDQzLCAyMjAsIDEyMiwgMjQ1LCAxODcsIDI1MSwgMjEzLCA0MywgCisgICAgMTM0LCAyMjQsIDIwLCAyNTEsIDIxMywgNDMsIDI0NCwgODEsIDI0NSwgMTg3LCAyNTEsIDIxMywgNDMsIDE2MywgMjUxLCAKKyAgICAyMTMsIDQzLCAxMzQsIDI0NSwgMTg3LCAyNTEsIDIxMywgNDMsIDEyMywgMjI0LCAyMiwgMjUxLCAyMTMsIDQzLCAxMjMsIAorICAgIDI0NSwgMTg5LCAyNTEsIDIxMywgNDQsIDE2MywgMjUxLCAyMTMsIDE5MiwgMjIwLCA5MiwgMjMxLCA4MiwgMjIwLCA5MiwgCisgICAgMjQ4LCAxNjIsIDIyMCwgOTIsIDIxNCwgMTYwLCAxMjMsIDI0NSwgMTg5LCAyNTEsIDIxMywgNDQsIDEyMywgMjQ1LCAxODksIAorICAgIDI1MSwgMjEzLCAyMjQsIDI2LCAyMzIsIDEwOCwgMjMzLCA0NiwgMjI0LCAyNiwgMjMyLCAxMDgsIDIyMiwgMjUxLCAyMjQsIAorICAgIDI2LCAyMTQsIDE2MCwgMjMzLCA0NiwgMjI0LCAyNiwgMjE0LCAxNjAsIDQzLCAyMiwgMjMyLCAxMDgsIDQzLCAyMiwgMjMyLCAKKyAgICAxMDgsIDIyMiwgMjUxLCAyMjQsIDI2LCAyMTQsIDE2MCwgNDMsIDIyLCAyMzIsIDEwOCwgMjIyLCAyNTEsIDIyNCwgMjYsIAorICAgIDIxNCwgMTYwLCA0MywgMjIsIDIxNCwgMTYwLCA0NCwgMjIsIDIzMiwgMTA4LCAyMzMsIDQ2LCAyMjQsIDI2LCAyMTQsIDE2MCwgCisgICAgNDMsIDIyLCAyMTQsIDE2MCwgNDQsIDIyLCAyMzIsIDEwOCwgMjIyLCAyNTEsIDIyNCwgMjYsIDIxNCwgMTYwLCAyMjIsIAorICAgIDI1MSwgMjI0LCAyNiwgMjE0LCAxNjAsIDQ0LCAyMiwgMjMyLCAxMDgsIDIzMywgNDYsIDIyNCwgMjYsIDIxNCwgMTYwLCA0NCwgCisgICAgMjIsIDIzMiwgMTA4LCA0MywgMjIsIDIzMiwgMTA4LCAyMjIsIDI1MSwgODUsIDIxOCwgMjM0LCA3MSwgMjE4LCAyMzQsIDcxLCAKKyAgICA0MiwgMiwgMjIyLCAxODMsIDI0OSwgMTU5LCA3MSwgNDIsIDI0OSwgMTg3LCA4NSwgNCwgMjE4LCAyMzQsIDQyLCAyLCAyMDMsIAorICAgIDI0NCwgMTA1LCA0MiwgMiwgNjcsIDI0NCwgMTA1LCA0MiwgMiwgMjI2LCAxNDQsIDI0OSwgMTI2LCAyNDQsIDEwNSwgNDIsIAorICAgIDIsIDIxNCwgMTYwLCA0MywgMjE2LCA0MiwgMjMyLCAxMDgsIDQ0LCAyNDQsIDEwNSwgNDIsIDIsIDIxNCwgMTYwLCA0NCwgCisgICAgMjE2LCA0MiwgMjMyLCAxMDgsIDQzLCAyNDQsIDEwNSwgNDIsIDIsIDI0NywgMjU1LCAyNDksIDEyNiwgMjQ0LCAxMDUsIDg1LCAKKyAgICA0LCAyMTgsIDIzNCwgNzEsIDQsIDIxOCwgMjM0LCA4NSwgMjIzLCAxMTYsIDcxLCAyMjMsIDExNiwgODUsIDY3LCAyMjMsIAorICAgIDExNiwgNzEsIDY3LCAyMjMsIDExNiwgODUsIDIyNiwgNiwgNzEsIDIyNiwgNiwgODUsIDIxNCwgMTYyLCAyMTUsIDIyNSwgCisgICAgNzEsIDIxNCwgMTYyLCAyMTUsIDIyNSwgODUsIDIxNCwgMTYyLCA0LCAyMTUsIDIyNSwgNzEsIDIxNCwgMTYyLCA0LCAyMTUsIAorICAgIDIyNSwgODUsIDIyMiwgMjQ3LCAyMTUsIDIyNSwgNzEsIDIyMiwgMjQ3LCAyMTUsIDIyNSwgODUsIDIyMiwgMjQ3LCA0LCAKKyAgICAyMTUsIDIyNSwgNzEsIDIyMiwgMjQ3LCA0LCAyMTUsIDIyNSwgODUsIDIyMiwgMjQ3LCAyMjUsIDgsIDcxLCAyMjIsIDI0NywgCisgICAgMjI1LCA4LCA4NSwgMjQ2LCAxMDUsIDIxNSwgMjI1LCA3MSwgMjQ2LCAxMDUsIDIxNSwgMjI1LCA4NSwgMjQ2LCAxMDUsIDQsIAorICAgIDIxNSwgMjI1LCA3MSwgMjQ2LCAxMDUsIDQsIDIxNSwgMjI1LCA4NSwgMjMzLCA0MiwgMjE1LCAyMjUsIDcxLCAyMzMsIDQyLCAKKyAgICAyMTUsIDIyNSwgODUsIDIzMywgNDIsIDQsIDIxNSwgMjI1LCA3MSwgMjMzLCA0MiwgNCwgMjE1LCAyMjUsIDg1LCAyMzMsIAorICAgIDQyLCAyMjUsIDgsIDcxLCAyMzMsIDQyLCAyMjUsIDgsIDg1LCAyNDcsIDI0OCwgNzEsIDI0NywgMjQ4LCA3MSwgMjQ3LCAKKyAgICAyNDksIDI0OSwgMTg3LCA4NSwgNCwgMjQ3LCAyNDgsIDI0NCwgODksIDIzMiwgMTA0LCA3MSwgMjUwLCAzNSwgMjQ2LCAxMTgsIAorICAgIDI1MCwgMzUsIDI1MCwgMzYsIDIsIDY3LCAyNDQsIDEwNSwgMjUxLCAxMTEsIDg1LCAyNTAsIDM1LCAyNTAsIDM2LCAyLCA0MywgCisgICAgMTYzLCAyNTEsIDIyMSwgMjUwLCAzNiwgMiwgNDQsIDE2MywgMjUxLCAyMjEsIDI1MCwgMzYsIDIsIDIzMiwgMTA4LCAxNjMsIAorICAgIDI1MSwgMjIxLCAyNTAsIDM2LCAyLCAyMTQsIDE2MCwgMTYzLCAyNTEsIDIyMSwgMjUwLCAzNiwgMiwgMjE0LCAxNjAsIDQ0LCAKKyAgICAyMjQsIDI2LCAyNTEsIDIyMSwgMjUwLCAzNiwgMiwgMjU0LCAxNTUsIDI1MSwgODgsIDIxNCwgMTYwLCA0MywgMjI0LCAyNiwgCisgICAgMjUxLCAyMjEsIDQzLCAxNjMsIDg1LCAyNTAsIDM1LCA0NCwgMTYzLCA4NSwgMjUwLCAzNSwgMjM1LCAxOTQsIDI1MSwgMTEzLCAKKyAgICAyMzUsIDE5NCwgNzEsIDI1MCwgMzUsIDIxNCwgMTYwLCAxNjMsIDIzNSwgMTk0LCA3MSwgMjUwLCAzNSwgMjMyLCAxMDgsIAorICAgIDE2MywgMjM1LCAxOTQsIDcxLCAyNTAsIDM1LCAyMTQsIDE2MCwgNDMsIDIyNCwgMjYsIDI1MCwgMzMsIDI1NCwgMjUsIDIxNCwgCisgICAgMTYwLCA0NCwgMjI0LCAyNiwgMjUwLCAzMywgMjU0LCAyNSwgMjMyLCAxMDgsIDQ0LCAyMjQsIDI2LCAyNTAsIDMzLCAyNTQsIAorICAgIDI1LCAyMzIsIDEwOCwgNDMsIDIyNCwgMjYsIDI1MCwgMzMsIDI1NCwgMjUsIDIxNCwgMTYwLCAxNjMsIDI1MCwgMzUsIDIzMiwgCisgICAgMTA4LCAxNjMsIDI1MCwgMzUsIDg1LCAyMzIsIDEwOCwgNDQsIDIxNSwgMjI1LCA4NSwgMjMyLCAxMDgsIDQzLCAyMTUsIAorICAgIDIyNSwgODUsIDIxNCwgMTYwLCA0MywgMjE1LCAyMjUsIDg1LCAyMTQsIDE2MCwgNDQsIDIxNSwgMjI1LCA3MSwgMjUxLCAKKyAgICAxMTMsIDQyLCAyLCA0MywgMTYzLCAyNTEsIDIyMSwgNDIsIDIsIDQ0LCAxNjMsIDI1MSwgMjIxLCA0MiwgMiwgMjE0LCAxNjAsIAorICAgIDQzLCAyNDcsIDI1NSwgMTYzLCAyNTEsIDIyMSwgNDIsIDIsIDIzMiwgMTA4LCA0NCwgMjQ3LCAyNTUsIDE2MywgMjUxLCAKKyAgICAyMjEsIDcxLCA0MiwgMiwgNjcsIDI1MSwgMjMyLCAyMzIsIDIxMywgNzEsIDIxNCwgMTYyLCAyMTUsIDIyNiwgMiwgMjQ3LCAKKyAgICAxMjAsIDIxNCwgMTYyLCAyMTUsIDIyNiwgMiwgNDMsIDE2MywgMjUxLCAyMjEsIDIxNCwgMTYyLCAyMTUsIDIyNiwgMiwgNDQsIAorICAgIDE2MywgMjUxLCAyMjEsIDIzMywgODUsIDI1MCwgMzUsIDcxLCA0MiwgMiwgMjE0LCAxNjAsIDQzLCAyMjQsIDI1LCA3MSwgCisgICAgNDIsIDIsIDIzMiwgMTA4LCA0MywgMjI0LCAyNSwgNzEsIDQyLCAyLCAyMzIsIDEwOCwgNDQsIDIyNCwgMjUsIDcxLCA0MiwgCisgICAgMiwgMjE0LCAxNjAsIDQ0LCAyMjQsIDI1LCA3MSwgMjUwLCAzNiwgMiwgMjE0LCAxNjAsIDQzLCAyMjQsIDI1LCA3MSwgMjUwLCAKKyAgICAzNiwgMiwgMjMyLCAxMDgsIDQzLCAyMjQsIDI1LCA3MSwgMjUwLCAzNiwgMiwgMjMyLCAxMDgsIDQ0LCAyMjQsIDI1LCA3MSwgCisgICAgMjUwLCAzNiwgMiwgMjE0LCAxNjAsIDQ0LCAyMjQsIDI1LCAyMTQsIDE2MCwgNDMsIDIxNSwgMjI1LCAyMTQsIDE2MCwgNDQsIAorICAgIDIxNSwgMjI1LCAyMzIsIDEwOCwgNDMsIDIxNSwgMjI1LCA3MSwgMjMxLCA4MiwgMjE4LCAyMzQsIDg1LCAyMzEsIDgyLCAKKyAgICAyMTgsIDIzNCwgNzEsIDIzMSwgODIsIDQsIDIxOCwgMjM0LCA4NSwgMjMxLCA4MiwgNCwgMjE4LCAyMzQsIDIzMiwgMTA4LCAKKyAgICA0NCwgMjE1LCAyMjUsIDg1LCAyMTgsIDM4LCAyLCAyMjMsIDEzMiwgMjQ5LCAyNDcsIDIxNCwgMTk0LCAyMTksIDYwLCAyNDksIAorICAgIDIyMiwgODUsIDIxOCwgMTU2LCA3MSwgMjE4LCAxNTYsIDIzMiwgMjI4LCAyMTYsIDEzMiwgMjE4LCAzNywgMjUzLCAyMzQsIAorICAgIDIyOCwgNzEsIDI0OCwgMzgsIDIyOCwgNzEsIDI0OSwgMTk1LCAyMjYsIDE2MywgODUsIDIxNywgMCwgNzEsIDIxNywgMCwgCisgICAgMjUyLCAxNTYsIDI1MSwgMTYzLCAyNTIsIDE1NiwgOTMsIDIsIDI1MCwgMTI5LCAyNTIsIDE1NiwgOTMsIDIsIDIxMSwgMTc4LCAKKyAgICAyMjEsIDI1NCwgMjE0LCAxOTUsIDIsIDIyMywgMTYwLCAyNDYsIDg0LCAyNDAsIDI0MywgMjUyLCAyMiwgNzEsIDIyMCwgMiwgCisgICAgMjI1LCAxMDEsIDg1LCAyMjAsIDIsIDIyNSwgMTAxLCAyMjAsIDg3LCAyMjMsIDQ5LCAyMjIsIDE4NywgMjQ0LCA1NSwgMjQxLCAKKyAgICAyMjgsIDI1MSwgMTEzLCA4NSwgNDMsIDIyNSwgNywgMjM1LCAyNDIsIDg1LCA0NCwgMjI1LCA3LCAyMzUsIDI0MiwgNzEsIAorICAgIDQzLCAyMjUsIDcsIDIzNSwgMjQyLCA3MSwgMTIwLCAyMjUsIDcsIDIzNSwgMjQyLCA3MSwgNDQsIDIyNSwgNywgMjM1LCAKKyAgICAyNDIsIDcxLCAxMjQsIDIyNSwgNywgMjM1LCAyNDIsIDIxOSwgMTAxLCAyMiwgMjQ5LCAxMjksIDI1MCwgMjE5LCA1MCwgCisgICAgMjIzLCAxNzIsIDUwLCAyNTEsIDIzOSwgNTAsIDI1MSwgMjUsIDI1NCwgMTAyLCAyMjYsIDE0NSwgMjQ5LCAxMzAsIDI1MCwgCisgICAgMTExLCAyMjMsIDM3LCAyNDksIDEzMSwgNjQsIDIzMiwgMTE4LCAyNDksIDEzMSwgNjQsIDIzNSwgMTE2LCAyMTgsIDE1NywgCisgICAgMjIsIDI0OSwgMTM2LCAyNDQsIDE2OCwgODcsIDI1NCwgMjQ4LCAyMjAsIDg5LCAyNDIsIDIyLCAyMiwgMjE5LCAxODksIAorICAgIDIyNSwgMjIwLCA4NywgMjEwLCAyNTQsIDIxMSwgNjksIDIxNSwgMjE1LCAzMSwgMjQxLCAyMjMsIDIxNSwgMjE1LCAzMSwgCisgICAgMjMzLCAxMDcsIDIxNSwgMjE1LCAzMSwgMjQ0LCA5NiwgMjE1LCAyMTUsIDMxLCAyMTYsIDEzMywgMjE1LCAyMTUsIDMxLCAKKyAgICAyMTEsIDIzOSwgMjE1LCAyMTUsIDMxLCAyMTIsIDQwLCAyMTUsIDIxNSwgMzEsIDIzMCwgMTE1LCAyMTUsIDIxNSwgMzEsIAorICAgIDI0NSwgMjIzLCAyMTIsIDEsIDY0LCAyNDgsIDE4LCA3MSwgMjQzLCAyMzksIDI0NCwgMTkwLCA3MSwgMjE5LCA3NCwgMjQ0LCAKKyAgICAxOTAsIDg1LCAyMTksIDc0LCAyNDQsIDE5MCwgNzEsIDIxOCwgMzgsIDIsIDIyMywgMTMyLCAyNDQsIDkyLCAyMjQsIDIyLCAKKyAgICAyMzAsIDEyOCwgMjMzLCA4MCwgMjI0LCAyMiwgMjMwLCAxMjgsIDIzMSwgNTQsIDI0NCwgMTM4LCA1MCwgMjQ1LCAyMjMsIAorICAgIDIzMSwgMTkwLCA1MCwgMjM1LCAzOCwgMjIxLCAyMjAsIDIxNCwgMTQ1LCAyMjksIDkzLCAyMjUsIDIwLCAyNTQsIDEyLCAKKyAgICAyMTcsIDQwLCAyNDMsIDUyLCAyNTEsIDMsIDIzMywgMTksIDIxMywgMTUwLCAyMzIsIDIzOCwgMjIxLCAxOTEsIDIyMiwgMTksIAorICAgIDI1MCwgMjQ4LCAyNTQsIDQyLCAyMjUsIDUyLCA3MSwgMjUwLCAxMTcsIDIzNCwgNzgsIDcxLCAyNTAsIDExNywgMjI0LCAxNCwgCisgICAgNzEsIDI1MCwgMTE3LCAyMjIsIDE5NSwgNzEsIDI1MCwgMTE3LCAyNTEsIDIzMSwgNzEsIDI1MCwgMTE3LCAyMzQsIDMwLCAKKyAgICA3MSwgMjUwLCAxMTcsIDIyNSwgMjMxLCA4NSwgMjUwLCAxMTcsIDIzNCwgNzgsIDg1LCAyNTAsIDExNywgMjI0LCAxNCwgODUsIAorICAgIDI1MCwgMTE3LCAyMjIsIDE5NSwgODUsIDI1MCwgMTE3LCAyNTEsIDIzMSwgODUsIDI1MCwgMTE3LCAyMzQsIDMwLCA4NSwgCisgICAgMjUwLCAxMTcsIDIyNSwgMjMxLCA4NSwgMjE5LCAxNiwgMjE4LCA1MCwgNzEsIDI0MSwgMjI4LCAyMTgsIDUwLCA3MSwgMjQ3LCAKKyAgICAyNDksIDIxOCwgNTAsIDg1LCAyNDksIDI0NSwgMjE4LCA1MCwgNzEsIDIxOSwgMTYsIDIxOCwgNTAsIDg1LCAyNDEsIDIyOCwgCisgICAgMjE4LCA1MCwgODUsIDI0NywgMjQ5LCAyMTgsIDUwLCA3MSwgMjQ5LCAyNDUsIDIxOCwgNTAsIDI0MCwgMjQzLCAyMTgsIAorICAgIDIzOCwgMjI0LCAyMiwgMjI4LCA0NywgMjQ1LCAxODksIDIyOCwgNDcsIDI1MiwgNzMsIDI0NSwgMTg5LCAyMjgsIDQyLCAKKyAgICAyNTIsIDczLCAyMTksIDExOCwgMjI4LCA0MiwgMjMwLCA1NywgMjQ0LCA2NiwgNTAsIDIzMCwgNTcsIDIyOSwgMTg4LCA1MCwgCisgICAgMjMwLCA1NywgMjIwLCA3NiwgNTAsIDIxMiwgOSwgMTg4LCAyNDksIDEzMCwgMjQ1LCAyMjAsIDE4OCwgMjQ5LCAxMzAsIAorICAgIDIxNCwgMTcxLCAyMjMsIDExMiwgODcsIDIyMywgMTEyLCAxNiwgMzEsIDIxNSwgNDgsIDIyNSwgMzQsIDIyMywgMTEyLCAxNiwgCisgICAgMzEsIDIxNSwgNDcsIDIyNSwgMzQsIDIyMywgMTEyLCAxNiwgMzEsIDIxNSwgNDYsIDIyNSwgMzQsIDIyMywgMTEyLCAxNiwgCisgICAgMzEsIDIxNSwgNDUsIDIyNSwgMzQsIDIyMywgMTEyLCAxNiwgMzEsIDIxNSwgNDQsIDIyNSwgMzQsIDIyMywgMTEyLCAxNiwgCisgICAgMzEsIDIxNSwgNDMsIDIyNSwgMzQsIDIyMywgMTEyLCAxNiwgMzEsIDIxNSwgNDIsIDIyNSwgMzQsIDIyMywgMTEyLCAxNiwgCisgICAgMzEsIDI0MywgNTAsIDIzMSwgMTM4LCA4NSwgMjE0LCAxNzEsIDIyMywgMTEyLCA4NywgMjIzLCAxMTMsIDIyNiwgMjAsIDg3LCAKKyAgICAyMjUsIDI1MiwgMjI2LCAyMCwgODcsIDIyNSwgMTc0LCAyMjYsIDIwLCA1MCwgMjExLCAyNTUsIDg3LCAyNDcsIDI0MSwgCisgICAgMjQ0LCAxODksIDI0NywgMjQxLCAyNDQsIDE4OCwgMjQ3LCAyNDEsIDI0NCwgMTg3LCAyNDcsIDI0MSwgMjQ0LCAxODYsIAorICAgIDI0NywgMjQxLCAyNDQsIDE4NSwgMjQ3LCAyNDEsIDI0NCwgMTg0LCA3MSwgMjUwLCAzNiwgMiwgNTksIDIyMiwgMjUxLCA3MSwgCisgICAgMjUwLCAzNiwgMiwgMTEzLCAyNDcsIDExOCwgODUsIDI1MCwgMzYsIDIsIDcxLCA1OSwgMjIyLCAyNTEsIDg1LCAyNTAsIDM2LCAKKyAgICAyLCAxMTMsIDcxLCAyNDcsIDExOCwgMjMwLCAxNDIsIDMxLCAyMTEsIDY5LCAyMzAsIDE0MiwgMzEsIDIxMCwgMjUzLCAyNDcsIAorICAgIDIyNCwgMzEsIDI0MiwgMTMxLCAyMTEsIDY5LCAyNDcsIDIyNCwgMzEsIDIzMywgMTMsIDIxMCwgMjUzLCAyNDcsIDIyNCwgCisgICAgMzEsIDIzMywgMTMsIDIxMSwgNjksIDI0NywgMjI0LCAzMSwgMjQyLCAxMzEsIDIxMCwgMjUzLCA3MSwgMjQ0LCA3MywgODUsIAorICAgIDI0NCwgNzMsIDI0MiwgMjIsIDIyLCAyMjUsIDEwNCwgMjU0LCAxMjAsIDI0OSwgMTI4LCAyMTcsIDIzNSwgMjE4LCAxNjQsIAorICAgIDY0LCAyNTQsIDIyNiwgMjIxLCAyMDYsIDI1NCwgMTY5LCAyNDQsIDUxLCAyNDMsIDYwLCAyMTgsIDE2NCwgNjQsIDI0MSwgCisgICAgMjAyLCAyNTMsIDE5OSwgODcsIDI0NCwgNjIsIDIyNiwgMTI2LCA3MSwgMjE4LCAxNTYsIDEzNCwgMjMyLCAyMDgsIDI0OSwgCisgICAgMTc1LCAyMjIsIDI1MSwgMTM0LCAyMzIsIDIwOCwgMjQ5LCAxNzUsIDIzMywgNDYsIDIxMiwgNTAsIDUwLCAxMjUsIDIxMywgCisgICAgMTMwLCA1MCwgMjQ2LCAxMTAsIDI0NCwgMTM4LCA1MCwgMjQ2LCAxMTAsIDIzMSwgMTkwLCA1MCwgMjM1LCAyMDMsIDI0NCwgCisgICAgMTM4LCAyMiwgMjMxLCAxOTAsIDUwLCAyMzEsIDE5MCwgMjIsIDI0NCwgMTM4LCA1MCwgMjMxLCAxOTAsIDIsIDIxOCwgMTAzLCAKKyAgICA1MCwgMjMxLCAxOTAsIDIsIDIxOCwgMTAzLCAyMiwgMjMxLCAxOTAsIDIyLCAyNDQsIDEzOCwgNTAsIDY3LCAyMzEsIDE5MCwgCisgICAgMiwgMjE4LCAxMDMsIDUwLCAyMDMsIDIzMSwgMTkwLCAyLCAyMTgsIDEwMywgNTAsIDIzMSwgODIsIDcxLCAyNTAsIDM1LCAKKyAgICAyMzEsIDgyLCA4NSwgMjUwLCAzNSwgMjMxLCA4MiwgNCwgNzEsIDI1MCwgMzUsIDIzMSwgMTUzLCA4NywgMjQ3LCAxNjcsIAorICAgIDg3LCAyMTQsIDE2OSwgMjI1LCAyNTEsIDg3LCAyNDksIDIzMSwgMjQzLCAyMjQsIDIxNCwgMTQxLCAyMjksIDg4LCAyNTAsIAorICAgIDE2MSwgMjI2LCA2MSwgMjM1LCA0NCwgMjEzLCAxODUsIDI1MCwgOTMsIDg1LCAyMzAsIDEyOSwgMjMyLCAyMjUsIDIyMCwgCisgICAgMTEyLCAyMjAsIDE0NywgMjI0LCA1LCAyMjAsIDEzMCwgMjE5LCA1NSwgMjUyLCAxNTksIDI1MiwgMTI2LCA5MiwgMjM0LCAKKyAgICAxMzgsIDcxLCAyNDYsIDkzLCAyMzEsIDE4NSwgNzEsIDI0NiwgOTMsIDIzNCwgNzgsIDg1LCAyNDYsIDkzLCAyMzEsIDE4NSwgCisgICAgODUsIDI0NiwgOTMsIDIzNCwgNzgsIDIxOSwgNjEsIDIxMSwgMjMwLCAyMTksIDY0LCAyMTgsIDM4LCAyNTIsIDUxLCAyNDksIAorICAgIDI0NywgMjIzLCAxNTksIDg1LCAyMTksIDYwLCAyMTYsIDEzNCwgMjQ5LCAyNDgsIDIyLCAyMjMsIDE1OSwgMjE1LCA5NCwgCisgICAgNzEsIDIyMCwgMiwgMjI1LCAxMDEsIDIxNSwgOTQsIDg1LCAyMjAsIDIsIDIyNSwgMTAxLCA3MSwgMjQ3LCAyNDksIDIzNiwgCisgICAgMCwgMjE4LCAyMzQsIDI0OSwgMTI1LCAyMzMsIDkxLCAyNDcsIDE5MywgMjUwLCAyNDQsIDIyNiwgMTY2LCAyMjUsIDEwNCwgCisgICAgMjUwLCAyNDUsIDIxOSwgODgsIDI0MSwgMjEyLCAyLCA3MSwgMjQ5LCAxMzAsIDM3LCAyNDksIDEyNSwgMjMzLCA5MSwgMjUwLCAKKyAgICAxNTMsIDIyOCwgNzUsIDI0NSwgMTI0LCAyNTQsIDE0MSwgMjI2LCAxOTEsIDQzLCAyMTIsIDI2LCAyMTUsIDI1MSwgODUsIAorICAgIDIxNSwgNTUsIDQzLCAyMTIsIDI2LCAyMTUsIDI1MSwgNzEsIDIxNSwgNTUsIDQzLCAyMTIsIDI2LCAyMTUsIDI1MSwgODUsIAorICAgIDQzLCAyMzMsIDkyLCAyMzEsIDUzLCA3MSwgNDMsIDIzMywgOTIsIDIzMSwgNTMsIDI0NiwgODksIDIxOSwgODIsIDUwLCAKKyAgICAxMTQsIDcxLCAyNDYsIDEwNSwgMjE1LCAyMjUsIDQzLCAyNTAsIDAsIDI0NSwgMTI0LCA5MiwgMjIxLCAyNTQsIDI0NCwgCisgICAgMTc1LCAyNDcsIDI1NSwgMjM2LCAwLCA3MSwgMjUwLCAzNiwgMjM2LCAwLCA4NSwgMjE4LCAyMzQsIDg1LCAyMTUsIDE5MiwgCisgICAgMjIzLCA2MCwgNDMsIDI0NSwgMTIzLCAyMjMsIDYwLCA0MywgMjQ1LCAxMjIsIDI1MywgMjExLCAxNiwgMzEsIDIxNCwgMTQ1LCAKKyAgICAxMTQsIDI1MCwgMzYsIDIsIDIxOCwgMTAzLCAyMiwgMTEzLCAxNzAsIDQ4LCAyMjUsIDE4OSwgMjIyLCAyNDgsIDIzNSwgCisgICAgMjA1LCAyMjUsIDE4OSwgMjMzLCA0MywgMjM1LCAyMDUsIDIyNSwgMTg5LCAyMzUsIDE5MywgMjI1LCAxODksIDg1LCAyNDksIAorICAgIDEzMSwgMjI2LCAxOTcsIDIyMCwgMjksIDIyMCwgMTcsIDIxOSwgMjI5LCAyNTAsIDYxLCAyNTAsIDIyNiwgMjQxLCAxNTcsIAorICAgIDIxOSwgMTI2LCAyNDMsIDYxLCAyMTEsIDIzMCwgMjQwLCAyMjAsIDI0MywgNjEsIDIsIDI0MiwgMTIsIDIzMSwgMTczLCAxNiwgCisgICAgMzEsIDIzMiwgMjI5LCAyMzAsIDExNSwgMjE0LCAxOTUsIDIyNiwgMTk3LCAyNDIsIDEyMiwgMjQ0LCAxMiwgMjQ0LCA3NCwgCisgICAgMjM2LCAwLCAyNDEsIDU5LCAyNDQsIDEyOSwgMjIyLCAxNCwgNDIsIDI0NCwgMTEsIDI0OSwgMTU5LCAyMTksIDEwNCwgMjQwLCAKKyAgICAxMTIsIDIxOSwgMTA3LCAyMjUsIDE2OCwgMiwgMjUyLCAxNTksIDIxNiwgMjQyLCAyMzUsIDEzMSwgMjUyLCAxNDYsIDg3LCAKKyAgICAyNDEsIDIzMSwgMjQyLCAxMzMsIDg3LCAyNDMsIDIzMiwgMjI0LCAxNDIsIDI0OSwgMTAzLCAyMjYsIDE5NywgODUsIDIxOCwgCisgICAgMjM0LCA3MSwgMjQ0LCA3NCwgMiwgMjAzLCAyMzAsIDIyNCwgODUsIDIxOCwgMTA0LCAyMTQsIDE2MCwgMjUxLCAyMTcsIAorICAgIDIyMSwgMTkzLCA4NSwgMjIxLCAxOTMsIDIzMiwgMTA4LCAyNTEsIDIxNywgMjIxLCAxOTMsIDcxLCAyMjEsIDE5MywgNzEsIAorICAgIDExNCwgMjUwLCAxMzAsIDc4LCAyMTcsIDEsIDIzMiwgMTU0LCA1MCwgMjE3LCA1MywgMjQ2LCA4OCwgMjU0LCAxOTEsIDI0NSwgCisgICAgMTE5LCAyMjMsIDE1NywgMjQ0LCA4NSwgMjIzLCAxNTcsIDI0MiwgMTUsIDIxMywgMTc0LCAyNDIsIDE1LCAyMTEsIDE5OCwgCisgICAgMjQyLCAxNSwgMjMyLCAxMDgsIDQ0LCAyMjUsIDE5OCwgMjI1LCAxOTgsIDIxNCwgMTYwLCA0NCwgMjI1LCAxOTgsIDcxLCAKKyAgICAyMjgsIDIzMCwgODUsIDIyOCwgMjMwLCAyNTAsIDEzMCwgNzgsIDExNCwgMjUwLCAxMzAsIDc4LCAyMzAsIDg0LCAyMTEsIAorICAgIDE3OCwgMTE0LCAyMzAsIDg0LCAyMTEsIDE3OCwgMjUyLCAxNTYsIDIxMSwgMTc4LCAxMTQsIDI1MiwgMTU2LCAyMTEsIDE3OCwgCisgICAgMjI2LCAxMjYsIDI2LCAyNDksIDEzMCwgMTE0LCAyNiwgMjQ5LCAxMzAsIDIwNCwgMjUwLCAxNzUsIDI0OSwgMTMwLCAxMTQsIAorICAgIDIwNCwgMjUwLCAxNzUsIDI0OSwgMTMwLCA3LCAyNDksIDEzMCwgMjIwLCA5MSwgNzEsIDcsIDI0OSwgMTMwLCAyMjYsIDEyNiwgCisgICAgNywgMjQ5LCAxMzAsIDIzMSwgMTg3LCAyNDksIDEzMCwgMjE4LCAxNTcsIDY0LCAyNDgsIDE0OSwgMjQ0LCAxMSwgMjE3LCAKKyAgICAxNSwgMjUzLCAyMTYsIDI0NCwgMTEsIDI1MiwgMTU3LCAyNTMsIDIxNiwgMTE0LCAyNDQsIDExLCAyNTIsIDE1NywgMjUzLCAKKyAgICAyMTYsIDI0NCwgMTEsIDI0OSwgMjQzLCAyNTMsIDIxNiwgODUsIDI0NCwgMTEsIDIyNSwgOSwgMjE4LCAxNTYsIDcxLCAyNDQsIAorICAgIDExLCAyMjUsIDksIDIxOCwgMTU2LCAyMTksIDExLCAyMTgsIDExMSwgMjI2LCAxMjYsIDcxLCAyMTgsIDE1NiwgMzcsIDcxLCAKKyAgICAyMTgsIDE1NiwgMjA0LCAyNTAsIDE3NSwgODUsIDIxOCwgMTU2LCA4NSwgMjUwLCAxNzUsIDcxLCAyMTgsIDE1NiwgMjI2LCAKKyAgICAxMjYsIDg1LCAyMTgsIDE1NiwgMTE0LCAyMjYsIDEyNiwgODUsIDIxOCwgMTU2LCAyMjUsIDYwLCAyMTgsIDE1NiwgMjIwLCAKKyAgICA5MSwgNzEsIDIxOCwgMTU2LCAxMTQsIDI1MywgMjE2LCAyMDQsIDI1MCwgMTc1LCAyNTMsIDIxNiwgMjQ1LCAxOTMsIDIxOCwgCisgICAgMjQ0LCAyNTMsIDIxNiwgMjQ1LCAxOTMsIDIyNSwgOSwgODUsIDIxOCwgMTU2LCAyNDUsIDE5MywgMjI1LCA5LCAyMjUsIDYwLCAKKyAgICAyMTgsIDE1NiwgMjE5LCAxMjUsIDIyNSwgOSwgODUsIDIxOCwgMTU2LCAyNDUsIDE5MywgMjI1LCA5LCAyMjMsIDExNCwgODUsIAorICAgIDIxOCwgMTU2LCAxMTQsIDI0NSwgMTkzLCAyMjUsIDksIDIyMywgMTE0LCA4NSwgMjE4LCAxNTYsIDIxNSwgNzcsIDIyNSwgOSwgCisgICAgODUsIDIxOCwgMTU2LCAyMTksIDEyMCwgMjI1LCA5LCAyNTMsIDIxNiwgMjE3LCAxNSwgMjUzLCAyMTYsIDIwNCwgMjUwLCAKKyAgICAxNzUsIDIxNywgMTUsIDI1MywgMjE2LCAxMTQsIDIxNywgMTUsIDI1MywgMjE2LCAyMTksIDEyNSwgMjI1LCAxNTcsIDg1LCAKKyAgICAyMiwgNzEsIDI0NCwgNTQsIDg1LCAyNDQsIDU0LCA3MSwgMjQ0LCA1NCwgMjQ1LCAxOTMsIDIyNSwgMTU3LCAyMjYsIDEyNiwgCisgICAgODUsIDI0NCwgNTQsIDM3LCAyMDQsIDI1MCwgMTc1LCAyNDUsIDE5MywgMjI1LCA5LCAyMTgsIDE1NiwgMTE0LCAyMTcsIDE1LCAKKyAgICAyMjUsIDYwLCAyNTMsIDIxNiwgMjE5LCA2MiwgMjE2LCAxMDUsIDIxNSwgMjE4LCAyMTksIDYyLCAxMTQsIDI1MCwgMTE0LCAKKyAgICAyMTksIDYyLCAyMTksIDEzLCAxMTQsIDIxOSwgMTMsIDI1MiwgMTU3LCAyNTMsIDIxNiwgMjQ1LCAxOTMsIDIxNywgMTUsIAorICAgIDIyNCwgMTcxLCAyNTMsIDIxNiwgMTE0LCAyNDUsIDE5MywgMjE3LCAxNSwgMjI0LCAxNzEsIDI1MywgMjE2LCAyNDksIDEzMSwgCisgICAgNzgsIDIyMCwgOTEsIDcxLCAyNTAsIDM1LCAxNTIsIDkyLCAyNDksIDEzMSwgNzgsIDIzMiwgMTA4LCA0NCwgMjQ2LCA4NiwgCisgICAgNzEsIDIxOCwgMjM0LCAyMTQsIDE2MCwgNDQsIDI0NiwgODYsIDcxLCAyMTgsIDIzNCwgMjMyLCAxMDgsIDQ0LCAyMjAsIDkxLCAKKyAgICA3MSwgMjE4LCAyMzQsIDIxNCwgMTYwLCA0NCwgMjIwLCA5MSwgNzEsIDIxOCwgMjM0LCA4NSwgMjI0LCAxMywgMTY0LCAyMjYsIAorICAgIDE0NywgNzEsIDIyNCwgMTMsIDE2NCwgMjI2LCAxNDcsIDcxLCAyNDUsIDMxLCAxNjQsIDIyNiwgMTQ3LCA4NSwgMjQ3LCAKKyAgICAyNDksIDIzMCwgMTgyLCA3MSwgMjExLCAxNzgsIDExNCwgMjQ1LCAzMSwgMTY0LCA4NywgMTkyLCA2NywgMTMwLCAyMzEsIAorICAgIDgyLCA2NywgMTMwLCAxMTQsIDY3LCAxMzAsIDExNCwgMjE5LCAxNTUsIDIxNSwgOTQsIDI0OSwgMjIwLCAyMjMsIDI1NCwgCisgICAgMTY0LCAyMjYsIDE0NywgMTE0LCAyMTksIDE1NSwgMjQ5LCAyMjAsIDIyMywgMjU0LCAxNjQsIDIyNiwgMTQ3LCAxMTQsIDUyLCAKKyAgICAyMTUsIDk0LCAyNDksIDIyMCwgMjIzLCAyNTQsIDE2NCwgMjI2LCAxNDcsIDExNCwgNTIsIDI0OSwgMjIwLCAyMjMsIDI1NCwgCisgICAgMTY0LCAyMjYsIDE0NywgMTE0LCAxMjEsIDIxOSwgMTU1LCAyNDksIDIyMCwgMjIzLCAyNTQsIDE2NCwgMjI2LCAxNDcsIAorICAgIDExNCwgMTIxLCA1MiwgMjQ5LCAyMjAsIDIyMywgMjU0LCAxNjQsIDIyNiwgMTQ3LCAyNDksIDkxLCAyMTgsIDE0MCwgMjI2LCAKKyAgICAxNSwgNSwgMjI2LCAxNDcsIDExNCwgMjQ1LCAzMSwgMTY0LCAyMjYsIDE0NywgMTE0LCAyNDEsIDIyOCwgMjQ1LCAzMSwgCisgICAgMTY0LCAyMjYsIDE0NywgMTE0LCA4NSwgMjQxLCAyMjcsIDIyMiwgMTg3LCAxMTQsIDg1LCAyNDEsIDIyOCwgMjUxLCAxMTMsIAorICAgIDI0NCwgNTUsIDI0MSwgMjI3LCAyMjIsIDE4NywgMjQ0LCA1NSwgMjQxLCAyMjgsIDI1MSwgMTEzLCAyMzEsIDgyLCA0MywgCisgICAgMjI2LCA0LCAyMjYsIDE0NywgMjMxLCA4MiwgNDQsIDIyNiwgNCwgMjI2LCAxNDcsIDIzMSwgODIsIDI0NCwgNjMsIDQzLCAKKyAgICAyMjYsIDQsIDIyNiwgMTQ3LCAyMzEsIDgyLCAyNDQsIDYzLCA0NCwgMjI2LCA0LCAyMjYsIDE0NywgMjMxLCA4MiwgMjMzLCAKKyAgICA0MiwgMjU0LCAxMTAsIDI1MSwgMTU4LCAyMjYsIDE0NywgMjMxLCA4MiwgMjIyLCAyNDcsIDI1NCwgMTEwLCAyNTEsIDE1OCwgCisgICAgMjI2LCAxNDcsIDExNCwgMjMzLCA0MiwgMjU0LCAxMTAsIDIyMywgMjU0LCAxNjQsIDIyNiwgMTQ3LCAxMTQsIDIyMiwgMjQ3LCAKKyAgICAyNTQsIDExMCwgMjIzLCAyNTQsIDE2NCwgMjI2LCAxNDcsIDExNCwgMjMzLCA0MiwgMjU0LCAxMTAsIDI1MSwgMTU4LCAyMjYsIAorICAgIDE0NywgMTE0LCAyMjIsIDI0NywgMjU0LCAxMTAsIDI1MSwgMTU4LCAyMjYsIDE0NywgMTkyLCA0MywgMjE2LCA2LCAyMjAsIAorICAgIDUzLCAyNTEsIDE1OCwgMjI2LCAxNDcsIDE5MiwgNDQsIDIxNiwgNiwgMjIwLCA1MywgMjUxLCAxNTgsIDIyNiwgMTQ3LCAKKyAgICAyMzEsIDgyLCA0MywgMjQ5LCA5OSwgMjUxLCAxNTgsIDIyNiwgMTQ3LCAyMzEsIDgyLCA0NCwgMjQ5LCA5OSwgMjUxLCAxNTgsIAorICAgIDIyNiwgMTQ3LCAyNDcsIDIwNCwgMTUyLCAzNywgMjEsIDExMCwgMjQ3LCAyMDQsIDE1MiwgMzcsIDIxLCAxMDUsIDI0NywgCisgICAgMjA0LCAxNTIsIDM3LCAyMSwgMTU4LCAyNDcsIDIwNCwgMTUyLCAzNywgMjEsIDE2MSwgMjQ3LCAyMDQsIDE1MiwgMzcsIDIxLCAKKyAgICAxODksIDI0NywgMjA0LCAxNTIsIDM3LCAyMSwgMTk0LCAyNDcsIDIwNCwgMTUyLCAzNywgMjEsIDE5OCwgMjQ3LCAyMDQsIAorICAgIDE1MiwgMzcsIDIxLCAxOTUsIDI0NywgMjA0LCAxNTIsIDM3LCAyMSwgMjAwLCAyNDcsIDIwNCwgMTUyLCAzNywgNTQsIDIxNiwgCisgICAgMjQ3LCAyNDcsIDIwNCwgMzcsIDM1LCAyMSwgMTEwLCAyNDcsIDIwNCwgMzcsIDM1LCAyMSwgMTA1LCAyNDcsIDIwNCwgMzcsIAorICAgIDM1LCAyMSwgMTU4LCAyNDcsIDIwNCwgMzcsIDM1LCAyMSwgMTYxLCAyNDcsIDIwNCwgMzcsIDM1LCAyMSwgMTg5LCAyNDcsIAorICAgIDIwNCwgMzcsIDM1LCAyMSwgMTk0LCAyNDcsIDIwNCwgMzcsIDM1LCAyMSwgMTk4LCAyNDcsIDIwNCwgMzcsIDM1LCAyMSwgCisgICAgMTk1LCAyNDcsIDIwNCwgMzcsIDM1LCAyMSwgMjAwLCAyNDcsIDIwNCwgMzcsIDM1LCA1NCwgMjE2LCAyNDcsIDI0NywgMjA0LCAKKyAgICAxNTIsIDM3LCAzNSwgMjEsIDExMCwgMjQ3LCAyMDQsIDE1MiwgMzcsIDM1LCAyMSwgMTA1LCAyNDcsIDIwNCwgMTUyLCAzNywgCisgICAgMzUsIDIxLCAxNTgsIDI0NywgMjA0LCAxNTIsIDM3LCAzNSwgMjEsIDE2MSwgMjQ3LCAyMDQsIDE1MiwgMzcsIDM1LCAyMSwgCisgICAgMTg5LCAyNDcsIDIwNCwgMTUyLCAzNywgMzUsIDIxLCAxOTQsIDI0NywgMjA0LCAxNTIsIDM3LCAzNSwgMjEsIDE5OCwgMjQ3LCAKKyAgICAyMDQsIDE1MiwgMzcsIDM1LCAyMSwgMTk1LCAyNDcsIDIwNCwgMTUyLCAzNywgMzUsIDIxLCAyMDAsIDI0NywgMjA0LCAxNTIsIAorICAgIDM3LCAzNSwgNTQsIDIxNiwgMjQ3LCAxMTQsIDIxMSwgMjQ2LCA5NywgNzQsIDExNCwgOTYsIDUwLCAxMTQsIDIzMCwgMTgyLCAKKyAgICA1MCwgMTE0LCAyNDcsIDE2OSwgNTAsIDExNCwgMjE5LCAyOCwgMjQ1LCAyMjAsIDc0LCAxMTQsIDk3LCA3NCwgMTE0LCAyMjgsIAorICAgIDU2LCAyNDUsIDIyMCwgNzQsIDI0NiwgOTgsIDIyNSwgMTEsIDk3LCA3NCwgMTE0LCAyMjIsIDE4NCwgOTcsIDc0LCAyMTUsIAorICAgIDIyNCwgOTcsIDc0LCAxMTQsIDIxNSwgMjI0LCA5NywgNzQsIDI0OCwgMTU1LCAyMTUsIDIyNCwgOTcsIDc0LCAxMTQsIDI0OCwgCisgICAgMTU1LCAyMTUsIDIyNCwgOTcsIDc0LCA4NSwgOTcsIDc0LCAyMTYsIDE0NCwgMjE2LCAxMiwgOTcsIDI1MywgMjQ5LCAyMTYsIAorICAgIDE0NCwgMjUxLCAxNzMsIDk3LCAyNTMsIDI0OSwgODUsIDk3LCAyNTMsIDI0OSwgMTE0LCA4NSwgMjQ5LCA5MSwgMjQ2LCAKKyAgICAxMDQsIDIyLCA5NywgNzQsIDExNCwgODUsIDI0OSwgOTEsIDIxNCwgMTUzLCAyMiwgOTcsIDc0LCAyMTgsIDIzMSwgODUsIAorICAgIDk3LCA3NCwgMTE0LCAyNDksIDIwNiwgODUsIDk3LCA3NCwgMjIyLCAyNDYsIDcxLCA5NywgNzQsIDIzMywgNDEsIDcxLCA5NywgCisgICAgNzQsIDI1MiwgMTgzLCAyMjAsIDkxLCA3MSwgOTcsIDc0LCAyNDMsIDI0MSwgMjIwLCA5MSwgNzEsIDk3LCA3NCwgMTE0LCAKKyAgICAyMzIsIDEwOCwgMjIyLCAyNDUsIDcxLCA5NywgNzQsIDExNCwgMjE0LCAxNjAsIDIyMiwgMjQ1LCA3MSwgOTcsIDc0LCAyMjgsIAorICAgIDQ5LCAyMzIsIDEwOCwgMjIyLCAyNDUsIDcxLCA5NywgNzQsIDI0OSwgOTksIDIzMiwgMTIzLCAyMjgsIDQ5LCAyMTQsIDE2MCwgCisgICAgMjIyLCAyNDUsIDcxLCA5NywgNzQsIDM3LCAxMTQsIDcxLCA5NywgNzQsIDIxMSwgMjUyLCA5NywgNzQsIDI1MSwgMjIwLCAKKyAgICAyMTksIDI4LCAyNDUsIDIyMCwgNzQsIDI1MSwgMjIwLCA5NywgNzQsIDI1MSwgMjIwLCAyMjgsIDU2LCAyNDUsIDIyMCwgNzQsIAorICAgIDExNCwgMjUxLCAyMjAsIDIxOSwgMjgsIDI0NSwgMjIwLCA3NCwgMTE0LCAyNTEsIDIyMCwgOTcsIDc0LCAxMTQsIDI1MSwgCisgICAgMjIwLCAyMjgsIDU2LCAyNDUsIDIyMCwgNzQsIDIxNywgMTcsIDk3LCA3NCwgMTE0LCAyMTcsIDE2LCA5NywgNzQsIDIxMiwgCisgICAgMTgsIDk3LCA3NCwgMTE0LCAyMTIsIDE4LCA5NywgNzQsIDIyNiwgMTcyLCA5NywgNzQsIDUyLCAyNDksIDk5LCAyMzIsIAorICAgIDEyMywgMTM0LCAyNDcsIDIxNCwgMjU0LCAxMDksIDcxLCAyMTUsIDIyNiwgMjQ5LCAxODcsIDQsIDcxLCAyMTUsIDIyNSwgCisgICAgMjI1LCAxNzEsIDIwNCwgMjE4LCA2MywgMjA0LCAyMTgsIDIxLCA0MywgMjIyLCA5MCwgMjUyLCAxNzMsIDI0OCwgNjAsIDQ0LCAKKyAgICAyMjIsIDkwLCAyNTIsIDE3MywgMjQ4LCA2MCwgMTc3LCAyLCA1OSwgMjM1LCAyMTUsIDIyMywgNTAsIDIxOSwgNDcsIDIyNCwgCisgICAgMjAxLCAyMTgsIDYzLCAyMTgsIDIyLCAyMjQsIDIwMSwgMjE5LCA0NiwgNjcsIDI1MiwgMTQxLCAyLCAyMDMsIDkxLCAxMSwgCisgICAgMjIyLCAyMjgsIDI0NywgMjU0LCAxOTksIDI0NywgMTY4LCAxMSwgMjQ0LCAxNzUsIDI0NywgMjU0LCA5MiwgMjMyLCAxNDYsIAorICAgIDI1NCwgMTE4LCA5MiwgMjMyLCAxNDYsIDIyNiwgMTU4LCA3MSwgMjQ3LCAyNDksIDIsIDI1MCwgMTczLCAyNDcsIDEyMCwgCisgICAgMjIsIDIsIDI0NywgMTIwLCAyNDUsIDE3MCwgNjQsIDIyNiwgMTcwLCAyMTQsIDE1MiwgMjMyLCAxMDgsIDQ0LCAyNDksIAorICAgIDE2MSwgMiwgMjQ3LCAxMjAsIDIxNCwgMTYwLCA0MywgMjQ5LCAxNjEsIDIsIDI0NywgMTIwLCA0MywgMjI2LCAxMjgsIDIzNSwgCisgICAgNjYsIDQ0LCAyMjYsIDEyOCwgMjM1LCA2NiwgMjQzLCAyMjksIDIyNiwgMTI4LCAyMzUsIDY2LCAyMzMsIDg1LCAxMjAsIAorICAgIDIxNywgODcsIDIzMywgODUsIDEyNCwgMjE3LCA4NywgNDMsIDIyLCA0NCwgNTIsIDIxNSwgOTMsIDQzLCAyMiwgNDQsIDIxNywgCisgICAgODcsIDQzLCAyMzAsIDg3LCAxOTksIDQ0LCAyMTcsIDg3LCAxOTksIDQzLCAyMTcsIDg3LCAxMjAsIDIxNywgODgsIDIsIAorICAgIDI1MCwgMzYsIDQ4LCAyMzIsIDEwNSwgMjQ3LCAxNzMsIDI1MSwgNzgsIDIwMywgMjIyLCAxMzMsIDcxLCAyNDksIDIwNSwgCisgICAgMjQ3LCAyNDgsIDcxLCAyNDksIDIwNSwgMjQ3LCAyNDksIDIsIDE0MCwgMjE2LCAxMTQsIDcxLCAyNDksIDIwNSwgMjQ3LCAKKyAgICAyNDksIDIsIDk3LCAyMTYsIDExNCwgNzEsIDQyLCAyLCAxNDAsIDIxNiwgMTE0LCA3MSwgNDIsIDIsIDk3LCAyMTYsIDExNCwgCisgICAgMTEsIDQzLCA3MSwgNDIsIDEyNywgMTEsIDQ0LCA3MSwgNDIsIDEyNywgMTEsIDQzLCAyNTQsIDExMCwgMTI3LCAxMSwgNDQsIAorICAgIDI1NCwgMTEwLCAxMjcsIDExLCA0MywgNTIsIDI1NCwgMTEwLCAxMjcsIDExLCA0NCwgNTIsIDI1NCwgMTEwLCAxMjcsIDExLCAKKyAgICA0MywgNzEsIDIxNiwgNiwgMjIwLCA1MywgMTI3LCAxMSwgNDQsIDcxLCAyMTYsIDYsIDIyMCwgNTMsIDEyNywgMTEsIDQzLCAKKyAgICAyNDQsIDYzLCAyMjYsIDMsIDExLCA0NCwgMjQ0LCA2MywgMjI2LCAzLCAyMTQsIDE1MywgMjI0LCAyNCwgNzQsIDI0NiwgCisgICAgMTA0LCAyMjQsIDI0LCA3NCwgMjU0LCA4OCwgMjQzLCA5OCwgMjUwLCAzNiwgNzQsIDI1MCwgMiwgMjQzLCA5OCwgMjUwLCAKKyAgICAzNiwgNzQsIDQ0LCA4MCwgMiwgMzcsIDIyNSwgMjIsIDE5OSwgMTQwLCA3NCwgMTk5LCA5NywgNzQsIDE5OSwgNDMsIDQ0LCAKKyAgICA3NCwgMTk5LCAxNDAsIDUyLCA3NCwgMTk5LCA5NywgNTIsIDc0LCAxOTksIDQzLCA0NCwgNTIsIDc0LCAxOTksIDE0MCwgODAsIAorICAgIDI0MywgMjQzLCAxMzAsIDE5OSwgOTcsIDgwLCAyNDMsIDI0MywgMTMwLCAxOTksIDE0MCwgNTIsIDgwLCAyNDMsIDI0MywgCisgICAgMTMwLCAxOTksIDk3LCA1MiwgODAsIDI0MywgMjQzLCAxMzAsIDE5OSwgOTcsIDIxOCwgMjMwLCA3NCwgNDYsIDQ3LCAyNTEsIAorICAgIDIxNSwgNDYsIDQ3LCAyNDcsIDExNywgNDYsIDQ3LCAyNDYsIDI0NSwgNDYsIDQ3LCAyNDcsIDExNiwgNDYsIDQ3LCAyNDYsIAorICAgIDE4MSwgNDYsIDQ3LCAyNDcsIDUyLCA0NiwgNDcsIDI0NiwgMjQ0LCA0NiwgNDcsIDI0NywgMTE1LCA0NiwgNDcsIDI0NiwgCisgICAgMTQ5LCA0NiwgNDcsIDI0NywgMjAsIDQ2LCA0NywgMjQ2LCAyMTIsIDQ2LCA0NywgMjQ3LCA4MywgNDYsIDQ3LCAyNDYsIAorICAgIDE4MCwgNDYsIDQ3LCAyNDcsIDUxLCA0NiwgNDcsIDI0NiwgMjQzLCA0NiwgNDcsIDI0NywgMTE0LCA0NiwgNDcsIDI0NiwgCisgICAgMTMzLCA0NiwgNDcsIDI0NywgNCwgNDYsIDQ3LCAyNDYsIDE5NiwgNDYsIDQ3LCAyNDcsIDY3LCA0NiwgNDcsIDI0NiwgMTY0LCAKKyAgICA0NiwgNDcsIDI0NywgMzUsIDQ2LCA0NywgMjQ2LCAyMjcsIDQ2LCA0NywgMjQ3LCA5OCwgNDYsIDQ3LCAyNDYsIDE0OCwgNDYsIAorICAgIDQ3LCAyNDcsIDE5LCA0NiwgNDcsIDI0NiwgMjExLCA0NiwgNDcsIDI0NywgODIsIDQ2LCA0NywgMjQ2LCAxNzksIDQ2LCA0NywgCisgICAgMjQ3LCA1MCwgNDYsIDQ3LCAyNDYsIDI0MiwgNDYsIDQ3LCAyNDcsIDExMywgNDYsIDQ3LCAyNDYsIDEyNSwgNDYsIDQ3LCAKKyAgICAyNDYsIDI1MiwgNDYsIDQ3LCAyNDYsIDE4OCwgNDYsIDQ3LCAyNDcsIDU5LCA0NiwgNDcsIDI0NiwgMTU2LCA0NiwgNDcsIAorICAgIDI0NywgMjcsIDQ2LCA0NywgMjQ2LCAyMTksIDQ2LCA0NywgMjQ3LCA5MCwgNDYsIDQ3LCAyNDYsIDE0MCwgNDYsIDQ3LCAKKyAgICAyNDcsIDExLCA0NiwgNDcsIDI0NiwgMjAzLCA0NiwgNDcsIDI0NywgNzQsIDQ2LCA0NywgMjQ2LCAxNzEsIDQ2LCA0NywgCisgICAgMjQ3LCA0MiwgNDYsIDQ3LCAyNDYsIDIzNCwgNDYsIDQ3LCAyNDcsIDEwNSwgNDYsIDQ3LCAyNDYsIDEzMiwgNDYsIDQ3LCAKKyAgICAyNDcsIDMsIDQ2LCA0NywgMjQ2LCAxOTUsIDQ2LCA0NywgMjQ3LCA2NiwgNDYsIDQ3LCAyNDYsIDE2MywgNDYsIDQ3LCAyNDcsIAorICAgIDM0LCA0NiwgNDcsIDI0NiwgMjI2LCA0NiwgNDcsIDI0NywgOTcsIDQ2LCA0NywgMjQ2LCAxNDcsIDQ2LCA0NywgMjQ3LCAxOCwgCisgICAgNDYsIDQ3LCAyNDYsIDIxMCwgNDYsIDQ3LCAyNDcsIDgxLCA0NiwgNDcsIDI0NiwgMTc4LCA0NiwgNDcsIDI0NywgNDksIDQ2LCAKKyAgICA0NywgMjQ2LCAyNDEsIDQ2LCA0NywgMjQ3LCAxMTIsIDQ2LCA0NywgMjQ2LCAxMjEsIDQ2LCA0NywgMjQ2LCAyNDgsIDQ2LCAKKyAgICA0NywgMjQ2LCAxODQsIDQ2LCA0NywgMjQ3LCA1NSwgNDYsIDQ3LCAyNDYsIDE1MiwgNDYsIDQ3LCAyNDcsIDIzLCA0NiwgNDcsIAorICAgIDI0NiwgMjE1LCA0NiwgNDcsIDI0NywgODYsIDQ2LCA0NywgMjQ2LCAxMzYsIDQ2LCA0NywgMjQ3LCA3LCA0NiwgNDcsIDI0NiwgCisgICAgMTk5LCA0NiwgNDcsIDI0NywgNzAsIDQ2LCA0NywgMjQ2LCAxNjcsIDQ2LCA0NywgMjQ3LCAzOCwgNDYsIDQ3LCAyNDYsIAorICAgIDIzMCwgNDYsIDQ3LCAyNDcsIDEwMSwgNDYsIDQ3LCAyNDYsIDEyOCwgNDYsIDQ3LCAyNDYsIDI1NSwgNDYsIDQ3LCAyNDYsIAorICAgIDE5MSwgNDYsIDQ3LCAyNDcsIDYyLCA0NiwgNDcsIDI0NiwgMTU5LCA0NiwgNDcsIDI0NywgMzAsIDQ2LCA0NywgMjQ2LCAKKyAgICAyMjIsIDQ2LCA0NywgMjQ3LCA5MywgNDYsIDQ3LCAyNDYsIDE0MywgNDYsIDQ3LCAyNDcsIDE0LCA0NiwgNDcsIDI0NiwgCisgICAgMjA2LCA0NiwgNDcsIDI0NywgNzcsIDQ2LCA0NywgMjQ2LCAxNzQsIDQ2LCA0NywgMjQ3LCA0NSwgNDYsIDQ3LCAyNDYsIAorICAgIDIzNywgNDYsIDQ3LCAyNDcsIDEwOCwgNDYsIDQ3LCAyNDYsIDEyNCwgNDYsIDQ3LCAyNDYsIDI1MSwgNDYsIDQ3LCAyNDYsIAorICAgIDE4NywgNDYsIDQ3LCAyNDcsIDU4LCA0NiwgNDcsIDI0NiwgMTU1LCA0NiwgNDcsIDI0NywgMjYsIDQ2LCA0NywgMjQ2LCAKKyAgICAyMTgsIDQ2LCA0NywgMjQ3LCA4OSwgNDYsIDQ3LCAyNDYsIDEzOSwgNDYsIDQ3LCAyNDcsIDEwLCA0NiwgNDcsIDI0NiwgCisgICAgMjAyLCA0NiwgNDcsIDI0NywgNzMsIDQ2LCA0NywgMjQ2LCAxNzAsIDQ2LCA0NywgMjQ3LCA0MSwgNDYsIDQ3LCAyNDYsIAorICAgIDIzMywgNDYsIDQ3LCAyNDcsIDEwNCwgNDYsIDQ3LCAyNDYsIDEzMSwgNDYsIDQ3LCAyNDcsIDIsIDQ2LCA0NywgMjQ2LCAKKyAgICAxOTQsIDQ2LCA0NywgMjQ3LCA2NSwgNDYsIDQ3LCAyNDYsIDE2MiwgNDYsIDQ3LCAyNDcsIDMzLCA0NiwgNDcsIDI0NiwgCisgICAgMjI1LCA0NiwgNDcsIDI0NywgOTYsIDQ2LCA0NywgMjQ2LCAxNDYsIDQ2LCA0NywgMjQ3LCAxNywgNDYsIDQ3LCAyNDYsIAorICAgIDIwOSwgNDYsIDQ3LCAyNDcsIDgwLCA0NiwgNDcsIDI0NiwgMTc3LCA0NiwgNDcsIDI0NywgNDgsIDQ2LCA0NywgMjQ2LCAKKyAgICAyNDAsIDQ2LCA0NywgMjQ3LCAxMTEsIDQ2LCA0NywgMjQ2LCAxMTksIDQ2LCA0NywgMjQ2LCAyNDYsIDQ2LCA0NywgMjQ2LCAKKyAgICAxODIsIDQ2LCA0NywgMjQ3LCA1MywgNDYsIDQ3LCAyNDYsIDE1MCwgNDYsIDQ3LCAyNDcsIDIxLCA0NiwgNDcsIDI0NiwgCisgICAgMjEzLCA0NiwgNDcsIDI0NywgODQsIDQ2LCA0NywgMjQ2LCAxMzQsIDQ2LCA0NywgMjQ3LCA1LCA0NiwgNDcsIDI0NiwgMTk3LCAKKyAgICA0NiwgNDcsIDI0NywgNjgsIDQ2LCA0NywgMjQ2LCAxNjUsIDQ2LCA0NywgMjQ3LCAzNiwgNDYsIDQ3LCAyNDYsIDIyOCwgNDYsIAorICAgIDQ3LCAyNDcsIDk5LCA0NiwgNDcsIDI0NiwgMTI2LCA0NiwgNDcsIDI0NiwgMjUzLCA0NiwgNDcsIDI0NiwgMTg5LCA0NiwgCisgICAgNDcsIDI0NywgNjAsIDQ2LCA0NywgMjQ2LCAxNTcsIDQ2LCA0NywgMjQ3LCAyOCwgNDYsIDQ3LCAyNDYsIDIyMCwgNDYsIDQ3LCAKKyAgICAyNDcsIDkxLCA0NiwgNDcsIDI0NiwgMTQxLCA0NiwgNDcsIDI0NywgMTIsIDQ2LCA0NywgMjQ2LCAyMDQsIDQ2LCA0NywgCisgICAgMjQ3LCA3NSwgNDYsIDQ3LCAyNDYsIDE3MiwgNDYsIDQ3LCAyNDcsIDQzLCA0NiwgNDcsIDI0NiwgMjM1LCA0NiwgNDcsIAorICAgIDI0NywgMTA2LCA0NiwgNDcsIDI0NiwgMTIyLCA0NiwgNDcsIDI0NiwgMjQ5LCA0NiwgNDcsIDI0NiwgMTg1LCA0NiwgNDcsIAorICAgIDI0NywgNTYsIDQ2LCA0NywgMjQ2LCAxNTMsIDQ2LCA0NywgMjQ3LCAyNCwgNDYsIDQ3LCAyNDYsIDIxNiwgNDYsIDQ3LCAKKyAgICAyNDcsIDg3LCA0NiwgNDcsIDI0NiwgMTM3LCA0NiwgNDcsIDI0NywgOCwgNDYsIDQ3LCAyNDYsIDIwMCwgNDYsIDQ3LCAyNDcsIAorICAgIDcxLCA0NiwgNDcsIDI0NiwgMTY4LCA0NiwgNDcsIDI0NywgMzksIDQ2LCA0NywgMjQ2LCAyMzEsIDQ2LCA0NywgMjQ3LCAKKyAgICAxMDIsIDQ2LCA0NywgMjQ2LCAxMjksIDQ2LCA0NywgMjQ3LCAwLCA0NiwgNDcsIDI0NiwgMTkyLCA0NiwgNDcsIDI0NywgNjMsIAorICAgIDQ2LCA0NywgMjQ2LCAxNjAsIDQ2LCA0NywgMjQ3LCAzMSwgNDYsIDQ3LCAyNDYsIDIyMywgNDYsIDQ3LCAyNDcsIDk0LCA0NiwgCisgICAgNDcsIDI0NiwgMTQ0LCA0NiwgNDcsIDI0NywgMTUsIDQ2LCA0NywgMjQ2LCAyMDcsIDQ2LCA0NywgMjQ3LCA3OCwgNDYsIDQ3LCAKKyAgICAyNDYsIDE3NSwgNDYsIDQ3LCAyNDcsIDQ2LCA0NiwgNDcsIDI0NiwgMjM4LCA0NiwgNDcsIDI0NywgMTA5LCA0NiwgNDcsIAorICAgIDI0NiwgMTIwLCA0NiwgNDcsIDI0NiwgMjQ3LCA0NiwgNDcsIDI0NiwgMTgzLCA0NiwgNDcsIDI0NywgNTQsIDQ2LCA0NywgCisgICAgMjQ2LCAxNTEsIDQ2LCA0NywgMjQ3LCAyMiwgNDYsIDQ3LCAyNDYsIDIxNCwgNDYsIDQ3LCAyNDcsIDg1LCA0NiwgNDcsIAorICAgIDI0NiwgMTM1LCA0NiwgNDcsIDI0NywgNiwgNDYsIDQ3LCAyNDYsIDE5OCwgNDYsIDQ3LCAyNDcsIDY5LCA0NiwgNDcsIDI0NiwgCisgICAgMTY2LCA0NiwgNDcsIDI0NywgMzcsIDQ2LCA0NywgMjQ2LCAyMjksIDQ2LCA0NywgMjQ3LCAxMDAsIDQ2LCA0NywgMjQ2LCAKKyAgICAxMjcsIDQ2LCA0NywgMjQ2LCAyNTQsIDQ2LCA0NywgMjQ2LCAxOTAsIDQ2LCA0NywgMjQ3LCA2MSwgNDYsIDQ3LCAyNDYsIAorICAgIDE1OCwgNDYsIDQ3LCAyNDcsIDI5LCA0NiwgNDcsIDI0NiwgMjIxLCA0NiwgNDcsIDI0NywgOTIsIDQ2LCA0NywgMjQ2LCAKKyAgICAxNDIsIDQ2LCA0NywgMjQ3LCAxMywgNDYsIDQ3LCAyNDYsIDIwNSwgNDYsIDQ3LCAyNDcsIDc2LCA0NiwgNDcsIDI0NiwgCisgICAgMTczLCA0NiwgNDcsIDI0NywgNDQsIDQ2LCA0NywgMjQ2LCAyMzYsIDQ2LCA0NywgMjQ3LCAxMDcsIDQ2LCA0NywgMjQ2LCAKKyAgICAxMjMsIDQ2LCA0NywgMjQ2LCAyNTAsIDQ2LCA0NywgMjQ2LCAxODYsIDQ2LCA0NywgMjQ3LCA1NywgNDYsIDQ3LCAyNDYsIAorICAgIDE1NCwgNDYsIDQ3LCAyNDcsIDI1LCA0NiwgNDcsIDI0NiwgMjE3LCA0NiwgNDcsIDI0NywgODgsIDQ2LCA0NywgMjQ2LCAKKyAgICAxMzgsIDQ2LCA0NywgMjQ3LCA5LCA0NiwgNDcsIDI0NiwgMjAxLCA0NiwgNDcsIDI0NywgNzIsIDQ2LCA0NywgMjQ2LCAxNjksIAorICAgIDQ2LCA0NywgMjQ3LCA0MCwgNDYsIDQ3LCAyNDYsIDIzMiwgNDYsIDQ3LCAyNDcsIDEwMywgNDYsIDQ3LCAyNDYsIDEzMCwgCisgICAgNDYsIDQ3LCAyNDcsIDEsIDQ2LCA0NywgMjQ2LCAxOTMsIDQ2LCA0NywgMjQ3LCA2NCwgNDYsIDQ3LCAyNDYsIDE2MSwgNDYsIAorICAgIDQ3LCAyNDcsIDMyLCA0NiwgNDcsIDI0NiwgMjI0LCA0NiwgNDcsIDI0NywgOTUsIDQ2LCA0NywgMjQ2LCAxNDUsIDQ2LCA0NywgCisgICAgMjQ3LCAxNiwgNDYsIDQ3LCAyNDYsIDIwOCwgNDYsIDQ3LCAyNDcsIDc5LCA0NiwgNDcsIDI0NiwgMTc2LCA0NiwgNDcsIAorICAgIDI0NywgNDcsIDQ2LCA0NywgMjQ2LCAyMzksIDQ2LCA0NywgMjQ3LCAxMTAsIDk3LCAyMTUsIDU4LCA4MCwgMiwgNjcsIDkxLCAKKyAgICA5NywgMjE1LCA1OCwgODAsIDIsIDUyLCA2NywgOTEsIDE0MCwgNTIsIDgwLCAyLCA2NywgOTEsIDk3LCA1MiwgODAsIDIsIAorICAgIDY3LCA5MSwgNDMsIDQ0LCA1MiwgODAsIDIsIDY3LCA5MSwgOTcsIDIxNSwgNTgsIDgwLCAyNDMsIDI0MywgMTMwLCAxNDAsIAorICAgIDUyLCA4MCwgMjQzLCAyNDMsIDEzMCwgOTcsIDUyLCA4MCwgMjQzLCAyNDMsIDEzMCwgMjQ2LCAxMDQsIDgwLCAyLCAyMDMsIAorICAgIDkxLCAyMTQsIDE1MywgODAsIDIsIDIwMywgOTEsIDIxNCwgMTUzLCAyMTUsIDIxMSwgNzQsIDI0NiwgMTA0LCAyMTUsIDIxMSwgCisgICAgNzQsIDE0MCwgNTIsIDI0OCwgMTU3LCA3NCwgOTcsIDUyLCAyNDgsIDE1NywgNzQsIDE0MCwgMjE1LCAyMTEsIDI0OCwgMTU3LCAKKyAgICA3NCwgOTcsIDIxNSwgMjExLCAyNDgsIDE1NywgNzQsIDk3LCAyMTUsIDU4LCAyMTUsIDIxMSwgMjQ4LCAxNTcsIDc0LCA5NywgCisgICAgODAsIDIsIDI0NiwgMTE4LCAyMTgsIDEzOSwgMjE0LCAxNTMsIDgwLCAyMTYsIDQyLCAxMzAsIDI0NiwgMTA0LCA4MCwgMjE2LCAKKyAgICA0MiwgMTMwLCA5NywgODAsIDIsIDIxNywgNzgsIDIsIDY3LCA5MSwgOTcsIDgwLCAyLCAyMTcsIDc4LCAyLCA1MiwgNjcsIAorICAgIDkxLCA5NywgMjE1LCA1OCwgODAsIDIsIDIxNywgNzcsIDk3LCAyMTUsIDU4LCA4MCwgMiwgMjE3LCA3OCwgMiwgNjcsIDkxLCAKKyAgICA5NywgMjE1LCA1OCwgODAsIDIsIDIxNywgNzgsIDIsIDUyLCA2NywgOTEsIDE0MCwgMjUzLCAyNTEsIDk3LCAyNTMsIDI1MSwgCisgICAgMTQwLCA1MiwgMjUzLCAyNTEsIDk3LCA1MiwgMjUzLCAyNTEsIDE0MCwgODAsIDIxNiwgNDIsIDg1LCAyNDcsIDI0OCwgOTcsIAorICAgIDgwLCAyMTYsIDQyLCA4NSwgMjQ3LCAyNDgsIDE0MCwgODAsIDI0MywgMjQzLCAyNTIsIDE0MSwgMjE2LCA0MiwgODUsIDI0NywgCisgICAgMjQ4LCA5NywgODAsIDI0MywgMjQzLCAyNTIsIDE0MSwgMjE2LCA0MiwgODUsIDI0NywgMjQ4LCAyMjgsIDU2LCAyMTIsIDksIAorICAgIDIyLCAyMTksIDI4LCAyNDUsIDIyMCwgNzQsIDIyOCwgNTYsIDI0NSwgMjIwLCAyMiwgMjE5LCAyOCwgMjEyLCA5LCA3NCwgCisgICAgMjI4LCA1NiwgMjEyLCA5LCA4MCwgMiwgMTAzLCAyMjgsIDU2LCAyNDUsIDIyMCwgODAsIDIsIDEwMywgMjE5LCAyOCwgMjQ1LCAKKyAgICAyMjAsIDgwLCAyLCAxMDMsIDIxOSwgMjgsIDIxMiwgOSwgODAsIDIsIDEwMywgMjI4LCA1NiwgMjEyLCA5LCA4MCwgMjIsIAorICAgIDIyOCwgNTYsIDI0NSwgMjIwLCA3NCwgMjI4LCA1NiwgMjQ1LCAyMjAsIDgwLCAyMiwgMjE5LCAyOCwgMjQ1LCAyMjAsIDc0LCAKKyAgICAyMTksIDI4LCAyNDUsIDIyMCwgODAsIDIyLCAyMTksIDI4LCAyMTIsIDksIDc0LCAyMTksIDI4LCAyMTIsIDksIDgwLCAyMiwgCisgICAgMjI4LCA1NiwgMjEyLCA5LCA3NCwgMjIyLCAyMjgsIDI0NywgMjU1LCAyNDksIDEyNSwgMjQ0LCAxNzUsIDI0NywgMjU0LCAKKyAgICAyNDQsIDE3NSwgMjQ3LCAyNTUsIDI0OSwgMTI1LCAyMjIsIDIyOCwgMjQ3LCAyNTQsIDIxOSwgMjgsIDI0NSwgMjIwLCA4MCwgCisgICAgMjQ5LCAxMjUsIDIyOCwgNTYsIDI0NSwgMjIwLCA3NCwgMjI4LCA1NiwgMjQ1LCAyMjAsIDgwLCAyNDksIDEyNSwgMjE5LCAKKyAgICAyOCwgMjQ1LCAyMjAsIDc0LCAyNDQsIDE3NSwgMjQ3LCAyNTUsIDI0OSwgMTI1LCAyMjgsIDU2LCAyNDUsIDIyMCwgNzQsIAorICAgIDIyMiwgMjI4LCAyNDcsIDI1NSwgMjQ5LCAxMjUsIDIxOSwgMjgsIDI0NSwgMjIwLCA3NCwgMjI4LCA1NiwgMjQ1LCAyMjAsIAorICAgIDgwLCAyNDksIDEyNSwgMjI4LCA1NiwgMjEyLCA5LCA3NCwgMjI4LCA1NiwgMjEyLCA5LCA4MCwgMjQ5LCAxMjUsIDIyOCwgCisgICAgNTYsIDI0NSwgMjIwLCA3NCwgMjEyLCAzNiwgODAsIDIyNSwgNywgMjQ3LCAxOTUsIDIyMiwgMjUxLCA4MCwgMjI1LCA3LCAKKyAgICA5NywgMjE2LCAxODgsIDI0OSwgOTAsIDIxNCwgMTUyLCA4MCwgMjI1LCA3LCA5NywgMjE2LCAxODgsIDI0OSwgOTAsIDI0NiwgCisgICAgMTAzLCA4MCwgMjI1LCA3LCAyNDYsIDEwNCwgMjE2LCAxODgsIDI0OSwgOTAsIDIzMywgMzcsIDgwLCAyMjUsIDcsIDI0NiwgCisgICAgMTA0LCAyMTYsIDE4OCwgMjQ5LCA5MCwgMjIyLCAyNDEsIDIyMiwgMjQ0LCAyNTQsIDI2LCAyNTAsIDIsIDc0LCAyMzMsIDQwLCAKKyAgICAyNTQsIDI2LCAyNTQsIDg4LCA3NCwgMjE2LCAxNCwgMjU0LCAyNiwgMjU0LCA4OCwgNzQsIDI1MSwgMTc1LCAyNTQsIDI2LCAKKyAgICAyNTQsIDg4LCA3NCwgMjE2LCAxNCwgMjU0LCAyNiwgMjUwLCAyLCA4MCwgMiwgMjMwLCAxODEsIDIxNiwgMTQsIDI1NCwgMjYsIAorICAgIDI1NCwgODgsIDgwLCAyLCAyMjUsIDIyLCAyMzIsIDEwOCwgNDQsIDIyMCwgMTUyLCAyNTAsIDIsIDc0LCAyMzIsIDEwOCwgCisgICAgNDMsIDIyMCwgMTUyLCAyNTQsIDg4LCA3NCwgMjU0LCA4OCwgMjUwLCAwLCAyNTAsIDM2LCA3NCwgMjUwLCAyLCAyNTAsIDAsIAorICAgIDI1MCwgMzYsIDc0LCA5NywgODAsIDc3LCAyMTksIDI1MSwgMTQwLCA3NCwgMTQwLCA4MCwgNzcsIDIxOSwgMjUxLCA5NywgCisgICAgNzQsIDIxOSwgMjUxLCA5NywgODAsIDc3LCAxNDAsIDc0LCA5NywgODAsIDIsIDk2LCA1MSwgMTQwLCA4MCwgMiwgOTYsIDUxLCAKKyAgICA5NywgODAsIDIxNiwgMTM5LCAyMTEsIDE3OCwgNDMsIDQ0LCA4MCwgMjE2LCAxMzksIDQsIDI1MCwgMzUsIDIxNCwgMTUzLCAKKyAgICAyMTUsIDU4LCA4MCwgMjQzLCAyNDMsIDQsIDI1MCwgMzUsIDQzLCAyNTIsIDEzOSwgMTIwLCA0NCwgMjUyLCAxMzksIDEyNCwgCisgICAgMjQxLCAyNTQsIDQzLCAyNTIsIDEzOSwgMTI0LCA0NCwgMjUyLCAxMzksIDEyMCwgMjQxLCAyNTQsIDEyMCwgMjUyLCAxMzksIAorICAgIDQ0LCAxMjQsIDI1MiwgMTM5LCA0MywgMjQxLCAyNTQsIDEyMCwgMjUyLCAxMzksIDQzLCAxMjQsIDI1MiwgMTM5LCA0NCwgCisgICAgMjQxLCAyNTQsIDQzLCAyNTIsIDEzOSwgMTIwLCA0NCwgMjUyLCAxMzksIDEyMCwgMjQxLCAyNTQsIDEyMCwgMjUyLCAxMzksIAorICAgIDQ0LCAxMjQsIDI1MiwgMTM5LCA0NCwgMjQxLCAyNTQsIDQzLCAyNTIsIDEzOSwgMTI0LCA0NCwgMjUyLCAxMzksIDEyNCwgCisgICAgMjQxLCAyNTQsIDEyMCwgMjUyLCAxMzksIDQzLCAxMjQsIDI1MiwgMTM5LCA0MywgMjQxLCAyNTQsIDE0MCwgMjQxLCAyNTUsIAorICAgIDIsIDI1MiwgMTM5LCAxMjAsIDIxNiwgNDIsIDEzMCwgOTcsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMTIwLCAyMTYsIDQyLCAKKyAgICAxMzAsIDIxNCwgMTUzLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDQ0LCAyMTYsIDQyLCAxMzAsIDI0NiwgMTA0LCAyNDEsIAorICAgIDI1NSwgMiwgMjUyLCAxMzksIDQ0LCAyMTYsIDQyLCAxMzAsIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjQsIDIxNiwgCisgICAgNDIsIDEzMCwgOTcsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMTI0LCAyMTYsIDQyLCAxMzAsIDIxNCwgMTUzLCAyNDEsIAorICAgIDI1NSwgMiwgMjUyLCAxMzksIDQzLCAyMTYsIDQyLCAxMzAsIDI0NiwgMTA0LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDQzLCAKKyAgICAyMTYsIDQyLCAxMzAsIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjAsIDI0MywgMjQzLCAxMzAsIDk3LCAyNDEsIAorICAgIDI1NSwgMiwgMjUyLCAxMzksIDEyMCwgMjQzLCAyNDMsIDEzMCwgMjE0LCAxNTMsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgCisgICAgNDQsIDI0MywgMjQzLCAxMzAsIDI0NiwgMTA0LCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDQ0LCAyNDMsIDI0MywgMTMwLCAKKyAgICAxNDAsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMTI0LCAyNDMsIDI0MywgMTMwLCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgCisgICAgMTM5LCAxMjQsIDI0MywgMjQzLCAxMzAsIDIxNCwgMTUzLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDQzLCAyNDMsIDI0MywgCisgICAgMTMwLCAyNDYsIDEwNCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCA0MywgMjQzLCAyNDMsIDEzMCwgMTQwLCAyNDEsIDI1NSwgCisgICAgMiwgMjUyLCAxMzksIDEyMCwgNzcsIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAyNDYsIDEwNiwgMjE0LCAxNTMsIAorICAgIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgNDMsIDI1MiwgMzAsIDIxNCwgMTUzLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDIyMiwgCisgICAgMjUxLCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjAsIDc3LCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAyNDYsIAorICAgIDEwNiwgMjQ2LCAxMDQsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgNDMsIDI1MiwgMzAsIDI0NiwgMTA0LCAyNDEsIDI1NSwgMiwgCisgICAgMjUyLCAxMzksIDIyMiwgMjUxLCAxNDAsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMTIwLCA3NywgOTcsIDI0MSwgMjU1LCAyLCAKKyAgICAyNTIsIDEzOSwgMjE0LCAxNjMsIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjQsIDc3LCA5NywgMjQxLCAyNTUsIDIsIAorICAgIDI1MiwgMTM5LCAyNDYsIDEwNiwgOTcsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMTIwLCA3NywgMTQwLCAyNDEsIDI1NSwgMiwgCisgICAgMjUyLCAxMzksIDIxNCwgMTYzLCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjQsIDc3LCAxNDAsIDI0MSwgMjU1LCAyLCAKKyAgICAyNTIsIDEzOSwgMjQ2LCAxMDYsIDE0MCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjAsIDc3LCAxOTksIDI0OCwgMTU2LCAKKyAgICAxNDAsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgMTI0LCAyNTIsIDQzLCAxOTksIDI0OCwgMTU2LCA5NywgMjQxLCAyNTUsIDIsIAorICAgIDI1MiwgMTM5LCAxMjAsIDc3LCAxOTksIDI0OCwgMTU2LCA5NywgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAxMjQsIDI1MiwgCisgICAgNDMsIDE5OSwgMjQ4LCAxNTYsIDIxNCwgMTUzLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDQzLCAyNTIsIDMwLCAyNDYsIAorICAgIDEwNCwgMjQxLCAyNTUsIDIsIDI1MiwgMTM5LCAyMjIsIDI1MSwgMjQ2LCAxMDQsIDI0MSwgMjU1LCAyLCAyNTIsIDEzOSwgCisgICAgNDMsIDI1MiwgMzAsIDIxNCwgMTUzLCAyNDEsIDI1NSwgMiwgMjUyLCAxMzksIDIyMiwgMjUxLCA0NCwgNTIsIDgwLCAyLCAKKyAgICAyMjIsIDE4MywgMjQxLCAyMzUsIDI0NSwgOTgsIDUsIDc3LCA5NywgNzQsIDIxNiwgODksIDIyNiwgMTY4LCA3NywgOTcsIAorICAgIDc0LCAxNDAsIDgwLCA3NywgMjE2LCA4OSwgMjI2LCAxNjcsIDk3LCA4MCwgNzcsIDIxNiwgODksIDIyNiwgMTY3LCA5NywgCisgICAgODAsIDc3LCAyNTQsIDE0OCwgMTI4LCAxMTEsIDIzMywgMTUsIDc3LCAxNDAsIDc0LCAxNDAsIDgwLCAyMTYsIDEzOSwgMjMzLCAKKyAgICAxNCwgMjQyLCAxMzAsIDc3LCA5NywgNzQsIDIxOCwgNjQsIDc3LCA5NywgNzQsIDE0MCwgODAsIDIxNiwgMTM5LCAyMTgsIAorICAgIDYzLCAyMTgsIDIyLCA3NywgMTQwLCA3NCwgNDMsIDI0NCwgOTEsIDIxNywgNzcsIDQ0LCAyNDQsIDkxLCAyMTcsIDc3LCAKKyAgICAxMjAsIDI0NCwgOTEsIDIxNywgNzcsIDEyNCwgMjQ0LCA5MSwgMjE3LCA3NywgMjE1LCAyMTEsIDY3LCAyNTIsIDE0MSwgCisgICAgMjQ4LCA2MCwgMjEwLCAxNjAsIDE4NywgMjE4LCAyNDIsIDIxMCwgMTYwLCAxODcsIDIxNSwgNDksIDI0OSwgMjI2LCA0MywgCisgICAgNzEsIDI0OSwgOTksIDEyNywgNDQsIDcxLCAyNDksIDk5LCAxMjcsIDQzLCA3MSwgMjI2LCAzLCA0NCwgNzEsIDIyNiwgMywgCisgICAgMjEwLCAxNjAsIDE4NywgNDMsIDIzNiwgMTUsIDEyNywgMjEwLCAxNjAsIDE4NywgNDQsIDIzNiwgMTUsIDEyNywgMjEwLCAKKyAgICAxNjAsIDE4NywgNDMsIDI1MSwgMjQyLCAxMjcsIDIxMCwgMTYwLCAxODcsIDQ0LCAyNTEsIDI0MiwgMTI3LCA0MywgNDIsIAorICAgIDI1MSwgMTU4LCAyLCAyMTQsIDE4MywgNDQsIDQyLCAyNTEsIDE1OCwgMiwgMjE0LCAxODMsIDQzLCA0MiwgMjUxLCAxNTgsIAorICAgIDIsIDIxNiwgMTE1LCAyMzYsIDAsIDIxNiwgMTQsIDI0OSwgMTYwLCA0NCwgNDIsIDI1MSwgMTU4LCAyLCAyMTYsIDExNSwgCisgICAgMjM2LCAwLCAyNTEsIDE3NSwgMjQ5LCAxNjAsIDQzLCA0MiwgMjUxLCAxNTgsIDIsIDIxNiwgMTE1LCAyMzYsIDAsIDI1MSwgCisgICAgMTc1LCAyNDksIDE2MCwgNDQsIDQyLCAyNTEsIDE1OCwgMiwgMjE2LCAxMTUsIDIzNiwgMCwgMjE2LCAxNCwgMjQ5LCAxNjAsIAorICAgIDQzLCAyNTQsIDExMCwgMjUxLCAxNTgsIDIsIDI0NywgMTIwLCA0NCwgMjU0LCAxMTAsIDI1MSwgMTU4LCAyLCAyNDcsIDEyMCwgCisgICAgNDMsIDI1NCwgMjYsIDIzMywgMTUsIDEyNywgNDQsIDI1NCwgMjYsIDI0MiwgMTMwLCAxMjcsIDUyLCA0MywgMjU0LCAyNiwgCisgICAgMjQyLCAxMzAsIDEyNywgNTIsIDQ0LCAyNTQsIDI2LCAyMzMsIDE1LCAxMjcsIDQzLCA4NSwgMjE2LCA2LCAyMjAsIDUzLCAKKyAgICAxMjcsIDQ0LCA4NSwgMjE2LCA2LCAyMjAsIDUzLCAxMjcsIDI0NiwgMTE4LCAyNDQsIDEzNSwgNjcsIDIxMCwgMzUsIDIzMiwgCisgICAgMjEzLCAyMzEsIDg4LCAyNTQsIDExMCwgMjI2LCAxNzAsIDIzMywgNDYsIDQ0LCAyNTQsIDExMCwgMjE0LCAxMiwgMiwgMjE4LCAKKyAgICAyMzQsIDIzMSwgODgsIDQ0LCAyNTQsIDExMCwgMiwgMjQ3LCAxMjAsIDI1NCwgMTEwLCAyLCAyMjIsIDkyLCAyMzUsIDIxNSwgCisgICAgMjU1LCAzLCAyNTQsIDEwOSwgMjE4LCAyNTUsIDI1NCwgMTEwLCAyMjYsIDE3MCwgMjMzLCA0NiwgMjE4LCAyNTUsIDI1NCwgCisgICAgMTEwLCAyMjYsIDE3MCwgMjE0LCAxNjMsIDIxNSwgOTQsIDI1NCwgMTA5LCAyMjMsIDQ5LCAyNTQsIDEwOSwgMjU0LCAxMTAsIAorICAgIDIsIDIxNCwgMTgzLCAyMjMsIDQ5LCAyNTQsIDExMCwgMiwgMjE0LCAxODMsIDIyNiwgMjQ4LCAyNTQsIDExMCwgMjI2LCAKKyAgICAxNzAsIDIxNCwgMTYzLCAyMjYsIDI0OCwgMjU0LCAxMTAsIDIyNiwgMTcwLCAyNDYsIDEwNiwgMjMxLCA4OCwgMjU0LCAxMTAsIAorICAgIDIsIDIwNCwgMjU0LCA1LCAyNDUsIDE0MCwgMjM2LCAwLCA4MCwgMjI1LCA3LCAxMjAsIDIyLCAyMjIsIDI1MSwgMjMxLCA4OCwgCisgICAgMjU0LCAxMTAsIDIsIDIwNCwgMjU0LCA1LCAyNDUsIDE0MCwgMjM2LCAwLCA4MCwgMjI1LCA3LCAxMjAsIDIyLCAyMzMsIDQ2LCAKKyAgICAyMzEsIDg4LCAyNTQsIDExMCwgMiwgMjA0LCAyNTQsIDUsIDI0NSwgMTQwLCAyMzYsIDAsIDgwLCAyMjUsIDcsIDEyNCwgMjIsIAorICAgIDIyMiwgMjUxLCAyMzEsIDg4LCAyNTQsIDExMCwgMiwgMjA0LCAyNTQsIDUsIDI0NSwgMTQwLCAyMzYsIDAsIDgwLCAyMjUsIAorICAgIDcsIDEyNCwgMjIsIDIzMywgNDYsIDIzMSwgODgsIDI1NCwgMTEwLCAyLCAyMDQsIDI1NCwgNSwgMjQ1LCAxNDAsIDIzNiwgMCwgCisgICAgODAsIDIyNSwgNywgNDQsIDIyLCAyMTQsIDE2MywgMjMxLCA4OCwgMjU0LCAxMTAsIDIsIDIwNCwgMjU0LCA1LCAyNDUsIAorICAgIDE0MCwgMjM2LCAwLCA4MCwgMjI1LCA3LCA0MywgMjIsIDIxNCwgMTYzLCAyMzEsIDg4LCAyNTQsIDExMCwgMiwgMjA0LCAKKyAgICAyNTQsIDUsIDI0NSwgMTQwLCAyMzYsIDAsIDgwLCAyMjUsIDcsIDQ0LCAyMiwgMjQ2LCAxMDYsIDIzMSwgODgsIDI1NCwgCisgICAgMTEwLCAyLCAyMDQsIDI1NCwgNSwgMjQ1LCAxNDAsIDIzNiwgMCwgODAsIDIyNSwgNywgNDMsIDIyLCAyNDYsIDEwNiwgMjIzLCAKKyAgICA0OSwgMjQ1LCAxNTIsIDIyMCwgMTI3LCAyNDUsIDE1MiwgMjIwLCAxMjgsIDIsIDIyNiwgMTIzLCAyNDUsIDE1MiwgMjIwLCAKKyAgICAxMjgsIDIsIDQsIDI1MCwgMzYsIDQ4LCAyNDUsIDE1MiwgMjIwLCAxMjgsIDIsIDQ0LCA4MCwgNDgsIDI0NSwgMTUyLCAyMjAsIAorICAgIDEyOCwgMiwgNDMsIDgwLCA0OCwgMjUwLCAzNiwgMiwgMjAzLCAxMzAsIDM3LCA2NywgMTMwLCAzNywgMjI2LCA3LCAzNywgCisgICAgMjIzLCA1MCwgMjE5LCA0NiwgMzcsIDIyNSwgMTcxLCAyNTAsIDM2LCAyNDcsIDE3MywgMjUxLCA3OCwgMjAzLCAyNTIsIAorICAgIDE0MSwgMjIsIDIxNiwgMTQsIDE2MywgMjQ3LCAxNzMsIDI1MSwgNzgsIDY3LCAxMzAsIDI1MCwgMzYsIDIsIDIxOCwgMjQsIAorICAgIDIxMSwgMTc4LCAzNywgMjU0LCA4NywgMjQ3LCAxNjksIDUwLCAxMjAsIDgwLCAyMTYsIDEzOSwgMjUwLCAzNSwgMzcsIDcxLCAKKyAgICAyNTEsIDExMywgMzcsIDI1MSwgMTEzLCAzNywgMjMzLCAxNCwgMzcsIDI0MiwgMTI5LCAyNTAsIDM2LCAyLCA0LCAyNTAsIAorICAgIDM2LCAyMTYsIDQyLCAyMTYsIDE5NiwgMjIyLCAyNTEsIDI1MCwgMzYsIDIsIDExMywgMjAzLCAyMTgsIDkxLCAyMTYsIDQyLCAKKyAgICAyMTYsIDE5NiwgMjIyLCAyNTEsIDkyLCAyMjIsIDIyOCwgMjQ3LCAyNTUsIDIxOSwgOTUsIDkyLCAyNDQsIDE3NSwgMjQ3LCAKKyAgICAyNTUsIDIxOSwgOTUsIDkyLCAyNTMsIDIxNiwgOTIsIDQsIDI1MCwgMzUsIDkyLCAyMTgsIDIzNCwgMTEzLCAyMzUsIDY1LCAKKyAgICAyMTgsIDIzMiwgMjE1LCAyMjYsIDIsIDU5LCA0OCwgMjE1LCAyMjYsIDIsIDIxNCwgMTgzLCAyMjIsIDkyLCAyMzYsIDAsIAorICAgIDIxNSwgMjI1LCAyMTUsIDIyNiwgMiwgMjIwLCAxMzQsIDI1MywgMjA3LCAyNTEsIDE3NCwgNDQsIDIxNSwgMjI2LCA3NywgCisgICAgNDMsIDIxNSwgMjI1LCA0MywgMjE1LCAyMjYsIDI1MiwgMzAsIDY3LCAxMzAsIDY3LCAyNTIsIDE0MSwgMjUyLCAzMCwgNDQsIAorICAgIDIxNSwgMjI1LCAyNTEsIDE2NSwgMiwgNDMsIDE2MywgMjUxLCAyMjEsIDI1MSwgMTY1LCAyLCA0NCwgMTYzLCAyNTEsIDIyMSwgCisgICAgODUsIDI1MSwgMTY0LCAzMCwgMiwgNDMsIDE2MywgMjUxLCAyMjEsIDMwLCAyLCA0NCwgMTYzLCAyNTEsIDIyMSwgNzEsIAorICAgIDI0MCwgMjM2LCA4NSwgMjQwLCAyMzYsIDQzLCAyMTEsIDI0NCwgMjQ0LCAxMzUsIDQ0LCAyMTEsIDI0NCwgMjQ0LCAxMzUsIAorICAgIDQzLCA1MiwgMjExLCAyNDQsIDI0NCwgMTM1LCA0NCwgNTIsIDIxMSwgMjQ0LCAyNDQsIDEzNSwgMjM1LCAyNDgsIDIzNSwgCisgICAgMjM0LCAyMTYsIDExMiwgMTE3LCAyMzUsIDIzNCwgMjM1LCAyMzUsIDIyOSwgMTAyLCAyLCA2NywgMTMwLCAyNDYsIDExMiwgCisgICAgMjMwLCA4NywgNDIsIDIsIDI0OSwgMTgxLCAyMjYsIDEyNywgMjM1LCAyNDYsIDI1MywgMjM3LCAyMTksIDIxOSwgMjI0LCAKKyAgICAxODAsIDI0NSwgOTgsIDUsIDIyLCAyMTksIDk3LCAyMjYsIDcsIDI0NSwgOTgsIDUsIDIyLCAyMTksIDk3LCAyMjYsIDgsIDIsIAorICAgIDIxNiwgODksIDQ4LCAyNDAsIDEwNCwgMjE2LCA0MiwgMjIsIDIxOSwgOTcsIDIyNiwgNywgMjQyLCAxODMsIDIxOCwgMTU1LCAKKyAgICAyMTYsIDE4NSwgMjQ2LCAxMDUsIDIxNSwgMjI2LCAyLCA0MywgMTYzLCAyNTEsIDIyMSwgMjQ2LCAxMDUsIDIxNSwgMjI2LCAKKyAgICAyLCA0NCwgMTYzLCAyNTEsIDIyMSwgODUsIDI0NywgMjQ5LCAyLCAxMjQsIDc0LCA4NSwgMjMyLCAxMDQsIDcxLCAyNTAsIAorICAgIDM2LCAyLCAxMjQsIDc0LCA4NSwgMjUwLCAzNiwgMiwgMTI0LCA3NCwgMjQ1LCA4NSwgNzEsIDIxOCwgMjM0LCAyNDUsIDg1LCAKKyAgICA4NSwgMjE4LCAyMzQsIDI0NSwgODUsIDcxLCAyNDcsIDI0OCwgMjQ1LCA4NSwgODUsIDI0NywgMjQ4LCAyNDUsIDg1LCA3MSwgCisgICAgMjUwLCAzNSwgMjQ1LCA4NSwgODUsIDI1MCwgMzUsIDIyMiwgMTMyLCAyMjMsIDUwLCAyMTksIDQ3LCAyMjYsIDE2NywgMjE5LCAKKyAgICA0NywgMiwgMjI2LCAxMjMsIDIyMywgNTAsIDIxOSwgNDcsIDIsIDIwMywgOTEsIDI1MSwgMjQ5LCAyMTksIDQ2LCAyNTEsIAorICAgIDI0OSwgMjIzLCA1MCwgMjE5LCA0NiwgNTIsIDIyNSwgMjIsIDIxNSwgMjExLCAyMjUsIDIyLCAyMzMsIDQyLCAyNDksIDkxLCAKKyAgICAyNTQsIDExMCwgMTI3LCAyMjIsIDI0NywgMjQ5LCA5MSwgMjU0LCAxMTAsIDEyNywgMjE2LCA3OCwgMjMwLCAxNzksIDIzMCwgCisgICAgMjQsIDM3LCA1OSwgMjI2LCAxNjcsIDIzMCwgMjQsIDM3LCA5NiwgMjI2LCAxNjcsIDIzMCwgMjQsIDM3LCAzMCwgMjI2LCAKKyAgICAxNjcsIDIzMCwgMjQsIDIxNCwgMTc2LCAyMjYsIDE2OCwgMiwgMjQ3LCAxMjAsIDIzMCwgMjQsIDIxNCwgMTc2LCAyMjYsIAorICAgIDE2OCwgMiwgMjI1LCAyMiwgMjMwLCAyNCwgNDIsIDIzNSwgMTk5LCAyMjYsIDE2NywgMjMwLCAyNCwgNDIsIDIxNCwgMTc2LCAKKyAgICAyMjYsIDE2NywgMTEzLCAyMzIsIDE0NiwgMjIsIDIyNiwgMTY3LCAxMTMsIDIzMiwgMTQ2LCAxNzcsIDIyNiwgMTY3LCAyMzAsIAorICAgIDI0LCAzMCwgMjI2LCAxNjcsIDIzMCwgMTU0LCAxMTMsIDIxOCwgNDMsIDIxOCwgNDEsIDIsIDIzNSwgMjExLCAyMjQsIDI0LCAKKyAgICAyMzUsIDIxMiwgMjI2LCAxNjcsIDI0NCwgOTksIDIyNSwgMjU1LCAyMzUsIDIxMSwgMjM1LCAyMTIsIDIsIDUyLCA5MSwgCisgICAgMjM1LCAyMTIsIDI1MywgMTczLCAyLCAyMTksIDk1LCAyNTAsIDMyLCAyNDMsIDIyNiwgMjU0LCA4OCwgMjM1LCAyMDksIAorICAgIDIzMiwgMjE0LCAyMzUsIDIxMCwgMiwgMjIzLCAxMTUsIDIyNSwgMjM3LCAyNTQsIDIsIDIyNSwgMSwgMjMyLCAyMTQsIDIzNSwgCisgICAgMjEwLCAyLCAyMjAsIDE1MiwgMjI1LCAyMzcsIDI1NCwgMiwgMjI1LCAxLCAyMzIsIDIxNCwgMjM1LCAyMTAsIDIyOCwgNTIsIAorICAgIDIzNSwgMjUwLCAyMTYsIDE5NiwgMjI1LCAxLCAyMzUsIDIxMiwgMjU0LCAyLCAxMTUsIDIyNSwgMTEsIDIyNiwgMTY3LCAKKyAgICAyMjQsIDE4LCAyMzUsIDIxMiwgMjI2LCAxNjcsIDIzNSwgMjEyLCAyLCAxNDAsIDgwLCAyLCAxMDMsIDIzNSwgMjEyLCAyLCAKKyAgICAzMCwgNTAsIDIzNSwgMjEyLCAyLCAyMzUsIDE5OCwgMjM1LCAyMTIsIDIsIDIxNCwgMTc1LCAyMzUsIDIxMiwgMiwgMjI2LCAKKyAgICAxMjMsIDIzNSwgMjEyLCAyLCAyMTQsIDE4MywgMjM1LCA2NiwgMjMzLCA4NSwgNDMsIDIxNSwgMjI2LCAyMjYsIDE2NywgCisgICAgMjEwLCAxNjAsIDE4NywgMjIxLCAyMDEsIDI0OSwgMjA5LCAyMTAsIDE2MCwgMTg3LCAyMjEsIDIwMSwgMjI1LCA1NiwgMjEwLCAKKyAgICAxNjAsIDE4NywgMjIxLCAyMDEsIDIyNCwgMTc2LCA5NiwgNSwgMiwgNCwgMjUwLCAzNiwgNDgsIDk2LCA1LCAyLCAyNTAsIAorICAgIDMxLCAyNTUsIDE1LCA0OCwgOTYsIDUsIDIsIDIxNiwgODksIDQ4LCA5NiwgNSwgMiwgNTksIDUxLCA5NiwgNSwgMiwgMjE2LCAKKyAgICA4OSwgNTEsIDk2LCA1LCAyLCAyMTgsIDY1LCAxMDUsIDk2LCA1LCAyLCA4NSwgMjE1LCAyMjUsIDIzMCwgMTgyLCA1LCAyLCAKKyAgICAyNDksIDIyMCwgNDgsIDIzMCwgMTgyLCA1LCAyLCA1OSwgNTEsIDIzMCwgMTgyLCA1LCAyLCAyNDQsIDE3NSwgMjQ3LCAxMTgsIAorICAgIDIzMCwgMTgyLCA1LCAyLCAyMjIsIDIyOCwgMjQ3LCAxMTgsIDk2LCA1LCAyMzYsIDAsIDQzLCAxNjMsIDI1MCwgMzUsIDk2LCAKKyAgICA1LCAyMzYsIDAsIDQ0LCAxNjMsIDI1MCwgMzUsIDIxMywgMjU0LCAxNzcsIDI0OSwgMTMxLCAyMjQsIDE4MCwgMjMwLCA4NCwgCisgICAgNSwgMiwgNTksIDQ4LCAyMzAsIDg0LCA1LCAyLCAyMTQsIDE4MywgMjIwLCAxNDksIDIyNCwgMTgxLCAyLCAyNTEsIDE3NSwgCisgICAgMjQ5LCAyNTUsIDIxOSwgNzcsIDIyNCwgMTgwLCAyMzAsIDg0LCA1LCAyMzYsIDAsIDQzLCAxNjMsIDI1MCwgMzUsIDIzMCwgCisgICAgODQsIDUsIDIzNiwgMCwgNDQsIDE2MywgMjUwLCAzNSwgMzcsIDIzMCwgODQsIDUsIDIsIDI1MCwgMzEsIDI1NSwgMTQsIAorICAgIDIzMCwgODQsIDUsIDIzNiwgMCwgNTIsIDI1MCwgMzUsIDM3LCAyNDcsIDE2OSwgNTAsIDk2LCA1LCAyMzYsIDAsIDIxNSwgCisgICAgMjI1LCAyMzAsIDE4MiwgNSwgMjM2LCAwLCAyMTUsIDIyNSwgMjMwLCA4NCwgNSwgMjM2LCAwLCAyMTUsIDIyNSwgMjM1LCAKKyAgICAyMDYsIDIyNCwgMTgwLCAyMjIsIDI0MiwgMjM1LCAyMDYsIDIyNCwgMTgwLCAyMTAsIDE2MCwgMTg3LCAyMjMsIDkwLCAyNDksIAorICAgIDIwOSwgMjU0LCAxMzQsIDE3NywgMjQ5LCAxNjUsIDIzNSwgMTk5LCAyLCAyNDcsIDEyMCwgMjE0LCAxNzYsIDIsIDIzMCwgCisgICAgMTgyLCA1MCwgMjE0LCAxNzYsIDIsIDIyNiwgMTIzLCAyMzUsIDE5OSwgMiwgMjI2LCAxMjMsIDIzNSwgMTk5LCAyLCAyMzIsIAorICAgIDE0NiwgMjU0LCAxMTgsIDIxNCwgMTc2LCAyLCAyMzIsIDE0NiwgMjI2LCAxNTgsIDIxNCwgMTc2LCA3NywgMjM1LCAxOTgsIAorICAgIDIzNSwgMTk5LCA3NywgMjE0LCAxNzUsIDIxNCwgMTc2LCA3NywgMjUyLCAxNDEsIDc3LCAyMzUsIDE5OCwgMjM1LCAxOTksIAorICAgIDc3LCAyNTIsIDE0MSwgNzcsIDIxNCwgMTc1LCAyMTQsIDE3NiwgMjUyLCAzMCwgMjIsIDIzNSwgNjUsIDIsIDIxNCwgMTc1LCAKKyAgICAyMzUsIDE5OSwgMjUyLCAzMCwgMjIsIDIzNSwgNjUsIDIsIDIzNSwgMTk4LCAyNTAsIDAsIDIxNCwgMTc2LCAyLCAyMjAsIAorICAgIDEzMywgMjUwLCAwLCAyMzUsIDE5OSwgMiwgMjIwLCAxMzMsIDUyLCA0MiwgMjM1LCAxOTgsIDUyLCA0MiwgMjE0LCAxNzUsIAorICAgIDI1MCwgMCwgMjE0LCAxNzYsIDIsIDIyMCwgMTM0LCAyMiwgMjE5LCA3NywgMjI0LCAxODAsIDIzMiwgMTQ2LCAyMiwgMiwgCisgICAgNTksIDQ4LCAyMzIsIDE0NiwgMTc3LCAyLCA1OSwgNDgsIDUyLCAyMzIsIDE0NiwgMjU0LCAxMTgsIDUyLCAyMzIsIDE0NiwgCisgICAgMjI2LCAxNTgsIDExMywgMjM1LCAyMDAsIDIzMiwgMTQ2LCAyNTQsIDExOCwgMTEzLCAyMzUsIDIwMCwgMjMyLCAxNDYsIAorICAgIDIyNiwgMTU4LCAyMTksIDg1LCAyMzMsIDg1LCAyMjYsIDE1OCwgMjE5LCA4NSwgMjMzLCA4NSwgMjU0LCAxMTgsIDIzMiwgCisgICAgMTQ2LCAxNzcsIDIyNiwgMTIxLCAyMzIsIDE0NiwgMjU0LCAxMTgsIDIzMiwgMTQ2LCAyMiwgMiwgMjMwLCAyMjQsIDIxOCwgCisgICAgMTM5LCAyMzIsIDE0NiwgMTc3LCAyLCAyMzAsIDIyNCwgMjE4LCAxMzksIDIzMiwgMTQ2LCAyMiwgMiwgMjAzLCAyNDgsIAorICAgIDE1NiwgMjMyLCAxNDYsIDE3NywgMiwgMjAzLCAyNDgsIDE1NiwgMjMyLCAxNDYsIDIyLCAyLCA1MiwgMjI2LCAxMjMsIDIzMiwgCisgICAgMTQ2LCAyMiwgMiwgMjE0LCAxODMsIDIzMiwgMTQ2LCAyMiwgMiwgNTIsIDIxNCwgMTgzLCA0LCAyMTMsIDI1MSwgMiwgMjE0LCAKKyAgICAxODMsIDIzMiwgMTQ2LCAxNzcsIDIsIDUyLCAyMjYsIDEyMywgMjMyLCAxNDYsIDE3NywgMiwgNTIsIDIxNCwgMTgzLCAyMTAsIAorICAgIDE2MCwgMTg3LCAyNDcsIDEyOSwgMjU0LCA3OSwgMjEwLCAxNjAsIDE4NywgMjIzLCAxNDgsIDI1NCwgNzksIDI0NSwgOTgsIAorICAgIDUsIDIsIDU5LCA1MSwgMjQwLCAxMDQsIDIsIDU5LCA0OCwgMjE1LCAyMTEsIDIwMywgMjUyLCAxNDEsIDIsIDUyLCA2NywgCisgICAgOTEsIDIxNSwgMjExLCAyMDMsIDI1MiwgMTQxLCAyLCAyMTUsIDIxMSwgNjcsIDkxLCAyMTYsIDg5LCAyMjYsIDE2OCwgMiwgCisgICAgNTksIDQ4LCAyMTYsIDg5LCAyMjYsIDE2OCwgMiwgMjIyLCAyMjgsIDI0NywgMTE4LCAyMTksIDE2MiwgMjMwLCAxODIsIAorICAgIDIxOSwgMTYxLCAyNDksIDE5OSwgMiwgNTksIDQ4LCAyNDUsIDk4LCAyLCAyNTMsIDIxNiwgMjU0LCAxNDgsIDEyOCwgMjE2LCAKKyAgICA0MiwgMiwgMjUwLCAzMSwgMjU1LCAxNCwgMjU0LCA0OCwgMTI4LCAxNzcsIDEyOCwgMTExLCAyNDUsIDk4LCA1LCA3NywgOTYsIAorICAgIDUwLCA5NiwgNSwgNzcsIDI0NSwgOTgsIDUwLCAyNDUsIDk4LCA1LCA3NywgMjE2LCA4OSwgMjI2LCAxNjcsIDUyLCAyNDksIAorICAgIDIyNywgMjQ1LCA5OSwgMTEzLCAyNDksIDE5NCwgMjQ1LCA5OCwgMjE5LCAxNzYsIDEzNCwgMjQ5LCAxOTQsIDI0NSwgOTgsIAorICAgIDIxOSwgMTc2LCAyNDUsIDk4LCA1LCAyLCAxMTMsIDE3MCwgNzcsIDIyLCAxMTMsIDE3MCwgNTEsIDI0NSwgOTQsIDIsIDI0NCwgCisgICAgMTEsIDE3MCwgNDgsIDIzMywgMTUsIDIsIDI1MCwgMzYsIDIzNSwgMjE1LCAyNDIsIDEzMCwgMiwgMjUwLCAzNiwgMjM1LCAKKyAgICAyMTUsIDIzMywgMTUsIDIsIDIyNCwgMTMsIDE2NCwgNDgsIDI0MiwgMTMwLCAyLCAyMjQsIDEzLCAxNjQsIDQ4LCAyMzMsIAorICAgIDE1LCAxNzcsIDIxOSwgOTcsIDEyOCwgMTExLCAyNDIsIDEzMCwgMTc3LCAyMTksIDk3LCAxMjgsIDExMSwgMjMzLCAxNSwgCisgICAgMTc3LCAyMTksIDk3LCAxMjgsIDIxNiwgNDIsIDIsIDU5LCAyMzUsIDIxNSwgMjQyLCAxMzAsIDE3NywgMjE5LCA5NywgMTI4LCAKKyAgICAyMTYsIDQyLCAyLCA1OSwgMjM1LCAyMTUsIDIzMywgMTUsIDE3NywgMjE5LCA5NywgMTI4LCAyMTYsIDQyLCAyLCA1OSwgNDgsIAorICAgIDI0MiwgMTMwLCAxNzcsIDIxOSwgOTcsIDEyOCwgMjE2LCA0MiwgMiwgNTksIDQ4LCAyMzMsIDE1LCAxNzcsIDIxOSwgOTcsIAorICAgIDEyOCwgMjE2LCA0MiwgMiwgNTksIDc3LCAyMjIsIDI1MSwgMjQyLCAxMzAsIDE3NywgMjE5LCA5NywgMTI4LCAyMTYsIDQyLCAKKyAgICAyLCA1OSwgNzcsIDIzMywgNDYsIDIzMywgMTUsIDE3NywgMjU0LCA0OSwgMjQyLCAxMzAsIDE3NywgMjU0LCA0OSwgMjMzLCAKKyAgICAxNSwgMjIsIDIxOSwgMTUzLCAyMjgsIDUyLCAxMjgsIDExMSwgMjQyLCAxMzAsIDIyLCAyMTksIDE1MywgMjI4LCA1MiwgCisgICAgMTI4LCAxMTEsIDIzMywgMTUsIDIyLCAyMjgsIDUyLCAyNTQsIDQ5LCAyNDIsIDEzMCwgMjIsIDIyOCwgNTIsIDI1NCwgNDksIAorICAgIDIzMywgMTUsIDc3LCAyNDYsIDExMSwgMTI4LCA3NywgMjQyLCAxMjksIDI0MiwgMTMwLCA3NywgMjQ2LCAxMTEsIDEyOCwgCisgICAgNzcsIDIzMywgMTQsIDIzMywgMTUsIDc3LCAyMTksIDE2MiwgMTc3LCAyNDUsIDk5LCAyNDIsIDEzMCwgNzcsIDIxOSwgMTYyLCAKKyAgICAxNzcsIDI0NSwgOTksIDIzMywgMTUsIDc3LCAyMTksIDE2MiwgNzcsIDI0MiwgMTI5LCAyNDIsIDEzMCwgNzcsIDIxOSwgCisgICAgMTYyLCA3NywgMjMzLCAxNCwgMjMzLCAxNSwgNzcsIDI0MiwgMTMwLCA3NywgMjQ2LCAxMTEsIDI0NSwgOTksIDI0MiwgMTMwLCAKKyAgICA3NywgMjMzLCAxNSwgNzcsIDI0NiwgMTExLCAyNDUsIDk5LCAyMzMsIDE1LCA3NywgMjE5LCA5NywgMTI4LCA3NywgMjQyLCAKKyAgICAxMzAsIDc3LCAyMTksIDk3LCAyNDUsIDk5LCAyNDIsIDEzMCwgNzcsIDIxOSwgOTcsIDEyOCwgNzcsIDIzMywgMTUsIDc3LCAKKyAgICAyMTksIDk3LCAyNDUsIDk5LCAyMTksIDk3LCAxMjgsIDIxNiwgNDIsIDE3NywgMjMzLCAxNCwgMjE5LCA5NywgMTI4LCAyMTYsIAorICAgIDQyLCAxNzcsIDI0MiwgMTI5LCAyMTksIDk3LCAxMjgsIDIxNiwgNDIsIDE3NywgMjMzLCAxNSwgMiwgNTksIDIzNSwgMjE1LCAKKyAgICAyMTksIDk3LCAxMjgsIDIxNiwgNDIsIDE3NywgMjQyLCAxMzAsIDIsIDU5LCAyMzUsIDIxNSwgMjQ2LCAxMTEsIDEyOCwgCisgICAgMjE2LCA0MiwgMTc3LCAyMzMsIDE0LCAyNDYsIDExMSwgMTI4LCAyMTYsIDQyLCAxNzcsIDI0MiwgMTI5LCAyNDYsIDExMSwgCisgICAgMjE5LCA5NywgMTI4LCAyMTYsIDQyLCAxNzcsIDIzMywgMTQsIDI0NiwgMTExLCAyMTksIDk3LCAxMjgsIDIxNiwgNDIsIAorICAgIDE3NywgMjQyLCAxMjksIDIxOSwgMTYyLCAxNzcsIDIzMywgMTQsIDIxOSwgMTYyLCAxNzcsIDI0MiwgMTI5LCAyMTksIDE2MiwgCisgICAgNzcsIDIzMywgMTUsIDc3LCAyNDUsIDk4LCA1MCwgMjE5LCAxNjIsIDc3LCAyNDIsIDEzMCwgNzcsIDI0NSwgOTgsIDUwLCAKKyAgICA1MiwgMjI5LCA5MSwgMjMzLCAxNCwgNTIsIDIyOSwgOTEsIDI0MiwgMTI5LCA1MiwgMjI5LCA5MSwgMjMzLCAxNSwgMiwgCisgICAgMjE0LCAxODMsIDI0MiwgMTMwLCAyMjYsIDEyMSwgMjMzLCAxNCwgMjQyLCAxMzAsIDI1MiwgMzAsIDIzMywgMTQsIDIzMywgCisgICAgMTUsIDI1MCwgMCwgMjUxLCA3OCwgMjQ5LCA5MiwgMjQyLCAxMzAsIDI1MCwgMCwgMjUxLCA3OCwgMjQ5LCA5MiwgMjMzLCAKKyAgICAxNSwgMjUwLCAwLCAyNTEsIDc4LCAyNDksIDkzLCA3NywgMjE5LCA5NywgMjQ1LCA5OSwgMjQyLCAxMzAsIDI1MCwgMCwgCisgICAgMjUxLCA3OCwgMjQ5LCA5MywgNzcsIDIxOSwgOTcsIDI0NSwgOTksIDIxOSwgNzgsIDIxNiwgMjAwLCAyMzMsIDgzLCAyMTYsIAorICAgIDIwMCwgMjE5LCA3OCwgMjE2LCAyMDEsIDE3NywgMTI4LCAxMTEsIDIzMywgODMsIDIxNiwgMjAxLCAxNzcsIDEyOCwgMTExLCAKKyAgICAyNDUsIDk4LCA1LCAyLCAyNTEsIDEwOCwgNDgsIDIyNCwgMjAzLCA3NywgMjE5LCAxNTMsIDI0NSwgOTgsIDUwLCAyMTgsIAorICAgIDU2LCA3NywgMjE5LCAxNTMsIDI0NSwgOTgsIDUwLCAyMjQsIDIwMywgNzcsIDIxOSwgMTUzLCAyMjgsIDUyLCAxMjgsIDExMSwgCisgICAgMjE4LCA1NiwgNzcsIDIxOSwgMTUzLCAyMjgsIDUyLCAxMjgsIDExMSwgMjI0LCAyMDMsIDc3LCAyNDUsIDk4LCA1MCwgMjE4LCAKKyAgICA1NiwgNzcsIDI0NSwgOTgsIDUwLCAyMjQsIDIwMywgNzcsIDIyOCwgNTIsIDEyOCwgMTExLCAyMTgsIDU2LCA3NywgMjI4LCAKKyAgICA1MiwgMTI4LCAxMTEsIDIyNCwgMjAzLCA3NywgMjU0LCAxNDgsIDEyOCwgMTExLCAyMTgsIDU2LCA3NywgMjU0LCAxNDgsIAorICAgIDEyOCwgMTExLCAyMjQsIDIwMywgNzcsIDIyOCwgNTIsIDI1NCwgMTQ4LCAxMjgsIDExMSwgMjE4LCA1NiwgNzcsIDIyOCwgCisgICAgNTIsIDI1NCwgMTQ4LCAxMjgsIDExMSwgNTIsIDIyNCwgMjAyLCA1MiwgMjE4LCA1NSwgMjE4LCA2NCwgMiwgMjQ3LCAxMjAsIAorICAgIDIxOCwgMjIsIDIsIDI0NywgMTIwLCAyMTgsIDY0LCAyLCA5NiwgNSwgNTEsIDIxOCwgMjIsIDIsIDk2LCA1LCA1MSwgMjE4LCAKKyAgICA2NCwgMiwgMjMwLCA4NCwgNSwgNTEsIDIxOCwgMjIsIDIsIDIzMCwgODQsIDUsIDUxLCAyMTgsIDY0LCA2NCwgMTc3LCAxMjgsIAorICAgIDIxNiwgNDIsIDIsIDU5LCA0OCwgMjE4LCAyMiwgNjQsIDE3NywgMTI4LCAyMTYsIDQyLCAyLCA1OSwgNDgsIDIxOCwgNjQsIAorICAgIDY0LCA3NywgMjQ1LCA5OCwgNTAsIDIxOCwgMjIsIDY0LCA3NywgMjQ1LCA5OCwgNTAsIDIxOCwgNjQsIDY0LCA3NywgMjE2LCAKKyAgICA4OSwgMjI2LCAxNjcsIDIxOCwgMjIsIDY0LCA3NywgMjE2LCA4OSwgMjI2LCAxNjcsIDIxOCwgNjQsIDY0LCA3NywgMjU0LCAKKyAgICAxNDgsIDEyOCwgMTExLCAyMTgsIDIyLCA2NCwgNzcsIDI1NCwgMTQ4LCAxMjgsIDExMSwgMjE4LCA2NCwgNjQsIDc3LCAyMjgsIAorICAgIDUyLCAxMjgsIDExMSwgMjE4LCAyMiwgNjQsIDc3LCAyMjgsIDUyLCAxMjgsIDExMSwgNDIsIDQzLCAyMDQsIDkzLCAyMjYsIAorICAgIDE2NywgNDIsIDQ0LCAyMDQsIDkzLCAyMjYsIDE2NywgMjUwLCAwLCAyMTgsIDYzLCAyNTAsIDAsIDIxOCwgMjEsIDI1MCwgMCwgCisgICAgMjE4LCA2NCwgMTc3LCAxMjgsIDExMSwgMjUwLCAwLCAyMTgsIDIyLCAxNzcsIDEyOCwgMTExLCAyMTgsIDY0LCA3NywgMjE4LCAKKyAgICAyMSwgMjE4LCAyMiwgNzcsIDIxOCwgNjMsIDIxOCwgNjQsIDc3LCAyMTgsIDYzLCAyMTgsIDIyLCA3NywgMjE4LCAyMSwgCisgICAgMjE4LCAyMiwgMjUyLCAzMCwgMjE4LCA2MywgMjE4LCAyMiwgMjUyLCAzMCwgMjIsIDIzNSwgNjUsIDI1MSwgNzgsIDI0OCwgCisgICAgMTU3LCAyLCAyMTgsIDYzLCAyNDUsIDE3MCwgNjQsIDIyNiwgMTcwLCAyNDYsIDEwMywgMjI1LCA0OCwgMiwgMjE3LCAxMiwgCisgICAgMjE2LCAxMywgMjE1LCAyNDAsIDIzNSwgMTk4LCAyNDQsIDIxLCAyMjgsIDY1LCAyMTksIDI1MSwgNDMsIDIxNywgODcsIAorICAgIDIxOSwgMjUxLCAxMjQsIDIxNywgODcsIDIxOSwgMjUxLCAxMjAsIDIxNywgODcsIDIyNSwgMTcyLCAyLCAyMjIsIDkxLCA2NywgCisgICAgMjUyLCAxNDEsIDIxNSwgMjExLCA0NCwgMjE1LCA5MywgNTIsIDY3LCAyNTIsIDE0MSwgNDMsIDIxNSwgOTMsIDY3LCAyNTIsIAorICAgIDE0MSwgNTIsIDQzLCAyMTUsIDkzLCA1MiwgNjcsIDI1MiwgMTQxLCA1MiwgNDMsIDIxNSwgOTMsIDE5OSwgMjQ4LCAxNTcsIAorICAgIDI0MywgMjQzLCA0MywgMjMxLCA2MywgNjQsIDUyLCAyMTMsIDIzOSwgMjE5LCAyNTEsIDEyNCwgMjE3LCA4OCwgMiwgMjI2LCAKKyAgICAxMjMsIDIxOSwgMjUxLCAxMjAsIDIxNywgODgsIDIsIDIxNCwgMTgzLCAyMTksIDI1MSwgMTIwLCAyMTcsIDg4LCA3NywgCisgICAgMjE5LCAyNTEsIDEyNCwgMjE3LCA4NywgNTIsIDEyNCwgMjE3LCA4NywgNTIsIDEyMCwgMjE3LCA4NywgNTIsIDIxOCwgMTAzLCAKKyAgICAyMjgsIDUyLCA1MCwgMjIzLCA0OSwgNTIsIDIxOCwgMTAzLCAyMjgsIDUyLCA1MCwgMjQ3LCAxMzgsIDIyOCwgNTIsIDI0NywgCisgICAgMTc1LCAyLCAyMjMsIDQ5LCAyMjksIDEwMSwgMjE5LCA5NSwgNjcsIDIzMiwgMjE0LCAyLCAyNTAsIDM2LCA0OCwgNjcsIAorICAgIDIzMiwgMjE0LCAyLCAyNTAsIDM2LCA1MSwgMTI0LCAyMTcsIDg4LCAyLCAyNTAsIDM2LCA1MSwgMjI2LCA4LCAyLCAyMDMsIAorICAgIDkxLCAyMjYsIDgsIDIsIDIxNiwgODksIDIyNiwgMTY3LCAyMTUsIDIxMSwgNjcsIDI1MiwgMTQxLCAyNTEsIDI0NCwgMjIzLCAKKyAgICA5MSwgMjE1LCAyMTEsIDY3LCAyNTIsIDE0MSwgMiwgMjAzLCA5MSwgMjE1LCAyMTEsIDI0OSwgMjI3LCAyMjYsIDE2NywgCisgICAgMjE1LCAyMTEsIDIyOSwgOTEsIDIzMywgMTQsIDIxNSwgMjExLCAyMjksIDkxLCAyNDIsIDEyOSwgMjQ2LCAxMTEsIDIxOSwgCisgICAgOTcsIDIzMywgMTUsIDE3NywgMTI4LCAxMTEsIDI0NiwgMTExLCAyMTksIDk3LCAyNDIsIDEzMCwgMTc3LCAxMjgsIDExMSwgCisgICAgMjE1LCAyMTEsIDIxOSwgNDcsIDI1MSwgMjQ0LCAyMjMsIDkxLCAyMzMsIDg1LCAyMTUsIDIxMSwgNjcsIDI1MiwgMTQxLCAKKyAgICAyMjYsIDE2NywgNTIsIDIxOSwgNDcsIDIyNiwgMTY3LCA3MSwgNjcsIDEzMCwgMjMwLCAyNCwgNzEsIDY3LCAxMzAsIDIyOCwgCisgICAgNTYsIDI0NSwgMjIwLCA3MSwgNzQsIDIyOCwgNTYsIDIxMiwgOSwgNzEsIDc0LCAyMTksIDI4LCAyNDUsIDIyMCwgNzEsIDc0LCAKKyAgICAyMTksIDI4LCAyMTIsIDksIDcxLCA3NCwgNDMsIDQ0LCA3MSwgNzQsIDE0MCwgODUsIDc0LCAyMTQsIDE1MywgODUsIDc0LCAKKyAgICAyNDYsIDEwNCwgODUsIDc0LCAyMjgsIDU2LCAyNDUsIDIyMCwgODUsIDc0LCAyMjgsIDU2LCAyMTIsIDksIDg1LCA3NCwgCisgICAgMjE5LCAyOCwgMjQ1LCAyMjAsIDg1LCA3NCwgMjE5LCAyOCwgMjEyLCA5LCA4NSwgNzQsIDQzLCA0NCwgODUsIDc0LCAxMjAsIAorICAgIDEyNCwgODUsIDc0LCA5NywgODAsIDIsIDIxNiwgNzcsIDI0NiwgMTAzLCA5NywgODAsIDIsIDIxNiwgNzcsIDIxNCwgMTUyLCAKKyAgICAxNDAsIDgwLCAyLCAyMTYsIDc3LCAyNDYsIDEwMywgMTQwLCA4MCwgMiwgMjE2LCA3NywgMjE0LCAxNTIsIDQyLCAyLCAyMTYsIAorICAgIDE0LCAxNjMsIDI1MSwgMjIxLCA0MiwgMiwgMjUxLCAxNzUsIDE2MywgMjUxLCAyMjEsIDQyLCAyLCAyMTQsIDE2MCwgNDQsIAorICAgIDI0NywgMjU1LCAxNjMsIDI1MSwgMjIxLCA0MiwgMiwgMjMyLCAxMDgsIDQzLCAyNDcsIDI1NSwgMTYzLCAyNTEsIDIyMSwgCisgICAgMjQ3LCAyNDksIDIsIDQzLCAxNjMsIDI1MSwgMjIxLCAyNDcsIDI0OSwgMiwgNDQsIDE2MywgMjUxLCAyMjEsIDI0NywgMjQ5LCAKKyAgICAyLCAyMTYsIDE0LCAxNjMsIDI1MSwgMjIxLCAyNDcsIDI0OSwgMiwgMjUxLCAxNzUsIDE2MywgMjUxLCAyMjEsIDI0NiwgCisgICAgMTE4LCAyMTgsIDIzNCwgODUsIDIzMywgODUsIDIxOCwgMjM0LCA3MSwgMjMzLCA4NSwgMjE4LCAyMzQsIDg1LCAyMTMsIAorICAgIDE4NywgNCwgMjE4LCAyMzQsIDcxLCAyMTMsIDE4NywgNCwgMjE4LCAyMzQsIDg1LCAyMjUsIDE5MCwgNzEsIDIyNSwgMTkwLCAKKyAgICA3MSwgMjQxLCAxOTMsIDg1LCAyNDEsIDE5MywgMjAzLCA4NSwgMjQxLCAxOTMsIDg1LCAyMzMsIDg1LCAyNTAsIDM1LCA4NSwgCisgICAgMjMxLCA4MiwgMjQ3LCAyNDgsIDcxLCAyMzEsIDgyLCAyNDcsIDI0OCwgODUsIDIzMSwgODIsIDIzMiwgMTA0LCA3MSwgMjMxLCAKKyAgICA4MiwgMjMyLCAxMDQsIDg1LCA0LCAyNDcsIDI0OCwgODUsIDQsIDIzMiwgMTA0LCA3MSwgNCwgMjMyLCAxMDQsIDg1LCAyMDMsIAorICAgIDI0NSwgMTY0LCA3MSwgMjAzLCAyNDUsIDE2NCwgODUsIDY3LCAyNDUsIDE2NCwgNzEsIDY3LCAyNDUsIDE2NCwgNDMsIDgwLCAKKyAgICAyLCA0LCAyNTAsIDM1LCAxMzQsIDE0MCwgMjUzLCAyNDcsIDQzLCA4MCwgMiwgMzcsIDIyNSwgMjIsIDE5OSwgMTQwLCAyMTgsIAorICAgIDIzMCwgNzQsIDE0MCwgMjE1LCA1OCwgODAsIDIsIDY3LCA5MSwgMTQwLCAyMTUsIDU4LCA4MCwgMiwgNTIsIDY3LCA5MSwgCisgICAgMTQwLCAyMTUsIDU4LCA4MCwgMjQzLCAyNDMsIDEzMCwgMTQwLCAyMTUsIDU4LCAyMTUsIDIxMSwgMjQ4LCAxNTcsIDc0LCAKKyAgICAxNDAsIDgwLCAyLCAyNDYsIDExOCwgMjE4LCAxMzksIDE0MCwgODAsIDIsIDIxNywgNzgsIDIsIDY3LCA5MSwgMTQwLCA4MCwgCisgICAgMiwgMjE3LCA3OCwgMiwgNTIsIDY3LCA5MSwgMTQwLCAyMTUsIDU4LCA4MCwgMiwgMjE3LCA3NywgMTQwLCAyMTUsIDU4LCAKKyAgICA4MCwgMiwgMjE3LCA3OCwgMiwgNjcsIDkxLCAxNDAsIDIxNSwgNTgsIDgwLCAyLCAyMTcsIDc4LCAyLCA1MiwgNjcsIDkxLCAKKyAgICAxNDAsIDgwLCAyMTYsIDEzOSwgMjExLCAxNzgsIDIxMiwgMzYsIDgwLCAyMjUsIDcsIDI0NywgMTk1LCAyMzMsIDQ2LCAyNDUsIAorICAgIDk4LCA1LCA3NywgMTQwLCA3NCwgMjIzLCA1MCwgMjE2LCA4OSwgMjI2LCAxNjgsIDc3LCAxNDAsIDc0LCAxNDAsIDgwLCA3NywgCisgICAgMjIzLCA1MCwgMjU0LCAxNDgsIDEyOCwgMTExLCA5NywgODAsIDIxNiwgMTM5LCAyNDIsIDEyOSwgOTcsIDgwLCAyMTYsIAorICAgIDEzOSwgMjE4LCAyMSwgMTQwLCAyMjQsIDI0LCA3NCwgOTcsIDIyNCwgMjQsIDc0LCAyMjMsIDUwLCAyMTYsIDg5LCAyMjYsIAorICAgIDE2OCwgNzcsIDk3LCA3NCwgOTcsIDgwLCA3NywgMjIzLCA1MCwgMjU0LCAxNDgsIDEyOCwgMTExLCAyMTYsIDg5LCAyMjYsIAorICAgIDE2OCwgNzcsIDE0MCwgNzQsIDE0MCwgODAsIDc3LCAyNTQsIDE0OCwgMTI4LCAxMTEsIDE0MCwgODAsIDc3LCAyMjMsIDUwLCAKKyAgICAyMTYsIDg5LCAyMjYsIDE2NywgOTcsIDgwLCA3NywgMjIzLCA1MCwgMjE2LCA4OSwgMjI2LCAxNjcsIDcxLCAyMzEsIDgyLCAKKyAgICAyMTgsIDE1NiwgODUsIDQsIDIxOCwgMTU2LCA3MSwgNCwgMjE4LCAxNTYsIDg1LCAyMjIsIDI0NywgMjI1LCAxOTAsIDcxLCAKKyAgICAyMjIsIDI0NywgMjI1LCAxOTAsIDExNCwgMjMzLCA4NSwgMjUwLCAzNSwgMTE0LCAyMjYsIDEyNCwgMiwgMjI2LCAxMjQsIAorICAgIDIzNSwgMjE1LCAxMTQsIDI1MCwgMzYsIDIsIDI1MCwgMzYsIDIzNSwgMjE1LCAxMTQsIDI1MCwgMzUsIDExNCwgMzcsIDIyMSwgCisgICAgMjU0LCAxNDUsIDYsIDEsIDI1MywgMTU5LCAxNDUsIDYsIDEsIDI1MSwgMTE3LCAxNDUsIDYsIDEsIDIxMywgMjUzLCAxNDUsIAorICAgIDYsIDEsIDI0MiwgMTg1LCAxNDUsIDYsIDEsIDI0NywgMTQwLCAxNDUsIDYsIDEsIDIxMSwgMjEsIDE0NSwgNiwgMSwgMjEwLCAKKyAgICA2OCwgMTQ1LCA2LCAxLCAyNDYsIDM0LCAxNDUsIDYsIDEsIDIxMCwgOTEsIDE0NSwgNiwgMSwgMjM1LCAxNDgsIDE0NSwgNiwgCisgICAgMSwgNjUsIDIzNSwgMTQ4LCAxNDUsIDYsIDEsIDczLCAxNDUsIDYsIDEsIDI0NywgMTYwLCAxNDUsIDYsIDEsIDIzNCwgMjQwLCAKKyAgICAxNDUsIDYsIDEsIDIzMiwgMTg2LCAxNDUsIDYsIDEsIDIzMCwgMjksIDE0NSwgNiwgMSwgMjI5LCAxOTEsIDE0NSwgNiwgMSwgCisgICAgMjI2LCAxODUsIDE0NSwgNiwgMSwgMjI1LCA0LCAxNDUsIDYsIDEsIDIyMiwgMjI3LCAxNDUsIDYsIDEsIDIxOSwgODMsIAorICAgIDE0NSwgNiwgMSwgMjE1LCA4MSwgMTQ1LCA2LCAxLCAyMTQsIDIwMSwgMTQ1LCA2LCAxLCAyNDMsIDI0NiwgMTQ1LCA2LCAxLCAKKyAgICAyNDEsIDE5OSwgMTQ1LCA2LCAxLCAyMjYsIDEzNSwgMTQ1LCA2LCAxLCAyMjUsIDIyMSwgMTQ1LCA2LCAxLCAyMTksIDIyOCwgCisgICAgMTQ1LCA2LCAxLCAyMTUsIDE2NywgMTQ1LCA2LCAxLCAyNTAsIDc1LCAxNDUsIDYsIDEsIDIyMCwgMTAyLCAxNDUsIDYsIDEsIAorICAgIDIxMSwgMjcsIDE0NSwgNiwgMSwgMjExLCAyOSwgMTQ1LCA2LCAxLCAyMTEsIDU3LCAxNDUsIDYsIDEsIDIxOCwgMjUzLCAKKyAgICAxNjIsIDE0NSwgNiwgMSwgMjEwLCAyMTIsIDE0NSwgNiwgMSwgNCwgMjEwLCAxODMsIDE0NSwgNiwgMSwgNCwgMjEwLCAxODQsIAorICAgIDIsIDIxNywgNzcsIDE0NSwgNiwgMSwgMjEwLCAyNDQsIDE0NSwgNiwgMSwgMjM1LCAxODQsIDQsIDIxMCwgMTgzLCAxNDUsIAorICAgIDYsIDEsIDI1MSwgMjQ5LCAyMTAsIDE4MywgMTQ1LCA2LCAxLCAyMzUsIDE4NCwgMjUxLCAyNDksIDIxMCwgMTgzLCAxNDUsIAorICAgIDYsIDEsIDI0NCwgODIsIDE0NSwgNiwgMSwgMjM1LCAxNDYsIDE0NSwgNiwgMSwgMjE5LCAyMjcsIDE0NSwgNiwgMSwgMjE1LCAKKyAgICAyMDIsIDYxLCAxNDUsIDYsIDEsIDIzMywgNzUsIDIzMCwgMjksIDE0NSwgNCwgMSwgMjUzLCAxNTksIDE0NSwgNCwgMSwgCisgICAgMjUxLCAxMTcsIDE0NSwgNCwgMSwgMjEzLCAyNTMsIDE0NSwgNCwgMSwgMjQyLCAxODUsIDE0NSwgNCwgMSwgMjQ3LCAxNDAsIAorICAgIDE0NSwgNCwgMSwgMjExLCAyMSwgMTQ1LCA0LCAxLCAyMTAsIDY4LCAxNDUsIDQsIDEsIDI0NiwgMzQsIDE0NSwgNCwgMSwgCisgICAgMjEwLCA5MSwgMTQ1LCA0LCAxLCAyMzUsIDE0OCwgMTQ1LCA0LCAxLCA2NSwgMjM1LCAxNDgsIDE0NSwgNCwgMSwgNzMsIAorICAgIDE0NSwgNCwgMSwgMjQ3LCAxNjAsIDE0NSwgNCwgMSwgMjM0LCAyNDAsIDE0NSwgNCwgMSwgMjMyLCAxODYsIDE0NSwgNCwgMSwgCisgICAgMjMwLCAyOSwgMTQ1LCA0LCAxLCAyMjksIDE5MSwgMTQ1LCA0LCAxLCAyMjYsIDE4NSwgMTQ1LCA0LCAxLCAyMjUsIDQsIAorICAgIDE0NSwgNCwgMSwgMjIyLCAyMjcsIDE0NSwgNCwgMSwgMjE5LCA4MywgMTQ1LCA0LCAxLCAyMTUsIDgxLCAxNDUsIDQsIDEsIAorICAgIDIxNCwgMjAxLCAxNDUsIDQsIDEsIDI0MywgMjQ2LCAxNDUsIDQsIDEsIDI0MSwgMTk5LCAxNDUsIDQsIDEsIDIyNiwgMTM1LCAKKyAgICAxNDUsIDQsIDEsIDIyNSwgMjIxLCAxNDUsIDQsIDEsIDIxOSwgMjI4LCAxNDUsIDQsIDEsIDIxNSwgMTY3LCAxNDUsIDQsIDEsIAorICAgIDI1MCwgNzUsIDE0NSwgNCwgMSwgMjIwLCAxMDIsIDE0NSwgNCwgMSwgMjExLCAyNywgMTQ1LCA0LCAxLCAyMTEsIDI5LCAKKyAgICAxNDUsIDQsIDEsIDIxMSwgNTcsIDE0NSwgNCwgMSwgMjE4LCAyNTMsIDE2MiwgMTQ1LCA0LCAxLCAyMTAsIDIxMiwgMTQ1LCAKKyAgICA0LCAxLCA0LCAyMTAsIDE4MywgMTQ1LCA0LCAxLCA0LCAyMTAsIDE4NCwgMiwgMjE3LCA3NywgMTQ1LCA0LCAxLCAyMTAsIAorICAgIDI0NCwgMTQ1LCA0LCAxLCAyMzUsIDE4NCwgNCwgMjEwLCAxODMsIDE0NSwgNCwgMSwgMjUxLCAyNDksIDIxMCwgMTgzLCAKKyAgICAxNDUsIDQsIDEsIDIzNSwgMTg0LCAyNTEsIDI0OSwgMjEwLCAxODMsIDE0NSwgNCwgMSwgMjQ0LCA4MiwgMTQ1LCA0LCAxLCAKKyAgICAyMzUsIDE0NiwgMTQ1LCA0LCAxLCAyMTksIDIyNywgMTQ1LCA0LCAxLCAyMTUsIDIwMiwgNjEsIDE0NSwgNCwgMSwgMjMzLCAKKyAgICA3NSwgMjMwLCAyOSwgNywgNiwgMSwgMjMzLCAxNDksIDIsIDUyLCAxMzAsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCA1MiwgCisgICAgMTMwLCA3LCA2LCAxLCAyMzMsIDE0OSwgMiwgMjMwLCAyMjQsIDE4MiwgNywgNiwgMSwgMjI2LCAxMDYsIDIsIDkxLCA3LCA2LCAKKyAgICAxLCAyMjMsIDIyNCwgMiwgMjE3LCA3NywgNywgNCwgMSwgMTE1LCAyLCA5MSwgNywgNCwgMSwgMjE3LCAxNTMsIDIsIDI0NywgCisgICAgMjU1LCA5MSwgNywgNiwgMSwgMjQyLCA2MSwgMiwgMjQ4LCAzOSwgNywgNCwgMSwgMjQyLCA2MSwgMiwgMjQ4LCAzOSwgNywgCisgICAgNiwgMSwgMjM1LCAyNCwgMiwgMjQ4LCAzOSwgNywgNCwgMSwgMjM1LCAyNCwgMiwgMjQ4LCAzOSwgNywgNiwgMSwgMjEwLCAKKyAgICAxNjAsIDIsIDI0OCwgMzksIDcsIDQsIDEsIDIxMCwgMTYwLCAyLCAyNDgsIDM5LCA3LCA2LCAxLCAyNTQsIDE0MywgNywgNiwgCisgICAgMSwgMjMyLCA1MCwgMiwgMTAzLCA3LCA2LCAxLCAyMTUsIDk0LCA2MSwgNywgNiwgMSwgMjE1LCA5NCwgMjU0LCAxNDMsIDcsIAorICAgIDQsIDEsIDIxNCwgMTA2LCAyLCA0NCwgMTAzLCA3LCA2LCAxLCAyMTIsIDk5LCAyLCAxMDMsIDcsIDQsIDEsIDIxMiwgOTksIAorICAgIDIsIDEwMywgNywgNCwgMSwgMjE0LCAxMDYsIDIsIDI0OSwgMTAwLCA3LCA2LCAxLCAxNjMsIDI0MiwgNjAsIDcsIDQsIDEsIAorICAgIDE2MywgMjQyLCA2MCwgNywgNCwgMSwgMjE3LCA3NSwgMjI1LCAxMzMsIDcsIDQsIDEsIDE2MCwgMiwgMjI4LCA1MCwgNywgNCwgCisgICAgMSwgMjE1LCA5NCwgMjIzLCAyMjQsIDIsIDIxNywgNzcsIDcsIDQsIDEsIDE0NCwgMiwgMTIxLCAyMjIsIDIzNCwgMjM1LCAKKyAgICAyMTUsIDcsIDEsIDQsIDYsIDIxNSwgOTQsIDc1LCA3LCAyMTgsIDY1LCA0LCAxLCAyMzUsIDE0NCwgNTgsIDEsIDYsIDIxNCwgCisgICAgMTA1LCA3LCA2LCAxLCAyMjIsIDkyLCAyLCAyMTcsIDI1MCwgMjE3LCA3NywgNywgNiwgMSwgMjEwLCAxNjAsIDIsIDIxNywgCisgICAgMjUwLCAyMTcsIDc3LCA4MSwgNiwgMSwgMjU0LCAxNjQsIDgxLCA0LCAxLCAyNTQsIDE2NCwgODEsIDYsIDEsIDIxMywgMTczLCAKKyAgICA4MSwgNCwgMSwgMjEzLCAxNzMsIDgxLCA2LCAxLCAyNDMsIDEwNywgODEsIDQsIDEsIDI0MywgMTA3LCA4MSwgNiwgMSwgCisgICAgMjQ4LCAxOTEsIDgxLCA0LCAxLCAyNDgsIDE5MSwgODEsIDYsIDEsIDI0NSwgMTk0LCA4MSwgNCwgMSwgMjQ1LCAxOTQsIDgxLCAKKyAgICA2LCAxLCAyMTksIDMzLCA4MSwgNCwgMSwgMjE5LCAzMywgODEsIDYsIDEsIDIxMCwgMTAxLCA4MSwgNCwgMSwgMjEwLCAxMDEsIAorICAgIDgxLCA2LCAxLCAyNDEsIDI0OCwgODEsIDQsIDEsIDI0MSwgMjQ4LCA4MSwgNiwgMSwgMjE2LCAxNzcsIDgxLCA0LCAxLCAKKyAgICAyMTYsIDE3NywgODEsIDYsIDEsIDI0MCwgMTE2LCA4MSwgNCwgMSwgMjQwLCAxMTYsIDgxLCA2LCAxLCAyMzQsIDIyNywgODEsIAorICAgIDQsIDEsIDIzNCwgMjI3LCA4MSwgNiwgMSwgMjMzLCA3MiwgODEsIDQsIDEsIDIzMywgNzIsIDgxLCA2LCAxLCAyMzAsIDIzMCwgCisgICAgODEsIDQsIDEsIDIzMCwgMjMwLCA4MSwgNiwgMSwgMjI4LCAyMzMsIDgxLCA0LCAxLCAyMjgsIDIzMywgODEsIDYsIDEsIAorICAgIDIzMywgMjMzLCA4MSwgNCwgMSwgMjMzLCAyMzMsIDgxLCA2LCAxLCA3NiwgODEsIDQsIDEsIDc2LCA4MSwgNiwgMSwgMjI1LCAKKyAgICAxMDgsIDgxLCA0LCAxLCAyMjUsIDEwOCwgODEsIDYsIDEsIDIyMiwgMjExLCA4MSwgNCwgMSwgMjIyLCAyMTEsIDgxLCA2LCAKKyAgICAxLCAyMTksIDE2NSwgODEsIDQsIDEsIDIxOSwgMTY1LCA4MSwgNiwgMSwgMjE3LCA0MSwgODEsIDQsIDEsIDIxNywgNDEsIAorICAgIDgxLCA2LCAxLCAyMTQsIDIyOSwgODEsIDQsIDEsIDIxNCwgMjI5LCA4MSwgNiwgMSwgMjQ0LCAxMjEsIDgxLCA0LCAxLCAKKyAgICAyNDQsIDEyMSwgODEsIDYsIDEsIDIzNCwgMTEyLCA4MSwgNCwgMSwgMjM0LCAxMTIsIDgxLCA2LCAxLCAyMjQsIDE2MSwgODEsIAorICAgIDQsIDEsIDIyNCwgMTYxLCA4MSwgNiwgMSwgMjI2LCAxNzgsIDgxLCA0LCAxLCAyMjYsIDE3OCwgODEsIDYsIDEsIDI0NywgCisgICAgMjUzLCAyNTQsIDE3MCwgODEsIDQsIDEsIDI0NywgMjUzLCAyNTQsIDE3MCwgODEsIDYsIDEsIDU1LCA4MSwgMjU0LCAxOTYsIAorICAgIDgxLCA0LCAxLCA1NSwgODEsIDI1NCwgMTk2LCA4MSwgNiwgMSwgMjQ5LCAxMTUsIDI0NSwgMTk0LCA4MSwgNCwgMSwgMjQ5LCAKKyAgICAxMTUsIDI0NSwgMTk0LCA4MSwgNiwgMSwgMjQ3LCAyNTMsIDIzNCwgMjI3LCA4MSwgNCwgMSwgMjQ3LCAyNTMsIDIzNCwgCisgICAgMjI3LCA4MSwgNiwgMSwgMjQ3LCAyNTMsIDIyOCwgMjMzLCA4MSwgNCwgMSwgMjQ3LCAyNTMsIDIyOCwgMjMzLCA4MSwgNiwgCisgICAgMSwgMjQ5LCAxMTUsIDIyOCwgMjMzLCA4MSwgNCwgMSwgMjQ5LCAxMTUsIDIyOCwgMjMzLCA4MSwgNiwgMSwgNTUsIDgxLCAKKyAgICAyMjYsIDE3OCwgODEsIDQsIDEsIDU1LCA4MSwgMjI2LCAxNzgsIDgxLCA2LCAxLCAyMjEsIDI0NiwgODEsIDQsIDEsIDIyMSwgCisgICAgMjQ2LCA4MSwgNiwgMSwgMjQ5LCAxMjgsIDIyMCwgNTUsIDgxLCA0LCAxLCAyNDksIDEyOCwgMjIwLCA1NSwgODEsIDYsIDEsIAorICAgIDU1LCA4MSwgMjIwLCA1NSwgODEsIDQsIDEsIDU1LCA4MSwgMjIwLCA1NSwgODEsIDYsIDEsIDU1LCA4MSwgMjQ1LCA3NSwgCisgICAgODEsIDQsIDEsIDU1LCA4MSwgMjQ1LCA3NSwgODEsIDYsIDEsIDI1NCwgMTgyLCAyMzQsIDExNywgODEsIDQsIDEsIDI1NCwgCisgICAgMTgyLCAyMzQsIDExNywgODEsIDYsIDEsIDI0NywgMjUzLCAyNDEsIDQ1LCA4MSwgNCwgMSwgMjQ3LCAyNTMsIDI0MSwgNDUsIAorICAgIDgxLCA2LCAxLCA1NSwgODEsIDI0MSwgNDUsIDgxLCA0LCAxLCA1NSwgODEsIDI0MSwgNDUsIDgxLCA2LCAxLCA1NSwgODEsIAorICAgIDE2MiwgODEsIDQsIDEsIDU1LCA4MSwgMTYyLCA4MSwgNiwgMSwgMjMzLCAxNDgsIDE2MiwgODEsIDQsIDEsIDIzMywgMTQ4LCAKKyAgICAxNjIsIDgxLCA2LCAxLCA1NSwgODEsIDI0MSwgMjE3LCA4MSwgNCwgMSwgNTUsIDgxLCAyNDEsIDIxNywgODEsIDYsIDEsIAorICAgIDU1LCA4MSwgMjQxLCAyNTEsIDgxLCA0LCAxLCA1NSwgODEsIDI0MSwgMjUxLCA4MSwgNiwgMSwgNTUsIDgxLCAyNDMsIDEwMiwgCisgICAgODEsIDQsIDEsIDU1LCA4MSwgMjQzLCAxMDIsIDgxLCA2LCAxLCA1NSwgODEsIDI0NywgMTYzLCA4MSwgNCwgMSwgNTUsIDgxLCAKKyAgICAyNDcsIDE2MywgODEsIDYsIDEsIDU1LCA4MSwgMjIwLCAyMiwgODEsIDQsIDEsIDU1LCA4MSwgMjIwLCAyMiwgODEsIDYsIDEsIAorICAgIDU1LCAyMjcsIDIwOCwgMjIwLCAyMiwgODEsIDQsIDEsIDU1LCAyMjcsIDIwOCwgMjIwLCAyMiwgODEsIDYsIDEsIDU1LCAKKyAgICAyMjcsIDIwOCwgMjI5LCAyNywgODEsIDQsIDEsIDU1LCAyMjcsIDIwOCwgMjI5LCAyNywgODEsIDYsIDEsIDU1LCAyMjcsIAorICAgIDIwOCwgMjI3LCAxNDgsIDgxLCA0LCAxLCA1NSwgMjI3LCAyMDgsIDIyNywgMTQ4LCA4MSwgNiwgMSwgNTUsIDIyNywgMjA4LCAKKyAgICAyMTIsIDM3LCA4MSwgNCwgMSwgNTUsIDIyNywgMjA4LCAyMTIsIDM3LCA4MSwgMTYsIDIzNCwgMjQ2LCA4MSwgMTYsIDIzMCwgCisgICAgMjMxLCAyMjIsIDIxMSwgODEsIDE2LCAyMjUsIDEwOSwgMjIyLCAyMTEsIDgxLCAxNiwgMjE4LCAxNDcsIDgxLCAxNiwgMjE3LCAKKyAgICA0MiwgMjIyLCAyMTEsIDgxLCAxNiwgMjM0LCAxMTMsIDIyMiwgMjExLCA4MSwgMTYsIDIyMCwgMjMsIDIxOSwgMTY1LCA4MSwgCisgICAgNiwgMSwgMjQ5LCAxMTUsIDIyMCwgNTUsIDgxLCA0LCAxLCAyNDksIDExNSwgMjIwLCA1NSwgODEsIDYsIDEsIDI0OSwgMTE1LCAKKyAgICAyNDMsIDEwMiwgODEsIDQsIDEsIDI0OSwgMTE1LCAyNDMsIDEwMiwgODEsIDM4LCAyMjgsIDIzNCwgNDgsIDgxLCAzOCwgCisgICAgMjE4LCAyNDcsIDI1MywgMjI0LCA4MSwgMzgsIDIxOCwgMjQ3LCAyMzMsIDIxLCA4MSwgNiwgMSwgMjUxLCAxOTksIDIzNCwgCisgICAgMTE3LCA4MSwgNCwgMSwgMjUxLCAxOTksIDIzNCwgMTE3LCA4MSwgNTUsIDIyNywgMjA4LCAyNDMsIDIyOSwgMjE4LCAxMjksIAorICAgIDgxLCA1NSwgMjI3LCAyMDgsIDI0NywgMTk3LCAyMjQsIDEzLCA3OCwgODEsIDU1LCAyMjcsIDIwOCwgMjM1LCAyMzcsIDIyNCwgCisgICAgMTMsIDc4LCA4MSwgNTUsIDIyNywgMjA4LCAyMTMsIDI0MSwgMjQ3LCAxNzIsIDgxLCAyNDQsIDIsIDEyMywgMjQyLCAyNywgCisgICAgODEsIDI0MywgMjI5LCAyMTgsIDEyOSwgODEsIDIzMCwgMTI0LCAyNDcsIDE3MiwgOTgsIDQsIDEsIDI1NCwgMTIzLCA5OCwgCisgICAgNCwgMSwgMjUyLCAxNTIsIDk4LCA0LCAxLCAyNDMsIDEwNiwgOTgsIDQsIDEsIDI0NywgMTI4LCA5OCwgNCwgMSwgMjQ1LCAKKyAgICAxNTAsIDk4LCA0LCAxLCAyMTMsIDE2MCwgOTgsIDQsIDEsIDIxMCwgODksIDk4LCA0LCAxLCAyMTcsIDYwLCA5OCwgNCwgMSwgCisgICAgMjM1LCAyNTUsIDk4LCA0LCAxLCAyMzQsIDIzNCwgOTgsIDQsIDEsIDIzMywgODEsIDk4LCA0LCAxLCAyMzEsIDE4NSwgOTgsIAorICAgIDQsIDEsIDIyOSwgMTk1LCA5OCwgNCwgMSwgMjI2LCAxOTYsIDk4LCA0LCAxLCAyMjYsIDE3LCA5OCwgNCwgMSwgMjEwLCA3OCwgCisgICAgOTgsIDQsIDEsIDIyMywgMTcxLCA5OCwgNCwgMSwgMjIxLCAyNDMsIDk4LCA0LCAxLCAyMTcsIDUwLCA5OCwgNCwgMSwgMjE0LCAKKyAgICAxOTAsIDk4LCA0LCAxLCAyMjUsIDE0MCwgOTgsIDQsIDEsIDIzNCwgMTIxLCA5OCwgNCwgMSwgMjQyLCAyNDEsIDk4LCA0LCAKKyAgICAxLCAyMjQsIDczLCA5OCwgNCwgMSwgMjIwLCAyMCwgOTgsIDQsIDEsIDI1MCwgOTcsIDk4LCA0LCAxLCAyNTEsIDcsIDk4LCAKKyAgICA0LCAxLCAyMzUsIDEwMCwgOTgsIDQsIDEsIDI1MCwgNDAsIDk4LCA0LCAxLCAyNTAsIDE0MywgOTgsIDQsIDEsIDIxMSwgCisgICAgMTYzLCA5OCwgNCwgMSwgMjM1LCAxMTEsIDk4LCA0LCAxLCAyNDIsIDQzLCA5OCwgNCwgMSwgMjQxLCAyMzgsIDk4LCA0LCAxLCAKKyAgICAyNDEsIDE3NSwgOTgsIDQsIDEsIDIxMiwgMjIsIDk4LCA0LCAxLCAyNDIsIDQsIDk4LCA0LCAxLCAyNDEsIDY1LCA5OCwgNCwgCisgICAgMSwgMjEwLCAyNDYsIDk4LCA0LCAxLCAyNTQsIDIzMiwgMjE2LCAxMDgsIDEsIDE5MSwgMjE2LCAxMDgsIDEsIDIxMSwgOTksIAorICAgIDIxNiwgMTA4LCAxLCAyMTEsIDk4LCAyMTYsIDEwOCwgMSwgMjExLCA4OCwgMjE2LCAxMDgsIDEsIDIxMSwgODYsIDIxNiwgCisgICAgMTA4LCAxLCAyNTIsIDMyLCAyNTUsIDE2LCAyMTEsIDgxLCAyMTYsIDEwOCwgMSwgMjExLCA4MSwgMjE2LCAxMDgsIDEsIAorICAgIDIxMSwgOTYsIDIxNiwgMTA4LCAxLCAyMTEsIDkzLCAyMTYsIDEwOCwgMSwgMjExLCA5NSwgMjE2LCAxMDgsIDEsIDIxMSwgCisgICAgOTQsIDIxNiwgMTA4LCAxLCAyMTEsIDEyLCAyMTYsIDEwOCwgMSwgMjExLCA5MCwgMjE2LCAxMDgsIDEsIDIxMSwgNzksIAorICAgIDIxNiwgMTA4LCAxLCAyMTUsIDExNSwgMjExLCA3OSwgMjE2LCAxMDgsIDEsIDIxMSwgNzYsIDIxNiwgMTA4LCAxLCAyMTEsIAorICAgIDg0LCAyMTYsIDEwOCwgMSwgMjUyLCAzMiwgMjU1LCAxNiwgMjExLCA4NCwgMjE2LCAxMDgsIDEsIDIxNSwgMTE1LCAyMTEsIAorICAgIDg0LCAyMTYsIDEwOCwgMSwgMjExLCA4MywgMjE2LCAxMDgsIDEsIDIxMSwgMTAzLCAyMTYsIDEwOCwgMSwgMjExLCA3NywgCisgICAgMjE2LCAxMDgsIDEsIDIxNSwgMTE1LCAyMTEsIDc3LCAyMTYsIDEwOCwgMSwgMjExLCA2NiwgMjE2LCAxMDgsIDEsIDIxNSwgCisgICAgMTE1LCAyMTEsIDY2LCAyMTYsIDEwOCwgMSwgMjExLCA4LCAyMTYsIDEwOCwgMSwgMjExLCA0OSwgMjE2LCAxMDgsIDEsIAorICAgIDI1NCwgMjA3LCAyMTEsIDQ5LCAyMTYsIDEwOCwgMSwgMjE1LCAxMTUsIDIxMSwgNDksIDIxNiwgMTA4LCAxLCAyMTEsIDc1LCAKKyAgICAyMTYsIDEwOCwgMSwgMjExLCA3NCwgMjE2LCAxMDgsIDEsIDIxMSwgNzEsIDIxNiwgMTA4LCAxLCAyMTUsIDExNSwgMjExLCAKKyAgICA4NSwgMjE2LCAxMDgsIDEsIDIxNSwgMTE1LCAyMTEsIDY5LCAyMTYsIDEwOCwgMSwgMjExLCA2NywgMjE2LCAxMDgsIDEsIAorICAgIDIxMCwgMjEyLCAyMTYsIDEwOCwgMSwgMjExLCA2NCwgMjE2LCAxMDgsIDEsIDIxMSwgNjMsIDIxNiwgMTA4LCAxLCAyMTEsIAorICAgIDg3LCAyMTYsIDEwOCwgMSwgMjE1LCAxMTUsIDIxMSwgODcsIDIxNiwgMTA4LCAxLCAyNTMsIDE2MywgMjExLCA4NywgMjE2LCAKKyAgICAxMDgsIDEsIDIxMSwgNjIsIDIxNiwgMTA4LCAxLCAyMTEsIDYwLCAyMTYsIDEwOCwgMSwgMjExLCA2MSwgMjE2LCAxMDgsIDEsIAorICAgIDIxMSwgNTksIDIxNiwgMTA4LCAxLCAyMTEsIDU4LCAyMTYsIDEwOCwgMSwgMjExLCA5NywgMjE2LCAxMDgsIDEsIDIxMSwgCisgICAgNTYsIDIxNiwgMTA4LCAxLCAyMTEsIDU0LCAyMTYsIDEwOCwgMSwgMjExLCA1MywgMjE2LCAxMDgsIDEsIDIxMSwgNTIsIAorICAgIDIxNiwgMTA4LCAxLCAyMTEsIDUwLCAyMTYsIDEwOCwgMSwgMjE3LCAzNCwgMjExLCA1MCwgMjE2LCAxMDgsIDEsIDIxMSwgCisgICAgNDgsIDIxNiwgMTA4LCAxLCAyMTEsIDQ3LCAyMTYsIDEwOCwgMSwgMjEwLCAyNDQsIDIxNiwgMTA4LCA1OCwgMSwgMjMzLCAKKyAgICAxMjYsIDc4LCAyMTYsIDEwOCwgMjIwLCAxMzgsIDc4LCAyMTYsIDEwOCwgMTE2LCAyMzUsIDYzLCAyOSwgMywgMjMyLCAxNTUsIAorICAgIDI5LCAzLCAyMzAsIDE2MCwgMjksIDMsIDIyMiwgMjA5LCAyOSwgMywgMjE5LCA1NywgMjksIDMsIDIyMCwgNiwgMjksIDMsIAorICAgIDI1MSwgMjA0LCAyOSwgMywgMjE2LCA0MSwgMjksIDMsIDI0OSwgMjM3LCAyOSwgMywgMjI4LCA3MiwgMjksIDMsIDIyNywgCisgICAgMTMzLCAyOSwgMywgMjQyLCAxODAsIDIyNywgMCwgMjksIDMsIDIxMCwgMjIsIDI5LCAzLCAyNDcsIDE0MywgMjksIDMsIAorICAgIDI0OCwgMTA0LCAyOSwgMywgMjM1LCA2NywgMjksIDMsIDIxNiwgMTU1LCAyOSwgMywgMjUwLCA4NSwgMjksIDMsIDIyNSwgCisgICAgMTIwLCAyOSwgMywgMjI1LCAxNSwgMjksIDMsIDI0MiwgMjU1LCAyOSwgMywgMjQyLCAyNTEsIDI5LCAzLCAyNDIsIDI1MiwgCisgICAgMjksIDMsIDI0MiwgMjUzLCAyOSwgMywgMjE4LCAyMjMsIDI5LCAzLCAyMTgsIDE3OSwgMjksIDMsIDIxOCwgMTkyLCAyOSwgCisgICAgMywgMjE4LCAyMjIsIDI5LCAzLCAyMTgsIDE5NiwgMjksIDMsIDIxOCwgMTk3LCAyOSwgMywgMjE4LCAxODQsIDI5LCAzLCAKKyAgICAyNTAsIDIxMywgMjksIDMsIDI1MCwgMTkyLCAyOSwgMywgMjUwLCAxOTQsIDI5LCAzLCAyNTAsIDIxMiwgMjksIDMsIDI1MCwgCisgICAgMjEwLCAyOSwgMywgMjUwLCAyMTEsIDI5LCAzLCAyNTAsIDE5MywgMjksIDMsIDIwOSwgMjQzLCAyOSwgMywgMjA5LCAyMjEsIAorICAgIDI5LCAzLCAyMDksIDIzNCwgMjksIDMsIDIwOSwgMjQyLCAyOSwgMywgMjA5LCAyMzcsIDI5LCAzLCAyMDksIDIzOCwgMjksIAorICAgIDMsIDIwOSwgMjI2LCAyOSwgMywgMjUwLCAyMDgsIDI5LCAzLCAyNTAsIDE5NSwgMjksIDMsIDI1MCwgMTk3LCAyOSwgMywgCisgICAgMjUwLCAyMDcsIDI5LCAzLCAyNTAsIDIwNSwgMjksIDMsIDI1MCwgMjA2LCAyOSwgMywgMjUwLCAxOTYsIDI5LCAzLCAyMjMsIAorICAgIDIzNiwgMjksIDMsIDIyMywgMjI2LCAyOSwgMywgMjIzLCAyMzIsIDI5LCAzLCAyMjMsIDIzNSwgMjksIDMsIDIyMywgMjMzLCAKKyAgICAyOSwgMywgMjIzLCAyMzQsIDI5LCAzLCAyMjMsIDIzMSwgMjksIDMsIDIzMywgMTU5LCAyOSwgMywgMjMzLCAxNTEsIDI5LCAKKyAgICAzLCAyMzMsIDE1NCwgMjksIDMsIDIzMywgMTU4LCAyOSwgMywgMjMzLCAxNTUsIDI5LCAzLCAyMzMsIDE1NiwgMjksIDMsIAorICAgIDIzMywgMTUyLCAyOSwgMywgMjExLCAxMzAsIDI5LCAzLCAyMTEsIDEyMCwgMjksIDMsIDIxMSwgMTI2LCAyOSwgMywgMjExLCAKKyAgICAxMjksIDI5LCAzLCAyMTEsIDEyNywgMjksIDMsIDIxMSwgMTI4LCAyOSwgMywgMjExLCAxMjUsIDI5LCAzLCAyNDIsIDcxLCAKKyAgICAyOSwgMywgMjQyLCA2MiwgMjksIDMsIDI0MiwgNjUsIDI5LCAzLCAyNDIsIDcwLCAyOSwgMywgMjQyLCA2NywgMjksIDMsIAorICAgIDI0MiwgNjgsIDI5LCAzLCAyNDIsIDY0LCAzOCwgMzMsIDEsIDI1MiwgNzUsIDM4LCAzMywgMSwgMjEzLCAyNTUsIDM4LCAzMywgCisgICAgMSwgMjQyLCAyMzYsIDM4LCAzMywgMSwgMjQ4LCA5MCwgMzgsIDMzLCAxLCAyMTAsIDc0LCAzOCwgMzMsIDEsIDIxMCwgOTQsIAorICAgIDM4LCAzMywgMSwgMTc2LCAzOCwgMzMsIDEsIDI0NSwgMTc0LCAzOCwgMzMsIDEsIDI0NSwgMTU5LCAzOCwgMzMsIDEsIDI0NSwgCisgICAgMTUwLCAzOCwgMzMsIDEsIDc2LCAzOCwgMzMsIDEsIDIyNSwgMjIxLCAzOCwgMzMsIDEsIDI0NSwgOTIsIDM4LCAzMywgMSwgCisgICAgMjQ1LCA4MiwgMzgsIDMzLCAxLCAyMTcsIDIyLCAzOCwgMzMsIDEsIDE2MiwgMzgsIDMzLCAxLCAyMTUsIDE3OCwgMzgsIDMzLCAKKyAgICAxLCAyNTAsIDEzMSwgMzgsIDMzLCAxLCAyMjAsIDEwMiwgMzgsIDMzLCAxLCAyMjAsIDY1LCAzOCwgMzMsIDEsIDI0NCwgODIsIAorICAgIDM4LCAzMywgMSwgMjQ1LCA4MSwgMzgsIDMzLCAxLCA2MSwgMzgsIDMzLCAxLCAyMzYsIDYwLCAzOCwgMzMsIDEsIDI0NywgCisgICAgMTYxLCAzOCwgMzMsIDEsIDIzMCwgMTQwLCAyMTQsIDIwNSwgMzgsIDMzLCAxLCAyMTEsIDU5LCAzOCwgMzMsIDEsIDIxMCwgCisgICAgMjEyLCAzOCwgMzMsIDEsIDIzNSwgMTgzLCA2MSwgMzgsIDMzLCAxLCAyMzIsIDE5MiwgMjEwLCAxODMsIDM4LCAzMywgMSwgCisgICAgMjUxLCAyNDksIDIxMCwgMTgzLCAzOCwgMzMsIDEsIDIzNSwgMTgzLCAyNTEsIDI0OSwgMjEwLCAxODMsIDQ0LCAyNTQsIAorICAgIDExMCwgMjE4LCA2MCwgMjMxLCAxNTQsIDQ0LCAyNTQsIDExMCwgMjQ2LCAxMTgsIDIxOCwgNjAsIDIzMSwgMTU0LCA0MywgCisgICAgMjE4LCA2MCwgMTI3LCA0NCwgMjE4LCA2MCwgMTI3LCA0MywgMjQ2LCAxMTgsIDIxOCwgNjAsIDEyNywgNDQsIDI0NiwgMTE4LCAKKyAgICAyMTgsIDYwLCAxMjcsIDIyMywgMTU3LCAyMzUsIDIwMiwgMjMxLCAxNTQsIDIyMywgMTU3LCAyNDYsIDExOCwgMjM1LCAyMDIsIAorICAgIDIzMSwgMTU0LCAyNDYsIDExOCwgMjE1LCAyNDEsIDIzMSwgMTU0LCA0MywgMjE1LCAyNDEsIDEyNywgNDQsIDIxNSwgMjQxLCAKKyAgICAxMjcsIDIyMywgMTU3LCAyMTgsIDIzNCwgNDMsIDIyMywgMTU3LCAyMjYsIDE5OCwgMTI3LCA0NCwgMjIzLCAxNTcsIDIyNiwgCisgICAgMTk4LCAxMjcsIDI0NSwgMjEwLCAyNDksIDE1OCwgMjI2LCAxMywgMjQ0LCAyMiwgMjI2LCAxMywgMjIzLCA0OSwgMjQ0LCAKKyAgICAyMiwgMjI2LCAxMywgMjQwLCAxNjUsIDI0NiwgMTE4LCAyMjYsIDI1MSwgMjQ2LCAxMDQsIDI1NCwgMTE5LCAyMTQsIDE1MywgCisgICAgMjU0LCAxMTksIDI0NiwgMTE4LCAyMjIsIDI0NywgMjU0LCAxMDksIDUyLCAyMjYsIDI0OCwgMjQwLCAxNjgsIDIzNSwgMTkzLCAKKyAgICAyMzUsIDIwMSwgMjI2LCA1OSwgMjUxLCAxNTQsIDI0MCwgMTY5LCAyLCAyNDgsIDEsIDIxNiwgODksIDIsIDIyMiwgMjM0LCAKKyAgICA0OCwgNDMsIDEyMSwgMjI2LCA1LCAxMjcsIDQ0LCAxMjEsIDIyNiwgNSwgMTI3LCAyMTYsIDg5LCAyLCA1OSwgNDgsIDIxNiwgCisgICAgODksIDIsIDU5LCA1MSwgNDMsIDY3LCAyNTIsIDE0MSwgMiwgMjI0LCA3LCA0NCwgNjcsIDI1MiwgMTQxLCAyLCAyMjQsIDcsIAorICAgIDIxNiwgMTQsIDQzLCAxNjMsIDEyNywgMjE2LCAxNCwgNDQsIDE2MywgMTI3LCAyNTEsIDE3NSwgNDMsIDE2MywgMTI3LCAKKyAgICAyNTEsIDE3NSwgNDQsIDE2MywgMTI3LCA0MywgMjE5LCAxODcsIDEwNCwgMTI3LCA0NCwgMjE5LCAxODcsIDEwNCwgMTI3LCAKKyAgICA0MywgNTIsIDIyNiwgMywgNDQsIDUyLCAyMjYsIDMsIDExMywgMTcwLCAxMTcsIDEyMywgNTksIDIyNCwgMTQwLCAxMjMsIAorICAgIDU5LCAxMTcsIDExMywgMTcwLCAyMjQsIDE0MCwgOTIsIDI0NCwgMTEsIDU5LCAyMjQsIDE0MCwgMjQ0LCA4MSwgNTksIDc4LCAKKyAgICAyMjMsIDQ5LCAyMjQsIDEzLCA3OCwgNjcsIDE4MiwgMjIyLCAyMzQsIDIyNSwgMTAsIDIxMSwgMjA5LCAyMjAsIDEzOCwgCisgICAgMjMwLCAyMjQsIDI0NywgMTIwLCAyMTUsIDk0LCAyNDksIDIxOSwgMjIzLCAxNTcsIDI0NywgMTIwLCAyMjMsIDE1NywgMjQ5LCAKKyAgICAyMTksIDIxNSwgOTQsIDIyMCwgMTUwLCAyNDgsIDIwNiwgMiwgNDMsIDI0MiwgMTA4LCAyNDgsIDIwNiwgMiwgNDQsIDI0MiwgCisgICAgMTA4LCAyMTUsIDk0LCAyNDgsIDIwNSwgMjE2LCAxNCwgMTYzLCAyMjEsIDE3MywgNTAsIDIxNSwgNTksIDI0OCwgMTU2LCAKKyAgICAyMTYsIDE0MywgMjQ4LCAxNTYsIDksIDM0LCAyMjMsIDc2LCA5LCAzNCwgMjUwLCAxMCwgOSwgMzQsIDIyMSwgMTc2LCAxMTAsIAorICAgIDksIDM0LCAyMjEsIDE3NiwgMTA1LCA5LCAzNCwgMjIxLCAxNzYsIDE1OCwgOSwgMzQsIDIyNSwgMTY3LCA5LCAzNCwgMjUxLCAKKyAgICAxNjMsIDksIDM0LCAyMTcsIDkyLCA5LCAzNCwgMjM0LCAzMywgMTEwLCA5LCAzNCwgMjM0LCAzMywgMTA1LCA5LCAzNCwgCisgICAgMjQ3LCAxNzAsIDksIDM0LCAyMjEsIDE3OSwgOSwgMzQsIDQsIDExMCwgOSwgMzQsIDQsIDEwNSwgOSwgMzQsIDIzMywgOTcsIAorICAgIDExMCwgOSwgMzQsIDIzMywgOTcsIDEwNSwgOSwgMzQsIDIzMywgOTcsIDE1OCwgOSwgMzQsIDIzMywgOTcsIDE2MSwgOSwgCisgICAgMzQsIDIxOSwgNjgsIDksIDM0LCAyMTYsIDE0NSwgOSwgMzQsIDIxOSwgNjYsIDExMCwgOSwgMzQsIDIxOSwgNjYsIDEwNSwgCisgICAgOSwgMzQsIDI0MSwgMjI4LCAxMTAsIDksIDM0LCAyNDEsIDIyOCwgMTA1LCA5LCAzNCwgMjQyLCAxNSwgOSwgMzQsIDIyMywgCisgICAgMTQ3LCA5LCAzNCwgMjUwLCA4MiwgOSwgMzQsIDIxOCwgMzcsIDksIDM0LCAyMzAsIDEyOCwgOSwgMzQsIDI0OCwgODgsIDksIAorICAgIDM0LCAyMzAsIDEyMCwgOSwgMzQsIDI1MCwgMjUsIDksIDM0LCAyMTIsIDQxLCAxMTAsIDksIDM0LCAyMTIsIDQxLCAxMDUsIAorICAgIDksIDM0LCAyNDQsIDk2LCA5LCAzNCwgMjI1LCAyMzIsIDExMCwgOSwgMzQsIDIyNSwgMjMyLCAxMDUsIDksIDM0LCAyMTksIAorICAgIDE2MCwgMTYzLCAyMTUsIDIzNiwgMjE1LCAxODgsIDksIDM0LCAyNDksIDE0NSwgOSwgMzQsIDI0NywgMTM2LCA5LCAzNCwgCisgICAgMjM1LCAxMzcsIDksIDM0LCAyNTEsIDE5OCwgNjQsIDI0OSwgMjUwLCA5LCAzNCwgMjQ1LCAxNSwgOSwgMzQsIDIxOCwgMjQ5LCAKKyAgICAxMTAsIDksIDM0LCAyMTgsIDI0OSwgMTA1LCA5LCAzNCwgMjUyLCAxNTQsIDksIDM0LCAyMTksIDE2NywgOSwgMzQsIDI1MSwgCisgICAgNjMsIDIxOSwgMTY3LCA5LCAzNCwgMjI5LCA5MCwgMTEwLCA5LCAzNCwgMjI5LCA5MCwgMTA1LCA5LCAzNCwgMjI5LCA5MCwgCisgICAgMTU4LCA5LCAzNCwgMjI5LCA5MCwgMTYxLCA5LCAzNCwgMjMxLCA0NiwgOSwgMzQsIDIyMCwgNTcsIDksIDM0LCAyMjMsIAorICAgIDE1MywgOSwgMzQsIDI0NSwgMzcsIDksIDM0LCAyMjYsIDIwOSwgOSwgMzQsIDI1MSwgMTMzLCAxMTAsIDksIDM0LCAyNTEsIAorICAgIDEzMywgMTA1LCA5LCAzNCwgMjMxLCA4NiwgOSwgMzQsIDIzMCwgMTIzLCA5LCAzNCwgMjQyLCAxNDAsIDExMCwgOSwgMzQsIAorICAgIDI0MiwgMTQwLCAxMDUsIDksIDM0LCAyNDIsIDE0MCwgMTU4LCA5LCAzNCwgMjE2LCAxMDYsIDksIDM0LCAyNDksIDI0OSwgOSwgCisgICAgMzQsIDIxMiwgOSwgMTEwLCA5LCAzNCwgMjEyLCA5LCAxMDUsIDksIDM0LCAyNTEsIDYzLCAyMjEsIDE3MCwgOSwgMzQsIAorICAgIDIxOSwgMTYwLCAyNDAsIDI0OCwgOSwgMzQsIDI0MCwgMjQ4LCA5LCAzNCwgMjUxLCA2MywgMjE5LCAyLCA5LCAzNCwgMjUxLCAKKyAgICA2MywgMjIwLCA1MiwgOSwgMzQsIDI0NCwgMzIsIDksIDM0LCAyNTEsIDYzLCAyNTAsIDIyOCwgOSwgMzQsIDIxOSwgMTYwLCAKKyAgICAyMTIsIDU3LCA5LCAzNCwgMjEyLCA1OCwgMTEwLCA5LCAzNCwgMjEyLCA1OCwgMTA1LCA5LCAzNCwgMjUwLCAyNywgOSwgMzQsIAorICAgIDI1MSwgNjMsIDI0MiwgMTY2LCA5LCAzNCwgMTk5LCAxMTAsIDksIDM0LCAxOTksIDEwNSwgOSwgMzQsIDI1MSwgNjMsIDIzMiwgCisgICAgMTM3LCA5LCAzNCwgMjUxLCA2MywgMjQzLCA4OCwgOSwgMzQsIDIzMCwgMTE5LCAxMTAsIDksIDM0LCAyMzAsIDExOSwgMTA1LCAKKyAgICA5LCAzNCwgMjIzLCAxNTksIDksIDM0LCAyNTEsIDIwNywgOSwgMzQsIDI1MSwgNjMsIDIxNywgNTYsIDIzMywgNTIsIDksIAorICAgIDM0LCAyNTEsIDYzLCAyMzMsIDUzLCA5LCAzNCwgMjUxLCA2MywgMjExLCAyMzksIDksIDM0LCAyNTEsIDYzLCAyNDQsIDQ2LCAKKyAgICA5LCAzNCwgMjQ1LCAyMTgsIDExMCwgOSwgMzQsIDI0NSwgMjE4LCAxMDUsIDksIDM0LCAyNDUsIDIxOCwgMTU4LCA5LCAzNCwgCisgICAgMjUxLCA2MywgMjQ1LCAyMTcsIDksIDM0LCAyNDEsIDIzNSwgOSwgMzQsIDI1MSwgNjMsIDI0MCwgMjQ1LCA5LCAzNCwgMjUxLCAKKyAgICAxOTQsIDksIDM0LCAyNDIsIDIyMiwgOSwgMzQsIDI1MSwgNjMsIDI0NCwgOTAsIDksIDM0LCAyNTEsIDYzLCAyNTEsIDIzNywgCisgICAgOSwgMzQsIDI1MSwgNjMsIDIyMiwgMSwgOSwgMzQsIDIxOSwgMTYwLCAyMTIsIDIsIDksIDM0LCAyMTksIDE2MCwgMjExLCAKKyAgICA0MSwgOSwgMzQsIDI1MSwgNjMsIDI0MywgMjQ0LCA5LCAzNCwgMjM1LCAxNDMsIDI0NSwgNDEsIDksIDM0LCAyNTEsIDYzLCAKKyAgICAyNDUsIDQxLCA5LCAzNCwgMjM1LCAxNDMsIDIxNiwgMTUsIDksIDM0LCAyNTEsIDYzLCAyMTYsIDE1LCA5LCAzNCwgMjM1LCAKKyAgICAxNDMsIDI0NiwgOTYsIDksIDM0LCAyNTEsIDYzLCAyNDYsIDk2LCA5LCAzNCwgMjE1LCA5MSwgOSwgMzQsIDIzNSwgMTQzLCAKKyAgICAyMTUsIDkxLCA5LCAzNCwgMjUxLCA2MywgMjE1LCA5MSwgNjAsIDM0LCAxMTAsIDYwLCAzNCwgMjMyLCAyMTMsIDYwLCAzNCwgCisgICAgMjQ3LCAxMjAsIDYwLCAzNCwgMjE5LCA5NSwgNjAsIDM0LCAyMjEsIDE3NSwgNjAsIDM0LCAxMDMsIDYwLCAzNCwgMTA1LCAKKyAgICA2MCwgMzQsIDIzMiwgMjM3LCA2MCwgMzQsIDIzMSwgMTg1LCA2MCwgMzQsIDIzMywgMzMsIDYwLCAzNCwgMjQ1LCAxMjksIAorICAgIDYwLCAzNCwgMTk1LCA2MCwgMzQsIDEyNCwgMjUxLCAxNjMsIDYwLCAzNCwgMjQ5LCAxNDcsIDYwLCAzNCwgMjQwLCAxMTEsIAorICAgIDYwLCAzNCwgMjE3LCA5MiwgNjAsIDM0LCAyMDQsIDI1MSwgMTYzLCA2MCwgMzQsIDIzNCwgMzIsIDYwLCAzNCwgMjI0LCAKKyAgICAyMjQsIDYwLCAzNCwgMjExLCAyMDIsIDYwLCAzNCwgMjE4LCAyNDMsIDYwLCAzNCwgNDQsIDIwNCwgMjUxLCAxNjMsIDYwLCAKKyAgICAzNCwgMjQxLCAxNzYsIDI0NSwgMTQ1LCA2MCwgMzQsIDIxNiwgMjQ3LCA2MCwgMzQsIDI0NywgMTcwLCA2MCwgMzQsIDIyMSwgCisgICAgMTc5LCA2MCwgMzQsIDI1MCwgMTAsIDYwLCAzNCwgMjI0LCAxODIsIDYwLCAzNCwgMjU0LCAyMTUsIDYwLCAzNCwgMjMwLCAKKyAgICAxMTAsIDYwLCAzNCwgMjQ1LCAxNDUsIDYwLCAzNCwgMjQ1LCAyMjMsIDYwLCAzNCwgMjIxLCAyMDAsIDYwLCAzNCwgMjQyLCAKKyAgICAxNzQsIDYwLCAzNCwgMjQyLCAxNzUsIDIxOSwgODEsIDYwLCAzNCwgMjQ1LCA0MCwgNjAsIDM0LCAyNTEsIDI0OCwgNjAsIAorICAgIDM0LCAyMTEsIDIyMSwgNjAsIDM0LCAyNTAsIDEwMSwgNjAsIDM0LCAyMjIsIDE5NiwgNjAsIDM0LCAyMzUsIDI1MSwgNjAsIAorICAgIDM0LCAyMTksIDc5LCA2MCwgMzQsIDIzMywgOTYsIDYwLCAzNCwgMjQ5LCAxNTYsIDYwLCAzNCwgMjE4LCAyMzcsIDYwLCAzNCwgCisgICAgMjMwLCAxMTUsIDYwLCAzNCwgMjIyLCAyMjQsIDYwLCAzNCwgMjExLCAyMDYsIDYwLCAzNCwgMjI2LCAxOTAsIDYwLCAzNCwgCisgICAgMjE1LCA5NywgNjAsIDM0LCAyNDYsIDgwLCA2MCwgMzQsIDIxOSwgMjUxLCAyMTYsIDE0NSwgNjAsIDM0LCAyNDYsIDExOCwgCisgICAgMjUwLCAxMCwgNjAsIDM0LCAxOTksIDIxOCwgMTA4LCA2MCwgMzQsIDExMywgMjQyLCAxMCwgNjAsIDM0LCAyMjAsIDAsIDYwLCAKKyAgICAzNCwgMjUxLCAxNjksIDYwLCAzNCwgMjE5LCA2NSwgNjAsIDM0LCAyNTEsIDEzNywgNjAsIDM0LCAyMTgsIDEzOCwgNjAsIAorICAgIDM0LCAyNDEsIDIyNywgNjAsIDM0LCAyNDIsIDI4LCA2MCwgMzQsIDI0NywgMTIzLCA2MCwgMzQsIDI0MiwgMTUsIDYwLCAzNCwgCisgICAgMjUxLCAxNTQsIDYwLCAzNCwgMjIzLCAxNDcsIDYwLCAzNCwgMjIxLCAxODcsIDYwLCAzNCwgMjQ3LCAxOTksIDYwLCAzNCwgCisgICAgMjUzLCAxNjgsIDYwLCAzNCwgMjE4LCAyMzQsIDYwLCAzNCwgMjI4LCA1MSwgNjAsIDM0LCAyMTgsIDM3LCA2MCwgMzQsIAorICAgIDIyMSwgMjExLCA2MCwgMzQsIDIzMCwgMTI4LCA2MCwgMzQsIDIxNSwgMjM1LCA2MCwgMzQsIDIzMywgMTIyLCA2MCwgMzQsIAorICAgIDIxOCwgMTI5LCA2MCwgMzQsIDI0OCwgODgsIDYwLCAzNCwgMjEyLCAyMSwgNjAsIDM0LCAyNDcsIDE0NiwgMjI4LCA1MSwgCisgICAgNjAsIDM0LCAyNDksIDIxNSwgNjAsIDM0LCAyNDMsIDIyMiwgNjAsIDM0LCAyNTAsIDIxLCA2MCwgMzQsIDIxOCwgMTQyLCAKKyAgICA2MCwgMzQsIDIxMiwgNDAsIDYwLCAzNCwgMjQ0LCA5NiwgNjAsIDM0LCAyNTAsIDE4LCA2MCwgMzQsIDI0NCwgMTYxLCA2MCwgCisgICAgMzQsIDUyLCAyMTEsIDE3OCwgNjAsIDM0LCAxNjMsIDIxNSwgMjM2LCAyMTUsIDE4OCwgNjAsIDM0LCAyMTksIDg5LCA2MCwgCisgICAgMzQsIDI0NCwgMTcxLCA2MCwgMzQsIDI0OSwgMTQ1LCA2MCwgMzQsIDI0NywgMTM2LCA2MCwgMzQsIDIyNCwgMTc5LCA2MCwgCisgICAgMzQsIDIzNSwgMTM3LCA2MCwgMzQsIDIzMSwgNjcsIDYwLCAzNCwgMjE2LCA4OCwgNjAsIDM0LCAyMTcsIDI0NSwgNjAsIDM0LCAKKyAgICAyMzIsIDIzMSwgNjAsIDM0LCAyMTQsIDEzMSwgNjAsIDM0LCAyNDQsIDEyMCwgNjAsIDM0LCAyNTEsIDE5OCwgNjQsIDI0OSwgCisgICAgMjUwLCA2MCwgMzQsIDIxOSwgMTg4LCA2MCwgMzQsIDI0NiwgMTE4LCAyMTYsIDI0MiwgNjAsIDM0LCAyMTEsIDI1MywgNjAsIAorICAgIDM0LCAyMTksIDEwMywgNjAsIDM0LCAyNDcsIDE4NywgNjAsIDM0LCAyNDUsIDE1LCA2MCwgMzQsIDIxOSwgNSwgNjAsIDM0LCAKKyAgICA3NCwgNjAsIDM0LCAyMTgsIDEzMSwgNjAsIDM0LCAyMTgsIDI0OCwgNjAsIDM0LCAyMTUsIDI1NSwgNjAsIDM0LCAyNDIsIAorICAgIDE0NywgNjAsIDM0LCAyNTAsIDIxOCwgNjAsIDM0LCAyMTgsIDE2MCwgNjAsIDM0LCAyNTIsIDE1NCwgNjAsIDM0LCAyMjMsIAorICAgIDMxLCA2MCwgMzQsIDIxOSwgMTY3LCA2MCwgMzQsIDIzNSwgMTMwLCA2MCwgMzQsIDIyOSwgODksIDYwLCAzNCwgMjIwLCA1NywgCisgICAgNjAsIDM0LCAyNDQsIDE0OSwgNjAsIDM0LCAyMjYsIDIwOSwgNjAsIDM0LCAyNTQsIDExOCwgNjAsIDM0LCAyMjUsIDI5LCAKKyAgICA2MCwgMzQsIDI0NSwgMjI3LCA2MCwgMzQsIDI1MSwgMTMyLCA2MCwgMzQsIDIzMSwgODYsIDYwLCAzNCwgMjMwLCAxODMsIAorICAgIDYwLCAzNCwgMjIwLCAxNTYsIDYwLCAzNCwgMjUzLCAyNTIsIDYwLCAzNCwgMjMwLCAxMjMsIDYwLCAzNCwgMjE2LCAxOSwgCisgICAgNjAsIDM0LCAyMjYsIDE2NSwgNjAsIDM0LCAyNTEsIDIwMSwgNjAsIDM0LCAyMTgsIDEyNywgNjAsIDM0LCAyNDksIDIyNSwgCisgICAgNjAsIDM0LCAyNDIsIDEzOSwgNjAsIDM0LCAyMTYsIDEwNiwgNjAsIDM0LCAyMzUsIDIxNywgNjAsIDM0LCAyNTEsIDIxMSwgCisgICAgNjAsIDM0LCAyMTIsIDU4LCAyNDUsIDE0NSwgNjAsIDM0LCAyNDksIDI0OSwgNjAsIDM0LCAyMTIsIDgsIDYwLCAzNCwgMjIxLCAKKyAgICAxNzAsIDYwLCAzNCwgMjQwLCAyNDgsIDYwLCAzNCwgMjE5LCAyLCA2MCwgMzQsIDIxNCwgMjIsIDYwLCAzNCwgMjUyLCA3MiwgCisgICAgNjAsIDM0LCAyMjUsIDczLCA2MCwgMzQsIDI1MiwgMTc0LCA2MCwgMzQsIDIyMCwgNTIsIDYwLCAzNCwgMjIzLCAxMTAsIDYwLCAKKyAgICAzNCwgMjIyLCAxMjYsIDYwLCAzNCwgMjQ0LCAzMiwgNjAsIDM0LCAyNTEsIDIwMCwgNjAsIDM0LCAyNTAsIDIyOCwgNjAsIAorICAgIDM0LCAyNTEsIDIyNiwgNjAsIDM0LCAyMzAsIDEyNSwgNjAsIDM0LCAyMTIsIDU3LCA2MCwgMzQsIDI1MCwgMjcsIDYwLCAzNCwgCisgICAgMjExLCAyMzYsIDYwLCAzNCwgMjQ3LCAxODAsIDYwLCAzNCwgMjEzLCAxNjEsIDYwLCAzNCwgMjQyLCAxNjYsIDYwLCAzNCwgCisgICAgMjMyLCAxMzcsIDYwLCAzNCwgMjQzLCA4OCwgNjAsIDM0LCAyMzAsIDExOCwgNjAsIDM0LCAyMTksIDk0LCA2MCwgMzQsIAorICAgIDIxOSwgMjUxLCAyMTcsIDc2LCAyNTEsIDIzNywgNjAsIDM0LCAyMjMsIDE1OSwgNjAsIDM0LCAyNTEsIDIwNywgNjAsIDM0LCAKKyAgICAyMTEsIDE5NywgNjAsIDM0LCAyNDQsIDE5MCwgNjAsIDM0LCAyMzMsIDUyLCA2MCwgMzQsIDIxNywgNTYsIDIzMywgNTIsIAorICAgIDYwLCAzNCwgMjMzLCA0OCwgNjAsIDM0LCAyMTksIDMwLCA2MCwgMzQsIDIzMywgNTMsIDYwLCAzNCwgMjExLCAyMzksIDYwLCAKKyAgICAzNCwgMjQ0LCA0NiwgNjAsIDM0LCAyNDUsIDIxNywgNjAsIDM0LCAyNDEsIDIzNSwgNjAsIDM0LCAyNDQsIDAsIDYwLCAzNCwgCisgICAgMjQwLCAyNDUsIDYwLCAzNCwgMjUxLCAxOTQsIDYwLCAzNCwgMjE3LCA2MywgNjAsIDM0LCAyNDIsIDM0LCA2MCwgMzQsIAorICAgIDI0NCwgMTEzLCA2MCwgMzQsIDIyMiwgMjgsIDIxMSwgMjM2LCA2MCwgMzQsIDI1MCwgMjIwLCA2MCwgMzQsIDI0MiwgMjIyLCAKKyAgICA2MCwgMzQsIDI0NCwgOTAsIDYwLCAzNCwgMjUxLCAyMzcsIDYwLCAzNCwgMjIyLCAxLCA2MCwgMzQsIDI0OCwgNzQsIDYwLCAKKyAgICAzNCwgMjEyLCAyLCA2MCwgMzQsIDI0MSwgMjEwLCA2MCwgMzQsIDIxMSwgNDEsIDYwLCAzNCwgMjMwLCAxOTIsIDYwLCAzNCwgCisgICAgMjUxLCAyMjEsIDYwLCAzNCwgMjQ1LCAxNTUsIDYwLCAzNCwgMjQzLCAyNDQsIDYwLCAzNCwgMjE1LCAyMDksIDYwLCAzNCwgCisgICAgMjQ2LCA4MiwgNjAsIDM0LCAyMjMsIDE0MSwgNjAsIDM0LCAyMjgsIDUzLCA2MCwgMzQsIDI0NSwgNDEsIDYwLCAzNCwgMjE2LCAKKyAgICAxNSwgNjAsIDM0LCAyNDYsIDk2LCA2MCwgMzQsIDIxNSwgOTEsIDYwLCAzNCwgMjQ0LCA0OCwgMTA5LCAyNDgsIDM3LCAxMzUsIAorICAgIDQzLCAyMTYsIDQyLCAyMjIsIDI1MSwgMTA5LCAyNDgsIDM3LCAxMzUsIDc3LCAyMTYsIDQyLCA1MSwgMTA5LCAyNDgsIDM3LCAKKyAgICAxMzUsIDQzLCAyMTYsIDQyLCAyMzAsIDIyNCwgMjIsIDIyMiwgMjUxLCAxMDksIDI0OCwgMzcsIDEzNSwgNzcsIDIxNiwgNDIsIAorICAgIDIzMCwgMjI0LCAyMiwgNTEsIDEwOSwgMjQ4LCAzNywgMTM1LCAyNDMsIDIyOSwgMjE4LCAxMCwgMTA5LCAyNDgsIDM3LCAKKyAgICAxMzUsIDIxOCwgMTEsIDI0MywgMjQzLCA0OCwgMTA5LCAyNDgsIDM3LCAxMzUsIDIxOCwgMTEsIDI0MywgMjQzLCA1MSwgCisgICAgMTA5LCAyNDgsIDM3LCAxMzUsIDIxOCwgMTEsIDI0MywgMjQzLCAyMzMsIDQ2LCAxMDksIDI0OCwgMzcsIDEzNSwgMjE4LCAKKyAgICAxMSwgMjQzLCAyNDMsIDIxNCwgMTYwLCAyMzMsIDQ2LCAxMDksIDI0OCwgMzcsIDEzNSwgMjE4LCAxMSwgMjQzLCAyNDMsIAorICAgIDIxNCwgMTYwLCAyMjIsIDI1MSwgMTA5LCAyNDgsIDM3LCAxMzUsIDIxOCwgMTEsIDI0MywgMjQzLCAyMzIsIDEwOCwgMjMzLCAKKyAgICA0NiwgMTA5LCAyNDgsIDM3LCAxMzUsIDIyNiwgMTIyLCAxMDksIDIxOSwgMTgsIDEwOSwgMjQ5LCAyMTksIDEwOSwgMjQzLCAKKyAgICAyMjksIDIxOCwgMTI5LCAyNDcsIDE3NywgNzgsIDIzNSwgMTMxLCAyMzUsIDIzNiwgMjE4LCAxNTksIDg3LCAxMDksIDIzNSwgCisgICAgMTU4LCA3OCwgMTA5LCAyNDksIDI1MiwgNzgsIDEwOSwgNTQsIDIxMCwgODYsIDQzLCAyNTQsIDExMCwgMTI3LCA0NCwgMjU0LCAKKyAgICAxMTAsIDEyNywgNDMsIDUyLCAyNTQsIDExMCwgMTI3LCA0NCwgNTIsIDI1NCwgMTEwLCAxMjcsIDQzLCAyNDksIDE2MSwgCisgICAgMTI3LCA0NCwgMjQ5LCAxNjEsIDEyNywgNDMsIDcxLCAyNDksIDE2MSwgMTI3LCA0NCwgNzEsIDI0OSwgMTYxLCAxMjcsIDQzLCAKKyAgICA4NSwgMjMzLCAyMCwgMTI3LCA0NCwgODUsIDIzMywgMjAsIDEyNywgMjI0LCAyMzcsIDc4LCAyNDMsIDMyLCA3OCwgNDMsIAorICAgIDIxNiwgNiwgMjIwLCA1MywgMTI3LCA0NCwgMjE2LCA2LCAyMjAsIDUzLCAxMjcsIDQzLCA3MSwgMjMzLCAyMCwgMTI3LCA0NCwgCisgICAgNzEsIDIzMywgMjAsIDEyNywgNDMsIDcxLCAyMTYsIDYsIDIyMCwgNTMsIDEyNywgNDQsIDcxLCAyMTYsIDYsIDIyMCwgNTMsIAorICAgIDEyNywgNDMsIDcxLCA0MiwgMTI3LCA0NCwgNzEsIDQyLCAxMjcsIDIxMiwgMzYsIDI0OCwgMTU2LCAyMjMsIDQ5LCA1MiwgCisgICAgMjI0LCAxOTEsIDIyMywgMjU0LCA3OCwgNTIsIDIyNCwgMTkxLCAyMjMsIDI1NCwgNzgsIDEyMSwgNTIsIDIyNCwgMTkxLCAKKyAgICAyMjMsIDI1NCwgNzgsIDIyNCwgMjM3LCAxNjQsIDI0NCwgMTkwLCAyNDIsIDgsIDIyNywgMTk4LCAxMTAsIDI0MiwgOCwgCisgICAgMjI3LCAxOTgsIDEwNSwgMjQyLCA4LCAyMjcsIDE5OCwgMTU4LCAyNDIsIDgsIDIyNywgMTk4LCAxNjEsIDI0MiwgOCwgMjI3LCAKKyAgICAxOTgsIDE4OSwgMjQyLCA4LCAyMjcsIDE5OCwgMTk0LCAyNDIsIDgsIDIyNywgMTk4LCAxOTgsIDI0MiwgOCwgMjI3LCAxOTgsIAorICAgIDE5NSwgMjQyLCA4LCAyMjcsIDE5OCwgMjAwLCAxMDksIDIzMywgMywgMTM4LCA3OCwgMTA5LCAyMjIsIDIyOCwgMTM4LCA3OCwgCisgICAgMTA5LCAyNDgsIDQ0LCAxMzgsIDc4LCAxMDksIDI0NSwgMTI4LCAxMzgsIDc4LCAyNCwgMjE5LCAxNTUsIDU5LCAxMzgsIDc4LCAKKyAgICAyNCwgNTIsIDU5LCAxMzgsIDc4LCAyMTIsIDMyLCAyNDgsIDE1NiwgNjcsIDIzNCwgMjMzLCAyMjMsIDc3LCA3OCwgNjcsIAorICAgIDIzNCwgMjMzLCAyMjMsIDc3LCAyLCAyMTMsIDEzNSwgMjE5LCAzMSwgNzgsIDY3LCAyMzQsIDIzMywgMjIzLCA3NywgMTY0LCAKKyAgICAyMTQsIDE2MCwgMjQyLCAyNywgNjcsIDIzNCwgMjMzLCAyMjMsIDc3LCAyLCAyMTMsIDEzNSwgMjE5LCAzMSwgMTY0LCAyMTQsIAorICAgIDE2MCwgMjQyLCAyNywgNjcsIDIzNCwgMjMzLCAyMjMsIDc3LCAxNjQsIDIzMiwgMTA4LCAyNDIsIDI3LCAzNywgMjI0LCAKKyAgICAyMzcsIDc4LCAxMDksIDIxNywgMywgMjMyLCAyMTQsIDI0NCwgMTQ2LCAyMjAsIDEzOCwgODcsIDI0MiwgOCwgMjI3LCAxOTgsIAorICAgIDIxNiwgMjQ3LCAyNDIsIDgsIDIyNywgMTk4LCAyMTUsIDczLCAyNDIsIDgsIDIyNywgMTk4LCAyMTYsIDE2MiwgNjcsIDEwOSwgCisgICAgMjM1LCAxNTgsIDc4LCAyMzEsIDE0MCwgNzgsIDIyNSwgMjU1LCAyNTQsIDE0MCwgNzgsIDEwOSwgNDUsIDIzNSwgMjM4LCAKKyAgICAxMDksIDE2MywgMjQ0LCAxMDYsIDIxOSwgMTgsIDE0MSwgMSwgNCwgNjEsIDE0MSwgMSwgNjEsIDE0MSwgMSwgNCwgNzMsIAorICAgIDE0MSwgMSwgNzMsIDE0MSwgMSwgNCwgNzAsIDE0MSwgMSwgNzAsIDE0MSwgMSwgNCwgNzUsIDE0MSwgMSwgNzUsIDE0MSwgMSwgCisgICAgNCwgNzYsIDE0MSwgMSwgNzYsIDE0MSwgMSwgMTc2LCAxNDEsIDEsIDI0MywgMTM1LCAxNDEsIDEsIDIzNCwgOTIsIDE0MSwgCisgICAgMSwgMjQyLCAyMTQsIDE0MSwgMSwgMjMzLCAyMTcsIDE0MSwgMSwgMjQyLCAxMTMsIDE0MSwgMSwgMjM0LCAxODIsIDE0MSwgCisgICAgMSwgMjQzLCA2MiwgMTQxLCAxLCAyMzQsIDI4LCAxNDEsIDEsIDI0MiwgMTc0LCAxNDEsIDEsIDIwNiwgMTQxLCAxLCAyMTAsIAorICAgIDExNiwgMTQxLCAxLCAyMTksIDE5MSwgMTQxLCAxLCAyMTAsIDQ0LCAxNDEsIDEsIDIxOCwgODMsIDE0MSwgMSwgMjEwLCAxMywgCisgICAgMTQxLCAxLCAyMjEsIDE4MSwgMTQxLCAxLCAyMTAsIDk0LCAxNDEsIDEsIDIxOSwgNTgsIDE0MSwgMSwgMjEwLCAyMywgMTQxLCAKKyAgICAxLCAyMTcsIDEwNSwgMTQxLCAxLCAyNDgsIDIyMSwgMTQxLCAxLCAyMTYsIDExNywgMTQxLCAxLCAyNDgsIDMsIDE0MSwgMSwgCisgICAgNCwgMjE1LCAxMTgsIDE0MSwgMSwgMjE1LCAxMTgsIDE0MSwgMSwgMjQ2LCA3OCwgMTQxLCAxLCAyMTcsIDIyLCAxNDEsIDEsIAorICAgIDI0OCwgOTAsIDE0MSwgMSwgMTExLCAxNDEsIDEsIDI0NywgMTQ1LCAxNDEsIDEsIDE5NywgMTQxLCAxLCAyMjgsIDIzMywgCisgICAgMTQxLCAxLCAyMjcsIDIzNywgMTQxLCAxLCAyMjksIDEwNywgMTQxLCAxLCAyMjgsIDc0LCAxNDEsIDEsIDE2MiwgMTQxLCAxLCAKKyAgICAyNTIsIDE5MSwgMTQxLCAxLCAxOTAsIDE0MSwgMSwgMjQxLCAxODAsIDE0MSwgMSwgMjUyLCA2LCAxNDEsIDEsIDIyNSwgCisgICAgMTA4LCAxNDEsIDEsIDI0MCwgMjIyLCAxNDEsIDEsIDI1MSwgMTI1LCAxNDEsIDEsIDIyNCwgMTUwLCAxNDEsIDEsIDI0MSwgCisgICAgMjM4LCAxNDEsIDEsIDI1MiwgNzUsIDE0MSwgMSwgMjI1LCAyMjEsIDE0MSwgMSwgMjQxLCA2OCwgMTQxLCAxLCAyNTEsIAorICAgIDIwNSwgMTQxLCAxLCAyMjUsIDE2LCAxNDEsIDEsIDE4NCwgMTQxLCAxLCAyMzAsIDIzMCwgMTQxLCAxLCAyMzAsIDEwMiwgCisgICAgMTQxLCAxLCAyMzEsIDkxLCAxNDEsIDEsIDIzMCwgMTYxLCAxNDEsIDEsIDQsIDE5MSwgMTQxLCAxLCAxOTEsIDE0MSwgMSwgCisgICAgNCwgMjEwLCAyMTIsIDE0MSwgMSwgMjEwLCAyMTIsIDE0MSwgMSwgNCwgMjEwLCAyNDQsIDE0MSwgMSwgMjEwLCAyNDQsIAorICAgIDE0MSwgMSwgMjA1LCAxNDEsIDEsIDIyMywgMzUsIDE0MSwgMSwgMjIyLCAxNDAsIDE0MSwgMSwgMjIzLCAxMjgsIDE0MSwgMSwgCisgICAgMjIyLCAyMTEsIDE0MSwgMSwgNCwgMjEyLCA2NSwgMTQxLCAxLCAyMTIsIDY1LCAxNDEsIDEsIDIxMSwgMjUwLCAxNDEsIDEsIAorICAgIDIxMiwgMjIsIDE0MSwgMSwgMjExLCAyMjcsIDE0MSwgMSwgMjMwLCAyNSwgMTQxLCAxLCAyMTIsIDExNiwgMTQxLCAxLCA0LCAKKyAgICAxNzYsIDE0MSwgMSwgNCwgMjM0LCAxODIsIDM4LCAyMzQsIDIwMSwgMjEzLCAxMzUsIDIxOSwgMzEsIDc4LCAzOCwgMjM0LCAKKyAgICAyMDEsIDIyMCwgMTU1LCAyMTksIDMxLCA3OCwgMjM0LCAyMDEsIDIxMywgMTM1LCAyMTksIDMxLCA3OCwgMjM0LCAyMDEsIAorICAgIDIyMCwgMTU1LCAyMTksIDMxLCA3OCwgMTQxLCAyMzUsIDE1OCwgNzgsIDE0MSwgMjEzLCAxMzUsIDIzNSwgMTU4LCA3OCwgCisgICAgMTQxLCAyNDcsIDIyMSwgMjEwLCAyMjUsIDIzNCwgMjAxLCA1MiwgMjQwLCAxNjgsIDU2LCAxLCA0LCA2MSwgNTYsIDEsIDYxLCAKKyAgICA1NiwgMSwgNCwgNzMsIDU2LCAxLCA3MywgNTYsIDEsIDQsIDcwLCA1NiwgMSwgNzAsIDU2LCAxLCA0LCA3NSwgNTYsIDEsIAorICAgIDc1LCA1NiwgMSwgNCwgNzYsIDU2LCAxLCA3NiwgNTYsIDEsIDE3NiwgNTYsIDEsIDI0MywgMTM1LCA1NiwgMSwgMjM0LCA5MiwgCisgICAgNTYsIDEsIDI0MiwgMjE0LCA1NiwgMSwgMjMzLCAyMTcsIDU2LCAxLCAyNDIsIDExMywgNTYsIDEsIDIzNCwgMTgyLCA1NiwgCisgICAgMSwgMjQzLCA2MiwgNTYsIDEsIDIzNCwgMjgsIDU2LCAxLCAyNDIsIDE3NCwgNTYsIDEsIDIwNiwgNTYsIDEsIDIxMCwgMTE2LCAKKyAgICA1NiwgMSwgMjE5LCAxOTEsIDU2LCAxLCAyMTAsIDQ0LCA1NiwgMSwgMjE4LCA4MywgNTYsIDEsIDIxMCwgMTMsIDU2LCAxLCAKKyAgICAyMjEsIDE4MSwgNTYsIDEsIDIxMCwgOTQsIDU2LCAxLCAyMTksIDU4LCA1NiwgMSwgMjEwLCAyMywgNTYsIDEsIDIxNywgCisgICAgMTA1LCA1NiwgMSwgMjQ4LCAyMjEsIDU2LCAxLCAyMTYsIDExNywgNTYsIDEsIDI0OCwgMywgNTYsIDEsIDQsIDIxNSwgMTE4LCAKKyAgICA1NiwgMSwgMjE1LCAxMTgsIDU2LCAxLCAyNDYsIDc4LCA1NiwgMSwgMjE3LCAyMiwgNTYsIDEsIDI0OCwgOTAsIDU2LCAxLCAKKyAgICAxMTEsIDU2LCAxLCAyNDcsIDE0NSwgNTYsIDEsIDE5NywgNTYsIDEsIDIyOCwgMjMzLCA1NiwgMSwgMjI3LCAyMzcsIDU2LCAKKyAgICAxLCAyMjksIDEwNywgNTYsIDEsIDIyOCwgNzQsIDU2LCAxLCAxNjIsIDU2LCAxLCAyNTIsIDE5MSwgNTYsIDEsIDE5MCwgNTYsIAorICAgIDEsIDI0MSwgMTgwLCA1NiwgMSwgMjUyLCA2LCA1NiwgMSwgMjI1LCAxMDgsIDU2LCAxLCAyNDAsIDIyMiwgNTYsIDEsIDI1MSwgCisgICAgMTI1LCA1NiwgMSwgMjI0LCAxNTAsIDU2LCAxLCAyNDEsIDIzOCwgNTYsIDEsIDI1MiwgNzUsIDU2LCAxLCAyMjUsIDIyMSwgCisgICAgNTYsIDEsIDI0MSwgNjgsIDU2LCAxLCAyNTEsIDIwNSwgNTYsIDEsIDIyNSwgMTYsIDU2LCAxLCAxODQsIDU2LCAxLCAyMzAsIAorICAgIDIzMCwgNTYsIDEsIDIzMCwgMTAyLCA1NiwgMSwgMjMxLCA5MSwgNTYsIDEsIDIzMCwgMTYxLCA1NiwgMSwgNCwgMTkxLCA1NiwgCisgICAgMSwgMTkxLCA1NiwgMSwgNCwgMjEwLCAyMTIsIDU2LCAxLCAyMTAsIDIxMiwgNTYsIDEsIDQsIDIxMCwgMjQ0LCA1NiwgMSwgCisgICAgMjEwLCAyNDQsIDU2LCAxLCAyMDUsIDU2LCAxLCAyMjMsIDM1LCA1NiwgMSwgMjIyLCAxNDAsIDU2LCAxLCAyMjMsIDEyOCwgCisgICAgNTYsIDEsIDIyMiwgMjExLCA1NiwgMSwgNCwgMjEyLCA2NSwgNTYsIDEsIDIxMiwgNjUsIDU2LCAxLCAyMTEsIDI1MCwgNTYsIAorICAgIDEsIDIxMiwgMjIsIDU2LCAxLCAyMTEsIDIyNywgNTYsIDEsIDIzMCwgMjUsIDU2LCAxLCAyMTIsIDExNiwgNTYsIDEsIDQsIAorICAgIDE3NiwgNTYsIDEsIDQsIDIzNCwgMTgyLCA1NiwgMSwgMjE0LCAyNywgNTYsIDEsIDIxMywgMTc2LCA1NiwgMSwgMjEzLCAKKyAgICAyNTUsIDU2LCAxLCAyMTMsIDEzOCwgNTYsIDIzMCwgMjI0LCAyNDcsIDEyMCwgMjM0LCAyMDEsIDIyNCwgMTczLCAyMTksIAorICAgIDMxLCA3OCwgNTYsIDIzNSwgMTU4LCA3OCwgNTYsIDIxMywgMTM1LCAyMzUsIDE1OCwgNzgsIDU2LCAyNDcsIDIyMSwgMjMzLCAKKyAgICAyNTUsIDI1MSwgMTg0LCAxLCAyNTMsIDE1OCwgMjUxLCAxODQsIDEsIDIyNiwgMTA1LCAyNTEsIDE4NCwgMSwgMTkzLCAyNTEsIAorICAgIDE4NCwgMSwgMjQ1LCA2LCAyNTEsIDE4NCwgMSwgMjQ5LCA2MCwgMjUxLCAxODQsIDEsIDIxNywgMTUyLCAyNTEsIDE4NCwgMSwgCisgICAgMjMwLCAyNSwgMjUxLCAxODQsIDEsIDE1NiwgMjUxLCAxODQsIDEsIDI0MywgMjAyLCAyNTEsIDE4NCwgMSwgMjM1LCAyMywgCisgICAgMjUxLCAxODQsIDEsIDI0MiwgNjAsIDI1MSwgMTg0LCAxLCAyMzUsIDE0NCwgMjUxLCAxODQsIDEsIDIyNCwgOTYsIDI1MSwgCisgICAgMTg0LCAxLCAyMTEsIDE3OCwgMjUxLCAxODQsIDEsIDIxMCwgODMsIDI1MSwgMTg0LCAxLCAyNTAsIDE1OCwgMjUxLCAxODQsIAorICAgIDEsIDIyMCwgMTA0LCAyNTEsIDE4NCwgMSwgMTUzLCAyNTEsIDE4NCwgMSwgMjEwLCAxNTksIDI1MSwgMTg0LCAxLCAyNTEsIAorICAgIDY2LCAyNTEsIDE4NCwgMSwgMjIyLCA5MSwgMjUxLCAxODQsIDEsIDYxLCAyNTEsIDE4NCwgMSwgNzYsIDI1MSwgMTg0LCAxLCAKKyAgICA3NSwgMjUxLCAxODQsIDEsIDI0NSwgMTk3LCAyNTEsIDE4NCwgMSwgMjU0LCAyMDEsIDI1MSwgMTg0LCAxLCAyNDUsIDE5NSwgCisgICAgMjUxLCAxODQsIDEsIDI1MywgMTkyLCAyNTEsIDE4NCwgMSwgMjI2LCAxMzQsIDI1MSwgMTg0LCAxLCAyNTQsIDEyMywgMjUxLCAKKyAgICAxODQsIDEsIDI0NSwgMTUwLCAyNTEsIDE4NCwgMSwgMjU0LCAxMTUsIDI1MSwgMTg0LCAxLCAyNDUsIDEzOCwgMjUxLCAxODQsIAorICAgIDEsIDI0NSwgOTIsIDI1MSwgMTg0LCAxLCA3MywgMjUxLCAxODQsIDEsIDcwLCAyNTEsIDE4NCwgMSwgMjM1LCAxNTYsIDI1MSwgCisgICAgMTg0LCAxLCAyMTQsIDEwNSwgMjUxLCAxODQsIDEsIDIyOSwgNzksIDI1MSwgMTg0LCAxLCAyNDIsIDE3OCwgMjUxLCAxODQsIAorICAgIDEsIDIzNiwgMzQsIDI0LCAxLCAyMzQsIDU4LCAyNCwgMSwgMjE4LCAyMTUsIDI0LCAxLCAyMzQsIDUxLCAyNCwgMSwgMjI4LCAKKyAgICAyMjYsIDI0LCAxLCAyMjgsIDIyNCwgMjQsIDEsIDIyOCwgMjIzLCAyNCwgMSwgMjE2LCAxMDEsIDI0LCAxLCAyMTgsIDIwNCwgCisgICAgMjQsIDEsIDIyMywgMjYsIDI0LCAxLCAyMjMsIDIxLCAyNCwgMSwgMjIzLCAxOCwgMjQsIDEsIDIyMywgMTEsIDI0LCAxLCAKKyAgICAyMjMsIDYsIDI0LCAxLCAyMjMsIDEsIDI0LCAxLCAyMjMsIDEyLCAyNCwgMSwgMjIzLCAyNCwgMjQsIDEsIDIzMCwgMjE3LCAKKyAgICAyNCwgMSwgMjI1LCA5NSwgMjQsIDEsIDIxOCwgMjEyLCAyNCwgMSwgMjI1LCA4NCwgMjQsIDEsIDIxOSwgMTQ4LCAyNCwgMSwgCisgICAgMjE4LCAyMDksIDI0LCAxLCAyMzYsIDU2LCAyNCwgMSwgMjUwLCA0NiwgMjQsIDEsIDIxOCwgMjE5LCAyNCwgMSwgMjUwLCAKKyAgICAxMDYsIDI0LCAxLCAyMzQsIDExMCwgMjQsIDEsIDIxNiwgMTczLCAyNCwgMSwgMjI1LCAxMzEsIDI0LCAxLCAyNDEsIDE3MiwgCisgICAgMjQsIDEsIDYxLCAyNCwgMSwgMjU0LCAyNDMsIDI0LCAxLCAxOTEsIDI0LCAxLCAyMTEsIDkyLCAyNCwgMSwgMjQ1LCAxMTcsIAorICAgIDI0LCAxLCA3NSwgMjQsIDEsIDIxMSwgMzYsIDI0LCAxLCAyMTEsIDQ3LCAyNCwgMSwgNzYsIDI0LCAxLCAyMTIsIDY1LCAyNCwgCisgICAgMSwgMjEyLCA2MiwgMjQsIDEsIDIyNiwgMjM0LCAyNCwgMSwgMjEwLCAyNDQsIDI0LCAxLCA3MCwgMjQsIDEsIDIxMiwgMTEsIAorICAgIDI0LCAxLCAyMTIsIDIyLCAyNCwgMSwgMjExLCAyNTAsIDI0LCAxLCAyMTAsIDIxMiwgMjQsIDEsIDI0NSwgNTUsIDI0LCAxLCAKKyAgICAyMTEsIDgsIDI0LCAxLCA3MywgMjQsIDI0NCwgMTAzLCAyNCwgMSwgMjE4LCAyMTMsIDI0LCAxLCAyMjgsIDIxNiwgMjQsIDEsIAorICAgIDIyOCwgMjE4LCAyNCwgMSwgMjI4LCAyMjEsIDI0LCAxLCAyMjMsIDE5LCAyNCwgMSwgMjIzLCAwLCAyNCwgMSwgMjIzLCA4LCAKKyAgICAyNCwgMSwgMjIzLCAxMywgMjQsIDEsIDIyMiwgMjU0LCAyNCwgMSwgMjMwLCAyMTAsIDI0LCAxLCAyMzAsIDIwNywgMjQsIDEsIAorICAgIDIzMCwgMjExLCAyNCwgMSwgMjM0LCAyMjEsIDI0LCAxLCAyMjUsIDkwLCAyNCwgMSwgMjI1LCA3NiwgMjQsIDEsIDIyNSwgCisgICAgODIsIDI0LCAxLCAyMjUsIDc5LCAyNCwgMSwgMjI1LCA5MywgMjQsIDEsIDIyNSwgNzcsIDI0LCAxLCAyMzQsIDIxOSwgMjQsIAorICAgIDEsIDIzNCwgMjE3LCAyNCwgMSwgMjE5LCAxNDEsIDI0LCAxLCAyMTksIDEzOSwgMjQsIDEsIDIxOSwgMTMxLCAyNCwgMSwgCisgICAgMjE5LCAxMzYsIDI0LCAxLCAyMTksIDE0NiwgMjQsIDEsIDIyNiwgMzIsIDI0LCAxLCAyMTgsIDIxNiwgMjQsIDEsIDIxMSwgCisgICAgMjYsIDI0LCAxLCAyMTEsIDIyLCAyNCwgMSwgMjExLCAyMywgMjQsIDEsIDIzNCwgMjIwLCAyNCwgMSwgMjE4LCAyMTcsIDI0LCAKKyAgICAxLCAyMTEsIDMyLCAyNCwgMSwgMjEwLCAyMzgsIDI0LCAxLCAyMTAsIDIzNywgMjQsIDEsIDIxMCwgMjQwLCAyNCwgMSwgCisgICAgMjEwLCAyMDMsIDI0LCAxLCAyMTAsIDIwNCwgMjQsIDEsIDIxMCwgMjA3LCAyNCwgMSwgMjU0LCAzNCwgMjQsIDEsIDI1NCwgCisgICAgMjgsIDEwOSwgMjU0LCA5OSwgMjMyLCAyMDMsIDc4LCAxMDksIDI1NCwgOTksIDIyMywgNTAsIDc4LCAxMDksIDI1NCwgOTksIAorICAgIDEyMywgNzgsIDEwOSwgMjU0LCA5OSwgMTEzLCA3OCwgMTA5LCAyNTQsIDk5LCAxMzQsIDc4LCAxMDksIDI1NCwgOTksIDI0NCwgCisgICAgMTEsIDc4LCAxMDksIDI1NCwgOTksIDIxNiwgMTQsIDc4LCAxMDksIDI1NCwgOTksIDIzMCwgMjI0LCA3OCwgMTA5LCAyNTQsIAorICAgIDk5LCAyNTEsIDE3NSwgNzgsIDEwOSwgMjU0LCA5OSwgMjQ0LCA5MiwgNzgsIDEwOSwgMjU0LCA5OSwgMjIxLCAxNzYsIDc4LCAKKyAgICAxMDksIDI1NCwgOTksIDIxNiwgMTY5LCA3OCwgMTA5LCAyNTQsIDk5LCAyNDQsIDQsIDc4LCAxMDksIDI1NCwgOTksIDI0MSwgCisgICAgMjI0LCA3OCwgMTA5LCAyNTQsIDk5LCAyNDUsIDIyNCwgNzgsIDEwOSwgMjU0LCA5OSwgMjMxLCAxODYsIDc4LCAyNTEsIAorICAgIDE4NCwgMSwgMjUxLCAxMjUsIDI1MSwgMTg0LCAxLCAyMTAsIDQ0LCAyNTEsIDE4NCwgMSwgMjM1LCAxMDgsIDI1MSwgMTg0LCAKKyAgICAxLCAyNDIsIDExMywgMjUxLCAxODQsIDEsIDI0NSwgMjA5LCAyNTEsIDE4NCwgMSwgMjQ1LCAxMzUsIDI1MSwgMTg0LCAxLCAKKyAgICAyMjYsIDE4MywgMjUxLCAxODQsIDEsIDIyNiwgMTg3LCAyNTEsIDE4NCwgMSwgMjM1LCAxNzksIDI1MSwgMTg0LCAxLCAyNTQsIAorICAgIDEwMSwgMjUxLCAxODQsIDEsIDIzNSwgMjI0LCAyNTEsIDE4NCwgMSwgMjE0LCAxNjgsIDI1MSwgMTg0LCAxLCAyMzYsIDE2LCAKKyAgICAyNTEsIDE4NCwgMSwgMjI5LCA1NywgMjUxLCAxODQsIDEsIDI1NCwgMTk1LCAyNTEsIDE4NCwgMSwgMjUzLCAxODcsIDI1MSwgCisgICAgMTg0LCAxLCAyNTQsIDEzNiwgMjUxLCAxODQsIDEsIDIyNiwgMjA0LCAyNTEsIDE4NCwgMSwgMjI2LCAxODksIDI1MSwgMTg0LCAKKyAgICAxLCAyMzUsIDIyMSwgMjUxLCAxODQsIDQwLCAxLCAyMjYsIDEwNSwgMjUxLCAxODQsIDQwLCAxLCAyMTcsIDE1MiwgMjUxLCAKKyAgICAxODQsIDQwLCAxLCAyMzUsIDIzLCAyNTEsIDE4NCwgNDAsIDEsIDI0MiwgNjAsIDI1MSwgMTg0LCAxLCAyNDIsIDI1MCwgCisgICAgMjUxLCAxODQsIDEsIDIzMiwgMjU1LCAyNTEsIDE4NCwgMSwgMjA5LCAyNTAsIDksIDIxOCwgMTAzLCAyMTcsIDE1MiwgOSwgCisgICAgMjE4LCAxMDMsIDIxMiwgNCwgOSwgMjE4LCAxMDMsIDIxMSwgMTU4LCA5LCAyMTgsIDEwMywgMjUxLCA3OSwgOSwgMjE4LCAKKyAgICAxMDMsIDIxNywgMjU0LCA5LCAyMTgsIDEwMywgMjQwLCAxNTgsIDksIDIxOCwgMTAzLCAyNDAsIDE2MiwgOSwgMjE4LCAxMDMsIAorICAgIDI0MCwgMjMxLCA5LCAyMTgsIDEwMywgMjQwLCAxNTksIDksIDIxOCwgMTAzLCAyMTcsIDE1NSwgOSwgMjE4LCAxMDMsIDI0MCwgCisgICAgMTYxLCA5LCAyMTgsIDEwMywgMjQwLCAxNTcsIDksIDIxOCwgMTAzLCAyNDAsIDIyOSwgOSwgMjE4LCAxMDMsIDI0MCwgMTYwLCAKKyAgICA5LCAyMTgsIDEwMywgMjQwLCAxNTYsIDksIDIxOCwgMTAzLCAyMzAsIDI1LCA5LCAyMTgsIDEwMywgMjQyLCA2MCwgOSwgCisgICAgMjE4LCAxMDMsIDIyMiwgOTEsIDksIDIxOCwgMTAzLCAyMjYsIDEwNSwgOSwgMjE4LCAxMDMsIDIxOSwgMjEsIDksIDIxOCwgCisgICAgMTAzLCAyNDksIDYwLCA5LCAyMTgsIDEwMywgMjQwLCAxNjMsIDksIDIxOCwgMTAzLCAyNDEsIDE5MCwgOSwgMjE4LCAxMDMsIAorICAgIDIxNywgMTY0LCA5LCAyMTgsIDEwMywgMjE3LCAyMzMsIDksIDIxOCwgMTAzLCAyMTgsIDE2OCwgOSwgMjE4LCAxMDMsIDIyMCwgCisgICAgMTEwLCA5LCAyMTgsIDEwMywgMjI1LCAyMjQsIDksIDIxOCwgMTAzLCAyMjQsIDk4LCA5LCAyMTgsIDEwMywgMjE2LCA0MywgCisgICAgOSwgMjE4LCAxMDMsIDIxNywgMTU0LCA5LCAyMTgsIDEwMywgMjE3LCAyNDQsIDksIDIxOCwgMTAzLCAyNDAsIDE3MCwgOSwgCisgICAgMjE4LCAxMDMsIDI0MCwgMTU1LCA5LCAyMTgsIDEwMywgMjI1LCAxNDksIDksIDIxOCwgMTAzLCAyMjQsIDk2LCA1NiwgMSwgCisgICAgNCwgMjMzLCAyMTcsIDU2LCAxLCA0LCAyMTksIDE5MSwgNTYsIDEsIDQsIDIxOCwgODMsIDU2LCAxLCA0LCAxMTEsIDU2LCAxLCAKKyAgICA0LCAyMjcsIDIzNywgNTYsIDEsIDQsIDE2MiwgNTYsIDEsIDQsIDI0MSwgMTgwLCA1NiwgMSwgNCwgMjQwLCAyMjIsIDU2LCAKKyAgICAxLCA0LCAyNDEsIDIzOCwgNTYsIDEsIDQsIDI0MSwgNjgsIDU2LCAxLCA0LCAyMzAsIDEwMiwgNTYsIDEsIDQsIDIwNSwgNTYsIAorICAgIDEsIDQsIDIyMywgMzUsIDU2LCAxLCA0LCAyMjIsIDE0MCwgNTYsIDEsIDQsIDIyMywgMTI4LCA1NiwgMSwgNCwgMjIyLCAKKyAgICAyMTEsIDg4LCAyNCwgMjM0LCA1OCwgODgsIDI0LCAyMjgsIDIyNiwgODgsIDI0LCAyMTYsIDEwMSwgODgsIDI0LCAyMjMsIAorICAgIDI2LCA4OCwgMjQsIDIzMCwgMjE3LCA4OCwgMjQsIDIyNSwgOTUsIDg4LCAyNCwgMjE5LCAxNDgsIDg4LCAyNCwgMjM2LCA1NiwgCisgICAgODgsIDI0LCAyNTAsIDQ2LCA4OCwgMjQsIDI1MCwgMTA2LCA4OCwgMjQsIDIzNCwgMTEwLCA4OCwgMjQsIDIxNiwgMTczLCAKKyAgICA4OCwgMjQsIDIyNSwgMTMxLCA4OCwgMjQsIDI0MSwgMTcyLCA4OCwgMjQsIDIzNCwgNTksIDYxLCA4OCwgMjQsIDIyOCwgCisgICAgMjI3LCA2MSwgODgsIDI0LCAyMTYsIDEwMiwgNjEsIDg4LCAyNCwgMjIzLCAyNywgNjEsIDg4LCAyNCwgMjMwLCAyMTgsIDYxLCAKKyAgICA4OCwgMjQsIDIyNSwgOTYsIDYxLCA4OCwgMjQsIDIxOSwgMTQ5LCA2MSwgODgsIDI0LCAyMzYsIDU3LCA2MSwgODgsIDI0LCAKKyAgICAyNTAsIDQ3LCA2MSwgODgsIDI0LCAyNTAsIDEwNywgNjEsIDg4LCAyNCwgMjM0LCAxMTEsIDYxLCA4OCwgMjQsIDIxNiwgCisgICAgMTc0LCA2MSwgODgsIDI0LCAyMjUsIDEzMiwgNjEsIDg4LCAyNCwgMjQxLCAxNzMsIDYxLCA4OCwgMjQsIDI1MCwgNDcsIDcwLCAKKyAgICA4OCwgMjM0LCAzLCAxMzUsIDIyNiwgMjE3LCA4OCwgMjM0LCAzLCAxMzUsIDE0NCwgMjQwLCAyMjIsIDg4LCAxNTQsIDExMCwgCisgICAgODgsIDE1NCwgMTA1LCA4OCwgMTU0LCAxNTgsIDg4LCAxNTQsIDE2MSwgODgsIDE1NCwgMTg5LCA4OCwgMTU0LCAxOTQsIDg4LCAKKyAgICAxNTQsIDE5OCwgODgsIDE1NCwgMTk1LCA4OCwgMTU0LCAyMDAsIDg4LCAxNTQsIDIxNiwgMjQ3LCA4OCwgMTU0LCAyMzAsIAorICAgIDEyOCwgODgsIDE1NCwgMjQ0LCA5NiwgODgsIDE1NCwgMjEyLCA0MCwgODgsIDE1NCwgMjExLCAyMTQsIDg4LCAxNTQsIDIzMSwgCisgICAgMzksIDg4LCAxNTQsIDI0NSwgMjIzLCA4OCwgMTU0LCAyMTgsIDM3LCA4OCwgMTU0LCAyMTgsIDEzMiwgODgsIDE1NCwgMjQxLCAKKyAgICAyNDQsIDg4LCAxNTQsIDIxOSwgNTQsIDg4LCAxNTQsIDIyOSwgMjA0LCA4OCwgMTU0LCAyMTksIDQsIDg4LCAxNTQsIDI0NCwgCisgICAgMTAyLCA4OCwgMTU0LCAyNDksIDIwMCwgODgsIDE1NCwgMjMzLCAxMjUsIDg4LCAxNTQsIDIyMywgNzEsIDg4LCAxNTQsIAorICAgIDI1MSwgMTUsIDg4LCAxNTQsIDIxOCwgODcsIDg4LCAxNTQsIDIxOCwgMjAsIDg4LCAxNTQsIDI0NSwgMTI3LCA4OCwgMTU0LCAKKyAgICAyMjMsIDYzLCA4OCwgMTU0LCAyNTQsIDE1MCwgODgsIDE1NCwgMjQ0LCAxMjgsIDg4LCAxNTQsIDIyMywgNjEsIDg4LCAxNTQsIAorICAgIDIyMCwgMTU2LCA4OCwgMTU0LCAyMjMsIDEyNywgMzcsIDE1NCwgMjI0LCAxMiwgMzcsIDE1NCwgMjM0LCA4MCwgMzcsIDE1NCwgCisgICAgMjIxLCAxOTgsIDM3LCAxNTQsIDIzMywgMjU1LCAzNywgNTQsIDIxNiwgMjQ4LCAyMjYsIDE5NywgODUsIDIxOCwgMjM0LCAKKyAgICAzNywgNTQsIDIxNSwgNzQsIDIyNiwgMTk3LCA4NSwgMjE4LCAyMzQsIDM3LCA1NCwgMjE2LCAxNjMsIDIyNiwgMTk3LCA4NSwgCisgICAgMjE4LCAyMzQsIDM3LCA1NCwgMjQ0LCAxNiwgMjI2LCAxOTcsIDg1LCAyMTgsIDIzNCwgMzcsIDU0LCAyNDQsIDExNSwgMjI2LCAKKyAgICAxOTcsIDg1LCAyMTgsIDIzNCwgMzcsIDU0LCAyMTksIDExMiwgMjI2LCAxOTcsIDg1LCAyMTgsIDIzNCwgMzcsIDU0LCAyMjAsIAorICAgIDExNywgMjI2LCAxOTcsIDg1LCAyMTgsIDIzNCwgMzcsIDU0LCAyNDUsIDE4NSwgMjI2LCAxOTcsIDg1LCAyMTgsIDIzNCwgCisgICAgMjI1LCAyNTEsIDUwLCAzNywgNTQsIDIxNSwgNzQsIDExMCwgMzcsIDU0LCAyMTUsIDc0LCAxMDUsIDM3LCA1NCwgMjE1LCAKKyAgICA3NCwgMTU4LCAzNywgNTQsIDIxNSwgNzQsIDE2MSwgMzcsIDU0LCAyMTUsIDc0LCAxODksIDM3LCA1NCwgMjE1LCA3NCwgCisgICAgMTk0LCAzNywgNTQsIDIxNSwgNzQsIDE5OCwgMzcsIDU0LCAyMTUsIDc0LCAxOTUsIDM3LCA1NCwgMjE1LCA3NCwgMjAwLCAKKyAgICAzNywgNTQsIDIxNiwgMTYyLCAzNywgNTQsIDIxNiwgMTYzLCAxMTAsIDM3LCA1NCwgMjE2LCAxNjMsIDEwNSwgMzcsIDU0LCAKKyAgICAyMTYsIDE2MywgMTU4LCAzNywgNTQsIDIxNiwgMTYzLCAxNjEsIDM3LCA1NCwgMjE2LCAxNjMsIDE4OSwgMzcsIDI0LCAyMzQsIAorICAgIDU4LCAzNywgMjQsIDIyOCwgMjI2LCAzNywgMjQsIDIxNiwgMTAxLCAzNywgMjQsIDIyMywgMjYsIDM3LCAyNCwgMjMwLCAKKyAgICAyMTcsIDM3LCAyNCwgMjI1LCA5NSwgMzcsIDI0LCAyMTksIDE0OCwgMzcsIDI0LCAyMzYsIDU2LCAzNywgMjQsIDI1MCwgNDYsIAorICAgIDM3LCAyNCwgMjUwLCAxMDYsIDM3LCAyNCwgMjM0LCAxMTAsIDM3LCAyNCwgMjE2LCAxNzMsIDM3LCAyNCwgMjI1LCAxMzEsIAorICAgIDM3LCAyNCwgMjQxLCAxNzIsIDM3LCAyNCwgMjM0LCA1OSwgNjEsIDM3LCAyNCwgMjI4LCAyMjcsIDYxLCAzNywgMjQsIDIxNiwgCisgICAgMTAyLCA2MSwgMzcsIDI0LCAyMjMsIDI3LCA2MSwgMzcsIDI0LCAyMzAsIDIxOCwgNjEsIDM3LCAyNCwgMjI1LCA5NiwgNjEsIAorICAgIDM3LCAyNCwgMjE5LCAxNDksIDYxLCAzNywgMjQsIDIzNiwgNTcsIDYxLCAzNywgMjQsIDI1MCwgNDcsIDYxLCAzNywgMjQsIAorICAgIDI1MCwgMTA3LCA2MSwgMzcsIDI0LCAyMzQsIDExMSwgNjEsIDM3LCAyNCwgMjE2LCAxNzQsIDYxLCAzNywgMjQsIDIyNSwgCisgICAgMTMyLCA2MSwgMzcsIDI0LCAyNDEsIDE3MywgNjEsIDM3LCAyMzQsIDMsIDEzNSwgMjUwLCAxNDgsIDM3LCAyMzQsIDMsIAorICAgIDEzNSwgMjM1LCA0NywgMzcsIDI0LCAyMzYsIDU3LCA3MCwgMjM0LCAzLCAyMTgsIDE1OSwgODcsIDM3LCAxNTQsIDExMCwgCisgICAgMzcsIDE1NCwgMTA1LCAzNywgMTU0LCAxNTgsIDM3LCAxNTQsIDE2MSwgMzcsIDE1NCwgMTg5LCAzNywgMTU0LCAxOTQsIDM3LCAKKyAgICAxNTQsIDE5OCwgMzcsIDE1NCwgMTk1LCAzNywgMTU0LCAyMDAsIDM3LCAxNTQsIDIxNiwgMjQ3LCAzNywgMTU0LCAyMzAsIAorICAgIDEyOCwgMzcsIDE1NCwgMjQ0LCA5NiwgMzcsIDE1NCwgMjEyLCA0MCwgMzcsIDE1NCwgMjExLCAyMTQsIDM3LCAxNTQsIDIzMSwgCisgICAgMzksIDM3LCAxNTQsIDI0NSwgMjIzLCAzNywgMTU0LCAyMTgsIDM3LCAzNywgMTU0LCAyMTgsIDEzMiwgMzcsIDE1NCwgMjQxLCAKKyAgICAyNDQsIDM3LCAxNTQsIDIxOSwgNTQsIDM3LCAxNTQsIDIyOSwgMjA0LCAzNywgMTU0LCAyMTksIDQsIDM3LCAxNTQsIDI0NCwgCisgICAgMTAyLCAzNywgMTU0LCAyNDksIDIwMCwgMzcsIDE1NCwgMjMzLCAxMjUsIDM3LCAxNTQsIDIyMSwgMTc0LCAzNywgMTU0LCAKKyAgICAyMzEsIDE4OSwgMzcsIDE1NCwgMjQ0LCAxMzcsIDM3LCAxNTQsIDIxOCwgNDksIDM3LCAxNTQsIDI0NSwgMzQsIDM3LCAxNTQsIAorICAgIDIyNCwgMTg3LCAzNywgMTU0LCAyNTMsIDE5NiwgMzcsIDE1NCwgMjM1LCAxNTksIDM3LCAxNTQsIDIyMywgNjEsIDM3LCAKKyAgICAxNTQsIDI0OSwgMTY0LCAzNywgMTU0LCAyNDksIDE1NSwgMzcsIDE1NCwgMjQxLCAxNjUsIDM3LCAxNTQsIDI1MCwgMTc0LCAKKyAgICAzNywgMTU0LCAyMzIsIDExMCwgMzcsIDE1NCwgMjMzLCA0NiwgMzcsIDE1NCwgMjIyLCAyNTEsIDM3LCAxNTQsIDIzMSwgODMsIAorICAgIDM3LCAxNTQsIDIyMywgODcsIDM3LCAxNTQsIDIxOCwgODcsIDM3LCAxNTQsIDIxOCwgMjAsIDM3LCAxNTQsIDI0NSwgMTI3LCAKKyAgICAzNywgMTU0LCAyMjMsIDYzLCAzNywgMTU0LCAyNTQsIDE1MCwgMzcsIDE1NCwgMjI4LCAyMTIsIDM3LCA1NCwgMjE2LCAxNjMsIAorICAgIDE5NCwgMzcsIDU0LCAyMTYsIDE2MywgMTk4LCAzNywgNTQsIDIxNiwgMTYzLCAxOTUsIDM3LCA1NCwgMjE2LCAxNjMsIDIwMCwgCisgICAgMzcsIDU0LCAyNDQsIDE1LCAzNywgNTQsIDI0NCwgMTYsIDExMCwgMzcsIDU0LCAyNDQsIDE2LCAxMDUsIDM3LCA1NCwgMjQ0LCAKKyAgICAxNiwgMTU4LCAzNywgNTQsIDI0NCwgMTYsIDE2MSwgMzcsIDU0LCAyNDQsIDE2LCAxODksIDM3LCA1NCwgMjQ0LCAxNiwgCisgICAgMTk0LCAzNywgNTQsIDI0NCwgMTYsIDE5OCwgMzcsIDU0LCAyNDQsIDE2LCAxOTUsIDM3LCA1NCwgMjQ0LCAxNiwgMjAwLCAKKyAgICAzNywgNTQsIDI0NCwgMTE0LCAxMDksIDIxNywgMywgMTYsIDMxLCAyMzUsIDEzMywgMTA5LCAyMTcsIDMsIDE2LCAzMSwgCisgICAgMjQ0LCAxNDgsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDIzMSwgMTYwLCAxMDksIDIxNywgMywgMTYsIDMxLCAyNTQsIDQ3LCAKKyAgICAxMDksIDIxNywgMywgMTYsIDMxLCAyMzEsIDEzMiwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjM1LCA0NSwgMTA5LCAyMTcsIDMsIAorICAgIDE2LCAzMSwgMjM1LCA0NiwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjUzLCAxODgsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDIyMCwgCisgICAgMTM2LCAxMDksIDIxNywgMywgMTYsIDMxLCAyMjYsIDIzOSwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjI4LCA0MCwgMTA5LCAKKyAgICAyMTcsIDMsIDE2LCAzMSwgMjQ4LCA4NSwgNDIsIDI0MSwgMTkwLCA0MiwgMjQ1LCA4OCwgNDIsIDI0NSwgNDMsIDIzMiwgCisgICAgMjE5LCAyMzIsIDI0MCwgNTAsIDM3LCA1NiwgNjEsIDM3LCA1NiwgNzMsIDM3LCA1NiwgNzAsIDM3LCA1NiwgNzUsIDM3LCAKKyAgICA1NiwgNzYsIDM3LCA1NiwgMTc2LCAzNywgNTYsIDIzNCwgOTIsIDM3LCA1NiwgMjMzLCAyMTcsIDM3LCA1NiwgMjM0LCAxODIsIAorICAgIDM3LCA1NiwgMjM0LCAyOCwgMzcsIDU2LCAyMDYsIDM3LCA1NiwgMjE5LCAxOTEsIDM3LCA1NiwgMjE4LCA4MywgMzcsIDU2LCAKKyAgICAyMjEsIDE4MSwgMzcsIDU2LCAyMTksIDU4LCAzNywgNTYsIDIxNywgMTA1LCAzNywgNTYsIDIxNiwgMTE3LCAzNywgNTYsIAorICAgIDIxNSwgMTE4LCAzNywgNTYsIDIxNywgMjIsIDM3LCA1NiwgMTExLCAzNywgNTYsIDE5NywgMzcsIDU2LCAyMjgsIDIzMywgCisgICAgMzcsIDU2LCAyMjcsIDIzNywgMzcsIDU2LCAyMjksIDEwNywgMzcsIDU2LCAyMjgsIDc0LCAzNywgNTYsIDE2MiwgMzcsIDU2LCAKKyAgICAyNDEsIDE4MCwgMzcsIDU2LCAyNDAsIDIyMiwgMzcsIDU2LCAyNDEsIDIzOCwgMzcsIDU2LCAyNDEsIDY4LCAzNywgNTYsIAorICAgIDE4NCwgMzcsIDU2LCAyMzAsIDIzMCwgMzcsIDU2LCAyMzAsIDEwMiwgMzcsIDU2LCAyMzEsIDkxLCAzNywgNTYsIDIzMCwgCisgICAgMTYxLCAzNywgNTYsIDE5MSwgMzcsIDU2LCAyMTAsIDIxMiwgMzcsIDU2LCAyMTAsIDI0NCwgMzcsIDU2LCAyMDUsIDM3LCAKKyAgICA1NiwgMjIzLCAzNSwgMzcsIDU2LCAyMjIsIDE0MCwgMzcsIDU2LCAyMjMsIDEyOCwgMzcsIDU2LCAyMjIsIDIxMSwgMzcsIAorICAgIDU2LCAyMTIsIDY1LCAzNywgNTYsIDIxMSwgMjUwLCAzNywgNTYsIDIxMiwgMjIsIDM3LCA1NiwgMjExLCAyMjcsIDQyLCAKKyAgICAyNTQsIDcxLCA0MiwgMjUzLCAyMzksIDQyLCAyNTQsIDk1LCA0MiwgMjU1LCAzMSwgNDIsIDIzNSwgMjI2LCA0MiwgMjM1LCAKKyAgICAxOTYsIDQyLCAyMTQsIDE2NiwgNDIsIDI0NSwgNjYsIDQyLCAyNDUsIDIwNiwgNDIsIDIyNiwgMTg2LCA0MiwgMjI2LCAxODAsIAorICAgIDQyLCAyMzQsIDI0NSwgNDIsIDIzNCwgMjE0LCA0MiwgMjM0LCAyMTEsIDQyLCAyNDMsIDkyLCA0MiwgMjQzLCAxMDEsIDQyLCAKKyAgICAyNDIsIDIwNCwgNDIsIDI0MiwgMjAwLCA0MiwgMjMzLCAxNTAsIDQyLCAyNDIsIDE5MywgNDIsIDIzNCwgNzIsIDQyLCAyMzQsIAorICAgIDcxLCA0MiwgMjM0LCA3MCwgNDIsIDIzNCwgNjksIDQyLCAyNDIsIDg2LCA0MiwgMjQyLCA4NSwgNDIsIDIzMywgMTkzLCA0MiwgCisgICAgMjMzLCAxOTUsIDQyLCAyMzQsIDE3OCwgNDIsIDIzNCwgMSwgNDIsIDIzNCwgOCwgNDIsIDIyMiwgMTYsIDQyLCAyMjEsIAorICAgIDIzNywgNDIsIDIxOSwgMTI5LCA0MiwgMjIwLCAxNDEsIDQyLCAyMjAsIDE0MCwgNDIsIDI0OCwgMjE4LCA0MiwgMjQ4LCAzNiwgCisgICAgNDIsIDI0NywgMTIxLCA0MiwgMjE2LCAzMiwgNDIsIDIyOSwgMjAwLCA0MiwgMjI4LCA0MSwgNDIsIDI0MiwgMzIsIDQyLCAKKyAgICAyMjYsIDg0LCA0MiwgMjI2LCA4MywgNDIsIDI1MiwgMTg4LCA0MiwgMjI1LCAxMDUsIDQyLCAyMjUsIDY5LCA0MiwgMjI1LCAKKyAgICA3MCwgNDIsIDI1MSwgMjM0LCA0MiwgMjQwLCAyMjEsIDQyLCAyNDAsIDIxNywgNDIsIDI1MSwgOTEsIDQyLCAyNDAsIDIwNCwgCisgICAgNDIsIDI0MSwgMjE1LCA0MiwgMjI1LCAxNTksIDQyLCAyMjUsIDE5NCwgNDIsIDI0MSwgMTk4LCA0MiwgMjI1LCAxOTEsIDQyLCAKKyAgICAyMjUsIDIwNywgNDIsIDI1MiwgNjEsIDQyLCAyMjUsIDYsIDQyLCAyNTEsIDE4MCwgNDIsIDI0MSwgNTYsIDQyLCAyMjQsIAorICAgIDI1MCwgNDIsIDI0MSwgNDgsIDQyLCAyNDEsIDUwLCA0MiwgMjMxLCAyMDEsIDQyLCAyMzEsIDE5NywgNDIsIDIzMSwgMjA2LCAKKyAgICA0MiwgMjMxLCAxNTAsIDQyLCAyMzEsIDE3NSwgNDIsIDIzMCwgMTk3LCA0MiwgMjMwLCAxNzYsIDQyLCAyMzAsIDE3NSwgNDIsIAorICAgIDIzMSwgNzQsIDQyLCAyMzEsIDcxLCA0MiwgMjMxLCA3NSwgNDIsIDIxMSwgMTAyLCA0MiwgMjExLCAxMDAsIDQyLCAyMTAsIAorICAgIDIwMSwgNDIsIDIyMiwgMjI2LCA0MiwgMjIyLCAyMzAsIDQyLCAyMjIsIDExNywgNDIsIDIyMiwgMTExLCA0MiwgMjIzLCA4NSwgCisgICAgNDIsIDIyMywgODIsIDQyLCAyMTIsIDM4LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDAsIDIzOSwgMjEwLCA4NiwgMTA5LCAKKyAgICAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDExMCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDEwNSwgMTA5LCAKKyAgICAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDE1OCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDE2MSwgMTA5LCAKKyAgICAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDE4OSwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDE5NCwgMTA5LCAKKyAgICAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDE5OCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDE5NSwgMTA5LCAKKyAgICAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDIwMCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDIxNiwgMjQ3LCAKKyAgICAxMDksIDIxNywgMywgMTYsIDMxLCAyNDAsIDIzOSwgMjQ1LCAxNjcsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAKKyAgICAyMTUsIDc2LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDAsIDIzOSwgMjE2LCAxNjQsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIAorICAgIDI0MCwgMjM5LCAyNDQsIDUsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAyNDQsIDExOCwgMTA5LCAyMTcsIDMsIAorICAgIDE2LCAzMSwgMjQwLCAyMzksIDIxOSwgMTE5LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDAsIDIzOSwgMjIwLCAxMTksIDEwOSwgCisgICAgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAyNDUsIDE5MCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDIyOCwgCisgICAgMTk3LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDAsIDIzOSwgMjE1LCA3MywgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAKKyAgICAyMzksIDIxNSwgNjcsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0MCwgMjM5LCAyMTUsIDYzLCAxMDksIDIxNywgMywgMTYsIAorICAgIDMxLCAyNDAsIDIzOSwgMjE1LCA2NCwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQwLCAyMzksIDIxNSwgNjksIDQyLCAyNDAsIAorICAgIDIzMCwgNDIsIDI0OCwgMjIxLCA0MiwgMjUzLCAxOTIsIDQyLCAxMzAsIDQyLCAyMjYsIDEyNSwgNDIsIDIyNSwgMjI1LCA0MiwgCisgICAgMjQ3LCAxNDcsIDQyLCAyNDcsIDE0OCwgMjE4LCAyMzMsIDQyLCAyNDcsIDE0OCwgMjQ5LCAxMDgsIDQyLCAyMzUsIDE1NiwgCisgICAgNDIsIDI0NSwgOTEsIDIyOSwgMjA1LCAyNDEsIDIxNiwgNDIsIDI0NSwgOTEsIDIyOSwgMjA1LCAyMTcsIDE3NCwgNDIsIAorICAgIDI0NSwgOTEsIDIyOSwgMjA1LCAyMTcsIDc0LCA0MiwgMjQ1LCA5MSwgMjI5LCAyMDUsIDIzMSwgNzAsIDQyLCAyNDksIDE1NywgCisgICAgNDIsIDIyNiwgOTAsIDI1NCwgMTI1LCA0MiwgMTk3LCA0MiwgMjMwLCAxMDMsIDYxLCA0MiwgMTg0LCA0MiwgMTc2LCA0MiwgCisgICAgMjM0LCAxODUsIDQyLCAyMzEsIDEyOSwgNDIsIDI0MywgODAsIDQyLCAyNTEsIDE4LCA0MiwgMjM0LCAxODQsIDQyLCAyMjUsIAorICAgIDE1MCwgNDIsIDIyOSwgODEsIDQyLCAyMzAsIDEwMywgMjQ1LCA2LCA0MiwgMjMwLCAxMDMsIDI0MywgMjAyLCA0MiwgMjMxLCAKKyAgICAxNSwgNDIsIDIzNCwgMTM0LCA0MiwgMjQwLCAxNjMsIDQyLCAyMzQsIDk0LCA0MiwgMjMwLCAyMzIsIDQyLCAyNDIsIDIxNiwgCisgICAgNDIsIDIxNiwgMTE5LCA0MiwgMjMwLCAxMDMsIDE1NiwgNDIsIDIzMCwgMTY5LCA0MiwgMjQ3LCAxNTcsIDQyLCAyMzQsIDQwLCAKKyAgICA0MiwgMjQ0LCA0NSwgNDIsIDIyOCwgMTEyLCA0MiwgMjMwLCAxMDMsIDE5MywgNDIsIDIzMCwgMTY2LCA0MiwgMjQ5LCAyMzksIAorICAgIDQyLCAyMzQsIDM0LCA0MiwgMjMwLCAxNjcsIDIxOCwgMjMzLCA0MiwgMjQ5LCAyNDAsIDIxOCwgMjMzLCA0MiwgMjMyLCA1MCwgCisgICAgMjE4LCAyMzMsIDQyLCAyMzQsIDM1LCAyMTgsIDIzMywgNDIsIDIzMCwgMTY3LCAyNDksIDEwOCwgNDIsIDI0OSwgMjQwLCAKKyAgICAyNDksIDEwOCwgNDIsIDIzMiwgNTAsIDI0OSwgMTA4LCA0MiwgMjM0LCAzNSwgMjQ5LCAxMDgsIDQyLCAyMzIsIDUwLCAxMTcsIAorICAgIDIyMiwgOTEsIDQyLCAyMzIsIDUwLCAxMTcsIDIyMiwgOTIsIDIxOCwgMjMzLCA0MiwgMTkwLCA0MiwgMjMzLCAyNTEsIDQyLCAKKyAgICAyMzAsIDEwNSwgNDIsIDI0MiwgMTUxLCA0MiwgMjIzLCAxNzYsIDQyLCAyMjMsIDE3NywgMTE3LCAyMjIsIDkxLCA0MiwgCisgICAgMjIzLCAxNzcsIDExNywgMjIyLCA5MiwgMjE4LCAyMzMsIDQyLCAyMjQsIDE2MiwgNDIsIDIyOCwgMTMsIDQyLCAyMzAsIAorICAgIDEwMywgMjIyLCA5MSwgNDIsIDIzMCwgMTA0LCA0MiwgMjI0LCAxMTYsIDQyLCAyMjcsIDE3NiwgNDIsIDIzMCwgMTAzLCAKKyAgICAyMTQsIDEwNSwgNDIsIDIzMCwgNDksIDQyLCAyMzMsIDE4NSwgNDIsIDIzMCwgNTAsIDIzMSwgNzQsIDQyLCAyMjQsIDExNSwgCisgICAgNDIsIDIyNywgMTc1LCA0MiwgMjMwLCAxMDMsIDIxMiwgOTgsIDQyLCAyMzAsIDQzLCA0MiwgMjMzLCAxODMsIDQyLCAyMzAsIAorICAgIDQ0LCAyMzEsIDc0LCA0MiwgMjM1LCAyNCwgMjI2LCAyMjAsIDQyLCAyMzIsIDUwLCAyMjYsIDIyMCwgNDIsIDI1NCwgMTM2LCAKKyAgICA0MiwgMjUxLCAxNjAsIDQyLCAyNTAsIDIxNCwgNDIsIDI1MCwgMTkxLCA0MiwgMjUxLCA2NywgMTE3LCAyMzQsIDEzNCwgNDIsIAorICAgIDI0OSwgMjM4LCA0MiwgMjQ4LCAxNDIsIDQyLCAyNDIsIDcyLCA0MiwgMTYyLCA0MiwgMjQwLCAyMzEsIDQyLCAyMzUsIDI1NSwgCisgICAgNDIsIDIzNCwgNDcsIDQyLCAyMzQsIDM1LCAyNTAsIDI1MCwgNDIsIDIzMywgMjE5LCA0MiwgMjMyLCAxNTksIDQyLCAyMzIsIAorICAgIDE1OCwgNDIsIDIzMiwgMTQ3LCA0MiwgMjMyLCA2MywgNDIsIDIzMSwgMTMwLCAyMTksIDc5LCA0MiwgMjMwLCAxOTYsIDQyLCAKKyAgICAyMzAsIDE1MiwgNDIsIDIyNSwgMTQ4LCA0MiwgMjI1LCAxOSwgNDIsIDIyNCwgMjE5LCA0MiwgMjI0LCAyMTcsIDQyLCAyMTgsIAorICAgIDIyNywgNDIsIDIxOCwgMiwgNDIsIDIxMiwgMjQsIDQyLCAyMTQsIDEwNiwgMTE3LCAxOTMsIDQyLCAxMTUsIDExNywgMTkzLCAKKyAgICAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMTEwLCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMTA1LCAKKyAgICAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMTU4LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMTYxLCAKKyAgICAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMTg5LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMTk0LCAKKyAgICAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMTk4LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMTk1LCAKKyAgICAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjAwLCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjE2LCAKKyAgICAyNDcsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyNDUsIDE2NywgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAKKyAgICAxNDYsIDIxNSwgNzYsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyMTYsIDE2NCwgMTA5LCAyMTcsIDMsIDE2LCAKKyAgICAzMSwgMjQ4LCAxNDYsIDI0NCwgNSwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDI0NCwgMTE4LCAxMDksIDIxNywgCisgICAgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjE5LCAxMTksIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyMjAsIDExOSwgCisgICAgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDI0NSwgMTkwLCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgCisgICAgMjI4LCAxOTcsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyMTUsIDczLCAxMDksIDIxNywgMywgMTYsIDMxLCAKKyAgICAyNDgsIDE0NiwgMjE1LCA2NywgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDIxNSwgNjMsIDEwOSwgMjE3LCAzLCAKKyAgICAxNiwgMzEsIDI0OCwgMTQ2LCAyMTUsIDY0LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjE1LCA2OSwgMTA5LCAKKyAgICAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAxNDYsIDIxNSwgNzAsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyMTUsIAorICAgIDY1LCAxMDksIDIxNywgMywgMTYsIDMxLCAyNDgsIDE0NiwgMjE1LCA2NiwgMTA5LCAyMTcsIDMsIDE2LCAzMSwgMjQ4LCAKKyAgICAxNDYsIDIxNSwgNzIsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyMTUsIDY4LCAxMDksIDIxNywgMywgMTYsIAorICAgIDMxLCAyNDgsIDE0NiwgMjE2LCAxNjIsIDEwOSwgMjE3LCAzLCAxNiwgMzEsIDI0OCwgMTQ2LCAyMTYsIDE2MSwgNDIsIDI0MywgCisgICAgMTE4LCAyNDEsIDE5MiwgMzEsIDIxNiwgMTk2LCAyNDksIDE0MCwgMjQxLCAyMjMsIDI0MSwgMTkyLCAzMSwgMjE2LCAxOTYsIAorICAgIDIyMywgMTIyLCAyNDUsIDIyMywgMjQxLCAxOTIsIDMxLCAyNDcsIDIzMSwgMjUzLCAyMDcsIDIxNiwgMTk2LCAyNTIsIDU2LCAKKyAgICAyNDEsIDE5MiwgMzEsIDIxMCwgMjIzLCAyNDQsIDM4LCAyNDEsIDE5MiwgMzEsIDIxMiwgNTksIDI0MSwgMTkyLCAzMSwgCisgICAgMjQ5LCAyMDMsIDI0MSwgMTkyLCAzMSwgMjE2LCAxOTYsIDI1NCwgMywgMjQxLCAxOTIsIDMxLCAyNDEsIDYwLCAyMTYsIDM4LCAKKyAgICAyNDEsIDE5MiwgMzEsIDQsIDIxNywgNjEsIDI0MSwgMTkyLCAzMSwgMjE1LCAyMzcsIDI0MSwgMTkyLCAzMSwgMjI1LCAyMTksIAorICAgIDI0MSwgMTkyLCAzMSwgMjE4LCAxNTgsIDI0MSwgMTkyLCAzMSwgMjQ0LCAxMzksIDI0MSwgMTkyLCAzMSwgMjQyLCAxMzIsIAorICAgIDIyNCwgMjQwLCAyNDEsIDE5MiwgMzEsIDIzMCwgMTU1LCAyNDEsIDE5MiwgMzEsIDI0NSwgMTI2LCAyNDEsIDE5MiwgMzEsIAorICAgIDI0NCwgMzksIDI0MSwgMTkyLCAzMSwgMjExLCAyMDcsIDIyNiwgMTk3LCAyMTYsIDE5NiwgMjQ4LCA4NiwgMjQxLCAxOTIsIAorICAgIDMxLCAyNTQsIDUxLCAyNDEsIDE5MiwgMzEsIDI0OSwgMTg1LCAyNDEsIDE5MiwgMzEsIDI1MSwgMjI3LCAyMTYsIDEzOCwgCisgICAgMjQxLCAxOTIsIDMxLCAyNDIsIDE0OSwgMjQxLCAxOTIsIDMxLCAyMTgsIDI0NSwgMjU0LCA3MCwgMjQxLCAxOTIsIDMxLCAKKyAgICAyMjMsIDUzLCAyNDEsIDE5MiwgMzEsIDIzNSwgMjIwLCAyNDEsIDE5MiwgMzEsIDI0MiwgMTMyLCAyMTcsIDYxLCAyNDEsIAorICAgIDE5MiwgMzEsIDIzMCwgMTExLCAyNDksIDE1OSwgMjQxLCAxOTIsIDMxLCAyNDIsIDEzMiwgMjI0LCAxOTcsIDI0MSwgMTkyLCAKKyAgICAzMSwgMjE2LCAxOTYsIDI1NSwgMTgsIDIxMiwgNDAsIDI0MSwgMTkyLCAzMSwgMjE2LCAxOTYsIDI1MCwgOCwgMjQ0LCA5NiwgCisgICAgMjQxLCAxOTIsIDMxLCAyMzUsIDIzMywgMjQxLCAxOTIsIDMxLCAyNDYsIDU3LCAyNDEsIDE5MiwgMzEsIDIyMywgNTYsIAorICAgIDI0MSwgMTkyLCAzMSwgMjQyLCAxMzIsIDIyNCwgMjI0LCAyNDEsIDE5MiwgMzEsIDIyNCwgMTc3LCAyNDEsIDE5MiwgMzEsIAorICAgIDI0OCwgMTYxLCA2NCwgMjE2LCAxOTYsIDIzMiwgMjMwLCAyNDEsIDE5MiwgMzEsIDIxNiwgMTk2LCAyNDQsIDE3NCwgMjQxLCAKKyAgICAxOTIsIDMxLCAyMjYsIDE2MywgMjQxLCAxOTIsIDMxLCAyMjYsIDI0NCwgMjQxLCAxOTIsIDMxLCAyNDgsIDU5LCAyNDEsIAorICAgIDE5MiwgMzEsIDI0OCwgNzksIDI0MSwgMTkyLCAzMSwgMjM1LCAyNDcsIDI0MSwgMTkyLCAzMSwgMjUxLCAxNDksIDI0MSwgCisgICAgMTkyLCAzMSwgMjQ5LCAyMjEsIDIxNiwgNDIsIDIzMSwgNzYsIDI0MSwgMTkyLCAzMSwgMjQzLCA4NywgMjE2LCAzOCwgMjQxLCAKKyAgICAxOTIsIDMxLCAyMjQsIDEyNSwgMjE0LCAxNTQsIDI0MSwgMTkyLCAzMSwgMjI2LCAxNjIsIDI0MSwgMTkyLCAzMSwgMjE2LCAKKyAgICAxOTYsIDIxMiwgMTMsIDI0MSwgMTkyLCAzMSwgMjIzLCA0NSwgMjQxLCAxOTIsIDMxLCAyMTYsIDE5NiwgMjUwLCAyMjAsIAorICAgIDI0MSwgMTkyLCAzMSwgMjE2LCAxOTYsIDI1MywgMjU1LCAyMTYsIDEzMywgMjQxLCAxOTIsIDMxLCAyMTYsIDE5NiwgMjM0LCAKKyAgICAxNzksIDIxOCwgMTM0LCAyMzAsIDExNSwgMjQxLCAxOTIsIDMxLCAyNDgsIDMyLCAyNDEsIDE5MiwgMzEsIDIxNiwgMTk2LCAKKyAgICAyMzEsIDE1MiwgMjMxLCAyMDIsIDI0MSwgMTkyLCAzMSwgMjU1LCAxOSwgMjQxLCAxOTIsIDMxLCAyMTYsIDE5NiwgMjEyLCAKKyAgICA1NCwgMjQxLCAxOTIsIDMxLCAyMTYsIDE5NiwgMjQzLCA0NywgMjExLCAyMzksIDI0MSwgMTkyLCAzMSwgMjE2LCAxOTYsIAorICAgIDIzNSwgNTIsIDIzMywgMTA3LCAyNDEsIDE5MiwgMzEsIDI0NywgMTg0LCAyNDEsIDE5MiwgMzEsIDIzMiwgMjIwLCAyNDEsIAorICAgIDE5MiwgMzEsIDIzNSwgMjIzLCAyMTUsIDE4NywgMjQxLCAxOTIsIDMxLCA0LCAyMjQsIDE5NywgMjQxLCAxOTIsIDMxLCAKKyAgICAyNTQsIDIxNywgMjQ5LCAyMTIsIDI0MSwgMTkyLCAzMSwgMjUyLCA1OSwgMjQ5LCAyMTIsIDgsIDMsIDIzNSwgMTYwLCA4LCAKKyAgICAzLCAyMzUsIDE1MywgOCwgMywgNzMsIDgsIDMsIDIzNSwgMTgyLCA4LCAzLCAyMzYsIDU4LCA4LCAzLCAyMzYsIDQxLCA4LCAKKyAgICAzLCAyMzYsIDYwLCA4LCAzLCAyMzYsIDU5LCA4LCAzLCAyNTMsIDIwNiwgOCwgMywgMjUzLCAxNjksIDgsIDMsIDYxLCA4LCAKKyAgICAzLCAyNTQsIDcyLCA4LCAzLCAyMTQsIDE2NCwgOCwgMywgMjE0LCAxNjcsIDgsIDMsIDIxNCwgMTY1LCA4LCAzLCAyMjYsIAorICAgIDE0MCwgOCwgMywgMjI2LCAxMTQsIDgsIDMsIDc2LCA4LCAzLCAyMjYsIDE3NSwgOCwgMywgMjQ1LCAzNSwgOCwgMywgNzUsIAorICAgIDgsIDMsIDIxMSwgMTk1LCA4LCAzLCAyNTEsIDIyOCwgOCwgMywgMjUxLCAyMjUsIDgsIDMsIDI1MiwgNiwgOCwgMywgMjUxLCAKKyAgICAyMzgsIDgsIDMsIDI1MSwgMjUxLCA4LCAzLCAyNTEsIDI1MCwgOCwgMywgMjUxLCAyNTMsIDgsIDMsIDI1MSwgMjUyLCA4LCAKKyAgICAzLCAyNTIsIDEyMSwgOCwgMywgMjUyLCAxMTMsIDgsIDMsIDI1MiwgMTkxLCA4LCAzLCAyNTIsIDE0MiwgOCwgMywgMjUxLCAKKyAgICAxMDEsIDgsIDMsIDI1MSwgMTA1LCA4LCAzLCAyNTEsIDEwMiwgOCwgMywgMjUxLCAxNzksIDgsIDMsIDI1MSwgMTYzLCA4LCAKKyAgICAzLCAyNTEsIDIwNSwgOCwgMywgMjUxLCAxODUsIDgsIDMsIDI1MiwgMjEsIDgsIDMsIDI1MiwgNzUsIDgsIDMsIDI1MiwgMzMsIAorICAgIDgsIDMsIDI1MSwgODcsIDgsIDMsIDI1MSwgODQsIDgsIDMsIDI1MSwgMTI1LCA4LCAzLCAyNTEsIDEwMCwgOCwgMywgMjUxLCAKKyAgICA5NCwgOCwgMywgMjUxLCA5OCwgOCwgMywgMjUxLCA3MiwgOCwgMywgMjUxLCA3MCwgOCwgMywgMjUxLCA3NywgOCwgMywgCisgICAgMjUxLCA3NSwgOCwgMywgMjUxLCA3MywgOCwgMywgMjUxLCA3NCwgOCwgMywgMjI1LCA0OSwgOCwgMywgMjI1LCA0NSwgOCwgCisgICAgMywgMjI1LCAxMDgsIDgsIDMsIDIyNSwgNTksIDgsIDMsIDIyNSwgNzUsIDgsIDMsIDIyNSwgMTAyLCA4LCAzLCAyMjUsIDk4LCAKKyAgICA4LCAzLCAyMjUsIDI0MCwgOCwgMywgMjI1LCAyMzAsIDgsIDMsIDE5MCwgOCwgMywgMjI2LCAyMSwgOCwgMywgMjI0LCAxMzUsIAorICAgIDgsIDMsIDIyNCwgMTM3LCA4LCAzLCAyMjQsIDEzNiwgOCwgMywgMjI0LCAyMzMsIDgsIDMsIDIyNCwgMjIyLCA4LCAzLCAKKyAgICAyMjUsIDE2LCA4LCAzLCAyMjQsIDI0NSwgOCwgMywgMjI0LCAxMjEsIDgsIDMsIDIyNCwgMTE3LCA4LCAzLCAyMjQsIDE1MCwgCisgICAgOCwgMywgMjI0LCAxMzQsIDgsIDMsIDIyNCwgMTI2LCA4LCAzLCAyMjQsIDEzMiwgOCwgMywgMjI0LCAxMDAsIDgsIDMsIAorICAgIDIyNCwgOTksIDgsIDMsIDIyNCwgMTA0LCA4LCAzLCAyMjQsIDEwMywgOCwgMywgMjI0LCAxMDEsIDgsIDMsIDIyNCwgMTAyLCAKKyAgICA4LCAzLCAyNTIsIDk2LCA4LCAzLCAyNTIsIDk1LCA4LCAzLCAyNTIsIDEwMiwgOCwgMywgMjUyLCA5NywgOCwgMywgMjUyLCAKKyAgICA5OSwgOCwgMywgMjUyLCA5OCwgOCwgMywgMjUyLCAxMDEsIDgsIDMsIDI1MiwgMTAwLCA4LCAzLCAyNTIsIDEwOCwgOCwgMywgCisgICAgMjUyLCAxMDcsIDgsIDMsIDI1MiwgMTExLCA4LCAzLCAyNTIsIDEwOSwgOCwgMywgMjUyLCA4NywgOCwgMywgMjUyLCA4OSwgCisgICAgOCwgMywgMjUyLCA4OCwgOCwgMywgMjUyLCA5MiwgOCwgMywgMjUyLCA5MSwgOCwgMywgMjUyLCA5NCwgOCwgMywgMjUyLCAKKyAgICA5MywgOCwgMywgMjUyLCAxMDMsIDgsIDMsIDI1MiwgMTA2LCA4LCAzLCAyNTIsIDEwNCwgOCwgMywgMjUyLCA4MywgOCwgMywgCisgICAgMjUyLCA4MiwgOCwgMywgMjUyLCA5MCwgOCwgMywgMjUyLCA4NiwgOCwgMywgMjUyLCA4NCwgOCwgMywgMjUyLCA4NSwgOCwgCisgICAgMywgMjUyLCA3OSwgOCwgMywgMjUyLCA3OCwgOCwgMywgMjUyLCA4MSwgOCwgMywgMjUyLCA4MCwgOCwgMywgMjI5LCAxNjksIAorICAgIDgsIDMsIDIyOSwgMTY4LCA4LCAzLCAyMjksIDE3NCwgOCwgMywgMjI5LCAxNzAsIDgsIDMsIDIyOSwgMTcxLCA4LCAzLCAKKyAgICAyMjksIDE3MywgOCwgMywgMjI5LCAxNzIsIDgsIDMsIDIyOSwgMTc3LCA4LCAzLCAyMjksIDE3NiwgOCwgMywgMjI5LCAxNzksIAorICAgIDgsIDMsIDIyOSwgMTc4LCA4LCAzLCAyMjksIDE2NSwgOCwgMywgMjI5LCAxNjQsIDgsIDMsIDIyOSwgMTY3LCA4LCAzLCAKKyAgICAyMjksIDE2NiwgOCwgMywgMjI5LCAxNTgsIDgsIDMsIDIyOSwgMTU3LCA4LCAzLCAyMjksIDE2MiwgOCwgMywgMjI5LCAxNjEsIAorICAgIDgsIDMsIDIyOSwgMTU5LCA4LCAzLCAyMjksIDE2MCwgOCwgMywgMjI5LCAxNTIsIDgsIDMsIDIyOSwgMTUxLCA4LCAzLCAKKyAgICAyMjksIDE1NiwgOCwgMywgMjI5LCAxNTUsIDgsIDMsIDIyOSwgMTUzLCA4LCAzLCAyMjksIDE1NCwgOCwgMywgMjQxLCAxMTAsIAorICAgIDgsIDMsIDI0MSwgMTA5LCA4LCAzLCAyNDEsIDExNSwgOCwgMywgMjQxLCAxMTEsIDgsIDMsIDI0MSwgMTEyLCA4LCAzLCAKKyAgICAyNDEsIDExNCwgOCwgMywgMjQxLCAxMTMsIDgsIDMsIDI0MSwgMTE4LCA4LCAzLCAyNDEsIDExNywgOCwgMywgMjQxLCAxMjAsIAorICAgIDgsIDMsIDI0MSwgMTE5LCA4LCAzLCAyNDEsIDEwMSwgOCwgMywgMjQxLCAxMDMsIDgsIDMsIDI0MSwgMTAyLCA4LCAzLCAKKyAgICAyNDEsIDEwNiwgOCwgMywgMjQxLCAxMDUsIDgsIDMsIDI0MSwgMTA4LCA4LCAzLCAyNDEsIDEwNywgOCwgMywgMjQxLCA5NywgCisgICAgOCwgMywgMjQxLCA5NiwgOCwgMywgMjQxLCAxMDQsIDgsIDMsIDI0MSwgMTAwLCA4LCAzLCAyNDEsIDk4LCA4LCAzLCAyNDEsIAorICAgIDk5LCA4LCAzLCAyNDEsIDkxLCA4LCAzLCAyNDEsIDk1LCA4LCAzLCAyNDEsIDk0LCA4LCAzLCAyNDEsIDkyLCA4LCAzLCAKKyAgICAyNDEsIDkzLCA4LCAzLCAyMzAsIDE3MiwgOCwgMywgMjMwLCAxNzEsIDgsIDMsIDIzMCwgMjMwLCA4LCAzLCAyMzAsIDE3OCwgCisgICAgOCwgMywgMjMwLCAyMDMsIDgsIDMsIDIzMCwgMjIxLCA4LCAzLCAyMzAsIDIxOSwgOCwgMywgMjMxLCAxMzksIDgsIDMsIAorICAgIDIzMSwgMTM0LCA4LCAzLCAxODQsIDgsIDMsIDIzMSwgMTcyLCA4LCAzLCAyMzAsIDc0LCA4LCAzLCAyMzAsIDczLCA4LCAzLCAKKyAgICAyMzAsIDc3LCA4LCAzLCAyMzAsIDc1LCA4LCAzLCAyMzAsIDEyMSwgOCwgMywgMjMwLCAxMDcsIDgsIDMsIDIzMCwgMTYxLCAKKyAgICA4LCAzLCAyMzAsIDEyNiwgOCwgMywgMjMxLCAyNiwgOCwgMywgMjMxLCA5MSwgOCwgMywgMjMwLCA1NSwgOCwgMywgMjMwLCAKKyAgICA1MSwgOCwgMywgMjMwLCAxMDIsIDgsIDMsIDIzMCwgNzAsIDgsIDMsIDIzMCwgNjMsIDgsIDMsIDIzMCwgNjgsIDgsIDMsIAorICAgIDIzMCwgMjgsIDgsIDMsIDIzMCwgMjcsIDgsIDMsIDIzMCwgMzMsIDgsIDMsIDIzMCwgMzAsIDgsIDMsIDI0NCwgODMsIDgsIAorICAgIDMsIDI0NCwgNzgsIDgsIDMsIDI0NCwgMTIxLCA4LCAzLCAyNDQsIDk4LCA4LCAzLCAyNDQsIDE2NywgOCwgMywgMjQ0LCAKKyAgICAxNTgsIDgsIDMsIDI0NCwgMTk2LCA4LCAzLCAyNDQsIDE3MCwgOCwgMywgMjQ0LCAzLCA4LCAzLCAyNDQsIDQzLCA4LCAzLCAKKyAgICAyNDQsIDI3LCA4LCAzLCAyNDMsIDIxOCwgOCwgMywgMjQzLCAyMTcsIDgsIDMsIDI0MywgMjM0LCA4LCAzLCAyNDMsIDIyMywgCisgICAgOCwgMywgMjQzLCAyMjEsIDgsIDMsIDI0MywgMjIyLCA4LCAzLCAyNDMsIDIwNSwgOCwgMywgMjQzLCAyMDQsIDgsIDMsIAorICAgIDI0MywgMjA4LCA4LCAzLCAyNDMsIDIwNiwgOCwgMywgMjEzLCAxNDQsIDgsIDMsIDIxMywgMTM5LCA4LCAzLCAyMTMsIDE3NiwgCisgICAgOCwgMywgMjEzLCAxNTMsIDgsIDMsIDIxMywgMTY2LCA4LCAzLCAyMTMsIDE2MywgOCwgMywgMjEzLCAxNjgsIDgsIDMsIAorICAgIDIxMywgMTY3LCA4LCAzLCAyMTQsIDcsIDgsIDMsIDIxNCwgMiwgOCwgMywgMjE0LCAyNywgOCwgMywgMjE0LCAxOCwgOCwgMywgCisgICAgMjEzLCAxMjUsIDgsIDMsIDIxMywgMTIxLCA4LCAzLCAyMTMsIDEzOCwgOCwgMywgMjEzLCAxMjYsIDgsIDMsIDIxMywgMTc4LCAKKyAgICA4LCAzLCAyMTMsIDI0NCwgOCwgMywgMjEyLCAxMTAsIDgsIDMsIDIxMiwgMTA4LCA4LCAzLCAyMTIsIDExNiwgOCwgMywgCisgICAgMjEyLCAxMTMsIDgsIDMsIDIxMiwgMTExLCA4LCAzLCAyMTIsIDExMiwgOCwgMywgMjEyLCAxMDIsIDgsIDMsIDIxMiwgMTAxLCAKKyAgICA4LCAzLCAyMTIsIDEwNiwgOCwgMywgMjEyLCAxMDUsIDgsIDMsIDIxMiwgMTAzLCA4LCAzLCAyMTIsIDEwNCwgOCwgMywgCisgICAgMjQ3LCAxNzgsIDgsIDMsIDI0NywgMTY2LCA4LCAzLCAyNDgsIDMsIDgsIDMsIDI0NywgMjAzLCA4LCAzLCAyNDcsIDIzNiwgCisgICAgOCwgMywgMjQ3LCAyNDAsIDgsIDMsIDI0NywgMjM5LCA4LCAzLCAyNDgsIDE1MiwgOCwgMywgMjQ4LCAxNDcsIDgsIDMsIAorICAgIDI0OCwgMjIxLCA4LCAzLCAyNDgsIDE3MiwgOCwgMywgMjQ2LCA2MiwgOCwgMywgMjQ2LCA2MywgOCwgMywgMjQ3LCAxMjAsIAorICAgIDgsIDMsIDI0NiwgMTAyLCA4LCAzLCAyNDcsIDE0NSwgOCwgMywgMjQ3LCAxMjIsIDgsIDMsIDI0OCwgMzAsIDgsIDMsIDI0OCwgCisgICAgOTAsIDgsIDMsIDI0OCwgNDUsIDgsIDMsIDI0NiwgNTMsIDgsIDMsIDI0NiwgNTEsIDgsIDMsIDI0NiwgNzgsIDgsIDMsIAorICAgIDI0NiwgNjEsIDgsIDMsIDI0NiwgNTYsIDgsIDMsIDI0NiwgNTksIDgsIDMsIDIxNiwgNjcsIDgsIDMsIDIxNiwgNjEsIDgsIAorICAgIDMsIDIxNiwgMTE3LCA4LCAzLCAyMTYsIDc2LCA4LCAzLCAyMTYsIDEwOSwgOCwgMywgMjE2LCAxMTEsIDgsIDMsIDIxNiwgCisgICAgMTEwLCA4LCAzLCAyMTcsIDQ2LCA4LCAzLCAyMTcsIDMzLCA4LCAzLCAyMTcsIDEwNSwgOCwgMywgMjE3LCA1NCwgOCwgMywgCisgICAgMjE1LCAxMDIsIDgsIDMsIDIxNSwgMTAxLCA4LCAzLCAyMTUsIDEwNCwgOCwgMywgMjE1LCAxMDMsIDgsIDMsIDIxNiwgNSwgCisgICAgOCwgMywgMjE2LCAxLCA4LCAzLCAxMTEsIDgsIDMsIDIxNiwgMTMsIDgsIDMsIDIxNiwgMjEzLCA4LCAzLCAyMTcsIDIyLCA4LCAKKyAgICAzLCAyMTYsIDIzNywgOCwgMywgMjE1LCA4OCwgOCwgMywgMjE1LCA4MywgOCwgMywgMjE1LCAxMTgsIDgsIDMsIDIxNSwgCisgICAgMTAwLCA4LCAzLCAyMTUsIDg5LCA4LCAzLCAyMTUsIDk4LCA4LCAzLCAyNDgsIDEwNywgOCwgMywgMjQ4LCAxMDYsIDgsIDMsIAorICAgIDI0OCwgMTEyLCA4LCAzLCAyNDgsIDEwOCwgOCwgMywgMjQ4LCAxMDksIDgsIDMsIDI0OCwgMTExLCA4LCAzLCAyNDgsIDExMCwgCisgICAgOCwgMywgMjQ4LCAxMjgsIDgsIDMsIDI0OCwgMTI3LCA4LCAzLCAyNDgsIDEzNSwgOCwgMywgMjQ4LCAxMjksIDgsIDMsIAorICAgIDI0OCwgOTcsIDgsIDMsIDI0OCwgOTksIDgsIDMsIDI0OCwgOTgsIDgsIDMsIDI0OCwgMTAyLCA4LCAzLCAyNDgsIDEwMSwgOCwgCisgICAgMywgMjQ4LCAxMDUsIDgsIDMsIDI0OCwgMTAzLCA4LCAzLCAyNDgsIDEyMCwgOCwgMywgMjQ4LCAxMjMsIDgsIDMsIDI0OCwgCisgICAgMTIxLCA4LCAzLCAyNDgsIDkzLCA4LCAzLCAyNDgsIDkyLCA4LCAzLCAyNDgsIDEwMCwgOCwgMywgMjQ4LCA5NiwgOCwgMywgCisgICAgMjQ4LCA5NCwgOCwgMywgMjQ4LCA5NSwgOCwgMywgMjI5LCAxMjYsIDgsIDMsIDIyOSwgMTI1LCA4LCAzLCAyMjksIDEzMywgCisgICAgOCwgMywgMjI5LCAxMjgsIDgsIDMsIDIyOSwgMTI5LCA4LCAzLCAyMjksIDEzMCwgOCwgMywgMjI5LCAxNDIsIDgsIDMsIAorICAgIDIyOSwgMTQxLCA4LCAzLCAyMjksIDE0OCwgOCwgMywgMjI5LCAxNDMsIDgsIDMsIDIyOSwgMTE4LCA4LCAzLCAyMjksIDExNywgCisgICAgOCwgMywgMjI5LCAxMjQsIDgsIDMsIDIyOSwgMTE5LCA4LCAzLCAyMjksIDEzNCwgOCwgMywgMjI5LCAxNDAsIDgsIDMsIAorICAgIDIyOSwgMTM4LCA4LCAzLCAyMjksIDExMCwgOCwgMywgMjI5LCAxMDksIDgsIDMsIDIyOSwgMTE1LCA4LCAzLCAyMjksIDExMywgCisgICAgOCwgMywgMjI5LCAxMTEsIDgsIDMsIDIyOSwgMTEyLCA4LCAzLCAyNDEsIDc3LCA4LCAzLCAyNDEsIDc2LCA4LCAzLCAyNDEsIAorICAgIDgzLCA4LCAzLCAyNDEsIDc4LCA4LCAzLCAyNDEsIDgwLCA4LCAzLCAyNDEsIDc5LCA4LCAzLCAyNDEsIDgyLCA4LCAzLCAKKyAgICAyNDEsIDgxLCA4LCAzLCAyNDEsIDg4LCA4LCAzLCAyNDEsIDg3LCA4LCAzLCAyNDEsIDkwLCA4LCAzLCAyNDEsIDg5LCA4LCAKKyAgICAzLCAyNDEsIDcxLCA4LCAzLCAyNDEsIDcyLCA4LCAzLCAyNDEsIDc0LCA4LCAzLCAyNDEsIDczLCA4LCAzLCAyNDEsIDc1LCAKKyAgICA4LCAzLCAyNDEsIDg0LCA4LCAzLCAyNDEsIDg2LCA4LCAzLCAyNDEsIDg1LCA4LCAzLCAyNDEsIDcwLCA4LCAzLCAyMjgsIAorICAgIDE4OSwgOCwgMywgMjI4LCAxODcsIDgsIDMsIDIyOCwgMjMzLCA4LCAzLCAyMjgsIDE5MiwgOCwgMywgMjI4LCAyMTUsIDgsIAorICAgIDMsIDIyOCwgMjI5LCA4LCAzLCAyMjgsIDIyOCwgOCwgMywgMjI5LCAxODMsIDgsIDMsIDE5NywgOCwgMywgMjI5LCAxOTcsIAorICAgIDgsIDMsIDIyNywgMTg2LCA4LCAzLCAyMjcsIDE4OCwgOCwgMywgMjI3LCAxODcsIDgsIDMsIDIyOCwgNTEsIDgsIDMsIDIyOCwgCisgICAgMzgsIDgsIDMsIDIyOCwgNzQsIDgsIDMsIDIyOCwgNjAsIDgsIDMsIDIyOSwgODMsIDgsIDMsIDIyOSwgMTA3LCA4LCAzLCAKKyAgICAyMjksIDk0LCA4LCAzLCAyMjcsIDE4MSwgOCwgMywgMjI3LCAxNzcsIDgsIDMsIDIyNywgMjM3LCA4LCAzLCAyMjcsIDE4NSwgCisgICAgOCwgMywgMjI3LCAxODMsIDgsIDMsIDIyNywgMTg0LCA4LCAzLCAyNDEsIDE0MSwgOCwgMywgMjQxLCAxNDAsIDgsIDMsIAorICAgIDI0MSwgMTQ2LCA4LCAzLCAyNDEsIDE0MiwgOCwgMywgMjQxLCAxNDMsIDgsIDMsIDI0MSwgMTQ1LCA4LCAzLCAyNDEsIDE0NCwgCisgICAgOCwgMywgMjQxLCAxNTEsIDgsIDMsIDI0MSwgMTUwLCA4LCAzLCAyNDEsIDE1MywgOCwgMywgMjQxLCAxNTIsIDgsIDMsIAorICAgIDI0MSwgMTMzLCA4LCAzLCAyNDEsIDEzNSwgOCwgMywgMjQxLCAxMzQsIDgsIDMsIDI0MSwgMTM3LCA4LCAzLCAyNDEsIDEzOSwgCisgICAgOCwgMywgMjQxLCAxMzgsIDgsIDMsIDI0MSwgMTQ3LCA4LCAzLCAyNDEsIDE0OSwgOCwgMywgMjQxLCAxNDgsIDgsIDMsIAorICAgIDI0MSwgMTI5LCA4LCAzLCAyNDEsIDEyOCwgOCwgMywgMjQxLCAxMzYsIDgsIDMsIDI0MSwgMTMyLCA4LCAzLCAyNDEsIDEzMCwgCisgICAgOCwgMywgMjQxLCAxMzEsIDgsIDMsIDI0MSwgMTIzLCA4LCAzLCAyNDEsIDEyMiwgOCwgMywgMjQxLCAxMjcsIDgsIDMsIAorICAgIDI0MSwgMTI2LCA4LCAzLCAyNDEsIDEyNCwgOCwgMywgMjQxLCAxMjUsIDgsIDMsIDIzMiwgMTk1LCA4LCAzLCAyMzIsIDE4OSwgCisgICAgOCwgMywgMjMyLCAyNDEsIDgsIDMsIDIzMiwgMjAyLCA4LCAzLCAyMzIsIDIzMywgOCwgMywgMjMyLCAyMzIsIDgsIDMsIAorICAgIDIzMiwgMjM2LCA4LCAzLCAyMzIsIDIzNCwgOCwgMywgMjMzLCA3OSwgOCwgMywgMjMzLCA2OSwgOCwgMywgMjMzLCAxMzUsIAorICAgIDgsIDMsIDIzMywgODgsIDgsIDMsIDIzMiwgNzksIDgsIDMsIDIzMiwgNzgsIDgsIDMsIDIzMiwgODEsIDgsIDMsIDIzMiwgCisgICAgODAsIDgsIDMsIDIzMiwgMTE2LCA4LCAzLCAyMzIsIDEwNiwgOCwgMywgMjMyLCAxNTYsIDgsIDMsIDIzMiwgMTIwLCA4LCAzLCAKKyAgICAyMzMsIDIsIDgsIDMsIDIzMywgNTgsIDgsIDMsIDIzMywgMTcsIDgsIDMsIDIzMiwgNzQsIDgsIDMsIDIzMiwgNzIsIDgsIDMsIAorICAgIDIzMiwgOTgsIDgsIDMsIDIzMiwgNzcsIDgsIDMsIDIzMiwgNzUsIDgsIDMsIDIzMiwgNzYsIDgsIDMsIDIzMiwgNTQsIDgsIAorICAgIDMsIDIzMiwgNTMsIDgsIDMsIDIzMiwgNjIsIDgsIDMsIDIzMiwgNTcsIDgsIDMsIDIzMiwgNTUsIDgsIDMsIDIzMiwgNTYsIAorICAgIDgsIDMsIDI0MiwgMTg5LCA4LCAzLCAyNDIsIDE4OCwgOCwgMywgMjQyLCAyMTQsIDgsIDMsIDI0MiwgMTk5LCA4LCAzLCAKKyAgICAyNDIsIDIwNiwgOCwgMywgMjQyLCAyMDUsIDgsIDMsIDI0MiwgMjA4LCA4LCAzLCAyNDIsIDIwNywgOCwgMywgMjQzLCA4OSwgCisgICAgOCwgMywgMjQzLCA4NCwgOCwgMywgMjQzLCAxMzUsIDgsIDMsIDI0MywgOTksIDgsIDMsIDI0MiwgOTEsIDgsIDMsIDI0MiwgCisgICAgOTAsIDgsIDMsIDI0MiwgOTMsIDgsIDMsIDI0MiwgOTIsIDgsIDMsIDI0MiwgMTU0LCA4LCAzLCAyNDIsIDE1MiwgOCwgMywgCisgICAgMjQyLCAxNzQsIDgsIDMsIDI0MiwgMTYyLCA4LCAzLCAyNDMsIDMzLCA4LCAzLCAyNDMsIDMxLCA4LCAzLCAyNDMsIDYyLCA4LCAKKyAgICAzLCAyNDMsIDQ0LCA4LCAzLCAyNDIsIDgxLCA4LCAzLCAyNDIsIDgwLCA4LCAzLCAyNDIsIDExMywgOCwgMywgMjQyLCA4OSwgCisgICAgOCwgMywgMjQyLCA4MiwgOCwgMywgMjQyLCA4OCwgOCwgMywgMjM0LCA2MSwgOCwgMywgMjM0LCA2MCwgOCwgMywgMjM0LCAKKyAgICA5MiwgOCwgMywgMjM0LCA3NSwgOCwgMywgMjM0LCA4NSwgOCwgMywgMjM0LCA4OCwgOCwgMywgMjM0LCA4NiwgOCwgMywgCisgICAgMjM0LCAyMDIsIDgsIDMsIDIzNCwgMTkwLCA4LCAzLCAxNzYsIDgsIDMsIDIzNCwgMjI4LCA4LCAzLCAyMzMsIDIwMCwgOCwgCisgICAgMywgMjMzLCAyMDUsIDgsIDMsIDIzMywgMjAyLCA4LCAzLCAyMzQsIDAsIDgsIDMsIDIzMywgMjUyLCA4LCAzLCAyMzQsIDI4LCAKKyAgICA4LCAzLCAyMzQsIDcsIDgsIDMsIDIzNCwgMTU2LCA4LCAzLCAyMzQsIDE0MCwgOCwgMywgMjM0LCAxODIsIDgsIDMsIDIzNCwgCisgICAgMTU5LCA4LCAzLCAyMzMsIDE4OSwgOCwgMywgMjMzLCAxODYsIDgsIDMsIDIzMywgMjE3LCA4LCAzLCAyMzMsIDE5OSwgOCwgCisgICAgMywgMjMzLCAxOTIsIDgsIDMsIDIzMywgMTk2LCA4LCAzLCAyNDMsIDE1LCA4LCAzLCAyNDMsIDE0LCA4LCAzLCAyNDMsIDE5LCAKKyAgICA4LCAzLCAyNDMsIDE2LCA4LCAzLCAyNDMsIDE4LCA4LCAzLCAyNDMsIDE3LCA4LCAzLCAyNDMsIDI2LCA4LCAzLCAyNDMsIAorICAgIDI1LCA4LCAzLCAyNDMsIDI5LCA4LCAzLCAyNDMsIDI3LCA4LCAzLCAyNDMsIDYsIDgsIDMsIDI0MywgNSwgOCwgMywgMjQzLCAKKyAgICA4LCA4LCAzLCAyNDMsIDcsIDgsIDMsIDI0MywgMTEsIDgsIDMsIDI0MywgMTAsIDgsIDMsIDI0MywgMTMsIDgsIDMsIDI0MywgCisgICAgMTIsIDgsIDMsIDI0MywgMjEsIDgsIDMsIDI0MywgMjAsIDgsIDMsIDI0MywgMjQsIDgsIDMsIDI0MywgMjIsIDgsIDMsIAorICAgIDI0MywgMSwgOCwgMywgMjQzLCAwLCA4LCAzLCAyNDMsIDksIDgsIDMsIDI0MywgNCwgOCwgMywgMjQzLCAyLCA4LCAzLCAKKyAgICAyNDMsIDMsIDgsIDMsIDIzMCwgMjQ5LCA4LCAzLCAyMzAsIDI1MCwgOCwgMywgMjMxLCAxMiwgOCwgMywgMjMxLCAxMSwgOCwgCisgICAgMywgMjMxLCAxNCwgOCwgMywgMjMxLCAxMywgOCwgMywgMjMwLCAyNDAsIDgsIDMsIDIzMCwgMjQyLCA4LCAzLCAyMzAsIAorICAgIDI0MSwgOCwgMywgMjMwLCAyNDUsIDgsIDMsIDIzMCwgMjQ0LCA4LCAzLCAyMzAsIDI0NywgOCwgMywgMjMwLCAyNDYsIDgsIAorICAgIDMsIDIzMCwgMjUxLCA4LCAzLCAyMzAsIDI1MywgOCwgMywgMjMwLCAyNTIsIDgsIDMsIDIzMCwgMjM2LCA4LCAzLCAyMzAsIAorICAgIDIzNSwgOCwgMywgMjMwLCAyNDMsIDgsIDMsIDIzMCwgMjM5LCA4LCAzLCAyMzAsIDIzNywgOCwgMywgMjMwLCAyMzgsIDgsIAorICAgIDMsIDI0MCwgMTgwLCA4LCAzLCAyNDAsIDE3OSwgOCwgMywgMjQwLCAxODYsIDgsIDMsIDI0MCwgMTgxLCA4LCAzLCAyNDAsIAorICAgIDE4MywgOCwgMywgMjQwLCAxODIsIDgsIDMsIDI0MCwgMTg1LCA4LCAzLCAyNDAsIDE4NCwgOCwgMywgMjQwLCAxOTEsIDgsIAorICAgIDMsIDI0MCwgMTkwLCA4LCAzLCAyNDAsIDE5MywgOCwgMywgMjQwLCAxOTIsIDgsIDMsIDI0MCwgMTcyLCA4LCAzLCAyNDAsIAorICAgIDE3MSwgOCwgMywgMjQwLCAxNzQsIDgsIDMsIDI0MCwgMTczLCA4LCAzLCAyNDAsIDE3NiwgOCwgMywgMjQwLCAxNzUsIDgsIAorICAgIDMsIDI0MCwgMTc4LCA4LCAzLCAyNDAsIDE3NywgOCwgMywgMjQwLCAxODcsIDgsIDMsIDI0MCwgMTg5LCA4LCAzLCAyNDAsIAorICAgIDE4OCwgOCwgMywgMjI5LCAyNCwgOCwgMywgMjI5LCAyNiwgOCwgMywgMjI5LCAyNSwgOCwgMywgMjI5LCA2NywgOCwgMywgCisgICAgMjI5LCA2NSwgOCwgMywgMjI5LCA3NywgOCwgMywgMjI5LCA3MCwgOCwgMywgMjI4LCAyNDMsIDgsIDMsIDIyOCwgMjQyLCA4LCAKKyAgICAzLCAyMjgsIDI0NCwgOCwgMywgMjI4LCAyNTIsIDgsIDMsIDIyOCwgMjQ5LCA4LCAzLCAyMjksIDQsIDgsIDMsIDIyOCwgCisgICAgMjU0LCA4LCAzLCAyMjksIDU4LCA4LCAzLCAyMjksIDY0LCA4LCAzLCAyMjksIDYwLCA4LCAzLCAyNDEsIDE1NiwgOCwgMywgCisgICAgMjQxLCAxNjYsIDgsIDMsIDI0MSwgMTc1LCA4LCAzLCAyNDEsIDI1MSwgOCwgMywgMjQxLCAyNDMsIDgsIDMsIDE2MiwgOCwgCisgICAgMywgMjQyLCA2LCA4LCAzLCAyNDAsIDIwNiwgOCwgMywgMjQwLCAyMDUsIDgsIDMsIDI0MCwgMjA4LCA4LCAzLCAyNDAsIAorICAgIDIwNywgOCwgMywgMjQwLCAyNDIsIDgsIDMsIDI0MCwgMjMzLCA4LCAzLCAyNDEsIDY4LCA4LCAzLCAyNDEsIDQ3LCA4LCAzLCAKKyAgICAyNDEsIDE5NCwgOCwgMywgMjQxLCAyMzgsIDgsIDMsIDI0MSwgMjA2LCA4LCAzLCAyMTIsIDQzLCA4LCAzLCAyMTIsIDI4LCAKKyAgICA4LCAzLCAyMTIsIDY1LCA4LCAzLCAyMTIsIDUxLCA4LCAzLCAyMTEsIDE4NSwgOCwgMywgMjExLCAxODcsIDgsIDMsIDIxMSwgCisgICAgMTg2LCA4LCAzLCAyMTEsIDIwMywgOCwgMywgMjExLCAyMjcsIDgsIDMsIDIxMSwgMjEwLCA4LCAzLCAyMTIsIDUsIDgsIDMsIAorICAgIDIxMiwgMjIsIDgsIDMsIDIxMiwgMTAsIDgsIDMsIDIxMCwgMzAsIDgsIDMsIDIxMCwgMjksIDgsIDMsIDIxMCwgNDQsIDgsIAorICAgIDMsIDIxMCwgMzIsIDgsIDMsIDIxMCwgMzcsIDgsIDMsIDIxMCwgMzksIDgsIDMsIDIxMCwgMzgsIDgsIDMsIDIxMCwgMTAyLCAKKyAgICA4LCAzLCAyMTAsIDk5LCA4LCAzLCAyMTAsIDExNiwgOCwgMywgMjEwLCAxMDUsIDgsIDMsIDIxMCwgNiwgOCwgMywgMjEwLCAKKyAgICA4LCA4LCAzLCAyMTAsIDcsIDgsIDMsIDIxMCwgMTksIDgsIDMsIDIxMCwgMTgsIDgsIDMsIDIxMCwgMjMsIDgsIDMsIDIxMCwgCisgICAgMjAsIDgsIDMsIDIxMCwgODQsIDgsIDMsIDIxMCwgOTQsIDgsIDMsIDIxMCwgODgsIDgsIDMsIDIxMCwgMiwgOCwgMywgMjEwLCAKKyAgICAxLCA4LCAzLCAyMTAsIDEzLCA4LCAzLCAyMTAsIDUsIDgsIDMsIDIxMCwgMywgOCwgMywgMjEwLCA0LCA4LCAzLCAyMDksIAorICAgIDI0NSwgOCwgMywgMjA5LCAyNDQsIDgsIDMsIDIwOSwgMjUwLCA4LCAzLCAyMDksIDI0OCwgOCwgMywgMjA5LCAyNDYsIDgsIAorICAgIDMsIDIwOSwgMjQ3LCA4LCAzLCAyNTAsIDI4LCA4LCAzLCAyNTAsIDI0LCA4LCAzLCAyNTAsIDUxLCA4LCAzLCAyNTAsIDM3LCAKKyAgICA4LCAzLCAyNTAsIDQ4LCA4LCAzLCAyNTAsIDQyLCA4LCAzLCAyNTAsIDUwLCA4LCAzLCAyNTAsIDQ5LCA4LCAzLCAyNTAsIAorICAgIDIyNCwgOCwgMywgMjUwLCAyMTcsIDgsIDMsIDI1MSwgMzMsIDgsIDMsIDI1MCwgMjUxLCA4LCAzLCAyNDksIDEwNCwgOCwgMywgCisgICAgMjQ5LCAxMDYsIDgsIDMsIDI0OSwgMTA1LCA4LCAzLCAyNDksIDE1MywgOCwgMywgMjQ5LCAxNDQsIDgsIDMsIDI0OSwgMjM4LCAKKyAgICA4LCAzLCAyNDksIDE2OSwgOCwgMywgMjUwLCAxNjAsIDgsIDMsIDI1MCwgMTkwLCA4LCAzLCAyNTAsIDE2NSwgOCwgMywgCisgICAgMjQ5LCA4NCwgOCwgMywgMjQ5LCA4MiwgOCwgMywgMjQ5LCAxMTIsIDgsIDMsIDI0OSwgMTAyLCA4LCAzLCAyNDksIDg5LCA4LCAKKyAgICAzLCAyNDksIDEwMSwgOCwgMywgMjQ5LCA2MywgOCwgMywgMjQ5LCA2MiwgOCwgMywgMjQ5LCA3MywgOCwgMywgMjQ5LCA2OSwgCisgICAgOCwgMywgMjQ5LCA2NCwgOCwgMywgMjQ5LCA2NiwgOCwgMywgMjA5LCAyMjgsIDgsIDMsIDIwOSwgMjI3LCA4LCAzLCAyMDksIAorICAgIDIzNCwgOCwgMywgMjA5LCAyMjksIDgsIDMsIDIwOSwgMjMxLCA4LCAzLCAyMDksIDIzMCwgOCwgMywgMjA5LCAyMzMsIDgsIAorICAgIDMsIDIwOSwgMjMyLCA4LCAzLCAyMDksIDI0MCwgOCwgMywgMjA5LCAyMzksIDgsIDMsIDIwOSwgMjQzLCA4LCAzLCAyMDksIAorICAgIDI0MSwgOCwgMywgMjA5LCAyMjQsIDgsIDMsIDIwOSwgMjI2LCA4LCAzLCAyMDksIDIyNSwgOCwgMywgMjA5LCAyMzUsIDgsIAorICAgIDMsIDIwOSwgMjM4LCA4LCAzLCAyMDksIDIzNiwgOCwgMywgMjA5LCAyMTcsIDgsIDMsIDIwOSwgMjIxLCA4LCAzLCAyMDksIAorICAgIDIyMCwgOCwgMywgMjA5LCAyMTgsIDgsIDMsIDIwOSwgMjE5LCA4LCAzLCAyMDksIDIxMSwgOCwgMywgMjA5LCAyMTAsIDgsIAorICAgIDMsIDIwOSwgMjE2LCA4LCAzLCAyMDksIDIxNCwgOCwgMywgMjA5LCAyMTIsIDgsIDMsIDIwOSwgMjEzLCA4LCAzLCAyMjcsIAorICAgIDEwNCwgOCwgMywgMjI3LCAxMDMsIDgsIDMsIDIyNywgMTA5LCA4LCAzLCAyMjcsIDEwNSwgOCwgMywgMjI3LCAxMDYsIDgsIAorICAgIDMsIDIyNywgMTA4LCA4LCAzLCAyMjcsIDEwNywgOCwgMywgMjI3LCAxMTQsIDgsIDMsIDIyNywgMTEzLCA4LCAzLCAyMjcsIAorICAgIDExNywgOCwgMywgMjI3LCAxMTYsIDgsIDMsIDIyNywgOTcsIDgsIDMsIDIyNywgOTgsIDgsIDMsIDIyNywgMTAxLCA4LCAzLCAKKyAgICAyMjcsIDEwMiwgOCwgMywgMjI3LCAxMTAsIDgsIDMsIDIyNywgMTEyLCA4LCAzLCAyMjcsIDkyLCA4LCAzLCAyMjcsIDEwMCwgCisgICAgOCwgMywgMjI3LCA5NiwgOCwgMywgMjI3LCA5MywgOCwgMywgMjI3LCA5NCwgOCwgMywgMjI3LCA4NywgOCwgMywgMjI3LCAKKyAgICA4NiwgOCwgMywgMjI3LCA5MSwgOCwgMywgMjI3LCA5MCwgOCwgMywgMjI3LCA4OCwgOCwgMywgMjI3LCA4OSwgOCwgMywgCisgICAgMjE5LCAxMjcsIDgsIDMsIDE5NCwgOCwgMywgMjE5LCAxOTEsIDgsIDMsIDIxOSwgMTMwLCA4LCAzLCAyMTksIDE4MywgOCwgCisgICAgMywgMjE5LCAxODYsIDgsIDMsIDIxOSwgMTg0LCA4LCAzLCAyMjEsIDIyNiwgOCwgMywgMjIxLCAyMTQsIDgsIDMsIDIwNiwgCisgICAgOCwgMywgMjIxLCAyMzQsIDgsIDMsIDIxOCwgMjgsIDgsIDMsIDIxOCwgMzAsIDgsIDMsIDIxOCwgMjksIDgsIDMsIDIxOSwgCisgICAgMzQsIDgsIDMsIDIxOSwgMjMsIDgsIDMsIDIxOSwgNTgsIDgsIDMsIDIxOSwgMzgsIDgsIDMsIDIyMCwgMTE0LCA4LCAzLCAKKyAgICAyMjEsIDE4MSwgOCwgMywgMjIwLCAxMzksIDgsIDMsIDIxOCwgNSwgOCwgMywgMjE4LCAzLCA4LCAzLCAyMTgsIDgzLCA4LCAKKyAgICAzLCAyMTgsIDI3LCA4LCAzLCAyMTgsIDksIDgsIDMsIDIxOCwgMTcsIDgsIDMsIDIxNywgMTY2LCA4LCAzLCAyMTcsIDE2NSwgCisgICAgOCwgMywgMjE3LCAyMzIsIDgsIDMsIDIxNywgMTczLCA4LCAzLCAyMTcsIDE2OCwgOCwgMywgMjE3LCAxNzIsIDgsIDMsIAorICAgIDIxOCwgMTg2LCA4LCAzLCAyMTgsIDE4NSwgOCwgMywgMjE4LCAxOTIsIDgsIDMsIDIxOCwgMTg3LCA4LCAzLCAyMTgsIDE4OSwgCisgICAgOCwgMywgMjE4LCAxOTEsIDgsIDMsIDIxOCwgMTkwLCA4LCAzLCAyMTgsIDIwMCwgOCwgMywgMjE4LCAxOTgsIDgsIDMsIAorICAgIDIxOCwgMjIzLCA4LCAzLCAyMTgsIDIwMSwgOCwgMywgMjE4LCAxODEsIDgsIDMsIDIxOCwgMTgwLCA4LCAzLCAyMTgsIDE4NCwgCisgICAgOCwgMywgMjE4LCAxODIsIDgsIDMsIDIxOCwgMTk0LCA4LCAzLCAyMTgsIDE5NywgOCwgMywgMjE4LCAxOTUsIDgsIDMsIAorICAgIDIxOCwgMTc3LCA4LCAzLCAyMTgsIDE3NSwgOCwgMywgMjE4LCAxNzksIDgsIDMsIDIxOCwgMTc4LCA4LCAzLCAyMTgsIDE3MCwgCisgICAgOCwgMywgMjE4LCAxNjksIDgsIDMsIDIxOCwgMTc0LCA4LCAzLCAyMTgsIDE3MywgOCwgMywgMjE4LCAxNzEsIDgsIDMsIAorICAgIDIxOCwgMTcyLCA4LCAzLCAyMTAsIDc3LCA4LCAzLCAyMTAsIDc2LCA4LCAzLCAyMTAsIDgyLCA4LCAzLCAyMTAsIDc5LCA4LCAKKyAgICAzLCAyMTAsIDU5LCA4LCAzLCAyMTAsIDYxLCA4LCAzLCAyMTAsIDYwLCA4LCAzLCAyMTAsIDY0LCA4LCAzLCAyMTAsIDYzLCAKKyAgICA4LCAzLCAyMTAsIDY3LCA4LCAzLCAyMTAsIDY1LCA4LCAzLCAyMTAsIDcxLCA4LCAzLCAyMTAsIDcwLCA4LCAzLCAyMTAsIAorICAgIDc0LCA4LCAzLCAyMTAsIDcyLCA4LCAzLCAyMTAsIDU1LCA4LCAzLCAyMTAsIDU0LCA4LCAzLCAyMTAsIDYyLCA4LCAzLCAKKyAgICAyMTAsIDU4LCA4LCAzLCAyMTAsIDU2LCA4LCAzLCAyMTAsIDU3LCA4LCAzLCAyMTAsIDQ3LCA4LCAzLCAyMTAsIDQ2LCA4LCAKKyAgICAzLCAyMTAsIDUxLCA4LCAzLCAyMTAsIDUwLCA4LCAzLCAyMTAsIDQ4LCA4LCAzLCAyMTAsIDQ5LCA4LCAzLCAyNTAsIDEzNiwgCisgICAgOCwgMywgMjUwLCAxMzMsIDgsIDMsIDI1MCwgMTU3LCA4LCAzLCAyNTAsIDE0NCwgOCwgMywgMjUwLCA2NSwgOCwgMywgMjUwLCAKKyAgICA2NCwgOCwgMywgMjUwLCA2NywgOCwgMywgMjUwLCA2NiwgOCwgMywgMjUwLCA3OSwgOCwgMywgMjUwLCA3OCwgOCwgMywgCisgICAgMjUwLCA4NiwgOCwgMywgMjUwLCA4MSwgOCwgMywgMjUwLCAxMTUsIDgsIDMsIDI1MCwgMTEzLCA4LCAzLCAyNTAsIDEzMSwgCisgICAgOCwgMywgMjUwLCAxMjEsIDgsIDMsIDI1MCwgNTksIDgsIDMsIDI1MCwgNjksIDgsIDMsIDI1MCwgNjMsIDgsIDMsIDI1MCwgCisgICAgNjAsIDgsIDMsIDI1MCwgNjIsIDgsIDMsIDI1MCwgNTMsIDgsIDMsIDI1MCwgNTIsIDgsIDMsIDI1MCwgNTcsIDgsIDMsIAorICAgIDI1MCwgNTYsIDgsIDMsIDI1MCwgNTQsIDgsIDMsIDI1MCwgNTUsIDgsIDMsIDIyMiwgMTc1LCA4LCAzLCAyMjIsIDE3OSwgOCwgCisgICAgMywgMjIyLCAxNTgsIDgsIDMsIDIyMiwgMTU5LCA4LCAzLCAyMjIsIDE2MiwgOCwgMywgMjIyLCAxNjEsIDgsIDMsIDIyMiwgCisgICAgMTY1LCA4LCAzLCAyMjIsIDE2MywgOCwgMywgMjIyLCAxNjksIDgsIDMsIDIyMiwgMTY4LCA4LCAzLCAyMjIsIDE3NCwgOCwgCisgICAgMywgMjIyLCAxNzAsIDgsIDMsIDIyMiwgMTU0LCA4LCAzLCAyMjIsIDE1MiwgOCwgMywgMjIyLCAxNjAsIDgsIDMsIDIyMiwgCisgICAgMTU3LCA4LCAzLCAyMjIsIDE1NSwgOCwgMywgMjIyLCAxNTYsIDgsIDMsIDIyMiwgMTQ3LCA4LCAzLCAyMjIsIDE0NiwgOCwgCisgICAgMywgMjIyLCAxNTEsIDgsIDMsIDIyMiwgMTUwLCA4LCAzLCAyMjIsIDE0OCwgOCwgMywgMjIyLCAxNDksIDgsIDMsIDIyOCwgCisgICAgMzQsIDgsIDMsIDIyOCwgMzMsIDgsIDMsIDIyOCwgMzYsIDgsIDMsIDIyOCwgMzUsIDgsIDMsIDIyOCwgMjYsIDgsIDMsIAorICAgIDIyOCwgMjgsIDgsIDMsIDIyOCwgMjcsIDgsIDMsIDIyOCwgMzAsIDgsIDMsIDIyOCwgMjksIDgsIDMsIDIyOCwgMzIsIDgsIAorICAgIDMsIDIyOCwgMzEsIDgsIDMsIDIyOCwgMjEsIDgsIDMsIDIyOCwgMjAsIDgsIDMsIDIyOCwgMjUsIDgsIDMsIDIyOCwgMjQsIAorICAgIDgsIDMsIDIyOCwgMjIsIDgsIDMsIDIyOCwgMjMsIDgsIDMsIDIyOCwgMTUsIDgsIDMsIDIyOCwgMTQsIDgsIDMsIDIyOCwgCisgICAgMTksIDgsIDMsIDIyOCwgMTgsIDgsIDMsIDIyOCwgMTYsIDgsIDMsIDIyOCwgMTcsIDgsIDMsIDIyMCwgNzIsIDgsIDMsIAorICAgIDIyMCwgNjcsIDgsIDMsIDIyMCwgMTAyLCA4LCAzLCAyMjAsIDgzLCA4LCAzLCAyMTksIDIxNSwgOCwgMywgMjE5LCAyMTcsIAorICAgIDgsIDMsIDIxOSwgMjE2LCA4LCAzLCAyMTksIDIzNiwgOCwgMywgMjE5LCAyMzMsIDgsIDMsIDIyMCwgNywgOCwgMywgMjE5LCAKKyAgICAyNTQsIDgsIDMsIDIyMCwgNDIsIDgsIDMsIDIyMCwgMzUsIDgsIDMsIDIyMCwgNjMsIDgsIDMsIDIyMCwgNTAsIDgsIDMsIAorICAgIDIxOSwgMjExLCA4LCAzLCAyMTksIDIwOSwgOCwgMywgMjE5LCAyMjUsIDgsIDMsIDIxOSwgMjE0LCA4LCAzLCAyMTksIDIxMiwgCisgICAgOCwgMywgMjE5LCAyMTMsIDgsIDMsIDIxOSwgMTk0LCA4LCAzLCAyMTksIDE5MywgOCwgMywgMjE5LCAyMDAsIDgsIDMsIAorICAgIDIxOSwgMTk3LCA4LCAzLCAyMTksIDE5NSwgOCwgMywgMjE5LCAxOTYsIDgsIDMsIDIyMywgMTQxLCA4LCAzLCAyMjMsIDEzNSwgCisgICAgOCwgMywgMjA1LCA4LCAzLCAyMjMsIDE0NywgOCwgMywgMjIyLCAxMjAsIDgsIDMsIDIyMiwgMTIyLCA4LCAzLCAyMjIsIAorICAgIDEyMSwgOCwgMywgMjIyLCAxODgsIDgsIDMsIDIyMiwgMTgxLCA4LCAzLCAyMjIsIDIxMSwgOCwgMywgMjIyLCAxOTIsIDgsIAorICAgIDMsIDIyMywgNDMsIDgsIDMsIDIyMywgMTI4LCA4LCAzLCAyMjMsIDgxLCA4LCAzLCAyMjIsIDExMywgOCwgMywgMjIyLCAKKyAgICAxMTAsIDgsIDMsIDIyMiwgMTQwLCA4LCAzLCAyMjIsIDExOSwgOCwgMywgMjIyLCAxMTUsIDgsIDMsIDIyMiwgMTE2LCA4LCAKKyAgICAzLCAyMjIsIDk1LCA4LCAzLCAyMjIsIDk0LCA4LCAzLCAyMjIsIDEwMCwgOCwgMywgMjIyLCA5OCwgOCwgMywgMjIyLCA5NiwgCisgICAgOCwgMywgMjIyLCA5NywgOCwgMywgMjM1LCA5OCwgOCwgMywgMjM1LCA5NywgOCwgMywgMjM1LCAxMDgsIDgsIDMsIDIzNSwgCisgICAgOTksIDgsIDMsIDIzNSwgMTA0LCA4LCAzLCAyMzUsIDEwMywgOCwgMywgMjM1LCAxMDYsIDgsIDMsIDIzNSwgMTA1LCA4LCAzLCAKKyAgICAyMzUsIDQxLCA4LCAzLCAyMzUsIDQwLCA4LCAzLCAyMzUsIDQzLCA4LCAzLCAyMzUsIDQyLCA4LCAzLCAyMzUsIDU2LCA4LCAKKyAgICAzLCAyMzUsIDU0LCA4LCAzLCAyMzUsIDY4LCA4LCAzLCAyMzUsIDU4LCA4LCAzLCAyMzUsIDM0LCA4LCAzLCAyMzUsIDMyLCAKKyAgICA4LCAzLCAyMzUsIDUxLCA4LCAzLCAyMzUsIDM5LCA4LCAzLCAyMzUsIDM2LCA4LCAzLCAyMzUsIDM3LCA4LCAzLCAyMzUsIAorICAgIDI2LCA4LCAzLCAyMzUsIDI1LCA4LCAzLCAyMzUsIDMwLCA4LCAzLCAyMzUsIDI5LCA4LCAzLCAyMzUsIDI3LCA4LCAzLCAKKyAgICAyMzUsIDI4LCA4LCAzLCAyMjQsIDQ2LCA4LCAzLCAyMjQsIDQ0LCA4LCAzLCAyMjQsIDUzLCA4LCAzLCAyMjQsIDQ3LCA4LCAKKyAgICAzLCAyMjQsIDUwLCA4LCAzLCAyMjQsIDQ5LCA4LCAzLCAyMjQsIDUyLCA4LCAzLCAyMjQsIDUxLCA4LCAzLCAyMjMsIDI1NSwgCisgICAgOCwgMywgMjIzLCAyNTIsIDgsIDMsIDIyNCwgMSwgOCwgMywgMjI0LCAwLCA4LCAzLCAyMjQsIDMzLCA4LCAzLCAyMjQsIDMyLCAKKyAgICA4LCAzLCAyMjQsIDQyLCA4LCAzLCAyMjQsIDM2LCA4LCAzLCAyMjMsIDI0NywgOCwgMywgMjIzLCAyNDMsIDgsIDMsIDIyNCwgCisgICAgMzAsIDgsIDMsIDIyMywgMjUxLCA4LCAzLCAyMjMsIDI0OSwgOCwgMywgMjIzLCAyNTAsIDgsIDMsIDIyMywgMjI3LCA4LCAzLCAKKyAgICAyMjMsIDIyNSwgOCwgMywgMjIzLCAyMzcsIDgsIDMsIDIyMywgMjMwLCA4LCAzLCAyMjMsIDIyOCwgOCwgMywgMjIzLCAyMjksIAorICAgIDgsIDMsIDIzNSwgODcsIDgsIDMsIDIzNSwgODYsIDgsIDMsIDIzNSwgOTMsIDgsIDMsIDIzNSwgODgsIDgsIDMsIDIzNSwgCisgICAgOTAsIDgsIDMsIDIzNSwgODksIDgsIDMsIDIzNSwgOTIsIDgsIDMsIDIzNSwgOTEsIDgsIDMsIDIzNSwgNzgsIDgsIDMsIAorICAgIDIzNSwgODAsIDgsIDMsIDIzNSwgNzksIDgsIDMsIDIzNSwgODMsIDgsIDMsIDIzNSwgODIsIDgsIDMsIDIzNSwgODUsIDgsIAorICAgIDMsIDIzNSwgODQsIDgsIDMsIDIzNSwgNzQsIDgsIDMsIDIzNSwgNzMsIDgsIDMsIDIzNSwgODEsIDgsIDMsIDIzNSwgNzcsIAorICAgIDgsIDMsIDIzNSwgNzUsIDgsIDMsIDIzNSwgNzYsIDgsIDMsIDIzNSwgNzAsIDgsIDMsIDIzNSwgNjksIDgsIDMsIDIzNSwgCisgICAgNzIsIDgsIDMsIDIzNSwgNzEsIDgsIDMsIDIyOCwgMTYyLCA4LCAzLCAyMjgsIDE2MSwgOCwgMywgMjI4LCAxNjksIDgsIDMsIAorICAgIDIyOCwgMTYzLCA4LCAzLCAyMjgsIDE2NSwgOCwgMywgMjI4LCAxNjQsIDgsIDMsIDIyOCwgMTY4LCA4LCAzLCAyMjgsIDE2NiwgCisgICAgOCwgMywgMjI4LCAxNTEsIDgsIDMsIDIyOCwgMTUyLCA4LCAzLCAyMjgsIDE1NywgOCwgMywgMjI4LCAxNTYsIDgsIDMsIAorICAgIDIyOCwgMTYwLCA4LCAzLCAyMjgsIDE1OCwgOCwgMywgMjI4LCAxNDYsIDgsIDMsIDIyOCwgMTU1LCA4LCAzLCAyMjgsIDE1MCwgCisgICAgOCwgMywgMjI4LCAxNDcsIDgsIDMsIDIyOCwgMTQ4LCA4LCAzLCAyMjgsIDE0MSwgOCwgMywgMjI4LCAxNDAsIDgsIDMsIAorICAgIDIyOCwgMTQ1LCA4LCAzLCAyMjgsIDE0NCwgOCwgMywgMjI4LCAxNDIsIDgsIDMsIDIyOCwgMTQzLCA4LCAzLCAyMjcsIDEzNywgCisgICAgOCwgMywgMjI3LCAxMzYsIDgsIDMsIDIyNywgMTQ4LCA4LCAzLCAyMjcsIDE0MSwgOCwgMywgMjI3LCAxNDUsIDgsIDMsIAorICAgIDIyNywgMTQ0LCA4LCAzLCAyMjcsIDE0NywgOCwgMywgMjI3LCAxNDYsIDgsIDMsIDIyNywgMTI0LCA4LCAzLCAyMjcsIDEyNiwgCisgICAgOCwgMywgMjI3LCAxMjUsIDgsIDMsIDIyNywgMTMwLCA4LCAzLCAyMjcsIDEyOSwgOCwgMywgMjI3LCAxMzQsIDgsIDMsIAorICAgIDIyNywgMTMxLCA4LCAzLCAyMjcsIDEyMiwgOCwgMywgMjI3LCAxMjAsIDgsIDMsIDIyNywgMTI4LCA4LCAzLCAyMjcsIDEyMywgCisgICAgOCwgMywgMjExLCAxNTAsIDgsIDMsIDIxMSwgMTQ5LCA4LCAzLCAyMTEsIDE1NywgOCwgMywgMjExLCAxNTIsIDgsIDMsIAorICAgIDIxMSwgMTU0LCA4LCAzLCAyMTEsIDE1MywgOCwgMywgMjExLCAxNTYsIDgsIDMsIDIxMSwgMTU1LCA4LCAzLCAyMTEsIDEzOSwgCisgICAgOCwgMywgMjExLCAxNDAsIDgsIDMsIDIxMSwgMTQ0LCA4LCAzLCAyMTEsIDE0MywgOCwgMywgMjExLCAxNDgsIDgsIDMsIAorICAgIDIxMSwgMTQ2LCA4LCAzLCAyMTEsIDEyMSwgOCwgMywgMjExLCAxMTksIDgsIDMsIDIxMSwgMTMxLCA4LCAzLCAyMTEsIDEyNCwgCisgICAgOCwgMywgMjExLCAxMjIsIDgsIDMsIDIxMSwgMTIzLCA4LCAzLCAyMTAsIDI1MCwgOCwgMywgMjEwLCAyNDgsIDgsIDMsIAorICAgIDIxMSwgOCwgOCwgMywgMjEwLCAyNTEsIDgsIDMsIDIxMSwgMiwgOCwgMywgMjExLCAxLCA4LCAzLCAyMTEsIDUsIDgsIDMsIAorICAgIDIxMSwgMywgOCwgMywgMjEwLCAxOTEsIDgsIDMsIDIxMCwgMTkwLCA4LCAzLCAyMTAsIDE5NCwgOCwgMywgMjEwLCAxOTIsIAorICAgIDgsIDMsIDIxMCwgMjI0LCA4LCAzLCAyMTAsIDIyMSwgOCwgMywgMjEwLCAyNDQsIDgsIDMsIDIxMCwgMjI4LCA4LCAzLCAKKyAgICAyMTAsIDE4MiwgOCwgMywgMjEwLCAxNzgsIDgsIDMsIDIxMCwgMjEyLCA4LCAzLCAyMTAsIDE4OSwgOCwgMywgMjEwLCAxODUsIAorICAgIDgsIDMsIDIxMCwgMTg2LCA4LCAzLCAyMTAsIDE2MiwgOCwgMywgMjEwLCAxNjEsIDgsIDMsIDIxMCwgMTY5LCA4LCAzLCAKKyAgICAyMTAsIDE2NSwgOCwgMywgMjEwLCAxNjMsIDgsIDMsIDIxMCwgMTY0LCA4LCAzNCwgMjI0LCAzMywgOCwgMzQsIDIzMiwgCisgICAgMjQxLCA4LCAzNCwgMjM0LCA2MSwgOCwgMzQsIDIyNywgMTQxLCA4LCAzNCwgMjQ5LCA2OSwgOCwgMzQsIDIxOCwgMTkyLCA4LCAKKyAgICAzNCwgMjQzLCAxMiwgOCwgMzQsIDI0MywgNDQsIDgsIDM0LCAyMzAsIDIzMCwgOCwgMzQsIDI0MCwgMTgwLCA4LCAzNCwgCisgICAgMjMyLCA1NiwgOCwgMzQsIDI1MiwgODMsIDgsIDM0LCAyMzAsIDEyNiwgOCwgMzQsIDIxMCwgMjQ0LCA4LCAzNCwgMjI0LCAKKyAgICAxMjEsIDgsIDM0LCAyNDAsIDE3NCwgOCwgMzQsIDIxNywgNDYsIDgsIDM0LCAyNDMsIDEzNSwgOCwgMzQsIDIxMCwgNSwgOCwgCisgICAgMzQsIDI0OSwgNjMsIDgsIDM0LCAyNDgsIDk1LCA4LCAzNCwgMjUxLCA5OCwgOCwgMzQsIDI0MywgOCwgOCwgMzQsIDIyNywgCisgICAgMTMxLCA4LCAzNCwgMjE1LCAxMTgsIDgsIDM0LCAyMjYsIDE3NSwgOCwgMzQsIDIzNSwgNzQsIDgsIDM0LCAyMTAsIDE5LCA4LCAKKyAgICAzNCwgMjI0LCAxMDAsIDgsIDM0LCAyNDEsIDEwOCwgOCwgMzQsIDIxMCwgMjUwLCA4LCAzNCwgMjEyLCAxMTIsIDgsIDM0LCAKKyAgICAyMTksIDIwMCwgOCwgMzQsIDIxMywgMjQ0LCA4LCAzNCwgMjEwLCAxMTYsIDgsIDM0LCAyMzUsIDY4LCA4LCAzNCwgMjI3LCAKKyAgICA5NiwgOCwgMzQsIDIzNSwgNzIsIDgsIDM0LCAyNDIsIDE1NCwgOCwgMzQsIDIzNSwgOTIsIDgsIDM0LCAyMTEsIDIyNywgOCwgCisgICAgMzQsIDI0NiwgNzgsIDgsIDM0LCAyMTksIDIxMywgOCwgMzQsIDIzMiwgMjM2LCA4LCAzNCwgMjQ5LCA3MywgOCwgMzQsIAorICAgIDI0OSwgMTA1LCA4LCAzNCwgMjUwLCAzNywgOCwgMzQsIDI0MCwgMTc3LCA4LCAzNCwgMjIwLCA3MiwgOCwgMzQsIDIxMCwgNCwgCisgICAgOCwgMzQsIDIxOSwgMjU0LCA4LCAzNCwgMjUwLCAxMzEsIDgsIDM0LCAyMDksIDIzMSwgOCwgMzQsIDIyOSwgMTczLCA4LCAKKyAgICAzNCwgMjM0LCAxODIsIDIzMiwgMTk2LCAxLCAyNTIsIDE5MSwgMjMyLCAxOTYsIDEsIDE5MCwgMjMyLCAxOTYsIDEsIDIyNSwgCisgICAgMTQ3LCAyMzIsIDE5NiwgMSwgMjQ4LCAyMjEsIDIzMiwgMTk2LCAxLCAyMTcsIDEwNSwgMjMyLCAxOTYsIDEsIDIxNiwgMjA4LCAKKyAgICAyMzIsIDE5NiwgMSwgMjQzLCAxMzUsIDIzMiwgMTk2LCAxLCAxNzYsIDIzMiwgMTk2LCAxLCAyMzQsIDEzMiwgMjMyLCAxOTYsIAorICAgIDEsIDIzNSwgMTQxLCAyMzIsIDE5NiwgMSwgMjUxLCAzMywgMjMyLCAxOTYsIDEsIDI1MCwgMTU3LCAyMzIsIDE5NiwgMSwgCisgICAgMjQ2LCAzOCwgMjMyLCAxOTYsIDEsIDIxNSwgMTgzLCAyMzIsIDE5NiwgMSwgMjE1LCAxNzUsIDIzMiwgMTk2LCAxLCAxODQsIAorICAgIDIzMiwgMTk2LCAxLCAxOTcsIDIzMiwgMTk2LCAxLCAyMzMsIDEzNSwgMjMyLCAxOTYsIDEsIDIwNiwgMjMyLCAxOTYsIDEsIAorICAgIDIxMCwgODIsIDIzMiwgMTk2LCAxLCAyMTAsIDExNiwgMjMyLCAxOTYsIDEsIDIyOSwgNzcsIDIzMiwgMTk2LCAxLCAxNjIsIAorICAgIDIzMiwgMTk2LCAxLCAyMTEsIDE2NSwgMjMyLCAxOTYsIDEsIDI0MSwgMTg5LCAyMzIsIDE5NiwgMSwgMjQ0LCAxOTYsIDIzMiwgCisgICAgMTk2LCAxLCAyMTIsIDY1LCAyMzIsIDE5NiwgMSwgMjIwLCAxMDIsIDIzMiwgMTk2LCAxLCAxOTEsIDIzMiwgMTk2LCAxLCAKKyAgICAyNDIsIDI0OSwgMjMyLCAxOTYsIDEsIDYxLCAyMzIsIDE5NiwgMSwgMjU0LCAyNDMsIDIzMiwgMTk2LCAxLCA3NSwgMjMyLCAKKyAgICAxOTYsIDEsIDI0NSwgNTUsIDIzMiwgMTk2LCAxLCA3MywgMjMyLCAxOTYsIDEsIDc2LCAyMzIsIDE5NiwgMSwgNzAsIDIzMiwgCisgICAgMTk2LCAxLCAyMTQsIDIxNCwgMjMyLCAxOTYsIDEsIDIxNCwgMjA4LCAyMzIsIDE5NiwgMSwgMjI2LCAyMzQsIDIzMiwgMTk2LCAKKyAgICAxLCAxMzgsIDIzMCwgMzIsIDIxNiwgMTE3LCAyMzIsIDE5NiwgMSwgMTM4LCAyMjksIDIyOSwgMjI1LCAxNiwgMjMyLCAxOTYsIAorICAgIDEsIDEzOCwgMjMwLCAzMiwgMjQ5LCA3MiwgMjMyLCAxOTYsIDEsIDEzOCwgMjMwLCAzMiwgMjUxLCAyMDUsIDIzMiwgMTk2LCAKKyAgICAxLCAxMzgsIDIzMCwgMzIsIDE5NywgMjMyLCAxOTYsIDEsIDEzOCwgMjMwLCAzMiwgMjM1LCAxMTUsIDIzMiwgMTk2LCAyMjQsIAorICAgIDE0MSwgMjQ5LCAyMTksIDIzMiwgMTk2LCAyMjQsIDE0MSwgMjQzLCAyMjksIDIxOCwgMTI5LCA0MSwgMywgMjQ1LCAyMDksIAorICAgIDQxLCAzLCAyNDUsIDIwNSwgNDEsIDMsIDI0MSwgMjIwLCA0MSwgMywgMjEyLCAxNywgNDEsIDMsIDIxMiwgMTYsIDQxLCAzLCAKKyAgICAyMjUsIDIxMSwgNDEsIDMsIDI1MiwgMTMsIDQxLCAzLCAyNTIsIDY2LCA0MSwgMywgMjMxLCAxMTYsIDQxLCAzLCAyMzMsIAorICAgIDI0NywgNDEsIDMsIDIzMSwgNiwgNDEsIDMsIDI0MywgNzUsIDQxLCAzLCAyNDQsIDE0NywgNDEsIDMsIDIxMywgMjUwLCA0MSwgCisgICAgMywgMjE3LCAxMSwgNDEsIDMsIDIxNiwgMTk0LCA0MSwgMywgMjQ4LCAxNiwgNDEsIDMsIDI0OCwgMTMsIDQxLCAzLCAyMzMsIAorICAgIDUwLCA0MSwgMywgMjIzLCAxMDgsIDQxLCAzLCAyNDgsIDc3LCA0MSwgMywgMjI5LCAxMzksIDQxLCAzLCAyMjEsIDE3MCwgCisgICAgNDEsIDMsIDIyMCwgNjEsIDQxLCAzLCAyMTAsIDkyLCA0MSwgMywgMjEwLCA3MywgNDEsIDMsIDI1MCwgMTgyLCA0MSwgMywgCisgICAgMjM1LCAxMjQsIDQxLCAzLCAyMjgsIDE3NiwgNDEsIDMsIDIxMSwgNDQsIDQxLCAzLCAyMzQsIDE4MSwgNDEsIDMsIDIyOSwgCisgICAgNTEsIDQxLCAzLCAyNDMsIDU1LCA0MSwgMywgMjMxLCA4MCwgNDEsIDMsIDIyOSwgMTAzLCA0MSwgMywgMjI3LCAxNTUsIDQxLCAKKyAgICAzLCA3MywgNDEsIDMsIDIzNSwgMjU1LCA0MSwgMywgMjQxLCAxODAsIDQxLCAzLCAyNDEsIDE2MCwgNDEsIDMsIDIxMSwgCisgICAgMjUwLCA0MSwgMywgMjExLCAyNDEsIDQxLCAzLCAyMjUsIDEwOCwgNDEsIDMsIDI1MiwgMTEsIDQxLCAzLCAyNTIsIDYsIDQxLCAKKyAgICAzLCAyMzEsIDEwOSwgNDEsIDMsIDIzMywgMjQ0LCA0MSwgMywgMjMxLCAzLCA0MSwgMywgMjQzLCA3MSwgNDEsIDMsIDI0NCwgCisgICAgMTIxLCA0MSwgMywgMjEzLCAxNzYsIDQxLCAzLCAyMTYsIDExNywgNDEsIDMsIDIxNiwgMTc1LCA0MSwgMywgMjQ4LCA4LCAKKyAgICA0MSwgMywgMjQ4LCAxMiwgNDEsIDMsIDIzMiwgMjQxLCA0MSwgMywgMjIzLCAzNSwgNDEsIDMsIDI0OCwgMywgNDEsIDMsIAorICAgIDIyOSwgMTMzLCA0MSwgMywgMjE5LCAxOTEsIDQxLCAzLCAyMjAsIDMyLCA0MSwgMywgMjEwLCA0NCwgNDEsIDMsIDIxMCwgCisgICAgNjksIDQxLCAzLCAyNTAsIDUxLCA0MSwgMywgMjM1LCAxMDgsIDQxLCAzLCAyMjgsIDE2OSwgNDEsIDMsIDIxMSwgOCwgNDEsIAorICAgIDMsIDIzNCwgOTIsIDQxLCAzLCAyMjksIDQzLCA0MSwgMywgMjQyLCAyMTQsIDQxLCAzLCAyMzAsIDIzMCwgNDEsIDMsIDIyOCwgCisgICAgMjMzLCA0MSwgMywgMjI3LCAxNDgsIDQxLCAzLCA2MSwgNDEsIDMsIDI1NCwgMTIzLCA0MSwgMywgMjI5LCA3MiwgNDEsIDMsIAorICAgIDE2MiwgNDEsIDMsIDI0MiwgMTgsIDQxLCAzLCAyMTIsIDY1LCA0MSwgMywgMjEyLCA1NSwgNDEsIDMsIDE5MCwgNDEsIDMsIAorICAgIDI1MiwgMTgsIDQxLCAzLCAyNTIsIDE5MSwgNDEsIDMsIDIzMSwgMTI0LCA0MSwgMywgMjMzLCAyNTEsIDQxLCAzLCAyMzMsIAorICAgIDI1MCwgNDEsIDMsIDIzMSwgMTAsIDQxLCAzLCAyNDMsIDc5LCA0MSwgMywgMjQ0LCAxOTYsIDQxLCAzLCAyMTQsIDI3LCA0MSwgCisgICAgMywgMjE3LCAxMDUsIDQxLCAzLCAyMTYsIDIwOCwgNDEsIDMsIDI0OCwgMjUsIDQxLCAzLCAyNDgsIDE1LCA0MSwgMywgMjMzLCAKKyAgICAxMzUsIDQxLCAzLCAyMDUsIDQxLCAzLCAyNDgsIDIyMSwgNDEsIDMsIDIyOSwgMTQ4LCA0MSwgMywgMjA2LCA0MSwgMywgCisgICAgMjIwLCAxMDIsIDQxLCAzLCAyMTAsIDExNiwgNDEsIDMsIDIxMCwgODIsIDQxLCAzLCAyNTEsIDMzLCA0MSwgMywgMjM1LCAKKyAgICAxNDEsIDQxLCAzLCAyMjgsIDE4NSwgNDEsIDMsIDE5MSwgNDEsIDMsIDE3NiwgNDEsIDMsIDIzNCwgMjM0LCA0MSwgMywgCisgICAgMjI5LCA1NiwgNDEsIDMsIDI0MywgMTM1LCA0MSwgMywgMTg0LCA0MSwgMywgMTk3LCA0MSwgMywgMjI3LCAxNjUsIDQxLCAzLCAKKyAgICAyMjYsIDE4MywgNDEsIDMsIDIyNiwgMTc5LCA0MSwgMywgMjQxLCA1MywgNDEsIDMsIDIxMSwgMjE1LCA0MSwgMywgMjExLCAKKyAgICAyMTEsIDQxLCAzLCAyMjQsIDI0OSwgNDEsIDMsIDI1MiwgOSwgNDEsIDMsIDI1MSwgMTkzLCA0MSwgMywgMjMxLCAxMDQsIAorICAgIDQxLCAzLCAyMzMsIDI0MiwgNDEsIDMsIDIzMCwgMjU1LCA0MSwgMywgMjQzLCA2NywgNDEsIDMsIDI0NCwgMzQsIDQxLCAzLCAKKyAgICAyMTMsIDEyNywgNDEsIDMsIDIxNiwgMTcsIDQxLCAzLCAyMTYsIDE1MywgNDEsIDMsIDI0OCwgNiwgNDEsIDMsIDI0OCwgMTAsIAorICAgIDQxLCAzLCAyMzIsIDEyNywgNDEsIDMsIDIyMiwgMTk3LCA0MSwgMywgMjQ3LCAxMjUsIDQxLCAzLCAyMjksIDEyMCwgNDEsIAorICAgIDMsIDIxOSwgNDAsIDQxLCAzLCAyMjAsIDEsIDQxLCAzLCAyMTAsIDIxLCA0MSwgMywgMjEwLCA2NiwgNDEsIDMsIDI0OSwgCisgICAgMTc0LCA0MSwgMywgMjM1LCA1OSwgNDEsIDMsIDIyOCwgMTU5LCA0MSwgMywgMjEwLCAyMjksIDQxLCAzLCAyMzQsIDEwLCAKKyAgICA0MSwgMywgMjI5LCA0MSwgNDEsIDMsIDI0MiwgMTY0LCA0MSwgMywgMjMwLCAxMzIsIDQxLCAzLCAyMjgsIDY0LCA0MSwgMywgCisgICAgMjI3LCAxMzIsIDQxLCAzLCA3MCwgNDEsIDMsIDIxNCwgMTkwLCA0MSwgMywgMjQwLCAyMjIsIDQxLCAzLCAyNDAsIDIxMiwgCisgICAgNDEsIDMsIDIxMSwgMTk1LCA0MSwgMywgMjExLCAxODksIDQxLCAzLCAyMjQsIDE1MCwgNDEsIDMsIDI1MiwgOCwgNDEsIDMsIAorICAgIDI1MSwgMTI1LCA0MSwgMywgMjMxLCAxMDMsIDQxLCAzLCAyMzMsIDI0MCwgNDEsIDMsIDIzMCwgMjU0LCA0MSwgMywgMjQzLCAKKyAgICA2NiwgNDEsIDMsIDI0MywgMjM0LCA0MSwgMywgMjEyLCAxMTYsIDQxLCAzLCAyMTUsIDExOCwgNDEsIDMsIDIxNiwgMTM2LCAKKyAgICA0MSwgMywgMjQ4LCA0LCA0MSwgMywgMjQ4LCA5LCA0MSwgMywgMjMyLCA5OCwgNDEsIDMsIDIyMiwgMTQwLCA0MSwgMywgCisgICAgMjQ2LCA3OCwgNDEsIDMsIDIyOSwgMTE1LCA0MSwgMywgMjE4LCA4MywgNDEsIDMsIDIxOSwgMjI1LCA0MSwgMywgMjEwLCAKKyAgICAxMywgNDEsIDMsIDIxMCwgNjIsIDQxLCAzLCAyNDksIDExMiwgNDEsIDMsIDIzNSwgNTEsIDQxLCAzLCAyMjgsIDE1NSwgNDEsIAorICAgIDMsIDIxMCwgMjEyLCA0MSwgMywgMjMzLCAyMTcsIDQxLCAzLCAyMjksIDQwLCA0MSwgMywgMjQyLCAxMTMsIDQxLCAzLCAKKyAgICAyMzAsIDEwMiwgNDEsIDMsIDIyNywgMjM3LCA0MSwgMywgMjI3LCAxMjgsIDQxLCAzLCA3NiwgNDEsIDMsIDIyNiwgMTk2LCAKKyAgICA0MSwgMywgMjI5LCAwLCA0MSwgMywgMjQxLCA2OCwgNDEsIDMsIDI0MSwgNTYsIDQxLCAzLCAyMTEsIDIyNywgNDEsIDMsIAorICAgIDIxMSwgMjE2LCA0MSwgMywgMjI1LCAxNiwgNDEsIDMsIDI1MiwgMTAsIDQxLCAzLCAyNTEsIDIwNSwgNDEsIDMsIDIzMSwgCisgICAgMTA1LCA0MSwgMywgMjMzLCAyNDMsIDQxLCAzLCAyMzEsIDEsIDQxLCAzLCAyNDMsIDY5LCA0MSwgMywgMjQzLCA2OCwgNDEsIAorICAgIDMsIDI0NCwgNDMsIDQxLCAzLCAyMTMsIDEzOCwgNDEsIDMsIDExMSwgNDEsIDMsIDIxNiwgMTU2LCA0MSwgMywgMjQ4LCA3LCAKKyAgICA0MSwgMywgMjQ4LCAxMSwgNDEsIDMsIDIzMiwgMTU2LCA0MSwgMywgMjIyLCAyMTEsIDQxLCAzLCAyNDcsIDE0NSwgNDEsIDMsIAorICAgIDIyOSwgMTI0LCA0MSwgMywgMjE5LCA1OCwgNDEsIDMsIDIyMCwgNywgNDEsIDMsIDIxMCwgMjMsIDQxLCAzLCAyMTAsIDY3LCAKKyAgICA0MSwgMywgMjQ5LCAyMzgsIDQxLCAzLCAyMzUsIDY4LCA0MSwgMywgMjI4LCAxNjAsIDQxLCAzLCAyMTAsIDI0NCwgNDEsIDMsIAorICAgIDIzNCwgMjgsIDQxLCAzLCAyMjksIDQyLCA0MSwgMywgMjQyLCAxNzQsIDQxLCAzLCAyMzAsIDE2MSwgNDEsIDMsIDIyOCwgCisgICAgNzQsIDQxLCAzLCAyMjcsIDEzNCwgNDEsIDMsIDc1LCA0MSwgMywgMjQ1LCAxNTAsIDQxLCAzLCAyMjksIDYxLCA0MSwgMywgCisgICAgMjQxLCAyMzgsIDQxLCAzLCAyNDEsIDIwOSwgNDEsIDMsIDIxMiwgMjIsIDQxLCAzLCAyMTIsIDEyLCA0MSwgMywgMjI1LCAKKyAgICAyMjEsIDQxLCAzLCAyNTIsIDE0LCA0MSwgMywgMjUyLCA3NSwgNDEsIDMsIDIzMSwgMTE3LCA0MSwgMywgMjMzLCAyNDgsIAorICAgIDQxLCAzLCAyMzMsIDI0NiwgNDEsIDMsIDIzMSwgNywgNDEsIDMsIDI0MywgNzYsIDQxLCAzLCAyNDMsIDc0LCA0MSwgMywgCisgICAgMjQ0LCAxNTQsIDQxLCAzLCAyMTMsIDI1NSwgNDEsIDMsIDIxNywgMjIsIDQxLCAzLCAyMTYsIDE5NSwgNDEsIDMsIDI0OCwgCisgICAgMTcsIDQxLCAzLCAyNDgsIDE0LCA0MSwgMywgMjMzLCA1OCwgNDEsIDMsIDIyMywgMTI4LCA0MSwgMywgMjQ4LCA5MCwgNDEsIAorICAgIDMsIDIyOSwgMTQwLCA0MSwgMywgMjIxLCAxODEsIDQxLCAzLCAyMjAsIDYzLCA0MSwgMywgMjEwLCA5NCwgNDEsIDMsIDIxMCwgCisgICAgNzQsIDQxLCAzLCAyNTAsIDE5MCwgNDEsIDMsIDIzNSwgMTI2LCA0MSwgMywgMjI4LCAxNzgsIDQxLCAzLCAyMTEsIDQ3LCAKKyAgICA0MSwgMywgMjM0LCAxODIsIDQxLCAzLCAyMjksIDUyLCA0MSwgMywgMjI5LCA0OCwgNDEsIDMsIDI0MywgNjIsIDQxLCAzLCAKKyAgICAyNDMsIDUxLCA0MSwgMywgMjMxLCA5MSwgNDEsIDMsIDIyOSwgMTA3LCA0MSwgMywgMjI3LCAxNTYsIDQxLCAzLCAyMjksIAorICAgIDc5LCA0MSwgMywgMjMzLCAyMiwgNDEsIDI0OSwgMjE5LCA0MSwgMjQzLCAyMjksIDIxOCwgMTI5LCA0MSwgMjI0LCAxMywgCisgICAgNzgsIDQxLCAzLCAyMjksIDEyMywgMjQ0LCAxOTYsIDQxLCAzLCAyMjksIDEyMywgMTc2LCA0MSwgMywgMjI5LCAxMjMsIAorICAgIDIxOSwgNDAsIDQxLCAxNiwgMjQ0LCAxNDQsIDQxLCAxNiwgMjM0LCAxODAsIDQxLCAxNiwgMjE2LCA4MSwgNDEsIDE2LCAKKyAgICAyMjgsIDIwOCwgNDEsIDE2LCAyNTIsIDE0NywgNDEsIDE2LCAyNDQsIDE5NSwgNDEsIDE2LCAyMTcsIDEwMSwgNDEsIDE2LCAKKyAgICAyNDgsIDE3NiwgNDEsIDE2LCAyNDcsIDEyNCwgNDEsIDE2LCAyMzMsIDIwNiwgNDEsIDE2LCAyMTYsIDIxLCA0MSwgMTYsIAorICAgIDI0NywgMTQ0LCA0MSwgMTYsIDIzNSwgNjAsIDQxLCAyMSwgMjEwLCA4NiwgNDEsIDIxLCAxMTAsIDQxLCAyMSwgMTA1LCA0MSwgCisgICAgMjEsIDE1OCwgNDEsIDIxLCAxNjEsIDQxLCAyMSwgMTg5LCA0MSwgMjEsIDE5NCwgNDEsIDIxLCAxOTgsIDQxLCAyMSwgMTk1LCAKKyAgICA0MSwgMjEsIDIwMCwgNDEsIDMsIDIyOSwgMTIzLCAxODQsIDQxLCAzLCAyMjksIDEyMywgMjQ3LCAxNDUsIDMzLCA2LCAxLCAKKyAgICAyMTAsIDkwLCAzMywgNCwgMSwgMjEwLCA5MCwgMzMsIDYsIDEsIDI0NiwgMzQsIDMzLCA0LCAxLCAyNDYsIDM0LCAzMywgNiwgCisgICAgMSwgMjIzLCA0OSwgMjQ2LCAzNiwgMzMsIDQsIDEsIDIyMywgNDksIDI0NiwgMzYsIDMzLCA2LCAxLCAyMzUsIDE4NSwgMzMsIAorICAgIDQsIDEsIDIzNSwgMTg1LCAzMywgNiwgMSwgMjQ3LCAxNjEsIDMzLCA0LCAxLCAyNDcsIDE2MSwgMzMsIDYsIDEsIDIzMCwgCisgICAgMTQwLCAyMTQsIDIwNSwgMzMsIDQsIDEsIDIzMCwgMTQwLCAyMTQsIDIwNSwgMzMsIDYsIDEsIDI1MSwgMTM2LCAyMjYsIAorICAgIDIwMSwgMzMsIDQsIDEsIDI1MSwgMTM2LCAyMjYsIDIwMSwgMzMsIDYsIDEsIDIyOSwgODcsIDIxMSwgMzEsIDMzLCA0LCAxLCAKKyAgICAyMjksIDg3LCAyMTEsIDMxLCAzMywgNiwgMSwgMjExLCAyOCwgMiwgMjUyLCAxODUsIDIxMSwgMzEsIDMzLCA0LCAxLCAyMTEsIAorICAgIDI4LCAyLCAyNTIsIDE4NSwgMjExLCAzMSwgMzMsIDYsIDEsIDIzNSwgMTgzLCAyMTEsIDU5LCAzMywgNCwgMSwgMjM1LCAKKyAgICAxODMsIDIxMSwgNTksIDMzLCA2LCAxLCAyMjMsIDQ5LCAyMTAsIDIxMiwgMzMsIDQsIDEsIDIyMywgNDksIDIxMCwgMjEyLCAKKyAgICAzMywgNiwgMSwgMjM1LCAxODMsIDYxLCAzMywgNCwgMSwgMjM1LCAxODMsIDYxLCAzMywgNiwgMSwgMjUwLCAwLCAyMzIsIAorICAgIDE5MiwgMjEwLCAxODMsIDMzLCA0LCAxLCAyNTAsIDAsIDIzMiwgMTkyLCAyMTAsIDE4MywgMzMsIDYsIDEsIDI1MSwgMjE0LCAKKyAgICAyMTAsIDE4MywgMzMsIDQsIDEsIDI1MSwgMjE0LCAyMTAsIDE4MywgMzMsIDYsIDEsIDIzNSwgMTgzLCAyNTAsIDAsIDIzMiwgCisgICAgMTkyLCAyMTAsIDE4MywgMzMsIDQsIDEsIDIzNSwgMTgzLCAyNTAsIDAsIDIzMiwgMTkyLCAyMTAsIDE4MywgMzMsIDYsIDEsIAorICAgIDIxMCwgMjQ2LCAzMywgNCwgMSwgMjEwLCAyNDYsIDMzLCA2LCAxLCAyMjMsIDQ5LCAyMTUsIDE3OCwgMzMsIDQsIDEsIDIyMywgCisgICAgNDksIDIxNSwgMTc4LCAzMywgNiwgMSwgMjE5LCA1MiwgMjQ4LCA5MCwgMzMsIDQsIDEsIDIxOSwgNTIsIDI0OCwgOTAsIDMzLCAKKyAgICA2LCAxLCAyMTksIDUyLCAyNDUsIDE3NCwgMzMsIDQsIDEsIDIxOSwgNTIsIDI0NSwgMTc0LCAzMywgNiwgMSwgMjE5LCA1MiwgCisgICAgMjQ1LCAxNTksIDMzLCA0LCAxLCAyMTksIDUyLCAyNDUsIDE1OSwgMzMsIDYsIDEsIDIzMCwgMTQ0LCA3NiwgMzMsIDQsIDEsIAorICAgIDIzMCwgMTQ0LCA3NiwgMzMsIDYsIDEsIDI1MSwgMjQwLCA3NiwgMzMsIDQsIDEsIDI1MSwgMjQwLCA3NiwgMzMsIDYsIDEsIAorICAgIDUyLCAyMzAsIDE0NCwgNzYsIDMzLCA0LCAxLCA1MiwgMjMwLCAxNDQsIDc2LCAzMywgMSwgMjMwLCA4NiwgNzYsIDM4LCAzMywgCisgICAgMjEyLCAxMDAsIDM4LCAzMywgMjE2LCAyNDgsIDIzMCwgMTkxLCA1MCwgMzgsIDMzLCAyNDAsIDIxMSwgMjMwLCAxOTEsIDUwLCAKKyAgICAzOCwgMzMsIDIxNiwgMTQ4LCAyMzAsIDE5MSwgNTAsIDIxOSwgOTMsIDI1MywgMjE2LCAzOCwgMzMsIDEsIDIxNCwgMjAyLCAKKyAgICAyMzYsIDYwLCAzOCwgMzMsIDEsIDczLCAzOCwgMzMsIDEsIDIxMSwgOCwgMzgsIDMzLCAxLCA3MCwgMzgsIDMzLCAxLCAyNDIsIAorICAgIDMsIDUwLCAzOCwgMzMsIDEsIDIxMSwgMjcsIDM4LCAzMywgMSwgMjE5LCA1MiwgNTAsIDM4LCAzMywgMSwgMjI2LCAyMDEsIAorICAgIDM4LCAzMywgMjM0LCAxOTIsIDM4LCAzMywgMjI1LCAyMjcsIDMzLCAyMzQsIDE5MiwgMzMsIDIyNSwgMjI3LCAzMywgNiwgMSwgCisgICAgMjQ2LCA0NiwgMzMsIDQsIDEsIDI0NiwgNDYsIDMzLCA2LCAxLCAyNDYsIDI3LCAzMywgNCwgMSwgMjQ2LCAyNywgMzMsIDYsIAorICAgIDEsIDIxMCwgNTIsIDMzLCA0LCAxLCAyMTAsIDUyLCAzMywgNiwgMSwgMjUwLCAyMDYsIDMzLCA0LCAxLCAyNTAsIDIwNiwgCisgICAgMzMsIDYsIDEsIDI0NiwgMjUsIDMzLCA0LCAxLCAyNDYsIDI1LCAzMywgNiwgMSwgMjE3LCAyMywgMiwgMjMwLCAyMjQsIAorICAgIDEwMywgMzMsIDQsIDEsIDIxNywgMjMsIDIsIDIzMCwgMjI0LCAxMDMsIDMzLCA2LCAxLCAyMTUsIDc4LCAzMywgNCwgMSwgCisgICAgMjE1LCA3OCwgMzMsIDYsIDEsIDIxNSwgMTYwLCAzMywgNCwgMSwgMjE1LCAxNjAsIDMzLCA2LCAxLCAyMTUsIDE2NCwgMzMsIAorICAgIDQsIDEsIDIxNSwgMTY0LCAzMywgNiwgMSwgMjE3LCAyOCwgMzMsIDQsIDEsIDIxNywgMjgsIDMzLCA2LCAxLCAyNDAsIDE5OCwgCisgICAgMzMsIDQsIDEsIDI0MCwgMTk4LCAzMywgNiwgMSwgMjE5LCAyMDYsIDMzLCA0LCAxLCAyMTksIDIwNiwgMzgsIDMzLCAxLCAKKyAgICAyMzUsIDE4MywgNzUsIDIwLCAxLCA2MSwgMjAsIDEsIDE3NiwgMjAsIDEsIDcwLCAyMCwgMSwgMjMzLCAyMTcsIDIwLCAxLCAKKyAgICAyNDUsIDIwOSwgMjAsIDEsIDIyMywgMTA4LCAyMCwgMSwgMjE3LCA4NiwgMjAsIDEsIDc2LCAyMCwgMSwgMjI3LCAxNDgsIAorICAgIDIwLCAxLCA3MywgMjAsIDEsIDIzMywgMTM1LCAyMCwgMSwgMTkwLCAyMCwgMSwgMjIyLCAyMzksIDIwLCAxLCAyMjMsIDI5LCAKKyAgICAyMCwgMSwgMjMzLCA0OSwgMjAsIDEsIDIzMSwgNzksIDIwLCAxLCAyMTcsIDEwMSwgMjAsIDEsIDIyOSwgMTQ2LCAyMCwgMSwgCisgICAgMjI4LCAxODMsIDIwLCAxLCAxOTMsIDIwLCAxLCAyMTgsIDQsIDIwLCAxLCAyMzAsIDEwMiwgMjAsIDEsIDIyMCwgMjcsIDIwLCAKKyAgICAxLCAyMTksIDE5MSwgMjAsIDEsIDIyMCwgMzcsIDIwLCAxLCAyMjAsIDEyMywgMjAsIDEsIDIzMywgMTU1LCAyMCwgMSwgCisgICAgMjM0LCAxNTYsIDIwLCAxLCAyMjcsIDIwOSwgMjAsIDEsIDIyNywgMjM3LCAyMCwgMSwgMjI4LCAxNTQsIDIwLCAxLCAyMTAsIAorICAgIDIyNiwgMjAsIDEsIDIxOSwgMjI1LCAyMCwgMSwgMjEwLCAxODcsIDIwLCAxLCAxOTEsIDIwLCAxLCAyMjgsIDksIDIwLCAxLCAKKyAgICAyMzQsIDE0MiwgMjAsIDEsIDIyNSwgMTUxLCAyMCwgMSwgMjI4LCAxNzYsIDIwLCAxLCAyMjcsIDI0NiwgMjAsIDEsIDIyNCwgCisgICAgMTQ0LCAyMCwgMSwgMjExLCAxOTIsIDIwLCAxLCAyMjUsIDIxMSwgMjAsIDEsIDI0NCwgMTQ3LCAyMCwgMSwgMjIyLCAxNDAsIAorICAgIDIwLCAxLCAyMzIsIDk4LCAyMCwgMSwgMjMwLCAyMzAsIDIwLCAxLCAyMjgsIDIzMywgMjAsIDEsIDIyMywgNTEsIDIwLCAxLCAKKyAgICAyMjMsIDE3MSwgMjAsIDEsIDIzNCwgMTY1LCAyMCwgMSwgMjI5LCA3LCAyMCwgMSwgMjI5LCA1NiwgMjAsIDEsIDIyOSwgNzcsIAorICAgIDIwLCAxLCAyMjAsIDcsIDIwLCAxLCAyMjQsIDE0NywgMjAsIDEsIDI0MywgMjM0LCAyMCwgMSwgMjQ0LCAzNywgMjAsIDEsIAorICAgIDIxMiwgNjUsIDIwLCAxLCAxOTcsIDIwLCAxLCAyMzIsIDI0MSwgMjAsIDEsIDIyNSwgMTA4LCAyMCwgMSwgMjMyLCAxMTksIAorICAgIDIwLCAxLCAyMzQsIDI4LCAyMCwgMSwgMjMxLCAxMTQsIDIwLCAxLCAyMjMsIDgzLCAyMCwgMSwgMjMxLCA1OCwgMjAsIDEsIAorICAgIDE4NCwgMjAsIDEsIDIxNiwgMTE3LCAyMCwgMSwgMjM0LCA5MiwgMjAsIDEsIDIzMCwgMTYxLCAyMCwgMSwgMjMxLCAxMjIsIAorICAgIDIwLCAxLCAyMTYsIDIzMCwgMjAsIDEsIDIzMywgMjUxLCAyMCwgMSwgMjE2LCAyNDcsIDIwLCAxLCAyMjcsIDIzOCwgMjAsIAorICAgIDEsIDIyMSwgMjUxLCAyMCwgMSwgMjQ0LCAxOTIsIDIwLCAxLCAyMzMsIDI1MywgMjAsIDEsIDIzNCwgMjQsIDIwLCAzOCwgCisgICAgMTY0LCAyMzQsIDUsIDIwLCAzOCwgMTY0LCAyMTUsIDExMCwgMjAsIDIyOCwgMTgyLCAyMCwgMjQzLCAyMjksIDIxOCwgMTI5LCAKKyAgICAyMCwgMjQ5LCAyMjYsIDIwLCAyNDksIDIxOSwgMjAsIDIyMCwgMTUwLCAyMCwgMjI0LCAxMywgNzgsIDU4LCAxLCAyNTAsIAorICAgIDk2LCAxMzgsIDIxMCwgMjU0LCAyMjUsIDYxLCA1OCwgMSwgMjUwLCA5NiwgMTM4LCAyMTEsIDcwLCAyMjUsIDYxLCA1OCwgMSwgCisgICAgMjUwLCA5NiwgMTM4LCAyMTAsIDI1NCwgMjIwLCA4NCwgNTgsIDEsIDI1MCwgOTYsIDEzOCwgMjExLCA3MCwgMjIwLCA4NCwgCisgICAgNTgsIDEsIDI1MCwgOTYsIDEzOCwgMjEwLCAyNTQsIDIyNCwgMzAsIDU4LCAxLCAyNTAsIDk2LCAxMzgsIDIxMSwgNzAsIAorICAgIDIyNCwgMzAsIDU4LCAxLCAyNTAsIDk2LCAxMzgsIDIxMCwgMjU0LCAyMjIsIDE0MCwgNTgsIDEsIDI1MCwgOTYsIDEzOCwgCisgICAgMjExLCA3MCwgMjIyLCAxNDAsIDU4LCAxLCAyNDUsIDIwLCAyNDYsIDExOCwgMTM4LCAxMzAsIDU4LCAxLCAxMjUsIDI0NiwgCisgICAgMTE4LCAxMzgsIDEzMCwgNTgsIDEsIDIzMCwgMjI1LCAyNDYsIDExOCwgMTM4LCAxMzAsIDU4LCAxLCAxMjEsIDI0NiwgMTE4LCAKKyAgICAxMzgsIDEzMCwgNTgsIDEsIDI0NSwgMTksIDI0NiwgMTE4LCAxMzgsIDEzMCwgNTgsIDEsIDI0NSwgMjAsIDI0NiwgMTE4LCAKKyAgICAyMzMsIDM5LCAxMzgsIDEzMCwgNTgsIDEsIDEyNSwgMjQ2LCAxMTgsIDIzMywgMzksIDEzOCwgMTMwLCA1OCwgMSwgMjMwLCAKKyAgICAyMjUsIDI0NiwgMTE4LCAyMzMsIDM5LCAxMzgsIDEzMCwgNTgsIDEsIDEyMSwgMjQ2LCAxMTgsIDIzMywgMzksIDEzOCwgCisgICAgMTMwLCA1OCwgMSwgMjQ1LCAxOSwgMjQ2LCAxMTgsIDIzMywgMzksIDEzOCwgMTMwLCA1OCwgMSwgMjQ1LCAyMCwgMjMzLCAKKyAgICAzOSwgMTM4LCAxMzAsIDU4LCAxLCAxMjUsIDIzMywgMzksIDEzOCwgMTMwLCA1OCwgMSwgMjMwLCAyMjUsIDIzMywgMzksIAorICAgIDEzOCwgMTMwLCA1OCwgMSwgMTIxLCAyMzMsIDM5LCAxMzgsIDEzMCwgNTgsIDEsIDI0NSwgMTksIDIzMywgMzksIDEzOCwgCisgICAgMTMwLCA1OCwgMSwgNTksIDY3LCAxMzAsIDU4LCAxLCA1OSwgMjE5LCA5NSwgNTgsIDEsIDU5LCAyMDMsIDEzMCwgNTgsIDEsIAorICAgIDIzMiwgMTA4LCA0NCwgMjQ5LCAxNjEsIDI1NCwgMTA5LCA1OCwgMSwgMjIzLCAxNTcsIDEyMCwgNzQsIDU4LCAxLCAyMjMsIAorICAgIDE1NywgMTI0LCA3NCwgNTgsIDEsIDIyMywgMTU3LCAyNDUsIDMxLCA3OCwgNTgsIDEsIDIyMywgMTU3LCAyMzUsIDE5MywgCisgICAgMjQ1LCAzMSwgNzgsIDU4LCAxLCAxMjEsIDIzNSwgMTkzLCAyNDUsIDMxLCA3OCwgNTgsIDEsIDIxOCwgMTExLCAyMiwgMTI1LCAKKyAgICAyMTYsIDMwLCA1OCwgMSwgMjE4LCAxMTEsIDIyLCAxMjEsIDIxNiwgMzAsIDcsIDYsIDEsIDI0NSwgMTk5LCAyNTQsIDE3MCwgCisgICAgNywgNCwgMSwgMjQ1LCAxOTksIDI1NCwgMTcwLCA3LCA2LCAxLCAyNDUsIDE5OSwgMjU0LCAxOTYsIDcsIDQsIDEsIDI0NSwgCisgICAgMTk5LCAyNTQsIDE5NiwgNywgNiwgMSwgMjQxLCAyMDcsIDcsIDQsIDEsIDI0MSwgMjA3LCA3LCA2LCAxLCAyMTUsIDQwLCA3LCAKKyAgICA0LCAxLCAyMTUsIDQwLCA3LCA2LCAxLCAyMTUsIDIyOSwgNywgNCwgMSwgMjE1LCAyMjksIDcsIDYsIDEsIDI0OSwgMTEwLCAKKyAgICA3LCA0LCAxLCAyNDksIDExMCwgNywgNiwgMSwgMjQ5LCAxMTEsIDIsIDI0OSwgMjE5LCA3LCA0LCAxLCAyNDksIDExMSwgMiwgCisgICAgMjQ5LCAyMTksIDcsIDEsIDQsIDYsIDI0NSwgNiwgNywgMSwgNCwgNiwgMjIyLCA5MSwgNywgNiwgMSwgMjU1LCA3MywgNywgCisgICAgNCwgMSwgMjU1LCA3MywgNywgNiwgMSwgMjU0LCA3MywgNywgNCwgMSwgMjU0LCA3MywgNywgNiwgMSwgMjUzLCAxOTIsIDcsIAorICAgIDQsIDEsIDI1MywgMTkyLCA3LCA2LCAxLCAyNTMsIDE3NiwgNywgNCwgMSwgMjUzLCAxNzYsIDcsIDYsIDEsIDI1MywgMTc3LCAKKyAgICAyLCAyMDMsIDEzMCwgNywgNCwgMSwgMjUzLCAxNzcsIDIsIDIwMywgMTMwLCA3LCA2LCAxLCAyNTMsIDE2NywgNywgNCwgMSwgCisgICAgMjUzLCAxNjcsIDcsIDYsIDEsIDIyMywgNDksIDI1MSwgNjcsIDIsIDI0NywgMTIwLCA3LCA0LCAxLCAyMjMsIDQ5LCAyNTEsIAorICAgIDY3LCAyLCAyNDcsIDEyMCwgNywgNiwgMSwgMjM1LCAyNCwgMiwgOTEsIDcsIDQsIDEsIDIzNSwgMjQsIDIsIDkxLCA3LCA2LCAKKyAgICAxLCAyMzUsIDI0LCAyLCAyNDcsIDI1NSwgOTEsIDcsIDQsIDEsIDIzNSwgMjQsIDIsIDI0NywgMjU1LCA5MSwgNywgNiwgMSwgCisgICAgMjM1LCAyNCwgMiwgMjE4LCAxMDMsIDIyLCAyNDcsIDI1NSwgOTEsIDcsIDQsIDEsIDIzNSwgMjQsIDIsIDIxOCwgMTAzLCAKKyAgICAyMiwgMjQ3LCAyNTUsIDkxLCA3LCA2LCAxLCAyNTEsIDEzNSwgMTU2LCA3LCA0LCAxLCAyNTEsIDEzNSwgMTU2LCA3LCA2LCAKKyAgICAxLCAyMzMsIDE0OSwgMiwgMTI1LCA5MSwgNywgNCwgMSwgMjMzLCAxNDksIDIsIDEyNSwgOTEsIDcsIDYsIDEsIDE0NCwgMiwgCisgICAgMTk5LCAyMTgsIDEwMywgMjI2LCAxMjAsIDcsIDQsIDEsIDE0NCwgMiwgMTk5LCAyMTgsIDEwMywgMjI2LCAxMjAsIDcsIDYsIAorICAgIDEsIDE0NCwgMiwgMjMyLCAxMjMsIDcsIDQsIDEsIDE0NCwgMiwgMjMyLCAxMjMsIDcsIDYsIDEsIDIyNiwgMTgzLCA3LCA0LCAKKyAgICAxLCAyMjYsIDE4MywgNywgNiwgMSwgMjI2LCAxMDYsIDIsIDIxOCwgMTAzLCAyMTYsIDEzOSwgMjQ4LCAzOSwgNywgNCwgMSwgCisgICAgMjI2LCAxMDYsIDIsIDIxOCwgMTAzLCAyMTYsIDEzOSwgMjQ4LCAzOSwgNywgNiwgMSwgMjI2LCAxMDYsIDIsIDI0NCwgNTMsIAorICAgIDcsIDQsIDEsIDIyNiwgMTA2LCAyLCAyNDQsIDUzLCA3LCA2LCAxLCAyMjYsIDEwNiwgMiwgMjE4LCAyMjksIDIxNywgNzcsIAorICAgIDcsIDQsIDEsIDIyNiwgMTA2LCAyLCAyMTgsIDIyOSwgMjE3LCA3NywgNywgNiwgMSwgMjI0LCA5NywgMiwgMjE4LCAxMDMsIAorICAgIDIxNiwgMTM5LCAyNDgsIDM5LCA3LCA0LCAxLCAyMjQsIDk3LCAyLCAyMTgsIDEwMywgMjE2LCAxMzksIDI0OCwgMzksIDcsIAorICAgIDYsIDEsIDIyNCwgOTcsIDIsIDI0NywgMjU1LCA5MSwgNywgNCwgMSwgMjI0LCA5NywgMiwgMjQ3LCAyNTUsIDkxLCA3LCA2LCAKKyAgICAxLCAyMjMsIDIyNCwgMjIyLCAxODYsIDcsIDQsIDEsIDIyMywgMjI0LCAyMjIsIDE4NiwgNywgNiwgMSwgMjIyLCAxMzAsIAorICAgIDIyMiwgMTg2LCA3LCA0LCAxLCAyMjIsIDEzMCwgMjIyLCAxODYsIDcsIDYsIDEsIDIxNCwgMTA2LCAyLCAyNDcsIDI1NSwgCisgICAgOTEsIDcsIDQsIDEsIDIxNCwgMTA2LCAyLCAyNDcsIDI1NSwgOTEsIDcsIDYsIDEsIDIxMiwgMTA2LCA3LCA0LCAxLCAyMTIsIAorICAgIDEwNiwgNywgNiwgMSwgMjEzLCAxNDUsIDIxMCwgMTU5LCA3LCA0LCAxLCAyMTMsIDE0NSwgMjEwLCAxNTksIDcsIDYsIDEsIAorICAgIDIxNiwgMTUyLCAyLCA5MSwgNywgNCwgMSwgMjE2LCAxNTIsIDIsIDkxLCA3LCA2LCAxLCAyMTYsIDE1MiwgMiwgMjE4LCAKKyAgICAxMDMsIDIxNiwgMTM5LCAyNDgsIDM5LCA3LCA0LCAxLCAyMTYsIDE1MiwgMiwgMjE4LCAxMDMsIDIxNiwgMTM5LCAyNDgsIAorICAgIDM5LCA3LCA2LCAxLCAyMTMsIDI0NSwgNywgNCwgMSwgMjEzLCAyNDUsIDcsIDYsIDEsIDI0NSwgNjUsIDcsIDQsIDEsIDI0NSwgCisgICAgNjUsIDcsIDYsIDEsIDIzNSwgMTcxLCA3LCA0LCAxLCAyMzUsIDE3MSwgNywgNiwgMSwgMjQ5LCAyMDcsIDcsIDQsIDEsIAorICAgIDI0OSwgMjA3LCA1OCwgMSwgMjE0LCAxMzMsIDcsIDQsIDEsIDI0NiwgNjksIDcsIDQsIDEsIDIzMiwgODQsIDcsIDQsIDEsIAorICAgIDIzMCwgODAsIDcsIDQsIDEsIDIyNywgMjAxLCA3LCA0LCAxLCAyMjIsIDEyOSwgNywgMSwgNCwgNiwgMjIyLCAxMjksIDcsIAorICAgIDQsIDEsIDIxNSwgMTA4LCA3LCA0LCAxLCAyMTQsIDE5NywgNywgNiwgMSwgMjM1LCAyMTMsIDI0OSwgNjAsIDcsIDQsIDEsIAorICAgIDIzNSwgMjEzLCAyNDksIDYwLCA3LCA2LCAxLCAyMzUsIDIxMywgMjQ1LCA2LCA3LCA0LCAxLCAyMzUsIDIxMywgMjQ1LCA2LCAKKyAgICA3LCA2LCAxLCAyMzUsIDIxMywgMjQzLCAyMDIsIDcsIDYsIDEsIDIxNSwgOTQsIDIzNSwgMjEzLCAyNDMsIDIwMiwgNywgNCwgCisgICAgMSwgMjE1LCA5NCwgMjM1LCAyMTMsIDI0MywgMjAyLCA3LCA2LCAxLCAyMTUsIDk0LCAxNTYsIDcsIDQsIDEsIDIxNSwgOTQsIAorICAgIDE1NiwgNywgNiwgMSwgMjM1LCAyMTMsIDE1MywgNywgNCwgMSwgMjM1LCAyMTMsIDE1MywgNywgNiwgMSwgMjM1LCAyMTMsIAorICAgIDIyMiwgOTEsIDcsIDQsIDEsIDIzNSwgMjEzLCAyMjIsIDkxLCA3LCA2LCAxLCAyMzUsIDIxMywgMjE3LCAxNTIsIDcsIDQsIAorICAgIDEsIDIzNSwgMjEzLCAyMTcsIDE1MiwgNTgsIDEsIDEyMSwgMjUwLCAzMSwgMjU1LCAxNCwgNTgsIDEsIDI0OSwgMjI2LCA1OCwgCisgICAgMSwgMjE5LCAyNTEsIDI0NSwgOTgsIDUwLCA3LCA2LCAxLCAyMjEsIDI1NSwgNywgNCwgMSwgMjIxLCAyNTUsIDcsIDYsIDEsIAorICAgIDIxNSwgOTQsIDI0MiwgNjAsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCAyMjMsIDU1LCAyNDEsIDUyLCAyMiwgMjUyLCA0MSwgNywgCisgICAgNiwgMSwgMjMwLCAyNiwgMiwgMjQ4LCAzOSwgNywgNCwgMSwgMjMwLCAyNiwgMiwgMjQ4LCAzOSwgNywgNiwgMSwgMjUxLCAKKyAgICA2NywgMiwgMTMwLCA3LCA0LCAxLCAyNTEsIDY3LCAyLCAxMzAsIDcsIDYsIDEsIDI0MywgMjAzLCAyLCAyMjYsIDI0OCwgOTEsIAorICAgIDcsIDQsIDEsIDI0MywgMjAzLCAyLCAyMjYsIDI0OCwgOTEsIDcsIDYsIDEsIDIzNSwgMjQsIDIsIDIyNiwgMjQ4LCA5MSwgNywgCisgICAgNCwgMSwgMjM1LCAyNCwgMiwgMjI2LCAyNDgsIDkxLCA3LCA2LCAxLCAyMzAsIDI2LCAyLCAyMjYsIDI0OCwgOTEsIDcsIDQsIAorICAgIDEsIDIzMCwgMjYsIDIsIDIyNiwgMjQ4LCA5MSwgNywgNiwgMSwgMjIzLCAyMjQsIDIsIDIyNiwgMjQ4LCA5MSwgNywgNCwgMSwgCisgICAgMjIzLCAyMjQsIDIsIDIyNiwgMjQ4LCA5MSwgNywgNiwgMSwgMjIyLCA5MiwgMiwgMjI2LCAyNDgsIDkxLCA3LCA0LCAxLCAKKyAgICAyMjIsIDkyLCAyLCAyMjYsIDI0OCwgOTEsIDcsIDYsIDEsIDI0MiwgNjEsIDIsIDEwMywgNTgsIDEsIDYsIDI0MiwgNjEsIDIsIAorICAgIDkxLCA1OCwgMSwgNCwgMjcsIDIyNiwgMjM0LCA3LCAxLCA0LCA2LCAyMTUsIDk0LCAxOTMsIDcsIDI0NSwgMTAzLCAxLCAKKyAgICAyMjMsIDQ5LCAyNDUsIDYsIDcsIDI0NSwgMTAzLCAxLCAyMjMsIDQ5LCAyMjYsIDEwNSwgNywgMjQ1LCAxMDMsIDEsIDIzNSwgCisgICAgMTkzLCAxOTMsIDcsIDI0NSwgMTAzLCAxLCAyNDAsIDE1NCwgMjMyLCAxMjksIDcsIDI0NSwgMTAzLCAxLCAyNTQsIDIzLCAKKyAgICAxOTMsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgNjEsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgNzMsIDIxNywgMjMwLCAyMjksIAorICAgIDIxNCwgNSwgMjQ2LCA0OCwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCA3MCwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCA3NSwgCisgICAgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCA3NiwgMjE3LCAyMzAsIDIyOSwgMjE0LCA1LCAyNDEsIDI1MywgMjE3LCAyMzAsIAorICAgIDIyOSwgMjE0LCAxLCAyMzQsIDI4LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDIzNCwgMTA1LCAyMTcsIDIzMCwgMjI5LCAKKyAgICAyMTQsIDEsIDI0MiwgMTc0LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDI0MiwgMjI0LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDUsIAorICAgIDI1NCwgNzUsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjQ5LCAyMzgsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjUwLCA4NiwgCisgICAgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyMzUsIDY4LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDIzNSwgMTA5LCAyMTcsIAorICAgIDIzMCwgMjI5LCAyMTQsIDEsIDIxNSwgMTMzLCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDIxNSwgMTM5LCAyMTcsIDIzMCwgCisgICAgMjI5LCAyMTQsIDEsIDI0OCwgMTA1LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDI0OCwgMTE0LCAyMTcsIDIzMCwgMjI5LCAKKyAgICAyMTQsIDEsIDExMSwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyMTYsIDE1NiwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyNDcsIAorICAgIDE0NSwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyNDgsIDcsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjI4LCA3NCwgMjE3LCAKKyAgICAyMzAsIDIyOSwgMjE0LCAxLCAyMjUsIDE2LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDIyNSwgMTIxLCAyMTcsIDIzMCwgCisgICAgMjI5LCAyMTQsIDEsIDI1MSwgMjA1LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDEsIDI1MiwgMTAsIDIxNywgMjMwLCAyMjksIAorICAgIDIxNCwgMSwgMjMwLCAxNjEsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjIyLCAyMTEsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgCisgICAgMjMyLCAxNTYsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjIyLCAxNjUsIDIxNywgMjMwLCAyMjksIDIxNCwgMSwgMjE5LCAKKyAgICA1OCwgMjE3LCAyMzAsIDIyOSwgMjE0LCAxLCAyNDEsIDY4LCAyMTcsIDIzMCwgMjI5LCAyMTQsIDI1LCA1LCA2MSwgMjE3LCAKKyAgICAyMzAsIDIyOSwgMjE0LCAyNSwgNSwgNzMsIDIxNywgMjMwLCAyMjksIDIxNCwgMjUsIDUsIDcwLCAyMTcsIDIzMCwgMjI5LCAKKyAgICAyMTQsIDI1LCA1LCA3NSwgMjE3LCAyMzAsIDIyOSwgMjE0LCAyNSwgNSwgMjI2LCAxODMsIDIxNywgMjMwLCAyMjksIDIxNCwgCisgICAgMjI1LCAxMiwgMjMxLCAxNTgsIDIxNywgMjMwLCAyMjksIDIxNCwgMjI1LCAxMiwgMjMxLCAxNTcsIDIxNywgMjMwLCAyMjksIAorICAgIDIxNCwgMjI1LCAxMiwgMjMxLCAxNTYsIDIxNywgMjMwLCAyMjksIDIxNCwgMjI1LCAxMiwgMjMxLCAxNTUsIDIyOCwgNTYsIAorICAgIDIzNSwgMjQwLCAyNDQsIDIsIDEyMywgMjI0LCAyMSwgMjI4LCA1NiwgMjM1LCAyNDAsIDI0NCwgMiwgMTIzLCAyNDIsIDI3LCAKKyAgICAyMjgsIDU2LCAyMzUsIDI0MCwgMjQ0LCAyLCAxMzQsIDIyNCwgMTksIDIyOCwgNTYsIDIzNSwgMjQwLCAyNDQsIDIsIDEyMywgCisgICAgMjE5LCAxMTcsIDIyOCwgNTYsIDIzNSwgMjQwLCAyNDQsIDIsIDEyMywgMjQ1LCAxODgsIDIyOCwgNTYsIDIzNSwgMjQwLCAKKyAgICAyNDQsIDIsIDEzNCwgMjE5LCAxMTYsIDIyOCwgNTYsIDIzNSwgMjQwLCAyMjQsIDIyLCA3OCwgMjI4LCA1NiwgMjM1LCAyNDAsIAorICAgIDIyNSwgNDAsIDc4LCAyMjgsIDU2LCAyMzUsIDI0MCwgMjIyLCAxMTgsIDc4LCAyMjgsIDU2LCAyMzUsIDI0MCwgMjI0LCAyMywgCisgICAgNzgsIDIyNSwgMTQ0LCAxLCAxNzYsIDIyNSwgMTQ0LCAxLCAyMzQsIDEzMiwgMjI1LCAxNDQsIDEsIDI0MywgMTM1LCAyMjUsIAorICAgIDE0NCwgMSwgMjI5LCA3NywgMjI1LCAxNDQsIDEsIDI1MSwgMzMsIDIyNSwgMTQ0LCAxLCAyNTAsIDE1NywgMjI1LCAxNDQsIAorICAgIDEsIDIzNSwgMTQxLCAyMjUsIDE0NCwgMSwgMjI3LCAxNjUsIDIyNSwgMTQ0LCAxLCAyMTcsIDEwNSwgMjI1LCAxNDQsIDEsIAorICAgIDIxNiwgMjA4LCAyMjUsIDE0NCwgMSwgMjQ4LCAyMjEsIDIyNSwgMTQ0LCAxLCAxOTcsIDIyNSwgMTQ0LCAxLCAxOTAsIDIyNSwgCisgICAgMTQ0LCAxLCAyMjUsIDE0NywgMjI1LCAxNDQsIDEsIDI1MiwgMTkxLCAyMjUsIDE0NCwgMSwgMTg0LCAyMjUsIDE0NCwgMSwgCisgICAgMjE1LCAxODMsIDIyNSwgMTQ0LCAxLCAyMTUsIDE3NSwgMjI1LCAxNDQsIDEsIDI0NiwgMzgsIDIyNSwgMTQ0LCAxLCAyMTIsIAorICAgIDY1LCAyMjUsIDE0NCwgMSwgMjEwLCA4MiwgMjI1LCAxNDQsIDEsIDIxMCwgMTE2LCAyMjUsIDE0NCwgMSwgNCwgNjEsIDIyNSwgCisgICAgMTQ0LCAxLCAxOTEsIDIyNSwgMTQ0LCAxLCAyMDUsIDIyNSwgMTQ0LCAxLCAyMzMsIDEzNSwgMjI1LCAxNDQsIDEsIDIyMCwgCisgICAgMTAyLCAyMjUsIDE0NCwgMSwgMjA2LCAyMjUsIDE0NCwgMSwgMTYyLCAyMjUsIDE0NCwgMSwgNjEsIDIyNSwgMTQ0LCAxLCAKKyAgICA3MywgMjI1LCAxNDQsIDEsIDcwLCAyMjUsIDE0NCwgMSwgNzUsIDIyNSwgMTQ0LCAxLCA3NiwgMjI1LCAxNDQsIDEsIDIyNCwgCisgICAgODgsIDIyNSwgMTQ0LCAxLCAyMTEsIDE2NSwgMjI1LCAxNDQsIDEsIDI0NCwgMTk2LCAyMjUsIDE0NCwgMSwgMjQzLCAyOSwgCisgICAgMjI1LCAxNDQsIDEsIDI0NSwgMjA5LCAyMjUsIDE0NCwgMjE4LCA3MywgMSwgMjEyLCA2NSwgMjI1LCAxNDQsIDIxOCwgNzMsIAorICAgIDEsIDE5MSwgMjI1LCAxNDQsIDEsIDIxNSwgMTU2LCAyMjUsIDE0NCwgMSwgMjE1LCAxNDQsIDIyNSwgMTQ0LCAxLCAyNDgsIAorICAgIDEzNSwgMjI1LCAxNDQsIDEsIDIyOCwgMTEwLCAyMjUsIDE0NCwgMSwgMjU0LCAxNDEsIDE5MSwgMjI1LCAxNDQsIDEsIDIxMywgCisgICAgMTM0LCAyMjAsIDEwMiwgMjI1LCAxNDQsIDEsIDIxMywgMTM1LCAxNjIsIDIyNSwgMTQ0LCAxLCAyNTMsIDIyMywgMjQ0LCAKKyAgICAxOTYsIDIyNSwgMTQ0LCAyMTgsIDczLCAxLCAyMDUsIDIyNSwgMTQ0LCAyMTgsIDI1LCAxLCAyMDUsIDIyNSwgMTQ0LCAxLCAKKyAgICAyNTAsIDI1NSwgMjI1LCAxNDQsIDIxOSwgMTU1LCAyNDEsIDIzNiwgNzgsIDIyNSwgMTQ0LCA1MiwgMjQxLCAyMzYsIDc4LCAKKyAgICAyMjUsIDE0NCwgMTY0LCAyMjAsIDk1LCAyMjUsIDE0NCwgMTY0LCA1MiwgMjIwLCA5NSwgMTc5LCA1LCAyNTQsIDc1LCAxNzksIAorICAgIDUsIDIxMywgMTQ3LCAxNzksIDEsIDYxLCAxNzksIDEsIDI1NSwgNzMsIDE3OSwgMSwgNzMsIDE3OSwgMSwgMjM2LCAzMywgCisgICAgMTc5LCAxLCA3MCwgMTc5LCAxLCAyMTQsIDExOCwgMTc5LCAxLCAxNDksIDE1MywgMTc5LCAxLCAxNDksIDIyMiwgMTgwLCAKKyAgICAxNzksIDEsIDE0OSwgMTU2LCAxNzksIDEsIDE0OSwgMjMyLCAxODUsIDE3OSwgMSwgNzUsIDE3OSwgMSwgMjQ1LCAyMDksIAorICAgIDE3OSwgMSwgMjU0LCAyMDEsIDE3OSwgMSwgNzYsIDE3OSwgMSwgMjI2LCAxODMsIDE3OSwgMSwgMjUzLCAxOTIsIDE3OSwgMSwgCisgICAgMTc2LCAxNzksIDEsIDIzNCwgMTMyLCAxNzksIDEsIDI0MywgMTM1LCAxNzksIDEsIDI0MiwgMjQ5LCAxNzksIDEsIDIyOSwgCisgICAgNzcsIDE3OSwgMSwgMjUxLCAzMywgMTc5LCAxLCAyNTAsIDE1NywgMTc5LCAxLCAyMzUsIDE0MSwgMTc5LCAxLCAyMzUsIAorICAgIDExNCwgMTc5LCAxLCAyMjcsIDE2NSwgMTc5LCAxLCAyMTUsIDE1NiwgMTc5LCAxLCAyMTUsIDE0NCwgMTc5LCAxLCAyNDgsIAorICAgIDEzNSwgMTc5LCAxLCAyNDgsIDExOSwgMTc5LCAxLCAyMjgsIDExMCwgMTc5LCAxLCAyMTcsIDEwNSwgMTc5LCAxLCAyMTYsIAorICAgIDIwOCwgMTc5LCAxLCAyNDgsIDIyMSwgMTc5LCAxLCAyNDgsIDI1LCAxNzksIDEsIDE5NywgMTc5LCAxLCAxOTAsIDE3OSwgMSwgCisgICAgMjI1LCAxNDcsIDE3OSwgMSwgMjUyLCAxOTEsIDE3OSwgMSwgMjUyLCAxOCwgMTc5LCAxLCAxODQsIDE3OSwgMSwgMTkxLCAKKyAgICAxNzksIDEsIDIwNSwgMTc5LCAxLCAyMzMsIDEzNSwgMTc5LCAxLCAyMTQsIDI3LCAxNzksIDEsIDIyMCwgMTAyLCAxNzksIDEsIAorICAgIDIxOCwgMjIzLCAxNzksIDEsIDIwNiwgMTc5LCAxLCAxNjIsIDE3OSwgMSwgMjMyLCAxODQsIDE3OSwgMTE2LCA1LCAyNDIsIAorICAgIDQ0LCAxNzksIDI1LCA1LCAyNTUsIDczLCAxNzksIDI1LCA1LCA3MywgMTc5LCAyNSwgNSwgMjM2LCAzMywgMTc5LCAyNSwgNSwgCisgICAgNzAsIDE3OSwgMjUsIDUsIDIxNCwgMTE4LCAxNzksIDI1LCA1LCAxNDksIDE1MywgMTc5LCAyNSwgNSwgMTQ5LCAyMjIsIAorICAgIDE4MCwgMTc5LCAyNSwgNSwgMTQ5LCAxNTYsIDE3OSwgMjUsIDUsIDE0OSwgMjMyLCAxODUsIDE3OSwgMjUsIDUsIDc1LCAKKyAgICAxNzksIDI1LCA1LCAyNDUsIDIwOSwgMTc5LCAyNSwgNSwgMjU0LCAyMDEsIDE3OSwgMjUsIDUsIDc2LCAxNzksIDI1LCA1LCAKKyAgICAyMjYsIDE4MywgMTc5LCAyNSwgNSwgMjUzLCAxOTIsIDE3OSwgNSwgMjEzLCAxNTIsIDE3OSwgMjQ4LCAxNzgsIDE3OSwgNTIsIAorICAgIDI0OCwgMTc4LCAxNzksIDIxLCAyMTAsIDg2LCAxNzksIDIxLCAxMTAsIDE3OSwgMjEsIDEwNSwgMTc5LCAyMSwgMTU4LCAKKyAgICAxNzksIDIxLCAxNjEsIDE3OSwgMjEsIDE4OSwgMTc5LCAyMSwgMTk0LCAxNzksIDIxLCAxOTgsIDE3OSwgMjEsIDE5NSwgCisgICAgMTc5LCAyMSwgMjAwLCAzOCwgODQsIDIxLCAyMTAsIDg2LCAzOCwgODQsIDIxLCAxMTAsIDM4LCA4NCwgMjEsIDEwNSwgMzgsIAorICAgIDg0LCAyMSwgMTU4LCAzOCwgODQsIDIxLCAxNjEsIDM4LCA4NCwgMjEsIDE4OSwgMzgsIDg0LCAyMSwgMTk0LCAzOCwgODQsIAorICAgIDIxLCAxOTgsIDM4LCA4NCwgMjEsIDE5NSwgMzgsIDg0LCAyMSwgMjAwLCAzOCwgODQsIDEsIDYxLCAzOCwgODQsIDEsIDcwLCAKKyAgICAzOCwgODQsIDEsIDE3NiwgMzgsIDg0LCAxLCAxOTcsIDM4LCA4NCwgMSwgMTkwLCAzOCwgODQsIDEsIDIwNSwgMzgsIDg0LCAKKyAgICAxLCAyMTMsIDE3NiwgMzgsIDg0LCA1LCAyNTMsIDE3NSwgODQsIDUsIDIxOSwgMTcsIDI1MCwgMjU1LCA4NCwgNSwgMjUxLCAKKyAgICAwLCAyMTMsIDE1MiwgODQsIDUsIDUyLCAyNTEsIDAsIDIxMywgMTUyLCA4NCwgNSwgMjUxLCAwLCAxMDUsIDg0LCA1LCAyNTEsIAorICAgIDAsIDE1OCwgODQsIDUsIDI1MSwgMCwgMjUzLCAxNzUsIDg0LCA1LCAyMjQsIDEyNCwgODQsIDI0MywgMTAwLCAyNDQsIDEwMywgCisgICAgODQsIDI1MCwgMjM4LCA4NCwgMjQxLCAyMzAsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMjEsIDIxMCwgODYsIDIzNCwgMTg4LCAKKyAgICAyMzIsIDI0MiwgMjEsIDExMCwgMjM0LCAxODgsIDIzMiwgMjQyLCAyMSwgMTA1LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDIxLCAKKyAgICAxNTgsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMjEsIDE2MSwgMjM0LCAxODgsIDIzMiwgMjQyLCAyMSwgMTg5LCAyMzQsIDE4OCwgCisgICAgMjMyLCAyNDIsIDIxLCAxOTQsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMjEsIDE5OCwgMjM0LCAxODgsIDIzMiwgMjQyLCAyMSwgCisgICAgMTk1LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDIxLCAyMDAsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMTc2LCAyMzQsIDE4OCwgCisgICAgMjMyLCAyNDIsIDEsIDIzNCwgMTMyLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDI0MywgMTM1LCAyMzQsIDE4OCwgMjMyLCAKKyAgICAyNDIsIDEsIDIyOSwgNzcsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjA2LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDIyMCwgCisgICAgMTAyLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDIxMCwgMTE2LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDIyNywgMTY1LCAKKyAgICAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDIxNywgMTA1LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDI0MCwgMjI2LCAyMzQsIAorICAgIDE4OCwgMjMyLCAyNDIsIDEsIDE5NywgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAxOTAsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgCisgICAgMjI1LCAxNDcsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMTg0LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDI0OCwgMjIxLCAKKyAgICAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDI1MiwgMTkxLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDIwNSwgMjM0LCAxODgsIAorICAgIDIzMiwgMjQyLCAxLCAxOTEsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjMzLCAxMzUsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgCisgICAgMjEyLCA2NSwgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAyMTYsIDIwOCwgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAxNjIsIAorICAgIDIzNCwgMTg4LCAyMzIsIDI0MiwgMSwgMjE0LCAyNywgMjM0LCAxODgsIDIzMiwgMjQyLCAxLCAyNTEsIDMzLCAyMzQsIDE4OCwgCisgICAgMjMyLCAyNDIsIDEsIDYxLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDIyNiwgMjM0LCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIAorICAgIDczLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEsIDIyNiwgMTgzLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDI1LCAyMTQsIDIxNCwgCisgICAgMjM0LCAxODgsIDIzMiwgMjQyLCAyNSwgNzUsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMjUsIDcwLCAyMzQsIDE4OCwgMjMyLCAKKyAgICAyNDIsIDI1LCAyNDUsIDIwOSwgMjM0LCAxODgsIDIzMiwgMjQyLCAyNSwgNzYsIDIzNCwgMTg4LCAyMzIsIDI0MiwgMTM4LCAKKyAgICAyMjUsIDMwLCAyMzQsIDE4OCwgMjMyLCAyNDIsIDEzOCwgMjUxLCAxMiwgMjM0LCAxODgsIDIzMiwgMjQyLCAxMzgsIDI1MSwgCisgICAgMTMsIDIyNSwgMzAsIDIzNCwgMTg4LCAyMzIsIDI0MiwgNSwgMjQ5LCA3NywgMjM0LCAxODgsIDIzMiwgMjQyLCA1LCAyMTksIAorICAgIDE5OSwgMjIzLCA5MywgMSwgMTc2LCAyMjMsIDkzLCAxLCAyNDMsIDEzNSwgMjIzLCA5MywgMSwgMjI5LCA3NywgMjIzLCA5MywgCisgICAgMSwgMjE3LCAxMDUsIDIyMywgOTMsIDEsIDI0OCwgMjIxLCAyMjMsIDkzLCAxLCAxOTcsIDIyMywgOTMsIDEsIDE5MCwgMjIzLCAKKyAgICA5MywgMSwgMjUyLCAxOTEsIDIyMywgOTMsIDEsIDE4NCwgMjIzLCA5MywgMSwgMjUxLCAzMywgMjIzLCA5MywgMSwgMjM1LCAKKyAgICAxNDEsIDIyMywgOTMsIDEsIDIyNywgMTY1LCAyMjMsIDkzLCAxLCAyMDYsIDIyMywgOTMsIDEsIDIwNSwgMjIzLCA5MywgMSwgCisgICAgMjMzLCAxMzUsIDIyMywgOTMsIDEsIDE5MSwgMjIzLCA5MywgMSwgMjEyLCA2NSwgMjIzLCA5MywgMSwgMTYyLCAyMjMsIDkzLCAKKyAgICAxLCAyMzEsIDEyNCwgMjIzLCA5MywgMSwgMjI5LCA1NiwgMjIzLCA5MywgMSwgMjI5LCAxNDgsIDIyMywgOTMsIDEsIDIyNywgCisgICAgMTM1LCAyMjMsIDkzLCAxLCA2MSwgMjIzLCA5MywgMjUsIDUsIDczLCAyMjMsIDkzLCAyNSwgNSwgNzAsIDIyMywgOTMsIDI1LCAKKyAgICA1LCA3NSwgMjIzLCA5MywgMjUsIDUsIDI1NCwgMjAxLCAyMjMsIDkzLCAyNSwgNSwgNzYsIDIyMywgOTMsIDI1LCA1LCAyNTMsIAorICAgIDE5MiwgMjIzLCA5MywgMjUsIDUsIDI0NSwgNTUsIDIyMywgOTMsIDI1LCA1LCAyNDUsIDIzMywgMjIzLCA5MywgMTE2LCA1LCAKKyAgICAyMjksIDc5LCAyMjMsIDkzLCAxMTYsIDUsIDIzMCwgMjUsIDIyMywgOTMsIDExNiwgNSwgMTUzLCAyMjMsIDkzLCAxMTYsIDUsIAorICAgIDI0MiwgNjAsIDIyMywgOTMsIDIxMywgMTUyLCAyMjMsIDkzLCAyMjEsIDE3MywgNzgsIDI0LCAxMDAsIDIxNiwgOTcsIDI0LCAKKyAgICAxMDAsIDIxNiwgOTYsIDI0LCAxMDAsIDIxNiwgOTQsIDI0LCAxMDAsIDIxNiwgOTksIDI0LCAxMDAsIDIyMywgMjEsIDI0LCAKKyAgICAxMDAsIDIyMywgNSwgMjQsIDEwMCwgMjIzLCAwLCAyNCwgMTAwLCAyMjMsIDIsIDI0LCAxMDAsIDIyMywgMTgsIDI0LCAxMDAsIAorICAgIDIyMywgMTEsIDI0LCAxMDAsIDIyMywgNCwgMjQsIDEwMCwgMjIzLCAyMywgMjQsIDEwMCwgMjIzLCA2LCAyNCwgMTAwLCAKKyAgICAyMjMsIDI1LCAyNCwgMTAwLCAyMjMsIDIyLCAyNCwgMTAwLCAyMzAsIDIxMywgMjQsIDEwMCwgMjMwLCAyMDQsIDI0LCAxMDAsIAorICAgIDIzMCwgMjA3LCAyNCwgMTAwLCAyMjUsIDgwLCAyNCwgMTAwLCAyMjUsIDkxLCAyNCwgMTAwLCAyMjUsIDkyLCAyNCwgMTAwLCAKKyAgICAyMTgsIDIwNywgMjQsIDEwMCwgMjM2LCA0NiwgMjQsIDEwMCwgMjM2LCA1MywgMjQsIDEwMCwgMjE4LCAyMTgsIDI0LCAxMDAsIAorICAgIDIxOCwgMjA1LCAyNCwgMTAwLCAyMjUsIDEzMCwgMjQsIDEwMCwgMjQxLCAxNjcsIDI0LCAxMDAsIDIxOCwgMjAyLCAxNTUsIAorICAgIDUsIDIyNiwgMjcsIDE1NSwgNSwgMjUwLCAxODcsIDE1NSwgNSwgMjMzLCA2NiwgMTU1LCA1LCAyMTEsIDI0MywgMTU1LCAxLCAKKyAgICA2MSwgMTU1LCAxLCAyNDAsIDE1NCwgMjM0LCAxOTEsIDE1NSwgMSwgNzMsIDE1NSwgMSwgMjM2LCAzMywgMTU1LCAxLCA3MCwgCisgICAgMTU1LCAxLCAyMjYsIDkwLCAyNTAsIDE2MywgMTU1LCAxLCAyMjksIDc4LCAyMzMsIDI4LCAxNTUsIDEsIDIyOSwgNzgsIAorICAgIDIzMywgMjksIDIyMywgMTQyLCAxNTUsIDEsIDc1LCAxNTUsIDEsIDI1NCwgMjAxLCAxNTUsIDEsIDc2LCAxNTUsIDEsIDE3NiwgCisgICAgMTU1LCAxLCAyMzUsIDEzLCAyMjEsIDIyOCwgMTU1LCAxLCAyMzUsIDEzLCAyMzAsIDY2LCAxNTUsIDEsIDI0MywgMTM1LCAKKyAgICAxNTUsIDEsIDI0MywgMTM2LCAyMzAsIDY2LCAxNTUsIDEsIDIyOSwgNzcsIDE1NSwgMSwgMjUxLCAzMywgMTU1LCAxLCAyNTEsIAorICAgIDM0LCAyMzAsIDY2LCAxNTUsIDEsIDIzNSwgMTQxLCAxNTUsIDEsIDIyNywgMTY2LCAyMzAsIDY2LCAxNTUsIDEsIDIzNSwgCisgICAgMTQyLCAyMzEsIDIwNywgMTU1LCAxLCAyMjcsIDE2NSwgMTU1LCAxLCAyMTUsIDE1NiwgMTU1LCAxLCAyMTUsIDE1NywgMjMxLCAKKyAgICAyMDcsIDE1NSwgMSwgMjQ4LCAxMzUsIDE1NSwgMSwgMjQ4LCAxMzYsIDIzMSwgMjA3LCAxNTUsIDEsIDIyOSwgMjI5LCAyMzAsIAorICAgIDY2LCAxNTUsIDEsIDIxNywgMTA1LCAxNTUsIDEsIDIxNywgMTA2LCAyMzAsIDY2LCAxNTUsIDEsIDI0OCwgMjIxLCAxNTUsIAorICAgIDEsIDI0OCwgMjIyLCAyMzEsIDIwNywgMTU1LCAxLCAxOTcsIDE1NSwgMSwgMTkwLCAxNTUsIDEsIDIyNiwgOTAsIDIzMCwgCisgICAgNjYsIDE1NSwgMSwgMjUyLCAxOTEsIDE1NSwgMSwgMjUyLCAxOTIsIDIzMCwgNjYsIDE1NSwgMSwgMTg0LCAxNTUsIDEsIAorICAgIDE5MSwgMTU1LCAxLCAyMDUsIDE1NSwgMSwgMjIzLCAxODgsIDI1NCwgMjEwLCAxNTUsIDEsIDIzMywgMTM1LCAxNTUsIDEsIAorICAgIDIxMiwgNjUsIDE1NSwgMSwgMjIyLCAzNCwgMjMwLCA2NiwgMTU1LCAxLCAyMjIsIDM0LCAyMzEsIDIwNywgMTU1LCAxLCAKKyAgICAyMDYsIDE1NSwgMSwgMTYyLCAxNTUsIDUsIDI1MCwgMTg4LCAyMTYsIDI1MCwgMTU1LCAyNSwgNSwgMjE3LCA0NywgMTU1LCAKKyAgICAyNSwgNSwgMjE2LCAzNSwgMTU1LCAyNSwgNSwgMjExLCAxOTAsIDE1NSwgMjUsIDUsIDIxMSwgMTkxLCAyMzEsIDY5LCAxNTUsIAorICAgIDI1LCA1LCAyMTgsIDQ3LCAxNTUsIDI1LCA1LCAyMTgsIDQ4LCAyMzEsIDU3LCAxNTUsIDI1LCA1LCAyMTcsIDY1LCAxNTUsIAorICAgIDI1LCA1LCAyNDcsIDE5NCwgMjMwLCA2NSwgMTU1LCAyNSwgNSwgMjI1LCAxODQsIDE1NSwgMTE2LCA1LCAyMzQsIDE1OCwgCisgICAgMTU1LCAxMTYsIDUsIDIyNSwgMTk2LCAxNTUsIDExNiwgNSwgMjUxLCAxOSwgMTU1LCAyMjYsIDQwLCAxNTUsIDQzLCAyMjMsIAorICAgIDY5LCAxNTUsIDQ0LCAyMjMsIDY5LCAxNTUsIDIyNiwgNzksIDI1NCwgMTE3LCAxNTUsIDIyNiwgNzksIDIzMSwgMjI0LCAKKyAgICAxNTUsIDIyNiwgNzksIDIzMiwgODgsIDE1NSwgMjI2LCA3OSwgMjExLCAyMzgsIDE1NSwgMjI2LCA3OSwgMjI2LCA0MSwgCisgICAgMTU1LCAyMjYsIDc5LCAyMzIsIDIwNSwgMTU1LCAyMjYsIDc5LCAyMzIsIDgyLCAxNTUsIDIyNiwgNzksIDI1NCwgMjQ5LCAKKyAgICAxNTUsIDIyNiwgNzksIDI1NCwgMjUwLCAyNTQsIDI0OSwgMTU1LCAyMjYsIDc5LCAyMjUsIDUxLCAxNTUsIDIxNSwgOTQsIAorICAgIDIyNiwgNzksIDIyNSwgNTEsIDE1NSwgMjI2LCAzNiwgMTU1LCAyMSwgMjEwLCA4NiwgMTU1LCAyMSwgMTEwLCAxNTUsIDIxLCAKKyAgICAxMDUsIDE1NSwgMjEsIDE1OCwgMTU1LCAyMSwgMTYxLCAxNTUsIDIxLCAxODksIDE1NSwgMjEsIDE5NCwgMTU1LCAyMSwgCisgICAgMTk4LCAxNTUsIDIxLCAxOTUsIDE1NSwgMjEsIDIwMCwgMTU1LCAyMjYsIDc5LCAyMTYsIDY5LCAyMTUsIDEwNiwgMTU1LCAKKyAgICAyMjYsIDc5LCAyMzUsIDE2NywgMTcyLCAxLCA2MSwgMTcyLCAxLCA3MywgMTcyLCAxLCA3MCwgMTcyLCAxLCA3NSwgMTcyLCAKKyAgICAxLCAyNTQsIDIwMSwgMTcyLCAxLCA3NiwgMTcyLCAxLCAxNzYsIDE3MiwgMSwgMjM0LCAxMzIsIDE3MiwgMSwgMjQzLCAxMzUsIAorICAgIDE3MiwgMSwgMjQyLCAyNDksIDE3MiwgMSwgMjI4LCAyNDUsIDE3MiwgMSwgMjI5LCA3NywgMTcyLCAxLCAyNTAsIDE1NywgCisgICAgMTcyLCAxLCAyNTAsIDExMiwgMTcyLCAxLCAyMzUsIDE0MSwgMTcyLCAxLCAyMzUsIDExNCwgMTcyLCAxLCAyMjgsIDIzNSwgCisgICAgMTcyLCAxLCAyMjgsIDIzNywgMTcyLCAxLCAyMjgsIDIzNiwgMTcyLCAxLCAyMTcsIDEwNSwgMTcyLCAxLCAyMTYsIDIwOCwgCisgICAgMTcyLCAxLCAyNDgsIDIyMSwgMTcyLCAxLCAyNDgsIDI1LCAxNzIsIDEsIDIyNywgMjA3LCAxNzIsIDEsIDE5NywgMTcyLCAxLCAKKyAgICAyNDgsIDEzNSwgMTcyLCAxLCAxOTAsIDE3MiwgMSwgMjI0LCAyMjAsIDE3MiwgMSwgMjI1LCAxNDcsIDE3MiwgMSwgMjUyLCAKKyAgICAxOTEsIDE3MiwgMSwgMjUyLCAxOCwgMTcyLCAxLCAyMzAsIDk1LCAxNzIsIDEsIDE4NCwgMTcyLCAxLCAyNTIsIDExMSwgCisgICAgMTcyLCAxLCAxOTEsIDE3MiwgMSwgMjA1LCAxNzIsIDEsIDIzMywgMTM1LCAxNzIsIDEsIDIxNCwgMjcsIDE3MiwgMSwgMjE4LCAKKyAgICAyMjMsIDE3MiwgMSwgMjA2LCAxNzIsIDEsIDE2MiwgMTcyLCAyNSwgNSwgMjU1LCA3MywgMTcyLCAyNSwgNSwgNzMsIDE3MiwgCisgICAgMjUsIDUsIDIzNiwgMzMsIDE3MiwgMjUsIDUsIDI0NSwgMTk1LCAxNzIsIDI1LCA1LCA3MCwgMTcyLCAyNSwgNSwgMjI2LCAKKyAgICAyMzQsIDE3MiwgMjUsIDUsIDc2LCAxNzIsIDI1LCA1LCAyNTQsIDIwMSwgMTcyLCAyNSwgNSwgMjUzLCAxOTIsIDE3MiwgMjUsIAorICAgIDUsIDIxNCwgMjE0LCAxNzIsIDExNiwgNSwgMTkxLCAxNzIsIDExNiwgNSwgMjA1LCAxNzIsIDExNiwgNSwgMjMzLCAxMzUsIAorICAgIDE3MiwgMTE2LCA1LCAyMTIsIDY1LCAxNzIsIDEsIDQwLCAyMzUsIDIzLCAxNzIsIDEsIDQwLCAyNDMsIDIwMiwgMTcyLCAxLCAKKyAgICA0MCwgMjI5LCA3OSwgMTcyLCAxMTYsIDUsIDQwLCAyMjksIDc5LCAxNzIsIDEsIDQwLCAyNTAsIDE1OCwgMTcyLCAxLCA0MCwgCisgICAgMjE3LCAxNTIsIDE3MiwgMSwgNDAsIDIzMCwgMjUsIDE3MiwgMSwgNDAsIDIyNiwgMTA1LCAxNzIsIDEsIDQwLCAyMTEsIAorICAgIDExNywgMTcyLCAxLCA0MCwgMTUzLCAxNzIsIDEsIDQwLCAxNTYsIDE3MiwgMSwgNDAsIDIxOCwgMjI2LCAxNzIsIDExNiwgNSwgCisgICAgNDAsIDE5MywgMTcyLCAxMTYsIDUsIDQwLCAyNDIsIDYwLCAxNzIsIDIxLCAyMTAsIDg2LCAxNzIsIDIxLCAxMTAsIDE3MiwgCisgICAgMjEsIDEwNSwgMTcyLCAyMSwgMTU4LCAxNzIsIDIxLCAxNjEsIDE3MiwgMjEsIDE4OSwgMTcyLCAyMSwgMTk0LCAxNzIsIDIxLCAKKyAgICAxOTgsIDE3MiwgMjEsIDE5NSwgMTcyLCAyMSwgMjAwLCAxNzIsIDIyNCwgMTQxLCAyMTgsIDI1MSwgMTcyLCAyMjQsIDE0MSwgCisgICAgMjQ4LCAxNzgsIDE3MiwgMjI0LCAxNDEsIDUyLCAyNDgsIDE3OCwgMTcyLCAyMjQsIDE0MSwgMjE1LCAyMTEsIDI0OCwgMTc4LCAKKyAgICA2OCwgMSwgMjM0LCAxMjYsIDI0MywgMTM1LCA2OCwgMSwgMjM0LCAxMjYsIDI1MSwgMzMsIDY4LCAxLCAyMzQsIDEyNiwgCisgICAgMjUwLCAxNTcsIDY4LCAxLCAyMzQsIDEyNiwgMjM1LCAxNDEsIDY4LCAxLCAyMzQsIDEyNiwgMjM1LCAxMTQsIDY4LCAxLCAKKyAgICAyMzQsIDEyNiwgMjI3LCAxNjUsIDY4LCAxLCAyMzQsIDEyNiwgMjE1LCAxNTYsIDY4LCAxLCAyMzQsIDEyNiwgMjE1LCAxNDQsIAorICAgIDY4LCAxLCAyMzQsIDEyNiwgMjQ4LCAxMzUsIDY4LCAxLCAyMzQsIDEyNiwgMjQ4LCAxMTksIDY4LCAxLCAyMzQsIDEyNiwgCisgICAgMjQ4LCAyNSwgNjgsIDEsIDIzNCwgMTI2LCAxOTcsIDY4LCAxLCAyMzQsIDEyNiwgMjA2LCA2OCwgMSwgMjM0LCAxMjYsIAorICAgIDE2MiwgNjgsIDEsIDIzNCwgMTI2LCAyNDEsIDE4OSwgNjgsIDEsIDIzNCwgMTI2LCAyNDQsIDE5NiwgNjgsIDU4LCAxLCAKKyAgICAyMzQsIDEyNiwgMjIzLCAxMDksIDY4LCAxLCAyMzQsIDEyNiwgMjExLCAxNjUsIDY4LCAxLCAyMzQsIDEyNiwgMjEwLCAxMTYsIAorICAgIDY4LCAxLCAyMzQsIDEyNiwgMjA1LCA2OCwgMjMyLCAxNDUsIDIzNCwgMTI2LCAyMjYsIDI1MywgNjgsIDIzMiwgMTQ1LCAKKyAgICAyMzQsIDEyNiwgMjI0LCA0MywgNjgsIDIzMiwgMTQ1LCAyMzQsIDEyNiwgMjQxLCAxMjEsIDY4LCAxNiwgMjU0LCAxOTAsIAorICAgIDI0NSwgMzAsIDY4LCAxNiwgMjU0LCAxOTAsIDExMCwgNjgsIDE2LCAyNTQsIDE5MCwgMTA1LCA2OCwgMSwgMjU0LCAxOTAsIAorICAgIDIwNSwgNjgsIDUsIDIyNiwgMjMsIDIzNCwgMjEzLCAyMTYsIDMwLCAzOSwgMjA4LCAxLCAxMjEsIDIzNCwgMjgsIDM5LCAKKyAgICAyMDgsIDEsIDEyNSwgMjM0LCAyOCwgMzksIDIwOCwgMSwgMTIxLCAyMzQsIDEwNSwgMzksIDIwOCwgMSwgMTI1LCAyMzQsIAorICAgIDEwNSwgMzksIDIwOCwgMSwgMTIxLCAyMzQsIDExNCwgMzksIDIwOCwgMSwgMTI1LCAyMzQsIDExNCwgMzksIDIwOCwgMSwgCisgICAgMTIxLCAyNDIsIDE3NCwgMzksIDIwOCwgMSwgMTI1LCAyNDIsIDE3NCwgMzksIDIwOCwgMSwgMTIxLCAyMjksIDQsIDM5LCAKKyAgICAyMDgsIDEsIDEyNSwgMjI5LCA0LCAzOSwgMjA4LCAxLCAxMjEsIDI0OSwgMjM4LCAzOSwgMjA4LCAxLCAxMjUsIDI0OSwgCisgICAgMjM4LCAzOSwgMjA4LCAxLCAxMjEsIDI1MCwgODYsIDM5LCAyMDgsIDEsIDEyNSwgMjUwLCA4NiwgMzksIDIwOCwgMSwgMTIxLCAKKyAgICAyMTksIDU4LCAzOSwgMjA4LCAxLCAxMjUsIDIxOSwgNTgsIDM5LCAyMDgsIDEsIDEyMSwgMjI3LCAxMzQsIDM5LCAyMDgsIDEsIAorICAgIDEyNSwgMjI3LCAxMzQsIDM5LCAyMDgsIDEsIDEyMSwgMjQ3LCAxNDUsIDM5LCAyMDgsIDEsIDEyNSwgMjQ3LCAxNDUsIDM5LCAKKyAgICAyMDgsIDEsIDEyMSwgMTExLCAzOSwgMjA4LCAxLCAxMjUsIDExMSwgMzksIDIwOCwgMSwgMTIxLCAyMTYsIDE1NiwgMzksIAorICAgIDIwOCwgMSwgMTI1LCAyMTYsIDE1NiwgMzksIDIwOCwgMSwgMTIxLCAyMjgsIDc0LCAzOSwgMjA4LCAxLCAxMjUsIDIyOCwgCisgICAgNzQsIDM5LCAyMDgsIDEsIDEyMSwgMjUxLCAyMDUsIDM5LCAyMDgsIDEsIDEyNSwgMjUxLCAyMDUsIDM5LCAyMDgsIDEsIAorICAgIDEyMSwgMjI1LCAxNiwgMzksIDIwOCwgMSwgMTI1LCAyMjUsIDE2LCAzOSwgMjA4LCAxLCAxMjEsIDIyNSwgMTIxLCAzOSwgCisgICAgMjA4LCAxLCAxMjUsIDIyNSwgMTIxLCAzOSwgMjA4LCAxLCAxMjEsIDI0NCwgNDMsIDM5LCAyMDgsIDEsIDEyNSwgMjQ0LCAKKyAgICA0MywgMzksIDIwOCwgMSwgMTIxLCAyMzAsIDE2MSwgMzksIDIwOCwgMSwgMTI1LCAyMzAsIDE2MSwgMzksIDIwOCwgMSwgCisgICAgMTIxLCAyMTAsIDI0NCwgMzksIDIwOCwgMSwgMTI1LCAyMTAsIDI0NCwgMzksIDIwOCwgMSwgMTIxLCAyMjIsIDIxMSwgMzksIAorICAgIDIwOCwgMSwgMTI1LCAyMjIsIDIxMSwgMzksIDIwOCwgMSwgMTIxLCAyMzIsIDE1NiwgMzksIDIwOCwgMSwgMTI1LCAyMzIsIAorICAgIDE1NiwgMzksIDIwOCwgMSwgMTIxLCAyMTMsIDEzOCwgMzksIDIwOCwgMSwgMTI1LCAyMTMsIDEzOCwgMzksIDIwOCwgMSwgCisgICAgMTIxLCAyNDEsIDY4LCAzOSwgMjA4LCAxLCAxMjUsIDI0MSwgNjgsIDM5LCAyMDgsIDEsIDEyMSwgNzYsIDM5LCAyMDgsIDEsIAorICAgIDEyNSwgNzYsIDM5LCAyMDgsIDIzMSwgMjA0LCAyMzQsIDIzMCwgMzksIDIwOCwgMjUsIDI1NSwgNzMsIDM5LCAyMDgsIDI1LCAKKyAgICA3MywgMzksIDIwOCwgMjUsIDIxNCwgMjE0LCAzOSwgMjA4LCAyNSwgNzAsIDM5LCAyMDgsIDI1LCA3NSwgMzksIDIwOCwgMjUsIAorICAgIDc2LCAzOSwgMjA4LCAyMzEsIDIwNCwgMjM0LCAxMDgsIDM5LCAyMDgsIDI1LCAyNDAsIDExOSwgMzksIDIwOCwgMjUsIDIxNCwgCisgICAgMjEzLCAzOSwgMjA4LCAyNSwgMjE0LCAyMjksIDM5LCAyMDgsIDI1LCAyNTMsIDE5MCwgMzksIDIwOCwgMjUsIDI1MywgMTY3LCAKKyAgICAzOSwgMjA4LCAyNSwgMjU0LCAxMjMsIDM5LCAyMDgsIDI1LCAyNTQsIDEzNiwgMzksIDIwOCwgMTM4LCAyMzEsIDIwNCwgCisgICAgMjQ1LCAxODAsIDM5LCAyMDgsIDEzOCwgMjMxLCAyMDQsIDIyNywgMjA2LCAzOSwgMjA4LCAxMzgsIDIzMSwgMjA0LCAyMTYsIAorICAgIDE1NiwgMzksIDIwOCwgMTM4LCAyMzEsIDIwNCwgMjE5LCA0MiwgMzksIDIwOCwgMTYsIDIzNCwgMTMsIDM5LCAyMDgsIDE2LCAKKyAgICAyMjcsIDIwNiwgMzksIDIwOCwgMTYsIDIyMSwgMjUzLCAzOSwgMjA4LCAxNiwgMjQxLCA2OSwgMjQxLCA2NCwgMzksIDIwOCwgCisgICAgMTYsIDIzNCwgMjIsIDIzNCwgMjEsIDE4NiwgMTg1LCAxLCA3NSwgMTg2LCAxODUsIDEsIDc2LCAxODYsIDE4NSwgMSwgMjUwLCAKKyAgICAxNTcsIDE4NiwgMTg1LCAxLCAyMjcsIDE2NSwgMTg2LCAxODUsIDEsIDIxNSwgMTU2LCAxODYsIDE4NSwgMSwgMjE1LCAxNDQsIAorICAgIDE4NiwgMTg1LCAxLCAyNDgsIDEzNSwgMTg2LCAxODUsIDEsIDI0OCwgMTE5LCAxODYsIDE4NSwgMSwgMjI4LCAxMTAsIDE4NiwgCisgICAgMTg1LCAxLCAyMjAsIDEwMiwgMTg2LCAxODUsIDEsIDIxOCwgMjIzLCAxODYsIDE4NSwgMjUsIDUsIDIzNiwgMzMsIDE4NiwgCisgICAgMTg1LCAyNSwgNSwgMjE0LCAxMTgsIDE4NiwgMTg1LCAyNSwgNSwgMjU1LCAzNywgMTg2LCAxODUsIDI1LCA1LCAyNTMsIAorICAgIDE5MiwgMTg2LCAxODUsIDI1LCA1LCAyNTUsIDMwLCAxODYsIDE4NSwgMjUwLCAxMjUsIDE4NiwgMTg1LCAyNTQsIDIwNiwgCisgICAgMjM0LCA5OCwgMTg2LCAxODUsIDI1NCwgMTAzLCAxODYsIDE4NSwgMywgMjIzLCA3NCwgNzgsIDE4NiwgMTg1LCAyMTEsIAorICAgIDIwOSwgMjIzLCA3NCwgNzgsIDE4NiwgMTg1LCAyNSwgNSwgMjEzLCAxNDcsIDE4NiwgMTg1LCAyMTMsIDE1MiwgMjksIDMsIAorICAgIDIxNSwgMTM3LCAyOSwgMywgMjE1LCAxNDAsIDI5LCAzLCAyMTUsIDE0MywgMjksIDMsIDIxNSwgMTQxLCAyOSwgMywgMjE1LCAKKyAgICAxNDIsIDI5LCAzLCAyMTUsIDEzOSwgMjksIDMsIDI0OCwgMTEzLCAyOSwgMywgMjQ4LCAxMTUsIDI5LCAzLCAyNDgsIDExOCwgCisgICAgMjksIDMsIDI0OCwgMTE2LCAyOSwgMywgMjQ4LCAxMTcsIDI5LCAzLCAyNDgsIDExNCwgMjksIDMsIDI0NiwgMjgsIDI5LCAzLCAKKyAgICAyNDYsIDMxLCAyOSwgMywgMjQ2LCAzNywgMjksIDMsIDI0NiwgMzUsIDI5LCAzLCAyNDYsIDM2LCAyOSwgMywgMjQ2LCAyOSwgCisgICAgMjksIDMsIDI1MCwgMjA0LCAyOSwgMywgMjUwLCAxOTgsIDI5LCAzLCAyNTAsIDIwMCwgMjksIDMsIDI1MCwgMjAzLCAyOSwgCisgICAgMywgMjUwLCAyMDEsIDI5LCAzLCAyNTAsIDIwMiwgMjksIDMsIDI1MCwgMTk5LCAyOSwgMywgMjUyLCAxMTEsIDI5LCAzLCAKKyAgICAyNTIsIDkwLCAyOSwgMywgMjUyLCAxMDIsIDI5LCAzLCAyNTIsIDExMCwgMjksIDMsIDI1MiwgMTA1LCAyOSwgMywgMjUyLCAKKyAgICAxMDYsIDI5LCAzLCAyNTIsIDk0LCAxODYsIDE4NSwgMSwgMjM0LCAxOSwgMTg2LCAxODUsIDEsIDIyMSwgMjUzLCAxODYsIAorICAgIDE4NSwgMSwgMjMzLCAxMDksIDE4NiwgMTg1LCAxLCAyMzAsIDE3MiwgMTg2LCAxODUsIDEsIDE5MCwgMTg2LCAxODUsIDEsIAorICAgIDE5NywgMTg2LCAxODUsIDEsIDI1MCwgMTAyLCAxODYsIDE4NSwgMSwgMjE2LCA5MCwgMTg2LCAxODUsIDEsIDIzNCwgMTAxLCAKKyAgICAxODYsIDE4NSwgMSwgMjI4LCAyNTAsIDE4NiwgMTg1LCAxLCAyMTYsIDE1MCwgMTg2LCAxODUsIDEsIDIxMiwgNjAsIDE4NiwgCisgICAgMTg1LCAxLCAyMTEsIDY5LCAxODYsIDE4NSwgMSwgMjQwLCAyMTYsIDE4NiwgMTg1LCAxLCAyMTQsIDE5MCwgMTg2LCAxODUsIAorICAgIDEsIDczLCAxODYsIDE4NSwgMSwgMjI1LCAxNDIsIDE4NiwgMTg1LCAxLCAyNTMsIDIwMiwgMTg2LCAxODUsIDEsIDI0MiwgCisgICAgMTY3LCAxODYsIDE4NSwgMSwgMjM1LCAxMTIsIDE4NiwgMTg1LCAxLCAyMjMsIDE2NiwgMTg2LCAxODUsIDEsIDI1MiwgMTkxLCAKKyAgICAxODYsIDE4NSwgMSwgMjM1LCAxMDAsIDE4NiwgMTg1LCAxLCAyNDcsIDIxOSwgMTg2LCAxODUsIDEsIDI0MiwgMjIxLCAxODYsIAorICAgIDE4NSwgMSwgMjQ4LCA1LCAxODYsIDE4NSwgMSwgMjUyLCAxNiwgMTg2LCAxODUsIDEsIDIzNCwgMjAsIDIzMiwgMTI4LCAKKyAgICAxODYsIDE4NSwgMSwgMjMzLCAxMTAsIDIzMiwgMTI4LCAxODYsIDE4NSwgMSwgMjMwLCAxNzMsIDIzMiwgMTI4LCAxODYsIAorICAgIDE4NSwgMSwgMjI2LCA5MCwgMjMyLCAxMjgsIDE4NiwgMTg1LCAxLCAyMjksIDIyOSwgMjMyLCAxMjgsIDE4NiwgMTg1LCAxLCAKKyAgICAyMTYsIDkxLCAyMzIsIDEyOCwgMTg2LCAxODUsIDEsIDIyOCwgMjUxLCAyMzIsIDEyOCwgMTg2LCAxODUsIDEsIDI0MCwgCisgICAgMTU0LCAyMzIsIDEyOCwgMTg2LCAxODUsIDI1LCA1LCAyMjYsIDE5NSwgMTg2LCAxODUsIDI1LCA1LCAyMzUsIDI1MywgMTg2LCAKKyAgICAxODUsIDI1LCA1LCAyNTQsIDEyMiwgMTg2LCAxODUsIDI1LCA1LCAyMTEsIDM4LCAxODYsIDE4NSwgMjUsIDUsIDIxOSwgMzIsIAorICAgIDE4NiwgMTg1LCAyNSwgNSwgMjE0LCAxODcsIDE4NiwgMTg1LCAyNSwgNSwgMjUwLCAxMjMsIDE4NiwgMTg1LCAyNSwgNSwgCisgICAgMjI3LCAxOTEsIDE4NiwgMTg1LCAyNTAsIDEyNCwgMTg2LCAxODUsIDIzMiwgODUsIDIzNSwgMTUwLCAxODYsIDE4NSwgMjU0LCAKKyAgICA0NiwgMjM1LCAxNTAsIDE4NiwgMTg1LCAyMSwgMjEwLCA4NiwgMTg2LCAxODUsIDIxLCAxMTAsIDE4NiwgMTg1LCAyMSwgCisgICAgMTA1LCAxODYsIDE4NSwgMjEsIDE1OCwgMTg2LCAxODUsIDIxLCAxNjEsIDE4NiwgMTg1LCAyMSwgMTg5LCAxODYsIDE4NSwgCisgICAgMjEsIDE5NCwgMTg2LCAxODUsIDIxLCAxOTgsIDE4NiwgMTg1LCAyMSwgMTk1LCAxODYsIDE4NSwgMjEsIDIwMCwgMjQsIAorICAgIDE0MywgMjI3LCA3NywgMjQsIDE0MywgMjI3LCA4MiwgMjQsIDE0MywgMjEwLCAyNDMsIDI0LCAxNDMsIDIxMCwgMjQyLCAyNCwgCisgICAgMTQzLCAyMTAsIDI0MSwgMjQsIDE0MywgMjE1LCAyMywgMjQsIDE0MywgMjE1LCAyNiwgMjQsIDE0MywgMjEwLCAyMTAsIDI0LCAKKyAgICAxNDMsIDIxMCwgMjA2LCAyNCwgMTQzLCAyNDUsIDU0LCAyNCwgMTQzLCAyNDUsIDUyLCAyNCwgMTQzLCAyNDUsIDUzLCAyNCwgCisgICAgMTQzLCAyNDUsIDUwLCAyNCwgMTQzLCAyNDAsIDE0NCwgMjQsIDE0MywgMjQwLCAxNDMsIDI0LCAxNDMsIDI0MCwgMTQxLCAKKyAgICAyNCwgMTQzLCAyNDAsIDE0MiwgMjQsIDE0MywgMjQwLCAxNDcsIDI0LCAxNDMsIDI0MCwgMTQwLCAyNCwgMTQzLCAyNDAsIAorICAgIDEzOSwgMjQsIDE0MywgMjQwLCAxNDksIDI0LCAxNDMsIDI1NCwgMzMsIDI0LCAxNDMsIDI1NCwgMzIsIDI0LCA5MCwgMjI4LCAKKyAgICAyMTksIDI0LCA5MCwgMjI4LCAyMjUsIDI0LCA5MCwgMjE4LCAyMDQsIDI0LCA5MCwgMjE4LCAyMDMsIDI0LCA5MCwgMjE2LCAKKyAgICA5NiwgMjQsIDkwLCAyMTYsIDk0LCAyNCwgOTAsIDIxNiwgOTMsIDI0LCA5MCwgMjE2LCA5OSwgMjQsIDkwLCAyMTYsIDEwMCwgCisgICAgMjQsIDkwLCAyMTYsIDkyLCAyNCwgOTAsIDIyMywgNSwgMjQsIDkwLCAyMjMsIDIwLCAyNCwgOTAsIDIxOCwgMjEwLCAyNCwgCisgICAgOTAsIDIyMywgMTcsIDI0LCA5MCwgMjIzLCA3LCAyNCwgOTAsIDIyMywgOSwgMjQsIDkwLCAyMjIsIDI1MiwgMjQsIDkwLCAKKyAgICAyMjIsIDI1MywgMjQsIDkwLCAyMzQsIDIxOCwgMjQsIDkwLCAyMzAsIDIxMiwgMjQsIDkwLCAyMzAsIDIwNiwgMjQsIDkwLCAKKyAgICAyMTgsIDIxNCwgMjQsIDkwLCAyMzAsIDIwOSwgMjQsIDkwLCAyMzAsIDIxNSwgMjQsIDkwLCAyMjUsIDc2LCAyNCwgOTAsIAorICAgIDIyNSwgODUsIDI0LCA5MCwgMjI1LCA4OSwgMjQsIDkwLCAyMTgsIDIxMiwgMjQsIDkwLCAyMjUsIDc5LCAyNCwgOTAsIDIyNSwgCisgICAgOTMsIDI0LCA5MCwgMjI1LCA5NCwgMjQsIDkwLCAyMTksIDE0MCwgMjQsIDkwLCAyMTksIDE0MywgMjQsIDkwLCAyMTgsIAorICAgIDIwOCwgMjQsIDkwLCAyMTgsIDIwNiwgMjQsIDkwLCAyMTksIDEzOCwgMjQsIDkwLCAyMTksIDE0NiwgMjQsIDkwLCAyMTksIAorICAgIDE0NywgMjQsIDkwLCAyMTksIDEzMiwgMjQsIDkwLCAyMTksIDE0NSwgMjQsIDkwLCAyMjYsIDMwLCAyNCwgOTAsIDIyNiwgCisgICAgMzEsIDI0LCA5MCwgMjExLCAyNCwgMjQsIDkwLCAyMTEsIDI1LCAyNCwgOTAsIDI1MCwgNDQsIDI0LCA5MCwgMjUwLCA0MywgCisgICAgMjQsIDkwLCAyMTgsIDIxOSwgMjQsIDkwLCAyMjUsIDEyOCwgMjQsIDkwLCAyMjUsIDEyNywgOSwgMTQsIDIzOCwgMjQsIDksIAorICAgIDE0LCAyMzgsIDIzLCA5LCAxNCwgMjM4LCAyMiwgOSwgMTQsIDIzOCwgMjEsIDksIDE0LCAyMzgsIDIwLCA5LCAxNCwgMjM4LCAKKyAgICAxOSwgOSwgMTQsIDIzOCwgMTgsIDksIDE0LCAyMzgsIDE3LCA5LCAxNCwgMjM4LCAxNiwgOSwgMTQsIDIzOCwgMTUsIDksIAorICAgIDE0LCAyMzgsIDE0LCA5LCAxNCwgMjM4LCAxMywgOSwgMTQsIDIzOCwgMTIsIDksIDE0LCAyMzgsIDExLCA5LCAxNCwgMjM4LCAKKyAgICAxMCwgOSwgMTQsIDIzOCwgOSwgOSwgMTQsIDIzOCwgOCwgOSwgMTQsIDIzOCwgNywgOSwgMTQsIDIzOCwgNiwgOSwgMTQsIAorICAgIDIzOCwgNSwgOSwgMTQsIDIzOCwgNCwgOSwgMTQsIDIzOCwgMywgOSwgMTQsIDIzOCwgMiwgOSwgMTQsIDIzOCwgMSwgOSwgCisgICAgMTQsIDIzOCwgMCwgOSwgMTQsIDIzNywgMjU1LCA5LCAxNCwgMjM3LCAyNTQsIDksIDE0LCAyMzcsIDI1MywgOSwgMTQsIAorICAgIDIzNywgMjUyLCA5LCAxNCwgMjM3LCAyNTEsIDksIDE0LCAyMzcsIDI1MCwgOSwgMTQsIDIzNywgMjQ5LCA5LCAxNCwgMjM3LCAKKyAgICAyNDgsIDksIDE0LCAyMzcsIDI0NywgOSwgMTQsIDIzNywgMjQ2LCA5LCAxNCwgMjM3LCAyNDUsIDksIDE0LCAyMzcsIDI0NCwgCisgICAgOSwgMTQsIDIzNywgMjQzLCA5LCAxNCwgMjM3LCAyNDIsIDksIDE0LCAyMzcsIDI0MSwgOSwgMTQsIDIzNywgMjQwLCA5LCAKKyAgICAxNCwgMjM3LCAyMzksIDksIDE0LCAyMzcsIDIzOCwgOSwgMTQsIDIzNywgMjM3LCA5LCAxNCwgMjM3LCAyMzYsIDksIDE0LCAKKyAgICAyMzcsIDIzNSwgOSwgMTQsIDIzNywgMjM0LCA5LCAxNCwgMjM3LCAyMzMsIDksIDE0LCAyMzcsIDIzMiwgOSwgMTQsIDIzNywgCisgICAgMjMxLCA5LCAxNCwgMjM3LCAyMzAsIDksIDE0LCAyMzcsIDIyOSwgOSwgMTQsIDIzNywgMjI4LCA5LCAxNCwgMjM3LCAyMjcsIAorICAgIDksIDE0LCAyMzcsIDIyNiwgOSwgMTQsIDIzNywgMjI1LCA5LCAxNCwgMjM3LCAyMjQsIDksIDE0LCAyMzcsIDIyMywgOSwgCisgICAgMTQsIDIzNywgMjIyLCA5LCAxNCwgMjM3LCAyMjEsIDksIDE0LCAyMzcsIDIyMCwgOSwgMTQsIDIzNywgMjE5LCA5LCAxNCwgCisgICAgMjM3LCAyMTgsIDksIDE0LCAyMzcsIDIxNywgOSwgMTQsIDIzNywgMjE2LCA5LCAxNCwgMjM3LCAyMTUsIDksIDE0LCAyMzcsIAorICAgIDIxNCwgOSwgMTQsIDIzNywgMjEzLCA5LCAxNCwgMjM3LCAyMTIsIDksIDE0LCAyMzcsIDIxMSwgOSwgMTQsIDIzNywgMjEwLCAKKyAgICA5LCAxNCwgMjM3LCAyMDksIDksIDE0LCAyMzcsIDIwOCwgOSwgMTQsIDIzNywgMjA3LCA5LCAxNCwgMjM3LCAyMDYsIDksIAorICAgIDE0LCAyMzcsIDIwNSwgOSwgMTQsIDIzNywgMjA0LCA5LCAxNCwgMjM3LCAyMDMsIDksIDE0LCAyMzcsIDIwMiwgOSwgMTQsIAorICAgIDIzNywgMjAxLCA5LCAxNCwgMjM3LCAyMDAsIDksIDE0LCAyMzcsIDE5OSwgOSwgMTQsIDIzNywgMTk4LCA5LCAxNCwgMjM3LCAKKyAgICAxOTcsIDksIDE0LCAyMzcsIDE5NiwgOSwgMTQsIDIzNywgMTk1LCA5LCAxNCwgMjM3LCAxOTQsIDksIDE0LCAyMzcsIDE5MywgCisgICAgOSwgMTQsIDIzNywgMTkyLCA5LCAxNCwgMjM3LCAxOTEsIDksIDE0LCAyMzcsIDE5MCwgOSwgMTQsIDIzNywgMTg5LCA5LCAKKyAgICAxNCwgMjM3LCAxODgsIDksIDE0LCAyMzcsIDE4NywgOSwgMTQsIDIzNywgMTg2LCA5LCAxNCwgMjM3LCAxODUsIDksIDE0LCAKKyAgICAyMzcsIDE4NCwgOSwgMTQsIDIzNywgMTgzLCA5LCAxNCwgMjM3LCAxODIsIDksIDE0LCAyMzcsIDE4MSwgOSwgMTQsIDIzNywgCisgICAgMTgwLCA5LCAxNCwgMjM3LCAxNzksIDksIDE0LCAyMzcsIDE3OCwgOSwgMTQsIDIzNywgMTc3LCA5LCAxNCwgMjM3LCAxNzYsIAorICAgIDksIDE0LCAyMzcsIDE3NSwgOSwgMTQsIDIzNywgMTc0LCA5LCAxNCwgMjM3LCAxNzMsIDksIDE0LCAyMzcsIDE3MiwgOSwgCisgICAgMTQsIDIzNywgMTcxLCA5LCAxNCwgMjM3LCAxNzAsIDksIDE0LCAyMzcsIDE2OSwgOSwgMTQsIDIzNywgMTY4LCA5LCAxNCwgCisgICAgMjM3LCAxNjcsIDksIDE0LCAyMzcsIDE2NiwgOSwgMTQsIDIzNywgMTY1LCA5LCAxNCwgMjM3LCAxNjQsIDksIDE0LCAyMzcsIAorICAgIDE2MywgOSwgMTQsIDIzNywgMTYyLCA5LCAxNCwgMjM3LCAxNjEsIDksIDE0LCAyMzcsIDE2MCwgOSwgMTQsIDIzNywgMTU5LCAKKyAgICA5LCAxNCwgMjM3LCAxNTgsIDksIDE0LCAyMzcsIDE1NywgOSwgMTQsIDIzNywgMTU2LCA5LCAxNCwgMjM3LCAxNTUsIDksIAorICAgIDE0LCAyMzcsIDE1NCwgOSwgMTQsIDIzNywgMTUzLCA5LCAxNCwgMjM3LCAxNTIsIDksIDE0LCAyMzcsIDE1MSwgOSwgMTQsIAorICAgIDIzNywgMTUwLCA5LCAxNCwgMjM3LCAxNDksIDksIDE0LCAyMzcsIDE0OCwgOSwgMTQsIDIzNywgMTQ3LCA5LCAxNCwgMjM3LCAKKyAgICAxNDYsIDksIDE0LCAyMzcsIDE0NSwgOSwgMTQsIDIzNywgMTQ0LCA5LCAxNCwgMjM3LCAxNDMsIDksIDE0LCAyMzcsIDE0MiwgCisgICAgOSwgMTQsIDIzNywgMTQxLCA5LCAxNCwgMjM3LCAxNDAsIDksIDE0LCAyMzcsIDEzOSwgOSwgMTQsIDIzNywgMTM4LCA5LCAKKyAgICAxNCwgMjM3LCAxMzcsIDksIDE0LCAyMzcsIDEzNiwgOSwgMTQsIDIzNywgMTM1LCA5LCAxNCwgMjM3LCAxMzQsIDksIDE0LCAKKyAgICAyMzcsIDEzMywgOSwgMTQsIDIzNywgMTMyLCA5LCAxNCwgMjM3LCAxMzEsIDksIDE0LCAyMzcsIDEzMCwgOSwgMTQsIDIzNywgCisgICAgMTI5LCA5LCAxNCwgMjM3LCAxMjgsIDksIDE0LCAyMzcsIDEyNywgOSwgMTQsIDIzNywgMTI2LCA5LCAxNCwgMjM3LCAxMjUsIAorICAgIDksIDE0LCAyMzcsIDEyNCwgOSwgMTQsIDIzNywgMTIzLCA5LCAxNCwgMjM3LCAxMjIsIDksIDE0LCAyMzcsIDEyMSwgOSwgCisgICAgMTQsIDIzNywgMTIwLCA5LCAxNCwgMjM3LCAxMTksIDksIDE0LCAyMzcsIDExOCwgOSwgMTQsIDIzNywgMTE3LCA5LCAxNCwgCisgICAgMjM3LCAxMTYsIDksIDE0LCAyMzcsIDExNSwgOSwgMTQsIDIzNywgMTE0LCA5LCAxNCwgMjM3LCAxMTMsIDksIDE0LCAyMzcsIAorICAgIDExMiwgOSwgMTQsIDIzNywgMTExLCA5LCAxNCwgMjM3LCAxMTAsIDksIDE0LCAyMzcsIDEwOSwgOSwgMTQsIDIzNywgMTA4LCAKKyAgICA5LCAxNCwgMjM3LCAxMDcsIDksIDE0LCAyMzcsIDEwNiwgOSwgMTQsIDIzNywgMTA1LCA5LCAxNCwgMjM3LCAxMDQsIDksIAorICAgIDE0LCAyMzcsIDEwMywgOSwgMTQsIDIzNywgMTAyLCA5LCAxNCwgMjM3LCAxMDEsIDksIDE0LCAyMzcsIDEwMCwgOSwgMTQsIAorICAgIDIzNywgOTksIDksIDE0LCAyMzcsIDk4LCA5LCAxNCwgMjM3LCA5NywgOSwgMTQsIDIzNywgOTYsIDksIDE0LCAyMzcsIDk1LCAKKyAgICA5LCAxNCwgMjM3LCA5NCwgOSwgMTQsIDIzNywgOTMsIDksIDE0LCAyMzcsIDkyLCA5LCAxNCwgMjM3LCA5MSwgOSwgMTQsIAorICAgIDIzNywgOTAsIDksIDE0LCAyMzcsIDg5LCA5LCAxNCwgMjM3LCA4OCwgOSwgMTQsIDIzNywgODcsIDksIDE0LCAyMzcsIDg2LCAKKyAgICA5LCAxNCwgMjM3LCA4NSwgOSwgMTQsIDIzNywgODQsIDksIDE0LCAyMzcsIDgzLCA5LCAxNCwgMjM3LCA4MiwgOSwgMTQsIAorICAgIDIzNywgODEsIDksIDE0LCAyMzcsIDgwLCA5LCAxNCwgMjM3LCA3OSwgOSwgMTQsIDIzNywgNzgsIDksIDE0LCAyMzcsIDc3LCAKKyAgICA5LCAxNCwgMjM3LCA3NiwgOSwgMTQsIDIzNywgNzUsIDksIDE0LCAyMzcsIDc0LCA5LCAxNCwgMjM3LCA3MywgOSwgMTQsIAorICAgIDIzNywgNzIsIDksIDE0LCAyMzcsIDcxLCA5LCAxNCwgMjM3LCA3MCwgOSwgMTQsIDIzNywgNjksIDksIDE0LCAyMzcsIDY4LCAKKyAgICA5LCAxNCwgMjM3LCA2NywgOSwgMTQsIDIzNywgNjYsIDksIDE0LCAyMzcsIDY1LCA5LCAxNCwgMjM3LCA2NCwgOSwgMTQsIAorICAgIDIzNywgNjMsIDksIDE0LCAyMzcsIDYyLCA5LCAxNCwgMjM3LCA2MSwgOSwgMTQsIDIzNywgNjAsIDksIDE0LCAyMzcsIDU5LCAKKyAgICA5LCAxNCwgMjM3LCA1OCwgOSwgMTQsIDIzNywgNTcsIDksIDE0LCAyMzcsIDU2LCA5LCAxNCwgMjM3LCA1NSwgOSwgMTQsIAorICAgIDIzNywgNTQsIDksIDE0LCAyMzcsIDUzLCA5LCAxNCwgMjM3LCA1MiwgOSwgMTQsIDIzNywgNTEsIDksIDE0LCAyMzcsIDUwLCAKKyAgICA5LCAxNCwgMjM3LCA0OSwgOSwgMTQsIDIzNywgNDgsIDksIDE0LCAyMzcsIDQ3LCA5LCAxNCwgMjM3LCA0NiwgOSwgMTQsIAorICAgIDIzNywgNDUsIDksIDE0LCAyMzcsIDQ0LCA5LCAxNCwgMjM3LCA0MywgOSwgMTQsIDIzNywgNDIsIDksIDE0LCAyMzcsIDQxLCAKKyAgICA5LCAxNCwgMjM3LCA0MCwgOSwgMTQsIDIzNywgMzksIDksIDE0LCAyMzcsIDM4LCA5LCAxNCwgMjM3LCAzNywgOSwgMTQsIAorICAgIDIzNywgMzYsIDksIDE0LCAyMzcsIDM1LCA5LCAxNCwgMjM3LCAzNCwgOSwgMTQsIDIzNywgMzMsIDksIDE0LCAyMzcsIDMyLCAKKyAgICA5LCAxNCwgMjM3LCAzMSwgOSwgMTQsIDIzNywgMzAsIDksIDE0LCAyMzcsIDI5LCA5LCAxNCwgMjM3LCAyOCwgOSwgMTQsIAorICAgIDIzNywgMjcsIDksIDE0LCAyMzcsIDI2LCA5LCAxNCwgMjM3LCAyNSwgOSwgMTQsIDIzNywgMjQsIDksIDE0LCAyMzcsIDIzLCAKKyAgICA5LCAxNCwgMjM3LCAyMiwgOSwgMTQsIDIzNywgMjEsIDksIDE0LCAyMzcsIDIwLCA5LCAxNCwgMjM3LCAxOSwgOSwgMTQsIAorICAgIDIzNywgMTgsIDksIDE0LCAyMzcsIDE3LCA5LCAxNCwgMjM3LCAxNiwgOSwgMTQsIDIzNywgMTUsIDksIDE0LCAyMzcsIDE0LCAKKyAgICA5LCAxNCwgMjM3LCAxMywgOSwgMTQsIDIzNywgMTIsIDksIDE0LCAyMzcsIDExLCA5LCAxNCwgMjM3LCAxMCwgOSwgMTQsIAorICAgIDIzNywgOSwgOSwgMTQsIDIzNywgOCwgOSwgMTQsIDIzNywgNywgOSwgMTQsIDIzNywgNiwgOSwgMTQsIDIzNywgNSwgOSwgCisgICAgMTQsIDIzNywgNCwgOSwgMTQsIDIzNywgMywgOSwgMTQsIDIzNywgMiwgOSwgMTQsIDIzNywgMSwgOSwgMTQsIDIzNywgMCwgCisgICAgOSwgMTQsIDIzNiwgMjU1LCA5LCAxNCwgMjM2LCAyNTQsIDksIDE0LCAyMzYsIDI1MywgOSwgMTQsIDIzNiwgMjUyLCA5LCAKKyAgICAxNCwgMjM2LCAyNTEsIDksIDE0LCAyMzYsIDI1MCwgOSwgMTQsIDIzNiwgMjQ5LCA5LCAxNCwgMjM2LCAyNDgsIDksIDE0LCAKKyAgICAyMzYsIDI0NywgOSwgMTQsIDIzNiwgMjQ2LCA5LCAxNCwgMjM2LCAyNDUsIDksIDE0LCAyMzYsIDI0NCwgOSwgMTQsIDIzNiwgCisgICAgMjQzLCA5LCAxNCwgMjM2LCAyNDIsIDksIDE0LCAyMzYsIDI0MSwgOSwgMTQsIDIzNiwgMjQwLCA5LCAxNCwgMjM2LCAyMzksIAorICAgIDksIDE0LCAyMzYsIDIzOCwgOSwgMTQsIDIzNiwgMjM3LCA5LCAxNCwgMjM2LCAyMzYsIDksIDE0LCAyMzYsIDIzNSwgOSwgCisgICAgMTQsIDIzNiwgMjM0LCA5LCAxNCwgMjM2LCAyMzMsIDksIDE0LCAyMzYsIDIzMiwgOSwgMTQsIDIzNiwgMjMxLCA5LCAxNCwgCisgICAgMjM2LCAyMzAsIDksIDE0LCAyMzYsIDIyOSwgOSwgMTQsIDIzNiwgMjI4LCA5LCAxNCwgMjM2LCAyMjcsIDksIDE0LCAyMzYsIAorICAgIDIyNiwgOSwgMTQsIDIzNiwgMjI1LCA5LCAxNCwgMjM2LCAyMjQsIDksIDE0LCAyMzYsIDIyMywgOSwgMTQsIDIzNiwgMjIyLCAKKyAgICA5LCAxNCwgMjM2LCAyMjEsIDksIDE0LCAyMzYsIDIyMCwgOSwgMTQsIDIzNiwgMjE5LCA5LCAxNCwgMjM2LCAyMTgsIDksIAorICAgIDE0LCAyMzYsIDIxNywgOSwgMTQsIDIzNiwgMjE2LCA5LCAxNCwgMjM2LCAyMTUsIDksIDE0LCAyMzYsIDIxNCwgOSwgMTQsIAorICAgIDIzNiwgMjEzLCA5LCAxNCwgMjM2LCAyMTIsIDksIDE0LCAyMzYsIDIxMSwgOSwgMTQsIDIzNiwgMjEwLCA5LCAxNCwgMjM2LCAKKyAgICAyMDksIDksIDE0LCAyMzYsIDIwOCwgOSwgMTQsIDIzNiwgMjA3LCA5LCAxNCwgMjM2LCAyMDYsIDksIDE0LCAyMzYsIDIwNSwgCisgICAgOSwgMTQsIDIzNiwgMjA0LCA5LCAxNCwgMjM2LCAyMDMsIDksIDE0LCAyMzYsIDIwMiwgOSwgMTQsIDIzNiwgMjAxLCA5LCAKKyAgICAxNCwgMjM2LCAyMDAsIDksIDE0LCAyMzYsIDE5OSwgOSwgMTQsIDIzNiwgMTk4LCA5LCAxNCwgMjM2LCAxOTcsIDksIDE0LCAKKyAgICAyMzYsIDE5NiwgOSwgMTQsIDIzNiwgMTk1LCA5LCAxNCwgMjM2LCAxOTQsIDksIDE0LCAyMzYsIDE5MywgOSwgMTQsIDIzNiwgCisgICAgMTkyLCA5LCAxNCwgMjM2LCAxOTEsIDksIDE0LCAyMzYsIDE5MCwgOSwgMTQsIDIzNiwgMTg5LCA5LCAxNCwgMjM2LCAxODgsIAorICAgIDksIDE0LCAyMzYsIDE4NywgOSwgMTQsIDIzNiwgMTg2LCA5LCAxNCwgMjM2LCAxODUsIDksIDE0LCAyMzYsIDE4NCwgOSwgCisgICAgMTQsIDIzNiwgMTgzLCA5LCAxNCwgMjM2LCAxODIsIDksIDE0LCAyMzYsIDE4MSwgOSwgMTQsIDIzNiwgMTgwLCA5LCAxNCwgCisgICAgMjM2LCAxNzksIDksIDE0LCAyMzYsIDE3OCwgOSwgMTQsIDIzNiwgMTc3LCA5LCAxNCwgMjM2LCAxNzYsIDksIDE0LCAyMzYsIAorICAgIDE3NSwgOSwgMTQsIDIzNiwgMTc0LCA5LCAxNCwgMjM2LCAxNzMsIDksIDE0LCAyMzYsIDE3MiwgOSwgMTQsIDIzNiwgMTcxLCAKKyAgICA5LCAxNCwgMjM2LCAxNzAsIDksIDE0LCAyMzYsIDE2OSwgOSwgMTQsIDIzNiwgMTY4LCA5LCAxNCwgMjM2LCAxNjcsIDksIAorICAgIDE0LCAyMzYsIDE2NiwgOSwgMTQsIDIzNiwgMTY1LCA5LCAxNCwgMjM2LCAxNjQsIDksIDE0LCAyMzYsIDE2MywgOSwgMTQsIAorICAgIDIzNiwgMTYyLCA5LCAxNCwgMjM2LCAxNjEsIDksIDE0LCAyMzYsIDE2MCwgOSwgMTQsIDIzNiwgMTU5LCA5LCAxNCwgMjM2LCAKKyAgICAxNTgsIDksIDE0LCAyMzYsIDE1NywgOSwgMTQsIDIzNiwgMTU2LCA5LCAxNCwgMjM2LCAxNTUsIDksIDE0LCAyMzYsIDE1NCwgCisgICAgOSwgMTQsIDIzNiwgMTUzLCA5LCAxNCwgMjM2LCAxNTIsIDksIDE0LCAyMzYsIDE1MSwgOSwgMTQsIDIzNiwgMTUwLCA5LCAKKyAgICAxNCwgMjM2LCAxNDksIDksIDE0LCAyMzYsIDE0OCwgOSwgMTQsIDIzNiwgMTQ3LCA5LCAxNCwgMjM2LCAxNDYsIDksIDE0LCAKKyAgICAyMzYsIDE0NSwgOSwgMTQsIDIzNiwgMTQ0LCA5LCAxNCwgMjM2LCAxNDMsIDksIDE0LCAyMzYsIDE0MiwgOSwgMTQsIDIzNiwgCisgICAgMTQxLCA5LCAxNCwgMjM2LCAxNDAsIDksIDE0LCAyMzYsIDEzOSwgOSwgMTQsIDIzNiwgMTM4LCA5LCAxNCwgMjM2LCAxMzcsIAorICAgIDksIDE0LCAyMzYsIDEzNiwgOSwgMTQsIDIzNiwgMTM1LCA5LCAxNCwgMjM2LCAxMzQsIDksIDE0LCAyMzYsIDEzMywgOSwgCisgICAgMTQsIDIzNiwgMTMyLCA5LCAxNCwgMjM2LCAxMzEsIDksIDE0LCAyMzYsIDEzMCwgOSwgMTQsIDIzNiwgMTI5LCA5LCAxNCwgCisgICAgMjM2LCAxMjgsIDksIDE0LCAyMzYsIDEyNywgOSwgMTQsIDIzNiwgMTI2LCA5LCAxNCwgMjM2LCAxMjUsIDksIDE0LCAyMzYsIAorICAgIDEyNCwgOSwgMTQsIDIzNiwgMTIzLCA5LCAxNCwgMjM2LCAxMjIsIDksIDE0LCAyMzYsIDEyMSwgOSwgMTQsIDIzNiwgMTIwLCAKKyAgICA5LCAxNCwgMjM2LCAxMTksIDksIDE0LCAyMzYsIDExOCwgOSwgMTQsIDIzNiwgMTE3LCA5LCAxNCwgMjM2LCAxMTYsIDksIAorICAgIDE0LCAyMzYsIDExNSwgOSwgMTQsIDIzNiwgMTE0LCA5LCAxNCwgMjM2LCAxMTMsIDksIDE0LCAyMzYsIDExMiwgOSwgMTQsIAorICAgIDIzNiwgMTExLCA5LCAxNCwgMjM2LCAxMTAsIDksIDE0LCAyMzYsIDEwOSwgOSwgMTQsIDIzNiwgMTA4LCA5LCAxNCwgMjM2LCAKKyAgICAxMDcsIDksIDE0LCAyMzYsIDEwNiwgOSwgMTQsIDIzNiwgMTA1LCA5LCAxNCwgMjM2LCAxMDQsIDksIDE0LCAyMzYsIDEwMywgCisgICAgOSwgMTQsIDIzNiwgMTAyLCA5LCAxNCwgMjM2LCAxMDEsIDksIDE0LCAyMzYsIDEwMCwgOSwgMTQsIDIzNiwgOTksIDksIDE0LCAKKyAgICAyMzYsIDk4LCA5LCAxNCwgMjM2LCA5NywgOSwgMTQsIDIzNiwgOTYsIDksIDE0LCAyMzYsIDk1LCA5LCAxNCwgMjM2LCA5NCwgCisgICAgOSwgMTQsIDIzNiwgOTMsIDksIDE0LCAyMzYsIDkyLCA5LCAxNCwgMjM2LCA5MSwgOSwgMTQsIDIzNiwgOTAsIDksIDE0LCAKKyAgICAyMzYsIDg5LCA5LCAxNCwgMjM2LCA4OCwgOSwgMTQsIDIzNiwgODcsIDksIDE0LCAyMzYsIDg2LCA5LCAxNCwgMjM2LCA4NSwgCisgICAgOSwgMTQsIDIzNiwgODQsIDksIDE0LCAyMzYsIDgzLCA5LCAxNCwgMjM2LCA4MiwgOSwgMTQsIDIzNiwgODEsIDksIDE0LCAKKyAgICAyMzYsIDgwLCA5LCAxNCwgMjM2LCA3OSwgOSwgMTQsIDIzNiwgNzgsIDksIDE0LCAyMzYsIDc3LCA5LCAxNCwgMjM2LCA3NiwgCisgICAgOSwgMTQsIDIzNiwgNzUsIDksIDE0LCAyMzYsIDc0LCA5LCAxNCwgMjM2LCA3MywgOSwgMTQsIDIzNiwgNzIsIDksIDE0LCAKKyAgICAyMzYsIDcxLCA5LCAxNCwgMjM2LCA3MCwgOSwgMTQsIDIzNiwgNjksIDksIDE0LCAyMzYsIDY4LCA5LCAxNCwgMjM2LCA2NywgCisgICAgOSwgMTQsIDIzNiwgNjYsIDksIDE0LCAyMzYsIDY1LCA3LCA0LCAyNywgMjQ0LCAxMjUsIDcsIDQsIDI3LCAyNDQsIDEyMSwgCisgICAgNywgNCwgMjcsIDI0NCwgNzYsIDcsIDQsIDI3LCAyNDQsIDEyNCwgNywgNCwgMjcsIDI0NCwgMTIzLCA3LCA0LCAyNywgMTk5LCAKKyAgICAyMjIsIDkyLCAyMTcsIDE1MiwgNywgNCwgMjcsIDIxOCwgMTY4LCAxNTAsIDQsIDI3LCAyMzEsIDU5LCAyMjgsIDM5LCAxNTAsIAorICAgIDQsIDI3LCAyMzEsIDU5LCAyNDUsIDIxMywgMTUwLCA0LCAyNywgMjMxLCA1OSwgMjM1LCAyMjcsIDE1MCwgNCwgMjcsIDIxMywgCisgICAgMTgwLCAyMjgsIDM5LCAxNTAsIDQsIDI3LCAyMzEsIDU5LCAyMTEsIDE2MCwgOTQsIDEsIDIxMCwgMjM0LCAyLCAyNDEsIAorICAgIDE1OCwgOTQsIDIyNSwgMTEsIDIzNSwgNTAsIDIxNCwgMTEsIDk0LCAyNywgMjExLCA2LCAyMTAsIDIzNCwgMjEwLCAyMzQsIAorICAgIDIyNSwgMjM5LCA5NCwgMSwgMjU0LCAxMzksIDI1MywgMTYyLCA5NCwgMSwgMjExLCAyNDcsIDI1NCwgMTcwLCA5NCwgMSwgCisgICAgMjExLCAyNDcsIDI0OCwgMTg5LCA5NCwgMSwgMjExLCAyNDcsIDI0MSwgMjM4LCA5NCwgMSwgMjExLCAyNDcsIDIzNCwgMjUwLCAKKyAgICA5NCwgMSwgMjExLCAyNDcsIDIzMywgOTQsIDk0LCAxLCAyMTEsIDI0NywgNDAsIDIzMSwgNjUsIDk0LCAxLCAyMTEsIDI0NywgCisgICAgMjIzLCA2NywgOTQsIDEsIDIxMSwgMjQ3LCAyMTcsIDM4LCA5NCwgMSwgMjU0LCAxMzksIDk2LCA1MCwgOTQsIDEsIDIyMCwgCisgICAgMjEsIDIsIDIyMCwgMjEsIDI0NywgMTIwLCA5NCwgMSwgMjIwLCAyMSwgMiwgMjE5LCAxNTksIDI0NywgMTIwLCA5NCwgMSwgCisgICAgMjIwLCAyMSwgMiwgMjQ4LCAyMDgsIDIyLCAyMjAsIDIxLCAyNDcsIDEyMCwgOTQsIDEsIDIyMCwgMjEsIDIsIDI0OCwgMjA4LCAKKyAgICAyMiwgMjE5LCAxNTksIDI0NywgMTIwLCA5NCwgMSwgMTEyLCAyLCAyMjUsIDIzOSwgOTQsIDEsIDExMiwgMiwgMjI0LCA3NiwgCisgICAgOTQsIDEsIDExMiwgMiwgMjMxLCAxNzEsIDk0LCAxLCAyNTIsIDI5LCAyLCAyNDgsIDIwNywgOTQsIDEsIDI0MiwgMjAyLCAyLCAKKyAgICAyNDgsIDIwNywgOTQsIDEsIDI0OCwgMTkwLCAyLCAyNDgsIDIwNywgOTQsIDEsIDI0MSwgMjM5LCAyLCAyMzEsIDE3MSwgOTQsIAorICAgIDEsIDIxNCwgNCwgMiwgMjQ4LCAyMDcsIDk0LCAxLCAyMTAsIDk4LCAyLCAyNDgsIDIwNywgOTQsIDEsIDIxNiwgMjMxLCAyLCAKKyAgICAyNDgsIDIwNywgOTQsIDEsIDIxMCwgMjM0LCAyLCAyNDgsIDIwNywgOTQsIDEsIDQwLCAyMzQsIDI1MSwgMiwgMjQ4LCAyMDcsIAorICAgIDk0LCAxLCAyMzQsIDI1MSwgMiwgMjQ4LCAyMDcsIDk0LCAxLCAyMzMsIDk1LCAyLCAyNDgsIDIwNywgOTQsIDEsIDIzMSwgCisgICAgNjYsIDIsIDI0OCwgMjA3LCA5NCwgMSwgMjI3LCAxOTUsIDIsIDI0OCwgMjA3LCA5NCwgMSwgMjIxLCAyNTAsIDIsIDI0OCwgCisgICAgMjA3LCA5NCwgMSwgNDAsIDIyNSwgMjIyLCAyLCAyNDgsIDIwNywgOTQsIDEsIDIyNSwgMjIyLCAyLCAyNDgsIDIwNywgOTQsIAorICAgIDEsIDIxNSwgMTgwLCAyLCAyNDgsIDIwNywgOTQsIDEsIDIyNCwgNDAsIDIsIDI0OCwgMjA3LCA5NCwgMSwgMjIzLCA2OCwgMiwgCisgICAgMjQ4LCAyMDcsIDk0LCAxLCAyMjAsIDIxLCAyLCAyNDgsIDIwNywgOTQsIDEsIDIxNywgMzksIDIsIDI0OCwgMjA3LCA5NCwgCisgICAgMSwgMjE0LCA0LCAyLCAyNDEsIDYxLCA5NCwgMSwgMjUyLCAyOSwgMiwgMjIzLCAxNjksIDk0LCAxLCAyMzQsIDI1MSwgMiwgCisgICAgMjIzLCAxNjksIDk0LCAxLCAyMjUsIDIyMiwgMiwgMjIzLCAxNjksIDk0LCAyNywgMTEyLCAyMzMsIDk0LCAxMCwgMSwgMTEyLCAKKyAgICAyMTIsIDQ3LCA1MywgMTcsIDEwLCAxLCAxMTIsIDIxMiwgNDcsIDQwLCAxNywgMTAsIDEsIDI1MiwgNjUsIDUzLCAxNywgMTAsIAorICAgIDEsIDI1MiwgNjUsIDQwLCAxNywgMTAsIDEsIDI1MiwgNjUsIDY1LCAxNywgMTAsIDEsIDI1MiwgNjUsIDE0NywgMTcsIDEwLCAKKyAgICAxLCAyMjUsIDIwNiwgNTMsIDE3LCAxMCwgMSwgMjI1LCAyMDYsIDQwLCAxNywgMTAsIDEsIDIyNSwgMjA2LCA2NSwgMTcsIAorICAgIDEwLCAxLCAyMjUsIDIwNiwgMTQ3LCAxNywgMTAsIDEsIDI1MiwgNTMsIDUzLCAxNywgMTAsIDEsIDI1MiwgNTMsIDQwLCAxNywgCisgICAgMTAsIDEsIDI1MiwgNTMsIDY1LCAxNywgMTAsIDEsIDI1MiwgNTMsIDE0NywgMTcsIDEwLCAxLCAyMTUsIDE0NywgNTMsIDE3LCAKKyAgICAxMCwgMSwgMjE1LCAxNDcsIDQwLCAxNywgMTAsIDEsIDIxNSwgMTQ3LCA2NSwgMTcsIDEwLCAxLCAyMTUsIDE0NywgMTQ3LCAKKyAgICAxNywgMTAsIDEsIDIxNywgNiwgNTMsIDE3LCAxMCwgMSwgMjE3LCA2LCA0MCwgMTcsIDEwLCAxLCAyMTcsIDYsIDY1LCAxNywgCisgICAgMTAsIDEsIDIxNywgNiwgMTQ3LCAxNywgMTAsIDEsIDIxNSwgMTQ5LCA1MywgMTcsIDEwLCAxLCAyMTUsIDE0OSwgNDAsIDE3LCAKKyAgICAxMCwgMSwgMjE1LCAxNDksIDY1LCAxNywgMTAsIDEsIDIxNSwgMTQ5LCAxNDcsIDE3LCAxMCwgMSwgMjEzLCAyNDksIDUzLCAKKyAgICAxNywgMTAsIDEsIDIxMywgMjQ5LCA0MCwgMTcsIDEwLCAxLCAyMTMsIDI0OSwgNjUsIDE3LCAxMCwgMSwgMjEzLCAyNDksIAorICAgIDE0NywgMTcsIDEwLCAxLCAyMjUsIDIwNCwgNTMsIDE3LCAxMCwgMSwgMjI1LCAyMDQsIDQwLCAxNywgMTAsIDEsIDIyNSwgCisgICAgMjA0LCA2NSwgMTcsIDEwLCAxLCAyMjUsIDIwNCwgMTQ3LCAxNywgMTAsIDEsIDI0NiwgNDQsIDUzLCAxNywgMTAsIDEsIAorICAgIDI0NiwgNDQsIDQwLCAxNywgMTAsIDEsIDI0NiwgNDQsIDY1LCAxNywgMTAsIDEsIDI0NiwgNDQsIDE0NywgMTcsIDEwLCAxLCAKKyAgICAyMjcsIDE1NCwgNTMsIDE3LCAxMCwgMSwgMjI3LCAxNTQsIDQwLCAxNywgMTAsIDEsIDIyNywgMTU0LCA2NSwgMTcsIDEwLCAKKyAgICAxLCAyMjcsIDE1NCwgMTQ3LCAxNywgMTAsIDEsIDIxNywgMjcsIDUzLCAxNywgMTAsIDEsIDIxNywgMjcsIDQwLCAxNywgMTAsIAorICAgIDEsIDIxNywgMjcsIDY1LCAxNywgMTAsIDEsIDIxNywgMjcsIDE0NywgMTcsIDEwLCAxLCAyMTcsIDI1LCA1MywgMTcsIDEwLCAKKyAgICAxLCAyMTcsIDI1LCA0MCwgMTcsIDEwLCAxLCAyMTcsIDI1LCA2NSwgMTcsIDEwLCAxLCAyMTcsIDI1LCAxNDcsIDE3LCAxMCwgCisgICAgMSwgMjQ4LCAxMzMsIDUzLCAxNywgMTAsIDEsIDI0OCwgMTMzLCA0MCwgMTcsIDEwLCAxLCAyNDgsIDIwMiwgNTMsIDE3LCAKKyAgICAxMCwgMSwgMjQ4LCAyMDIsIDQwLCAxNywgMTAsIDEsIDI0NiwgNzEsIDUzLCAxNywgMTAsIDEsIDI0NiwgNzEsIDQwLCAxNywgCisgICAgMTAsIDEsIDI0OCwgMTMxLCA1MywgMTcsIDEwLCAxLCAyNDgsIDEzMSwgNDAsIDE3LCAxMCwgMSwgMjM1LCAxMjEsIDUzLCAKKyAgICAxNywgMTAsIDEsIDIzNSwgMTIxLCA0MCwgMTcsIDEwLCAxLCAyMjIsIDE3MiwgNTMsIDE3LCAxMCwgMSwgMjIyLCAxNzIsIAorICAgIDQwLCAxNywgMTAsIDEsIDIzNCwgMTc1LCA1MywgMTcsIDEwLCAxLCAyMzQsIDE3NSwgNDAsIDE3LCAxMCwgMSwgMjM0LCAKKyAgICAxNzUsIDY1LCAxNywgMTAsIDEsIDIzNCwgMTc1LCAxNDcsIDE3LCAxMCwgMSwgMjQzLCAxMjMsIDUzLCAxNywgMTAsIDEsIAorICAgIDI0MywgMTIzLCA0MCwgMTcsIDEwLCAxLCAyNDMsIDEyMywgNjUsIDE3LCAxMCwgMSwgMjQzLCAxMjMsIDE0NywgMTcsIDEwLCAKKyAgICAxLCAyNDIsIDEwMiwgNTMsIDE3LCAxMCwgMSwgMjQyLCAxMDIsIDQwLCAxNywgMTAsIDEsIDI0MiwgMTAyLCA2NSwgMTcsIAorICAgIDEwLCAxLCAyNDIsIDEwMiwgMTQ3LCAxNywgMTAsIDEsIDIyOSwgMywgNTMsIDE3LCAxMCwgMSwgMjI5LCAzLCA0MCwgMTcsIAorICAgIDEwLCAxLCAyMjksIDMsIDY1LCAxNywgMTAsIDEsIDIyOSwgMywgMTQ3LCAxNywgMTAsIDEsIDIyOCwgNjMsIDI0MiwgMjE5LCAKKyAgICA1MywgMTcsIDEwLCAxLCAyMjgsIDYzLCAyNDIsIDIxOSwgNDAsIDE3LCAxMCwgMSwgMjIyLCAyMTUsIDUzLCAxNywgMTAsIDEsIAorICAgIDIyMiwgMjE1LCA0MCwgMTcsIDEwLCAxLCAyMjIsIDIxNSwgNjUsIDE3LCAxMCwgMSwgMjIyLCAyMTUsIDE0NywgMTcsIDEwLCAKKyAgICAxLCAyNDEsIDIxOSwgMiwgNzksIDc3LCA1MywgMTcsIDEwLCAxLCAyNDEsIDIxOSwgMiwgNzksIDc3LCA0MCwgMTcsIDEwLCAKKyAgICAxLCAyNDEsIDIxOSwgMjQyLCAxNzIsIDUzLCAxNywgMTAsIDEsIDI0MSwgMjE5LCAyNDIsIDE3MiwgNDAsIDE3LCAxMCwgMSwgCisgICAgMjQxLCAyMTksIDI0MiwgMTcyLCA2NSwgMTcsIDEwLCAxLCAyNDEsIDIxOSwgMjQyLCAxNzIsIDE0NywgMTcsIDEwLCAxLCAKKyAgICAyNDEsIDIxOSwgMjQ3LCAxNDIsIDUzLCAxNywgMTAsIDEsIDI0MSwgMjE5LCAyNDcsIDE0MiwgNDAsIDE3LCAxMCwgMSwgCisgICAgMjQxLCAyMTksIDI0NywgMTQyLCA2NSwgMTcsIDEwLCAxLCAyNDEsIDIxOSwgMjQ3LCAxNDIsIDE0NywgMTcsIDEwLCAxLCAKKyAgICA3OSwgMjUyLCAxMzMsIDUzLCAxNywgMTAsIDEsIDc5LCAyNTIsIDEzMywgNDAsIDE3LCAxMCwgMSwgNzksIDI1MiwgMTMzLCAKKyAgICAyLCAyMDIsIDc3LCA1MywgMTcsIDEwLCAxLCA3OSwgMjUyLCAxMzMsIDIsIDIwMiwgNzcsIDQwLCAxNywgMTAsIDE2LCA1OSwgCisgICAgNDgsIDEwLCAxNiwgNTksIDUxLCAxMCwgMTYsIDExMywgMTcwLCA0OCwgMTAsIDE2LCAxMTMsIDE3MCwgNTEsIDEwLCAxNiwgCisgICAgMTM0LCAxNzAsIDQ4LCAxMCwgMTYsIDEzNCwgMTcwLCA1MSwgMTAsIDE2LCAxMzQsIDE3MCwgMjI1LCA3LCAyNDYsIDEwNCwgCisgICAgNDgsIDEwLCAxNiwgMTM0LCAxNzAsIDIyNSwgNywgMjQ2LCAxMDQsIDUxLCAxMCwgMTYsIDI0NCwgMTEsIDE3MCwgNDgsIDEwLCAKKyAgICAxNiwgMjQ0LCAxMSwgMTcwLCA1MSwgMTAsIDE2LCA1MiwgNjcsIDI1MiwgMTQxLCA1MSwgMTAsIDE2LCAxMTMsIDE3MCwgCisgICAgMjEzLCAxODksIDQ4LCAxMCwgMTYsIDExMywgMTcwLCAyMTMsIDE4OSwgNTEsIDEwLCAxNiwgMjIyLCAyMzMsIDEwLCAxNiwgCisgICAgNCwgMjE3LCA4MSwgNDgsIDEwLCAxNiwgNCwgMjE3LCA4MSwgNTEsIDEwLCAxLCAyMjksIDgwLCA1MywgMTcsIDEwLCAxLCAKKyAgICAyMjksIDgwLCA0MCwgMTcsIDEwLCAxLCAyMjksIDgwLCA2NSwgMTcsIDEwLCAxLCAyMjksIDgwLCAxNDcsIDE3LCAxMCwgMSwgCisgICAgMTA0LCA1MywgMTcsIDEwLCAxLCAxMDQsIDQwLCAxNywgMTAsIDEsIDIyNiwgMjM1LCA1MywgMTcsIDEwLCAxLCAyMjYsIAorICAgIDIzNSwgNDAsIDE3LCAxMCwgMSwgMjEwLCAyMTMsIDUzLCAxNywgMTAsIDEsIDIxMCwgMjEzLCA0MCwgMTcsIDEwLCAxLCAKKyAgICAxMDQsIDIsIDIwMiwgNzcsIDUzLCAxNywgMTAsIDEsIDIxNCwgMCwgNTMsIDE3LCAxMCwgMSwgMjE0LCAwLCA0MCwgMTcsIAorICAgIDEwLCAxLCAyMzQsIDczLCAyMjYsIDIzNSwgNTMsIDE3LCAxMCwgMSwgMjM0LCA3MywgMjI2LCAyMzUsIDQwLCAxNywgMTAsIAorICAgIDEsIDIzNCwgNzMsIDIxMCwgMjEzLCA1MywgMTcsIDEwLCAxLCAyMzQsIDczLCAyMTAsIDIxMywgNDAsIDE3LCAxMCwgMSwgCisgICAgMTYwLCA1MywgMTcsIDEwLCAxLCAxNjAsIDQwLCAxNywgMTAsIDEsIDE2MCwgNjUsIDE3LCAxMCwgMSwgMTYwLCAxNDcsIDE3LCAKKyAgICAxMCwgMSwgMjE0LCAyMDcsIDIzNCwgMTg2LCAyMzQsIDczLCAxMTIsIDIzMSwgMTkzLCA2NSwgMTcsIDEwLCAxLCAyMTQsIAorICAgIDIwNywgMjM0LCAxODYsIDIzNCwgNzMsIDExMiwgMjMxLCAxOTMsIDE0NywgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIAorICAgIDIsIDExMiwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAxMTIsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgCisgICAgMjAyLCA3NywgMiwgMjU0LCAyNDQsIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjU0LCAyNDQsIDQwLCAKKyAgICAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjEyLCAzMSwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAKKyAgICAyLCAyMTIsIDMxLCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDEwNCwgNTMsIDE3LCAxMCwgMjcsIDc5LCAKKyAgICAyLCAyMDIsIDc3LCAyLCAxMDQsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjI2LCAyMzUsIDUzLCAxNywgCisgICAgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjI2LCAyMzUsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgCisgICAgMjEwLCAyMTMsIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjEwLCAyMTMsIDQwLCAxNywgMTAsIDI3LCAKKyAgICA3OSwgMiwgMjAyLCA3NywgMiwgMTYwLCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDE2MCwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAxNjAsIDY1LCAxNywgMTAsIDI3LCAyMTQsIDIwNywgMjM0LCA3MywgNzksIDIsIAorICAgIDIwMiwgNzcsIDIsIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAyMTQsIDIwNywgMjM0LCA3MywgNzksIDIsIDIwMiwgCisgICAgNzcsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMTQsIDIwNywgMjM0LCA3MywgNzksIDIsIDIwMiwgNzcsIAorICAgIDIsIDExMiwgMjMxLCAxOTMsIDY1LCAxNywgMTAsIDEsIDI0NCwgMTY4LCA3OSwgNTMsIDE3LCAxMCwgMSwgMjQ0LCAxNjgsIAorICAgIDc5LCA0MCwgMTcsIDEwLCAxLCAyNDQsIDE2OCwgNzksIDY1LCAxNywgMTAsIDEsIDI0NCwgMTY4LCA3OSwgMTQ3LCAxNywgCisgICAgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDEyMiwgCisgICAgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAKKyAgICAxMTIsIDIzMSwgMTkzLCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgCisgICAgMjUyLCA1NSwgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjUyLCA1NSwgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjUyLCAKKyAgICA1NSwgMiwgMjM0LCAxMzAsIDUzLCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDI1MiwgNTUsIAorICAgIDIsIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIxNywgOCwgCisgICAgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCAxMjIsIDUzLCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDIzNCwgCisgICAgMTMwLCA1MywgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMTEyLCAyMzEsIAorICAgIDE5MywgNTMsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMTYsIDE5MywgMiwgMTUxLCA1MywgCisgICAgMTcsIDEwLCAyNywgMjE2LCAxOTMsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjE2LCAxOTMsIDIsIDExMiwgMjMxLCAxOTMsIAorICAgIDUzLCAxNywgMTAsIDI3LCAyMTYsIDE5MywgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAxNTEsIDIsIDEyMiwgNTMsIDE3LCAxMCwgCisgICAgMjcsIDE1MSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAxMjIsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDEyMiwgMiwgNjYsIAorICAgIDUzLCAxNywgMTAsIDI3LCAyMzQsIDEzMCwgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjM0LCAxMzAsIDIsIDEyMiwgNTMsIAorICAgIDE3LCAxMCwgMjcsIDIzNCwgMTMwLCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCAxNTEsIDUzLCAxNywgCisgICAgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDIzNCwgMTMwLCA1MywgMTcsIAorICAgIDEwLCAyNywgMjIxLCAxNjcsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgCisgICAgMjIyLCAyNywgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjQ4LCAKKyAgICAyMTcsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCAyMzQsIDEzMCwgNTMsIDE3LCAxMCwgMjcsIDI0OCwgCisgICAgMjE3LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIxNywgODEsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDIxNywgODEsIDIsIAorICAgIDY2LCA1MywgMTcsIDEwLCAyNywgMjEwLCAxMTIsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjU0LCAxOTcsIDIsIDE1MSwgCisgICAgNTMsIDE3LCAxMCwgMjcsIDI1NCwgMTk3LCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDI0MiwgMjQ1LCAyLCAxNTEsIDUzLCAKKyAgICAxNywgMTAsIDI3LCAyNDIsIDI0NSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyNDQsIDE0MywgMiwgMTUxLCA1MywgMTcsIAorICAgIDEwLCAyNywgMjQ0LCAxNDMsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDI0NCwgMTQzLCAyLCAyMzQsIDEzMCwgNTMsIDE3LCAKKyAgICAxMCwgMjcsIDI0NCwgMTQzLCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDI0NCwgMTQzLCAyLCAxMTIsIDIzMSwgMTkzLCA1MywgCisgICAgMTcsIDEwLCAyNywgMjQ0LCAxNDMsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjI0LCA4MiwgMiwgMTIyLCA1MywgMTcsIDEwLCAKKyAgICAyNywgMjI0LCA4MiwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMjQsIDgyLCAyLCAxMTIsIDIzMSwgMTkzLCA1MywgMTcsIAorICAgIDEwLCAyNywgMjI0LCA4MiwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMTEyLCA1MywgMTcsIDEwLCAyNywgCisgICAgMjM0LCAyNTEsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAxMjIsIDUzLCAxNywgMTAsIDI3LCAyMzQsIAorICAgIDI1MSwgMiwgMjM0LCAxMzAsIDUzLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMjMzLCAxMDMsIDUzLCAxNywgMTAsIDI3LCAKKyAgICAyMzQsIDI1MSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMTEyLCAyMzEsIDE5MywgNTMsIDE3LCAxMCwgCisgICAgMjcsIDIzNCwgMjUxLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIDUzLCAxNywgMTAsIDI3LCAKKyAgICAyMzMsIDEwMywgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDIzNCwgMTMwLCA1MywgMTcsIDEwLCAyNywgCisgICAgMjMzLCAxMDMsIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIAorICAgIDI3LCAyMzMsIDEwMywgMiwgNzksIDUzLCAxNywgMTAsIDI3LCA2NiwgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgNjYsIDIsIAorICAgIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDY2LCAyLCAyMzQsIDEzMCwgNTMsIDE3LCAxMCwgMjcsIDY2LCAyLCA2NiwgNTMsIDE3LCAKKyAgICAxMCwgMjcsIDY2LCAyLCAxMTIsIDIzMSwgMTkzLCA1MywgMTcsIDEwLCAyNywgNjYsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgCisgICAgMjI4LCA2MywgMiwgMTUxLCA1MywgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgMjI4LCAKKyAgICA2MywgMiwgMjM0LCAxMzAsIDUzLCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCA2NiwgNTMsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIAorICAgIDIsIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDI0MSwgCisgICAgMjE5LCAyLCAxNTEsIDUzLCAxNywgMTAsIDI3LCAyNDEsIDIxOSwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyNDEsIDIxOSwgCisgICAgMiwgMTEyLCAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMjcsIDI0MSwgMjE5LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAKKyAgICAxNTEsIDUzLCAxNywgMTAsIDI3LCA3OSwgMiwgMTIyLCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDIzNCwgMTMwLCA1MywgMTcsIAorICAgIDEwLCAyNywgNzksIDIsIDY2LCA1MywgMTcsIDEwLCAyNywgNzksIDIsIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAKKyAgICA3OSwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMTYsIDIwMywgMiwgMjE4LCAyMywgMTEyLCA1MywgMTcsIDEwLCAyNywgCisgICAgMjIzLCA5NiwgMiwgMjE4LCAyMywgMTEyLCA1MywgMTcsIDEwLCAyNywgMTEyLCAyMzEsIDE5MywgMiwgMjE4LCAyMywgMTEyLCAKKyAgICA1MywgMTcsIDEwLCAyNywgMjIwLCA5NCwgMiwgMjQ4LCAxODMsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDk0LCAyLCAyMzQsIAorICAgIDIwNCwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgOTQsIDIsIDI0NCwgMTY2LCA1MywgMTcsIDEwLCAyNywgMjIwLCA5NCwgMiwgCisgICAgMjQ4LCAxODUsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDk0LCAyLCAyMzQsIDIwNiwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgOTQsIAorICAgIDIsIDIxOCwgMjMsIDExMiwgNTMsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCAyMjMsIDk2LCA0MCwgMTcsIDEwLCAKKyAgICAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDIxMCwgMTA5LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDY2LCAKKyAgICA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDIyOCwgNjMsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCAKKyAgICA3NywgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCA3OSwgNDAsIDE3LCAxMCwgCisgICAgMjcsIDI1MiwgNTUsIDIsIDIyMywgOTYsIDQwLCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCAyMTAsIDEwOSwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDI1MiwgNTUsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjUyLCA1NSwgMiwgMjI4LCA2MywgNDAsIDE3LCAxMCwgCisgICAgMjcsIDI1MiwgNTUsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCA3OSwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDIxNywgOCwgMiwgMjIzLCA5NiwgNDAsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMjEwLCAxMDksIDQwLCAxNywgCisgICAgMTAsIDI3LCAyMTcsIDgsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCAyMjgsIDYzLCA0MCwgMTcsIDEwLCAKKyAgICAyNywgMjE3LCA4LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCA3OSwgNDAsIDE3LCAxMCwgCisgICAgMjcsIDIxNiwgMTkzLCAyLCAyMjMsIDk2LCA0MCwgMTcsIDEwLCAyNywgMjE2LCAxOTMsIDIsIDIxMCwgMTA5LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjE2LCAxOTMsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjE2LCAxOTMsIDIsIDIyOCwgNjMsIDQwLCAxNywgCisgICAgMTAsIDI3LCAyMTYsIDE5MywgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIxNiwgMTkzLCAyLCA3OSwgNDAsIAorICAgIDE3LCAxMCwgMjcsIDI0NCwgMTQzLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjQ0LCAxNDMsIDIsIDc5LCAKKyAgICA0MCwgMTcsIDEwLCAyNywgMjI0LCA4MiwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIyNCwgODIsIDIsIAorICAgIDc5LCA0MCwgMTcsIDEwLCAyNywgMjM0LCAyNTEsIDIsIDExMiwgNDAsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAyMzMsIAorICAgIDEwMywgNDAsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAxMTIsIAorICAgIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjM0LCAyNTEsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIAorICAgIDY2LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgCisgICAgMiwgNzksIDQwLCAxNywgMTAsIDI3LCA2NiwgMiwgMTEyLCA0MCwgMTcsIDEwLCAyNywgNjYsIDIsIDY2LCA0MCwgMTcsIDEwLCAKKyAgICAyNywgMjI4LCA2MywgMiwgMjIzLCA5NiwgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDIxMCwgMTA5LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjI4LCA2MywgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCAyMjgsIDYzLCA0MCwgMTcsIDEwLCAKKyAgICAyNywgMjI4LCA2MywgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDc5LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMTEyLCAyMzEsIDE5MywgMiwgMjE4LCAyMywgMTEyLCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIyMywgOTYsIAorICAgIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMjEwLCAxMDksIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgNjYsIDQwLCAxNywgMTAsIAorICAgIDI3LCA3OSwgMiwgMjI4LCA2MywgNDAsIDE3LCAxMCwgMjcsIDc5LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgCisgICAgNzksIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDIwMiwgNzcsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDc5LCAyLCAKKyAgICAyMDIsIDc3LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjM0LCAxMzAsIDY1LCAxNywgMTAsIAorICAgIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCA3OSwgMiwgMjAyLCA3NywgMiwgMjQxLCAyMTksIAorICAgIDY1LCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyNTIsIDU1LCAyLCAxMjIsIDY1LCAxNywgCisgICAgMTAsIDI3LCAyNTIsIDU1LCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDI1MiwgNTUsIDIsIDY2LCA2NSwgMTcsIDEwLCAKKyAgICAyNywgMjUyLCA1NSwgMiwgMjQxLCAyMTksIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIAorICAgIDIxNywgOCwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDIxNywgCisgICAgOCwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDI0MSwgMjE5LCA2NSwgMTcsIDEwLCAyNywgMjE2LCAxOTMsIAorICAgIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMTUxLCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAxNTEsIDIsIDY2LCA2NSwgMTcsIAorICAgIDEwLCAyNywgMTIyLCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAxMjIsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjM0LCAKKyAgICAxMzAsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDIzNCwgMTMwLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAKKyAgICAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIAorICAgIDIzNCwgMTMwLCA2NSwgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgCisgICAgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgMjM0LCAxMzAsIDY1LCAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCAKKyAgICA2NiwgNjUsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgMTIyLCAKKyAgICA2NSwgMTcsIDEwLCAyNywgMjQ4LCAyMTcsIDIsIDIzNCwgMTMwLCA2NSwgMTcsIDEwLCAyNywgMjQ4LCAyMTcsIDIsIDY2LCAKKyAgICA2NSwgMTcsIDEwLCAyNywgMjE3LCA4MSwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjEwLCAxMTIsIDIsIDY2LCA2NSwgMTcsIAorICAgIDEwLCAyNywgMjU0LCAxOTcsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDI1NCwgMTk3LCAyLCA2NiwgNjUsIDE3LCAxMCwgCisgICAgMjcsIDI0MiwgMjQ1LCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyNDIsIDI0NSwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAKKyAgICAyNDQsIDE0MywgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjQ0LCAxNDMsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDI0NCwgCisgICAgMTQzLCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDI0NCwgMTQzLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyNCwgCisgICAgODIsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDIyNCwgODIsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjM0LCAyNTEsIDIsIAorICAgIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDIzNCwgMjUxLCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMjM0LCAKKyAgICAxMzAsIDY1LCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMjMzLCAxMDMsIDY1LCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgCisgICAgNjYsIDY1LCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDEyMiwgCisgICAgNjUsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCA2NiwgCisgICAgNjUsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAyNDEsIDIxOSwgNjUsIDE3LCAxMCwgMjcsIDY2LCAyLCAxNTEsIDY1LCAKKyAgICAxNywgMTAsIDI3LCA2NiwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgNjYsIDIsIDIzNCwgMTMwLCA2NSwgMTcsIDEwLCAyNywgCisgICAgNjYsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgCisgICAgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMjM0LCAxMzAsIDY1LCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCAKKyAgICA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDI0MSwgMjE5LCA2NSwgMTcsIDEwLCAyNywgMjQxLCAyMTksIDIsIAorICAgIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDI0MSwgMjE5LCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDI0MSwgMjE5LCAyLCAyMTgsIAorICAgIDIzLCAxMTIsIDY1LCAxNywgMTAsIDI3LCA3OSwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgNzksIDIsIDEyMiwgNjUsIDE3LCAKKyAgICAxMCwgMjcsIDc5LCAyLCAyMzQsIDEzMCwgNjUsIDE3LCAxMCwgMjcsIDc5LCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDc5LCAKKyAgICAyLCAyNDEsIDIxOSwgNjUsIDE3LCAxMCwgMjcsIDc5LCAyLCAyMDIsIDc3LCAyLCA2NiwgMTQ3LCAxNywgMTAsIDI3LCA3OSwgCisgICAgMiwgMjAyLCA3NywgMiwgMjQxLCAyMTksIDE0NywgMTcsIDEwLCAyNywgMjUyLCA1NSwgMiwgNjYsIDE0NywgMTcsIDEwLCAKKyAgICAyNywgMjUyLCA1NSwgMiwgMjQxLCAyMTksIDE0NywgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCA2NiwgMTQ3LCAxNywgMTAsIAorICAgIDI3LCAyMTcsIDgsIDIsIDI0MSwgMjE5LCAxNDcsIDE3LCAxMCwgMjcsIDIxNiwgMTkzLCAyLCA2NiwgMTQ3LCAxNywgMTAsIAorICAgIDI3LCAyMTYsIDE5MywgMiwgMjQxLCAyMTksIDE0NywgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDY2LCAxNDcsIDE3LCAxMCwgCisgICAgMjcsIDIyMSwgMTY3LCAyLCAyNDEsIDIxOSwgMTQ3LCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCA2NiwgMTQ3LCAxNywgMTAsIAorICAgIDI3LCAyMjAsIDYwLCAyLCAyNDEsIDIxOSwgMTQ3LCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgMjMzLCAxMDMsIDE0NywgCisgICAgMTcsIDEwLCAyNywgMjM0LCAyNTEsIDIsIDY2LCAxNDcsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCA2NiwgMTQ3LCAxNywgCisgICAgMTAsIDI3LCAyMjgsIDYzLCAyLCA2NiwgMTQ3LCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCAyNDEsIDIxOSwgMTQ3LCAxNywgCisgICAgMTAsIDI3LCA3OSwgMiwgNjYsIDE0NywgMTcsIDEwLCAyNywgNzksIDIsIDI0MSwgMjE5LCAxNDcsIDE3LCAxMCwgMjcsIAorICAgIDIyMCwgOTQsIDIsIDI0NCwgMTY2LCAxNDcsIDE3LCAxMCwgMjcsIDIyMCwgOTQsIDIsIDI0OCwgMTg1LCAxNDcsIDE3LCAxMCwgCisgICAgMjcsIDIyMCwgOTQsIDIsIDIzNCwgMjA2LCAxNDcsIDE3LCAxMCwgMjcsIDIxNywgODEsIDIsIDExMiwgMjMxLCAxOTMsIDUzLCAKKyAgICAxNywgMTAsIDI3LCAyMTcsIDgxLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDI1NCwgMTk3LCAyLCAxMTIsIDIzMSwgMTkzLCAKKyAgICA1MywgMTcsIDEwLCAyNywgMjU0LCAxOTcsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjQyLCAyNDUsIDIsIDExMiwgMjMxLCAKKyAgICAxOTMsIDUzLCAxNywgMTAsIDI3LCAyNDIsIDI0NSwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTEyLCAKKyAgICAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIAorICAgIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDEyMiwgMiwgCisgICAgMTEyLCAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMjcsIDEyMiwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAxNTEsIDIsIDExMiwgCisgICAgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAxNTEsIDIsIDc5LCA1MywgMTcsIDEwLCAyNywgMjM0LCAxMzAsIDIsIDExMiwgCisgICAgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDI3LCAyMzQsIDEzMCwgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCAKKyAgICAxMTIsIDIzMSwgMTkzLCA1MywgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgNzksIDUzLCAxNywgMTAsIDI3LCAyNDgsIDIxNywgCisgICAgMiwgMTEyLCAyMzEsIDE5MywgNTMsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCA3OSwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgCisgICAgNjAsIDIsIDE1MSwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDEyMiwgNTMsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIAorICAgIDIzNCwgMTMwLCA1MywgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgNjYsIDUzLCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAKKyAgICAyMjMsIDk2LCA1MywgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDIyMywgOTYsIDUzLCAxNywgMTAsIDI3LCAyMjIsIDI3LCAKKyAgICAyLCAyMjMsIDk2LCA1MywgMTcsIDEwLCAyNywgMjQ4LCAyMTcsIDIsIDIyMywgOTYsIDUzLCAxNywgMTAsIDI3LCAyMTcsIAorICAgIDgxLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjE3LCA4MSwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAKKyAgICAyNTQsIDE5NywgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDI1NCwgMTk3LCAyLCA3OSwgNDAsIDE3LCAxMCwgCisgICAgMjcsIDI0MiwgMjQ1LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjQyLCAyNDUsIDIsIDc5LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjIxLCAxNjcsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgNzksIDQwLCAKKyAgICAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgNzksIAorICAgIDQwLCAxNywgMTAsIDI3LCAxMjIsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAxMjIsIDIsIDc5LCA0MCwgCisgICAgMTcsIDEwLCAyNywgMTUxLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMTUxLCAyLCA3OSwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDIzNCwgMTMwLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjM0LCAxMzAsIDIsIDc5LCA0MCwgCisgICAgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIyMiwgMjcsIDIsIDc5LCAKKyAgICA0MCwgMTcsIDEwLCAyNywgMjQ4LCAyMTcsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgCisgICAgNzksIDQwLCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAxNTEsIDQwLCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAxMjIsIDQwLCAKKyAgICAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAyMzQsIDEzMCwgNDAsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDY2LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjIwLCA2MCwgMiwgMjIzLCA5NiwgNDAsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCAyMjMsIDk2LCA0MCwgCisgICAgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgMjIzLCA5NiwgNDAsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCAyMjMsIDk2LCAKKyAgICA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgMTIyLCA2NSwgMTcsIAorICAgIDEwLCAyNywgMjIwLCA2MCwgMiwgMjM0LCAxMzAsIDY1LCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCA2NiwgNjUsIDE3LCAxMCwgCisgICAgMjcsIDIyMSwgMTY3LCAyLCAyNDEsIDIxOSwgNjUsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDI0MSwgMjE5LCA2NSwgMTcsIAorICAgIDEwLCAyNywgMjE3LCA4MSwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTUxLCAxNDcsIDE3LCAxMCwgCisgICAgMjcsIDIyMSwgMTY3LCAyLCAxMjIsIDE0NywgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDIzNCwgMTMwLCAxNDcsIDE3LCAKKyAgICAxMCwgMjcsIDIyMCwgNjAsIDIsIDE1MSwgMTQ3LCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAxMjIsIDE0NywgMTcsIDEwLCAKKyAgICAyNywgMjIwLCA2MCwgMiwgMjM0LCAxMzAsIDE0NywgMTcsIDEwLCAyNywgMjE3LCA4MSwgMiwgNjYsIDE0NywgMTcsIDEwLCAKKyAgICAyNywgMjEwLCAxMTIsIDIsIDY2LCAxNDcsIDE3LCAxMCwgMjcsIDExMiwgMiwgMjQ0LCAxNjQsIDQwLCAxNywgMTAsIDI3LCAKKyAgICAxMTIsIDIsIDI0NCwgMTY0LCA1MywgMTcsIDIyNiwgMTQ2LCA0MywgMjI2LCAzLCAyMjYsIDE0NiwgNDQsIDIyNiwgMywgMTAsIAorICAgIDI3LCAyMTcsIDgsIDIsIDE1MSwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDEyMiwgMiwgMTUxLCA0MCwgCisgICAgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCAxMjIsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMTIyLCAyLCAKKyAgICA2NiwgNjUsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMjM0LCAxMzAsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjE3LCA4LCAKKyAgICAyLCA2NiwgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCA2NiwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgCisgICAgMjE3LCA4LCAyLCA2NiwgMiwgMjM0LCAxMzAsIDY1LCAxNywgMTAsIDI3LCAxNTEsIDIsIDY2LCAyLCAxMjIsIDQwLCAxNywgCisgICAgMTAsIDI3LCAxNTEsIDIsIDY2LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAxMjIsIDIsIDY2LCAyLCA3OSwgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDEyMiwgMiwgNjYsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTIyLCAKKyAgICAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMTUxLCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMjEsIAorICAgIDE2NywgMiwgMTUxLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDY2LCAyLCAxMjIsIAorICAgIDQwLCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgNjYsIDIsIDEyMiwgNjUsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAyLCA2NiwgCisgICAgMiwgMTUxLCA2NSwgMTcsIDEwLCAyNywgMjIxLCAxNjcsIDIsIDY2LCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIyMSwgMTY3LCAKKyAgICAyLCA2NiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCAxMjIsIDIsIDEyMiwgNDAsIDE3LCAxMCwgMjcsIAorICAgIDIyMiwgMjcsIDIsIDEyMiwgMiwgMTIyLCA2NSwgMTcsIDEwLCAyNywgMjIyLCAyNywgMiwgNjYsIDIsIDY2LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjIwLCA2MCwgMiwgMTIyLCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDIyMCwgNjAsIDIsIDEyMiwgMiwgNjYsIAorICAgIDY1LCAxNywgMTAsIDI3LCAyMjAsIDYwLCAyLCAxNTEsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgNjYsIAorICAgIDIsIDIzNCwgMTMwLCA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgNjYsIDIsIDIzNCwgMTMwLCA2NSwgMTcsIDEwLCAyNywgCisgICAgMjIwLCA2MCwgMiwgNjYsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjIwLCA2MCwgMiwgNjYsIDIsIDY2LCA2NSwgMTcsIDEwLCAKKyAgICAyNywgMjQ4LCAyMTcsIDIsIDEyMiwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCAyMzQsIAorICAgIDEzMCwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyNDgsIDIxNywgMiwgMjM0LCAxMzAsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgCisgICAgMjE3LCA4MSwgMiwgNjYsIDIsIDEyMiwgNDAsIDE3LCAxMCwgMjcsIDIxNywgODEsIDIsIDY2LCAyLCAxMjIsIDY1LCAxNywgCisgICAgMTAsIDI3LCAyMTcsIDgxLCAyLCA2NiwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMTcsIDgxLCAyLCA2NiwgMiwgNzksIDQwLCAKKyAgICAxNywgMTAsIDI3LCAyNTQsIDE5NywgMiwgMTUxLCAyLCA2NiwgNDAsIDE3LCAxMCwgMjcsIDI1NCwgMTk3LCAyLCA2NiwgMiwgCisgICAgNjYsIDQwLCAxNywgMTAsIDI3LCAyNTQsIDE5NywgMiwgNjYsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjU0LCAxOTcsIDIsIAorICAgIDY2LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjQyLCAyNDUsIDIsIDY2LCAyLCA2NiwgNDAsIDE3LCAxMCwgCisgICAgMjcsIDI0MiwgMjQ1LCAyLCA2NiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyNDIsIDI0NSwgMiwgNjYsIDIsIDExMiwgMjMxLCAKKyAgICAxOTMsIDQwLCAxNywgMTAsIDI3LCAyNDQsIDE0MywgMiwgMjM0LCAxMzAsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjQ0LCAKKyAgICAxNDMsIDIsIDIzNCwgMTMwLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyNCwgODIsIDIsIDY2LCAyLCAxMjIsIDQwLCAxNywgCisgICAgMTAsIDI3LCAyMjQsIDgyLCAyLCA2NiwgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgMTIyLCAyLCA2NiwgCisgICAgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxMjIsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIAorICAgIDEyMiwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIDIsIDE1MSwgNjUsIDE3LCAKKyAgICAxMCwgMjcsIDIzMywgMTAzLCAyLCAxNTEsIDIsIDE1MSwgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAyMzQsIDEzMCwgCisgICAgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgMjM0LCAxMzAsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjMzLCAKKyAgICAxMDMsIDIsIDY2LCAyLCAxMjIsIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgNjYsIDIsIDEyMiwgNjUsIDE3LCAxMCwgCisgICAgMjcsIDY2LCAyLCAxMjIsIDIsIDE1MSwgNjUsIDE3LCAxMCwgMjcsIDY2LCAyLCAxMjIsIDIsIDY2LCA2NSwgMTcsIDEwLCAKKyAgICAyNywgNjYsIDIsIDEyMiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCA2NiwgMiwgMTUxLCAyLCAxMjIsIDY1LCAxNywgMTAsIAorICAgIDI3LCA2NiwgMiwgMTUxLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDY2LCAyLCAyMzQsIDEzMCwgMiwgMTUxLCA2NSwgMTcsIAorICAgIDEwLCAyNywgNjYsIDIsIDIzNCwgMTMwLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDY2LCAyLCAxNTEsIDIsIDIzNCwgMTMwLCAKKyAgICA2NSwgMTcsIDEwLCAyNywgMjQxLCAyMTksIDIsIDY2LCAyLCAxNTEsIDY1LCAxNywgMTAsIDI3LCAyNDEsIDIxOSwgMiwgNjYsIAorICAgIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMTIyLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIAorICAgIDIsIDEyMiwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAxMCwgMjcsIDIyOCwgNjMsIDIsIDE1MSwgMiwgNjYsIDQwLCAxNywgCisgICAgMTAsIDI3LCAyMjgsIDYzLCAyLCAxNTEsIDIsIDY2LCA2NSwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMTUxLCAyLCAxMTIsIAorICAgIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjI4LCA2MywgCisgICAgMiwgNjYsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgNjYsIDIsIDY2LCA0MCwgMTcsIDEwLCAKKyAgICAyNywgNzksIDIsIDY2LCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDI1MiwgNTUsIDIsIDIzNCwgMTMwLCAyLCA3OSwgNDAsIAorICAgIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMTUxLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIxNywgOCwgMiwgMTUxLCAyLCAKKyAgICAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCAyMzQsIDEzMCwgMiwgNzksIDQwLCAxNywgMTAsIAorICAgIDI3LCAyMTcsIDgsIDIsIDIzNCwgMTMwLCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgMjE3LCA4LCAyLCA2NiwgCisgICAgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMTcsIDgsIDIsIDY2LCAyLCAxMTIsIDIzMSwgMTkzLCA0MCwgMTcsIDEwLCAyNywgCisgICAgMTUxLCAyLCA2NiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAxNTEsIDIsIDEyMiwgMiwgMTEyLCAyMzEsIDE5MywgNDAsIDE3LCAKKyAgICAxMCwgMjcsIDE1MSwgMiwgNjYsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMjM0LCAKKyAgICAxMzAsIDIsIDExMiwgMjMxLCAxOTMsIDQwLCAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCAxMjIsIDIsIDc5LCA0MCwgMTcsIAorICAgIDEwLCAyNywgMjIwLCA2MCwgMiwgMTIyLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDI0OCwgMjE3LCAyLCAxMjIsIDIsIDc5LCAKKyAgICA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDE1MSwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgNjYsIAorICAgIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgNzksIDIsIDEyMiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCA3OSwgMiwgMTUxLCAyLCAKKyAgICA3OSwgNDAsIDE3LCAxMCwgMjcsIDc5LCAyLCA2NiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCA2NiwgMiwgNjYsIDIsIDc5LCAKKyAgICA0MCwgMTcsIDEwLCAyNywgMjI0LCA4MiwgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMTIyLCAKKyAgICAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIyNCwgODIsIDIsIDY2LCAyLCAxMjIsIDY1LCAxNywgMTAsIDI3LCAyMzMsIDEwMywgCisgICAgMiwgMTIyLCAyLCA2NiwgNjUsIDE3LCAxMCwgMjcsIDI1NCwgMTk3LCAyLCA2NiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAKKyAgICAyMzQsIDI1MSwgMiwgNjYsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgMTUxLCAyLCAxMjIsIDY1LCAxNywgCisgICAgMTAsIDI3LCA2NiwgMiwgMjM0LCAxMzAsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDE1MSwgMiwgNjYsIAorICAgIDY1LCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgNjYsIDIsIDY2LCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDE1MSwgCisgICAgMiwgNjYsIDQwLCAxNywgMTAsIDI3LCAyMjgsIDYzLCAyLCAxNTEsIDIsIDEyMiwgNDAsIDE3LCAxMCwgMjcsIDE1MSwgMiwgCisgICAgMTIyLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDEyMiwgMiwgMTUxLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDY2LCAyLCAKKyAgICAxNTEsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjQ0LCAxNDMsIDIsIDY2LCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDI1MiwgCisgICAgNTUsIDIsIDEyMiwgMiwgNzksIDQwLCAxNywgMTAsIDI3LCAyMzQsIDI1MSwgMiwgNjYsIDIsIDY2LCA2NSwgMTcsIDEwLCAKKyAgICAyNywgMjU0LCAxOTcsIDIsIDE1MSwgMiwgNjYsIDY1LCAxNywgMTAsIDI3LCAyMjIsIDI3LCAyLCA2NiwgMiwgNjYsIDY1LCAKKyAgICAxNywgMTAsIDI3LCAyMjEsIDE2NywgMiwgMjM0LCAxMzAsIDIsIDc5LCA0MCwgMTcsIDEwLCAyNywgMjI4LCA2MywgMiwgCisgICAgMTUxLCAyLCA3OSwgNDAsIDE3LCAxMCwgMjcsIDIyMiwgNCwgMjE0LCAxMjgsIDI1MywgMjM4LCAyMzQsIDQsIDIxOCwgMTMwLCAKKyAgICA1LCA1MywgMTcsIDEwLCAyNywgMjI0LCA3OCwgMjE0LCAxMjgsIDI1MywgMjM4LCAyMzQsIDQsIDIxOCwgMTMwLCA1LCA1MywgCisgICAgMTcsIDEwLCAyNywgMjU0LCAxNTMsIDUzLCAxNywgMTAsIDI3LCAyNTQsIDE4MywgNTMsIDE3LCAxMCwgMjcsIDIzMCwgMTUzLCAKKyAgICA1MywgMTcsIDEwLCAyNywgMjIyLCA1LCA1MywgMTcsIDEwLCAyNywgMjIzLCAxNDMsIDUzLCAxNywgMTAsIDI3LCAyNTQsIAorICAgIDE3MiwgNTMsIDE3LCAxMCwgMjcsIDIxMiwgNDksIDUzLCAxNywgMTAsIDI3LCAyMjIsIDQsIDUzLCAxNywgMTAsIDI3LCAKKyAgICAyMjIsIDMsIDI1NCwgMTcyLCAyMTIsIDQ4LCAxMCwgMjcsIDIzNSwgMTM0LCAyMjMsIDM0LCA1MCwgMTAsIDI3LCAyNTEsIAorICAgIDIzMCwgMjU0LCAzOSwgMjU0LCA0MCwgNDUsIDIyMSwgMTU2LCA0NSwgMjIxLCA0NSwgNDUsIDIyMCwgMjMzLCA0NSwgMjIwLCAKKyAgICAyMjIsIDQ1LCAyMjAsIDIxMSwgNDUsIDIyMCwgMjAwLCA0NSwgMjIwLCAxODksIDQ1LCAyMjAsIDE3OCwgNDUsIDIyMCwgCisgICAgMTY3LCA0NSwgMjIxLCAxNTUsIDQ1LCAyMjEsIDE0NCwgNDUsIDIyMSwgMTMzLCA0NSwgMjIxLCAxMjIsIDQ1LCAyMjEsIAorICAgIDExMSwgNDUsIDIyMSwgMTAwLCA0NSwgMjIxLCA4OSwgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgMjQ5LCAyMTksIDIyNCwgCisgICAgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDEwOSwgMjQ5LCAyMTksIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDEwOSwgMjQzLCAKKyAgICAyMjksIDIxOCwgMTI5LCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCAyNDksIDIyNiwgMjI0LCAxOTQsIDI0NCwgMjAsIAorICAgIDMxLCA2NywgMjIwLCAxNTAsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDI0NSwgMzEsIDc4LCAyMjQsIDE5NCwgMjQ0LCAKKyAgICAyMCwgMzEsIDY3LCAyMjQsIDEzLCA3OCwgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDMsIDcxLCAyMzMsIDIwLCAxMjcsIAorICAgIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQ0LCA3MSwgMjMzLCAyMCwgMjUxLCAxNTYsIDIyNCwgMTk0LCAyNDQsIDIwLCAKKyAgICAzMSwgNjcsIDIwMywgMjQ1LCAxNjMsIDM4LCAyNywgNDMsIDI0MiwgMjcsIDM4LCAyNywgNDQsIDI0MiwgMjcsIDM4LCA1MiwgCisgICAgMjE2LCA4OSwgNDMsIDI0MiwgMjcsIDM4LCA1MiwgMjE2LCA4OSwgNDQsIDI0MiwgMjcsIDM4LCAyMzEsIDIzMywgNDMsIAorICAgIDI0MiwgMjcsIDM4LCAyMzEsIDIzMywgNDQsIDI0MiwgMjcsIDM4LCAyNDksIDE5NywgMjMxLCAyMzIsIDIyNCwgMTk0LCAKKyAgICAyNDQsIDIwLCAzMSwgNjcsIDExMywgNTksIDIzMywgNTYsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDI0NSwgMTYwLCAKKyAgICAyNDgsIDE1NiwgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgMjQ1LCAxNTEsIDI0OCwgMTU2LCAyMjQsIDE5NCwgMjQ0LCAKKyAgICAyMCwgMzEsIDY3LCAxMjEsIDIzMiwgMjEzLCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCAyMTIsIDMyLCAxMjEsIDIzMiwgCisgICAgMjEzLCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCA0MywgMjI2LCAzLCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCAKKyAgICA0NCwgMjI2LCAzLCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCA0MywgMjQ5LCA5OSwgMTI3LCAyMjQsIDE5NCwgMjQ0LCAKKyAgICAyMCwgMzEsIDY3LCA0NCwgMjQ5LCA5OSwgMTI3LCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCA0MywgMjE2LCA2LCAyMjAsIAorICAgIDUzLCAxMjcsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQ0LCAyMTYsIDYsIDIyMCwgNTMsIDEyNywgMjI0LCAxOTQsIAorICAgIDI0NCwgMjAsIDMxLCA2NywgNDMsIDg1LCAyMzMsIDIwLCAxMjcsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQ0LCA4NSwgCisgICAgMjMzLCAyMCwgMTI3LCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIDY3LCA0MywgNTIsIDI1NCwgMTEwLCAxMjcsIDIyNCwgMTk0LCAKKyAgICAyNDQsIDIwLCAzMSwgNjcsIDQ0LCA1MiwgMjU0LCAxMTAsIDEyNywgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDMsIAorICAgIDI1NCwgMTEwLCAxMjcsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQ0LCAyNTQsIDExMCwgMTI3LCAyMjQsIDE5NCwgCisgICAgMjQ0LCAyMCwgMzEsIDY3LCA0MywgMjQ5LCAxNjEsIDEyNywgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDQsIDI0OSwgCisgICAgMTYxLCAxMjcsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQzLCA3MSwgMjQ5LCAxNjEsIDEyNywgMjI0LCAxOTQsIAorICAgIDI0NCwgMjAsIDMxLCA2NywgNDQsIDcxLCAyNDksIDE2MSwgMTI3LCAyMjAsIDEzMSwgMjQ3LCAxMjAsIDcxLCAyMjAsIDEzMSwgCisgICAgMjQ3LCAxMjAsIDIyNCwgMTk0LCAyNDQsIDIwLCAzMSwgNjcsIDQzLCA0MiwgMTI3LCAyMjQsIDE5NCwgMjQ0LCAyMCwgMzEsIAorICAgIDY3LCA0NCwgNDIsIDEyNywgMjQ4LCAxNTUsIDIyNiwgMTE5LCAyNTAsIDE3MiwgMjI2LCAxMTksIDIxMiwgMzIsIDIyNiwgCisgICAgMTE5LCA1MiwgMjEyLCAzMiwgMjI2LCAxMTksIDI0OCwgMTU1LCAxMjEsIDIzMiwgMjEzLCAyNTAsIDE3MiwgMTIxLCAyMzIsIAorICAgIDIxMywgMjEyLCAzMiwgMTIxLCAyMzIsIDIxMywgNCwgMjQ5LCAyMTksIDQsIDEwOSwgMjQ5LCAyMTksIDQsIDI0MywgMjI5LCAKKyAgICAyMTgsIDEyOSwgNCwgMjIwLCAxNTAsIDQsIDI0OSwgMjI2LCA0LCAyMjQsIDEzLCA3OCwgNCwgMjQ1LCAzMSwgNzgsIDQsIAorICAgIDI0NSwgMTYwLCAyNDgsIDE1NiwgNCwgNDMsIDIyNiwgMywgNCwgNDQsIDIyNiwgMywgNCwgNDMsIDI0OSwgOTksIDEyNywgNCwgCisgICAgNDQsIDI0OSwgOTksIDEyNywgNCwgNDMsIDIxNiwgNiwgMjIwLCA1MywgMTI3LCA0LCA0NCwgMjE2LCA2LCAyMjAsIDUzLCAKKyAgICAxMjcsIDQsIDU0LCA1MCwgNCwgMjU0LCAxMjYsIDQsIDI1MywgMjE2LCA0LCA5NiwgNTAsIDQsIDI0MCwgMTY3LCA0LCAyMzMsIAorICAgIDE1LCA1MCwgNCwgMjQyLCAxMzAsIDUwLCA0LCAyNDUsIDk4LCA1MCwgNCwgMjIzLCA1MCwgMjE5LCA0NiwgNCwgMjQ3LCAKKyAgICAxMzIsIDUwLCA0LCAyMjUsIDE4MiwgNTAsIDQsIDI0OSwgMjE3LCAyNTMsIDIwNiwgMTAsIDI0NCwgMTY0LCA1MywgMTcsIAorICAgIDEwLCAyMTcsIDQ0LCAyLCAyNDQsIDE2NCwgNDgsIDEwLCAyNDgsIDE4MywgNTMsIDE3LCAxMCwgMjE3LCA3OCwgMjQ0LCAxLCAKKyAgICAxMCwgMjM0LCAyMDQsIDUzLCAxNywgMTAsIDI0NCwgMTY2LCA1MywgMTcsIDEwLCAyNDQsIDE2NiwgMTQ3LCAxNywgMTAsIAorICAgIDI0OCwgMTg1LCA1MywgMTcsIDEwLCAyNDgsIDE4NSwgMTQ3LCAxNywgMTAsIDIzNCwgMjA2LCA1MywgMTcsIDEwLCAyMzQsIAorICAgIDIwNiwgMTQ3LCAxNywgMTAsIDIyMCwgOTQsIDUzLCAxNywgMTAsIDIyMCwgOTQsIDE0NywgMTcsIDEwLCAyMTgsIDQ2LCA1MywgCisgICAgMTcsIDEwLCAyMTgsIDQ2LCAxNDcsIDE3LCAxMCwgMSwgMjAyLCA1MywgMTcsIDEwLCAxLCAxMTIsIDIsIDIzMSwgMjI4LCAKKyAgICA3NywgNTMsIDE3LCAxMCwgMSwgMTEyLCAyLCAyMzEsIDIyOCwgNzcsIDQwLCAxNywgMTAsIDEsIDExMiwgMiwgMjAyLCA3NywgCisgICAgNTMsIDE3LCAxMCwgMSwgMTEyLCAyLCAyMDIsIDc3LCA0MCwgMTcsIDEwLCAxLCAyMTIsIDMxLCAyLCAyMDIsIDc3LCA1MywgCisgICAgMTcsIDEwLCAxLCAyMTIsIDMxLCAyLCAyMDIsIDc3LCA0MCwgMTcsIDEwLCAxLCAxMTIsIDIsIDIwMiwgMjUyLCA0MywgNTMsIAorICAgIDE3LCAxMCwgMSwgMTEyLCAyLCAyMDIsIDI1MiwgNDMsIDQwLCAxNywgMTAsIDEsIDc5LCAyLCAyMDIsIDc3LCA1MywgMTcsIAorICAgIDEwLCAxLCA3OSwgMiwgMjAyLCA3NywgNDAsIDE3LCAxMCwgMSwgNzksIDIsIDIwMiwgNzcsIDY1LCAxNywgMTAsIDEsIDc5LCAKKyAgICAyLCAyMDIsIDc3LCAxNDcsIDE3LCAxMCwgMSwgMTEyLCA1MywgMTcsIDEwLCAxLCAxMTIsIDQwLCAxNywgMTAsIDEsIDI1MiwgCisgICAgNTUsIDUzLCAxNywgMTAsIDEsIDI1MiwgNTUsIDQwLCAxNywgMTAsIDEsIDI1MiwgNTUsIDY1LCAxNywgMTAsIDEsIDI1MiwgCisgICAgNTUsIDE0NywgMTcsIDEwLCAxLCAyMTcsIDgsIDIzMSwgMTY1LCA1MywgMTcsIDEwLCAxLCAyMTcsIDgsIDIzMSwgMTY1LCAKKyAgICA0MCwgMTcsIDEwLCAxLCAyMTcsIDgsIDUzLCAxNywgMTAsIDEsIDIxNywgOCwgNDAsIDE3LCAxMCwgMSwgMjE3LCA4LCA2NSwgCisgICAgMTcsIDEwLCAxLCAyMTcsIDgsIDE0NywgMTcsIDEwLCAxLCAyMTYsIDE5MywgNTMsIDE3LCAxMCwgMSwgMjE2LCAxOTMsIDQwLCAKKyAgICAxNywgMTAsIDEsIDIxNiwgMTkzLCA2NSwgMTcsIDEwLCAxLCAyMTYsIDE5MywgMTQ3LCAxNywgMTAsIDEsIDE1MSwgNTMsIAorICAgIDE3LCAxMCwgMSwgMTUxLCA0MCwgMTcsIDEwLCAxLCAxNTEsIDY1LCAxNywgMTAsIDEsIDE1MSwgMTQ3LCAxNywgMTAsIDEsIAorICAgIDEyMiwgNTMsIDE3LCAxMCwgMSwgMTIyLCA0MCwgMTcsIDEwLCAxLCAxMjIsIDY1LCAxNywgMTAsIDEsIDEyMiwgMTQ3LCAxNywgCisgICAgMTAsIDEsIDIzNCwgMTMwLCA1MywgMTcsIDEwLCAxLCAyMzQsIDEzMCwgNDAsIDE3LCAxMCwgMSwgMjM0LCAxMzAsIDY1LCAKKyAgICAxNywgMTAsIDEsIDIzNCwgMTMwLCAxNDcsIDE3LCAxMCwgMSwgMjQ4LCAxOTYsIDUzLCAxNywgMTAsIDEsIDI0OCwgMTk2LCAKKyAgICA0MCwgMTcsIDEwLCAxLCAyMTYsIDIwMywgNTMsIDE3LCAxMCwgMSwgMjE2LCAyMDMsIDQwLCAxNywgMTAsIDEsIDIyMywgOTYsIAorICAgIDUzLCAxNywgMTAsIDEsIDIyMywgOTYsIDQwLCAxNywgMTAsIDEsIDIxMCwgMTA5LCA1MywgMTcsIDEwLCAxLCAyMTAsIDEwOSwgCisgICAgNDAsIDE3LCAxMCwgMSwgMjIxLCAxNjcsIDUzLCAxNywgMTAsIDEsIDIyMSwgMTY3LCA0MCwgMTcsIDEwLCAxLCAyMjEsIAorICAgIDE2NywgNjUsIDE3LCAxMCwgMSwgMjIxLCAxNjcsIDE0NywgMTcsIDEwLCAxLCAyMjAsIDYwLCA1MywgMTcsIDEwLCAxLCAKKyAgICAyMjAsIDYwLCA0MCwgMTcsIDEwLCAxLCAyMjAsIDYwLCA2NSwgMTcsIDEwLCAxLCAyMjAsIDYwLCAxNDcsIDE3LCAxMCwgMSwgCisgICAgMjIyLCAyNywgNTMsIDE3LCAxMCwgMSwgMjIyLCAyNywgNDAsIDE3LCAxMCwgMSwgMjIyLCAyNywgNjUsIDE3LCAxMCwgMSwgCisgICAgMjIyLCAyNywgMTQ3LCAxNywgMTAsIDEsIDI0OCwgMjE3LCA1MywgMTcsIDEwLCAxLCAyNDgsIDIxNywgNDAsIDE3LCAxMCwgCisgICAgMSwgMjQ4LCAyMTcsIDY1LCAxNywgMTAsIDEsIDI0OCwgMjE3LCAxNDcsIDE3LCAxMCwgMSwgMjE3LCA4MSwgNTMsIDE3LCAKKyAgICAxMCwgMSwgMjE3LCA4MSwgNDAsIDE3LCAxMCwgMSwgMjE3LCA4MSwgNjUsIDE3LCAxMCwgMSwgMjE3LCA4MSwgMTQ3LCAxNywgCisgICAgMTAsIDEsIDIxMCwgMTEyLCA1MywgMTcsIDEwLCAxLCAyMTAsIDExMiwgNDAsIDE3LCAxMCwgMSwgMjEwLCAxMTIsIDY1LCAKKyAgICAxNywgMTAsIDEsIDIxMCwgMTEyLCAxNDcsIDE3LCAxMCwgMSwgMjU0LCAxOTcsIDUzLCAxNywgMTAsIDEsIDI1NCwgMTk3LCAKKyAgICA0MCwgMTcsIDEwLCAxLCAyNTQsIDE5NywgNjUsIDE3LCAxMCwgMSwgMjU0LCAxOTcsIDE0NywgMTcsIDEwLCAxLCAyNDIsIAorICAgIDI0NSwgNTMsIDE3LCAxMCwgMSwgMjQyLCAyNDUsIDQwLCAxNywgMTAsIDEsIDI0MiwgMjQ1LCA2NSwgMTcsIDEwLCAxLCAKKyAgICAyNDIsIDI0NSwgMTQ3LCAxNywgMTAsIDEsIDI0NCwgMTQzLCA1MywgMTcsIDEwLCAxLCAyNDQsIDE0MywgNDAsIDE3LCAxMCwgCisgICAgMSwgMjQ0LCAxNDMsIDY1LCAxNywgMTAsIDEsIDI0NCwgMTQzLCAxNDcsIDE3LCAxMCwgMSwgMjI0LCA4MiwgNTMsIDE3LCAKKyAgICAxMCwgMSwgMjI0LCA4MiwgNDAsIDE3LCAxMCwgMSwgMjI0LCA4MiwgNjUsIDE3LCAxMCwgMSwgMjI0LCA4MiwgMTQ3LCAxNywgCisgICAgMTAsIDEsIDIzNCwgMjUxLCA1MywgMTcsIDEwLCAxLCAyMzQsIDI1MSwgNDAsIDE3LCAxMCwgMSwgMjM0LCAyNTEsIDY1LCAKKyAgICAxNywgMTAsIDEsIDIzNCwgMjUxLCAxNDcsIDE3LCAxMCwgMSwgMjMzLCAxMDMsIDUzLCAxNywgMTAsIDEsIDIzMywgMTAzLCAKKyAgICA0MCwgMTcsIDEwLCAxLCAyMzMsIDEwMywgNjUsIDE3LCAxMCwgMSwgMjMzLCAxMDMsIDE0NywgMTcsIDEwLCAxLCA2NiwgNTMsIAorICAgIDE3LCAxMCwgMSwgNjYsIDQwLCAxNywgMTAsIDEsIDY2LCA2NSwgMTcsIDEwLCAxLCA2NiwgMTQ3LCAxNywgMTAsIDEsIDIyOCwgCisgICAgNjMsIDUzLCAxNywgMTAsIDEsIDIyOCwgNjMsIDQwLCAxNywgMTAsIDEsIDIyOCwgNjMsIDY1LCAxNywgMTAsIDEsIDIyOCwgCisgICAgNjMsIDE0NywgMTcsIDEwLCAxLCAyNDEsIDIxOSwgNTMsIDE3LCAxMCwgMSwgMjQxLCAyMTksIDQwLCAxNywgMTAsIDEsIAorICAgIDI0MSwgMjE5LCA2NSwgMTcsIDEwLCAxLCAyNDEsIDIxOSwgMTQ3LCAxNywgMTAsIDEsIDIxMiwgMzEsIDUzLCAxNywgMTAsIAorICAgIDEsIDIxMiwgMzEsIDQwLCAxNywgMTAsIDEsIDExMiwgMjMxLCAxOTMsIDUzLCAxNywgMTAsIDEsIDExMiwgMjMxLCAxOTMsIAorICAgIDQwLCAxNywgMTAsIDEsIDc5LCA1MywgMTcsIDEwLCAxLCA3OSwgNDAsIDE3LCAxMCwgMSwgNzksIDY1LCAxNywgMTAsIDEsIAorICAgIDc5LCAxNDcsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxMTIsIDIsIDIzMSwgMjI4LCA3NywgNTMsIDE3LCAxMCwgMjcsIAorICAgIDIzMywgMTAzLCAyLCAxMTIsIDIsIDIzMSwgMjI4LCA3NywgNDAsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAyLCAxMTIsIDIsIAorICAgIDIwMiwgNzcsIDUzLCAxNywgMTAsIDI3LCAyMzMsIDEwMywgMiwgMTEyLCAyLCAyMDIsIDc3LCA0MCwgMTcsIDEwLCAyNywgCisgICAgMjMzLCAxMDMsIDIsIDExMiwgMiwgMjAyLCAyNTIsIDQzLCA1MywgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDExMiwgMiwgCisgICAgMjAyLCAyNTIsIDQzLCA0MCwgMTcsIDEwLCAyNywgMjMzLCAxMDMsIDIsIDExMiwgNTMsIDE3LCAxMCwgMjcsIDIzMywgMTAzLCAKKyAgICAyLCAxMTIsIDQwLCAxNywgMjEwLCA4NywgMjExLCAyNDUsIDIyOCwgNzMsIDIxOSwgMTgsIDEyNiwgMjQ1LCAzMSwgNzgsIAorICAgIDEyNiwgMjIzLCAyNTQsIDc4LCAxMjYsIDU0LCA1MCwgMTI2LCAyNDcsIDEzMiwgNTAsIDEyNiwgMjI1LCAxODIsIDUwLCAKKyAgICAxMjYsIDI1NCwgMTI2LCAxMjYsIDI1NCwgNTcsIDEyNiwgNDMsIDIyNiwgMywgMTI2LCA0NCwgMjI2LCAzLCAxMjYsIDI1MywgCisgICAgMjE2LCAxMjYsIDk2LCA1MCwgMTI2LCAyNDksIDIxOSwgMTI2LCAyNDAsIDE2NywgMTI2LCAyNDMsIDIyOSwgMjE4LCAxMjksIAorICAgIDEyNiwgMjE5LCA0NiwgMTI2LCAyMSwgMjEwLCA4NiwgMTI2LCAyMSwgMTEwLCAxMjYsIDIxLCAxMDUsIDEyNiwgMjEsIDE1OCwgCisgICAgMTI2LCAyMSwgMTYxLCAxMjYsIDIxLCAxODksIDEyNiwgMjEsIDE5NCwgMTI2LCAyMSwgMTk4LCAxMjYsIDIxLCAxOTUsIAorICAgIDEyNiwgMjEsIDIwMCwgMTI2LCAyNDksIDIyNiwgMTI2LCAyMjAsIDE1MCwgMTI2LCAyMzMsIDE1LCA1MCwgMTI2LCAyNDUsIAorICAgIDk4LCA1MCwgMTI2LCAyNDIsIDEzMCwgNTAsIDEyNiwgMjI0LCAxMywgNzgsIDEyNiwgMjQ5LCAyMTcsIDI1MywgMjA2LCAKKyAgICAxMjYsIDcsIDYsIDEsIDYxLCAxMjYsIDcsIDYsIDEsIDI1MywgMTU4LCAxMjYsIDcsIDYsIDEsIDI1MSwgNjYsIDEyNiwgNywgCisgICAgNiwgMSwgMjQ5LCA2MCwgMTI2LCA3LCA2LCAxLCA3NSwgMTI2LCA3LCA2LCAxLCAyNDUsIDYsIDEyNiwgNywgNiwgMSwgMjQzLCAKKyAgICAyMDIsIDEyNiwgNywgNiwgMSwgMjQyLCA2MCwgMTI2LCA3LCA2LCAxLCA3MywgMTI2LCA3LCA2LCAxLCAyMzUsIDE0NCwgCisgICAgMTI2LCA3LCA2LCAxLCAyMzUsIDIzLCAxMjYsIDcsIDYsIDEsIDE1NiwgMTI2LCA3LCA2LCAxLCAxOTMsIDEyNiwgNywgNiwgCisgICAgMSwgMjMwLCAyNSwgMTI2LCA3LCA2LCAxLCA3NiwgMTI2LCA3LCA2LCAxLCAyMjYsIDEwNSwgMTI2LCA3LCA2LCAxLCAyMjQsIAorICAgIDk2LCAxMjYsIDcsIDYsIDEsIDE1MywgMTI2LCA3LCA2LCAxLCAyMjIsIDkxLCAxMjYsIDcsIDYsIDEsIDIxNywgMTUyLCAKKyAgICAxMjYsIDcsIDYsIDEsIDcwLCAxMjYsIDcsIDYsIDEsIDIxNCwgMTA1LCAxMjYsIDcsIDYsIDEsIDIxMiwgOTgsIDEyNiwgNywgCisgICAgNiwgMSwgMjExLCAxNzgsIDEyNiwgNywgNiwgMSwgMjExLCAxMTcsIDEyNiwgNywgNiwgMSwgMjEwLCAxNTksIDEyNiwgNDMsIAorICAgIDQyLCAxMjcsIDEyNiwgMjIzLCA1MCwgMjE5LCA0NiwgMTI2LCA0NCwgNDIsIDEyNywgMTI2LCAyNTAsIDMxLCAyNTUsIDE0LCAKKyAgICAxMjYsIDEyMSwgMjMyLCAyMTMsIDEyNiwgMjQyLCAxMzcsIDI1NSwgMTQsIDEyNiwgNywgNCwgMSwgNjEsIDEyNiwgNywgNCwgCisgICAgMSwgMjUzLCAxNTgsIDEyNiwgNywgNCwgMSwgMjUxLCA2NiwgMTI2LCA3LCA0LCAxLCAyNDksIDYwLCAxMjYsIDcsIDQsIDEsIAorICAgIDc1LCAxMjYsIDcsIDQsIDEsIDI0NSwgNiwgMTI2LCA3LCA0LCAxLCAyNDMsIDIwMiwgMTI2LCA3LCA0LCAxLCAyNDIsIDYwLCAKKyAgICAxMjYsIDcsIDQsIDEsIDczLCAxMjYsIDcsIDQsIDEsIDIzNSwgMTQ0LCAxMjYsIDcsIDQsIDEsIDIzNSwgMjMsIDEyNiwgNywgCisgICAgNCwgMSwgMTU2LCAxMjYsIDcsIDQsIDEsIDE5MywgMTI2LCA3LCA0LCAxLCAyMzAsIDI1LCAxMjYsIDcsIDQsIDEsIDc2LCAKKyAgICAxMjYsIDcsIDQsIDEsIDIyNiwgMTA1LCAxMjYsIDcsIDQsIDEsIDIyNCwgOTYsIDEyNiwgNywgNCwgMSwgMTUzLCAxMjYsIDcsIAorICAgIDQsIDEsIDIyMiwgOTEsIDEyNiwgNywgNCwgMSwgMjE3LCAxNTIsIDEyNiwgNywgNCwgMSwgNzAsIDEyNiwgNywgNCwgMSwgCisgICAgMjE0LCAxMDUsIDEyNiwgNywgNCwgMSwgMjEyLCA5OCwgMTI2LCA3LCA0LCAxLCAyMTEsIDE3OCwgMTI2LCA3LCA0LCAxLCAKKyAgICAyMTEsIDExNywgMTI2LCA3LCA0LCAxLCAyMTAsIDE1OSwgMTI2LCA0MywgMjQ5LCA5OSwgMTI3LCAxMjYsIDY3LCAyMzIsIAorICAgIDIxMywgMTI2LCA0NCwgMjQ5LCA5OSwgMTI3LCAxMjYsIDE4MiwgMTI2LCA0MywgNzEsIDIyNiwgMywgMTI2LCA0NCwgNzEsIAorICAgIDIyNiwgMywgMTAxLCAxMDksIDI0MywgMjI5LCAyMTgsIDEyOSwgMTAxLCA0MywgMjQ5LCAxNjEsIDEyNywgMTAxLCA0NCwgCisgICAgMjQ5LCAxNjEsIDEyNywgMTAxLCAxMDksIDI0OSwgMjE5LCAxMDEsIDU2LCAyMzAsIDIyNCwgMjQ3LCAxMjAsIDEwMSwgNTYsIAorICAgIDEsIDIxMSwgMjI3LCAxMDEsIDU2LCAxLCA0LCA2MSwgMTAxLCA1NiwgMSwgNCwgNzMsIDEwMSwgNTYsIDEsIDQsIDcwLCAKKyAgICAxMDEsIDU2LCAxLCA0LCA3NSwgMTAxLCA1NiwgMSwgNCwgNzYsIDEwMSwgNTYsIDEsIDQsIDE5MSwgMTAxLCA1NiwgMSwgNCwgCisgICAgMjEwLCAyMTIsIDEwMSwgNTYsIDEsIDQsIDIxMCwgMjQ0LCAxMDEsIDU2LCAxLCA0LCAyMTUsIDExOCwgMTAxLCAyMzQsIAorICAgIDIwMSwgMjI0LCAxNzMsIDIxOSwgMzEsIDc4LCAxMDEsIDU2LCAxLCA2MSwgMTAxLCA1NiwgMSwgNzMsIDEwMSwgNTYsIDEsIAorICAgIDcwLCAxMDEsIDU2LCAxLCA3NSwgMTAxLCA1NiwgMSwgNzYsIDEwMSwgNTYsIDEsIDE3NiwgMTAxLCA1NiwgMSwgMjM0LCA5MiwgCisgICAgMTAxLCA1NiwgMSwgMjMzLCAyMTcsIDEwMSwgNTYsIDEsIDIzNCwgMTgyLCAxMDEsIDU2LCAxLCAyMzQsIDI4LCAxMDEsIDU2LCAKKyAgICAxLCAyMDYsIDEwMSwgNTYsIDEsIDIxOSwgMTkxLCAxMDEsIDU2LCAxLCAyMTgsIDgzLCAxMDEsIDU2LCAxLCAyMjEsIDE4MSwgCisgICAgMTAxLCA1NiwgMSwgMjE5LCA1OCwgMTAxLCA1NiwgMSwgMjE3LCAxMDUsIDEwMSwgNTYsIDEsIDIxNiwgMTE3LCAxMDEsIDU2LCAKKyAgICAxLCAyMTUsIDExOCwgMTAxLCA1NiwgMSwgMjE3LCAyMiwgMTAxLCA1NiwgMSwgMTExLCAxMDEsIDU2LCAxLCAxOTcsIDEwMSwgCisgICAgNTYsIDEsIDIyOCwgMjMzLCAxMDEsIDU2LCAxLCAyMjcsIDIzNywgMTAxLCA1NiwgMSwgMjI5LCAxMDcsIDEwMSwgNTYsIDEsIAorICAgIDIyOCwgNzQsIDEwMSwgNTYsIDEsIDE2MiwgMTAxLCA1NiwgMSwgMjQxLCAxODAsIDEwMSwgNTYsIDEsIDI0MCwgMjIyLCAKKyAgICAxMDEsIDU2LCAxLCAyNDEsIDIzOCwgMTAxLCA1NiwgMSwgMjQxLCA2OCwgMTAxLCA1NiwgMSwgMTg0LCAxMDEsIDU2LCAxLCAKKyAgICAyMzAsIDIzMCwgMTAxLCA1NiwgMSwgMjMwLCAxMDIsIDEwMSwgNTYsIDEsIDIzMSwgOTEsIDEwMSwgNTYsIDEsIDIzMCwgCisgICAgMTYxLCAxMDEsIDU2LCAxLCAxOTEsIDEwMSwgNTYsIDEsIDIxMCwgMjEyLCAxMDEsIDU2LCAxLCAyMTAsIDI0NCwgMTAxLCAKKyAgICA1NiwgMSwgMjA1LCAxMDEsIDU2LCAxLCAyMjMsIDM1LCAxMDEsIDU2LCAxLCAyMjIsIDE0MCwgMTAxLCA1NiwgMSwgMjIzLCAKKyAgICAxMjgsIDEwMSwgNTYsIDEsIDIyMiwgMjExLCAxMDEsIDU2LCAxLCAyMTIsIDY1LCAxMDEsIDU2LCAxLCAyMzAsIDI1LCAxMDEsIAorICAgIDU2LCAyMTMsIDEzNSwgMjE5LCAzMSwgNzgsIDEwMSwgNTYsIDIyMCwgMTU1LCAyMTksIDMxLCA3OCwgMTAxLCAyNCwgMjQ0LCAKKyAgICAxMDMsIDEwMSwgMjQsIDEsIDIzNCwgNTgsIDEwMSwgMjQsIDEsIDIxOCwgMjE1LCAxMDEsIDI0LCAxLCAyMzQsIDUxLCAxMDEsIAorICAgIDI0LCAxLCAyMjgsIDIyNiwgMTAxLCAyNCwgMSwgMjI4LCAyMjQsIDEwMSwgMjQsIDEsIDIyOCwgMjIzLCAxMDEsIDI0LCAxLCAKKyAgICAyMTYsIDEwMSwgMTAxLCAyNCwgMSwgMjE4LCAyMDQsIDEwMSwgMjQsIDEsIDIyMywgMjYsIDEwMSwgMjQsIDEsIDIyMywgMjEsIAorICAgIDEwMSwgMjQsIDEsIDIyMywgMTgsIDEwMSwgMjQsIDEsIDIyMywgMTEsIDEwMSwgMjQsIDEsIDIyMywgNiwgMTAxLCAyNCwgMSwgCisgICAgMjIzLCAxLCAxMDEsIDI0LCAxLCAyMjMsIDEyLCAxMDEsIDI0LCAxLCAyMjMsIDI0LCAxMDEsIDI0LCAxLCAyMzAsIDIxNywgCisgICAgMTAxLCAyNCwgMSwgMjI1LCA5NSwgMTAxLCAyNCwgMSwgMjE4LCAyMTIsIDEwMSwgMjQsIDEsIDIyNSwgODQsIDEwMSwgMjQsIAorICAgIDEsIDIxOSwgMTQ4LCAxMDEsIDI0LCAxLCAyMTgsIDIwOSwgMTAxLCAyNCwgMSwgMjM2LCA1NiwgMTAxLCAyNCwgMSwgMjUwLCAKKyAgICA0NiwgMTAxLCAyNCwgMSwgMjE4LCAyMTksIDEwMSwgMjQsIDEsIDI1MCwgMTA2LCAxMDEsIDI0LCAxLCAyMzQsIDExMCwgCisgICAgMTAxLCAyNCwgMSwgMjE2LCAxNzMsIDEwMSwgMjQsIDEsIDIyNSwgMTMxLCAxMDEsIDI0LCAxLCAyNDEsIDE3MiwgMTAxLCAKKyAgICAyNCwgMSwgNjEsIDEwMSwgMjQsIDEsIDI1NCwgMjQzLCAxMDEsIDI0LCAxLCAxOTEsIDEwMSwgMjQsIDEsIDIxMSwgOTIsIAorICAgIDEwMSwgMjQsIDEsIDI0NSwgMTE3LCAxMDEsIDI0LCAxLCA3NSwgMTAxLCAyNCwgMSwgMjExLCAzNiwgMTAxLCAyNCwgMSwgCisgICAgMjExLCA0NywgMTAxLCAyNCwgMSwgNzYsIDEwMSwgMjQsIDEsIDIxMiwgNjUsIDEwMSwgMjQsIDEsIDIxMiwgNjIsIDEwMSwgCisgICAgMjQsIDEsIDIyNiwgMjM0LCAxMDEsIDI0LCAxLCAyMTAsIDI0NCwgMTAxLCAyNCwgMSwgNzAsIDEwMSwgMjQsIDEsIDIxMiwgCisgICAgMTEsIDEwMSwgMjQsIDEsIDIxMiwgMjIsIDEwMSwgMjQsIDEsIDIxMSwgMjUwLCAxMDEsIDI0LCAxLCAyMTAsIDIxMiwgMTAxLCAKKyAgICAyNCwgMSwgMjQ1LCA1NSwgMTAxLCAyNCwgMSwgMjExLCA4LCAxMDEsIDI0LCAxLCA3MywgMTI2LCAyNTAsIDE3NiwgNTAsIAorICAgIDEyNiwgMjI0LCAyMjgsIDUwLCAxMjYsIDIyOCwgNTIsIDUwLCAxMjYsIDIzMSwgMjMyLCAxMjYsIDI1MSwgMTM1LCAxMzAsIAorICAgIDEyNiwgMjExLCA0MCwgNTAsIDEyNiwgMjExLCAyMTcsIDUwLCAxMDEsIDI0NCwgMTgsIDE5MiwgMjEzLCAyMzksIDEwMSwgCisgICAgMTQwLCA3NCwgMTAxLCAyMTQsIDE1MywgNzQsIDEwMSwgOTcsIDc0LCAxMDEsIDI0NiwgMTA0LCA3NCwgMTAxLCA4NSwgMjE4LCAKKyAgICAyMzQsIDEwMSwgNzEsIDI1MCwgMzUsIDIzNSwgMjA0LCAyNTQsIDk5LCAyNTQsIDEyMCwgMjM1LCAyMDQsIDI1NCwgOTksIAorICAgIDIyMCwgMTM3LCAyMzUsIDIwNCwgMjU0LCA5OSwgMjE2LCAyMzYsIDIyNiwgMjQ5LCAyMjMsIDcyLCAyNTAsIDE0MiwgMjIzLCAKKyAgICA3MiwgMjUwLCAxNDIsIDYyLCA1NywgMywgMjUzLCAxNDIsIDYxLCA2MiwgNTcsIDMsIDI1MywgMTExLCA3NSwgNjIsIDU3LCAKKyAgICAzLCAyNTMsIDEyMCwgNzMsIDYyLCA1NywgMywgMjUzLCA4OCwgNzYsIDYyLCA1NywgMywgMjUzLCAxMzgsIDcwLCA2MiwgNTcsIAorICAgIDMsIDI1MywgMTU3LCAyNDgsIDIyMSwgNjIsIDU3LCAzLCAyNTMsIDEwNCwgMjQ4LCA5MCwgNjIsIDU3LCAzLCAyNTMsIDE0NCwgCisgICAgMjQ4LCAzLCA2MiwgNTcsIDMsIDI1MywgMTM0LCAyNDcsIDE0NSwgNjIsIDU3LCAzLCAyNTMsIDk4LCAyNDYsIDc4LCA2MiwgCisgICAgNTcsIDMsIDI1MywgOTIsIDIzNSwgMTQxLCA2MiwgNTcsIDMsIDI1MywgMTAzLCAyMzUsIDEyNiwgNjIsIDU3LCAzLCAyNTMsIAorICAgIDExMywgMjM1LCA2OCwgNjIsIDU3LCAzLCAyNTMsIDg0LCAyMzUsIDUxLCA2MiwgNTcsIDMsIDI1MywgNzIsIDE3NiwgNjIsIAorICAgIDU3LCAzLCAyNTMsIDEwNSwgMjM0LCAxODIsIDYyLCA1NywgMywgMjUzLCA4MiwgMjM0LCA5MiwgNjIsIDU3LCAzLCAyNTMsIAorICAgIDc5LCAyMzQsIDI4LCA2MiwgNTcsIDMsIDI1MywgNjgsIDIzMywgMjE3LCA2MiwgNTcsIDMsIDI1MywgNjksIDE4NCwgNjIsIAorICAgIDU3LCAzLCAyNTMsIDEzNSwgMjMxLCA5MSwgNjIsIDU3LCAzLCAyNTMsIDc2LCAyMzAsIDIzMCwgNjIsIDU3LCAzLCAyNTMsIAorICAgIDEzMywgMjMwLCAxNjEsIDYyLCA1NywgMywgMjUzLCAxMjUsIDIzMCwgMTAyLCA2MiwgNTcsIDMsIDI1MywgMTQ2LCAxOTcsIAorICAgIDYyLCA1NywgMywgMjUzLCAxMjQsIDIyOSwgMTA3LCA2MiwgNTcsIDMsIDI1MywgMTE4LCAyMjgsIDIzMywgNjIsIDU3LCAzLCAKKyAgICAyNTMsIDk3LCAyMjgsIDc0LCA2MiwgNTcsIDMsIDI1MywgOTQsIDIyNywgMjM3LCA2MiwgNTcsIDMsIDI1MywgMTUzLCAxOTAsIAorICAgIDYyLCA1NywgMywgMjUzLCA3NywgMjI1LCAyMjEsIDYyLCA1NywgMywgMjUzLCAxMTAsIDIyNSwgMTA4LCA2MiwgNTcsIDMsIAorICAgIDI1MywgMTM3LCAyMjUsIDE2LCA2MiwgNTcsIDMsIDI1MywgOTksIDIyNCwgMTUwLCA2MiwgNTcsIDMsIDI1MywgMTMyLCAKKyAgICAyMjQsIDg4LCA2MiwgNTcsIDMsIDI1MywgNzEsIDIyNCwgNjksIDYyLCA1NywgMywgMjUzLCAxMjcsIDIyNCwgNTMsIDYyLCAKKyAgICA1NywgMywgMjUzLCAxMTYsIDIyNCwgNDIsIDYyLCA1NywgMywgMjUzLCA4OSwgMjA1LCA2MiwgNTcsIDMsIDI1MywgMTIxLCAKKyAgICAyMjMsIDEyOCwgNjIsIDU3LCAzLCAyNTMsIDk2LCAyMjMsIDM1LCA2MiwgNTcsIDMsIDI1MywgMTU1LCAyMjIsIDIxMSwgNjIsIAorICAgIDU3LCAzLCAyNTMsIDEyMiwgMjIyLCAxNDAsIDYyLCA1NywgMywgMjUzLCAxMTcsIDIwNiwgNjIsIDU3LCAzLCAyNTMsIDE0MCwgCisgICAgMjIxLCAxODEsIDYyLCA1NywgMywgMjUzLCAxMDgsIDIxOSwgMTkxLCA2MiwgNTcsIDMsIDI1MywgMTM2LCAyMTksIDU4LCAKKyAgICA2MiwgNTcsIDMsIDI1MywgOTEsIDIxOCwgODMsIDYyLCA1NywgMywgMjUzLCA5MCwgMjE3LCAxMDUsIDYyLCA1NywgMywgCisgICAgMjUzLCAxNTEsIDIxNywgMjIsIDYyLCA1NywgMywgMjUzLCAxMTIsIDIxNiwgMTE3LCA2MiwgNTcsIDMsIDI1MywgMTQ5LCAKKyAgICAxMTEsIDYyLCA1NywgMywgMjUzLCA4MCwgMjE1LCAxMTgsIDYyLCA1NywgMywgMjUzLCA5NSwgMjEyLCA2NSwgNjIsIDU3LCAKKyAgICAzLCAyNTMsIDc0LCAyMTIsIDIyLCA2MiwgNTcsIDMsIDI1MywgMTA5LCAyMTEsIDI1MCwgNjIsIDU3LCAzLCAyNTMsIDEwNywgCisgICAgMjExLCAyMjcsIDYyLCA1NywgMywgMjUzLCAxMzEsIDIxMCwgMTE2LCA2MiwgNTcsIDMsIDI1MywgNzUsIDIxMCwgOTQsIDYyLCAKKyAgICA1NywgMywgMjUzLCAxMjgsIDIxMCwgMjMsIDYyLCA1NywgMywgMjUzLCAxMjMsIDI1NSwgNzUsIDYyLCA1NywgMywgMjUzLCAKKyAgICAxMDYsIDI1NSwgNzQsIDYyLCA1NywgMywgMjUzLCA2NSwgMjUzLCAxOTIsIDYyLCA1NywgMywgMjUzLCA3OCwgMjQ2LCA0NiwgCisgICAgNjIsIDU3LCAzLCAyNTMsIDYxLCAyNDYsIDQ1LCA2MiwgNTcsIDMsIDI1MywgMTAxLCAyMjcsIDE3NCwgNjIsIDU3LCAzLCAKKyAgICAyNTMsIDExOSwgMjI0LCAxNDgsIDYyLCA1NywgMywgMjUzLCA4NywgMjI0LCAxNTIsIDYyLCA1NywgMywgMjUzLCA3MywgCisgICAgMjIzLCAxODYsIDYyLCA1NywgMywgMjUzLCAxMTUsIDIyMywgMTg1LCA2MiwgNTcsIDMsIDI1MywgODEsIDIyMiwgMjEwLCAKKyAgICA2MiwgNTcsIDMsIDI1MywgODMsIDIxNywgMTAyLCA2MiwgNTcsIDMsIDI1MywgNjMsIDIxNSwgNzgsIDYyLCA1NywgMywgCisgICAgMjUzLCA2MCwgMTA1LCA2MiwgNTcsIDE2LCAyNTMsIDEzMCwgNjIsIDU3LCAxNiwgMjUzLCAxMjksIDYyLCA1NywgMTYsIAorICAgIDI1MywgMTI2LCA2MiwgNTcsIDE2LCAyNTMsIDExNCwgNjIsIDU3LCAxNiwgMjUzLCAxMDIsIDYyLCA1NywgMTYsIDI1MywgCisgICAgMTAwLCA2MiwgNTcsIDE2LCAyNTMsIDkzLCA2MiwgNTcsIDE2LCAyNTMsIDg2LCA2MiwgNTcsIDE2LCAyNTMsIDg1LCA2MiwgCisgICAgNTcsIDE2LCAyNTMsIDcwLCA2MiwgNTcsIDE2LCAyNTMsIDY3LCA2MiwgNTcsIDE2LCAyNTMsIDY2LCA2MiwgNTcsIDE2LCAKKyAgICAyNTMsIDY0LCA2MiwgNTcsIDE2LCAyNTMsIDYyLCA2MiwgNTcsIDEwNiwgMjUzLCA1OSwgMjMxLCAxODUsIDYyLCA1NywgCisgICAgMTA2LCAyNTMsIDU4LCAyMTEsIDIyMSwgNjIsIDU3LCAxMDYsIDI1MywgNTcsIDI0OCwgNzQsIDYyLCA1NywgMTA2LCAyNTMsIAorICAgIDU2LCAyNDUsIDk1LCA2MiwgNTcsIDEwNiwgMjUzLCA1NSwgMjMxLCAxNTksIDYyLCA1NywgMTA2LCAyNTMsIDU0LCAyMTgsIAorICAgIDE2MiwgNjIsIDU3LCAxMDYsIDI1MywgNTMsIDI0NSwgMzcsIDYyLCA1NywgMTA2LCAyNTMsIDUyLCAyMjMsIDE1MywgNjIsIAorICAgIDU3LCAxMDYsIDI1MywgNTEsIDIyMCwgNjIsIDYyLCA1NywgMTA2LCAyNTMsIDUwLCAyNDEsIDIzNywgNjIsIDU3LCAxMDYsIAorICAgIDI1MywgNDksIDIxOSwgMjUsIDYyLCA1NywgMTA2LCAyNTMsIDQ4LCAyNTEsIDIwMywgNjIsIDU3LCAxMDYsIDI1MywgNDcsIAorICAgIDI0OSwgMTQ1LCA2MiwgNTcsIDEwNiwgMjUzLCA0NiwgMjUxLCAxMTUsIDYyLCA1NywgMTA2LCAyNTMsIDQ1LCAyMTIsIDIsIAorICAgIDYyLCA1NywgMTA2LCAyNTMsIDQ0LCAyNTIsIDEzNiwgNjIsIDU3LCAxMDYsIDI1MywgNDMsIDIyNiwgMjA1LCA2MiwgNTcsIAorICAgIDEwNiwgMjUzLCA0MiwgMjE4LCAyNTQsIDYyLCA1NywgMTA2LCAyNTMsIDQxLCAyNDksIDY4LCA2MiwgNTcsIDIzMCwgMTQyLCAKKyAgICAyNTMsIDQwLCAyMzQsIDIyNCwgNjIsIDU3LCAyMzAsIDE0MiwgMjUzLCAzOSwgMjM0LCAyMzIsIDYyLCA1NywgMTA2LCAyNTMsIAorICAgIDM4LCAyMjYsIDIxOCwgNjIsIDU3LCAxMDYsIDI1MywgMzcsIDIxMSwgMjM2LCA2MiwgNTcsIDEwNiwgMjUzLCAzNiwgNjIsIAorICAgIDU3LCAyMzAsIDE0MiwgMjUzLCAzNSwgMjU0LCAxNywgNjIsIDU3LCAyMzAsIDE0MiwgMjUzLCAzNCwgMjMxLCA1MiwgNjIsIAorICAgIDU3LCAxMDYsIDI1MywgMzMsIDI1MSwgMTM0LCA2MiwgNTcsIDEwNiwgMjUzLCAzMiwgMjQyLCAxNjYsIDYyLCA1NywgMTA2LCAKKyAgICAyNTMsIDMxLCA2MiwgNTcsIDEwNiwgMjUzLCAzMCwgMjExLCAyMTIsIDYyLCA1NywgMTA2LCAyNTMsIDI5LCA2MiwgNTcsIAorICAgIDEwNiwgMjUzLCAyOCwgNjIsIDU3LCAxMDYsIDI1MywgMjcsIDI0MCwgMjQ4LCA2MiwgNTcsIDEwNiwgMjUzLCAyNiwgNjIsIAorICAgIDU3LCAxMDYsIDI1MywgMjUsIDYyLCA1NywgMTA2LCAyNTMsIDI0LCA2MiwgNTcsIDIzMCwgMTQyLCAyNTMsIDIyLCAyMTUsIAorICAgIDkyLCA2MiwgNTcsIDEwNiwgMjUzLCAyMSwgNjIsIDU3LCAxMDYsIDI1MywgMjAsIDYyLCA1NywgMTA2LCAyNTMsIDE5LCAKKyAgICAyNDksIDI1MCwgNjIsIDU3LCAxMDYsIDI1MywgMTgsIDYyLCA1NywgMTA2LCAyNTMsIDE3LCA2MiwgNTcsIDEwNiwgMjUzLCAKKyAgICAxNiwgMjQzLCA5MywgNjIsIDU3LCAxMDYsIDI1MywgMTUsIDI1NCwgNCwgNjIsIDU3LCAxMDYsIDI1MywgMTQsIDYyLCA1NywgCisgICAgMTA2LCAyNTMsIDEzLCA2MiwgNTcsIDEwNiwgMjUzLCAxMiwgNjIsIDU3LCAxMDYsIDI1MywgMTEsIDYyLCA1NywgMTA2LCAKKyAgICAyNTMsIDEwLCA2MiwgNTcsIDEwNiwgMjUzLCA5LCA2MiwgNTcsIDEwNiwgMjUzLCA4LCA2MiwgNTcsIDEwNiwgMjUzLCA3LCAKKyAgICA2MiwgNTcsIDEwNiwgMjUzLCA2LCA2MiwgNTcsIDEwNiwgMjUzLCA1LCAyMzAsIDEzNCwgNjIsIDU3LCAxMDYsIDI1MywgNCwgCisgICAgNjIsIDU3LCAxMDYsIDI1MywgMywgMjE1LCAyMzUsIDYyLCA1NywgMTA2LCAyNTMsIDIsIDYyLCA1NywgMTA2LCAyNTMsIDEsIAorICAgIDYyLCA1NywgMTA2LCAyNTMsIDAsIDYyLCA1NywgMTA2LCAyNTIsIDI1NSwgNjIsIDU3LCAxMDYsIDI1MiwgMjU0LCA2MiwgCisgICAgNTcsIDEwNiwgMjUyLCAyNTMsIDYyLCA1NywgMTA2LCAyNTIsIDI1MiwgNjIsIDU3LCAxMDYsIDI1MiwgMjUxLCA2MiwgNTcsIAorICAgIDEwNiwgMjUyLCAyNTAsIDYyLCA1NywgMTA2LCAyNTIsIDI0OSwgNjIsIDU3LCAxMDYsIDI1MiwgMjQ4LCA2MiwgNTcsIDEwNiwgCisgICAgMjUyLCAyNDcsIDI0MSwgMjExLCA2MiwgNTcsIDEwNiwgMjUyLCAyMjYsIDI0NCwgMjgsIDYyLCA1NywgMTA2LCAyNTIsIAorICAgIDIyMywgMjUyLCAxMTYsIDYyLCA1NywgMTA2LCAyNTIsIDIxOCwgMjE5LCA1LCA2MiwgNTcsIDEwNiwgMjUyLCAyMTcsIDc0LCAKKyAgICA2MiwgNTcsIDEwNiwgMjUyLCAyMTYsIDYyLCA1NywgMTA2LCAyNTIsIDIxNSwgMjE3LCAyMzYsIDYyLCA1NywgMTA2LCAyNTIsIAorICAgIDIxNCwgNjIsIDU3LCAxMDYsIDI1MiwgMjEzLCA2MiwgNTcsIDEwNiwgMjUyLCAyMTIsIDIxMSwgMjU0LCAyNTAsIDEzOSwgCisgICAgNjIsIDU3LCAxMDYsIDI1MiwgMjExLCAyNTAsIDEzOSwgNjIsIDU3LCAxMDYsIDI1MiwgMjEwLCAyNTAsIDE0MCwgMjQzLCAKKyAgICAyNTUsIDYyLCA1NywgMTA2LCAyNTIsIDIwOSwgMjEyLCAwLCA2MiwgNTcsIDEwNiwgMjUyLCAyMDgsIDYyLCA1NywgMTA2LCAKKyAgICAyNTIsIDIwNywgNjIsIDU3LCAyMzAsIDE0MiwgMjUyLCAyMDYsIDI0NywgMTk4LCA2MiwgNTcsIDEwNiwgMjUyLCAyMDUsIAorICAgIDYyLCA1NywgMTA2LCAyNTIsIDIwNCwgNjIsIDU3LCAxMDYsIDI1MiwgMjAyLCA2MiwgNTcsIDEwNiwgMjUyLCAyMDEsIDYyLCAKKyAgICA1NywgMTA2LCAyNTIsIDIwMCwgNjIsIDU3LCAxMDYsIDI1MiwgMTk5LCAyNDgsIDE1OSwgNjIsIDU3LCAxMDYsIDI1MiwgCisgICAgMTk4LCA2MiwgNTcsIDEwNiwgMjUyLCAxOTcsIDYyLCA1NywgMTA2LCAyNTIsIDE5NiwgNjIsIDU3LCAxMDYsIDI1MiwgMTk1LCAKKyAgICA2MiwgNTcsIDEwNiwgMjUyLCAxOTQsIDYyLCA1NywgMTA2LCAyMTMsIDE4NiwgMjUzLCAyMywgNjIsIDU3LCAxMDYsIDIxMywgCisgICAgMTg2LCAyNTIsIDI0NiwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDI0NSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAKKyAgICAyNTIsIDI0NCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDI0MywgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIAorICAgIDI0MiwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDI0MSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDI0MCwgCisgICAgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzOSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzOCwgNjIsIDU3LCAKKyAgICAxMDYsIDIxMywgMTg2LCAyNTIsIDIzNywgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzNiwgNjIsIDU3LCAxMDYsIAorICAgIDIxMywgMTg2LCAyNTIsIDIzNSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzNCwgNjIsIDU3LCAxMDYsIDIxMywgCisgICAgMTg2LCAyNTIsIDIzMywgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzMiwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAKKyAgICAyNTIsIDIzMSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIzMCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIAorICAgIDIyOSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyOCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyNywgCisgICAgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyNSwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyNCwgNjIsIDU3LCAKKyAgICAxMDYsIDIxMywgMTg2LCAyNTIsIDIyMiwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIyMSwgNjIsIDU3LCAxMDYsIAorICAgIDIxMywgMTg2LCAyNTIsIDIyMCwgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDIxOSwgNjIsIDU3LCAxMDYsIDIxMywgCisgICAgMTg2LCAyNTIsIDIwMywgNjIsIDU3LCAxMDYsIDIxMywgMTg2LCAyNTIsIDE5MywgMjU0LCAyMzYsIDIxMSwgMjA5LCAyMjAsIAorICAgIDEzOCwgMjMyLCAyMTMsIDI1NCwgMjM2LCAyMTEsIDIwOSwgMjIwLCAxMzgsIDI0NywgMTIwLCAyNTQsIDIzNiwgMjUwLCAKKyAgICAxMzAsIDc4LCAyNTQsIDIzNiwgNTQsIDExMCwgMjU0LCAyMzYsIDU0LCAxMDUsIDI1NCwgMjM2LCA1NCwgMTU4LCAyNTQsIAorICAgIDIzNiwgNTQsIDE2MSwgMjU0LCAyMzYsIDU0LCAxODksIDI1NCwgMjM2LCA1NCwgMTk0LCAyNTQsIDIzNiwgNTQsIDE5OCwgCisgICAgMjU0LCAyMzYsIDU0LCAxOTUsIDI1NCwgMjM2LCA1NCwgMjAwLCAyNTQsIDIzNiwgNTQsIDIxNiwgMjQ3LCAyNTQsIDIzNiwgCisgICAgNTQsIDIxNSwgNzMsIDI1NCwgMjM2LCA1NCwgMjE2LCAxNjIsIDI1NCwgMjM2LCA1NCwgMjQ0LCAxNSwgMjU0LCAyMzYsIDU0LCAKKyAgICAyNDQsIDExNCwgMjU0LCAyMzYsIDU0LCAyMTksIDExMSwgMjU0LCAyMzYsIDU0LCAyMjAsIDExNiwgMjU0LCAyMzYsIDU0LCAKKyAgICAyNDUsIDE4NCwgMjU0LCAyMzYsIDU0LCAyMjgsIDE5NSwgMjU0LCAyMzYsIDU0LCAxMjMsIDI0MCwgMjEwLCAyNTQsIDIzNiwgCisgICAgNTQsIDExMywgMjQwLCAyMTAsIDI1NCwgMjM2LCA1NCwgMTM0LCAyNDAsIDIxMCwgMjU0LCAyMzYsIDU0LCAyNDQsIDExLCAKKyAgICAyNDAsIDIxMCwgMjU0LCAyMzYsIDU0LCAyNDQsIDgxLCAyNDAsIDIxMCwgMjU0LCAyMzYsIDU0LCAyMTksIDEyNSwgMjQwLCAKKyAgICAyMTAsIDI1NCwgMjM2LCA1NCwgMjIwLCAxMjIsIDI0MCwgMjEwLCAyNTQsIDIzNiwgNTQsIDI0NSwgMTkzLCAyNDAsIDIxMCwgCisgICAgMjU0LCAyMzYsIDU0LCAyMjgsIDIwMCwgMjQwLCAyMTAsIDI1NCwgMjM2LCA1NCwgMTIzLCAyMTYsIDE0NywgMjU0LCAyMzYsIAorICAgIDU0LCAxMTMsIDIxNiwgMTQ3LCAyNTQsIDIzNiwgNTQsIDEzNCwgMjE2LCAxNDcsIDI1NCwgMjM2LCA1NCwgMjQ0LCAxMSwgCisgICAgMjE2LCAxNDcsIDI1NCwgMjM2LCA1NCwgMjQ0LCA4MSwgMjE2LCAxNDcsIDI1NCwgMjM2LCA1NCwgMjE5LCAxMjUsIDIxNiwgCisgICAgMTQ3LCAyNTQsIDIzNiwgNTQsIDIyMCwgMTIyLCAyMTYsIDE0NywgMjU0LCAyMzYsIDU0LCAyNDUsIDE5MywgMjE2LCAxNDcsIAorICAgIDI1NCwgMjM2LCA1NCwgMjI4LCAyMDAsIDIxNiwgMTQ3LCAyNTQsIDIzNiwgNTQsIDIxNiwgMjQ4LCAyMTYsIDE0NywgMjU0LCAKKyAgICAyMzYsIDU0LCAyMTUsIDc0LCAyMTYsIDE0NywgMjU0LCAyMzYsIDU0LCAyMTYsIDE2MywgMjE2LCAxNDcsIDI1NCwgMjM2LCAKKyAgICA1NCwgMjQ0LCAxNiwgMjE2LCAxNDcsIDI1NCwgMjM2LCA1NCwgMjQ0LCAxMTUsIDIxNiwgMTQ3LCAyNTQsIDIzNiwgNTQsIAorICAgIDIxOSwgMTEyLCAyMTYsIDE0NywgMjU0LCAyMzYsIDU0LCAyMjAsIDExNywgMjE2LCAxNDcsIDI1NCwgMjM2LCA1NCwgMjQ1LCAKKyAgICAxODUsIDIxNiwgMTQ3LCAyNTQsIDIzNiwgNTQsIDIyOCwgMTk2LCAyMTYsIDE0NywgMjU0LCAyMzYsIDIxMiwgMTQsIDI1MiwgCisgICAgMTI4LCAyMTQsIDE3MywgMjU0LCAyMzYsIDIxMiwgMTQsIDI0NCwgOTIsIDIxOCwgNTksIDI1NCwgMjM2LCAyMTIsIDE0LCAKKyAgICAyMjEsIDE3NiwgMjE4LCA1OSwgMjU0LCAyMzYsIDIxMiwgMTQsIDIxNiwgMTY5LCAyMTgsIDU5LCAyNTQsIDIzNiwgMjEyLCAKKyAgICAxNCwgMjQ0LCA0LCAyMTgsIDU5LCAyNTQsIDIzNiwgMjQ2LCA4MSwgMjMxLCA5MCwgMjQ0LCA5MiwgMjE4LCA1OSwgMjU0LCAKKyAgICAyMzYsIDIzMiwgMTk5LCAyMzEsIDkwLCAyNDQsIDkyLCAyMTgsIDU5LCAyNTQsIDIzNiwgMjMxLCA5MCwgMjIxLCAxNzYsIAorICAgIDIxOCwgNTksIDI1NCwgMjM2LCAyMzEsIDkwLCAyMTYsIDE2OSwgMjE4LCA1OSwgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDEyMywgCisgICAgMjI0LCAyMSwgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDEyMywgMjQyLCAyNywgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDEyMywgCisgICAgMjQ2LCAxMDAsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAxODksIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyNDQsIDExNCwgMjYsIAorICAgIDI1NSwgNiwgMjUzLCAxOTQsIDI0NCwgODEsIDI0MCwgMjEwLCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMjQ0LCA4MSwgMjE2LCAKKyAgICAxNDcsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyNDQsIDExNSwgMjE2LCAxNDcsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyNDQsIAorICAgIDgxLCAyMTcsIDY3LCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMjE2LCAyNDgsIDIxNywgNjcsIDI2LCAyNTUsIDYsIDI1MywgCisgICAgMTk0LCAyNDQsIDExNSwgMjE3LCA2NywgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDEyMywgMjQwLCAyMTEsIDIxNywgNjcsIDI2LCAKKyAgICAyNTUsIDYsIDI1MywgMTk0LCAyNDQsIDgxLCAyNDAsIDIxMSwgMjE3LCA2NywgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDEyMywgCisgICAgMjE2LCAxNDgsIDIxNywgNjcsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyNDQsIDgxLCAyMTYsIDE0OCwgMjE3LCA2NywgMjYsIAorICAgIDI1NSwgNiwgMjUzLCAxOTQsIDI0NCwgODEsIDIxOCwgMTUwLCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMjE2LCAyNDgsIDIxOCwgCisgICAgMTUwLCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMjQ0LCAxMTUsIDIxOCwgMTUwLCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMTIzLCAKKyAgICAyNDAsIDIxMSwgMjE4LCAxNTAsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyNDQsIDgxLCAyNDAsIDIxMSwgMjE4LCAxNTAsIAorICAgIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAxMjMsIDIxNiwgMTQ4LCAyMTgsIDE1MCwgMjYsIDI1NSwgNiwgMjUzLCAxOTQsIDIxNiwgCisgICAgMjQ4LCAyMTYsIDE0OCwgMjE4LCAxNTAsIDI2LCAyNTUsIDYsIDI1MywgMTk0LCAyNDQsIDExNSwgMjE2LCAxNDgsIDIxOCwgCisgICAgMTUwLCAyNiwgMjU1LCA2LCAyNTMsIDE5NCwgMjE2LCAyNDgsIDIzMCwgMTY0LCAyNiwgMjU1LCA2LCAyNDEsIDIwNSwgMTIzLCAKKyAgICAyMjUsIDMxLCAyNiwgMjU1LCA2LCAyMTYsIDE4MSwgMTEwLCAyNiwgMjU1LCA2LCAyNDEsIDIwMSwgMTEwLCAyNiwgMjU1LCAKKyAgICA2LCAyNDUsIDEwNCwgMTA1LCAyNiwgMjU1LCA2LCAyMTYsIDE4MSwgMTA1LCAyNiwgMjU1LCA2LCAyNDksIDY1LCAxMTMsIAorICAgIDI0NiwgOTksIDI2LCAyNTUsIDYsIDI0NSwgMTA0LCAxMTMsIDI0NiwgOTksIDI2LCAyNTUsIDYsIDIxNSwgMjAzLCAxODksIAorICAgIDI2LCAyNTUsIDYsIDIxNSwgMjAzLCAyMTYsIDI0NywgMjYsIDI1NSwgNiwgMjE1LCAyMDMsIDIxNiwgMjQ4LCAyNTQsIDE0MSwgCisgICAgMTcsIDI2LCAyNTUsIDYsIDI0MSwgMjAxLCAyMTYsIDI0NywgMjYsIDI1NSwgNiwgMjMxLCA0MSwgMjE2LCAyNDcsIDI2LCAKKyAgICAyNTUsIDYsIDIxNiwgMTgxLCAyMTYsIDI0NywgMjYsIDI1NSwgNiwgMjE2LCAxODEsIDIxNiwgMTYyLCAyNiwgMjU1LCA2LCAKKyAgICAyMTUsIDIwMywgMjQ0LCAxMTQsIDI2LCAyNTUsIDYsIDIxNSwgMjAzLCAyNDQsIDExNSwgMjU0LCAxNDEsIDE3LCAyNiwgCisgICAgMjU1LCA2LCAyNDEsIDIwMSwgMjQ0LCAxMTQsIDI2LCAyNTUsIDYsIDIxNiwgMTgxLCAyNDQsIDExNCwgMjYsIDI1NSwgNiwgCisgICAgMjE2LCAxODEsIDEyMywgMjQwLCAyMTAsIDI2LCAyNTUsIDYsIDIxNiwgMTgxLCAxMzQsIDI0MCwgMjEwLCAyNiwgMjU1LCA2LCAKKyAgICAyNDUsIDEwNCwgMjQ0LCA4MSwgMjQwLCAyMTAsIDI2LCAyNTUsIDYsIDIxNSwgMjAzLCAyNDQsIDgxLCAyNDAsIDIxMCwgMjYsIAorICAgIDI1NSwgNiwgMjE2LCAxODEsIDI0NCwgODEsIDI0MCwgMjEwLCAyNiwgMjU1LCA2LCAyNTAsIDIyNywgMjQ0LCA4MSwgMjQwLCAKKyAgICAyMTAsIDI2LCAyNTUsIDYsIDIyOSwgMTgyLCAyNDQsIDgxLCAyNDAsIDIxMCwgMjYsIDI1NSwgNiwgMjE2LCAxODEsIDEyMywgCisgICAgMjE2LCAxNDcsIDI2LCAyNTUsIDYsIDIxNiwgMTgxLCAyNDQsIDgxLCAyMTYsIDE0NywgMjYsIDI1NSwgNiwgMjQ4LCA1NywgCisgICAgMjQ0LCA4MSwgMjMwLCAxNjQsIDI2LCAyNTUsIDYsIDIxOCwgMTE4LCAyNDQsIDExNSwgMjMwLCAxNjQsIDI2LCAxMjMsIAorICAgIDE2MywgNTAsIDI2LCAxMjMsIDE2MywgNSwgMjU0LCAxNDEsIDE3LCAyNiwgMTEzLCAyMTYsIDE2NywgNTAsIDI2LCAxMzQsIAorICAgIDIyNCwgMjAsIDUwLCAyNiwgMjExLCA0NSwgNTAsIDI2LCAyMTcsIDY4LCA1MCwgMjYsIDI0NiwgMTAxLCA1MCwgMjYsIDIyNiwgCisgICAgMjQ2LCA1MCwgMjYsIDExMywgMjI2LCAyNDUsIDUwLCAyNiwgMTM0LCAyMjYsIDI0NSwgNTAsIDI2LCAyNDQsIDExLCAyMjYsIAorICAgIDI0NSwgNTAsIDI2LCAyNDQsIDgxLCAyMjYsIDI0NSwgNTAsIDI2LCAyMzEsIDM1LCA1MCwgMjYsIDIzMywgMTU3LCAyNTIsIAorICAgIDEyOCwgNTAsIDI2LCAyMzIsIDE5NCwgNTAsIDI2LCAyMjYsIDEzMSwgNTAsIDI2LCAyMTEsIDE1OSwgNTAsIDI2LCAyNTMsIAorICAgIDI0MywgNTAsIDI2LCAyNTQsIDAsIDUwLCAyNiwgMjQyLCAxNDQsIDUwLCAyNiwgMjE1LCAxODYsIDI1MiwgMTI4LCA1MCwgCisgICAgMjYsIDIxMCwgODcsIDUwLCAyMjIsIDE5OCwgMjIwLCAxMTMsIDUwLCAyMjIsIDE5OCwgMjE0LCAxODUsIDUwLCAyMjIsIAorICAgIDE5OCwgMjIwLCAxNDIsIDUwLCAyMjIsIDE5OCwgMjIwLCAxMTEsIDUwLCAyMjIsIDE5OCwgMjQ3LCAyMTMsIDIyMCwgMTExLCAKKyAgICA1MCwgMjIyLCAxOTgsIDIxOSwgMTY4LCA1MCwgMjIyLCAxOTgsIDI0OCwgNTMsIDUwLCAyMjIsIDE5OCwgMjI0LCA2LCA1MCwgCisgICAgMjIyLCAxOTgsIDIyMCwgMTI5LCA1MCwgMjIyLCAxOTgsIDI0NiwgNjAsIDUwLCAyMjIsIDE5OCwgMjUzLCAyMzgsIDUwLCAKKyAgICAyMjIsIDE5OCwgMjUwLCAxNzEsIDUwLCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDIyNSwgMjEzLCAyMjUsIDE0MywgMjQ3LCAKKyAgICAxOTEsIDUsIDIyNSwgMjQsIDI0MSwgMjM1LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDIxNywgNDUsIDI0MSwgMjM1LCAyMjUsIAorICAgIDE0MywgMjQ3LCAxOTEsIDUsIDI1MCwgMjQ3LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI1MCwgMTAxLCAyMjUsIDE0MywgCisgICAgMjQ3LCAxOTEsIDUsIDIxMSwgMjIxLCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI0MSwgMjExLCAyMjUsIDE0MywgMjQ3LCAKKyAgICAxOTEsIDUsIDI0MywgODUsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjE2LCAxMTYsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgCisgICAgNzQsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjUxLCAxNjksIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjIwLCAyOSwgMjI1LCAKKyAgICAxNDMsIDI0NywgMTkxLCA1LCAyNDksIDI0NCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMzEsIDE4NCwgMjI1LCAxNDMsIAorICAgIDI0NywgMTkxLCA1LCAyMzEsIDEzNiwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMjEsIDIxNiwgMjI1LCAxNDMsIDI0NywgCisgICAgMTkxLCA1LCAyMzIsIDIzNywgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyNTEsIDE4OCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAKKyAgICAyNTAsIDIzMSwgMjI1LCAzNSwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyNDcsIDEzMywgMjI1LCAxNDMsIDI0NywgMTkxLCAKKyAgICA1LCAyNDksIDIyMywgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMTksIDg3LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI0OSwgCisgICAgMjI0LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI1MiwgNjMsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjIwLCAxNiwgMjI1LCAKKyAgICAxNDMsIDI0NywgMTkxLCA1LCAyNDAsIDI0OCwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyNDEsIDE3OCwgMjI1LCAxNDMsIAorICAgIDI0NywgMTkxLCA1LCAyNTEsIDExMiwgMjMzLCAzNiwgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyNTAsIDIyNCwgMjI1LCAKKyAgICAxNDMsIDI0NywgMTkxLCA1LCAyMjMsIDE1MywgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyNDUsIDIzMCwgMjI1LCAxNDMsIAorICAgIDI0NywgMTkxLCA1LCAyNDYsIDEwNywgMjI1LCAxNDMsIDI0NywgMTkxLCA1LCAyMTUsIDEwNSwgMjI1LCAxNDMsIDI0NywgCisgICAgMTkxLCA1LCAyNTIsIDY2LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDIyNSwgMzYsIDIxNSwgMjM1LCAyMjUsIDE0MywgMjQ3LCAKKyAgICAxOTEsIDUsIDIxMywgMTU5LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDIyNiwgMTgsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgCisgICAgMjIyLCAxOTAsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjMyLCAyMjQsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjI2LCAKKyAgICAxMTUsIDI1MiwgMTg0LCAyMjUsIDE0MywgMjQ3LCAxOTEsIDUsIDI0NCwgNDgsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgCisgICAgMjQyLCAxMzgsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjE4LCAxMTksIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgNCwgMjUzLCAKKyAgICAxNjgsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMjEyLCAzMiwgMjUyLCAxNDgsIDIyNSwgMTQzLCAyNDcsIDE5MSwgNSwgMzgsIAorICAgIDIyNiwgMjQ4LCA5MSwgMjMyLCA2MCwgMSwgNjEsIDIzMiwgNjAsIDEsIDc1LCAyMzIsIDYwLCAxLCAyNTMsIDE1OCwgMjMyLCAKKyAgICA2MCwgMSwgMjUyLCAxOSwgMjMyLCA2MCwgMSwgMjQzLCAyMDIsIDIzMiwgNjAsIDEsIDI0OSwgNjAsIDIzMiwgNjAsIDEsIAorICAgIDczLCAyMzIsIDYwLCAxLCAyMTIsIDk4LCAyMzIsIDYwLCAxLCAyMTAsIDE1OSwgMjMyLCA2MCwgMSwgMjE2LCAyMTAsIDIzMiwgCisgICAgNjAsIDEsIDIzNSwgMTQ0LCAyMzIsIDYwLCAxLCAyMzUsIDIzLCAyMzIsIDYwLCAxLCAyMjQsIDk2LCAyMzIsIDYwLCAxLCAKKyAgICAxNTYsIDIzMiwgNjAsIDEsIDE5MywgMjMyLCA2MCwgMSwgMjMwLCAyNSwgMjMyLCA2MCwgMSwgMjMwLCAxNjYsIDIzMiwgNjAsIAorICAgIDEsIDIyOCwgMTExLCAyMzIsIDYwLCAxLCA3MCwgMjMyLCA2MCwgMSwgMjI2LCAxMDUsIDIzMiwgNjAsIDEsIDIzNCwgNDcsIAorICAgIDIzMiwgNjAsIDEsIDE1MywgMjMyLCA2MCwgMSwgMjIyLCA5MSwgMjMyLCA2MCwgMSwgMjE3LCAxNTIsIDIzMiwgNjAsIDEsIAorICAgIDIxNSwgMTU5LCAyMzIsIDYwLCAxLCAyNTQsIDEyMywgMjMyLCA2MCwgMSwgMjQ1LCAxNTAsIDIzMiwgNjAsIDEsIDI0MiwgCisgICAgNjAsIDIzMiwgNjAsIDEsIDIxMSwgMTc4LCAyNTAsIDIzNywgMSwgNjEsIDI1MCwgMjM3LCAxLCAyMjYsIDkxLCAyNTAsIAorICAgIDIzNywgMSwgMjQ5LCA2MCwgMjUwLCAyMzcsIDEsIDE1NiwgMjUwLCAyMzcsIDEsIDIxNCwgMTE2LCAyNTAsIDIzNywgMSwgCisgICAgMTUzLCAyNTAsIDIzNywgMSwgMjMzLCA2MiwgMjUwLCAyMzcsIDEsIDI1NSwgNzUsIDI1MCwgMjM3LCAxLCAyMjQsIDk2LCAKKyAgICAyNTAsIDIzNywgMSwgMjUzLCAxNTgsIDI1MCwgMjM3LCAxLCAxOTMsIDI1MCwgMjM3LCAxLCA3NiwgMjUwLCAyMzcsIDEsIAorICAgIDI0OCwgMjIzLCAyNTAsIDIzNywgMSwgMjE3LCAxNTIsIDI1MCwgMjM3LCAxLCAyMjAsIDEwNCwgMjUwLCAyMzcsIDEsIDIyMCwgCisgICAgMTAzLCAyNTAsIDIzNywgMSwgMjIyLCA5MSwgMjUwLCAyMzcsIDEsIDI1MSwgNjUsIDI1MCwgMjM3LCAxLCA3MCwgMjUwLCAKKyAgICAyMzcsIDEsIDIyOCwgMTExLCAyNTAsIDIzNywgMSwgMjExLCAxNzgsIDI1MCwgMjM3LCAxLCAyMzAsIDI1LCAyNTAsIDIzNywgCisgICAgMSwgMjE1LCAxNTgsIDI1MCwgMjM3LCAxLCAyMjYsIDEwNSwgMjUwLCAyMzcsIDEsIDIxOCwgMjI2LCAyNTAsIDIzNywgMSwgCisgICAgNzMsIDI1MCwgMjM3LCAxLCA3NSwgMjUwLCAyMzcsIDEsIDIxNCwgMTEzLCAyNTAsIDIzNywgMSwgMjM1LCAyMywgMjUwLCAKKyAgICAyMzcsIDEsIDIzNSwgMTQsIDI1MCwgMjM3LCAxLCAyMjksIDE1MCwgMjUwLCAyMzcsIDEsIDIxNCwgMTE4LCAyNTAsIDIzNywgCisgICAgMSwgMjQzLCAyMDIsIDI1MCwgMjM3LCAxLCAyNDMsIDEzNywgMjUwLCAyMzcsIDEsIDIxOCwgMTY4LCAyNTAsIDIzNywgMSwgCisgICAgMjE4LCAxNjcsIDI1MCwgMjM3LCAxLCAyMjksIDc5LCAyNTAsIDIzNywgMSwgMjM2LCAzMywgMjUwLCAyMzcsIDEsIDI1MSwgCisgICAgNjQsIDI1MCwgMjM3LCAxLCAyMTUsIDE1OSwgMjUwLCAyMzcsIDEsIDIxNCwgMTE1LCAyNTAsIDIzNywgMSwgMjIyLCAxODAsIAorICAgIDI1MCwgMjM3LCAxLCAyMzEsIDEyOSwgMjUwLCAyMzcsIDEsIDIzMSwgMTI4LCAyNTAsIDIzNywgMSwgMjMxLCAxMjcsIDI1MCwgCisgICAgMjM3LCAxLCAyMzEsIDEyNiwgMjUwLCAyMzcsIDEsIDIzMywgNjEsIDI1MCwgMjM3LCAxLCAyNDUsIDIzNCwgMjUwLCAyMzcsIAorICAgIDEsIDIxNCwgMTE0LCA1NSwgMzIsIDEsIDYxLCA1NSwgMzIsIDEsIDI1MiwgNzUsIDU1LCAzMiwgMSwgMjM0LCAxODIsIDU1LCAKKyAgICAzMiwgMSwgMjQ4LCA5MCwgNTUsIDMyLCAxLCA3NSwgNTUsIDMyLCAxLCAyMTMsIDI1NSwgNTUsIDMyLCAxLCAyMTAsIDk0LCAKKyAgICA1NSwgMzIsIDEsIDI0MSwgMjM4LCA1NSwgMzIsIDEsIDIxNiwgMTk1LCA1NSwgMzIsIDEsIDczLCA1NSwgMzIsIDEsIDE3NiwgCisgICAgNTUsIDMyLCAxLCAyNDUsIDE3NCwgNTUsIDMyLCAxLCAyNDUsIDE1OSwgNTUsIDMyLCAxLCAyNDUsIDE1MCwgNTUsIDMyLCAxLCAKKyAgICAyNDUsIDc1LCA1NSwgMzIsIDEsIDc2LCA1NSwgMzIsIDEsIDIyNSwgMjIxLCA1NSwgMzIsIDEsIDIyMCwgNjMsIDU1LCAzMiwgCisgICAgMSwgMjMzLCAyMTcsIDU1LCAzMiwgMSwgMjQ1LCA5MiwgNTUsIDMyLCAxLCAyNDUsIDgyLCA1NSwgMzIsIDEsIDIxNywgMjIsIAorICAgIDU1LCAzMiwgMSwgNzAsIDU1LCAzMiwgMSwgMjQ1LCAxNzcsIDU1LCAzMiwgMSwgMjI1LCAxMzYsIDU1LCAzMiwgMSwgMjM0LCAKKyAgICAxMTksIDU1LCAzMiwgMSwgMjQ1LCAyMDIsIDU1LCAzMiwgMSwgMjQ1LCA4NCwgNTUsIDMyLCAxLCAyNTAsIDEzMSwgNTUsIAorICAgIDMyLCAxLCAyMzYsIDMzLCA1NSwgMzIsIDEsIDIxNCwgMTE4LCA1NSwgMzIsIDIyNywgMTk4LCAxMTAsIDU1LCAzMiwgMjI3LCAKKyAgICAxOTgsIDE4OSwgNTUsIDMyLCAyMjcsIDE5OCwgMjE2LCAyNDcsIDU1LCAzMiwgMjI3LCAxOTgsIDI0NCwgMTE0LCAyNDIsIAorICAgIDE1MywgMSwgMjU0LCAyMDQsIDI0MiwgMTUzLCAxLCAyNTIsIDE2MywgMjQyLCAxNTMsIDEsIDI0MiwgMjExLCAyNDIsIDE1MywgCisgICAgMSwgMjQ4LCAyMDQsIDI0MiwgMTUzLCAxLCAyNTQsIDIwMCwgMjQyLCAxNTMsIDEsIDIyNCwgNzksIDI0MiwgMTUzLCAxLCAKKyAgICAyMzUsIDE1NSwgMjQyLCAxNTMsIDEsIDI0MiwgMzksIDI0MiwgMTUzLCAxLCAyMTYsIDE1OCwgMjQyLCAxNTMsIDEsIDI0NSwgCisgICAgMTgzLCAyNDIsIDE1MywgMSwgMjMzLCAxOTAsIDI0MiwgMTUzLCAxLCAyMzMsIDExMywgMjQyLCAxNTMsIDEsIDIzMSwgMTc5LCAKKyAgICAyNDIsIDE1MywgMSwgMjI5LCAxODQsIDI0MiwgMTUzLCAxLCAyMzUsIDExOSwgMjQyLCAxNTMsIDEsIDIxNCwgMTM2LCAyNDIsIAorICAgIDE1MywgMSwgMjI2LCA2OSwgMjQyLCAxNTMsIDEsIDIyOCwgMTk1LCAyNDIsIDE1MywgMSwgMjIzLCAxNjUsIDI0MiwgMTUzLCAKKyAgICAxLCAyMjEsIDIxOCwgMjQyLCAxNTMsIDEsIDIxNywgNCwgMjQyLCAxNTMsIDEsIDIxMSwgMjM0LCAyNDIsIDE1MywgMSwgCisgICAgMjQ0LCAxNzgsIDI0MiwgMTUzLCAxLCAyMzYsIDM3LCAyNDIsIDE1MywgMSwgMjQwLCAxOTksIDI0MiwgMTUzLCAxLCAyMjYsIAorICAgIDEzOSwgMjQyLCAxNTMsIDEsIDIyOCwgMjAwLCAyNDAsIDIxMCwgMjE0LCAyMDksIDEsIDI1NCwgMTQ3LCAyMTQsIDIwOSwgMSwgCisgICAgMjUyLCAyNiwgMjE0LCAyMDksIDEsIDI0MywgMTA4LCAyMTQsIDIwOSwgMSwgMjM0LCAxMzIsIDIxNCwgMjA5LCAxLCAyNDgsIAorICAgIDU0LCAyMTQsIDIwOSwgMSwgMjQxLCA2OCwgMjE0LCAyMDksIDEsIDIxMSwgMjI3LCAyMTQsIDIwOSwgMSwgMjEwLCA4NSwgCisgICAgMjE0LCAyMDksIDEsIDI0MCwgMjQxLCAyMTQsIDIwOSwgMSwgMjE2LCAyMzAsIDIxNCwgMjA5LCAxLCAyMTAsIDIzMywgMjE0LCAKKyAgICAyMDksIDEsIDIzNCwgMjUwLCAyMTQsIDIwOSwgMSwgMjIwLCAyMCwgMjE0LCAyMDksIDEsIDIzMywgOTgsIDIxNCwgMjA5LCAKKyAgICAxLCAyMzEsIDY1LCAyMTQsIDIwOSwgMSwgMjQ4LCAyMSwgMjE0LCAyMDksIDEsIDIyNywgMTk0LCAyMTQsIDIwOSwgMSwgCisgICAgMjEwLCAxMywgMjE0LCAyMDksIDEsIDIyMSwgMjQ4LCAyMTQsIDIwOSwgMSwgMjU0LCAxOTYsIDIxNCwgMjA5LCAxLCAyMjQsIAorICAgIDE1MCwgMjE0LCAyMDksIDEsIDIyMiwgMjUsIDIxNCwgMjA5LCAxLCAyMjQsIDM1LCAyMTQsIDIwOSwgMSwgMjIzLCAxNDQsIAorICAgIDIxNCwgMjA5LCAxLCAyMTYsIDE5OSwgMjE0LCAyMDksIDEsIDI0MiwgMjQ0LCAyMTQsIDIwOSwgMSwgMTExLCAyMTQsIDIwOSwgCisgICAgMSwgNzMsIDIxNCwgMjA5LCAxLCA3MCwgMjE0LCAyMDksIDEsIDIxOCwgMTc5LCAyMTQsIDIwOSwgMjExLCAyMDksIDI0NywgCisgICAgMTcyLCA1NSwgMjI1LCAxNjksIDUsIDYxLCA1NSwgMjI1LCAxNjksIDUsIDczLCA1NSwgMjI1LCAxNjksIDUsIDcwLCA1NSwgCisgICAgMjI1LCAxNjksIDUsIDE3NiwgNTUsIDIyNSwgMTY5LCA1LCAyMzMsIDIxNywgNTUsIDIyNSwgMTY5LCA1LCAyNDMsIDEzNSwgCisgICAgNTUsIDIyNSwgMTY5LCA1LCAyNDIsIDExMywgNTUsIDIyNSwgMTY5LCA1LCAyMTEsIDE2NSwgNTUsIDIyNSwgMTY5LCA1LCAKKyAgICAyNTEsIDMzLCA1NSwgMjI1LCAxNjksIDUsIDIzNSwgMTQxLCA1NSwgMjI1LCAxNjksIDUsIDIzNSwgMTA4LCA1NSwgMjI1LCAKKyAgICAxNjksIDUsIDIxNywgMTA1LCA1NSwgMjI1LCAxNjksIDUsIDIxNSwgMTE4LCA1NSwgMjI1LCAxNjksIDUsIDI0OCwgMjIxLCAKKyAgICA1NSwgMjI1LCAxNjksIDUsIDI0OCwgMywgNTUsIDIyNSwgMTY5LCA1LCAyNDYsIDc4LCA1NSwgMjI1LCAxNjksIDUsIDIxNiwgCisgICAgMjA4LCA1NSwgMjI1LCAxNjksIDUsIDE5MCwgNTUsIDIyNSwgMTY5LCA1LCAyNTIsIDE5MSwgNTUsIDIyNSwgMTY5LCA1LCAKKyAgICAyNDQsIDE5NiwgNTUsIDIyNSwgMTY5LCA1LCAxOTcsIDU1LCAyMjUsIDE2OSwgNSwgMjI3LCAyMzcsIDU1LCAyMjUsIDE2OSwgCisgICAgNSwgMTg0LCA1NSwgMjI1LCAxNjksIDUsIDIzMCwgMjMwLCA1NSwgMjI1LCAxNjksIDUsIDIzMCwgMTAyLCA1NSwgMjI1LCAKKyAgICAxNjksIDUsIDE5MSwgNTUsIDIyNSwgMTY5LCA1LCAyMTQsIDI3LCA1NSwgMjI1LCAxNjksIDUsIDIxMywgMTc2LCA1NSwgCisgICAgMjI1LCAxNjksIDUsIDIwNSwgNTUsIDIyNSwgMTY5LCA1LCAyMjIsIDE0MCwgNTUsIDIyNSwgMTY5LCA1LCAyMzMsIDEzNSwgCisgICAgNTUsIDIyNSwgMTY5LCA1LCAyMDYsIDU1LCAyMjUsIDE2OSwgNSwgMjEwLCAxMTYsIDU1LCAyMjUsIDE2OSwgNSwgMjIwLCAKKyAgICAxMDIsIDU1LCAyMjUsIDE2OSwgNSwgMjE4LCAyMjMsIDU1LCAyMjUsIDE2OSwgNSwgMTYyLCA1NSwgMjI1LCAxNjksIDUsIAorICAgIDI1MywgMTg2LCA1NSwgMjI1LCAxNjksIDUsIDI1MywgMTg1LCA1NSwgMjI1LCAxNjksIDUsIDI1MywgMTg0LCA1NSwgMjI1LCAKKyAgICAxNjksIDUsIDIxMSwgMTQyLCA1NSwgMjI1LCAxNjksIDUsIDI0OCwgMjAwLCA1NSwgMjI1LCAxNjksIDUsIDI0OCwgMTk5LCAKKyAgICA1NSwgMjI1LCAxNjksIDUsIDI1MiwgMTcwLCA1NSwgMjI1LCAxNjksIDUsIDI1MSwgODUsIDU1LCAyMjUsIDE2OSwgMjExLCAKKyAgICAyMDksIDI0NywgMTcyLCA1NSwgMjI1LCAxNjksIDU0LCAxMTAsIDU1LCAyMjUsIDE2OSwgNTQsIDEwNSwgNTUsIDIyNSwgCisgICAgMTY5LCA1NCwgMjE2LCAyNDcsIDU1LCAyMjUsIDE2OSwgNTQsIDIxNSwgNzMsIDU1LCAyMjUsIDE2OSwgNTQsIDI0MCwgMjEwLCAKKyAgICAxODEsIDYsIDEsIDE5OSwgNzMsIDE4MSwgNiwgMSwgMTk5LCA3NSwgMTgxLCA2LCAxLCAxOTksIDYxLCAxODEsIDYsIDEsIAorICAgIDE5OSwgMjU0LCAyMDksIDE4MSwgNiwgMSwgMTk5LCA3NiwgMTgxLCA2LCAxLCAxOTksIDIyNiwgMTgzLCAxODEsIDYsIDEsIAorICAgIDIxOSwgMjUxLCA3MywgMTgxLCA2LCAxLCAyMTksIDI1MSwgNzUsIDE4MSwgNiwgMSwgMjE5LCAyNTEsIDYxLCAxODEsIDYsIAorICAgIDEsIDIxOSwgMjUxLCAyNTQsIDIwOSwgMTgxLCA2LCAxLCAyMTksIDI1MSwgNzYsIDE4MSwgNiwgMSwgMjE5LCAyNTEsIDIyNiwgCisgICAgMTgzLCAxODEsIDYsIDEsIDI1MywgMTY3LCAxODEsIDYsIDEsIDIyNiwgMTE2LCAxODEsIDYsIDEsIDIxMSwgMTk1LCAxODEsIAorICAgIDYsIDEsIDIxMSwgNDQsIDE4MSwgNiwgMSwgMjQyLCA2MCwgMTgxLCA2LCAxLCAyMjUsIDIxMSwgMTgxLCA2LCAxLCAyNTIsIAorICAgIDY2LCAxODEsIDYsIDEsIDIxNywgMTEsIDE4MSwgNiwgMSwgMjQ4LCA3NywgMTgxLCA2LCAxLCAyNTAsIDEyOCwgMTgxLCA2LCAKKyAgICAxLCAyMzUsIDEyNCwgMTgxLCA2LCAxLCAyMzQsIDE4OSwgMTgxLCA2LCAxLCAyNDMsIDgzLCAxODEsIDYsIDEsIDI0NSwgCisgICAgMjAyLCAxODEsIDYsIDEsIDIxMywgMjUwLCAxODEsIDYsIDEsIDI0NSwgNTksIDE4MSwgNiwgMSwgMjE2LCAxOTQsIDE4MSwgCisgICAgNiwgMSwgMjQ1LCA4MiwgMTgxLCA2LCAxLCAyMTAsIDkyLCAxODEsIDYsIDEsIDI0NSwgNzUsIDE4MSwgNiwgMSwgMjEwLCAKKyAgICA3MywgMTgxLCA2LCAxLCAyNDUsIDkyLCAxODEsIDYsIDEsIDI0NSwgMTc0LCAxODEsIDYsIDEsIDI0NSwgMTU5LCAxODEsIDYsIAorICAgIDEsIDI0NSwgMTUwLCAxODEsIDYsIDEsIDI0NSwgMTM4LCAxODEsIDYsIDEsIDIyNiwgMjE5LCAxODEsIDYsIDEsIDI0NSwgCisgICAgMzgsIDE4MSwgNCwgMSwgMTk5LCA3MywgMTgxLCA0LCAxLCAxOTksIDc1LCAxODEsIDQsIDEsIDE5OSwgNjEsIDE4MSwgNCwgCisgICAgMSwgMTk5LCAyNTQsIDIwOSwgMTgxLCA0LCAxLCAxOTksIDc2LCAxODEsIDQsIDEsIDE5OSwgMjI2LCAxODMsIDE4MSwgNCwgCisgICAgMSwgMjE5LCAyNTEsIDczLCAxODEsIDQsIDEsIDIxOSwgMjUxLCA3NSwgMTgxLCA0LCAxLCAyMTksIDI1MSwgNjEsIDE4MSwgCisgICAgNCwgMSwgMjE5LCAyNTEsIDI1NCwgMjA5LCAxODEsIDQsIDEsIDIxOSwgMjUxLCA3NiwgMTgxLCA0LCAxLCAyMTksIDI1MSwgCisgICAgMjI2LCAxODMsIDE4MSwgNCwgMSwgMjUzLCAxNjcsIDE4MSwgNCwgMSwgMjI2LCAxMTYsIDE4MSwgNCwgMSwgMjExLCAxOTUsIAorICAgIDE4MSwgNCwgMSwgMjExLCA0NCwgMTgxLCA0LCAxLCAyNDIsIDYwLCAxODEsIDQsIDEsIDIyNSwgMjExLCAxODEsIDQsIDEsIAorICAgIDI1MiwgNjYsIDE4MSwgNCwgMSwgMjE3LCAxMSwgMTgxLCA0LCAxLCAyNDgsIDc3LCAxODEsIDQsIDEsIDI1MCwgMTI4LCAKKyAgICAxODEsIDQsIDEsIDIzNSwgMTI0LCAxODEsIDQsIDEsIDIzNCwgMTg5LCAxODEsIDQsIDEsIDI0MywgODMsIDE4MSwgNCwgMSwgCisgICAgMjQ1LCAyMDIsIDE4MSwgNCwgMSwgMjEzLCAyNTAsIDE4MSwgNCwgMSwgMjQ1LCA1OSwgMTgxLCA0LCAxLCAyMTYsIDE5NCwgCisgICAgMTgxLCA0LCAxLCAyNDUsIDgyLCAxODEsIDQsIDEsIDIxMCwgOTIsIDE4MSwgNCwgMSwgMjQ1LCA3NSwgMTgxLCA0LCAxLCAKKyAgICAyMTAsIDczLCAxODEsIDQsIDEsIDI0NSwgOTIsIDE4MSwgNCwgMSwgMjQ1LCAxNzQsIDE4MSwgNCwgMSwgMjQ1LCAxNTksIAorICAgIDE4MSwgNCwgMSwgMjQ1LCAxNTAsIDE4MSwgNCwgMSwgMjQ1LCAxMzgsIDE4MSwgNCwgMSwgMjI2LCAyMTksIDE4MSwgNCwgMSwgCisgICAgMjQ1LCAzOCwgMjIwLCA2OSwgMSwgMjI1LCAyMDksIDIyMCwgNjksIDEsIDIxNiwgNSwgMjIwLCA2OSwgMSwgMjM0LCA5MSwgCisgICAgMjIwLCA2OSwgMSwgMjQ0LCAxNDcsIDIyMCwgNjksIDEsIDIxNiwgMTcyLCAyMjAsIDY5LCAxLCAyMTksIDU4LCAyMjAsIDY5LCAKKyAgICAxLCAyMTgsIDE0LCAyMjAsIDY5LCAxLCAyNTAsIDYxLCAyMjAsIDY5LCAxLCAyMTEsIDQ2LCAyMjAsIDY5LCAxLCAyNDAsIAorICAgIDIwOSwgMjIwLCA2OSwgMSwgMjUyLCA1LCAyMjAsIDY5LCAxLCAyNDgsIDg5LCAyMjAsIDY5LCAxLCAyNDMsIDEyMSwgMjIwLCAKKyAgICA2OSwgMSwgMjEzLCAxMjMsIDIyMCwgNjksIDEsIDIxNiwgMTc2LCAyMjAsIDY5LCAxLCAyMTAsIDIxLCAyMjAsIDY5LCAxLCAKKyAgICAyMzEsIDg5LCAyMjAsIDY5LCAxLCAyMzUsIDQ5LCAyMjAsIDY5LCAxLCAyMTEsIDIyNSwgMjIwLCA2OSwgMSwgMjQyLCA0OCwgCisgICAgMjIwLCA2OSwgMSwgMjMyLCAxNDIsIDIyMCwgNjksIDEsIDIzMCwgMTg5LCAyMjAsIDY5LCAxLCAyMzYsIDQwLCAyMjAsIDY5LCAKKyAgICAxLCAyNDUsIDIwMSwgMjIwLCA2OSwgMSwgMjUzLCAyMzEsIDIyMCwgNjksIDEsIDI1NCwgMjQ3LCAyMjAsIDY5LCAxLCAyMjYsIAorICAgIDE5NiwgMjIwLCA2OSwgMSwgMjExLCAyMTIsIDIyMCwgNjksIDEsIDIyNiwgMTMwLCAyMjAsIDY5LCAxLCAyNTQsIDIwOSwgCisgICAgMjIwLCA2OSwgMSwgMjIyLCAyMDgsIDIyMCwgNjksIDEsIDIyNywgMTk0LCAyMjAsIDY5LCAxLCAyNDUsIDIxNywgMjIwLCAKKyAgICA2OSwgMSwgMjU0LCAyMTQsIDIyMCwgNjksIDEsIDI0MCwgMTExLCAyMjAsIDY5LCAxLCAyMTQsIDE2MywgMjIwLCA2OSwgMSwgCisgICAgMjI2LCAyNTQsIDIyMCwgNjksIDEsIDIyNiwgMTc2LCAyMjAsIDY5LCAxLCAyMjYsIDIxOCwgMjIwLCA2OSwgMSwgMjUzLCAKKyAgICAxNzAsIDIyMCwgNjksIDEsIDI1NCwgMTksIDIyMCwgNjksIDEsIDIyNiwgMTU4LCAyMjAsIDY5LCAxLCAyNTQsIDE5MiwgCisgICAgMjIwLCA2OSwgMSwgMjQ1LCA4NiwgMjIwLCA2OSwgMSwgMjUzLCAyNTMsIDIyMCwgNjksIDEsIDI0NSwgMjI3LCAyMjAsIDY5LCAKKyAgICAxLCAyNDAsIDExOCwgMjIwLCA2OSwgMSwgMjExLCAxMywgMjI2LCAxNDEsIDEsIDI1NCwgMTcwLCAyMjYsIDE0MSwgMSwgCisgICAgMjUyLCAxOTEsIDIyNiwgMTQxLCAxLCAyMTcsIDEwNSwgMjI2LCAxNDEsIDEsIDIzNSwgMTQxLCAyMjYsIDE0MSwgMSwgMjExLCAKKyAgICAxNjUsIDIyNiwgMTQxLCAxLCAyMzQsIDEzMiwgMjI2LCAxNDEsIDEsIDI0OCwgNzYsIDIyNiwgMTQxLCAxLCAyMDUsIDIyNiwgCisgICAgMTQxLCAxLCAyMDYsIDIyNiwgMTQxLCAxLCAyMjAsIDI2LCAyMjYsIDE0MSwgMSwgMjQ4LCAyNSwgMjI2LCAxNDEsIDEsIAorICAgIDI1MCwgMjE1LCAyMjYsIDE0MSwgMSwgMjQzLCAxMzUsIDIyNiwgMTQxLCAxLCAyNDQsIDE5NiwgMjI2LCAxNDEsIDEsIDIyNCwgCisgICAgODYsIDIyNiwgMTQxLCAxLCAyMzUsIDksIDIyNiwgMTQxLCAxLCAyMzMsIDEzMCwgMjI2LCAxNDEsIDEsIDIzMCwgMjAwLCAKKyAgICAyMjYsIDE0MSwgMSwgMjI3LCAxNzgsIDIyNiwgMTQxLCAxLCAyMTIsIDMwLCAyMjYsIDE0MSwgMSwgMTYyLCAyMjYsIDE0MSwgCisgICAgMSwgMTkxLCAyMjYsIDE0MSwgMSwgNjEsIDIyNiwgMTQxLCAxLCA3NSwgMjI2LCAxNDEsIDEsIDczLCAyMjYsIDE0MSwgMSwgCisgICAgNzYsIDIyNiwgMTQxLCAxLCA3MCwgMjI2LCAxNDEsIDEsIDI1NSwgNzMsIDIyNiwgMTQxLCAxLCAyNDUsIDIwOSwgMjI2LCAKKyAgICAxNDEsIDEsIDIyNiwgMTgzLCAyMjYsIDE0MSwgMjEsIDIxMCwgODYsIDIyNiwgMTQxLCAyMSwgMTEwLCAyMjYsIDE0MSwgMjEsIAorICAgIDEwNSwgMjI2LCAxNDEsIDIxLCAxNTgsIDIyNiwgMTQxLCAyMSwgMTYxLCAyMjYsIDE0MSwgMjEsIDE4OSwgMjI2LCAxNDEsIAorICAgIDIxLCAxOTQsIDIyNiwgMTQxLCAyMSwgMTk4LCAyMjYsIDE0MSwgMjEsIDE5NSwgMjI2LCAxNDEsIDIxLCAyMDAsIDI0OSwgCisgICAgNjcsIDMsIDYxLCAyNDksIDY3LCAzLCA3NSwgMjQ5LCA2NywgMywgNzMsIDI0OSwgNjcsIDMsIDc2LCAyNDksIDY3LCAzLCAKKyAgICA3MCwgMjQ5LCA2NywgMywgMjM1LCAxNDEsIDI0OSwgNjcsIDMsIDIzNSwgNjgsIDI0OSwgNjcsIDMsIDE3NiwgMjQ5LCA2NywgCisgICAgMywgMjM0LCAxODIsIDI0OSwgNjcsIDMsIDIzNCwgOTIsIDI0OSwgNjcsIDMsIDIzNCwgMjgsIDI0OSwgNjcsIDMsIDIzMywgCisgICAgMjE3LCAyNDksIDY3LCAzLCAyMzMsIDEzNSwgMjQ5LCA2NywgMywgMjMzLCA1OCwgMjQ5LCA2NywgMywgMjMyLCAyNDEsIAorICAgIDI0OSwgNjcsIDMsIDIzMiwgMTU2LCAyNDksIDY3LCAzLCAyMzIsIDk4LCAyNDksIDY3LCAzLCAxODQsIDI0OSwgNjcsIDMsIAorICAgIDIzMSwgOTEsIDI0OSwgNjcsIDMsIDIzMCwgMjMwLCAyNDksIDY3LCAzLCAyMzAsIDE2MSwgMjQ5LCA2NywgMywgMjMwLCAKKyAgICAxMDIsIDI0OSwgNjcsIDMsIDE5NywgMjQ5LCA2NywgMywgMjI5LCAxMDcsIDI0OSwgNjcsIDMsIDIyOCwgMjMzLCAyNDksIAorICAgIDY3LCAzLCAyMjgsIDc0LCAyNDksIDY3LCAzLCAyMjcsIDIzNywgMjQ5LCA2NywgMywgMTkwLCAyNDksIDY3LCAzLCAyMjUsIAorICAgIDIyMSwgMjQ5LCA2NywgMywgMjI1LCAxMDgsIDI0OSwgNjcsIDMsIDIyNSwgMTYsIDI0OSwgNjcsIDMsIDIyNCwgMTUwLCAKKyAgICAyNDksIDY3LCAzLCAyMDUsIDI0OSwgNjcsIDMsIDIyMywgMTI4LCAyNDksIDY3LCAzLCAyMjMsIDM1LCAyNDksIDY3LCAzLCAKKyAgICAyMjIsIDIxMSwgMjQ5LCA2NywgMywgMjIyLCAxNDAsIDI0OSwgNjcsIDMsIDIwNiwgMjQ5LCA2NywgMywgMjIxLCAxODEsIAorICAgIDI0OSwgNjcsIDMsIDIxOSwgMTkxLCAyNDksIDY3LCAzLCAyMTksIDU4LCAyNDksIDY3LCAzLCAyMTgsIDgzLCAyNDksIDY3LCAKKyAgICAzLCAyMTcsIDEwNSwgMjQ5LCA2NywgMywgMjE3LCAyMiwgMjQ5LCA2NywgMywgMjE2LCAxMTcsIDI0OSwgNjcsIDMsIDExMSwgCisgICAgMjQ5LCA2NywgMywgMjE1LCAxMTgsIDI0OSwgNjcsIDMsIDIxMiwgNjUsIDI0OSwgNjcsIDMsIDIxMiwgMjIsIDI0OSwgNjcsIAorICAgIDMsIDIxMSwgMjUwLCAyNDksIDY3LCAzLCAyMTEsIDIyNywgMjQ5LCA2NywgMywgMjExLCAxNjUsIDI0OSwgNjcsIDMsIDIxMSwgCisgICAgMTYyLCAyNDksIDY3LCAzLCAyMTAsIDExNiwgMjQ5LCA2NywgMywgMjEwLCAyMywgMjM2LCAxLCAyNTQsIDI3LCAxLCAyNTQsIAorICAgIDE2OCwgMjM2LCAxLCAyNTQsIDI3LCAxLCAyNTIsIDI1LCAyMzYsIDEsIDI1NCwgMjcsIDEsIDI0MiwgMjAxLCAyMzYsIDEsIAorICAgIDI1NCwgMjcsIDEsIDI0OCwgMTg4LCAyMzYsIDEsIDI1NCwgMjcsIDEsIDI0MSwgMjM4LCAyMzYsIDEsIDI1NCwgMjcsIDEsIAorICAgIDIxMiwgMzAsIDIzNiwgMSwgMjU0LCAyNywgMSwgMjEwLCA5NywgMjM2LCAxLCAyNTQsIDI3LCAxLCAyNDEsIDE5NSwgMjM2LCAKKyAgICAxLCAyNTQsIDI3LCAxLCAyMTYsIDIyNiwgMjM2LCAxLCAyNTQsIDI3LCAxLCAyMTAsIDIzMiwgMjM2LCAxLCAyNTQsIDI3LCAKKyAgICAxLCAyMzQsIDIyNSwgMjM2LCAxLCAyNTQsIDI3LCAxLCAyMzMsIDkzLCAyMzYsIDEsIDI1NCwgMjcsIDEsIDIzMSwgNjUsIAorICAgIDIzNiwgMSwgMjU0LCAyNywgMSwgMjI3LCAxOTQsIDIzNiwgMSwgMjU0LCAyNywgMSwgMjIxLCAyNDksIDIzNiwgMSwgMjU0LCAKKyAgICAyNywgMSwgMjUzLCAxNjIsIDIzNiwgMSwgMjU0LCAyNywgMSwgMjI1LCAyMjEsIDIzNiwgMSwgMjU0LCAyNywgMSwgMjIyLCAKKyAgICAyNCwgMjM2LCAxLCAyNTQsIDI3LCAxLCAyMjQsIDM0LCAyMzYsIDEsIDI1NCwgMjcsIDEsIDIyMywgNjcsIDIzNiwgMSwgCisgICAgMjU0LCAyNywgMSwgMjIwLCAyMCwgMjM2LCAxLCAyNTQsIDI3LCAxLCAyMTcsIDM2LCAyMzYsIDEsIDI1NCwgMjcsIDIyMSwgCisgICAgMTczLCA1MCwgMjM2LCAxLCAyNTQsIDI3LCA1NCwgMTEwLCAyMzYsIDEsIDI1NCwgMjcsIDU0LCAxMDUsIDIzNiwgMSwgMjU0LCAKKyAgICAyNywgNTQsIDE1OCwgMjM2LCAxLCAyNTQsIDI3LCA1NCwgMjE2LCAyNDcsIDIzNiwgMSwgMjU0LCAyNywgNTQsIDIxNSwgNzMsIAorICAgIDIzNiwgMSwgMjU0LCAyNywgNTQsIDEyMywgMjQwLCAyMTAsIDIzNiwgMSwgMjU0LCAyNywgNTQsIDEyMywgMjE2LCAxNDcsIAorICAgIDIzNiwgMSwgMjU0LCAyNywgNTQsIDIxNiwgMjQ4LCAyMTYsIDE0NywgMjI1LCAxMTksIDEsIDI1NCwgMTY1LCAyMjUsIDExOSwgCisgICAgMSwgMjUyLCAyOCwgMjI1LCAxMTksIDEsIDI0MywgMTA5LCAyMjUsIDExOSwgMSwgMjQ4LCA1NiwgMjI1LCAxMTksIDEsIAorICAgIDI0MSwgMjM4LCAyMjUsIDExOSwgMSwgMjEyLCAzNywgMjI1LCAxMTksIDEsIDIxMCwgMTEwLCAyMjUsIDExOSwgMSwgMjQxLCAKKyAgICAxOTcsIDIyNSwgMTE5LCAxLCAyMTYsIDIzMCwgMjI1LCAxMTksIDEsIDIxMCwgMjMzLCAyMjUsIDExOSwgMSwgMjM0LCAyNTAsIAorICAgIDIyNSwgMTE5LCAxLCAyMzMsIDk5LCAyMjUsIDExOSwgMSwgMjMxLCA2NSwgMjI1LCAxMTksIDEsIDIyNywgMTk0LCAyMjUsIAorICAgIDExOSwgMSwgMjIwLCAxNDQsIDIyNSwgMTE5LCAxLCAyNTQsIDE5NiwgMjI1LCAxMTksIDEsIDIyNSwgMjIxLCAyMjUsIDExOSwgCisgICAgMSwgMjIyLCAyNSwgMjI1LCAxMTksIDEsIDIyNCwgMzksIDIyNSwgMTE5LCAxLCAyMjIsIDE4OSwgMjI1LCAxMTksIDEsIAorICAgIDIyMCwgMjAsIDIyNSwgMTE5LCAxLCAyMTcsIDQxLCAyMjUsIDExOSwgNTQsIDExMCwgMjI1LCAxMTksIDU0LCAyMTYsIDI0NywgCisgICAgMjI1LCAxMTksIDU0LCAyMTUsIDczLCAyMjUsIDExOSwgNTQsIDEyMywgMjQwLCAyMTAsIDIyNSwgMTE5LCA1NCwgMTA1LCAKKyAgICAyMjUsIDExOSwgNTQsIDE1OCwgMjI1LCAxMTksIDIxMSwgMjA5LCAyMjAsIDEzNywgMjMyLCA1OSwgMSwgNjEsIDIzMiwgNTksIAorICAgIDEsIDI1MywgMTU4LCAyMzIsIDU5LCAxLCAyNDMsIDIwMiwgMjMyLCA1OSwgMSwgMjQ5LCA2MCwgMjMyLCA1OSwgMSwgNzUsIAorICAgIDIzMiwgNTksIDEsIDIxNCwgMTA1LCAyMzIsIDU5LCAxLCA3MywgMjMyLCA1OSwgMSwgMjExLCAxMTcsIDIzMiwgNTksIDEsIAorICAgIDIzNSwgMjMsIDIzMiwgNTksIDEsIDE1NiwgMjMyLCA1OSwgMSwgMTkzLCAyMzIsIDU5LCAxLCAyMzAsIDI1LCAyMzIsIDU5LCAKKyAgICAxLCA3NiwgMjMyLCA1OSwgMSwgMTUzLCAyMzIsIDU5LCAxLCAyMTgsIDIyNiwgMjMyLCA1OSwgMSwgMjE3LCAxNTIsIDIzMiwgCisgICAgNTksIDEsIDcwLCAyMzIsIDU5LCAxLCAyNDUsIDYsIDIzMiwgNTksIDEsIDIyNCwgOTYsIDIzMiwgNTksIDEsIDIyMiwgOTEsIAorICAgIDIzMiwgNTksIDEsIDIxNSwgMTU5LCAyMzIsIDU5LCAxLCAyNTQsIDEyMywgMjMyLCA1OSwgMSwgMjQ1LCAxNTAsIDIzMiwgCisgICAgNTksIDEsIDIzMiwgNjIsIDIzMiwgNTksIDEsIDIyOCwgMTExLCAyMzIsIDU5LCAxLCAyNTEsIDY2LCAyMzIsIDU5LCAyMTUsIAorICAgIDIyMiwgNzgsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCA2MSwgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDc1LCAyMzEsIDQ4LCAKKyAgICAyNDEsIDE3NCwgMSwgNzMsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCA3NiwgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDE5MSwgCisgICAgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDIxMiwgNjUsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyNTIsIDE5MSwgMjMxLCA0OCwgCisgICAgMjQxLCAxNzQsIDEsIDI1MiwgMTkwLCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMTkwLCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgCisgICAgMTg0LCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMTk3LCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMjI5LCAyMjgsIDIzMSwgNDgsIAorICAgIDI0MSwgMTc0LCAxLCAyMjksIDEwNywgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDIyOSwgMTA2LCAyMzEsIDQ4LCAyNDEsIDE3NCwgCisgICAgMSwgMjA1LCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMjIzLCAxODcsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyMzMsIDEzNSwgCisgICAgMjMxLCA0OCwgMjQxLCAxNzQsIDEsIDIzNCwgMTMyLCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMjQxLCAxODksIDIzMSwgNDgsIAorICAgIDI0MSwgMTc0LCAxLCAyMDYsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyMjIsIDMzLCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgCisgICAgMjIxLCAxODEsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAxNzYsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyMjQsIDg4LCAyMzEsIAorICAgIDQ4LCAyNDEsIDE3NCwgMSwgMjE3LCAxMDUsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyMTcsIDEwNCwgMjMxLCA0OCwgMjQxLCAKKyAgICAxNzQsIDEsIDIxNywgMjIsIDIzMSwgNDgsIDI0MSwgMTc0LCAxLCAyMTcsIDIxLCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgCisgICAgMTExLCAyMzEsIDQ4LCAyNDEsIDE3NCwgMSwgMjQ4LCAyMjEsIDIzMSwgNDgsIDI0MSwgMTc0LCAxNiwgMjEzLCAxNzAsIAorICAgIDIzMSwgNDgsIDI0MSwgMTc0LCAxNiwgMjEzLCAxNjksIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDYxLCAyMzEsIDQ4LCAyNDksIAorICAgIDk0LCAxLCA3NSwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgNzMsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDc2LCAyMzEsIDQ4LCAKKyAgICAyNDksIDk0LCAxLCAxOTEsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDIxMiwgNjUsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDI1MiwgCisgICAgMTkxLCAyMzEsIDQ4LCAyNDksIDk0LCAxLCAxOTAsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDE4NCwgMjMxLCA0OCwgMjQ5LCAKKyAgICA5NCwgMSwgMTk3LCAyMzEsIDQ4LCAyNDksIDk0LCAxLCAyMjksIDEwNywgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMjA1LCAyMzEsIAorICAgIDQ4LCAyNDksIDk0LCAxLCAyMzMsIDEzNSwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMjM0LCAxMzIsIDIzMSwgNDgsIDI0OSwgCisgICAgOTQsIDEsIDI0MSwgMTg5LCAyMzEsIDQ4LCAyNDksIDk0LCAxLCAyMDYsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDI1NCwgMjMsIAorICAgIDIwNiwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMjIxLCAxODEsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDE3NiwgMjMxLCA0OCwgCisgICAgMjQ5LCA5NCwgMSwgMjI0LCA4OCwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMjE3LCAxMDUsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIAorICAgIDIxNywgMjIsIDIzMSwgNDgsIDI0OSwgOTQsIDEsIDExMSwgMjMxLCA0OCwgMjQ5LCA5NCwgMSwgMjQ4LCAyMjEsIDIzMSwgCisgICAgNDgsIDI0OSwgOTQsIDIzMiwgMTQ1LCAyMjIsIDIxNywgMjMxLCA0OCwgMjQ5LCA5NCwgMjMyLCAxNDUsIDIzNiwgNiwgMjM0LCAKKyAgICAxMjAsIDEsIDYxLCAyMzQsIDEyMCwgMjUsIDUsIDczLCAyMzQsIDEyMCwgMjUsIDUsIDcwLCAyMzQsIDEyMCwgMjUsIDUsIAorICAgIDE0OSwgMTUzLCAyMzQsIDEyMCwgMjUsIDUsIDc1LCAyMzQsIDEyMCwgMjUsIDUsIDc2LCAyMzQsIDEyMCwgMjUsIDIzMywgCisgICAgMjMsIDc4LCAyMzQsIDEyMCwgNSwgNTIsIDIyMiwgMjM0LCA1MSwgMjM0LCAxMjAsIDUsIDI1NCwgNzUsIDIzNCwgMTIwLCA1LCAKKyAgICAyMTMsIDE0NywgMjM0LCAxMjAsIDEsIDE3NiwgMjM0LCAxMjAsIDEsIDIzNCwgMTMyLCAyMzQsIDEyMCwgMSwgMjQzLCAxMzUsIAorICAgIDIzNCwgMTIwLCAxLCAyNDIsIDI0OSwgMjM0LCAxMjAsIDEsIDI1MSwgMzMsIDIzNCwgMTIwLCAxLCAyNTAsIDE1NywgMjM0LCAKKyAgICAxMjAsIDEsIDIzNSwgMTQxLCAyMzQsIDEyMCwgMSwgMjI3LCAxNjUsIDIzNCwgMTIwLCAxLCAyMTUsIDE1NiwgMjM0LCAxMjAsIAorICAgIDEsIDIxNSwgMTQ0LCAyMzQsIDEyMCwgMSwgMjQ4LCAxMzUsIDIzNCwgMTIwLCAxLCAyNDgsIDExOSwgMjM0LCAxMjAsIDEsIAorICAgIDIyOCwgMTEwLCAyMzQsIDEyMCwgMSwgMjE3LCAxMDUsIDIzNCwgMTIwLCAxLCAyMTYsIDIwOCwgMjM0LCAxMjAsIDEsIDI0OCwgCisgICAgMjIxLCAyMzQsIDEyMCwgMSwgMjQ4LCAyNSwgMjM0LCAxMjAsIDEsIDE5NywgMjM0LCAxMjAsIDEsIDE5MCwgMjM0LCAxMjAsIAorICAgIDEsIDIyNSwgMTQ3LCAyMzQsIDEyMCwgMSwgMjUyLCAxOTEsIDIzNCwgMTIwLCAxLCAyNTIsIDE4LCAyMzQsIDEyMCwgMSwgCisgICAgMTg0LCAyMzQsIDEyMCwgMSwgMTkxLCAyMzQsIDEyMCwgMSwgMjA1LCAyMzQsIDEyMCwgMSwgMjMzLCAxMzUsIDIzNCwgMTIwLCAKKyAgICAxLCAyMTQsIDI3LCAyMzQsIDEyMCwgMSwgMjIwLCAxMDIsIDIzNCwgMTIwLCAxLCAyMTgsIDIyMywgMjM0LCAxMjAsIDEsIAorICAgIDIwNiwgMjM0LCAxMjAsIDEsIDIxMCwgMTE2LCAyMzQsIDEyMCwgMSwgMTYyLCAyMzQsIDEyMCwgMSwgMjM0LCA0NiwgMjM0LCAKKyAgICAxMjAsIDEsIDIxNSwgMTI0LCAyMzQsIDEyMCwgNSwgMjUyLCAxNDEsIDQ4LCAyMzQsIDEyMCwgNSwgMjUwLCAyMjEsIDIzNCwgCisgICAgMTIwLCA1LCA1OSwgNTEsIDIzNCwgMTIwLCAyMTMsIDE1MiwgMjM0LCAxMjAsIDIxLCAxMTAsIDIzNCwgMTIwLCAyMSwgMTA1LCAKKyAgICAyMzQsIDEyMCwgMjEsIDE1OCwgMjM0LCAxMjAsIDIxLCAxNjEsIDIzNCwgMTIwLCA1NCwgMjE2LCAyNDcsIDIzNCwgMTIwLCAKKyAgICA1NCwgMjE1LCA3MywgMjM0LCAxMjAsIDU0LCAxMjMsIDI0MCwgMjEwLCAyMzQsIDEyMCwgNTQsIDEyMywgMjE2LCAxNDcsIAorICAgIDIzNCwgMTIwLCAyMjQsIDE0MSwgMjQ3LCAxMjAsIDIzNCwgMTIwLCAyMjQsIDE0MSwgNCwgMjUwLCAzNSwgMjM0LCAxMjAsIAorICAgIDIyNCwgMTQxLCAyNTAsIDM1LCAyMzQsIDEyMCwgMjI0LCAxNDEsIDI0OSwgMTM3LCAxMzAsIDIzNCwgMTIwLCAyMjQsIDE0MSwgCisgICAgMjMxLCAxODAsIDIzNCwgMTIwLCAyMjQsIDE0MSwgMjMyLCAxMTUsIDIzNCwgMTIwLCAyMjQsIDE0MSwgMjQ4LCAxNzgsIAorICAgIDIzNCwgMTIwLCAyMjQsIDE0MSwgNTIsIDI0OCwgMTc4LCAyMzQsIDEyMCwgMjI0LCAxNDEsIDIzMiwgMjA3LCA1NSwgMjE5LCAKKyAgICAyOCwgMjU0LCAzOCwgMSwgMjQxLCAyMzgsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMzMsIDkzLCA1NSwgMjE5LCAyOCwgCisgICAgMjU0LCAzOCwgMSwgMjQxLCAxOTUsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMzEsIDY1LCA1NSwgMjE5LCAyOCwgMjU0LCAKKyAgICAzOCwgMSwgMjI0LCAzNCwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIxMiwgMzAsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAKKyAgICAxLCAyMjAsIDIwLCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjIzLCA2NywgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIAorICAgIDI1MiwgMjUsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMTcsIDM2LCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjIxLCAKKyAgICAyMjYsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMzQsIDIyNSwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIyNywgCisgICAgMTk0LCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjM0LCAxMTYsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMjIsIDI0LCAKKyAgICA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjIxLCAyNDksIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyNDQsIDE1NCwgNTUsIAorICAgIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDI1NCwgMTcwLCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjUzLCAxNjEsIDU1LCAKKyAgICAyMTksIDI4LCAyNTQsIDM4LCAxLCAyNDgsIDIyLCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgMSwgMjQyLCAyMDEsIDU1LCAyMTksIAorICAgIDI4LCAyNTQsIDM4LCAxLCAyNDgsIDE4OCwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDI0MiwgMjM4LCA1NSwgMjE5LCAyOCwgCisgICAgMjU0LCAzOCwgMSwgMjE2LCAyMjYsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMTAsIDk2LCA1NSwgMjE5LCAyOCwgMjU0LCAKKyAgICAzOCwgMSwgMjQ4LCAxOSwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDEsIDIxMCwgMjMyLCA1NSwgMjE5LCAyOCwgMjU0LCAzOCwgCisgICAgMSwgMjE2LCAxOTcsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxLCAyMTYsIDE3OCwgNTUsIDIxOSwgMjgsIDI1NCwgMzgsIDU0LCAKKyAgICAxMTAsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCA1NCwgMjQ0LCAxMTQsIDU1LCAyMTksIDI4LCAyNTQsIDM4LCAxMzIsIDIzNSwgCisgICAgMjM4LCAyNTMsIDE3MiwgMSwgNjEsIDI1MywgMTcyLCAxLCAyNTUsIDczLCAyNTMsIDE3MiwgMSwgMjU0LCA3MywgMjUzLCAKKyAgICAxNzIsIDEsIDI1NSwgMzIsIDI1MywgMTcyLCAxLCAyNTQsIDEyMywgMjUzLCAxNzIsIDEsIDI1NSwgMzMsIDI1MywgMTcyLCAKKyAgICAxLCAyNTQsIDI0MywgMjUzLCAxNzIsIDEsIDI1NCwgMjM5LCAyNTMsIDE3MiwgMSwgNzUsIDI1MywgMTcyLCAxLCAyNDUsIAorICAgIDIwOSwgMjUzLCAxNzIsIDEsIDc2LCAyNTMsIDE3MiwgMSwgMjI2LCAxODMsIDI1MywgMTcyLCAxLCA3MywgMjUzLCAxNzIsIAorICAgIDEsIDIzNiwgMzMsIDI1MywgMTcyLCAxLCA3MCwgMjUzLCAxNzIsIDEsIDIxNCwgMTE4LCAyNTMsIDE3MiwgMSwgMjM0LCAKKyAgICAxODIsIDI1MywgMTcyLCAxLCAyMTEsIDE2MiwgMjUzLCAxNzIsIDEsIDIxMSwgMTI4LCAyNTMsIDE3MiwgMSwgMjExLCAxMzcsIAorICAgIDI1MywgMTcyLCAxLCAyNDMsIDYyLCAyNTMsIDE3MiwgMSwgMjQzLCAyNCwgMjUzLCAxNzIsIDEsIDI0MiwgMjM2LCAyNTMsIAorICAgIDE3MiwgMSwgMjUwLCAxOTAsIDI1MywgMTcyLCAxLCAyMzUsIDEyNiwgMjUzLCAxNzIsIDEsIDIxNywgMjIsIDI1MywgMTcyLCAKKyAgICAxLCAyMTYsIDE5NSwgMjUzLCAxNzIsIDEsIDI0OCwgOTAsIDI1MywgMTcyLCAxLCAyNDgsIDE3LCAyNTMsIDE3MiwgMSwgCisgICAgMjE1LCAxNTEsIDI1MywgMTcyLCAxLCAyMjUsIDIyMSwgMjUzLCAxNzIsIDEsIDI0NCwgMTU0LCAyNTMsIDE3MiwgMSwgMjUyLCAKKyAgICA3NSwgMjUzLCAxNzIsIDEsIDI1MiwgMTQsIDI1MywgMTcyLCAxLCAyMjksIDY0LCAyNTMsIDE3MiwgMSwgMjI4LCAyMzksIAorICAgIDI1MywgMTcyLCAxLCAyMjgsIDI0MCwgMjUzLCAxNzIsIDEsIDIyOSwgMTA3LCAyNTMsIDE3MiwgMSwgMjI3LCAxNTYsIDI1MywgCisgICAgMTcyLCAxLCAyMjgsIDEwNSwgMjUzLCAxNzIsIDEsIDIzMSwgOTEsIDI1MywgMTcyLCAxLCAyNDEsIDExNiwgMjUzLCAxNzIsIAorICAgIDEsIDIxMCwgMTY2LCAyNTMsIDE3MiwgMSwgMjExLCA0NywgMjUzLCAxNzIsIDEsIDIxMywgMjU1LCAyNTMsIDE3MiwgMSwgCisgICAgMjIzLCAxMjgsIDI1MywgMTcyLCAxLCAyMzMsIDU4LCAyNTMsIDE3MiwgMSwgMjIxLCAxODEsIDI1MywgMTcyLCAxLCAyMTAsIAorICAgIDk0LCAyNTMsIDE3MiwgMSwgMjIwLCA2MywgMjUzLCAxNzIsIDEsIDIxMCwgNzQsIDI1MywgMTcyLCAxLCAyMTksIDE5OCwgCisgICAgMjUzLCAxNzIsIDEsIDIxOCwgMTkzLCAyNTMsIDE3MiwgMSwgMjQxLCAyMzgsIDI1MywgMTcyLCAyNTUsIDIxLCA3OCwgMjE2LCAKKyAgICA3OSwgMTEzLCAxNzAsIDExNywgMTIzLCA1OSwgMjI0LCAxNDAsIDQsIDExMywgMTcwLCAxMTcsIDEyMywgNTksIDIyNCwgCisgICAgMTQwLCAyMzMsIDg1LCAxMTMsIDE3MCwgMTE3LCAxMjMsIDU5LCAyMjQsIDE0MCwgMjMzLCA4NSwgMTIzLCA1OSwgMTE3LCAKKyAgICAxMTMsIDE3MCwgMjI0LCAxNDAsIDIzMywgODUsIDExMywgMjIyLCAyMzIsIDExNywgMTIzLCAyMjIsIDIzNCwgMjI0LCAxNDAsIAorICAgIDIzMywgODUsIDEyMywgMjIyLCAyMzQsIDExNywgMTEzLCAyMjIsIDIzMiwgMjI0LCAxNDAsIDIzNSwgMjE4LCAyMjUsIDI1NCwgCisgICAgMSwgMjU0LCAxNjgsIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgMjUyLCAyNSwgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyNDIsIAorICAgIDIwMSwgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyNDgsIDE4OCwgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyNDEsIDIzOCwgCisgICAgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyMTIsIDMwLCAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDIxMCwgOTcsIDIzNSwgMjE4LCAKKyAgICAyMjUsIDI1NCwgMSwgMjQxLCAxOTUsIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgMjE2LCAyMjYsIDIzNSwgMjE4LCAyMjUsIAorICAgIDI1NCwgMSwgMjEwLCAyMzIsIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgMjM0LCAyMjUsIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgCisgICAgMjMzLCA5MywgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyMzEsIDY1LCAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDIyNywgMTk0LCAKKyAgICAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDIyMSwgMjQ5LCAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDI1MywgMTYyLCAyMzUsIAorICAgIDIxOCwgMjI1LCAyNTQsIDEsIDIyNSwgMjIxLCAyMzUsIDIxOCwgMjI1LCAyNTQsIDEsIDIyMiwgMjQsIDIzNSwgMjE4LCAKKyAgICAyMjUsIDI1NCwgMSwgMjI0LCAzNCwgMjM1LCAyMTgsIDIyNSwgMjU0LCAxLCAyMjMsIDY3LCAyMzUsIDIxOCwgMjI1LCAyNTQsIAorICAgIDEsIDIyMCwgMjAsIDIzNSwgMjE4LCAyMjUsIDI1NCwgMSwgMjE3LCAzNiwgMjM1LCAyMTgsIDIyNSwgMjU0LCA1NCwgMTEwLCAKKyAgICAyMzUsIDIxOCwgMjI1LCAyNTQsIDU0LCAxMDUsIDIzNSwgMjE4LCAyMjUsIDI1NCwgNTQsIDE1OCwgMjM1LCAyMTgsIDIyNSwgCisgICAgMjU0LCA1NCwgMTYxLCAyMzUsIDIxOCwgMjI1LCAyNTQsIDU0LCAyMTYsIDI0NywgMjM1LCAyMTgsIDIyNSwgMjU0LCA1NCwgCisgICAgMjE1LCA3MywgMjM1LCAyMTgsIDIyNSwgMjU0LCA1NCwgMTIzLCAyNDAsIDIxMCwgMjM1LCAyMTgsIDIyNSwgMjU0LCA1NCwgCisgICAgMTIzLCAyMTYsIDE0NywgMjM1LCAyMTgsIDIyNiwgNzIsIDEsIDI1NCwgMTY4LCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjUyLCAKKyAgICAyNSwgMjM1LCAyMTgsIDIyNiwgNzIsIDEsIDI0MiwgMjAxLCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjQ4LCAxODgsIDIzNSwgCisgICAgMjE4LCAyMjYsIDcyLCAxLCAyNDEsIDIzOCwgMjM1LCAyMTgsIDIyNiwgNzIsIDEsIDIxMiwgMjksIDIzNSwgMjE4LCAyMjYsIAorICAgIDcyLCAxLCAyMTAsIDk3LCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjQxLCAxOTUsIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAKKyAgICAyMTYsIDIyNiwgMjM1LCAyMTgsIDIyNiwgNzIsIDEsIDIxMCwgMjMyLCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjM0LCAyMjUsIAorICAgIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAyMzMsIDkzLCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjMxLCA2NCwgMjM1LCAyMTgsIAorICAgIDIyNiwgNzIsIDEsIDIyNywgMTk0LCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjIxLCAyNDksIDIzNSwgMjE4LCAyMjYsIDcyLCAKKyAgICAxLCAyMjUsIDIyMSwgMjM1LCAyMTgsIDIyNiwgNzIsIDEsIDIyMiwgMjQsIDIzNSwgMjE4LCAyMjYsIDcyLCAxLCAyMjAsIAorICAgIDIwLCAyMzUsIDIxOCwgMjI2LCA3MiwgMSwgMjE3LCAzNiwgMjM1LCAyMTgsIDIyNiwgNzIsIDU0LCAxMTAsIDIzNSwgMjE4LCAKKyAgICAyMjYsIDcyLCA1NCwgMTA1LCAyMzUsIDIxOCwgMjI2LCA3MiwgNTQsIDE1OCwgMjM1LCAyMTgsIDIyNiwgNzIsIDU0LCAxNjEsIAorICAgIDIzNSwgMjE4LCAyMjYsIDcyLCA1NCwgMjE2LCAyNDcsIDIzNSwgMjE4LCAyMjYsIDcyLCA1NCwgMjE1LCA3MywgMjM1LCAKKyAgICAyMTgsIDIyNiwgNzIsIDU0LCAxMjMsIDI0MCwgMjEwLCAyMzUsIDIxOCwgMjI2LCA3MiwgNTQsIDEyMywgMjE2LCAxNDcsIAorICAgIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCA2MSwgNTUsIDIwMSwgMSwgMjExLCAzNywgNjEsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIAorICAgIDI1NCwgMjQzLCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgNzMsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDczLCA1NSwgMjAxLCAxLCAKKyAgICAyMTEsIDM3LCA3NSwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDc2LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjI2LCAyMzQsIAorICAgIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDIyNiwgMjM0LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU1LCAyNSwgNTUsIDIwMSwgMSwgCisgICAgMjExLCAzNywgMjU1LCAyNSwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1NCwgMjQyLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAKKyAgICAyNTQsIDI0MiwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1NCwgMjE2LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDIxNiwgCisgICAgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1NCwgMjM3LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDIzNywgNTUsIDIwMSwgCisgICAgMSwgMjI2LCAxNDksIDI1NCwgMjU1LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDI1NSwgNTUsIDIwMSwgMSwgMjI2LCAKKyAgICAxNDksIDI1NCwgMjQxLCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjQ1LCAxMiwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjQ1LCAKKyAgICAxMiwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1MywgMTY3LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTMsIDE2NywgNTUsIAorICAgIDIwMSwgMSwgMjI2LCAxNDksIDI1NCwgMjI0LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDIyNCwgNTUsIDIwMSwgMSwgCisgICAgMjI2LCAxNDksIDI1NCwgMjM1LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDIzNSwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIAorICAgIDIyNiwgMjMzLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyMjYsIDIzMywgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1NCwgMTc4LCAKKyAgICA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDE3OCwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1NCwgMjM0LCA1NSwgMjAxLCAKKyAgICAxLCAyMjYsIDE0OSwgMjQ1LCAxNjEsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyNDUsIDE1OSwgNTUsIDIwMSwgMSwgMjI2LCAKKyAgICAxNDksIDI1NCwgMTIzLCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjU0LCAyMzIsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgCisgICAgMjMyLCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjQ1LCAxMzEsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI0NSwgMTMxLCA1NSwgCisgICAgMjAxLCAxLCAyMjYsIDE0OSwgMjQ1LCAxNDcsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI0NSwgMTQ3LCA1NSwgMjAxLCAxLCAKKyAgICAyMjYsIDE0OSwgMjQ1LCAxMTgsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI0NSwgMTE4LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAKKyAgICAyNTQsIDExNSwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI0NSwgMTM4LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDIzMSwgCisgICAgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI0NSwgMTA4LCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjI2LCAxNzUsIDU1LCAyMDEsIAorICAgIDEsIDIyNiwgMTQ5LCAyNDAsIDExMywgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI0NSwgMjE1LCA1NSwgMjAxLCAxLCAyMTEsIAorICAgIDM3LCAyNDUsIDIxNSwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1NCwgNDUsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1NCwgCisgICAgNDUsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyMzUsIDE4MSwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjM1LCAxODEsIDU1LCAKKyAgICAyMDEsIDEsIDIyNiwgMTQ5LCAyMjYsIDE1OSwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjI2LCAxNTksIDU1LCAyMDEsIDEsIAorICAgIDIyNiwgMTQ5LCAyNTQsIDQxLCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDQxLCA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgCisgICAgMjU0LCAyMzAsIDU1LCAyMDEsIDEsIDIyNiwgMTQ5LCAyNTMsIDIzNywgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1NCwgMjI4LCAKKyAgICA1NSwgMjAxLCAxLCAyMjYsIDE0OSwgMjUzLCAyMzEsIDU1LCAyMDEsIDEsIDIxMSwgMzcsIDI1MywgMjMxLCA1NSwgMjAxLCAKKyAgICAxLCAyMjYsIDE0OSwgMjQ1LCA3NSwgNTUsIDIwMSwgMSwgMjExLCAzNywgMjQ1LCA3NSwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIAorICAgIDI1MywgMjA2LCA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTMsIDIwNiwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDI1NCwgMjI1LCAKKyAgICA1NSwgMjAxLCAxLCAyMTEsIDM3LCAyNTQsIDIyNSwgNTUsIDIwMSwgMSwgMjI2LCAxNDksIDIyNiwgMTQwLCA1NSwgMjAxLCAKKyAgICAxLCAyMjYsIDE0OSwgMjUyLCAxMjUsIDIyMiwgMTI3LCAyMSwgMTEwLCAyMjIsIDEyNywgMjEsIDEwNSwgMjIyLCAxMjcsIAorICAgIDIxLCAxNTgsIDIyMiwgMTI3LCAyMSwgMTYxLCAyMjIsIDEyNywgMjEsIDE4OSwgMjIyLCAxMjcsIDIxLCAxOTQsIDIyMiwgCisgICAgMTI3LCAyMSwgMTk4LCAyMjIsIDEyNywgMjEsIDE5NSwgMjIyLCAxMjcsIDIxLCAyMDAsIDIyMiwgMTI3LCA1NCwgMjE2LCAKKyAgICAyNDcsIDIyMiwgMTI3LCA1NCwgMjE1LCA3MywgMjIyLCAxMjcsIDU0LCAyMTYsIDE2MiwgMjIyLCAxMjcsIDU0LCAyNDQsIAorICAgIDE1LCAyMjIsIDEyNywgNTQsIDI0NCwgMTE0LCAyMjIsIDEyNywgNTQsIDIxOSwgMTExLCAyMjIsIDEyNywgNTQsIDIyMCwgCisgICAgMTE2LCAyMjIsIDEyNywgNTQsIDI0NSwgMTg0LCAyMjIsIDEyNywgNTQsIDIyOCwgMTk1LCAyMjIsIDEyNywgNTQsIDEyMywgCisgICAgMjQwLCAyMTAsIDIyMiwgMTI3LCA1NCwgMTEzLCAyNDAsIDIxMCwgMjIyLCAxMjcsIDU0LCAxMzQsIDI0MCwgMjEwLCAyMjIsIAorICAgIDEyNywgNTQsIDI0NCwgMTEsIDI0MCwgMjEwLCAyMjIsIDEyNywgNTQsIDI0NCwgODEsIDI0MCwgMjEwLCAyMjIsIDEyNywgCisgICAgNTQsIDIxOSwgMTI1LCAyNDAsIDIxMCwgMjIyLCAxMjcsIDU0LCAyMjAsIDEyMiwgMjQwLCAyMTAsIDIyMiwgMTI3LCA1NCwgCisgICAgMjQ1LCAxOTMsIDI0MCwgMjEwLCAyMjIsIDEyNywgNTQsIDIyOCwgMjAwLCAyNDAsIDIxMCwgMjIyLCAxMjcsIDI0NCwgMiwgCisgICAgMTIzLCAyNDIsIDI3LCAyMjIsIDEyNywgMjQ0LCAyLCAxMjMsIDIyNCwgMjEsIDIyMiwgMTI3LCAyNDQsIDIsIDEyMywgMjE2LCAKKyAgICAxNjgsIDIyMiwgMTI3LCAyNDQsIDIsIDExMywgMjE2LCAxNjYsIDExOCwgNSwgMjUwLCAyNTUsIDExOCwgNSwgMjU0LCA3NSwgCisgICAgMTE4LCA1LCAyMTMsIDE0NywgMTE4LCA1LCAyMzUsIDEwMiwgMTE4LCA1LCAyMTQsIDE2MSwgMTE4LCAxLCA2MSwgMTE4LCAxLCAKKyAgICAyNTUsIDczLCAxMTgsIDEsIDczLCAxMTgsIDEsIDIzNiwgMzMsIDExOCwgMSwgNzAsIDExOCwgMSwgMjE0LCAxMTgsIDExOCwgCisgICAgMSwgMTQ5LCAxNTMsIDExOCwgMSwgMTQ5LCAyMjIsIDE4MCwgMTE4LCAxLCAxNDksIDE1NiwgMTE4LCAxLCAxNDksIDIzMiwgCisgICAgMTg1LCAxMTgsIDEsIDc1LCAxMTgsIDEsIDI1NCwgMjAxLCAxMTgsIDEsIDc2LCAxMTgsIDEsIDI1MywgMTkyLCAxMTgsIDEsIAorICAgIDE3NiwgMTE4LCAxLCAyMzQsIDEzMiwgMTE4LCAxLCAyNDMsIDEzNSwgMTE4LCAxLCAyNDIsIDI0OSwgMTE4LCAxLCAyMjksIAorICAgIDc3LCAxMTgsIDEsIDI1MSwgMzMsIDExOCwgMSwgMjUwLCAxNTcsIDExOCwgMSwgMjM1LCAxNDEsIDExOCwgMSwgMjM1LCAKKyAgICAxMTQsIDExOCwgMSwgMjI3LCAxNjUsIDExOCwgMSwgMjE1LCAxNTYsIDExOCwgMSwgMjE1LCAxNDQsIDExOCwgMSwgMjQ4LCAKKyAgICAxMzUsIDExOCwgMSwgMjQ4LCAxMTksIDExOCwgMSwgMjI4LCAxMTAsIDExOCwgMSwgMjE3LCAxMDUsIDExOCwgMSwgMjE2LCAKKyAgICAyMDgsIDExOCwgMSwgMjQ4LCAyMjEsIDExOCwgMSwgMjQ4LCAyNSwgMTE4LCAxLCAxOTcsIDExOCwgMSwgMTkwLCAxMTgsIDEsIAorICAgIDIyNSwgMTQ3LCAxMTgsIDEsIDI1MiwgMTkxLCAxMTgsIDEsIDI1MiwgMTgsIDExOCwgMSwgMTg0LCAxMTgsIDEsIDE5MSwgCisgICAgMTE4LCAxLCAyMDUsIDExOCwgMSwgMjMzLCAxMzUsIDExOCwgMSwgMjE0LCAyNywgMTE4LCAxLCAyMjAsIDEwMiwgMTE4LCAxLCAKKyAgICAyMTgsIDIyMywgMTE4LCAxLCAyMDYsIDExOCwgMSwgMTYyLCAxMTgsIDEsIDIzMiwgMTg0LCAxMTgsIDEsIDU1LCAzNiwgCisgICAgMjMyLCAxNzUsIDExOCwgMSwgNTUsIDM2LCAyMjIsIDE3OSwgMTE4LCAxLCA1NSwgMzYsIDIyOCwgOTIsIDExOCwgMjUsIDUsIAorICAgIDI1NSwgNzMsIDExOCwgMjUsIDUsIDI1MiwgMTUsIDI1NSwgNzMsIDExOCwgMjUsIDUsIDczLCAxMTgsIDI1LCA1LCAyMzYsIAorICAgIDMzLCAxMTgsIDI1LCA1LCA3MCwgMTE4LCAyNSwgNSwgMjE0LCAxMTgsIDExOCwgMjUsIDUsIDE0OSwgMTUzLCAxMTgsIDI1LCAKKyAgICA1LCAxNDksIDIyMiwgMTgwLCAxMTgsIDI1LCA1LCAxNDksIDE1NiwgMTE4LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NSwgMTE4LCAKKyAgICAyNSwgNSwgNzUsIDExOCwgMjUsIDUsIDI1NCwgMjAxLCAxMTgsIDI1LCA1LCA3NiwgMTE4LCAyNSwgNSwgMjUzLCAxOTIsIAorICAgIDExOCwgMjEzLCAxNTIsIDExOCwgMjQ4LCAxNzgsIDExOCwgNTIsIDI0OCwgMTc4LCAxMTgsIDIyNCwgMTQxLCAyNDcsIDEyMCwgCisgICAgMTE4LCAyMjQsIDE0MSwgNTIsIDI0NywgMTIwLCAxMTgsIDIyNCwgMTQxLCAyMzIsIDIxMywgMTE4LCAyMjQsIDE0MSwgMjQ5LCAKKyAgICAxMzcsIDEzMCwgMTE4LCAyMjQsIDE0MSwgMjMyLCAxMTUsIDExOCwgNTQsIDExMCwgMTE4LCA1NCwgMTA1LCAxMTgsIDU0LCAKKyAgICAxNTgsIDExOCwgNTQsIDE2MSwgMTE4LCA1NCwgMTg5LCAxMTgsIDU0LCAxOTQsIDExOCwgNTQsIDE5OCwgMTE4LCA1NCwgCisgICAgMTk1LCAxMTgsIDU0LCAyMDAsIDExOCwgNTQsIDIxNiwgMjQ3LCAxMTgsIDU0LCAyMTUsIDczLCAxMTgsIDU0LCAyMTYsIAorICAgIDE2MiwgMTE4LCA1NCwgMjQ0LCAxNSwgMTE4LCA1NCwgMjQ0LCAxMTQsIDExOCwgNTQsIDIxOSwgMTExLCAxMTgsIDU0LCAKKyAgICAyMjAsIDExNiwgMTE4LCA1NCwgMjQ1LCAxODQsIDExOCwgNTQsIDIyOCwgMTk1LCAxMTgsIDU0LCAxMjMsIDI0MCwgMjEwLCAKKyAgICAxMTgsIDU0LCAxMjMsIDIxNiwgMTQ3LCAxMTgsIDIxLCAyMTAsIDg2LCAxMTgsIDIxLCAxMTAsIDExOCwgMjEsIDEwNSwgCisgICAgMTE4LCAyMSwgMTU4LCAxMTgsIDIxLCAxNjEsIDExOCwgMjEsIDE4OSwgMTE4LCAyMSwgMTk0LCAxMTgsIDIxLCAxOTgsIAorICAgIDExOCwgMjEsIDE5NSwgMTE4LCAyMSwgMjAwLCAyMzQsIDI0NCwgNSwgMjUwLCAyNTUsIDIzNCwgMjQ0LCA1LCAyNTQsIDc1LCAKKyAgICAyMzQsIDI0NCwgNSwgMjEzLCAxNDcsIDIzNCwgMjQ0LCAxLCA2MSwgMjM0LCAyNDQsIDEsIDI1NSwgNzMsIDIzNCwgMjQ0LCAKKyAgICAxLCA3MywgMjM0LCAyNDQsIDEsIDIzNiwgMzMsIDIzNCwgMjQ0LCAxLCA3MCwgMjM0LCAyNDQsIDEsIDIxNCwgMTE4LCAyMzQsIAorICAgIDI0NCwgMSwgNzUsIDIzNCwgMjQ0LCAxLCAyNTQsIDIwMSwgMjM0LCAyNDQsIDEsIDc2LCAyMzQsIDI0NCwgMSwgMjUzLCAKKyAgICAxOTIsIDIzNCwgMjQ0LCAxLCAxNzYsIDIzNCwgMjQ0LCAxLCAyMzQsIDEzMiwgMjM0LCAyNDQsIDEsIDI0MywgMTM1LCAyMzQsIAorICAgIDI0NCwgMSwgMjQyLCAyNDksIDIzNCwgMjQ0LCAxLCAyMjksIDc3LCAyMzQsIDI0NCwgMSwgMjUxLCAzMywgMjM0LCAyNDQsIAorICAgIDEsIDI1MCwgMTU3LCAyMzQsIDI0NCwgMSwgMjM1LCAxNDEsIDIzNCwgMjQ0LCAxLCAyMzUsIDExNCwgMjM0LCAyNDQsIDEsIAorICAgIDIyNywgMTY1LCAyMzQsIDI0NCwgMSwgMjE1LCAxNTYsIDIzNCwgMjQ0LCAxLCAyMTUsIDE0NCwgMjM0LCAyNDQsIDEsIDI0OCwgCisgICAgMTM1LCAyMzQsIDI0NCwgMSwgMjQ4LCAxMjQsIDIzNCwgMjQ0LCAxLCAyNDgsIDExOSwgMjM0LCAyNDQsIDEsIDIyMywgMzksIAorICAgIDIzNCwgMjQ0LCAxLCAyMjgsIDExMCwgMjM0LCAyNDQsIDEsIDIxNywgMTA1LCAyMzQsIDI0NCwgMSwgMjE2LCAyMDgsIDIzNCwgCisgICAgMjQ0LCAxLCAyNDgsIDIyMSwgMjM0LCAyNDQsIDEsIDI0OCwgMjUsIDIzNCwgMjQ0LCAxLCAxOTcsIDIzNCwgMjQ0LCAxLCAKKyAgICAxOTAsIDIzNCwgMjQ0LCAxLCAyMjUsIDE0NywgMjM0LCAyNDQsIDEsIDI1MiwgMTkxLCAyMzQsIDI0NCwgMSwgMjUyLCAxOCwgCisgICAgMjM0LCAyNDQsIDEsIDE4NCwgMjM0LCAyNDQsIDEsIDE5MSwgMjM0LCAyNDQsIDEsIDIwNSwgMjM0LCAyNDQsIDEsIDIzMywgCisgICAgMTM1LCAyMzQsIDI0NCwgMSwgMjE0LCAyNywgMjM0LCAyNDQsIDEsIDIyMCwgMTAyLCAyMzQsIDI0NCwgMSwgMjE4LCAyMjMsIAorICAgIDIzNCwgMjQ0LCAxLCAyMDYsIDIzNCwgMjQ0LCAxLCAxNjIsIDIzNCwgMjQ0LCAyNSwgNSwgMjU1LCA3MywgMjM0LCAyNDQsIAorICAgIDI1LCA1LCA3MywgMjM0LCAyNDQsIDI1LCA1LCAyMzYsIDMzLCAyMzQsIDI0NCwgMjUsIDUsIDcwLCAyMzQsIDI0NCwgMjUsIAorICAgIDUsIDIxNCwgMTE4LCAyMzQsIDI0NCwgMjUsIDUsIDc1LCAyMzQsIDI0NCwgMjUsIDUsIDI1NCwgMjAxLCAyMzQsIDI0NCwgCisgICAgMjUsIDUsIDc2LCAyMzQsIDI0NCwgMjUsIDUsIDI1MywgMTkyLCAyMzQsIDI0NCwgNSwgMjEzLCAxNTIsIDIzNCwgMjQ0LCA1LCAKKyAgICAyMjcsIDIwNSwgMjM0LCAyNDQsIDI1NSwgMjEsIDUwLCAyMzQsIDI0NCwgMjQ1LCAxMjEsIDUwLCAyMzQsIDI0NCwgNTQsIAorICAgIDUwLCAyMzQsIDI0NCwgMjIxLCAxNzMsIDc4LCAyMzQsIDI0NCwgNTIsIDIyMSwgMTczLCA3OCwgMjM0LCAyNDQsIDI0OCwgCisgICAgMTc4LCAyMzQsIDI0NCwgNTIsIDI0OCwgMTc4LCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMjIsIDE4LCAyMTksIDM2LCAyMTksIAorICAgIDQ0LCAxLCAyMTcsIDgwLCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyNTIsIDE2OCwgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjUxLCAKKyAgICAyMywgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjQ4LCAyMDMsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDI0MywgMTIwLCAyMTksIAorICAgIDM2LCAyMTksIDQ0LCAxLCAyMzEsIDIxMCwgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjI5LCA3NCwgMjE5LCAzNiwgMjE5LCA0NCwgCisgICAgMSwgMjMzLCAxMTIsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDIyOSwgMjEzLCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMTQsIDI0LCAKKyAgICAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMjYsIDczLCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMTEsIDg0LCAyMTksIDM2LCAyMTksIAorICAgIDQ0LCAxLCAyMjMsIDE2OCwgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjQyLCAzNywgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjM0LCAKKyAgICAyNDgsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDIzNSwgMTM2LCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMjcsIDE2MiwgMjE5LCAKKyAgICAzNiwgMjE5LCA0NCwgMSwgMjU0LCAyMDksIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDI0NSwgMjA3LCAyMTksIDM2LCAyMTksIAorICAgIDQ0LCAxLCAyMzYsIDM0LCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMTQsIDIwOCwgMjE5LCAzNiwgMjE5LCA0NCwgMSwgMjI2LCAKKyAgICAyMjIsIDIxOSwgMzYsIDIxOSwgNDQsIDEsIDI0NSwgMTk3LCAyMTksIDM2LCAyMTksIDQ0LCAxLCAyMzEsIDIyMywgMjE5LCAKKyAgICAzNiwgMjE5LCA0NCwgMjEsIDIxMCwgODYsIDIxOSwgMzYsIDIxOSwgNDQsIDIxLCAxMTAsIDIxOSwgMzYsIDIxOSwgNDQsIAorICAgIDIxLCAxMDUsIDIxOSwgMzYsIDIxOSwgNDQsIDIxLCAxNTgsIDIxOSwgMzYsIDIxOSwgNDQsIDIxLCAxNjEsIDIxOSwgMzYsIAorICAgIDIxOSwgNDQsIDIxLCAxODksIDIxOSwgMzYsIDIxOSwgNDQsIDIxLCAxOTQsIDIxOSwgMzYsIDIxOSwgNDQsIDIxLCAxOTgsIAorICAgIDIxOSwgMzYsIDIxOSwgNDQsIDIxLCAxOTUsIDIxOSwgMzYsIDIxOSwgNDQsIDIxLCAyMDAsIDI1MCwgMTUxLCA1LCAyNTAsIAorICAgIDI1NSwgMjUwLCAxNTEsIDUsIDI1NCwgNzUsIDI1MCwgMTUxLCA1LCAyMTMsIDE0NywgMjUwLCAxNTEsIDEsIDI1NSwgNzMsIAorICAgIDI1MCwgMTUxLCAxLCA3MywgMjUwLCAxNTEsIDEsIDcwLCAyNTAsIDE1MSwgMSwgNzUsIDI1MCwgMTUxLCAxLCAyMzUsIDEwLCAKKyAgICAyNTAsIDE1MSwgMSwgMjM0LCAxMzEsIDI1MCwgMTUxLCAxLCAyNDMsIDEzMiwgMjUwLCAxNTEsIDEsIDI0MiwgMjQ4LCAyNTAsIAorICAgIDE1MSwgMSwgMjI5LCA3NiwgMjUwLCAxNTEsIDEsIDI1MSwgMzIsIDI1MCwgMTUxLCAxLCAyNTAsIDE1NiwgMjUwLCAxNTEsIAorICAgIDEsIDIzNSwgMTQwLCAyNTAsIDE1MSwgMSwgMjM1LCAxMTMsIDI1MCwgMTUxLCAxLCAyMjcsIDE2NCwgMjUwLCAxNTEsIDEsIAorICAgIDIxNSwgMTU1LCAyNTAsIDE1MSwgMSwgMjE1LCAxNDMsIDI1MCwgMTUxLCAxLCAyNDgsIDEzNCwgMjUwLCAxNTEsIDEsIDI0OCwgCisgICAgMTE4LCAyNTAsIDE1MSwgMSwgMjI4LCAxMDksIDI1MCwgMTUxLCAxLCAyMTcsIDEwMSwgMjUwLCAxNTEsIDEsIDIxNiwgMjA3LCAKKyAgICAyNTAsIDE1MSwgMSwgMjQ4LCAyMjAsIDI1MCwgMTUxLCAxLCAyNDgsIDI0LCAyNTAsIDE1MSwgMSwgMjI5LCAyMjUsIDI1MCwgCisgICAgMTUxLCAxLCAyMjYsIDg5LCAyNTAsIDE1MSwgMSwgMjI1LCAxNDYsIDI1MCwgMTUxLCAxLCAyNTIsIDE4OSwgMjUwLCAxNTEsIAorICAgIDEsIDI1MiwgMTcsIDI1MCwgMTUxLCAxLCAyMzEsIDIzNywgMjUwLCAxNTEsIDEsIDIxMCwgMTY3LCAyNTAsIDE1MSwgMSwgCisgICAgMjExLCAxMDMsIDI1MCwgMTUxLCAxLCAyMjMsIDE4NCwgMjUwLCAxNTEsIDEsIDIzMywgMTM0LCAyNTAsIDE1MSwgMSwgMjEyLCAKKyAgICA2NCwgMjUwLCAxNTEsIDEsIDIyMiwgMzEsIDI1MCwgMTUxLCAxLCAyNDIsIDQ2LCAyNTAsIDE1MSwgMjUsIDUsIDYxLCAyNTAsIAorICAgIDE1MSwgMjUsIDUsIDczLCAyNTAsIDE1MSwgMjUsIDUsIDIzNiwgMzMsIDI1MCwgMTUxLCAyNSwgNSwgNzAsIDI1MCwgMTUxLCAKKyAgICAyNSwgNSwgMjE0LCAxMTgsIDI1MCwgMTUxLCAyNSwgNSwgNzUsIDI1MCwgMTUxLCAyNSwgNSwgMjU0LCAyMDEsIDI1MCwgCisgICAgMTUxLCAyNSwgNSwgNzYsIDI1MCwgMTUxLCAyNSwgNSwgMjUzLCAxOTIsIDI1MCwgMTUxLCAyNSwgNSwgMjI2LCAyMTksIAorICAgIDI1MCwgMTUxLCAxNDQsIDc4LCAyNTAsIDE1MSwgMjUzLCAxOTMsIDc4LCAyNTAsIDE1MSwgMjEzLCAxNTIsIDI1MCwgMTUxLCAKKyAgICAyMzEsIDIzNSwgMjUwLCAxNTEsIDIxLCAyMTAsIDg2LCAyNTAsIDE1MSwgMjEsIDExMCwgMjUwLCAxNTEsIDIxLCAxMDUsIAorICAgIDI1MCwgMTUxLCAyMSwgMTU4LCAyNTAsIDE1MSwgMjEsIDE2MSwgMjUwLCAxNTEsIDIxLCAxODksIDI1MCwgMTUxLCAyMSwgCisgICAgMTk0LCAyNTAsIDE1MSwgMjEsIDE5OCwgMjUwLCAxNTEsIDIxLCAxOTUsIDI1MCwgMTUxLCAyMSwgMjAwLCAyNTAsIDE1MSwgCisgICAgMjIxLCAxNzMsIDc4LCAyNTAsIDE1MSwgMjQ4LCAxNzgsIDI1MCwgMTUxLCA1MiwgMjQ4LCAxNzgsIDI1MCwgMTUxLCAyMjQsIAorICAgIDEzLCA3OCwgMTc0LCA1LCAyNTAsIDI1NSwgMTc0LCA1LCAyNTQsIDc1LCAxNzQsIDUsIDIxMywgMTQ3LCAxNzQsIDEsIDYxLCAKKyAgICAxNzQsIDEsIDI1NSwgNzMsIDE3NCwgMSwgNzMsIDE3NCwgMSwgMjM2LCAzMywgMTc0LCAxLCA3MCwgMTc0LCAxLCAyMTQsIAorICAgIDExOCwgMTc0LCAxLCAxNDksIDE1MywgMTc0LCAxLCAxNDksIDIyMiwgMTgwLCAxNzQsIDEsIDE0OSwgMTU2LCAxNzQsIDEsIAorICAgIDE0OSwgMjMyLCAxODUsIDE3NCwgMSwgNzUsIDE3NCwgMSwgMjU0LCAyMDEsIDE3NCwgMSwgNzYsIDE3NCwgMSwgMjUzLCAKKyAgICAxOTIsIDE3NCwgMSwgMTc2LCAxNzQsIDEsIDIzNCwgMTMyLCAxNzQsIDEsIDI0MywgMTM1LCAxNzQsIDEsIDI0MiwgMjQ5LCAKKyAgICAxNzQsIDEsIDIyOSwgNzcsIDE3NCwgMSwgMjUxLCAzMywgMTc0LCAxLCAyNTAsIDE1NywgMTc0LCAxLCAyMzUsIDE0MSwgCisgICAgMTc0LCAxLCAyMzUsIDExNCwgMTc0LCAxLCAyMjcsIDE2NSwgMTc0LCAxLCAyMTUsIDE1NiwgMTc0LCAxLCAyMTUsIDE0NCwgCisgICAgMTc0LCAxLCAyNDgsIDEzNSwgMTc0LCAxLCAyNDgsIDExOSwgMTc0LCAxLCAyMjgsIDExMCwgMTc0LCAxLCAyMTcsIDEwNSwgCisgICAgMTc0LCAxLCAyMTYsIDIwOCwgMTc0LCAxLCAyNDgsIDIyMSwgMTc0LCAxLCAyNDgsIDI1LCAxNzQsIDEsIDE5NywgMTc0LCAxLCAKKyAgICAxOTAsIDE3NCwgMSwgMjI1LCAxNDcsIDE3NCwgMSwgMjUyLCAxOTEsIDE3NCwgMSwgMjUyLCAxOCwgMTc0LCAxLCAxODQsIAorICAgIDE3NCwgMSwgMTkxLCAxNzQsIDEsIDIwNSwgMTc0LCAxLCAyMzMsIDEzNSwgMTc0LCAxLCAyMzIsIDE4NCwgMTc0LCAxLCAKKyAgICAyMTQsIDI3LCAxNzQsIDEsIDIyMCwgMTAyLCAxNzQsIDEsIDIxOCwgMjIzLCAxNzQsIDEsIDIwNiwgMTc0LCAxLCAxNjIsIAorICAgIDE3NCwgMjUsIDUsIDI1NSwgNzMsIDE3NCwgMjUsIDUsIDczLCAxNzQsIDI1LCA1LCAyMzYsIDMzLCAxNzQsIDI1LCA1LCA3MCwgCisgICAgMTc0LCAyNSwgNSwgMjE0LCAxMTgsIDE3NCwgMjUsIDUsIDE0OSwgMTUzLCAxNzQsIDI1LCA1LCAxNDksIDIyMiwgMTgwLCAKKyAgICAxNzQsIDI1LCA1LCAxNDksIDE1NiwgMTc0LCAyNSwgNSwgMTQ5LCAyMzIsIDE4NSwgMTc0LCAyNSwgNSwgNzUsIDE3NCwgMjUsIAorICAgIDUsIDI1NCwgMjAxLCAxNzQsIDI1LCA1LCA3NiwgMTc0LCAyNSwgNSwgMjUzLCAxOTIsIDE3NCwgNSwgMjEzLCAxNTIsIDE3NCwgCisgICAgNSwgMjUzLCAxNzUsIDE3NCwgNSwgMjM1LCAxMDIsIDE3NCwgNSwgMjE0LCAxNjEsIDE3NCwgMjI2LCAyMDQsIDE3NCwgMjQ4LCAKKyAgICAxNzgsIDE3NCwgNTIsIDI0OCwgMTc4LCAxNzQsIDI1NSwgMjEsIDUwLCAxNzQsIDIyMCwgMTM3LCAxNzQsIDIxLCAyMTAsIAorICAgIDg2LCAxNzQsIDIxLCAxMTAsIDE3NCwgMjEsIDEwNSwgMTc0LCAyMSwgMTU4LCAxNzQsIDIxLCAxNjEsIDE3NCwgMjEsIDE4OSwgCisgICAgMTc0LCAyMSwgMTk0LCAxNzQsIDIxLCAxOTgsIDE3NCwgMjEsIDE5NSwgMTc0LCAyMSwgMjAwLCAyMTcsIDY5LCAxLCA2MSwgCisgICAgMjE3LCA2OSwgMSwgMjU1LCA3MywgMjE3LCA2OSwgMSwgNzMsIDIxNywgNjksIDEsIDIzNiwgMzMsIDIxNywgNjksIDEsIDcwLCAKKyAgICAyMTcsIDY5LCAxLCAyMTQsIDExOCwgMjE3LCA2OSwgMSwgNzUsIDIxNywgNjksIDEsIDI1NCwgMjAxLCAyMTcsIDY5LCAxLCAKKyAgICA3NiwgMjE3LCA2OSwgMSwgMjUzLCAxOTIsIDIxNywgNjksIDEsIDE3NiwgMjE3LCA2OSwgMSwgMjM0LCAxMzIsIDIxNywgNjksIAorICAgIDEsIDI0MywgMTM1LCAyMTcsIDY5LCAxLCAyNDIsIDI0OSwgMjE3LCA2OSwgMSwgMjI5LCA3NywgMjE3LCA2OSwgMSwgMjUxLCAKKyAgICAzMywgMjE3LCA2OSwgMSwgMjUwLCAxNTcsIDIxNywgNjksIDEsIDIzNSwgMTQxLCAyMTcsIDY5LCAxLCAyMzUsIDExNCwgCisgICAgMjE3LCA2OSwgMSwgMjI3LCAxNjUsIDIxNywgNjksIDEsIDIxNSwgMTU2LCAyMTcsIDY5LCAxLCAyMTUsIDE0NCwgMjE3LCAKKyAgICA2OSwgMSwgMjQ4LCAxMzUsIDIxNywgNjksIDEsIDI0OCwgMTE5LCAyMTcsIDY5LCAxLCAyMjgsIDExMCwgMjE3LCA2OSwgMSwgCisgICAgMjE3LCAxMDUsIDIxNywgNjksIDEsIDIxNiwgMjA4LCAyMTcsIDY5LCAxLCAyNDgsIDIyMSwgMjE3LCA2OSwgMSwgMjQ4LCAKKyAgICAyNSwgMjE3LCA2OSwgMSwgMTk3LCAyMTcsIDY5LCAxLCAxOTAsIDIxNywgNjksIDEsIDIyNSwgMTQ3LCAyMTcsIDY5LCAxLCAKKyAgICAyNTIsIDE5MSwgMjE3LCA2OSwgMSwgMjUyLCAxOCwgMjE3LCA2OSwgMSwgMTg0LCAyMTcsIDY5LCAxLCAxOTEsIDIxNywgNjksIAorICAgIDEsIDIwNSwgMjE3LCA2OSwgMSwgMjMzLCAxMzUsIDIxNywgNjksIDEsIDIxNCwgMjcsIDIxNywgNjksIDEsIDIyMCwgMTAyLCAKKyAgICAyMTcsIDY5LCAxLCAyMDYsIDIxNywgNjksIDEsIDE2MiwgMjE3LCA2OSwgMSwgMjIyLCAxNzksIDIxNywgNjksIDUsIDI1NCwgCisgICAgNzUsIDIxNywgNjksIDUsIDIxMywgMTQ3LCAyMTcsIDY5LCAyNSwgNSwgMjU1LCA3MywgMjE3LCA2OSwgMjUsIDUsIDczLCAKKyAgICAyMTcsIDY5LCAyNSwgNSwgMjM2LCAzMywgMjE3LCA2OSwgMjUsIDUsIDcwLCAyMTcsIDY5LCAyNSwgNSwgMjE0LCAxMTgsIAorICAgIDIxNywgNjksIDI1LCA1LCA3NSwgMjE3LCA2OSwgMjUsIDUsIDI1NCwgMjAxLCAyMTcsIDY5LCAyNSwgNSwgNzYsIDIxNywgCisgICAgNjksIDI1LCA1LCAyNTMsIDE5MiwgMjE3LCA2OSwgNSwgMjEzLCAxNTIsIDIxNywgNjksIDUsIDIyNywgMjA1LCAyMTcsIDY5LCAKKyAgICAyMSwgMjEwLCA4NiwgMjE3LCA2OSwgMjEsIDExMCwgMjE3LCA2OSwgMjEsIDEwNSwgMjE3LCA2OSwgMjEsIDE1OCwgMjE3LCAKKyAgICA2OSwgMjEsIDE2MSwgMjE3LCA2OSwgMjEsIDE4OSwgMjE3LCA2OSwgMjEsIDE5NCwgMjE3LCA2OSwgMjEsIDE5OCwgMjE3LCAKKyAgICA2OSwgMjEsIDE5NSwgMjE3LCA2OSwgMjEsIDIwMCwgMTUsIDUsIDYxLCAxNSwgNSwgMTE1LCAzMCwgNjEsIDE1LCA1LCAxMTUsIAorICAgIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDExNSwgMzAsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIDExNSwgMzAsIDE2MiwgCisgICAgMTUsIDUsIDExNSwgMzAsIDIzNiwgMzUsIDE1LCA1LCAxMTUsIDMwLCAyMzMsIDExNiwgMjQyLCA5NCwgMTUsIDUsIDExNSwgCisgICAgMzAsIDIzMCwgNjEsIDE1LCA1LCAxMTUsIDMwLCAyMjIsIDIxLCAxNSwgNSwgMjU1LCA3NSwgMTUsIDUsIDI1NSwgMjUsIDE1LCAKKyAgICA1LCAyNTUsIDI2LCAzMCwgMjUzLCAyMjksIDE1LCA1LCAyNTUsIDI2LCAzMCwgMjQ2LCA2NywgMjQyLCA5NCwgMTUsIDUsIAorICAgIDI1NSwgMjYsIDMwLCAyNDMsIDExOCwgMTUsIDUsIDI1NSwgMjYsIDMwLCAyNDMsIDEwNSwgMjE2LCAyMzksIDE1LCA1LCAKKyAgICAyNTUsIDI2LCAzMCwgMTYyLCAxNSwgNSwgMjU1LCAyNiwgMzAsIDIzNiwgMzYsIDI0MiwgOTQsIDE1LCA1LCAyNTUsIDI2LCAKKyAgICAzMCwgMjM2LCA5LCAxNSwgNSwgMjU1LCAyNiwgMzAsIDIzMywgMTE3LCAxNSwgNSwgMjU1LCAyNiwgMzAsIDIyMCwgNDgsIAorICAgIDE1LCA1LCAyNTUsIDI2LCAzMCwgMTA0LCA5NiwgMTA0LCA5NiwgNzAsIDE1LCA1LCAyNTUsIDI2LCAyNDIsIDk0LCAxNSwgNSwgCisgICAgMjU1LCAyMywgMTUsIDUsIDI1NSwgMjQsIDMwLCAyNTIsIDE2MCwgMTUsIDUsIDI1NSwgMjQsIDMwLCAyNDMsIDEwNSwgMjE2LCAKKyAgICAyMzksIDE1LCA1LCAyNTUsIDI0LCAzMCwgMjMxLCA5MiwgOTYsIDI0NSwgMTUwLCAxNSwgNSwgMjU1LCAyNCwgMzAsIDIyMCwgCisgICAgMTAwLCAxNSwgNSwgMjU1LCAyNCwgMzAsIDIxNywgNzIsIDE1LCA1LCAyNTQsIDI1NSwgMTUsIDUsIDI1NCwgMTg2LCAxNSwgCisgICAgNSwgMjU0LCAxODcsIDMwLCAyNDUsIDg3LCAxNSwgNSwgMjU0LCAxODcsIDMwLCAyMjAsIDEwLCA5NiwgMjQyLCAxOTAsIDE1LCAKKyAgICA1LCAyNTQsIDE3OCwgMTUsIDUsIDI1NCwgMTc5LCAzMCwgMjU0LCAxNzgsIDE1LCA1LCAyNTQsIDE3OSwgMzAsIDI0NywgCisgICAgMjE2LCAxNSwgNSwgMjU0LCAxNzksIDMwLCAyNDIsIDE5MCwgMTUsIDUsIDI1NCwgMTc5LCAzMCwgMTYyLCAxNSwgNSwgMjU0LCAKKyAgICAxNzksIDMwLCAyMzQsIDI1NSwgMTUsIDUsIDI1NCwgMTc5LCAzMCwgMjM0LCA5MiwgMTUsIDUsIDI1NCwgMTc5LCAzMCwgCisgICAgMjIwLCA2MywgMTUsIDUsIDI1NCwgMTc5LCAzMCwgMjE0LCAxMjYsIDE1LCA1LCAyNTQsIDE3NSwgMTUsIDUsIDI1NCwgMTY4LCAKKyAgICAxNSwgNSwgMjU0LCAxMzIsIDE1LCA1LCAyNTQsIDEzMywgMzAsIDIyMCwgNjMsIDE1LCA1LCAyNTQsIDEyMywgMTUsIDUsIAorICAgIDI1NCwgMTI0LCAxMTcsIDI1NCwgMTIzLCAxNSwgNSwgMjU0LCAxMjQsIDEzNCwgMjE2LCA4NSwgMTUsIDUsIDI1NCwgMTI0LCAKKyAgICA5NiwgMjI5LCAyMTcsIDIyNiwgMTY0LCAyNTQsIDEyNCwgOTYsIDIyOSwgMjE2LCAxNSwgNSwgMjU0LCAxMjQsIDk2LCAyMjksIAorICAgIDIxNywgMjE4LCAyMzMsIDE1LCA1LCAyNTQsIDk0LCAxNSwgNSwgMjU0LCA2NywgMTUsIDUsIDI1NCwgMzUsIDE1LCA1LCAKKyAgICAyNTQsIDM2LCAzMCwgMjMzLCAxOTYsIDE1LCA1LCAyNTQsIDgsIDE1LCA1LCAyNTMsIDIzNiwgMTUsIDUsIDI1MywgMjMxLCAKKyAgICAxNSwgNSwgMjUzLCAyMzIsIDIxMCwgNDAsIDIxNiwgMjM5LCAxNSwgNSwgMjUzLCAyMzIsIDIzNSwgMywgMjE2LCAyMzksIAorICAgIDE1LCA1LCAyNTMsIDIzMiwgMTE3LCAyNTMsIDIzMiwgMjE1LCAxMTQsIDExNywgMjE1LCAxMTQsIDIxNSwgMTE0LCAxMTcsIAorICAgIDIxNSwgMTE0LCAyMjYsIDIxLCAxNSwgNSwgMjUzLCAyMzIsIDExNywgMjUzLCAyMzIsIDExNywgMjUzLCAyMzEsIDE1LCA1LCAKKyAgICAyNTMsIDIzMiwgMTE3LCAyNTMsIDIzMiwgMTE3LCAyNTMsIDIzMiwgMjQ5LCAxMjUsIDI1MywgMjMyLCAxMTcsIDI1MywgCisgICAgMjMyLCAxMTcsIDI1MywgMjMxLCAxNSwgNSwgMjUzLCAyMjksIDE1LCA1LCAyNTMsIDIyNiwgMTUsIDUsIDI1MiwgMTkxLCAKKyAgICAxNSwgNSwgMjUyLCAxNzYsIDE1LCA1LCAyNTIsIDE3MSwgMTUsIDUsIDI1MiwgMTY3LCAxNSwgNSwgMjUyLCAxNjEsIDE1LCAKKyAgICA1LCAyNTIsIDE2MiwgMTE3LCAyNTIsIDE2MSwgMTUsIDUsIDI1MiwgMTYwLCAxNSwgNSwgMTMwLCAxNSwgNSwgMjUyLCAxNDAsIAorICAgIDE1LCA1LCAyNTIsIDYsIDE1LCA1LCAyNTIsIDcsIDMwLCA2MSwgMTUsIDUsIDI1MiwgNywgMzAsIDI0MywgOTYsIDE1LCA1LCAKKyAgICAyNTIsIDcsIDMwLCAyMzYsIDM2LCAyNDIsIDk0LCAxNSwgNSwgMjUxLCAxMjUsIDE1LCA1LCAyNTEsIDEyNiwgMTE3LCAyNTEsIAorICAgIDEyNiwgMjU1LCAyNSwgMTUsIDUsIDI1MSwgMTI2LCAxMTcsIDI1MSwgMTI2LCAyMTQsIDE5MCwgMTUsIDUsIDI1MSwgMTI2LCAKKyAgICAyNDksIDEyNSwgMjUxLCAxMjUsIDE1LCA1LCAyNTEsIDEwOSwgMTUsIDUsIDI1MSwgMTEwLCAxMTcsIDI1MSwgMTA5LCAxNSwgCisgICAgNSwgMjUxLCA5OCwgMTUsIDUsIDI1MSwgOTcsIDE1LCA1LCAyNDgsIDIyMSwgMTUsIDUsIDI0OCwgMjEyLCAxNSwgNSwgMjQ4LCAKKyAgICAyMTMsIDIzNCwgNjYsIDMwLCAxMTUsIDk2LCAyMzEsIDE0NywgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgMjU0LCAKKyAgICAxMzIsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDI1MiwgMTYwLCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIAorICAgIDMwLCAyNTIsIDYsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDI0MywgMTM1LCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgCisgICAgNjYsIDMwLCAyNDMsIDEzNiwgOTYsIDIzMSwgMTQ3LCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyNDIsIDIxNCwgCisgICAgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgMjQyLCAxOTcsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIAorICAgIDI0MiwgMTAzLCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAxNjIsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgCisgICAgMzAsIDIzNSwgMTc5LCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyMzUsIDE4MCwgOTYsIDIzMiwgOTgsIDE1LCA1LCAKKyAgICAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDIzNCwgMjQyLCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyMzMsIDEzNSwgCisgICAgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgMjMyLCA5OCwgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgMjMyLCAKKyAgICA5OSwgOTYsIDIzMSwgMTQ2LCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyMzIsIDg0LCAxNSwgNSwgMjQ4LCAyMTMsIAorICAgIDIzNCwgNjYsIDMwLCAyMjksIDEwNywgMTUsIDUsIDI0OCwgMjEzLCAyMzQsIDY2LCAzMCwgMjI2LCAyMiwgOTYsIDIyNiwgCisgICAgMjEsIDE1LCA1LCAyNDgsIDIxMywgMjM0LCA2NiwgMzAsIDIxOSwgMTkxLCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAKKyAgICAyMTcsIDcyLCAxNSwgNSwgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyMTQsIDIzMSwgOTYsIDI0MiwgMTk3LCAxNSwgNSwgCisgICAgMjQ4LCAyMTMsIDIzNCwgNjYsIDMwLCAyMTQsIDEyNiwgMTUsIDUsIDI0OCwgMTg3LCAxNSwgNSwgMjQ4LCAxNjYsIDE1LCA1LCAKKyAgICAyNDgsIDE2NSwgMTUsIDUsIDI0OCwgMTY0LCAxNSwgNSwgMjQ4LCAzLCAxNSwgNSwgMjQ3LCAyNDIsIDE1LCA1LCAyNDcsIAorICAgIDIxNywgMTUsIDUsIDI0NywgMjE4LCAzMCwgMjIwLCA2MywgMTUsIDUsIDI0NywgMjE2LCAxNSwgNSwgMjQ3LCAyMDYsIDE1LCAKKyAgICA1LCAyNDcsIDIwNywgMjM0LCAyMDgsIDEwNCwgMjQyLCA5NSwgMjQ3LCAxODcsIDE1LCA1LCAyNDcsIDE4NywgMTUsIDUsIAorICAgIDI0NiwgNzgsIDE1LCA1LCAyNDYsIDc5LCAxMTcsIDI0NiwgNzgsIDE1LCA1LCAyNDYsIDc5LCAyNDIsIDk0LCAxNSwgNSwgCisgICAgMjQ2LCA3OSwgMjIwLCA0NSwgMTUsIDUsIDI0NiwgNzYsIDE1LCA1LCAyNDYsIDc3LCAzMCwgMjQ1LCA3MiwgMTUsIDUsIAorICAgIDI0NiwgNzUsIDE1LCA1LCAyNDYsIDc0LCAxNSwgNSwgMjQ2LCA3MywgMTUsIDUsIDI0NiwgNzIsIDE1LCA1LCAyNDYsIDY4LCAKKyAgICAxNSwgNSwgMjQ2LCA2NiwgMTUsIDUsIDI0NiwgNjcsIDI0MiwgOTQsIDE1LCA1LCAyNDYsIDY3LCAyNDIsIDk1LCAyNDIsIAorICAgIDk0LCAxNSwgNSwgMjQ2LCA2NSwgMTUsIDUsIDI0NiwgNTgsIDE1LCA1LCA3NSwgMTUsIDUsIDE2MCwgMzAsIDIyNiwgMjEsIAorICAgIDE1LCA1LCAxNjAsIDExNywgMTYwLCAyMjcsIDE5NSwgMTE3LCAyMjcsIDE5NCwgMTUsIDUsIDI0NSwgMjM0LCAxNSwgNSwgCisgICAgMjQ1LCAyMzUsIDMwLCAxMTUsIDk2LCAyNDIsIDQ5LCA5NiwgMjQ4LCAyMjEsIDE1LCA1LCAyNDUsIDIzNSwgMzAsIDI0MywgCisgICAgOTYsIDE1LCA1LCAyNDUsIDIzNSwgMzAsIDIzMCwgMjMwLCAxNSwgNSwgMjQ1LCAyMzUsIDMwLCAyMjIsIDgsIDE1LCA1LCAKKyAgICAyNDUsIDIzNSwgMzAsIDIyMCwgNjMsIDE1LCA1LCAyNDUsIDIzNSwgMzAsIDcwLCAxNSwgNSwgMjQ1LCAyMTEsIDE1LCA1LCAKKyAgICAyNDUsIDIwMCwgMTUsIDUsIDI0NSwgMTc0LCAxNSwgNSwgMjQ1LCAxNTAsIDE1LCA1LCAyNDUsIDE1MSwgMzAsIDI0MywgCisgICAgMTA0LCAxNSwgNSwgMjQ1LCAxNTEsIDMwLCAyNDMsIDEwNSwgMjE2LCAyMzksIDE1LCA1LCAyNDUsIDE1MSwgMzAsIDIzMSwgCisgICAgOTEsIDE1LCA1LCAyNDUsIDE1MSwgMjQ5LCAxMjUsIDI0NSwgMTUwLCAxNSwgNSwgMjQ1LCAxNTEsIDIyNiwgMTY0LCAyNDUsIAorICAgIDE1MCwgMTUsIDUsIDI0NSwgMTUxLCAyMTgsIDIzMywgMTUsIDUsIDI0NSwgODksIDE1LCA1LCAyNDUsIDg3LCAxNSwgNSwgCisgICAgMjQ1LCA3MiwgMTUsIDUsIDI0NSwgMTAsIDE1LCA1LCAyNDUsIDExLCAzMCwgNjEsIDE1LCA1LCAyNDUsIDExLCAzMCwgMTE1LCAKKyAgICA5NiwgMjMzLCAxMDQsIDE1LCA1LCAyNDUsIDExLCAzMCwgMTE1LCA5NiwgMjMzLCAxMDUsIDMwLCAyMzMsIDEwNCwgMTUsIDUsIAorICAgIDI0NSwgMTEsIDMwLCAyNTQsIDEyMywgMTUsIDUsIDI0NSwgMTEsIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDI0NSwgMTEsIDMwLCAKKyAgICAyNDYsIDY3LCAyNDIsIDk0LCAxNSwgNSwgMjQ1LCAxMSwgMzAsIDI0NiwgNjcsIDI0MiwgOTUsIDI0MiwgOTQsIDE1LCA1LCAKKyAgICAyNDUsIDExLCAzMCwgMTYyLCAxNSwgNSwgMjQ1LCAxMSwgMzAsIDI0MiwgNDksIDI0MiwgOTQsIDE1LCA1LCAyNDUsIDExLCAKKyAgICAzMCwgMjM2LCAzNiwgMjQyLCA5NCwgMTUsIDUsIDI0NSwgMTEsIDMwLCAyMzQsIDIwNywgMTUsIDUsIDI0NSwgMTEsIDMwLCAKKyAgICAyMzQsIDIwOCwgMjE4LCAyMzMsIDE1LCA1LCAyNDUsIDExLCAzMCwgMjMzLCAyMTUsIDE1LCA1LCAyNDUsIDExLCAzMCwgCisgICAgMjMzLCAxMzUsIDE1LCA1LCAyNDUsIDExLCAzMCwgMjMzLCAxMDUsIDMwLCAyMzMsIDEwNCwgMTUsIDUsIDI0NSwgMTEsIDMwLCAKKyAgICAyMzIsIDI0MSwgMTUsIDUsIDI0NSwgMTEsIDMwLCAyMzIsIDk4LCAxNSwgNSwgMjQ1LCAxMSwgMzAsIDIxNCwgMjMwLCAxNSwgCisgICAgNSwgMjQ1LCAxMSwgMzAsIDIxNCwgMjE5LCAxNSwgNSwgMjQzLCAxMzUsIDE1LCA1LCAyNDMsIDEzNiwgMjQyLCA5NCwgMTUsIAorICAgIDUsIDI0MywgMTMzLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAxMTUsIDk2LCAyNDgsIDIyMiwgOTYsIDE2MiwgMTUsIDUsIDI0MywgCisgICAgMTM0LCAzMCwgMTE1LCA5NiwgMTYyLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAxMTUsIDk2LCAyMzYsIDM1LCAxNSwgNSwgMjQzLCAKKyAgICAxMzQsIDMwLCAyNTUsIDI0LCAyMTYsIDI0MCwgOTYsIDIxNywgOTMsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI1NCwgMTIzLCAKKyAgICAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNTMsIDIzMSwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjUzLCAyMzAsIDk2LCAyNDMsIAorICAgIDExOCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjUyLCAxNzYsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI1MiwgMTQxLCA5NiwgCisgICAgMjA1LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNTEsIDk4LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNTEsIDk5LCA5NiwgMjA1LCAKKyAgICAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNDgsIDIyMSwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjQ4LCAzLCAxNSwgNSwgMjQzLCAKKyAgICAxMzQsIDMwLCAyNDcsIDIxOCwgMzAsIDIyMCwgNjMsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI0NiwgNzYsIDE1LCA1LCAyNDMsIAorICAgIDEzNCwgMzAsIDI0NSwgMTc0LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNDUsIDE3NSwgOTYsIDIzMywgMTM1LCAxNSwgNSwgCisgICAgMjQzLCAxMzQsIDMwLCAyNDUsIDE1MCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjQ1LCAxNTEsIDMwLCAyNDMsIDEwNSwgMjE2LCAKKyAgICAyMzksIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjQzLCAKKyAgICA5NiwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjQyLCAyMTQsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI0MiwgMjEyLCAxNSwgNSwgCisgICAgMjQzLCAxMzQsIDMwLCAyNDIsIDIxMywgOTYsIDYxLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNDIsIDE5OCwgOTYsIDIxOCwgCisgICAgODMsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDI0MiwgNDksIDk2LCAyMzIsIDk5LCA5NiwgMjQ1LCA3MiwgMTUsIDUsIDI0MywgCisgICAgMTM0LCAzMCwgMjQyLCAzMCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjQyLCAzMSwgOTYsIDIzMywgMTM1LCAxNSwgNSwgMjQzLCAKKyAgICAxMzQsIDMwLCAyNDEsIDE4MSwgOTYsIDIzMiwgMjQxLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyNDAsIDIxOCwgMTUsIDUsIAorICAgIDI0MywgMTM0LCAzMCwgMjM2LCAzNiwgMjQyLCA5NCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjM1LCAxNjYsIDk2LCAyNDAsIAorICAgIDIyMywgOTYsIDI1MywgMjMxLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyMzQsIDI0MiwgMTUsIDUsIDI0MywgMTM0LCAzMCwgCisgICAgMjM0LCAyMDcsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDIzNCwgODksIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDIzNCwgOTAsIDk2LCAKKyAgICAyMzMsIDEwNCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjMzLCAyMTYsIDk2LCAyNTQsIDEyMywgMTUsIDUsIDI0MywgMTM0LCAKKyAgICAzMCwgMjMzLCAxMzUsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDIzMSwgOTIsIDk2LCAyNDUsIDE1MCwgMTUsIDUsIDI0MywgCisgICAgMTM0LCAzMCwgMjMwLCAyMzAsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDIyNywgMTk0LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAKKyAgICAyMjcsIDE5NSwgMTE3LCAyMjcsIDE5NCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMTkwLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAKKyAgICAyMjIsIDgsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDIyMSwgMjMxLCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyMjAsIDYzLCAxNSwgCisgICAgNSwgMjQzLCAxMzQsIDMwLCAyMjAsIDY0LCA5NiwgMjE1LCA5OCwgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjIwLCAzMCwgMTUsIAorICAgIDUsIDI0MywgMTM0LCAzMCwgMjE4LCA0MywgMTUsIDUsIDI0MywgMTM0LCAzMCwgMjE3LCA3MiwgMTUsIDUsIDI0MywgMTM0LCAKKyAgICAzMCwgNzAsIDE1LCA1LCAyNDMsIDEzNCwgMzAsIDIxNCwgMjE5LCAxNSwgNSwgMjQzLCAxMzQsIDMwLCAyMTQsIDIyMCwgOTYsIAorICAgIDI0NiwgNzgsIDE1LCA1LCAyNDMsIDEzNCwgMTE3LCAyNDMsIDEzMywgMTUsIDUsIDI0MywgMTI4LCAxNSwgNSwgMjQzLCAKKyAgICAxMjksIDI0OSwgMTI1LCAyNDMsIDEyOCwgMTUsIDUsIDI0MywgMTI2LCAxNSwgNSwgMjQzLCAxMjcsIDExNywgMjQzLCAxMjcsIAorICAgIDI0MywgOTcsIDExNywgMjQzLCA5NiwgMTUsIDUsIDI0MywgMTE4LCAxNSwgNSwgMjQzLCAxMTksIDI0MywgMTI3LCAxMTcsIAorICAgIDI0MywgMTI3LCAyNDMsIDk3LCAxMTcsIDI0MywgOTYsIDE1LCA1LCAyNDMsIDExNywgMTUsIDUsIDI0MywgMTE1LCAxNSwgNSwgCisgICAgMjQzLCAxMDYsIDE1LCA1LCAyNDMsIDEwNCwgMTUsIDUsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIDI0MywgMTA1LCAKKyAgICAxMTcsIDI0MywgMTA0LCAxNSwgNSwgMjQzLCAxMDUsIDI0OSwgMTI1LCAyNDMsIDEwNCwgMTUsIDUsIDI0MywgOTYsIDE1LCAKKyAgICA1LCAyNDMsIDk1LCAxNSwgNSwgMjQzLCA5MCwgMTUsIDUsIDI0MywgMzYsIDE1LCA1LCAyNDMsIDM3LCAzMCwgMjMzLCAxOTYsIAorICAgIDE1LCA1LCAyNDIsIDIxNCwgMTUsIDUsIDI0MiwgMjE1LCAzMCwgNzUsIDE1LCA1LCAyNDIsIDIxNSwgMzAsIDcwLCAxNSwgNSwgCisgICAgMjQyLCAyMTUsIDI0OSwgMTI1LCAyNDIsIDIxNCwgMTUsIDUsIDI0MiwgMjEyLCAxNSwgNSwgMjQyLCAyMTMsIDExNywgMjQyLCAKKyAgICAyMTIsIDE1LCA1LCAyNDIsIDIxMywgMjQ5LCAxMjUsIDI0MiwgMjEyLCAxNSwgNSwgMjQyLCAyMDksIDE1LCA1LCAyNDIsIAorICAgIDE5NywgMTUsIDUsIDI0MiwgMTk4LCAyNDIsIDk0LCAxNSwgNSwgMjQyLCAxOTUsIDE1LCA1LCAyNDIsIDE5NiwgMzAsIDExNSwgCisgICAgOTYsIDIzNiwgMzUsIDE1LCA1LCAyNDIsIDE5NiwgMzAsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIDI0MiwgMTk2LCAKKyAgICAzMCwgMjM2LCAzNSwgMTUsIDUsIDI0MiwgMTk2LCAzMCwgMjMyLCA5OSwgOTYsIDIzNiwgMzUsIDE1LCA1LCAyNDIsIDE5NiwgCisgICAgMzAsIDE5MCwgMTUsIDUsIDI0MiwgMTkyLCAxNSwgNSwgMjQyLCAxOTAsIDE1LCA1LCAyNDIsIDE5MSwgMjQ5LCAxMjUsIAorICAgIDI0MiwgMTkwLCAxNSwgNSwgMjQyLCAxOTEsIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDI0MiwgMTkxLCAzMCwgMjE3LCA3MiwgCisgICAgMTUsIDUsIDI0MiwgMTkxLCAyMTYsIDIzOSwgMTUsIDUsIDI0MiwgMTEzLCAxNSwgNSwgMjQyLCAxMTQsIDI0OSwgMTI1LCAKKyAgICAyNDIsIDExMywgMTUsIDUsIDI0MiwgMTExLCAxNSwgNSwgMjQyLCAxMTIsIDMwLCAyMzQsIDI0MiwgMTUsIDUsIDI0MiwgCisgICAgMTEyLCAzMCwgMjM0LCAyNDMsIDMwLCAyMzYsIDM2LCAyNDIsIDk0LCAxNSwgNSwgMjQyLCAxMTIsIDMwLCAyMjcsIDE5NCwgCisgICAgMTUsIDUsIDI0MiwgMTEyLCAzMCwgMjIyLCA5LCA5NiwgMjE1LCAxMTMsIDE1LCA1LCAyNDIsIDExMiwgMjQyLCA5NCwgMTUsIAorICAgIDUsIDI0MiwgMTAzLCAxNSwgNSwgMjQyLCAxMDQsIDMwLCAxMTUsIDk2LCAyMzMsIDE5NiwgMTUsIDUsIDI0MiwgMTA0LCAzMCwgCisgICAgMjMzLCAxOTYsIDE1LCA1LCAyNDIsIDEwNCwgMTE3LCAyNDIsIDEwNCwgMjMyLCA5MSwgMTUsIDUsIDI0MiwgOTgsIDE1LCA1LCAKKyAgICAyNDIsIDk2LCAxNSwgNSwgMjQyLCA5NywgMzAsIDIyMCwgNjMsIDE1LCA1LCAyNDIsIDg4LCAxNSwgNSwgMjQyLCA4NywgMTUsIAorICAgIDUsIDI0MiwgODQsIDE1LCA1LCAyNDIsIDgzLCAxNSwgNSwgMTYyLCAxNSwgNSwgMjQyLCA0OSwgMjE2LCAyMzksIDE1LCA1LCAKKyAgICAyNDIsIDQ5LCAyNDIsIDk0LCAxNSwgNSwgMjQyLCAzMCwgMTUsIDUsIDI0MSwgMTgwLCAxNSwgNSwgMjQxLCAxODEsIDMwLCAKKyAgICAyNTMsIDIzMSwgMTUsIDUsIDI0MSwgMTgxLCAzMCwgMjUzLCAyMjksIDE1LCA1LCAyNDEsIDE4MSwgMzAsIDI1MiwgMTc2LCAKKyAgICAxNSwgNSwgMjQxLCAxODEsIDMwLCAyNDcsIDE4NywgMTUsIDUsIDI0MSwgMTgxLCAzMCwgMjQzLCAxMjYsIDE1LCA1LCAyNDEsIAorICAgIDE4MSwgMzAsIDIzNCwgODEsIDE1LCA1LCAyNDEsIDE4MSwgMzAsIDIyNywgMTk0LCAxNSwgNSwgMjQxLCAxODEsIDMwLCAKKyAgICAyMjAsIDYzLCAxNSwgNSwgMjQxLCAxODEsIDMwLCA3MCwgMTUsIDUsIDI0MCwgMjIyLCAxNSwgNSwgMjQwLCAyMTgsIDE1LCAKKyAgICA1LCAyNDAsIDIxOSwgMzAsIDI1NCwgMTIzLCAxNSwgNSwgMjQwLCAyMTksIDMwLCAyNDIsIDMwLCAxNSwgNSwgMjQwLCAyMTksIAorICAgIDMwLCAyMzQsIDIwNywgMTUsIDUsIDI0MCwgMjE5LCAzMCwgMjMyLCAxOTcsIDE1LCA1LCAyNDAsIDIxOSwgMzAsIDIxNCwgCisgICAgMjE5LCAxNSwgNSwgMjQwLCAyMTUsIDE1LCA1LCA3MywgMTUsIDUsIDI0MCwgMTU0LCA2MSwgMTUsIDUsIDI0MCwgMTE1LCAKKyAgICAxNSwgNSwgMjM2LCA2MywgMTUsIDUsIDIzNiwgNjQsIDExNywgMjM2LCA2NCwgMjUxLCA5OCwgMTUsIDUsIDIzNiwgNjQsIAorICAgIDExNywgMjM2LCA2NCwgMjE4LCAyMzMsIDE1LCA1LCAyMzYsIDM4LCAxNSwgNSwgMjM2LCAzNSwgMTUsIDUsIDIzNiwgMzYsIAorICAgIDI0NywgMjQyLCAxNSwgNSwgMjM2LCAzNiwgMjIzLCAzNSwgMTUsIDUsIDIzNiwgMzYsIDExNywgMjM2LCAzNiwgMjIwLCAxNCwgCisgICAgMTE3LCAyMjAsIDE0LCAyMTQsIDIyMCwgMTE3LCAyMTQsIDIxOSwgMTUsIDUsIDIzNiwgMzYsIDI0MiwgOTQsIDE1LCA1LCAKKyAgICAyMzYsIDI3LCAxNSwgNSwgMjM2LCAyOCwgMzAsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIDIzNiwgMjYsIDE1LCA1LCAKKyAgICAyMzYsIDE2LCAxNSwgNSwgMjM2LCAxNywgMzAsIDIxNywgNzIsIDE1LCA1LCAyMzYsIDE3LCAyNDksIDEyNSwgMjM2LCAxNiwgCisgICAgMTUsIDUsIDIzNiwgMTcsIDIyNiwgMTY0LCAyMzYsIDE2LCAxNSwgNSwgMjM2LCAxNywgMjE4LCAyMzMsIDE1LCA1LCAyMzYsIAorICAgIDksIDE1LCA1LCAyMzUsIDI1NSwgMTUsIDUsIDIzNSwgMTc5LCAxNSwgNSwgMjM1LCAxNjUsIDE1LCA1LCAxNzYsIDE1LCA1LCAKKyAgICAyMzUsIDEzLCAzMCwgNjEsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjU0LCAyNTUsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjU1LCAKKyAgICAwLCA5NiwgMjMzLCAyMTUsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjUzLCAyMjksIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjUyLCAKKyAgICAxNzYsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjUyLCAxNjAsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMTMwLCAxNSwgNSwgMjM1LCAKKyAgICAxMywgMzAsIDI1MiwgNiwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyNDUsIDg3LCAxNSwgNSwgMjM1LCAxMywgMzAsIDI0NSwgNzIsIAorICAgIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjQzLCAxMzUsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjQzLCAxMTgsIDE1LCA1LCAyMzUsIAorICAgIDEzLCAzMCwgMjQzLCAxMDUsIDIxNiwgMjM5LCAxNSwgNSwgMjM1LCAxMywgMzAsIDI0MywgOTYsIDE1LCA1LCAyMzUsIDEzLCAKKyAgICAzMCwgMjQzLCA5NywgOTYsIDIyMCwgMTAxLCA5NiwgNjEsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjQyLCAyMTQsIDE1LCA1LCAKKyAgICAyMzUsIDEzLCAzMCwgMjQyLCAxOTcsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjQyLCAxOTEsIDk2LCAyMjEsIDIzMSwgMTUsIDUsIAorICAgIDIzNSwgMTMsIDMwLCAyNDIsIDE5MSwgMjQ5LCAxMjUsIDI0MiwgMTkwLCAxNSwgNSwgMjM1LCAxMywgMzAsIDI0MiwgMTEzLCAKKyAgICAxNSwgNSwgMjM1LCAxMywgMzAsIDI0MiwgODcsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjM2LCAzNSwgMTUsIDUsIDIzNSwgMTMsIAorICAgIDMwLCAyMzYsIDE2LCAxNSwgNSwgMjM1LCAxMywgMzAsIDIzNCwgMjQyLCAxNSwgNSwgMjM1LCAxMywgMzAsIDIzNCwgOTIsIAorICAgIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjM0LCA4OSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMzIsIDI0MSwgMTUsIDUsIDIzNSwgCisgICAgMTMsIDMwLCAyMzIsIDk4LCAxNSwgNSwgMjM1LCAxMywgMzAsIDIzMSwgOTEsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjMxLCAKKyAgICA5MiwgOTYsIDI0NiwgNzgsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjMxLCA5MiwgOTYsIDI0MiwgMjE0LCAxNSwgNSwgMjM1LCAKKyAgICAxMywgMzAsIDIzMSwgOTIsIDk2LCAyMTcsIDIyLCAxNSwgNSwgMjM1LCAxMywgMzAsIDIzMCwgMjMwLCAxNSwgNSwgMjM1LCAKKyAgICAxMywgMzAsIDIzMCwgMjMxLCA5NiwgMjI3LCAxODksIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjI5LCAxMDcsIDE1LCA1LCAyMzUsIAorICAgIDEzLCAzMCwgMjI3LCAxOTQsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjI1LCAxMDgsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjIyLCAKKyAgICAxNDAsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjA2LCAxNSwgNSwgMjM1LCAxMywgMzAsIDIyMSwgMjMxLCAxNSwgNSwgMjM1LCAKKyAgICAxMywgMzAsIDIyMCwgMTAyLCAxNSwgNSwgMjM1LCAxMywgMzAsIDIyMCwgNjMsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjIwLCAKKyAgICAzMCwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMTksIDIyNSwgMTUsIDUsIDIzNSwgMTMsIDMwLCAyMTksIDE4MiwgMTUsIDUsIAorICAgIDIzNSwgMTMsIDMwLCAyMTgsIDUxLCAxNSwgNSwgMjM1LCAxMywgMzAsIDIxNywgNTAsIDE1LCA1LCAyMzUsIDEzLCAzMCwgCisgICAgNzAsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjE0LCAyMzAsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjE0LCAyMTksIDE1LCA1LCAKKyAgICAyMzUsIDEzLCAzMCwgMjE0LCAxOTMsIDMwLCAxOTAsIDE1LCA1LCAyMzUsIDEzLCAzMCwgMjE0LCAxMjYsIDE1LCA1LCAyMzUsIAorICAgIDEzLCAzMCwgMjEwLCA0NCwgMTUsIDUsIDIzNSwgMTEsIDE1LCA1LCAyMzUsIDEyLCAyNDksIDEyNSwgMjM1LCAxMSwgMTUsIAorICAgIDUsIDIzNSwgNCwgMTUsIDUsIDIzNSwgMSwgMTUsIDUsIDIzNCwgMjU1LCAxNSwgNSwgMjM0LCAyNTQsIDE1LCA1LCAyMzQsIAorICAgIDI1MiwgMTUsIDUsIDIzNCwgMjUzLCAxMTcsIDIzNCwgMjUyLCAxNSwgNSwgMjM0LCAyNDIsIDE1LCA1LCAyMzQsIDI0MywgCisgICAgMzAsIDIzNiwgMzYsIDI0MiwgOTQsIDE1LCA1LCAyMzQsIDIzOCwgMTUsIDUsIDIzNCwgMjM5LCAzMCwgMjUyLCAxNzYsIDE1LCAKKyAgICA1LCAyMzQsIDIzOSwgMjQ5LCAxMjUsIDIzNCwgMjM4LCAxNSwgNSwgMjM0LCAyMzYsIDE1LCA1LCAyMzQsIDIzNSwgMTUsIDUsIAorICAgIDIzNCwgMjA3LCAxNSwgNSwgMjM0LCAyMDgsIDIzMywgMTE4LCAzMCwgMTA0LCAxMTcsIDIzMywgMTE4LCAzMCwgNzAsIDE1LCAKKyAgICA1LCAyMzQsIDIwOCwgMTE3LCAyMzQsIDIwOCwgMjMzLCAxMTgsIDMwLCAxMDQsIDExNywgMjMzLCAxMTgsIDMwLCA3MCwgMTUsIAorICAgIDUsIDIzNCwgMTU3LCAxNSwgNSwgMjM0LCA5MiwgMTUsIDUsIDIzNCwgOTMsIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDIzNCwgCisgICAgOTMsIDMwLCA3MCwgMTUsIDUsIDIzNCwgOTMsIDMwLCAyMTQsIDIxOSwgMTUsIDUsIDIzNCwgODksIDE1LCA1LCAyMzQsIDgxLCAKKyAgICAxNSwgNSwgMjM0LCA2OCwgMTUsIDUsIDIzNCwgNjcsIDE1LCA1LCAyMzQsIDY1LCAxNSwgNSwgMjM0LCA2NiwgMTE3LCAyMzQsIAorICAgIDY1LCAxNSwgNSwgMjMzLCAyMTcsIDE1LCA1LCAyMzMsIDIxOCwgMTE3LCAyNDEsIDE4MSwgMzAsIDI1MywgMjMwLCAyMzMsIAorICAgIDIxOCwgMTE3LCAyNDEsIDE4MSwgMzAsIDI1MywgMjI5LCAxNSwgNSwgMjMzLCAyMTUsIDE1LCA1LCAyMzMsIDIxMywgMTUsIAorICAgIDUsIDIzMywgMjE0LCAyMTQsIDEyLCAxNywgMTUsIDUsIDIzMywgMjEyLCAxNSwgNSwgMjMzLCAyMDksIDE1LCA1LCAyMzMsIAorICAgIDIxMCwgMjQyLCA5NCwgMTUsIDUsIDIzMywgMjA4LCAxNSwgNSwgMjMzLCAxOTYsIDE1LCA1LCAyMzMsIDE5NywgMjI2LCAKKyAgICAxNjQsIDIzMywgMTk2LCAxNSwgNSwgMjMzLCAxOTEsIDE1LCA1LCAyMzMsIDE3MiwgMTUsIDUsIDIzMywgMTM1LCAxNSwgNSwgCisgICAgMjMzLCAxMTcsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDYxLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAxMTUsIDk2LCAyNDgsIAorICAgIDIyMiwgOTYsIDE2MiwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMTE1LCA5NiwgMjQzLCA5NiwgMTUsIDUsIDIzMywgMTE4LCAzMCwgCisgICAgMTE1LCA5NiwgMjMzLCAxMDQsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDI1NCwgMTc4LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAKKyAgICAyNTQsIDEyMywgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjUzLCAyMzIsIDIxMCwgNDAsIDIxNiwgMjM5LCAxNSwgNSwgMjMzLCAKKyAgICAxMTgsIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjUyLCA2LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyNDgsIAorICAgIDE2NiwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjQ1LCAxNTAsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDI0MywgMTM1LCAxNSwgNSwgCisgICAgMjMzLCAxMTgsIDMwLCAyNDMsIDk2LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyNDIsIDEwMywgMTUsIDUsIDIzMywgMTE4LCAKKyAgICAzMCwgMjQyLCAxMDQsIDk2LCAyNDIsIDEwMywgMTUsIDUsIDIzMywgMTE4LCAzMCwgMTYyLCAxNSwgNSwgMjMzLCAxMTgsIAorICAgIDMwLCAyNDIsIDMwLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyNDEsIDE4MSwgMzAsIDIyNywgMTk0LCAxNSwgNSwgMjMzLCAKKyAgICAxMTgsIDMwLCAyMzYsIDM2LCAyNDIsIDk0LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMzYsIDE2LCAxNSwgNSwgMjMzLCAxMTgsIAorICAgIDMwLCAyMzYsIDE3LCA5NiwgMTYyLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMzYsIDE3LCA5NiwgMjMyLCA5OCwgMTUsIDUsIAorICAgIDIzMywgMTE4LCAzMCwgMjM0LCA5MiwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjM0LCA4MSwgMTUsIDUsIDIzMywgMTE4LCAzMCwgCisgICAgMjMzLCAyMTUsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIzMywgMjA5LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMzMsIDIxMCwgCisgICAgOTYsIDI0MSwgMTgxLCA5NiwgNjEsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIzMywgMTE3LCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAKKyAgICAyMzIsIDE5NywgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjMyLCA5OCwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjMyLCA4NiwgMTUsIAorICAgIDUsIDIzMywgMTE4LCAzMCwgMjMxLCA5MSwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjMxLCA5MiwgOTYsIDI0NSwgMTUwLCAxNSwgCisgICAgNSwgMjMzLCAxMTgsIDMwLCAyMzAsIDYxLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMjksIDEwNywgMTUsIDUsIDIzMywgMTE4LCAKKyAgICAzMCwgMjIwLCA2NCwgOTYsIDIxOCwgNDMsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIyMCwgMTAsIDk2LCAyNDIsIDE5MSwgOTYsIAorICAgIDI0NSwgODcsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIyMCwgMTAsIDk2LCAyNDIsIDE5MSwgMjE2LCAyMzksIDE1LCA1LCAKKyAgICAyMzMsIDExOCwgMzAsIDIxOSwgMjIzLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMTksIDIyNCwgOTYsIDIxOSwgMjIzLCAxNSwgCisgICAgNSwgMjMzLCAxMTgsIDMwLCAyMTgsIDQzLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMTcsIDg0LCAxNSwgNSwgMjMzLCAxMTgsIAorICAgIDMwLCAyMTcsIDcyLCAxNSwgNSwgMjMzLCAxMTgsIDMwLCAyMTcsIDIzLCA5NiwgMTE1LCA5NiwgMjE4LCA4NCwgOTYsIDE5NywgCisgICAgMTUsIDUsIDIzMywgMTE4LCAzMCwgNzAsIDE1LCA1LCAyMzMsIDExOCwgMzAsIDEwNCwgOTYsIDYxLCAxNSwgNSwgMjMzLCAKKyAgICAxMTgsIDMwLCAxMDQsIDk2LCAxMDQsIDk2LCA3MCwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjE0LCAyMzEsIDk2LCAyNTMsIAorICAgIDIzMSwgMTUsIDUsIDIzMywgMTE4LCAzMCwgMjE0LCAyMTksIDE1LCA1LCAyMzMsIDExOCwgMzAsIDIxNCwgMTI2LCAxNSwgNSwgCisgICAgMjMzLCAxMTgsIDIxOCwgMjMzLCAxNSwgNSwgMjMzLCAxMTUsIDE1LCA1LCAyMzMsIDExNiwgMzAsIDIyMCwgNjMsIDE1LCA1LCAKKyAgICAyMzMsIDExNiwgMzAsIDIyMCwgNjQsIDk2LCAyMTgsIDQzLCAxNSwgNSwgMjMzLCAxMTYsIDI0MiwgOTQsIDE1LCA1LCAyMzMsIAorICAgIDExNiwgMjQyLCA5NSwgMTE3LCAyMzMsIDExNiwgMjQyLCA5NSwgMjIwLCA2MywgMTUsIDUsIDIzMywgMTExLCAxNSwgNSwgCisgICAgMjMzLCAxMDQsIDE1LCA1LCAyMzMsIDEwNSwgMzAsIDIzMywgMTA0LCAxNSwgNSwgMjMzLCAxMDIsIDE1LCA1LCAyMzMsIAorICAgIDEwMywgMzAsIDIzMywgMTk2LCAxNSwgNSwgMjMzLCAxMDMsIDMwLCAyMzMsIDE5NywgOTYsIDIyMiwgMTQwLCAxNSwgNSwgCisgICAgMjMyLCAyNDEsIDE1LCA1LCAyMzIsIDIyNiwgMTUsIDUsIDIzMiwgMjE2LCAxNSwgNSwgMjMyLCAxOTcsIDE1LCA1LCAyMzIsIAorICAgIDk4LCAxNSwgNSwgMjMyLCA5OSwgMzAsIDI1MiwgMTc2LCAxNSwgNSwgMjMyLCA5NiwgMTUsIDUsIDIzMiwgOTcsIDMwLCAKKyAgICAyNTQsIDE3OCwgMTUsIDUsIDIzMiwgOTcsIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDIzMiwgOTcsIDMwLCAyNDUsIDcyLCAxNSwgCisgICAgNSwgMjMyLCA5NywgMzAsIDI0NSwgNzMsIDIxNiwgMjM5LCAxNSwgNSwgMjMyLCA5NywgMzAsIDI0MywgMTA1LCAyMTYsIAorICAgIDIzOSwgMTUsIDUsIDIzMiwgOTcsIDMwLCAyNDEsIDE4MSwgMzAsIDI1MiwgMTc2LCAxNSwgNSwgMjMyLCA5NywgMzAsIDIzNiwgCisgICAgMTYsIDE1LCA1LCAyMzIsIDk3LCAzMCwgMjM1LCAxLCAxNSwgNSwgMjMyLCA5NywgMzAsIDIzNCwgMjU1LCAxNSwgNSwgMjMyLCAKKyAgICA5NywgMzAsIDIzNSwgMCwgOTYsIDI1MywgMjMxLCAxNSwgNSwgMjMyLCA5NywgMzAsIDIzNCwgOTIsIDE1LCA1LCAyMzIsIAorICAgIDk3LCAzMCwgMjMzLCAxMzYsIDk2LCAyNTMsIDIzMSwgMTUsIDUsIDIzMiwgOTcsIDMwLCAyMzMsIDExNywgMTUsIDUsIDIzMiwgCisgICAgOTcsIDMwLCAyMzEsIDkyLCA5NiwgMjQ1LCAxNTAsIDE1LCA1LCAyMzIsIDk3LCAzMCwgMjI5LCAxMDcsIDE1LCA1LCAyMzIsIAorICAgIDk3LCAzMCwgMjI3LCAyMzcsIDE1LCA1LCAyMzIsIDk3LCAzMCwgMjE5LCAxOTIsIDk2LCAyNTMsIDIzMSwgMTUsIDUsIDIzMiwgCisgICAgOTcsIDMwLCAyMTksIDE3NCwgOTYsIDI1MSwgMTI1LCAxNSwgNSwgMjMyLCA5NywgMzAsIDIxNSwgMTEzLCAxNSwgNSwgMjMyLCAKKyAgICA5NywgMjE2LCAyMzksIDE1LCA1LCAyMzIsIDk3LCAyNDksIDEyNSwgMjMyLCA5NiwgMTUsIDUsIDIzMiwgOTcsIDIyNiwgCisgICAgMTY0LCAyMzIsIDk2LCAxNSwgNSwgMjMyLCA5NywgMjE4LCAyMzMsIDE1LCA1LCAyMzIsIDk3LCAyMjAsIDQ1LCAxNSwgNSwgCisgICAgMjMyLCA5NSwgMTUsIDUsIDIzMiwgOTEsIDE1LCA1LCAyMzIsIDkyLCAxMTcsIDIzMiwgOTEsIDE1LCA1LCAyMzIsIDkyLCAKKyAgICAyMjYsIDE2NCwgMjMyLCA5MSwgMTUsIDUsIDIzMiwgOTIsIDIyMCwgNDUsIDE1LCA1LCAyMzIsIDg5LCAxNSwgNSwgMjMyLCAKKyAgICA4NiwgMTUsIDUsIDIzMiwgODQsIDE1LCA1LCAyMzIsIDg1LCAxMTcsIDIzMiwgODQsIDE1LCA1LCAyMzIsIDg1LCAxMTcsIAorICAgIDIzMiwgODUsIDI0MywgOTcsIDExNywgMjQzLCA5NiwgMTUsIDUsIDE4NCwgMTUsIDUsIDIzMSwgMjM5LCAzMCwgMjE3LCA3MiwgCisgICAgMTUsIDUsIDIzMSwgMjM5LCAyNDIsIDk0LCAxNSwgNSwgMjMxLCAyMzgsIDE1LCA1LCAyMzEsIDIxMCwgMTUsIDUsIDIzMSwgCisgICAgMTY2LCAxNSwgNSwgMjMxLCAxNDcsIDE1LCA1LCAyMzEsIDE0NiwgMTUsIDUsIDIzMSwgOTEsIDE1LCA1LCAyMzEsIDQ3LCAKKyAgICAxNSwgNSwgMjMwLCAyMzAsIDE1LCA1LCAyMzAsIDE4OCwgMTUsIDUsIDIzMCwgMTAyLCAxNSwgNSwgMjMwLCAxMDMsIDExNywgCisgICAgMjMwLCAxMDIsIDE1LCA1LCAyMzAsIDkzLCAxNSwgNSwgMjMwLCA5NCwgMjQyLCA5NCwgMTUsIDUsIDIzMCwgNzgsIDE1LCA1LCAKKyAgICAyMzAsIDY0LCAxNSwgNSwgMjMwLCA2MSwgMTUsIDUsIDIzMCwgNjIsIDMwLCA2MSwgMTUsIDUsIDIzMCwgNjIsIDMwLCAyMzMsIAorICAgIDE5NiwgMTUsIDUsIDIzMCwgNjIsIDMwLCAyMTAsIDExNiwgMTUsIDUsIDIzMCwgNjIsIDExNywgMjMwLCA2MSwgMTUsIDUsIAorICAgIDIzMCwgNjIsIDExNywgMjMwLCA2MiwgMzAsIDExNSwgOTYsIDE5NywgMTUsIDUsIDIzMCwgNjIsIDI0OSwgMTI1LCAyMzAsIAorICAgIDYxLCAxNSwgNSwgMjMwLCA1OSwgMTUsIDUsIDIzMCwgNjAsIDMwLCA2MSwgMTUsIDUsIDIzMCwgNjAsIDMwLCAxMTUsIDk2LCAKKyAgICAyNDgsIDMsIDE1LCA1LCAyMzAsIDYwLCAzMCwgMjQ4LCAzLCAxNSwgNSwgMjMwLCA2MCwgMjQyLCA5NCwgMTUsIDUsIDE5NywgCisgICAgMTUsIDUsIDIyOSwgMjI3LCAxNSwgNSwgMjI5LCAyMTYsIDE1LCA1LCAyMjksIDIxNywgMjM1LCAxOTIsIDE1LCA1LCAyMjksIAorICAgIDIxNywgMzAsIDIxOSwgMjI2LCAyMTYsIDIzOSwgMTUsIDUsIDIyOSwgMjE3LCAyMjYsIDE2NCwgMjI5LCAyMTYsIDE1LCA1LCAKKyAgICAyMjksIDIxNSwgMTUsIDUsIDIyOSwgMjA4LCAyMjcsIDE4MCwgMTUsIDUsIDIyOSwgMjA3LCAxNSwgNSwgMjI5LCAyMDYsIAorICAgIDE1LCA1LCAyMjksIDEwNywgMTUsIDUsIDIyOSwgMTA4LCAzMCwgNjEsIDE1LCA1LCAyMjksIDEwOCwgMzAsIDIxNCwgMjE5LCAKKyAgICAxNSwgNSwgMjI5LCAxMDgsIDIyMCwgNDUsIDE1LCA1LCAyMjgsIDIzMywgMTUsIDUsIDIyOCwgMjM0LCAzMCwgNzUsIDE1LCAKKyAgICA1LCAyMjgsIDIzMiwgMTUsIDUsIDIyOCwgMjAzLCAxNSwgNSwgMjI4LCAyMDQsIDMwLCAyNDMsIDEwNSwgMjE2LCAyMzksIAorICAgIDE1LCA1LCAyMjgsIDIwNCwgMzAsIDI0MywgOTcsIDk2LCAyNDMsIDEwNSwgMjE2LCAyMzksIDE1LCA1LCAyMjgsIDIwMSwgCisgICAgMTUsIDUsIDIyOCwgMjAyLCAzMCwgMjU0LCAxMjMsIDE1LCA1LCAyMjgsIDIwMiwgMzAsIDI1MywgMjMxLCAxNSwgNSwgMjI4LCAKKyAgICAyMDIsIDMwLCAyNTMsIDIzMiwgOTYsIDI1MywgMjMxLCAxNSwgNSwgMjI4LCAyMDIsIDMwLCAyNDIsIDEwMywgMTUsIDUsIAorICAgIDIyOCwgMjAyLCAzMCwgMjMxLCA5MiwgOTYsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIDIyOCwgMjAyLCAzMCwgMjI5LCAKKyAgICAxMDcsIDE1LCA1LCAyMjgsIDIwMiwgMzAsIDIyNywgMTk0LCAxNSwgNSwgMjI4LCAyMDIsIDMwLCAyMjAsIDYzLCAxNSwgNSwgCisgICAgMjI4LCAyMDIsIDMwLCAyMjAsIDY0LCA5NiwgMTE1LCAyNTQsIDEyMywgMTUsIDUsIDIyOCwgMjAyLCAzMCwgMjIwLCA2NCwgCisgICAgOTYsIDI1MywgMjMxLCAxNSwgNSwgMjI4LCAyMDIsIDMwLCAyMjAsIDY0LCA5NiwgMjUzLCAyMzIsIDk2LCAyNTMsIDIzMSwgCisgICAgMTUsIDUsIDIyOCwgMjAyLCAzMCwgMjE0LCAyMzEsIDk2LCAyNTMsIDIzMSwgMTUsIDUsIDIyOCwgMjAyLCAzMCwgMjE0LCAKKyAgICAxMjYsIDE1LCA1LCAyMjgsIDE5MCwgMTUsIDUsIDIyNywgMjM3LCAxNSwgNSwgMjI3LCAyMTAsIDE1LCA1LCAyMjcsIDE5NCwgCisgICAgMTUsIDUsIDIyNywgMTk1LCAyMzMsIDExNiwgMzAsIDI0MywgOTYsIDE1LCA1LCAyMjcsIDE5NSwgMjMzLCAxMTYsIDMwLCAKKyAgICAyMzEsIDE0NywgMTUsIDUsIDIyNywgMTk1LCAyMzMsIDExNiwgMzAsIDIyMiwgOCwgMTUsIDUsIDIyNywgMTk1LCAyMzMsIAorICAgIDExNiwgMzAsIDIyMiwgOSwgMTE3LCAyMjcsIDE5NSwgMjMzLCAxMTYsIDMwLCAyMjIsIDgsIDE1LCA1LCAyMjcsIDE5NSwgCisgICAgMjMzLCAxMTYsIDMwLCAyMTQsIDEyNiwgMTUsIDUsIDIyNywgMTk1LCAyMTYsIDIzOSwgMTUsIDUsIDIyNywgMTk1LCAxMTcsIAorICAgIDIyNywgMTk0LCAxNSwgNSwgMjI3LCAxOTUsIDI0OSwgMTI1LCAyMjcsIDE5NCwgMTUsIDUsIDIyNywgMTk1LCAyNDksIDEyNSwgCisgICAgMjI3LCAxOTUsIDIzMywgMTE2LCAxMTcsIDIzMywgMTE1LCAxNSwgNSwgMjI3LCAxODksIDE1LCA1LCAyMjcsIDE5MCwgMjU1LCAKKyAgICAyNCwgMzAsIDI1MywgMjI2LCAxNSwgNSwgMjI3LCAxOTAsIDI1NSwgMjQsIDMwLCAyNTIsIDYsIDE1LCA1LCAyMjcsIDE5MCwgCisgICAgMjU1LCAyNCwgMzAsIDI0NiwgNzQsIDE1LCA1LCAyMjcsIDE5MCwgMjU1LCAyNCwgMzAsIDI0MiwgMTAzLCAxNSwgNSwgMjI3LCAKKyAgICAxOTAsIDI1NSwgMjQsIDMwLCAyMzYsIDM2LCAyNDIsIDk0LCAxNSwgNSwgMjI3LCAxOTAsIDI1NSwgMjQsIDMwLCAyMzQsIAorICAgIDI1NSwgMTUsIDUsIDIyNywgMTkwLCAyNTUsIDI0LCAzMCwgMjMzLCAxMzUsIDE1LCA1LCAyMjcsIDE5MCwgMjU1LCAyNCwgCisgICAgMzAsIDIyOSwgMTA3LCAxNSwgNSwgMjI3LCAxOTAsIDI1NSwgMjQsIDMwLCAyMTksIDE3MSwgMTUsIDUsIDIyNywgMTkwLCAKKyAgICAyNTUsIDI0LCAzMCwgMjE0LCAyMzAsIDE1LCA1LCAyMjcsIDE5MCwgMjM0LCA2NiwgMzAsIDI1MiwgNiwgMTUsIDUsIDIyNywgCisgICAgMTkwLCAyMzQsIDY2LCAzMCwgMjUyLCA3LCA3MCwgMTUsIDUsIDE5MCwgMTUsIDUsIDIyNiwgODAsIDE1LCA1LCAyMjYsIDQ3LCAKKyAgICAxNSwgNSwgMjI2LCAyMSwgMTUsIDUsIDIyNSwgMTYxLCAxNSwgNSwgMjI1LCAxMDgsIDE1LCA1LCAyMjUsIDEwOSwgMzAsIAorICAgIDYxLCAxNSwgNSwgMjI1LCAxMDksIDMwLCAyNTUsIDI1LCAxNSwgNSwgMjI1LCAxMDksIDMwLCAyNTIsIDYsIDE1LCA1LCAKKyAgICAyMjUsIDEwOSwgMzAsIDI1MSwgMTI1LCAxNSwgNSwgMjI1LCAxMDksIDMwLCA3NSwgMTUsIDUsIDIyNSwgMTA5LCAzMCwgNzMsIAorICAgIDE1LCA1LCAyMjUsIDEwOSwgMzAsIDI0MCwgMTE1LCAxNSwgNSwgMjI1LCAxMDksIDMwLCA3MCwgMTUsIDUsIDIyNSwgMTA5LCAKKyAgICAzMCwgMjE0LCAyMzAsIDE1LCA1LCAyMjUsIDEwOSwgMjQ5LCAxMjUsIDIyNSwgMTA4LCAxNSwgNSwgMjI1LCA1MywgMTUsIDUsIAorICAgIDIyNSwgNTQsIDMwLCAyMzQsIDIzOCwgMTUsIDUsIDIyNSwgNTQsIDMwLCAyMTQsIDIxOSwgMTUsIDUsIDIyNSwgNTQsIDMwLCAKKyAgICAyMTAsIDExNiwgMTUsIDUsIDIyNSwgNTQsIDIyNiwgMTY0LCAyMjUsIDUzLCAxNSwgNSwgMjA1LCAxNSwgNSwgMjIzLCAxODIsIAorICAgIDE1LCA1LCAyMjMsIDM1LCAxNSwgNSwgMjIyLCAxNDAsIDE1LCA1LCAyMDYsIDE1LCA1LCAyMjIsIDIyLCAyMjcsIDE4MCwgCisgICAgMTUsIDUsIDIyMiwgMjEsIDE1LCA1LCAyMjIsIDIyLCAzMCwgNjEsIDE1LCA1LCAyMjIsIDIyLCAzMCwgMjQ2LCA3OCwgMTUsIAorICAgIDUsIDIyMiwgMjIsIDMwLCAyNDYsIDc2LCAxNSwgNSwgMjIyLCAyMiwgMzAsIDE2MiwgMTUsIDUsIDIyMiwgMjIsIDMwLCAKKyAgICAyMzQsIDI0MiwgMTUsIDUsIDIyMiwgMjIsIDMwLCAyMzMsIDE5NiwgMTUsIDUsIDIyMiwgMjIsIDMwLCAyMzIsIDg0LCAxNSwgCisgICAgNSwgMjIyLCAyMiwgMzAsIDIzMCwgMjMwLCAxNSwgNSwgMjIyLCAyMiwgMzAsIDIyNywgMTk0LCAxNSwgNSwgMjIyLCAyMiwgCisgICAgMzAsIDIyMiwgOCwgMTUsIDUsIDIyMiwgMjIsIDMwLCAyMjAsIDMwLCAxNSwgNSwgMjIyLCAyMiwgMzAsIDIxNywgOTMsIDE1LCAKKyAgICA1LCAyMjIsIDIyLCAzMCwgMjE0LCAyMzAsIDE1LCA1LCAyMjIsIDIyLCAzMCwgMjE0LCAyMjUsIDE1LCA1LCAyMjIsIDIyLCAKKyAgICAzMCwgMjE0LCAxOTcsIDE1LCA1LCAyMjIsIDIyLCAzMCwgMjE0LCAxNTAsIDE1LCA1LCAyMjIsIDIyLCAzMCwgMjE0LCAxMjYsIAorICAgIDE1LCA1LCAyMjIsIDIyLCAxMTcsIDIyMiwgMjEsIDE1LCA1LCAyMjIsIDIyLCAyNDIsIDk0LCAxNSwgNSwgMjIyLCA4LCAxNSwgCisgICAgNSwgMjIyLCA5LCAyMzMsIDExOCwgMzAsIDI1MywgMjI5LCAxNSwgNSwgMjIxLCAyMzksIDE1LCA1LCAyMjEsIDIzMSwgMTUsIAorICAgIDUsIDIyMCwgMTAyLCAxNSwgNSwgMjIwLCAxMDAsIDE1LCA1LCAyMjAsIDEwMSwgMzAsIDYxLCAxNSwgNSwgMjIwLCAxMDEsIAorICAgIDMwLCAyNTIsIDE3NiwgMTUsIDUsIDIyMCwgMTAxLCAzMCwgMjQyLCAxOTAsIDE1LCA1LCAyMjAsIDEwMSwgMzAsIDIyOSwgCisgICAgMTA3LCAxNSwgNSwgMjIwLCAxMDEsIDMwLCAyMTksIDIyMywgMTUsIDUsIDIyMCwgMTAxLCAzMCwgMjE1LCA5OCwgMTUsIDUsIAorICAgIDIyMCwgMTAxLCAzMCwgNzAsIDE1LCA1LCAyMjAsIDEwMSwgMzAsIDEwNCwgOTYsIDYxLCAxNSwgNSwgMjIwLCA5OSwgMTUsIAorICAgIDUsIDIyMCwgOTcsIDE1LCA1LCAyMjAsIDc4LCAxNSwgNSwgMjIwLCA2MywgMTUsIDUsIDIyMCwgNjQsIDI0MCwgMjIyLCAxNSwgCisgICAgNSwgMjIwLCA2NCwgMTE3LCAyMjAsIDY0LCAyNDMsIDEyNywgMTE3LCAyNDMsIDEyNywgMjQzLCA5NywgMTE3LCAyNDMsIDk2LCAKKyAgICAxNSwgNSwgMjIwLCA2NCwgMTE3LCAyMjAsIDY0LCAyMTcsIDk0LCAxMTcsIDIxNywgOTQsIDI0MywgOTcsIDExNywgMjQzLCAKKyAgICA5NiwgMTUsIDUsIDIyMCwgNTYsIDE1LCA1LCAyMjAsIDUxLCAxNSwgNSwgMjIwLCA0OCwgMTUsIDUsIDIyMCwgNDcsIDE1LCAKKyAgICA1LCAyMjAsIDQ0LCAxNSwgNSwgMjIwLCAzMCwgMTUsIDUsIDIyMCwgMzEsIDMwLCA2MSwgMTUsIDUsIDIyMCwgMzEsIDMwLCAKKyAgICAyMzYsIDE2LCAxNSwgNSwgMjIwLCAyNCwgMTUsIDUsIDIyMCwgMjUsIDMwLCA2MSwgMTUsIDUsIDIyMCwgMjUsIDMwLCAyNTIsIAorICAgIDE2MSwgMTUsIDUsIDIyMCwgMjUsIDMwLCAyNTEsIDEwOSwgMTUsIDUsIDIyMCwgMjUsIDMwLCAyNDcsIDIwNiwgMTUsIDUsIAorICAgIDIyMCwgMjUsIDMwLCAyNDMsIDk2LCAxNSwgNSwgMjIwLCAyNSwgMzAsIDIzNiwgMzUsIDE1LCA1LCAyMjAsIDI1LCAzMCwgCisgICAgMjM2LCAzNiwgMjQyLCA5NCwgMTUsIDUsIDIyMCwgMjUsIDMwLCAyMzMsIDE5MSwgMTUsIDUsIDIyMCwgMjUsIDMwLCAyMzIsIAorICAgIDg2LCAxNSwgNSwgMjIwLCAyNSwgMzAsIDIzMCwgOTMsIDE1LCA1LCAyMjAsIDI1LCAzMCwgMjIyLCA4LCAxNSwgNSwgMjIwLCAKKyAgICAxOCwgMTUsIDUsIDIyMCwgMTMsIDE1LCA1LCAyMjAsIDE0LCAyMTYsIDIzOSwgMTUsIDUsIDIyMCwgMTQsIDExNywgMjIwLCAKKyAgICAxNCwgMjUxLCA5OSwgMTE3LCAyNTEsIDk4LCAxNSwgNSwgMjIwLCA5LCAxNSwgNSwgMjE5LCAyMjUsIDE1LCA1LCAyMTksIAorICAgIDIyNiwgMTE3LCAyMzUsIDE5MywgMjE5LCAyMjUsIDE1LCA1LCAyMTksIDIyMywgMTUsIDUsIDIxOSwgMjIyLCAxNSwgNSwgCisgICAgMjE5LCAxOTEsIDE1LCA1LCAyMTksIDE5MiwgMjQyLCA5NCwgMTUsIDUsIDIxOSwgMTgyLCAxNSwgNSwgMjE5LCAxODAsIDE1LCAKKyAgICA1LCAyMTksIDE4MSwgMTE3LCAyMTksIDE4MSwgMjE5LCAyMjMsIDE1LCA1LCAyMTksIDE3MywgMTUsIDUsIDIxOSwgMTcxLCAKKyAgICAxNSwgNSwgMjE4LCA4MywgMTUsIDUsIDIxOCwgODQsIDExNywgMjE4LCA4MywgMTUsIDUsIDIxOCwgNTQsIDE1LCA1LCAyMTgsIAorICAgIDUzLCAxNSwgNSwgMjE4LCA1MSwgMTUsIDUsIDIxOCwgNDMsIDE1LCA1LCAyMTgsIDQyLCAxNSwgNSwgMjE4LCAxNywgMTUsIAorICAgIDUsIDIxOCwgMTYsIDE1LCA1LCAyMTcsIDEwNSwgMTUsIDUsIDIxNywgMTA2LCAyNTMsIDIxNiwgMTUsIDUsIDIxNywgMTA2LCAKKyAgICAzMCwgMjQxLCAxODAsIDE1LCA1LCAyMTcsIDEwNiwgMzAsIDIzMCwgMjMwLCAxNSwgNSwgMjE3LCAxMDYsIDI0MiwgOTQsIAorICAgIDE1LCA1LCAyMTcsIDkzLCAxNSwgNSwgMjE3LCA5NCwgMTE3LCAyMTcsIDk0LCAyMjgsIDIzNCwgMTE3LCAyMjgsIDIzNCwgCisgICAgMjQ3LCAxODgsIDExNywgMjQ3LCAxODcsIDE1LCA1LCAyMTcsIDk0LCAyMTgsIDIzMywgMTUsIDUsIDIxNywgODQsIDE1LCA1LCAKKyAgICAxMjksIDMwLCAyNTIsIDYsIDE1LCA1LCAxMjksIDMwLCAyNDIsIDEwMywgMTUsIDUsIDEyOSwgMzAsIDIyMCwgNjMsIDE1LCAKKyAgICA1LCAxMjksIDMwLCAyMTksIDIyNSwgMTUsIDUsIDEyOSwgMzAsIDIxNSwgMTEzLCAxNSwgNSwgMTI5LCAzMCwgMjE0LCAyMTksIAorICAgIDE1LCA1LCAyMTcsIDcyLCAxNSwgNSwgMjE3LCA1MCwgMTUsIDUsIDIxNywgMjIsIDE1LCA1LCAyMTcsIDIzLCAyNDIsIDk0LCAKKyAgICAxNSwgNSwgMjE2LCAxMTcsIDE1LCA1LCAyMTYsIDExOCwgMjE2LCAyMzksIDE1LCA1LCAyMTYsIDkwLCAxNSwgNSwgMjE2LCAKKyAgICA3MiwgMTUsIDUsIDIxNiwgNzMsIDMwLCAyMTcsIDcyLCAxNSwgNSwgMjE2LCA3MywgMTE3LCAyMTYsIDcyLCAxNSwgNSwgCisgICAgMjE2LCA3MywgMTE3LCAyMTYsIDczLCAyNDMsIDEyNywgMTE3LCAyNDMsIDEyNywgMjQzLCA5NywgMTE3LCAyNDMsIDk2LCAKKyAgICAxNSwgNSwgMjE1LCAxMTgsIDE1LCA1LCAyMTUsIDExMywgMTUsIDUsIDIxNSwgMTExLCAxNSwgNSwgMjE1LCAxMDgsIDE1LCAKKyAgICA1LCAyMTUsIDk4LCAxNSwgNSwgMjE1LCA5OSwgMTE3LCAyMTUsIDk5LCAyMTAsIDExNywgMTE3LCAyMTAsIDExNiwgMTUsIDUsIAorICAgIDcwLCAxNSwgNSwgMTA0LCAyNDIsIDEwMywgMTUsIDUsIDEwNCwgMTA0LCA3MCwgMTUsIDUsIDEwNCwgMTE3LCAxMDQsIDIyNiwgCisgICAgOTAsIDExNywgMjI2LCA5MCwgMjQzLCA5NywgMTE3LCAyNDMsIDk2LCAxNSwgNSwgMTA0LCAxMTcsIDEwNCwgMjE4LCAxOCwgCisgICAgMTE3LCAyMTgsIDE3LCAxNSwgNSwgMTA0LCAxMTcsIDEwNCwgMTA0LCAyMjMsIDQ5LCAxMTcsIDEwNCwgMjIzLCA0OCwgMTUsIAorICAgIDUsIDIxNCwgMjMwLCAxNSwgNSwgMjE0LCAyMjUsIDE1LCA1LCAyMTQsIDIxOSwgMTUsIDUsIDIxNCwgMjIwLCAyMzMsIDE5MSwgCisgICAgMTUsIDUsIDIxNCwgMjIwLCAzMCwgMjUyLCAxNzYsIDE1LCA1LCAyMTQsIDIyMCwgMzAsIDIzMCwgMjMwLCAxNSwgNSwgMjE0LCAKKyAgICAyMjAsIDMwLCAxMDQsIDk2LCAxMDQsIDk2LCA3MCwgMTUsIDUsIDIxNCwgMjIwLCAzMCwgMTA0LCA5NiwgMTA0LCA5NiwgCisgICAgMTA0LCAyNDIsIDk0LCAxNSwgNSwgMjE0LCAyMjAsIDI0MiwgOTQsIDE1LCA1LCAyMTQsIDIyMCwgMjIwLCA0NSwgMTUsIDUsIAorICAgIDIxNCwgMjIwLCAyMjAsIDQ2LCAzMCwgMjUyLCAxNzYsIDE1LCA1LCAyMTQsIDIxNSwgMTUsIDUsIDIxNCwgMTk3LCAxNSwgNSwgCisgICAgMjE0LCAxOTgsIDMwLCAyMzMsIDExNywgMTUsIDUsIDIxNCwgMTk4LCAzMCwgMjMxLCA5MiwgOTYsIDI0OCwgMjIxLCAxNSwgCisgICAgNSwgMjE0LCAxOTgsIDMwLCAyMjAsIDEwMCwgMTUsIDUsIDIxNCwgMTk4LCAzMCwgNzAsIDE1LCA1LCAyMTQsIDE5NiwgMTUsIAorICAgIDUsIDIxNCwgMTkyLCAxNSwgNSwgMjE0LCAxOTMsIDMwLCAyMzQsIDIwNywgMTUsIDUsIDIxNCwgMTkzLCAzMCwgMTkwLCAxNSwgCisgICAgNSwgMjE0LCAxOTAsIDE1LCA1LCAyMTQsIDE5MSwgMjQyLCA5NCwgMTUsIDUsIDIxNCwgMTUwLCAxNSwgNSwgMjE0LCAxNTEsIAorICAgIDI0OSwgMTI1LCAyMTQsIDE1MCwgMTUsIDUsIDIxNCwgMTUxLCAyMjAsIDQ1LCAxNSwgNSwgMjE0LCAxNDgsIDE1LCA1LCAKKyAgICAyMTQsIDE0OSwgMzAsIDExNSwgOTYsIDE2MiwgMTUsIDUsIDIxNCwgMTQ5LCAzMCwgMTE1LCA5NiwgMTk3LCAxNSwgNSwgCisgICAgMjE0LCAxNDksIDMwLCAyNTQsIDE3OCwgMTUsIDUsIDIxNCwgMTQ5LCAzMCwgMTYyLCAxNSwgNSwgMjE0LCAxNDksIDMwLCAKKyAgICAyMjcsIDE5NCwgMTUsIDUsIDIxNCwgMTQ5LCAzMCwgMjE0LCAyMzAsIDE1LCA1LCAyMTQsIDE0OSwgMzAsIDIxNCwgMjMxLCAKKyAgICA5NiwgMjUzLCAyMzEsIDE1LCA1LCAyMTQsIDE0OSwgMzAsIDIxNCwgMjMxLCA5NiwgMjUyLCA2LCAxNSwgNSwgMjE0LCAxNDcsIAorICAgIDE1LCA1LCAyMTQsIDE0NCwgMTUsIDUsIDIxNCwgMTQzLCAxNSwgNSwgMjE0LCAxMzksIDE1LCA1LCAyMTQsIDE0MCwgMzAsIAorICAgIDYxLCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyNTMsIDIyNiwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMTMwLCAxNSwgNSwgMjE0LCAKKyAgICAxNDAsIDMwLCAyNDYsIDY4LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyNDMsIDEzNSwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgCisgICAgMjQzLCAxMTgsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDI0MywgMTA1LCAyMTYsIDIzOSwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgCisgICAgMjQzLCA5NiwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjQyLCAxMTMsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDE2MiwgMTUsIDUsIAorICAgIDIxNCwgMTQwLCAzMCwgMjM2LCAzNSwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMjM2LCAxNiwgMTUsIDUsIDIxNCwgMTQwLCAzMCwgCisgICAgMjM1LCAxNjUsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDIzNCwgOTIsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDIzMiwgODQsIDE1LCAKKyAgICA1LCAyMTQsIDE0MCwgMzAsIDIzMCwgMTg4LCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAxOTAsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIAorICAgIDIyMCwgNjMsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDIxOSwgMTgwLCAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyMTUsIDExOCwgCisgICAgMTUsIDUsIDIxNCwgMTQwLCAzMCwgMTA0LCA5NiwgMjQyLCAxMDMsIDE1LCA1LCAyMTQsIDE0MCwgMzAsIDIxNCwgMjE5LCAKKyAgICAxNSwgNSwgMjE0LCAxNDAsIDMwLCAyMTQsIDEzNywgMTUsIDUsIDIxNCwgMTM3LCAxNSwgNSwgMjE0LCAxMzgsIDMwLCA3MCwgCisgICAgMTUsIDUsIDIxNCwgMTI2LCAxNSwgNSwgMjE0LCAxMjcsIDMwLCA2MSwgMTUsIDUsIDIxNCwgMTI3LCAzMCwgMjMzLCAyMTcsIAorICAgIDE1LCA1LCAyMTQsIDEyNywgMzAsIDIzMywgMTk2LCAxNSwgNSwgMjE0LCAxMjcsIDMwLCAyMTcsIDcyLCAxNSwgNSwgMjE0LCAKKyAgICAxMjIsIDE1LCA1LCAyMTQsIDEyNSwgMTUsIDUsIDIxNCwgMTIzLCAxNSwgNSwgMjE0LCAxMTksIDE1LCA1LCAyMTQsIDEwOCwgCisgICAgMTUsIDUsIDIxNCwgMTA5LCAzMCwgMjM0LCAyMDcsIDE1LCA1LCAyMTQsIDEwNywgMTUsIDUsIDIxMCwgMTE2LCAxNSwgNSwgCisgICAgMjEwLCAxMTcsIDIxNiwgMjM5LCAxNSwgNSwgMjEwLCAxMTcsIDkyLCAzMCwgMjMzLCAxOTYsIDE1LCA1LCAyMTAsIDExMywgCisgICAgMTUsIDUsIDIxMCwgMTA2LCAxNSwgNSwgMjEwLCA5MywgMTUsIDUsIDIxMCwgNDQsIDE1LCA1LCAyMTAsIDQ1LCAxMTcsIAorICAgIDIxMCwgNDQsIDE1LCA1LCAyMTAsIDQzLCAxNSwgNSwgMjEwLCA0MSwgMTUsIDUsIDIxMCwgNDIsIDIzNSwgMywgMjE2LCAKKyAgICAyMzksIDE1LCA1LCAyMTAsIDM2LCAxNSwgNSwgMjEwLCAyOCwgMTUsIDUsIDIxMCwgMTMsIDE1LCA1LCAyMTAsIDExLCAxNSwgCisgICAgNSwgMjEwLCAxMiwgMzAsIDYxLCAxNSwgNSwgMjEwLCAxMCwgMTUsIDUsIDIxMCwgOSwgMTUsIDEzMiwgNSwgMTEzLCAyNTMsIAorICAgIDIzMSwgMTUsIDEzMiwgNSwgMTM0LCAyNTMsIDIzMSwgMTUsIDEzMiwgNSwgMjQ0LCAxMSwgMjUzLCAyMzEsIDE1LCAxMzIsIAorICAgIDUsIDI0NCwgODEsIDI1MywgMjMxLCAxNSwgMTMyLCA1LCAyMTksIDEyNSwgMjUzLCAyMzEsIDE1LCAxMzIsIDUsIDIyMCwgCisgICAgMTIyLCAyNTMsIDIzMSwgMTUsIDEzMiwgNSwgMjQ1LCAxOTMsIDI1MywgMjMxLCAxNSwgMTMyLCA1LCAyMjgsIDIwMCwgMjUzLCAKKyAgICAyMzEsIDE1LCAxMzIsIDUsIDEzNCwgMjQ3LCAxODcsIDE1LCAxMzIsIDUsIDI0NCwgMTEsIDI0NywgMTg3LCAxNSwgMTMyLCAKKyAgICA1LCAyNDQsIDgxLCAyNDcsIDE4NywgMTUsIDEzMiwgNSwgMjE5LCAxMjUsIDI0NywgMTg3LCAxNSwgMTMyLCA1LCAyMjAsIAorICAgIDEyMiwgMjQ3LCAxODcsIDE1LCAxMzIsIDUsIDI0NSwgMTkzLCAyNDcsIDE4NywgMTUsIDEzMiwgNSwgMjI4LCAyMDAsIDI0NywgCisgICAgMTg3LCAxNSwgMTMyLCA1LCAyNDQsIDExLCA3MCwgMTUsIDEzMiwgNSwgMjQ0LCA4MSwgNzAsIDE1LCAxMzIsIDUsIDIxOSwgCisgICAgMTI1LCA3MCwgMTUsIDEzMiwgNSwgMjIwLCAxMjIsIDcwLCAxNSwgMTMyLCA1LCAyNDUsIDE5MywgNzAsIDE1LCAxMzIsIDUsIAorICAgIDIyOCwgMjAwLCA3MCwgMTUsIDEzMiwgNSwgMTIzLCAyNDMsIDM4LCAxNSwgMTMyLCA1LCAxMTMsIDI0MywgMzgsIDE1LCAKKyAgICAxMzIsIDUsIDEzNCwgMjQzLCAzOCwgMTUsIDEzMiwgNSwgMjQ0LCAxMSwgMjQzLCAzOCwgMTUsIDEzMiwgNSwgMjQ0LCA4MSwgCisgICAgMjQzLCAzOCwgMTUsIDEzMiwgNSwgMjE5LCAxMjUsIDI0MywgMzgsIDE1LCAxMzIsIDUsIDIyMCwgMTIyLCAyNDMsIDM4LCAKKyAgICAxNSwgMTMyLCA1LCAyNDUsIDE5MywgMjQzLCAzOCwgMTUsIDEzMiwgNSwgMjI4LCAyMDAsIDI0MywgMzgsIDE1LCAxMzIsIDUsIAorICAgIDEyMywgMjQzLCAzNSwgMTUsIDEzMiwgNSwgMTEzLCAyNDMsIDM1LCAxNSwgMTMyLCA1LCAxMzQsIDI0MywgMzUsIDE1LCAKKyAgICAxMzIsIDUsIDI0NCwgMTEsIDI0MywgMzUsIDE1LCAxMzIsIDUsIDI0NCwgODEsIDI0MywgMzUsIDE1LCAxMzIsIDUsIDExMywgCisgICAgMjIwLCA3OCwgMTUsIDEzMiwgNSwgMTM0LCAyMjAsIDc4LCAxNSwgMTMyLCA1LCAxMzQsIDIyMCwgNzksIDIxNCwgMTIsIDE3LCAKKyAgICAxNSwgMTMyLCA1LCAyNDQsIDExLCAyMjAsIDc4LCAxNSwgMTMyLCA1LCAyNDQsIDgxLCAyMjAsIDc4LCAxNSwgMTMyLCA1LCAKKyAgICAyMTksIDEyNSwgMjIwLCA3OCwgMTUsIDEzMiwgNSwgMjIwLCAxMjIsIDIyMCwgNzgsIDE1LCAxMzIsIDUsIDI0NSwgMTkzLCAKKyAgICAyMjAsIDc4LCAxNSwgMTMyLCA1LCAyMjgsIDIwMCwgMjIwLCA3OCwgMTUsIDEzMiwgNSwgMTIzLCAyMjAsIDczLCAxNSwgCisgICAgMTMyLCA1LCAxMTMsIDIyMCwgNzMsIDE1LCAxMzIsIDUsIDEzNCwgMjIwLCA3MywgMTUsIDEzMiwgNSwgMTM0LCAyMjAsIDc0LCAKKyAgICAyMTQsIDEyLCAxNywgMTUsIDEzMiwgNSwgMjQ0LCAxMSwgMjIwLCA3MywgMTUsIDEzMiwgNSwgMjQ0LCA4MSwgMjIwLCA3MywgCisgICAgMTUsIDEzMiwgNSwgMjIwLCA3OSwgMzAsIDI0MywgMTE5LCA5NiwgMjQ3LCAxODcsIDE1LCAxMzIsIDUsIDIyMCwgNzksIDMwLCAKKyAgICAyNDMsIDExOSwgOTYsIDIzMCwgMTg4LCAxNSwgMTMyLCA1LCAxMjMsIDI1MSwgOTUsIDE1LCAxMzIsIDUsIDExMywgMjUxLCAKKyAgICA5NSwgMTUsIDEzMiwgNSwgMTM0LCAyNTEsIDk1LCAxNSwgMTMyLCA1LCAxMzQsIDI1MSwgOTYsIDIxNCwgMTIsIDE3LCAxNSwgCisgICAgMTMyLCA1LCAyNDQsIDExLCAyNTEsIDk1LCAxNSwgMTMyLCA1LCAyNDQsIDgxLCAyNTEsIDk1LCAxNSwgMTMyLCA1LCAxMzQsIAorICAgIDIxNCwgMTIsIDI0NCwgMjAsIDI0NSwgNzQsIDE1LCAxMzIsIDUsIDEzNCwgMjE0LCAxMiwgMjQ0LCAyMCwgMjQ1LCA3MSwgCisgICAgMTUsIDEzMiwgNSwgMjQ0LCAxMSwgMjE0LCAxMiwgMjQ0LCAyMCwgMjMyLCAyMTcsIDE1LCAxMzIsIDUsIDI0NCwgMTEsIAorICAgIDIxNCwgMTIsIDI0NCwgMjAsIDIzMiwgMjE1LCAxNSwgMTMyLCA1LCAyNDQsIDExLCAyMTQsIDEyLCAyNDQsIDIwLCAyMzIsIAorICAgIDIxOCwgNjEsIDE1LCAxMzIsIDUsIDI0NCwgMTEsIDIxNCwgMTIsIDI0NCwgMjAsIDIzMiwgMjE4LCAyNTMsIDE1OCwgMTUsIAorICAgIDEzMiwgNSwgMjE5LCAxMjUsIDIxNCwgMTIsIDI0NCwgMjAsIDI1MywgMjI4LCAxNSwgMTMyLCA1LCAyMjAsIDEyMiwgMjE0LCAKKyAgICAxMiwgMjQ0LCAyMCwgMjM2LCA4LCAxNSwgMTMyLCA1LCAyMjAsIDEyMiwgMjE0LCAxMiwgMjQ0LCAyMCwgMjM2LCAxMCwgNjEsIAorICAgIDE1LCAxMzIsIDUsIDIyMCwgMTIyLCAyMTQsIDEyLCAyNDQsIDIwLCAyMzYsIDEwLCAyNTMsIDE1OCwgMTUsIDEzMiwgNSwgCisgICAgMjQ1LCAxOTMsIDIxNCwgMTIsIDI0NCwgMjAsIDIxNCwgMTIxLCAxNSwgMTMyLCA1LCAyNDUsIDE5MywgMjE0LCAxMiwgMjQ0LCAKKyAgICAyMCwgMjE0LCAxMjAsIDE1LCAxMzIsIDUsIDIyOCwgMjAwLCAyMTQsIDEyLCAyNDQsIDIwLCAyMzYsIDI0LCAxNSwgMTMyLCAKKyAgICA1LCAyMjgsIDIwMCwgMjE0LCAxMiwgMjQ0LCAyMCwgMjM2LCAyMywgMTUsIDEzMiwgNSwgMjI4LCAyMDAsIDIxNCwgMTIsIAorICAgIDI0NCwgMjAsIDIzNiwgMjIsIDE1LCAxMzIsIDUsIDIyOCwgMjAwLCAyMTQsIDEyLCAyNDQsIDIwLCAyMzYsIDI1LCA2MSwgCisgICAgMTUsIDEzMiwgNSwgMTEzLCAyNTMsIDIzMiwgMjE2LCAyMzksIDE1LCAxMzIsIDUsIDEzNCwgMjUzLCAyMzIsIDIxNiwgMjM5LCAKKyAgICAxNSwgMTMyLCA1LCAyNDQsIDExLCAyNTMsIDIzMiwgMjE2LCAyMzksIDE1LCAxMzIsIDUsIDI0NCwgODEsIDI1MywgMjMyLCAKKyAgICAyMTYsIDIzOSwgMTUsIDEzMiwgNSwgMjE5LCAxMjUsIDI1MywgMjMyLCAyMTYsIDIzOSwgMTUsIDEzMiwgNSwgMTIzLCAyNTIsIAorICAgIDE1MCwgMTUsIDEzMiwgNSwgMTEzLCAyNTIsIDE1MCwgMTUsIDEzMiwgNSwgMTM0LCAyNTIsIDE1MCwgMTUsIDEzMiwgNSwgCisgICAgMjQ0LCAxMSwgMjUyLCAxNTAsIDE1LCAxMzIsIDUsIDI0NCwgMTEsIDI1MiwgMTUxLCAyMTQsIDEyLCAxNywgMTUsIDEzMiwgCisgICAgNSwgMjQ0LCA4MSwgMjUyLCAxNTAsIDE1LCAxMzIsIDUsIDI0NCwgODEsIDI1MiwgMTUxLCAyMTQsIDEyLCAxNywgMTUsIAorICAgIDEzMiwgNSwgMjI4LCAyMTAsIDE1LCAxMzIsIDUsIDIyOCwgMjExLCAxNSwgMTMyLCA1LCAxMjMsIDI0NSwgNzAsIDE1LCAKKyAgICAxMzIsIDUsIDExMywgMjQ1LCA3MCwgMTUsIDEzMiwgNSwgMTIzLCAyMTYsIDE2OSwgMjQ3LCAxODcsIDE1LCAxMzIsIDUsIAorICAgIDExMywgMjE2LCAxNjcsIDI0NywgMTg3LCAxNSwgMTMyLCA1LCAyNDQsIDgxLCAyMTksIDExNCwgMjQ3LCAxODcsIDE1LCAKKyAgICAxMzIsIDUsIDEyMywgMjE2LCAxNjksIDIxNCwgMTIsIDI0NCwgMjAsIDYxLCAxNSwgMTMyLCA1LCAxMTMsIDIxNiwgMTY3LCAKKyAgICAyMTQsIDEyLCAyNDQsIDIwLCA2MSwgMTUsIDEzMiwgNSwgMTIzLCAyNDUsIDE4OSwgMjUzLCAyMzEsIDE1LCAxMzIsIDUsIAorICAgIDEyMywgMjI0LCAyMiwgMjUzLCAyMzEsIDE1LCAxMzIsIDUsIDU1LCAyNTMsIDIxOSwgMTIzLCAyMTksIDExNSwgMTUsIDEzMiwgCisgICAgNSwgNTUsIDI1MywgMjE5LCAxMjMsIDIyNCwgMjEsIDE1LCAyMjQsIDE0MSwgNSwgNTUsIDI1MywgMjE5LCAyMTEsIDIwOSwgCisgICAgMjQ3LCAxNzIsIDE1LCAyMjQsIDE0MSwgNSwgNjcsIDI0OSwgMjI2LCAxNSwgMjI0LCAxNDEsIDUsIDI0NywgMjU1LCAyNDksIAorICAgIDIyNiwgMTUsIDIyNCwgMTQxLCA1LCAyNDcsIDI1NSwgMjE1LCAyMjEsIDEyLCAxMywgMjU1LCAxNTUsIDEyLCAxMywgMjU1LCAKKyAgICAxNTQsIDEyLCAxMywgMjU1LCAxNTMsIDEyLCAxMywgMjU1LCAxNTIsIDEyLCAxMywgMjU1LCAxNTEsIDEyLCAxMywgMjU1LCAKKyAgICAxNTAsIDEyLCAxMywgMjU1LCAxNDksIDEyLCAxMywgMjU1LCAxNDgsIDEyLCAxMywgMjU1LCAxNDcsIDEyLCAxMywgMjU1LCAKKyAgICAxNDYsIDEyLCAxMywgMjU1LCAxNDUsIDEyLCAxMywgMjU1LCAxNDQsIDEyLCAxMywgMjU1LCAxNDMsIDEyLCAxMywgMjU1LCAKKyAgICAxNDIsIDEyLCAxMywgMjU1LCAxNDEsIDEyLCAxMywgMjU1LCAxNDAsIDEyLCAxMywgMjU1LCAxMzksIDEyLCAxMywgMjU1LCAKKyAgICAxMzgsIDEyLCAxMywgMjU1LCAxMzcsIDEyLCAxMywgMjU1LCAxMzYsIDEyLCAxMywgMjU1LCAxMzUsIDEyLCAxMywgMjU1LCAKKyAgICAxMzQsIDEyLCAxMywgMjU1LCAxMzMsIDEyLCAxMywgMjU1LCAxMzIsIDEyLCAxMywgMjU1LCAxMzEsIDEyLCAxMywgMjU1LCAKKyAgICAxMzAsIDEyLCAxMywgMjU1LCAxMjksIDEyLCAxMywgMjU1LCAxMjgsIDEyLCAxMywgMjU1LCAxMjcsIDEyLCAxMywgMjU1LCAKKyAgICAxMjYsIDEyLCAxMywgMjU1LCAxMjUsIDEyLCAxMywgMjU1LCAxMjQsIDEyLCAxMywgMjU1LCAxMjMsIDEyLCAxMywgMjU1LCAKKyAgICAxMjIsIDEyLCAxMywgMjU1LCAxMjEsIDEyLCAxMywgMjU1LCAxMjAsIDEyLCAxMywgMjU1LCAxMTksIDEyLCAxMywgMjU1LCAKKyAgICAxMTgsIDEyLCAxMywgMjU1LCAxMTcsIDEyLCAxMywgMjU1LCAxMTYsIDEyLCAxMywgMjU1LCAxMTUsIDEyLCAxMywgMjU1LCAKKyAgICAxMTQsIDEyLCAxMywgMjU1LCAxMTMsIDEyLCAxMywgMjU1LCAxMTIsIDEyLCAxMywgMjU1LCAxMTEsIDEyLCAxMywgMjU1LCAKKyAgICAxMTAsIDEyLCAxMywgMjU1LCAxMDksIDEyLCAxMywgMjU1LCAxMDgsIDEyLCAxMywgMjU1LCAxMDcsIDEyLCAxMywgMjU1LCAKKyAgICAxMDYsIDEyLCAxMywgMjU1LCAxMDUsIDEyLCAxMywgMjU1LCAxMDQsIDEyLCAxMywgMjU1LCAxMDMsIDEyLCAxMywgMjU1LCAKKyAgICAxMDIsIDEyLCAxMywgMjU1LCAxMDEsIDEyLCAxMywgMjU1LCAxMDAsIDEyLCAxMywgMjU1LCA5OSwgMTIsIDEzLCAyNTUsIAorICAgIDk4LCAxMiwgMTMsIDI1NSwgOTcsIDEyLCAxMywgMjU1LCA5NiwgMTIsIDEzLCAyNTUsIDk1LCAxMiwgMTMsIDI1NSwgOTQsIAorICAgIDEyLCAxMywgMjU1LCA5MywgMTIsIDEzLCAyNTUsIDkyLCAxMiwgMTMsIDI1NSwgOTEsIDEyLCAxMywgMjU1LCA5MCwgMTIsIAorICAgIDEzLCAyNTUsIDg5LCAxMiwgMTMsIDI1NSwgODgsIDEyLCAxMywgMjU1LCA4NywgMTIsIDEzLCAyNTUsIDg2LCAxMiwgMTMsIAorICAgIDI1NSwgODUsIDEyLCAxMywgMjU1LCA4NCwgMTIsIDEzLCAyNTUsIDgzLCAxMiwgMTMsIDI1NSwgODIsIDEyLCAxMywgMjU1LCAKKyAgICA4MSwgMTIsIDEzLCAyNTUsIDgwLCAxMiwgMTMsIDI1NSwgNzksIDEyLCAxMywgMjU1LCA3OCwgMTIsIDEzLCAyNTUsIDc3LCAKKyAgICAxMiwgMTMsIDI1NSwgNzYsIDEyLCAxMywgMjUzLCAxNTYsIDEyLCAxMywgMjUzLCAxNTQsIDEyLCAxMywgMjUzLCAxNTIsIAorICAgIDEyLCAxMywgMjUzLCAxNTAsIDEyLCAxMywgMjUzLCAxNDgsIDEyLCAxMywgMjUzLCAxNDcsIDEyLCAxMywgMjUzLCAxNDUsIAorICAgIDEyLCAxMywgMjUzLCAxNDMsIDEyLCAxMywgMjUzLCAxNDEsIDEyLCAxMywgMjUzLCAxMzksIDEyLCAxMywgMjUxLCA2MiwgCisgICAgMTIsIDEzLCAyNTEsIDYxLCAxMiwgMTMsIDI1MSwgNjAsIDEyLCAxMywgMjUxLCA1OSwgMTIsIDEzLCAyNTEsIDU4LCAxMiwgCisgICAgMTMsIDI1MSwgNTcsIDEyLCAxMywgMjUxLCA1NiwgMTIsIDEzLCAyNTEsIDU1LCAxMiwgMTMsIDI1MSwgNTQsIDEyLCAxMywgCisgICAgMjUxLCA1MywgMTIsIDEzLCAyNTEsIDUyLCAxMiwgMTMsIDI1MSwgNTEsIDEyLCAxMywgMjUxLCA1MCwgMTIsIDEzLCAyNTEsIAorICAgIDQ5LCAxMiwgMTMsIDI1MSwgNDgsIDEyLCAxMywgMjUxLCA0NywgMTIsIDEzLCAyNTEsIDQ2LCAxMiwgMTMsIDI1MSwgNDUsIAorICAgIDEyLCAxMywgMjUxLCA0NCwgMTIsIDEzLCAyNTEsIDQzLCAxMiwgMTMsIDI1MSwgNDIsIDEyLCAxMywgMjUxLCA0MSwgMTIsIAorICAgIDEzLCAyNTEsIDQwLCAxMiwgMTMsIDI1MSwgMzksIDEyLCAxMywgMjUxLCAzOCwgMTIsIDEzLCAyNTEsIDM3LCAxMiwgMTMsIAorICAgIDI1MSwgMzYsIDEyLCAxMywgMjUxLCAzNSwgMTIsIDEzLCAyNDksIDU5LCAxMiwgMTMsIDI0OSwgNTgsIDEyLCAxMywgMjQ5LCAKKyAgICA1NywgMTIsIDEzLCAyNDksIDU2LCAxMiwgMTMsIDI0OSwgNTUsIDEyLCAxMywgMjQ5LCA1NCwgMTIsIDEzLCAyNDksIDUzLCAKKyAgICAxMiwgMTMsIDI0OSwgNTIsIDEyLCAxMywgMjQ5LCA1MSwgMTIsIDEzLCAyNDksIDUwLCAxMiwgMTMsIDI0OSwgNDksIDEyLCAKKyAgICAxMywgMjQ5LCA0OCwgMTIsIDEzLCAyNDksIDQ3LCAxMiwgMTMsIDI0OSwgNDYsIDEyLCAxMywgMjQ5LCA0NSwgMTIsIDEzLCAKKyAgICAyNDksIDQ0LCAxMiwgMTMsIDI0OSwgNDMsIDEyLCAxMywgMjQ5LCA0MiwgMTIsIDEzLCAyNDksIDQxLCAxMiwgMTMsIDI0OSwgCisgICAgNDAsIDEyLCAxMywgMjQ5LCAzOSwgMTIsIDEzLCAyNDksIDM4LCAxMiwgMTMsIDI0OSwgMzcsIDEyLCAxMywgMjQ5LCAzNiwgCisgICAgMTIsIDEzLCAyNDksIDM1LCAxMiwgMTMsIDI0OSwgMzQsIDEyLCAxMywgMjQ5LCAzMywgMTIsIDEzLCAyNDksIDMyLCAxMiwgCisgICAgMTMsIDI0OSwgMzEsIDEyLCAxMywgMjQ5LCAzMCwgMTIsIDEzLCAyNDksIDI5LCAxMiwgMTMsIDI0OSwgMjgsIDEyLCAxMywgCisgICAgMjQ5LCAyNywgMTIsIDEzLCAyNDksIDI2LCAxMiwgMTMsIDI0OSwgMjUsIDEyLCAxMywgMjQ5LCAyNCwgMTIsIDEzLCAyNDksIAorICAgIDIzLCAxMiwgMTMsIDI0OSwgMjIsIDEyLCAxMywgMjQ5LCAyMSwgMTIsIDEzLCAyNDksIDIwLCAxMiwgMTMsIDI0OSwgMTksIAorICAgIDEyLCAxMywgMjQ5LCAxOCwgMTIsIDEzLCAyNDksIDE3LCAxMiwgMTMsIDI0OSwgMTYsIDEyLCAxMywgMjQ5LCAxNSwgMTIsIAorICAgIDEzLCAyNDksIDE0LCAxMiwgMTMsIDI0OSwgMTMsIDEyLCAxMywgMjQ5LCAxMiwgMTIsIDEzLCAyNDksIDExLCAxMiwgMTMsIAorICAgIDI0OSwgMTAsIDEyLCAxMywgMjQ5LCA5LCAxMiwgMTMsIDI0OSwgOCwgMTIsIDEzLCAyNDksIDcsIDEyLCAxMywgMjQ5LCA2LCAKKyAgICAxMiwgMTMsIDI0OSwgNSwgMTIsIDEzLCAyNDksIDQsIDEyLCAxMywgMjQ5LCAzLCAxMiwgMTMsIDI0OSwgMiwgMTIsIDEzLCAKKyAgICAyNDksIDEsIDEyLCAxMywgMjQ5LCAwLCAxMiwgMTMsIDI0OCwgMjU1LCAxMiwgMTMsIDI0OCwgMjU0LCAxMiwgMTMsIDI0OCwgCisgICAgMjUzLCAxMiwgMTMsIDI0OCwgMjUyLCAxMiwgMTMsIDI0OCwgMjUxLCAxMiwgMTMsIDI0OCwgMjUwLCAxMiwgMTMsIDI0OCwgCisgICAgMjQ5LCAxMiwgMTMsIDI0OCwgMjQ4LCAxMiwgMTMsIDI0OCwgMjQ3LCAxMiwgMTMsIDI0OCwgMjQ2LCAxMiwgMTMsIDI0OCwgCisgICAgMjQ1LCAxMiwgMTMsIDI0OCwgMjQ0LCAxMiwgMTMsIDI0OCwgMjQzLCAxMiwgMTMsIDI0OCwgMjQyLCAxMiwgMTMsIDI0OCwgCisgICAgMjQxLCAxMiwgMTMsIDI0OCwgMjQwLCAxMiwgMTMsIDI0OCwgMjM5LCAxMiwgMTMsIDI0OCwgMjM4LCAxMiwgMTMsIDI0OCwgCisgICAgMjM3LCAxMiwgMTMsIDI0OCwgMjM2LCAxMiwgMTMsIDI0OCwgMjM1LCAxMiwgMTMsIDI0OCwgMjM0LCAxMiwgMTMsIDI0OCwgCisgICAgMjMzLCAxMiwgMTMsIDI0OCwgMjMyLCAxMiwgMTMsIDI0OCwgMjMxLCAxMiwgMTMsIDI0OCwgMjMwLCAxMiwgMTMsIDI0OCwgCisgICAgMjI5LCAxMiwgMTMsIDI0OCwgMjI4LCAxMiwgMTMsIDI0OCwgMjI3LCAxMiwgMTMsIDI0OCwgMjI2LCAxMiwgMTMsIDI0OCwgCisgICAgMjI1LCAxMiwgMTMsIDI0OCwgMjI0LCAxMiwgMTMsIDI0NiwgMjMsIDEyLCAxMywgMjQ2LCAyMiwgMTIsIDEzLCAyNDYsIDIxLCAKKyAgICAxMiwgMTMsIDI0NiwgMjAsIDEyLCAxMywgMjQ2LCAxOSwgMTIsIDEzLCAyNDYsIDE4LCAxMiwgMTMsIDI0NiwgMTcsIDEyLCAKKyAgICAxMywgMjQ2LCAxNiwgMTIsIDEzLCAyNDYsIDE1LCAxMiwgMTMsIDI0NiwgMTQsIDEyLCAxMywgMjQ2LCAxMywgMTIsIDEzLCAKKyAgICAyNDYsIDEyLCAxMiwgMTMsIDI0NiwgMTEsIDEyLCAxMywgMjQ2LCAxMCwgMTIsIDEzLCAyNDYsIDksIDEyLCAxMywgMjQ2LCAKKyAgICA4LCAxMiwgMTMsIDI0NiwgNywgMTIsIDEzLCAyNDYsIDYsIDEyLCAxMywgMjQ2LCA1LCAxMiwgMTMsIDI0NiwgNCwgMTIsIAorICAgIDEzLCAyNDYsIDMsIDEyLCAxMywgMjQ2LCAyLCAxMiwgMTMsIDI0NiwgMSwgMTIsIDEzLCAyNDYsIDAsIDEyLCAxMywgMjQ1LCAKKyAgICAyNTUsIDEyLCAxMywgMjQ1LCAyNTQsIDEyLCAxMywgMjQ1LCAyNTMsIDEyLCAxMywgMjQ1LCAyNTIsIDEyLCAxMywgMjQ1LCAKKyAgICAyNTEsIDEyLCAxMywgMjQ1LCAyNTAsIDEyLCAxMywgMjQ1LCAyNDksIDEyLCAxMywgMjQ1LCAyNDgsIDEyLCAxMywgMjQ1LCAKKyAgICAyNDcsIDEyLCAxMywgMjQ1LCAyNDYsIDEyLCAxMywgMjQ1LCAyNDUsIDEyLCAxMywgMjQ1LCAyNDQsIDEyLCAxMywgMjQ1LCAKKyAgICAyNDMsIDEyLCAxMywgMjQ1LCAyNDIsIDEyLCAxMywgMjQ1LCAyNDEsIDEyLCAxMywgMjQ1LCAyNDAsIDEyLCAxMywgMjQ1LCAKKyAgICAyMzksIDEyLCAxMywgMjQ1LCAyMzgsIDEyLCAxMywgMjQ1LCAyMzcsIDEyLCAxMywgMjQ1LCAyMzYsIDEyLCAxMywgMjQ1LCAKKyAgICA1LCAxMiwgMTMsIDI0NSwgNCwgMTIsIDEzLCAyNDUsIDMsIDEyLCAxMywgMjQ1LCAyLCAxMiwgMTMsIDI0NSwgMSwgMTIsIAorICAgIDEzLCAyNDUsIDAsIDEyLCAxMywgMjQ0LCAyNTUsIDEyLCAxMywgMjQ0LCAyNTQsIDEyLCAxMywgMjQ0LCAyNTMsIDEyLCAxMywgCisgICAgMjQ0LCAyNTIsIDEyLCAxMywgMjQ0LCAyNTEsIDEyLCAxMywgMjQ0LCAyNTAsIDEyLCAxMywgMjQ0LCAyNDksIDEyLCAxMywgCisgICAgMjQ0LCAyNDgsIDEyLCAxMywgMjQ0LCAyNDcsIDEyLCAxMywgMjQ0LCAyNDYsIDEyLCAxMywgMjQ0LCAyNDUsIDEyLCAxMywgCisgICAgMjQ0LCAyNDQsIDEyLCAxMywgMjQ0LCAyNDMsIDEyLCAxMywgMjQ0LCAyNDIsIDEyLCAxMywgMjQ0LCAyNDEsIDEyLCAxMywgCisgICAgMjQ0LCAyNDAsIDEyLCAxMywgMjQ0LCAyMzksIDEyLCAxMywgMjQ0LCAyMzgsIDEyLCAxMywgMjQ0LCAyMzcsIDEyLCAxMywgCisgICAgMjQ0LCAyMzYsIDEyLCAxMywgMjQ0LCAyMzUsIDEyLCAxMywgMjQ0LCAyMzQsIDEyLCAxMywgMjQ0LCAyMzMsIDEyLCAxMywgCisgICAgMjQ0LCAyMzIsIDEyLCAxMywgMjQ0LCAyMzEsIDEyLCAxMywgMjQ0LCAyMzAsIDEyLCAxMywgMjQ0LCAyMjksIDEyLCAxMywgCisgICAgMjQ0LCAyMjgsIDEyLCAxMywgMjQ0LCAyMjcsIDEyLCAxMywgMjQ0LCAyMjYsIDEyLCAxMywgMjQ0LCAyMjUsIDEyLCAxMywgCisgICAgMjQ0LCAyMjQsIDEyLCAxMywgMjQ0LCAyMjMsIDEyLCAxMywgMjQ0LCAyMjIsIDEyLCAxMywgMjQ0LCAyMjEsIDEyLCAxMywgCisgICAgMjQ0LCAyMjAsIDEyLCAxMywgMjQ0LCAyMTksIDEyLCAxMywgMjQ0LCAyMTgsIDEyLCAxMywgMjQ0LCAyMTcsIDEyLCAxMywgCisgICAgMjQ0LCAyMTYsIDEyLCAxMywgMjQ0LCAyMTUsIDEyLCAxMywgMjQ0LCAyMTQsIDEyLCAxMywgMjQ0LCAyMTMsIDEyLCAxMywgCisgICAgMjQ0LCAyMTIsIDEyLCAxMywgMjQ0LCAyMTEsIDEyLCAxMywgMjQ0LCAyMTAsIDEyLCAxMywgMjQ0LCAyMDksIDEyLCAxMywgCisgICAgMjQ0LCAyMDgsIDEyLCAxMywgMjQ0LCAyMDcsIDEyLCAxMywgMjQ0LCAyMDYsIDEyLCAxMywgMjQ0LCAyMDUsIDEyLCAxMywgCisgICAgMjQ0LCAyMDQsIDEyLCAxMywgMjQ0LCAyMDMsIDEyLCAxMywgMjQ0LCAyMDIsIDEyLCAxMywgMjQ0LCAyMDEsIDEyLCAxMywgCisgICAgMjQ0LCAyMDAsIDEyLCAxMywgMjQ0LCAxOTksIDEyLCAxMywgMjQ0LCAxOTgsIDEyLCAxMywgMjQ0LCAxOTcsIDEyLCAxMywgCisgICAgMjQzLCAyMDEsIDEyLCAxMywgMjQzLCAyMDAsIDEyLCAxMywgMjQzLCAxOTksIDEyLCAxMywgMjQzLCAxOTgsIDEyLCAxMywgCisgICAgMjQzLCAxOTcsIDEyLCAxMywgMjQzLCAxOTYsIDEyLCAxMywgMjQzLCAxOTUsIDEyLCAxMywgMjQzLCAxOTQsIDEyLCAxMywgCisgICAgMjQzLCAxOTMsIDEyLCAxMywgMjQzLCAxOTIsIDEyLCAxMywgMjQzLCAxOTEsIDEyLCAxMywgMjQzLCAxOTAsIDEyLCAxMywgCisgICAgMjQzLCAxODksIDEyLCAxMywgMjQzLCAxODgsIDEyLCAxMywgMjQzLCAxODcsIDEyLCAxMywgMjQzLCAxODYsIDEyLCAxMywgCisgICAgMjQzLCAxODUsIDEyLCAxMywgMjQzLCAxODQsIDEyLCAxMywgMjQzLCAxODMsIDEyLCAxMywgMjQzLCAxODIsIDEyLCAxMywgCisgICAgMjQzLCAxODEsIDEyLCAxMywgMjQzLCAxODAsIDEyLCAxMywgMjQzLCAxNzksIDEyLCAxMywgMjQzLCAxNzgsIDEyLCAxMywgCisgICAgMjQzLCAxNzcsIDEyLCAxMywgMjQzLCAxNzYsIDEyLCAxMywgMjQzLCAxNzUsIDEyLCAxMywgMjQzLCAxNzQsIDEyLCAxMywgCisgICAgMjQzLCAxNzMsIDEyLCAxMywgMjQzLCAxNzIsIDEyLCAxMywgMjQzLCAxNzEsIDEyLCAxMywgMjQzLCAxNzAsIDEyLCAxMywgCisgICAgMjQzLCAxNjksIDEyLCAxMywgMjQzLCAxNjgsIDEyLCAxMywgMjQzLCAxNjcsIDEyLCAxMywgMjQzLCAxNjYsIDEyLCAxMywgCisgICAgMjQzLCAxNjUsIDEyLCAxMywgMjQzLCAxNjQsIDEyLCAxMywgMjQzLCAxNjMsIDEyLCAxMywgMjQzLCAxNjIsIDEyLCAxMywgCisgICAgMjQzLCAxNjEsIDEyLCAxMywgMjQzLCAxNjAsIDEyLCAxMywgMjQzLCAxNTksIDEyLCAxMywgMjQzLCAxNTgsIDEyLCAxMywgCisgICAgMjQzLCAxNTcsIDEyLCAxMywgMjQzLCAxNTYsIDEyLCAxMywgMjQzLCAxNTUsIDEyLCAxMywgMjQzLCAxNTQsIDEyLCAxMywgCisgICAgMjQzLCAxNTMsIDEyLCAxMywgMjQzLCAxNTIsIDEyLCAxMywgMjQzLCAxNTEsIDEyLCAxMywgMjQzLCAxNTAsIDEyLCAxMywgCisgICAgMjQzLCAxNDksIDEyLCAxMywgMjQzLCAxNDgsIDEyLCAxMywgMjQzLCAxNDcsIDEyLCAxMywgMjQzLCAxNDYsIDEyLCAxMywgCisgICAgMjQzLCAxNDUsIDEyLCAxMywgMjQzLCAxNDQsIDEyLCAxMywgMjQzLCAxNDMsIDEyLCAxMywgMjQzLCAxNDIsIDEyLCAxMywgCisgICAgMjQzLCAxNDEsIDEyLCAxMywgMjQzLCAxNDAsIDEyLCAxMywgMjQzLCAxMzksIDEyLCAxMywgMjQzLCAxMzgsIDEyLCAxMywgCisgICAgMjQyLCA1OCwgMTIsIDEzLCAyNDIsIDU3LCAxMiwgMTMsIDI0MiwgNTYsIDEyLCAxMywgMjQyLCA1NSwgMTIsIDEzLCAyNDIsIAorICAgIDU0LCAxMiwgMTMsIDI0MiwgNTMsIDEyLCAxMywgMjQyLCA1MiwgMTIsIDEzLCAyNDIsIDUxLCAxMiwgMTMsIDI0MiwgNTAsIAorICAgIDEyLCAxMywgMjQwLCAxMzgsIDEyLCAxMywgMjQwLCAxMzcsIDEyLCAxMywgMjQwLCAxMzYsIDEyLCAxMywgMjQwLCAxMzUsIAorICAgIDEyLCAxMywgMjQwLCAxMzQsIDEyLCAxMywgMjQwLCAxMzMsIDEyLCAxMywgMjQwLCAxMzIsIDEyLCAxMywgMjQwLCAxMzEsIAorICAgIDEyLCAxMywgMjQwLCAxMzAsIDEyLCAxMywgMjQwLCAxMjksIDEyLCAxMywgMjQwLCAxMjgsIDEyLCAxMywgMjQwLCAxMjcsIAorICAgIDEyLCAxMywgMjQwLCAxMjYsIDEyLCAxMywgMjQwLCAxMjUsIDEyLCAxMywgMjQwLCAxMjQsIDEyLCAxMywgMjQwLCAxMjMsIAorICAgIDEyLCAxMywgMjQwLCAxMjIsIDEyLCAxMywgMjQwLCAxMjEsIDEyLCAxMywgMjQwLCAxMjAsIDEyLCAxMywgMjM1LCAyMiwgCisgICAgMTIsIDEzLCAyMzUsIDIxLCAxMiwgMTMsIDIzNSwgMjAsIDEyLCAxMywgMjM1LCAxOSwgMTIsIDEzLCAyMzUsIDE4LCAxMiwgCisgICAgMTMsIDIzNSwgMTcsIDEyLCAxMywgMjM1LCAxNiwgMTIsIDEzLCAyMzUsIDE1LCAxMiwgMTMsIDIzMywgMTQ2LCAxMiwgMTMsIAorICAgIDIzMywgMTQ1LCAxMiwgMTMsIDIzMywgMTQ0LCAxMiwgMTMsIDIzMywgMTQzLCAxMiwgMTMsIDIzMywgMTQyLCAxMiwgMTMsIAorICAgIDIzMywgMTQxLCAxMiwgMTMsIDIzMywgMTQwLCAxMiwgMTMsIDIzMywgMTM5LCAxMiwgMTMsIDIzMywgMTM4LCAxMiwgMTMsIAorICAgIDIzMywgMTM3LCAxMiwgMTMsIDIzMiwgNDksIDEyLCAxMywgMjMyLCA0OCwgMTIsIDEzLCAyMzIsIDQ3LCAxMiwgMTMsIDIzMiwgCisgICAgNDYsIDEyLCAxMywgMjMyLCA0NSwgMTIsIDEzLCAyMzIsIDQ0LCAxMiwgMTMsIDIzMiwgNDMsIDEyLCAxMywgMjMyLCA0MiwgCisgICAgMTIsIDEzLCAyMzIsIDQxLCAxMiwgMTMsIDIzMiwgNDAsIDEyLCAxMywgMjMyLCAzOSwgMTIsIDEzLCAyMzIsIDM4LCAxMiwgCisgICAgMTMsIDIzMiwgMzcsIDEyLCAxMywgMjMyLCAzNiwgMTIsIDEzLCAyMzIsIDM1LCAxMiwgMTMsIDIzMiwgMzQsIDEyLCAxMywgCisgICAgMjMyLCAzMywgMTIsIDEzLCAyMzIsIDMyLCAxMiwgMTMsIDIzMiwgMzEsIDEyLCAxMywgMjMyLCAzMCwgMTIsIDEzLCAyMzIsIAorICAgIDI5LCAxMiwgMTMsIDIzMiwgMjgsIDEyLCAxMywgMjMyLCAyNywgMTIsIDEzLCAyMzIsIDI2LCAxMiwgMTMsIDIzMiwgMjUsIAorICAgIDEyLCAxMywgMjMyLCAyNCwgMTIsIDEzLCAyMzIsIDIzLCAxMiwgMTMsIDIzMiwgMjIsIDEyLCAxMywgMjMyLCAyMSwgMTIsIAorICAgIDEzLCAyMzIsIDIwLCAxMiwgMTMsIDIzMiwgMTksIDEyLCAxMywgMjMyLCAxOCwgMTIsIDEzLCAyMzIsIDE3LCAxMiwgMTMsIAorICAgIDIzMiwgMTYsIDEyLCAxMywgMjMyLCAxNSwgMTIsIDEzLCAyMzIsIDE0LCAxMiwgMTMsIDIzMiwgMTMsIDEyLCAxMywgMjMyLCAKKyAgICAxMiwgMTIsIDEzLCAyMzIsIDExLCAxMiwgMTMsIDIzMiwgMTAsIDEyLCAxMywgMjMyLCA5LCAxMiwgMTMsIDIzMiwgOCwgMTIsIAorICAgIDEzLCAyMzIsIDcsIDEyLCAxMywgMjMyLCA2LCAxMiwgMTMsIDIzMiwgNSwgMTIsIDEzLCAyMzIsIDQsIDEyLCAxMywgMjMyLCAKKyAgICAzLCAxMiwgMTMsIDIzMiwgMiwgMTIsIDEzLCAyMzIsIDEsIDEyLCAxMywgMjMyLCAwLCAxMiwgMTMsIDIzMSwgMjU1LCAxMiwgCisgICAgMTMsIDIzMSwgMjU0LCAxMiwgMTMsIDIzMSwgMjUzLCAxMiwgMTMsIDIzMSwgMjUyLCAxMiwgMTMsIDIzMSwgMjUxLCAxMiwgCisgICAgMTMsIDIzMSwgMjUwLCAxMiwgMTMsIDIzMSwgMjQ5LCAxMiwgMTMsIDIzMSwgMjQ4LCAxMiwgMTMsIDIzMSwgMjQ3LCAxMiwgCisgICAgMTMsIDIzMSwgMjQ2LCAxMiwgMTMsIDIzMSwgMjQ1LCAxMiwgMTMsIDIzMSwgMjQ0LCAxMiwgMTMsIDIzMSwgMjQzLCAxMiwgCisgICAgMTMsIDIzMSwgMjQyLCAxMiwgMTMsIDIzMSwgMjQxLCAxMiwgMTMsIDIzMSwgMjQwLCAxMiwgMTMsIDIzMCwgMjIsIDEyLCAKKyAgICAxMywgMjMwLCAyMSwgMTIsIDEzLCAyMzAsIDIwLCAxMiwgMTMsIDIzMCwgMTksIDEyLCAxMywgMjMwLCAxOCwgMTIsIDEzLCAKKyAgICAyMzAsIDE3LCAxMiwgMTMsIDIzMCwgMTYsIDEyLCAxMywgMjMwLCAxNSwgMTIsIDEzLCAyMzAsIDE0LCAxMiwgMTMsIDIzMCwgCisgICAgMTMsIDEyLCAxMywgMjMwLCAxMiwgMTIsIDEzLCAyMzAsIDExLCAxMiwgMTMsIDIzMCwgMTAsIDEyLCAxMywgMjMwLCA5LCAKKyAgICAxMiwgMTMsIDIzMCwgOCwgMTIsIDEzLCAyMzAsIDcsIDEyLCAxMywgMjMwLCA2LCAxMiwgMTMsIDIzMCwgNSwgMTIsIDEzLCAKKyAgICAyMzAsIDQsIDEyLCAxMywgMjMwLCAzLCAxMiwgMTMsIDIzMCwgMiwgMTIsIDEzLCAyMzAsIDEsIDEyLCAxMywgMjMwLCAwLCAKKyAgICAxMiwgMTMsIDIyOSwgMjU1LCAxMiwgMTMsIDIyOSwgMjU0LCAxMiwgMTMsIDIyOSwgMjUzLCAxMiwgMTMsIDIyOSwgMjUyLCAKKyAgICAxMiwgMTMsIDIyOSwgMjUxLCAxMiwgMTMsIDIyOSwgMjUwLCAxMiwgMTMsIDIyOSwgMjQ5LCAxMiwgMTMsIDIyOSwgMjQ4LCAKKyAgICAxMiwgMTMsIDIyOSwgMjQ3LCAxMiwgMTMsIDIyOSwgMjQ2LCAxMiwgMTMsIDIyOSwgMjQ1LCAxMiwgMTMsIDIyOSwgMjQ0LCAKKyAgICAxMiwgMTMsIDIyOSwgMjQzLCAxMiwgMTMsIDIyOSwgMjQyLCAxMiwgMTMsIDIyOSwgMjQxLCAxMiwgMTMsIDIyOSwgMjQwLCAKKyAgICAxMiwgMTMsIDIyOSwgMjM5LCAxMiwgMTMsIDIyOSwgMjM4LCAxMiwgMTMsIDIyOSwgMjM3LCAxMiwgMTMsIDIyOSwgMjM2LCAKKyAgICAxMiwgMTMsIDIyOSwgMjM1LCAxMiwgMTMsIDIyOSwgMjM0LCAxMiwgMTMsIDIyOSwgMjMzLCAxMiwgMTMsIDIyOSwgMjMyLCAKKyAgICAxMiwgMTMsIDIyOSwgMjMxLCAxMiwgMTMsIDIyOSwgMjMwLCAxMiwgMTMsIDIyOCwgMTM0LCAxMiwgMTMsIDIyOCwgMTMzLCAKKyAgICAxMiwgMTMsIDIyOCwgMTMyLCAxMiwgMTMsIDIyOCwgMTMxLCAxMiwgMTMsIDIyOCwgMTMwLCAxMiwgMTMsIDIyOCwgMTI5LCAKKyAgICAxMiwgMTMsIDIyOCwgMTI4LCAxMiwgMTMsIDIyOCwgMTI3LCAxMiwgMTMsIDIyOCwgMTI2LCAxMiwgMTMsIDIyOCwgMTI1LCAKKyAgICAxMiwgMTMsIDIyOCwgMTI0LCAxMiwgMTMsIDIyOCwgMTIzLCAxMiwgMTMsIDIyOCwgMTIyLCAxMiwgMTMsIDIyOCwgMTIxLCAKKyAgICAxMiwgMTMsIDIyOCwgMTIwLCAxMiwgMTMsIDIyOCwgMTE5LCAxMiwgMTMsIDIyOCwgMTE4LCAxMiwgMTMsIDIyOCwgMTE3LCAKKyAgICAxMiwgMTMsIDIyOCwgMTE2LCAxMiwgMTMsIDIyOCwgMTE1LCAxMiwgMTMsIDIyOCwgMTE0LCAxMiwgMTMsIDIyOCwgMTEzLCAKKyAgICAxMiwgMTMsIDIyNywgMjM2LCAxMiwgMTMsIDIyNywgMjM1LCAxMiwgMTMsIDIyNywgMjM0LCAxMiwgMTMsIDIyNywgMjMzLCAKKyAgICAxMiwgMTMsIDIyNywgMjMyLCAxMiwgMTMsIDIyNywgMjMxLCAxMiwgMTMsIDIyNywgMjMwLCAxMiwgMTMsIDIyNywgMjI5LCAKKyAgICAxMiwgMTMsIDIyNywgMjI4LCAxMiwgMTMsIDIyNywgMjI3LCAxMiwgMTMsIDIyNywgMjI2LCAxMiwgMTMsIDIyNywgMjI1LCAKKyAgICAxMiwgMTMsIDIyNywgMjI0LCAxMiwgMTMsIDIyNywgMjIzLCAxMiwgMTMsIDIyNywgMjIyLCAxMiwgMTMsIDIyNywgMjIxLCAKKyAgICAxMiwgMTMsIDIyNywgMjIwLCAxMiwgMTMsIDIyNywgMjE5LCAxMiwgMTMsIDIyNywgMjE4LCAxMiwgMTMsIDIyNywgMjE3LCAKKyAgICAxMiwgMTMsIDIyNywgMjE2LCAxMiwgMTMsIDIyNywgMjE1LCAxMiwgMTMsIDIyNywgMjE0LCAxMiwgMTMsIDIyNywgMjEzLCAKKyAgICAxMiwgMTMsIDIyNywgMjEyLCAxMiwgMTMsIDIyNywgMjExLCAxMiwgMTMsIDIyNywgNzYsIDEyLCAxMywgMjI3LCA3NSwgMTIsIAorICAgIDEzLCAyMjcsIDc0LCAxMiwgMTMsIDIyNywgNzMsIDEyLCAxMywgMjI3LCA3MiwgMTIsIDEzLCAyMjcsIDcxLCAxMiwgMTMsIAorICAgIDIyNywgNzAsIDEyLCAxMywgMjI3LCA2OSwgMTIsIDEzLCAyMjcsIDY4LCAxMiwgMTMsIDIyNywgNjcsIDEyLCAxMywgMjI3LCAKKyAgICA2NiwgMTIsIDEzLCAyMjcsIDY1LCAxMiwgMTMsIDIyNywgNjQsIDEyLCAxMywgMjI3LCA2MywgMTIsIDEzLCAyMjcsIDYyLCAKKyAgICAxMiwgMTMsIDIyNywgNjEsIDEyLCAxMywgMjI3LCA2MCwgMTIsIDEzLCAyMjcsIDU5LCAxMiwgMTMsIDIyNywgNTgsIDEyLCAKKyAgICAxMywgMjI3LCA1NywgMTIsIDEzLCAyMjcsIDU2LCAxMiwgMTMsIDIyNywgNTUsIDEyLCAxMywgMjI3LCA1NCwgMTIsIDEzLCAKKyAgICAyMjcsIDUzLCAxMiwgMTMsIDIyNywgNTIsIDEyLCAxMywgMjI3LCA1MSwgMTIsIDEzLCAyMjcsIDUwLCAxMiwgMTMsIDIyNywgCisgICAgNDksIDEyLCAxMywgMjI3LCA0OCwgMTIsIDEzLCAyMjcsIDQ3LCAxMiwgMTMsIDIyNywgNDYsIDEyLCAxMywgMjI3LCA0NSwgCisgICAgMTIsIDEzLCAyMjcsIDQ0LCAxMiwgMTMsIDIyNywgNDMsIDEyLCAxMywgMjI3LCA0MiwgMTIsIDEzLCAyMjcsIDQxLCAxMiwgCisgICAgMTMsIDIyNywgNDAsIDEyLCAxMywgMjI3LCAzOSwgMTIsIDEzLCAyMjcsIDM4LCAxMiwgMTMsIDIyNywgMzcsIDEyLCAxMywgCisgICAgMjI3LCAzNiwgMTIsIDEzLCAyMjcsIDM1LCAxMiwgMTMsIDIyNywgMzQsIDEyLCAxMywgMjI3LCAzMywgMTIsIDEzLCAyMjcsIAorICAgIDMyLCAxMiwgMTMsIDIyNywgMzEsIDEyLCAxMywgMjI3LCAzMCwgMTIsIDEzLCAyMjcsIDI5LCAxMiwgMTMsIDIyNywgMjgsIAorICAgIDEyLCAxMywgMjI3LCAyNywgMTIsIDEzLCAyMjcsIDI2LCAxMiwgMTMsIDIyNywgMjUsIDEyLCAxMywgMjI3LCAyNCwgMTIsIAorICAgIDEzLCAyMjcsIDIzLCAxMiwgMTMsIDIyNywgMjIsIDEyLCAxMywgMjI3LCAyMSwgMTIsIDEzLCAyMjcsIDIwLCAxMiwgMTMsIAorICAgIDIyNywgMTksIDEyLCAxMywgMjI3LCAxOCwgMTIsIDEzLCAyMjcsIDE3LCAxMiwgMTMsIDIyNywgMTYsIDEyLCAxMywgMjI3LCAKKyAgICAxNSwgMTIsIDEzLCAyMjcsIDE0LCAxMiwgMTMsIDIyNywgMTMsIDEyLCAxMywgMjI3LCAxMiwgMTIsIDEzLCAyMjcsIDExLCAKKyAgICAxMiwgMTMsIDIyNywgMTAsIDEyLCAxMywgMjI3LCA5LCAxMiwgMTMsIDIyNywgOCwgMTIsIDEzLCAyMjcsIDcsIDEyLCAxMywgCisgICAgMjI3LCA2LCAxMiwgMTMsIDIyNywgNSwgMTIsIDEzLCAyMjcsIDQsIDEyLCAxMywgMjI3LCAzLCAxMiwgMTMsIDIyNywgMiwgCisgICAgMTIsIDEzLCAyMjYsIDEwNCwgMTIsIDEzLCAyMjYsIDEwMywgMTIsIDEzLCAyMjYsIDEwMiwgMTIsIDEzLCAyMjYsIDEwMSwgCisgICAgMTIsIDEzLCAyMjYsIDEwMCwgMTIsIDEzLCAyMjYsIDk5LCAxMiwgMTMsIDIyNiwgOTgsIDEyLCAxMywgMjI2LCA5NywgMTIsIAorICAgIDEzLCAyMjYsIDk2LCAxMiwgMTMsIDIyNiwgOTUsIDEyLCAxMywgMjI2LCA5NCwgMTIsIDEzLCAyMjYsIDkzLCAxMiwgMTMsIAorICAgIDIyNiwgOTIsIDEyLCAxMywgMjI0LCA5NSwgMTIsIDEzLCAyMjQsIDk0LCAxMiwgMTMsIDIyNCwgOTMsIDEyLCAxMywgMjI0LCAKKyAgICA5MiwgMTIsIDEzLCAyMjQsIDkxLCAxMiwgMTMsIDIyNCwgOTAsIDEyLCAxMywgMjI0LCA4OSwgMTIsIDEzLCAyMjMsIDIyMiwgCisgICAgMTIsIDEzLCAyMjMsIDIyMSwgMTIsIDEzLCAyMjMsIDIyMCwgMTIsIDEzLCAyMjMsIDIxOSwgMTIsIDEzLCAyMjMsIDIxOCwgCisgICAgMTIsIDEzLCAyMjMsIDIxNywgMTIsIDEzLCAyMjMsIDIxNiwgMTIsIDEzLCAyMjMsIDIxNSwgMTIsIDEzLCAyMjMsIDIxNCwgCisgICAgMTIsIDEzLCAyMjMsIDIxMywgMTIsIDEzLCAyMjMsIDIxMiwgMTIsIDEzLCAyMjMsIDIxMSwgMTIsIDEzLCAyMjMsIDIxMCwgCisgICAgMTIsIDEzLCAyMjMsIDIwOSwgMTIsIDEzLCAyMjMsIDIwOCwgMTIsIDEzLCAyMjMsIDIwNywgMTIsIDEzLCAyMjMsIDIwNiwgCisgICAgMTIsIDEzLCAyMjMsIDIwNSwgMTIsIDEzLCAyMjMsIDIwNCwgMTIsIDEzLCAyMjMsIDIwMywgMTIsIDEzLCAyMjMsIDIwMiwgCisgICAgMTIsIDEzLCAyMjMsIDIwMSwgMTIsIDEzLCAyMjMsIDIwMCwgMTIsIDEzLCAyMjMsIDE5OSwgMTIsIDEzLCAyMjMsIDE5OCwgCisgICAgMTIsIDEzLCAyMjMsIDE5NywgMTIsIDEzLCAyMjMsIDE5NiwgMTIsIDEzLCAyMjMsIDE5NSwgMTIsIDEzLCAyMjMsIDE5NCwgCisgICAgMTIsIDEzLCAyMjMsIDE5MywgMTIsIDEzLCAyMjMsIDE5MiwgMTIsIDEzLCAyMjMsIDE5MSwgMTIsIDEzLCAyMjMsIDE5MCwgCisgICAgMTIsIDEzLCAyMjMsIDE4OSwgMTIsIDEzLCAyMjIsIDg4LCAxMiwgMTMsIDIyMiwgODcsIDEyLCAxMywgMjIyLCA4NiwgMTIsIAorICAgIDEzLCAyMjIsIDg1LCAxMiwgMTMsIDIyMiwgODQsIDEyLCAxMywgMjIyLCA4MywgMTIsIDEzLCAyMjIsIDgyLCAxMiwgMTMsIAorICAgIDIyMiwgODEsIDEyLCAxMywgMjIyLCA4MCwgMTIsIDEzLCAyMjIsIDc5LCAxMiwgMTMsIDIyMiwgNzgsIDEyLCAxMywgMjIyLCAKKyAgICA3NywgMTIsIDEzLCAyMjIsIDc2LCAxMiwgMTMsIDIyMiwgNzUsIDEyLCAxMywgMjIyLCA3NCwgMTIsIDEzLCAyMjIsIDczLCAKKyAgICAxMiwgMTMsIDIyMiwgNzIsIDEyLCAxMywgMjIyLCA3MSwgMTIsIDEzLCAyMjIsIDcwLCAxMiwgMTMsIDIyMiwgNjksIDEyLCAKKyAgICAxMywgMjIyLCA2OCwgMTIsIDEzLCAyMjIsIDY3LCAxMiwgMTMsIDIyMiwgNjYsIDEyLCAxMywgMjIyLCA2NSwgMTIsIDEzLCAKKyAgICAyMjIsIDY0LCAxMiwgMTMsIDIyMiwgNjMsIDEyLCAxMywgMjIyLCA2MiwgMTIsIDEzLCAyMjIsIDYxLCAxMiwgMTMsIDIyMiwgCisgICAgNjAsIDEyLCAxMywgMjIyLCA1OSwgMTIsIDEzLCAyMjIsIDU4LCAxMiwgMTMsIDIyMiwgNTcsIDEyLCAxMywgMjIyLCA1NiwgCisgICAgMTIsIDEzLCAyMjIsIDU1LCAxMiwgMTMsIDIyMiwgNTQsIDEyLCAxMywgMjIyLCA1MywgMTIsIDEzLCAyMjIsIDUyLCAxMiwgCisgICAgMTMsIDIyMiwgNTEsIDEyLCAxMywgMjIyLCA1MCwgMTIsIDEzLCAyMjIsIDQ5LCAxMiwgMTMsIDIyMiwgNDgsIDEyLCAxMywgCisgICAgMjIyLCA0NywgMTIsIDEzLCAyMjIsIDQ2LCAxMiwgMTMsIDIyMiwgNDUsIDEyLCAxMywgMjIyLCA0NCwgMTIsIDEzLCAyMjIsIAorICAgIDQzLCAxMiwgMTMsIDIyMiwgNDIsIDEyLCAxMywgMjIyLCA0MSwgMTIsIDEzLCAyMjIsIDQwLCAxMiwgMTMsIDIyMiwgMzksIAorICAgIDEyLCAxMywgMjIyLCAzOCwgMTIsIDEzLCAyMjIsIDM3LCAxMiwgMTMsIDIyMiwgMzYsIDEyLCAxMywgMjIyLCAzNSwgMTIsIAorICAgIDEzLCAyMTcsIDE1MCwgMTIsIDEzLCAyMTcsIDE0OSwgMTIsIDEzLCAyMTcsIDE0OCwgMTIsIDEzLCAyMTcsIDE0NywgMTIsIAorICAgIDEzLCAyMTcsIDE0NiwgMTIsIDEzLCAyMTcsIDE0NSwgMTIsIDEzLCAyMTcsIDE0NCwgMTIsIDEzLCAyMTcsIDE0MywgMTIsIAorICAgIDEzLCAyMTcsIDE0MiwgMTIsIDEzLCAyMTcsIDE0MSwgMTIsIDEzLCAyMTcsIDE0MCwgMTIsIDEzLCAyMTcsIDEzOSwgMTIsIAorICAgIDEzLCAyMTcsIDEzOCwgMTIsIDEzLCAyMTcsIDEzNywgMTIsIDEzLCAyMTcsIDEzNiwgMTIsIDEzLCAyMTcsIDEzNSwgMTIsIAorICAgIDEzLCAyMTcsIDEzNCwgMTIsIDEzLCAyMTcsIDEzMywgMTIsIDEzLCAyMTcsIDEzMiwgMTIsIDEzLCAyMTcsIDEzMSwgMTIsIAorICAgIDEzLCAyMTcsIDEzMCwgMTIsIDEzLCAyMTcsIDEyOSwgMTIsIDEzLCAyMTcsIDEyOCwgMTIsIDEzLCAyMTcsIDEyNywgMTIsIAorICAgIDEzLCAyMTcsIDEyNiwgMTIsIDEzLCAyMTcsIDEyNSwgMTIsIDEzLCAyMTcsIDEyNCwgMTIsIDEzLCAyMTcsIDEyMywgMTIsIAorICAgIDEzLCAyMTcsIDEyMiwgMTIsIDEzLCAyMTcsIDEyMSwgMTIsIDEzLCAyMTcsIDEyMCwgMTIsIDEzLCAyMTcsIDExOSwgMTIsIAorICAgIDEzLCAyMTcsIDExOCwgMTIsIDEzLCAyMTcsIDExNywgMTIsIDEzLCAyMTcsIDExNiwgMTIsIDEzLCAyMTcsIDExNSwgMTIsIAorICAgIDEzLCAyMTcsIDExNCwgMTIsIDEzLCAyMTcsIDExMywgMTIsIDEzLCAyMTcsIDExMiwgMTIsIDEzLCAyMTcsIDExMSwgMTIsIAorICAgIDEzLCAyMTcsIDExMCwgMTIsIDEzLCAyMTcsIDEwOSwgMTIsIDEzLCAyMTcsIDEwOCwgMTIsIDEzLCAyMTcsIDEwNywgMTIsIAorICAgIDEzLCAyMTUsIDIyLCAxMiwgMTMsIDIxNSwgMjEsIDEyLCAxMywgMjE1LCAyMCwgMTIsIDEzLCAyMTUsIDE5LCAxMiwgMTMsIAorICAgIDIxNSwgMTgsIDEyLCAxMywgMjE1LCAxNywgMTIsIDEzLCAyMTUsIDE2LCAxMiwgMTMsIDIxNSwgMTUsIDEyLCAxMywgMjE1LCAKKyAgICAxNCwgMTIsIDEzLCAyMTUsIDEzLCAxMiwgMTMsIDIxNSwgMTIsIDEyLCAxMywgMjE1LCAxMSwgMTIsIDEzLCAyMTUsIDEwLCAKKyAgICAxMiwgMTMsIDIxNSwgOSwgMTIsIDEzLCAyMTUsIDgsIDEyLCAxMywgMjE1LCA3LCAxMiwgMTMsIDIxNSwgNiwgMTIsIDEzLCAKKyAgICAyMTUsIDUsIDEyLCAxMywgMjE1LCA0LCAxMiwgMTMsIDIxNSwgMywgMTIsIDEzLCAyMTUsIDIsIDEyLCAxMywgMjE1LCAxLCAKKyAgICAxMiwgMTMsIDIxNSwgMCwgMTIsIDEzLCAyMTQsIDI1NSwgMTIsIDEzLCAyMTQsIDI1NCwgMTIsIDEzLCAyMTQsIDI1MywgMTIsIAorICAgIDEzLCAyMTQsIDI1MiwgMTIsIDEzLCAyMTQsIDI1MSwgMTIsIDEzLCAyMTQsIDI1MCwgMTIsIDEzLCAyMTQsIDI0OSwgMTIsIAorICAgIDEzLCAyMTQsIDI0OCwgMTIsIDEzLCAyMTQsIDI0NywgMTIsIDEzLCAyMTQsIDI0NiwgMTIsIDEzLCAyMTQsIDI0NSwgMTIsIAorICAgIDEzLCAyMTQsIDI0NCwgMTIsIDEzLCAyMTQsIDI0MywgMTIsIDEzLCAyMTQsIDI0MiwgMTIsIDEzLCAyMTQsIDI0MSwgMTIsIAorICAgIDEzLCAyMTQsIDI0MCwgMTIsIDEzLCAyMTQsIDIzOSwgMTIsIDEzLCAyMTQsIDIzOCwgMTIsIDEzLCAyMTQsIDIzNywgMTIsIAorICAgIDEzLCAyMTQsIDIzNiwgMTIsIDEzLCAyMTQsIDIzNSwgMTIsIDEzLCAyMTQsIDIzNCwgMTIsIDEzLCAyMTQsIDIzMywgMTIsIAorICAgIDEzLCAyMTQsIDIzMiwgMTIsIDEzLCAyMTQsIDEwNCwgMTIsIDEzLCAyMTQsIDEwMywgMTIsIDEzLCAyMTQsIDEwMiwgMTIsIAorICAgIDEzLCAyMTQsIDEwMSwgMTIsIDEzLCAyMTQsIDEwMCwgMTIsIDEzLCAyMTQsIDk5LCAxMiwgMTMsIDIxNCwgOTgsIDEyLCAxMywgCisgICAgMjE0LCA5NywgMTIsIDEzLCAyMTQsIDk2LCAxMiwgMTMsIDIxNCwgOTUsIDEyLCAxMywgMjE0LCA5NCwgMTIsIDEzLCAyMTQsIAorICAgIDkzLCAxMiwgMTMsIDIxNCwgOTIsIDEyLCAxMywgMjE0LCA5MSwgMTIsIDEzLCAyMTQsIDkwLCAxMiwgMTMsIDIxNCwgODksIAorICAgIDEyLCAxMywgMjE0LCA4OCwgMTIsIDEzLCAyMTQsIDg3LCAxMiwgMTMsIDIxNCwgODYsIDEyLCAxMywgMjE0LCA4NSwgMTIsIAorICAgIDEzLCAyMTQsIDg0LCAxMiwgMTMsIDIxNCwgODMsIDEyLCAxMywgMjE0LCA4MiwgMTIsIDEzLCAyMTQsIDgxLCAxMiwgMTMsIAorICAgIDIxNCwgODAsIDEyLCAxMywgMjE0LCA3OSwgMTIsIDEzLCAyMTQsIDc4LCAxMiwgMTMsIDIxNCwgNzcsIDEyLCAxMywgMjE0LCAKKyAgICA3NiwgMTIsIDEzLCAyMTQsIDc1LCAxMiwgMTMsIDIxNCwgNzQsIDEyLCAxMywgMjE0LCA3MywgMTIsIDEzLCAyMTQsIDcyLCAKKyAgICAxMiwgMTMsIDIxNCwgNzEsIDEyLCAxMywgMjE0LCA3MCwgMTIsIDEzLCAyMTQsIDY5LCAxMiwgMTMsIDIxNCwgNjgsIDEyLCAKKyAgICAxMywgMjE0LCA2NywgMTIsIDEzLCAyMTQsIDY2LCAxMiwgMTMsIDIxNCwgNjUsIDEyLCAxMywgMjE0LCA2NCwgMTIsIDEzLCAKKyAgICAyMTQsIDYzLCAxMiwgMTMsIDIxNCwgNjIsIDEyLCAxMywgMjE0LCA2MSwgMTIsIDEzLCAyMTQsIDYwLCAxMiwgMTMsIDIxNCwgCisgICAgNTksIDEyLCAxMywgMjE0LCA1OCwgMTIsIDEzLCAyMTQsIDU3LCAxMiwgMTMsIDIxNCwgNTYsIDEyLCAxMywgMjE0LCA1NSwgCisgICAgMTIsIDEzLCAyMTQsIDU0LCAxMiwgMTMsIDIxNCwgNTMsIDEyLCAxMywgMjE0LCA1MiwgMTIsIDEzLCAyMTQsIDUxLCAxMiwgCisgICAgMTMsIDIxNCwgNTAsIDEyLCAxMywgMjE0LCA0OSwgMTIsIDEzLCAyMTQsIDQ4LCAxMiwgMTMsIDIxNCwgNDcsIDEyLCAxMywgCisgICAgMjE0LCA0NiwgMTIsIDEzLCAyMTQsIDQ1LCAxMiwgMTMsIDIxNCwgNDQsIDEyLCAxMywgMjE0LCA0MywgMTIsIDEzLCAyMTQsIAorICAgIDQyLCAxMiwgMTMsIDIxNCwgNDEsIDEyLCAxMywgMjE0LCA0MCwgMTIsIDEzLCAyMTQsIDM5LCAxMiwgMTMsIDIxNCwgMzgsIAorICAgIDEyLCAxMywgMjE0LCAzNywgMTIsIDEzLCAyMTQsIDM2LCAxMiwgMTMsIDIxNCwgMzUsIDEyLCAxMywgMjE0LCAzNCwgMTIsIAorICAgIDEzLCAyMTQsIDMzLCAxMiwgMTMsIDIxNCwgMzIsIDEyLCAxMywgMjE0LCAzMSwgMTIsIDEzLCAyMTQsIDMwLCAxMiwgMTMsIAorICAgIDIxNCwgMjksIDEyLCAxMywgMjE0LCAyOCwgMTIsIDEzLCAyMTIsIDk3LCAxMiwgMTMsIDIxMiwgOTYsIDEyLCAxMywgMjEyLCAKKyAgICA5NSwgMTIsIDEzLCAyMTIsIDk0LCAxMiwgMTMsIDIxMiwgOTMsIDEyLCAxMywgMjEyLCA5MiwgMTIsIDEzLCAyMTIsIDkxLCAKKyAgICAxMiwgMTMsIDIxMiwgOTAsIDEyLCAxMywgMjEyLCA4OSwgMTIsIDEzLCAyMTIsIDg4LCAxMiwgMTMsIDIxMiwgODcsIDEyLCAKKyAgICAxMywgMjEyLCA4NiwgMTIsIDEzLCAyMTIsIDg1LCAxMiwgMTMsIDIxMiwgODQsIDEyLCAxMywgMjEyLCA4MywgMTIsIDEzLCAKKyAgICAyMTIsIDgyLCAxMiwgMTMsIDIxMiwgODEsIDEyLCAxMywgMjEyLCA4MCwgMTIsIDEzLCAyMTIsIDc5LCAxMiwgMTMsIDIxMiwgCisgICAgNzgsIDEyLCAxMywgMjEyLCA3NywgMTIsIDEzLCAyMTIsIDc2LCAxMiwgMTMsIDIxMiwgNzUsIDEyLCAxMywgMjEyLCA3NCwgCisgICAgMTIsIDEzLCAyMTIsIDczLCAxMiwgMTMsIDIxMiwgNzIsIDEyLCAxMywgMjEyLCA3MSwgMTIsIDEzLCAyMTIsIDcwLCAxMiwgCisgICAgMTMsIDIxMiwgNjksIDEyLCAxMywgMjEyLCA2OCwgMTIsIDEzLCAyMTIsIDY3LCAxMiwgMTMsIDIxMiwgNjYsIDEyLCAxMywgCisgICAgMjExLCAxNzcsIDEyLCAxMywgMjExLCAxNzYsIDEyLCAxMywgMjExLCAxNzUsIDEyLCAxMywgMjExLCAxNzQsIDEyLCAxMywgCisgICAgMjExLCAxNzMsIDEyLCAxMywgMjExLCAxNzIsIDEyLCAxMywgMjExLCAxNzEsIDEyLCAxMywgMjExLCAxNzAsIDEyLCAxMywgCisgICAgMjExLCAxNjksIDEyLCAxMywgMjExLCAxNjgsIDEyLCAxMywgMjExLCAxNjcsIDEyLCAxMywgMjExLCAxNjYsIDEyLCAxMywgCisgICAgMjExLCAxMTUsIDEyLCAxMywgMjExLCAxMTQsIDEyLCAxMywgMjExLCAxMTMsIDEyLCAxMywgMjExLCAxMTIsIDEyLCAxMywgCisgICAgMjExLCAxMTEsIDEyLCAxMywgMjExLCAxMTAsIDEyLCAxMywgMjExLCAxMDksIDEyLCAxMywgMjExLCAxMDgsIDEyLCAxMywgCisgICAgMjExLCAxMDcsIDEyLCAxMywgMjEwLCAxNTgsIDEyLCAxMywgMjEwLCAxNTcsIDEyLCAxMywgMjEwLCAxNTYsIDEyLCAxMywgCisgICAgMjEwLCAxNTUsIDEyLCAxMywgMjEwLCAxNTQsIDEyLCAxMywgMjEwLCAxNTMsIDEyLCAxMywgMjEwLCAxNTIsIDEyLCAxMywgCisgICAgMjEwLCAxNTEsIDEyLCAxMywgMjEwLCAxNTAsIDEyLCAxMywgMjEwLCAxNDksIDEyLCAxMywgMjEwLCAxNDgsIDEyLCAxMywgCisgICAgMjEwLCAxNDcsIDEyLCAxMywgMjEwLCAxNDYsIDEyLCAxMywgMjEwLCAxNDUsIDEyLCAxMywgMjEwLCAxNDQsIDEyLCAxMywgCisgICAgMjEwLCAxNDMsIDEyLCAxMywgMjEwLCAxNDIsIDEyLCAxMywgMjEwLCAxNDEsIDEyLCAxMywgMjEwLCAxNDAsIDEyLCAxMywgCisgICAgMjEwLCAxMzksIDEyLCAxMywgMjEwLCAxMzgsIDEyLCAxMywgMjEwLCAxMzcsIDEyLCAxMywgMjEwLCAxMzYsIDEyLCAxMywgCisgICAgMjEwLCAxMzUsIDEyLCAxMywgMjEwLCAxMzQsIDEyLCAxMywgMjEwLCAxMzMsIDEyLCAxMywgMjEwLCAxMzIsIDEyLCAxMywgCisgICAgMjEwLCAxMzEsIDEyLCAxMywgMjEwLCAxMzAsIDEyLCAxMywgMjEwLCAxMjksIDEyLCAxMywgMjEwLCAxMjgsIDEyLCAxMywgCisgICAgMjEwLCAxMjcsIDEyLCAxMywgMjEwLCAxMjYsIDEyLCAxMywgMjEwLCAxMjUsIDEyLCAxMywgMjEwLCAxMjQsIDEyLCAxMywgCisgICAgMjEwLCAxMjMsIDEyLCAxMywgMjEwLCAxMjIsIDEyLCAxMywgMjEwLCAxMjEsIDEyLCAxMywgMjEwLCAxMjAsIDEyLCAxMywgCisgICAgMjEwLCAxMTksIDEyLCAxMywgMjEwLCAxMTgsIDEyLCAxMywgMjU1LCA3MiwgMTIsIDEzLCAyNTUsIDcxLCAxMiwgMTMsIAorICAgIDI1NSwgNzAsIDEyLCAxMywgMjU1LCA2OSwgMTIsIDEzLCAyNTUsIDY4LCAxMiwgMTMsIDI1NSwgNjcsIDEyLCAxMywgMjU1LCAKKyAgICA2NiwgMTIsIDEzLCAyNTUsIDY1LCAxMiwgMTMsIDI1NSwgNjQsIDEyLCAxMywgMjU1LCA2MywgMTIsIDEzLCAyNTUsIDYyLCAKKyAgICAxMiwgMTMsIDI1NSwgNjEsIDEyLCAxMywgMjU1LCA2MCwgMTIsIDEzLCAyNTUsIDU5LCAxMiwgMTMsIDI1NSwgNTgsIDEyLCAKKyAgICAxMywgMjU1LCA1NywgMTIsIDEzLCAyNTUsIDU2LCAxMiwgMTMsIDI1NSwgNTUsIDEyLCAxMywgMjU1LCA1NCwgMTIsIDEzLCAKKyAgICAyNTUsIDUzLCAxMiwgMTMsIDI1NSwgNTIsIDEyLCAxMywgMjU1LCA1MSwgMTIsIDEzLCAyNTUsIDUwLCAxMiwgMTMsIDI1NSwgCisgICAgNDksIDEyLCAxMywgMjU1LCA0OCwgMTIsIDEzLCAyNTUsIDQ3LCAxMiwgMTMsIDI1NSwgNDYsIDEyLCAxMywgMjU1LCA0NSwgCisgICAgMTIsIDEzLCAyNTUsIDQ0LCAxMiwgMTMsIDI1NSwgNDMsIDEyLCAxMywgMjU1LCA0MiwgMTIsIDEzLCAyNTUsIDQxLCAxMiwgCisgICAgMTMsIDI1NSwgNDAsIDEyLCAxMywgMjU1LCAzOSwgMjAsIDEsIDE2NywgMjI5LCAxMiwgMjMxLCAxNiwgMjAsIDEsIDE2NywgCisgICAgMjQzLCA3MCwgMjQ0LCAzNiwgMjAsIDEsIDE2NywgMjI0LCAyNTEsIDIzMSwgMTcsIDIyNSwgNTcsIDIwLCAxLCAxNjcsIAorICAgIDIyNCwgMjUxLCAyMzEsIDE3LCAyMjUsIDU4LCAyMCwgMSwgMTY3LCAyMjksIDIyNiwgMjMxLCAxNiwgMjAsIDEsIDE2NywgCisgICAgMjE5LCAyMjEsIDIwLCAxLCAxNjcsIDIxNiwgNjYsIDIzMSwgMTYsIDIwLCAxLCAxNjcsIDIyNywgMTE4LCAyMzEsIDE2LCAKKyAgICAyMCwgMSwgMTY3LCAyMjAsIDE5LCAyMjYsIDkwLCAyMjgsIDE2OSwgMjAsIDEsIDE2NywgMjI0LCAyNTEsIDIyNiwgOTAsIAorICAgIDIyOCwgMTcwLCAyMjUsIDU3LCAyMCwgMSwgMTY3LCAyMjQsIDI1MSwgMjI2LCA5MCwgMjI4LCAxNzAsIDIyNSwgNTgsIDIwLCAKKyAgICAxLCAxNjcsIDIzMSwgMjE4LCAyMCwgMSwgMTY3LCAyMTUsIDExOSwgMjMxLCAyMTksIDIwLCAxLCAxNjcsIDIyOSwgNzEsIAorICAgIDIwLCAxLCAxNjcsIDIzMSwgMjE1LCAyMCwgMSwgMTY3LCAyMzEsIDE3NiwgMjAsIDEsIDE2NywgMjMwLCA0OCwgMjAsIDEsIAorICAgIDE2NywgMjIwLCAxMjQsIDIwLCAxLCAxNjcsIDIyNywgMjQxLCAyMCwgMSwgMTY3LCAyMzQsIDE0OSwgMjAsIDEsIDE2NywgCisgICAgMjI4LCAxMzgsIDIwLCAxLCAxNjcsIDIxOCwgNCwgMjAsIDEsIDE2NywgMjI5LCAxMSwgMjAsIDEsIDE2NywgMjMzLCA4NywgCisgICAgMjAsIDEsIDE2NywgMjMzLCAxMiwgMjMzLCAxODksIDIwLCAxLCAxNjcsIDIyNywgMjQ4LCAyMzEsIDI0LCAyMCwgMSwgMTY3LCAKKyAgICAyMzEsIDIyMiwgMjAsIDEsIDE2NywgMjI1LCAyNDYsIDIwLCAxLCAxNjcsIDI0MiwgMjMxLCAyMCwgMSwgMTY3LCAyMjYsIAorICAgIDUwLCAyMCwgMSwgMTY3LCAyMzAsIDE1MSwgMjI5LCA0NSwgMjAsIDEsIDE2NywgMjI3LCA5OSwgMjMxLCAyNywgMjAsIDEsIAorICAgIDE2NywgMTA0LCAyMTAsIDE4OCwgMjI5LCAyMjAsIDIwLCAxLCAxNjcsIDI0MiwgMjMyLCAyMCwgMSwgMTY3LCAyMjcsIDI0OCwgCisgICAgMjI3LCAyNDksIDIwLCAxLCAxNjcsIDIxOSwgMTI4LCAyMCwgMSwgMTY3LCAyMzEsIDksIDIwLCAxLCAxNjcsIDIzMSwgMzAsIAorICAgIDIwLCAxLCAxNjcsIDIzMCwgMTMwLCAyMCwgMSwgMTY3LCAyMzQsIDI0OSwgMjAsIDEsIDE2NywgMjI2LCA5MCwgMjMzLCA0NywgCisgICAgMjAsIDEsIDE2NywgMjI5LCAxNDksIDIzMywgNDcsIDIwLCAxLCAxNjcsIDIyNSwgMTU4LCAyMCwgMSwgMTY3LCAyMzEsIAorICAgIDIxNiwgMjAsIDEsIDE2NywgMjI4LCAyMDcsIDIwLCAxLCAxNjcsIDIyNCwgMTM0LCAyMCwgMSwgMTY3LCAyMTUsIDExNiwgCisgICAgMjAsIDEsIDE2NywgMjMyLCA5NCwgMjAsIDEsIDE2NywgMjE5LCA0MSwgMjAsIDEsIDE2NywgMjE2LCAyMTYsIDIwLCAxLCAKKyAgICAxNjcsIDIzMSwgMjEzLCAyMCwgMSwgMTY3LCAyMzQsIDE1NiwgMjAsIDEsIDE2NywgMjI5LCAxNDUsIDIwLCAxLCAxNjcsIAorICAgIDIzMywgMjAxLCAyMCwgMSwgMTY3LCAyMzAsIDEzMSwgMjAsIDEsIDE2NywgMjE5LCAyMTgsIDIwLCAxLCAxNjcsIDIzMiwgCisgICAgMTM4LCAyMCwgMSwgMTY3LCAyNDQsIDkzLCAyMCwgMSwgMTY3LCAyMjIsIDE5OSwgMjAsIDEsIDE2NywgMjMzLCAyNDEsIDIwLCAKKyAgICAxLCAxNjcsIDIxOSwgMzcsIDIwLCAxLCAxNjcsIDIzMSwgMTczLCAyMjUsIDk5LCAyMCwgMSwgMTY3LCAyMjAsIDEyLCAyMCwgCisgICAgMSwgMTY3LCAyMjcsIDI0NywgMjAsIDEsIDE2NywgMjE5LCAyNTMsIDIyOCwgMiwgMjEwLCAxOTYsIDIwLCAxLCAxNjcsIAorICAgIDIyNywgMTM4LCAyMzAsIDE0OCwgMjAsIDEsIDE2NywgMjI2LCA4NSwgMjAsIDEsIDE2NywgMjI4LCAxMzksIDIwLCAxLCAKKyAgICAxNjcsIDIxNCwgMTcwLCAyMCwgMSwgMTY3LCAyMjksIDQ4LCAyMCwgMSwgMTY3LCAyMzEsIDIxMiwgMjAsIDEsIDE2NywgCisgICAgMjI4LCAxODEsIDIwLCAxLCAxNjcsIDIzMSwgMTE5LCAyMCwgMSwgMTY3LCAyMjcsIDE1MSwgMjAsIDEsIDE2NywgMjE2LCAKKyAgICAyMjAsIDIwLCAxLCAxNjcsIDIxOSwgMzQsIDIwLCAxLCAxNjcsIDIyNiwgODYsIDIwLCAxLCAxNjcsIDIyOCwgNiwgMjAsIDEsIAorICAgIDE2NywgMjMxLCAyMjAsIDIwLCAxLCAxNjcsIDIyNywgMTQ4LCAyMCwgMSwgMTY3LCAyMzQsIDIxNiwgMjAsIDEsIDE2NywgCisgICAgMjI4LCA5LCAyMCwgMSwgMTY3LCAyMTMsIDI1MCwgMjAsIDEsIDE2NywgMjMyLCA5OCwgMjAsIDEsIDE2NywgMjI5LCA5OCwgCisgICAgMjAsIDEsIDE2NywgMjI5LCAxOTYsIDIwLCAxLCAxNjcsIDIzMSwgMTE4LCAyMCwgMSwgMjI1LCAxMzgsIDIyOCwgNCwgMjAsIAorICAgIDEsIDIyNSwgMTM4LCAyMTUsIDExOSwgMjMxLCAyMTcsIDIwLCAxLCAyMjUsIDEzOCwgMjE5LCAxODUsIDIwLCAxLCAyMjUsIAorICAgIDEzOCwgMjIwLCAxMjgsIDIxNSwgMTE4LCAyMCwgMSwgMjI1LCAxMzgsIDIzMiwgMTQwLCAyMjcsIDI0NCwgMjAsIDEsIDIyNSwgCisgICAgMTM4LCAyMzEsIDEyNSwgMjMxLCAyMjEsIDIwLCAxLCAyMjUsIDEzOCwgMjM0LCA4NywgMjAsIDEsIDIyNSwgMTM4LCAyMTEsIAorICAgIDE1LCAyMCwgMSwgMjI1LCAxMzgsIDIzMSwgMTIwLCAyMCwgMSwgMjI1LCAxMzgsIDIzNCwgMjM3LCAyMCwgMSwgMjI1LCAKKyAgICAxMzgsIDIyNSwgMjA4LCAyMCwgMSwgMjI1LCAxMzgsIDIxMSwgODksIDIzMywgNDcsIDIwLCAxLCAyMjUsIDEzOCwgMjMzLCAKKyAgICAxMDMsIDIyOCwgMiwgMjI3LCAxNjAsIDIwLCAxLCAyMjUsIDEzOCwgMjI3LCAyNDIsIDIyMCwgMzgsIDIwLCAxLCAyMjUsIAorICAgIDEzOCwgMjI5LCAxMTYsIDIyOCwgMTg0LCAyMCwgMSwgMjI1LCAxMzgsIDI0MiwgMjI5LCAyMCwgMSwgMjI1LCAxMzgsIDIyNSwgCisgICAgNDksIDIwLCAxLCAyMjUsIDEzOCwgMjE1LCAxMTksIDIyOCwgMCwgMjAsIDEsIDIyNSwgMTM4LCAyMjAsIDQzLCAyMjgsIAorICAgIDE3OSwgMjAsIDEsIDIyNSwgMTM4LCAyMjAsIDM5LCAyMCwgMSwgMjI1LCAxMzgsIDIzMSwgMTcsIDIxNiwgMjE5LCAyMCwgMSwgCisgICAgMjI1LCAxMzgsIDIzMSwgMTA3LCAyMzEsIDEyMSwgMjAsIDEsIDIyNSwgMTM4LCAyMjcsIDE0OSwgMjI3LCAyNDQsIDIwLCAxLCAKKyAgICAyMjUsIDEzOCwgMjM0LCAxNDUsIDIwLCAxLCAyMjUsIDEzOCwgMjQyLCAyMzAsIDIwLCAxLCAyMjUsIDEzOCwgMjM0LCAxNDEsIAorICAgIDIwLCAxLCAyMjUsIDEzOCwgMjMzLCAxMjksIDIwLCAxLCAyMjUsIDEzOCwgMjI1LCAyNDksIDIwLCAxLCAyMjUsIDEzOCwgCisgICAgMjEzLCAxODIsIDIwLCAxLCAyMjUsIDEzOCwgMjI5LCAxMywgMjMwLCA0NiwgMjAsIDEsIDIyNSwgMTM4LCAyMjksIDQ3LCAKKyAgICAyMzEsIDEwMywgMjAsIDEsIDIyNSwgMTM4LCAyMTEsIDE5MywgMjAsIDEsIDIyNSwgMTM4LCAyMjIsIDExLCAyMCwgMSwgCisgICAgMjI1LCAxMzgsIDIxNywgOTcsIDIwLCAxLCAyMjUsIDEzOCwgMjMxLCAyOSwgMjAsIDEsIDIyNSwgMTM4LCAyMjksIDMyLCAKKyAgICAyMCwgMSwgMjI1LCAxMzgsIDIyOSwgMzMsIDIzMywgODQsIDIwLCAxLCAyMjUsIDEzOCwgMjMxLCAxOSwgMjAsIDEsIDIyNSwgCisgICAgMTM4LCAyMTgsIDUyLCAyMCwgMSwgMjI1LCAxMzgsIDIzMSwgMTExLCAyMCwgMSwgMjI1LCAxMzgsIDIzMCwgMTMzLCAyMCwgCisgICAgMSwgMjI1LCAxMzgsIDIyNywgMTYzLCAyMCwgMSwgMjI1LCAxMzgsIDIyNCwgMTM4LCAyMCwgMSwgMjI1LCAxMzgsIDIzMSwgCisgICAgMjgsIDIyOSwgNDksIDIwLCAxLCAyMjUsIDEzOCwgMjQ0LCAxMjYsIDIwLCAxLCAyMjUsIDEzOCwgMjMxLCA5OCwgMjAsIDEsIAorICAgIDIyNSwgMTM4LCAyNDQsIDE0NywgMjAsIDEsIDIyNSwgMTM4LCAyMzQsIDE1MywgMjAsIDEsIDIyNSwgMTM4LCAyMzEsIDIzOSwgCisgICAgMjI4LCAxNzMsIDIwLCAxLCAyMjUsIDEzOCwgMjMxLCAyMzksIDIyOCwgMTQ5LCAyMCwgMSwgMjI1LCAxMzgsIDIzMywgMTEsIAorICAgIDIwLCAxLCAyMjUsIDEzOCwgMjI5LCA1NSwgMjAsIDEsIDIyNSwgMTM4LCAyMjgsIDExLCAyMCwgMSwgMjI1LCAxMzgsIDE4NCwgCisgICAgMjAsIDEsIDIyNSwgMTM4LCAyMzQsIDc0LCAyMCwgMSwgMjI1LCAxMzgsIDIyOSwgMSwgMjAsIDEsIDEzNywgMjI5LCAxMiwgCisgICAgMjMxLCAyMTksIDIwLCAxLCAxMzcsIDIyNywgMTE3LCAyMCwgMSwgMTM3LCAyMTAsIDE5NiwgMjAsIDEsIDEzNywgMjEyLCAKKyAgICA1MywgMjAsIDEsIDEzNywgMjI5LCA0OCwgMjAsIDEsIDEzNywgMjI5LCAxMzcsIDIwLCAxLCAxMzcsIDIyOSwgMTksIDIwLCAKKyAgICAxLCAxMzcsIDI0MiwgMjM5LCAyMCwgMSwgMTM3LCAyMzEsIDExNSwgMjAsIDEsIDEzNywgMjQzLCA3NywgMjAsIDEsIDEzNywgCisgICAgMjI3LCAxNDAsIDIzMCwgMTcwLCAyMzEsIDMxLCAyMCwgMSwgMTM3LCAyMjcsIDI0MCwgMjMxLCAxMDYsIDIwLCAxLCAxMzcsIAorICAgIDIzMSwgMTEyLCAyMCwgMSwgMTM3LCAyMjUsIDU1LCAyMCwgMSwgMTM3LCAyMjksIDEyMiwgMjAsIDEsIDEzNywgMjMxLCAKKyAgICAxMjMsIDI1MSwgMjksIDIwLCAxLCAxMzcsIDIzNCwgMTQzLCAyMCwgMSwgMTM3LCAyNDIsIDI0MCwgMjAsIDEsIDEzNywgCisgICAgMjM0LCAxNTAsIDIwLCAxLCAxMzcsIDIxMCwgMjEzLCAyMzAsIDc2LCAyMCwgMSwgMTM3LCAyMjcsIDExMSwgMjAsIDEsIAorICAgIDEzNywgMjMxLCAxMDAsIDIwLCAxLCAxMzcsIDIyOCwgMTAsIDIwLCAxLCAxMzcsIDIzMSwgMTA2LCAyMCwgMSwgMTM3LCAKKyAgICAyMTEsIDE2LCAyMCwgMSwgMTM3LCAyMzMsIDI0OSwgMjAsIDEsIDEzNywgMjM1LCAxMCwgMjAsIDEsIDEzNywgMjIwLCAxMjMsIAorICAgIDIwLCAxLCAxMzcsIDIyOSwgMTMxLCAyMCwgMSwgMTM3LCAyMTcsIDk1LCAyMCwgMSwgMTM3LCAyMjgsIDE1MywgMjAsIDEsIAorICAgIDEzNywgMjE2LCA2NiwgMjEwLCAxOTgsIDIwLCAxLCAxMzcsIDIxOCwgNzksIDIwLCAxLCAxMzcsIDIyOSwgMzksIDIyNywgCisgICAgMTYwLCAyMCwgMSwgMTM3LCAyMTMsIDE4MSwgMjAsIDEsIDEzNywgMjI5LCAxOTksIDIwLCAxLCAxMzcsIDIzMSwgMjM5LCAKKyAgICAyMzQsIDE1MiwgMjAsIDEsIDEzNywgMjI3LCAyNDksIDIwLCAxLCAxMzcsIDIyOSwgMzQsIDIwLCAxLCAxMzcsIDIzMywgODgsIAorICAgIDIwLCAxLCAxMzcsIDIzMSwgMTA4LCAyMCwgMSwgMTM3LCAyMzEsIDgsIDIwLCAxLCAxMzcsIDIyNywgMjQzLCAyMCwgMSwgCisgICAgMTM3LCAyMTYsIDIxNSwgMjAsIDEsIDEzNywgMjI5LCAzNiwgMjAsIDEsIDEzNywgMjQzLCAyMzMsIDIwLCAxLCAxMzcsIAorICAgIDIyOSwgMTM2LCAyMCwgMSwgMTM3LCAyMjgsIDEyLCAyMCwgMSwgMTM3LCAyMjgsIDgsIDIwLCAxLCAxMzcsIDI1MSwgMTA3LCAKKyAgICAyMCwgMSwgMTM3LCAyMTMsIDE4MywgMjAsIDEsIDEzNywgMjMxLCAxMTMsIDIwLCAxLCAxMzcsIDIyMiwgMTQwLCAyMCwgMSwgCisgICAgMTM3LCAyMjgsIDE4MywgMjAsIDEsIDEzNywgMjMzLCAxMDIsIDIwLCAxLCAxMzcsIDIxNiwgNjQsIDIwLCAxLCAxMzcsIAorICAgIDIyNywgMjUwLCAyMjksIDEsIDIwLCAxLCAxMzcsIDIyOCwgMTc1LCAyMCwgMSwgMTM3LCAyMzQsIDE1NiwgMjAsIDEsIDEzNywgCisgICAgMjI5LCA0MCwgMjAsIDEsIDEzNywgMjMxLCAyMTIsIDIwLCAxLCAxMzcsIDIzMSwgMTAxLCAyMCwgMSwgMTM3LCAyMzIsIDk4LCAKKyAgICAyMCwgMSwgMTM3LCAyMzMsIDE4OSwgMjAsIDEsIDEzNywgMjI4LCAxODEsIDIwLCAxLCAxMzcsIDIyOSwgMSwgMjAsIDEsIAorICAgIDEzNywgMjExLCAxODQsIDIwLCAxLCAxMzcsIDIyOSwgMzcsIDIwLCAxLCAxMzcsIDIyNywgMjUzLCAyMCwgMSwgMTM3LCAKKyAgICAyMjcsIDI0NSwgMjAsIDEsIDEzNywgMjMzLCAyMDMsIDIyOCwgMTM5LCAyMCwgMSwgMTM3LCAyMjcsIDI1MSwgMjAsIDEsIAorICAgIDEzNywgMjI5LCAxNDQsIDIwLCAxLCAxMzcsIDIzMSwgMjM5LCAyMjgsIDAsIDIwLCAxLCAxMzcsIDIxMSwgMTAzLCAyMCwgMSwgCisgICAgMTM3LCAyMjksIDE0MywgMjAsIDEsIDEzNywgMjE5LCAyMjAsIDIwLCAxLCAxMzcsIDIyMCwgMTI2LCAyMCwgMSwgMTM3LCAKKyAgICAyMzEsIDEwOSwgMjAsIDEsIDEzNywgMjMxLCAyMTksIDIwLCAxLCAxMzcsIDIzMSwgMTE5LCAyMCwgMSwgMTM3LCAyMzQsIAorICAgIDE0NCwgMjAsIDEsIDEzNywgMjMxLCAxMTAsIDIwLCAxLCAxMzcsIDIzNCwgMTQ4LCAyMCwgMSwgMTM3LCAyMzEsIDEyMywgCisgICAgMjI1LCAxMDMsIDIwLCAxLCAxMzcsIDIxMCwgMTc5LCAyMCwgMSwgMTM3LCAyMjgsIDE3MSwgMjAsIDEsIDEzNywgMjMwLCAKKyAgICAyMjAsIDIwLCAxLCAxMzcsIDIzMCwgMTAwLCAyMCwgMSwgMTM3LCAyMjAsIDE1LCAyMCwgMSwgMTM3LCAyMzQsIDE2NiwgCisgICAgMjMzLCA3MCwgMjAsIDEsIDEzNywgMjM0LCAxNjYsIDI0NCwgMTYwLCAyMCwgMSwgMTM3LCAyMjksIDY5LCAyMCwgMSwgMTM3LCAKKyAgICAyMjksIDE5NiwgMjAsIDEsIDEzNywgMjMyLCAyMDAsIDIwLCAxLCAxMzcsIDIyNSwgNjUsIDIwLCAxLCAxMzcsIDIyNSwgCisgICAgMTk5LCAyMCwgMSwgMTM3LCAyMTYsIDIzMCwgMjAsIDEsIDEwNywgMjMxLCA5OSwgMjAsIDEsIDEwNywgMjEyLCA1MSwgMjAsIAorICAgIDEsIDEwNywgMjI4LCAxNjksIDIwLCAxLCAxMDcsIDIzMSwgMTYsIDIwLCAxLCAxMDcsIDIyOCwgMTY3LCAyMCwgMSwgMTA3LCAKKyAgICAyMzIsIDIzNSwgMjAsIDEsIDEwNywgMjI4LCAxNzIsIDIwLCAxLCAxMDcsIDIyOCwgNywgMjAsIDEsIDEwNywgMjI5LCA1NCwgCisgICAgMjAsIDEsIDEwNywgMjI3LCAxNjAsIDIwLCAxLCAxMDcsIDIxMSwgMTk0LCAyMCwgMSwgMTA3LCAyMjksIDksIDIwLCAxLCAKKyAgICAxMDcsIDIyMCwgNjEsIDIwLCAxLCAxMDcsIDIyOSwgMjAsIDIwLCAxLCAxMDcsIDIzNCwgMTUxLCAyMCwgMSwgMTA3LCAyMTYsIAorICAgIDIxNywgMjAsIDEsIDEwNywgMjIwLCA0MSwgMjAsIDEsIDEwNywgMjI4LCAxODAsIDIwLCAxLCAxMDcsIDIxOCwgNTIsIDIwLCAKKyAgICAxLCAxMDcsIDIzNCwgMTU2LCAyMCwgMSwgMTA3LCAyMTEsIDkxLCAyMCwgMSwgMTA3LCAyMzMsIDIwNCwgMjAsIDEsIDEwNywgCisgICAgMjIxLCAyMzQsIDIwLCAxLCAxMDcsIDIzMSwgMjEsIDIwLCAxLCAxMDcsIDIyOSwgMTM1LCAyMCwgMSwgMTA3LCAyMzEsIAorICAgIDE4OCwgMjAsIDEsIDEwNywgMjMxLCAyNywgMjAsIDEsIDEwNywgMjIwLCAxMjUsIDIwLCAxLCAxMDcsIDIxMSwgMzksIDIwLCAKKyAgICAxLCAxMDcsIDIyOCwgMTc0LCAyMCwgMSwgMTA3LCAyMzQsIDE0NywgMjMxLCAxMDIsIDIwLCAxLCAxMDcsIDIyOSwgMTYsIAorICAgIDIwLCAxLCAxMDcsIDIxNSwgMTE4LCAyMCwgMSwgMTA3LCAyNDIsIDI0OCwgMjAsIDEsIDEwNywgMjI5LCA2LCAyMCwgMSwgCisgICAgMTA3LCAyNDQsIDEyNywgMjAsIDEsIDEwNywgMjI5LCAxMzksIDIwLCAxLCAxMDcsIDIzMSwgMCwgMjAsIDEsIDEwNywgMjMzLCAKKyAgICA1LCAyMCwgMSwgMTA3LCAyMjksIDEyMSwgMjAsIDEsIDEwNywgMjMwLCAxNDcsIDIwLCAxLCAxMDcsIDIzMSwgNCwgMjAsIDEsIAorICAgIDEwNywgMjI0LCAxMTgsIDIwLCAxLCAxMDcsIDIzMSwgMiwgMjAsIDEsIDEwNywgMjMxLCAxOCwgMjAsIDEsIDEwNywgMjMyLCAKKyAgICA4NCwgMjAsIDEsIDEwNywgMjI3LCAyNTUsIDIwLCAxLCAxMDcsIDIzMSwgMTIyLCAyMCwgMSwgMTA3LCAyMzMsIDE4MCwgMjAsIAorICAgIDEsIDEwNywgMjI3LCAxNTEsIDIwLCAxLCAxMDcsIDIxNiwgMjIwLCAyMCwgMSwgMTA3LCAyMTksIDM0LCAyMCwgMSwgMTA3LCAKKyAgICAyMTAsIDE3OSwgMjAsIDEsIDEwNywgMjM0LCAxNDgsIDIwLCAxLCAxMDcsIDIyMywgMTcwLCAyMCwgMSwgMTA3LCAyMTcsIAorICAgIDEwLCAyMCwgMSwgMTA3LCAyMjksIDE3LCAyMCwgMSwgMTA3LCAyMzEsIDIzLCAyMCwgMSwgMTA3LCAyMjcsIDI1NCwgMjAsIAorICAgIDEsIDEwNywgMjM0LCAxNDYsIDIwLCAxLCAxMDcsIDIyNSwgNTksIDIwLCAxLCAxMDcsIDIyNSwgMTUyLCAyMCwgMSwgMTA3LCAKKyAgICAyMjcsIDEyNywgMjAsIDEsIDEwNywgMjMzLCAxMSwgMjAsIDEsIDEwNywgMjI5LCA1NSwgMjAsIDEsIDEwNywgMjMxLCAyMCwgCisgICAgMjAsIDEsIDEwNywgMjI5LCAyOSwgMjAsIDEsIDEwNywgMjEwLCAxOTMsIDIwLCAxLCAxMDcsIDIyNiwgMjEsIDIwLCAxLCAKKyAgICAxMDcsIDIxMCwgMTkyLCAyMCwgMSwgMTA3LCAyMjksIDE0NCwgMjAsIDEsIDEwNywgMjI3LCAyNDQsIDIwLCAxLCAxMDcsIAorICAgIDIxOCwgODEsIDIwLCAxLCAxMDcsIDIzMywgMjA4LCAyMCwgMSwgMTA3LCAyMjksIDQ0LCAyMCwgMSwgMTA3LCAyMjksIDE0LCAKKyAgICAyMCwgMSwgMTA3LCAyMTUsIDEwMiwgMjAsIDEsIDEwNywgMjMxLCAzMSwgMjAsIDEsIDEwNywgMjMzLCAxOTgsIDIwLCAxLCAKKyAgICAxMDcsIDIyNywgMjUyLCAyMCwgMSwgMTA3LCAyMTYsIDIxOCwgMjAsIDEsIDEwNywgMjMxLCAyMTQsIDIwLCAxLCAxMDcsIAorICAgIDIyOSwgNTMsIDIwLCAxLCAxMDcsIDIzMywgNCwgMjAsIDEsIDEwNywgMjI5LCAzNSwgMjAsIDEsIDEwNywgMjI4LCAxLCAyMCwgCisgICAgMSwgMTA3LCAyMjgsIDE1MywgMjAsIDEsIDEwNywgMjQyLCAyMzMsIDIwLCAxLCAxMDcsIDIzMywgMjE3LCAyMCwgMSwgMTA3LCAKKyAgICAyMjMsIDg0LCAyMjYsIDIwOSwgMjAsIDEsIDEwNywgMjE3LCA4NiwgMjAsIDEsIDEwNywgMjE2LCAxMCwgMjAsIDEsIDEwNywgCisgICAgMjI3LCAxNDgsIDIwLCAxLCAxMDcsIDIyMiwgMjM5LCAyMCwgMSwgMTA3LCAyMzMsIDQ5LCAyMCwgMSwgMTA3LCAyMzEsIDc5LCAKKyAgICAyMCwgMSwgMTA3LCAxOTMsIDIwLCAxLCAxMDcsIDIxOCwgNCwgMjAsIDEsIDEwNywgMjMwLCAxMDIsIDIwLCAxLCAxMDcsIAorICAgIDIyMCwgMjcsIDIwLCAxLCAxMDcsIDIyMCwgMzcsIDIwLCAxLCAxMDcsIDIzMywgMTU1LCAyMCwgMSwgMTA3LCAyMjcsIDIzNywgCisgICAgMjAsIDEsIDEwNywgMjE5LCAyMjUsIDIwLCAxLCAxMDcsIDIyNywgMjQ2LCAyMCwgMSwgMTA3LCAyMjUsIDIxMSwgMjAsIDEsIAorICAgIDEwNywgMjI4LCAyMzMsIDIwLCAxLCAxMDcsIDIxOSwgMjUyLCAyMCwgMSwgMTA3LCAyMjQsIDEzMywgMjAsIDEsIDEwNywgCisgICAgMjMwLCA0NiwgMjAsIDEsIDEwNywgMjMyLCAxMTksIDIwLCAxLCAxMDcsIDIyMywgODQsIDIzMCwgOTYsIDIwLCAxLCAxMDcsIAorICAgIDIxNiwgMTE3LCAyMCwgMSwgMTA3LCAyMjcsIDIzOCwgMjAsIDEsIDEwNywgMjMxLCAxMjMsIDE5OCwgMjAsIDEsIDEwNywgCisgICAgMjIxLCAyMzIsIDIwLCAxLCAxMDcsIDI0NCwgMTk1LCAyMCwgMSwgODIsIDIyOSwgMTQzLCAyMCwgMSwgODIsIDIxNiwgMTYsIAorICAgIDIwLCAxLCA4MiwgMjMxLCAxMTIsIDIwLCAxLCA4MiwgMjMzLCA4OCwgMjAsIDEsIDgyLCAyMTMsIDEyOCwgMjAsIDEsIDgyLCAKKyAgICAyMzIsIDEyNSwgMjAsIDEsIDgyLCAyMjYsIDg5LCAyMCwgMSwgODIsIDIxOSwgNDUsIDIwLCAxLCA4MiwgMjIzLCAxNDUsIAorICAgIDIwLCAxLCA4MiwgMjI4LCAzLCAyMCwgMSwgODIsIDIyOSwgMTE0LCAyMCwgMSwgODIsIDIyNCwgMTQ3LCAyMCwgMSwgODIsIAorICAgIDIxNywgNjIsIDIwLCAxLCA4MiwgMjI5LCAyMiwgMjAsIDEsIDgyLCAyMzMsIDI0NSwgMjAsIDEsIDgyLCAyMTEsIDE4NywgCisgICAgMjAsIDEsIDgyLCAyMjEsIDE3MCwgMjAsIDEsIDgyLCAyMjksIDQ1LCAyMCwgMSwgODIsIDIyNiwgODYsIDIwLCAxLCA4MiwgCisgICAgMjE2LCAxNywgMjAsIDEsIDgyLCAyMzMsIDIwMiwgMjAsIDEsIDgyLCAyMzIsIDEzOSwgMjAsIDEsIDgyLCAyMjgsIDYsIDIwLCAKKyAgICAxLCA4MiwgMjI4LCAyNTQsIDIwLCAxLCA4MiwgMjMxLCAyMjAsIDIwLCAxLCA4MiwgMjI5LCAxNSwgMjAsIDEsIDgyLCAyMjgsIAorICAgIDI1MywgMjAsIDEsIDgyLCAyMjgsIDUsIDIwLCAxLCA4MiwgMjIyLCAyMzcsIDIwLCAxLCA4MiwgMjI4LCAxNzEsIDIwLCAxLCAKKyAgICA4MiwgMjI1LCAyMTAsIDIwLCAxLCA4MiwgMjIyLCAzMSwgMjAsIDEsIDgyLCAyMjksIDMwLCAyMCwgMSwgODIsIDIzMSwgMTAsIAorICAgIDIwLCAxLCA4MiwgMjQyLCAyMjcsIDIwLCAxLCA4MiwgMjI5LCAxOCwgMjAsIDEsIDgyLCAyMjgsIDE4MiwgMjAsIDEsIDgyLCAKKyAgICAyMzEsIDE3MiwgMjAsIDEsIDgyLCAyMzIsIDEyMSwgMjAsIDEsIDgyLCAyMjksIDUwLCAyMCwgMSwgODIsIDIyOSwgMTI3LCAKKyAgICAyMCwgMSwgODIsIDIxNywgODUsIDIyNywgMjQ0LCAyMCwgMSwgODIsIDIyMCwgMTI3LCAyMCwgMSwgODIsIDIyNCwgMTQzLCAKKyAgICAyMCwgMSwgODIsIDIyOSwgMTQ3LCAyMTksIDUxLCAyMCwgMSwgODIsIDIyOSwgMzgsIDIyNywgMTYwLCAyMCwgMSwgODIsIAorICAgIDIxMSwgNCwgMjAsIDEsIDgyLCAyNDIsIDIyOCwgMjAsIDEsIDgyLCAyMTUsIDExNywgMjAsIDEsIDgyLCAyMTEsIDE5LCAyMCwgCisgICAgMSwgODIsIDIyNSwgMTYsIDIwLCAxLCA4MiwgMjE1LCAxMDcsIDIwLCAxLCA4MiwgMjM0LCAxNTQsIDIwLCAxLCA4MiwgMjE4LCAKKyAgICA4MCwgMjAsIDEsIDgyLCAyMTYsIDIxOSwgMjAsIDEsIDgyLCAyMTMsIDE4NCwgMjAsIDEsIDgyLCAyMTIsIDYsIDIwLCAxLCAKKyAgICA4MiwgMjMzLCAxMzIsIDIwLCAxLCA4MiwgMjI0LCAxNTAsIDIwLCAxLCA4MiwgMjE3LCA5NiwgMjAsIDEsIDgyLCAyNDIsIAorICAgIDI0NywgMjAsIDEsIDgyLCAyMjksIDU5LCAyMCwgMSwgODIsIDIyMCwgNDAsIDIwLCAxLCA4MiwgMjMxLCA1LCAyMCwgMSwgCisgICAgODIsIDIzMSwgMTE2LCAyMCwgMSwgODIsIDIyNywgMTE1LCAyMCwgMSwgODIsIDIyOCwgMTM2LCAyMCwgMSwgODIsIDI0MywgCisgICAgNzMsIDIwLCAxLCA4MiwgMjE1LCAxMDgsIDIwLCAxLCA4MiwgMjMzLCAyMTEsIDIwLCAxLCA4MiwgMjExLCA2NywgMjAsIDEsIAorICAgIDgyLCAyMjcsIDE0OSwgMjUwLCAxNiwgMjAsIDEsIDgyLCAyMTAsIDI1MCwgMjAsIDEsIDgyLCAyMzEsIDIyLCAyMCwgMSwgCisgICAgODIsIDIyOSwgMTMyLCAyMCwgMSwgODIsIDIyNSwgMTAwLCAyMCwgMSwgODIsIDIxMCwgMTk3LCAyMCwgMSwgODIsIDIzMywgCisgICAgNiwgMjAsIDEsIDgyLCAyNDMsIDIzMywgMjAsIDEsIDgyLCAyNDMsIDcyLCAyMCwgMSwgODIsIDIyOSwgOCwgMjAsIDEsIDgyLCAKKyAgICAyMzQsIDE1NiwgMjAsIDEsIDgyLCAyMzEsIDIyMywgMjAsIDEsIDgyLCAyMjksIDIxLCAyMCwgMSwgODIsIDI0MiwgMjM0LCAKKyAgICAyMCwgMSwgODIsIDI0NCwgMTk2LCAyMCwgMSwgODIsIDIyNywgMjM5LCAyMCwgMSwgODIsIDIyNSwgMTUzLCAyMCwgMSwgODIsIAorICAgIDIxMSwgMTcsIDIwLCAxLCA4MiwgMjI5LCA0NiwgMjAsIDEsIDgyLCAyMjcsIDE0OSwgMjUyLCAyMywgMjAsIDEsIDgyLCAKKyAgICAyMjcsIDk1LCAyMCwgMSwgODIsIDIyNCwgMjQ3LCAyMCwgMSwgODIsIDIzMCwgMjIwLCAyMCwgMSwgODIsIDI0MywgMjMxLCAKKyAgICAyMCwgMSwgODIsIDIyOSwgMjIwLCAyMCwgMSwgODIsIDIzMCwgMTAwLCAyMCwgMSwgODIsIDI0MiwgMjMzLCAyMCwgMSwgODIsIAorICAgIDI0MywgMjM1LCA3MywgMjAsIDEsIDgyLCAyMzAsIDQ3LCAyMCwgMSwgODIsIDIyNCwgMTQ2LCAyMCwgMSwgODIsIDIyOSwgCisgICAgMTAsIDIwLCAxLCA4MiwgMjMzLCAxODksIDIwLCAxLCA4MiwgMjI1LCA5NywgMjAsIDEsIDgyLCAyMjcsIDI0NywgMjAsIDEsIAorICAgIDgyLCAyMTEsIDE4LCAyMCwgMSwgODIsIDIyOSwgMzEsIDIwLCAxLCA4MiwgMjI2LCA5MCwgMjI1LCAxODcsIDIwLCAxLCA4MiwgCisgICAgMjQzLCAyMzUsIDI1MSwgMTUsIDIwLCAxLCA4MiwgMjQ0LCAzNywgMjAsIDEsIDgyLCAyMjgsIDE3NiwgMjAsIDEsIDgyLCAKKyAgICA2MSwgMjAsIDEsIDgyLCAyMTYsIDEwLCAyMCwgMSwgODIsIDc2LCAyMCwgMSwgODIsIDczLCAyMCwgMSwgODIsIDIzMywgODYsIAorICAgIDIwLCAxLCA4MiwgMjI2LCA5MCwgMjI1LCAyMywgMjAsIDEsIDgyLCAyMTcsIDEwMSwgMjAsIDEsIDgyLCAyMTcsIDUxLCAyMCwgCisgICAgMSwgODIsIDIyOSwgMTQ3LCAyMzAsIDM0LCAyNDAsIDIzNCwgMjAsIDEsIDgyLCAyMjAsIDE1LCAyMCwgMSwgODIsIDIxMSwgCisgICAgMTQsIDIwLCAxLCA4MiwgMjI4LCAyNDcsIDIwLCAxLCA4MiwgMjEwLCAyMDIsIDIwLCAxLCA4MiwgMjEwLCAyMjcsIDIxNywgCisgICAgMjQwLCAyMCwgMSwgODIsIDIxMCwgMjI3LCAyNDksIDE0NywgMjAsIDEsIDgyLCAyMTAsIDE4NywgMjAsIDEsIDgyLCAyMTAsIAorICAgIDE5NSwgMjAsIDEsIDgyLCAyMzQsIDE0MiwgMjAsIDEsIDgyLCAyMjUsIDE1MSwgMjAsIDEsIDgyLCAyMjgsIDE3NywgMjQ1LCAKKyAgICAxMDIsIDIwLCAxLCA4MiwgMjI0LCAxNDQsIDIwLCAxLCA4MiwgMjExLCAxOTIsIDIwLCAxLCA4MiwgMjQ0LCAxNDcsIDIwLCAKKyAgICAxLCA4MiwgMjEzLCAyNTAsIDIwLCAxLCA4MiwgMjMyLCA5OCwgMjAsIDEsIDgyLCAyMzAsIDIzMCwgMjAsIDEsIDgyLCAyMjMsIAorICAgIDUxLCAyMCwgMSwgODIsIDIyMywgMTcxLCAyMCwgMSwgODIsIDIyOCwgMjQ2LCAyMCwgMSwgODIsIDIyOSwgNzcsIDIwLCAxLCAKKyAgICA4MiwgMjIwLCA3LCAyMCwgMSwgODIsIDIxOSwgMjUyLCAyMCwgMSwgODIsIDI0MywgMjM1LCAyMjMsIDg2LCAyMCwgMSwgODIsIAorICAgIDE5NywgMjAsIDEsIDgyLCAyMjUsIDEwOCwgMjAsIDEsIDgyLCAyMzIsIDExOSwgMjAsIDEsIDgyLCAyMzQsIDI4LCAyMCwgMSwgCisgICAgODIsIDIzMSwgNTgsIDIwLCAxLCA4MiwgMTg0LCAyMCwgMSwgODIsIDIzMSwgMTY5LCAyMCwgMSwgODIsIDIxNiwgMjIxLCAKKyAgICAyMCwgMSwgODIsIDIzNCwgOTIsIDIwLCAxLCA4MiwgMjMwLCAxNTAsIDIwLCAxLCA4MiwgMjE2LCAyNDcsIDIwLCAxLCA4MiwgCisgICAgMjQ0LCAxNjksIDIwLCAxLCA4MiwgMjQyLCAyMjMsIDIwLCAxLCAyMjUsIDEzNywgMTc2LCAyMCwgMSwgMjI1LCAxMzcsIDcwLCAKKyAgICAyMCwgMSwgMjI1LCAxMzcsIDIzMywgMjE3LCAyMCwgMSwgMjI1LCAxMzcsIDI0NSwgMjA5LCAyMCwgMSwgMjI1LCAxMzcsIAorICAgIDIyMywgMTA4LCAyMCwgMSwgMjI1LCAxMzcsIDIxNywgODYsIDIwLCAxLCAyMjUsIDEzNywgMjI3LCAxNDgsIDIwLCAxLCAKKyAgICAyMjUsIDEzNywgMjMzLCAxMzUsIDIwLCAxLCAyMjUsIDEzNywgMjIyLCAyMzksIDIwLCAxLCAyMjUsIDEzNywgMjIzLCAyOSwgCisgICAgMjAsIDEsIDIyNSwgMTM3LCAyMzEsIDc5LCAyMCwgMSwgMjI1LCAxMzcsIDIxNywgMTAxLCAyMCwgMSwgMjI1LCAxMzcsIAorICAgIDIyOSwgMTQ2LCAyMCwgMSwgMjI1LCAxMzcsIDIyOCwgMTgzLCAyMCwgMSwgMjI1LCAxMzcsIDE5MywgMjAsIDEsIDIyNSwgCisgICAgMTM3LCAyMTgsIDQsIDIwLCAxLCAyMjUsIDEzNywgMjIwLCAyNywgMjAsIDEsIDIyNSwgMTM3LCAyMTksIDE5MSwgMjAsIDEsIAorICAgIDIyNSwgMTM3LCAyMjAsIDEyMywgMjAsIDEsIDIyNSwgMTM3LCAyMzMsIDE1NSwgMjAsIDEsIDIyNSwgMTM3LCAyMzQsIDE1NiwgCisgICAgMjAsIDEsIDIyNSwgMTM3LCAyMjcsIDIwOSwgMjAsIDEsIDIyNSwgMTM3LCAyMjcsIDIzNywgMjAsIDEsIDIyNSwgMTM3LCAKKyAgICAyMjgsIDE1NCwgMjAsIDEsIDIyNSwgMTM3LCAyMTAsIDIyNiwgMjAsIDEsIDIyNSwgMTM3LCAyMTksIDIyNSwgMjAsIDEsIAorICAgIDIyNSwgMTM3LCAxOTEsIDIwLCAxLCAyMjUsIDEzNywgMjI4LCA5LCAyMCwgMSwgMjI1LCAxMzcsIDIyNSwgMTUxLCAyMCwgMSwgCisgICAgMjI1LCAxMzcsIDIyNywgMjQ2LCAyMCwgMSwgMjI1LCAxMzcsIDIxMSwgMTkyLCAyMCwgMSwgMjI1LCAxMzcsIDIyNSwgMjExLCAKKyAgICAyMCwgMSwgMjI1LCAxMzcsIDIyMiwgMTQwLCAyMCwgMSwgMjI1LCAxMzcsIDIyOCwgMjMzLCAyMCwgMSwgMjI1LCAxMzcsIAorICAgIDIyMywgNTEsIDIwLCAxLCAyMjUsIDEzNywgMjM0LCAxNjUsIDIwLCAxLCAyMjUsIDEzNywgMjI5LCA3LCAyMCwgMSwgMjI1LCAKKyAgICAxMzcsIDIyOSwgNTYsIDIwLCAxLCAyMjUsIDEzNywgMjIwLCA3LCAyMCwgMSwgMjI1LCAxMzcsIDIyNCwgMTQ3LCAyMCwgMSwgCisgICAgMjI1LCAxMzcsIDI0NCwgMzcsIDIwLCAxLCAyMjUsIDEzNywgMjEyLCA2NSwgMjAsIDEsIDIyNSwgMTM3LCAyMzIsIDI0MSwgCisgICAgMjAsIDEsIDIyNSwgMTM3LCAyMzIsIDExOSwgMjAsIDEsIDIyNSwgMTM3LCAyMzQsIDI4LCAyMCwgMSwgMjI1LCAxMzcsIAorICAgIDIzMSwgMTE0LCAyMCwgMSwgMjI1LCAxMzcsIDIyMywgODMsIDIwLCAxLCAyMjUsIDEzNywgMTg0LCAyMCwgMSwgMjI1LCAKKyAgICAxMzcsIDIzMCwgMTYxLCAyMCwgMSwgMjI1LCAxMzcsIDIzMSwgMTIyLCAyMCwgMSwgMjI1LCAxMzcsIDIxNiwgMjMwLCAyMCwgCisgICAgMSwgMjI1LCAxMzcsIDIzMywgMjUxLCAyMCwgMSwgMjI1LCAxMzcsIDIyMSwgMjUxLCAyMCwgMSwgMjI1LCAxMzcsIDIxMiwgCisgICAgMTE1LCA5NSwgMSwgMTkwLCA5NSwgMSwgMjUyLCAxOTEsIDk1LCAxLCA4LCAxOTAsIDk1LCAxLCAyMjUsIDQyLCA5NSwgMSwgCisgICAgMTg0LCA5NSwgMSwgMjMwLCAyMzMsIDk1LCAxLCAyNTQsIDIzLCAxODQsIDk1LCAxLCAyNDQsIDE5NiwgOTUsIDEsIDIxNCwgCisgICAgMjcsIDk1LCAxLCAyMTMsIDE3NywgOTUsIDEsIDIxNywgMTA1LCA5NSwgMSwgMjQ4LCAyMjEsIDk1LCAxLCA4LCAyMTUsIAorICAgIDE1NiwgOTUsIDEsIDgsIDIxNywgMTA1LCA5NSwgMSwgMjE1LCAxNTYsIDk1LCAxLCAyNDgsIDEzNSwgOTUsIDEsIDE5NywgCisgICAgOTUsIDEsIDIyOCwgMjM3LCA5NSwgMSwgOCwgMjI4LCAxMTAsIDk1LCAxLCAyNTQsIDIzLCAxOTcsIDk1LCAxLCAyMjgsIAorICAgIDExMCwgOTUsIDEsIDIyOCwgOTYsIDk1LCAxLCAyMzMsIDEzNSwgOTUsIDEsIDIzMiwgNjEsIDk1LCAxLCAyMzIsIDI1NCwgCisgICAgOTUsIDEsIDIzMiwgMjQzLCA5NSwgMSwgMjE2LCA1NiwgOTUsIDEsIDI0NywgMTUzLCA5NSwgMSwgMjE2LCA0OCwgOTUsIDEsIAorICAgIDI0NywgMTUyLCA5NSwgMSwgMTc2LCA5NSwgMSwgMjQzLCAxMzUsIDk1LCAxLCA4LCAxNzYsIDk1LCAxLCAyMjQsIDg4LCA5NSwgCisgICAgMSwgMjI0LCA2NiwgOTUsIDEsIDIyOSwgNzcsIDk1LCAxLCAyMjksIDI4LCA5NSwgMSwgMjU0LCAyMywgMjI5LCA3NywgOTUsIAorICAgIDEsIDE2MiwgOTUsIDEsIDIxMSwgMTY1LCA5NSwgMSwgMjQyLCAyNDksIDk1LCAxLCAyNDIsIDIyNiwgOTUsIDEsIDIxNSwgCisgICAgMTY1LCA5NSwgMSwgMjQ2LCAyNiwgOTUsIDEsIDIyNywgMTY1LCA5NSwgMSwgMjI3LCAxNTAsIDk1LCAxLCAyMTUsIDE3NSwgCisgICAgOTUsIDEsIDI0NiwgMzMsIDk1LCAxLCA4LCAyMTUsIDE3NSwgOTUsIDEsIDgsIDI0NiwgMzMsIDk1LCAxLCAyMjMsIDEwNiwgCisgICAgMjE1LCAxNzUsIDk1LCAxLCAyMjAsIDEwMiwgOTUsIDEsIDIxOCwgMjIzLCA5NSwgMSwgMjEwLCA4MiwgOTUsIDEsIDIxMCwgCisgICAgMTQsIDk1LCAxLCAyMTUsIDE4MywgOTUsIDEsIDI0NiwgMzgsIDk1LCAxLCA4LCAyMTUsIDE4MywgOTUsIDEsIDIwNiwgOTUsIAorICAgIDEsIDIxMCwgMTE2LCA5NSwgMSwgMjEwLCAxNSwgOTUsIDEsIDIwOSwgMjQzLCA5NSwgMSwgMjA5LCAyMjMsIDk1LCAxLCAKKyAgICAyNTQsIDIzLCAyMDksIDI0MywgOTUsIDEsIDIwOSwgMjE1LCA5NSwgMSwgMjA5LCAyMjIsIDk1LCAxLCAyMTIsIDY1LCA5NSwgCisgICAgMSwgMjU0LCAyMDksIDk1LCAxLCAyNDEsIDE4OSwgOTUsIDEsIDIyOSwgMTkyLCA5NSwgNSwgMjUzLCAyMjIsIDk1LCA1LCAKKyAgICAyMjMsIDEwNiwgMjEzLCAxMzMsIDk1LCA1LCAyMjMsIDEwNiwgMjUzLCAyMjIsIDk1LCAyNSwgNSwgNjEsIDk1LCAyNSwgNSwgCisgICAgMjU1LCA3MywgOTUsIDI1LCA1LCAyNTQsIDIwNSwgOTUsIDI1LCA1LCAyNTQsIDEyMywgOTUsIDI1LCA1LCAyNTQsIDExNSwgCisgICAgOTUsIDI1LCA1LCA3NiwgOTUsIDI1LCA1LCAyMjYsIDE4MywgOTUsIDI1LCA1LCAyMTEsIDIyNywgOTUsIDI1LCA1LCAyMTIsIAorICAgIDk4LCA5NSwgMjUsIDUsIDc1LCA5NSwgMjUsIDUsIDI0NSwgMTUwLCA5NSwgMjUsIDUsIDI0NSwgMTM4LCA5NSwgMjUsIDUsIAorICAgIDIyNiwgMjMyLCA5NSwgMjUsIDUsIDczLCA5NSwgMjUsIDUsIDI0MCwgMTE5LCA5NSwgMjUsIDUsIDI0MCwgMTE4LCA5NSwgCisgICAgMjUsIDUsIDI0MCwgMTE3LCA5NSwgMjUsIDUsIDIzNSwgMTg5LCA5NSwgMjUsIDUsIDIzNiwgNjAsIDk1LCAyNSwgNSwgMjM2LCAKKyAgICAzMywgOTUsIDI1LCA1LCAyMzUsIDE1NiwgOTUsIDI1LCA1LCAyMzUsIDIzMSwgOTUsIDI1LCA1LCA3MCwgOTUsIDI1LCA1LCAKKyAgICAyMTQsIDIyOSwgOTUsIDI1LCA1LCAyMTQsIDIyOCwgOTUsIDI1LCA1LCAyMTQsIDIyNywgOTUsIDI1LCA1LCAyMTQsIDExOCwgCisgICAgOTUsIDI1LCA1LCAyMTQsIDIxMSwgOTUsIDI1LCA1LCAyMTQsIDE3OCwgOTUsIDI1LCA1LCAyMTEsIDExNywgOTUsIDI1LCA1LCAKKyAgICAyMTEsIDgsIDk1LCAyNSwgNSwgMjU0LCAyNDMsIDk1LCAyNSwgNSwgMjU0LCAyMzksIDk1LCAyNSwgNSwgMjQ1LCA4NiwgOTUsIAorICAgIDI1LCA1LCAyMjIsIDE4MywgMjQ1LCA4NiwgOTUsIDI1LCA1LCAyNDUsIDkyLCA5NSwgMjUsIDUsIDIyMiwgMTgzLCAyNDUsIAorICAgIDkyLCA5NSwgMjUsIDUsIDI1NCwgMjAxLCA5NSwgMjUsIDUsIDI0NSwgMTk1LCA5NSwgMjUsIDUsIDI1MywgMTkyLCA5NSwgCisgICAgMjUsIDUsIDIyNiwgMTM0LCA5NSwgMjUsIDUsIDIzMCwgMjUsIDk1LCAyNSwgNSwgMjI5LCA3OSwgOTUsIDEzOCwgMjIyLCAKKyAgICAyNTEsIDk1LCAxMzgsIDIxNiwgMTQsIDIyMiwgMjUxLCA5NSwgMTM4LCA0OCwgOTUsIDEzOCwgNTEsIDk1LCAxLCAyMTYsIAorICAgIDI4LCA5NSwgMSwgMjE2LCAyNywgOTUsIDEsIDIxNiwgMjYsIDk1LCAxLCAyMTYsIDI1LCA5NSwgMSwgMjE2LCAyNCwgOTUsIAorICAgIDEsIDIxNiwgMjMsIDk1LCAxLCAyMTYsIDIyLCA5NSwgMSwgMjIzLCAxMDYsIDIxNiwgMjksIDk1LCAxLCAyMjMsIDEwNiwgCisgICAgMjE2LCAyOCwgOTUsIDEsIDIyMywgMTA2LCAyMTYsIDI2LCA5NSwgMSwgMjIzLCAxMDYsIDIxNiwgMjUsIDk1LCAxLCAyMjMsIAorICAgIDEwNiwgMjE2LCAyNCwgOTUsIDEsIDIyMywgMTA2LCAyMTYsIDIyLCA1NiwgMSwgMjU0LCAyMywgNzUsIDE0MSwgMSwgMjU0LCAKKyAgICAyMywgMjExLCA0NywgNDksIDI4LCAxNiwgMjI0LCAxNTQsIDQ5LCAyOCwgMTYsIDI0OCwgMTU4LCA0OSwgMjgsIDE2LCAyMjUsIAorICAgIDE3NSwgNDksIDI4LCAxNiwgMjI2LCAxMTMsIDI0NSwgMTc4LCA0OSwgMjgsIDE2LCAyMjYsIDExMywgMjQ3LCAyMDEsIDQ5LCAKKyAgICAyOCwgMTYsIDIxNCwgMTYsIDI0NSwgMTc4LCA0OSwgMjgsIDE2LCAyMTQsIDE2LCAyNDcsIDIwMSwgNDksIDI4LCAxNiwgCisgICAgMjM0LCAxOTcsIDQ5LCAyOCwgMTYsIDIxNywgMTY5LCA0OSwgMjgsIDE2LCAyMjYsIDksIDQ5LCAyOCwgMTYsIDIxMCwgMjE3LCAKKyAgICA0OSwgMjgsIDE2LCAyMTAsIDIxOCwgMjQ3LCAyMDEsIDQ5LCAyOCwgMTYsIDIzMywgMjM0LCA0OSwgMjgsIDE2LCAyNTQsIAorICAgIDY4LCAyNDUsIDE3OCwgNDksIDI4LCAxNiwgMjQ1LCAyNiwgMjQ1LCAxNzgsIDQ5LCAyOCwgMTYsIDIxNywgMiwgNDksIDI4LCAKKyAgICAxNiwgMjM0LCAxNjEsIDQ5LCAyOCwgMTYsIDI1NCwgNTgsIDQ5LCAyOCwgMTYsIDI1NCwgNTksIDI0NywgMjAxLCA0OSwgMjgsIAorICAgIDE2LCAyMTcsIDE3NSwgNDksIDI4LCAxNiwgMjE2LCAxNTksIDQ5LCAyOCwgMTYsIDIyNiwgMjA2LCAyNTQsIDIxLCA0OSwgCisgICAgMjgsIDE2LCAyNDIsIDE1OSwgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjI0LCAxNTMsIDQ5LCAyOCwgMTYsIDI1MCwgMTQ5LCAKKyAgICA0OSwgMjgsIDE2LCAyMTQsIDYsIDQ5LCAyOCwgMTYsIDIzNSwgMTY0LCAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyMzQsIDE2MywgCisgICAgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjM0LCAxNjIsIDI1NCwgMjEsIDQ5LCAyOCwgMTYsIDIyMSwgMjEzLCA0OSwgMjgsIDE2LCAKKyAgICAyMjYsIDAsIDQ5LCAyOCwgMTYsIDIxOCwgMTQ2LCAyNTQsIDYxLCA0OSwgMjgsIDE2LCAyMjYsIDExMiwgMjU0LCAyMSwgNDksIAorICAgIDI4LCAxNiwgMjE0LCAxNSwgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjU0LCA2MiwgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjU0LCAKKyAgICA1NiwgNDksIDI4LCAxNiwgMjM0LCAzNywgNDksIDI4LCAxNiwgMjIzLCA0NiwgNDksIDI4LCAxNiwgMjI1LCAxMDYsIDI1NCwgCisgICAgMjEsIDQ5LCAyOCwgMTYsIDIxNiwgODMsIDQ5LCAyOCwgMTYsIDI1NCwgMTIxLCA0OSwgMjgsIDE2LCAyMjEsIDE1OSwgNDksIAorICAgIDI4LCAxNiwgMjE3LCAxNzgsIDI1NCwgMjEsIDQ5LCAyOCwgMTYsIDIxNywgMTc4LCAyMzEsIDQwLCAyMTgsIDE0NCwgNDksIAorICAgIDI4LCAxNiwgMjI2LCAxMDcsIDI1NCwgMjEsIDQ5LCAyOCwgMTYsIDIxNiwgMTkwLCA0OSwgMjgsIDE2LCAyMzMsIDI3LCA0OSwgCisgICAgMjgsIDE2LCAyNDYsIDQxLCA0OSwgMjgsIDE2LCAyMTUsIDIyNywgNDksIDI4LCAxNiwgMjE2LCAyMzIsIDQ5LCAyOCwgMTYsIAorICAgIDIzMywgMjM3LCA0OSwgMjgsIDE2LCAyNTQsIDY4LCAyNDUsIDI2LCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgCisgICAgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjM2LCAxMiwgNDksIDI4LCAxNiwgMjE1LCAxOTksIDI1NCwgMjEsIDQ5LCAyOCwgMTYsIAorICAgIDIzNCwgMjAwLCAyMTUsIDE5OCwgNDksIDI4LCAxNiwgMjI1LCAyMDAsIDQ5LCAyOCwgMTYsIDIyNCwgMTU4LCA0OSwgMjgsIAorICAgIDE2LCAyMzQsIDExLCA0OSwgMjgsIDE2LCAyNTAsIDgwLCAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyMjMsIDE0NiwgNDksIDI4LCAKKyAgICAxNiwgMjI2LCAxMiwgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjI2LCAxMCwgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjQwLCAxMDksIAorICAgIDQ5LCAyOCwgMTYsIDIyOSwgMjAzLCA0OSwgMjgsIDE2LCAyMjUsIDE1NiwgNDksIDI4LCAxNiwgMjM0LCAxMiwgMjU0LCAKKyAgICAxNDksIDQ5LCAyOCwgMTYsIDIxNSwgMTk5LCAyNTQsIDE0OSwgNDksIDI4LCAxNiwgMjE4LCAxMjMsIDQ5LCAyOCwgMTYsIAorICAgIDI0MiwgMTIzLCA0OSwgMjgsIDE2LCAyMzUsIDE2NCwgMjI5LCA5NSwgNDksIDI4LCAxNiwgMjI2LCAyMDYsIDIyOSwgOTUsIAorICAgIDQ5LCAyOCwgMTYsIDIyNiwgMTEzLCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyMjUsIDE1NSwgNDksIDI4LCAxNiwgMjMzLCAKKyAgICAyNTQsIDQ5LCAyOCwgMTYsIDIyNSwgMTU0LCA0OSwgMjgsIDE2LCAyMzMsIDIzNiwgNDksIDI4LCAxNiwgMjI1LCAyMDEsIAorICAgIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDIzNCwgMTYyLCAyMjksIDk2LCAyNTQsIDk2LCA0OSwgMjgsIDE2LCAyMzQsIDE2MywgCisgICAgMjI5LCA5NiwgMjU0LCA5NiwgNDksIDI4LCAxNiwgMjEwLCAyMTUsIDQ5LCAyOCwgMTYsIDI1NCwgNTksIDIyOSwgOTUsIDQ5LCAKKyAgICAyOCwgMTYsIDI1NCwgNjAsIDIxNywgMTc2LCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyMTAsIDIxNiwgNDksIDI4LCAxNiwgCisgICAgMjMzLCAyMzUsIDQ5LCAyOCwgMTYsIDI0NSwgMTczLCA0OSwgMjgsIDE2LCAyNTAsIDE1MCwgNDksIDI4LCAxNiwgMjMwLCAKKyAgICAxOTgsIDIzNSwgMTYzLCA0OSwgMjgsIDE2LCAyMTQsIDE2LCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyMjUsIDEwNiwgMjI5LCAKKyAgICA5NSwgNDksIDI4LCAxNiwgMjI0LCAxNTksIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDIyNiwgMjAzLCA0OSwgMjgsIDE2LCAyNTQsIAorICAgIDg0LCA0OSwgMjgsIDE2LCAyMzIsIDU4LCA0OSwgMjgsIDE2LCAyMjYsIDEwLCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyMjYsIAorICAgIDEyLCAyMjksIDk1LCA0OSwgMjgsIDE2LCAyNDUsIDYwLCAyMjYsIDExLCA0OSwgMjgsIDE2LCAyMzMsIDE1MywgNDksIDI4LCAKKyAgICAxNiwgMjU0LCA4NSwgNDksIDI4LCAxNiwgMjE1LCAxOTksIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDI0NSwgMTc2LCA0OSwgMjgsIAorICAgIDE2LCAyMTcsIDE3OCwgMjI5LCA5NSwgNDksIDI4LCAxNiwgMjE3LCAxNzAsIDQ5LCAyOCwgMTYsIDI1MCwgODAsIDIyOSwgCisgICAgOTUsIDQ5LCAyOCwgMTYsIDI0NSwgMTA2LCA0OSwgMjgsIDE2LCAyMjEsIDE2MCwgMjI5LCA5NSwgNDksIDI4LCAxNiwgMjExLCAKKyAgICAxNTEsIDIzNCwgMzcsIDQ5LCAyOCwgMTYsIDIxNSwgMTk2LCA0OSwgMjgsIDE2LCAyMjQsIDE2MCwgNDksIDI4LCAxNiwgCisgICAgMjE1LCAyMDAsIDQ5LCAyOCwgMTYsIDIxNSwgMTk3LCA0OSwgMjgsIDE2LCAyMjQsIDE1NywgNDksIDI4LCAxNiwgMjE1LCAKKyAgICAxOTUsIDQ5LCAyOCwgMTYsIDIyNCwgMTU2LCA0OSwgMjgsIDE2LCAyNDIsIDE1OCwgNDksIDI4LCAxNiwgMjU0LCAxNCwgNDksIAorICAgIDI4LCAxNiwgMjQ1LCA2MCwgMjU0LCAxNCwgNDksIDI4LCAxNiwgMjI2LCAxMDcsIDIyOSwgOTUsIDQ5LCAyOCwgMTYsIDIxNiwgCisgICAgMTg5LCAyNDUsIDY5LCA0OSwgMjgsIDE2LCAyMTYsIDE4OSwgMjQ1LCAyNSwgNDksIDI4LCAxNiwgMjE2LCAxOTEsIDI1NCwgCisgICAgNjMsIDQ5LCAyOCwgMTYsIDIxNiwgMTg0LCAyMzQsIDI0NywgMjU0LCA1NSwgNDksIDI4LCAxNiwgMjM0LCAxOTksIDQ5LCAKKyAgICAyOCwgMTYsIDI0NSwgMTM5LCA0OSwgMjgsIDE2LCAyMTEsIDExLCAyMzQsIDE5NiwgNDksIDI4LCAxNiwgMjExLCAxMSwgCisgICAgMjU0LCA5NiwgNDksIDI4LCAxNiwgMjE4LCAxNDUsIDQ5LCAyOCwgMTYsIDIzNCwgMzgsIDI1NCwgOTYsIDQ5LCAyOCwgMTYsIAorICAgIDI0NywgMjAyLCAyNTQsIDIxLCA0OSwgMjgsIDE2LCAyMzMsIDIzOCwgMjU0LCAyMSwgNDksIDI4LCAxNiwgMjMzLCAyMzgsIAorICAgIDI1NCwgMTQ5LCA0OSwgMjgsIDE2LCAyMzMsIDIzOCwgMjI5LCA5NSwgNDksIDI4LCAxNiwgMjU0LCA2MiwgMjI5LCA5NSwgCisgICAgNDksIDI4LCAxNiwgMjU0LCA2NCwgNDksIDI4LCAxNiwgMjQ3LCAyMDEsIDQ5LCAyOCwgMTYsIDIxNSwgMjEwLCA0OSwgMjgsIAorICAgIDE2LCAyMTYsIDIyNCwgNDksIDI4LCAxNiwgMjM0LCAyLCA0OSwgMjgsIDE2LCAyMzMsIDMyLCAyNDUsIDEzNCwgMjUwLCA3MSwgCisgICAgNDksIDI4LCAxNiwgMjMzLCAzMiwgMjQ2LCA0MiwgMjUwLCA3MiwgNDksIDI4LCAxNiwgMjMzLCAzMiwgMjE1LCAyMTIsIAorICAgIDI1MCwgNzIsIDQ5LCAyOCwgMTYsIDIzMywgMzIsIDIxNiwgMjM0LCAyNTAsIDcyLCA0OSwgMjgsIDE2LCAyMzMsIDMyLCAKKyAgICAyMzYsIDcsIDI1MCwgNzEsIDQ5LCAyOCwgMTYsIDI0MiwgMTU5LCAyMjksIDk2LCAyNTQsIDk2LCA0OSwgMjgsIDE2LCAyNDIsIAorICAgIDE1OSwgMjI2LCAxLCAyNTQsIDEwLCA0OSwgMjgsIDE2LCAyNDIsIDE1OSwgMjI2LCAxLCAyNDgsIDI5LCA0OSwgMjgsIDE2LCAKKyAgICAyNDcsIDIyNSwgNDksIDI4LCAxNiwgMjQ3LCAyMjYsIDIyNiwgMSwgMjU0LCAxMSwgMjM0LCAxOTYsIDQ5LCAyOCwgMTYsIAorICAgIDI0NywgMjI2LCAyMjYsIDEsIDI1NCwgMTEsIDI1NCwgOTYsIDQ5LCAyOCwgMTYsIDI0NywgMjI2LCAyMjYsIDEsIDI0OCwgCisgICAgMjksIDQ5LCAyOCwgMTYsIDIxNSwgMjE2LCA0OSwgMjgsIDE2LCAyNTQsIDE1LCA0OSwgMjgsIDE2LCAyMzYsIDE0LCA0OSwgCisgICAgMjgsIDE2LCAyNDcsIDI0NiwgNDksIDI4LCAxNiwgMjU0LCAyMTEsIDIyNSwgMCwgMjU0LCAxNiwgNDksIDI4LCAxNiwgMjU0LCAKKyAgICAyMTEsIDI1NCwgMTMsIDQ5LCAyOCwgMTYsIDI1NCwgMjExLCAyNTQsIDE2LCA0OSwgMjgsIDE2LCAyNTQsIDIxMSwgMjMxLCAKKyAgICAzNCwgNDksIDI4LCAxNiwgMjU0LCAyMTEsIDIzMSwgNDUsIDQ5LCAyOCwgMTYsIDI1NCwgMjExLCAyNDIsIDE2MCwgNDksIAorICAgIDI4LCAxNiwgMjU0LCAyMTEsIDI0MiwgMTU3LCA0OSwgMjgsIDE2LCAyNTQsIDIxMSwgMjI1LCAwLCAyNDIsIDE2MCwgNDksIAorICAgIDI4LCAxNiwgMjMxLCAxNTEsIDIyNCwgMTY1LCAyNDAsIDEwNywgNDksIDI4LCAxNiwgMjMxLCAxNTEsIDI1NCwgMTUxLCAKKyAgICAyMjQsIDE2NSwgMjQwLCAxMDcsIDQ5LCAyOCwgMTYsIDIzMSwgMTUxLCAyNDgsIDI4LCAyNDAsIDEwNywgNDksIDI4LCAxNiwgCisgICAgMjMxLCAxNTEsIDI1NCwgMTUxLCAyNDgsIDI4LCAyNDAsIDEwNywgNDksIDI4LCAxNiwgMjMxLCAxNTEsIDIxNSwgMjA1LCAKKyAgICAyNDAsIDEwNywgNDksIDI4LCAxNiwgMjMxLCAxNTEsIDIxNSwgMjE3LCA0OSwgMjgsIDE2LCAyMzEsIDE1MSwgMjE2LCAyMjgsIAorICAgIDI0MCwgMTA3LCA0OSwgMjgsIDE2LCAyMzEsIDE1MSwgMjE2LCAyMjgsIDIzMywgMzUsIDI0MCwgMTA3LCA0OSwgMjgsIDE2LCAKKyAgICAyMzEsIDE1MSwgMjMzLCAzNSwgMjQwLCAxMDcsIDQ5LCAyOCwgMTYsIDIzMSwgMTUxLCAyMjUsIDM5LCAyNDAsIDEwNywgNDksIAorICAgIDI4LCAxNiwgMjM1LCAxNjksIDIxNiwgMjUxLCAyNDAsIDEwOCwgNDksIDI4LCAxNiwgMjU0LCA2MCwgMjE2LCAyNTEsIDI0MCwgCisgICAgMTA4LCA0OSwgMjgsIDE2LCAyNDQsIDE3MiwgMjE2LCAyMjUsIDQ5LCAyOCwgMTYsIDI0NCwgMTcyLCAyMzAsIDE0MywgNDksIAorICAgIDI4LCAxNiwgMjQ0LCAxNzIsIDI0NywgMjMwLCA0OSwgMjgsIDE2LCAyMzEsIDE1MSwgMjE0LCAxMCwgMjQwLCAxMDcsIDQ5LCAKKyAgICAyOCwgMTYsIDIzMSwgMTUxLCAyMjQsIDE2NCwgMjQwLCAxMDcsIDQ5LCAyOCwgMTYsIDIzMSwgMTUxLCAyMjUsIDM5LCAyMTYsIAorICAgIDIyOCwgMjQwLCAxMDcsIDQ5LCAyOCwgMTYsIDI0MiwgMTU1LCAyMzAsIDI2LCAyNTQsIDYzLCA0OSwgMjgsIDE2LCAyNDIsIAorICAgIDE1NSwgMjMwLCAyNiwgMjQ3LCAyMDAsIDQ5LCAyOCwgMTYsIDI0NSwgMTQ4LCAyMzQsIDI0NywgMjQzLCAyMzYsIDIxMywgCisgICAgMTI0LCA0OSwgMjgsIDE2LCAyMzYsIDEzLCA0OSwgMjgsIDE2LCAyMzYsIDExLCA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgMjU0LCAKKyAgICAyMiwgMjQ4LCAyNywgMjQwLCAxMDYsIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyNDcsIDI0NCwgMTkwLCA0OSwgMjgsIDE2LCAKKyAgICAyNDMsIDIzNiwgMjQ3LCAyNDQsIDIyOSwgMjAzLCA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgMjI5LCAxOTgsIDI0MCwgMTA3LCAKKyAgICA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgMjQ3LCAyNDQsIDI0OCwgMywgNDksIDI4LCAxNiwgMjQzLCAyMzYsIDIxOSwgMTAyLCAKKyAgICAyNDcsIDI0MywgMjQ4LCAzLCA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgMjQ3LCAyNDQsIDIzNCwgMTgyLCA0OSwgMjgsIDE2LCAKKyAgICAyNDMsIDIzNiwgMjQ3LCAyNDQsIDIxMCwgMjMsIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyNDcsIDI0NCwgMjI4LCAyMzQsIAorICAgIDIzNCwgMTk2LCA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgMjQ3LCAyNDQsIDIyOCwgMjM0LCAyNTQsIDk2LCA0OSwgMjgsIDE2LCAKKyAgICAyNDMsIDIzNiwgMjMxLCAxOTEsIDI1MCwgNzMsIDI0NywgMjMwLCA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgMjMxLCAxOTEsIAorICAgIDI1MCwgNzMsIDIzMCwgMTQzLCA0OSwgMjgsIDE2LCAyNDQsIDEyMiwgMjE5LCAxMDIsIDI1MCwgNzMsIDIxNCwgOSwgNDksIAorICAgIDI4LCAxNiwgMjQzLCAyMzYsIDIxOSwgMTAyLCAyNTAsIDczLCAyMTcsIDE3OSwgNDksIDI4LCAxNiwgMjQzLCAyMzYsIDIyOSwgCisgICAgOTcsIDQ5LCAyOCwgMTYsIDI1MCwgNzQsIDIwOSwgMjQ5LCA0OSwgMjgsIDE2LCAyNTAsIDc0LCAyMzQsIDM2LCA0OSwgMjgsIAorICAgIDE2LCAyNTAsIDc0LCAyMTksIDksIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyNDAsIDE1NCwgMjExLCAxMCwgMjE2LCAyMjksIAorICAgIDQ5LCAyOCwgMTYsIDI0MywgMjM2LCAyNDUsIDE0OSwgMjU0LCA4NiwgNDksIDI4LCAxNiwgMjExLCAxMCwgMjE1LCAyMDYsIAorICAgIDQ5LCAyOCwgMTYsIDI0NywgMjM4LCAyMTUsIDIwNiwgNDksIDI4LCAxNiwgMjQ3LCAyMzgsIDIxNiwgMjI5LCA0OSwgMjgsIAorICAgIDE2LCAyNDcsIDIzOCwgMjU0LCA2NSwgMjQ2LCA0MiwgMjQ3LCAxMzksIDQ5LCAyOCwgMTYsIDI0NywgMjM4LCAyMzAsIDE0MSwgCisgICAgMjE2LCAyMzMsIDI0NywgMTM5LCA0OSwgMjgsIDE2LCAyNDcsIDIzOCwgMjQ3LCAyMjIsIDI0NSwgMzYsIDI0NywgMTM5LCAKKyAgICA0OSwgMjgsIDE2LCAyNDcsIDIzOCwgMjE1LCAyMTQsIDIyNiwgMjExLCAyNDcsIDEzOSwgNDksIDI4LCAxNiwgMjExLCAxMCwgCisgICAgMjU0LCA2NSwgMjQ2LCA0MiwgMjQ3LCAxMzksIDQ5LCAyOCwgMTYsIDIxMSwgMTAsIDIzMCwgMTQxLCAyMTYsIDIzMywgMjQ3LCAKKyAgICAxMzksIDQ5LCAyOCwgMTYsIDIxMSwgMTAsIDI0NywgMjIyLCAyNDUsIDM2LCAyNDcsIDEzOSwgNDksIDI4LCAxNiwgMjExLCAKKyAgICAxMCwgMjE1LCAyMTQsIDIyNiwgMjExLCAyNDcsIDEzOSwgNDksIDI4LCAxNiwgMjQzLCA0OSwgMjQ3LCAyMzcsIDQ5LCAyOCwgCisgICAgMTYsIDI0MywgNDksIDIxMSwgOSwgNDksIDI4LCAxNiwgMjQ3LCAyNDUsIDI1NCwgNjUsIDIzMCwgMTk5LCA0OSwgMjgsIDE2LCAKKyAgICAyNDcsIDI0NSwgMjU0LCA2NSwgMjMxLCA3MywgNDksIDI4LCAxNiwgMjQ3LCAyNDUsIDI0NywgMjAxLCA0OSwgMjgsIDE2LCAKKyAgICAyNDcsIDI0NSwgMjE2LCAxODIsIDQ5LCAyOCwgMTYsIDIxOSwgMTYzLCAyMTYsIDE4MiwgNDksIDI4LCAxNiwgMjE5LCAxNjMsIAorICAgIDIxNiwgMTgzLCAyNDcsIDE4NiwgNDksIDI4LCAxNiwgMjE5LCAxNjMsIDIxNiwgMTgzLCAyMTUsIDIwNywgNDksIDI4LCAxNiwgCisgICAgMjE5LCAxNjMsIDIxNiwgMTgzLCAyMTYsIDIyMiwgNDksIDI4LCAxNiwgMjE5LCAxNjMsIDI1MywgMjQ0LCA0OSwgMjgsIDE2LCAKKyAgICAyMTksIDE2MywgMjUzLCAyNDUsIDI0NywgMTg2LCA0OSwgMjgsIDE2LCAyMTksIDE2MywgMjUzLCAyNDUsIDIxNSwgMjA3LCAKKyAgICA0OSwgMjgsIDE2LCAyMTksIDE2MywgMjUzLCAyNDUsIDIxNiwgMjIyLCA0OSwgMjgsIDE2LCAyNDcsIDIyMywgMjQzLCAzMCwgCisgICAgNDksIDI4LCAxNiwgMjQ3LCAyMjksIDIyNiwgMTM0LCA0OSwgMjgsIDE2LCAyMTgsIDEzNywgNDksIDI4LCAxNiwgMjU0LCA3LCAKKyAgICAxOTAsIDQ5LCAyOCwgMTYsIDI1NCwgNywgMjEzLCAxMjQsIDQ5LCAyOCwgMTYsIDI1NCwgNywgMjQzLCAxMzUsIDQ5LCAyOCwgCisgICAgMTYsIDI1NCwgNywgMjQ4LCAzLCA0OSwgMjgsIDE2LCAyNTQsIDcsIDIzNCwgMTgyLCA0OSwgMjgsIDE2LCAyNTQsIDcsIAorICAgIDIxMCwgMjMsIDQ5LCAyOCwgMTYsIDI1NCwgNywgMjI4LCAyMzMsIDQ5LCAyOCwgMTYsIDIzNCwgMTYyLCAyMjksIDk2LCAKKyAgICAyMzEsIDQ0LCA0OSwgMjgsIDE2LCAyMzQsIDE2MywgMjI5LCA5NiwgMjMxLCA0NCwgNDksIDI4LCAxNiwgMjM0LCAxNjIsIAorICAgIDIyOSwgOTYsIDIzNCwgMTk2LCA0OSwgMjgsIDE2LCAyMzQsIDE2MywgMjI5LCA5NiwgMjM0LCAxOTYsIDQ5LCAyOCwgMTYsIAorICAgIDIzNCwgMzgsIDIzNCwgMTk2LCA0OSwgMjgsIDE2LCAyNDIsIDE1OSwgMjI5LCA5NiwgMjM0LCAxOTYsIDI4LCAxNiwgMjE5LCAKKyAgICAxNTUsIDI1MiwgMTM1LCAyOCwgMTYsIDUyLCAyNTIsIDEzNSwgMjgsIDE2LCA0MCwgMjUyLCAxMzUsIDI4LCAxNiwgMjIzLCAKKyAgICA1MCwgNDAsIDI1MiwgMTM1LCAyOCwgMTYsIDI0OCwgMTU1LCAyNTIsIDEzNSwgMjgsIDE2LCAyMTksIDI1MSwgMjUyLCAxMzUsIAorICAgIDI4LCAxNiwgNDMsIDIyMywgNzcsIDUwLCAyOCwgMTYsIDQ0LCAyMjMsIDc3LCA1MCwgMjgsIDE2LCAyMjMsIDc3LCAyNDcsIAorICAgIDExOCwgMjgsIDE2LCAyNDgsIDE5NiwgMjIxLCAxNjMsIDI4LCAxNiwgMjQ4LCAyMjIsIDI1MCwgMjQ5LCAyOCwgMTYsIDIyMSwgCisgICAgMTYzLCAyOCwgMTYsIDI0OSwgMjM0LCAyOCwgMTYsIDIyMywgNzUsIDI0NCwgMTExLCAyOCwgMTYsIDIyMywgNzUsIDI0NCwgCisgICAgMTEwLCAyOCwgMTYsIDIyMywgNzUsIDI0NCwgMTA5LCAyOCwgMTYsIDI0NCwgMTMxLCAyOCwgMTYsIDI0NCwgMTMyLCA1MSwgCisgICAgMjgsIDE2LCAyNTEsIDE0OCwgNzgsIDI4LCAxNiwgMjUxLCAyNCwgMjgsIDE2LCAyNTEsIDE1OSwgMjgsIDE2LCAxMjcsIDI4LCAKKyAgICAxNiwgMjI2LCAxOTMsIDIxOCwgMTYzLCAyOCwgMTYsIDIxNSwgNTcsIDIxOCwgMTYzLCAyOCwgMTYsIDIxNiwgMTQyLCAyMTgsIAorICAgIDE2MywgMjgsIDE2LCAyNDQsIDEwLCAyMTgsIDE2MywgMjgsIDE2LCAyNDQsIDgwLCAyMTgsIDE2MywgMjgsIDE2LCAyMTksIAorICAgIDEyNCwgMjE4LCAxNjMsIDI4LCAxNiwgMjE5LCAxMjIsIDI0MywgMjUwLCAyOCwgMTYsIDI0NCwgOCwgMjQzLCAyNTAsIDI4LCAKKyAgICAxNiwgMjQzLCAyMDMsIDI1MCwgMTQsIDI4LCAxNiwgMjQzLCAyMDMsIDI1MCwgMTUsIDIyNiwgMTM2LCAyNTQsIDE0MiwgMjgsIAorICAgIDE2LCAyNDMsIDIwMywgMjUwLCAxNSwgMjI2LCAxMzYsIDI1MiwgMTIyLCAyOCwgMTYsIDI1MSwgNjcsIDI1MCwgMTQsIDI4LCAKKyAgICAxNiwgMjQ1LCA3LCAyNTAsIDE0LCAyOCwgMTYsIDI0NSwgNywgMjUwLCAxNSwgMjI2LCAxMzYsIDI1NCwgMTQyLCAyOCwgMTYsIAorICAgIDI0NSwgNywgMjUwLCAxNSwgMjI2LCAxMzYsIDI1MiwgMTIyLCAyOCwgMTYsIDI0NiwgODMsIDI1MCwgMTMsIDI4LCAxNiwgCisgICAgMjQ2LCA4MywgMjUwLCAxMiwgMjgsIDE2LCAyMzAsIDg1LCAyMzEsIDkwLCAyMjMsIDYxLCAyOCwgMTYsIDUyLCAyMjAsIDc1LCAKKyAgICAyOCwgMTYsIDUyLCAyNDQsIDY1LCAyOCwgMTYsIDI0NCwgNjYsIDIxNCwgMTYzLCAyOCwgMTYsIDI0NCwgNjYsIDI0NiwgCisgICAgMTA2LCAyOCwgMTYsIDIyOSwgMTg4LCAyMTQsIDE2MywgMjgsIDE2LCAyMjksIDE4OCwgMjQ2LCAxMDYsIDI4LCAxNiwgMjIwLCAKKyAgICA3NiwgMjE0LCAxNjMsIDI4LCAxNiwgMjIwLCA3NiwgMjQ2LCAxMDYsIDI4LCAxNiwgMjI0LCAyMiwgMTM4LCAyMjAsIDc1LCAKKyAgICAyOCwgMTYsIDIyNCwgMjIsIDEzOCwgMjQ0LCA2NSwgMjgsIDE2LCAyNDksIDIxNiwgMjE2LCA4NywgMjgsIDE2LCAyNDksIAorICAgIDg1LCAyMTYsIDg3LCAyOCwgMTYsIDIyNiwgMTM2LCAyNTQsIDE0MiwgMjgsIDE2LCAyMjYsIDEzNiwgMjUyLCAxMjIsIDI4LCAKKyAgICAxNiwgMjI0LCA0LCAyNTQsIDE0MiwgMjgsIDE2LCAyMjQsIDQsIDI1MiwgMTIyLCAyOCwgMTYsIDIzMCwgODgsIDIyMywgNjEsIAorICAgIDI4LCAxNiwgMjExLCAyNTEsIDIyMywgNjEsIDI4LCAxNiwgMTYzLCAyMjMsIDYxLCAyOCwgMTYsIDIyNCwgMjIsIDIyMywgCisgICAgNjEsIDI4LCAxNiwgMjQ1LCAxODksIDIyMywgNjEsIDI4LCAxNiwgMjE5LCAxMTgsIDIyMywgNjEsIDI4LCAxNiwgMjE2LCAKKyAgICAxNjAsIDIyMywgNjEsIDI4LCAxNiwgMjE5LCAxMTAsIDIyMywgNjEsIDI4LCAxNiwgMTIzLCAyNDAsIDIxMSwgMjE1LCA3MSwgCisgICAgMjIzLCA2MSwgMjgsIDE2LCAyMTEsIDE3OSwgMjI4LCA0MywgMjgsIDE2LCA5NiwgMjI4LCA0MywgMjgsIDE2LCAyNTAsIDM2LCAKKyAgICAyMTEsIDE3OSwgMjI4LCA0MywgMjgsIDE2LCA0MiwgMjI4LCA0NCwgMjExLCAyNTMsIDI4LCAxNiwgNDIsIDIyOCwgNDQsIAorICAgIDI1MSwgMjIxLCAyOCwgMTYsIDIxNSwgMjI2LCAyMjgsIDQ0LCAxMjAsIDIxMSwgMjUzLCAyOCwgMTYsIDIxNSwgMjI2LCAKKyAgICAyMjgsIDQ0LCAxMjAsIDI1MSwgMjIxLCAyOCwgMTYsIDIxNSwgMjI2LCAyMjgsIDQ0LCA0MywgMjExLCAyNTMsIDI4LCAxNiwgCisgICAgMjE1LCAyMjYsIDIyOCwgNDQsIDQzLCAyNTEsIDIyMSwgMjgsIDE2LCAyMTUsIDIyNiwgMjI4LCA0NCwgNDQsIDIxMSwgMjUzLCAKKyAgICAyOCwgMTYsIDIxNSwgMjI2LCAyMjgsIDQ0LCA0NCwgMjUxLCAyMjEsIDI4LCAxNiwgMjE1LCAyMjYsIDIyOCwgNDQsIDEyNCwgCisgICAgMjExLCAyNTMsIDI4LCAxNiwgMjE1LCAyMjYsIDIyOCwgNDQsIDEyNCwgMjUxLCAyMjEsIDI4LCAxNiwgMjE1LCAyMjYsIAorICAgIDIyOCwgNDQsIDEyMCwgNDQsIDIxMSwgMjUzLCAyOCwgMTYsIDIxNSwgMjI2LCAyMjgsIDQ0LCAxMjAsIDQ0LCAyNTEsIDIyMSwgCisgICAgMjgsIDE2LCAyMzAsIDEyOSwgMjI4LCA0NCwgMjExLCAyNTMsIDI4LCAxNiwgMjMwLCAxMjksIDIyOCwgNDQsIDI1MSwgMjIxLCAKKyAgICAyOCwgMTYsIDIxNSwgMjIzLCAyMjgsIDQ0LCAxMjQsIDIxMSwgMjUzLCAyOCwgMTYsIDIxNSwgMjIzLCAyMjgsIDQ0LCAxMjQsIAorICAgIDI1MSwgMjIxLCAyOCwgMTYsIDIyNiwgNCwgMjI4LCA0MywgMjgsIDE2LCAyMTMsIDEzMiwgMjI4LCA0MywgMjgsIDE2LCAKKyAgICAyMjgsIDQ0LCAyNTEsIDIyMSwgMjgsIDE2LCAyMjcsIDIwMywgMjI4LCA0MywgMjgsIDE2LCAyNDksIDI0MSwgMjI4LCA0NCwgCisgICAgMjExLCAyNTMsIDI4LCAxNiwgMjQ5LCAyNDEsIDIyOCwgNDQsIDI1MSwgMjIxLCAyOCwgMTYsIDI1MSwgMTQ2LCAyOCwgMTYsIAorICAgIDIxMSwgMjUxLCAyMjgsIDQ3LCAyOCwgMTYsIDE2MywgMjI4LCA0NywgMjgsIDE2LCAyMjQsIDIyLCAyMjgsIDQ3LCAyOCwgCisgICAgMTYsIDI0NSwgMTg5LCAyMjgsIDQ3LCAyOCwgMTYsIDIxOSwgMTE4LCAyMjgsIDQ3LCAyOCwgMTYsIDIxNiwgMTYwLCAyMjgsIAorICAgIDQ3LCAyOCwgMTYsIDIxOSwgMTEwLCAyMjgsIDQ3LCAyOCwgMTYsIDEyMywgMjQwLCAyMTEsIDIxNSwgNzEsIDIyOCwgNDcsIAorICAgIDI4LCAxNiwgMzgsIDIxOCwgMTM5LCAyOCwgMTYsIDM4LCAyMTgsIDI0MCwgMjE4LCAxMzksIDI4LCAxNiwgMzgsIDIxNSwgCisgICAgMjM0LCAyOCwgMTYsIDM4LCAyMTUsIDIzMywgMjgsIDE2LCAzOCwgMjE1LCAyMzIsIDI4LCAxNiwgMjQ0LCAxMDEsIDIxNSwgCisgICAgMjM0LCAyOCwgMTYsIDI0NCwgMTAxLCAyMTUsIDIzMywgMjgsIDE2LCAyNDQsIDEwMSwgMjE1LCAyMzIsIDI4LCAxNiwgMzgsIAorICAgIDI1MywgMTg5LCAyNDcsIDEyMCwgMjgsIDE2LCAzOCwgMjQ0LCA3MiwgMjgsIDE2LCAzOCwgMjQ0LCA3MSwgMjgsIDE2LCAzOCwgCisgICAgMjQ0LCA3MCwgMjgsIDE2LCAzOCwgMjQ0LCA2OSwgMjgsIDE2LCAzOCwgMjQ0LCA2OCwgMjgsIDE2LCAyNTIsIDU4LCAyNTIsIAorICAgIDc0LCAyOCwgMTYsIDI0NSwgMTQzLCAyNTIsIDc0LCAyOCwgMTYsIDI1MiwgNTgsIDIxNiwgMTExLCAyOCwgMTYsIDI0NSwgCisgICAgMTQzLCAyMTYsIDExMSwgMjgsIDE2LCAyNTIsIDU4LCAyMTksIDgwLCAyOCwgMTYsIDI0NSwgMTQzLCAyMTksIDgwLCAyOCwgCisgICAgMTYsIDI1MiwgNTgsIDIyNSwgMTE1LCAyOCwgMTYsIDI0NSwgMTQzLCAyMjUsIDExNSwgMjgsIDE2LCAzOCwgMjU1LCAxNCwgCisgICAgMjgsIDE2LCAzOCwgMjE4LCAxNjUsIDI4LCAxNiwgMzgsIDIxNiwgMjM4LCAyOCwgMTYsIDM4LCAyMTgsIDE2NiwgMjgsIDE2LCAKKyAgICAzOCwgMjMxLCAxNjIsIDI4LCAxNiwgMzgsIDIzMSwgMTYxLCAyOCwgMTYsIDM4LCAyNTUsIDEzLCAyOCwgMTYsIDM4LCAyMzIsIAorICAgIDExMiwgMjgsIDE2LCAyNTMsIDI1NCwgMjE0LCAxNjMsIDI4LCAxNiwgMjUzLCAyNTQsIDI0NiwgMTA2LCAyOCwgMTYsIDM4LCAKKyAgICAyNDcsIDEzNSwgMjgsIDE2LCAzOCwgMjIyLCAyMzEsIDI4LCAxNiwgMzgsIDI0NCwgNTgsIDI4LCAxNiwgMzgsIDIxOSwgNzYsIAorICAgIDI4LCAxNiwgMzgsIDI1MiwgMzgsIDI4LCAxNiwgMzgsIDUyLCAyMTYsIDE5LCAyOCwgMTYsIDM4LCAyMTUsIDIxMSwgMjE2LCAKKyAgICAxOSwgMjgsIDE2LCAyMjIsIDIzNSwgMjgsIDE2LCAyMTgsIDc1LCAyOCwgMTYsIDIxMCwgMTU5LCAyOCwgMTYsIDIyNSwgCisgICAgMTA3LCAyOCwgMTYsIDIzMSwgMjUsIDI4LCAxNiwgMjQ0LCAxNywgMjgsIDE2LCAyNDksIDEzOCwgMjgsIDE2LCAyNDgsIDc4LCAKKyAgICAyOCwgMTYsIDI0MiwgMTUwLCAyMjgsIDQ4LCAyMTksIDk1LCAyOCwgMTYsIDI0MiwgMTUwLCAyMjgsIDQ4LCAyMjgsIDc1LCAKKyAgICAyMTksIDk1LCAyOCwgMTYsIDIxNiwgMCwgMjgsIDE2LCAyMTUsIDk1LCAyOCwgMTYsIDIzNSwgMTkzLCAyMTUsIDk1LCAyOCwgCisgICAgMTYsIDIxNSwgOTYsIDIxOSwgOTUsIDI4LCAxNiwgMjE1LCA5NiwgMjE0LCAxNjMsIDI4LCAxNiwgMjI2LCAxNDgsIDIxOCwgCisgICAgMTAyLCAyOCwgMTYsIDIyNiwgMTQ4LCAyMTgsIDk5LCAyOCwgMTYsIDIyNiwgMTQ4LCAyMTgsIDk4LCAyOCwgMTYsIDIyNiwgCisgICAgMTQ4LCAyMTgsIDk3LCAyOCwgMTYsIDIyNiwgMTQ4LCAyMTgsIDk2LCAyOCwgMTYsIDIyNiwgMTQ4LCAyMTgsIDk1LCAyOCwgCisgICAgMTYsIDIyNiwgMTQ4LCAyMTgsIDk0LCAyOCwgMTYsIDIyNiwgMTQ4LCAyMTgsIDkzLCAyOCwgMTYsIDIyNiwgMTQ4LCAyMTgsIAorICAgIDkyLCAyOCwgMTYsIDIyNiwgMTQ4LCAyMTgsIDEwMSwgMjgsIDE2LCAyMjYsIDE0OCwgMjE4LCAxMDAsIDI4LCAxNiwgMjQxLCAKKyAgICAyNDUsIDI4LCAxNiwgMjI5LCAxMDUsIDI4LCAxNiwgMjQ1LCAxNDMsIDY0LCAyMTgsIDEzMywgMjgsIDE2LCAyNDgsIDcxLCAKKyAgICAyMTksIDk1LCAyOCwgMTYsIDM4LCAxMjQsIDI1MSwgMTY5LCAyOCwgMTYsIDM4LCAxMjAsIDI1MSwgMTY5LCAyOCwgMTYsIAorICAgIDM4LCAyNDIsIDAsIDI4LCAxNiwgMzgsIDIxOSwgNjcsIDIyNSwgNDMsIDI4LCAxNiwgMjI1LCAyMTYsIDc4LCAyOCwgMTYsIAorICAgIDIyNSwgMjE2LCAxMjAsIDc4LCAyOCwgMTYsIDE2MywgMjI1LCAyMTYsIDc4LCAyOCwgMTYsIDI0MiwgMTgyLCAyMTQsIDE2MywgCisgICAgMjgsIDE2LCAyNDIsIDE4MiwgMjQ2LCAxMDYsIDI4LCAxNiwgMiwgMjQ0LCAxMDAsIDI4LCAxNiwgMjQ4LCAxODAsIDI4LCAKKyAgICAxNiwgMjQ4LCAxODEsIDI1NCwgMTU0LCAyOCwgMTYsIDIzMSwgMTMzLCAyOCwgMTYsIDIzMiwgMTI5LCAyOCwgMTYsIDI1MSwgCisgICAgMTQzLCAyOCwgMTYsIDIyMCwgMTU0LCAyMTEsIDI1MywgMjgsIDE2LCAyMjAsIDE1NCwgMjUxLCAyMjEsIDI4LCAxNiwgMjMwLCAKKyAgICAxODQsIDI4LCAxNiwgMjMwLCAxODUsIDI1MSwgMjIxLCAyOCwgMTYsIDIyMCwgMTQ4LCAyMTEsIDI1MywgMjgsIDE2LCAyMjAsIAorICAgIDE0OCwgMjUxLCAyMjEsIDI4LCAxNiwgMjQzLCAyMjAsIDIxMSwgMjUzLCAyOCwgMTYsIDI0MywgMjIwLCAyNTEsIDIyMSwgCisgICAgMjgsIDE2LCAyMzIsIDEzMCwgMjI1LCAxODAsIDIyMywgNjEsIDI4LCAxNiwgMjMyLCAxMzAsIDIzNiwgNCwgMjIzLCA2MSwgCisgICAgMjgsIDE2LCAyNTEsIDE0NCwgMjIzLCA2MSwgMjgsIDE2LCAyMjAsIDE1NCwgMjIzLCA2MSwgMjgsIDE2LCAyMzAsIDE4NSwgCisgICAgMjIzLCA2MSwgMjgsIDE2LCAyMjAsIDE0OCwgMjIzLCA2MSwgMjgsIDE2LCAyMTYsIDI0OSwgMjI1LCAxNzgsIDI0OSwgMTA3LCAKKyAgICAyMjQsIDE3NCwgMjI1LCAxNzksIDI4LCAxNiwgMjE2LCAyNDksIDIyNSwgMTc4LCAyNDksIDEwNywgMjI0LCAxNzQsIDIzNiwgCisgICAgMywgMjgsIDE2LCAyMTYsIDI0OSwgMjI1LCAxNzgsIDI0OSwgMTA3LCAyMjQsIDE3NCwgMjI1LCAxODAsIDI0NywgMjExLCAKKyAgICAyOCwgMTYsIDIxNiwgMjQ5LCAyMzYsIDIsIDI0OSwgMTA3LCAyMjQsIDE3NCwgMjI1LCAxNzksIDI4LCAxNiwgMjE2LCAyNDksIAorICAgIDIzNiwgMiwgMjQ5LCAxMDcsIDIyNCwgMTc0LCAyMzYsIDMsIDI4LCAxNiwgMjE2LCAyNDksIDIzNiwgMiwgMjQ5LCAxMDcsIAorICAgIDIyNCwgMTc0LCAyMzYsIDQsIDI0NywgMjExLCAyOCwgMTYsIDIxNiwgMjQ5LCAyMzYsIDIsIDI0OSwgMTA3LCAyMjQsIDE3NCwgCisgICAgMjM2LCA0LCAyNDcsIDIxMCwgMjgsIDE2LCAyMTYsIDI0OSwgMjM2LCAyLCAyNDksIDEwNywgMjI0LCAxNzQsIDIzNiwgNCwgCisgICAgMjQ3LCAyMDksIDI4LCAxNiwgMjQ5LCAxMzMsIDI4LCAxNiwgMjQyLCAxMjYsIDI1MSwgNjcsIDI1MCwgMTQsIDI4LCAxNiwgCisgICAgMjQyLCAxMjYsIDI0NSwgNywgMjUwLCAxNCwgMjgsIDE2LCA0MiwgMjUzLCAxNTgsIDI4LCAxNiwgMjEzLCAxNTEsIDI4LCAKKyAgICAxNiwgMjI1LCAxNCwgMjgsIDE2LCAyNTAsIDUsIDI4LCAxNiwgMjIxLCAyMDMsIDI4LCAxNiwgMjUwLCA5LCAyOCwgMTYsIAorICAgIDIxNiwgNywgMjgsIDE2LCAyMjQsIDI0MiwgMjgsIDE2LCAyMjQsIDI0MywgMjQ0LCA2MCwgMjgsIDE2LCAyMjEsIDIwNCwgCisgICAgMjQ0LCA2MCwgMjgsIDE2LCAyMTYsIDgsIDIyMywgNTgsIDI4LCAxNiwgMjI1LCAxNjMsIDIxOCwgNjYsIDI2LCAyMTMsIAorICAgIDEzNywgMTg3LCAyMTcsIDIyOSwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMjE4LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAKKyAgICAyMDgsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDIwMSwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMTkzLCAyNiwgMjEzLCAKKyAgICAxMzcsIDE4NywgMjE3LCAxODcsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDE4NiwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgCisgICAgMTg1LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAxODQsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDIyOCwgMjYsIDIxMywgCisgICAgMTM3LCAxODcsIDIxNywgMjI3LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAyMjYsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIAorICAgIDIyNSwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMjI0LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAyMjMsIDI2LCAyMTMsIAorICAgIDEzNywgMTg3LCAyMTcsIDIyMiwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMjIxLCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAKKyAgICAyMjAsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDIxOSwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMjE3LCAyNiwgMjEzLCAKKyAgICAxMzcsIDE4NywgMjE3LCAyMTYsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDIxNSwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgCisgICAgMjE0LCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAyMTMsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIDE5MiwgMjYsIDIxMywgCisgICAgMTM3LCAxODcsIDIxNywgMTkxLCAyNiwgMjEzLCAxMzcsIDE4NywgMjE3LCAxOTAsIDI2LCAyMTMsIDEzNywgMTg3LCAyMTcsIAorICAgIDE4OSwgMjYsIDIxMywgMTM3LCAxODcsIDIxNywgMTg4LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAyMjksIDI2LCAyMzUsIAorICAgIDIxNCwgMTg3LCAyMTcsIDIxOCwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMjAxLCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAKKyAgICAxOTMsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDE4NiwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMTg1LCAyNiwgMjM1LCAKKyAgICAyMTQsIDE4NywgMjE3LCAyMjcsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIyNiwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgCisgICAgMjI1LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAyMjQsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIyMSwgMjYsIDIzNSwgCisgICAgMjE0LCAxODcsIDIxNywgMjIwLCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAyMTksIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIAorICAgIDIxNCwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMjEzLCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAyMTIsIDI2LCAyMzUsIAorICAgIDIxNCwgMTg3LCAyMTcsIDIxMSwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMjEwLCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAKKyAgICAyMDksIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIwNywgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMjA2LCAyNiwgMjM1LCAKKyAgICAyMTQsIDE4NywgMjE3LCAyMDUsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIwNCwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgCisgICAgMjAzLCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAyMDIsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDIwMCwgMjYsIDIzNSwgCisgICAgMjE0LCAxODcsIDIxNywgMTk5LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAxOTgsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIAorICAgIDE5NywgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMTk2LCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAxOTUsIDI2LCAyMzUsIAorICAgIDIxNCwgMTg3LCAyMTcsIDE5NCwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMTkyLCAyNiwgMjM1LCAyMTQsIDE4NywgMjE3LCAKKyAgICAxOTEsIDI2LCAyMzUsIDIxNCwgMTg3LCAyMTcsIDE5MCwgMjYsIDIzNSwgMjE0LCAxODcsIDIxNywgMTg5LCAyNiwgMjM1LCAKKyAgICAyMTQsIDE4NywgMjE3LCAxODgsIDM4LCAyNiwgMjgsIDIxNSwgMjA4LCAzOCwgMjYsIDI4LCAyMTYsIDIyMywgMzgsIDI2LCAKKyAgICAyOCwgMjI1LCAxODgsIDI2LCAyOCwgMjMzLCAzMSwgMjMwLCAxNDIsIDMxLCAyNDUsIDIyMywgMjQ3LCAyMjQsIDMxLCAyNDEsIAorICAgIDIyMiwgMjQ1LCAyMjMsIDI0NywgMjI0LCAzMSwgMjQwLCAyMTQsIDI0NSwgMjIzLCAyNDcsIDIyNCwgMzEsIDI0NSwgMjIyLCAKKyAgICAyNDEsIDIyMywgMjQ3LCAyMjQsIDMxLCAyNDUsIDIyMiwgMjQwLCAyMTMsIDI0NywgMjI0LCAzMSwgMjQ1LCAyMjMsIDE4MCwgCisgICAgMzEsIDI1MCwgMTc0LCAxODAsIDMxLCAyNDMsIDIyOSwgMjUwLCAzNSwgMTgwLCAzMSwgMjMwLCAxNzcsIDE4MCwgMzEsIAorICAgIDI1MiwgMTMwLCAxODAsIDMxLCAyMzQsIDE3OSwgMjE5LCA3OSwgMTgwLCAzMSwgMjQ5LCAxNzksIDE4MCwgMzEsIDI1MywgCisgICAgMjMzLCAxODAsIDMxLCAyMjYsIDE2MywgMTgwLCAzMSwgMjUxLCAxNTMsIDIyNiwgMTMwLCAxODAsIDMxLCAyNDgsIDczLCAKKyAgICAxNzcsIDI0NywgMTc5LCAxODAsIDMxLCAyNDcsIDE3NiwgMTgwLCAzMSwgMjEwLCAyMjIsIDE4MCwgMzEsIDIzNSwgMjQ3LCAKKyAgICAxODAsIDMxLCAyMjUsIDE5NywgMTgwLCAzMSwgMjIzLCAxMjcsIDE4MCwgMzEsIDI0OSwgMTg5LCAxODAsIDMxLCAyNDEsIAorICAgIDYwLCAyNTIsIDE4NCwgMTgwLCAzMSwgMjEyLCA1OSwgMTgwLCAzMSwgMjQ0LCAzOSwgMTgwLCAzMSwgMjU0LCAyNDYsIDE4MCwgCisgICAgMzEsIDIyMywgODksIDE4MCwgMzEsIDIyMywgNjUsIDE4MCwgMzEsIDI0NSwgMjIxLCAxODAsIDMxLCAyMzUsIDUzLCAxODAsIAorICAgIDMxLCAyNDksIDE4NCwgMTgwLCAzMSwgMjQ1LCAxNDIsIDE4MCwgMzEsIDI0NiwgNTIsIDE4MCwgMzEsIDI1MCwgMTQ1LCAKKyAgICAxODAsIDMxLCAyNDgsIDgyLCAxODAsIDMxLCAyMywgMjIzLCA2NCwgMTgwLCAzMSwgMjI2LCA4MSwgMTgwLCAzMSwgMjMzLCAKKyAgICAzNCwgMTgwLCAzMSwgMjQ5LCAyNTQsIDE4MCwgMzEsIDIzNCwgNzcsIDE4MCwgMzEsIDI0MywgODYsIDE4MCwgMzEsIDIxOCwgCisgICAgMTEyLCAxODAsIDMxLCAyMjQsIDEzMCwgMTgwLCAzMSwgMjQzLCAyMjgsIDE4MCwgMzEsIDIyMywgNjYsIDE4MCwgMzEsIAorICAgIDIzMywgNzEsIDE3NywgMjMwLCAxNTcsIDE4MCwgMzEsIDIyMywgNjIsIDE4MCwgMzEsIDI0MiwgMTY4LCAyMTYsIDQyLCAKKyAgICAyMzEsIDc2LCAxODAsIDMxLCAyNDUsIDE0NCwgMTgwLCAzMSwgMjE4LCAxMjQsIDE4MCwgMzEsIDI0MiwgMTI4LCAxODAsIAorICAgIDMxLCAyNDUsIDEzNiwgMTgwLCAzMSwgMjI1LCAyMzUsIDE4MCwgMzEsIDIyMiwgMjI1LCAxODAsIDMxLCAyNDQsIDU5LCAKKyAgICAxODAsIDMxLCAyMTQsIDgsIDE3NywgMjEyLCA0NCwgMTgwLCAzMSwgMjQ5LCAxOTMsIDE4MCwgMzEsIDIzMSwgODksIDE4MCwgCisgICAgMzEsIDI0NSwgNjEsIDE4MCwgMzEsIDIxNCwgMTcyLCAxODAsIDMxLCAyNDcsIDIxMiwgMTgwLCAzMSwgMjUwLCAwLCAyMzAsIAorICAgIDExMCwgMTgwLCAzMSwgMjQyLCAxMDYsIDE4MCwgMzEsIDI0MywgODcsIDIzNSwgMjU1LCAxODAsIDMxLCAyMzEsIDE0MSwgCisgICAgMTgwLCAzMSwgMjU1LCAxMCwgMTgwLCAzMSwgMjQ1LCAxNTcsIDE4MCwgMzEsIDI0NiwgMTA5LCAxODAsIDMxLCAyMTIsIDQyLCAKKyAgICAxODAsIDMxLCAyMTksIDE1MCwgMTgwLCAzMSwgMjM1LCAyMjIsIDE4MCwgMzEsIDI0OCwgNDIsIDE4MCwgMzEsIDI0OCwgCisgICAgMTYwLCAxODAsIDMxLCAyNDcsIDIwOCwgMTgwLCAzMSwgMjQ1LCAyOSwgMTgwLCAzMSwgMjIwLCAxMTUsIDE4MCwgMzEsIAorICAgIDIxOCwgMTI4LCAxODAsIDMxLCAyNDIsIDIsIDE4MCwgMzEsIDI0OSwgMjEyLCAxODAsIDMxLCAyNDksIDI1MSwgMTgwLCAzMSwgCisgICAgMjQ0LCAxNzcsIDE4MCwgMzEsIDI1NCwgMjEyLCAxODAsIDMxLCAyNDksIDIxMSwgMTgwLCAzMSwgMjI2LCAxOTcsIDIxNiwgCisgICAgMTk2LCAyMTMsIDI0MiwgMTgwLCAzMSwgMjQ3LCAyMzIsIDE4MCwgMzEsIDIzMywgMTI0LCAxODAsIDMxLCAyNDQsIDEzLCAKKyAgICAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNCwgMTc0LCAyMSwgMTEwLCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNCwgMTc0LCAyMSwgCisgICAgMTA1LCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNCwgMTc0LCAyMSwgMTU4LCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNCwgMTc0LCAKKyAgICAyMSwgMTYxLCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNCwgMTc0LCAyMSwgMTg5LCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNCwgCisgICAgMTc0LCAyMSwgMTk0LCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNCwgMTc0LCAyMSwgMTk4LCAyNDksIDE0OSwgMjIyLCAyMDIsIAorICAgIDIxNCwgMTc0LCAyMSwgMTk1LCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNCwgMTc0LCAyMSwgMjAwLCAyNDksIDE0OSwgMjIyLCAKKyAgICAyMDIsIDIxNiwgMjQzLCAyMSwgMTEwLCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNiwgMjQzLCAyMSwgMTA1LCAyNDksIDE0OSwgCisgICAgMjIyLCAyMDIsIDIxNiwgMjQzLCAyMSwgMTU4LCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNiwgMjQzLCAyMSwgMTYxLCAyNDksIAorICAgIDE0OSwgMjIyLCAyMDIsIDIxNiwgMjQzLCAyMSwgMTg5LCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNiwgMjQzLCAyMSwgMTk0LCAKKyAgICAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNiwgMjQzLCAyMSwgMTk4LCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNiwgMjQzLCAyMSwgCisgICAgMTk1LCAyNDksIDE0OSwgMjIyLCAyMDIsIDIxNiwgMjQzLCAyMSwgMjAwLCAxMSwgMjMsIDYsIDYxLCAxMSwgMjMsIDYsIAorICAgIDI1MywgMTU4LCAxMSwgMjMsIDYsIDI1MSwgNjYsIDExLCAyMywgNiwgMjQ5LCA2MCwgMTEsIDIzLCA2LCA3NSwgMTEsIDIzLCAKKyAgICA2LCAyNDUsIDYsIDExLCAyMywgNiwgMjQzLCAyMDIsIDExLCAyMywgNiwgMjQyLCA2MCwgMTEsIDIzLCA2LCA3MywgMTEsIAorICAgIDIzLCA2LCAyMzUsIDE0NCwgMTEsIDIzLCA2LCAyMzUsIDIzLCAxMSwgMjMsIDYsIDE1NiwgMTEsIDIzLCA2LCAxOTMsIDExLCAKKyAgICAyMywgNiwgMjMwLCAyNSwgMTEsIDIzLCA2LCA3NiwgMTEsIDIzLCA2LCAyMjYsIDEwNSwgMTEsIDIzLCA2LCAyMjQsIDk2LCAKKyAgICAxMSwgMjMsIDYsIDE1MywgMTEsIDIzLCA2LCAyMjIsIDkxLCAxMSwgMjMsIDYsIDIxNywgMTUyLCAxMSwgMjMsIDYsIDcwLCAKKyAgICAxMSwgMjMsIDYsIDIxNCwgMTA1LCAxMSwgMjMsIDYsIDIxMiwgOTgsIDExLCAyMywgNiwgMjExLCAxNzgsIDExLCAyMywgNiwgCisgICAgMjExLCAxMTcsIDExLCAyMywgNiwgMjEwLCAxNTksIDExLCAyMywgNCwgNjEsIDExLCAyMywgNCwgMjUzLCAxNTgsIDExLCAKKyAgICAyMywgNCwgMjUxLCA2NiwgMTEsIDIzLCA0LCAyNDksIDYwLCAxMSwgMjMsIDQsIDc1LCAxMSwgMjMsIDQsIDI0NSwgNiwgMTEsIAorICAgIDIzLCA0LCAyNDMsIDIwMiwgMTEsIDIzLCA0LCAyNDIsIDYwLCAxMSwgMjMsIDQsIDczLCAxMSwgMjMsIDQsIDIzNSwgMTQ0LCAKKyAgICAxMSwgMjMsIDQsIDIzNSwgMjMsIDExLCAyMywgNCwgMTU2LCAxMSwgMjMsIDQsIDE5MywgMTEsIDIzLCA0LCAyMzAsIDI1LCAKKyAgICAxMSwgMjMsIDQsIDc2LCAxMSwgMjMsIDQsIDIyNiwgMTA1LCAxMSwgMjMsIDQsIDIyNCwgOTYsIDExLCAyMywgNCwgMTUzLCAKKyAgICAxMSwgMjMsIDQsIDIyMiwgOTEsIDExLCAyMywgNCwgMjE3LCAxNTIsIDExLCAyMywgNCwgNzAsIDExLCAyMywgNCwgMjE0LCAKKyAgICAxMDUsIDExLCAyMywgNCwgMjEyLCA5OCwgMTEsIDIzLCA0LCAyMTEsIDE3OCwgMTEsIDIzLCA0LCAyMTEsIDExNywgMTEsIAorICAgIDIzLCA0LCAyMTAsIDE1OSwgMTEsIDMyLCA2LCA2MSwgMTEsIDMyLCA2LCAyNTMsIDE1OCwgMTEsIDMyLCA2LCAyNTEsIDY2LCAKKyAgICAxMSwgMzIsIDYsIDI0OSwgNjAsIDExLCAzMiwgNiwgNzUsIDExLCAzMiwgNiwgMjQ1LCA2LCAxMSwgMzIsIDYsIDI0MywgCisgICAgMjAyLCAxMSwgMzIsIDYsIDI0MiwgNjAsIDExLCAzMiwgNiwgNzMsIDExLCAzMiwgNiwgMjM1LCAxNDQsIDExLCAzMiwgNiwgCisgICAgMjM1LCAyMywgMTEsIDMyLCA2LCAxNTYsIDExLCAzMiwgNiwgMTkzLCAxMSwgMzIsIDYsIDIzMCwgMjUsIDExLCAzMiwgNiwgCisgICAgNzYsIDExLCAzMiwgNiwgMjI2LCAxMDUsIDExLCAzMiwgNiwgMjI0LCA5NiwgMTEsIDMyLCA2LCAxNTMsIDExLCAzMiwgNiwgCisgICAgMjIyLCA5MSwgMTEsIDMyLCA2LCAyMTcsIDE1MiwgMTEsIDMyLCA2LCA3MCwgMTEsIDMyLCA2LCAyMTQsIDEwNSwgMTEsIDMyLCAKKyAgICA2LCAyMTIsIDk4LCAxMSwgMzIsIDYsIDIxMSwgMTc4LCAxMSwgMzIsIDYsIDIxMSwgMTE3LCAxMSwgMzIsIDYsIDIxMCwgCisgICAgMTU5LCAxMSwgMzIsIDQsIDYxLCAxMSwgMzIsIDQsIDI1MywgMTU4LCAxMSwgMzIsIDQsIDI1MSwgNjYsIDExLCAzMiwgNCwgCisgICAgMjQ5LCA2MCwgMTEsIDMyLCA0LCA3NSwgMTEsIDMyLCA0LCAyNDUsIDYsIDExLCAzMiwgNCwgMjQzLCAyMDIsIDExLCAzMiwgCisgICAgNCwgNzMsIDExLCAzMiwgNCwgMjM1LCAxNDQsIDExLCAzMiwgNCwgMjM1LCAyMywgMTEsIDMyLCA0LCAxNTYsIDExLCAzMiwgCisgICAgNCwgMTkzLCAxMSwgMzIsIDQsIDIzMCwgMjUsIDExLCAzMiwgNCwgNzYsIDExLCAzMiwgNCwgMjI2LCAxMDUsIDExLCAzMiwgCisgICAgNCwgMjI0LCA5NiwgMTEsIDMyLCA0LCAxNTMsIDExLCAzMiwgNCwgMjIyLCA5MSwgMTEsIDMyLCA0LCAyMTcsIDE1MiwgMTEsIAorICAgIDMyLCA0LCA3MCwgMTEsIDMyLCA0LCAyMTQsIDEwNSwgMTEsIDMyLCA0LCAyMTIsIDk4LCAxMSwgMzIsIDQsIDIxMSwgMTc4LCAKKyAgICAxMSwgMzIsIDQsIDIxMSwgMTE3LCAxMSwgMzIsIDQsIDIxMCwgMTU5LCAxMSwgMjMsIDMyLCA2LCA2MSwgMTEsIDIzLCAzMiwgCisgICAgNiwgMjUzLCAxNTgsIDExLCAyMywgMzIsIDYsIDI1MSwgNjYsIDExLCAyMywgMzIsIDYsIDI0OSwgNjAsIDExLCAyMywgMzIsIAorICAgIDYsIDc1LCAxMSwgMjMsIDMyLCA2LCAyNDUsIDYsIDExLCAyMywgMzIsIDYsIDI0MywgMjAyLCAxMSwgMjMsIDMyLCA2LCAKKyAgICAyNDIsIDYwLCAxMSwgMjMsIDMyLCA2LCA3MywgMTEsIDIzLCAzMiwgNiwgMjM1LCAxNDQsIDExLCAyMywgMzIsIDYsIDIzNSwgCisgICAgMjMsIDExLCAyMywgMzIsIDYsIDE1NiwgMTEsIDIzLCAzMiwgNiwgMTkzLCAxMSwgMjMsIDMyLCA2LCAyMzAsIDI1LCAxMSwgCisgICAgMjMsIDMyLCA2LCA3NiwgMTEsIDIzLCAzMiwgNiwgMjI2LCAxMDUsIDExLCAyMywgMzIsIDYsIDIyNCwgOTYsIDExLCAyMywgCisgICAgMzIsIDYsIDE1MywgMTEsIDIzLCAzMiwgNiwgMjIyLCA5MSwgMTEsIDIzLCAzMiwgNiwgMjE3LCAxNTIsIDExLCAyMywgMzIsIAorICAgIDYsIDcwLCAxMSwgMjMsIDMyLCA2LCAyMTQsIDEwNSwgMTEsIDIzLCAzMiwgNiwgMjEyLCA5OCwgMTEsIDIzLCAzMiwgNiwgCisgICAgMjExLCAxNzgsIDExLCAyMywgMzIsIDYsIDIxMSwgMTE3LCAxMSwgMjMsIDMyLCA2LCAyMTAsIDE1OSwgMTEsIDIzLCAzMiwgCisgICAgNCwgNjEsIDExLCAyMywgMzIsIDQsIDI1MywgMTU4LCAxMSwgMjMsIDMyLCA0LCAyNTEsIDY2LCAxMSwgMjMsIDMyLCA0LCAKKyAgICAyNDksIDYwLCAxMSwgMjMsIDMyLCA0LCA3NSwgMTEsIDIzLCAzMiwgNCwgMjQ1LCA2LCAxMSwgMjMsIDMyLCA0LCAyNDMsIAorICAgIDIwMiwgMTEsIDIzLCAzMiwgNCwgMjQyLCA2MCwgMTEsIDIzLCAzMiwgNCwgNzMsIDExLCAyMywgMzIsIDQsIDIzNSwgMTQ0LCAKKyAgICAxMSwgMjMsIDMyLCA0LCAyMzUsIDIzLCAxMSwgMjMsIDMyLCA0LCAxNTYsIDExLCAyMywgMzIsIDQsIDE5MywgMTEsIDIzLCAKKyAgICAzMiwgNCwgMjMwLCAyNSwgMTEsIDIzLCAzMiwgNCwgNzYsIDExLCAyMywgMzIsIDQsIDIyNiwgMTA1LCAxMSwgMjMsIDMyLCAKKyAgICA0LCAyMjQsIDk2LCAxMSwgMjMsIDMyLCA0LCAxNTMsIDExLCAyMywgMzIsIDQsIDIyMiwgOTEsIDExLCAyMywgMzIsIDQsIAorICAgIDIxNywgMTUyLCAxMSwgMjMsIDMyLCA0LCA3MCwgMTEsIDIzLCAzMiwgNCwgMjE0LCAxMDUsIDExLCAyMywgMzIsIDQsIDIxMiwgCisgICAgOTgsIDExLCAyMywgMzIsIDQsIDIxMSwgMTc4LCAxMSwgMjMsIDMyLCA0LCAyMTEsIDExNywgMTEsIDIzLCAzMiwgNCwgMjEwLCAKKyAgICAxNTksIDExLCAxMTksIDYsIDYxLCAxMSwgMTE5LCA2LCAyNTEsIDY2LCAxMSwgMTE5LCA2LCAyNDksIDYwLCAxMSwgMTE5LCAKKyAgICA2LCAyNDMsIDIwMiwgMTEsIDExOSwgNiwgMjM1LCAxNDQsIDExLCAxMTksIDYsIDIzNSwgMjMsIDExLCAxMTksIDYsIDIzMCwgCisgICAgMjUsIDExLCAxMTksIDYsIDc2LCAxMSwgMTE5LCA2LCAyMjYsIDEwNSwgMTEsIDExOSwgNiwgMjI0LCA5NiwgMTEsIDExOSwgCisgICAgNiwgMjIyLCA5MSwgMTEsIDExOSwgNiwgMjE3LCAxNTIsIDExLCAxMTksIDYsIDcwLCAxMSwgMTE5LCA2LCAyMTQsIDEwNSwgCisgICAgMTEsIDExOSwgNiwgMjEyLCA5OCwgMTEsIDExOSwgNiwgMjExLCAxNzgsIDExLCAxMTksIDYsIDIxMSwgMTE3LCAxMSwgMTE5LCAKKyAgICA2LCAyMTAsIDE1OSwgMTEsIDExOSwgNCwgNjEsIDExLCAxMTksIDQsIDI1MywgMTU4LCAxMSwgMTE5LCA0LCAyNTEsIDY2LCAKKyAgICAxMSwgMTE5LCA0LCAyNDksIDYwLCAxMSwgMTE5LCA0LCAyNDUsIDYsIDExLCAxMTksIDQsIDI0MiwgNjAsIDExLCAxMTksIDQsIAorICAgIDczLCAxMSwgMTE5LCA0LCAyMzUsIDE0NCwgMTEsIDExOSwgNCwgMjM1LCAyMywgMTEsIDExOSwgNCwgMTU2LCAxMSwgMTE5LCAKKyAgICA0LCAxOTMsIDExLCAxMTksIDQsIDIzMCwgMjUsIDExLCAxMTksIDQsIDIyNiwgMTA1LCAxMSwgMTE5LCA0LCAyMjQsIDk2LCAKKyAgICAxMSwgMTE5LCA0LCAxNTMsIDExLCAxMTksIDQsIDIyMiwgOTEsIDExLCAxMTksIDQsIDIxNywgMTUyLCAxMSwgMTE5LCA0LCAKKyAgICA3MCwgMTEsIDExOSwgNCwgMjE0LCAxMDUsIDExLCAxMTksIDQsIDIxMiwgOTgsIDExLCAxMTksIDQsIDIxMSwgMTc4LCAxMSwgCisgICAgMTE5LCA0LCAyMTEsIDExNywgMTEsIDExOSwgNCwgMjEwLCAxNTksIDExLCAyMywgMTE5LCA2LCA2MSwgMTEsIDIzLCAxMTksIAorICAgIDYsIDI1MywgMTU4LCAxMSwgMjMsIDExOSwgNiwgMjUxLCA2NiwgMTEsIDIzLCAxMTksIDYsIDI0OSwgNjAsIDExLCAyMywgCisgICAgMTE5LCA2LCA3NSwgMTEsIDIzLCAxMTksIDYsIDI0NSwgNiwgMTEsIDIzLCAxMTksIDYsIDI0MywgMjAyLCAxMSwgMjMsIAorICAgIDExOSwgNiwgMjQyLCA2MCwgMTEsIDIzLCAxMTksIDYsIDczLCAxMSwgMjMsIDExOSwgNiwgMjM1LCAxNDQsIDExLCAyMywgCisgICAgMTE5LCA2LCAyMzUsIDIzLCAxMSwgMjMsIDExOSwgNiwgMTU2LCAxMSwgMjMsIDExOSwgNiwgMTkzLCAxMSwgMjMsIDExOSwgCisgICAgNiwgMjMwLCAyNSwgMTEsIDIzLCAxMTksIDYsIDc2LCAxMSwgMjMsIDExOSwgNiwgMjI2LCAxMDUsIDExLCAyMywgMTE5LCA2LCAKKyAgICAyMjQsIDk2LCAxMSwgMjMsIDExOSwgNiwgMTUzLCAxMSwgMjMsIDExOSwgNiwgMjIyLCA5MSwgMTEsIDIzLCAxMTksIDYsIAorICAgIDIxNywgMTUyLCAxMSwgMjMsIDExOSwgNiwgNzAsIDExLCAyMywgMTE5LCA2LCAyMTQsIDEwNSwgMTEsIDIzLCAxMTksIDYsIAorICAgIDIxMiwgOTgsIDExLCAyMywgMTE5LCA2LCAyMTEsIDE3OCwgMTEsIDIzLCAxMTksIDYsIDIxMSwgMTE3LCAxMSwgMjMsIDExOSwgCisgICAgNiwgMjEwLCAxNTksIDExLCAyMywgMTE5LCA0LCA2MSwgMTEsIDIzLCAxMTksIDQsIDI1MywgMTU4LCAxMSwgMjMsIDExOSwgCisgICAgNCwgMjUxLCA2NiwgMTEsIDIzLCAxMTksIDQsIDI0OSwgNjAsIDExLCAyMywgMTE5LCA0LCA3NSwgMTEsIDIzLCAxMTksIDQsIAorICAgIDI0NSwgNiwgMTEsIDIzLCAxMTksIDQsIDI0MywgMjAyLCAxMSwgMjMsIDExOSwgNCwgMjQyLCA2MCwgMTEsIDIzLCAxMTksIAorICAgIDQsIDczLCAxMSwgMjMsIDExOSwgNCwgMjM1LCAxNDQsIDExLCAyMywgMTE5LCA0LCAyMzUsIDIzLCAxMSwgMjMsIDExOSwgNCwgCisgICAgMTU2LCAxMSwgMjMsIDExOSwgNCwgMTkzLCAxMSwgMjMsIDExOSwgNCwgMjMwLCAyNSwgMTEsIDIzLCAxMTksIDQsIDc2LCAKKyAgICAxMSwgMjMsIDExOSwgNCwgMjI2LCAxMDUsIDExLCAyMywgMTE5LCA0LCAyMjQsIDk2LCAxMSwgMjMsIDExOSwgNCwgMTUzLCAKKyAgICAxMSwgMjMsIDExOSwgNCwgMjIyLCA5MSwgMTEsIDIzLCAxMTksIDQsIDIxNywgMTUyLCAxMSwgMjMsIDExOSwgNCwgNzAsIAorICAgIDExLCAyMywgMTE5LCA0LCAyMTQsIDEwNSwgMTEsIDIzLCAxMTksIDQsIDIxMiwgOTgsIDExLCAyMywgMTE5LCA0LCAyMTEsIAorICAgIDE3OCwgMTEsIDIzLCAxMTksIDQsIDIxMSwgMTE3LCAxMSwgMjMsIDExOSwgNCwgMjEwLCAxNTksIDExLCAxMzMsIDYsIDYxLCAKKyAgICAxMSwgMTMzLCA2LCAyNTMsIDE1OCwgMTEsIDEzMywgNiwgMjQ5LCA2MCwgMTEsIDEzMywgNiwgNzUsIDExLCAxMzMsIDYsIAorICAgIDI0NSwgNiwgMTEsIDEzMywgNiwgMjQzLCAyMDIsIDExLCAxMzMsIDYsIDIzNSwgMTQ0LCAxMSwgMTMzLCA2LCAyMzUsIDIzLCAKKyAgICAxMSwgMTMzLCA2LCAxNTYsIDExLCAxMzMsIDYsIDE5MywgMTEsIDEzMywgNiwgMjMwLCAyNSwgMTEsIDEzMywgNiwgNzYsIAorICAgIDExLCAxMzMsIDYsIDIyNiwgMTA1LCAxMSwgMTMzLCA2LCAyMjQsIDk2LCAxMSwgMTMzLCA2LCAyMjIsIDkxLCAxMSwgMTMzLCAKKyAgICA2LCAyMTcsIDE1MiwgMTEsIDEzMywgNiwgNzAsIDExLCAxMzMsIDYsIDIxNCwgMTA1LCAxMSwgMTMzLCA2LCAyMTIsIDk4LCAKKyAgICAxMSwgMTMzLCA2LCAyMTEsIDE3OCwgMTEsIDEzMywgNiwgMjExLCAxMTcsIDExLCAxMzMsIDQsIDYxLCAxMSwgMTMzLCA0LCAKKyAgICAyNTMsIDE1OCwgMTEsIDEzMywgNCwgMjUxLCA2NiwgMTEsIDEzMywgNCwgMjQ5LCA2MCwgMTEsIDEzMywgNCwgNzUsIDExLCAKKyAgICAxMzMsIDQsIDI0NSwgNiwgMTEsIDEzMywgNCwgMjQzLCAyMDIsIDExLCAxMzMsIDQsIDI0MiwgNjAsIDExLCAxMzMsIDQsIAorICAgIDczLCAxMSwgMTMzLCA0LCAyMzUsIDE0NCwgMTEsIDEzMywgNCwgMjM1LCAyMywgMTEsIDEzMywgNCwgMTU2LCAxMSwgMTMzLCAKKyAgICA0LCAxOTMsIDExLCAxMzMsIDQsIDIzMCwgMjUsIDExLCAxMzMsIDQsIDc2LCAxMSwgMTMzLCA0LCAyMjYsIDEwNSwgMTEsIAorICAgIDEzMywgNCwgMjI0LCA5NiwgMTEsIDEzMywgNCwgMTUzLCAxMSwgMTMzLCA0LCAyMjIsIDkxLCAxMSwgMTMzLCA0LCAyMTcsIAorICAgIDE1MiwgMTEsIDEzMywgNCwgNzAsIDExLCAxMzMsIDQsIDIxNCwgMTA1LCAxMSwgMTMzLCA0LCAyMTIsIDk4LCAxMSwgMTMzLCAKKyAgICA0LCAyMTEsIDE3OCwgMTEsIDEzMywgNCwgMjExLCAxMTcsIDExLCAxMzMsIDQsIDIxMCwgMTU5LCAxMSwgMTM5LCA2LCA2MSwgCisgICAgMTEsIDEzOSwgNiwgMjUzLCAxNTgsIDExLCAxMzksIDYsIDI0OSwgNjAsIDExLCAxMzksIDYsIDc1LCAxMSwgMTM5LCA2LCAKKyAgICAyNDUsIDYsIDExLCAxMzksIDYsIDI0MywgMjAyLCAxMSwgMTM5LCA2LCA3MywgMTEsIDEzOSwgNiwgMjM1LCAxNDQsIDExLCAKKyAgICAxMzksIDYsIDIzNSwgMjMsIDExLCAxMzksIDYsIDE1NiwgMTEsIDEzOSwgNiwgMTkzLCAxMSwgMTM5LCA2LCA3NiwgMTEsIAorICAgIDEzOSwgNiwgMjIyLCA5MSwgMTEsIDEzOSwgNiwgMjE3LCAxNTIsIDExLCAxMzksIDYsIDcwLCAxMSwgMTM5LCA2LCAyMTQsIAorICAgIDEwNSwgMTEsIDEzOSwgNiwgMjEyLCA5OCwgMTEsIDEzOSwgNiwgMjExLCAxNzgsIDExLCAxMzksIDYsIDIxMSwgMTE3LCAxMSwgCisgICAgMTM5LCA0LCA2MSwgMTEsIDEzOSwgNCwgMjUzLCAxNTgsIDExLCAxMzksIDQsIDI1MSwgNjYsIDExLCAxMzksIDQsIDI0OSwgCisgICAgNjAsIDExLCAxMzksIDQsIDc1LCAxMSwgMTM5LCA0LCAyNDUsIDYsIDExLCAxMzksIDQsIDI0MywgMjAyLCAxMSwgMTM5LCA0LCAKKyAgICAyNDIsIDYwLCAxMSwgMTM5LCA0LCA3MywgMTEsIDEzOSwgNCwgMjM1LCAxNDQsIDExLCAxMzksIDQsIDIzNSwgMjMsIDExLCAKKyAgICAxMzksIDQsIDE1NiwgMTEsIDEzOSwgNCwgMTkzLCAxMSwgMTM5LCA0LCAyMzAsIDI1LCAxMSwgMTM5LCA0LCA3NiwgMTEsIAorICAgIDEzOSwgNCwgMjI2LCAxMDUsIDExLCAxMzksIDQsIDIyNCwgOTYsIDExLCAxMzksIDQsIDE1MywgMTEsIDEzOSwgNCwgMjIyLCAKKyAgICA5MSwgMTEsIDEzOSwgNCwgMjE3LCAxNTIsIDExLCAxMzksIDQsIDcwLCAxMSwgMTM5LCA0LCAyMTQsIDEwNSwgMTEsIDEzOSwgCisgICAgNCwgMjEyLCA5OCwgMTEsIDEzOSwgNCwgMjExLCAxNzgsIDExLCAxMzksIDQsIDIxMSwgMTE3LCAxMSwgMTM5LCA0LCAyMTAsIAorICAgIDE1OSwgMTEsIDIzLCAxMzMsIDYsIDYxLCAxMSwgMjMsIDEzMywgNiwgMjUzLCAxNTgsIDExLCAyMywgMTMzLCA2LCAyNTEsIAorICAgIDY2LCAxMSwgMjMsIDEzMywgNiwgMjQ5LCA2MCwgMTEsIDIzLCAxMzMsIDYsIDc1LCAxMSwgMjMsIDEzMywgNiwgMjQ1LCA2LCAKKyAgICAxMSwgMjMsIDEzMywgNiwgMjQzLCAyMDIsIDExLCAyMywgMTMzLCA2LCAyNDIsIDYwLCAxMSwgMjMsIDEzMywgNiwgNzMsIAorICAgIDExLCAyMywgMTMzLCA2LCAyMzUsIDE0NCwgMTEsIDIzLCAxMzMsIDYsIDIzNSwgMjMsIDExLCAyMywgMTMzLCA2LCAxNTYsIAorICAgIDExLCAyMywgMTMzLCA2LCAxOTMsIDExLCAyMywgMTMzLCA2LCAyMzAsIDI1LCAxMSwgMjMsIDEzMywgNiwgNzYsIDExLCAyMywgCisgICAgMTMzLCA2LCAyMjYsIDEwNSwgMTEsIDIzLCAxMzMsIDYsIDIyNCwgOTYsIDExLCAyMywgMTMzLCA2LCAxNTMsIDExLCAyMywgCisgICAgMTMzLCA2LCAyMjIsIDkxLCAxMSwgMjMsIDEzMywgNiwgMjE3LCAxNTIsIDExLCAyMywgMTMzLCA2LCA3MCwgMTEsIDIzLCAKKyAgICAxMzMsIDYsIDIxNCwgMTA1LCAxMSwgMjMsIDEzMywgNiwgMjEyLCA5OCwgMTEsIDIzLCAxMzMsIDYsIDIxMSwgMTc4LCAxMSwgCisgICAgMjMsIDEzMywgNiwgMjExLCAxMTcsIDExLCAyMywgMTMzLCA2LCAyMTAsIDE1OSwgMTEsIDIzLCAxMzMsIDQsIDYxLCAxMSwgCisgICAgMjMsIDEzMywgNCwgMjUzLCAxNTgsIDExLCAyMywgMTMzLCA0LCAyNTEsIDY2LCAxMSwgMjMsIDEzMywgNCwgMjQ5LCA2MCwgCisgICAgMTEsIDIzLCAxMzMsIDQsIDc1LCAxMSwgMjMsIDEzMywgNCwgMjQ1LCA2LCAxMSwgMjMsIDEzMywgNCwgMjQzLCAyMDIsIDExLCAKKyAgICAyMywgMTMzLCA0LCAyNDIsIDYwLCAxMSwgMjMsIDEzMywgNCwgNzMsIDExLCAyMywgMTMzLCA0LCAyMzUsIDE0NCwgMTEsIAorICAgIDIzLCAxMzMsIDQsIDIzNSwgMjMsIDExLCAyMywgMTMzLCA0LCAxNTYsIDExLCAyMywgMTMzLCA0LCAxOTMsIDExLCAyMywgCisgICAgMTMzLCA0LCAyMzAsIDI1LCAxMSwgMjMsIDEzMywgNCwgNzYsIDExLCAyMywgMTMzLCA0LCAyMjYsIDEwNSwgMTEsIDIzLCAKKyAgICAxMzMsIDQsIDIyNCwgOTYsIDExLCAyMywgMTMzLCA0LCAxNTMsIDExLCAyMywgMTMzLCA0LCAyMjIsIDkxLCAxMSwgMjMsIAorICAgIDEzMywgNCwgMjE3LCAxNTIsIDExLCAyMywgMTMzLCA0LCA3MCwgMTEsIDIzLCAxMzMsIDQsIDIxNCwgMTA1LCAxMSwgMjMsIAorICAgIDEzMywgNCwgMjEyLCA5OCwgMTEsIDIzLCAxMzMsIDQsIDIxMSwgMTc4LCAxMSwgMjMsIDEzMywgNCwgMjExLCAxMTcsIDExLCAKKyAgICAyMywgMTMzLCA0LCAyMTAsIDE1OSwgMTEsIDM1LCA2LCA2MSwgMTEsIDM1LCA2LCAyNTMsIDE1OCwgMTEsIDM1LCA2LCAyNTEsIAorICAgIDY2LCAxMSwgMzUsIDYsIDI0OSwgNjAsIDExLCAzNSwgNiwgNzUsIDExLCAzNSwgNiwgMjQ1LCA2LCAxMSwgMzUsIDYsIDI0MywgCisgICAgMjAyLCAxMSwgMzUsIDYsIDI0MiwgNjAsIDExLCAzNSwgNiwgNzMsIDExLCAzNSwgNiwgMjM1LCAxNDQsIDExLCAzNSwgNiwgCisgICAgMjM1LCAyMywgMTEsIDM1LCA2LCAxNTYsIDExLCAzNSwgNiwgMTkzLCAxMSwgMzUsIDYsIDIzMCwgMjUsIDExLCAzNSwgNiwgCisgICAgNzYsIDExLCAzNSwgNiwgMjI2LCAxMDUsIDExLCAzNSwgNiwgMjI0LCA5NiwgMTEsIDM1LCA2LCAxNTMsIDExLCAzNSwgNiwgCisgICAgMjIyLCA5MSwgMTEsIDM1LCA2LCAyMTcsIDE1MiwgMTEsIDM1LCA2LCA3MCwgMTEsIDM1LCA2LCAyMTQsIDEwNSwgMTEsIDM1LCAKKyAgICA2LCAyMTIsIDk4LCAxMSwgMzUsIDYsIDIxMSwgMTc4LCAxMSwgMzUsIDYsIDIxMSwgMTE3LCAxMSwgMzUsIDYsIDIxMCwgCisgICAgMTU5LCAxMSwgMzUsIDQsIDYxLCAxMSwgMzUsIDQsIDI1MywgMTU4LCAxMSwgMzUsIDQsIDI1MSwgNjYsIDExLCAzNSwgNCwgCisgICAgMjQ5LCA2MCwgMTEsIDM1LCA0LCA3NSwgMTEsIDM1LCA0LCAyNDUsIDYsIDExLCAzNSwgNCwgMjQzLCAyMDIsIDExLCAzNSwgCisgICAgNCwgMjQyLCA2MCwgMTEsIDM1LCA0LCA3MywgMTEsIDM1LCA0LCAyMzUsIDE0NCwgMTEsIDM1LCA0LCAyMzUsIDIzLCAxMSwgCisgICAgMzUsIDQsIDE1NiwgMTEsIDM1LCA0LCAxOTMsIDExLCAzNSwgNCwgMjMwLCAyNSwgMTEsIDM1LCA0LCA3NiwgMTEsIDM1LCA0LCAKKyAgICAyMjYsIDEwNSwgMTEsIDM1LCA0LCAyMjQsIDk2LCAxMSwgMzUsIDQsIDE1MywgMTEsIDM1LCA0LCAyMjIsIDkxLCAxMSwgMzUsIAorICAgIDQsIDIxNywgMTUyLCAxMSwgMzUsIDQsIDcwLCAxMSwgMzUsIDQsIDIxNCwgMTA1LCAxMSwgMzUsIDQsIDIxMiwgOTgsIDExLCAKKyAgICAzNSwgNCwgMjExLCAxNzgsIDExLCAzNSwgNCwgMjExLCAxMTcsIDExLCAzNSwgNCwgMjEwLCAxNTksIDExLCAzNSwgMjMsIDYsIAorICAgIDYxLCAxMSwgMzUsIDIzLCA2LCAyNTMsIDE1OCwgMTEsIDM1LCAyMywgNiwgMjUxLCA2NiwgMTEsIDM1LCAyMywgNiwgMjQ5LCAKKyAgICA2MCwgMTEsIDM1LCAyMywgNiwgNzUsIDExLCAzNSwgMjMsIDYsIDI0NSwgNiwgMTEsIDM1LCAyMywgNiwgMjQzLCAyMDIsIAorICAgIDExLCAzNSwgMjMsIDYsIDI0MiwgNjAsIDExLCAzNSwgMjMsIDYsIDczLCAxMSwgMzUsIDIzLCA2LCAyMzUsIDE0NCwgMTEsIAorICAgIDM1LCAyMywgNiwgMjM1LCAyMywgMTEsIDM1LCAyMywgNiwgMTU2LCAxMSwgMzUsIDIzLCA2LCAxOTMsIDExLCAzNSwgMjMsIAorICAgIDYsIDIzMCwgMjUsIDExLCAzNSwgMjMsIDYsIDc2LCAxMSwgMzUsIDIzLCA2LCAyMjYsIDEwNSwgMTEsIDM1LCAyMywgNiwgCisgICAgMjI0LCA5NiwgMTEsIDM1LCAyMywgNiwgMTUzLCAxMSwgMzUsIDIzLCA2LCAyMjIsIDkxLCAxMSwgMzUsIDIzLCA2LCAyMTcsIAorICAgIDE1MiwgMTEsIDM1LCAyMywgNiwgNzAsIDExLCAzNSwgMjMsIDYsIDIxNCwgMTA1LCAxMSwgMzUsIDIzLCA2LCAyMTIsIDk4LCAKKyAgICAxMSwgMzUsIDIzLCA2LCAyMTEsIDE3OCwgMTEsIDM1LCAyMywgNiwgMjExLCAxMTcsIDExLCAzNSwgMjMsIDYsIDIxMCwgCisgICAgMTU5LCAxMSwgMzUsIDIzLCA0LCA2MSwgMTEsIDM1LCAyMywgNCwgMjUzLCAxNTgsIDExLCAzNSwgMjMsIDQsIDI1MSwgNjYsIAorICAgIDExLCAzNSwgMjMsIDQsIDI0OSwgNjAsIDExLCAzNSwgMjMsIDQsIDc1LCAxMSwgMzUsIDIzLCA0LCAyNDUsIDYsIDExLCAzNSwgCisgICAgMjMsIDQsIDI0MywgMjAyLCAxMSwgMzUsIDIzLCA0LCAyNDIsIDYwLCAxMSwgMzUsIDIzLCA0LCA3MywgMTEsIDM1LCAyMywgCisgICAgNCwgMjM1LCAxNDQsIDExLCAzNSwgMjMsIDQsIDIzNSwgMjMsIDExLCAzNSwgMjMsIDQsIDE1NiwgMTEsIDM1LCAyMywgNCwgCisgICAgMTkzLCAxMSwgMzUsIDIzLCA0LCAyMzAsIDI1LCAxMSwgMzUsIDIzLCA0LCA3NiwgMTEsIDM1LCAyMywgNCwgMjI2LCAxMDUsIAorICAgIDExLCAzNSwgMjMsIDQsIDIyNCwgOTYsIDExLCAzNSwgMjMsIDQsIDE1MywgMTEsIDM1LCAyMywgNCwgMjIyLCA5MSwgMTEsIAorICAgIDM1LCAyMywgNCwgMjE3LCAxNTIsIDExLCAzNSwgMjMsIDQsIDcwLCAxMSwgMzUsIDIzLCA0LCAyMTQsIDEwNSwgMTEsIDM1LCAKKyAgICAyMywgNCwgMjEyLCA5OCwgMTEsIDM1LCAyMywgNCwgMjExLCAxNzgsIDExLCAzNSwgMjMsIDQsIDIxMSwgMTE3LCAxMSwgMzUsIAorICAgIDIzLCA0LCAyMTAsIDE1OSwgMTEsIDM1LCAzMiwgNiwgNjEsIDExLCAzNSwgMzIsIDYsIDI1MywgMTU4LCAxMSwgMzUsIDMyLCAKKyAgICA2LCAyNTEsIDY2LCAxMSwgMzUsIDMyLCA2LCAyNDksIDYwLCAxMSwgMzUsIDMyLCA2LCA3NSwgMTEsIDM1LCAzMiwgNiwgCisgICAgMjQ1LCA2LCAxMSwgMzUsIDMyLCA2LCAyNDMsIDIwMiwgMTEsIDM1LCAzMiwgNiwgMjQyLCA2MCwgMTEsIDM1LCAzMiwgNiwgCisgICAgNzMsIDExLCAzNSwgMzIsIDYsIDIzNSwgMTQ0LCAxMSwgMzUsIDMyLCA2LCAyMzUsIDIzLCAxMSwgMzUsIDMyLCA2LCAxNTYsIAorICAgIDExLCAzNSwgMzIsIDYsIDE5MywgMTEsIDM1LCAzMiwgNiwgMjMwLCAyNSwgMTEsIDM1LCAzMiwgNiwgNzYsIDExLCAzNSwgCisgICAgMzIsIDYsIDIyNiwgMTA1LCAxMSwgMzUsIDMyLCA2LCAyMjQsIDk2LCAxMSwgMzUsIDMyLCA2LCAxNTMsIDExLCAzNSwgMzIsIAorICAgIDYsIDIyMiwgOTEsIDExLCAzNSwgMzIsIDYsIDIxNywgMTUyLCAxMSwgMzUsIDMyLCA2LCA3MCwgMTEsIDM1LCAzMiwgNiwgCisgICAgMjE0LCAxMDUsIDExLCAzNSwgMzIsIDYsIDIxMiwgOTgsIDExLCAzNSwgMzIsIDYsIDIxMSwgMTc4LCAxMSwgMzUsIDMyLCA2LCAKKyAgICAyMTEsIDExNywgMTEsIDM1LCAzMiwgNiwgMjEwLCAxNTksIDExLCAzNSwgMzIsIDQsIDYxLCAxMSwgMzUsIDMyLCA0LCAyNTMsIAorICAgIDE1OCwgMTEsIDM1LCAzMiwgNCwgMjUxLCA2NiwgMTEsIDM1LCAzMiwgNCwgMjQ5LCA2MCwgMTEsIDM1LCAzMiwgNCwgNzUsIAorICAgIDExLCAzNSwgMzIsIDQsIDI0NSwgNiwgMTEsIDM1LCAzMiwgNCwgMjQzLCAyMDIsIDExLCAzNSwgMzIsIDQsIDI0MiwgNjAsIAorICAgIDExLCAzNSwgMzIsIDQsIDczLCAxMSwgMzUsIDMyLCA0LCAyMzUsIDE0NCwgMTEsIDM1LCAzMiwgNCwgMjM1LCAyMywgMTEsIAorICAgIDM1LCAzMiwgNCwgMTU2LCAxMSwgMzUsIDMyLCA0LCAxOTMsIDExLCAzNSwgMzIsIDQsIDIzMCwgMjUsIDExLCAzNSwgMzIsIAorICAgIDQsIDc2LCAxMSwgMzUsIDMyLCA0LCAyMjYsIDEwNSwgMTEsIDM1LCAzMiwgNCwgMjI0LCA5NiwgMTEsIDM1LCAzMiwgNCwgCisgICAgMTUzLCAxMSwgMzUsIDMyLCA0LCAyMjIsIDkxLCAxMSwgMzUsIDMyLCA0LCAyMTcsIDE1MiwgMTEsIDM1LCAzMiwgNCwgNzAsIAorICAgIDExLCAzNSwgMzIsIDQsIDIxNCwgMTA1LCAxMSwgMzUsIDMyLCA0LCAyMTIsIDk4LCAxMSwgMzUsIDMyLCA0LCAyMTEsIDE3OCwgCisgICAgMTEsIDM1LCAzMiwgNCwgMjExLCAxMTcsIDExLCAzNSwgMzIsIDQsIDIxMCwgMTU5LCAxMSwgMzUsIDIzLCAzMiwgNiwgNjEsIAorICAgIDExLCAzNSwgMjMsIDMyLCA2LCAyNTMsIDE1OCwgMTEsIDM1LCAyMywgMzIsIDYsIDI1MSwgNjYsIDExLCAzNSwgMjMsIDMyLCAKKyAgICA2LCAyNDksIDYwLCAxMSwgMzUsIDIzLCAzMiwgNiwgNzUsIDExLCAzNSwgMjMsIDMyLCA2LCAyNDUsIDYsIDExLCAzNSwgMjMsIAorICAgIDMyLCA2LCAyNDMsIDIwMiwgMTEsIDM1LCAyMywgMzIsIDYsIDI0MiwgNjAsIDExLCAzNSwgMjMsIDMyLCA2LCA3MywgMTEsIAorICAgIDM1LCAyMywgMzIsIDYsIDIzNSwgMTQ0LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjM1LCAyMywgMTEsIDM1LCAyMywgMzIsIDYsIAorICAgIDE1NiwgMTEsIDM1LCAyMywgMzIsIDYsIDE5MywgMTEsIDM1LCAyMywgMzIsIDYsIDIzMCwgMjUsIDExLCAzNSwgMjMsIDMyLCAKKyAgICA2LCA3NiwgMTEsIDM1LCAyMywgMzIsIDYsIDIyNiwgMTA1LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjI0LCA5NiwgMTEsIDM1LCAKKyAgICAyMywgMzIsIDYsIDE1MywgMTEsIDM1LCAyMywgMzIsIDYsIDIyMiwgOTEsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTcsIDE1MiwgCisgICAgMTEsIDM1LCAyMywgMzIsIDYsIDcwLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjE0LCAxMDUsIDExLCAzNSwgMjMsIDMyLCA2LCAKKyAgICAyMTIsIDk4LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjExLCAxNzgsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTEsIDExNywgMTEsIAorICAgIDM1LCAyMywgMzIsIDYsIDIxMCwgMTU5LCAxMSwgMzUsIDIzLCAzMiwgNCwgNjEsIDExLCAzNSwgMjMsIDMyLCA0LCAyNTMsIAorICAgIDE1OCwgMTEsIDM1LCAyMywgMzIsIDQsIDI1MSwgNjYsIDExLCAzNSwgMjMsIDMyLCA0LCAyNDksIDYwLCAxMSwgMzUsIDIzLCAKKyAgICAzMiwgNCwgNzUsIDExLCAzNSwgMjMsIDMyLCA0LCAyNDUsIDYsIDExLCAzNSwgMjMsIDMyLCA0LCAyNDMsIDIwMiwgMTEsIAorICAgIDM1LCAyMywgMzIsIDQsIDI0MiwgNjAsIDExLCAzNSwgMjMsIDMyLCA0LCA3MywgMTEsIDM1LCAyMywgMzIsIDQsIDIzNSwgCisgICAgMTQ0LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjM1LCAyMywgMTEsIDM1LCAyMywgMzIsIDQsIDE1NiwgMTEsIDM1LCAyMywgMzIsIAorICAgIDQsIDE5MywgMTEsIDM1LCAyMywgMzIsIDQsIDIzMCwgMjUsIDExLCAzNSwgMjMsIDMyLCA0LCA3NiwgMTEsIDM1LCAyMywgCisgICAgMzIsIDQsIDIyNiwgMTA1LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjI0LCA5NiwgMTEsIDM1LCAyMywgMzIsIDQsIDE1MywgMTEsIAorICAgIDM1LCAyMywgMzIsIDQsIDIyMiwgOTEsIDExLCAzNSwgMjMsIDMyLCA0LCAyMTcsIDE1MiwgMTEsIDM1LCAyMywgMzIsIDQsIAorICAgIDcwLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjE0LCAxMDUsIDExLCAzNSwgMjMsIDMyLCA0LCAyMTIsIDk4LCAxMSwgMzUsIDIzLCAKKyAgICAzMiwgNCwgMjExLCAxNzgsIDExLCAzNSwgMjMsIDMyLCA0LCAyMTEsIDExNywgMTEsIDM1LCAyMywgMzIsIDQsIDIxMCwgCisgICAgMTU5LCAxMSwgMjMwLCAxMzgsIDYsIDYxLCAxMSwgMjMwLCAxMzgsIDYsIDI1MywgMTU4LCAxMSwgMjMwLCAxMzgsIDYsIAorICAgIDI1MSwgNjYsIDExLCAyMzAsIDEzOCwgNiwgMjQ5LCA2MCwgMTEsIDIzMCwgMTM4LCA2LCA3NSwgMTEsIDIzMCwgMTM4LCA2LCAKKyAgICAyNDUsIDYsIDExLCAyMzAsIDEzOCwgNiwgMjQzLCAyMDIsIDExLCAyMzAsIDEzOCwgNiwgMjQyLCA2MCwgMTEsIDIzMCwgCisgICAgMTM4LCA2LCA3MywgMTEsIDIzMCwgMTM4LCA2LCAyMzUsIDE0NCwgMTEsIDIzMCwgMTM4LCA2LCAyMzUsIDIzLCAxMSwgMjMwLCAKKyAgICAxMzgsIDYsIDE1NiwgMTEsIDIzMCwgMTM4LCA2LCAxOTMsIDExLCAyMzAsIDEzOCwgNiwgMjMwLCAyNSwgMTEsIDIzMCwgCisgICAgMTM4LCA2LCA3NiwgMTEsIDIzMCwgMTM4LCA2LCAyMjYsIDEwNSwgMTEsIDIzMCwgMTM4LCA2LCAyMjQsIDk2LCAxMSwgMjMwLCAKKyAgICAxMzgsIDYsIDE1MywgMTEsIDIzMCwgMTM4LCA2LCAyMjIsIDkxLCAxMSwgMjMwLCAxMzgsIDYsIDIxNywgMTUyLCAxMSwgCisgICAgMjMwLCAxMzgsIDYsIDcwLCAxMSwgMjMwLCAxMzgsIDYsIDIxNCwgMTA1LCAxMSwgMjMwLCAxMzgsIDYsIDIxMiwgOTgsIDExLCAKKyAgICAyMzAsIDEzOCwgNiwgMjExLCAxNzgsIDExLCAyMzAsIDEzOCwgNiwgMjExLCAxMTcsIDExLCAyMzAsIDEzOCwgNiwgMjEwLCAKKyAgICAxNTksIDExLCAyMzAsIDEzOCwgNCwgNjEsIDExLCAyMzAsIDEzOCwgNCwgMjUzLCAxNTgsIDExLCAyMzAsIDEzOCwgNCwgCisgICAgMjUxLCA2NiwgMTEsIDIzMCwgMTM4LCA0LCAyNDksIDYwLCAxMSwgMjMwLCAxMzgsIDQsIDc1LCAxMSwgMjMwLCAxMzgsIDQsIAorICAgIDI0NSwgNiwgMTEsIDIzMCwgMTM4LCA0LCAyNDMsIDIwMiwgMTEsIDIzMCwgMTM4LCA0LCAyNDIsIDYwLCAxMSwgMjMwLCAKKyAgICAxMzgsIDQsIDczLCAxMSwgMjMwLCAxMzgsIDQsIDIzNSwgMTQ0LCAxMSwgMjMwLCAxMzgsIDQsIDIzNSwgMjMsIDExLCAyMzAsIAorICAgIDEzOCwgNCwgMTU2LCAxMSwgMjMwLCAxMzgsIDQsIDE5MywgMTEsIDIzMCwgMTM4LCA0LCAyMzAsIDI1LCAxMSwgMjMwLCAKKyAgICAxMzgsIDQsIDc2LCAxMSwgMjMwLCAxMzgsIDQsIDIyNiwgMTA1LCAxMSwgMjMwLCAxMzgsIDQsIDIyNCwgOTYsIDExLCAyMzAsIAorICAgIDEzOCwgNCwgMTUzLCAxMSwgMjMwLCAxMzgsIDQsIDIyMiwgOTEsIDExLCAyMzAsIDEzOCwgNCwgMjE3LCAxNTIsIDExLCAKKyAgICAyMzAsIDEzOCwgNCwgNzAsIDExLCAyMzAsIDEzOCwgNCwgMjE0LCAxMDUsIDExLCAyMzAsIDEzOCwgNCwgMjEyLCA5OCwgMTEsIAorICAgIDIzMCwgMTM4LCA0LCAyMTEsIDE3OCwgMTEsIDIzMCwgMTM4LCA0LCAyMTEsIDExNywgMTEsIDIzMCwgMTM4LCA0LCAyMTAsIAorICAgIDE1OSwgMTEsIDMyLCA0LCAyNDcsIDExOSwgNzMsIDExLCAzMiwgNCwgMjQ3LCAxMTksIDIzNSwgMTQ0LCAxMSwgMjMsIDYsIAorICAgIDI1NCwgMTQzLCAxMSwgMjMsIDYsIDI1MiwgMjYsIDExLCAyMywgNiwgMjQzLCAxMDcsIDExLCAyMywgNiwgMjQ4LCA1NCwgCisgICAgMTEsIDIzLCA2LCAyNDUsIDEwMCwgMTEsIDIzLCA2LCAyMTAsIDg1LCAxMSwgMjMsIDYsIDI0NSwgNjMsIDExLCAyMywgNiwgCisgICAgMjE2LCAxNzksIDExLCAyMywgNiwgMjM1LCAxODUsIDExLCAyMywgNiwgMjM0LCAyMjIsIDExLCAyMywgNiwgMjMzLCA5OCwgCisgICAgMTEsIDIzLCA2LCAyMzAsIDEwMiwgMTEsIDIzLCA2LCAyMjcsIDIzNywgMTEsIDIzLCA2LCAyMTEsIDE1NywgMTEsIDIzLCA2LCAKKyAgICAyMjYsIDE5OSwgMTEsIDIzLCA2LCAyMjUsIDEwOCwgMTEsIDIzLCA2LCAyMjMsIDM3LCAxMSwgMjMsIDYsIDIxNiwgMTgwLCAKKyAgICA4NywgMTEsIDIzLCA2LCAyMTksIDE3NywgMTEsIDIzLCA2LCAyMTcsIDQxLCAxMSwgMjMsIDYsIDIxNCwgMTU3LCAxMSwgMjMsIAorICAgIDYsIDIyNSwgMTMzLCAxMSwgMjMsIDYsIDI1MCwgMTEwLCAxMSwgMjMsIDYsIDIyNCwgMTYxLCAxMSwgMjMsIDYsIDIyNiwgCisgICAgMjAxLCAxMSwgMjMsIDIyOSwgMjIxLCAxMSwgMjMsIDQsIDI1NCwgMTQzLCAxMSwgMjMsIDQsIDI1MiwgMjYsIDExLCAyMywgCisgICAgNCwgMjQzLCAxMDcsIDExLCAyMywgNCwgMjQ4LCA1NCwgMTEsIDIzLCA0LCAyNDUsIDEwMCwgMTEsIDIzLCA0LCAyMTAsIDg1LCAKKyAgICAxMSwgMjMsIDQsIDI0NSwgNjMsIDExLCAyMywgNCwgMjE2LCAxNzksIDExLCAyMywgNCwgMjM1LCAxODUsIDExLCAyMywgNCwgCisgICAgMjM0LCAyMjIsIDExLCAyMywgNCwgMjMzLCA5OCwgMTEsIDIzLCA0LCAyMzAsIDEwMiwgMTEsIDIzLCA0LCAyMjcsIDIzNywgCisgICAgMTEsIDIzLCA0LCAyMTEsIDE1NywgMTEsIDIzLCA0LCAyMjYsIDE5OSwgMTEsIDIzLCA0LCAyMjUsIDEwOCwgMTEsIDIzLCA0LCAKKyAgICAyMjMsIDM3LCAxMSwgMjMsIDQsIDQwLCAyMTksIDE3NywgMTEsIDIzLCA0LCAyMTksIDE3NywgMTEsIDIzLCA0LCAyMTcsIAorICAgIDQxLCAxMSwgMjMsIDQsIDIxNCwgMTU3LCAxMSwgMjMsIDQsIDIyNSwgMTMzLCAxMSwgMjMsIDQsIDI1MCwgMTEwLCAxMSwgCisgICAgMjMsIDQsIDIyNCwgMTYxLCAxMSwgMjMsIDQsIDIyNiwgMjAxLCAxMSwgMjMsIDIyNSwgMjUzLCAyNDcsIDIzMywgMTEsIDIzLCAKKyAgICAyNDUsIDEwMSwgODcsIDExLCAyMywgMjE2LCAxODAsIDg3LCAxMSwgMjMsIDIzNCwgMjIzLCA4NywgMTEsIDIzLCAyMjUsIAorICAgIDEzNCwgODcsIDExLCAyMywgMjIzLCAzOCwgODcsIDExLCAyMywgMjI1LCAxMDksIDg3LCAxMSwgMzIsIDYsIDI1NCwgMTQzLCAKKyAgICAxMSwgMzIsIDYsIDI1MiwgMjYsIDExLCAzMiwgNiwgMjQzLCAxMDcsIDExLCAzMiwgNiwgMjQ4LCA1NCwgMTEsIDMyLCA2LCAKKyAgICAyNDUsIDEwMCwgMTEsIDMyLCA2LCAyMTAsIDg1LCAxMSwgMzIsIDYsIDI0NSwgNjMsIDExLCAzMiwgNiwgMjE2LCAxNzksIAorICAgIDExLCAzMiwgNiwgMjM1LCAxODUsIDExLCAzMiwgNiwgMjM0LCAyMjIsIDExLCAzMiwgNiwgMjMzLCA5OCwgMTEsIDMyLCA2LCAKKyAgICAyMzAsIDEwMiwgMTEsIDMyLCA2LCAyMjcsIDIzNywgMTEsIDMyLCA2LCAyMTEsIDE1NywgMTEsIDMyLCA2LCAyMjYsIDE5OSwgCisgICAgMTEsIDMyLCA2LCAyMjUsIDEwOCwgMTEsIDMyLCA2LCAyMjMsIDM3LCAxMSwgMzIsIDYsIDIxNiwgMTgwLCA4NywgMTEsIDMyLCAKKyAgICA2LCAyMTksIDE3NywgMTEsIDMyLCA2LCAyMTcsIDQxLCAxMSwgMzIsIDYsIDIxNCwgMTU3LCAxMSwgMzIsIDYsIDIyNSwgCisgICAgMTMzLCAxMSwgMzIsIDYsIDI1MCwgMTEwLCAxMSwgMzIsIDYsIDIyNCwgMTYxLCAxMSwgMzIsIDYsIDIyNiwgMjAxLCAxMSwgCisgICAgMzIsIDIyOSwgMjIxLCAxMSwgMzIsIDQsIDI1NCwgMTQzLCAxMSwgMzIsIDQsIDI1MiwgMjYsIDExLCAzMiwgNCwgMjQzLCAKKyAgICAxMDcsIDExLCAzMiwgNCwgMjQ4LCA1NCwgMTEsIDMyLCA0LCAyNDUsIDEwMCwgMTEsIDMyLCA0LCAyMTAsIDg1LCAxMSwgMzIsIAorICAgIDQsIDI0NSwgNjMsIDExLCAzMiwgNCwgMjE2LCAxNzksIDExLCAzMiwgNCwgMjM1LCAxODUsIDExLCAzMiwgNCwgMjM0LCAKKyAgICAyMjIsIDExLCAzMiwgNCwgMjMzLCA5OCwgMTEsIDMyLCA0LCAyMzAsIDEwMiwgMTEsIDMyLCA0LCAyMjcsIDIzNywgMTEsIAorICAgIDMyLCA0LCAyMTEsIDE1NywgMTEsIDMyLCA0LCAyMjYsIDE5OSwgMTEsIDMyLCA0LCAyMjUsIDEwOCwgMTEsIDMyLCA0LCAKKyAgICAyMjMsIDM3LCAxMSwgMzIsIDQsIDQwLCAyMTksIDE3NywgMTEsIDMyLCA0LCAyMTksIDE3NywgMTEsIDMyLCA0LCAyMTcsIAorICAgIDQxLCAxMSwgMzIsIDQsIDIxNCwgMTU3LCAxMSwgMzIsIDQsIDIyNSwgMTMzLCAxMSwgMzIsIDQsIDI1MCwgMTEwLCAxMSwgCisgICAgMzIsIDQsIDIyNCwgMTYxLCAxMSwgMzIsIDQsIDIyNiwgMjAxLCAxMSwgMzIsIDIyNSwgMjUzLCAyNDcsIDIzMywgMTEsIDMyLCAKKyAgICAyNDUsIDEwMSwgODcsIDExLCAzMiwgMjE2LCAxODAsIDg3LCAxMSwgMzIsIDIzNCwgMjIzLCA4NywgMTEsIDMyLCAyMjUsIAorICAgIDEzNCwgODcsIDExLCAzMiwgMjIzLCAzOCwgODcsIDExLCAzMiwgMjI1LCAxMDksIDg3LCAxMSwgMjMsIDMyLCA2LCAyNTQsIAorICAgIDE0MywgMTEsIDIzLCAzMiwgNiwgMjUyLCAyNiwgMTEsIDIzLCAzMiwgNiwgMjQzLCAxMDcsIDExLCAyMywgMzIsIDYsIDI0OCwgCisgICAgNTQsIDExLCAyMywgMzIsIDYsIDI0NSwgMTAwLCAxMSwgMjMsIDMyLCA2LCAyMTAsIDg1LCAxMSwgMjMsIDMyLCA2LCAyNDUsIAorICAgIDYzLCAxMSwgMjMsIDMyLCA2LCAyMTYsIDE3OSwgMTEsIDIzLCAzMiwgNiwgMjM1LCAxODUsIDExLCAyMywgMzIsIDYsIDIzNCwgCisgICAgMjIyLCAxMSwgMjMsIDMyLCA2LCAyMzMsIDk4LCAxMSwgMjMsIDMyLCA2LCAyMzAsIDEwMiwgMTEsIDIzLCAzMiwgNiwgMjI3LCAKKyAgICAyMzcsIDExLCAyMywgMzIsIDYsIDIxMSwgMTU3LCAxMSwgMjMsIDMyLCA2LCAyMjYsIDE5OSwgMTEsIDIzLCAzMiwgNiwgCisgICAgMjI1LCAxMDgsIDExLCAyMywgMzIsIDYsIDIyMywgMzcsIDExLCAyMywgMzIsIDYsIDIxNiwgMTgwLCA4NywgMTEsIDIzLCAKKyAgICAzMiwgNiwgMjE5LCAxNzcsIDExLCAyMywgMzIsIDYsIDIxNywgNDEsIDExLCAyMywgMzIsIDYsIDIxNCwgMTU3LCAxMSwgMjMsIAorICAgIDMyLCA2LCAyMjUsIDEzMywgMTEsIDIzLCAzMiwgNiwgMjUwLCAxMTAsIDExLCAyMywgMzIsIDYsIDIyNCwgMTYxLCAxMSwgCisgICAgMjMsIDMyLCA2LCAyMjYsIDIwMSwgMTEsIDIzLCAzMiwgMjI5LCAyMjEsIDExLCAyMywgMzIsIDQsIDI1NCwgMTQzLCAxMSwgCisgICAgMjMsIDMyLCA0LCAyNTIsIDI2LCAxMSwgMjMsIDMyLCA0LCAyNDMsIDEwNywgMTEsIDIzLCAzMiwgNCwgMjQ4LCA1NCwgMTEsIAorICAgIDIzLCAzMiwgNCwgMjQ1LCAxMDAsIDExLCAyMywgMzIsIDQsIDIxMCwgODUsIDExLCAyMywgMzIsIDQsIDI0NSwgNjMsIDExLCAKKyAgICAyMywgMzIsIDQsIDIxNiwgMTc5LCAxMSwgMjMsIDMyLCA0LCAyMzUsIDE4NSwgMTEsIDIzLCAzMiwgNCwgMjM0LCAyMjIsIAorICAgIDExLCAyMywgMzIsIDQsIDIzMywgOTgsIDExLCAyMywgMzIsIDQsIDIzMCwgMTAyLCAxMSwgMjMsIDMyLCA0LCAyMjcsIDIzNywgCisgICAgMTEsIDIzLCAzMiwgNCwgMjExLCAxNTcsIDExLCAyMywgMzIsIDQsIDIyNiwgMTk5LCAxMSwgMjMsIDMyLCA0LCAyMjUsIAorICAgIDEwOCwgMTEsIDIzLCAzMiwgNCwgMjIzLCAzNywgMTEsIDIzLCAzMiwgNCwgNDAsIDIxOSwgMTc3LCAxMSwgMjMsIDMyLCA0LCAKKyAgICAyMTksIDE3NywgMTEsIDIzLCAzMiwgNCwgMjE3LCA0MSwgMTEsIDIzLCAzMiwgNCwgMjE0LCAxNTcsIDExLCAyMywgMzIsIDQsIAorICAgIDIyNSwgMTMzLCAxMSwgMjMsIDMyLCA0LCAyNTAsIDExMCwgMTEsIDIzLCAzMiwgNCwgMjI0LCAxNjEsIDExLCAyMywgMzIsIAorICAgIDQsIDIyNiwgMjAxLCAxMSwgMjMsIDMyLCAyMjUsIDI1MywgMjQ3LCAyMzMsIDExLCAyMywgMzIsIDI0NSwgMTAxLCA4NywgCisgICAgMTEsIDIzLCAzMiwgMjE2LCAxODAsIDg3LCAxMSwgMjMsIDMyLCAyMzQsIDIyMywgODcsIDExLCAyMywgMzIsIDIyNSwgMTM0LCAKKyAgICA4NywgMTEsIDIzLCAzMiwgMjIzLCAzOCwgODcsIDExLCAyMywgMzIsIDIyNSwgMTA5LCA4NywgMTEsIDM1LCAyMywgNiwgCisgICAgMjU0LCAxNDMsIDExLCAzNSwgMjMsIDYsIDI1MiwgMjYsIDExLCAzNSwgMjMsIDYsIDI0MywgMTA3LCAxMSwgMzUsIDIzLCA2LCAKKyAgICAyNDgsIDU0LCAxMSwgMzUsIDIzLCA2LCAyNDUsIDEwMCwgMTEsIDM1LCAyMywgNiwgMjEwLCA4NSwgMTEsIDM1LCAyMywgNiwgCisgICAgMjQ1LCA2MywgMTEsIDM1LCAyMywgNiwgMjE2LCAxNzksIDExLCAzNSwgMjMsIDYsIDIzNSwgMTg1LCAxMSwgMzUsIDIzLCA2LCAKKyAgICAyMzQsIDIyMiwgMTEsIDM1LCAyMywgNiwgMjMzLCA5OCwgMTEsIDM1LCAyMywgNiwgMjMwLCAxMDIsIDExLCAzNSwgMjMsIDYsIAorICAgIDIyNywgMjM3LCAxMSwgMzUsIDIzLCA2LCAyMTEsIDE1NywgMTEsIDM1LCAyMywgNiwgMjI2LCAxOTksIDExLCAzNSwgMjMsIAorICAgIDYsIDIyNSwgMTA4LCAxMSwgMzUsIDIzLCA2LCAyMjMsIDM3LCAxMSwgMzUsIDIzLCA2LCAyMTYsIDE4MCwgODcsIDExLCAzNSwgCisgICAgMjMsIDYsIDIxOSwgMTc3LCAxMSwgMzUsIDIzLCA2LCAyMTcsIDQxLCAxMSwgMzUsIDIzLCA2LCAyMTQsIDE1NywgMTEsIDM1LCAKKyAgICAyMywgNiwgMjI1LCAxMzMsIDExLCAzNSwgMjMsIDYsIDI1MCwgMTEwLCAxMSwgMzUsIDIzLCA2LCAyMjQsIDE2MSwgMTEsIAorICAgIDM1LCAyMywgNiwgMjI2LCAyMDEsIDExLCAzNSwgMjMsIDIyOSwgMjIxLCAxMSwgMzUsIDIzLCA0LCAyNTQsIDE0MywgMTEsIAorICAgIDM1LCAyMywgNCwgMjUyLCAyNiwgMTEsIDM1LCAyMywgNCwgMjQzLCAxMDcsIDExLCAzNSwgMjMsIDQsIDI0OCwgNTQsIDExLCAKKyAgICAzNSwgMjMsIDQsIDI0NSwgMTAwLCAxMSwgMzUsIDIzLCA0LCAyMTAsIDg1LCAxMSwgMzUsIDIzLCA0LCAyNDUsIDYzLCAxMSwgCisgICAgMzUsIDIzLCA0LCAyMTYsIDE3OSwgMTEsIDM1LCAyMywgNCwgMjM1LCAxODUsIDExLCAzNSwgMjMsIDQsIDIzNCwgMjIyLCAKKyAgICAxMSwgMzUsIDIzLCA0LCAyMzMsIDk4LCAxMSwgMzUsIDIzLCA0LCAyMzAsIDEwMiwgMTEsIDM1LCAyMywgNCwgMjI3LCAyMzcsIAorICAgIDExLCAzNSwgMjMsIDQsIDIxMSwgMTU3LCAxMSwgMzUsIDIzLCA0LCAyMjYsIDE5OSwgMTEsIDM1LCAyMywgNCwgMjI1LCAKKyAgICAxMDgsIDExLCAzNSwgMjMsIDQsIDIyMywgMzcsIDExLCAzNSwgMjMsIDQsIDQwLCAyMTksIDE3NywgMTEsIDM1LCAyMywgNCwgCisgICAgMjE5LCAxNzcsIDExLCAzNSwgMjMsIDQsIDIxNywgNDEsIDExLCAzNSwgMjMsIDQsIDIxNCwgMTU3LCAxMSwgMzUsIDIzLCA0LCAKKyAgICAyMjUsIDEzMywgMTEsIDM1LCAyMywgNCwgMjUwLCAxMTAsIDExLCAzNSwgMjMsIDQsIDIyNCwgMTYxLCAxMSwgMzUsIDIzLCAKKyAgICA0LCAyMjYsIDIwMSwgMTEsIDM1LCAyMywgMjI1LCAyNTMsIDI0NywgMjMzLCAxMSwgMzUsIDIzLCAyNDUsIDEwMSwgODcsIAorICAgIDExLCAzNSwgMjMsIDIxNiwgMTgwLCA4NywgMTEsIDM1LCAyMywgMjM0LCAyMjMsIDg3LCAxMSwgMzUsIDIzLCAyMjUsIDEzNCwgCisgICAgODcsIDExLCAzNSwgMjMsIDIyMywgMzgsIDg3LCAxMSwgMzUsIDIzLCAyMjUsIDEwOSwgODcsIDExLCAzNSwgMjMsIDMyLCA2LCAKKyAgICAyNTQsIDE0MywgMTEsIDM1LCAyMywgMzIsIDYsIDI1MiwgMjYsIDExLCAzNSwgMjMsIDMyLCA2LCAyNDMsIDEwNywgMTEsIAorICAgIDM1LCAyMywgMzIsIDYsIDI0OCwgNTQsIDExLCAzNSwgMjMsIDMyLCA2LCAyNDUsIDEwMCwgMTEsIDM1LCAyMywgMzIsIDYsIAorICAgIDIxMCwgODUsIDExLCAzNSwgMjMsIDMyLCA2LCAyNDUsIDYzLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjE2LCAxNzksIDExLCAzNSwgCisgICAgMjMsIDMyLCA2LCAyMzUsIDE4NSwgMTEsIDM1LCAyMywgMzIsIDYsIDIzNCwgMjIyLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjMzLCAKKyAgICA5OCwgMTEsIDM1LCAyMywgMzIsIDYsIDIzMCwgMTAyLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjI3LCAyMzcsIDExLCAzNSwgMjMsIAorICAgIDMyLCA2LCAyMTEsIDE1NywgMTEsIDM1LCAyMywgMzIsIDYsIDIyNiwgMTk5LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjI1LCAKKyAgICAxMDgsIDExLCAzNSwgMjMsIDMyLCA2LCAyMjMsIDM3LCAxMSwgMzUsIDIzLCAzMiwgNiwgMjE2LCAxODAsIDg3LCAxMSwgMzUsIAorICAgIDIzLCAzMiwgNiwgMjE5LCAxNzcsIDExLCAzNSwgMjMsIDMyLCA2LCAyMTcsIDQxLCAxMSwgMzUsIDIzLCAzMiwgNiwgMjE0LCAKKyAgICAxNTcsIDExLCAzNSwgMjMsIDMyLCA2LCAyMjUsIDEzMywgMTEsIDM1LCAyMywgMzIsIDYsIDI1MCwgMTEwLCAxMSwgMzUsIAorICAgIDIzLCAzMiwgNiwgMjI0LCAxNjEsIDExLCAzNSwgMjMsIDMyLCA2LCAyMjYsIDIwMSwgMTEsIDM1LCAyMywgMzIsIDIyOSwgCisgICAgMjIxLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjU0LCAxNDMsIDExLCAzNSwgMjMsIDMyLCA0LCAyNTIsIDI2LCAxMSwgMzUsIDIzLCAKKyAgICAzMiwgNCwgMjQzLCAxMDcsIDExLCAzNSwgMjMsIDMyLCA0LCAyNDgsIDU0LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjQ1LCAxMDAsIAorICAgIDExLCAzNSwgMjMsIDMyLCA0LCAyMTAsIDg1LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjQ1LCA2MywgMTEsIDM1LCAyMywgMzIsIAorICAgIDQsIDIxNiwgMTc5LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjM1LCAxODUsIDExLCAzNSwgMjMsIDMyLCA0LCAyMzQsIDIyMiwgCisgICAgMTEsIDM1LCAyMywgMzIsIDQsIDIzMywgOTgsIDExLCAzNSwgMjMsIDMyLCA0LCAyMzAsIDEwMiwgMTEsIDM1LCAyMywgMzIsIAorICAgIDQsIDIyNywgMjM3LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjExLCAxNTcsIDExLCAzNSwgMjMsIDMyLCA0LCAyMjYsIDE5OSwgCisgICAgMTEsIDM1LCAyMywgMzIsIDQsIDIyNSwgMTA4LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjIzLCAzNywgMTEsIDM1LCAyMywgMzIsIAorICAgIDQsIDQwLCAyMTksIDE3NywgMTEsIDM1LCAyMywgMzIsIDQsIDIxOSwgMTc3LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjE3LCA0MSwgCisgICAgMTEsIDM1LCAyMywgMzIsIDQsIDIxNCwgMTU3LCAxMSwgMzUsIDIzLCAzMiwgNCwgMjI1LCAxMzMsIDExLCAzNSwgMjMsIDMyLCAKKyAgICA0LCAyNTAsIDExMCwgMTEsIDM1LCAyMywgMzIsIDQsIDIyNCwgMTYxLCAxMSwgMzUsIDIzLCAzMiwgNCwgMjI2LCAyMDEsIAorICAgIDExLCAzNSwgMjMsIDMyLCAyMjUsIDI1MywgMjQ3LCAyMzMsIDExLCAzNSwgMjMsIDMyLCAyNDUsIDEwMSwgODcsIDExLCAzNSwgCisgICAgMjMsIDMyLCAyMTYsIDE4MCwgODcsIDExLCAzNSwgMjMsIDMyLCAyMzQsIDIyMywgODcsIDExLCAzNSwgMjMsIDMyLCAyMjUsIAorICAgIDEzNCwgODcsIDExLCAzNSwgMjMsIDMyLCAyMjMsIDM4LCA4NywgMTEsIDM1LCAyMywgMzIsIDIyNSwgMTA5LCA4NywgMTEsIAorICAgIDIzLCA2LCAyNDcsIDIyNywgMTEsIDIzLCA0LCAyNDcsIDIyNywgMTEsIDIzLCAyMSwgMjEwLCA4NiwgMTEsIDIzLCAyMSwgCisgICAgMTEwLCAxMSwgMjMsIDIxLCAxMDUsIDExLCAyMywgMjEsIDE1OCwgMTEsIDIzLCAyMSwgMTYxLCAxMSwgMjMsIDIxLCAxODksIAorICAgIDExLCAyMywgMjEsIDE5NCwgMTEsIDIzLCAyMSwgMTk4LCAxMSwgMjMsIDIxLCAxOTUsIDExLCAyMywgMjEsIDIwMCwgMTEsIAorICAgIDEzOSwgMjEsIDIxMCwgODYsIDExLCAxMzksIDIxLCAxMTAsIDExLCAxMzksIDIxLCAxMDUsIDExLCAxMzksIDIxLCAxNTgsIAorICAgIDExLCAxMzksIDIxLCAxNjEsIDExLCAxMzksIDIxLCAxODksIDExLCAxMzksIDIxLCAxOTQsIDExLCAxMzksIDIxLCAxOTgsIAorICAgIDExLCAxMzksIDIxLCAxOTUsIDExLCAxMzksIDIxLCAyMDAsIDExLCAzNSwgMjEsIDIxMCwgODYsIDExLCAzNSwgMjEsIDExMCwgCisgICAgMTEsIDM1LCAyMSwgMTA1LCAxMSwgMzUsIDIxLCAxNTgsIDExLCAzNSwgMjEsIDE2MSwgMTEsIDM1LCAyMSwgMTg5LCAxMSwgCisgICAgMzUsIDIxLCAxOTQsIDExLCAzNSwgMjEsIDE5OCwgMTEsIDM1LCAyMSwgMTk1LCAxMSwgMzUsIDIxLCAyMDAsIDExLCAzNSwgCisgICAgMjMsIDIxLCAyMTAsIDg2LCAxMSwgMzUsIDIzLCAyMSwgMTEwLCAxMSwgMzUsIDIzLCAyMSwgMTA1LCAxMSwgMzUsIDIzLCAKKyAgICAyMSwgMTU4LCAxMSwgMzUsIDIzLCAyMSwgMTYxLCAxMSwgMzUsIDIzLCAyMSwgMTg5LCAxMSwgMzUsIDIzLCAyMSwgMTk0LCAKKyAgICAxMSwgMzUsIDIzLCAyMSwgMTk4LCAxMSwgMzUsIDIzLCAyMSwgMTk1LCAxMSwgMzUsIDIzLCAyMSwgMjAwLCAxMSwgMjMwLCAKKyAgICAxMzgsIDIxLCAyMTAsIDg2LCAxMSwgMjMwLCAxMzgsIDIxLCAxMTAsIDExLCAyMzAsIDEzOCwgMjEsIDEwNSwgMTEsIDIzMCwgCisgICAgMTM4LCAyMSwgMTU4LCAxMSwgMjMwLCAxMzgsIDIxLCAxNjEsIDExLCAyMzAsIDEzOCwgMjEsIDE4OSwgMTEsIDIzMCwgMTM4LCAKKyAgICAyMSwgMTk0LCAxMSwgMjMwLCAxMzgsIDIxLCAxOTgsIDExLCAyMzAsIDEzOCwgMjEsIDE5NSwgMTEsIDIzMCwgMTM4LCAyMSwgCisgICAgMjAwLCAxMCwgMTEsIDI1NCwgMTcwLCAxMCwgMTEsIDI1MiwgNTQsIDEwLCAxMSwgMjM1LCAxMjMsIDEwLCAxMSwgMjQ4LCAKKyAgICAxOTUsIDEwLCAxMSwgMjEyLCAzMCwgMTAsIDExLCAyMTAsIDEwOCwgMTAsIDExLCAyNDIsIDM3LCAxMCwgMTEsIDIxNywgODAsIAorICAgIDEwLCAxMSwgMjExLCA0MywgMTAsIDExLCAyMzQsIDI1MCwgMTAsIDExLCAyMzMsIDEwMiwgMTAsIDExLCAyMzEsIDc4LCAxMCwgCisgICAgMTEsIDIyOCwgNjIsIDEwLCAxMSwgMjIxLCAxNjYsIDEwLCAxMSwgMjU0LCAxOTYsIDEwLCAxMSwgMjQ0LCAxNDIsIDEwLCAKKyAgICAxMSwgMjIyLCAyNiwgMTAsIDExLCAyMjQsIDgxLCAxMCwgMTEsIDIyMywgOTUsIDEwLCAxMSwgMjIwLCA1OSwgMTAsIDExLCAKKyAgICAyMTcsIDcsIDEwLCAxMSwgMjE2LCAxOTIsIDEwLCAxMSwgMjM0LCAxMjksIDEwLCAxMSwgMjE2LCAyMDIsIDEwLCAxMSwgCisgICAgMjQ4LCAyMTYsIDEwLCAxMSwgMjEwLCAxMTEsIDEwLCAxMSwgMjQyLCAyNDQsIDEwLCAxMSwgMjQ3LCAxMTksIDI1MiwgNTQsIAorICAgIDEwLCAxMSwgMjQ3LCAxMTksIDIyOCwgNjIsIDEwLCAxMSwgMjQ3LCAxMTksIDI0NCwgMTQyLCAxMCwgMTEsIDI0NywgMTE5LCAKKyAgICAyMjQsIDgxLCAxMCwgMTEsIDY1LCAyNTIsIDU0LCAxMCwgMTEsIDY1LCAyMzUsIDEyMywgMTAsIDExLCA2NSwgMjQxLCAyMTgsIAorICAgIDEwLCAxMSwgNjUsIDI0MiwgMzcsIDEwLCAxMSwgNjUsIDIxMSwgNDMsIDEwLCAxMSwgNjUsIDIzNCwgMjUwLCAxMCwgMTEsIAorICAgIDY1LCAyMzMsIDEwMiwgMTAsIDExLCA2NSwgMjMxLCA3OCwgMTAsIDExLCA2NSwgMjI4LCA2MiwgMTAsIDExLCA2NSwgMjIxLCAKKyAgICAxNjYsIDEwLCAxMSwgNjUsIDI1NCwgMTk2LCAxMCwgMTEsIDY1LCAyNDQsIDE0MiwgMTAsIDExLCA2NSwgMjIyLCAyNiwgMTAsIAorICAgIDExLCA2NSwgMjI0LCA4MSwgMTAsIDExLCA2NSwgMjIwLCA1OSwgMTAsIDExLCA2NSwgMjE3LCA3LCAxMCwgMTEsIDY1LCAKKyAgICAyMTYsIDE5MiwgMTAsIDExLCA2NSwgMjM0LCAxMjksIDEwLCAxMSwgNjUsIDI0OCwgMjE2LCAxMCwgMTEsIDY1LCAyNDIsIAorICAgIDI0NCwgMTAsIDExLCAyMTcsIDc2LCAyMzUsIDEyMywgMTAsIDExLCAyMTcsIDc2LCAyNDIsIDM3LCAxMCwgMTEsIDIxNywgCisgICAgNzYsIDIxMSwgNDMsIDEwLCAxMSwgMjE3LCA3NiwgMjMzLCAxMDIsIDEwLCAxMSwgMjE3LCA3NiwgMjI4LCA2MiwgMTAsIDExLCAKKyAgICAyMTcsIDc2LCAyMjEsIDE2NiwgMTAsIDExLCAyMTcsIDc2LCAyNTQsIDE5NiwgMTAsIDExLCAyMTcsIDc2LCAyMjIsIDI2LCAKKyAgICAxMCwgMTEsIDIxNywgNzYsIDIyNCwgODEsIDEwLCAxMSwgMjE3LCA3NiwgMjIwLCA1OSwgMTAsIDExLCAyMTcsIDc2LCAyMzQsIAorICAgIDEyOSwgMTAsIDExLCAyMTcsIDc2LCAyNDgsIDIxNiwgMTAsIDExLCAyMTcsIDc2LCAyNDIsIDI0NCwgMTAsIDExLCAyMTcsIAorICAgIDc2LCAyNDcsIDExOSwgMjI4LCA2MiwgMTAsIDExLCAyMTcsIDc2LCAyNDcsIDExOSwgMjI0LCA4MSwgMTAsIDExLCAyMTgsIAorICAgIDExMCwgMjUyLCA1NCwgMTAsIDExLCAyMTgsIDExMCwgMjM1LCAxMjMsIDEwLCAxMSwgMjE4LCAxMTAsIDI0MSwgMjE4LCAxMCwgCisgICAgMTEsIDIxOCwgMTEwLCAyNDIsIDM3LCAxMCwgMTEsIDIxOCwgMTEwLCAyMTcsIDgwLCAxMCwgMTEsIDIxOCwgMTEwLCAyMTEsIAorICAgIDQzLCAxMCwgMTEsIDIxOCwgMTEwLCAyMzQsIDI1MCwgMTAsIDExLCAyMTgsIDExMCwgMjMxLCA3OCwgMTAsIDExLCAyMTgsIAorICAgIDExMCwgMjI4LCA2MiwgMTAsIDExLCAyMTgsIDExMCwgMjIxLCAxNjYsIDEwLCAxMSwgMjE4LCAxMTAsIDI1NCwgMTk2LCAxMCwgCisgICAgMTEsIDIxOCwgMTEwLCAyNDQsIDE0MiwgMTAsIDExLCAyMTgsIDExMCwgMjIyLCAyNiwgMTAsIDExLCAyMTgsIDExMCwgMjI0LCAKKyAgICA4MSwgMTAsIDExLCAyMTgsIDExMCwgMjIwLCA1OSwgMTAsIDExLCAyMTgsIDExMCwgMjE3LCA3LCAxMCwgMTEsIDIxOCwgCisgICAgMTEwLCAyMTYsIDE5MiwgMTAsIDExLCAyMTgsIDExMCwgMjM0LCAxMjksIDEwLCAxMSwgMjE4LCAxMTAsIDI0OCwgMjE2LCAKKyAgICAxMCwgMTEsIDIxOCwgMTEwLCAyMTAsIDExMSwgMTAsIDExLCAyMTgsIDExMCwgMjQyLCAyNDQsIDEwLCAxMSwgMjE4LCAxMTAsIAorICAgIDI0NywgMTE5LCAyNTIsIDU0LCAxMCwgMTEsIDIxOCwgMTEwLCAyNDcsIDExOSwgMjQ0LCAxNDIsIDEwLCAxMSwgMjMyLCAKKyAgICAxMjIsIDI1NCwgMTcwLCAxMCwgMTEsIDIzMiwgMTIyLCAyNTIsIDU0LCAxMCwgMTEsIDIzMiwgMTIyLCAyMzUsIDEyMywgMTAsIAorICAgIDExLCAyMzIsIDEyMiwgMjQ4LCAxOTUsIDEwLCAxMSwgMjMyLCAxMjIsIDI0MSwgMjE4LCAxMCwgMTEsIDIzMiwgMTIyLCAKKyAgICAyMTIsIDMwLCAxMCwgMTEsIDIzMiwgMTIyLCAyMTAsIDEwOCwgMTAsIDExLCAyMzIsIDEyMiwgMjQyLCAzNywgMTAsIDExLCAKKyAgICAyMzIsIDEyMiwgMjE3LCA4MCwgMTAsIDExLCAyMzIsIDEyMiwgMjExLCA0MywgMTAsIDExLCAyMzIsIDEyMiwgMjMzLCAxMDIsIAorICAgIDEwLCAxMSwgMjMyLCAxMjIsIDIzMSwgNzgsIDEwLCAxMSwgMjMyLCAxMjIsIDIyOCwgNjIsIDEwLCAxMSwgMjMyLCAxMjIsIAorICAgIDIyMSwgMTY2LCAxMCwgMTEsIDIzMiwgMTIyLCAyNTQsIDE5NiwgMTAsIDExLCAyMzIsIDEyMiwgMjQ0LCAxNDIsIDEwLCAxMSwgCisgICAgMjMyLCAxMjIsIDIyMiwgMjYsIDEwLCAxMSwgMjMyLCAxMjIsIDIyNCwgODEsIDEwLCAxMSwgMjMyLCAxMjIsIDIyMywgOTUsIAorICAgIDEwLCAxMSwgMjMyLCAxMjIsIDIyMCwgNTksIDEwLCAxMSwgMjMyLCAxMjIsIDIxNywgNywgMTAsIDExLCAyMzIsIDEyMiwgCisgICAgMjE2LCAxOTIsIDEwLCAxMSwgMjMyLCAxMjIsIDIzNCwgMTI5LCAxMCwgMTEsIDIzMiwgMTIyLCAyMTYsIDIwMiwgMTAsIDExLCAKKyAgICAyMzIsIDEyMiwgMjQ4LCAyMTYsIDEwLCAxMSwgMjMyLCAxMjIsIDIxMCwgMTExLCAxMCwgMTEsIDIzMiwgMTIyLCAyNDIsIAorICAgIDI0NCwgMTAsIDExLCAxMzksIDI1MiwgNTQsIDEwLCAxMSwgMTM5LCAyMzUsIDEyMywgMTAsIDExLCAxMzksIDI0OCwgMTk1LCAKKyAgICAxMCwgMTEsIDEzOSwgMjEyLCAzMCwgMTAsIDExLCAxMzksIDIxMCwgMTA4LCAxMCwgMTEsIDEzOSwgMjQyLCAzNywgMTAsIAorICAgIDExLCAxMzksIDIxNywgODAsIDEwLCAxMSwgMTM5LCAyMTEsIDQzLCAxMCwgMTEsIDEzOSwgMjMzLCAxMDIsIDEwLCAxMSwgCisgICAgMTM5LCAyMzEsIDc4LCAxMCwgMTEsIDEzOSwgMjI4LCA2MiwgMTAsIDExLCAxMzksIDIyMSwgMTY2LCAxMCwgMTEsIDEzOSwgCisgICAgMjU0LCAxOTYsIDEwLCAxMSwgMTM5LCAyNDQsIDE0MiwgMTAsIDExLCAxMzksIDIyMiwgMjYsIDEwLCAxMSwgMTM5LCAyMjQsIAorICAgIDgxLCAxMCwgMTEsIDEzOSwgMjIzLCA5NSwgMTAsIDExLCAxMzksIDIyMCwgNTksIDEwLCAxMSwgMTM5LCAyMTcsIDcsIDEwLCAKKyAgICAxMSwgMTM5LCAyMTYsIDE5MiwgMTAsIDExLCAxMzksIDIzNCwgMTI5LCAxMCwgMTEsIDEzOSwgMjE2LCAyMDIsIDEwLCAxMSwgCisgICAgMTM5LCAyNDgsIDIxNiwgMTAsIDExLCAxMzksIDIxMCwgMTExLCAxMCwgMTEsIDEzOSwgMjQyLCAyNDQsIDEwLCAxMSwgMjI2LCAKKyAgICAxNjgsIDY2LCAyLCAxMjIsIDIsIDIxNywgNDMsIDEwLCAxMSwgMjI2LCAxNjgsIDEyMiwgMiwgMjQ4LCAxOTUsIDIzMSwgCisgICAgMjA1LCA4NiwgMjQ1LCAyMjAsIDIxMSwgMjM5LCAyMzEsIDIwNSwgODYsIDIxOSwgMjgsIDIxMSwgMjM5LCAyMzEsIDIwNSwgCisgICAgODYsIDIxMiwgOSwgMjExLCAyMzksIDIzMSwgMjA1LCA4NiwgMjI4LCA1NiwgMjExLCAyMzksIDIzMSwgMjA1LCA4NiwgMjIzLCAKKyAgICAxMTEsIDI0NiwgOTYsIDIzMSwgMjA1LCA4NiwgMjQyLCAxMjcsIDI0NiwgOTYsIDIzMSwgMjA1LCA4NiwgNzEsIDI0NiwgOTYsIAorICAgIDIzMSwgMjA1LCA4NiwgMTIzLCA2NCwgMjUwLCAxNDEsIDIzMSwgMjA1LCA4NiwgMTEzLCA2NCwgMjUwLCAxNDEsIDIzMSwgCisgICAgMjA1LCA4NiwgMTM0LCA2NCwgMjUwLCAxNDEsIDIzMSwgMjA1LCA4NiwgMjQ0LCAxMSwgNjQsIDI1MCwgMTQxLCAyMzEsIAorICAgIDIwNSwgODYsIDI0NCwgODEsIDY0LCAyNTAsIDE0MSwgMjMxLCAyMDUsIDg2LCAyMTksIDEyNSwgNjQsIDI1MCwgMTQxLCAKKyAgICAyMzEsIDIwNSwgODYsIDIyMCwgMTIyLCA2NCwgMjUwLCAxNDEsIDIzMSwgMjA1LCA4NiwgMjQ1LCAxOTMsIDY0LCAyNTAsIAorICAgIDE0MSwgMjMxLCAyMDUsIDg2LCAyMjgsIDIwMCwgNjQsIDI1MCwgMTQxLCAyMzEsIDIwNSwgODYsIDEyMywgNjQsIDI1MiwgCisgICAgMTUzLCAyMzEsIDIwNSwgODYsIDExMywgNjQsIDI1MiwgMTUzLCAyMzEsIDIwNSwgODYsIDEzNCwgNjQsIDI1MiwgMTUzLCAKKyAgICAyMzEsIDIwNSwgODYsIDI0NCwgMTEsIDY0LCAyNTIsIDE1MywgMjMxLCAyMDUsIDg2LCAyNDQsIDgxLCA2NCwgMjUyLCAxNTMsIAorICAgIDIzMSwgMjA1LCA4NiwgMjE5LCAxMjUsIDY0LCAyNTIsIDE1MywgMjMxLCAyMDUsIDg2LCAyMjAsIDEyMiwgNjQsIDI1MiwgCisgICAgMTUzLCAyMzEsIDIwNSwgODYsIDI0NSwgMTkzLCA2NCwgMjUyLCAxNTMsIDIzMSwgMjA1LCA4NiwgMjI4LCAyMDAsIDY0LCAKKyAgICAyNTIsIDE1MywgMjMxLCAyMDUsIDg2LCAxMjMsIDY0LCAyNTAsIDM0LCAyMzEsIDIwNSwgODYsIDExMywgNjQsIDI1MCwgMzQsIAorICAgIDIzMSwgMjA1LCA4NiwgMTM0LCA2NCwgMjUwLCAzNCwgMjMxLCAyMDUsIDg2LCAyNDQsIDExLCA2NCwgMjUwLCAzNCwgMjMxLCAKKyAgICAyMDUsIDg2LCAyNDQsIDgxLCA2NCwgMjUwLCAzNCwgMjMxLCAyMDUsIDg2LCAyMTksIDEyNSwgNjQsIDI1MCwgMzQsIDIzMSwgCisgICAgMjA1LCA4NiwgMjIwLCAxMjIsIDY0LCAyNTAsIDM0LCAyMzEsIDIwNSwgODYsIDI0NSwgMTkzLCA2NCwgMjUwLCAzNCwgMjMxLCAKKyAgICAyMDUsIDg2LCAyMjgsIDIwMCwgNjQsIDI1MCwgMzQsIDIzMSwgMjA1LCA4NiwgMjI1LCAyNSwgMjMxLCAyMDUsIDg2LCAyMjYsIAorICAgIDE1NiwgMjMxLCAyMDUsIDg2LCAyNTIsIDE1NCwgMjMxLCAyMDUsIDg2LCAyNTAsIDcwLCAyMzEsIDIwNSwgODYsIDIxOCwgCisgICAgMjM5LCAyMzEsIDIwNSwgODYsIDIxOCwgMzksIDIzMSwgMjA1LCA4NiwgMjUzLCAxNzksIDIzMSwgMjA1LCA4NiwgMjExLCAKKyAgICAyMzIsIDIzMSwgMjA1LCA4NiwgMjM1LCA2MiwgMjMxLCAyMDUsIDg2LCAyNTIsIDE4NCwgMTMxLCA4NiwgMjAzLCAyNTIsIAorICAgIDE4NCwgMTMxLCA4NiwgMjQxLCA0MywgMTMxLCA4NiwgMjQxLCA0MiwgMTMxLCA4NiwgMjQxLCA0MSwgMTMxLCA4NiwgMjQxLCAKKyAgICA0MCwgMTMxLCA4NiwgMjQxLCAzOSwgMTMxLCA4NiwgMjQxLCAzOCwgMTMxLCA4NiwgMjQxLCAzNywgMTMxLCA4NiwgMjQxLCAKKyAgICAzNiwgMTMxLCA4NiwgMjQxLCAzNSwgMTMxLCA4NiwgMjQxLCAzNCwgMTMxLCA4NiwgMjQxLCAzMywgMTMxLCA4NiwgMjQxLCAKKyAgICAzMiwgMTMxLCA4NiwgMjQxLCAzMSwgMTMxLCA4NiwgMjQxLCAzMCwgMTMxLCA4NiwgMjQxLCAyOSwgMTMxLCA4NiwgMjQxLCAKKyAgICAyOCwgMTMxLCA4NiwgMjQxLCAyNywgMTMxLCA4NiwgMjQxLCAyNiwgMTMxLCA4NiwgMjQxLCAyNSwgMTMxLCA4NiwgMjQxLCAKKyAgICAyNCwgMTMxLCA4NiwgMjQxLCAyMywgMTMxLCA4NiwgMjQxLCAyMiwgMTMxLCA4NiwgMjQxLCAyMSwgMTMxLCA4NiwgMjQxLCAKKyAgICAyMCwgMTMxLCA4NiwgMjQxLCAxOSwgMTMxLCA4NiwgMjQxLCAxOCwgMTMxLCA4NiwgMjQxLCAxNywgMTMxLCA4NiwgMjQxLCAKKyAgICAxNiwgMTMxLCA4NiwgMjQxLCAxNSwgMTMxLCA4NiwgMjQxLCAxNCwgMTMxLCA4NiwgMjQxLCAxMywgMTMxLCA4NiwgMjQxLCAKKyAgICAxMiwgMTMxLCA4NiwgMjQxLCAxMSwgMTMxLCA4NiwgMjQxLCAxMCwgMTMxLCA4NiwgMjQxLCA5LCAxMzEsIDg2LCAyNDEsIDgsIAorICAgIDEzMSwgODYsIDI0MSwgNywgMTMxLCA4NiwgMjQxLCA2LCAxMzEsIDg2LCAyNDEsIDUsIDEzMSwgODYsIDI0MSwgNCwgMTMxLCAKKyAgICA4NiwgMjQxLCAzLCAxMzEsIDg2LCAyNDEsIDIsIDEzMSwgODYsIDI0MSwgMSwgMTMxLCA4NiwgMjQxLCAwLCAxMzEsIDg2LCAKKyAgICAyNDAsIDI1NSwgMTMxLCA4NiwgMjQwLCAyNTQsIDEzMSwgODYsIDI0MCwgMjUzLCAxMzEsIDg2LCAyNDAsIDI1MiwgMTMxLCAKKyAgICA4NiwgMjQwLCAyNTEsIDEzMSwgODYsIDY3LCAyNTIsIDE4NCwgMTMxLCA4NiwgMjEzLCAyMzgsIDEzMSwgODYsIDIxMywgCisgICAgMjM3LCAxMzEsIDg2LCAyMTMsIDIzNiwgMTMxLCA4NiwgMjEzLCAyMzUsIDEzMSwgODYsIDIxMywgMjM0LCAxMzEsIDg2LCAKKyAgICAyMTMsIDIzMywgMTMxLCA4NiwgMjEzLCAyMzIsIDEzMSwgODYsIDIxMywgMjMxLCAxMzEsIDg2LCAyMTMsIDIzMCwgMTMxLCAKKyAgICA4NiwgMjEzLCAyMjksIDEzMSwgODYsIDIxMywgMjI4LCAxMzEsIDg2LCAyMTMsIDIyNywgMTMxLCA4NiwgMjEzLCAyMjYsIAorICAgIDEzMSwgODYsIDIxMywgMjI1LCAxMzEsIDg2LCAyMTMsIDIyNCwgMTMxLCA4NiwgMjEzLCAyMjMsIDEzMSwgODYsIDIxMywgCisgICAgMjIyLCAxMzEsIDg2LCAyMTMsIDIyMSwgMTMxLCA4NiwgMjEzLCAyMjAsIDEzMSwgODYsIDIxMywgMjE5LCAxMzEsIDg2LCAKKyAgICAyMTMsIDIxOCwgMTMxLCA4NiwgMjEzLCAyMTcsIDEzMSwgODYsIDIxMywgMjE2LCAxMzEsIDg2LCAyMTMsIDIxNSwgMTMxLCAKKyAgICA4NiwgMjEzLCAyMTQsIDEzMSwgODYsIDIxMywgMjEzLCAxMzEsIDg2LCAyMTMsIDIxMiwgMTMxLCA4NiwgMjEzLCAyMTEsIAorICAgIDEzMSwgODYsIDIxMywgMjEwLCAxMzEsIDg2LCAyMTMsIDIwOSwgMTMxLCA4NiwgMjEzLCAyMDgsIDEzMSwgODYsIDIxMywgCisgICAgMjA3LCAxMzEsIDg2LCAyMTMsIDIwNiwgMTMxLCA4NiwgMjEzLCAyMDUsIDEzMSwgODYsIDIxMywgMjA0LCAxMzEsIDg2LCAKKyAgICAyMTMsIDIwMywgMTMxLCA4NiwgMjEzLCAyMDIsIDEzMSwgODYsIDIxMywgMjAxLCAxMzEsIDg2LCAyMTMsIDIwMCwgMTMxLCAKKyAgICA4NiwgMjEzLCAxOTksIDEzMSwgODYsIDIxMywgMTk4LCAxMzEsIDg2LCAyMTMsIDE5NywgMTMxLCA4NiwgMjEzLCAxOTYsIAorICAgIDEzMSwgODYsIDIxMywgMTk1LCAxMzEsIDg2LCAyMTMsIDE5NCwgMTMxLCA4NiwgMjEzLCAxOTMsIDEzMSwgODYsIDIxMywgCisgICAgMTkyLCAxMzEsIDg2LCAyMTMsIDE5MSwgMTMxLCA4NiwgMjEzLCAxOTAsIDIyNSwgMzMsIDI1MCwgMjQzLCAyNTIsIDE4NCwgCisgICAgMjI1LCAzMywgMjUwLCAyNDMsIDI1NSwgOSwgNjQsIDIxOSwgMTUsIDIyNSwgMzMsIDI1MCwgMjQzLCAxMTMsIDY0LCAyMTksIAorICAgIDE1LCAyMjUsIDMzLCAyNTAsIDI0MywgMTM0LCA2NCwgMjE5LCAxNSwgMjI1LCAzMywgMjUwLCAyNDMsIDI0NCwgMTEsIDY0LCAKKyAgICAyMTksIDE1LCAyMjUsIDMzLCAyNTAsIDI0MywgMjQ0LCA4MSwgNjQsIDIxOSwgMTUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMTksIAorICAgIDEyNSwgNjQsIDIxOSwgMTUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMjAsIDEyMiwgNjQsIDIxOSwgMTUsIDIyNSwgMzMsIDI1MCwgCisgICAgMjQzLCAyNDUsIDE5MywgNjQsIDIxOSwgMTUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMjgsIDIwMCwgNjQsIDIxOSwgMTUsIAorICAgIDIyNSwgMzMsIDI1MCwgMjQzLCAyMTYsIDI0OCwgNjQsIDIxOSwgMTUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMzUsIDEzOSwgCisgICAgNjQsIDIxOSwgMTUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMzQsIDMxLCA2NCwgMjE5LCAxNSwgMjI1LCAzMywgMjUwLCAyNDMsIAorICAgIDIyNCwgMTUsIDY0LCAyMTksIDE1LCAyMjUsIDMzLCAyNTAsIDI0MywgMjM0LCA3OSwgNjQsIDIxOSwgMTUsIDIyNSwgMzMsIAorICAgIDI1MCwgMjQzLCAyNTUsIDksIDY0LCAyNDEsIDIyNSwgMjI1LCAzMywgMjUwLCAyNDMsIDExMywgNjQsIDI0MSwgMjI1LCAKKyAgICAyMjUsIDMzLCAyNTAsIDI0MywgMTM0LCA2NCwgMjQxLCAyMjUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyNDQsIDExLCA2NCwgCisgICAgMjQxLCAyMjUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyNDQsIDgxLCA2NCwgMjQxLCAyMjUsIDIyNSwgMzMsIDI1MCwgMjQzLCAKKyAgICAyMTksIDEyNSwgNjQsIDI0MSwgMjI1LCAyMjUsIDMzLCAyNTAsIDI0MywgMjIwLCAxMjIsIDY0LCAyNDEsIDIyNSwgMjI1LCAKKyAgICAzMywgMjUwLCAyNDMsIDI0NSwgMTkzLCA2NCwgMjQxLCAyMjUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMjgsIDIwMCwgNjQsIAorICAgIDI0MSwgMjI1LCAyMjUsIDMzLCAyNTAsIDI0MywgMjE2LCAyNDgsIDY0LCAyNDEsIDIyNSwgMjI1LCAzMywgMjUwLCAyNDMsIAorICAgIDIzNSwgMTM5LCA2NCwgMjQxLCAyMjUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMzQsIDMxLCA2NCwgMjQxLCAyMjUsIDIyNSwgCisgICAgMzMsIDI1MCwgMjQzLCAyMjQsIDE1LCA2NCwgMjQxLCAyMjUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMzQsIDc5LCA2NCwgMjQxLCAKKyAgICAyMjUsIDIyNSwgMzMsIDI1MCwgMjQzLCAyNTUsIDksIDY0LCAyNDcsIDI0NywgMjI1LCAzMywgMjUwLCAyNDMsIDExMywgNjQsIAorICAgIDI0NywgMjQ3LCAyMjUsIDMzLCAyNTAsIDI0MywgMTM0LCA2NCwgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgMjQzLCAyNDQsIAorICAgIDExLCA2NCwgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgMjQzLCAyNDQsIDgxLCA2NCwgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgCisgICAgMjQzLCAyMTksIDEyNSwgNjQsIDI0NywgMjQ3LCAyMjUsIDMzLCAyNTAsIDI0MywgMjIwLCAxMjIsIDY0LCAyNDcsIDI0NywgCisgICAgMjI1LCAzMywgMjUwLCAyNDMsIDI0NSwgMTkzLCA2NCwgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMjgsIDIwMCwgCisgICAgNjQsIDI0NywgMjQ3LCAyMjUsIDMzLCAyNTAsIDI0MywgMjE2LCAyNDgsIDY0LCAyNDcsIDI0NywgMjI1LCAzMywgMjUwLCAKKyAgICAyNDMsIDIzNSwgMTM5LCA2NCwgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMzQsIDMxLCA2NCwgMjQ3LCAyNDcsIAorICAgIDIyNSwgMzMsIDI1MCwgMjQzLCAyMjQsIDE1LCA2NCwgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgMjQzLCAyMzQsIDc5LCA2NCwgCisgICAgMjQ3LCAyNDcsIDIyNSwgMzMsIDI1MCwgMjQzLCA4NSwgMjM1LCA2MiwgMjI1LCAzMywgMjUwLCAyNDMsIDI1NSwgOSwgNjQsIAorICAgIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIDI0MywgMTEzLCA2NCwgMjQ5LCAyNDIsIDIyNSwgMzMsIDI1MCwgMjQzLCAxMzQsIAorICAgIDY0LCAyNDksIDI0MiwgMjI1LCAzMywgMjUwLCAyNDMsIDI0NCwgMTEsIDY0LCAyNDksIDI0MiwgMjI1LCAzMywgMjUwLCAKKyAgICAyNDMsIDI0NCwgODEsIDY0LCAyNDksIDI0MiwgMjI1LCAzMywgMjUwLCAyNDMsIDIxOSwgMTI1LCA2NCwgMjQ5LCAyNDIsIAorICAgIDIyNSwgMzMsIDI1MCwgMjQzLCAyMjAsIDEyMiwgNjQsIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIDI0MywgMjQ1LCAxOTMsIAorICAgIDY0LCAyNDksIDI0MiwgMjI1LCAzMywgMjUwLCAyNDMsIDIyOCwgMjAwLCA2NCwgMjQ5LCAyNDIsIDIyNSwgMzMsIDI1MCwgCisgICAgMjQzLCAyMTYsIDI0OCwgNjQsIDI0OSwgMjQyLCAyMjUsIDMzLCAyNTAsIDI0MywgMjM1LCAxMzksIDY0LCAyNDksIDI0MiwgCisgICAgMjI1LCAzMywgMjUwLCAyNDMsIDIzNCwgMzEsIDY0LCAyNDksIDI0MiwgMjI1LCAzMywgMjUwLCAyNDMsIDIyNCwgMTUsIDY0LCAKKyAgICAyNDksIDI0MiwgMjI1LCAzMywgMjUwLCAyNDMsIDIzNCwgNzksIDY0LCAyNDksIDI0MiwgMjI1LCAzMywgMjUwLCAyNDMsIAorICAgIDcxLCAyMzUsIDYyLCAyMSwgMjEwLCA4NywgMjQzLCAyMjksIDIxOCwgMTI5LCAyMSwgMjEwLCA4NywgMjQ5LCAyMTksIDIxLCAKKyAgICAxMjMsIDI0OSwgMjE5LCAyMSwgMTEzLCAyNDksIDIxOSwgMjEsIDEzNCwgMjQ5LCAyMTksIDIxLCAyNDQsIDExLCAyNDksIAorICAgIDIxOSwgMjEsIDI0NCwgODEsIDI0OSwgMjE5LCAyMSwgMjE5LCAxMjUsIDI0OSwgMjE5LCAyMSwgMjIwLCAxMjIsIDI0OSwgCisgICAgMjE5LCAyMSwgMjQ1LCAxOTMsIDI0OSwgMjE5LCAyMSwgMjI4LCAyMDAsIDI0OSwgMjE5LCA4OCwgNywgNiwgMSwgNjEsIDg4LCAKKyAgICA3LCA2LCAxLCAyNTMsIDE1OCwgODgsIDcsIDYsIDEsIDI1MSwgNjYsIDg4LCA3LCA2LCAxLCAyNDksIDYwLCA4OCwgNywgNiwgCisgICAgMSwgNzUsIDg4LCA3LCA2LCAxLCAyNDUsIDYsIDg4LCA3LCA2LCAxLCAyNDMsIDIwMiwgODgsIDcsIDYsIDEsIDI0MiwgNjAsIAorICAgIDg4LCA3LCA2LCAxLCA3MywgODgsIDcsIDYsIDEsIDIzNSwgMTQ0LCA4OCwgNywgNiwgMSwgMjM1LCAyMywgODgsIDcsIDYsIAorICAgIDEsIDE1NiwgODgsIDcsIDYsIDEsIDE5MywgODgsIDcsIDYsIDEsIDIzMCwgMjUsIDg4LCA3LCA2LCAxLCA3NiwgODgsIDcsIAorICAgIDYsIDEsIDIyNiwgMTA1LCA4OCwgNywgNiwgMSwgMjI0LCA5NiwgODgsIDcsIDYsIDEsIDE1MywgODgsIDcsIDYsIDEsIDIyMiwgCisgICAgOTEsIDg4LCA3LCA2LCAxLCAyMTcsIDE1MiwgODgsIDcsIDYsIDEsIDcwLCA4OCwgNywgNiwgMSwgMjE0LCAxMDUsIDg4LCA3LCAKKyAgICA2LCAxLCAyMTIsIDk4LCA4OCwgNywgNiwgMSwgMjExLCAxNzgsIDg4LCA3LCA2LCAxLCAyMTEsIDExNywgODgsIDcsIDYsIDEsIAorICAgIDIxMCwgMTU5LCAyMTYsIDYsIDIyMCwgNTMsIDI1MSwgMTU3LCA3LCA2LCAxLCAyMjIsIDkxLCAzNywgMzIsIDcsIDYsIDEsIAorICAgIDI1MSwgNjYsIDM3LCAzMiwgNywgNiwgMSwgMTUzLCAzNywgMjUwLCAxOTEsIDM3LCAyMTEsIDE4MCwgOTIsIDcsIDYsIDEsIAorICAgIDYxLCA5MiwgNywgNiwgMSwgMjUzLCAxNTgsIDkyLCA3LCA2LCAxLCAyNTEsIDY2LCA5MiwgNywgNiwgMSwgMjQ5LCA2MCwgCisgICAgOTIsIDcsIDYsIDEsIDc1LCA5MiwgNywgNiwgMSwgMjQ1LCA2LCA5MiwgNywgNiwgMSwgMjQzLCAyMDIsIDkyLCA3LCA2LCAxLCAKKyAgICAyNDIsIDYwLCA5MiwgNywgNiwgMSwgNzMsIDkyLCA3LCA2LCAxLCAyMzUsIDE0NCwgOTIsIDcsIDYsIDEsIDIzNSwgMjMsIAorICAgIDkyLCA3LCA2LCAxLCAxNTYsIDkyLCA3LCA2LCAxLCAxOTMsIDkyLCA3LCA2LCAxLCAyMzAsIDI1LCA5MiwgNywgNiwgMSwgCisgICAgNzYsIDkyLCA3LCA2LCAxLCAyMjYsIDEwNSwgOTIsIDcsIDYsIDEsIDIyNCwgOTYsIDkyLCA3LCA2LCAxLCAxNTMsIDkyLCA3LCAKKyAgICA2LCAxLCAyMjIsIDkxLCA5MiwgNywgNiwgMSwgMjE3LCAxNTIsIDkyLCA3LCA2LCAxLCA3MCwgOTIsIDcsIDYsIDEsIDIxNCwgCisgICAgMTA1LCA5MiwgNywgNiwgMSwgMjEyLCA5OCwgOTIsIDcsIDYsIDEsIDIxMSwgMTc4LCA5MiwgNywgNiwgMSwgMjExLCAxMTcsIAorICAgIDkyLCA3LCA2LCAxLCAyMTAsIDE1OSwgOTIsIDI0MCwgMjAxLCA5MiwgMjMwLCA0OSwgOTIsIDIyMSwgMTgzLCA5MiwgMjE4LCAKKyAgICAyMjYsIDkyLCAyMjQsIDIxOCwgOTIsIDIxMiwgMjMsIDE1MiwgMzcsIDcsIDYsIDEsIDYxLCAxNTIsIDM3LCA3LCA2LCAxLCAKKyAgICAyNTMsIDE1OCwgMTUyLCAzNywgNywgNiwgMSwgMjUxLCA2NiwgMTUyLCAzNywgNywgNiwgMSwgMjQ5LCA2MCwgMTUyLCAzNywgCisgICAgNywgNiwgMSwgNzUsIDE1MiwgMzcsIDcsIDYsIDEsIDI0NSwgNiwgMTUyLCAzNywgNywgNiwgMSwgMjQzLCAyMDIsIDE1MiwgCisgICAgMzcsIDcsIDYsIDEsIDI0MiwgNjAsIDE1MiwgMzcsIDcsIDYsIDEsIDczLCAxNTIsIDM3LCA3LCA2LCAxLCAyMzUsIDE0NCwgCisgICAgMTUyLCAzNywgNywgNiwgMSwgMjM1LCAyMywgMTUyLCAzNywgNywgNiwgMSwgMTU2LCAxNTIsIDM3LCA3LCA2LCAxLCAxOTMsIAorICAgIDE1MiwgMzcsIDcsIDYsIDEsIDIzMCwgMjUsIDE1MiwgMzcsIDcsIDYsIDEsIDc2LCAxNTIsIDM3LCA3LCA2LCAxLCAyMjYsIAorICAgIDEwNSwgMTUyLCAzNywgNywgNiwgMSwgMjI0LCA5NiwgMTUyLCAzNywgNywgNiwgMSwgMTUzLCAxNTIsIDM3LCA3LCA2LCAxLCAKKyAgICAyMjIsIDkxLCAxNTIsIDM3LCA3LCA2LCAxLCAyMTcsIDE1MiwgMTUyLCAzNywgNywgNiwgMSwgNzAsIDE1MiwgMzcsIDcsIDYsIAorICAgIDEsIDIxNCwgMTA1LCAxNTIsIDM3LCA3LCA2LCAxLCAyMTIsIDk4LCAxNTIsIDM3LCA3LCA2LCAxLCAyMTEsIDE3OCwgMTUyLCAKKyAgICAzNywgNywgNiwgMSwgMjExLCAxMTcsIDE1MiwgMzcsIDcsIDYsIDEsIDIxMCwgMTU5LCAyMjMsIDE1NywgMjMxLCA5NywgNTAsIAorICAgIDIyMywgMTU3LCAyMzEsIDk0LCA1MCwgMTUyLCA5MiwgNywgNiwgMSwgNjEsIDE1MiwgOTIsIDcsIDYsIDEsIDI1MywgMTU4LCAKKyAgICAxNTIsIDkyLCA3LCA2LCAxLCAyNTEsIDY2LCAxNTIsIDkyLCA3LCA2LCAxLCAyNDksIDYwLCAxNTIsIDkyLCA3LCA2LCAxLCAKKyAgICA3NSwgMTUyLCA5MiwgNywgNiwgMSwgMjQ1LCA2LCAxNTIsIDkyLCA3LCA2LCAxLCAyNDMsIDIwMiwgMTUyLCA5MiwgNywgNiwgCisgICAgMSwgMjQyLCA2MCwgMTUyLCA5MiwgNywgNiwgMSwgNzMsIDE1MiwgOTIsIDcsIDYsIDEsIDIzNSwgMTQ0LCAxNTIsIDkyLCA3LCAKKyAgICA2LCAxLCAyMzUsIDIzLCAxNTIsIDkyLCA3LCA2LCAxLCAxNTYsIDE1MiwgOTIsIDcsIDYsIDEsIDE5MywgMTUyLCA5MiwgNywgCisgICAgNiwgMSwgMjMwLCAyNSwgMTUyLCA5MiwgNywgNiwgMSwgNzYsIDE1MiwgOTIsIDcsIDYsIDEsIDIyNiwgMTA1LCAxNTIsIDkyLCAKKyAgICA3LCA2LCAxLCAyMjQsIDk2LCAxNTIsIDkyLCA3LCA2LCAxLCAxNTMsIDE1MiwgOTIsIDcsIDYsIDEsIDIyMiwgOTEsIDE1MiwgCisgICAgOTIsIDcsIDYsIDEsIDIxNywgMTUyLCAxNTIsIDkyLCA3LCA2LCAxLCA3MCwgMTUyLCA5MiwgNywgNiwgMSwgMjE0LCAxMDUsIAorICAgIDE1MiwgOTIsIDcsIDYsIDEsIDIxMiwgOTgsIDE1MiwgOTIsIDcsIDYsIDEsIDIxMSwgMTc4LCAxNTIsIDkyLCA3LCA2LCAxLCAKKyAgICAyMTEsIDExNywgMTUyLCA5MiwgNywgNiwgMSwgMjEwLCAxNTksIDI0OSwgMTI4LCAxNTIsIDkyLCA3LCA2LCAxLCAyMjYsIAorICAgIDEwNSwgMTUyLCA5MiwgMjQwLCAxMTMsIDE1MiwgOTIsIDE5MCwgMTUyLCA5MiwgMjA2LCAxNTIsIDkyLCAyNTUsIDI1LCAKKyAgICAxNTIsIDkyLCAyMTIsIDIzLCA0MiwgMjQ3LCAxNjQsIDkyLCAyNTAsIDIzLCA5MiwgMjQ5LCAxNzAsIDkyLCAyNDMsIDI1MiwgCisgICAgOTIsIDI0MCwgMTA1LCA5MiwgMjI5LCA4NiwgOTIsIDIyOSwgNzksIDkyLCAyMjYsIDIxNCwgOTIsIDIxOSwgMzUsIDkyLCAKKyAgICAxMjAsIDIsIDI0NSwgMzEsIDc4LCA5MiwgMjEzLCAxMTksIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDYxLCAyMjMsIAorICAgIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyNTMsIDE1OCwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgMjUxLCA2NiwgMjIzLCAKKyAgICAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgMjQ5LCA2MCwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgNzUsIDIyMywgMTAzLCAKKyAgICAyMzUsIDIzOSwgMTYsIDEsIDI0NSwgNiwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgMjQzLCAyMDIsIDIyMywgMTAzLCAKKyAgICAyMzUsIDIzOSwgMTYsIDEsIDI0MiwgNjAsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDczLCAyMjMsIDEwMywgMjM1LCAKKyAgICAyMzksIDE2LCAxLCAyMzUsIDE0NCwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgMjM1LCAyMywgMjIzLCAxMDMsIDIzNSwgCisgICAgMjM5LCAxNiwgMSwgMTU2LCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAxOTMsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIAorICAgIDEsIDIzMCwgMjUsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDc2LCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAKKyAgICAyMjYsIDEwNSwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgMjI0LCA5NiwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgCisgICAgMTUzLCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyMjIsIDkxLCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyMTcsIAorICAgIDE1MiwgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgNzAsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDIxNCwgMTA1LCAKKyAgICAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyMTIsIDk4LCAyMjMsIDEwMywgMjM1LCAyMzksIDE2LCAxLCAyMTEsIDE3OCwgCisgICAgMjIzLCAxMDMsIDIzNSwgMjM5LCAxNiwgMSwgMjExLCAxMTcsIDIyMywgMTAzLCAyMzUsIDIzOSwgMTYsIDEsIDIxMCwgMTU5LCAKKyAgICA0MiwgMTQxLCAyNDEsIDYzLCA5MiwgNTYsIDIzNCwgMTgsIDkyLCA1NiwgMjA2LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNTAsIAorICAgIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA1NCwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDYyLCA5MiwgNTYsIDI0OCwgOTAsIDkyLCAKKyAgICA5LCAyMTQsIDE3NywgMjM4LCA2OSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDU2LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgMjgsIAorICAgIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA1NSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDY4LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgCisgICAgNDIsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAzNSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDQ0LCA5MiwgOSwgMjE0LCAxNzcsIAorICAgIDIzOCwgNjUsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA1MSwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDY3LCA5MiwgOSwgMjE0LCAKKyAgICAxNzcsIDIzOCwgNDMsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA2NiwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDI5LCA5MiwgOSwgCisgICAgMjE0LCAxNzcsIDIzOCwgMzQsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAyNywgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDU3LCAKKyAgICA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNTksIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAzNywgOTIsIDksIDIxNCwgMTc3LCAyMzgsIAorICAgIDQ4LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNDYsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA3MiwgOTIsIDksIDIxNCwgMTc3LCAKKyAgICAyMzgsIDcxLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgMjUsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA1MiwgOTIsIDksIDIxNCwgCisgICAgMTc3LCAyMzgsIDcwLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNjEsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCA0NywgOTIsIDksIAorICAgIDIxNCwgMTc3LCAyMzgsIDI2LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNDksIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAzMSwgCisgICAgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDMwLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNjAsIDkyLCA5LCAyMTQsIDE3NywgMjM4LCAKKyAgICAzOCwgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDQwLCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNDEsIDkyLCA5LCAyMTQsIDE3NywgCisgICAgMjM4LCAzMywgOTIsIDksIDIxNCwgMTc3LCAyMzgsIDY0LCA5MiwgOSwgMjE0LCAxNzcsIDIzOCwgNTgsIDIxNiwgNiwgMjIwLCAKKyAgICA1MywgMjUxLCAxNTcsIDksIDIxNCwgMTc3LCAyMzgsIDM5LCAyMTYsIDYsIDIyMCwgNTMsIDI1MSwgMTU3LCA5LCAyMTQsIAorICAgIDE3NywgMjM4LCA3MSwgMjE2LCA2LCAyMjAsIDUzLCAyNTEsIDE1NywgOSwgMjE0LCAxNzcsIDIzOCwgNjksIDIxNiwgNiwgCisgICAgMjIwLCA1MywgMjUxLCAxNTcsIDksIDIxNCwgMTc3LCAyMzgsIDUzLCAyMTYsIDYsIDIyMCwgNTMsIDI1MSwgMTU3LCA5LCAKKyAgICAyMTQsIDE3NywgMjM4LCAzNiwgMjE2LCA2LCAyMjAsIDUzLCAyNTEsIDE1NywgOSwgMjE0LCAxNzcsIDIzOCwgNDksIDIxNiwgCisgICAgNiwgMjIwLCA1MywgMjUxLCAxNTcsIDksIDIxNCwgMTc3LCAyMzgsIDMyLCAyMTYsIDYsIDIyMCwgNTMsIDI1MSwgMTU3LCA5LCAKKyAgICAyMTQsIDE3NywgMjM4LCA2MywgMjE2LCA2LCAyMjAsIDUzLCAyNTEsIDE1NywgOSwgMjE0LCAxNzcsIDIzOCwgNDUsIDM3LCAKKyAgICAxNTQsIDI1NCwgMjQ1LCAzNywgMTU0LCAyNTUsIDEyLCAyNDksIDcxLCAyNDQsIDQyLCAyNTAsIDAsIDIxNCwgMTk0LCAyMjgsIAorICAgIDIxMywgMiwgMjE4LCAxNTMsIDIxOCwgMzMsIDExNywgMjMwLCAxMTQsIDIxOCwgMzIsIDI1MCwgMjYsIDI1MywgMjA3LCAKKyAgICAyNDYsIDU0LCAyMTgsIDMxLCAxMTcsIDI1MSwgMTE4LCAyMjMsIDE1OCwgMjUxLCAxNDAsIDI1MywgMjA3LCAyMjgsIDIxMiwgCisgICAgMjEyLCA0MSwgMjEyLCAzNSwgMjEzLCAxMzEsIDIzMCwgMTk1LCAyMTIsIDI1LCAyNDUsIDIyNCwgMjQyLCAxODEsIDI0NSwgCisgICAgNDUsIDI0NSwgMjI0LCAyNDIsIDE4MSwgMjU0LCAxMjgsIDI0NSwgMjI0LCAyNDIsIDE4MSwgMjUzLCAyMjUsIDI0MiwgMTgxLCAKKyAgICAyLCAyMzEsIDUxLCAxNjYsIDIzMCwgMTI5LCA4NywgMjEyLCAyNywgMjQ5LCAxMzcsIDIzMCwgMTI5LCA4NywgMjQ0LCA5MiwgCisgICAgMjI0LCAyMiwgMjMwLCAxMjksIDg3LCAyMTIsIDI3LCAyNDIsIDIxMCwgMjMwLCAxMjksIDg3LCAyNDMsIDIyOSwgMjMwLCAKKyAgICAxMjksIDg3LCAyMTIsIDUyLCAyNDIsIDIxMCwgMjMwLCAxMjksIDg3LCAyMzMsIDgwLCAyMjQsIDIyLCAyMzAsIDEyOSwgODcsIAorICAgIDIxMiwgNTIsIDI0OSwgMTM3LCAyMzAsIDEyOSwgODcsIDI0OSwgMTM3LCAyMzAsIDEyOCwgMTY2LCAyMzAsIDEyOSwgMiwgCisgICAgMjQ0LCAxOTAsIDI0NCwgOTIsIDIyNCwgMjIsIDIzMCwgMTI5LCAyLCAyNDQsIDE5MCwgMjMzLCA4MCwgMjI0LCAyMiwgMjMwLCAKKyAgICAxMjksIDIsIDI0NCwgMTkwLCAyNDMsIDIyOSwgMjMwLCAxMjksIDIsIDI0NCwgMTkwLCAyMTgsIDM4LCAyLCAyNDQsIDE5MCwgCisgICAgMjQyLCAxNzksIDIxOCwgMTU2LCAyMTksIDI1NSwgMjE4LCAxNTYsIDI1MCwgMTE2LCAyMjEsIDE2OCwgMjQ1LCAzOSwgMjE1LCAKKyAgICAyMzUsIDI0OCwgODQsIDIxNSwgMjM1LCAyMjYsIDU5LCAyMTUsIDIzNSwgMjUxLCAyNywgMjE1LCAxMDksIDI1MCwgMTE4LCAKKyAgICAyNTEsIDIxMCwgMjIyLCAxOTEsIDI0MSwgMTc5LCAyMTgsIDM2LCAyNTEsIDIxMCwgMjQ1LCAyMjgsIDY0LCAyMzEsIDE5NCwgCisgICAgMjQ1LCAyMjgsIDY0LCAyMjMsIDMxLCAyNDEsIDIwNCwgMjQ0LCAxMSwgMjMzLCA1NCwgMjQ5LCAyNDYsIDIzMSwgMTcwLCAKKyAgICAyMzMsIDUzLCAyNDQsIDE3NiwgMjMzLCA1MywgMjMzLCA1NCwgMjQ0LCA0NywgMjM2LCAwLCAyMTEsIDIzOSwgMjMwLCA1OCwgCisgICAgMjE2LCAzNCwgMjUzLCAxOTEsIDI0MiwgMTQzLCAyMzEsIDY3LCAyMTIsIDM5LCAyMTcsIDU3LCAyMzMsIDI2LCAyNTIsIAorICAgIDE0OSwgMjI1LCA2MiwgMjIzLCAxMTEsIDI1NCwgNTQsIDI0MiwgMTI3LCAyNTQsIDU0LCAyMjUsIDIxNywgMjI1LCAyMTgsIAorICAgIDI1MCwgMTE5LCAyMTgsIDExNCwgMjQyLCAyMywgMjE5LCA5MCwgNjQsIDIyNSwgNDQsIDIzMSwgODcsIDIyNiwgMTk3LCAKKyAgICAyNTEsIDE5NCwgMjI0LCAyMjksIDIzMywgMzYsIDIyMywgMzIsIDI0OSwgMTQyLCAyMjMsIDMyLCAyNTIsIDE1OSwgMjQ5LCAKKyAgICAxNzMsIDIyMywgMzEsIDI0OSwgOTUsIDIyLCAyMjMsIDMxLCAyMTgsIDE0MSwgMjUxLCAxNjcsIDIxOSwgMTQsIDI1MSwgCisgICAgMTUxLCAyNDMsIDI1MSwgMjQzLCAyNDcsIDIyMiwgMjA3LCAyMTcsIDI0NiwgMjI0LCAyMzEsIDI0OCwgMTc1LCAyMjYsIAorICAgIDIzNiwgMjE4LCA3LCAyNDMsIDI0OCwgMjE5LCAyMzAsIDI0NCwgOTEsIDI1MSwgMjEsIDIsIDIxNywgMjM5LCAyNDgsIDM1LCAKKyAgICAyMTksIDUyLCAyNDAsIDExMiwgMjQ5LCAxNDEsIDIyMCwgNzAsIDI0MCwgMTExLCAyNDAsIDExMiwgMjQ5LCAxNDEsIDI0NiwgCisgICAgMTA4LCAyNDksIDE3MiwgMjUwLCA4NCwgMTMwLCAyNTAsIDI1NCwgMjMyLCAxNDEsIDI0OSwgODgsIDI0MSwgNTUsIDIyNCwgCisgICAgMjMzLCAyMTksIDI0MCwgMjUyLCAzNiwgMjUxLCAxNjMsIDIyNCwgMjM0LCA2NCwgMjQ0LCAzMywgMjQ5LCAxNzEsIDI0NCwgCisgICAgMjQsIDIyLCAyMzQsIDMyLCAyMTcsIDE5LCAyMTEsIDIzMCwgMjQyLCAxMywgMjIyLCAxMiwgMjUxLCAxNzcsIDIyLCAyNDksIAorICAgIDEwMiwgMjExLCAyMzcsIDI0MiwgMTg0LCAyNDksIDIzNSwgMjQyLCAxODQsIDIxNSwgMTkzLCAyNDYsIDkwLCAyNTIsIDYyLCAKKyAgICAyMzAsIDkzLCAyNTAsIDcsIDI1MiwgNjIsIDIzMCwgOTIsIDI1MiwgMTg3LCAyNTEsIDE3NiwgMjIzLCAzMywgMjExLCAyMDEsIAorICAgIDIyNCwgMTk1LCAyNTEsIDIzNSwgMjUxLCAyMCwgMjM1LCAxMzgsIDI1MCwgNzcsIDIxNSwgMjM1LCAyNDQsIDE2MiwgMjUwLCAKKyAgICA3NiwgMjQ0LCA5NCwgMjQ0LCA5NSwgMjE5LCAxMiwgMjUyLCAxNTgsIDIyNSwgMjUwLCAyMjQsIDI0NCwgMjQ5LCAyMDQsIAorICAgIDI1MiwgMTU5LCAyMTcsIDU5LCAyMTUsIDIzNSwgMjQ5LCAxMjgsIDI0NCwgNjcsIDIyNSwgNjMsIDI0OCwgODEsIDIzNSwgCisgICAgMTMxLCAyNDcsIDEzMSwgMjUwLCAyMzIsIDIxOCwgMTEzLCAyMTEsIDI0MCwgMjUwLCA5OCwgMjMwLCAxMjksIDIxMywgMTY0LCAKKyAgICAyNTAsIDE2MiwgMjIxLCAxOTksIDIyMSwgMjI0LCAyNDIsIDE0OCwgMjUwLCAyNTEsIDI1MCwgMjMzLCAyNDAsIDI0NSwgCisgICAgMjQ0LCAxMzAsIDIxMiwgMCwgMjIyLCAyMDAsIDI0OSwgMjM2LCAyNDQsIDg2LCAyMjUsIDIsIDIyLCAyNDQsIDkwLCAyMzAsIAorICAgIDIyNywgMjMwLCAxMDgsIDI1MSwgMTAsIDI1MCwgMzksIDI0MSwgMjMyLCAyNTMsIDI0MSwgMjI2LCA2MiwgMjE2LCAxNCwgCisgICAgMjQxLCAyNTEsIDI1MCwgMjksIDIxNiwgMjQyLCAyMTYsIDExMywgMjUwLCAyMCwgMjUxLCAyMDIsIDIyNSwgMTc3LCAyNTMsIAorICAgIDI0MCwgMjEzLCAxNzIsIDI0MywgMTEwLCAyNDcsIDE5NywgMjQxLCAxNTYsIDIxOSwgODQsIDIzMSwgMjM0LCAyNTEsIDI0NSwgCisgICAgMjQzLCAxMTEsIDI0NywgMjQwLCAyNTEsIDE2NiwgMjQ0LCA1MiwgMjI1LCAzMywgMjUwLCAyNDEsIDI4LCAyMjgsIDQ3LCAKKyAgICAyMzAsIDg1LCAyOCwgMjI4LCA0MiwgMjIxLCAyMTIsIDI0MiwgOTksIDI4LCAyMzQsIDEzNywgMjE1LCAxOTAsIDIxMywgCisgICAgMTU0LCAyOCwgMjIxLCAxOTIsIDIyMiwgMTI0LCAyMjAsIDExLCAyLCAyMjEsIDIyNywgMjE2LCAyNDQsIDIyMywgMTc4LCAKKyAgICAyMiwgMjUyLCAxNTksIDIxOSwgMTA1LCAyMiwgMjE5LCAxMDUsIDI1MSwgMTg3LCAyNTIsIDEyMywgMjIsIDI0MSwgNDksIAorICAgIDI1MCwgMTIwLCAyNDQsIDczLCAyMTksIDYzLCAyMjIsIDEyNSwgMjE4LCAxMiwgMjE1LCAxOTQsIDI0MCwgMjQ2LCAyMjMsIAorICAgIDE3OSwgMjU0LCAxMjksIDI0NCwgMzEsIDIyMiwgMTM2LCAyNDQsIDMxLCAyMTcsIDI0MSwgMjQwLCAyMzUsIDI1MSwgMTE5LCAKKyAgICAyNDAsIDIzNSwgMiwgMjQzLCA5NCwgMjI2LCAyMjksIDI1MSwgMTE5LCAyMzUsIDEzMSwgMjI0LCAyMzksIDIyNiwgMjI4LCAKKyAgICAyNDUsIDQ0LCAyMjQsIDIzOSwgMjI2LCAyMjgsIDI0MCwgMjQ0LCAyNTIsIDE0NSwgMjUzLCAxODEsIDIxNiwgMjUyLCAyMzEsIAorICAgIDIzNCwgMjQwLCAyNDAsIDIzMiwgMTExLCAyNDAsIDI0MCwgMjQ5LCAxNzYsIDIxOCwgMTI1LCAyMjEsIDE5OCwgMjQ4LCA0MywgCisgICAgMjE4LCAxMjUsIDI0NCwgMTgwLCAyMzUsIDE0OSwgMjMzLCA4OSwgMjM1LCAxMzEsIDI1MCwgMjI2LCAyNDUsIDQ0LCAyNTAsIAorICAgIDIyNiwgMjIzLCAxNDEsIDIzMCwgMTEyLCAyMjYsIDExNCwgMjEyLCA0MSwgMjUxLCAxMjMsIDI0OSwgMTQ1LCAyMTYsIDEwNiwgCisgICAgMjMzLCAxOCwgMjIzLCAxODAsIDI1MCwgMjI0LCAyNDYsIDk2LCAyNDksIDEzNSwgMjEyLCAzLCAyMTksIDcwLCAyMTksIDY4LCAKKyAgICAyNDAsIDI0NSwgMjIzLCAxNTMsIDI0MiwgMTcwLCAyMjAsIDU3LCAyMzAsIDE0NSwgMjIyLCAxOTQsIDI1MCwgMTA4LCAyNDcsIAorICAgIDEzNiwgMjI1LCA3MywgMjUxLCAyMDMsIDI0NSwgMTY5LCAyMjYsIDIzOCwgMjE4LCAyNTIsIDIyMCwgNTIsIDI1MSwgMTIyLCAKKyAgICAyNTQsIDkyLCAyNDEsIDU0LCAyMzMsIDEyMSwgMjUyLCA2MCwgMjQ0LCA5MCwgMjE1LCAxOTMsIDI0NCwgOTAsIDI1MSwgCisgICAgMjA5LCAyMTUsIDkxLCAyNDEsIDI0OSwgMjUwLCAxMDksIDI1MiwgMTg3LCAyNTAsIDEwOSwgMjQzLCAyNDIsIDI1MiwgMTg3LCAKKyAgICAyNTAsIDEwOSwgMjUxLCAyMzcsIDIyNSwgMTk1LCAyMzQsIDI2LCAyMjQsIDI0OCwgMjQ2LCA4NywgMjUxLCAxMSwgMjUyLCAKKyAgICAxNzcsIDI1MSwgMTEsIDI0NywgMTMwLCAyMzAsIDExMywgMjQ0LCAxOTAsIDI0OSwgMTQ2LCAyNDQsIDE5MCwgMjE2LCAxMDcsIAorICAgIDI0NCwgMTkwLCAyMjMsIDE4MSwgMjQ0LCAxOTAsIDI1MCwgMjI1LCAyNDQsIDE5MCwgMjQ2LCA5NywgMjQ0LCAxOTAsIDIxOCwgCisgICAgMjQxLCAyMTIsIDMsIDI0MCwgMjQ2LCAyNDQsIDE5MCwgMjMwLCAxNDYsIDI0NCwgMTkwLCAyNDcsIDEzNywgMjQ0LCAxOTAsIAorICAgIDIyNSwgNzQsIDI0NCwgMTkwLCAyNDMsIDI0NSwgMjQ0LCAxOTAsIDI0MiwgMjAsIDI0NCwgMTkwLCAyMTEsIDIyNCwgMjQ0LCAKKyAgICAxOTAsIDI1MiwgNzEsIDI0NCwgMTkwLCAyMjYsIDQ1LCAyNDQsIDE5MCwgMjI1LCA3NCwgMjI4LCA1MywgMjI1LCAyMzIsIAorICAgIDIyNCwgMTg2LCAyNDUsIDEzLCAyNDUsIDIyNywgMjI4LCA1MywgMjMwLCAxMTAsIDIxNiwgMTksIDcxLCAxMjAsIDIyNSwgNywgCisgICAgMjUyLCAxODIsIDIzNSwgMjQyLCA3MSwgMTI0LCAyMjUsIDcsIDI1MiwgMTgyLCAyMzUsIDI0MiwgNzEsIDQzLCAyMjUsIDcsIAorICAgIDI1MiwgMTgyLCAyMzUsIDI0MiwgNzEsIDQ0LCAyMjUsIDcsIDI1MiwgMTgyLCAyMzUsIDI0MiwgMjQ0LCA4NCwgMjQyLCAxNiwgCisgICAgNTAsIDIxMiwgMzMsIDI0MiwgMTYsIDUwLCAyMjYsIDIxNSwgMjQyLCAxNiwgNTAsIDIxNiwgMTM1LCAxMjAsIDUwLCAyMTYsIAorICAgIDEzNSwgMTI0LCA1MCwgMjUwLCAxOSwgMjQyLCAxMSwgNTAsIDIwNCwgMjQyLCAxMSwgNTAsIDI0OSwgMTIzLCAyMTEsIDIyMCwgCisgICAgMjQxLCAyNTEsIDI0NSwgMTQsIDIyOSwgMTA0LCAyMTcsIDE1MSwgMjM1LCAxMjUsIDI0NiwgOTIsIDIzNCwgODIsIDI1MSwgCisgICAgMjQ3LCAyMTEsIDIyMCwgMjQ5LCAyNDksIDIyNCwgMTI3LCAyNDIsIDE0LCAyMjQsIDIzMCwgMjMxLCAxNzcsIDIyMCwgNCwgCisgICAgMjUzLCAyMDMsIDIyMCwgNCwgMjQxLCAxNjQsIDIyMCwgNCwgMjExLCAyMjAsIDIyMSwgMjQwLCAyMTEsIDIyMCwgMjUxLCAKKyAgICAxODYsIDI0NCwgMjksIDI1MSwgOTAsIDIzNiwgMCwgMjE5LCAxNjksIDI1MSwgODksIDIzNiwgMCwgMjE5LCAxNjksIDI1MSwgCisgICAgMTYyLCAyNDIsIDE5NCwgMjMxLCAxODUsIDIxMSwgMjIxLCAyNDQsIDE3NCwgMjMxLCAxODYsIDIyLCAyMTEsIDIyMiwgMjQxLCAKKyAgICA2MCwgMjQyLCAxMCwgMTEzLCAyMzEsIDU5LCAyNDEsIDYwLCAyNDIsIDEwLCAxMTMsIDIxMSwgMjE5LCAyNDEsIDYwLCAyNDIsIAorICAgIDEwLCAyMjQsIDI1NSwgMjI2LCAyMjcsIDIxMSwgMjIyLCAyLCAyNTEsIDEwNiwgMjQ1LCAyMjUsIDI1MSwgMTQxLCAyLCAKKyAgICAyMTMsIDI0NiwgMjI1LCAxNjgsIDIsIDI1MSwgMjEyLCAyNDIsIDM0LCAyMzEsIDE4NiwgMiwgMjQyLCAxMTAsIDIyNSwgCisgICAgMTA5LCAyMzEsIDE3NCwgMjMxLCAxODYsIDIsIDIxNSwgOTcsIDIyNiwgMjA4LCAyMzEsIDE4NSwgMjI2LCAyMDgsIDIxMSwgCisgICAgMjIxLCAyNTIsIDE4NiwgMjQ5LCAxOTAsIDIxMSwgMjA1LCAyMjQsIDE4OSwgMjM1LCAxMzEsIDIyNiwgMjIzLCAyMzUsIAorICAgIDEzMSwgMjQyLCAxNjksIDI0MiwgMjIyLCAyNTIsIDE4NywgMjU0LCAxMTMsIDI0NSwgMTgsIDI1NCwgMTYwLCAyNTQsIDE2MSwgCisgICAgMjMwLCAxMzYsIDIzNiwgNSwgMjE5LCAxMDAsIDIzNSwgMjMyLCAyNDgsIDM0LCAyMjUsIDE2NywgMjQyLCAxMDUsIDI0OCwgCisgICAgMTc5LCAyMzIsIDIwMSwgMjI5LCAyMTEsIDIyNCwgMjU0LCAyNDQsIDE5MSwgMjMxLCAxNDIsIDI0MiwgMzMsIDI1MiwgMTM4LCAKKyAgICAyMjUsIDEsIDIxNywgMTcxLCAyMjUsIDY2LCAyMzQsIDY0LCA3OCwgMjMyLCAxMTEsIDIzMywgMTAsIDIyMiwgMjMzLCAyNDMsIAorICAgIDU0LCAyMTgsIDEzMSwgMjM0LCA2MywgMjUxLCAxNzEsIDI0OSwgMTQ4LCAyLCAyNDEsIDIyNywgMjEyLCAxOSwgMjUyLCA2OSwgCisgICAgMjQxLCAyMjcsIDI1MSwgMTM1LCAyNDEsIDIyNywgMTEzLCAyNDEsIDIyNSwgMjE5LCAxMCwgMjQxLCAyMjcsIDI0MiwgMTIwLCAKKyAgICAyNDEsIDIyNywgMjQxLCAyMjgsIDIsIDc0LCAyNTEsIDIwOCwgMjQxLCAyMjcsIDI0MiwgMTI3LCAyNDEsIDIyNywgMjExLCAKKyAgICA0MiwgMjQxLCAyMjcsIDIyNCwgMTI4LCAyNDEsIDIyNywgMjQxLCAyMjgsIDIsIDIyMywgMzMsIDIyMywgNDQsIDI0MSwgCisgICAgMjI1LCAyNDEsIDIyOCwgMjQ4LCA4MSwgMjQ3LCAyNDksIDIyMCwgODIsIDIsIDExNSwgNTksIDIzNSwgMjE1LCAyNDUsIAorICAgIDE3MiwgMTkyLCAyNTEsIDExNiwgMjU0LCAxMTIsIDg3LCAyNTEsIDE5NSwgMjE5LCA5MiwgODcsIDI0OSwgMjI4LCA4NywgCisgICAgMjE4LCAyNDYsIDIxNywgMjQ4LCA4NywgMjQ2LCA4NSwgMjQ4LCAxNTcsIDg3LCAyMjUsIDY3LCA2NCwgMjI0LCAyNDksIAorICAgIDI0NCwgNjEsIDI1MiwgMywgMjQ3LCAxNjUsIDg3LCAyMTksIDMsIDI1MiwgMTU4LCAyMTYsIDE0OSwgMjUyLCAxNTgsIDcxLCAKKyAgICAyNDQsIDUxLCAyNDAsIDIxMSwgMjI1LCA1LCA4NywgMjMwLCAxNDksIDI1MiwgMTcyLCAyNDksIDk4LCAyNDUsIDMyLCAxMTQsIAorICAgIDI0NywgMTMyLCA1MCwgMjQ5LCAxMzksIDI1MCwgMjQyLCAyNTIsIDE0NCwgMiwgMjExLCA0MCwgNTAsIDI1MiwgMTQ0LCAyLCAKKyAgICAyNDcsIDEzMiwgNTAsIDI1MiwgMTQ0LCAyLCAyNDUsIDQ3LCA1MCwgMjUyLCAxNDQsIDIsIDIyNCwgMjI4LCA1MCwgMjMwLCAKKyAgICAxNDksIDIsIDIxMSwgMjM1LCAyNTAsIDEzOCwgMiwgMjE0LCAxNTMsIDIxNSwgMjMxLCAyMiwgMjExLCA0MCwgNTAsIDIyMSwgCisgICAgMTc4LCAyMjUsIDE2NiwgMjQ5LCAyMDgsIDI1MSwgMTM5LCAyMzAsIDE4NiwgMjQ0LCA1NiwgMjQ3LCAxODUsIDIyNiwgMTYxLCAKKyAgICAyNDcsIDE5MCwgMjQ2LCA0OSwgMjQ0LCAxMDcsIDI0NCwgNDAsIDIwNCwgMjQ0LCAxMDcsIDI0NCwgNDAsIDIyNiwgNzYsIDIsIAorICAgIDI0OSwgMTAwLCAyMjYsIDc2LCAyNDQsIDE4MywgMjE0LCAxNjMsIDI1MSwgMTYsIDIxNywgMTgsIDI1MSwgMTYsIDI1MCwgCisgICAgMjQzLCAyMzUsIDI0MiwgMjUwLCAxMzgsIDIsIDIxNCwgMTUzLCAyMTUsIDIzMCwgMjUwLCAxMzgsIDIsIDI0NiwgMTA0LCAKKyAgICAyMTUsIDIzMCwgMjUyLCAxNDEsIDI1MCwgMTM3LCAyNTAsIDYsIDIyNCwgMTIzLCAyMjIsIDE4NSwgMjI0LCAxMjMsIDIyNiwgCisgICAgMTksIDIxOCwgMTIxLCAyMjIsIDEzMSwgMjE1LCAyMjIsIDIyMiwgMTMxLCAyNTEsIDE5MSwgMjE3LCA5MSwgMjMzLCA1MSwgCisgICAgMjI4LCA0NSwgMjI4LCA0NiwgMiwgMjQ4LCA4MCwgMjQ5LCAxNDcsIDI1MCwgMCwgMjUxLCAxOTIsIDIwNCwgMjUxLCAxOTIsIAorICAgIDI0MiwgMTI3LCAyNTEsIDE5MiwgMjUxLCAyMDgsIDI1MSwgMTkyLCAyMjYsIDE1NywgMjUxLCAxOTIsIDI1MSwgMTg5LCAKKyAgICAyMjksIDIwNSwgMjUyLCAxNzUsIDIyMSwgMTg2LCAyMzEsIDYwLCAyMTcsIDEsIDIyMywgMTIzLCAyMjYsIDc0LCAyNDQsIAorICAgIDE1OSwgMjMxLCAyMzQsIDIyMSwgMjIzLCAyNTQsIDg5LCAyMjQsIDE0NSwgMjU0LCAyNTIsIDIzMiwgMTEzLCAyNTAsIDEyNywgCisgICAgMjMxLCA3MiwgMjI2LCAxMjksIDIxNSwgMjM4LCAyMzUsIDI1MiwgMjE1LCAyMzgsIDIyNiwgODIsIDI0NiwgMjQsIDg3LCAKKyAgICAyMzUsIDI0OSwgMjQ1LCAxMTksIDI0NSwgMTIwLCAyLCAyNDYsIDEwNCwgODAsIDQ4LCAyNTAsIDAsIDIzMSwgMjAwLCAyLCAKKyAgICAyMzIsIDEwNywgMjQ0LCA3MywgMjUwLCAwLCAyMzEsIDIwMCwgMiwgMjIzLCAxNTcsIDI0NCwgNzMsIDIwNCwgMjMxLCAyMDAsIAorICAgIDIsIDIyMywgMTU3LCAyNDQsIDczLCAyMDQsIDIzMSwgMjAwLCAyLCAyMzIsIDEwNywgMjQ0LCA3MywgMjI0LCAyMzYsIDIyNCwgCisgICAgMjM3LCAyNDAsIDI0OCwgMjI5LCA4NCwgMjMwLCAxNTksIDIyNSwgMTE3LCAyMzAsIDE1OSwgMjI1LCAxMTgsIDIsIDk3LCAKKyAgICA4MCwgMjUzLCAyMDcsIDIzMywgNDYsIDIxMywgMTc1LCAyMzAsIDE1OCwgMjMwLCAxNTksIDIyNSwgMTE4LCAyMjYsIDIzMCwgCisgICAgMjI4LCA3NSwgMjMwLCAxNTksIDIyNSwgMTE2LCAyNTQsIDkwLCAyLCAyNTIsIDEyOSwgMjUxLCAxMCwgMjEzLCAxNzIsIAorICAgIDI1MSwgMTAsIDIxNiwgMjU0LCAyMjMsIDE3MywgMjEzLCAxNzEsIDIxNSwgNjAsIDk3LCAyNTMsIDI0NywgMjUwLCAyLCA5NywgCisgICAgMjIsIDE0MCwgMjA0LCAyNTAsIDM2LCAyNTMsIDI0NywgMjUwLCAyLCA5NywgMjIsIDE0MCwgMjA0LCAyNTAsIDM2LCAyNTMsIAorICAgIDI0OCwgMiwgMzcsIDEyMywgMjI2LCAxMjAsIDI1MCwgMiwgMjQ2LCAxMDQsIDIyLCAyMTQsIDE1MywgMjA0LCAyNTAsIDM2LCAKKyAgICAyNTMsIDI0NywgMjU0LCA4OCwgMjQ2LCAxMDQsIDIyLCAyMTQsIDE1MywgMjA0LCAyNTAsIDM2LCAyNTMsIDI0NywgMTIxLCAKKyAgICAyNTEsIDEzOCwgODcsIDEyNSwgMjUxLCAxMzgsIDg3LCAyMTksIDcsIDIsIDI1MSwgNCwgOTEsIDIxOSwgNiwgMjE5LCA3LCAKKyAgICAyLCAxMjMsIDIxOSwgMzEsIDIxMiwgMzUsIDIxOSwgNywgMiwgMTM0LCAyMTksIDMxLCAyMTIsIDM0LCAyNTIsIDExNSwgCisgICAgMjQ1LCAxNzIsIDIyNSwgMjcsIDIzMywgNDIsIDIzMSwgMjExLCAyNDIsIDE4NCwgMjIyLCAyNDcsIDIzMSwgMjExLCAyNDIsIAorICAgIDE4NCwgMjMyLCAxNTIsIDIsIDIzNSwgMjI1LCAyMjUsIDE5OSwgMjUwLCAwLCAyMzIsIDE1MiwgMiwgMjM0LCAxMzgsIDIzNCwgCisgICAgMTM4LCAyMzIsIDE1MSwgMjA0LCAyMzIsIDE1MSwgMjUyLCA0NCwgMjUyLCA0NSwgMiwgMjUxLCA0LCA5MSwgMjUxLCAxOTAsIAorICAgIDIzMiwgMjA0LCA4NywgMjIzLCAxNzQsIDI1MSwgODYsIDI1MiwgMTg1LCAyLCAxNDAsIDgwLCA0OCwgMjQ1LCAxNDMsIDIsIAorICAgIDE0MCwgODAsIDQ4LCAyMjYsIDE5NywgMiwgMjQ1LCAzMSwgMTY0LCAyLCA0MywgNDQsIDgwLCA0OCwgMjE5LCAzOSwgMiwgCisgICAgOTcsIDgwLCA0OCwgMjE2LCAxNCwgMiwgMjE0LCAxNTMsIDgwLCA0OCwgMjI4LCA3NSwgMTIzLCAyMTQsIDE4NCwgMjQ1LCAKKyAgICAxOTEsIDg3LCAyMzQsIDEzNiwgMjE2LCAyNDcsIDIzNSwgMjE5LCAxNiwgMzEsIDcsIDYsIDIzMywgOSwgMjM1LCAyMTksIAorICAgIDE2LCAzMSwgNywgNCwgMjMzLCA5LCAyMzUsIDIxOSwgMTYsIDMxLCAyMjcsIDE5OSwgMjM1LCAyMTksIDE2LCAzMSwgMjE3LCAKKyAgICAxODMsIDIzNSwgMjE5LCAxNiwgMzEsIDcsIDIzMywgOSwgMjQ0LCA5NiwgMjQ1LCAxNzIsIDIxNiwgOSwgMjExLCAxOTksIAorICAgIDI0MiwgMjEsIDIyNywgMTgyLCAyMiwgMjUxLCAxOTcsIDI0MSwgNjYsIDIyNSwgNTAsIDIzMCwgMjI2LCAyMTYsIDI1NSwgCisgICAgMjQ5LCAxMTQsIDI1MiwgMTU5LCAyMTksIDEyNSwgMjI1LCA5LCAyMTgsIDE1NywgMiwgMjMwLCAyMjQsIDI0NywgMTIwLCAKKyAgICAyMzUsIDEzMSwgMTYsIDMxLCAyNTIsIDU3LCAyMTUsIDIyMCwgMjQ1LCAxNTYsIDg1LCA0MiwgMjUxLCA4NiwgNzEsIDQyLCAKKyAgICAyNTEsIDg2LCAyMzMsIDg1LCAyMjMsIDExMSwgMjUwLCAzNSwgMjMzLCA4NSwgMjUxLCAyMDgsIDI1MCwgMzUsIDIzMywgODUsIAorICAgIDIyNiwgMTU3LCAyNDcsIDI0OCwgMjMzLCA4NSwgMjUxLCAyMDgsIDI0NywgMjQ4LCA0LCAyMjYsIDE1NywgMjQ3LCAyNDgsIAorICAgIDQsIDI1MSwgMjA4LCAyNDcsIDI0OCwgMjE0LCAxNjIsIDIyMywgMTExLCAyMTUsIDIyNSwgMjQ2LCAxMDUsIDIyMywgMTExLCAKKyAgICAyMTUsIDIyNSwgMjE0LCAxNjIsIDQsIDIyMywgMTExLCAyMTUsIDIyNSwgMjQ2LCAxMDUsIDQsIDIyMywgMTExLCAyMTUsIAorICAgIDIyNSwgMzcsIDI0OSwgMTMxLCAyMjQsIDI1MiwgMjQ5LCAxMzEsIDIyNCwgMjUzLCAyLCAyNDIsIDI2LCA1MSwgMjQ5LCAKKyAgICAxMzEsIDIyNCwgMjUyLCAyMjgsIDQ5LCA0MywgMjIwLCAxNTMsIDIsIDEzNCwgMjQ3LCAxMTgsIDI1MCwgNCwgMjQ0LCAxOTEsIAorICAgIDEyMywgMjI2LCAyNDIsIDI1MCwgNCwgMjQ0LCAxOTEsIDExMywgMjI2LCAyNDIsIDI1MCwgNCwgMjQ0LCAxOTEsIDEzNCwgCisgICAgMjI2LCAyNDIsIDI1MCwgNCwgMjQ0LCAxOTEsIDI0NCwgMTEsIDIyNiwgMjQyLCAyNTAsIDQsIDI0NCwgMTkxLCAyNDQsIDgxLCAKKyAgICAyMjYsIDI0MiwgMjUwLCA0LCAyNDQsIDE5MSwgMjE5LCAxMjUsIDIyNiwgMjQyLCAyNTAsIDQsIDI0NCwgMTkxLCAyMjAsIAorICAgIDEyMiwgMjI2LCAyNDIsIDI1MCwgNCwgMjQ0LCAxOTEsIDI0NSwgMTkzLCAyMjYsIDI0MiwgMjUwLCA0LCAyNDQsIDE5MSwgCisgICAgMjI4LCAyMDAsIDIyNiwgMjQyLCAyNTAsIDQsIDI0NCwgMTkxLCAyMTYsIDI0OCwgMjI2LCAyNDIsIDI1MCwgNCwgMjQ0LCAKKyAgICAxOTEsIDI0NSwgMTY4LCAyMjYsIDI0MiwgMjUwLCA0LCAyNDQsIDE5MSwgMjE1LCA3NywgMjI2LCAyNDIsIDI1MCwgNCwgCisgICAgMjQ0LCAxOTEsIDIyNiwgMTkyLCAyNTAsIDQsIDI0NCwgMTkxLCAyMTUsIDU2LCAyNTAsIDQsIDI0NCwgMTkxLCAyMTYsIAorICAgIDE0MCwgMjUwLCA0LCAyNDQsIDE5MSwgMjQ0LCA3LCAyNTAsIDQsIDI0NCwgMTkxLCAyNDQsIDc5LCAyNTAsIDQsIDI0NCwgCisgICAgMTkxLCAyMTksIDEyMSwgMjUwLCA0LCAyNDQsIDE5MSwgMjIwLCAxMjEsIDI1MCwgNCwgMjQ0LCAxOTEsIDI0NSwgMTkyLCAKKyAgICAyNTAsIDQsIDI0NCwgMTkxLCAyMjgsIDE5OSwgMjUwLCA0LCAyNDQsIDE5MSwgMjE2LCAyNDYsIDI1MCwgNCwgMjQ0LCAxOTEsIAorICAgIDI0NSwgMTY2LCAyNTAsIDQsIDI0NCwgMTkxLCAyMTUsIDc1LCAyMzAsIDExNywgMjQzLCAyMzAsIDIxNiwgMzYsIDIxNiwgMiwgCisgICAgMjE4LCAxNDgsIDY0LCAyMzIsIDIzOSwgMjE5LCAxNzAsIDY0LCAyMzUsIDEzMiwgMjMwLCAxMDYsIDI0MiwgMTI0LCAyNDQsIAorICAgIDE5MCwgMjQyLCAxMjQsIDI0NCwgMTkxLCAyLCAyMTksIDc0LCAyNDUsIDEzLCAyNDQsIDE5MSwgMiwgMjE3LCAxNCwgNjQsIAorICAgIDIzNSwgNTMsIDIxOSwgNzQsIDI0NCwgMTkxLCAyLCAyMDQsIDIzMCwgMTEwLCAyMTksIDc0LCAyNDQsIDE5MSwgMiwgMjA0LCAKKyAgICAyMzAsIDExMSwgMjIsIDIxOSwgNzQsIDI0NSwgMTMsIDIxOSwgNzQsIDI0NCwgMTkxLCAyLCAyMDQsIDIzMCwgMTExLCAyMiwgCisgICAgMjQ5LCAyMzAsIDIxNywgMjQ3LCAyMTksIDc0LCAyNDQsIDE5MSwgMiwgMjA0LCAyMzAsIDExMSwgMjIsIDIxNiwgMTA0LCAKKyAgICAyNDUsIDEzLCAyMTksIDc0LCAyNDQsIDE5MSwgMiwgMjQyLCAyNSwgMjE5LCA3NCwgMjQ0LCAxOTEsIDIsIDI0MCwgMjQ3LCAKKyAgICAyMTEsIDIzMywgMjQ0LCAxOTAsIDIxOSwgNzQsIDI0NCwgMTkxLCAyLCAyMTksIDc0LCAyNDUsIDEzLCAyNDQsIDE5MSwgCisgICAgMjIxLCAyMTcsIDI0OCwgNjIsIDI0NCwgMzMsIDIyMywgODgsIDI0NCwgMTkwLCAyMTksIDc0LCAyNDQsIDE5MSwgMiwgMjQxLCAKKyAgICAyMjYsIDI0NSwgMTMsIDIxOSwgNzQsIDI0NCwgMTkxLCAyLCAyMTgsIDM0LCAyMTksIDczLCAyNDQsIDE5MCwgMjI5LCA4NywgCisgICAgMjQ0LCAxOTAsIDI0NSwgMjMsIDI0NCwgMTkwLCAyMTQsIDE4OCwgMjQ0LCAxOTAsIDI0NCwgMTkxLCAyLCAyNDksIDIzMCwgCisgICAgMjE3LCAyNDcsIDIyNSwgMTkyLCAyNDQsIDE5MCwgMjQ5LCAyMDEsIDI0NCwgMTkwLCAyNDksIDIwMiwgMjQ0LCAxOTAsIAorICAgIDIzNCwgNjIsIDI0NCwgMTkwLCAyNDQsIDE5MSwgMjE2LCAxMzcsIDExNSwgMjM0LCA2MywgMjM0LCA2MiwgMjQ0LCAxOTEsIAorICAgIDIsIDIxOSwgNzQsIDI0NSwgMTMsIDIzNCwgNjIsIDI0NCwgMTkxLCAyLCAyNTAsIDAsIDI0NSwgMTMsIDI0NCwgMTkxLCAyLCAKKyAgICAyMTgsIDg4LCAyMTYsIDE5LCAyNDQsIDE5MSwgMiwgMjE4LCA4OCwgMjE2LCAyMCwgMjIsIDIxMSwgMjMzLCAyNDUsIDE1LCAKKyAgICAyNDQsIDE5MSwgMiwgMjE4LCA4OCwgMjE2LCAyMCwgMjIsIDIxNiwgMTA0LCAyNDUsIDEzLCAyNDcsIDE5MiwgMjQ0LCAxOTAsIAorICAgIDIxMSwgMjA0LCAyNDQsIDE5MCwgMjU0LCAxMDgsIDI0NCwgMTkwLCAyMjQsIDIyNywgMjQ0LCAxOTAsIDI0OSwgMTE2LCAKKyAgICAyNDQsIDE5MCwgMjI1LCAxNzAsIDI0NCwgMTkwLCAyNDQsIDE5MSwgMiwgMjMyLCAxMjYsIDY0LCAyMTUsIDIwNCwgMjQ3LCAKKyAgICAxOTIsIDI1MSwgODgsIDIyMywgODgsIDI0NCwgMTkwLCAyNDMsIDIzOSwgMjQ0LCAxOTEsIDIsIDIwNCwgMjMwLCAxMTAsIAorICAgIDI1NCwgMTA2LCAyNDQsIDE5MCwgMjQ0LCAxNTIsIDI0NCwgMTkwLCAyMTIsIDIwLCAyNDQsIDE5MCwgMjE5LCA5MSwgMjQ0LCAKKyAgICAxOTAsIDIxNiwgNzEsIDI0NCwgMTkwLCAyNDIsIDEyNSwgMjQ0LCAxOTAsIDIzMiwgMTE0LCAyNDksIDExNiwgMjQ0LCAxOTAsIAorICAgIDI0NCwgMTkxLCAyLCAyMDQsIDIzMCwgMTEwLCAyNDAsIDIwMywgMjQ0LCAxOTAsIDI0NCwgMTkxLCAyLCAyMDQsIDIzMCwgCisgICAgMTExLCAyMiwgMjQ5LCAyMzAsIDIxNywgMjQ3LCAyNDQsIDE5MSwgMjIxLCAxOTAsIDIzNiwgMCwgMjQ0LCAxNTMsIDI1MywgCisgICAgMjEzLCAyNDQsIDE5MCwgMjQ0LCA0OSwgMjQ0LCAxOTAsIDIxOSwgOTIsIDI0NCwgMTkwLCAyNDcsIDE2NSwgMjQ0LCAxOTAsIAorICAgIDI0NCwgMTkxLCAyMTEsIDIzMCwgMjMwLCAxMTAsIDI0NCwgMTkxLCAyLCAyMzEsIDg0LCAyMzEsIDE0NCwgMjQyLCAxMjQsIAorICAgIDI1MCwgMjI1LCAyNDQsIDE5MSwgMiwgMjE5LCA3NCwgMjQ1LCAxMywgMjUwLCAyMjUsIDI0NCwgMTkxLCAyLCAyMTcsIDE0LCAKKyAgICA2NCwgMjM1LCA1MywgMjE5LCA3NCwgMjUwLCAyMjUsIDI0NCwgMTkxLCAyLCAyMDQsIDIzMCwgMTEwLCAyMTksIDc0LCAyNTAsIAorICAgIDIyNSwgMjQ0LCAxOTEsIDIsIDI0MSwgMjI2LCAyNDUsIDEzLCAyNTAsIDIyNSwgMjQ0LCAxOTEsIDIsIDIxMSwgMTk2LCAKKyAgICAyMTksIDc1LCAyMzQsIDYyLCAyNTAsIDIyNSwgMjQ0LCAxOTEsIDIsIDI1MCwgMCwgMjQ1LCAxMywgMjI0LCAyMjcsIDI1MCwgCisgICAgMjI1LCAyNDQsIDE5MCwgMjQ5LCAxMTYsIDI1MCwgMjI1LCAyNDQsIDE5MCwgMjEyLCAyMCwgMjUwLCAyMjUsIDI0NCwgMTkwLCAKKyAgICAyNDQsIDE5MSwgMiwgMjI4LCA3NSwgMjQyLCAxNjMsIDI0MywgMzQsIDI0NCwgMTkxLCAyLCAyMjYsIDIxNSwgMjQzLCAzNCwgCisgICAgMjI1LCAxNjgsIDI1MSwgMTY4LCAyNDgsIDc1LCAyMjEsIDE2OSwgMjMwLCAxNDUsIDI0MSwgMjI5LCAyMzAsIDE0NSwgMjE5LCAKKyAgICA4LCAyMzAsIDE0NSwgMjQyLCA1LCAyMjUsIDE2OCwgMjIzLCAxNTYsIDEyMywgMjQyLCAxNSwgMjI1LCAxNjgsIDIyMywgCisgICAgMTU2LCAyNTEsIDE3OCwgMjQyLCAxMSwgMjM2LCAwLCAyNTAsIDE3OSwgMjI1LCAxNjgsIDI0MywgMjM4LCAyMjUsIDE2OCwgCisgICAgMiwgMjI0LCAyMjcsIDI0NCwgMTkwLCAyMjUsIDE2OCwgMiwgMjQ0LCA0MSwgMjQyLCAxMCwgMjIyLCAyMDMsIDI0MSwgMjE0LCAKKyAgICAyMTgsIDE0MywgMjMyLCAxNDksIDIyMywgMTYyLCAyNTAsIDI0NCwgMjQxLCAxNjIsIDIxNSwgMjQ4LCAyNDEsIDE2MiwgCisgICAgMjE1LCAyNDksIDIsIDI1MSwgMTE0LCAyMjgsIDUzLCAyMTUsIDI0OCwgMjMxLCAzMiwgMTkyLCAyMjMsIDE2MywgMjE4LCAKKyAgICAxNDksIDIxNSwgMjQ2LCAyMTUsIDI0NywgMjUwLCAyNDQsIDI1MSwgOTIsIDIyNiwgMTk0LCAyNTEsIDkyLCAyMTUsIDIwMSwgCisgICAgMjUxLCA5MywgMjE4LCAxMjksIDIzMCwgMTg3LCAyNTQsIDEzMCwgMjQ0LCA5NywgMjQ1LCAxMzcsIDIyNCwgMjU1LCAyNTAsIAorICAgIDI0NCwgMjI2LCAxOTQsIDIyNCwgMjU1LCAyNTAsIDI0NCwgMjE3LCAzMiwgMjI2LCAxOTQsIDIxNywgMzIsIDI1MywgMTgwLCAKKyAgICAyMjYsIDE5NCwgMjUzLCAxODAsIDIyMywgMTE4LCAyMTMsIDI0NywgMjQ4LCA1OCwgMjE1LCAxOTIsIDI1MywgMjQyLCAyMzIsIAorICAgIDExNywgMjE1LCAyNTQsIDIzMCwgMTM5LCAyMzAsIDExNiwgMjIzLCAxNjEsIDIxOCwgNiwgMjIzLCAxNjEsIDIzMCwgMTE2LCAKKyAgICAyNTEsIDI4LCAyNTQsIDIyOSwgMjE1LCAyNDUsIDIyMCwgMTYsIDIyMiwgMTgyLCAyMTksIDEsIDIwMywgMjE1LCAyNTIsIAorICAgIDIzMiwgMjMwLCA2NywgMjE1LCAyNTIsIDIzMiwgMjMwLCAyNDksIDE5MCwgNTAsIDIyNCwgMjU1LCAyNTAsIDIyOSwgMjIzLCAKKyAgICA0NCwgMjMyLCAyMzAsIDIxNSwgMjIyLCAyNDQsIDc0LCAyMjYsIDE5NywgMjI0LCAyMzgsIDI0NywgMTIzLCAyMjgsIDc1LCAKKyAgICAyNDUsIDEyNSwgNTAsIDIxOSwgNzIsIDg3LCAyMjgsIDc1LCAyMTksIDcyLCA4NywgMjI0LCAxMjIsIDIzMiwgMTkzLCAyMzYsIAorICAgIDAsIDIzNSwgMTU3LCAyMjUsIDQxLCA4NywgMjQ3LCAxNDYsIDIyOCwgNTIsIDIzMiwgMTkzLCA4NywgMjI0LCAyMzIsIDIxMiwgCisgICAgNDEsIDg3LCAyMjgsIDY2LCAyMTIsIDQxLCA4NywgMjUyLCAyLCAyMjgsIDc1LCAyNTIsIDEsIDI1MiwgMCwgMjMwLCAxMTYsIAorICAgIDI1MiwgMCwgMjI1LCAyMTMsIDIyOCwgNzUsIDIyNSwgMjEyLCAyNTAsIDEwMCwgMjQ5LCAxMjQsIDIzMSwgNTYsIDg3LCAKKyAgICAyMTEsIDIxOCwgODcsIDIyMywgNTksIDI1MiwgMTg3LCA4NywgMjE2LCAzNywgMjEyLCA0MSwgMjQ5LCAyNTMsIDIxOSwgCisgICAgMjM0LCAyNTIsIDExOCwgMjUyLCAxMTYsIDIyNSwgMjQyLCAyNDksIDE3NywgMjQ5LCA4NiwgMjUyLCAxNjksIDI1MCwgMjIsIAorICAgIDQzLCAyMzIsIDkwLCAxMDgsIDE2LCAzMSwgMjI0LCAzLCAxMDgsIDE2LCAzMSwgMjU0LCAxOTIsIDEwOCwgMTYsIDMxLCAKKyAgICAyNDQsIDk2LCAxMDgsIDE2LCAzMSwgMjQ1LCAyMjMsIDEwOCwgMTYsIDMxLCAyMTIsIDQwLCAxMDgsIDE2LCAzMSwgMjU0LCAKKyAgICA0MywgMTA4LCAxNiwgMzEsIDI1NCwgNDQsIDIyMywgMTA1LCAxMDgsIDE2LCAzMSwgMjU0LCA0NCwgMjIzLCAxMDQsIDEwOCwgCisgICAgMTYsIDMxLCAyNTQsIDQ0LCAyMTMsIDE0MywgMTA4LCAxNiwgMzEsIDI1NCwgNDQsIDIxMywgMTQyLCAxMDgsIDE2LCAzMSwgCisgICAgMjEzLCAxNTcsIDEwOCwgMTYsIDMxLCAyMTMsIDE1NiwgMTA4LCAxNiwgMzEsIDIxMywgMTU1LCAxMDgsIDE2LCAzMSwgMjE4LCAKKyAgICA0NCwgMTA4LCAxNiwgMzEsIDIyNSwgMTI1LCAyMTgsIDQ0LCAxMDgsIDE2LCAzMSwgODUsIDIxOCwgNDQsIDEwOCwgMTYsIAorICAgIDMxLCAyMzEsIDU1LCAyMTgsIDcxLCAxMDgsIDE2LCAzMSwgMjMxLCA1NSwgMjE4LCA3MCwgMTA4LCAxNiwgMzEsIDIzMSwgCisgICAgNTUsIDIxOCwgNjksIDEwOCwgMTYsIDMxLCAyNTAsIDM4LCAxMDgsIDE2LCAzMSwgMjIyLCAxLCAxMDgsIDE2LCAzMSwgMjI4LCAKKyAgICAxODgsIDEwOCwgMTYsIDMxLCAyMTMsIDE0MSwgMTA4LCAxNiwgMzEsIDIxMywgMTQwLCAxMDgsIDE2LCAzMSwgMjIyLCAyMDQsIAorICAgIDIyMiwgMSwgMTA4LCAxNiwgMzEsIDIyMiwgMjA0LCAyMjIsIDAsIDEwOCwgMTYsIDMxLCAyNDIsIDE2NiwgMTA4LCAxNiwgCisgICAgMzEsIDIxOSwgMTY2LCAxMDgsIDE2LCAzMSwgMjM1LCAxNzcsIDIyNiwgMTUzLCAxMDgsIDE2LCAzMSwgMjM1LCAxNzcsIAorICAgIDIyNiwgMTUyLCAxMDgsIDE2LCAzMSwgMjQ5LCAxMzQsIDY0LCAyMzUsIDE3NiwgMTA4LCAxNiwgMzEsIDIyMywgMTAxLCA2NCwgCisgICAgMjM1LCAxNzYsIDEwOCwgMTYsIDMxLCAyNDksIDE2OCwgMjI2LCAxNTMsIDEwOCwgMTYsIDMxLCAyMzUsIDE3NSwgMjI2LCAKKyAgICAxNTMsIDEwOCwgMTYsIDMxLCAyMTgsIDcyLCA2NCwgMjQ5LCAxNjcsIDEwOCwgMTYsIDMxLCAyNDksIDEzNCwgNjQsIDI0OSwgCisgICAgMTY3LCAxMDgsIDE2LCAzMSwgMjQ5LCAxMzQsIDY0LCAyNDksIDE2NiwgMTA4LCAxNiwgMzEsIDI0OSwgMTY4LCAyNTQsIDgzLCAKKyAgICAxMDgsIDE2LCAzMSwgMjIyLCAyLCA2NCwgMjQ5LCAxNjgsIDI1NCwgODMsIDEwOCwgMTYsIDMxLCAyMTgsIDcyLCA2NCwgCisgICAgMjIyLCAyLCA2NCwgMjQ5LCAxNjcsIDEwOCwgMTYsIDMxLCAyMTMsIDI0MywgMTA4LCAxNiwgMzEsIDIxNiwgODQsIDIyNiwgCisgICAgMTUzLCAxMDgsIDE2LCAzMSwgMjMzLCA1NywgMjI2LCAxNTMsIDEwOCwgMTYsIDMxLCAyNTQsIDgyLCAyMjYsIDE1MywgMTA4LCAKKyAgICAxNiwgMzEsIDIxOCwgNzIsIDY0LCAyNTQsIDgxLCAxMDgsIDE2LCAzMSwgMjIyLCAyLCA2NCwgMjU0LCA4MSwgMTA4LCAxNiwgCisgICAgMzEsIDIxOCwgNzIsIDY0LCAyMjIsIDIsIDY0LCAyNTQsIDgxLCAxMDgsIDE2LCAzMSwgMjEzLCAxNTgsIDY0LCAyNTQsIDgxLCAKKyAgICAxMDgsIDE2LCAzMSwgMjIzLCAxMDEsIDY0LCAyNTQsIDgxLCAxMDgsIDE2LCAzMSwgMjIzLCAxMDEsIDY0LCAyNTQsIDgwLCAKKyAgICAxMDgsIDE2LCAzMSwgMjIzLCAxMDAsIDEwOCwgMTYsIDMxLCAyMjMsIDk5LCAxMDgsIDE2LCAzMSwgMjIzLCA5OCwgMTA4LCAKKyAgICAxNiwgMzEsIDIyMywgOTcsIDEwOCwgMTYsIDMxLCAyNTQsIDE1NywgMTA4LCAxNiwgMzEsIDI1NCwgMTU2LCAxMDgsIDE2LCAKKyAgICAzMSwgMjMxLCAxNjMsIDEwOCwgMTYsIDMxLCAyMjIsIDcsIDEwOCwgMTYsIDMxLCAyNTMsIDI0NiwgMTA4LCAxNiwgMzEsIAorICAgIDIyMywgMTI1LCAxMDgsIDE2LCAzMSwgMjIzLCAxMjQsIDEwOCwgMTYsIDMxLCAyNTMsIDE4MywgMTA4LCAxNiwgMzEsIDI1MSwgCisgICAgMjI5LCAyMjYsIDE1MywgMTA4LCAxNiwgMzEsIDIxNywgNDksIDEwOCwgMTYsIDMxLCAyMTcsIDQ4LCAxMDgsIDE2LCAzMSwgCisgICAgMjI0LCA4LCAyMzIsIDIyMiwgMTA4LCAxNiwgMzEsIDI1MSwgMTgzLCAxMDgsIDE2LCAzMSwgMjUxLCAxODIsIDEwOCwgMTYsIAorICAgIDMxLCAyNTEsIDE4MSwgMTA4LCAxNiwgMzEsIDI1NCwgMTM4LCAxMDgsIDE2LCAzMSwgMjI2LCAyMTgsIDEwOCwgMTYsIDMxLCAKKyAgICAyMTgsIDI0OCwgMTA4LCAxNiwgMzEsIDIxNiwgODIsIDEwOCwgMTYsIDMxLCAyNDIsIDk2LCAxMDgsIDE2LCAzMSwgMjEyLCAKKyAgICAyOCwgMTA4LCAxNiwgMzEsIDIyNCwgMjI2LCAxMDgsIDE2LCAzMSwgMjUxLCAxNCwgMTA4LCAxNiwgMzEsIDIxNSwgODYsIAorICAgIDEwOCwgMTYsIDMxLCAyNTAsIDI0NiwgMjMwLCAxMjIsIDEwOCwgMTYsIDMxLCAyMjEsIDIwMiwgNjQsIDIzNSwgNTUsIDEwOCwgCisgICAgMTYsIDMxLCAyNTEsIDI1LCAxMDgsIDE2LCAzMSwgMjE1LCAyMTksIDEwOCwgMTYsIDMxLCAyMTgsIDE1NCwgMjE1LCAyMTksIAorICAgIDEwOCwgMTYsIDMxLCAyMzIsIDE0OCwgMTA4LCAxNiwgMzEsIDIxOSwgNTYsIDEwOCwgMTYsIDMxLCAyMTQsIDE0MiwgMTA4LCAKKyAgICAxNiwgMzEsIDI0MCwgMjQ2LCAyNDYsIDY0LCAxMDgsIDE2LCAzMSwgMjUzLCAyMjcsIDEwOCwgMTYsIDMxLCAyMjQsIDIzNCwgCisgICAgMjUzLCAyMjcsIDEwOCwgMTYsIDMxLCAyNTEsIDE0MiwgMTA4LCAxNiwgMzEsIDIyNCwgMjI1LCAyNTEsIDE0MiwgMTA4LCAKKyAgICAxNiwgMzEsIDI1NCwgMTM1LCAxMDgsIDE2LCAzMSwgMjE4LCAxMTcsIDIxOCwgMjYsIDIxOCwgMTE2LCAxMDgsIDE2LCAzMSwgCisgICAgMjE4LCAxMTcsIDIxOCwgMjYsIDIxOCwgMTE1LCAxMDgsIDE2LCAzMSwgMjE4LCA2OCwgMTA4LCAxNiwgMzEsIDIyNCwgMjAwLCAKKyAgICAxMDgsIDE2LCAzMSwgMjQ3LCAxODEsIDEwOCwgMTYsIDMxLCAyNDcsIDE4MywgMTA4LCAxNiwgMzEsIDI0NywgMTgyLCAxMDgsIAorICAgIDE2LCAzMSwgMjI0LCAxMzEsIDEwOCwgMTYsIDMxLCAyMjQsIDEyMCwgMTA4LCAxNiwgMzEsIDI0OSwgMTIyLCAxMDgsIDE2LCAKKyAgICAzMSwgMjQ5LCAxMjEsIDEwOCwgMTYsIDMxLCAyNDksIDEyMCwgMTA4LCAxNiwgMzEsIDI0OSwgMTE5LCAxMDgsIDE2LCAzMSwgCisgICAgMjQ5LCAxMTgsIDEwOCwgMTYsIDMxLCAyNTQsIDE2OSwgMTA4LCAxNiwgMzEsIDI1MiwgMTE5LCA2NCwgMjMxLCAxNDksIAorICAgIDEwOCwgMTYsIDMxLCAyNTIsIDExOSwgNjQsIDIxNCwgMTcsIDEwOCwgMTYsIDMxLCAyMjMsIDU3LCAxMDgsIDE2LCAzMSwgCisgICAgMjQwLCAyMzgsIDEwOCwgMTYsIDMxLCAyMjgsIDIxMiwgMTA4LCAxNiwgMzEsIDI0OCwgMTQ1LCAxMDgsIDE2LCAzMSwgMjMwLCAKKyAgICAxMzQsIDEwOCwgMTYsIDMxLCAxNjMsIDI0NiwgOTQsIDEwOCwgMTYsIDMxLCAxNjMsIDIyNiwgMTMyLCA5LCAxNCwgMjQwLCAKKyAgICAxMDIsIDksIDE0LCAyNDAsIDEwMSwgOSwgMTQsIDI0MCwgMTAwLCA5LCAxNCwgMjQwLCA5OSwgOSwgMTQsIDI0MCwgOTgsIDksIAorICAgIDE0LCAyNDAsIDk3LCA5LCAxNCwgMjQwLCA5NiwgOSwgMTQsIDI0MCwgOTUsIDksIDE0LCAyNDAsIDk0LCA5LCAxNCwgMjQwLCAKKyAgICA5MywgOSwgMTQsIDI0MCwgOTIsIDksIDE0LCAyNDAsIDkxLCA5LCAxNCwgMjQwLCA5MCwgOSwgMTQsIDI0MCwgODksIDksIAorICAgIDE0LCAyNDAsIDg4LCA5LCAxNCwgMjQwLCA4NywgOSwgMTQsIDI0MCwgODYsIDksIDE0LCAyNDAsIDg1LCA5LCAxNCwgMjQwLCAKKyAgICA4NCwgOSwgMTQsIDI0MCwgODMsIDksIDE0LCAyNDAsIDgyLCA5LCAxNCwgMjQwLCA4MSwgOSwgMTQsIDI0MCwgODAsIDksIAorICAgIDE0LCAyNDAsIDc5LCA5LCAxNCwgMjQwLCA3OCwgOSwgMTQsIDI0MCwgNzcsIDksIDE0LCAyNDAsIDc2LCA5LCAxNCwgMjQwLCAKKyAgICA3NSwgOSwgMTQsIDI0MCwgNzQsIDksIDE0LCAyNDAsIDczLCA5LCAxNCwgMjQwLCA3MiwgOSwgMTQsIDI0MCwgNzEsIDksIAorICAgIDE0LCAyNDAsIDcwLCA5LCAxNCwgMjQwLCA2OSwgOSwgMTQsIDI0MCwgNjgsIDksIDE0LCAyNDAsIDY3LCA5LCAxNCwgMjQwLCAKKyAgICA2NiwgOSwgMTQsIDI0MCwgNjUsIDksIDE0LCAyNDAsIDY0LCA5LCAxNCwgMjQwLCA2MywgOSwgMTQsIDI0MCwgNjIsIDksIAorICAgIDE0LCAyNDAsIDYxLCA5LCAxNCwgMjQwLCA2MCwgOSwgMTQsIDI0MCwgNTksIDksIDE0LCAyNDAsIDU4LCA5LCAxNCwgMjQwLCAKKyAgICA1NywgOSwgMTQsIDI0MCwgNTYsIDksIDE0LCAyNDAsIDU1LCA5LCAxNCwgMjQwLCA1NCwgOSwgMTQsIDI0MCwgNTMsIDksIAorICAgIDE0LCAyNDAsIDUyLCA5LCAxNCwgMjQwLCA1MSwgOSwgMTQsIDI0MCwgNTAsIDksIDE0LCAyNDAsIDQ5LCA5LCAxNCwgMjQwLCAKKyAgICA0OCwgOSwgMTQsIDI0MCwgNDcsIDksIDE0LCAyNDAsIDQ2LCA5LCAxNCwgMjQwLCA0NSwgOSwgMTQsIDI0MCwgNDQsIDksIAorICAgIDE0LCAyNDAsIDQzLCA5LCAxNCwgMjQwLCA0MiwgOSwgMTQsIDI0MCwgNDEsIDksIDE0LCAyNDAsIDQwLCA5LCAxNCwgMjQwLCAKKyAgICAzOSwgOSwgMTQsIDI0MCwgMzgsIDksIDE0LCAyNDAsIDM3LCA5LCAxNCwgMjQwLCAzNiwgOSwgMTQsIDI0MCwgMzUsIDksIAorICAgIDE0LCAyNDAsIDM0LCA5LCAxNCwgMjQwLCAzMywgOSwgMTQsIDI0MCwgMzIsIDksIDE0LCAyNDAsIDMxLCA5LCAxNCwgMjQwLCAKKyAgICAzMCwgOSwgMTQsIDI0MCwgMjksIDksIDE0LCAyNDAsIDI4LCA5LCAxNCwgMjQwLCAyNywgOSwgMTQsIDI0MCwgMjYsIDksIAorICAgIDE0LCAyNDAsIDI1LCA5LCAxNCwgMjQwLCAyNCwgOSwgMTQsIDI0MCwgMjMsIDksIDE0LCAyNDAsIDIyLCA5LCAxNCwgMjQwLCAKKyAgICAyMSwgOSwgMTQsIDI0MCwgMjAsIDksIDE0LCAyNDAsIDE5LCA5LCAxNCwgMjQwLCAxOCwgOSwgMTQsIDI0MCwgMTcsIDksIAorICAgIDE0LCAyNDAsIDE2LCA5LCAxNCwgMjQwLCAxNSwgOSwgMTQsIDI0MCwgMTQsIDksIDE0LCAyNDAsIDEzLCA5LCAxNCwgMjQwLCAKKyAgICAxMiwgOSwgMTQsIDI0MCwgMTEsIDksIDE0LCAyNDAsIDEwLCA5LCAxNCwgMjQwLCA5LCA5LCAxNCwgMjQwLCA4LCA5LCAxNCwgCisgICAgMjQwLCA3LCA5LCAxNCwgMjQwLCA2LCA5LCAxNCwgMjQwLCA1LCA5LCAxNCwgMjQwLCA0LCA5LCAxNCwgMjQwLCAzLCA5LCAKKyAgICAxNCwgMjQwLCAyLCA5LCAxNCwgMjQwLCAxLCA5LCAxNCwgMjQwLCAwLCA5LCAxNCwgMjM5LCAyNTUsIDksIDE0LCAyMzksIAorICAgIDI1NCwgOSwgMTQsIDIzOSwgMjUzLCA5LCAxNCwgMjM5LCAyNTIsIDksIDE0LCAyMzksIDI1MSwgOSwgMTQsIDIzOSwgMjUwLCAKKyAgICA5LCAxNCwgMjM5LCAyNDksIDksIDE0LCAyMzksIDI0OCwgOSwgMTQsIDIzOSwgMjQ3LCA5LCAxNCwgMjM5LCAyNDYsIDksIAorICAgIDE0LCAyMzksIDI0NSwgOSwgMTQsIDIzOSwgMjQ0LCA5LCAxNCwgMjM5LCAyNDMsIDksIDE0LCAyMzksIDI0MiwgOSwgMTQsIAorICAgIDIzOSwgMjQxLCA5LCAxNCwgMjM5LCAyNDAsIDksIDE0LCAyMzksIDIzOSwgOSwgMTQsIDIzOSwgMjM4LCA5LCAxNCwgMjM5LCAKKyAgICAyMzcsIDksIDE0LCAyMzksIDIzNiwgOSwgMTQsIDIzOSwgMjM1LCA5LCAxNCwgMjM5LCAyMzQsIDksIDE0LCAyMzksIDIzMywgCisgICAgOSwgMTQsIDIzOSwgMjMyLCA5LCAxNCwgMjM5LCAyMzEsIDksIDE0LCAyMzksIDIzMCwgOSwgMTQsIDIzOSwgMjI5LCA5LCAKKyAgICAxNCwgMjM5LCAyMjgsIDksIDE0LCAyMzksIDIyNywgOSwgMTQsIDIzOSwgMjI2LCA5LCAxNCwgMjM5LCAyMjUsIDksIDE0LCAKKyAgICAyMzksIDIyNCwgOSwgMTQsIDIzOSwgMjIzLCA5LCAxNCwgMjM5LCAyMjIsIDksIDE0LCAyMzksIDIyMSwgOSwgMTQsIDIzOSwgCisgICAgMjIwLCA5LCAxNCwgMjM5LCAyMTksIDksIDE0LCAyMzksIDIxOCwgOSwgMTQsIDIzOSwgMjE3LCA5LCAxNCwgMjM5LCAyMTYsIAorICAgIDksIDE0LCAyMzksIDIxNSwgOSwgMTQsIDIzOSwgMjE0LCA5LCAxNCwgMjM5LCAyMTMsIDksIDE0LCAyMzksIDIxMiwgOSwgCisgICAgMTQsIDIzOSwgMjExLCA5LCAxNCwgMjM5LCAyMTAsIDksIDE0LCAyMzksIDIwOSwgOSwgMTQsIDIzOSwgMjA4LCA5LCAxNCwgCisgICAgMjM5LCAyMDcsIDksIDE0LCAyMzksIDIwNiwgOSwgMTQsIDIzOSwgMjA1LCA5LCAxNCwgMjM5LCAyMDQsIDksIDE0LCAyMzksIAorICAgIDIwMywgOSwgMTQsIDIzOSwgMjAyLCA5LCAxNCwgMjM5LCAyMDEsIDksIDE0LCAyMzksIDIwMCwgOSwgMTQsIDIzOSwgMTk5LCAKKyAgICA5LCAxNCwgMjM5LCAxOTgsIDksIDE0LCAyMzksIDE5NywgOSwgMTQsIDIzOSwgMTk2LCA5LCAxNCwgMjM5LCAxOTUsIDksIAorICAgIDE0LCAyMzksIDE5NCwgOSwgMTQsIDIzOSwgMTkzLCA5LCAxNCwgMjM5LCAxOTIsIDksIDE0LCAyMzksIDE5MSwgOSwgMTQsIAorICAgIDIzOSwgMTkwLCA5LCAxNCwgMjM5LCAxODksIDksIDE0LCAyMzksIDE4OCwgOSwgMTQsIDIzOSwgMTg3LCA5LCAxNCwgMjM5LCAKKyAgICAxODYsIDksIDE0LCAyMzksIDE4NSwgOSwgMTQsIDIzOSwgMTg0LCA5LCAxNCwgMjM5LCAxODMsIDksIDE0LCAyMzksIDE4MiwgCisgICAgOSwgMTQsIDIzOSwgMTgxLCA5LCAxNCwgMjM5LCAxODAsIDksIDE0LCAyMzksIDE3OSwgOSwgMTQsIDIzOSwgMTc4LCA5LCAKKyAgICAxNCwgMjM5LCAxNzcsIDksIDE0LCAyMzksIDE3NiwgOSwgMTQsIDIzOSwgMTc1LCA5LCAxNCwgMjM5LCAxNzQsIDksIDE0LCAKKyAgICAyMzksIDE3MywgOSwgMTQsIDIzOSwgMTcyLCA5LCAxNCwgMjM5LCAxNzEsIDksIDE0LCAyMzksIDE3MCwgOSwgMTQsIDIzOSwgCisgICAgMTY5LCA5LCAxNCwgMjM5LCAxNjgsIDksIDE0LCAyMzksIDE2NywgOSwgMTQsIDIzOSwgMTY2LCA5LCAxNCwgMjM5LCAxNjUsIAorICAgIDksIDE0LCAyMzksIDE2NCwgOSwgMTQsIDIzOSwgMTYzLCA5LCAxNCwgMjM5LCAxNjIsIDksIDE0LCAyMzksIDE2MSwgOSwgCisgICAgMTQsIDIzOSwgMTYwLCA5LCAxNCwgMjM5LCAxNTksIDksIDE0LCAyMzksIDE1OCwgOSwgMTQsIDIzOSwgMTU3LCA5LCAxNCwgCisgICAgMjM5LCAxNTYsIDksIDE0LCAyMzksIDE1NSwgOSwgMTQsIDIzOSwgMTU0LCA5LCAxNCwgMjM5LCAxNTMsIDksIDE0LCAyMzksIAorICAgIDE1MiwgOSwgMTQsIDIzOSwgMTUxLCA5LCAxNCwgMjM5LCAxNTAsIDksIDE0LCAyMzksIDE0OSwgOSwgMTQsIDIzOSwgMTQ4LCAKKyAgICA5LCAxNCwgMjM5LCAxNDcsIDksIDE0LCAyMzksIDE0NiwgOSwgMTQsIDIzOSwgMTQ1LCA5LCAxNCwgMjM5LCAxNDQsIDksIAorICAgIDE0LCAyMzksIDE0MywgOSwgMTQsIDIzOSwgMTQyLCA5LCAxNCwgMjM5LCAxNDEsIDksIDE0LCAyMzksIDE0MCwgOSwgMTQsIAorICAgIDIzOSwgMTM5LCA5LCAxNCwgMjM5LCAxMzgsIDksIDE0LCAyMzksIDEzNywgOSwgMTQsIDIzOSwgMTM2LCA5LCAxNCwgMjM5LCAKKyAgICAxMzUsIDksIDE0LCAyMzksIDEzNCwgOSwgMTQsIDIzOSwgMTMzLCA5LCAxNCwgMjM5LCAxMzIsIDksIDE0LCAyMzksIDEzMSwgCisgICAgOSwgMTQsIDIzOSwgMTMwLCA5LCAxNCwgMjM5LCAxMjksIDksIDE0LCAyMzksIDEyOCwgOSwgMTQsIDIzOSwgMTI3LCA5LCAKKyAgICAxNCwgMjM5LCAxMjYsIDksIDE0LCAyMzksIDEyNSwgOSwgMTQsIDIzOSwgMTI0LCA5LCAxNCwgMjM5LCAxMjMsIDksIDE0LCAKKyAgICAyMzksIDEyMiwgOSwgMTQsIDIzOSwgMTIxLCA5LCAxNCwgMjM5LCAxMjAsIDksIDE0LCAyMzksIDExOSwgOSwgMTQsIDIzOSwgCisgICAgMTE4LCA5LCAxNCwgMjM5LCAxMTcsIDksIDE0LCAyMzksIDExNiwgOSwgMTQsIDIzOSwgMTE1LCA5LCAxNCwgMjM5LCAxMTQsIAorICAgIDksIDE0LCAyMzksIDExMywgOSwgMTQsIDIzOSwgMTEyLCA5LCAxNCwgMjM5LCAxMTEsIDksIDE0LCAyMzksIDExMCwgOSwgCisgICAgMTQsIDIzOSwgMTA5LCA5LCAxNCwgMjM5LCAxMDgsIDksIDE0LCAyMzksIDEwNywgOSwgMTQsIDIzOSwgMTA2LCA5LCAxNCwgCisgICAgMjM5LCAxMDUsIDksIDE0LCAyMzksIDEwNCwgOSwgMTQsIDIzOSwgMTAzLCA5LCAxNCwgMjM5LCAxMDIsIDksIDE0LCAyMzksIAorICAgIDEwMSwgOSwgMTQsIDIzOSwgMTAwLCA5LCAxNCwgMjM5LCA5OSwgOSwgMTQsIDIzOSwgOTgsIDksIDE0LCAyMzksIDk3LCA5LCAKKyAgICAxNCwgMjM5LCA5NiwgOSwgMTQsIDIzOSwgOTUsIDksIDE0LCAyMzksIDk0LCA5LCAxNCwgMjM5LCA5MywgOSwgMTQsIDIzOSwgCisgICAgOTIsIDksIDE0LCAyMzksIDkxLCA5LCAxNCwgMjM5LCA5MCwgOSwgMTQsIDIzOSwgODksIDksIDE0LCAyMzksIDg4LCA5LCAKKyAgICAxNCwgMjM5LCA4NywgOSwgMTQsIDIzOSwgODYsIDksIDE0LCAyMzksIDg1LCA5LCAxNCwgMjM5LCA4NCwgOSwgMTQsIDIzOSwgCisgICAgODMsIDksIDE0LCAyMzksIDgyLCA5LCAxNCwgMjM5LCA4MSwgOSwgMTQsIDIzOSwgODAsIDksIDE0LCAyMzksIDc5LCA5LCAKKyAgICAxNCwgMjM5LCA3OCwgOSwgMTQsIDIzOSwgNzcsIDksIDE0LCAyMzksIDc2LCA5LCAxNCwgMjM5LCA3NSwgOSwgMTQsIDIzOSwgCisgICAgNzQsIDksIDE0LCAyMzksIDczLCA5LCAxNCwgMjM5LCA3MiwgOSwgMTQsIDIzOSwgNzEsIDksIDE0LCAyMzksIDcwLCA5LCAKKyAgICAxNCwgMjM5LCA2OSwgOSwgMTQsIDIzOSwgNjgsIDksIDE0LCAyMzksIDY3LCA5LCAxNCwgMjM5LCA2NiwgOSwgMTQsIDIzOSwgCisgICAgNjUsIDksIDE0LCAyMzksIDY0LCA5LCAxNCwgMjM5LCA2MywgOSwgMTQsIDIzOSwgNjIsIDksIDE0LCAyMzksIDYxLCA5LCAKKyAgICAxNCwgMjM5LCA2MCwgOSwgMTQsIDIzOSwgNTksIDksIDE0LCAyMzksIDU4LCA5LCAxNCwgMjM5LCA1NywgOSwgMTQsIDIzOSwgCisgICAgNTYsIDksIDE0LCAyMzksIDU1LCA5LCAxNCwgMjM5LCA1NCwgOSwgMTQsIDIzOSwgNTMsIDksIDE0LCAyMzksIDUyLCA5LCAKKyAgICAxNCwgMjM5LCA1MSwgOSwgMTQsIDIzOSwgNTAsIDksIDE0LCAyMzksIDQ5LCA5LCAxNCwgMjM5LCA0OCwgOSwgMTQsIDIzOSwgCisgICAgNDcsIDksIDE0LCAyMzksIDQ2LCA5LCAxNCwgMjM5LCA0NSwgOSwgMTQsIDIzOSwgNDQsIDksIDE0LCAyMzksIDQzLCA5LCAKKyAgICAxNCwgMjM5LCA0MiwgOSwgMTQsIDIzOSwgNDEsIDksIDE0LCAyMzksIDQwLCA5LCAxNCwgMjM5LCAzOSwgOSwgMTQsIDIzOSwgCisgICAgMzgsIDksIDE0LCAyMzksIDM3LCA5LCAxNCwgMjM5LCAzNiwgOSwgMTQsIDIzOSwgMzUsIDksIDE0LCAyMzksIDM0LCA5LCAKKyAgICAxNCwgMjM5LCAzMywgOSwgMTQsIDIzOSwgMzIsIDksIDE0LCAyMzksIDMxLCA5LCAxNCwgMjM5LCAzMCwgOSwgMTQsIDIzOSwgCisgICAgMjksIDksIDE0LCAyMzksIDI4LCA5LCAxNCwgMjM5LCAyNywgOSwgMTQsIDIzOSwgMjYsIDksIDE0LCAyMzksIDI1LCA5LCAKKyAgICAxNCwgMjM5LCAyNCwgOSwgMTQsIDIzOSwgMjMsIDksIDE0LCAyMzksIDIyLCA5LCAxNCwgMjM5LCAyMSwgOSwgMTQsIDIzOSwgCisgICAgMjAsIDksIDE0LCAyMzksIDE5LCA5LCAxNCwgMjM5LCAxOCwgOSwgMTQsIDIzOSwgMTcsIDksIDE0LCAyMzksIDE2LCA5LCAKKyAgICAxNCwgMjM5LCAxNSwgOSwgMTQsIDIzOSwgMTQsIDksIDE0LCAyMzksIDEzLCA5LCAxNCwgMjM5LCAxMiwgOSwgMTQsIDIzOSwgCisgICAgMTEsIDksIDE0LCAyMzksIDEwLCA5LCAxNCwgMjM5LCA5LCA5LCAxNCwgMjM5LCA4LCA5LCAxNCwgMjM5LCA3LCA5LCAxNCwgCisgICAgMjM5LCA2LCA5LCAxNCwgMjM5LCA1LCA5LCAxNCwgMjM5LCA0LCA5LCAxNCwgMjM5LCAzLCA5LCAxNCwgMjM5LCAyLCA5LCAKKyAgICAxNCwgMjM5LCAxLCA5LCAxNCwgMjM5LCAwLCA5LCAxNCwgMjM4LCAyNTUsIDksIDE0LCAyMzgsIDI1NCwgOSwgMTQsIDIzOCwgCisgICAgMjUzLCA5LCAxNCwgMjM4LCAyNTIsIDksIDE0LCAyMzgsIDI1MSwgOSwgMTQsIDIzOCwgMjUwLCA5LCAxNCwgMjM4LCAyNDksIAorICAgIDksIDE0LCAyMzgsIDI0OCwgOSwgMTQsIDIzOCwgMjQ3LCA5LCAxNCwgMjM4LCAyNDYsIDksIDE0LCAyMzgsIDI0NSwgOSwgCisgICAgMTQsIDIzOCwgMjQ0LCA5LCAxNCwgMjM4LCAyNDMsIDksIDE0LCAyMzgsIDI0MiwgOSwgMTQsIDIzOCwgMjQxLCA5LCAxNCwgCisgICAgMjM4LCAyNDAsIDksIDE0LCAyMzgsIDIzOSwgOSwgMTQsIDIzOCwgMjM4LCA5LCAxNCwgMjM4LCAyMzcsIDksIDE0LCAyMzgsIAorICAgIDIzNiwgOSwgMTQsIDIzOCwgMjM1LCA5LCAxNCwgMjM4LCAyMzQsIDksIDE0LCAyMzgsIDIzMywgOSwgMTQsIDIzOCwgMjMyLCAKKyAgICA5LCAxNCwgMjM4LCAyMzEsIDksIDE0LCAyMzgsIDIzMCwgOSwgMTQsIDIzOCwgMjI5LCA5LCAxNCwgMjM4LCAyMjgsIDksIAorICAgIDE0LCAyMzgsIDIyNywgOSwgMTQsIDIzOCwgMjI2LCA5LCAxNCwgMjM4LCAyMjUsIDksIDE0LCAyMzgsIDIyNCwgOSwgMTQsIAorICAgIDIzOCwgMjIzLCA5LCAxNCwgMjM4LCAyMjIsIDksIDE0LCAyMzgsIDIyMSwgOSwgMTQsIDIzOCwgMjIwLCA5LCAxNCwgMjM4LCAKKyAgICAyMTksIDksIDE0LCAyMzgsIDIxOCwgOSwgMTQsIDIzOCwgMjE3LCA5LCAxNCwgMjM4LCAyMTYsIDksIDE0LCAyMzgsIDIxNSwgCisgICAgOSwgMTQsIDIzOCwgMjE0LCA5LCAxNCwgMjM4LCAyMTMsIDksIDE0LCAyMzgsIDIxMiwgOSwgMTQsIDIzOCwgMjExLCA5LCAKKyAgICAxNCwgMjM4LCAyMTAsIDksIDE0LCAyMzgsIDIwOSwgOSwgMTQsIDIzOCwgMjA4LCA5LCAxNCwgMjM4LCAyMDcsIDksIDE0LCAKKyAgICAyMzgsIDIwNiwgOSwgMTQsIDIzOCwgMjA1LCA5LCAxNCwgMjM4LCAyMDQsIDksIDE0LCAyMzgsIDIwMywgOSwgMTQsIDIzOCwgCisgICAgMjAyLCA5LCAxNCwgMjM4LCAyMDEsIDksIDE0LCAyMzgsIDIwMCwgOSwgMTQsIDIzOCwgMTk5LCA5LCAxNCwgMjM4LCAxOTgsIAorICAgIDksIDE0LCAyMzgsIDE5NywgOSwgMTQsIDIzOCwgMTk2LCA5LCAxNCwgMjM4LCAxOTUsIDksIDE0LCAyMzgsIDE5NCwgOSwgCisgICAgMTQsIDIzOCwgMTkzLCA5LCAxNCwgMjM4LCAxOTIsIDksIDE0LCAyMzgsIDE5MSwgOSwgMTQsIDIzOCwgMTkwLCA5LCAxNCwgCisgICAgMjM4LCAxODksIDksIDE0LCAyMzgsIDE4OCwgOSwgMTQsIDIzOCwgMTg3LCA5LCAxNCwgMjM4LCAxODYsIDksIDE0LCAyMzgsIAorICAgIDE4NSwgOSwgMTQsIDIzOCwgMTg0LCA5LCAxNCwgMjM4LCAxODMsIDksIDE0LCAyMzgsIDE4MiwgOSwgMTQsIDIzOCwgMTgxLCAKKyAgICA5LCAxNCwgMjM4LCAxODAsIDksIDE0LCAyMzgsIDE3OSwgOSwgMTQsIDIzOCwgMTc4LCA5LCAxNCwgMjM4LCAxNzcsIDksIAorICAgIDE0LCAyMzgsIDE3NiwgOSwgMTQsIDIzOCwgMTc1LCA5LCAxNCwgMjM4LCAxNzQsIDksIDE0LCAyMzgsIDE3MywgOSwgMTQsIAorICAgIDIzOCwgMTcyLCA5LCAxNCwgMjM4LCAxNzEsIDksIDE0LCAyMzgsIDE3MCwgOSwgMTQsIDIzOCwgMTY5LCA5LCAxNCwgMjM4LCAKKyAgICAxNjgsIDksIDE0LCAyMzgsIDE2NywgOSwgMTQsIDIzOCwgMTY2LCA5LCAxNCwgMjM4LCAxNjUsIDksIDE0LCAyMzgsIDE2NCwgCisgICAgOSwgMTQsIDIzOCwgMTYzLCA5LCAxNCwgMjM4LCAxNjIsIDksIDE0LCAyMzgsIDE2MSwgOSwgMTQsIDIzOCwgMTYwLCA5LCAKKyAgICAxNCwgMjM4LCAxNTksIDksIDE0LCAyMzgsIDE1OCwgOSwgMTQsIDIzOCwgMTU3LCA5LCAxNCwgMjM4LCAxNTYsIDksIDE0LCAKKyAgICAyMzgsIDE1NSwgOSwgMTQsIDIzOCwgMTU0LCA5LCAxNCwgMjM4LCAxNTMsIDksIDE0LCAyMzgsIDE1MiwgOSwgMTQsIDIzOCwgCisgICAgMTUxLCA5LCAxNCwgMjM4LCAxNTAsIDksIDE0LCAyMzgsIDE0OSwgOSwgMTQsIDIzOCwgMTQ4LCA5LCAxNCwgMjM4LCAxNDcsIAorICAgIDksIDE0LCAyMzgsIDE0NiwgOSwgMTQsIDIzOCwgMTQ1LCA5LCAxNCwgMjM4LCAxNDQsIDksIDE0LCAyMzgsIDE0MywgOSwgCisgICAgMTQsIDIzOCwgMTQyLCA5LCAxNCwgMjM4LCAxNDEsIDksIDE0LCAyMzgsIDE0MCwgOSwgMTQsIDIzOCwgMTM5LCA5LCAxNCwgCisgICAgMjM4LCAxMzgsIDksIDE0LCAyMzgsIDEzNywgOSwgMTQsIDIzOCwgMTM2LCA5LCAxNCwgMjM4LCAxMzUsIDksIDE0LCAyMzgsIAorICAgIDEzNCwgOSwgMTQsIDIzOCwgMTMzLCA5LCAxNCwgMjM4LCAxMzIsIDksIDE0LCAyMzgsIDEzMSwgOSwgMTQsIDIzOCwgMTMwLCAKKyAgICA5LCAxNCwgMjM4LCAxMjksIDksIDE0LCAyMzgsIDEyOCwgOSwgMTQsIDIzOCwgMTI3LCA5LCAxNCwgMjM4LCAxMjYsIDksIAorICAgIDE0LCAyMzgsIDEyNSwgOSwgMTQsIDIzOCwgMTI0LCA5LCAxNCwgMjM4LCAxMjMsIDksIDE0LCAyMzgsIDEyMiwgOSwgMTQsIAorICAgIDIzOCwgMTIxLCA5LCAxNCwgMjM4LCAxMjAsIDksIDE0LCAyMzgsIDExOSwgOSwgMTQsIDIzOCwgMTE4LCA5LCAxNCwgMjM4LCAKKyAgICAxMTcsIDksIDE0LCAyMzgsIDExNiwgOSwgMTQsIDIzOCwgMTE1LCA5LCAxNCwgMjM4LCAxMTQsIDksIDE0LCAyMzgsIDExMywgCisgICAgOSwgMTQsIDIzOCwgMTEyLCA5LCAxNCwgMjM4LCAxMTEsIDksIDE0LCAyMzgsIDExMCwgOSwgMTQsIDIzOCwgMTA5LCA5LCAKKyAgICAxNCwgMjM4LCAxMDgsIDksIDE0LCAyMzgsIDEwNywgOSwgMTQsIDIzOCwgMTA2LCA5LCAxNCwgMjM4LCAxMDUsIDksIDE0LCAKKyAgICAyMzgsIDEwNCwgOSwgMTQsIDIzOCwgMTAzLCA5LCAxNCwgMjM4LCAxMDIsIDksIDE0LCAyMzgsIDEwMSwgOSwgMTQsIDIzOCwgCisgICAgMTAwLCA5LCAxNCwgMjM4LCA5OSwgOSwgMTQsIDIzOCwgOTgsIDksIDE0LCAyMzgsIDk3LCA5LCAxNCwgMjM4LCA5NiwgOSwgCisgICAgMTQsIDIzOCwgOTUsIDksIDE0LCAyMzgsIDk0LCA5LCAxNCwgMjM4LCA5MywgOSwgMTQsIDIzOCwgOTIsIDksIDE0LCAyMzgsIAorICAgIDkxLCA5LCAxNCwgMjM4LCA5MCwgOSwgMTQsIDIzOCwgODksIDksIDE0LCAyMzgsIDg4LCA5LCAxNCwgMjM4LCA4NywgOSwgCisgICAgMTQsIDIzOCwgODYsIDksIDE0LCAyMzgsIDg1LCA5LCAxNCwgMjM4LCA4NCwgOSwgMTQsIDIzOCwgODMsIDksIDE0LCAyMzgsIAorICAgIDgyLCA5LCAxNCwgMjM4LCA4MSwgOSwgMTQsIDIzOCwgODAsIDksIDE0LCAyMzgsIDc5LCA5LCAxNCwgMjM4LCA3OCwgOSwgCisgICAgMTQsIDIzOCwgNzcsIDksIDE0LCAyMzgsIDc2LCA5LCAxNCwgMjM4LCA3NSwgOSwgMTQsIDIzOCwgNzQsIDksIDE0LCAyMzgsIAorICAgIDczLCAyMzMsIDkwLCAyMTcsIDg0LCAxMjksIDIxOSwgMTgsIDEyOSwgMjQ1LCAzMSwgNzgsIDEyOSwgMjIzLCAyNTQsIDc4LCAKKyAgICAxMjksIDU0LCA1MCwgMTI5LCAyNDcsIDEzMiwgNTAsIDEyOSwgMjI1LCAxODIsIDUwLCAxMjksIDI1NCwgMTI2LCAxMjksIAorICAgIDI1NCwgNTcsIDEyOSwgNDMsIDIyNiwgMywgMTI5LCA0NCwgMjI2LCAzLCAxMjksIDI1MywgMjE2LCAxMjksIDk2LCA1MCwgCisgICAgMTI5LCAyNDksIDIxOSwgMTI5LCAyNDAsIDE2NywgMTI5LCAyNDMsIDIyOSwgMjE4LCAxMjksIDEyOSwgMjE5LCA0NiwgMTI5LCAKKyAgICAyMSwgMjEwLCA4NiwgMTI5LCAyMSwgMTEwLCAxMjksIDIxLCAxMDUsIDEyOSwgMjEsIDE1OCwgMTI5LCAyMSwgMTYxLCAxMjksIAorICAgIDIxLCAxODksIDEyOSwgMjEsIDE5NCwgMTI5LCAyMSwgMTk4LCAxMjksIDIxLCAxOTUsIDEyOSwgMjEsIDIwMCwgMTI5LCAKKyAgICAyNDksIDIyNiwgMTI5LCAyMjAsIDE1MCwgMTI5LCAyMzMsIDE1LCA1MCwgMTI5LCAyNDUsIDk4LCA1MCwgMTI5LCAyNDIsIAorICAgIDEzMCwgNTAsIDEyOSwgMjI0LCAxMywgNzgsIDEyOSwgMjQ5LCAyMTcsIDI1MywgMjA2LCAxMjksIDcsIDYsIDEsIDYxLCAKKyAgICAxMjksIDcsIDYsIDEsIDI1MywgMTU4LCAxMjksIDcsIDYsIDEsIDI1MSwgNjYsIDEyOSwgNywgNiwgMSwgMjQ5LCA2MCwgCisgICAgMTI5LCA3LCA2LCAxLCA3NSwgMTI5LCA3LCA2LCAxLCAyNDUsIDYsIDEyOSwgNywgNiwgMSwgMjQzLCAyMDIsIDEyOSwgNywgCisgICAgNiwgMSwgMjQyLCA2MCwgMTI5LCA3LCA2LCAxLCA3MywgMTI5LCA3LCA2LCAxLCAyMzUsIDE0NCwgMTI5LCA3LCA2LCAxLCAKKyAgICAyMzUsIDIzLCAxMjksIDcsIDYsIDEsIDE1NiwgMTI5LCA3LCA2LCAxLCAxOTMsIDEyOSwgNywgNiwgMSwgMjMwLCAyNSwgCisgICAgMTI5LCA3LCA2LCAxLCA3NiwgMTI5LCA3LCA2LCAxLCAyMjYsIDEwNSwgMTI5LCA3LCA2LCAxLCAyMjQsIDk2LCAxMjksIDcsIAorICAgIDYsIDEsIDE1MywgMTI5LCA3LCA2LCAxLCAyMjIsIDkxLCAxMjksIDcsIDYsIDEsIDIxNywgMTUyLCAxMjksIDcsIDYsIDEsIAorICAgIDcwLCAxMjksIDcsIDYsIDEsIDIxNCwgMTA1LCAxMjksIDcsIDYsIDEsIDIxMiwgOTgsIDEyOSwgNywgNiwgMSwgMjExLCAKKyAgICAxNzgsIDEyOSwgNywgNiwgMSwgMjExLCAxMTcsIDEyOSwgNywgNiwgMSwgMjEwLCAxNTksIDEyOSwgNDMsIDQyLCAxMjcsIAorICAgIDEyOSwgMjIzLCA1MCwgMjE5LCA0NiwgMTI5LCA0NCwgNDIsIDEyNywgMTI5LCAyNTAsIDMxLCAyNTUsIDE0LCAxMjksIDEyMSwgCisgICAgMjMyLCAyMTMsIDEyOSwgMjQyLCAxMzcsIDI1NSwgMTQsIDEyOSwgNywgNCwgMSwgNjEsIDEyOSwgNywgNCwgMSwgMjUzLCAKKyAgICAxNTgsIDEyOSwgNywgNCwgMSwgMjUxLCA2NiwgMTI5LCA3LCA0LCAxLCAyNDksIDYwLCAxMjksIDcsIDQsIDEsIDc1LCAxMjksIAorICAgIDcsIDQsIDEsIDI0NSwgNiwgMTI5LCA3LCA0LCAxLCAyNDMsIDIwMiwgMTI5LCA3LCA0LCAxLCAyNDIsIDYwLCAxMjksIDcsIAorICAgIDQsIDEsIDczLCAxMjksIDcsIDQsIDEsIDIzNSwgMTQ0LCAxMjksIDcsIDQsIDEsIDIzNSwgMjMsIDEyOSwgNywgNCwgMSwgCisgICAgMTU2LCAxMjksIDcsIDQsIDEsIDE5MywgMTI5LCA3LCA0LCAxLCAyMzAsIDI1LCAxMjksIDcsIDQsIDEsIDc2LCAxMjksIDcsIAorICAgIDQsIDEsIDIyNiwgMTA1LCAxMjksIDcsIDQsIDEsIDIyNCwgOTYsIDEyOSwgNywgNCwgMSwgMTUzLCAxMjksIDcsIDQsIDEsIAorICAgIDIyMiwgOTEsIDEyOSwgNywgNCwgMSwgMjE3LCAxNTIsIDEyOSwgNywgNCwgMSwgNzAsIDEyOSwgNywgNCwgMSwgMjE0LCAKKyAgICAxMDUsIDEyOSwgNywgNCwgMSwgMjEyLCA5OCwgMTI5LCA3LCA0LCAxLCAyMTEsIDE3OCwgMTI5LCA3LCA0LCAxLCAyMTEsIAorICAgIDExNywgMTI5LCA3LCA0LCAxLCAyMTAsIDE1OSwgMTI5LCA0MywgMjQ5LCA5OSwgMTI3LCAxMjksIDY3LCAyMzIsIDIxMywgCisgICAgMTI5LCA0NCwgMjQ5LCA5OSwgMTI3LCAxMjksIDE4MiwgMjUxLCA2LCAyMTcsIDg0LCA0NSwgMjIxLCA3OCwgNDUsIDIyMSwgCisgICAgNjcsIDQ1LCAyMjEsIDU2LCA0NSwgMjIxLCA0NCwgNDUsIDIyMSwgMzMsIDQ1LCAyMjEsIDIyLCA0NSwgMjIxLCAxMSwgNDUsIAorICAgIDIyMSwgMCwgNDUsIDIyMCwgMjQ1LCA0NSwgMjIwLCAyMzcsIDQ1LCAyMjAsIDIzNiwgNDUsIDIyMCwgMjM1LCA0NSwgMjIwLCAKKyAgICAyMzQsIDQ1LCAyMjAsIDIzMiwgNDUsIDIyMCwgMjMxLCA0NSwgMjIwLCAyMzAsIDQ1LCAyMjAsIDIyOSwgNDUsIDIyMCwgCisgICAgMjI4LCA0NSwgMjIwLCAyMjcsIDQ1LCAyMjAsIDIyNiwgNDUsIDIyMCwgMjI1LCA0NSwgMjIwLCAyMjQsIDQ1LCAyMjAsIAorICAgIDIyMywgNDUsIDIyMCwgMjIxLCA0NSwgMjIwLCAyMjAsIDQ1LCAyMjAsIDIxOSwgNDUsIDIyMCwgMjE4LCA0NSwgMjIwLCAKKyAgICAyMTcsIDQ1LCAyMjAsIDIxNiwgNDUsIDIyMCwgMjE1LCA0NSwgMjIwLCAyMTQsIDQ1LCAyMjAsIDIxMywgNDUsIDIyMCwgCisgICAgMjEyLCA0NSwgMjIwLCAyMTAsIDQ1LCAyMjAsIDIwOSwgNDUsIDIyMCwgMjA4LCA0NSwgMjIwLCAyMDcsIDQ1LCAyMjAsIAorICAgIDIwNiwgNDUsIDIyMCwgMjA1LCA0NSwgMjIwLCAyMDQsIDQ1LCAyMjAsIDIwMywgNDUsIDIyMCwgMjAyLCA0NSwgMjIwLCAKKyAgICAyMDEsIDQ1LCAyMjAsIDE5OSwgNDUsIDIyMCwgMTk4LCA0NSwgMjIwLCAxOTcsIDQ1LCAyMjAsIDE5NiwgNDUsIDIyMCwgCisgICAgMTk1LCA0NSwgMjIwLCAxOTQsIDQ1LCAyMjAsIDE5MywgNDUsIDIyMCwgMTkyLCA0NSwgMjIwLCAxOTEsIDQ1LCAyMjAsIAorICAgIDE5MCwgNDUsIDIyMCwgMTg4LCA0NSwgMjIwLCAxODcsIDQ1LCAyMjAsIDE4NiwgNDUsIDIyMCwgMTg1LCA0NSwgMjIwLCAKKyAgICAxODQsIDQ1LCAyMjAsIDE4MywgNDUsIDIyMCwgMTgyLCA0NSwgMjIwLCAxODEsIDQ1LCAyMjAsIDE4MCwgNDUsIDIyMCwgCisgICAgMTc5LCA0NSwgMjIwLCAxNzcsIDQ1LCAyMjAsIDE3NiwgNDUsIDIyMCwgMTc1LCA0NSwgMjIwLCAxNzQsIDQ1LCAyMjAsIAorICAgIDE3MywgNDUsIDIyMCwgMTcyLCA0NSwgMjIwLCAxNzEsIDQ1LCAyMjAsIDE3MCwgNDUsIDIyMCwgMTY5LCA0NSwgMjIwLCAKKyAgICAxNjgsIDQ1LCAyMjAsIDE2NiwgNDUsIDIyMCwgMTY1LCA0NSwgMjIwLCAxNjQsIDQ1LCAyMjAsIDE2MywgNDUsIDIyMCwgCisgICAgMTYyLCA0NSwgMjIwLCAxNjEsIDQ1LCAyMjAsIDE2MCwgNDUsIDIyMCwgMTU5LCA0NSwgMjIwLCAxNTgsIDQ1LCAyMjAsIAorICAgIDE1NywgNDUsIDIyMSwgMTU0LCA0NSwgMjIxLCAxNTMsIDQ1LCAyMjEsIDE1MiwgNDUsIDIyMSwgMTUxLCA0NSwgMjIxLCAKKyAgICAxNTAsIDQ1LCAyMjEsIDE0OSwgNDUsIDIyMSwgMTQ4LCA0NSwgMjIxLCAxNDcsIDQ1LCAyMjEsIDE0NiwgNDUsIDIyMSwgCisgICAgMTQ1LCA0NSwgMjIxLCAxNDMsIDQ1LCAyMjEsIDE0MiwgNDUsIDIyMSwgMTQxLCA0NSwgMjIxLCAxNDAsIDQ1LCAyMjEsIAorICAgIDEzOSwgNDUsIDIyMSwgMTM4LCA0NSwgMjIxLCAxMzcsIDQ1LCAyMjEsIDEzNiwgNDUsIDIyMSwgMTM1LCA0NSwgMjIxLCAKKyAgICAxMzQsIDQ1LCAyMjEsIDEzMiwgNDUsIDIyMSwgMTMxLCA0NSwgMjIxLCAxMzAsIDQ1LCAyMjEsIDEyOSwgNDUsIDIyMSwgCisgICAgMTI4LCA0NSwgMjIxLCAxMjcsIDQ1LCAyMjEsIDEyNiwgNDUsIDIyMSwgMTI1LCA0NSwgMjIxLCAxMjQsIDQ1LCAyMjEsIAorICAgIDEyMywgNDUsIDIyMSwgMTIxLCA0NSwgMjIxLCAxMjAsIDQ1LCAyMjEsIDExOSwgNDUsIDIyMSwgMTE4LCA0NSwgMjIxLCAKKyAgICAxMTcsIDQ1LCAyMjEsIDExNiwgNDUsIDIyMSwgMTE1LCA0NSwgMjIxLCAxMTQsIDQ1LCAyMjEsIDExMywgNDUsIDIyMSwgCisgICAgMTEyLCA0NSwgMjIxLCAxMTAsIDQ1LCAyMjEsIDEwOSwgNDUsIDIyMSwgMTA4LCA0NSwgMjIxLCAxMDcsIDQ1LCAyMjEsIAorICAgIDEwNiwgNDUsIDIyMSwgMTA1LCA0NSwgMjIxLCAxMDQsIDQ1LCAyMjEsIDEwMywgNDUsIDIyMSwgMTAyLCA0NSwgMjIxLCAKKyAgICAxMDEsIDQ1LCAyMjEsIDk5LCA0NSwgMjIxLCA5OCwgNDUsIDIyMSwgOTcsIDQ1LCAyMjEsIDk2LCA0NSwgMjIxLCA5NSwgNDUsIAorICAgIDIyMSwgOTQsIDQ1LCAyMjEsIDkzLCA0NSwgMjIxLCA5MiwgNDUsIDIyMSwgOTEsIDQ1LCAyMjEsIDkwLCA0NSwgMjIxLCA4OCwgCisgICAgNDUsIDIyMSwgODcsIDQ1LCAyMjEsIDg2LCA0NSwgMjIxLCA4NSwgNDUsIDIyMSwgODQsIDQ1LCAyMjEsIDgzLCA0NSwgMjIxLCAKKyAgICA4MiwgNDUsIDIyMSwgODEsIDQ1LCAyMjEsIDgwLCA0NSwgMjIxLCA3OSwgNDUsIDIyMSwgNzcsIDQ1LCAyMjEsIDc2LCA0NSwgCisgICAgMjIxLCA3NSwgNDUsIDIyMSwgNzQsIDQ1LCAyMjEsIDczLCA0NSwgMjIxLCA3MiwgNDUsIDIyMSwgNzEsIDQ1LCAyMjEsIDcwLCAKKyAgICA0NSwgMjIxLCA2OSwgNDUsIDIyMSwgNjgsIDQ1LCAyMjEsIDY2LCA0NSwgMjIxLCA2NSwgNDUsIDIyMSwgNjQsIDQ1LCAyMjEsIAorICAgIDYzLCA0NSwgMjIxLCA2MiwgNDUsIDIyMSwgNjEsIDQ1LCAyMjEsIDYwLCA0NSwgMjIxLCA1OSwgNDUsIDIyMSwgNTgsIDQ1LCAKKyAgICAyMjEsIDU3LCA0NSwgMjIxLCA1NSwgNDUsIDIyMSwgNTQsIDQ1LCAyMjEsIDUzLCA0NSwgMjIxLCA1MiwgNDUsIDIyMSwgNTEsIAorICAgIDQ1LCAyMjEsIDUwLCA0NSwgMjIxLCA0OSwgNDUsIDIyMSwgNDgsIDQ1LCAyMjEsIDQ3LCA0NSwgMjIxLCA0NiwgNDUsIDIyMSwgCisgICAgNDMsIDQ1LCAyMjEsIDQyLCA0NSwgMjIxLCA0MSwgNDUsIDIyMSwgNDAsIDQ1LCAyMjEsIDM5LCA0NSwgMjIxLCAzOCwgNDUsIAorICAgIDIyMSwgMzcsIDQ1LCAyMjEsIDM2LCA0NSwgMjIxLCAzNSwgNDUsIDIyMSwgMzQsIDQ1LCAyMjEsIDMyLCA0NSwgMjIxLCAzMSwgCisgICAgNDUsIDIyMSwgMzAsIDQ1LCAyMjEsIDI5LCA0NSwgMjIxLCAyOCwgNDUsIDIyMSwgMjcsIDQ1LCAyMjEsIDI2LCA0NSwgMjIxLCAKKyAgICAyNSwgNDUsIDIyMSwgMjQsIDQ1LCAyMjEsIDIzLCA0NSwgMjIxLCAyMSwgNDUsIDIyMSwgMjAsIDQ1LCAyMjEsIDE5LCA0NSwgCisgICAgMjIxLCAxOCwgNDUsIDIyMSwgMTcsIDQ1LCAyMjEsIDE2LCA0NSwgMjIxLCAxNSwgNDUsIDIyMSwgMTQsIDQ1LCAyMjEsIDEzLCAKKyAgICA0NSwgMjIxLCAxMiwgNDUsIDIyMSwgMTAsIDQ1LCAyMjEsIDksIDQ1LCAyMjEsIDgsIDQ1LCAyMjEsIDcsIDQ1LCAyMjEsIDYsIAorICAgIDQ1LCAyMjEsIDUsIDQ1LCAyMjEsIDQsIDQ1LCAyMjEsIDMsIDQ1LCAyMjEsIDIsIDQ1LCAyMjEsIDEsIDQ1LCAyMjAsIDI1NSwgCisgICAgNDUsIDIyMCwgMjU0LCA0NSwgMjIwLCAyNTMsIDQ1LCAyMjAsIDI1MiwgNDUsIDIyMCwgMjUxLCA0NSwgMjIwLCAyNTAsIDQ1LCAKKyAgICAyMjAsIDI0OSwgNDUsIDIyMCwgMjQ4LCA0NSwgMjIwLCAyNDcsIDQ1LCAyMjAsIDI0NiwgNDUsIDIyMCwgMjQ0LCA0NSwgCisgICAgMjIwLCAyNDMsIDQ1LCAyMjAsIDI0MiwgNDUsIDIyMCwgMjQxLCA0NSwgMjIwLCAyNDAsIDQ1LCAyMjAsIDIzOSwgNDUsIAorICAgIDIyMCwgMjM4LCAyMjcsIDIwMiwgMjI3LCAyMDQsIDIxOCwgMTUyLCA2NCwgMjQxLCAyMzMsIDIxOSwgNDgsIDIxOCwgMTUyLCAKKyAgICA2NCwgMjE2LCAyMTIsIDIxOCwgODUsIDI0NSwgMTQzLCA2NCwgMjE2LCAyMTIsIDI0NSwgNTYsIDI0NSwgMTQzLCA2NCwgCisgICAgMjE1LCAyNDMsIDI0NSwgMTA5LCAyNDUsIDEzMiwgMjQ1LCAxMzMsIDI1NSwgNywgMjU1LCA4LCAyNTQsIDE2NywgMjUyLCAKKyAgICA0NywgMjUyLCAxNzksIDI1MSwgMTMxLCAxMzUsIDIxNywgODksIDIwMywgMjE3LCA4OSwgMjQwLCAyMjcsIDIxNywgOTMsIAorICAgIDIzMiwgMjE0LCAyNDQsIDE0NSwgMTY2LCAyMzIsIDIxMywgMjQ1LCAxNDMsIDY0LCAyMzIsIDIxMywgMjMzLCAwLCAyMjgsIAorICAgIDEzNSwgMjQ1LCAxMTIsIDIzMiwgMjE0LCAyMTcsIDg5LCA2NywgMjE3LCA4OSwgMjEyLCAxMTgsIDI0NCwgMjAsIDI0NCwgCisgICAgMTQ1LCAyNDQsIDEyNSwgMjUwLCAyMzAsIDIyMywgNTMsIDI0OSwgMTQzLCAyMjAsIDI4LCAyMjYsIDEzMCwgMjMyLCAxNTAsIAorICAgIDExMCwgMjE5LCA1OCwgMjIwLCAyOCwgMjM1LCAyNTUsIDIzMiwgMTUwLCAyMTAsIDg2LCAyMTksIDE5MSwgMjQ4LCAxNTEsIAorICAgIDIzMiwgMjA0LCAyNDUsIDc3LCAyNDcsIDE1NSwgMjQ4LCAzMSwgMjQ5LCAxNzgsIDExMCwgMjQ4LCAxNDEsIDI0OCwgMzEsIAorICAgIDI0OSwgMTc4LCAxMDUsIDI0OCwgMTQwLCAyNDgsIDMxLCAyNDksIDE3OCwgMTU4LCAyNDgsIDEzOSwgMjQ4LCAzMSwgMjQ5LCAKKyAgICAxNzgsIDE2MSwgMjQ4LCAxMzgsIDE1MiwgMjU1LCA3LCAyMjksIDIwOSwgMjE3LCAxNzcsIDIzNiwgNjIsIDIxNywgMTgwLCAKKyAgICAyNDUsIDE0MywgNjQsIDIxNSwgMjQ0LCAyNTEsIDIxMywgMjQ1LCA2MiwgMjUxLCA1LCAyNTEsIDcsIDI0NSwgMTQzLCA2NCwgCisgICAgMjMxLCA4MSwgMjQ1LCAxMTAsIDIxOCwgNjEsIDIxOCwgNzgsIDI0NSwgNzcsIDI0NSwgNzgsIDIzNSwgMjMyLCAyMjAsIAorICAgIDEzOCwgMTYxLCAyNDQsIDEwNywgMjIwLCAxMzcsIDI0MywgMjM3LCAyMzUsIDIzMiwgMjIwLCAxMzgsIDE1OCwgMjQyLCAKKyAgICAxMjEsIDIyMCwgMTM3LCAyNDIsIDExOCwgMjM1LCAyMzIsIDIyMCwgMTM4LCAxMDUsIDIyMywgMTIxLCAyMjAsIDEzNywgCisgICAgMjIyLCAxNDUsIDIzNSwgMjMyLCAyMjAsIDEzOCwgMTEwLCAyMTQsIDE3NCwgMjIwLCAxMzcsIDIxNCwgMTMzLCAyMTksIDIxLCAKKyAgICAyNDgsIDYzLCAyNDgsIDY1LCAyMjYsIDc4LCAyNTAsIDE0MiwgMjI2LCA4MCwgMTI1LCAyMjYsIDI0MCwgMjI0LCAxOTMsIAorICAgIDI0MSwgNDcsIDI1MSwgMTUwLCAyMjUsIDE3MywgMjQxLCAyMDMsIDI1MSwgMTYxLCAyMjgsIDc1LCAyNTEsIDE1MCwgMjQxLCAKKyAgICAyMDMsIDIyOSwgMTc1LCAyMzUsIDI0MiwgMjM1LCAyNDQsIDIyOSwgODIsIDIzMiwgMjEzLCAyMjksIDk5LCAyMTgsIDE1MiwgCisgICAgNjQsIDIyMSwgMTU4LCAyNTQsIDE4LCAyMTgsIDIyMywgMjQ1LCAxNDMsIDY0LCAyMjEsIDE1OCwgMjU0LCAxOCwgMjQ1LCAKKyAgICA4MCwgMTM1LCAyMTcsIDkwLCAyMjAsIDEyNywgMjAzLCAyMTcsIDkwLCAyMjAsIDEyNywgMjQwLCAyMjQsIDEzNSwgMjE3LCAKKyAgICA5MCwgMiwgMjM1LCAzNSwgMjAzLCAyMTcsIDkwLCAyLCAyMzUsIDM1LCAyNDAsIDIyNSwgMjMyLCAyMTQsIDIxNywgOTAsIAorICAgIDIyMCwgMTI3LCA2NywgMjE3LCA5MCwgMjIwLCAxMjcsIDIxMiwgMTE3LCAyMjUsIDI1MywgMjMyLCAyMTQsIDI0NCwgMTQsIAorICAgIDIyNSwgMjUzLCAyMzIsIDIxNCwgMjQ2LCAxMDYsIDIyNSwgMzIsIDIyNSwgMjUzLCAyMzIsIDIxNCwgMjUyLCAxNzgsIDIyNSwgCisgICAgMjUzLCAyMzIsIDIxNCwgMjE0LCAxNjMsIDIyNSwgMjgsIDIyMywgNTAsIDIzMiwgMjE0LCAyNDQsIDE0NSwgMjIzLCA1MCwgCisgICAgMjM1LCAyNDIsIDIyMywgMzUsIDIxOSwgMTU1LCAyMjAsIDI4LCAxMDUsIDIxOSwgMTUyLCAyMTgsIDIyNSwgMjE5LCAxNTUsIAorICAgIDIyMCwgMjgsIDE1OCwgMjE5LCAxNTEsIDIxOCwgMjI0LCAyNDgsIDMxLCAyNDksIDE3OCwgMjE4LCAxMDUsIDI0OCwgMTM3LCAKKyAgICAyMjQsIDE4MywgMjE0LCAxMzIsIDExMCwgMjI0LCAxODMsIDIxNCwgMTMwLCAyMjQsIDE0OSwgMjI0LCAxODMsIDIxNCwgCisgICAgMTMyLCAxMDUsIDIyNCwgMTgzLCAyMTQsIDEyOSwgMjI0LCAxNDgsIDIyMCwgMTI4LCAyMTUsIDI0MiwgMjE4LCAxNTEsIAorICAgIDIxOCwgODksIDI1MSwgNiwgMjUwLCAxNDIsIDI1MCwgMjA5LCAyMzEsIDQzLCAyMTIsIDU5LCAyMzAsIDQzLCAyMTgsIDE1MiwgCisgICAgNjQsIDI0MiwgMTA3LCAyNTQsIDE4LCAyMTgsIDE1MiwgNjQsIDIyNCwgMTY2LCAyNTQsIDE4LCAyMTksIDIwLCAyNDUsIAorICAgIDE0MywgNjQsIDI0MiwgMTA3LCAyNTQsIDE4LCAyNDUsIDE0MywgNjQsIDIyNCwgMTY2LCAyNTQsIDE4LCAyNDUsIDEwNywgCisgICAgMjE4LCAxNTIsIDY0LCAyMTgsIDEwNSwgMjE5LCAzNSwgMjE5LCAxNTUsIDI0MiwgMTQxLCAxMzUsIDIzNSwgMTk1LCAyMjAsIAorICAgIDEwNywgMjE5LCAxNTUsIDEzNSwgMjM1LCAxOTUsIDIyMSwgMTk0LCAyNDksIDE3OCwgMjIwLCAxMzUsIDIzNSwgMTk1LCAKKyAgICAyNDksIDExMywgMjE4LCAxMDYsIDIxNiwgMjM2LCAyMTgsIDE2OCwgMjI2LCAxNjksIDIxNywgMTY3LCAyNDksIDIxOCwgCisgICAgMjI2LCAxNDIsIDIyNCwgMTg0LCAyMzEsIDQyLCAyMjUsIDE5LCAyNTQsIDUzLCAyMjQsIDE3OCwgMjQ5LCAyMTgsIDI1NCwgCisgICAgNjksIDIyOSwgMTYzLCAyMTksIDIwMCwgNywgNiwgMSwgMjQyLCAyNDksIDcsIDQsIDEsIDI0MiwgMjQ5LCAyNTAsIDE1OSwgCisgICAgMTY1LCAxLCAyMzIsIDE3NSwgMjA5LCAyMDksIDEsIDI0NCwgNDQsIDI0NCwgMzYsIDIwOSwgMjA5LCAxLCAyNDQsIDQ0LCAKKyAgICAyNDQsIDE1NywgMjA5LCAyMDksIDEsIDIyMiwgMjExLCAyMDksIDIwOSwgMSwgMjMyLCAxNTYsIDYzLCAxNjQsIDI1MSwgCisgICAgMjIzLCAyMjAsIDMsIDI0MiwgMjE1LCAyMzAsIDI0OCwgMjIzLCA0MSwgMjQzLCAyMTYsIDI0MywgMjE1LCAyNDMsIDIxNCwgCisgICAgMjMwLCA0NSwgMjA5LCAyNTEsIDIwOSwgMjUyLCAyMDksIDI1NCwgMjMyLCAxMDIsIDIyMiwgMjE5LCAyMzIsIDEwMywgMjIyLCAKKyAgICAyMjAsIDIyNSwgMjIzLCAyMzIsIDEwMSwgMjIyLCAyMTgsIDIyOCwgMTA2LCAyMzAsIDE2NSwgMjExLCAyMjksIDIxMiwgMTUsIAorICAgIDI0NSwgMTYyLCAyNDMsIDIyNiwgMjMwLCAyMjksIDIyNiwgMTk3LCAyMTQsIDEzNCwgODcsIDIzMCwgMjI5LCAyNDgsIDE1NywgCisgICAgODcsIDgsIDMsIDIzNSwgMTU4LCA3OCwgMjI0LCAxOTQsIDI0NCwgMjAsIDMxLCA2NywgNDQsIDcxLCAyMzMsIDIwLCAxMjcsIAorICAgIDIxMywgMTE4LCAyMTMsIDcsIDIxMiwgMTk1LCAyMTIsIDE4NCwgMjEyLCAxNzMsIDIxMiwgMTYyLCAyMTIsIDE1MSwgMjEyLCAKKyAgICAxNDAsIDIxMiwgMTI5LCAyMTMsIDExNywgMjEzLCAxMDYsIDIxMywgOTUsIDIxMywgODQsIDIxMywgNzMsIDIxMywgNjIsIAorICAgIDIxMywgNTEsIDI1MSwgNzEsIDIyNiwgMTU1LCA3OCwgMjUxLCAxOTYsIDIwOSwgMjUzLCA0OSwgMjgsIDE2LCAyNDMsIDIzNiwgCisgICAgMjE5LCAxMDIsIDI1MCwgNzMsIDIxNCwgOSwgMjEzLCA0MCwgMjEzLCAyOSwgMjEzLCAxOCwgMjEzLCA2LCAyMTIsIDI1MSwgCisgICAgMjEyLCAyNDAsIDIxMiwgMjI5LCAyMTIsIDIxOCwgMjEyLCAyMDcsIDIxMiwgMTk5LCAyMTIsIDE5OCwgMjEyLCAxOTcsIAorICAgIDIxMiwgMTk2LCAyMTIsIDE5NCwgMjEyLCAxOTMsIDIxMiwgMTkyLCAyMTIsIDE5MSwgMjEyLCAxOTAsIDIxMiwgMTg5LCAKKyAgICAyMTIsIDE4OCwgMjEyLCAxODcsIDIxMiwgMTg2LCAyMTIsIDE4NSwgMjEyLCAxODMsIDIxMiwgMTgyLCAyMTIsIDE4MSwgCisgICAgMjEyLCAxODAsIDIxMiwgMTc5LCAyMTIsIDE3OCwgMjEyLCAxNzcsIDIxMiwgMTc2LCAyMTIsIDE3NSwgMjEyLCAxNzQsIAorICAgIDIxMiwgMTcyLCAyMTIsIDE3MSwgMjEyLCAxNzAsIDIxMiwgMTY5LCAyMTIsIDE2OCwgMjEyLCAxNjcsIDIxMiwgMTY2LCAKKyAgICAyMTIsIDE2NSwgMjEyLCAxNjQsIDIxMiwgMTYzLCAyMTIsIDE2MSwgMjEyLCAxNjAsIDIxMiwgMTU5LCAyMTIsIDE1OCwgCisgICAgMjEyLCAxNTcsIDIxMiwgMTU2LCAyMTIsIDE1NSwgMjEyLCAxNTQsIDIxMiwgMTUzLCAyMTIsIDE1MiwgMjEyLCAxNTAsIAorICAgIDIxMiwgMTQ5LCAyMTIsIDE0OCwgMjEyLCAxNDcsIDIxMiwgMTQ2LCAyMTIsIDE0NSwgMjEyLCAxNDQsIDIxMiwgMTQzLCAKKyAgICAyMTIsIDE0MiwgMjEyLCAxNDEsIDIxMiwgMTM5LCAyMTIsIDEzOCwgMjEyLCAxMzcsIDIxMiwgMTM2LCAyMTIsIDEzNSwgCisgICAgMjEyLCAxMzQsIDIxMiwgMTMzLCAyMTIsIDEzMiwgMjEyLCAxMzEsIDIxMiwgMTMwLCAyMTIsIDEyOCwgMjEyLCAxMjcsIAorICAgIDIxMiwgMTI2LCAyMTIsIDEyNSwgMjEyLCAxMjQsIDIxMiwgMTIzLCAyMTIsIDEyMiwgMjEyLCAxMjEsIDIxMiwgMTIwLCAKKyAgICAyMTIsIDExOSwgMjEzLCAxMTYsIDIxMywgMTE1LCAyMTMsIDExNCwgMjEzLCAxMTMsIDIxMywgMTEyLCAyMTMsIDExMSwgCisgICAgMjEzLCAxMTAsIDIxMywgMTA5LCAyMTMsIDEwOCwgMjEzLCAxMDcsIDIxMywgMTA1LCAyMTMsIDEwNCwgMjEzLCAxMDMsIAorICAgIDIxMywgMTAyLCAyMTMsIDEwMSwgMjEzLCAxMDAsIDIxMywgOTksIDIxMywgOTgsIDIxMywgOTcsIDIxMywgOTYsIDIxMywgCisgICAgOTQsIDIxMywgOTMsIDIxMywgOTIsIDIxMywgOTEsIDIxMywgOTAsIDIxMywgODksIDIxMywgODgsIDIxMywgODcsIDIxMywgCisgICAgODYsIDIxMywgODUsIDIxMywgODMsIDIxMywgODIsIDIxMywgODEsIDIxMywgODAsIDIxMywgNzksIDIxMywgNzgsIDIxMywgCisgICAgNzcsIDIxMywgNzYsIDIxMywgNzUsIDIxMywgNzQsIDIxMywgNzIsIDIxMywgNzEsIDIxMywgNzAsIDIxMywgNjksIDIxMywgCisgICAgNjgsIDIxMywgNjcsIDIxMywgNjYsIDIxMywgNjUsIDIxMywgNjQsIDIxMywgNjMsIDIxMywgNjEsIDIxMywgNjAsIDIxMywgCisgICAgNTksIDIxMywgNTgsIDIxMywgNTcsIDIxMywgNTYsIDIxMywgNTUsIDIxMywgNTQsIDIxMywgNTMsIDIxMywgNTIsIDIxMywgCisgICAgNTAsIDIxMywgNDksIDIxMywgNDgsIDIxMywgNDcsIDIxMywgNDYsIDIxMywgNDUsIDIxMywgNDQsIDIxMywgNDMsIDIxMywgCisgICAgNDIsIDIxMywgNDEsIDIxMywgMzksIDIxMywgMzgsIDIxMywgMzcsIDIxMywgMzYsIDIxMywgMzUsIDIxMywgMzQsIDIxMywgCisgICAgMzMsIDIxMywgMzIsIDIxMywgMzEsIDIxMywgMzAsIDIxMywgMjgsIDIxMywgMjcsIDIxMywgMjYsIDIxMywgMjUsIDIxMywgCisgICAgMjQsIDIxMywgMjMsIDIxMywgMjIsIDIxMywgMjEsIDIxMywgMjAsIDIxMywgMTksIDIxMywgMTcsIDIxMywgMTYsIDIxMywgCisgICAgMTUsIDIxMywgMTQsIDIxMywgMTMsIDIxMywgMTIsIDIxMywgMTEsIDIxMywgMTAsIDIxMywgOSwgMjEzLCA4LCAyMTMsIDUsIAorICAgIDIxMywgNCwgMjEzLCAzLCAyMTMsIDIsIDIxMywgMSwgMjEzLCAwLCAyMTIsIDI1NSwgMjEyLCAyNTQsIDIxMiwgMjUzLCAKKyAgICAyMTIsIDI1MiwgMjEyLCAyNTAsIDIxMiwgMjQ5LCAyMTIsIDI0OCwgMjEyLCAyNDcsIDIxMiwgMjQ2LCAyMTIsIDI0NSwgCisgICAgMjEyLCAyNDQsIDIxMiwgMjQzLCAyMTIsIDI0MiwgMjEyLCAyNDEsIDIxMiwgMjM5LCAyMTIsIDIzOCwgMjEyLCAyMzcsIAorICAgIDIxMiwgMjM2LCAyMTIsIDIzNSwgMjEyLCAyMzQsIDIxMiwgMjMzLCAyMTIsIDIzMiwgMjEyLCAyMzEsIDIxMiwgMjMwLCAKKyAgICAyMTIsIDIyOCwgMjEyLCAyMjcsIDIxMiwgMjI2LCAyMTIsIDIyNSwgMjEyLCAyMjQsIDIxMiwgMjIzLCAyMTIsIDIyMiwgCisgICAgMjEyLCAyMjEsIDIxMiwgMjIwLCAyMTIsIDIxOSwgMjEyLCAyMTcsIDIxMiwgMjE2LCAyMTIsIDIxNSwgMjEyLCAyMTQsIAorICAgIDIxMiwgMjEzLCAyMTIsIDIxMiwgMjEyLCAyMTEsIDIxMiwgMjEwLCAyMTIsIDIwOSwgMjEyLCAyMDgsIDIxMiwgMjA2LCAKKyAgICAyMTIsIDIwNSwgMjEyLCAyMDQsIDIxMiwgMjAzLCAyMTIsIDIwMiwgMjEyLCAyMDEsIDIxMiwgMjAwLCA3LCA2LCAxLCAxMTUsIAorICAgIDIsIDIzMSwgMjMzLCAyMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDExNSwgMiwgMjMxLCAyMzMsIDIyLCAyNDIsIDEzNiwgNywgNiwgCisgICAgMSwgMTYwLCAyLCA2NywgMjMyLCAyMTQsIDUxLCA3LCA0LCAxLCAxNjAsIDIsIDY3LCAyMzIsIDIxNCwgNTEsIDcsIDYsIDEsIAorICAgIDE2MCwgMiwgNjcsIDIzMiwgMjE0LCAyNTIsIDQzLCAyMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDE2MCwgMiwgNjcsIDIzMiwgCisgICAgMjE0LCAyNTIsIDQzLCAyMiwgMjQyLCAxMzYsIDcsIDYsIDEsIDE2MCwgMiwgNjcsIDIzMiwgMjE0LCAyNTIsIDQzLCAyMiwgCisgICAgMTQyLCA3LCA0LCAxLCAxNjAsIDIsIDY3LCAyMzIsIDIxNCwgMjUyLCA0MywgMjIsIDE0MiwgNywgNiwgMSwgMTYwLCAyLCAKKyAgICAyNTAsIDMxLCAyMiwgMjMxLCAyMzIsIDcsIDQsIDEsIDE2MCwgMiwgMjUwLCAzMSwgMjIsIDIzMSwgMjMyLCA3LCA2LCAxLCAKKyAgICAxNjAsIDIsIDI1MCwgMzEsIDIyLCAyNTAsIDIzNCwgNywgNCwgMSwgMTYwLCAyLCAyNTAsIDMxLCAyMiwgMjUwLCAyMzQsIDcsIAorICAgIDYsIDEsIDI0MCwgMTU0LCAyLCAyMzEsIDIzMywgMjIsIDI0MiwgMTM2LCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgMjMxLCAKKyAgICAyMzMsIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDU5LCA3NywgMjIsIDE0MiwgNywgNCwgMSwgMjI5LCAKKyAgICA4MCwgMiwgMjE2LCA4OSwgNDgsIDcsIDYsIDEsIDE0NCwgMiwgNjcsIDIzMiwgMjE0LCA1MSwgNywgNCwgMSwgMTQ0LCAyLCAKKyAgICA2NywgMjMyLCAyMTQsIDUxLCA3LCA2LCAxLCAxNDQsIDIsIDY3LCAyMzIsIDIxNCwgMjUyLCA0MywgMjIsIDI0MiwgMTM2LCAKKyAgICA3LCA0LCAxLCAxNDQsIDIsIDY3LCAyMzIsIDIxNCwgMjUyLCA0MywgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxNDQsIDIsIAorICAgIDY3LCAyMzIsIDIxNCwgMjUyLCA0MywgMjIsIDE0MiwgNywgNCwgMSwgMTQ0LCAyLCA2NywgMjMyLCAyMTQsIDI1MiwgNDMsIAorICAgIDIyLCAxNDIsIDcsIDYsIDEsIDIyMiwgOTIsIDIsIDY3LCAyMzIsIDIxNCwgNTEsIDcsIDQsIDEsIDIyMiwgOTIsIDIsIDY3LCAKKyAgICAyMzIsIDIxNCwgNTEsIDcsIDYsIDEsIDEwNCwgMiwgMjMxLCAyMzMsIDIyLCAyNDIsIDEzNiwgNywgNCwgMSwgMTA0LCAyLCAKKyAgICAyMzEsIDIzMywgMjIsIDI0MiwgMTM2LCA3LCA2LCAxLCAxMTUsIDIsIDIyNiwgMjI1LCAyMiwgMTQyLCA3LCA0LCAxLCAxMTUsIAorICAgIDIsIDIyNiwgMjI1LCAyMiwgMTQyLCA3LCA2LCAxLCAxMTUsIDIsIDIyNiwgMjI1LCAyMiwgMTgyLCA3LCA0LCAxLCAxMTUsIAorICAgIDIsIDIyNiwgMjI1LCAyMiwgMTgyLCA3LCA2LCAxLCAxNjAsIDIsIDIyNiwgMjI1LCAyMiwgMTQyLCA3LCA0LCAxLCAxNjAsIAorICAgIDIsIDIyNiwgMjI1LCAyMiwgMTQyLCA3LCA2LCAxLCAxNjAsIDIsIDIyNiwgMjI1LCAyMiwgMTgyLCA3LCA0LCAxLCAxNjAsIAorICAgIDIsIDIyNiwgMjI1LCAyMiwgMTgyLCA3LCA2LCAxLCAxNjAsIDIsIDU5LCA3NywgMjIsIDE0MiwgNywgNCwgMSwgMTYwLCAyLCAKKyAgICA1OSwgNzcsIDIyLCAxNDIsIDcsIDYsIDEsIDE2MCwgMiwgNTksIDc3LCAyMiwgMTgyLCA3LCA0LCAxLCAxNjAsIDIsIDU5LCAKKyAgICA3NywgMjIsIDE4MiwgNywgNCwgMSwgMjQwLCAxNTQsIDIsIDU5LCA3NywgMjIsIDI0MiwgMTM2LCA3LCA0LCAxLCAyNDAsIAorICAgIDE1NCwgMiwgNTksIDc3LCAyMiwgMTgyLCA3LCA2LCAxLCAyNDAsIDE1NCwgMiwgMjI2LCAyMjUsIDIyLCAxNDIsIDcsIDQsIAorICAgIDEsIDI0MCwgMTU0LCAyLCAyMjYsIDIyNSwgMjIsIDU5LCA3NywgMjIsIDE0MiwgNywgNiwgMSwgMjQwLCAxNTQsIDIsIDIyNiwgCisgICAgMjI1LCAyMiwgMTgyLCA3LCA0LCAxLCAyNDAsIDE1NCwgMiwgMjI2LCAyMjUsIDIyLCA1OSwgNzcsIDIyLCAxODIsIDcsIDYsIAorICAgIDEsIDIzNSwgMTQ1LCAyLCAxODIsIDcsIDQsIDEsIDIzNSwgMTQ1LCAyLCA1OSwgNzcsIDIyLCAxODIsIDcsIDYsIDEsIDIzMywgCisgICAgMTQ5LCAyLCAxODIsIDcsIDQsIDEsIDIzMywgMTQ5LCAyLCAxODIsIDcsIDYsIDEsIDIzMiwgNTAsIDIsIDE4MiwgNywgNCwgCisgICAgMSwgMjMyLCA1MCwgMiwgMTgyLCA3LCA2LCAxLCAyMjMsIDIyNCwgMiwgMTgyLCA3LCA0LCAxLCAyMjMsIDIyNCwgMiwgMTgyLCAKKyAgICA3LCA2LCAxLCAxMDQsIDIsIDIyNiwgMjI1LCAyMiwgMTQyLCA3LCA0LCAxLCAxMDQsIDIsIDIyNiwgMjI1LCAyMiwgMTQyLCAKKyAgICA3LCA2LCAxLCAxMDQsIDIsIDIyNiwgMjI1LCAyMiwgMTgyLCA3LCA0LCAxLCAxMDQsIDIsIDIyNiwgMjI1LCAyMiwgMTgyLCAKKyAgICA3LCA2LCAxLCAxMDQsIDIsIDIzMSwgMjMzLCAyMiwgMTQyLCA3LCA0LCAxLCAxMDQsIDIsIDIzMSwgMjMzLCAyMiwgMTQyLCAKKyAgICA3LCA2LCAxLCAxMDQsIDIsIDIzMSwgMjMzLCAyMiwgMTgyLCA3LCA0LCAxLCAxMDQsIDIsIDIzMSwgMjMzLCAyMiwgMTgyLCAKKyAgICA3LCA0LCAxLCAyNTQsIDI0NCwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDIwNCwgMTQ0LCAyLCAyNDIsIDEzNiwgNywgNCwgMSwgCisgICAgMjA0LCAxNDQsIDIsIDE0MiwgNywgNCwgMSwgMjE1LCA5NCwgMjE0LCAxMDYsIDIsIDI0MiwgMTM2LCA3LCA0LCAxLCAyMTUsIAorICAgIDk0LCAyMTQsIDEwNiwgMiwgMTQyLCA3LCA0LCAxLCAyMjEsIDE5NiwgMiwgMjQyLCAxMzYsIDcsIDQsIDEsIDIyMSwgMTk2LCAKKyAgICAyLCAxNDIsIDcsIDQsIDEsIDI0MSwgNTEsIDIyMSwgMTk2LCAyLCAyNDIsIDEzNiwgNywgNCwgMSwgMjQxLCA1MSwgMjIxLCAKKyAgICAxOTYsIDIsIDE0MiwgMTQ2LCAxLCAyMzQsIDEwOSwgMzYsIDExNiwgMjM1LCAyMywgMzYsIDExNiwgMjI5LCA3OSwgMzYsIAorICAgIDExNiwgMjUxLCA2NiwgMzYsIDExNiwgMjI3LCAxNjcsIDM2LCAxMTYsIDIxNSwgMTU5LCAzNiwgMTE2LCAyMjgsIDExMSwgCisgICAgMzYsIDExNiwgMjE3LCAxNTIsIDM2LCAxMTYsIDIzMCwgMjUsIDM2LCAxMTYsIDIyNiwgMTA1LCAzNiwgMTE2LCAxOTMsIDM2LCAKKyAgICAxMTYsIDIxMSwgMTE3LCAzNiwgMTE2LCAxNTMsIDM2LCAxMTYsIDE1NiwgMzYsIDExNiwgMjE0LCAxMDUsIDM2LCAxMTYsIAorICAgIDIzMiwgMTc2LCAzNiwgMTE2LCAyMzIsIDE4NSwgMzYsIDExNiwgMjIyLCAxODAsIDM2LCAxMTYsIDIyOCwgOTMsIDM2LCAKKyAgICAxMTYsIDIzNSwgMTQ0LCAzNiwgMTE2LCAyMjAsIDEwNCwgMzYsIDExNiwgMjE4LCAyMjYsIDM2LCAxMTYsIDIyMiwgOTEsIAorICAgIDM2LCAxMTYsIDI0MiwgNjAsIDM2LCAxMTYsIDIzMywgMjMyLCAzNiwgMywgMjM1LCAxMCwgMzYsIDMsIDIzNCwgOTIsIDM2LCAKKyAgICAzLCAyMzQsIDgzLCAzNiwgMywgMjMzLCAyMTcsIDM2LCAzLCAyMzMsIDE4OCwgMzYsIDMsIDIzNCwgMTgyLCAzNiwgMywgCisgICAgMjM0LCAxODEsIDM2LCAzLCAyMzQsIDI0NiwgMzYsIDMsIDIzNCwgMjgsIDM2LCAzLCAyMzQsIDEwLCAzNiwgMywgMjM0LCAKKyAgICAxOTUsIDM2LCAzLCAyMjksIDc2LCAzNiwgMywgMjI5LCAyNywgMzYsIDMsIDIyOSwgMjMsIDM2LCAzLCAyMjgsIDI0OCwgMzYsIAorICAgIDMsIDIyOCwgMjQxLCAzNiwgMywgMjI5LCA2NCwgMzYsIDMsIDIyOSwgNjIsIDM2LCAzLCAyMjksIDczLCAzNiwgMywgMjI5LCAKKyAgICA0LCAzNiwgMywgMjI4LCAyNTUsIDM2LCAzLCAyMjksIDY2LCAzNiwgMywgMjUxLCAzMiwgMzYsIDMsIDI1MCwgNTEsIDM2LCAKKyAgICAzLCAyNTAsIDQxLCAzNiwgMywgMjQ5LCAxMTIsIDM2LCAzLCAyNDksIDgzLCAzNiwgMywgMjUwLCAxOTAsIDM2LCAzLCAyNTAsIAorICAgIDE4MiwgMzYsIDMsIDI1MSwgMjIsIDM2LCAzLCAyNDksIDIzOCwgMzYsIDMsIDI0OSwgMTc0LCAzNiwgMywgMjUwLCAyMjIsIAorICAgIDM2LCAzLCAyMjcsIDE2NCwgMzYsIDMsIDIyNywgMTQ4LCAzNiwgMywgMjI3LCAxNDMsIDM2LCAzLCAyMjcsIDEyOCwgMzYsIAorICAgIDMsIDIyNywgMTIxLCAzNiwgMywgMjI3LCAxNTYsIDM2LCAzLCAyMjcsIDE1NSwgMzYsIDMsIDIyNywgMTYxLCAzNiwgMywgCisgICAgMjI3LCAxMzQsIDM2LCAzLCAyMjcsIDEzMiwgMzYsIDMsIDIyNywgMTU5LCAzNiwgMywgMjE1LCAxNTUsIDM2LCAzLCAyMTUsIAorICAgIDEzNSwgMzYsIDMsIDIxNSwgMTM0LCAzNiwgMywgMjE1LCAxMjMsIDM2LCAzLCAyMTUsIDEyMCwgMzYsIDMsIDIxNSwgMTUxLCAKKyAgICAzNiwgMywgMjE1LCAxNTAsIDM2LCAzLCAyMTUsIDE1NCwgMzYsIDMsIDIxNSwgMTMzLCAzNiwgMywgMjE1LCAxMzIsIDM2LCAKKyAgICAzLCAyMTUsIDE1MywgMzYsIDMsIDIyOCwgMTA5LCAzNiwgMywgMjI4LCA5NSwgMzYsIDMsIDIyOCwgOTQsIDM2LCAzLCAyMjgsIAorICAgIDc4LCAzNiwgMywgMjI4LCA3NywgMzYsIDMsIDIyOCwgMTA1LCAzNiwgMywgMjI4LCAxMDQsIDM2LCAzLCAyMjgsIDEwOCwgCisgICAgMzYsIDMsIDIyOCwgODAsIDM2LCAzLCAyMjgsIDc5LCAzNiwgMywgMjI4LCAxMDcsIDM2LCAzLCAyMTcsIDEwMSwgMzYsIDMsIAorICAgIDIxNiwgMTE3LCAzNiwgMywgMjE2LCAxMDMsIDM2LCAzLCAyMTUsIDExOCwgMzYsIDMsIDIxNSwgODUsIDM2LCAzLCAyMTcsIAorICAgIDIyLCAzNiwgMywgMjE3LCAxMSwgMzYsIDMsIDIxNywgNzksIDM2LCAzLCAxMTEsIDM2LCAzLCAyMTYsIDE3LCAzNiwgMywgCisgICAgMjE3LCA0MSwgMzYsIDMsIDIyOSwgMjI1LCAzNiwgMywgMjI4LCAyMzMsIDM2LCAzLCAyMjgsIDIwOCwgMzYsIDMsIDIyNywgCisgICAgMjM3LCAzNiwgMywgMjI3LCAxNzksIDM2LCAzLCAyMjksIDEwNywgMzYsIDMsIDIyOSwgMTAzLCAzNiwgMywgMjI5LCAyMTIsIAorICAgIDM2LCAzLCAyMjgsIDc0LCAzNiwgMywgMjI4LCA2NCwgMzYsIDMsIDIyOSwgMTg3LCAzNiwgMywgMjI2LCA4OSwgMzYsIDMsIAorICAgIDIyNSwgMTA4LCAzNiwgMywgMjI1LCA3MSwgMzYsIDMsIDIyNCwgMTUwLCAzNiwgMywgMjI0LCAxMTksIDM2LCAzLCAyMjUsIAorICAgIDIyMSwgMzYsIDMsIDIyNSwgMjExLCAzNiwgMywgMjI2LCA3MSwgMzYsIDMsIDIyNSwgMTYsIDM2LCAzLCAyMjQsIDI0OSwgCisgICAgMzYsIDMsIDIyNSwgMjM0LCAzNiwgMywgMjMxLCAyMzcsIDM2LCAzLCAyMzAsIDIzMCwgMzYsIDMsIDIzMCwgMjAxLCAzNiwgCisgICAgMywgMjMwLCAxMDIsIDM2LCAzLCAyMzAsIDU0LCAzNiwgMywgMjMxLCA5MSwgMzYsIDMsIDIzMSwgODAsIDM2LCAzLCAyMzEsIAorICAgIDIwMywgMzYsIDMsIDIzMCwgMTYxLCAzNiwgMywgMjMwLCAxMzIsIDM2LCAzLCAyMzEsIDEzNSwgMzYsIDMsIDIxMSwgMTAzLCAKKyAgICAzNiwgMywgMjExLCA4LCAzNiwgMywgMjEwLCAyNTUsIDM2LCAzLCAyMTAsIDIxMiwgMzYsIDMsIDIxMCwgMTgxLCAzNiwgMywgCisgICAgMjExLCA0NywgMzYsIDMsIDIxMSwgNDQsIDM2LCAzLCAyMTEsIDgyLCAzNiwgMywgMjEwLCAyNDQsIDM2LCAzLCAyMTAsIAorICAgIDIyOSwgMzYsIDMsIDIxMSwgNTUsIDM2LCAzLCAyMjMsIDE4NCwgMzYsIDMsIDIyMywgMzUsIDM2LCAzLCAyMjIsIDIzOSwgCisgICAgMzYsIDMsIDIyMiwgMTQwLCAzNiwgMywgMjIyLCAxMTIsIDM2LCAzLCAyMjMsIDEyOCwgMzYsIDMsIDIyMywgMTA4LCAzNiwgCisgICAgMywgMjIzLCAxNjYsIDM2LCAzLCAyMjIsIDIxMSwgMzYsIDMsIDIyMiwgMTk3LCAzNiwgMywgMjIzLCAxMzYsIDM2LCAzLCAKKyAgICAyMzMsIDEzNCwgMzYsIDMsIDIzMiwgMjQxLCAzNiwgMywgMjMyLCAyMjcsIDM2LCAzLCAyMzIsIDk4LCAzNiwgMywgMjMyLCAKKyAgICA3MywgMzYsIDMsIDIzMywgNTgsIDM2LCAzLCAyMzMsIDUwLCAzNiwgMywgMjMzLCAxMDksIDM2LCAzLCAyMzIsIDE1NiwgMzYsIAorICAgIDMsIDIzMiwgMTI3LCAzNiwgMywgMjMzLCA3NCwgMzYsIDMsIDIxNCwgMjYsIDM2LCAzLCAyMTMsIDE3NiwgMzYsIDMsIDIxMywgCisgICAgMTYyLCAzNiwgMywgMjEyLCAxMTYsIDM2LCAzLCAyMTIsIDEwOSwgMzYsIDMsIDIxMywgMjU1LCAzNiwgMywgMjEzLCAyNTAsIAorICAgIDM2LCAzLCAyMTQsIDIzLCAzNiwgMywgMjEzLCAxMzgsIDM2LCAzLCAyMTMsIDEyNywgMzYsIDMsIDIxNCwgNSwgMzYsIDMsIAorICAgIDIzMiwgMTc0LCAzNiwgMywgMjMyLCAxNjksIDM2LCAzLCAyMzIsIDE2OCwgMzYsIDMsIDIzMiwgMTY1LCAzNiwgMywgMjMyLCAKKyAgICAxNjQsIDM2LCAzLCAyMzIsIDE3MSwgMzYsIDMsIDIzMiwgMTcwLCAzNiwgMywgMjMyLCAxNzMsIDM2LCAzLCAyMzIsIDE2NywgCisgICAgMzYsIDMsIDIzMiwgMTY2LCAzNiwgMywgMjMyLCAxNzIsIDM2LCAzLCAyMzIsIDE4MywgMzYsIDMsIDIzMiwgMTc4LCAzNiwgCisgICAgMywgMjMyLCAxNzcsIDM2LCAzLCAyMzIsIDE2MSwgMzYsIDMsIDIzMiwgMTYwLCAzNiwgMywgMjMyLCAxODAsIDM2LCAzLCAKKyAgICAyMzIsIDE3OSwgMzYsIDMsIDIzMiwgMTgyLCAzNiwgMywgMjMyLCAxNjMsIDM2LCAzLCAyMzIsIDE2MiwgMzYsIDMsIDIzMiwgCisgICAgMTgxLCAzNiwgMywgMjIyLCAxNzgsIDM2LCAzLCAyMjIsIDE2NywgMzYsIDMsIDIyMiwgMTY2LCAzNiwgMywgMjIyLCAxNjAsIAorICAgIDM2LCAzLCAyMjIsIDE1MywgMzYsIDMsIDIyMiwgMTc0LCAzNiwgMywgMjIyLCAxNzMsIDM2LCAzLCAyMjIsIDE3NywgMzYsIAorICAgIDMsIDIyMiwgMTY1LCAzNiwgMywgMjIyLCAxNjQsIDM2LCAzLCAyMjIsIDE3NiwgMzYsIDMsIDIyOCwgOTEsIDM2LCAzLCAKKyAgICAyMjgsIDg2LCAzNiwgMywgMjI4LCA4NSwgMzYsIDMsIDIyOCwgODIsIDM2LCAzLCAyMjgsIDgxLCAzNiwgMywgMjI4LCA4OCwgCisgICAgMzYsIDMsIDIyOCwgODcsIDM2LCAzLCAyMjgsIDkwLCAzNiwgMywgMjI4LCA4NCwgMzYsIDMsIDIyOCwgODMsIDM2LCAzLCAKKyAgICAyMjgsIDg5LCAzNiwgMywgMjM1LCAxNDAsIDM2LCAzLCAyMzUsIDEwOCwgMzYsIDMsIDIzNSwgMTAxLCAzNiwgMywgMjM1LCAKKyAgICA1MSwgMzYsIDMsIDIzNSwgMzMsIDM2LCAzLCAyMzUsIDEyNiwgMzYsIDMsIDIzNSwgMTI0LCAzNiwgMywgMjM1LCAxMzUsIAorICAgIDM2LCAzLCAyMzUsIDY4LCAzNiwgMywgMjM1LCA1OSwgMzYsIDMsIDIzNSwgMTI5LCAzNiwgMywgMjIwLCA5OCwgMzYsIDMsIAorICAgIDIyMCwgMzIsIDM2LCAzLCAyMjAsIDI3LCAzNiwgMywgMjE5LCAyMjUsIDM2LCAzLCAyMTksIDIxMCwgMzYsIDMsIDIyMCwgCisgICAgNjMsIDM2LCAzLCAyMjAsIDYxLCAzNiwgMywgMjIwLCA5MCwgMzYsIDMsIDIyMCwgNywgMzYsIDMsIDIyMCwgMSwgMzYsIDMsIAorICAgIDIyMCwgNzEsIDM2LCAzLCAyMTgsIDIyMiwgMzYsIDMsIDIxOCwgMTkyLCAzNiwgMywgMjE4LCAxODgsIDM2LCAzLCAyMTgsIAorICAgIDE3OSwgMzYsIDMsIDIxOCwgMTc2LCAzNiwgMywgMjE4LCAxOTcsIDM2LCAzLCAyMTgsIDE5NiwgMzYsIDMsIDIxOCwgMjIxLCAKKyAgICAzNiwgMywgMjE4LCAxODQsIDM2LCAzLCAyMTgsIDE4MywgMzYsIDMsIDIxOCwgMTk5LCAzNiwgMywgMjIyLCAzMSwgMzYsIDMsIAorICAgIDIxOSwgMTkxLCAzNiwgMywgMjE5LCAxNzUsIDM2LCAzLCAyMTgsIDgzLCAzNiwgMywgMjE4LCA0LCAzNiwgMywgMjIxLCAKKyAgICAxODEsIDM2LCAzLCAyMjEsIDE3MCwgMzYsIDMsIDIyMiwgMTcsIDM2LCAzLCAyMTksIDU4LCAzNiwgMywgMjE5LCA0MCwgMzYsIAorICAgIDMsIDIyMSwgMjE5LCAzNiwgMywgMjQyLCA0NiwgMzYsIDMsIDI0MSwgMTgwLCAzNiwgMywgMjQxLCAxNjEsIDM2LCAzLCAKKyAgICAyNDAsIDIyMiwgMzYsIDMsIDI0MCwgMjAyLCAzNiwgMywgMjQxLCAyMzgsIDM2LCAzLCAyNDEsIDIyMCwgMzYsIDMsIDI0MiwgCisgICAgMzYsIDM2LCAzLCAyNDEsIDY4LCAzNiwgMywgMjQxLCA1MywgMzYsIDMsIDI0MSwgMjQ2LCAzNiwgMywgMjMzLCAyMzEsIDM2LCAKKyAgICAzLCAyMzMsIDIzMCwgMzYsIDMsIDIzMywgMjI1LCAzNiwgMywgMjMzLCAyMjQsIDM2LCAzLCAyMzMsIDIyMSwgMzYsIDMsIAorICAgIDIzMywgMjIwLCAzNiwgMywgMjMzLCAyMjcsIDM2LCAzLCAyMzMsIDIyNiwgMzYsIDMsIDIzMywgMjI5LCAzNiwgMywgMjMzLCAKKyAgICAyMjMsIDM2LCAzLCAyMzMsIDIyMiwgMzYsIDMsIDIzMywgMjI4LCAzNiwgMywgMjE5LCAyMzEsIDE3NSwgMTE2LCA1LCAyMTEsIAorICAgIDY4LCAxNzUsIDExNiwgNSwgMjIzLCAxNTUsIDE3NSwgMTE2LCA1LCAyMjMsIDc4LCA5OCwgMSwgMjE1LCAyOCwgNjksIDExNiwgCisgICAgNSwgMjQ5LCAyMzMsIDE3NiwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIzNCwgMTMyLCA2OSwgMTE2LCA1LCAyNDksIDIzMywgCisgICAgMjM0LCAyOCwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIzNCwgMTA1LCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjI5LCA0LCAKKyAgICA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjUxLCAzMywgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDI1MCwgMTU3LCA2OSwgMTE2LCAKKyAgICA1LCAyNDksIDIzMywgMjQ5LCAyMzgsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyNTAsIDg2LCA2OSwgMTE2LCA1LCAyNDksIAorICAgIDIzMywgMjI3LCAxMzQsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyNDgsIDIyMSwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIxNSwgCisgICAgMTQ0LCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjQ3LCAxNDUsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMTUsIDEzOSwgNjksIAorICAgIDExNiwgNSwgMjQ5LCAyMzMsIDE5NywgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIxNywgMTA1LCA2OSwgMTE2LCA1LCAyNDksIAorICAgIDIzMywgMjE2LCAyMDgsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAxMTEsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMTYsIDE1NiwgCisgICAgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIyOCwgNzQsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyNTIsIDE5MSwgNjksIDExNiwgCisgICAgNSwgMjQ5LCAyMzMsIDIyNSwgMTQ3LCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjI1LCAxNiwgNjksIDExNiwgNSwgMjQ5LCAKKyAgICAyMzMsIDIyNSwgMTIxLCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjMwLCAxNjEsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMTAsIAorICAgIDI0NCwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIyMiwgMjExLCA2OSwgMTE2LCA1LCAyNDksIDIzMywgMjMyLCAxNTYsIDY5LCAKKyAgICAxMTYsIDUsIDI0OSwgMjMzLCAyMTMsIDEzOCwgNjksIDExNiwgNSwgMjQ5LCAyMzMsIDIyMCwgMTAyLCA2OSwgMTE2LCA1LCAKKyAgICAyNDksIDIzMywgMjE4LCAyMjMsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMDYsIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAxNjIsIAorICAgIDY5LCAxMTYsIDUsIDI0OSwgMjMzLCAyMzMsIDEzNSwgNjksIDI1LCA1LCAyNDksIDIzMywgMjI0LCA4OCwgNjksIDIzNSwgCisgICAgMjQzLCAyNSwgNSwgMjQ5LCAyMzMsIDIyNCwgMzAsIDY5LCAyMzUsIDI0MywgMjUsIDUsIDI0OSwgMjMzLCAyMjIsIDEwMCwgCisgICAgNjksIDIzNSwgMjQzLCAyNSwgNSwgMjQ5LCAyMzMsIDIyMiwgOTMsIDY5LCAyMzUsIDI0MywgMjUsIDUsIDI0OSwgMjMzLCAKKyAgICAyMjQsIDY5LCA2OSwgMjUsIDUsIDIyNiwgMjA0LCA2OSwgMjUsIDUsIDI1NSwgMzQsIDE0MSwgMSwgMjUxLCAyNTUsIDIyOSwgCisgICAgNzcsIDE0MSwgMSwgMjUxLCAyNTUsIDIyOSwgMjcsIDE0MSwgMSwgMjUxLCAyNTUsIDIyOCwgMjQ4LCAxNDEsIDEsIDI1MSwgCisgICAgMjU1LCAyMjksIDY0LCAxNDEsIDEsIDI1MSwgMjU1LCAyMjksIDQsIDU2LCAxLCAyNTEsIDI1NSwgMjI5LCA3NywgNTYsIDEsIAorICAgIDI1MSwgMjU1LCAyMjksIDI3LCA1NiwgMSwgMjUxLCAyNTUsIDIyOCwgMjQ4LCA1NiwgMSwgMjUxLCAyNTUsIDIyOSwgNjQsIAorICAgIDU2LCAxLCAyNTEsIDI1NSwgMjI5LCA0LCA1NiwgMSwgMjU0LCAxOTQsIDI1MCwgMTkwLCA1NiwgMSwgMjU0LCAxOTQsIDIxNSwgCisgICAgMTE4LCA1NiwgMSwgMjU0LCAxOTQsIDExMSwgNTYsIDEsIDI1NCwgMTk0LCAyMjYsIDEwNSwgNTgsIDEsIDI0NSwgMjAsIAorICAgIDI0NSwgMTksIDI0OSwgMTgyLCAxMzgsIDEzMCwgNTgsIDEsIDI0NSwgMTksIDI0NSwgMjAsIDI0OSwgMTgyLCAxMzgsIDEzMCwgCiB9OwogCiBzdGF0aWMgdW5zaWduZWQgY2hhciBwaHJhc2Vib29rX29mZnNldDFbXSA9IHsKQEAgLTEzMTI3LDQ4NyArMTM4MjQsNDg4IEBACiAgICAgMjEsIDIyLCAyMywgMjQsIDI1LCAyNiwgMjcsIDI4LCAyOSwgMzAsIDMxLCAzMiwgMzMsIDM0LCAzNSwgMzYsIDM3LCAzOCwgCiAgICAgMzksIDQwLCA0MSwgNDIsIDQzLCA0NCwgNDUsIDQ2LCA0NywgNDgsIDQ5LCA1MCwgNTEsIDUyLCA1MywgNTQsIDU1LCA1NiwgCiAgICAgNTcsIDU4LCA1OSwgNjAsIDYxLCA2MiwgNjMsIDY0LCA2NSwgNjYsIDY3LCA2OCwgNjksIDcwLCA3MSwgNzIsIDczLCA3NCwgCi0gICAgNzUsIDc2LCA3NywgNzgsIDc5LCA4MCwgODEsIDgyLCA4MywgODQsIDg1LCA4NiwgMTcsIDg3LCA4OCwgODksIDkwLCA5MSwgCi0gICAgOTIsIDkzLCA5NCwgOTUsIDk2LCA5NywgOTgsIDk5LCAxMDAsIDEwMSwgMTAyLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxMDMsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTA0LCAxMDUsIDEwNiwgMTA3LCAxMDgsIAotICAgIDEwOSwgMTEwLCAxMTEsIDExMiwgMTEzLCAxMTQsIDExNSwgMTE2LCAxMTcsIDExOCwgMTE5LCAxMjAsIDEyMSwgMTIyLCAKLSAgICAxMjMsIDEyNCwgMTI1LCAxMjYsIDEyNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTI4LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxMjksIDEzMCwgCi0gICAgMTMxLCAxMzIsIDEzMywgMTM0LCAxMzUsIDEzNiwgMTM3LCAxMzgsIDEzOSwgMTQwLCAxNDEsIDE0MiwgMTQzLCAxNDQsIAotICAgIDE0NSwgMTQ2LCAxNywgMTQ3LCAxNDgsIDE0OSwgMTUwLCAxNTEsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE1MiwgMTcsIAotICAgIDE1MywgMTcsIDE1NCwgMTcsIDE1NSwgMTcsIDE1NiwgMTcsIDE3LCAxNywgMTU3LCAxNywgMTcsIDE3LCAxNTgsIDE1OSwgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTYwLCAxNjEsIDE2MiwgMTYzLCAxNjQsIAotICAgIDE2NSwgMTY2LCAxNywgMTY3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE2OCwgMTY5LCAxNzAsIDE3MSwgMTcyLCAxNzMsIAotICAgIDE3NCwgMTc1LCAxNzYsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNzcsIAotICAgIDE3OCwgMTc5LCAxODAsIDE4MSwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE4MiwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTgzLCAxODQsIDE4NSwgMTg2LCAxODcsIDE3LCAxODgsIAotICAgIDE3LCAxODksIDE5MCwgMTkxLCAxOTIsIDE5MywgMTk0LCAxOTUsIDE5NiwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTk3LCAxOTgsIDE5OSwgMjAwLCAyMDEsIDE3LCAyMDIsIDIwMywgMjA0LCAyMDUsIDIwNiwgCi0gICAgMjA3LCAyMDgsIDIwOSwgMjEwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAyMTEsIDIxMiwgMjEzLCAKLSAgICAyMTQsIDIxNSwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMjE2LCAxNywgMjE3LCAyMTgsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCisgICAgNzUsIDc2LCA3NywgNzgsIDc5LCA4MCwgODEsIDgyLCA4MywgODQsIDg1LCA4NiwgODcsIDg4LCA4OSwgOTAsIDkxLCA5MiwgCisgICAgOTMsIDk0LCA5NSwgOTYsIDk3LCA5OCwgOTksIDEwMCwgMTAxLCAxMDIsIDEwMywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgCisgICAgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgCisgICAgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgCisgICAgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgMTA0LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDEwNSwgMTA2LCAxMDcsIDEwOCwgMTA5LCAKKyAgICAxMTAsIDExMSwgMTEyLCAxMTMsIDExNCwgMTE1LCAxMTYsIDExNywgMTE4LCAxMTksIDEyMCwgMTIxLCAxMjIsIDEyMywgCisgICAgMTI0LCAxMjUsIDEyNiwgMTI3LCAxMjgsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDEyOSwgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgMTMwLCAxMzEsIAorICAgIDEzMiwgMTMzLCAxMzQsIDEzNSwgMTM2LCAxMzcsIDEzOCwgMTM5LCAxNDAsIDE0MSwgMTQyLCAxNDMsIDE0NCwgMTQ1LCAKKyAgICAxNDYsIDE0NywgODcsIDE0OCwgMTQ5LCAxNTAsIDE1MSwgMTUyLCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAxNTMsIDg3LCAKKyAgICAxNTQsIDE1NSwgMTU2LCA4NywgMTU3LCA4NywgMTU4LCA4NywgODcsIDg3LCAxNTksIDg3LCA4NywgODcsIDE2MCwgMTYxLCAKKyAgICAxNjIsIDE2MywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgMTY0LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAxNjUsIDE2NiwgMTY3LCAxNjgsIAorICAgIDE2OSwgMTcwLCAxNzEsIDg3LCAxNzIsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgMTczLCAxNzQsIDE3NSwgMTc2LCAxNzcsIDE3OCwgCisgICAgMTc5LCAxODAsIDE4MSwgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDE4MiwgCisgICAgMTgzLCAxODQsIDE4NSwgMTg2LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAxODcsIDE4OCwgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICAxODksIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgCisgICAgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgCisgICAgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgCisgICAgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDE5MCwgMTkxLCAxOTIsIDE5MywgMTk0LCA4NywgMTk1LCAKKyAgICA4NywgMTk2LCAxOTcsIDE5OCwgMTk5LCAyMDAsIDIwMSwgMjAyLCAyMDMsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgMjA0LCAyMDUsIDg3LCA4NywgMjA2LCAyMDcsIDIwOCwgMjA5LCAyMTAsIDg3LCAyMTEsIDIxMiwgMjEzLCAyMTQsIAorICAgIDIxNSwgMjE2LCAyMTcsIDIxOCwgMjE5LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAyMjAsIDIyMSwgCisgICAgMjIyLCAyMjMsIDIyNCwgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCAKKyAgICA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgMjI1LCA4NywgMjI2LCAyMjcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCAyMjgsIDIyOSwgMjMwLCAyMzEsIDIzMiwgMjMzLCAyMzQsIDIzNSwgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIDg3LCA4NywgODcsIAorICAgIDg3LCA4NywgODcsIDg3LCAKIH07CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGhyYXNlYm9va19vZmZzZXQyW10gPSB7CkBAIC0xMzYxNSwyODAzICsxNDMxMywzMDE1IEBACiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMywgNiwgOSwgMTEsIDE0LCAxNywgMTksIDIxLCAyNCwgMjcsIDI5LCAzMSwgCiAgICAgMzMsIDM1LCAzOSwgNDEsIDQ0LCA0NiwgNDgsIDUwLCA1MiwgNTQsIDU2LCA1OCwgNjAsIDYyLCA2NCwgNjYsIDY5LCA3MiwgCiAgICAgNzUsIDc4LCA4MiwgODYsIDkxLCA5NiwgMTAxLCAxMDUsIDExMCwgMTE1LCAxMjAsIDEyNCwgMTI5LCAxMzQsIDEzOCwgMTQyLCAKLSAgICAxNDYsIDE1MCwgMTU1LCAxNjAsIDE2NCwgMTY4LCAxNzMsIDE3NywgMTgyLCAxODcsIDE5MiwgMTk3LCAyMDIsIDIwNSwgCi0gICAgMjA5LCAyMTIsIDIxNiwgMjE5LCAyMjMsIDIyNywgMjMyLCAyMzcsIDI0MiwgMjQ2LCAyNTEsIDI1NiwgMjYxLCAyNjUsIAotICAgIDI3MCwgMjc1LCAyNzksIDI4MywgMjg3LCAyOTEsIDI5NiwgMzAxLCAzMDUsIDMwOSwgMzE0LCAzMTgsIDMyMywgMzI4LCAKLSAgICAzMzMsIDMzOCwgMzQzLCAzNDcsIDM1MCwgMzU0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNTYsIDM2MCwgMzY1LCAKLSAgICAzNjgsIDM3MSwgMzc0LCAzNzcsIDM4MCwgMzgzLCAzODUsIDM4OCwgMzk0LCA0MDIsIDQwNSwgNDA5LCA0MTIsIDQxNCwgCi0gICAgNDE3LCA0MjAsIDQyMywgNDI2LCA0MzAsIDQzMywgNDM2LCA0NDAsIDQ0MiwgNDQ1LCA0NTEsIDQ1OSwgNDY2LCA0NzMsIAotICAgIDQ4MCwgNDg1LCA0OTIsIDQ5OCwgNTA1LCA1MTIsIDUxOSwgNTI3LCA1MzIsIDU0MCwgNTQ3LCA1NTMsIDU2MCwgNTY3LCAKLSAgICA1NzUsIDU4MiwgNTkwLCA1OTgsIDYwMywgNjExLCA2MTgsIDYyNCwgNjMxLCA2MzgsIDY0NSwgNjQ4LCA2NTQsIDY2MSwgCi0gICAgNjY3LCA2NzQsIDY4MSwgNjg4LCA2OTMsIDY5OSwgNzA2LCA3MTIsIDcxOSwgNzI2LCA3MzMsIDc0MSwgNzQ2LCA3NTQsIAotICAgIDc2MSwgNzY3LCA3NzQsIDc4MSwgNzg5LCA3OTYsIDgwNCwgODEyLCA4MTcsIDgyNSwgODMyLCA4MzgsIDg0NSwgODUyLCAKLSAgICA4NTksIDg2MiwgODY4LCA4NzUsIDg4MSwgODg4LCA4OTUsIDkwMiwgOTA3LCA5MTUsIDkyMiwgOTI5LCA5MzYsIDk0MywgCi0gICAgOTUwLCA5NTcsIDk2NCwgOTcxLCA5NzksIDk4NywgOTk1LCAxMDAzLCAxMDExLCAxMDE5LCAxMDI3LCAxMDM1LCAxMDQyLCAKLSAgICAxMDQ5LCAxMDU2LCAxMDYzLCAxMDcwLCAxMDc3LCAxMDg0LCAxMDkxLCAxMDk4LCAxMTA1LCAxMTEyLCAxMTE5LCAxMTI3LCAKLSAgICAxMTM1LCAxMTQzLCAxMTUxLCAxMTU5LCAxMTY3LCAxMTc1LCAxMTgzLCAxMTkxLCAxMTk5LCAxMjA2LCAxMjEzLCAxMjIxLCAKLSAgICAxMjI5LCAxMjM3LCAxMjQ1LCAxMjUzLCAxMjYxLCAxMjY5LCAxMjc3LCAxMjg1LCAxMjkxLCAxMjk2LCAxMzAxLCAxMzA5LCAKLSAgICAxMzE3LCAxMzI1LCAxMzMzLCAxMzM4LCAxMzQ1LCAxMzUyLCAxMzYwLCAxMzY4LCAxMzc2LCAxMzg0LCAxMzk0LCAxNDA0LCAKLSAgICAxNDExLCAxNDE4LCAxNDI1LCAxNDMyLCAxNDQwLCAxNDQ4LCAxNDU2LCAxNDY0LCAxNDc1LCAxNDgwLCAxNDg1LCAxNDkyLCAKLSAgICAxNDk5LCAxNTA2LCAxNTEzLCAxNTIwLCAxNTI3LCAxNTMyLCAxNTM3LCAxNTQ0LCAxNTUxLCAxNTU5LCAxNTY3LCAxNTc1LCAKLSAgICAxNTgzLCAxNTkwLCAxNTk3LCAxNjA1LCAxNjEzLCAxNjIxLCAxNjI5LCAxNjM3LCAxNjQ1LCAxNjUzLCAxNjYxLCAxNjY5LCAKLSAgICAxNjc3LCAxNjg0LCAxNjkxLCAxNjk4LCAxNzA1LCAxNzEyLCAxNzE5LCAxNzI2LCAxNzMzLCAxNzQxLCAxNzQ5LCAxNzU2LCAKLSAgICAxNzYzLCAxNzcwLCAxNzc3LCAxNzg1LCAxNzkzLCAxODAxLCAxODA5LCAxODE3LCAxODI0LCAxODMxLCAxODM5LCAxODQ3LCAKLSAgICAxODU1LCAxODYzLCAxODY4LCAxODc0LCAxODgwLCAxODg3LCAxODk0LCAxODk5LCAxOTA0LCAxOTEwLCAxOTE3LCAxOTI0LCAKLSAgICAxOTMxLCAxOTM4LCAxOTQ2LCAxOTU0LCAxOTYxLCAxOTY3LCAxOTcyLCAxOTc4LCAxOTg1LCAxOTkyLCAxOTk5LCAyMDA0LCAKLSAgICAyMDA5LCAyMDE0LCAyMDIxLCAyMDI4LCAyMDM1LCAyMDQyLCAyMDQ5LCAyMDU1LCAyMDYzLCAyMDczLCAyMDgyLCAyMDg5LCAKLSAgICAyMDk2LCAyMTAxLCAyMTA2LCAyMTEzLCAyMTIwLCAyMTI0LCAyMTI5LCAyMTM0LCAyMTM5LCAyMTQ3LCAyMTU2LCAyMTYzLCAKLSAgICAyMTcwLCAyMTc5LCAyMTg2LCAyMTkzLCAyMTk4LCAyMjA1LCAyMjEyLCAyMjE5LCAyMjI2LCAyMjMzLCAyMjM4LCAyMjQ1LCAKLSAgICAyMjUyLCAyMjYwLCAyMjY1LCAyMjcwLCAyMjc1LCAyMjg1LCAyMjg5LCAyMjk1LCAyMzAxLCAyMzA3LCAyMzEzLCAyMzIxLCAKLSAgICAyMzM0LCAyMzQyLCAyMzQ3LCAyMzU3LCAyMzYyLCAyMzY3LCAyMzc3LCAyMzgyLCAyMzg5LCAyMzk2LCAyNDA0LCAyNDEyLCAKLSAgICAyNDE5LCAyNDI2LCAyNDMzLCAyNDQwLCAyNDUwLCAyNDYwLCAyNDY5LCAyNDc4LCAyNDg4LCAyNDk4LCAyNTA4LCAyNTE4LCAKLSAgICAyNTI0LCAyNTM0LCAyNTQ0LCAyNTU0LCAyNTY0LCAyNTcyLCAyNTgwLCAyNTg3LCAyNTk0LCAyNjAyLCAyNjEwLCAyNjE4LCAKLSAgICAyNjI2LCAyNjMzLCAyNjQwLCAyNjUwLCAyNjYwLCAyNjY4LCAyNjc2LCAyNjg0LCAyNjg5LCAyNjk5LCAyNzA0LCAyNzExLCAKLSAgICAyNzE4LCAyNzIzLCAyNzI4LCAyNzM2LCAyNzQ0LCAyNzU0LCAyNzY0LCAyNzcxLCAyNzc4LCAyNzg3LCAyNzk2LCAyODA0LCAKLSAgICAyODEyLCAyODIxLCAyODMwLCAyODM4LCAyODQ2LCAyODU1LCAyODY0LCAyODczLCAyODgyLCAyODkyLCAyOTAyLCAyOTEwLCAKLSAgICAyOTE4LCAyOTI3LCAyOTM2LCAyOTQ1LCAyOTU0LCAyOTY0LCAyOTc0LCAyOTgyLCAyOTkwLCAyOTk5LCAzMDA4LCAzMDE3LCAKLSAgICAzMDI2LCAzMDM1LCAzMDQ0LCAzMDQ5LCAzMDU0LCAzMDYyLCAzMDcwLCAzMDgwLCAzMDg4LCAzMDkzLCAzMDk4LCAzMTA1LCAKLSAgICAzMTEyLCAzMTE5LCAzMTI2LCAzMTMzLCAzMTQwLCAzMTUwLCAzMTYwLCAzMTcwLCAzMTgwLCAzMTg3LCAzMTk0LCAzMjA0LCAKLSAgICAzMjE0LCAzMjIyLCAzMjMwLCAzMjM4LCAzMjQ2LCAzMjU0LCAzMjYxLCAzMjY4LCAzMjc1LCAzMjgxLCAzMjg4LCAzMjk1LCAKLSAgICAzMzAyLCAzMzExLCAzMzIxLCAzMzMxLCAzMzM4LCAzMzQ1LCAzMzUxLCAzMzU2LCAzMzYzLCAzMzY5LCAzMzc1LCAzMzgyLCAKLSAgICAzMzg5LCAzNDAwLCAzNDEwLCAzNDE3LCAzNDI0LCAzNDMxLCAzNDM4LCAzNDQ0LCAzNDQ5LCAzNDU2LCAzNDYyLCAzNDY4LCAKLSAgICAzNDc2LCAzNDg0LCAzNDkxLCAzNDk3LCAzNTAyLCAzNTA5LCAzNTE1LCAzNTIzLCAzNTMzLCAzNTQzLCAzNTUyLCAzNTU5LCAKLSAgICAzNTY1LCAzNTcxLCAzNTc2LCAzNTgzLCAzNTkwLCAzNTk3LCAzNjA0LCAzNjExLCAzNjE2LCAzNjIxLCAzNjMxLCAzNjM5LCAKLSAgICAzNjQ4LCAzNjUzLCAzNjU5LCAzNjcwLCAzNjc3LCAzNjg1LCAzNjk0LCAzNjk5LCAzNzA1LCAzNzExLCAzNzE4LCAzNzIzLCAKLSAgICAzNzI5LCAzNzQwLCAzNzQ5LCAzNzU4LCAzNzY2LCAzNzc0LCAzNzg0LCAzNzg5LCAzNzk2LCAzODAzLCAzODA4LCAzODIwLCAKLSAgICAzODI5LCAzODM3LCAzODQ0LCAzODUzLCAzODU4LCAzODYzLCAzODcwLCAzODc3LCAzODg0LCAzODkxLCAzODk3LCAzOTA2LCAKLSAgICAzOTE0LCAzOTE5LCAzOTI3LCAzOTMzLCAzOTQxLCAzOTQ5LCAzOTU1LCAzOTYxLCAzOTY3LCAzOTc1LCAzOTgzLCAzOTg5LCAKLSAgICAzOTk3LCA0MDA0LCA0MDA5LCA0MDE2LCA0MDI0LCA0MDM0LCA0MDQxLCA0MDQ4LCA0MDU4LCA0MDY1LCA0MDcyLCA0MDgyLCAKLSAgICA0MDg5LCA0MDk2LCA0MTAzLCA0MTA5LCA0MTE1LCA0MTI1LCA0MTM4LCA0MTQzLCA0MTUwLCA0MTU1LCA0MTU5LCA0MTY1LCAKLSAgICA0MTc0LCA0MTgxLCA0MTg2LCA0MTkxLCA0MTk1LCA0MjAwLCA0MjA2LCA0MjEwLCA0MjE2LCA0MjIyLCA0MjI4LCA0MjM0LCAKLSAgICA0MjQyLCA0MjQ3LCA0MjUyLCA0MjU3LCA0MjYyLCA0MjY4LCA0MjcwLCA0Mjc1LCA0Mjc5LCA0Mjg1LCA0MjkxLCA0Mjk3LCAKLSAgICA0MzAyLCA0MzA5LCA0MzE2LCA0MzIyLCA0MzI5LCA0MzM3LCA0MzQ1LCA0MzUwLCA0MzU1LCA0MzU5LCA0MzY0LCA0MzY2LCAKLSAgICA0MzY4LCA0MzcxLCA0MzczLCA0Mzc2LCA0MzgxLCA0Mzg2LCA0MzkyLCA0Mzk3LCA0NDAxLCA0NDA1LCA0NDEwLCA0NDE5LCAKLSAgICA0NDI1LCA0NDMwLCA0NDM2LCA0NDQxLCA0NDQ3LCA0NDU1LCA0NDYzLCA0NDY3LCA0NDcxLCA0NDc2LCA0NDgyLCA0NDg4LCAKLSAgICA0NDk0LCA0NTAwLCA0NTA1LCA0NTEzLCA0NTIyLCA0NTMxLCA0NTM2LCA0NTQyLCA0NTQ5LCA0NTU2LCA0NTYzLCA0NTcwLCAKLSAgICA0NTc0LCA0NTgwLCA0NTg1LCA0NTkwLCA0NTk1LCA0NjAwLCA0NjAzLCA0NjA2LCA0NjA5LCA0NjEyLCA0NjE1LCA0NjE4LCAKLSAgICA0NjIyLCA0NjI2LCA0NjMyLCA0NjM1LCA0NjQwLCA0NjQ2LCA0NjUyLCA0NjU1LCA0NjYwLCA0NjY2LCA0NjcwLCA0Njc2LCAKLSAgICA0NjgyLCA0Njg4LCA0Njk0LCA0Njk5LCA0NzA0LCA0NzA5LCA0NzEyLCA0NzE4LCA0NzIzLCA0NzI4LCA0NzMyLCA0NzM3LCAKLSAgICA0NzQzLCA0NzQ5LCA0NzUyLCA0NzU2LCA0NzYwLCA0NzY0LCA0NzY3LCA0NzcwLCA0Nzc1LCA0Nzc5LCA0Nzg2LCA0NzkwLCAKLSAgICA0Nzk2LCA0ODAwLCA0ODA2LCA0ODEwLCA0ODE0LCA0ODE4LCA0ODIzLCA0ODI4LCA0ODM1LCA0ODQxLCA0ODQ4LCA0ODU0LCAKLSAgICA0ODYwLCA0ODY2LCA0ODY5LCA0ODczLCA0ODc3LCA0ODgxLCA0ODg1LCA0ODkwLCA0ODk1LCA0ODk5LCA0OTAzLCA0OTA5LCAKLSAgICA0OTEzLCA0OTE3LCA0OTIyLCA0OTI4LCA0OTMzLCA0OTM5LCA0OTQzLCA0OTUwLCA0OTU1LCA0OTYwLCA0OTY1LCA0OTcwLCAKLSAgICA0OTc2LCA0OTc5LCA0OTgzLCA0OTg4LCA0OTkzLCA1MDAyLCA1MDA4LCA1MDEzLCA1MDE3LCA1MDIyLCA1MDI2LCA1MDMxLCAKLSAgICA1MDM1LCA1MDM5LCA1MDQ0LCA1MDQ4LCA1MDU0LCA1MDU5LCA1MDY0LCA1MDY5LCA1MDc0LCA1MDc5LCA1MDg0LCA1MDkwLCAKLSAgICA1MDk2LCA1MTAyLCA1MTA3LCA1MTEyLCA1MTE4LCA1MTI0LCA1MTMwLCA1MTM1LCA1MTQwLCA1MTQ3LCA1MTU0LCA1MTU4LCAKLSAgICA1MTY0LCA1MTcxLCAwLCAwLCA1MTc4LCA1MTgxLCA1MTkwLCA1MTk5LCA1MjEwLCAwLCAwLCAwLCAwLCAwLCA1MjE0LCAKLSAgICA1MjE3LCA1MjIyLCA1MjMwLCA1MjM1LCA1MjQzLCA1MjUxLCAwLCA1MjU5LCAwLCA1MjY3LCA1Mjc1LCA1MjgzLCA1Mjk0LCAKLSAgICA1Mjk5LCA1MzA0LCA1MzA5LCA1MzE0LCA1MzE5LCA1MzI0LCA1MzI5LCA1MzM0LCA1MzM5LCA1MzQ0LCA1MzQ5LCA1MzU0LCAKLSAgICA1MzU5LCA1MzY0LCA1MzY5LCA1Mzc0LCAwLCA1Mzc5LCA1Mzg0LCA1Mzg5LCA1Mzk0LCA1Mzk5LCA1NDA0LCA1NDA5LCAKLSAgICA1NDE0LCA1NDIyLCA1NDMwLCA1NDM4LCA1NDQ2LCA1NDU0LCA1NDYyLCA1NDczLCA1NDc4LCA1NDgzLCA1NDg4LCA1NDkzLCAKLSAgICA1NDk4LCA1NTAzLCA1NTA4LCA1NTEzLCA1NTE4LCA1NTIzLCA1NTI4LCA1NTMzLCA1NTM4LCA1NTQzLCA1NTQ4LCA1NTUzLCAKLSAgICA1NTU4LCA1NTY0LCA1NTY5LCA1NTc0LCA1NTc5LCA1NTg0LCA1NTg5LCA1NTk0LCA1NTk5LCA1NjA3LCA1NjE1LCA1NjIzLCAKLSAgICA1NjMxLCA1NjM5LCA1NjQ0LCA1NjQ4LCA1NjUyLCA1NjU5LCA1NjY5LCA1Njc5LCA1NjgzLCA1Njg3LCA1NjkxLCA1Njk3LCAKLSAgICA1NzA0LCA1NzA4LCA1NzEzLCA1NzE3LCA1NzIyLCA1NzI2LCA1NzMxLCA1NzM1LCA1NzQwLCA1NzQ1LCA1NzUwLCA1NzU1LCAKLSAgICA1NzYwLCA1NzY1LCA1NzcwLCA1Nzc1LCA1NzgwLCA1Nzg1LCA1NzkwLCA1Nzk1LCA1ODAwLCA1ODA1LCA1ODEwLCA1ODE0LCAKLSAgICA1ODE4LCA1ODI0LCA1ODI4LCA1ODMzLCA1ODM5LCA1ODQ3LCA1ODUyLCA1ODU3LCA1ODY0LCA1ODY5LCA1ODc0LCA1ODgxLCAKLSAgICA1ODkwLCA1ODk5LCA1OTEwLCA1OTE4LCA1OTIzLCA1OTI4LCA1OTMzLCA1OTQwLCA1OTQ1LCA1OTUxLCA1OTU2LCA1OTYxLCAKLSAgICA1OTY2LCA1OTcxLCA1OTc2LCA1OTgxLCA1OTg5LCA1OTk1LCA2MDAwLCA2MDA0LCA2MDA5LCA2MDE0LCA2MDE5LCA2MDI0LCAKLSAgICA2MDI5LCA2MDM0LCA2MDM5LCA2MDQzLCA2MDQ5LCA2MDUzLCA2MDU4LCA2MDYzLCA2MDY4LCA2MDcyLCA2MDc3LCA2MDgyLCAKLSAgICA2MDg3LCA2MDkyLCA2MDk2LCA2MTAxLCA2MTA1LCA2MTEwLCA2MTE1LCA2MTIwLCA2MTI1LCA2MTMxLCA2MTM2LCA2MTQyLCAKLSAgICA2MTQ2LCA2MTUxLCA2MTU1LCA2MTU5LCA2MTY0LCA2MTY5LCA2MTc0LCA2MTc5LCA2MTg0LCA2MTg5LCA2MTk0LCA2MTk4LCAKLSAgICA2MjA0LCA2MjA4LCA2MjEzLCA2MjE4LCA2MjIzLCA2MjI3LCA2MjMyLCA2MjM3LCA2MjQyLCA2MjQ3LCA2MjUxLCA2MjU2LCAKLSAgICA2MjYwLCA2MjY1LCA2MjcwLCA2Mjc1LCA2MjgwLCA2Mjg2LCA2MjkxLCA2Mjk3LCA2MzAxLCA2MzA2LCA2MzEwLCA2MzE4LCAKLSAgICA2MzIzLCA2MzI4LCA2MzMzLCA2MzQwLCA2MzQ1LCA2MzUxLCA2MzU2LCA2MzYxLCA2MzY2LCA2MzcxLCA2Mzc2LCA2MzgxLCAKLSAgICA2Mzg5LCA2Mzk1LCA2NDAwLCA2NDA1LCA2NDEwLCA2NDE1LCA2NDIwLCA2NDI2LCA2NDMyLCA2NDM5LCA2NDQ2LCA2NDU1LCAKLSAgICA2NDY0LCA2NDcxLCA2NDc4LCA2NDg3LCA2NDk2LCA2NTAxLCA2NTA2LCA2NTExLCA2NTE2LCA2NTIxLCA2NTI2LCA2NTMxLCAKLSAgICA2NTM2LCA2NTQ3LCA2NTU4LCA2NTYzLCA2NTY4LCA2NTc1LCA2NTgyLCA2NTkwLCA2NTk4LCA2NjAzLCA2NjA4LCA2NjEzLCAKLSAgICA2NjE4LCA2NjIyLCA2NjI2LCA2NjMwLCA2NjM1LCA2NjQxLCA2NjQ1LCA2NjUyLCA2NjU3LCA2NjY3LCA2Njc3LCA2NjgzLCAKLSAgICA2Njg5LCA2Njk3LCA2NzA1LCA2NzEzLCA2NzIxLCA2NzI4LCA2NzM1LCA2NzQ0LCA2NzUzLCA2NzYxLCA2NzY5LCA2Nzc3LCAKLSAgICA2Nzg1LCA2NzkzLCA2ODAxLCA2ODA5LCA2ODE3LCA2ODI0LCA2ODMxLCA2ODM3LCA2ODQzLCA2ODUxLCA2ODU5LCA2ODY2LCAKLSAgICA2ODczLCA2ODgyLCA2ODkxLCA2ODk3LCA2OTAzLCA2OTExLCA2OTE5LCA2OTI3LCA2OTM1LCA2OTQxLCA2OTQ3LCA2OTU1LCAKLSAgICA2OTYzLCA2OTcxLCA2OTc5LCA2OTg2LCA2OTkzLCA3MDAxLCA3MDA5LCA3MDE3LCA3MDI1LCA3MDMwLCA3MDM1LCA3MDQyLCAKLSAgICA3MDQ5LCA3MDU5LCA3MDY5LCA3MDczLCA3MDgxLCA3MDg5LCA3MDk2LCA3MTAzLCA3MTExLCA3MTE5LCA3MTI2LCA3MTMzLCAKLSAgICA3MTQxLCA3MTQ5LCA3MTU2LCA3MTYzLCA3MTcxLCA3MTc5LCA3MTg0LCA3MTkxLCA3MTk4LCA3MjA1LCA3MjEyLCA3MjE4LCAKLSAgICA3MjI0LCA3MjMyLCA3MjQwLCA3MjQ1LCA3MjUwLCA3MjU4LCA3MjY2LCA3Mjc0LCA3MjgyLCA3MjkwLCA3Mjk4LCA3MzA1LCAKLSAgICA3MzEyLCA3MzIwLCA3MzI4LCA3MzM2LCA3MzQ0LCA3MzUxLCA3MzU4LCA3MzY0LCA3MzcwLCA3Mzc5LCA3Mzg4LCA3Mzk1LCAKLSAgICA3NDAyLCA3NDA5LCA3NDE2LCA3NDIzLCA3NDMwLCA3NDM3LCA3NDQ0LCA3NDUyLCA3NDYwLCA3NDY4LCA3NDc2LCA3NDg0LCAKLSAgICA3NDkyLCA3NTAyLCA3NTEyLCA3NTE5LCA3NTI2LCA3NTMzLCA3NTQwLCA3NTQ3LCA3NTU0LCA3NTYxLCA3NTY4LCA3NTc1LCAKLSAgICA3NTgyLCA3NTg5LCA3NTk2LCA3NjAzLCA3NjEwLCA3NjE3LCA3NjI0LCA3NjMxLCA3NjM4LCA3NjQ1LCA3NjUyLCA3NjU5LCAKLSAgICA3NjY2LCA3NjczLCA3NjgwLCA3Njg1LCA3NjkwLCA3Njk1LCA3NzAwLCA3NzA1LCA3NzEwLCA3NzE1LCA3NzIwLCA3NzI1LCAKLSAgICA3NzMwLCA3NzM2LCA3NzQyLCA3NzUxLCA3NzYwLCA3NzY5LCA3Nzc4LCA3Nzg2LCA3Nzk0LCA3ODAyLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA3ODEwLCA3ODE1LCA3ODIwLCA3ODI1LCA3ODMwLCA3ODM1LCA3ODQwLCA3ODQ1LCA3ODUwLCAKLSAgICA3ODU0LCA3ODU5LCA3ODY0LCA3ODY5LCA3ODc0LCA3ODc5LCA3ODg0LCA3ODg5LCA3ODk0LCA3ODk5LCA3OTA0LCA3OTA5LCAKLSAgICA3OTE0LCA3OTE5LCA3OTI0LCA3OTI5LCA3OTM0LCA3OTM5LCA3OTQ0LCA3OTQ4LCA3OTUzLCA3OTU4LCA3OTYzLCA3OTY4LCAKLSAgICA3OTczLCA3OTc4LCA3OTgzLCA3OTg4LCA3OTkzLCAwLCAwLCA3OTk4LCA4MDA1LCA4MDA4LCA4MDEyLCA4MDE2LCA4MDE5LCAKLSAgICA4MDIzLCAwLCA4MDI3LCA4MDMyLCA4MDM3LCA4MDQyLCA4MDQ3LCA4MDUyLCA4MDU3LCA4MDYyLCA4MDY3LCA4MDcxLCAKLSAgICA4MDc2LCA4MDgxLCA4MDg2LCA4MDkxLCA4MDk2LCA4MTAxLCA4MTA2LCA4MTExLCA4MTE2LCA4MTIxLCA4MTI2LCA4MTMxLCAKLSAgICA4MTM2LCA4MTQxLCA4MTQ2LCA4MTUxLCA4MTU2LCA4MTYxLCA4MTY1LCA4MTcwLCA4MTc1LCA4MTgwLCA4MTg1LCA4MTkwLCAKLSAgICA4MTk1LCA4MjAwLCA4MjA1LCA4MjEwLCA4MjE1LCAwLCA4MjIyLCA4MjI3LCAwLCAwLCAwLCAwLCAwLCAwLCA4MjMwLCAKLSAgICA4MjM1LCA4MjQwLCA4MjQ1LCA4MjUyLCA4MjU5LCA4MjY0LCA4MjY5LCA4Mjc0LCA4Mjc5LCA4Mjg0LCA4Mjg5LCA4Mjk0LCAKLSAgICA4MzAxLCA4MzA2LCA4MzEzLCA4MzIwLCA4MzI1LCA4MzMyLCA4MzM3LCA4MzQyLCA4MzQ3LCA4MzU0LCA4MzU5LCA4MzY0LCAKLSAgICA4MzcxLCA4MzgwLCA4Mzg1LCA4MzkwLCA4Mzk1LCA4NDAwLCA4NDA2LCA4NDExLCA4NDE4LCA4NDI1LCA4NDMyLCA4NDM3LCAKLSAgICA4NDQyLCA4NDQ3LCA4NDUyLCA4NDU3LCA4NDYyLCA4NDcyLCA4NDc3LCA4NDg1LCA4NDkwLCA4NDk1LCA4NTAwLCA4NTA1LCAKLSAgICA4NTEyLCA4NTE5LCA4NTI2LCA4NTMyLCA4NTM4LCA4NTQ1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4NTUyLCA4NTU2LCAKLSAgICA4NTYwLCA4NTY0LCA4NTY4LCA4NTcyLCA4NTc2LCA4NTgwLCA4NTg0LCA4NTg4LCA4NTkyLCA4NTk3LCA4NjAxLCA4NjA1LCAKLSAgICA4NjEwLCA4NjE0LCA4NjE5LCA4NjIzLCA4NjI3LCA4NjMxLCA4NjM2LCA4NjQwLCA4NjQ1LCA4NjQ5LCA4NjUzLCA4NjU3LCAKLSAgICA4NjYxLCAwLCAwLCAwLCAwLCAwLCA4NjY1LCA4NjcyLCA4NjgwLCA4Njg3LCA4NjkyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA4Njk3LCA4NzAwLCA4NzA0LCA4NzA5LCAwLCAwLCA4NzEzLCA4NzE5LCA4NzI1LCA4NzI4LCA4NzM1LCAKLSAgICA4NzQ0LCA4NzQ3LCA4NzUwLCA4NzU1LCA4NzYxLCA4NzY1LCA4NzczLCA4Nzc5LCA4Nzg1LCA4NzkzLCA4Nzk3LCA4ODAyLCAKLSAgICA4ODEzLCA4ODE4LCA4ODIyLCA4ODI2LCA4ODMwLCAwLCAwLCA4ODMzLCA4ODQwLCA4ODQ0LCA4ODUwLCA4ODU0LCA4ODYxLCAKLSAgICA4ODY3LCA4ODc0LCA4ODgwLCA4ODg2LCA4ODkwLCA4ODk0LCA4OTAwLCA4OTA0LCA4OTA4LCA4OTEyLCA4OTE2LCA4OTIwLCAKLSAgICA4OTI0LCA4OTI4LCA4OTMyLCA4OTM2LCA4OTQwLCA4OTQ0LCA4OTQ4LCA4OTUyLCA4OTU2LCA4OTYwLCA4OTY0LCA4OTY4LCAKLSAgICA4OTc2LCA4OTg0LCA4OTk0LCA5MDAzLCA5MDEyLCA5MDE1LCA5MDE5LCA5MDIzLCA5MDI3LCA5MDMxLCA5MDM1LCA5MDM5LCAKLSAgICA5MDQzLCA5MDQ3LCA5MDUyLCA5MDU2LCA5MDU5LCA5MDYyLCA5MDY1LCA5MDY4LCA5MDcxLCA5MDc0LCA5MDc3LCA5MDgwLCAKLSAgICA5MDg0LCA5MDg3LCA5MDkwLCA5MDk1LCA5MTAwLCA5MTA2LCA5MTA5LCA5MTE2LCA5MTI1LCA5MTMwLCA5MTM1LCA5MTQyLCAKLSAgICA5MTQ3LCA5MTUyLCA5MTU2LCA5MTYwLCA5MTY0LCA5MTY4LCA5MTcyLCA5MTc2LCA5MTgwLCA5MTg0LCA5MTg4LCA5MTkyLCAKLSAgICA5MTk3LCA5MjAyLCA5MjA5LCA5MjE1LCA5MjIxLCA5MjI3LCA5MjMyLCA5MjQwLCA5MjQ4LCA5MjUzLCA5MjU5LCA5MjY1LCAKLSAgICA5MjcxLCA5Mjc3LCA5MjgxLCA5Mjg1LCA5Mjg5LCA5Mjk2LCA5MzA2LCA5MzEwLCA5MzE0LCA5MzE4LCA5MzI0LCA5MzMyLCAKLSAgICA5MzM2LCA5MzQwLCA5MzQ3LCA5MzUxLCA5MzU1LCA5MzU5LCA5MzY2LCA5MzczLCA5Mzg1LCA5Mzg5LCA5MzkzLCA5Mzk3LCAKLSAgICA5NDA3LCA5NDE2LCA5NDIwLCA5NDI4LCA5NDM1LCA5NDQyLCA5NDUxLCA5NDYyLCA5NDcwLCA5NDc0LCA5NDgzLCA5NDk0LCAKLSAgICA5NTAyLCA5NTE1LCA5NTIzLCA5NTMxLCA5NTM5LCA5NTQ3LCA5NTUzLCA5NTYyLCA5NTY5LCA5NTczLCA5NTgxLCA5NTg1LCAKLSAgICA5NTkyLCA5NjAwLCA5NjA0LCA5NjEwLCA5NjE3LCA5NjI0LCA5NjI4LCA5NjM2LCA5NjQwLCA5NjQ3LCA5NjUxLCA5NjU5LCAKLSAgICA5NjYzLCA5NjcxLCA5Njc5LCA5Njg2LCA5Njk0LCA5NzAyLCA5NzA5LCA5NzE1LCA5NzE5LCA5NzI2LCA5NzM0LCA5NzQwLCAKLSAgICA5NzQ3LCA5NzU0LCA5NzYwLCA5NzY5LCA5Nzc3LCA5Nzg0LCA5NzkwLCA5Nzk0LCA5Nzk3LCA5ODAxLCA5ODA3LCA5ODE1LCAKLSAgICA5ODE5LCA5ODI1LCA5ODMxLCA5ODM4LCA5ODQ1LCA5ODQ4LCA5ODU1LCA5ODYwLCA5ODY4LCA5ODczLCA5ODc3LCA5ODkwLCAKLSAgICA5OTAzLCA5OTA5LCA5OTE2LCA5OTIxLCA5OTI3LCA5OTMyLCA5OTM4LCA5OTQ4LCA5OTU1LCA5OTY0LCA5OTc0LCA5OTgwLCAKLSAgICA5OTg1LCA5OTkwLCA5OTk0LCA5OTk4LCAxMDAwMywgMTAwMDgsIDEwMDE0LCAxMDAyMiwgMTAwMzAsIDEwMDQxLCAxMDA0NiwgCi0gICAgMTAwNTUsIDEwMDY0LCAxMDA3MSwgMTAwNzcsIDEwMDgzLCAxMDA4OSwgMTAwOTUsIDEwMTAxLCAxMDEwNywgMTAxMTMsIAotICAgIDEwMTE5LCAxMDEyNSwgMTAxMzIsIDEwMTM5LCAxMDE0NiwgMTAxNTIsIDEwMTYwLCAxMDE2OSwgMTAxNzUsIDEwMTgyLCAKLSAgICAxMDE4OSwgMTAxOTQsIDEwMTk5LCAxMDIwMywgMTAyMTAsIDEwMjE3LCAxMDIyNiwgMTAyMzUsIDEwMjM4LCAxMDI0MywgCi0gICAgMTAyNDgsIDAsIDEwMjUzLCAxMDI1NywgMTAyNjEsIDEwMjY3LCAxMDI3MSwgMTAyNzUsIDEwMjgxLCAxMDI4NSwgMTAyOTMsIAotICAgIDEwMjk3LCAxMDMwMSwgMTAzMDUsIDEwMzA5LCAxMDMxMywgMTAzMTksIDEwMzIzLCAxMDMyOSwgMTAzMzMsIDEwMzM3LCAKLSAgICAxMDM0MSwgMTAzNDUsIDEwMzQ5LCAxMDM1NCwgMTAzNTcsIDEwMzYxLCAxMDM2NywgMTAzNzEsIDEwMzc1LCAxMDM3OSwgCi0gICAgMTAzODMsIDEwMzg3LCAxMDM5MywgMTAzOTksIDEwNDA1LCAxMDQwOSwgMTA0MTMsIDEwNDE4LCAxMDQyMiwgMTA0MjYsIAotICAgIDEwNDMxLCAxMDQzNSwgMTA0MzksIDEwNDQ2LCAxMDQ1MywgMTA0NTcsIDEwNDYxLCAxMDQ2NiwgMTA0NzAsIDEwNDc0LCAKLSAgICAxMDQ3NywgMTA0ODIsIDEwNDg1LCAxMDQ4OCwgMTA0OTMsIDEwNDk4LCAxMDUwMiwgMTA1MDYsIDEwNTEyLCAxMDUxOCwgCi0gICAgMTA1MjEsIDAsIDAsIDEwNTI0LCAxMDUzMCwgMTA1MzYsIDEwNTQyLCAxMDU1MiwgMTA1NjQsIDEwNTc2LCAxMDU5MywgCi0gICAgMTA2MDUsIDEwNjE2LCAxMDYyNCwgMTA2MzEsIDEwNjQyLCAxMDY1NywgMTA2NjgsIDEwNjc0LCAxMDY4MywgMTA2OTEsIAotICAgIDEwNzAzLCAxMDcxMywgMTA3MjEsIDEwNzMzLCAxMDc0MCwgMTA3NDgsIDEwNzYwLCAxMDc2NiwgMTA3NzIsIDEwNzgwLCAKLSAgICAxMDc4OCwgMTA3OTYsIDEwODAyLCAxMDgxMiwgMTA4MTksIDEwODI5LCAxMDgzOSwgMTA4NTIsIDEwODY2LCAxMDg4MCwgCi0gICAgMTA4OTAsIDEwOTAxLCAxMDkxMiwgMTA5MjUsIDEwOTM4LCAxMDk1MiwgMTA5NjQsIDEwOTc2LCAxMDk4OSwgMTEwMDIsIAotICAgIDExMDE0LCAxMTAyNywgMTEwMzYsIDExMDQ0LCAxMTA0OSwgMTEwNTQsIDExMDU5LCAxMTA2NCwgMTEwNjksIDExMDc0LCAKLSAgICAxMTA3OSwgMTEwODQsIDExMDg5LCAxMTA5NCwgMTEwOTksIDExMTA0LCAxMTEwOSwgMTExMTQsIDExMTE5LCAxMTEyNCwgCi0gICAgMTExMjksIDExMTM0LCAxMTEzOSwgMTExNDQsIDExMTQ5LCAxMTE1NCwgMTExNTksIDExMTY0LCAxMTE2OSwgMTExNzQsIAotICAgIDExMTc5LCAxMTE4NCwgMTExODksIDExMTk0LCAxMTE5OSwgMTEyMDQsIDExMjA4LCAxMTIxMywgMTEyMTgsIDExMjIzLCAKLSAgICAxMTIyOCwgMTEyMzMsIDExMjM3LCAxMTI0MSwgMTEyNDUsIDExMjQ5LCAxMTI1MywgMTEyNTcsIDExMjYxLCAxMTI2NSwgCi0gICAgMTEyNjksIDExMjczLCAxMTI3NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTEyODIsIAotICAgIDExMjg3LCAxMTI5MSwgMTEyOTUsIDExMjk5LCAxMTMwMywgMTEzMDcsIDExMzExLCAxMTMxNSwgMTEzMTksIDExMzIzLCAKLSAgICAxMTMyNywgMTEzMzIsIDExMzM2LCAxMTM0MCwgMTEzNDQsIDExMzQ5LCAxMTM1MywgMTEzNTgsIDExMzYyLCAxMTM2NywgCi0gICAgMTEzNzEsIDExMzc2LCAxMTM4MSwgMTEzODYsIDExMzkxLCAxMTM5NSwgMTE0MDAsIDExNDA1LCAxMTQxMCwgMTE0MTUsIAotICAgIDExNDE5LCAxMTQyNCwgMTE0MzEsIDExNDM1LCAxMTQ0MCwgMTE0NDQsIDExNDQ4LCAxMTQ1MywgMTE0NTcsIDExNDY0LCAKLSAgICAxMTQ3MSwgMTE0NzgsIDExNDg0LCAxMTQ5MiwgMTE1MDAsIDExNTA5LCAxMTUxNywgMTE1MjQsIDExNTMxLCAxMTUzOSwgCi0gICAgMTE1NDUsIDExNTUxLCAxMTU1NywgMTE1NjMsIDExNTcwLCAxMTU3NSwgMTE1NzksIDExNTg0LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxMTU4OCwgMTE1OTMsIDExNTk4LCAxMTYwMywgMTE2MDgsIDExNjEzLCAxMTYxOCwgMTE2MjMsIDExNjI4LCAxMTYzMywgCi0gICAgMTE2MzgsIDExNjQzLCAxMTY0OCwgMTE2NTMsIDExNjU4LCAxMTY2MywgMTE2NjgsIDExNjczLCAxMTY3OCwgMTE2ODMsIAotICAgIDExNjg4LCAxMTY5MywgMTE2OTgsIDExNzAzLCAxMTcwOCwgMTE3MTMsIDExNzE4LCAxMTcyNiwgMTE3MzMsIDExNzM5LCAKLSAgICAxMTc0NCwgMTE3NTIsIDExNzU5LCAxMTc2NSwgMTE3NzIsIDExNzc4LCAxMTc4MywgMTE3OTAsIDExNzk3LCAxMTgwMywgCi0gICAgMTE4MDgsIDExODEzLCAxMTgxOSwgMTE4MjQsIDExODI5LCAxMTgzNSwgMCwgMCwgMTE4NDAsIDExODQ2LCAxMTg1MiwgCi0gICAgMTE4NTgsIDExODY0LCAxMTg3MCwgMTE4NzYsIDExODgxLCAxMTg4OSwgMTE4OTUsIDExOTAxLCAxMTkwNywgMTE5MTMsIAotICAgIDExOTE5LCAxMTkyNywgMCwgMTE5MzMsIDExOTM4LCAxMTk0MywgMTE5NDgsIDExOTUzLCAxMTk1OCwgMTE5NjMsIDExOTY4LCAKLSAgICAxMTk3MywgMTE5NzgsIDExOTgzLCAxMTk4OCwgMTE5OTMsIDExOTk4LCAxMjAwMywgMTIwMDgsIDEyMDEzLCAxMjAxOCwgCi0gICAgMTIwMjMsIDEyMDI4LCAxMjAzMywgMTIwMzgsIDEyMDQzLCAxMjA0OCwgMTIwNTMsIDEyMDU4LCAxMjA2MywgMTIwNjgsIDAsIAotICAgIDAsIDEyMDczLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjA3NywgMTIwODMsIAotICAgIDEyMDg3LCAxMjA5MSwgMTIwOTUsIDEyMTAwLCAxMjEwMywgMTIxMDcsIDEyMTEwLCAxMjExNCwgMTIxMTcsIDEyMTIxLCAKLSAgICAxMjEyNSwgMTIxMjksIDEyMTM0LCAxMjEzOSwgMTIxNDIsIDEyMTQ2LCAxMjE1MSwgMTIxNTYsIDEyMTU5LCAxMjE2MywgCi0gICAgMTIxNjYsIDEyMTcwLCAxMjE3NCwgMTIxNzgsIDEyMTgyLCAxMjE4NiwgMTIxOTAsIDEyMTk0LCAxMjE5OCwgMTIyMDIsIAotICAgIDEyMjA2LCAxMjIxMCwgMTIyMTQsIDEyMjE4LCAxMjIyMiwgMTIyMjYsIDEyMjMwLCAxMjIzNCwgMTIyMzgsIDEyMjQxLCAKLSAgICAxMjI0NSwgMTIyNDgsIDEyMjUyLCAxMjI1NiwgMTIyNjAsIDEyMjYzLCAxMjI2NiwgMTIyNjksIDEyMjczLCAxMjI3NywgCi0gICAgMTIyODEsIDEyMjg1LCAxMjI4OSwgMTIyOTMsIDEyMjk3LCAxMjMwMSwgMTIzMDQsIDEyMzA5LCAxMjMxNCwgMTIzMTgsIAotICAgIDEyMzIyLCAxMjMyNywgMTIzMzEsIDEyMzM2LCAxMjM0MCwgMTIzNDUsIDEyMzUwLCAxMjM1NiwgMTIzNjIsIDEyMzY4LCAKLSAgICAxMjM3MiwgMTIzNzcsIDEyMzgzLCAxMjM4OSwgMTIzOTMsIDEyMzk4LCAxMjQwMiwgMTI0MDgsIDEyNDEzLCAxMjQxNiwgCi0gICAgMTI0MjIsIDEyNDI4LCAxMjQzMywgMTI0MzgsIDEyNDQ1LCAxMjQ1MCwgMTI0NTUsIDEyNDU5LCAxMjQ2MywgMTI0NjcsIAotICAgIDEyNDcxLCAxMjQ3NSwgMTI0NzksIDEyNDgzLCAxMjQ4NywgMTI0OTIsIDEyNDk3LCAxMjUwMiwgMTI1MDgsIDEyNTExLCAKLSAgICAxMjUxNSwgMTI1MTksIDEyNTIyLCAxMjUyNSwgMTI1MjgsIDEyNTMxLCAxMjUzNCwgMTI1MzcsIDEyNTQwLCAxMjU0MywgCi0gICAgMTI1NDYsIDEyNTUwLCAxMjU1NywgMTI1NjIsIDEyNTY2LCAxMjU3MCwgMTI1NzQsIDEyNTc4LCAwLCAxMjU4MiwgMTI1ODYsIAotICAgIDEyNTkwLCAxMjU5NCwgMTI1OTgsIDEyNjA0LCAxMjYwOCwgMCwgMTI2MTIsIDEyNjE2LCAxMjYyMCwgMCwgMTI2MjQsIAotICAgIDEyNjI3LCAxMjYzMSwgMTI2MzQsIDEyNjM4LCAxMjY0MSwgMTI2NDUsIDEyNjQ5LCAwLCAwLCAxMjY1MywgMTI2NTYsIDAsIAotICAgIDAsIDEyNjYwLCAxMjY2MywgMTI2NjcsIDEyNjcwLCAxMjY3NCwgMTI2NzgsIDEyNjgyLCAxMjY4NiwgMTI2OTAsIDEyNjk0LCAKLSAgICAxMjY5OCwgMTI3MDIsIDEyNzA2LCAxMjcxMCwgMTI3MTQsIDEyNzE4LCAxMjcyMiwgMTI3MjYsIDEyNzMwLCAxMjczNCwgCi0gICAgMTI3MzgsIDEyNzQyLCAwLCAxMjc0NSwgMTI3NDgsIDEyNzUyLCAxMjc1NiwgMTI3NjAsIDEyNzYzLCAxMjc2NiwgMCwgCi0gICAgMTI3NjksIDAsIDAsIDAsIDEyNzczLCAxMjc3NywgMTI3ODEsIDEyNzg1LCAwLCAwLCAxMjc4OCwgMTI3OTIsIDEyNzk2LCAKLSAgICAxMjgwMSwgMTI4MDUsIDEyODEwLCAxMjgxNCwgMTI4MTksIDEyODI0LCAwLCAwLCAxMjgzMCwgMTI4MzQsIDAsIDAsIAotICAgIDEyODM5LCAxMjg0MywgMTI4NDgsIDEyODUyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjg1OCwgMCwgMCwgMCwgMCwgCi0gICAgMTI4NjQsIDEyODY4LCAwLCAxMjg3MiwgMTI4NzYsIDEyODgxLCAxMjg4NiwgMTI4OTEsIDAsIDAsIDEyODk3LCAxMjkwMSwgCi0gICAgMTI5MDQsIDEyOTA3LCAxMjkxMCwgMTI5MTMsIDEyOTE2LCAxMjkxOSwgMTI5MjIsIDEyOTI1LCAxMjkyOCwgMTI5MzcsIAotICAgIDEyOTQ2LCAxMjk1MCwgMTI5NTQsIDEyOTYwLCAxMjk2NiwgMTI5NzIsIDEyOTc4LCAxMjk5MiwgMTI5OTksIDEzMDAyLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAxMzAwNiwgMTMwMTIsIDEzMDE2LCAwLCAxMzAyMCwgMTMwMjMsIDEzMDI3LCAxMzAzMCwgMTMwMzQsIAotICAgIDEzMDM3LCAwLCAwLCAwLCAwLCAxMzA0MSwgMTMwNDUsIDAsIDAsIDEzMDQ5LCAxMzA1MywgMTMwNTcsIDEzMDYwLCAxMzA2NCwgCi0gICAgMTMwNjgsIDEzMDcyLCAxMzA3NiwgMTMwODAsIDEzMDg0LCAxMzA4OCwgMTMwOTIsIDEzMDk2LCAxMzEwMCwgMTMxMDQsIAotICAgIDEzMTA4LCAxMzExMiwgMTMxMTYsIDEzMTIwLCAxMzEyNCwgMTMxMjgsIDEzMTMyLCAwLCAxMzEzNSwgMTMxMzgsIDEzMTQyLCAKLSAgICAxMzE0NiwgMTMxNTAsIDEzMTUzLCAxMzE1NiwgMCwgMTMxNTksIDEzMTYzLCAwLCAxMzE2NywgMTMxNzEsIDAsIDEzMTc1LCAKLSAgICAxMzE3OSwgMCwgMCwgMTMxODIsIDAsIDEzMTg2LCAxMzE5MSwgMTMxOTUsIDEzMjAwLCAxMzIwNCwgMCwgMCwgMCwgMCwgCi0gICAgMTMyMDksIDEzMjE0LCAwLCAwLCAxMzIxOSwgMTMyMjQsIDEzMjI5LCAwLCAwLCAwLCAxMzIzMywgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMTMyMzcsIDEzMjQxLCAxMzI0NSwgMTMyNDksIDAsIDEzMjUzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzI1NywgCi0gICAgMTMyNjEsIDEzMjY0LCAxMzI2NywgMTMyNzAsIDEzMjczLCAxMzI3NiwgMTMyNzksIDEzMjgyLCAxMzI4NSwgMTMyODgsIAotICAgIDEzMjkxLCAxMzI5NCwgMTMyOTcsIDEzMzAwLCAxMzMwNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMTMzMDksIDEzMzEzLCAxMzMxNywgMCwgMTMzMjEsIDEzMzI0LCAxMzMyOCwgMTMzMzEsIDEzMzM1LCAxMzMzOCwgMTMzNDIsIAotICAgIDEzMzQ2LCAxMzM1MCwgMCwgMTMzNTUsIDEzMzU4LCAxMzM2MiwgMCwgMTMzNjcsIDEzMzcwLCAxMzM3NCwgMTMzNzcsIAotICAgIDEzMzgxLCAxMzM4NSwgMTMzODksIDEzMzkzLCAxMzM5NywgMTM0MDEsIDEzNDA1LCAxMzQwOSwgMTM0MTMsIDEzNDE3LCAKLSAgICAxMzQyMSwgMTM0MjUsIDEzNDI5LCAxMzQzMywgMTM0MzcsIDEzNDQxLCAxMzQ0NSwgMTM0NDksIDAsIDEzNDUyLCAxMzQ1NSwgCi0gICAgMTM0NTksIDEzNDYzLCAxMzQ2NywgMTM0NzAsIDEzNDczLCAwLCAxMzQ3NiwgMTM0ODAsIDAsIDEzNDg0LCAxMzQ4OCwgCi0gICAgMTM0OTIsIDEzNDk2LCAxMzUwMCwgMCwgMCwgMTM1MDMsIDEzNTA3LCAxMzUxMSwgMTM1MTYsIDEzNTIwLCAxMzUyNSwgCi0gICAgMTM1MjksIDEzNTM0LCAxMzUzOSwgMTM1NDUsIDAsIDEzNTUxLCAxMzU1NSwgMTM1NjAsIDAsIDEzNTY2LCAxMzU3MCwgCi0gICAgMTM1NzUsIDAsIDAsIDEzNTc5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzU4MiwgCi0gICAgMTM1ODcsIDEzNTkyLCAxMzU5NywgMCwgMCwgMTM2MDMsIDEzNjA3LCAxMzYxMCwgMTM2MTMsIDEzNjE2LCAxMzYxOSwgCi0gICAgMTM2MjIsIDEzNjI1LCAxMzYyOCwgMTM2MzEsIDAsIDEzNjM0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAxMzYzOCwgMTM2NDIsIDEzNjQ2LCAwLCAxMzY1MCwgMTM2NTMsIDEzNjU3LCAxMzY2MCwgMTM2NjQsIAotICAgIDEzNjY3LCAxMzY3MSwgMTM2NzUsIDAsIDAsIDEzNjc5LCAxMzY4MiwgMCwgMCwgMTM2ODYsIDEzNjg5LCAxMzY5MywgCi0gICAgMTM2OTYsIDEzNzAwLCAxMzcwNCwgMTM3MDgsIDEzNzEyLCAxMzcxNiwgMTM3MjAsIDEzNzI0LCAxMzcyOCwgMTM3MzIsIAotICAgIDEzNzM2LCAxMzc0MCwgMTM3NDQsIDEzNzQ4LCAxMzc1MiwgMTM3NTYsIDEzNzYwLCAxMzc2NCwgMTM3NjgsIDAsIDEzNzcxLCAKLSAgICAxMzc3NCwgMTM3NzgsIDEzNzgyLCAxMzc4NiwgMTM3ODksIDEzNzkyLCAwLCAxMzc5NSwgMTM3OTksIDAsIDEzODAzLCAKLSAgICAxMzgwNywgMTM4MTEsIDEzODE1LCAxMzgxOSwgMCwgMCwgMTM4MjIsIDEzODI2LCAxMzgzMCwgMTM4MzUsIDEzODM5LCAKLSAgICAxMzg0NCwgMTM4NDgsIDEzODUzLCAxMzg1OCwgMCwgMCwgMTM4NjQsIDEzODY4LCAwLCAwLCAxMzg3MywgMTM4NzcsIAotICAgIDEzODgyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzg4NiwgMTM4OTIsIDAsIDAsIDAsIDAsIDEzODk4LCAxMzkwMiwgMCwgCi0gICAgMTM5MDYsIDEzOTEwLCAxMzkxNSwgMTM5MjAsIDEzOTI1LCAwLCAwLCAxMzkzMSwgMTM5MzUsIDEzOTM4LCAxMzk0MSwgCi0gICAgMTM5NDQsIDEzOTQ3LCAxMzk1MCwgMTM5NTMsIDEzOTU2LCAxMzk1OSwgMTM5NjIsIDEzOTY1LCAxMzk2OSwgMTM5NzUsIAotICAgIDEzOTgxLCAxMzk4NywgMTM5OTMsIDEzOTk5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDAwNSwgMTQwMDksIAotICAgIDAsIDE0MDEzLCAxNDAxNiwgMTQwMjAsIDE0MDIzLCAxNDAyNywgMTQwMzAsIDAsIDAsIDAsIDE0MDM0LCAxNDAzNywgCi0gICAgMTQwNDEsIDAsIDE0MDQ1LCAxNDA0OCwgMTQwNTIsIDE0MDU2LCAwLCAwLCAwLCAxNDA1OSwgMTQwNjMsIDAsIDE0MDY3LCAwLCAKLSAgICAxNDA3MSwgMTQwNzUsIDAsIDAsIDAsIDE0MDc5LCAxNDA4MywgMCwgMCwgMCwgMTQwODcsIDE0MDkwLCAxNDA5NCwgMCwgMCwgCi0gICAgMCwgMTQwOTcsIDE0MTAwLCAxNDEwMywgMTQxMDYsIDE0MTEwLCAxNDExNCwgMTQxMTgsIDE0MTIyLCAxNDEyNiwgMTQxMzAsIAotICAgIDE0MTM0LCAxNDEzOCwgMCwgMCwgMCwgMCwgMTQxNDEsIDE0MTQ2LCAxNDE1MCwgMTQxNTUsIDE0MTU5LCAwLCAwLCAwLCAKLSAgICAxNDE2NCwgMTQxNjgsIDE0MTczLCAwLCAxNDE3OCwgMTQxODIsIDE0MTg3LCAxNDE5MiwgMCwgMCwgMTQxOTYsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDE0MTk5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDIwNSwgMTQyMDksIAotICAgIDE0MjEyLCAxNDIxNSwgMTQyMTgsIDE0MjIxLCAxNDIyNCwgMTQyMjcsIDE0MjMwLCAxNDIzMywgMTQyMzYsIDE0MjQwLCAKLSAgICAxNDI0NSwgMTQyNTAsIDE0MjU0LCAxNDI1OCwgMTQyNjIsIDE0MjY2LCAxNDI3MCwgMTQyNzUsIDE0Mjc5LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAxNDI4MiwgMTQyODYsIDE0MjkwLCAwLCAxNDI5NCwgMTQyOTcsIDE0MzAxLCAxNDMwNCwgMTQzMDgsIAotICAgIDE0MzExLCAxNDMxNSwgMTQzMTksIDAsIDE0MzIzLCAxNDMyNiwgMTQzMzAsIDAsIDE0MzM0LCAxNDMzNywgMTQzNDEsIAotICAgIDE0MzQ1LCAxNDM0OCwgMTQzNTIsIDE0MzU2LCAxNDM2MCwgMTQzNjQsIDE0MzY4LCAxNDM3MiwgMTQzNzYsIDE0MzgwLCAKLSAgICAxNDM4NCwgMTQzODgsIDE0MzkyLCAxNDM5NiwgMTQ0MDAsIDE0NDA0LCAxNDQwOCwgMTQ0MTIsIDE0NDE2LCAxNDQyMCwgMCwgCi0gICAgMTQ0MjMsIDE0NDI2LCAxNDQzMCwgMTQ0MzQsIDE0NDM4LCAxNDQ0MSwgMTQ0NDQsIDE0NDQ3LCAxNDQ1MSwgMTQ0NTUsIDAsIAotICAgIDE0NDU5LCAxNDQ2MywgMTQ0NjcsIDE0NDcxLCAxNDQ3NSwgMCwgMCwgMCwgMTQ0NzgsIDE0NDgyLCAxNDQ4NywgMTQ0OTEsIAotICAgIDE0NDk2LCAxNDUwMCwgMTQ1MDUsIDE0NTEwLCAwLCAxNDUxNiwgMTQ1MjAsIDE0NTI1LCAwLCAxNDUzMCwgMTQ1MzQsIAotICAgIDE0NTM5LCAxNDU0NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ1NDgsIDE0NTUyLCAwLCAxNDU1OCwgMTQ1NjIsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDE0NTY2LCAxNDU3MSwgMTQ1NzYsIDE0NTgxLCAwLCAwLCAxNDU4NywgMTQ1OTEsIDE0NTk0LCAxNDU5NywgCi0gICAgMTQ2MDAsIDE0NjAzLCAxNDYwNiwgMTQ2MDksIDE0NjEyLCAxNDYxNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ2MTgsIAotICAgIDE0NjMxLCAxNDY0MywgMTQ2NTUsIDE0NjY3LCAxNDY3OSwgMTQ2OTEsIDE0NzAzLCAwLCAwLCAxNDcwNywgMTQ3MTEsIDAsIAotICAgIDE0NzE1LCAxNDcxOCwgMTQ3MjIsIDE0NzI1LCAxNDcyOSwgMTQ3MzIsIDE0NzM2LCAxNDc0MCwgMCwgMTQ3NDQsIDE0NzQ3LCAKLSAgICAxNDc1MSwgMCwgMTQ3NTUsIDE0NzU4LCAxNDc2MiwgMTQ3NjYsIDE0NzY5LCAxNDc3MywgMTQ3NzcsIDE0NzgxLCAxNDc4NSwgCi0gICAgMTQ3ODksIDE0NzkzLCAxNDc5NywgMTQ4MDEsIDE0ODA1LCAxNDgwOSwgMTQ4MTMsIDE0ODE3LCAxNDgyMSwgMTQ4MjUsIAotICAgIDE0ODI5LCAxNDgzMywgMTQ4MzcsIDE0ODQxLCAwLCAxNDg0NCwgMTQ4NDcsIDE0ODUxLCAxNDg1NSwgMTQ4NTksIDE0ODYyLCAKLSAgICAxNDg2NSwgMTQ4NjgsIDE0ODcyLCAxNDg3NiwgMCwgMTQ4ODAsIDE0ODg0LCAxNDg4OCwgMTQ4OTIsIDE0ODk2LCAwLCAwLCAKLSAgICAxNDg5OSwgMTQ5MDMsIDE0OTA3LCAxNDkxMiwgMTQ5MTYsIDE0OTIxLCAxNDkyNSwgMTQ5MzAsIDE0OTM1LCAwLCAxNDk0MSwgCi0gICAgMTQ5NDUsIDE0OTUwLCAwLCAxNDk1NSwgMTQ5NTksIDE0OTY0LCAxNDk2OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ5NzMsIAotICAgIDE0OTc3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDk4MywgMCwgMTQ5ODcsIDE0OTkyLCAxNDk5NywgMTUwMDIsIDAsIDAsIAotICAgIDE1MDA4LCAxNTAxMiwgMTUwMTUsIDE1MDE4LCAxNTAyMSwgMTUwMjQsIDE1MDI3LCAxNTAzMCwgMTUwMzMsIDE1MDM2LCAwLCAKLSAgICAxNTAzOSwgMTUwNDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE1MDQ3LCAxNTA1MSwgCi0gICAgMCwgMTUwNTUsIDE1MDU4LCAxNTA2MiwgMTUwNjUsIDE1MDY5LCAxNTA3MiwgMTUwNzYsIDE1MDgwLCAwLCAxNTA4NCwgCi0gICAgMTUwODcsIDE1MDkxLCAwLCAxNTA5NSwgMTUwOTgsIDE1MTAyLCAxNTEwNiwgMTUxMDksIDE1MTEzLCAxNTExNywgMTUxMjEsIAotICAgIDE1MTI1LCAxNTEyOSwgMTUxMzMsIDE1MTM3LCAxNTE0MSwgMTUxNDUsIDE1MTQ5LCAxNTE1MywgMTUxNTcsIDE1MTYxLCAKLSAgICAxNTE2NSwgMTUxNjksIDE1MTczLCAxNTE3NywgMTUxODEsIDE1MTg0LCAxNTE4OCwgMTUxOTEsIDE1MTk1LCAxNTE5OSwgCi0gICAgMTUyMDMsIDE1MjA2LCAxNTIwOSwgMTUyMTIsIDE1MjE2LCAxNTIyMCwgMTUyMjQsIDE1MjI4LCAxNTIzMiwgMTUyMzYsIAotICAgIDE1MjQwLCAxNTI0NCwgMTUyNDcsIDAsIDAsIDE1MjUxLCAxNTI1NSwgMTUyNjAsIDE1MjY0LCAxNTI2OSwgMTUyNzMsIAotICAgIDE1Mjc4LCAxNTI4MywgMCwgMTUyODksIDE1MjkzLCAxNTI5OCwgMCwgMTUzMDMsIDE1MzA3LCAxNTMxMiwgMTUzMTcsIAotICAgIDE1MzIxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNTMyNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTUzMzIsIAotICAgIDE1MzM3LCAxNTM0MiwgMTUzNDcsIDAsIDAsIDE1MzUzLCAxNTM1NywgMTUzNjAsIDE1MzYzLCAxNTM2NiwgMTUzNjksIAotICAgIDE1MzcyLCAxNTM3NSwgMTUzNzgsIDE1MzgxLCAxNTM4NCwgMTUzODgsIDE1MzkzLCAxNTM5OCwgMTU0MDQsIDE1NDEwLCAwLCAKLSAgICAwLCAwLCAxNTQxNiwgMTU0MjAsIDE1NDI2LCAxNTQzMSwgMTU0MzcsIDE1NDQyLCAxNTQ0OCwgMCwgMCwgMTU0NTQsIAotICAgIDE1NDU4LCAwLCAxNTQ2MiwgMTU0NjYsIDE1NDcwLCAxNTQ3NCwgMTU0NzgsIDE1NDgyLCAxNTQ4NiwgMTU0OTAsIDE1NDk0LCAKLSAgICAxNTQ5OCwgMTU1MDIsIDE1NTA2LCAxNTUxMCwgMTU1MTQsIDE1NTE4LCAxNTUyMiwgMTU1MjYsIDE1NTMwLCAwLCAwLCAwLCAKLSAgICAxNTUzNCwgMTU1NDAsIDE1NTQ2LCAxNTU1MiwgMTU1NTgsIDE1NTY0LCAxNTU3MCwgMTU1NzYsIDE1NTgyLCAxNTU4OCwgCi0gICAgMTU1OTQsIDE1NjAwLCAxNTYwOCwgMTU2MTQsIDE1NjIwLCAxNTYyNiwgMTU2MzIsIDE1NjM4LCAxNTY0NCwgMTU2NTAsIAotICAgIDE1NjU2LCAxNTY2MiwgMTU2NjgsIDE1Njc0LCAwLCAxNTY4MCwgMTU2ODYsIDE1NjkyLCAxNTY5OCwgMTU3MDQsIDE1NzEwLCAKLSAgICAxNTcxNCwgMTU3MjAsIDE1NzI0LCAwLCAxNTcyOCwgMCwgMCwgMTU3MzQsIDE1NzM4LCAxNTc0NCwgMTU3NTAsIDE1NzU2LCAKLSAgICAxNTc2MCwgMTU3NjYsIDAsIDAsIDAsIDE1NzcwLCAwLCAwLCAwLCAwLCAxNTc3NCwgMTU3NzksIDE1Nzg2LCAxNTc5MywgCi0gICAgMTU4MDAsIDE1ODA3LCAwLCAxNTgxNCwgMCwgMTU4MjEsIDE1ODI2LCAxNTgzMSwgMTU4MzgsIDE1ODQ1LCAxNTg1NCwgCi0gICAgMTU4NjUsIDE1ODc0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxNTg3OSwgMTU4ODYsIDE1ODkzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNTg5OCwgMTU5MDQsIAotICAgIDE1OTEwLCAxNTkxNiwgMTU5MjIsIDE1OTI4LCAxNTkzNCwgMTU5NDAsIDE1OTQ2LCAxNTk1MiwgMTU5NTgsIDE1OTY0LCAKLSAgICAxNTk3MCwgMTU5NzYsIDE1OTgyLCAxNTk4OCwgMTU5OTQsIDE2MDAwLCAxNjAwNiwgMTYwMTIsIDE2MDE4LCAxNjAyNCwgCi0gICAgMTYwMzAsIDE2MDM2LCAxNjA0MiwgMTYwNDgsIDE2MDU0LCAxNjA2MCwgMTYwNjYsIDE2MDcyLCAxNjA3OCwgMTYwODQsIAotICAgIDE2MDkwLCAxNjA5NSwgMTYxMDEsIDE2MTA3LCAxNjExMSwgMTYxMTcsIDE2MTIxLCAxNjEyNywgMTYxMzMsIDE2MTM5LCAKLSAgICAxNjE0NSwgMTYxNTEsIDE2MTU3LCAxNjE2MiwgMTYxNjgsIDE2MTcyLCAxNjE3NywgMTYxODMsIDE2MTg5LCAxNjE5NSwgCi0gICAgMTYyMDAsIDE2MjA2LCAxNjIxMiwgMTYyMTgsIDE2MjIzLCAxNjIyOSwgMCwgMCwgMCwgMCwgMTYyMzMsIDE2MjM5LCAKLSAgICAxNjI0NCwgMTYyNTAsIDE2MjU1LCAxNjI2MywgMTYyNzEsIDE2Mjc1LCAxNjI3OSwgMTYyODMsIDE2Mjg5LCAxNjI5NSwgCi0gICAgMTYzMDEsIDE2MzA3LCAxNjMxMSwgMTYzMTUsIDE2MzE5LCAxNjMyMywgMTYzMjcsIDE2MzMwLCAxNjMzMywgMTYzMzYsIAotICAgIDE2MzM5LCAxNjM0MiwgMTYzNDUsIDE2MzQ4LCAxNjM1MSwgMTYzNTQsIDE2MzU4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAxNjM2MiwgMTYzNjcsIDAsIDE2Mzc0LCAwLCAwLCAxNjM4MSwgMTYzODYsIDAsIDE2MzkxLCAwLCAKLSAgICAwLCAxNjM5OCwgMCwgMCwgMCwgMCwgMCwgMCwgMTY0MDMsIDE2NDA4LCAxNjQxMiwgMTY0MTksIDAsIDE2NDI2LCAxNjQzMSwgCi0gICAgMTY0MzYsIDE2NDQxLCAxNjQ0OCwgMTY0NTUsIDE2NDYyLCAwLCAxNjQ2OSwgMTY0NzQsIDE2NDc5LCAwLCAxNjQ4NiwgMCwgCi0gICAgMTY0OTMsIDAsIDAsIDE2NDk4LCAxNjUwNSwgMCwgMTY1MTIsIDE2NTE2LCAxNjUyMywgMTY1MjcsIDE2NTMyLCAxNjU0MCwgCi0gICAgMTY1NDYsIDE2NTUyLCAxNjU1NywgMTY1NjMsIDE2NTY5LCAxNjU3NSwgMTY1ODAsIDAsIDE2NTg2LCAxNjU5NCwgMTY2MDEsIAotICAgIDAsIDAsIDE2NjA4LCAxNjYxMywgMTY2MTksIDE2NjI0LCAxNjYzMCwgMCwgMTY2MzYsIDAsIDE2NjQyLCAxNjY0OSwgCi0gICAgMTY2NTYsIDE2NjYzLCAxNjY3MCwgMTY2NzUsIDAsIDAsIDE2Njc5LCAxNjY4NCwgMTY2ODgsIDE2NjkyLCAxNjY5NiwgCi0gICAgMTY3MDAsIDE2NzA0LCAxNjcwOCwgMTY3MTIsIDE2NzE2LCAwLCAwLCAxNjcyMCwgMTY3MjYsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDE2NzMyLCAxNjczNiwgMTY3NDcsIDE2NzYyLCAxNjc3NywgMTY3ODcsIDE2Nzk4LCAxNjgxMSwgCi0gICAgMTY4MjIsIDE2ODI4LCAxNjgzNiwgMTY4NDYsIDE2ODUyLCAxNjg2MCwgMTY4NjQsIDE2ODcwLCAxNjg3NiwgMTY4ODQsIAotICAgIDE2ODk0LCAxNjkwMiwgMTY5MTUsIDE2OTIxLCAxNjkyOSwgMTY5MzcsIDE2OTQ5LCAxNjk1NiwgMTY5NjQsIDE2OTcyLCAKLSAgICAxNjk4MCwgMTY5ODgsIDE2OTk2LCAxNzAwNCwgMTcwMTQsIDE3MDE4LCAxNzAyMSwgMTcwMjQsIDE3MDI3LCAxNzAzMCwgCi0gICAgMTcwMzMsIDE3MDM2LCAxNzAzOSwgMTcwNDIsIDE3MDQ1LCAxNzA0OSwgMTcwNTMsIDE3MDU3LCAxNzA2MSwgMTcwNjUsIAotICAgIDE3MDY5LCAxNzA3MywgMTcwNzcsIDE3MDgxLCAxNzA4NiwgMTcwOTIsIDE3MTAyLCAxNzExNiwgMTcxMjYsIDE3MTMyLCAKLSAgICAxNzEzOCwgMTcxNDYsIDE3MTU0LCAxNzE2MiwgMTcxNzAsIDE3MTc2LCAxNzE4MiwgMTcxODUsIDE3MTg5LCAxNzE5MywgCi0gICAgMTcxOTcsIDE3MjAxLCAxNzIwNSwgMTcyMDksIDAsIDE3MjEzLCAxNzIxNywgMTcyMjEsIDE3MjI1LCAxNzIyOSwgMTcyMzMsIAotICAgIDE3MjM3LCAxNzI0MSwgMTcyNDUsIDE3MjQ5LCAxNzI1MywgMTcyNTYsIDE3MjU5LCAxNzI2MywgMTcyNjcsIDE3MjcxLCAKLSAgICAxNzI3NCwgMTcyNzgsIDE3MjgyLCAxNzI4NiwgMTcyOTAsIDE3Mjk0LCAxNzI5OCwgMTczMDIsIDE3MzA2LCAxNzMwOSwgCi0gICAgMTczMTIsIDE3MzE2LCAxNzMyMCwgMTczMjQsIDE3MzI4LCAxNzMzMSwgMTczMzQsIDE3MzM4LCAxNzM0MywgMTczNDcsIDAsIAotICAgIDAsIDAsIDAsIDE3MzUxLCAxNzM1NiwgMTczNjAsIDE3MzY1LCAxNzM2OSwgMTczNzQsIDE3Mzc5LCAxNzM4NSwgMTczOTAsIAotICAgIDE3Mzk2LCAxNzQwMCwgMTc0MDUsIDE3NDA5LCAxNzQxNCwgMTc0MjQsIDE3NDMwLCAxNzQzNiwgMTc0NDMsIDE3NDUzLCAKLSAgICAxNzQ1OSwgMTc0NjMsIDE3NDY3LCAxNzQ3MywgMTc0NzksIDE3NDg3LCAxNzQ5MywgMTc1MDEsIDE3NTA5LCAxNzUxNywgCi0gICAgMTc1MjcsIDE3NTM1LCAxNzU0NSwgMTc1NTAsIDE3NTU2LCAxNzU2MiwgMTc1NjgsIDE3NTc0LCAxNzU4MCwgMTc1ODYsIDAsIAotICAgIDE3NTkyLCAxNzU5OCwgMTc2MDQsIDE3NjEwLCAxNzYxNiwgMTc2MjIsIDE3NjI4LCAxNzYzNCwgMTc2NDAsIDE3NjQ2LCAKLSAgICAxNzY1MiwgMTc2NTcsIDE3NjYyLCAxNzY2OCwgMTc2NzQsIDE3NjgwLCAxNzY4NSwgMTc2OTEsIDE3Njk3LCAxNzcwMywgCi0gICAgMTc3MDksIDE3NzE1LCAxNzcyMSwgMTc3MjcsIDE3NzMzLCAxNzczOCwgMTc3NDMsIDE3NzQ5LCAxNzc1NSwgMTc3NjEsIAotICAgIDE3NzY3LCAxNzc3MiwgMTc3NzcsIDE3NzgzLCAxNzc5MSwgMTc3OTgsIDAsIDE3ODA1LCAxNzgxMiwgMTc4MjUsIDE3ODMyLCAKLSAgICAxNzgzOSwgMTc4NDcsIDE3ODU1LCAxNzg2MSwgMTc4NjcsIDE3ODczLCAxNzg4MywgMTc4ODgsIDE3ODk0LCAxNzkwNCwgCi0gICAgMTc5MTQsIDAsIDE3OTI0LCAxNzkzNCwgMTc5NDIsIDE3OTU0LCAxNzk2NiwgMTc5NzIsIDE3OTg2LCAxODAwMSwgMTgwMDYsIAotICAgIDE4MDExLCAxODAxOSwgMTgwMjcsIDE4MDM1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxODA0MywgCi0gICAgMTgwNDYsIDE4MDUwLCAxODA1NCwgMTgwNTgsIDE4MDYyLCAxODA2NiwgMTgwNzAsIDE4MDc0LCAxODA3OCwgMTgwODIsIAotICAgIDE4MDg2LCAxODA5MCwgMTgwOTQsIDE4MDk4LCAxODEwMiwgMTgxMDYsIDE4MTEwLCAxODExNCwgMTgxMTgsIDE4MTIyLCAKLSAgICAxODEyNSwgMTgxMjgsIDE4MTMyLCAxODEzNiwgMTgxNDAsIDE4MTQzLCAxODE0NiwgMTgxNDksIDE4MTUzLCAxODE1NywgCi0gICAgMTgxNjEsIDE4MTY0LCAxODE2OCwgMTgxNzEsIDE4MTc2LCAxODE3OSwgMTgxODMsIDE4MTg2LCAxODE5MCwgMTgxOTMsIAotICAgIDE4MTk4LCAxODIwMSwgMTgyMDUsIDE4MjEyLCAxODIxNywgMTgyMjEsIDE4MjI2LCAxODIzMCwgMTgyMzUsIDE4MjM5LCAKLSAgICAxODI0NCwgMTgyNTEsIDE4MjU3LCAxODI2MiwgMTgyNjYsIDE4MjcwLCAxODI3NCwgMTgyNzgsIDE4MjgyLCAxODI4OCwgCi0gICAgMTgyOTQsIDE4MzAxLCAxODMwNywgMTgzMTMsIDE4MzE3LCAxODMyMCwgMTgzMjMsIDE4MzI2LCAxODMyOSwgMTgzMzIsIAotICAgIDE4MzM1LCAxODMzOCwgMTgzNDEsIDE4MzQ0LCAxODM1MCwgMTgzNTQsIDE4MzU4LCAxODM2MiwgMTgzNjYsIDE4MzcwLCAKLSAgICAxODM3NCwgMTgzNzgsIDE4MzgyLCAxODM4NywgMTgzOTEsIDE4Mzk2LCAxODQwMSwgMTg0MDcsIDE4NDEyLCAxODQxOCwgCi0gICAgMTg0MjQsIDE4NDMwLCAxODQzNiwgMTg0NDIsIDE4NDUwLCAxODQ1OCwgMTg0NjcsIDE4NDc1LCAxODQ4NCwgMTg0OTMsIAotICAgIDE4NTA0LCAxODUxNCwgMTg1MjQsIDE4NTM1LCAxODU0NiwgMTg1NTYsIDE4NTY2LCAxODU3NiwgMTg1ODYsIDE4NTk2LCAKLSAgICAxODYwNiwgMTg2MTYsIDE4NjI2LCAxODYzNCwgMTg2NDEsIDE4NjQ3LCAxODY1NCwgMTg2NTksIDE4NjY1LCAxODY3MSwgCi0gICAgMTg2NzcsIDE4NjgzLCAxODY4OSwgMTg2OTUsIDE4NzAwLCAxODcwNiwgMTg3MTIsIDE4NzE4LCAxODcyNCwgMTg3MjksIAotICAgIDE4NzM4LCAxODc0NSwgMTg3NTEsIDE4NzU4LCAxODc2NiwgMTg3NzIsIDE4Nzc4LCAxODc4NCwgMTg3OTAsIDE4Nzk4LCAKLSAgICAxODgwNiwgMTg4MTYsIDE4ODI0LCAxODgzMiwgMTg4MzgsIDE4ODQzLCAxODg0OCwgMTg4NTMsIDE4ODU4LCAxODg2MywgCi0gICAgMTg4NjgsIDE4ODczLCAxODg3OCwgMTg4ODMsIDE4ODg5LCAxODg5NSwgMTg5MDEsIDE4OTA4LCAxODkxMywgMTg5MTksIAotICAgIDE4OTI0LCAxODkyOSwgMTg5MzQsIDE4OTM5LCAxODk0NCwgMTg5NDksIDE4OTU0LCAxODk1OSwgMTg5NjQsIDE4OTY5LCAKLSAgICAxODk3NCwgMTg5NzksIDE4OTg0LCAxODk4OSwgMTg5OTQsIDE4OTk5LCAxOTAwNCwgMTkwMDksIDE5MDE0LCAxOTAxOSwgCi0gICAgMTkwMjQsIDE5MDI5LCAxOTAzNCwgMTkwMzksIDE5MDQ0LCAxOTA0OSwgMTkwNTQsIDE5MDU5LCAxOTA2NCwgMTkwNjksIAotICAgIDE5MDc0LCAxOTA3OSwgMTkwODQsIDE5MDg5LCAxOTA5NCwgMTkwOTksIDE5MTA0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAxOTEwOSwgMTkxMTMsIDE5MTE3LCAxOTEyMSwgMTkxMjUsIDE5MTI5LCAxOTEzMywgMTkxMzcsIDE5MTQxLCAKLSAgICAxOTE0NSwgMTkxNDksIDE5MTUzLCAxOTE1NywgMTkxNjEsIDE5MTY1LCAxOTE2OSwgMTkxNzMsIDE5MTc3LCAxOTE4MSwgCi0gICAgMTkxODUsIDE5MTg5LCAxOTE5MywgMTkxOTcsIDE5MjAxLCAxOTIwNSwgMTkyMDksIDE5MjEzLCAxOTIxNywgMTkyMjEsIAotICAgIDE5MjI1LCAxOTIyOSwgMTkyMzMsIDE5MjM3LCAxOTI0MSwgMTkyNDUsIDE5MjQ5LCAxOTI1MywgMTkyNTcsIDE5MjYxLCAKLSAgICAxOTI2NSwgMTkyNjksIDE5MjczLCAxOTI3OSwgMTkyODMsIDE5Mjg4LCAwLCAwLCAwLCAxOTI5MywgMTkyOTcsIDE5MzAxLCAKLSAgICAxOTMwNSwgMTkzMDksIDE5MzEzLCAxOTMxNywgMTkzMjEsIDE5MzI1LCAxOTMyOSwgMTkzMzMsIDE5MzM3LCAxOTM0MSwgCi0gICAgMTkzNDUsIDE5MzQ5LCAxOTM1MywgMTkzNTcsIDE5MzYxLCAxOTM2NSwgMTkzNjksIDE5MzczLCAxOTM3NywgMTkzODEsIAotICAgIDE5Mzg1LCAxOTM4OSwgMTkzOTMsIDE5Mzk3LCAxOTQwMSwgMTk0MDUsIDE5NDA5LCAxOTQxMywgMTk0MTcsIDE5NDIxLCAKLSAgICAxOTQyNSwgMTk0MjksIDE5NDMzLCAxOTQzNywgMTk0NDEsIDE5NDQ1LCAxOTQ0OSwgMTk0NTMsIDE5NDU3LCAxOTQ2MSwgCi0gICAgMTk0NjUsIDE5NDY5LCAxOTQ3MywgMTk0NzcsIDE5NDgxLCAxOTQ4NSwgMTk0ODksIDE5NDkzLCAxOTQ5NywgMTk1MDEsIAotICAgIDE5NTA1LCAxOTUwOSwgMTk1MTMsIDE5NTE3LCAxOTUyMSwgMTk1MjUsIDE5NTI5LCAxOTUzMywgMTk1MzcsIDE5NTQxLCAKLSAgICAxOTU0NSwgMTk1NDksIDE5NTUzLCAxOTU1NywgMTk1NjEsIDE5NTY1LCAxOTU2OSwgMTk1NzMsIDE5NTc3LCAxOTU4MSwgCi0gICAgMTk1ODUsIDE5NTg5LCAxOTU5MywgMTk1OTcsIDE5NjAxLCAxOTYwNSwgMTk2MDksIDE5NjEzLCAxOTYxNywgMTk2MjEsIAotICAgIDE5NjI1LCAxOTYyOSwgMTk2MzMsIDE5NjM3LCAxOTY0MSwgMTk2NDUsIDE5NjQ5LCAxOTY1MywgMTk2NTcsIDE5NjYxLCAKLSAgICAxOTY2NSwgMTk2NjksIDE5NjczLCAxOTY3NywgMTk2ODEsIDE5Njg0LCAxOTY4OCwgMTk2OTEsIDE5Njk1LCAxOTY5OSwgCi0gICAgMTk3MDIsIDE5NzA2LCAxOTcxMCwgMTk3MTMsIDE5NzE3LCAxOTcyMSwgMTk3MjUsIDE5NzI5LCAxOTczMiwgMTk3MzYsIAotICAgIDE5NzQwLCAxOTc0NCwgMTk3NDgsIDE5NzUyLCAxOTc1NiwgMTk3NTksIDE5NzYzLCAxOTc2NywgMTk3NzEsIDE5Nzc1LCAKLSAgICAxOTc3OSwgMTk3ODMsIDE5Nzg3LCAxOTc5MSwgMTk3OTUsIDE5Nzk5LCAxOTgwMywgMTk4MDcsIDE5ODExLCAxOTgxNSwgCi0gICAgMTk4MTksIDE5ODIzLCAxOTgyNywgMTk4MzEsIDE5ODM1LCAxOTgzOSwgMTk4NDMsIDE5ODQ3LCAxOTg1MSwgMTk4NTUsIAotICAgIDE5ODU5LCAxOTg2MywgMTk4NjcsIDE5ODcxLCAxOTg3NSwgMTk4NzksIDE5ODgzLCAxOTg4NywgMTk4OTEsIDE5ODk1LCAKLSAgICAxOTg5OSwgMTk5MDMsIDE5OTA3LCAxOTkxMSwgMTk5MTUsIDE5OTE5LCAxOTkyMywgMTk5MjcsIDE5OTMxLCAxOTkzNSwgCi0gICAgMTk5MzksIDE5OTQzLCAxOTk0NywgMTk5NTEsIDE5OTU1LCAxOTk1OSwgMTk5NjMsIDE5OTY3LCAxOTk3MSwgMTk5NzUsIAotICAgIDE5OTc5LCAxOTk4MywgMTk5ODcsIDE5OTkxLCAxOTk5NSwgMTk5OTksIDIwMDAzLCAyMDAwNywgMjAwMTEsIDIwMDE1LCAKLSAgICAyMDAxOSwgMjAwMjMsIDIwMDI3LCAyMDAzMSwgMjAwMzUsIDIwMDM5LCAyMDA0MywgMjAwNDcsIDIwMDUxLCAyMDA1NSwgCi0gICAgMjAwNTksIDIwMDYzLCAyMDA2NywgMjAwNzEsIDIwMDc1LCAyMDA3OSwgMjAwODMsIDIwMDg3LCAyMDA5MSwgMjAwOTUsIAotICAgIDIwMDk5LCAyMDEwMywgMjAxMDcsIDIwMTExLCAyMDExNSwgMjAxMTksIDIwMTIzLCAyMDEyNywgMjAxMzEsIDIwMTM1LCAKLSAgICAyMDEzOSwgMjAxNDMsIDIwMTQ3LCAyMDE1MSwgMjAxNTUsIDIwMTU5LCAyMDE2MywgMjAxNjcsIDIwMTcxLCAyMDE3NSwgCi0gICAgMjAxNzksIDIwMTgzLCAyMDE4NywgMjAxOTEsIDIwMTk1LCAyMDE5OSwgMjAyMDMsIDIwMjA3LCAyMDIxMSwgMjAyMTUsIAotICAgIDIwMjE5LCAyMDIyMywgMjAyMjcsIDIwMjMxLCAyMDIzNSwgMjAyMzksIDIwMjQzLCAyMDI0NywgMjAyNTEsIDIwMjU1LCAKLSAgICAyMDI1OSwgMjAyNjMsIDIwMjY3LCAyMDI3MSwgMjAyNzUsIDIwMjc5LCAyMDI4MywgMjAyODcsIDIwMjkxLCAyMDI5NSwgCi0gICAgMjAyOTksIDIwMzAzLCAyMDMwNywgMjAzMTEsIDIwMzE0LCAyMDMxOCwgMjAzMjIsIDIwMzI2LCAyMDMzMCwgMjAzMzQsIAotICAgIDIwMzM4LCAyMDM0MiwgMjAzNDYsIDIwMzUwLCAyMDM1NCwgMjAzNTgsIDIwMzYyLCAyMDM2NiwgMjAzNzAsIDIwMzc0LCAKLSAgICAyMDM3OCwgMjAzODIsIDIwMzg2LCAyMDM5MCwgMjAzOTQsIDIwMzk4LCAyMDQwMiwgMjA0MDYsIDIwNDA5LCAyMDQxMywgCi0gICAgMjA0MTcsIDIwNDIxLCAyMDQyNSwgMjA0MjksIDIwNDMzLCAyMDQzNywgMjA0NDEsIDIwNDQ1LCAyMDQ0OSwgMjA0NTMsIAotICAgIDIwNDU3LCAyMDQ2MSwgMjA0NjUsIDIwNDY5LCAyMDQ3MiwgMjA0NzYsIDIwNDgwLCAyMDQ4NCwgMjA0ODgsIDIwNDkyLCAKLSAgICAyMDQ5NiwgMjA1MDAsIDIwNTA0LCAyMDUwOCwgMjA1MTIsIDIwNTE2LCAyMDUyMCwgMjA1MjQsIDIwNTI4LCAyMDUzMiwgCi0gICAgMjA1MzYsIDIwNTQwLCAyMDU0NCwgMjA1NDgsIDIwNTUyLCAyMDU1NiwgMjA1NjAsIDIwNTY0LCAyMDU2OCwgMjA1NzIsIAotICAgIDIwNTc2LCAyMDU4MCwgMjA1ODQsIDIwNTg4LCAyMDU5MiwgMjA1OTYsIDAsIDIwNjAwLCAyMDYwNCwgMjA2MDgsIDIwNjEyLCAKLSAgICAwLCAwLCAyMDYxNiwgMjA2MjAsIDIwNjI0LCAyMDYyOCwgMjA2MzIsIDIwNjM2LCAyMDY0MCwgMCwgMjA2NDQsIDAsIAotICAgIDIwNjQ4LCAyMDY1MiwgMjA2NTYsIDIwNjYwLCAwLCAwLCAyMDY2NCwgMjA2NjgsIDIwNjcyLCAyMDY3NiwgMjA2ODAsIAotICAgIDIwNjg0LCAyMDY4OCwgMjA2OTIsIDIwNjk2LCAyMDcwMCwgMjA3MDQsIDIwNzA4LCAyMDcxMiwgMjA3MTYsIDIwNzIwLCAKLSAgICAyMDcyNCwgMjA3MjgsIDIwNzMyLCAyMDczNiwgMjA3NDAsIDIwNzQ0LCAyMDc0OCwgMjA3NTIsIDIwNzU1LCAyMDc1OSwgCi0gICAgMjA3NjMsIDIwNzY3LCAyMDc3MSwgMjA3NzUsIDIwNzc5LCAyMDc4MywgMjA3ODcsIDIwNzkxLCAyMDc5NSwgMjA3OTksIAotICAgIDIwODAzLCAyMDgwNywgMjA4MTEsIDIwODE1LCAyMDgxOSwgMjA4MjMsIDAsIDIwODI3LCAyMDgzMSwgMjA4MzUsIDIwODM5LCAKLSAgICAwLCAwLCAyMDg0MywgMjA4NDYsIDIwODUwLCAyMDg1NCwgMjA4NTgsIDIwODYyLCAyMDg2NiwgMjA4NzAsIDIwODc0LCAKLSAgICAyMDg3OCwgMjA4ODIsIDIwODg2LCAyMDg5MCwgMjA4OTQsIDIwODk4LCAyMDkwMiwgMjA5MDYsIDIwOTExLCAyMDkxNiwgCi0gICAgMjA5MjEsIDIwOTI3LCAyMDkzMywgMjA5MzgsIDIwOTQzLCAyMDk0OSwgMjA5NTIsIDIwOTU2LCAyMDk2MCwgMjA5NjQsIAotICAgIDIwOTY4LCAyMDk3MiwgMjA5NzYsIDIwOTgwLCAwLCAyMDk4NCwgMjA5ODgsIDIwOTkyLCAyMDk5NiwgMCwgMCwgMjEwMDAsIAotICAgIDIxMDA0LCAyMTAwOCwgMjEwMTIsIDIxMDE2LCAyMTAyMCwgMjEwMjQsIDAsIDIxMDI4LCAwLCAyMTAzMiwgMjEwMzYsIAotICAgIDIxMDQwLCAyMTA0NCwgMCwgMCwgMjEwNDgsIDIxMDUyLCAyMTA1NiwgMjEwNjAsIDIxMDY0LCAyMTA2OCwgMjEwNzIsIAotICAgIDIxMDc2LCAyMTA4MCwgMjEwODUsIDIxMDkwLCAyMTA5NSwgMjExMDEsIDIxMTA3LCAyMTExMiwgMCwgMjExMTcsIDIxMTIxLCAKLSAgICAyMTEyNSwgMjExMjksIDIxMTMzLCAyMTEzNywgMjExNDEsIDIxMTQ1LCAyMTE0OSwgMjExNTMsIDIxMTU3LCAyMTE2MSwgCi0gICAgMjExNjUsIDIxMTY5LCAyMTE3MywgMjExNzcsIDIxMTgxLCAyMTE4NCwgMjExODgsIDIxMTkyLCAyMTE5NiwgMjEyMDAsIAotICAgIDIxMjA0LCAyMTIwOCwgMjEyMTIsIDIxMjE2LCAyMTIyMCwgMjEyMjQsIDIxMjI4LCAyMTIzMiwgMjEyMzYsIDIxMjQwLCAKLSAgICAyMTI0NCwgMjEyNDgsIDIxMjUyLCAyMTI1NiwgMjEyNjAsIDIxMjY0LCAyMTI2OCwgMjEyNzIsIDIxMjc2LCAyMTI4MCwgCi0gICAgMjEyODQsIDIxMjg4LCAyMTI5MiwgMjEyOTYsIDIxMzAwLCAyMTMwNCwgMjEzMDgsIDIxMzEyLCAyMTMxNiwgMjEzMjAsIAotICAgIDIxMzI0LCAyMTMyOCwgMjEzMzIsIDIxMzM2LCAyMTM0MCwgMCwgMjEzNDQsIDIxMzQ4LCAyMTM1MiwgMjEzNTYsIDAsIDAsIAotICAgIDIxMzYwLCAyMTM2NCwgMjEzNjgsIDIxMzcyLCAyMTM3NiwgMjEzODAsIDIxMzg0LCAyMTM4OCwgMjEzOTIsIDIxMzk2LCAKLSAgICAyMTQwMCwgMjE0MDQsIDIxNDA4LCAyMTQxMiwgMjE0MTYsIDIxNDIwLCAyMTQyNCwgMjE0MjgsIDIxNDMyLCAyMTQzNiwgCi0gICAgMjE0NDAsIDIxNDQ0LCAyMTQ0OCwgMjE0NTIsIDIxNDU2LCAyMTQ2MCwgMjE0NjQsIDIxNDY4LCAyMTQ3MiwgMjE0NzYsIAotICAgIDIxNDgwLCAyMTQ4NCwgMjE0ODgsIDIxNDkyLCAyMTQ5NiwgMjE1MDAsIDIxNTA0LCAyMTUwOCwgMjE1MTIsIDIxNTE2LCAKLSAgICAyMTUyMCwgMjE1MjQsIDIxNTI4LCAyMTUzMiwgMjE1MzYsIDIxNTQwLCAyMTU0NCwgMjE1NDgsIDIxNTUyLCAyMTU1NiwgCi0gICAgMjE1NjAsIDIxNTY0LCAyMTU2OCwgMjE1NzIsIDIxNTc2LCAyMTU4MCwgMjE1ODQsIDIxNTg3LCAyMTU5MSwgMjE1OTUsIAotICAgIDIxNTk5LCAyMTYwMywgMjE2MDcsIDIxNjExLCAyMTYxNSwgMjE2MTksIDIxNjIzLCAwLCAwLCAyMTYyNywgMjE2MzYsIAotICAgIDIxNjQyLCAyMTY0NywgMjE2NTEsIDIxNjU0LCAyMTY1OSwgMjE2NjIsIDIxNjY1LCAyMTY2OCwgMjE2NzMsIDIxNjc3LCAKLSAgICAyMTY4MiwgMjE2ODUsIDIxNjg4LCAyMTY5MSwgMjE2OTQsIDIxNjk3LCAyMTcwMCwgMjE3MDMsIDIxNzA2LCAyMTcwOSwgCi0gICAgMjE3MTMsIDIxNzE3LCAyMTcyMSwgMjE3MjUsIDIxNzI5LCAyMTczMywgMjE3MzcsIDIxNzQxLCAyMTc0NSwgMjE3NDksIDAsIAotICAgIDAsIDAsIDIxNzU1LCAyMTc2MSwgMjE3NjUsIDIxNzY5LCAyMTc3MywgMjE3NzksIDIxNzgzLCAyMTc4NywgMjE3OTEsIAotICAgIDIxNzk3LCAyMTgwMSwgMjE4MDUsIDIxODA5LCAyMTgxNSwgMjE4MTksIDIxODIzLCAyMTgyNywgMjE4MzMsIDIxODM5LCAKLSAgICAyMTg0NSwgMjE4NTMsIDIxODU5LCAyMTg2NSwgMjE4NzEsIDIxODc3LCAyMTg4MywgMCwgMCwgMCwgMCwgMCwgMCwgMjE4ODksIAotICAgIDIxODkyLCAyMTg5NSwgMjE4OTgsIDIxOTAxLCAyMTkwNCwgMjE5MDgsIDIxOTEyLCAyMTkxNSwgMjE5MTksIDIxOTIzLCAKLSAgICAyMTkyNywgMjE5MzEsIDIxOTM1LCAyMTkzOCwgMjE5NDIsIDIxOTQ2LCAyMTk1MCwgMjE5NTQsIDIxOTU4LCAyMTk2MiwgCi0gICAgMjE5NjYsIDIxOTcwLCAyMTk3NCwgMjE5NzgsIDIxOTgyLCAyMTk4NSwgMjE5ODksIDIxOTkzLCAyMTk5NywgMjIwMDEsIAotICAgIDIyMDA0LCAyMjAwOCwgMjIwMTIsIDIyMDE2LCAyMjAyMCwgMjIwMjQsIDIyMDI4LCAyMjAzMiwgMjIwMzYsIDIyMDQwLCAKLSAgICAyMjA0NCwgMjIwNDgsIDIyMDUyLCAyMjA1NiwgMjIwNjAsIDIyMDYzLCAyMjA2NywgMjIwNzEsIDIyMDc1LCAyMjA3OSwgCi0gICAgMjIwODMsIDIyMDg3LCAyMjA5MSwgMjIwOTUsIDIyMDk5LCAyMjEwMywgMjIxMDcsIDIyMTExLCAyMjExNSwgMjIxMTksIAotICAgIDIyMTIzLCAyMjEyNywgMjIxMzEsIDIyMTM1LCAyMjEzOSwgMjIxNDMsIDIyMTQ3LCAyMjE1MSwgMjIxNTUsIDIyMTU5LCAKLSAgICAyMjE2MywgMjIxNjcsIDIyMTcxLCAyMjE3NSwgMjIxNzksIDIyMTgzLCAyMjE4NywgMjIxOTEsIDIyMTk1LCAyMjE5OCwgCi0gICAgMjIyMDIsIDIyMjA2LCAyMjIxMCwgMjIyMTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIyMjE4LCAKLSAgICAyMjIyMiwgMjIyMjUsIDIyMjI5LCAyMjIzMiwgMjIyMzYsIDIyMjM5LCAyMjI0MywgMjIyNDksIDIyMjU0LCAyMjI1OCwgCi0gICAgMjIyNjEsIDIyMjY1LCAyMjI2OSwgMjIyNzQsIDIyMjc4LCAyMjI4MywgMjIyODcsIDIyMjkyLCAyMjI5NiwgMjIzMDEsIAotICAgIDIyMzA1LCAyMjMxMCwgMjIzMTYsIDIyMzIwLCAyMjMyNSwgMjIzMjksIDIyMzM0LCAyMjM0MCwgMjIzNDQsIDIyMzUwLCAKLSAgICAyMjM1NiwgMjIzNjAsIDIyMzY1LCAyMjM3MywgMjIzODEsIDIyMzg4LCAyMjM5MywgMjIzOTgsIDIyNDA3LCAyMjQxNCwgCi0gICAgMjI0MjEsIDIyNDI2LCAyMjQzMiwgMjI0MzYsIDIyNDQwLCAyMjQ0NCwgMjI0NDgsIDIyNDUyLCAyMjQ1NiwgMjI0NjAsIAotICAgIDIyNDY0LCAyMjQ2OCwgMjI0NzIsIDIyNDc4LCAyMjQ4MywgMjI0ODgsIDIyNDkxLCAyMjQ5NSwgMjI0OTksIDIyNTA0LCAKLSAgICAyMjUwOCwgMjI1MTMsIDIyNTE3LCAyMjUyMiwgMjI1MjYsIDIyNTMxLCAyMjUzNSwgMjI1NDAsIDIyNTQ0LCAyMjU0OSwgCi0gICAgMjI1NTMsIDIyNTU4LCAyMjU2NCwgMjI1NjgsIDIyNTczLCAyMjU3OCwgMjI1ODIsIDIyNTg2LCAyMjU5MCwgMjI1OTQsIAotICAgIDIyNTk3LCAyMjYwMSwgMjI2MDcsIDIyNjEyLCAyMjYxNywgMjI2MjEsIDIyNjI1LCAyMjYyOSwgMjI2MzQsIDIyNjM4LCAKLSAgICAyMjY0MywgMjI2NDcsIDIyNjUyLCAyMjY1NSwgMjI2NTksIDIyNjYzLCAyMjY2OCwgMjI2NzIsIDIyNjc3LCAyMjY4MSwgCi0gICAgMjI2ODYsIDIyNjkyLCAyMjY5NiwgMjI3MDAsIDIyNzA0LCAyMjcwOCwgMjI3MTIsIDIyNzE2LCAyMjcyMCwgMjI3MjQsIAotICAgIDIyNzI4LCAyMjczMiwgMjI3MzYsIDIyNzQyLCAyMjc0NSwgMjI3NDksIDIyNzUzLCAyMjc1OCwgMjI3NjIsIDIyNzY3LCAKLSAgICAyMjc3MSwgMjI3NzYsIDIyNzgwLCAyMjc4NSwgMjI3ODksIDIyNzk0LCAyMjc5OCwgMjI4MDMsIDIyODA3LCAyMjgxMiwgCi0gICAgMjI4MTgsIDIyODIyLCAyMjgyNiwgMjI4MzIsIDIyODM4LCAyMjg0NCwgMjI4NTAsIDIyODU0LCAyMjg1OCwgMjI4NjIsIAotICAgIDIyODY2LCAyMjg3MCwgMjI4NzQsIDIyODgwLCAyMjg4NCwgMjI4ODgsIDIyODkyLCAyMjg5NywgMjI5MDEsIDIyOTA2LCAKLSAgICAyMjkxMCwgMjI5MTUsIDIyOTE5LCAyMjkyNCwgMjI5MjgsIDIyOTMzLCAyMjkzNywgMjI5NDIsIDIyOTQ2LCAyMjk1MSwgCi0gICAgMjI5NTcsIDIyOTYxLCAyMjk2NywgMjI5NzEsIDIyOTc1LCAyMjk3OSwgMjI5ODMsIDIyOTg3LCAyMjk5MSwgMjI5OTcsIAotICAgIDIzMDAwLCAyMzAwNCwgMjMwMDgsIDIzMDEzLCAyMzAxNywgMjMwMjIsIDIzMDI2LCAyMzAzMSwgMjMwMzUsIDIzMDQwLCAKLSAgICAyMzA0NCwgMjMwNDksIDIzMDUzLCAyMzA1OCwgMjMwNjIsIDIzMDY3LCAyMzA3MywgMjMwNzYsIDIzMDgwLCAyMzA4NCwgCi0gICAgMjMwODksIDIzMDk0LCAyMzA5OCwgMjMxMDIsIDIzMTA2LCAyMzExMCwgMjMxMTQsIDIzMTE4LCAyMzEyNCwgMjMxMjcsIAotICAgIDIzMTMxLCAyMzEzNSwgMjMxNDAsIDIzMTQ0LCAyMzE0OSwgMjMxNTMsIDIzMTU4LCAyMzE2NCwgMjMxNjcsIDIzMTcyLCAKLSAgICAyMzE3NiwgMjMxODAsIDIzMTg0LCAyMzE4OCwgMjMxOTIsIDIzMTk2LCAyMzIwMCwgMjMyMDYsIDIzMjEwLCAyMzIxNCwgCi0gICAgMjMyMTgsIDIzMjIzLCAyMzIyNywgMjMyMzIsIDIzMjM2LCAyMzI0MSwgMjMyNDUsIDIzMjUwLCAyMzI1NCwgMjMyNTksIAotICAgIDIzMjYzLCAyMzI2OCwgMjMyNzIsIDIzMjc3LCAyMzI4MCwgMjMyODQsIDIzMjg4LCAyMzI5MiwgMjMyOTYsIDIzMzAwLCAKLSAgICAyMzMwNCwgMjMzMDgsIDIzMzEyLCAyMzMxOCwgMjMzMjIsIDIzMzI2LCAyMzMzMCwgMjMzMzUsIDIzMzM5LCAyMzM0NCwgCi0gICAgMjMzNDgsIDIzMzUzLCAyMzM1NywgMjMzNjIsIDIzMzY2LCAyMzM3MSwgMjMzNzUsIDIzMzgwLCAyMzM4NCwgMjMzODksIAotICAgIDIzMzk1LCAyMzM5OCwgMjM0MDMsIDIzNDA3LCAyMzQxMiwgMjM0MTgsIDIzNDI0LCAyMzQzMCwgMjM0MzYsIDIzNDQyLCAKLSAgICAyMzQ0OCwgMjM0NTQsIDIzNDU4LCAyMzQ2MiwgMjM0NjYsIDIzNDcwLCAyMzQ3NCwgMjM0NzgsIDIzNDgyLCAyMzQ4NiwgCi0gICAgMjM0OTEsIDIzNDk1LCAyMzUwMCwgMjM1MDQsIDIzNTA5LCAyMzUxMywgMjM1MTgsIDIzNTIyLCAyMzUyNywgMjM1MzEsIAotICAgIDIzNTM2LCAyMzU0MCwgMjM1NDUsIDIzNTQ5LCAyMzU1MywgMjM1NTcsIDIzNTYxLCAyMzU2NSwgMjM1NjksIDIzNTczLCAKLSAgICAyMzU3OSwgMjM1ODIsIDIzNTg2LCAyMzU5MCwgMjM1OTUsIDIzNTk5LCAyMzYwNCwgMjM2MDgsIDIzNjEzLCAyMzYxNywgCi0gICAgMjM2MjIsIDIzNjI2LCAyMzYzMSwgMjM2MzUsIDIzNjQwLCAyMzY0NCwgMjM2NDksIDIzNjU1LCAyMzY1OSwgMjM2NjUsIAotICAgIDIzNjcwLCAyMzY3NiwgMjM2ODAsIDIzNjg2LCAyMzY5MSwgMjM2OTUsIDIzNjk5LCAyMzcwMywgMjM3MDcsIDIzNzExLCAKLSAgICAyMzcxNiwgMjM3MTksIDIzNzIzLCAyMzcyOCwgMjM3MzIsIDIzNzM3LCAyMzc0MCwgMjM3NDQsIDIzNzQ4LCAyMzc1MiwgCi0gICAgMjM3NTYsIDIzNzYwLCAyMzc2NCwgMjM3NjgsIDIzNzcyLCAyMzc3NiwgMjM3ODAsIDIzNzg0LCAyMzc4OSwgMjM3OTMsIAotICAgIDIzNzk3LCAyMzgwMywgMjM4MDcsIDIzODEzLCAyMzgxNywgMjM4MjMsIDIzODI3LCAyMzgzMSwgMjM4MzUsIDIzODM5LCAKLSAgICAyMzg0MywgMjM4NDgsIDIzODUyLCAyMzg1NiwgMjM4NjAsIDIzODY0LCAyMzg2OCwgMjM4NzIsIDIzODc2LCAyMzg4MCwgCi0gICAgMjM4ODQsIDIzODg4LCAyMzg5NCwgMjM5MDAsIDIzOTA2LCAyMzkxMiwgMjM5MTgsIDIzOTIzLCAyMzkyOSwgMjM5MzUsIAotICAgIDIzOTQxLCAyMzk0NSwgMjM5NDksIDIzOTUzLCAyMzk1NywgMjM5NjEsIDIzOTY1LCAyMzk2OSwgMjM5NzMsIDIzOTc3LCAKLSAgICAyMzk4MSwgMjM5ODUsIDIzOTg5LCAyMzk5MywgMjM5OTgsIDI0MDAzLCAyNDAwOCwgMjQwMTIsIDI0MDE2LCAyNDAyMCwgCi0gICAgMjQwMjQsIDI0MDI4LCAyNDAzMiwgMjQwMzYsIDI0MDQwLCAyNDA0NCwgMjQwNDgsIDI0MDU0LCAyNDA2MCwgMjQwNjYsIAotICAgIDI0MDcyLCAyNDA3OCwgMjQwODQsIDI0MDkwLCAyNDA5NiwgMjQxMDIsIDI0MTA2LCAyNDExMCwgMjQxMTQsIDI0MTE4LCAKLSAgICAyNDEyMiwgMjQxMjYsIDI0MTMwLCAyNDEzNiwgMjQxNDIsIDI0MTQ4LCAyNDE1NCwgMjQxNjAsIDI0MTY2LCAyNDE3MiwgCi0gICAgMjQxNzgsIDI0MTg0LCAyNDE4OSwgMjQxOTQsIDI0MTk5LCAyNDIwNCwgMjQyMTAsIDI0MjE2LCAyNDIyMiwgMjQyMjgsIAotICAgIDI0MjM0LCAyNDI0MCwgMjQyNDYsIDI0MjUxLCAyNDI1NywgMjQyNjMsIDI0MjY5LCAyNDI3NCwgMjQyODAsIDI0Mjg2LCAKLSAgICAyNDI5MiwgMjQyOTcsIDI0MzAyLCAyNDMwNywgMjQzMTIsIDI0MzE3LCAyNDMyMiwgMjQzMjcsIDI0MzMyLCAyNDMzNywgCi0gICAgMjQzNDIsIDI0MzQ3LCAyNDM1MiwgMjQzNTYsIDI0MzYxLCAyNDM2NiwgMjQzNzEsIDI0Mzc2LCAyNDM4MSwgMjQzODYsIAotICAgIDI0MzkxLCAyNDM5NiwgMjQ0MDEsIDI0NDA2LCAyNDQxMSwgMjQ0MTYsIDI0NDIxLCAyNDQyNiwgMjQ0MzEsIDI0NDM2LCAKLSAgICAyNDQ0MSwgMjQ0NDYsIDI0NDUxLCAyNDQ1NiwgMjQ0NjEsIDI0NDY2LCAyNDQ3MSwgMjQ0NzYsIDI0NDgxLCAyNDQ4NiwgCi0gICAgMjQ0OTEsIDI0NDk2LCAyNDUwMSwgMjQ1MDUsIDI0NTEwLCAyNDUxNSwgMjQ1MjAsIDI0NTI1LCAyNDUzMCwgMjQ1MzUsIAotICAgIDI0NTQwLCAyNDU0NSwgMjQ1NTAsIDI0NTU1LCAyNDU2MCwgMjQ1NjUsIDI0NTcwLCAyNDU3NSwgMjQ1ODAsIDI0NTg1LCAKLSAgICAyNDU5MCwgMjQ1OTUsIDI0NjAwLCAyNDYwNSwgMjQ2MTAsIDI0NjE1LCAyNDYyMCwgMjQ2MjUsIDI0NjMwLCAyNDYzNCwgCi0gICAgMjQ2MzksIDI0NjQ0LCAyNDY0OSwgMjQ2NTQsIDI0NjU5LCAyNDY2MywgMjQ2NjgsIDI0NjczLCAyNDY3OCwgMjQ2ODMsIAotICAgIDI0Njg4LCAyNDY5MiwgMjQ2OTcsIDI0NzAzLCAyNDcwOCwgMjQ3MTMsIDI0NzE4LCAyNDcyMywgMjQ3MjksIDI0NzM0LCAKLSAgICAyNDczOSwgMjQ3NDQsIDI0NzQ5LCAyNDc1NCwgMjQ3NTksIDI0NzY0LCAyNDc2OSwgMjQ3NzQsIDI0Nzc5LCAyNDc4NCwgCi0gICAgMjQ3ODksIDI0Nzk0LCAyNDc5OSwgMjQ4MDQsIDI0ODA5LCAyNDgxNCwgMjQ4MTksIDI0ODI0LCAyNDgyOSwgMjQ4MzQsIAotICAgIDI0ODM5LCAyNDg0NCwgMjQ4NDksIDI0ODU0LCAyNDg1OSwgMjQ4NjQsIDI0ODY5LCAyNDg3NCwgMjQ4NzksIDI0ODg0LCAKLSAgICAyNDg4OSwgMjQ4OTQsIDI0ODk5LCAyNDkwNCwgMjQ5MDksIDI0OTE0LCAyNDkxOSwgMjQ5MjQsIDI0OTI5LCAyNDkzNCwgCi0gICAgMjQ5MzksIDI0OTQ0LCAyNDk0OSwgMjQ5NTUsIDI0OTYwLCAyNDk2NSwgMjQ5NzAsIDI0OTc1LCAyNDk4MCwgMjQ5ODUsIAotICAgIDI0OTkwLCAyNDk5NSwgMjUwMDAsIDI1MDA1LCAyNTAxMCwgMjUwMTUsIDI1MDIwLCAyNTAyNSwgMjUwMzAsIDI1MDM1LCAKLSAgICAyNTA0MCwgMjUwNDUsIDI1MDUwLCAyNTA1NSwgMjUwNjAsIDI1MDY1LCAyNTA3MCwgMjUwNzUsIDI1MDgwLCAyNTA4NSwgCi0gICAgMjUwOTAsIDI1MDk1LCAyNTEwMCwgMjUxMDUsIDI1MTEwLCAyNTExNSwgMjUxMjAsIDI1MTI1LCAyNTEzMCwgMjUxMzUsIAotICAgIDI1MTQwLCAyNTE0NSwgMjUxNTEsIDI1MTU1LCAyNTE1OSwgMjUxNjMsIDI1MTY3LCAyNTE3MSwgMjUxNzUsIDI1MTc5LCAKLSAgICAyNTE4MywgMjUxODksIDI1MTk1LCAyNTIwMSwgMjUyMDcsIDI1MjEzLCAyNTIxOSwgMjUyMjUsIDI1MjMyLCAyNTIzOCwgCi0gICAgMjUyNDMsIDI1MjQ4LCAyNTI1MywgMjUyNTgsIDI1MjYzLCAyNTI2OCwgMjUyNzMsIDI1Mjc4LCAyNTI4MywgMjUyODgsIAotICAgIDI1MjkzLCAyNTI5OCwgMjUzMDMsIDI1MzA4LCAyNTMxMywgMjUzMTgsIDI1MzIzLCAyNTMyOCwgMjUzMzMsIDI1MzM4LCAKLSAgICAyNTM0MywgMjUzNDgsIDI1MzUzLCAyNTM1OCwgMjUzNjMsIDI1MzY4LCAyNTM3MywgMjUzNzgsIDAsIDAsIDAsIDI1Mzg1LCAKLSAgICAyNTM5NSwgMjUzOTksIDI1NDA2LCAyNTQxMCwgMjU0MTQsIDI1NDE4LCAyNTQyNiwgMjU0MzAsIDI1NDM1LCAyNTQ0MCwgCi0gICAgMjU0NDUsIDI1NDQ5LCAyNTQ1NCwgMjU0NTksIDI1NDYyLCAyNTQ2NiwgMjU0NzAsIDI1NDc5LCAyNTQ4MywgMjU0ODcsIAotICAgIDI1NDkzLCAyNTQ5NywgMjU1MDEsIDI1NTA5LCAyNTUxMywgMjU1MjEsIDI1NTI3LCAyNTUzMywgMjU1MzksIDI1NTQ1LCAKLSAgICAyNTU1NCwgMjU1NTksIDI1NTYzLCAyNTU3MiwgMjU1NzUsIDI1NTgxLCAyNTU4NSwgMjU1OTEsIDI1NTk2LCAyNTYwMiwgCi0gICAgMjU2MTAsIDI1NjE2LCAyNTYyMSwgMjU2MjgsIDI1NjMzLCAyNTYzNywgMjU2NDEsIDI1NjUxLCAyNTY1NywgMjU2NjEsIAotICAgIDI1NjcxLCAyNTY3NywgMjU2ODEsIDI1Njg1LCAyNTY5MiwgMjU2OTksIDI1NzA0LCAyNTcwOSwgMjU3MTgsIDI1NzIyLCAKLSAgICAyNTcyNiwgMjU3MzAsIDI1NzM4LCAyNTc0NSwgMjU3NDksIDI1NzUzLCAyNTc1NywgMjU3NjEsIDI1NzY1LCAyNTc2OSwgCi0gICAgMjU3NzMsIDI1Nzc3LCAyNTc4MSwgMjU3ODUsIDI1Nzg5LCAyNTc5NCwgMjU3OTksIDI1ODA0LCAyNTgwOCwgMjU4MTIsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI1ODE2LCAyNTgyMCwgMjU4MjQsIDI1ODI4LCAKLSAgICAyNTgzMiwgMjU4MzcsIDI1ODQyLCAyNTg0NywgMjU4NTIsIDI1ODU2LCAyNTg2MCwgMjU4NjUsIDI1ODY5LCAwLCAyNTg3MywgCi0gICAgMjU4NzgsIDI1ODgzLCAyNTg4OCwgMjU4OTIsIDI1ODk3LCAyNTkwMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMjU5MDcsIDI1OTExLCAyNTkxNSwgMjU5MTksIDI1OTIzLCAyNTkyOCwgMjU5MzMsIDI1OTM4LCAyNTk0MywgMjU5NDcsIAotICAgIDI1OTUxLCAyNTk1NiwgMjU5NjAsIDI1OTY0LCAyNTk2OCwgMjU5NzMsIDI1OTc4LCAyNTk4MywgMjU5ODcsIDI1OTkyLCAKLSAgICAyNTk5NywgMjYwMDIsIDI2MDA4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNjAxMywgMjYwMTcsIDI2MDIxLCAKLSAgICAyNjAyNSwgMjYwMjksIDI2MDM0LCAyNjAzOSwgMjYwNDQsIDI2MDQ5LCAyNjA1MywgMjYwNTcsIDI2MDYyLCAyNjA2NiwgCi0gICAgMjYwNzAsIDI2MDc0LCAyNjA3OSwgMjYwODQsIDI2MDg5LCAyNjA5MywgMjYwOTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDI2MTAzLCAyNjEwNywgMjYxMTEsIDI2MTE1LCAyNjExOSwgMjYxMjQsIDI2MTI5LCAyNjEzNCwgCi0gICAgMjYxMzksIDI2MTQzLCAyNjE0NywgMjYxNTIsIDI2MTU2LCAwLCAyNjE2MCwgMjYxNjUsIDI2MTcwLCAwLCAyNjE3NSwgCi0gICAgMjYxODAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI2MTg1LCAyNjE4OCwgMjYxOTIsIDI2MTk2LCAKLSAgICAyNjIwMCwgMjYyMDQsIDI2MjA4LCAyNjIxMiwgMjYyMTYsIDI2MjIwLCAyNjIyNCwgMjYyMjgsIDI2MjMyLCAyNjIzNiwgCi0gICAgMjYyNDAsIDI2MjQ0LCAyNjI0OCwgMjYyNTIsIDI2MjU1LCAyNjI1OSwgMjYyNjMsIDI2MjY3LCAyNjI3MSwgMjYyNzUsIAotICAgIDI2Mjc5LCAyNjI4MywgMjYyODcsIDI2MjkxLCAyNjI5NSwgMjYyOTksIDI2MzAzLCAyNjMwNywgMjYzMTEsIDI2MzE0LCAKLSAgICAyNjMxOCwgMjYzMjIsIDI2MzI4LCAyNjMzNCwgMjYzNDAsIDI2MzQ2LCAyNjM1MiwgMjYzNTgsIDI2MzY0LCAyNjM3MCwgCi0gICAgMjYzNzYsIDI2MzgyLCAyNjM4OCwgMjYzOTQsIDI2NDAwLCAyNjQwNiwgMjY0MTUsIDI2NDI0LCAyNjQzMCwgMjY0MzYsIAotICAgIDI2NDQyLCAyNjQ0NywgMjY0NTEsIDI2NDU2LCAyNjQ2MSwgMjY0NjYsIDI2NDcwLCAyNjQ3NSwgMjY0ODAsIDI2NDg1LCAKLSAgICAyNjQ4OSwgMjY0OTQsIDI2NDk4LCAyNjUwMywgMjY1MDgsIDI2NTEzLCAyNjUxOCwgMjY1MjIsIDI2NTI2LCAyNjUzMCwgCi0gICAgMjY1MzQsIDI2NTM4LCAyNjU0MiwgMjY1NDYsIDI2NTUwLCAyNjU1NCwgMjY1NTgsIDI2NTY0LCAyNjU2OCwgMjY1NzIsIAotICAgIDI2NTc2LCAyNjU4MCwgMjY1ODQsIDI2NTkyLCAyNjU5OCwgMjY2MDIsIDI2NjA4LCAyNjYxMiwgMjY2MTgsIDI2NjIyLCAwLCAKLSAgICAwLCAyNjYyNiwgMjY2MzAsIDI2NjMzLCAyNjYzNiwgMjY2MzksIDI2NjQyLCAyNjY0NSwgMjY2NDgsIDI2NjUxLCAyNjY1NCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMjY2NTcsIDI2NjY1LCAyNjY3MywgMjY2ODEsIDI2Njg5LCAyNjY5NywgMjY3MDUsIDI2NzEzLCAKLSAgICAyNjcyMSwgMjY3MjksIDAsIDAsIDAsIDAsIDAsIDAsIDI2NzM3LCAyNjc0MCwgMjY3NDMsIDI2NzQ2LCAyNjc1MSwgMjY3NTQsIAotICAgIDI2NzU5LCAyNjc2NiwgMjY3NzQsIDI2Nzc5LCAyNjc4NiwgMjY3ODksIDI2Nzk2LCAyNjgwMywgMjY4MTAsIDAsIDI2ODE0LCAKLSAgICAyNjgxOCwgMjY4MjEsIDI2ODI0LCAyNjgyNywgMjY4MzAsIDI2ODMzLCAyNjgzNiwgMjY4MzksIDI2ODQyLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAyNjg0NSwgMjY4NDgsIDI2ODUxLCAyNjg1NCwgMjY4NTcsIDI2ODYwLCAyNjg2NCwgMjY4NjgsIDI2ODcyLCAKLSAgICAyNjg3NSwgMjY4NzksIDI2ODgzLCAyNjg4NiwgMjY4OTAsIDI2ODk0LCAyNjg5NywgMjY5MDEsIDI2OTA1LCAyNjkwOSwgCi0gICAgMjY5MTMsIDI2OTE3LCAyNjkyMSwgMjY5MjUsIDI2OTI4LCAyNjkzMSwgMjY5MzUsIDI2OTM5LCAyNjk0MiwgMjY5NDYsIAotICAgIDI2OTUwLCAyNjk1NCwgMjY5NTgsIDI2OTYyLCAyNjk2NiwgMjY5NzAsIDI2OTc0LCAyNjk4MSwgMjY5ODYsIDI2OTkxLCAKLSAgICAyNjk5NiwgMjcwMDEsIDI3MDA3LCAyNzAxMywgMjcwMTksIDI3MDI1LCAyNzAzMCwgMjcwMzYsIDI3MDQyLCAyNzA0NywgCi0gICAgMjcwNTMsIDI3MDU5LCAyNzA2NSwgMjcwNzEsIDI3MDc3LCAyNzA4MiwgMjcwODgsIDI3MDkzLCAyNzA5OSwgMjcxMDUsIAotICAgIDI3MTExLCAyNzExNywgMjcxMjMsIDI3MTI4LCAyNzEzMywgMjcxMzksIDI3MTQ1LCAyNzE1MCwgMjcxNTYsIDI3MTYxLCAKLSAgICAyNzE2NywgMjcxNzIsIDI3MTc3LCAyNzE4MywgMjcxODksIDI3MTk1LCAyNzIwMSwgMjcyMDcsIDI3MjEzLCAyNzIxOSwgCi0gICAgMjcyMjUsIDI3MjMxLCAyNzIzNywgMjcyNDMsIDI3MjQ5LCAyNzI1NCwgMjcyNTksIDI3MjY0LCAyNzI3MCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMjcyNzYsIDI3Mjg1LCAyNzI5NCwgMjczMDIsIDI3MzEwLCAyNzMyMCwgMjczMjgsIDI3MzM3LCAKLSAgICAyNzM0NCwgMjczNTEsIDI3MzU4LCAyNzM2NiwgMjczNzQsIDI3MzgyLCAyNzM5MCwgMjczOTgsIDI3NDA2LCAyNzQxNCwgCi0gICAgMjc0MjIsIDI3NDI5LCAyNzQzNywgMjc0NDUsIDI3NDUzLCAyNzQ2MSwgMjc0NjksIDI3NDc5LCAyNzQ4OSwgMjc0OTksIAotICAgIDI3NTA5LCAyNzUxOSwgMjc1MjksIDI3NTM5LCAyNzU0OSwgMjc1NTksIDI3NTY5LCAyNzU3OSwgMjc1ODksIDI3NTk5LCAKLSAgICAyNzYwOSwgMjc2MTcsIDI3NjI1LCAyNzYzNSwgMjc2NDMsIDAsIDAsIDAsIDAsIDAsIDI3NjUzLCAyNzY1NywgMjc2NjEsIAotICAgIDI3NjY1LCAyNzY2OSwgMjc2NzMsIDI3Njc3LCAyNzY4MSwgMjc2ODUsIDI3Njg5LCAyNzY5MywgMjc2OTcsIDI3NzAxLCAKLSAgICAyNzcwNSwgMjc3MDksIDI3NzEzLCAyNzcxNywgMjc3MjEsIDI3NzI1LCAyNzcyOSwgMjc3MzMsIDI3NzM3LCAyNzc0MSwgCi0gICAgMjc3NDUsIDI3NzUxLCAyNzc1NSwgMjc3NjEsIDI3NzY1LCAyNzc3MSwgMjc3NzUsIDI3NzgxLCAyNzc4NSwgMjc3ODksIAotICAgIDI3NzkzLCAyNzc5NywgMjc4MDEsIDI3ODA1LCAyNzgxMSwgMjc4MTcsIDI3ODIzLCAyNzgyOSwgMjc4MzQsIDI3ODM5LCAKLSAgICAyNzg0NCwgMjc4NTAsIDI3ODU2LCAyNzg2MiwgMjc4NjgsIDI3ODc1LCAyNzg4MSwgMjc4ODYsIDI3ODkxLCAyNzg5NSwgCi0gICAgMjc4OTksIDI3OTAzLCAyNzkwNywgMjc5MTEsIDI3OTE1LCAyNzkxOSwgMjc5MjUsIDI3OTMxLCAyNzkzNywgMjc5NDIsIAotICAgIDI3OTQ5LCAyNzk1NCwgMjc5NTksIDI3OTY1LCAyNzk3MCwgMjc5NzcsIDI3OTg0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAyNzk5MCwgMjc5OTUsIDI3OTk4LCAyODAwMiwgMjgwMDYsIDI4MDEwLCAyODAxNCwgMjgwMTgsIDI4MDIyLCAKLSAgICAyODAyNiwgMjgwMzAsIDI4MDM0LCAyODAzOCwgMjgwNDIsIDI4MDQ2LCAyODA1MCwgMjgwNTMsIDI4MDU2LCAyODA2MCwgCi0gICAgMjgwNjQsIDI4MDY4LCAyODA3MSwgMjgwNzQsIDI4MDc3LCAyODA4MSwgMjgwODUsIDI4MDg5LCAyODA5MywgMjgwOTcsIDAsIAotICAgIDAsIDAsIDI4MTAwLCAyODEwNCwgMjgxMDgsIDI4MTEyLCAyODExNywgMjgxMjIsIDI4MTI3LCAyODEzMiwgMjgxMzYsIAotICAgIDI4MTQwLCAyODE0NSwgMjgxNTAsIDAsIDAsIDAsIDAsIDI4MTU2LCAyODE2MCwgMjgxNjUsIDI4MTcwLCAyODE3NSwgCi0gICAgMjgxNzksIDI4MTgzLCAyODE4NywgMjgxOTEsIDI4MTk2LCAyODIwMCwgMjgyMDQsIDAsIDAsIDAsIDAsIDI4MjA4LCAwLCAwLCAKLSAgICAwLCAyODIxMiwgMjgyMTYsIDI4MjIwLCAyODIyNCwgMjgyMjcsIDI4MjMwLCAyODIzMywgMjgyMzYsIDI4MjM5LCAyODI0MiwgCi0gICAgMjgyNDUsIDI4MjQ4LCAyODI1MSwgMjgyNTYsIDI4MjYyLCAyODI2OCwgMjgyNzQsIDI4MjgwLCAyODI4NSwgMjgyOTEsIAotICAgIDI4Mjk3LCAyODMwMywgMjgzMDgsIDI4MzE0LCAyODMxOSwgMjgzMjUsIDI4MzMxLCAyODMzNiwgMjgzNDIsIDI4MzQ4LCAKLSAgICAyODM1NCwgMjgzNTksIDI4MzY0LCAyODM2OSwgMjgzNzUsIDI4MzgxLCAyODM4NiwgMjgzOTIsIDI4Mzk3LCAyODQwMywgCi0gICAgMjg0MDgsIDI4NDE0LCAwLCAwLCAyODQyMCwgMjg0MjYsIDI4NDMyLCAyODQzOCwgMjg0NDQsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDI4NDUwLCAyODQ1NywgMjg0NjQsIDI4NDcwLCAyODQ3NywgMjg0ODQsIDI4NDkwLCAyODQ5NywgCi0gICAgMjg1MDQsIDI4NTExLCAyODUxOCwgMjg1MjQsIDI4NTMxLCAyODUzOCwgMjg1NDQsIDI4NTUxLCAyODU1OCwgMjg1NjQsIAotICAgIDI4NTcxLCAyODU3OCwgMjg1ODQsIDI4NTkwLCAyODU5NywgMjg2MDMsIDI4NjA5LCAyODYxNiwgMjg2MjIsIDI4NjI5LCAKLSAgICAyODYzNiwgMjg2NDMsIDI4NjUwLCAyODY1NywgMjg2NjQsIDI4NjcwLCAyODY3NywgMjg2ODQsIDI4NjkwLCAyODY5NywgCi0gICAgMjg3MDQsIDI4NzExLCAyODcxOCwgMjg3MjUsIDI4NzMyLCAyODczOSwgMCwgMCwgMCwgMCwgMjg3NDYsIDI4NzU0LCAKLSAgICAyODc2MSwgMjg3NjgsIDI4Nzc0LCAyODc4MSwgMjg3ODcsIDI4Nzk0LCAyODgwMCwgMjg4MDcsIDI4ODE0LCAyODgyMSwgCi0gICAgMjg4MjgsIDI4ODM1LCAyODg0MiwgMjg4NDksIDI4ODU2LCAyODg2MywgMjg4NzAsIDI4ODc3LCAyODg4MywgMjg4ODksIAotICAgIDI4ODk2LCAyODkwMywgMjg5MTAsIDI4OTE2LCAwLCAwLCAwLCAwLCAwLCAwLCAyODkyMiwgMjg5MjgsIDI4OTMzLCAyODkzOCwgCi0gICAgMjg5NDMsIDI4OTQ4LCAyODk1MywgMjg5NTgsIDI4OTYzLCAyODk2OCwgMjg5NzMsIDAsIDAsIDAsIDI4OTc5LCAyODk4NSwgCi0gICAgMjg5OTEsIDI4OTk1LCAyOTAwMSwgMjkwMDcsIDI5MDEzLCAyOTAxOSwgMjkwMjUsIDI5MDMxLCAyOTAzNywgMjkwNDMsIAotICAgIDI5MDQ5LCAyOTA1NSwgMjkwNjEsIDI5MDY3LCAyOTA3MywgMjkwNzksIDI5MDg1LCAyOTA4OSwgMjkwOTUsIDI5MTAxLCAKLSAgICAyOTEwNywgMjkxMTMsIDI5MTE5LCAyOTEyNSwgMjkxMzEsIDI5MTM3LCAyOTE0MywgMjkxNDksIDI5MTU1LCAyOTE2MSwgCi0gICAgMjkxNjcsIDI5MTczLCAyOTE3OSwgMjkxODMsIDI5MTg4LCAyOTE5MywgMjkxOTgsIDI5MjAyLCAyOTIwNywgMjkyMTEsIAotICAgIDI5MjE2LCAyOTIyMSwgMjkyMjYsIDI5MjMwLCAyOTIzNSwgMjkyNDAsIDI5MjQ1LCAyOTI1MCwgMjkyNTUsIDI5MjU5LCAKLSAgICAyOTI2MywgMjkyNjgsIDI5MjczLCAyOTI3OCwgMjkyODIsIDI5Mjg2LCAyOTI5MSwgMjkyOTYsIDI5MzAxLCAyOTMwNiwgMCwgCi0gICAgMCwgMjkzMTIsIDI5MzE2LCAyOTMyMywgMjkzMjgsIDI5MzM0LCAyOTM0MCwgMjkzNDUsIDI5MzUxLCAyOTM1NywgMjkzNjIsIAotICAgIDI5MzY4LCAyOTM3NCwgMjkzODAsIDI5Mzg2LCAyOTM5MiwgMjkzOTcsIDI5NDAyLCAyOTQwOCwgMjk0MTMsIDI5NDE5LCAKLSAgICAyOTQyNCwgMjk0MzAsIDI5NDM2LCAyOTQ0MiwgMjk0NDgsIDI5NDUyLCAyOTQ1NywgMjk0NjIsIDI5NDY4LCAyOTQ3NCwgCi0gICAgMjk0NzksIDI5NDg1LCAyOTQ5MSwgMjk0OTUsIDI5NTAwLCAyOTUwNSwgMjk1MDksIDI5NTE0LCAyOTUxOSwgMjk1MjQsIAotICAgIDI5NTI5LCAyOTUzNSwgMjk1NDEsIDI5NTQ3LCAyOTU1MiwgMjk1NTcsIDI5NTYxLCAyOTU2NiwgMjk1NzAsIDI5NTc1LCAKLSAgICAyOTU3OSwgMjk1ODQsIDI5NTg5LCAyOTU5NCwgMjk1OTksIDI5NjA2LCAyOTYxMywgMjk2MjEsIDI5NjMyLCAyOTY0MSwgCi0gICAgMjk2NDksIDI5NjU2LCAyOTY2NywgMjk2NzMsIDI5NjgwLCAwLCAyOTY4NywgMjk2OTIsIDI5Njk3LCAyOTcwNSwgMjk3MTEsIAotICAgIDI5NzE5LCAyOTcyNCwgMjk3MzAsIDI5NzM2LCAyOTc0MiwgMjk3NDcsIDI5NzUzLCAyOTc1OCwgMjk3NjUsIDI5NzcxLCAKLSAgICAyOTc3NiwgMjk3ODIsIDI5Nzg4LCAyOTc5NCwgMjk4MDEsIDI5ODA4LCAyOTgxNSwgMjk4MjAsIDI5ODI1LCAyOTgzMiwgCi0gICAgMjk4MzksIDI5ODQ2LCAyOTg1MywgMjk4NjAsIDAsIDAsIDI5ODY3LCAyOTg3NCwgMjk4ODEsIDI5ODg3LCAyOTg5MywgCi0gICAgMjk4OTksIDI5OTA1LCAyOTkxMSwgMjk5MTcsIDI5OTIzLCAyOTkyOSwgMCwgMCwgMCwgMCwgMCwgMCwgMjk5MzUsIDI5OTQxLCAKLSAgICAyOTk0NiwgMjk5NTEsIDI5OTU2LCAyOTk2MSwgMjk5NjYsIDI5OTcxLCAyOTk3NiwgMjk5ODEsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDI5OTg2LCAyOTk5MSwgMjk5OTYsIDMwMDAxLCAzMDAwNiwgMzAwMTEsIDMwMDE2LCAzMDAyNSwgMzAwMzIsIDMwMDM3LCAKLSAgICAzMDA0MiwgMzAwNDcsIDMwMDUyLCAzMDA1NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzAwNjIsIDMwMDY4LCAKLSAgICAzMDA3NCwgMzAwNzgsIDMwMDgyLCAzMDA4NiwgMzAwOTAsIDMwMDk2LCAzMDEwMCwgMzAxMDYsIDMwMTEwLCAzMDExNiwgCi0gICAgMzAxMjIsIDMwMTMwLCAzMDEzNiwgMzAxNDQsIDMwMTQ4LCAzMDE1MiwgMzAxNTYsIDMwMTYyLCAzMDE2NSwgMzAxNzEsIAotICAgIDMwMTc1LCAzMDE4MSwgMzAxODUsIDMwMTg5LCAzMDE5NSwgMzAxOTksIDMwMjA1LCAzMDIwOSwgMzAyMTUsIDMwMjIzLCAKLSAgICAzMDIzMSwgMzAyMzksIDMwMjQ1LCAzMDI0OSwgMzAyNTUsIDMwMjU5LCAzMDI2NSwgMzAyNjgsIDMwMjcxLCAzMDI3NywgCi0gICAgMzAyODEsIDMwMjg3LCAzMDI5MCwgMzAyOTMsIDMwMjk2LCAzMDMwMCwgMzAzMDQsIDMwMzEwLCAzMDMxNiwgMzAzMjAsIAotICAgIDMwMzIzLCAzMDMyNywgMzAzMzIsIDMwMzM3LCAzMDM0NCwgMzAzNDksIDMwMzU2LCAzMDM2MywgMzAzNzIsIDMwMzc5LCAKLSAgICAzMDM4OCwgMzAzOTMsIDMwNDAwLCAzMDQwNywgMzA0MTYsIDMwNDIxLCAzMDQyOCwgMzA0MzMsIDMwNDM5LCAzMDQ0NSwgCi0gICAgMzA0NTEsIDMwNDU3LCAzMDQ2MywgMzA0NjksIDAsIDAsIDAsIDAsIDMwNDc1LCAzMDQ3OSwgMzA0ODIsIDMwNDg1LCAKLSAgICAzMDQ4OCwgMzA0OTEsIDMwNDk0LCAzMDQ5NywgMzA1MDAsIDMwNTAzLCAzMDUwNiwgMzA1MDksIDMwNTEyLCAzMDUxNSwgCi0gICAgMzA1MjAsIDMwNTI1LCAzMDUzMCwgMzA1MzMsIDMwNTM4LCAzMDU0MywgMzA1NDgsIDMwNTUzLCAzMDU2MCwgMzA1NjUsIAotICAgIDMwNTcwLCAzMDU3NSwgMzA1ODAsIDMwNTg3LCAzMDU5MywgMzA1OTksIDMwNjA1LCAzMDYxMSwgMzA2MTcsIDMwNjI2LCAKLSAgICAzMDYzNSwgMzA2NDEsIDMwNjQ3LCAzMDY1NiwgMzA2NjUsIDMwNjc0LCAzMDY4MywgMzA2OTIsIDMwNzAxLCAzMDcxMCwgCi0gICAgMzA3MTksIDAsIDAsIDAsIDMwNzI4LCAzMDczMywgMzA3MzgsIDMwNzQzLCAzMDc0NywgMzA3NTEsIDMwNzU1LCAzMDc2MCwgCi0gICAgMzA3NjQsIDMwNzY4LCAzMDc3MywgMzA3NzcsIDMwNzgyLCAzMDc4NywgMzA3OTIsIDMwNzk3LCAzMDgwMiwgMzA4MDcsIAotICAgIDMwODEyLCAzMDgxNywgMzA4MjIsIDMwODI2LCAzMDgzMCwgMzA4MzUsIDMwODQwLCAzMDg0NSwgMzA4NDksIDMwODUzLCAKLSAgICAzMDg1NywgMzA4NjIsIDMwODY3LCAzMDg3MiwgMzA4NzcsIDMwODgxLCAzMDg4OCwgMzA4OTUsIDMwOTAyLCAzMDkwOCwgCi0gICAgMzA5MTQsIDMwOTIwLCAzMDkyNiwgMzA5MzIsIDMwOTM4LCAwLCAwLCAwLCAzMDk0MywgMzA5NDgsIDMwOTUzLCAzMDk1OCwgCi0gICAgMzA5NjIsIDMwOTY2LCAzMDk3MCwgMzA5NzQsIDMwOTc4LCAzMDk4MiwgMzA5ODYsIDMwOTkwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAzMDk5NCwgMzA5OTgsIDMxMDA0LCAzMTAwOCwgMzEwMTQsIDMxMDIwLCAzMTAyNSwgMzEwMzIsIDMxMDM2LCAzMTA0MiwgCi0gICAgMzEwNDYsIDMxMDUyLCAzMTA1NywgMzEwNjQsIDMxMDcxLCAzMTA3NiwgMzEwODMsIDMxMDg4LCAzMTA5MywgMzEwOTcsIAotICAgIDMxMTAzLCAzMTEwNywgMzExMTMsIDMxMTIwLCAzMTEyNywgMzExMzIsIDMxMTM5LCAzMTE0NiwgMzExNTAsIDMxMTU2LCAKLSAgICAzMTE2MSwgMzExNjYsIDMxMTczLCAzMTE3OCwgMzExODMsIDMxMTg4LCAzMTE5MywgMzExOTcsIDMxMjAxLCAzMTIwNiwgCi0gICAgMzEyMTEsIDMxMjE4LCAzMTIyNCwgMzEyMjksIDMxMjM2LCAzMTI0MSwgMzEyNDgsIDMxMjUzLCAzMTI2MywgMzEyNzAsIAotICAgIDMxMjc3LCAzMTI4MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzEyODUsIDMxMjk0LCAzMTMwMSwgMzEzMDgsIDMxMzE1LCAKLSAgICAzMTMxOCwgMzEzMjIsIDMxMzI2LCAzMTMzMCwgMzEzMzQsIDMxMzM4LCAzMTM0MiwgMzEzNDYsIDMxMzUwLCAzMTM1NCwgCi0gICAgMzEzNTgsIDMxMzYyLCAzMTM2NiwgMzEzNjksIDMxMzcyLCAzMTM3NiwgMzEzODAsIDMxMzg0LCAzMTM4OCwgMzEzOTIsIAotICAgIDMxMzk2LCAzMTM5OSwgMzE0MDMsIDMxNDA3LCAzMTQxMSwgMzE0MTUsIDMxNDE4LCAzMTQyMSwgMzE0MjUsIDMxNDI4LCAKLSAgICAzMTQzMiwgMzE0MzYsIDMxNDQwLCAzMTQ0NCwgMzE0NDgsIDMxNDUxLCAzMTQ1NiwgMzE0NjEsIDMxNDY2LCAzMTQ3MCwgCi0gICAgMzE0NzQsIDMxNDc5LCAzMTQ4MywgMzE0ODgsIDMxNDkyLCAzMTQ5OCwgMzE1MDMsIDMxNTA4LCAzMTUxMywgMzE1MTksIAotICAgIDMxNTI0LCAzMTUzMCwgMzE1MzYsIDMxNTQyLCAzMTU0NiwgMCwgMCwgMCwgMzE1NTAsIDMxNTU1LCAzMTU2NCwgMzE1NjksIAotICAgIDMxNTc2LCAzMTU4MSwgMzE1ODUsIDMxNTg4LCAzMTU5MSwgMzE1OTQsIDMxNTk3LCAzMTYwMCwgMzE2MDMsIDMxNjA2LCAKLSAgICAzMTYwOSwgMCwgMCwgMCwgMzE2MTIsIDMxNjE2LCAzMTYyMCwgMzE2MjQsIDMxNjMxLCAzMTYzNywgMzE2NDMsIDMxNjQ5LCAKLSAgICAzMTY1NSwgMzE2NjEsIDMxNjY3LCAzMTY3MywgMzE2NzksIDMxNjg1LCAzMTY5MiwgMzE2OTksIDMxNzA2LCAzMTcxMywgCi0gICAgMzE3MjAsIDMxNzI3LCAzMTczNCwgMzE3NDEsIDMxNzQ4LCAzMTc1NSwgMzE3NjIsIDMxNzY5LCAzMTc3NiwgMzE3ODMsIAotICAgIDMxNzkwLCAzMTc5NywgMzE4MDQsIDMxODExLCAzMTgxOCwgMzE4MjUsIDMxODMyLCAzMTgzOSwgMzE4NDYsIDMxODUzLCAKLSAgICAzMTg2MCwgMzE4NjcsIDMxODc0LCAzMTg4MSwgMzE4ODgsIDMxODk1LCAzMTkwMywgMzE5MTEsIDMxOTE5LCAzMTkyNSwgCi0gICAgMzE5MzEsIDMxOTM3LCAzMTk0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzE5NTQsIDMxOTU5LCAzMTk2NCwgMzE5NjksIAotICAgIDMxOTc0LCAzMTk4MywgMzE5OTQsIDMyMDAzLCAzMjAxNCwgMzIwMjAsIDMyMDMzLCAzMjAzOSwgMzIwNDYsIDMyMDUzLCAKLSAgICAzMjA1OCwgMzIwNjQsIDMyMDcwLCAzMjA4MSwgMzIwOTAsIDMyMDk3LCAzMjEwNCwgMzIxMTMsIDMyMTIwLCAzMjEyOSwgCi0gICAgMzIxMzksIDMyMTQ5LCAzMjE1NiwgMzIxNjMsIDMyMTcwLCAzMjE4MCwgMzIxODUsIDMyMTkzLCAzMjE5OSwgMzIyMDcsIAotICAgIDMyMjE2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMjIyMSwgMzIyMjYsIDMyMjMyLCAzMjIzOSwgCi0gICAgMzIyNDcsIDMyMjUzLCAzMjI1OSwgMzIyNjUsIDMyMjcwLCAzMjI3OCwgMzIyODQsIDMyMjkwLCAzMjI5NiwgMzIzMDQsIAotICAgIDMyMzA5LCAzMjMxNiwgMzIzMjEsIDMyMzI4LCAzMjMzNCwgMzIzNDIsIDMyMzUwLCAzMjM1NywgMzIzNjMsIDMyMzcwLCAKLSAgICAzMjM3NywgMzIzODMsIDMyMzkwLCAzMjM5NywgMzI0MDMsIDMyNDA4LCAzMjQxNCwgMzI0MjIsIDMyNDMwLCAzMjQzNiwgCi0gICAgMzI0NDIsIDMyNDQ4LCAzMjQ1NCwgMzI0NjIsIDMyNDY2LCAzMjQ3MiwgMzI0NzgsIDMyNDg0LCAzMjQ5MCwgMzI0OTYsIAotICAgIDMyNTAyLCAzMjUwNiwgMzI1MTEsIDMyNTE2LCAzMjUyMywgMzI1MjgsIDMyNTMyLCAzMjUzOCwgMzI1NDMsIDMyNTQ4LCAKLSAgICAzMjU1MiwgMzI1NTcsIDMyNTYyLCAzMjU2NiwgMzI1NzAsIDMyNTc0LCAzMjU4MCwgMzI1ODQsIDMyNTg5LCAzMjU5NCwgCi0gICAgMzI1OTgsIDMyNjAzLCAzMjYwNywgMzI2MTIsIDMyNjE2LCAzMjYyMiwgMzI2MjcsIDMyNjM0LCAzMjYzOSwgMzI2NDQsIAotICAgIDMyNjQ4LCAzMjY1MywgMzI2NTksIDMyNjY3LCAzMjY3MiwgMzI2NzgsIDMyNjgzLCAzMjY4NywgMzI2OTIsIDMyNjk2LCAKLSAgICAzMjcwMiwgMzI3MDksIDMyNzE2LCAzMjcyMSwgMzI3MjYsIDMyNzMwLCAzMjczNiwgMzI3NDIsIDMyNzQ3LCAzMjc1MiwgCi0gICAgMzI3NTcsIDMyNzYzLCAzMjc2OCwgMzI3NzQsIDMyNzc5LCAzMjc4NSwgMzI3OTEsIDMyNzk3LCAzMjgwNCwgMzI4MTEsIAotICAgIDMyODE4LCAzMjgyNSwgMzI4MzIsIDMyODM5LCAzMjg0NCwgMzI4NTMsIDMyODYzLCAzMjg3MywgMzI4ODMsIDMyODkzLCAKLSAgICAzMjkwMywgMzI5MTMsIDMyOTI2LCAzMjkzNiwgMzI5NDYsIDMyOTU2LCAzMjk2MywgMzI5NjgsIDMyOTc1LCAzMjk4MywgCi0gICAgMzI5OTEsIDMyOTk4LCAzMzAwNSwgMzMwMTIsIDMzMDE5LCAzMzAyNywgMzMwMzYsIDMzMDQ1LCAzMzA1NCwgMzMwNjMsIAotICAgIDMzMDcyLCAzMzA4MSwgMzMwOTAsIDMzMDk5LCAzMzEwOCwgMzMxMTcsIDMzMTI2LCAzMzEzNSwgMzMxNDQsIDMzMTUzLCAKLSAgICAzMzE2MSwgMzMxNzAsIDMzMTgxLCAzMzE4OSwgMzMxOTksIDMzMjExLCAzMzIyMCwgMzMyMjksIDMzMjM5LCAzMzI0OCwgCi0gICAgMzMyNTYsIDMzMjY1LCAzMzI3MiwgMzMyNzcsIDMzMjg1LCAzMzI5MCwgMzMyOTgsIDMzMzAzLCAzMzMxMiwgMzMzMTgsIAotICAgIDMzMzI1LCAzMzMzMiwgMzMzMzcsIDMzMzQyLCAzMzM1MCwgMzMzNTgsIDMzMzY3LCAzMzM3NiwgMzMzODEsIDMzMzg4LCAKLSAgICAzMzM5OSwgMzM0MDcsIDMzNDE2LCAzMzQyMSwgMzM0MjcsIDMzNDMyLCAzMzQzOSwgMzM0NDQsIDMzNDUzLCAzMzQ1OCwgCi0gICAgMzM0NjMsIDMzNDY4LCAzMzQ3NSwgMzM0ODIsIDMzNDg3LCAzMzQ5NiwgMzM1MDQsIDMzNTA5LCAzMzUxNCwgMzM1MjEsIAotICAgIDMzNTI4LCAzMzUzMiwgMzM1MzYsIDMzNTM5LCAzMzU0MiwgMzM1NDUsIDMzNTQ4LCAzMzU1MSwgMzM1NTQsIDMzNTYxLCAKLSAgICAzMzU2NCwgMzM1NjcsIDMzNTcyLCAzMzU3NiwgMzM1ODAsIDMzNTg0LCAzMzU4OCwgMzM1OTIsIDMzNjAyLCAzMzYwOCwgCi0gICAgMzM2MTQsIDMzNjIwLCAzMzYyOCwgMzM2MzYsIDMzNjQyLCAzMzY0OCwgMzM2NTUsIDMzNjYxLCAzMzY2NiwgMzM2NzIsIAotICAgIDMzNjc4LCAzMzY4MywgMzM2ODksIDMzNjk1LCAzMzcwMywgMzM3MDgsIDMzNzE0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMzcyMCwgMzM3MjcsIDMzNzM0LCAzMzczOSwgMzM3NDgsIAotICAgIDMzNzU2LCAzMzc2NCwgMzM3NzEsIDMzNzc4LCAzMzc4NSwgMzM3OTIsIDMzODAwLCAzMzgwOCwgMzM4MTgsIDMzODI4LCAKLSAgICAzMzgzNiwgMzM4NDQsIDMzODUyLCAzMzg2MCwgMzM4NjksIDMzODc4LCAzMzg4NiwgMzM4OTQsIDMzOTAzLCAzMzkxMiwgCi0gICAgMzM5MjIsIDMzOTMyLCAzMzk0MSwgMzM5NTAsIDMzOTU4LCAzMzk2NiwgMzM5NzQsIDMzOTgyLCAzMzk5MiwgMzQwMDIsIAotICAgIDM0MDEwLCAzNDAxOCwgMzQwMjYsIDM0MDM0LCAzNDA0MiwgMzQwNTAsIDM0MDU4LCAzNDA2NiwgMzQwNzQsIDM0MDgyLCAKLSAgICAzNDA5MCwgMzQwOTgsIDM0MTA3LCAzNDExNiwgMzQxMjUsIDM0MTM0LCAzNDE0NCwgMzQxNTQsIDM0MTYxLCAzNDE2OCwgCi0gICAgMzQxNzYsIDM0MTg0LCAzNDE5MywgMzQyMDIsIDM0MjEwLCAzNDIxOCwgMzQyMzAsIDM0MjQyLCAzNDI1MSwgMzQyNjAsIAotICAgIDM0MjY5LCAzNDI3OCwgMzQyODUsIDM0MjkyLCAzNDMwMCwgMzQzMDgsIDM0MzE2LCAzNDMyNCwgMzQzMzIsIDM0MzQwLCAKLSAgICAzNDM0OCwgMzQzNTYsIDM0MzY1LCAzNDM3NCwgMzQzODMsIDM0MzkyLCAzNDQwMSwgMzQ0MTAsIDM0NDIwLCAzNDQzMCwgCi0gICAgMzQ0NDAsIDM0NDUwLCAzNDQ1OSwgMzQ0NjgsIDM0NDc1LCAzNDQ4MiwgMzQ0OTAsIDM0NDk4LCAzNDUwNiwgMzQ1MTQsIAotICAgIDM0NTIyLCAzNDUzMCwgMzQ1NDIsIDM0NTU0LCAzNDU2MywgMzQ1NzIsIDM0NTgwLCAzNDU4OCwgMzQ1OTYsIDM0NjA0LCAKLSAgICAzNDYxNSwgMzQ2MjYsIDM0NjM3LCAzNDY0OCwgMzQ2NjAsIDM0NjcyLCAzNDY4MCwgMzQ2ODgsIDM0Njk2LCAzNDcwNCwgCi0gICAgMzQ3MTMsIDM0NzIyLCAzNDczMSwgMzQ3NDAsIDM0NzQ4LCAzNDc1NiwgMzQ3NjQsIDM0NzcyLCAzNDc4MCwgMzQ3ODgsIAotICAgIDM0Nzk3LCAzNDgwNiwgMzQ4MTYsIDM0ODI2LCAzNDgzNCwgMzQ4NDIsIDM0ODUwLCAzNDg1OCwgMzQ4NjYsIDM0ODc0LCAKLSAgICAzNDg4MSwgMzQ4ODgsIDM0ODk2LCAzNDkwNCwgMzQ5MTIsIDM0OTIwLCAzNDkyOCwgMzQ5MzYsIDM0OTQ0LCAzNDk1MiwgCi0gICAgMzQ5NjAsIDM0OTY4LCAzNDk3NiwgMzQ5ODQsIDM0OTkyLCAzNTAwMCwgMzUwMDgsIDM1MDE2LCAzNTAyNSwgMzUwMzQsIAotICAgIDM1MDQzLCAzNTA1MSwgMzUwNjAsIDM1MDY5LCAzNTA3OCwgMzUwODcsIDM1MDk3LCAzNTEwNiwgMzUxMTIsIDM1MTE3LCAKLSAgICAzNTEyNCwgMzUxMzEsIDM1MTM5LCAzNTE0NywgMzUxNTYsIDM1MTY1LCAzNTE3NSwgMzUxODUsIDM1MTk2LCAzNTIwNywgCi0gICAgMzUyMTcsIDM1MjI3LCAzNTIzNywgMzUyNDcsIDM1MjU2LCAzNTI2NSwgMzUyNzUsIDM1Mjg1LCAzNTI5NiwgMzUzMDcsIAotICAgIDM1MzE3LCAzNTMyNywgMzUzMzcsIDM1MzQ3LCAzNTM1NCwgMzUzNjEsIDM1MzY5LCAzNTM3NywgMzUzODQsIDM1MzkxLCAKLSAgICAzNTQwMCwgMzU0MDksIDM1NDE5LCAzNTQyOSwgMzU0NDAsIDM1NDUxLCAzNTQ2MSwgMzU0NzEsIDM1NDgxLCAzNTQ5MSwgCi0gICAgMzU1MDAsIDM1NTA5LCAzNTUxNywgMzU1MjUsIDM1NTMyLCAzNTUzOSwgMzU1NDcsIDM1NTU1LCAzNTU2NCwgMzU1NzMsIAotICAgIDM1NTgzLCAzNTU5MywgMzU2MDQsIDM1NjE1LCAzNTYyNSwgMzU2MzUsIDM1NjQ1LCAzNTY1NSwgMzU2NjQsIDM1NjczLCAKLSAgICAzNTY4MywgMzU2OTMsIDM1NzA0LCAzNTcxNSwgMzU3MjUsIDM1NzM1LCAzNTc0NSwgMzU3NTUsIDM1NzYyLCAzNTc2OSwgCi0gICAgMzU3NzcsIDM1Nzg1LCAzNTc5NCwgMzU4MDMsIDM1ODEzLCAzNTgyMywgMzU4MzQsIDM1ODQ1LCAzNTg1NSwgMzU4NjUsIAotICAgIDM1ODc1LCAzNTg4NSwgMzU4OTMsIDM1OTAxLCAzNTkwOSwgMzU5MTcsIDM1OTI2LCAzNTkzNSwgMzU5NDMsIDM1OTUxLCAKLSAgICAzNTk1OCwgMzU5NjUsIDM1OTcyLCAzNTk3OSwgMzU5ODcsIDM1OTk1LCAzNjAwMywgMzYwMTEsIDM2MDIyLCAzNjAzMiwgCi0gICAgMzYwNDMsIDM2MDUzLCAzNjA2NCwgMzYwNzQsIDM2MDgyLCAzNjA5MCwgMzYxMDEsIDM2MTExLCAzNjEyMiwgMzYxMzIsIAotICAgIDM2MTQzLCAzNjE1MywgMzYxNjEsIDM2MTY5LCAzNjE4MCwgMzYxOTAsIDM2MjAxLCAwLCAwLCAzNjIxMSwgMzYyMTksIAotICAgIDM2MjI3LCAzNjIzOCwgMzYyNDgsIDM2MjU5LCAwLCAwLCAzNjI2OSwgMzYyNzcsIDM2Mjg1LCAzNjI5NiwgMzYzMDYsIAotICAgIDM2MzE3LCAzNjMyNywgMzYzMzgsIDM2MzQ4LCAzNjM1NiwgMzYzNjQsIDM2Mzc1LCAzNjM4NSwgMzYzOTYsIDM2NDA2LCAKLSAgICAzNjQxNywgMzY0MjcsIDM2NDM1LCAzNjQ0MywgMzY0NTQsIDM2NDY0LCAzNjQ3NSwgMzY0ODUsIDM2NDk2LCAzNjUwNiwgCi0gICAgMzY1MTQsIDM2NTIyLCAzNjUzMywgMzY1NDMsIDM2NTU0LCAzNjU2NCwgMzY1NzUsIDM2NTg1LCAzNjU5MywgMzY2MDEsIAotICAgIDM2NjEyLCAzNjYyMiwgMzY2MzMsIDAsIDAsIDM2NjQzLCAzNjY1MSwgMzY2NTksIDM2NjcwLCAzNjY4MCwgMzY2OTEsIDAsIAotICAgIDAsIDM2NzAxLCAzNjcwOSwgMzY3MTcsIDM2NzI4LCAzNjczOCwgMzY3NDksIDM2NzU5LCAzNjc3MCwgMCwgMzY3ODAsIDAsIAotICAgIDM2Nzg4LCAwLCAzNjc5OCwgMCwgMzY4MDgsIDM2ODE4LCAzNjgyNiwgMzY4MzQsIDM2ODQ1LCAzNjg1NSwgMzY4NjYsIAotICAgIDM2ODc2LCAzNjg4NywgMzY4OTcsIDM2OTA1LCAzNjkxMywgMzY5MjQsIDM2OTM0LCAzNjk0NSwgMzY5NTUsIDM2OTY2LCAKLSAgICAzNjk3NiwgMzY5ODQsIDM2OTkyLCAzNzAwMCwgMzcwMDgsIDM3MDE2LCAzNzAyNCwgMzcwMzIsIDM3MDQwLCAzNzA0OCwgCi0gICAgMzcwNTYsIDM3MDY0LCAzNzA3MiwgMzcwODAsIDAsIDAsIDM3MDg4LCAzNzA5OSwgMzcxMDksIDM3MTIzLCAzNzEzNiwgCi0gICAgMzcxNTAsIDM3MTYzLCAzNzE3NywgMzcxOTAsIDM3MjAxLCAzNzIxMSwgMzcyMjUsIDM3MjM4LCAzNzI1MiwgMzcyNjUsIAotICAgIDM3Mjc5LCAzNzI5MiwgMzczMDMsIDM3MzEzLCAzNzMyNywgMzczNDAsIDM3MzU0LCAzNzM2NywgMzczODEsIDM3Mzk0LCAKLSAgICAzNzQwNSwgMzc0MTUsIDM3NDI5LCAzNzQ0MiwgMzc0NTYsIDM3NDY5LCAzNzQ4MywgMzc0OTYsIDM3NTA3LCAzNzUxNywgCi0gICAgMzc1MzEsIDM3NTQ0LCAzNzU1OCwgMzc1NzEsIDM3NTg1LCAzNzU5OCwgMzc2MDksIDM3NjE5LCAzNzYzMywgMzc2NDYsIAotICAgIDM3NjYwLCAzNzY3MywgMzc2ODcsIDM3NzAwLCAzNzcwOCwgMzc3MTYsIDM3NzI3LCAzNzczNSwgMCwgMzc3NDYsIDM3NzU0LCAKLSAgICAzNzc2NSwgMzc3NzMsIDM3NzgxLCAzNzc4OSwgMzc3OTcsIDM3ODA1LCAzNzgwOCwgMzc4MTEsIDM3ODE0LCAzNzgxNywgCi0gICAgMzc4MjMsIDM3ODM0LCAzNzg0MiwgMCwgMzc4NTMsIDM3ODYxLCAzNzg3MiwgMzc4ODAsIDM3ODg4LCAzNzg5NiwgMzc5MDQsIAotICAgIDM3OTEyLCAzNzkxOCwgMzc5MjQsIDM3OTMwLCAzNzkzOCwgMzc5NDYsIDM3OTU3LCAwLCAwLCAzNzk2OCwgMzc5NzYsIAotICAgIDM3OTg3LCAzNzk5NSwgMzgwMDMsIDM4MDExLCAwLCAzODAxOSwgMzgwMjQsIDM4MDI5LCAzODAzNCwgMzgwNDIsIDM4MDUwLCAKLSAgICAzODA2MSwgMzgwNzIsIDM4MDgwLCAzODA4OCwgMzgwOTYsIDM4MTA3LCAzODExNSwgMzgxMjMsIDM4MTMxLCAzODEzOSwgCi0gICAgMzgxNDcsIDM4MTUzLCAzODE1OSwgMCwgMCwgMzgxNjIsIDM4MTczLCAzODE4MSwgMCwgMzgxOTIsIDM4MjAwLCAzODIxMSwgCi0gICAgMzgyMTksIDM4MjI3LCAzODIzNSwgMzgyNDMsIDM4MjUxLCAzODI1NCwgMCwgMzgyNTcsIDM4MjYxLCAzODI2NSwgMzgyNjksIAotICAgIDM4MjczLCAzODI3NywgMzgyODEsIDM4Mjg1LCAzODI4OSwgMzgyOTMsIDM4Mjk3LCAzODMwMSwgMzgzMDcsIDM4MzEzLCAKLSAgICAzODMxOSwgMzgzMjIsIDM4MzI1LCAzODMyNywgMzgzMzEsIDM4MzM1LCAzODMzOSwgMzgzNDMsIDM4MzQ1LCAzODM0OSwgCi0gICAgMzgzNTMsIDM4MzU5LCAzODM2NSwgMzgzNzIsIDM4Mzc5LCAzODM4NCwgMzgzODksIDM4Mzk1LCAzODQwMSwgMzg0MDMsIAotICAgIDM4NDA2LCAzODQwOCwgMzg0MTIsIDM4NDE2LCAzODQyMCwgMzg0MjMsIDM4NDI3LCAzODQzMSwgMzg0MzUsIDM4NDM5LCAKLSAgICAzODQ0MywgMzg0NDksIDM4NDUzLCAzODQ1NywgMzg0NjMsIDM4NDY4LCAzODQ3NSwgMzg0NzcsIDM4NDgwLCAzODQ4NCwgCi0gICAgMzg0ODgsIDM4NDkzLCAzODQ5OSwgMzg1MDEsIDM4NTEwLCAzODUxOSwgMzg1MjIsIDM4NTI2LCAzODUyOCwgMzg1MzAsIAotICAgIDM4NTMyLCAzODUzNSwgMzg1NDEsIDM4NTQzLCAzODU0NywgMzg1NTEsIDM4NTU4LCAzODU2NSwgMzg1NjksIDM4NTc0LCAKLSAgICAzODU3OSwgMzg1ODQsIDM4NTg5LCAzODU5MywgMzg1OTcsIDM4NjAwLCAzODYwNCwgMzg2MDgsIDM4NjE1LCAzODYyMCwgCi0gICAgMzg2MjQsIDM4NjI4LCAzODYzMywgMzg2MzcsIDM4NjQxLCAzODY0NiwgMzg2NTEsIDM4NjU1LCAzODY1OSwgMzg2NjMsIAotICAgIDM4NjY1LCAzODY3MCwgMzg2NzUsIDM4Njc5LCAzODY4MywgMzg2ODcsIDM4NjkxLCAwLCAwLCAwLCAwLCAwLCAzODY5NSwgCi0gICAgMzg3MDEsIDM4NzA3LCAzODcxNCwgMzg3MjEsIDM4NzI2LCAzODczMSwgMzg3MzUsIDAsIDAsIDM4NzQxLCAzODc0NCwgCi0gICAgMzg3NDcsIDM4NzUwLCAzODc1MywgMzg3NTYsIDM4NzU5LCAzODc2MywgMzg3NjcsIDM4NzcyLCAzODc3NywgMzg3ODIsIAotICAgIDM4Nzg4LCAzODc5MiwgMzg3OTUsIDM4Nzk4LCAzODgwMSwgMzg4MDQsIDM4ODA3LCAzODgxMCwgMzg4MTMsIDM4ODE2LCAKLSAgICAzODgxOSwgMzg4MjMsIDM4ODI3LCAzODgzMiwgMzg4MzcsIDAsIDM4ODQyLCAzODg0OCwgMzg4NTQsIDM4ODYwLCAzODg2NywgCi0gICAgMzg4NzQsIDM4ODgxLCAzODg4OCwgMzg4OTQsIDM4OTAwLCAzODkwNiwgMzg5MTMsIDM4OTE5LCAwLCAwLCAwLCAzODkyNiwgCi0gICAgMzg5MjksIDM4OTMyLCAzODkzNSwgMzg5NDAsIDM4OTQzLCAzODk0NiwgMzg5NDksIDM4OTUyLCAzODk1NSwgMzg5NTgsIAotICAgIDM4OTYyLCAzODk2NSwgMzg5NjgsIDM4OTcxLCAzODk3NCwgMzg5NzcsIDM4OTgyLCAzODk4NSwgMzg5ODgsIDM4OTkxLCAKLSAgICAzODk5NCwgMzg5OTcsIDM5MDAyLCAzOTAwNSwgMzkwMDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5MDEzLCAzOTAxOCwgMzkwMjMsIDM5MDMwLCAzOTAzOCwgMzkwNDMsIAotICAgIDM5MDQ4LCAzOTA1MiwgMzkwNTYsIDM5MDYxLCAzOTA2OCwgMzkwNzUsIDM5MDc5LCAzOTA4NCwgMzkwODksIDM5MDk0LCAKLSAgICAzOTA5OSwgMzkxMDYsIDM5MTExLCAzOTExNiwgMzkxMjEsIDM5MTMwLCAzOTEzNywgMzkxNDQsIDM5MTQ4LCAzOTE1MywgCi0gICAgMzkxNTksIDM5MTY0LCAzOTE3MSwgMzkxNzksIDM5MTg3LCAzOTE5MSwgMzkxOTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5MTk5LCAzOTIwMywgMzkyMTEsIDM5MjE1LCAzOTIxOSwgMzkyMjQsIDM5MjI4LCAKLSAgICAzOTIzMiwgMzkyMzYsIDM5MjM4LCAzOTI0MiwgMzkyNDYsIDM5MjUwLCAzOTI1NSwgMzkyNTksIDM5MjYzLCAzOTI3MSwgCi0gICAgMzkyNzQsIDM5Mjc4LCAzOTI4MSwgMzkyODQsIDM5MjkwLCAzOTI5MywgMzkyOTYsIDM5MzAyLCAzOTMwNiwgMzkzMTAsIAotICAgIDM5MzE0LCAzOTMxNywgMzkzMjEsIDM5MzI0LCAzOTMyOCwgMzkzMzAsIDM5MzMzLCAzOTMzNiwgMzkzNDAsIDM5MzQyLCAKLSAgICAzOTM0NiwgMzkzNDksIDM5MzUyLCAzOTM1NywgMzkzNjIsIDM5MzY5LCAzOTM3MiwgMzkzNzUsIDM5Mzc5LCAzOTM4NCwgCi0gICAgMzkzODcsIDM5MzkwLCAzOTM5MywgMzkzOTcsIDM5NDAyLCAzOTQwNSwgMzk0MDgsIDM5NDEwLCAzOTQxMywgMzk0MTYsIAotICAgIDM5NDE5LCAzOTQyMywgMzk0MjgsIDM5NDMxLCAzOTQzNSwgMzk0MzksIDM5NDQzLCAzOTQ0NywgMzk0NTIsIDM5NDU4LCAKLSAgICAzOTQ2MywgMzk0NjgsIDM5NDc0LCAzOTQ3OSwgMzk0ODQsIDM5NDg4LCAzOTQ5MiwgMzk0OTcsIDM5NTAxLCAzOTUwNSwgCi0gICAgMzk1MDgsIDM5NTEwLCAzOTUxNSwgMzk1MjEsIDM5NTI4LCAzOTUzNSwgMzk1NDIsIDM5NTQ5LCAzOTU1NiwgMzk1NjMsIAotICAgIDM5NTcwLCAzOTU3NywgMzk1ODUsIDM5NTkyLCAzOTYwMCwgMzk2MDcsIDM5NjE0LCAzOTYyMiwgMzk2MzAsIDM5NjM1LCAKLSAgICAzOTY0MCwgMzk2NDUsIDM5NjUwLCAzOTY1NSwgMzk2NjAsIDM5NjY1LCAzOTY3MCwgMzk2NzUsIDM5NjgwLCAzOTY4NiwgCi0gICAgMzk2OTIsIDM5Njk4LCAzOTcwNCwgMzk3MTEsIDM5NzE5LCAzOTcyNiwgMzk3MzIsIDM5NzM4LCAzOTc0NCwgMzk3NTAsIAotICAgIDM5NzU2LCAzOTc2MiwgMzk3NjgsIDM5Nzc0LCAzOTc4MCwgMzk3ODcsIDM5Nzk0LCAzOTgwMSwgMzk4MDgsIDM5ODE2LCAKLSAgICAzOTgyNSwgMzk4MzMsIDM5ODQ0LCAzOTg1MiwgMzk4NjAsIDM5ODY5LCAzOTg3NiwgMzk4ODUsIDM5ODk0LCAzOTkwMiwgCi0gICAgMzk5MTEsIDAsIDAsIDAsIDAsIDAsIDAsIDM5OTE5LCAzOTkyMSwgMzk5MjQsIDM5OTI2LCAzOTkyOSwgMzk5MzIsIDM5OTM1LCAKLSAgICAzOTk0MCwgMzk5NDUsIDM5OTUwLCAzOTk1NSwgMzk5NTksIDM5OTYzLCAzOTk2NywgMzk5NzEsIDM5OTc2LCAzOTk4MiwgCi0gICAgMzk5ODcsIDM5OTkzLCAzOTk5OCwgNDAwMDMsIDQwMDA4LCA0MDAxNCwgNDAwMTksIDQwMDI1LCA0MDAzMSwgNDAwMzUsIAotICAgIDQwMDM5LCA0MDA0NCwgNDAwNDksIDQwMDU0LCA0MDA1OSwgNDAwNjQsIDQwMDcyLCA0MDA4MCwgNDAwODgsIDQwMDk2LCAKLSAgICA0MDEwMywgNDAxMTEsIDQwMTE4LCA0MDEyNSwgNDAxMzQsIDQwMTQ2LCA0MDE1MywgNDAxNjAsIDQwMTY3LCA0MDE3NCwgCi0gICAgNDAxODIsIDQwMTkwLCA0MDE5NywgNDAyMDQsIDQwMjEyLCA0MDIyMCwgNDAyMjUsIDQwMjMzLCA0MDIzOCwgNDAyNDMsIAotICAgIDQwMjQ5LCA0MDI1NCwgNDAyNjAsIDQwMjY3LCA0MDI3NCwgNDAyNzksIDQwMjg1LCA0MDI5MCwgNDAyOTMsIDQwMjk3LCAKLSAgICA0MDMwMCwgNDAzMDQsIDQwMzA4LCA0MDMxMiwgNDAzMTgsIDQwMzI0LCA0MDMzMCwgNDAzMzYsIDQwMzQwLCA0MDM0NCwgCi0gICAgNDAzNDgsIDQwMzUyLCA0MDM1OCwgNDAzNjQsIDQwMzY4LCA0MDM3MywgNDAzNzcsIDQwMzgyLCA0MDM4NywgNDAzOTIsIAotICAgIDQwMzk1LCA0MDM5OSwgNDA0MDIsIDQwNDA2LCA0MDQxMywgNDA0MjEsIDQwNDMyLCA0MDQ0MywgNDA0NDgsIDQwNDU3LCAKLSAgICA0MDQ2NCwgNDA0NzMsIDQwNDgyLCA0MDQ4NiwgNDA0OTIsIDQwNTAwLCA0MDUwNCwgNDA1MDksIDQwNTE0LCA0MDUyMCwgCi0gICAgNDA1MjYsIDQwNTMyLCA0MDUzOSwgNDA1NDMsIDQwNTQ3LCA0MDU1MiwgNDA1NTUsIDQwNTU3LCA0MDU2MSwgNDA1NjUsIAotICAgIDQwNTczLCA0MDU3NywgNDA1NzksIDQwNTgxLCA0MDU4NSwgNDA1OTMsIDQwNTk4LCA0MDYwNCwgNDA2MTQsIDQwNjIxLCAKLSAgICA0MDYyNiwgNDA2MzAsIDQwNjM0LCA0MDYzOCwgNDA2NDEsIDQwNjQ0LCA0MDY0NywgNDA2NTEsIDQwNjU1LCA0MDY1OSwgCi0gICAgNDA2NjMsIDQwNjY3LCA0MDY3MCwgNDA2NzQsIDQwNjc4LCA0MDY4MSwgNDA2ODMsIDQwNjg2LCA0MDY4OCwgNDA2OTIsIAotICAgIDQwNjk2LCA0MDY5OCwgNDA3MDQsIDQwNzA3LCA0MDcxMiwgNDA3MTYsIDQwNzIwLCA0MDcyMiwgNDA3MjQsIDQwNzI2LCAKLSAgICA0MDcyOSwgNDA3MzMsIDQwNzM3LCA0MDc0MSwgNDA3NDUsIDQwNzQ5LCA0MDc1NSwgNDA3NjEsIDQwNzYzLCA0MDc2NSwgCi0gICAgNDA3NjcsIDQwNzY5LCA0MDc3MiwgNDA3NzQsIDQwNzc4LCA0MDc4MCwgNDA3ODQsIDQwNzg4LCA0MDc5MywgNDA3OTcsIAotICAgIDQwODAxLCA0MDgwNSwgNDA4MDksIDQwODEzLCA0MDgxOSwgNDA4MjMsIDQwODMzLCA0MDg0MywgNDA4NDcsIDQwODUzLCAKLSAgICA0MDg1OSwgNDA4NjMsIDQwODY3LCA0MDg3MCwgNDA4NzUsIDQwODc5LCA0MDg4NSwgNDA4ODksIDQwOTAxLCA0MDkwOSwgCi0gICAgNDA5MTMsIDQwOTE3LCA0MDkyMywgNDA5MjcsIDQwOTMwLCA0MDkzMiwgNDA5MzUsIDQwOTM5LCA0MDk0MywgNDA5NTAsIAotICAgIDQwOTU0LCA0MDk1OCwgNDA5NjIsIDQwOTY1LCA0MDk3MCwgNDA5NzUsIDQwOTgwLCA0MDk4NSwgNDA5OTAsIDQwOTk1LCAKLSAgICA0MTAwMywgNDEwMTEsIDQxMDE1LCA0MTAxOSwgNDEwMjEsIDQxMDI2LCA0MTAzMCwgNDEwMzQsIDQxMDQyLCA0MTA1MCwgCi0gICAgNDEwNTYsIDQxMDYyLCA0MTA3MSwgNDEwODAsIDQxMDg1LCA0MTA5MCwgNDEwOTgsIDQxMTA2LCA0MTEwOCwgNDExMTAsIAotICAgIDQxMTE1LCA0MTEyMCwgNDExMjYsIDQxMTMyLCA0MTEzOCwgNDExNDQsIDQxMTQ4LCA0MTE1MiwgNDExNTksIDQxMTY2LCAKLSAgICA0MTE3MiwgNDExNzgsIDQxMTg4LCA0MTE5OCwgNDEyMDYsIDQxMjE0LCA0MTIxNiwgNDEyMjAsIDQxMjI0LCA0MTIyOSwgCi0gICAgNDEyMzQsIDQxMjQxLCA0MTI0OCwgNDEyNTEsIDQxMjU0LCA0MTI1NywgNDEyNjAsIDQxMjYzLCA0MTI2OCwgNDEyNzIsIAotICAgIDQxMjc3LCA0MTI4MiwgNDEyODUsIDQxMjg4LCA0MTI5MSwgNDEyOTQsIDQxMjk3LCA0MTMwMSwgNDEzMDQsIDQxMzA3LCAKLSAgICA0MTMxMCwgNDEzMTMsIDQxMzE1LCA0MTMxNywgNDEzMTksIDQxMzIxLCA0MTMyOSwgNDEzMzcsIDQxMzQzLCA0MTM0NywgCi0gICAgNDEzNTMsIDQxMzYzLCA0MTM2OSwgNDEzNzUsIDQxMzgxLCA0MTM4OSwgNDEzOTcsIDQxNDA4LCA0MTQxMiwgNDE0MTYsIAotICAgIDQxNDE4LCA0MTQyNCwgNDE0MjYsIDQxNDI4LCA0MTQzMCwgNDE0MzIsIDQxNDM4LCA0MTQ0MSwgNDE0NDcsIDQxNDUzLCAKLSAgICA0MTQ1NywgNDE0NjEsIDQxNDY1LCA0MTQ2OCwgNDE0NzIsIDQxNDc2LCA0MTQ3OCwgNDE0ODcsIDQxNDk2LCA0MTUwMSwgCi0gICAgNDE1MDYsIDQxNTEyLCA0MTUxOCwgNDE1MjQsIDQxNTI3LCA0MTUzMCwgNDE1MzMsIDQxNTM2LCA0MTUzOCwgNDE1NDMsIAotICAgIDQxNTQ4LCA0MTU1MywgNDE1NTksIDQxNTY1LCA0MTU3MywgNDE1ODEsIDQxNTg3LCA0MTU5MywgNDE1OTksIDQxNjA1LCAKLSAgICA0MTYxNCwgNDE2MjMsIDQxNjMyLCA0MTY0MSwgNDE2NTAsIDQxNjU5LCA0MTY2OCwgNDE2NzcsIDQxNjg2LCA0MTY5NSwgCi0gICAgNDE3MDMsIDQxNzE1LCA0MTcyNSwgNDE3NDAsIDQxNzQzLCA0MTc0OCwgNDE3NTQsIDQxNzYwLCA0MTc2NywgNDE3ODEsIAotICAgIDQxNzk2LCA0MTgwMiwgNDE4MDgsIDQxODE1LCA0MTgyMSwgNDE4MjksIDQxODM1LCA0MTg0OCwgNDE4NjIsIDQxODY3LCAKLSAgICA0MTg3MywgNDE4ODAsIDQxODgzLCA0MTg4NiwgNDE4ODgsIDQxODkxLCA0MTg5NCwgNDE4OTYsIDQxODk4LCA0MTkwMiwgCi0gICAgNDE5MDUsIDQxOTA4LCA0MTkxMSwgNDE5MTQsIDQxOTE5LCA0MTkyNCwgNDE5MjksIDQxOTM0LCA0MTkzOSwgNDE5NDIsIAotICAgIDQxOTQ0LCA0MTk0NiwgNDE5NDgsIDQxOTUyLCA0MTk1NiwgNDE5NjAsIDQxOTY2LCA0MTk3MSwgNDE5NzMsIDQxOTc1LCAKLSAgICA0MTk4MCwgNDE5ODUsIDQxOTkwLCA0MTk5NSwgNDIwMDAsIDQyMDA1LCA0MjAwNywgNDIwMDksIDQyMDE4LCA0MjAyMiwgCi0gICAgNDIwMzAsIDQyMDM5LCA0MjA0MSwgNDIwNDYsIDQyMDUxLCA0MjA1OSwgNDIwNjMsIDQyMDY1LCA0MjA2OSwgNDIwNzEsIAotICAgIDQyMDc1LCA0MjA3OSwgNDIwODMsIDQyMDg1LCA0MjA4NywgNDIwODksIDQyMDk0LCA0MjEwMSwgNDIxMDgsIDQyMTE1LCAKLSAgICA0MjEyMiwgNDIxMjksIDQyMTM2LCA0MjE0MywgNDIxNTAsIDQyMTU2LCA0MjE2MiwgNDIxNjksIDQyMTc2LCA0MjE4MywgCi0gICAgNDIxOTAsIDQyMTk2LCA0MjIwMiwgNDIyMDksIDQyMjE2LCA0MjIyMywgNDIyMzEsIDQyMjM4LCA0MjI0NiwgNDIyNTMsIAotICAgIDQyMjYxLCA0MjI2OCwgNDIyNzYsIDQyMjg0LCA0MjI5MSwgNDIyOTksIDQyMzA2LCA0MjMxNCwgNDIzMjEsIDQyMzI5LCAKLSAgICA0MjMzNiwgNDIzNDMsIDQyMzUwLCA0MjM1NywgNDIzNjQsIDQyMzcyLCA0MjM3OSwgNDIzODYsIDQyMzkzLCA0MjQwMSwgCi0gICAgNDI0MDgsIDQyNDE1LCA0MjQyMiwgNDI0MjksIDQyNDM3LCA0MjQ0NSwgNDI0NTIsIDQyNDU5LCA0MjQ2NSwgNDI0NzIsIAotICAgIDQyNDc3LCA0MjQ4NCwgNDI0OTEsIDQyNTAwLCA0MjUwNywgNDI1MTUsIDQyNTIzLCA0MjUyOCwgNDI1MzMsIDQyNTM4LCAKLSAgICA0MjU0NSwgNDI1NTIsIDQyNTU5LCA0MjU2NiwgNDI1NzEsIDQyNTc2LCA0MjU4NSwgNDI1OTEsIDQyNTk0LCA0MjYwMiwgCi0gICAgNDI2MDUsIDQyNjEwLCA0MjYxNSwgNDI2MTgsIDQyNjIxLCA0MjYyOSwgNDI2MzIsIDQyNjM3LCA0MjY0MCwgNDI2NDcsIAotICAgIDQyNjUyLCA0MjY2MCwgNDI2NjMsIDQyNjY2LCA0MjY2OSwgNDI2NzQsIDQyNjc5LCA0MjY4MiwgNDI2ODUsIDQyNjkzLCAKLSAgICA0MjY5NiwgNDI3MDEsIDQyNzA4LCA0MjcxMiwgNDI3MTYsIDQyNzIxLCA0MjcyNiwgNDI3MzIsIDQyNzM3LCA0Mjc0MywgCi0gICAgNDI3NDksIDQyNzU0LCA0Mjc2MCwgNDI3NjgsIDQyNzc0LCA0Mjc4MiwgNDI3OTAsIDQyNzk2LCA0MjgwNCwgNDI4MTIsIAotICAgIDQyODIxLCA0MjgyOSwgNDI4MzUsIDQyODQzLCA0Mjg1MiwgNDI4NjAsIDQyODY0LCA0Mjg2OSwgNDI4ODIsIDQyODk1LCAKLSAgICA0Mjg5OSwgNDI5MDMsIDQyOTA3LCA0MjkxMSwgNDI5MjEsIDQyOTI1LCA0MjkzMCwgNDI5MzUsIDQyOTQwLCA0Mjk0NSwgCi0gICAgNDI5NTAsIDQyOTU1LCA0Mjk2NSwgNDI5NzUsIDQyOTgzLCA0Mjk5MywgNDMwMDMsIDQzMDExLCA0MzAyMSwgNDMwMzEsIAotICAgIDQzMDM5LCA0MzA0OSwgNDMwNTksIDQzMDY3LCA0MzA3NSwgNDMwODUsIDQzMDk1LCA0MzA5OCwgNDMxMDEsIDQzMTA0LCAKLSAgICA0MzEwOSwgNDMxMTMsIDQzMTE5LCA0MzEyNiwgNDMxMzMsIDQzMTQxLCA0MzE0OCwgNDMxNTIsIDQzMTU2LCA0MzE2MCwgCi0gICAgNDMxNjQsIDQzMTY2LCA0MzE3MCwgNDMxNzQsIDQzMTc5LCA0MzE4NCwgNDMxOTEsIDQzMTk4LCA0MzIwMSwgNDMyMDgsIAotICAgIDQzMjEwLCA0MzIxMiwgNDMyMTYsIDQzMjIwLCA0MzIyNSwgNDMyMzEsIDQzMjM3LCA0MzI0MywgNDMyNDksIDQzMjU4LCAKLSAgICA0MzI2NywgNDMyNzYsIDQzMjgwLCA0MzI4MiwgNDMyODYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDQzMjkzLCA0MzI5NywgNDMzMDQsIDQzMzExLCA0MzMxOCwgNDMzMjUsIDQzMzI5LCA0MzMzMywgNDMzMzcsIDQzMzQxLCAKLSAgICA0MzM0NiwgNDMzNTIsIDQzMzU3LCA0MzM2MywgNDMzNjksIDQzMzc1LCA0MzM4MSwgNDMzODksIDQzMzk2LCA0MzQwMywgCi0gICAgNDM0MTAsIDQzNDE3LCA0MzQyMiwgNDM0MjgsIDQzNDM3LCA0MzQ0MSwgNDM0NDgsIDQzNDUyLCA0MzQ1NiwgNDM0NjIsIAotICAgIDQzNDY4LCA0MzQ3NCwgNDM0ODAsIDQzNDg0LCA0MzQ4OCwgNDM0OTEsIDQzNDk1LCA0MzQ5OSwgNDM1MDYsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDQzNTEzLCAKLSAgICA0MzUxNiwgNDM1MjAsIDQzNTI0LCA0MzUzMCwgNDM1MzYsIDQzNTQyLCA0MzU1MCwgNDM1NTcsIDQzNTYxLCA0MzU2OSwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNDM1NzQsIDQzNTc3LCAKLSAgICA0MzU4MCwgNDM1ODMsIDQzNTg2LCA0MzU4OSwgNDM1OTIsIDQzNTk1LCA0MzU5OCwgNDM2MDEsIDQzNjA1LCA0MzYwOSwgCi0gICAgNDM2MTMsIDQzNjE3LCA0MzYyMSwgNDM2MjUsIDQzNjI5LCA0MzYzMywgNDM2MzcsIDQzNjQxLCA0MzY0NSwgNDM2NDgsIAotICAgIDQzNjUxLCA0MzY1NCwgNDM2NTcsIDQzNjYwLCA0MzY2MywgNDM2NjYsIDQzNjY5LCA0MzY3MiwgNDM2NzYsIDQzNjgwLCAKLSAgICA0MzY4NCwgNDM2ODgsIDQzNjkyLCA0MzY5NiwgNDM3MDAsIDQzNzA0LCA0MzcwOCwgNDM3MTIsIDQzNzE2LCA0MzcyMiwgCi0gICAgNDM3MjgsIDQzNzM0LCA0Mzc0MSwgNDM3NDgsIDQzNzU1LCA0Mzc2MiwgNDM3NjksIDQzNzc2LCA0Mzc4MywgNDM3OTAsIAotICAgIDQzNzk3LCA0MzgwNCwgNDM4MTEsIDQzODE4LCA0MzgyNSwgNDM4MzIsIDQzODM5LCA0Mzg0NiwgNDM4NTMsIDQzODU4LCAKLSAgICA0Mzg2NCwgNDM4NzAsIDQzODc2LCA0Mzg4MSwgNDM4ODcsIDQzODkzLCA0Mzg5OSwgNDM5MDQsIDQzOTEwLCA0MzkxNiwgCi0gICAgNDM5MjEsIDQzOTI2LCA0MzkzMSwgNDM5MzYsIDQzOTQyLCA0Mzk0OCwgNDM5NTMsIDQzOTU4LCA0Mzk2NCwgNDM5NjksIAotICAgIDQzOTc1LCA0Mzk4MSwgNDM5ODcsIDQzOTkzLCA0Mzk5OSwgNDQwMDQsIDQ0MDEwLCA0NDAxNiwgNDQwMjIsIDQ0MDI3LCAKLSAgICA0NDAzMywgNDQwMzksIDQ0MDQ1LCA0NDA1MCwgNDQwNTYsIDQ0MDYyLCA0NDA2NywgNDQwNzIsIDQ0MDc3LCA0NDA4MiwgCi0gICAgNDQwODgsIDQ0MDk0LCA0NDA5OSwgNDQxMDQsIDQ0MTEwLCA0NDExNSwgNDQxMjEsIDQ0MTI3LCA0NDEzMywgNDQxMzksIAotICAgIDQ0MTQ1LCA0NDE1MCwgNDQxNTYsIDQ0MTYyLCA0NDE2OCwgNDQxNzMsIDQ0MTc5LCA0NDE4NSwgNDQxOTEsIDQ0MTk2LCAKLSAgICA0NDIwMiwgNDQyMDgsIDQ0MjEzLCA0NDIxOCwgNDQyMjMsIDQ0MjI4LCA0NDIzNCwgNDQyNDAsIDQ0MjQ1LCA0NDI1MCwgCi0gICAgNDQyNTYsIDQ0MjYxLCA0NDI2NywgNDQyNzMsIDQ0Mjc5LCA0NDI4NSwgNDQyOTEsIDQ0Mjk1LCA0NDMwMCwgNDQzMDUsIAotICAgIDQ0MzEwLCA0NDMxNSwgNDQzMjAsIDQ0MzI1LCA0NDMzMCwgNDQzMzUsIDQ0MzQwLCA0NDM0NSwgNDQzNDksIDQ0MzUzLCAKLSAgICA0NDM1NywgNDQzNjEsIDQ0MzY1LCA0NDM2OSwgNDQzNzMsIDQ0Mzc3LCA0NDM4MSwgNDQzODYsIDQ0MzkxLCA0NDM5NiwgCi0gICAgNDQ0MDEsIDQ0NDA2LCA0NDQxMSwgNDQ0MjAsIDQ0NDI5LCA0NDQzOCwgNDQ0NDcsIDQ0NDU2LCA0NDQ2NSwgNDQ0NzQsIAotICAgIDQ0NDgzLCA0NDQ5MCwgNDQ0OTgsIDQ0NTA2LCA0NDUxMywgNDQ1MjAsIDQ0NTI4LCA0NDUzNiwgNDQ1NDMsIDQ0NTUwLCAKLSAgICA0NDU1OCwgNDQ1NjYsIDQ0NTczLCA0NDU4MCwgNDQ1ODgsIDQ0NTk2LCA0NDYwMywgNDQ2MTAsIDQ0NjE4LCA0NDYyNywgCi0gICAgNDQ2MzYsIDQ0NjQ0LCA0NDY1MywgNDQ2NjIsIDQ0NjY5LCA0NDY3NiwgNDQ2ODQsIDQ0NjkzLCA0NDcwMiwgNDQ3MTAsIAotICAgIDQ0NzE5LCA0NDcyOCwgNDQ3MzUsIDQ0NzQyLCA0NDc1MSwgNDQ3NjAsIDQ0NzY4LCA0NDc3NiwgNDQ3ODUsIDQ0Nzk0LCAKLSAgICA0NDgwMSwgNDQ4MDgsIDQ0ODE3LCA0NDgyNiwgNDQ4MzQsIDQ0ODQyLCA0NDg1MSwgNDQ4NjAsIDQ0ODY3LCA0NDg3NCwgCi0gICAgNDQ4ODMsIDQ0ODkyLCA0NDkwMCwgNDQ5MDksIDQ0OTE4LCA0NDkyNiwgNDQ5MzYsIDQ0OTQ2LCA0NDk1NiwgNDQ5NjYsIAotICAgIDQ0OTc1LCA0NDk4NCwgNDQ5OTMsIDQ1MDAyLCA0NTAwOSwgNDUwMTcsIDQ1MDI1LCA0NTAzMywgNDUwNDEsIDQ1MDQ2LCAKLSAgICA0NTA1MSwgNDUwNjAsIDQ1MDY4LCA0NTA3NSwgNDUwODQsIDQ1MDkyLCA0NTA5OSwgNDUxMDgsIDQ1MTE2LCA0NTEyMywgCi0gICAgNDUxMzIsIDQ1MTQwLCA0NTE0NywgNDUxNTYsIDQ1MTY0LCA0NTE3MSwgNDUxODAsIDQ1MTg4LCA0NTE5NSwgNDUyMDQsIAotICAgIDQ1MjEyLCA0NTIxOSwgNDUyMjgsIDQ1MjM2LCA0NTI0MywgNDUyNTIsIDQ1MjYwLCA0NTI2NywgNDUyNzYsIDQ1Mjg1LCAKLSAgICA0NTI5NCwgNDUzMDMsIDQ1MzE3LCA0NTMzMSwgNDUzMzgsIDQ1MzQzLCA0NTM0OCwgNDUzNTMsIDQ1MzU4LCA0NTM2MywgCi0gICAgNDUzNjgsIDQ1MzczLCA0NTM3OCwgNDUzODYsIDQ1Mzk0LCA0NTQwMiwgNDU0MTAsIDQ1NDE1LCA0NTQyMiwgNDU0MjksIAotICAgIDQ1NDM2LCA0NTQ0MSwgNDU0NDksIDQ1NDU2LCA0NTQ2NCwgNDU0NjgsIDQ1NDc1LCA0NTQ4MSwgNDU0ODgsIDQ1NDkyLCAKLSAgICA0NTQ5OCwgNDU1MDQsIDQ1NTEwLCA0NTUxNCwgNDU1MTcsIDQ1NTIxLCA0NTUyNSwgNDU1MzIsIDQ1NTM4LCA0NTU0NCwgCi0gICAgNDU1NTAsIDQ1NTU2LCA0NTU3MCwgNDU1ODAsIDQ1NTk0LCA0NTYwOCwgNDU2MTQsIDQ1NjI0LCA0NTYzOCwgNDU2NDEsIAotICAgIDQ1NjQ0LCA0NTY1MSwgNDU2NTksIDQ1NjY0LCA0NTY2OSwgNDU2NzcsIDQ1Njg5LCA0NTcwMSwgNDU3MDksIDQ1NzEzLCAKLSAgICA0NTcxNywgNDU3MjAsIDQ1NzIzLCA0NTcyNywgNDU3MzEsIDQ1NzM0LCA0NTczNywgNDU3NDIsIDQ1NzQ3LCA0NTc1MywgCi0gICAgNDU3NTksIDQ1NzY0LCA0NTc2OSwgNDU3NzUsIDQ1NzgxLCA0NTc4NiwgNDU3OTEsIDQ1Nzk2LCA0NTgwMSwgNDU4MDcsIAotICAgIDQ1ODEzLCA0NTgxOCwgNDU4MjMsIDQ1ODI5LCA0NTgzNSwgNDU4NDAsIDQ1ODQ1LCA0NTg0OCwgNDU4NTEsIDQ1ODYwLCAKLSAgICA0NTg2MiwgNDU4NjQsIDQ1ODY3LCA0NTg3MSwgNDU4NzcsIDQ1ODc5LCA0NTg4MiwgNDU4ODksIDQ1ODk2LCA0NTkwNCwgCi0gICAgNDU5MTIsIDQ1OTIyLCA0NTkzNiwgNDU5NDEsIDQ1OTQ2LCA0NTk1MCwgNDU5NTUsIDQ1OTYzLCA0NTk3MSwgNDU5ODAsIAotICAgIDQ1OTg5LCA0NTk5OCwgNDYwMDcsIDQ2MDEyLCA0NjAxNywgNDYwMjMsIDQ2MDI5LCA0NjAzNSwgNDYwNDEsIDQ2MDQ0LCAKLSAgICA0NjA1MCwgNDYwNTYsIDQ2MDY2LCA0NjA3NiwgNDYwODQsIDQ2MDkyLCA0NjEwMSwgNDYxMTAsIDQ2MTE0LCA0NjEyMiwgCi0gICAgNDYxMzAsIDQ2MTM4LCA0NjE0NiwgNDYxNTUsIDQ2MTY0LCA0NjE3MywgNDYxODIsIDQ2MTg3LCA0NjE5MiwgNDYxOTcsIAotICAgIDQ2MjAyLCA0NjIwNywgNDYyMTMsIDQ2MjE5LCA0NjIyNCwgNDYyMzAsIDQ2MjMyLCA0NjIzNCwgNDYyMzYsIDQ2MjM4LCAKLSAgICA0NjI0MSwgNDYyNDQsIDQ2MjQ2LCA0NjI0OCwgNDYyNTAsIDQ2MjU0LCA0NjI1OCwgNDYyNjAsIDQ2MjYyLCA0NjI2NSwgCi0gICAgNDYyNjgsIDQ2MjcyLCA0NjI3OCwgNDYyODQsIDQ2Mjg2LCA0NjI5MywgNDYyOTcsIDQ2MzAyLCA0NjMwNywgNDYzMDksIAotICAgIDQ2MzE5LCA0NjMyNSwgNDYzMzEsIDQ2MzM3LCA0NjM0MywgNDYzNDksIDQ2MzU1LCA0NjM2MCwgNDYzNjMsIDQ2MzY2LCAKLSAgICA0NjM2OSwgNDYzNzEsIDQ2MzczLCA0NjM3NywgNDYzODEsIDQ2Mzg2LCA0NjM5MSwgNDYzOTYsIDQ2Mzk5LCA0NjQwMywgCi0gICAgNDY0MDgsIDQ2NDExLCA0NjQxNSwgNDY0MjAsIDQ2NDI1LCA0NjQzMCwgNDY0MzUsIDQ2NDQwLCA0NjQ0NSwgNDY0NTAsIAotICAgIDQ2NDU1LCA0NjQ2MCwgNDY0NjUsIDQ2NDcwLCA0NjQ3NSwgNDY0ODEsIDQ2NDg3LCA0NjQ5MywgNDY0OTUsIDQ2NDk4LCAKLSAgICA0NjUwMCwgNDY1MDMsIDQ2NTA1LCA0NjUwNywgNDY1MDksIDQ2NTExLCA0NjUxMywgNDY1MTUsIDQ2NTE3LCA0NjUxOSwgCi0gICAgNDY1MjEsIDQ2NTIzLCA0NjUyNSwgNDY1MjcsIDQ2NTI5LCA0NjUzMSwgNDY1MzMsIDQ2NTM1LCA0NjUzNywgNDY1NDIsIAotICAgIDQ2NTQ3LCA0NjU1MiwgNDY1NTcsIDQ2NTYyLCA0NjU2NywgNDY1NzIsIDQ2NTc3LCA0NjU4MiwgNDY1ODcsIDQ2NTkyLCAKLSAgICA0NjU5NywgNDY2MDIsIDQ2NjA3LCA0NjYxMiwgNDY2MTcsIDQ2NjIyLCA0NjYyNywgNDY2MzIsIDQ2NjM3LCA0NjY0MSwgCi0gICAgNDY2NDUsIDQ2NjQ5LCA0NjY1NSwgNDY2NjEsIDQ2NjY2LCA0NjY3MSwgNDY2NzYsIDQ2NjgxLCA0NjY4NiwgNDY2OTEsIAotICAgIDQ2Njk5LCA0NjcwNywgNDY3MTUsIDQ2NzIzLCA0NjczMSwgNDY3MzksIDQ2NzQ3LCA0Njc1NSwgNDY3NjEsIDQ2NzY2LCAKLSAgICA0Njc3MSwgNDY3NzYsIDQ2Nzc5LCA0Njc4MywgNDY3ODcsIDQ2NzkxLCA0Njc5NSwgNDY3OTksIDQ2ODAzLCA0NjgxMCwgCi0gICAgNDY4MTcsIDQ2ODI1LCA0NjgzMywgNDY4MzgsIDQ2ODQzLCA0Njg1MCwgNDY4NTcsIDQ2ODY0LCA0Njg3MSwgNDY4NzQsIAotICAgIDQ2ODc3LCA0Njg4MiwgNDY4ODQsIDQ2ODg4LCA0Njg5MywgNDY4OTUsIDQ2ODk3LCA0Njg5OSwgNDY5MDEsIDQ2OTA2LCAKLSAgICA0NjkwOSwgNDY5MTEsIDQ2OTE2LCA0NjkyMywgNDY5MzAsIDQ2OTMzLCA0NjkzNywgNDY5NDIsIDQ2OTQ3LCA0Njk1NSwgCi0gICAgNDY5NjEsIDQ2OTY3LCA0Njk3OSwgNDY5ODYsIDQ2OTkzLCA0Njk5OCwgNDcwMDMsIDQ3MDA5LCA0NzAxMiwgNDcwMTUsIAotICAgIDQ3MDIwLCA0NzAyMiwgNDcwMjYsIDQ3MDI4LCA0NzAzMCwgNDcwMzIsIDQ3MDM0LCA0NzAzNiwgNDcwMzgsIDQ3MDQzLCAKLSAgICA0NzA0NSwgNDcwNDcsIDQ3MDQ5LCA0NzA1MSwgNDcwNTUsIDQ3MDU3LCA0NzA2MCwgNDcwNjUsIDQ3MDcwLCA0NzA3NSwgCi0gICAgNDcwODAsIDQ3MDg2LCA0NzA5MiwgNDcwOTQsIDQ3MDk3LCA0NzEwNCwgNDcxMTEsIDQ3MTE4LCA0NzEyNSwgNDcxMjksIAotICAgIDQ3MTMzLCA0NzEzNSwgNDcxMzcsIDQ3MTQxLCA0NzE0NywgNDcxNTIsIDQ3MTU0LCA0NzE1OCwgNDcxNjcsIDQ3MTc1LCAKLSAgICA0NzE4MywgNDcxODksIDQ3MTk1LCA0NzIwMCwgNDcyMDYsIDQ3MjExLCA0NzIxNCwgNDcyMjgsIDQ3MjMxLCA0NzIzNiwgCi0gICAgNDcyNDEsIDQ3MjQ3LCA0NzI1NywgNDcyNTksIDQ3MjY1LCA0NzI3MSwgNDcyNzUsIDQ3MjgyLCA0NzI4NiwgNDcyODgsIAotICAgIDQ3MjkwLCA0NzI5NCwgNDczMDAsIDQ3MzA1LCA0NzMxMSwgNDczMTMsIDQ3MzE5LCA0NzMyMSwgNDczMjcsIDQ3MzI5LCAKLSAgICA0NzMzMSwgNDczMzYsIDQ3MzM4LCA0NzM0MiwgNDczNDcsIDQ3MzQ5LCA0NzM1NCwgNDczNTksIDQ3MzYzLCA0NzM3MCwgMCwgCi0gICAgNDczODAsIDQ3Mzg2LCA0NzM4OSwgNDczOTUsIDQ3Mzk4LCA0NzQwMywgNDc0MDgsIDQ3NDEyLCA0NzQxNCwgNDc0MTYsIAotICAgIDQ3NDIwLCA0NzQyNCwgNDc0MjgsIDQ3NDMyLCA0NzQzNywgNDc0MzksIDQ3NDQ0LCA0NzQ0NywgNDc0NTAsIDQ3NDUzLCAKLSAgICA0NzQ1NywgNDc0NjEsIDQ3NDY2LCA0NzQ3MCwgNDc0NzUsIDQ3NDgwLCA0NzQ4NCwgNDc0OTAsIDQ3NDk3LCA0NzUwMCwgCi0gICAgNDc1MDYsIDQ3NTExLCA0NzUxNSwgNDc1MjAsIDQ3NTI2LCA0NzUzMiwgNDc1MzksIDQ3NTQ1LCA0NzU1MiwgNDc1NTksIAotICAgIDQ3NTYxLCA0NzU2OCwgNDc1NzIsIDQ3NTc5LCA0NzU4NSwgNDc1OTAsIDQ3NTk2LCA0NzYwMCwgNDc2MDUsIDQ3NjA4LCAKLSAgICA0NzYxNCwgNDc2MjAsIDQ3NjI3LCA0NzYzNSwgNDc2NDIsIDQ3NjUxLCA0NzY2MSwgNDc2NjgsIDQ3Njc0LCA0NzY3OCwgCi0gICAgNDc2ODYsIDQ3NjkxLCA0NzcwMCwgNDc3MDMsIDQ3NzA2LCA0NzcxNSwgNDc3MjYsIDQ3NzMzLCA0NzczNSwgNDc3NDEsIAotICAgIDQ3NzQ2LCA0Nzc0OCwgNDc3NTEsIDQ3NzU1LCA0Nzc2MywgNDc3NzIsIDQ3Nzc1LCA0Nzc4MCwgNDc3ODUsIDQ3NzkzLCAKLSAgICA0NzgwMSwgNDc4MDksIDQ3ODE3LCA0NzgyMywgNDc4MjksIDQ3ODM1LCA0Nzg0MywgNDc4NDgsIDQ3ODUxLCA0Nzg1NSwgCi0gICAgNDc4NTgsIDQ3ODcwLCA0Nzg4MCwgNDc4OTEsIDQ3OTAwLCA0NzkxMSwgNDc5MjEsIDQ3OTMwLCA0NzkzNiwgNDc5NDQsIAotICAgIDQ3OTQ4LCA0Nzk1NiwgNDc5NjAsIDQ3OTY4LCA0Nzk3NSwgNDc5ODIsIDQ3OTkxLCA0ODAwMCwgNDgwMTAsIDQ4MDIwLCAKLSAgICA0ODAzMCwgNDgwNDAsIDQ4MDQ5LCA0ODA1OCwgNDgwNjgsIDQ4MDc4LCA0ODA4NywgNDgwOTYsIDQ4MTAyLCA0ODEwOCwgCi0gICAgNDgxMTQsIDQ4MTIwLCA0ODEyNiwgNDgxMzIsIDQ4MTM4LCA0ODE0NCwgNDgxNTAsIDQ4MTU3LCA0ODE2MywgNDgxNjksIAotICAgIDQ4MTc1LCA0ODE4MSwgNDgxODcsIDQ4MTkzLCA0ODE5OSwgNDgyMDUsIDQ4MjExLCA0ODIxOCwgNDgyMjUsIDQ4MjMyLCAKLSAgICA0ODIzOSwgNDgyNDYsIDQ4MjUzLCA0ODI2MCwgNDgyNjcsIDQ4Mjc0LCA0ODI4MSwgNDgyODksIDQ4Mjk0LCA0ODI5NywgCi0gICAgNDgzMDEsIDQ4MzA1LCA0ODMxMSwgNDgzMTQsIDQ4MzIwLCA0ODMyNiwgNDgzMzEsIDQ4MzM1LCA0ODM0MCwgNDgzNDYsIAotICAgIDQ4MzUzLCA0ODM1NiwgNDgzNjMsIDQ4MzcwLCA0ODM3NCwgNDgzODMsIDQ4MzkyLCA0ODM5NywgNDg0MDMsIDQ4NDA4LCAKLSAgICA0ODQxMywgNDg0MjAsIDQ4NDI3LCA0ODQzNSwgNDg0NDMsIDQ4NDUyLCA0ODQ1NiwgNDg0NjUsIDQ4NDcwLCA0ODQ3NCwgCi0gICAgNDg0ODEsIDQ4NDg1LCA0ODQ5MiwgNDg1MDAsIDQ4NTA1LCA0ODUxMywgNDg1MTcsIDQ4NTIyLCA0ODUyNiwgNDg1MzEsIAotICAgIDQ4NTM1LCA0ODU0MCwgNDg1NDUsIDQ4NTU0LCA0ODU1NiwgNDg1NjAsIDQ4NTY0LCA0ODU3MSwgNDg1NzgsIDQ4NTgzLCAKLSAgICA0ODU5MSwgNDg1OTcsIDAsIDQ4NjAzLCAwLCA0ODYwNiwgNDg2MTEsIDQ4NjE2LCA0ODYyNCwgNDg2MjgsIDQ4NjM1LCAKLSAgICA0ODY0MywgNDg2NTEsIDQ4NjU2LCA0ODY2MSwgNDg2NjcsIDQ4NjcyLCA0ODY3NywgNDg2ODMsIDQ4Njg4LCA0ODY5MSwgCi0gICAgNDg2OTUsIDQ4Njk5LCA0ODcwNiwgNDg3MTUsIDQ4NzIwLCA0ODcyOSwgNDg3MzgsIDQ4NzQ0LCA0ODc1MCwgNDg3NTUsIAotICAgIDQ4NzYwLCA0ODc2NSwgNDg3NzAsIDQ4Nzc2LCA0ODc4MiwgNDg3OTAsIDQ4Nzk4LCA0ODgwNCwgNDg4MTAsIDQ4ODE1LCAKLSAgICA0ODgyMCwgNDg4MjcsIDQ4ODM0LCA0ODg0MCwgNDg4NDMsIDQ4ODQ2LCA0ODg1MCwgNDg4NTQsIDQ4ODU4LCA0ODg2MywgCi0gICAgNDg4NjksIDQ4ODc1LCA0ODg4MiwgNDg4ODksIDQ4ODk0LCA0ODg5OCwgNDg5MDIsIDQ4OTA2LCA0ODkxMCwgNDg5MTQsIAotICAgIDQ4OTE4LCA0ODkyMiwgNDg5MjYsIDQ4OTMwLCA0ODkzNCwgNDg5MzgsIDQ4OTQyLCA0ODk0NiwgNDg5NTAsIDQ4OTU0LCAKLSAgICA0ODk1OCwgNDg5NjIsIDQ4OTY2LCA0ODk3MCwgNDg5NzQsIDQ4OTc4LCA0ODk4MiwgNDg5ODYsIDQ4OTkwLCA0ODk5NCwgCi0gICAgNDg5OTgsIDQ5MDAyLCA0OTAwNiwgNDkwMTAsIDQ5MDE0LCA0OTAxOCwgNDkwMjIsIDQ5MDI2LCA0OTAzMCwgNDkwMzQsIAotICAgIDQ5MDM4LCA0OTA0MiwgNDkwNDYsIDQ5MDUwLCA0OTA1NCwgNDkwNTgsIDQ5MDYyLCA0OTA2NiwgNDkwNzAsIDQ5MDc0LCAKLSAgICA0OTA3OCwgNDkwODIsIDQ5MDg2LCA0OTA5MCwgNDkwOTQsIDQ5MDk4LCA0OTEwMiwgNDkxMDYsIDQ5MTEwLCA0OTExNCwgCi0gICAgNDkxMTgsIDQ5MTIyLCA0OTEyNiwgNDkxMzAsIDQ5MTM0LCA0OTEzOCwgNDkxNDIsIDQ5MTQ2LCA0OTE1MCwgNDkxNTQsIAotICAgIDQ5MTU4LCA0OTE2MiwgNDkxNjYsIDQ5MTcwLCA0OTE3NCwgNDkxNzgsIDQ5MTgyLCA0OTE4NiwgNDkxOTAsIDQ5MTk0LCAKLSAgICA0OTE5OCwgNDkyMDIsIDQ5MjA2LCA0OTIxMCwgNDkyMTQsIDQ5MjE4LCA0OTIyMiwgNDkyMjYsIDQ5MjMwLCA0OTIzNCwgCi0gICAgNDkyMzgsIDQ5MjQyLCA0OTI0NiwgNDkyNTAsIDQ5MjU0LCA0OTI1OCwgNDkyNjIsIDQ5MjY2LCA0OTI3MCwgNDkyNzQsIAotICAgIDQ5Mjc4LCA0OTI4MiwgNDkyODYsIDQ5MjkwLCA0OTI5NCwgNDkyOTgsIDQ5MzAyLCA0OTMwNiwgNDkzMTAsIDQ5MzE0LCAKLSAgICA0OTMxOCwgNDkzMjIsIDQ5MzI2LCA0OTMzMCwgNDkzMzQsIDQ5MzM4LCA0OTM0MiwgNDkzNDYsIDQ5MzUwLCA0OTM1NCwgCi0gICAgNDkzNTgsIDQ5MzYyLCA0OTM2NiwgNDkzNzAsIDQ5Mzc0LCA0OTM3OCwgNDkzODIsIDQ5Mzg2LCA0OTM5MCwgNDkzOTQsIAotICAgIDQ5Mzk4LCA0OTQwMiwgNDk0MDYsIDQ5NDEwLCA0OTQxNCwgNDk0MTgsIDQ5NDIyLCA0OTQyNiwgNDk0MzAsIDQ5NDM0LCAKLSAgICA0OTQzOCwgNDk0NDIsIDQ5NDQ2LCA0OTQ1MCwgNDk0NTQsIDQ5NDU4LCA0OTQ2MiwgNDk0NjYsIDQ5NDcwLCA0OTQ3NCwgCi0gICAgNDk0NzgsIDQ5NDgyLCA0OTQ4NiwgNDk0OTAsIDQ5NDk0LCA0OTQ5OCwgNDk1MDIsIDQ5NTA2LCA0OTUxMCwgNDk1MTQsIAotICAgIDQ5NTE4LCA0OTUyMiwgNDk1MjYsIDQ5NTMwLCA0OTUzNCwgNDk1MzgsIDQ5NTQyLCA0OTU0NiwgNDk1NTAsIDQ5NTU0LCAKLSAgICA0OTU1OCwgNDk1NjIsIDQ5NTY2LCA0OTU3MCwgNDk1NzQsIDQ5NTc4LCA0OTU4MiwgNDk1ODYsIDQ5NTkwLCA0OTU5NCwgCi0gICAgNDk1OTgsIDQ5NjAyLCA0OTYwNiwgNDk2MTAsIDQ5NjE0LCA0OTYxOCwgNDk2MjIsIDQ5NjI2LCA0OTYzMCwgNDk2MzQsIAotICAgIDQ5NjM4LCA0OTY0MiwgNDk2NDYsIDQ5NjUwLCA0OTY1NCwgNDk2NTgsIDQ5NjYyLCA0OTY2NiwgNDk2NzAsIDQ5Njc0LCAKLSAgICA0OTY3OCwgNDk2ODIsIDQ5Njg2LCA0OTY5MCwgNDk2OTQsIDQ5Njk4LCA0OTcwMiwgNDk3MDYsIDQ5NzEwLCA0OTcxNCwgCi0gICAgNDk3MTgsIDQ5NzIyLCA0OTcyNiwgNDk3MzAsIDQ5NzM0LCA0OTczOCwgNDk3NDIsIDQ5NzQ2LCA0OTc1MCwgNDk3NTQsIAotICAgIDQ5NzU4LCA0OTc2MiwgNDk3NjYsIDQ5NzcwLCA0OTc3NCwgNDk3NzgsIDQ5NzgyLCA0OTc4NiwgNDk3OTAsIDQ5Nzk0LCAKLSAgICA0OTc5OCwgNDk4MDIsIDQ5ODA2LCA0OTgxMCwgNDk4MTQsIDQ5ODE4LCA0OTgyMiwgNDk4MjYsIDQ5ODMwLCA0OTgzNCwgCi0gICAgNDk4MzgsIDQ5ODQyLCA0OTg0NiwgNDk4NTAsIDQ5ODU0LCA0OTg1OCwgNDk4NjIsIDQ5ODY2LCA0OTg3MCwgNDk4NzQsIAotICAgIDQ5ODc4LCA0OTg4MiwgNDk4ODYsIDQ5ODkwLCA0OTg5NCwgNDk4OTgsIDQ5OTAyLCA0OTkwNiwgNDk5MTAsIDQ5OTE0LCAKLSAgICA0OTkxOCwgNDk5MjUsIDQ5OTMzLCA0OTkzOSwgNDk5NDUsIDQ5OTUyLCA0OTk1OSwgNDk5NjUsIDQ5OTcxLCA0OTk3NywgCi0gICAgNDk5ODMsIDQ5OTg4LCA0OTk5MywgNDk5OTgsIDUwMDAzLCA1MDAwOSwgNTAwMTUsIDUwMDIzLCA1MDAzMCwgNTAwMzYsIAotICAgIDUwMDQyLCA1MDA1MCwgNTAwNTksIDUwMDY2LCA1MDA3NiwgNTAwODcsIDUwMDkwLCA1MDA5MywgNTAwOTcsIDUwMTAxLCAKLSAgICA1MDEwOCwgNTAxMTUsIDUwMTI2LCA1MDEzNywgNTAxNDcsIDUwMTU3LCA1MDE2NCwgNTAxNzEsIDUwMTc4LCA1MDE4NSwgCi0gICAgNTAxOTYsIDUwMjA3LCA1MDIxOCwgNTAyMjksIDUwMjM5LCA1MDI0OSwgNTAyNjEsIDUwMjczLCA1MDI4NCwgNTAyOTUsIAotICAgIDUwMzA3LCA1MDMxOSwgNTAzMjgsIDUwMzM4LCA1MDM0OCwgNTAzNTksIDUwMzcwLCA1MDM3NywgNTAzODQsIDUwMzkxLCAKLSAgICA1MDM5OCwgNTA0MDgsIDUwNDE4LCA1MDQyNiwgNTA0MzQsIDUwNDQxLCA1MDQ0OCwgNTA0NTUsIDUwNDYyLCA1MDQ2OSwgCi0gICAgNTA0NzQsIDUwNDc5LCA1MDQ4NSwgNTA0OTMsIDUwNTAzLCA1MDUxMSwgNTA1MTksIDUwNTI3LCA1MDUzNSwgNTA1NDMsIAotICAgIDUwNTUxLCA1MDU1OSwgNTA1NjcsIDUwNTc2LCA1MDU4NSwgNTA1OTUsIDUwNjA1LCA1MDYxNCwgNTA2MjMsIDUwNjMzLCAKLSAgICA1MDY0MywgNTA2NTIsIDUwNjYxLCA1MDY3MSwgNTA2ODEsIDUwNjkwLCA1MDY5OSwgNTA3MDksIDUwNzE5LCA1MDczMywgCi0gICAgNTA3NTAsIDUwNzY0LCA1MDc4MSwgNTA3OTUsIDUwODA5LCA1MDgyMywgNTA4MzcsIDUwODQ3LCA1MDg1OCwgNTA4NjgsIAotICAgIDUwODc5LCA1MDg5NiwgNTA5MTMsIDUwOTIxLCA1MDkyNywgNTA5MzQsIDUwOTQxLCA1MDk0OCwgNTA5NTUsIDUwOTYwLCAKLSAgICA1MDk2NiwgNTA5NzEsIDUwOTc2LCA1MDk4MiwgNTA5ODcsIDUwOTkyLCA1MDk5NywgNTEwMDIsIDUxMDA3LCA1MTAxNCwgCi0gICAgNTEwMTksIDUxMDI2LCA1MTAzMSwgNTEwMzYsIDUxMDQwLCA1MTA0NCwgNTEwNTEsIDUxMDU4LCA1MTA2NSwgNTEwNzIsIAotICAgIDUxMDc5LCA1MTA4NiwgNTEwOTksIDUxMTEyLCA1MTEyNSwgNTExMzgsIDUxMTQ2LCA1MTE1NCwgNTExNjAsIDUxMTY2LCAKLSAgICA1MTE3MywgNTExODAsIDUxMTg3LCA1MTE5NCwgNTExOTgsIDUxMjAzLCA1MTIxMSwgNTEyMTksIDUxMjI3LCA1MTIzNCwgCi0gICAgNTEyMzgsIDUxMjQ2LCA1MTI1NCwgNTEyNTgsIDUxMjYyLCA1MTI2NywgNTEyNzQsIDUxMjgyLCA1MTI5MCwgNTEzMTAsIAotICAgIDUxMzMwLCA1MTM1MCwgNTEzNzAsIDUxMzkwLCA1MTQxMCwgNTE0MzAsIDUxNDUwLCA1MTQ1NiwgNTE0NjMsIDUxNDcyLCAKLSAgICA1MTQ4MCwgNTE0ODgsIDUxNDkzLCA1MTQ5NiwgNTE0OTksIDUxNTA0LCA1MTUwNywgNTE1MjYsIDUxNTMzLCA1MTUzOSwgCi0gICAgNTE1NDUsIDUxNTQ5LCA1MTU1MiwgNTE1NTUsIDUxNTU4LCA1MTU3MCwgNTE1ODMsIDUxNTkwLCA1MTU5NywgNTE2MDAsIAotICAgIDUxNjA0LCA1MTYwNywgNTE2MTIsIDUxNjE3LCA1MTYyMiwgNTE2MjgsIDUxNjM3LCA1MTY0NCwgNTE2NTEsIDUxNjU5LCAKLSAgICA1MTY2NiwgNTE2NzMsIDUxNjc2LCA1MTY4MiwgNTE2ODgsIDUxNjkxLCA1MTY5NCwgNTE2OTksIDUxNzA0LCA1MTcxMCwgCi0gICAgNTE3MTYsIDUxNzIwLCA1MTcyNSwgNTE3MzIsIDUxNzM2LCA1MTc0MiwgNTE3NDYsIDUxNzUwLCA1MTc1OCwgNTE3NzAsIAotICAgIDUxNzc5LCA1MTc4MywgNTE3ODUsIDUxNzk0LCA1MTgwMywgNTE4MDksIDUxODEyLCA1MTgxOCwgNTE4MjQsIDUxODI5LCAKLSAgICA1MTgzNCwgNTE4MzksIDUxODQ0LCA1MTg0OSwgNTE4NTQsIDUxODU2LCA1MTg2MiwgNTE4NjcsIDUxODc0LCA1MTg3OCwgCi0gICAgNTE4ODQsIDUxODg3LCA1MTg5MSwgNTE4OTgsIDUxOTA1LCA1MTkwNywgNTE5MDksIDUxOTE1LCA1MTkyMSwgNTE5MjcsIAotICAgIDUxOTM2LCA1MTk0NSwgNTE5NTIsIDUxOTU5LCA1MTk2NSwgNTE5NzEsIDUxOTc2LCA1MTk4MSwgNTE5ODYsIDUxOTkyLCAKLSAgICA1MTk5OCwgNTIwMDMsIDUyMDEwLCA1MjAxNCwgNTIwMTgsIDUyMDMxLCA1MjA0NCwgNTIwNTYsIDUyMDY1LCA1MjA3MSwgCi0gICAgNTIwNzgsIDUyMDgzLCA1MjA4OCwgNTIwOTMsIDUyMDk4LCA1MjEwMywgNTIxMDUsIDUyMTEyLCA1MjExOSwgNTIxMjYsIAotICAgIDUyMTMzLCA1MjE0MCwgNTIxNDgsIDUyMTU0LCA1MjE1OSwgNTIxNjUsIDUyMTcxLCA1MjE3NywgNTIxODQsIDUyMTkwLCAKLSAgICA1MjE5OCwgNTIyMDYsIDUyMjE0LCA1MjIyMiwgNTIyMjksIDUyMjM1LCA1MjI0MSwgNTIyNTAsIDUyMjU0LCA1MjI2MywgCi0gICAgNTIyNzIsIDUyMjgxLCA1MjI4OSwgNTIyOTMsIDUyMjk5LCA1MjMwNiwgNTIzMTMsIDUyMzE3LCA1MjMyMywgNTIzMzAsIAotICAgIDUyMzM1LCA1MjM0MCwgNTIzNDYsIDUyMzUxLCA1MjM1NiwgNTIzNjMsIDUyMzcwLCA1MjM3NSwgNTIzODAsIDUyMzg4LCAKLSAgICA1MjM5NiwgNTI0MDYsIDUyNDE2LCA1MjQyMywgNTI0MzAsIDUyNDM0LCA1MjQzOCwgNTI0NTAsIDUyNDU2LCA1MjQ2MiwgCi0gICAgNTI0NjcsIDUyNDcyLCA1MjQ3OSwgNTI0ODYsIDUyNDkyLCA1MjQ5OCwgNTI1MDcsIDUyNTE1LCA1MjUyMywgNTI1MzAsIAotICAgIDUyNTM3LCA1MjU0NCwgNTI1NTAsIDUyNTU3LCA1MjU2MywgNTI1NzAsIDUyNTc3LCA1MjU4NCwgNTI1OTEsIDUyNTk3LCAKLSAgICA1MjYwMiwgNTI2MTEsIDUyNjIxLCA1MjYyOCwgNTI2MzcsIDUyNjQzLCA1MjY0OCwgNTI2NTMsIDUyNjYzLCA1MjY2OSwgCi0gICAgNTI2NzUsIDUyNjgxLCA1MjY4OSwgNTI2OTQsIDUyNzAxLCA1MjcwOCwgNTI3MTksIDUyNzI2LCA1MjczMywgNTI3NDAsIAotICAgIDUyNzQ3LCA1Mjc1NCwgNTI3NjEsIDUyNzY4LCA1Mjc4MCwgNTI3OTIsIDUyODAzLCA1MjgxNCwgNTI4MjcsIDUyODQwLCAKLSAgICA1Mjg0NSwgNTI4NTAsIDUyODU5LCA1Mjg2OCwgNTI4NzUsIDUyODgyLCA1Mjg5MSwgNTI5MDAsIDUyOTA4LCA1MjkxNiwgCi0gICAgNTI5MjQsIDUyOTMyLCA1Mjk0MiwgNTI5NTIsIDUyOTY2LCA1Mjk4MCwgNTI5ODgsIDUyOTk2LCA1MzAwOCwgNTMwMjAsIAotICAgIDUzMDI4LCA1MzAzNiwgNTMwNDYsIDUzMDU2LCA1MzA2MSwgNTMwNjYsIDUzMDc1LCA1MzA4NCwgNTMwODksIDUzMDk0LCAKLSAgICA1MzEwMiwgNTMxMDgsIDUzMTE0LCA1MzEyMiwgNTMxMzAsIDUzMTQzLCA1MzE1NiwgNTMxNjAsIDUzMTY0LCA1MzE3MSwgCi0gICAgNTMxNzgsIDUzMTg1LCA1MzE5MywgNTMyMDEsIDUzMjEwLCA1MzIxOSwgNTMyMjUsIDUzMjMxLCA1MzIzOCwgNTMyNDUsIAotICAgIDUzMjUyLCA1MzI1OSwgNTMyNjgsIDUzMjc3LCA1MzI4MCwgNTMyODMsIDUzMjg4LCA1MzI5MywgNTMyOTksIDUzMzA1LCAKLSAgICA1MzMxMiwgNTMzMTksIDUzMzI5LCA1MzMzOSwgNTMzNDYsIDUzMzUzLCA1MzM2MSwgNTMzNjksIDUzMzc3LCA1MzM4NSwgCi0gICAgNTMzOTMsIDUzNDAxLCA1MzQwOCwgNTM0MTUsIDUzNDE5LCA1MzQyMywgNTM0MzAsIDUzNDM3LCA1MzQ0MiwgNTM0NDcsIAotICAgIDUzNDUyLCA1MzQ1NywgNTM0NjMsIDUzNDc3LCA1MzQ4NCwgNTM0OTEsIDUzNDk1LCA1MzQ5NywgNTM0OTksIDUzNTA0LCAKLSAgICA1MzUwOSwgNTM1MTQsIDUzNTE4LCA1MzUyNiwgNTM1MzMsIDUzNTQwLCA1MzU0OCwgNTM1NjAsIDUzNTY4LCA1MzU3NiwgCi0gICAgNTM1ODcsIDUzNTkxLCA1MzU5NSwgNTM2MDEsIDUzNjA5LCA1MzYyMiwgNTM2MjksIDUzNjM2LCA1MzY0MywgNTM2NDgsIAotICAgIDUzNjU1LCA1MzY2NCwgNTM2NzIsIDUzNjc4LCA1MzY4NCwgNTM2OTAsIDUzNjk5LCA1MzcwOCwgNTM3MTYsIDUzNzI1LCAKLSAgICA1MzczMCwgNTM3MzMsIDUzNzM4LCA1Mzc0NCwgNTM3NTAsIDUzNzU2LCA1Mzc2MiwgNTM3NjYsIDUzNzY5LCA1Mzc3MywgCi0gICAgNTM3NzcsIDUzNzgzLCA1Mzc4OSwgNTM3OTUsIDUzODAxLCA1MzgwNSwgNTM4MDksIDUzODE2LCA1MzgyMywgNTM4MzAsIAotICAgIDUzODM3LCA1Mzg0NCwgNTM4NTEsIDUzODYxLCA1Mzg3MSwgNTM4NzgsIDUzODg1LCA1Mzg5MywgNTM5MDEsIDUzOTA1LCAKLSAgICA1MzkxMCwgNTM5MTUsIDUzOTIxLCA1MzkyNywgNTM5MzAsIDUzOTMzLCA1MzkzNiwgNTM5MzksIDUzOTQzLCA1Mzk0OCwgCi0gICAgNTM5NTMsIDUzOTU4LCA1Mzk2MywgNTM5NjgsIDUzOTcyLCA1Mzk3NiwgNTM5ODAsIDUzOTg0LCA1Mzk4OCwgNTM5OTIsIAotICAgIDUzOTk2LCA1NDAwMiwgNTQwMDYsIDU0MDEyLCA1NDAxNywgNTQwMjQsIDU0MDMyLCA1NDAzOSwgNTQwNDcsIDU0MDU0LCAKLSAgICA1NDA2MiwgNTQwNzEsIDU0MDc4LCA1NDA4OCwgNTQwOTksIDU0MTA1LCA1NDExNCwgNTQxMjAsIDU0MTI5LCA1NDEzOCwgCi0gICAgNTQxNDQsIDU0MTUwLCA1NDE1NCwgNTQxNTgsIDU0MTY3LCA1NDE3NiwgNTQxODMsIDU0MTkwLCA1NDE5OSwgMCwgMCwgMCwgCi0gICAgNTQyMDgsIDU0MjEzLCA1NDIxNywgNTQyMjEsIDU0MjI2LCA1NDIzMSwgNTQyMzYsIDU0MjQ0LCA1NDI1MiwgNTQyNTUsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU0MjU5LCA1NDI2NCwgNTQyNjksIDU0Mjc0LCA1NDI3OSwgCi0gICAgNTQyODQsIDU0Mjg5LCA1NDI5NCwgNTQyOTksIDU0MzA0LCA1NDMwOSwgNTQzMTUsIDU0MzE5LCA1NDMyNCwgNTQzMjksIAotICAgIDU0MzM0LCA1NDMzOSwgNTQzNDQsIDU0MzQ5LCA1NDM1NCwgNTQzNTksIDU0MzY0LCA1NDM2OSwgNTQzNzQsIDU0Mzc5LCAKLSAgICA1NDM4NCwgNTQzODksIDU0Mzk0LCA1NDM5OSwgNTQ0MDQsIDU0NDA5LCA1NDQxNCwgNTQ0MTksIDU0NDI0LCA1NDQyOSwgCi0gICAgNTQ0MzUsIDU0NDQwLCA1NDQ0NiwgNTQ0NTUsIDU0NDYwLCA1NDQ2OCwgNTQ0NzUsIDU0NDg0LCA1NDQ4OSwgNTQ0OTQsIAotICAgIDU0NDk5LCA1NDUwNSwgMCwgNTQ1MTIsIDU0NTE3LCA1NDUyMiwgNTQ1MjcsIDU0NTMyLCA1NDUzNywgNTQ1NDIsIDU0NTQ3LCAKLSAgICA1NDU1MiwgNTQ1NTcsIDU0NTYyLCA1NDU2OCwgNTQ1NzIsIDU0NTc3LCA1NDU4MiwgNTQ1ODcsIDU0NTkyLCA1NDU5NywgCi0gICAgNTQ2MDIsIDU0NjA3LCA1NDYxMiwgNTQ2MTcsIDU0NjIyLCA1NDYyNywgNTQ2MzIsIDU0NjM3LCA1NDY0MiwgNTQ2NDcsIAotICAgIDU0NjUyLCA1NDY1NywgNTQ2NjIsIDU0NjY3LCA1NDY3MiwgNTQ2NzcsIDU0NjgyLCA1NDY4OCwgNTQ2OTMsIDU0Njk5LCAKLSAgICA1NDcwOCwgNTQ3MTMsIDU0NzIxLCA1NDcyOCwgNTQ3MzcsIDU0NzQyLCA1NDc0NywgNTQ3NTIsIDU0NzU4LCAwLCA1NDc2NSwgCi0gICAgNTQ3NzMsIDU0NzgxLCA1NDc5MSwgNTQ3OTgsIDU0ODA2LCA1NDgxMiwgNTQ4MjEsIDU0ODI5LCA1NDgzNywgNTQ4NDUsIAotICAgIDU0ODUzLCA1NDg2MSwgNTQ4NjksIDU0ODc0LCA1NDg4MSwgNTQ4ODcsIDU0ODk0LCA1NDkwMiwgNTQ5MDksIDU0OTE2LCAKLSAgICA1NDkyNCwgNTQ5MzAsIDU0OTM2LCA1NDk0MywgNTQ5NTAsIDU0OTYwLCA1NDk3MCwgNTQ5NzcsIDU0OTg0LCA1NDk4OSwgCi0gICAgNTQ5OTksIDU1MDA5LCA1NTAxNCwgNTUwMTksIDU1MDI0LCA1NTAyOSwgNTUwMzQsIDU1MDM5LCA1NTA0NCwgNTUwNDksIAotICAgIDU1MDU0LCA1NTA1OSwgNTUwNjQsIDU1MDY5LCA1NTA3NCwgNTUwNzksIDU1MDg0LCA1NTA4OSwgNTUwOTQsIDU1MDk5LCAKLSAgICA1NTEwNCwgNTUxMDksIDU1MTE0LCA1NTExOSwgNTUxMjQsIDU1MTI5LCA1NTEzNCwgNTUxMzksIDU1MTQ0LCA1NTE0OSwgCi0gICAgNTUxNTQsIDU1MTU5LCA1NTE2MywgNTUxNjcsIDU1MTcyLCA1NTE3NywgNTUxODIsIDU1MTg3LCA1NTE5MiwgNTUxOTcsIAotICAgIDU1MjAyLCA1NTIwNywgNTUyMTIsIDU1MjE3LCA1NTIyMiwgNTUyMjcsIDU1MjMyLCA1NTIzNywgNTUyNDIsIDU1MjQ3LCAKLSAgICA1NTI1MiwgNTUyNTcsIDU1MjY0LCA1NTI3MSwgNTUyNzgsIDU1Mjg1LCA1NTI5MiwgNTUyOTksIDU1MzA2LCA1NTMxMywgCi0gICAgNTUzMjAsIDU1MzI3LCA1NTMzNCwgNTUzNDEsIDU1MzQ4LCA1NTM1NSwgNTUzNjAsIDU1MzY1LCA1NTM3MiwgNTUzNzksIAotICAgIDU1Mzg2LCA1NTM5MywgNTU0MDAsIDU1NDA3LCA1NTQxNCwgNTU0MjEsIDU1NDI4LCA1NTQzNSwgNTU0NDIsIDU1NDQ5LCAKLSAgICA1NTQ1NSwgNTU0NjEsIDU1NDY3LCA1NTQ3MywgNTU0ODAsIDU1NDg3LCA1NTQ5NCwgNTU1MDEsIDU1NTA4LCA1NTUxNSwgCi0gICAgNTU1MjIsIDU1NTI5LCA1NTUzNiwgNTU1NDMsIDU1NTUxLCA1NTU1OSwgNTU1NjcsIDU1NTc1LCA1NTU4MywgNTU1OTEsIAotICAgIDU1NTk5LCA1NTYwNywgNTU2MTEsIDU1NjE3LCA1NTYyMywgNTU2MjcsIDU1NjMzLCA1NTYzOSwgNTU2NDUsIDU1NjUyLCAKLSAgICA1NTY1OSwgNTU2NjYsIDU1NjczLCA1NTY3OCwgNTU2ODQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1NjkwLCA1NTY5OCwgCi0gICAgNTU3MDcsIDU1NzE2LCA1NTcyNCwgNTU3MzAsIDU1NzM1LCA1NTc0MCwgNTU3NDUsIDU1NzUwLCA1NTc1NSwgNTU3NjAsIAotICAgIDU1NzY1LCA1NTc3MCwgNTU3NzUsIDU1NzgwLCA1NTc4NSwgNTU3OTAsIDU1Nzk1LCA1NTgwMCwgNTU4MDUsIDU1ODEwLCAKLSAgICA1NTgxNSwgNTU4MjAsIDU1ODI1LCA1NTgzMCwgNTU4MzUsIDU1ODQwLCA1NTg0NSwgNTU4NTAsIDU1ODU1LCA1NTg2MCwgCi0gICAgNTU4NjUsIDU1ODcwLCA1NTg3NSwgNTU4ODAsIDU1ODg1LCA1NTg5MCwgNTU4OTUsIDU1OTAwLCA1NTkwNSwgNTU5MTAsIAotICAgIDU1OTE1LCA1NTkyMCwgNTU5MjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1OTMwLCA1NTkzNCwgNTU5MzksIAotICAgIDU1OTQ0LCA1NTk0OSwgNTU5NTQsIDU1OTYzLCA1NTk2OCwgNTU5NzMsIDU1OTc4LCA1NTk4MywgNTU5ODgsIDU1OTkzLCAKLSAgICA1NTk5OCwgNTYwMDMsIDU2MDEwLCA1NjAxNSwgNTYwMjAsIDU2MDI5LCA1NjAzNiwgNTYwNDEsIDU2MDQ2LCA1NjA1MSwgCi0gICAgNTYwNTgsIDU2MDYzLCA1NjA3MCwgNTYwNzUsIDU2MDgwLCA1NjA4NywgNTYwOTQsIDU2MDk5LCA1NjEwNCwgNTYxMDksIAotICAgIDU2MTE2LCA1NjEyMywgNTYxMjgsIDU2MTMzLCA1NjEzOCwgNTYxNDMsIDU2MTQ4LCA1NjE1NSwgNTYxNjIsIDU2MTY3LCAKLSAgICA1NjE3MiwgNTYxNzcsIDU2MTgyLCA1NjE4NywgNTYxOTIsIDU2MTk3LCA1NjIwMiwgNTYyMDcsIDU2MjEyLCA1NjIxNywgCi0gICAgNTYyMjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU2MjI5LCA1NjIzNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgNTYyNDEsIDU2MjQ3LCA1NjI1MSwgNTYyNTUsIDU2MjU5LCA1NjI2MywgNTYyNjcsIDU2MjcxLCAKLSAgICA1NjI3NSwgNTYyNzksIDU2MjgzLCA1NjI4NywgNTYyOTMsIDU2Mjk3LCA1NjMwMSwgNTYzMDUsIDU2MzA5LCA1NjMxMywgCi0gICAgNTYzMTcsIDU2MzIxLCA1NjMyNSwgNTYzMjksIDU2MzMzLCA1NjMzNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNTYzNDEsIDU2MzQ1LCA1NjM0OSwgNTYzNTMsIDU2MzU3LCA1NjM2MSwgNTYzNjUsIDAsIDU2MzY5LCA1NjM3MywgNTYzNzcsIAotICAgIDU2MzgxLCA1NjM4NSwgNTYzODksIDU2MzkzLCAwLCA1NjM5NywgNTY0MDEsIDU2NDA1LCA1NjQwOSwgNTY0MTMsIDU2NDE3LCAKLSAgICA1NjQyMSwgMCwgNTY0MjUsIDU2NDI5LCA1NjQzMywgNTY0MzcsIDU2NDQxLCA1NjQ0NSwgNTY0NDksIDAsIDU2NDUzLCAKLSAgICA1NjQ1NywgNTY0NjEsIDU2NDY1LCA1NjQ2OSwgNTY0NzMsIDU2NDc3LCAwLCA1NjQ4MSwgNTY0ODUsIDU2NDg5LCA1NjQ5MywgCi0gICAgNTY0OTcsIDU2NTAxLCA1NjUwNSwgMCwgNTY1MDksIDU2NTEzLCA1NjUxNywgNTY1MjEsIDU2NTI1LCA1NjUyOSwgNTY1MzMsIAotICAgIDAsIDU2NTM3LCA1NjU0MSwgNTY1NDUsIDU2NTQ5LCA1NjU1MywgNTY1NTcsIDU2NTYxLCAwLCA1NjU2NSwgNTY1NzAsIAotICAgIDU2NTc1LCA1NjU4MCwgNTY1ODUsIDU2NTkwLCA1NjU5NSwgNTY1OTksIDU2NjA0LCA1NjYwOSwgNTY2MTQsIDU2NjE4LCAKLSAgICA1NjYyMywgNTY2MjgsIDU2NjMzLCA1NjYzOCwgNTY2NDIsIDU2NjQ3LCA1NjY1MiwgNTY2NTcsIDU2NjYyLCA1NjY2NywgCi0gICAgNTY2NzIsIDU2Njc2LCA1NjY4MSwgNTY2ODYsIDU2NjkzLCA1NjY5OCwgNTY3MDMsIDU2NzA5LCA1NjcxNiwgNTY3MjMsIAotICAgIDU2NzMyLCA1NjczOSwgNTY3NDgsIDU2NzUyLCA1Njc1NiwgNTY3NjIsIDU2NzY4LCA1Njc3NCwgNTY3ODIsIDU2Nzg4LCAKLSAgICA1Njc5MiwgNTY3OTYsIDU2ODAwLCA1NjgwNiwgNTY4MTIsIDU2ODE2LCA1NjgxOCwgNTY4MjIsIDU2ODI4LCA1NjgzMCwgCi0gICAgNTY4MzQsIDU2ODM4LCA1Njg0MiwgNTY4NDgsIDU2ODUzLCA1Njg1NywgNTY4NjEsIDU2ODY2LCA1Njg3MiwgNTY4NzcsIAotICAgIDU2ODgyLCA1Njg4NywgNTY4OTIsIDU2ODk5LCA1NjkwNiwgNTY5MTEsIDU2OTE2LCA1NjkyMSwgNTY5MjYsIDU2OTMxLCAKLSAgICA1NjkzNiwgNTY5NDAsIDU2OTQ0LCA1Njk1MSwgNTY5NTgsIDU2OTY0LCA1Njk2OCwgNTY5NzMsIDU2OTc2LCA1Njk4MCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNTY5ODgsIDU2OTkyLCA1Njk5NiwgNTcwMDEsIDU3MDA2LCA1NzAxMSwgNTcwMTUsIDU3MDE5LCAKLSAgICA1NzAyMywgNTcwMjgsIDU3MDMzLCA1NzAzNywgNTcwNDEsIDU3MDQ1LCA1NzA0OSwgNTcwNTQsIDU3MDU5LCA1NzA2NCwgCi0gICAgNTcwNjksIDU3MDczLCA1NzA3NywgNTcwODIsIDU3MDg3LCA1NzA5MiwgNTcwOTcsIDU3MTAxLCAwLCA1NzEwNSwgNTcxMDksIAotICAgIDU3MTEzLCA1NzExNywgNTcxMjEsIDU3MTI1LCA1NzEyOSwgNTcxMzQsIDU3MTM5LCA1NzE0MywgNTcxNDgsIDU3MTUzLCAKLSAgICA1NzE2MiwgNTcxNjYsIDU3MTcwLCA1NzE3NCwgNTcxODEsIDU3MTg1LCA1NzE5MCwgNTcxOTUsIDU3MTk5LCA1NzIwMywgCi0gICAgNTcyMDksIDU3MjE0LCA1NzIxOSwgNTcyMjQsIDU3MjI5LCA1NzIzMywgNTcyMzcsIDU3MjQxLCA1NzI0NSwgNTcyNDksIAotICAgIDU3MjU0LCA1NzI1OSwgNTcyNjMsIDU3MjY3LCA1NzI3MiwgNTcyNzcsIDU3MjgyLCA1NzI4NiwgNTcyOTAsIDU3Mjk1LCAKLSAgICA1NzMwMCwgNTczMDYsIDU3MzEyLCA1NzMxNiwgNTczMjIsIDU3MzI4LCA1NzMzMiwgNTczMzgsIDU3MzQ0LCA1NzM0OSwgCi0gICAgNTczNTQsIDU3MzU4LCA1NzM2NCwgNTczNjgsIDU3MzcyLCA1NzM3OCwgNTczODQsIDU3Mzg5LCA1NzM5NCwgNTczOTgsIAotICAgIDU3NDAyLCA1NzQxMCwgNTc0MTYsIDU3NDIyLCA1NzQyOCwgNTc0MzMsIDU3NDM4LCA1NzQ0MywgNTc0NDksIDU3NDUzLCAKLSAgICA1NzQ1OSwgNTc0NjMsIDU3NDY3LCA1NzQ3MywgNTc0NzksIDU3NDg1LCA1NzQ5MSwgNTc0OTcsIDU3NTAzLCA1NzUwOSwgCi0gICAgNTc1MTUsIDU3NTIxLCA1NzUyNywgNTc1MzMsIDU3NTM5LCA1NzU0MywgNTc1NDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDU3NTU1LCA1NzU1OCwgNTc1NjIsIDU3NTY2LCA1NzU3MCwgNTc1NzQsIDU3NTc3LCA1NzU4MCwgCi0gICAgNTc1ODQsIDU3NTg4LCA1NzU5MiwgNTc1OTYsIDU3NTk5LCA1NzYwNCwgNTc2MDgsIDU3NjEyLCA1NzYxNiwgNTc2MjIsIAotICAgIDU3NjI2LCA1NzYzMCwgNTc2MzQsIDU3NjM4LCA1NzY0NSwgNTc2NTEsIDU3NjU1LCA1NzY1OSwgNTc2NjMsIDU3NjY3LCAKLSAgICA1NzY3MSwgNTc2NzUsIDU3Njc5LCA1NzY4MywgNTc2ODcsIDU3NjkxLCA1NzY5NSwgNTc3MDEsIDU3NzA1LCA1NzcwOSwgCi0gICAgNTc3MTMsIDU3NzE3LCA1NzcyMSwgNTc3MjUsIDU3NzI5LCA1NzczMywgNTc3MzcsIDU3NzQxLCA1Nzc0NSwgNTc3NDksIAotICAgIDU3NzUzLCA1Nzc1NywgNTc3NjEsIDU3NzY1LCA1Nzc3MSwgNTc3NzcsIDU3NzgyLCA1Nzc4NywgNTc3OTEsIDU3Nzk1LCAKLSAgICA1Nzc5OSwgNTc4MDMsIDU3ODA3LCA1NzgxMSwgNTc4MTUsIDU3ODE5LCA1NzgyMywgNTc4MjcsIDU3ODMxLCA1NzgzNSwgCi0gICAgNTc4MzksIDU3ODQzLCA1Nzg0NywgNTc4NTEsIDU3ODU1LCA1Nzg1OSwgNTc4NjMsIDU3ODY3LCA1Nzg3MSwgNTc4NzUsIAotICAgIDU3ODc5LCA1Nzg4MywgNTc4ODksIDU3ODkzLCA1Nzg5NywgNTc5MDEsIDU3OTA1LCA1NzkwOSwgNTc5MTMsIDU3OTE3LCAKLSAgICA1NzkyMSwgNTc5MjYsIDU3OTMzLCA1NzkzNywgNTc5NDEsIDU3OTQ1LCA1Nzk0OSwgNTc5NTMsIDU3OTU3LCA1Nzk2MSwgCi0gICAgNTc5NjUsIDU3OTY5LCA1Nzk3MywgNTc5NzcsIDU3OTgxLCA1Nzk4OCwgNTc5OTIsIDU3OTk4LCA1ODAwMiwgNTgwMDYsIAotICAgIDU4MDEwLCA1ODAxNCwgNTgwMTgsIDU4MDIxLCA1ODAyNSwgNTgwMjksIDU4MDMzLCA1ODAzNywgNTgwNDEsIDU4MDQ1LCAKLSAgICA1ODA0OSwgNTgwNTMsIDU4MDU3LCA1ODA2MSwgNTgwNjUsIDU4MDY5LCA1ODA3MywgNTgwNzcsIDU4MDgxLCA1ODA4NSwgCi0gICAgNTgwODksIDU4MDkzLCA1ODA5NywgNTgxMDEsIDU4MTA1LCA1ODEwOSwgNTgxMTMsIDU4MTE3LCA1ODEyMSwgNTgxMjUsIAotICAgIDU4MTI5LCA1ODEzMywgNTgxMzcsIDU4MTQxLCA1ODE0NSwgNTgxNDksIDU4MTU1LCA1ODE1OSwgNTgxNjMsIDU4MTY3LCAKLSAgICA1ODE3MSwgNTgxNzUsIDU4MTc5LCA1ODE4MywgNTgxODcsIDU4MTkxLCA1ODE5NSwgNTgxOTksIDU4MjAzLCA1ODIwNywgCi0gICAgNTgyMTEsIDU4MjE1LCA1ODIxOSwgNTgyMjMsIDU4MjI3LCA1ODIzMSwgNTgyMzUsIDU4MjM5LCA1ODI0MywgNTgyNDcsIAotICAgIDU4MjUxLCA1ODI1NSwgNTgyNTksIDU4MjYzLCA1ODI3MSwgNTgyNzUsIDU4Mjc5LCA1ODI4MywgNTgyODcsIDU4MjkxLCAKLSAgICA1ODI5NywgNTgzMDEsIDU4MzA1LCA1ODMwOSwgNTgzMTMsIDU4MzE3LCA1ODMyMSwgNTgzMjUsIDU4MzI5LCA1ODMzMywgCi0gICAgNTgzMzcsIDU4MzQxLCA1ODM0NSwgNTgzNDksIDU4MzU1LCA1ODM1OSwgNTgzNjMsIDU4MzY3LCA1ODM3MSwgNTgzNzUsIAotICAgIDU4Mzc5LCA1ODM4MywgNTgzODcsIDU4MzkxLCA1ODM5NSwgNTgzOTksIDU4NDAzLCA1ODQwNywgNTg0MTEsIDU4NDE1LCAKLSAgICA1ODQxOSwgNTg0MjMsIDU4NDI3LCA1ODQzMSwgNTg0MzUsIDU4NDM5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1ODQ0MywgNTg0NTIsIDU4NDYwLCAKLSAgICA1ODQ3MiwgNTg0ODMsIDU4NDkxLCA1ODUwMCwgNTg1MDksIDU4NTE5LCA1ODUzMSwgNTg1NDMsIDU4NTU1LCAwLCAwLCAwLCAKLSAgICAwLCA1ODU2MSwgNTg1NjQsIDU4NTY3LCA1ODU3MiwgNTg1NzUsIDU4NTgyLCA1ODU4NiwgNTg1OTAsIDU4NTk0LCA1ODU5OCwgCi0gICAgNTg2MDIsIDU4NjA3LCA1ODYxMiwgNTg2MTYsIDU4NjIwLCA1ODYyNSwgNTg2MzAsIDU4NjM1LCA1ODY0MCwgNTg2NDMsIAotICAgIDU4NjQ2LCA1ODY1MiwgNTg2NTgsIDU4NjYzLCA1ODY2OCwgNTg2NzUsIDU4NjgyLCA1ODY4NiwgNTg2OTAsIDU4Njk0LCAKLSAgICA1ODcwMiwgNTg3MDgsIDU4NzE1LCA1ODcyMCwgNTg3MjUsIDU4NzMwLCA1ODczNSwgNTg3NDAsIDU4NzQ1LCA1ODc1MCwgCi0gICAgNTg3NTUsIDU4NzYwLCA1ODc2NSwgNTg3NzAsIDU4Nzc1LCA1ODc4MCwgNTg3ODUsIDU4NzkxLCA1ODc5NiwgNTg4MDAsIAotICAgIDU4ODA2LCA1ODgxNywgNTg4MjcsIDU4ODQyLCA1ODg1MiwgNTg4NTYsIDU4ODY1LCA1ODg3MSwgNTg4NzcsIDU4ODgzLCAKLSAgICA1ODg4OCwgNTg4OTEsIDU4ODk2LCA1ODkwMCwgMCwgNTg5MDYsIDU4OTEwLCA1ODkxMywgNTg5MTcsIDU4OTIwLCA1ODkyNCwgCi0gICAgNTg5MjcsIDU4OTMxLCA1ODkzNCwgNTg5MzgsIDU4OTQxLCA1ODk0NCwgNTg5NDgsIDU4OTUyLCA1ODk1NiwgNTg5NjAsIAotICAgIDU4OTY0LCA1ODk2OCwgNTg5NzIsIDU4OTc2LCA1ODk4MCwgNTg5ODQsIDU4OTg4LCA1ODk5MiwgNTg5OTYsIDU5MDAwLCAKLSAgICA1OTAwNCwgNTkwMDgsIDU5MDEyLCA1OTAxNiwgNTkwMjAsIDU5MDI0LCA1OTAyOCwgNTkwMzIsIDU5MDM2LCA1OTA0MSwgCi0gICAgNTkwNDUsIDU5MDQ5LCA1OTA1MywgNTkwNTcsIDU5MDYwLCA1OTA2NCwgNTkwNjcsIDU5MDcxLCA1OTA3NSwgNTkwNzksIAotICAgIDU5MDgzLCA1OTA4NiwgNTkwOTAsIDU5MDkzLCA1OTA5NywgNTkxMDEsIDU5MTA1LCA1OTEwOSwgNTkxMTMsIDU5MTE3LCAKLSAgICA1OTEyMSwgNTkxMjUsIDU5MTI5LCA1OTEzMywgNTkxMzcsIDU5MTQxLCA1OTE0NCwgNTkxNDgsIDU5MTUyLCA1OTE1NiwgCi0gICAgNTkxNjAsIDU5MTY0LCA1OTE2NywgNTkxNzIsIDU5MTc2LCA1OTE4MSwgNTkxODUsIDU5MTg4LCA1OTE5MiwgNTkxOTYsIAotICAgIDU5MjAwLCA1OTIwNCwgNTkyMDksIDU5MjEzLCA1OTIxNywgNTkyMjEsIDU5MjI1LCA1OTIyOCwgNTkyMzIsIDU5MjM2LCAwLCAKLSAgICAwLCA1OTI0MSwgNTkyNDksIDU5MjU3LCA1OTI2NCwgNTkyNzEsIDU5Mjc1LCA1OTI4MSwgNTkyODYsIDU5MjkxLCA1OTI5NSwgCi0gICAgNTkyOTgsIDU5MzAyLCA1OTMwNSwgNTkzMDksIDU5MzEyLCA1OTMxNiwgNTkzMTksIDU5MzIzLCA1OTMyNiwgNTkzMjksIAotICAgIDU5MzMzLCA1OTMzNywgNTkzNDEsIDU5MzQ1LCA1OTM0OSwgNTkzNTMsIDU5MzU3LCA1OTM2MSwgNTkzNjUsIDU5MzY5LCAKLSAgICA1OTM3MywgNTkzNzcsIDU5MzgxLCA1OTM4NSwgNTkzODksIDU5MzkzLCA1OTM5NywgNTk0MDEsIDU5NDA1LCA1OTQwOSwgCi0gICAgNTk0MTMsIDU5NDE3LCA1OTQyMSwgNTk0MjYsIDU5NDMwLCA1OTQzNCwgNTk0MzgsIDU5NDQyLCA1OTQ0NSwgNTk0NDksIAotICAgIDU5NDUyLCA1OTQ1NiwgNTk0NjAsIDU5NDY0LCA1OTQ2OCwgNTk0NzEsIDU5NDc1LCA1OTQ3OCwgNTk0ODIsIDU5NDg2LCAKLSAgICA1OTQ5MCwgNTk0OTQsIDU5NDk4LCA1OTUwMiwgNTk1MDYsIDU5NTEwLCA1OTUxNCwgNTk1MTgsIDU5NTIyLCA1OTUyNiwgCi0gICAgNTk1MjksIDU5NTMzLCA1OTUzNywgNTk1NDEsIDU5NTQ1LCA1OTU0OSwgNTk1NTIsIDU5NTU3LCA1OTU2MSwgNTk1NjYsIAotICAgIDU5NTcwLCA1OTU3MywgNTk1NzcsIDU5NTgxLCA1OTU4NSwgNTk1ODksIDU5NTk0LCA1OTU5OCwgNTk2MDIsIDU5NjA2LCAKLSAgICA1OTYxMCwgNTk2MTMsIDU5NjE3LCA1OTYyMSwgNTk2MjYsIDU5NjMwLCA1OTYzNCwgNTk2MzgsIDU5NjQyLCA1OTY0NywgCi0gICAgNTk2NTQsIDU5NjU4LCA1OTY2NCwgMCwgMCwgMCwgMCwgMCwgNTk2NjksIDU5NjczLCA1OTY3NywgNTk2ODAsIDU5Njg0LCAKLSAgICA1OTY4OCwgNTk2OTIsIDU5Njk1LCA1OTY5OCwgNTk3MDIsIDU5NzA2LCA1OTcxMCwgNTk3MTQsIDU5NzE4LCA1OTcyMiwgCi0gICAgNTk3MjYsIDU5NzMwLCA1OTczNCwgNTk3MzcsIDU5NzQxLCA1OTc0NSwgNTk3NDgsIDU5NzUxLCA1OTc1NCwgNTk3NTcsIAotICAgIDU5NzYxLCA1OTc2NSwgNTk3NjksIDU5NzczLCA1OTc3NywgNTk3ODEsIDU5Nzg1LCA1OTc4OSwgNTk3OTMsIDU5Nzk3LCAKLSAgICA1OTgwMCwgNTk4MDMsIDU5ODA3LCA1OTgxMSwgNTk4MTUsIDU5ODE5LCAwLCAwLCAwLCA1OTgyMywgNTk4MjcsIDU5ODMxLCAKLSAgICA1OTgzNSwgNTk4MzksIDU5ODQzLCA1OTg0NywgNTk4NTEsIDU5ODU1LCA1OTg1OSwgNTk4NjMsIDU5ODY3LCA1OTg3MSwgCi0gICAgNTk4NzUsIDU5ODc5LCA1OTg4MywgNTk4ODcsIDU5ODkxLCA1OTg5NSwgNTk4OTksIDU5OTAzLCA1OTkwNywgNTk5MTEsIAotICAgIDU5OTE1LCA1OTkxOSwgNTk5MjMsIDU5OTI3LCA1OTkzMSwgNTk5MzUsIDU5OTM5LCA1OTk0MywgNTk5NDYsIDU5OTUwLCAKLSAgICA1OTk1MywgNTk5NTcsIDU5OTYxLCA1OTk2NCwgNTk5NjgsIDU5OTcyLCA1OTk3NSwgNTk5NzksIDU5OTgzLCA1OTk4NywgCi0gICAgNTk5OTEsIDU5OTk0LCA1OTk5OCwgNjAwMDIsIDYwMDA2LCA2MDAxMCwgNjAwMTQsIDYwMDE4LCA2MDAyMSwgNjAwMjQsIAotICAgIDYwMDI4LCA2MDAzMiwgNjAwMzYsIDYwMDQwLCA2MDA0NCwgNjAwNDgsIDYwMDUyLCA2MDA1NiwgNjAwNjAsIDYwMDY0LCAKLSAgICA2MDA2OCwgNjAwNzIsIDYwMDc2LCA2MDA4MCwgNjAwODQsIDYwMDg4LCA2MDA5MiwgNjAwOTYsIDYwMTAwLCA2MDEwNCwgCi0gICAgNjAxMDgsIDYwMTEyLCA2MDExNiwgNjAxMjAsIDYwMTI0LCA2MDEyOCwgNjAxMzIsIDYwMTM2LCA2MDE0MCwgNjAxNDQsIAotICAgIDYwMTQ4LCA2MDE1MiwgNjAxNTYsIDYwMTYwLCA2MDE2NCwgNjAxNjgsIDYwMTcyLCA2MDE3NiwgNjAxODAsIDYwMTg0LCAKLSAgICA2MDE4OCwgMCwgNjAxOTIsIDYwMTk4LCA2MDIwNCwgNjAyMDksIDYwMjE0LCA2MDIxOSwgNjAyMjUsIDYwMjMxLCA2MDIzNywgCi0gICAgNjAyNDMsIDYwMjQ5LCA2MDI1NSwgNjAyNjEsIDYwMjY3LCA2MDI3MywgNjAyNzksIDYwMjg1LCA2MDI4OSwgNjAyOTMsIAotICAgIDYwMjk3LCA2MDMwMSwgNjAzMDUsIDYwMzA5LCA2MDMxMywgNjAzMTcsIDYwMzIxLCA2MDMyNSwgNjAzMjksIDYwMzMzLCAKLSAgICA2MDMzNywgNjAzNDEsIDYwMzQ1LCA2MDM0OSwgNjAzNTMsIDYwMzU3LCA2MDM2MSwgNjAzNjUsIDYwMzcwLCA2MDM3NSwgCi0gICAgNjAzODAsIDYwMzg1LCA2MDM4OSwgNjAzOTMsIDAsIDAsIDAsIDAsIDAsIDYwMzk3LCA2MDQwMiwgNjA0MDcsIDYwNDEyLCAKLSAgICA2MDQxNywgNjA0MjIsIDYwNDI3LCA2MDQzMiwgNjA0MzcsIDYwNDQyLCA2MDQ0NywgNjA0NTIsIDYwNDU3LCA2MDQ2MiwgCi0gICAgNjA0NjcsIDYwNDcyLCA2MDQ3NiwgNjA0ODEsIDYwNDg1LCA2MDQ5MCwgNjA0OTUsIDYwNTAwLCA2MDUwNSwgNjA1MTAsIAotICAgIDYwNTE1LCA2MDUyMCwgNjA1MjUsIDYwNTMwLCA2MDUzNSwgNjA1NDAsIDYwNTQ1LCA2MDU1MCwgNjA1NTUsIDYwNTYwLCAKLSAgICA2MDU2NSwgNjA1NzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYwNTc1LCA2MDU4MCwgNjA1ODUsIAotICAgIDYwNTkwLCA2MDU5NCwgNjA1OTksIDYwNjAzLCA2MDYwOCwgNjA2MTMsIDYwNjE4LCA2MDYyMywgNjA2MjgsIDYwNjMyLCAKLSAgICA2MDYzNywgNjA2NDIsIDYwNjQ3LCA2MDY1MiwgNjA2NTYsIDYwNjYwLCA2MDY2NCwgNjA2NjgsIDYwNjcyLCA2MDY3NiwgCi0gICAgNjA2ODAsIDYwNjg0LCA2MDY4OCwgNjA2OTIsIDYwNjk2LCA2MDcwMCwgNjA3MDQsIDYwNzA4LCA2MDcxMywgNjA3MTgsIAotICAgIDYwNzIzLCA2MDcyOCwgNjA3MzMsIDYwNzM4LCA2MDc0MywgNjA3NDgsIDYwNzUzLCA2MDc1OCwgNjA3NjMsIDYwNzY4LCAKLSAgICA2MDc3MywgNjA3NzgsIDYwNzgzLCA2MDc4OSwgMCwgNjA3OTYsIDYwNzk5LCA2MDgwMiwgNjA4MDUsIDYwODA4LCA2MDgxMSwgCi0gICAgNjA4MTQsIDYwODE3LCA2MDgyMCwgNjA4MjMsIDYwODI3LCA2MDgzMSwgNjA4MzUsIDYwODM5LCA2MDg0MywgNjA4NDcsIAotICAgIDYwODUxLCA2MDg1NSwgNjA4NTksIDYwODYzLCA2MDg2NywgNjA4NzEsIDYwODc1LCA2MDg3OSwgNjA4ODMsIDYwODg3LCAKLSAgICA2MDg5MSwgNjA4OTUsIDYwODk5LCA2MDkwMywgNjA5MDcsIDYwOTExLCA2MDkxNSwgNjA5MTksIDYwOTIzLCA2MDkyNywgCi0gICAgNjA5MzEsIDYwOTM1LCA2MDkzOSwgNjA5NDMsIDYwOTQ3LCA2MDk1NiwgNjA5NjUsIDYwOTc0LCA2MDk4MywgNjA5OTIsIAotICAgIDYxMDAxLCA2MTAxMCwgNjEwMTksIDYxMDIyLCA2MTAyNywgNjEwMzIsIDYxMDM3LCA2MTA0MiwgNjEwNDcsIDYxMDUyLCAKLSAgICA2MTA1NywgNjEwNjIsIDYxMDY3LCA2MTA3MSwgNjEwNzYsIDYxMDgxLCA2MTA4NiwgNjEwOTEsIDYxMDk2LCA2MTEwMCwgCi0gICAgNjExMDQsIDYxMTA4LCA2MTExMiwgNjExMTYsIDYxMTIwLCA2MTEyNCwgNjExMjgsIDYxMTMyLCA2MTEzNiwgNjExNDAsIAotICAgIDYxMTQ0LCA2MTE0OCwgNjExNTIsIDYxMTU3LCA2MTE2MiwgNjExNjcsIDYxMTcyLCA2MTE3NywgNjExODIsIDYxMTg3LCAKLSAgICA2MTE5MiwgNjExOTcsIDYxMjAyLCA2MTIwNywgNjEyMTIsIDYxMjE3LCA2MTIyMiwgNjEyMjgsIDYxMjM0LCA2MTIzOSwgCi0gICAgNjEyNDQsIDYxMjQ3LCA2MTI1MCwgNjEyNTMsIDYxMjU2LCA2MTI1OSwgNjEyNjIsIDYxMjY1LCA2MTI2OCwgNjEyNzEsIAotICAgIDYxMjc1LCA2MTI3OSwgNjEyODMsIDYxMjg3LCA2MTI5MSwgNjEyOTUsIDYxMjk5LCA2MTMwMywgNjEzMDcsIDYxMzExLCAKLSAgICA2MTMxNSwgNjEzMTksIDYxMzIzLCA2MTMyNywgNjEzMzEsIDYxMzM1LCA2MTMzOSwgNjEzNDMsIDYxMzQ3LCA2MTM1MSwgCi0gICAgNjEzNTUsIDYxMzU5LCA2MTM2MywgNjEzNjcsIDYxMzcxLCA2MTM3NSwgNjEzNzksIDYxMzgzLCA2MTM4NywgNjEzOTEsIAotICAgIDYxMzk1LCA2MTM5OSwgNjE0MDMsIDYxNDA3LCA2MTQxMSwgNjE0MTUsIDYxNDE5LCA2MTQyMywgNjE0MjcsIDYxNDMxLCAKLSAgICA2MTQzNiwgNjE0NDEsIDYxNDQ2LCA2MTQ1MSwgNjE0NTUsIDYxNDYwLCA2MTQ2NSwgNjE0NzAsIDYxNDc1LCA2MTQ4MCwgCi0gICAgNjE0ODUsIDYxNDkwLCA2MTQ5NSwgNjE1MDAsIDYxNTA0LCA2MTUxMCwgNjE1MTYsIDYxNTIyLCA2MTUyOCwgNjE1MzQsIAotICAgIDYxNTQwLCA2MTU0NiwgNjE1NTIsIDYxNTU4LCA2MTU2NCwgNjE1NzAsIDYxNTc2LCA2MTU3OSwgNjE1ODIsIDYxNTg1LCAKLSAgICA2MTU5MCwgNjE1OTMsIDYxNTk2LCA2MTU5OSwgNjE2MDIsIDYxNjA1LCA2MTYwOCwgNjE2MTIsIDYxNjE2LCA2MTYyMCwgCi0gICAgNjE2MjQsIDYxNjI4LCA2MTYzMiwgNjE2MzYsIDYxNjQwLCA2MTY0NCwgNjE2NDgsIDYxNjUyLCA2MTY1NiwgNjE2NjAsIAotICAgIDYxNjYzLCA2MTY2NiwgNjE2NzAsIDYxNjc0LCA2MTY3OCwgNjE2ODIsIDYxNjg1LCA2MTY4OSwgNjE2OTMsIDYxNjk3LCAKLSAgICA2MTcwMSwgNjE3MDQsIDYxNzA4LCA2MTcxMiwgNjE3MTYsIDYxNzIwLCA2MTcyMywgNjE3MjcsIDYxNzMxLCA2MTczNCwgCi0gICAgNjE3MzgsIDYxNzQyLCA2MTc0NiwgNjE3NTAsIDYxNzU0LCA2MTc1OCwgNjE3NjIsIDAsIDYxNzY2LCA2MTc2OSwgNjE3NzIsIAotICAgIDYxNzc1LCA2MTc3OCwgNjE3ODEsIDYxNzg0LCA2MTc4NywgNjE3OTAsIDYxNzkzLCA2MTc5NiwgNjE3OTksIDYxODAyLCAKLSAgICA2MTgwNSwgNjE4MDgsIDYxODExLCA2MTgxNCwgNjE4MTcsIDYxODIwLCA2MTgyMywgNjE4MjYsIDYxODI5LCA2MTgzMiwgCi0gICAgNjE4MzUsIDYxODM4LCA2MTg0MSwgNjE4NDQsIDYxODQ3LCA2MTg1MCwgNjE4NTMsIDYxODU2LCA2MTg1OSwgNjE4NjIsIAotICAgIDYxODY1LCA2MTg2OCwgNjE4NzEsIDYxODc0LCA2MTg3NywgNjE4ODAsIDYxODgzLCA2MTg4NiwgNjE4ODksIDYxODkyLCAKLSAgICA2MTg5NSwgNjE4OTgsIDYxOTAxLCA2MTkwNCwgNjE5MDcsIDYxOTEwLCA2MTkxMywgNjE5MTYsIDYxOTE5LCA2MTkyMiwgCi0gICAgNjE5MjUsIDYxOTI4LCA2MTkzMSwgNjE5MzQsIDYxOTM3LCA2MTk0MCwgNjE5NDMsIDYxOTQ2LCA2MTk0OSwgNjE5NTIsIAotICAgIDYxOTU1LCA2MTk1OCwgNjE5NjEsIDYxOTY0LCA2MTk2NywgNjE5NzAsIDYxOTczLCA2MTk3NiwgNjE5NzksIDYxOTgyLCAKLSAgICA2MTk4NSwgNjE5ODgsIDYxOTkxLCA2MTk5NCwgNjE5OTcsIDYyMDAwLCA2MjAwMywgNjIwMDYsIDYyMDA5LCA2MjAxMiwgCi0gICAgNjIwMTUsIDYyMDE4LCA2MjAyMSwgNjIwMjQsIDYyMDI3LCA2MjAzMCwgNjIwMzgsIDYyMDQ1LCA2MjA1MiwgNjIwNTksIAotICAgIDYyMDY2LCA2MjA3MywgNjIwODAsIDYyMDg3LCA2MjA5NCwgNjIxMDEsIDYyMTA5LCA2MjExNywgNjIxMjUsIDYyMTMzLCAKLSAgICA2MjE0MSwgNjIxNDksIDYyMTU3LCA2MjE2NSwgNjIxNzMsIDYyMTgxLCA2MjE4OSwgNjIxOTcsIDYyMjA1LCA2MjIxMywgCi0gICAgNjIyMjEsIDYyMjI0LCA2MjIyNywgNjIyMzAsIDYyMjMyLCA2MjIzNSwgNjIyMzgsIDYyMjQxLCA2MjI0NiwgNjIyNTEsIAotICAgIDYyMjU0LCA2MjI2MSwgNjIyNjgsIDYyMjc1LCA2MjI4MiwgNjIyODUsIDYyMjkwLCA2MjI5MiwgNjIyOTYsIDYyMjk4LCAKLSAgICA2MjMwMCwgNjIzMDMsIDYyMzA2LCA2MjMwOSwgNjIzMTIsIDYyMzE1LCA2MjMxOCwgNjIzMjEsIDYyMzI2LCA2MjMzMSwgCi0gICAgNjIzMzQsIDYyMzM3LCA2MjM0MCwgNjIzNDMsIDYyMzQ2LCA2MjM0OSwgNjIzNTIsIDYyMzU2LCA2MjM1OSwgNjIzNjIsIAotICAgIDYyMzY1LCA2MjM2OCwgNjIzNzEsIDYyMzc1LCA2MjM3OCwgNjIzODEsIDYyMzg0LCA2MjM4OSwgNjIzOTQsIDYyMzk5LCAKLSAgICA2MjQwNCwgNjI0MDksIDYyNDE0LCA2MjQxOSwgNjI0MjQsIDYyNDI5LCA2MjQzNywgNjI0MzksIDYyNDQyLCA2MjQ0NSwgCi0gICAgNjI0NDgsIDYyNDUxLCA2MjQ1NiwgNjI0NjQsIDYyNDY3LCA2MjQ3MCwgNjI0NzQsIDYyNDc3LCA2MjQ4MCwgNjI0ODMsIAotICAgIDYyNDg4LCA2MjQ5MSwgNjI0OTQsIDYyNDk5LCA2MjUwMiwgNjI1MDUsIDYyNTEwLCA2MjUxMywgNjI1MTYsIDYyNTIxLCAKLSAgICA2MjUyNiwgNjI1MzEsIDYyNTM0LCA2MjUzNywgNjI1NDAsIDYyNTQzLCA2MjU0OSwgNjI1NTIsIDYyNTU1LCA2MjU1OCwgCi0gICAgNjI1NjAsIDYyNTYzLCA2MjU2NiwgNjI1NjksIDYyNTc0LCA2MjU3NywgNjI1ODAsIDYyNTgzLCA2MjU4NiwgNjI1ODksIAotICAgIDYyNTk0LCA2MjU5NywgNjI2MDAsIDYyNjAzLCA2MjYwNiwgNjI2MDksIDYyNjEyLCA2MjYxNSwgNjI2MTgsIDYyNjIxLCAKLSAgICA2MjYyNiwgNjI2MzAsIDYyNjM3LCA2MjY0NCwgNjI2NTEsIDYyNjU4LCA2MjY2NSwgNjI2NzIsIDYyNjc5LCA2MjY4NiwgCi0gICAgNjI2OTMsIDYyNzAxLCA2MjcwOSwgNjI3MTcsIDYyNzI1LCA2MjczMywgNjI3NDEsIDYyNzQ5LCA2Mjc1NywgNjI3NjUsIAotICAgIDYyNzczLCA2Mjc4MSwgNjI3ODksIDYyNzk3LCA2MjgwNSwgNjI4MTMsIDYyODIxLCA2MjgyOSwgNjI4MzcsIDYyODQ1LCAKLSAgICA2Mjg1MywgNjI4NjEsIDYyODY5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxNDcsIDE1MSwgMTU2LCAxNjEsIDE2NSwgMTcwLCAxNzUsIDE3OSwgMTg0LCAxODksIDE5NCwgMTk5LCAyMDQsIDIwNywgCisgICAgMjExLCAyMTQsIDIxOCwgMjIxLCAyMjUsIDIyOSwgMjM0LCAyMzksIDI0NCwgMjQ4LCAyNTMsIDI1OCwgMjYzLCAyNjcsIAorICAgIDI3MiwgMjc3LCAyODEsIDI4NSwgMjkwLCAyOTQsIDI5OSwgMzA0LCAzMDgsIDMxMywgMzE4LCAzMjIsIDMyNywgMzMyLCAKKyAgICAzMzcsIDM0MiwgMzQ3LCAzNTEsIDM1NCwgMzU4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNTksIDM2MywgMzY4LCAKKyAgICAzNzEsIDM3NCwgMzc3LCAzODAsIDM4MywgMzg2LCAzODgsIDM5MSwgMzk3LCA0MDUsIDQwOCwgNDEyLCA0MTUsIDQxNywgCisgICAgNDIwLCA0MjMsIDQyNiwgNDI5LCA0MzMsIDQzNiwgNDM5LCA0NDMsIDQ0NSwgNDQ4LCA0NTQsIDQ2MiwgNDY5LCA0NzYsIAorICAgIDQ4MywgNDg4LCA0OTUsIDUwMSwgNTA4LCA1MTQsIDUyMSwgNTI5LCA1MzQsIDU0MiwgNTQ5LCA1NTUsIDU2MiwgNTY5LCAKKyAgICA1NzcsIDU4NCwgNTkyLCA2MDAsIDYwNSwgNjEyLCA2MTksIDYyNSwgNjMyLCA2MzgsIDY0NSwgNjQ4LCA2NTQsIDY2MSwgCisgICAgNjY3LCA2NzQsIDY4MSwgNjg4LCA2OTMsIDcwMCwgNzA3LCA3MTMsIDcyMCwgNzI2LCA3MzMsIDc0MSwgNzQ2LCA3NTQsIAorICAgIDc2MSwgNzY3LCA3NzQsIDc4MSwgNzg5LCA3OTYsIDgwNCwgODEyLCA4MTcsIDgyNCwgODMxLCA4MzcsIDg0NCwgODUwLCAKKyAgICA4NTcsIDg2MCwgODY2LCA4NzMsIDg3OSwgODg2LCA4OTMsIDkwMCwgOTA1LCA5MTMsIDkyMCwgOTI3LCA5MzQsIDk0MSwgCisgICAgOTQ4LCA5NTUsIDk2MiwgOTY5LCA5NzcsIDk4NSwgOTkzLCAxMDAxLCAxMDA5LCAxMDE3LCAxMDI1LCAxMDMzLCAxMDQwLCAKKyAgICAxMDQ3LCAxMDU0LCAxMDYxLCAxMDY4LCAxMDc1LCAxMDgyLCAxMDg5LCAxMDk2LCAxMTAzLCAxMTEwLCAxMTE3LCAxMTI1LCAKKyAgICAxMTMzLCAxMTQxLCAxMTQ5LCAxMTU3LCAxMTY1LCAxMTczLCAxMTgxLCAxMTg5LCAxMTk3LCAxMjA0LCAxMjExLCAxMjE4LCAKKyAgICAxMjI1LCAxMjMzLCAxMjQxLCAxMjQ5LCAxMjU3LCAxMjY1LCAxMjczLCAxMjgxLCAxMjg3LCAxMjkyLCAxMjk3LCAxMzA1LCAKKyAgICAxMzEzLCAxMzIxLCAxMzI5LCAxMzM0LCAxMzQxLCAxMzQ4LCAxMzU2LCAxMzY0LCAxMzcyLCAxMzgwLCAxMzkwLCAxNDAwLCAKKyAgICAxNDA3LCAxNDE0LCAxNDIxLCAxNDI4LCAxNDM2LCAxNDQ0LCAxNDUyLCAxNDYwLCAxNDcxLCAxNDc2LCAxNDgxLCAxNDg4LCAKKyAgICAxNDk1LCAxNTAyLCAxNTA5LCAxNTE2LCAxNTIzLCAxNTI4LCAxNTMzLCAxNTQwLCAxNTQ3LCAxNTU1LCAxNTYzLCAxNTcxLCAKKyAgICAxNTc5LCAxNTg2LCAxNTkzLCAxNjAxLCAxNjA5LCAxNjE3LCAxNjI1LCAxNjMzLCAxNjQxLCAxNjQ5LCAxNjU3LCAxNjY1LCAKKyAgICAxNjczLCAxNjgwLCAxNjg3LCAxNjkzLCAxNjk5LCAxNzA2LCAxNzEzLCAxNzIwLCAxNzI3LCAxNzM1LCAxNzQzLCAxNzUwLCAKKyAgICAxNzU3LCAxNzY0LCAxNzcxLCAxNzc5LCAxNzg3LCAxNzk1LCAxODAzLCAxODExLCAxODE4LCAxODI1LCAxODMzLCAxODQxLCAKKyAgICAxODQ5LCAxODU3LCAxODYzLCAxODY5LCAxODc1LCAxODgyLCAxODg5LCAxODk0LCAxODk5LCAxOTA0LCAxOTExLCAxOTE4LCAKKyAgICAxOTI1LCAxOTMyLCAxOTQwLCAxOTQ4LCAxOTU1LCAxOTYxLCAxOTY2LCAxOTcxLCAxOTc4LCAxOTg1LCAxOTkyLCAxOTk3LCAKKyAgICAyMDAyLCAyMDA3LCAyMDE0LCAyMDIxLCAyMDI4LCAyMDM1LCAyMDQyLCAyMDQ4LCAyMDU2LCAyMDY2LCAyMDc0LCAyMDgxLCAKKyAgICAyMDg4LCAyMDkzLCAyMDk4LCAyMTA1LCAyMTEyLCAyMTE2LCAyMTIxLCAyMTI2LCAyMTMxLCAyMTM5LCAyMTQ4LCAyMTU1LCAKKyAgICAyMTYyLCAyMTcxLCAyMTc4LCAyMTg1LCAyMTkwLCAyMTk3LCAyMjA0LCAyMjExLCAyMjE4LCAyMjI1LCAyMjMwLCAyMjM3LCAKKyAgICAyMjQ0LCAyMjUyLCAyMjU3LCAyMjYyLCAyMjY3LCAyMjc3LCAyMjgxLCAyMjg3LCAyMjkzLCAyMjk5LCAyMzA1LCAyMzEzLCAKKyAgICAyMzI2LCAyMzM0LCAyMzM5LCAyMzQ5LCAyMzU0LCAyMzU5LCAyMzY5LCAyMzc0LCAyMzgxLCAyMzg4LCAyMzk2LCAyNDA0LCAKKyAgICAyNDExLCAyNDE4LCAyNDI1LCAyNDMyLCAyNDQyLCAyNDUyLCAyNDYxLCAyNDcwLCAyNDgwLCAyNDkwLCAyNTAwLCAyNTEwLCAKKyAgICAyNTE2LCAyNTI2LCAyNTM2LCAyNTQ2LCAyNTU2LCAyNTY0LCAyNTcyLCAyNTc5LCAyNTg2LCAyNTk0LCAyNjAyLCAyNjEwLCAKKyAgICAyNjE4LCAyNjI1LCAyNjMyLCAyNjQyLCAyNjUyLCAyNjYwLCAyNjY4LCAyNjc2LCAyNjgxLCAyNjkxLCAyNjk2LCAyNzAzLCAKKyAgICAyNzEwLCAyNzE1LCAyNzIwLCAyNzI4LCAyNzM2LCAyNzQ2LCAyNzU2LCAyNzYzLCAyNzcwLCAyNzc5LCAyNzg4LCAyNzk2LCAKKyAgICAyODA0LCAyODEzLCAyODIyLCAyODMwLCAyODM4LCAyODQ3LCAyODU2LCAyODY1LCAyODc0LCAyODg0LCAyODk0LCAyOTAyLCAKKyAgICAyOTEwLCAyOTE5LCAyOTI4LCAyOTM3LCAyOTQ2LCAyOTU2LCAyOTY2LCAyOTc0LCAyOTgyLCAyOTkxLCAzMDAwLCAzMDA5LCAKKyAgICAzMDE4LCAzMDI3LCAzMDM2LCAzMDQxLCAzMDQ2LCAzMDU0LCAzMDYyLCAzMDcyLCAzMDgwLCAzMDg1LCAzMDkwLCAzMDk3LCAKKyAgICAzMTA0LCAzMTExLCAzMTE4LCAzMTI1LCAzMTMyLCAzMTQyLCAzMTUyLCAzMTYyLCAzMTcyLCAzMTc5LCAzMTg2LCAzMTk2LCAKKyAgICAzMjA2LCAzMjE0LCAzMjIyLCAzMjMwLCAzMjM4LCAzMjQ2LCAzMjUzLCAzMjYwLCAzMjY3LCAzMjczLCAzMjgwLCAzMjg3LCAKKyAgICAzMjk0LCAzMzAzLCAzMzEzLCAzMzIzLCAzMzMwLCAzMzM3LCAzMzQzLCAzMzQ4LCAzMzU1LCAzMzYxLCAzMzY3LCAzMzc0LCAKKyAgICAzMzgxLCAzMzkyLCAzNDAyLCAzNDA5LCAzNDE2LCAzNDIzLCAzNDMwLCAzNDM2LCAzNDQxLCAzNDQ4LCAzNDU0LCAzNDU5LCAKKyAgICAzNDY3LCAzNDc1LCAzNDgyLCAzNDg4LCAzNDkzLCAzNTAwLCAzNTA1LCAzNTEyLCAzNTIxLCAzNTMwLCAzNTM5LCAzNTQ2LCAKKyAgICAzNTUyLCAzNTU4LCAzNTYzLCAzNTcwLCAzNTc3LCAzNTg0LCAzNTkxLCAzNTk4LCAzNjAzLCAzNjA4LCAzNjE3LCAzNjI1LCAKKyAgICAzNjM0LCAzNjM5LCAzNjQ1LCAzNjU2LCAzNjYzLCAzNjcxLCAzNjgwLCAzNjg2LCAzNjkyLCAzNjk4LCAzNzA1LCAzNzEwLCAKKyAgICAzNzE2LCAzNzI3LCAzNzM2LCAzNzQ1LCAzNzUzLCAzNzYxLCAzNzcxLCAzNzc2LCAzNzgzLCAzNzkwLCAzNzk1LCAzODA3LCAKKyAgICAzODE2LCAzODI0LCAzODMxLCAzODQwLCAzODQ1LCAzODUwLCAzODU3LCAzODY0LCAzODcxLCAzODc4LCAzODg0LCAzODkzLCAKKyAgICAzOTAxLCAzOTA2LCAzOTE0LCAzOTIwLCAzOTI4LCAzOTM2LCAzOTQyLCAzOTQ4LCAzOTU0LCAzOTYxLCAzOTY5LCAzOTc1LCAKKyAgICAzOTgzLCAzOTkwLCAzOTk1LCA0MDAyLCA0MDEwLCA0MDIwLCA0MDI3LCA0MDM0LCA0MDQ0LCA0MDUxLCA0MDU4LCA0MDY4LCAKKyAgICA0MDc1LCA0MDgyLCA0MDg5LCA0MDk1LCA0MTAxLCA0MTExLCA0MTI0LCA0MTI5LCA0MTM2LCA0MTQxLCA0MTQ1LCA0MTUxLCAKKyAgICA0MTYwLCA0MTY3LCA0MTcyLCA0MTc3LCA0MTgxLCA0MTg2LCA0MTkyLCA0MTk2LCA0MjAyLCA0MjA4LCA0MjE0LCA0MjIwLCAKKyAgICA0MjI4LCA0MjMzLCA0MjM4LCA0MjQzLCA0MjQ4LCA0MjU0LCA0MjU2LCA0MjYxLCA0MjY1LCA0MjcxLCA0Mjc3LCA0MjgzLCAKKyAgICA0Mjg4LCA0Mjk1LCA0MzAyLCA0MzA4LCA0MzE1LCA0MzIzLCA0MzMxLCA0MzM2LCA0MzQxLCA0MzQ1LCA0MzUwLCA0MzUyLCAKKyAgICA0MzU0LCA0MzU3LCA0MzU5LCA0MzYxLCA0MzY2LCA0MzcxLCA0Mzc3LCA0MzgyLCA0Mzg2LCA0MzkxLCA0Mzk2LCA0NDA1LCAKKyAgICA0NDExLCA0NDE2LCA0NDIyLCA0NDI3LCA0NDMzLCA0NDQxLCA0NDQ5LCA0NDUzLCA0NDU3LCA0NDYyLCA0NDY4LCA0NDc0LCAKKyAgICA0NDgwLCA0NDg2LCA0NDkxLCA0NDk5LCA0NTA4LCA0NTE3LCA0NTIxLCA0NTI3LCA0NTM0LCA0NTQxLCA0NTQ4LCA0NTU1LCAKKyAgICA0NTU5LCA0NTY0LCA0NTY5LCA0NTc0LCA0NTc5LCA0NTg0LCA0NTg2LCA0NTg5LCA0NTkyLCA0NTk1LCA0NTk4LCA0NjAxLCAKKyAgICA0NjA1LCA0NjA5LCA0NjE1LCA0NjE4LCA0NjIzLCA0NjI5LCA0NjM1LCA0NjM4LCA0NjQzLCA0NjQ5LCA0NjUzLCA0NjU5LCAKKyAgICA0NjY1LCA0NjcxLCA0Njc3LCA0NjgyLCA0Njg3LCA0NjkyLCA0Njk1LCA0NzAxLCA0NzA2LCA0NzExLCA0NzE1LCA0NzIwLCAKKyAgICA0NzI2LCA0NzMyLCA0NzM1LCA0NzM5LCA0NzQzLCA0NzQ3LCA0NzUwLCA0NzUzLCA0NzU4LCA0NzYyLCA0NzY5LCA0NzczLCAKKyAgICA0Nzc5LCA0NzgzLCA0Nzg5LCA0NzkzLCA0Nzk3LCA0ODAxLCA0ODA2LCA0ODExLCA0ODE4LCA0ODI0LCA0ODMxLCA0ODM3LCAKKyAgICA0ODQzLCA0ODQ5LCA0ODUyLCA0ODU2LCA0ODYwLCA0ODYzLCA0ODY3LCA0ODcyLCA0ODc3LCA0ODgxLCA0ODg1LCA0ODkxLCAKKyAgICA0ODk1LCA0ODk5LCA0OTA0LCA0OTEwLCA0OTE1LCA0OTIxLCA0OTI1LCA0OTMyLCA0OTM3LCA0OTQyLCA0OTQ3LCA0OTUyLCAKKyAgICA0OTU4LCA0OTYxLCA0OTY1LCA0OTcwLCA0OTc1LCA0OTg0LCA0OTkwLCA0OTk1LCA0OTk5LCA1MDA0LCA1MDA4LCA1MDEzLCAKKyAgICA1MDE3LCA1MDIxLCA1MDI2LCA1MDI5LCA1MDM1LCA1MDQwLCA1MDQ1LCA1MDUwLCA1MDU1LCA1MDYwLCA1MDY1LCA1MDcxLCAKKyAgICA1MDc3LCA1MDgzLCA1MDg4LCA1MDkzLCA1MDk5LCA1MTA1LCA1MTExLCA1MTE2LCA1MTIxLCA1MTI4LCA1MTM1LCA1MTM5LCAKKyAgICA1MTQ1LCA1MTUyLCAwLCAwLCA1MTU5LCA1MTYyLCA1MTcxLCA1MTgwLCA1MTkxLCAwLCAwLCAwLCAwLCAwLCA1MTk1LCAKKyAgICA1MTk4LCA1MjAzLCA1MjExLCA1MjE2LCA1MjI0LCA1MjMyLCAwLCA1MjQwLCAwLCA1MjQ4LCA1MjU2LCA1MjY0LCA1Mjc1LCAKKyAgICA1MjgwLCA1Mjg1LCA1MjkwLCA1Mjk1LCA1MzAwLCA1MzA1LCA1MzEwLCA1MzE1LCA1MzIwLCA1MzI1LCA1MzMwLCA1MzM1LCAKKyAgICA1MzQwLCA1MzQ1LCA1MzUwLCA1MzU1LCAwLCA1MzYwLCA1MzY1LCA1MzcwLCA1Mzc1LCA1MzgwLCA1Mzg1LCA1MzkwLCAKKyAgICA1Mzk1LCA1NDAzLCA1NDExLCA1NDE5LCA1NDI3LCA1NDM1LCA1NDQzLCA1NDU0LCA1NDU5LCA1NDY0LCA1NDY5LCA1NDc0LCAKKyAgICA1NDc5LCA1NDg0LCA1NDg5LCA1NDk0LCA1NDk5LCA1NTA0LCA1NTA5LCA1NTE0LCA1NTE5LCA1NTI0LCA1NTI5LCA1NTM0LCAKKyAgICA1NTM5LCA1NTQ1LCA1NTUwLCA1NTU1LCA1NTYwLCA1NTY1LCA1NTcwLCA1NTc1LCA1NTgwLCA1NTg4LCA1NTk2LCA1NjA0LCAKKyAgICA1NjEyLCA1NjIwLCA1NjI1LCA1NjI5LCA1NjMzLCA1NjQwLCA1NjUwLCA1NjYwLCA1NjY0LCA1NjY4LCA1NjcyLCA1Njc4LCAKKyAgICA1Njg1LCA1Njg5LCA1Njk0LCA1Njk4LCA1NzAzLCA1NzA3LCA1NzEyLCA1NzE2LCA1NzIxLCA1NzI2LCA1NzMxLCA1NzM2LCAKKyAgICA1NzQxLCA1NzQ2LCA1NzUxLCA1NzU2LCA1NzYxLCA1NzY2LCA1NzcxLCA1Nzc2LCA1NzgxLCA1Nzg2LCA1NzkxLCA1Nzk1LCAKKyAgICA1Nzk5LCA1ODA1LCA1ODA5LCA1ODE0LCA1ODIwLCA1ODI4LCA1ODMzLCA1ODM4LCA1ODQ1LCA1ODUwLCA1ODU1LCA1ODYyLCAKKyAgICA1ODcxLCA1ODgwLCA1ODkxLCA1ODk5LCA1OTA0LCA1OTA5LCA1OTE0LCA1OTIxLCA1OTI2LCA1OTMyLCA1OTM3LCA1OTQyLCAKKyAgICA1OTQ3LCA1OTUyLCA1OTU3LCA1OTYyLCA1OTcwLCA1OTc2LCA1OTgxLCA1OTg1LCA1OTkwLCA1OTk1LCA2MDAwLCA2MDA1LCAKKyAgICA2MDEwLCA2MDE1LCA2MDIwLCA2MDI0LCA2MDMwLCA2MDM0LCA2MDM5LCA2MDQ0LCA2MDQ5LCA2MDUzLCA2MDU4LCA2MDYzLCAKKyAgICA2MDY4LCA2MDczLCA2MDc3LCA2MDgyLCA2MDg2LCA2MDkxLCA2MDk2LCA2MTAxLCA2MTA2LCA2MTEyLCA2MTE3LCA2MTIzLCAKKyAgICA2MTI3LCA2MTMyLCA2MTM2LCA2MTQwLCA2MTQ1LCA2MTUwLCA2MTU1LCA2MTYwLCA2MTY1LCA2MTcwLCA2MTc1LCA2MTc5LCAKKyAgICA2MTg1LCA2MTg5LCA2MTk0LCA2MTk5LCA2MjA0LCA2MjA4LCA2MjEzLCA2MjE4LCA2MjIzLCA2MjI4LCA2MjMyLCA2MjM3LCAKKyAgICA2MjQxLCA2MjQ2LCA2MjUxLCA2MjU2LCA2MjYxLCA2MjY3LCA2MjcyLCA2Mjc4LCA2MjgyLCA2Mjg3LCA2MjkxLCA2Mjk5LCAKKyAgICA2MzA0LCA2MzA5LCA2MzE0LCA2MzIxLCA2MzI2LCA2MzMyLCA2MzM3LCA2MzQyLCA2MzQ3LCA2MzUyLCA2MzU3LCA2MzYyLCAKKyAgICA2MzcwLCA2Mzc2LCA2MzgxLCA2Mzg2LCA2MzkxLCA2Mzk2LCA2NDAxLCA2NDA3LCA2NDEzLCA2NDIwLCA2NDI3LCA2NDM2LCAKKyAgICA2NDQ1LCA2NDUyLCA2NDU5LCA2NDY4LCA2NDc3LCA2NDgyLCA2NDg3LCA2NDkyLCA2NDk3LCA2NTAyLCA2NTA3LCA2NTEyLCAKKyAgICA2NTE3LCA2NTI4LCA2NTM5LCA2NTQ0LCA2NTQ5LCA2NTU2LCA2NTYzLCA2NTcxLCA2NTc5LCA2NTg0LCA2NTg5LCA2NTk0LCAKKyAgICA2NTk5LCA2NjAzLCA2NjA3LCA2NjExLCA2NjE3LCA2NjIzLCA2NjI3LCA2NjM0LCA2NjM5LCA2NjQ5LCA2NjU5LCA2NjY1LCAKKyAgICA2NjcxLCA2Njc5LCA2Njg3LCA2Njk1LCA2NzAzLCA2NzEwLCA2NzE3LCA2NzI2LCA2NzM1LCA2NzQzLCA2NzUxLCA2NzU5LCAKKyAgICA2NzY3LCA2Nzc1LCA2NzgzLCA2NzkxLCA2Nzk5LCA2ODA2LCA2ODEzLCA2ODE5LCA2ODI1LCA2ODMzLCA2ODQxLCA2ODQ4LCAKKyAgICA2ODU1LCA2ODY0LCA2ODczLCA2ODc5LCA2ODg1LCA2ODkzLCA2OTAxLCA2OTA5LCA2OTE3LCA2OTIzLCA2OTI5LCA2OTM3LCAKKyAgICA2OTQ1LCA2OTUzLCA2OTYxLCA2OTY4LCA2OTc1LCA2OTgzLCA2OTkxLCA2OTk5LCA3MDA3LCA3MDEyLCA3MDE3LCA3MDI0LCAKKyAgICA3MDMxLCA3MDQxLCA3MDUxLCA3MDU1LCA3MDYzLCA3MDcxLCA3MDc4LCA3MDg1LCA3MDkzLCA3MTAxLCA3MTA4LCA3MTE1LCAKKyAgICA3MTIzLCA3MTMxLCA3MTM4LCA3MTQ1LCA3MTUzLCA3MTYxLCA3MTY2LCA3MTczLCA3MTgwLCA3MTg3LCA3MTk0LCA3MjAwLCAKKyAgICA3MjA2LCA3MjE0LCA3MjIyLCA3MjI3LCA3MjMyLCA3MjQwLCA3MjQ4LCA3MjU2LCA3MjY0LCA3MjcyLCA3MjgwLCA3Mjg3LCAKKyAgICA3Mjk0LCA3MzAyLCA3MzEwLCA3MzE4LCA3MzI2LCA3MzMzLCA3MzQwLCA3MzQ2LCA3MzUyLCA3MzYxLCA3MzcwLCA3Mzc3LCAKKyAgICA3Mzg0LCA3MzkxLCA3Mzk4LCA3NDA1LCA3NDEyLCA3NDE5LCA3NDI2LCA3NDM0LCA3NDQyLCA3NDUwLCA3NDU4LCA3NDY2LCAKKyAgICA3NDc0LCA3NDg0LCA3NDk0LCA3NTAxLCA3NTA4LCA3NTE1LCA3NTIyLCA3NTI5LCA3NTM2LCA3NTQzLCA3NTUwLCA3NTU3LCAKKyAgICA3NTY0LCA3NTcxLCA3NTc4LCA3NTg1LCA3NTkyLCA3NTk5LCA3NjA2LCA3NjEzLCA3NjIwLCA3NjI3LCA3NjM0LCA3NjQxLCAKKyAgICA3NjQ4LCA3NjU1LCA3NjYyLCA3NjY3LCA3NjcyLCA3Njc3LCA3NjgyLCA3Njg3LCA3NjkyLCA3Njk3LCA3NzAyLCA3NzA3LCAKKyAgICA3NzEyLCA3NzE4LCA3NzI0LCA3NzMzLCA3NzQyLCA3NzUxLCA3NzYwLCA3NzY4LCA3Nzc2LCA3Nzg0LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA3NzkyLCA3Nzk3LCA3ODAyLCA3ODA3LCA3ODEyLCA3ODE3LCA3ODIyLCA3ODI3LCA3ODMyLCAKKyAgICA3ODM2LCA3ODQxLCA3ODQ2LCA3ODUxLCA3ODU2LCA3ODYxLCA3ODY2LCA3ODcxLCA3ODc2LCA3ODgxLCA3ODg2LCA3ODkxLCAKKyAgICA3ODk2LCA3OTAxLCA3OTA2LCA3OTExLCA3OTE2LCA3OTIxLCA3OTI2LCA3OTMwLCA3OTM1LCA3OTQwLCA3OTQ1LCA3OTUwLCAKKyAgICA3OTU1LCA3OTYwLCA3OTY1LCA3OTcwLCA3OTc1LCAwLCAwLCA3OTgwLCA3OTg3LCA3OTkwLCA3OTk0LCA3OTk4LCA4MDAxLCAKKyAgICA4MDA1LCAwLCA4MDA5LCA4MDE0LCA4MDE5LCA4MDI0LCA4MDI5LCA4MDM0LCA4MDM5LCA4MDQ0LCA4MDQ5LCA4MDUzLCAKKyAgICA4MDU4LCA4MDYzLCA4MDY4LCA4MDczLCA4MDc4LCA4MDgzLCA4MDg4LCA4MDkzLCA4MDk4LCA4MTAzLCA4MTA4LCA4MTEzLCAKKyAgICA4MTE4LCA4MTIzLCA4MTI4LCA4MTMzLCA4MTM4LCA4MTQzLCA4MTQ3LCA4MTUyLCA4MTU3LCA4MTYyLCA4MTY3LCA4MTcyLCAKKyAgICA4MTc3LCA4MTgyLCA4MTg3LCA4MTkyLCA4MTk3LCAwLCA4MjA0LCA4MjA5LCAwLCAwLCAwLCAwLCA4MjEyLCAwLCA4MjE2LCAKKyAgICA4MjIxLCA4MjI2LCA4MjMxLCA4MjM4LCA4MjQ1LCA4MjUwLCA4MjU1LCA4MjYwLCA4MjY1LCA4MjcwLCA4Mjc1LCA4MjgwLCAKKyAgICA4Mjg3LCA4MjkyLCA4Mjk5LCA4MzA2LCA4MzExLCA4MzE4LCA4MzIzLCA4MzI4LCA4MzMzLCA4MzQwLCA4MzQ1LCA4MzUwLCAKKyAgICA4MzU3LCA4MzY2LCA4MzcxLCA4Mzc2LCA4MzgxLCA4Mzg2LCA4MzkyLCA4Mzk3LCA4NDA0LCA4NDExLCA4NDE4LCA4NDIzLCAKKyAgICA4NDI4LCA4NDMzLCA4NDM4LCA4NDQzLCA4NDQ4LCA4NDU4LCA4NDYzLCA4NDcxLCA4NDc2LCA4NDgxLCA4NDg2LCA4NDkxLCAKKyAgICA4NDk4LCA4NTA1LCA4NTEyLCA4NTE4LCA4NTI0LCA4NTMxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4NTM4LCA4NTQyLCAKKyAgICA4NTQ2LCA4NTUwLCA4NTU0LCA4NTU4LCA4NTYyLCA4NTY2LCA4NTcwLCA4NTc0LCA4NTc4LCA4NTgzLCA4NTg3LCA4NTkxLCAKKyAgICA4NTk2LCA4NjAwLCA4NjA1LCA4NjA5LCA4NjEzLCA4NjE3LCA4NjIyLCA4NjI2LCA4NjMxLCA4NjM1LCA4NjM5LCA4NjQzLCAKKyAgICA4NjQ3LCAwLCAwLCAwLCAwLCAwLCA4NjUxLCA4NjU4LCA4NjY2LCA4NjczLCA4Njc4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA4NjgzLCA4Njg2LCA4NjkwLCA4Njk1LCA4Njk5LCAwLCA4NzAzLCA4NzA5LCA4NzE1LCA4NzE4LCAKKyAgICA4NzI1LCA4NzM0LCA4NzM3LCA4NzQwLCA4NzQ1LCA4NzUxLCA4NzU1LCA4NzYzLCA4NzY5LCA4Nzc1LCA4NzgzLCA4Nzg3LCAKKyAgICA4NzkyLCA4ODAzLCA4ODA4LCA4ODEyLCA4ODE2LCA4ODIwLCAwLCAwLCA4ODIzLCA4ODMwLCA4ODM0LCA4ODQwLCA4ODQ0LCAKKyAgICA4ODUxLCA4ODU3LCA4ODY0LCA4ODcwLCA4ODc2LCA4ODgwLCA4ODg0LCA4ODkwLCA4ODk0LCA4ODk4LCA4OTAyLCA4OTA2LCAKKyAgICA4OTEwLCA4OTE0LCA4OTE4LCA4OTIyLCA4OTI2LCA4OTMwLCA4OTM0LCA4OTM4LCA4OTQyLCA4OTQ2LCA4OTUwLCA4OTU0LCAKKyAgICA4OTU4LCA4OTY2LCA4OTc0LCA4OTg0LCA4OTkzLCA5MDAyLCA5MDA1LCA5MDA5LCA5MDEzLCA5MDE3LCA5MDIxLCA5MDI1LCAKKyAgICA5MDI5LCA5MDMzLCA5MDM3LCA5MDQyLCA5MDQ2LCA5MDQ5LCA5MDUyLCA5MDU1LCA5MDU4LCA5MDYxLCA5MDY0LCA5MDY3LCAKKyAgICA5MDcwLCA5MDc0LCA5MDc3LCA5MDgwLCA5MDg1LCA5MDkwLCA5MDk2LCA5MDk5LCA5MTA2LCA5MTE1LCA5MTIwLCA5MTI1LCAKKyAgICA5MTMyLCA5MTM3LCA5MTQyLCA5MTQ2LCA5MTUwLCA5MTU0LCA5MTU4LCA5MTYyLCA5MTY2LCA5MTcwLCA5MTc0LCA5MTc4LCAKKyAgICA5MTgyLCA5MTg3LCA5MTkyLCA5MTk5LCA5MjA1LCA5MjExLCA5MjE3LCA5MjIyLCA5MjMwLCA5MjM4LCA5MjQzLCA5MjQ5LCAKKyAgICA5MjU1LCA5MjYxLCA5MjY3LCA5MjcxLCA5Mjc1LCA5Mjc5LCA5Mjg2LCA5Mjk2LCA5MzAwLCA5MzA0LCA5MzA4LCA5MzE0LCAKKyAgICA5MzIyLCA5MzI2LCA5MzMwLCA5MzM3LCA5MzQxLCA5MzQ1LCA5MzQ5LCA5MzU2LCA5MzYzLCA5Mzc1LCA5Mzc5LCA5MzgzLCAKKyAgICA5Mzg3LCA5Mzk3LCA5NDA2LCA5NDEwLCA5NDE4LCA5NDI1LCA5NDMyLCA5NDQxLCA5NDUyLCA5NDYwLCA5NDY0LCA5NDczLCAKKyAgICA5NDg0LCA5NDkyLCA5NTA1LCA5NTEzLCA5NTIxLCA5NTI5LCA5NTM3LCA5NTQzLCA5NTUyLCA5NTU5LCA5NTYzLCA5NTcxLCAKKyAgICA5NTc1LCA5NTgyLCA5NTkwLCA5NTk0LCA5NjAwLCA5NjA3LCA5NjE0LCA5NjE4LCA5NjI2LCA5NjMwLCA5NjM3LCA5NjQxLCAKKyAgICA5NjQ5LCA5NjUzLCA5NjYxLCA5NjY5LCA5Njc2LCA5Njg0LCA5NjkyLCA5Njk5LCA5NzA1LCA5NzA5LCA5NzE2LCA5NzI0LCAKKyAgICA5NzMwLCA5NzM3LCA5NzQ0LCA5NzUwLCA5NzU5LCA5NzY3LCA5Nzc0LCA5NzgwLCA5Nzg0LCA5Nzg3LCA5NzkxLCA5Nzk3LCAKKyAgICA5ODA1LCA5ODA5LCA5ODE1LCA5ODIxLCA5ODI4LCA5ODM1LCA5ODM4LCA5ODQ1LCA5ODUwLCA5ODU4LCA5ODYzLCA5ODY3LCAKKyAgICA5ODgwLCA5ODkzLCA5ODk5LCA5OTA2LCA5OTExLCA5OTE3LCA5OTIyLCA5OTI4LCA5OTM4LCA5OTQ1LCA5OTU0LCA5OTY0LCAKKyAgICA5OTcwLCA5OTc1LCA5OTgwLCA5OTg0LCA5OTg4LCA5OTkzLCA5OTk4LCAxMDAwNCwgMTAwMTIsIDEwMDIwLCAxMDAzMSwgCisgICAgMTAwMzYsIDEwMDQ1LCAxMDA1NCwgMTAwNjEsIDEwMDY3LCAxMDA3MywgMTAwNzksIDEwMDg1LCAxMDA5MSwgMTAwOTcsIAorICAgIDEwMTAzLCAxMDEwOSwgMTAxMTUsIDEwMTIyLCAxMDEyOSwgMTAxMzYsIDEwMTQyLCAxMDE1MCwgMTAxNTksIDEwMTY1LCAKKyAgICAxMDE3MiwgMTAxNzksIDEwMTg0LCAxMDE4OSwgMTAxOTMsIDEwMjAwLCAxMDIwNywgMTAyMTYsIDEwMjI1LCAxMDIyOCwgCisgICAgMTAyMzMsIDEwMjM4LCAwLCAxMDI0MywgMTAyNDcsIDEwMjUxLCAxMDI1NywgMTAyNjEsIDEwMjY1LCAxMDI3MSwgMTAyNzUsIAorICAgIDEwMjgzLCAxMDI4NywgMTAyOTEsIDEwMjk1LCAxMDI5OSwgMTAzMDMsIDEwMzA5LCAxMDMxMywgMTAzMTksIDEwMzIzLCAKKyAgICAxMDMyNywgMTAzMzEsIDEwMzM1LCAxMDMzOSwgMTAzNDQsIDEwMzQ3LCAxMDM1MSwgMTAzNTcsIDEwMzYxLCAxMDM2NSwgCisgICAgMTAzNjksIDEwMzczLCAxMDM3NywgMTAzODMsIDEwMzg5LCAxMDM5NSwgMTAzOTksIDEwNDAzLCAxMDQwOCwgMTA0MTIsIAorICAgIDEwNDE2LCAxMDQyMSwgMTA0MjUsIDEwNDI5LCAxMDQzNiwgMTA0NDMsIDEwNDQ3LCAxMDQ1MSwgMTA0NTYsIDEwNDYwLCAKKyAgICAxMDQ2NCwgMTA0NjcsIDEwNDcyLCAxMDQ3NSwgMTA0NzgsIDEwNDgzLCAxMDQ4OCwgMTA0OTIsIDEwNDk2LCAxMDUwMiwgCisgICAgMTA1MDgsIDEwNTExLCAwLCAwLCAxMDUxNCwgMTA1MjAsIDEwNTI2LCAxMDUzMiwgMTA1NDIsIDEwNTU0LCAxMDU2NiwgCisgICAgMTA1ODMsIDEwNTk1LCAxMDYwNiwgMTA2MTQsIDEwNjIxLCAxMDYzMiwgMTA2NDcsIDEwNjU4LCAxMDY2NCwgMTA2NzMsIAorICAgIDEwNjgxLCAxMDY5MywgMTA3MDMsIDEwNzExLCAxMDcyMywgMTA3MzAsIDEwNzM4LCAxMDc1MCwgMTA3NTYsIDEwNzYyLCAKKyAgICAxMDc3MCwgMTA3NzgsIDEwNzg2LCAxMDc5MiwgMTA4MDIsIDEwODA5LCAxMDgxOSwgMTA4MjksIDEwODQyLCAxMDg1NiwgCisgICAgMTA4NzAsIDEwODgwLCAxMDg5MSwgMTA5MDIsIDEwOTE1LCAxMDkyOCwgMTA5NDIsIDEwOTU0LCAxMDk2NiwgMTA5NzksIAorICAgIDEwOTkyLCAxMTAwNCwgMTEwMTcsIDExMDI2LCAxMTAzNCwgMTEwMzksIDExMDQ0LCAxMTA0OSwgMTEwNTQsIDExMDU5LCAKKyAgICAxMTA2NCwgMTEwNjksIDExMDc0LCAxMTA3OSwgMTEwODQsIDExMDg5LCAxMTA5NCwgMTEwOTksIDExMTA0LCAxMTEwOSwgCisgICAgMTExMTQsIDExMTE5LCAxMTEyNCwgMTExMjksIDExMTM0LCAxMTEzOSwgMTExNDQsIDExMTQ5LCAxMTE1NCwgMTExNTksIAorICAgIDExMTY0LCAxMTE2OSwgMTExNzQsIDExMTc5LCAxMTE4NCwgMTExODksIDExMTk0LCAxMTE5OCwgMTEyMDMsIDExMjA4LCAKKyAgICAxMTIxMywgMTEyMTgsIDExMjIzLCAxMTIyNywgMTEyMzEsIDExMjM1LCAxMTIzOSwgMTEyNDMsIDExMjQ3LCAxMTI1MSwgCisgICAgMTEyNTUsIDExMjU5LCAxMTI2MywgMTEyNjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDExMjcyLCAxMTI3NywgMTEyODEsIDExMjg1LCAxMTI4OSwgMTEyOTMsIDExMjk3LCAxMTMwMSwgMTEzMDUsIDExMzA5LCAKKyAgICAxMTMxMywgMTEzMTcsIDExMzIyLCAxMTMyNiwgMTEzMzAsIDExMzM0LCAxMTMzOSwgMTEzNDMsIDExMzQ4LCAxMTM1MywgCisgICAgMTEzNTgsIDExMzYyLCAxMTM2NywgMTEzNzIsIDExMzc3LCAxMTM4MiwgMTEzODYsIDExMzkxLCAxMTM5NSwgMTE0MDAsIAorICAgIDExNDA1LCAxMTQwOSwgMTE0MTQsIDExNDIxLCAxMTQyNSwgMTE0MzAsIDExNDM0LCAxMTQzOCwgMTE0NDMsIDExNDQ3LCAKKyAgICAxMTQ1NCwgMTE0NjEsIDExNDY4LCAxMTQ3NCwgMTE0ODIsIDExNDkwLCAxMTQ5OSwgMTE1MDcsIDExNTE0LCAxMTUyMSwgCisgICAgMTE1MjksIDExNTM1LCAxMTU0MSwgMTE1NDcsIDExNTUzLCAxMTU2MCwgMTE1NjUsIDExNTY5LCAxMTU3NCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMTE1NzgsIDExNTgzLCAxMTU4OCwgMTE1OTMsIDExNTk4LCAxMTYwMywgMTE2MDgsIDExNjEzLCAxMTYxOCwgCisgICAgMTE2MjMsIDExNjI4LCAxMTYzMywgMTE2MzgsIDExNjQzLCAxMTY0OCwgMTE2NTMsIDExNjU4LCAxMTY2MywgMTE2NjgsIAorICAgIDExNjczLCAxMTY3OCwgMTE2ODMsIDExNjg4LCAxMTY5MywgMTE2OTgsIDExNzAzLCAxMTcwOCwgMTE3MTYsIDExNzIzLCAKKyAgICAxMTcyOSwgMTE3MzQsIDExNzQyLCAxMTc0OSwgMTE3NTUsIDExNzYyLCAxMTc2OCwgMTE3NzMsIDExNzgwLCAxMTc4NywgCisgICAgMTE3OTMsIDExNzk4LCAxMTgwMywgMTE4MDksIDExODE0LCAxMTgxOSwgMTE4MjUsIDAsIDAsIDExODMwLCAxMTgzNiwgCisgICAgMTE4NDIsIDExODQ4LCAxMTg1NCwgMTE4NjAsIDExODY2LCAxMTg3MSwgMTE4NzksIDExODg1LCAxMTg5MSwgMTE4OTcsIAorICAgIDExOTAzLCAxMTkwOSwgMTE5MTcsIDAsIDExOTIzLCAxMTkyOCwgMTE5MzMsIDExOTM4LCAxMTk0MywgMTE5NDgsIDExOTUzLCAKKyAgICAxMTk1OCwgMTE5NjMsIDExOTY4LCAxMTk3MywgMTE5NzgsIDExOTgzLCAxMTk4OCwgMTE5OTMsIDExOTk4LCAxMjAwMywgCisgICAgMTIwMDgsIDEyMDEzLCAxMjAxOCwgMTIwMjMsIDEyMDI4LCAxMjAzMywgMTIwMzgsIDEyMDQzLCAxMjA0OCwgMTIwNTMsIAorICAgIDEyMDU4LCAwLCAwLCAxMjA2MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNjI4NzIsIDYyODgxLCA2Mjg5MCwgNjI5MDEsIDYyOTA4LCA2MjkxMywgNjI5MTgsIDYyOTI1LCA2MjkzMiwgNjI5MzgsIAotICAgIDYyOTQzLCA2Mjk0OCwgNjI5NTMsIDYyOTU4LCA2Mjk2NSwgNjI5NzAsIDYyOTc1LCA2Mjk4MCwgNjI5OTEsIDYyOTk2LCAKLSAgICA2MzAwMSwgNjMwMDgsIDYzMDEzLCA2MzAyMCwgNjMwMjUsIDYzMDMwLCA2MzAzNywgNjMwNDQsIDYzMDUxLCA2MzA2MCwgCi0gICAgNjMwNjksIDYzMDc0LCA2MzA3OSwgNjMwODQsIDYzMDkxLCA2MzA5NiwgNjMxMDYsIDYzMTEzLCA2MzExOCwgNjMxMjMsIAotICAgIDYzMTI4LCA2MzEzMywgNjMxMzgsIDYzMTQzLCA2MzE1MiwgNjMxNTksIDYzMTY2LCA2MzE3MSwgNjMxNzgsIDYzMTgzLCAKLSAgICA2MzE5MCwgNjMxOTksIDYzMjEwLCA2MzIxNSwgNjMyMjQsIDYzMjI5LCA2MzIzNiwgNjMyNDUsIDYzMjU0LCA2MzI1OSwgCi0gICAgNjMyNjQsIDYzMjcxLCA2MzI3NywgNjMyODQsIDYzMjkxLCA2MzI5NSwgNjMyOTksIDYzMzAyLCA2MzMwNiwgNjMzMTAsIAotICAgIDYzMzE0LCA2MzMxOCwgNjMzMjIsIDYzMzI2LCA2MzMzMCwgNjMzMzMsIDYzMzM3LCA2MzM0MSwgNjMzNDUsIDYzMzQ5LCAKLSAgICA2MzM1MywgNjMzNTcsIDYzMzYwLCA2MzM2NCwgNjMzNjgsIDYzMzcxLCA2MzM3NSwgNjMzNzksIDYzMzgzLCA2MzM4NywgCi0gICAgNjMzOTEsIDYzMzk1LCA2MzM5OSwgNjM0MDMsIDYzNDA3LCA2MzQxMSwgNjM0MTUsIDYzNDE5LCA2MzQyMywgNjM0MjcsIAotICAgIDYzNDMxLCA2MzQzNSwgNjM0MzksIDYzNDQzLCA2MzQ0NywgNjM0NTEsIDYzNDU1LCA2MzQ1OSwgNjM0NjMsIDYzNDY3LCAKLSAgICA2MzQ3MSwgNjM0NzUsIDYzNDc5LCA2MzQ4MywgNjM0ODcsIDYzNDkxLCA2MzQ5NSwgNjM0OTksIDYzNTAzLCA2MzUwNywgCi0gICAgNjM1MTEsIDYzNTE1LCA2MzUxOSwgNjM1MjMsIDYzNTI3LCA2MzUzMSwgNjM1MzUsIDYzNTM5LCA2MzU0MywgNjM1NDcsIAotICAgIDYzNTUwLCA2MzU1NCwgNjM1NTgsIDYzNTYyLCA2MzU2NiwgNjM1NzAsIDYzNTc0LCA2MzU3OCwgNjM1ODIsIDYzNTg2LCAKLSAgICA2MzU5MCwgNjM1OTQsIDYzNTk4LCA2MzYwMiwgNjM2MDYsIDYzNjEwLCA2MzYxNCwgNjM2MTgsIDYzNjIyLCA2MzYyNiwgCi0gICAgNjM2MzAsIDYzNjM0LCA2MzYzOCwgNjM2NDIsIDYzNjQ2LCA2MzY1MCwgNjM2NTQsIDYzNjU4LCA2MzY2MiwgNjM2NjYsIAotICAgIDYzNjcwLCA2MzY3NCwgNjM2NzgsIDYzNjgyLCA2MzY4NiwgNjM2OTAsIDYzNjk0LCA2MzY5OCwgNjM3MDIsIDYzNzA2LCAKLSAgICA2MzcxMCwgNjM3MTQsIDYzNzE4LCA2MzcyMiwgNjM3MjYsIDYzNzMwLCA2MzczNCwgNjM3MzgsIDYzNzQyLCA2Mzc0NiwgCi0gICAgNjM3NTAsIDYzNzU0LCA2Mzc1OCwgNjM3NjIsIDYzNzY2LCA2Mzc3MCwgNjM3NzQsIDYzNzc4LCA2Mzc4MiwgNjM3ODYsIAotICAgIDYzNzkwLCA2Mzc5NCwgNjM3OTgsIDYzODAyLCA2MzgwNiwgNjM4MTAsIDYzODE0LCA2MzgxOCwgNjM4MjIsIDYzODI2LCAKLSAgICA2MzgzMCwgNjM4MzQsIDYzODM4LCA2Mzg0MiwgNjM4NDYsIDYzODUwLCA2Mzg1NCwgNjM4NTgsIDYzODYyLCA2Mzg2NiwgCi0gICAgNjM4NzAsIDYzODc0LCA2Mzg3OCwgNjM4ODIsIDYzODg2LCA2Mzg5MCwgNjM4OTQsIDYzODk4LCA2MzkwMiwgNjM5MDYsIAotICAgIDYzOTEwLCA2MzkxNCwgNjM5MTgsIDYzOTIyLCA2MzkyNiwgNjM5MzAsIDYzOTM0LCA2MzkzOCwgNjM5NDIsIDYzOTQ2LCAKLSAgICA2Mzk1MCwgNjM5NTQsIDYzOTU4LCA2Mzk2MiwgNjM5NjYsIDYzOTcwLCA2Mzk3NCwgNjM5NzgsIDYzOTgyLCA2Mzk4NiwgCi0gICAgNjM5OTAsIDYzOTk0LCA2Mzk5OCwgNjQwMDIsIDY0MDA2LCA2NDAxMCwgNjQwMTQsIDY0MDE4LCA2NDAyMSwgNjQwMjUsIAotICAgIDY0MDI5LCA2NDAzMywgNjQwMzcsIDY0MDQxLCA2NDA0NSwgNjQwNDksIDY0MDUzLCA2NDA1NywgNjQwNjEsIDY0MDY1LCAKLSAgICA2NDA2OSwgNjQwNzMsIDY0MDc3LCA2NDA4MSwgNjQwODUsIDY0MDg5LCA2NDA5MywgNjQwOTcsIDY0MTAxLCA2NDEwNSwgCi0gICAgNjQxMDksIDY0MTEzLCA2NDExNywgNjQxMjEsIDY0MTI1LCA2NDEyOSwgNjQxMzMsIDY0MTM3LCA2NDE0MSwgNjQxNDUsIAotICAgIDY0MTQ5LCA2NDE1MywgNjQxNTcsIDY0MTYxLCA2NDE2NSwgNjQxNjksIDY0MTczLCA2NDE3NywgNjQxODEsIDY0MTg1LCAKLSAgICA2NDE4OSwgNjQxOTMsIDY0MTk3LCA2NDIwMSwgNjQyMDUsIDY0MjA5LCA2NDIxMywgNjQyMTcsIDY0MjIxLCA2NDIyNSwgCi0gICAgNjQyMjksIDY0MjMzLCA2NDIzNywgNjQyNDEsIDY0MjQ1LCA2NDI0OSwgNjQyNTMsIDY0MjU3LCA2NDI2MSwgNjQyNjUsIAotICAgIDY0MjY5LCA2NDI3MywgNjQyNzcsIDY0MjgxLCA2NDI4NSwgNjQyODksIDY0MjkzLCA2NDI5NywgNjQzMDEsIDY0MzA1LCAKLSAgICA2NDMwOSwgNjQzMTMsIDY0MzE3LCA2NDMyMSwgNjQzMjUsIDY0MzI5LCA2NDMzMywgNjQzMzcsIDY0MzQxLCA2NDM0NSwgCi0gICAgNjQzNDksIDY0MzUzLCA2NDM1NywgNjQzNjEsIDY0MzY1LCA2NDM2OSwgNjQzNzMsIDY0Mzc3LCA2NDM4MSwgNjQzODUsIAotICAgIDY0Mzg5LCA2NDM5MywgNjQzOTcsIDY0NDAxLCA2NDQwNSwgNjQ0MDksIDY0NDEzLCA2NDQxNywgNjQ0MjEsIDY0NDI1LCAKLSAgICA2NDQyOSwgNjQ0MzMsIDY0NDM3LCA2NDQ0MSwgNjQ0NDUsIDY0NDQ5LCA2NDQ1MywgNjQ0NTcsIDY0NDYxLCA2NDQ2NSwgCi0gICAgNjQ0NjksIDY0NDczLCA2NDQ3NywgNjQ0ODEsIDY0NDg0LCA2NDQ4OCwgNjQ0OTIsIDY0NDk2LCA2NDUwMCwgNjQ1MDQsIAotICAgIDY0NTA4LCA2NDUxMiwgNjQ1MTYsIDY0NTIwLCA2NDUyNCwgNjQ1MjgsIDY0NTMyLCA2NDUzNiwgNjQ1NDAsIDY0NTQ0LCAKLSAgICA2NDU0OCwgNjQ1NTIsIDY0NTU2LCA2NDU2MCwgNjQ1NjQsIDY0NTY4LCA2NDU3MiwgNjQ1NzYsIDY0NTgwLCA2NDU4NCwgCi0gICAgNjQ1ODgsIDY0NTkyLCA2NDU5NiwgNjQ2MDAsIDY0NjA0LCA2NDYwOCwgNjQ2MTIsIDY0NjE2LCA2NDYyMCwgNjQ2MjQsIAotICAgIDY0NjI4LCA2NDYzMiwgNjQ2MzYsIDY0NjQwLCA2NDY0NCwgNjQ2NDgsIDY0NjUyLCA2NDY1NiwgNjQ2NjAsIDY0NjY0LCAKLSAgICA2NDY2OCwgNjQ2NzIsIDY0Njc2LCA2NDY4MCwgNjQ2ODQsIDY0Njg4LCA2NDY5MiwgNjQ2OTYsIDY0NzAwLCA2NDcwNCwgCi0gICAgNjQ3MDgsIDY0NzEyLCA2NDcxNiwgNjQ3MjAsIDY0NzI0LCA2NDcyOCwgNjQ3MzIsIDY0NzM2LCA2NDc0MCwgNjQ3NDQsIAotICAgIDY0NzQ4LCA2NDc1MiwgNjQ3NTYsIDY0NzYwLCA2NDc2NCwgNjQ3NjgsIDY0NzcyLCA2NDc3NiwgNjQ3ODAsIDY0Nzg0LCAKLSAgICA2NDc4OCwgNjQ3OTIsIDY0Nzk2LCA2NDgwMCwgNjQ4MDQsIDY0ODA4LCA2NDgxMiwgNjQ4MTYsIDY0ODIwLCA2NDgyNCwgCi0gICAgNjQ4MjgsIDY0ODMyLCA2NDgzNiwgNjQ4NDAsIDY0ODQzLCA2NDg0NywgNjQ4NTEsIDY0ODU1LCA2NDg1OSwgNjQ4NjMsIAotICAgIDY0ODY3LCA2NDg3MSwgNjQ4NzUsIDY0ODc5LCA2NDg4MywgNjQ4ODcsIDY0ODkxLCA2NDg5NSwgNjQ4OTksIDY0OTAzLCAKLSAgICA2NDkwNywgNjQ5MTEsIDY0OTE1LCA2NDkxOSwgNjQ5MjMsIDY0OTI3LCA2NDkzMSwgNjQ5MzUsIDY0OTM5LCA2NDk0MywgCi0gICAgNjQ5NDcsIDY0OTUxLCA2NDk1NSwgNjQ5NTksIDY0OTYzLCA2NDk2NywgNjQ5NzEsIDY0OTc1LCA2NDk3OSwgNjQ5ODMsIAotICAgIDY0OTg3LCA2NDk5MSwgNjQ5OTUsIDY0OTk5LCA2NTAwMywgNjUwMDcsIDY1MDExLCA2NTAxNSwgNjUwMTksIDY1MDIzLCAKLSAgICA2NTAyNywgNjUwMzEsIDY1MDM1LCA2NTAzOSwgNjUwNDMsIDY1MDQ3LCA2NTA1MSwgNjUwNTUsIDY1MDU5LCA2NTA2MywgCi0gICAgNjUwNjcsIDY1MDcxLCA2NTA3NSwgNjUwNzksIDY1MDgzLCA2NTA4NywgNjUwOTEsIDY1MDk1LCA2NTA5OSwgNjUxMDMsIAotICAgIDY1MTA3LCA2NTExMSwgNjUxMTUsIDY1MTE5LCA2NTEyMywgNjUxMjcsIDY1MTMxLCA2NTEzNSwgNjUxMzksIDY1MTQzLCAKLSAgICA2NTE0NywgNjUxNTEsIDY1MTU1LCA2NTE1OSwgNjUxNjMsIDY1MTY3LCA2NTE3MSwgNjUxNzUsIDY1MTc5LCA2NTE4MywgCi0gICAgNjUxODcsIDY1MTkxLCA2NTE5NSwgNjUxOTksIDY1MjAzLCA2NTIwNywgNjUyMTEsIDY1MjE1LCA2NTIxOSwgNjUyMjMsIAotICAgIDY1MjI3LCA2NTIzMSwgNjUyMzUsIDY1MjM5LCA2NTI0MywgNjUyNDcsIDY1MjUxLCA2NTI1NSwgNjUyNTksIDY1MjYzLCAKLSAgICA2NTI2NywgNjUyNzEsIDY1Mjc1LCA2NTI3OSwgNjUyODMsIDY1Mjg3LCA2NTI5MSwgNjUyOTUsIDY1Mjk5LCA2NTMwMywgCi0gICAgNjUzMDcsIDY1MzExLCA2NTMxNSwgNjUzMTksIDY1MzIzLCA2NTMyNywgNjUzMzEsIDY1MzM1LCA2NTMzOCwgNjUzNDIsIAotICAgIDY1MzQ2LCA2NTM1MCwgNjUzNTQsIDY1MzU4LCA2NTM2MiwgNjUzNjYsIDY1MzcwLCA2NTM3NCwgNjUzNzgsIDY1MzgyLCAKLSAgICA2NTM4NiwgNjUzOTAsIDY1Mzk0LCA2NTM5OCwgNjU0MDIsIDY1NDA2LCA2NTQxMCwgNjU0MTQsIDY1NDE4LCA2NTQyMiwgCi0gICAgNjU0MjYsIDY1NDMwLCA2NTQzNCwgNjU0MzgsIDY1NDQyLCA2NTQ0NiwgNjU0NTAsIDY1NDU0LCA2NTQ1OCwgNjU0NjIsIAotICAgIDY1NDY2LCA2NTQ3MCwgNjU0NzQsIDY1NDc4LCA2NTQ4MiwgNjU0ODYsIDY1NDkwLCA2NTQ5NCwgNjU0OTgsIDY1NTAyLCAKLSAgICA2NTUwNiwgNjU1MTAsIDY1NTE0LCA2NTUxOCwgNjU1MjIsIDY1NTI2LCA2NTUzMCwgNjU1MzQsIDY1NTM4LCA2NTU0MiwgCi0gICAgNjU1NDYsIDY1NTUwLCA2NTU1NCwgNjU1NTgsIDY1NTYyLCA2NTU2NiwgNjU1NzAsIDY1NTc0LCA2NTU3OCwgNjU1ODIsIAotICAgIDY1NTg2LCA2NTU5MCwgNjU1OTQsIDY1NTk4LCA2NTYwMiwgNjU2MDYsIDY1NjEwLCA2NTYxNCwgNjU2MTgsIDY1NjIyLCAKLSAgICA2NTYyNiwgNjU2MzAsIDY1NjM0LCA2NTYzOCwgNjU2NDIsIDY1NjQ2LCA2NTY1MCwgNjU2NTQsIDY1NjU4LCA2NTY2MiwgCi0gICAgNjU2NjYsIDY1NjcwLCA2NTY3NCwgNjU2NzgsIDY1NjgyLCA2NTY4NiwgNjU2OTAsIDY1Njk0LCA2NTY5OCwgNjU3MDIsIAotICAgIDY1NzA2LCA2NTcxMCwgNjU3MTQsIDY1NzE4LCA2NTcyMiwgNjU3MjYsIDY1NzMwLCA2NTczNCwgNjU3MzgsIDY1NzQyLCAKLSAgICA2NTc0NiwgNjU3NTAsIDY1NzU0LCA2NTc1OCwgNjU3NjIsIDY1NzY2LCA2NTc3MCwgNjU3NzQsIDY1Nzc4LCA2NTc4MiwgCi0gICAgNjU3ODYsIDY1NzkwLCA2NTc5MywgNjU3OTcsIDY1ODAxLCA2NTgwNSwgNjU4MDksIDY1ODEzLCA2NTgxNywgNjU4MjEsIAotICAgIDY1ODI1LCA2NTgyOSwgNjU4MzMsIDY1ODM3LCA2NTg0MSwgNjU4NDUsIDY1ODQ5LCA2NTg1MywgNjU4NTcsIDY1ODYxLCAKLSAgICA2NTg2NSwgNjU4NjksIDY1ODczLCA2NTg3NywgNjU4ODEsIDY1ODg1LCA2NTg4OSwgNjU4OTMsIDY1ODk3LCA2NTkwMSwgCi0gICAgNjU5MDUsIDY1OTA5LCA2NTkxMywgNjU5MTcsIDY1OTIxLCA2NTkyNSwgNjU5MjksIDY1OTMzLCA2NTkzNywgNjU5NDEsIAotICAgIDY1OTQ1LCA2NTk0OSwgNjU5NTMsIDY1OTU3LCA2NTk2MSwgNjU5NjUsIDY1OTY5LCA2NTk3MywgNjU5NzcsIDY1OTgxLCAKLSAgICA2NTk4NSwgNjU5ODksIDY1OTkzLCA2NTk5NywgNjYwMDEsIDY2MDA1LCA2NjAwOSwgNjYwMTMsIDY2MDE3LCA2NjAyMSwgCi0gICAgNjYwMjUsIDY2MDI5LCA2NjAzMywgNjYwMzcsIDY2MDQxLCA2NjA0NSwgNjYwNDksIDY2MDUzLCA2NjA1NywgNjYwNjEsIAotICAgIDY2MDY1LCA2NjA2OSwgNjYwNzMsIDY2MDc3LCA2NjA4MSwgNjYwODUsIDY2MDg5LCA2NjA5MywgNjYwOTcsIDY2MTAxLCAKLSAgICA2NjEwNSwgNjYxMDksIDY2MTEzLCA2NjExNywgNjYxMjEsIDY2MTI1LCA2NjEyOSwgNjYxMzMsIDY2MTM3LCA2NjE0MSwgCi0gICAgNjYxNDUsIDY2MTQ5LCA2NjE1MywgNjYxNTcsIDY2MTYxLCA2NjE2NSwgNjYxNjksIDY2MTczLCA2NjE3NywgNjYxODEsIAotICAgIDY2MTg1LCA2NjE4OSwgNjYxOTMsIDY2MTk3LCA2NjIwMSwgNjYyMDUsIDY2MjA5LCA2NjIxMywgNjYyMTcsIDY2MjIxLCAKLSAgICA2NjIyNSwgNjYyMjksIDY2MjMzLCA2NjIzNywgNjYyNDEsIDY2MjQ1LCA2NjI0OSwgNjYyNTMsIDY2MjU3LCA2NjI2MSwgCi0gICAgNjYyNjUsIDY2MjY5LCA2NjI3MywgNjYyNzcsIDY2MjgxLCA2NjI4NSwgNjYyODksIDY2MjkzLCA2NjI5NywgNjYzMDEsIAotICAgIDY2MzA1LCA2NjMwOSwgNjYzMTMsIDY2MzE3LCA2NjMyMSwgNjYzMjUsIDY2MzI5LCA2NjMzMywgNjYzMzcsIDY2MzQxLCAKLSAgICA2NjM0NSwgNjYzNDksIDY2MzUzLCA2NjM1NywgNjYzNjEsIDY2MzY1LCA2NjM2OSwgNjYzNzMsIDY2Mzc3LCA2NjM4MSwgCi0gICAgNjYzODUsIDY2Mzg5LCA2NjM5MywgNjYzOTYsIDY2NDAwLCA2NjQwNCwgNjY0MDgsIDY2NDEyLCA2NjQxNiwgNjY0MjAsIAotICAgIDY2NDI0LCA2NjQyOCwgNjY0MzIsIDY2NDM2LCA2NjQ0MCwgNjY0NDQsIDY2NDQ4LCA2NjQ1MiwgNjY0NTYsIDY2NDYwLCAKLSAgICA2NjQ2NCwgNjY0NjgsIDY2NDcyLCA2NjQ3NiwgNjY0ODAsIDY2NDg0LCA2NjQ4OCwgNjY0OTIsIDY2NDk2LCA2NjUwMCwgCi0gICAgNjY1MDQsIDY2NTA4LCA2NjUxMiwgNjY1MTYsIDY2NTIwLCA2NjUyNCwgNjY1MjgsIDY2NTMyLCA2NjUzNiwgNjY1NDAsIAotICAgIDY2NTQ0LCA2NjU0OCwgNjY1NTIsIDY2NTU2LCA2NjU2MCwgNjY1NjQsIDY2NTY4LCA2NjU3MiwgNjY1NzYsIDY2NTgwLCAKLSAgICA2NjU4NCwgNjY1ODgsIDY2NTkyLCA2NjU5NiwgNjY2MDAsIDY2NjA0LCA2NjYwOCwgNjY2MTIsIDY2NjE2LCA2NjYyMCwgCi0gICAgNjY2MjQsIDY2NjI4LCA2NjYzMiwgNjY2MzYsIDY2NjQwLCA2NjY0NCwgNjY2NDgsIDY2NjUyLCA2NjY1NiwgNjY2NjAsIAotICAgIDY2NjY0LCA2NjY2OCwgNjY2NzIsIDY2Njc2LCA2NjY4MCwgNjY2ODQsIDY2Njg4LCA2NjY5MiwgNjY2OTYsIDY2NzAwLCAKLSAgICA2NjcwNCwgNjY3MDgsIDY2NzEyLCA2NjcxNiwgNjY3MjAsIDY2NzI0LCA2NjcyOCwgNjY3MzIsIDY2NzM2LCA2Njc0MCwgCi0gICAgNjY3NDQsIDY2NzQ4LCA2Njc1MiwgNjY3NTYsIDY2NzYwLCA2Njc2NCwgNjY3NjgsIDY2NzcyLCA2Njc3NiwgNjY3ODAsIAotICAgIDY2Nzg0LCA2Njc4OCwgNjY3OTIsIDY2Nzk2LCA2NjgwMCwgNjY4MDQsIDY2ODA4LCA2NjgxMiwgNjY4MTYsIDY2ODIwLCAKLSAgICA2NjgyNCwgNjY4MjgsIDY2ODMyLCA2NjgzNiwgNjY4NDAsIDY2ODQ0LCA2Njg0OCwgNjY4NTIsIDY2ODU2LCA2Njg2MCwgCi0gICAgNjY4NjQsIDY2ODY4LCA2Njg3MiwgNjY4NzYsIDY2ODgwLCA2Njg4NCwgNjY4ODgsIDY2ODkyLCA2Njg5NiwgNjY5MDAsIAotICAgIDY2OTA0LCA2NjkwOCwgNjY5MTIsIDY2OTE2LCA2NjkyMCwgNjY5MjQsIDY2OTI4LCA2NjkzMiwgNjY5MzYsIDY2OTQwLCAKLSAgICA2Njk0NCwgNjY5NDgsIDY2OTUyLCA2Njk1NiwgNjY5NjAsIDY2OTY0LCA2Njk2OCwgNjY5NzIsIDY2OTc2LCA2Njk4MCwgCi0gICAgNjY5ODQsIDY2OTg4LCA2Njk5MiwgNjY5OTYsIDY3MDAwLCA2NzAwNCwgNjcwMDgsIDY3MDEyLCA2NzAxNiwgNjcwMjAsIAotICAgIDY3MDI0LCA2NzAyOCwgNjcwMzIsIDY3MDM2LCA2NzA0MCwgNjcwNDQsIDY3MDQ4LCA2NzA1MiwgNjcwNTYsIDY3MDYwLCAKLSAgICA2NzA2NCwgNjcwNjgsIDY3MDcyLCA2NzA3NiwgNjcwODAsIDY3MDg0LCA2NzA4OCwgNjcwOTIsIDY3MDk2LCA2NzEwMCwgCi0gICAgNjcxMDQsIDY3MTA4LCA2NzExMiwgNjcxMTYsIDY3MTIwLCA2NzEyNCwgNjcxMjgsIDY3MTMyLCA2NzEzNiwgNjcxNDAsIAotICAgIDY3MTQ0LCA2NzE0OCwgNjcxNTIsIDY3MTU1LCA2NzE1OSwgNjcxNjMsIDY3MTY3LCA2NzE3MSwgNjcxNzUsIDY3MTc5LCAKLSAgICA2NzE4MywgNjcxODcsIDY3MTkxLCA2NzE5NSwgNjcxOTksIDY3MjAzLCA2NzIwNywgNjcyMTEsIDY3MjE1LCA2NzIxOSwgCi0gICAgNjcyMjMsIDY3MjI3LCA2NzIzMSwgNjcyMzUsIDY3MjM5LCA2NzI0MywgNjcyNDcsIDY3MjUxLCA2NzI1NSwgNjcyNTksIAotICAgIDY3MjYzLCA2NzI2NywgNjcyNzEsIDY3Mjc1LCA2NzI3OSwgNjcyODMsIDY3Mjg3LCA2NzI5MSwgNjcyOTUsIDY3Mjk5LCAKLSAgICA2NzMwMywgNjczMDcsIDY3MzExLCA2NzMxNSwgNjczMTksIDY3MzIzLCA2NzMyNywgNjczMzEsIDY3MzM1LCA2NzMzOSwgCi0gICAgNjczNDMsIDY3MzQ3LCA2NzM1MSwgNjczNTUsIDY3MzU5LCA2NzM2MywgNjczNjcsIDY3MzcxLCA2NzM3NSwgNjczNzksIAotICAgIDY3MzgzLCA2NzM4NywgNjczOTEsIDY3Mzk1LCA2NzM5OSwgNjc0MDMsIDY3NDA3LCA2NzQxMSwgNjc0MTUsIDY3NDE5LCAKLSAgICA2NzQyMywgNjc0MjcsIDY3NDMxLCA2NzQzNSwgNjc0MzksIDY3NDQzLCA2NzQ0NywgNjc0NTEsIDY3NDU1LCA2NzQ1OSwgCi0gICAgNjc0NjMsIDY3NDY3LCA2NzQ3MSwgNjc0NzUsIDY3NDc5LCA2NzQ4MywgNjc0ODcsIDY3NDkxLCA2NzQ5NSwgNjc0OTksIAotICAgIDY3NTAzLCA2NzUwNywgNjc1MTEsIDY3NTE1LCA2NzUxOSwgNjc1MjMsIDY3NTI3LCA2NzUzMSwgNjc1MzUsIDY3NTM5LCAKLSAgICA2NzU0MywgNjc1NDcsIDY3NTUxLCA2NzU1NSwgNjc1NTksIDY3NTYzLCA2NzU2NywgNjc1NzEsIDY3NTc1LCA2NzU3OSwgCi0gICAgNjc1ODMsIDY3NTg3LCA2NzU5MSwgNjc1OTUsIDY3NTk5LCA2NzYwMywgNjc2MDcsIDY3NjExLCA2NzYxNSwgNjc2MTksIAotICAgIDY3NjIzLCA2NzYyNywgNjc2MzEsIDY3NjM1LCA2NzYzOSwgNjc2NDMsIDY3NjQ3LCA2NzY1MSwgNjc2NTUsIDY3NjU5LCAKLSAgICA2NzY2MywgNjc2NjcsIDY3NjcxLCA2NzY3NSwgNjc2NzksIDY3NjgzLCA2NzY4NywgNjc2OTEsIDY3Njk1LCA2NzY5OSwgCi0gICAgNjc3MDMsIDY3NzA3LCA2NzcxMSwgNjc3MTUsIDY3NzE5LCA2NzcyMywgNjc3MjcsIDY3NzMxLCA2NzczNSwgNjc3MzksIAotICAgIDY3NzQzLCA2Nzc0NywgNjc3NTEsIDY3NzU1LCA2Nzc1OSwgNjc3NjMsIDY3NzY3LCA2Nzc3MSwgNjc3NzUsIDY3Nzc5LCAKLSAgICA2Nzc4MywgNjc3ODcsIDY3NzkxLCA2Nzc5NSwgNjc3OTksIDY3ODAzLCA2NzgwNywgNjc4MTEsIDY3ODE1LCA2NzgxOSwgCi0gICAgNjc4MjMsIDY3ODI3LCA2NzgzMSwgNjc4MzUsIDY3ODM5LCA2Nzg0MywgNjc4NDcsIDY3ODUxLCA2Nzg1NSwgNjc4NTksIAotICAgIDY3ODYzLCA2Nzg2NywgNjc4NzEsIDY3ODc1LCA2Nzg3OSwgNjc4ODMsIDY3ODg3LCA2Nzg5MSwgNjc4OTUsIDY3ODk5LCAKLSAgICA2NzkwMywgNjc5MDcsIDY3OTExLCA2NzkxNSwgNjc5MTksIDY3OTIzLCA2NzkyNywgNjc5MzEsIDY3OTM1LCAwLCAwLCAwLCAKLSAgICA2NzkzOSwgNjc5NDMsIDY3OTQ3LCA2Nzk1MSwgNjc5NTUsIDY3OTU5LCA2Nzk2MywgNjc5NjcsIDY3OTcxLCA2Nzk3NSwgCi0gICAgNjc5NzksIDY3OTgzLCA2Nzk4NywgNjc5OTEsIDY3OTk1LCA2Nzk5OSwgNjgwMDMsIDY4MDA3LCA2ODAxMSwgNjgwMTUsIAotICAgIDY4MDE5LCA2ODAyMywgNjgwMjcsIDY4MDMxLCA2ODAzNSwgNjgwMzksIDY4MDQzLCA2ODA0NywgNjgwNTEsIDY4MDU1LCAKLSAgICA2ODA1OSwgNjgwNjMsIDY4MDY3LCA2ODA3MSwgNjgwNzUsIDY4MDc5LCA2ODA4MywgNjgwODcsIDY4MDkxLCA2ODA5NSwgCi0gICAgNjgwOTksIDY4MTAzLCA2ODEwNywgNjgxMTEsIDY4MTE1LCA2ODExOSwgNjgxMjMsIDY4MTI3LCA2ODEzMSwgNjgxMzUsIAotICAgIDY4MTM5LCA2ODE0MywgNjgxNDcsIDY4MTUxLCA2ODE1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjgxNTksIAotICAgIDY4MTY0LCA2ODE2OCwgNjgxNzMsIDY4MTc4LCA2ODE4MywgNjgxODgsIDY4MTkzLCA2ODE5NywgNjgyMDIsIDY4MjA3LCAKLSAgICA2ODIxMiwgNjgyMTcsIDY4MjIyLCA2ODIyNywgNjgyMzIsIDY4MjM2LCA2ODI0MCwgNjgyNDUsIDY4MjUwLCA2ODI1NSwgCi0gICAgNjgyNjAsIDY4MjY1LCA2ODI2OSwgNjgyNzQsIDY4Mjc5LCA2ODI4NCwgNjgyODksIDY4Mjk0LCA2ODI5OCwgNjgzMDMsIAotICAgIDY4MzA3LCA2ODMxMiwgNjgzMTYsIDY4MzIxLCA2ODMyNSwgNjgzMjksIDY4MzMzLCA2ODMzOCwgNjgzNDMsIDY4MzQ4LCAKLSAgICA2ODM1NiwgNjgzNjQsIDY4MzcyLCA2ODM4MCwgNjgzODcsIDY4Mzk1LCA2ODQwMSwgNjg0MDksIDY4NDEzLCA2ODQxNywgCi0gICAgNjg0MjEsIDY4NDI1LCA2ODQyOSwgNjg0MzMsIDY4NDM3LCA2ODQ0MSwgNjg0NDUsIDY4NDQ5LCA2ODQ1MywgNjg0NTcsIAotICAgIDY4NDYxLCA2ODQ2NSwgNjg0NjksIDY4NDczLCA2ODQ3NywgNjg0ODEsIDY4NDg1LCA2ODQ4OSwgNjg0OTMsIDY4NDk3LCAKLSAgICA2ODUwMSwgNjg1MDUsIDY4NTA5LCA2ODUxMywgNjg1MTcsIDY4NTIxLCA2ODUyNSwgNjg1MjksIDY4NTMzLCA2ODUzNywgCi0gICAgNjg1NDEsIDY4NTQ1LCA2ODU0OSwgNjg1NTMsIDY4NTU2LCA2ODU2MCwgNjg1NjQsIDY4NTY4LCA2ODU3MiwgNjg1NzYsIAotICAgIDY4NTgwLCA2ODU4NCwgNjg1ODgsIDY4NTkyLCA2ODU5NiwgNjg2MDAsIDY4NjA0LCA2ODYwOCwgNjg2MTIsIDY4NjE2LCAKLSAgICA2ODYyMCwgNjg2MjQsIDY4NjI4LCA2ODYzMiwgNjg2MzYsIDY4NjQwLCA2ODY0NCwgNjg2NDgsIDY4NjUyLCA2ODY1NiwgCi0gICAgNjg2NjAsIDY4NjY0LCA2ODY2OCwgNjg2NzIsIDY4Njc2LCA2ODY4MCwgNjg2ODQsIDY4Njg4LCA2ODY5MiwgNjg2OTYsIAotICAgIDY4NzAwLCA2ODcwMywgNjg3MDcsIDY4NzExLCA2ODcxNCwgNjg3MTgsIDY4NzIyLCA2ODcyNiwgNjg3MjksIDY4NzMzLCAKLSAgICA2ODczNywgNjg3NDEsIDY4NzQ1LCA2ODc0OSwgNjg3NTMsIDY4NzU3LCA2ODc2MSwgNjg3NjUsIDY4NzY5LCA2ODc3MywgCi0gICAgNjg3NzcsIDY4NzgxLCA2ODc4NSwgNjg3ODgsIDY4NzkyLCA2ODc5NiwgNjg4MDAsIDY4ODA0LCA2ODgwOCwgNjg4MTIsIAotICAgIDY4ODE2LCA2ODgyMCwgNjg4MjQsIDY4ODI3LCA2ODgzMCwgNjg4MzQsIDY4ODM4LCA2ODg0MiwgNjg4NDUsIDY4ODQ4LCAKLSAgICA2ODg1MiwgNjg4NTYsIDY4ODYwLCA2ODg2NCwgNjg4NjgsIDY4ODcyLCA2ODg3NiwgNjg4ODAsIDY4ODg0LCA2ODg4OCwgCi0gICAgNjg4OTIsIDY4ODk2LCA2ODkwMCwgNjg5MDQsIDY4OTA4LCA2ODkxMiwgNjg5MTYsIDY4OTIwLCA2ODkyNCwgNjg5MjgsIAotICAgIDY4OTMyLCA2ODkzNiwgNjg5NDAsIDY4OTQ0LCA2ODk0OCwgNjg5NTIsIDY4OTU2LCA2ODk2MCwgNjg5NjQsIDY4OTY4LCAKLSAgICA2ODk3MiwgNjg5NzYsIDY4OTgwLCA2ODk4NCwgNjg5ODgsIDY4OTkyLCA2ODk5NiwgNjg5OTksIDY5MDAzLCA2OTAwNywgCi0gICAgNjkwMTEsIDY5MDE1LCA2OTAxOSwgNjkwMjMsIDY5MDI3LCA2OTAzMSwgNjkwMzUsIDY5MDM5LCA2OTA0MywgNjkwNDcsIAotICAgIDY5MDUxLCA2OTA1NSwgNjkwNTksIDY5MDYzLCA2OTA2NywgNjkwNzEsIDY5MDc1LCA2OTA3OSwgNjkwODMsIDY5MDg3LCAKLSAgICA2OTA5MSwgNjkwOTUsIDY5MDk5LCA2OTEwMywgNjkxMDcsIDY5MTExLCA2OTExNSwgNjkxMTksIDY5MTIzLCA2OTEyNywgCi0gICAgNjkxMzEsIDY5MTM1LCA2OTEzOSwgNjkxNDMsIDY5MTQ2LCA2OTE1MCwgNjkxNTQsIDY5MTU4LCA2OTE2MiwgNjkxNjYsIAotICAgIDY5MTcwLCA2OTE3NCwgNjkxNzgsIDY5MTgyLCA2OTE4NiwgNjkxOTAsIDY5MTk0LCA2OTE5OCwgNjkyMDIsIDY5MjA2LCAKLSAgICA2OTIxMCwgNjkyMTMsIDY5MjE3LCA2OTIyMSwgNjkyMjUsIDY5MjI5LCA2OTIzMywgNjkyMzcsIDY5MjQxLCA2OTI0NSwgCi0gICAgNjkyNDksIDY5MjUzLCA2OTI1NywgNjkyNjEsIDY5MjY1LCA2OTI2OSwgNjkyNzMsIDY5Mjc3LCA2OTI4MSwgNjkyODUsIAotICAgIDY5Mjg5LCA2OTI5MywgNjkyOTcsIDY5MzAwLCA2OTMwNCwgNjkzMDgsIDY5MzEyLCA2OTMxNiwgNjkzMjAsIDY5MzI0LCAKLSAgICA2OTMyOCwgNjkzMzIsIDY5MzM2LCA2OTM0MCwgNjkzNDQsIDY5MzQ4LCA2OTM1MiwgNjkzNTYsIDY5MzYwLCA2OTM2NCwgCi0gICAgNjkzNjgsIDY5MzcyLCA2OTM3NiwgNjkzODAsIDY5Mzg0LCA2OTM4OCwgNjkzOTIsIDY5Mzk2LCA2OTQwMCwgNjk0MDQsIAotICAgIDY5NDA4LCA2OTQxMiwgNjk0MTYsIDY5NDIwLCA2OTQyNCwgNjk0MjgsIDY5NDMyLCA2OTQzNiwgNjk0NDAsIDY5NDQ0LCAKLSAgICA2OTQ0OCwgNjk0NTIsIDY5NDU2LCA2OTQ2MCwgNjk0NjQsIDY5NDY4LCA2OTQ3MiwgNjk0NzUsIDY5NDgwLCA2OTQ4NCwgCi0gICAgNjk0OTAsIDY5NDk1LCA2OTUwMSwgNjk1MDUsIDY5NTA5LCA2OTUxMywgNjk1MTcsIDY5NTIxLCA2OTUyNSwgNjk1MjksIAotICAgIDY5NTMzLCA2OTUzNywgNjk1NDEsIDY5NTQ1LCA2OTU0OSwgNjk1NTMsIDY5NTU3LCA2OTU2MCwgNjk1NjMsIDY5NTY2LCAKLSAgICA2OTU2OSwgNjk1NzIsIDY5NTc1LCA2OTU3OCwgNjk1ODEsIDY5NTg0LCA2OTU4OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNjk1OTUsIDY5NjAwLCA2OTYwNSwgNjk2MTAsIDY5NjE1LCAKLSAgICA2OTYyMiwgNjk2MjksIDY5NjM0LCA2OTYzOSwgNjk2NDQsIDY5NjQ5LCA2OTY1NiwgNjk2NjMsIDY5NjcwLCA2OTY3NywgCi0gICAgNjk2ODQsIDY5NjkxLCA2OTcwMSwgNjk3MTEsIDY5NzE4LCA2OTcyNSwgNjk3MzIsIDY5NzM5LCA2OTc0NSwgNjk3NTEsIAotICAgIDY5NzYwLCA2OTc2OSwgNjk3NzYsIDY5NzgzLCA2OTc5NCwgNjk4MDUsIDY5ODEwLCA2OTgxNSwgNjk4MjIsIDY5ODI5LCAKLSAgICA2OTgzNiwgNjk4NDMsIDY5ODUwLCA2OTg1NywgNjk4NjQsIDY5ODcxLCA2OTg3NywgNjk4ODMsIDY5ODg5LCA2OTg5NSwgCi0gICAgNjk5MDIsIDY5OTA5LCA2OTkxNCwgNjk5MTgsIDY5OTI1LCA2OTkzMiwgNjk5MzksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDY5OTQzLCA2OTk0NywgNjk5NTEsIDY5OTU0LCA2OTk1NywgNjk5NjIsIDY5OTY3LCA2OTk3MiwgNjk5NzcsIDY5OTgyLCAKLSAgICA2OTk4NywgNjk5OTIsIDY5OTk3LCA3MDAwMiwgNzAwMDcsIDcwMDE2LCA3MDAyNSwgNzAwMzAsIDcwMDM1LCA3MDA0MCwgCi0gICAgNzAwNDUsIDcwMDUwLCA3MDA1NSwgNzAwNjAsIDcwMDY1LCA3MDA3MCwgNzAwNzUsIDcwMDgwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA3MDA4NSwgNzAwODgsIDcwMDkxLCA3MDA5NCwgNzAwOTgsIDcwMTAyLCA3MDEwNiwgNzAxMTAsIDcwMTEzLCAKLSAgICA3MDExNywgNzAxMjAsIDcwMTI0LCA3MDEyNywgNzAxMzEsIDcwMTM1LCA3MDEzOSwgNzAxNDMsIDcwMTQ3LCA3MDE1MSwgCi0gICAgNzAxNTUsIDcwMTU4LCA3MDE2MiwgNzAxNjYsIDcwMTcwLCA3MDE3NCwgNzAxNzgsIDcwMTgyLCA3MDE4NiwgNzAxOTAsIAotICAgIDcwMTk0LCA3MDE5OCwgNzAyMDIsIDcwMjA2LCA3MDIxMCwgNzAyMTQsIDcwMjE3LCA3MDIyMSwgNzAyMjUsIDcwMjI5LCAKLSAgICA3MDIzMywgNzAyMzcsIDcwMjQxLCA3MDI0NSwgNzAyNDksIDcwMjUzLCA3MDI1NywgNzAyNjEsIDcwMjY1LCA3MDI2OSwgCi0gICAgNzAyNzMsIDcwMjc3LCA3MDI4MSwgNzAyODUsIDcwMjg5LCA3MDI5MywgNzAyOTcsIDcwMzAxLCA3MDMwNSwgNzAzMDksIAotICAgIDcwMzEzLCA3MDMxNiwgNzAzMjAsIDcwMzI0LCA3MDMyOCwgNzAzMzIsIDcwMzM2LCA3MDM0MCwgNzAzNDQsIDcwMzQ3LCAKLSAgICA3MDM1MSwgNzAzNTUsIDcwMzU5LCA3MDM2MywgNzAzNjcsIDcwMzcxLCA3MDM3NSwgNzAzNzksIDcwMzgzLCA3MDM4NywgCi0gICAgNzAzOTEsIDcwMzk1LCA3MDQwMCwgNzA0MDUsIDcwNDA4LCA3MDQxMywgNzA0MTYsIDcwNDE5LCA3MDQyMiwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNzA0MjYsIDcwNDM1LCA3MDQ0NCwgNzA0NTMsIDcwNDYyLCA3MDQ3MSwgNzA0ODAsIDcwNDg5LCAKLSAgICA3MDQ5OCwgNzA1MDYsIDcwNTEzLCA3MDUyMSwgNzA1MjgsIDcwNTM2LCA3MDU0NiwgNzA1NTUsIDcwNTY1LCA3MDU3NCwgCi0gICAgNzA1ODQsIDcwNTkyLCA3MDU5OSwgNzA2MDcsIDcwNjE0LCA3MDYyMiwgNzA2MjcsIDcwNjMyLCA3MDYzNywgNzA2NDYsIAotICAgIDcwNjUyLCA3MDY1OCwgNzA2NjUsIDcwNjc0LCA3MDY4MiwgNzA2OTAsIDcwNjk4LCA3MDcwNSwgNzA3MTIsIDcwNzE5LCAKLSAgICA3MDcyNiwgNzA3MzEsIDcwNzM2LCA3MDc0MSwgNzA3NDYsIDcwNzUxLCA3MDc1NiwgNzA3NjEsIDcwNzY2LCA3MDc3NCwgCi0gICAgNzA3ODIsIDcwNzg4LCA3MDc5MywgNzA3OTgsIDcwODAzLCA3MDgwOCwgNzA4MTMsIDcwODE4LCA3MDgyMywgNzA4MjgsIAotICAgIDcwODMzLCA3MDg0MSwgNzA4NDksIDcwODU0LCA3MDg1OSwgNzA4NjksIDcwODc5LCA3MDg4NiwgNzA4OTMsIDcwOTAyLCAKLSAgICA3MDkxMSwgNzA5MjMsIDcwOTM1LCA3MDk0MSwgNzA5NDcsIDcwOTU1LCA3MDk2MywgNzA5NzMsIDcwOTgzLCA3MDk5MCwgCi0gICAgNzA5OTcsIDcxMDAyLCA3MTAwNywgNzEwMTksIDcxMDMxLCA3MTAzOSwgNzEwNDcsIDcxMDU3LCA3MTA2NywgNzEwNzksIAotICAgIDcxMDkxLCA3MTEwMCwgNzExMDksIDcxMTE2LCA3MTEyMywgNzExMzAsIDcxMTM3LCA3MTE0NiwgNzExNTUsIDcxMTYwLCAKLSAgICA3MTE2NSwgNzExNzIsIDcxMTc5LCA3MTE4NiwgNzExOTMsIDcxMjA1LCA3MTIxNywgNzEyMjIsIDcxMjI3LCA3MTIzMiwgCi0gICAgNzEyMzcsIDcxMjQyLCA3MTI0NywgNzEyNTIsIDcxMjU3LCA3MTI2MSwgNzEyNjYsIDcxMjcxLCA3MTI3NiwgNzEyODEsIAotICAgIDcxMjg2LCA3MTI5MiwgNzEyOTcsIDcxMzAyLCA3MTMwOSwgNzEzMTYsIDcxMzIzLCA3MTMzMCwgNzEzMzcsIDcxMzQ2LCAKLSAgICA3MTM1NSwgNzEzNjEsIDcxMzY3LCA3MTM3MywgNzEzNzksIDcxMzg1LCA3MTM5MSwgNzEzOTgsIDcxNDA1LCA3MTQxMiwgCi0gICAgNzE0MTYsIDcxNDIzLCA3MTQyOCwgNzE0MzMsIDcxNDQwLCAwLCA3MTQ1MywgNzE0NjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcxNDY5LCA3MTQ3OCwgNzE0ODcsIDcxNDk2LCA3MTUwNSwgNzE1MTQsIDcxNTIzLCAKLSAgICA3MTUzMiwgNzE1NDEsIDcxNTUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxMjA2NywgMCwgMTIwNzYsIDEyMDgzLCAxMjA5MSwgMTIxMDMsIDEyMTEwLCAxMjExNywgMTIxMjQsIDEyMTM1LCAxMjE0NiwgCisgICAgMTIxNTMsIDEyMTYxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjE2NywgMTIxNzIsIDEyMTc3LCAxMjE4MiwgMTIxODcsIAorICAgIDEyMTkyLCAxMjE5NywgMTIyMDIsIDEyMjA3LCAxMjIxMiwgMTIyMTcsIDEyMjIyLCAxMjIyNywgMTIyMzEsIDEyMjM1LCAKKyAgICAxMjIzOSwgMTIyNDQsIDEyMjUwLCAxMjI1NiwgMTIyNjIsIDEyMjY3LCAxMjI3MiwgMTIyNzcsIDEyMjgyLCAxMjI4OCwgCisgICAgMTIyOTcsIDEyMzA1LCAwLCAxMjMxMSwgMTIzMTcsIDEyMzIxLCAxMjMyNSwgMTIzMjksIDEyMzM0LCAxMjMzNywgMTIzNDEsIAorICAgIDEyMzQ0LCAxMjM0OCwgMTIzNTEsIDEyMzU1LCAxMjM1OSwgMTIzNjMsIDEyMzY4LCAxMjM3MywgMTIzNzYsIDEyMzgwLCAKKyAgICAxMjM4NSwgMTIzOTAsIDEyMzkzLCAxMjM5NywgMTI0MDAsIDEyNDA0LCAxMjQwOCwgMTI0MTIsIDEyNDE2LCAxMjQyMCwgCisgICAgMTI0MjQsIDEyNDI4LCAxMjQzMiwgMTI0MzYsIDEyNDQwLCAxMjQ0NCwgMTI0NDgsIDEyNDUyLCAxMjQ1NiwgMTI0NjAsIAorICAgIDEyNDY0LCAxMjQ2OCwgMTI0NzIsIDEyNDc1LCAxMjQ3OSwgMTI0ODIsIDEyNDg2LCAxMjQ5MCwgMTI0OTQsIDEyNDk3LCAKKyAgICAxMjUwMCwgMTI1MDMsIDEyNTA3LCAxMjUxMSwgMTI1MTUsIDEyNTE5LCAxMjUyMywgMTI1MjcsIDEyNTMxLCAxMjUzNCwgCisgICAgMTI1MzcsIDEyNTQyLCAxMjU0NywgMTI1NTEsIDEyNTU1LCAxMjU2MCwgMTI1NjQsIDEyNTY5LCAxMjU3MywgMTI1NzgsIAorICAgIDEyNTgzLCAxMjU4OSwgMTI1OTUsIDEyNjAxLCAxMjYwNSwgMTI2MTAsIDEyNjE2LCAxMjYyMiwgMTI2MjYsIDEyNjMxLCAKKyAgICAxMjYzNSwgMTI2NDEsIDEyNjQ2LCAxMjY0OSwgMTI2NTUsIDEyNjYxLCAxMjY2NiwgMTI2NzEsIDEyNjc4LCAxMjY4MywgCisgICAgMTI2ODgsIDEyNjkyLCAxMjY5NiwgMTI3MDAsIDEyNzA0LCAxMjcwOCwgMTI3MTIsIDEyNzE2LCAxMjcyMCwgMTI3MjUsIAorICAgIDEyNzMwLCAxMjczNSwgMTI3NDEsIDEyNzQ0LCAxMjc0OCwgMTI3NTIsIDEyNzU1LCAxMjc1OCwgMTI3NjEsIDEyNzY0LCAKKyAgICAxMjc2NywgMTI3NzAsIDEyNzczLCAxMjc3NiwgMTI3NzksIDEyNzgzLCAxMjc5MCwgMTI3OTUsIDEyNzk5LCAxMjgwMywgCisgICAgMTI4MDcsIDEyODExLCAwLCAxMjgxNSwgMTI4MTksIDEyODIzLCAxMjgyNywgMTI4MzEsIDEyODM3LCAxMjg0MSwgMCwgCisgICAgMTI4NDUsIDEyODQ5LCAxMjg1MywgMCwgMTI4NTcsIDEyODYwLCAxMjg2NCwgMTI4NjcsIDEyODcxLCAxMjg3NCwgMTI4NzgsIAorICAgIDEyODgyLCAwLCAwLCAxMjg4NiwgMTI4ODksIDAsIDAsIDEyODkzLCAxMjg5NiwgMTI5MDAsIDEyOTAzLCAxMjkwNywgCisgICAgMTI5MTEsIDEyOTE1LCAxMjkxOSwgMTI5MjMsIDEyOTI3LCAxMjkzMSwgMTI5MzUsIDEyOTM5LCAxMjk0MywgMTI5NDcsIAorICAgIDEyOTUxLCAxMjk1NSwgMTI5NTksIDEyOTYzLCAxMjk2NywgMTI5NzEsIDEyOTc1LCAwLCAxMjk3OCwgMTI5ODEsIDEyOTg1LCAKKyAgICAxMjk4OSwgMTI5OTMsIDEyOTk2LCAxMjk5OSwgMCwgMTMwMDIsIDAsIDAsIDAsIDEzMDA2LCAxMzAxMCwgMTMwMTQsIAorICAgIDEzMDE3LCAwLCAwLCAxMzAyMCwgMTMwMjQsIDEzMDI4LCAxMzAzMywgMTMwMzcsIDEzMDQyLCAxMzA0NiwgMTMwNTEsIAorICAgIDEzMDU2LCAwLCAwLCAxMzA2MiwgMTMwNjYsIDAsIDAsIDEzMDcxLCAxMzA3NSwgMTMwODAsIDEzMDg0LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAxMzA5MCwgMCwgMCwgMCwgMCwgMTMwOTYsIDEzMTAwLCAwLCAxMzEwNCwgMTMxMDgsIDEzMTEzLCAKKyAgICAxMzExOCwgMTMxMjMsIDAsIDAsIDEzMTI5LCAxMzEzMywgMTMxMzYsIDEzMTM5LCAxMzE0MiwgMTMxNDUsIDEzMTQ4LCAKKyAgICAxMzE1MSwgMTMxNTQsIDEzMTU3LCAxMzE2MCwgMTMxNjksIDEzMTc4LCAxMzE4MiwgMTMxODYsIDEzMTkyLCAxMzE5OCwgCisgICAgMTMyMDQsIDEzMjEwLCAxMzIyNCwgMTMyMzEsIDEzMjM0LCAwLCAwLCAwLCAwLCAwLCAxMzIzOCwgMTMyNDQsIDEzMjQ4LCAwLCAKKyAgICAxMzI1MiwgMTMyNTUsIDEzMjU5LCAxMzI2MiwgMTMyNjYsIDEzMjY5LCAwLCAwLCAwLCAwLCAxMzI3MywgMTMyNzcsIDAsIDAsIAorICAgIDEzMjgxLCAxMzI4NSwgMTMyODksIDEzMjkyLCAxMzI5NiwgMTMzMDAsIDEzMzA0LCAxMzMwOCwgMTMzMTIsIDEzMzE2LCAKKyAgICAxMzMyMCwgMTMzMjQsIDEzMzI4LCAxMzMzMiwgMTMzMzYsIDEzMzQwLCAxMzM0NCwgMTMzNDgsIDEzMzUyLCAxMzM1NiwgCisgICAgMTMzNjAsIDEzMzY0LCAwLCAxMzM2NywgMTMzNzAsIDEzMzc0LCAxMzM3OCwgMTMzODIsIDEzMzg1LCAxMzM4OCwgMCwgCisgICAgMTMzOTEsIDEzMzk1LCAwLCAxMzM5OSwgMTM0MDMsIDAsIDEzNDA3LCAxMzQxMCwgMCwgMCwgMTM0MTMsIDAsIDEzNDE3LCAKKyAgICAxMzQyMiwgMTM0MjYsIDEzNDMxLCAxMzQzNSwgMCwgMCwgMCwgMCwgMTM0NDAsIDEzNDQ1LCAwLCAwLCAxMzQ1MCwgMTM0NTUsIAorICAgIDEzNDYwLCAwLCAwLCAwLCAxMzQ2NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM0NjgsIDEzNDcyLCAxMzQ3NiwgMTM0ODAsIAorICAgIDAsIDEzNDg0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMzQ4OCwgMTM0OTIsIDEzNDk1LCAxMzQ5OCwgMTM1MDEsIDEzNTA0LCAKKyAgICAxMzUwNywgMTM1MTAsIDEzNTEzLCAxMzUxNiwgMTM1MTksIDEzNTIyLCAxMzUyNSwgMTM1MjgsIDEzNTMxLCAxMzUzNiwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM1NDAsIDEzNTQ0LCAxMzU0OCwgMCwgMTM1NTIsIDEzNTU1LCAKKyAgICAxMzU1OSwgMTM1NjIsIDEzNTY2LCAxMzU2OSwgMTM1NzMsIDEzNTc3LCAxMzU4MSwgMCwgMTM1ODYsIDEzNTg5LCAxMzU5MywgCisgICAgMCwgMTM1OTgsIDEzNjAxLCAxMzYwNSwgMTM2MDgsIDEzNjEyLCAxMzYxNiwgMTM2MjAsIDEzNjI0LCAxMzYyOCwgMTM2MzIsIAorICAgIDEzNjM2LCAxMzY0MCwgMTM2NDQsIDEzNjQ4LCAxMzY1MiwgMTM2NTYsIDEzNjYwLCAxMzY2NCwgMTM2NjgsIDEzNjcyLCAKKyAgICAxMzY3NiwgMTM2ODAsIDAsIDEzNjgzLCAxMzY4NiwgMTM2OTAsIDEzNjk0LCAxMzY5OCwgMTM3MDEsIDEzNzA0LCAwLCAKKyAgICAxMzcwNywgMTM3MTEsIDAsIDEzNzE1LCAxMzcxOSwgMTM3MjMsIDEzNzI3LCAxMzczMCwgMCwgMCwgMTM3MzMsIDEzNzM3LCAKKyAgICAxMzc0MSwgMTM3NDYsIDEzNzUwLCAxMzc1NSwgMTM3NTksIDEzNzY0LCAxMzc2OSwgMTM3NzUsIDAsIDEzNzgxLCAxMzc4NSwgCisgICAgMTM3OTAsIDAsIDEzNzk2LCAxMzgwMCwgMTM4MDUsIDAsIDAsIDEzODA5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAxMzgxMiwgMTM4MTcsIDEzODIyLCAxMzgyNywgMCwgMCwgMTM4MzMsIDEzODM3LCAxMzg0MCwgCisgICAgMTM4NDMsIDEzODQ2LCAxMzg0OSwgMTM4NTIsIDEzODU1LCAxMzg1OCwgMTM4NjEsIDEzODY0LCAxMzg2OCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTM4NzIsIDEzODc2LCAxMzg4MCwgMCwgMTM4ODQsIDEzODg3LCAKKyAgICAxMzg5MSwgMTM4OTQsIDEzODk4LCAxMzkwMSwgMTM5MDUsIDEzOTA5LCAwLCAwLCAxMzkxMywgMTM5MTYsIDAsIDAsIAorICAgIDEzOTIwLCAxMzkyMywgMTM5MjcsIDEzOTMwLCAxMzkzNCwgMTM5MzgsIDEzOTQyLCAxMzk0NiwgMTM5NTAsIDEzOTU0LCAKKyAgICAxMzk1OCwgMTM5NjIsIDEzOTY2LCAxMzk3MCwgMTM5NzQsIDEzOTc4LCAxMzk4MiwgMTM5ODYsIDEzOTkwLCAxMzk5NCwgCisgICAgMTM5OTgsIDE0MDAyLCAwLCAxNDAwNSwgMTQwMDgsIDE0MDEyLCAxNDAxNiwgMTQwMjAsIDE0MDIzLCAxNDAyNiwgMCwgCisgICAgMTQwMjksIDE0MDMzLCAwLCAxNDAzNywgMTQwNDEsIDE0MDQ1LCAxNDA0OSwgMTQwNTIsIDAsIDAsIDE0MDU1LCAxNDA1OSwgCisgICAgMTQwNjMsIDE0MDY4LCAxNDA3MiwgMTQwNzcsIDE0MDgxLCAxNDA4NiwgMTQwOTEsIDAsIDAsIDE0MDk3LCAxNDEwMSwgMCwgCisgICAgMCwgMTQxMDYsIDE0MTEwLCAxNDExNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTQxMTksIDE0MTI1LCAwLCAwLCAwLCAwLCAKKyAgICAxNDEzMSwgMTQxMzUsIDAsIDE0MTM5LCAxNDE0MywgMTQxNDgsIDE0MTUzLCAxNDE1OCwgMCwgMCwgMTQxNjQsIDE0MTY4LCAKKyAgICAxNDE3MSwgMTQxNzQsIDE0MTc3LCAxNDE4MCwgMTQxODMsIDE0MTg2LCAxNDE4OSwgMTQxOTIsIDE0MTk1LCAxNDE5OCwgCisgICAgMTQyMDIsIDE0MjA4LCAxNDIxNCwgMTQyMjAsIDE0MjI2LCAxNDIzMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMTQyMzgsIDE0MjQyLCAwLCAxNDI0NiwgMTQyNDksIDE0MjUzLCAxNDI1NiwgMTQyNjAsIDE0MjYzLCAwLCAwLCAwLCAKKyAgICAxNDI2NywgMTQyNzAsIDE0Mjc0LCAwLCAxNDI3OCwgMTQyODEsIDE0Mjg1LCAxNDI4OSwgMCwgMCwgMCwgMTQyOTIsIAorICAgIDE0Mjk2LCAwLCAxNDMwMCwgMCwgMTQzMDQsIDE0MzA4LCAwLCAwLCAwLCAxNDMxMiwgMTQzMTYsIDAsIDAsIDAsIDE0MzIwLCAKKyAgICAxNDMyMywgMTQzMjcsIDAsIDAsIDAsIDE0MzMwLCAxNDMzMywgMTQzMzYsIDE0MzM5LCAxNDM0MywgMTQzNDcsIDE0MzUxLCAKKyAgICAxNDM1NSwgMTQzNTksIDE0MzYzLCAxNDM2NywgMTQzNzAsIDAsIDAsIDAsIDAsIDE0MzczLCAxNDM3OCwgMTQzODIsIAorICAgIDE0Mzg3LCAxNDM5MSwgMCwgMCwgMCwgMTQzOTYsIDE0NDAwLCAxNDQwNSwgMCwgMTQ0MTAsIDE0NDE0LCAxNDQxOSwgCisgICAgMTQ0MjQsIDAsIDAsIDE0NDI4LCAwLCAwLCAwLCAwLCAwLCAwLCAxNDQzMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMTQ0MzcsIDE0NDQxLCAxNDQ0NCwgMTQ0NDcsIDE0NDUwLCAxNDQ1MywgMTQ0NTYsIDE0NDU5LCAKKyAgICAxNDQ2MiwgMTQ0NjUsIDE0NDY4LCAxNDQ3MiwgMTQ0NzcsIDE0NDgyLCAxNDQ4NiwgMTQ0OTAsIDE0NDk0LCAxNDQ5OCwgCisgICAgMTQ1MDIsIDE0NTA3LCAxNDUxMSwgMCwgMCwgMCwgMCwgMCwgMCwgMTQ1MTQsIDE0NTE4LCAxNDUyMiwgMCwgMTQ1MjYsIAorICAgIDE0NTI5LCAxNDUzMywgMTQ1MzYsIDE0NTQwLCAxNDU0MywgMTQ1NDcsIDE0NTUxLCAwLCAxNDU1NSwgMTQ1NTgsIDE0NTYyLCAKKyAgICAwLCAxNDU2NiwgMTQ1NjksIDE0NTczLCAxNDU3NywgMTQ1ODAsIDE0NTg0LCAxNDU4OCwgMTQ1OTIsIDE0NTk2LCAxNDYwMCwgCisgICAgMTQ2MDQsIDE0NjA4LCAxNDYxMiwgMTQ2MTYsIDE0NjIwLCAxNDYyNCwgMTQ2MjgsIDE0NjMyLCAxNDYzNiwgMTQ2NDAsIAorICAgIDE0NjQ0LCAxNDY0OCwgMTQ2NTIsIDAsIDE0NjU1LCAxNDY1OCwgMTQ2NjIsIDE0NjY2LCAxNDY3MCwgMTQ2NzMsIDE0Njc2LCAKKyAgICAxNDY3OSwgMTQ2ODMsIDE0Njg3LCAwLCAxNDY5MSwgMTQ2OTUsIDE0Njk5LCAxNDcwMywgMTQ3MDYsIDAsIDAsIDAsIAorICAgIDE0NzA5LCAxNDcxMywgMTQ3MTgsIDE0NzIyLCAxNDcyNywgMTQ3MzEsIDE0NzM2LCAxNDc0MSwgMCwgMTQ3NDcsIDE0NzUxLCAKKyAgICAxNDc1NiwgMCwgMTQ3NjEsIDE0NzY1LCAxNDc3MCwgMTQ3NzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0Nzc5LCAxNDc4MywgCisgICAgMCwgMTQ3ODksIDE0NzkzLCAwLCAwLCAwLCAwLCAwLCAwLCAxNDc5NywgMTQ4MDIsIDE0ODA3LCAxNDgxMiwgMCwgMCwgCisgICAgMTQ4MTgsIDE0ODIyLCAxNDgyNSwgMTQ4MjgsIDE0ODMxLCAxNDgzNCwgMTQ4MzcsIDE0ODQwLCAxNDg0MywgMTQ4NDYsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE0ODQ5LCAxNDg2MiwgMTQ4NzQsIDE0ODg2LCAxNDg5OCwgMTQ5MTAsIDE0OTIyLCAKKyAgICAxNDkzNCwgMCwgMCwgMTQ5MzgsIDE0OTQyLCAwLCAxNDk0NiwgMTQ5NDksIDE0OTUzLCAxNDk1NiwgMTQ5NjAsIDE0OTYzLCAKKyAgICAxNDk2NywgMTQ5NzEsIDAsIDE0OTc1LCAxNDk3OCwgMTQ5ODIsIDAsIDE0OTg2LCAxNDk4OSwgMTQ5OTMsIDE0OTk3LCAKKyAgICAxNTAwMCwgMTUwMDQsIDE1MDA4LCAxNTAxMiwgMTUwMTYsIDE1MDIwLCAxNTAyNCwgMTUwMjgsIDE1MDMyLCAxNTAzNiwgCisgICAgMTUwNDAsIDE1MDQ0LCAxNTA0OCwgMTUwNTIsIDE1MDU2LCAxNTA2MCwgMTUwNjQsIDE1MDY4LCAxNTA3MiwgMCwgMTUwNzUsIAorICAgIDE1MDc4LCAxNTA4MiwgMTUwODYsIDE1MDkwLCAxNTA5MywgMTUwOTYsIDE1MDk5LCAxNTEwMywgMTUxMDcsIDAsIDE1MTExLCAKKyAgICAxNTExNSwgMTUxMTksIDE1MTIzLCAxNTEyNiwgMCwgMCwgMTUxMjksIDE1MTMzLCAxNTEzNywgMTUxNDIsIDE1MTQ2LCAKKyAgICAxNTE1MSwgMTUxNTUsIDE1MTYwLCAxNTE2NSwgMCwgMTUxNzEsIDE1MTc1LCAxNTE4MCwgMCwgMTUxODUsIDE1MTg5LCAKKyAgICAxNTE5NCwgMTUxOTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE1MjAzLCAxNTIwNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMTUyMTMsIDAsIDE1MjE3LCAxNTIyMiwgMTUyMjcsIDE1MjMyLCAwLCAwLCAxNTIzOCwgMTUyNDIsIDE1MjQ1LCAxNTI0OCwgCisgICAgMTUyNTEsIDE1MjU0LCAxNTI1NywgMTUyNjAsIDE1MjYzLCAxNTI2NiwgMCwgMTUyNjksIDE1MjczLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNTI3NywgMTUyODEsIDAsIDE1Mjg1LCAxNTI4OCwgMTUyOTIsIAorICAgIDE1Mjk1LCAxNTI5OSwgMTUzMDIsIDE1MzA2LCAxNTMxMCwgMCwgMTUzMTQsIDE1MzE3LCAxNTMyMSwgMCwgMTUzMjUsIAorICAgIDE1MzI4LCAxNTMzMiwgMTUzMzYsIDE1MzM5LCAxNTM0MywgMTUzNDcsIDE1MzUxLCAxNTM1NSwgMTUzNTksIDE1MzYzLCAKKyAgICAxNTM2NywgMTUzNzEsIDE1Mzc1LCAxNTM3OSwgMTUzODMsIDE1Mzg3LCAxNTM5MSwgMTUzOTUsIDE1Mzk5LCAxNTQwMywgCisgICAgMTU0MDcsIDE1NDExLCAxNTQxNCwgMTU0MTgsIDE1NDIxLCAxNTQyNSwgMTU0MjksIDE1NDMzLCAxNTQzNiwgMTU0MzksIAorICAgIDE1NDQyLCAxNTQ0NiwgMTU0NTAsIDE1NDU0LCAxNTQ1OCwgMTU0NjIsIDE1NDY2LCAxNTQ3MCwgMTU0NzMsIDE1NDc2LCAwLCAKKyAgICAwLCAxNTQ4MCwgMTU0ODQsIDE1NDg5LCAxNTQ5MywgMTU0OTgsIDE1NTAyLCAxNTUwNywgMTU1MTIsIDAsIDE1NTE4LCAKKyAgICAxNTUyMiwgMTU1MjcsIDAsIDE1NTMyLCAxNTUzNiwgMTU1NDEsIDE1NTQ2LCAxNTU1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMTU1NTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE1NTYxLCAxNTU2NiwgMTU1NzEsIDE1NTc2LCAwLCAwLCAKKyAgICAxNTU4MiwgMTU1ODYsIDE1NTg5LCAxNTU5MiwgMTU1OTUsIDE1NTk4LCAxNTYwMSwgMTU2MDQsIDE1NjA3LCAxNTYxMCwgCisgICAgMTU2MTMsIDE1NjE3LCAxNTYyMiwgMTU2MjcsIDE1NjMzLCAxNTYzOSwgMCwgMCwgMCwgMTU2NDUsIDE1NjQ5LCAxNTY1NSwgCisgICAgMTU2NjEsIDE1NjY3LCAxNTY3MiwgMTU2NzgsIDAsIDAsIDE1Njg0LCAxNTY4OCwgMCwgMTU2OTIsIDE1Njk2LCAxNTcwMCwgCisgICAgMTU3MDQsIDE1NzA4LCAxNTcxMiwgMTU3MTYsIDE1NzIwLCAxNTcyNCwgMTU3MjgsIDE1NzMyLCAxNTczNiwgMTU3NDAsIAorICAgIDE1NzQ0LCAxNTc0OCwgMTU3NTIsIDE1NzU2LCAxNTc2MCwgMCwgMCwgMCwgMTU3NjQsIDE1NzcwLCAxNTc3NiwgMTU3ODIsIAorICAgIDE1Nzg4LCAxNTc5NCwgMTU4MDAsIDE1ODA2LCAxNTgxMiwgMTU4MTgsIDE1ODI0LCAxNTgzMCwgMTU4MzgsIDE1ODQ0LCAKKyAgICAxNTg1MCwgMTU4NTYsIDE1ODYyLCAxNTg2OCwgMTU4NzQsIDE1ODgwLCAxNTg4NiwgMTU4OTIsIDE1ODk4LCAxNTkwNCwgMCwgCisgICAgMTU5MTAsIDE1OTE2LCAxNTkyMiwgMTU5MjgsIDE1OTM0LCAxNTk0MCwgMTU5NDQsIDE1OTUwLCAxNTk1NCwgMCwgMTU5NTgsIAorICAgIDAsIDAsIDE1OTY0LCAxNTk2OCwgMTU5NzQsIDE1OTgwLCAxNTk4NiwgMTU5OTAsIDE1OTk2LCAwLCAwLCAwLCAxNjAwMCwgMCwgCisgICAgMCwgMCwgMCwgMTYwMDQsIDE2MDA5LCAxNjAxNiwgMTYwMjMsIDE2MDMwLCAxNjAzNywgMCwgMTYwNDQsIDAsIDE2MDUxLCAKKyAgICAxNjA1NiwgMTYwNjEsIDE2MDY4LCAxNjA3NSwgMTYwODQsIDE2MDk1LCAxNjEwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTYxMDksIDE2MTE2LCAxNjEyMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMTYxMjgsIDE2MTM0LCAxNjE0MCwgMTYxNDYsIDE2MTUyLCAxNjE1OCwgMTYxNjQsIDE2MTcwLCAKKyAgICAxNjE3NiwgMTYxODIsIDE2MTg4LCAxNjE5NCwgMTYyMDAsIDE2MjA2LCAxNjIxMiwgMTYyMTgsIDE2MjI0LCAxNjIzMCwgCisgICAgMTYyMzYsIDE2MjQyLCAxNjI0OCwgMTYyNTQsIDE2MjYwLCAxNjI2NiwgMTYyNzIsIDE2Mjc4LCAxNjI4NCwgMTYyOTAsIAorICAgIDE2Mjk2LCAxNjMwMiwgMTYzMDgsIDE2MzE0LCAxNjMyMCwgMTYzMjUsIDE2MzMxLCAxNjMzNywgMTYzNDEsIDE2MzQ3LCAKKyAgICAxNjM1MSwgMTYzNTcsIDE2MzYzLCAxNjM2OSwgMTYzNzUsIDE2MzgxLCAxNjM4NywgMTYzOTIsIDE2Mzk4LCAxNjQwMiwgCisgICAgMTY0MDcsIDE2NDEzLCAxNjQxOSwgMTY0MjUsIDE2NDMwLCAxNjQzNiwgMTY0NDIsIDE2NDQ4LCAxNjQ1MywgMTY0NTksIDAsIAorICAgIDAsIDAsIDAsIDE2NDYzLCAxNjQ2OSwgMTY0NzQsIDE2NDgwLCAxNjQ4NSwgMTY0OTMsIDE2NTAxLCAxNjUwNSwgMTY1MDksIAorICAgIDE2NTEzLCAxNjUxOSwgMTY1MjUsIDE2NTMxLCAxNjUzNywgMTY1NDEsIDE2NTQ1LCAxNjU0OSwgMTY1NTMsIDE2NTU3LCAKKyAgICAxNjU2MCwgMTY1NjMsIDE2NTY2LCAxNjU2OSwgMTY1NzIsIDE2NTc1LCAxNjU3OCwgMTY1ODEsIDE2NTg0LCAxNjU4OCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTY1OTIsIDE2NTk3LCAwLCAxNjYwNCwgMCwgMCwgMTY2MTEsIAorICAgIDE2NjE2LCAwLCAxNjYyMSwgMCwgMCwgMTY2MjgsIDAsIDAsIDAsIDAsIDAsIDAsIDE2NjMzLCAxNjYzOCwgMTY2NDIsIAorICAgIDE2NjQ5LCAwLCAxNjY1NiwgMTY2NjEsIDE2NjY2LCAxNjY3MSwgMTY2NzgsIDE2Njg1LCAxNjY5MiwgMCwgMTY2OTksIAorICAgIDE2NzA0LCAxNjcwOSwgMCwgMTY3MTYsIDAsIDE2NzIzLCAwLCAwLCAxNjcyOCwgMTY3MzUsIDAsIDE2NzQyLCAxNjc0NiwgCisgICAgMTY3NTMsIDE2NzU3LCAxNjc2MiwgMTY3NzAsIDE2Nzc2LCAxNjc4MiwgMTY3ODcsIDE2NzkzLCAxNjc5OSwgMTY4MDUsIAorICAgIDE2ODEwLCAwLCAxNjgxNiwgMTY4MjQsIDE2ODMxLCAwLCAwLCAxNjgzOCwgMTY4NDMsIDE2ODQ5LCAxNjg1NCwgMTY4NjAsIAorICAgIDAsIDE2ODY2LCAwLCAxNjg3MiwgMTY4NzksIDE2ODg2LCAxNjg5MywgMTY5MDAsIDE2OTA1LCAwLCAwLCAxNjkwOSwgCisgICAgMTY5MTQsIDE2OTE4LCAxNjkyMiwgMTY5MjYsIDE2OTMwLCAxNjkzNCwgMTY5MzgsIDE2OTQyLCAxNjk0NiwgMCwgMCwgCisgICAgMTY5NTAsIDE2OTU2LCAxNjk2MiwgMTY5NjksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE2OTc2LCAxNjk4MCwgMTY5OTEsIAorICAgIDE3MDA2LCAxNzAyMSwgMTcwMzEsIDE3MDQyLCAxNzA1NSwgMTcwNjYsIDE3MDcyLCAxNzA4MCwgMTcwOTAsIDE3MDk2LCAKKyAgICAxNzEwNCwgMTcxMDgsIDE3MTE0LCAxNzEyMCwgMTcxMjgsIDE3MTM4LCAxNzE0NiwgMTcxNTksIDE3MTY1LCAxNzE3MywgCisgICAgMTcxODEsIDE3MTkzLCAxNzIwMCwgMTcyMDgsIDE3MjE2LCAxNzIyNCwgMTcyMzIsIDE3MjQwLCAxNzI0OCwgMTcyNTgsIAorICAgIDE3MjYyLCAxNzI2NSwgMTcyNjgsIDE3MjcxLCAxNzI3NCwgMTcyNzcsIDE3MjgwLCAxNzI4MywgMTcyODYsIDE3Mjg5LCAKKyAgICAxNzI5MywgMTcyOTcsIDE3MzAxLCAxNzMwNSwgMTczMDksIDE3MzEzLCAxNzMxNywgMTczMjEsIDE3MzI1LCAxNzMzMCwgCisgICAgMTczMzYsIDE3MzQ2LCAxNzM2MCwgMTczNzAsIDE3Mzc2LCAxNzM4MiwgMTczOTAsIDE3Mzk4LCAxNzQwNiwgMTc0MTQsIAorICAgIDE3NDIwLCAxNzQyNiwgMTc0MjksIDE3NDMzLCAxNzQzNywgMTc0NDEsIDE3NDQ1LCAxNzQ0OSwgMTc0NTMsIDAsIDE3NDU3LCAKKyAgICAxNzQ2MSwgMTc0NjUsIDE3NDY5LCAxNzQ3MywgMTc0NzcsIDE3NDgxLCAxNzQ4NSwgMTc0ODksIDE3NDkzLCAxNzQ5NywgCisgICAgMTc1MDAsIDE3NTAzLCAxNzUwNywgMTc1MTEsIDE3NTE1LCAxNzUxOCwgMTc1MjIsIDE3NTI2LCAxNzUzMCwgMTc1MzQsIAorICAgIDE3NTM4LCAxNzU0MiwgMTc1NDYsIDE3NTUwLCAxNzU1MywgMTc1NTYsIDE3NTYwLCAxNzU2NCwgMTc1NjgsIDE3NTcxLCAKKyAgICAxNzU3NCwgMTc1NzcsIDE3NTgxLCAxNzU4NiwgMTc1OTAsIDAsIDAsIDAsIDAsIDE3NTk0LCAxNzU5OSwgMTc2MDMsIAorICAgIDE3NjA4LCAxNzYxMiwgMTc2MTcsIDE3NjIyLCAxNzYyOCwgMTc2MzMsIDE3NjM5LCAxNzY0MywgMTc2NDgsIDE3NjUyLCAKKyAgICAxNzY1NywgMTc2NjcsIDE3NjczLCAxNzY3OSwgMTc2ODYsIDE3Njk2LCAxNzcwMiwgMTc3MDYsIDE3NzEwLCAxNzcxNiwgCisgICAgMTc3MjIsIDE3NzMwLCAxNzczNiwgMTc3NDQsIDE3NzUyLCAxNzc2MCwgMTc3NzAsIDE3Nzc4LCAxNzc4OCwgMTc3OTMsIAorICAgIDE3Nzk5LCAxNzgwNSwgMTc4MTEsIDE3ODE3LCAxNzgyMywgMTc4MjksIDAsIDE3ODM1LCAxNzg0MSwgMTc4NDcsIDE3ODUzLCAKKyAgICAxNzg1OSwgMTc4NjUsIDE3ODcxLCAxNzg3NywgMTc4ODMsIDE3ODg5LCAxNzg5NSwgMTc5MDAsIDE3OTA1LCAxNzkxMSwgCisgICAgMTc5MTcsIDE3OTIzLCAxNzkyOCwgMTc5MzQsIDE3OTQwLCAxNzk0NiwgMTc5NTIsIDE3OTU4LCAxNzk2NCwgMTc5NzAsIAorICAgIDE3OTc2LCAxNzk4MSwgMTc5ODYsIDE3OTkyLCAxNzk5OCwgMTgwMDQsIDE4MDA5LCAxODAxNCwgMTgwMTksIDE4MDI1LCAKKyAgICAxODAzMywgMTgwNDAsIDAsIDE4MDQ3LCAxODA1NCwgMTgwNjcsIDE4MDc0LCAxODA4MSwgMTgwODksIDE4MDk3LCAxODEwMywgCisgICAgMTgxMDksIDE4MTE1LCAxODEyNSwgMTgxMzAsIDE4MTM2LCAxODE0NiwgMTgxNTYsIDAsIDE4MTY2LCAxODE3NiwgMTgxODQsIAorICAgIDE4MTk2LCAxODIwOCwgMTgyMTQsIDE4MjI4LCAxODI0MywgMTgyNDgsIDE4MjUzLCAxODI2MSwgMTgyNjksIDE4Mjc3LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxODI4NSwgMTgyODgsIDE4MjkyLCAxODI5NiwgMTgzMDAsIAorICAgIDE4MzA0LCAxODMwOCwgMTgzMTIsIDE4MzE2LCAxODMyMCwgMTgzMjQsIDE4MzI4LCAxODMzMiwgMTgzMzYsIDE4MzQwLCAKKyAgICAxODM0NCwgMTgzNDgsIDE4MzUyLCAxODM1NiwgMTgzNjAsIDE4MzY0LCAxODM2NywgMTgzNzAsIDE4Mzc0LCAxODM3OCwgCisgICAgMTgzODIsIDE4Mzg1LCAxODM4OCwgMTgzOTEsIDE4Mzk1LCAxODM5OSwgMTg0MDIsIDE4NDA1LCAxODQwOSwgMTg0MTIsIAorICAgIDE4NDE3LCAxODQyMCwgMTg0MjQsIDE4NDI3LCAxODQzMSwgMTg0MzQsIDE4NDM5LCAxODQ0MiwgMTg0NDYsIDE4NDUzLCAKKyAgICAxODQ1OCwgMTg0NjIsIDE4NDY3LCAxODQ3MSwgMTg0NzYsIDE4NDgwLCAxODQ4NSwgMTg0OTIsIDE4NDk4LCAxODUwMywgCisgICAgMTg1MDcsIDE4NTExLCAxODUxNSwgMTg1MTksIDE4NTIzLCAxODUyOCwgMTg1MzMsIDE4NTM5LCAxODU0NCwgMTg1NDksIAorICAgIDE4NTUzLCAxODU1NiwgMTg1NTksIDE4NTYyLCAxODU2NSwgMTg1NjgsIDE4NTcxLCAxODU3NCwgMTg1NzcsIDE4NTgwLCAKKyAgICAxODU4NiwgMTg1OTAsIDE4NTk0LCAxODU5OCwgMTg2MDIsIDE4NjA2LCAxODYxMCwgMTg2MTQsIDE4NjE4LCAxODYyMywgCisgICAgMTg2MjcsIDE4NjMyLCAxODYzNywgMTg2NDMsIDE4NjQ4LCAxODY1NCwgMTg2NjAsIDE4NjY2LCAxODY3MiwgMTg2NzgsIAorICAgIDE4Njg1LCAxODY5MiwgMTg3MDAsIDE4NzA4LCAxODcxNywgMTg3MjYsIDE4NzM3LCAxODc0NywgMTg3NTcsIDE4NzY4LCAKKyAgICAxODc3OSwgMTg3ODksIDE4Nzk5LCAxODgwOSwgMTg4MTksIDE4ODI5LCAxODgzOSwgMTg4NDksIDE4ODU5LCAxODg2NywgCisgICAgMTg4NzQsIDE4ODgwLCAxODg4NywgMTg4OTIsIDE4ODk4LCAxODkwNCwgMTg5MTAsIDE4OTE2LCAxODkyMiwgMTg5MjgsIAorICAgIDE4OTMzLCAxODkzOSwgMTg5NDUsIDE4OTUxLCAxODk1NywgMTg5NjIsIDE4OTcwLCAxODk3NywgMTg5ODMsIDE4OTkwLCAKKyAgICAxODk5OCwgMTkwMDQsIDE5MDEwLCAxOTAxNiwgMTkwMjIsIDE5MDMwLCAxOTAzOCwgMTkwNDgsIDE5MDU2LCAxOTA2NCwgCisgICAgMTkwNzAsIDE5MDc1LCAxOTA4MCwgMTkwODUsIDE5MDkwLCAxOTA5NSwgMTkxMDAsIDE5MTA1LCAxOTExMCwgMTkxMTUsIAorICAgIDE5MTIxLCAxOTEyNywgMTkxMzMsIDE5MTQwLCAxOTE0NSwgMTkxNTEsIDE5MTU2LCAxOTE2MSwgMTkxNjYsIDE5MTcxLCAKKyAgICAxOTE3NiwgMTkxODEsIDE5MTg2LCAxOTE5MSwgMTkxOTYsIDE5MjAxLCAxOTIwNiwgMTkyMTEsIDE5MjE2LCAxOTIyMSwgCisgICAgMTkyMjYsIDE5MjMxLCAxOTIzNiwgMTkyNDEsIDE5MjQ2LCAxOTI1MSwgMTkyNTYsIDE5MjYxLCAxOTI2NiwgMTkyNzEsIAorICAgIDE5Mjc2LCAxOTI4MSwgMTkyODYsIDE5MjkxLCAxOTI5NiwgMTkzMDEsIDE5MzA2LCAxOTMxMSwgMTkzMTYsIDE5MzIxLCAKKyAgICAxOTMyNiwgMTkzMzEsIDE5MzM2LCAwLCAxOTM0MSwgMCwgMCwgMCwgMCwgMCwgMTkzNDYsIDAsIDAsIDE5MzUxLCAxOTM1NSwgCisgICAgMTkzNTksIDE5MzYzLCAxOTM2NywgMTkzNzEsIDE5Mzc1LCAxOTM3OSwgMTkzODMsIDE5Mzg3LCAxOTM5MSwgMTkzOTUsIAorICAgIDE5Mzk5LCAxOTQwMywgMTk0MDcsIDE5NDExLCAxOTQxNSwgMTk0MTksIDE5NDIzLCAxOTQyNywgMTk0MzEsIDE5NDM1LCAKKyAgICAxOTQzOSwgMTk0NDMsIDE5NDQ3LCAxOTQ1MSwgMTk0NTUsIDE5NDU5LCAxOTQ2MywgMTk0NjcsIDE5NDcxLCAxOTQ3NSwgCisgICAgMTk0NzksIDE5NDgzLCAxOTQ4NywgMTk0OTEsIDE5NDk1LCAxOTQ5OSwgMTk1MDMsIDE5NTA3LCAxOTUxMSwgMTk1MTUsIAorICAgIDE5NTIxLCAxOTUyNSwgMTk1MzAsIDE5NTM1LCAxOTUzOSwgMTk1NDQsIDE5NTQ5LCAxOTU1MywgMTk1NTcsIDE5NTYxLCAKKyAgICAxOTU2NSwgMTk1NjksIDE5NTczLCAxOTU3NywgMTk1ODEsIDE5NTg1LCAxOTU4OSwgMTk1OTMsIDE5NTk3LCAxOTYwMSwgCisgICAgMTk2MDUsIDE5NjA5LCAxOTYxMywgMTk2MTcsIDE5NjIxLCAxOTYyNSwgMTk2MjksIDE5NjMzLCAxOTYzNywgMTk2NDEsIAorICAgIDE5NjQ1LCAxOTY0OSwgMTk2NTMsIDE5NjU3LCAxOTY2MSwgMTk2NjUsIDE5NjY5LCAxOTY3MywgMTk2NzcsIDE5NjgxLCAKKyAgICAxOTY4NSwgMTk2ODksIDE5NjkzLCAxOTY5NywgMTk3MDEsIDE5NzA1LCAxOTcwOSwgMTk3MTMsIDE5NzE3LCAxOTcyMSwgCisgICAgMTk3MjUsIDE5NzI5LCAxOTczMywgMTk3MzcsIDE5NzQxLCAxOTc0NSwgMTk3NDksIDE5NzUzLCAxOTc1NywgMTk3NjEsIAorICAgIDE5NzY1LCAxOTc2OSwgMTk3NzMsIDE5Nzc3LCAxOTc4MSwgMTk3ODUsIDE5Nzg5LCAxOTc5MywgMTk3OTcsIDE5ODAxLCAKKyAgICAxOTgwNSwgMTk4MDksIDE5ODEzLCAxOTgxNywgMTk4MjEsIDE5ODI1LCAxOTgyOSwgMTk4MzMsIDE5ODM3LCAxOTg0MSwgCisgICAgMTk4NDUsIDE5ODQ5LCAxOTg1MywgMTk4NTcsIDE5ODYxLCAxOTg2NSwgMTk4NjksIDE5ODczLCAxOTg3NywgMTk4ODEsIAorICAgIDE5ODg1LCAxOTg4OSwgMTk4OTMsIDE5ODk3LCAxOTkwMSwgMTk5MDUsIDE5OTA5LCAxOTkxMywgMTk5MTcsIDE5OTIxLCAKKyAgICAxOTkyNSwgMTk5MjksIDE5OTMzLCAxOTkzNywgMTk5NDAsIDE5OTQ0LCAxOTk0NywgMTk5NTEsIDE5OTU1LCAxOTk1OCwgCisgICAgMTk5NjIsIDE5OTY2LCAxOTk2OSwgMTk5NzMsIDE5OTc3LCAxOTk4MSwgMTk5ODUsIDE5OTg4LCAxOTk5MiwgMTk5OTYsIAorICAgIDIwMDAwLCAyMDAwNCwgMjAwMDgsIDIwMDEyLCAyMDAxNSwgMjAwMTksIDIwMDIzLCAyMDAyNywgMjAwMzEsIDIwMDM1LCAKKyAgICAyMDAzOSwgMjAwNDMsIDIwMDQ3LCAyMDA1MSwgMjAwNTUsIDIwMDU5LCAyMDA2MywgMjAwNjcsIDIwMDcxLCAyMDA3NSwgCisgICAgMjAwNzksIDIwMDgzLCAyMDA4NywgMjAwOTEsIDIwMDk1LCAyMDA5OSwgMjAxMDMsIDIwMTA3LCAyMDExMSwgMjAxMTUsIAorICAgIDIwMTE5LCAyMDEyMywgMjAxMjcsIDIwMTMxLCAyMDEzNSwgMjAxMzksIDIwMTQzLCAyMDE0NywgMjAxNTEsIDIwMTU1LCAKKyAgICAyMDE1OSwgMjAxNjMsIDIwMTY3LCAyMDE3MSwgMjAxNzUsIDIwMTc5LCAyMDE4MywgMjAxODcsIDIwMTkxLCAyMDE5NSwgCisgICAgMjAxOTksIDIwMjAzLCAyMDIwNywgMjAyMTEsIDIwMjE1LCAyMDIxOSwgMjAyMjMsIDIwMjI3LCAyMDIzMSwgMjAyMzUsIAorICAgIDIwMjM5LCAyMDI0MywgMjAyNDcsIDIwMjUxLCAyMDI1NSwgMjAyNTksIDIwMjYzLCAyMDI2NywgMjAyNzEsIDIwMjc1LCAKKyAgICAyMDI3OSwgMjAyODMsIDIwMjg3LCAyMDI5MSwgMjAyOTUsIDIwMjk5LCAyMDMwMywgMjAzMDcsIDIwMzExLCAyMDMxNSwgCisgICAgMjAzMTksIDIwMzIzLCAyMDMyNywgMjAzMzEsIDIwMzM1LCAyMDMzOSwgMjAzNDMsIDIwMzQ3LCAyMDM1MSwgMjAzNTUsIAorICAgIDIwMzU5LCAyMDM2MywgMjAzNjcsIDIwMzcxLCAyMDM3NSwgMjAzNzksIDIwMzgzLCAyMDM4NywgMjAzOTEsIDIwMzk1LCAKKyAgICAyMDM5OSwgMjA0MDMsIDIwNDA3LCAyMDQxMSwgMjA0MTUsIDIwNDE5LCAyMDQyMywgMjA0MjcsIDIwNDMxLCAyMDQzNSwgCisgICAgMjA0MzksIDIwNDQzLCAyMDQ0NywgMjA0NTEsIDIwNDU1LCAyMDQ1OSwgMjA0NjMsIDIwNDY3LCAyMDQ3MSwgMjA0NzUsIAorICAgIDIwNDc5LCAyMDQ4MywgMjA0ODcsIDIwNDkxLCAyMDQ5NSwgMjA0OTksIDIwNTAzLCAyMDUwNywgMjA1MTEsIDIwNTE1LCAKKyAgICAyMDUxOSwgMjA1MjMsIDIwNTI3LCAyMDUzMSwgMjA1MzUsIDIwNTM5LCAyMDU0MywgMjA1NDcsIDIwNTUxLCAyMDU1NSwgCisgICAgMjA1NTksIDIwNTYzLCAyMDU2NywgMjA1NzAsIDIwNTc0LCAyMDU3OCwgMjA1ODIsIDIwNTg2LCAyMDU5MCwgMjA1OTQsIAorICAgIDIwNTk4LCAyMDYwMiwgMjA2MDYsIDIwNjEwLCAyMDYxNCwgMjA2MTgsIDIwNjIyLCAyMDYyNiwgMjA2MzAsIDIwNjM0LCAKKyAgICAyMDYzOCwgMjA2NDIsIDIwNjQ2LCAyMDY1MCwgMjA2NTQsIDIwNjU4LCAyMDY2MiwgMjA2NjUsIDIwNjY5LCAyMDY3MywgCisgICAgMjA2NzcsIDIwNjgxLCAyMDY4NSwgMjA2ODksIDIwNjkzLCAyMDY5NywgMjA3MDEsIDIwNzA1LCAyMDcwOSwgMjA3MTMsIAorICAgIDIwNzE3LCAyMDcyMSwgMjA3MjUsIDIwNzI4LCAyMDczMiwgMjA3MzYsIDIwNzQwLCAyMDc0NCwgMjA3NDgsIDIwNzUyLCAKKyAgICAyMDc1NiwgMjA3NTksIDIwNzYzLCAyMDc2NywgMjA3NzEsIDIwNzc1LCAyMDc3OSwgMjA3ODMsIDIwNzg3LCAyMDc5MSwgCisgICAgMjA3OTUsIDIwNzk5LCAyMDgwMywgMjA4MDcsIDIwODExLCAyMDgxNSwgMjA4MTksIDIwODIzLCAyMDgyNywgMjA4MzEsIAorICAgIDIwODM1LCAyMDgzOSwgMjA4NDMsIDIwODQ3LCAyMDg1MSwgMCwgMjA4NTUsIDIwODU5LCAyMDg2MywgMjA4NjcsIDAsIDAsIAorICAgIDIwODcxLCAyMDg3NSwgMjA4NzksIDIwODgzLCAyMDg4NywgMjA4OTEsIDIwODk1LCAwLCAyMDg5OSwgMCwgMjA5MDMsIAorICAgIDIwOTA3LCAyMDkxMSwgMjA5MTUsIDAsIDAsIDIwOTE5LCAyMDkyMywgMjA5MjcsIDIwOTMxLCAyMDkzNSwgMjA5MzksIAorICAgIDIwOTQzLCAyMDk0NywgMjA5NTEsIDIwOTU1LCAyMDk1OSwgMjA5NjMsIDIwOTY3LCAyMDk3MSwgMjA5NzUsIDIwOTc5LCAKKyAgICAyMDk4MywgMjA5ODcsIDIwOTkxLCAyMDk5NSwgMjA5OTksIDIxMDAzLCAyMTAwNywgMjEwMTAsIDIxMDE0LCAyMTAxOCwgCisgICAgMjEwMjIsIDIxMDI2LCAyMTAzMCwgMjEwMzQsIDIxMDM4LCAyMTA0MiwgMjEwNDYsIDIxMDUwLCAyMTA1NCwgMjEwNTgsIAorICAgIDIxMDYyLCAyMTA2NiwgMjEwNzAsIDIxMDc0LCAyMTA3OCwgMCwgMjEwODIsIDIxMDg2LCAyMTA5MCwgMjEwOTQsIDAsIDAsIAorICAgIDIxMDk4LCAyMTEwMSwgMjExMDUsIDIxMTA5LCAyMTExMywgMjExMTcsIDIxMTIxLCAyMTEyNSwgMjExMjksIDIxMTMzLCAKKyAgICAyMTEzNywgMjExNDEsIDIxMTQ1LCAyMTE0OSwgMjExNTMsIDIxMTU3LCAyMTE2MSwgMjExNjYsIDIxMTcxLCAyMTE3NiwgCisgICAgMjExODIsIDIxMTg4LCAyMTE5MywgMjExOTgsIDIxMjA0LCAyMTIwNywgMjEyMTEsIDIxMjE1LCAyMTIxOSwgMjEyMjMsIAorICAgIDIxMjI3LCAyMTIzMSwgMjEyMzUsIDAsIDIxMjM5LCAyMTI0MywgMjEyNDcsIDIxMjUxLCAwLCAwLCAyMTI1NSwgMjEyNTksIAorICAgIDIxMjYzLCAyMTI2NywgMjEyNzEsIDIxMjc1LCAyMTI3OSwgMCwgMjEyODMsIDAsIDIxMjg3LCAyMTI5MSwgMjEyOTUsIAorICAgIDIxMjk5LCAwLCAwLCAyMTMwMywgMjEzMDcsIDIxMzExLCAyMTMxNSwgMjEzMTksIDIxMzIzLCAyMTMyNywgMjEzMzEsIAorICAgIDIxMzM1LCAyMTM0MCwgMjEzNDUsIDIxMzUwLCAyMTM1NiwgMjEzNjIsIDIxMzY3LCAwLCAyMTM3MiwgMjEzNzYsIDIxMzgwLCAKKyAgICAyMTM4NCwgMjEzODgsIDIxMzkyLCAyMTM5NiwgMjE0MDAsIDIxNDA0LCAyMTQwOCwgMjE0MTIsIDIxNDE2LCAyMTQyMCwgCisgICAgMjE0MjQsIDIxNDI4LCAyMTQzMiwgMjE0MzYsIDIxNDM5LCAyMTQ0MywgMjE0NDcsIDIxNDUxLCAyMTQ1NSwgMjE0NTksIAorICAgIDIxNDYzLCAyMTQ2NywgMjE0NzEsIDIxNDc1LCAyMTQ3OSwgMjE0ODMsIDIxNDg3LCAyMTQ5MSwgMjE0OTUsIDIxNDk5LCAKKyAgICAyMTUwMywgMjE1MDcsIDIxNTExLCAyMTUxNSwgMjE1MTksIDIxNTIzLCAyMTUyNywgMjE1MzEsIDIxNTM1LCAyMTUzOSwgCisgICAgMjE1NDMsIDIxNTQ3LCAyMTU1MSwgMjE1NTUsIDIxNTU5LCAyMTU2MywgMjE1NjcsIDIxNTcxLCAyMTU3NSwgMjE1NzksIAorICAgIDIxNTgzLCAyMTU4NywgMjE1OTEsIDIxNTk1LCAwLCAyMTU5OSwgMjE2MDMsIDIxNjA3LCAyMTYxMSwgMCwgMCwgMjE2MTUsIAorICAgIDIxNjE5LCAyMTYyMywgMjE2MjcsIDIxNjMxLCAyMTYzNSwgMjE2MzksIDIxNjQzLCAyMTY0NywgMjE2NTEsIDIxNjU1LCAKKyAgICAyMTY1OSwgMjE2NjMsIDIxNjY3LCAyMTY3MSwgMjE2NzUsIDIxNjc5LCAyMTY4MywgMjE2ODcsIDIxNjkxLCAyMTY5NSwgCisgICAgMjE2OTksIDIxNzAzLCAyMTcwNywgMjE3MTEsIDIxNzE1LCAyMTcxOSwgMjE3MjMsIDIxNzI3LCAyMTczMSwgMjE3MzUsIAorICAgIDIxNzM5LCAyMTc0MywgMjE3NDcsIDIxNzUxLCAyMTc1NSwgMjE3NTksIDIxNzYzLCAyMTc2NywgMjE3NzEsIDIxNzc1LCAKKyAgICAyMTc3OSwgMjE3ODMsIDIxNzg3LCAyMTc5MSwgMjE3OTUsIDIxNzk5LCAyMTgwMywgMjE4MDcsIDIxODExLCAyMTgxNSwgCisgICAgMjE4MTksIDIxODIzLCAyMTgyNywgMjE4MzEsIDIxODM1LCAyMTgzOSwgMjE4NDIsIDIxODQ2LCAyMTg1MCwgMjE4NTQsIAorICAgIDIxODU4LCAyMTg2MiwgMjE4NjYsIDIxODcwLCAyMTg3NCwgMjE4NzgsIDAsIDAsIDIxODgyLCAyMTg5MSwgMjE4OTcsIAorICAgIDIxOTAyLCAyMTkwNiwgMjE5MDksIDIxOTE0LCAyMTkxNywgMjE5MjAsIDIxOTIzLCAyMTkyOCwgMjE5MzIsIDIxOTM3LCAKKyAgICAyMTk0MCwgMjE5NDMsIDIxOTQ2LCAyMTk0OSwgMjE5NTIsIDIxOTU1LCAyMTk1OCwgMjE5NjEsIDIxOTY0LCAyMTk2OCwgCisgICAgMjE5NzIsIDIxOTc2LCAyMTk4MCwgMjE5ODQsIDIxOTg4LCAyMTk5MiwgMjE5OTYsIDIyMDAwLCAyMjAwNCwgMCwgMCwgMCwgCisgICAgMjIwMTAsIDIyMDE2LCAyMjAyMCwgMjIwMjQsIDIyMDI4LCAyMjAzNCwgMjIwMzgsIDIyMDQyLCAyMjA0NiwgMjIwNTIsIAorICAgIDIyMDU2LCAyMjA2MCwgMjIwNjQsIDIyMDcwLCAyMjA3NCwgMjIwNzgsIDIyMDgyLCAyMjA4OCwgMjIwOTQsIDIyMTAwLCAKKyAgICAyMjEwOCwgMjIxMTQsIDIyMTIwLCAyMjEyNiwgMjIxMzIsIDIyMTM4LCAwLCAwLCAwLCAwLCAwLCAwLCAyMjE0NCwgMjIxNDcsIAorICAgIDIyMTUwLCAyMjE1MywgMjIxNTYsIDIyMTU5LCAyMjE2MywgMjIxNjcsIDIyMTcwLCAyMjE3NCwgMjIxNzgsIDIyMTgyLCAKKyAgICAyMjE4NiwgMjIxOTAsIDIyMTkzLCAyMjE5NywgMjIyMDEsIDIyMjA1LCAyMjIwOSwgMjIyMTMsIDIyMjE3LCAyMjIyMSwgCisgICAgMjIyMjUsIDIyMjI5LCAyMjIzMywgMjIyMzcsIDIyMjQwLCAyMjI0NCwgMjIyNDgsIDIyMjUyLCAyMjI1NiwgMjIyNTksIAorICAgIDIyMjYzLCAyMjI2NywgMjIyNzEsIDIyMjc1LCAyMjI3OSwgMjIyODMsIDIyMjg3LCAyMjI5MSwgMjIyOTUsIDIyMjk5LCAKKyAgICAyMjMwMywgMjIzMDcsIDIyMzExLCAyMjMxNCwgMjIzMTgsIDIyMzIyLCAyMjMyNiwgMjIzMzAsIDIyMzM0LCAyMjMzOCwgCisgICAgMjIzNDIsIDIyMzQ2LCAyMjM1MCwgMjIzNTQsIDIyMzU4LCAyMjM2MiwgMjIzNjYsIDIyMzcwLCAyMjM3NCwgMjIzNzgsIAorICAgIDIyMzgyLCAyMjM4NiwgMjIzOTAsIDIyMzk0LCAyMjM5OCwgMjI0MDIsIDIyNDA2LCAyMjQxMCwgMjI0MTQsIDIyNDE4LCAKKyAgICAyMjQyMiwgMjI0MjYsIDIyNDMwLCAyMjQzNCwgMjI0MzgsIDIyNDQyLCAyMjQ0NiwgMjI0NTAsIDIyNDUzLCAyMjQ1NywgCisgICAgMjI0NjEsIDIyNDY1LCAyMjQ2OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjI0NzMsIDIyNDc3LCAKKyAgICAyMjQ4MCwgMjI0ODQsIDIyNDg3LCAyMjQ5MSwgMjI0OTQsIDIyNDk4LCAyMjUwNCwgMjI1MDksIDIyNTEzLCAyMjUxNiwgCisgICAgMjI1MjAsIDIyNTI0LCAyMjUyOSwgMjI1MzMsIDIyNTM4LCAyMjU0MiwgMjI1NDcsIDIyNTUxLCAyMjU1NiwgMjI1NjAsIAorICAgIDIyNTY1LCAyMjU3MSwgMjI1NzUsIDIyNTgwLCAyMjU4NCwgMjI1ODksIDIyNTk1LCAyMjU5OSwgMjI2MDUsIDIyNjExLCAKKyAgICAyMjYxNSwgMjI2MjAsIDIyNjI4LCAyMjYzNiwgMjI2NDMsIDIyNjQ4LCAyMjY1MywgMjI2NjIsIDIyNjY5LCAyMjY3NiwgCisgICAgMjI2ODEsIDIyNjg3LCAyMjY5MSwgMjI2OTUsIDIyNjk5LCAyMjcwMywgMjI3MDcsIDIyNzExLCAyMjcxNSwgMjI3MTksIAorICAgIDIyNzIzLCAyMjcyNywgMjI3MzMsIDIyNzM4LCAyMjc0MywgMjI3NDYsIDIyNzUwLCAyMjc1NCwgMjI3NTksIDIyNzYzLCAKKyAgICAyMjc2OCwgMjI3NzIsIDIyNzc3LCAyMjc4MSwgMjI3ODYsIDIyNzkwLCAyMjc5NSwgMjI3OTksIDIyODA0LCAyMjgwOCwgCisgICAgMjI4MTMsIDIyODE5LCAyMjgyMywgMjI4MjgsIDIyODMzLCAyMjgzNywgMjI4NDEsIDIyODQ1LCAyMjg0OSwgMjI4NTIsIAorICAgIDIyODU2LCAyMjg2MiwgMjI4NjcsIDIyODcyLCAyMjg3NiwgMjI4ODAsIDIyODg0LCAyMjg4OSwgMjI4OTMsIDIyODk4LCAKKyAgICAyMjkwMiwgMjI5MDcsIDIyOTEwLCAyMjkxNCwgMjI5MTgsIDIyOTIzLCAyMjkyNywgMjI5MzIsIDIyOTM2LCAyMjk0MSwgCisgICAgMjI5NDcsIDIyOTUxLCAyMjk1NSwgMjI5NTksIDIyOTYzLCAyMjk2NywgMjI5NzEsIDIyOTc1LCAyMjk3OSwgMjI5ODMsIAorICAgIDIyOTg3LCAyMjk5MSwgMjI5OTcsIDIzMDAwLCAyMzAwNCwgMjMwMDgsIDIzMDEzLCAyMzAxNywgMjMwMjIsIDIzMDI2LCAKKyAgICAyMzAzMSwgMjMwMzUsIDIzMDQwLCAyMzA0NCwgMjMwNDksIDIzMDUzLCAyMzA1OCwgMjMwNjIsIDIzMDY3LCAyMzA3MywgCisgICAgMjMwNzcsIDIzMDgxLCAyMzA4NywgMjMwOTMsIDIzMDk5LCAyMzEwNSwgMjMxMDksIDIzMTEzLCAyMzExNywgMjMxMjEsIAorICAgIDIzMTI1LCAyMzEyOSwgMjMxMzUsIDIzMTM5LCAyMzE0MywgMjMxNDcsIDIzMTUyLCAyMzE1NiwgMjMxNjEsIDIzMTY1LCAKKyAgICAyMzE3MCwgMjMxNzQsIDIzMTc5LCAyMzE4MywgMjMxODgsIDIzMTkyLCAyMzE5NywgMjMyMDEsIDIzMjA2LCAyMzIxMiwgCisgICAgMjMyMTYsIDIzMjIyLCAyMzIyNiwgMjMyMzAsIDIzMjM0LCAyMzIzOCwgMjMyNDIsIDIzMjQ2LCAyMzI1MiwgMjMyNTUsIAorICAgIDIzMjU5LCAyMzI2MywgMjMyNjgsIDIzMjcyLCAyMzI3NywgMjMyODEsIDIzMjg2LCAyMzI5MCwgMjMyOTUsIDIzMjk5LCAKKyAgICAyMzMwNCwgMjMzMDgsIDIzMzEzLCAyMzMxNywgMjMzMjIsIDIzMzI4LCAyMzMzMSwgMjMzMzUsIDIzMzM5LCAyMzM0NCwgCisgICAgMjMzNDksIDIzMzUzLCAyMzM1NywgMjMzNjEsIDIzMzY1LCAyMzM2OSwgMjMzNzMsIDIzMzc5LCAyMzM4MiwgMjMzODYsIAorICAgIDIzMzkwLCAyMzM5NSwgMjMzOTksIDIzNDA0LCAyMzQwOCwgMjM0MTMsIDIzNDE5LCAyMzQyMywgMjM0MjgsIDIzNDMyLCAKKyAgICAyMzQzNiwgMjM0NDAsIDIzNDQ0LCAyMzQ0OCwgMjM0NTIsIDIzNDU2LCAyMzQ2MiwgMjM0NjYsIDIzNDcwLCAyMzQ3NCwgCisgICAgMjM0NzksIDIzNDgzLCAyMzQ4OCwgMjM0OTIsIDIzNDk3LCAyMzUwMSwgMjM1MDYsIDIzNTEwLCAyMzUxNSwgMjM1MTksIAorICAgIDIzNTI0LCAyMzUyOCwgMjM1MzMsIDIzNTM2LCAyMzU0MCwgMjM1NDQsIDIzNTQ4LCAyMzU1MiwgMjM1NTYsIDIzNTYwLCAKKyAgICAyMzU2NCwgMjM1NjgsIDIzNTc0LCAyMzU3NywgMjM1ODEsIDIzNTg1LCAyMzU5MCwgMjM1OTQsIDIzNTk5LCAyMzYwMywgCisgICAgMjM2MDgsIDIzNjEyLCAyMzYxNywgMjM2MjEsIDIzNjI2LCAyMzYzMCwgMjM2MzUsIDIzNjM5LCAyMzY0NCwgMjM2NTAsIAorICAgIDIzNjU0LCAyMzY2MCwgMjM2NjQsIDIzNjcwLCAyMzY3NiwgMjM2ODIsIDIzNjg4LCAyMzY5NCwgMjM3MDAsIDIzNzA2LCAKKyAgICAyMzcxMiwgMjM3MTYsIDIzNzIwLCAyMzcyNCwgMjM3MjgsIDIzNzMyLCAyMzczNiwgMjM3NDAsIDIzNzQ0LCAyMzc0OSwgCisgICAgMjM3NTMsIDIzNzU4LCAyMzc2MiwgMjM3NjcsIDIzNzcxLCAyMzc3NiwgMjM3ODAsIDIzNzg1LCAyMzc4OSwgMjM3OTQsIAorICAgIDIzNzk4LCAyMzgwMywgMjM4MDcsIDIzODExLCAyMzgxNSwgMjM4MTksIDIzODIzLCAyMzgyNywgMjM4MzEsIDIzODM3LCAKKyAgICAyMzg0MCwgMjM4NDQsIDIzODQ4LCAyMzg1MywgMjM4NTcsIDIzODYyLCAyMzg2NiwgMjM4NzEsIDIzODc1LCAyMzg4MCwgCisgICAgMjM4ODQsIDIzODg5LCAyMzg5MywgMjM4OTgsIDIzOTAyLCAyMzkwNywgMjM5MTMsIDIzOTE3LCAyMzkyMywgMjM5MjgsIAorICAgIDIzOTM0LCAyMzkzOCwgMjM5NDQsIDIzOTQ5LCAyMzk1MywgMjM5NTcsIDIzOTYxLCAyMzk2NSwgMjM5NjksIDIzOTc0LCAKKyAgICAyMzk3NywgMjM5ODEsIDIzOTg2LCAyMzk5MCwgMjM5OTUsIDIzOTk4LCAyNDAwMiwgMjQwMDYsIDI0MDEwLCAyNDAxNCwgCisgICAgMjQwMTgsIDI0MDIyLCAyNDAyNiwgMjQwMzAsIDI0MDM0LCAyNDAzOCwgMjQwNDIsIDI0MDQ3LCAyNDA1MSwgMjQwNTUsIAorICAgIDI0MDYxLCAyNDA2NSwgMjQwNzEsIDI0MDc1LCAyNDA4MSwgMjQwODUsIDI0MDg5LCAyNDA5MywgMjQwOTcsIDI0MTAxLCAKKyAgICAyNDEwNiwgMjQxMTAsIDI0MTE0LCAyNDExOCwgMjQxMjIsIDI0MTI2LCAyNDEzMCwgMjQxMzQsIDI0MTM4LCAyNDE0MiwgCisgICAgMjQxNDYsIDI0MTUyLCAyNDE1OCwgMjQxNjQsIDI0MTcwLCAyNDE3NiwgMjQxODEsIDI0MTg3LCAyNDE5MywgMjQxOTksIAorICAgIDI0MjAzLCAyNDIwNywgMjQyMTEsIDI0MjE1LCAyNDIxOSwgMjQyMjMsIDI0MjI3LCAyNDIzMSwgMjQyMzUsIDI0MjM5LCAKKyAgICAyNDI0MywgMjQyNDcsIDI0MjUxLCAyNDI1NiwgMjQyNjEsIDI0MjY2LCAyNDI3MCwgMjQyNzQsIDI0Mjc4LCAyNDI4MiwgCisgICAgMjQyODYsIDI0MjkwLCAyNDI5NCwgMjQyOTgsIDI0MzAyLCAyNDMwNiwgMjQzMTIsIDI0MzE4LCAyNDMyNCwgMjQzMzAsIAorICAgIDI0MzM2LCAyNDM0MiwgMjQzNDgsIDI0MzU0LCAyNDM2MCwgMjQzNjQsIDI0MzY4LCAyNDM3MiwgMjQzNzYsIDI0MzgwLCAKKyAgICAyNDM4NCwgMjQzODgsIDI0Mzk0LCAyNDQwMCwgMjQ0MDYsIDI0NDEyLCAyNDQxOCwgMjQ0MjQsIDI0NDMwLCAyNDQzNiwgCisgICAgMjQ0NDIsIDI0NDQ3LCAyNDQ1MiwgMjQ0NTcsIDI0NDYyLCAyNDQ2OCwgMjQ0NzQsIDI0NDgwLCAyNDQ4NiwgMjQ0OTIsIAorICAgIDI0NDk4LCAyNDUwNCwgMjQ1MDksIDI0NTE1LCAyNDUyMSwgMjQ1MjcsIDI0NTMyLCAyNDUzOCwgMjQ1NDQsIDI0NTUwLCAKKyAgICAyNDU1NSwgMjQ1NjAsIDI0NTY1LCAyNDU3MCwgMjQ1NzUsIDI0NTgwLCAyNDU4NSwgMjQ1OTAsIDI0NTk1LCAyNDYwMCwgCisgICAgMjQ2MDUsIDI0NjEwLCAyNDYxNCwgMjQ2MTksIDI0NjI0LCAyNDYyOSwgMjQ2MzQsIDI0NjM5LCAyNDY0NCwgMjQ2NDksIAorICAgIDI0NjU0LCAyNDY1OSwgMjQ2NjQsIDI0NjY5LCAyNDY3NCwgMjQ2NzksIDI0Njg0LCAyNDY4OSwgMjQ2OTQsIDI0Njk5LCAKKyAgICAyNDcwNCwgMjQ3MDksIDI0NzE0LCAyNDcxOSwgMjQ3MjQsIDI0NzI5LCAyNDczNCwgMjQ3MzksIDI0NzQ0LCAyNDc0OSwgCisgICAgMjQ3NTQsIDI0NzU5LCAyNDc2MywgMjQ3NjgsIDI0NzczLCAyNDc3OCwgMjQ3ODMsIDI0Nzg4LCAyNDc5MywgMjQ3OTgsIAorICAgIDI0ODAzLCAyNDgwOCwgMjQ4MTMsIDI0ODE4LCAyNDgyMywgMjQ4MjgsIDI0ODMzLCAyNDgzOCwgMjQ4NDMsIDI0ODQ4LCAKKyAgICAyNDg1MywgMjQ4NTgsIDI0ODYzLCAyNDg2OCwgMjQ4NzMsIDI0ODc4LCAyNDg4MywgMjQ4ODgsIDI0ODkyLCAyNDg5NywgCisgICAgMjQ5MDIsIDI0OTA3LCAyNDkxMiwgMjQ5MTcsIDI0OTIxLCAyNDkyNiwgMjQ5MzEsIDI0OTM2LCAyNDk0MSwgMjQ5NDYsIAorICAgIDI0OTUwLCAyNDk1NSwgMjQ5NjEsIDI0OTY2LCAyNDk3MSwgMjQ5NzYsIDI0OTgxLCAyNDk4NywgMjQ5OTIsIDI0OTk3LCAKKyAgICAyNTAwMiwgMjUwMDcsIDI1MDEyLCAyNTAxNywgMjUwMjIsIDI1MDI3LCAyNTAzMiwgMjUwMzcsIDI1MDQyLCAyNTA0NywgCisgICAgMjUwNTIsIDI1MDU3LCAyNTA2MiwgMjUwNjcsIDI1MDcyLCAyNTA3NywgMjUwODIsIDI1MDg3LCAyNTA5MiwgMjUwOTcsIAorICAgIDI1MTAyLCAyNTEwNywgMjUxMTIsIDI1MTE3LCAyNTEyMiwgMjUxMjcsIDI1MTMyLCAyNTEzNywgMjUxNDIsIDI1MTQ3LCAKKyAgICAyNTE1MiwgMjUxNTcsIDI1MTYyLCAyNTE2NywgMjUxNzIsIDI1MTc3LCAyNTE4MiwgMjUxODcsIDI1MTkyLCAyNTE5NywgCisgICAgMjUyMDIsIDI1MjA3LCAyNTIxMywgMjUyMTgsIDI1MjIzLCAyNTIyOCwgMjUyMzMsIDI1MjM4LCAyNTI0MywgMjUyNDgsIAorICAgIDI1MjUzLCAyNTI1OCwgMjUyNjMsIDI1MjY4LCAyNTI3MiwgMjUyNzcsIDI1MjgyLCAyNTI4NywgMjUyOTIsIDI1Mjk3LCAKKyAgICAyNTMwMiwgMjUzMDcsIDI1MzEyLCAyNTMxNywgMjUzMjIsIDI1MzI3LCAyNTMzMiwgMjUzMzcsIDI1MzQyLCAyNTM0NywgCisgICAgMjUzNTIsIDI1MzU3LCAyNTM2MiwgMjUzNjcsIDI1MzcyLCAyNTM3NywgMjUzODIsIDI1Mzg3LCAyNTM5MiwgMjUzOTcsIAorICAgIDI1NDAyLCAyNTQwOCwgMjU0MTIsIDI1NDE2LCAyNTQyMCwgMjU0MjQsIDI1NDI4LCAyNTQzMiwgMjU0MzYsIDI1NDQwLCAKKyAgICAyNTQ0NiwgMjU0NTIsIDI1NDU4LCAyNTQ2NCwgMjU0NzAsIDI1NDc2LCAyNTQ4MiwgMjU0ODksIDI1NDk1LCAyNTUwMCwgCisgICAgMjU1MDUsIDI1NTEwLCAyNTUxNSwgMjU1MjAsIDI1NTI1LCAyNTUzMCwgMjU1MzUsIDI1NTQwLCAyNTU0NSwgMjU1NTAsIAorICAgIDI1NTU1LCAyNTU2MCwgMjU1NjUsIDI1NTcwLCAyNTU3NSwgMjU1ODAsIDI1NTg1LCAyNTU5MCwgMjU1OTUsIDI1NjAwLCAKKyAgICAyNTYwNSwgMjU2MTAsIDI1NjE1LCAyNTYyMCwgMjU2MjUsIDI1NjMwLCAyNTYzNSwgMCwgMCwgMCwgMjU2NDIsIDI1NjUyLCAKKyAgICAyNTY1NiwgMjU2NjMsIDI1NjY3LCAyNTY3MSwgMjU2NzUsIDI1NjgzLCAyNTY4NywgMjU2OTIsIDI1Njk3LCAyNTcwMiwgCisgICAgMjU3MDYsIDI1NzExLCAyNTcxNiwgMjU3MTksIDI1NzIzLCAyNTcyNywgMjU3MzYsIDI1NzQwLCAyNTc0NCwgMjU3NTAsIAorICAgIDI1NzU0LCAyNTc1OCwgMjU3NjYsIDI1NzcwLCAyNTc3OCwgMjU3ODQsIDI1NzkwLCAyNTc5NiwgMjU4MDIsIDI1ODEyLCAKKyAgICAyNTgxOCwgMjU4MjIsIDI1ODMxLCAyNTgzNCwgMjU4NDAsIDI1ODQ0LCAyNTg1MCwgMjU4NTUsIDI1ODYxLCAyNTg2OSwgCisgICAgMjU4NzUsIDI1ODgxLCAyNTg4OSwgMjU4OTUsIDI1ODk5LCAyNTkwMywgMjU5MTMsIDI1OTE5LCAyNTkyMywgMjU5MzMsIAorICAgIDI1OTM5LCAyNTk0MywgMjU5NDcsIDI1OTU0LCAyNTk2MSwgMjU5NjYsIDI1OTcxLCAyNTk4MCwgMjU5ODQsIDI1OTg4LCAKKyAgICAyNTk5MiwgMjYwMDAsIDI2MDA3LCAyNjAxMSwgMjYwMTUsIDI2MDE5LCAyNjAyMywgMjYwMjcsIDI2MDMxLCAyNjAzNSwgCisgICAgMjYwMzksIDI2MDQzLCAyNjA0NywgMjYwNTEsIDI2MDU2LCAyNjA2MSwgMjYwNjYsIDI2MDcwLCAyNjA3NCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYwNzgsIDI2MDgyLCAyNjA4NiwgMjYwOTAsIDI2MDk0LCAKKyAgICAyNjA5OSwgMjYxMDQsIDI2MTA5LCAyNjExNCwgMjYxMTgsIDI2MTIyLCAyNjEyNywgMjYxMzEsIDAsIDI2MTM1LCAyNjE0MCwgCisgICAgMjYxNDUsIDI2MTQ5LCAyNjE1MywgMjYxNTgsIDI2MTYzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAyNjE2OCwgMjYxNzIsIDI2MTc2LCAyNjE4MCwgMjYxODQsIDI2MTg5LCAyNjE5NCwgMjYxOTksIDI2MjA0LCAyNjIwOCwgCisgICAgMjYyMTIsIDI2MjE3LCAyNjIyMSwgMjYyMjUsIDI2MjI5LCAyNjIzNCwgMjYyMzksIDI2MjQzLCAyNjI0NywgMjYyNTIsIAorICAgIDI2MjU3LCAyNjI2MiwgMjYyNjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI2MjczLCAyNjI3NywgMjYyODEsIAorICAgIDI2Mjg1LCAyNjI4OSwgMjYyOTQsIDI2Mjk5LCAyNjMwNCwgMjYzMDksIDI2MzEzLCAyNjMxNywgMjYzMjIsIDI2MzI2LCAKKyAgICAyNjMzMCwgMjYzMzQsIDI2MzM5LCAyNjM0NCwgMjYzNDgsIDI2MzUyLCAyNjM1NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMjYzNjIsIDI2MzY2LCAyNjM3MCwgMjYzNzQsIDI2Mzc4LCAyNjM4MywgMjYzODgsIDI2MzkzLCAKKyAgICAyNjM5OCwgMjY0MDIsIDI2NDA2LCAyNjQxMSwgMjY0MTUsIDAsIDI2NDE5LCAyNjQyNCwgMjY0MjksIDAsIDI2NDMzLCAKKyAgICAyNjQzOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjY0NDMsIDI2NDQ2LCAyNjQ1MCwgMjY0NTQsIAorICAgIDI2NDU4LCAyNjQ2MiwgMjY0NjYsIDI2NDcwLCAyNjQ3NCwgMjY0NzgsIDI2NDgyLCAyNjQ4NiwgMjY0OTAsIDI2NDk0LCAKKyAgICAyNjQ5OCwgMjY1MDIsIDI2NTA2LCAyNjUxMCwgMjY1MTMsIDI2NTE3LCAyNjUyMSwgMjY1MjUsIDI2NTI5LCAyNjUzMywgCisgICAgMjY1MzcsIDI2NTQxLCAyNjU0NSwgMjY1NDksIDI2NTUzLCAyNjU1NywgMjY1NjEsIDI2NTY1LCAyNjU2OCwgMjY1NzEsIAorICAgIDI2NTc1LCAyNjU3OSwgMjY1ODUsIDI2NTkxLCAyNjU5NywgMjY2MDMsIDI2NjA5LCAyNjYxNSwgMjY2MjEsIDI2NjI3LCAKKyAgICAyNjYzMywgMjY2MzksIDI2NjQ1LCAyNjY1MSwgMjY2NTcsIDI2NjYzLCAyNjY3MiwgMjY2ODEsIDI2Njg3LCAyNjY5MywgCisgICAgMjY2OTksIDI2NzA0LCAyNjcwOCwgMjY3MTMsIDI2NzE4LCAyNjcyMywgMjY3MjcsIDI2NzMyLCAyNjczNywgMjY3NDIsIAorICAgIDI2NzQ2LCAyNjc1MSwgMjY3NTUsIDI2NzYwLCAyNjc2NSwgMjY3NzAsIDI2Nzc1LCAyNjc3OSwgMjY3ODMsIDI2Nzg3LCAKKyAgICAyNjc5MSwgMjY3OTUsIDI2Nzk5LCAyNjgwMywgMjY4MDcsIDI2ODExLCAyNjgxNSwgMjY4MjEsIDI2ODI1LCAyNjgyOSwgCisgICAgMjY4MzMsIDI2ODM3LCAyNjg0MSwgMjY4NDksIDI2ODU1LCAyNjg1OSwgMjY4NjUsIDI2ODY5LCAyNjg3NSwgMjY4NzksIDAsIAorICAgIDAsIDI2ODgzLCAyNjg4NywgMjY4OTAsIDI2ODkzLCAyNjg5NiwgMjY4OTksIDI2OTAyLCAyNjkwNSwgMjY5MDgsIDI2OTExLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAyNjkxNCwgMjY5MjIsIDI2OTMwLCAyNjkzOCwgMjY5NDYsIDI2OTU0LCAyNjk2MiwgMjY5NzAsIAorICAgIDI2OTc4LCAyNjk4NiwgMCwgMCwgMCwgMCwgMCwgMCwgMjY5OTQsIDI2OTk3LCAyNzAwMCwgMjcwMDMsIDI3MDA4LCAyNzAxMSwgCisgICAgMjcwMTYsIDI3MDIzLCAyNzAzMSwgMjcwMzYsIDI3MDQzLCAyNzA0NiwgMjcwNTMsIDI3MDYwLCAyNzA2NywgMCwgMjcwNzEsIAorICAgIDI3MDc1LCAyNzA3OCwgMjcwODEsIDI3MDg0LCAyNzA4NywgMjcwOTAsIDI3MDkzLCAyNzA5NiwgMjcwOTksIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDI3MTAyLCAyNzEwNSwgMjcxMDgsIDI3MTExLCAyNzExNCwgMjcxMTcsIDI3MTIxLCAyNzEyNSwgMjcxMjksIAorICAgIDI3MTMyLCAyNzEzNiwgMjcxNDAsIDI3MTQzLCAyNzE0NywgMjcxNTEsIDI3MTU0LCAyNzE1OCwgMjcxNjEsIDI3MTY1LCAKKyAgICAyNzE2OSwgMjcxNzMsIDI3MTc3LCAyNzE4MSwgMjcxODQsIDI3MTg3LCAyNzE5MSwgMjcxOTUsIDI3MTk4LCAyNzIwMiwgCisgICAgMjcyMDYsIDI3MjEwLCAyNzIxNCwgMjcyMTgsIDI3MjIyLCAyNzIyNiwgMjcyMzAsIDI3MjM3LCAyNzI0MiwgMjcyNDcsIAorICAgIDI3MjUyLCAyNzI1NywgMjcyNjMsIDI3MjY5LCAyNzI3NSwgMjcyODEsIDI3Mjg2LCAyNzI5MiwgMjcyOTgsIDI3MzAzLCAKKyAgICAyNzMwOSwgMjczMTUsIDI3MzIxLCAyNzMyNywgMjczMzMsIDI3MzM4LCAyNzM0NCwgMjczNDksIDI3MzU1LCAyNzM2MSwgCisgICAgMjczNjcsIDI3MzczLCAyNzM3OSwgMjczODQsIDI3Mzg5LCAyNzM5NSwgMjc0MDEsIDI3NDA2LCAyNzQxMiwgMjc0MTcsIAorICAgIDI3NDIzLCAyNzQyOCwgMjc0MzMsIDI3NDM5LCAyNzQ0NSwgMjc0NTEsIDI3NDU3LCAyNzQ2MywgMjc0NjksIDI3NDc1LCAKKyAgICAyNzQ4MSwgMjc0ODcsIDI3NDkzLCAyNzQ5OSwgMjc1MDUsIDI3NTEwLCAyNzUxNSwgMjc1MjAsIDI3NTI2LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAyNzUzMiwgMjc1NDEsIDI3NTUwLCAyNzU1OCwgMjc1NjYsIDI3NTc2LCAyNzU4NCwgMjc1OTMsIAorICAgIDI3NjAwLCAyNzYwNywgMjc2MTQsIDI3NjIyLCAyNzYzMCwgMjc2MzgsIDI3NjQ2LCAyNzY1NCwgMjc2NjIsIDI3NjcwLCAKKyAgICAyNzY3OCwgMjc2ODUsIDI3NjkzLCAyNzcwMSwgMjc3MDksIDI3NzE3LCAyNzcyNSwgMjc3MzUsIDI3NzQ1LCAyNzc1NSwgCisgICAgMjc3NjUsIDI3Nzc1LCAyNzc4NSwgMjc3OTUsIDI3ODA1LCAyNzgxNSwgMjc4MjUsIDI3ODM1LCAyNzg0NSwgMjc4NTUsIAorICAgIDI3ODY1LCAyNzg3MywgMjc4ODEsIDI3ODkxLCAyNzg5OSwgMCwgMCwgMCwgMCwgMCwgMjc5MDksIDI3OTEzLCAyNzkxNywgCisgICAgMjc5MjEsIDI3OTI1LCAyNzkyOSwgMjc5MzMsIDI3OTM3LCAyNzk0MSwgMjc5NDUsIDI3OTQ5LCAyNzk1MywgMjc5NTcsIAorICAgIDI3OTYxLCAyNzk2NSwgMjc5NjksIDI3OTczLCAyNzk3NywgMjc5ODEsIDI3OTg1LCAyNzk4OSwgMjc5OTMsIDI3OTk3LCAKKyAgICAyODAwMSwgMjgwMDcsIDI4MDExLCAyODAxNywgMjgwMjEsIDI4MDI3LCAyODAzMSwgMjgwMzcsIDI4MDQxLCAyODA0NSwgCisgICAgMjgwNDksIDI4MDUzLCAyODA1NywgMjgwNjEsIDI4MDY3LCAyODA3MywgMjgwNzksIDI4MDg1LCAyODA5MCwgMjgwOTYsIAorICAgIDI4MTAyLCAyODEwOCwgMjgxMTQsIDI4MTIwLCAyODEyNiwgMjgxMzMsIDI4MTM5LCAyODE0NCwgMjgxNDksIDI4MTUzLCAKKyAgICAyODE1NywgMjgxNjEsIDI4MTY1LCAyODE2OSwgMjgxNzMsIDI4MTc3LCAyODE4MywgMjgxODksIDI4MTk1LCAyODIwMCwgCisgICAgMjgyMDcsIDI4MjEyLCAyODIxNywgMjgyMjMsIDI4MjI4LCAyODIzNSwgMjgyNDIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDI4MjQ5LCAyODI1NSwgMjgyNTksIDI4MjY0LCAyODI2OSwgMjgyNzQsIDI4Mjc5LCAyODI4NCwgMjgyODksIAorICAgIDI4Mjk0LCAyODI5OSwgMjgzMDQsIDI4MzA5LCAyODMxNCwgMjgzMTksIDI4MzI0LCAyODMyOCwgMjgzMzIsIDI4MzM3LCAKKyAgICAyODM0MiwgMjgzNDcsIDI4MzUxLCAyODM1NSwgMjgzNTksIDI4MzY0LCAyODM2OSwgMjgzNzQsIDI4Mzc5LCAyODM4MywgMCwgCisgICAgMCwgMCwgMjgzODcsIDI4MzkyLCAyODM5NywgMjg0MDIsIDI4NDA4LCAyODQxNCwgMjg0MjAsIDI4NDI2LCAyODQzMSwgCisgICAgMjg0MzYsIDI4NDQyLCAyODQ0OCwgMCwgMCwgMCwgMCwgMjg0NTUsIDI4NDYwLCAyODQ2NiwgMjg0NzIsIDI4NDc4LCAKKyAgICAyODQ4MywgMjg0ODgsIDI4NDkzLCAyODQ5OCwgMjg1MDQsIDI4NTA5LCAyODUxNCwgMCwgMCwgMCwgMCwgMjg1MTksIDAsIDAsIAorICAgIDAsIDI4NTI0LCAyODUyOSwgMjg1MzQsIDI4NTM5LCAyODU0MywgMjg1NDcsIDI4NTUxLCAyODU1NSwgMjg1NTksIDI4NTYzLCAKKyAgICAyODU2NywgMjg1NzEsIDI4NTc1LCAyODU4MCwgMjg1ODYsIDI4NTkyLCAyODU5OCwgMjg2MDMsIDI4NjA4LCAyODYxNCwgCisgICAgMjg2MjAsIDI4NjI2LCAyODYzMSwgMjg2MzcsIDI4NjQyLCAyODY0OCwgMjg2NTQsIDI4NjU5LCAyODY2NSwgMjg2NzEsIAorICAgIDI4Njc3LCAyODY4MiwgMjg2ODcsIDI4NjkyLCAyODY5OCwgMjg3MDQsIDI4NzA5LCAyODcxNSwgMjg3MjAsIDI4NzI2LCAKKyAgICAyODczMSwgMjg3MzcsIDAsIDAsIDI4NzQzLCAyODc0OSwgMjg3NTUsIDI4NzYxLCAyODc2NywgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMjg3NzMsIDI4NzgwLCAyODc4NywgMjg3OTMsIDI4ODAwLCAyODgwNywgMjg4MTMsIDI4ODIwLCAKKyAgICAyODgyNywgMjg4MzQsIDI4ODQwLCAyODg0NiwgMjg4NTMsIDI4ODU5LCAyODg2NSwgMjg4NzIsIDI4ODc5LCAyODg4NSwgCisgICAgMjg4OTIsIDI4ODk5LCAyODkwNSwgMjg5MTEsIDI4OTE4LCAyODkyNCwgMjg5MzAsIDI4OTM3LCAyODk0MywgMjg5NTAsIAorICAgIDI4OTU3LCAyODk2NCwgMjg5NzEsIDI4OTc4LCAyODk4NSwgMjg5OTEsIDI4OTk4LCAyOTAwNSwgMjkwMTEsIDI5MDE4LCAKKyAgICAyOTAyNSwgMjkwMzIsIDI5MDM5LCAyOTA0NiwgMjkwNTMsIDI5MDYwLCAwLCAwLCAwLCAwLCAyOTA2NywgMjkwNzUsIAorICAgIDI5MDgyLCAyOTA4OSwgMjkwOTUsIDI5MTAyLCAyOTEwOCwgMjkxMTUsIDI5MTIxLCAyOTEyOCwgMjkxMzUsIDI5MTQyLCAKKyAgICAyOTE0OSwgMjkxNTYsIDI5MTYzLCAyOTE3MCwgMjkxNzcsIDI5MTg0LCAyOTE5MSwgMjkxOTgsIDI5MjA1LCAyOTIxMSwgCisgICAgMjkyMTgsIDI5MjI1LCAyOTIzMiwgMjkyMzgsIDAsIDAsIDAsIDAsIDAsIDAsIDI5MjQ0LCAyOTI1MCwgMjkyNTUsIDI5MjYwLCAKKyAgICAyOTI2NSwgMjkyNzAsIDI5Mjc1LCAyOTI4MCwgMjkyODUsIDI5MjkwLCAyOTI5NSwgMCwgMCwgMCwgMjkzMDEsIDI5MzA3LCAKKyAgICAyOTMxMywgMjkzMTcsIDI5MzIzLCAyOTMyOSwgMjkzMzUsIDI5MzQxLCAyOTM0NywgMjkzNTMsIDI5MzU5LCAyOTM2NSwgCisgICAgMjkzNzEsIDI5Mzc3LCAyOTM4MywgMjkzODksIDI5Mzk1LCAyOTQwMSwgMjk0MDcsIDI5NDExLCAyOTQxNywgMjk0MjMsIAorICAgIDI5NDI5LCAyOTQzNSwgMjk0NDEsIDI5NDQ3LCAyOTQ1MywgMjk0NTksIDI5NDY1LCAyOTQ3MSwgMjk0NzcsIDI5NDgzLCAKKyAgICAyOTQ4OSwgMjk0OTUsIDI5NTAxLCAyOTUwNSwgMjk1MTAsIDI5NTE1LCAyOTUyMCwgMjk1MjQsIDI5NTI5LCAyOTUzMywgCisgICAgMjk1MzgsIDI5NTQzLCAyOTU0OCwgMjk1NTIsIDI5NTU3LCAyOTU2MiwgMjk1NjcsIDI5NTcyLCAyOTU3NywgMjk1ODEsIAorICAgIDI5NTg1LCAyOTU5MCwgMjk1OTUsIDI5NTk5LCAyOTYwMywgMjk2MDcsIDI5NjEyLCAyOTYxNywgMjk2MjIsIDI5NjI3LCAwLCAKKyAgICAwLCAyOTYzMywgMjk2MzcsIDI5NjQ0LCAyOTY0OSwgMjk2NTUsIDI5NjYxLCAyOTY2NiwgMjk2NzIsIDI5Njc4LCAyOTY4MywgCisgICAgMjk2ODksIDI5Njk1LCAyOTcwMSwgMjk3MDYsIDI5NzEyLCAyOTcxNywgMjk3MjIsIDI5NzI4LCAyOTczMywgMjk3MzksIAorICAgIDI5NzQ0LCAyOTc1MCwgMjk3NTYsIDI5NzYyLCAyOTc2OCwgMjk3NzIsIDI5Nzc3LCAyOTc4MiwgMjk3ODgsIDI5Nzk0LCAKKyAgICAyOTc5OSwgMjk4MDUsIDI5ODExLCAyOTgxNSwgMjk4MjAsIDI5ODI1LCAyOTgyOSwgMjk4MzQsIDI5ODM5LCAyOTg0NCwgCisgICAgMjk4NDksIDI5ODU1LCAyOTg2MSwgMjk4NjYsIDI5ODcxLCAyOTg3NiwgMjk4ODAsIDI5ODg1LCAyOTg4OSwgMjk4OTQsIAorICAgIDI5ODk4LCAyOTkwMywgMjk5MDgsIDI5OTEzLCAyOTkxOCwgMjk5MjQsIDI5OTMwLCAyOTkzNywgMjk5NDcsIDI5OTU2LCAKKyAgICAyOTk2MywgMjk5NjksIDI5OTc5LCAyOTk4NCwgMjk5OTAsIDAsIDI5OTk1LCAzMDAwMCwgMzAwMDUsIDMwMDEzLCAzMDAxOSwgCisgICAgMzAwMjcsIDMwMDMyLCAzMDAzOCwgMzAwNDQsIDMwMDUwLCAzMDA1NSwgMzAwNjEsIDMwMDY2LCAzMDA3MywgMzAwNzksIAorICAgIDMwMDg0LCAzMDA5MCwgMzAwOTYsIDMwMTAyLCAzMDEwOSwgMzAxMTYsIDMwMTIzLCAzMDEyOCwgMzAxMzMsIDMwMTQwLCAKKyAgICAzMDE0NywgMzAxNTQsIDMwMTYxLCAzMDE2OCwgMCwgMCwgMzAxNzUsIDMwMTgyLCAzMDE4OSwgMzAxOTUsIDMwMjAxLCAKKyAgICAzMDIwNywgMzAyMTMsIDMwMjE5LCAzMDIyNSwgMzAyMzEsIDMwMjM3LCAwLCAwLCAwLCAwLCAwLCAwLCAzMDI0MywgMzAyNDksIAorICAgIDMwMjU0LCAzMDI1OSwgMzAyNjQsIDMwMjY5LCAzMDI3NCwgMzAyNzksIDMwMjg0LCAzMDI4OSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMzAyOTQsIDMwMjk5LCAzMDMwNCwgMzAzMDksIDMwMzE0LCAzMDMxOSwgMzAzMjQsIDMwMzMzLCAzMDM0MCwgMzAzNDUsIAorICAgIDMwMzUwLCAzMDM1NSwgMzAzNjAsIDMwMzY1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3MTU1OSwgNzE1NjYsIDcxNTc0LCA3MTU4MiwgCi0gICAgNzE1ODksIDcxNTk3LCA3MTYwNCwgNzE2MTAsIDcxNjE2LCA3MTYyMywgNzE2MjksIDcxNjM1LCA3MTY0MSwgNzE2NDgsIAotICAgIDcxNjU1LCA3MTY2MiwgNzE2NjksIDcxNjc2LCA3MTY4MywgNzE2OTAsIDcxNjk3LCA3MTcwNCwgNzE3MTEsIDcxNzE4LCAKLSAgICA3MTcyNSwgNzE3MzIsIDcxNzM5LCA3MTc0NSwgNzE3NTIsIDcxNzU5LCA3MTc2NiwgNzE3NzMsIDcxNzgwLCA3MTc4NywgCi0gICAgNzE3OTQsIDcxODAxLCA3MTgwOCwgNzE4MTUsIDcxODIyLCA3MTgyOSwgNzE4MzYsIDcxODQzLCA3MTg1MCwgNzE4NTcsIAotICAgIDcxODY0LCA3MTg3MSwgNzE4NzksIDcxODg3LCA3MTg5NSwgNzE5MDMsIDAsIDAsIDAsIDAsIDcxOTExLCA3MTkyMCwgCi0gICAgNzE5MjksIDcxOTM4LCA3MTk0NywgNzE5NTYsIDcxOTY1LCA3MTk3MiwgNzE5NzksIDcxOTg2LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA3MTk5MywgNzE5OTcsIDcyMDAyLCA3MjAwNywgNzIwMTIsIDcyMDE3LCA3MjAyMiwgNzIwMjcsIDcyMDMyLCA3MjAzNywgCi0gICAgNzIwNDIsIDcyMDQ3LCA3MjA1MSwgNzIwNTUsIDcyMDYwLCA3MjA2NSwgNzIwNjksIDcyMDc0LCA3MjA3OSwgNzIwODQsIAotICAgIDcyMDg5LCA3MjA5NCwgNzIwOTksIDcyMTA0LCA3MjEwOCwgNzIxMTIsIDcyMTE3LCA3MjEyMiwgNzIxMjcsIDcyMTMxLCAKLSAgICA3MjEzNSwgNzIxMzksIDcyMTQzLCA3MjE0NywgNzIxNTEsIDcyMTU2LCA3MjE2MSwgNzIxNjYsIDcyMTcxLCA3MjE3NiwgCi0gICAgNzIxODMsIDcyMTg5LCA3MjE5NCwgNzIxOTksIDcyMjA0LCA3MjIwOSwgNzIyMTUsIDcyMjIyLCA3MjIyOCwgNzIyMzUsIAotICAgIDcyMjQxLCA3MjI0NywgNzIyNTIsIDcyMjU5LCA3MjI2NSwgNzIyNzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcyMjc2LCAKLSAgICA3MjI4MCwgNzIyODQsIDcyMjg3LCA3MjI5MSwgNzIyOTQsIDcyMjk4LCA3MjMwMSwgNzIzMDUsIDcyMzA5LCA3MjMxNCwgCi0gICAgNzIzMTgsIDcyMzIzLCA3MjMyNiwgNzIzMzAsIDcyMzM0LCA3MjMzNywgNzIzNDEsIDcyMzQ1LCA3MjM0OCwgNzIzNTIsIAotICAgIDcyMzU2LCA3MjM2MCwgNzIzNjQsIDcyMzY4LCA3MjM3MiwgNzIzNzYsIDcyMzgwLCA3MjM4NCwgNzIzODgsIDcyMzkyLCAKLSAgICA3MjM5NiwgNzI0MDAsIDcyNDA0LCA3MjQwOCwgNzI0MTIsIDcyNDE2LCA3MjQyMCwgNzI0MjMsIDcyNDI2LCA3MjQzMCwgCi0gICAgNzI0MzQsIDcyNDM4LCA3MjQ0MSwgNzI0NDQsIDcyNDQ3LCA3MjQ1MSwgNzI0NTUsIDcyNDU5LCA3MjQ2MywgNzI0NjcsIAotICAgIDcyNDcwLCA3MjQ3NCwgNzI0ODAsIDcyNDg1LCA3MjQ4OSwgNzI0OTQsIDcyNDk4LCA3MjUwMywgNzI1MDgsIDcyNTE0LCAKLSAgICA3MjUxOSwgNzI1MjUsIDcyNTI5LCA3MjUzNCwgNzI1MzksIDcyNTQzLCA3MjU0OCwgNzI1NTMsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDcyNTU3LCA3MjU2MCwgNzI1NjQsIDcyNTY4LCA3MjU3MSwgNzI1NzQsIDcyNTc3LCA3MjU4MCwgNzI1ODMsIAotICAgIDcyNTg2LCA3MjU4OSwgNzI1OTIsIDAsIDAsIDAsIDAsIDAsIDAsIDcyNTk1LCA3MjYwMCwgNzI2MDQsIDcyNjA4LCA3MjYxMiwgCi0gICAgNzI2MTYsIDcyNjIwLCA3MjYyNCwgNzI2MjgsIDcyNjMyLCA3MjYzNiwgNzI2NDAsIDcyNjQ0LCA3MjY0OCwgNzI2NTIsIAotICAgIDcyNjU2LCA3MjY2MCwgNzI2NjUsIDcyNjcwLCA3MjY3NiwgNzI2ODIsIDcyNjg5LCA3MjY5NCwgNzI2OTksIDcyNzA1LCAKLSAgICA3MjcwOSwgNzI3MTQsIDcyNzE3LCAwLCAwLCAwLCAwLCA3MjcyMCwgNzI3MjcsIDcyNzMzLCA3MjczOSwgNzI3NDUsIAotICAgIDcyNzUxLCA3Mjc1NywgNzI3NjMsIDcyNzY5LCA3Mjc3NSwgNzI3ODEsIDcyNzg3LCA3Mjc5NCwgNzI4MDEsIDcyODA4LCAKLSAgICA3MjgxNSwgNzI4MjIsIDcyODI5LCA3MjgzNiwgNzI4NDMsIDcyODUwLCA3Mjg1NiwgNzI4NjIsIDcyODY5LCA3Mjg3NSwgCi0gICAgNzI4ODIsIDcyODg5LCA3Mjg5NSwgNzI5MDEsIDcyOTA4LCA3MjkxNSwgNzI5MjIsIDcyOTI4LCA3MjkzNSwgNzI5NDIsIAotICAgIDcyOTQ4LCA3Mjk1NSwgNzI5NjEsIDcyOTY4LCA3Mjk3NSwgNzI5ODEsIDcyOTg3LCA3Mjk5NCwgNzMwMDAsIDczMDA3LCAKLSAgICA3MzAxNCwgNzMwMjMsIDczMDMwLCA3MzAzNywgNzMwNDEsIDczMDQ2LCA3MzA1MSwgNzMwNTYsIDczMDYxLCA3MzA2NSwgCi0gICAgNzMwNjksIDczMDc0LCA3MzA3OCwgNzMwODMsIDczMDg4LCA3MzA5MywgNzMwOTgsIDczMTAyLCA3MzEwNywgNzMxMTEsIAotICAgIDczMTE2LCA3MzEyMCwgNzMxMjUsIDczMTMwLCA3MzEzNSwgNzMxNDAsIDczMTQ0LCA3MzE0OSwgNzMxNTQsIDczMTU5LCAKLSAgICA3MzE2NSwgNzMxNzAsIDczMTc2LCA3MzE4MiwgNzMxODgsIDczMTk1LCA3MzIwMSwgNzMyMDcsIDczMjE0LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3MzIxOCwgNzMyMjMsIDczMjI3LCA3MzIzMSwgNzMyMzUsIDczMjM5LCA3MzI0MywgCi0gICAgNzMyNDcsIDczMjUxLCA3MzI1NSwgNzMyNTksIDczMjYzLCA3MzI2NywgNzMyNzEsIDczMjc1LCA3MzI3OSwgNzMyODMsIAotICAgIDczMjg3LCA3MzI5MSwgNzMyOTUsIDczMjk5LCA3MzMwMywgNzMzMDcsIDczMzExLCA3MzMxNSwgNzMzMTksIDczMzIzLCAKLSAgICA3MzMyNywgNzMzMzEsIDczMzM1LCAwLCAwLCAwLCA3MzMzOSwgNzMzNDMsIDczMzQ3LCA3MzM1MSwgNzMzNTUsIDczMzU4LCAKLSAgICA3MzM2NCwgNzMzNjcsIDczMzcxLCA3MzM3NCwgNzMzODAsIDczMzg2LCA3MzM5NCwgNzMzOTcsIDczNDAxLCA3MzQwNCwgCi0gICAgNzM0MDcsIDczNDEzLCA3MzQxOSwgNzM0MjMsIDczNDI5LCA3MzQzMywgNzM0MzcsIDczNDQzLCA3MzQ0NywgNzM0NTMsIAotICAgIDczNDU5LCA3MzQ2MywgNzM0NjcsIDczNDczLCA3MzQ3NywgNzM0ODMsIDczNDg5LCA3MzQ5MywgNzM0OTksIDczNTAzLCAKLSAgICA3MzUwOSwgNzM1MTIsIDczNTE1LCA3MzUyMSwgNzM1MjUsIDczNTMxLCA3MzUzNCwgNzM1MzcsIDczNTQwLCA3MzU0NiwgCi0gICAgNzM1NTAsIDczNTU0LCA3MzU2MCwgNzM1NjYsIDczNTcwLCA3MzU3MywgNzM1NzksIDczNTg0LCA3MzU4OSwgNzM1OTQsIAotICAgIDczNjAxLCA3MzYwNiwgNzM2MTMsIDczNjE4LCA3MzYyNSwgNzM2MzAsIDczNjM2LCA3MzY0MiwgNzM2NDgsIDczNjUxLCAKLSAgICA3MzY1NSwgNzM2NTksIDczNjY0LCA3MzY2OSwgNzM2NzQsIDczNjc5LCA3MzY4NCwgNzM2ODksIDczNjk0LCA3MzY5OSwgCi0gICAgNzM3MDYsIDczNzExLCAwLCA3MzcxOCwgNzM3MjEsIDczNzI1LCA3MzcyOCwgNzM3MzEsIDczNzM0LCA3MzczNywgNzM3NDAsIAotICAgIDczNzQzLCA3Mzc0NiwgNzM3NDksIDAsIDAsIDAsIDAsIDczNzUyLCA3Mzc1OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzAzNzAsIDMwMzc2LCAKKyAgICAzMDM4MiwgMzAzODYsIDMwMzkwLCAzMDM5NCwgMzAzOTgsIDMwNDA0LCAzMDQwOCwgMzA0MTQsIDMwNDE4LCAzMDQyNCwgCisgICAgMzA0MzAsIDMwNDM4LCAzMDQ0NCwgMzA0NTIsIDMwNDU2LCAzMDQ2MCwgMzA0NjQsIDMwNDcwLCAzMDQ3MywgMzA0NzksIAorICAgIDMwNDgzLCAzMDQ4OSwgMzA0OTMsIDMwNDk3LCAzMDUwMywgMzA1MDcsIDMwNTEzLCAzMDUxNywgMzA1MjMsIDMwNTMxLCAKKyAgICAzMDUzOSwgMzA1NDcsIDMwNTUzLCAzMDU1NywgMzA1NjMsIDMwNTY3LCAzMDU3MywgMzA1NzYsIDMwNTc5LCAzMDU4NSwgCisgICAgMzA1ODksIDMwNTk1LCAzMDU5OCwgMzA2MDEsIDMwNjA0LCAzMDYwOCwgMzA2MTIsIDMwNjE4LCAzMDYyNCwgMzA2MjcsIAorICAgIDMwNjMwLCAzMDYzNCwgMzA2MzksIDMwNjQ0LCAzMDY1MSwgMzA2NTYsIDMwNjYzLCAzMDY3MCwgMzA2NzksIDMwNjg2LCAKKyAgICAzMDY5NSwgMzA3MDAsIDMwNzA3LCAzMDcxNCwgMzA3MjMsIDMwNzI4LCAzMDczNSwgMzA3NDAsIDMwNzQ2LCAzMDc1MiwgCisgICAgMzA3NTgsIDMwNzY0LCAzMDc3MCwgMzA3NzYsIDAsIDAsIDAsIDAsIDMwNzgyLCAzMDc4NiwgMzA3ODksIDMwNzkyLCAKKyAgICAzMDc5NSwgMzA3OTgsIDMwODAxLCAzMDgwNCwgMzA4MDcsIDMwODEwLCAzMDgxMywgMzA4MTYsIDMwODE5LCAzMDgyMiwgCisgICAgMzA4MjcsIDMwODMyLCAzMDgzNywgMzA4NDAsIDMwODQ1LCAzMDg1MCwgMzA4NTUsIDMwODYwLCAzMDg2NywgMzA4NzIsIAorICAgIDMwODc3LCAzMDg4MiwgMzA4ODcsIDMwODk0LCAzMDkwMCwgMzA5MDYsIDMwOTEyLCAzMDkxOCwgMzA5MjQsIDMwOTMzLCAKKyAgICAzMDk0MiwgMzA5NDgsIDMwOTU0LCAzMDk2MiwgMzA5NzAsIDMwOTc5LCAzMDk4OCwgMzA5OTYsIDMxMDA0LCAzMTAxMywgCisgICAgMzEwMjIsIDAsIDAsIDAsIDMxMDMwLCAzMTAzNCwgMzEwMzgsIDMxMDQyLCAzMTA0NSwgMzEwNDgsIDMxMDUxLCAzMTA1NSwgCisgICAgMzEwNTgsIDMxMDYxLCAzMTA2NSwgMzEwNjgsIDMxMDcyLCAzMTA3NiwgMzEwODAsIDMxMDg0LCAzMTA4OCwgMzEwOTIsIAorICAgIDMxMDk2LCAzMTEwMCwgMzExMDQsIDMxMTA3LCAzMTExMCwgMzExMTQsIDMxMTE4LCAzMTEyMiwgMzExMjUsIDMxMTI4LCAKKyAgICAzMTEzMSwgMzExMzUsIDMxMTM5LCAzMTE0MiwgMzExNDYsIDMxMTQ5LCAzMTE1NCwgMzExNTksIDMxMTY0LCAzMTE2OSwgCisgICAgMzExNzQsIDMxMTc5LCAzMTE4NCwgMzExODksIDMxMTk0LCAzMTE5OCwgMzEyMDIsIDMxMjA4LCAzMTIxNSwgMzEyMTksIAorICAgIDMxMjIzLCAzMTIyNywgMzEyMzAsIDMxMjMzLCAzMTIzNiwgMzEyMzksIDMxMjQyLCAzMTI0NSwgMzEyNDgsIDMxMjUxLCAKKyAgICAzMTI1NCwgMzEyNTcsIDMxMjYxLCAzMTI2NSwgMzEyNjksIDMxMjc0LCAzMTI3OCwgMzEyODIsIDMxMjg4LCAzMTI5MiwgCisgICAgMzEyOTgsIDMxMzA0LCAzMTMwOSwgMzEzMTYsIDMxMzIwLCAzMTMyNiwgMzEzMzAsIDMxMzM2LCAzMTM0MSwgMzEzNDgsIAorICAgIDMxMzU1LCAzMTM2MCwgMzEzNjcsIDMxMzcyLCAzMTM3NywgMzEzODEsIDMxMzg3LCAzMTM5MSwgMzEzOTcsIDMxNDA0LCAKKyAgICAzMTQxMSwgMzE0MTUsIDMxNDIxLCAzMTQyNywgMzE0MzEsIDMxNDM3LCAzMTQ0MiwgMzE0NDcsIDMxNDU0LCAzMTQ1OSwgCisgICAgMzE0NjQsIDMxNDY5LCAzMTQ3NCwgMzE0NzgsIDMxNDgyLCAzMTQ4NywgMzE0OTIsIDMxNDk5LCAzMTUwNSwgMzE1MTAsIAorICAgIDMxNTE3LCAzMTUyMiwgMzE1MjksIDMxNTM0LCAzMTU0MywgMzE1NDksIDMxNTU1LCAzMTU1OSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMzE1NjMsIDMxNTcyLCAzMTU3OSwgMzE1ODYsIDMxNTkzLCAzMTU5NiwgMzE2MDAsIDMxNjA0LCAzMTYwOCwgCisgICAgMzE2MTIsIDMxNjE2LCAzMTYyMCwgMzE2MjQsIDMxNjI4LCAzMTYzMiwgMzE2MzYsIDMxNjQwLCAzMTY0NCwgMzE2NDcsIAorICAgIDMxNjUwLCAzMTY1NCwgMzE2NTgsIDMxNjYyLCAzMTY2NiwgMzE2NzAsIDMxNjc0LCAzMTY3NywgMzE2ODEsIDMxNjg1LCAKKyAgICAzMTY4OSwgMzE2OTMsIDMxNjk2LCAzMTY5OSwgMzE3MDMsIDMxNzA2LCAzMTcxMCwgMzE3MTQsIDMxNzE3LCAzMTcyMSwgCisgICAgMzE3MjUsIDMxNzI4LCAzMTczMywgMzE3MzgsIDMxNzQzLCAzMTc0NywgMzE3NTEsIDMxNzU2LCAzMTc2MCwgMzE3NjUsIAorICAgIDMxNzY5LCAzMTc3NCwgMzE3NzgsIDMxNzgyLCAzMTc4NywgMzE3OTIsIDMxNzk2LCAzMTgwMSwgMzE4MDYsIDMxODExLCAKKyAgICAzMTgxNSwgMCwgMCwgMCwgMzE4MTksIDMxODI0LCAzMTgzMywgMzE4MzgsIDMxODQ1LCAzMTg1MCwgMzE4NTQsIDMxODU3LCAKKyAgICAzMTg2MCwgMzE4NjMsIDMxODY2LCAzMTg2OSwgMzE4NzIsIDMxODc1LCAzMTg3OCwgMCwgMCwgMCwgMzE4ODEsIDMxODg1LCAKKyAgICAzMTg4OSwgMzE4OTMsIDMxOTAwLCAzMTkwNiwgMzE5MTIsIDMxOTE4LCAzMTkyNCwgMzE5MzAsIDMxOTM2LCAzMTk0MiwgCisgICAgMzE5NDgsIDMxOTU0LCAzMTk2MSwgMzE5NjgsIDMxOTc1LCAzMTk4MiwgMzE5ODksIDMxOTk2LCAzMjAwMywgMzIwMTAsIAorICAgIDMyMDE3LCAzMjAyNCwgMzIwMzEsIDMyMDM4LCAzMjA0NSwgMzIwNTIsIDMyMDU5LCAzMjA2NiwgMzIwNzMsIDMyMDgwLCAKKyAgICAzMjA4NywgMzIwOTQsIDMyMTAxLCAzMjEwOCwgMzIxMTUsIDMyMTIyLCAzMjEyOSwgMzIxMzYsIDMyMTQzLCAzMjE1MCwgCisgICAgMzIxNTcsIDMyMTY0LCAzMjE3MiwgMzIxODAsIDMyMTg4LCAzMjE5NCwgMzIyMDAsIDMyMjA2LCAzMjIxNCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzIyMjMsIDMyMjMwLCAzMjIzNywgMzIyNDQsIDMyMjUxLCAKKyAgICAzMjI2MCwgMzIyNjksIDMyMjc4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMjI4NywgMzIyOTIsIDMyMjk3LCAzMjMwMiwgCisgICAgMzIzMDcsIDMyMzE2LCAzMjMyNywgMzIzMzYsIDMyMzQ3LCAzMjM1MywgMzIzNjYsIDMyMzcyLCAzMjM3OSwgMzIzODYsIAorICAgIDMyMzkxLCAzMjM5NywgMzI0MDMsIDMyNDE0LCAzMjQyMywgMzI0MzAsIDMyNDM3LCAzMjQ0NiwgMzI0NTMsIDMyNDYyLCAKKyAgICAzMjQ3MiwgMzI0ODIsIDMyNDg5LCAzMjQ5NiwgMzI1MDMsIDMyNTEzLCAzMjUxOCwgMzI1MjYsIDMyNTMyLCAzMjU0MCwgCisgICAgMzI1NDksIDMyNTU0LCAzMjU2MSwgMzI1NjcsIDMyNTcyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzMjU3NywgCisgICAgMzI1ODIsIDMyNTg4LCAzMjU5NSwgMzI2MDMsIDMyNjA5LCAzMjYxNSwgMzI2MjEsIDMyNjI2LCAzMjYzMywgMzI2MzksIAorICAgIDMyNjQ1LCAzMjY1MSwgMzI2NTksIDMyNjY0LCAzMjY3MiwgMzI2NzcsIDMyNjgzLCAzMjY4OSwgMzI2OTYsIDMyNzA0LCAKKyAgICAzMjcxMSwgMzI3MTcsIDMyNzI0LCAzMjczMSwgMzI3MzcsIDMyNzQ0LCAzMjc1MSwgMzI3NTcsIDMyNzYyLCAzMjc2OCwgCisgICAgMzI3NzYsIDMyNzg0LCAzMjc5MCwgMzI3OTYsIDMyODAyLCAzMjgwOCwgMzI4MTYsIDMyODIwLCAzMjgyNiwgMzI4MzIsIAorICAgIDMyODM4LCAzMjg0NCwgMzI4NTAsIDMyODU2LCAzMjg2MCwgMzI4NjUsIDMyODcwLCAzMjg3NywgMzI4ODIsIDMyODg2LCAKKyAgICAzMjg5MiwgMzI4OTcsIDMyOTAyLCAzMjkwNiwgMzI5MTEsIDMyOTE2LCAzMjkyMCwgMzI5MjQsIDMyOTI5LCAzMjkzNiwgCisgICAgMzI5NDAsIDMyOTQ1LCAzMjk1MCwgMzI5NTQsIDMyOTU5LCAzMjk2MywgMzI5NjgsIDMyOTcyLCAzMjk3OCwgMzI5ODMsIAorICAgIDMyOTkwLCAzMjk5NSwgMzMwMDAsIDMzMDA0LCAzMzAwOSwgMzMwMTQsIDMzMDIxLCAzMzAyNiwgMzMwMzIsIDMzMDM3LCAKKyAgICAzMzA0MSwgMzMwNDYsIDMzMDUwLCAzMzA1NSwgMzMwNjIsIDMzMDY5LCAzMzA3NCwgMzMwNzksIDMzMDgzLCAzMzA4OSwgCisgICAgMzMwOTUsIDMzMTAwLCAzMzEwNSwgMzMxMTAsIDMzMTE2LCAzMzEyMSwgMzMxMjcsIDMzMTMyLCAzMzEzOCwgMzMxNDQsIAorICAgIDMzMTUwLCAzMzE1NywgMzMxNjQsIDMzMTcxLCAzMzE3OCwgMzMxODUsIDMzMTkyLCAzMzE5NywgMzMyMDUsIDMzMjE0LCAKKyAgICAzMzIyMywgMzMyMzIsIDMzMjQxLCAzMzI1MCwgMzMyNTksIDMzMjcxLCAzMzI4MCwgMzMyODksIDMzMjk4LCAzMzMwNSwgCisgICAgMzMzMTAsIDMzMzE3LCAzMzMyNSwgMzMzMzMsIDMzMzQwLCAzMzM0NywgMzMzNTQsIDMzMzYxLCAzMzM2OSwgMzMzNzgsIAorICAgIDMzMzg3LCAzMzM5NiwgMzM0MDUsIDMzNDE0LCAzMzQyMywgMzM0MzIsIDMzNDQxLCAzMzQ1MCwgMzM0NTksIDMzNDY4LCAKKyAgICAzMzQ3NywgMzM0ODYsIDMzNDk1LCAzMzUwMywgMzM1MTIsIDMzNTIzLCAzMzUzMSwgMzM1NDAsIDMzNTUxLCAzMzU2MCwgCisgICAgMzM1NjksIDMzNTc4LCAzMzU4NywgMzM1OTUsIDMzNjA0LCAzMzYxMSwgMzM2MTYsIDMzNjI0LCAzMzYyOSwgMzM2MzYsIAorICAgIDMzNjQxLCAzMzY1MCwgMzM2NTYsIDMzNjYzLCAzMzY3MCwgMzM2NzUsIDMzNjgwLCAzMzY4OCwgMzM2OTYsIDMzNzA1LCAKKyAgICAzMzcxNCwgMzM3MTksIDMzNzI2LCAzMzczNywgMzM3NDUsIDMzNzU0LCAzMzc2MCwgMzM3NjYsIDMzNzcxLCAzMzc3OCwgCisgICAgMzM3ODMsIDMzNzkyLCAzMzc5NywgMzM4MDIsIDMzODA3LCAzMzgxNCwgMzM4MjEsIDMzODI2LCAzMzgzNSwgMzM4NDMsIAorICAgIDMzODQ4LCAzMzg1MywgMzM4NjAsIDMzODY3LCAzMzg3MSwgMzM4NzUsIDMzODc4LCAzMzg4MSwgMzM4ODQsIDMzODg3LCAKKyAgICAzMzg5MCwgMzM4OTMsIDMzOTAwLCAzMzkwMywgMzM5MDYsIDMzOTExLCAzMzkxNSwgMzM5MTksIDMzOTIzLCAzMzkyNywgCisgICAgMzM5MzEsIDMzOTQwLCAzMzk0NiwgMzM5NTIsIDMzOTU4LCAzMzk2NiwgMzM5NzQsIDMzOTgwLCAzMzk4NiwgMzM5OTMsIAorICAgIDMzOTk5LCAzNDAwNCwgMzQwMTAsIDM0MDE2LCAzNDAyMiwgMzQwMjksIDM0MDM1LCAzNDA0MywgMzQwNDksIDM0MDU2LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAzNDA2MiwgMzQwNjksIAorICAgIDM0MDc2LCAzNDA4MSwgMzQwOTAsIDM0MDk4LCAzNDEwNiwgMzQxMTMsIDM0MTIwLCAzNDEyNywgMzQxMzQsIDM0MTQyLCAKKyAgICAzNDE1MCwgMzQxNjAsIDM0MTcwLCAzNDE3OCwgMzQxODYsIDM0MTk0LCAzNDIwMiwgMzQyMTEsIDM0MjIwLCAzNDIyOCwgCisgICAgMzQyMzYsIDM0MjQ1LCAzNDI1NCwgMzQyNjQsIDM0Mjc0LCAzNDI4MywgMzQyOTIsIDM0MzAwLCAzNDMwOCwgMzQzMTYsIAorICAgIDM0MzI0LCAzNDMzNCwgMzQzNDQsIDM0MzUyLCAzNDM2MCwgMzQzNjgsIDM0Mzc2LCAzNDM4NCwgMzQzOTIsIDM0NDAwLCAKKyAgICAzNDQwOCwgMzQ0MTYsIDM0NDI0LCAzNDQzMiwgMzQ0NDAsIDM0NDQ5LCAzNDQ1OCwgMzQ0NjcsIDM0NDc2LCAzNDQ4NiwgCisgICAgMzQ0OTYsIDM0NTAzLCAzNDUxMCwgMzQ1MTgsIDM0NTI2LCAzNDUzNSwgMzQ1NDQsIDM0NTUyLCAzNDU2MCwgMzQ1NzIsIAorICAgIDM0NTg0LCAzNDU5MywgMzQ2MDIsIDM0NjExLCAzNDYyMCwgMzQ2MjcsIDM0NjM0LCAzNDY0MiwgMzQ2NTAsIDM0NjU4LCAKKyAgICAzNDY2NiwgMzQ2NzQsIDM0NjgyLCAzNDY5MCwgMzQ2OTgsIDM0NzA3LCAzNDcxNiwgMzQ3MjUsIDM0NzM0LCAzNDc0MywgCisgICAgMzQ3NTIsIDM0NzYyLCAzNDc3MiwgMzQ3ODIsIDM0NzkyLCAzNDgwMSwgMzQ4MTAsIDM0ODE3LCAzNDgyNCwgMzQ4MzIsIAorICAgIDM0ODQwLCAzNDg0OCwgMzQ4NTYsIDM0ODY0LCAzNDg3MiwgMzQ4ODQsIDM0ODk2LCAzNDkwNSwgMzQ5MTQsIDM0OTIyLCAKKyAgICAzNDkzMCwgMzQ5MzgsIDM0OTQ2LCAzNDk1NywgMzQ5NjgsIDM0OTc5LCAzNDk5MCwgMzUwMDIsIDM1MDE0LCAzNTAyMiwgCisgICAgMzUwMzAsIDM1MDM4LCAzNTA0NiwgMzUwNTUsIDM1MDY0LCAzNTA3MywgMzUwODIsIDM1MDkwLCAzNTA5OCwgMzUxMDYsIAorICAgIDM1MTE0LCAzNTEyMiwgMzUxMzAsIDM1MTM5LCAzNTE0OCwgMzUxNTgsIDM1MTY4LCAzNTE3NSwgMzUxODIsIDM1MTkwLCAKKyAgICAzNTE5OCwgMzUyMDYsIDM1MjE0LCAzNTIyMSwgMzUyMjgsIDM1MjM2LCAzNTI0NCwgMzUyNTIsIDM1MjYwLCAzNTI2OCwgCisgICAgMzUyNzYsIDM1Mjg0LCAzNTI5MiwgMzUzMDAsIDM1MzA4LCAzNTMxNiwgMzUzMjQsIDM1MzMyLCAzNTM0MCwgMzUzNDgsIAorICAgIDM1MzU2LCAzNTM2NSwgMzUzNzQsIDM1MzgzLCAzNTM5MSwgMzU0MDAsIDM1NDA5LCAzNTQxOCwgMzU0MjcsIDM1NDM3LCAKKyAgICAzNTQ0NiwgMzU0NTMsIDM1NDU4LCAzNTQ2NSwgMzU0NzIsIDM1NDgwLCAzNTQ4OCwgMzU0OTcsIDM1NTA2LCAzNTUxNiwgCisgICAgMzU1MjYsIDM1NTM3LCAzNTU0OCwgMzU1NTcsIDM1NTY2LCAzNTU3NiwgMzU1ODYsIDM1NTk1LCAzNTYwNCwgMzU2MTQsIAorICAgIDM1NjI0LCAzNTYzNSwgMzU2NDYsIDM1NjU1LCAzNTY2NCwgMzU2NzQsIDM1Njg0LCAzNTY5MSwgMzU2OTgsIDM1NzA2LCAKKyAgICAzNTcxNCwgMzU3MjAsIDM1NzI2LCAzNTczNSwgMzU3NDQsIDM1NzU0LCAzNTc2NCwgMzU3NzUsIDM1Nzg2LCAzNTc5NSwgCisgICAgMzU4MDQsIDM1ODE0LCAzNTgyNCwgMzU4MzMsIDM1ODQyLCAzNTg1MCwgMzU4NTgsIDM1ODY1LCAzNTg3MiwgMzU4ODAsIAorICAgIDM1ODg4LCAzNTg5NywgMzU5MDYsIDM1OTE2LCAzNTkyNiwgMzU5MzcsIDM1OTQ4LCAzNTk1NywgMzU5NjYsIDM1OTc2LCAKKyAgICAzNTk4NiwgMzU5OTUsIDM2MDA0LCAzNjAxNCwgMzYwMjQsIDM2MDM1LCAzNjA0NiwgMzYwNTUsIDM2MDY0LCAzNjA3NCwgCisgICAgMzYwODQsIDM2MDkxLCAzNjA5OCwgMzYxMDYsIDM2MTE0LCAzNjEyMywgMzYxMzIsIDM2MTQyLCAzNjE1MiwgMzYxNjMsIAorICAgIDM2MTc0LCAzNjE4MywgMzYxOTIsIDM2MjAyLCAzNjIxMiwgMzYyMjAsIDM2MjI4LCAzNjIzNiwgMzYyNDQsIDM2MjUzLCAKKyAgICAzNjI2MiwgMzYyNjksIDM2Mjc2LCAzNjI4MywgMzYyOTAsIDM2Mjk3LCAzNjMwNCwgMzYzMTIsIDM2MzIwLCAzNjMyOCwgCisgICAgMzYzMzYsIDM2MzQ3LCAzNjM1OCwgMzYzNjksIDM2MzgwLCAzNjM5MSwgMzY0MDIsIDM2NDEwLCAzNjQxOCwgMzY0MjksIAorICAgIDM2NDQwLCAzNjQ1MSwgMzY0NjIsIDM2NDczLCAzNjQ4NCwgMzY0OTIsIDM2NTAwLCAzNjUxMSwgMzY1MjIsIDM2NTMzLCAwLCAKKyAgICAwLCAzNjU0NCwgMzY1NTIsIDM2NTYwLCAzNjU3MSwgMzY1ODIsIDM2NTkzLCAwLCAwLCAzNjYwNCwgMzY2MTIsIDM2NjIwLCAKKyAgICAzNjYzMSwgMzY2NDIsIDM2NjUzLCAzNjY2NCwgMzY2NzUsIDM2Njg2LCAzNjY5NCwgMzY3MDIsIDM2NzEzLCAzNjcyNCwgCisgICAgMzY3MzUsIDM2NzQ2LCAzNjc1NywgMzY3NjgsIDM2Nzc2LCAzNjc4NCwgMzY3OTUsIDM2ODA2LCAzNjgxNywgMzY4MjgsIAorICAgIDM2ODM5LCAzNjg1MCwgMzY4NTgsIDM2ODY2LCAzNjg3NywgMzY4ODgsIDM2ODk5LCAzNjkxMCwgMzY5MjEsIDM2OTMyLCAKKyAgICAzNjk0MCwgMzY5NDgsIDM2OTU5LCAzNjk3MCwgMzY5ODEsIDAsIDAsIDM2OTkyLCAzNzAwMCwgMzcwMDgsIDM3MDE5LCAKKyAgICAzNzAzMCwgMzcwNDEsIDAsIDAsIDM3MDUyLCAzNzA2MCwgMzcwNjgsIDM3MDc5LCAzNzA5MCwgMzcxMDEsIDM3MTEyLCAKKyAgICAzNzEyMywgMCwgMzcxMzQsIDAsIDM3MTQyLCAwLCAzNzE1MywgMCwgMzcxNjQsIDM3MTc1LCAzNzE4MywgMzcxOTEsIAorICAgIDM3MjAyLCAzNzIxMywgMzcyMjQsIDM3MjM1LCAzNzI0NiwgMzcyNTcsIDM3MjY1LCAzNzI3MywgMzcyODQsIDM3Mjk1LCAKKyAgICAzNzMwNiwgMzczMTcsIDM3MzI4LCAzNzMzOSwgMzczNDcsIDM3MzU1LCAzNzM2MywgMzczNzEsIDM3Mzc5LCAzNzM4NywgCisgICAgMzczOTUsIDM3NDAzLCAzNzQxMSwgMzc0MTksIDM3NDI3LCAzNzQzNSwgMzc0NDMsIDAsIDAsIDM3NDUxLCAzNzQ2MiwgCisgICAgMzc0NzMsIDM3NDg3LCAzNzUwMSwgMzc1MTUsIDM3NTI5LCAzNzU0MywgMzc1NTcsIDM3NTY4LCAzNzU3OSwgMzc1OTMsIAorICAgIDM3NjA3LCAzNzYyMSwgMzc2MzUsIDM3NjQ5LCAzNzY2MywgMzc2NzQsIDM3Njg1LCAzNzY5OSwgMzc3MTMsIDM3NzI3LCAKKyAgICAzNzc0MSwgMzc3NTUsIDM3NzY5LCAzNzc4MCwgMzc3OTEsIDM3ODA1LCAzNzgxOSwgMzc4MzMsIDM3ODQ3LCAzNzg2MSwgCisgICAgMzc4NzUsIDM3ODg2LCAzNzg5NywgMzc5MTEsIDM3OTI1LCAzNzkzOSwgMzc5NTMsIDM3OTY3LCAzNzk4MSwgMzc5OTIsIAorICAgIDM4MDAzLCAzODAxNywgMzgwMzEsIDM4MDQ1LCAzODA1OSwgMzgwNzMsIDM4MDg3LCAzODA5NSwgMzgxMDMsIDM4MTE0LCAKKyAgICAzODEyMiwgMCwgMzgxMzMsIDM4MTQxLCAzODE1MiwgMzgxNjAsIDM4MTY4LCAzODE3NiwgMzgxODQsIDM4MTkyLCAzODE5NSwgCisgICAgMzgxOTgsIDM4MjAxLCAzODIwNCwgMzgyMTAsIDM4MjIxLCAzODIyOSwgMCwgMzgyNDAsIDM4MjQ4LCAzODI1OSwgMzgyNjcsIAorICAgIDM4Mjc1LCAzODI4MywgMzgyOTEsIDM4Mjk5LCAzODMwNSwgMzgzMTEsIDM4MzE3LCAzODMyNSwgMzgzMzMsIDM4MzQ0LCAwLCAKKyAgICAwLCAzODM1NSwgMzgzNjMsIDM4Mzc0LCAzODM4MiwgMzgzOTAsIDM4Mzk4LCAwLCAzODQwNiwgMzg0MTIsIDM4NDE4LCAKKyAgICAzODQyNCwgMzg0MzIsIDM4NDQwLCAzODQ1MSwgMzg0NjIsIDM4NDcwLCAzODQ3OCwgMzg0ODYsIDM4NDk3LCAzODUwNSwgCisgICAgMzg1MTMsIDM4NTIxLCAzODUyOSwgMzg1MzcsIDM4NTQzLCAzODU0OSwgMCwgMCwgMzg1NTIsIDM4NTYzLCAzODU3MSwgMCwgCisgICAgMzg1ODIsIDM4NTkwLCAzODYwMSwgMzg2MDksIDM4NjE3LCAzODYyNSwgMzg2MzMsIDM4NjQxLCAzODY0NCwgMCwgMzg2NDcsIAorICAgIDM4NjUxLCAzODY1NSwgMzg2NTksIDM4NjYzLCAzODY2NywgMzg2NzEsIDM4Njc1LCAzODY3OSwgMzg2ODMsIDM4Njg3LCAKKyAgICAzODY5MSwgMzg2OTcsIDM4NzAzLCAzODcwOSwgMzg3MTIsIDM4NzE1LCAzODcxNywgMzg3MjEsIDM4NzI1LCAzODcyOSwgCisgICAgMzg3MzMsIDM4NzM1LCAzODczOSwgMzg3NDMsIDM4NzQ5LCAzODc1NSwgMzg3NjIsIDM4NzY5LCAzODc3NCwgMzg3NzksIAorICAgIDM4Nzg1LCAzODc5MSwgMzg3OTMsIDM4Nzk2LCAzODc5OCwgMzg4MDIsIDM4ODA2LCAzODgxMCwgMzg4MTMsIDM4ODE3LCAKKyAgICAzODgyMSwgMzg4MjUsIDM4ODI5LCAzODgzMywgMzg4MzksIDM4ODQzLCAzODg0NywgMzg4NTMsIDM4ODU4LCAzODg2NSwgCisgICAgMzg4NjcsIDM4ODcwLCAzODg3NCwgMzg4NzgsIDM4ODgzLCAzODg4OSwgMzg4OTEsIDM4OTAwLCAzODkwOSwgMzg5MTIsIAorICAgIDM4OTE2LCAzODkxOCwgMzg5MjAsIDM4OTIyLCAzODkyNSwgMzg5MzEsIDM4OTMzLCAzODkzNywgMzg5NDEsIDM4OTQ4LCAKKyAgICAzODk1NSwgMzg5NTksIDM4OTY0LCAzODk2OSwgMzg5NzQsIDM4OTc5LCAzODk4MywgMzg5ODcsIDM4OTkwLCAzODk5NCwgCisgICAgMzg5OTgsIDM5MDA1LCAzOTAxMCwgMzkwMTQsIDM5MDE4LCAzOTAyMywgMzkwMjcsIDM5MDMxLCAzOTAzNiwgMzkwNDEsIAorICAgIDM5MDQ1LCAzOTA0OSwgMzkwNTMsIDM5MDU1LCAzOTA2MCwgMzkwNjUsIDM5MDY5LCAzOTA3MywgMzkwNzcsIDM5MDgxLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAzOTA4NSwgMzkwOTEsIDM5MDk3LCAzOTEwNCwgMzkxMTEsIDM5MTE2LCAzOTEyMSwgMzkxMjUsIDAsIDAsIAorICAgIDM5MTMxLCAzOTEzNCwgMzkxMzcsIDM5MTQwLCAzOTE0MywgMzkxNDYsIDM5MTQ5LCAzOTE1MywgMzkxNTcsIDM5MTYyLCAKKyAgICAzOTE2NywgMzkxNzIsIDM5MTc5LCAzOTE4MywgMzkxODYsIDM5MTg5LCAzOTE5MiwgMzkxOTUsIDM5MTk4LCAzOTIwMSwgCisgICAgMzkyMDQsIDM5MjA3LCAzOTIxMCwgMzkyMTQsIDM5MjE4LCAzOTIyMywgMzkyMjgsIDAsIDM5MjMzLCAzOTIzOSwgMzkyNDUsIAorICAgIDM5MjUxLCAzOTI1OCwgMzkyNjUsIDM5MjcyLCAzOTI3OSwgMzkyODUsIDM5MjkxLCAzOTI5OCwgMzkzMDUsIDM5MzEyLCAwLCAKKyAgICAwLCAwLCAzOTMxOSwgMzkzMjIsIDM5MzI1LCAzOTMyOCwgMzkzMzMsIDM5MzM2LCAzOTMzOSwgMzkzNDIsIDM5MzQ1LCAKKyAgICAzOTM0OCwgMzkzNTEsIDM5MzU1LCAzOTM1OCwgMzkzNjEsIDM5MzY0LCAzOTM2NywgMzkzNzAsIDM5Mzc1LCAzOTM3OCwgCisgICAgMzkzODEsIDM5Mzg0LCAzOTM4NywgMzkzOTAsIDM5Mzk1LCAzOTM5OCwgMzk0MDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5NDA2LCAzOTQxMSwgMzk0MTYsIDM5NDIzLCAKKyAgICAzOTQzMSwgMzk0MzYsIDM5NDQxLCAzOTQ0NSwgMzk0NDksIDM5NDU0LCAzOTQ2MSwgMzk0NjgsIDM5NDcyLCAzOTQ3NywgCisgICAgMzk0ODIsIDM5NDg3LCAzOTQ5MiwgMzk0OTksIDM5NTA0LCAzOTUwOSwgMzk1MTQsIDM5NTIzLCAzOTUzMCwgMzk1MzcsIAorICAgIDM5NTQxLCAzOTU0NiwgMzk1NTIsIDM5NTU3LCAzOTU2NCwgMzk1NzMsIDM5NTgyLCAzOTU4NiwgMzk1OTAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDM5NTk0LCAzOTU5OCwgMzk2MDYsIDM5NjEwLCAzOTYxNCwgCisgICAgMzk2MTksIDM5NjIzLCAzOTYyNywgMzk2MzEsIDM5NjMzLCAzOTYzNywgMzk2NDEsIDM5NjQ1LCAzOTY1MCwgMzk2NTQsIAorICAgIDM5NjU4LCAzOTY2NiwgMzk2NjksIDM5NjczLCAzOTY3NiwgMzk2NzksIDM5Njg1LCAzOTY4OSwgMzk2OTIsIDM5Njk4LCAKKyAgICAzOTcwMiwgMzk3MDYsIDM5NzEwLCAzOTcxMywgMzk3MTcsIDM5NzIwLCAzOTcyNCwgMzk3MjYsIDM5NzI5LCAzOTczMiwgCisgICAgMzk3MzYsIDM5NzM4LCAzOTc0MiwgMzk3NDUsIDM5NzQ4LCAzOTc1MywgMzk3NTgsIDM5NzY1LCAzOTc2OCwgMzk3NzEsIAorICAgIDM5Nzc1LCAzOTc4MCwgMzk3ODMsIDM5Nzg2LCAzOTc4OSwgMzk3OTMsIDM5Nzk4LCAzOTgwMSwgMzk4MDQsIDM5ODA2LCAKKyAgICAzOTgwOSwgMzk4MTIsIDM5ODE1LCAzOTgxOSwgMzk4MjQsIDM5ODI3LCAzOTgzMSwgMzk4MzUsIDM5ODM5LCAzOTg0MywgCisgICAgMzk4NDgsIDM5ODU0LCAzOTg1OSwgMzk4NjQsIDM5ODcwLCAzOTg3NSwgMzk4ODAsIDM5ODg0LCAzOTg4OCwgMzk4OTMsIAorICAgIDM5ODk3LCAzOTkwMSwgMzk5MDQsIDM5OTA2LCAzOTkxMSwgMzk5MTcsIDM5OTI0LCAzOTkzMSwgMzk5MzgsIDM5OTQ1LCAKKyAgICAzOTk1MiwgMzk5NTksIDM5OTY2LCAzOTk3MywgMzk5ODEsIDM5OTg4LCAzOTk5NiwgNDAwMDMsIDQwMDEwLCA0MDAxOCwgCisgICAgNDAwMjYsIDQwMDMxLCA0MDAzNiwgNDAwNDEsIDQwMDQ2LCA0MDA1MSwgNDAwNTYsIDQwMDYxLCA0MDA2NiwgNDAwNzEsIAorICAgIDQwMDc2LCA0MDA4MiwgNDAwODgsIDQwMDk0LCA0MDEwMCwgNDAxMDcsIDQwMTE1LCA0MDEyMiwgNDAxMjgsIDQwMTM0LCAKKyAgICA0MDE0MCwgNDAxNDYsIDQwMTUyLCA0MDE1OCwgNDAxNjQsIDQwMTcwLCA0MDE3NiwgNDAxODMsIDQwMTkwLCA0MDE5NywgCisgICAgNDAyMDQsIDQwMjEyLCA0MDIyMSwgNDAyMjksIDQwMjQwLCA0MDI0OCwgNDAyNTYsIDQwMjY1LCA0MDI3MiwgNDAyODEsIAorICAgIDQwMjkwLCA0MDI5OCwgNDAzMDcsIDAsIDAsIDAsIDAsIDAsIDAsIDQwMzE1LCA0MDMxNywgNDAzMjAsIDQwMzIyLCA0MDMyNSwgCisgICAgNDAzMjgsIDQwMzMxLCA0MDMzNiwgNDAzNDEsIDQwMzQ2LCA0MDM1MSwgNDAzNTUsIDQwMzU5LCA0MDM2MywgNDAzNjcsIAorICAgIDQwMzcyLCA0MDM3OCwgNDAzODMsIDQwMzg5LCA0MDM5NCwgNDAzOTksIDQwNDA0LCA0MDQxMCwgNDA0MTUsIDQwNDIxLCAKKyAgICA0MDQyNywgNDA0MzEsIDQwNDM1LCA0MDQ0MCwgNDA0NDUsIDQwNDUwLCA0MDQ1NSwgNDA0NjAsIDQwNDY4LCA0MDQ3NiwgCisgICAgNDA0ODQsIDQwNDkyLCA0MDQ5OSwgNDA1MDcsIDQwNTE0LCA0MDUyMSwgNDA1MzAsIDQwNTQyLCA0MDU0OCwgNDA1NTQsIAorICAgIDQwNTYyLCA0MDU3MCwgNDA1NzksIDQwNTg4LCA0MDU5NiwgNDA2MDQsIDQwNjEzLCA0MDYyMiwgNDA2MjcsIDQwNjM1LCAKKyAgICA0MDY0MCwgNDA2NDUsIDQwNjUxLCA0MDY1NiwgNDA2NjIsIDQwNjY5LCA0MDY3NiwgNDA2ODEsIDQwNjg3LCA0MDY5MiwgCisgICAgNDA2OTUsIDQwNjk5LCA0MDcwMiwgNDA3MDYsIDQwNzEwLCA0MDcxNCwgNDA3MjAsIDQwNzI2LCA0MDczMiwgNDA3MzgsIAorICAgIDQwNzQyLCA0MDc0NiwgNDA3NTAsIDQwNzU0LCA0MDc2MCwgNDA3NjYsIDQwNzcwLCA0MDc3NSwgNDA3NzksIDQwNzg0LCAKKyAgICA0MDc4OSwgNDA3OTQsIDQwNzk3LCA0MDgwMSwgNDA4MDQsIDQwODA4LCA0MDgxNSwgNDA4MjMsIDQwODM0LCA0MDg0NSwgCisgICAgNDA4NTAsIDQwODU5LCA0MDg2NiwgNDA4NzUsIDQwODg0LCA0MDg4OCwgNDA4OTQsIDQwOTAyLCA0MDkwNiwgNDA5MTEsIAorICAgIDQwOTE2LCA0MDkyMiwgNDA5MjgsIDQwOTM0LCA0MDk0MSwgNDA5NDUsIDQwOTQ5LCA0MDk1NCwgNDA5NTcsIDQwOTU5LCAKKyAgICA0MDk2MywgNDA5NjcsIDQwOTc1LCA0MDk3OSwgNDA5ODEsIDQwOTgzLCA0MDk4NywgNDA5OTUsIDQxMDAwLCA0MTAwNiwgCisgICAgNDEwMTYsIDQxMDIzLCA0MTAyOCwgNDEwMzIsIDQxMDM2LCA0MTA0MCwgNDEwNDMsIDQxMDQ2LCA0MTA0OSwgNDEwNTMsIAorICAgIDQxMDU3LCA0MTA2MSwgNDEwNjUsIDQxMDY5LCA0MTA3MiwgNDEwNzYsIDQxMDgwLCA0MTA4MywgNDEwODUsIDQxMDg4LCAKKyAgICA0MTA5MCwgNDEwOTQsIDQxMDk4LCA0MTEwMCwgNDExMDYsIDQxMTA5LCA0MTExNCwgNDExMTgsIDQxMTIyLCA0MTEyNCwgCisgICAgNDExMjYsIDQxMTI4LCA0MTEzMSwgNDExMzUsIDQxMTM5LCA0MTE0MywgNDExNDcsIDQxMTUxLCA0MTE1NywgNDExNjMsIAorICAgIDQxMTY1LCA0MTE2NywgNDExNjksIDQxMTcxLCA0MTE3NCwgNDExNzYsIDQxMTgwLCA0MTE4MiwgNDExODYsIDQxMTg5LCAKKyAgICA0MTE5NSwgNDExOTksIDQxMjAzLCA0MTIwNiwgNDEyMDksIDQxMjEzLCA0MTIxOSwgNDEyMjMsIDQxMjMzLCA0MTI0MywgCisgICAgNDEyNDcsIDQxMjUzLCA0MTI1OSwgNDEyNjIsIDQxMjY2LCA0MTI2OSwgNDEyNzQsIDQxMjc4LCA0MTI4NCwgNDEyODgsIAorICAgIDQxMzAwLCA0MTMwOCwgNDEzMTIsIDQxMzE2LCA0MTMyMiwgNDEzMjYsIDQxMzI5LCA0MTMzMSwgNDEzMzQsIDQxMzM4LCAKKyAgICA0MTM0MiwgNDEzNDksIDQxMzUzLCA0MTM1NywgNDEzNjEsIDQxMzY0LCA0MTM2OSwgNDEzNzQsIDQxMzc5LCA0MTM4NCwgCisgICAgNDEzODksIDQxMzk0LCA0MTQwMiwgNDE0MTAsIDQxNDE0LCA0MTQxOCwgNDE0MjAsIDQxNDI1LCA0MTQyOSwgNDE0MzMsIAorICAgIDQxNDQxLCA0MTQ0OSwgNDE0NTUsIDQxNDYxLCA0MTQ3MCwgNDE0NzksIDQxNDg0LCA0MTQ4OSwgNDE0OTcsIDQxNTA1LCAKKyAgICA0MTUwNywgNDE1MDksIDQxNTE0LCA0MTUxOSwgNDE1MjUsIDQxNTMxLCA0MTUzNywgNDE1NDMsIDQxNTQ3LCA0MTU1MSwgCisgICAgNDE1NTgsIDQxNTY1LCA0MTU3MSwgNDE1NzcsIDQxNTg3LCA0MTU5NywgNDE2MDUsIDQxNjEzLCA0MTYxNSwgNDE2MTksIAorICAgIDQxNjIzLCA0MTYyOCwgNDE2MzMsIDQxNjQwLCA0MTY0NywgNDE2NTAsIDQxNjUzLCA0MTY1NiwgNDE2NTksIDQxNjYyLCAKKyAgICA0MTY2NywgNDE2NzEsIDQxNjc2LCA0MTY4MSwgNDE2ODQsIDQxNjg3LCA0MTY5MCwgNDE2OTMsIDQxNjk2LCA0MTcwMCwgCisgICAgNDE3MDMsIDQxNzA2LCA0MTcwOSwgNDE3MTIsIDQxNzE0LCA0MTcxNiwgNDE3MTgsIDQxNzIwLCA0MTcyOCwgNDE3MzYsIAorICAgIDQxNzQyLCA0MTc0NiwgNDE3NTIsIDQxNzYyLCA0MTc2OCwgNDE3NzQsIDQxNzgwLCA0MTc4OCwgNDE3OTYsIDQxODA3LCAKKyAgICA0MTgxMSwgNDE4MTUsIDQxODE3LCA0MTgyMywgNDE4MjUsIDQxODI3LCA0MTgyOSwgNDE4MzEsIDQxODM3LCA0MTg0MCwgCisgICAgNDE4NDYsIDQxODUyLCA0MTg1NiwgNDE4NjAsIDQxODY0LCA0MTg2NywgNDE4NzEsIDQxODc1LCA0MTg3NywgNDE4ODYsIAorICAgIDQxODk1LCA0MTkwMCwgNDE5MDUsIDQxOTExLCA0MTkxNywgNDE5MjMsIDQxOTI2LCA0MTkyOSwgNDE5MzIsIDQxOTM1LCAKKyAgICA0MTkzNywgNDE5NDIsIDQxOTQ3LCA0MTk1MiwgNDE5NTgsIDQxOTY0LCA0MTk3MiwgNDE5ODAsIDQxOTg2LCA0MTk5MiwgCisgICAgNDE5OTgsIDQyMDA0LCA0MjAxMywgNDIwMjIsIDQyMDMxLCA0MjA0MCwgNDIwNDksIDQyMDU4LCA0MjA2NywgNDIwNzYsIAorICAgIDQyMDg1LCA0MjA5NCwgNDIxMDIsIDQyMTE0LCA0MjEyNCwgNDIxMzksIDQyMTQyLCA0MjE0NywgNDIxNTMsIDQyMTU5LCAKKyAgICA0MjE2NiwgNDIxODAsIDQyMTk1LCA0MjIwMSwgNDIyMDcsIDQyMjE0LCA0MjIyMCwgNDIyMjgsIDQyMjM0LCA0MjI0NywgCisgICAgNDIyNjEsIDQyMjY2LCA0MjI3MiwgNDIyNzksIDQyMjgyLCA0MjI4NSwgNDIyODcsIDQyMjkwLCA0MjI5MywgNDIyOTUsIAorICAgIDQyMjk3LCA0MjMwMSwgNDIzMDQsIDQyMzA3LCA0MjMxMCwgNDIzMTMsIDQyMzE4LCA0MjMyMywgNDIzMjgsIDQyMzMzLCAKKyAgICA0MjMzOCwgNDIzNDEsIDQyMzQzLCA0MjM0NSwgNDIzNDcsIDQyMzUxLCA0MjM1NSwgNDIzNTksIDQyMzY1LCA0MjM3MCwgCisgICAgNDIzNzIsIDQyMzc0LCA0MjM3OSwgNDIzODQsIDQyMzg5LCA0MjM5NCwgNDIzOTksIDQyNDA0LCA0MjQwNiwgNDI0MDgsIAorICAgIDQyNDE3LCA0MjQyMSwgNDI0MjksIDQyNDM4LCA0MjQ0MCwgNDI0NDUsIDQyNDUwLCA0MjQ1OCwgNDI0NjIsIDQyNDY0LCAKKyAgICA0MjQ2OCwgNDI0NzAsIDQyNDc0LCA0MjQ3OCwgNDI0ODIsIDQyNDg0LCA0MjQ4NiwgNDI0ODgsIDQyNDk1LCA0MjUwNCwgCisgICAgNDI1MTMsIDQyNTIyLCA0MjUzMSwgNDI1NDAsIDQyNTQ5LCA0MjU1OCwgNDI1NjcsIDQyNTc1LCA0MjU4MywgNDI1OTIsIAorICAgIDQyNjAxLCA0MjYxMCwgNDI2MTksIDQyNjI3LCA0MjYzNSwgNDI2NDQsIDQyNjUzLCA0MjY2MiwgNDI2NzIsIDQyNjgxLCAKKyAgICA0MjY5MSwgNDI3MDAsIDQyNzEwLCA0MjcxOSwgNDI3MjksIDQyNzM5LCA0Mjc0OCwgNDI3NTgsIDQyNzY3LCA0Mjc3NywgCisgICAgNDI3ODYsIDQyNzk2LCA0MjgwNSwgNDI4MTQsIDQyODIzLCA0MjgzMiwgNDI4NDEsIDQyODUxLCA0Mjg2MCwgNDI4NjksIAorICAgIDQyODc4LCA0Mjg4OCwgNDI4OTcsIDQyOTA2LCA0MjkxNSwgNDI5MjQsIDQyOTM0LCA0Mjk0NCwgNDI5NTMsIDQyOTYyLCAKKyAgICA0Mjk3MCwgNDI5NzgsIDQyOTg1LCA0Mjk5MywgNDMwMDIsIDQzMDEzLCA0MzAyMiwgNDMwMzEsIDQzMDQwLCA0MzA0NywgCisgICAgNDMwNTQsIDQzMDYxLCA0MzA3MCwgNDMwNzksIDQzMDg4LCA0MzA5NywgNDMxMDQsIDQzMTA5LCA0MzExOCwgNDMxMjMsIAorICAgIDQzMTI2LCA0MzEzNCwgNDMxMzcsIDQzMTQyLCA0MzE0NywgNDMxNTAsIDQzMTUzLCA0MzE2MSwgNDMxNjQsIDQzMTY5LCAKKyAgICA0MzE3MiwgNDMxNzksIDQzMTg0LCA0MzE5MiwgNDMxOTUsIDQzMTk4LCA0MzIwMSwgNDMyMDYsIDQzMjExLCA0MzIxNCwgCisgICAgNDMyMTcsIDQzMjI1LCA0MzIyOCwgNDMyMzUsIDQzMjQyLCA0MzI0NiwgNDMyNTAsIDQzMjU1LCA0MzI2MCwgNDMyNjYsIAorICAgIDQzMjcxLCA0MzI3NywgNDMyODMsIDQzMjg4LCA0MzI5NCwgNDMzMDIsIDQzMzA4LCA0MzMxNiwgNDMzMjQsIDQzMzMwLCAKKyAgICA0MzMzOCwgNDMzNDYsIDQzMzU1LCA0MzM2MywgNDMzNjksIDQzMzc3LCA0MzM4NiwgNDMzOTQsIDQzMzk4LCA0MzQwMywgCisgICAgNDM0MTYsIDQzNDI5LCA0MzQzMywgNDM0MzcsIDQzNDQxLCA0MzQ0NSwgNDM0NTUsIDQzNDU5LCA0MzQ2NCwgNDM0NjksIAorICAgIDQzNDc0LCA0MzQ3OSwgNDM0ODQsIDQzNDg5LCA0MzQ5OSwgNDM1MDksIDQzNTE3LCA0MzUyNywgNDM1MzcsIDQzNTQ1LCAKKyAgICA0MzU1NSwgNDM1NjUsIDQzNTczLCA0MzU4MywgNDM1OTMsIDQzNjAxLCA0MzYwOSwgNDM2MTksIDQzNjI5LCA0MzYzMiwgCisgICAgNDM2MzUsIDQzNjM4LCA0MzY0MywgNDM2NDcsIDQzNjUzLCA0MzY2MCwgNDM2NjcsIDQzNjc1LCA0MzY4MiwgNDM2ODYsIAorICAgIDQzNjkwLCA0MzY5NCwgNDM2OTgsIDQzNzAwLCA0MzcwNCwgNDM3MDgsIDQzNzEzLCA0MzcxOCwgNDM3MjUsIDQzNzMyLCAKKyAgICA0MzczNSwgNDM3NDIsIDQzNzQ0LCA0Mzc0NiwgNDM3NTAsIDQzNzU0LCA0Mzc1OSwgNDM3NjUsIDQzNzcxLCA0Mzc3NywgCisgICAgNDM3ODMsIDQzNzkyLCA0MzgwMSwgNDM4MTAsIDQzODE0LCA0MzgxNiwgNDM4MjAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDQzODI3LCA0MzgzMSwgNDM4MzgsIDQzODQ1LCA0Mzg1MiwgNDM4NTksIDQzODYzLCA0Mzg2NywgCisgICAgNDM4NzEsIDQzODc1LCA0Mzg4MCwgNDM4ODYsIDQzODkxLCA0Mzg5NywgNDM5MDMsIDQzOTA5LCA0MzkxNSwgNDM5MjMsIAorICAgIDQzOTMwLCA0MzkzNywgNDM5NDQsIDQzOTUxLCA0Mzk1NiwgNDM5NjIsIDQzOTcxLCA0Mzk3NSwgNDM5ODIsIDQzOTg2LCAKKyAgICA0Mzk5MCwgNDM5OTYsIDQ0MDAyLCA0NDAwOCwgNDQwMTQsIDQ0MDE4LCA0NDAyMiwgNDQwMjUsIDQ0MDI4LCA0NDAzMiwgCisgICAgNDQwMzksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDQ0MDQ2LCA0NDA0OSwgNDQwNTMsIDQ0MDU3LCA0NDA2MywgNDQwNjksIDQ0MDc1LCA0NDA4MywgNDQwOTAsIAorICAgIDQ0MDk0LCA0NDEwMiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgNDQxMDcsIDQ0MTEwLCA0NDExMywgNDQxMTYsIDQ0MTE5LCA0NDEyMiwgNDQxMjUsIDQ0MTI4LCA0NDEzMSwgNDQxMzQsIAorICAgIDQ0MTM4LCA0NDE0MiwgNDQxNDYsIDQ0MTUwLCA0NDE1NCwgNDQxNTgsIDQ0MTYyLCA0NDE2NiwgNDQxNzAsIDQ0MTc0LCAKKyAgICA0NDE3OCwgNDQxODEsIDQ0MTg0LCA0NDE4NywgNDQxOTAsIDQ0MTkzLCA0NDE5NiwgNDQxOTksIDQ0MjAyLCA0NDIwNSwgCisgICAgNDQyMDksIDQ0MjEzLCA0NDIxNywgNDQyMjEsIDQ0MjI1LCA0NDIyOSwgNDQyMzMsIDQ0MjM3LCA0NDI0MSwgNDQyNDUsIAorICAgIDQ0MjQ5LCA0NDI1NSwgNDQyNjEsIDQ0MjY3LCA0NDI3NCwgNDQyODEsIDQ0Mjg4LCA0NDI5NSwgNDQzMDIsIDQ0MzA5LCAKKyAgICA0NDMxNiwgNDQzMjMsIDQ0MzMwLCA0NDMzNywgNDQzNDQsIDQ0MzUxLCA0NDM1OCwgNDQzNjUsIDQ0MzcyLCA0NDM3OSwgCisgICAgNDQzODYsIDQ0MzkxLCA0NDM5NywgNDQ0MDMsIDQ0NDA5LCA0NDQxNCwgNDQ0MjAsIDQ0NDI2LCA0NDQzMiwgNDQ0MzcsIAorICAgIDQ0NDQzLCA0NDQ0OSwgNDQ0NTQsIDQ0NDU5LCA0NDQ2NSwgNDQ0NzAsIDQ0NDc2LCA0NDQ4MiwgNDQ0ODcsIDQ0NDkzLCAKKyAgICA0NDQ5OSwgNDQ1MDQsIDQ0NTEwLCA0NDUxNiwgNDQ1MjIsIDQ0NTI4LCA0NDUzNCwgNDQ1MzksIDQ0NTQ1LCA0NDU1MSwgCisgICAgNDQ1NTcsIDQ0NTYyLCA0NDU2OCwgNDQ1NzQsIDQ0NTgwLCA0NDU4NSwgNDQ1OTEsIDQ0NTk3LCA0NDYwMiwgNDQ2MDcsIAorICAgIDQ0NjEzLCA0NDYxOCwgNDQ2MjQsIDQ0NjMwLCA0NDYzNSwgNDQ2NDEsIDQ0NjQ3LCA0NDY1MiwgNDQ2NTgsIDQ0NjY0LCAKKyAgICA0NDY3MCwgNDQ2NzYsIDQ0NjgyLCA0NDY4NywgNDQ2OTMsIDQ0Njk5LCA0NDcwNSwgNDQ3MTAsIDQ0NzE2LCA0NDcyMiwgCisgICAgNDQ3MjgsIDQ0NzMzLCA0NDczOSwgNDQ3NDUsIDQ0NzUwLCA0NDc1NSwgNDQ3NjEsIDQ0NzY2LCA0NDc3MiwgNDQ3NzgsIAorICAgIDQ0NzgzLCA0NDc4OSwgNDQ3OTUsIDQ0ODAwLCA0NDgwNiwgNDQ4MTIsIDQ0ODE4LCA0NDgyNCwgNDQ4MzAsIDQ0ODM0LCAKKyAgICA0NDgzOSwgNDQ4NDQsIDQ0ODQ5LCA0NDg1NCwgNDQ4NTksIDQ0ODY0LCA0NDg2OSwgNDQ4NzQsIDQ0ODc5LCA0NDg4NCwgCisgICAgNDQ4ODgsIDQ0ODkyLCA0NDg5NiwgNDQ5MDAsIDQ0OTA0LCA0NDkwOCwgNDQ5MTIsIDQ0OTE2LCA0NDkyMCwgNDQ5MjUsIAorICAgIDQ0OTMwLCA0NDkzNSwgNDQ5NDAsIDQ0OTQ1LCA0NDk1MCwgNDQ5NTksIDQ0OTY4LCA0NDk3NywgNDQ5ODYsIDQ0OTk1LCAKKyAgICA0NTAwNCwgNDUwMTMsIDQ1MDIyLCA0NTAyOSwgNDUwMzcsIDQ1MDQ1LCA0NTA1MiwgNDUwNTksIDQ1MDY3LCA0NTA3NSwgCisgICAgNDUwODIsIDQ1MDg5LCA0NTA5NywgNDUxMDUsIDQ1MTEyLCA0NTExOSwgNDUxMjcsIDQ1MTM1LCA0NTE0MiwgNDUxNDksIAorICAgIDQ1MTU3LCA0NTE2NiwgNDUxNzUsIDQ1MTgzLCA0NTE5MiwgNDUyMDEsIDQ1MjA4LCA0NTIxNSwgNDUyMjMsIDQ1MjMyLCAKKyAgICA0NTI0MSwgNDUyNDksIDQ1MjU4LCA0NTI2NywgNDUyNzQsIDQ1MjgxLCA0NTI5MCwgNDUyOTksIDQ1MzA3LCA0NTMxNSwgCisgICAgNDUzMjQsIDQ1MzMzLCA0NTM0MCwgNDUzNDcsIDQ1MzU2LCA0NTM2NSwgNDUzNzMsIDQ1MzgxLCA0NTM5MCwgNDUzOTksIAorICAgIDQ1NDA2LCA0NTQxMywgNDU0MjIsIDQ1NDMxLCA0NTQzOSwgNDU0NDgsIDQ1NDU3LCA0NTQ2NSwgNDU0NzUsIDQ1NDg1LCAKKyAgICA0NTQ5NSwgNDU1MDUsIDQ1NTE0LCA0NTUyMywgNDU1MzIsIDQ1NTQxLCA0NTU0OCwgNDU1NTYsIDQ1NTY0LCA0NTU3MiwgCisgICAgNDU1ODAsIDQ1NTg1LCA0NTU5MCwgNDU1OTksIDQ1NjA3LCA0NTYxNCwgNDU2MjMsIDQ1NjMxLCA0NTYzOCwgNDU2NDcsIAorICAgIDQ1NjU1LCA0NTY2MiwgNDU2NzEsIDQ1Njc5LCA0NTY4NiwgNDU2OTUsIDQ1NzAzLCA0NTcxMCwgNDU3MTksIDQ1NzI3LCAKKyAgICA0NTczNCwgNDU3NDMsIDQ1NzUxLCA0NTc1OCwgNDU3NjcsIDQ1Nzc1LCA0NTc4MiwgNDU3OTEsIDQ1Nzk5LCA0NTgwNiwgCisgICAgNDU4MTUsIDQ1ODI0LCA0NTgzMywgNDU4NDIsIDQ1ODU2LCA0NTg3MCwgNDU4NzcsIDQ1ODgyLCA0NTg4NywgNDU4OTIsIAorICAgIDQ1ODk3LCA0NTkwMiwgNDU5MDcsIDQ1OTEyLCA0NTkxNywgNDU5MjUsIDQ1OTMzLCA0NTk0MSwgNDU5NDksIDQ1OTU0LCAKKyAgICA0NTk2MSwgNDU5NjgsIDQ1OTc1LCA0NTk4MCwgNDU5ODgsIDQ1OTk1LCA0NjAwMywgNDYwMDcsIDQ2MDE0LCA0NjAyMCwgCisgICAgNDYwMjcsIDQ2MDMxLCA0NjAzNywgNDYwNDMsIDQ2MDQ5LCA0NjA1MywgNDYwNTYsIDQ2MDYwLCA0NjA2NCwgNDYwNzEsIAorICAgIDQ2MDc3LCA0NjA4MywgNDYwODksIDQ2MDk1LCA0NjEwOSwgNDYxMTksIDQ2MTMzLCA0NjE0NywgNDYxNTMsIDQ2MTYzLCAKKyAgICA0NjE3NywgNDYxODAsIDQ2MTgzLCA0NjE5MCwgNDYxOTgsIDQ2MjAzLCA0NjIwOCwgNDYyMTYsIDQ2MjI4LCA0NjI0MCwgCisgICAgNDYyNDgsIDQ2MjUyLCA0NjI1NiwgNDYyNTksIDQ2MjYyLCA0NjI2NiwgNDYyNzAsIDQ2MjczLCA0NjI3NiwgNDYyODEsIAorICAgIDQ2Mjg2LCA0NjI5MiwgNDYyOTgsIDQ2MzAzLCA0NjMwOCwgNDYzMTQsIDQ2MzIwLCA0NjMyNSwgNDYzMzAsIDQ2MzM1LCAKKyAgICA0NjM0MCwgNDYzNDYsIDQ2MzUyLCA0NjM1NywgNDYzNjIsIDQ2MzY4LCA0NjM3NCwgNDYzNzksIDQ2Mzg0LCA0NjM4NywgCisgICAgNDYzOTAsIDQ2Mzk5LCA0NjQwMSwgNDY0MDMsIDQ2NDA2LCA0NjQxMCwgNDY0MTYsIDQ2NDE4LCA0NjQyMSwgNDY0MjgsIAorICAgIDQ2NDM1LCA0NjQ0MywgNDY0NTEsIDQ2NDYxLCA0NjQ3NSwgNDY0ODAsIDQ2NDg1LCA0NjQ4OSwgNDY0OTQsIDQ2NTAyLCAKKyAgICA0NjUxMCwgNDY1MTksIDQ2NTI4LCA0NjUzNywgNDY1NDYsIDQ2NTUxLCA0NjU1NiwgNDY1NjIsIDQ2NTY4LCA0NjU3NCwgCisgICAgNDY1ODAsIDQ2NTgzLCA0NjU4OSwgNDY1OTUsIDQ2NjA1LCA0NjYxNSwgNDY2MjMsIDQ2NjMxLCA0NjY0MCwgNDY2NDksIAorICAgIDQ2NjUzLCA0NjY2MSwgNDY2NjksIDQ2Njc3LCA0NjY4NSwgNDY2OTQsIDQ2NzAzLCA0NjcxMiwgNDY3MjEsIDQ2NzI2LCAKKyAgICA0NjczMSwgNDY3MzYsIDQ2NzQxLCA0Njc0NiwgNDY3NTIsIDQ2NzU4LCA0Njc2MywgNDY3NjksIDQ2NzcxLCA0Njc3MywgCisgICAgNDY3NzUsIDQ2Nzc3LCA0Njc4MCwgNDY3ODMsIDQ2Nzg1LCA0Njc4NywgNDY3ODksIDQ2NzkzLCA0Njc5NywgNDY3OTksIAorICAgIDQ2ODAxLCA0NjgwNCwgNDY4MDcsIDQ2ODExLCA0NjgxNywgNDY4MjMsIDQ2ODI1LCA0NjgzMiwgNDY4MzYsIDQ2ODQxLCAKKyAgICA0Njg0NiwgNDY4NDgsIDQ2ODU4LCA0Njg2NCwgNDY4NzAsIDQ2ODc2LCA0Njg4MiwgNDY4ODgsIDQ2ODk0LCA0Njg5OSwgCisgICAgNDY5MDIsIDQ2OTA1LCA0NjkwOCwgNDY5MTAsIDQ2OTEyLCA0NjkxNiwgNDY5MjAsIDQ2OTI1LCA0NjkzMCwgNDY5MzUsIAorICAgIDQ2OTM4LCA0Njk0MiwgNDY5NDcsIDQ2OTUwLCA0Njk1NCwgNDY5NTksIDQ2OTY0LCA0Njk2OSwgNDY5NzQsIDQ2OTc5LCAKKyAgICA0Njk4NCwgNDY5ODksIDQ2OTk0LCA0Njk5OSwgNDcwMDQsIDQ3MDA5LCA0NzAxNCwgNDcwMjAsIDQ3MDI2LCA0NzAzMiwgCisgICAgNDcwMzQsIDQ3MDM3LCA0NzAzOSwgNDcwNDIsIDQ3MDQ0LCA0NzA0NiwgNDcwNDgsIDQ3MDUwLCA0NzA1MiwgNDcwNTQsIAorICAgIDQ3MDU2LCA0NzA1OCwgNDcwNjAsIDQ3MDYyLCA0NzA2NCwgNDcwNjYsIDQ3MDY4LCA0NzA3MCwgNDcwNzIsIDQ3MDc0LCAKKyAgICA0NzA3NiwgNDcwODEsIDQ3MDg2LCA0NzA5MSwgNDcwOTYsIDQ3MTAxLCA0NzEwNiwgNDcxMTEsIDQ3MTE2LCA0NzEyMSwgCisgICAgNDcxMjYsIDQ3MTMxLCA0NzEzNiwgNDcxNDEsIDQ3MTQ2LCA0NzE1MSwgNDcxNTYsIDQ3MTYxLCA0NzE2NiwgNDcxNzEsIAorICAgIDQ3MTc2LCA0NzE4MCwgNDcxODQsIDQ3MTg4LCA0NzE5NCwgNDcyMDAsIDQ3MjA1LCA0NzIxMCwgNDcyMTUsIDQ3MjIwLCAKKyAgICA0NzIyNSwgNDcyMzAsIDQ3MjM4LCA0NzI0NiwgNDcyNTQsIDQ3MjYyLCA0NzI3MCwgNDcyNzgsIDQ3Mjg2LCA0NzI5NCwgCisgICAgNDczMDAsIDQ3MzA1LCA0NzMxMCwgNDczMTUsIDQ3MzE4LCA0NzMyMiwgNDczMjYsIDQ3MzMwLCA0NzMzNCwgNDczMzgsIAorICAgIDQ3MzQyLCA0NzM0OSwgNDczNTYsIDQ3MzY0LCA0NzM3MiwgNDczNzcsIDQ3MzgyLCA0NzM4OSwgNDczOTYsIDQ3NDAzLCAKKyAgICA0NzQxMCwgNDc0MTMsIDQ3NDE2LCA0NzQyMSwgNDc0MjMsIDQ3NDI3LCA0NzQzMiwgNDc0MzQsIDQ3NDM2LCA0NzQzOCwgCisgICAgNDc0NDAsIDQ3NDQ1LCA0NzQ0OCwgNDc0NTAsIDQ3NDU1LCA0NzQ2MiwgNDc0NjksIDQ3NDcyLCA0NzQ3NiwgNDc0ODEsIAorICAgIDQ3NDg2LCA0NzQ5NCwgNDc1MDAsIDQ3NTA2LCA0NzUxOCwgNDc1MjUsIDQ3NTMyLCA0NzUzNywgNDc1NDIsIDQ3NTQ4LCAKKyAgICA0NzU1MSwgNDc1NTQsIDQ3NTU5LCA0NzU2MSwgNDc1NjUsIDQ3NTY3LCA0NzU2OSwgNDc1NzEsIDQ3NTczLCA0NzU3NSwgCisgICAgNDc1NzcsIDQ3NTgyLCA0NzU4NCwgNDc1ODYsIDQ3NTg4LCA0NzU5MCwgNDc1OTQsIDQ3NTk2LCA0NzU5OSwgNDc2MDQsIAorICAgIDQ3NjA5LCA0NzYxNCwgNDc2MTksIDQ3NjI1LCA0NzYzMSwgNDc2MzMsIDQ3NjM2LCA0NzY0MywgNDc2NTAsIDQ3NjU3LCAKKyAgICA0NzY2NCwgNDc2NjgsIDQ3NjcyLCA0NzY3NCwgNDc2NzYsIDQ3NjgwLCA0NzY4NiwgNDc2OTEsIDQ3NjkzLCA0NzY5NywgCisgICAgNDc3MDYsIDQ3NzE0LCA0NzcyMiwgNDc3MjgsIDQ3NzM0LCA0NzczOSwgNDc3NDUsIDQ3NzUwLCA0Nzc1MywgNDc3NjcsIAorICAgIDQ3NzcwLCA0Nzc3NSwgNDc3ODAsIDQ3Nzg2LCA0Nzc5NiwgNDc3OTgsIDQ3ODA0LCA0NzgxMCwgNDc4MTQsIDQ3ODIxLCAKKyAgICA0NzgyNSwgNDc4MjcsIDQ3ODI5LCA0NzgzMywgNDc4MzksIDQ3ODQ0LCA0Nzg1MCwgNDc4NTIsIDQ3ODU4LCA0Nzg2MCwgCisgICAgNDc4NjYsIDQ3ODY4LCA0Nzg3MCwgNDc4NzUsIDQ3ODc3LCA0Nzg4MSwgNDc4ODYsIDQ3ODg4LCA0Nzg5MywgNDc4OTgsIAorICAgIDQ3OTAyLCA0NzkwOSwgMCwgNDc5MTksIDQ3OTI1LCA0NzkyOCwgNDc5MzQsIDQ3OTM3LCA0Nzk0MiwgNDc5NDcsIDQ3OTUxLCAKKyAgICA0Nzk1MywgNDc5NTUsIDQ3OTU5LCA0Nzk2MywgNDc5NjcsIDQ3OTcxLCA0Nzk3NiwgNDc5NzgsIDQ3OTgzLCA0Nzk4NiwgCisgICAgNDc5ODksIDQ3OTkyLCA0Nzk5NiwgNDgwMDAsIDQ4MDA1LCA0ODAwOSwgNDgwMTQsIDQ4MDE5LCA0ODAyMywgNDgwMjgsIAorICAgIDQ4MDM0LCA0ODAzNywgNDgwNDMsIDQ4MDQ4LCA0ODA1MiwgNDgwNTcsIDQ4MDYzLCA0ODA2OSwgNDgwNzYsIDQ4MDgyLCAKKyAgICA0ODA4OSwgNDgwOTYsIDQ4MDk4LCA0ODEwNSwgNDgxMDksIDQ4MTE1LCA0ODEyMSwgNDgxMjYsIDQ4MTMyLCA0ODEzNiwgCisgICAgNDgxNDEsIDQ4MTQ0LCA0ODE0OSwgNDgxNTUsIDQ4MTYyLCA0ODE3MCwgNDgxNzcsIDQ4MTg2LCA0ODE5NiwgNDgyMDMsIAorICAgIDQ4MjA5LCA0ODIxMywgNDgyMjAsIDQ4MjI1LCA0ODIzNCwgNDgyMzcsIDQ4MjQwLCA0ODI0OSwgNDgyNTksIDQ4MjY2LCAKKyAgICA0ODI2OCwgNDgyNzQsIDQ4Mjc5LCA0ODI4MSwgNDgyODQsIDQ4Mjg4LCA0ODI5NiwgNDgzMDUsIDQ4MzA4LCA0ODMxMywgCisgICAgNDgzMTgsIDQ4MzI2LCA0ODMzNCwgNDgzNDIsIDQ4MzUwLCA0ODM1NiwgNDgzNjIsIDQ4MzY4LCA0ODM3NiwgNDgzODEsIAorICAgIDQ4Mzg0LCA0ODM4OCwgNDgzOTEsIDQ4NDAzLCA0ODQxMywgNDg0MjQsIDQ4NDMzLCA0ODQ0NCwgNDg0NTQsIDQ4NDYzLCAKKyAgICA0ODQ2OSwgNDg0NzcsIDQ4NDgxLCA0ODQ4OSwgNDg0OTMsIDQ4NTAxLCA0ODUwOCwgNDg1MTUsIDQ4NTI0LCA0ODUzMywgCisgICAgNDg1NDMsIDQ4NTUzLCA0ODU2MywgNDg1NzMsIDQ4NTgyLCA0ODU5MSwgNDg2MDEsIDQ4NjExLCA0ODYyMCwgNDg2MjksIAorICAgIDQ4NjM1LCA0ODY0MSwgNDg2NDcsIDQ4NjUzLCA0ODY1OSwgNDg2NjUsIDQ4NjcxLCA0ODY3NywgNDg2ODMsIDQ4NjkwLCAKKyAgICA0ODY5NiwgNDg3MDIsIDQ4NzA4LCA0ODcxNCwgNDg3MjAsIDQ4NzI2LCA0ODczMiwgNDg3MzgsIDQ4NzQ0LCA0ODc1MSwgCisgICAgNDg3NTgsIDQ4NzY1LCA0ODc3MiwgNDg3NzksIDQ4Nzg2LCA0ODc5MywgNDg4MDAsIDQ4ODA3LCA0ODgxNCwgNDg4MjIsIAorICAgIDQ4ODI3LCA0ODgzMCwgNDg4MzQsIDQ4ODM4LCA0ODg0NCwgNDg4NDcsIDQ4ODUzLCA0ODg1OSwgNDg4NjQsIDQ4ODY4LCAKKyAgICA0ODg3MywgNDg4NzksIDQ4ODg2LCA0ODg4OSwgNDg4OTYsIDQ4OTAzLCA0ODkwNywgNDg5MTYsIDQ4OTI1LCA0ODkzMCwgCisgICAgNDg5MzYsIDQ4OTQxLCA0ODk0NiwgNDg5NTMsIDQ4OTYwLCA0ODk2OCwgNDg5NzYsIDQ4OTg1LCA0ODk4OSwgNDg5OTgsIAorICAgIDQ5MDAzLCA0OTAwNywgNDkwMTQsIDQ5MDE4LCA0OTAyNSwgNDkwMzMsIDQ5MDM4LCA0OTA0NiwgNDkwNTAsIDQ5MDU1LCAKKyAgICA0OTA1OSwgNDkwNjQsIDQ5MDY4LCA0OTA3MywgNDkwNzgsIDQ5MDg3LCA0OTA4OSwgNDkwOTIsIDQ5MDk1LCA0OTEwMiwgCisgICAgNDkxMDksIDQ5MTE0LCA0OTEyMiwgNDkxMjgsIDQ5MTM0LCA0OTEzOSwgNDkxNDIsIDQ5MTQ3LCA0OTE1MiwgNDkxNTcsIAorICAgIDQ5MTY1LCA0OTE2OSwgNDkxNzYsIDQ5MTg0LCA0OTE5MiwgNDkxOTcsIDQ5MjAyLCA0OTIwOCwgNDkyMTMsIDQ5MjE4LCAKKyAgICA0OTIyNCwgNDkyMjksIDQ5MjMyLCA0OTIzNiwgNDkyNDAsIDQ5MjQ3LCA0OTI1NiwgNDkyNjEsIDQ5MjcwLCA0OTI3OSwgCisgICAgNDkyODUsIDQ5MjkxLCA0OTI5NiwgNDkzMDEsIDQ5MzA2LCA0OTMxMSwgNDkzMTcsIDQ5MzIzLCA0OTMzMSwgNDkzMzksIAorICAgIDQ5MzQ1LCA0OTM1MSwgNDkzNTYsIDQ5MzYxLCA0OTM2OCwgNDkzNzUsIDQ5MzgxLCA0OTM4NCwgNDkzODcsIDQ5MzkxLCAKKyAgICA0OTM5NSwgNDkzOTksIDQ5NDA0LCA0OTQxMCwgNDk0MTYsIDQ5NDIzLCA0OTQzMCwgNDk0MzUsIDQ5NDM5LCA0OTQ0MywgCisgICAgNDk0NDcsIDQ5NDUxLCA0OTQ1NSwgNDk0NTksIDQ5NDYzLCA0OTQ2NywgNDk0NzEsIDQ5NDc1LCA0OTQ3OSwgNDk0ODMsIAorICAgIDQ5NDg3LCA0OTQ5MSwgNDk0OTUsIDQ5NDk5LCA0OTUwMywgNDk1MDcsIDQ5NTExLCA0OTUxNSwgNDk1MTksIDQ5NTIzLCAKKyAgICA0OTUyNywgNDk1MzEsIDQ5NTM1LCA0OTUzOSwgNDk1NDMsIDQ5NTQ3LCA0OTU1MSwgNDk1NTUsIDQ5NTU5LCA0OTU2MywgCisgICAgNDk1NjcsIDQ5NTcxLCA0OTU3NSwgNDk1NzksIDQ5NTgzLCA0OTU4NywgNDk1OTEsIDQ5NTk1LCA0OTU5OSwgNDk2MDMsIAorICAgIDQ5NjA3LCA0OTYxMSwgNDk2MTUsIDQ5NjE5LCA0OTYyMywgNDk2MjcsIDQ5NjMxLCA0OTYzNSwgNDk2MzksIDQ5NjQzLCAKKyAgICA0OTY0NywgNDk2NTEsIDQ5NjU1LCA0OTY1OSwgNDk2NjMsIDQ5NjY3LCA0OTY3MSwgNDk2NzUsIDQ5Njc5LCA0OTY4MywgCisgICAgNDk2ODcsIDQ5NjkxLCA0OTY5NSwgNDk2OTksIDQ5NzAzLCA0OTcwNywgNDk3MTEsIDQ5NzE1LCA0OTcxOSwgNDk3MjMsIAorICAgIDQ5NzI3LCA0OTczMSwgNDk3MzUsIDQ5NzM5LCA0OTc0MywgNDk3NDcsIDQ5NzUxLCA0OTc1NSwgNDk3NTksIDQ5NzYzLCAKKyAgICA0OTc2NywgNDk3NzEsIDQ5Nzc1LCA0OTc3OSwgNDk3ODMsIDQ5Nzg3LCA0OTc5MSwgNDk3OTUsIDQ5Nzk5LCA0OTgwMywgCisgICAgNDk4MDcsIDQ5ODExLCA0OTgxNSwgNDk4MTksIDQ5ODIzLCA0OTgyNywgNDk4MzEsIDQ5ODM1LCA0OTgzOSwgNDk4NDMsIAorICAgIDQ5ODQ3LCA0OTg1MSwgNDk4NTUsIDQ5ODU5LCA0OTg2MywgNDk4NjcsIDQ5ODcxLCA0OTg3NSwgNDk4NzksIDQ5ODgzLCAKKyAgICA0OTg4NywgNDk4OTEsIDQ5ODk1LCA0OTg5OSwgNDk5MDMsIDQ5OTA3LCA0OTkxMSwgNDk5MTUsIDQ5OTE5LCA0OTkyMywgCisgICAgNDk5MjcsIDQ5OTMxLCA0OTkzNSwgNDk5MzksIDQ5OTQzLCA0OTk0NywgNDk5NTEsIDQ5OTU1LCA0OTk1OSwgNDk5NjMsIAorICAgIDQ5OTY3LCA0OTk3MSwgNDk5NzUsIDQ5OTc5LCA0OTk4MywgNDk5ODcsIDQ5OTkxLCA0OTk5NSwgNDk5OTksIDUwMDAzLCAKKyAgICA1MDAwNywgNTAwMTEsIDUwMDE1LCA1MDAxOSwgNTAwMjMsIDUwMDI3LCA1MDAzMSwgNTAwMzUsIDUwMDM5LCA1MDA0MywgCisgICAgNTAwNDcsIDUwMDUxLCA1MDA1NSwgNTAwNTksIDUwMDYzLCA1MDA2NywgNTAwNzEsIDUwMDc1LCA1MDA3OSwgNTAwODMsIAorICAgIDUwMDg3LCA1MDA5MSwgNTAwOTUsIDUwMDk5LCA1MDEwMywgNTAxMDcsIDUwMTExLCA1MDExNSwgNTAxMTksIDUwMTIzLCAKKyAgICA1MDEyNywgNTAxMzEsIDUwMTM1LCA1MDEzOSwgNTAxNDMsIDUwMTQ3LCA1MDE1MSwgNTAxNTUsIDUwMTU5LCA1MDE2MywgCisgICAgNTAxNjcsIDUwMTcxLCA1MDE3NSwgNTAxNzksIDUwMTgzLCA1MDE4NywgNTAxOTEsIDUwMTk1LCA1MDE5OSwgNTAyMDMsIAorICAgIDUwMjA3LCA1MDIxMSwgNTAyMTUsIDUwMjE5LCA1MDIyMywgNTAyMjcsIDUwMjMxLCA1MDIzNSwgNTAyMzksIDUwMjQzLCAKKyAgICA1MDI0NywgNTAyNTEsIDUwMjU1LCA1MDI1OSwgNTAyNjMsIDUwMjY3LCA1MDI3MSwgNTAyNzUsIDUwMjc5LCA1MDI4MywgCisgICAgNTAyODcsIDUwMjkxLCA1MDI5NSwgNTAyOTksIDUwMzAzLCA1MDMwNywgNTAzMTEsIDUwMzE1LCA1MDMxOSwgNTAzMjMsIAorICAgIDUwMzI3LCA1MDMzMSwgNTAzMzUsIDUwMzM5LCA1MDM0MywgNTAzNDcsIDUwMzUxLCA1MDM1NSwgNTAzNTksIDUwMzYzLCAKKyAgICA1MDM2NywgNTAzNzEsIDUwMzc1LCA1MDM3OSwgNTAzODMsIDUwMzg3LCA1MDM5MSwgNTAzOTUsIDUwMzk5LCA1MDQwMywgCisgICAgNTA0MDcsIDUwNDExLCA1MDQxNSwgNTA0MTksIDUwNDIzLCA1MDQyNywgNTA0MzEsIDUwNDM1LCA1MDQzOSwgNTA0NDMsIAorICAgIDUwNDQ3LCA1MDQ1MSwgNTA0NTUsIDUwNDU5LCA1MDQ2NiwgNTA0NzQsIDUwNDgwLCA1MDQ4NiwgNTA0OTMsIDUwNTAwLCAKKyAgICA1MDUwNiwgNTA1MTIsIDUwNTE4LCA1MDUyNCwgNTA1MjksIDUwNTM0LCA1MDUzOSwgNTA1NDQsIDUwNTUwLCA1MDU1NiwgCisgICAgNTA1NjQsIDUwNTcxLCA1MDU3NywgNTA1ODMsIDUwNTkxLCA1MDYwMCwgNTA2MDcsIDUwNjE3LCA1MDYyOCwgNTA2MzEsIAorICAgIDUwNjM0LCA1MDYzOCwgNTA2NDIsIDUwNjQ5LCA1MDY1NiwgNTA2NjcsIDUwNjc4LCA1MDY4OCwgNTA2OTgsIDUwNzA1LCAKKyAgICA1MDcxMiwgNTA3MTksIDUwNzI2LCA1MDczNywgNTA3NDgsIDUwNzU5LCA1MDc3MCwgNTA3ODAsIDUwNzkwLCA1MDgwMiwgCisgICAgNTA4MTQsIDUwODI1LCA1MDgzNiwgNTA4NDgsIDUwODYwLCA1MDg2OSwgNTA4NzksIDUwODg5LCA1MDkwMCwgNTA5MTEsIAorICAgIDUwOTE4LCA1MDkyNSwgNTA5MzIsIDUwOTM5LCA1MDk0OSwgNTA5NTksIDUwOTY3LCA1MDk3NSwgNTA5ODIsIDUwOTg5LCAKKyAgICA1MDk5NiwgNTEwMDMsIDUxMDEwLCA1MTAxNSwgNTEwMjAsIDUxMDI2LCA1MTAzNCwgNTEwNDQsIDUxMDU0LCA1MTA2NCwgCisgICAgNTEwNzQsIDUxMDg0LCA1MTA5NCwgNTExMDQsIDUxMTE0LCA1MTEyNCwgNTExMzQsIDUxMTQ0LCA1MTE1NSwgNTExNjYsIAorICAgIDUxMTc2LCA1MTE4NiwgNTExOTcsIDUxMjA4LCA1MTIxOCwgNTEyMjgsIDUxMjM5LCA1MTI1MCwgNTEyNjAsIDUxMjcwLCAKKyAgICA1MTI4MSwgNTEyOTIsIDUxMzA4LCA1MTMyNywgNTEzNDMsIDUxMzYyLCA1MTM3OCwgNTEzOTQsIDUxNDEwLCA1MTQyNiwgCisgICAgNTE0MzcsIDUxNDQ5LCA1MTQ2MCwgNTE0NzIsIDUxNDkxLCA1MTUxMCwgNTE1MTgsIDUxNTI0LCA1MTUzMSwgNTE1MzgsIAorICAgIDUxNTQ1LCA1MTU1MiwgNTE1NTcsIDUxNTYzLCA1MTU2OCwgNTE1NzMsIDUxNTc5LCA1MTU4NCwgNTE1ODksIDUxNTk0LCAKKyAgICA1MTU5OSwgNTE2MDQsIDUxNjExLCA1MTYxNiwgNTE2MjMsIDUxNjI4LCA1MTYzMywgNTE2MzcsIDUxNjQxLCA1MTY0OCwgCisgICAgNTE2NTUsIDUxNjYyLCA1MTY2OSwgNTE2NzYsIDUxNjgzLCA1MTY5NiwgNTE3MDksIDUxNzIyLCA1MTczNSwgNTE3NDMsIAorICAgIDUxNzUxLCA1MTc1NywgNTE3NjMsIDUxNzcwLCA1MTc3NywgNTE3ODQsIDUxNzkxLCA1MTc5NSwgNTE4MDAsIDUxODA4LCAKKyAgICA1MTgxNiwgNTE4MjQsIDUxODMxLCA1MTgzNSwgNTE4NDMsIDUxODUxLCA1MTg1NSwgNTE4NTksIDUxODY0LCA1MTg3MSwgCisgICAgNTE4NzksIDUxODg3LCA1MTkwNiwgNTE5MjUsIDUxOTQ0LCA1MTk2MywgNTE5ODIsIDUyMDAxLCA1MjAyMCwgNTIwMzksIAorICAgIDUyMDQ1LCA1MjA1MiwgNTIwNjEsIDUyMDY5LCA1MjA3NywgNTIwODIsIDUyMDg1LCA1MjA4OCwgNTIwOTMsIDUyMDk2LCAKKyAgICA1MjExNSwgNTIxMjIsIDUyMTI4LCA1MjEzNCwgNTIxMzgsIDUyMTQxLCA1MjE0NCwgNTIxNDcsIDUyMTU5LCA1MjE3MiwgCisgICAgNTIxNzksIDUyMTg2LCA1MjE4OSwgNTIxOTMsIDUyMTk2LCA1MjIwMSwgNTIyMDYsIDUyMjExLCA1MjIxNywgNTIyMjYsIAorICAgIDUyMjMzLCA1MjI0MCwgNTIyNDgsIDUyMjU1LCA1MjI2MiwgNTIyNjUsIDUyMjcxLCA1MjI3NywgNTIyODAsIDUyMjgzLCAKKyAgICA1MjI4OCwgNTIyOTMsIDUyMjk5LCA1MjMwNSwgNTIzMDksIDUyMzE0LCA1MjMyMSwgNTIzMjUsIDUyMzMxLCA1MjMzNSwgCisgICAgNTIzMzksIDUyMzQ3LCA1MjM1OSwgNTIzNjgsIDUyMzcyLCA1MjM3NCwgNTIzODMsIDUyMzkyLCA1MjM5OCwgNTI0MDEsIAorICAgIDUyNDA3LCA1MjQxMywgNTI0MTgsIDUyNDIzLCA1MjQyOCwgNTI0MzMsIDUyNDM4LCA1MjQ0MywgNTI0NDUsIDUyNDUxLCAKKyAgICA1MjQ1NiwgNTI0NjMsIDUyNDY3LCA1MjQ3MywgNTI0NzYsIDUyNDgwLCA1MjQ4NywgNTI0OTQsIDUyNDk2LCA1MjQ5OCwgCisgICAgNTI1MDQsIDUyNTEwLCA1MjUxNiwgNTI1MjUsIDUyNTM0LCA1MjU0MSwgNTI1NDgsIDUyNTU0LCA1MjU2MCwgNTI1NjUsIAorICAgIDUyNTcwLCA1MjU3NSwgNTI1ODEsIDUyNTg3LCA1MjU5MiwgNTI1OTksIDUyNjAzLCA1MjYwNywgNTI2MjAsIDUyNjMzLCAKKyAgICA1MjY0NSwgNTI2NTQsIDUyNjYwLCA1MjY2NywgNTI2NzIsIDUyNjc3LCA1MjY4MiwgNTI2ODcsIDUyNjkyLCA1MjY5NCwgCisgICAgNTI3MDEsIDUyNzA4LCA1MjcxNSwgNTI3MjIsIDUyNzI5LCA1MjczNywgNTI3NDMsIDUyNzQ4LCA1Mjc1NCwgNTI3NjAsIAorICAgIDUyNzY2LCA1Mjc3MywgNTI3NzksIDUyNzg3LCA1Mjc5NSwgNTI4MDMsIDUyODExLCA1MjgxOCwgNTI4MjQsIDUyODMwLCAKKyAgICA1MjgzOSwgNTI4NDMsIDUyODUyLCA1Mjg2MSwgNTI4NzAsIDUyODc4LCA1Mjg4MiwgNTI4ODgsIDUyODk1LCA1MjkwMiwgCisgICAgNTI5MDYsIDUyOTEyLCA1MjkxOSwgNTI5MjQsIDUyOTI5LCA1MjkzNSwgNTI5NDAsIDUyOTQ1LCA1Mjk1MiwgNTI5NTksIAorICAgIDUyOTY0LCA1Mjk2OSwgNTI5NzcsIDUyOTg1LCA1Mjk5NSwgNTMwMDUsIDUzMDEyLCA1MzAxOSwgNTMwMjMsIDUzMDI3LCAKKyAgICA1MzAzOSwgNTMwNDUsIDUzMDUxLCA1MzA1NiwgNTMwNjEsIDUzMDY4LCA1MzA3NSwgNTMwODEsIDUzMDg3LCA1MzA5NiwgCisgICAgNTMxMDQsIDUzMTEyLCA1MzExOSwgNTMxMjYsIDUzMTMzLCA1MzEzOSwgNTMxNDYsIDUzMTUyLCA1MzE1OSwgNTMxNjYsIAorICAgIDUzMTczLCA1MzE4MCwgNTMxODYsIDUzMTkxLCA1MzIwMCwgNTMyMTAsIDUzMjE3LCA1MzIyNiwgNTMyMzIsIDUzMjM3LCAKKyAgICA1MzI0MiwgNTMyNTIsIDUzMjU4LCA1MzI2NCwgNTMyNzAsIDUzMjc4LCA1MzI4MywgNTMyOTAsIDUzMjk3LCA1MzMwOCwgCisgICAgNTMzMTUsIDUzMzIyLCA1MzMyOSwgNTMzMzYsIDUzMzQzLCA1MzM1MCwgNTMzNTcsIDUzMzY5LCA1MzM4MSwgNTMzOTIsIAorICAgIDUzNDAzLCA1MzQxNiwgNTM0MjksIDUzNDM0LCA1MzQzOSwgNTM0NDgsIDUzNDU3LCA1MzQ2NCwgNTM0NzEsIDUzNDgwLCAKKyAgICA1MzQ4OSwgNTM0OTcsIDUzNTA1LCA1MzUxMywgNTM1MjEsIDUzNTMxLCA1MzU0MSwgNTM1NTUsIDUzNTY5LCA1MzU3NywgCisgICAgNTM1ODUsIDUzNTk3LCA1MzYwOSwgNTM2MTcsIDUzNjI1LCA1MzYzNSwgNTM2NDUsIDUzNjUwLCA1MzY1NSwgNTM2NjQsIAorICAgIDUzNjczLCA1MzY3OCwgNTM2ODMsIDUzNjkxLCA1MzY5NywgNTM3MDMsIDUzNzExLCA1MzcxOSwgNTM3MzIsIDUzNzQ1LCAKKyAgICA1Mzc0OSwgNTM3NTMsIDUzNzYwLCA1Mzc2NywgNTM3NzQsIDUzNzgyLCA1Mzc5MCwgNTM3OTksIDUzODA4LCA1MzgxNCwgCisgICAgNTM4MjAsIDUzODI3LCA1MzgzNCwgNTM4NDEsIDUzODQ4LCA1Mzg1NywgNTM4NjYsIDUzODY5LCA1Mzg3MiwgNTM4NzcsIAorICAgIDUzODgyLCA1Mzg4OCwgNTM4OTQsIDUzOTAxLCA1MzkwOCwgNTM5MTgsIDUzOTI4LCA1MzkzNSwgNTM5NDIsIDUzOTUwLCAKKyAgICA1Mzk1OCwgNTM5NjYsIDUzOTc0LCA1Mzk4MiwgNTM5OTAsIDUzOTk2LCA1NDAwMiwgNTQwMDYsIDU0MDEwLCA1NDAxNywgCisgICAgNTQwMjQsIDU0MDI5LCA1NDAzNCwgNTQwMzksIDU0MDQ0LCA1NDA1MCwgNTQwNjQsIDU0MDcxLCA1NDA3OCwgNTQwODIsIAorICAgIDU0MDg0LCA1NDA4NiwgNTQwOTEsIDU0MDk2LCA1NDEwMSwgNTQxMDYsIDU0MTE0LCA1NDEyMSwgNTQxMjgsIDU0MTM2LCAKKyAgICA1NDE0OCwgNTQxNTYsIDU0MTY0LCA1NDE3NSwgNTQxNzksIDU0MTgzLCA1NDE4OSwgNTQxOTcsIDU0MjEwLCA1NDIxNywgCisgICAgNTQyMjQsIDU0MjMxLCA1NDIzNiwgNTQyNDMsIDU0MjUyLCA1NDI2MCwgNTQyNjYsIDU0MjcyLCA1NDI3OCwgNTQyODcsIAorICAgIDU0Mjk2LCA1NDMwNCwgNTQzMTMsIDU0MzE4LCA1NDMyMSwgNTQzMjYsIDU0MzMyLCA1NDMzOCwgNTQzNDQsIDU0MzUwLCAKKyAgICA1NDM1NCwgNTQzNTcsIDU0MzYxLCA1NDM2NSwgNTQzNzEsIDU0Mzc3LCA1NDM4MywgNTQzODksIDU0MzkzLCA1NDM5NywgCisgICAgNTQ0MDQsIDU0NDExLCA1NDQxOCwgNTQ0MjUsIDU0NDMyLCA1NDQzOSwgNTQ0NDksIDU0NDU5LCA1NDQ2NiwgNTQ0NzMsIAorICAgIDU0NDgxLCA1NDQ4OSwgNTQ0OTMsIDU0NDk4LCA1NDUwMywgNTQ1MDksIDU0NTE1LCA1NDUxOCwgNTQ1MjEsIDU0NTI0LCAKKyAgICA1NDUyNywgNTQ1MzEsIDU0NTM2LCA1NDU0MSwgNTQ1NDYsIDU0NTUxLCA1NDU1NiwgNTQ1NjAsIDU0NTY0LCA1NDU2OCwgCisgICAgNTQ1NzIsIDU0NTc2LCA1NDU4MCwgNTQ1ODQsIDU0NTkwLCA1NDU5NCwgNTQ2MDAsIDU0NjA1LCA1NDYxMiwgNTQ2MjAsIAorICAgIDU0NjI3LCA1NDYzNSwgNTQ2NDIsIDU0NjUwLCA1NDY1OSwgNTQ2NjYsIDU0Njc2LCA1NDY4NywgNTQ2OTMsIDU0NzAyLCAKKyAgICA1NDcwOCwgNTQ3MTcsIDU0NzI2LCA1NDczMiwgNTQ3MzgsIDU0NzQyLCA1NDc0NiwgNTQ3NTUsIDU0NzY0LCA1NDc3MSwgCisgICAgNTQ3NzgsIDU0Nzg3LCAwLCAwLCAwLCA1NDc5NiwgNTQ4MDEsIDU0ODA1LCA1NDgwOSwgNTQ4MTQsIDU0ODE5LCA1NDgyNCwgCisgICAgNTQ4MzIsIDU0ODQwLCA1NDg0MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNTQ4NDcsIDU0ODUyLCA1NDg1NywgNTQ4NjIsIDU0ODY3LCA1NDg3MiwgNTQ4NzcsIDU0ODgyLCAKKyAgICA1NDg4NywgNTQ4OTIsIDU0ODk3LCA1NDkwMywgNTQ5MDcsIDU0OTEyLCA1NDkxNywgNTQ5MjIsIDU0OTI3LCA1NDkzMiwgCisgICAgNTQ5MzcsIDU0OTQyLCA1NDk0NywgNTQ5NTIsIDU0OTU3LCA1NDk2MiwgNTQ5NjcsIDU0OTcyLCA1NDk3NywgNTQ5ODIsIAorICAgIDU0OTg3LCA1NDk5MiwgNTQ5OTcsIDU1MDAyLCA1NTAwNywgNTUwMTIsIDU1MDE3LCA1NTAyMywgNTUwMjgsIDU1MDM0LCAKKyAgICA1NTA0MywgNTUwNDgsIDU1MDU2LCA1NTA2MywgNTUwNzIsIDU1MDc3LCA1NTA4MiwgNTUwODcsIDU1MDkzLCAwLCA1NTEwMCwgCisgICAgNTUxMDUsIDU1MTEwLCA1NTExNSwgNTUxMjAsIDU1MTI1LCA1NTEzMCwgNTUxMzUsIDU1MTQwLCA1NTE0NSwgNTUxNTAsIAorICAgIDU1MTU2LCA1NTE2MCwgNTUxNjUsIDU1MTcwLCA1NTE3NSwgNTUxODAsIDU1MTg1LCA1NTE5MCwgNTUxOTUsIDU1MjAwLCAKKyAgICA1NTIwNSwgNTUyMTAsIDU1MjE1LCA1NTIyMCwgNTUyMjUsIDU1MjMwLCA1NTIzNSwgNTUyNDAsIDU1MjQ1LCA1NTI1MCwgCisgICAgNTUyNTUsIDU1MjYwLCA1NTI2NSwgNTUyNzAsIDU1Mjc2LCA1NTI4MSwgNTUyODcsIDU1Mjk2LCA1NTMwMSwgNTUzMDksIAorICAgIDU1MzE2LCA1NTMyNSwgNTUzMzAsIDU1MzM1LCA1NTM0MCwgNTUzNDYsIDAsIDU1MzUzLCA1NTM2MSwgNTUzNjksIDU1Mzc4LCAKKyAgICA1NTM4NSwgNTUzOTMsIDU1Mzk5LCA1NTQwOCwgNTU0MTYsIDU1NDI0LCA1NTQzMiwgNTU0NDAsIDU1NDQ4LCA1NTQ1NiwgCisgICAgNTU0NjEsIDU1NDY4LCA1NTQ3NCwgNTU0ODEsIDU1NDg5LCA1NTQ5NiwgNTU1MDMsIDU1NTExLCA1NTUxNywgNTU1MjMsIAorICAgIDU1NTMwLCA1NTUzNywgNTU1NDcsIDU1NTU3LCA1NTU2NCwgNTU1NzEsIDU1NTc2LCA1NTU4NiwgNTU1OTYsIDU1NjAxLCAKKyAgICA1NTYwNiwgNTU2MTEsIDU1NjE2LCA1NTYyMSwgNTU2MjYsIDU1NjMxLCA1NTYzNiwgNTU2NDEsIDU1NjQ2LCA1NTY1MSwgCisgICAgNTU2NTYsIDU1NjYxLCA1NTY2NiwgNTU2NzEsIDU1Njc2LCA1NTY4MSwgNTU2ODYsIDU1NjkxLCA1NTY5NiwgNTU3MDEsIAorICAgIDU1NzA2LCA1NTcxMSwgNTU3MTYsIDU1NzIxLCA1NTcyNiwgNTU3MzEsIDU1NzM2LCA1NTc0MSwgNTU3NDYsIDU1NzUwLCAKKyAgICA1NTc1NCwgNTU3NTksIDU1NzY0LCA1NTc2OSwgNTU3NzQsIDU1Nzc5LCA1NTc4NCwgNTU3ODksIDU1Nzk0LCA1NTc5OSwgCisgICAgNTU4MDQsIDU1ODA5LCA1NTgxNCwgNTU4MTksIDU1ODI0LCA1NTgyOSwgNTU4MzQsIDU1ODM5LCA1NTg0NCwgNTU4NTEsIAorICAgIDU1ODU4LCA1NTg2NSwgNTU4NzIsIDU1ODc5LCA1NTg4NiwgNTU4OTMsIDU1OTAwLCA1NTkwNywgNTU5MTQsIDU1OTIxLCAKKyAgICA1NTkyOCwgNTU5MzUsIDU1OTQyLCA1NTk0NywgNTU5NTIsIDU1OTU5LCA1NTk2NiwgNTU5NzMsIDU1OTgwLCA1NTk4NywgCisgICAgNTU5OTQsIDU2MDAxLCA1NjAwOCwgNTYwMTUsIDU2MDIyLCA1NjAyOSwgNTYwMzYsIDU2MDQyLCA1NjA0OCwgNTYwNTQsIAorICAgIDU2MDYwLCA1NjA2NywgNTYwNzQsIDU2MDgxLCA1NjA4OCwgNTYwOTUsIDU2MTAyLCA1NjEwOSwgNTYxMTYsIDU2MTIzLCAKKyAgICA1NjEzMCwgNTYxMzgsIDU2MTQ2LCA1NjE1NCwgNTYxNjIsIDU2MTcwLCA1NjE3OCwgNTYxODYsIDU2MTk0LCA1NjE5OCwgCisgICAgNTYyMDQsIDU2MjEwLCA1NjIxNCwgNTYyMjAsIDU2MjI2LCA1NjIzMiwgNTYyMzksIDU2MjQ2LCA1NjI1MywgNTYyNjAsIAorICAgIDU2MjY1LCA1NjI3MSwgNTYyNzcsIDU2Mjg0LCAwLCAwLCAwLCAwLCAwLCA1NjI5MSwgNTYyOTksIDU2MzA4LCA1NjMxNywgCisgICAgNTYzMjUsIDU2MzMxLCA1NjMzNiwgNTYzNDEsIDU2MzQ2LCA1NjM1MSwgNTYzNTYsIDU2MzYxLCA1NjM2NiwgNTYzNzEsIAorICAgIDU2Mzc2LCA1NjM4MSwgNTYzODYsIDU2MzkxLCA1NjM5NiwgNTY0MDEsIDU2NDA2LCA1NjQxMSwgNTY0MTYsIDU2NDIxLCAKKyAgICA1NjQyNiwgNTY0MzEsIDU2NDM2LCA1NjQ0MSwgNTY0NDYsIDU2NDUxLCA1NjQ1NiwgNTY0NjEsIDU2NDY2LCA1NjQ3MSwgCisgICAgNTY0NzYsIDU2NDgxLCA1NjQ4NiwgNTY0OTEsIDU2NDk2LCA1NjUwMSwgNTY1MDYsIDU2NTExLCA1NjUxNiwgNTY1MjEsIAorICAgIDU2NTI2LCAwLCA1NjUzMSwgMCwgMCwgMCwgMCwgMCwgNTY1MzYsIDAsIDAsIDU2NTQxLCA1NjU0NSwgNTY1NTAsIDU2NTU1LCAKKyAgICA1NjU2MCwgNTY1NjUsIDU2NTc0LCA1NjU3OSwgNTY1ODQsIDU2NTg5LCA1NjU5NCwgNTY1OTksIDU2NjA0LCA1NjYwOSwgCisgICAgNTY2MTQsIDU2NjIxLCA1NjYyNiwgNTY2MzEsIDU2NjQwLCA1NjY0NywgNTY2NTIsIDU2NjU3LCA1NjY2MiwgNTY2NjksIAorICAgIDU2Njc0LCA1NjY4MSwgNTY2ODYsIDU2NjkxLCA1NjY5OCwgNTY3MDUsIDU2NzEwLCA1NjcxNSwgNTY3MjAsIDU2NzI3LCAKKyAgICA1NjczNCwgNTY3MzksIDU2NzQ0LCA1Njc0OSwgNTY3NTQsIDU2NzU5LCA1Njc2NiwgNTY3NzMsIDU2Nzc4LCA1Njc4MywgCisgICAgNTY3ODgsIDU2NzkzLCA1Njc5OCwgNTY4MDMsIDU2ODA4LCA1NjgxMywgNTY4MTgsIDU2ODIzLCA1NjgyOCwgNTY4MzUsIAorICAgIDU2ODQwLCA1Njg0NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTY4NTAsIDU2ODU3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA1Njg2MiwgNTY4NjcsIDU2ODcxLCA1Njg3NSwgNTY4NzksIDU2ODgzLCA1Njg4NywgNTY4OTEsIAorICAgIDU2ODk1LCA1Njg5OSwgNTY5MDMsIDU2OTA3LCA1NjkxMywgNTY5MTcsIDU2OTIxLCA1NjkyNSwgNTY5MjksIDU2OTMzLCAKKyAgICA1NjkzNywgNTY5NDEsIDU2OTQ1LCA1Njk0OSwgNTY5NTMsIDU2OTU3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA1Njk2MSwgNTY5NjUsIDU2OTY5LCA1Njk3MywgNTY5NzcsIDU2OTgxLCA1Njk4NSwgMCwgNTY5ODksIDU2OTkzLCA1Njk5NywgCisgICAgNTcwMDEsIDU3MDA1LCA1NzAwOSwgNTcwMTMsIDAsIDU3MDE3LCA1NzAyMSwgNTcwMjUsIDU3MDI5LCA1NzAzMywgNTcwMzcsIAorICAgIDU3MDQxLCAwLCA1NzA0NSwgNTcwNDksIDU3MDUzLCA1NzA1NywgNTcwNjEsIDU3MDY1LCA1NzA2OSwgMCwgNTcwNzMsIAorICAgIDU3MDc3LCA1NzA4MSwgNTcwODUsIDU3MDg5LCA1NzA5MywgNTcwOTcsIDAsIDU3MTAxLCA1NzEwNSwgNTcxMDksIDU3MTEzLCAKKyAgICA1NzExNywgNTcxMjEsIDU3MTI1LCAwLCA1NzEyOSwgNTcxMzMsIDU3MTM3LCA1NzE0MSwgNTcxNDUsIDU3MTQ5LCA1NzE1MywgCisgICAgMCwgNTcxNTcsIDU3MTYxLCA1NzE2NSwgNTcxNjksIDU3MTczLCA1NzE3NywgNTcxODEsIDAsIDU3MTg1LCA1NzE5MCwgCisgICAgNTcxOTUsIDU3MjAwLCA1NzIwNSwgNTcyMTAsIDU3MjE1LCA1NzIxOSwgNTcyMjQsIDU3MjI5LCA1NzIzNCwgNTcyMzgsIAorICAgIDU3MjQzLCA1NzI0OCwgNTcyNTMsIDU3MjU4LCA1NzI2MiwgNTcyNjcsIDU3MjcyLCA1NzI3NywgNTcyODIsIDU3Mjg3LCAKKyAgICA1NzI5MiwgNTcyOTYsIDU3MzAxLCA1NzMwNiwgNTczMTMsIDU3MzE4LCA1NzMyMywgNTczMjksIDU3MzM2LCA1NzM0MywgCisgICAgNTczNTIsIDU3MzU5LCA1NzM2OCwgNTczNzIsIDU3Mzc2LCA1NzM4MiwgNTczODgsIDU3Mzk0LCA1NzQwMiwgNTc0MDgsIAorICAgIDU3NDEyLCA1NzQxNiwgNTc0MjAsIDU3NDI2LCA1NzQzMiwgNTc0MzYsIDU3NDM4LCA1NzQ0MiwgNTc0NDgsIDU3NDUwLCAKKyAgICA1NzQ1NCwgNTc0NTgsIDU3NDYyLCA1NzQ2OCwgNTc0NzMsIDU3NDc3LCA1NzQ4MSwgNTc0ODYsIDU3NDkyLCA1NzQ5NywgCisgICAgNTc1MDIsIDU3NTA3LCA1NzUxMiwgNTc1MTksIDU3NTI2LCA1NzUzMSwgNTc1MzYsIDU3NTQxLCA1NzU0NiwgNTc1NTEsIAorICAgIDU3NTU2LCA1NzU2MCwgNTc1NjQsIDU3NTcxLCA1NzU3OCwgNTc1ODQsIDU3NTg4LCA1NzU5MywgNTc1OTUsIDU3NTk5LCAKKyAgICA1NzYwNywgNTc2MTEsIDU3NjE1LCA1NzYxOSwgNTc2MjMsIDU3NjI5LCA1NzYzNSwgNTc2MzksIDU3NjQ1LCA1NzY0OSwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTc2NTMsIDU3NjU3LCAKKyAgICA1NzY2MSwgNTc2NjYsIDU3NjcxLCA1NzY3NiwgNTc2ODAsIDU3Njg0LCA1NzY4OCwgNTc2OTMsIDU3Njk4LCA1NzcwMiwgCisgICAgNTc3MDYsIDU3NzEwLCA1NzcxNCwgNTc3MTksIDU3NzI0LCA1NzcyOSwgNTc3MzQsIDU3NzM4LCA1Nzc0MiwgNTc3NDcsIAorICAgIDU3NzUyLCA1Nzc1NywgNTc3NjIsIDU3NzY2LCAwLCA1Nzc3MCwgNTc3NzQsIDU3Nzc4LCA1Nzc4MiwgNTc3ODYsIDU3NzkwLCAKKyAgICA1Nzc5NCwgNTc3OTksIDU3ODA0LCA1NzgwOCwgNTc4MTMsIDU3ODE4LCA1NzgyNywgNTc4MzEsIDU3ODM1LCA1NzgzOSwgCisgICAgNTc4NDYsIDU3ODUwLCA1Nzg1NSwgNTc4NjAsIDU3ODY0LCA1Nzg2OCwgNTc4NzQsIDU3ODc5LCA1Nzg4NCwgNTc4ODksIAorICAgIDU3ODk0LCA1Nzg5OCwgNTc5MDIsIDU3OTA2LCA1NzkxMCwgNTc5MTQsIDU3OTE5LCA1NzkyNCwgNTc5MjgsIDU3OTMyLCAKKyAgICA1NzkzNywgNTc5NDIsIDU3OTQ3LCA1Nzk1MSwgNTc5NTUsIDU3OTYwLCA1Nzk2NSwgNTc5NzEsIDU3OTc3LCA1Nzk4MSwgCisgICAgNTc5ODcsIDU3OTkzLCA1Nzk5NywgNTgwMDMsIDU4MDA5LCA1ODAxNCwgNTgwMTksIDU4MDIzLCA1ODAyOSwgNTgwMzMsIAorICAgIDU4MDM3LCA1ODA0MywgNTgwNDksIDU4MDU0LCA1ODA1OSwgNTgwNjMsIDU4MDY3LCA1ODA3NSwgNTgwODEsIDU4MDg3LCAKKyAgICA1ODA5MywgNTgwOTgsIDU4MTAzLCA1ODEwOCwgNTgxMTQsIDU4MTE4LCA1ODEyNCwgNTgxMjgsIDU4MTMyLCA1ODEzOCwgCisgICAgNTgxNDQsIDU4MTUwLCA1ODE1NiwgNTgxNjIsIDU4MTY4LCA1ODE3NCwgNTgxODAsIDU4MTg2LCA1ODE5MiwgNTgxOTgsIAorICAgIDU4MjA0LCA1ODIwOCwgNTgyMTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU4MjIwLCA1ODIyMywgCisgICAgNTgyMjcsIDU4MjMxLCA1ODIzNSwgNTgyMzksIDU4MjQyLCA1ODI0NSwgNTgyNDksIDU4MjUzLCA1ODI1NywgNTgyNjEsIAorICAgIDU4MjY0LCA1ODI2OSwgNTgyNzMsIDU4Mjc3LCA1ODI4MSwgNTgyODYsIDU4MjkwLCA1ODI5NCwgNTgyOTgsIDU4MzAyLCAKKyAgICA1ODMwOCwgNTgzMTQsIDU4MzE4LCA1ODMyMiwgNTgzMjYsIDU4MzMwLCA1ODMzNCwgNTgzMzgsIDU4MzQyLCA1ODM0NiwgCisgICAgNTgzNTAsIDU4MzU0LCA1ODM1OCwgNTgzNjQsIDU4MzY4LCA1ODM3MiwgNTgzNzYsIDU4MzgwLCA1ODM4NCwgNTgzODgsIAorICAgIDU4MzkyLCA1ODM5NiwgNTg0MDAsIDU4NDA0LCA1ODQwOCwgNTg0MTIsIDU4NDE2LCA1ODQyMCwgNTg0MjQsIDU4NDI4LCAKKyAgICA1ODQzNCwgNTg0NDAsIDU4NDQ1LCA1ODQ1MCwgNTg0NTQsIDU4NDU4LCA1ODQ2MiwgNTg0NjYsIDU4NDcwLCA1ODQ3NCwgCisgICAgNTg0NzgsIDU4NDgyLCA1ODQ4NiwgNTg0OTAsIDU4NDk0LCA1ODQ5OCwgNTg1MDIsIDU4NTA2LCA1ODUxMCwgNTg1MTQsIAorICAgIDU4NTE4LCA1ODUyMiwgNTg1MjYsIDU4NTMwLCA1ODUzNCwgNTg1MzgsIDU4NTQyLCA1ODU0NiwgNTg1NTIsIDU4NTU2LCAKKyAgICA1ODU2MCwgNTg1NjQsIDU4NTY4LCA1ODU3MiwgNTg1NzYsIDU4NTgwLCA1ODU4NCwgNTg1ODksIDU4NTk2LCA1ODYwMCwgCisgICAgNTg2MDQsIDU4NjA4LCA1ODYxMiwgNTg2MTYsIDU4NjIwLCA1ODYyNCwgNTg2MjgsIDU4NjMyLCA1ODYzNiwgNTg2NDAsIAorICAgIDU4NjQ0LCA1ODY1MSwgNTg2NTUsIDU4NjYxLCA1ODY2NSwgNTg2NjksIDU4NjczLCA1ODY3NywgNTg2ODEsIDU4Njg0LCAKKyAgICA1ODY4OCwgNTg2OTIsIDU4Njk2LCA1ODcwMCwgNTg3MDQsIDU4NzA4LCA1ODcxMiwgNTg3MTYsIDU4NzIwLCA1ODcyNCwgCisgICAgNTg3MjgsIDU4NzMyLCA1ODczNiwgNTg3NDAsIDU4NzQ0LCA1ODc0OCwgNTg3NTIsIDU4NzU2LCA1ODc2MCwgNTg3NjQsIAorICAgIDU4NzY4LCA1ODc3MiwgNTg3NzYsIDU4NzgwLCA1ODc4NCwgNTg3ODgsIDU4NzkyLCA1ODc5NiwgNTg4MDAsIDU4ODA0LCAKKyAgICA1ODgwOCwgNTg4MTIsIDU4ODE4LCA1ODgyMiwgNTg4MjYsIDU4ODMwLCA1ODgzNCwgNTg4MzgsIDU4ODQyLCA1ODg0NiwgCisgICAgNTg4NTAsIDU4ODU0LCA1ODg1OCwgNTg4NjIsIDU4ODY2LCA1ODg3MCwgNTg4NzQsIDU4ODc4LCA1ODg4MiwgNTg4ODYsIAorICAgIDU4ODkwLCA1ODg5NCwgNTg4OTgsIDU4OTAyLCA1ODkwNiwgNTg5MTAsIDU4OTE0LCA1ODkxOCwgNTg5MjIsIDU4OTI2LCAKKyAgICA1ODkzNCwgNTg5MzgsIDU4OTQyLCA1ODk0NiwgNTg5NTAsIDU4OTU0LCA1ODk2MCwgNTg5NjQsIDU4OTY4LCA1ODk3MiwgCisgICAgNTg5NzYsIDU4OTgwLCA1ODk4NCwgNTg5ODgsIDU4OTkyLCA1ODk5NiwgNTkwMDAsIDU5MDA0LCA1OTAwOCwgNTkwMTIsIAorICAgIDU5MDE4LCA1OTAyMiwgNTkwMjYsIDU5MDMwLCA1OTAzNCwgNTkwMzgsIDU5MDQyLCA1OTA0NiwgNTkwNTAsIDU5MDU0LCAKKyAgICA1OTA1OCwgNTkwNjIsIDU5MDY2LCA1OTA3MCwgNTkwNzQsIDU5MDc4LCA1OTA4MiwgNTkwODYsIDU5MDkwLCA1OTA5NCwgCisgICAgNTkwOTgsIDU5MTAyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA1OTEwNiwgNTkxMTUsIDU5MTIzLCA1OTEzNSwgNTkxNDYsIDU5MTU0LCA1OTE2MywgNTkxNzIsIAorICAgIDU5MTgyLCA1OTE5NCwgNTkyMDYsIDU5MjE4LCAwLCAwLCAwLCAwLCA1OTIyNCwgNTkyMjcsIDU5MjMwLCA1OTIzNSwgCisgICAgNTkyMzgsIDU5MjQ1LCA1OTI0OSwgNTkyNTMsIDU5MjU3LCA1OTI2MSwgNTkyNjUsIDU5MjcwLCA1OTI3NSwgNTkyNzksIAorICAgIDU5MjgzLCA1OTI4OCwgNTkyOTMsIDU5Mjk4LCA1OTMwMywgNTkzMDYsIDU5MzA5LCA1OTMxNSwgNTkzMjEsIDU5MzI2LCAKKyAgICA1OTMzMSwgNTkzMzgsIDU5MzQ1LCA1OTM0OSwgNTkzNTMsIDU5MzU3LCA1OTM2NSwgNTkzNzEsIDU5Mzc4LCA1OTM4MywgCisgICAgNTkzODgsIDU5MzkzLCA1OTM5OCwgNTk0MDMsIDU5NDA4LCA1OTQxMywgNTk0MTgsIDU5NDIzLCA1OTQyOCwgNTk0MzMsIAorICAgIDU5NDM4LCA1OTQ0MywgNTk0NDgsIDU5NDU0LCA1OTQ1OSwgNTk0NjMsIDU5NDY5LCA1OTQ4MCwgNTk0OTAsIDU5NTA1LCAKKyAgICA1OTUxNSwgNTk1MTksIDU5NTI5LCA1OTUzNSwgNTk1NDEsIDU5NTQ3LCA1OTU1MiwgNTk1NTUsIDU5NTYwLCA1OTU2NCwgMCwgCisgICAgNTk1NzAsIDU5NTc0LCA1OTU3NywgNTk1ODEsIDU5NTg0LCA1OTU4OCwgNTk1OTEsIDU5NTk1LCA1OTU5OCwgNTk2MDIsIAorICAgIDU5NjA1LCA1OTYwOCwgNTk2MTIsIDU5NjE2LCA1OTYyMCwgNTk2MjQsIDU5NjI4LCA1OTYzMiwgNTk2MzYsIDU5NjQwLCAKKyAgICA1OTY0NCwgNTk2NDcsIDU5NjUxLCA1OTY1NSwgNTk2NTksIDU5NjYzLCA1OTY2NywgNTk2NzEsIDU5Njc1LCA1OTY3OSwgCisgICAgNTk2ODMsIDU5Njg3LCA1OTY5MSwgNTk2OTUsIDU5Njk5LCA1OTcwNCwgNTk3MDgsIDU5NzEyLCA1OTcxNiwgNTk3MjAsIAorICAgIDU5NzIzLCA1OTcyNywgNTk3MzAsIDU5NzM0LCA1OTczOCwgNTk3NDIsIDU5NzQ2LCA1OTc0OSwgNTk3NTMsIDU5NzU2LCAKKyAgICA1OTc2MCwgNTk3NjQsIDU5NzY4LCA1OTc3MiwgNTk3NzYsIDU5NzgwLCA1OTc4NCwgNTk3ODgsIDU5NzkyLCA1OTc5NiwgCisgICAgNTk4MDAsIDU5ODA0LCA1OTgwNywgNTk4MTEsIDU5ODE1LCA1OTgxOSwgNTk4MjMsIDU5ODI3LCA1OTgzMCwgNTk4MzUsIAorICAgIDU5ODM5LCA1OTg0NCwgNTk4NDgsIDU5ODUxLCA1OTg1NSwgNTk4NTksIDU5ODYzLCA1OTg2NywgNTk4NzIsIDU5ODc2LCAKKyAgICA1OTg4MCwgNTk4ODQsIDU5ODg4LCA1OTg5MiwgNTk4OTYsIDU5OTAwLCAwLCAwLCA1OTkwNSwgNTk5MTMsIDU5OTIxLCAKKyAgICA1OTkyOCwgNTk5MzUsIDU5OTM5LCA1OTk0NSwgNTk5NTAsIDU5OTU1LCA1OTk1OSwgNTk5NjIsIDU5OTY2LCA1OTk2OSwgCisgICAgNTk5NzMsIDU5OTc2LCA1OTk4MCwgNTk5ODMsIDU5OTg3LCA1OTk5MCwgNTk5OTMsIDU5OTk3LCA2MDAwMSwgNjAwMDUsIAorICAgIDYwMDA5LCA2MDAxMywgNjAwMTcsIDYwMDIxLCA2MDAyNSwgNjAwMjksIDYwMDMyLCA2MDAzNiwgNjAwNDAsIDYwMDQ0LCAKKyAgICA2MDA0OCwgNjAwNTIsIDYwMDU2LCA2MDA2MCwgNjAwNjQsIDYwMDY4LCA2MDA3MiwgNjAwNzYsIDYwMDgwLCA2MDA4NCwgCisgICAgNjAwODksIDYwMDkzLCA2MDA5NywgNjAxMDEsIDYwMTA1LCA2MDEwOCwgNjAxMTIsIDYwMTE1LCA2MDExOSwgNjAxMjMsIAorICAgIDYwMTI3LCA2MDEzMSwgNjAxMzQsIDYwMTM4LCA2MDE0MSwgNjAxNDUsIDYwMTQ5LCA2MDE1MywgNjAxNTcsIDYwMTYxLCAKKyAgICA2MDE2NSwgNjAxNjksIDYwMTczLCA2MDE3NywgNjAxODEsIDYwMTg1LCA2MDE4OSwgNjAxOTIsIDYwMTk2LCA2MDIwMCwgCisgICAgNjAyMDQsIDYwMjA4LCA2MDIxMiwgNjAyMTUsIDYwMjIwLCA2MDIyNCwgNjAyMjksIDYwMjMzLCA2MDIzNiwgNjAyNDAsIAorICAgIDYwMjQ0LCA2MDI0OCwgNjAyNTIsIDYwMjU3LCA2MDI2MSwgNjAyNjUsIDYwMjY5LCA2MDI3MywgNjAyNzcsIDYwMjgxLCAKKyAgICA2MDI4NSwgNjAyOTAsIDYwMjk0LCA2MDI5OCwgNjAzMDIsIDYwMzA2LCA2MDMxMSwgNjAzMTgsIDYwMzIyLCA2MDMyOCwgMCwgCisgICAgMCwgMCwgMCwgMCwgNjAzMzMsIDYwMzM4LCA2MDM0MywgNjAzNDcsIDYwMzUyLCA2MDM1NywgNjAzNjIsIDYwMzY3LCAKKyAgICA2MDM3MSwgNjAzNzYsIDYwMzgxLCA2MDM4NiwgNjAzOTEsIDYwMzk2LCA2MDQwMSwgNjA0MDYsIDYwNDExLCA2MDQxNiwgCisgICAgNjA0MjAsIDYwNDI1LCA2MDQzMCwgNjA0MzUsIDYwNDM5LCA2MDQ0MywgNjA0NDcsIDYwNDUyLCA2MDQ1NywgNjA0NjIsIAorICAgIDYwNDY3LCA2MDQ3MiwgNjA0NzcsIDYwNDgyLCA2MDQ4NywgNjA0OTIsIDYwNDk3LCA2MDUwMSwgNjA1MDUsIDYwNTEwLCAKKyAgICA2MDUxNSwgNjA1MjAsIDYwNTI1LCAwLCAwLCAwLCA2MDUzMCwgNjA1MzQsIDYwNTM4LCA2MDU0MiwgNjA1NDYsIDYwNTUwLCAKKyAgICA2MDU1NCwgNjA1NTgsIDYwNTYyLCA2MDU2NiwgNjA1NzAsIDYwNTc0LCA2MDU3OCwgNjA1ODIsIDYwNTg2LCA2MDU5MCwgCisgICAgNjA1OTQsIDYwNTk4LCA2MDYwMiwgNjA2MDYsIDYwNjEwLCA2MDYxNCwgNjA2MTgsIDYwNjIyLCA2MDYyNiwgNjA2MzAsIAorICAgIDYwNjM0LCA2MDYzOCwgNjA2NDIsIDYwNjQ2LCA2MDY1MCwgNjA2NTMsIDYwNjU3LCA2MDY2MCwgNjA2NjQsIDYwNjY4LCAKKyAgICA2MDY3MSwgNjA2NzUsIDYwNjc5LCA2MDY4MiwgNjA2ODYsIDYwNjkwLCA2MDY5NCwgNjA2OTgsIDYwNzAxLCA2MDcwNSwgCisgICAgNjA3MDksIDYwNzEzLCA2MDcxNywgNjA3MjEsIDYwNzI1LCA2MDcyOCwgNjA3MzEsIDYwNzM1LCA2MDczOSwgNjA3NDMsIAorICAgIDYwNzQ3LCA2MDc1MSwgNjA3NTUsIDYwNzU5LCA2MDc2MywgNjA3NjcsIDYwNzcxLCA2MDc3NSwgNjA3NzksIDYwNzgzLCAKKyAgICA2MDc4NywgNjA3OTEsIDYwNzk1LCA2MDc5OSwgNjA4MDMsIDYwODA3LCA2MDgxMSwgNjA4MTUsIDYwODE5LCA2MDgyMywgCisgICAgNjA4MjcsIDYwODMxLCA2MDgzNSwgNjA4MzksIDYwODQzLCA2MDg0NywgNjA4NTEsIDYwODU1LCA2MDg1OSwgNjA4NjMsIAorICAgIDYwODY3LCA2MDg3MSwgNjA4NzUsIDYwODc5LCA2MDg4MywgNjA4ODcsIDYwODkxLCA2MDg5NSwgMCwgNjA4OTksIDYwOTA1LCAKKyAgICA2MDkxMSwgNjA5MTYsIDYwOTIxLCA2MDkyNiwgNjA5MzIsIDYwOTM4LCA2MDk0NCwgNjA5NTAsIDYwOTU2LCA2MDk2MiwgCisgICAgNjA5NjgsIDYwOTc0LCA2MDk4MCwgNjA5ODYsIDYwOTkyLCA2MDk5NywgNjEwMDIsIDYxMDA3LCA2MTAxMiwgNjEwMTcsIAorICAgIDYxMDIyLCA2MTAyNywgNjEwMzIsIDYxMDM3LCA2MTA0MiwgNjEwNDcsIDYxMDUyLCA2MTA1NywgNjEwNjIsIDYxMDY3LCAKKyAgICA2MTA3MiwgNjEwNzcsIDYxMDgyLCA2MTA4NywgNjEwOTIsIDYxMDk4LCA2MTEwNCwgNjExMTAsIDYxMTE2LCA2MTEyMSwgCisgICAgNjExMjYsIDAsIDAsIDAsIDAsIDAsIDYxMTMxLCA2MTEzNiwgNjExNDEsIDYxMTQ2LCA2MTE1MSwgNjExNTYsIDYxMTYxLCAKKyAgICA2MTE2NiwgNjExNzEsIDYxMTc2LCA2MTE4MSwgNjExODYsIDYxMTkxLCA2MTE5NiwgNjEyMDEsIDYxMjA2LCA2MTIxMSwgCisgICAgNjEyMTYsIDYxMjIxLCA2MTIyNiwgNjEyMzEsIDYxMjM2LCA2MTI0MSwgNjEyNDYsIDYxMjUxLCA2MTI1NiwgNjEyNjEsIAorICAgIDYxMjY2LCA2MTI3MSwgNjEyNzYsIDYxMjgxLCA2MTI4NiwgNjEyOTEsIDYxMjk2LCA2MTMwMSwgNjEzMDYsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYxMzExLCA2MTMxNiwgNjEzMjEsIDYxMzI2LCA2MTMzMCwgNjEzMzUsIAorICAgIDYxMzM5LCA2MTM0NCwgNjEzNDksIDYxMzU0LCA2MTM1OSwgNjEzNjQsIDYxMzY4LCA2MTM3MywgNjEzNzgsIDYxMzgzLCAKKyAgICA2MTM4OCwgNjEzOTIsIDYxMzk2LCA2MTQwMCwgNjE0MDQsIDYxNDA4LCA2MTQxMiwgNjE0MTYsIDYxNDIwLCA2MTQyNCwgCisgICAgNjE0MjgsIDYxNDMyLCA2MTQzNiwgNjE0NDAsIDYxNDQ0LCA2MTQ0OSwgNjE0NTQsIDYxNDU5LCA2MTQ2NCwgNjE0NjksIAorICAgIDYxNDc0LCA2MTQ3OSwgNjE0ODQsIDYxNDg5LCA2MTQ5NCwgNjE0OTksIDYxNTA0LCA2MTUwOSwgNjE1MTQsIDYxNTE5LCAKKyAgICA2MTUyNSwgMCwgNjE1MzIsIDYxNTM1LCA2MTUzOCwgNjE1NDEsIDYxNTQ0LCA2MTU0NywgNjE1NTAsIDYxNTUzLCA2MTU1NiwgCisgICAgNjE1NTksIDYxNTYzLCA2MTU2NywgNjE1NzEsIDYxNTc1LCA2MTU3OSwgNjE1ODMsIDYxNTg3LCA2MTU5MSwgNjE1OTUsIAorICAgIDYxNTk5LCA2MTYwMywgNjE2MDcsIDYxNjExLCA2MTYxNSwgNjE2MTksIDYxNjIzLCA2MTYyNywgNjE2MzEsIDYxNjM1LCAKKyAgICA2MTYzOSwgNjE2NDMsIDYxNjQ3LCA2MTY1MSwgNjE2NTUsIDYxNjU5LCA2MTY2MywgNjE2NjcsIDYxNjcxLCA2MTY3NSwgCisgICAgNjE2NzksIDYxNjgzLCA2MTY5MiwgNjE3MDEsIDYxNzEwLCA2MTcxOSwgNjE3MjgsIDYxNzM3LCA2MTc0NiwgNjE3NTUsIAorICAgIDYxNzU4LCA2MTc2MywgNjE3NjgsIDYxNzczLCA2MTc3OCwgNjE3ODMsIDYxNzg4LCA2MTc5MywgNjE3OTgsIDYxODAzLCAKKyAgICA2MTgwNywgNjE4MTIsIDYxODE3LCA2MTgyMiwgNjE4MjcsIDYxODMyLCA2MTgzNiwgNjE4NDAsIDYxODQ0LCA2MTg0OCwgCisgICAgNjE4NTIsIDYxODU2LCA2MTg2MCwgNjE4NjQsIDYxODY4LCA2MTg3MiwgNjE4NzYsIDYxODgwLCA2MTg4NCwgNjE4ODgsIAorICAgIDYxODkzLCA2MTg5OCwgNjE5MDMsIDYxOTA4LCA2MTkxMywgNjE5MTgsIDYxOTIzLCA2MTkyOCwgNjE5MzMsIDYxOTM4LCAKKyAgICA2MTk0MywgNjE5NDgsIDYxOTUzLCA2MTk1OCwgNjE5NjQsIDYxOTcwLCA2MTk3NSwgNjE5ODAsIDYxOTgzLCA2MTk4NiwgCisgICAgNjE5ODksIDYxOTkyLCA2MTk5NSwgNjE5OTgsIDYyMDAxLCA2MjAwNCwgNjIwMDcsIDYyMDExLCA2MjAxNSwgNjIwMTksIAorICAgIDYyMDIzLCA2MjAyNywgNjIwMzEsIDYyMDM1LCA2MjAzOSwgNjIwNDMsIDYyMDQ3LCA2MjA1MSwgNjIwNTUsIDYyMDU5LCAKKyAgICA2MjA2MywgNjIwNjcsIDYyMDcxLCA2MjA3NSwgNjIwNzksIDYyMDgzLCA2MjA4NywgNjIwOTEsIDYyMDk1LCA2MjA5OSwgCisgICAgNjIxMDMsIDYyMTA3LCA2MjExMSwgNjIxMTUsIDYyMTE5LCA2MjEyMywgNjIxMjcsIDYyMTMxLCA2MjEzNSwgNjIxMzksIAorICAgIDYyMTQzLCA2MjE0NywgNjIxNTEsIDYyMTU1LCA2MjE1OSwgNjIxNjMsIDYyMTY3LCA2MjE3MiwgNjIxNzcsIDYyMTgyLCAKKyAgICA2MjE4NywgNjIxOTEsIDYyMTk2LCA2MjIwMSwgNjIyMDYsIDYyMjExLCA2MjIxNiwgNjIyMjEsIDYyMjI2LCA2MjIzMSwgCisgICAgNjIyMzYsIDYyMjQwLCA2MjI0NywgNjIyNTQsIDYyMjYxLCA2MjI2OCwgNjIyNzUsIDYyMjgyLCA2MjI4OSwgNjIyOTYsIAorICAgIDYyMzAzLCA2MjMxMCwgNjIzMTcsIDYyMzI0LCA2MjMyNywgNjIzMzAsIDYyMzMzLCA2MjMzOCwgNjIzNDEsIDYyMzQ0LCAKKyAgICA2MjM0NywgNjIzNTAsIDYyMzUzLCA2MjM1NiwgNjIzNjAsIDYyMzY0LCA2MjM2OCwgNjIzNzIsIDYyMzc1LCA2MjM3OSwgCisgICAgNjIzODMsIDYyMzg3LCA2MjM5MSwgNjIzOTUsIDYyMzk5LCA2MjQwMywgNjI0MDcsIDYyNDEwLCA2MjQxMywgNjI0MTcsIAorICAgIDYyNDIxLCA2MjQyNSwgNjI0MjksIDYyNDMyLCA2MjQzNiwgNjI0NDAsIDYyNDQ0LCA2MjQ0OCwgNjI0NTEsIDYyNDU1LCAKKyAgICA2MjQ1OSwgNjI0NjMsIDYyNDY3LCA2MjQ3MCwgNjI0NzQsIDYyNDc4LCA2MjQ4MSwgNjI0ODUsIDYyNDg5LCA2MjQ5MywgCisgICAgNjI0OTcsIDYyNTAxLCA2MjUwNSwgNjI1MDksIDAsIDYyNTEzLCA2MjUxNiwgNjI1MTksIDYyNTIyLCA2MjUyNSwgNjI1MjgsIAorICAgIDYyNTMxLCA2MjUzNCwgNjI1MzcsIDYyNTQwLCA2MjU0MywgNjI1NDYsIDYyNTQ5LCA2MjU1MiwgNjI1NTUsIDYyNTU4LCAKKyAgICA2MjU2MSwgNjI1NjQsIDYyNTY3LCA2MjU3MCwgNjI1NzMsIDYyNTc2LCA2MjU3OSwgNjI1ODIsIDYyNTg1LCA2MjU4OCwgCisgICAgNjI1OTEsIDYyNTk0LCA2MjU5NywgNjI2MDAsIDYyNjAzLCA2MjYwNiwgNjI2MDksIDYyNjEyLCA2MjYxNSwgNjI2MTgsIAorICAgIDYyNjIxLCA2MjYyNCwgNjI2MjcsIDYyNjMwLCA2MjYzMywgNjI2MzYsIDYyNjM5LCA2MjY0MiwgNjI2NDUsIDYyNjQ4LCAKKyAgICA2MjY1MSwgNjI2NTQsIDYyNjU3LCA2MjY2MCwgNjI2NjMsIDYyNjY2LCA2MjY2OSwgNjI2NzIsIDYyNjc1LCA2MjY3OCwgCisgICAgNjI2ODEsIDYyNjg0LCA2MjY4NywgNjI2OTAsIDYyNjkzLCA2MjY5NiwgNjI2OTksIDYyNzAyLCA2MjcwNSwgNjI3MDgsIAorICAgIDYyNzExLCA2MjcxNCwgNjI3MTcsIDYyNzIwLCA2MjcyMywgNjI3MjYsIDYyNzI5LCA2MjczMiwgNjI3MzUsIDYyNzM4LCAKKyAgICA2Mjc0MSwgNjI3NDQsIDYyNzQ3LCA2Mjc1MCwgNjI3NTMsIDYyNzU2LCA2Mjc1OSwgNjI3NjIsIDYyNzY1LCA2Mjc2OCwgCisgICAgNjI3NzEsIDYyNzc0LCA2Mjc3NywgNjI3ODYsIDYyNzk0LCA2MjgwMiwgNjI4MTAsIDYyODE4LCA2MjgyNiwgNjI4MzQsIAorICAgIDYyODQyLCA2Mjg1MCwgNjI4NTgsIDYyODY3LCA2Mjg3NiwgNjI4ODUsIDYyODk0LCA2MjkwMywgNjI5MTIsIDYyOTIxLCAKKyAgICA2MjkzMCwgNjI5MzksIDYyOTQ4LCA2Mjk1NywgNjI5NjYsIDYyOTc1LCA2Mjk4NCwgNjI5OTMsIDYyOTk2LCA2Mjk5OSwgCisgICAgNjMwMDIsIDYzMDA0LCA2MzAwNywgNjMwMTAsIDYzMDEzLCA2MzAxOCwgNjMwMjMsIDYzMDI2LCA2MzAzMywgNjMwNDAsIAorICAgIDYzMDQ3LCA2MzA1NCwgNjMwNTcsIDYzMDYyLCA2MzA2NCwgNjMwNjgsIDYzMDcwLCA2MzA3MiwgNjMwNzUsIDYzMDc4LCAKKyAgICA2MzA4MSwgNjMwODQsIDYzMDg3LCA2MzA5MCwgNjMwOTMsIDYzMDk4LCA2MzEwMywgNjMxMDYsIDYzMTA5LCA2MzExMiwgCisgICAgNjMxMTUsIDYzMTE4LCA2MzEyMSwgNjMxMjQsIDYzMTI4LCA2MzEzMSwgNjMxMzQsIDYzMTM3LCA2MzE0MCwgNjMxNDMsIAorICAgIDYzMTQ3LCA2MzE1MCwgNjMxNTMsIDYzMTU2LCA2MzE2MSwgNjMxNjYsIDYzMTcxLCA2MzE3NiwgNjMxODEsIDYzMTg2LCAKKyAgICA2MzE5MSwgNjMxOTYsIDYzMjAyLCA2MzIxMCwgNjMyMTIsIDYzMjE1LCA2MzIxOCwgNjMyMjEsIDYzMjI0LCA2MzIzMCwgCisgICAgNjMyMzgsIDYzMjQxLCA2MzI0NCwgNjMyNDksIDYzMjUyLCA2MzI1NSwgNjMyNTgsIDYzMjYzLCA2MzI2NiwgNjMyNjksIAorICAgIDYzMjc0LCA2MzI3NywgNjMyODAsIDYzMjg1LCA2MzI4OCwgNjMyOTEsIDYzMjk2LCA2MzMwMSwgNjMzMDYsIDYzMzA5LCAKKyAgICA2MzMxMiwgNjMzMTUsIDYzMzE4LCA2MzMyNCwgNjMzMjcsIDYzMzMwLCA2MzMzMywgNjMzMzUsIDYzMzM4LCA2MzM0MSwgCisgICAgNjMzNDQsIDYzMzQ5LCA2MzM1MiwgNjMzNTUsIDYzMzU4LCA2MzM2MSwgNjMzNjQsIDYzMzY5LCA2MzM3MiwgNjMzNzUsIAorICAgIDYzMzc4LCA2MzM4MSwgNjMzODQsIDYzMzg3LCA2MzM5MCwgNjMzOTMsIDYzMzk2LCA2MzQwMSwgNjM0MDUsIDYzNDEzLCAKKyAgICA2MzQyMSwgNjM0MjksIDYzNDM3LCA2MzQ0NSwgNjM0NTMsIDYzNDYxLCA2MzQ2OSwgNjM0NzcsIDYzNDg2LCA2MzQ5NSwgCisgICAgNjM1MDQsIDYzNTEzLCA2MzUyMiwgNjM1MzEsIDYzNTQwLCA2MzU0OSwgNjM1NTgsIDYzNTY3LCA2MzU3NiwgNjM1ODUsIAorICAgIDYzNTk0LCA2MzYwMywgNjM2MTIsIDYzNjIxLCA2MzYzMCwgNjM2MzksIDYzNjQ4LCA2MzY1NywgNjM2NjYsIDYzNjc1LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2MzY3OCwgNjM2ODcsIDYzNjk2LCA2MzcwNywgCisgICAgNjM3MTQsIDYzNzE5LCA2MzcyNCwgNjM3MzEsIDYzNzM4LCA2Mzc0NCwgNjM3NDksIDYzNzU0LCA2Mzc1OSwgNjM3NjQsIAorICAgIDYzNzcxLCA2Mzc3NiwgNjM3ODEsIDYzNzg2LCA2Mzc5NywgNjM4MDIsIDYzODA3LCA2MzgxNCwgNjM4MTksIDYzODI2LCAKKyAgICA2MzgzMSwgNjM4MzYsIDYzODQzLCA2Mzg1MCwgNjM4NTcsIDYzODY2LCA2Mzg3NSwgNjM4ODAsIDYzODg1LCA2Mzg5MCwgCisgICAgNjM4OTcsIDYzOTAyLCA2MzkxMiwgNjM5MTksIDYzOTI0LCA2MzkyOSwgNjM5MzQsIDYzOTM5LCA2Mzk0NCwgNjM5NDksIAorICAgIDYzOTU4LCA2Mzk2NSwgNjM5NzIsIDYzOTc3LCA2Mzk4NCwgNjM5ODksIDYzOTk2LCA2NDAwNSwgNjQwMTYsIDY0MDIxLCAKKyAgICA2NDAzMCwgNjQwMzUsIDY0MDQyLCA2NDA1MSwgNjQwNjAsIDY0MDY1LCA2NDA3MCwgNjQwNzcsIDY0MDgzLCA2NDA5MCwgCisgICAgNjQwOTcsIDY0MTAxLCA2NDEwNSwgNjQxMDgsIDY0MTEyLCA2NDExNiwgNjQxMjAsIDY0MTI0LCA2NDEyOCwgNjQxMzIsIAorICAgIDY0MTM2LCA2NDEzOSwgNjQxNDMsIDY0MTQ3LCA2NDE1MSwgNjQxNTUsIDY0MTU5LCA2NDE2MywgNjQxNjYsIDY0MTcwLCAKKyAgICA2NDE3NCwgNjQxNzcsIDY0MTgxLCA2NDE4NSwgNjQxODksIDY0MTkzLCA2NDE5NywgNjQyMDEsIDY0MjA1LCA2NDIwOSwgCisgICAgNjQyMTMsIDY0MjE3LCA2NDIyMSwgNjQyMjUsIDY0MjI5LCA2NDIzMywgNjQyMzcsIDY0MjQxLCA2NDI0NSwgNjQyNDksIAorICAgIDY0MjUzLCA2NDI1NywgNjQyNjEsIDY0MjY1LCA2NDI2OSwgNjQyNzMsIDY0Mjc3LCA2NDI4MSwgNjQyODUsIDY0Mjg5LCAKKyAgICA2NDI5MywgNjQyOTcsIDY0MzAxLCA2NDMwNSwgNjQzMDksIDY0MzEzLCA2NDMxNywgNjQzMjEsIDY0MzI1LCA2NDMyOSwgCisgICAgNjQzMzMsIDY0MzM3LCA2NDM0MSwgNjQzNDUsIDY0MzQ5LCA2NDM1MywgNjQzNTYsIDY0MzYwLCA2NDM2NCwgNjQzNjgsIAorICAgIDY0MzcyLCA2NDM3NiwgNjQzODAsIDY0Mzg0LCA2NDM4OCwgNjQzOTIsIDY0Mzk2LCA2NDQwMCwgNjQ0MDQsIDY0NDA4LCAKKyAgICA2NDQxMiwgNjQ0MTYsIDY0NDIwLCA2NDQyNCwgNjQ0MjgsIDY0NDMyLCA2NDQzNiwgNjQ0NDAsIDY0NDQ0LCA2NDQ0OCwgCisgICAgNjQ0NTIsIDY0NDU2LCA2NDQ2MCwgNjQ0NjQsIDY0NDY4LCA2NDQ3MiwgNjQ0NzYsIDY0NDgwLCA2NDQ4NCwgNjQ0ODgsIAorICAgIDY0NDkyLCA2NDQ5NiwgNjQ1MDAsIDY0NTA0LCA2NDUwOCwgNjQ1MTIsIDY0NTE2LCA2NDUyMCwgNjQ1MjQsIDY0NTI4LCAKKyAgICA2NDUzMiwgNjQ1MzYsIDY0NTQwLCA2NDU0NCwgNjQ1NDgsIDY0NTUyLCA2NDU1NiwgNjQ1NjAsIDY0NTY0LCA2NDU2OCwgCisgICAgNjQ1NzIsIDY0NTc2LCA2NDU4MCwgNjQ1ODQsIDY0NTg4LCA2NDU5MiwgNjQ1OTYsIDY0NjAwLCA2NDYwNCwgNjQ2MDgsIAorICAgIDY0NjEyLCA2NDYxNiwgNjQ2MjAsIDY0NjI0LCA2NDYyOCwgNjQ2MzIsIDY0NjM2LCA2NDY0MCwgNjQ2NDQsIDY0NjQ4LCAKKyAgICA2NDY1MiwgNjQ2NTYsIDY0NjYwLCA2NDY2NCwgNjQ2NjgsIDY0NjcyLCA2NDY3NiwgNjQ2ODAsIDY0Njg0LCA2NDY4OCwgCisgICAgNjQ2OTIsIDY0Njk2LCA2NDcwMCwgNjQ3MDQsIDY0NzA4LCA2NDcxMiwgNjQ3MTYsIDY0NzIwLCA2NDcyNCwgNjQ3MjgsIAorICAgIDY0NzMyLCA2NDczNiwgNjQ3NDAsIDY0NzQ0LCA2NDc0OCwgNjQ3NTIsIDY0NzU2LCA2NDc2MCwgNjQ3NjQsIDY0NzY4LCAKKyAgICA2NDc3MiwgNjQ3NzYsIDY0NzgwLCA2NDc4NCwgNjQ3ODgsIDY0NzkyLCA2NDc5NiwgNjQ4MDAsIDY0ODA0LCA2NDgwOCwgCisgICAgNjQ4MTIsIDY0ODE2LCA2NDgyMCwgNjQ4MjQsIDY0ODI3LCA2NDgzMSwgNjQ4MzUsIDY0ODM5LCA2NDg0MywgNjQ4NDcsIAorICAgIDY0ODUxLCA2NDg1NSwgNjQ4NTksIDY0ODYzLCA2NDg2NywgNjQ4NzEsIDY0ODc1LCA2NDg3OSwgNjQ4ODMsIDY0ODg3LCAKKyAgICA2NDg5MSwgNjQ4OTUsIDY0ODk5LCA2NDkwMywgNjQ5MDcsIDY0OTExLCA2NDkxNSwgNjQ5MTksIDY0OTIzLCA2NDkyNywgCisgICAgNjQ5MzEsIDY0OTM1LCA2NDkzOSwgNjQ5NDMsIDY0OTQ3LCA2NDk1MSwgNjQ5NTUsIDY0OTU5LCA2NDk2MywgNjQ5NjcsIAorICAgIDY0OTcxLCA2NDk3NSwgNjQ5NzksIDY0OTgzLCA2NDk4NywgNjQ5OTEsIDY0OTk1LCA2NDk5OSwgNjUwMDMsIDY1MDA3LCAKKyAgICA2NTAxMSwgNjUwMTUsIDY1MDE5LCA2NTAyMywgNjUwMjcsIDY1MDMxLCA2NTAzNSwgNjUwMzksIDY1MDQzLCA2NTA0NywgCisgICAgNjUwNTEsIDY1MDU1LCA2NTA1OSwgNjUwNjMsIDY1MDY3LCA2NTA3MSwgNjUwNzUsIDY1MDc5LCA2NTA4MywgNjUwODcsIAorICAgIDY1MDkxLCA2NTA5NSwgNjUwOTksIDY1MTAzLCA2NTEwNywgNjUxMTEsIDY1MTE1LCA2NTExOSwgNjUxMjMsIDY1MTI3LCAKKyAgICA2NTEzMSwgNjUxMzUsIDY1MTM5LCA2NTE0MywgNjUxNDcsIDY1MTUxLCA2NTE1NSwgNjUxNTksIDY1MTYzLCA2NTE2NywgCisgICAgNjUxNzEsIDY1MTc1LCA2NTE3OSwgNjUxODMsIDY1MTg3LCA2NTE5MSwgNjUxOTUsIDY1MTk5LCA2NTIwMywgNjUyMDcsIAorICAgIDY1MjExLCA2NTIxNSwgNjUyMTksIDY1MjIzLCA2NTIyNywgNjUyMzEsIDY1MjM1LCA2NTIzOSwgNjUyNDMsIDY1MjQ3LCAKKyAgICA2NTI1MSwgNjUyNTUsIDY1MjU5LCA2NTI2MywgNjUyNjcsIDY1MjcxLCA2NTI3NSwgNjUyNzksIDY1MjgzLCA2NTI4NywgCisgICAgNjUyOTAsIDY1Mjk0LCA2NTI5OCwgNjUzMDIsIDY1MzA2LCA2NTMxMCwgNjUzMTQsIDY1MzE4LCA2NTMyMiwgNjUzMjYsIAorICAgIDY1MzMwLCA2NTMzNCwgNjUzMzgsIDY1MzQyLCA2NTM0NiwgNjUzNTAsIDY1MzU0LCA2NTM1OCwgNjUzNjIsIDY1MzY2LCAKKyAgICA2NTM3MCwgNjUzNzQsIDY1Mzc4LCA2NTM4MiwgNjUzODYsIDY1MzkwLCA2NTM5NCwgNjUzOTgsIDY1NDAyLCA2NTQwNiwgCisgICAgNjU0MTAsIDY1NDE0LCA2NTQxOCwgNjU0MjIsIDY1NDI2LCA2NTQzMCwgNjU0MzQsIDY1NDM4LCA2NTQ0MiwgNjU0NDYsIAorICAgIDY1NDUwLCA2NTQ1NCwgNjU0NTgsIDY1NDYyLCA2NTQ2NiwgNjU0NzAsIDY1NDc0LCA2NTQ3OCwgNjU0ODIsIDY1NDg2LCAKKyAgICA2NTQ5MCwgNjU0OTQsIDY1NDk4LCA2NTUwMiwgNjU1MDYsIDY1NTEwLCA2NTUxNCwgNjU1MTgsIDY1NTIyLCA2NTUyNiwgCisgICAgNjU1MzAsIDY1NTM0LCA2NTUzOCwgNjU1NDIsIDY1NTQ2LCA2NTU1MCwgNjU1NTQsIDY1NTU4LCA2NTU2MiwgNjU1NjYsIAorICAgIDY1NTcwLCA2NTU3NCwgNjU1NzgsIDY1NTgyLCA2NTU4NiwgNjU1OTAsIDY1NTk0LCA2NTU5OCwgNjU2MDIsIDY1NjA2LCAKKyAgICA2NTYxMCwgNjU2MTQsIDY1NjE4LCA2NTYyMiwgNjU2MjYsIDY1NjMwLCA2NTYzNCwgNjU2MzgsIDY1NjQyLCA2NTY0NiwgCisgICAgNjU2NDksIDY1NjUzLCA2NTY1NywgNjU2NjEsIDY1NjY1LCA2NTY2OSwgNjU2NzMsIDY1Njc3LCA2NTY4MSwgNjU2ODUsIAorICAgIDY1Njg5LCA2NTY5MywgNjU2OTcsIDY1NzAxLCA2NTcwNSwgNjU3MDksIDY1NzEzLCA2NTcxNywgNjU3MjEsIDY1NzI1LCAKKyAgICA2NTcyOSwgNjU3MzMsIDY1NzM3LCA2NTc0MSwgNjU3NDUsIDY1NzQ5LCA2NTc1MywgNjU3NTcsIDY1NzYxLCA2NTc2NSwgCisgICAgNjU3NjksIDY1NzczLCA2NTc3NywgNjU3ODEsIDY1Nzg1LCA2NTc4OSwgNjU3OTMsIDY1Nzk3LCA2NTgwMSwgNjU4MDUsIAorICAgIDY1ODA5LCA2NTgxMywgNjU4MTcsIDY1ODIxLCA2NTgyNSwgNjU4MjksIDY1ODMzLCA2NTgzNywgNjU4NDEsIDY1ODQ1LCAKKyAgICA2NTg0OSwgNjU4NTMsIDY1ODU3LCA2NTg2MSwgNjU4NjUsIDY1ODY5LCA2NTg3MywgNjU4NzcsIDY1ODgxLCA2NTg4NSwgCisgICAgNjU4ODksIDY1ODkzLCA2NTg5NywgNjU5MDEsIDY1OTA1LCA2NTkwOSwgNjU5MTMsIDY1OTE3LCA2NTkyMSwgNjU5MjUsIAorICAgIDY1OTI5LCA2NTkzMywgNjU5MzcsIDY1OTQxLCA2NTk0NSwgNjU5NDksIDY1OTUzLCA2NTk1NywgNjU5NjEsIDY1OTY1LCAKKyAgICA2NTk2OSwgNjU5NzMsIDY1OTc3LCA2NTk4MSwgNjU5ODUsIDY1OTg5LCA2NTk5MywgNjU5OTcsIDY2MDAxLCA2NjAwNSwgCisgICAgNjYwMDksIDY2MDEzLCA2NjAxNywgNjYwMjEsIDY2MDI1LCA2NjAyOSwgNjYwMzMsIDY2MDM3LCA2NjA0MSwgNjYwNDUsIAorICAgIDY2MDQ5LCA2NjA1MywgNjYwNTcsIDY2MDYxLCA2NjA2NSwgNjYwNjksIDY2MDczLCA2NjA3NywgNjYwODEsIDY2MDg1LCAKKyAgICA2NjA4OSwgNjYwOTMsIDY2MDk3LCA2NjEwMSwgNjYxMDUsIDY2MTA5LCA2NjExMywgNjYxMTcsIDY2MTIxLCA2NjEyNSwgCisgICAgNjYxMjksIDY2MTMzLCA2NjEzNywgNjYxNDEsIDY2MTQ0LCA2NjE0OCwgNjYxNTIsIDY2MTU2LCA2NjE2MCwgNjYxNjQsIAorICAgIDY2MTY4LCA2NjE3MiwgNjYxNzYsIDY2MTgwLCA2NjE4NCwgNjYxODgsIDY2MTkyLCA2NjE5NiwgNjYyMDAsIDY2MjA0LCAKKyAgICA2NjIwOCwgNjYyMTIsIDY2MjE2LCA2NjIyMCwgNjYyMjQsIDY2MjI4LCA2NjIzMiwgNjYyMzYsIDY2MjQwLCA2NjI0NCwgCisgICAgNjYyNDgsIDY2MjUyLCA2NjI1NiwgNjYyNjAsIDY2MjY0LCA2NjI2OCwgNjYyNzIsIDY2Mjc2LCA2NjI4MCwgNjYyODQsIAorICAgIDY2Mjg4LCA2NjI5MiwgNjYyOTYsIDY2MzAwLCA2NjMwNCwgNjYzMDgsIDY2MzEyLCA2NjMxNiwgNjYzMjAsIDY2MzI0LCAKKyAgICA2NjMyOCwgNjYzMzIsIDY2MzM2LCA2NjM0MCwgNjYzNDQsIDY2MzQ4LCA2NjM1MiwgNjYzNTYsIDY2MzYwLCA2NjM2NCwgCisgICAgNjYzNjgsIDY2MzcyLCA2NjM3NiwgNjYzODAsIDY2Mzg0LCA2NjM4OCwgNjYzOTIsIDY2Mzk2LCA2NjQwMCwgNjY0MDQsIAorICAgIDY2NDA4LCA2NjQxMiwgNjY0MTYsIDY2NDIwLCA2NjQyNCwgNjY0MjgsIDY2NDMyLCA2NjQzNiwgNjY0NDAsIDY2NDQ0LCAKKyAgICA2NjQ0OCwgNjY0NTIsIDY2NDU2LCA2NjQ2MCwgNjY0NjQsIDY2NDY4LCA2NjQ3MiwgNjY0NzYsIDY2NDgwLCA2NjQ4NCwgCisgICAgNjY0ODgsIDY2NDkyLCA2NjQ5NiwgNjY1MDAsIDY2NTA0LCA2NjUwOCwgNjY1MTIsIDY2NTE2LCA2NjUyMCwgNjY1MjQsIAorICAgIDY2NTI4LCA2NjUzMiwgNjY1MzYsIDY2NTQwLCA2NjU0NCwgNjY1NDgsIDY2NTUyLCA2NjU1NiwgNjY1NjAsIDY2NTY0LCAKKyAgICA2NjU2OCwgNjY1NzIsIDY2NTc2LCA2NjU4MCwgNjY1ODQsIDY2NTg4LCA2NjU5MiwgNjY1OTYsIDY2NTk5LCA2NjYwMywgCisgICAgNjY2MDcsIDY2NjExLCA2NjYxNSwgNjY2MTksIDY2NjIzLCA2NjYyNywgNjY2MzEsIDY2NjM1LCA2NjYzOSwgNjY2NDMsIAorICAgIDY2NjQ3LCA2NjY1MSwgNjY2NTUsIDY2NjU5LCA2NjY2MywgNjY2NjcsIDY2NjcxLCA2NjY3NSwgNjY2NzksIDY2NjgzLCAKKyAgICA2NjY4NywgNjY2OTEsIDY2Njk1LCA2NjY5OSwgNjY3MDMsIDY2NzA3LCA2NjcxMSwgNjY3MTUsIDY2NzE5LCA2NjcyMywgCisgICAgNjY3MjcsIDY2NzMxLCA2NjczNSwgNjY3MzksIDY2NzQzLCA2Njc0NywgNjY3NTEsIDY2NzU1LCA2Njc1OSwgNjY3NjMsIAorICAgIDY2NzY3LCA2Njc3MSwgNjY3NzUsIDY2Nzc5LCA2Njc4MywgNjY3ODcsIDY2NzkxLCA2Njc5NSwgNjY3OTksIDY2ODAzLCAKKyAgICA2NjgwNywgNjY4MTEsIDY2ODE1LCA2NjgxOSwgNjY4MjMsIDY2ODI3LCA2NjgzMSwgNjY4MzUsIDY2ODM5LCA2Njg0MywgCisgICAgNjY4NDcsIDY2ODUxLCA2Njg1NSwgNjY4NTksIDY2ODYzLCA2Njg2NywgNjY4NzEsIDY2ODc1LCA2Njg3OSwgNjY4ODMsIAorICAgIDY2ODg3LCA2Njg5MSwgNjY4OTUsIDY2ODk5LCA2NjkwMywgNjY5MDcsIDY2OTExLCA2NjkxNSwgNjY5MTksIDY2OTIzLCAKKyAgICA2NjkyNywgNjY5MzEsIDY2OTM1LCA2NjkzOSwgNjY5NDMsIDY2OTQ3LCA2Njk1MSwgNjY5NTUsIDY2OTU5LCA2Njk2MywgCisgICAgNjY5NjcsIDY2OTcxLCA2Njk3NSwgNjY5NzksIDY2OTgzLCA2Njk4NywgNjY5OTEsIDY2OTk1LCA2Njk5OSwgNjcwMDMsIAorICAgIDY3MDA3LCA2NzAxMSwgNjcwMTUsIDY3MDE5LCA2NzAyMywgNjcwMjcsIDY3MDMxLCA2NzAzNSwgNjcwMzksIDY3MDQzLCAKKyAgICA2NzA0NywgNjcwNTEsIDY3MDU1LCA2NzA1OSwgNjcwNjMsIDY3MDY3LCA2NzA3MSwgNjcwNzUsIDY3MDc5LCA2NzA4MywgCisgICAgNjcwODcsIDY3MDkxLCA2NzA5NSwgNjcwOTksIDY3MTAzLCA2NzEwNywgNjcxMTEsIDY3MTE1LCA2NzExOSwgNjcxMjMsIAorICAgIDY3MTI3LCA2NzEzMSwgNjcxMzUsIDY3MTM5LCA2NzE0MywgNjcxNDcsIDY3MTUxLCA2NzE1NSwgNjcxNTksIDY3MTYzLCAKKyAgICA2NzE2NywgNjcxNzEsIDY3MTc1LCA2NzE3OSwgNjcxODMsIDY3MTg3LCA2NzE5MSwgNjcxOTUsIDY3MTk5LCA2NzIwMiwgCisgICAgNjcyMDYsIDY3MjEwLCA2NzIxNCwgNjcyMTgsIDY3MjIyLCA2NzIyNiwgNjcyMzAsIDY3MjMzLCA2NzIzNywgNjcyNDEsIAorICAgIDY3MjQ1LCA2NzI0OSwgNjcyNTMsIDY3MjU3LCA2NzI2MSwgNjcyNjUsIDY3MjY5LCA2NzI3MywgNjcyNzcsIDY3MjgxLCAKKyAgICA2NzI4NSwgNjcyODksIDY3MjkzLCA2NzI5NywgNjczMDEsIDY3MzA1LCA2NzMwOSwgNjczMTMsIDY3MzE3LCA2NzMyMSwgCisgICAgNjczMjUsIDY3MzI5LCA2NzMzMywgNjczMzcsIDY3MzQxLCA2NzM0NSwgNjczNDksIDY3MzUzLCA2NzM1NywgNjczNjEsIAorICAgIDY3MzY1LCA2NzM2OSwgNjczNzMsIDY3Mzc3LCA2NzM4MSwgNjczODUsIDY3Mzg5LCA2NzM5MywgNjczOTcsIDY3NDAxLCAKKyAgICA2NzQwNSwgNjc0MDksIDY3NDEzLCA2NzQxNywgNjc0MjEsIDY3NDI1LCA2NzQyOSwgNjc0MzMsIDY3NDM3LCA2NzQ0MSwgCisgICAgNjc0NDUsIDY3NDQ5LCA2NzQ1MywgNjc0NTcsIDY3NDYxLCA2NzQ2NSwgNjc0NjksIDY3NDczLCA2NzQ3NywgNjc0ODEsIAorICAgIDY3NDg1LCA2NzQ4OSwgNjc0OTMsIDY3NDk3LCA2NzUwMSwgNjc1MDUsIDY3NTA5LCA2NzUxMywgNjc1MTcsIDY3NTIxLCAKKyAgICA2NzUyNSwgNjc1MjksIDY3NTMzLCA2NzUzNywgNjc1NDEsIDY3NTQ1LCA2NzU0OSwgNjc1NTMsIDY3NTU3LCA2NzU2MSwgCisgICAgNjc1NjUsIDY3NTY5LCA2NzU3MywgNjc1NzcsIDY3NTgxLCA2NzU4NSwgNjc1ODksIDY3NTkzLCA2NzU5NywgNjc2MDEsIAorICAgIDY3NjA1LCA2NzYwOSwgNjc2MTMsIDY3NjE3LCA2NzYyMSwgNjc2MjUsIDY3NjI5LCA2NzYzMywgNjc2MzcsIDY3NjQxLCAKKyAgICA2NzY0NSwgNjc2NDksIDY3NjUzLCA2NzY1NywgNjc2NjEsIDY3NjY1LCA2NzY2OSwgNjc2NzMsIDY3Njc3LCA2NzY4MSwgCisgICAgNjc2ODUsIDY3Njg5LCA2NzY5MywgNjc2OTcsIDY3NzAxLCA2NzcwNSwgNjc3MDksIDY3NzEzLCA2NzcxNywgNjc3MjEsIAorICAgIDY3NzI1LCA2NzcyOSwgNjc3MzMsIDY3NzM3LCA2Nzc0MSwgNjc3NDUsIDY3NzQ5LCA2Nzc1MywgNjc3NTcsIDY3NzYxLCAKKyAgICA2Nzc2NSwgNjc3NjksIDY3NzczLCA2Nzc3NywgNjc3ODEsIDY3Nzg1LCA2Nzc4OSwgNjc3OTMsIDY3Nzk3LCA2NzgwMSwgCisgICAgNjc4MDUsIDY3ODA5LCA2NzgxMywgNjc4MTcsIDY3ODIxLCA2NzgyNSwgNjc4MjksIDY3ODMzLCA2NzgzNywgNjc4NDEsIAorICAgIDY3ODQ1LCA2Nzg0OSwgNjc4NTMsIDY3ODU3LCA2Nzg2MSwgNjc4NjUsIDY3ODY5LCA2Nzg3MywgNjc4NzcsIDY3ODgxLCAKKyAgICA2Nzg4NSwgNjc4ODksIDY3ODkzLCA2Nzg5NywgNjc5MDEsIDY3OTA1LCA2NzkwOSwgNjc5MTMsIDY3OTE3LCA2NzkyMSwgCisgICAgNjc5MjUsIDY3OTI5LCA2NzkzMywgNjc5MzcsIDY3OTQxLCA2Nzk0NSwgNjc5NDksIDY3OTUzLCA2Nzk1NywgNjc5NjAsIAorICAgIDY3OTY0LCA2Nzk2OCwgNjc5NzIsIDY3OTc2LCA2Nzk4MCwgNjc5ODQsIDY3OTg4LCA2Nzk5MiwgNjc5OTYsIDY4MDAwLCAKKyAgICA2ODAwNCwgNjgwMDgsIDY4MDEyLCA2ODAxNiwgNjgwMjAsIDY4MDI0LCA2ODAyOCwgNjgwMzIsIDY4MDM2LCA2ODA0MCwgCisgICAgNjgwNDQsIDY4MDQ4LCA2ODA1MiwgNjgwNTYsIDY4MDYwLCA2ODA2NCwgNjgwNjgsIDY4MDcyLCA2ODA3NiwgNjgwODAsIAorICAgIDY4MDg0LCA2ODA4OCwgNjgwOTIsIDY4MDk2LCA2ODEwMCwgNjgxMDQsIDY4MTA4LCA2ODExMiwgNjgxMTYsIDY4MTIwLCAKKyAgICA2ODEyNCwgNjgxMjgsIDY4MTMyLCA2ODEzNiwgNjgxNDAsIDY4MTQ0LCA2ODE0OCwgNjgxNTIsIDY4MTU2LCA2ODE2MCwgCisgICAgNjgxNjQsIDY4MTY4LCA2ODE3MiwgNjgxNzYsIDY4MTgwLCA2ODE4NCwgNjgxODgsIDY4MTkyLCA2ODE5NiwgNjgyMDAsIAorICAgIDY4MjA0LCA2ODIwOCwgNjgyMTIsIDY4MjE2LCA2ODIyMCwgNjgyMjQsIDY4MjI4LCA2ODIzMiwgNjgyMzYsIDY4MjQwLCAKKyAgICA2ODI0NCwgNjgyNDgsIDY4MjUyLCA2ODI1NiwgNjgyNjAsIDY4MjY0LCA2ODI2OCwgNjgyNzIsIDY4Mjc2LCA2ODI4MCwgCisgICAgNjgyODQsIDY4Mjg4LCA2ODI5MiwgNjgyOTYsIDY4MzAwLCA2ODMwNCwgNjgzMDgsIDY4MzEyLCA2ODMxNiwgNjgzMjAsIAorICAgIDY4MzI0LCA2ODMyOCwgNjgzMzIsIDY4MzM2LCA2ODM0MCwgNjgzNDQsIDY4MzQ4LCA2ODM1MiwgNjgzNTYsIDY4MzYwLCAKKyAgICA2ODM2NCwgNjgzNjgsIDY4MzcyLCA2ODM3NiwgNjgzODAsIDY4Mzg0LCA2ODM4OCwgNjgzOTIsIDY4Mzk2LCA2ODQwMCwgCisgICAgNjg0MDQsIDY4NDA4LCA2ODQxMiwgNjg0MTYsIDY4NDIwLCA2ODQyNCwgNjg0MjgsIDY4NDMyLCA2ODQzNiwgNjg0NDAsIAorICAgIDY4NDQ0LCA2ODQ0OCwgNjg0NTIsIDY4NDU2LCA2ODQ2MCwgNjg0NjQsIDY4NDY4LCA2ODQ3MiwgNjg0NzYsIDY4NDgwLCAKKyAgICA2ODQ4NCwgNjg0ODgsIDY4NDkyLCA2ODQ5NiwgNjg1MDAsIDY4NTA0LCA2ODUwOCwgNjg1MTIsIDY4NTE2LCA2ODUyMCwgCisgICAgNjg1MjQsIDY4NTI4LCA2ODUzMiwgNjg1MzYsIDY4NTQwLCA2ODU0NCwgNjg1NDgsIDY4NTUyLCA2ODU1NiwgNjg1NjAsIAorICAgIDY4NTY0LCA2ODU2OCwgNjg1NzIsIDY4NTc2LCA2ODU4MCwgNjg1ODQsIDY4NTg4LCA2ODU5MiwgNjg1OTYsIDY4NjAwLCAKKyAgICA2ODYwNCwgNjg2MDgsIDY4NjEyLCA2ODYxNiwgNjg2MjAsIDY4NjI0LCA2ODYyOCwgNjg2MzIsIDY4NjM2LCA2ODY0MCwgCisgICAgNjg2NDQsIDY4NjQ4LCA2ODY1MiwgNjg2NTYsIDY4NjYwLCA2ODY2NCwgNjg2NjgsIDY4NjcyLCA2ODY3NiwgNjg2ODAsIAorICAgIDY4Njg0LCA2ODY4OCwgNjg2OTIsIDY4Njk2LCA2ODcwMCwgNjg3MDQsIDY4NzA4LCA2ODcxMiwgNjg3MTYsIDY4NzIwLCAKKyAgICA2ODcyNCwgNjg3MjgsIDY4NzMyLCA2ODczNiwgNjg3NDAsIDAsIDAsIDAsIDY4NzQ0LCA2ODc0OCwgNjg3NTIsIDY4NzU2LCAKKyAgICA2ODc2MCwgNjg3NjQsIDY4NzY4LCA2ODc3MiwgNjg3NzYsIDY4NzgwLCA2ODc4NCwgNjg3ODgsIDY4NzkyLCA2ODc5NiwgCisgICAgNjg4MDAsIDY4ODA0LCA2ODgwOCwgNjg4MTIsIDY4ODE2LCA2ODgyMCwgNjg4MjQsIDY4ODI4LCA2ODgzMiwgNjg4MzYsIAorICAgIDY4ODQwLCA2ODg0NCwgNjg4NDgsIDY4ODUyLCA2ODg1NiwgNjg4NjAsIDY4ODY0LCA2ODg2OCwgNjg4NzIsIDY4ODc2LCAKKyAgICA2ODg4MCwgNjg4ODQsIDY4ODg4LCA2ODg5MiwgNjg4OTYsIDY4OTAwLCA2ODkwNCwgNjg5MDgsIDY4OTEyLCA2ODkxNiwgCisgICAgNjg5MjAsIDY4OTI0LCA2ODkyOCwgNjg5MzIsIDY4OTM2LCA2ODk0MCwgNjg5NDQsIDY4OTQ4LCA2ODk1MiwgNjg5NTYsIAorICAgIDY4OTYwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2ODk2NCwgNjg5NjksIDY4OTczLCA2ODk3OCwgNjg5ODMsIAorICAgIDY4OTg4LCA2ODk5MywgNjg5OTgsIDY5MDAyLCA2OTAwNywgNjkwMTIsIDY5MDE3LCA2OTAyMiwgNjkwMjcsIDY5MDMyLCAKKyAgICA2OTAzNywgNjkwNDEsIDY5MDQ1LCA2OTA1MCwgNjkwNTQsIDY5MDU5LCA2OTA2NCwgNjkwNjksIDY5MDczLCA2OTA3OCwgCisgICAgNjkwODMsIDY5MDg4LCA2OTA5MywgNjkwOTgsIDY5MTAyLCA2OTEwNywgNjkxMTEsIDY5MTE2LCA2OTEyMCwgNjkxMjUsIAorICAgIDY5MTI5LCA2OTEzMywgNjkxMzcsIDY5MTQyLCA2OTE0NywgNjkxNTIsIDY5MTYwLCA2OTE2OCwgNjkxNzYsIDY5MTg0LCAKKyAgICA2OTE5MSwgNjkxOTksIDY5MjA1LCA2OTIxMywgNjkyMTcsIDY5MjIxLCA2OTIyNSwgNjkyMjksIDY5MjMzLCA2OTIzNywgCisgICAgNjkyNDEsIDY5MjQ1LCA2OTI0OSwgNjkyNTMsIDY5MjU3LCA2OTI2MSwgNjkyNjUsIDY5MjY5LCA2OTI3MywgNjkyNzcsIAorICAgIDY5MjgxLCA2OTI4NSwgNjkyODksIDY5MjkzLCA2OTI5NywgNjkzMDEsIDY5MzA1LCA2OTMwOSwgNjkzMTMsIDY5MzE3LCAKKyAgICA2OTMyMSwgNjkzMjUsIDY5MzI5LCA2OTMzMywgNjkzMzcsIDY5MzQxLCA2OTM0NSwgNjkzNDksIDY5MzUzLCA2OTM1NywgCisgICAgNjkzNjAsIDY5MzY0LCA2OTM2OCwgNjkzNzIsIDY5Mzc2LCA2OTM4MCwgNjkzODQsIDY5Mzg4LCA2OTM5MiwgNjkzOTYsIAorICAgIDY5NDAwLCA2OTQwNCwgNjk0MDgsIDY5NDEyLCA2OTQxNiwgNjk0MjAsIDY5NDI0LCA2OTQyOCwgNjk0MzIsIDY5NDM2LCAKKyAgICA2OTQ0MCwgNjk0NDQsIDY5NDQ4LCA2OTQ1MiwgNjk0NTYsIDY5NDYwLCA2OTQ2NCwgNjk0NjgsIDY5NDcyLCA2OTQ3NiwgCisgICAgNjk0ODAsIDY5NDg0LCA2OTQ4OCwgNjk0OTIsIDY5NDk2LCA2OTUwMCwgNjk1MDQsIDY5NTA3LCA2OTUxMSwgNjk1MTUsIAorICAgIDY5NTE4LCA2OTUyMiwgNjk1MjYsIDY5NTMwLCA2OTUzMywgNjk1MzcsIDY5NTQxLCA2OTU0NSwgNjk1NDksIDY5NTUzLCAKKyAgICA2OTU1NywgNjk1NjEsIDY5NTY1LCA2OTU2OSwgNjk1NzMsIDY5NTc3LCA2OTU4MSwgNjk1ODUsIDY5NTg5LCA2OTU5MiwgCisgICAgNjk1OTYsIDY5NjAwLCA2OTYwMywgNjk2MDcsIDY5NjExLCA2OTYxNSwgNjk2MTksIDY5NjIzLCA2OTYyNywgNjk2MzAsIAorICAgIDY5NjMzLCA2OTYzNywgNjk2NDEsIDY5NjQ1LCA2OTY0OCwgNjk2NTEsIDY5NjU1LCA2OTY1OSwgNjk2NjMsIDY5NjY3LCAKKyAgICA2OTY3MSwgNjk2NzUsIDY5Njc5LCA2OTY4MywgNjk2ODcsIDY5NjkxLCA2OTY5NSwgNjk2OTksIDY5NzAzLCA2OTcwNywgCisgICAgNjk3MTEsIDY5NzE1LCA2OTcxOSwgNjk3MjMsIDY5NzI3LCA2OTczMSwgNjk3MzUsIDY5NzM5LCA2OTc0MywgNjk3NDcsIAorICAgIDY5NzUxLCA2OTc1NSwgNjk3NTksIDY5NzYzLCA2OTc2NywgNjk3NzEsIDY5Nzc1LCA2OTc3OSwgNjk3ODMsIDY5Nzg3LCAKKyAgICA2OTc5MSwgNjk3OTUsIDY5Nzk5LCA2OTgwMiwgNjk4MDYsIDY5ODEwLCA2OTgxNCwgNjk4MTgsIDY5ODIyLCA2OTgyNiwgCisgICAgNjk4MzAsIDY5ODM0LCA2OTgzOCwgNjk4NDIsIDY5ODQ2LCA2OTg1MCwgNjk4NTQsIDY5ODU4LCA2OTg2MiwgNjk4NjYsIAorICAgIDY5ODcwLCA2OTg3NCwgNjk4NzgsIDY5ODgyLCA2OTg4NiwgNjk4OTAsIDY5ODk0LCA2OTg5OCwgNjk5MDIsIDY5OTA2LCAKKyAgICA2OTkxMCwgNjk5MTQsIDY5OTE4LCA2OTkyMiwgNjk5MjYsIDY5OTMwLCA2OTkzNCwgNjk5MzgsIDY5OTQyLCA2OTk0NiwgCisgICAgNjk5NDksIDY5OTUzLCA2OTk1NywgNjk5NjEsIDY5OTY1LCA2OTk2OSwgNjk5NzMsIDY5OTc3LCA2OTk4MSwgNjk5ODUsIAorICAgIDY5OTg5LCA2OTk5MywgNjk5OTcsIDcwMDAxLCA3MDAwNSwgNzAwMDksIDcwMDEzLCA3MDAxNiwgNzAwMjAsIDcwMDI0LCAKKyAgICA3MDAyOCwgNzAwMzIsIDcwMDM2LCA3MDA0MCwgNzAwNDQsIDcwMDQ4LCA3MDA1MiwgNzAwNTYsIDcwMDYwLCA3MDA2NCwgCisgICAgNzAwNjgsIDcwMDcyLCA3MDA3NiwgNzAwODAsIDcwMDg0LCA3MDA4OCwgNzAwOTIsIDcwMDk2LCA3MDEwMCwgNzAxMDMsIAorICAgIDcwMTA3LCA3MDExMSwgNzAxMTUsIDcwMTE5LCA3MDEyMywgNzAxMjcsIDcwMTMxLCA3MDEzNSwgNzAxMzksIDcwMTQzLCAKKyAgICA3MDE0NywgNzAxNTEsIDcwMTU1LCA3MDE1OSwgNzAxNjMsIDcwMTY3LCA3MDE3MSwgNzAxNzUsIDcwMTc5LCA3MDE4MywgCisgICAgNzAxODcsIDcwMTkxLCA3MDE5NSwgNzAxOTksIDcwMjAzLCA3MDIwNywgNzAyMTEsIDcwMjE1LCA3MDIxOSwgNzAyMjMsIAorICAgIDcwMjI3LCA3MDIzMSwgNzAyMzUsIDcwMjM5LCA3MDI0MywgNzAyNDcsIDcwMjUxLCA3MDI1NSwgNzAyNTksIDcwMjYzLCAKKyAgICA3MDI2NywgNzAyNzEsIDcwMjc1LCA3MDI3OCwgNzAyODMsIDcwMjg3LCA3MDI5MywgNzAyOTgsIDcwMzA0LCA3MDMwOCwgCisgICAgNzAzMTIsIDcwMzE2LCA3MDMyMCwgNzAzMjQsIDcwMzI4LCA3MDMzMiwgNzAzMzYsIDcwMzQwLCA3MDM0NCwgNzAzNDgsIAorICAgIDcwMzUyLCA3MDM1NiwgNzAzNjAsIDcwMzYzLCA3MDM2NiwgNzAzNjksIDcwMzcyLCA3MDM3NSwgNzAzNzgsIDcwMzgxLCAKKyAgICA3MDM4NCwgNzAzODcsIDcwMzkyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA3MDM5OCwgNzA0MDMsIDcwNDA4LCA3MDQxMywgNzA0MTgsIDcwNDI1LCA3MDQzMiwgNzA0MzcsIDcwNDQyLCAKKyAgICA3MDQ0NywgNzA0NTIsIDcwNDU5LCA3MDQ2NiwgNzA0NzMsIDcwNDgwLCA3MDQ4NywgNzA0OTQsIDcwNTA0LCA3MDUxNCwgCisgICAgNzA1MjEsIDcwNTI4LCA3MDUzNSwgNzA1NDIsIDcwNTQ4LCA3MDU1NCwgNzA1NjMsIDcwNTcyLCA3MDU3OSwgNzA1ODYsIAorICAgIDcwNTk3LCA3MDYwOCwgNzA2MTMsIDcwNjE4LCA3MDYyNSwgNzA2MzIsIDcwNjM5LCA3MDY0NiwgNzA2NTMsIDcwNjYwLCAKKyAgICA3MDY2NywgNzA2NzQsIDcwNjgwLCA3MDY4NiwgNzA2OTIsIDcwNjk4LCA3MDcwNSwgNzA3MTIsIDcwNzE3LCA3MDcyMSwgCisgICAgNzA3MjgsIDcwNzM1LCA3MDc0MiwgNzA3NDYsIDcwNzUzLCA3MDc1NywgNzA3NjIsIDcwNzY2LCA3MDc3MiwgNzA3NzcsIAorICAgIDcwNzgzLCA3MDc4OCwgNzA3OTIsIDcwNzk2LCA3MDc5OSwgNzA4MDIsIDcwODA3LCA3MDgxMiwgNzA4MTcsIDcwODIyLCAKKyAgICA3MDgyNywgNzA4MzIsIDcwODM3LCA3MDg0MiwgNzA4NDcsIDcwODUyLCA3MDg2MSwgNzA4NzAsIDcwODc1LCA3MDg4MCwgCisgICAgNzA4ODUsIDcwODkwLCA3MDg5NSwgNzA5MDAsIDcwOTA1LCA3MDkxMCwgNzA5MTUsIDcwOTIwLCA3MDkyNSwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgNzA5MzAsIDcwOTM2LCA3MDkzOSwgNzA5NDIsIDcwOTQ1LCA3MDk0OSwgNzA5NTMsIDcwOTU3LCAKKyAgICA3MDk2MSwgNzA5NjQsIDcwOTY4LCA3MDk3MSwgNzA5NzUsIDcwOTc4LCA3MDk4MiwgNzA5ODYsIDcwOTkwLCA3MDk5NCwgCisgICAgNzA5OTgsIDcxMDAyLCA3MTAwNiwgNzEwMDksIDcxMDEzLCA3MTAxNywgNzEwMjEsIDcxMDI1LCA3MTAyOSwgNzEwMzMsIAorICAgIDcxMDM3LCA3MTA0MSwgNzEwNDUsIDcxMDQ5LCA3MTA1MywgNzEwNTcsIDcxMDYxLCA3MTA2NSwgNzEwNjgsIDcxMDcyLCAKKyAgICA3MTA3NiwgNzEwODAsIDcxMDg0LCA3MTA4OCwgNzEwOTIsIDcxMDk2LCA3MTEwMCwgNzExMDQsIDcxMTA4LCA3MTExMiwgCisgICAgNzExMTYsIDcxMTIwLCA3MTEyNCwgNzExMjgsIDcxMTMyLCA3MTEzNiwgNzExNDAsIDcxMTQ0LCA3MTE0OCwgNzExNTIsIAorICAgIDcxMTU2LCA3MTE2MCwgNzExNjQsIDcxMTY3LCA3MTE3MSwgNzExNzUsIDcxMTc5LCA3MTE4MywgNzExODcsIDcxMTkxLCAKKyAgICA3MTE5NSwgNzExOTgsIDcxMjAyLCA3MTIwNiwgNzEyMTAsIDcxMjE0LCA3MTIxOCwgNzEyMjIsIDcxMjI2LCA3MTIzMCwgCisgICAgNzEyMzQsIDcxMjM4LCA3MTI0MiwgNzEyNDYsIDcxMjUxLCA3MTI1NiwgNzEyNTksIDcxMjY0LCA3MTI2NywgNzEyNzAsIAorICAgIDcxMjczLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3MTI3NywgNzEyODYsIDcxMjk1LCA3MTMwNCwgNzEzMTMsIDcxMzIyLCAKKyAgICA3MTMzMSwgNzEzNDAsIDcxMzQ5LCA3MTM1NywgNzEzNjQsIDcxMzcyLCA3MTM3OSwgNzEzODcsIDcxMzk3LCA3MTQwNiwgCisgICAgNzE0MTYsIDcxNDI1LCA3MTQzNSwgNzE0NDMsIDcxNDUwLCA3MTQ1OCwgNzE0NjUsIDcxNDczLCA3MTQ3OCwgNzE0ODMsIAorICAgIDcxNDg4LCA3MTQ5NywgNzE1MDMsIDcxNTA5LCA3MTUxNiwgNzE1MjUsIDcxNTMzLCA3MTU0MSwgNzE1NDksIDcxNTU2LCAKKyAgICA3MTU2MywgNzE1NzAsIDcxNTc3LCA3MTU4MiwgNzE1ODcsIDcxNTkyLCA3MTU5NywgNzE2MDIsIDcxNjA3LCA3MTYxMiwgCisgICAgNzE2MTcsIDcxNjI1LCA3MTYzMywgNzE2MzksIDcxNjQ1LCA3MTY1MCwgNzE2NTUsIDcxNjYwLCA3MTY2NSwgNzE2NzAsIAorICAgIDcxNjc1LCA3MTY4MCwgNzE2ODUsIDcxNjkzLCA3MTcwMSwgNzE3MDYsIDcxNzExLCA3MTcyMSwgNzE3MzEsIDcxNzM4LCAKKyAgICA3MTc0NSwgNzE3NTQsIDcxNzYzLCA3MTc3NSwgNzE3ODcsIDcxNzkzLCA3MTc5OSwgNzE4MDcsIDcxODE1LCA3MTgyNSwgCisgICAgNzE4MzUsIDcxODQyLCA3MTg0OSwgNzE4NTQsIDcxODU5LCA3MTg3MSwgNzE4ODMsIDcxODkxLCA3MTg5OSwgNzE5MDksIAorICAgIDcxOTE5LCA3MTkzMSwgNzE5NDMsIDcxOTUyLCA3MTk2MSwgNzE5NjgsIDcxOTc1LCA3MTk4MiwgNzE5ODksIDcxOTk4LCAKKyAgICA3MjAwNywgNzIwMTIsIDcyMDE3LCA3MjAyNCwgNzIwMzEsIDcyMDM4LCA3MjA0NSwgNzIwNTcsIDcyMDY5LCA3MjA3NCwgCisgICAgNzIwNzksIDcyMDg0LCA3MjA4OSwgNzIwOTQsIDcyMDk5LCA3MjEwNCwgNzIxMDksIDcyMTEzLCA3MjExOCwgNzIxMjMsIAorICAgIDcyMTI4LCA3MjEzMywgNzIxMzgsIDcyMTQ0LCA3MjE0OSwgNzIxNTQsIDcyMTYxLCA3MjE2OCwgNzIxNzUsIDcyMTgyLCAKKyAgICA3MjE4OSwgNzIxOTgsIDcyMjA3LCA3MjIxMywgNzIyMTksIDcyMjI1LCA3MjIzMSwgNzIyMzgsIDcyMjQ1LCA3MjI1MiwgCisgICAgNzIyNTksIDcyMjY2LCA3MjI3MCwgNzIyNzcsIDcyMjgyLCA3MjI4NywgNzIyOTQsIDAsIDcyMzA3LCA3MjMxNSwgNzIzMjMsIAorICAgIDcyMzMwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3MjMzNywgNzIzNDYsIDcyMzU1LCA3MjM2NCwgCisgICAgNzIzNzMsIDcyMzgyLCA3MjM5MSwgNzI0MDAsIDcyNDA5LCA3MjQxOCwgNzI0MjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcyNDM0LCAKKyAgICA3MjQ0MSwgNzI0NDcsIDcyNDU0LCA3MjQ2MiwgNzI0NzAsIDcyNDc3LCA3MjQ4NSwgNzI0OTIsIDcyNDk4LCA3MjUwNCwgCisgICAgNzI1MTEsIDcyNTE3LCA3MjUyMywgNzI1MjksIDcyNTM2LCA3MjU0MywgNzI1NTAsIDcyNTU3LCA3MjU2NCwgNzI1NzEsIAorICAgIDcyNTc4LCA3MjU4NSwgNzI1OTIsIDcyNTk5LCA3MjYwNiwgNzI2MTMsIDcyNjIwLCA3MjYyNywgNzI2MzMsIDcyNjQwLCAKKyAgICA3MjY0NywgNzI2NTQsIDcyNjYxLCA3MjY2OCwgNzI2NzUsIDcyNjgyLCA3MjY4OSwgNzI2OTYsIDcyNzAzLCA3MjcxMCwgCisgICAgNzI3MTcsIDcyNzI0LCA3MjczMSwgNzI3MzgsIDcyNzQ1LCA3Mjc1MiwgNzI3NTksIDcyNzY3LCA3Mjc3NSwgNzI3ODMsIAorICAgIDcyNzkxLCAwLCAwLCAwLCAwLCA3Mjc5OSwgNzI4MDgsIDcyODE3LCA3MjgyNiwgNzI4MzUsIDcyODQ0LCA3Mjg1MywgCisgICAgNzI4NjAsIDcyODY3LCA3Mjg3NCwgMCwgMCwgMCwgMCwgMCwgMCwgNzI4ODEsIDcyODg1LCA3Mjg5MCwgNzI4OTUsIDcyOTAwLCAKKyAgICA3MjkwNSwgNzI5MTAsIDcyOTE1LCA3MjkyMCwgNzI5MjUsIDcyOTMwLCA3MjkzNSwgNzI5MzksIDcyOTQzLCA3Mjk0OCwgCisgICAgNzI5NTMsIDcyOTU3LCA3Mjk2MiwgNzI5NjcsIDcyOTcyLCA3Mjk3NywgNzI5ODIsIDcyOTg3LCA3Mjk5MiwgNzI5OTYsIAorICAgIDczMDAwLCA3MzAwNSwgNzMwMTAsIDczMDE0LCA3MzAxOCwgNzMwMjIsIDczMDI2LCA3MzAzMCwgNzMwMzQsIDczMDM4LCAKKyAgICA3MzA0MywgNzMwNDgsIDczMDUzLCA3MzA1OCwgNzMwNjMsIDczMDcwLCA3MzA3NiwgNzMwODEsIDczMDg2LCA3MzA5MSwgCisgICAgNzMwOTYsIDczMTAyLCA3MzEwOSwgNzMxMTUsIDczMTIyLCA3MzEyOCwgNzMxMzQsIDczMTM5LCA3MzE0NiwgNzMxNTIsIAorICAgIDczMTU3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3MzE2MywgNzMxNjcsIDczMTcxLCA3MzE3NCwgNzMxNzgsIDczMTgxLCAKKyAgICA3MzE4NSwgNzMxODgsIDczMTkyLCA3MzE5NiwgNzMyMDEsIDczMjA1LCA3MzIxMCwgNzMyMTMsIDczMjE3LCA3MzIyMSwgCisgICAgNzMyMjQsIDczMjI4LCA3MzIzMiwgNzMyMzUsIDczMjM5LCA3MzI0MywgNzMyNDcsIDczMjUxLCA3MzI1NSwgNzMyNTksIAorICAgIDczMjYzLCA3MzI2NywgNzMyNzEsIDczMjc1LCA3MzI3OSwgNzMyODMsIDczMjg3LCA3MzI5MSwgNzMyOTUsIDczMjk5LCAKKyAgICA3MzMwMywgNzMzMDcsIDczMzEwLCA3MzMxMywgNzMzMTcsIDczMzIxLCA3MzMyNSwgNzMzMjgsIDczMzMxLCA3MzMzNCwgCisgICAgNzMzMzgsIDczMzQyLCA3MzM0NiwgNzMzNTAsIDczMzUzLCA3MzM1NiwgNzMzNjAsIDczMzY1LCA3MzM3MCwgNzMzNzQsIAorICAgIDczMzc5LCA3MzM4MywgNzMzODgsIDczMzkzLCA3MzM5OSwgNzM0MDQsIDczNDEwLCA3MzQxNCwgNzM0MTksIDczNDI0LCAKKyAgICA3MzQyOCwgNzM0MzMsIDczNDM4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3MzQ0MiwgNzM0NDUsIDczNDQ5LCAKKyAgICA3MzQ1MywgNzM0NTYsIDczNDU5LCA3MzQ2MiwgNzM0NjUsIDczNDY4LCA3MzQ3MSwgNzM0NzQsIDczNDc3LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCA3MzQ4MCwgNzM0ODUsIDczNDg5LCA3MzQ5MywgNzM0OTcsIDczNTAxLCA3MzUwNSwgNzM1MDksIDczNTEzLCAKKyAgICA3MzUxNywgNzM1MjEsIDczNTI1LCA3MzUyOSwgNzM1MzMsIDczNTM3LCA3MzU0MSwgNzM1NDUsIDczNTUwLCA3MzU1NSwgCisgICAgNzM1NjEsIDczNTY3LCA3MzU3NCwgNzM1NzksIDczNTg0LCA3MzU5MCwgNzM1OTQsIDczNTk5LCA3MzYwMiwgMCwgMCwgMCwgCisgICAgMCwgNzM2MDUsIDczNjEyLCA3MzYxOCwgNzM2MjQsIDczNjMwLCA3MzYzNiwgNzM2NDIsIDczNjQ4LCA3MzY1NCwgNzM2NjAsIAorICAgIDczNjY2LCA3MzY3MiwgNzM2NzksIDczNjg2LCA3MzY5MywgNzM2OTksIDczNzA2LCA3MzcxMywgNzM3MjAsIDczNzI3LCAKKyAgICA3MzczNCwgNzM3NDAsIDczNzQ2LCA3Mzc1MywgNzM3NTksIDczNzY2LCA3Mzc3MywgNzM3NzksIDczNzg1LCA3Mzc5MiwgCisgICAgNzM3OTksIDczODA2LCA3MzgxMiwgNzM4MTksIDczODI2LCA3MzgzMiwgNzM4MzksIDczODQ1LCA3Mzg1MiwgNzM4NTksIAorICAgIDczODY1LCA3Mzg3MSwgNzM4NzgsIDczODg0LCA3Mzg5MSwgNzM4OTgsIDczOTA3LCA3MzkxNCwgNzM5MjEsIDczOTI1LCAKKyAgICA3MzkzMCwgNzM5MzUsIDczOTQwLCA3Mzk0NSwgNzM5NDksIDczOTUzLCA3Mzk1OCwgNzM5NjIsIDczOTY3LCA3Mzk3MiwgCisgICAgNzM5NzcsIDczOTgxLCA3Mzk4NSwgNzM5OTAsIDczOTk0LCA3Mzk5OSwgNzQwMDMsIDc0MDA4LCA3NDAxMywgNzQwMTgsIAorICAgIDc0MDIzLCA3NDAyNywgNzQwMzIsIDc0MDM3LCA3NDA0MiwgNzQwNDgsIDc0MDUzLCA3NDA1OSwgNzQwNjUsIDc0MDcxLCAKKyAgICA3NDA3NywgNzQwODMsIDc0MDg4LCA3NDA5NCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzQwOTgsIAorICAgIDc0MTAzLCA3NDEwNywgNzQxMTEsIDc0MTE1LCA3NDExOSwgNzQxMjMsIDc0MTI3LCA3NDEzMSwgNzQxMzUsIDc0MTM5LCAKKyAgICA3NDE0MywgNzQxNDcsIDc0MTUxLCA3NDE1NSwgNzQxNTksIDc0MTYzLCA3NDE2NywgNzQxNzEsIDc0MTc1LCA3NDE3OSwgCisgICAgNzQxODMsIDc0MTg3LCA3NDE5MSwgNzQxOTUsIDc0MTk5LCA3NDIwMywgNzQyMDcsIDc0MjExLCA3NDIxNSwgMCwgMCwgMCwgCisgICAgNzQyMTksIDc0MjIzLCA3NDIyNywgNzQyMzEsIDc0MjM1LCA3NDIzOCwgNzQyNDQsIDc0MjQ3LCA3NDI1MSwgNzQyNTQsIAorICAgIDc0MjYwLCA3NDI2NiwgNzQyNzQsIDc0Mjc3LCA3NDI4MSwgNzQyODQsIDc0Mjg3LCA3NDI5MywgNzQyOTksIDc0MzAzLCAKKyAgICA3NDMwOSwgNzQzMTMsIDc0MzE3LCA3NDMyMywgNzQzMjcsIDc0MzMzLCA3NDMzOSwgNzQzNDMsIDc0MzQ3LCA3NDM1MywgCisgICAgNzQzNTcsIDc0MzYzLCA3NDM2OSwgNzQzNzMsIDc0Mzc5LCA3NDM4MywgNzQzODksIDc0MzkyLCA3NDM5NSwgNzQ0MDEsIAorICAgIDc0NDA1LCA3NDQxMSwgNzQ0MTQsIDc0NDE3LCA3NDQyMCwgNzQ0MjYsIDc0NDMwLCA3NDQzNCwgNzQ0NDAsIDc0NDQ2LCAKKyAgICA3NDQ0OSwgNzQ0NTIsIDc0NDU4LCA3NDQ2MywgNzQ0NjgsIDc0NDczLCA3NDQ4MCwgNzQ0ODUsIDc0NDkyLCA3NDQ5NywgCisgICAgNzQ1MDQsIDc0NTA5LCA3NDUxNCwgNzQ1MTksIDc0NTI0LCA3NDUyNywgNzQ1MzEsIDc0NTM1LCA3NDU0MCwgNzQ1NDUsIAorICAgIDc0NTUwLCA3NDU1NSwgNzQ1NjAsIDc0NTY1LCA3NDU3MCwgNzQ1NzUsIDc0NTgyLCA3NDU4NywgMCwgNzQ1OTQsIDc0NTk3LCAKKyAgICA3NDYwMSwgNzQ2MDQsIDc0NjA3LCA3NDYxMCwgNzQ2MTMsIDc0NjE2LCA3NDYxOSwgNzQ2MjIsIDc0NjI1LCAwLCAwLCAwLCAKKyAgICAwLCA3NDYyOCwgNzQ2MzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDc0NjQwLCA3NDY0MywgNzQ2NDYsIDc0NjQ5LCA3NDY1MiwgCisgICAgNzQ2NTYsIDc0NjU5LCA3NDY2MiwgNzQ2NjYsIDc0NjcwLCA3NDY3NCwgNzQ2NzgsIDc0NjgyLCA3NDY4NiwgNzQ2OTAsIAorICAgIDc0Njk0LCA3NDY5OCwgNzQ3MDIsIDc0NzA2LCA3NDcxMCwgNzQ3MTQsIDc0NzE4LCA3NDcyMiwgNzQ3MjYsIDc0NzMwLCAKKyAgICA3NDczMywgNzQ3MzcsIDc0NzQwLCA3NDc0NCwgNzQ3NDgsIDc0NzUyLCA3NDc1NiwgNzQ3NjAsIDc0NzYzLCA3NDc2NywgCisgICAgNzQ3NzAsIDc0NzczLCA3NDc3NywgNzQ3ODEsIDc0Nzg1LCA3NDc4OCwgNzQ3OTEsIDc0Nzk2LCA3NDgwMCwgNzQ4MDUsIAorICAgIDc0ODEwLCA3NDgxNCwgNzQ4MTksIDc0ODIzLCA3NDgyOCwgNzQ4MzMsIDc0ODM4LCA3NDg0MiwgNzQ4NDYsIDc0ODUxLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NDg1NiwgNzQ4NjEsIDc0ODY2LCA3NDg3MSwgNzQ4NzcsIDc0ODgyLCA3NDg4NywgCisgICAgNzQ4OTIsIDc0ODk3LCA3NDkwMiwgNzQ5MDYsIDc0OTEwLCA3NDkxNSwgNzQ5MjAsIDAsIDAsIDc0OTI2LCA3NDkzMCwgCisgICAgNzQ5MzMsIDc0OTM2LCA3NDkzOSwgNzQ5NDIsIDc0OTQ1LCA3NDk0OCwgNzQ5NTEsIDc0OTU0LCAwLCAwLCA3NDk1NywgCisgICAgNzQ5NjIsIDc0OTY3LCA3NDk3MywgNzQ5ODAsIDc0OTg2LCA3NDk5MiwgNzQ5OTgsIDc1MDA0LCA3NTAxMCwgNzUwMTYsIAorICAgIDc1MDIyLCA3NTAyOCwgNzUwMzQsIDc1MDQwLCA3NTA0NiwgNzUwNTEsIDc1MDU2LCA3NTA2MSwgNzUwNjcsIDc1MDczLCAKKyAgICA3NTA4MCwgNzUwODYsIDc1MDkyLCA3NTA5NywgNzUxMDQsIDc1MTExLCA3NTExOCwgNzUxMjQsIDc1MTI5LCA3NTEzNCwgCisgICAgNzUxMzksIDAsIDAsIDAsIDAsIDc1MTQ3LCA3NTE1MywgNzUxNTksIDc1MTY1LCA3NTE3MSwgNzUxNzcsIDc1MTgzLCAKKyAgICA3NTE4OSwgNzUxOTUsIDc1MjAxLCA3NTIwNywgNzUyMTMsIDc1MjE5LCA3NTIyNSwgNzUyMzEsIDc1MjM3LCA3NTI0MywgCisgICAgNzUyNDksIDc1MjU1LCA3NTI2MSwgNzUyNjcsIDc1MjcyLCA3NTI3NywgNzUyODMsIDc1Mjg5LCA3NTI5NSwgNzUzMDEsIAorICAgIDc1MzA3LCA3NTMxMywgNzUzMTksIDc1MzI1LCA3NTMzMSwgNzUzMzcsIDc1MzQzLCA3NTM0OSwgNzUzNTUsIDc1MzYxLCAKKyAgICA3NTM2NywgNzUzNzMsIDc1Mzc5LCA3NTM4NSwgNzUzOTEsIDc1Mzk3LCA3NTQwMywgNzU0MDksIDc1NDE1LCA3NTQyMSwgCisgICAgNzU0MjYsIDc1NDMxLCA3NTQzNywgNzU0NDIsIDc1NDQ2LCA3NTQ1MSwgNzU0NTUsIDc1NDU5LCA3NTQ2MywgNzU0NjksIAorICAgIDc1NDc0LCA3NTQ3OSwgNzU0ODQsIDc1NDg5LCA3NTQ5NCwgNzU0OTksIDc1NTA0LCA3NTUxMSwgNzU1MTgsIDc1NTI1LCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA3Mzc2NCwgNzM3NjcsIDczNzcwLCA3Mzc3MywgNzM3NzYsIDczNzgwLCA3Mzc4MywgNzM3ODYsIDczNzkwLCA3Mzc5NCwgCi0gICAgNzM3OTgsIDczODAyLCA3MzgwNiwgNzM4MTAsIDczODE0LCA3MzgxOCwgNzM4MjIsIDczODI2LCA3MzgzMCwgNzM4MzQsIAotICAgIDczODM4LCA3Mzg0MiwgNzM4NDYsIDczODUwLCA3Mzg1NCwgNzM4NTcsIDczODYxLCA3Mzg2NCwgNzM4NjgsIDczODcyLCAKLSAgICA3Mzg3NiwgNzM4ODAsIDczODg0LCA3Mzg4NywgNzM4OTEsIDczODk0LCA3Mzg5NywgNzM5MDEsIDczOTA1LCA3MzkwOSwgCi0gICAgNzM5MTMsIDczOTE2LCA3MzkyMSwgNzM5MjUsIDczOTMwLCA3MzkzNSwgNzM5MzksIDczOTQ0LCA3Mzk0OCwgNzM5NTMsIAotICAgIDczOTU4LCA3Mzk2MywgNzM5NjgsIDczOTczLCA3Mzk3OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzM5ODUsIAotICAgIDczOTkwLCA3Mzk5NSwgNzQwMDAsIDc0MDA3LCA3NDAxMiwgNzQwMTcsIDc0MDIxLCA3NDAyNiwgNzQwMzEsIDc0MDM1LCAKLSAgICA3NDAzOSwgNzQwNDQsIDc0MDUwLCAwLCAwLCA3NDA1NywgNzQwNjEsIDc0MDY0LCA3NDA2NywgNzQwNzAsIDc0MDczLCAKLSAgICA3NDA3NiwgNzQwNzksIDc0MDgyLCA3NDA4NSwgMCwgMCwgNzQwODgsIDc0MDkzLCA3NDA5OCwgNzQxMDQsIDc0MTExLCAKLSAgICA3NDExNywgNzQxMjMsIDc0MTI5LCA3NDEzNSwgNzQxNDEsIDc0MTQ3LCA3NDE1MywgNzQxNTksIDc0MTY1LCA3NDE3MSwgCi0gICAgNzQxNzcsIDc0MTgyLCA3NDE4OCwgNzQxOTMsIDc0MTk5LCA3NDIwNSwgNzQyMTIsIDc0MjE4LCA3NDIyNCwgNzQyMjksIAotICAgIDc0MjM2LCA3NDI0MywgNzQyNTAsIDc0MjU2LCA3NDI2MSwgNzQyNjYsIDc0MjcxLCAwLCAwLCAwLCAwLCA3NDI3OSwgCi0gICAgNzQyODUsIDc0MjkxLCA3NDI5NywgNzQzMDMsIDc0MzA5LCA3NDMxNSwgNzQzMjEsIDc0MzI3LCA3NDMzMywgNzQzMzksIAotICAgIDc0MzQ1LCA3NDM1MSwgNzQzNTcsIDc0MzYzLCA3NDM2OSwgNzQzNzUsIDc0MzgxLCA3NDM4NywgNzQzOTMsIDc0Mzk5LCAKLSAgICA3NDQwNCwgNzQ0MDksIDc0NDE1LCA3NDQyMSwgNzQ0MjcsIDc0NDMzLCA3NDQzOSwgNzQ0NDUsIDc0NDUxLCA3NDQ1NywgCi0gICAgNzQ0NjMsIDc0NDY5LCA3NDQ3NSwgNzQ0ODEsIDc0NDg3LCA3NDQ5MywgNzQ0OTksIDc0NTA1LCA3NDUxMSwgNzQ1MTcsIAotICAgIDc0NTIzLCA3NDUyOSwgNzQ1MzUsIDc0NTQxLCA3NDU0NywgNzQ1NTMsIDc0NTU4LCA3NDU2MywgNzQ1NjksIDc0NTc0LCAKLSAgICA3NDU3OCwgNzQ1ODMsIDc0NTg3LCA3NDU5MSwgNzQ1OTUsIDc0NjAxLCA3NDYwNiwgNzQ2MTEsIDc0NjE2LCA3NDYyMSwgCi0gICAgNzQ2MjYsIDc0NjMxLCA3NDYzNiwgNzQ2NDMsIDc0NjUwLCA3NDY1NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzQ2NjQsIDc0NjY5LCA3NDY3NCwgNzQ2NzksIAotICAgIDc0Njg2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NDY5MywgNzQ2OTcsIDc0NzAxLCA3NDcwNSwgNzQ3MDksIAotICAgIDc0NzEzLCAwLCAwLCA3NDcxNywgNzQ3MjEsIDc0NzI1LCA3NDcyOSwgNzQ3MzMsIDc0NzM3LCAwLCAwLCA3NDc0MSwgCi0gICAgNzQ3NDUsIDc0NzQ5LCA3NDc1MywgNzQ3NTcsIDc0NzYxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NDc2NSwgCi0gICAgNzQ3NjksIDc0NzczLCA3NDc3NywgNzQ3ODEsIDc0Nzg1LCA3NDc4OSwgMCwgNzQ3OTMsIDc0Nzk3LCA3NDgwMSwgNzQ4MDUsIAotICAgIDc0ODA5LCA3NDgxMywgNzQ4MTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDc1NTMyLCA3NTUzNywgNzU1NDIsIDc1NTQ3LCA3NTU1NCwgNzU1NjEsIDc1NTY1LCA3NTU2OSwgNzU1NzQsIDc1NTc5LCAKKyAgICA3NTU4NCwgNzU1ODksIDc1NTk0LCA3NTU5OSwgNzU2MDQsIDc1NjA5LCA3NTYxNCwgNzU2MjAsIDc1NjI2LCA3NTYzMiwgCisgICAgNzU2MzgsIDc1NjQ0LCA3NTY0OCwgNzU2NTQsIDc1NjU4LCA3NTY2NCwgNzU2NzEsIDc1Njc3LCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA3NTY4MSwgNzU2ODUsIDc1Njg5LCA3NTY5MywgNzU2OTcsIDc1NzAxLCAwLCAwLCA3NTcwNSwgNzU3MDksIAorICAgIDc1NzEzLCA3NTcxNywgNzU3MjEsIDc1NzI1LCAwLCAwLCA3NTcyOSwgNzU3MzMsIDc1NzM3LCA3NTc0MSwgNzU3NDUsIAorICAgIDc1NzQ5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NTc1MywgNzU3NTcsIDc1NzYxLCA3NTc2NSwgNzU3NjksIAorICAgIDc1NzczLCA3NTc3NywgMCwgNzU3ODEsIDc1Nzg1LCA3NTc4OSwgNzU3OTMsIDc1Nzk3LCA3NTgwMSwgNzU4MDUsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDc0ODIxLCA3NDgyOCwgNzQ4MzUsIDc0ODQyLCA3NDg0OSwgNzQ4NTUsIDc0ODYxLCAKLSAgICA3NDg2OCwgNzQ4NzUsIDc0ODgyLCA3NDg4OSwgNzQ4OTYsIDc0OTAzLCA3NDkxMCwgNzQ5MTcsIDc0OTI0LCA3NDkzMCwgCi0gICAgNzQ5MzcsIDc0OTQ0LCA3NDk1MSwgNzQ5NTgsIDc0OTY1LCA3NDk3MiwgNzQ5NzksIDc0OTg2LCA3NDk5MywgNzUwMDAsIAotICAgIDc1MDA3LCA3NTAxNiwgNzUwMjUsIDc1MDM0LCA3NTA0MywgNzUwNTIsIDc1MDYxLCA3NTA3MCwgNzUwNzksIDc1MDg3LCAKLSAgICA3NTA5NSwgNzUxMDMsIDc1MTExLCA3NTExOSwgNzUxMjcsIDc1MTM1LCA3NTE0MywgNzUxNDksIDc1MTU3LCAwLCAwLCAKLSAgICA3NTE2NSwgNzUxNzIsIDc1MTc4LCA3NTE4NCwgNzUxOTAsIDc1MTk2LCA3NTIwMiwgNzUyMDgsIDc1MjE0LCA3NTIyMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNzU4MDksIDc1ODE0LCA3NTgxOSwgNzU4MjQsIDc1ODI5LCA3NTgzMywgNzU4MzcsIDc1ODQyLCA3NTg0NywgNzU4NTIsIAorICAgIDc1ODU3LCA3NTg2MiwgNzU4NjcsIDc1ODcyLCA3NTg3NywgNzU4ODIsIDc1ODg2LCA3NTg5MSwgNzU4OTYsIDc1OTAxLCAKKyAgICA3NTkwNiwgNzU5MTEsIDc1OTE2LCA3NTkyMSwgNzU5MjYsIDc1OTMxLCA3NTkzNiwgNzU5NDEsIDc1OTQ4LCA3NTk1NSwgCisgICAgNzU5NjIsIDc1OTY5LCA3NTk3NiwgNzU5ODMsIDc1OTkwLCA3NTk5NywgNzYwMDMsIDc2MDA5LCA3NjAxNSwgNzYwMjEsIAorICAgIDc2MDI3LCA3NjAzMywgNzYwMzksIDc2MDQ1LCA3NjA0OSwgNzYwNTUsIDAsIDAsIDc2MDYxLCA3NjA2NiwgNzYwNzAsIAorICAgIDc2MDc0LCA3NjA3OCwgNzYwODIsIDc2MDg2LCA3NjA5MCwgNzYwOTQsIDc2MDk4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3NjEwMiwgCisgICAgNzYxMDYsIDc2MTEwLCA3NjExNCwgNzYxMTgsIDc2MTIyLCA3NjEyNiwgNzYxMzAsIDc2MTM0LCA3NjEzOCwgNzYxNDIsIAorICAgIDc2MTQ2LCA3NjE1MCwgNzYxNTQsIDc2MTU4LCA3NjE2MiwgNzYxNjYsIDc2MTcwLCA3NjE3NCwgNzYxNzgsIDc2MTgyLCAKKyAgICA3NjE4NiwgNzYxOTAsIDAsIDAsIDAsIDAsIDc2MTk0LCA3NjE5OCwgNzYyMDIsIDc2MjA2LCA3NjIxMCwgNzYyMTQsIAorICAgIDc2MjE4LCA3NjIyMiwgNzYyMjYsIDc2MjMwLCA3NjIzNCwgNzYyMzgsIDc2MjQyLCA3NjI0NiwgNzYyNTAsIDc2MjU0LCAKKyAgICA3NjI1OCwgNzYyNjIsIDc2MjY2LCA3NjI3MCwgNzYyNzQsIDc2Mjc4LCA3NjI4MiwgNzYyODYsIDc2MjkwLCA3NjI5NCwgCisgICAgNzYyOTgsIDc2MzAyLCA3NjMwNiwgNzYzMTAsIDc2MzE0LCA3NjMxOCwgNzYzMjIsIDc2MzI2LCA3NjMzMCwgNzYzMzQsIAorICAgIDc2MzM4LCA3NjM0MiwgNzYzNDYsIDc2MzUwLCA3NjM1NCwgNzYzNTgsIDc2MzYyLCA3NjM2NiwgNzYzNzAsIDc2Mzc0LCAKKyAgICA3NjM3OCwgNzYzODIsIDc2Mzg2LCAwLCAwLCAwLCAwLCA3NjM5MCwgNzYzOTQsIDc2Mzk4LCA3NjQwMiwgNzY0MDYsIAorICAgIDc2NDEwLCA3NjQxNCwgNzY0MTgsIDc2NDIyLCA3NjQyNiwgNzY0MzAsIDc2NDM0LCA3NjQzOCwgNzY0NDIsIDc2NDQ2LCAKKyAgICA3NjQ1MCwgNzY0NTQsIDc2NDU4LCA3NjQ2MiwgNzY0NjYsIDc2NDcwLCA3NjQ3NCwgNzY0NzgsIDc2NDgyLCA3NjQ4NiwgCisgICAgNzY0OTAsIDc2NDk0LCA3NjQ5OCwgNzY1MDIsIDc2NTA2LCA3NjUxMCwgNzY1MTQsIDc2NTE4LCA3NjUyMiwgNzY1MjYsIAorICAgIDc2NTMwLCA3NjUzNCwgNzY1MzgsIDc2NTQyLCA3NjU0NiwgNzY1NTAsIDc2NTU0LCA3NjU1OCwgNzY1NjIsIDc2NTY2LCAKKyAgICA3NjU3MCwgNzY1NzQsIDc2NTc4LCA3NjU4MiwgNzY1ODYsIDc2NTkwLCA3NjU5NCwgNzY1OTgsIDc2NjAyLCA3NjYwNiwgCisgICAgNzY2MTAsIDc2NjE0LCA3NjYxOCwgNzY2MjIsIDc2NjI2LCA3NjYzMCwgNzY2MzQsIDc2NjM4LCA3NjY0MiwgNzY2NDYsIAorICAgIDc2NjUwLCA3NjY1NCwgNzY2NTgsIDc2NjYyLCA3NjY2NiwgNzY2NzAsIDc2Njc0LCA3NjY3OCwgNzY2ODIsIDc2Njg2LCAKKyAgICA3NjY5MCwgNzY2OTQsIDc2Njk4LCA3NjcwMiwgNzY3MDYsIDc2NzEwLCA3NjcxNCwgNzY3MTgsIDc2NzIyLCA3NjcyNiwgCisgICAgNzY3MzAsIDc2NzM0LCA3NjczOCwgNzY3NDIsIDc2NzQ2LCA3Njc1MCwgNzY3NTQsIDc2NzU4LCA3Njc2MiwgNzY3NjYsIAorICAgIDc2NzcwLCA3Njc3NCwgNzY3NzgsIDc2NzgyLCA3Njc4NiwgNzY3OTAsIDc2Nzk0LCA3Njc5OCwgNzY4MDIsIDc2ODA2LCAKKyAgICA3NjgxMCwgNzY4MTQsIDc2ODE4LCA3NjgyMiwgNzY4MjYsIDc2ODMwLCA3NjgzNCwgNzY4MzgsIDc2ODQyLCA3Njg0NiwgCisgICAgNzY4NTAsIDc2ODU0LCA3Njg1OCwgNzY4NjIsIDc2ODY2LCA3Njg3MCwgNzY4NzQsIDc2ODc4LCA3Njg4MiwgNzY4ODYsIAorICAgIDc2ODkwLCA3Njg5NCwgNzY4OTgsIDc2OTAyLCA3NjkwNiwgNzY5MTAsIDc2OTE0LCA3NjkxOCwgNzY5MjIsIDc2OTI2LCAKKyAgICA3NjkzMCwgNzY5MzQsIDc2OTM4LCA3Njk0MiwgNzY5NDYsIDc2OTUwLCA3Njk1NCwgNzY5NTgsIDc2OTYyLCA3Njk2NiwgCisgICAgNzY5NzAsIDc2OTc0LCA3Njk3OCwgNzY5ODIsIDc2OTg2LCA3Njk5MCwgNzY5OTQsIDc2OTk4LCA3NzAwMiwgNzcwMDYsIAorICAgIDc3MDEwLCA3NzAxNCwgNzcwMTgsIDc3MDIyLCA3NzAyNiwgNzcwMzAsIDc3MDM0LCA3NzAzOCwgNzcwNDIsIDc3MDQ2LCAKKyAgICA3NzA1MCwgNzcwNTQsIDc3MDU4LCA3NzA2MiwgNzcwNjYsIDc3MDcwLCA3NzA3NCwgNzcwNzgsIDc3MDgyLCA3NzA4NiwgCisgICAgNzcwOTAsIDc3MDk0LCA3NzA5OCwgNzcxMDIsIDc3MTA2LCA3NzExMCwgNzcxMTQsIDc3MTE4LCA3NzEyMiwgNzcxMjYsIAorICAgIDc3MTMwLCA3NzEzNCwgNzcxMzgsIDc3MTQyLCA3NzE0NiwgNzcxNTAsIDc3MTU0LCA3NzE1OCwgNzcxNjIsIDc3MTY2LCAKKyAgICA3NzE3MCwgNzcxNzQsIDc3MTc4LCA3NzE4MiwgNzcxODYsIDc3MTkwLCA3NzE5NCwgNzcxOTgsIDc3MjAyLCA3NzIwNiwgCisgICAgNzcyMTAsIDc3MjE0LCA3NzIxOCwgNzcyMjIsIDc3MjI2LCA3NzIzMCwgNzcyMzQsIDc3MjM4LCA3NzI0MiwgNzcyNDYsIAorICAgIDc3MjUwLCA3NzI1NCwgNzcyNTgsIDc3MjYyLCA3NzI2NiwgNzcyNzAsIDc3Mjc0LCA3NzI3OCwgNzcyODIsIDc3Mjg2LCAKKyAgICA3NzI5MCwgNzcyOTQsIDc3Mjk4LCA3NzMwMiwgNzczMDYsIDc3MzEwLCA3NzMxNCwgNzczMTgsIDc3MzIyLCA3NzMyNiwgCisgICAgNzczMzAsIDc3MzM0LCA3NzMzOCwgNzczNDIsIDc3MzQ2LCA3NzM1MCwgNzczNTQsIDc3MzU4LCA3NzM2MiwgNzczNjYsIAorICAgIDc3MzcwLCA3NzM3NCwgNzczNzgsIDc3MzgyLCA3NzM4NiwgNzczOTAsIDc3Mzk0LCA3NzM5OCwgNzc0MDIsIDc3NDA2LCAKKyAgICA3NzQxMCwgNzc0MTQsIDc3NDE4LCA3NzQyMiwgNzc0MjYsIDc3NDMwLCA3NzQzNCwgNzc0MzgsIDc3NDQyLCA3NzQ0NiwgCisgICAgNzc0NTAsIDc3NDU0LCA3NzQ1OCwgNzc0NjIsIDc3NDY2LCA3NzQ3MCwgNzc0NzQsIDc3NDc4LCA3NzQ4MiwgNzc0ODYsIAorICAgIDc3NDkwLCA3NzQ5NCwgNzc0OTgsIDc3NTAyLCA3NzUwNiwgNzc1MTAsIDc3NTE0LCA3NzUxOCwgNzc1MjIsIDc3NTI2LCAKKyAgICA3NzUzMCwgNzc1MzQsIDc3NTM4LCA3NzU0MiwgNzc1NDYsIDc3NTUwLCA3NzU1NCwgNzc1NTgsIDc3NTYyLCA3NzU2NiwgCisgICAgNzc1NzAsIDc3NTc0LCA3NzU3OCwgNzc1ODIsIDc3NTg2LCA3NzU5MCwgNzc1OTQsIDc3NTk4LCA3NzYwMiwgNzc2MDYsIAorICAgIDc3NjEwLCA3NzYxNCwgNzc2MTgsIDc3NjIyLCA3NzYyNiwgNzc2MzAsIDc3NjM0LCA3NzYzOCwgNzc2NDIsIDc3NjQ2LCAKKyAgICA3NzY1MCwgNzc2NTQsIDc3NjU4LCA3NzY2MiwgNzc2NjYsIDc3NjcwLCA3NzY3NCwgNzc2NzgsIDc3NjgyLCA3NzY4NiwgCisgICAgNzc2OTAsIDc3Njk0LCA3NzY5OCwgNzc3MDIsIDc3NzA2LCA3NzcxMCwgNzc3MTQsIDc3NzE4LCA3NzcyMiwgNzc3MjYsIAorICAgIDc3NzMwLCA3NzczNCwgNzc3MzgsIDc3NzQyLCA3Nzc0NiwgNzc3NTAsIDc3NzU0LCA3Nzc1OCwgNzc3NjIsIDc3NzY2LCAKKyAgICA3Nzc3MCwgNzc3NzQsIDc3Nzc4LCA3Nzc4MiwgNzc3ODYsIDc3NzkwLCA3Nzc5NCwgNzc3OTgsIDc3ODAyLCA3NzgwNiwgCisgICAgNzc4MTAsIDc3ODE0LCA3NzgxOCwgNzc4MjIsIDc3ODI2LCA3NzgzMCwgNzc4MzQsIDc3ODM4LCA3Nzg0MiwgNzc4NDYsIAorICAgIDc3ODUwLCAwLCAwLCA3Nzg1NCwgNzc4NTgsIDc3ODYyLCA3Nzg2NiwgNzc4NzAsIDc3ODc0LCA3Nzg3OCwgNzc4ODIsIAorICAgIDc3ODg2LCA3Nzg5MCwgNzc4OTQsIDc3ODk4LCA3NzkwMiwgNzc5MDYsIDc3OTEwLCA3NzkxNCwgNzc5MTgsIDc3OTIyLCAKKyAgICA3NzkyNiwgNzc5MzAsIDc3OTM0LCA3NzkzOCwgNzc5NDIsIDc3OTQ2LCA3Nzk1MCwgNzc5NTQsIDc3OTU4LCA3Nzk2MiwgCisgICAgNzc5NjYsIDc3OTcwLCA3Nzk3NCwgNzc5NzgsIDc3OTgyLCA3Nzk4NiwgNzc5OTAsIDc3OTk0LCA3Nzk5OCwgNzgwMDIsIAorICAgIDc4MDA2LCA3ODAxMCwgNzgwMTQsIDc4MDE4LCA3ODAyMiwgNzgwMjYsIDc4MDMwLCA3ODAzNCwgNzgwMzgsIDc4MDQyLCAKKyAgICA3ODA0NiwgNzgwNTAsIDc4MDU0LCA3ODA1OCwgNzgwNjIsIDc4MDY2LCA3ODA3MCwgNzgwNzQsIDc4MDc4LCA3ODA4MiwgCisgICAgNzgwODYsIDc4MDkwLCA3ODA5NCwgNzgwOTgsIDc4MTAyLCA3ODEwNiwgNzgxMTAsIDc4MTE0LCA3ODExOCwgNzgxMjIsIAorICAgIDc4MTI2LCA3ODEzMCwgNzgxMzQsIDc4MTM4LCA3ODE0MiwgNzgxNDYsIDc4MTUwLCA3ODE1NCwgNzgxNTgsIDc4MTYyLCAKKyAgICA3ODE2NiwgNzgxNzAsIDc4MTc0LCA3ODE3OCwgNzgxODIsIDc4MTg2LCA3ODE5MCwgNzgxOTQsIDc4MTk4LCA3ODIwMiwgCisgICAgNzgyMDYsIDc4MjEwLCA3ODIxNCwgNzgyMTgsIDc4MjIyLCA3ODIyNiwgNzgyMzAsIDc4MjM0LCA3ODIzOCwgNzgyNDIsIAorICAgIDc4MjQ2LCA3ODI1MCwgNzgyNTQsIDc4MjU4LCA3ODI2MiwgNzgyNjYsIDc4MjcwLCA3ODI3NCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNzUyMjYsIDc1MjMwLCA3NTIzNCwgNzUyMzgsIDc1MjQyLCA3NTI0NiwgNzUyNTAsIDc1MjU0LCAKLSAgICA3NTI1OCwgNzUyNjIsIDc1MjY2LCA3NTI3MCwgNzUyNzQsIDc1Mjc4LCA3NTI4MiwgNzUyODYsIDc1MjkwLCA3NTI5NCwgCi0gICAgNzUyOTgsIDc1MzAyLCA3NTMwNiwgNzUzMTAsIDc1MzE0LCAwLCAwLCAwLCAwLCA3NTMxOCwgNzUzMjIsIDc1MzI2LCAKLSAgICA3NTMzMCwgNzUzMzQsIDc1MzM4LCA3NTM0MiwgNzUzNDYsIDc1MzUwLCA3NTM1NCwgNzUzNTgsIDc1MzYyLCA3NTM2NiwgCi0gICAgNzUzNzAsIDc1Mzc0LCA3NTM3OCwgNzUzODIsIDc1Mzg2LCA3NTM5MCwgNzUzOTQsIDc1Mzk4LCA3NTQwMiwgNzU0MDYsIAotICAgIDc1NDEwLCA3NTQxNCwgNzU0MTgsIDc1NDIyLCA3NTQyNiwgNzU0MzAsIDc1NDM0LCA3NTQzOCwgNzU0NDIsIDc1NDQ2LCAKLSAgICA3NTQ1MCwgNzU0NTQsIDc1NDU4LCA3NTQ2MiwgNzU0NjYsIDc1NDcwLCA3NTQ3NCwgNzU0NzgsIDc1NDgyLCA3NTQ4NiwgCi0gICAgNzU0OTAsIDc1NDk0LCA3NTQ5OCwgNzU1MDIsIDc1NTA2LCA3NTUxMCwgMCwgMCwgMCwgMCwgNzU1MTQsIDc1NTE4LCAKLSAgICA3NTUyMiwgNzU1MjYsIDc1NTMwLCA3NTUzNCwgNzU1MzgsIDc1NTQyLCA3NTU0NiwgNzU1NTAsIDc1NTU0LCA3NTU1OCwgCi0gICAgNzU1NjIsIDc1NTY2LCA3NTU3MCwgNzU1NzQsIDc1NTc4LCA3NTU4MiwgNzU1ODYsIDc1NTkwLCA3NTU5NCwgNzU1OTgsIAotICAgIDc1NjAyLCA3NTYwNiwgNzU2MTAsIDc1NjE0LCA3NTYxOCwgNzU2MjIsIDc1NjI2LCA3NTYzMCwgNzU2MzQsIDc1NjM4LCAKLSAgICA3NTY0MiwgNzU2NDYsIDc1NjUwLCA3NTY1NCwgNzU2NTgsIDc1NjYyLCA3NTY2NiwgNzU2NzAsIDc1Njc0LCA3NTY3OCwgCi0gICAgNzU2ODIsIDc1Njg2LCA3NTY5MCwgNzU2OTQsIDc1Njk4LCA3NTcwMiwgNzU3MDYsIDc1NzEwLCA3NTcxNCwgNzU3MTgsIAotICAgIDc1NzIyLCA3NTcyNiwgNzU3MzAsIDc1NzM0LCA3NTczOCwgNzU3NDIsIDc1NzQ2LCA3NTc1MCwgNzU3NTQsIDc1NzU4LCAKLSAgICA3NTc2MiwgNzU3NjYsIDc1NzcwLCA3NTc3NCwgNzU3NzgsIDc1NzgyLCA3NTc4NiwgNzU3OTAsIDc1Nzk0LCA3NTc5OCwgCi0gICAgNzU4MDIsIDc1ODA2LCA3NTgxMCwgNzU4MTQsIDc1ODE4LCA3NTgyMiwgNzU4MjYsIDc1ODMwLCA3NTgzNCwgNzU4MzgsIAotICAgIDc1ODQyLCA3NTg0NiwgNzU4NTAsIDc1ODU0LCA3NTg1OCwgNzU4NjIsIDc1ODY2LCA3NTg3MCwgNzU4NzQsIDc1ODc4LCAKLSAgICA3NTg4MiwgNzU4ODYsIDc1ODkwLCA3NTg5NCwgNzU4OTgsIDc1OTAyLCA3NTkwNiwgNzU5MTAsIDc1OTE0LCA3NTkxOCwgCi0gICAgNzU5MjIsIDc1OTI2LCA3NTkzMCwgNzU5MzQsIDc1OTM4LCA3NTk0MiwgNzU5NDYsIDc1OTUwLCA3NTk1NCwgNzU5NTgsIAotICAgIDc1OTYyLCA3NTk2NiwgNzU5NzAsIDc1OTc0LCA3NTk3OCwgNzU5ODIsIDc1OTg2LCA3NTk5MCwgNzU5OTQsIDc1OTk4LCAKLSAgICA3NjAwMiwgNzYwMDYsIDc2MDEwLCA3NjAxNCwgNzYwMTgsIDc2MDIyLCA3NjAyNiwgNzYwMzAsIDc2MDM0LCA3NjAzOCwgCi0gICAgNzYwNDIsIDc2MDQ2LCA3NjA1MCwgNzYwNTQsIDc2MDU4LCA3NjA2MiwgNzYwNjYsIDc2MDcwLCA3NjA3NCwgNzYwNzgsIAotICAgIDc2MDgyLCA3NjA4NiwgNzYwOTAsIDc2MDk0LCA3NjA5OCwgNzYxMDIsIDc2MTA2LCA3NjExMCwgNzYxMTQsIDc2MTE4LCAKLSAgICA3NjEyMiwgNzYxMjYsIDc2MTMwLCA3NjEzNCwgNzYxMzgsIDc2MTQyLCA3NjE0NiwgNzYxNTAsIDc2MTU0LCA3NjE1OCwgCi0gICAgNzYxNjIsIDc2MTY2LCA3NjE3MCwgNzYxNzQsIDc2MTc4LCA3NjE4MiwgNzYxODYsIDc2MTkwLCA3NjE5NCwgNzYxOTgsIAotICAgIDc2MjAyLCA3NjIwNiwgNzYyMTAsIDc2MjE0LCA3NjIxOCwgNzYyMjIsIDc2MjI2LCA3NjIzMCwgNzYyMzQsIDc2MjM4LCAKLSAgICA3NjI0MiwgNzYyNDYsIDc2MjUwLCA3NjI1NCwgNzYyNTgsIDc2MjYyLCA3NjI2NiwgNzYyNzAsIDc2Mjc0LCA3NjI3OCwgCi0gICAgNzYyODIsIDc2Mjg2LCA3NjI5MCwgNzYyOTQsIDc2Mjk4LCA3NjMwMiwgNzYzMDYsIDc2MzEwLCA3NjMxNCwgNzYzMTgsIAotICAgIDc2MzIyLCA3NjMyNiwgNzYzMzAsIDc2MzM0LCA3NjMzOCwgNzYzNDIsIDc2MzQ2LCA3NjM1MCwgNzYzNTQsIDc2MzU4LCAKLSAgICA3NjM2MiwgNzYzNjYsIDc2MzcwLCA3NjM3NCwgNzYzNzgsIDc2MzgyLCA3NjM4NiwgNzYzOTAsIDc2Mzk0LCA3NjM5OCwgCi0gICAgNzY0MDIsIDc2NDA2LCA3NjQxMCwgNzY0MTQsIDc2NDE4LCA3NjQyMiwgNzY0MjYsIDc2NDMwLCA3NjQzNCwgNzY0MzgsIAotICAgIDc2NDQyLCA3NjQ0NiwgNzY0NTAsIDc2NDU0LCA3NjQ1OCwgNzY0NjIsIDc2NDY2LCA3NjQ3MCwgNzY0NzQsIDc2NDc4LCAKLSAgICA3NjQ4MiwgNzY0ODYsIDc2NDkwLCA3NjQ5NCwgNzY0OTgsIDc2NTAyLCA3NjUwNiwgNzY1MTAsIDc2NTE0LCA3NjUxOCwgCi0gICAgNzY1MjIsIDc2NTI2LCA3NjUzMCwgNzY1MzQsIDc2NTM4LCA3NjU0MiwgNzY1NDYsIDc2NTUwLCA3NjU1NCwgNzY1NTgsIAotICAgIDc2NTYyLCA3NjU2NiwgNzY1NzAsIDc2NTc0LCA3NjU3OCwgNzY1ODIsIDc2NTg2LCA3NjU5MCwgNzY1OTQsIDc2NTk4LCAKLSAgICA3NjYwMiwgNzY2MDYsIDc2NjEwLCA3NjYxNCwgNzY2MTgsIDc2NjIyLCA3NjYyNiwgNzY2MzAsIDc2NjM0LCA3NjYzOCwgCi0gICAgNzY2NDIsIDc2NjQ2LCA3NjY1MCwgNzY2NTQsIDc2NjU4LCA3NjY2MiwgNzY2NjYsIDc2NjcwLCA3NjY3NCwgNzY2NzgsIAotICAgIDc2NjgyLCA3NjY4NiwgNzY2OTAsIDc2Njk0LCA3NjY5OCwgNzY3MDIsIDc2NzA2LCA3NjcxMCwgNzY3MTQsIDc2NzE4LCAwLCAKLSAgICAwLCA3NjcyMiwgNzY3MjYsIDc2NzMwLCA3NjczNCwgNzY3MzgsIDc2NzQyLCA3Njc0NiwgNzY3NTAsIDc2NzU0LCA3Njc1OCwgCi0gICAgNzY3NjIsIDc2NzY2LCA3Njc3MCwgNzY3NzQsIDc2Nzc4LCA3Njc4MiwgNzY3ODYsIDc2NzkwLCA3Njc5NCwgNzY3OTgsIAotICAgIDc2ODAyLCA3NjgwNiwgNzY4MTAsIDc2ODE0LCA3NjgxOCwgNzY4MjIsIDc2ODI2LCA3NjgzMCwgNzY4MzQsIDc2ODM4LCAKLSAgICA3Njg0MiwgNzY4NDYsIDc2ODUwLCA3Njg1NCwgNzY4NTgsIDc2ODYyLCA3Njg2NiwgNzY4NzAsIDc2ODc0LCA3Njg3OCwgCi0gICAgNzY4ODIsIDc2ODg2LCA3Njg5MCwgNzY4OTQsIDc2ODk4LCA3NjkwMiwgNzY5MDYsIDc2OTEwLCA3NjkxNCwgNzY5MTgsIAotICAgIDc2OTIyLCA3NjkyNiwgNzY5MzAsIDc2OTM0LCA3NjkzOCwgNzY5NDIsIDc2OTQ2LCA3Njk1MCwgNzY5NTQsIDc2OTU4LCAKLSAgICA3Njk2MiwgNzY5NjYsIDAsIDAsIDc2OTcwLCA3Njk3NCwgNzY5NzgsIDc2OTgyLCA3Njk4NiwgNzY5OTAsIDc2OTk0LCAKLSAgICA3Njk5OCwgNzcwMDIsIDc3MDA2LCA3NzAxMCwgNzcwMTQsIDc3MDE4LCA3NzAyMiwgNzcwMjYsIDc3MDMwLCA3NzAzNCwgCi0gICAgNzcwMzgsIDc3MDQyLCA3NzA0NiwgNzcwNTAsIDc3MDU0LCA3NzA1OCwgNzcwNjIsIDc3MDY2LCA3NzA3MCwgNzcwNzQsIAotICAgIDc3MDc4LCA3NzA4MiwgNzcwODYsIDc3MDkwLCA3NzA5NCwgNzcwOTgsIDc3MTAyLCA3NzEwNiwgNzcxMTAsIDc3MTE0LCAKLSAgICA3NzExOCwgNzcxMjIsIDc3MTI2LCA3NzEzMCwgNzcxMzQsIDc3MTM4LCA3NzE0MiwgNzcxNDYsIDc3MTUwLCA3NzE1NCwgCi0gICAgNzcxNTgsIDc3MTYyLCA3NzE2NiwgNzcxNzAsIDc3MTc0LCA3NzE3OCwgNzcxODIsIDc3MTg2LCA3NzE5MCwgNzcxOTQsIAotICAgIDc3MTk4LCA3NzIwMiwgNzcyMDYsIDc3MjEwLCA3NzIxNCwgNzcyMTgsIDc3MjIyLCA3NzIyNiwgNzcyMzAsIDc3MjM0LCAKLSAgICA3NzIzOCwgNzcyNDIsIDc3MjQ2LCA3NzI1MCwgNzcyNTQsIDc3MjU4LCA3NzI2MiwgNzcyNjYsIDc3MjcwLCA3NzI3NCwgCi0gICAgNzcyNzgsIDc3MjgyLCA3NzI4NiwgNzcyOTAsIDc3Mjk0LCA3NzI5OCwgNzczMDIsIDc3MzA2LCA3NzMxMCwgNzczMTQsIAotICAgIDc3MzE4LCA3NzMyMiwgNzczMjYsIDc3MzMwLCA3NzMzNCwgNzczMzgsIDc3MzQyLCA3NzM0NiwgNzczNTAsIDc3MzU0LCAKLSAgICA3NzM1OCwgNzczNjIsIDc3MzY2LCA3NzM3MCwgNzczNzQsIDc3Mzc4LCA3NzM4MiwgNzczODYsIDc3MzkwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3ODI3OCwgNzgyODMsIDc4Mjg4LCA3ODI5MywgNzgyOTgsIDc4MzAzLCA3ODMxMSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzgzMTYsIDc4MzIzLCA3ODMzMCwgNzgzMzcsIDc4MzQ0LCAwLCAKKyAgICAwLCAwLCAwLCAwLCA3ODM1MSwgNzgzNTgsIDc4MzY1LCA3ODM3NSwgNzgzODEsIDc4Mzg3LCA3ODM5MywgNzgzOTksIAorICAgIDc4NDA1LCA3ODQxMSwgNzg0MTgsIDc4NDI0LCA3ODQzMCwgNzg0MzYsIDc4NDQ1LCA3ODQ1NCwgNzg0NjYsIDc4NDc4LCAKKyAgICA3ODQ4NCwgNzg0OTAsIDc4NDk2LCA3ODUwMywgNzg1MTAsIDc4NTE3LCA3ODUyNCwgNzg1MzEsIDAsIDc4NTM4LCA3ODU0NSwgCisgICAgNzg1NTIsIDc4NTYwLCA3ODU2NywgMCwgNzg1NzQsIDAsIDc4NTgxLCA3ODU4OCwgMCwgNzg1OTUsIDc4NjAzLCAwLCAKKyAgICA3ODYxMCwgNzg2MTcsIDc4NjI0LCA3ODYzMSwgNzg2MzgsIDc4NjQ1LCA3ODY1MiwgNzg2NTksIDc4NjY2LCA3ODY3MywgCisgICAgNzg2NzgsIDc4Njg1LCA3ODY5MiwgNzg2OTgsIDc4NzA0LCA3ODcxMCwgNzg3MTYsIDc4NzIyLCA3ODcyOCwgNzg3MzQsIAorICAgIDc4NzQwLCA3ODc0NiwgNzg3NTIsIDc4NzU4LCA3ODc2NCwgNzg3NzAsIDc4Nzc2LCA3ODc4MiwgNzg3ODgsIDc4Nzk0LCAKKyAgICA3ODgwMCwgNzg4MDYsIDc4ODEyLCA3ODgxOCwgNzg4MjQsIDc4ODMwLCA3ODgzNiwgNzg4NDIsIDc4ODQ4LCA3ODg1NCwgCisgICAgNzg4NjAsIDc4ODY2LCA3ODg3MiwgNzg4NzgsIDc4ODg0LCA3ODg5MCwgNzg4OTYsIDc4OTAyLCA3ODkwOCwgNzg5MTQsIAorICAgIDc4OTIwLCA3ODkyNiwgNzg5MzIsIDc4OTM4LCA3ODk0NCwgNzg5NTAsIDc4OTU2LCA3ODk2MiwgNzg5NjgsIDc4OTc0LCAKKyAgICA3ODk4MCwgNzg5ODYsIDc4OTkyLCA3ODk5OCwgNzkwMDQsIDc5MDEwLCA3OTAxNiwgNzkwMjIsIDc5MDI4LCA3OTAzNCwgCisgICAgNzkwNDAsIDc5MDQ2LCA3OTA1MiwgNzkwNTgsIDc5MDY0LCA3OTA3MCwgNzkwNzYsIDc5MDgyLCA3OTA4OCwgNzkwOTQsIAorICAgIDc5MTAwLCA3OTEwNiwgNzkxMTIsIDc5MTE4LCA3OTEyNCwgNzkxMzAsIDc5MTM2LCA3OTE0MiwgNzkxNDgsIDc5MTU2LCAKKyAgICA3OTE2NCwgNzkxNzAsIDc5MTc2LCA3OTE4MiwgNzkxODgsIDc5MTk3LCA3OTIwNiwgNzkyMTQsIDc5MjIyLCA3OTIzMCwgCisgICAgNzkyMzgsIDc5MjQ2LCA3OTI1NCwgNzkyNjIsIDc5MjcwLCA3OTI3NywgNzkyODQsIDc5Mjk0LCA3OTMwNCwgNzkzMDgsIAorICAgIDc5MzEyLCA3OTMxNywgNzkzMjIsIDc5MzI3LCA3OTMzMiwgNzkzNDEsIDc5MzUwLCA3OTM1NiwgNzkzNjIsIDc5MzY5LCAKKyAgICA3OTM3NiwgNzkzODMsIDc5Mzg3LCA3OTM5MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgNzkzOTksIDc5NDA1LCA3OTQxMSwgNzk0MTcsIDc5NDIzLCA3OTQyOCwgNzk0MzMsIDc5NDM5LCA3OTQ0NSwgCisgICAgNzk0NTEsIDc5NDU3LCA3OTQ2NSwgNzk0NzEsIDc5NDc3LCA3OTQ4NSwgNzk0OTMsIDc5NTAxLCA3OTUwOSwgNzk1MTQsIAorICAgIDc5NTE5LCA3OTUyNCwgNzk1MjksIDc5NTQyLCA3OTU1NSwgNzk1NjUsIDc5NTc1LCA3OTU4NiwgNzk1OTcsIDc5NjA4LCAKKyAgICA3OTYxOSwgNzk2MjksIDc5NjM5LCA3OTY1MCwgNzk2NjEsIDc5NjcyLCA3OTY4MywgNzk2OTMsIDc5NzAzLCA3OTcxMywgCisgICAgNzk3MjksIDc5NzQ1LCA3OTc2MSwgNzk3NjgsIDc5Nzc1LCA3OTc4MiwgNzk3ODksIDc5Nzk5LCA3OTgwOSwgNzk4MTksIAorICAgIDc5ODMxLCA3OTg0MSwgNzk4NDksIDc5ODU3LCA3OTg2NiwgNzk4NzQsIDc5ODg0LCA3OTg5MiwgNzk5MDAsIDc5OTA4LCAKKyAgICA3OTkxNywgNzk5MjUsIDc5OTM1LCA3OTk0MywgNzk5NTEsIDc5OTU5LCA3OTk2OSwgNzk5NzcsIDc5OTg0LCA3OTk5MSwgCisgICAgNzk5OTgsIDgwMDA1LCA4MDAxMywgODAwMjEsIDgwMDI5LCA4MDAzNywgODAwNDUsIDgwMDU0LCA4MDA2MiwgODAwNzAsIAorICAgIDgwMDc4LCA4MDA4NiwgODAwOTQsIDgwMTAzLCA4MDExMSwgODAxMTksIDgwMTI3LCA4MDEzNSwgODAxNDMsIDgwMTUxLCAKKyAgICA4MDE1OSwgODAxNjcsIDgwMTc1LCA4MDE4MywgODAxOTIsIDgwMjAwLCA4MDIxMCwgODAyMTgsIDgwMjI2LCA4MDIzNCwgCisgICAgODAyNDQsIDgwMjUyLCA4MDI2MCwgODAyNjgsIDgwMjc2LCA4MDI4NSwgODAyOTQsIDgwMzAyLCA4MDMxMiwgODAzMjAsIAorICAgIDgwMzI4LCA4MDMzNiwgODAzNDUsIDgwMzUzLCA4MDM2MywgODAzNzEsIDgwMzc4LCA4MDM4NSwgODAzOTMsIDgwNDAwLCAKKyAgICA4MDQwOSwgODA0MTYsIDgwNDI0LCA4MDQzMiwgODA0NDEsIDgwNDQ5LCA4MDQ1OSwgODA0NjcsIDgwNDc1LCA4MDQ4MywgCisgICAgODA0OTMsIDgwNTAxLCA4MDUwOCwgODA1MTUsIDgwNTIzLCA4MDUzMCwgODA1MzksIDgwNTQ2LCA4MDU1NiwgODA1NjYsIAorICAgIDgwNTc3LCA4MDU4NiwgODA1OTUsIDgwNjA0LCA4MDYxMywgODA2MjIsIDgwNjMyLCA4MDY0MywgODA2NTQsIDgwNjY0LCAKKyAgICA4MDY3NSwgODA2ODcsIDgwNjk3LCA4MDcwNiwgODA3MTUsIDgwNzIzLCA4MDczMiwgODA3NDIsIDgwNzUwLCA4MDc1OSwgCisgICAgODA3NjgsIDgwNzc2LCA4MDc4NSwgODA3OTUsIDgwODAzLCA4MDgxMiwgODA4MjEsIDgwODI5LCA4MDgzOCwgODA4NDgsIAorICAgIDgwODU2LCA4MDg2NiwgODA4NzQsIDgwODg0LCA4MDg5MiwgODA5MDAsIDgwOTA5LCA4MDkxNywgODA5MjcsIDgwOTM1LCAKKyAgICA4MDk0MywgODA5NTMsIDgwOTYxLCA4MDk2OCwgODA5NzUsIDgwOTg0LCA4MDk5MywgODEwMDEsIDgxMDEwLCA4MTAyMCwgCisgICAgODEwMjgsIDgxMDM5LCA4MTA0NywgODEwNTUsIDgxMDYyLCA4MTA3MCwgODEwNzksIDgxMDg2LCA4MTA5NiwgODExMDYsIAorICAgIDgxMTE3LCA4MTEyNywgODExMzgsIDgxMTQ2LCA4MTE1NCwgODExNjMsIDgxMTcxLCA4MTE4MCwgODExODgsIDgxMTk2LCAKKyAgICA4MTIwNSwgODEyMTMsIDgxMjIyLCA4MTIzMCwgODEyMzcsIDgxMjQ0LCA4MTI1MSwgODEyNTgsIDgxMjY2LCA4MTI3NCwgCisgICAgODEyODIsIDgxMjkwLCA4MTI5OSwgODEzMDcsIDgxMzE1LCA4MTMyNCwgODEzMzIsIDgxMzQwLCA4MTM0OCwgODEzNTcsIAorICAgIDgxMzY1LCA4MTM3MywgODEzODEsIDgxMzg5LCA4MTM5NywgODE0MDUsIDgxNDEzLCA4MTQyMSwgODE0MjksIDgxNDM4LCAKKyAgICA4MTQ0NiwgODE0NTQsIDgxNDYyLCA4MTQ3MCwgODE0NzgsIDgxNDg3LCA4MTQ5NiwgODE1MDQsIDgxNTEyLCA4MTUyMCwgCisgICAgODE1MjksIDgxNTM3LCA4MTU0NiwgODE1NTMsIDgxNTYwLCA4MTU2OCwgODE1NzUsIDgxNTgzLCA4MTU5MSwgODE2MDAsIAorICAgIDgxNjA4LCA4MTYxNywgODE2MjUsIDgxNjMzLCA4MTY0MywgODE2NTAsIDgxNjU3LCA4MTY2NSwgODE2NzIsIDgxNjgwLCAKKyAgICA4MTY5MCwgODE3MDEsIDgxNzA5LCA4MTcxOCwgODE3MjYsIDgxNzM1LCA4MTc0MywgODE3NTIsIDgxNzYwLCA4MTc2OSwgCisgICAgODE3NzcsIDgxNzg2LCA4MTc5NSwgODE4MDMsIDgxODExLCA4MTgxOSwgODE4MjgsIDgxODM1LCA4MTg0MywgODE4NTIsIAorICAgIDgxODYxLCA4MTg3MCwgODE4ODAsIDgxODg4LCA4MTg5OCwgODE5MDYsIDgxOTE2LCA4MTkyNCwgODE5MzQsIDgxOTQyLCAKKyAgICA4MTk1MiwgODE5NjAsIDgxOTY5LCA4MTk3NiwgODE5ODUsIDgxOTkyLCA4MjAwMiwgODIwMTAsIDgyMDIwLCA4MjAyOCwgCisgICAgODIwMzgsIDgyMDQ2LCA4MjA1NCwgODIwNjIsIDgyMDcxLCA4MjA3OSwgODIwODgsIDgyMDk3LCA4MjEwNiwgODIxMTUsIAorICAgIDgyMTI1LCA4MjEzMywgODIxNDMsIDgyMTUxLCA4MjE2MSwgODIxNjksIDgyMTc5LCA4MjE4NywgODIxOTcsIDgyMjA1LCAKKyAgICA4MjIxNCwgODIyMjEsIDgyMjMwLCA4MjIzNywgODIyNDcsIDgyMjU1LCA4MjI2NSwgODIyNzMsIDgyMjgzLCA4MjI5MSwgCisgICAgODIyOTksIDgyMzA3LCA4MjMxNiwgODIzMjQsIDgyMzMzLCA4MjM0MiwgODIzNTEsIDgyMzYwLCA4MjM2OCwgODIzNzYsIAorICAgIDgyMzg1LCA4MjM5MywgODI0MDIsIDgyNDExLCA4MjQxOSwgODI0MjcsIDgyNDM1LCA4MjQ0NCwgODI0NTIsIDgyNDYwLCAKKyAgICA4MjQ2OSwgODI0NzcsIDgyNDg1LCA4MjQ5MywgODI1MDEsIDgyNTA2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA4MjUxMSwgODI1MjEsIDgyNTMxLCA4MjU0MSwgODI1NTEsIDgyNTYyLCA4MjU3MiwgODI1ODIsIAorICAgIDgyNTkzLCA4MjYwMiwgODI2MTEsIDgyNjIwLCA4MjYzMSwgODI2NDEsIDgyNjUxLCA4MjY2MywgODI2NzMsIDgyNjgzLCAKKyAgICA4MjY5MywgODI3MDMsIDgyNzEzLCA4MjcyMywgODI3MzMsIDgyNzQzLCA4Mjc1MywgODI3NjMsIDgyNzczLCA4Mjc4NCwgCisgICAgODI3OTUsIDgyODA1LCA4MjgxNSwgODI4MjcsIDgyODM4LCA4Mjg0OSwgODI4NTksIDgyODY5LCA4Mjg3OSwgODI4ODksIAorICAgIDgyODk5LCA4MjkwOSwgODI5MTksIDgyOTMxLCA4Mjk0MSwgODI5NTEsIDgyOTYzLCA4Mjk3NCwgODI5ODUsIDgyOTk1LCAKKyAgICA4MzAwNSwgODMwMTUsIDgzMDI1LCA4MzAzNywgODMwNDcsIDgzMDU3LCA4MzA2OCwgODMwNzksIDgzMDg5LCA4MzA5OSwgCisgICAgODMxMDgsIDgzMTE3LCA4MzEyNiwgODMxMzUsIDgzMTQ0LCA4MzE1NCwgMCwgMCwgODMxNjQsIDgzMTc0LCA4MzE4NCwgCisgICAgODMxOTQsIDgzMjA0LCA4MzIxNiwgODMyMjYsIDgzMjM2LCA4MzI0OCwgODMyNTgsIDgzMjcwLCA4MzI3OSwgODMyODgsIAorICAgIDgzMjk5LCA4MzMwOSwgODMzMjEsIDgzMzMyLCA4MzM0NSwgODMzNTUsIDgzMzY3LCA4MzM3NiwgODMzODcsIDgzMzk4LCAKKyAgICA4MzQxMSwgODM0MjEsIDgzNDMxLCA4MzQ0MSwgODM0NTEsIDgzNDYxLCA4MzQ3MCwgODM0NzksIDgzNDg4LCA4MzQ5NywgCisgICAgODM1MDcsIDgzNTE3LCA4MzUyNywgODM1MzcsIDgzNTQ3LCA4MzU1NywgODM1NjcsIDgzNTc3LCA4MzU4NywgODM1OTcsIAorICAgIDgzNjA3LCA4MzYxNywgODM2MjYsIDgzNjM1LCA4MzY0NCwgODM2NTQsIDgzNjY0LCA4MzY3NCwgODM2ODQsIDgzNjk0LCAKKyAgICA4MzcwNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODM3MTUsIDgzNzMwLCAKKyAgICA4Mzc0NSwgODM3NTEsIDgzNzU3LCA4Mzc2MywgODM3NjksIDgzNzc1LCA4Mzc4MSwgODM3ODcsIDgzNzkzLCA4MzgwMSwgCisgICAgODM4MDUsIDgzODA4LCAwLCAwLCA4MzgxNiwgODM4MTksIDgzODIyLCA4MzgyNSwgODM4MjgsIDgzODMxLCA4MzgzNCwgCisgICAgODM4MzcsIDgzODQwLCA4Mzg0MywgODM4NDYsIDgzODQ5LCA4Mzg1MiwgODM4NTUsIDgzODU4LCA4Mzg2MSwgODM4NjQsIAorICAgIDgzODcyLCA4Mzg4MSwgODM4OTIsIDgzOTAwLCA4MzkwOCwgODM5MTcsIDgzOTI2LCA4MzkzNywgODM5NDksIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDgzOTU4LCA4Mzk2MywgODM5NjgsIDgzOTc1LCA4Mzk4MiwgODM5ODgsIDgzOTk0LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA4Mzk5OSwgODQwMDksIDg0MDE5LCA4NDAyOSwgODQwMzgsIDg0MDQ5LCA4NDA1OCwgODQwNjcsIAorICAgIDg0MDc3LCA4NDA4NywgODQwOTksIDg0MTExLCA4NDEyMiwgODQxMzMsIDg0MTQ0LCA4NDE1NSwgODQxNjUsIDg0MTc1LCAKKyAgICA4NDE4NSwgODQxOTUsIDg0MjA2LCA4NDIxNywgODQyMjEsIDg0MjI2LCA4NDIzNSwgODQyNDQsIDg0MjQ4LCA4NDI1MiwgCisgICAgODQyNTYsIDg0MjYxLCA4NDI2NiwgODQyNzEsIDg0Mjc2LCA4NDI3OSwgODQyODMsIDAsIDg0Mjg4LCA4NDI5MSwgODQyOTQsIAorICAgIDg0Mjk4LCA4NDMwMiwgODQzMDcsIDg0MzExLCA4NDMxNSwgODQzMjAsIDg0MzI1LCA4NDMzMiwgODQzMzksIDg0MzQyLCAKKyAgICA4NDM0NSwgODQzNDgsIDg0MzUxLCA4NDM1NCwgODQzNTgsIDg0MzYyLCAwLCA4NDM2NiwgODQzNzEsIDg0Mzc1LCA4NDM3OSwgCisgICAgMCwgMCwgMCwgMCwgODQzODQsIDg0Mzg5LCA4NDM5NiwgODQ0MDEsIDg0NDA2LCAwLCA4NDQxMSwgODQ0MTYsIDg0NDIxLCAKKyAgICA4NDQyNiwgODQ0MzEsIDg0NDM2LCA4NDQ0MSwgODQ0NDYsIDg0NDUxLCA4NDQ1NiwgODQ0NjEsIDg0NDY2LCA4NDQ3NSwgCisgICAgODQ0ODQsIDg0NDkyLCA4NDUwMCwgODQ1MDksIDg0NTE4LCA4NDUyNywgODQ1MzYsIDg0NTQ0LCA4NDU1MiwgODQ1NjAsIAorICAgIDg0NTY4LCA4NDU3MywgODQ1NzgsIDg0NTg0LCA4NDU5MCwgODQ1OTYsIDg0NjAyLCA4NDYxMCwgODQ2MTgsIDg0NjI0LCAKKyAgICA4NDYzMCwgODQ2MzYsIDg0NjQyLCA4NDY0OCwgODQ2NTQsIDg0NjYwLCA4NDY2NiwgODQ2NzEsIDg0Njc2LCA4NDY4MSwgCisgICAgODQ2ODYsIDg0NjkxLCA4NDY5NiwgODQ3MDEsIDg0NzA2LCA4NDcxMiwgODQ3MTgsIDg0NzI0LCA4NDczMCwgODQ3MzYsIAorICAgIDg0NzQyLCA4NDc0OCwgODQ3NTQsIDg0NzYwLCA4NDc2NiwgODQ3NzIsIDg0Nzc4LCA4NDc4NCwgODQ3OTAsIDg0Nzk2LCAKKyAgICA4NDgwMiwgODQ4MDgsIDg0ODE0LCA4NDgyMCwgODQ4MjYsIDg0ODMyLCA4NDgzOCwgODQ4NDQsIDg0ODUwLCA4NDg1NiwgCisgICAgODQ4NjIsIDg0ODY4LCA4NDg3NCwgODQ4ODAsIDg0ODg2LCA4NDg5MiwgODQ4OTgsIDg0OTA0LCA4NDkxMCwgODQ5MTYsIAorICAgIDg0OTIyLCA4NDkyOCwgODQ5MzQsIDg0OTQwLCA4NDk0NiwgODQ5NTIsIDg0OTU4LCA4NDk2NCwgODQ5NzAsIDg0OTc2LCAKKyAgICA4NDk4MiwgODQ5ODgsIDg0OTk0LCA4NTAwMCwgODUwMDYsIDg1MDEyLCA4NTAxOCwgODUwMjQsIDg1MDMwLCA4NTAzNiwgCisgICAgODUwNDIsIDg1MDQ4LCA4NTA1NCwgODUwNjAsIDg1MDY2LCA4NTA3MSwgODUwNzYsIDg1MDgxLCA4NTA4NiwgODUwOTIsIAorICAgIDg1MDk4LCA4NTEwNCwgODUxMTAsIDg1MTE2LCA4NTEyMiwgODUxMjgsIDg1MTM0LCA4NTE0MCwgODUxNDYsIDg1MTUzLCAKKyAgICA4NTE2MCwgODUxNjUsIDg1MTcwLCA4NTE3NSwgODUxODAsIDg1MTkyLCA4NTIwNCwgODUyMTUsIDg1MjI2LCA4NTIzOCwgCisgICAgODUyNTAsIDg1MjU4LCAwLCAwLCA4NTI2NiwgMCwgODUyNzQsIDg1Mjc4LCA4NTI4MiwgODUyODUsIDg1Mjg5LCA4NTI5MywgCisgICAgODUyOTYsIDg1Mjk5LCA4NTMwMywgODUzMDcsIDg1MzEwLCA4NTMxMywgODUzMTYsIDg1MzE5LCA4NTMyNCwgODUzMjcsIAorICAgIDg1MzMxLCA4NTMzNCwgODUzMzcsIDg1MzQwLCA4NTM0MywgODUzNDYsIDg1MzQ5LCA4NTM1MiwgODUzNTUsIDg1MzU4LCAKKyAgICA4NTM2MSwgODUzNjQsIDg1MzY4LCA4NTM3MiwgODUzNzYsIDg1MzgwLCA4NTM4NSwgODUzOTAsIDg1Mzk2LCA4NTQwMiwgCisgICAgODU0MDgsIDg1NDEzLCA4NTQxOSwgODU0MjUsIDg1NDMxLCA4NTQzNiwgODU0NDIsIDg1NDQ4LCA4NTQ1MywgODU0NTgsIAorICAgIDg1NDY0LCA4NTQ2OSwgODU0NzUsIDg1NDgxLCA4NTQ4NiwgODU0OTIsIDg1NDk4LCA4NTUwMywgODU1MDksIDg1NTE1LCAKKyAgICA4NTUyMSwgODU1MjcsIDg1NTMzLCA4NTUzNywgODU1NDIsIDg1NTQ2LCA4NTU1MSwgODU1NTUsIDg1NTYwLCA4NTU2NSwgCisgICAgODU1NzEsIDg1NTc3LCA4NTU4MywgODU1ODgsIDg1NTk0LCA4NTYwMCwgODU2MDYsIDg1NjExLCA4NTYxNywgODU2MjMsIAorICAgIDg1NjI4LCA4NTYzMywgODU2MzksIDg1NjQ0LCA4NTY1MCwgODU2NTYsIDg1NjYxLCA4NTY2NywgODU2NzMsIDg1Njc4LCAKKyAgICA4NTY4NCwgODU2OTAsIDg1Njk2LCA4NTcwMiwgODU3MDgsIDg1NzEzLCA4NTcxNywgODU3MjIsIDg1NzI0LCA4NTcyOSwgCisgICAgODU3MzQsIDg1NzQwLCA4NTc0NSwgODU3NTAsIDg1NzU0LCA4NTc2MCwgODU3NjUsIDg1NzcwLCA4NTc3NSwgODU3ODAsIAorICAgIDg1Nzg1LCA4NTc5MCwgODU3OTUsIDg1ODAxLCA4NTgwNywgODU4MTMsIDg1ODIxLCA4NTgyNSwgODU4MjksIDg1ODMzLCAKKyAgICA4NTgzNywgODU4NDEsIDg1ODQ1LCA4NTg1MCwgODU4NTUsIDg1ODYwLCA4NTg2NSwgODU4NjksIDg1ODc0LCA4NTg3OSwgCisgICAgODU4ODQsIDg1ODg5LCA4NTg5NCwgODU4OTksIDg1OTA0LCA4NTkwOSwgODU5MTMsIDg1OTE3LCA4NTkyMiwgODU5MjcsIAorICAgIDg1OTMyLCA4NTkzNywgODU5NDEsIDg1OTQ2LCA4NTk1MSwgODU5NTYsIDg1OTYxLCA4NTk2NSwgODU5NzAsIDg1OTc1LCAKKyAgICA4NTk4MCwgODU5ODUsIDg1OTg5LCA4NTk5NCwgODU5OTksIDg2MDAzLCA4NjAwOCwgODYwMTMsIDg2MDE4LCA4NjAyMywgCisgICAgODYwMjgsIDg2MDMzLCA4NjA0MCwgODYwNDcsIDg2MDUxLCA4NjA1NiwgODYwNjEsIDg2MDY2LCA4NjA3MSwgODYwNzYsIAorICAgIDg2MDgxLCA4NjA4NiwgODYwOTEsIDg2MDk2LCA4NjEwMSwgODYxMDYsIDg2MTExLCA4NjExNiwgODYxMjEsIDg2MTI2LCAKKyAgICA4NjEzMSwgODYxMzYsIDg2MTQxLCA4NjE0NiwgODYxNTEsIDg2MTU2LCA4NjE2MSwgODYxNjYsIDg2MTcxLCA4NjE3NiwgCisgICAgODYxODEsIDg2MTg2LCA4NjE5MSwgODYxOTYsIDAsIDAsIDAsIDg2MjAxLCA4NjIwNSwgODYyMTAsIDg2MjE0LCA4NjIxOSwgCisgICAgODYyMjQsIDAsIDAsIDg2MjI4LCA4NjIzMywgODYyMzgsIDg2MjQyLCA4NjI0NywgODYyNTIsIDAsIDAsIDg2MjU3LCAKKyAgICA4NjI2MiwgODYyNjYsIDg2MjcxLCA4NjI3NiwgODYyODEsIDAsIDAsIDg2Mjg2LCA4NjI5MSwgODYyOTYsIDAsIDAsIDAsIAorICAgIDg2MzAwLCA4NjMwNCwgODYzMDgsIDg2MzEyLCA4NjMxNSwgODYzMTksIDg2MzIzLCAwLCA4NjMyNywgODYzMzMsIDg2MzM2LCAKKyAgICA4NjM0MCwgODYzNDMsIDg2MzQ3LCA4NjM1MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODYzNTUsIDg2MzYxLCAKKyAgICA4NjM2NywgODYzNzMsIDg2Mzc5LCAwLCAwLCA4NjM4MywgODYzODksIDg2Mzk1LCA4NjQwMSwgODY0MDcsIDg2NDEzLCAKKyAgICA4NjQyMCwgODY0MjcsIDg2NDM0LCA4NjQ0MSwgODY0NDgsIDg2NDU1LCAwLCA4NjQ2MiwgODY0NjksIDg2NDc2LCA4NjQ4MiwgCisgICAgODY0ODksIDg2NDk2LCA4NjUwMywgODY1MTAsIDg2NTE2LCA4NjUyMywgODY1MzAsIDg2NTM3LCA4NjU0NCwgODY1NTAsIAorICAgIDg2NTU3LCA4NjU2NCwgODY1NzEsIDg2NTc4LCA4NjU4NCwgODY1OTEsIDg2NTk4LCA4NjYwNSwgODY2MTIsIDg2NjE5LCAKKyAgICA4NjYyNiwgODY2MzMsIDAsIDg2NjQwLCA4NjY0NiwgODY2NTMsIDg2NjYwLCA4NjY2NywgODY2NzQsIDg2NjgwLCA4NjY4NywgCisgICAgODY2OTQsIDg2NzAxLCA4NjcwOCwgODY3MTUsIDg2NzIyLCA4NjcyOSwgODY3MzUsIDg2NzQyLCA4Njc0OSwgODY3NTYsIAorICAgIDg2NzYzLCAwLCA4Njc3MCwgODY3NzcsIDAsIDg2Nzg0LCA4Njc5MSwgODY3OTgsIDg2ODA1LCA4NjgxMiwgODY4MTksIAorICAgIDg2ODI2LCA4NjgzMywgODY4NDAsIDg2ODQ3LCA4Njg1NCwgODY4NjEsIDg2ODY4LCA4Njg3NSwgODY4ODIsIDAsIDAsIAorICAgIDg2ODg4LCA4Njg5MywgODY4OTgsIDg2OTAzLCA4NjkwOCwgODY5MTMsIDg2OTE4LCA4NjkyMywgODY5MjgsIDg2OTMzLCAKKyAgICA4NjkzOCwgODY5NDMsIDg2OTQ4LCA4Njk1MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODY5NTgsIDg2OTY1LCAKKyAgICA4Njk3MiwgODY5NzksIDg2OTg2LCA4Njk5MywgODcwMDAsIDg3MDA3LCA4NzAxNCwgODcwMjEsIDg3MDI4LCA4NzAzNSwgCisgICAgODcwNDIsIDg3MDQ5LCA4NzA1NiwgODcwNjMsIDg3MDcwLCA4NzA3NywgODcwODQsIDg3MDkxLCA4NzA5OSwgODcxMDcsIAorICAgIDg3MTE0LCA4NzEyMSwgODcxMjYsIDg3MTM0LCA4NzE0MiwgODcxNDksIDg3MTU2LCA4NzE2MSwgODcxNjgsIDg3MTczLCAKKyAgICA4NzE3OCwgODcxODUsIDg3MTkwLCA4NzE5NSwgODcyMDAsIDg3MjA4LCA4NzIxMywgODcyMTgsIDg3MjI1LCA4NzIzMCwgCisgICAgODcyMzUsIDg3MjQyLCA4NzI0OSwgODcyNTQsIDg3MjU5LCA4NzI2NCwgODcyNjksIDg3Mjc0LCA4NzI3OSwgODcyODQsIAorICAgIDg3Mjg5LCA4NzI5NCwgODczMDEsIDg3MzA2LCA4NzMxMywgODczMTgsIDg3MzIzLCA4NzMyOCwgODczMzMsIDg3MzM4LCAKKyAgICA4NzM0MywgODczNDgsIDg3MzUzLCA4NzM1OCwgODczNjMsIDg3MzY4LCA4NzM3NSwgODczODIsIDg3Mzg5LCA4NzM5NiwgCisgICAgODc0MDIsIDg3NDA3LCA4NzQxNCwgODc0MTksIDg3NDI0LCA4NzQzMywgODc0NDAsIDg3NDQ5LCA4NzQ1NiwgODc0NjEsIAorICAgIDg3NDY2LCA4NzQ3NCwgODc0NzksIDg3NDg0LCA4NzQ4OSwgODc0OTQsIDg3NDk5LCA4NzUwNiwgODc1MTEsIDg3NTE2LCAKKyAgICA4NzUyMSwgODc1MjYsIDg3NTMxLCA4NzUzOCwgODc1NDUsIDg3NTUyLCA4NzU1OSwgODc1NjYsIDg3NTczLCA4NzU4MCwgCisgICAgODc1ODcsIDg3NTk0LCA4NzYwMSwgODc2MDgsIDg3NjE1LCA4NzYyMiwgODc2MjksIDg3NjM2LCA4NzY0MywgODc2NTAsIAorICAgIDg3NjU3LCA4NzY2NCwgODc2NzEsIDg3Njc4LCA4NzY4NSwgODc2OTIsIDg3Njk5LCA4NzcwNiwgODc3MTMsIDg3NzIwLCAKKyAgICA4NzcyNywgMCwgMCwgMCwgMCwgMCwgODc3MzQsIDg3NzQyLCA4Nzc1MCwgMCwgMCwgMCwgMCwgODc3NTUsIDg3NzU5LCAKKyAgICA4Nzc2MywgODc3NjcsIDg3NzcxLCA4Nzc3NSwgODc3NzksIDg3NzgzLCA4Nzc4NywgODc3OTEsIDg3Nzk2LCA4NzgwMSwgCisgICAgODc4MDYsIDg3ODExLCA4NzgxNiwgODc4MjEsIDg3ODI2LCA4NzgzMSwgODc4MzYsIDg3ODQyLCA4Nzg0OCwgODc4NTQsIAorICAgIDg3ODYxLCA4Nzg2OCwgODc4NzUsIDg3ODgyLCA4Nzg4OSwgODc4OTYsIDg3OTAyLCA4NzkwOCwgODc5MTQsIDg3OTIxLCAKKyAgICA4NzkyOCwgODc5MzUsIDg3OTQyLCA4Nzk0OSwgODc5NTYsIDg3OTYzLCA4Nzk3MCwgODc5NzcsIDg3OTg0LCA4Nzk5MSwgCisgICAgODc5OTgsIDg4MDA1LCA4ODAxMiwgMCwgMCwgMCwgODgwMTksIDg4MDI3LCA4ODAzNSwgODgwNDMsIDg4MDUxLCA4ODA1OSwgCisgICAgODgwNjksIDg4MDc5LCA4ODA4NywgODgwOTUsIDg4MTAzLCA4ODExMSwgODgxMTksIDg4MTI1LCA4ODEzMiwgODgxNDEsIAorICAgIDg4MTUwLCA4ODE1OSwgODgxNjgsIDg4MTc3LCA4ODE4NiwgODgxOTYsIDg4MjA3LCA4ODIxNywgODgyMjgsIDg4MjM3LCAKKyAgICA4ODI0NiwgODgyNTUsIDg4MjY1LCA4ODI3NiwgODgyODYsIDg4Mjk3LCA4ODMwOCwgODgzMTcsIDg4MzI1LCA4ODMzMSwgCisgICAgODgzMzcsIDg4MzQzLCA4ODM0OSwgODgzNTcsIDg4MzY1LCA4ODM3MSwgODgzNzgsIDg4Mzg4LCA4ODM5NSwgODg0MDIsIAorICAgIDg4NDA5LCA4ODQxNiwgODg0MjMsIDg4NDMzLCA4ODQ0MCwgODg0NDcsIDg4NDU1LCA4ODQ2MywgODg0NzIsIDg4NDgxLCAKKyAgICA4ODQ5MCwgODg0OTksIDg4NTA4LCA4ODUxNiwgODg1MjUsIDg4NTM0LCA4ODU0MywgODg1NDcsIDg4NTU0LCA4ODU1OSwgCisgICAgODg1NjQsIDg4NTY4LCA4ODU3MiwgODg1NzYsIDg4NTgwLCA4ODU4NSwgODg1OTAsIDg4NTk2LCA4ODYwMiwgODg2MDYsIAorICAgIDg4NjEyLCA4ODYxNiwgODg2MjAsIDg4NjI0LCA4ODYyOCwgODg2MzIsIDg4NjM2LCA4ODY0MiwgMCwgMCwgMCwgMCwgMCwgCisgICAgODg2NDYsIDg4NjUxLCA4ODY1NiwgODg2NjEsIDg4NjY2LCA4ODY3MywgODg2NzgsIDg4NjgzLCA4ODY4OCwgODg2OTMsIAorICAgIDg4Njk4LCA4ODcwMywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNzczOTQsIDc3Mzk5LCA3NzQwNCwgNzc0MDksIDc3NDE0LCAKLSAgICA3NzQxOSwgNzc0MjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDc3NDMyLCA3NzQzOSwgNzc0NDYsIAotICAgIDc3NDUzLCA3NzQ2MCwgMCwgMCwgMCwgMCwgMCwgNzc0NjcsIDc3NDc0LCA3NzQ4MSwgNzc0OTEsIDc3NDk3LCA3NzUwMywgCi0gICAgNzc1MDksIDc3NTE1LCA3NzUyMSwgNzc1MjcsIDc3NTM0LCA3NzU0MCwgNzc1NDYsIDc3NTUyLCA3NzU2MSwgNzc1NzAsIAotICAgIDc3NTgyLCA3NzU5NCwgNzc2MDAsIDc3NjA2LCA3NzYxMiwgNzc2MTksIDc3NjI2LCA3NzYzMywgNzc2NDAsIDc3NjQ3LCAwLCAKLSAgICA3NzY1NCwgNzc2NjEsIDc3NjY4LCA3NzY3NiwgNzc2ODMsIDAsIDc3NjkwLCAwLCA3NzY5NywgNzc3MDQsIDAsIDc3NzExLCAKLSAgICA3NzcxOSwgMCwgNzc3MjYsIDc3NzMzLCA3Nzc0MCwgNzc3NDcsIDc3NzU0LCA3Nzc2MSwgNzc3NjgsIDc3Nzc1LCA3Nzc4MiwgCi0gICAgNzc3ODksIDc3Nzk0LCA3NzgwMSwgNzc4MDgsIDc3ODE0LCA3NzgyMCwgNzc4MjYsIDc3ODMyLCA3NzgzOCwgNzc4NDQsIAotICAgIDc3ODUwLCA3Nzg1NiwgNzc4NjIsIDc3ODY4LCA3Nzg3NCwgNzc4ODAsIDc3ODg2LCA3Nzg5MiwgNzc4OTgsIDc3OTA0LCAKLSAgICA3NzkxMCwgNzc5MTYsIDc3OTIyLCA3NzkyOCwgNzc5MzQsIDc3OTQwLCA3Nzk0NiwgNzc5NTIsIDc3OTU4LCA3Nzk2NCwgCi0gICAgNzc5NzAsIDc3OTc2LCA3Nzk4MiwgNzc5ODgsIDc3OTk0LCA3ODAwMCwgNzgwMDYsIDc4MDEyLCA3ODAxOCwgNzgwMjQsIAotICAgIDc4MDMwLCA3ODAzNiwgNzgwNDIsIDc4MDQ4LCA3ODA1NCwgNzgwNjAsIDc4MDY2LCA3ODA3MiwgNzgwNzgsIDc4MDg0LCAKLSAgICA3ODA5MCwgNzgwOTYsIDc4MTAyLCA3ODEwOCwgNzgxMTQsIDc4MTIwLCA3ODEyNiwgNzgxMzIsIDc4MTM4LCA3ODE0NCwgCi0gICAgNzgxNTAsIDc4MTU2LCA3ODE2MiwgNzgxNjgsIDc4MTc0LCA3ODE4MCwgNzgxODYsIDc4MTkyLCA3ODE5OCwgNzgyMDQsIAotICAgIDc4MjEwLCA3ODIxNiwgNzgyMjIsIDc4MjI4LCA3ODIzNCwgNzgyNDAsIDc4MjQ2LCA3ODI1MiwgNzgyNTgsIDc4MjY0LCAKLSAgICA3ODI3MiwgNzgyODAsIDc4Mjg2LCA3ODI5MiwgNzgyOTgsIDc4MzA0LCA3ODMxMywgNzgzMjIsIDc4MzMwLCA3ODMzOCwgCi0gICAgNzgzNDYsIDc4MzU0LCA3ODM2MiwgNzgzNzAsIDc4Mzc4LCA3ODM4NiwgNzgzOTMsIDc4NDAwLCA3ODQxMCwgNzg0MjAsIAotICAgIDc4NDI0LCA3ODQyOCwgNzg0MzMsIDc4NDM4LCA3ODQ0MywgNzg0NDgsIDc4NDU3LCA3ODQ2NiwgNzg0NzIsIDc4NDc4LCAKLSAgICA3ODQ4NSwgNzg0OTIsIDc4NDk5LCA3ODUwMywgNzg1MDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDc4NTE1LCA3ODUyMSwgNzg1MjcsIDc4NTMzLCA3ODUzOSwgNzg1NDQsIDc4NTQ5LCA3ODU1NSwgCi0gICAgNzg1NjEsIDc4NTY3LCA3ODU3MywgNzg1ODEsIDc4NTg3LCA3ODU5MywgNzg2MDEsIDc4NjA5LCA3ODYxNywgNzg2MjUsIAotICAgIDc4NjMwLCA3ODYzNSwgNzg2NDAsIDc4NjQ1LCA3ODY1NywgNzg2NjksIDc4Njc5LCA3ODY4OSwgNzg3MDAsIDc4NzExLCAKLSAgICA3ODcyMiwgNzg3MzMsIDc4NzQzLCA3ODc1MywgNzg3NjQsIDc4Nzc1LCA3ODc4NiwgNzg3OTcsIDc4ODA3LCA3ODgxNywgCi0gICAgNzg4MjcsIDc4ODQyLCA3ODg1NywgNzg4NzIsIDc4ODc5LCA3ODg4NiwgNzg4OTMsIDc4OTAwLCA3ODkxMCwgNzg5MjAsIAotICAgIDc4OTMwLCA3ODk0MSwgNzg5NTEsIDc4OTU5LCA3ODk2NywgNzg5NzYsIDc4OTg0LCA3ODk5MywgNzkwMDEsIDc5MDA5LCAKLSAgICA3OTAxNywgNzkwMjYsIDc5MDM0LCA3OTA0MywgNzkwNTEsIDc5MDU5LCA3OTA2NywgNzkwNzYsIDc5MDg0LCA3OTA5MSwgCi0gICAgNzkwOTgsIDc5MTA1LCA3OTExMiwgNzkxMjAsIDc5MTI4LCA3OTEzNiwgNzkxNDQsIDc5MTUyLCA3OTE2MSwgNzkxNjksIAotICAgIDc5MTc3LCA3OTE4NSwgNzkxOTMsIDc5MjAxLCA3OTIxMCwgNzkyMTgsIDc5MjI2LCA3OTIzNCwgNzkyNDIsIDc5MjUwLCAKLSAgICA3OTI1OCwgNzkyNjYsIDc5Mjc0LCA3OTI4MiwgNzkyOTAsIDc5Mjk5LCA3OTMwNywgNzkzMTYsIDc5MzI0LCA3OTMzMiwgCi0gICAgNzkzNDAsIDc5MzQ5LCA3OTM1NywgNzkzNjUsIDc5MzczLCA3OTM4MSwgNzkzOTAsIDc5Mzk5LCA3OTQwNywgNzk0MTYsIAotICAgIDc5NDI0LCA3OTQzMiwgNzk0NDAsIDc5NDQ5LCA3OTQ1NywgNzk0NjYsIDc5NDc0LCA3OTQ4MSwgNzk0ODgsIDc5NDk2LCAKLSAgICA3OTUwMywgNzk1MTEsIDc5NTE4LCA3OTUyNiwgNzk1MzQsIDc5NTQzLCA3OTU1MSwgNzk1NjAsIDc5NTY4LCA3OTU3NiwgCi0gICAgNzk1ODQsIDc5NTkzLCA3OTYwMSwgNzk2MDgsIDc5NjE1LCA3OTYyMywgNzk2MzAsIDc5NjM4LCA3OTY0NSwgNzk2NTUsIAotICAgIDc5NjY1LCA3OTY3NSwgNzk2ODQsIDc5NjkzLCA3OTcwMiwgNzk3MTEsIDc5NzIwLCA3OTczMCwgNzk3NDEsIDc5NzUyLCAKLSAgICA3OTc2MiwgNzk3NzMsIDc5Nzg0LCA3OTc5NCwgNzk4MDMsIDc5ODEyLCA3OTgyMCwgNzk4MjksIDc5ODM4LCA3OTg0NiwgCi0gICAgNzk4NTUsIDc5ODY0LCA3OTg3MiwgNzk4ODEsIDc5ODkwLCA3OTg5OCwgNzk5MDcsIDc5OTE2LCA3OTkyNCwgNzk5MzMsIAotICAgIDc5OTQyLCA3OTk1MCwgNzk5NTksIDc5OTY3LCA3OTk3NiwgNzk5ODQsIDc5OTkyLCA4MDAwMSwgODAwMDksIDgwMDE4LCAKLSAgICA4MDAyNiwgODAwMzQsIDgwMDQzLCA4MDA1MSwgODAwNTgsIDgwMDY1LCA4MDA3NCwgODAwODMsIDgwMDkxLCA4MDEwMCwgCi0gICAgODAxMDksIDgwMTE3LCA4MDEyNywgODAxMzUsIDgwMTQzLCA4MDE1MCwgODAxNTgsIDgwMTY2LCA4MDE3MywgODAxODMsIAotICAgIDgwMTkzLCA4MDIwNCwgODAyMTQsIDgwMjI1LCA4MDIzMywgODAyNDEsIDgwMjUwLCA4MDI1OCwgODAyNjcsIDgwMjc1LCAKLSAgICA4MDI4MywgODAyOTIsIDgwMzAwLCA4MDMwOSwgODAzMTcsIDgwMzI0LCA4MDMzMSwgODAzMzgsIDgwMzQ1LCA4MDM1MywgCi0gICAgODAzNjEsIDgwMzY5LCA4MDM3NywgODAzODYsIDgwMzk0LCA4MDQwMiwgODA0MTEsIDgwNDE5LCA4MDQyNywgODA0MzUsIAotICAgIDgwNDQ0LCA4MDQ1MiwgODA0NjAsIDgwNDY4LCA4MDQ3NiwgODA0ODQsIDgwNDkyLCA4MDUwMCwgODA1MDgsIDgwNTE2LCAKLSAgICA4MDUyNSwgODA1MzMsIDgwNTQxLCA4MDU0OSwgODA1NTcsIDgwNTY1LCA4MDU3NCwgODA1ODMsIDgwNTkxLCA4MDU5OSwgCi0gICAgODA2MDcsIDgwNjE2LCA4MDYyNCwgODA2MzMsIDgwNjQwLCA4MDY0NywgODA2NTUsIDgwNjYyLCA4MDY3MCwgODA2NzgsIAotICAgIDgwNjg3LCA4MDY5NSwgODA3MDQsIDgwNzEyLCA4MDcyMCwgODA3MzAsIDgwNzM3LCA4MDc0NCwgODA3NTIsIDgwNzU5LCAKLSAgICA4MDc2NywgODA3NzcsIDgwNzg4LCA4MDc5NiwgODA4MDUsIDgwODEzLCA4MDgyMiwgODA4MzAsIDgwODM5LCA4MDg0NywgCi0gICAgODA4NTYsIDgwODY0LCA4MDg3MywgODA4ODIsIDgwODkwLCA4MDg5OCwgODA5MDYsIDgwOTE1LCA4MDkyMiwgODA5MzAsIAotICAgIDgwOTM5LCA4MDk0OCwgODA5NTcsIDgwOTY2LCA4MDk3NCwgODA5ODMsIDgwOTkxLCA4MTAwMCwgODEwMDgsIDgxMDE3LCAKLSAgICA4MTAyNSwgODEwMzQsIDgxMDQyLCA4MTA1MCwgODEwNTcsIDgxMDY1LCA4MTA3MiwgODEwODEsIDgxMDg5LCA4MTA5OCwgCi0gICAgODExMDYsIDgxMTE1LCA4MTEyMywgODExMzEsIDgxMTM5LCA4MTE0OCwgODExNTYsIDgxMTY1LCA4MTE3NCwgODExODMsIAotICAgIDgxMTkyLCA4MTIwMSwgODEyMDksIDgxMjE4LCA4MTIyNiwgODEyMzUsIDgxMjQzLCA4MTI1MiwgODEyNjAsIDgxMjY5LCAKLSAgICA4MTI3NywgODEyODUsIDgxMjkyLCA4MTMwMCwgODEzMDcsIDgxMzE2LCA4MTMyNCwgODEzMzMsIDgxMzQxLCA4MTM1MCwgCi0gICAgODEzNTgsIDgxMzY2LCA4MTM3NCwgODEzODMsIDgxMzkxLCA4MTQwMCwgODE0MDksIDgxNDE4LCA4MTQyNywgODE0MzUsIAotICAgIDgxNDQzLCA4MTQ1MiwgODE0NjAsIDgxNDY5LCA4MTQ3OCwgODE0ODYsIDgxNDk0LCA4MTUwMiwgODE1MTEsIDgxNTE5LCAKLSAgICA4MTUyNywgODE1MzYsIDgxNTQ0LCA4MTU1MiwgODE1NjAsIDgxNTY4LCA4MTU3MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODE1NzgsIDgxNTg4LCA4MTU5OCwgODE2MDgsIDgxNjE4LCA4MTYyOSwgODE2MzksIAotICAgIDgxNjQ5LCA4MTY2MCwgODE2NjksIDgxNjc4LCA4MTY4NywgODE2OTcsIDgxNzA3LCA4MTcxNywgODE3MjgsIDgxNzM4LCAKLSAgICA4MTc0OCwgODE3NTgsIDgxNzY4LCA4MTc3OCwgODE3ODgsIDgxNzk4LCA4MTgwOCwgODE4MTgsIDgxODI4LCA4MTgzOCwgCi0gICAgODE4NDksIDgxODYwLCA4MTg3MCwgODE4ODAsIDgxODkxLCA4MTkwMiwgODE5MTMsIDgxOTIzLCA4MTkzMywgODE5NDMsIAotICAgIDgxOTUzLCA4MTk2MywgODE5NzMsIDgxOTgzLCA4MTk5NCwgODIwMDQsIDgyMDE0LCA4MjAyNSwgODIwMzYsIDgyMDQ3LCAKLSAgICA4MjA1NywgODIwNjcsIDgyMDc3LCA4MjA4NywgODIwOTgsIDgyMTA4LCA4MjExOCwgODIxMjksIDgyMTQwLCA4MjE1MCwgCi0gICAgODIxNjAsIDgyMTY5LCA4MjE3OCwgODIxODcsIDgyMTk2LCA4MjIwNSwgODIyMTUsIDAsIDAsIDgyMjI1LCA4MjIzNSwgCi0gICAgODIyNDUsIDgyMjU1LCA4MjI2NSwgODIyNzYsIDgyMjg2LCA4MjI5NiwgODIzMDcsIDgyMzE3LCA4MjMyOCwgODIzMzcsIAotICAgIDgyMzQ2LCA4MjM1NywgODIzNjcsIDgyMzc4LCA4MjM4OSwgODI0MDEsIDgyNDExLCA4MjQyMiwgODI0MzEsIDgyNDQxLCAKLSAgICA4MjQ1MSwgODI0NjMsIDgyNDczLCA4MjQ4MywgODI0OTMsIDgyNTAzLCA4MjUxMywgODI1MjIsIDgyNTMxLCA4MjU0MCwgCi0gICAgODI1NDksIDgyNTU5LCA4MjU2OSwgODI1NzksIDgyNTg5LCA4MjU5OSwgODI2MDksIDgyNjE5LCA4MjYyOSwgODI2MzksIAotICAgIDgyNjQ5LCA4MjY1OSwgODI2NjksIDgyNjc4LCA4MjY4NywgODI2OTYsIDgyNzA2LCA4MjcxNiwgODI3MjYsIDgyNzM2LCAKLSAgICA4Mjc0NiwgODI3NTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDgyNzY3LCA4Mjc4MiwgCi0gICAgODI3OTcsIDgyODAzLCA4MjgwOSwgODI4MTUsIDgyODIxLCA4MjgyNywgODI4MzMsIDgyODM5LCA4Mjg0NSwgODI4NTMsIAotICAgIDgyODU3LCA4Mjg2MCwgMCwgMCwgODI4NjgsIDgyODcxLCA4Mjg3NCwgODI4NzcsIDgyODgwLCA4Mjg4MywgODI4ODYsIAotICAgIDgyODg5LCA4Mjg5MiwgODI4OTUsIDgyODk4LCA4MjkwMSwgODI5MDQsIDgyOTA3LCA4MjkxMCwgODI5MTMsIDgyOTE2LCAKLSAgICA4MjkyNCwgODI5MzMsIDgyOTQ0LCA4Mjk1MiwgODI5NjAsIDgyOTY5LCA4Mjk3OCwgODI5ODksIDgzMDAxLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCA4MzAxMCwgODMwMTUsIDgzMDIwLCA4MzAyNywgODMwMzQsIDgzMDQwLCA4MzA0NiwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgODMwNTEsIDgzMDYxLCA4MzA3MSwgODMwODEsIDgzMDkwLCA4MzEwMSwgODMxMTAsIDgzMTE5LCAKLSAgICA4MzEyOSwgODMxMzksIDgzMTUxLCA4MzE2MywgODMxNzQsIDgzMTg1LCA4MzE5NiwgODMyMDcsIDgzMjE3LCA4MzIyNywgCi0gICAgODMyMzcsIDgzMjQ3LCA4MzI1OCwgODMyNjksIDgzMjczLCA4MzI3OCwgODMyODcsIDgzMjk2LCA4MzMwMCwgODMzMDQsIAotICAgIDgzMzA4LCA4MzMxMywgODMzMTgsIDgzMzIzLCA4MzMyOCwgODMzMzEsIDgzMzM1LCAwLCA4MzM0MCwgODMzNDMsIDgzMzQ2LCAKLSAgICA4MzM1MCwgODMzNTQsIDgzMzU5LCA4MzM2MywgODMzNjcsIDgzMzcyLCA4MzM3NywgODMzODQsIDgzMzkxLCA4MzM5NCwgCi0gICAgODMzOTcsIDgzNDAwLCA4MzQwMywgODM0MDYsIDgzNDEwLCA4MzQxNCwgMCwgODM0MTgsIDgzNDIzLCA4MzQyNywgODM0MzEsIAotICAgIDAsIDAsIDAsIDAsIDgzNDM2LCA4MzQ0MSwgODM0NDgsIDgzNDUzLCA4MzQ1OCwgMCwgODM0NjMsIDgzNDY4LCA4MzQ3MywgCi0gICAgODM0NzgsIDgzNDgzLCA4MzQ4OCwgODM0OTMsIDgzNDk4LCA4MzUwMywgODM1MDgsIDgzNTEzLCA4MzUxOCwgODM1MjcsIAotICAgIDgzNTM2LCA4MzU0NCwgODM1NTIsIDgzNTYxLCA4MzU3MCwgODM1NzksIDgzNTg4LCA4MzU5NiwgODM2MDQsIDgzNjEyLCAKLSAgICA4MzYyMCwgODM2MjUsIDgzNjMwLCA4MzYzNiwgODM2NDIsIDgzNjQ4LCA4MzY1NCwgODM2NjIsIDgzNjcwLCA4MzY3NiwgCi0gICAgODM2ODIsIDgzNjg4LCA4MzY5NCwgODM3MDAsIDgzNzA2LCA4MzcxMiwgODM3MTgsIDgzNzIzLCA4MzcyOCwgODM3MzMsIAotICAgIDgzNzM4LCA4Mzc0MywgODM3NDgsIDgzNzUzLCA4Mzc1OCwgODM3NjQsIDgzNzcwLCA4Mzc3NiwgODM3ODIsIDgzNzg4LCAKLSAgICA4Mzc5NCwgODM4MDAsIDgzODA2LCA4MzgxMiwgODM4MTgsIDgzODI0LCA4MzgzMCwgODM4MzYsIDgzODQyLCA4Mzg0OCwgCi0gICAgODM4NTQsIDgzODYwLCA4Mzg2NiwgODM4NzIsIDgzODc4LCA4Mzg4NCwgODM4OTAsIDgzODk2LCA4MzkwMiwgODM5MDgsIAotICAgIDgzOTE0LCA4MzkyMCwgODM5MjYsIDgzOTMyLCA4MzkzOCwgODM5NDQsIDgzOTUwLCA4Mzk1NiwgODM5NjIsIDgzOTY4LCAKLSAgICA4Mzk3NCwgODM5ODAsIDgzOTg2LCA4Mzk5MiwgODM5OTgsIDg0MDA0LCA4NDAxMCwgODQwMTYsIDg0MDIyLCA4NDAyOCwgCi0gICAgODQwMzQsIDg0MDQwLCA4NDA0NiwgODQwNTIsIDg0MDU4LCA4NDA2NCwgODQwNzAsIDg0MDc2LCA4NDA4MiwgODQwODgsIAotICAgIDg0MDk0LCA4NDEwMCwgODQxMDYsIDg0MTEyLCA4NDExOCwgODQxMjMsIDg0MTI4LCA4NDEzMywgODQxMzgsIDg0MTQ0LCAKLSAgICA4NDE1MCwgODQxNTYsIDg0MTYyLCA4NDE2OCwgODQxNzQsIDg0MTgwLCA4NDE4NiwgODQxOTIsIDg0MTk4LCA4NDIwNCwgCi0gICAgODQyMTAsIDg0MjE1LCA4NDIyMCwgODQyMjUsIDg0MjMwLCA4NDI0MiwgODQyNTQsIDg0MjY1LCA4NDI3NiwgODQyODgsIAotICAgIDg0MzAwLCA4NDMwOCwgMCwgMCwgODQzMTYsIDAsIDg0MzI0LCA4NDMyOCwgODQzMzIsIDg0MzM1LCA4NDMzOSwgODQzNDMsIAotICAgIDg0MzQ2LCA4NDM0OSwgODQzNTMsIDg0MzU3LCA4NDM2MCwgODQzNjMsIDg0MzY2LCA4NDM2OSwgODQzNzQsIDg0Mzc3LCAKLSAgICA4NDM4MSwgODQzODQsIDg0Mzg3LCA4NDM5MCwgODQzOTMsIDg0Mzk2LCA4NDM5OSwgODQ0MDIsIDg0NDA1LCA4NDQwOCwgCi0gICAgODQ0MTEsIDg0NDE0LCA4NDQxOCwgODQ0MjIsIDg0NDI2LCA4NDQzMCwgODQ0MzUsIDg0NDQwLCA4NDQ0NiwgODQ0NTIsIAotICAgIDg0NDU4LCA4NDQ2MywgODQ0NjksIDg0NDc1LCA4NDQ4MSwgODQ0ODYsIDg0NDkyLCA4NDQ5OCwgODQ1MDMsIDg0NTA4LCAKLSAgICA4NDUxMywgODQ1MTgsIDg0NTI0LCA4NDUzMCwgODQ1MzUsIDg0NTQwLCA4NDU0NiwgODQ1NTEsIDg0NTU3LCA4NDU2MywgCi0gICAgODQ1NjksIDg0NTc1LCA4NDU4MSwgODQ1ODUsIDg0NTkwLCA4NDU5NCwgODQ1OTksIDg0NjAzLCA4NDYwOCwgODQ2MTMsIAotICAgIDg0NjE5LCA4NDYyNSwgODQ2MzEsIDg0NjM2LCA4NDY0MiwgODQ2NDgsIDg0NjU0LCA4NDY1OSwgODQ2NjUsIDg0NjcxLCAKLSAgICA4NDY3NiwgODQ2ODEsIDg0Njg2LCA4NDY5MSwgODQ2OTcsIDg0NzAzLCA4NDcwOCwgODQ3MTMsIDg0NzE5LCA4NDcyNCwgCi0gICAgODQ3MzAsIDg0NzM2LCA4NDc0MiwgODQ3NDgsIDg0NzU0LCA4NDc1OSwgODQ3NjMsIDg0NzY4LCA4NDc3MSwgODQ3NzYsIAotICAgIDg0NzgxLCA4NDc4NywgODQ3OTIsIDg0Nzk3LCA4NDgwMSwgODQ4MDcsIDg0ODEyLCA4NDgxNywgODQ4MjIsIDg0ODI3LCAKLSAgICA4NDgzMiwgODQ4MzcsIDg0ODQyLCA4NDg0OCwgODQ4NTQsIDg0ODYwLCA4NDg2OCwgODQ4NzIsIDg0ODc2LCA4NDg4MCwgCi0gICAgODQ4ODQsIDg0ODg4LCA4NDg5MiwgODQ4OTcsIDg0OTAyLCA4NDkwNywgODQ5MTIsIDg0OTE3LCA4NDkyMiwgODQ5MjcsIAotICAgIDg0OTMyLCA4NDkzNywgODQ5NDIsIDg0OTQ3LCA4NDk1MiwgODQ5NTcsIDg0OTYxLCA4NDk2NSwgODQ5NzAsIDg0OTc1LCAKLSAgICA4NDk4MCwgODQ5ODUsIDg0OTg5LCA4NDk5NCwgODQ5OTksIDg1MDA0LCA4NTAwOSwgODUwMTMsIDg1MDE4LCA4NTAyMywgCi0gICAgODUwMjgsIDg1MDMzLCA4NTAzNywgODUwNDIsIDg1MDQ3LCA4NTA1MSwgODUwNTYsIDg1MDYxLCA4NTA2NiwgODUwNzEsIAotICAgIDg1MDc2LCA4NTA4MCwgODUwODcsIDg1MDk0LCA4NTA5OCwgODUxMDMsIDg1MTA4LCA4NTExMywgODUxMTgsIDg1MTIzLCAKLSAgICA4NTEyOCwgODUxMzMsIDg1MTM4LCA4NTE0MywgODUxNDgsIDg1MTUzLCA4NTE1OCwgODUxNjMsIDg1MTY4LCA4NTE3MywgCi0gICAgODUxNzgsIDg1MTgzLCA4NTE4OCwgODUxOTMsIDg1MTk4LCA4NTIwMywgODUyMDgsIDg1MjEzLCA4NTIxOCwgODUyMjMsIAotICAgIDg1MjI4LCA4NTIzMywgODUyMzgsIDg1MjQzLCAwLCAwLCAwLCA4NTI0OCwgODUyNTIsIDg1MjU3LCA4NTI2MSwgODUyNjYsIAotICAgIDg1MjcxLCAwLCAwLCA4NTI3NSwgODUyODAsIDg1Mjg1LCA4NTI4OSwgODUyOTQsIDg1Mjk5LCAwLCAwLCA4NTMwNCwgCi0gICAgODUzMDksIDg1MzEzLCA4NTMxOCwgODUzMjMsIDg1MzI4LCAwLCAwLCA4NTMzMywgODUzMzgsIDg1MzQzLCAwLCAwLCAwLCAKLSAgICA4NTM0NywgODUzNTEsIDg1MzU1LCA4NTM1OSwgODUzNjIsIDg1MzY2LCA4NTM3MCwgMCwgODUzNzQsIDg1MzgwLCA4NTM4MywgCi0gICAgODUzODcsIDg1MzkwLCA4NTM5NCwgODUzOTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg1NDAyLCA4NTQwOCwgCi0gICAgODU0MTQsIDg1NDIwLCA4NTQyNiwgMCwgMCwgODU0MzAsIDg1NDM2LCA4NTQ0MiwgODU0NDgsIDg1NDU0LCA4NTQ2MCwgCi0gICAgODU0NjcsIDg1NDc0LCA4NTQ4MSwgODU0ODgsIDg1NDk1LCA4NTUwMiwgMCwgODU1MDksIDg1NTE2LCA4NTUyMywgODU1MjksIAotICAgIDg1NTM2LCA4NTU0MywgODU1NTAsIDg1NTU3LCA4NTU2MywgODU1NzAsIDg1NTc3LCA4NTU4NCwgODU1OTEsIDg1NTk3LCAKLSAgICA4NTYwNCwgODU2MTEsIDg1NjE4LCA4NTYyNSwgODU2MzEsIDg1NjM4LCA4NTY0NSwgODU2NTIsIDg1NjU5LCA4NTY2NiwgCi0gICAgODU2NzMsIDg1NjgwLCAwLCA4NTY4NywgODU2OTMsIDg1NzAwLCA4NTcwNywgODU3MTQsIDg1NzIxLCA4NTcyOCwgODU3MzUsIAotICAgIDg1NzQyLCA4NTc0OSwgODU3NTYsIDg1NzYzLCA4NTc3MCwgODU3NzcsIDg1NzgzLCA4NTc5MCwgODU3OTcsIDg1ODA0LCAKLSAgICA4NTgxMSwgMCwgODU4MTgsIDg1ODI1LCAwLCA4NTgzMiwgODU4MzksIDg1ODQ2LCA4NTg1MywgODU4NjAsIDg1ODY3LCAKLSAgICA4NTg3NCwgODU4ODEsIDg1ODg4LCA4NTg5NSwgODU5MDIsIDg1OTA5LCA4NTkxNiwgODU5MjMsIDg1OTMwLCAwLCAwLCAKLSAgICA4NTkzNiwgODU5NDEsIDg1OTQ2LCA4NTk1MSwgODU5NTYsIDg1OTYxLCA4NTk2NiwgODU5NzEsIDg1OTc2LCA4NTk4MSwgCi0gICAgODU5ODYsIDg1OTkxLCA4NTk5NiwgODYwMDEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg2MDA2LCA4NjAxMywgCi0gICAgODYwMjAsIDg2MDI3LCA4NjAzNCwgODYwNDEsIDg2MDQ4LCA4NjA1NSwgODYwNjIsIDg2MDY5LCA4NjA3NiwgODYwODMsIAotICAgIDg2MDkwLCA4NjA5NywgODYxMDQsIDg2MTExLCA4NjExOCwgODYxMjUsIDg2MTMyLCA4NjEzOSwgODYxNDcsIDg2MTU1LCAKLSAgICA4NjE2MiwgODYxNjksIDg2MTc0LCA4NjE4MiwgODYxOTAsIDg2MTk3LCA4NjIwNCwgODYyMDksIDg2MjE2LCA4NjIyMSwgCi0gICAgODYyMjYsIDg2MjMzLCA4NjIzOCwgODYyNDMsIDg2MjQ4LCA4NjI1NiwgODYyNjEsIDg2MjY2LCA4NjI3MywgODYyNzgsIAotICAgIDg2MjgzLCA4NjI5MCwgODYyOTcsIDg2MzAyLCA4NjMwNywgODYzMTIsIDg2MzE3LCA4NjMyMiwgODYzMjcsIDg2MzMyLCAKLSAgICA4NjMzNywgODYzNDIsIDg2MzQ5LCA4NjM1NCwgODYzNjEsIDg2MzY2LCA4NjM3MSwgODYzNzYsIDg2MzgxLCA4NjM4NiwgCi0gICAgODYzOTEsIDg2Mzk2LCA4NjQwMSwgODY0MDYsIDg2NDExLCA4NjQxNiwgODY0MjMsIDg2NDMwLCA4NjQzNywgODY0NDQsIAotICAgIDg2NDUwLCA4NjQ1NSwgODY0NjIsIDg2NDY3LCA4NjQ3MiwgODY0ODEsIDg2NDg4LCA4NjQ5NywgODY1MDQsIDg2NTA5LCAKLSAgICA4NjUxNCwgODY1MjIsIDg2NTI3LCA4NjUzMiwgODY1MzcsIDg2NTQyLCA4NjU0NywgODY1NTQsIDg2NTU5LCA4NjU2NCwgCi0gICAgODY1NjksIDg2NTc0LCA4NjU3OSwgODY1ODYsIDg2NTkzLCA4NjYwMCwgODY2MDcsIDg2NjE0LCA4NjYyMSwgODY2MjgsIAotICAgIDg2NjM1LCA4NjY0MiwgODY2NDksIDg2NjU2LCA4NjY2MywgODY2NzAsIDg2Njc3LCA4NjY4NCwgODY2OTEsIDg2Njk4LCAKLSAgICA4NjcwNSwgODY3MTIsIDg2NzE5LCA4NjcyNiwgODY3MzMsIDg2NzQwLCA4Njc0NywgODY3NTQsIDg2NzYxLCA4Njc2OCwgCi0gICAgODY3NzUsIDAsIDAsIDAsIDAsIDAsIDg2NzgyLCA4Njc5MCwgODY3OTgsIDAsIDAsIDAsIDAsIDg2ODAzLCA4NjgwNywgCi0gICAgODY4MTEsIDg2ODE1LCA4NjgxOSwgODY4MjMsIDg2ODI3LCA4NjgzMSwgODY4MzUsIDg2ODM5LCA4Njg0NCwgODY4NDksIAotICAgIDg2ODU0LCA4Njg1OSwgODY4NjQsIDg2ODY5LCA4Njg3NCwgODY4NzksIDg2ODg0LCA4Njg5MCwgODY4OTYsIDg2OTAyLCAKLSAgICA4NjkwOSwgODY5MTYsIDg2OTIzLCA4NjkzMCwgODY5MzcsIDg2OTQ0LCA4Njk1MCwgODY5NTYsIDg2OTYyLCA4Njk2OSwgCi0gICAgODY5NzYsIDg2OTgzLCA4Njk5MCwgODY5OTcsIDg3MDA0LCA4NzAxMSwgODcwMTgsIDg3MDI1LCA4NzAzMiwgODcwMzksIAotICAgIDg3MDQ2LCA4NzA1MywgODcwNjAsIDAsIDAsIDAsIDg3MDY3LCA4NzA3NSwgODcwODMsIDg3MDkxLCA4NzA5OSwgODcxMDcsIAotICAgIDg3MTE3LCA4NzEyNywgODcxMzUsIDg3MTQzLCA4NzE1MSwgODcxNTksIDg3MTY3LCA4NzE3MywgODcxODAsIDg3MTg5LCAKLSAgICA4NzE5OCwgODcyMDcsIDg3MjE2LCA4NzIyNSwgODcyMzQsIDg3MjQ0LCA4NzI1NSwgODcyNjUsIDg3Mjc2LCA4NzI4NSwgCi0gICAgODcyOTQsIDg3MzAzLCA4NzMxMywgODczMjQsIDg3MzM0LCA4NzM0NSwgODczNTYsIDg3MzY1LCA4NzM3MywgODczNzksIAotICAgIDg3Mzg1LCA4NzM5MSwgODczOTcsIDg3NDA1LCA4NzQxMywgODc0MTksIDg3NDI2LCA4NzQzNiwgODc0NDMsIDg3NDUwLCAKLSAgICA4NzQ1NywgODc0NjQsIDg3NDcxLCA4NzQ4MSwgODc0ODgsIDg3NDk1LCA4NzUwMywgODc1MTEsIDg3NTIwLCA4NzUyOSwgCi0gICAgODc1MzgsIDg3NTQ3LCA4NzU1NiwgODc1NjQsIDg3NTczLCA4NzU4MiwgODc1OTEsIDg3NTk1LCA4NzYwMiwgODc2MDcsIAotICAgIDg3NjEyLCA4NzYxNiwgODc2MjAsIDg3NjI0LCA4NzYyOCwgODc2MzMsIDg3NjM4LCA4NzY0NCwgODc2NTAsIDg3NjU0LCAKLSAgICA4NzY2MCwgODc2NjQsIDg3NjY4LCA4NzY3MiwgODc2NzYsIDg3NjgwLCA4NzY4NCwgODc2OTAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDg3Njk0LCA4NzY5OSwgODc3MDQsIDg3NzA5LCA4NzcxNCwgODc3MjEsIDg3NzI2LCA4NzczMSwgODc3MzYsIDg3NzQxLCAKLSAgICA4Nzc0NiwgODc3NTEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg4NzA4LCA4ODcxNSwgODg3MjQsIDg4NzMzLCA4ODc0MCwgODg3NDcsIDg4NzU0LCAKKyAgICA4ODc2MSwgODg3NjgsIDg4Nzc1LCA4ODc4MSwgODg3ODgsIDg4Nzk1LCA4ODgwMiwgODg4MDksIDg4ODE2LCA4ODgyMywgCisgICAgODg4MzAsIDg4ODM3LCA4ODg0NiwgODg4NTMsIDg4ODYwLCA4ODg2NywgODg4NzQsIDg4ODgxLCA4ODg4OCwgODg4OTUsIAorICAgIDg4OTAyLCA4ODkxMSwgODg5MTgsIDg4OTI1LCA4ODkzMiwgODg5MzksIDg4OTQ2LCA4ODk1MywgODg5NjIsIDg4OTY5LCAKKyAgICA4ODk3NiwgODg5ODMsIDg4OTkwLCA4ODk5OSwgODkwMDYsIDg5MDEzLCA4OTAyMCwgODkwMjgsIDg5MDM3LCAwLCAwLCAKKyAgICA4OTA0NiwgODkwNTAsIDg5MDU0LCA4OTA1OSwgODkwNjQsIDg5MDY5LCA4OTA3NCwgODkwNzgsIDg5MDgzLCA4OTA4OCwgCisgICAgODkwOTMsIDg5MDk4LCA4OTEwMywgODkxMDgsIDg5MTEyLCA4OTExNiwgODkxMjEsIDg5MTI2LCA4OTEzMSwgODkxMzUsIAorICAgIDg5MTQwLCA4OTE0NSwgODkxNDksIDg5MTU0LCA4OTE1OSwgODkxNjQsIDg5MTY5LCA4OTE3NCwgODkxNzksIDAsIDAsIDAsIAorICAgIDg5MTg0LCA4OTE4OCwgODkxOTMsIDg5MTk4LCA4OTIwMiwgODkyMDcsIDg5MjExLCA4OTIxNiwgODkyMjEsIDg5MjI2LCAKKyAgICA4OTIzMSwgODkyMzUsIDg5MjM5LCA4OTI0NCwgODkyNDksIDg5MjU0LCA4OTI1OSwgODkyNjQsIDg5MjY5LCA4OTI3MywgCisgICAgODkyNzgsIDg5MjgzLCA4OTI4OCwgODkyOTMsIDg5Mjk4LCA4OTMwMywgODkzMDcsIDg5MzExLCA4OTMxNiwgODkzMjEsIAorICAgIDg5MzI2LCA4OTMzMSwgODkzMzYsIDg5MzQxLCA4OTM0NiwgODkzNTEsIDg5MzU2LCA4OTM2MSwgODkzNjYsIDg5MzcxLCAKKyAgICA4OTM3NiwgODkzODEsIDg5Mzg2LCA4OTM5MSwgODkzOTYsIDg5NDAxLCA4OTQwNiwgODk0MTEsIDg5NDE2LCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4Nzc1NiwgODc3NjMsIDg3NzcyLCA4Nzc4MSwgODc3ODgsIDg3Nzk1LCA4NzgwMiwgCi0gICAgODc4MDksIDg3ODE2LCA4NzgyMywgODc4MjksIDg3ODM2LCA4Nzg0MywgODc4NTAsIDg3ODU3LCA4Nzg2NCwgODc4NzEsIAotICAgIDg3ODc4LCA4Nzg4NSwgODc4OTQsIDg3OTAxLCA4NzkwOCwgODc5MTUsIDg3OTIyLCA4NzkyOSwgODc5MzYsIDg3OTQzLCAKLSAgICA4Nzk1MCwgODc5NTksIDg3OTY2LCA4Nzk3MywgODc5ODAsIDg3OTg3LCA4Nzk5NCwgODgwMDEsIDg4MDEwLCA4ODAxNywgCi0gICAgODgwMjQsIDg4MDMxLCA4ODAzOCwgODgwNDcsIDg4MDU0LCA4ODA2MSwgODgwNjgsIDg4MDc2LCA4ODA4NSwgMCwgMCwgCi0gICAgODgwOTQsIDg4MDk4LCA4ODEwMiwgODgxMDcsIDg4MTEyLCA4ODExNywgODgxMjIsIDg4MTI2LCA4ODEzMSwgODgxMzYsIAotICAgIDg4MTQxLCA4ODE0NiwgODgxNTEsIDg4MTU2LCA4ODE2MCwgODgxNjQsIDg4MTY4LCA4ODE3MywgODgxNzgsIDg4MTgyLCAKLSAgICA4ODE4NywgODgxOTIsIDg4MTk2LCA4ODIwMCwgODgyMDUsIDg4MjEwLCA4ODIxNSwgODgyMjAsIDg4MjI1LCAwLCAwLCAwLCAKLSAgICA4ODIzMCwgODgyMzQsIDg4MjM5LCA4ODI0NCwgODgyNDgsIDg4MjUzLCA4ODI1NywgODgyNjIsIDg4MjY3LCA4ODI3MiwgCi0gICAgODgyNzcsIDg4MjgxLCA4ODI4NSwgODgyOTAsIDg4Mjk1LCA4ODMwMCwgODgzMDUsIDg4MzA5LCA4ODMxNCwgODgzMTgsIAotICAgIDg4MzIzLCA4ODMyOCwgODgzMzIsIDg4MzM3LCA4ODM0MiwgODgzNDcsIDg4MzUxLCA4ODM1NSwgODgzNjAsIDg4MzY1LCAKLSAgICA4ODM3MCwgODgzNzUsIDg4MzgwLCA4ODM4NSwgODgzOTAsIDg4Mzk1LCA4ODQwMCwgODg0MDUsIDg4NDEwLCA4ODQxNSwgCi0gICAgODg0MjAsIDg4NDI1LCA4ODQzMCwgODg0MzUsIDg4NDQwLCA4ODQ0NSwgODg0NTAsIDg4NDU1LCA4ODQ2MCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgODk0MjEsIDg5NDI1LCAKKyAgICA4OTQzMCwgODk0MzUsIDg5NDQwLCA4OTQ0NCwgODk0NDksIDg5NDU0LCA4OTQ1OSwgODk0NjQsIDg5NDY4LCA4OTQ3MiwgCisgICAgODk0NzcsIDg5NDgyLCA4OTQ4NywgODk0OTIsIDg5NDk2LCA4OTUwMSwgODk1MDYsIDg5NTExLCA4OTUxNiwgODk1MjEsIAorICAgIDg5NTI2LCA4OTUzMCwgODk1MzUsIDg5NTQwLCA4OTU0NSwgODk1NTAsIDg5NTU1LCA4OTU2MCwgODk1NjUsIDAsIDg5NTcwLCAKKyAgICA4OTU3NSwgODk1ODAsIDg5NTg2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4OTU5MiwgODk1OTcsIAorICAgIDg5NjAyLCA4OTYwNywgODk2MTIsIDg5NjE3LCA4OTYyMiwgODk2MjcsIDg5NjMyLCA4OTYzNywgODk2NDIsIDg5NjQ3LCAKKyAgICA4OTY1MiwgODk2NTcsIDg5NjYyLCA4OTY2NywgODk2NzIsIDg5Njc3LCA4OTY4MiwgODk2ODcsIDg5NjkyLCA4OTY5NywgCisgICAgODk3MDIsIDg5NzA3LCA4OTcxMiwgODk3MTcsIDg5NzIyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA4ODQ2NSwgODg0NjksIAotICAgIDg4NDc0LCA4ODQ3OSwgODg0ODQsIDg4NDg4LCA4ODQ5MywgODg0OTgsIDg4NTAzLCA4ODUwOCwgODg1MTIsIDg4NTE2LCAKLSAgICA4ODUyMSwgODg1MjYsIDg4NTMxLCA4ODUzNiwgODg1NDAsIDg4NTQ1LCA4ODU1MCwgODg1NTUsIDg4NTYwLCA4ODU2NSwgCi0gICAgODg1NzAsIDg4NTc0LCA4ODU3OSwgODg1ODQsIDg4NTg5LCA4ODU5NCwgODg1OTksIDg4NjA0LCA4ODYwOSwgMCwgODg2MTQsIAotICAgIDg4NjE5LCA4ODYyNCwgODg2MzAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg4NjM2LCA4ODY0MSwgCi0gICAgODg2NDYsIDg4NjUxLCA4ODY1NiwgODg2NjEsIDg4NjY2LCA4ODY3MSwgODg2NzYsIDg4NjgxLCA4ODY4NiwgODg2OTEsIAotICAgIDg4Njk2LCA4ODcwMSwgODg3MDYsIDg4NzExLCA4ODcxNiwgODg3MjEsIDg4NzI2LCA4ODczMSwgODg3MzYsIDg4NzQxLCAKLSAgICA4ODc0NiwgODg3NTEsIDg4NzU2LCA4ODc2MSwgODg3NjYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg5NzI5LCA4OTczNCwgODk3MzksIAorICAgIDg5NzQ0LCA4OTc0OSwgODk3NTQsIDg5NzU5LCA4OTc2NCwgODk3NjksIDg5Nzc0LCA4OTc3OSwgODk3ODQsIDg5Nzg5LCAKKyAgICA4OTc5NCwgODk3OTksIDg5ODA0LCA4OTgwOSwgODk4MTQsIDg5ODE5LCA4OTgyNCwgODk4MjksIDg5ODM0LCA4OTgzOSwgCisgICAgODk4NDQsIDg5ODQ5LCA4OTg1NCwgODk4NTksIDg5ODYzLCA4OTg2NywgODk4NzEsIDAsIDg5ODc2LCA4OTg4MiwgODk4ODcsIAorICAgIDg5ODkyLCA4OTg5NywgODk5MDIsIDg5OTA4LCA4OTkxNCwgODk5MjAsIDg5OTI2LCA4OTkzMiwgODk5MzgsIDg5OTQ0LCAKKyAgICA4OTk1MCwgODk5NTYsIDg5OTYyLCA4OTk2OCwgODk5NzQsIDg5OTgwLCA4OTk4NSwgODk5OTEsIDg5OTk3LCA5MDAwMiwgCisgICAgOTAwMDgsIDkwMDEzLCA5MDAxOSwgOTAwMjUsIDkwMDMwLCA5MDAzNiwgOTAwNDIsIDkwMDQ3LCA5MDA1MywgOTAwNTksIAorICAgIDkwMDY0LCA5MDA3MCwgOTAwNzYsIDkwMDgyLCAwLCAwLCAwLCAwLCA5MDA4NywgOTAwOTMsIDkwMDk5LCA5MDEwNSwgCisgICAgOTAxMTEsIDkwMTE3LCA5MDEyMywgOTAxMjksIDkwMTM1LCA5MDE0MiwgOTAxNDcsIDkwMTUyLCA5MDE1OCwgOTAxNjQsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg4NzczLCA4ODc3OCwgODg3ODMsIAotICAgIDg4Nzg4LCA4ODc5MywgODg3OTgsIDg4ODAzLCA4ODgwOCwgODg4MTMsIDg4ODE4LCA4ODgyMywgODg4MjgsIDg4ODMzLCAKLSAgICA4ODgzOCwgODg4NDMsIDg4ODQ4LCA4ODg1MywgODg4NTgsIDg4ODYzLCA4ODg2OCwgODg4NzMsIDg4ODc4LCA4ODg4MywgCi0gICAgODg4ODgsIDg4ODkzLCA4ODg5OCwgODg5MDMsIDg4OTA3LCA4ODkxMSwgODg5MTUsIDAsIDg4OTIwLCA4ODkyNiwgODg5MzEsIAotICAgIDg4OTM2LCA4ODk0MSwgODg5NDYsIDg4OTUyLCA4ODk1OCwgODg5NjQsIDg4OTcwLCA4ODk3NiwgODg5ODIsIDg4OTg4LCAKLSAgICA4ODk5NCwgODkwMDAsIDg5MDA2LCA4OTAxMiwgODkwMTgsIDg5MDI0LCA4OTAyOSwgODkwMzUsIDg5MDQxLCA4OTA0NiwgCi0gICAgODkwNTIsIDg5MDU3LCA4OTA2MywgODkwNjksIDg5MDc0LCA4OTA4MCwgODkwODYsIDg5MDkxLCA4OTA5NywgODkxMDMsIAotICAgIDg5MTA5LCA4OTExNSwgODkxMjEsIDg5MTI3LCAwLCAwLCAwLCAwLCA4OTEzMiwgODkxMzgsIDg5MTQ0LCA4OTE1MCwgCi0gICAgODkxNTYsIDg5MTYyLCA4OTE2OCwgODkxNzQsIDg5MTgwLCA4OTE4NywgODkxOTIsIDg5MTk3LCA4OTIwMywgODkyMDksIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDg5MjE1LCA4OTIyMCwgODkyMjUsIAotICAgIDg5MjMwLCA4OTIzNiwgODkyNDEsIDg5MjQ3LCA4OTI1MywgODkyNTksIDg5MjY1LCA4OTI3MiwgODkyNzgsIDg5Mjg1LCAKLSAgICA4OTI5MCwgODkyOTUsIDg5MzAwLCA4OTMwNSwgODkzMTAsIDg5MzE1LCA4OTMyMCwgODkzMjUsIDg5MzMwLCA4OTMzNSwgCi0gICAgODkzNDAsIDg5MzQ1LCA4OTM1MCwgODkzNTUsIDg5MzYwLCA4OTM2NSwgODkzNzAsIDg5Mzc1LCA4OTM4MCwgODkzODUsIAotICAgIDg5MzkwLCA4OTM5NSwgODk0MDAsIDg5NDA1LCA4OTQxMCwgODk0MTUsIDg5NDIwLCA4OTQyNSwgODk0MzAsIDg5NDM1LCAKLSAgICA4OTQ0MCwgODk0NDYsIDg5NDUxLCA4OTQ1NywgODk0NjMsIDg5NDY5LCA4OTQ3NSwgODk0ODIsIDg5NDg4LCA4OTQ5NSwgCi0gICAgODk1MDAsIDg5NTA1LCA4OTUxMCwgODk1MTUsIDg5NTIwLCA4OTUyNSwgODk1MzAsIDg5NTM1LCA4OTU0MCwgODk1NDUsIAotICAgIDg5NTUwLCA4OTU1NSwgODk1NjAsIDg5NTY1LCA4OTU3MCwgODk1NzUsIDg5NTgwLCA4OTU4NSwgODk1OTAsIDg5NTk1LCAKLSAgICA4OTYwMCwgODk2MDUsIDg5NjEwLCA4OTYxNSwgODk2MjAsIDg5NjI1LCA4OTYzMCwgODk2MzUsIDg5NjQwLCA4OTY0NSwgCi0gICAgODk2NTAsIDg5NjU1LCA4OTY2MCwgODk2NjUsIDg5NjcwLCA4OTY3NSwgODk2ODAsIDg5Njg1LCA4OTY5MCwgODk2OTUsIAotICAgIDg5NzAwLCA4OTcwNSwgODk3MTAsIDg5NzE1LCA4OTcyMCwgODk3MjUsIDg5NzMwLCA4OTczNSwgODk3NDAsIDg5NzQ1LCAKLSAgICA4OTc1MCwgODk3NTUsIDg5NzYwLCA4OTc2NSwgODk3NzAsIDg5Nzc1LCA4OTc4MCwgODk3ODUsIDg5NzkwLCA4OTc5NSwgCi0gICAgODk4MDAsIDg5ODA1LCA4OTgxMCwgODk4MTUsIDg5ODIwLCA4OTgyNSwgODk4MzAsIDg5ODM1LCA4OTg0MCwgODk4NDUsIAotICAgIDg5ODUwLCA4OTg1NSwgODk4NjAsIDg5ODY1LCA4OTg3MCwgODk4NzUsIDg5ODgwLCA4OTg4NSwgODk4OTAsIDg5ODk1LCAKLSAgICA4OTkwMCwgODk5MDUsIDg5OTEwLCA4OTkxNCwgODk5MTksIDg5OTI0LCA4OTkyOSwgODk5MzQsIDg5OTM5LCA4OTk0NCwgCi0gICAgODk5NDksIDg5OTU0LCA4OTk1OSwgODk5NjQsIDg5OTY5LCA4OTk3NCwgODk5NzgsIDg5OTgyLCA4OTk4NiwgODk5OTAsIAotICAgIDg5OTk0LCA4OTk5OCwgOTAwMDIsIDkwMDA3LCA5MDAxMiwgMCwgMCwgOTAwMTcsIDkwMDIyLCA5MDAyNiwgOTAwMzAsIAotICAgIDkwMDM0LCA5MDAzOCwgOTAwNDIsIDkwMDQ2LCA5MDA1MCwgOTAwNTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDkwMTcwLCA5MDE3NSwgOTAxODAsIAorICAgIDkwMTg1LCA5MDE5MSwgOTAxOTYsIDkwMjAyLCA5MDIwOCwgOTAyMTQsIDkwMjIwLCA5MDIyNywgOTAyMzMsIDkwMjQwLCAKKyAgICA5MDI0NSwgOTAyNTAsIDkwMjU1LCA5MDI2MCwgOTAyNjUsIDkwMjcwLCA5MDI3NSwgOTAyODAsIDkwMjg1LCA5MDI5MCwgCisgICAgOTAyOTUsIDkwMzAwLCA5MDMwNSwgOTAzMTAsIDkwMzE1LCA5MDMyMCwgOTAzMjUsIDkwMzMwLCA5MDMzNSwgOTAzNDAsIAorICAgIDkwMzQ1LCA5MDM1MCwgOTAzNTUsIDkwMzYwLCA5MDM2NSwgOTAzNzAsIDkwMzc1LCA5MDM4MCwgOTAzODUsIDkwMzkwLCAKKyAgICA5MDM5NSwgOTA0MDEsIDkwNDA2LCA5MDQxMiwgOTA0MTgsIDkwNDI0LCA5MDQzMCwgOTA0MzcsIDkwNDQzLCA5MDQ1MCwgCisgICAgOTA0NTUsIDkwNDYwLCA5MDQ2NSwgOTA0NzAsIDkwNDc1LCA5MDQ4MCwgOTA0ODUsIDkwNDkwLCA5MDQ5NSwgOTA1MDAsIAorICAgIDkwNTA1LCA5MDUxMCwgOTA1MTUsIDkwNTIwLCA5MDUyNSwgOTA1MzAsIDkwNTM1LCA5MDU0MCwgOTA1NDUsIDkwNTUwLCAKKyAgICA5MDU1NSwgOTA1NjAsIDkwNTY1LCA5MDU3MCwgOTA1NzUsIDkwNTgwLCA5MDU4NSwgOTA1OTAsIDkwNTk1LCA5MDYwMCwgCisgICAgOTA2MDUsIDkwNjEwLCA5MDYxNSwgOTA2MjAsIDkwNjI1LCA5MDYzMCwgOTA2MzUsIDkwNjQwLCA5MDY0NSwgOTA2NTAsIAorICAgIDkwNjU1LCA5MDY2MCwgOTA2NjUsIDkwNjcwLCA5MDY3NSwgOTA2ODAsIDkwNjg1LCA5MDY5MCwgOTA2OTUsIDkwNzAwLCAKKyAgICA5MDcwNSwgOTA3MTAsIDkwNzE1LCA5MDcyMCwgOTA3MjUsIDkwNzMwLCA5MDczNSwgOTA3NDAsIDkwNzQ1LCA5MDc1MCwgCisgICAgOTA3NTUsIDkwNzYwLCA5MDc2NSwgOTA3NzAsIDkwNzc1LCA5MDc4MCwgOTA3ODUsIDkwNzkwLCA5MDc5NSwgOTA4MDAsIAorICAgIDkwODA1LCA5MDgxMCwgOTA4MTUsIDkwODIwLCA5MDgyNSwgOTA4MzAsIDkwODM1LCA5MDg0MCwgOTA4NDUsIDkwODUwLCAKKyAgICA5MDg1NSwgOTA4NjAsIDkwODY1LCA5MDg2OSwgOTA4NzMsIDkwODc4LCA5MDg4MywgOTA4ODgsIDkwODkzLCA5MDg5OCwgCisgICAgOTA5MDMsIDkwOTA4LCA5MDkxMywgOTA5MTgsIDkwOTIzLCA5MDkyOCwgOTA5MzIsIDkwOTM2LCA5MDk0MCwgOTA5NDQsIAorICAgIDkwOTQ4LCA5MDk1MiwgOTA5NTYsIDkwOTYxLCA5MDk2NiwgMCwgMCwgOTA5NzEsIDkwOTc2LCA5MDk4MCwgOTA5ODQsIAorICAgIDkwOTg4LCA5MDk5MiwgOTA5OTYsIDkxMDAwLCA5MTAwNCwgOTEwMDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDkwMDU4LCA5MDA2MiwgOTAwNjYsIDkwMDcwLCA5MDA3NCwgOTAwNzgsIDAsIDAsIDkwMDgzLCAwLCAKLSAgICA5MDA4OCwgOTAwOTIsIDkwMDk3LCA5MDEwMiwgOTAxMDcsIDkwMTEyLCA5MDExNywgOTAxMjIsIDkwMTI3LCA5MDEzMiwgCi0gICAgOTAxMzcsIDkwMTQxLCA5MDE0NiwgOTAxNTEsIDkwMTU2LCA5MDE2MSwgOTAxNjUsIDkwMTcwLCA5MDE3NSwgOTAxODAsIAotICAgIDkwMTg1LCA5MDE4OSwgOTAxOTQsIDkwMTk5LCA5MDIwNCwgOTAyMDksIDkwMjEzLCA5MDIxOCwgOTAyMjMsIDkwMjI4LCAKLSAgICA5MDIzMywgOTAyMzgsIDkwMjQzLCA5MDI0OCwgOTAyNTMsIDkwMjU4LCA5MDI2MywgOTAyNjgsIDkwMjczLCA5MDI3NywgCi0gICAgOTAyODIsIDkwMjg3LCA5MDI5MiwgOTAyOTcsIDAsIDkwMzAyLCA5MDMwNywgMCwgMCwgMCwgOTAzMTIsIDAsIDAsIDkwMzE3LCAKLSAgICA5MDMyMiwgOTAzMjksIDkwMzM2LCA5MDM0MywgOTAzNTAsIDkwMzU3LCA5MDM2NCwgOTAzNzEsIDkwMzc4LCA5MDM4NSwgCi0gICAgOTAzOTIsIDkwMzk5LCA5MDQwNiwgOTA0MTMsIDkwNDIwLCA5MDQyNywgOTA0MzQsIDkwNDQxLCA5MDQ0OCwgOTA0NTUsIAotICAgIDkwNDYyLCA5MDQ2OSwgMCwgOTA0NzYsIDkwNDgzLCA5MDQ4OSwgOTA0OTUsIDkwNTAxLCA5MDUwOCwgOTA1MTUsIDkwNTIzLCAKLSAgICA5MDUzMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTA1NDAsIDkwNTQ1LCA5MDU1MCwgOTA1NTUsIDkwNTYwLCA5MDU2NSwgCi0gICAgOTA1NzAsIDkwNTc1LCA5MDU4MCwgOTA1ODUsIDkwNTkwLCA5MDU5NSwgOTA2MDAsIDkwNjA1LCA5MDYxMCwgOTA2MTUsIAotICAgIDkwNjIwLCA5MDYyNSwgOTA2MzAsIDkwNjM1LCA5MDY0MCwgOTA2NDUsIDkwNjUwLCA5MDY1NCwgOTA2NTksIDkwNjY0LCAKLSAgICA5MDY3MCwgOTA2NzQsIDAsIDAsIDAsIDkwNjc4LCA5MDY4NCwgOTA2ODgsIDkwNjkzLCA5MDY5OCwgOTA3MDMsIDkwNzA3LCAKLSAgICA5MDcxMiwgOTA3MTYsIDkwNzIxLCA5MDcyNiwgOTA3MzAsIDkwNzM0LCA5MDczOCwgOTA3NDIsIDkwNzQ2LCA5MDc1MSwgCi0gICAgOTA3NTYsIDkwNzYwLCA5MDc2NSwgOTA3NzAsIDkwNzc0LCA5MDc3OSwgOTA3ODQsIDkwNzg5LCA5MDc5NCwgOTA3OTksIDAsIAotICAgIDAsIDAsIDAsIDAsIDkwODA0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA5MTAxMiwgOTEwMTYsIDkxMDIwLCA5MTAyNCwgOTEwMjgsIDkxMDMyLCAwLCAwLCA5MTAzNywgMCwgCisgICAgOTEwNDIsIDkxMDQ2LCA5MTA1MSwgOTEwNTYsIDkxMDYxLCA5MTA2NiwgOTEwNzEsIDkxMDc2LCA5MTA4MSwgOTEwODYsIAorICAgIDkxMDkxLCA5MTA5NSwgOTExMDAsIDkxMTA1LCA5MTExMCwgOTExMTUsIDkxMTE5LCA5MTEyNCwgOTExMjksIDkxMTM0LCAKKyAgICA5MTEzOSwgOTExNDMsIDkxMTQ4LCA5MTE1MywgOTExNTgsIDkxMTYzLCA5MTE2NywgOTExNzIsIDkxMTc3LCA5MTE4MiwgCisgICAgOTExODcsIDkxMTkxLCA5MTE5NiwgOTEyMDEsIDkxMjA2LCA5MTIxMSwgOTEyMTYsIDkxMjIxLCA5MTIyNiwgOTEyMzAsIAorICAgIDkxMjM1LCA5MTI0MCwgOTEyNDUsIDkxMjUwLCAwLCA5MTI1NSwgOTEyNjAsIDAsIDAsIDAsIDkxMjY1LCAwLCAwLCA5MTI3MCwgCisgICAgOTEyNzUsIDkxMjgyLCA5MTI4OSwgOTEyOTYsIDkxMzAzLCA5MTMxMCwgOTEzMTcsIDkxMzI0LCA5MTMzMSwgOTEzMzgsIAorICAgIDkxMzQ1LCA5MTM1MiwgOTEzNTksIDkxMzY2LCA5MTM3MywgOTEzODAsIDkxMzg3LCA5MTM5NCwgOTE0MDEsIDkxNDA4LCAKKyAgICA5MTQxNSwgOTE0MjIsIDAsIDkxNDI5LCA5MTQzNiwgOTE0NDIsIDkxNDQ4LCA5MTQ1NCwgOTE0NjEsIDkxNDY4LCA5MTQ3NiwgCisgICAgOTE0ODQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDkxNDkzLCA5MTQ5OCwgOTE1MDMsIDkxNTA4LCA5MTUxMywgOTE1MTgsIAorICAgIDkxNTIzLCA5MTUyOCwgOTE1MzMsIDkxNTM4LCA5MTU0MywgOTE1NDgsIDkxNTUzLCA5MTU1OCwgOTE1NjMsIDkxNTY4LCAKKyAgICA5MTU3MywgOTE1NzgsIDkxNTgzLCA5MTU4OCwgOTE1OTMsIDkxNTk4LCA5MTYwMywgOTE2MDcsIDkxNjEyLCA5MTYxNywgCisgICAgOTE2MjMsIDkxNjI3LCAwLCAwLCAwLCA5MTYzMSwgOTE2MzcsIDkxNjQxLCA5MTY0NiwgOTE2NTEsIDkxNjU2LCA5MTY2MCwgCisgICAgOTE2NjUsIDkxNjY5LCA5MTY3NCwgOTE2NzksIDkxNjgzLCA5MTY4NywgOTE2OTIsIDkxNjk2LCA5MTcwMCwgOTE3MDUsIAorICAgIDkxNzEwLCA5MTcxNCwgOTE3MTksIDkxNzI0LCA5MTcyOSwgOTE3MzQsIDkxNzM5LCA5MTc0NCwgOTE3NDksIDkxNzU0LCAwLCAKKyAgICAwLCAwLCAwLCAwLCA5MTc1OSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTA4MDksIAotICAgIDkwODEzLCA5MDgxOCwgOTA4MjMsIDAsIDkwODI5LCA5MDgzNCwgMCwgMCwgMCwgMCwgMCwgOTA4MzksIDkwODQ1LCA5MDg1MiwgCi0gICAgOTA4NTcsIDkwODYyLCA5MDg2NiwgOTA4NzEsIDkwODc2LCAwLCA5MDg4MSwgOTA4ODYsIDkwODkxLCAwLCA5MDg5NiwgCi0gICAgOTA5MDEsIDkwOTA2LCA5MDkxMSwgOTA5MTYsIDkwOTIxLCA5MDkyNiwgOTA5MzEsIDkwOTM2LCA5MDk0MSwgOTA5NDYsIAotICAgIDkwOTUwLCA5MDk1NCwgOTA5NTksIDkwOTY0LCA5MDk2OSwgOTA5NzMsIDkwOTc3LCA5MDk4MSwgOTA5ODYsIDkwOTkxLCAKLSAgICA5MDk5NiwgOTEwMDEsIDkxMDA2LCA5MTAxMSwgOTEwMTUsIDkxMDIwLCAwLCAwLCAwLCAwLCA5MTAyNSwgOTEwMzEsIAotICAgIDkxMDM2LCAwLCAwLCAwLCAwLCA5MTA0MSwgOTEwNDUsIDkxMDQ5LCA5MTA1MywgOTEwNTcsIDkxMDYxLCA5MTA2NiwgCi0gICAgOTEwNzEsIDkxMDc3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5MTA4MywgOTEwODksIDkxMDk2LCA5MTEwMiwgOTExMDksIAotICAgIDkxMTE1LCA5MTEyMSwgOTExMjcsIDkxMTM0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5MTE0MCwgOTExNDgsIDkxMTU2LCAKLSAgICA5MTE2NCwgOTExNzIsIDkxMTgwLCA5MTE4OCwgOTExOTYsIDkxMjA0LCA5MTIxMiwgOTEyMjAsIDkxMjI4LCA5MTIzNiwgCi0gICAgOTEyNDQsIDkxMjUyLCA5MTI2MCwgOTEyNjgsIDkxMjc2LCA5MTI4NCwgOTEyOTIsIDkxMzAwLCA5MTMwOCwgOTEzMTYsIAotICAgIDkxMzI0LCA5MTMzMiwgOTEzNDAsIDkxMzQ4LCA5MTM1NiwgOTEzNjQsIDkxMzcyLCA5MTM3OSwgOTEzODcsIDkxMzk1LCAKLSAgICA5MTM5OSwgOTE0MDQsIDkxNDA5LCA5MTQxNCwgOTE0MTksIDkxNDI0LCA5MTQyOSwgOTE0MzQsIDkxNDM4LCA5MTQ0MywgCi0gICAgOTE0NDcsIDkxNDUyLCA5MTQ1NiwgOTE0NjEsIDkxNDY1LCA5MTQ3MCwgOTE0NzUsIDkxNDgwLCA5MTQ4NSwgOTE0OTAsIAotICAgIDkxNDk1LCA5MTUwMCwgOTE1MDUsIDkxNTEwLCA5MTUxNSwgOTE1MjAsIDkxNTI1LCA5MTUzMCwgOTE1MzUsIDkxNTQwLCAKLSAgICA5MTU0NSwgOTE1NTAsIDkxNTU1LCA5MTU2MCwgOTE1NjUsIDkxNTcwLCA5MTU3NSwgOTE1ODAsIDkxNTg1LCA5MTU5MCwgCi0gICAgOTE1OTUsIDkxNjAwLCA5MTYwNSwgOTE2MTAsIDkxNjE1LCA5MTYyMCwgOTE2MjUsIDkxNjMwLCA5MTYzNSwgOTE2NDAsIAotICAgIDkxNjQ1LCA5MTY1MCwgOTE2NTUsIDAsIDAsIDAsIDkxNjYwLCA5MTY2NSwgOTE2NzQsIDkxNjgyLCA5MTY5MSwgOTE3MDAsIAotICAgIDkxNzExLCA5MTcyMiwgOTE3MjksIDkxNzM2LCA5MTc0MywgOTE3NTAsIDkxNzU3LCA5MTc2NCwgOTE3NzEsIDkxNzc4LCAKLSAgICA5MTc4NSwgOTE3OTIsIDkxNzk5LCA5MTgwNiwgOTE4MTMsIDkxODIwLCA5MTgyNywgOTE4MzQsIDkxODQxLCA5MTg0OCwgCi0gICAgOTE4NTUsIDkxODYyLCA5MTg2OSwgMCwgMCwgOTE4NzYsIDkxODgyLCA5MTg4OCwgOTE4OTQsIDkxOTAwLCA5MTkwNywgCi0gICAgOTE5MTQsIDkxOTIyLCA5MTkzMCwgOTE5MzcsIDkxOTQ0LCA5MTk1MSwgOTE5NTgsIDkxOTY1LCA5MTk3MiwgOTE5NzksIAotICAgIDkxOTg2LCA5MTk5MywgOTIwMDAsIDkyMDA3LCA5MjAxNCwgOTIwMjEsIDkyMDI4LCA5MjAzNSwgOTIwNDIsIDkyMDQ5LCAKLSAgICA5MjA1NiwgMCwgMCwgMCwgMCwgMCwgOTIwNjMsIDkyMDY5LCA5MjA3NSwgOTIwODEsIDkyMDg3LCA5MjA5NCwgOTIxMDEsIAotICAgIDkyMTA5LCA5MjExNywgOTIxMjMsIDkyMTI5LCA5MjEzNiwgOTIxNDIsIDkyMTQ4LCA5MjE1NCwgOTIxNjAsIDkyMTY3LCAKLSAgICA5MjE3NCwgOTIxODEsIDkyMTg4LCA5MjE5NSwgOTIyMDIsIDkyMjA5LCA5MjIxNiwgOTIyMjMsIDkyMjMwLCA5MjIzNywgCi0gICAgOTIyNDQsIDkyMjUxLCA5MjI1OCwgOTIyNjUsIDkyMjcyLCA5MjI3OSwgOTIyODYsIDkyMjkzLCA5MjMwMCwgOTIzMDcsIAotICAgIDkyMzE0LCA5MjMyMSwgOTIzMjgsIDkyMzM1LCA5MjM0MiwgOTIzNDksIDkyMzU2LCA5MjM2MywgOTIzNzAsIDkyMzc3LCAKLSAgICA5MjM4NCwgOTIzOTEsIDkyMzk4LCA5MjQwNSwgOTI0MTIsIDkyNDE5LCA5MjQyNiwgOTI0MzMsIDkyNDQwLCA5MjQ0NywgCi0gICAgOTI0NTQsIDkyNDYxLCA5MjQ2OCwgOTI0NzUsIDkyNDgyLCA5MjQ4OSwgOTI0OTYsIDkyNTAzLCA5MjUxMCwgOTI1MTcsIAotICAgIDkyNTI0LCA5MjUzMSwgOTI1MzgsIDkyNTQ1LCA5MjU1MiwgOTI1NTksIDkyNTY2LCA5MjU3MywgOTI1ODAsIDkyNTg3LCAKLSAgICA5MjU5NCwgOTI2MDEsIDkyNjA4LCA5MjYxNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTE3NjQsIAorICAgIDkxNzcwLCA5MTc3NiwgOTE3ODIsIDkxNzg4LCA5MTc5NCwgOTE4MDEsIDkxODA4LCA5MTgxNSwgOTE4MjEsIDkxODI3LCAKKyAgICA5MTgzMywgOTE4NDAsIDkxODQ3LCA5MTg1NCwgOTE4NjAsIDkxODY3LCA5MTg3NCwgOTE4ODEsIDkxODg4LCA5MTg5NCwgCisgICAgOTE5MDEsIDkxOTA4LCA5MTkxNCwgOTE5MjEsIDkxOTI4LCA5MTkzNSwgOTE5NDIsIDkxOTQ5LCA5MTk1NSwgOTE5NjIsIAorICAgIDkxOTY5LCA5MTk3NiwgOTE5ODIsIDkxOTg4LCA5MTk5NCwgOTIwMDAsIDkyMDA2LCA5MjAxMywgOTIwMjAsIDkyMDI2LCAKKyAgICA5MjAzMiwgOTIwMzgsIDkyMDQ1LCA5MjA1MSwgOTIwNTgsIDkyMDY1LCA5MjA3MiwgOTIwNzgsIDkyMDg2LCA5MjA5MywgCisgICAgOTIwOTksIDkyMTA2LCA5MjExMywgOTIxMjAsIDkyMTI2LCAwLCAwLCAwLCAwLCAwLCAwLCA5MjEzMywgOTIxNDEsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDkyMTQ5LCA5MjE1MywgOTIxNTgsIDkyMTYzLCAwLCAKKyAgICA5MjE2OSwgOTIxNzQsIDAsIDAsIDAsIDAsIDAsIDkyMTc5LCA5MjE4NSwgOTIxOTIsIDkyMTk3LCA5MjIwMiwgOTIyMDYsIAorICAgIDkyMjExLCA5MjIxNiwgMCwgOTIyMjEsIDkyMjI2LCA5MjIzMSwgMCwgOTIyMzYsIDkyMjQxLCA5MjI0NiwgOTIyNTEsIAorICAgIDkyMjU2LCA5MjI2MSwgOTIyNjYsIDkyMjcxLCA5MjI3NiwgOTIyODEsIDkyMjg2LCA5MjI5MCwgOTIyOTQsIDkyMjk5LCAKKyAgICA5MjMwNCwgOTIzMDksIDkyMzEzLCA5MjMxNywgOTIzMjEsIDkyMzI2LCA5MjMzMSwgOTIzMzYsIDkyMzQxLCA5MjM0NSwgCisgICAgOTIzNTAsIDkyMzU0LCA5MjM1OSwgMCwgMCwgMCwgMCwgOTIzNjQsIDkyMzcwLCA5MjM3NSwgMCwgMCwgMCwgMCwgOTIzODAsIAorICAgIDkyMzg0LCA5MjM4OCwgOTIzOTIsIDkyMzk2LCA5MjQwMCwgOTI0MDUsIDkyNDEwLCA5MjQxNiwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgOTI0MjIsIDkyNDI4LCA5MjQzNSwgOTI0NDEsIDkyNDQ4LCA5MjQ1NCwgOTI0NjAsIDkyNDY2LCA5MjQ3MywgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgOTI0NzksIDkyNDg3LCA5MjQ5NSwgOTI1MDMsIDkyNTExLCA5MjUxOSwgOTI1MjcsIDkyNTM1LCAKKyAgICA5MjU0MywgOTI1NTEsIDkyNTU5LCA5MjU2NywgOTI1NzUsIDkyNTgzLCA5MjU5MSwgOTI1OTksIDkyNjA3LCA5MjYxNSwgCisgICAgOTI2MjMsIDkyNjMxLCA5MjYzOSwgOTI2NDcsIDkyNjU1LCA5MjY2MywgOTI2NzEsIDkyNjc5LCA5MjY4NywgOTI2OTUsIAorICAgIDkyNzAzLCA5MjcxMSwgOTI3MTgsIDkyNzI2LCA5MjczNCwgOTI3MzgsIDkyNzQzLCA5Mjc0OCwgOTI3NTMsIDkyNzU4LCAKKyAgICA5Mjc2MywgOTI3NjgsIDkyNzczLCA5Mjc3NywgOTI3ODIsIDkyNzg2LCA5Mjc5MSwgOTI3OTUsIDkyODAwLCA5MjgwNCwgCisgICAgOTI4MDksIDkyODE0LCA5MjgxOSwgOTI4MjQsIDkyODI5LCA5MjgzNCwgOTI4MzksIDkyODQ0LCA5Mjg0OSwgOTI4NTQsIAorICAgIDkyODU5LCA5Mjg2NCwgOTI4NjksIDkyODc0LCA5Mjg3OSwgOTI4ODQsIDkyODg5LCA5Mjg5NCwgOTI4OTksIDkyOTA0LCAKKyAgICA5MjkwOSwgOTI5MTQsIDkyOTE5LCA5MjkyNCwgOTI5MjksIDkyOTM0LCA5MjkzOSwgOTI5NDQsIDkyOTQ5LCA5Mjk1NCwgCisgICAgOTI5NTksIDkyOTY0LCA5Mjk2OSwgOTI5NzQsIDkyOTc5LCA5Mjk4NCwgOTI5ODksIDkyOTk0LCAwLCAwLCAwLCA5Mjk5OSwgCisgICAgOTMwMDQsIDkzMDEzLCA5MzAyMSwgOTMwMzAsIDkzMDM5LCA5MzA1MCwgOTMwNjEsIDkzMDY4LCA5MzA3NSwgOTMwODIsIAorICAgIDkzMDg5LCA5MzA5NiwgOTMxMDMsIDkzMTEwLCA5MzExNywgOTMxMjQsIDkzMTMxLCA5MzEzOCwgOTMxNDUsIDkzMTUyLCAKKyAgICA5MzE1OSwgOTMxNjYsIDkzMTczLCA5MzE4MCwgOTMxODcsIDkzMTk0LCA5MzIwMSwgOTMyMDgsIDAsIDAsIDkzMjE1LCAKKyAgICA5MzIyMSwgOTMyMjcsIDkzMjMzLCA5MzIzOSwgOTMyNDYsIDkzMjUzLCA5MzI2MSwgOTMyNjksIDkzMjc2LCA5MzI4MywgCisgICAgOTMyOTAsIDkzMjk3LCA5MzMwNCwgOTMzMTEsIDkzMzE4LCA5MzMyNSwgOTMzMzIsIDkzMzM5LCA5MzM0NiwgOTMzNTMsIAorICAgIDkzMzYwLCA5MzM2NywgOTMzNzQsIDkzMzgxLCA5MzM4OCwgOTMzOTUsIDAsIDAsIDAsIDAsIDAsIDkzNDAyLCA5MzQwOCwgCisgICAgOTM0MTQsIDkzNDIwLCA5MzQyNiwgOTM0MzMsIDkzNDQwLCA5MzQ0OCwgOTM0NTYsIDkzNDYyLCA5MzQ2OCwgOTM0NzUsIAorICAgIDkzNDgxLCA5MzQ4NywgOTM0OTMsIDkzNDk5LCA5MzUwNiwgOTM1MTMsIDkzNTIwLCA5MzUyNywgOTM1MzQsIDkzNTQxLCAKKyAgICA5MzU0OCwgOTM1NTUsIDkzNTYyLCA5MzU2OSwgOTM1NzYsIDkzNTgzLCA5MzU5MCwgOTM1OTcsIDkzNjA0LCA5MzYxMSwgCisgICAgOTM2MTgsIDkzNjI1LCA5MzYzMiwgOTM2MzksIDkzNjQ2LCA5MzY1MywgOTM2NjAsIDkzNjY3LCA5MzY3NCwgOTM2ODEsIAorICAgIDkzNjg4LCA5MzY5NSwgOTM3MDIsIDkzNzA5LCA5MzcxNiwgOTM3MjMsIDkzNzMwLCA5MzczNywgOTM3NDQsIDkzNzUxLCAKKyAgICA5Mzc1OCwgOTM3NjUsIDkzNzcyLCA5Mzc3OSwgOTM3ODYsIDkzNzkzLCA5MzgwMCwgOTM4MDcsIDkzODE0LCA5MzgyMSwgCisgICAgOTM4MjgsIDkzODM1LCA5Mzg0MiwgOTM4NDksIDkzODU2LCA5Mzg2MywgOTM4NzAsIDkzODc3LCA5Mzg4NCwgOTM4OTEsIAorICAgIDkzODk4LCA5MzkwNSwgOTM5MTIsIDkzOTE5LCA5MzkyNiwgOTM5MzMsIDkzOTQwLCA5Mzk0NywgOTM5NTQsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDkyNjIyLCA5MjYyNiwgOTI2MzAsIAotICAgIDkyNjM0LCA5MjYzOCwgOTI2NDIsIDkyNjQ2LCA5MjY1MCwgOTI2NTQsIDkyNjU4LCA5MjY2MywgOTI2NjgsIDkyNjczLCAKLSAgICA5MjY3OCwgOTI2ODMsIDkyNjg4LCA5MjY5MywgOTI2OTgsIDkyNzAzLCA5MjcwOSwgOTI3MTUsIDkyNzIxLCA5MjcyOCwgCi0gICAgOTI3MzUsIDkyNzQyLCA5Mjc0OSwgOTI3NTYsIDkyNzYzLCA5Mjc3MCwgOTI3NzcsIDkyNzg0LCAwLCA5Mjc5MSwgOTI3OTUsIAotICAgIDkyNzk5LCA5MjgwMywgOTI4MDcsIDkyODExLCA5MjgxNCwgOTI4MTgsIDkyODIxLCA5MjgyNSwgOTI4MjgsIDkyODMyLCAKLSAgICA5MjgzNiwgOTI4NDEsIDkyODQ1LCA5Mjg1MCwgOTI4NTMsIDkyODU3LCA5Mjg2MCwgOTI4NjQsIDkyODY3LCA5Mjg3MSwgCi0gICAgOTI4NzUsIDkyODc5LCA5Mjg4MywgOTI4ODcsIDkyODkxLCA5Mjg5NSwgOTI4OTksIDkyOTAzLCA5MjkwNywgOTI5MTEsIAotICAgIDkyOTE1LCA5MjkxOSwgOTI5MjMsIDkyOTI3LCA5MjkzMSwgOTI5MzUsIDkyOTM5LCA5Mjk0MiwgOTI5NDUsIDkyOTQ5LCAKLSAgICA5Mjk1MywgOTI5NTcsIDkyOTYwLCA5Mjk2MywgOTI5NjYsIDkyOTcwLCA5Mjk3NCwgOTI5NzgsIDkyOTgyLCA5Mjk4NiwgCi0gICAgOTI5ODksIDkyOTkzLCA5Mjk5OSwgOTMwMDUsIDkzMDExLCA5MzAxNiwgOTMwMjMsIDkzMDI3LCA5MzAzMiwgOTMwMzYsIAotICAgIDkzMDQxLCA5MzA0NiwgOTMwNTIsIDkzMDU3LCA5MzA2MywgOTMwNjcsIDkzMDcyLCA5MzA3NiwgOTMwODEsIDkzMDg0LCAKLSAgICA5MzA4NywgOTMwOTEsIDkzMDk2LCA5MzEwMiwgOTMxMDcsIDkzMTEzLCAwLCAwLCAwLCAwLCA5MzExOCwgOTMxMjEsIAotICAgIDkzMTI0LCA5MzEyNywgOTMxMzAsIDkzMTMzLCA5MzEzNiwgOTMxMzksIDkzMTQyLCA5MzE0NSwgOTMxNDksIDkzMTUzLCAKLSAgICA5MzE1NywgOTMxNjEsIDkzMTY1LCA5MzE2OSwgOTMxNzMsIDkzMTc3LCA5MzE4MSwgOTMxODYsIDkzMTkxLCA5MzE5NSwgCi0gICAgOTMxOTgsIDkzMjAxLCA5MzIwNCwgOTMyMDcsIDkzMjEwLCA5MzIxMywgOTMyMTYsIDkzMjE5LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5MzIyMiwgOTMyMjYsIDkzMjMwLCA5MzIzNCwgOTMyMzcsIDkzMjQxLCAKLSAgICA5MzI0NCwgOTMyNDgsIDkzMjUxLCA5MzI1NSwgOTMyNTgsIDkzMjYyLCA5MzI2NSwgOTMyNjksIDkzMjcyLCA5MzI3NiwgCi0gICAgOTMyODAsIDkzMjg0LCA5MzI4OCwgOTMyOTIsIDkzMjk2LCA5MzMwMCwgOTMzMDQsIDkzMzA4LCA5MzMxMiwgOTMzMTYsIAotICAgIDkzMzIwLCA5MzMyNCwgOTMzMjgsIDkzMzMyLCA5MzMzNiwgOTMzNDAsIDkzMzQ0LCA5MzM0OCwgOTMzNTIsIDkzMzU1LCAKLSAgICA5MzM1OCwgOTMzNjIsIDkzMzY2LCA5MzM3MCwgOTMzNzMsIDkzMzc2LCA5MzM3OSwgOTMzODMsIDkzMzg3LCA5MzM5MSwgCi0gICAgOTMzOTUsIDkzMzk5LCA5MzQwMiwgOTM0MDcsIDkzNDExLCA5MzQxNiwgOTM0MjAsIDkzNDI1LCA5MzQyOSwgOTM0MzQsIAotICAgIDkzNDM4LCA5MzQ0MywgOTM0NDcsIDkzNDUxLCA5MzQ1NSwgOTM0NTksIDkzNDYyLCA5MzQ2NiwgOTM0NzEsIDkzNDc0LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA5Mzk2MSwgOTM5NjUsIDkzOTY5LCA5Mzk3MywgOTM5NzcsIDkzOTgxLCA5Mzk4NSwgOTM5ODksIAorICAgIDkzOTkzLCA5Mzk5NywgOTQwMDIsIDk0MDA3LCA5NDAxMiwgOTQwMTcsIDk0MDIyLCA5NDAyNywgOTQwMzIsIDk0MDM3LCAKKyAgICA5NDA0MiwgOTQwNDgsIDk0MDU0LCA5NDA2MCwgOTQwNjcsIDk0MDc0LCA5NDA4MSwgOTQwODgsIDk0MDk1LCA5NDEwMiwgCisgICAgOTQxMDksIDk0MTE2LCA5NDEyMywgMCwgOTQxMzAsIDk0MTM0LCA5NDEzOCwgOTQxNDIsIDk0MTQ2LCA5NDE1MCwgOTQxNTMsIAorICAgIDk0MTU3LCA5NDE2MCwgOTQxNjQsIDk0MTY3LCA5NDE3MSwgOTQxNzUsIDk0MTgwLCA5NDE4NCwgOTQxODksIDk0MTkyLCAKKyAgICA5NDE5NiwgOTQxOTksIDk0MjAzLCA5NDIwNiwgOTQyMTAsIDk0MjE0LCA5NDIxOCwgOTQyMjIsIDk0MjI2LCA5NDIzMCwgCisgICAgOTQyMzQsIDk0MjM4LCA5NDI0MiwgOTQyNDYsIDk0MjUwLCA5NDI1NCwgOTQyNTgsIDk0MjYyLCA5NDI2NiwgOTQyNzAsIAorICAgIDk0Mjc0LCA5NDI3OCwgOTQyODEsIDk0Mjg0LCA5NDI4OCwgOTQyOTIsIDk0Mjk2LCA5NDI5OSwgOTQzMDIsIDk0MzA1LCAKKyAgICA5NDMwOSwgOTQzMTMsIDk0MzE3LCA5NDMyMSwgOTQzMjQsIDk0MzI3LCA5NDMzMSwgOTQzMzcsIDk0MzQzLCA5NDM0OSwgCisgICAgOTQzNTQsIDk0MzYxLCA5NDM2NSwgOTQzNzAsIDk0Mzc0LCA5NDM3OSwgOTQzODQsIDk0MzkwLCA5NDM5NSwgOTQ0MDEsIAorICAgIDk0NDA1LCA5NDQxMCwgOTQ0MTQsIDk0NDE5LCA5NDQyMiwgOTQ0MjUsIDk0NDI5LCA5NDQzNCwgOTQ0NDAsIDk0NDQ1LCAKKyAgICA5NDQ1MSwgMCwgMCwgMCwgMCwgOTQ0NTYsIDk0NDU5LCA5NDQ2MiwgOTQ0NjUsIDk0NDY4LCA5NDQ3MSwgOTQ0NzQsIAorICAgIDk0NDc3LCA5NDQ4MCwgOTQ0ODMsIDk0NDg3LCA5NDQ5MSwgOTQ0OTUsIDk0NDk5LCA5NDUwMywgOTQ1MDcsIDk0NTExLCAKKyAgICA5NDUxNSwgOTQ1MTksIDk0NTI0LCA5NDUyOSwgOTQ1MzMsIDk0NTM2LCA5NDUzOSwgOTQ1NDIsIDk0NTQ1LCA5NDU0OCwgCisgICAgOTQ1NTEsIDk0NTU0LCA5NDU1NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgOTQ1NjAsIDk0NTY1LCA5NDU3MCwgOTQ1NzUsIDk0NTc5LCA5NDU4NCwgOTQ1ODgsIDk0NTkzLCA5NDU5NywgOTQ2MDIsIAorICAgIDk0NjA2LCA5NDYxMSwgOTQ2MTUsIDk0NjIwLCA5NDYyNCwgOTQ2MjksIDk0NjM0LCA5NDYzOSwgOTQ2NDQsIDk0NjQ5LCAKKyAgICA5NDY1NCwgOTQ2NTksIDk0NjY0LCA5NDY2OSwgOTQ2NzQsIDk0Njc5LCA5NDY4NCwgOTQ2ODksIDk0Njk0LCA5NDY5OSwgCisgICAgOTQ3MDQsIDk0NzA5LCA5NDcxNCwgOTQ3MTksIDk0NzI0LCA5NDcyOCwgOTQ3MzIsIDk0NzM3LCA5NDc0MiwgOTQ3NDcsIAorICAgIDk0NzUxLCA5NDc1NSwgOTQ3NTksIDk0NzY0LCA5NDc2OSwgOTQ3NzQsIDk0Nzc5LCA5NDc4MywgOTQ3ODcsIDk0NzkzLCAKKyAgICA5NDc5OCwgOTQ4MDQsIDk0ODA5LCA5NDgxNSwgOTQ4MjAsIDk0ODI2LCA5NDgzMSwgOTQ4MzcsIDk0ODQyLCA5NDg0NywgCisgICAgOTQ4NTIsIDk0ODU3LCA5NDg2MSwgOTQ4NjYsIDk0ODcyLCA5NDg3NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgOTQ4ODEsIDk0ODg4LCA5NDg5NSwgOTQ5MDIsIDk0OTA5LCA5NDkxNiwgOTQ5MjMsIDk0OTMwLCAKKyAgICA5NDkzNywgOTQ5NDQsIDk0OTUxLCA5NDk1OCwgOTQ5NjUsIDk0OTcyLCA5NDk3OSwgOTQ5ODYsIDk0OTkzLCA5NTAwMCwgCisgICAgOTUwMDcsIDk1MDE0LCA5NTAyMSwgOTUwMjgsIDk1MDM1LCA5NTA0MiwgOTUwNDksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDk1MDU2LCA5NTA2MywgOTUwNjksIDk1MDc1LCA5NTA4MSwgOTUwODcsIDk1MDkzLCA5NTA5OSwgOTUxMDUsIDk1MTExLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA5NTExNywgOTUxMjIsIDk1MTI3LCA5NTEzMiwgOTUxMzcsIDk1MTQxLCA5NTE0NSwgOTUxNDksIAorICAgIDk1MTU0LCA5NTE1OSwgOTUxNjQsIDk1MTY5LCA5NTE3NCwgOTUxNzksIDk1MTg0LCA5NTE4OSwgOTUxOTQsIDk1MTk5LCAKKyAgICA5NTIwNCwgOTUyMDksIDk1MjE0LCA5NTIxOSwgOTUyMjQsIDk1MjI5LCA5NTIzNCwgOTUyMzksIDk1MjQ0LCA5NTI0OSwgCisgICAgOTUyNTQsIDk1MjU5LCA5NTI2NCwgOTUyNjksIDk1Mjc0LCA5NTI3OSwgOTUyODQsIDk1Mjg5LCA5NTI5NCwgOTUyOTksIAorICAgIDk1MzA0LCA5NTMwOSwgOTUzMTQsIDk1MzE5LCA5NTMyNSwgOTUzMzAsIDk1MzM2LCA5NTM0MSwgOTUzNDcsIDk1MzUyLCAKKyAgICA5NTM1OCwgOTUzNjQsIDk1MzY4LCA5NTM3MywgOTUzNzcsIDAsIDk1MzgxLCA5NTM4NiwgOTUzOTAsIDk1Mzk0LCA5NTM5OCwgCisgICAgOTU0MDIsIDk1NDA2LCA5NTQxMCwgOTU0MTQsIDk1NDE4LCA5NTQyMiwgOTU0MjcsIDk1NDMxLCA5NTQzNiwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTM0NzgsIDkzNDgxLCA5MzQ4NiwgOTM0OTIsIDkzNTAwLCAKLSAgICA5MzUwNSwgOTM1MTEsIDkzNTE5LCA5MzUyNSwgOTM1MzEsIDkzNTM1LCA5MzUzOSwgOTM1NDYsIDkzNTU1LCA5MzU2MiwgCi0gICAgOTM1NzEsIDkzNTc3LCA5MzU4NiwgOTM1OTMsIDkzNjAwLCA5MzYwNywgOTM2MTcsIDkzNjIzLCA5MzYyNywgOTM2MzQsIAotICAgIDkzNjQzLCA5MzY1MywgOTM2NjAsIDkzNjY3LCA5MzY3MSwgOTM2NzUsIDkzNjgyLCA5MzY5MiwgOTM2OTYsIDkzNzAzLCAKLSAgICA5MzcxMCwgOTM3MTcsIDkzNzIzLCA5MzczMCwgOTM3MzcsIDkzNzQ0LCA5Mzc1MSwgOTM3NTUsIDkzNzU5LCA5Mzc2MywgCi0gICAgOTM3NzAsIDkzNzc0LCA5Mzc4MSwgOTM3ODgsIDkzODAyLCA5MzgxMSwgOTM4MTUsIDkzODE5LCA5MzgyMywgOTM4MzAsIAotICAgIDkzODM0LCA5MzgzOCwgOTM4NDIsIDkzODUwLCA5Mzg1OCwgOTM4NzcsIDkzODg3LCA5MzkwNywgOTM5MTEsIDkzOTE1LCAKLSAgICA5MzkxOSwgOTM5MjMsIDkzOTI3LCA5MzkzMSwgOTM5MzUsIDkzOTQyLCA5Mzk0NiwgOTM5NDksIDkzOTUzLCA5Mzk1NywgCi0gICAgOTM5NjMsIDkzOTcwLCA5Mzk3OSwgOTM5ODMsIDkzOTkyLCA5NDAwMSwgOTQwMDksIDk0MDEzLCA5NDAyMCwgOTQwMjQsIAotICAgIDk0MDI4LCA5NDAzMiwgOTQwMzYsIDk0MDQ3LCA5NDA1NiwgOTQwNjUsIDk0MDc0LCA5NDA4MywgOTQwOTUsIDk0MTA0LCAKLSAgICA5NDExMywgOTQxMjIsIDk0MTMwLCA5NDEzOSwgOTQxNTEsIDk0MTYwLCA5NDE2OSwgOTQxNzgsIDk0MTkwLCA5NDE5OSwgCi0gICAgOTQyMDgsIDk0MjIwLCA5NDIyOSwgOTQyMzgsIDk0MjUwLCA5NDI1OSwgOTQyNjMsIDk0MjY3LCA5NDI3MSwgOTQyNzUsIAotICAgIDk0Mjc5LCA5NDI4MywgOTQyODcsIDk0Mjk0LCA5NDI5OCwgOTQzMDIsIDk0MzEzLCA5NDMxNywgOTQzMjEsIDk0MzI4LCAKLSAgICA5NDMzNCwgOTQzNDAsIDk0MzQ0LCA5NDM1MSwgOTQzNTUsIDk0MzU5LCA5NDM2MywgOTQzNjcsIDk0MzcxLCA5NDM3NSwgCi0gICAgOTQzODEsIDk0Mzg5LCA5NDM5MywgOTQzOTcsIDk0NDAwLCA5NDQwNiwgOTQ0MTYsIDk0NDIwLCA5NDQzMiwgOTQ0MzksIAotICAgIDk0NDQ2LCA5NDQ1MywgOTQ0NjAsIDk0NDY2LCA5NDQ3MCwgOTQ0NzQsIDk0NDc4LCA5NDQ4MiwgOTQ0ODksIDk0NDk4LCAKLSAgICA5NDUwNSwgOTQ1MTMsIDk0NTIxLCA5NDUyNywgOTQ1MzEsIDk0NTM1LCA5NDUzOSwgOTQ1NDMsIDk0NTQ5LCA5NDU1OCwgCi0gICAgOTQ1NzAsIDk0NTc3LCA5NDU4NCwgOTQ1OTMsIDk0NjA0LCA5NDYxMCwgOTQ2MTksIDk0NjI4LCA5NDYzNSwgOTQ2NDQsIAotICAgIDk0NjUxLCA5NDY1OCwgOTQ2NjgsIDk0Njc1LCA5NDY4MiwgOTQ2ODksIDk0Njk2LCA5NDcwMCwgOTQ3MDYsIDk0NzEwLCAKLSAgICA5NDcyMSwgOTQ3MjksIDk0NzM4LCA5NDc1MCwgOTQ3NTcsIDk0NzY0LCA5NDc3NCwgOTQ3ODEsIDk0NzkwLCA5NDc5NywgCi0gICAgOTQ4MDYsIDk0ODEzLCA5NDgyMCwgOTQ4MzAsIDk0ODM3LCA5NDg0NCwgOTQ4NTQsIDk0ODYxLCA5NDg3MywgOTQ4ODIsIAotICAgIDk0ODg5LCA5NDg5NiwgOTQ5MDMsIDk0OTEyLCA5NDkyMiwgOTQ5MzUsIDk0OTQyLCA5NDk1MiwgOTQ5NjIsIDk0OTY5LCAKLSAgICA5NDk3OCwgOTQ5OTEsIDk0OTk4LCA5NTAwNSwgOTUwMTIsIDk1MDIyLCA5NTAzMiwgOTUwMzksIDk1MDQ5LCA5NTA1NiwgCi0gICAgOTUwNjMsIDk1MDczLCA5NTA3OSwgOTUwODYsIDk1MDkzLCA5NTEwMCwgOTUxMTAsIDk1MTE3LCA5NTEyNCwgOTUxMzEsIAotICAgIDk1MTM3LCA5NTE0NCwgOTUxNTQsIDk1MTYxLCA5NTE2NSwgOTUxNzMsIDk1MTc3LCA5NTE4OSwgOTUxOTMsIDk1MjA3LCAKLSAgICA5NTIxMSwgOTUyMTUsIDk1MjE5LCA5NTIyMywgOTUyMjksIDk1MjM2LCA5NTI0NCwgOTUyNDgsIDk1MjUyLCA5NTI1NiwgCi0gICAgOTUyNjAsIDk1MjY3LCA5NTI3MSwgOTUyNzcsIDk1MjgzLCA5NTI5MSwgOTUyOTUsIDk1MzAyLCA5NTMxMCwgOTUzMTQsIAotICAgIDk1MzE4LCA5NTMyNCwgOTUzMjgsIDk1MzM3LCA5NTM0NiwgOTUzNTMsIDk1MzYzLCA5NTM2OSwgOTUzNzMsIDk1Mzc3LCAKLSAgICA5NTM4NSwgOTUzOTIsIDk1Mzk5LCA5NTQwNSwgOTU0MDksIDk1NDE3LCA5NTQyMSwgOTU0MjgsIDk1NDQwLCA5NTQ0NywgCi0gICAgOTU0NTcsIDk1NDYzLCA5NTQ2NywgOTU0NzYsIDk1NDgzLCA5NTQ5MiwgOTU0OTYsIDk1NTAwLCA5NTUwNywgOTU1MTEsIAotICAgIDk1NTE1LCA5NTUxOSwgOTU1MjMsIDk1NTI2LCA5NTUzMiwgOTU1MzgsIDk1NTQyLCA5NTU0NiwgOTU1NTMsIDk1NTYwLCAKLSAgICA5NTU2NywgOTU1NzQsIDk1NTgxLCA5NTU4OCwgOTU1OTUsIDk1NjAyLCA5NTYwOCwgOTU2MTIsIDk1NjE2LCA5NTYyMywgCi0gICAgOTU2MzAsIDk1NjM3LCA5NTY0NCwgOTU2NTEsIDk1NjU1LCA5NTY1OCwgOTU2NjMsIDk1NjY3LCA5NTY3MSwgOTU2ODAsIAotICAgIDk1Njg5LCA5NTY5MywgOTU2OTcsIDk1NzAzLCA5NTcwOSwgOTU3MjYsIDk1NzMyLCA5NTczNiwgOTU3NDUsIDk1NzQ5LCAKLSAgICA5NTc1MywgOTU3NjAsIDk1NzY4LCA5NTc3NiwgOTU3ODIsIDk1Nzg2LCA5NTc5MCwgOTU3OTQsIDk1Nzk4LCA5NTgwMSwgCi0gICAgOTU4MDcsIDk1ODE0LCA5NTgyNCwgOTU4MzEsIDk1ODM4LCA5NTg0NSwgOTU4NTEsIDk1ODU4LCA5NTg2NSwgOTU4NzIsIAotICAgIDk1ODc5LCA5NTg4NiwgOTU4OTUsIDk1OTAyLCA5NTkxNCwgOTU5MjEsIDk1OTI4LCA5NTkzOCwgOTU5NDksIDk1OTU2LCAKLSAgICA5NTk2MywgOTU5NzAsIDk1OTc3LCA5NTk4NCwgOTU5OTEsIDk1OTk4LCA5NjAwNSwgOTYwMTIsIDk2MDE5LCA5NjAyOSwgCi0gICAgOTYwMzksIDk2MDQ5LCA5NjA1NiwgOTYwNjYsIDk2MDczLCA5NjA4MCwgOTYwODcsIDk2MDk0LCA5NjEwMSwgOTYxMDgsIAotICAgIDk2MTE1LCA5NjEyMiwgOTYxMjksIDk2MTM2LCA5NjE0MywgOTYxNTAsIDk2MTU3LCA5NjE2MywgOTYxNzAsIDk2MTc3LCAKLSAgICA5NjE4NiwgOTYxOTMsIDk2MjAwLCA5NjIwNCwgOTYyMTIsIDk2MjE2LCA5NjIyMCwgOTYyMjQsIDk2MjI4LCA5NjIzMiwgCi0gICAgOTYyMzksIDk2MjQzLCA5NjI1MiwgOTYyNTYsIDk2MjYzLCA5NjI3MSwgOTYyNzUsIDk2Mjc5LCA5NjI4MywgOTYyOTYsIAotICAgIDk2MzEyLCA5NjMxNiwgOTYzMjAsIDk2MzI3LCA5NjMzMywgOTYzNDAsIDk2MzQ0LCA5NjM0OCwgOTYzNTIsIDk2MzU2LCAKLSAgICA5NjM2MCwgOTYzNjcsIDk2MzcxLCA5NjM4OSwgOTYzOTMsIDk2Mzk3LCA5NjQwNCwgOTY0MDgsIDk2NDEyLCA5NjQxOCwgCi0gICAgOTY0MjIsIDk2NDI2LCA5NjQzNCwgOTY0MzgsIDk2NDQyLCA5NjQ0NiwgOTY0NTAsIDk2NDU2LCA5NjQ2NywgOTY0NzYsIAotICAgIDk2NDg1LCA5NjQ5MiwgOTY0OTksIDk2NTEwLCA5NjUxNywgOTY1MjQsIDk2NTMxLCA5NjUzOCwgOTY1NDUsIDk2NTUyLCAKLSAgICA5NjU1OSwgOTY1NjksIDk2NTc1LCA5NjU4MiwgOTY1OTIsIDk2NjAxLCA5NjYwOCwgOTY2MTcsIDk2NjI3LCA5NjYzNCwgCi0gICAgOTY2NDEsIDk2NjQ4LCA5NjY1NSwgOTY2NjcsIDk2Njc0LCA5NjY4MSwgOTY2ODgsIDk2Njk1LCA5NjcwMiwgOTY3MTIsIAotICAgIDk2NzE5LCA5NjcyNiwgOTY3MzYsIDk2NzQ5LCA5Njc2MSwgOTY3NjgsIDk2Nzc4LCA5Njc4NSwgOTY3OTIsIDk2Nzk5LCAKLSAgICA5NjgxMywgOTY4MTksIDk2ODI3LCA5NjgzNywgOTY4NDcsIDk2ODU0LCA5Njg2MSwgOTY4NjcsIDk2ODcxLCA5Njg3OCwgCi0gICAgOTY4ODgsIDk2ODk0LCA5NjkwNywgOTY5MTEsIDk2OTE1LCA5NjkyMiwgOTY5MjYsIDk2OTMzLCA5Njk0MywgOTY5NDcsIAotICAgIDk2OTUxLCA5Njk1NSwgOTY5NTksIDk2OTYzLCA5Njk3MCwgOTY5NzQsIDk2OTgxLCA5Njk4OCwgOTY5OTUsIDk3MDA0LCAKLSAgICA5NzAxMywgOTcwMjMsIDk3MDMwLCA5NzAzNywgOTcwNDQsIDk3MDU0LCA5NzA2MSwgOTcwNzEsIDk3MDc4LCA5NzA4OCwgCi0gICAgOTcwOTUsIDk3MTAyLCA5NzExMiwgOTcxMjIsIDk3MTI5LCA5NzEzNSwgOTcxNDMsIDk3MTUxLCA5NzE1NywgOTcxNjMsIAotICAgIDk3MTY3LCA5NzE3MSwgOTcxNzgsIDk3MTg2LCA5NzE5MiwgOTcxOTYsIDk3MjAwLCA5NzIwNCwgOTcyMTEsIDk3MjIzLCAKLSAgICA5NzIyNiwgOTcyMzMsIDk3MjM5LCA5NzI0MywgOTcyNDcsIDk3MjUxLCA5NzI1NSwgOTcyNTksIDk3MjYzLCA5NzI2NywgCi0gICAgOTcyNzEsIDk3Mjc1LCA5NzI3OSwgOTcyODYsIDk3MjkwLCA5NzI5NiwgOTczMDAsIDk3MzA0LCA5NzMwOCwgOTczMTQsIAotICAgIDk3MzIxLCA5NzMyOCwgOTczMzUsIDk3MzQ2LCA5NzM1NCwgOTczNTgsIDk3MzY0LCA5NzM3MywgOTczODAsIDk3Mzg2LCAKLSAgICA5NzM4OSwgOTczOTMsIDk3Mzk3LCA5NzQwMywgOTc0MTIsIDk3NDIwLCA5NzQyNCwgOTc0MzAsIDk3NDM0LCA5NzQzOCwgCi0gICAgOTc0NDIsIDk3NDQ4LCA5NzQ1NSwgOTc0NjEsIDk3NDY1LCA5NzQ3MSwgOTc0NzUsIDk3NDc5LCA5NzQ4OCwgOTc1MDAsIAotICAgIDk3NTA0LCA5NzUxMSwgOTc1MTgsIDk3NTI4LCA5NzUzNSwgOTc1NDcsIDk3NTU0LCA5NzU2MSwgOTc1NjgsIDk3NTc5LCAKLSAgICA5NzU4OSwgOTc2MDIsIDk3NjEyLCA5NzYxOSwgOTc2MjMsIDk3NjI3LCA5NzYzMSwgOTc2MzUsIDk3NjQ0LCA5NzY1MywgCi0gICAgOTc2NjIsIDk3Njc5LCA5NzY4OCwgOTc2OTQsIDk3NzAxLCA5NzcwOSwgOTc3MjIsIDk3NzI2LCA5NzczNSwgOTc3NDQsIAotICAgIDk3NzUzLCA5Nzc2MiwgOTc3NzMsIDk3NzgyLCA5Nzc5MSwgOTc4MDAsIDk3ODA5LCA5NzgxOCwgOTc4MjcsIDk3ODM3LCAKLSAgICA5Nzg0MCwgOTc4NDQsIDk3ODQ4LCA5Nzg1MiwgOTc4NTYsIDk3ODYwLCA5Nzg2NiwgOTc4NzMsIDk3ODgwLCA5Nzg4NywgCi0gICAgOTc4OTMsIDk3ODk5LCA5NzkwNiwgOTc5MTIsIDk3OTE5LCA5NzkyNywgOTc5MzEsIDk3OTM4LCA5Nzk0NSwgOTc5NTIsIAotICAgIDk3OTYwLCA5Nzk2MywgOTc5NjcsIDk3OTcxLCA5Nzk3NSwgOTc5NzksIDk3OTg1LCA5Nzk4OSwgOTc5OTUsIDk4MDAyLCAKLSAgICA5ODAwOSwgOTgwMTUsIDk4MDIyLCA5ODAyOSwgOTgwMzYsIDk4MDQzLCA5ODA1MCwgOTgwNTcsIDk4MDY0LCA5ODA3MSwgCi0gICAgOTgwNzgsIDk4MDg1LCA5ODA5MiwgOTgwOTksIDk4MTA2LCA5ODExMywgOTgxMTksIDk4MTIzLCA5ODEzMiwgOTgxMzYsIAotICAgIDk4MTQwLCA5ODE0NCwgOTgxNDgsIDk4MTU0LCA5ODE2MSwgOTgxNjgsIDk4MTc1LCA5ODE4MiwgOTgxODksIDk4MTk1LCAKLSAgICA5ODIwMywgOTgyMDcsIDk4MjExLCA5ODIxNSwgOTgyMTksIDk4MjI1LCA5ODI0MiwgOTgyNTksIDk4MjYzLCA5ODI2NywgCi0gICAgOTgyNzEsIDk4Mjc1LCA5ODI3OSwgOTgyODMsIDk4Mjg5LCA5ODI5NiwgOTgzMDAsIDk4MzA2LCA5ODMxMywgOTgzMjAsIAotICAgIDk4MzI3LCA5ODMzNCwgOTgzNDEsIDk4MzUwLCA5ODM1NywgOTgzNjQsIDk4MzcxLCA5ODM3OCwgOTgzODIsIDk4Mzg2LCAKLSAgICA5ODM5MiwgOTg0MDQsIDk4NDA4LCA5ODQxMiwgOTg0MjEsIDk4NDI1LCA5ODQyOSwgOTg0MzMsIDk4NDM5LCA5ODQ0MywgCi0gICAgOTg0NDcsIDk4NDU2LCA5ODQ2MCwgOTg0NjQsIDk4NDY4LCA5ODQ3NSwgOTg0NzksIDk4NDgzLCA5ODQ4NywgOTg0OTEsIAotICAgIDk4NDk1LCA5ODQ5OSwgOTg1MDMsIDk4NTA3LCA5ODUxMywgOTg1MjAsIDk4NTI3LCA5ODUzMywgOTg1MzcsIDk4NTU0LCAKLSAgICA5ODU2MCwgOTg1NjQsIDk4NTcwLCA5ODU3NiwgOTg1ODIsIDk4NTg4LCA5ODU5NCwgOTg2MDAsIDk4NjA0LCA5ODYwOCwgCi0gICAgOTg2MTIsIDk4NjE4LCA5ODYyMiwgOTg2MjgsIDk4NjMyLCA5ODYzNiwgOTg2NDMsIDk4NjUwLCA5ODY2NywgOTg2NzEsIAotICAgIDk4Njc1LCA5ODY3OSwgOTg2ODMsIDk4Njg3LCA5ODY5OSwgOTg3MDIsIDk4NzA3LCA5ODcxMiwgOTg3MjcsIDk4NzM3LCAKLSAgICA5ODc0OSwgOTg3NTMsIDk4NzU3LCA5ODc2MSwgOTg3NjcsIDk4Nzc0LCA5ODc4MSwgOTg3OTEsIDk4ODAzLCA5ODgwOSwgCi0gICAgOTg4MTUsIDk4ODI0LCA5ODgyOCwgOTg4MzIsIDk4ODM5LCA5ODg0OSwgOTg4NTYsIDk4ODYyLCA5ODg2NiwgOTg4NzAsIAotICAgIDk4ODc3LCA5ODg4MywgOTg4ODcsIDk4ODkzLCA5ODg5NywgOTg5MDUsIDk4OTExLCA5ODkxNSwgOTg5MjMsIDk4OTMxLCAKLSAgICA5ODkzOCwgOTg5NDQsIDk4OTUxLCA5ODk1OCwgOTg5NjgsIDk4OTc4LCA5ODk4MiwgOTg5ODYsIDk4OTkwLCA5ODk5NCwgCi0gICAgOTkwMDAsIDk5MDA3LCA5OTAxMywgOTkwMjAsIDk5MDI3LCA5OTAzNCwgOTkwNDMsIDk5MDUwLCA5OTA1NywgOTkwNjMsIAotICAgIDk5MDcwLCA5OTA3NywgOTkwODQsIDk5MDkxLCA5OTA5OCwgOTkxMDUsIDk5MTExLCA5OTExOCwgOTkxMjUsIDk5MTMyLCAKLSAgICA5OTE0MSwgOTkxNDgsIDk5MTU1LCA5OTE1OSwgOTkxNjUsIDk5MTY5LCA5OTE3NSwgOTkxODIsIDk5MTg5LCA5OTE5NiwgCi0gICAgOTkyMDAsIDk5MjA0LCA5OTIwOCwgOTkyMTIsIDk5MjE2LCA5OTIyMywgOTkyMjcsIDk5MjMxLCA5OTIzNywgOTkyNDUsIAotICAgIDk5MjQ5LCA5OTI1MywgOTkyNTcsIDk5MjYxLCA5OTI2OCwgOTkyNzIsIDk5Mjc2LCA5OTI4NCwgOTkyODgsIDk5MjkyLCAKLSAgICA5OTI5NiwgOTkzMDAsIDk5MzA2LCA5OTMxMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgOTkzMTQsIDk5MzIwLCA5OTMyNiwgOTkzMzMsIDk5MzQwLCA5OTM0NywgOTkzNTQsIDk5MzYxLCA5OTM2OCwgCi0gICAgOTkzNzQsIDk5MzgxLCA5OTM4OCwgOTkzOTUsIDk5NDAyLCA5OTQwOSwgOTk0MTYsIDk5NDIyLCA5OTQyOCwgOTk0MzQsIAotICAgIDk5NDQwLCA5OTQ0NiwgOTk0NTIsIDk5NDU4LCA5OTQ2NCwgOTk0NzAsIDk5NDc3LCA5OTQ4NCwgOTk0OTEsIDk5NDk4LCAKLSAgICA5OTUwNSwgOTk1MTIsIDk5NTE4LCA5OTUyNCwgOTk1MzAsIDk5NTM3LCA5OTU0NCwgOTk1NTAsIDk5NTU2LCA5OTU2NSwgCi0gICAgOTk1NzIsIDk5NTc5LCA5OTU4NiwgOTk1OTMsIDk5NjAwLCA5OTYwNywgOTk2MTMsIDk5NjE5LCA5OTYyNSwgOTk2MzQsIAotICAgIDk5NjQxLCA5OTY0OCwgOTk2NTksIDk5NjcwLCA5OTY3NiwgOTk2ODIsIDk5Njg4LCA5OTY5NywgOTk3MDQsIDk5NzExLCAKLSAgICA5OTcyMSwgOTk3MzEsIDk5NzQyLCA5OTc1MywgOTk3NjUsIDk5Nzc4LCA5OTc4OSwgOTk4MDAsIDk5ODEyLCA5OTgyNSwgCi0gICAgOTk4MzYsIDk5ODQ3LCA5OTg1OCwgOTk4NjksIDk5ODgwLCA5OTg5MiwgOTk5MDAsIDk5OTA4LCA5OTkxNywgOTk5MjYsIAotICAgIDk5OTM1LCA5OTk0MSwgOTk5NDcsIDk5OTUzLCA5OTk2MCwgOTk5NzAsIDk5OTc3LCA5OTk4NywgOTk5OTIsIDk5OTk3LCAKLSAgICAxMDAwMDMsIDEwMDAwOSwgMTAwMDE3LCAxMDAwMjUsIDEwMDAzNCwgMTAwMDQ1LCAxMDAwNTYsIDEwMDA2NCwgMTAwMDcyLCAKLSAgICAxMDAwODEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwMDA5MCwgMTAwMTAxLCAxMDAxMDgsIAotICAgIDEwMDExNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTAwMTI0LCAxMDAxMjgsIDEwMDEzMiwgCi0gICAgMTAwMTM2LCAxMDAxNDAsIDEwMDE0NCwgMTAwMTQ4LCAxMDAxNTIsIDEwMDE1NiwgMTAwMTYwLCAxMDAxNjQsIDEwMDE2OCwgCi0gICAgMTAwMTcyLCAxMDAxNzYsIDEwMDE4MCwgMTAwMTg0LCAxMDAxODgsIDEwMDE5MiwgMTAwMTk2LCAxMDAyMDAsIDEwMDIwNCwgCi0gICAgMTAwMjA4LCAxMDAyMTIsIDEwMDIxNiwgMTAwMjIwLCAxMDAyMjQsIDEwMDIyOCwgMTAwMjMyLCAxMDAyMzYsIDEwMDI0MCwgCi0gICAgMTAwMjQ0LCAxMDAyNDgsIDEwMDI1MiwgMTAwMjU2LCAxMDAyNjAsIDEwMDI2NCwgMTAwMjY4LCAxMDAyNzIsIDEwMDI3NiwgCi0gICAgMTAwMjgwLCAxMDAyODQsIDEwMDI4OCwgMTAwMjkyLCAxMDAyOTYsIDEwMDMwMCwgMTAwMzA0LCAxMDAzMDgsIDEwMDMxMiwgCi0gICAgMTAwMzE2LCAxMDAzMjAsIDEwMDMyNCwgMTAwMzI4LCAxMDAzMzIsIDEwMDMzNiwgMTAwMzQwLCAxMDAzNDQsIDEwMDM0OCwgCi0gICAgMTAwMzUyLCAxMDAzNTYsIDEwMDM2MCwgMTAwMzY0LCAxMDAzNjgsIDEwMDM3MiwgMTAwMzc2LCAxMDAzODAsIDEwMDM4NCwgCi0gICAgMTAwMzg4LCAxMDAzOTIsIDEwMDM5NiwgMTAwNDAwLCAxMDA0MDQsIDEwMDQwOCwgMTAwNDEyLCAxMDA0MTYsIDEwMDQyMCwgCi0gICAgMTAwNDI0LCAxMDA0MjgsIDEwMDQzMiwgMTAwNDM2LCAxMDA0NDAsIDEwMDQ0NCwgMTAwNDQ4LCAxMDA0NTIsIDEwMDQ1NiwgCi0gICAgMTAwNDYwLCAxMDA0NjQsIDEwMDQ2OCwgMTAwNDcyLCAxMDA0NzYsIDEwMDQ4MCwgMTAwNDg0LCAxMDA0ODgsIDEwMDQ5MiwgCi0gICAgMTAwNDk2LCAxMDA1MDAsIDEwMDUwNCwgMTAwNTA4LCAxMDA1MTIsIDEwMDUxNiwgMTAwNTIwLCAxMDA1MjQsIDEwMDUyOCwgCi0gICAgMTAwNTMyLCAxMDA1MzYsIDEwMDU0MCwgMTAwNTQ0LCAxMDA1NDgsIDEwMDU1MiwgMTAwNTU2LCAxMDA1NjAsIDEwMDU2NCwgCi0gICAgMTAwNTY4LCAxMDA1NzIsIDEwMDU3NiwgMTAwNTgwLCAxMDA1ODQsIDEwMDU4OCwgMTAwNTkyLCAxMDA1OTYsIDEwMDYwMCwgCi0gICAgMTAwNjA0LCAxMDA2MDgsIDEwMDYxMiwgMTAwNjE2LCAxMDA2MjAsIDEwMDYyNCwgMTAwNjI4LCAxMDA2MzIsIDEwMDYzNiwgCi0gICAgMTAwNjQwLCAxMDA2NDQsIDEwMDY0OCwgMTAwNjUyLCAxMDA2NTYsIDEwMDY2MCwgMTAwNjY0LCAxMDA2NjgsIDEwMDY3MiwgCi0gICAgMTAwNjc2LCAxMDA2ODAsIDEwMDY4NCwgMTAwNjg4LCAxMDA2OTIsIDEwMDY5NiwgMTAwNzAwLCAxMDA3MDQsIDEwMDcwOCwgCi0gICAgMTAwNzEyLCAxMDA3MTYsIDEwMDcyMCwgMTAwNzI0LCAxMDA3MjgsIDEwMDczMiwgMTAwNzM2LCAxMDA3NDAsIDEwMDc0NCwgCi0gICAgMTAwNzQ4LCAxMDA3NTIsIDEwMDc1NiwgMTAwNzYwLCAxMDA3NjQsIDEwMDc2OCwgMTAwNzcyLCAxMDA3NzYsIDEwMDc4MCwgCi0gICAgMTAwNzg0LCAxMDA3ODgsIDEwMDc5MiwgMTAwNzk2LCAxMDA4MDAsIDEwMDgwNCwgMTAwODA4LCAxMDA4MTIsIDEwMDgxNiwgCi0gICAgMTAwODIwLCAxMDA4MjQsIDEwMDgyOCwgMTAwODMyLCAxMDA4MzYsIDEwMDg0MCwgMTAwODQ0LCAxMDA4NDgsIDEwMDg1MiwgCi0gICAgMTAwODU2LCAxMDA4NjAsIDEwMDg2NCwgMTAwODY4LCAxMDA4NzIsIDEwMDg3NiwgMTAwODgwLCAxMDA4ODQsIDEwMDg4OCwgCi0gICAgMTAwODkyLCAxMDA4OTYsIDEwMDkwMCwgMTAwOTA0LCAxMDA5MDgsIDEwMDkxMiwgMTAwOTE2LCAxMDA5MjAsIDEwMDkyNCwgCi0gICAgMTAwOTI4LCAxMDA5MzIsIDEwMDkzNiwgMTAwOTQwLCAxMDA5NDQsIDEwMDk0OCwgMTAwOTUyLCAxMDA5NTYsIDEwMDk2MCwgCi0gICAgMTAwOTY0LCAxMDA5NjgsIDEwMDk3MiwgMTAwOTc2LCAxMDA5ODAsIDEwMDk4NCwgMTAwOTg4LCAxMDA5OTIsIDEwMDk5NiwgCi0gICAgMTAxMDAwLCAxMDEwMDQsIDEwMTAwOCwgMTAxMDEyLCAxMDEwMTYsIDEwMTAyMCwgMTAxMDI0LCAxMDEwMjgsIDEwMTAzMiwgCi0gICAgMTAxMDM2LCAxMDEwNDAsIDEwMTA0NCwgMTAxMDQ4LCAxMDEwNTIsIDEwMTA1NiwgMTAxMDYwLCAxMDEwNjQsIDEwMTA2OCwgCi0gICAgMTAxMDcyLCAxMDEwNzYsIDEwMTA4MCwgMTAxMDg0LCAxMDEwODgsIDEwMTA5MiwgMTAxMDk2LCAxMDExMDAsIDEwMTEwNCwgCi0gICAgMTAxMTA4LCAxMDExMTIsIDEwMTExNiwgMTAxMTIwLCAxMDExMjQsIDEwMTEyOCwgMTAxMTMyLCAxMDExMzYsIDEwMTE0MCwgCi0gICAgMTAxMTQ0LCAxMDExNDgsIDEwMTE1MiwgMTAxMTU2LCAxMDExNjAsIDEwMTE2NCwgMTAxMTY4LCAxMDExNzIsIDEwMTE3NiwgCi0gICAgMTAxMTgwLCAxMDExODQsIDEwMTE4OCwgMTAxMTkyLCAxMDExOTYsIDEwMTIwMCwgMTAxMjA0LCAxMDEyMDgsIDEwMTIxMiwgCi0gICAgMTAxMjE2LCAxMDEyMjAsIDEwMTIyNCwgMTAxMjI4LCAxMDEyMzIsIDEwMTIzNiwgMTAxMjQwLCAxMDEyNDQsIDEwMTI0OCwgCi0gICAgMTAxMjUyLCAxMDEyNTYsIDEwMTI2MCwgMTAxMjY0LCAxMDEyNjgsIDEwMTI3MiwgMTAxMjc2LCAxMDEyODAsIDEwMTI4NCwgCi0gICAgMTAxMjg4LCAxMDEyOTIsIDEwMTI5NiwgMTAxMzAwLCAxMDEzMDQsIDEwMTMwOCwgMTAxMzEyLCAxMDEzMTYsIDEwMTMyMCwgCi0gICAgMTAxMzI0LCAxMDEzMjgsIDEwMTMzMiwgMTAxMzM2LCAxMDEzNDAsIDEwMTM0NCwgMTAxMzQ4LCAxMDEzNTIsIDEwMTM1NiwgCi0gICAgMTAxMzYwLCAxMDEzNjQsIDEwMTM2OCwgMTAxMzcyLCAxMDEzNzYsIDEwMTM4MCwgMTAxMzg0LCAxMDEzODgsIDEwMTM5MiwgCi0gICAgMTAxMzk2LCAxMDE0MDAsIDEwMTQwNCwgMTAxNDA4LCAxMDE0MTIsIDEwMTQxNiwgMTAxNDIwLCAxMDE0MjQsIDEwMTQyOCwgCi0gICAgMTAxNDMyLCAxMDE0MzYsIDEwMTQ0MCwgMTAxNDQ0LCAxMDE0NDgsIDEwMTQ1MiwgMTAxNDU2LCAxMDE0NjAsIDEwMTQ2NCwgCi0gICAgMTAxNDY4LCAxMDE0NzIsIDEwMTQ3NiwgMTAxNDgwLCAxMDE0ODQsIDEwMTQ4OCwgMTAxNDkyLCAxMDE0OTYsIDEwMTUwMCwgCi0gICAgMTAxNTA0LCAxMDE1MDgsIDEwMTUxMiwgMTAxNTE2LCAxMDE1MjAsIDEwMTUyNCwgMTAxNTI4LCAxMDE1MzIsIDEwMTUzNiwgCi0gICAgMTAxNTQwLCAxMDE1NDQsIDEwMTU0OCwgMTAxNTUyLCAxMDE1NTYsIDEwMTU2MCwgMTAxNTY0LCAxMDE1NjgsIDEwMTU3MiwgCi0gICAgMTAxNTc2LCAxMDE1ODAsIDEwMTU4NCwgMTAxNTg4LCAxMDE1OTIsIDEwMTU5NiwgMTAxNjAwLCAxMDE2MDQsIDEwMTYwOCwgCi0gICAgMTAxNjEyLCAxMDE2MTYsIDEwMTYyMCwgMTAxNjI0LCAxMDE2MjgsIDEwMTYzMiwgMTAxNjM2LCAxMDE2NDAsIDEwMTY0NCwgCi0gICAgMTAxNjQ4LCAxMDE2NTIsIDEwMTY1NiwgMTAxNjYwLCAxMDE2NjQsIDEwMTY2OCwgMTAxNjcyLCAxMDE2NzYsIDEwMTY4MCwgCi0gICAgMTAxNjg0LCAxMDE2ODgsIDEwMTY5MiwgMTAxNjk2LCAxMDE3MDAsIDEwMTcwNCwgMTAxNzA4LCAxMDE3MTIsIDEwMTcxNiwgCi0gICAgMTAxNzIwLCAxMDE3MjQsIDEwMTcyOCwgMTAxNzMyLCAxMDE3MzYsIDEwMTc0MCwgMTAxNzQ0LCAxMDE3NDgsIDEwMTc1MiwgCi0gICAgMTAxNzU2LCAxMDE3NjAsIDEwMTc2NCwgMTAxNzY4LCAxMDE3NzIsIDEwMTc3NiwgMTAxNzgwLCAxMDE3ODQsIDEwMTc4OCwgCi0gICAgMTAxNzkyLCAxMDE3OTYsIDEwMTgwMCwgMTAxODA0LCAxMDE4MDgsIDEwMTgxMiwgMTAxODE2LCAxMDE4MjAsIDEwMTgyNCwgCi0gICAgMTAxODI4LCAxMDE4MzIsIDEwMTgzNiwgMTAxODQwLCAxMDE4NDQsIDEwMTg0OCwgMTAxODUyLCAxMDE4NTYsIDEwMTg2MCwgCi0gICAgMTAxODY0LCAxMDE4NjgsIDEwMTg3MiwgMTAxODc2LCAxMDE4ODAsIDEwMTg4NCwgMTAxODg4LCAxMDE4OTIsIDEwMTg5NiwgCi0gICAgMTAxOTAwLCAxMDE5MDQsIDEwMTkwOCwgMTAxOTEyLCAxMDE5MTYsIDEwMTkyMCwgMTAxOTI0LCAxMDE5MjgsIDEwMTkzMiwgCi0gICAgMTAxOTM2LCAxMDE5NDAsIDEwMTk0NCwgMTAxOTQ4LCAxMDE5NTIsIDEwMTk1NiwgMTAxOTYwLCAxMDE5NjQsIDEwMTk2OCwgCi0gICAgMTAxOTcyLCAxMDE5NzYsIDEwMTk4MCwgMTAxOTg0LCAxMDE5ODgsIDEwMTk5MiwgMTAxOTk2LCAxMDIwMDAsIDEwMjAwNCwgCi0gICAgMTAyMDA4LCAxMDIwMTIsIDEwMjAxNiwgMTAyMDIwLCAxMDIwMjQsIDEwMjAyOCwgMTAyMDMyLCAxMDIwMzYsIDEwMjA0MCwgCi0gICAgMTAyMDQ0LCAxMDIwNDgsIDEwMjA1MiwgMTAyMDU2LCAxMDIwNjAsIDEwMjA2NCwgMTAyMDY4LCAxMDIwNzIsIDEwMjA3NiwgCi0gICAgMTAyMDgwLCAxMDIwODQsIDEwMjA4OCwgMTAyMDkyLCAxMDIwOTYsIDEwMjEwMCwgMTAyMTA0LCAxMDIxMDgsIDEwMjExMiwgCi0gICAgMTAyMTE2LCAxMDIxMjAsIDEwMjEyNCwgMTAyMTI4LCAxMDIxMzIsIDEwMjEzNiwgMTAyMTQwLCAxMDIxNDQsIDEwMjE0OCwgCi0gICAgMTAyMTUyLCAxMDIxNTYsIDEwMjE2MCwgMTAyMTY0LCAxMDIxNjgsIDEwMjE3MiwgMTAyMTc2LCAxMDIxODAsIDEwMjE4NCwgCi0gICAgMTAyMTg4LCAxMDIxOTIsIDEwMjE5NiwgMTAyMjAwLCAxMDIyMDQsIDEwMjIwOCwgMTAyMjEyLCAxMDIyMTYsIDEwMjIyMCwgCi0gICAgMTAyMjI0LCAxMDIyMjgsIDEwMjIzMiwgMTAyMjM2LCAxMDIyNDAsIDEwMjI0NCwgMTAyMjQ4LCAxMDIyNTIsIDEwMjI1NiwgCi0gICAgMTAyMjYwLCAxMDIyNjQsIDEwMjI2OCwgMTAyMjcyLCAxMDIyNzYsIDEwMjI4MCwgMTAyMjg0LCAxMDIyODgsIDEwMjI5MiwgCi0gICAgMTAyMjk2LCAxMDIzMDAsIDEwMjMwNCwgMTAyMzA4LCAxMDIzMTIsIDEwMjMxNiwgMTAyMzIwLCAxMDIzMjQsIDEwMjMyOCwgCi0gICAgMTAyMzMyLCAxMDIzMzYsIDEwMjM0MCwgMTAyMzQ0LCAxMDIzNDgsIDEwMjM1MiwgMTAyMzU2LCAxMDIzNjAsIDEwMjM2NCwgCi0gICAgMTAyMzY4LCAxMDIzNzIsIDEwMjM3NiwgMTAyMzgwLCAxMDIzODQsIDEwMjM4OCwgMTAyMzkyLCAxMDIzOTYsIDEwMjQwMCwgCi0gICAgMTAyNDA0LCAxMDI0MDgsIDEwMjQxMiwgMTAyNDE2LCAxMDI0MjAsIDEwMjQyNCwgMTAyNDI4LCAxMDI0MzIsIDEwMjQzNiwgCi0gICAgMTAyNDQwLCAxMDI0NDQsIDEwMjQ0OCwgMTAyNDUyLCAxMDI0NTYsIDEwMjQ2MCwgMTAyNDY0LCAxMDI0NjgsIDEwMjQ3MiwgCi0gICAgMTAyNDc2LCAxMDI0ODAsIDEwMjQ4NCwgMTAyNDg4LCAxMDI0OTIsIDEwMjQ5NiwgMTAyNTAwLCAxMDI1MDQsIDEwMjUwOCwgCi0gICAgMTAyNTEyLCAxMDI1MTYsIDEwMjUyMCwgMTAyNTI0LCAxMDI1MjgsIDEwMjUzMiwgMTAyNTM2LCAxMDI1NDAsIDEwMjU0NCwgCi0gICAgMTAyNTQ4LCAxMDI1NTIsIDEwMjU1NiwgMTAyNTYwLCAxMDI1NjQsIDEwMjU2OCwgMTAyNTcyLCAxMDI1NzYsIDEwMjU4MCwgCi0gICAgMTAyNTg0LCAxMDI1ODgsIDEwMjU5MiwgMTAyNTk2LCAxMDI2MDAsIDEwMjYwNCwgMTAyNjA4LCAxMDI2MTIsIDEwMjYxNiwgCi0gICAgMTAyNjIwLCAxMDI2MjQsIDEwMjYyOCwgMTAyNjMyLCAxMDI2MzYsIDEwMjY0MCwgMTAyNjQ0LCAxMDI2NDgsIDEwMjY1MiwgCi0gICAgMTAyNjU2LCAxMDI2NjAsIDEwMjY2NCwgMTAyNjY4LCAxMDI2NzIsIDEwMjY3NiwgMTAyNjgwLCAxMDI2ODQsIDEwMjY4OCwgCi0gICAgMTAyNjkyLCAxMDI2OTYsIDEwMjcwMCwgMTAyNzA0LCAxMDI3MDgsIDEwMjcxMiwgMTAyNzE2LCAxMDI3MjAsIDEwMjcyNCwgCi0gICAgMTAyNzI4LCAxMDI3MzIsIDEwMjczNiwgMTAyNzQwLCAxMDI3NDQsIDEwMjc0OCwgMTAyNzUyLCAxMDI3NTYsIDEwMjc2MCwgCi0gICAgMTAyNzY0LCAxMDI3NjgsIDEwMjc3MiwgMTAyNzc2LCAxMDI3ODAsIDEwMjc4NCwgMTAyNzg4LCAxMDI3OTIsIDEwMjc5NiwgCi0gICAgMTAyODAwLCAxMDI4MDQsIDEwMjgwOCwgMTAyODEyLCAxMDI4MTYsIDEwMjgyMCwgMTAyODI0LCAxMDI4MjgsIDEwMjgzMiwgCi0gICAgMTAyODM2LCAxMDI4NDAsIDEwMjg0NCwgMTAyODQ4LCAxMDI4NTIsIDEwMjg1NiwgMTAyODYwLCAxMDI4NjQsIDEwMjg2OCwgCi0gICAgMTAyODcyLCAxMDI4NzYsIDEwMjg4MCwgMTAyODg0LCAxMDI4ODgsIDEwMjg5MiwgMTAyODk2LCAxMDI5MDAsIDEwMjkwNCwgCi0gICAgMTAyOTA4LCAxMDI5MTIsIDEwMjkxNiwgMTAyOTIwLCAxMDI5MjQsIDEwMjkyOCwgMTAyOTMyLCAxMDI5MzYsIDEwMjk0MCwgCi0gICAgMTAyOTQ0LCAxMDI5NDgsIDEwMjk1MiwgMTAyOTU2LCAxMDI5NjAsIDEwMjk2NCwgMTAyOTY4LCAxMDI5NzIsIDEwMjk3NiwgCi0gICAgMTAyOTgwLCAxMDI5ODQsIDEwMjk4OCwgMTAyOTkyLCAxMDI5OTYsIDEwMzAwMCwgMTAzMDA0LCAxMDMwMDgsIDEwMzAxMiwgCi0gICAgMTAzMDE2LCAxMDMwMjAsIDEwMzAyNCwgMTAzMDI4LCAxMDMwMzIsIDEwMzAzNiwgMTAzMDQwLCAxMDMwNDQsIDEwMzA0OCwgCi0gICAgMTAzMDUyLCAxMDMwNTYsIDEwMzA2MCwgMTAzMDY0LCAxMDMwNjgsIDEwMzA3MiwgMTAzMDc2LCAxMDMwODAsIDEwMzA4NCwgCi0gICAgMTAzMDg4LCAxMDMwOTIsIDEwMzA5NiwgMTAzMTAwLCAxMDMxMDQsIDEwMzEwOCwgMTAzMTEyLCAxMDMxMTYsIDEwMzEyMCwgCi0gICAgMTAzMTI0LCAxMDMxMjgsIDEwMzEzMiwgMTAzMTM2LCAxMDMxNDAsIDEwMzE0NCwgMTAzMTQ4LCAxMDMxNTIsIDEwMzE1NiwgCi0gICAgMTAzMTYwLCAxMDMxNjQsIDEwMzE2OCwgMTAzMTcyLCAxMDMxNzYsIDEwMzE4MCwgMTAzMTg0LCAxMDMxODgsIDEwMzE5MiwgCi0gICAgMTAzMTk2LCAxMDMyMDAsIDEwMzIwNCwgMTAzMjA4LCAxMDMyMTIsIDEwMzIxNiwgMTAzMjIwLCAxMDMyMjQsIDEwMzIyOCwgCi0gICAgMTAzMjMyLCAxMDMyMzYsIDEwMzI0MCwgMTAzMjQ0LCAxMDMyNDgsIDEwMzI1MiwgMTAzMjU2LCAxMDMyNjAsIDEwMzI2NCwgCi0gICAgMTAzMjY4LCAxMDMyNzIsIDEwMzI3NiwgMTAzMjgwLCAxMDMyODQsIDEwMzI4OCwgMTAzMjkyLCAxMDMyOTYsIDEwMzMwMCwgCi0gICAgMTAzMzA0LCAxMDMzMDgsIDEwMzMxMiwgMTAzMzE2LCAxMDMzMjAsIDEwMzMyNCwgMTAzMzI4LCAxMDMzMzIsIDEwMzMzNiwgCi0gICAgMTAzMzQwLCAxMDMzNDQsIDEwMzM0OCwgMTAzMzUyLCAxMDMzNTYsIDEwMzM2MCwgMTAzMzY0LCAxMDMzNjgsIDEwMzM3MiwgCi0gICAgMTAzMzc2LCAxMDMzODAsIDEwMzM4NCwgMTAzMzg4LCAxMDMzOTIsIDEwMzM5NiwgMTAzNDAwLCAxMDM0MDQsIDEwMzQwOCwgCi0gICAgMTAzNDEyLCAxMDM0MTYsIDEwMzQyMCwgMTAzNDI0LCAxMDM0MjgsIDEwMzQzMiwgMTAzNDM2LCAxMDM0NDAsIDEwMzQ0NCwgCi0gICAgMTAzNDQ4LCAxMDM0NTIsIDEwMzQ1NiwgMTAzNDYwLCAxMDM0NjQsIDEwMzQ2OCwgMTAzNDcyLCAxMDM0NzYsIDEwMzQ4MCwgCi0gICAgMTAzNDg0LCAxMDM0ODgsIDEwMzQ5MiwgMTAzNDk2LCAxMDM1MDAsIDEwMzUwNCwgMTAzNTA4LCAxMDM1MTIsIDEwMzUxNiwgCi0gICAgMTAzNTIwLCAxMDM1MjQsIDEwMzUyOCwgMTAzNTMyLCAxMDM1MzYsIDEwMzU0MCwgMTAzNTQ0LCAxMDM1NDgsIDEwMzU1MiwgCi0gICAgMTAzNTU2LCAxMDM1NjAsIDEwMzU2NCwgMTAzNTY4LCAxMDM1NzIsIDEwMzU3NiwgMTAzNTgwLCAxMDM1ODQsIDEwMzU4OCwgCi0gICAgMTAzNTkyLCAxMDM1OTYsIDEwMzYwMCwgMTAzNjA0LCAxMDM2MDgsIDEwMzYxMiwgMTAzNjE2LCAxMDM2MjAsIDEwMzYyNCwgCi0gICAgMTAzNjI4LCAxMDM2MzIsIDEwMzYzNiwgMTAzNjQwLCAxMDM2NDQsIDEwMzY0OCwgMTAzNjUyLCAxMDM2NTYsIDEwMzY2MCwgCi0gICAgMTAzNjY0LCAxMDM2NjgsIDEwMzY3MiwgMTAzNjc2LCAxMDM2ODAsIDEwMzY4NCwgMTAzNjg4LCAxMDM2OTIsIDEwMzY5NiwgCi0gICAgMTAzNzAwLCAxMDM3MDQsIDEwMzcwOCwgMTAzNzEyLCAxMDM3MTYsIDEwMzcyMCwgMTAzNzI0LCAxMDM3MjgsIDEwMzczMiwgCi0gICAgMTAzNzM2LCAxMDM3NDAsIDEwMzc0NCwgMTAzNzQ4LCAxMDM3NTIsIDEwMzc1NiwgMTAzNzYwLCAxMDM3NjQsIDEwMzc2OCwgCi0gICAgMTAzNzcyLCAxMDM3NzYsIDEwMzc4MCwgMTAzNzg0LCAxMDM3ODgsIDEwMzc5MiwgMTAzNzk2LCAxMDM4MDAsIDEwMzgwNCwgCi0gICAgMTAzODA4LCAxMDM4MTIsIDEwMzgxNiwgMTAzODIwLCAxMDM4MjQsIDEwMzgyOCwgMTAzODMyLCAxMDM4MzYsIDEwMzg0MCwgCi0gICAgMTAzODQ0LCAxMDM4NDgsIDEwMzg1MiwgMTAzODU2LCAxMDM4NjAsIDEwMzg2NCwgMTAzODY4LCAxMDM4NzIsIDEwMzg3NiwgCi0gICAgMTAzODgwLCAxMDM4ODQsIDEwMzg4OCwgMTAzODkyLCAxMDM4OTYsIDEwMzkwMCwgMTAzOTA0LCAxMDM5MDgsIDEwMzkxMiwgCi0gICAgMTAzOTE2LCAxMDM5MjAsIDEwMzkyNCwgMTAzOTI4LCAxMDM5MzIsIDEwMzkzNiwgMTAzOTQwLCAxMDM5NDQsIDEwMzk0OCwgCi0gICAgMTAzOTUyLCAxMDM5NTYsIDEwMzk2MCwgMTAzOTY0LCAxMDM5NjgsIDEwMzk3MiwgMTAzOTc2LCAxMDM5ODAsIDEwMzk4NCwgCi0gICAgMTAzOTg4LCAxMDM5OTIsIDEwMzk5NiwgMTA0MDAwLCAxMDQwMDQsIDEwNDAwOCwgMTA0MDEyLCAxMDQwMTYsIDEwNDAyMCwgCi0gICAgMTA0MDI0LCAxMDQwMjgsIDEwNDAzMiwgMTA0MDM2LCAxMDQwNDAsIDEwNDA0NCwgMTA0MDQ4LCAxMDQwNTIsIDEwNDA1NiwgCi0gICAgMTA0MDYwLCAxMDQwNjQsIDEwNDA2OCwgMTA0MDcyLCAxMDQwNzYsIDEwNDA4MCwgMTA0MDg0LCAxMDQwODgsIDEwNDA5MiwgCi0gICAgMTA0MDk2LCAxMDQxMDAsIDEwNDEwNCwgMTA0MTA4LCAxMDQxMTIsIDEwNDExNiwgMTA0MTIwLCAxMDQxMjQsIDEwNDEyOCwgCi0gICAgMTA0MTMyLCAxMDQxMzYsIDEwNDE0MCwgMTA0MTQ0LCAxMDQxNDgsIDEwNDE1MiwgMTA0MTU2LCAxMDQxNjAsIDEwNDE2NCwgCi0gICAgMTA0MTY4LCAxMDQxNzIsIDEwNDE3NiwgMTA0MTgwLCAxMDQxODQsIDEwNDE4OCwgMTA0MTkyLCAxMDQxOTYsIDEwNDIwMCwgCi0gICAgMTA0MjA0LCAxMDQyMDgsIDEwNDIxMiwgMTA0MjE2LCAxMDQyMjAsIDEwNDIyNCwgMTA0MjI4LCAxMDQyMzIsIDEwNDIzNiwgCi0gICAgMTA0MjQwLCAxMDQyNDQsIDEwNDI0OCwgMTA0MjUyLCAxMDQyNTYsIDEwNDI2MCwgMTA0MjY0LCAxMDQyNjgsIDEwNDI3MiwgCi0gICAgMTA0Mjc2LCAxMDQyODAsIDEwNDI4NCwgMTA0Mjg4LCAxMDQyOTIsIDEwNDI5NiwgMTA0MzAwLCAxMDQzMDQsIDEwNDMwOCwgCi0gICAgMTA0MzEyLCAxMDQzMTYsIDEwNDMyMCwgMTA0MzI0LCAxMDQzMjgsIDEwNDMzMiwgMTA0MzM2LCAxMDQzNDAsIDEwNDM0NCwgCi0gICAgMTA0MzQ4LCAxMDQzNTIsIDEwNDM1NiwgMTA0MzYwLCAxMDQzNjQsIDEwNDM2OCwgMTA0MzcyLCAxMDQzNzYsIDEwNDM4MCwgCi0gICAgMTA0Mzg0LCAxMDQzODgsIDEwNDM5MiwgMTA0Mzk2LCAxMDQ0MDAsIDEwNDQwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgOTU0NDEsIDk1NDQ1LCA5NTQ0OSwgOTU0NTMsIDk1NDU2LCA5NTQ2MCwgCisgICAgOTU0NjMsIDk1NDY3LCA5NTQ3MCwgOTU0NzQsIDk1NDc4LCA5NTQ4MywgOTU0ODcsIDk1NDkyLCA5NTQ5NSwgOTU0OTksIAorICAgIDk1NTAyLCA5NTUwNiwgOTU1MDksIDk1NTEzLCA5NTUxNywgOTU1MjEsIDk1NTI1LCA5NTUyOSwgOTU1MzMsIDk1NTM3LCAKKyAgICA5NTU0MSwgOTU1NDUsIDk1NTQ5LCA5NTU1MywgOTU1NTcsIDk1NTYxLCA5NTU2NSwgOTU1NjksIDk1NTczLCA5NTU3NywgCisgICAgOTU1ODEsIDk1NTg0LCA5NTU4NywgOTU1OTEsIDk1NTk1LCA5NTU5OSwgOTU2MDIsIDk1NjA1LCA5NTYwOCwgOTU2MTIsIAorICAgIDk1NjE2LCA5NTYyMCwgOTU2MjQsIDk1NjI4LCA5NTYzMSwgOTU2MzQsIDk1NjM5LCA5NTY0MywgOTU2NDgsIDk1NjUyLCAKKyAgICA5NTY1NywgOTU2NjIsIDk1NjY4LCA5NTY3MywgOTU2NzksIDk1NjgzLCA5NTY4OCwgOTU2OTIsIDk1Njk3LCA5NTcwMSwgCisgICAgOTU3MDUsIDk1NzA5LCA5NTcxMywgOTU3MTYsIDk1NzE5LCA5NTcyMywgOTU3MjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDk1NzMwLCA5NTczNCwgOTU3MzcsIDk1NzQwLCA5NTc0MywgOTU3NDYsIDk1NzQ5LCA5NTc1MiwgOTU3NTUsIDk1NzU4LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5NTc2MSwgOTU3NjUsIDk1NzcwLCA5NTc3NCwgOTU3NzksIAorICAgIDk1NzgzLCA5NTc4OCwgOTU3OTIsIDk1Nzk3LCA5NTgwMSwgOTU4MDYsIDk1ODEwLCA5NTgxNSwgOTU4MjAsIDk1ODI1LCAKKyAgICA5NTgzMCwgOTU4MzUsIDk1ODQwLCA5NTg0NSwgOTU4NTAsIDk1ODU1LCA5NTg2MCwgOTU4NjUsIDk1ODcwLCA5NTg3NSwgCisgICAgOTU4ODAsIDk1ODg1LCA5NTg5MCwgOTU4OTUsIDk1OTAwLCA5NTkwNCwgOTU5MDgsIDk1OTEzLCA5NTkxOCwgOTU5MjMsIAorICAgIDk1OTI3LCA5NTkzMSwgOTU5MzUsIDk1OTQwLCA5NTk0NSwgOTU5NTAsIDk1OTU0LCA5NTk1OCwgOTU5NjMsIDk1OTY4LCAKKyAgICA5NTk3MywgOTU5NzksIDk1OTg0LCA5NTk5MCwgOTU5OTUsIDk2MDAxLCA5NjAwNiwgOTYwMTIsIDk2MDE3LCA5NjAyMywgCisgICAgOTYwMjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDk2MDMzLCA5NjAzOCwgOTYwNDIsIDk2MDQ2LCA5NjA1MCwgOTYwNTQsIAorICAgIDk2MDU4LCA5NjA2MiwgOTYwNjYsIDk2MDcwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5NjA3NCwgOTYwNzcsIDk2MDgyLCA5NjA4OCwgCisgICAgOTYwOTYsIDk2MTAxLCA5NjEwNywgOTYxMTUsIDk2MTIxLCA5NjEyNywgOTYxMzEsIDk2MTM1LCA5NjE0MiwgOTYxNTEsIAorICAgIDk2MTU4LCA5NjE2NywgOTYxNzMsIDk2MTgyLCA5NjE4OSwgOTYxOTYsIDk2MjAzLCA5NjIxMywgOTYyMTksIDk2MjIzLCAKKyAgICA5NjIzMCwgOTYyMzksIDk2MjQ5LCA5NjI1NiwgOTYyNjMsIDk2MjY3LCA5NjI3MSwgOTYyNzgsIDk2Mjg4LCA5NjI5MiwgCisgICAgOTYyOTksIDk2MzA2LCA5NjMxMywgOTYzMTksIDk2MzI2LCA5NjMzMywgOTYzNDAsIDk2MzQ3LCA5NjM1MSwgOTYzNTUsIAorICAgIDk2MzU5LCA5NjM2NiwgOTYzNzAsIDk2Mzc3LCA5NjM4NCwgOTYzOTgsIDk2NDA3LCA5NjQxMSwgOTY0MTUsIDk2NDE5LCAKKyAgICA5NjQyNiwgOTY0MzAsIDk2NDM0LCA5NjQzOCwgOTY0NDYsIDk2NDU0LCA5NjQ3MywgOTY0ODMsIDk2NTAzLCA5NjUwNywgCisgICAgOTY1MTEsIDk2NTE1LCA5NjUxOSwgOTY1MjMsIDk2NTI3LCA5NjUzMSwgOTY1MzgsIDk2NTQyLCA5NjU0NSwgOTY1NDksIAorICAgIDk2NTUzLCA5NjU1OSwgOTY1NjYsIDk2NTc1LCA5NjU3OSwgOTY1ODgsIDk2NTk3LCA5NjYwNSwgOTY2MDksIDk2NjE2LCAKKyAgICA5NjYyMCwgOTY2MjQsIDk2NjI4LCA5NjYzMiwgOTY2NDMsIDk2NjUyLCA5NjY2MSwgOTY2NzAsIDk2Njc5LCA5NjY5MSwgCisgICAgOTY3MDAsIDk2NzA5LCA5NjcxOCwgOTY3MjYsIDk2NzM1LCA5Njc0NywgOTY3NTYsIDk2NzY1LCA5Njc3NCwgOTY3ODYsIAorICAgIDk2Nzk1LCA5NjgwNCwgOTY4MTYsIDk2ODI1LCA5NjgzNCwgOTY4NDYsIDk2ODU1LCA5Njg1OSwgOTY4NjMsIDk2ODY3LCAKKyAgICA5Njg3MSwgOTY4NzUsIDk2ODc5LCA5Njg4MywgOTY4OTAsIDk2ODk0LCA5Njg5OCwgOTY5MDksIDk2OTEzLCA5NjkxNywgCisgICAgOTY5MjQsIDk2OTMwLCA5NjkzNiwgOTY5NDAsIDk2OTQ3LCA5Njk1MSwgOTY5NTUsIDk2OTU5LCA5Njk2MywgOTY5NjcsIAorICAgIDk2OTcxLCA5Njk3NywgOTY5ODUsIDk2OTg5LCA5Njk5MywgOTY5OTYsIDk3MDAyLCA5NzAxMiwgOTcwMTYsIDk3MDI4LCAKKyAgICA5NzAzNSwgOTcwNDIsIDk3MDQ5LCA5NzA1NiwgOTcwNjIsIDk3MDY2LCA5NzA3MCwgOTcwNzQsIDk3MDc4LCA5NzA4NSwgCisgICAgOTcwOTQsIDk3MTAxLCA5NzEwOSwgOTcxMTcsIDk3MTIzLCA5NzEyNywgOTcxMzEsIDk3MTM1LCA5NzEzOSwgOTcxNDUsIAorICAgIDk3MTU0LCA5NzE2NiwgOTcxNzMsIDk3MTgwLCA5NzE4OSwgOTcyMDAsIDk3MjA2LCA5NzIxNSwgOTcyMjQsIDk3MjMxLCAKKyAgICA5NzI0MCwgOTcyNDcsIDk3MjU0LCA5NzI2NCwgOTcyNzEsIDk3Mjc4LCA5NzI4NSwgOTcyOTIsIDk3Mjk2LCA5NzMwMiwgCisgICAgOTczMDYsIDk3MzE3LCA5NzMyNSwgOTczMzQsIDk3MzQ2LCA5NzM1MywgOTczNjAsIDk3MzcwLCA5NzM3NywgOTczODYsIAorICAgIDk3MzkzLCA5NzQwMiwgOTc0MDksIDk3NDE2LCA5NzQyNiwgOTc0MzMsIDk3NDQwLCA5NzQ1MCwgOTc0NTcsIDk3NDY5LCAKKyAgICA5NzQ3OCwgOTc0ODUsIDk3NDkyLCA5NzQ5OSwgOTc1MDgsIDk3NTE4LCA5NzUzMSwgOTc1MzgsIDk3NTQ4LCA5NzU1OCwgCisgICAgOTc1NjUsIDk3NTc0LCA5NzU4NywgOTc1OTQsIDk3NjAxLCA5NzYwOCwgOTc2MTgsIDk3NjI4LCA5NzYzNSwgOTc2NDUsIAorICAgIDk3NjUyLCA5NzY1OSwgOTc2NjksIDk3Njc1LCA5NzY4MiwgOTc2ODksIDk3Njk2LCA5NzcwNiwgOTc3MTMsIDk3NzIwLCAKKyAgICA5NzcyNywgOTc3MzMsIDk3NzQwLCA5Nzc1MCwgOTc3NTcsIDk3NzYxLCA5Nzc2OSwgOTc3NzMsIDk3Nzg1LCA5Nzc4OSwgCisgICAgOTc4MDMsIDk3ODA3LCA5NzgxMSwgOTc4MTUsIDk3ODE5LCA5NzgyNSwgOTc4MzIsIDk3ODQwLCA5Nzg0NCwgOTc4NDgsIAorICAgIDk3ODUyLCA5Nzg1NiwgOTc4NjMsIDk3ODY3LCA5Nzg3MywgOTc4NzksIDk3ODg3LCA5Nzg5MSwgOTc4OTgsIDk3OTA2LCAKKyAgICA5NzkxMCwgOTc5MTQsIDk3OTIwLCA5NzkyNCwgOTc5MzMsIDk3OTQyLCA5Nzk0OSwgOTc5NTksIDk3OTY1LCA5Nzk2OSwgCisgICAgOTc5NzMsIDk3OTgxLCA5Nzk4OCwgOTc5OTUsIDk4MDAxLCA5ODAwNSwgOTgwMTMsIDk4MDE3LCA5ODAyNCwgOTgwMzYsIAorICAgIDk4MDQzLCA5ODA1MywgOTgwNTksIDk4MDYzLCA5ODA3MiwgOTgwNzksIDk4MDg4LCA5ODA5MiwgOTgwOTYsIDk4MTAzLCAKKyAgICA5ODEwNywgOTgxMTEsIDk4MTE1LCA5ODExOSwgOTgxMjIsIDk4MTI4LCA5ODEzNCwgOTgxMzgsIDk4MTQyLCA5ODE0OSwgCisgICAgOTgxNTYsIDk4MTYzLCA5ODE3MCwgOTgxNzcsIDk4MTg0LCA5ODE5MSwgOTgxOTgsIDk4MjA0LCA5ODIwOCwgOTgyMTIsIAorICAgIDk4MjE5LCA5ODIyNiwgOTgyMzMsIDk4MjQwLCA5ODI0NywgOTgyNTEsIDk4MjU0LCA5ODI1OSwgOTgyNjMsIDk4MjY3LCAKKyAgICA5ODI3NiwgOTgyODUsIDk4Mjg5LCA5ODI5MywgOTgyOTksIDk4MzA1LCA5ODMyMiwgOTgzMjgsIDk4MzMyLCA5ODM0MSwgCisgICAgOTgzNDUsIDk4MzQ5LCA5ODM1NiwgOTgzNjQsIDk4MzcyLCA5ODM3OCwgOTgzODIsIDk4Mzg2LCA5ODM5MCwgOTgzOTQsIAorICAgIDk4Mzk3LCA5ODQwMywgOTg0MTAsIDk4NDIwLCA5ODQyNywgOTg0MzQsIDk4NDQxLCA5ODQ0NywgOTg0NTQsIDk4NDYxLCAKKyAgICA5ODQ2OCwgOTg0NzUsIDk4NDgyLCA5ODQ5MSwgOTg0OTgsIDk4NTEwLCA5ODUxNywgOTg1MjQsIDk4NTM0LCA5ODU0NSwgCisgICAgOTg1NTIsIDk4NTU5LCA5ODU2NiwgOTg1NzMsIDk4NTgwLCA5ODU4NywgOTg1OTQsIDk4NjAxLCA5ODYwOCwgOTg2MTUsIAorICAgIDk4NjI1LCA5ODYzNSwgOTg2NDUsIDk4NjUyLCA5ODY2MiwgOTg2NjksIDk4Njc2LCA5ODY4MywgOTg2OTAsIDk4Njk2LCAKKyAgICA5ODcwMywgOTg3MTAsIDk4NzE3LCA5ODcyNCwgOTg3MzEsIDk4NzM4LCA5ODc0NSwgOTg3NTIsIDk4NzU4LCA5ODc2NSwgCisgICAgOTg3NzIsIDk4NzgxLCA5ODc4OCwgOTg3OTUsIDk4Nzk5LCA5ODgwNywgOTg4MTEsIDk4ODE1LCA5ODgxOSwgOTg4MjMsIAorICAgIDk4ODI3LCA5ODgzNCwgOTg4MzgsIDk4ODQ3LCA5ODg1MSwgOTg4NTgsIDk4ODY2LCA5ODg3MCwgOTg4NzQsIDk4ODc4LCAKKyAgICA5ODg5MSwgOTg5MDcsIDk4OTExLCA5ODkxNSwgOTg5MjIsIDk4OTI4LCA5ODkzNSwgOTg5MzksIDk4OTQzLCA5ODk0NywgCisgICAgOTg5NTEsIDk4OTU1LCA5ODk2MiwgOTg5NjYsIDk4OTg0LCA5ODk4OCwgOTg5OTIsIDk4OTk5LCA5OTAwMywgOTkwMDcsIAorICAgIDk5MDEzLCA5OTAxNywgOTkwMjEsIDk5MDI5LCA5OTAzMywgOTkwMzcsIDk5MDQxLCA5OTA0NSwgOTkwNTEsIDk5MDYyLCAKKyAgICA5OTA3MSwgOTkwODAsIDk5MDg3LCA5OTA5NCwgOTkxMDUsIDk5MTEyLCA5OTExOSwgOTkxMjYsIDk5MTMzLCA5OTE0MCwgCisgICAgOTkxNDcsIDk5MTU0LCA5OTE2NCwgOTkxNzAsIDk5MTc3LCA5OTE4NywgOTkxOTYsIDk5MjAzLCA5OTIxMiwgOTkyMjIsIAorICAgIDk5MjI5LCA5OTIzNiwgOTkyNDMsIDk5MjUwLCA5OTI2MiwgOTkyNjksIDk5Mjc2LCA5OTI4MywgOTkyOTAsIDk5Mjk3LCAKKyAgICA5OTMwNywgOTkzMTQsIDk5MzIxLCA5OTMzMSwgOTkzNDQsIDk5MzU2LCA5OTM2MywgOTkzNzMsIDk5MzgwLCA5OTM4NywgCisgICAgOTkzOTQsIDk5NDA4LCA5OTQxNCwgOTk0MjIsIDk5NDMyLCA5OTQ0MiwgOTk0NDksIDk5NDU2LCA5OTQ2MiwgOTk0NjYsIAorICAgIDk5NDczLCA5OTQ4MywgOTk0ODksIDk5NTAyLCA5OTUwNiwgOTk1MTAsIDk5NTE3LCA5OTUyMSwgOTk1MjgsIDk5NTM4LCAKKyAgICA5OTU0MiwgOTk1NDYsIDk5NTUwLCA5OTU1NCwgOTk1NTgsIDk5NTY1LCA5OTU2OSwgOTk1NzYsIDk5NTgzLCA5OTU5MCwgCisgICAgOTk1OTksIDk5NjA4LCA5OTYxOCwgOTk2MjUsIDk5NjMyLCA5OTYzOSwgOTk2NDksIDk5NjU2LCA5OTY2NiwgOTk2NzMsIAorICAgIDk5NjgzLCA5OTY5MCwgOTk2OTcsIDk5NzA3LCA5OTcxNywgOTk3MjQsIDk5NzMwLCA5OTczOCwgOTk3NDYsIDk5NzUyLCAKKyAgICA5OTc1OCwgOTk3NjIsIDk5NzY2LCA5OTc3MywgOTk3ODEsIDk5Nzg3LCA5OTc5MSwgOTk3OTUsIDk5Nzk5LCA5OTgwNiwgCisgICAgOTk4MTgsIDk5ODIxLCA5OTgyOCwgOTk4MzQsIDk5ODM4LCA5OTg0MiwgOTk4NDYsIDk5ODUwLCA5OTg1NCwgOTk4NTgsIAorICAgIDk5ODYyLCA5OTg2NiwgOTk4NzAsIDk5ODc0LCA5OTg4MSwgOTk4ODUsIDk5ODkxLCA5OTg5NSwgOTk4OTksIDk5OTAzLCAKKyAgICA5OTkwOSwgOTk5MTYsIDk5OTIzLCA5OTkzMCwgOTk5NDEsIDk5OTQ5LCA5OTk1MywgOTk5NTksIDk5OTY4LCA5OTk3NSwgCisgICAgOTk5ODEsIDk5OTg0LCA5OTk4OCwgOTk5OTIsIDk5OTk4LCAxMDAwMDcsIDEwMDAxNSwgMTAwMDE5LCAxMDAwMjUsIAorICAgIDEwMDAyOSwgMTAwMDMzLCAxMDAwMzcsIDEwMDA0MywgMTAwMDUwLCAxMDAwNTYsIDEwMDA2MCwgMTAwMDY2LCAxMDAwNzAsIAorICAgIDEwMDA3NCwgMTAwMDgzLCAxMDAwOTUsIDEwMDA5OSwgMTAwMTA2LCAxMDAxMTMsIDEwMDEyMywgMTAwMTMwLCAxMDAxNDIsIAorICAgIDEwMDE0OSwgMTAwMTU2LCAxMDAxNjMsIDEwMDE3NCwgMTAwMTg0LCAxMDAxOTcsIDEwMDIwNywgMTAwMjE0LCAxMDAyMTgsIAorICAgIDEwMDIyMiwgMTAwMjI2LCAxMDAyMzAsIDEwMDIzOSwgMTAwMjQ4LCAxMDAyNTcsIDEwMDI3NCwgMTAwMjgzLCAxMDAyODksIAorICAgIDEwMDI5NiwgMTAwMzA0LCAxMDAzMTcsIDEwMDMyMSwgMTAwMzMwLCAxMDAzMzksIDEwMDM0OCwgMTAwMzU3LCAxMDAzNjgsIAorICAgIDEwMDM3NywgMTAwMzg2LCAxMDAzOTUsIDEwMDQwNCwgMTAwNDEzLCAxMDA0MjIsIDEwMDQzMiwgMTAwNDM1LCAxMDA0MzksIAorICAgIDEwMDQ0MywgMTAwNDQ3LCAxMDA0NTEsIDEwMDQ1NSwgMTAwNDYxLCAxMDA0NjgsIDEwMDQ3NSwgMTAwNDgyLCAxMDA0ODgsIAorICAgIDEwMDQ5NCwgMTAwNTAxLCAxMDA1MDcsIDEwMDUxNCwgMTAwNTIyLCAxMDA1MjYsIDEwMDUzMywgMTAwNTQwLCAxMDA1NDcsIAorICAgIDEwMDU1NSwgMTAwNTU4LCAxMDA1NjIsIDEwMDU2NiwgMTAwNTcwLCAxMDA1NzMsIDEwMDU3OSwgMTAwNTgzLCAxMDA1ODksIAorICAgIDEwMDU5NiwgMTAwNjAzLCAxMDA2MDksIDEwMDYxNiwgMTAwNjIzLCAxMDA2MzAsIDEwMDYzNywgMTAwNjQ0LCAxMDA2NTEsIAorICAgIDEwMDY1OCwgMTAwNjY1LCAxMDA2NzIsIDEwMDY3OSwgMTAwNjg2LCAxMDA2OTMsIDEwMDcwMCwgMTAwNzA3LCAxMDA3MTMsIAorICAgIDEwMDcxNywgMTAwNzI2LCAxMDA3MzAsIDEwMDczNCwgMTAwNzM4LCAxMDA3NDIsIDEwMDc0OCwgMTAwNzU1LCAxMDA3NjIsIAorICAgIDEwMDc2OSwgMTAwNzc2LCAxMDA3ODMsIDEwMDc4OSwgMTAwNzk3LCAxMDA4MDEsIDEwMDgwNSwgMTAwODA5LCAxMDA4MTMsIAorICAgIDEwMDgxOSwgMTAwODM2LCAxMDA4NTMsIDEwMDg1NywgMTAwODYxLCAxMDA4NjUsIDEwMDg2OSwgMTAwODczLCAxMDA4NzcsIAorICAgIDEwMDg4MywgMTAwODkwLCAxMDA4OTQsIDEwMDkwMCwgMTAwOTA3LCAxMDA5MTQsIDEwMDkyMSwgMTAwOTI4LCAxMDA5MzUsIAorICAgIDEwMDk0NCwgMTAwOTUxLCAxMDA5NTgsIDEwMDk2NSwgMTAwOTcyLCAxMDA5NzYsIDEwMDk4MCwgMTAwOTg2LCAxMDA5OTgsIAorICAgIDEwMTAwMiwgMTAxMDA2LCAxMDEwMTUsIDEwMTAxOSwgMTAxMDIzLCAxMDEwMjcsIDEwMTAzMywgMTAxMDM3LCAxMDEwNDEsIAorICAgIDEwMTA1MCwgMTAxMDU0LCAxMDEwNTgsIDEwMTA2MiwgMTAxMDY5LCAxMDEwNzMsIDEwMTA3NywgMTAxMDgxLCAxMDEwODUsIAorICAgIDEwMTA4OSwgMTAxMDkzLCAxMDEwOTcsIDEwMTEwMSwgMTAxMTA3LCAxMDExMTQsIDEwMTEyMSwgMTAxMTI3LCAxMDExMzEsIAorICAgIDEwMTE0OCwgMTAxMTU0LCAxMDExNTgsIDEwMTE2NCwgMTAxMTcwLCAxMDExNzYsIDEwMTE4MiwgMTAxMTg4LCAxMDExOTQsIAorICAgIDEwMTE5OCwgMTAxMjAyLCAxMDEyMDYsIDEwMTIxMiwgMTAxMjE2LCAxMDEyMjIsIDEwMTIyNiwgMTAxMjMwLCAxMDEyMzcsIAorICAgIDEwMTI0NCwgMTAxMjYxLCAxMDEyNjUsIDEwMTI2OSwgMTAxMjczLCAxMDEyNzcsIDEwMTI4MSwgMTAxMjkzLCAxMDEyOTYsIAorICAgIDEwMTMwMSwgMTAxMzA2LCAxMDEzMjEsIDEwMTMzMSwgMTAxMzQzLCAxMDEzNDcsIDEwMTM1MSwgMTAxMzU1LCAxMDEzNjEsIAorICAgIDEwMTM2OCwgMTAxMzc1LCAxMDEzODUsIDEwMTM5NywgMTAxNDAzLCAxMDE0MDksIDEwMTQxOCwgMTAxNDIyLCAxMDE0MjYsIAorICAgIDEwMTQzMywgMTAxNDQzLCAxMDE0NTAsIDEwMTQ1NiwgMTAxNDYwLCAxMDE0NjQsIDEwMTQ3MSwgMTAxNDc3LCAxMDE0ODEsIAorICAgIDEwMTQ4NywgMTAxNDkxLCAxMDE0OTksIDEwMTUwNSwgMTAxNTA5LCAxMDE1MTcsIDEwMTUyNSwgMTAxNTMyLCAxMDE1MzgsIAorICAgIDEwMTU0NSwgMTAxNTUyLCAxMDE1NjIsIDEwMTU3MiwgMTAxNTc2LCAxMDE1ODAsIDEwMTU4NCwgMTAxNTg4LCAxMDE1OTQsIAorICAgIDEwMTYwMSwgMTAxNjA3LCAxMDE2MTQsIDEwMTYyMSwgMTAxNjI4LCAxMDE2MzcsIDEwMTY0NCwgMTAxNjUxLCAxMDE2NTcsIAorICAgIDEwMTY2NCwgMTAxNjcxLCAxMDE2NzgsIDEwMTY4NSwgMTAxNjkyLCAxMDE2OTksIDEwMTcwNSwgMTAxNzEyLCAxMDE3MTksIAorICAgIDEwMTcyNiwgMTAxNzM1LCAxMDE3NDIsIDEwMTc0OSwgMTAxNzUzLCAxMDE3NTksIDEwMTc2MywgMTAxNzY5LCAxMDE3NzYsIAorICAgIDEwMTc4MywgMTAxNzkwLCAxMDE3OTQsIDEwMTc5OCwgMTAxODAyLCAxMDE4MDYsIDEwMTgxMCwgMTAxODE3LCAxMDE4MjEsIAorICAgIDEwMTgyNSwgMTAxODMxLCAxMDE4MzksIDEwMTg0MywgMTAxODQ3LCAxMDE4NTEsIDEwMTg1NSwgMTAxODYyLCAxMDE4NjYsIAorICAgIDEwMTg3MCwgMTAxODc4LCAxMDE4ODIsIDEwMTg4NiwgMTAxODkwLCAxMDE4OTQsIDEwMTkwMCwgMTAxOTA0LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDE5MDgsIDEwMTkxNCwgMTAxOTIwLCAxMDE5MjcsIAorICAgIDEwMTkzNCwgMTAxOTQxLCAxMDE5NDgsIDEwMTk1NSwgMTAxOTYyLCAxMDE5NjgsIDEwMTk3NSwgMTAxOTgyLCAxMDE5ODksIAorICAgIDEwMTk5NiwgMTAyMDAzLCAxMDIwMTAsIDEwMjAxNiwgMTAyMDIyLCAxMDIwMjgsIDEwMjAzNCwgMTAyMDQwLCAxMDIwNDYsIAorICAgIDEwMjA1MiwgMTAyMDU4LCAxMDIwNjQsIDEwMjA3MSwgMTAyMDc4LCAxMDIwODUsIDEwMjA5MiwgMTAyMDk5LCAxMDIxMDYsIAorICAgIDEwMjExMiwgMTAyMTE4LCAxMDIxMjQsIDEwMjEzMSwgMTAyMTM4LCAxMDIxNDQsIDEwMjE1MCwgMTAyMTU5LCAxMDIxNjYsIAorICAgIDEwMjE3MywgMTAyMTgwLCAxMDIxODcsIDEwMjE5NCwgMTAyMjAxLCAxMDIyMDcsIDEwMjIxMywgMTAyMjE5LCAxMDIyMjgsIAorICAgIDEwMjIzNSwgMTAyMjQyLCAxMDIyNTMsIDEwMjI2NCwgMTAyMjcwLCAxMDIyNzYsIDEwMjI4MiwgMTAyMjkxLCAxMDIyOTgsIAorICAgIDEwMjMwNSwgMTAyMzE1LCAxMDIzMjUsIDEwMjMzNiwgMTAyMzQ3LCAxMDIzNTksIDEwMjM3MiwgMTAyMzgzLCAxMDIzOTQsIAorICAgIDEwMjQwNiwgMTAyNDE5LCAxMDI0MzAsIDEwMjQ0MSwgMTAyNDUyLCAxMDI0NjMsIDEwMjQ3NCwgMTAyNDg2LCAxMDI0OTQsIAorICAgIDEwMjUwMiwgMTAyNTExLCAxMDI1MjAsIDEwMjUyOSwgMTAyNTM1LCAxMDI1NDEsIDEwMjU0NywgMTAyNTU0LCAxMDI1NjQsIAorICAgIDEwMjU3MSwgMTAyNTgxLCAxMDI1ODYsIDEwMjU5MSwgMTAyNTk3LCAxMDI2MDMsIDEwMjYxMSwgMTAyNjE5LCAxMDI2MjgsIAorICAgIDEwMjYzOSwgMTAyNjUwLCAxMDI2NTgsIDEwMjY2NiwgMTAyNjc1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAxMDI2ODQsIDEwMjY5NSwgMTAyNzAyLCAxMDI3MTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEwMjcxOCwgMTAyNzIyLCAxMDI3MjYsIDEwMjczMCwgMTAyNzM0LCAxMDI3MzgsIDEwMjc0MiwgMTAyNzQ2LCAxMDI3NTAsIAorICAgIDEwMjc1NCwgMTAyNzU4LCAxMDI3NjIsIDEwMjc2NiwgMTAyNzcwLCAxMDI3NzQsIDEwMjc3OCwgMTAyNzgyLCAxMDI3ODYsIAorICAgIDEwMjc5MCwgMTAyNzk0LCAxMDI3OTgsIDEwMjgwMiwgMTAyODA2LCAxMDI4MTAsIDEwMjgxNCwgMTAyODE4LCAxMDI4MjIsIAorICAgIDEwMjgyNiwgMTAyODMwLCAxMDI4MzQsIDEwMjgzOCwgMTAyODQyLCAxMDI4NDYsIDEwMjg1MCwgMTAyODU0LCAxMDI4NTgsIAorICAgIDEwMjg2MiwgMTAyODY2LCAxMDI4NzAsIDEwMjg3NCwgMTAyODc4LCAxMDI4ODIsIDEwMjg4NiwgMTAyODkwLCAxMDI4OTQsIAorICAgIDEwMjg5OCwgMTAyOTAyLCAxMDI5MDYsIDEwMjkxMCwgMTAyOTE0LCAxMDI5MTgsIDEwMjkyMiwgMTAyOTI2LCAxMDI5MzAsIAorICAgIDEwMjkzNCwgMTAyOTM4LCAxMDI5NDIsIDEwMjk0NiwgMTAyOTUwLCAxMDI5NTQsIDEwMjk1OCwgMTAyOTYyLCAxMDI5NjYsIAorICAgIDEwMjk3MCwgMTAyOTc0LCAxMDI5NzgsIDEwMjk4MiwgMTAyOTg2LCAxMDI5OTAsIDEwMjk5NCwgMTAyOTk4LCAxMDMwMDIsIAorICAgIDEwMzAwNiwgMTAzMDEwLCAxMDMwMTQsIDEwMzAxOCwgMTAzMDIyLCAxMDMwMjYsIDEwMzAzMCwgMTAzMDM0LCAxMDMwMzgsIAorICAgIDEwMzA0MiwgMTAzMDQ2LCAxMDMwNTAsIDEwMzA1NCwgMTAzMDU4LCAxMDMwNjIsIDEwMzA2NiwgMTAzMDcwLCAxMDMwNzQsIAorICAgIDEwMzA3OCwgMTAzMDgyLCAxMDMwODYsIDEwMzA5MCwgMTAzMDk0LCAxMDMwOTgsIDEwMzEwMiwgMTAzMTA2LCAxMDMxMTAsIAorICAgIDEwMzExNCwgMTAzMTE4LCAxMDMxMjIsIDEwMzEyNiwgMTAzMTMwLCAxMDMxMzQsIDEwMzEzOCwgMTAzMTQyLCAxMDMxNDYsIAorICAgIDEwMzE1MCwgMTAzMTU0LCAxMDMxNTgsIDEwMzE2MiwgMTAzMTY2LCAxMDMxNzAsIDEwMzE3NCwgMTAzMTc4LCAxMDMxODIsIAorICAgIDEwMzE4NiwgMTAzMTkwLCAxMDMxOTQsIDEwMzE5OCwgMTAzMjAyLCAxMDMyMDYsIDEwMzIxMCwgMTAzMjE0LCAxMDMyMTgsIAorICAgIDEwMzIyMiwgMTAzMjI2LCAxMDMyMzAsIDEwMzIzNCwgMTAzMjM4LCAxMDMyNDIsIDEwMzI0NiwgMTAzMjUwLCAxMDMyNTQsIAorICAgIDEwMzI1OCwgMTAzMjYyLCAxMDMyNjYsIDEwMzI3MCwgMTAzMjc0LCAxMDMyNzgsIDEwMzI4MiwgMTAzMjg2LCAxMDMyOTAsIAorICAgIDEwMzI5NCwgMTAzMjk4LCAxMDMzMDIsIDEwMzMwNiwgMTAzMzEwLCAxMDMzMTQsIDEwMzMxOCwgMTAzMzIyLCAxMDMzMjYsIAorICAgIDEwMzMzMCwgMTAzMzM0LCAxMDMzMzgsIDEwMzM0MiwgMTAzMzQ2LCAxMDMzNTAsIDEwMzM1NCwgMTAzMzU4LCAxMDMzNjIsIAorICAgIDEwMzM2NiwgMTAzMzcwLCAxMDMzNzQsIDEwMzM3OCwgMTAzMzgyLCAxMDMzODYsIDEwMzM5MCwgMTAzMzk0LCAxMDMzOTgsIAorICAgIDEwMzQwMiwgMTAzNDA2LCAxMDM0MTAsIDEwMzQxNCwgMTAzNDE4LCAxMDM0MjIsIDEwMzQyNiwgMTAzNDMwLCAxMDM0MzQsIAorICAgIDEwMzQzOCwgMTAzNDQyLCAxMDM0NDYsIDEwMzQ1MCwgMTAzNDU0LCAxMDM0NTgsIDEwMzQ2MiwgMTAzNDY2LCAxMDM0NzAsIAorICAgIDEwMzQ3NCwgMTAzNDc4LCAxMDM0ODIsIDEwMzQ4NiwgMTAzNDkwLCAxMDM0OTQsIDEwMzQ5OCwgMTAzNTAyLCAxMDM1MDYsIAorICAgIDEwMzUxMCwgMTAzNTE0LCAxMDM1MTgsIDEwMzUyMiwgMTAzNTI2LCAxMDM1MzAsIDEwMzUzNCwgMTAzNTM4LCAxMDM1NDIsIAorICAgIDEwMzU0NiwgMTAzNTUwLCAxMDM1NTQsIDEwMzU1OCwgMTAzNTYyLCAxMDM1NjYsIDEwMzU3MCwgMTAzNTc0LCAxMDM1NzgsIAorICAgIDEwMzU4MiwgMTAzNTg2LCAxMDM1OTAsIDEwMzU5NCwgMTAzNTk4LCAxMDM2MDIsIDEwMzYwNiwgMTAzNjEwLCAxMDM2MTQsIAorICAgIDEwMzYxOCwgMTAzNjIyLCAxMDM2MjYsIDEwMzYzMCwgMTAzNjM0LCAxMDM2MzgsIDEwMzY0MiwgMTAzNjQ2LCAxMDM2NTAsIAorICAgIDEwMzY1NCwgMTAzNjU4LCAxMDM2NjIsIDEwMzY2NiwgMTAzNjcwLCAxMDM2NzQsIDEwMzY3OCwgMTAzNjgyLCAxMDM2ODYsIAorICAgIDEwMzY5MCwgMTAzNjk0LCAxMDM2OTgsIDEwMzcwMiwgMTAzNzA2LCAxMDM3MTAsIDEwMzcxNCwgMTAzNzE4LCAxMDM3MjIsIAorICAgIDEwMzcyNiwgMTAzNzMwLCAxMDM3MzQsIDEwMzczOCwgMTAzNzQyLCAxMDM3NDYsIDEwMzc1MCwgMTAzNzU0LCAxMDM3NTgsIAorICAgIDEwMzc2MiwgMTAzNzY2LCAxMDM3NzAsIDEwMzc3NCwgMTAzNzc4LCAxMDM3ODIsIDEwMzc4NiwgMTAzNzkwLCAxMDM3OTQsIAorICAgIDEwMzc5OCwgMTAzODAyLCAxMDM4MDYsIDEwMzgxMCwgMTAzODE0LCAxMDM4MTgsIDEwMzgyMiwgMTAzODI2LCAxMDM4MzAsIAorICAgIDEwMzgzNCwgMTAzODM4LCAxMDM4NDIsIDEwMzg0NiwgMTAzODUwLCAxMDM4NTQsIDEwMzg1OCwgMTAzODYyLCAxMDM4NjYsIAorICAgIDEwMzg3MCwgMTAzODc0LCAxMDM4NzgsIDEwMzg4MiwgMTAzODg2LCAxMDM4OTAsIDEwMzg5NCwgMTAzODk4LCAxMDM5MDIsIAorICAgIDEwMzkwNiwgMTAzOTEwLCAxMDM5MTQsIDEwMzkxOCwgMTAzOTIyLCAxMDM5MjYsIDEwMzkzMCwgMTAzOTM0LCAxMDM5MzgsIAorICAgIDEwMzk0MiwgMTAzOTQ2LCAxMDM5NTAsIDEwMzk1NCwgMTAzOTU4LCAxMDM5NjIsIDEwMzk2NiwgMTAzOTcwLCAxMDM5NzQsIAorICAgIDEwMzk3OCwgMTAzOTgyLCAxMDM5ODYsIDEwMzk5MCwgMTAzOTk0LCAxMDM5OTgsIDEwNDAwMiwgMTA0MDA2LCAxMDQwMTAsIAorICAgIDEwNDAxNCwgMTA0MDE4LCAxMDQwMjIsIDEwNDAyNiwgMTA0MDMwLCAxMDQwMzQsIDEwNDAzOCwgMTA0MDQyLCAxMDQwNDYsIAorICAgIDEwNDA1MCwgMTA0MDU0LCAxMDQwNTgsIDEwNDA2MiwgMTA0MDY2LCAxMDQwNzAsIDEwNDA3NCwgMTA0MDc4LCAxMDQwODIsIAorICAgIDEwNDA4NiwgMTA0MDkwLCAxMDQwOTQsIDEwNDA5OCwgMTA0MTAyLCAxMDQxMDYsIDEwNDExMCwgMTA0MTE0LCAxMDQxMTgsIAorICAgIDEwNDEyMiwgMTA0MTI2LCAxMDQxMzAsIDEwNDEzNCwgMTA0MTM4LCAxMDQxNDIsIDEwNDE0NiwgMTA0MTUwLCAxMDQxNTQsIAorICAgIDEwNDE1OCwgMTA0MTYyLCAxMDQxNjYsIDEwNDE3MCwgMTA0MTc0LCAxMDQxNzgsIDEwNDE4MiwgMTA0MTg2LCAxMDQxOTAsIAorICAgIDEwNDE5NCwgMTA0MTk4LCAxMDQyMDIsIDEwNDIwNiwgMTA0MjEwLCAxMDQyMTQsIDEwNDIxOCwgMTA0MjIyLCAxMDQyMjYsIAorICAgIDEwNDIzMCwgMTA0MjM0LCAxMDQyMzgsIDEwNDI0MiwgMTA0MjQ2LCAxMDQyNTAsIDEwNDI1NCwgMTA0MjU4LCAxMDQyNjIsIAorICAgIDEwNDI2NiwgMTA0MjcwLCAxMDQyNzQsIDEwNDI3OCwgMTA0MjgyLCAxMDQyODYsIDEwNDI5MCwgMTA0Mjk0LCAxMDQyOTgsIAorICAgIDEwNDMwMiwgMTA0MzA2LCAxMDQzMTAsIDEwNDMxNCwgMTA0MzE4LCAxMDQzMjIsIDEwNDMyNiwgMTA0MzMwLCAxMDQzMzQsIAorICAgIDEwNDMzOCwgMTA0MzQyLCAxMDQzNDYsIDEwNDM1MCwgMTA0MzU0LCAxMDQzNTgsIDEwNDM2MiwgMTA0MzY2LCAxMDQzNzAsIAorICAgIDEwNDM3NCwgMTA0Mzc4LCAxMDQzODIsIDEwNDM4NiwgMTA0MzkwLCAxMDQzOTQsIDEwNDM5OCwgMTA0NDAyLCAxMDQ0MDYsIAorICAgIDEwNDQxMCwgMTA0NDE0LCAxMDQ0MTgsIDEwNDQyMiwgMTA0NDI2LCAxMDQ0MzAsIDEwNDQzNCwgMTA0NDM4LCAxMDQ0NDIsIAorICAgIDEwNDQ0NiwgMTA0NDUwLCAxMDQ0NTQsIDEwNDQ1OCwgMTA0NDYyLCAxMDQ0NjYsIDEwNDQ3MCwgMTA0NDc0LCAxMDQ0NzgsIAorICAgIDEwNDQ4MiwgMTA0NDg2LCAxMDQ0OTAsIDEwNDQ5NCwgMTA0NDk4LCAxMDQ1MDIsIDEwNDUwNiwgMTA0NTEwLCAxMDQ1MTQsIAorICAgIDEwNDUxOCwgMTA0NTIyLCAxMDQ1MjYsIDEwNDUzMCwgMTA0NTM0LCAxMDQ1MzgsIDEwNDU0MiwgMTA0NTQ2LCAxMDQ1NTAsIAorICAgIDEwNDU1NCwgMTA0NTU4LCAxMDQ1NjIsIDEwNDU2NiwgMTA0NTcwLCAxMDQ1NzQsIDEwNDU3OCwgMTA0NTgyLCAxMDQ1ODYsIAorICAgIDEwNDU5MCwgMTA0NTk0LCAxMDQ1OTgsIDEwNDYwMiwgMTA0NjA2LCAxMDQ2MTAsIDEwNDYxNCwgMTA0NjE4LCAxMDQ2MjIsIAorICAgIDEwNDYyNiwgMTA0NjMwLCAxMDQ2MzQsIDEwNDYzOCwgMTA0NjQyLCAxMDQ2NDYsIDEwNDY1MCwgMTA0NjU0LCAxMDQ2NTgsIAorICAgIDEwNDY2MiwgMTA0NjY2LCAxMDQ2NzAsIDEwNDY3NCwgMTA0Njc4LCAxMDQ2ODIsIDEwNDY4NiwgMTA0NjkwLCAxMDQ2OTQsIAorICAgIDEwNDY5OCwgMTA0NzAyLCAxMDQ3MDYsIDEwNDcxMCwgMTA0NzE0LCAxMDQ3MTgsIDEwNDcyMiwgMTA0NzI2LCAxMDQ3MzAsIAorICAgIDEwNDczNCwgMTA0NzM4LCAxMDQ3NDIsIDEwNDc0NiwgMTA0NzUwLCAxMDQ3NTQsIDEwNDc1OCwgMTA0NzYyLCAxMDQ3NjYsIAorICAgIDEwNDc3MCwgMTA0Nzc0LCAxMDQ3NzgsIDEwNDc4MiwgMTA0Nzg2LCAxMDQ3OTAsIDEwNDc5NCwgMTA0Nzk4LCAxMDQ4MDIsIAorICAgIDEwNDgwNiwgMTA0ODEwLCAxMDQ4MTQsIDEwNDgxOCwgMTA0ODIyLCAxMDQ4MjYsIDEwNDgzMCwgMTA0ODM0LCAxMDQ4MzgsIAorICAgIDEwNDg0MiwgMTA0ODQ2LCAxMDQ4NTAsIDEwNDg1NCwgMTA0ODU4LCAxMDQ4NjIsIDEwNDg2NiwgMTA0ODcwLCAxMDQ4NzQsIAorICAgIDEwNDg3OCwgMTA0ODgyLCAxMDQ4ODYsIDEwNDg5MCwgMTA0ODk0LCAxMDQ4OTgsIDEwNDkwMiwgMTA0OTA2LCAxMDQ5MTAsIAorICAgIDEwNDkxNCwgMTA0OTE4LCAxMDQ5MjIsIDEwNDkyNiwgMTA0OTMwLCAxMDQ5MzQsIDEwNDkzOCwgMTA0OTQyLCAxMDQ5NDYsIAorICAgIDEwNDk1MCwgMTA0OTU0LCAxMDQ5NTgsIDEwNDk2MiwgMTA0OTY2LCAxMDQ5NzAsIDEwNDk3NCwgMTA0OTc4LCAxMDQ5ODIsIAorICAgIDEwNDk4NiwgMTA0OTkwLCAxMDQ5OTQsIDEwNDk5OCwgMTA1MDAyLCAxMDUwMDYsIDEwNTAxMCwgMTA1MDE0LCAxMDUwMTgsIAorICAgIDEwNTAyMiwgMTA1MDI2LCAxMDUwMzAsIDEwNTAzNCwgMTA1MDM4LCAxMDUwNDIsIDEwNTA0NiwgMTA1MDUwLCAxMDUwNTQsIAorICAgIDEwNTA1OCwgMTA1MDYyLCAxMDUwNjYsIDEwNTA3MCwgMTA1MDc0LCAxMDUwNzgsIDEwNTA4MiwgMTA1MDg2LCAxMDUwOTAsIAorICAgIDEwNTA5NCwgMTA1MDk4LCAxMDUxMDIsIDEwNTEwNiwgMTA1MTEwLCAxMDUxMTQsIDEwNTExOCwgMTA1MTIyLCAxMDUxMjYsIAorICAgIDEwNTEzMCwgMTA1MTM0LCAxMDUxMzgsIDEwNTE0MiwgMTA1MTQ2LCAxMDUxNTAsIDEwNTE1NCwgMTA1MTU4LCAxMDUxNjIsIAorICAgIDEwNTE2NiwgMTA1MTcwLCAxMDUxNzQsIDEwNTE3OCwgMTA1MTgyLCAxMDUxODYsIDEwNTE5MCwgMTA1MTk0LCAxMDUxOTgsIAorICAgIDEwNTIwMiwgMTA1MjA2LCAxMDUyMTAsIDEwNTIxNCwgMTA1MjE4LCAxMDUyMjIsIDEwNTIyNiwgMTA1MjMwLCAxMDUyMzQsIAorICAgIDEwNTIzOCwgMTA1MjQyLCAxMDUyNDYsIDEwNTI1MCwgMTA1MjU0LCAxMDUyNTgsIDEwNTI2MiwgMTA1MjY2LCAxMDUyNzAsIAorICAgIDEwNTI3NCwgMTA1Mjc4LCAxMDUyODIsIDEwNTI4NiwgMTA1MjkwLCAxMDUyOTQsIDEwNTI5OCwgMTA1MzAyLCAxMDUzMDYsIAorICAgIDEwNTMxMCwgMTA1MzE0LCAxMDUzMTgsIDEwNTMyMiwgMTA1MzI2LCAxMDUzMzAsIDEwNTMzNCwgMTA1MzM4LCAxMDUzNDIsIAorICAgIDEwNTM0NiwgMTA1MzUwLCAxMDUzNTQsIDEwNTM1OCwgMTA1MzYyLCAxMDUzNjYsIDEwNTM3MCwgMTA1Mzc0LCAxMDUzNzgsIAorICAgIDEwNTM4MiwgMTA1Mzg2LCAxMDUzOTAsIDEwNTM5NCwgMTA1Mzk4LCAxMDU0MDIsIDEwNTQwNiwgMTA1NDEwLCAxMDU0MTQsIAorICAgIDEwNTQxOCwgMTA1NDIyLCAxMDU0MjYsIDEwNTQzMCwgMTA1NDM0LCAxMDU0MzgsIDEwNTQ0MiwgMTA1NDQ2LCAxMDU0NTAsIAorICAgIDEwNTQ1NCwgMTA1NDU4LCAxMDU0NjIsIDEwNTQ2NiwgMTA1NDcwLCAxMDU0NzQsIDEwNTQ3OCwgMTA1NDgyLCAxMDU0ODYsIAorICAgIDEwNTQ5MCwgMTA1NDk0LCAxMDU0OTgsIDEwNTUwMiwgMTA1NTA2LCAxMDU1MTAsIDEwNTUxNCwgMTA1NTE4LCAxMDU1MjIsIAorICAgIDEwNTUyNiwgMTA1NTMwLCAxMDU1MzQsIDEwNTUzOCwgMTA1NTQyLCAxMDU1NDYsIDEwNTU1MCwgMTA1NTU0LCAxMDU1NTgsIAorICAgIDEwNTU2MiwgMTA1NTY2LCAxMDU1NzAsIDEwNTU3NCwgMTA1NTc4LCAxMDU1ODIsIDEwNTU4NiwgMTA1NTkwLCAxMDU1OTQsIAorICAgIDEwNTU5OCwgMTA1NjAyLCAxMDU2MDYsIDEwNTYxMCwgMTA1NjE0LCAxMDU2MTgsIDEwNTYyMiwgMTA1NjI2LCAxMDU2MzAsIAorICAgIDEwNTYzNCwgMTA1NjM4LCAxMDU2NDIsIDEwNTY0NiwgMTA1NjUwLCAxMDU2NTQsIDEwNTY1OCwgMTA1NjYyLCAxMDU2NjYsIAorICAgIDEwNTY3MCwgMTA1Njc0LCAxMDU2NzgsIDEwNTY4MiwgMTA1Njg2LCAxMDU2OTAsIDEwNTY5NCwgMTA1Njk4LCAxMDU3MDIsIAorICAgIDEwNTcwNiwgMTA1NzEwLCAxMDU3MTQsIDEwNTcxOCwgMTA1NzIyLCAxMDU3MjYsIDEwNTczMCwgMTA1NzM0LCAxMDU3MzgsIAorICAgIDEwNTc0MiwgMTA1NzQ2LCAxMDU3NTAsIDEwNTc1NCwgMTA1NzU4LCAxMDU3NjIsIDEwNTc2NiwgMTA1NzcwLCAxMDU3NzQsIAorICAgIDEwNTc3OCwgMTA1NzgyLCAxMDU3ODYsIDEwNTc5MCwgMTA1Nzk0LCAxMDU3OTgsIDEwNTgwMiwgMTA1ODA2LCAxMDU4MTAsIAorICAgIDEwNTgxNCwgMTA1ODE4LCAxMDU4MjIsIDEwNTgyNiwgMTA1ODMwLCAxMDU4MzQsIDEwNTgzOCwgMTA1ODQyLCAxMDU4NDYsIAorICAgIDEwNTg1MCwgMTA1ODU0LCAxMDU4NTgsIDEwNTg2MiwgMTA1ODY2LCAxMDU4NzAsIDEwNTg3NCwgMTA1ODc4LCAxMDU4ODIsIAorICAgIDEwNTg4NiwgMTA1ODkwLCAxMDU4OTQsIDEwNTg5OCwgMTA1OTAyLCAxMDU5MDYsIDEwNTkxMCwgMTA1OTE0LCAxMDU5MTgsIAorICAgIDEwNTkyMiwgMTA1OTI2LCAxMDU5MzAsIDEwNTkzNCwgMTA1OTM4LCAxMDU5NDIsIDEwNTk0NiwgMTA1OTUwLCAxMDU5NTQsIAorICAgIDEwNTk1OCwgMTA1OTYyLCAxMDU5NjYsIDEwNTk3MCwgMTA1OTc0LCAxMDU5NzgsIDEwNTk4MiwgMTA1OTg2LCAxMDU5OTAsIAorICAgIDEwNTk5NCwgMTA1OTk4LCAxMDYwMDIsIDEwNjAwNiwgMTA2MDEwLCAxMDYwMTQsIDEwNjAxOCwgMTA2MDIyLCAxMDYwMjYsIAorICAgIDEwNjAzMCwgMTA2MDM0LCAxMDYwMzgsIDEwNjA0MiwgMTA2MDQ2LCAxMDYwNTAsIDEwNjA1NCwgMTA2MDU4LCAxMDYwNjIsIAorICAgIDEwNjA2NiwgMTA2MDcwLCAxMDYwNzQsIDEwNjA3OCwgMTA2MDgyLCAxMDYwODYsIDEwNjA5MCwgMTA2MDk0LCAxMDYwOTgsIAorICAgIDEwNjEwMiwgMTA2MTA2LCAxMDYxMTAsIDEwNjExNCwgMTA2MTE4LCAxMDYxMjIsIDEwNjEyNiwgMTA2MTMwLCAxMDYxMzQsIAorICAgIDEwNjEzOCwgMTA2MTQyLCAxMDYxNDYsIDEwNjE1MCwgMTA2MTU0LCAxMDYxNTgsIDEwNjE2MiwgMTA2MTY2LCAxMDYxNzAsIAorICAgIDEwNjE3NCwgMTA2MTc4LCAxMDYxODIsIDEwNjE4NiwgMTA2MTkwLCAxMDYxOTQsIDEwNjE5OCwgMTA2MjAyLCAxMDYyMDYsIAorICAgIDEwNjIxMCwgMTA2MjE0LCAxMDYyMTgsIDEwNjIyMiwgMTA2MjI2LCAxMDYyMzAsIDEwNjIzNCwgMTA2MjM4LCAxMDYyNDIsIAorICAgIDEwNjI0NiwgMTA2MjUwLCAxMDYyNTQsIDEwNjI1OCwgMTA2MjYyLCAxMDYyNjYsIDEwNjI3MCwgMTA2Mjc0LCAxMDYyNzgsIAorICAgIDEwNjI4MiwgMTA2Mjg2LCAxMDYyOTAsIDEwNjI5NCwgMTA2Mjk4LCAxMDYzMDIsIDEwNjMwNiwgMTA2MzEwLCAxMDYzMTQsIAorICAgIDEwNjMxOCwgMTA2MzIyLCAxMDYzMjYsIDEwNjMzMCwgMTA2MzM0LCAxMDYzMzgsIDEwNjM0MiwgMTA2MzQ2LCAxMDYzNTAsIAorICAgIDEwNjM1NCwgMTA2MzU4LCAxMDYzNjIsIDEwNjM2NiwgMTA2MzcwLCAxMDYzNzQsIDEwNjM3OCwgMTA2MzgyLCAxMDYzODYsIAorICAgIDEwNjM5MCwgMTA2Mzk0LCAxMDYzOTgsIDEwNjQwMiwgMTA2NDA2LCAxMDY0MTAsIDEwNjQxNCwgMTA2NDE4LCAxMDY0MjIsIAorICAgIDEwNjQyNiwgMTA2NDMwLCAxMDY0MzQsIDEwNjQzOCwgMTA2NDQyLCAxMDY0NDYsIDEwNjQ1MCwgMTA2NDU0LCAxMDY0NTgsIAorICAgIDEwNjQ2MiwgMTA2NDY2LCAxMDY0NzAsIDEwNjQ3NCwgMTA2NDc4LCAxMDY0ODIsIDEwNjQ4NiwgMTA2NDkwLCAxMDY0OTQsIAorICAgIDEwNjQ5OCwgMTA2NTAyLCAxMDY1MDYsIDEwNjUxMCwgMTA2NTE0LCAxMDY1MTgsIDEwNjUyMiwgMTA2NTI2LCAxMDY1MzAsIAorICAgIDEwNjUzNCwgMTA2NTM4LCAxMDY1NDIsIDEwNjU0NiwgMTA2NTUwLCAxMDY1NTQsIDEwNjU1OCwgMTA2NTYyLCAxMDY1NjYsIAorICAgIDEwNjU3MCwgMTA2NTc0LCAxMDY1NzgsIDEwNjU4MiwgMTA2NTg2LCAxMDY1OTAsIDEwNjU5NCwgMTA2NTk4LCAxMDY2MDIsIAorICAgIDEwNjYwNiwgMTA2NjEwLCAxMDY2MTQsIDEwNjYxOCwgMTA2NjIyLCAxMDY2MjYsIDEwNjYzMCwgMTA2NjM0LCAxMDY2MzgsIAorICAgIDEwNjY0MiwgMTA2NjQ2LCAxMDY2NTAsIDEwNjY1NCwgMTA2NjU4LCAxMDY2NjIsIDEwNjY2NiwgMTA2NjcwLCAxMDY2NzQsIAorICAgIDEwNjY3OCwgMTA2NjgyLCAxMDY2ODYsIDEwNjY5MCwgMTA2Njk0LCAxMDY2OTgsIDEwNjcwMiwgMTA2NzA2LCAxMDY3MTAsIAorICAgIDEwNjcxNCwgMTA2NzE4LCAxMDY3MjIsIDEwNjcyNiwgMTA2NzMwLCAxMDY3MzQsIDEwNjczOCwgMTA2NzQyLCAxMDY3NDYsIAorICAgIDEwNjc1MCwgMTA2NzU0LCAxMDY3NTgsIDEwNjc2MiwgMTA2NzY2LCAxMDY3NzAsIDEwNjc3NCwgMTA2Nzc4LCAxMDY3ODIsIAorICAgIDEwNjc4NiwgMTA2NzkwLCAxMDY3OTQsIDEwNjc5OCwgMTA2ODAyLCAxMDY4MDYsIDEwNjgxMCwgMTA2ODE0LCAxMDY4MTgsIAorICAgIDEwNjgyMiwgMTA2ODI2LCAxMDY4MzAsIDEwNjgzNCwgMTA2ODM4LCAxMDY4NDIsIDEwNjg0NiwgMTA2ODUwLCAxMDY4NTQsIAorICAgIDEwNjg1OCwgMTA2ODYyLCAxMDY4NjYsIDEwNjg3MCwgMTA2ODc0LCAxMDY4NzgsIDEwNjg4MiwgMTA2ODg2LCAxMDY4OTAsIAorICAgIDEwNjg5NCwgMTA2ODk4LCAxMDY5MDIsIDEwNjkwNiwgMTA2OTEwLCAxMDY5MTQsIDEwNjkxOCwgMTA2OTIyLCAxMDY5MjYsIAorICAgIDEwNjkzMCwgMTA2OTM0LCAxMDY5MzgsIDEwNjk0MiwgMTA2OTQ2LCAxMDY5NTAsIDEwNjk1NCwgMTA2OTU4LCAxMDY5NjIsIAorICAgIDEwNjk2NiwgMTA2OTcwLCAxMDY5NzQsIDEwNjk3OCwgMTA2OTgyLCAxMDY5ODYsIDEwNjk5MCwgMTA2OTk0LCAxMDY5OTgsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDEwNDQwOCwgMTA0NDE1LCAxMDQ0MjIsIDEwNDQzMSwgMTA0NDQwLCAxMDQ0NDcsIDEwNDQ1MiwgMTA0NDU5LCAKLSAgICAxMDQ0NjYsIDEwNDQ3NSwgMTA0NDg2LCAxMDQ0OTcsIDEwNDUwMiwgMTA0NTA5LCAxMDQ1MTQsIDEwNDUxOSwgMTA0NTI0LCAKLSAgICAxMDQ1MjksIDEwNDUzNCwgMTA0NTM5LCAxMDQ1NDQsIDEwNDU0OSwgMTA0NTU0LCAxMDQ1NTksIDEwNDU2NCwgMTA0NTcxLCAKLSAgICAxMDQ1NzgsIDEwNDU4MywgMTA0NTg4LCAxMDQ1OTMsIDEwNDU5OCwgMTA0NjA1LCAxMDQ2MTIsIDEwNDYyMCwgMTA0NjI1LCAKLSAgICAxMDQ2MzIsIDEwNDYzNywgMTA0NjQyLCAxMDQ2NDcsIDEwNDY1MiwgMTA0NjU3LCAxMDQ2NjQsIDEwNDY3MSwgMTA0Njc2LCAKLSAgICAxMDQ2ODEsIDEwNDY4NiwgMTA0NjkxLCAxMDQ2OTYsIDEwNDcwMSwgMTA0NzA2LCAxMDQ3MTEsIDEwNDcxNiwgMTA0NzIxLCAKLSAgICAxMDQ3MjYsIDEwNDczMSwgMTA0NzM2LCAxMDQ3NDEsIDEwNDc0NiwgMTA0NzUxLCAxMDQ3NTYsIDEwNDc2MSwgMTA0NzY2LCAKLSAgICAxMDQ3NzMsIDEwNDc3OCwgMTA0NzgzLCAxMDQ3OTIsIDEwNDc5OSwgMTA0ODA0LCAxMDQ4MDksIDEwNDgxNCwgMTA0ODE5LCAKLSAgICAxMDQ4MjQsIDEwNDgyOSwgMTA0ODM0LCAxMDQ4MzksIDEwNDg0NCwgMTA0ODQ5LCAxMDQ4NTQsIDEwNDg1OSwgMTA0ODY0LCAKLSAgICAxMDQ4NjksIDEwNDg3NCwgMTA0ODc5LCAxMDQ4ODQsIDEwNDg4OSwgMTA0ODk0LCAxMDQ4OTksIDEwNDkwNCwgMTA0OTEwLCAKLSAgICAxMDQ5MTgsIDEwNDkyNCwgMTA0OTMyLCAxMDQ5NDAsIDEwNDk0OCwgMTA0OTU0LCAxMDQ5NjAsIDEwNDk2NiwgMTA0OTcyLCAKLSAgICAxMDQ5NzgsIDEwNDk4NiwgMTA0OTk2LCAxMDUwMDQsIDEwNTAxMiwgMTA1MDE4LCAxMDUwMjQsIDEwNTAzMiwgMTA1MDQwLCAKLSAgICAxMDUwNDYsIDEwNTA1NCwgMTA1MDYyLCAxMDUwNzAsIDEwNTA3NiwgMTA1MDgyLCAxMDUwODgsIDEwNTA5NCwgMTA1MTAwLCAKLSAgICAxMDUxMDYsIDEwNTExNCwgMTA1MTIyLCAxMDUxMjgsIDEwNTEzNCwgMTA1MTQwLCAxMDUxNDYsIDEwNTE1MiwgMTA1MTYwLCAKLSAgICAxMDUxNjYsIDEwNTE3MiwgMTA1MTc4LCAxMDUxODQsIDEwNTE5MCwgMTA1MTk2LCAxMDUyMDQsIDEwNTIxMCwgMTA1MjE2LCAKLSAgICAxMDUyMjIsIDEwNTIyOCwgMTA1MjM2LCAxMDUyNDQsIDEwNTI1MCwgMTA1MjU2LCAxMDUyNjIsIDEwNTI2NywgMTA1MjczLCAKLSAgICAxMDUyNzksIDEwNTI4NiwgMTA1MjkxLCAxMDUyOTYsIDEwNTMwMSwgMTA1MzA2LCAxMDUzMTEsIDEwNTMxNiwgMTA1MzIxLCAKLSAgICAxMDUzMjYsIDEwNTMzMSwgMTA1MzQwLCAxMDUzNDcsIDEwNTM1MiwgMTA1MzU3LCAxMDUzNjIsIDEwNTM2OSwgMTA1Mzc0LCAKLSAgICAxMDUzNzksIDEwNTM4NCwgMTA1MzkxLCAxMDUzOTYsIDEwNTQwMSwgMTA1NDA2LCAxMDU0MTEsIDEwNTQxNiwgMTA1NDIxLCAKLSAgICAxMDU0MjYsIDEwNTQzMSwgMTA1NDM2LCAxMDU0NDEsIDEwNTQ0NiwgMTA1NDUzLCAxMDU0NTgsIDEwNTQ2NSwgMTA1NDcwLCAKLSAgICAxMDU0NzUsIDEwNTQ4MiwgMTA1NDg3LCAxMDU0OTIsIDEwNTQ5NywgMTA1NTAyLCAxMDU1MDcsIDEwNTUxMiwgMTA1NTE3LCAKLSAgICAxMDU1MjIsIDEwNTUyNywgMTA1NTMyLCAxMDU1MzcsIDEwNTU0MiwgMTA1NTQ3LCAxMDU1NTIsIDEwNTU1NywgMTA1NTYyLCAKLSAgICAxMDU1NjcsIDEwNTU3MiwgMTA1NTc3LCAxMDU1ODQsIDEwNTU4OSwgMTA1NTk0LCAxMDU1OTksIDEwNTYwNCwgMTA1NjA5LCAKLSAgICAxMDU2MTQsIDEwNTYxOSwgMTA1NjI0LCAxMDU2MjksIDEwNTYzNCwgMTA1NjM5LCAxMDU2NDQsIDEwNTY0OSwgMTA1NjU2LCAKLSAgICAxMDU2NjEsIDEwNTY2NiwgMTA1NjczLCAxMDU2NzgsIDEwNTY4MywgMTA1Njg4LCAxMDU2OTMsIDEwNTY5OCwgMTA1NzAzLCAKLSAgICAxMDU3MDgsIDEwNTcxMywgMTA1NzE4LCAxMDU3MjMsIDEwNTczMCwgMTA1NzM1LCAxMDU3NDAsIDEwNTc0NSwgMTA1NzUwLCAKLSAgICAxMDU3NTUsIDEwNTc2MiwgMTA1NzY5LCAxMDU3NzQsIDEwNTc3OSwgMTA1Nzg0LCAxMDU3ODksIDEwNTc5NCwgMTA1Nzk5LCAKLSAgICAxMDU4MDQsIDEwNTgwOSwgMTA1ODE0LCAxMDU4MTksIDEwNTgyNCwgMTA1ODI5LCAxMDU4MzQsIDEwNTgzOSwgMTA1ODQ0LCAKLSAgICAxMDU4NDksIDEwNTg1NCwgMTA1ODU5LCAxMDU4NjQsIDEwNTg2OSwgMTA1ODc0LCAxMDU4NzksIDEwNTg4NCwgMTA1ODg5LCAKLSAgICAxMDU4OTQsIDEwNTg5OSwgMTA1OTA0LCAxMDU5MDksIDEwNTkxNCwgMTA1OTE5LCAxMDU5MjQsIDEwNTkyOSwgMTA1OTM0LCAKLSAgICAxMDU5MzksIDEwNTk0NCwgMTA1OTQ5LCAxMDU5NTYsIDEwNTk2MSwgMTA1OTY2LCAxMDU5NzEsIDEwNTk3NiwgMTA1OTgxLCAKLSAgICAxMDU5ODYsIDEwNTk5MSwgMTA1OTk2LCAxMDYwMDEsIDEwNjAwNiwgMTA2MDExLCAxMDYwMTYsIDEwNjAyMSwgMTA2MDI2LCAKLSAgICAxMDYwMzEsIDEwNjAzNiwgMTA2MDQxLCAxMDYwNDYsIDEwNjA1MSwgMTA2MDU2LCAxMDYwNjEsIDEwNjA2NiwgMTA2MDcxLCAKLSAgICAxMDYwNzYsIDEwNjA4MSwgMTA2MDg2LCAxMDYwOTEsIDEwNjA5NiwgMTA2MTAxLCAxMDYxMDYsIDEwNjExMSwgMTA2MTE2LCAKLSAgICAxMDYxMjEsIDEwNjEyNiwgMTA2MTMxLCAxMDYxMzYsIDEwNjE0MSwgMTA2MTQ2LCAxMDYxNTEsIDEwNjE1NiwgMTA2MTYxLCAKLSAgICAxMDYxNjYsIDEwNjE3MSwgMTA2MTc2LCAxMDYxODEsIDEwNjE4NiwgMTA2MTkxLCAxMDYxOTYsIDEwNjIwMSwgMTA2MjA2LCAKLSAgICAxMDYyMTEsIDEwNjIxNiwgMTA2MjIxLCAxMDYyMjYsIDEwNjIzMSwgMTA2MjM2LCAxMDYyNDEsIDEwNjI0NiwgMTA2MjUzLCAKLSAgICAxMDYyNTgsIDEwNjI2MywgMTA2MjY4LCAxMDYyNzMsIDEwNjI3OCwgMTA2MjgzLCAxMDYyODcsIDEwNjI5MiwgMTA2Mjk3LCAKLSAgICAxMDYzMDIsIDEwNjMwNywgMTA2MzEyLCAxMDYzMTcsIDEwNjMyMiwgMTA2MzI3LCAxMDYzMzIsIDEwNjMzNywgMTA2MzQyLCAKLSAgICAxMDYzNDcsIDEwNjM1MiwgMTA2MzU3LCAxMDYzNjQsIDEwNjM2OSwgMTA2Mzc0LCAxMDYzODAsIDEwNjM4NSwgMTA2MzkwLCAKLSAgICAxMDYzOTUsIDEwNjQwMCwgMTA2NDA1LCAxMDY0MTAsIDEwNjQxNSwgMTA2NDIwLCAxMDY0MjUsIDEwNjQzMCwgMTA2NDM1LCAKLSAgICAxMDY0NDAsIDEwNjQ0NSwgMTA2NDUwLCAxMDY0NTUsIDEwNjQ2MCwgMTA2NDY1LCAxMDY0NzAsIDEwNjQ3NSwgMTA2NDgwLCAKLSAgICAxMDY0ODUsIDEwNjQ5MCwgMTA2NDk1LCAxMDY1MDAsIDEwNjUwNSwgMTA2NTEwLCAxMDY1MTUsIDEwNjUyMCwgMTA2NTI1LCAKLSAgICAxMDY1MzAsIDEwNjUzNSwgMTA2NTQwLCAxMDY1NDUsIDEwNjU1MCwgMTA2NTU1LCAxMDY1NjAsIDEwNjU2NSwgMTA2NTcwLCAKLSAgICAxMDY1NzUsIDEwNjU4MCwgMTA2NTg1LCAxMDY1OTAsIDEwNjU5NSwgMTA2NjAyLCAxMDY2MDcsIDEwNjYxMiwgMTA2NjE5LCAKLSAgICAxMDY2MjYsIDEwNjYzMSwgMTA2NjM2LCAxMDY2NDEsIDEwNjY0NiwgMTA2NjUxLCAxMDY2NTYsIDEwNjY2MSwgMTA2NjY2LCAKLSAgICAxMDY2NzEsIDEwNjY3NiwgMTA2NjgxLCAxMDY2ODYsIDEwNjY5MSwgMTA2Njk2LCAxMDY3MDEsIDEwNjcwNiwgMTA2NzExLCAKLSAgICAxMDY3MTYsIDEwNjcyMSwgMTA2NzI2LCAxMDY3MzEsIDEwNjczNiwgMTA2NzQxLCAxMDY3NDYsIDEwNjc1MSwgMTA2NzU4LCAKLSAgICAxMDY3NjMsIDEwNjc2OCwgMTA2NzczLCAxMDY3NzgsIDEwNjc4MywgMTA2Nzg4LCAxMDY3OTMsIDEwNjc5OCwgMTA2ODAzLCAKLSAgICAxMDY4MDgsIDEwNjgxMywgMTA2ODE4LCAxMDY4MjMsIDEwNjgyOCwgMTA2ODMzLCAxMDY4MzgsIDEwNjg0MywgMTA2ODQ4LCAKLSAgICAxMDY4NTUsIDEwNjg2MCwgMTA2ODY1LCAxMDY4NzAsIDEwNjg3NSwgMTA2ODgwLCAxMDY4ODUsIDEwNjg5MCwgMTA2ODk2LCAKLSAgICAxMDY5MDEsIDEwNjkwNiwgMTA2OTExLCAxMDY5MTYsIDEwNjkyMSwgMTA2OTI2LCAxMDY5MzEsIDEwNjkzNiwgMTA2OTQzLCAKLSAgICAxMDY5NTAsIDEwNjk1NSwgMTA2OTYwLCAxMDY5NjQsIDEwNjk2OSwgMTA2OTczLCAxMDY5NzcsIDEwNjk4MiwgMTA2OTg5LCAKLSAgICAxMDY5OTQsIDEwNjk5OSwgMTA3MDA4LCAxMDcwMTMsIDEwNzAxOCwgMTA3MDIzLCAxMDcwMjgsIDEwNzAzNSwgMTA3MDQyLCAKLSAgICAxMDcwNDcsIDEwNzA1MiwgMTA3MDU3LCAxMDcwNjIsIDEwNzA2OSwgMTA3MDc0LCAxMDcwNzksIDEwNzA4NCwgMTA3MDg5LCAKLSAgICAxMDcwOTQsIDEwNzA5OSwgMTA3MTA0LCAxMDcxMDksIDEwNzExNCwgMTA3MTE5LCAxMDcxMjQsIDEwNzEyOSwgMTA3MTM2LCAKLSAgICAxMDcxNDAsIDEwNzE0NSwgMTA3MTUwLCAxMDcxNTUsIDEwNzE2MCwgMTA3MTY0LCAxMDcxNjksIDEwNzE3NCwgMTA3MTc5LCAKLSAgICAxMDcxODQsIDEwNzE4OSwgMTA3MTk0LCAxMDcxOTksIDEwNzIwNCwgMTA3MjA5LCAxMDcyMTUsIDEwNzIyMSwgMTA3MjI3LCAKLSAgICAxMDcyMzMsIDEwNzIzOSwgMTA3MjQ1LCAxMDcyNTEsIDEwNzI1NywgMTA3MjYzLCAxMDcyNjksIDEwNzI3NSwgMTA3MjgxLCAKLSAgICAxMDcyODYsIDEwNzI5MiwgMTA3Mjk4LCAxMDczMDQsIDEwNzMxMCwgMTA3MzE2LCAxMDczMjIsIDEwNzMyOCwgMTA3MzM0LCAKLSAgICAxMDczNDAsIDEwNzM0NiwgMTA3MzUyLCAxMDczNTcsIDEwNzM2MywgMTA3MzY5LCAxMDczNzUsIDEwNzM4MSwgMTA3Mzg3LCAKLSAgICAxMDczOTMsIDEwNzM5OSwgMTA3NDA1LCAxMDc0MTEsIDEwNzQxNywgMTA3NDIzLCAxMDc0MjksIDEwNzQzNSwgMTA3NDQxLCAKLSAgICAxMDc0NDcsIDEwNzQ1MywgMTA3NDU5LCAxMDc0NjUsIDEwNzQ3MSwgMTA3NDc3LCAxMDc0ODIsIDEwNzQ4OCwgMTA3NDk0LCAKLSAgICAxMDc1MDAsIDEwNzUwNiwgMTA3NTEyLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDcwMDIsIDEwNzAwOSwgMTA3MDE2LCAxMDcwMjUsIDEwNzAzNCwgCisgICAgMTA3MDQxLCAxMDcwNDYsIDEwNzA1MywgMTA3MDYwLCAxMDcwNjksIDEwNzA4MCwgMTA3MDkxLCAxMDcwOTYsIDEwNzEwMywgCisgICAgMTA3MTA4LCAxMDcxMTMsIDEwNzExOCwgMTA3MTIzLCAxMDcxMjgsIDEwNzEzMywgMTA3MTM4LCAxMDcxNDMsIDEwNzE0OCwgCisgICAgMTA3MTUzLCAxMDcxNTgsIDEwNzE2NSwgMTA3MTcyLCAxMDcxNzcsIDEwNzE4MiwgMTA3MTg3LCAxMDcxOTIsIDEwNzE5OSwgCisgICAgMTA3MjA2LCAxMDcyMTQsIDEwNzIxOSwgMTA3MjI2LCAxMDcyMzEsIDEwNzIzNiwgMTA3MjQxLCAxMDcyNDYsIDEwNzI1MSwgCisgICAgMTA3MjU4LCAxMDcyNjUsIDEwNzI3MCwgMTA3Mjc1LCAxMDcyODAsIDEwNzI4NSwgMTA3MjkwLCAxMDcyOTUsIDEwNzMwMCwgCisgICAgMTA3MzA1LCAxMDczMTAsIDEwNzMxNSwgMTA3MzIwLCAxMDczMjUsIDEwNzMzMCwgMTA3MzM1LCAxMDczNDAsIDEwNzM0NSwgCisgICAgMTA3MzUwLCAxMDczNTUsIDEwNzM2MCwgMTA3MzY3LCAxMDczNzIsIDEwNzM3NywgMTA3Mzg2LCAxMDczOTMsIDEwNzM5OCwgCisgICAgMTA3NDAzLCAxMDc0MDgsIDEwNzQxMywgMTA3NDE4LCAxMDc0MjMsIDEwNzQyOCwgMTA3NDMzLCAxMDc0MzgsIDEwNzQ0MywgCisgICAgMTA3NDQ4LCAxMDc0NTMsIDEwNzQ1OCwgMTA3NDYzLCAxMDc0NjgsIDEwNzQ3MywgMTA3NDc4LCAxMDc0ODMsIDEwNzQ4OCwgCisgICAgMTA3NDkzLCAxMDc0OTgsIDEwNzUwNCwgMTA3NTEyLCAxMDc1MTgsIDEwNzUyNiwgMTA3NTM0LCAxMDc1NDIsIDEwNzU0OCwgCisgICAgMTA3NTU0LCAxMDc1NjAsIDEwNzU2NiwgMTA3NTcyLCAxMDc1ODAsIDEwNzU5MCwgMTA3NTk4LCAxMDc2MDYsIDEwNzYxMiwgCisgICAgMTA3NjE4LCAxMDc2MjYsIDEwNzYzNCwgMTA3NjQwLCAxMDc2NDgsIDEwNzY1NiwgMTA3NjY0LCAxMDc2NzAsIDEwNzY3NiwgCisgICAgMTA3NjgyLCAxMDc2ODgsIDEwNzY5NCwgMTA3NzAwLCAxMDc3MDgsIDEwNzcxNiwgMTA3NzIyLCAxMDc3MjgsIDEwNzczNCwgCisgICAgMTA3NzQwLCAxMDc3NDYsIDEwNzc1NCwgMTA3NzYwLCAxMDc3NjYsIDEwNzc3MiwgMTA3Nzc4LCAxMDc3ODQsIDEwNzc5MCwgCisgICAgMTA3Nzk4LCAxMDc4MDQsIDEwNzgxMCwgMTA3ODE2LCAxMDc4MjIsIDEwNzgzMCwgMTA3ODM4LCAxMDc4NDQsIDEwNzg1MCwgCisgICAgMTA3ODU2LCAxMDc4NjEsIDEwNzg2NywgMTA3ODczLCAxMDc4ODAsIDEwNzg4NSwgMTA3ODkwLCAxMDc4OTUsIDEwNzkwMCwgCisgICAgMTA3OTA1LCAxMDc5MTAsIDEwNzkxNSwgMTA3OTIwLCAxMDc5MjUsIDEwNzkzNCwgMTA3OTQxLCAxMDc5NDYsIDEwNzk1MSwgCisgICAgMTA3OTU2LCAxMDc5NjMsIDEwNzk2OCwgMTA3OTczLCAxMDc5NzgsIDEwNzk4NSwgMTA3OTkwLCAxMDc5OTUsIDEwODAwMCwgCisgICAgMTA4MDA1LCAxMDgwMTAsIDEwODAxNSwgMTA4MDIwLCAxMDgwMjUsIDEwODAzMCwgMTA4MDM1LCAxMDgwNDAsIDEwODA0NywgCisgICAgMTA4MDUyLCAxMDgwNTksIDEwODA2NCwgMTA4MDY5LCAxMDgwNzYsIDEwODA4MSwgMTA4MDg2LCAxMDgwOTEsIDEwODA5NiwgCisgICAgMTA4MTAxLCAxMDgxMDYsIDEwODExMSwgMTA4MTE2LCAxMDgxMjEsIDEwODEyNiwgMTA4MTMxLCAxMDgxMzYsIDEwODE0MSwgCisgICAgMTA4MTQ2LCAxMDgxNTEsIDEwODE1NiwgMTA4MTYxLCAxMDgxNjYsIDEwODE3MSwgMTA4MTc4LCAxMDgxODMsIDEwODE4OCwgCisgICAgMTA4MTkzLCAxMDgxOTgsIDEwODIwMywgMTA4MjA4LCAxMDgyMTMsIDEwODIxOCwgMTA4MjIzLCAxMDgyMjgsIDEwODIzMywgCisgICAgMTA4MjM4LCAxMDgyNDMsIDEwODI1MCwgMTA4MjU1LCAxMDgyNjAsIDEwODI2NywgMTA4MjcyLCAxMDgyNzcsIDEwODI4MiwgCisgICAgMTA4Mjg3LCAxMDgyOTIsIDEwODI5NywgMTA4MzAyLCAxMDgzMDcsIDEwODMxMiwgMTA4MzE3LCAxMDgzMjQsIDEwODMyOSwgCisgICAgMTA4MzM0LCAxMDgzMzksIDEwODM0NCwgMTA4MzQ5LCAxMDgzNTYsIDEwODM2MywgMTA4MzY4LCAxMDgzNzMsIDEwODM3OCwgCisgICAgMTA4MzgzLCAxMDgzODgsIDEwODM5MywgMTA4Mzk4LCAxMDg0MDMsIDEwODQwOCwgMTA4NDEzLCAxMDg0MTgsIDEwODQyMywgCisgICAgMTA4NDI4LCAxMDg0MzMsIDEwODQzOCwgMTA4NDQzLCAxMDg0NDgsIDEwODQ1MywgMTA4NDU4LCAxMDg0NjMsIDEwODQ2OCwgCisgICAgMTA4NDczLCAxMDg0NzgsIDEwODQ4MywgMTA4NDg4LCAxMDg0OTMsIDEwODQ5OCwgMTA4NTAzLCAxMDg1MDgsIDEwODUxMywgCisgICAgMTA4NTE4LCAxMDg1MjMsIDEwODUyOCwgMTA4NTMzLCAxMDg1MzgsIDEwODU0MywgMTA4NTUwLCAxMDg1NTUsIDEwODU2MCwgCisgICAgMTA4NTY1LCAxMDg1NzAsIDEwODU3NSwgMTA4NTgwLCAxMDg1ODUsIDEwODU5MCwgMTA4NTk1LCAxMDg2MDAsIDEwODYwNSwgCisgICAgMTA4NjEwLCAxMDg2MTUsIDEwODYyMCwgMTA4NjI1LCAxMDg2MzAsIDEwODYzNSwgMTA4NjQwLCAxMDg2NDUsIDEwODY1MCwgCisgICAgMTA4NjU1LCAxMDg2NjAsIDEwODY2NSwgMTA4NjcwLCAxMDg2NzUsIDEwODY4MCwgMTA4Njg1LCAxMDg2OTAsIDEwODY5NSwgCisgICAgMTA4NzAwLCAxMDg3MDUsIDEwODcxMCwgMTA4NzE1LCAxMDg3MjAsIDEwODcyNSwgMTA4NzMwLCAxMDg3MzUsIDEwODc0MCwgCisgICAgMTA4NzQ1LCAxMDg3NTAsIDEwODc1NSwgMTA4NzYwLCAxMDg3NjUsIDEwODc3MCwgMTA4Nzc1LCAxMDg3ODAsIDEwODc4NSwgCisgICAgMTA4NzkwLCAxMDg3OTUsIDEwODgwMCwgMTA4ODA1LCAxMDg4MTAsIDEwODgxNSwgMTA4ODIwLCAxMDg4MjUsIDEwODgzMCwgCisgICAgMTA4ODM1LCAxMDg4NDAsIDEwODg0NywgMTA4ODUyLCAxMDg4NTcsIDEwODg2MiwgMTA4ODY3LCAxMDg4NzIsIDEwODg3NywgCisgICAgMTA4ODgxLCAxMDg4ODYsIDEwODg5MSwgMTA4ODk2LCAxMDg5MDEsIDEwODkwNiwgMTA4OTExLCAxMDg5MTYsIDEwODkyMSwgCisgICAgMTA4OTI2LCAxMDg5MzEsIDEwODkzNiwgMTA4OTQxLCAxMDg5NDYsIDEwODk1MSwgMTA4OTU4LCAxMDg5NjMsIDEwODk2OCwgCisgICAgMTA4OTc0LCAxMDg5NzksIDEwODk4NCwgMTA4OTg5LCAxMDg5OTQsIDEwODk5OSwgMTA5MDA0LCAxMDkwMDksIDEwOTAxNCwgCisgICAgMTA5MDE5LCAxMDkwMjQsIDEwOTAyOSwgMTA5MDM0LCAxMDkwMzksIDEwOTA0NCwgMTA5MDQ5LCAxMDkwNTQsIDEwOTA1OSwgCisgICAgMTA5MDY0LCAxMDkwNjksIDEwOTA3NCwgMTA5MDc5LCAxMDkwODQsIDEwOTA4OSwgMTA5MDk0LCAxMDkwOTksIDEwOTEwNCwgCisgICAgMTA5MTA5LCAxMDkxMTQsIDEwOTExOSwgMTA5MTI0LCAxMDkxMjksIDEwOTEzNCwgMTA5MTM5LCAxMDkxNDQsIDEwOTE0OSwgCisgICAgMTA5MTU0LCAxMDkxNTksIDEwOTE2NCwgMTA5MTY5LCAxMDkxNzQsIDEwOTE3OSwgMTA5MTg0LCAxMDkxODksIDEwOTE5NiwgCisgICAgMTA5MjAxLCAxMDkyMDYsIDEwOTIxMywgMTA5MjIwLCAxMDkyMjUsIDEwOTIzMCwgMTA5MjM1LCAxMDkyNDAsIDEwOTI0NSwgCisgICAgMTA5MjUwLCAxMDkyNTUsIDEwOTI2MCwgMTA5MjY1LCAxMDkyNzAsIDEwOTI3NSwgMTA5MjgwLCAxMDkyODUsIDEwOTI5MCwgCisgICAgMTA5Mjk1LCAxMDkzMDAsIDEwOTMwNSwgMTA5MzEwLCAxMDkzMTUsIDEwOTMyMCwgMTA5MzI1LCAxMDkzMzAsIDEwOTMzNSwgCisgICAgMTA5MzQwLCAxMDkzNDUsIDEwOTM1MiwgMTA5MzU3LCAxMDkzNjIsIDEwOTM2NywgMTA5MzcyLCAxMDkzNzcsIDEwOTM4MiwgCisgICAgMTA5Mzg3LCAxMDkzOTIsIDEwOTM5NywgMTA5NDAyLCAxMDk0MDcsIDEwOTQxMiwgMTA5NDE3LCAxMDk0MjIsIDEwOTQyNywgCisgICAgMTA5NDMyLCAxMDk0MzcsIDEwOTQ0MiwgMTA5NDQ5LCAxMDk0NTQsIDEwOTQ1OSwgMTA5NDY0LCAxMDk0NjksIDEwOTQ3NCwgCisgICAgMTA5NDc5LCAxMDk0ODQsIDEwOTQ5MCwgMTA5NDk1LCAxMDk1MDAsIDEwOTUwNSwgMTA5NTEwLCAxMDk1MTUsIDEwOTUyMCwgCisgICAgMTA5NTI1LCAxMDk1MzAsIDEwOTUzNywgMTA5NTQ0LCAxMDk1NDksIDEwOTU1NCwgMTA5NTU4LCAxMDk1NjMsIDEwOTU2NywgCisgICAgMTA5NTcxLCAxMDk1NzYsIDEwOTU4MywgMTA5NTg4LCAxMDk1OTMsIDEwOTYwMiwgMTA5NjA3LCAxMDk2MTIsIDEwOTYxNywgCisgICAgMTA5NjIyLCAxMDk2MjksIDEwOTYzNiwgMTA5NjQxLCAxMDk2NDYsIDEwOTY1MSwgMTA5NjU2LCAxMDk2NjMsIDEwOTY2OCwgCisgICAgMTA5NjczLCAxMDk2NzgsIDEwOTY4MywgMTA5Njg4LCAxMDk2OTMsIDEwOTY5OCwgMTA5NzAzLCAxMDk3MDgsIDEwOTcxMywgCisgICAgMTA5NzE4LCAxMDk3MjMsIDEwOTczMCwgMTA5NzM0LCAxMDk3MzksIDEwOTc0NCwgMTA5NzQ5LCAxMDk3NTQsIDEwOTc1OCwgCisgICAgMTA5NzYzLCAxMDk3NjgsIDEwOTc3MywgMTA5Nzc4LCAxMDk3ODMsIDEwOTc4OCwgMTA5NzkzLCAxMDk3OTgsIDEwOTgwMywgCisgICAgMTA5ODA5LCAxMDk4MTUsIDEwOTgyMSwgMTA5ODI3LCAxMDk4MzMsIDEwOTgzOSwgMTA5ODQ1LCAxMDk4NTEsIDEwOTg1NywgCisgICAgMTA5ODYzLCAxMDk4NjksIDEwOTg3NSwgMTA5ODgwLCAxMDk4ODYsIDEwOTg5MiwgMTA5ODk4LCAxMDk5MDQsIDEwOTkxMCwgCisgICAgMTA5OTE2LCAxMDk5MjIsIDEwOTkyOCwgMTA5OTM0LCAxMDk5NDAsIDEwOTk0NiwgMTA5OTUxLCAxMDk5NTcsIDEwOTk2MywgCisgICAgMTA5OTY5LCAxMDk5NzUsIDEwOTk4MSwgMTA5OTg3LCAxMDk5OTMsIDEwOTk5OSwgMTEwMDA1LCAxMTAwMTEsIDExMDAxNywgCisgICAgMTEwMDIzLCAxMTAwMjksIDExMDAzNSwgMTEwMDQxLCAxMTAwNDcsIDExMDA1MywgMTEwMDU5LCAxMTAwNjUsIDExMDA3MSwgCisgICAgMTEwMDc2LCAxMTAwODIsIDExMDA4OCwgMTEwMDk0LCAxMTAxMDAsIDExMDEwNiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA3NTE4LCAxMDc1MjMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMDExMiwgMTEwMTE1LCAxMTAxMTksIAorICAgIDExMDEyMywgMTEwMTI3LCAxMTAxMzAsIDExMDEzNCwgMTEwMTM5LCAxMTAxNDMsIDExMDE0NywgMTEwMTUxLCAxMTAxNTUsIAorICAgIDExMDE1OSwgMTEwMTY0LCAxMTAxNjksIDExMDE3MywgMTEwMTc3LCAxMTAxODAsIDExMDE4NCwgMTEwMTg5LCAxMTAxOTQsIAorICAgIDExMDE5OCwgMTEwMjAyLCAxMTAyMDYsIDExMDIxMCwgMTEwMjE0LCAxMTAyMTgsIDExMDIyMiwgMTEwMjI2LCAxMTAyMzAsIAorICAgIDExMDIzNCwgMTEwMjM3LCAxMTAyNDEsIDExMDI0NSwgMTEwMjQ5LCAxMTAyNTMsIDExMDI1NywgMTEwMjYxLCAxMTAyNjcsIAorICAgIDExMDI3MCwgMTEwMjc0LCAxMTAyNzgsIDExMDI4MiwgMTEwMjg2LCAxMTAyOTAsIDExMDI5NCwgMTEwMjk4LCAxMTAzMDIsIAorICAgIDExMDMwNiwgMTEwMzExLCAxMTAzMTYsIDExMDMyMiwgMTEwMzI2LCAxMTAzMzAsIDExMDMzNCwgMTEwMzM4LCAxMTAzNDIsIAorICAgIDExMDM0NiwgMTEwMzUxLCAxMTAzNTQsIDExMDM1OCwgMTEwMzYyLCAxMTAzNjYsIDExMDM3MCwgMTEwMzc2LCAxMTAzODAsIAorICAgIDExMDM4NCwgMTEwMzg4LCAxMTAzOTIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMDM5NiwgMTEwNDAwLCAKKyAgICAxMTA0MDQsIDExMDQxMCwgMTEwNDE2LCAxMTA0MjAsIDExMDQyNSwgMTEwNDMwLCAxMTA0MzUsIDExMDQ0MCwgMTEwNDQ0LCAKKyAgICAxMTA0NDksIDExMDQ1NCwgMTEwNDU5LCAxMTA0NjMsIDExMDQ2OCwgMTEwNDczLCAxMTA0NzgsIDExMDQ4MiwgMTEwNDg3LCAKKyAgICAxMTA0OTIsIDExMDQ5NywgMTEwNTAyLCAxMTA1MDcsIDExMDUxMiwgMTEwNTE3LCAxMTA1MjIsIDExMDUyNiwgMTEwNTMxLCAKKyAgICAxMTA1MzYsIDExMDU0MSwgMTEwNTQ2LCAxMTA1NTEsIDExMDU1NiwgMTEwNTYxLCAxMTA1NjYsIDExMDU3MSwgMTEwNTc2LCAKKyAgICAxMTA1ODEsIDExMDU4OCwgMTEwNTkzLCAxMTA2MDAsIDExMDYwNSwgMTEwNjEwLCAxMTA2MTUsIDExMDYyMCwgMTEwNjI1LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTA2MzAsIDExMDYzNCwgMTEwNjQwLCAKKyAgICAxMTA2NDMsIDExMDY0NiwgMTEwNjUwLCAxMTA2NTQsIDExMDY1OCwgMTEwNjYyLCAxMTA2NjYsIDExMDY3MCwgMTEwNjc0LCAKKyAgICAxMTA2ODAsIDExMDY4NiwgMTEwNjkyLCAxMTA2OTgsIDExMDcwNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA3NTI5LCAxMDc1MzQsIAotICAgIDEwNzUzOSwgMTA3NTQ0LCAxMDc1NTEsIDEwNzU1OCwgMTA3NTY1LCAxMDc1NzIsIDEwNzU3NywgMTA3NTgyLCAxMDc1ODcsIAotICAgIDEwNzU5MiwgMTA3NTk5LCAxMDc2MDQsIDEwNzYxMSwgMTA3NjE4LCAxMDc2MjMsIDEwNzYyOCwgMTA3NjMzLCAxMDc2NDAsIAotICAgIDEwNzY0NSwgMTA3NjUwLCAxMDc2NTcsIDEwNzY2NCwgMTA3NjY5LCAxMDc2NzQsIDEwNzY3OSwgMTA3Njg2LCAxMDc2OTMsIAotICAgIDEwNzcwMCwgMTA3NzA1LCAxMDc3MTAsIDEwNzcxNywgMTA3NzI0LCAxMDc3MzEsIDEwNzczOCwgMTA3NzQzLCAxMDc3NDgsIAotICAgIDEwNzc1MywgMTA3NzYwLCAxMDc3NjUsIDEwNzc3MCwgMTA3Nzc1LCAxMDc3ODIsIDEwNzc5MSwgMTA3Nzk4LCAxMDc4MDMsIAotICAgIDEwNzgwOCwgMTA3ODEzLCAxMDc4MTgsIDEwNzgyMywgMTA3ODI4LCAxMDc4MzcsIDEwNzg0NCwgMTA3ODQ5LCAxMDc4NTYsIAotICAgIDEwNzg2MywgMTA3ODY4LCAxMDc4NzMsIDEwNzg3OCwgMTA3ODg1LCAxMDc4OTAsIDEwNzg5NywgMTA3OTA0LCAxMDc5MDksIAotICAgIDEwNzkxNCwgMTA3OTE5LCAxMDc5MjYsIDEwNzkzMywgMTA3OTM4LCAxMDc5NDMsIDEwNzk1MCwgMTA3OTU3LCAxMDc5NjQsIAotICAgIDEwNzk2OSwgMTA3OTc0LCAxMDc5NzksIDEwNzk4NCwgMTA3OTkxLCAxMDgwMDAsIDEwODAwOSwgMTA4MDE0LCAxMDgwMjEsIAotICAgIDEwODAzMCwgMTA4MDM1LCAxMDgwNDAsIDEwODA0NSwgMTA4MDUwLCAxMDgwNTcsIDEwODA2NCwgMTA4MDcxLCAxMDgwNzgsIAotICAgIDEwODA4MywgMTA4MDg4LCAxMDgwOTMsIDEwODEwMCwgMTA4MTA3LCAxMDgxMTQsIDEwODExOSwgMTA4MTI0LCAxMDgxMzEsIAotICAgIDEwODEzNiwgMTA4MTQzLCAxMDgxNDgsIDEwODE1NSwgMTA4MTYwLCAxMDgxNjcsIDEwODE3NCwgMTA4MTc5LCAxMDgxODQsIAotICAgIDEwODE4OSwgMTA4MTk0LCAxMDgxOTksIDEwODIwNCwgMTA4MjA5LCAxMDgyMTQsIDEwODIxOSwgMTA4MjI2LCAxMDgyMzMsIAotICAgIDEwODI0MCwgMTA4MjQ3LCAxMDgyNTQsIDEwODI2MywgMTA4MjY4LCAxMDgyNzMsIDEwODI4MCwgMTA4Mjg3LCAxMDgyOTIsIAotICAgIDEwODI5OSwgMTA4MzA2LCAxMDgzMTMsIDEwODMyMCwgMTA4MzI3LCAxMDgzMzQsIDEwODMzOSwgMTA4MzQ0LCAxMDgzNDksIAotICAgIDEwODM1NCwgMTA4MzU5LCAxMDgzNjgsIDEwODM3NywgMTA4Mzg2LCAxMDgzOTUsIDEwODQwNCwgMTA4NDEzLCAxMDg0MjIsIAotICAgIDEwODQzMSwgMTA4NDM2LCAxMDg0NDcsIDEwODQ1OCwgMTA4NDY3LCAxMDg0NzIsIDEwODQ3NywgMTA4NDgyLCAxMDg0ODcsIAotICAgIDEwODQ5NiwgMTA4NTAzLCAxMDg1MTAsIDEwODUxNywgMTA4NTI0LCAxMDg1MzEsIDEwODUzOCwgMTA4NTQ3LCAxMDg1NTYsIAotICAgIDEwODU2NywgMTA4NTc2LCAxMDg1ODcsIDEwODU5NiwgMTA4NjAzLCAxMDg2MTIsIDEwODYyMywgMTA4NjMyLCAxMDg2NDEsIAotICAgIDEwODY1MCwgMTA4NjU5LCAxMDg2NjYsIDEwODY3MywgMTA4NjgwLCAxMDg2ODksIDEwODY5OCwgMTA4NzA5LCAxMDg3MTgsIAotICAgIDEwODcyNywgMTA4NzM4LCAxMDg3NDMsIDEwODc0OCwgMTA4NzU5LCAxMDg3NjcsIDEwODc3NiwgMTA4Nzg1LCAxMDg3OTQsIAotICAgIDEwODgwNSwgMTA4ODE0LCAxMDg4MjMsIDEwODgzNCwgMTA4ODQ1LCAxMDg4NTYsIDEwODg2NywgMTA4ODc4LCAxMDg4ODksIAotICAgIDEwODg5NiwgMTA4OTAzLCAxMDg5MTAsIDEwODkxNywgMTA4OTI4LCAxMDg5MzcsIDEwODk0NCwgMTA4OTUxLCAxMDg5NTgsIAotICAgIDEwODk2OSwgMTA4OTgwLCAxMDg5OTEsIDEwOTAwMiwgMTA5MDEzLCAxMDkwMjQsIDEwOTAzNSwgMTA5MDQ2LCAxMDkwNTMsIAotICAgIDEwOTA2MCwgMTA5MDY5LCAxMDkwNzgsIDEwOTA4NSwgMTA5MDkyLCAxMDkwOTksIDEwOTEwOCwgMTA5MTE3LCAxMDkxMjYsIAotICAgIDEwOTEzMywgMTA5MTQyLCAxMDkxNTEsIDEwOTE2MCwgMTA5MTY3LCAxMDkxNzQsIDEwOTE3OSwgMTA5MTg1LCAxMDkxOTIsIAotICAgIDEwOTE5OSwgMTA5MjA2LCAxMDkyMTMsIDEwOTIyMCwgMTA5MjI3LCAxMDkyMzYsIDEwOTI0NSwgMTA5MjU0LCAxMDkyNjMsIAotICAgIDEwOTI3MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTA5Mjc5LCAxMDkyODUsIDEwOTI5MCwgMTA5Mjk1LCAKLSAgICAxMDkzMDIsIDEwOTMwOCwgMTA5MzE0LCAxMDkzMjAsIDEwOTMyNiwgMTA5MzMyLCAxMDkzMzgsIDEwOTM0NCwgMTA5MzQ4LCAKLSAgICAxMDkzNTIsIDEwOTM1OCwgMTA5MzY0LCAxMDkzNzAsIDEwOTM3NCwgMTA5Mzc5LCAxMDkzODQsIDEwOTM4OCwgMTA5MzkyLCAKLSAgICAxMDkzOTUsIDEwOTQwMSwgMTA5NDA3LCAxMDk0MTMsIDEwOTQxOSwgMTA5NDI1LCAxMDk0MzEsIDEwOTQzNywgMTA5NDQzLCAKLSAgICAxMDk0NDksIDEwOTQ1OSwgMTA5NDY5LCAxMDk0NzUsIDEwOTQ4MSwgMTA5NDkxLCAxMDk1MDEsIDEwOTUwNywgMCwgMCwgCi0gICAgMTA5NTEzLCAxMDk1MjEsIDEwOTUyNiwgMTA5NTMxLCAxMDk1MzcsIDEwOTU0MywgMTA5NTQ5LCAxMDk1NTUsIDEwOTU2MSwgCi0gICAgMTA5NTY3LCAxMDk1NzQsIDEwOTU4MSwgMTA5NTg3LCAxMDk1OTMsIDEwOTU5OSwgMTA5NjA1LCAxMDk2MTEsIDEwOTYxNywgCi0gICAgMTA5NjIzLCAxMDk2MjksIDEwOTYzNCwgMTA5NjQwLCAxMDk2NDYsIDEwOTY1MiwgMTA5NjU4LCAxMDk2NjQsIDEwOTY3MywgCi0gICAgMTA5Njc5LCAxMDk2ODQsIDEwOTY5MiwgMTA5Njk5LCAxMDk3MDYsIDEwOTcxNSwgMTA5NzI0LCAxMDk3MzMsIDEwOTc0MiwgCi0gICAgMTA5NzUxLCAxMDk3NjAsIDEwOTc2OSwgMTA5Nzc4LCAxMDk3ODgsIDEwOTc5OCwgMTA5ODA2LCAxMDk4MTQsIDEwOTgyMywgCi0gICAgMTA5ODMyLCAxMDk4MzgsIDEwOTg0NCwgMTA5ODUwLCAxMDk4NTYsIDEwOTg2NCwgMTA5ODcyLCAxMDk4NzYsIDEwOTg4MiwgCi0gICAgMTA5ODg3LCAxMDk4OTMsIDEwOTg5OSwgMTA5OTA1LCAxMDk5MTEsIDEwOTkxNywgMTA5OTI2LCAxMDk5MzEsIDEwOTkzOCwgCi0gICAgMTA5OTQzLCAxMDk5NDgsIDEwOTk1MywgMTA5OTU5LCAxMDk5NjUsIDEwOTk3MSwgMTA5OTc4LCAxMDk5ODMsIDEwOTk4OCwgCi0gICAgMTA5OTkzLCAxMDk5OTgsIDExMDAwMywgMTEwMDA5LCAxMTAwMTUsIDExMDAyMSwgMTEwMDI3LCAxMTAwMzMsIDExMDAzOSwgCi0gICAgMTEwMDQ1LCAxMTAwNTEsIDExMDA1NiwgMTEwMDYxLCAxMTAwNjYsIDExMDA3MSwgMTEwMDc2LCAxMTAwODEsIDExMDA4NiwgCi0gICAgMTEwMDkxLCAxMTAwOTcsIDExMDEwMywgMTEwMTA4LCAxMTAxMTMsIDExMDExOCwgMTEwMTIzLCAxMTAxMjgsIDExMDEzNCwgCi0gICAgMTEwMTQxLCAxMTAxNDUsIDExMDE0OSwgMTEwMTUzLCAxMTAxNTcsIDExMDE2MSwgMTEwMTY1LCAxMTAxNjksIDExMDE3MywgCi0gICAgMTEwMTgxLCAxMTAxOTEsIDExMDE5NSwgMTEwMTk5LCAxMTAyMDUsIDExMDIxMSwgMTEwMjE3LCAxMTAyMjMsIDExMDIyOSwgCi0gICAgMTEwMjM1LCAxMTAyNDEsIDExMDI0NywgMTEwMjUzLCAxMTAyNTksIDExMDI2NSwgMTEwMjcxLCAxMTAyNzcsIDExMDI4MywgCi0gICAgMTEwMjg3LCAxMTAyOTEsIDExMDI5OCwgMTEwMzA0LCAxMTAzMTAsIDExMDMxNiwgMTEwMzIxLCAxMTAzMjgsIDExMDMzMywgCi0gICAgMTEwMzM5LCAxMTAzNDUsIDExMDM1MSwgMTEwMzU3LCAxMTAzNjIsIDExMDM2NiwgMTEwMzcyLCAxMTAzNzYsIDExMDM4MCwgCi0gICAgMTEwMzg0LCAxMTAzOTAsIDExMDM5NiwgMTEwNDAwLCAxMTA0MDYsIDExMDQxMiwgMTEwNDE4LCAxMTA0MjQsIDExMDQzMCwgCi0gICAgMTEwNDM4LCAxMTA0NDYsIDExMDQ1MiwgMTEwNDU4LCAxMTA0NjQsIDExMDQ3MCwgMTEwNDgyLCAxMTA0OTQsIDExMDUwOCwgCi0gICAgMTEwNTIwLCAxMTA1MzIsIDExMDU0NiwgMTEwNTYwLCAxMTA1NzQsIDExMDU3OCwgMTEwNTg2LCAxMTA1OTQsIDExMDU5OSwgCi0gICAgMTEwNjAzLCAxMTA2MDcsIDExMDYxMSwgMTEwNjE1LCAxMTA2MTksIDExMDYyMywgMTEwNjI3LCAxMTA2MzMsIDExMDYzOSwgCi0gICAgMTEwNjQ1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTA2NTEsIDExMDY1NywgMTEwNjYzLCAxMTA2NjksIAotICAgIDExMDY3NSwgMTEwNjgxLCAxMTA2ODcsIDExMDY5MywgMTEwNjk5LCAxMTA3MDUsIDExMDcxMSwgMTEwNzE3LCAxMTA3MjMsIAotICAgIDExMDcyOSwgMTEwNzM1LCAxMTA3NDEsIDExMDc0NywgMTEwNzUzLCAxMTA3NTksIDExMDc2NSwgMTEwNzcxLCAxMTA3NzcsIAotICAgIDExMDc4MywgMTEwNzg5LCAxMTA3OTUsIDExMDgwMSwgMTEwODA3LCAxMTA4MTMsIDExMDgxOSwgMTEwODI1LCAxMTA4MzEsIAotICAgIDExMDgzNywgMTEwODQzLCAxMTA4NDksIDExMDg1NSwgMTEwODYxLCAxMTA4NjcsIDExMDg3MywgMTEwODc5LCAxMTA4ODUsIAotICAgIDExMDg5MSwgMTEwODk3LCAxMTA5MDMsIDExMDkwOSwgMTEwOTE1LCAxMTA5MjEsIDExMDkyNywgMTEwOTMzLCAxMTA5MzksIAotICAgIDExMDk0NSwgMTEwOTUxLCAxMTA5NTcsIDExMDk2MywgMTEwOTY5LCAxMTA5NzUsIDExMDk4MSwgMTEwOTg3LCAxMTA5OTMsIAotICAgIDExMDk5OSwgMTExMDA1LCAxMTEwMTEsIDExMTAxNywgMTExMDIzLCAxMTEwMjksIDExMTAzNSwgMTExMDQxLCAxMTEwNDcsIAotICAgIDExMTA1MiwgMTExMDU3LCAxMTEwNjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMTA2NiwgMTExMDcxLCAKLSAgICAxMTEwNzgsIDExMTA4NSwgMTExMDkyLCAxMTEwOTksIDExMTEwNCwgMTExMTA4LCAxMTExMTQsIDExMTExOCwgMTExMTIyLCAKLSAgICAxMTExMjgsIDExMTEzMiwgMTExMTM2LCAxMTExNDAsIDExMTE0NiwgMTExMTUzLCAxMTExNTcsIDExMTE2MSwgMTExMTY1LCAKLSAgICAxMTExNjksIDExMTE3MywgMTExMTc3LCAxMTExODMsIDExMTE4NywgMTExMTkxLCAxMTExOTUsIDExMTE5OSwgMTExMjAzLCAKLSAgICAxMTEyMDcsIDExMTIxMSwgMTExMjE1LCAxMTEyMTksIDExMTIyMywgMTExMjI3LCAxMTEyMzEsIDExMTIzNiwgMTExMjQwLCAKLSAgICAxMTEyNDQsIDExMTI0OCwgMTExMjUyLCAxMTEyNTYsIDExMTI2MCwgMTExMjY0LCAxMTEyNjgsIDExMTI3MiwgMTExMjc5LCAKLSAgICAxMTEyODMsIDExMTI5MSwgMTExMjk1LCAxMTEyOTksIDExMTMwMywgMTExMzA3LCAxMTEzMTEsIDExMTMxNSwgMTExMzE5LCAKLSAgICAxMTEzMjYsIDExMTMzMCwgMTExMzM0LCAxMTEzMzgsIDExMTM0MiwgMTExMzQ2LCAxMTEzNTIsIDExMTM1NiwgMTExMzYyLCAKLSAgICAxMTEzNjYsIDExMTM3MCwgMTExMzc0LCAxMTEzNzgsIDExMTM4MiwgMTExMzg2LCAxMTEzOTAsIDExMTM5NCwgMTExMzk4LCAKLSAgICAxMTE0MDIsIDExMTQwNiwgMTExNDEwLCAxMTE0MTQsIDExMTQxOCwgMTExNDIyLCAxMTE0MjYsIDExMTQzMCwgMTExNDM0LCAKLSAgICAxMTE0MzgsIDExMTQ0NiwgMTExNDUwLCAxMTE0NTQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMTQ1OCwgCi0gICAgMTExNDY2LCAxMTE0NzQsIDExMTQ4MiwgMTExNDkwLCAxMTE0OTgsIDExMTUwNiwgMTExNTE0LCAxMTE1MjIsIDExMTUzMCwgCi0gICAgMTExNTM4LCAxMTE1NDYsIDExMTU1NCwgMTExNTYyLCAxMTE1NzAsIDExMTU3OCwgMTExNTg2LCAxMTE1OTQsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMTYwMiwgMTExNjA2LCAxMTE2MTEsIDExMTYxNiwgMTExNjIxLCAKLSAgICAxMTE2MjUsIDExMTYzMCwgMTExNjM1LCAxMTE2NDAsIDExMTY0NCwgMTExNjQ5LCAxMTE2NTQsIDExMTY1OCwgMTExNjYyLCAKLSAgICAxMTE2NjYsIDExMTY3MCwgMTExNjc1LCAxMTE2ODAsIDExMTY4NCwgMTExNjg4LCAxMTE2OTMsIDExMTY5NywgMTExNzAyLCAKLSAgICAxMTE3MDcsIDExMTcxMiwgMTExNzE3LCAxMTE3MjIsIDExMTcyNiwgMTExNzMxLCAxMTE3MzYsIDExMTc0MSwgMTExNzQ1LCAKLSAgICAxMTE3NTAsIDExMTc1NSwgMTExNzYwLCAxMTE3NjQsIDExMTc2OSwgMTExNzc0LCAxMTE3NzgsIDExMTc4MiwgMTExNzg2LCAKLSAgICAxMTE3OTAsIDExMTc5NSwgMTExODAwLCAxMTE4MDQsIDExMTgwOCwgMTExODEzLCAxMTE4MTcsIDExMTgyMiwgMTExODI3LCAKLSAgICAxMTE4MzIsIDExMTgzNywgMTExODQyLCAxMTE4NDYsIDExMTg1MSwgMTExODU2LCAxMTE4NjEsIDExMTg2NSwgMTExODcwLCAKLSAgICAxMTE4NzUsIDExMTg4MCwgMTExODg0LCAxMTE4ODksIDExMTg5NCwgMTExODk4LCAxMTE5MDIsIDExMTkwNiwgMTExOTEwLCAKLSAgICAxMTE5MTUsIDExMTkyMCwgMTExOTI0LCAxMTE5MjgsIDExMTkzMywgMTExOTM3LCAxMTE5NDIsIDExMTk0NywgMTExOTUyLCAKLSAgICAxMTE5NTcsIDExMTk2MiwgMTExOTY2LCAxMTE5NzEsIDExMTk3NiwgMTExOTgxLCAxMTE5ODUsIDExMTk5MCwgMCwgCi0gICAgMTExOTk1LCAxMTE5OTksIDExMjAwNCwgMTEyMDA5LCAxMTIwMTMsIDExMjAxNywgMTEyMDIxLCAxMTIwMjUsIDExMjAzMCwgCi0gICAgMTEyMDM1LCAxMTIwMzksIDExMjA0MywgMTEyMDQ4LCAxMTIwNTIsIDExMjA1NywgMTEyMDYyLCAxMTIwNjcsIDExMjA3MiwgCi0gICAgMTEyMDc3LCAxMTIwODIsIDExMjA4OCwgMTEyMDk0LCAxMTIxMDAsIDExMjEwNSwgMTEyMTExLCAxMTIxMTcsIDExMjEyMywgCi0gICAgMTEyMTI4LCAxMTIxMzQsIDExMjE0MCwgMTEyMTQ1LCAxMTIxNTAsIDExMjE1NSwgMTEyMTYwLCAxMTIxNjYsIDExMjE3MiwgCi0gICAgMTEyMTc3LCAxMTIxODIsIDExMjE4OCwgMTEyMTkzLCAxMTIxOTksIDExMjIwNSwgMTEyMjExLCAxMTIyMTcsIDExMjIyMywgCi0gICAgMTEyMjI4LCAxMTIyMzQsIDExMjI0MCwgMTEyMjQ2LCAxMTIyNTEsIDExMjI1NywgMTEyMjYzLCAxMTIyNjksIDExMjI3NCwgCi0gICAgMTEyMjgwLCAxMTIyODYsIDExMjI5MSwgMTEyMjk2LCAxMTIzMDEsIDExMjMwNiwgMTEyMzEyLCAxMTIzMTgsIDExMjMyMywgCi0gICAgMTEyMzI4LCAxMTIzMzQsIDExMjMzOSwgMTEyMzQ1LCAxMTIzNTEsIDExMjM1NywgMTEyMzYzLCAxMTIzNjksIDAsIAotICAgIDExMjM3MywgMTEyMzc4LCAwLCAwLCAxMTIzODMsIDAsIDAsIDExMjM4OCwgMTEyMzkzLCAwLCAwLCAxMTIzOTgsIDExMjQwMiwgCi0gICAgMTEyNDA2LCAxMTI0MTEsIDAsIDExMjQxNiwgMTEyNDIwLCAxMTI0MjUsIDExMjQyOSwgMTEyNDM0LCAxMTI0MzksIAotICAgIDExMjQ0NCwgMTEyNDQ5LCAxMTI0NTQsIDExMjQ1OCwgMTEyNDYzLCAxMTI0NjgsIDAsIDExMjQ3MywgMCwgMTEyNDc4LCAKLSAgICAxMTI0ODMsIDExMjQ4NywgMTEyNDkyLCAxMTI0OTcsIDExMjUwMSwgMTEyNTA1LCAwLCAxMTI1MDksIDExMjUxNCwgCi0gICAgMTEyNTE5LCAxMTI1MjMsIDExMjUyNywgMTEyNTMyLCAxMTI1MzYsIDExMjU0MSwgMTEyNTQ2LCAxMTI1NTEsIDExMjU1NiwgCi0gICAgMTEyNTYxLCAxMTI1NjYsIDExMjU3MiwgMTEyNTc4LCAxMTI1ODQsIDExMjU4OSwgMTEyNTk1LCAxMTI2MDEsIDExMjYwNywgCi0gICAgMTEyNjEyLCAxMTI2MTgsIDExMjYyNCwgMTEyNjI5LCAxMTI2MzQsIDExMjYzOSwgMTEyNjQ0LCAxMTI2NTAsIDExMjY1NiwgCi0gICAgMTEyNjYxLCAxMTI2NjYsIDExMjY3MiwgMTEyNjc3LCAxMTI2ODMsIDExMjY4OSwgMTEyNjk1LCAxMTI3MDEsIDExMjcwNywgCi0gICAgMTEyNzEyLCAxMTI3MTgsIDExMjcyNCwgMTEyNzMwLCAxMTI3MzUsIDExMjc0MSwgMTEyNzQ3LCAxMTI3NTMsIDExMjc1OCwgCi0gICAgMTEyNzY0LCAxMTI3NzAsIDExMjc3NSwgMTEyNzgwLCAxMTI3ODUsIDExMjc5MCwgMTEyNzk2LCAxMTI4MDIsIDExMjgwNywgCi0gICAgMTEyODEyLCAxMTI4MTgsIDExMjgyMywgMTEyODI5LCAxMTI4MzUsIDExMjg0MSwgMTEyODQ3LCAxMTI4NTMsIDExMjg1NywgCi0gICAgMCwgMTEyODYyLCAxMTI4NjcsIDExMjg3MSwgMTEyODc2LCAwLCAwLCAxMTI4ODEsIDExMjg4NiwgMTEyODkxLCAxMTI4OTUsIAotICAgIDExMjg5OSwgMTEyOTAzLCAxMTI5MDcsIDExMjkxMiwgMCwgMTEyOTE3LCAxMTI5MjEsIDExMjkyNiwgMTEyOTMwLCAKLSAgICAxMTI5MzUsIDExMjk0MCwgMTEyOTQ1LCAwLCAxMTI5NTAsIDExMjk1NCwgMTEyOTU5LCAxMTI5NjQsIDExMjk2OSwgCi0gICAgMTEyOTczLCAxMTI5NzgsIDExMjk4MywgMTEyOTg4LCAxMTI5OTIsIDExMjk5NywgMTEzMDAyLCAxMTMwMDYsIDExMzAxMCwgCi0gICAgMTEzMDE0LCAxMTMwMTgsIDExMzAyMywgMTEzMDI4LCAxMTMwMzIsIDExMzAzNiwgMTEzMDQxLCAxMTMwNDUsIDExMzA1MCwgCi0gICAgMTEzMDU1LCAxMTMwNjAsIDExMzA2NSwgMTEzMDcwLCAxMTMwNzQsIDAsIDExMzA3OSwgMTEzMDg0LCAxMTMwODgsIAotICAgIDExMzA5MywgMCwgMTEzMDk4LCAxMTMxMDIsIDExMzEwNywgMTEzMTEyLCAxMTMxMTYsIDAsIDExMzEyMCwgMCwgMCwgMCwgCi0gICAgMTEzMTI0LCAxMTMxMjgsIDExMzEzMywgMTEzMTM3LCAxMTMxNDIsIDExMzE0NywgMTEzMTUyLCAwLCAxMTMxNTcsIAotICAgIDExMzE2MSwgMTEzMTY2LCAxMTMxNzEsIDExMzE3NiwgMTEzMTgwLCAxMTMxODUsIDExMzE5MCwgMTEzMTk1LCAxMTMxOTksIAotICAgIDExMzIwNCwgMTEzMjA5LCAxMTMyMTMsIDExMzIxNywgMTEzMjIxLCAxMTMyMjUsIDExMzIzMCwgMTEzMjM1LCAxMTMyMzksIAotICAgIDExMzI0MywgMTEzMjQ4LCAxMTMyNTIsIDExMzI1NywgMTEzMjYyLCAxMTMyNjcsIDExMzI3MiwgMTEzMjc3LCAxMTMyODIsIAotICAgIDExMzI4OCwgMTEzMjk0LCAxMTMzMDAsIDExMzMwNSwgMTEzMzExLCAxMTMzMTcsIDExMzMyMywgMTEzMzI4LCAxMTMzMzQsIAotICAgIDExMzM0MCwgMTEzMzQ1LCAxMTMzNTAsIDExMzM1NSwgMTEzMzYwLCAxMTMzNjYsIDExMzM3MiwgMTEzMzc3LCAxMTMzODIsIAotICAgIDExMzM4OCwgMTEzMzkzLCAxMTMzOTksIDExMzQwNSwgMTEzNDExLCAxMTM0MTcsIDExMzQyMywgMTEzNDI4LCAxMTM0MzQsIAotICAgIDExMzQ0MCwgMTEzNDQ2LCAxMTM0NTEsIDExMzQ1NywgMTEzNDYzLCAxMTM0NjksIDExMzQ3NCwgMTEzNDgwLCAxMTM0ODYsIAotICAgIDExMzQ5MSwgMTEzNDk2LCAxMTM1MDEsIDExMzUwNiwgMTEzNTEyLCAxMTM1MTgsIDExMzUyMywgMTEzNTI4LCAxMTM1MzQsIAotICAgIDExMzUzOSwgMTEzNTQ1LCAxMTM1NTEsIDExMzU1NywgMTEzNTYzLCAxMTM1NjksIDExMzU3MywgMTEzNTc4LCAxMTM1ODMsIAotICAgIDExMzU4OCwgMTEzNTkyLCAxMTM1OTcsIDExMzYwMiwgMTEzNjA3LCAxMTM2MTEsIDExMzYxNiwgMTEzNjIxLCAxMTM2MjUsIAotICAgIDExMzYyOSwgMTEzNjMzLCAxMTM2MzcsIDExMzY0MiwgMTEzNjQ3LCAxMTM2NTEsIDExMzY1NSwgMTEzNjYwLCAxMTM2NjQsIAotICAgIDExMzY2OSwgMTEzNjc0LCAxMTM2NzksIDExMzY4NCwgMTEzNjg5LCAxMTM2OTMsIDExMzY5OCwgMTEzNzAzLCAxMTM3MDgsIAotICAgIDExMzcxMiwgMTEzNzE3LCAxMTM3MjIsIDExMzcyNywgMTEzNzMxLCAxMTM3MzYsIDExMzc0MSwgMTEzNzQ1LCAxMTM3NDksIAotICAgIDExMzc1MywgMTEzNzU3LCAxMTM3NjIsIDExMzc2NywgMTEzNzcxLCAxMTM3NzUsIDExMzc4MCwgMTEzNzg0LCAxMTM3ODksIAotICAgIDExMzc5NCwgMTEzNzk5LCAxMTM4MDQsIDExMzgwOSwgMTEzODE0LCAxMTM4MjAsIDExMzgyNiwgMTEzODMyLCAxMTM4MzcsIAotICAgIDExMzg0MywgMTEzODQ5LCAxMTM4NTUsIDExMzg2MCwgMTEzODY2LCAxMTM4NzIsIDExMzg3NywgMTEzODgyLCAxMTM4ODcsIAotICAgIDExMzg5MiwgMTEzODk4LCAxMTM5MDQsIDExMzkwOSwgMTEzOTE0LCAxMTM5MjAsIDExMzkyNSwgMTEzOTMxLCAxMTM5MzcsIAotICAgIDExMzk0MywgMTEzOTQ5LCAxMTM5NTUsIDExMzk2MCwgMTEzOTY2LCAxMTM5NzIsIDExMzk3OCwgMTEzOTgzLCAxMTM5ODksIAotICAgIDExMzk5NSwgMTE0MDAxLCAxMTQwMDYsIDExNDAxMiwgMTE0MDE4LCAxMTQwMjMsIDExNDAyOCwgMTE0MDMzLCAxMTQwMzgsIAotICAgIDExNDA0NCwgMTE0MDUwLCAxMTQwNTUsIDExNDA2MCwgMTE0MDY2LCAxMTQwNzEsIDExNDA3NywgMTE0MDgzLCAxMTQwODksIAotICAgIDExNDA5NSwgMTE0MTAxLCAxMTQxMDYsIDExNDExMiwgMTE0MTE4LCAxMTQxMjQsIDExNDEyOSwgMTE0MTM1LCAxMTQxNDEsIAotICAgIDExNDE0NywgMTE0MTUyLCAxMTQxNTgsIDExNDE2NCwgMTE0MTY5LCAxMTQxNzQsIDExNDE3OSwgMTE0MTg0LCAxMTQxOTAsIAotICAgIDExNDE5NiwgMTE0MjAxLCAxMTQyMDYsIDExNDIxMiwgMTE0MjE3LCAxMTQyMjMsIDExNDIyOSwgMTE0MjM1LCAxMTQyNDEsIAotICAgIDExNDI0NywgMTE0MjUyLCAxMTQyNTgsIDExNDI2NCwgMTE0MjcwLCAxMTQyNzUsIDExNDI4MSwgMTE0Mjg3LCAxMTQyOTMsIAotICAgIDExNDI5OCwgMTE0MzA0LCAxMTQzMTAsIDExNDMxNSwgMTE0MzIwLCAxMTQzMjUsIDExNDMzMCwgMTE0MzM2LCAxMTQzNDIsIAotICAgIDExNDM0NywgMTE0MzUyLCAxMTQzNTgsIDExNDM2MywgMTE0MzY5LCAxMTQzNzUsIDExNDM4MSwgMTE0Mzg3LCAxMTQzOTMsIAotICAgIDExNDM5OSwgMTE0NDA2LCAxMTQ0MTMsIDExNDQyMCwgMTE0NDI2LCAxMTQ0MzMsIDExNDQ0MCwgMTE0NDQ3LCAxMTQ0NTMsIAotICAgIDExNDQ2MCwgMTE0NDY3LCAxMTQ0NzMsIDExNDQ3OSwgMTE0NDg1LCAxMTQ0OTEsIDExNDQ5OCwgMTE0NTA1LCAxMTQ1MTEsIAotICAgIDExNDUxNywgMTE0NTI0LCAxMTQ1MzAsIDExNDUzNywgMTE0NTQ0LCAxMTQ1NTEsIDExNDU1OCwgMTE0NTY1LCAxMTQ1NzEsIAotICAgIDExNDU3OCwgMTE0NTg1LCAxMTQ1OTIsIDExNDU5OCwgMTE0NjA1LCAxMTQ2MTIsIDExNDYxOSwgMTE0NjI1LCAxMTQ2MzIsIAotICAgIDExNDYzOSwgMTE0NjQ1LCAxMTQ2NTEsIDExNDY1NywgMTE0NjYzLCAxMTQ2NzAsIDExNDY3NywgMTE0NjgzLCAxMTQ2ODksIAotICAgIDExNDY5NiwgMTE0NzAyLCAxMTQ3MDksIDExNDcxNiwgMTE0NzIzLCAxMTQ3MzAsIDExNDczNywgMTE0NzQyLCAxMTQ3NDgsIAotICAgIDExNDc1NCwgMTE0NzYwLCAxMTQ3NjUsIDExNDc3MSwgMTE0Nzc3LCAxMTQ3ODMsIDExNDc4OCwgMTE0Nzk0LCAxMTQ4MDAsIAotICAgIDExNDgwNSwgMTE0ODEwLCAxMTQ4MTUsIDExNDgyMCwgMTE0ODI2LCAxMTQ4MzIsIDExNDgzNywgMTE0ODQyLCAxMTQ4NDgsIAotICAgIDExNDg1MywgMTE0ODU5LCAxMTQ4NjUsIDExNDg3MSwgMTE0ODc3LCAxMTQ4ODMsIDExNDg4OCwgMTE0ODk0LCAxMTQ5MDAsIAotICAgIDExNDkwNiwgMTE0OTExLCAxMTQ5MTcsIDExNDkyMywgMTE0OTI5LCAxMTQ5MzQsIDExNDk0MCwgMTE0OTQ2LCAxMTQ5NTEsIAotICAgIDExNDk1NiwgMTE0OTYxLCAxMTQ5NjYsIDExNDk3MiwgMTE0OTc4LCAxMTQ5ODMsIDExNDk4OCwgMTE0OTk0LCAxMTQ5OTksIAotICAgIDExNTAwNSwgMTE1MDExLCAxMTUwMTcsIDExNTAyMywgMTE1MDI5LCAxMTUwMzUsIDAsIDAsIDExNTA0MiwgMTE1MDQ3LCAKLSAgICAxMTUwNTIsIDExNTA1NywgMTE1MDYyLCAxMTUwNjcsIDExNTA3MiwgMTE1MDc3LCAxMTUwODIsIDExNTA4NywgMTE1MDkyLCAKLSAgICAxMTUwOTcsIDExNTEwMiwgMTE1MTA3LCAxMTUxMTIsIDExNTExNywgMTE1MTIyLCAxMTUxMjcsIDExNTEzMywgMTE1MTM4LCAKLSAgICAxMTUxNDMsIDExNTE0OCwgMTE1MTUzLCAxMTUxNTgsIDExNTE2MywgMTE1MTY4LCAxMTUxNzIsIDExNTE3NywgMTE1MTgyLCAKLSAgICAxMTUxODcsIDExNTE5MiwgMTE1MTk3LCAxMTUyMDIsIDExNTIwNywgMTE1MjEyLCAxMTUyMTcsIDExNTIyMiwgMTE1MjI3LCAKLSAgICAxMTUyMzIsIDExNTIzNywgMTE1MjQyLCAxMTUyNDcsIDExNTI1MiwgMTE1MjU3LCAxMTUyNjMsIDExNTI2OCwgMTE1MjczLCAKLSAgICAxMTUyNzgsIDExNTI4MywgMTE1Mjg4LCAxMTUyOTMsIDExNTI5OCwgMTE1MzA0LCAxMTUzMDksIDExNTMxNCwgMTE1MzE5LCAKLSAgICAxMTUzMjQsIDExNTMyOSwgMTE1MzM0LCAxMTUzMzksIDExNTM0NCwgMTE1MzQ5LCAxMTUzNTQsIDExNTM1OSwgMTE1MzY0LCAKLSAgICAxMTUzNjksIDExNTM3NCwgMTE1Mzc5LCAxMTUzODQsIDExNTM4OSwgMTE1Mzk0LCAxMTUzOTksIDExNTQwNCwgMTE1NDA5LCAKLSAgICAxMTU0MTQsIDExNTQxOSwgMTE1NDI1LCAxMTU0MzAsIDExNTQzNSwgMTE1NDQwLCAxMTU0NDUsIDExNTQ1MCwgMTE1NDU1LCAKLSAgICAxMTU0NjAsIDExNTQ2NCwgMTE1NDY5LCAxMTU0NzQsIDExNTQ3OSwgMTE1NDg0LCAxMTU0ODksIDExNTQ5NCwgMTE1NDk5LCAKLSAgICAxMTU1MDQsIDExNTUwOSwgMTE1NTE0LCAxMTU1MTksIDExNTUyNCwgMTE1NTI5LCAxMTU1MzQsIDExNTUzOSwgMTE1NTQ0LCAKLSAgICAxMTU1NDksIDExNTU1NSwgMTE1NTYwLCAxMTU1NjUsIDExNTU3MCwgMTE1NTc1LCAxMTU1ODAsIDExNTU4NSwgMTE1NTkwLCAKLSAgICAxMTU1OTYsIDExNTYwMSwgMTE1NjA2LCAxMTU2MTEsIDExNTYxNiwgMTE1NjIxLCAxMTU2MjYsIDExNTYzMiwgMTE1NjM4LCAKLSAgICAxMTU2NDQsIDExNTY1MCwgMTE1NjU2LCAxMTU2NjIsIDExNTY2OCwgMTE1Njc0LCAxMTU2ODAsIDExNTY4NiwgMTE1NjkyLCAKLSAgICAxMTU2OTgsIDExNTcwNCwgMTE1NzEwLCAxMTU3MTYsIDExNTcyMiwgMTE1NzI4LCAxMTU3MzUsIDExNTc0MSwgMTE1NzQ3LCAKLSAgICAxMTU3NTMsIDExNTc1OSwgMTE1NzY1LCAxMTU3NzEsIDExNTc3NywgMTE1NzgyLCAxMTU3ODgsIDExNTc5NCwgMTE1ODAwLCAKLSAgICAxMTU4MDYsIDExNTgxMiwgMTE1ODE4LCAxMTU4MjQsIDExNTgzMCwgMTE1ODM2LCAxMTU4NDIsIDExNTg0OCwgMTE1ODU0LCAKLSAgICAxMTU4NjAsIDExNTg2NiwgMTE1ODcyLCAxMTU4NzgsIDExNTg4NCwgMTE1ODkxLCAxMTU4OTcsIDExNTkwMywgMTE1OTA5LCAKLSAgICAxMTU5MTUsIDExNTkyMSwgMTE1OTI3LCAxMTU5MzMsIDExNTk0MCwgMTE1OTQ2LCAxMTU5NTIsIDExNTk1OCwgMTE1OTY0LCAKLSAgICAxMTU5NzAsIDExNTk3NiwgMTE1OTgyLCAxMTU5ODgsIDExNTk5NCwgMTE2MDAwLCAxMTYwMDYsIDExNjAxMiwgMTE2MDE4LCAKLSAgICAxMTYwMjQsIDExNjAzMCwgMTE2MDM2LCAxMTYwNDIsIDExNjA0OCwgMTE2MDU0LCAxMTYwNjAsIDExNjA2NiwgMTE2MDcyLCAKLSAgICAxMTYwNzgsIDExNjA4NSwgMTE2MDkxLCAxMTYwOTcsIDExNjEwMywgMTE2MTA5LCAxMTYxMTUsIDExNjEyMSwgMTE2MTI3LCAKLSAgICAxMTYxMzIsIDExNjEzOCwgMTE2MTQ0LCAxMTYxNTAsIDExNjE1NiwgMTE2MTYyLCAxMTYxNjgsIDExNjE3NCwgMTE2MTgwLCAKLSAgICAxMTYxODYsIDExNjE5MiwgMTE2MTk4LCAxMTYyMDQsIDExNjIxMCwgMTE2MjE2LCAxMTYyMjIsIDExNjIyOCwgMTE2MjM0LCAKLSAgICAxMTYyNDEsIDExNjI0NywgMTE2MjUzLCAxMTYyNTksIDExNjI2NSwgMTE2MjcxLCAxMTYyNzcsIDExNjI4MywgMTE2MjkwLCAKLSAgICAxMTYyOTYsIDExNjMwMiwgMTE2MzA4LCAxMTYzMTQsIDExNjMyMCwgMTE2MzI2LCAxMTYzMzMsIDExNjM0MCwgMTE2MzQ3LCAKLSAgICAxMTYzNTQsIDExNjM2MSwgMTE2MzY4LCAxMTYzNzUsIDExNjM4MiwgMTE2Mzg5LCAxMTYzOTYsIDExNjQwMywgMTE2NDEwLCAKLSAgICAxMTY0MTcsIDExNjQyNCwgMTE2NDMxLCAxMTY0MzgsIDExNjQ0NSwgMTE2NDUzLCAxMTY0NjAsIDExNjQ2NywgMTE2NDc0LCAKLSAgICAxMTY0ODEsIDExNjQ4OCwgMTE2NDk1LCAxMTY1MDIsIDExNjUwOCwgMTE2NTE1LCAxMTY1MjIsIDExNjUyOSwgMTE2NTM2LCAKLSAgICAxMTY1NDMsIDExNjU1MCwgMTE2NTU3LCAxMTY1NjQsIDExNjU3MSwgMTE2NTc4LCAxMTY1ODUsIDExNjU5MiwgMTE2NTk5LCAKLSAgICAxMTY2MDYsIDExNjYxMywgMTE2NjIwLCAxMTY2MjcsIDExNjYzNSwgMTE2NjQyLCAxMTY2NDksIDExNjY1NiwgMTE2NjYzLCAKLSAgICAxMTY2NzAsIDExNjY3NywgMTE2Njg0LCAxMTY2OTIsIDExNjY5OSwgMTE2NzA2LCAxMTY3MTMsIDExNjcyMCwgMTE2NzI3LCAKLSAgICAxMTY3MzQsIDExNjczOSwgMCwgMCwgMTE2NzQ0LCAxMTY3NDksIDExNjc1MywgMTE2NzU3LCAxMTY3NjEsIDExNjc2NSwgCi0gICAgMTE2NzY5LCAxMTY3NzMsIDExNjc3NywgMTE2NzgxLCAxMTY3ODUsIDExNjc5MCwgMTE2Nzk0LCAxMTY3OTgsIDExNjgwMiwgCi0gICAgMTE2ODA2LCAxMTY4MTAsIDExNjgxNCwgMTE2ODE4LCAxMTY4MjIsIDExNjgyNiwgMTE2ODMxLCAxMTY4MzUsIDExNjgzOSwgCi0gICAgMTE2ODQzLCAxMTY4NDcsIDExNjg1MSwgMTE2ODU1LCAxMTY4NTksIDExNjg2MywgMTE2ODY3LCAxMTY4NzMsIDExNjg3OCwgCi0gICAgMTE2ODgzLCAxMTY4ODgsIDExNjg5MywgMTE2ODk4LCAxMTY5MDMsIDExNjkwOCwgMTE2OTEzLCAxMTY5MTgsIDExNjkyNCwgCi0gICAgMTE2OTI5LCAxMTY5MzQsIDExNjkzOSwgMTE2OTQ0LCAxMTY5NDksIDExNjk1NCwgMTE2OTU5LCAxMTY5NjQsIDExNjk2OSwgCi0gICAgMTE2OTc2LCAxMTY5ODMsIDExNjk5MCwgMTE2OTk3LCAxMTcwMDQsIDExNzAxMSwgMTE3MDE3LCAxMTcwMjQsIDExNzAzMSwgCi0gICAgMTE3MDM4LCAxMTcwNDYsIDExNzA1NCwgMTE3MDYyLCAxMTcwNzAsIDExNzA3OCwgMTE3MDg2LCAxMTcwOTMsIDExNzEwMCwgCi0gICAgMTE3MTA3LCAxMTcxMTUsIDExNzEyMywgMTE3MTMxLCAxMTcxMzksIDExNzE0NywgMTE3MTU1LCAxMTcxNjIsIDExNzE2OSwgCi0gICAgMTE3MTc2LCAxMTcxODQsIDExNzE5MiwgMTE3MjAwLCAxMTcyMDgsIDExNzIxNiwgMTE3MjI0LCAxMTcyMjksIDExNzIzNCwgCi0gICAgMTE3MjM5LCAxMTcyNDQsIDExNzI0OSwgMTE3MjU0LCAxMTcyNTksIDExNzI2NCwgMTE3MjY5LCAwLCAwLCAwLCAwLCAKLSAgICAxMTcyNzQsIDExNzI3OSwgMTE3MjgzLCAxMTcyODcsIDExNzI5MSwgMTE3Mjk1LCAxMTcyOTksIDExNzMwMywgMTE3MzA3LCAKLSAgICAxMTczMTEsIDExNzMxNSwgMTE3MzE5LCAxMTczMjMsIDExNzMyNywgMTE3MzMxLCAxMTczMzUsIDExNzMzOSwgMTE3MzQzLCAKLSAgICAxMTczNDcsIDExNzM1MSwgMTE3MzU1LCAxMTczNTksIDExNzM2MywgMTE3MzY3LCAxMTczNzEsIDExNzM3NSwgMTE3Mzc5LCAKLSAgICAxMTczODMsIDExNzM4NywgMTE3MzkxLCAxMTczOTUsIDExNzM5OSwgMTE3NDAzLCAxMTc0MDcsIDExNzQxMSwgMTE3NDE1LCAKLSAgICAxMTc0MTksIDExNzQyMywgMTE3NDI3LCAxMTc0MzEsIDExNzQzNSwgMTE3NDM5LCAxMTc0NDMsIDExNzQ0NywgMTE3NDUxLCAKLSAgICAxMTc0NTUsIDExNzQ1OSwgMTE3NDYzLCAxMTc0NjcsIDExNzQ3MSwgMTE3NDc1LCAxMTc0ODAsIDExNzQ4NCwgMTE3NDg4LCAKLSAgICAxMTc0OTIsIDExNzQ5NiwgMTE3NTAwLCAxMTc1MDQsIDExNzUwOCwgMTE3NTEyLCAxMTc1MTYsIDExNzUyMCwgMTE3NTI0LCAKLSAgICAxMTc1MjgsIDExNzUzMiwgMTE3NTM2LCAxMTc1NDAsIDExNzU0NCwgMTE3NTQ4LCAxMTc1NTIsIDExNzU1NiwgMTE3NTYwLCAKLSAgICAxMTc1NjQsIDExNzU2OCwgMTE3NTcyLCAxMTc1NzYsIDExNzU4MCwgMTE3NTg0LCAxMTc1ODgsIDExNzU5MiwgMTE3NTk2LCAKLSAgICAxMTc2MDAsIDExNzYwNCwgMTE3NjA4LCAxMTc2MTIsIDExNzYxNiwgMTE3NjIwLCAxMTc2MjQsIDExNzYyOCwgMTE3NjMyLCAKLSAgICAxMTc2MzYsIDExNzY0MCwgMTE3NjQ0LCAxMTc2NDgsIDExNzY1MiwgMTE3NjU2LCAxMTc2NjAsIDExNzY2NCwgMTE3NjY4LCAKLSAgICAxMTc2NzIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExNzY3NiwgMTE3NjgyLCAxMTc2OTEsIAotICAgIDExNzY5OSwgMTE3NzA3LCAxMTc3MTYsIDExNzcyNSwgMTE3NzM0LCAxMTc3NDMsIDExNzc1MiwgMTE3NzYxLCAxMTc3NzAsIAotICAgIDExNzc3OSwgMTE3Nzg4LCAxMTc3OTcsIDAsIDAsIDExNzgwNiwgMTE3ODE1LCAxMTc4MjMsIDExNzgzMSwgMTE3ODQwLCAKLSAgICAxMTc4NDksIDExNzg1OCwgMTE3ODY3LCAxMTc4NzYsIDExNzg4NSwgMTE3ODk0LCAxMTc5MDMsIDExNzkxMiwgMTE3OTIxLCAKLSAgICAwLCAwLCAxMTc5MzAsIDExNzkzOSwgMTE3OTQ3LCAxMTc5NTUsIDExNzk2NCwgMTE3OTczLCAxMTc5ODIsIDExNzk5MSwgCi0gICAgMTE4MDAwLCAxMTgwMDksIDExODAxOCwgMTE4MDI3LCAxMTgwMzYsIDExODA0NSwgMTE4MDU0LCAwLCAxMTgwNjEsIAotICAgIDExODA3MCwgMTE4MDc4LCAxMTgwODYsIDExODA5NSwgMTE4MTA0LCAxMTgxMTMsIDExODEyMiwgMTE4MTMxLCAxMTgxNDAsIAotICAgIDExODE0OSwgMTE4MTU4LCAxMTgxNjcsIDExODE3NiwgMTE4MTg1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTgxOTIsIAotICAgIDExODE5OSwgMTE4MjA0LCAxMTgyMDgsIDExODIxMiwgMTE4MjE2LCAxMTgyMjEsIDExODIyNiwgMTE4MjMxLCAxMTgyMzYsIAotICAgIDExODI0MSwgMCwgMCwgMCwgMCwgMCwgMTE4MjQ2LCAxMTgyNTEsIDExODI1NywgMTE4MjYzLCAxMTgyNjksIDExODI3NCwgCi0gICAgMTE4MjgwLCAxMTgyODYsIDExODI5MiwgMTE4Mjk3LCAxMTgzMDMsIDExODMwOSwgMTE4MzE0LCAxMTgzMTksIDExODMyNCwgCi0gICAgMTE4MzI5LCAxMTgzMzUsIDExODM0MSwgMTE4MzQ2LCAxMTgzNTEsIDExODM1NywgMTE4MzYyLCAxMTgzNjgsIDExODM3NCwgCi0gICAgMTE4MzgwLCAxMTgzODYsIDExODM5MiwgMTE4NDAyLCAxMTg0MDksIDExODQxNSwgMTE4NDE4LCAwLCAxMTg0MjEsIAotICAgIDExODQyNiwgMTE4NDMyLCAxMTg0MzgsIDExODQ0NCwgMTE4NDQ5LCAxMTg0NTUsIDExODQ2MSwgMTE4NDY3LCAxMTg0NzIsIAotICAgIDExODQ3OCwgMTE4NDg0LCAxMTg0ODksIDExODQ5NCwgMTE4NDk5LCAxMTg1MDQsIDExODUxMCwgMTE4NTE2LCAxMTg1MjEsIAotICAgIDExODUyNiwgMTE4NTMyLCAxMTg1MzcsIDExODU0MywgMTE4NTQ5LCAxMTg1NTUsIDExODU2MSwgMTE4NTY3LCAxMTg1NzAsIAotICAgIDExODU3MywgMTE4NTc2LCAxMTg1NzksIDExODU4MiwgMTE4NTg1LCAxMTg1OTEsIDExODU5OCwgMTE4NjA1LCAxMTg2MTIsIAotICAgIDExODYxOCwgMTE4NjI1LCAxMTg2MzIsIDExODYzOSwgMTE4NjQ1LCAxMTg2NTIsIDExODY1OSwgMTE4NjY1LCAxMTg2NzEsIAotICAgIDExODY3NywgMTE4NjgzLCAxMTg2OTAsIDExODY5NywgMTE4NzAzLCAxMTg3MDksIDExODcxNiwgMTE4NzIyLCAxMTg3MjksIAotICAgIDExODczNiwgMTE4NzQzLCAxMTg3NTAsIDAsIDAsIDAsIDAsIDAsIDAsIDExODc1NywgMTE4NzYzLCAxMTg3NzAsIDExODc3NywgCi0gICAgMTE4Nzg0LCAxMTg3OTAsIDExODc5NywgMTE4ODA0LCAxMTg4MTEsIDExODgxNywgMTE4ODI0LCAxMTg4MzEsIDExODgzNywgCi0gICAgMTE4ODQzLCAxMTg4NDksIDExODg1NSwgMTE4ODYyLCAxMTg4NjksIDExODg3NSwgMTE4ODgxLCAxMTg4ODgsIDExODg5NCwgCi0gICAgMTE4OTAxLCAxMTg5MDgsIDExODkxNSwgMTE4OTIyLCAxMTg5MjksIDExODkzOCwgMTE4OTQyLCAxMTg5NDUsIDExODk0OSwgCi0gICAgMTE4OTUzLCAxMTg5NTcsIDExODk2MCwgMTE4OTYzLCAxMTg5NjYsIDExODk2OSwgMTE4OTcyLCAxMTg5NzUsIDExODk3OCwgCi0gICAgMTE4OTgxLCAxMTg5ODQsIDExODk5MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTE4OTkzLCAxMTkwMDAsIDExOTAwOCwgMTE5MDE2LCAxMTkwMjQsIAotICAgIDExOTAzMSwgMTE5MDM5LCAxMTkwNDcsIDExOTA1NSwgMTE5MDYyLCAxMTkwNzAsIDExOTA3OCwgMTE5MDg1LCAxMTkwOTIsIAotICAgIDExOTA5OSwgMTE5MTA2LCAxMTkxMTQsIDExOTEyMiwgMTE5MTI5LCAxMTkxMzYsIDExOTE0NCwgMTE5MTUxLCAxMTkxNTksIAotICAgIDExOTE2NywgMTE5MTc1LCAxMTkxODMsIDExOTE5MSwgMTE5MTk1LCAxMTkxOTksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDExOTIwMywgMTE5MjA5LCAxMTkyMTUsIDExOTIyMSwgMTE5MjI1LCAxMTkyMzEsIDExOTIzNywgCi0gICAgMTE5MjQzLCAxMTkyNDksIDExOTI1NSwgMTE5MjYxLCAxMTkyNjcsIDExOTI3MywgMTE5Mjc5LCAxMTkyODUsIDExOTI5MSwgCi0gICAgMTE5Mjk3LCAxMTkzMDMsIDExOTMwOSwgMTE5MzE1LCAxMTkzMjEsIDExOTMyNywgMTE5MzMzLCAxMTkzMzksIDExOTM0NSwgCi0gICAgMTE5MzUxLCAxMTkzNTcsIDExOTM2MywgMTE5MzY5LCAxMTkzNzUsIDExOTM4MSwgMTE5Mzg3LCAxMTkzOTMsIDExOTM5OSwgCi0gICAgMTE5NDA1LCAxMTk0MTEsIDExOTQxNywgMTE5NDIzLCAxMTk0MjksIDExOTQzNSwgMTE5NDQxLCAxMTk0NDcsIDExOTQ1MywgCi0gICAgMCwgMCwgMCwgMCwgMCwgMTE5NDU5LCAxMTk0NzAsIDExOTQ4MSwgMTE5NDkyLCAxMTk1MDMsIDExOTUxNCwgMTE5NTI1LCAKLSAgICAxMTk1MzYsIDExOTU0NywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTE5NTU4LCAxMTk1NjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExOTU2NiwgMTE5NTY4LCAxMTk1NzAsIAotICAgIDExOTU3NCwgMTE5NTc5LCAxMTk1ODQsIDExOTU4NiwgMTE5NTkyLCAxMTk1OTcsIDExOTU5OSwgMTE5NjA1LCAxMTk2MDksIAotICAgIDExOTYxMSwgMTE5NjE1LCAxMTk2MjEsIDExOTYyNywgMTE5NjMzLCAxMTk2MzgsIDExOTY0MiwgMTE5NjQ5LCAxMTk2NTYsIAotICAgIDExOTY2MywgMTE5NjY4LCAxMTk2NzUsIDExOTY4MiwgMTE5Njg5LCAxMTk2OTMsIDExOTY5OSwgMTE5NzA4LCAxMTk3MTcsIAotICAgIDExOTcyNCwgMTE5NzI5LCAxMTk3MzMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDExOTczNywgMTE5NzM5LCAxMTk3NDEsIDExOTc0NSwgMTE5NzQ5LCAxMTk3NTMsIDAsIDExOTc1NSwgMTE5NzU3LCAKLSAgICAxMTk3NjEsIDExOTc2MywgMTE5NzY1LCAxMTk3NjcsIDExOTc2OSwgMTE5Nzc0LCAxMTk3NzksIDExOTc4MSwgMTE5Nzg3LCAKLSAgICAxMTk3OTEsIDExOTc5NSwgMTE5ODAzLCAxMTk4MDUsIDExOTgwNywgMTE5ODA5LCAxMTk4MTEsIDExOTgxMywgMTE5ODE1LCAKLSAgICAxMTk4MTcsIDExOTgxOSwgMTE5ODIxLCAxMTk4MjMsIDExOTgyNywgMTE5ODMxLCAxMTk4MzMsIDExOTgzNSwgMTE5ODM3LCAKLSAgICAxMTk4MzksIDExOTg0MSwgMTE5ODQ2LCAxMTk4NTIsIDExOTg1NiwgMTE5ODYwLCAxMTk4NjQsIDExOTg2OCwgMTE5ODczLCAKLSAgICAxMTk4NzcsIDExOTg3OSwgMTE5ODgxLCAxMTk4ODUsIDExOTg5MSwgMTE5ODkzLCAxMTk4OTUsIDExOTg5NywgMTE5OTAxLCAKLSAgICAxMTk5MTAsIDExOTkxNiwgMTE5OTIwLCAxMTk5MjQsIDExOTkyNiwgMTE5OTI4LCAxMTk5MzEsIDExOTkzMywgMTE5OTM1LCAKLSAgICAxMTk5MzcsIDExOTk0MSwgMTE5OTQzLCAxMTk5NDcsIDExOTk1MiwgMTE5OTU0LCAxMTk5NTksIDExOTk2NSwgMTE5OTcyLCAKLSAgICAxMTk5NzYsIDExOTk4MCwgMTE5OTg0LCAxMTk5ODgsIDExOTk5NCwgMCwgMCwgMCwgMTE5OTk4LCAxMjAwMDAsIDEyMDAwNCwgCi0gICAgMTIwMDA4LCAxMjAwMTAsIDEyMDAxNCwgMTIwMDE4LCAxMjAwMjAsIDEyMDAyNCwgMTIwMDI2LCAxMjAwMzAsIDEyMDAzNCwgCi0gICAgMTIwMDM4LCAxMjAwNDIsIDEyMDA0NiwgMTIwMDUwLCAxMjAwNTQsIDEyMDA1OCwgMTIwMDY0LCAxMjAwNjgsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyMDA3MiwgMTIwMDc2LCAxMjAwODAsIDEyMDA4NCwgMTIwMDkxLCAKLSAgICAxMjAwOTMsIDEyMDA5NywgMTIwMDk5LCAxMjAxMDEsIDEyMDEwNSwgMTIwMTA5LCAxMjAxMTMsIDEyMDExNSwgMTIwMTE5LCAKLSAgICAxMjAxMjMsIDEyMDEyNywgMTIwMTMxLCAxMjAxMzUsIDEyMDEzNywgMTIwMTQxLCAxMjAxNDMsIDEyMDE0OSwgMTIwMTUyLCAKLSAgICAxMjAxNTcsIDEyMDE1OSwgMTIwMTYxLCAxMjAxNjQsIDEyMDE2NiwgMTIwMTY4LCAxMjAxNzEsIDEyMDE3OCwgMTIwMTg1LCAKLSAgICAxMjAxOTIsIDEyMDE5NywgMTIwMjAxLCAxMjAyMDMsIDEyMDIwNSwgMCwgMTIwMjA3LCAxMjAyMDksIDEyMDIxMywgCi0gICAgMTIwMjE3LCAxMjAyMjEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDEyMDIyMywgMTIwMjI3LCAxMjAyMzIsIDEyMDIzNiwgMTIwMjQyLCAxMjAyNDgsIDEyMDI1MCwgMTIwMjUyLCAKLSAgICAxMjAyNTgsIDEyMDI2MCwgMTIwMjY0LCAxMjAyNjgsIDEyMDI3MCwgMTIwMjc0LCAxMjAyNzYsIDEyMDI4MCwgMTIwMjg0LCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjAyODgsIDEyMDI5MCwgMTIwMjkyLCAKLSAgICAxMjAyOTQsIDEyMDI5OCwgMTIwMzAwLCAxMjAzMDIsIDEyMDMwNCwgMTIwMzA2LCAxMjAzMDgsIDEyMDMxMCwgMTIwMzEyLCAKLSAgICAxMjAzMTQsIDEyMDMxNiwgMTIwMzE4LCAxMjAzMjAsIDEyMDMyMiwgMTIwMzI0LCAxMjAzMjYsIDEyMDMyOCwgMTIwMzMwLCAKLSAgICAxMjAzMzIsIDEyMDMzNCwgMTIwMzM2LCAxMjAzMzgsIDEyMDM0MCwgMTIwMzQyLCAxMjAzNDYsIDEyMDM0OCwgMTIwMzUwLCAKLSAgICAxMjAzNTIsIDEyMDM1NiwgMTIwMzU4LCAxMjAzNjIsIDEyMDM2NCwgMTIwMzY2LCAxMjAzNzAsIDEyMDM3NCwgMTIwMzgwLCAKLSAgICAxMjAzODIsIDEyMDM4NCwgMTIwMzg2LCAxMjAzODgsIDEyMDM5MiwgMTIwMzk2LCAxMjAzOTgsIDEyMDQwMiwgMTIwNDA2LCAKLSAgICAxMjA0MTAsIDEyMDQxNCwgMTIwNDE4LCAxMjA0MjIsIDEyMDQyNiwgMTIwNDMwLCAxMjA0MzQsIDEyMDQzOCwgMTIwNDQyLCAKLSAgICAxMjA0NDYsIDEyMDQ1MCwgMTIwNDU0LCAxMjA0NTgsIDEyMDQ2MiwgMTIwNDY2LCAwLCAxMjA0NzAsIDAsIDEyMDQ3MiwgCi0gICAgMTIwNDc0LCAxMjA0NzYsIDEyMDQ3OCwgMTIwNDgwLCAxMjA0ODgsIDEyMDQ5NiwgMTIwNTA0LCAxMjA1MTIsIDEyMDUxNywgCi0gICAgMTIwNTIyLCAxMjA1MjcsIDEyMDUzMSwgMTIwNTM1LCAxMjA1NDAsIDEyMDU0NSwgMTIwNTQ3LCAxMjA1NTEsIDEyMDU1MywgCi0gICAgMTIwNTU1LCAxMjA1NTcsIDEyMDU1OSwgMTIwNTYxLCAxMjA1NjMsIDEyMDU2NSwgMTIwNTY5LCAxMjA1NzEsIDEyMDU3MywgCi0gICAgMTIwNTc1LCAxMjA1NzksIDEyMDU4MywgMTIwNTg3LCAxMjA1OTEsIDEyMDU5NSwgMTIwNTk3LCAxMjA2MDMsIDEyMDYwOSwgCi0gICAgMTIwNjExLCAxMjA2MTMsIDEyMDYxNSwgMTIwNjE3LCAxMjA2MTksIDEyMDYyOCwgMTIwNjM1LCAxMjA2NDIsIDEyMDY0NiwgCi0gICAgMTIwNjUzLCAxMjA2NTgsIDEyMDY2NSwgMTIwNjc0LCAxMjA2NzksIDEyMDY4MywgMTIwNjg3LCAxMjA2ODksIDEyMDY5MywgCi0gICAgMTIwNjk1LCAxMjA2OTksIDEyMDcwMywgMTIwNzA1LCAxMjA3MDksIDEyMDcxMywgMTIwNzE3LCAxMjA3MTksIDEyMDcyMSwgCi0gICAgMTIwNzI3LCAxMjA3MjksIDEyMDczMSwgMTIwNzMzLCAxMjA3MzcsIDEyMDc0MSwgMTIwNzQzLCAxMjA3NDcsIDEyMDc0OSwgCi0gICAgMTIwNzUxLCAxMjA3NTQsIDEyMDc1OCwgMTIwNzYwLCAxMjA3NjQsIDEyMDc2NiwgMTIwNzY4LCAxMjA3NzMsIDEyMDc3NSwgCi0gICAgMTIwNzc5LCAxMjA3ODMsIDEyMDc4NiwgMTIwNzkwLCAxMjA3OTQsIDEyMDc5OCwgMTIwODAyLCAxMjA4MDYsIDEyMDgxMCwgCi0gICAgMTIwODE0LCAxMjA4MTksIDEyMDgyMywgMTIwODI3LCAxMjA4MzYsIDEyMDg0MSwgMTIwODQ0LCAxMjA4NDYsIDEyMDg0OSwgCi0gICAgMTIwODUyLCAxMjA4NTcsIDEyMDg1OSwgMTIwODYyLCAxMjA4NjcsIDEyMDg3MSwgMTIwODc0LCAxMjA4NzgsIDEyMDg4MiwgCi0gICAgMTIwODg1LCAxMjA4OTAsIDEyMDg5NCwgMTIwODk4LCAxMjA5MDIsIDEyMDkwNiwgMTIwOTEyLCAxMjA5MTgsIDEyMDkyNCwgCi0gICAgMTIwOTMwLCAxMjA5MzUsIDEyMDk0NiwgMTIwOTQ4LCAxMjA5NTIsIDEyMDk1NCwgMTIwOTU2LCAxMjA5NjAsIDEyMDk2NCwgCi0gICAgMTIwOTY2LCAxMjA5NzAsIDEyMDk3NiwgMTIwOTgxLCAxMjA5ODcsIDEyMDk4OSwgMTIwOTkzLCAxMjA5OTcsIDEyMTAwNCwgCi0gICAgMTIxMDExLCAxMjEwMTUsIDEyMTAxNywgMTIxMDE5LCAxMjEwMjMsIDEyMTAyNSwgMTIxMDI5LCAxMjEwMzMsIDEyMTAzNywgCi0gICAgMTIxMDM5LCAxMjEwNDEsIDEyMTA0OCwgMTIxMDUyLCAxMjEwNTYsIDEyMTA2MCwgMTIxMDY0LCAxMjEwNjgsIDEyMTA3MCwgCi0gICAgMTIxMDc0LCAxMjEwNzYsIDEyMTA3OCwgMTIxMDgyLCAxMjEwODQsIDEyMTA4OCwgMTIxMDkyLCAxMjEwOTgsIDEyMTEwMiwgCi0gICAgMTIxMTA2LCAxMjExMTAsIDEyMTExMiwgMTIxMTE1LCAxMjExMTksIDEyMTEyNiwgMTIxMTM1LCAxMjExNDQsIDEyMTE1MywgCi0gICAgMTIxMTYyLCAxMjExNjQsIDEyMTE2OCwgMTIxMTcwLCAxMjExNzQsIDEyMTE4NSwgMTIxMTg5LCAxMjExOTUsIDEyMTIwMSwgCi0gICAgMTIxMjA2LCAwLCAxMjEyMDgsIDEyMTIxMiwgMTIxMjE0LCAxMjEyMTYsIDAsIDAsIDAsIDEyMTIxOCwgMTIxMjIzLCAKLSAgICAxMjEyMzQsIDEyMTI1MCwgMTIxMjYzLCAxMjEyNzYsIDEyMTI4MCwgMTIxMjg0LCAxMjEyOTAsIDEyMTI5MiwgMTIxMzAwLCAKLSAgICAxMjEzMDgsIDEyMTMxMCwgMTIxMzE0LCAxMjEzMjAsIDEyMTMyNiwgMTIxMzMzLCAxMjEzNDAsIDEyMTM0MiwgMTIxMzQ0LCAKLSAgICAxMjEzNDgsIDEyMTM1MCwgMTIxMzU2LCAxMjEzNTgsIDEyMTM2MSwgMTIxMzY1LCAxMjEzNzEsIDEyMTM3NywgMTIxMzg4LCAKLSAgICAxMjEzOTQsIDEyMTQwMSwgMTIxNDA5LCAxMjE0MTMsIDEyMTQyMSwgMTIxNDI5LCAxMjE0MzUsIDEyMTQ0MSwgMTIxNDQ4LCAKLSAgICAxMjE0NTAsIDEyMTQ1NCwgMTIxNDU2LCAxMjE0NTgsIDEyMTQ2MywgMTIxNDY1LCAxMjE0NjcsIDEyMTQ2OSwgMTIxNDcxLCAKLSAgICAxMjE0NzUsIDEyMTQ4NiwgMTIxNDkyLCAxMjE0OTYsIDEyMTUwMCwgMTIxNTA0LCAxMjE1MTAsIDEyMTUxNiwgMTIxNTIyLCAKLSAgICAxMjE1MjgsIDEyMTUzMywgMTIxNTM4LCAxMjE1NDQsIDEyMTU1MCwgMTIxNTU3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjE1NjQsIDEyMTU3MSwgMTIxNTc4LCAxMjE1ODUsIDEyMTU5MywgCi0gICAgMTIxNjAxLCAxMjE2MDksIDEyMTYxNywgMTIxNjI1LCAxMjE2MzMsIDEyMTY0MSwgMTIxNjQ5LCAxMjE2NTcsIDEyMTY2MywgCi0gICAgMTIxNjY5LCAxMjE2NzUsIDEyMTY4MSwgMTIxNjg3LCAxMjE2OTMsIDEyMTY5OSwgMTIxNzA1LCAxMjE3MTEsIDEyMTcxNywgCi0gICAgMTIxNzIzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTA3MTAsIDExMDcxNSwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMTIxNzI5LCAxMjE3MzMsIDEyMTczNywgMTIxNzQyLCAxMjE3NDcsIDAsIDEyMTc0OSwgMTIxNzU4LCAKLSAgICAxMjE3NjYsIDEyMTc3NSwgMTIxNzg5LCAxMjE4MDMsIDEyMTgxNywgMTIxODI0LCAxMjE4MzEsIDEyMTgzNSwgMTIxODQ0LCAKLSAgICAxMjE4NTIsIDEyMTg1NiwgMTIxODY1LCAxMjE4NzIsIDEyMTg3NiwgMCwgMTIxODgwLCAxMjE4ODQsIDEyMTg5MSwgMCwgCi0gICAgMTIxODk1LCAwLCAxMjE4OTksIDAsIDEyMTkwNiwgMCwgMTIxOTE1LCAxMjE5MjcsIDEyMTkzOSwgMCwgMTIxOTQzLCAKLSAgICAxMjE5NDcsIDEyMTk1MSwgMTIxOTU1LCAxMjE5NTksIDEyMTk2NywgMCwgMCwgMTIxOTc1LCAxMjE5NzksIDEyMTk4MywgCi0gICAgMTIxOTg3LCAwLCAxMjE5OTEsIDAsIDAsIDEyMTk5NywgMTIyMDA5LCAxMjIwMTcsIDEyMjAyMSwgMCwgMTIyMDI1LCAKLSAgICAxMjIwMjksIDEyMjAzNSwgMTIyMDQyLCAxMjIwNTMsIDEyMjA2MywgMTIyMDc0LCAxMjIwODUsIDEyMjA5NCwgMTIyMTA1LCAKLSAgICAxMjIxMTEsIDEyMjExNywgMCwgMCwgMCwgMCwgMTIyMTIzLCAxMjIxMzIsIDEyMjEzOSwgMTIyMTQ1LCAxMjIxNDksIAotICAgIDEyMjE1MywgMTIyMTU3LCAxMjIxNjYsIDEyMjE3OCwgMTIyMTgyLCAxMjIxODksIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDExMDcyMSwgMTEwNzI2LCAxMTA3MzEsIDExMDczNiwgMTEwNzQzLCAxMTA3NTAsIDExMDc1NywgMTEwNzY0LCAxMTA3NjksIAorICAgIDExMDc3NCwgMTEwNzc5LCAxMTA3ODQsIDExMDc5MSwgMTEwNzk2LCAxMTA4MDMsIDExMDgxMCwgMTEwODE1LCAxMTA4MjAsIAorICAgIDExMDgyNSwgMTEwODMyLCAxMTA4MzcsIDExMDg0MiwgMTEwODQ5LCAxMTA4NTYsIDExMDg2MSwgMTEwODY2LCAxMTA4NzEsIAorICAgIDExMDg3OCwgMTEwODg1LCAxMTA4OTIsIDExMDg5NywgMTEwOTAyLCAxMTA5MDksIDExMDkxNiwgMTEwOTIzLCAxMTA5MzAsIAorICAgIDExMDkzNSwgMTEwOTQwLCAxMTA5NDUsIDExMDk1MiwgMTEwOTU3LCAxMTA5NjIsIDExMDk2NywgMTEwOTc0LCAxMTA5ODMsIAorICAgIDExMDk5MCwgMTEwOTk1LCAxMTEwMDAsIDExMTAwNSwgMTExMDEwLCAxMTEwMTUsIDExMTAyMCwgMTExMDI5LCAxMTEwMzYsIAorICAgIDExMTA0MSwgMTExMDQ4LCAxMTEwNTUsIDExMTA2MCwgMTExMDY1LCAxMTEwNzAsIDExMTA3NywgMTExMDgyLCAxMTEwODksIAorICAgIDExMTA5NiwgMTExMTAxLCAxMTExMDYsIDExMTExMSwgMTExMTE4LCAxMTExMjUsIDExMTEzMCwgMTExMTM1LCAxMTExNDIsIAorICAgIDExMTE0OSwgMTExMTU2LCAxMTExNjEsIDExMTE2NiwgMTExMTcxLCAxMTExNzYsIDExMTE4MywgMTExMTkyLCAxMTEyMDEsIAorICAgIDExMTIwNiwgMTExMjEzLCAxMTEyMjIsIDExMTIyNywgMTExMjMyLCAxMTEyMzcsIDExMTI0MiwgMTExMjQ5LCAxMTEyNTYsIAorICAgIDExMTI2MywgMTExMjcwLCAxMTEyNzUsIDExMTI4MCwgMTExMjg1LCAxMTEyOTIsIDExMTI5OSwgMTExMzA2LCAxMTEzMTEsIAorICAgIDExMTMxNiwgMTExMzIzLCAxMTEzMjgsIDExMTMzNSwgMTExMzQwLCAxMTEzNDcsIDExMTM1MiwgMTExMzU5LCAxMTEzNjYsIAorICAgIDExMTM3MSwgMTExMzc2LCAxMTEzODEsIDExMTM4NiwgMTExMzkxLCAxMTEzOTYsIDExMTQwMSwgMTExNDA2LCAxMTE0MTEsIAorICAgIDExMTQxOCwgMTExNDI1LCAxMTE0MzIsIDExMTQzOSwgMTExNDQ2LCAxMTE0NTUsIDExMTQ2MCwgMTExNDY1LCAxMTE0NzIsIAorICAgIDExMTQ3OSwgMTExNDg0LCAxMTE0OTEsIDExMTQ5OCwgMTExNTA1LCAxMTE1MTIsIDExMTUxOSwgMTExNTI2LCAxMTE1MzEsIAorICAgIDExMTUzNiwgMTExNTQxLCAxMTE1NDYsIDExMTU1MSwgMTExNTYwLCAxMTE1NjksIDExMTU3OCwgMTExNTg3LCAxMTE1OTYsIAorICAgIDExMTYwNSwgMTExNjE0LCAxMTE2MjMsIDExMTYyOCwgMTExNjM5LCAxMTE2NTAsIDExMTY1OSwgMTExNjY0LCAxMTE2NjksIAorICAgIDExMTY3NCwgMTExNjc5LCAxMTE2ODgsIDExMTY5NSwgMTExNzAyLCAxMTE3MDksIDExMTcxNiwgMTExNzIzLCAxMTE3MzAsIAorICAgIDExMTczOSwgMTExNzQ4LCAxMTE3NTksIDExMTc2OCwgMTExNzc5LCAxMTE3ODgsIDExMTc5NSwgMTExODA0LCAxMTE4MTUsIAorICAgIDExMTgyNCwgMTExODMzLCAxMTE4NDIsIDExMTg1MSwgMTExODU4LCAxMTE4NjUsIDExMTg3MiwgMTExODgxLCAxMTE4OTAsIAorICAgIDExMTkwMSwgMTExOTEwLCAxMTE5MTksIDExMTkzMCwgMTExOTM1LCAxMTE5NDAsIDExMTk1MSwgMTExOTU5LCAxMTE5NjgsIAorICAgIDExMTk3NywgMTExOTg2LCAxMTE5OTcsIDExMjAwNiwgMTEyMDE1LCAxMTIwMjYsIDExMjAzNywgMTEyMDQ4LCAxMTIwNTksIAorICAgIDExMjA3MCwgMTEyMDgxLCAxMTIwODgsIDExMjA5NSwgMTEyMTAyLCAxMTIxMDksIDExMjEyMCwgMTEyMTI5LCAxMTIxMzYsIAorICAgIDExMjE0MywgMTEyMTUwLCAxMTIxNjEsIDExMjE3MiwgMTEyMTgzLCAxMTIxOTQsIDExMjIwNSwgMTEyMjE2LCAxMTIyMjcsIAorICAgIDExMjIzOCwgMTEyMjQ1LCAxMTIyNTIsIDExMjI2MSwgMTEyMjcwLCAxMTIyNzcsIDExMjI4NCwgMTEyMjkxLCAxMTIzMDAsIAorICAgIDExMjMwOSwgMTEyMzE4LCAxMTIzMjUsIDExMjMzNCwgMTEyMzQzLCAxMTIzNTIsIDExMjM1OSwgMTEyMzY2LCAxMTIzNzEsIAorICAgIDExMjM3NywgMTEyMzg0LCAxMTIzOTEsIDExMjM5OCwgMTEyNDA1LCAxMTI0MTIsIDExMjQxOSwgMTEyNDI4LCAxMTI0MzcsIAorICAgIDExMjQ0NiwgMTEyNDU1LCAxMTI0NjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExMjQ3MSwgMTEyNDc3LCAKKyAgICAxMTI0ODIsIDExMjQ4NywgMTEyNDk0LCAxMTI1MDAsIDExMjUwNiwgMTEyNTEyLCAxMTI1MTgsIDExMjUyNCwgMTEyNTMwLCAKKyAgICAxMTI1MzYsIDExMjU0MCwgMTEyNTQ0LCAxMTI1NTAsIDExMjU1NiwgMTEyNTYyLCAxMTI1NjYsIDExMjU3MSwgMTEyNTc2LCAKKyAgICAxMTI1ODAsIDExMjU4NCwgMTEyNTg3LCAxMTI1OTMsIDExMjU5OSwgMTEyNjA1LCAxMTI2MTEsIDExMjYxNywgMTEyNjIzLCAKKyAgICAxMTI2MjksIDExMjYzNSwgMTEyNjQxLCAxMTI2NTEsIDExMjY2MSwgMTEyNjY3LCAxMTI2NzMsIDExMjY4MywgMTEyNjkzLCAKKyAgICAxMTI2OTksIDAsIDAsIDExMjcwNSwgMTEyNzEzLCAxMTI3MTgsIDExMjcyMywgMTEyNzI5LCAxMTI3MzUsIDExMjc0MSwgCisgICAgMTEyNzQ3LCAxMTI3NTMsIDExMjc1OSwgMTEyNzY2LCAxMTI3NzMsIDExMjc3OSwgMTEyNzg1LCAxMTI3OTEsIDExMjc5NywgCisgICAgMTEyODAzLCAxMTI4MDksIDExMjgxNSwgMTEyODIxLCAxMTI4MjYsIDExMjgzMiwgMTEyODM4LCAxMTI4NDQsIDExMjg1MCwgCisgICAgMTEyODU2LCAxMTI4NjUsIDExMjg3MSwgMTEyODc2LCAxMTI4ODQsIDExMjg5MSwgMTEyODk4LCAxMTI5MDcsIDExMjkxNiwgCisgICAgMTEyOTI1LCAxMTI5MzQsIDExMjk0MywgMTEyOTUyLCAxMTI5NjEsIDExMjk3MCwgMTEyOTgwLCAxMTI5OTAsIDExMjk5OCwgCisgICAgMTEzMDA2LCAxMTMwMTUsIDExMzAyNCwgMTEzMDMwLCAxMTMwMzYsIDExMzA0MiwgMTEzMDQ4LCAxMTMwNTYsIDExMzA2NCwgCisgICAgMTEzMDY4LCAxMTMwNzQsIDExMzA3OSwgMTEzMDg1LCAxMTMwOTEsIDExMzA5NywgMTEzMTAzLCAxMTMxMDksIDExMzExOCwgCisgICAgMTEzMTIzLCAxMTMxMzAsIDExMzEzNSwgMTEzMTQwLCAxMTMxNDUsIDExMzE1MSwgMTEzMTU3LCAxMTMxNjMsIDExMzE3MCwgCisgICAgMTEzMTc1LCAxMTMxODAsIDExMzE4NSwgMTEzMTkwLCAxMTMxOTUsIDExMzIwMSwgMTEzMjA3LCAxMTMyMTMsIDExMzIxOSwgCisgICAgMTEzMjI1LCAxMTMyMzEsIDExMzIzNywgMTEzMjQzLCAxMTMyNDgsIDExMzI1MywgMTEzMjU4LCAxMTMyNjMsIDExMzI2OCwgCisgICAgMTEzMjczLCAxMTMyNzgsIDExMzI4MywgMTEzMjg5LCAxMTMyOTUsIDExMzMwMCwgMTEzMzA1LCAxMTMzMTAsIDExMzMxNSwgCisgICAgMTEzMzIwLCAxMTMzMjYsIDExMzMzMywgMTEzMzM3LCAxMTMzNDEsIDExMzM0NSwgMTEzMzQ5LCAxMTMzNTMsIDExMzM1NywgCisgICAgMTEzMzYxLCAxMTMzNjUsIDExMzM3MywgMTEzMzgzLCAxMTMzODcsIDExMzM5MSwgMTEzMzk3LCAxMTM0MDMsIDExMzQwOSwgCisgICAgMTEzNDE1LCAxMTM0MjEsIDExMzQyNywgMTEzNDMzLCAxMTM0MzksIDExMzQ0NSwgMTEzNDUxLCAxMTM0NTcsIDExMzQ2MywgCisgICAgMTEzNDY5LCAxMTM0NzUsIDExMzQ3OSwgMTEzNDgzLCAxMTM0OTAsIDExMzQ5NiwgMTEzNTAyLCAxMTM1MDgsIDExMzUxMywgCisgICAgMTEzNTIwLCAxMTM1MjUsIDExMzUzMSwgMTEzNTM3LCAxMTM1NDMsIDExMzU0OSwgMTEzNTU0LCAxMTM1NTgsIDExMzU2NCwgCisgICAgMTEzNTY4LCAxMTM1NzIsIDExMzU3NiwgMTEzNTgyLCAxMTM1ODgsIDExMzU5MiwgMTEzNTk4LCAxMTM2MDQsIDExMzYxMCwgCisgICAgMTEzNjE2LCAxMTM2MjIsIDExMzYzMCwgMTEzNjM4LCAxMTM2NDQsIDExMzY1MCwgMTEzNjU2LCAxMTM2NjIsIDExMzY3NCwgCisgICAgMTEzNjg2LCAxMTM3MDAsIDExMzcxMiwgMTEzNzI0LCAxMTM3MzgsIDExMzc1MiwgMTEzNzY2LCAxMTM3NzAsIDExMzc3OCwgCisgICAgMTEzNzg2LCAxMTM3OTEsIDExMzc5NSwgMTEzNzk5LCAxMTM4MDMsIDExMzgwNywgMTEzODExLCAxMTM4MTUsIDExMzgxOSwgCisgICAgMTEzODI1LCAxMTM4MzEsIDExMzgzNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTEzODQzLCAxMTM4NDksIAorICAgIDExMzg1NSwgMTEzODYxLCAxMTM4NjcsIDExMzg3MywgMTEzODc5LCAxMTM4ODUsIDExMzg5MSwgMTEzODk3LCAxMTM5MDMsIAorICAgIDExMzkwOSwgMTEzOTE1LCAxMTM5MjEsIDExMzkyNywgMTEzOTMzLCAxMTM5MzksIDExMzk0NSwgMTEzOTUxLCAxMTM5NTcsIAorICAgIDExMzk2MywgMTEzOTY5LCAxMTM5NzUsIDExMzk4MSwgMTEzOTg3LCAxMTM5OTMsIDExMzk5OSwgMTE0MDA1LCAxMTQwMTEsIAorICAgIDExNDAxNywgMTE0MDIzLCAxMTQwMjksIDExNDAzNSwgMTE0MDQxLCAxMTQwNDcsIDExNDA1MywgMTE0MDU5LCAxMTQwNjUsIAorICAgIDExNDA3MSwgMTE0MDc3LCAxMTQwODMsIDExNDA4OSwgMTE0MDk1LCAxMTQxMDEsIDExNDEwNywgMTE0MTEzLCAxMTQxMTksIAorICAgIDExNDEyNSwgMTE0MTMxLCAxMTQxMzcsIDExNDE0MywgMTE0MTQ5LCAxMTQxNTUsIDExNDE2MSwgMTE0MTY3LCAxMTQxNzMsIAorICAgIDExNDE3OSwgMTE0MTg1LCAxMTQxOTEsIDExNDE5NywgMTE0MjAzLCAxMTQyMDksIDExNDIxNSwgMTE0MjIxLCAxMTQyMjcsIAorICAgIDExNDIzMywgMTE0MjM5LCAxMTQyNDQsIDExNDI0OSwgMTE0MjU0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjIxOTYsIDEyMjE5OCwgMTIyMjAwLCAKLSAgICAxMjIyMDQsIDEyMjIwOCwgMTIyMjEyLCAxMjIyMjEsIDEyMjIyMywgMTIyMjI1LCAxMjIyMjgsIDEyMjIzMCwgMTIyMjMyLCAKLSAgICAxMjIyMzYsIDEyMjIzOCwgMTIyMjQyLCAxMjIyNDQsIDEyMjI0OCwgMTIyMjUwLCAxMjIyNTIsIDEyMjI1NiwgMTIyMjYwLCAKLSAgICAxMjIyNjYsIDEyMjI2OCwgMTIyMjcyLCAxMjIyNzQsIDEyMjI3OCwgMTIyMjgyLCAxMjIyODYsIDEyMjI5MCwgMTIyMjkyLCAKLSAgICAxMjIyOTQsIDEyMjI5OCwgMTIyMzAyLCAxMjIzMDYsIDEyMjMxMCwgMTIyMzEyLCAxMjIzMTQsIDEyMjMxNiwgMTIyMzIxLCAKLSAgICAxMjIzMjYsIDEyMjMyOSwgMTIyMzM3LCAxMjIzNDUsIDEyMjM0NywgMTIyMzUyLCAxMjIzNTUsIDEyMjM2MCwgMTIyMzcxLCAKLSAgICAxMjIzNzgsIDEyMjM4MywgMTIyMzg4LCAxMjIzOTAsIDEyMjM5NCwgMTIyMzk2LCAxMjI0MDAsIDEyMjQwMiwgMTIyNDA2LCAKLSAgICAxMjI0MTAsIDEyMjQxMywgMTIyNDE2LCAxMjI0MTgsIDEyMjQyMSwgMTIyNDIzLCAxMjI0MjcsIDEyMjQyOSwgMTIyNDMxLCAKLSAgICAxMjI0MzMsIDEyMjQzNywgMTIyNDM5LCAxMjI0NDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDExNDI1OCwgMTE0MjYzLCAxMTQyNzAsIDExNDI3NywgMTE0Mjg0LCAxMTQyOTEsIDExNDI5NiwgMTE0MzAwLCAxMTQzMDYsIAorICAgIDExNDMxMCwgMTE0MzE0LCAxMTQzMjAsIDExNDMyNCwgMTE0MzI4LCAxMTQzMzIsIDExNDMzOCwgMTE0MzQ1LCAxMTQzNDksIAorICAgIDExNDM1MywgMTE0MzU3LCAxMTQzNjEsIDExNDM2NSwgMTE0MzY5LCAxMTQzNzUsIDExNDM3OSwgMTE0MzgzLCAxMTQzODcsIAorICAgIDExNDM5MSwgMTE0Mzk1LCAxMTQzOTksIDExNDQwMywgMTE0NDA3LCAxMTQ0MTEsIDExNDQxNSwgMTE0NDE5LCAxMTQ0MjMsIAorICAgIDExNDQyOCwgMTE0NDMyLCAxMTQ0MzYsIDExNDQ0MCwgMTE0NDQ0LCAxMTQ0NDgsIDExNDQ1MiwgMTE0NDU2LCAxMTQ0NjAsIAorICAgIDExNDQ2NCwgMTE0NDcxLCAxMTQ0NzUsIDExNDQ4MywgMTE0NDg3LCAxMTQ0OTEsIDExNDQ5NSwgMTE0NDk5LCAxMTQ1MDMsIAorICAgIDExNDUwNywgMTE0NTExLCAxMTQ1MTgsIDExNDUyMiwgMTE0NTI2LCAxMTQ1MzAsIDExNDUzNCwgMTE0NTM4LCAxMTQ1NDQsIAorICAgIDExNDU0OCwgMTE0NTU0LCAxMTQ1NTgsIDExNDU2MiwgMTE0NTY2LCAxMTQ1NzAsIDExNDU3NCwgMTE0NTc4LCAxMTQ1ODIsIAorICAgIDExNDU4NiwgMTE0NTkwLCAxMTQ1OTQsIDExNDU5OCwgMTE0NjAyLCAxMTQ2MDYsIDExNDYxMCwgMTE0NjE0LCAxMTQ2MTgsIAorICAgIDExNDYyMiwgMTE0NjI2LCAxMTQ2MzAsIDExNDYzOCwgMTE0NjQyLCAxMTQ2NDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDExNDY1MCwgMTE0NjU4LCAxMTQ2NjYsIDExNDY3NCwgMTE0NjgyLCAxMTQ2OTAsIDExNDY5OCwgMTE0NzA2LCAKKyAgICAxMTQ3MTQsIDExNDcyMiwgMTE0NzMwLCAxMTQ3MzgsIDExNDc0NiwgMTE0NzU0LCAxMTQ3NjIsIDExNDc3MCwgMTE0Nzc4LCAKKyAgICAxMTQ3ODYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDExNDc5NCwgMTE0Nzk4LCAxMTQ4MDMsIAorICAgIDExNDgwOCwgMTE0ODEzLCAxMTQ4MTcsIDExNDgyMiwgMTE0ODI3LCAxMTQ4MzIsIDExNDgzNiwgMTE0ODQxLCAxMTQ4NDYsIAorICAgIDExNDg1MCwgMTE0ODU0LCAxMTQ4NTksIDExNDg2MywgMTE0ODY4LCAxMTQ4NzMsIDExNDg3NywgMTE0ODgyLCAxMTQ4ODcsIAorICAgIDExNDg5MSwgMTE0ODk2LCAxMTQ5MDEsIDExNDkwNiwgMTE0OTExLCAxMTQ5MTYsIDExNDkyMCwgMTE0OTI1LCAxMTQ5MzAsIAorICAgIDExNDkzNSwgMTE0OTM5LCAxMTQ5NDQsIDExNDk0OSwgMTE0OTU0LCAxMTQ5NTgsIDExNDk2MywgMTE0OTY4LCAxMTQ5NzIsIAorICAgIDExNDk3NiwgMTE0OTgxLCAxMTQ5ODUsIDExNDk5MCwgMTE0OTk1LCAxMTQ5OTksIDExNTAwNCwgMTE1MDA5LCAxMTUwMTMsIAorICAgIDExNTAxOCwgMTE1MDIzLCAxMTUwMjgsIDExNTAzMywgMTE1MDM4LCAxMTUwNDIsIDExNTA0NywgMTE1MDUyLCAxMTUwNTcsIAorICAgIDExNTA2MSwgMTE1MDY2LCAxMTUwNzEsIDExNTA3NiwgMTE1MDgwLCAxMTUwODUsIDExNTA5MCwgMTE1MDk0LCAxMTUwOTgsIAorICAgIDExNTEwMywgMTE1MTA3LCAxMTUxMTIsIDExNTExNywgMTE1MTIxLCAxMTUxMjYsIDExNTEzMSwgMTE1MTM1LCAxMTUxNDAsIAorICAgIDExNTE0NSwgMTE1MTUwLCAxMTUxNTUsIDExNTE2MCwgMTE1MTY0LCAxMTUxNjksIDExNTE3NCwgMTE1MTc5LCAxMTUxODMsIAorICAgIDExNTE4OCwgMCwgMTE1MTkzLCAxMTUxOTcsIDExNTIwMiwgMTE1MjA3LCAxMTUyMTEsIDExNTIxNSwgMTE1MjIwLCAKKyAgICAxMTUyMjQsIDExNTIyOSwgMTE1MjM0LCAxMTUyMzgsIDExNTI0MywgMTE1MjQ4LCAxMTUyNTIsIDExNTI1NywgMTE1MjYyLCAKKyAgICAxMTUyNjcsIDExNTI3MiwgMTE1Mjc3LCAxMTUyODIsIDExNTI4OCwgMTE1Mjk0LCAxMTUzMDAsIDExNTMwNSwgMTE1MzExLCAKKyAgICAxMTUzMTcsIDExNTMyMywgMTE1MzI4LCAxMTUzMzQsIDExNTM0MCwgMTE1MzQ1LCAxMTUzNTAsIDExNTM1NiwgMTE1MzYxLCAKKyAgICAxMTUzNjcsIDExNTM3MywgMTE1Mzc4LCAxMTUzODQsIDExNTM5MCwgMTE1Mzk1LCAxMTU0MDEsIDExNTQwNywgMTE1NDEzLCAKKyAgICAxMTU0MTksIDExNTQyNSwgMTE1NDMwLCAxMTU0MzYsIDExNTQ0MiwgMTE1NDQ4LCAxMTU0NTMsIDExNTQ1OSwgMTE1NDY1LCAKKyAgICAxMTU0NzEsIDExNTQ3NiwgMTE1NDgyLCAxMTU0ODgsIDExNTQ5MywgMTE1NDk4LCAxMTU1MDQsIDExNTUwOSwgMTE1NTE1LCAKKyAgICAxMTU1MjEsIDExNTUyNiwgMTE1NTMyLCAxMTU1MzgsIDExNTU0MywgMTE1NTQ5LCAxMTU1NTUsIDExNTU2MSwgMTE1NTY3LCAKKyAgICAxMTU1NzMsIDAsIDExNTU3NywgMTE1NTgyLCAwLCAwLCAxMTU1ODcsIDAsIDAsIDExNTU5MiwgMTE1NTk3LCAwLCAwLCAKKyAgICAxMTU2MDIsIDExNTYwNywgMTE1NjExLCAxMTU2MTYsIDAsIDExNTYyMSwgMTE1NjI2LCAxMTU2MzEsIDExNTYzNSwgCisgICAgMTE1NjQwLCAxMTU2NDUsIDExNTY1MCwgMTE1NjU1LCAxMTU2NjAsIDExNTY2NCwgMTE1NjY5LCAxMTU2NzQsIDAsIAorICAgIDExNTY3OSwgMCwgMTE1Njg0LCAxMTU2ODksIDExNTY5MywgMTE1Njk4LCAxMTU3MDMsIDExNTcwNywgMTE1NzExLCAwLCAKKyAgICAxMTU3MTYsIDExNTcyMSwgMTE1NzI2LCAxMTU3MzAsIDExNTczNSwgMTE1NzQwLCAxMTU3NDQsIDExNTc0OSwgMTE1NzU0LCAKKyAgICAxMTU3NTksIDExNTc2NCwgMTE1NzY5LCAxMTU3NzQsIDExNTc4MCwgMTE1Nzg2LCAxMTU3OTIsIDExNTc5NywgMTE1ODAzLCAKKyAgICAxMTU4MDksIDExNTgxNSwgMTE1ODIwLCAxMTU4MjYsIDExNTgzMiwgMTE1ODM3LCAxMTU4NDIsIDExNTg0OCwgMTE1ODUzLCAKKyAgICAxMTU4NTksIDExNTg2NSwgMTE1ODcwLCAxMTU4NzYsIDExNTg4MiwgMTE1ODg3LCAxMTU4OTMsIDExNTg5OSwgMTE1OTA1LCAKKyAgICAxMTU5MTEsIDExNTkxNywgMTE1OTIyLCAxMTU5MjgsIDExNTkzNCwgMTE1OTQwLCAxMTU5NDUsIDExNTk1MSwgMTE1OTU3LCAKKyAgICAxMTU5NjMsIDExNTk2OCwgMTE1OTc0LCAxMTU5ODAsIDExNTk4NSwgMTE1OTkwLCAxMTU5OTYsIDExNjAwMSwgMTE2MDA3LCAKKyAgICAxMTYwMTMsIDExNjAxOCwgMTE2MDI0LCAxMTYwMzAsIDExNjAzNSwgMTE2MDQxLCAxMTYwNDcsIDExNjA1MywgMTE2MDU5LCAKKyAgICAxMTYwNjUsIDExNjA2OSwgMCwgMTE2MDc0LCAxMTYwNzksIDExNjA4MywgMTE2MDg4LCAwLCAwLCAxMTYwOTMsIDExNjA5OCwgCisgICAgMTE2MTAzLCAxMTYxMDcsIDExNjExMSwgMTE2MTE2LCAxMTYxMjAsIDExNjEyNSwgMCwgMTE2MTMwLCAxMTYxMzUsIAorICAgIDExNjE0MCwgMTE2MTQ0LCAxMTYxNDksIDExNjE1NCwgMTE2MTU5LCAwLCAxMTYxNjQsIDExNjE2OCwgMTE2MTczLCAKKyAgICAxMTYxNzgsIDExNjE4MywgMTE2MTg3LCAxMTYxOTIsIDExNjE5NywgMTE2MjAyLCAxMTYyMDYsIDExNjIxMSwgMTE2MjE2LCAKKyAgICAxMTYyMjAsIDExNjIyNCwgMTE2MjI5LCAxMTYyMzMsIDExNjIzOCwgMTE2MjQzLCAxMTYyNDcsIDExNjI1MiwgMTE2MjU3LCAKKyAgICAxMTYyNjEsIDExNjI2NiwgMTE2MjcxLCAxMTYyNzYsIDExNjI4MSwgMTE2Mjg2LCAxMTYyOTAsIDAsIDExNjI5NSwgCisgICAgMTE2MzAwLCAxMTYzMDQsIDExNjMwOSwgMCwgMTE2MzE0LCAxMTYzMTgsIDExNjMyMywgMTE2MzI4LCAxMTYzMzIsIDAsIAorICAgIDExNjMzNiwgMCwgMCwgMCwgMTE2MzQwLCAxMTYzNDUsIDExNjM1MCwgMTE2MzU0LCAxMTYzNTksIDExNjM2NCwgMTE2MzY5LCAKKyAgICAwLCAxMTYzNzQsIDExNjM3OCwgMTE2MzgzLCAxMTYzODgsIDExNjM5MywgMTE2Mzk3LCAxMTY0MDIsIDExNjQwNywgCisgICAgMTE2NDEyLCAxMTY0MTYsIDExNjQyMSwgMTE2NDI2LCAxMTY0MzAsIDExNjQzNCwgMTE2NDM5LCAxMTY0NDMsIDExNjQ0OCwgCisgICAgMTE2NDUzLCAxMTY0NTcsIDExNjQ2MiwgMTE2NDY3LCAxMTY0NzEsIDExNjQ3NiwgMTE2NDgxLCAxMTY0ODYsIDExNjQ5MSwgCisgICAgMTE2NDk2LCAxMTY1MDEsIDExNjUwNywgMTE2NTEzLCAxMTY1MTksIDExNjUyNCwgMTE2NTMwLCAxMTY1MzYsIDExNjU0MiwgCisgICAgMTE2NTQ3LCAxMTY1NTMsIDExNjU1OSwgMTE2NTY0LCAxMTY1NjksIDExNjU3NSwgMTE2NTgwLCAxMTY1ODYsIDExNjU5MiwgCisgICAgMTE2NTk3LCAxMTY2MDMsIDExNjYwOSwgMTE2NjE0LCAxMTY2MjAsIDExNjYyNiwgMTE2NjMyLCAxMTY2MzgsIDExNjY0NCwgCisgICAgMTE2NjQ5LCAxMTY2NTUsIDExNjY2MSwgMTE2NjY3LCAxMTY2NzIsIDExNjY3OCwgMTE2Njg0LCAxMTY2OTAsIDExNjY5NSwgCisgICAgMTE2NzAxLCAxMTY3MDcsIDExNjcxMiwgMTE2NzE3LCAxMTY3MjMsIDExNjcyOCwgMTE2NzM0LCAxMTY3NDAsIDExNjc0NSwgCisgICAgMTE2NzUxLCAxMTY3NTcsIDExNjc2MiwgMTE2NzY4LCAxMTY3NzQsIDExNjc4MCwgMTE2Nzg2LCAxMTY3OTIsIDExNjc5NiwgCisgICAgMTE2ODAxLCAxMTY4MDYsIDExNjgxMSwgMTE2ODE1LCAxMTY4MjAsIDExNjgyNSwgMTE2ODMwLCAxMTY4MzQsIDExNjgzOSwgCisgICAgMTE2ODQ0LCAxMTY4NDgsIDExNjg1MiwgMTE2ODU3LCAxMTY4NjEsIDExNjg2NiwgMTE2ODcxLCAxMTY4NzUsIDExNjg4MCwgCisgICAgMTE2ODg1LCAxMTY4ODksIDExNjg5NCwgMTE2ODk5LCAxMTY5MDQsIDExNjkwOSwgMTE2OTE0LCAxMTY5MTgsIDExNjkyMywgCisgICAgMTE2OTI4LCAxMTY5MzMsIDExNjkzNywgMTE2OTQyLCAxMTY5NDcsIDExNjk1MiwgMTE2OTU2LCAxMTY5NjEsIDExNjk2NiwgCisgICAgMTE2OTcwLCAxMTY5NzQsIDExNjk3OSwgMTE2OTgzLCAxMTY5ODgsIDExNjk5MywgMTE2OTk3LCAxMTcwMDIsIDExNzAwNywgCisgICAgMTE3MDExLCAxMTcwMTYsIDExNzAyMSwgMTE3MDI2LCAxMTcwMzEsIDExNzAzNiwgMTE3MDQxLCAxMTcwNDcsIDExNzA1MywgCisgICAgMTE3MDU5LCAxMTcwNjQsIDExNzA3MCwgMTE3MDc2LCAxMTcwODIsIDExNzA4NywgMTE3MDkzLCAxMTcwOTksIDExNzEwNCwgCisgICAgMTE3MTA5LCAxMTcxMTUsIDExNzEyMCwgMTE3MTI2LCAxMTcxMzIsIDExNzEzNywgMTE3MTQzLCAxMTcxNDksIDExNzE1NCwgCisgICAgMTE3MTYwLCAxMTcxNjYsIDExNzE3MiwgMTE3MTc4LCAxMTcxODQsIDExNzE4OSwgMTE3MTk1LCAxMTcyMDEsIDExNzIwNywgCisgICAgMTE3MjEyLCAxMTcyMTgsIDExNzIyNCwgMTE3MjMwLCAxMTcyMzUsIDExNzI0MSwgMTE3MjQ3LCAxMTcyNTIsIDExNzI1NywgCisgICAgMTE3MjYzLCAxMTcyNjgsIDExNzI3NCwgMTE3MjgwLCAxMTcyODUsIDExNzI5MSwgMTE3Mjk3LCAxMTczMDIsIDExNzMwOCwgCisgICAgMTE3MzE0LCAxMTczMjAsIDExNzMyNiwgMTE3MzMyLCAxMTczMzcsIDExNzM0MywgMTE3MzQ5LCAxMTczNTUsIDExNzM2MCwgCisgICAgMTE3MzY2LCAxMTczNzIsIDExNzM3OCwgMTE3MzgzLCAxMTczODksIDExNzM5NSwgMTE3NDAwLCAxMTc0MDUsIDExNzQxMSwgCisgICAgMTE3NDE2LCAxMTc0MjIsIDExNzQyOCwgMTE3NDMzLCAxMTc0MzksIDExNzQ0NSwgMTE3NDUwLCAxMTc0NTYsIDExNzQ2MiwgCisgICAgMTE3NDY4LCAxMTc0NzQsIDExNzQ4MCwgMTE3NDg1LCAxMTc0OTEsIDExNzQ5NywgMTE3NTAzLCAxMTc1MDgsIDExNzUxNCwgCisgICAgMTE3NTIwLCAxMTc1MjYsIDExNzUzMSwgMTE3NTM3LCAxMTc1NDMsIDExNzU0OCwgMTE3NTUzLCAxMTc1NTksIDExNzU2NCwgCisgICAgMTE3NTcwLCAxMTc1NzYsIDExNzU4MSwgMTE3NTg3LCAxMTc1OTMsIDExNzU5OCwgMTE3NjA0LCAxMTc2MTAsIDExNzYxNiwgCisgICAgMTE3NjIyLCAxMTc2MjgsIDExNzYzNCwgMTE3NjQxLCAxMTc2NDgsIDExNzY1NSwgMTE3NjYxLCAxMTc2NjgsIDExNzY3NSwgCisgICAgMTE3NjgyLCAxMTc2ODgsIDExNzY5NSwgMTE3NzAyLCAxMTc3MDgsIDExNzcxNCwgMTE3NzIxLCAxMTc3MjcsIDExNzczNCwgCisgICAgMTE3NzQxLCAxMTc3NDcsIDExNzc1NCwgMTE3NzYxLCAxMTc3NjcsIDExNzc3NCwgMTE3NzgxLCAxMTc3ODgsIDExNzc5NSwgCisgICAgMTE3ODAyLCAxMTc4MDgsIDExNzgxNSwgMTE3ODIyLCAxMTc4MjksIDExNzgzNSwgMTE3ODQyLCAxMTc4NDksIDExNzg1NiwgCisgICAgMTE3ODYyLCAxMTc4NjksIDExNzg3NiwgMTE3ODgyLCAxMTc4ODgsIDExNzg5NSwgMTE3OTAxLCAxMTc5MDgsIDExNzkxNSwgCisgICAgMTE3OTIxLCAxMTc5MjgsIDExNzkzNSwgMTE3OTQxLCAxMTc5NDgsIDExNzk1NSwgMTE3OTYyLCAxMTc5NjksIDExNzk3NiwgCisgICAgMTE3OTgxLCAxMTc5ODcsIDExNzk5MywgMTE3OTk5LCAxMTgwMDQsIDExODAxMCwgMTE4MDE2LCAxMTgwMjIsIDExODAyNywgCisgICAgMTE4MDMzLCAxMTgwMzksIDExODA0NCwgMTE4MDQ5LCAxMTgwNTUsIDExODA2MCwgMTE4MDY2LCAxMTgwNzIsIDExODA3NywgCisgICAgMTE4MDgzLCAxMTgwODksIDExODA5NCwgMTE4MTAwLCAxMTgxMDYsIDExODExMiwgMTE4MTE4LCAxMTgxMjQsIDExODEyOSwgCisgICAgMTE4MTM1LCAxMTgxNDEsIDExODE0NywgMTE4MTUyLCAxMTgxNTgsIDExODE2NCwgMTE4MTcwLCAxMTgxNzUsIDExODE4MSwgCisgICAgMTE4MTg3LCAxMTgxOTIsIDExODE5NywgMTE4MjAzLCAxMTgyMDgsIDExODIxNCwgMTE4MjIwLCAxMTgyMjUsIDExODIzMSwgCisgICAgMTE4MjM3LCAxMTgyNDIsIDExODI0OCwgMTE4MjU0LCAxMTgyNjAsIDExODI2NiwgMTE4MjcyLCAxMTgyNzgsIDAsIDAsIAorICAgIDExODI4NSwgMTE4MjkwLCAxMTgyOTUsIDExODMwMCwgMTE4MzA1LCAxMTgzMTAsIDExODMxNSwgMTE4MzIwLCAxMTgzMjUsIAorICAgIDExODMzMCwgMTE4MzM1LCAxMTgzNDAsIDExODM0NSwgMTE4MzUwLCAxMTgzNTUsIDExODM2MCwgMTE4MzY1LCAxMTgzNzAsIAorICAgIDExODM3NiwgMTE4MzgxLCAxMTgzODYsIDExODM5MSwgMTE4Mzk2LCAxMTg0MDEsIDExODQwNiwgMTE4NDExLCAxMTg0MTUsIAorICAgIDExODQyMCwgMTE4NDI1LCAxMTg0MzAsIDExODQzNSwgMTE4NDQwLCAxMTg0NDUsIDExODQ1MCwgMTE4NDU1LCAxMTg0NjAsIAorICAgIDExODQ2NSwgMTE4NDcwLCAxMTg0NzUsIDExODQ4MCwgMTE4NDg1LCAxMTg0OTAsIDExODQ5NSwgMTE4NTAwLCAxMTg1MDYsIAorICAgIDExODUxMSwgMTE4NTE2LCAxMTg1MjEsIDExODUyNiwgMTE4NTMxLCAxMTg1MzYsIDExODU0MSwgMTE4NTQ3LCAxMTg1NTIsIAorICAgIDExODU1NywgMTE4NTYyLCAxMTg1NjcsIDExODU3MiwgMTE4NTc3LCAxMTg1ODIsIDExODU4NywgMTE4NTkyLCAxMTg1OTcsIAorICAgIDExODYwMiwgMTE4NjA3LCAxMTg2MTIsIDExODYxNywgMTE4NjIyLCAxMTg2MjcsIDExODYzMiwgMTE4NjM3LCAxMTg2NDIsIAorICAgIDExODY0NywgMTE4NjUyLCAxMTg2NTcsIDExODY2MiwgMTE4NjY4LCAxMTg2NzMsIDExODY3OCwgMTE4NjgzLCAxMTg2ODgsIAorICAgIDExODY5MywgMTE4Njk4LCAxMTg3MDMsIDExODcwNywgMTE4NzEyLCAxMTg3MTcsIDExODcyMiwgMTE4NzI3LCAxMTg3MzIsIAorICAgIDExODczNywgMTE4NzQyLCAxMTg3NDcsIDExODc1MiwgMTE4NzU3LCAxMTg3NjIsIDExODc2NywgMTE4NzcyLCAxMTg3NzcsIAorICAgIDExODc4MiwgMTE4Nzg3LCAxMTg3OTIsIDExODc5OCwgMTE4ODAzLCAxMTg4MDgsIDExODgxMywgMTE4ODE4LCAxMTg4MjMsIAorICAgIDExODgyOCwgMTE4ODMzLCAxMTg4MzksIDExODg0NCwgMTE4ODQ5LCAxMTg4NTQsIDExODg1OSwgMTE4ODY0LCAxMTg4NjksIAorICAgIDExODg3NSwgMTE4ODgxLCAxMTg4ODcsIDExODg5MywgMTE4ODk5LCAxMTg5MDUsIDExODkxMSwgMTE4OTE3LCAxMTg5MjMsIAorICAgIDExODkyOSwgMTE4OTM1LCAxMTg5NDEsIDExODk0NywgMTE4OTUzLCAxMTg5NTksIDExODk2NSwgMTE4OTcxLCAxMTg5NzgsIAorICAgIDExODk4NCwgMTE4OTkwLCAxMTg5OTYsIDExOTAwMiwgMTE5MDA4LCAxMTkwMTQsIDExOTAyMCwgMTE5MDI1LCAxMTkwMzEsIAorICAgIDExOTAzNywgMTE5MDQzLCAxMTkwNDksIDExOTA1NSwgMTE5MDYxLCAxMTkwNjcsIDExOTA3MywgMTE5MDc5LCAxMTkwODUsIAorICAgIDExOTA5MSwgMTE5MDk3LCAxMTkxMDMsIDExOTEwOSwgMTE5MTE1LCAxMTkxMjEsIDExOTEyNywgMTE5MTM0LCAxMTkxNDAsIAorICAgIDExOTE0NiwgMTE5MTUyLCAxMTkxNTgsIDExOTE2NCwgMTE5MTcwLCAxMTkxNzYsIDExOTE4MywgMTE5MTg5LCAxMTkxOTUsIAorICAgIDExOTIwMSwgMTE5MjA3LCAxMTkyMTMsIDExOTIxOSwgMTE5MjI1LCAxMTkyMzEsIDExOTIzNywgMTE5MjQzLCAxMTkyNDksIAorICAgIDExOTI1NSwgMTE5MjYxLCAxMTkyNjcsIDExOTI3MywgMTE5Mjc5LCAxMTkyODUsIDExOTI5MSwgMTE5Mjk3LCAxMTkzMDMsIAorICAgIDExOTMwOSwgMTE5MzE1LCAxMTkzMjEsIDExOTMyOCwgMTE5MzM0LCAxMTkzNDAsIDExOTM0NiwgMTE5MzUyLCAxMTkzNTgsIAorICAgIDExOTM2NCwgMTE5MzcwLCAxMTkzNzUsIDExOTM4MSwgMTE5Mzg3LCAxMTkzOTMsIDExOTM5OSwgMTE5NDA1LCAxMTk0MTEsIAorICAgIDExOTQxNywgMTE5NDIzLCAxMTk0MjksIDExOTQzNSwgMTE5NDQxLCAxMTk0NDcsIDExOTQ1MywgMTE5NDU5LCAxMTk0NjUsIAorICAgIDExOTQ3MSwgMTE5NDc3LCAxMTk0ODQsIDExOTQ5MCwgMTE5NDk2LCAxMTk1MDIsIDExOTUwOCwgMTE5NTE0LCAxMTk1MjAsIAorICAgIDExOTUyNiwgMTE5NTMzLCAxMTk1MzksIDExOTU0NSwgMTE5NTUxLCAxMTk1NTcsIDExOTU2MywgMTE5NTY5LCAxMTk1NzYsIAorICAgIDExOTU4MywgMTE5NTkwLCAxMTk1OTcsIDExOTYwNCwgMTE5NjExLCAxMTk2MTgsIDExOTYyNSwgMTE5NjMyLCAxMTk2MzksIAorICAgIDExOTY0NiwgMTE5NjUzLCAxMTk2NjAsIDExOTY2NywgMTE5Njc0LCAxMTk2ODEsIDExOTY4OCwgMTE5Njk2LCAxMTk3MDMsIAorICAgIDExOTcxMCwgMTE5NzE3LCAxMTk3MjQsIDExOTczMSwgMTE5NzM4LCAxMTk3NDUsIDExOTc1MSwgMTE5NzU4LCAxMTk3NjUsIAorICAgIDExOTc3MiwgMTE5Nzc5LCAxMTk3ODYsIDExOTc5MywgMTE5ODAwLCAxMTk4MDcsIDExOTgxNCwgMTE5ODIxLCAxMTk4MjgsIAorICAgIDExOTgzNSwgMTE5ODQyLCAxMTk4NDksIDExOTg1NiwgMTE5ODYzLCAxMTk4NzAsIDExOTg3OCwgMTE5ODg1LCAxMTk4OTIsIAorICAgIDExOTg5OSwgMTE5OTA2LCAxMTk5MTMsIDExOTkyMCwgMTE5OTI3LCAxMTk5MzUsIDExOTk0MiwgMTE5OTQ5LCAxMTk5NTYsIAorICAgIDExOTk2MywgMTE5OTcwLCAxMTk5NzcsIDExOTk4MiwgMCwgMCwgMTE5OTg3LCAxMTk5OTIsIDExOTk5NiwgMTIwMDAwLCAKKyAgICAxMjAwMDQsIDEyMDAwOCwgMTIwMDEyLCAxMjAwMTYsIDEyMDAyMCwgMTIwMDI0LCAxMjAwMjgsIDEyMDAzMywgMTIwMDM3LCAKKyAgICAxMjAwNDEsIDEyMDA0NSwgMTIwMDQ5LCAxMjAwNTMsIDEyMDA1NywgMTIwMDYxLCAxMjAwNjUsIDEyMDA2OSwgMTIwMDc0LCAKKyAgICAxMjAwNzgsIDEyMDA4MiwgMTIwMDg2LCAxMjAwOTAsIDEyMDA5NCwgMTIwMDk4LCAxMjAxMDIsIDEyMDEwNiwgMTIwMTEwLCAKKyAgICAxMjAxMTYsIDEyMDEyMSwgMTIwMTI2LCAxMjAxMzEsIDEyMDEzNiwgMTIwMTQxLCAxMjAxNDYsIDEyMDE1MSwgMTIwMTU2LCAKKyAgICAxMjAxNjEsIDEyMDE2NywgMTIwMTcyLCAxMjAxNzcsIDEyMDE4MiwgMTIwMTg3LCAxMjAxOTIsIDEyMDE5NywgMTIwMjAyLCAKKyAgICAxMjAyMDcsIDEyMDIxMiwgMTIwMjE2LCAxMjAyMjAsIDEyMDIyNCwgMCwgMTIwMjI4LCAxMjAyMzIsIDEyMDIzNiwgCisgICAgMTIwMjQwLCAxMjAyNDQsIDEyMDI0OCwgMTIwMjUyLCAxMjAyNTYsIDEyMDI2MCwgMTIwMjY0LCAxMjAyNjgsIDEyMDI3MiwgCisgICAgMTIwMjc2LCAxMjAyODAsIDEyMDI4NCwgMTIwMjg4LCAxMjAyOTIsIDEyMDI5NiwgMTIwMzAwLCAxMjAzMDQsIDEyMDMwOCwgCisgICAgMTIwMzEyLCAxMjAzMTYsIDEyMDMyMCwgMTIwMzI2LCAxMjAzMzIsIDEyMDMzOCwgMCwgMTIwMzQ0LCAxMjAzNDksIDAsIAorICAgIDEyMDM1NCwgMCwgMCwgMTIwMzU5LCAwLCAxMjAzNjQsIDEyMDM2OSwgMTIwMzc0LCAxMjAzNzksIDEyMDM4NCwgMTIwMzg5LCAKKyAgICAxMjAzOTQsIDEyMDM5OSwgMTIwNDA0LCAxMjA0MDksIDAsIDEyMDQxNCwgMTIwNDE5LCAxMjA0MjQsIDEyMDQyOSwgMCwgCisgICAgMTIwNDM0LCAwLCAxMjA0MzksIDAsIDAsIDAsIDAsIDAsIDAsIDEyMDQ0NCwgMCwgMCwgMCwgMCwgMTIwNDUwLCAwLCAKKyAgICAxMjA0NTYsIDAsIDEyMDQ2MiwgMCwgMTIwNDY4LCAxMjA0NzQsIDEyMDQ4MCwgMCwgMTIwNDg2LCAxMjA0OTIsIDAsIAorICAgIDEyMDQ5OCwgMCwgMCwgMTIwNTA0LCAwLCAxMjA1MTAsIDAsIDEyMDUxNiwgMCwgMTIwNTIyLCAwLCAxMjA1MzAsIDAsIAorICAgIDEyMDUzOCwgMTIwNTQ0LCAwLCAxMjA1NTAsIDAsIDAsIDEyMDU1NiwgMTIwNTYyLCAxMjA1NjgsIDEyMDU3NCwgMCwgCisgICAgMTIwNTgwLCAxMjA1ODYsIDEyMDU5MiwgMTIwNTk4LCAxMjA2MDQsIDEyMDYxMCwgMTIwNjE2LCAwLCAxMjA2MjIsIAorICAgIDEyMDYyOCwgMTIwNjM0LCAxMjA2NDAsIDAsIDEyMDY0NiwgMTIwNjUyLCAxMjA2NTgsIDEyMDY2NCwgMCwgMTIwNjcyLCAwLCAKKyAgICAxMjA2ODAsIDEyMDY4NiwgMTIwNjkyLCAxMjA2OTgsIDEyMDcwNCwgMTIwNzEwLCAxMjA3MTYsIDEyMDcyMiwgMTIwNzI4LCAKKyAgICAxMjA3MzQsIDAsIDEyMDc0MCwgMTIwNzQ2LCAxMjA3NTIsIDEyMDc1OCwgMTIwNzY0LCAxMjA3NzAsIDEyMDc3NiwgCisgICAgMTIwNzgyLCAxMjA3ODgsIDEyMDc5NCwgMTIwODAwLCAxMjA4MDYsIDEyMDgxMiwgMTIwODE4LCAxMjA4MjQsIDEyMDgzMCwgCisgICAgMTIwODM2LCAwLCAwLCAwLCAwLCAwLCAxMjA4NDIsIDEyMDg0NywgMTIwODUyLCAwLCAxMjA4NTcsIDEyMDg2MiwgMTIwODY3LCAKKyAgICAxMjA4NzIsIDEyMDg3NywgMCwgMTIwODgyLCAxMjA4ODcsIDEyMDg5MiwgMTIwODk3LCAxMjA5MDIsIDEyMDkwNywgCisgICAgMTIwOTEyLCAxMjA5MTcsIDEyMDkyMiwgMTIwOTI3LCAxMjA5MzIsIDEyMDkzNywgMTIwOTQyLCAxMjA5NDcsIDEyMDk1MiwgCisgICAgMTIwOTU3LCAxMjA5NjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyMjQ0NiwgCi0gICAgMTIyNDUxLCAxMjI0NTYsIDEyMjQ2MSwgMTIyNDY2LCAxMjI0NzEsIDEyMjQ3NiwgMTIyNDgzLCAxMjI0OTAsIDEyMjQ5NywgCi0gICAgMTIyNTA0LCAxMjI1MDksIDEyMjUxNCwgMTIyNTE5LCAxMjI1MjQsIDEyMjUzMSwgMTIyNTM3LCAxMjI1NDQsIDEyMjU1MSwgCi0gICAgMTIyNTU4LCAxMjI1NjMsIDEyMjU2OCwgMTIyNTczLCAxMjI1NzgsIDEyMjU4MywgMTIyNTkwLCAxMjI1OTcsIDEyMjYwMiwgCi0gICAgMTIyNjA3LCAxMjI2MTQsIDEyMjYyMSwgMTIyNjI5LCAxMjI2MzcsIDEyMjY0NCwgMTIyNjUxLCAxMjI2NTksIDEyMjY2NywgCi0gICAgMTIyNjc1LCAxMjI2ODIsIDEyMjY5MiwgMTIyNzAzLCAxMjI3MDgsIDEyMjcxNSwgMTIyNzIyLCAxMjI3MjksIDEyMjczNywgCi0gICAgMTIyNzQ1LCAxMjI3NTYsIDEyMjc2NCwgMTIyNzcyLCAxMjI3ODAsIDEyMjc4NSwgMTIyNzkwLCAxMjI3OTUsIDEyMjgwMCwgCi0gICAgMTIyODA1LCAxMjI4MTAsIDEyMjgxNSwgMTIyODIwLCAxMjI4MjUsIDEyMjgzMCwgMTIyODM1LCAxMjI4NDAsIDEyMjg0NywgCi0gICAgMTIyODUyLCAxMjI4NTcsIDEyMjg2NCwgMTIyODY5LCAxMjI4NzQsIDEyMjg3OSwgMTIyODg0LCAxMjI4ODksIDEyMjg5NCwgCi0gICAgMTIyODk5LCAxMjI5MDQsIDEyMjkwOSwgMTIyOTE0LCAxMjI5MTksIDEyMjkyNCwgMTIyOTMxLCAxMjI5MzksIDEyMjk0NCwgCi0gICAgMTIyOTQ5LCAxMjI5NTYsIDEyMjk2MSwgMTIyOTY2LCAxMjI5NzEsIDEyMjk3OCwgMTIyOTgzLCAxMjI5OTAsIDEyMjk5NSwgCi0gICAgMTIzMDAyLCAxMjMwMDcsIDEyMzAxNiwgMTIzMDI1LCAxMjMwMzAsIDEyMzAzNSwgMTIzMDQwLCAxMjMwNDUsIDEyMzA1MCwgCi0gICAgMTIzMDU1LCAxMjMwNjAsIDEyMzA2NSwgMTIzMDcwLCAxMjMwNzUsIDEyMzA4MCwgMTIzMDg1LCAxMjMwOTAsIDEyMzA5OCwgCi0gICAgMTIzMTA2LCAxMjMxMTEsIDEyMzExNiwgMTIzMTIxLCAxMjMxMjYsIDEyMzEzMSwgMTIzMTM3LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAxMjMxNDMsIDEyMzE0NywgMTIzMTUxLCAxMjMxNTUsIDEyMzE1OSwgMTIzMTYzLCAxMjMxNjcsIAotICAgIDEyMzE3MSwgMTIzMTc1LCAxMjMxNzksIDEyMzE4MywgMTIzMTg3LCAxMjMxOTEsIDEyMzE5NSwgMTIzMTk5LCAxMjMyMDMsIAotICAgIDEyMzIwNywgMTIzMjExLCAxMjMyMTUsIDEyMzIxOSwgMTIzMjIzLCAxMjMyMjcsIDEyMzIzMSwgMTIzMjM1LCAxMjMyMzksIAotICAgIDEyMzI0MywgMTIzMjQ3LCAxMjMyNTEsIDEyMzI1NSwgMTIzMjU5LCAxMjMyNjMsIDEyMzI2NywgMTIzMjcxLCAxMjMyNzUsIAotICAgIDEyMzI3OSwgMTIzMjgzLCAxMjMyODcsIDEyMzI5MSwgMTIzMjk1LCAxMjMyOTksIDEyMzMwMywgMTIzMzA3LCAxMjMzMTEsIAotICAgIDEyMzMxNSwgMTIzMzE5LCAxMjMzMjMsIDEyMzMyNywgMTIzMzMxLCAxMjMzMzUsIDEyMzMzOSwgMTIzMzQzLCAxMjMzNDcsIAotICAgIDEyMzM1MSwgMTIzMzU1LCAxMjMzNTksIDEyMzM2MywgMTIzMzY3LCAxMjMzNzEsIDEyMzM3NSwgMTIzMzc5LCAxMjMzODMsIAotICAgIDEyMzM4NywgMTIzMzkxLCAxMjMzOTUsIDEyMzM5OSwgMTIzNDAzLCAxMjM0MDcsIDEyMzQxMSwgMTIzNDE1LCAxMjM0MTksIAotICAgIDEyMzQyMywgMTIzNDI3LCAxMjM0MzEsIDEyMzQzNSwgMTIzNDM5LCAxMjM0NDMsIDEyMzQ0NywgMTIzNDUxLCAxMjM0NTUsIAotICAgIDEyMzQ1OSwgMTIzNDYzLCAxMjM0NjcsIDEyMzQ3MSwgMTIzNDc1LCAxMjM0NzksIDEyMzQ4MywgMTIzNDg3LCAxMjM0OTEsIAotICAgIDEyMzQ5NSwgMTIzNDk5LCAxMjM1MDMsIDEyMzUwNywgMTIzNTExLCAxMjM1MTUsIDEyMzUxOSwgMTIzNTIzLCAxMjM1MjcsIAotICAgIDEyMzUzMSwgMTIzNTM1LCAxMjM1MzksIDEyMzU0MywgMTIzNTQ3LCAxMjM1NTEsIDEyMzU1NSwgMTIzNTU5LCAxMjM1NjMsIAotICAgIDEyMzU2NywgMTIzNTcxLCAxMjM1NzUsIDEyMzU3OSwgMTIzNTgzLCAxMjM1ODcsIDEyMzU5MSwgMTIzNTk1LCAxMjM1OTksIAotICAgIDEyMzYwMywgMTIzNjA3LCAxMjM2MTEsIDEyMzYxNSwgMTIzNjE5LCAxMjM2MjMsIDEyMzYyNywgMTIzNjMxLCAxMjM2MzUsIAotICAgIDEyMzYzOSwgMTIzNjQzLCAxMjM2NDcsIDEyMzY1MSwgMTIzNjU1LCAxMjM2NTksIDEyMzY2MywgMTIzNjY3LCAxMjM2NzEsIAotICAgIDEyMzY3NSwgMTIzNjc5LCAxMjM2ODMsIDEyMzY4NywgMTIzNjkxLCAxMjM2OTUsIDEyMzY5OSwgMTIzNzAzLCAxMjM3MDcsIAotICAgIDEyMzcxMSwgMTIzNzE1LCAxMjM3MTksIDEyMzcyMywgMTIzNzI3LCAxMjM3MzEsIDEyMzczNSwgMTIzNzM5LCAxMjM3NDMsIAotICAgIDEyMzc0NywgMTIzNzUxLCAxMjM3NTUsIDEyMzc1OSwgMTIzNzYzLCAxMjM3NjcsIDEyMzc3MSwgMTIzNzc1LCAxMjM3NzksIAotICAgIDEyMzc4MywgMTIzNzg3LCAxMjM3OTEsIDEyMzc5NSwgMTIzNzk5LCAxMjM4MDMsIDEyMzgwNywgMTIzODExLCAxMjM4MTUsIAotICAgIDEyMzgxOSwgMTIzODIzLCAxMjM4MjcsIDEyMzgzMSwgMTIzODM1LCAxMjM4MzksIDEyMzg0MywgMTIzODQ3LCAxMjM4NTEsIAotICAgIDEyMzg1NSwgMTIzODU5LCAxMjM4NjMsIDEyMzg2NywgMTIzODcxLCAxMjM4NzUsIDEyMzg3OSwgMTIzODgzLCAxMjM4ODcsIAotICAgIDEyMzg5MSwgMTIzODk1LCAxMjM4OTksIDEyMzkwMywgMTIzOTA3LCAxMjM5MTEsIDEyMzkxNSwgMTIzOTE5LCAxMjM5MjMsIAotICAgIDEyMzkyNywgMTIzOTMxLCAxMjM5MzUsIDEyMzkzOSwgMTIzOTQzLCAxMjM5NDcsIDEyMzk1MSwgMTIzOTU1LCAxMjM5NTksIAotICAgIDEyMzk2MywgMTIzOTY3LCAxMjM5NzEsIDEyMzk3NSwgMTIzOTc5LCAxMjM5ODMsIDEyMzk4NywgMTIzOTkxLCAxMjM5OTUsIAotICAgIDEyMzk5OSwgMTI0MDAzLCAxMjQwMDcsIDEyNDAxMSwgMTI0MDE1LCAxMjQwMTksIDEyNDAyMywgMTI0MDI3LCAxMjQwMzEsIAotICAgIDEyNDAzNSwgMTI0MDM5LCAxMjQwNDMsIDEyNDA0NywgMTI0MDUxLCAxMjQwNTUsIDEyNDA1OSwgMTI0MDYzLCAxMjQwNjcsIAotICAgIDEyNDA3MSwgMTI0MDc1LCAxMjQwNzksIDEyNDA4MywgMTI0MDg3LCAxMjQwOTEsIDEyNDA5NSwgMTI0MDk5LCAxMjQxMDMsIAotICAgIDEyNDEwNywgMTI0MTExLCAxMjQxMTUsIDEyNDExOSwgMTI0MTIzLCAxMjQxMjcsIDEyNDEzMSwgMTI0MTM1LCAxMjQxMzksIAotICAgIDEyNDE0MywgMTI0MTQ3LCAxMjQxNTEsIDEyNDE1NSwgMTI0MTU5LCAxMjQxNjMsIDEyNDE2NywgMTI0MTcxLCAxMjQxNzUsIAotICAgIDEyNDE3OSwgMTI0MTgzLCAxMjQxODcsIDEyNDE5MSwgMTI0MTk1LCAxMjQxOTksIDEyNDIwMywgMTI0MjA3LCAxMjQyMTEsIAotICAgIDEyNDIxNSwgMTI0MjE5LCAxMjQyMjMsIDEyNDIyNywgMTI0MjMxLCAxMjQyMzUsIDEyNDIzOSwgMTI0MjQzLCAxMjQyNDcsIAotICAgIDEyNDI1MSwgMTI0MjU1LCAxMjQyNTksIDEyNDI2MywgMTI0MjY3LCAxMjQyNzEsIDEyNDI3NSwgMTI0Mjc5LCAxMjQyODMsIAotICAgIDEyNDI4NywgMTI0MjkxLCAxMjQyOTUsIDEyNDI5OSwgMTI0MzAzLCAxMjQzMDcsIDEyNDMxMSwgMTI0MzE1LCAxMjQzMTksIAotICAgIDEyNDMyMywgMTI0MzI3LCAxMjQzMzEsIDEyNDMzNSwgMTI0MzM5LCAxMjQzNDMsIDEyNDM0NywgMTI0MzUxLCAxMjQzNTUsIAotICAgIDEyNDM1OSwgMTI0MzYzLCAxMjQzNjcsIDEyNDM3MSwgMTI0Mzc1LCAxMjQzNzksIDEyNDM4MywgMTI0Mzg3LCAxMjQzOTEsIAotICAgIDEyNDM5NSwgMTI0Mzk5LCAxMjQ0MDMsIDEyNDQwNywgMTI0NDExLCAxMjQ0MTUsIDEyNDQxOSwgMTI0NDIzLCAxMjQ0MjcsIAotICAgIDEyNDQzMSwgMTI0NDM1LCAxMjQ0MzksIDEyNDQ0MywgMTI0NDQ3LCAxMjQ0NTEsIDEyNDQ1NSwgMTI0NDU5LCAxMjQ0NjMsIAotICAgIDEyNDQ2NywgMTI0NDcxLCAxMjQ0NzUsIDEyNDQ3OSwgMTI0NDgzLCAxMjQ0ODcsIDEyNDQ5MSwgMTI0NDk1LCAxMjQ0OTksIAotICAgIDEyNDUwMywgMTI0NTA3LCAxMjQ1MTEsIDEyNDUxNSwgMTI0NTE5LCAxMjQ1MjMsIDEyNDUyNywgMTI0NTMxLCAxMjQ1MzUsIAotICAgIDEyNDUzOSwgMTI0NTQzLCAxMjQ1NDcsIDEyNDU1MSwgMTI0NTU1LCAxMjQ1NTksIDEyNDU2MywgMTI0NTY3LCAxMjQ1NzEsIAotICAgIDEyNDU3NSwgMTI0NTc5LCAxMjQ1ODMsIDEyNDU4NywgMTI0NTkxLCAxMjQ1OTUsIDEyNDU5OSwgMTI0NjAzLCAxMjQ2MDcsIAotICAgIDEyNDYxMSwgMTI0NjE1LCAxMjQ2MTksIDEyNDYyMywgMTI0NjI3LCAxMjQ2MzEsIDEyNDYzNSwgMTI0NjM5LCAxMjQ2NDMsIAotICAgIDEyNDY0NywgMTI0NjUxLCAxMjQ2NTUsIDEyNDY1OSwgMTI0NjYzLCAxMjQ2NjcsIDEyNDY3MSwgMTI0Njc1LCAxMjQ2NzksIAotICAgIDEyNDY4MywgMTI0Njg3LCAxMjQ2OTEsIDEyNDY5NSwgMTI0Njk5LCAxMjQ3MDMsIDEyNDcwNywgMTI0NzExLCAxMjQ3MTUsIAotICAgIDEyNDcxOSwgMTI0NzIzLCAxMjQ3MjcsIDEyNDczMSwgMTI0NzM1LCAxMjQ3MzksIDEyNDc0MywgMTI0NzQ3LCAxMjQ3NTEsIAotICAgIDEyNDc1NSwgMTI0NzU5LCAxMjQ3NjMsIDEyNDc2NywgMTI0NzcxLCAxMjQ3NzUsIDEyNDc3OSwgMTI0NzgzLCAxMjQ3ODcsIAotICAgIDEyNDc5MSwgMTI0Nzk1LCAxMjQ3OTksIDEyNDgwMywgMTI0ODA3LCAxMjQ4MTEsIDEyNDgxNSwgMTI0ODE5LCAxMjQ4MjMsIAotICAgIDEyNDgyNywgMTI0ODMxLCAxMjQ4MzUsIDEyNDgzOSwgMTI0ODQzLCAxMjQ4NDcsIDEyNDg1MSwgMTI0ODU1LCAxMjQ4NTksIAotICAgIDEyNDg2MywgMTI0ODY3LCAxMjQ4NzEsIDEyNDg3NSwgMTI0ODc5LCAxMjQ4ODMsIDEyNDg4NywgMTI0ODkxLCAxMjQ4OTUsIAotICAgIDEyNDg5OSwgMTI0OTAzLCAxMjQ5MDcsIDEyNDkxMSwgMTI0OTE1LCAxMjQ5MTksIDEyNDkyMywgMTI0OTI3LCAxMjQ5MzEsIAotICAgIDEyNDkzNSwgMTI0OTM5LCAxMjQ5NDMsIDEyNDk0NywgMTI0OTUxLCAxMjQ5NTUsIDEyNDk1OSwgMTI0OTYzLCAxMjQ5NjcsIAotICAgIDEyNDk3MSwgMTI0OTc1LCAxMjQ5NzksIDEyNDk4MywgMTI0OTg3LCAxMjQ5OTEsIDEyNDk5NSwgMTI0OTk5LCAxMjUwMDMsIAotICAgIDEyNTAwNywgMTI1MDExLCAxMjUwMTUsIDEyNTAxOSwgMTI1MDIzLCAxMjUwMjcsIDEyNTAzMSwgMTI1MDM1LCAxMjUwMzksIAotICAgIDEyNTA0MywgMTI1MDQ3LCAxMjUwNTEsIDEyNTA1NSwgMTI1MDU5LCAxMjUwNjMsIDEyNTA2NywgMTI1MDcxLCAxMjUwNzUsIAotICAgIDEyNTA3OSwgMTI1MDgzLCAxMjUwODcsIDEyNTA5MSwgMTI1MDk1LCAxMjUwOTksIDEyNTEwMywgMTI1MTA3LCAxMjUxMTEsIAotICAgIDEyNTExNSwgMTI1MTE5LCAxMjUxMjMsIDEyNTEyNywgMTI1MTMxLCAxMjUxMzUsIDEyNTEzOSwgMTI1MTQzLCAxMjUxNDcsIAotICAgIDEyNTE1MSwgMTI1MTU1LCAxMjUxNTksIDEyNTE2MywgMTI1MTY3LCAxMjUxNzEsIDEyNTE3NSwgMTI1MTc5LCAxMjUxODMsIAotICAgIDEyNTE4NywgMTI1MTkxLCAxMjUxOTUsIDEyNTE5OSwgMTI1MjAzLCAxMjUyMDcsIDEyNTIxMSwgMTI1MjE1LCAxMjUyMTksIAotICAgIDEyNTIyMywgMTI1MjI3LCAxMjUyMzEsIDEyNTIzNSwgMTI1MjM5LCAxMjUyNDMsIDEyNTI0NywgMTI1MjUxLCAxMjUyNTUsIAotICAgIDEyNTI1OSwgMTI1MjYzLCAxMjUyNjcsIDEyNTI3MSwgMTI1Mjc1LCAxMjUyNzksIDEyNTI4MywgMTI1Mjg3LCAxMjUyOTEsIAotICAgIDEyNTI5NSwgMTI1Mjk5LCAxMjUzMDMsIDEyNTMwNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTIwOTY3LCAxMjA5NzcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDEyMDk4NSwgMTIwOTkyLCAxMjA5OTksIDEyMTAwNiwgMTIxMDEzLCAxMjEwMjAsIDEyMTAyNywgCisgICAgMTIxMDMzLCAxMjEwNDAsIDEyMTA0NywgMTIxMDU0LCAxMjEwNjIsIDEyMTA3MCwgMTIxMDc4LCAxMjEwODYsIDEyMTA5NCwgCisgICAgMTIxMTAyLCAxMjExMDksIDEyMTExNiwgMTIxMTIzLCAxMjExMzEsIDEyMTEzOSwgMTIxMTQ3LCAxMjExNTUsIDEyMTE2MywgCisgICAgMTIxMTcxLCAxMjExNzgsIDEyMTE4NSwgMTIxMTkyLCAxMjEyMDAsIDEyMTIwOCwgMTIxMjE2LCAxMjEyMjQsIDEyMTIzMiwgCisgICAgMTIxMjQwLCAxMjEyNDUsIDEyMTI1MCwgMTIxMjU1LCAxMjEyNjAsIDEyMTI2NSwgMTIxMjcwLCAxMjEyNzUsIDEyMTI4MCwgCisgICAgMTIxMjg1LCAwLCAwLCAwLCAwLCAxMjEyOTAsIDEyMTI5NSwgMTIxMjk5LCAxMjEzMDMsIDEyMTMwNywgMTIxMzExLCAKKyAgICAxMjEzMTUsIDEyMTMxOSwgMTIxMzIzLCAxMjEzMjcsIDEyMTMzMSwgMTIxMzM1LCAxMjEzMzksIDEyMTM0MywgMTIxMzQ3LCAKKyAgICAxMjEzNTEsIDEyMTM1NSwgMTIxMzU5LCAxMjEzNjMsIDEyMTM2NywgMTIxMzcxLCAxMjEzNzUsIDEyMTM3OSwgMTIxMzgzLCAKKyAgICAxMjEzODcsIDEyMTM5MSwgMTIxMzk1LCAxMjEzOTksIDEyMTQwMywgMTIxNDA3LCAxMjE0MTEsIDEyMTQxNSwgMTIxNDE5LCAKKyAgICAxMjE0MjMsIDEyMTQyNywgMTIxNDMxLCAxMjE0MzUsIDEyMTQzOSwgMTIxNDQzLCAxMjE0NDcsIDEyMTQ1MSwgMTIxNDU1LCAKKyAgICAxMjE0NTksIDEyMTQ2MywgMTIxNDY3LCAxMjE0NzEsIDEyMTQ3NSwgMTIxNDc5LCAxMjE0ODMsIDEyMTQ4NywgMTIxNDkxLCAKKyAgICAxMjE0OTYsIDEyMTUwMCwgMTIxNTA0LCAxMjE1MDgsIDEyMTUxMiwgMTIxNTE2LCAxMjE1MjAsIDEyMTUyNCwgMTIxNTI4LCAKKyAgICAxMjE1MzIsIDEyMTUzNiwgMTIxNTQwLCAxMjE1NDQsIDEyMTU0OCwgMTIxNTUyLCAxMjE1NTYsIDEyMTU2MCwgMTIxNTY0LCAKKyAgICAxMjE1NjgsIDEyMTU3MiwgMTIxNTc2LCAxMjE1ODAsIDEyMTU4NCwgMTIxNTg4LCAxMjE1OTIsIDEyMTU5NiwgMTIxNjAwLCAKKyAgICAxMjE2MDQsIDEyMTYwOCwgMTIxNjEyLCAxMjE2MTYsIDEyMTYyMCwgMTIxNjI0LCAxMjE2MjgsIDEyMTYzMiwgMTIxNjM2LCAKKyAgICAxMjE2NDAsIDEyMTY0NCwgMTIxNjQ4LCAxMjE2NTIsIDEyMTY1NiwgMTIxNjYwLCAxMjE2NjQsIDEyMTY2OCwgMTIxNjcyLCAKKyAgICAxMjE2NzYsIDEyMTY4MCwgMTIxNjg0LCAxMjE2ODgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEyMTY5MiwgMTIxNjk4LCAxMjE3MDcsIDEyMTcxNSwgMTIxNzIzLCAxMjE3MzIsIDEyMTc0MSwgMTIxNzUwLCAxMjE3NTksIAorICAgIDEyMTc2OCwgMTIxNzc3LCAxMjE3ODYsIDEyMTc5NSwgMTIxODA0LCAxMjE4MTMsIDAsIDAsIDEyMTgyMiwgMTIxODMxLCAKKyAgICAxMjE4MzksIDEyMTg0NywgMTIxODU2LCAxMjE4NjUsIDEyMTg3NCwgMTIxODgzLCAxMjE4OTIsIDEyMTkwMSwgMTIxOTEwLCAKKyAgICAxMjE5MTksIDEyMTkyOCwgMTIxOTM3LCAwLCAwLCAxMjE5NDYsIDEyMTk1NSwgMTIxOTYzLCAxMjE5NzEsIDEyMTk4MCwgCisgICAgMTIxOTg5LCAxMjE5OTgsIDEyMjAwNywgMTIyMDE2LCAxMjIwMjUsIDEyMjAzNCwgMTIyMDQzLCAxMjIwNTIsIDEyMjA2MSwgCisgICAgMTIyMDcwLCAwLCAxMjIwNzcsIDEyMjA4NiwgMTIyMDk0LCAxMjIxMDIsIDEyMjExMSwgMTIyMTIwLCAxMjIxMjksIAorICAgIDEyMjEzOCwgMTIyMTQ3LCAxMjIxNTYsIDEyMjE2NSwgMTIyMTc0LCAxMjIxODMsIDEyMjE5MiwgMTIyMjAxLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAxMjIyMDgsIDEyMjIxNSwgMTIyMjIwLCAxMjIyMjQsIDEyMjIyOCwgMTIyMjMyLCAxMjIyMzcsIAorICAgIDEyMjI0MiwgMTIyMjQ3LCAxMjIyNTIsIDEyMjI1NywgMCwgMCwgMCwgMCwgMCwgMTIyMjYyLCAxMjIyNjcsIDEyMjI3MywgCisgICAgMTIyMjc5LCAxMjIyODUsIDEyMjI5MCwgMTIyMjk2LCAxMjIzMDIsIDEyMjMwOCwgMTIyMzEzLCAxMjIzMTksIDEyMjMyNSwgCisgICAgMTIyMzMwLCAxMjIzMzUsIDEyMjM0MSwgMTIyMzQ2LCAxMjIzNTIsIDEyMjM1OCwgMTIyMzYzLCAxMjIzNjksIDEyMjM3NSwgCisgICAgMTIyMzgwLCAxMjIzODYsIDEyMjM5MiwgMTIyMzk4LCAxMjI0MDQsIDEyMjQxMCwgMTIyNDIxLCAxMjI0MjgsIDEyMjQzNCwgCisgICAgMTIyNDM3LCAwLCAxMjI0NDAsIDEyMjQ0NSwgMTIyNDUxLCAxMjI0NTcsIDEyMjQ2MywgMTIyNDY4LCAxMjI0NzQsIAorICAgIDEyMjQ4MCwgMTIyNDg2LCAxMjI0OTEsIDEyMjQ5NywgMTIyNTAzLCAxMjI1MDgsIDEyMjUxMywgMTIyNTE5LCAxMjI1MjQsIAorICAgIDEyMjUzMCwgMTIyNTM2LCAxMjI1NDEsIDEyMjU0NywgMTIyNTUzLCAxMjI1NTgsIDEyMjU2NCwgMTIyNTcwLCAxMjI1NzYsIAorICAgIDEyMjU4MiwgMTIyNTg4LCAxMjI1OTEsIDEyMjU5NCwgMTIyNTk3LCAxMjI2MDAsIDEyMjYwMywgMTIyNjA2LCAxMjI2MTIsIAorICAgIDEyMjYxOSwgMTIyNjI2LCAxMjI2MzMsIDEyMjYzOSwgMTIyNjQ2LCAxMjI2NTMsIDEyMjY2MCwgMTIyNjY2LCAxMjI2NzMsIAorICAgIDEyMjY4MCwgMTIyNjg2LCAxMjI2OTIsIDEyMjY5OSwgMTIyNzA1LCAxMjI3MTIsIDEyMjcxOSwgMTIyNzI1LCAxMjI3MzIsIAorICAgIDEyMjczOSwgMTIyNzQ1LCAxMjI3NTIsIDEyMjc1OSwgMTIyNzY2LCAxMjI3NzMsIDEyMjc4MCwgMTIyNzg1LCAwLCAwLCAwLCAKKyAgICAwLCAxMjI3OTAsIDEyMjc5NiwgMTIyODAzLCAxMjI4MTAsIDEyMjgxNywgMTIyODIzLCAxMjI4MzAsIDEyMjgzNywgCisgICAgMTIyODQ0LCAxMjI4NTAsIDEyMjg1NywgMTIyODY0LCAxMjI4NzAsIDEyMjg3NiwgMTIyODgzLCAxMjI4ODksIDEyMjg5NiwgCisgICAgMTIyOTAzLCAxMjI5MDksIDEyMjkxNiwgMTIyOTIzLCAxMjI5MjksIDEyMjkzNiwgMTIyOTQzLCAxMjI5NTAsIDEyMjk1NywgCisgICAgMTIyOTY0LCAxMjI5NzMsIDEyMjk3NywgMTIyOTgwLCAxMjI5ODMsIDEyMjk4NywgMTIyOTkxLCAxMjI5OTQsIDEyMjk5NywgCisgICAgMTIzMDAwLCAxMjMwMDMsIDEyMzAwNiwgMTIzMDA5LCAxMjMwMTIsIDEyMzAxNSwgMTIzMDE4LCAxMjMwMjQsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyNTMxMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI1MzE1LCAKLSAgICAxMjUzMTgsIDEyNTMyMiwgMTI1MzI2LCAxMjUzMjksIDEyNTMzMywgMTI1MzM3LCAxMjUzNDAsIDEyNTM0MywgMTI1MzQ3LCAKLSAgICAxMjUzNTEsIDEyNTM1NCwgMTI1MzU3LCAxMjUzNjAsIDEyNTM2MywgMTI1MzY4LCAxMjUzNzEsIDEyNTM3NSwgMTI1Mzc4LCAKLSAgICAxMjUzODEsIDEyNTM4NCwgMTI1Mzg3LCAxMjUzOTAsIDEyNTM5MywgMTI1Mzk2LCAxMjUzOTksIDEyNTQwMiwgMTI1NDA1LCAKLSAgICAxMjU0MDgsIDEyNTQxMiwgMTI1NDE2LCAxMjU0MjAsIDEyNTQyNCwgMTI1NDI5LCAxMjU0MzQsIDEyNTQ0MCwgMTI1NDQ2LCAKLSAgICAxMjU0NTIsIDEyNTQ1NywgMTI1NDYzLCAxMjU0NjksIDEyNTQ3NSwgMTI1NDgwLCAxMjU0ODYsIDEyNTQ5MiwgMTI1NDk3LCAKLSAgICAxMjU1MDIsIDEyNTUwNywgMTI1NTEyLCAxMjU1MTgsIDEyNTUyNCwgMTI1NTI5LCAxMjU1MzQsIDEyNTU0MCwgMTI1NTQ1LCAKLSAgICAxMjU1NTEsIDEyNTU1NywgMTI1NTYzLCAxMjU1NjksIDEyNTU3NSwgMTI1NTc5LCAxMjU1ODQsIDEyNTU4OCwgMTI1NTkzLCAKLSAgICAxMjU1OTcsIDEyNTYwMiwgMTI1NjA3LCAxMjU2MTMsIDEyNTYxOSwgMTI1NjI1LCAxMjU2MzAsIDEyNTYzNiwgMTI1NjQyLCAKLSAgICAxMjU2NDgsIDEyNTY1MywgMTI1NjU5LCAxMjU2NjUsIDEyNTY3MCwgMTI1Njc1LCAxMjU2ODAsIDEyNTY4NSwgMTI1NjkxLCAKLSAgICAxMjU2OTcsIDEyNTcwMiwgMTI1NzA3LCAxMjU3MTMsIDEyNTcxOCwgMTI1NzI0LCAxMjU3MzAsIDEyNTczNiwgMTI1NzQyLCAKLSAgICAxMjU3NDgsIDEyNTc1MywgMTI1NzU3LCAxMjU3NjIsIDEyNTc2NSwgMTI1NzY5LCAxMjU3NzIsIDEyNTc3NSwgMTI1Nzc4LCAKLSAgICAxMjU3ODEsIDEyNTc4NCwgMTI1Nzg3LCAxMjU3OTAsIDEyNTc5MywgMTI1Nzk2LCAxMjU3OTksIDEyNTgwMiwgMTI1ODA1LCAKLSAgICAxMjU4MDgsIDEyNTgxMSwgMTI1ODE0LCAxMjU4MTcsIDEyNTgyMCwgMTI1ODIzLCAxMjU4MjYsIDEyNTgyOSwgMTI1ODMyLCAKLSAgICAxMjU4MzUsIDEyNTgzOCwgMTI1ODQxLCAxMjU4NDQsIDEyNTg0NywgMTI1ODUwLCAxMjU4NTMsIDEyNTg1NiwgMTI1ODU5LCAKLSAgICAxMjU4NjIsIDEyNTg2NSwgMTI1ODY4LCAxMjU4NzEsIDEyNTg3NCwgMTI1ODc3LCAxMjU4ODAsIDEyNTg4MywgMTI1ODg2LCAKLSAgICAxMjU4ODksIDEyNTg5MiwgMTI1ODk1LCAxMjU4OTgsIDEyNTkwMSwgMTI1OTA0LCAxMjU5MDcsIDEyNTkxMCwgMTI1OTEzLCAKLSAgICAxMjU5MTYsIDEyNTkxOSwgMTI1OTIyLCAxMjU5MjUsIDEyNTkyOCwgMTI1OTMxLCAxMjU5MzQsIDEyNTkzNywgMTI1OTQwLCAKLSAgICAxMjU5NDMsIDEyNTk0NiwgMTI1OTQ5LCAxMjU5NTIsIDEyNTk1NSwgMTI1OTU4LCAxMjU5NjEsIDEyNTk2NCwgMTI1OTY3LCAKLSAgICAxMjU5NzAsIDEyNTk3MywgMTI1OTc2LCAxMjU5NzksIDEyNTk4MiwgMTI1OTg1LCAxMjU5ODgsIDEyNTk5MSwgMTI1OTk0LCAKLSAgICAxMjU5OTcsIDEyNjAwMCwgMTI2MDAzLCAxMjYwMDYsIDEyNjAwOSwgMTI2MDEyLCAxMjYwMTUsIDEyNjAxOCwgMTI2MDIxLCAKLSAgICAxMjYwMjQsIDEyNjAyNywgMTI2MDMwLCAxMjYwMzMsIDEyNjAzNiwgMTI2MDM5LCAxMjYwNDIsIDEyNjA0NSwgMTI2MDQ4LCAKLSAgICAxMjYwNTEsIDEyNjA1NCwgMTI2MDU3LCAxMjYwNjAsIDEyNjA2MywgMTI2MDY2LCAxMjYwNjksIDEyNjA3MiwgMTI2MDc1LCAKLSAgICAxMjYwNzgsIDEyNjA4MSwgMTI2MDg0LCAxMjYwODcsIDEyNjA5MCwgMTI2MDkzLCAxMjYwOTYsIDEyNjA5OSwgMTI2MTAyLCAKLSAgICAxMjYxMDUsIDEyNjEwOCwgMTI2MTExLCAxMjYxMTQsIDEyNjExNywgMTI2MTIwLCAxMjYxMjMsIDEyNjEyNiwgMTI2MTI5LCAKLSAgICAxMjYxMzIsIDEyNjEzNSwgMTI2MTM4LCAxMjYxNDEsIDEyNjE0NCwgMTI2MTQ3LCAxMjYxNTAsIDEyNjE1MywgMTI2MTU2LCAKLSAgICAxMjYxNTksIDEyNjE2MiwgMTI2MTY1LCAxMjYxNjgsIDEyNjE3MSwgMTI2MTc0LCAxMjYxNzcsIDEyNjE4MCwgMTI2MTgzLCAKLSAgICAxMjYxODYsIDEyNjE4OSwgMTI2MTkyLCAxMjYxOTUsIDEyNjE5OCwgMTI2MjAxLCAxMjYyMDQsIDEyNjIwNywgMTI2MjEwLCAKLSAgICAxMjYyMTMsIDEyNjIxNiwgMTI2MjE5LCAxMjYyMjIsIDEyNjIyNSwgMTI2MjI4LCAxMjYyMzEsIDEyNjIzNCwgMTI2MjM3LCAKLSAgICAxMjYyNDAsIDEyNjI0MywgMTI2MjQ2LCAxMjYyNDksIDEyNjI1MiwgMTI2MjU1LCAxMjYyNTgsIDEyNjI2MSwgMTI2MjY0LCAKLSAgICAxMjYyNjcsIDEyNjI3MCwgMTI2MjczLCAxMjYyNzYsIDEyNjI3OSwgMTI2MjgyLCAxMjYyODUsIDEyNjI4OCwgMTI2MjkxLCAKLSAgICAxMjYyOTQsIDEyNjI5NywgMTI2MzAwLCAxMjYzMDMsIDEyNjMwNiwgMTI2MzA5LCAxMjYzMTIsIDEyNjMxNSwgMTI2MzE4LCAKLSAgICAxMjYzMjEsIDEyNjMyNCwgMTI2MzI3LCAxMjYzMzAsIDEyNjMzMywgMTI2MzM2LCAxMjYzMzksIDEyNjM0MiwgMTI2MzQ1LCAKLSAgICAxMjYzNDgsIDEyNjM1MSwgMTI2MzU0LCAxMjYzNTcsIDEyNjM2MCwgMTI2MzYzLCAxMjYzNjYsIDEyNjM2OSwgMTI2MzcyLCAKLSAgICAxMjYzNzUsIDEyNjM3OCwgMTI2MzgxLCAxMjYzODQsIDEyNjM4NywgMTI2MzkwLCAxMjYzOTMsIDEyNjM5NiwgMTI2Mzk5LCAKLSAgICAxMjY0MDIsIDEyNjQwNSwgMTI2NDA4LCAxMjY0MTEsIDEyNjQxNCwgMTI2NDE3LCAxMjY0MjAsIDEyNjQyMywgMTI2NDI2LCAKLSAgICAxMjY0MjksIDEyNjQzMiwgMTI2NDM1LCAxMjY0MzgsIDEyNjQ0MSwgMTI2NDQ0LCAxMjY0NDcsIDEyNjQ1MCwgMTI2NDUzLCAKLSAgICAxMjY0NTYsIDEyNjQ1OSwgMTI2NDYyLCAxMjY0NjUsIDEyNjQ2OCwgMTI2NDcxLCAxMjY0NzQsIDEyNjQ3NywgMTI2NDgwLCAKLSAgICAxMjY0ODMsIDEyNjQ4NiwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMTIzMDI3LCAxMjMwMzQsIDEyMzA0MiwgMTIzMDUwLCAxMjMwNTgsIDEyMzA2NSwgMTIzMDczLCAxMjMwODEsIDEyMzA4OSwgCisgICAgMTIzMDk2LCAxMjMxMDQsIDEyMzExMiwgMTIzMTE5LCAxMjMxMjYsIDEyMzEzNCwgMTIzMTQxLCAxMjMxNDksIDEyMzE1NywgCisgICAgMTIzMTY0LCAxMjMxNzIsIDEyMzE4MCwgMTIzMTg3LCAxMjMxOTUsIDEyMzIwMywgMTIzMjExLCAxMjMyMTksIDEyMzIyNywgCisgICAgMTIzMjMxLCAxMjMyMzUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyMzIzOCwgMTIzMjQ0LCAKKyAgICAxMjMyNTAsIDEyMzI1NiwgMTIzMjYwLCAxMjMyNjYsIDEyMzI3MiwgMTIzMjc4LCAxMjMyODQsIDEyMzI5MCwgMTIzMjk2LCAKKyAgICAxMjMzMDIsIDEyMzMwOCwgMTIzMzE0LCAxMjMzMjAsIDEyMzMyNiwgMTIzMzMyLCAxMjMzMzgsIDEyMzM0NCwgMTIzMzUwLCAKKyAgICAxMjMzNTYsIDEyMzM2MiwgMTIzMzY4LCAxMjMzNzQsIDEyMzM4MCwgMTIzMzg2LCAxMjMzOTIsIDEyMzM5OCwgMTIzNDA0LCAKKyAgICAxMjM0MTAsIDEyMzQxNiwgMTIzNDIyLCAxMjM0MjgsIDEyMzQzNCwgMTIzNDQwLCAxMjM0NDYsIDEyMzQ1MiwgMTIzNDU4LCAKKyAgICAxMjM0NjQsIDEyMzQ3MCwgMTIzNDc2LCAxMjM0ODIsIDEyMzQ4OCwgMCwgMCwgMCwgMCwgMCwgMTIzNDk0LCAxMjM1MDUsIAorICAgIDEyMzUxNiwgMTIzNTI3LCAxMjM1MzgsIDEyMzU0OSwgMTIzNTYwLCAxMjM1NzEsIDEyMzU4MiwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMTIzNTkzLCAxMjM1OTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDEyMzYwMSwgMTIzNjAzLCAxMjM2MDUsIDEyMzYwOSwgMTIzNjE0LCAxMjM2MTksIDEyMzYyMSwgCisgICAgMTIzNjI3LCAxMjM2MzIsIDEyMzYzNCwgMTIzNjQwLCAxMjM2NDQsIDEyMzY0NiwgMTIzNjUwLCAxMjM2NTYsIDEyMzY2MiwgCisgICAgMTIzNjY4LCAxMjM2NzMsIDEyMzY3NywgMTIzNjg0LCAxMjM2OTEsIDEyMzY5OCwgMTIzNzAzLCAxMjM3MTAsIDEyMzcxNywgCisgICAgMTIzNzI0LCAxMjM3MjgsIDEyMzczNCwgMTIzNzQzLCAxMjM3NTIsIDEyMzc1OSwgMTIzNzY0LCAxMjM3NjgsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyMzc3MiwgMTIzNzc0LCAxMjM3NzYsIDEyMzc4MCwgCisgICAgMTIzNzg0LCAxMjM3ODgsIDAsIDEyMzc5MCwgMTIzNzkyLCAxMjM3OTYsIDEyMzc5OCwgMTIzODAwLCAxMjM4MDIsIAorICAgIDEyMzgwNCwgMTIzODA5LCAxMjM4MTQsIDEyMzgxNiwgMTIzODIyLCAxMjM4MjYsIDEyMzgzMCwgMTIzODM4LCAxMjM4NDAsIAorICAgIDEyMzg0MiwgMTIzODQ0LCAxMjM4NDYsIDEyMzg0OCwgMTIzODUwLCAxMjM4NTIsIDEyMzg1NCwgMTIzODU2LCAxMjM4NTgsIAorICAgIDEyMzg2MiwgMTIzODY2LCAxMjM4NjgsIDEyMzg3MCwgMTIzODcyLCAxMjM4NzQsIDEyMzg3NiwgMTIzODgxLCAxMjM4ODcsIAorICAgIDEyMzg5MSwgMTIzODk1LCAxMjM4OTksIDEyMzkwMywgMTIzOTA4LCAxMjM5MTIsIDEyMzkxNCwgMTIzOTE2LCAxMjM5MjAsIAorICAgIDEyMzkyNiwgMTIzOTI4LCAxMjM5MzAsIDEyMzkzMiwgMTIzOTM2LCAxMjM5NDUsIDEyMzk1MSwgMTIzOTU1LCAxMjM5NTksIAorICAgIDEyMzk2MSwgMTIzOTYzLCAxMjM5NjYsIDEyMzk2OCwgMTIzOTcwLCAxMjM5NzIsIDEyMzk3NiwgMTIzOTc4LCAxMjM5ODIsIAorICAgIDEyMzk4NywgMTIzOTg5LCAxMjM5OTQsIDEyNDAwMCwgMTI0MDA3LCAxMjQwMTEsIDEyNDAxNSwgMTI0MDE5LCAxMjQwMjMsIAorICAgIDEyNDAyOSwgMCwgMCwgMCwgMTI0MDMzLCAxMjQwMzUsIDEyNDAzOSwgMTI0MDQzLCAxMjQwNDUsIDEyNDA0OSwgMTI0MDUzLCAKKyAgICAxMjQwNTUsIDEyNDA1OSwgMTI0MDYxLCAxMjQwNjUsIDEyNDA2OSwgMTI0MDczLCAxMjQwNzcsIDEyNDA4MSwgMTI0MDg1LCAKKyAgICAxMjQwODksIDEyNDA5MywgMTI0MDk5LCAxMjQxMDMsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDEyNDEwNywgMTI0MTExLCAxMjQxMTUsIDEyNDExOSwgMTI0MTI2LCAxMjQxMjgsIDEyNDEzMiwgMTI0MTM0LCAxMjQxMzYsIAorICAgIDEyNDE0MCwgMTI0MTQ0LCAxMjQxNDgsIDEyNDE1MCwgMTI0MTU0LCAxMjQxNTgsIDEyNDE2MiwgMTI0MTY2LCAxMjQxNzAsIAorICAgIDEyNDE3MiwgMTI0MTc2LCAxMjQxNzgsIDEyNDE4NCwgMTI0MTg3LCAxMjQxOTIsIDEyNDE5NCwgMTI0MTk2LCAxMjQxOTksIAorICAgIDEyNDIwMSwgMTI0MjAzLCAxMjQyMDYsIDEyNDIxMywgMTI0MjIwLCAxMjQyMjcsIDEyNDIzMiwgMTI0MjM2LCAxMjQyMzgsIAorICAgIDEyNDI0MCwgMCwgMTI0MjQyLCAxMjQyNDQsIDEyNDI0OCwgMTI0MjUyLCAxMjQyNTYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyNDI1OCwgMTI0MjYyLCAxMjQyNjcsIDEyNDI3MSwgCisgICAgMTI0Mjc3LCAxMjQyODMsIDEyNDI4NSwgMTI0Mjg3LCAxMjQyOTMsIDEyNDI5NSwgMTI0Mjk5LCAxMjQzMDMsIDEyNDMwNSwgCisgICAgMTI0MzA5LCAxMjQzMTEsIDEyNDMxNSwgMTI0MzE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAxMjQzMjMsIDEyNDMyNSwgMTI0MzI3LCAxMjQzMjksIDEyNDMzMywgMTI0MzM1LCAxMjQzMzcsIDEyNDMzOSwgCisgICAgMTI0MzQxLCAxMjQzNDMsIDEyNDM0NSwgMTI0MzQ3LCAxMjQzNDksIDEyNDM1MSwgMTI0MzUzLCAxMjQzNTUsIDEyNDM1NywgCisgICAgMTI0MzU5LCAxMjQzNjEsIDEyNDM2MywgMTI0MzY1LCAxMjQzNjcsIDEyNDM2OSwgMTI0MzcxLCAxMjQzNzMsIDEyNDM3NSwgCisgICAgMTI0Mzc3LCAxMjQzODEsIDEyNDM4MywgMTI0Mzg1LCAxMjQzODcsIDEyNDM5MSwgMTI0MzkzLCAxMjQzOTcsIDEyNDM5OSwgCisgICAgMTI0NDAxLCAxMjQ0MDUsIDEyNDQwOSwgMTI0NDE1LCAxMjQ0MTcsIDEyNDQxOSwgMTI0NDIxLCAxMjQ0MjMsIDEyNDQyNywgCisgICAgMTI0NDMxLCAxMjQ0MzMsIDEyNDQzNywgMTI0NDQxLCAxMjQ0NDUsIDEyNDQ0OSwgMTI0NDUzLCAxMjQ0NTcsIDEyNDQ2MSwgCisgICAgMTI0NDY1LCAxMjQ0NjksIDEyNDQ3MywgMTI0NDc3LCAxMjQ0ODEsIDEyNDQ4NSwgMTI0NDg5LCAxMjQ0OTMsIDEyNDQ5NywgCisgICAgMTI0NTAxLCAwLCAxMjQ1MDUsIDAsIDEyNDUwNywgMTI0NTA5LCAxMjQ1MTEsIDEyNDUxMywgMTI0NTE1LCAxMjQ1MjMsIAorICAgIDEyNDUzMSwgMTI0NTM5LCAxMjQ1NDcsIDEyNDU1MiwgMTI0NTU3LCAxMjQ1NjIsIDEyNDU2NiwgMTI0NTcwLCAxMjQ1NzUsIAorICAgIDEyNDU3OSwgMTI0NTgxLCAxMjQ1ODUsIDEyNDU4NywgMTI0NTg5LCAxMjQ1OTEsIDEyNDU5MywgMTI0NTk1LCAxMjQ1OTcsIAorICAgIDEyNDU5OSwgMTI0NjAzLCAxMjQ2MDUsIDEyNDYwNywgMTI0NjA5LCAxMjQ2MTMsIDEyNDYxNywgMTI0NjIxLCAxMjQ2MjUsIAorICAgIDEyNDYyOSwgMTI0NjMxLCAxMjQ2MzcsIDEyNDY0MywgMTI0NjQ1LCAxMjQ2NDcsIDEyNDY0OSwgMTI0NjUxLCAxMjQ2NTMsIAorICAgIDEyNDY2MiwgMTI0NjY5LCAxMjQ2NzYsIDEyNDY4MCwgMTI0Njg3LCAxMjQ2OTIsIDEyNDY5OSwgMTI0NzA4LCAxMjQ3MTMsIAorICAgIDEyNDcxNywgMTI0NzIxLCAxMjQ3MjMsIDEyNDcyNywgMTI0NzI5LCAxMjQ3MzMsIDEyNDczNywgMTI0NzM5LCAxMjQ3NDMsIAorICAgIDEyNDc0NywgMTI0NzUxLCAxMjQ3NTMsIDEyNDc1NSwgMTI0NzYxLCAxMjQ3NjMsIDEyNDc2NSwgMTI0NzY3LCAxMjQ3NzEsIAorICAgIDEyNDc3NSwgMTI0Nzc3LCAxMjQ3ODEsIDEyNDc4MywgMTI0Nzg1LCAxMjQ3ODgsIDEyNDc5MiwgMTI0Nzk0LCAxMjQ3OTgsIAorICAgIDEyNDgwMCwgMTI0ODAyLCAxMjQ4MDcsIDEyNDgwOSwgMTI0ODEzLCAxMjQ4MTcsIDEyNDgyMCwgMTI0ODI0LCAxMjQ4MjgsIAorICAgIDEyNDgzMiwgMTI0ODM2LCAxMjQ4NDAsIDEyNDg0NCwgMTI0ODQ4LCAxMjQ4NTMsIDEyNDg1NywgMTI0ODYxLCAxMjQ4NzAsIAorICAgIDEyNDg3NSwgMTI0ODc4LCAxMjQ4ODAsIDEyNDg4MywgMTI0ODg2LCAxMjQ4OTEsIDEyNDg5MywgMTI0ODk2LCAxMjQ5MDEsIAorICAgIDEyNDkwNSwgMTI0OTA4LCAxMjQ5MTIsIDEyNDkxNiwgMTI0OTE5LCAxMjQ5MjQsIDEyNDkyOCwgMTI0OTMyLCAxMjQ5MzYsIAorICAgIDEyNDk0MCwgMTI0OTQ2LCAxMjQ5NTIsIDEyNDk1OCwgMTI0OTY0LCAxMjQ5NjksIDEyNDk4MCwgMTI0OTgyLCAxMjQ5ODYsIAorICAgIDEyNDk4OCwgMTI0OTkwLCAxMjQ5OTQsIDEyNDk5OCwgMTI1MDAwLCAxMjUwMDQsIDEyNTAwOSwgMTI1MDE0LCAxMjUwMjAsIAorICAgIDEyNTAyMiwgMTI1MDI2LCAxMjUwMzAsIDEyNTAzNywgMTI1MDQ0LCAxMjUwNDgsIDEyNTA1MCwgMTI1MDUyLCAxMjUwNTYsIAorICAgIDEyNTA1OCwgMTI1MDYyLCAxMjUwNjYsIDEyNTA3MCwgMTI1MDcyLCAxMjUwNzQsIDEyNTA4MSwgMTI1MDg1LCAxMjUwODgsIAorICAgIDEyNTA5MiwgMTI1MDk2LCAxMjUxMDAsIDEyNTEwMiwgMTI1MTA2LCAxMjUxMDgsIDEyNTExMCwgMTI1MTE0LCAxMjUxMTYsIAorICAgIDEyNTEyMCwgMTI1MTI0LCAxMjUxMzAsIDEyNTEzNCwgMTI1MTM4LCAxMjUxNDIsIDEyNTE0NCwgMTI1MTQ3LCAxMjUxNTEsIAorICAgIDEyNTE1OCwgMTI1MTY3LCAxMjUxNzYsIDEyNTE4NCwgMTI1MTkyLCAxMjUxOTQsIDEyNTE5OCwgMTI1MjAwLCAxMjUyMDQsIAorICAgIDEyNTIxNSwgMTI1MjE5LCAxMjUyMjUsIDEyNTIzMSwgMTI1MjM2LCAwLCAxMjUyMzgsIDEyNTI0MiwgMTI1MjQ0LCAKKyAgICAxMjUyNDYsIDAsIDAsIDAsIDEyNTI0OCwgMTI1MjUzLCAxMjUyNjMsIDEyNTI3OCwgMTI1MjkwLCAxMjUzMDIsIDEyNTMwNiwgCisgICAgMTI1MzEwLCAxMjUzMTYsIDEyNTMxOCwgMTI1MzI2LCAxMjUzMzQsIDEyNTMzNiwgMTI1MzQwLCAxMjUzNDYsIDEyNTM1MiwgCisgICAgMTI1MzU5LCAxMjUzNjYsIDEyNTM2OCwgMTI1MzcwLCAxMjUzNzMsIDEyNTM3NSwgMTI1MzgxLCAxMjUzODMsIDEyNTM4NiwgCisgICAgMTI1MzkwLCAxMjUzOTYsIDEyNTQwMiwgMTI1NDEzLCAxMjU0MTksIDEyNTQyNiwgMTI1NDM0LCAxMjU0MzgsIDEyNTQ0NiwgCisgICAgMTI1NDU0LCAxMjU0NjAsIDEyNTQ2NiwgMTI1NDczLCAxMjU0NzUsIDEyNTQ3OSwgMTI1NDgxLCAxMjU0ODMsIDEyNTQ4OCwgCisgICAgMTI1NDkwLCAxMjU0OTIsIDEyNTQ5NCwgMTI1NDk2LCAxMjU1MDAsIDEyNTUxMSwgMTI1NTE3LCAxMjU1MjEsIDEyNTUyNSwgCisgICAgMTI1NTI5LCAxMjU1MzUsIDEyNTU0MSwgMTI1NTQ3LCAxMjU1NTMsIDEyNTU1OCwgMTI1NTYzLCAxMjU1NjksIDEyNTU3NSwgCisgICAgMTI1NTgyLCAwLCAwLCAxMjU1ODksIDEyNTU5NCwgMTI1NjAyLCAxMjU2MDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDEyNTYxNSwgMTI1NjIyLCAxMjU2MjksIDEyNTYzNiwgMTI1NjQ0LCAxMjU2NTIsIDEyNTY2MCwgMTI1NjY4LCAKKyAgICAxMjU2NzYsIDEyNTY4NCwgMTI1NjkyLCAxMjU3MDAsIDEyNTcwOCwgMTI1NzE0LCAxMjU3MjAsIDEyNTcyNiwgMTI1NzMyLCAKKyAgICAxMjU3MzgsIDEyNTc0NCwgMTI1NzUwLCAxMjU3NTYsIDEyNTc2MiwgMTI1NzY4LCAxMjU3NzQsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyNTc4MCwgCisgICAgMTI1Nzg0LCAxMjU3ODgsIDEyNTc5MywgMTI1Nzk4LCAxMjU4MDAsIDEyNTgwNCwgMTI1ODEzLCAxMjU4MjEsIDEyNTgyOSwgCisgICAgMTI1ODQyLCAxMjU4NTUsIDEyNTg2OCwgMTI1ODc1LCAxMjU4ODIsIDEyNTg4NiwgMTI1ODk1LCAxMjU5MDMsIDEyNTkwNywgCisgICAgMTI1OTE2LCAxMjU5MjMsIDEyNTkyNywgMTI1OTMxLCAxMjU5MzUsIDEyNTkzOSwgMTI1OTQ2LCAxMjU5NTAsIDEyNTk1NCwgCisgICAgMTI1OTU4LCAxMjU5NjIsIDEyNTk2OSwgMTI1OTc4LCAxMjU5ODcsIDEyNTk5NCwgMTI2MDA2LCAxMjYwMTgsIDEyNjAyMiwgCisgICAgMTI2MDI2LCAxMjYwMzAsIDEyNjAzNCwgMTI2MDM4LCAxMjYwNDIsIDEyNjA1MCwgMTI2MDU4LCAxMjYwNjYsIDEyNjA3MCwgCisgICAgMTI2MDc0LCAxMjYwNzgsIDEyNjA4MiwgMTI2MDg2LCAxMjYwOTAsIDEyNjA5NiwgMTI2MTAyLCAxMjYxMDYsIDEyNjExNywgCisgICAgMTI2MTI1LCAxMjYxMjksIDEyNjEzMywgMTI2MTM3LCAxMjYxNDEsIDEyNjE0NywgMTI2MTU0LCAxMjYxNjUsIDEyNjE3NSwgCisgICAgMTI2MTg1LCAxMjYxOTYsIDEyNjIwNSwgMTI2MjE2LCAxMjYyMjIsIDEyNjIyOCwgMCwgMCwgMCwgMCwgMTI2MjM0LCAKKyAgICAxMjYyNDMsIDEyNjI1MCwgMTI2MjU2LCAxMjYyNjAsIDEyNjI2NCwgMTI2MjY4LCAxMjYyNzcsIDEyNjI4OSwgMTI2MjkzLCAKKyAgICAxMjYzMDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDEyNjMwNywgMTI2MzA5LCAxMjYzMTEsIDEyNjMxNSwgMTI2MzE5LCAxMjYzMjMsIDEyNjMzMiwgMTI2MzM0LCAKKyAgICAxMjYzMzYsIDEyNjMzOSwgMTI2MzQxLCAxMjYzNDMsIDEyNjM0NywgMTI2MzQ5LCAxMjYzNTMsIDEyNjM1NSwgMTI2MzU5LCAKKyAgICAxMjYzNjEsIDEyNjM2MywgMTI2MzY3LCAxMjYzNzEsIDEyNjM3NywgMTI2Mzc5LCAxMjYzODMsIDEyNjM4NSwgMTI2Mzg5LCAKKyAgICAxMjYzOTMsIDEyNjM5NywgMTI2NDAxLCAxMjY0MDMsIDEyNjQwNSwgMTI2NDA5LCAxMjY0MTMsIDEyNjQxNywgMTI2NDIxLCAKKyAgICAxMjY0MjMsIDEyNjQyNSwgMTI2NDI3LCAxMjY0MzIsIDEyNjQzNywgMTI2NDQwLCAxMjY0NDgsIDEyNjQ1NiwgMTI2NDU4LCAKKyAgICAxMjY0NjMsIDEyNjQ2NiwgMTI2NDcxLCAxMjY0ODIsIDEyNjQ4OSwgMTI2NDk0LCAxMjY0OTksIDEyNjUwMSwgMTI2NTA1LCAKKyAgICAxMjY1MDcsIDEyNjUxMSwgMTI2NTEzLCAxMjY1MTcsIDEyNjUyMSwgMTI2NTI0LCAxMjY1MjcsIDEyNjUyOSwgMTI2NTMyLCAKKyAgICAxMjY1MzQsIDEyNjUzOCwgMTI2NTQwLCAxMjY1NDIsIDEyNjU0NCwgMTI2NTQ4LCAxMjY1NTAsIDEyNjU1NCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI2NTU3LCAxMjY1NjIsIDEyNjU2NywgMTI2NTcyLCAxMjY1NzcsIDEyNjU4MiwgCisgICAgMTI2NTg3LCAxMjY1OTQsIDEyNjYwMSwgMTI2NjA4LCAxMjY2MTUsIDEyNjYyMCwgMTI2NjI1LCAxMjY2MzAsIDEyNjYzNSwgCisgICAgMTI2NjQyLCAxMjY2NDgsIDEyNjY1NSwgMTI2NjYyLCAxMjY2NjksIDEyNjY3NCwgMTI2Njc5LCAxMjY2ODQsIDEyNjY4OSwgCisgICAgMTI2Njk0LCAxMjY3MDEsIDEyNjcwOCwgMTI2NzEzLCAxMjY3MTgsIDEyNjcyNSwgMTI2NzMyLCAxMjY3NDAsIDEyNjc0OCwgCisgICAgMTI2NzU1LCAxMjY3NjIsIDEyNjc3MCwgMTI2Nzc4LCAxMjY3ODYsIDEyNjc5MywgMTI2ODAzLCAxMjY4MTQsIDEyNjgxOSwgCisgICAgMTI2ODI2LCAxMjY4MzMsIDEyNjg0MCwgMTI2ODQ4LCAxMjY4NTYsIDEyNjg2NywgMTI2ODc1LCAxMjY4ODMsIDEyNjg5MSwgCisgICAgMTI2ODk2LCAxMjY5MDEsIDEyNjkwNiwgMTI2OTExLCAxMjY5MTYsIDEyNjkyMSwgMTI2OTI2LCAxMjY5MzEsIDEyNjkzNiwgCisgICAgMTI2OTQxLCAxMjY5NDYsIDEyNjk1MSwgMTI2OTU4LCAxMjY5NjMsIDEyNjk2OCwgMTI2OTc1LCAxMjY5ODAsIDEyNjk4NSwgCisgICAgMTI2OTkwLCAxMjY5OTUsIDEyNzAwMCwgMTI3MDA1LCAxMjcwMTAsIDEyNzAxNSwgMTI3MDIwLCAxMjcwMjUsIDEyNzAzMCwgCisgICAgMTI3MDM1LCAxMjcwNDIsIDEyNzA1MCwgMTI3MDU1LCAxMjcwNjAsIDEyNzA2NywgMTI3MDcyLCAxMjcwNzcsIDEyNzA4MiwgCisgICAgMTI3MDg5LCAxMjcwOTQsIDEyNzEwMSwgMTI3MTA2LCAxMjcxMTMsIDEyNzExOCwgMTI3MTI3LCAxMjcxMzYsIDEyNzE0MSwgCisgICAgMTI3MTQ2LCAxMjcxNTEsIDEyNzE1NiwgMTI3MTYxLCAxMjcxNjYsIDEyNzE3MSwgMTI3MTc2LCAxMjcxODEsIDEyNzE4NiwgCisgICAgMTI3MTkxLCAxMjcxOTYsIDEyNzIwMSwgMTI3MjA5LCAxMjcyMTcsIDEyNzIyMiwgMTI3MjI3LCAxMjcyMzIsIDEyNzIzNywgCisgICAgMTI3MjQyLCAxMjcyNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyNzI1NCwgMTI3MjU4LCAKKyAgICAxMjcyNjIsIDEyNzI2NiwgMTI3MjcwLCAxMjcyNzQsIDEyNzI3OCwgMTI3MjgyLCAxMjcyODYsIDEyNzI5MCwgMTI3Mjk0LCAKKyAgICAxMjcyOTgsIDEyNzMwMiwgMTI3MzA2LCAxMjczMTAsIDEyNzMxNCwgMTI3MzE4LCAxMjczMjIsIDEyNzMyNiwgMTI3MzMwLCAKKyAgICAxMjczMzQsIDEyNzMzOCwgMTI3MzQyLCAxMjczNDYsIDEyNzM1MCwgMTI3MzU0LCAxMjczNTgsIDEyNzM2MiwgMTI3MzY2LCAKKyAgICAxMjczNzAsIDEyNzM3NCwgMTI3Mzc4LCAxMjczODIsIDEyNzM4NiwgMTI3MzkwLCAxMjczOTQsIDEyNzM5OCwgMTI3NDAyLCAKKyAgICAxMjc0MDYsIDEyNzQxMCwgMTI3NDE0LCAxMjc0MTgsIDEyNzQyMiwgMTI3NDI2LCAxMjc0MzAsIDEyNzQzNCwgMTI3NDM4LCAKKyAgICAxMjc0NDIsIDEyNzQ0NiwgMTI3NDUwLCAxMjc0NTQsIDEyNzQ1OCwgMTI3NDYyLCAxMjc0NjYsIDEyNzQ3MCwgMTI3NDc0LCAKKyAgICAxMjc0NzgsIDEyNzQ4MiwgMTI3NDg2LCAxMjc0OTAsIDEyNzQ5NCwgMTI3NDk4LCAxMjc1MDIsIDEyNzUwNiwgMTI3NTEwLCAKKyAgICAxMjc1MTQsIDEyNzUxOCwgMTI3NTIyLCAxMjc1MjYsIDEyNzUzMCwgMTI3NTM0LCAxMjc1MzgsIDEyNzU0MiwgMTI3NTQ2LCAKKyAgICAxMjc1NTAsIDEyNzU1NCwgMTI3NTU4LCAxMjc1NjIsIDEyNzU2NiwgMTI3NTcwLCAxMjc1NzQsIDEyNzU3OCwgMTI3NTgyLCAKKyAgICAxMjc1ODYsIDEyNzU5MCwgMTI3NTk0LCAxMjc1OTgsIDEyNzYwMiwgMTI3NjA2LCAxMjc2MTAsIDEyNzYxNCwgMTI3NjE4LCAKKyAgICAxMjc2MjIsIDEyNzYyNiwgMTI3NjMwLCAxMjc2MzQsIDEyNzYzOCwgMTI3NjQyLCAxMjc2NDYsIDEyNzY1MCwgMTI3NjU0LCAKKyAgICAxMjc2NTgsIDEyNzY2MiwgMTI3NjY2LCAxMjc2NzAsIDEyNzY3NCwgMTI3Njc4LCAxMjc2ODIsIDEyNzY4NiwgMTI3NjkwLCAKKyAgICAxMjc2OTQsIDEyNzY5OCwgMTI3NzAyLCAxMjc3MDYsIDEyNzcxMCwgMTI3NzE0LCAxMjc3MTgsIDEyNzcyMiwgMTI3NzI2LCAKKyAgICAxMjc3MzAsIDEyNzczNCwgMTI3NzM4LCAxMjc3NDIsIDEyNzc0NiwgMTI3NzUwLCAxMjc3NTQsIDEyNzc1OCwgMTI3NzYyLCAKKyAgICAxMjc3NjYsIDEyNzc3MCwgMTI3Nzc0LCAxMjc3NzgsIDEyNzc4MiwgMTI3Nzg2LCAxMjc3OTAsIDEyNzc5NCwgMTI3Nzk4LCAKKyAgICAxMjc4MDIsIDEyNzgwNiwgMTI3ODEwLCAxMjc4MTQsIDEyNzgxOCwgMTI3ODIyLCAxMjc4MjYsIDEyNzgzMCwgMTI3ODM0LCAKKyAgICAxMjc4MzgsIDEyNzg0MiwgMTI3ODQ2LCAxMjc4NTAsIDEyNzg1NCwgMTI3ODU4LCAxMjc4NjIsIDEyNzg2NiwgMTI3ODcwLCAKKyAgICAxMjc4NzQsIDEyNzg3OCwgMTI3ODgyLCAxMjc4ODYsIDEyNzg5MCwgMTI3ODk0LCAxMjc4OTgsIDEyNzkwMiwgMTI3OTA2LCAKKyAgICAxMjc5MTAsIDEyNzkxNCwgMTI3OTE4LCAxMjc5MjIsIDEyNzkyNiwgMTI3OTMwLCAxMjc5MzQsIDEyNzkzOCwgMTI3OTQyLCAKKyAgICAxMjc5NDYsIDEyNzk1MCwgMTI3OTU0LCAxMjc5NTgsIDEyNzk2MiwgMTI3OTY2LCAxMjc5NzAsIDEyNzk3NCwgMTI3OTc4LCAKKyAgICAxMjc5ODIsIDEyNzk4NiwgMTI3OTkwLCAxMjc5OTQsIDEyNzk5OCwgMTI4MDAyLCAxMjgwMDYsIDEyODAxMCwgMTI4MDE0LCAKKyAgICAxMjgwMTgsIDEyODAyMiwgMTI4MDI2LCAxMjgwMzAsIDEyODAzNCwgMTI4MDM4LCAxMjgwNDIsIDEyODA0NiwgMTI4MDUwLCAKKyAgICAxMjgwNTQsIDEyODA1OCwgMTI4MDYyLCAxMjgwNjYsIDEyODA3MCwgMTI4MDc0LCAxMjgwNzgsIDEyODA4MiwgMTI4MDg2LCAKKyAgICAxMjgwOTAsIDEyODA5NCwgMTI4MDk4LCAxMjgxMDIsIDEyODEwNiwgMTI4MTEwLCAxMjgxMTQsIDEyODExOCwgMTI4MTIyLCAKKyAgICAxMjgxMjYsIDEyODEzMCwgMTI4MTM0LCAxMjgxMzgsIDEyODE0MiwgMTI4MTQ2LCAxMjgxNTAsIDEyODE1NCwgMTI4MTU4LCAKKyAgICAxMjgxNjIsIDEyODE2NiwgMTI4MTcwLCAxMjgxNzQsIDEyODE3OCwgMTI4MTgyLCAxMjgxODYsIDEyODE5MCwgMTI4MTk0LCAKKyAgICAxMjgxOTgsIDEyODIwMiwgMTI4MjA2LCAxMjgyMTAsIDEyODIxNCwgMTI4MjE4LCAxMjgyMjIsIDEyODIyNiwgMTI4MjMwLCAKKyAgICAxMjgyMzQsIDEyODIzOCwgMTI4MjQyLCAxMjgyNDYsIDEyODI1MCwgMTI4MjU0LCAxMjgyNTgsIDEyODI2MiwgMTI4MjY2LCAKKyAgICAxMjgyNzAsIDEyODI3NCwgMTI4Mjc4LCAxMjgyODIsIDEyODI4NiwgMTI4MjkwLCAxMjgyOTQsIDEyODI5OCwgMTI4MzAyLCAKKyAgICAxMjgzMDYsIDEyODMxMCwgMTI4MzE0LCAxMjgzMTgsIDEyODMyMiwgMTI4MzI2LCAxMjgzMzAsIDEyODMzNCwgMTI4MzM4LCAKKyAgICAxMjgzNDIsIDEyODM0NiwgMTI4MzUwLCAxMjgzNTQsIDEyODM1OCwgMTI4MzYyLCAxMjgzNjYsIDEyODM3MCwgMTI4Mzc0LCAKKyAgICAxMjgzNzgsIDEyODM4MiwgMTI4Mzg2LCAxMjgzOTAsIDEyODM5NCwgMTI4Mzk4LCAxMjg0MDIsIDEyODQwNiwgMTI4NDEwLCAKKyAgICAxMjg0MTQsIDEyODQxOCwgMTI4NDIyLCAxMjg0MjYsIDEyODQzMCwgMTI4NDM0LCAxMjg0MzgsIDEyODQ0MiwgMTI4NDQ2LCAKKyAgICAxMjg0NTAsIDEyODQ1NCwgMTI4NDU4LCAxMjg0NjIsIDEyODQ2NiwgMTI4NDcwLCAxMjg0NzQsIDEyODQ3OCwgMTI4NDgyLCAKKyAgICAxMjg0ODYsIDEyODQ5MCwgMTI4NDk0LCAxMjg0OTgsIDEyODUwMiwgMTI4NTA2LCAxMjg1MTAsIDEyODUxNCwgMTI4NTE4LCAKKyAgICAxMjg1MjIsIDEyODUyNiwgMTI4NTMwLCAxMjg1MzQsIDEyODUzOCwgMTI4NTQyLCAxMjg1NDYsIDEyODU1MCwgMTI4NTU0LCAKKyAgICAxMjg1NTgsIDEyODU2MiwgMTI4NTY2LCAxMjg1NzAsIDEyODU3NCwgMTI4NTc4LCAxMjg1ODIsIDEyODU4NiwgMTI4NTkwLCAKKyAgICAxMjg1OTQsIDEyODU5OCwgMTI4NjAyLCAxMjg2MDYsIDEyODYxMCwgMTI4NjE0LCAxMjg2MTgsIDEyODYyMiwgMTI4NjI2LCAKKyAgICAxMjg2MzAsIDEyODYzNCwgMTI4NjM4LCAxMjg2NDIsIDEyODY0NiwgMTI4NjUwLCAxMjg2NTQsIDEyODY1OCwgMTI4NjYyLCAKKyAgICAxMjg2NjYsIDEyODY3MCwgMTI4Njc0LCAxMjg2NzgsIDEyODY4MiwgMTI4Njg2LCAxMjg2OTAsIDEyODY5NCwgMTI4Njk4LCAKKyAgICAxMjg3MDIsIDEyODcwNiwgMTI4NzEwLCAxMjg3MTQsIDEyODcxOCwgMTI4NzIyLCAxMjg3MjYsIDEyODczMCwgMTI4NzM0LCAKKyAgICAxMjg3MzgsIDEyODc0MiwgMTI4NzQ2LCAxMjg3NTAsIDEyODc1NCwgMTI4NzU4LCAxMjg3NjIsIDEyODc2NiwgMTI4NzcwLCAKKyAgICAxMjg3NzQsIDEyODc3OCwgMTI4NzgyLCAxMjg3ODYsIDEyODc5MCwgMTI4Nzk0LCAxMjg3OTgsIDEyODgwMiwgMTI4ODA2LCAKKyAgICAxMjg4MTAsIDEyODgxNCwgMTI4ODE4LCAxMjg4MjIsIDEyODgyNiwgMTI4ODMwLCAxMjg4MzQsIDEyODgzOCwgMTI4ODQyLCAKKyAgICAxMjg4NDYsIDEyODg1MCwgMTI4ODU0LCAxMjg4NTgsIDEyODg2MiwgMTI4ODY2LCAxMjg4NzAsIDEyODg3NCwgMTI4ODc4LCAKKyAgICAxMjg4ODIsIDEyODg4NiwgMTI4ODkwLCAxMjg4OTQsIDEyODg5OCwgMTI4OTAyLCAxMjg5MDYsIDEyODkxMCwgMTI4OTE0LCAKKyAgICAxMjg5MTgsIDEyODkyMiwgMTI4OTI2LCAxMjg5MzAsIDEyODkzNCwgMTI4OTM4LCAxMjg5NDIsIDEyODk0NiwgMTI4OTUwLCAKKyAgICAxMjg5NTQsIDEyODk1OCwgMTI4OTYyLCAxMjg5NjYsIDEyODk3MCwgMTI4OTc0LCAxMjg5NzgsIDEyODk4MiwgMTI4OTg2LCAKKyAgICAxMjg5OTAsIDEyODk5NCwgMTI4OTk4LCAxMjkwMDIsIDEyOTAwNiwgMTI5MDEwLCAxMjkwMTQsIDEyOTAxOCwgMTI5MDIyLCAKKyAgICAxMjkwMjYsIDEyOTAzMCwgMTI5MDM0LCAxMjkwMzgsIDEyOTA0MiwgMTI5MDQ2LCAxMjkwNTAsIDEyOTA1NCwgMTI5MDU4LCAKKyAgICAxMjkwNjIsIDEyOTA2NiwgMTI5MDcwLCAxMjkwNzQsIDEyOTA3OCwgMTI5MDgyLCAxMjkwODYsIDEyOTA5MCwgMTI5MDk0LCAKKyAgICAxMjkwOTgsIDEyOTEwMiwgMTI5MTA2LCAxMjkxMTAsIDEyOTExNCwgMTI5MTE4LCAxMjkxMjIsIDEyOTEyNiwgMTI5MTMwLCAKKyAgICAxMjkxMzQsIDEyOTEzOCwgMTI5MTQyLCAxMjkxNDYsIDEyOTE1MCwgMTI5MTU0LCAxMjkxNTgsIDEyOTE2MiwgMTI5MTY2LCAKKyAgICAxMjkxNzAsIDEyOTE3NCwgMTI5MTc4LCAxMjkxODIsIDEyOTE4NiwgMTI5MTkwLCAxMjkxOTQsIDEyOTE5OCwgMTI5MjAyLCAKKyAgICAxMjkyMDYsIDEyOTIxMCwgMTI5MjE0LCAxMjkyMTgsIDEyOTIyMiwgMTI5MjI2LCAxMjkyMzAsIDEyOTIzNCwgMTI5MjM4LCAKKyAgICAxMjkyNDIsIDEyOTI0NiwgMTI5MjUwLCAxMjkyNTQsIDEyOTI1OCwgMTI5MjYyLCAxMjkyNjYsIDEyOTI3MCwgMTI5Mjc0LCAKKyAgICAxMjkyNzgsIDEyOTI4MiwgMTI5Mjg2LCAxMjkyOTAsIDEyOTI5NCwgMTI5Mjk4LCAxMjkzMDIsIDEyOTMwNiwgMTI5MzEwLCAKKyAgICAxMjkzMTQsIDEyOTMxOCwgMTI5MzIyLCAxMjkzMjYsIDEyOTMzMCwgMTI5MzM0LCAxMjkzMzgsIDEyOTM0MiwgMTI5MzQ2LCAKKyAgICAxMjkzNTAsIDEyOTM1NCwgMTI5MzU4LCAxMjkzNjIsIDEyOTM2NiwgMTI5MzcwLCAxMjkzNzQsIDEyOTM3OCwgMTI5MzgyLCAKKyAgICAxMjkzODYsIDEyOTM5MCwgMTI5Mzk0LCAxMjkzOTgsIDEyOTQwMiwgMTI5NDA2LCAxMjk0MTAsIDEyOTQxNCwgMTI5NDE4LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAxMjk0MjIsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyOTQyNiwgMTI5NDI5LCAxMjk0MzMsIDEyOTQzNywgMTI5NDQwLCAKKyAgICAxMjk0NDQsIDEyOTQ0OCwgMTI5NDUxLCAxMjk0NTQsIDEyOTQ1OCwgMTI5NDYyLCAxMjk0NjUsIDEyOTQ2OCwgMTI5NDcxLCAKKyAgICAxMjk0NzQsIDEyOTQ3OSwgMTI5NDgyLCAxMjk0ODYsIDEyOTQ4OSwgMTI5NDkyLCAxMjk0OTUsIDEyOTQ5OCwgMTI5NTAxLCAKKyAgICAxMjk1MDQsIDEyOTUwNywgMTI5NTEwLCAxMjk1MTMsIDEyOTUxNiwgMTI5NTE5LCAxMjk1MjMsIDEyOTUyNywgMTI5NTMxLCAKKyAgICAxMjk1MzUsIDEyOTU0MCwgMTI5NTQ1LCAxMjk1NTEsIDEyOTU1NywgMTI5NTYzLCAxMjk1NjgsIDEyOTU3NCwgMTI5NTgwLCAKKyAgICAxMjk1ODYsIDEyOTU5MSwgMTI5NTk3LCAxMjk2MDMsIDEyOTYwOCwgMTI5NjEzLCAxMjk2MTksIDEyOTYyNCwgMTI5NjMwLCAKKyAgICAxMjk2MzYsIDEyOTY0MSwgMTI5NjQ3LCAxMjk2NTMsIDEyOTY1OCwgMTI5NjY0LCAxMjk2NzAsIDEyOTY3NiwgMTI5NjgyLCAKKyAgICAxMjk2ODgsIDEyOTY5MiwgMTI5Njk3LCAxMjk3MDEsIDEyOTcwNiwgMTI5NzEwLCAxMjk3MTUsIDEyOTcyMCwgMTI5NzI2LCAKKyAgICAxMjk3MzIsIDEyOTczOCwgMTI5NzQzLCAxMjk3NDksIDEyOTc1NSwgMTI5NzYxLCAxMjk3NjYsIDEyOTc3MiwgMTI5Nzc4LCAKKyAgICAxMjk3ODMsIDEyOTc4OCwgMTI5Nzk0LCAxMjk3OTksIDEyOTgwNSwgMTI5ODExLCAxMjk4MTYsIDEyOTgyMiwgMTI5ODI4LCAKKyAgICAxMjk4MzMsIDEyOTgzOSwgMTI5ODQ1LCAxMjk4NTEsIDEyOTg1NywgMTI5ODYzLCAxMjk4NjgsIDEyOTg3MiwgMTI5ODc3LCAKKyAgICAxMjk4NzksIDEyOTg4MywgMTI5ODg2LCAxMjk4ODksIDEyOTg5MiwgMTI5ODk1LCAxMjk4OTgsIDEyOTkwMSwgMTI5OTA0LCAKKyAgICAxMjk5MDcsIDEyOTkxMCwgMTI5OTEzLCAxMjk5MTYsIDEyOTkxOSwgMTI5OTIyLCAxMjk5MjUsIDEyOTkyOCwgMTI5OTMxLCAKKyAgICAxMjk5MzQsIDEyOTkzNywgMTI5OTQwLCAxMjk5NDMsIDEyOTk0NiwgMTI5OTQ5LCAxMjk5NTIsIDEyOTk1NSwgMTI5OTU4LCAKKyAgICAxMjk5NjEsIDEyOTk2NCwgMTI5OTY3LCAxMjk5NzAsIDEyOTk3MywgMTI5OTc2LCAxMjk5NzksIDEyOTk4MiwgMTI5OTg1LCAKKyAgICAxMjk5ODgsIDEyOTk5MSwgMTI5OTk0LCAxMjk5OTcsIDEzMDAwMCwgMTMwMDAzLCAxMzAwMDYsIDEzMDAwOSwgMTMwMDEyLCAKKyAgICAxMzAwMTUsIDEzMDAxOCwgMTMwMDIxLCAxMzAwMjQsIDEzMDAyNywgMTMwMDMwLCAxMzAwMzMsIDEzMDAzNiwgMTMwMDM5LCAKKyAgICAxMzAwNDIsIDEzMDA0NSwgMTMwMDQ4LCAxMzAwNTEsIDEzMDA1NCwgMTMwMDU3LCAxMzAwNjAsIDEzMDA2MywgMTMwMDY2LCAKKyAgICAxMzAwNjksIDEzMDA3MiwgMTMwMDc1LCAxMzAwNzgsIDEzMDA4MSwgMTMwMDg0LCAxMzAwODcsIDEzMDA5MCwgMTMwMDkzLCAKKyAgICAxMzAwOTYsIDEzMDA5OSwgMTMwMTAyLCAxMzAxMDUsIDEzMDEwOCwgMTMwMTExLCAxMzAxMTQsIDEzMDExNywgMTMwMTIwLCAKKyAgICAxMzAxMjMsIDEzMDEyNiwgMTMwMTI5LCAxMzAxMzIsIDEzMDEzNSwgMTMwMTM4LCAxMzAxNDEsIDEzMDE0NCwgMTMwMTQ3LCAKKyAgICAxMzAxNTAsIDEzMDE1MywgMTMwMTU2LCAxMzAxNTksIDEzMDE2MiwgMTMwMTY1LCAxMzAxNjgsIDEzMDE3MSwgMTMwMTc0LCAKKyAgICAxMzAxNzcsIDEzMDE4MCwgMTMwMTgzLCAxMzAxODYsIDEzMDE4OSwgMTMwMTkyLCAxMzAxOTUsIDEzMDE5OCwgMTMwMjAxLCAKKyAgICAxMzAyMDQsIDEzMDIwNywgMTMwMjEwLCAxMzAyMTMsIDEzMDIxNiwgMTMwMjE5LCAxMzAyMjIsIDEzMDIyNSwgMTMwMjI4LCAKKyAgICAxMzAyMzEsIDEzMDIzNCwgMTMwMjM3LCAxMzAyNDAsIDEzMDI0MywgMTMwMjQ2LCAxMzAyNDksIDEzMDI1MiwgMTMwMjU1LCAKKyAgICAxMzAyNTgsIDEzMDI2MSwgMTMwMjY0LCAxMzAyNjcsIDEzMDI3MCwgMTMwMjczLCAxMzAyNzYsIDEzMDI3OSwgMTMwMjgyLCAKKyAgICAxMzAyODUsIDEzMDI4OCwgMTMwMjkxLCAxMzAyOTQsIDEzMDI5NywgMTMwMzAwLCAxMzAzMDMsIDEzMDMwNiwgMTMwMzA5LCAKKyAgICAxMzAzMTIsIDEzMDMxNSwgMTMwMzE4LCAxMzAzMjEsIDEzMDMyNCwgMTMwMzI3LCAxMzAzMzAsIDEzMDMzMywgMTMwMzM2LCAKKyAgICAxMzAzMzksIDEzMDM0MiwgMTMwMzQ1LCAxMzAzNDgsIDEzMDM1MSwgMTMwMzU0LCAxMzAzNTcsIDEzMDM2MCwgMTMwMzYzLCAKKyAgICAxMzAzNjYsIDEzMDM2OSwgMTMwMzcyLCAxMzAzNzUsIDEzMDM3OCwgMTMwMzgxLCAxMzAzODQsIDEzMDM4NywgMTMwMzkwLCAKKyAgICAxMzAzOTMsIDEzMDM5NiwgMTMwMzk5LCAxMzA0MDIsIDEzMDQwNSwgMTMwNDA4LCAxMzA0MTEsIDEzMDQxNCwgMTMwNDE3LCAKKyAgICAxMzA0MjAsIDEzMDQyMywgMTMwNDI2LCAxMzA0MjksIDEzMDQzMiwgMTMwNDM1LCAxMzA0MzgsIDEzMDQ0MSwgMTMwNDQ0LCAKKyAgICAxMzA0NDcsIDEzMDQ1MCwgMTMwNDUzLCAxMzA0NTYsIDEzMDQ1OSwgMTMwNDYyLCAxMzA0NjUsIDEzMDQ2OCwgMTMwNDcxLCAKKyAgICAxMzA0NzQsIDEzMDQ3NywgMTMwNDgwLCAxMzA0ODMsIDEzMDQ4NiwgMTMwNDg5LCAxMzA0OTIsIDEzMDQ5NSwgMTMwNDk4LCAKKyAgICAxMzA1MDEsIDEzMDUwNCwgMTMwNTA3LCAxMzA1MTAsIDEzMDUxMywgMTMwNTE2LCAxMzA1MTksIDEzMDUyMiwgMTMwNTI1LCAKKyAgICAxMzA1MjgsIDEzMDUzMSwgMTMwNTM0LCAxMzA1MzcsIDEzMDU0MCwgMTMwNTQzLCAxMzA1NDYsIDEzMDU0OSwgMTMwNTUyLCAKKyAgICAxMzA1NTUsIDEzMDU1OCwgMTMwNTYxLCAxMzA1NjQsIDEzMDU2NywgMTMwNTcwLCAxMzA1NzMsIDEzMDU3NiwgMTMwNTc5LCAKKyAgICAxMzA1ODIsIDEzMDU4NSwgMTMwNTg4LCAxMzA1OTEsIDEzMDU5NCwgMTMwNTk3LCAxMzA2MDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEzMDYwMywgMTMwNjA1LCAxMzA2MDcsIDEzMDYxMiwgMTMwNjE0LCAKKyAgICAxMzA2MTksIDEzMDYyMSwgMTMwNjI2LCAxMzA2MjgsIDEzMDYzMywgMTMwNjM1LCAxMzA2MzcsIDEzMDYzOSwgMTMwNjQxLCAKKyAgICAxMzA2NDMsIDEzMDY0NSwgMTMwNjQ3LCAxMzA2NDksIDEzMDY1MSwgMTMwNjU0LCAxMzA2NTcsIDEzMDY1OSwgMTMwNjYxLCAKKyAgICAxMzA2NjUsIDEzMDY2OCwgMTMwNjczLCAxMzA2NzUsIDEzMDY3NywgMTMwNjc5LCAxMzA2ODMsIDEzMDY4NiwgMTMwNjg4LCAKKyAgICAxMzA2OTIsIDEzMDY5NCwgMTMwNjk4LCAxMzA3MDAsIDEzMDcwNCwgMTMwNzA3LCAxMzA3MDksIDEzMDcxMywgMTMwNzE3LCAKKyAgICAxMzA3MTksIDEzMDcyNSwgMTMwNzI3LCAxMzA3MzIsIDEzMDczNCwgMTMwNzM5LCAxMzA3NDEsIDEzMDc0NiwgMTMwNzQ4LCAKKyAgICAxMzA3NTMsIDEzMDc1NSwgMTMwNzU4LCAxMzA3NjAsIDEzMDc2NCwgMTMwNzY2LCAxMzA3NzMsIDEzMDc3NSwgMTMwNzc3LCAKKyAgICAxMzA3NzksIDEzMDc4NCwgMTMwNzg2LCAxMzA3ODgsIDEzMDc5MCwgMTMwNzkyLCAxMzA3OTQsIDEzMDc5OSwgMTMwODAzLCAKKyAgICAxMzA4MDUsIDEzMDgxMCwgMTMwODE0LCAxMzA4MTYsIDEzMDgyMSwgMTMwODI1LCAxMzA4MjcsIDEzMDgzMiwgMTMwODM2LCAKKyAgICAxMzA4MzgsIDEzMDg0MCwgMTMwODQyLCAxMzA4NDQsIDEzMDg0OCwgMTMwODUwLCAxMzA4NTUsIDEzMDg1NywgMTMwODYzLCAKKyAgICAxMzA4NjUsIDEzMDg3MSwgMTMwODczLCAxMzA4NzUsIDEzMDg3NywgMTMwODgxLCAxMzA4ODMsIDEzMDg5MCwgMTMwODkyLCAKKyAgICAxMzA4OTksIDEzMDkwMSwgMTMwOTA2LCAxMzA5MTEsIDEzMDkxMywgMTMwOTE5LCAxMzA5MjUsIDEzMDkyNywgMTMwOTMzLCAKKyAgICAxMzA5MzgsIDEzMDk0MCwgMTMwOTQ2LCAxMzA5NTIsIDEzMDk1NCwgMTMwOTYwLCAxMzA5NjYsIDEzMDk2OCwgMTMwOTc0LCAKKyAgICAxMzA5NzgsIDEzMDk4MCwgMTMwOTg1LCAxMzA5ODcsIDEzMDk4OSwgMTMwOTk0LCAxMzA5OTYsIDEzMDk5OCwgMTMxMDA0LCAKKyAgICAxMzEwMDYsIDEzMTAxMSwgMTMxMDE1LCAxMzEwMTcsIDEzMTAyMiwgMTMxMDI2LCAxMzEwMjgsIDEzMTAzNCwgMTMxMDM2LCAKKyAgICAxMzEwNDAsIDEzMTA0MiwgMTMxMDQ2LCAxMzEwNDgsIDEzMTA1NSwgMTMxMDYyLCAxMzEwNjQsIDEzMTA3MSwgMTMxMDc4LCAKKyAgICAxMzEwODAsIDEzMTA4NSwgMTMxMDg3LCAxMzEwOTQsIDEzMTA5NiwgMTMxMTAxLCAxMzExMDMsIDEzMTEwOSwgMTMxMTExLCAKKyAgICAxMzExMTUsIDEzMTExNywgMTMxMTIzLCAxMzExMjUsIDEzMTEyOSwgMTMxMTMxLCAxMzExMzcsIDEzMTEzOSwgMTMxMTQxLCAKKyAgICAxMzExNDMsIDEzMTE0OCwgMTMxMTUzLCAxMzExNTUsIDEzMTE1OSwgMTMxMTY2LCAxMzExNzMsIDEzMTE3OCwgMTMxMTgzLCAKKyAgICAxMzExOTUsIDEzMTE5NywgMTMxMTk5LCAxMzEyMDEsIDEzMTIwMywgMTMxMjA1LCAxMzEyMDcsIDEzMTIwOSwgMTMxMjExLCAKKyAgICAxMzEyMTMsIDEzMTIxNSwgMTMxMjE3LCAxMzEyMTksIDEzMTIyMSwgMTMxMjIzLCAxMzEyMjUsIDEzMTIyNywgMTMxMjI5LCAKKyAgICAxMzEyMzUsIDEzMTI0MiwgMTMxMjQ3LCAxMzEyNTIsIDEzMTI2MywgMTMxMjY1LCAxMzEyNjcsIDEzMTI2OSwgMTMxMjcxLCAKKyAgICAxMzEyNzMsIDEzMTI3NSwgMTMxMjc3LCAxMzEyNzksIDEzMTI4MSwgMTMxMjgzLCAxMzEyODUsIDEzMTI4NywgMTMxMjg5LCAKKyAgICAxMzEyOTEsIDEzMTI5MywgMTMxMjk1LCAxMzEzMDAsIDEzMTMwMiwgMTMxMzA0LCAxMzEzMTUsIDEzMTMxNywgMTMxMzE5LCAKKyAgICAxMzEzMjEsIDEzMTMyMywgMTMxMzI1LCAxMzEzMjcsIDEzMTMyOSwgMTMxMzMxLCAxMzEzMzMsIDEzMTMzNSwgMTMxMzM3LCAKKyAgICAxMzEzMzksIDEzMTM0MSwgMTMxMzQzLCAxMzEzNDUsIDEzMTM0NywgMTMxMzQ5LCAxMzEzNTEsIDEzMTM1MywgMTMxMzU1LCAKKyAgICAxMzEzNTcsIDEzMTM1OSwgMTMxMzYxLCAxMzEzNjMsIDEzMTM2NSwgMTMxMzY3LCAxMzEzNjksIDEzMTM3MSwgMTMxMzczLCAKKyAgICAxMzEzNzUsIDEzMTM3NywgMTMxMzc5LCAxMzEzODEsIDEzMTM4MywgMTMxMzg1LCAxMzEzODcsIDEzMTM4OSwgMTMxMzkxLCAKKyAgICAxMzEzOTMsIDEzMTM5NSwgMTMxMzk3LCAxMzEzOTksIDEzMTQwMSwgMTMxNDAzLCAxMzE0MDUsIDEzMTQwNywgMTMxNDA5LCAKKyAgICAxMzE0MTEsIDEzMTQxMywgMTMxNDE1LCAxMzE0MTcsIDEzMTQxOSwgMTMxNDIxLCAxMzE0MjMsIDEzMTQyNSwgMTMxNDI3LCAKKyAgICAxMzE0MjksIDEzMTQzMSwgMTMxNDMzLCAxMzE0MzUsIDEzMTQzNywgMTMxNDM5LCAxMzE0NDEsIDEzMTQ0MywgMTMxNDQ1LCAKKyAgICAxMzE0NDcsIDEzMTQ0OSwgMTMxNDUxLCAxMzE0NTMsIDEzMTQ1NSwgMTMxNDU3LCAxMzE0NTksIDEzMTQ2MSwgMTMxNDYzLCAKKyAgICAxMzE0NjUsIDEzMTQ2NywgMTMxNDY5LCAxMzE0NzEsIDEzMTQ3MywgMTMxNDc1LCAxMzE0NzcsIDEzMTQ3OSwgMTMxNDgxLCAKKyAgICAxMzE0ODMsIDEzMTQ4NSwgMTMxNDg3LCAxMzE0ODksIDEzMTQ5MSwgMTMxNDkzLCAxMzE0OTUsIDEzMTQ5NywgMTMxNDk5LCAKKyAgICAxMzE1MDEsIDEzMTUwMywgMTMxNTA1LCAxMzE1MDcsIDEzMTUwOSwgMTMxNTExLCAxMzE1MTMsIDEzMTUxNSwgMTMxNTE3LCAKKyAgICAxMzE1MTksIDEzMTUyMSwgMTMxNTIzLCAxMzE1MjUsIDEzMTUyNywgMTMxNTI5LCAxMzE1MzEsIDEzMTUzMywgMTMxNTM1LCAKKyAgICAxMzE1MzcsIDEzMTUzOSwgMTMxNTQxLCAxMzE1NDMsIDEzMTU0NSwgMTMxNTQ3LCAxMzE1NDksIDEzMTU1MSwgMTMxNTUzLCAKKyAgICAxMzE1NTUsIDEzMTU1NywgMTMxNTU5LCAxMzE1NjEsIDEzMTU2MywgMTMxNTY1LCAxMzE1NjcsIDEzMTU2OSwgMTMxNTcxLCAKKyAgICAxMzE1NzMsIDEzMTU3NSwgMTMxNTc3LCAxMzE1NzksIDEzMTU4MSwgMTMxNTgzLCAxMzE1ODUsIDEzMTU4NywgMTMxNTg5LCAKKyAgICAxMzE1OTEsIDEzMTU5MywgMTMxNTk1LCAxMzE1OTcsIDEzMTU5OSwgMTMxNjAxLCAxMzE2MDMsIDEzMTYwNSwgMTMxNjA3LCAKKyAgICAxMzE2MDksIDEzMTYxMSwgMTMxNjEzLCAxMzE2MTUsIDEzMTYxNywgMTMxNjE5LCAxMzE2MjEsIDEzMTYyMywgMTMxNjI1LCAKKyAgICAxMzE2MjcsIDEzMTYyOSwgMTMxNjMxLCAxMzE2MzMsIDEzMTYzNSwgMTMxNjM3LCAxMzE2MzksIDEzMTY0MSwgMTMxNjQzLCAKKyAgICAxMzE2NDUsIDEzMTY0NywgMTMxNjQ5LCAxMzE2NTEsIDEzMTY1MywgMTMxNjU1LCAxMzE2NTcsIDEzMTY1OSwgMTMxNjYxLCAKKyAgICAxMzE2NjMsIDEzMTY2NSwgMTMxNjY3LCAxMzE2NjksIDEzMTY3MSwgMTMxNjczLCAxMzE2NzUsIDEzMTY3NywgMTMxNjc5LCAKKyAgICAxMzE2ODEsIDEzMTY4MywgMTMxNjg1LCAxMzE2ODcsIDEzMTY4OSwgMTMxNjkxLCAxMzE2OTMsIDEzMTY5NSwgMTMxNjk3LCAKKyAgICAxMzE2OTksIDEzMTcwMSwgMTMxNzAzLCAxMzE3MDUsIDEzMTcwNywgMTMxNzA5LCAxMzE3MTEsIDEzMTcxMywgMTMxNzE1LCAKKyAgICAxMzE3MTcsIDEzMTcxOSwgMTMxNzIxLCAxMzE3MjMsIDEzMTcyNSwgMTMxNzI3LCAxMzE3MjksIDEzMTczMSwgMTMxNzMzLCAKKyAgICAxMzE3MzUsIDEzMTczNywgMTMxNzM5LCAxMzE3NDEsIDEzMTc0MywgMTMxNzQ1LCAxMzE3NDcsIDEzMTc0OSwgMTMxNzUxLCAKKyAgICAxMzE3NTMsIDEzMTc1NSwgMTMxNzU3LCAxMzE3NTksIDEzMTc2MSwgMTMxNzYzLCAxMzE3NjUsIDEzMTc2NywgMTMxNzY5LCAKKyAgICAxMzE3NzEsIDEzMTc3MywgMTMxNzc1LCAxMzE3NzcsIDEzMTc3OSwgMTMxNzgxLCAxMzE3ODMsIDEzMTc4NSwgMTMxNzg3LCAKKyAgICAxMzE3ODksIDEzMTc5MSwgMTMxNzkzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAxMzE3OTUsIDEzMTgwNSwgMTMxODE1LCAxMzE4MjQsIDEzMTgzMywgMTMxODQ2LCAxMzE4NTksIDEzMTg3MSwgMTMxODgzLCAKKyAgICAxMzE4OTMsIDEzMTkwMywgMTMxOTEzLCAxMzE5MjMsIDEzMTkzNCwgMTMxOTQ1LCAxMzE5NTUsIDEzMTk2NCwgMTMxOTczLCAKKyAgICAxMzE5ODIsIDEzMTk5NSwgMTMyMDA4LCAxMzIwMjAsIDEzMjAzMiwgMTMyMDQyLCAxMzIwNTIsIDEzMjA2MiwgMTMyMDcyLCAKKyAgICAxMzIwODEsIDEzMjA5MCwgMTMyMDk5LCAxMzIxMDgsIDEzMjExNywgMTMyMTI2LCAxMzIxMzUsIDEzMjE0NCwgMTMyMTUzLCAKKyAgICAxMzIxNjIsIDEzMjE3MSwgMTMyMTgwLCAxMzIxOTEsIDEzMjIwMSwgMTMyMjExLCAxMzIyMjQsIDEzMjIzNCwgMTMyMjQ3LCAKKyAgICAxMzIyNTQsIDEzMjI2NCwgMTMyMjcxLCAxMzIyNzgsIDEzMjI4NSwgMTMyMjkyLCAxMzIyOTksIDEzMjMwNiwgMTMyMzE1LCAKKyAgICAxMzIzMjQsIDEzMjMzMywgMTMyMzQyLCAxMzIzNTEsIDEzMjM2MCwgMTMyMzY5LCAxMzIzNzgsIDEzMjM4NiwgMTMyMzk0LCAKKyAgICAxMzI0MDEsIDEzMjQxMSwgMTMyNDIwLCAxMzI0MjgsIDEzMjQzNSwgMTMyNDQ1LCAxMzI0NTQsIDEzMjQ1OCwgMTMyNDYyLCAKKyAgICAxMzI0NjYsIDEzMjQ3MCwgMTMyNDc0LCAxMzI0NzgsIDEzMjQ4MiwgMTMyNDg2LCAxMzI0OTAsIDEzMjQ5NCwgMTMyNDk3LCAKKyAgICAxMzI1MDEsIDEzMjUwNCwgMTMyNTA3LCAxMzI1MTEsIDEzMjUxNSwgMTMyNTE5LCAxMzI1MjMsIDEzMjUyNywgMTMyNTMxLCAKKyAgICAxMzI1MzUsIDEzMjUzOSwgMTMyNTQzLCAxMzI1NDcsIDEzMjU1MSwgMTMyNTU1LCAxMzI1NTksIDEzMjU2MywgMTMyNTY3LCAKKyAgICAxMzI1NzEsIDEzMjU3NSwgMTMyNTc5LCAxMzI1ODMsIDEzMjU4NywgMTMyNTkxLCAxMzI1OTUsIDEzMjU5OSwgMTMyNjAzLCAKKyAgICAxMzI2MDcsIDEzMjYxMSwgMTMyNjE1LCAxMzI2MTksIDEzMjYyMywgMTMyNjI3LCAxMzI2MzEsIDEzMjYzNSwgMTMyNjM5LCAKKyAgICAxMzI2NDMsIDEzMjY0NywgMTMyNjUxLCAxMzI2NTUsIDEzMjY1OSwgMTMyNjYzLCAxMzI2NjcsIDEzMjY3MSwgMTMyNjc1LCAKKyAgICAxMzI2NzksIDEzMjY4MywgMTMyNjg3LCAxMzI2OTEsIDEzMjY5NSwgMTMyNjk5LCAxMzI3MDMsIDEzMjcwNywgMTMyNzExLCAKKyAgICAxMzI3MTUsIDEzMjcxOSwgMTMyNzIzLCAxMzI3MjcsIDEzMjczMSwgMTMyNzM1LCAxMzI3MzksIDEzMjc0MywgMTMyNzQ3LCAKKyAgICAxMzI3NTEsIDEzMjc1NSwgMTMyNzU5LCAxMzI3NjMsIDEzMjc2NywgMTMyNzcxLCAxMzI3NzUsIDEzMjc3OSwgMTMyNzgzLCAKKyAgICAxMzI3ODcsIDEzMjc5MSwgMTMyNzk1LCAxMzI3OTksIDEzMjgwMywgMTMyODA3LCAxMzI4MTEsIDEzMjgxNSwgMTMyODE5LCAKKyAgICAxMzI4MjMsIDEzMjgyNywgMTMyODMxLCAxMzI4MzUsIDEzMjgzOSwgMTMyODQzLCAxMzI4NDcsIDEzMjg1MCwgMTMyODU0LCAKKyAgICAxMzI4NTgsIDEzMjg2MiwgMTMyODY2LCAxMzI4NzAsIDEzMjg3NCwgMTMyODc4LCAxMzI4ODIsIDEzMjg4NiwgMTMyODkwLCAKKyAgICAxMzI4OTQsIDEzMjg5OCwgMTMyOTAyLCAxMzI5MDYsIDEzMjkxMCwgMTMyOTE0LCAxMzI5MTgsIDEzMjkyMiwgMTMyOTI2LCAKKyAgICAxMzI5MzAsIDEzMjkzNCwgMTMyOTM4LCAxMzI5NDIsIDEzMjk0NiwgMTMyOTUwLCAxMzI5NTQsIDEzMjk1OCwgMTMyOTYyLCAKKyAgICAxMzI5NjYsIDEzMjk3MCwgMTMyOTc0LCAxMzI5NzgsIDEzMjk4MiwgMTMyOTg2LCAxMzI5OTAsIDEzMjk5NCwgMTMyOTk4LCAKKyAgICAxMzMwMDIsIDEzMzAwNiwgMTMzMDEwLCAxMzMwMTQsIDEzMzAxOCwgMTMzMDIyLCAxMzMwMjYsIDEzMzAzMCwgMTMzMDM0LCAKKyAgICAxMzMwMzgsIDEzMzA0MiwgMTMzMDQ2LCAxMzMwNTAsIDEzMzA1NCwgMTMzMDU4LCAxMzMwNjIsIDEzMzA2NiwgMTMzMDcwLCAKKyAgICAxMzMwNzQsIDEzMzA3OCwgMTMzMDgyLCAxMzMwODYsIDEzMzA5MCwgMTMzMDk0LCAxMzMwOTgsIDEzMzEwMiwgMTMzMTA2LCAKKyAgICAxMzMxMTAsIDEzMzExNCwgMTMzMTE4LCAxMzMxMjIsIDEzMzEyNiwgMTMzMTMwLCAxMzMxMzQsIDEzMzEzOCwgMTMzMTQyLCAKKyAgICAxMzMxNDYsIDEzMzE1MCwgMTMzMTU0LCAxMzMxNTgsIDEzMzE2MiwgMTMzMTY2LCAxMzMxNzAsIDEzMzE3NCwgMTMzMTc4LCAKKyAgICAxMzMxODIsIDEzMzE4NiwgMTMzMTkwLCAxMzMxOTQsIDEzMzE5OCwgMTMzMjAyLCAxMzMyMDYsIDEzMzIxMCwgMTMzMjE0LCAKKyAgICAxMzMyMTgsIDEzMzIyMiwgMTMzMjI2LCAxMzMyMzAsIDEzMzIzNCwgMTMzMjM4LCAxMzMyNDIsIDEzMzI0NiwgMTMzMjUwLCAKKyAgICAxMzMyNTQsIDEzMzI1OCwgMTMzMjYyLCAxMzMyNjYsIDEzMzI3MCwgMTMzMjc0LCAxMzMyNzgsIDEzMzI4MiwgMTMzMjg2LCAKKyAgICAxMzMyOTAsIDEzMzI5NCwgMTMzMjk4LCAxMzMzMDIsIDEzMzMwNiwgMTMzMzEwLCAxMzMzMTQsIDEzMzMxOCwgMTMzMzIyLCAKKyAgICAxMzMzMjYsIDEzMzMzMCwgMTMzMzM0LCAxMzMzMzgsIDEzMzM0MiwgMTMzMzQ2LCAxMzMzNTAsIDEzMzM1NCwgMTMzMzU4LCAKKyAgICAxMzMzNjIsIDEzMzM2NiwgMTMzMzcwLCAxMzMzNzQsIDEzMzM3OCwgMTMzMzgyLCAxMzMzODYsIDEzMzM5MCwgMTMzMzk0LCAKKyAgICAxMzMzOTgsIDEzMzQwMiwgMTMzNDA2LCAxMzM0MTAsIDEzMzQxNCwgMTMzNDE4LCAxMzM0MjIsIDEzMzQyNiwgMTMzNDMwLCAKKyAgICAxMzM0MzQsIDEzMzQzOCwgMTMzNDQyLCAxMzM0NDYsIDEzMzQ1MCwgMTMzNDU0LCAxMzM0NTgsIDEzMzQ2MiwgMTMzNDY2LCAKKyAgICAxMzM0NzAsIDEzMzQ3NCwgMTMzNDc4LCAxMzM0ODIsIDEzMzQ4NiwgMTMzNDkwLCAxMzM0OTQsIDEzMzQ5OCwgMTMzNTAyLCAKKyAgICAxMzM1MDYsIDEzMzUxMCwgMTMzNTE0LCAxMzM1MTgsIDEzMzUyMiwgMTMzNTI2LCAxMzM1MzAsIDEzMzUzNCwgMTMzNTM4LCAKKyAgICAxMzM1NDIsIDEzMzU0NiwgMTMzNTUwLCAxMzM1NTQsIDEzMzU1OCwgMTMzNTYyLCAxMzM1NjYsIDEzMzU3MCwgMTMzNTc0LCAKKyAgICAxMzM1NzgsIDEzMzU4MiwgMTMzNTg2LCAxMzM1OTAsIDEzMzU5NCwgMTMzNTk4LCAxMzM2MDIsIDEzMzYwNiwgMTMzNjEwLCAKKyAgICAxMzM2MTQsIDEzMzYxOSwgMTMzNjI0LCAxMzM2MjksIDEzMzYzMywgMTMzNjM5LCAxMzM2NDYsIDEzMzY1MywgMTMzNjYwLCAKKyAgICAxMzM2NjcsIDEzMzY3NCwgMTMzNjgxLCAxMzM2ODgsIDEzMzY5NSwgMTMzNzAyLCAxMzM3MDksIDEzMzcxNiwgMTMzNzIzLCAKKyAgICAxMzM3MzAsIDEzMzczNiwgMTMzNzQzLCAxMzM3NTAsIDEzMzc1NiwgMTMzNzYzLCAxMzM3NzAsIDEzMzc3NywgMTMzNzg0LCAKKyAgICAxMzM3OTEsIDEzMzc5OCwgMTMzODA1LCAxMzM4MTIsIDEzMzgxOSwgMTMzODI2LCAxMzM4MzMsIDEzMzg0MCwgMTMzODQ3LCAKKyAgICAxMzM4NTMsIDEzMzg1OSwgMTMzODY2LCAxMzM4NzMsIDEzMzg4MiwgMTMzODkxLCAxMzM5MDAsIDEzMzkwOSwgMTMzOTE0LCAKKyAgICAxMzM5MTksIDEzMzkyNSwgMTMzOTMxLCAxMzM5MzcsIDEzMzk0MywgMTMzOTQ5LCAxMzM5NTUsIDEzMzk2MSwgMTMzOTY3LCAKKyAgICAxMzM5NzMsIDEzMzk3OSwgMTMzOTg1LCAxMzM5OTEsIDEzMzk5NiwgMTM0MDAyLCAxMzQwMTIsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogfTsKIAogLyogbmFtZS0+Y29kZSBkaWN0aW9uYXJ5ICovCiBzdGF0aWMgdW5zaWduZWQgaW50IGNvZGVfaGFzaFtdID0gewogICAgIDc0MjI0LCA0ODUxLCAwLCA3ODE1NiwgNzg0OTksIDEyODY4NSwgNzkyOSwgMCwgMTk0NjgyLCAxMjc3NjYsIDc4NTAwLCAKLSAgICA2NjQ4MCwgMCwgNDI4MzMsIDc0NTI5LCAxMjA2NCwgMCwgNTk2LCAwLCAxMjgxMDMsIDEzMTkyLCA4NjUxLCAwLCAwLCAKKyAgICA2NjQ4MCwgMCwgNDI4MzMsIDc0NTI5LCAxMjA2NCwgMCwgNTk2LCA5ODM4MTIsIDY5ODUwLCAxMzE5MiwgODY1MSwgMCwgMCwgCiAgICAgMTIwMjE4LCAxMjk5NSwgNjQ4NjUsIDEzNzMsIDAsIDAsIDU4MTYsIDExOTA2NywgNjQ4MTAsIDQyMzEsIDY4MjUsIDQyODk3LCAKICAgICA0MjMzLCA0MjM0LCA0MjMyLCA5MTc4MzYsIDc0NDE1LCAxMjAyMTAsIDYzODQsIDkxNzg0MCwgNzgxMDgsIDg4NTEsIDAsIAotICAgIDEyODU1MywgMCwgNDE2MDEsIDg4NzQsIDAsIDc3NDgsIDAsIDAsIDAsIDEyNzkzOSwgNDE2MDMsIDk3ODQsIDAsIDkxODgsIAotICAgIDQxNjAwLCAwLCAxMjA2MTgsIDEyODM0MywgMTQ1NywgMzUzNSwgMCwgMCwgMCwgMCwgNjUyNDAsIDExOTUxLCAwLCAzNDA0LCAKLSAgICAwLCAwLCAwLCAxNzU5LCAwLCA0MTA3NiwgNjgzODMsIDEyMDU3MiwgMTE5MjA1LCA2NjU3NywgMCwgMTI3NzY0LCA2NTg1OSwgCi0gICAgMCwgNzQwNCwgMCwgMCwgMCwgMCwgNjU5MDgsIDk4MzQsIDMwNTUsIDk4NTIsIDAsIDY1Mjg4LCAwLCAxMTM5OCwgMCwgCi0gICAgOTI0MTcsIDExOTI1NSwgMCwgMCwgNjAzLCA3NDM5OCwgNDM1NDgsIDAsIDAsIDkxNzgyNCwgMzM1MCwgMTIwODE3LCAKLSAgICA2NDMxOCwgOTE3ODI4LCAxMjcwODksIDMzOTAsIDc0NDgzLCA0MzI2NSwgMTIwNTk5LCA5MTc4MzAsIDc4NTczLCAwLCAKLSAgICAxOTE5LCAzNDAwLCAxMjA2NTEsIDEyNzk0NCwgMTE2NDcsIDkxNzU0MCwgNjY0NDYsIDY0MTQxLCA4NTYyLCAyMTIxLCAKLSAgICA2NDEzOCwgNDA0MywgODcxMiwgNjQxMzQsIDY0MTMzLCAxMTI5NywgMCwgMCwgMTE5NjYsIDY0MTI4LCAxMjg1ODcsIDAsIDAsIAotICAgIDY0MTMyLCAxMDg2NywgNjQxMzAsIDY0MTI5LCAwLCA0MzM3NCwgOTc3OSwgMjc2NCwgNjYwMDIsIDEwMTY3LCA5NDcxLCAwLCAKLSAgICA2NjAyMSwgMCwgMCwgNTQ1NywgNTQ0MCwgODg1NywgMTI4NzcxLCA2NTI4MiwgMjg0MywgNTM1NSwgMTI3OTI4LCAwLCAwLCAKLSAgICA1MTk0LCAxMTY1NywgNDM5ODQsIDEyODI5MiwgMCwgMCwgMCwgMCwgMTI3MDI3LCAxMDcxNywgNjQ1NzAsIDU2MzAsIAotICAgIDc0MzUwLCA2NDE0MywgMTA2ODIsIDAsIDEwNjAyLCA4MDAsIDQyNDk5LCA2NjE4NiwgMCwgMCwgNjQ5MzAsIDExNjMxLCAKLSAgICA2NDE0NiwgNjQxNDUsIDY0MTQ0LCA3NjIsIDEzMTcyLCAxMTg4NTksIDE5NDY2MSwgNjQ0NjgsIDEwOTA2LCAxMzUzLCAKLSAgICA2OTYwLCAwLCAwLCA1ODI4LCA4NzI0LCA5MTc4MDYsIDg5MzMsIDE2MDEsIDQyMjQ0LCA4NTgsIDcwODAsIDY0MTA5LCAKLSAgICA2NDEwOCwgODA5MCwgMCwgNzQ0MDEsIDkxNzgxMSwgNTg3LCAwLCAxMjgxMzEsIDAsIDAsIDAsIDc4MjE0LCAyNzUwLCAKLSAgICA3NDIxOCwgNTU2LCA2NDE1OCwgNjQxNTcsIDAsIDEyMjEzLCAxOTQ2NzgsIDI3NjAsIDAsIDAsIDAsIDE5NDc5NCwgNjQxNTYsIAotICAgIDY0MTU1LCA0MjQ5NiwgMCwgNjQxNTEsIDY0MTUwLCAxMjY3OSwgMTAwNTMsIDEwNDIxLCAxMTA5MywgNjQxNTMsIDY0MTUyLCAKLSAgICAwLCAwLCA0ODM5LCAwLCAwLCAxODc0LCAxMTkwMTYsIDAsIDY1NzcsIDY0MTI1LCA2NDEyNCwgNjQxMjMsIDAsIDEyNzUzMSwgCi0gICAgOTI1MzQsIDcwMDcsIDc1OTAsIDY1NDQzLCA5MDM2LCA5MjU1MCwgNjQxMjIsIDc0NDIyLCA2NjYwOSwgMCwgNjQxMTcsIAotICAgIDY0MTE2LCA2Mjg3LCA2NDExNCwgMjcyNSwgNjQxMjAsIDY0MTE5LCA0Mzk4MSwgNDIxMjgsIDEyNzg0MiwgMTE3NywgCi0gICAgNjU2MDEsIDEyMzIyLCA2NDEwNiwgNjk2NDAsIDEyNzMwNiwgNjQxMDIsIDc4NTksIDE5NDUsIDY0MDk5LCAwLCAxMDQ1MywgCi0gICAgNjQxMDQsIDcxODgsIDc5OTcsIDAsIDczODksIDAsIDg3MDUsIDY0MDk3LCA2NDA5NiwgOTU3MSwgNTI4LCAxMjg2NzEsIAotICAgIDQ0MDE3LCAxMTQyOSwgMCwgMCwgMCwgOTE3OTkwLCA3Mzg0MSwgMCwgMCwgOTA1NiwgNjQzMTMsIDYxODgsIDEyMDAxOSwgCi0gICAgNjE1NSwgNjQwNjgsIDE4MjMsIDY0MDY2LCA2NDA2NSwgNjQwNzIsIDY0MDcxLCA2MywgNzIzMywgOTIyMTIsIDAsIDQxOTA0LCAKLSAgICA2NjM5LCA2NDA2NCwgMCwgMTI4MzQ0LCAwLCAxMTc2LCAxMTg5NTksIDEyNzkzMCwgODE2MiwgMTI4NjY3LCAwLCAwLCAKLSAgICAxMjA1MTksIDY2Mzc2LCA2NjI0MiwgMTE0MTUsIDQzMzMsIDk4NTUsIDY0MTEyLCA2NDY0MiwgMCwgNTM4OCwgMCwgMCwgMCwgCi0gICAgNzcxNCwgNjYyMjIsIDAsIDc3NjgsIDAsIDQxOTksIDY0NzA4LCAwLCAwLCAwLCA4NzA4LCA5NTYwLCA2NDA3NywgNjQwNzYsIAotICAgIDg5OTYsIDQ5OTIsIDQ0NzEsIDQyNjIyLCA2NDA3OSwgNjQwNzgsIDkyMTc5LCAwLCAwLCAwLCA2NDYxNSwgNDE5MTUsIDAsIAotICAgIDEyMDc1LCA5MjIxMSwgMCwgNTE3NCwgMCwgMCwgMTI3NTU3LCAzMTIzLCAwLCAxMjY4NSwgMTI3OTA0LCA4NDA4LCA2NDcwNCwgCi0gICAgMCwgMCwgOTIyMywgMCwgNDE2MTYsIDAsIDczNzk3LCAwLCAxMTE2LCAxMjgyMDQsIDQzMDQ5LCA3MTM2LCA0MzA1MCwgCi0gICAgODU0OCwgMTIwNDg1LCAwLCAxMTkwNjEsIDkxNzk5OSwgMCwgMTMxMTUsIDQzNjc1LCA2NDA5MSwgOTMyMiwgMCwgMTIwNTk1LCAKLSAgICA2NDA5NSwgNjQwOTQsIDgxMTEsIDY2MjQ3LCA0MjMzMiwgNjQwODksIDY0MDg4LCA2MTk5LCAwLCAwLCAxMTQzNCwgNjQwODMsIAotICAgIDY0MDgyLCAxMTMyOSwgNzczNywgNjQwODcsIDY0MDg2LCA2NDA4NSwgNjQwODQsIDE5NDgxNywgOTkyNywgNDEzMzUsIAotICAgIDQxMTgsIDE3OTcsIDAsIDQxMzM0LCAwLCA0NiwgNDM0NDgsIDEyNzg4MSwgMjk4LCAwLCAxMjgxMTQsIDAsIDQyNjI3LCAwLCAKLSAgICAzMiwgNjE4NywgMTE5MDUyLCAxMTQ5NSwgMTE0NTksIDM2NjUsIDAsIDQyODcxLCAwLCAxOTkyMywgNzQzMzUsIDAsIAotICAgIDEyNzE5MiwgNjYyMzksIDQyMjY0LCA2NDQwMywgNDQxMiwgNzI0MCwgOTI0OTUsIDAsIDAsIDY1NzU4LCAxMjc1MCwgNDE4MSwgCi0gICAgODU0NCwgMCwgMTIwMTk5LCA5MTc4OTcsIDEyMDE5OCwgNjk4MDksIDYxODEsIDY1MDE0LCAwLCAwLCAwLCAzNjM5LCAKLSAgICAxMTk1ODgsIDAsIDAsIDExODkwNCwgMTAwNzMsIDEyMDIwNiwgMTI4ODYyLCAxMjcxODYsIDY4NDA5LCA0Mjg0NCwgNzQ5OCwgCi0gICAgMTA5OCwgOTI1NjUsIDEyMDIwNSwgMCwgMCwgMTAyMDcsIDg3ODksIDAsIDAsIDAsIDAsIDkyMzQsIDAsIDYxODIsIDAsIAotICAgIDY1MDU4LCAwLCAwLCAwLCAwLCA1NDcxLCA5NDYxLCA1NTczLCAxMTg5MzYsIDU0NzMsIDQ0LCAwLCA2NjI0NCwgMTE4OTA3LCAKLSAgICAwLCA2NjIzOCwgMTI4NDQsIDAsIDE2MjIsIDc3NjcsIDE5MDAsIDQxMzM5LCAxMTQ1OCwgMCwgMCwgNjU4MSwgNTU3NiwgMCwgCi0gICAgNjQ0MDUsIDQxMzM3LCAwLCA0MTYzMSwgODk0NywgNjgzOTAsIDEyNzg0NCwgNDE2OTQsIDAsIDAsIDc5MDgsIDAsIDEwNDA4LCAKLSAgICA2NTc5LCAwLCA2NDYxOCwgMCwgMTIwMTQ3LCAyMTM4LCA2NTgzLCA3NzYxLCAxMjcwMTAsIDEyMDUwNCwgMTk0ODI4LCAwLCAKLSAgICA1MDU4LCA0MTAxMCwgOTk5MiwgMTI4Mjk5LCA1MDU3LCAwLCAwLCA3NDUzOCwgNTA1NCwgMTE4OTUxLCAxOTQ5NzEsIAotICAgIDc4NjA2LCAwLCAxNDM3LCA0MTYxNywgNjU4LCAzNDk3LCAxMjg1MDksIDc0ODYsIDUwNjEsIDUwNjAsIDQyMzUsIDAsIDAsIAotICAgIDAsIDEyMTEzLCA0MjM2LCA0NzI3LCAwLCAwLCA3NjkzLCAxMDc0OSwgMCwgNzQ4OCwgNTc3MywgOTc4LCAxMjgxMzQsIDAsIAotICAgIDQxNjE5LCAxMDIzOSwgNjg2MTEsIDAsIDY2MjA5LCAwLCAxMjg3MDAsIDk3NDgsIDAsIDEyNzUyNCwgMCwgMCwgMCwgMCwgCi0gICAgMTk1MDgzLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA5MzQxLCAxMTk1OTYsIDIzNzksIDExMzI1LCAwLCA2NDY2OCwgNjc4NTQsIAotICAgIDgxMjUsIDEyMDU0NSwgNjc0MywgMTE5MTc1LCA5MTc5NDAsIDIzNjksIDAsIDAsIDAsIDExOTIzNSwgNzQwOTIsIDczOTM2LCAKLSAgICA3MDA4LCA0MzY2MCwgMCwgMCwgMCwgMjM2NywgMTI3ODI3LCAwLCAyNjQsIDIzNzUsIDgwNjAsIDYxOTQsIDExOTg1OCwgCi0gICAgMTg0NCwgMTE5MDg0LCAwLCA2MDE5LCAwLCAwLCA2OTYxLCAwLCAxMTg4MzksIDAsIDg4MDAsIDAsIDQyODYyLCA0NDYzLCAKLSAgICA2NTU4MSwgNjE5MiwgMTk0Njc2LCA0Mjc3MSwgMCwgOTIzMzMsIDcyNSwgNjUwNDIsIDExODc5NywgMTIwODAwLCAwLCAKLSAgICAxMjg5MiwgMCwgMCwgMCwgMCwgMCwgMCwgMTI3MjYxLCAxMjA3MDcsIDAsIDAsIDUwNzQsIDUwNzMsIDEyODc5MCwgODk4MywgCi0gICAgMTE4OTgxLCA3NDQ5MywgMCwgNTA3MiwgMTI4MDcxLCA2MTk4LCAxMTYxNCwgMCwgMTk2LCAwLCAwLCAwLCA0OTI5LCAKLSAgICAxMjAzNDIsIDAsIDAsIDAsIDAsIDQyODQ3LCAwLCAwLCAwLCA0OTM0LCAwLCA0MTMyMywgOTc1OCwgMCwgOTIyODksIAotICAgIDEyNzkxNywgNDI1ODQsIDAsIDQzMjksIDQxMzIxLCA0OTc5LCAzMDQ4LCA3NzUyLCA0MTMyMCwgMCwgNzQ0MTgsIDEyODE5LCAKLSAgICAwLCA1MDcxLCAwLCAzNjQyLCAwLCA1MDcwLCAxMDA0MiwgMTE4ODM1LCAzOTg3LCA1MDY4LCAwLCA4OTA5LCA3ODY1MCwgCi0gICAgNzg2NDksIDAsIDEwNjM2LCA3Mzk4MSwgMTE4MDYsIDQzMTY3LCA0NTMxLCAxMjQ1LCA5MTA1LCA2NjQ2MywgNDkyMSwgCi0gICAgMTIwMjE5LCA0OTI2LCA2NTU0NCwgNzM4ODQsIDE5NDYxOSwgMCwgMCwgNjQ3MDksIDAsIDE5NDYyMCwgNzg4ODAsIDQ5MjIsIAotICAgIDMyNSwgOTkyLCAxMTk1NjgsIDQ5MjUsIDAsIDAsIDk1MjYsIDQ5MjAsIDAsIDk0OCwgMCwgMTIwMjA4LCA0OTMwLCAwLCAKLSAgICA5MjE3NSwgMTIwMjc1LCA0OTMzLCAwLCAwLCAxMTg5ODUsIDQ5MjgsIDAsIDAsIDc0NzcwLCAxMjAxOTQsIDAsIDcyMiwgCi0gICAgMTk0OTM0LCAxOTkwOCwgMTI2MzcsIDEyNzQ4NSwgMTE5ODU1LCA4NzUzLCAxNTA5LCAwLCA1NDY4LCA5NTExLCAxMjc0NzQsIAotICAgIDEyNzQ3NywgMTY3MiwgNjIwNSwgMTA4NjQsIDc0NTg2LCAxMjc0ODAsIDkyMzEwLCAxMjc0NjYsIDc4NTU1LCAxMjc0NjgsIAotICAgIDczODYzLCAxMjc0NzAsIDEyNzQ3MywgNDE2MDcsIDEyMDExNSwgMTY3OSwgMTIwMTE2LCAxMjAxODAsIDEyMDExMywgCi0gICAgMTI3NDYyLCA3MDA1LCA0MTYwOSwgOTU4MCwgMCwgNDAxLCAwLCA0Mzc3OSwgNjk2OCwgNTc2MSwgMzQyLCA4NTUzLCAwLCAKLSAgICA4MTQzLCAxMjcxMTUsIDExOTgzLCA5MjI0OSwgNjI0LCA3NDUwOCwgNDA1NywgNDM3ODgsIDUwNzgsIDc0MjU4LCAxMjQ3OCwgCi0gICAgMCwgNTA3NiwgMCwgMTk0NjA5LCAwLCAxMjAwOTcsIDY4NSwgOTAyNSwgMTUyNCwgMTI2MTgsIDAsIDU1MzksIDAsIDkyNTIzLCAKLSAgICAxMjAxMDIsIDcxMzgsIDEyMDU1MiwgMCwgMTk0NjExLCA3ODc1MiwgMCwgMTI1MjAsIDgwNTgsIDk3MzIsIDAsIDUwODAsIAotICAgIDY0Nzc1LCA1MDM2LCA1MDM1LCAxMjA1OTAsIDQyNjA0LCAwLCAwLCA4MDc0LCAyNzUsIDEzMjkxLCAxOTA3LCA3ODgzOCwgCisgICAgMTI4NTUzLCAwLCA0MTYwMSwgODg3NCwgOTgzNzc0LCA3NzQ4LCAwLCAwLCAwLCAxMjc5MzksIDQxNjAzLCA5Nzg0LCAwLCAKKyAgICA5MTg4LCA0MTYwMCwgMCwgMTIwNjE4LCAxMjgzNDMsIDE0NTcsIDM1MzUsIDAsIDAsIDAsIDAsIDY1MjQwLCAxMTk1MSwgMCwgCisgICAgMzQwNCwgMCwgMCwgMCwgMTc1OSwgMCwgNDEwNzYsIDY4MzgzLCAxMjA1NzIsIDExOTIwNSwgNjY1NzcsIDk0MDE0LCAKKyAgICAxMjc3NjQsIDY1ODU5LCAwLCA3NDA0LCAwLCAwLCAwLCAwLCA2NTkwOCwgOTgzNCwgMzA1NSwgOTg1MiwgOTgzODUxLCAKKyAgICA2NTI4OCwgMCwgMTEzOTgsIDAsIDkyNDE3LCAxMTkyNTUsIDAsIDAsIDYwMywgNzQzOTgsIDQzNTQ4LCAwLCAwLCA5MTc4MjQsIAorICAgIDMzNTAsIDEyMDgxNywgNjQzMTgsIDkxNzgyOCwgMTI3MDg5LCAzMzkwLCA3NDQ4MywgNDMyNjUsIDEyMDU5OSwgOTE3ODMwLCAKKyAgICA3ODU3MywgMCwgMTkxOSwgMzQwMCwgMTIwNjUxLCAxMjc5NDQsIDExNjQ3LCA5MTc1NDAsIDY2NDQ2LCA2NDE0MSwgODU2MiwgCisgICAgMjEyMSwgNjQxMzgsIDQwNDMsIDg3MTIsIDY0MTM0LCA2NDEzMywgMTEyOTcsIDk4MzY3OSwgOTgzMTUyLCAxMTk2NiwgCisgICAgNjQxMjgsIDEyODU4NywgMCwgMCwgNjQxMzIsIDEwODY3LCA2NDEzMCwgNjQxMjksIDk4MzgzNSwgNDMzNzQsIDk3NzksIAorICAgIDI3NjQsIDY2MDAyLCAxMDE2NywgOTQ3MSwgMCwgNjYwMjEsIDAsIDAsIDU0NTcsIDU0NDAsIDg4NTcsIDkzOTgxLCA2NTI4MiwgCisgICAgMjg0MywgNTM1NSwgMTI3OTI4LCA5ODM5NTYsIDAsIDUxOTQsIDExNjU3LCA0Mzk4NCwgMTI4MjkyLCAwLCA5ODM2MjAsIDAsIAorICAgIDAsIDEyNzAyNywgMTA3MTcsIDY0NTcwLCA1NjMwLCA1Mzk2LCA2NDE0MywgMTA2ODIsIDAsIDEwNjAyLCA4MDAsIDQyNDk5LCAKKyAgICA2NjE4NiwgMCwgMCwgNjQ5MzAsIDExNjMxLCA2NDE0NiwgNjQxNDUsIDY0MTQ0LCA3NjIsIDEzMTcyLCAxMTg4NTksIAorICAgIDE5NDY2MSwgNjQ0NjgsIDEwOTA2LCAxMzUzLCA2OTYwLCAwLCAwLCA1ODI4LCA4NzI0LCA5MTc4MDYsIDg5MzMsIDE2MDEsIAorICAgIDQyMjQ0LCA4NTgsIDcwODAsIDY0MTA5LCA2NDEwOCwgODA5MCwgMCwgNzQ0MDEsIDkxNzgxMSwgNTg3LCAwLCAxMjgxMzEsIAorICAgIDAsIDAsIDAsIDc4MjE0LCAyNzUwLCA3NDIxOCwgNTU2LCA2NDE1OCwgNjQxNTcsIDk4Mzk0MCwgMTIyMTMsIDE5NDY3OCwgCisgICAgMjc2MCwgMCwgMCwgMCwgMTk0Nzk0LCA2NDE1NiwgNjQxNTUsIDQyNDk2LCAwLCA2NDE1MSwgNjQxNTAsIDEyNjc5LCAKKyAgICAxMDA1MywgMTA0MjEsIDExMDkzLCA2NDE1MywgNjQxNTIsIDAsIDAsIDQ4MzksIDAsIDAsIDE4NzQsIDExOTAxNiwgMCwgCisgICAgNjU3NywgNjQxMjUsIDY0MTI0LCA2NDEyMywgMCwgMTI3NTMxLCA5MjUzNCwgNzAwNywgNzU5MCwgNjU0NDMsIDkwMzYsIAorICAgIDkyNTUwLCA2NDEyMiwgNzQ0MjIsIDY2NjA5LCAwLCA2NDExNywgNjQxMTYsIDYyODcsIDY0MTE0LCAyNzI1LCA2NDEyMCwgCisgICAgNjQxMTksIDQzOTgxLCA0MjEyOCwgMTI3ODQyLCAxMTc3LCA2NTYwMSwgMTIzMjIsIDY0MTA2LCA2OTY0MCwgMTI3MzA2LCAKKyAgICA2NDEwMiwgNzg1OSwgMTk0NSwgNjQwOTksIDAsIDEwNDUzLCA2NDEwNCwgNzE4OCwgNzk5NywgMCwgNzM4OSwgOTgzMTYxLCAKKyAgICA4NzA1LCA2NDA5NywgNjQwOTYsIDk1NzEsIDUyOCwgMTI4NjcxLCA0NDAxNywgMTE0MjksIDcxMzQ3LCAwLCA5ODMwNzcsIAorICAgIDkxNzk5MCwgNzM4NDEsIDAsIDAsIDkwNTYsIDY0MzEzLCA2MTg4LCAxMjAwMTksIDYxNTUsIDY0MDY4LCAxODIzLCA2NDA2NiwgCisgICAgNjQwNjUsIDY0MDcyLCA2NDA3MSwgNjMsIDcyMzMsIDkyMjEyLCAwLCA0MTkwNCwgNjYzOSwgNjQwNjQsIDk4Mzc2NiwgCisgICAgMTI4MzQ0LCAwLCAxMTc2LCAxMTg5NTksIDEyNzkzMCwgODE2MiwgMTI4NjY3LCA5ODM4MjIsIDAsIDEyMDUxOSwgNjYzNzYsIAorICAgIDY2MjQyLCAxMTQxNSwgNDMzMywgOTg1NSwgNjQxMTIsIDY0NjQyLCAwLCA1Mzg4LCAwLCAwLCAwLCA3NzE0LCA2NjIyMiwgCisgICAgNjk5MDIsIDc3NjgsIDAsIDQxOTksIDY0NzA4LCA5ODM0MTMsIDAsIDAsIDg3MDgsIDk1NjAsIDY0MDc3LCA2NDA3NiwgCisgICAgODk5NiwgNDk5MiwgNDQ3MSwgNDI2MjIsIDY0MDc5LCA2NDA3OCwgOTIxNzksIDAsIDEyNjU3MCwgMCwgNjQ2MTUsIDQxOTE1LCAKKyAgICAwLCAxMjA3NSwgNzAwNjIsIDAsIDUxNzQsIDk4MzIxNSwgMCwgMTI3NTU3LCAzMTIzLCAwLCAxMjY4NSwgMTI3OTA0LCAKKyAgICA4NDA4LCA2NDcwNCwgMCwgMCwgOTIyMywgMCwgNDE2MTYsIDY3OTk5LCA3Mzc5NywgMCwgMTExNiwgMTI4MjA0LCA0MzA0OSwgCisgICAgNzEzNiwgNDMwNTAsIDg1NDgsIDEyMDQ4NSwgMCwgMTE5MDYxLCA5MTc5OTksIDAsIDEzMTE1LCA0MzY3NSwgNjQwOTEsIAorICAgIDkzMjIsIDAsIDEyMDU5NSwgNjQwOTUsIDY0MDk0LCA4MTExLCA2NjI0NywgNDIzMzIsIDY0MDg5LCA2NDA4OCwgNjE5OSwgMCwgCisgICAgMCwgMTE0MzQsIDY0MDgzLCA2NDA4MiwgMTEzMjksIDc3MzcsIDY0MDg3LCA2NDA4NiwgNjQwODUsIDY0MDg0LCAxOTQ4MTcsIAorICAgIDk5MjcsIDQxMzM1LCA0MTE4LCAxNzk3LCAwLCA0MTMzNCwgMCwgNDYsIDQzNDQ4LCAxMjc4ODEsIDI5OCwgMCwgMTI4MTE0LCAKKyAgICAwLCA0MjYyNywgMCwgMzIsIDYxODcsIDExOTA1MiwgMTE0OTUsIDExNDU5LCAzNjY1LCA5ODM2MDAsIDQyODcxLCAwLCAKKyAgICAxOTkyMywgNzQzMzUsIDAsIDEyNzE5MiwgNjYyMzksIDQyMjY0LCA2NDQwMywgNDQxMiwgNzI0MCwgOTI0OTUsIDAsIAorICAgIDk4MzQ1OCwgNjU3NTgsIDEyNzUwLCA0MTgxLCA4NTQ0LCAwLCAxMjAxOTksIDkxNzg5NywgMTIwMTk4LCA2OTgwOSwgNjE4MSwgCisgICAgNjUwMTQsIDAsIDAsIDk4MzE5NiwgMzYzOSwgMTE5NTg4LCAwLCAwLCAxMTg5MDQsIDEwMDczLCAxMjAyMDYsIDEyODg2MiwgCisgICAgMTI3MTg2LCA2ODQwOSwgNDI4NDQsIDc0OTgsIDEwOTgsIDkyNTY1LCAxMjAyMDUsIDAsIDk4MzExOCwgMTAyMDcsIDg3ODksIAorICAgIDk4MzIyMywgMCwgMCwgOTgzNDY0LCA5MjM0LCAwLCA2MTgyLCA5ODM0NjYsIDY1MDU4LCAwLCA5ODM0NzAsIDk4MzQ2NywgMCwgCisgICAgNTQ3MSwgOTQ2MSwgNTU3MywgMTE4OTM2LCA1NDczLCA0NCwgMCwgNjYyNDQsIDk0MDcyLCAwLCA2NjIzOCwgMTI4NDQsIDAsIAorICAgIDE2MjIsIDc3NjcsIDE5MDAsIDQxMzM5LCAxMTQ1OCwgMCwgMCwgNjU4MSwgNTU3NiwgMCwgNjQ0MDUsIDQxMzM3LCAwLCAKKyAgICA0MTYzMSwgODk0NywgNjgzOTAsIDEyNzg0NCwgNDE2OTQsIDAsIDAsIDc5MDgsIDAsIDEwNDA4LCA2NTc5LCAwLCA2NDYxOCwgCisgICAgMCwgMTIwMTQ3LCAyMTM4LCA2NTgzLCA3NzYxLCAxMjcwMTAsIDEyMDUwNCwgMTk0ODI4LCAwLCA1MDU4LCA0MTAxMCwgCisgICAgOTk5MiwgMTI4Mjk5LCA1MDU3LCAwLCAwLCA3NDUzOCwgNTA1NCwgMTE4OTUxLCAxOTQ5NzEsIDc4NjA2LCAwLCAxNDM3LCAKKyAgICA0MTYxNywgNjU4LCAzNDk3LCAxMjg1MDksIDc0ODYsIDUwNjEsIDUwNjAsIDQyMzUsIDEyNzg3OCwgMCwgMTI4NTI5LCAKKyAgICAxMjExMywgNDIzNiwgNDcyNywgMCwgMCwgNzY5MywgMTA3NDksIDAsIDc0ODgsIDU3NzMsIDk3OCwgMTI4MTM0LCAwLCAKKyAgICA0MTYxOSwgMTAyMzksIDY4NjExLCAwLCA2NjIwOSwgMCwgMTI4NzAwLCA5NzQ4LCA5ODM5NDcsIDEyNzUyNCwgMCwgMCwgMCwgCisgICAgMCwgMTk1MDgzLCAwLCA5ODM4MzQsIDAsIDAsIDAsIDAsIDAsIDkzNDEsIDExOTU5NiwgMjM3OSwgMTEzMjUsIDAsIDY0NjY4LCAKKyAgICA2Nzg1NCwgODEyNSwgMTIwNTQ1LCA2NzQzLCAxMTkxNzUsIDkxNzk0MCwgMjM2OSwgMCwgOTgzOTYzLCA5ODM5NjQsIAorICAgIDExOTIzNSwgNzQwOTIsIDczOTM2LCA3MDA4LCA0MzY2MCwgMCwgMCwgMCwgMjM2NywgMTI3ODI3LCA5ODM4NDgsIDI2NCwgCisgICAgMjM3NSwgODA2MCwgNjE5NCwgMTE5ODU4LCAxODQ0LCAxMTkwODQsIDAsIDYwMTksIDAsIDAsIDY5NjEsIDAsIDExODgzOSwgCisgICAgMCwgODgwMCwgMCwgNDI4NjIsIDQ0NjMsIDY1NTgxLCA2MTkyLCAxOTQ2NzYsIDQyNzcxLCAwLCA5MjMzMywgNzI1LCAKKyAgICA2NTA0MiwgMTE4Nzk3LCAxMjA4MDAsIDk4MzA0MCwgMTI4OTIsIDAsIDAsIDAsIDAsIDAsIDAsIDEyNzI2MSwgMTIwNzA3LCAKKyAgICA5ODMxMjgsIDAsIDUwNzQsIDUwNzMsIDEyODc5MCwgODk4MywgMTE4OTgxLCA3NDQ5MywgOTgzNTYxLCA1MDcyLCA5Mzk3NywgCisgICAgNjE5OCwgMTE2MTQsIDAsIDE5NiwgMCwgMCwgMCwgNDkyOSwgMTIwMzQyLCAwLCAwLCAwLCAwLCA0Mjg0NywgMCwgMCwgMCwgCisgICAgNDkzNCwgMCwgNDEzMjMsIDk3NTgsIDAsIDkyMjg5LCAxMjc5MTcsIDQyNTg0LCAwLCA0MzI5LCA0MTMyMSwgNDk3OSwgCisgICAgMzA0OCwgNzc1MiwgNDEzMjAsIDk4MzA0MiwgNzQ0MTgsIDEyODE5LCAwLCA1MDcxLCAwLCAzNjQyLCAwLCA1MDcwLCAKKyAgICAxMDA0MiwgMTE4ODM1LCAzOTg3LCA1MDY4LCAwLCA4OTA5LCA3ODY1MCwgNzg2NDksIDY5OTE3LCAxMDYzNiwgNzM5ODEsIAorICAgIDExODA2LCA0MzE2NywgNDUzMSwgMTI0NSwgOTEwNSwgNjY0NjMsIDQ5MjEsIDEyMDIxOSwgNDkyNiwgNjU1NDQsIDczODg0LCAKKyAgICAxOTQ2MTksIDAsIDAsIDY0NzA5LCAwLCAxOTQ2MjAsIDc4ODgwLCA0OTIyLCAzMjUsIDk5MiwgMTE5NTY4LCA0OTI1LCAwLCAKKyAgICAwLCA5NTI2LCA0OTIwLCAwLCA5NDgsIDAsIDEyMDIwOCwgNDkzMCwgMCwgOTIxNzUsIDEyMDI3NSwgNDkzMywgMTIwMjExLCAKKyAgICAwLCAxMTg5ODUsIDQ5MjgsIDAsIDAsIDc0NzcwLCAxMjAxOTQsIDEyNjU0OCwgNzIyLCAxOTQ5MzQsIDE5OTA4LCAxMjYzNywgCisgICAgMTI3NDg1LCAxMTk4NTUsIDg3NTMsIDE1MDksIDAsIDU0NjgsIDk1MTEsIDEyNzQ3NCwgMTI3NDc3LCAxNjcyLCA2MjA1LCAKKyAgICAxMDg2NCwgNzQ1ODYsIDEyNzQ4MCwgNzAxMDMsIDEyNzQ2NiwgNzg1NTUsIDEyNzQ2OCwgNzM4NjMsIDEyNjU3NywgCisgICAgMTI2NTAzLCA0MTYwNywgMTIwMTE1LCAxNjc5LCAxMjAxMTYsIDEyMDE4MCwgMTIwMTEzLCAxMjc0NjIsIDcwMDUsIDQxNjA5LCAKKyAgICA5NTgwLCAwLCA0MDEsIDY5OTQ5LCA0Mzc3OSwgNjk2OCwgNTc2MSwgMzQyLCA4NTUzLCAwLCA4MTQzLCAxMjcxMTUsIAorICAgIDExOTgzLCA5MjI0OSwgNjI0LCA3NDUwOCwgNDA1NywgNDM3ODgsIDUwNzgsIDc0MjU4LCAxMjQ3OCwgMCwgNTA3NiwgMCwgCisgICAgMTk0NjA5LCAwLCAxMjAwOTcsIDY4NSwgOTAyNSwgMTUyNCwgMTI2MTgsIDAsIDU1MzksIDAsIDkyNTIzLCAxMjAxMDIsIAorICAgIDcxMzgsIDEyMDU1MiwgMCwgMTk0NjExLCA3ODc1MiwgMCwgMTI1MjAsIDgwNTgsIDk3MzIsIDAsIDUwODAsIDY0Nzc1LCAKKyAgICA1MDM2LCA1MDM1LCAxMjA1OTAsIDQyNjA0LCA5ODM2NDcsIDAsIDgwNzQsIDI3NSwgMTMyOTEsIDE5MDcsIDc4ODM4LCAKICAgICA0NDMyLCAxMjcyNzEsIDUwMzMsIDEyNzI3MywgMTI3MjcyLCA0ODM2LCAzODg4LCA3Mzc5MiwgMTA3MjksIDY0NTQ2LCAKICAgICAxMjcyNjIsIDQzNzA0LCAxMjcyNjQsIDEyNzI1MSwgNjc1ODgsIDExOTAwMCwgMTI3MjUyLCAxMjcyNTUsIDg4NTgsIDY0MDksIAogICAgIDEyNzI1NiwgMTIwMjUyLCAxMjgxMDAsIDAsIDAsIDY2MzIxLCAwLCAxMjgxNCwgMTI3MjQ4LCAzNDMyLCAxMDIxOCwgMCwgCi0gICAgNjA5NCwgNzY0MSwgNDI0NDUsIDAsIDkyNDg3LCA0MjQwNiwgMTY3NiwgNzQzMjAsIDE5NDYwNywgMCwgNTAzMCwgMCwgMCwgCi0gICAgMCwgNzM4NjksIDk2MjIsIDAsIDAsIDY3ODcsIDAsIDAsIDAsIDAsIDEwNTQ0LCAxMjkxOSwgMCwgOTIyMTgsIDAsIDAsIDAsIAotICAgIDEyMDc4OSwgMCwgOTQ3LCAxMTk4MzUsIDE5NDU4NiwgMTk0NTg1LCAxMDk2OSwgMTE5OTM1LCA3NjEzLCA5MjU2MiwgCi0gICAgMTE5OTM2LCA0Nzk1LCAxMTk5MzAsIDcwMTgsIDczNzYsIDEyMDE4MSwgMTIwMTkyLCAxMjAyNjgsIDAsIDQzNTY3LCAKLSAgICA3NDA1NiwgOTE3OTEwLCAxMTg5NjMsIDExOTkxOSwgNzIxNiwgNjUyMzIsIDcyMTcsIDI1MSwgNzIxOCwgNzg5NSwgNDM5NSwgCi0gICAgNDM1MzgsIDExOTkyNiwgMTE5OTI5LCAxMTk5MjgsIDcyMTMsIDExOTkyMiwgNzIxNCwgNzIxNSwgMCwgNzQxNDEsIDg4ODAsIAotICAgIDc2ODUsIDY2NDU5LCAxMjAxNzMsIDY1NTQwLCAxMTk2MTgsIDYyNSwgODE4NywgNDI4NjEsIDExMTMsIDcyMzYsIDc5MTUsIAotICAgIDM2MzAsIDEyMDE3NiwgODE3OSwgNzQyNjQsIDY3ODg2LCA5MzE2LCAxMDk4MCwgMjQ4OSwgNjU2MjQsIDgxNTAsIDEzNTksIAotICAgIDY3NjUyLCAxMjczMjksIDEyNzMzMCwgNzM3NTYsIDUwNDIsIDUwNDEsIDQyNzY5LCAxMjA4NCwgMTI3MzI0LCAxMjczMjEsIAotICAgIDkyMjc5LCAxMjczMTksIDEyNzMyMCwgMTI3MzE3LCAxMjczMTgsIDEyNzMxNSwgMTIyODMsIDE2MTYsIDM3OTUsIDAsIAotICAgIDg3OTUsIDY2MjQ1LCAwLCAwLCAwLCAxMTM4LCA3MzkwNSwgMTI2NzcsIDAsIDAsIDMyMzksIDEyNzMxMSwgMCwgMCwgODQzMSwgCi0gICAgMCwgNDIxNjQsIDAsIDExNzc4LCAxMjYyMCwgNjgyNiwgNzM3NzMsIDExOTA3MywgNTA0MCwgMCwgMCwgMCwgNzg0MjAsIDAsIAotICAgIDUwMzksIDAsIDc4NDE4LCAwLCA1MDM4LCAwLCAwLCAxMzE4NCwgNzQyOTMsIDAsIDY0NjQ4LCAwLCA5MzU5LCA3ODQxNiwgMCwgCi0gICAgMTI4NzcwLCA2NTE1NywgNjY2MiwgMCwgMCwgMzg2MywgNzM5MDksIDQ4MzUsIDU1MjY2LCA0MzQzMiwgMTI3ODIyLCA0MzA5LCAKLSAgICA3MTI3LCAxOTQ1NjksIDAsIDE5NDU2OCwgMTMwMSwgMCwgNDI1ODksIDU2OSwgMCwgNzM4MTMsIDcxMSwgNDM4OSwgNzEzMywgCi0gICAgMCwgNzM4ODAsIDExNjEwLCAxMTM2OCwgMCwgMTk0NTcwLCA0MTMzMSwgMTAwNiwgNzQyNDAsIDAsIDE1NTAsIDgyMDEsIAotICAgIDczNzM3LCA3NjI3LCA1NDk5LCA1MDMxLCA3NzkwOCwgNDI3MzgsIDY1Nzg0LCA3NzkwNywgNjUyNjcsIDM3NTgsIDAsIAotICAgIDY1NzgxLCA2NDczNCwgMCwgMjQ0MCwgNjU3ODAsIDc3OTEzLCA4NDQ5LCAwLCA1MDA4LCAwLCAyMTE4LCAwLCAxMjEyMSwgCi0gICAgODI1NSwgNTUxMiwgNzM4NzUsIDIxMjgsIDIxMzAsIDIxMzEsIDIxMjYsIDIxMzMsIDExMTksIDEyNzA2OCwgMjExNCwgCi0gICAgMjExNiwgMjQ1NSwgMCwgMjEyMiwgMjEyMywgMjEyNCwgMjEyNSwgMCwgODcxNCwgMCwgMjExMywgMCwgMjExNSwgMTI4MTc3LCAKLSAgICAxMjc5MDcsIDQzNzEzLCA1MDUyLCA2NjIyMCwgNTgyMSwgNjE4NiwgNjU3NzgsIDY1Nzc1LCA1MDUxLCA2NTc3MywgMTQyOSwgCi0gICAgNDI2NDcsIDUwNTAsIDMwMiwgMzg4LCA0MTExNSwgNzM1LCA2NjM3LCA1OTA3LCA2NTA4OCwgMCwgMTI3MjYsIDc0NTk0LCAKLSAgICA5MTE3LCAwLCAxMjAwMywgNTUxMywgNjY2NiwgNTA1MywgNzQyMzAsIDU1MTAsIDc4NDUxLCAwLCA3ODQ0NywgMjQ3MCwgCisgICAgNjA5NCwgNzY0MSwgNDI0NDUsIDAsIDkyNDg3LCA0MjQwNiwgMTY3NiwgNzQzMjAsIDE5NDYwNywgOTgzMTc3LCA1MDMwLCAwLCAKKyAgICAwLCAwLCA3Mzg2OSwgOTYyMiwgMCwgNjk5NDQsIDY3ODcsIDAsIDAsIDAsIDk4MzU4MywgMTA1NDQsIDEyOTE5LCAwLCAKKyAgICA5MjIxOCwgMCwgMCwgNjk5MDYsIDEyMDc4OSwgMCwgOTQ3LCAxMTk4MzUsIDE5NDU4NiwgMTk0NTg1LCAxMDk2OSwgCisgICAgMTE5OTM1LCA3NjEzLCA5MjU2MiwgMTE5OTM2LCA0Nzk1LCAxMTk5MzAsIDcwMTgsIDczNzYsIDEyMDE4MSwgMTIwMTkyLCAKKyAgICAxMjAyNjgsIDAsIDQzNTY3LCA3NDA1NiwgOTE3OTEwLCAxMTgzMywgMTE5OTE5LCA3MjE2LCA2NTIzMiwgNzIxNywgMjUxLCAKKyAgICA3MjE4LCA3ODk1LCA0Mzk1LCA0MzUzOCwgMTE5OTI2LCAxMTk5MjksIDExOTkyOCwgNzIxMywgMTE5OTIyLCA3MjE0LCAKKyAgICA3MjE1LCA5ODM4MjcsIDc0MTQxLCA4ODgwLCA3Njg1LCA2NjQ1OSwgMTIwMTczLCA2NTU0MCwgMTE5NjE4LCA2MjUsIDgxODcsIAorICAgIDQyODYxLCAxMTEzLCA3MjM2LCA3OTE1LCAzNjMwLCAxMjAxNzYsIDgxNzksIDc0MjY0LCA2Nzg4NiwgOTMxNiwgMTA5ODAsIAorICAgIDI0ODksIDY1NjI0LCA4MTUwLCAxMzU5LCA2NzY1MiwgMTI3MzI5LCAxMjczMzAsIDczNzU2LCA1MDQyLCA1MDQxLCA0Mjc2OSwgCisgICAgMTIwODQsIDEyNzMyNCwgMTI3MzIxLCA5MjI3OSwgMTI3MzE5LCAxMjczMjAsIDEyNzMxNywgMTI3MzE4LCAxMjczMTUsIAorICAgIDEyMjgzLCAxNjE2LCAzNzk1LCAwLCA4Nzk1LCA2NjI0NSwgMCwgMCwgMCwgMTEzOCwgNzM5MDUsIDEyNjc3LCAwLCAwLCAKKyAgICAzMjM5LCAxMjczMTEsIDAsIDAsIDg0MzEsIDAsIDQyMTY0LCAwLCAxMTc3OCwgMTI2MjAsIDY4MjYsIDczNzczLCAxMTkwNzMsIAorICAgIDUwNDAsIDAsIDAsIDk4MzQzNSwgNzg0MjAsIDAsIDUwMzksIDAsIDc4NDE4LCAwLCA1MDM4LCAwLCAwLCAxMzE4NCwgCisgICAgNzQyOTMsIDAsIDY0NjQ4LCAwLCA5MzU5LCA3ODQxNiwgMCwgMTI4NzcwLCA2NTE1NywgNjY2MiwgMCwgMCwgMzg2MywgCisgICAgNzM5MDksIDQ4MzUsIDU1MjY2LCA0MzQzMiwgMTI3ODIyLCA0MzA5LCA3MTI3LCAxOTQ1NjksIDAsIDE5NDU2OCwgMTMwMSwgCisgICAgMCwgNDI1ODksIDU2OSwgMCwgNzM4MTMsIDcxMSwgNDM4OSwgNzEzMywgMCwgNzM4ODAsIDExNjEwLCAxMTM2OCwgMCwgCisgICAgMTk0NTcwLCA0MTMzMSwgMTAwNiwgNzQyNDAsIDAsIDE1NTAsIDgyMDEsIDczNzM3LCA3NjI3LCA1NDk5LCA1MDMxLCAKKyAgICA3NzkwOCwgNDI3MzgsIDY1Nzg0LCA3NzkwNywgNjUyNjcsIDM3NTgsIDAsIDY1NzgxLCA2NDczNCwgNzAwNzMsIDI0NDAsIAorICAgIDY1NzgwLCA3NzkxMywgODQ0OSwgMCwgNTAwOCwgOTgzNTcyLCAyMTE4LCAwLCAxMjEyMSwgODI1NSwgNTUxMiwgNzM4NzUsIAorICAgIDIxMjgsIDIxMzAsIDIxMzEsIDIxMjYsIDIxMzMsIDExMTksIDEyNzA2OCwgMjExNCwgMjExNiwgMjQ1NSwgMCwgMjEyMiwgCisgICAgMjEyMywgMjEyNCwgMjEyNSwgMTI3NDg2LCA4NzE0LCA5ODM4MTEsIDIxMTMsIDAsIDIxMTUsIDEyODE3NywgMTI3OTA3LCAKKyAgICA0MzcxMywgNTA1MiwgNjYyMjAsIDU4MjEsIDYxODYsIDY1Nzc4LCA2NTc3NSwgNTA1MSwgNjU3NzMsIDE0MjksIDQyNjQ3LCAKKyAgICA1MDUwLCAzMDIsIDM4OCwgNDExMTUsIDczNSwgNjYzNywgNTkwNywgNjUwODgsIDAsIDEyNzI2LCA3NDU5NCwgOTExNywgCisgICAgOTgzMTgxLCAxMjAwMywgNTUxMywgNjY2NiwgNTA1MywgNzQyMzAsIDU1MTAsIDc4NDUxLCAwLCA3ODQ0NywgMjQ3MCwgCiAgICAgNzg0MzcsIDAsIDE5MjUsIDAsIDkyMjM3LCA3NDgwNywgMCwgNTA0OCwgNTA0NywgMCwgMCwgMCwgOTIzMTMsIDAsIDc0NDk3LCAKLSAgICA5MjM5NSwgODA4OSwgNjkyOSwgNjM5LCAwLCA2ODE3OSwgNjQ0NDIsIDAsIDkyMzQ4LCA0NTk5LCA0MTQwMiwgNjY3NCwgCi0gICAgNDMzOTcsIDQzMjk0LCAxNDc2LCA2NDgsIDAsIDY1ODE5LCAzMjMzLCAwLCA0MTc4MiwgNjk1MSwgMCwgMCwgMzUzMCwgCi0gICAgOTc1MCwgMTI4MzE3LCAwLCA2NjU2LCA5MjM2NywgMCwgNTA0NiwgODUxMiwgNjU4NTYsIDc0MjYxLCA4OTY3LCAwLCA1MDQ1LCAKLSAgICAwLCAxOTE2LCA3OTg2LCA1MDQ0LCAxMjA1NTYsIDkwMDYsIDEzMTI4LCA1MDQzLCAwLCA3ODUzLCA3NDA2OCwgNzQwMDQsIAotICAgIDk2NjksIDEyMzQxLCAxMjcwMywgODQwMiwgMCwgMTE5MDcwLCA5MTc2MDAsIDQxNzUwLCAzNTg2LCA2NDUwOCwgNDMxNDgsIAotICAgIDAsIDAsIDExOTYwNiwgMCwgMTMyOTYsIDUxNywgMCwgMTI4NTM0LCAxOTQ5NDYsIDQxNTI4LCAxMjMsIDY1NDU0LCAwLCAwLCAKLSAgICA3NDQ3OCwgMTA1MzEsIDc3ODQsIDQxNTI2LCAxMDgyOSwgNzM5OTEsIDgwNTcsIDExMjYsIDczODk1LCAwLCAxOTQ1OTEsIDAsIAotICAgIDM5MjUsIDQyNTEsIDgwNjksIDEwNTE3LCAxMjA0MzksIDQ4OSwgMCwgNDI1MCwgMTIwNDQxLCAxMjA0NTIsIDQzMTUxLCAwLCAKLSAgICAxOTQ4NTEsIDY2MjAwLCAwLCAwLCAwLCA3ODQyMywgMCwgMCwgODcxMSwgNjE4MywgMCwgMCwgMCwgMTIwNDQ4LCA3NjIzLCAKLSAgICAxMTg5MjUsIDE5NDg1MywgOTIzNSwgMTI3NjAsIDc0MTc2LCA2OTY2MiwgNjY0NDUsIDQzNTQwLCAxMDA2MiwgMzc0MywgCi0gICAgMTE1MTQsIDExMDc4LCAwLCAxMjEzNiwgMCwgMCwgMTIwNDM1LCAwLCA3NzI2LCAwLCAxOTkyMiwgMjY3LCAzMzkzLCAKLSAgICA0MjE5OCwgMTM3MSwgMTk0ODQ5LCA2OTIzMywgMjQ1OCwgMCwgNjIwMSwgMCwgNDEwNzQsIDQyNjYsIDEwNjUyLCA0MTYxMiwgCi0gICAgNDEwNzcsIDM0MDIsIDkwNTAsIDMzOTgsIDAsIDAsIDAsIDMzOTEsIDQxMDc1LCAyNDc2LCAwLCAxMjgwMTcsIDAsIDEwNjI1LCAKLSAgICAwLCAxMjc2NywgMTMwMTcsIDc4NzQzLCA2NDI2MSwgNjQ5MzQsIDEyNzUzNywgMTMwMTQsIDEzMDEzLCAwLCA2NjczLCAwLCAKLSAgICAwLCAwLCAxMjQzOCwgMCwgMCwgMCwgMCwgMCwgOTA1MywgMTMwMTUsIDc0NTIzLCAwLCA3MDQsIDY2MjE1LCA2MTk1LCAwLCAKLSAgICA2NjYwLCA3ODc1OCwgOTE3NzYwLCA5MTc3OTMsIDQyMjEyLCAxMjYyOSwgMTE0MzUsIDAsIDU1MjU2LCA2NTUzOCwgMCwgCi0gICAgMTI3OTQwLCAwLCA3NDU0NywgMCwgNjU0NDgsIDc4MTAwLCAxMjk0OCwgMTE5MDAxLCAxOTUwMDIsIDExOTIzOCwgMTk1MDA0LCAKLSAgICA3ODA5OSwgMTI3MDg1LCAwLCAwLCA0Mjg3LCA4Mjc2LCA0OTAyLCAxMTMxLCAwLCA3ODQ1OCwgNjY3MjgsIDE4MTYsIDAsIAotICAgIDQyNTMzLCAxNjgsIDQyODQ1LCA0ODk4LCA2NDI5OCwgMCwgMCwgNDkwMSwgMTgyMSwgMCwgNTc4LCAzNjUzLCAwLCA3OTEsIAotICAgIDkxNjIsIDY5NzcsIDAsIDExOTI5OCwgNzQ1NjEsIDAsIDczNzMxLCA4MzU0LCA0MzU5MCwgMTE5MzAzLCAwLCA3NTU3LCAKLSAgICAxMTkzMzksIDExOTMwMSwgODIzNCwgNzI0MSwgMCwgMTk0OTk0LCAxMTkxNjcsIDE5NDk5NiwgMTI4MTEsIDY1OTI1LCAKLSAgICAzOTQ2LCA3ODA3OCwgMTA5OTgsIDc4MDgwLCA2NzMsIDE5NDg2NywgNjQzOTcsIDEyODI3NiwgNzQ1OTksIDc4NDQ5LCAKLSAgICA4ODkwLCAxOTQ5NzcsIDE5NDk3NiwgMjQ0OCwgNzgwODUsIDEwMjY3LCA4NDI0LCAyNDUyLCA3ODA4MywgMTk0ODY0LCAKLSAgICA4NzI5LCA3ODQ1NiwgMCwgNzg0NSwgOTE3OTE3LCA3ODY5MiwgNDQwOCwgNDEyMiwgNjc3MiwgMTEwMzksIDg3MjMsIAotICAgIDE5NDk5MCwgMTI3ODMzLCAxMTkzMDIsIDczMSwgMTE5MzA0LCA5MjI4NiwgMjQzOCwgNjQ4NTUsIDExOTMwMCwgMTE5Mjk5LCAKLSAgICAxMTc1LCAwLCA0MjEzNSwgMzczLCAxMTkxNzIsIDIxMTksIDExNDU3LCAxMTUyMSwgNzcyMywgMCwgMCwgMCwgNDE5NTIsIDAsIAotICAgIDUyNzMsIDIxMjcsIDUyNjksIDYzMzcsIDUyMDIsIDI0MDQsIDUyNjcsIDQyODIzLCAxMTI5MSwgMTk5MTUsIDUyNzcsIAotICAgIDEyOTYzLCAxMjc4NjQsIDYxODksIDQxMjUsIDEzMTQsIDEyMTMzLCAwLCAxMTg4NzMsIDEyNzEsIDAsIDAsIDY2MDI0LCAKLSAgICA0MTQ4MiwgMzg2NCwgNzQ1MzksIDAsIDM4NzksIDAsIDEyOTc4LCA0MTY2LCA0NTc0LCAwLCA3NTY3LCA3NDU5LCAwLCAKLSAgICA0MTM5MCwgNTM4NCwgNDE4ODIsIDY3NjQ3LCA5MjU0OCwgNTc1OSwgMCwgMCwgNDEzODgsIDkyMzYyLCA0MTM5MiwgNjQyODgsIAotICAgIDQxMzg3LCAwLCA4NzA2LCA1NTUyLCAwLCA3MDAsIDAsIDU1NTMsIDAsIDcwODgsIDUzNTYsIDc0OTksIDc4MTEwLCA2NjU5NiwgCi0gICAgMCwgMCwgMTAyNjMsIDU1NTQsIDAsIDEyMzQ0LCAxMDMxMSwgNzgxMTMsIDY2NjUsIDAsIDAsIDc2MTgsIDg1MTcsIDExNDU1LCAKLSAgICA3ODQ0MCwgNjQ2MzIsIDY0NDQ3LCA1NTU1LCA3ODA4OCwgNzgwOTMsIDc4MDkxLCAwLCA0MjgwMywgNjUwMzMsIDkxNDMsIAotICAgIDY2NjgsIDE5NTA2NywgMTk1MDY2LCAxOTUwNjksIDY1NiwgMTk1MDcxLCA2NTAzNywgNDU3NywgNjQ2MjQsIDAsIDAsIDAsIAotICAgIDAsIDQyNjksIDczODg1LCA5MTc3NzUsIDQyODQ2LCA2OTY0NCwgOTUwLCAwLCA5MjI3MywgNjY1ODAsIDExODg5NSwgCi0gICAgNjY2ODMsIDEwNTU0LCA5MTc3NzgsIDExOTEyMSwgMCwgNTA5OCwgOTE3NzcwLCAwLCAxMTkwOTksIDUwOTcsIDQ5MzUsIAotICAgIDk4NDgsIDEwMzgxLCAwLCAxMjg4NzAsIDAsIDM2NTEsIDAsIDE5NDYxMCwgMTI3NTU2LCA1MTAyLCA1MTAxLCAxMDI2OSwgCi0gICAgMTI5ODMsIDgxMzgsIDQ1MTcsIDE5MzIsIDUxMDAsIDE0MzksIDEyMDkzLCAxMjQ3LCAxMDAzNCwgMTk1MDY0LCA1MDk5LCAKLSAgICA3ODM3MywgMTQ0MSwgNDIwODcsIDMwNjMsIDY1MCwgMCwgNzgzOCwgMCwgMTk1MDQxLCAxOTUwNDAsIDExOTE0MiwgOTAzMSwgCi0gICAgMTIwNzkwLCAxMjg1ODIsIDkwNzgsIDg1NDUsIDY2MzU2LCAxMjg3OTksIDAsIDkxNTQsIDkxMTgsIDAsIDAsIDI2NzYsIAotICAgIDc3NTAsIDAsIDczODEyLCA2MTkwLCA4NTk5LCAxOTUwNTMsIDAsIDEwNzk1LCA5ODU3LCA3MDE0LCA5ODU2LCAxOTUwMzMsIAorICAgIDkyMzk1LCA4MDg5LCA2OTI5LCA2MzksIDk4MzU2MywgNjgxNzksIDY0NDQyLCAwLCA5MjM0OCwgNDU5OSwgNDE0MDIsIAorICAgIDY2NzQsIDQzMzk3LCA0MzI5NCwgMTQ3NiwgNjQ4LCAwLCA2NTgxOSwgMzIzMywgMCwgNDE3ODIsIDY5NTEsIDk0MDE3LCAKKyAgICA5ODM5NjcsIDM1MzAsIDk3NTAsIDEyODMxNywgMCwgNjY1NiwgNDI2MTgsIDAsIDUwNDYsIDg1MTIsIDY1ODU2LCA3NDI2MSwgCisgICAgODk2NywgMCwgNTA0NSwgNDIwMjYsIDE5MTYsIDc5ODYsIDUwNDQsIDEyMDU1NiwgOTAwNiwgMTMxMjgsIDUwNDMsIDAsIAorICAgIDc4NTMsIDc0MDY4LCA3NDAwNCwgOTY2OSwgMTIzNDEsIDEyNzAzLCA4NDAyLCAwLCAxMTkwNzAsIDkxNzYwMCwgNDE3NTAsIAorICAgIDM1ODYsIDY0NTA4LCA0MzE0OCwgMCwgMCwgMTE5NjA2LCA2Nzk4MywgMTMyOTYsIDUxNywgMCwgMTI4NTM0LCAxOTQ5NDYsIAorICAgIDQxNTI4LCAxMjMsIDY1NDU0LCAwLCAwLCA3NDQ3OCwgMTA1MzEsIDc3ODQsIDQxNTI2LCAxMDgyOSwgNzM5OTEsIDgwNTcsIAorICAgIDExMjYsIDczODk1LCAwLCAxOTQ1OTEsIDAsIDM5MjUsIDQyNTEsIDgwNjksIDEwNTE3LCAxMjA0MzksIDQ4OSwgMCwgNDI1MCwgCisgICAgMTIwNDQxLCAxMjA0NTIsIDQzMTUxLCA5ODMxNzgsIDE5NDg1MSwgNjYyMDAsIDAsIDAsIDAsIDc4NDIzLCAwLCAwLCA4NzExLCAKKyAgICA2MTgzLCAwLCAwLCAwLCAxMjA0NDgsIDc2MjMsIDExODkyNSwgMTE4ODg5LCA5MjM1LCAxMjc2MCwgNzQxNzYsIDY5NjYyLCAKKyAgICA2NjQ0NSwgNDM1NDAsIDEwMDYyLCAzNzQzLCAxMTUxNCwgMTEwNzgsIDAsIDEyMTM2LCAwLCAxMjY1OTcsIDEyMDQzNSwgMCwgCisgICAgNzcyNiwgMCwgMTk5MjIsIDI2NywgMzM5MywgNDIxOTgsIDEzNzEsIDE5NDg0OSwgNjkyMzMsIDI0NTgsIDAsIDYyMDEsIDAsIAorICAgIDQxMDc0LCA0MjY2LCAxMDY1MiwgNDE2MTIsIDQxMDc3LCAzNDAyLCA5MDUwLCAzMzk4LCAwLCA5ODMzNDAsIDAsIDMzOTEsIAorICAgIDQxMDc1LCAyNDc2LCAwLCAxMjgwMTcsIDAsIDEwNjI1LCAwLCAxMjc2NywgMTMwMTcsIDc4NzQzLCA2NDI2MSwgNjQ5MzQsIAorICAgIDEyNzUzNywgMTMwMTQsIDEzMDEzLCAwLCA2NjczLCAwLCAwLCAwLCAxMjQzOCwgMCwgOTgzMzM0LCAwLCA5ODM4NzEsIAorICAgIDEyNjYzOCwgOTA1MywgMTMwMTUsIDc0NTIzLCAwLCA3MDQsIDY2MjE1LCA2MTk1LCA5ODM4MTksIDY2NjAsIDc4NzU4LCAKKyAgICA5MTc3NjAsIDkxNzc5MywgNDIyMTIsIDEyNjI5LCAxMTQzNSwgMCwgNTUyNTYsIDY1NTM4LCAwLCAxMjc5NDAsIDk4MzMzMywgCisgICAgNzQ1NDcsIDEyNjU4NSwgNjU0NDgsIDc4MTAwLCAxMjk0OCwgMTE5MDAxLCAxOTUwMDIsIDExOTIzOCwgMTk1MDA0LCAKKyAgICA3ODA5OSwgMTI3MDg1LCAwLCAxMjgzMjAsIDQyODcsIDgyNzYsIDQ5MDIsIDExMzEsIDAsIDc4NDU4LCA2NjcyOCwgMTgxNiwgCisgICAgMCwgNDI1MzMsIDE2OCwgNDI4NDUsIDQ4OTgsIDY0Mjk4LCA5ODMxNDEsIDAsIDQ5MDEsIDE4MjEsIDAsIDU3OCwgMzY1MywgCisgICAgMCwgNzkxLCA5MTYyLCA2OTc3LCAwLCA3ODg4OSwgNzQ1NjEsIDAsIDczNzMxLCA4MzU0LCA0MzU5MCwgMTE5MzAzLCAKKyAgICA5ODM0NDEsIDc1NTcsIDExOTMzOSwgMTE5MzAxLCA4MjM0LCA3MjQxLCAwLCAxMjA2NzEsIDExOTE2NywgMTk0OTk2LCAKKyAgICAxMjgxMSwgNjU5MjUsIDM5NDYsIDc4MDc4LCAxMDk5OCwgNzgwODAsIDY3MywgMTk0ODY3LCA2NDM5NywgMTI4Mjc2LCAKKyAgICA3NDU5OSwgNzg0NDksIDg4OTAsIDE5NDk3NywgMTk0OTc2LCAyNDQ4LCA3ODA4NSwgMTAyNjcsIDg0MjQsIDI0NTIsIAorICAgIDc4MDgzLCAxMjg4MjQsIDg3MjksIDc4NDU2LCAwLCA3ODQ1LCA5MTc5MTcsIDcxMzAyLCA0NDA4LCA0MTIyLCA2NzcyLCAKKyAgICAxMTAzOSwgODcyMywgMTk0OTkwLCA3MTMxMCwgMTE5MzAyLCA3MzEsIDExOTMwNCwgOTIyODYsIDI0MzgsIDY0ODU1LCAKKyAgICAxMTkzMDAsIDExOTI5OSwgMTE3NSwgMCwgNDIxMzUsIDM3MywgMTE5MTcyLCAyMTE5LCAxMTQ1NywgMTE1MjEsIDc3MjMsIDAsIAorICAgIDAsIDAsIDQxOTUyLCAwLCA1MjczLCAyMTI3LCA1MjY5LCA2MzM3LCA1MjAyLCAyNDA0LCA1MjY3LCA0MjgyMywgMTEyOTEsIAorICAgIDE5OTE1LCA1Mjc3LCAxMjk2MywgMTI3ODY0LCA2MTg5LCA0MTI1LCAxMzE0LCAxMjEzMywgMTIwMzQwLCAxMTg4NzMsIAorICAgIDEyNzEsIDk4MzYzMSwgMCwgNjYwMjQsIDQxNDgyLCAzODY0LCA3NDUzOSwgMCwgMzg3OSwgMCwgMTI5NzgsIDQxNjYsIAorICAgIDQ1NzQsIDAsIDc1NjcsIDc0NTksIDk4MzE2MCwgNDEzOTAsIDUzODQsIDQxODgyLCA2NzY0NywgOTI1NDgsIDU3NTksIAorICAgIDk4MzkwMywgMCwgNDEzODgsIDY0NDQ2LCA0MTM5MiwgNjQyODgsIDQxMzg3LCAwLCA4NzA2LCA1NTUyLCA5ODMxODcsIDcwMCwgCisgICAgMCwgNTU1MywgMCwgNzA4OCwgNTM1NiwgNzQ5OSwgNjgwMDcsIDY2NTk2LCA3NDA2NiwgMCwgMTAyNjMsIDU1NTQsIDAsIAorICAgIDEyMzQ0LCAxMDMxMSwgNzgxMTMsIDY2NjUsIDkyNjI2LCAwLCA3NjE4LCA4NTE3LCAxMTQ1NSwgNzg0NDAsIDY0NjMyLCAKKyAgICA2NDQ0NywgNTU1NSwgNzgwODgsIDc4MDkzLCA3ODA5MSwgMCwgNDI4MDMsIDY1MDMzLCA5MTQzLCA2NjY4LCAxOTUwNjcsIAorICAgIDY3OTk1LCAxOTUwNjksIDY1NiwgMTk1MDcxLCA2NTAzNywgNDU3NywgNjQ2MjQsIDAsIDAsIDAsIDk4MzY0MCwgNDI2OSwgCisgICAgNzM4ODUsIDkxNzc3NSwgNDI4NDYsIDY5NjQ0LCA5NTAsIDAsIDkyMjczLCA2NjU4MCwgMTE4ODk1LCA2NjY4MywgMTA1NTQsIAorICAgIDkxNzc3OCwgMTE5MTIxLCAwLCA1MDk4LCA5MTc3NzAsIDAsIDExOTA5OSwgNTA5NywgNDkzNSwgOTg0OCwgMTAzODEsIDAsIAorICAgIDEyODg3MCwgOTgzNjkyLCAzNjUxLCAwLCAxMjA3MzAsIDEyNzU1NiwgNTEwMiwgNTEwMSwgMTAyNjksIDEyOTgzLCA4MTM4LCAKKyAgICA0NTE3LCAxOTMyLCA1MTAwLCAxNDM5LCAxMjA5MywgMTI0NywgMTAwMzQsIDE5NTA2NCwgNTA5OSwgNzgzNzMsIDE0NDEsIAorICAgIDQyMDg3LCAzMDYzLCA2NTAsIDAsIDc4MzgsIDAsIDE5NTA0MSwgMTk1MDQwLCAxMTkxNDIsIDkwMzEsIDEyMDc5MCwgCisgICAgMTI4NTgyLCA5MDc4LCA4NTQ1LCA2NjM1NiwgMTI4Nzk5LCAwLCA5MTU0LCA5MTE4LCAxMjY1NDMsIDAsIDI2NzYsIDIyNzcsIAorICAgIDAsIDczODEyLCA2MTkwLCA4NTk5LCAxOTUwNTMsIDY5OTE4LCAxMDc5NSwgOTg1NywgNzAxNCwgOTg1NiwgMTk1MDMzLCAKICAgICA5MjYyMCwgMTIxMjksIDAsIDg0ODEsIDAsIDYyMDIsIDE5NTAzNSwgMTA5MjAsIDEyODIzNywgNTIwMywgMTk1MDM5LCAKICAgICAxOTUwMzgsIDUxMDgsIDUxMDcsIDY1ODE4LCA2NjAxOSwgOTc2MiwgMCwgNTU0MSwgNzQ3NzIsIDAsIDEyNjEzLCA1Mjg0LCAKLSAgICA2NjU3LCAyMDcsIDEyODgwNiwgNDI3NSwgNzQ4MTksIDg1NCwgNjgxNDcsIDc0MzgxLCAwLCAwLCA1MTAzLCAxMjc4NjEsIAotICAgIDY0MzQ4LCA0MTM2OCwgNDM5NzQsIDQ4OCwgNjk4MTEsIDAsIDAsIDEwMTU3LCAwLCA0MzAzNCwgMTE0MzgsIDAsIDAsIAotICAgIDkyNjk0LCA2ODQzMSwgNDE3NzEsIDUxMDYsIDY2NjksIDg1MDQsIDY1MTU0LCA2OTgxMywgNDEzNjcsIDUxMDUsIDE5NTAzMCwgCi0gICAgNjk3MjAsIDY0NzYsIDUxMDQsIDAsIDMwNCwgMzE3NiwgMCwgMCwgOTMyLCAxMjg2NjMsIDY1NjcsIDIzOCwgNjk2NTYsIAotICAgIDE5NTAxMSwgMTk0NTk1LCAxOTkwNSwgMTIwNTc3LCAxOTUwMTUsIDc4ODcwLCA0MTA0NCwgNjc2NDAsIDE5NDkwMiwgCi0gICAgNDIwNTUsIDk5MTIsIDY1OTM5LCAxMDY3MCwgNzQwOTMsIDEzMjczLCAwLCAxMjU1MiwgMTk1MDE5LCA4ODAzLCAzMDksIAotICAgIDY2MjIsIDgxNTEsIDEwODU4LCAxOTQ1OTYsIDY3NjM2LCAwLCAxMjU2OCwgMCwgMTI1NTMsIDEwODE0LCA0MzI3NSwgNjk1MCwgCi0gICAgOTcxMiwgNjg2ODAsIDQzOTcwLCAwLCA2NTE2NSwgOTI3MjUsIDAsIDY2NDY2LCAwLCAwLCAwLCA2NjcyNSwgNjE5MSwgCi0gICAgMTEzNTEsIDEwNDM3LCAxMTMxNiwgNjc2MzQsIDAsIDAsIDQxNzU0LCA2NzYzNSwgOTM3MCwgMjcyMCwgMTk0OTc1LCAKLSAgICA2ODQ2MiwgODIzMiwgMTE4ODE3LCAwLCAzMjIyLCAwLCAwLCAwLCA2NjY2MywgMCwgMCwgMTA4MzQsIDAsIDAsIDY1NzMyLCAKLSAgICAwLCA5MTc1NDcsIDkyNjgyLCA2NzY3OSwgMTk1MDIwLCAwLCA3NzgxLCA0MTM4MywgNjQ1NjgsIDAsIDEyMDczOCwgMTIwNzcsIAotICAgIDAsIDY0NTg2LCA5MTc2MjAsIDQyMzk2LCA1NTI1NSwgMzQ3NSwgMTI4MDM1LCAyNDc5LCAwLCAzNjMyLCAxMjA3MjgsIAotICAgIDEwNjk4LCA4Mzc2LCAzNjQ4LCAxOTQ5NjAsIDc0ODQ0LCA2NzYzOSwgMzYzNiwgNjc4OTQsIDM2NTAsIDg4MzcsIDY1MjI5LCAKLSAgICAxODQzLCA0MjI4MywgNDMyNTAsIDQxNTYyLCA5MTAwLCA3NDU0OCwgOTE3NjMwLCAzNjQwLCAxMjcxOTAsIDQyMzIxLCAKLSAgICA3Mjg0LCAxOTQ5NzQsIDE5NDk3MywgMTk0OTUwLCAxOTQ5NDksIDE5NDk1MiwgMTk0OTUxLCAwLCAxOTQ5NTMsIDQyMDgwLCAKLSAgICAyNTI5LCAwLCAwLCAwLCA0MjA4MywgMTIwNjc4LCA2ODM5OCwgMTk0OTU3LCA2NzYxOSwgNjYzNjcsIDE5NDk1OCwgOTYzNCwgCi0gICAgOTIzODAsIDk5ODgsIDAsIDQxMDY4LCAwLCAwLCA2NTI2NCwgMCwgMCwgOTI1NDUsIDAsIDc4NSwgODIzNiwgMTI4NjQ3LCAKLSAgICA5MDI3LCA2ODE2MCwgNjc2MjMsIDY0MzgzLCAxMjg4MjEsIDkyNSwgMTI3MTU2LCAwLCA0MTk4NSwgNDEwNzEsIDk1ODYsIDAsIAotICAgIDQxOTg0LCA5MjE3LCAwLCAwLCAwLCA5MTg2LCAyMDY3LCA0MDE2LCAwLCAwLCAzODEsIDAsIDAsIDQyMDc3LCAwLCAKLSAgICAxMjc0ODMsIDUxODQsIDQyMDc4LCAxOTQ5NDcsIDEwODEwLCAxMjg1MzEsIDQ1ODUsIDE5OTQzLCA1ODYwLCA2NzYzMywgMCwgCi0gICAgMCwgODEyLCAzNjE1LCAwLCA1MTc4LCA0NDAwMCwgMTIwNTQ4LCA3ODgwNywgNTE4OCwgNzQyODcsIDY3NjI5LCAzNjA1LCAKLSAgICAxMDY5MiwgMTE2NiwgNjQ0MjksIDQyNjM5LCA5MjQsIDAsIDY3NjMxLCAwLCAxMjA2NzAsIDI0NDIsIDEwNzAzLCA3ODc4OSwgCi0gICAgNjc2MzIsIDkxNzkyNCwgMTI3NzEsIDEyNzM2LCAxMjc1MywgMCwgNzM5MzMsIDY3NjI2LCA0MjQwMSwgMCwgMCwgMTI3MzczLCAKLSAgICA0MjI4OCwgMTI3NTEsIDAsIDg1NDIsIDEzMTQ1LCAxOTQ5NjMsIDI0NjgsIDY2NzA2LCA0MTI5NCwgMzYyNiwgMzg4MywgCi0gICAgNjQzODgsIDQyNDc5LCAwLCA0MTExNywgMCwgOTI1ODAsIDAsIDAsIDY3NjI0LCAwLCAxMjkwLCAwLCA2NTU4NSwgMjcxNSwgCi0gICAgODA2LCA2NTIwOCwgNDE4ODQsIDkxNzg4MywgMTMxOCwgNjQ3MzEsIDAsIDAsIDAsIDY2MzI1LCAzNDY1LCAyNDA1LCA5MjQwLCAKLSAgICAwLCAxMjc1NiwgNjUyNTksIDAsIDAsIDEyNzUyLCA1ODMzLCAxNDMyLCAwLCA0MTg4MywgNzM5MTIsIDk3OTksIDAsIAotICAgIDQxODg2LCAyNDgwLCAwLCAyMDYyLCAxMjcyOTMsIDY0OTQsIDU1MzcsIDc4NjU2LCAwLCAxOTQ1ODcsIDAsIDEyMTEsIDAsIAotICAgIDAsIDAsIDExODgzMiwgMTIzMTgsIDAsIDAsIDAsIDEwNjIyLCAwLCAwLCA3ODY1NCwgNjU2NiwgNzg2NTksIDAsIDczNzgwLCAKLSAgICAwLCA2NDg2NCwgMCwgNzg2NjAsIDAsIDgyODQsIDEzMDgxLCAwLCAzNTg5LCA0MjA1MSwgNDAzNSwgNjQ5MiwgOTIyMzYsIAotICAgIDQyNjUsIDY2NDIsIDM5NzcsIDc0MTg2LCA0MTc3OCwgODM2LCAxMTkyMTYsIDI0ODgsIDAsIDQ1ODIsIDAsIDAsIDQxNzc3LCAKLSAgICAxMjkyNiwgMCwgNzUyOCwgMTA1NTAsIDAsIDkyNzA2LCAwLCAxMTQzOSwgMCwgMTM3NCwgNjQ4NzgsIDExOTAxNCwgMCwgCi0gICAgNDIzODksIDQxMzc0LCAwLCAwLCA3ODQ5MiwgNDEzNzcsIDEyNzkwOSwgMCwgNDAwLCAxMjU5NywgMTIwNTg2LCAwLCAwLCAKLSAgICA2NjYxLCAwLCA2NDgyNywgMCwgNzM4MTcsIDM5MCwgMCwgNzQ3NTUsIDAsIDM0NzMsIDc3MTgsIDAsIDAsIDAsIDU1Mjg1LCAKLSAgICAwLCAwLCAwLCAxMTk2OSwgMCwgMTI3ODQxLCA2MzY1LCAxODg3LCA2NzYzLCAwLCA4MDgwLCA3MDA2LCAwLCAwLCA2NzU3LCAKLSAgICA2NDM1MSwgMTU0NCwgMCwgNjc2NiwgNjQ2NzcsIDEyMDcxNiwgMCwgNjE0NiwgMCwgNzcxLCAwLCAwLCAxMjgxMiwgMTMxNjgsIAotICAgIDQyMjcyLCAxMjIwMCwgOTE3OTI3LCA3OTA0LCAwLCA5NTMsIDEyOTE3LCAxMTk1NjAsIDEyMzAwLCAwLCAxMTQ5MSwgOTcyNCwgCi0gICAgMTAzNDEsIDAsIDk1MjQsIDc0OTAsIDExMzg5LCA3NDg5LCAzMzc5LCAwLCA3NDg3LCAwLCA0NzEsIDc0ODQsIDc0ODIsIAotICAgIDY3NTMsIDc0ODAsIDc0NzksIDc0NzgsIDc0NzcsIDY1MDEsIDc0NzUsIDY5MTgsIDc0NzMsIDc0NzIsIDI0NzQsIDc0NzAsIAotICAgIDc0NjgsIDEwMjMyLCAxMDYxNSwgMTAyMTMsIDEyNzI4OCwgOTIzNTcsIDEwMDQ5LCA3ODg4NCwgMzU0NCwgMCwgNjAxNywgCi0gICAgNjUzMTEsIDEyNzQ4MSwgMTIwMjE2LCAxMzMwNiwgMTA1MzMsIDc4NzAsIDczOTQ5LCA3NjI1LCAwLCAxMjA1NDQsIDAsIDAsIAotICAgIDkyNjYwLCAwLCAwLCAwLCAxOTk2MSwgMjQ3MiwgNDI2NjUsIDkyMzQxLCAwLCAyMTM5LCA0MjU2LCAxMjA3NzYsIDc0MzgwLCAKLSAgICAwLCA0MjY3NSwgNDI2NTgsIDEyODQ1LCAwLCAwLCA2NTEzOCwgMTE5MzU1LCA2Nzg2MiwgMCwgNjU2NzEsIDEyMDAwMCwgCi0gICAgMTIwMDA4LCA4MDY2LCA3Njc4LCA3NDg2NSwgMCwgMCwgMCwgMCwgNzE4NiwgMCwgMTIwNTU1LCAwLCA0NDUsIDEyMDU2NiwgCi0gICAgMTI4MzA4LCAwLCAwLCA4MzMwLCAwLCAwLCA0Mjc5NywgMCwgMTIwMjE1LCAwLCAzOTAyLCAwLCAxNzcwLCAwLCAxMjg4NjYsIAotICAgIDE1NjAsIDEyMDIwOSwgMTk0OTcyLCA0NTg0LCA3Mzg0MywgMCwgMTE3MTIsIDEwODY2LCAxMTg5MjgsIDExMTgsIDkyMjA5LCAKLSAgICAwLCAwLCAxMDgxLCA3NDM2LCA2ODQyMCwgNzI1MiwgMCwgNTk5NiwgMCwgNDkwMywgMCwgNDEzODYsIDUxNjIsIDExOTE4OSwgCi0gICAgMTMzMCwgMCwgNzEzOSwgMCwgMTIwNDcsIDQxMzg0LCAwLCAwLCAxODQ4LCA0MzM0LCA2MzI0LCA0MTk3NSwgNjQ3NzcsIAotICAgIDEwNjc0LCAxMjMwOCwgMTIxODYsIDAsIDAsIDAsIDEyNzE1LCAxMjgzNDksIDAsIDAsIDIwMTgsIDY2NjcyLCA0MTk3OSwgCi0gICAgNjY2ODUsIDExOTE1NywgMCwgOTI0NjQsIDAsIDEyNjk4NCwgMCwgOTMzNCwgOTI3MDUsIDkyMzE1LCAwLCA3OTc1LCAwLCAKLSAgICA3Nzk1NywgMCwgNjY2MjEsIDQ4ODQsIDY2NTk3LCA2OTczMiwgMCwgMCwgNjMxMywgNjU1MTMsIDAsIDAsIDAsIDAsIDIzNDUsIAotICAgIDQzNjk3LCA0NjMsIDAsIDAsIDExOTYwNywgMzExNywgNTQ2MCwgMCwgMCwgMCwgMCwgNDIyNzksIDE5NDU3NywgMCwgCi0gICAgNzg0MTUsIDAsIDE5NTAwOCwgMCwgMTMyNDgsIDAsIDAsIDAsIDAsIDAsIDAsIDU2NjMsIDAsIDAsIDAsIDAsIDI0ODIsIAotICAgIDE0NzEsIDAsIDAsIDQyMjQ3LCAxMjM3OCwgNzM5MjUsIDY5NjY0LCAwLCAxMjM3NCwgMCwgMCwgMCwgMCwgMjQ2MCwgMCwgCi0gICAgMTE5NDQsIDEyMzc2LCAxMjc4NjgsIDY0Njc5LCAwLCAxMjM4MCwgMTA1NTcsIDY0NDczLCA1ODcwLCAwLCAyMDI0LCAKLSAgICAxMjcxODAsIDAsIDAsIDUzOSwgMCwgMTI3NzY1LCAwLCAzODUzLCA2NTE4MCwgMTI3OTIzLCAxMjA3OTYsIDEyMDI0NSwgCi0gICAgOTIzMjQsIDAsIDg2NTksIDAsIDEyNDc0LCA5MjU3OSwgOTUwMywgMTk0OTY5LCAyNDc4LCAwLCA0MTYyLCAwLCA0MjYwLCAKLSAgICAxMjk1MywgNjk2MzMsIDEyMDA4OSwgMTI0NzAsIDAsIDc0MTg5LCAyNzQyLCAxMjQ3NiwgMTE3OTgsIDEwOTQ2LCAxMjczMTAsIAotICAgIDUwMDAsIDAsIDAsIDAsIDY5NjcyLCA4MjEzLCA3NDAxNywgNzc3MSwgNjE2MSwgMCwgNjcwOSwgMCwgNzg4ODUsIDAsIAotICAgIDEyNzk3MSwgMTIwNTgyLCA3ODU0NywgMCwgMTAzMDEsIDEwMzMzLCAxMDM5NywgMCwgMCwgNzM3OTEsIDAsIDAsIDAsIDAsIAotICAgIDAsIDQwMTQsIDEyODQyLCA3Mzk1MiwgMTIwMTUsIDEyNzI5MCwgODI3NSwgMzg5MywgMCwgMCwgMTIyMTAsIDcyMjEsIAotICAgIDQyMTQ3LCAwLCA3NDU1MCwgNzQ0NjUsIDY0NzQ3LCAxMTg4NDEsIDAsIDEyNTE2LCA0NDQ0LCAwLCA5MjI3MSwgNzQ1MzcsIAotICAgIDEwODkyLCA4MjMxLCAwLCA2NDczLCA0MTk2OCwgNzgzODgsIDQxOTczLCAzNTkxLCA0MTk2OSwgMCwgMjQ1MywgMTI4NTQ5LCAKLSAgICA5MjY2NiwgNjQ3MDUsIDAsIDAsIDEwMzQ5LCAxMDQxMywgNDM1OTEsIDQxOTYyLCAzMjAyLCA3NDM1MywgMCwgODMxNiwgMCwgCi0gICAgMCwgMCwgNjg3LCAwLCAwLCAwLCAxODQwLCAwLCA2ODY3MSwgMTE5ODA5LCA0ODgzLCAyODUsIDQ3MjMsIDc3OTI3LCAKLSAgICA5MjY5MiwgNDQ1OSwgNzQ1NzcsIDQyOTIxLCA0MTcyMCwgMTEwODksIDI0MCwgMTk5MDYsIDAsIDQyMzIzLCAwLCA5NzQzLCAKLSAgICAxMjAyMzIsIDEzMTM0LCAwLCAwLCAwLCAwLCAwLCA0MjYzNCwgMCwgNDM0MzcsIDMwODEsIDExNDYzLCAxMjAxNTQsIDAsIDAsIAotICAgIDEwNDQ1LCAwLCAwLCA2NjcxNywgMjYxNCwgOTEyNSwgMTE5MDIzLCAxNzI5LCAwLCAxMjAyMzYsIDY1MjIxLCA2Mzg4MywgCi0gICAgNDMzMzQsIDY0ODUyLCAwLCAxMjAyMzUsIDY2MjAxLCAwLCA2NjU3OCwgNTAwMSwgNDE4NzksIDc0NDI3LCA0MTIxLCA1MDAzLCAKLSAgICA4ODQsIDY2NzAwLCA2Mzg3OSwgNDk0MywgNTE1MCwgNzM4ODksIDc0MTgyLCAxMjc5MTUsIDY0MywgMzA4NiwgMCwgNDI0NDgsIAotICAgIDQyMjk5LCA1OCwgMCwgOTE3OTUyLCAxMjAwODMsIDYzODczLCA4NDkxLCAwLCAwLCAwLCA0NTMwLCA0MjQwOSwgNzEyNiwgCi0gICAgMTk0NTc1LCAyNzIxLCAxMjAwNzQsIDExOTA5NiwgMTk5MjksIDAsIDE5NDU3NCwgMCwgNDI0MiwgNDI2NCwgMTIwMDc3LCAKLSAgICAxMjgxMzIsIDY2MTc5LCA0MjQxMiwgNjU5NDEsIDEzMTE0LCA2NDUyMiwgMTA3NDAsIDMwOTQsIDAsIDk3NTQsIDExOTEwMiwgCi0gICAgNDQzNywgNzM5NDgsIDEyODY5MiwgMCwgNTUyODAsIDQyMTc0LCAxOTQ5MjUsIDQyNDMwLCAwLCAwLCA0MjM1NSwgNjYwMjYsIAotICAgIDQzMDYsIDQxMzgwLCA2ODQzMiwgOTI1ODYsIDAsIDY2NjY3LCAxMjczMDksIDAsIDAsIDQyMjAwLCA0MjU2NiwgMCwgMCwgCi0gICAgNTA4OCwgNjk0OCwgMCwgODUyNCwgMCwgMCwgMTIzODUsIDAsIDAsIDY5NjQ2LCAxMzg2LCA2NDU4MCwgMTE0ODAsIDYxMTYsIAotICAgIDY1MDM5LCA2NTAzOCwgMTIzOTIsIDY1MDM2LCA4MDY0LCAwLCAxMjEwMSwgNTgyMiwgMTE5MDA0LCAyMDgwLCA3MTAsIAotICAgIDc3OTk5LCAxMTY2MywgMTY2NiwgNDIwOTEsIDExOTY1NywgMTIzODMsIDQzNjcxLCA0MjA5MiwgNjg0MTgsIDQyODksIDAsIAotICAgIDYzODk2LCAxMjA2MSwgNDIwOTYsIDQzNjIxLCAzMzYyLCAxMjM3NywgMCwgMCwgNjg0NDksIDc0NjEsIDczOTAxLCAxMjQ0LCAKLSAgICAzMzEsIDczNzg2LCAxMjY4MywgMTA2NjIsIDAsIDgxMTIsIDAsIDY1ODUyLCAwLCAxMjM3OSwgMTk0ODc3LCAxMjA4MTgsIAotICAgIDQxOTY0LCA0MjIwOCwgNjM4NDMsIDIwODQsIDQxOTY1LCAwLCA2NTg2NiwgNDMyNywgMCwgNjM4NDAsIDc4NTQ5LCA0MTIyMCwgCi0gICAgMTMwMzIsIDAsIDU4NCwgMTI5MzMsIDQzMTc3LCAxMjM3MywgMCwgMTMwMDAsIDEzNTEsIDI5MzUsIDg2OTgsIDEyNjY1LCAwLCAKLSAgICAxOTMwLCAwLCA3ODIyOSwgMTI0MjcsIDY2NTE0LCAwLCAxMzAzMSwgMCwgNjM5MDEsIDAsIDM2NTcsIDEyODU3MiwgNjUyMDIsIAorICAgIDY2NTcsIDIwNywgMTI4ODA2LCA0Mjc1LCA3NDgxOSwgODU0LCA2ODE0NywgNzQzODEsIDAsIDc4Nzg2LCA1MTAzLCAKKyAgICAxMjc4NjEsIDY0MzQ4LCA0MTM2OCwgNDM5NzQsIDQ4OCwgNjk4MTEsIDAsIDcxMzM5LCAxMDE1NywgMCwgNDMwMzQsIAorICAgIDExNDM4LCA2NDY3NCwgMCwgOTI2OTQsIDY4NDMxLCA0MTc3MSwgNTEwNiwgNjY2OSwgODUwNCwgNjUxNTQsIDY5ODEzLCAKKyAgICA0MTM2NywgNTEwNSwgMTI3NTA5LCA2OTcyMCwgNjQ3NiwgNTEwNCwgOTgzNzQwLCAzMDQsIDMxNzYsIDExOTAxMCwgMCwgCisgICAgOTMyLCAxMjA2MzMsIDY1NjcsIDIzOCwgNjk2NTYsIDE5NTAxMSwgMTk0NTk1LCAxOTkwNSwgMTIwNTc3LCAxOTUwMTUsIAorICAgIDc4ODcwLCA0MTA0NCwgNjc2NDAsIDE5NDkwMiwgNDIwNTUsIDk5MTIsIDY1OTM5LCAxMDY3MCwgNzQwOTMsIDEzMjczLCAwLCAKKyAgICAxMjU1MiwgMTk1MDE5LCA4ODAzLCAzMDksIDY2MjIsIDgxNTEsIDEwODU4LCA3ODcwNiwgNjc2MzYsIDAsIDEyNTY4LCAwLCAKKyAgICAxMjU1MywgMTA4MTQsIDQzMjc1LCA2OTUwLCA5NzEyLCA2ODY4MCwgNDM5NzAsIDk4MzE5OCwgNjUxNjUsIDkyNzI1LCAwLCAKKyAgICA2NjQ2NiwgMCwgMCwgMCwgNjY3MjUsIDYxOTEsIDExMzUxLCAxMDQzNywgMTEzMTYsIDY3NjM0LCA0Mzc2MywgMCwgNDE3NTQsIAorICAgIDY3NjM1LCA5MzcwLCAyNzIwLCAxOTQ5NzUsIDY4NDYyLCA4MjMyLCAxMTg4MTcsIDAsIDMyMjIsIDAsIDAsIDAsIDY2NjYzLCAKKyAgICAwLCAwLCAxMDgzNCwgMCwgMCwgNjU3MzIsIDk0MDk1LCA5MTc1NDcsIDkyNjgyLCA2NzY3OSwgMTk1MDIwLCAwLCA3NzgxLCAKKyAgICA0MTM4MywgNjQ1NjgsIDAsIDEyMDczOCwgMTIwNzcsIDAsIDY0NTg2LCA5MTc2MjAsIDQyMzk2LCA1NTI1NSwgMzQ3NSwgCisgICAgMTI4MDM1LCAyNDc5LCAwLCAzNjMyLCAxMjA3MjgsIDEwNjk4LCA4Mzc2LCAzNjQ4LCAxOTQ5NjAsIDc0ODQ0LCA2NzYzOSwgCisgICAgMzYzNiwgNjc4OTQsIDM2NTAsIDg4MzcsIDY1MjI5LCAxODQzLCA0MjI4MywgNDMyNTAsIDQxNTYyLCA5MTAwLCA3NDU0OCwgCisgICAgOTE3NjMwLCAzNjQwLCAxMjcxOTAsIDQyMzIxLCA3Mjg0LCAxOTQ5NzQsIDE5NDk3MywgMTk0OTUwLCAxOTQ5NDksIAorICAgIDE5NDk1MiwgMTk0OTUxLCAxMjY2NDksIDE5NDk1MywgNDIwODAsIDI1MjksIDAsIDAsIDAsIDQyMDgzLCAxMjA2NzgsIAorICAgIDY4Mzk4LCAxOTQ5NTcsIDY3NjE5LCA2NjM2NywgMTk0OTU4LCA5NjM0LCA5MjM4MCwgOTk4OCwgMCwgNDEwNjgsIDAsIAorICAgIDQyOTUsIDY1MjY0LCA2ODAwNiwgMCwgOTI1NDUsIDAsIDc4NSwgODIzNiwgMTI4NjQ3LCA5MDI3LCA2ODE2MCwgNjc2MjMsIAorICAgIDY0MzgzLCAxMjAyNjUsIDkyNSwgMTI3MTU2LCAwLCA0MTk4NSwgNDEwNzEsIDk1ODYsIDAsIDQxOTg0LCA5MjE3LCAwLCAwLCAKKyAgICAwLCA5MTg2LCAyMDY3LCA0MDE2LCA5ODM3OTQsIDAsIDM4MSwgMTI5MzYsIDAsIDQyMDc3LCAwLCA2OTg4MCwgNTE4NCwgCisgICAgNDIwNzgsIDE5NDk0NywgMTA4MTAsIDEyODUzMSwgNDU4NSwgMTk5NDMsIDU4NjAsIDY3NjMzLCAwLCAwLCA4MTIsIDM2MTUsIAorICAgIDAsIDUxNzgsIDQ0MDAwLCAxMjA1NDgsIDc4ODA3LCA1MTg4LCA3NDI4NywgNjc2MjksIDM2MDUsIDEwNjkyLCAxMTY2LCAKKyAgICA2NDQyOSwgNDI2MzksIDkyNCwgMCwgNjc2MzEsIDQyNjE2LCAxMjA2NzAsIDI0NDIsIDEwNzAzLCA3ODc4OSwgNjc2MzIsIAorICAgIDkxNzkyNCwgMTI3NzEsIDEyNzM2LCAxMjc1MywgNjY3MDgsIDczOTMzLCA2NzYyNiwgNDI0MDEsIDAsIDY5ODcyLCAKKyAgICAxMjczNzMsIDQyMjg4LCAxMjc1MSwgMCwgODU0MiwgMTMxNDUsIDE5NDk2MywgMjQ2OCwgNjY3MDYsIDQxMjk0LCAzNjI2LCAKKyAgICAzODgzLCA2NDM4OCwgNDI0NzksIDAsIDQxMTE3LCAwLCA5MjU4MCwgMCwgMCwgNjc2MjQsIDAsIDEyOTAsIDAsIDY1NTg1LCAKKyAgICAyNzE1LCA4MDYsIDY1MjA4LCA0MTg4NCwgOTE3ODgzLCAxMzE4LCA2NDczMSwgMTI2NTc4LCAwLCAwLCA2NjMyNSwgMzQ2NSwgCisgICAgMjQwNSwgOTI0MCwgMCwgMTI3NTYsIDY1MjU5LCAwLCA5ODM3NzIsIDEyNzUyLCA1ODMzLCAxNDMyLCAwLCA0MTg4MywgCisgICAgNzM5MTIsIDk3OTksIDAsIDQxODg2LCAyNDgwLCAwLCAyMDYyLCAxMjcyOTMsIDY0OTQsIDU1MzcsIDc4NjU2LCAwLCAKKyAgICAxOTQ1ODcsIDAsIDEyMTEsIDAsIDAsIDAsIDExODgzMiwgMTIzMTgsIDAsIDAsIDY4MDA1LCAxMDYyMiwgOTgzNzcwLCAwLCAKKyAgICA3ODY1NCwgNjU2NiwgNzg2NTksIDAsIDczNzgwLCAxMTkxOTYsIDY0ODY0LCAwLCA3ODY2MCwgMCwgODI4NCwgMTMwODEsIDAsIAorICAgIDM1ODksIDQyMDUxLCA0MDM1LCA2NDkyLCA5MjIzNiwgNDI2NSwgNjY0MiwgMzk3NywgNzQxODYsIDQxNzc4LCA4MzYsIAorICAgIDExOTIxNiwgMjQ4OCwgMCwgNDU4MiwgMCwgMCwgNDE3NzcsIDEyOTI2LCA5ODMzNjksIDc1MjgsIDEwNTUwLCAwLCA5MjcwNiwgCisgICAgMCwgMTA5NjEsIDAsIDEzNzQsIDY0ODc4LCAxMTkwMTQsIDAsIDQyMzg5LCA0MTM3NCwgMjI4NiwgMCwgNzg0OTIsIDQxMzc3LCAKKyAgICAxMjc5MDksIDAsIDQwMCwgMTI1OTcsIDEyMDU4NiwgMCwgMCwgNjY2MSwgOTgzMTQ1LCA2NDgyNywgMCwgNzM4MTcsIDM5MCwgCisgICAgMCwgNzEzMDEsIDk4Mzg1MywgMzQ3MywgNzcxOCwgMCwgMCwgMCwgNTUyODUsIDAsIDAsIDAsIDExOTY5LCA5ODMzODIsIAorICAgIDEyNzg0MSwgNjM2NSwgMTg4NywgNjc2MywgOTgzMzYyLCA4MDgwLCA3MDA2LCAwLCA5ODMzNjMsIDY3NTcsIDY0MzUxLCAKKyAgICAxNTQ0LCAwLCA2NzY2LCA2NDY3NywgMTIwNzE2LCA5ODMzNjQsIDYxNDYsIDAsIDc3MSwgOTgzMzY1LCAwLCAxMjgxMiwgCisgICAgMTMxNjgsIDQyMjcyLCAxMjIwMCwgOTE3OTI3LCA3OTA0LCAwLCA5NTMsIDEyOTE3LCAxMTk1NjAsIDEyMzAwLCAwLCAKKyAgICAxMTQ5MSwgOTcyNCwgMTAzNDEsIDk4Mzc2NCwgOTUyNCwgNzQ5MCwgMTEzODksIDc0ODksIDMzNzksIDAsIDc0ODcsIDAsIAorICAgIDQ3MSwgNzQ4NCwgNzQ4MiwgNjc1MywgNzQ4MCwgNTc2NCwgNzQ3OCwgNzQ3NywgNjUwMSwgNzQ3NSwgNjkxOCwgNzQ3MywgCisgICAgNzQ3MiwgMjQ3NCwgNzQ3MCwgNzQ2OCwgMTAyMzIsIDEwNjE1LCAxMDIxMywgMTI3Mjg4LCA5MjM1NywgMTAwNDksIDExODM0LCAKKyAgICAzNTQ0LCAwLCA2MDE3LCA2NTMxMSwgMTI3NDgxLCAxMjAyMTYsIDEzMzA2LCAxMDUzMywgNzg3MCwgNzM5NDksIDc2MjUsIDAsIAorICAgIDEyMDU0NCwgMCwgMCwgOTI2NjAsIDAsIDAsIDAsIDE5OTYxLCAyNDcyLCA0MjY2NSwgOTIzNDEsIDAsIDIxMzksIDQyNTYsIAorICAgIDEyMDc3NiwgNzQzODAsIDAsIDQyNjc1LCA0MjY1OCwgMTI4NDUsIDAsIDAsIDY1MTM4LCAxMTkzNTUsIDY3ODYyLCAwLCAKKyAgICA2NTY3MSwgNzA4MywgMTIwMDA4LCA4MDY2LCA3Njc4LCA3NDg2NSwgMCwgMCwgMCwgMCwgNzE4NiwgMCwgMTIwNTU1LCAwLCAKKyAgICA0NDUsIDEyMDU2NiwgMTI4MzA4LCAwLCAwLCA4MzMwLCAwLCAwLCA0Mjc5NywgOTgzMTUwLCAxMjAyMTUsIDAsIDM5MDIsIDAsIAorICAgIDE3NzAsIDAsIDEyODg2NiwgMTU2MCwgMTIwMjA5LCAxOTQ5NzIsIDQ1ODQsIDczODQzLCAwLCAxMTcxMiwgMTA4NjYsIAorICAgIDExODkyOCwgMTExOCwgNzEzMzQsIDAsIDAsIDEwODEsIDc0MzYsIDY4NDIwLCA3MjUyLCAwLCA1OTk2LCA2OTkyMSwgNDkwMywgCisgICAgMCwgNDEzODYsIDUxNjIsIDExOTE4OSwgMTMzMCwgMCwgNzEzOSwgMCwgMTIwNDcsIDQxMzg0LCAwLCAwLCAxODQ4LCA0MzM0LCAKKyAgICA2MzI0LCA0MTk3NSwgNjQ3NzcsIDEwNjc0LCAxMjMwOCwgMTIxODYsIDAsIDAsIDk4MzczMiwgMTI3MTUsIDY4MDAyLCAKKyAgICA5ODM0NzEsIDEyNjYzMCwgMjAxOCwgNjY2NzIsIDQxOTc5LCA2NjY4NSwgMTE5MTU3LCA2ODAwMCwgOTI0NjQsIDAsIAorICAgIDEyNjk4NCwgNjgwMDEsIDkzMzQsIDkyNzA1LCA5MjMxNSwgNzAxMDEsIDc5NzUsIDAsIDc3OTU3LCAwLCA2NjYyMSwgNDg4NCwgCisgICAgNjY1OTcsIDY5NzMyLCAwLCAwLCA2MzEzLCA2NTUxMywgNjk4NTcsIDAsIDAsIDAsIDIzNDUsIDQzNjk3LCA0NjMsIDAsIDAsIAorICAgIDExOTYwNywgMzExNywgNTQ2MCwgMCwgMCwgOTgzMzc5LCAwLCA0MjI3OSwgMTk0NTc3LCAwLCA3ODQxNSwgMCwgMTk1MDA4LCAKKyAgICA5ODMzNzYsIDEzMjQ4LCAwLCAwLCAwLCAwLCAwLCAwLCA1NjYzLCAwLCAwLCAwLCAwLCAyNDgyLCAxNDcxLCAwLCAwLCAKKyAgICA0MjI0NywgMTIzNzgsIDczOTI1LCA2OTY2NCwgMCwgMTIzNzQsIDAsIDAsIDAsIDk4MzY4NSwgMjQ2MCwgMCwgMTE5NDQsIAorICAgIDEyMzc2LCAxMjc4NjgsIDY0Njc5LCAwLCAxMjM4MCwgMTA1NTcsIDY0NDczLCA1ODcwLCAwLCAyMDI0LCAxMjcxODAsIDAsIAorICAgIDAsIDUzOSwgMCwgMTI3NzY1LCA5NDA1MiwgMzg1MywgNjUxODAsIDEyNzkyMywgMTIwNzk2LCAxMjAyNDUsIDkyMzI0LCAwLCAKKyAgICA4NjU5LCAwLCAxMjQ3NCwgOTI1NzksIDk1MDMsIDE5NDk2OSwgMjQ3OCwgMCwgNDE2MiwgMCwgNDI2MCwgMTI5NTMsIAorICAgIDY5NjMzLCAxMjAwODksIDEyNDcwLCAwLCA3NDE4OSwgMjc0MiwgMTI0NzYsIDExNzk4LCAxMDk0NiwgMTI3MzEwLCA1MDAwLCAKKyAgICAwLCA5ODM1NzksIDAsIDY5NjcyLCA4MjEzLCA3NDAxNywgNzc3MSwgNjE2MSwgNjgwMTgsIDY3MDksIDAsIDc4ODg1LCAKKyAgICA5ODM2OTksIDEyNzk3MSwgMTIwNTgyLCA3ODU0NywgMCwgMTAzMDEsIDEwMzMzLCAxMDM5NywgMCwgMCwgNzM3OTEsIDAsIDAsIAorICAgIDAsIDAsIDExOTEyMywgNDAxNCwgMTI4NDIsIDczOTUyLCAxMjAxNSwgMTI3MjkwLCA4Mjc1LCAzODkzLCA5ODMyNTYsIDAsIAorICAgIDEyMjEwLCA3MjIxLCA0MjE0NywgMCwgNzQ1NTAsIDc0NDY1LCA2NDc0NywgMTE4ODQxLCAwLCAxMjUxNiwgNDQ0NCwgMCwgCisgICAgOTIyNzEsIDc0NTM3LCAxMDg5MiwgODIzMSwgMCwgNjQ3MywgNDE5NjgsIDc4Mzg4LCA0MTk3MywgMzU5MSwgNDE5NjksIDAsIAorICAgIDI0NTMsIDEyODU0OSwgOTI2NjYsIDY0NzA1LCAwLCAwLCAxMDM0OSwgMTA0MTMsIDQzNTkxLCA0MTk2MiwgMzIwMiwgCisgICAgNzQzNTMsIDAsIDgzMTYsIDAsIDAsIDk0MDYwLCA2ODcsIDAsIDAsIDAsIDE4NDAsIDAsIDY4NjcxLCAxMTk4MDksIDQ4ODMsIAorICAgIDI4NSwgNDcyMywgNzAwOTksIDkyNjkyLCA0NDU5LCA3NDU3NywgNDI5MjEsIDQxNzIwLCAxMTA4OSwgMjQwLCAxOTkwNiwgMCwgCisgICAgNDIzMjMsIDAsIDk3NDMsIDEyMDIzMiwgMTMxMzQsIDEyNjUzNSwgMCwgMCwgMCwgMCwgNDI2MzQsIDk4MzMzNSwgNDM0MzcsIAorICAgIDMwODEsIDExNDYzLCAxMjAxNTQsIDAsIDAsIDEwNDQ1LCAwLCAwLCA2NjcxNywgMjYxNCwgOTEyNSwgMTE5MDIzLCAxNzI5LCAKKyAgICAwLCAxMjAyMzYsIDY1MjIxLCA2Mzg4MywgNDMzMzQsIDY0ODUyLCAwLCA2NTE5NCwgNjYyMDEsIDAsIDY2NTc4LCA1MDAxLCAKKyAgICA0MTg3OSwgNzQ0MjcsIDQxMjEsIDUwMDMsIDg4NCwgNjY3MDAsIDYzODc5LCA0OTQzLCA1MTUwLCA3Mzg4OSwgNzQxODIsIAorICAgIDEyNzkxNSwgNjQzLCAzMDg2LCAwLCA0MjQ0OCwgNDIyOTksIDU4LCAwLCA5MTc5NTIsIDEyMDA4MywgNjM4NzMsIDg0OTEsIAorICAgIDAsIDAsIDAsIDQ1MzAsIDQyNDA5LCA3MTI2LCAxOTQ1NzUsIDI3MjEsIDEyMDA3NCwgMTE5MDk2LCAxOTkyOSwgMCwgCisgICAgMTk0NTc0LCAwLCA0MjQyLCA0MjY0LCAxMjAwNzcsIDEyMDUzMCwgNjYxNzksIDQyNDEyLCA2NTk0MSwgMTMxMTQsIDY0NTIyLCAKKyAgICAxMDc0MCwgMzA5NCwgMCwgOTc1NCwgMTE5MTAyLCA0NDM3LCA3Mzk0OCwgMTI3MDc0LCA5ODMyMzIsIDU1MjgwLCA0MjE3NCwgCisgICAgMTk0OTI1LCA0MjQzMCwgMCwgMCwgNDIzNTUsIDY2MDI2LCA0MzA2LCA0MTM4MCwgNjg0MzIsIDkyNTg2LCAwLCA2NjY2NywgCisgICAgMTI3MzA5LCAwLCAxMjY1MjEsIDQyMjAwLCA0MjU2NiwgMCwgMCwgNTA4OCwgNjk0OCwgMCwgODUyNCwgMCwgMCwgMTIzODUsIAorICAgIDAsIDAsIDY5NjQ2LCAxMzg2LCA2NDU4MCwgMTE0ODAsIDYxMTYsIDY1MDM5LCA2NTAzOCwgMTIzOTIsIDY1MDM2LCA4MDY0LCAKKyAgICAwLCAxMjEwMSwgNTgyMiwgMTE5MDA0LCAyMDgwLCA3MTAsIDc3OTk5LCAxMTY2MywgMTY2NiwgNDIwOTEsIDExOTY1NywgCisgICAgMTIzODMsIDQzNjcxLCA0MjA5MiwgNjg0MTgsIDQyODksIDAsIDYzODk2LCAxMjA2MSwgNDIwOTYsIDQzNjIxLCAzMzYyLCAKKyAgICAxMjM3NywgOTgzODIzLCA5ODM4MjUsIDY4NDQ5LCA3NDYxLCA3MzkwMSwgMTI0NCwgMzMxLCA3Mzc4NiwgMTI2ODMsIAorICAgIDEwNjYyLCAwLCA4MTEyLCAwLCA2NTg1MiwgMCwgMTIzNzksIDE5NDg3NywgMTIwODE4LCA0MTk2NCwgNDIyMDgsIDYzODQzLCAKKyAgICAyMDg0LCA0MTk2NSwgMCwgNjU4NjYsIDQzMjcsIDAsIDYzODQwLCA3ODU0OSwgNDEyMjAsIDEzMDMyLCAwLCA1ODQsIAorICAgIDEyOTMzLCA0MzE3NywgMTIzNzMsIDY5ODU1LCAxMzAwMCwgMTM1MSwgMjkzNSwgODY5OCwgMTI2NjUsIDAsIDE5MzAsIDAsIAorICAgIDc4MjI5LCAxMjQyNywgNjY1MTQsIDY5ODU5LCAxMzAzMSwgMCwgNjM5MDEsIDAsIDM2NTcsIDEyODU3MiwgNjUyMDIsIAogICAgIDYwMDAsIDExOTIwNiwgMTI0MjYsIDEyNzE4MSwgMCwgNDE3NDAsIDEyNDI4LCA0MTI4MywgNDE5MTYsIDExOTIxMCwgMCwgMCwgCiAgICAgMTI0MjksIDY3MjcsIDAsIDc1NjIsIDAsIDUxNzAsIDAsIDQxNzU1LCA2NzYsIDAsIDY2NzA0LCA2NjY2NCwgOTk3OCwgCiAgICAgNjY0OTEsIDM1MzYsIDAsIDk3NTIsIDkyMzk3LCA2MTYyLCAwLCA2OTIyOCwgMTAxMTMsIDQxODI5LCA2NTg4NiwgNTE1OSwgCkBAIC0xNjQyMSw3MDYgKzE3MzMxLDczMSBAQAogICAgIDAsIDYzODY3LCA0MTMzLCAxMTM3MSwgMjEwLCA0NjAwLCAwLCA3NDU2MCwgNDEzNywgODA4MiwgNzg1MDYsIDExOTA2MiwgCiAgICAgNzg1MDQsIDY3MDQsIDQ1OTEsIDEyODAyOSwgMCwgMCwgOTY4MCwgMCwgMTIwNjIzLCA1NjEsIDEyMTU5LCAxOTUsIDc4NTA4LCAKICAgICA0MTUwMSwgMCwgNDIwMzEsIDU3MTksIDcxNzIsIDQyNjg3LCA4MzY4LCAwLCA0MTQ5OSwgMCwgMCwgNDIyNDIsIDQxNDk4LCAKLSAgICA5MTc3OTQsIDQyMDI1LCA3ODU2NywgNjU4MDUsIDQyNDYzLCAwLCAyOTI0LCAwLCAxMjA1MTAsIDAsIDAsIDExOTIxMywgCisgICAgOTE3Nzk0LCA0MjAyNSwgNzg1NjUsIDY1ODA1LCA0MjQ2MywgMCwgMjkyNCwgMCwgMTIwNTEwLCAwLCAwLCAxMTkyMTMsIAogICAgIDczOTQxLCAwLCA0MjMzMCwgOTE3Nzg0LCAzOTY5LCAwLCAwLCA3MTY5LCAxOTkyLCA5NjUyLCA3Mzk3NywgNzI0NiwgCi0gICAgNDIwODYsIDkxNzc5MCwgOTE3Nzg5LCAwLCAwLCAxMjg4MDEsIDAsIDAsIDMyNywgMCwgOTA0MiwgOTE3Nzc3LCA5MTc3NzYsIAotICAgIDY1MTQ4LCAxMjQzMywgOTE3NzgxLCAxMjcyNzYsIDkxNzc3OSwgMTI0MzEsIDg2NjgsIDEyNDM0LCAwLCA5MTc3ODIsIAotICAgIDU5OTksIDAsIDc3MTIsIDEyNDMyLCAxMjgyNDMsIDQzNjUzLCAxNzI2LCAxMDE1LCAwLCA4MjEyLCAwLCAxMjgwMTQsIAotICAgIDQyNDIzLCAxMTkwNjYsIDAsIDEyODEwOCwgNjY3MDksIDAsIDg4MTEsIDkyNywgMCwgMCwgMTI0MzYsIDAsIDQyMDIxLCAwLCAKLSAgICAwLCAxMjk5LCAxMjI0MCwgNDIzNTAsIDY1MTQzLCAwLCAxOTUwMTYsIDAsIDc4MTk3LCAxMTM0OCwgMCwgNzgwMzcsIDkxOTQsIAotICAgIDAsIDAsIDE5OTE0LCAxMjE3OSwgMCwgOTY0OCwgMTk0OTIzLCA2MzgzNiwgNjM4MzIsIDkxNzc3MywgMTA5NjcsIDYzODE2LCAKLSAgICAyNTk0LCAzNDQ0LCA2MzgxNywgNjQ2NTEsIDAsIDQxNTAzLCAxMjc0NzgsIDExMjY1LCAwLCAxMjA3NTYsIDE5NDkyMiwgMCwgCi0gICAgNTY2NCwgMzk3MiwgMCwgMCwgMCwgMTI4NTA4LCAxMjQxNiwgOTE3NzY0LCAxMTk2MDgsIDEwODE2LCA5MTc3NjksIAotICAgIDkxNzc2OCwgMTI0MTgsIDc0MTExLCAzODgyLCA4NTMyLCA5MTc3NzEsIDE1NzMsIDEyODY0OCwgMTE5ODQ3LCA0NTk2LCAKLSAgICA2NjMzOSwgMTI0MTcsIDY2MDAxLCA2NTM0MywgMTk0NzgyLCAxMjQxNCwgODI4NywgNjgyMTksIDE5NTAxNywgNjgxMDgsIAotICAgIDExNDMsIDExOTE2OSwgMTE5ODQ2LCAxMjQxNSwgNjYyNiwgNDI3NjMsIDAsIDExODg4NCwgOTAyMSwgMTIwNzgzLCAwLCAKLSAgICAxMTcyNCwgMCwgMCwgMTI3MTA0LCAxMjg1MjYsIDAsIDAsIDgwMjcsIDEwOTk3LCA5MTcxLCAxMjc0MSwgMTE0MDAsIAotICAgIDc0MTk3LCAxOTQ3OTksIDAsIDEyODIzOSwgMCwgMTI4ODgxLCAxMTk2MDQsIDEyNzUyMywgMTIwMTkwLCAxOTQ3NzMsIAotICAgIDY3NjA4LCAxMjgyMTQsIDQyMzY4LCAwLCA3NzE1LCAzODgxLCA0MTQ4NywgMTIxMTgsIDQyNTE0LCA2ODY1MSwgMCwgMCwgCi0gICAgMzAwOSwgNDE0NzYsIDQxNDg5LCA2OTgyNSwgMzAwNywgMTQ0OCwgMzAxOCwgMTk0ODA5LCAzODg5LCA4NTIxLCA1MDgzLCAKLSAgICA1MDgyLCAxMTk4NTksIDEyMDE4NCwgODUxOSwgMCwgMzAxNCwgNTA4MSwgNjU4NTMsIDEyMDcxNSwgMCwgMTIwMTgzLCAKLSAgICA3ODIxOSwgNTA3OSwgNjQ4MDIsIDQyMjEwLCA0NTk3LCA2NTUzMiwgNzg0NDQsIDEyMDE4NSwgMTIzNzEsIDAsIDg0MDcsIDAsIAotICAgIDEwODA1LCA4NTE4LCAxMDc3OSwgMTIwMTg4LCAwLCAwLCAxMjM2NywgNDIxNzAsIDAsIDkyNTU3LCA2MjksIDE5MjQsIDAsIAotICAgIDEyMDM3LCA3NDM2NiwgNTk4NywgODQ2MiwgODAwNSwgMTIzNjUsIDYzOTMzLCA2OTczNSwgMTIwODE1LCAxMjM2OSwgCi0gICAgMTA2NDksIDAsIDUwNzcsIDEyNzEwOCwgMTA4ODAsIDYzOTI3LCA1MDc1LCA5MTc4ODEsIDAsIDY1MDc1LCAwLCAxMTAwNywgCi0gICAgMCwgNjY2NTksIDkyNjA3LCAwLCA2NjY4NCwgMCwgMzQzNCwgNDk1NCwgMTkwNCwgMCwgNTI2NiwgMTI2OTgwLCA1MjcyLCAKLSAgICAxMDQ5OSwgNDUwNywgOTU3OCwgNjM5MjMsIDEyMDE3NywgNzk3OSwgMCwgOTgzMSwgMCwgMTk0OTI2LCA0NjEsIDk4MDMsIDAsIAotICAgIDQ1MDQsIDE1MDUsIDAsIDYzMjUsIDUyNzYsIDQzMDIxLCAxMjA0ODgsIDAsIDU1MjM2LCAwLCA2NjQ2MSwgNTE3NywgCi0gICAgNDEzMjQsIDEyMDU1LCA4NzIyLCAwLCA0MTMyNywgMCwgNjY2OTUsIDQxMTQsIDQwOSwgNDM4MywgODkwMCwgODk0OCwgCi0gICAgNDEzMjUsIDAsIDcyMSwgMTAxODIsIDkxMDgsIDAsIDAsIDExOTE4NSwgNDIyMjksIDE5NDkxMiwgMCwgNTk5OCwgMCwgCi0gICAgNDIzNTMsIDc0ODI1LCAwLCAxMjU4NywgMCwgNzg1NzEsIDAsIDAsIDE5NDU2MiwgNDE1NzYsIDQyMjE1LCA3ODU3MCwgCi0gICAgMTE5MjA3LCAwLCA4NTc4LCA1OTk1LCA3NTczLCA0MTU3NSwgNzQ3ODksIDc0NzUyLCA2Mzk0NCwgNjM5NDksIDY0NzY3LCAKLSAgICAyNjcwLCA0MTY3LCAwLCAxMTcyMywgMCwgNzQxMjAsIDAsIDY1MDc2LCA5MzgsIDQzNDE0LCA3Mzg1NCwgMTE3MzcsIDk3MjEsIAotICAgIDAsIDAsIDAsIDExNzQyLCAyNDE5LCAwLCAxMTQ5MywgMTIzMzQsIDE5NDkxMywgNDE1MywgMTIzMDIsIDEwNzkzLCA1MjUwLCAKLSAgICAxMjQwNywgMTE5NzgsIDQ0MDQsIDkxODksIDEyNDAxLCA0MjAwNywgNTc3NSwgNjc1OSwgNjU4MDYsIDQzOTk3LCAwLCAKLSAgICA0MjAwMiwgMTI0MDQsIDAsIDAsIDQ5NDAsIDEyNDEwLCA3NjgzLCAxMTY3LCA3MzcyOSwgNDk4MywgMCwgODYxLCAwLCAwLCAKLSAgICAwLCAwLCA2NTU3NywgNDMzNzAsIDAsIDAsIDExOTU2LCAwLCAwLCAwLCA5NjE2LCA2NjMxLCAwLCAxMjgxNiwgNzQ1ODMsIAorICAgIDQyMDg2LCAxMjY2MTUsIDIyMTksIDAsIDAsIDEyODgwMSwgMTk0ODM3LCAwLCAzMjcsIDAsIDkwNDIsIDkxNzc3NywgCisgICAgOTE3Nzc2LCA2NTE0OCwgMTI0MzMsIDkxNzc4MSwgMTI3Mjc2LCA5MTc3NzksIDEyNDMxLCA4NjY4LCAxMjQzNCwgOTgzODI2LCAKKyAgICA5MTc3ODIsIDU5OTksIDAsIDc3MTIsIDEyNDMyLCAxMjgyNDMsIDQzNjUzLCAxNzI2LCAxMDE1LCAwLCA4MjEyLCAwLCAKKyAgICAxMjgwMTQsIDQyNDIzLCAxMTkwNjYsIDAsIDEyODEwOCwgNjY3MDksIDAsIDg4MTEsIDkyNywgMCwgMCwgMTI0MzYsIAorICAgIDk4MzIzOSwgNDIwMjEsIDAsIDAsIDEyOTksIDEyMjQwLCA0MjM1MCwgNjUxNDMsIDAsIDE5NTAxNiwgMCwgNzgxOTcsIAorICAgIDExMzQ4LCAwLCA3ODAzNywgOTE5NCwgOTgzMTg0LCAwLCAxOTkxNCwgMTIxNzksIDk4MzgwMywgMjI5NiwgMTk0OTIzLCAKKyAgICA2MzgzNiwgNjM4MzIsIDkxNzc3MywgMTA5NjcsIDYzODE2LCAyNTk0LCAzNDQ0LCA2MzgxNywgNjQ2NTEsIDAsIDQxNTAzLCAKKyAgICAxMjc0NzgsIDExMjY1LCAwLCAxMjA3NTYsIDE5NDkyMiwgMCwgNTY2NCwgMzk3MiwgMCwgMCwgMCwgMTI4NTA4LCAxMjQxNiwgCisgICAgOTE3NzY0LCAxMTk2MDgsIDEwODE2LCA5MTc3NjksIDkxNzc2OCwgMTI0MTgsIDc0MTExLCAzODgyLCA4NTMyLCA5MTc3NzEsIAorICAgIDE1NzMsIDEyODY0OCwgMTE5ODQ3LCA0NTk2LCA2NjMzOSwgMTI0MTcsIDY2MDAxLCA2NTM0MywgMTI2NDkxLCAxMjQxNCwgCisgICAgODI4NywgNjgyMTksIDE5NTAxNywgNjgxMDgsIDExNDMsIDExOTE2OSwgMTE5ODQ2LCAxMjQxNSwgNjYyNiwgNDI3NjMsIDAsIAorICAgIDExODg4NCwgOTAyMSwgMTIwNzgzLCAwLCAxMTcyNCwgMCwgMCwgMTI3MTA0LCAxMjY2MTksIDAsIDAsIDgwMjcsIDEwOTk3LCAKKyAgICA5MTcxLCAxMjc0MSwgMTE0MDAsIDcxMzA1LCAxOTQ3OTksIDAsIDEyODIzOSwgMCwgMTI4ODgxLCAxMTk2MDQsIDEyNzUyMywgCisgICAgMTIwMTkwLCAxOTQ3NzMsIDY3NjA4LCAxMjgyMTQsIDQyMzY4LCAwLCA3NzE1LCAzODgxLCA0MTQ4NywgMTIxMTgsIDQyNTE0LCAKKyAgICA2ODY1MSwgMCwgOTgzODg2LCAzMDA5LCA0MTQ3NiwgNDE0ODksIDY5ODI1LCAzMDA3LCAxNDQ4LCAzMDE4LCAxOTQ4MDksIAorICAgIDM4ODksIDg1MjEsIDUwODMsIDUwODIsIDExOTg1OSwgMTIwMTg0LCA4NTE5LCA5ODMyMzUsIDMwMTQsIDUwODEsIDY1ODUzLCAKKyAgICAxMjA3MTUsIDAsIDY4MDE0LCA2OTk1MSwgNTA3OSwgNjQ4MDIsIDQyMjEwLCA0NTk3LCA2NTUzMiwgMTE4MjgsIDEyMDE4NSwgCisgICAgMTIzNzEsIDAsIDg0MDcsIDAsIDEwODA1LCA4NTE4LCAxMDc3OSwgMTIwMTg4LCA3MTMwMywgOTgzOTI0LCAxMjM2NywgCisgICAgNDIxNzAsIDAsIDkyNTU3LCA2MjksIDE5MjQsIDAsIDEyMDM3LCA3NDM2NiwgNTk4NywgODQ2MiwgODAwNSwgMTIzNjUsIAorICAgIDYzOTMzLCA2OTczNSwgMTIwODE1LCAxMjM2OSwgMTA2NDksIDY3OTgxLCA1MDc3LCAxMjAxNzQsIDEwODgwLCA2MzkyNywgCisgICAgNTA3NSwgOTE3ODgxLCAwLCA2NTA3NSwgMCwgMTEwMDcsIDk4MzY5NiwgNjY2NTksIDkyNjA3LCAwLCA2NjY4NCwgMCwgCisgICAgMzQzNCwgNDk1NCwgMTkwNCwgMCwgNTI2NiwgMTI2OTgwLCA1MjcyLCAxMDQ5OSwgNDUwNywgOTU3OCwgNjM5MjMsIAorICAgIDEyMDE3NywgNzk3OSwgMCwgOTgzMSwgMCwgMTk0OTI2LCA0NjEsIDk4MDMsIDAsIDQ1MDQsIDE1MDUsIDAsIDYzMjUsIAorICAgIDUyNzYsIDQzMDIxLCAxMjA0ODgsIDAsIDU1MjM2LCAwLCA2NjQ2MSwgNTE3NywgNDEzMjQsIDEyMDU1LCA4NzIyLCAwLCAKKyAgICA0MTMyNywgMCwgNjY2OTUsIDQxMTQsIDQwOSwgNDM4MywgODkwMCwgODk0OCwgNDEzMjUsIDAsIDcyMSwgMTAxODIsIDkxMDgsIAorICAgIDcxMzExLCAwLCAxMTkxODUsIDQyMjI5LCAxOTQ5MTIsIDAsIDU5OTgsIDAsIDQyMzUzLCA3NDgyNSwgMCwgMTI1ODcsIAorICAgIDk0MTA0LCA3ODU3MSwgMCwgNzEzMjgsIDE5NDU2MiwgNDE1NzYsIDQyMjE1LCA3ODU3MCwgMTE5MjA3LCAwLCA4NTc4LCAKKyAgICA1OTk1LCA3NTczLCA0MTU3NSwgNzQ3ODksIDc0NzUyLCA2Mzk0NCwgNjM5NDksIDY0NzY3LCAyNjcwLCA0MTY3LCAxOTQ3OTYsIAorICAgIDExNzIzLCAwLCA3NDEyMCwgMCwgNjUwNzYsIDkzOCwgNDM0MTQsIDczODU0LCAxMTczNywgOTcyMSwgMCwgMCwgMCwgCisgICAgMTE3NDIsIDI0MTksIDAsIDExNDkzLCAxMjMzNCwgMTk0OTEzLCA0MTUzLCAxMjMwMiwgMTA3OTMsIDUyNTAsIDEyNDA3LCAKKyAgICAxMTk3OCwgNDQwNCwgOTE4OSwgMTI0MDEsIDQyMDA3LCA1Nzc1LCA2NzU5LCA2NTgwNiwgNDM5OTcsIDAsIDQyMDAyLCAKKyAgICAxMjQwNCwgOTgzNTUzLCAwLCA0OTQwLCAxMjQxMCwgNzY4MywgMTE2NywgNzM3MjksIDQ5ODMsIDEyMDUwNywgODYxLCAwLCAKKyAgICAwLCAwLCAwLCA0Mzc1NywgNDMzNzAsIDAsIDAsIDExOTU2LCAwLCAwLCAwLCA5NjE2LCA2NjMxLCAwLCAxMjgxNiwgNDM3NTksIAogICAgIDQyMjE4LCAxMjcxMCwgNjg2NzQsIDEyNzIxLCA0MTAxLCA2NjE4NSwgMCwgNTk5MiwgNzYxNiwgMTk1MDQ0LCAwLCAxMjU3NywgCi0gICAgMCwgMCwgODUzLCA0MjY5MywgMTk1MDE0LCAwLCAwLCA1MDE2LCA0MzUzNSwgNjM4OTMsIDQyODM1LCA5NDkxLCA5MTc5MTMsIAotICAgIDAsIDkxNzkxNCwgMCwgMTI3MTIsIDcxMDUsIDEyNzgwNywgNjUwNjAsIDEyMDc5NywgOTkwMCwgMCwgMCwgMTk0OTE5LCAwLCAKLSAgICAxMjc4MzAsIDAsIDY0Nzc4LCAxMjU4NSwgMTA1NjUsIDEyODE1MSwgMTIxNzcsIDAsIDAsIDAsIDc3ODI0LCAwLCA0OTAwLCAKLSAgICAxMjc4NzQsIDEyODc4LCA5MjYzMCwgODk4NCwgNDExOSwgNzQ3NjgsIDg5NzEsIDc4NTkzLCA0MzExMywgOTcwMiwgNzg1OTQsIAotICAgIDExMDI1LCA5MjQ1LCAxMzA0OCwgNDkyNywgNDEzOCwgNzQxODUsIDkyNDgxLCA5MjcxMCwgMTIzOTcsIDc3ODI3LCAwLCAKLSAgICAxMzA1NCwgMTIzOTQsIDAsIDAsIDAsIDEzMDUzLCAwLCAzOTQ4LCAxMDc4MSwgMTU0NiwgMCwgNTAxMCwgMTY4MCwgMTA1MDcsIAotICAgIDc4NTkwLCA3ODU4MywgMCwgMCwgMCwgMTk0OTE1LCA3MjY3LCAwLCA3NDgzMywgMTI4MTgxLCA1OTkzLCAyODE5LCAwLCAKLSAgICAxMjcwNiwgNzc4NDAsIDE4OTMsIDcyNjYsIDYzOTE1LCA3MjY0LCA3MjY1LCAwLCAxMzYzLCAwLCA2Mzk5NywgNjM5MTAsIAotICAgIDYzOTk2LCAzMDc3LCAwLCAwLCAxNTEyLCAwLCAxMjU4OSwgNDE0NzksIDEyODMxMywgMCwgNDMzMzksIDAsIDk4MzYsIAotICAgIDEyMDcyNywgMCwgNDE0ODEsIDQzMzM1LCA3ODMyLCA0MjM0MywgMzA5MCwgNDMzMzcsIDgxNywgMTY2NCwgMTg1MCwgCi0gICAgMTI4ODQxLCAzMDc5LCAxMTM0MCwgNDI0MDgsIDQyNDQ3LCAxMjcxNDAsIDEyMDAyMCwgNDIzMDcsIDEyMzg2LCA0MjMwNCwgCi0gICAgOTE3NTU1LCAwLCAxMjM4OSwgMCwgOTIzNjYsIDQxOTk2LCAxMTUyNiwgNjM5ODUsIDU4NjQsIDExNDcsIDYzOTkyLCAKLSAgICA0Mjg4NywgMTk4NywgOTI3MTgsIDU0ODAsIDc4NTgsIDExNjUzLCA0MTE2LCAxMjM5MSwgNjYxOTMsIDAsIDQ5MzksIAotICAgIDEyMzg0LCAwLCAwLCA0MTY4NiwgNjM5MDUsIDExOTYwMSwgMTk0Njg4LCAwLCAwLCAxMjY0OSwgMCwgMCwgODI0NywgNTA3LCAKLSAgICA5MSwgMjA0MiwgMTIwNzc1LCA0MzY0MywgMTk0Njg5LCA2NjAyOCwgMTAwMzYsIDQxODQ0LCAxMTk4MTMsIDc3NCwgCi0gICAgMTE5ODMxLCAwLCAxMTk4MTUsIDU5OTQsIDEyNTM5LCAwLCA3ODM3NSwgMTIwNTk3LCAxMTk4MzMsIDAsIDExOTYwMCwgMCwgCi0gICAgMCwgNzcxOSwgNjAyNiwgMjQ4NiwgMTI4MzEyLCAxMTk4MDgsIDE2MiwgMCwgNjUyMTksIDQxMDczLCA5Njg3LCA0MTY4MSwgCi0gICAgNjMwNCwgMTE5ODEyLCA2NjE5NiwgMTk0ODgxLCA1MjYyLCAwLCA1NTIzMywgMTI2ODEsIDQyMzc5LCAwLCA3NTM0LCAKLSAgICAxMjIxOSwgMCwgMTI3NTI4LCA0MjgxMCwgMTA0OTIsIDAsIDAsIDAsIDQzMTE5LCAwLCAxMjA3NTMsIDEyNDAzLCAyNTAwLCAKLSAgICAxOTUwMTMsIDAsIDQ4OTksIDEyNzI5LCAwLCAwLCA3NDExMywgMjM0MywgNDEwMywgMTk5NDYsIDc0MTEyLCA3Nzg1MSwgCi0gICAgMTMxMTIsIDAsIDE5NTAxMiwgMTI4NTksIDAsIDEyMDE0OCwgNjYzNjksIDU4NjEsIDEyNzc1OCwgMTE5OTksIDEyNDAwLCAwLCAKLSAgICAwLCAxMjY0NSwgNTE0NiwgMTEzMjAsIDY4NDEwLCA2NzQ4LCA2NTA0MCwgMCwgNjQxODQsIDEyOTc0LCA2NDE4MywgNjc2MTMsIAotICAgIDEyMDY0NSwgNTE0NywgMCwgMCwgNzQ1MjQsIDAsIDE5MjgsIDAsIDY3NjQ5LCA1OTkxLCAzNDQ1LCA2NzYwOSwgNDk3NiwgCi0gICAgNjQxNzYsIDAsIDY3NjEwLCA4MjQxLCAwLCA3Nzg2OCwgNDIwNiwgMCwgMCwgMCwgMTI4Mjk4LCAwLCAxMDEzOCwgMCwgMCwgCi0gICAgODg5NywgMCwgMCwgODM1NywgNDEyNCwgNzc4NjIsIDY1ODM2LCAxMjA2NDEsIDEyNzkyNiwgNzc4NTksIDAsIDAsIDExMjMsIAotICAgIDk2MywgNDE1NTMsIDEwMTIwLCAxMjQwNSwgMTIwMTUwLCA5MjY2NCwgMzk4LCAxMzI3OCwgOTcyMywgNjM2NiwgMTIwMzExLCAKLSAgICA3OTQ1LCAwLCA0NDAyLCA5OTcwLCAxMjQwMiwgMCwgNDIzOTIsIDEzMDUsIDEyNDA4LCAwLCA0NDAwNywgMCwgMCwgNDE0NjQsIAotICAgIDEyNDExLCAxMjk2OSwgMTIwODI0LCA0MTQ2NSwgMCwgODUyOCwgMTU3NSwgMCwgNjM5NTUsIDE2NSwgMzAyNCwgNDE0NjcsIAotICAgIDExOTE2MywgMCwgOTA5MywgMCwgOTE0NywgMCwgNjM5NTgsIDAsIDkxNDgsIDk2OTIsIDQwOTYsIDUzLCA3Mzc3NiwgNjc1MCwgCi0gICAgMTk1MDE4LCAwLCA5NTk0LCAwLCAwLCA0MzUyNywgMCwgNzI3LCAxOTQ3MDMsIDAsIDU4MDUsIDAsIDY3MjYsIDAsIDQyMTc2LCAKLSAgICAxMjM3MCwgMTE2NTUsIDExOTA5NSwgMTA1OTEsIDEyMzY0LCAwLCAxMjM3MiwgMTIwNjQyLCAxMjAzMDcsIDAsIDkyMzQzLCAKLSAgICAwLCAxMjM2NiwgMTA5NjMsIDYwNjYsIDEzMjksIDAsIDMwNTIsIDkyMjAsIDAsIDY0NDc4LCAxOTQ3MDEsIDEwODAzLCAKLSAgICA0MTMyLCAxMjAzMDYsIDY4NDc0LCA5MjQ3MywgMCwgMCwgNzQ4MzcsIDEyMDE1NSwgMTQ5OSwgMCwgODA1NSwgNDI3NDAsIAorICAgIDAsIDk4Mzg3NSwgODUzLCA0MjY5MywgMTk1MDE0LCAwLCA5ODM2MzgsIDUwMTYsIDQzNTM1LCA2Mzg5MywgNDI4MzUsIAorICAgIDk0OTEsIDkxNzkxMywgMCwgOTE3OTE0LCAwLCAxMjcxMiwgNzEwNSwgMTI3ODA3LCA2NTA2MCwgMTIwNzk3LCA5OTAwLCAKKyAgICA3NzUwLCAwLCAxOTQ5MTksIDAsIDEyNzgzMCwgMCwgNjQ3NzgsIDEyNTg1LCAxMDU2NSwgMTI4MTUxLCAxMjE3NywgMCwgMCwgCisgICAgMCwgNzc4MjQsIDAsIDQ5MDAsIDEyNzg3NCwgMTI4NzgsIDkyNjMwLCA4OTg0LCA0MTE5LCA3NDc2OCwgODk3MSwgNzg1OTMsIAorICAgIDQzMTEzLCA5NzAyLCA3ODU5NCwgMTEwMjUsIDkyNDUsIDEzMDQ4LCA0OTI3LCA0MTM4LCA3NDE4NSwgOTI0ODEsIDkyNzEwLCAKKyAgICAxMjM5NywgNzc4MjcsIDAsIDEzMDU0LCAxMjM5NCwgMCwgMCwgMCwgMTMwNTMsIDAsIDM5NDgsIDEwNzgxLCAxNTQ2LCAwLCAKKyAgICA1MDEwLCAxNjgwLCAxMDUwNywgNzg1OTAsIDc4NTgzLCAwLCAwLCAwLCAxOTQ5MTUsIDcyNjcsIDAsIDc0ODMzLCAxMjgxODEsIAorICAgIDU5OTMsIDI4MTksIDAsIDEyNzA2LCA3Nzg0MCwgMTg5MywgNzI2NiwgNjM5MTUsIDcyNjQsIDcyNjUsIDAsIDEzNjMsIDAsIAorICAgIDYzOTk3LCA2MzkxMCwgNjM5OTYsIDMwNzcsIDAsIDAsIDE1MTIsIDY5OTI5LCAxMjU4OSwgNDE0NzksIDEyODMxMywgMCwgCisgICAgNDMzMzksIDAsIDk4MzYsIDEyMDcyNywgMCwgNDE0ODEsIDQzMzM1LCA3ODMyLCA0MjM0MywgMzA5MCwgNDMzMzcsIDgxNywgCisgICAgMTY2NCwgMTg1MCwgMTI4ODQxLCAzMDc5LCAxMTM0MCwgNDI0MDgsIDQyNDQ3LCAxMjcxNDAsIDEyMDAyMCwgNDIzMDcsIAorICAgIDEyMzg2LCA0MjMwNCwgOTE3NTU1LCAwLCAxMjM4OSwgMCwgOTIzNjYsIDQxOTk2LCAxMTUyNiwgNjM5ODUsIDU4NjQsIAorICAgIDExNDcsIDYzOTkyLCA0Mjg4NywgMTk4NywgOTI3MTgsIDU0ODAsIDc4NTgsIDExNjUzLCA0MTE2LCAxMjM5MSwgNjYxOTMsIAorICAgIDAsIDQ5MzksIDEyMzg0LCAwLCAwLCA0MTY4NiwgNjM5MDUsIDExOTYwMSwgMTk0Njg4LCA5ODMxOTAsIDAsIDEyNjQ5LCAwLCAKKyAgICAwLCA4MjQ3LCA1MDcsIDkxLCAyMDQyLCAxMjA3NzUsIDQzNjQzLCAxOTQ2ODksIDY2MDI4LCAxMDAzNiwgNDE4NDQsIAorICAgIDExOTgxMywgNzc0LCAxMTk4MjksIDAsIDExOTgxNSwgNTk5NCwgMTI1MzksIDAsIDc4Mzc1LCAxMjA1OTcsIDExOTgzMywgCisgICAgOTgzMTA1LCAxMTk2MDAsIDAsIDAsIDc3MTksIDYwMjYsIDI0ODYsIDEyODMxMiwgMTE5ODA4LCAxNjIsIDAsIDY1MjE5LCAKKyAgICA0MTA3MywgOTY4NywgNDE2ODEsIDYzMDQsIDExOTgxMiwgNjYxOTYsIDE5NDg4MSwgNTI2MiwgMCwgNTUyMzMsIDEyNjgxLCAKKyAgICA0MjM3OSwgMCwgNzUzNCwgMTIyMTksIDAsIDEyNzUyOCwgNDI4MTAsIDEwNDkyLCAwLCA5ODM2NTIsIDAsIDQzMTE5LCAwLCAKKyAgICAxMjA3NTMsIDEyNDAzLCAyNTAwLCAxOTUwMTMsIDAsIDQ4OTksIDEyNzI5LCAwLCAwLCA3NDExMywgMjM0MywgNDEwMywgCisgICAgMTk5NDYsIDc0MTEyLCA3Nzg1MSwgMTMxMTIsIDAsIDE5NTAxMiwgMTI4NTksIDcwMDg3LCAxMjAxNDgsIDY2MzY5LCA1ODYxLCAKKyAgICAxMjc3NTgsIDExOTk5LCAxMjQwMCwgMCwgOTgzODMwLCAxMjY0NSwgNTE0NiwgMTEzMjAsIDY4NDEwLCA2NzQ4LCA2NTA0MCwgCisgICAgMCwgNjQxODQsIDEyOTc0LCA2NDE4MywgNjc2MTMsIDEyMDY0NSwgNTE0NywgMCwgMCwgNzQ1MjQsIDAsIDE5MjgsIDAsIAorICAgIDY3NjQ5LCA1OTkxLCAzNDQ1LCA2NzYwOSwgNDk3NiwgNjQxNzYsIDAsIDY3NjEwLCA4MjQxLCAwLCA3Nzg2OCwgNDIwNiwgMCwgCisgICAgMCwgMCwgMTI4Mjk4LCAwLCAxMDEzOCwgMCwgMCwgODg5NywgMTIwMjM0LCAwLCA4MzU3LCA0MTI0LCA3Nzg2MiwgNjU4MzYsIAorICAgIDEyMDY0MSwgMTI3OTI2LCA3Nzg1OSwgMCwgMCwgMTEyMywgOTYzLCA0MTU1MywgMTAxMjAsIDEyNDA1LCAxMjAxNTAsIAorICAgIDkyNjY0LCAzOTgsIDEzMjc4LCA5NzIzLCA2MzY2LCAxMjAzMTEsIDc5NDUsIDAsIDQ0MDIsIDk5NzAsIDEyNDAyLCAKKyAgICA5ODMxMzYsIDQyMzkyLCAxMzA1LCAxMjQwOCwgMCwgNDQwMDcsIDAsIDAsIDQxNDY0LCAxMjQxMSwgMTI5NjksIDEyMDgyNCwgCisgICAgNDE0NjUsIDk4MzU2NSwgODUyOCwgMTU3NSwgMCwgNjM5NTUsIDE2NSwgMzAyNCwgNDE0NjcsIDExOTE2MywgMCwgOTA5MywgCisgICAgMCwgOTE0NywgMTI4Nzg3LCA2Mzk1OCwgMCwgOTE0OCwgOTY5MiwgNDA5NiwgNTMsIDczNzc2LCA2NzUwLCAxOTUwMTgsIDAsIAorICAgIDk1OTQsIDAsIDAsIDQzNTI3LCAwLCA3MjcsIDE5NDcwMywgMTk1MDIzLCA1ODA1LCAwLCA2NzI2LCAwLCA0MjE3NiwgCisgICAgMTIzNzAsIDExNjU1LCAxMTkwOTUsIDEwNTkxLCAyMjgwLCAwLCAxMjM3MiwgMTIwNjQyLCAxMjAzMDcsIDAsIDkyMzQzLCAwLCAKKyAgICAxMjM2NiwgMTA5NjMsIDYwNjYsIDEzMjksIDAsIDMwNTIsIDkyMjAsIDAsIDY0NDc4LCAxOTQ3MDEsIDEwODAzLCA0MTMyLCAKKyAgICAxMjAzMDYsIDY4NDc0LCA5MjQ3MywgMCwgOTgzMzA1LCA3NDgzNywgMTIwMTU1LCAxNDk5LCAwLCA4MDU1LCA0Mjc0MCwgCiAgICAgNjM5NjUsIDAsIDYzOTYyLCA3NDA0MiwgODkyNCwgNDMxMjMsIDU5ODgsIDM2NjAsIDYzOTY5LCAxMTc4MSwgNDI3MTgsIAogICAgIDg3ODgsIDEzNTcsIDY0ODUxLCA2NTc0MywgMCwgODc3NCwgMCwgMTI3MDg2LCA5OTQxLCAxMjAxNzIsIDAsIDE5MzMsIAogICAgIDY5NjU1LCA5NTY0LCAwLCA5MjQzNSwgNzM4NjYsIDAsIDAsIDI0ODcsIDY3NjE0LCAzMTIxLCAxODA0LCAzMzExLCA2NzYxNSwgCi0gICAgMCwgNzgzMDIsIDEyMjIwLCA2NzYxNiwgMTIwNTk4LCAxMjc0NzUsIDAsIDY4MjAwLCA2Njc1LCAxMjgxNDQsIDAsIDY3NTkyLCAKLSAgICAxMjA2ODUsIDAsIDY0NzcxLCAxMTk4LCA5MTMyLCAwLCA2NDYxOSwgNTEwLCA2NDY2MywgMCwgMCwgNDU2MSwgMjEwMSwgCi0gICAgMTM5OCwgMCwgOTI1NTQsIDc0MDM0LCA0MTU2OSwgOTI2ODQsIDExNDA2LCA4MTY3LCAxMjEyNywgMCwgODQwLCAwLCAwLCAwLCAKLSAgICA2OTY3LCAwLCAwLCA5Nzk2LCAwLCAzMzMsIDAsIDAsIDgxNDQsIDIxMTcsIDAsIDAsIDEyNDA2LCAwLCAxOTkzMSwgCi0gICAgMTE5MDg5LCA2Njc4LCA3NzY5LCAwLCAxMjYyMSwgMCwgMTI3MzY2LCAxMDIyNywgNDc2NCwgNDMxMDEsIDk5ODEsIDAsIAotICAgIDQwOTg2LCA0MTI3LCA2NjQ4NywgMCwgNDIyMDIsIDEyNzU0LCAxOTUwMjIsIDAsIDAsIDAsIDY3NTk0LCAyMDQ4LCAxMjk0NCwgCi0gICAgNDA1MCwgNjc1OTUsIDkxNzk2NywgNDMxMDIsIDEwNTgxLCAxMjk4NSwgNDUzMywgMTk1MDIxLCA3NDAwMywgNjQ5MCwgMCwgCi0gICAgMTIwMzgsIDAsIDAsIDEyMDcwNCwgNjU0NjEsIDk3OTgsIDY5NzA0LCAwLCAxOTQ4LCAxMTkwMDcsIDAsIDk1MiwgMTI4MjM1LCAKLSAgICAwLCAwLCAxMjA4MDIsIDY0NDksIDk0OTQsIDEyMDMxMywgMCwgNDMwOTgsIDQ4NDMsIDgxNDIsIDY0MTYwLCA0MDk4LCAKLSAgICA2NDE3MCwgMCwgMCwgMzQzNiwgMTE5OTczLCAwLCAxMjgxNywgNjc1OTcsIDY2NzYsIDM5MzAsIDY2NzA4LCAwLCAwLCAKLSAgICA2NzU5OCwgMCwgMCwgMCwgNjU1OTEsIDQxNTgxLCA2NTkxNiwgMTQ1MywgMCwgMCwgMCwgODUwMCwgNDIyMjIsIDEyMDE0MiwgCi0gICAgNzM3NDMsIDEyMDQwMCwgNDMxNywgMTE1NDMsIDY3Njc2LCA2NDY3NiwgMCwgMCwgNjc2MDYsIDExOTA4MywgMCwgNDIyMTcsIAotICAgIDEzMTAyLCAwLCA2NjAwMywgNjY3MiwgMCwgMCwgMCwgMCwgNjM4NDEsIDk2MTMsIDkwMDEsIDQ1MjYsIDExMjc0LCA2NzYwMSwgCi0gICAgNjQ1MjAsIDY0MjEwLCA2NjY0LCA3ODcwNCwgNDIwNTYsIDEwMjI4LCA2NDk1NywgMTEyODEsIDAsIDY0MjEzLCAxNDY5LCAKLSAgICA2NjY0MCwgNjUzODEsIDQyMTk3LCA0OTg4LCA0MjM3MiwgMCwgOTU5OCwgOTA0LCAzNTIsIDQyMjI1LCAxNDUxLCA4MDYxLCAKLSAgICA4NDUzLCA0MTM0LCAwLCA3NDg0NywgNjY1NzYsIDEyNzkxNiwgMCwgMTA1MjAsIDg1NzUsIDk5NjAsIDEyMDEsIDEyNzI4OSwgCi0gICAgMTI4NDYsIDEyNzI5MSwgMTI3MjkyLCAxMTkxOSwgNjQ5NjIsIDEyNzI4NywgNDM3MzksIDEyNzI4MSwgODUxMSwgOTQ2MCwgCi0gICAgODIzLCAxMTU4NywgMTIzMDUsIDAsIDY0Njk1LCAxMjczMDUsIDEyMzg3LCAxMjUzLCAxMzE4MywgNjU3NjYsIDUwMCwgCi0gICAgNDI3ODMsIDY1NzY1LCA2NDIwOCwgNjQzNjksIDY1NzYwLCA2NTc2MSwgMTE5NTg1LCAxMTYwNiwgNjQ3ODQsIDExNzAyLCAKLSAgICA2NjQ5OCwgOTgyMSwgNjQzMDQsIDAsIDUxNTIsIDExMDQ4LCA3NTMzLCA2ODM2NiwgNjQ0MTAsIDkyMzA1LCAwLCA0MzIzLCAKLSAgICAxMjAwNjIsIDkyNjY5LCAwLCAxMjcwNTIsIDQyNTg3LCA0MjIxNCwgNDEzOTQsIDAsIDQ3NjMsIDQxMTIsIDExODkzNSwgMCwgCi0gICAgNTI2MCwgNDMxNDMsIDAsIDMyNiwgMTIwMTMxLCA2ODQyMywgMCwgMTA3NzEsIDI4NzYsIDc0MDc0LCA5MjUzMCwgMTk0OTI0LCAKLSAgICA0MTM5OCwgNzM4MiwgOTgwMiwgMTI3MDc3LCAxMjcwNzYsIDQ1MywgNDEzOTYsIDEyMDUyNCwgNDI3MjAsIDEyMTQwLCAKLSAgICA5NTcyLCAwLCA3MDAzLCAxOTQ4ODMsIDQyMzM0LCA3NzA0LCAwLCAxOTQ4ODUsIDQzMTQ0LCA0MTIzLCA4NDk0LCA0MzE0NiwgCi0gICAgOTk3NywgMCwgMCwgNjU3NTksIDEwNzY1LCA2NDA2MSwgNDQ2NSwgOTgwOCwgNjQwNTYsIDY1NTgyLCA0MTI2LCAwLCA5NTIxLCAKLSAgICA5NTg5LCA2NDc1NSwgMCwgNjQwMjAsIDAsIDEwNDY0LCAwLCAwLCAxOTQ4NjksIDY0NTE0LCAxMTUyOCwgNjQwMjQsIAotICAgIDEyODA3MiwgNjc5LCA2NDAxMywgMCwgNTg1MCwgNzU4LCA3NTM2LCAwLCA5MjIzNCwgNDE0NDEsIDEwNjkzLCA2NDAwNiwgMCwgCi0gICAgNjQwMDUsIDQwNTgsIDExOTAxOSwgMCwgNjQ2NjAsIDAsIDExOTA1MCwgMCwgMCwgMTEzOSwgNDMyOTgsIDY0MDI3LCAKLSAgICA2NDAyOSwgODk3MCwgMCwgOTkzNCwgMCwgMTA3NzQsIDEyODAyMCwgNDIyMDEsIDEyNDIxLCAxMjgyMTYsIDAsIDE4NTIsIAotICAgIDMwNTcsIDEyODExMywgNzM3NDQsIDY0MDM0LCA2NDAzOSwgMCwgMCwgMCwgMCwgOTIzMjIsIDc2NDUsIDEyODU0LCA3NDMzOCwgCi0gICAgMzQ5NiwgMCwgMCwgMCwgOTEwMiwgNjI3LCAxMjc3OTUsIDYxNTgsIDgzMjcsIDc0NTUzLCA2NjYzMiwgMTI0MTksIDEzMzA5LCAKLSAgICAxMTU3MCwgMTI3ODExLCAxOTk2MCwgMTE2OTYsIDAsIDEwMTgsIDExODk3MCwgMTk0OTA5LCAxOTQ4OTcsIDE2ODIsIAotICAgIDE5NDg5NiwgMTk0OTExLCA0Mjc1NiwgNjc2NSwgMTk0OTA2LCAwLCAwLCA3MzgxNCwgMTE0MTIsIDY3NjgsIDEwNzI4LCAKLSAgICAxOTQ4MzAsIDExOTAxMCwgMTE4ODYzLCA0MzMxMSwgNjQ5NjYsIDExNTc3LCAwLCA0MzA0MCwgMTgzMywgMTE1NzYsIDAsIAotICAgIDc0Nzc5LCAwLCAxODUsIDY1MDg1LCA3NDUzMywgNjQ3NTQsIDE5NDg0OCwgNzUzNSwgODA4NSwgNDI1MjUsIDEyMDM4NywgCisgICAgNzAwODEsIDc4MzAyLCAxMjIyMCwgNjc2MTYsIDEyMDU5OCwgMTI3NDc1LCAwLCA2ODIwMCwgNjY3NSwgMTI4MTQ0LCAwLCAKKyAgICA2NzU5MiwgMTIwNjg1LCAwLCA2NDc3MSwgMTE5OCwgOTEzMiwgMCwgNjQ2MTksIDUxMCwgNjQ2NjMsIDAsIDAsIDQ1NjEsIAorICAgIDIxMDEsIDEzOTgsIDAsIDkyNTU0LCA3NDAzNCwgNDE1NjksIDkyNjg0LCAxMTQwNiwgODE2NywgMTIxMjcsIDAsIDg0MCwgMCwgCisgICAgMTI2NTE4LCA3MTAxLCA2OTY3LCAwLCAxOTQ4OTgsIDk3OTYsIDAsIDMzMywgNjk4OTEsIDAsIDgxNDQsIDIxMTcsIDAsIAorICAgIDk4MzU5NSwgMTI0MDYsIDAsIDE5OTMxLCAxMTkwODksIDY2NzgsIDc3NjksIDAsIDEyNjIxLCAwLCAxMjczNjYsIDEwMjI3LCAKKyAgICA0NzY0LCA0MzEwMSwgOTk4MSwgMCwgNDA5ODYsIDQxMjcsIDY2NDg3LCAwLCA0MjIwMiwgMTI3NTQsIDE5NTAyMiwgMCwgMCwgCisgICAgOTQwOTcsIDY3NTk0LCAyMDQ4LCAxMjk0NCwgNDA1MCwgNjc1OTUsIDkxNzk2NywgNDMxMDIsIDEwNTgxLCAxMjk4NSwgCisgICAgNDUzMywgMTk1MDIxLCA3NDAwMywgNjQ5MCwgMCwgMTIwMzgsIDAsIDAsIDEyMDcwNCwgNjU0NjEsIDk3OTgsIDY5NzA0LCAwLCAKKyAgICAxOTQ4LCA2OTg0MSwgMCwgOTUyLCAxMjgyMzUsIDAsIDAsIDEyMDgwMiwgNjQ0OSwgOTQ5NCwgMTIwMzEzLCAwLCA0MzA5OCwgCisgICAgNDg0MywgODE0MiwgNjQxNjAsIDQwOTgsIDY0MTcwLCAwLCAwLCAzNDM2LCAxMTk5NzMsIDAsIDEyODE3LCA2NzU5NywgCisgICAgNjY3NiwgMzkzMCwgNDI2MTUsIDAsIDAsIDY3NTk4LCAwLCAwLCAwLCA2NTU5MSwgNDE1ODEsIDY1OTE2LCAxNDUzLCAwLCAwLCAKKyAgICAwLCA4NTAwLCA0MjIyMiwgMTIwMTQyLCA3Mzc0MywgMTIwNDAwLCA0MzE3LCAxMTU0MywgNjc2NzYsIDY0Njc2LCAwLCAwLCAKKyAgICA2NzYwNiwgMTE5MDgzLCAwLCA0MjIxNywgMTMxMDIsIDAsIDY2MDAzLCA2NjcyLCAwLCAwLCAwLCA5ODM3MzgsIDYzODQxLCAKKyAgICA5NjEzLCA5MDAxLCA0NTI2LCAxMTI3NCwgNjc2MDEsIDY0NTIwLCA2NDIxMCwgNjY2NCwgNzg3MDQsIDQyMDU2LCAxMDIyOCwgCisgICAgNjQ5NTcsIDExMjgxLCAwLCAzODA3LCAxNDY5LCA2NjY0MCwgNjUzODEsIDQyMTk3LCA0OTg4LCA0MjM3MiwgMCwgOTU5OCwgCisgICAgOTA0LCAzNTIsIDQyMjI1LCAxNDUxLCA4MDYxLCA4NDUzLCA0MTM0LCAwLCA3NDg0NywgNjY1NzYsIDEyNzkxNiwgMCwgCisgICAgMTA1MjAsIDg1NzUsIDk5NjAsIDEyMDEsIDEyNzI4OSwgMTI4NDYsIDEyNzI5MSwgMTI3MjkyLCAxMTkxOSwgNjQ5NjIsIAorICAgIDEyNzI4NywgNDM3MzksIDEyNzI4MSwgODUxMSwgOTQ2MCwgODIzLCAxMTU4NywgMTIzMDUsIDAsIDY0Njk1LCAxMjczMDUsIAorICAgIDEyMzg3LCAxMjUzLCAxMzE4MywgNjU3NjYsIDUwMCwgNDI3ODMsIDY1NzY1LCA2NDIwOCwgNjQzNjksIDY1NzYwLCA2NTc2MSwgCisgICAgMTE5NTg1LCAxMTYwNiwgNjQ3ODQsIDExNzAyLCA2NjQ5OCwgOTgyMSwgNjQzMDQsIDAsIDUxNTIsIDExMDQ4LCA3NTMzLCAKKyAgICA2ODM2NiwgNjQ0MTAsIDkyMzA1LCAwLCA0MzIzLCAxMjAwNjIsIDkyNjY5LCA3MTMzMiwgMTI3MDUyLCA0MjU4NywgNDIyMTQsIAorICAgIDQxMzk0LCAwLCA0NzYzLCA0MTEyLCAxMTg5MzUsIDAsIDUyNjAsIDQzMTQzLCA5NDAzOCwgMzI2LCAxMjAxMzEsIDY4NDIzLCAKKyAgICAwLCAxMDc3MSwgMjg3NiwgNzQwNzQsIDkyNTMwLCAxOTQ5MjQsIDQxMzk4LCA3MzgyLCA5ODAyLCAxMjcwNzcsIDEyNzA3NiwgCisgICAgNDUzLCA0MTM5NiwgMTIwNTI0LCA0MjcyMCwgMTIxNDAsIDk1NzIsIDAsIDcwMDMsIDE5NDg4MywgNDIzMzQsIDc3MDQsIAorICAgIDEyNjQ5MCwgMTk0ODg1LCA0MzE0NCwgNDEyMywgODQ5NCwgNDMxNDYsIDk5NzcsIDAsIDAsIDY1NzU5LCAxMDc2NSwgCisgICAgNjQwNjEsIDQ0NjUsIDk4MDgsIDY0MDU2LCA2NTU4MiwgNDEyNiwgMCwgOTUyMSwgOTU4OSwgNjQ3NTUsIDAsIDY0MDIwLCAKKyAgICAxMjY2MDQsIDEwNDY0LCAwLCAwLCAxOTQ4NjksIDY0NTE0LCAxMTUyOCwgNjQwMjQsIDEyODA3MiwgNjc5LCA2NDAxMywgMCwgCisgICAgNTg1MCwgNzU4LCA3NTM2LCAwLCA5MjIzNCwgNDE0NDEsIDEwNjkzLCA2NDAwNiwgOTgzNTY3LCA2NDAwNSwgNDA1OCwgCisgICAgMTE5MDE5LCAxMjY0ODcsIDY0NjYwLCAwLCAxMTkwNTAsIDAsIDk4MzA2OSwgMTEzOSwgNDMyOTgsIDY0MDI3LCA2NDAyOSwgCisgICAgODk3MCwgMCwgOTkzNCwgOTgzMDk0LCAxMDc3NCwgMTI4MDIwLCA0MjIwMSwgMTI0MjEsIDEyODIxNiwgMCwgMTg1MiwgCisgICAgMzA1NywgNjQwNDYsIDczNzQ0LCA2NDAzNCwgNjQwMzksIDAsIDAsIDAsIDE5NDg5OSwgOTIzMjIsIDc2NDUsIDEyODU0LCAKKyAgICA3NDMzOCwgMzQ5NiwgMCwgMCwgMCwgOTEwMiwgNjI3LCAxMjc3OTUsIDYxNTgsIDgzMjcsIDc0NTUzLCA2NjYzMiwgMTI0MTksIAorICAgIDEzMzA5LCAxMTU3MCwgMTI3ODExLCAxOTk2MCwgMTE2OTYsIDAsIDEwMTgsIDExODk3MCwgMTk0OTA5LCAxOTQ4OTcsIAorICAgIDE2ODIsIDE5NDg5NiwgMTk0OTExLCA0Mjc1NiwgNjc2NSwgMTk0OTA2LCAwLCAwLCA3MzgxNCwgMTE0MTIsIDY3NjgsIAorICAgIDEwNzI4LCAxOTQ4MzAsIDcxMzE2LCAxMTg4NjMsIDQzMzExLCA2NDk2NiwgMTE1NzcsIDAsIDQzMDQwLCAxODMzLCAxMTU3NiwgCisgICAgMCwgNzQ3NzksIDAsIDE4NSwgNjUwODUsIDc0NTMzLCA2NDc1NCwgMTk0ODQ4LCA3NTM1LCA4MDg1LCA0MjUyNSwgMTIwMzg3LCAKICAgICA5NzQ5LCA0MTcwMSwgNjEzMSwgMTk0OSwgNDExNywgNzg0NywgMTIwNDg5LCAxOTQ3MTEsIDY0NDgzLCA2NTY5MywgMCwgMCwgCi0gICAgMCwgNjk2OTUsIDQyMjQwLCAwLCAwLCA0Mjg2NCwgMCwgNjQ2NjcsIDQxODY4LCAxMTg0LCAwLCA4MTUsIDExNDg0LCAKLSAgICAxMjc1MzUsIDY3ODQwLCAwLCAwLCAxMjg3OTMsIDAsIDEwOTg2LCA2NDY4MywgMCwgMCwgMTk0NzA5LCAwLCAwLCA5ODc5LCAKLSAgICAwLCAwLCA0MTU4LCAxMjgwNTAsIDY4MTY2LCAwLCAwLCAwLCAwLCA2OTY0NSwgMzMyLCAxMTg4MDgsIDAsIDUxNDIsIDI0MDcsIAotICAgIDY5NjQzLCA0MjE5OSwgMCwgOTI0MDQsIDc0MzczLCAwLCA1NTIxNywgMCwgNjM4NzAsIDQzMTYzLCAwLCAwLCA5MjM5MCwgCi0gICAgNDI4NjcsIDE4MzQsIDAsIDkyNDYxLCA2OTgxNywgMTA5NDAsIDY1MjQ5LCAxMTkwNDAsIDg2NjIsIDAsIDAsIDI2NTIsIAotICAgIDEyMDUyNywgNzE2NCwgMTA3ODQsIDE5NTA5MywgNjc2NzQsIDAsIDkyMjMzLCA5MjQ4MiwgMTk0NzQ5LCA3NDU2MiwgCisgICAgMCwgNjk2OTUsIDQyMjQwLCAwLCAxMjY2NTEsIDQyODY0LCAxMjY0OTgsIDY0NjY3LCA0MTg2OCwgMTE4NCwgMCwgODE1LCAKKyAgICAxMTQ4NCwgMTI3NTM1LCA2Nzg0MCwgOTgzNjQyLCAwLCA2NjE5NywgMCwgMTA5ODYsIDY0NjgzLCA5ODM3NzYsIDAsIDM0NTUsIAorICAgIDAsIDAsIDk4NzksIDAsIDAsIDQxNTgsIDEyODA1MCwgNjgxNjYsIDAsIDAsIDAsIDAsIDY5NjQ1LCAzMzIsIDExODgwOCwgMCwgCisgICAgNTE0MiwgMjQwNywgNjk2NDMsIDQyMTk5LCAwLCA5MjQwNCwgNzQzNzMsIDAsIDU1MjE3LCAwLCA2Mzg3MCwgNDMxNjMsIDAsIAorICAgIDAsIDkyMzkwLCA0Mjg2NywgMTgzNCwgMCwgOTI0NjEsIDY5ODE3LCAxMDk0MCwgNjUyNDksIDExOTA0MCwgODY2MiwgMCwgMCwgCisgICAgMjY1MiwgMTIwNTI3LCA3MTY0LCAxMDc4NCwgMTk1MDkzLCA2NzY3NCwgMCwgOTIyMzMsIDkyNDgyLCAxOTQ3NDksIDc0NTYyLCAKICAgICA5MTc1MDUsIDE4MjgsIDc0NDc0LCAxMjAzMjcsIDc4NjIwLCA4NTMxLCAxMjQ5OSwgNjI4MCwgMTIzMjQsIDExODg1NCwgCiAgICAgNjUyMzgsIDY4Mzc0LCA0ODMyLCA2NTU3MywgMCwgNjI3OSwgMTI1MDgsIDEyOTA0LCAxMjUwMiwgOTE2MSwgMCwgMTYyMCwgCi0gICAgNjQ0MzYsIDM2MDEsIDE5NTA5NCwgMTI4MDczLCAwLCA2MDksIDExNTU1LCAwLCAxMjQ5NiwgMTI3ODM5LCA3NDE4MSwgCi0gICAgNDM0MywgMTI1MDUsIDAsIDEyNzg2MywgMCwgMTEzNzcsIDIzOSwgMCwgNjM3LCAwLCAwLCA0MjY3MSwgMCwgMCwgMCwgCi0gICAgNDM1NjUsIDEyNzA4MiwgMCwgMTI2OTYsIDEyODI1NiwgMCwgMTk0Nzk2LCAxMjkyOSwgMCwgNzEyLCAwLCA0MTk3LCAwLCAKLSAgICA0MjgxOCwgMTI4Njg4LCAwLCAxMjA0OTAsIDAsIDExOTEzNywgMTUwNiwgNDM1NjIsIDAsIDAsIDAsIDEyNjUxLCAwLCAKLSAgICA2NDYyOCwgNzQ1MTcsIDEyMDU4LCA3NDA4NCwgOTE3ODM4LCA3NDk0LCAwLCA0OTI0LCA2NTU5MiwgMTE4ODQ0LCAwLCAKLSAgICAxMjcwODgsIDM1NSwgOTcxOSwgMTI3MDg3LCAxMzA2NiwgNjQ3OTYsIDAsIDAsIDEyMDMzLCA0MjE3OCwgMCwgNjk3NjAsIAotICAgIDQyNTcxLCA5MjYzNSwgMCwgMCwgMCwgMCwgMCwgMTI3MTc2LCAzMTc4LCAwLCAwLCA5MjcwNCwgMCwgOTA4MCwgMTI3MDAwLCAKLSAgICAxMjAzNTIsIDAsIDY4MjA5LCAwLCAxMTA4MiwgMCwgNTY5OSwgMTk1MTAwLCA2NjAwMCwgOTQ4OCwgNjUxNjYsIDExOTExMiwgCi0gICAgMCwgMCwgMCwgMCwgMTI4MjA4LCAwLCA1MjY1LCA2OTIzNSwgMCwgMTE0ODcsIDY3ODU4LCAxMjQ2NCwgMCwgNDMwNDUsIDAsIAotICAgIDAsIDQzMzQ1LCAwLCAxMDc3MCwgMTE4OTk0LCA2ODA3LCA0NjUsIDk4MjksIDAsIDc0MzQ4LCAwLCA0MzM0NiwgODExNiwgCi0gICAgNzk1LCAwLCAwLCAxMjQ2MiwgMTA5MzAsIDEwODMxLCAwLCAxMTg5NTIsIDY0MzYyLCA3NDMzNCwgMCwgMTIwODExLCAwLCAKLSAgICAxMjQ2OCwgODYwNywgMTAwOCwgMCwgMTAwOTIsIDE5NTA3OCwgOTE3ODQyLCA2Nzg1NSwgNTUyNTcsIDczNzcxLCAxNzY2LCAKLSAgICAxMTI4MiwgMTE5OTYsIDE4MjAsIDQ1NDcsIDAsIDAsIDAsIDAsIDEzMjIzLCAxMjg2NjUsIDY0NTk1LCAxMjcyOTQsIDAsIAotICAgIDkyMzExLCA0MzQ1LCAxMjYxNiwgMCwgMCwgMCwgNzQ0NjcsIDAsIDAsIDAsIDUzODIsIDAsIDAsIDAsIDExOTA2MCwgCi0gICAgNjQ5NTMsIDU0MDYsIDE5OTIwLCA5MjIxNiwgNjY1MTAsIDM1OTAsIDAsIDExMzAsIDAsIDAsIDQyMDE2LCAxMTgyMywgCi0gICAgNDMwMjMsIDAsIDExODg5NiwgNzc0MiwgMCwgMTMyODAsIDAsIDkzMjYsIDczODI2LCA1MzEwLCA3NDgxMiwgNzg1ODQsIAotICAgIDkyMjI5LCA4OTU5LCA0MzU4OSwgNjc0NywgNjY3MjMsIDAsIDg1NjgsIDAsIDEyMDQ5NiwgNzM4MTYsIDEyMDgwMywgMCwgCi0gICAgNDI2NzAsIDAsIDExNjIxLCAxMjQ2MCwgMCwgMTIwNjMxLCAwLCA0MzA2MywgNzQ1MTksIDEyNzE4MiwgMCwgMCwgMCwgCi0gICAgNjk3ODMsIDExNjg5LCA1NDEwLCA1NzgzLCAxMDQ2OCwgODQwMywgNTQwMCwgMTE1OTQsIDEyODI0NywgMCwgMTE4OTkwLCAKLSAgICAxMDQ5MSwgMCwgNjQ0MTIsIDAsIDAsIDU1ODcsIDQyODY1LCA2NDQwNCwgODI2OCwgNDkyMywgNjUwODYsIDg5ODEsIAotICAgIDEyMzgyLCA0MjEzMywgMTIwNzU1LCA5NzA2LCA2OTczOCwgMCwgNjY2MTAsIDEwNDYxLCAxMjEwMywgMCwgODY0MiwgMCwgCi0gICAgNDI3NjYsIDAsIDY2NTY2LCA5OTgzLCAwLCAxMTkxMDUsIDAsIDAsIDAsIDczOTgsIDQxNTE1LCAwLCAxMTgwMiwgODA0MSwgCi0gICAgMTQ2MSwgOTEwLCAxMTkxMzMsIDAsIDY3NDksIDM2NTgsIDAsIDEyMDUyNSwgMCwgNzYxNywgMTk0ODQxLCAxMjg4OCwgMCwgCi0gICAgNjc2NjgsIDEzMTQzLCAwLCA5MTkzLCAxMTA5NywgNTcwMywgMCwgNDE1MTcsIDQxNTA0LCA0MTUxOSwgMTAwMTYsIDY0MzA1LCAKLSAgICAwLCA2NTg2NCwgNjIzLCA3ODEsIDY3MCwgMTA2NjAsIDU3NjksIDYxMywgNzU0MywgMTIwMjc5LCA0NzcsIDQxMDgzLCAKLSAgICA5MjUyMSwgMCwgNTkyLCAxNTc4LCAxMjQ1OSwgNDM0NDksIDAsIDAsIDgyMjUsIDAsIDY1NCwgMTEzNDUsIDY1MywgNjUyLCAKLSAgICAwLCA2NDcsIDAsIDYzMywgMTIwNzQ0LCAwLCAwLCAxMjQ4MCwgNDMyNDMsIDAsIDM5LCAxMjQ4NywgMCwgMTIwNTI5LCAKLSAgICA3NDE5OSwgMTI0ODIsIDAsIDEyNDg5LCAwLCAzMTk1LCA1NTUwLCAwLCA3ODk3LCAwLCAxMjAzLCA3NDM5NiwgMTgxMywgCi0gICAgNjQ1NDQsIDQxMzExLCAxMjA5MCwgMCwgMjg3NywgMCwgMCwgMTY3NSwgMCwgMCwgMCwgMCwgMTAwNzAsIDEwNTk1LCAwLCAKLSAgICAxMTkwNzcsIDAsIDAsIDAsIDAsIDAsIDQzMjQ0LCAwLCAwLCAwLCAxMTk1NjEsIDAsIDAsIDE5NDkyMSwgMTI4MTYwLCAKLSAgICA5OTM5LCAwLCAwLCA3Nzg2MCwgMCwgMCwgMjcwLCAwLCAxMDcxNCwgMCwgMCwgMCwgMCwgMCwgNjUzNzIsIDAsIDc0MDM4LCAKLSAgICAxMTk1NTgsIDYyNzMsIDY2Njc5LCAzNjQsIDk1OTUsIDE5NDkwOCwgMCwgMCwgNzA3LCAwLCAwLCA5MjgyLCA2NjQ4OSwgCi0gICAgMjI0LCAwLCA2ODY3MCwgOTMzMiwgNDk2NiwgNjg2NzcsIDAsIDY4NjQ0LCAwLCAzODQxLCA2ODYzNCwgMCwgMTA3MzIsIAotICAgIDY4NjQwLCA4NTAsIDQ5NzIsIDAsIDY0Njk5LCAyOTA5LCA2ODYxOSwgNDQwMDgsIDY4NjI3LCAwLCAxMTU0NCwgMTAyMDMsIAotICAgIDk2MDgsIDAsIDAsIDExOTYyLCAxOTQ2OTQsIDEyNTA3LCAxMTk2LCAxMjg2ODcsIDEyODMxMSwgNzc3LCAxMjAxODcsIAotICAgIDQzNzUsIDY1MjcxLCA2NzY3OCwgMCwgMTIxOTgsIDAsIDY0ODI0LCAxMTkzNDMsIDAsIDk0NTQsIDYzNzc4LCA4NjU4LCAKLSAgICA0MjUyOCwgNzgwMDAsIDI3MDUsIDkxNzk3NSwgNDE1MjAsIDAsIDAsIDExOTg2LCA3NzY1LCA0MjUwMiwgODI4MCwgMCwgCi0gICAgMjcwMSwgMCwgMCwgNTc2NywgMCwgMCwgOTgwOSwgODM1MywgNjM3NDcsIDY2NzAxLCA2Mzc3MiwgMCwgNjM3NDUsIDE3NDgsIAotICAgIDYzNzcwLCAwLCAwLCAwLCA2NTU0MiwgNjM3NjYsIDU1MjQ0LCAzMDYxLCAwLCA2Mzc2NCwgNjM3ODcsIDkwNjcsIDYwOTYsIAotICAgIDAsIDc2OTQsIDAsIDcyNTcsIDYzNzY4LCAzNDg1LCAxMjk4NywgMCwgMTI3NTIyLCAxMjA2MjgsIDYzODA3LCAxNTkxLCAwLCAKLSAgICA2Mzg2LCA2Mzc4MywgMCwgMCwgMTI3MTczLCAwLCAwLCAwLCA3NDU3NSwgMCwgNjU3MTksIDEzMDgzLCA2NDU3NCwgNjUwMTIsIAotICAgIDAsIDE2NDAsIDEyNDk1LCA2NjY5MSwgNzYyNCwgMzEzOCwgMTA5OTYsIDkyMjQ3LCAxOTIyLCAwLCAxMjQ5OCwgMTA5ODcsIAotICAgIDAsIDAsIDM4OTQsIDY1NTQzLCAwLCAxOTQ4NDIsIDAsIDQ5MywgMCwgNDMxOTcsIDE3MTcsIDQyMjgsIDQ3OSwgMTAzMDMsIAotICAgIDc0MDIwLCAwLCA5MTc5MzUsIDEwMzM1LCAzNTIwLCA5MTc5MzIsIDEyNDkwLCA2NDMxNSwgMCwgMTI3MDM5LCAxMjQ5MywgCi0gICAgNjIzMywgNDI2ODEsIDEwMDIsIDEyNDkxLCAwLCA2NDkxMSwgOTI2MTUsIDIwOTYsIDY1MTIwLCAwLCAwLCAwLCAxMTYxMSwgCi0gICAgMTE2MzIsIDEyNzA0MSwgNjYyMTMsIDYzODY0LCA2NjIyMSwgNjYyMjYsIDY2MjI5LCAxMzIxOCwgNjYyMzEsIDY2MjE2LCAKLSAgICA4NTA3LCA2NjIzNiwgNjYyMTEsIDY2MjE4LCA5MjY3MiwgNjYyNDAsIDc4MDQxLCA2NjIzMywgODkyOCwgMCwgNzkwOSwgCi0gICAgNjYyMzQsIDExNjA1LCA2Mzc1OSwgMCwgNjYyMDgsIDczOTk5LCA2Mzc5OSwgNjM4MDMsIDI0NCwgMTE1NDIsIDEyODk4LCAKLSAgICAxMjQ5NCwgNzM3NjEsIDEyNDkyLCAxMjY2OSwgMCwgMCwgNzQxNTMsIDAsIDEyODI3OCwgMTIwNjgwLCA0ODgyLCAxMzA0MCwgCi0gICAgMCwgODYxMiwgNDg4NSwgNzQwNTMsIDAsIDEzMDQyLCA0ODgwLCA2NDY2MiwgMjQyOSwgMTM2MCwgMjQ4LCAwLCA2Mzc5NywgCi0gICAgOTIzOTQsIDQyMzU4LCAwLCA3MjkyLCAwLCA2Mzc1NiwgNDI3ODYsIDY2NjkzLCAwLCAxODcwLCA3ODA0MCwgNDcwLCAKLSAgICA3ODAzOCwgNzgwMzUsIDc4MDM2LCAwLCA3ODAzNCwgNDU3OSwgMTI4MDkwLCAwLCAxMjUxMSwgNzQ0NTMsIDEyNTE0LCAwLCAKLSAgICA3NDU3OSwgNzIzOSwgNzAwMSwgODYyMywgMCwgMTI4MDUyLCAxMjgwNDgsIDczNzgsIDEyNTEyLCAxMTYxNSwgNjEwNCwgMCwgCi0gICAgMCwgNjU5LCA2MDk4LCAwLCAxMjIzNCwgMTI3MzA3LCAxMjcwNjcsIDgzMTEsIDEyNTEwLCA0MTgwMywgMTMwMzksIAotICAgIDEyNzA3MiwgMTI1MTMsIDEwMjAyLCAxMjQ3MSwgMCwgODc0NywgMCwgMCwgMCwgMjMyMywgMCwgMjMxOSwgNzc5MTcsIAotICAgIDEyNDc3LCA3NzkxNiwgMjMxMSwgMCwgNDQxNSwgMjM3LCA2MjgxLCAxMjcyODAsIDAsIDAsIDIzMDksIDEzMTIsIDgxNzMsIAotICAgIDEyODg3MSwgMTI0NjksIDAsIDc4NTA1LCA2NDMzNSwgMTA2MDksIDAsIDEyODExMSwgOTM5NywgMTE1MjQsIDkzOTUsIAotICAgIDkzOTYsIDkzOTMsIDkzOTQsIDkzOTEsIDkzOTIsIDkzODksIDYyMDksIDkzODcsIDkzODgsIDQ5MzIsIDkzODYsIDkzODMsIAotICAgIDkzODQsIDY3NDAsIDAsIDY1NDUxLCA4MTg1LCAwLCA5MTc4MzIsIDQzMDI0LCA0MzMzNiwgNjc2NTksIDIzMTMsIDEyODE2NywgCi0gICAgNzk0OCwgOTIzNiwgMCwgMCwgMCwgMTA1NzAsIDQzNDczLCA2Mjg5LCAxMDQ4NCwgMCwgMCwgMTE5OTgsIDEyMDgyLCAKLSAgICAxMDkyNCwgMzE0NywgMCwgMTIwNjg0LCAxMjUyNCwgMTE5MDgxLCAyMzEwLCAxMTgxOCwgOTM4MSwgOTM4MiwgOTM3OSwgCi0gICAgOTM4MCwgOTM3NywgOTM3OCwgOTM3NSwgOTM3NiwgMTY4MywgOTM3NCwgMCwgOTM3MiwgMTI0NDQsIDAsIDAsIDEzMDE2LCAKLSAgICA4MjEwLCAwLCA0MjAyOSwgMTEwNzksIDEyMzMxLCA0MzQ1MSwgNDIwMzIsIDg3NDQsIDcyNiwgMCwgMCwgNDE1NSwgMCwgMCwgCi0gICAgNDIwMzAsIDUwMDcsIDEyNTIyLCA0MzA4OCwgMCwgNDk1MSwgMTI3ODA1LCAxMjcyNDAsIDAsIDk5MjIsIDQzMzA5LCAwLCAKLSAgICAxMjUyNSwgMCwgMTIwMTYsIDY1NzcwLCA5NTQ4LCA2NzY2NSwgNDAzLCA3ODIzMCwgMTI1MDMsIDAsIDAsIDExMDMwLCAwLCAKLSAgICA5MjU2NywgNjU2OTEsIDYzOTk4LCAxODE5LCAxMDQ5NiwgMCwgMCwgMTE5OTIwLCAwLCAxOTQ2NjgsIDAsIDEyNTA2LCAwLCAKLSAgICAxMjIzMSwgMCwgMTI1MDAsIDQ0MDIzLCAxMjUwOSwgNjQzOTMsIDc4ODMwLCAzMzg5LCAxMDU4OSwgNjYwOCwgNDEwNDcsIAotICAgIDEyMDMyMSwgNzgzOTUsIDc4Mzk0LCA3NDA2OSwgNzc5OTUsIDc4MzkxLCAzNjA4LCA4MjgxLCAxMjAzMjAsIDExMDcsIDAsIAotICAgIDkwNzYsIDg4NjIsIDY5NzQzLCA0MTA1MiwgMTMwODQsIDY0NzY2LCA0MzIxNywgNzgwMywgMTMyMjIsIDc0MTY1LCA3NDc4MiwgCi0gICAgMTI4ODE3LCA4NTQ2LCAxMTU1MywgNjM5OTUsIDEzMTc3LCA5MDQzLCA2MzAzLCAwLCA0OTgsIDY0NDcxLCAxMjAzMjQsIAorICAgIDY0NDM2LCAzNjAxLCAxOTUwOTQsIDEyODA3MywgOTgzNTYyLCA2MDksIDExNTU1LCA5ODMwOTksIDEyNDk2LCAxMjc4MzksIAorICAgIDc0MTgxLCA0MzQzLCAxMjUwNSwgMCwgMTI3ODYzLCAwLCAxMTM3NywgMjM5LCAwLCA2MzcsIDAsIDAsIDQyNjcxLCAwLCAwLCAKKyAgICAwLCA0MzU2NSwgNzEzMDYsIDEyNjQ5MywgMTI2OTYsIDEyODI1NiwgMCwgOTQwNjIsIDEyOTI5LCAwLCA3MTIsIDAsIDQxOTcsIAorICAgIDk4MzIwNCwgNDI4MTgsIDEyNjYzMiwgMCwgMTIwNDkwLCAwLCAxMTkxMzcsIDE1MDYsIDQzNTYyLCAwLCA5MjQ5MSwgMCwgCisgICAgMTI2NTEsIDAsIDY0NjI4LCA3NDUxNywgMTIwNTgsIDc0MDg0LCA5MTc4MzgsIDc0OTQsIDAsIDQ5MjQsIDY1NTkyLCAKKyAgICAxMTg4NDQsIDAsIDEyNzA4OCwgMzU1LCA5NzE5LCAxMjcwODcsIDEzMDY2LCA2NDc5NiwgMCwgMCwgMTIwMzMsIDQyMTc4LCAKKyAgICAwLCA2OTc2MCwgNDI1NzEsIDkyNjM1LCAwLCAwLCAwLCAwLCAwLCAxMjcxNzYsIDMxNzgsIDAsIDAsIDkyNzA0LCAwLCAKKyAgICA5MDgwLCAxMjcwMDAsIDEyMDM1MiwgMCwgNjgyMDksIDAsIDExMDgyLCAwLCA1Njk5LCAxOTUxMDAsIDY2MDAwLCA5NDg4LCAKKyAgICA2NTE2NiwgMTE5MTEyLCAwLCAwLCAwLCAwLCA3MTMxMywgMCwgNTI2NSwgNjkyMzUsIDAsIDExNDg3LCA2Nzg1OCwgMTI0NjQsIAorICAgIDAsIDQzMDQ1LCAwLCAwLCA0MzM0NSwgMCwgMTA3NzAsIDExODk5NCwgNjgwNywgNDY1LCA5ODI5LCAwLCA3NDM0OCwgMCwgCisgICAgNDMzNDYsIDgxMTYsIDc5NSwgMCwgMCwgMTI0NjIsIDEwOTMwLCAxMDgzMSwgMCwgMTE4OTUyLCA2NDM2MiwgNzQzMzQsIAorICAgIDk4MzYwMiwgMTIwODExLCAwLCAxMjQ2OCwgODYwNywgMTAwOCwgMCwgMTAwOTIsIDE5NTA3OCwgOTE3ODQyLCA2Nzg1NSwgCisgICAgNTUyNTcsIDczNzcxLCAxNzY2LCAxMTI4MiwgMTE5OTYsIDE4MjAsIDQ1NDcsIDAsIDAsIDAsIDAsIDEzMjIzLCAxMjg2NjUsIAorICAgIDY0NTk1LCAxMjcyOTQsIDAsIDkyMzExLCA0MzQ1LCAxMjYxNiwgMCwgMCwgMCwgNzQ0NjcsIDAsIDAsIDAsIDUzODIsIDAsIAorICAgIDAsIDAsIDExOTA2MCwgNjQ5NTMsIDU0MDYsIDE5OTIwLCA2OTg5NywgNjY1MTAsIDM1OTAsIDE5NDg2NCwgMTEzMCwgMCwgMCwgCisgICAgNDIwMTYsIDExODIzLCA0MzAyMywgMCwgMTE4ODk2LCA3NzQyLCAwLCAxMzI4MCwgNzEzMjMsIDkzMjYsIDczODI2LCA1MzEwLCAKKyAgICA3NDgxMiwgNzg1ODQsIDkyMjI5LCA4OTU5LCA0MzU4OSwgNjc0NywgNjY3MjMsIDAsIDg1NjgsIDAsIDEyMDQ5NiwgNzM4MTYsIAorICAgIDEyMDgwMywgOTgzODM5LCA0MjY3MCwgMCwgMTE2MjEsIDEyNDYwLCAwLCAxMjA2MzEsIDAsIDQzMDYzLCA3NDUxOSwgCisgICAgMTI3MTgyLCAwLCA3MzkxNywgNzg0MywgNjk3ODMsIDExNjg5LCA1NDEwLCA1NzgzLCAxMDQ2OCwgODQwMywgNTQwMCwgCisgICAgMTE1OTQsIDEyODI0NywgMCwgMTE4OTkwLCAxMDQ5MSwgNjk4NDIsIDY0NDEyLCAwLCAwLCA1NTg3LCA0Mjg2NSwgNjQ0MDQsIAorICAgIDgyNjgsIDQ5MjMsIDY1MDg2LCA4OTgxLCAxMjM4MiwgNDIxMzMsIDEyMDc1NSwgOTcwNiwgNjk3MzgsIDAsIDY2NjEwLCAKKyAgICAxMDQ2MSwgMTIxMDMsIDAsIDg2NDIsIDAsIDQyNzY2LCA5ODM4NTcsIDIyMTAsIDk5ODMsIDAsIDk0MDA5LCAwLCAwLCAwLCAKKyAgICA3Mzk4LCA0MTUxNSwgMCwgMTE4MDIsIDgwNDEsIDE0NjEsIDkxMCwgMTE5MTMzLCAwLCA2NzQ5LCAzNjU4LCA5Mzk2NCwgCisgICAgMTIwNTI1LCAwLCA3NjE3LCAxOTQ4NDEsIDEyODg4LCAxMjc5ODMsIDY3NjY4LCAxMzE0MywgMCwgOTE5MywgMTEwOTcsIAorICAgIDU3MDMsIDAsIDQxNTE3LCA0MTUwNCwgNDE1MTksIDEwMDE2LCA2NDMwNSwgMCwgNjU4NjQsIDYyMywgNzgxLCA2NzAsIAorICAgIDEwNjYwLCA1NzY5LCA2MTMsIDc1NDMsIDEyMDI3OSwgNDc3LCA0MTA4MywgOTI1MjEsIDAsIDU5MiwgMTU3OCwgMTI0NTksIAorICAgIDQzNDQ5LCAwLCAwLCA4MjI1LCAwLCA2NTQsIDExMzQ1LCA2NTMsIDY1MiwgMCwgNjQ3LCAwLCA2MzMsIDEyMDc0NCwgMCwgCisgICAgMTI2NDcyLCAxMjQ4MCwgNDMyNDMsIDAsIDM5LCAxMjQ4NywgMCwgMTIwNTI5LCA3NDE5OSwgMTI0ODIsIDAsIDEyNDg5LCAwLCAKKyAgICAzMTk1LCA1NTUwLCA5ODM1NTQsIDc4OTcsIDAsIDEyMDMsIDc0Mzk2LCAxODEzLCA2NDU0NCwgNDEzMTEsIDEyMDkwLCAwLCAKKyAgICAyODc3LCAwLCAwLCAxNjc1LCA2OTg0MCwgMCwgMCwgMCwgMTAwNzAsIDEwNTk1LCAwLCAxMTkwNzcsIDE5NDc3NywgCisgICAgOTgzNjExLCAwLCAwLCAwLCA0MzI0NCwgMCwgMCwgOTgzOTA3LCAxMTk1NjEsIDk4MzA3OCwgMCwgMTk0OTIxLCAxMjgxNjAsIAorICAgIDk5MzksIDAsIDk4MzE1MSwgNzc4NjAsIDAsIDAsIDI3MCwgMCwgMTA3MTQsIDAsIDAsIDAsIDAsIDAsIDY1MzcyLCAwLCAKKyAgICA3NDAzOCwgMTE5NTU4LCA2MjczLCA2NjY3OSwgMzY0LCA5NTk1LCAxOTQ5MDgsIDAsIDAsIDcwNywgMCwgMCwgOTI4MiwgCisgICAgNjY0ODksIDIyNCwgMCwgNjg2NzAsIDkzMzIsIDQ5NjYsIDY4Njc3LCAwLCA2ODY0NCwgMCwgMzg0MSwgNjg2MzQsIDAsIAorICAgIDEwNzMyLCA2ODY0MCwgODUwLCA0OTcyLCAwLCAxMjg5MCwgMjkwOSwgNjg2MTksIDQ0MDA4LCA2ODYyNywgOTgzNzA5LCAKKyAgICAxMTU0NCwgMTAyMDMsIDk2MDgsIDAsIDAsIDExOTYyLCAxOTQ2OTQsIDEyNTA3LCAxMTk2LCAxMjg2ODcsIDEyODMxMSwgCisgICAgNzc3LCAxMjAxODcsIDQzNzUsIDY1MjcxLCA2NzY3OCwgMCwgMTIxOTgsIDAsIDY0ODI0LCAxMTkzNDMsIDk4MzIzMCwgCisgICAgOTQ1NCwgNjM3NzgsIDg2NTgsIDQyNTI4LCA3ODAwMCwgMjcwNSwgOTE3OTc1LCA0MTUyMCwgMCwgMCwgMTE5ODYsIDc3NjUsIAorICAgIDQyNTAyLCA4MjgwLCA3NDUyMCwgMjcwMSwgMCwgMTI3MDAyLCA1NzY3LCAwLCAwLCA5ODA5LCA4MzUzLCA2Mzc0NywgCisgICAgNjY3MDEsIDYzNzcyLCA5ODM4MDUsIDYzNzQ1LCAxNzQ4LCA2Mzc3MCwgMCwgMCwgMCwgNjU1NDIsIDYzNzY2LCA1NTI0NCwgCisgICAgMzA2MSwgMCwgNjM3NjQsIDYzNzg3LCA5MDY3LCA2MDk2LCAwLCA3Njk0LCAwLCA3MjU3LCA2Mzc2OCwgMzQ4NSwgMTI5ODcsIAorICAgIDAsIDEyNzUyMiwgMTIwNjI4LCA2MzgwNywgMTU5MSwgMCwgNjM4NiwgNjM3ODMsIDAsIDAsIDkyNTM1LCAwLCAwLCAwLCAKKyAgICA3NDU3NSwgMCwgNjU3MTksIDEzMDgzLCA2NDU3NCwgNjUwMTIsIDAsIDE2NDAsIDEyNDk1LCA2NjY5MSwgNzYyNCwgMzEzOCwgCisgICAgMTA5OTYsIDkyMjQ3LCAxOTIyLCAwLCAxMjQ5OCwgMTA5ODcsIDY5OTM2LCA2OTkzOSwgMzg5NCwgNjU1NDMsIDAsIAorICAgIDE5NDg0MiwgOTgzNTg4LCA0OTMsIDAsIDQzMTk3LCAxNzE3LCA0MjI4LCA0NzksIDEwMzAzLCA3NDAyMCwgMCwgOTE3OTM1LCAKKyAgICAxMDMzNSwgMzUyMCwgOTE3OTMyLCAxMjQ5MCwgNjQzMTUsIDAsIDEyNzAzOSwgMTI0OTMsIDYyMzMsIDQyNjgxLCAxMDAyLCAKKyAgICAxMjQ5MSwgMCwgNjQ5MTEsIDkyNjE1LCAyMDk2LCA2NTEyMCwgMCwgNzgyMTksIDk4MzA4MSwgMTE2MTEsIDExNjMyLCAKKyAgICAxMjcwNDEsIDY2MjEzLCA2Mzg2NCwgNjYyMjEsIDY2MjI2LCA2NjIyOSwgMTMyMTgsIDY2MjMxLCA2NjIxNiwgODUwNywgCisgICAgNjYyMzYsIDY2MjExLCA2NjIxOCwgOTI2NzIsIDY2MjQwLCA3ODA0MSwgNjYyMzMsIDg5MjgsIDk4MzU1MiwgNzkwOSwgCisgICAgNjYyMzQsIDExNjA1LCA2Mzc1OSwgOTgzNjQ1LCA2NjIwOCwgNzM5OTksIDYzNzk5LCA2MzgwMywgMjQ0LCAxMTU0MiwgCisgICAgMTI4OTgsIDEyNDk0LCA3Mzc2MSwgMTI0OTIsIDEyNjY5LCAwLCAwLCA3NDE1MywgMCwgMTI4Mjc4LCAxMjA2ODAsIDQ4ODIsIAorICAgIDEzMDQwLCAwLCA4NjEyLCA0ODg1LCA3NDA1MywgMCwgMTMwNDIsIDQ4ODAsIDY0NjYyLCAyNDI5LCAxMzYwLCAyNDgsIDAsIAorICAgIDYzNzk3LCA5MjM5NCwgNDIzNTgsIDAsIDcyOTIsIDAsIDYzNzU2LCA0Mjc4NiwgNjY2OTMsIDAsIDE4NzAsIDc4MDQwLCAKKyAgICA0NzAsIDc4MDM4LCA3ODAzNSwgNzgwMzYsIDcwMDI4LCA3ODAzNCwgNDU3OSwgMTI4MDkwLCAwLCAxMjUxMSwgNzQ0NTMsIAorICAgIDEyNTE0LCAwLCA3NDU3OSwgNzIzOSwgNzAwMSwgODYyMywgOTQwMTEsIDEyODA1MiwgMTI4MDQ4LCA3Mzc4LCAxMjUxMiwgCisgICAgMTE2MTUsIDYxMDQsIDAsIDAsIDY1OSwgNjA5OCwgMCwgMTIyMzQsIDEyNzMwNywgMTI3MDY3LCA4MzExLCAxMjUxMCwgCisgICAgNDE4MDMsIDEzMDM5LCAxMjcwNzIsIDEyNTEzLCAxMDIwMiwgMTI0NzEsIDAsIDg3NDcsIDk4MzkxMSwgMCwgMCwgMjMyMywgCisgICAgMCwgMjMxOSwgNzc5MTcsIDEyNDc3LCA3NzkxNiwgMjMxMSwgMCwgNDQxNSwgMjM3LCA2MjgxLCAxMjcyODAsIDAsIDAsIAorICAgIDIzMDksIDEzMTIsIDgxNzMsIDEyODg3MSwgMTI0NjksIDAsIDc4NTA1LCA2NDMzNSwgMTA2MDksIDAsIDEyODExMSwgOTM5NywgCisgICAgMTE1MjQsIDkzOTUsIDkzOTYsIDkzOTMsIDkzOTQsIDkzOTEsIDkzOTIsIDkzODksIDYyMDksIDkzODcsIDkzODgsIDQ5MzIsIAorICAgIDkzODYsIDkzODMsIDkzODQsIDY3NDAsIDAsIDY1NDUxLCA4MTg1LCAwLCA5MTc4MzIsIDQzMDI0LCA0MzMzNiwgNjc2NTksIAorICAgIDIzMTMsIDEyODE2NywgNzk0OCwgOTIzNiwgOTI1NzEsIDAsIDAsIDEwNTcwLCA0MzQ3MywgNjI4OSwgMTA0ODQsIDAsIDAsIAorICAgIDExOTk4LCAxMjA4MiwgMTA5MjQsIDMxNDcsIDAsIDEyMDY4NCwgMTI1MjQsIDExOTA4MSwgMjMxMCwgMTE4MTgsIDkzODEsIAorICAgIDkzODIsIDkzNzksIDkzODAsIDkzNzcsIDkzNzgsIDkzNzUsIDkzNzYsIDE2ODMsIDkzNzQsIDk4Mzc2OSwgOTM3MiwgCisgICAgMTI0NDQsIDAsIDAsIDEzMDE2LCA4MjEwLCA5ODM5NDksIDQyMDI5LCAxMTA3OSwgMTIzMzEsIDQzNDUxLCA0MjAzMiwgCisgICAgODc0NCwgNzI2LCAwLCA5ODM4MjgsIDQxNTUsIDAsIDAsIDQyMDMwLCA1MDA3LCAxMjUyMiwgNDMwODgsIDAsIDQ5NTEsIAorICAgIDEyNzgwNSwgMTI3MjQwLCAwLCA5OTIyLCA0MzMwOSwgOTgzODMyLCAxMjUyNSwgOTgzNDYzLCAxMjAxNiwgNjU3NzAsIAorICAgIDk1NDgsIDY3NjY1LCA0MDMsIDc4MjMwLCAxMjUwMywgMCwgMCwgMTEwMzAsIDAsIDkyNTY3LCA2NTY5MSwgNjM5OTgsIAorICAgIDE4MTksIDEwNDk2LCAwLCAwLCAxMTk5MjAsIDAsIDE5NDY2OCwgMCwgMTI1MDYsIDAsIDEyMjMxLCAwLCAxMjUwMCwgCisgICAgNDQwMjMsIDEyNTA5LCA2NDM5MywgNzg4MzAsIDMzODksIDEwNTg5LCA2NjA4LCA0MTA0NywgMTIwMzIxLCA3ODM5NSwgCisgICAgNzgzOTQsIDc0MDY5LCA3Nzk5NSwgNzgzOTEsIDM2MDgsIDgyODEsIDEyMDMyMCwgMTEwNywgMCwgOTA3NiwgODg2MiwgCisgICAgNjk3NDMsIDQxMDUyLCAxMzA4NCwgNjQ3NjYsIDQzMjE3LCA3ODAzLCAxMzIyMiwgNzQxNjUsIDc0NzgyLCAxMjY1MTQsIAorICAgIDg1NDYsIDExNTUzLCA2Mzk5NSwgMTMxNzcsIDkwNDMsIDYzMDMsIDk4MzkzOCwgNDk4LCA2NDQ3MSwgMTIwMzI0LCAKICAgICAxMjg1NjcsIDEyNTI5LCA4MDQyLCAwLCAyMzQ0LCAxMjUyOCwgODAzMSwgMjQxNCwgMCwgNjk3MTksIDMyMzEsIDAsIDY0MjIsIAogICAgIDY2NTEyLCA2OTY1MywgMTI1MzAsIDI1MzcsIDc4NDA1LCA0MTQyOSwgMTI2NTgsIDEzMDM2LCA2NTc3MiwgMCwgNzg3MzgsIAogICAgIDQxNDMzLCA0NzE5LCA0NjksIDAsIDQzNjMsIDMzMTMsIDQxNDI4LCA3ODQwNywgMjAyMywgMTc3MiwgNzgyMjQsIDc4MjI1LCAKICAgICA2NTcwNiwgMTAwNTEsIDY0ODEyLCA3ODIyMCwgMCwgOTkyMCwgMTIyMTUsIDAsIDQ5MzEsIDE5NTEsIDEyNDk3LCAxMTkzNjMsIAogICAgIDk2MDcsIDAsIDk2NjMsIDAsIDExOTYzNCwgNjUwMywgNDExMTAsIDAsIDE0OTEsIDAsIDAsIDEyNzMwNCwgNDEwNjEsIDAsIAotICAgIDAsIDEyNzE4NywgNjUwMjYsIDQxOTkzLCA0MTUwOSwgMTEwNDUsIDY1MDI4LCA3ODYwMiwgNjY0NzYsIDQxMTA4LCA5NzM4LCAKLSAgICA0MTk5NSwgMTA3NSwgMTk1OCwgMTI1MzUsIDQxOTkyLCA0MTUwNiwgMCwgNDE2ODcsIDAsIDEyMDcxNywgMTI3Nzc2LCAKLSAgICA5OTQwLCAxMjcyOTksIDc2OTIsIDAsIDgwMDgsIDQxMTMxLCAzMzAsIDg1NjYsIDY1MDgzLCA0MTEzMywgOTgxNiwgCi0gICAgMTI4MDc0LCAxMjUzMiwgNzg1NTAsIDc4NTQ2LCAzNTA4LCAxMjcwNTgsIDQzMjM1LCAwLCAxMjcyOTgsIDY0MTM5LCAKKyAgICAxOTQ4MzgsIDEyNzE4NywgNjUwMjYsIDQxOTkzLCA0MTUwOSwgMTEwNDUsIDY1MDI4LCA3ODYwMiwgNjY0NzYsIDQxMTA4LCAKKyAgICA5NzM4LCA0MTk5NSwgMTA3NSwgMTk1OCwgMTI1MzUsIDQxOTkyLCA0MTUwNiwgMCwgNDE2ODcsIDAsIDEyMDcxNywgCisgICAgMTI3Nzc2LCA5OTQwLCAxMjcyOTksIDc2OTIsIDk4MzgyNCwgODAwOCwgNDExMzEsIDMzMCwgODU2NiwgNjUwODMsIDQxMTMzLCAKKyAgICA5ODE2LCAxMjY1MTcsIDEyNTMyLCA3ODU1MCwgNzg1NDYsIDM1MDgsIDEyNzA1OCwgNDMyMzUsIDAsIDEyNzI5OCwgNjQxMzksIAogICAgIDc4MjMxLCA2NDExLCAxMjkxMCwgNzg1NTQsIDY2NjQ0LCAxMzAyOCwgNjczNywgMTI1MzcsIDAsIDAsIDY0MTM2LCAxMjUzNiwgCi0gICAgMjM1MCwgMTMwMjksIDc4MjMzLCAwLCAwLCAxMzAzMCwgNjcwMiwgNDUyNywgMCwgMTI1MzgsIDEyODgxMCwgMCwgNjU1OTksIAotICAgIDY1NzE3LCA5OTY2LCAwLCA0OTQ4LCAxMjQ4NCwgNDAzMiwgMTI4MTQ5LCAxMjYyMywgMCwgNjIwNywgMCwgNjExNywgCi0gICAgNjU5MzAsIDg0MTIsIDAsIDc0MzgsIDEyOTYsIDIzMjUsIDQxNTExLCAwLCAxMDE0OSwgNzQxMTgsIDAsIDEyNzI4NiwgCi0gICAgMTI0ODEsIDAsIDEyNDg4LCAwLCAwLCA0MTU1NiwgNjQ0MTQsIDExODgwMiwgMjM1NCwgMTI4NTcxLCA3Mzc2NiwgMCwgCi0gICAgNjI5NSwgOTAxLCA0MTUxMCwgNzk1MywgMCwgNjUwMzIsIDQxNTEzLCAwLCAxMTkyNywgNjY1ODQsIDc4NTU5LCA3ODU2MCwgCi0gICAgNzg1NTcsIDc4NTU4LCAwLCA3ODU1NiwgODQ4LCA5ODY4LCAwLCA2NDI0LCA3ODU2OCwgMTE5MzM4LCA3ODU2NSwgNzQwMzEsIAotICAgIDc4NTYzLCA3ODU2NCwgMjM1MiwgNzg1NzIsIDg5MywgNjQ1NzYsIDExMjg5LCAxNDA3LCAwLCAwLCAxMzAyNiwgNjc2MiwgCi0gICAgNzg1NzksIDc4NTgwLCAxMzAyMywgODkwMywgOTc3NywgNjY3MTUsIDE4NzEsIDgwOTksIDAsIDAsIDEzNDMsIDAsIDAsIAotICAgIDkzMjUsIDY4MTgsIDYyODMsIDExNzM4LCAwLCAwLCAwLCAxMTc0MSwgMCwgMCwgOTIxNiwgODI2MywgMTEyNzksIDE5NDc1MiwgCi0gICAgMCwgMTk0NzU0LCAxMzAyMSwgNjQ0OTQsIDMxMzYsIDE5NDc1OCwgMTk0NzU3LCAxOTQ3NjAsIDEzMDIyLCA0MjczNywgCi0gICAgOTk1NiwgMCwgMCwgNzQ1NTIsIDEwMDE0LCAwLCA0MTI2MCwgMTE5MzQwLCAxMzAyMCwgMTAwMjQsIDE5NDc2NCwgMTk0NzY3LCAKLSAgICA3NDM0MCwgNjk2ODEsIDAsIDY0OTQ1LCA4MDI5LCAwLCAwLCAwLCAzMzM1LCAwLCAwLCA5Nzc2LCAxMjA1MjYsIDE5NDc0OCwgCi0gICAgNTIxNSwgNDI2NDQsIDMzMzMsIDE2MzIsIDE5NDc1MSwgNjQ4NDksIDMzNDIsIDc4NTgyLCA1MzYzLCAxMjk1NywgNzg1ODEsIAotICAgIDQxNTYsIDAsIDAsIDY0MjEsIDc4NTkxLCAxNjExLCA3ODU4OSwgMTMwMTgsIDc0MjU3LCA3ODU4OCwgNzQ1NDIsIDMzMzcsIAotICAgIDQ1MzcsIDY3ODk1LCAxMTczNiwgMCwgNjg2MDgsIDY0ODIsIDQyMTQsIDczNzkwLCAxMTk0NSwgMCwgMTMwNDYsIDg4MzgsIAotICAgIDQyNSwgNDAyNSwgMTA3MDksIDc4NTk1LCAyMTA4LCAyMzkyLCAxMzA0NywgMCwgMCwgNjgxOSwgMTMwNDksIDY0OTksIAotICAgIDkyMjQzLCAxMjQyNCwgNjg2MTQsIDczOTQ0LCAxMzA1MCwgOTkyNCwgMTk0NzQ1LCA2NTA3LCAxMjc5MTksIDAsIDEyODA2OSwgCi0gICAgMzI3NywgODkyOSwgNDk0NywgNDEwNTUsIDAsIDE5NDcyMiwgMTk0NzIxLCAxOTQ3MjQsIDEzMDQ1LCA2NDYyNiwgNjYwMzQsIAotICAgIDc3NTEsIDE5NDcyNywgODM3MSwgMTk0NzI5LCAzOTk3LCAxMjgwNiwgODc2OCwgMTMwNDQsIDAsIDEyNDIwLCA0MDI0LCAKLSAgICAxOTQ3MzAsIDQxMDU0LCAxMDc4LCA5NzU3LCA2OTczNiwgNDEwNTcsIDAsIDAsIDAsIDAsIDAsIDkyMjEwLCA5MjQxMSwgMCwgCi0gICAgNDE0OTYsIDAsIDkxNjUsIDE1NzIsIDExOTExLCAwLCAxMTg4NDIsIDIzNDYsIDEzMjcwLCA4OTU4LCAwLCA5NjQ2LCAzNzczLCAKLSAgICA0MzE4MywgNjQwMSwgNTgzMSwgMCwgMCwgMTMwNDMsIDgwNTYsIDkyNDk0LCA2NTY4MSwgMjA4LCAxMjczODIsIDQxNTE0LCAKLSAgICAwLCAwLCAwLCAxMDY5OSwgNjQwOCwgOTIyMjcsIDc4MjUsIDU2NjEsIDAsIDEyMDYzMCwgMzYwMywgNDExMDksIDIzOTgsIAotICAgIDM1NDgsIDAsIDAsIDExOTkzMywgMCwgMzExNSwgOTkxOCwgMCwgMTEzMjEsIDQyOTEyLCAwLCAwLCAxOTQ3MjYsIDQ4NzYsIAotICAgIDY1ODA0LCAwLCAwLCA0MzQ2OCwgMCwgNDE1NTgsIDQxNDcxLCA3Mzk1MCwgODE1OCwgOTk0NCwgNDE0NzIsIDEyMDI5OCwgCi0gICAgMTMwNTEsIDc4Njg5LCAzMTQzLCAxOTQ2NzQsIDY3MDEsIDQxNTU5LCAxODk2LCA2NjI1NiwgMTMwNTIsIDE5NDY4MCwgCi0gICAgNTY2NSwgMCwgMTE5MDcxLCA3MDI1LCA2Mzk3NCwgMCwgNzQzNTIsIDc0MTYxLCA0MTU0LCA5ODYzLCA0MzU1MCwgMTIzMTAsIAotICAgIDU2NjIsIDQyMzgyLCAxOTQ2ODYsIDczOTI0LCAxMTIxLCAxOTQ2NjUsIDYzOTU5LCAwLCA5OTQyLCAxMzIzMSwgMCwgCi0gICAgNjQ3NTIsIDQ3MzIsIDE5NDY2NiwgMTE1OTYsIDExOTkzMSwgNjUxODcsIDE2MjYsIDYzOTgzLCAxMDExMCwgNjQ3NzIsIAotICAgIDQyMDI0LCA2NDIwLCA0MjAyOCwgMCwgMTA1MDksIDI3OTUsIDQ5MTAsIDE5NDcyOCwgNjkyMzEsIDY0NzUzLCA2Mjc1LCAKLSAgICA5MTc4MDgsIDExODgzMCwgNjM5NzgsIDExMDQ0LCAzMjI5LCA2NDIzLCA0Mjc3NCwgMCwgMCwgMCwgMTI4MjMsIDIzMzEsIAotICAgIDkxNzgxMCwgNDIwMjYsIDYxMzcsIDAsIDc1MjQsIDAsIDkxNzgwOSwgODM0NiwgMCwgODMzOCwgMTI4MzE1LCA2NTA0MywgMCwgCi0gICAgODIyLCAxMjc5ODQsIDk5MDMsIDY0NzIxLCA0MjcyMiwgMTk0NjU2LCAxOTQ2NTksIDc4NjU1LCA3ODY2MSwgMTk0NjYwLCAKLSAgICA3ODY2MiwgNDEyNjUsIDUzMTEsIDE3OTUsIDk2NSwgMTE4NzkxLCAxMDU4NywgNzgwNTUsIDExMjc4LCA3ODYzMiwgCi0gICAgMTk0NjQwLCAwLCAxMjk0NiwgMTk0NjQxLCAxMTkzNDEsIDEyMDM0OSwgNjI5NCwgMzE0NCwgMTk0NjQ4LCAxOTQ2NDcsIAotICAgIDY1MDE5LCAxOTQ2NDksIDczOTkwLCAwLCAwLCA3NDgsIDQxMDY3LCAyMzMwLCA1MzUsIDMxNDgsIDEyMzc1LCAxOTQ2NTIsIAotICAgIDE5NDYyOSwgMTA1NTYsIDI0NzUsIDEyMzg4LCA0ODg5LCA4OTY4LCA2Nzg2MywgMzU5MywgMCwgMCwgMjM0MiwgMCwgCi0gICAgMTk0NjM0LCA2NTIwNiwgNDg5NCwgMTk0NjM1LCA0ODkwLCAxOTQ2MzcsIDkxNzgwNCwgNTgxLCA0ODkzLCAwLCA2NTcxLCAKLSAgICA2NTU0NSwgNDg4OCwgNDE1NywgNzgwNDgsIDc4MDQ5LCA3ODA0NiwgNzgwNDcsIDAsIDEwMTE5LCA2NDE1LCA0Mjg5MywgMCwgCi0gICAgNjk3MDIsIDAsIDAsIDExMzc1LCA2NDc0NiwgMjMzMiwgNzgwNjMsIDQxMiwgNzgwNjEsIDY0OTMyLCA0Mjg4MCwgNDM1ODcsIAotICAgIDAsIDAsIDAsIDAsIDY1MTk3LCA3ODA2NiwgMTIyMDMsIDc4MDY0LCA3ODA2NSwgODkxMywgNjU4NTQsIDQ4NzUsIDY1ODExLCAKLSAgICAxMjAzODEsIDEyMDM4OSwgMTE4ODg4LCA5MzQ0LCA4ODI2LCAxMjAzODYsIDEyMDM5NSwgMTMxMDQsIDc0NzgxLCAxMTk5NywgCi0gICAgMTIwMzkzLCA3ODA3NSwgMCwgMzEzNCwgMCwgNjU2OTYsIDkyMzMxLCAwLCA2NjIxNywgMCwgODMzNCwgMTE5MzQ0LCAwLCAKLSAgICAzNDQ5LCAwLCAwLCA3ODQxNCwgNzg0MTMsIDExODk1MCwgNzQwMTEsIDAsIDAsIDAsIDAsIDE5MDgsIDEyMDE2NywgNDMyOCwgCi0gICAgMTA3MzQsIDEyNzAxNCwgMCwgMTI3OTE0LCA3ODA0LCA3ODI3MiwgMTA4MTEsIDYyNTAsIDExMzM5LCA0OTE0LCAxMTM2NywgCi0gICAgMCwgNzgwNTQsIDQ5MTcsIDc0NTE2LCA3NDIwOCwgNjQyODUsIDQ5MTIsIDU0NjQsIDEyNzgzNiwgMTE4ODkzLCAyMzYxLCAKLSAgICA3OTcxLCA3ODA3MiwgNzgwNzMsIDU1MjQzLCA3ODA3MSwgMCwgODA4NiwgNzQzMTcsIDY3MDcsIDgzMTksIDIzMTIsIAotICAgIDQwOTc3LCAxMDk2MCwgNDA5NjIsIDgzMDUsIDEyNTczLCAwLCA0MDk4MCwgMCwgMTMyMDIsIDAsIDEyNTgyLCA3ODI4MiwgMCwgCi0gICAgMCwgNDI0MzgsIDU1MjIxLCA2Mjg4LCA3ODI4MCwgMTI3OTQ2LCA1NjUzLCA0MjQwMCwgMTA4OTEsIDc2OTgsIDU2NTgsIAotICAgIDc0MDQ1LCAxMjAxNjUsIDAsIDAsIDQ5MTMsIDAsIDAsIDAsIDQyMzI2LCAxMjgxOTQsIDEyNzI4LCA5MjY4NSwgNDI0NzgsIAotICAgIDIzMjcsIDAsIDEyNTYzLCA0MjI4NywgMTI3MDUsIDAsIDAsIDEyNTg4LCA4ODIxLCA2MTUzLCAyODY3LCAxOTQ3MDgsIAotICAgIDY2MzEyLCA2OTgsIDEyODAwNywgMTk0NjA2LCAxMDM1NiwgNzQwNzUsIDE5NDcxMywgNjUxLCAxMjY0MSwgMCwgMCwgMCwgMCwgCi0gICAgNDE1NTIsIDY1MTE1LCA3ODQ2NSwgNzg0NjcsIDc4NDYzLCA3ODQ2NCwgMTI4ODUxLCA3ODQ2MSwgMTk0Njk3LCA3NDM1NiwgCi0gICAgOTI2MjYsIDQ3MTYsIDQzMjc3LCAwLCA3ODQ3NCwgMTIzNDAsIDEyMDU2OCwgMCwgMTk0NzAwLCA1NTI2NCwgNDEyMTEsIAotICAgIDEyMDY3NiwgODcwMywgNTQ2MiwgOTE3NjI5LCAwLCAxMDEwMSwgMCwgMCwgODQ3OSwgNDE1MSwgNDE5MzMsIDAsIDAsIAotICAgIDY2MjU0LCAxMjA4MjEsIDAsIDAsIDEyODY1NCwgMCwgMTE5MTk0LCA3NDA1MCwgOTI3MDEsIDAsIDAsIDAsIDAsIDAsIAotICAgIDEyMjc4LCAwLCAwLCAwLCAyNzAwLCAxMjU3NiwgNzg0MiwgMTI4OTksIDAsIDAsIDI2OTksIDAsIDczODQ1LCAyOTg1LCAKLSAgICA5MjU2OCwgMCwgOTE3ODQ1LCAxMjE5MiwgMTE5MzE0LCAwLCAxMTkzMTIsIDk4MjcsIDExOTMxMCwgMTE5MzExLCAxMTkzMDgsIAotICAgIDExOTMwOSwgMTE5MzA2LCAxMTQ4MSwgNDEyMTAsIDExOTMwNSwgMCwgMzUsIDc4NDgxLCA3ODQ4MiwgNjY2OTQsIDY4NDc5LCAKLSAgICA3ODQ3NywgNzg0NzgsIDQzNTk2LCA2MDkwLCA2NDI1NywgNzgxMiwgMTA1MzQsIDAsIDc4NDg1LCA3Mzg0OCwgNzg0ODMsIAotICAgIDQyNzIsIDAsIDQwOTY3LCA0MDk2NCwgOTE3ODI1LCAxMjcwNCwgNzg0ODcsIDQzMzA2LCAwLCA2NDQ5NywgMTIxMzgsIAotICAgIDc5MzAsIDAsIDQzMzAzLCA2ODIxNiwgMCwgOTE3ODI2LCA1MjQ0LCA0MTg5LCAxMjcwOTgsIDY3NTk2LCAxMjc1MDQsIAotICAgIDQxODgsIDE4NzksIDAsIDk2OCwgMCwgNDM3NDMsIDAsIDg4NzMsIDAsIDAsIDkxNzgyNywgNjU1NTUsIDEyNTc0LCAwLCAwLCAKLSAgICAwLCA3NDQ5MCwgMTI3MDk5LCA0MzY1NywgMCwgMCwgMCwgNDI2ODIsIDEyNTc4LCAxMjcyMCwgMCwgNDEyMjcsIDAsIAotICAgIDEyMzQ2LCAxMjcxMDEsIDY0ODQ4LCAwLCAwLCA3MjUxLCAwLCAwLCAxMTg4NTAsIDExOTE0MSwgMTI4NTQ2LCA2NjAxNSwgMCwgCi0gICAgOTU5LCA4ODg1LCAxMjU2NCwgNjY0NTcsIDc4ODA4LCA5NDY5LCA5NjMyLCA5MjMyMywgNzQ3NjEsIDY0MzIzLCAwLCAwLCAwLCAKLSAgICAwLCAzMTAsIDAsIDQxMjgxLCAxMDk3NiwgMCwgOTIxOTAsIDAsIDc0MjY2LCAxMDA1NCwgNjQ5NywgODU3NCwgMCwgOTAxMiwgCi0gICAgMTk5NTgsIDc0NDIwLCA2NTA4OSwgMTMyMTUsIDEyNzMwLCA2NTE2MywgNzQwNDQsIDM3NCwgNDMxOTUsIDgxNiwgMCwgMCwgCi0gICAgMCwgNDE5MzQsIDc0NjUsIDAsIDEyODE2OCwgMCwgNDcxNSwgNjEwMSwgMCwgNDE5MzYsIDAsIDQ4NzksIDAsIDY1NDQ2LCAwLCAKLSAgICAzMDcsIDEyNzE0NywgOTU4NSwgNTM3NCwgMCwgMTI4MDU5LCAwLCAwLCAwLCAwLCAwLCA2NTU2NywgMTIwNjE0LCAxOTI5LCAKLSAgICAwLCAxMjE0MiwgMCwgMTIyMzYsIDQxNDE5LCAxOTQ2MTgsIDEyMDYxMCwgMTI5ODIsIDE5NDYyMywgNTM3OCwgNzg3OTEsIAotICAgIDEyODY3OSwgNDE0MjEsIDAsIDQ0NjIsIDAsIDAsIDEyODA5MiwgODIxLCAwLCAyNDk4LCA1ODAwLCAxMjAxNTcsIDAsIAotICAgIDE3NjAsIDI0MjEsIDQ0NjksIDIzMjQsIDgyOCwgMzYxMSwgNzg0MDAsIDc1NywgMTE4NSwgMCwgNzg3NzAsIDQzNTk3LCAKLSAgICAxMDYyOCwgNzQ4MDgsIDE5NDU3MiwgNzk5OSwgNDM5NzEsIDAsIDAsIDEwNjM0LCAxMDk0MiwgNzcxMywgMjM0OCwgMCwgCi0gICAgNjQzNzQsIDQzODAsIDE5NDYwOCwgMTE5MDQ0LCA5OTgyLCA2NDMyNCwgNDEyNDAsIDg2MiwgNjU2MjYsIDc4NDYyLCAxODEwLCAKLSAgICAzNjczLCA1MTM3LCAxOTQ2MTcsIDAsIDcyNzcsIDY1NjIyLCAwLCA3NTY2LCA2NDY4OCwgMTk0NTkzLCAxOTQ1OTIsIAotICAgIDc4MDkyLCA3NDM1NywgMTk0NTk3LCA0NzQ4LCA5MjIyOCwgMTk0NTk4LCAxOTQ2MDEsIDQyMjYwLCA1ODcxLCAxMTkwNzUsIAotICAgIDAsIDc0NTc2LCA0NDAxOSwgMCwgMTI4MTg5LCAzOTY3LCAxOTQ2MDQsIDEzMTM3LCA4Nzc1LCAxMjc5NDUsIDAsIDI5NjMsIAotICAgIDAsIDg0MTAsIDQ0NTQsIDcyMywgMTI3ODgyLCA5NjYsIDQ0NDksIDkyMzMwLCA5MjIzOCwgMCwgNzgxOSwgMjMyMCwgCi0gICAgMTk0NTg5LCAzMzksIDQ5NjgsIDE5NDU5MCwgMTIwMzk5LCA4MDc1LCA1NTI3NiwgMCwgODA0NywgMCwgNzg4MjcsIDEyNjM0LCAKLSAgICA0MTU0MiwgNzg3ODAsIDc0NjYsIDY3MDUsIDEyMTc0LCA0MjYxMCwgMCwgNzQ0NTIsIDAsIDE1ODQsIDY2NjQ1LCA2MDQ1LCAKLSAgICA2NzI5LCAxMjA2NDAsIDY1MjE4LCA3ODc3NywgMCwgNzgwNjIsIDc1MzcsIDAsIDExMzcwLCAwLCAxMDMzMCwgMCwgMTAzOTQsIAotICAgIDAsIDc0MTk0LCAwLCAxMjc5MjksIDk3ODAsIDAsIDEzMDkyLCAxOTQ1NzYsIDExOTYwNSwgMTk0NTc4LCA3MDc0LCA5MjY0OCwgCi0gICAgMTk0NTc5LCAxOTQ1ODIsIDExNDE0LCAxMjg4NjgsIDI1MzEsIDEzMDM0LCAwLCAwLCA0MjExLCAxMjU5LCA3NTE3LCAwLCAwLCAKLSAgICAxOTQ1NjEsIDQwOTk2LCAxMzAzNywgNzA5MiwgNjQxLCA1MjE5LCAxOTQ1NjcsIDE5NDU2NiwgMTEwNjQsIDQxMTI5LCAwLCAKLSAgICA0Mjg1MCwgMTMwMzUsIDkwNzUsIDkyMzg3LCA1NDY2LCAxMjgxNTMsIDAsIDY0MDk4LCA2NTc5MywgNDUzNSwgMTk0NTczLCAKLSAgICA0MjcxLCA3ODQxNywgMTI4MzU3LCA2NzY5LCA0MTQxMCwgMCwgNjQyNjIsIDY3NjcsIDQxNDA3LCAwLCAwLCA2NzU1LCAKLSAgICAxMTg4NjQsIDkwNDYsIDEyNzkzNCwgMCwgMCwgMCwgMCwgMCwgNjc2NzUsIDAsIDAsIDAsIDY0MzM4LCAyNTYzLCAxMzAzMywgCi0gICAgMjQ3LCAxMTg5MTUsIDAsIDEyMzM4LCA0NjUxLCAwLCAxMTI3MCwgMCwgMCwgMTE5MzMsIDAsIDAsIDQxOTAzLCA0MzQ0NywgCi0gICAgMTEwMDEsIDAsIDQyMjU1LCAwLCA5MjY2MSwgNjk4MjEsIDQxOTA1LCAwLCAwLCAxMDc3NSwgOTc5MywgNTAwOSwgMCwgCi0gICAgNDIyNjksIDY0NTg3LCAwLCA0MjUzNSwgNjk4MTIsIDY0NTI5LCA0MTQwOCwgNDI4NTMsIDM4NzcsIDEyMDc5NSwgNDI2NzQsIAotICAgIDgxNDcsIDQzNTY2LCAxMTkwMjEsIDAsIDEwMjM2LCA2NTkxOCwgNDM3ODIsIDAsIDAsIDY0NTA2LCA2OTY1MiwgMTE4OTIxLCAKLSAgICA0NzQ3LCAxMjgwNTgsIDAsIDQzMjAwLCA1ODMyLCAwLCAwLCA1MTQxLCA0MjYwMCwgMCwgNDMyMDMsIDAsIDAsIDQzMjg2LCAKLSAgICAwLCAxMjgyMTEsIDQzNzc4LCAwLCA0MTMwNSwgNzg3NzYsIDQzNzgxLCAxMTMwMywgNjU1NDcsIDAsIDcwMzEsIDg1OSwgMCwgCi0gICAgMCwgMCwgNjA1OSwgMTI2OTg1LCA1NTIzNSwgMCwgODUzNSwgMCwgNjUxOTYsIDE5NDc4NywgNjYwMzIsIDExNDg4LCAwLCAKLSAgICAxMjA3ODYsIDQyMjMzLCA2NDE0MCwgOTk0NiwgNjM4ODUsIDAsIDExODIyLCAwLCA0MzE4OSwgMCwgMCwgMTc4OCwgMTU3OSwgCi0gICAgMTIwNDgyLCA5MTc4MTcsIDAsIDAsIDAsIDkwMjgsIDExOTU3MSwgNjkyMzQsIDAsIDAsIDEyODUsIDY0ODgyLCA0MTI0MiwgCi0gICAgMCwgMCwgMTI2NDAsIDAsIDc0MDEsIDAsIDEyNjI1LCA2ODE5OCwgMCwgOTIyNTQsIDM5NDAsIDQxNTk3LCA1NTI2MCwgCi0gICAgMzM5NiwgMTI2NDIsIDg2NjUsIDAsIDAsIDEyNjMwLCAxNjUzLCA5MTc4MTUsIDEwMTUzLCAwLCA2MTY2LCAxMjA1MTYsIAotICAgIDEyMDUyMywgMCwgODgxNSwgNjY2NzMsIDY1MDQ2LCA5Mjg1LCA5MTMsIDQyMjU5LCAxMTkzMTcsIDExOTMxOCwgMjE0MiwgCi0gICAgNjg0NTQsIDQyNDg1LCAxMTg4MzcsIDc4NzgsIDgyMTEsIDQyMjkzLCA2NDM3NywgMCwgOTI2NDMsIDAsIDE5NDY3MywgCisgICAgMjM1MCwgMTMwMjksIDc4MjMzLCAwLCA5ODMxMDMsIDEzMDMwLCA2NzAyLCA0NTI3LCAwLCAxMjUzOCwgMTI4ODEwLCAKKyAgICA5ODM2MzYsIDY1NTk5LCA2NTcxNywgOTk2NiwgMCwgNDk0OCwgMTI0ODQsIDQwMzIsIDEyODE0OSwgMTI2MjMsIDAsIDYyMDcsIAorICAgIDAsIDYxMTcsIDY1OTMwLCA4NDEyLCAwLCA3NDM4LCAxMjk2LCAyMzI1LCA0MTUxMSwgMTI2NjI1LCAxMDE0OSwgNzQxMTgsIAorICAgIDAsIDEyNzI4NiwgMTI0ODEsIDAsIDEyNDg4LCA2NjcxMywgMCwgNDE1NTYsIDY0NDE0LCAxMTg4MDIsIDIzNTQsIDQyNjE5LCAKKyAgICA3Mzc2NiwgMCwgNjI5NSwgOTAxLCA0MTUxMCwgNzk1MywgMCwgNjUwMzIsIDQxNTEzLCA5ODMxNjYsIDExOTI3LCA2NjU4NCwgCisgICAgNzg1NTksIDc4NTYwLCA3ODU1NywgNzg1NTgsIDAsIDc4NTU2LCA4NDgsIDk4NjgsIDAsIDY0MjQsIDc4NTY4LCAxMTkzMzgsIAorICAgIDY5OTIyLCA3NDAzMSwgNzg1NjMsIDc4NTY0LCAyMzUyLCA3ODU3MiwgODkzLCA2NDU3NiwgMTEyODksIDE0MDcsIDY3OTczLCAKKyAgICAwLCAxMzAyNiwgNjc2MiwgNzg1NzksIDc4NTgwLCAxMzAyMywgODkwMywgOTc3NywgNjY3MTUsIDE4NzEsIDgwOTksIDAsIDAsIAorICAgIDEzNDMsIDk4MzgxNCwgMCwgOTMyNSwgNjgxOCwgNjI4MywgMTE3MzgsIDAsIDk4MzkyNSwgMCwgMTE3NDEsIDAsIDAsIAorICAgIDkyMTYsIDgyNjMsIDExMjc5LCAxOTQ3NTIsIDk4MzgxNiwgMTk0NzU0LCAxMzAyMSwgNjQ0OTQsIDMxMzYsIDE5NDc1OCwgCisgICAgMTk0NzU3LCAxOTQ3NjAsIDEzMDIyLCA0MjczNywgOTk1NiwgMCwgMCwgNzQ1NTIsIDEwMDE0LCAwLCA0MTI2MCwgMTE5MzQwLCAKKyAgICAxMzAyMCwgMTAwMjQsIDE5NDc2NCwgNzQ1ODMsIDc0MzQwLCA2OTY4MSwgMCwgNDMwMDEsIDgwMjksIDAsIDAsIDk4Mzc3MSwgCisgICAgMzMzNSwgMCwgMCwgOTc3NiwgMTIwNTI2LCAxOTQ3NDgsIDUyMTUsIDQyNjQ0LCAzMzMzLCAxNjMyLCAxOTQ3NTEsIDY0ODQ5LCAKKyAgICAzMzQyLCA3ODU4MiwgNTM2MywgMTI5NTcsIDc4NTgxLCA0MTU2LCAwLCAwLCA2NDIxLCA3ODU5MSwgMTYxMSwgNzg1ODksIAorICAgIDEzMDE4LCA3NDI1NywgNzg1ODgsIDc0NTQyLCAzMzM3LCA0NTM3LCA2Nzg5NSwgMTE3MzYsIDAsIDY4NjA4LCA2NDgyLCAKKyAgICA0MjE0LCA3Mzc5MCwgMTE5NDUsIDAsIDEzMDQ2LCA4ODM4LCA0MjUsIDQwMjUsIDEwNzA5LCA3ODU5NSwgMjEwOCwgMjM5MiwgCisgICAgMTMwNDcsIDAsIDAsIDY4MTksIDEzMDQ5LCA2NDk5LCA5MjI0MywgMTI0MjQsIDY4NjE0LCA3Mzk0NCwgMTMwNTAsIDk5MjQsIAorICAgIDE5NDc0NSwgNjUwNywgMTI3OTE5LCA5NDA3MywgMTI4MDY5LCAzMjc3LCA4OTI5LCA0OTQ3LCA0MTA1NSwgMCwgMTk0NzIyLCAKKyAgICAxOTQ3MjEsIDE5NDcyNCwgMTMwNDUsIDY0NjI2LCA2NjAzNCwgNzc1MSwgMTk0NzI3LCA4MzcxLCAxOTQ3MjksIDM5OTcsIAorICAgIDEyODA2LCA4NzY4LCAxMzA0NCwgMCwgMTI0MjAsIDQwMjQsIDE5NDczMCwgNDEwNTQsIDEwNzgsIDk3NTcsIDY5NzM2LCAKKyAgICA0MTA1NywgMCwgMCwgMCwgMCwgOTgzNzgyLCA5MjIxMCwgOTI0MTEsIDAsIDQxNDk2LCAwLCA5MTY1LCAxNTcyLCAxMTkxMSwgCisgICAgMCwgMTE4ODQyLCAyMzQ2LCAxMzI3MCwgODk1OCwgMCwgOTY0NiwgMzc3MywgNDMxODMsIDY0MDEsIDU4MzEsIDAsIDAsIAorICAgIDEzMDQzLCA4MDU2LCA5MjQ5NCwgNjU2ODEsIDIwOCwgMTI3MzgyLCA0MTUxNCwgMCwgMCwgMCwgMTA2OTksIDY0MDgsIAorICAgIDkyMjI3LCA3ODI1LCA1NjYxLCAwLCAxMjA2MzAsIDM2MDMsIDQxMTA5LCAyMzk4LCAzNTQ4LCAxMjY1OTYsIDAsIDExOTkzMywgCisgICAgMCwgMzExNSwgOTkxOCwgMCwgMTEzMjEsIDQyOTEyLCAwLCAwLCAxOTQ3MjYsIDQ4NzYsIDY1ODA0LCAwLCAwLCA0MzQ2OCwgCisgICAgOTgzMjY2LCA0MTU1OCwgNDE0NzEsIDczOTUwLCA4MTU4LCA5OTQ0LCA0MTQ3MiwgMTIwMjk4LCAxMzA1MSwgNzg2ODksIAorICAgIDMxNDMsIDE5NDY3NCwgNjcwMSwgNDE1NTksIDE4OTYsIDY2MjU2LCAxMzA1MiwgMTk0NjgwLCA1NjY1LCAwLCAxMTkwNzEsIAorICAgIDcwMjUsIDYzOTc0LCAwLCA3NDM1MiwgNzQxNjEsIDQxNTQsIDk4NjMsIDQzNTUwLCAxMjMxMCwgNTY2MiwgNDIzODIsIAorICAgIDE5NDY4NiwgNzM5MjQsIDExMjEsIDc4MzE5LCA2Mzk1OSwgMCwgOTk0MiwgMTMyMzEsIDAsIDY0NzUyLCA0NzMyLCAKKyAgICAxOTQ2NjYsIDExNTk2LCAxMTk5MzEsIDY1MTg3LCAxNjI2LCA2Mzk4MywgMTAxMTAsIDY0NzcyLCA0MjAyNCwgNjQyMCwgCisgICAgNDIwMjgsIDAsIDEwNTA5LCAyNzk1LCA0OTEwLCAxOTQ3MjgsIDY5MjMxLCA2NDc1MywgNjI3NSwgOTM5NTcsIDExODgzMCwgCisgICAgNjM5NzgsIDExMDQ0LCAzMjI5LCA2NDIzLCA0Mjc3NCwgMCwgMCwgMCwgMTI4MjMsIDIzMzEsIDkxNzgxMCwgNzA4NSwgCisgICAgNjEzNywgMCwgNzUyNCwgMCwgOTE3ODA5LCA4MzQ2LCAwLCA4MzM4LCAxMjgzMTUsIDY1MDQzLCAwLCA4MjIsIDEyNzk4NCwgCisgICAgOTkwMywgNjQ3MjEsIDQyNzIyLCA2OTg3NywgMTk0NjU5LCA3ODY1NSwgNzg2NjEsIDE5NDY2MCwgNzg2NjIsIDQxMjY1LCAKKyAgICA1MzExLCAxNzk1LCA5NjUsIDExODc5MSwgMTA1ODcsIDc4MDU1LCAxMTI3OCwgNzg2MzIsIDE5NDY0MCwgMCwgMTI5NDYsIAorICAgIDE5NDY0MSwgMTE5MzQxLCAxMjAzNDksIDYyOTQsIDMxNDQsIDE5NDY0OCwgMTk0NjQ3LCA2NTAxOSwgMTk0NjQ5LCA3Mzk5MCwgCisgICAgMCwgOTgzOTUxLCA3NDgsIDQxMDY3LCAyMzMwLCA1MzUsIDMxNDgsIDEyMzc1LCA3ODc5OSwgMTk0NjI5LCAxMDU1NiwgCisgICAgMjQ3NSwgMTIzODgsIDQ4ODksIDg5NjgsIDY3ODYzLCAzNTkzLCAwLCAwLCAyMzQyLCAwLCAxOTQ2MzQsIDY1MjA2LCA0ODk0LCAKKyAgICAxOTQ2MzUsIDQ4OTAsIDE5NDYzNywgOTE3ODA0LCA1ODEsIDQ4OTMsIDk4MzYxNiwgNjU3MSwgNjU1NDUsIDQ4ODgsIDQxNTcsIAorICAgIDc4MDQ4LCA3ODA0OSwgNzgwNDYsIDc4MDQ3LCAwLCAxMDExOSwgNjQxNSwgNDI4OTMsIDAsIDY5NzAyLCAwLCAwLCAxMTM3NSwgCisgICAgNjQ3NDYsIDIzMzIsIDc4MDYzLCA0MTIsIDc4MDYxLCA2NDkzMiwgNDI4ODAsIDQzNTg3LCAwLCAwLCAwLCAwLCA2NTE5NywgCisgICAgNzgwNjYsIDEyMjAzLCA3ODA2NCwgNzgwNjUsIDg5MTMsIDY1ODU0LCA0ODc1LCA2NTgxMSwgMTIwMzgxLCAxMjAzODksIAorICAgIDExODg4OCwgOTM0NCwgODgyNiwgMTIwMzg2LCAxMjAzOTUsIDEzMTA0LCA3NDc4MSwgMTE5OTcsIDEyMDM5MywgNzgwNzUsIAorICAgIDAsIDMxMzQsIDAsIDY1Njk2LCA5MjMzMSwgMCwgNjYyMTcsIDAsIDgzMzQsIDExOTM0NCwgMCwgMzQ0OSwgMCwgMCwgCisgICAgNzg0MTQsIDc4NDEzLCAxMTg5NTAsIDc0MDExLCAwLCAwLCAwLCAwLCAxOTA4LCAxMjAxNjcsIDQzMjgsIDEwNzM0LCAKKyAgICAxMjcwMTQsIDAsIDEyNzkxNCwgNzgwNCwgNzgyNzIsIDEwODExLCA2MjUwLCAxMTMzOSwgNDkxNCwgMTEzNjcsIDAsIAorICAgIDc4MDU0LCA0OTE3LCA3NDUxNiwgNzQyMDgsIDY0Mjg1LCA0OTEyLCA1NDY0LCAxMjc4MzYsIDExODg5MywgMjM2MSwgNzk3MSwgCisgICAgNzgwNzIsIDc4MDczLCA1NTI0MywgNzgwNzEsIDAsIDgwODYsIDc0MzE3LCA2NzA3LCA4MzE5LCAyMzEyLCA0MDk3NywgCisgICAgMTA5NjAsIDQwOTYyLCA4MzA1LCAxMjU3MywgOTgzNjA4LCA0MDk4MCwgOTgzOTU1LCAxMzIwMiwgMCwgMTI1ODIsIDc4MjgyLCAKKyAgICA5ODMwNDgsIDY5ODU2LCA0MjQzOCwgNTUyMjEsIDYyODgsIDc4MjgwLCAxMjc5NDYsIDU2NTMsIDQyNDAwLCAxMDg5MSwgCisgICAgNzY5OCwgNTY1OCwgNzQwNDUsIDcwMDM5LCAwLCAwLCA0OTEzLCAwLCA5ODM5NTAsIDcxMzMzLCA0MjMyNiwgMTI4MTk0LCAKKyAgICAxMjcyOCwgOTI2ODUsIDQyNDc4LCAyMzI3LCAwLCAxMjU2MywgNDIyODcsIDEyNzA1LCAwLCAwLCAxMjU4OCwgODgyMSwgCisgICAgNjE1MywgMjg2NywgMTk0NzA4LCA2NjMxMiwgNjk4LCAxMjgwMDcsIDE5NDYwNiwgMTAzNTYsIDcwMDE3LCAxOTQ3MTMsIAorICAgIDY1MSwgMTI2NDEsIDAsIDAsIDAsIDAsIDQxNTUyLCA2NTExNSwgNzg0NjUsIDc4NDY3LCA3ODQ2MywgNzg0NjQsIDEyODg1MSwgCisgICAgNzg0NjEsIDE5NDY5NywgNzQzNTYsIDY0OTQ1LCA0NzE2LCA0MzI3NywgMCwgNzg0NzQsIDEyMzQwLCAxMjA1NjgsIDAsIAorICAgIDE5NDcwMCwgNTUyNjQsIDQxMjExLCAxMjA2NzYsIDg3MDMsIDU0NjIsIDkxNzYyOSwgOTgzNDg3LCAxMDEwMSwgMCwgCisgICAgNzAwNDksIDg0NzksIDQxNTEsIDQxOTMzLCAwLCAwLCA2NjI1NCwgMTIwODIxLCAwLCAwLCAxMjg2NTQsIDAsIDExOTE5NCwgCisgICAgNzQwNTAsIDkyNzAxLCAwLCAwLCAwLCAwLCAwLCAxMjI3OCwgMCwgMCwgMCwgMjcwMCwgMTI1NzYsIDc4NDIsIDEyODk5LCAwLCAKKyAgICAwLCAyNjk5LCAwLCA3Mzg0NSwgMjk4NSwgOTI1NjgsIDEyNjQ3NSwgOTE3ODQ1LCAxMjE5MiwgMTE5MzE0LCAwLCAxMTkzMTIsIAorICAgIDk4MjcsIDExOTMxMCwgMTE5MzExLCAxMTkzMDgsIDExOTMwOSwgMTE5MzA2LCAxMTQ4MSwgNDEyMTAsIDExOTMwNSwgMCwgCisgICAgMzUsIDc4NDgxLCA3ODQ4MiwgNjY2OTQsIDY4NDc5LCA3ODQ3NywgNzg0NzgsIDQzNTk2LCA2MDkwLCA2NDI1NywgNzgxMiwgCisgICAgMTA1MzQsIDAsIDc4NDg1LCA3Mzg0OCwgNjc5NzUsIDQyNzIsIDAsIDQwOTY3LCA0MDk2NCwgOTE3ODI1LCAxMjcwNCwgCisgICAgNzg0ODcsIDQzMzA2LCAwLCA2NDQ5NywgMTIxMzgsIDc5MzAsIDAsIDIyOTIsIDY4MjE2LCAwLCA5MTc4MjYsIDUyNDQsIAorICAgIDQxODksIDk0MTA4LCA2NzU5NiwgMTI3NTA0LCA0MTg4LCAxODc5LCAwLCA5NjgsIDAsIDQzNzQzLCAwLCA4ODczLCAyMjc5LCAKKyAgICAwLCA5MTc4MjcsIDY1NTU1LCAxMjU3NCwgMCwgMCwgMCwgNzQ0OTAsIDEyNzA5OSwgNDM2NTcsIDAsIDAsIDAsIDQyNjgyLCAKKyAgICAxMjU3OCwgMTI3MjAsIDAsIDQxMjI3LCAwLCAxMjM0NiwgMTI3MTAxLCA2NDg0OCwgMCwgMCwgNzI1MSwgMCwgMCwgCisgICAgMTE4ODUwLCAxMTkxNDEsIDEyODU0NiwgNjYwMTUsIDAsIDk1OSwgODg4NSwgMTI1NjQsIDY2NDU3LCA3ODgwOCwgOTQ2OSwgCisgICAgOTYzMiwgOTIzMjMsIDc0NzYxLCA2NDMyMywgMTI3MzM1LCAwLCAwLCAwLCAzMTAsIDAsIDQxMjgxLCAxMDk3NiwgMCwgCisgICAgNzEzMjUsIDAsIDc0MjY2LCAxMDA1NCwgNjQ5NywgODU3NCwgMCwgOTAxMiwgMTk5NTgsIDc0NDIwLCA2NTA4OSwgMTMyMTUsIAorICAgIDEyNzMwLCA2NTE2MywgNzQwNDQsIDM3NCwgNDMxOTUsIDgxNiwgMTIwMTYxLCAwLCAwLCA0MTkzNCwgNzQ2NSwgMCwgCisgICAgMTI4MTY4LCA5ODMyNjAsIDQ3MTUsIDYxMDEsIDk0MTA2LCA0MTkzNiwgMCwgNDg3OSwgMCwgNjU0NDYsIDAsIDMwNywgCisgICAgMTI3MTQ3LCA5NTg1LCA1Mzc0LCA5ODMyNTksIDEyODA1OSwgMCwgMCwgMTI2NjE4LCAxMjAzOTAsIDAsIDY1NTY3LCAKKyAgICAxMjA2MTQsIDE5MjksIDAsIDEyMTQyLCAwLCAxMjIzNiwgNDE0MTksIDE5NDYxOCwgMTIwNjEwLCAxMjk4MiwgMTk0NjIzLCAKKyAgICA1Mzc4LCA3ODc5MSwgMTI4Njc5LCA0MTQyMSwgMCwgNDQ2MiwgMCwgMTI2NTk5LCAxMjgwOTIsIDgyMSwgMCwgMjQ5OCwgCisgICAgNTgwMCwgMTIwMTU3LCA5ODMxMTUsIDE3NjAsIDI0MjEsIDQ0NjksIDIzMjQsIDgyOCwgMzYxMSwgNzg0MDAsIDc1NywgCisgICAgMTE4NSwgMCwgNzg3NzAsIDQzNTk3LCAxMDYyOCwgNzQ4MDgsIDE5NDU3MiwgNzk5OSwgNDM5NzEsIDAsIDAsIDEwNjM0LCAKKyAgICAxMDk0MiwgNzcxMywgMjM0OCwgMCwgNjQzNzQsIDQzODAsIDE5NDYwOCwgMTE5MDQ0LCA5OTgyLCA2NDMyNCwgNDEyNDAsIAorICAgIDg2MiwgNjU2MjYsIDc4NDYyLCAxODEwLCAzNjczLCA1MTM3LCAxOTQ2MTcsIDAsIDcyNzcsIDY1NjIyLCAwLCA3NTY2LCAKKyAgICA2NDY4OCwgMTk0NTkzLCAxOTQ1OTIsIDc4MDkyLCA3NDM1NywgMTk0NTk3LCA0NzQ4LCA5MjIyOCwgMTk0NTk4LCAxOTQ2MDEsIAorICAgIDQyMjYwLCA1ODcxLCAxMTkwNzUsIDAsIDc0NTc2LCA0NDAxOSwgMCwgMTI4MTg5LCAzOTY3LCAxOTQ2MDQsIDEzMTM3LCAKKyAgICA4Nzc1LCAxMjc5NDUsIDAsIDI5NjMsIDAsIDg0MTAsIDQ0NTQsIDcyMywgMTI3ODgyLCA5NjYsIDQ0NDksIDkyMzMwLCAKKyAgICA5MjIzOCwgMCwgNzgxOSwgMjMyMCwgMTk0NTg5LCAzMzksIDQ5NjgsIDE5NDU5MCwgMTIwMzk5LCA4MDc1LCA1NTI3NiwgMCwgCisgICAgODA0NywgMCwgNzg4MjcsIDEyNjM0LCA0MTU0MiwgNzg3ODAsIDc0NjYsIDY3MDUsIDEyMTc0LCA0MjYxMCwgMCwgNzQ0NTIsIAorICAgIDk4Mzc1NCwgMTU4NCwgNjY2NDUsIDYwNDUsIDY3MjksIDEyMDY0MCwgNjUyMTgsIDExNTU5LCAwLCA3ODA2MiwgNzUzNywgMCwgCisgICAgMTEzNzAsIDAsIDEwMzMwLCAwLCAxMDM5NCwgMCwgNzQxOTQsIDAsIDEyNzkyOSwgOTc4MCwgMCwgMTMwOTIsIDE5NDU3NiwgCisgICAgNzc5NTAsIDE5NDU3OCwgNzA3NCwgOTI2NDgsIDE5NDU3OSwgMTk0NTgyLCAxMTQxNCwgMTI4ODY4LCAyNTMxLCAxMzAzNCwgCisgICAgMCwgMCwgNDIxMSwgMTI1OSwgNzUxNywgMCwgMCwgMTk0NTYxLCA0MDk5NiwgMTMwMzcsIDcwOTIsIDY0MSwgNTIxOSwgCisgICAgOTQwMzQsIDE5NDU2NiwgMTEwNjQsIDQxMTI5LCAwLCA0Mjg1MCwgMTMwMzUsIDkwNzUsIDkyMzg3LCA1NDY2LCAxMjgxNTMsIAorICAgIDAsIDY0MDk4LCA2NTc5MywgNDUzNSwgMTk0NTczLCA0MjcxLCA3ODQxNywgMTI4MzU3LCA2NzY5LCA0MTQxMCwgOTgzNDQ0LCAKKyAgICA2NDI2MiwgNjc2NywgNDE0MDcsIDAsIDAsIDY3NTUsIDExODg2NCwgOTA0NiwgMTI3OTM0LCAxMjY2MDgsIDAsIDAsIDAsIDAsIAorICAgIDY3Njc1LCAwLCAwLCAwLCA2NDMzOCwgMjU2MywgMTMwMzMsIDI0NywgMTE4OTE1LCAwLCAxMjMzOCwgNDY1MSwgNjk4OTUsIAorICAgIDExMjcwLCAwLCAwLCAxMTkzMywgMCwgMCwgNDE5MDMsIDQzNDQ3LCAxMTAwMSwgMCwgNDIyNTUsIDAsIDkyNjYxLCA2OTgyMSwgCisgICAgNDE5MDUsIDAsIDAsIDEwNzc1LCA5NzkzLCA1MDA5LCAwLCA0MjI2OSwgNjQ1ODcsIDk4MzA2MywgNDI1MzUsIDY5ODEyLCAKKyAgICA2NDUyOSwgNDE0MDgsIDQyODUzLCAzODc3LCAxMjA3OTUsIDQyNjc0LCA4MTQ3LCA0MzU2NiwgMTE5MDIxLCA5ODM3NjcsIAorICAgIDEwMjM2LCA2NTkxOCwgNDM3ODIsIDAsIDAsIDY0NTA2LCA2OTY1MiwgMTE4OTIxLCA0NzQ3LCAxMjgwNTgsIDY5ODQ0LCAKKyAgICA0MzIwMCwgNTgzMiwgMCwgMCwgNTE0MSwgNDI2MDAsIDAsIDQzMjAzLCAwLCA5ODM3OTAsIDQzMjg2LCAwLCAxMjgyMTEsIAorICAgIDQzNzc4LCAwLCA0MTMwNSwgNzg3NzYsIDQzNzgxLCAxMTMwMywgNjU1NDcsIDAsIDcwMzEsIDg1OSwgMCwgMCwgMCwgNjA1OSwgCisgICAgMTI2OTg1LCA1NTIzNSwgMCwgODUzNSwgMCwgNjUxOTYsIDE5NDc4NywgNjYwMzIsIDExNDg4LCAxMjA0ODEsIDEyMDc4NiwgCisgICAgNDIyMzMsIDY0MTQwLCA5OTQ2LCA2Mzg4NSwgMTk0NzkyLCAxMTgyMiwgMCwgNDMxODksIDk4Mzg4OSwgMCwgMTc4OCwgCisgICAgMTU3OSwgMTIwNDgyLCA3MTI5OCwgMCwgMCwgMCwgOTAyOCwgMTE5NTcxLCA2OTIzNCwgOTQwNTUsIDAsIDEyODUsIDY0ODgyLCAKKyAgICA0MTI0MiwgNzAwODYsIDAsIDEyNjQwLCAwLCA3NDAxLCAwLCAxMjYyNSwgNjgxOTgsIDAsIDcwMDgyLCAzOTQwLCA0MTU5NywgCisgICAgNDM3NTQsIDMzOTYsIDEyNjQyLCA4NjY1LCAwLCAwLCAxMjYzMCwgMTY1MywgOTE3ODE1LCAxMDE1MywgMCwgNjE2NiwgCisgICAgMTIwNTE2LCAxMTg5ODksIDAsIDg4MTUsIDY2NjczLCA2NTA0NiwgOTI4NSwgOTEzLCA0MjI1OSwgMTE5MzE3LCAxMTkzMTgsIAorICAgIDIxNDIsIDY4NDU0LCA0MjQ4NSwgOTQwMTIsIDc4NzgsIDgyMTEsIDQyMjkzLCA2NDM3NywgMCwgOTI2NDMsIDAsIDE5NDY3MywgCiAgICAgMTIwMzIsIDAsIDk3MjUsIDAsIDc4NDMxLCA1MjYzLCAxMjgxOCwgNzg0MzAsIDQxOTM5LCAxMDAyMiwgNjUzODcsIDc4NDE5LCAKLSAgICA0Mjc3NywgMTAxMzksIDk4MCwgNDM2OTgsIDY1Mzg2LCAwLCAwLCA0MzcwMSwgNDMxOTgsIDcxODQsIDEyMDY3MywgCisgICAgNDI3NzcsIDEwMTM5LCA5ODAsIDQzNjk4LCA2NTM4NiwgMjIwOCwgMCwgNDM3MDEsIDQzMTk4LCA3MTg0LCAxMjA2NzMsIAogICAgIDE5NDc5NywgOTE3ODE5LCAxMDA4NSwgMTE5OTkyLCAwLCAxMTk5OTMsIDY2MzQsIDkyMzczLCAwLCAxMTkzMjMsIDgwNzIsIAogICAgIDExOTMyMSwgNDM3MDAsIDAsIDg4NzIsIDc3ODMsIDkxNzk5MiwgMTIzOTgsIDgyMzcsIDAsIDAsIDEyMzk1LCAwLCAKLSAgICAxMjY5NzcsIDEyMDU2NSwgOTkxNCwgMTI3MDExLCA5MTc4NTQsIDczOTc1LCA2MzY3LCA2MzUxLCA2NjY4OCwgMCwgNzgxMDcsIAorICAgIDEyNjk3NywgMTIwNTY1LCA5OTE0LCAyMjE3LCA5MTc4NTQsIDczOTc1LCA2MzY3LCA2MzUxLCA2NjY4OCwgMCwgNzgxMDcsIAogICAgIDAsIDY0NzM1LCA0MTI0MywgOTIxOTksIDc4MDgsIDE4MjksIDAsIDQxOTM3LCA0MzU4LCA0MzI3MiwgNjM1MywgMCwgMCwgCiAgICAgMTIwNDIyLCAwLCAxNzEwLCAwLCAwLCA2NTYwNywgMCwgNDksIDY2MjcsIDAsIDYyNTgsIDEwNjgzLCA3ODY3MiwgOTc0MSwgCiAgICAgNzgzMjksIDU2NDksIDc4NDQxLCA0MzQ0MywgNjQ0MTgsIDE2NDMsIDY1MjEzLCA4NDA1LCAzNDcwLCAxMjgyMjUsIDEzMjEzLCAKLSAgICA0MjQ1MiwgNzgzMzEsIDAsIDc4NDQ1LCAwLCAxMDcyLCA3ODQ1NywgNzg0NTIsIDc4NDU0LCA2NTc2LCA0MTk4OCwgNDExMzIsIAotICAgIDY1Njc1LCAxMDgwLCAxMjAwMDIsIDk4ODYsIDU1MjI1LCAxMTAxLCA2ODQwNCwgMTIzMDksIDU1MjI3LCAwLCAxMjYzMiwgCi0gICAgMTA4NiwgMTg2OSwgNzg2ODUsIDc2ODAsIDAsIDY1NDU4LCAxMjA3MTQsIDEyNjM5LCAzMzgwLCA4MTIzLCAxMDkxLCAKLSAgICAxMjYzOCwgNzk3NywgNDUwMSwgNDEwOTksIDAsIDY2MzA5LCAwLCAwLCAxNDk0LCAwLCAwLCAwLCAxMTY5MywgMCwgMTA0OTQsIAotICAgIDkyNjU1LCA2NTg3MiwgMTIzNjMsIDExMzg2LCAwLCAwLCAwLCAwLCA2NDU4MiwgMCwgNzM3OTQsIDAsIDgwMjIsIDAsIAotICAgIDEyMDQ2MiwgNzQxMDYsIDEyNDEzLCAxOTQ4MjksIDkxNzk5NCwgMCwgOTE3OTk1LCA1NTcwLCAxODgxLCA3MjEwLCAwLCAKLSAgICAxMDEyLCA2NjYzMCwgMCwgMTIwNzA5LCA3MjA4LCA2NjQ0MiwgNTU2OSwgMCwgNDIzMzksIDAsIDYwNjMsIDAsIDAsIAotICAgIDExOTU5NCwgNjA1MywgNjU2MDIsIDAsIDkyMjAxLCA2NDcyNywgOTE2MCwgMTk0ODI3LCAwLCAwLCA5MjE4MCwgMTA1MDMsIAotICAgIDExODgxMCwgNjA1NSwgMzg3MCwgNDI3OSwgODQ5MCwgMTIwMTE0LCA0MzE5LCA2NDc4NiwgODYwMiwgMTIwMTEwLCAxMTMyNiwgCi0gICAgOTIyMDQsIDAsIDAsIDEyMDExOSwgNzgzMzMsIDEyMDExNywgMTIwMTE4LCAxMjAwOTksIDEyMDEwMCwgNjUwODcsIDU1NzEsIAotICAgIDM2NzQsIDk3NDAsIDkxMjEsIDU1NjgsIDEyMDEwNywgMTIwMTA4LCA0MjA4NSwgMTAxMDcsIDQyMTU5LCA0Mjg3MCwgCi0gICAgMTIwMTAxLCA1ODksIDcwNTAsIDAsIDQzMjgxLCAxMDIzMywgNDEyNjMsIDY2MjUxLCA2NTcyOSwgNjYyNTMsIDAsIDc0MDk5LCAKLSAgICA0MjY0NSwgMCwgMTk0ODE1LCA4NTgzLCAwLCA1ODQ3LCA2OTI4LCAwLCAwLCAwLCAwLCAwLCA2NjU5MiwgMTIyMDQsIAotICAgIDkxNzk2MiwgMTk5NjYsIDc3ODU2LCA0MjU2MSwgMTIwNjI2LCAwLCAwLCA4MTIwLCAxMjA3MDEsIDAsIDAsIDEyODAxMiwgCi0gICAgNDEwNjMsIDAsIDEwNjY0LCAwLCA4MzY5LCAwLCA0NTUxLCAxOTQ5NjQsIDMzNjksIDAsIDAsIDk2NzMsIDY2MzM0LCAKLSAgICA2NTU4MCwgMTA0NzgsIDExODk2MCwgMTI1MTcsIDU1NywgOTQ1NywgMTIwMzQsIDAsIDYzNTUsIDEyNTE5LCA0MTAwNCwgMCwgCi0gICAgMTk1MDI1LCA3NDA5NCwgMCwgMCwgNzc5NzAsIDAsIDAsIDEyODE3NSwgMTIxMTEsIDM5MjcsIDAsIDEyNTE1LCAxNDc0LCAKLSAgICA2Nzg5MywgNTQ5MiwgNjkyMywgMTI4MDk5LCAxMDQ0MSwgNzM4MzYsIDAsIDQzOTkwLCA1NDkzLCAwLCA3NDMxOSwgMCwgCi0gICAgNjY2MzUsIDEyMDE5LCAwLCAxNjE4LCAwLCAxMjA0NzQsIDk2NDUsIDEwNDMwLCA5MTc5NTksIDU4NTMsIDEzMDYzLCAKLSAgICAxMDM2MywgMCwgMTI5NTYsIDEyODE2OSwgMTIwNzI5LCAxMTMxNCwgOTE3NTgyLCAxMjA2MCwgMCwgNzgzOTIsIDEyODI2LCAKLSAgICA2MzI5LCAwLCAxMDUxNCwgNjU1MTcsIDc0Mzk1LCAyNzA3LCA4MzA5LCAwLCAxMjcwNTQsIDc4Mzk4LCA0MzU3MCwgMjY5NywgCi0gICAgNDM0MjAsIDc4Mzk2LCAxMjcwNTcsIDI2OTUsIDQyMTcxLCAwLCAwLCAwLCA2NzYxNywgMTE4OTcxLCAwLCAyNjkzLCAKLSAgICAxMjEyNSwgMTI3NjYsIDAsIDExNjQsIDAsIDAsIDQxOTE4LCAwLCAxMjc1NDIsIDg2ODcsIDY2MDA5LCAxMjE3OCwgNzA1MywgCi0gICAgMTI4MDAxLCA3NDY5LCAwLCA1MjQ4LCAxMjIxOCwgMTIwNTM4LCA2NDI3LCA0Mjg4NCwgNDExMjMsIDAsIDAsIDQyODczLCAKLSAgICA0MTEyNiwgOTk5MSwgNDExMjgsIDc0MzcxLCAxMjcwMzEsIDAsIDk4NzMsIDAsIDQyODc3LCA3OTk0LCA2NDc2MiwgMjA1MywgCi0gICAgNDI4NDMsIDY1OTEsIDkzNDAsIDAsIDE1ODksIDAsIDI5NiwgNzQ0MzgsIDc4ODUyLCAwLCA2Nzg0MSwgNzQzNzAsIDAsIAotICAgIDg5MjIsIDEyODA2OCwgNzQ2MDAsIDEyNzAwLCA3NDgzNiwgMCwgMTI1NzksIDAsIDEyNTc1LCA2NDE2LCA1NjU2LCAyODkxLCAKLSAgICAxMzI2MiwgNjU1OTAsIDUyOTksIDAsIDExNDczLCA1NDQ5LCAxMjUyLCAwLCA3ODQwNCwgNDE0MzEsIDc0MzY5LCA2NTM3MywgCi0gICAgNTI5NSwgOTE3NTY5LCA3NDExNCwgMTIyMywgMTY0MiwgMTc0LCA3ODM5OSwgODgzLCA0MTYxLCAxMjY5MSwgNDI2MDMsIAotICAgIDQxNDEzLCAzMjEyLCA0MTQ1OSwgMzIxMSwgNzQ4MTAsIDQxNDI1LCAxMjcwMjksIDc4NDEyLCA3NDQ1MCwgOTcyOCwgMzg0NiwgCi0gICAgODA3MCwgNjE1MCwgNjYzNiwgNDM3MCwgMCwgMCwgNzQxNzgsIDc0NTg3LCA3NDExNywgMCwgMCwgMCwgNDk4NiwgMTIxODksIAotICAgIDAsIDY3NjQ4LCAxMjA0OTksIDkxNzU1MywgNDI1NywgMTIxMDQsIDc3OTQyLCA2MjIwLCA5MDA0LCA2NTU2MSwgMCwgCi0gICAgNzc5NDksIDAsIDY4MTM1LCA5MTc1NzYsIDc3OTQ2LCAwLCA2OTY3OSwgNjk2ODQsIDk4OTAsIDc4NTYxLCAxMjk3MSwgCi0gICAgNzg0NTMsIDkyNTU2LCA3Mzg5OCwgMTE5NzksIDAsIDExODkwMCwgOTE3ODk0LCAwLCA5NjM1LCAxMjYwMCwgODg3MSwgMCwgCi0gICAgMCwgMCwgNjQ2OSwgNzQyMjcsIDAsIDY1MzA0LCA0Njc5LCAxMDIzMCwgNjQzMDAsIDY0ODY3LCAzNDI3LCA0MjQwLCAwLCAwLCAKLSAgICAwLCAwLCA0MjkxNiwgMCwgMCwgMCwgNzI4MiwgNzg3MjgsIDY1NzMzLCA0NDQ1LCAxMjcxMzgsIDEyODA4MiwgMzQ5NCwgCi0gICAgNzQ2MDYsIDY1NTUsIDAsIDc3OTc2LCAwLCAwLCA3ODU2NiwgMCwgMCwgNjU4OTgsIDAsIDY1MzEyLCA1NDQ3LCAwLCAKKyAgICA0MjQ1MiwgNzgzMzEsIDEyMDY2NCwgNzg0NDUsIDAsIDEwNzIsIDc4NDU3LCA3ODQ1MiwgNzg0NTQsIDY1NzYsIDQxOTg4LCAKKyAgICA0MTEzMiwgNjU2NzUsIDEwODAsIDEyMDAwMiwgOTg4NiwgNTUyMjUsIDExMDEsIDY4NDA0LCAxMjMwOSwgNTUyMjcsIDAsIAorICAgIDEyNjMyLCAxMDg2LCAxODY5LCA3ODY4NSwgNzY4MCwgMCwgNjU0NTgsIDEyMDcxNCwgMTI2MzksIDMzODAsIDgxMjMsIAorICAgIDEwOTEsIDEyNjM4LCA3OTc3LCA0NTAxLCA0MTA5OSwgMCwgNjYzMDksIDAsIDAsIDE0OTQsIDk4MzE0NiwgMTI2NjEzLCAwLCAKKyAgICAxMTY5MywgMTI2NTEzLCAxMDQ5NCwgOTI2NTUsIDY1ODcyLCAxMjM2MywgMTEzODYsIDAsIDAsIDAsIDAsIDY0NTgyLCAwLCAKKyAgICA3Mzc5NCwgMCwgODAyMiwgMCwgMTIwNDYyLCA3NDEwNiwgMTI0MTMsIDk0MDY5LCA5MTc5OTQsIDkxNzk5MywgOTE3OTk1LCAKKyAgICA1NTcwLCAxODgxLCA3MjEwLCAwLCAxMDEyLCA0Mzc1MiwgMCwgMTIwNzA5LCA3MjA4LCA2NjQ0MiwgNTU2OSwgOTgzMjM2LCAKKyAgICA0MjMzOSwgMCwgNjA2MywgMCwgNzgzODMsIDExOTU5NCwgNjA1MywgNjU2MDIsIDAsIDkyMjAxLCA2NDcyNywgOTE2MCwgCisgICAgMTk0ODI3LCAwLCAwLCA5MjE4MCwgMTA1MDMsIDExODgxMCwgNjA1NSwgMzg3MCwgNDI3OSwgODQ5MCwgMTIwMTE0LCA0MzE5LCAKKyAgICA2NDc4NiwgODYwMiwgMTIwMTEwLCAxMTMyNiwgOTIyMDQsIDk4MzExNiwgMCwgMTIwMTE5LCA3ODMzMywgMTIwMTE3LCAKKyAgICAxMjAxMTgsIDEyMDA5OSwgMTIwMTAwLCA2NTA4NywgNTU3MSwgMzY3NCwgOTc0MCwgOTEyMSwgNTU2OCwgMTIwMTA3LCAKKyAgICAxMjAxMDgsIDQyMDg1LCAxMDEwNywgNDIxNTksIDQyODcwLCAxMjAxMDEsIDU4OSwgNzA1MCwgOTgzNzkxLCA0MzI4MSwgCisgICAgMTAyMzMsIDQxMjYzLCA2NjI1MSwgNjU3MjksIDY2MjUzLCAxMjY0OTcsIDc0MDk5LCA0MjY0NSwgMCwgMTk0ODE1LCA4NTgzLCAKKyAgICAwLCA1ODQ3LCA2OTI4LCAxMjgwNzQsIDAsIDAsIDAsIDAsIDY2NTkyLCAxMjIwNCwgOTE3OTYyLCAxOTk2NiwgNzc4NTYsIAorICAgIDQyNTYxLCAxMjA2MjYsIDk4MzI0NSwgMCwgODEyMCwgMTIwNzAxLCAwLCAwLCAxMjgwMTIsIDQxMDYzLCAwLCAxMDY2NCwgMCwgCisgICAgODM2OSwgMCwgNDU1MSwgMTk0OTY0LCAzMzY5LCAwLCAwLCA5NjczLCA2NjMzNCwgNjU1ODAsIDEwNDc4LCAxMTg5NjAsIAorICAgIDEyNTE3LCA1NTcsIDk0NTcsIDEyMDM0LCA5ODM2NjIsIDYzNTUsIDEyNTE5LCA0MTAwNCwgMCwgMTk1MDI1LCA3NDA5NCwgMCwgCisgICAgMCwgNzc5NzAsIDk4MzU2MCwgMCwgMTI4MTc1LCAxMjExMSwgMzkyNywgMCwgMTI1MTUsIDE0NzQsIDY3ODkzLCA1NDkyLCAKKyAgICA2OTIzLCA5MjI4MSwgMTA0NDEsIDczODM2LCAwLCA0Mzk5MCwgNTQ5MywgMCwgNzQzMTksIDAsIDY2NjM1LCAxMjAxOSwgMCwgCisgICAgMTYxOCwgMCwgMTIwNDc0LCA5NjQ1LCAxMDQzMCwgOTE3OTU5LCA1ODUzLCAxMzA2MywgMTAzNjMsIDAsIDEyOTU2LCAKKyAgICAxMjgxNjksIDEyMDcyOSwgMTEzMTQsIDkxNzU4MiwgMTIwNjAsIDAsIDc4MzkyLCAxMjgyNiwgNjMyOSwgMCwgMTA1MTQsIAorICAgIDY1NTE3LCA3NDM5NSwgMjcwNywgODMwOSwgMCwgMTI3MDU0LCA3ODM5OCwgNDM1NzAsIDI2OTcsIDQzNDIwLCA3ODM5NiwgCisgICAgMTI3MDU3LCAyNjk1LCA0MjE3MSwgMCwgMCwgMCwgNjc2MTcsIDExODk3MSwgMCwgMjY5MywgMTIxMjUsIDEyNzY2LCAwLCAKKyAgICAxMTY0LCAxMjg4MTcsIDAsIDQxOTE4LCA5ODMxNjgsIDEyNzU0MiwgODY4NywgNjYwMDksIDEyMTc4LCA3MDUzLCAxMjgwMDEsIAorICAgIDc0NjksIDAsIDUyNDgsIDEyMjE4LCAxMjA1MzgsIDY0MjcsIDQyODg0LCA0MTEyMywgMCwgMCwgNDI4NzMsIDQxMTI2LCAKKyAgICA5OTkxLCA0MTEyOCwgNzQzNzEsIDEyNzAzMSwgMCwgOTg3MywgMCwgNDI4NzcsIDc5OTQsIDY0NzYyLCAyMDUzLCA0Mjg0MywgCisgICAgNjU5MSwgOTM0MCwgMCwgMTU4OSwgMCwgMjk2LCA3NDQzOCwgNzg4NTIsIDAsIDY3ODQxLCA3NDM3MCwgMCwgODkyMiwgCisgICAgMTI4MDY4LCA3NDYwMCwgMTI3MDAsIDc0ODM2LCAwLCAxMjU3OSwgMCwgMTI1NzUsIDY0MTYsIDU2NTYsIDI4OTEsIDEzMjYyLCAKKyAgICA2NTU5MCwgNTI5OSwgMCwgMTE0NzMsIDU0NDksIDEyNTIsIDAsIDc4NDA0LCA0MTQzMSwgNzQzNjksIDY1MzczLCA1Mjk1LCAKKyAgICA5MTc1NjksIDc0MTE0LCAxMjIzLCAxNjQyLCAxNzQsIDc4Mzk5LCA4ODMsIDQxNjEsIDEyNjkxLCA0MjYwMywgNDE0MTMsIAorICAgIDMyMTIsIDQxNDU5LCAzMjExLCA3NDgxMCwgNDE0MjUsIDEyNzAyOSwgNzg0MTIsIDc0NDUwLCA5NzI4LCAzODQ2LCA4MDcwLCAKKyAgICA2MTUwLCA2NjM2LCA0MzcwLCAwLCAwLCA3NDE3OCwgNzQ1ODcsIDc0MTE3LCAwLCAwLCAwLCA0OTg2LCAxMjE4OSwgMCwgCisgICAgNjc2NDgsIDEyMDQ5OSwgOTQwMDEsIDQyNTcsIDEyMTA0LCA3Nzk0MiwgNjIyMCwgOTAwNCwgNjU1NjEsIDAsIDc3OTQ5LCAwLCAKKyAgICA2ODEzNSwgOTE3NTc2LCA3Nzk0NiwgMCwgNjk2NzksIDY5Njg0LCA5ODkwLCA3ODU2MSwgMTI5NzEsIDc4NDUzLCA5MjU1NiwgCisgICAgNzM4OTgsIDExOTc5LCA3MDA1MSwgMTE4OTAwLCA5MTc4OTQsIDAsIDk2MzUsIDEyNjAwLCA4ODcxLCAwLCAwLCAwLCA2NDY5LCAKKyAgICA3NDIyNywgMCwgNjUzMDQsIDQ2NzksIDEwMjMwLCA2NDMwMCwgNjQ4NjcsIDM0MjcsIDQyNDAsIDAsIDAsIDAsIDAsIAorICAgIDQyOTE2LCAwLCAwLCAwLCA3MjgyLCA3ODcyOCwgNjU3MzMsIDQ0NDUsIDEyNzEzOCwgMTI4MDgyLCAzNDk0LCA3NDYwNiwgCisgICAgNjU1NSwgMCwgNzc5NzYsIDAsIDAsIDc4NTY2LCAwLCA5ODMxODksIDY1ODk4LCA5ODMyMzgsIDY1MzEyLCA1NDQ3LCAwLCAKICAgICAxMjg5NSwgNjU1OTMsIDQwMTAsIDAsIDQxMTA2LCAwLCA2NDQ0OCwgMCwgNDExMDUsIDAsIDY1ODIwLCA2MjMyLCAwLCAKICAgICAxMjgyODAsIDAsIDQzNjA4LCAxMTkwOTEsIDAsIDY1MzgsIDQzMzUsIDc4MzY0LCAzOTQxLCA0MTEyMiwgMTEwNjEsIAotICAgIDc4MzYzLCA2NDg5MiwgOTExMywgMTk1NCwgMTIxNTUsIDAsIDQyODc4LCAxMTUwMCwgMCwgMCwgNzQ1NzgsIDAsIDY1ODMyLCAKLSAgICAwLCAwLCAwLCA3Nzk3NSwgMTE5MjMwLCA0NTg2LCAwLCAzNTAsIDEwOTUxLCAwLCA1MDksIDAsIDAsIDkyMzA3LCAwLCAwLCAKLSAgICA1MTMzLCAwLCAwLCA5NTAwLCAwLCA0OTU3LCA2NDc0MSwgMjQyMiwgOTM1NCwgMCwgMCwgMCwgMjQ5NiwgMTE1MTYsIDk0NCwgCi0gICAgMTE4ODUxLCAzODkwLCAxMjE2OCwgMTQzOCwgMCwgMCwgMCwgNDE5NDcsIDEyMjAsIDEyMDgyOCwgMTI4NTU1LCAwLCAwLCAKLSAgICAxNTcxLCA0MjYzMCwgNDE5NDksIDQyODA1LCA4MjcwLCA5NDMsIDU2NCwgMCwgMzEyLCA0MTk4MCwgMCwgMCwgNzgxMjAsIAotICAgIDg4NzcsIDI2OSwgNDQyOSwgNjI3MiwgOTYxNywgMTQ2MCwgNjk1NCwgNzg2NTcsIDQxMTIwLCA2NTEyMSwgMTA4NjIsIAotICAgIDYwNjAsIDQxMTE5LCA0MTQxNiwgNzQzNTUsIDQxNzMsIDAsIDAsIDAsIDE5MDYsIDkxNzk4NiwgMTE1MzIsIDc0MDczLCAwLCAKLSAgICAwLCAxOTg1LCA2Mjk2LCA5NTgyLCA5MTc4OTUsIDY0Mjg3LCAwLCA3ODExNSwgMTE0MjgsIDE3MzAsIDI0NTcsIDAsIAotICAgIDE5OTE4LCAxMDQ2OSwgMCwgMCwgNzcwMywgODg0MCwgODAzNSwgMCwgMCwgOTI0OTEsIDAsIDYxMjksIDAsIDAsIDEyODI2OCwgCi0gICAgMCwgNzg3NCwgODY4MSwgMTE5MDkyLCAwLCAxMzEzNiwgMCwgMCwgNzQyNzgsIDYzODg2LCAxMTg4ODEsIDk2MDUsIDczODkyLCAKLSAgICAxMzIyMCwgMTI4Nzc2LCAxMjAyNzQsIDU1MTQsIDAsIDkyMjgsIDAsIDAsIDAsIDUyNDAsIDk4MTEsIDEwMDEyLCAzMDk2LCAKLSAgICAwLCAwLCAwLCA2NjY3NiwgNjU4NzMsIDAsIDAsIDAsIDk1MDEsIDAsIDEyNzIsIDY0NTM2LCA2NTQ2NSwgNjQ2NTQsIDc0NjcsIAotICAgIDAsIDE0NjcsIDEwMTU4LCAxMDA0MCwgMCwgOTUxOSwgMCwgOTE3ODEyLCAwLCAxMTg4OTksIDEyMTkzLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAxOTkzNSwgMCwgOTIxNjIsIDY5Njc2LCAwLCAwLCAwLCA1Mjc1LCAwLCAwLCA4NjM3LCAwLCAwLCAzNzg5LCA2Mzg4MCwgCi0gICAgMTE0NzEsIDQzNTU0LCA2NTg2MiwgMTE0NzQsIDY2MzMyLCA2NjYwMywgMTI4MTM4LCAyNDI2LCAxMjA0MiwgOTIxOTQsIDAsIAotICAgIDk1MzcsIDM5NjEsIDEyMTE1LCA3Nzk1MywgMjYwNSwgNDUwMCwgNjQ1NjEsIDU1MjI0LCA0OTgxLCAwLCAwLCA2Mzg3NiwgCi0gICAgMTE2NjcsIDQyNjg2LCA3Nzk3MywgNDIzNjIsIDY0Njg2LCA0NDk5LCA0MTY0OSwgNzU4OSwgMCwgMCwgMzIzNywgMCwgCi0gICAgNjgyMTUsIDAsIDg1NDEsIDc4Mjk4LCAwLCA0MTg2NiwgMCwgMCwgMCwgMCwgMCwgNDM1NTUsIDI4MjMsIDk1NTksIDEwMDYwLCAKLSAgICA0MTk0MCwgODI5OSwgNDE5NDUsIDcxMzIsIDQxOTQxLCAzMzA4LCA3MTkwLCA2NDg4MCwgODYxNCwgNjUyMjAsIDQxNDkzLCAKLSAgICAwLCA0MTY5OSwgMTA3NjIsIDQzNzgwLCAxMjk5OSwgMCwgMCwgODEwNiwgNDEyOCwgMCwgMCwgNDQ5NCwgMCwgNDAxMiwgCi0gICAgMTAzOTUsIDAsIDQzNjMzLCA2NTQ0NywgMCwgMCwgMTEwMDQsIDY5NSwgNzM5LCA2OTYsIDc2MTEsIDAsIDQyNzU1LCAKLSAgICA3NDgwMiwgOTIyNywgNzUwNiwgNzUxMCwgOTIyODEsIDY5MSwgNzM4LCA3NTExLCA3NTEyLCA3NTE1LCAzODY4LCA2ODgsIAotICAgIDQxODQ3LCA2OTAsIDI1NDgsIDczNywgOTc0LCA4MDAzLCA3NDA2LCA5MTc5MTEsIDAsIDAsIDM5ODUsIDkxNzkxMiwgCi0gICAgNjU4NjAsIDYzOTIxLCA3MDUxLCA2OTc3NywgNDY4MiwgOTE3ODA1LCAxMjgwOSwgNjQwNiwgNDY4NSwgOTI1MDUsIDEwODc5LCAKLSAgICAxMDM0NywgNDY4MCwgNjM0MSwgMCwgMzg1MSwgODEzMiwgNzQzMjUsIDAsIDkxNzkwNywgMCwgNDE5NTgsIDExOTE3NiwgCi0gICAgOTE3OTA4LCAwLCAwLCA0MjY1NywgOTI0NjgsIDc2NDMsIDQyMzczLCAxMTcxNCwgNjc1ODcsIDQzNTY4LCAwLCAxMTcxNywgCi0gICAgNzY1MCwgMTA1OTQsIDY0OTUxLCA3NjQ3LCA3NjQ5LCAxMjgxNTUsIDc2NDYsIDAsIDc4MDgyLCA5NjUxLCAwLCAzODkxLCAwLCAKLSAgICAwLCAyMzM3LCAxNzM1LCA3NDMyNCwgNjc4NjAsIDIzNjMsIDAsIDAsIDQzNTYxLCAwLCAwLCA3NDE0NiwgMTg2MCwgNzQ5NSwgCi0gICAgNzU4MCwgNTgxMiwgNzQ5NywgNzU4NCwgMTE5MTQwLCAxMjc4NTMsIDAsIDEyMDM0NywgNzcyNywgMCwgODQ5OCwgNjk4MTgsIAotICAgIDg5NDksIDMwNjUsIDQyNzE5LCA3MTM1LCAxNTY5LCA5MjM3NSwgMTI1MzQsIDEyMTI0LCA3NjkwLCAwLCAxMjUzMywgMCwgCi0gICAgNjQxOCwgNDU0MywgNzgwODYsIDY5NjksIDAsIDc0ODAwLCAwLCAwLCAxMTk4MCwgMTI4NjUwLCAwLCA2Mzg5NCwgMTIwNzYwLCAKLSAgICAxMjI4MiwgNjYxOTIsIDAsIDc0NTkyLCA4ODUwLCA3NDI3NSwgOTIzOCwgMTA2MTcsIDkxNzU0NSwgMCwgOTI2MjUsIDAsIAotICAgIDEyNzkxLCAwLCAwLCAwLCA0NDQ3LCA3MzczMiwgMTI3OTMsIDEyOTAwLCA5MjM3NywgMTA5NTAsIDAsIDc4MDg3LCAxMjc5MCwgCi0gICAgNDE0MDAsIDExOTEyOCwgNjY2MDcsIDEyNzkyLCA0MjIzMiwgMTk0OTM4LCAxNzQ0LCAxMjc4OSwgMTAzNjYsIDEyMzE3LCAKLSAgICA0MTMxMCwgMCwgNDEzOTksIDAsIDAsIDU1MjU4LCAwLCAxMjY5MCwgMCwgMCwgNDM2NzIsIDEyNzg0MCwgNDE2NTIsIDI5NzQsIAotICAgIDkwMTAsIDExMzE1LCAwLCAyNzgsIDAsIDQxNDA1LCAxMTkyNTQsIDAsIDEwMDc3LCA2Mzg1MywgNzQ1NTcsIDQyNTg2LCAwLCAKLSAgICAwLCA2MDAyLCAwLCA0MzU1MywgMCwgNjc5MDMsIDAsIDEyNzg3LCA0MTMwOCwgNzkzNCwgNjUzMDYsIDAsIDAsIDAsIDg2NDYsIAotICAgIDAsIDc3ODI5LCAwLCAwLCA2NDEzLCA2NTUwLCAwLCAxOTQwLCAwLCA0MzYzNywgMjIwLCA2NTE5MywgNDM1NTEsIDEwNjc4LCAKLSAgICAxMDA0NCwgMCwgMCwgMCwgNjg2NTksIDY0MDMsIDU3MDcsIDEwMzkzLCAxMjc1MzIsIDAsIDY2NjE0LCAwLCAwLCAwLCAKKyAgICA3ODM2MywgNjQ4OTIsIDkxMTMsIDE5NTQsIDEyMTU1LCA5ODM2NjUsIDQyODc4LCAxMTUwMCwgMCwgMCwgNzQ1NzgsIDAsIAorICAgIDY1ODMyLCAwLCAwLCAwLCA3Nzk3NSwgMTE5MjMwLCA0NTg2LCAwLCAzNTAsIDEwOTUxLCAwLCA1MDksIDAsIDAsIDkyMzA3LCAKKyAgICAwLCAwLCA1MTMzLCAwLCAwLCA5NTAwLCAwLCA0OTU3LCA2NDc0MSwgMjQyMiwgMjIxMiwgOTgzMDgwLCAwLCAwLCAyNDk2LCAKKyAgICAxMTUxNiwgOTQ0LCAxMTg4NTEsIDM4OTAsIDEyMTY4LCAxNDM4LCAwLCA5ODMxMTcsIDAsIDQxOTQ3LCAxMjIwLCAxMjA4MjgsIAorICAgIDEyODU1NSwgMCwgMCwgMTU3MSwgNDI2MzAsIDQxOTQ5LCA0MjgwNSwgODI3MCwgOTQzLCA1NjQsIDAsIDMxMiwgNDE5ODAsIAorICAgIDk4MzkzNSwgMCwgNzgxMjAsIDg4NzcsIDI2OSwgNDQyOSwgNjI3MiwgOTYxNywgMTQ2MCwgNjk1NCwgNzg2NTcsIDQxMTIwLCAKKyAgICA2NTEyMSwgMTA4NjIsIDYwNjAsIDQxMTE5LCA0MTQxNiwgNzQzNTUsIDQxNzMsIDAsIDAsIDAsIDE5MDYsIDkxNzk4NiwgCisgICAgMTE1MzIsIDc0MDczLCAxMjczMzgsIDAsIDE5ODUsIDYyOTYsIDk1ODIsIDkxNzg5NSwgNjQyODcsIDAsIDc4MTE1LCAKKyAgICAxMTQyOCwgMTczMCwgMjQ1NywgOTE3ODA4LCAxOTkxOCwgMTA0NjksIDAsIDAsIDc3MDMsIDg4NDAsIDgwMzUsIDAsIDAsIAorICAgIDkyMjMwLCAwLCA2MTI5LCAwLCAxMjg1MjgsIDEyODI2OCwgMCwgNzg3NCwgODY4MSwgMTE5MDkyLCAwLCAxMzEzNiwgMCwgMCwgCisgICAgNzAxMDIsIDYzODg2LCAxMTg4ODEsIDk2MDUsIDcxMzA4LCAxMzIyMCwgMTI4Nzc2LCAxMjAyNzQsIDU1MTQsIDAsIDkyMjgsIAorICAgIDAsIDAsIDAsIDUyNDAsIDk4MTEsIDEwMDEyLCAzMDk2LCAwLCAwLCA5ODMzNDMsIDY2Njc2LCA2NTg3MywgMCwgMCwgMCwgCisgICAgOTUwMSwgMCwgMTI3MiwgNjQ1MzYsIDY1NDY1LCA2NDY1NCwgNzQ2NywgMCwgMTQ2NywgMTAxNTgsIDEwMDQwLCAwLCA5NTE5LCAKKyAgICAwLCA5MTc4MTIsIDAsIDExODg5OSwgMTIxOTMsIDAsIDAsIDAsIDAsIDk4MzM0NSwgMTk5MzUsIDAsIDkyMTYyLCA2OTY3NiwgCisgICAgMCwgMCwgMCwgNTI3NSwgMCwgMCwgODYzNywgMCwgMCwgMzc4OSwgNjM4ODAsIDExNDcxLCA0MzU1NCwgNjU4NjIsIDExNDc0LCAKKyAgICA2NjMzMiwgNjY2MDMsIDEyODEzOCwgMjQyNiwgMTIwNDIsIDkyMTk0LCA5ODM5MDIsIDk1MzcsIDM5NjEsIDEyMTE1LCAKKyAgICA3Nzk1MywgMjYwNSwgNDUwMCwgNjQ1NjEsIDU1MjI0LCA0OTgxLCAwLCAwLCA2Mzg3NiwgMTE2NjcsIDQyNjg2LCA3Nzk3MywgCisgICAgNDIzNjIsIDY0Njg2LCA0NDk5LCA0MTY0OSwgNzU4OSwgMCwgMCwgMzIzNywgMCwgNjgyMTUsIDkxNzkwNCwgODU0MSwgCisgICAgNzgyOTgsIDcwMDM0LCA0MTg2NiwgMCwgMCwgMCwgMCwgNjk5MjQsIDQzNTU1LCAyODIzLCA5NTU5LCAxMDA2MCwgNDE5NDAsIAorICAgIDgyOTksIDQxOTQ1LCA3MTMyLCA0MTk0MSwgMzMwOCwgNzE5MCwgNjQ4ODAsIDg2MTQsIDY1MjIwLCA0MTQ5MywgMCwgCisgICAgNDE2OTksIDEwNzYyLCA0Mzc4MCwgMTI5OTksIDAsIDAsIDgxMDYsIDQxMjgsIDAsIDYyNzQsIDQ0OTQsIDAsIDQwMTIsIAorICAgIDEwMzk1LCA5ODM1OTEsIDQzNjMzLCA2NTQ0NywgMTI2NTExLCAwLCAxMTAwNCwgNjk1LCA3MzksIDY5NiwgNzYxMSwgMCwgCisgICAgNDI3NTUsIDc0ODAyLCA5MjI3LCA3NTA2LCA3NTEwLCA2OTkzNywgNjkxLCA3MzgsIDc1MTEsIDc1MTIsIDc1MTUsIDM4NjgsIAorICAgIDY4OCwgNDE4NDcsIDY5MCwgMjU0OCwgNzM3LCA5NzQsIDgwMDMsIDc0MDYsIDkxNzkxMSwgMCwgMTI4Njg4LCAzOTg1LCAKKyAgICA5MTc5MTIsIDY1ODYwLCA2MzkyMSwgNzA1MSwgNjk3NzcsIDQ2ODIsIDkxNzgwNSwgMTI4MDksIDY0MDYsIDQ2ODUsIAorICAgIDkyNTA1LCAxMDg3OSwgMTAzNDcsIDQ2ODAsIDYzNDEsIDAsIDM4NTEsIDgxMzIsIDc0MzI1LCAwLCA5MTc5MDcsIDAsIAorICAgIDQxOTU4LCAxMTkxNzYsIDkxNzkwOCwgMCwgMCwgNDI2NTcsIDkyNDY4LCA3NjQzLCA0MjM3MywgMTE3MTQsIDY3NTg3LCAKKyAgICA0MzU2OCwgOTgzMTc1LCAxMTcxNywgNzY1MCwgMTA1OTQsIDY0OTUxLCA3NjQ3LCA3NjQ5LCAxMjgxNTUsIDc2NDYsIDAsIAorICAgIDc4MDgyLCA5NjUxLCAwLCAzODkxLCAwLCAwLCAyMzM3LCAxNzM1LCA3NDMyNCwgNjc4NjAsIDIzNjMsIDk4MzEzNSwgMCwgCisgICAgNDM1NjEsIDAsIDAsIDc0MTQ2LCAxODYwLCA3NDk1LCA3NTgwLCA1ODEyLCA3NDk3LCA3NTg0LCAxMTkxNDAsIDEyNzg1MywgCisgICAgMCwgMTIwMzQ3LCA3NzI3LCAwLCA4NDk4LCA2OTgxOCwgODk0OSwgMzA2NSwgNDI3MTksIDcxMzUsIDE1NjksIDkyMzc1LCAKKyAgICAxMjUzNCwgMTIxMjQsIDc2OTAsIDAsIDEyNTMzLCA5ODM4NzAsIDY0MTgsIDQ1NDMsIDc4MDg2LCA2OTY5LCAwLCA3NDgwMCwgCisgICAgMCwgNjc5NzQsIDExOTgwLCAxMjg2NTAsIDk4Mzc5MiwgNjM4OTQsIDEyMDc2MCwgMTIyODIsIDY2MTkyLCAwLCA3NDU5MiwgCisgICAgODg1MCwgNzQyNzUsIDkyMzgsIDEwNjE3LCA5MTc1NDUsIDAsIDkyNjI1LCAwLCAxMjc5MSwgMCwgMCwgMTI3ODQzLCA0NDQ3LCAKKyAgICA3MzczMiwgMTI3OTMsIDEyOTAwLCA5MjM3NywgMTA5NTAsIDAsIDc4MDg3LCAxMjc5MCwgNDE0MDAsIDExOTEyOCwgNjY2MDcsIAorICAgIDEyNzkyLCA0MjIzMiwgMTk0OTM4LCAxNzQ0LCAxMjc4OSwgMTAzNjYsIDEyMzE3LCA0MTMxMCwgOTgzODYwLCA0MTM5OSwgMCwgCisgICAgMCwgNTUyNTgsIDAsIDEyNjkwLCAwLCAwLCA0MzY3MiwgMTI3ODQwLCA0MTY1MiwgMjk3NCwgOTAxMCwgMTEzMTUsIDAsIAorICAgIDI3OCwgMCwgNDE0MDUsIDExOTI1NCwgMCwgMTAwNzcsIDYzODUzLCA3NDU1NywgNDI1ODYsIDAsIDAsIDYwMDIsIDAsIAorICAgIDQzNTUzLCAwLCA2NzkwMywgMCwgMTI3ODcsIDQxMzA4LCA3OTM0LCA2NTMwNiwgMCwgMCwgMCwgODY0NiwgOTgzMTg2LCAKKyAgICA3NzgyOSwgNzEzNjAsIDAsIDY0MTMsIDY1NTAsIDAsIDE5NDAsIDAsIDQzNjM3LCAyMjAsIDY1MTkzLCA0MzU1MSwgMTA2NzgsIAorICAgIDEwMDQ0LCAxMjgzMjIsIDAsIDAsIDY4NjU5LCA2NDAzLCA1NzA3LCAxMDM5MywgMTI3NTMyLCAwLCA2NjYxNCwgMCwgMCwgMCwgCiAgICAgMTAyOTcsIDAsIDM3NDIsIDAsIDM5NTksIDAsIDAsIDAsIDI0NjcsIDAsIDYwMDMsIDYzODQ0LCA2NjYzLCA4MDQwLCAwLCAKLSAgICA2Mzg0NSwgNDE4MiwgNzgxNzEsIDQ2NzYsIDEyMDUwMSwgMCwgMCwgMjUxMCwgMCwgMTAyMDgsIDc4MTY4LCA5MjM2MSwgCi0gICAgMTE1NDAsIDQzNTQ2LCA2NjkyLCAwLCA0MTA2MCwgMCwgMCwgOTA4MywgMCwgMCwgNzgxNDQsIDE1NTksIDYzODMxLCA5Njc3LCAKLSAgICAxMjAyNjAsIDAsIDY1MjU2LCAwLCA3NDA3MCwgMCwgMCwgMzY1LCAxMjA1NiwgNDMwMjcsIDEyMDQyMywgNDE3MTYsIAorICAgIDQzNzU4LCA0MTgyLCA3ODE3MSwgNDY3NiwgMTIwNTAxLCAwLCAwLCAyNTEwLCAwLCAxMDIwOCwgNzgxNjgsIDkyMzYxLCAKKyAgICAxMTU0MCwgNDM1NDYsIDY2OTIsIDAsIDQxMDYwLCAwLCA0NjY4LCA5MDgzLCAwLCAwLCA3ODE0NCwgMTU1OSwgNjM4MzEsIAorICAgIDk2NzcsIDEyMDI2MCwgMCwgNjUyNTYsIDAsIDc0MDcwLCAwLCAwLCAzNjUsIDEyMDU2LCA0MzAyNywgMTIwNDIzLCA0MTcxNiwgCiAgICAgMTI4MjM2LCAwLCAxMjA0NzIsIDU1MTYsIDI4NDUsIDc3MTcsIDgwMzYsIDQxNzE3LCA3MzgyNywgNTQ0LCAxMjA0NSwgCi0gICAgNjI3OCwgMCwgNTUxNSwgMCwgMCwgMCwgNjUzMzksIDQzMjIxLCA2NTE5NCwgMCwgNTUxNywgMCwgMCwgNzQ4NDEsIDY3ODg0LCAKLSAgICAwLCA2Nzg5MCwgNjc4ODUsIDY3ODgwLCA2Nzg4MSwgNjc4ODIsIDY3ODgzLCAwLCAwLCA2Nzg3OSwgMTI3MTg4LCAxOTAyLCAKLSAgICA2Nzg4NywgOTYzOCwgMTI5NzYsIDAsIDEyNDgzLCAxMjM2OCwgNDE3NjksIDQyNzI2LCA0MTc2NSwgMTI4ODE5LCA2NjY3LCAKLSAgICA2Nzg3NCwgNzU1NiwgNjc4NzgsIDc0MzUxLCAxMTI2NCwgOTg5LCA0MjY3NywgNjc4ODksIDAsIDEzMTEsIDkxNzk2NiwgCi0gICAgNDMyNiwgMTEwMDAsIDYzODI0LCAxMzA2OCwgMTA5MzIsIDEyODg4MCwgNjkxNywgNzgxNTUsIDAsIDk0OSwgNzgxNjIsIDAsIAotICAgIDYxNDgsIDg2MDUsIDQyMjUzLCA3ODE3NywgMCwgMCwgNDI3MTUsIDAsIDAsIDAsIDYzODcxLCAwLCA0MTc5NiwgMTI2OSwgCi0gICAgNjUzMCwgMCwgNjUwNTcsIDAsIDUxNDQsIDEyMjIxLCA0MjcxNiwgMCwgNDQzMSwgNDMzMSwgMCwgMTI4Njc1LCA0MTgzNCwgCi0gICAgNTI3OSwgMCwgMTAzMzYsIDgzMTIsIDAsIDQyNzAxLCAxMjg4MjUsIDAsIDc4MTY1LCA2NjAzNiwgMCwgMCwgNjQyOCwgCi0gICAgNDIyNzAsIDAsIDAsIDQzMDU5LCA0MjY2NiwgNTI1NiwgMTA2NywgMjU1LCAxMjEzMSwgMCwgOTQ5MywgMCwgNDEwMTQsIAotICAgIDExNzkzLCAwLCAwLCA3NDM5NCwgNDM0NjAsIDEwNjUzLCA0MjcyMywgMCwgMTE5NjMyLCAwLCA2NTYwLCA3MDE2LCA3NDI3NCwgCi0gICAgMCwgNDM1NTYsIDM5MjksIDczOTAwLCA2NjE0LCAyNzY4LCA5MjUwNCwgOTc0NiwgNTEzNSwgMTE4MTEsIDEyNzk2LCAKLSAgICAxMTk1MywgMCwgNjk3NjEsIDUxMzksIDM0NiwgNzQzMDMsIDYzMDUsIDEyNzk1LCA0Njc1LCA1MTY4LCA3ODU1MiwgCi0gICAgMTI3NzUzLCA3NDMxNSwgNzQzNjEsIDgyNTMsIDg4MTcsIDExMzYsIDAsIDQzNTYzLCA5MjIzMiwgMCwgMTk0NzUwLCA3MzkyLCAKLSAgICA4MjMwLCA5MzY1LCAwLCAwLCAwLCAwLCAwLCA0MDQxLCAwLCAyMzU3LCA0MzI0MCwgMTI3ODYsIDIyOSwgMTE5ODg1LCAKLSAgICAxMTk4ODQsIDQ0MDA0LCA3MTQyLCAxMTk4ODEsIDEyMzUwLCA2NTU1NCwgMTE5ODgyLCAxMTk4NzcsIDExOTg3NiwgMTI3ODUsIAotICAgIDYzODYzLCA0Mzc5NSwgNzc3MCwgMTA3MTIsIDY0ODUzLCAxMjY4NiwgMTE4OTE2LCA0MjM3NSwgMCwgMTI3MjM4LCA2NjM1MiwgCi0gICAgMTA0NzAsIDAsIDExMDU5LCAxMDc5MSwgOTE3OTQ0LCA0NTAsIDAsIDAsIDEwNDMyLCAxMjA5NywgNTQ1MCwgNjQ2OTEsIAotICAgIDEyMzMsIDAsIDQ0MDA5LCA3ODI4NCwgNjYzMzgsIDAsIDAsIDE4MzksIDExODc5OSwgMCwgMTA5MjcsIDE3MDEsIDAsIAorICAgIDYyNzgsIDAsIDU1MTUsIDAsIDAsIDk4MzA1MSwgNjUzMzksIDQzMjIxLCAyMjExLCAwLCA1NTE3LCAwLCAwLCA3NDg0MSwgCisgICAgNjc4ODQsIDAsIDY3ODkwLCA2Nzg4NSwgNjc4ODAsIDY3ODgxLCA2Nzg4MiwgNjc4ODMsIDAsIDAsIDY3ODc5LCAxMjcxODgsIAorICAgIDE5MDIsIDY3ODg3LCA5NjM4LCAxMjk3NiwgMTI2NTQ2LCAxMjQ4MywgMTIzNjgsIDQxNzY5LCA0MjcyNiwgNDE3NjUsIAorICAgIDczNjEsIDY2NjcsIDY3ODc0LCA3NTU2LCA2Nzg3OCwgNzQzNTEsIDExMjY0LCA5ODksIDQyNjc3LCA2Nzg4OSwgMCwgMTMxMSwgCisgICAgOTE3OTY2LCA0MzI2LCAxMTAwMCwgNjM4MjQsIDEzMDY4LCAxMDkzMiwgMTI4ODgwLCA2OTE3LCA3ODE1NSwgMCwgOTQ5LCAKKyAgICA3ODE2MiwgMCwgNjE0OCwgODYwNSwgNDIyNTMsIDc4MTc3LCAwLCAwLCA0MjcxNSwgMCwgMCwgMCwgNjM4NzEsIDAsIAorICAgIDQxNzk2LCAxMjY5LCA2NTMwLCAwLCA2NTA1NywgMCwgNTE0NCwgMTIyMjEsIDQyNzE2LCAwLCA0NDMxLCA0MzMxLCAKKyAgICA5ODM3MjAsIDEyODY3NSwgNDE4MzQsIDUyNzksIDAsIDEwMzM2LCA4MzEyLCAwLCA0MjcwMSwgMTI4ODI1LCAwLCA3ODE2NSwgCisgICAgNjYwMzYsIDAsIDAsIDY0MjgsIDQyMjcwLCAwLCA5ODM1OTYsIDQzMDU5LCA0MjY2NiwgNTI1NiwgMTA2NywgMjU1LCAKKyAgICAxMjEzMSwgOTgzNzEzLCA5NDkzLCA5ODM5NTksIDQxMDE0LCAxMTc5MywgMTk0OTIwLCAwLCA3NDM5NCwgNDM0NjAsIAorICAgIDEwNjUzLCA0MjcyMywgOTgzODQ1LCAxMTk2MzIsIDAsIDY1NjAsIDcwMTYsIDc0Mjc0LCA5ODM2MTUsIDQzNTU2LCAzOTI5LCAKKyAgICA2Nzk3NywgNjYxNCwgMjc2OCwgOTI1MDQsIDk3NDYsIDUxMzUsIDExODExLCAxMjc5NiwgMTE5NTMsIDAsIDY5NzYxLCAKKyAgICA1MTM5LCAzNDYsIDc0MzAzLCA2MzA1LCAxMjc5NSwgNDY3NSwgNTE2OCwgNzg1NTIsIDEyNzc1MywgNzQzMTUsIDc0MzYxLCAKKyAgICA4MjUzLCA4ODE3LCAxMTM2LCAwLCA0MzU2MywgOTIyMzIsIDAsIDE5NDc1MCwgNzM5MiwgODIzMCwgOTM2NSwgMCwgMCwgCisgICAgOTgzNjA3LCAwLCAwLCA0MDQxLCAwLCAyMzU3LCA0MzI0MCwgMTI3ODYsIDIyOSwgMTE5ODg1LCAxMTk4ODQsIDQ0MDA0LCAKKyAgICA3MTQyLCAxMTk4ODEsIDEyMzUwLCA2NTU1NCwgMTE5ODgyLCAxMTk4NzcsIDExOTg3NiwgMTI3ODUsIDYzODYzLCA0Mzc5NSwgCisgICAgNzc3MCwgMTA3MTIsIDY0ODUzLCAxMjY4NiwgMTE4OTE2LCA0MjM3NSwgMCwgMTI3MjM4LCA2NjM1MiwgMTA0NzAsIDAsIAorICAgIDExMDU5LCAxMDc5MSwgOTE3OTQ0LCA0NTAsIDExOTMyOCwgMCwgMTA0MzIsIDEyMDk3LCA1NDUwLCA2NDY5MSwgMTIzMywgMCwgCisgICAgNDQwMDksIDc4Mjg0LCA2NjMzOCwgMCwgMCwgMTgzOSwgMTE4Nzk5LCA5ODMyMTcsIDEwOTI3LCAxNzAxLCA5ODM2NTUsIAogICAgIDIzODgsIDQxNzQ5LCA0MTc2MSwgNTQ1MywgODM2MSwgMTE5ODY1LCA0MTc1OCwgNTQ0NCwgNDE3NjMsIDY0ODg5LCA3MTQzLCAKLSAgICA5MjQ5MywgNzg2NzcsIDAsIDkyNDI5LCA3ODE3NCwgNjY0MzIsIDg4MDEsIDMwNTMsIDQzNDAsIDAsIDAsIDY1ODEyLCAKLSAgICA5MTc4MzEsIDAsIDQxODI0LCAwLCAxMjAyMDMsIDE5NDgwMCwgMTk0ODAzLCA0MjcwMCwgMTk0ODA1LCAxMjc5ODAsIAorICAgIDkyNDkzLCA3ODY3NywgMCwgOTI0MjksIDc4MTc0LCA2NjQzMiwgODgwMSwgMzA1MywgNDM0MCwgOTgzMDQ0LCAwLCA2NTgxMiwgCisgICAgOTE3ODMxLCAwLCA0MTgyNCwgNjc5ODUsIDEyMDIwMywgMTk0ODAwLCAxOTQ4MDMsIDQyNzAwLCAxOTQ4MDUsIDEyNzk4MCwgCiAgICAgMTk0ODA3LCA3ODY3NiwgOTIzNTYsIDE5NDgwOCwgMCwgMCwgNDQ5MywgNDMzNiwgMCwgMjMxNCwgNDM2MDIsIDc4ODI2LCAKLSAgICAxMTkzMjUsIDE5NDgxMSwgNDI0MzksIDY0NjM4LCA0MjMyNywgNDM1MjgsIDQ0ODksIDE5NDc5MSwgMCwgMTk0NzkzLCAKLSAgICAxOTEyLCA0MjM4NSwgMTAzMDYsIDEwMzcwLCAwLCAwLCA4ODY3LCAxMDI1MCwgMTAyNTgsIDI3MTIsIDE2MzUsIDc4ODIxLCAKLSAgICAxNDEwLCA5MjY3MSwgMCwgMTE4ODc4LCAwLCAwLCA5OTE5LCAwLCA1NTksIDEyODE1NywgNDE4MjUsIDEyNzk3NSwgNzgxODgsIAotICAgIDQ4OTIsIDc0MDE2LCAxOTQ3ODEsIDY1NDIsIDQxOTU3LCAxMjg4NjUsIDU3NzcsIDAsIDc1OSwgNjU3NDksIDIwNzksIAotICAgIDY1MjQ4LCAxMjc4OCwgNjQ0ODcsIDY0NTUyLCAwLCAxMDIyMywgNDIwNjIsIDAsIDAsIDAsIDM2NjgsIDY1NzU0LCA0MzU2MCwgCi0gICAgMTIyMjYsIDAsIDY1MTQ5LCAyMzQwLCA0MTk1OSwgMTk0Nzg2LCAxOTQ3ODUsIDE5NDc4OCwgNDM2MTgsIDY1NzQ3LCAKLSAgICAxMDkzNywgMjk2MiwgMCwgMjMyMSwgMzU4NywgNjU3NDUsIDkyNDM2LCA4OTIxLCA5OTUyLCAwLCAwLCA0MjcxNCwgOTk1MSwgCi0gICAgNDM0MDksIDE5NDc3MCwgMjk0OSwgNjYwMTIsIDE5NDc3NSwgMTk0Nzc0LCAyOTU4LCA2ODM1OSwgNDE4MjAsIDQzMDM4LCAKLSAgICAyMzk1LCAwLCA5OTc2LCAxMjAwNDMsIDEyMDA1MCwgMTIwMDU4LCA2ODIyMCwgMTI4MTQzLCA0MjgwOSwgNDI4MDcsIDAsIAotICAgIDEyMDA0NiwgMTAxOTgsIDQxNTAsIDY0MzcxLCA4MzE4LCA0MTc5MCwgMCwgNDE4OTgsIDIzNjAsIDQxNzk0LCA5MTc5NDIsIAotICAgIDAsIDEyNzgxOCwgMCwgMCwgMjQxOCwgMCwgMjQxMSwgMTEzMzYsIDc5OSwgNjM4MjMsIDEwMjc2LCAxMDMwOCwgMTAzNzIsIAotICAgIDkxNzU0MSwgNDE3NzIsIDQyODEzLCAyMzE3LCAxMDI2MCwgMTE4OTgwLCA1NTI4NCwgOTIyMDMsIDAsIDEwMzg0LCAwLCAwLCAKLSAgICAwLCA3NzUzLCAyMzUxLCA2NjU1LCA2NDQ4OSwgMCwgMCwgNzc4NzIsIDQ0NDMsIDQyNzc5LCAyMzAsIDAsIDAsIDQzNTQ5LCAKLSAgICA0ODU1LCA0MjE1MCwgNjU3MzksIDU0NDEsIDQxODk2LCAxMDI4OCwgMTAzMjAsIDAsIDg1NSwgNzA0NiwgNjEwOSwgNjUwNDUsIAotICAgIDYzODM5LCA3ODE5OCwgMjA0OSwgMTAwOTgsIDAsIDc0MTQ1LCAxMjc5NDMsIDEwMjY0LCAxMDI4MCwgOTE4NCwgMTAzNzYsIAotICAgIDcwMTMsIDQ0NjcsIDAsIDAsIDAsIDQxODg3LCAwLCA0ODYyLCA5NzM1LCA2NTM3LCAxMjA1OTEsIDc0Mjg2LCAzOTE0LCAKLSAgICA5MjE3OCwgMCwgOTA2NSwgMTI5NjEsIDAsIDAsIDkyMjUzLCAwLCAyODksIDAsIDQ2OTQsIDExNDIwLCA0NjkwLCAwLCAKLSAgICAxMjA1MTQsIDkxNzk3OCwgNDY5MywgMCwgNDI3MjQsIDAsIDQ2ODgsIDEyMDQ1NCwgMCwgMCwgMTE5NjI5LCA4MjM4LCAKLSAgICAzMTEwLCAxMjAxNjIsIDAsIDEyMDE2MywgNjUyOCwgMTI3NTUzLCA0MzAzNSwgMTIwMTYxLCAyMTgsIDAsIDE1MjAsIDAsIAotICAgIDQ3ODYsIDAsIDQzMjI1LCA0NjAyLCAwLCA3ODE2NywgMTAwODgsIDY1NDgsIDAsIDEyMDE1NiwgNDM5NzgsIDg5ODgsIAotICAgIDg4ODgsIDAsIDAsIDAsIDAsIDEwNjY2LCAwLCA3MzkwMiwgNjk3NDAsIDAsIDAsIDk5NzUsIDAsIDExOTkwMiwgNDY4OSwgCi0gICAgODkzMiwgMCwgNjU1NjAsIDExOTIwOSwgNzQ0NDEsIDc4ODEwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMDA2NSwgCi0gICAgODIwNywgMCwgOTI2MTMsIDEyODAxMSwgMCwgNjYyLCAwLCA5MjQ0LCAxOTQ4NjMsIDAsIDExOTI2MSwgMCwgMCwgMCwgMCwgCi0gICAgNDE5MjksIDAsIDAsIDY2Njc0LCA0MTkyNiwgMTIwNDA4LCAxMjA0NDMsIDEwNTEzLCA2NDYzNywgMTk0ODYyLCAwLCA1MiwgCi0gICAgMTMxMTgsIDY0NzUsIDAsIDEyMDM0MSwgMTIwOTUsIDEwMjI1LCA0ODEyLCA5MjU3OCwgMCwgMCwgNzQwODUsIDAsIDM5NzgsIAotICAgIDAsIDkxNzk0NSwgMTI3ODIzLCAxMTU4MiwgMTIwNzYxLCAxMjI4MSwgMCwgNjU0NCwgMTMyNDEsIDAsIDY5NzgyLCAKKyAgICAxMTkzMjUsIDE5NDgxMSwgNDI0MzksIDY0NjM4LCA0MjMyNywgNDM1MjgsIDQ0ODksIDcxMzMxLCAwLCAxOTQ3OTMsIDE5MTIsIAorICAgIDQyMzg1LCAxMDMwNiwgMTAzNzAsIDAsIDAsIDg4NjcsIDEwMjUwLCAxMDI1OCwgMjcxMiwgMTYzNSwgNzg4MjEsIDE0MTAsIAorICAgIDkyNjcxLCA5ODMyNDQsIDExODg3OCwgMCwgMCwgOTkxOSwgMTIwNTI4LCA1NTksIDEyODE1NywgNDE4MjUsIDEyNzk3NSwgCisgICAgNzgxODgsIDQ4OTIsIDc0MDE2LCAxOTQ3ODEsIDY1NDIsIDQxOTU3LCAxMjg4NjUsIDU3NzcsIDAsIDc1OSwgNjU3NDksIAorICAgIDIwNzksIDY1MjQ4LCAxMjc4OCwgNjQ0ODcsIDY0NTUyLCAwLCAxMDIyMywgNDIwNjIsIDAsIDAsIDEyNjU3MywgMzY2OCwgCisgICAgNjU3NTQsIDQzNTYwLCAxMjIyNiwgNjc5OTEsIDY1MTQ5LCAyMzQwLCA0MTk1OSwgMTk0Nzg2LCAxOTQ3ODUsIDE5NDc4OCwgCisgICAgNDM2MTgsIDY1NzQ3LCAxMDkzNywgMjk2MiwgMCwgMjMyMSwgMzU4NywgNjU3NDUsIDkyNDM2LCA4OTIxLCA5OTUyLCAwLCAwLCAKKyAgICA0MjcxNCwgOTk1MSwgNDM0MDksIDE5NDc3MCwgMjk0OSwgNjYwMTIsIDE5NDc3NSwgMTk0Nzc0LCAyOTU4LCA2ODM1OSwgCisgICAgNDE4MjAsIDIzMDAsIDIzOTUsIDEyODU2MywgOTk3NiwgMTIwMDQzLCAxMjAwNTAsIDEyMDA1OCwgNjgyMjAsIDEyODE0MywgCisgICAgNDI4MDksIDQyODA3LCAwLCAxMjAwNDYsIDEwMTk4LCA0MTUwLCA2NDM3MSwgODMxOCwgNDE3OTAsIDY3OTc2LCA0MTg5OCwgCisgICAgMjM2MCwgNDE3OTQsIDkxNzk0MiwgNzEzMTQsIDEyNzgxOCwgMCwgMCwgMjQxOCwgOTgzMDk4LCAyNDExLCAxMTMzNiwgNzk5LCAKKyAgICA2MzgyMywgMTAyNzYsIDEwMzA4LCAxMDM3MiwgOTE3NTQxLCA0MTc3MiwgNDI4MTMsIDIzMTcsIDEwMjYwLCAxMTg5ODAsIAorICAgIDU1Mjg0LCA5MjIwMywgMCwgMTAzODQsIDk4MzIxOCwgMCwgMCwgNzc1MywgMjM1MSwgNjY1NSwgNjQ0ODksIDY5OTMxLCAwLCAKKyAgICA3Nzg3MiwgNDQ0MywgNDI3NzksIDIzMCwgMCwgMCwgNDM1NDksIDQ4NTUsIDQyMTUwLCA2NTczOSwgNTQ0MSwgNDE4OTYsIAorICAgIDEwMjg4LCAxMDMyMCwgMCwgODU1LCA3MDQ2LCA2MTA5LCA2NTA0NSwgNjM4MzksIDc4MTk4LCAyMDQ5LCAxMDA5OCwgMCwgCisgICAgNzQxNDUsIDEyNzk0MywgMTAyNjQsIDEwMjgwLCA5MTg0LCAxMDM3NiwgNzAxMywgNDQ2NywgMCwgMCwgMCwgNDE4ODcsIDAsIAorICAgIDQ4NjIsIDk3MzUsIDY1MzcsIDEyMDU5MSwgNzQyODYsIDM5MTQsIDkyMTc4LCA5Mzk3NiwgOTA2NSwgMTI5NjEsIDAsIDAsIAorICAgIDkyMjUzLCAwLCAyODksIDAsIDQ2OTQsIDExNDIwLCA0NjkwLCAwLCAxMjA1MTQsIDkxNzk3OCwgNDY5MywgNzM4OTMsIAorICAgIDQyNzI0LCAwLCA0Njg4LCAxMjA0NTQsIDAsIDAsIDY3OTk0LCA4MjM4LCAzMTEwLCAxMjAxNjIsIDk4Mzg5OSwgMTIwMTYzLCAKKyAgICA2NTI4LCAxMjc1NTMsIDQzMDM1LCA2OTg5OCwgMjE4LCAwLCAxNTIwLCAwLCA0Nzg2LCAwLCA0MzIyNSwgNDYwMiwgMCwgCisgICAgNzgxNjcsIDEwMDg4LCA2NTQ4LCAwLCAxMjAxNTYsIDQzOTc4LCA4OTg4LCA4ODg4LCAwLCAwLCAwLCAwLCAxMDY2NiwgMCwgCisgICAgNzM5MDIsIDY5NzQwLCAwLCAwLCA5OTc1LCAxMjgwMzksIDExOTkwMiwgNDY4OSwgODkzMiwgMCwgNjU1NjAsIDExOTIwOSwgCisgICAgNzQ0NDEsIDc4ODEwLCAwLCAwLCA2Nzk4NywgMCwgMCwgMCwgNjc5ODksIDAsIDEwMDY1LCA4MjA3LCAwLCA5MjYxMywgCisgICAgMTI4MDExLCAwLCA2NjIsIDAsIDkyNDQsIDE5NDg2MywgMCwgMTE5MjYxLCA5ODM0MjAsIDAsIDAsIDAsIDQxOTI5LCAwLCAwLCAKKyAgICA2NjY3NCwgNDE5MjYsIDEyMDQwOCwgMTIwNDQzLCAxMDUxMywgNjQ2MzcsIDE5NDg2MiwgNjgwMTMsIDUyLCAxMzExOCwgCisgICAgNjQ3NSwgMCwgMTIwMzQxLCAxMjA5NSwgMTAyMjUsIDQ4MTIsIDkyNTc4LCAwLCA2Nzk5MiwgNzQwODUsIDAsIDM5NzgsIDAsIAorICAgIDkxNzk0NSwgMTI3ODIzLCAxMTU4MiwgMTIwNzYxLCAxMjI4MSwgMCwgNjU0NCwgMTMyNDEsIDkzOTYxLCA2OTc4MiwgCiAgICAgMTI4NTU3LCAxOTQ4NjAsIDExNzY1LCA2NTI1OCwgMTAzNjksIDAsIDE1ODUsIDcxOTIsIDEwMjQ5LCA0MjIsIDE1MDAsIAogICAgIDIwMzYsIDk4NiwgMTk0ODU5LCA2NDM5NCwgNTc4MSwgNTU5OSwgNjQyOTQsIDI0OTQsIDEyMDQ1MCwgNDg2MSwgNzQwMjEsIAotICAgIDY0MzM0LCA3ODIwMywgMTI3ODA4LCAwLCA5MjI2NiwgNjUxMDIsIDg5NjEsIDY1ODQyLCAxMDI0MywgMTAyNDUsIDkxNzkzMywgCisgICAgNjQzMzQsIDc4MjAzLCAxMjc4MDgsIDAsIDkyMjY2LCA2NTEwMiwgODk2MSwgNjU4NDIsIDEwMjQzLCAxMDI0NSwgNzQxOTEsIAogICAgIDEyMDQxMCwgMCwgMTIwNDUzLCA2NDgyMSwgOTQ3OCwgMjUwOCwgOTI2ODMsIDAsIDIwMiwgMTI4MjQ2LCA3NDEzMSwgMTI0MiwgCiAgICAgNjU1MTQsIDAsIDYzOTQwLCAxMjg3MDYsIDY0NTMzLCAxMjAxMjksIDAsIDY3ODQyLCAxMTk5MCwgOTI0MzAsIDYzOTM5LCAKLSAgICA0MzM3NSwgNjU0NDAsIDI1MDQsIDAsIDc4NjcxLCA2NDgyOSwgMCwgNjk0MywgOTE3OTM0LCA1ODU5LCAwLCAyODU4LCAwLCAKLSAgICA3NDI5NCwgMCwgNjkyMzksIDAsIDExOTAyNywgMTI5OTIsIDI3NTMsIDE5MzYsIDc0NDkxLCA5MjU3NCwgMjc1MSwgMTI2NjIsIAotICAgIDI3NjMsIDg5NTMsIDY0NzAxLCAxMDczMSwgMTI5MjIsIDcwNTIsIDkxNzgzOSwgMCwgMCwgMCwgNjM5MjAsIDc0MTI4LCAKLSAgICAyODU2LCAxMTk5MTAsIDQ3LCAxMTk5MTEsIDEyNjk4NiwgNjU4NTgsIDAsIDAsIDAsIDc4OTksIDAsIDg0MTcsIDQzNzk4LCAKLSAgICA3MDcyLCAwLCAwLCA0MDMzLCAxMjgxNjQsIDQzOTkyLCAwLCAwLCAyMTIsIDY0NjAwLCAxOTAzLCAxMjMyMCwgMCwgMCwgMCwgCi0gICAgMCwgODkxNSwgMjc1OSwgOTQ1LCA2Njg5LCAwLCAwLCAwLCAwLCAxMjkxLCA3NDgyOCwgMCwgMCwgOTUzMSwgMTMxNTUsIAotICAgIDg1MDUsIDY4Mzc5LCAxMjA2MiwgMCwgMCwgNjU0ODcsIDkyMTg5LCA0MTgzNywgMTIwNjExLCAxMjA0MzIsIDAsIDAsIDAsIAotICAgIDEyMDQzMywgMCwgNjM5MzUsIDczOTYyLCAxMjA4MDYsIDY0Nzg3LCA0MzUyNCwgMCwgNjQ0MjYsIDAsIDE5NDk0OCwgMCwgMCwgCi0gICAgNjU2NjQsIDY2OTMsIDk4NDMsIDAsIDg2NzQsIDExOTg4NywgMTI4ODEyLCA5MjcxNSwgMCwgMTI2MjQsIDAsIDE2NzMsIAotICAgIDQ4MTEsIDkyMzgzLCA1OTg2LCA5MzM4LCAzMDQ2LCA3NDQ4MCwgNTk4NSwgOTE3OTI4LCAxMTk1OTgsIDk4MjAsIDAsIAotICAgIDEyMTg3LCAwLCAwLCA1OTg0LCAwLCA0MzMwOCwgNDM5MywgMCwgMCwgMCwgMCwgMCwgNzQ4MjYsIDY0NzMzLCAwLCAwLCAKLSAgICAzNDkxLCAwLCAwLCAxMjgyMTksIDM1MTQsIDY1NDg1LCAwLCA3NDkyLCAwLCA3NDYwNSwgOTI0ODMsIDc1MTQsIDAsIDAsIAotICAgIDE5NDczMSwgNzUwMiwgNzU4NywgNjgzNTMsIDAsIDAsIDYzOTI1LCAwLCA3NjEwLCAyMTksIDAsIDAsIDY5MiwgNDM1ODgsIAotICAgIDc0NDMzLCA0MTYzNSwgNDMyNDEsIDk2ODgsIDcxNDcsIDk1MzUsIDAsIDAsIDAsIDY0NTMwLCAwLCA2NDYxMCwgMTE4MDQsIAotICAgIDAsIDcxNDksIDc0NTMsIDAsIDgwMTMsIDAsIDkyMzAxLCAwLCA4ODk1LCA1MjUzLCAwLCA1NDU4LCAwLCAyODY2LCAwLCAKLSAgICAxMjc4NjAsIDY1MTExLCA2ODQzMywgNjcwMCwgMTIwNDg0LCAwLCAwLCAwLCA4OTYyLCA3Nzk2MCwgOTY0MSwgNDM2OTQsIAotICAgIDcwNTksIDAsIDAsIDk2MDQsIDc4NzAwLCA3NDQxLCA2MzgyNiwgNzg3MDYsIDExODk0MSwgNjQzOTIsIDE5NDczNSwgMCwgCi0gICAgMjg0NCwgMCwgNDE5NzQsIDAsIDEyMTM5LCAwLCAwLCAwLCAzMzU4LCA2NTI5NSwgMCwgMzEwNCwgMTk0NzM0LCAwLCAKLSAgICAxOTQ3NjUsIDAsIDUzMDgsIDAsIDI5MCwgMCwgMCwgMjg2MiwgMjc5MiwgMTk1MDg4LCAwLCAwLCAzMjY4LCA2NjU5MSwgMCwgCi0gICAgNjU1MiwgNDIzNjcsIDcwMzUsIDEyMDU1OCwgMCwgMCwgMTgxNCwgMCwgMTAyNDAsIDkyMzM4LCA3NDMwNSwgMCwgNzQ1MjgsIAotICAgIDY1OTAzLCAwLCA0MjY0NiwgNzYwNiwgMjU5MSwgMjgzNywgNDM0MSwgNzc5NTYsIDY0NDgyLCAxMjczMzcsIDgxNjMsIAotICAgIDY1MjcwLCAwLCAwLCAwLCA5MTEyLCA3NDQzMSwgODYzLCA5NDkwLCAxMTk4OTgsIDkxNzgzNywgNDMzMjMsIDEyMDUxMywgCi0gICAgMTE5ODk3LCA5MDcxLCAxMjczMzMsIDAsIDM2NTQsIDc3ODksIDk2MzcsIDAsIDI1MzUsIDY1NTA0LCA3NjUzLCA0MDk5MywgCi0gICAgMTE5ODk5LCA2NjU4NywgMTk1MDk4LCAwLCA5MjQwMSwgMCwgMTEwMDYsIDEyOTI3LCA3ODA3LCA4MDczLCAwLCAxMDYyOSwgCi0gICAgMCwgNzQwODgsIDMwNTYsIDEwODIzLCAxMjg3OTcsIDEyNzMyNywgODc2MiwgMTA1MDgsIDY5Njg5LCA3Mzc3MCwgNDM5NjksIAotICAgIDQzMTkzLCAxMDczNywgMzQ2MywgMCwgMCwgNjY2MzMsIDg2OTUsIDQ4MTUsIDExMzIyLCA1ODExLCAxMjM0NSwgNzA0OSwgMCwgCi0gICAgNTE5NSwgMTk1MDgxLCAwLCA2NjYzOSwgMCwgMCwgMCwgMTI4MDQxLCAwLCA5MjM4NSwgMTI2MiwgMCwgNjU2MSwgMTk5MzksIAotICAgIDAsIDAsIDAsIDExOTkwNiwgMCwgMCwgMCwgMCwgMCwgMTE5OTA3LCA2NDYxMiwgMTE5OTEsIDAsIDAsIDAsIDE1MDIsIDAsIAotICAgIDAsIDkxMDcsIDEyNzMxNiwgNTcwMiwgMzY1NSwgNjc2NjEsIDg0MzAsIDAsIDc0MTMyLCAxMjA3NTgsIDAsIDc0MDU3LCAKLSAgICA5NjAzLCAwLCA1MjU0LCAxMjA3NDIsIDc3MjQsIDc0Mzg4LCA2ODM3NSwgMTA3OTYsIDUxMjksIDAsIDAsIDU5MCwgNzU3OSwgCi0gICAgNTYxNCwgNTg5MywgOTIyODAsIDExNzIwLCA5MjQ5NiwgMTE3MjEsIDAsIDQ3OTgsIDAsIDExOTMxNiwgNjYwMzgsIDQ3OTMsIAotICAgIDY3ODUxLCAxMTcyNiwgMTI3NTQxLCA3NDIwNCwgNjg2MTAsIDAsIDY4NjI2LCA4OTQsIDMwMCwgOTE3ODEzLCAxMjMwNiwgCi0gICAgNjYyMzUsIDgwMDQsIDAsIDAsIDI1NjIsIDAsIDAsIDQyNTAzLCAwLCAxMTY1MiwgMCwgMCwgMTE5MjQxLCA5MjY0OSwgMCwgCi0gICAgNTA5NiwgNTA5NSwgMjg2MywgMzQyNCwgOTIyNDQsIDEwNDU0LCA0MjUzMCwgNTA5NCwgMTE5NjM4LCAwLCAxMzE1NiwgMCwgCi0gICAgMTA4MzIsIDUwOTMsIDAsIDAsIDAsIDUwOTIsIDEwNzA4LCAxMTMyNywgMCwgNTA5MSwgMTc2LCAwLCA5MTUzLCA0MTA0LCAKLSAgICA3ODU5OSwgNzg2MDEsIDEyMTUsIDQyNzEyLCA1NzQ0LCAxMjI3MiwgOTgzMiwgMTE3NzcsIDAsIDEyNzM3MSwgNDI4ODEsIDAsIAorICAgIDQzMzc1LCA2NTQ0MCwgMjUwNCwgMCwgNzg2NzEsIDY0ODI5LCA5ODM5MDEsIDY5NDMsIDkxNzkzNCwgNTg1OSwgMCwgMjg1OCwgCisgICAgOTgzMzUzLCA3NDI5NCwgOTgzOTA1LCA2OTIzOSwgMCwgMTE5MDI3LCAxMjk5MiwgMjc1MywgMTkzNiwgNzAwNzgsIDkyNTc0LCAKKyAgICAyNzUxLCAxMjY2MiwgMjc2MywgODk1MywgNjQ3MDEsIDEwNzMxLCAxMjkyMiwgNzA1MiwgOTE3ODM5LCAwLCAwLCAwLCAKKyAgICA2MzkyMCwgNzQxMjgsIDI4NTYsIDExOTkxMCwgNDcsIDY5OTA4LCAxMjY5ODYsIDY1ODU4LCAwLCAwLCAwLCA3ODk5LCAwLCAKKyAgICA4NDE3LCA0Mzc5OCwgNzA3MiwgMCwgMCwgNDAzMywgMTI4MTY0LCA0Mzk5MiwgMCwgMCwgMjEyLCA2NDYwMCwgMTkwMywgCisgICAgMTIzMjAsIDAsIDAsIDE5NDU2MywgMCwgODkxNSwgMjc1OSwgOTQ1LCA2Njg5LCAwLCAwLCAwLCAwLCAxMjkxLCA3NDgyOCwgCisgICAgMCwgMCwgOTUzMSwgMTMxNTUsIDg1MDUsIDY4Mzc5LCAxMjA2MiwgMCwgMCwgNjU0ODcsIDkyMTg5LCA0MTgzNywgMTIwNjExLCAKKyAgICAxMjA0MzIsIDAsIDAsIDAsIDEyMDQzMywgMCwgNjM5MzUsIDczOTYyLCAxMjA4MDYsIDY0Nzg3LCA0MzUyNCwgMCwgNjQ0MjYsIAorICAgIDAsIDE5NDk0OCwgMCwgMCwgNjU2NjQsIDY2OTMsIDk4NDMsIDAsIDg2NzQsIDExOTg4NywgMTI4ODEyLCA5MjcxNSwgMCwgCisgICAgMTI2MjQsIDAsIDE2NzMsIDQ4MTEsIDkyMzgzLCA1OTg2LCA5MzM4LCAzMDQ2LCA3NDQ4MCwgNTk4NSwgOTE3OTI4LCAKKyAgICAxMTk1OTgsIDk4MjAsIDAsIDEyMTg3LCAwLCAwLCA1OTg0LCAwLCA0MzMwOCwgNDM5MywgNjc2NTAsIDAsIDAsIDAsIDAsIAorICAgIDc0ODI2LCA2NDczMywgMCwgMCwgMzQ5MSwgMCwgMCwgMTI4MjE5LCAzNTE0LCA2NTQ4NSwgMCwgNzQ5MiwgMCwgNzQ2MDUsIAorICAgIDkyNDgzLCA3NTE0LCA5ODMzNTksIDAsIDE5NDczMSwgNzUwMiwgNzU4NywgNjgzNTMsIDAsIDAsIDYzOTI1LCAwLCA3NjEwLCAKKyAgICAyMTksIDAsIDAsIDY5MiwgNDM1ODgsIDc0NDMzLCA0MTYzNSwgNDMyNDEsIDk2ODgsIDcxNDcsIDk1MzUsIDAsIDkzOTkxLCAKKyAgICAwLCA2NDUzMCwgMCwgNjQ2MTAsIDExODA0LCAwLCA3MTQ5LCA3NDUzLCAwLCA4MDEzLCAwLCA5MjMwMSwgMCwgODg5NSwgCisgICAgNTI1MywgNzAwMjUsIDU0NTgsIDAsIDI4NjYsIDAsIDEyNzg2MCwgNjUxMTEsIDY4NDMzLCA2NzAwLCAxMjA0ODQsIDAsIAorICAgIDEyMDU4MywgMCwgODk2MiwgNzc5NjAsIDk2NDEsIDQzNjk0LCA3MDU5LCA5ODM2NjgsIDAsIDk2MDQsIDc4NzAwLCA3NDQxLCAKKyAgICA2MzgyNiwgNjc5NzAsIDExODk0MSwgNjQzOTIsIDE5NDczNSwgOTgzNjc4LCAyODQ0LCA5ODM5MzIsIDQxOTc0LCAwLCAKKyAgICAxMjEzOSwgNjc5NzEsIDAsIDAsIDMzNTgsIDY1Mjk1LCAwLCAzMTA0LCAxOTQ3MzQsIDAsIDE5NDc2NSwgOTgzMjI3LCAKKyAgICA1MzA4LCAwLCAyOTAsIDAsIDAsIDI4NjIsIDI3OTIsIDE5NTA4OCwgOTgzMDcwLCAwLCAzMjY4LCA2NjU5MSwgMCwgNjU1MiwgCisgICAgNDIzNjcsIDcwMzUsIDEyMDU1OCwgMCwgMCwgMTgxNCwgMCwgMTAyNDAsIDkyMzM4LCA3NDMwNSwgMCwgNzQ1MjgsIDY1OTAzLCAKKyAgICAwLCA0MjY0NiwgNzYwNiwgMjU5MSwgMjgzNywgNDM0MSwgNzc5NTYsIDY0NDgyLCAxMjczMzcsIDgxNjMsIDY1MjcwLCAwLCAKKyAgICA3NzkzMiwgMCwgOTExMiwgNzQ0MzEsIDg2MywgOTQ5MCwgMTE5ODk4LCAxMjgzNDksIDQzMzIzLCAxMjA1MTMsIDExOTg5NywgCisgICAgOTA3MSwgMTI3MzMzLCAwLCAzNjU0LCA3Nzg5LCA5NjM3LCAwLCAyNTM1LCA2NTUwNCwgNzY1MywgNDA5OTMsIDExOTg5OSwgCisgICAgNjY1ODcsIDE5NTA5OCwgMCwgOTI0MDEsIDk4Mzg4NSwgMTEwMDYsIDEyOTI3LCA3ODA3LCA4MDczLCAwLCAxMDYyOSwgMCwgCisgICAgNzQwODgsIDMwNTYsIDEwODIzLCAxMjg3OTcsIDEyNzMyNywgODc2MiwgMTA1MDgsIDY5Njg5LCA3Mzc3MCwgNDM5NjksIAorICAgIDQzMTkzLCAxMDczNywgMzQ2MywgOTgzMDY1LCAwLCA2NjYzMywgODY5NSwgNDgxNSwgMTEzMjIsIDU4MTEsIDEyMzQ1LCAKKyAgICA3MDQ5LCAxMTk5MTEsIDUxOTUsIDE5NTA4MSwgMCwgNjY2MzksIDAsIDAsIDAsIDEyODA0MSwgMCwgOTIzODUsIDEyNjIsIDAsIAorICAgIDY1NjEsIDE5OTM5LCAwLCAwLCAxMjg1MzUsIDExOTkwNiwgMCwgMCwgOTgzMDk3LCAwLCA5ODM2NTgsIDExOTkwNywgCisgICAgNjQ2MTIsIDExOTkxLCAwLCAwLCAwLCAxNTAyLCA5MTc1NjgsIDAsIDkxMDcsIDEyNzMxNiwgNTcwMiwgMzY1NSwgNjc2NjEsIAorICAgIDg0MzAsIDAsIDc0MTMyLCAxMjA3NTgsIDAsIDc0MDU3LCA5NjAzLCAwLCA1MjU0LCAxMjA3NDIsIDc3MjQsIDc0Mzg4LCAKKyAgICA2ODM3NSwgMTA3OTYsIDUxMjksIDAsIDAsIDU5MCwgNzU3OSwgNTYxNCwgNTg5MywgOTIyODAsIDExNzIwLCA5MjQ5NiwgCisgICAgMTE3MjEsIDAsIDQ3OTgsIDAsIDExOTMxNiwgNjYwMzgsIDQ3OTMsIDY3ODUxLCAxMTcyNiwgMTI3NTQxLCA3NDIwNCwgCisgICAgNjg2MTAsIDAsIDY4NjI2LCA4OTQsIDMwMCwgOTE3ODEzLCAxMjMwNiwgNjYyMzUsIDgwMDQsIDAsIDAsIDI1NjIsIAorICAgIDEyNjU1NSwgMCwgNDI1MDMsIDAsIDExNjUyLCAwLCAwLCAxMTkyNDEsIDY0Njk5LCAxMjY1NjksIDUwOTYsIDUwOTUsIAorICAgIDI4NjMsIDM0MjQsIDkyMjQ0LCAxMDQ1NCwgNDI1MzAsIDUwOTQsIDExOTYzOCwgMCwgMTMxNTYsIDAsIDEwODMyLCA1MDkzLCAKKyAgICAwLCA2OTg1MiwgMCwgNTA5MiwgMTA3MDgsIDExMzI3LCAwLCA1MDkxLCAxNzYsIDAsIDkxNTMsIDQxMDQsIDc4NTk5LCAKKyAgICA3ODYwMSwgMTIxNSwgNDI3MTIsIDU3NDQsIDEyMjcyLCA5ODMyLCAxMTc3NywgNzEyOTksIDEyNzM3MSwgNDI4ODEsIDAsIAogICAgIDg5ODAsIDExODk4OCwgNjc4NjEsIDg4NDQsIDcyMDksIDAsIDAsIDQyNzgsIDAsIDAsIDE5NDc4OSwgMCwgOTA3NCwgNDM0OCwgCi0gICAgMCwgNjU1NTgsIDY1OTQ2LCA4MTEzLCA3MDg3LCA1MjU1LCAxNzg2LCA2NjEsIDAsIDAsIDAsIDc0NDIzLCAwLCA1ODYsIAotICAgIDc0NDE0LCA2NDM1OSwgMTI2NywgMCwgNjU0NjgsIDAsIDY1NzMxLCAwLCAxMjcxNzksIDM2MjEsIDEyMDQ3MywgNjY2NjYsIAotICAgIDY0MjExLCAwLCA2NTYyLCAxMjkyOCwgMCwgMTIyOCwgNjU0OTAsIDExMzgzLCAwLCAwLCAwLCAxNzE0LCA3NDQwNiwgCi0gICAgMTI3ODMxLCAwLCAwLCAwLCA2NjIyNSwgMCwgMCwgNDI2NjAsIDExNDM2LCAyMDcwLCA2NCwgMTIwNjk0LCAwLCAxMDI5MSwgCi0gICAgMTAzMjMsIDI4MjYsIDAsIDAsIDAsIDQyMDA4LCA5NzA4LCA0MjcxMCwgMCwgNDIwMTEsIDQxOTk5LCA5MjE2NCwgMTIyMDYsIAotICAgIDU4MzksIDE3MDIsIDEyNDAsIDc0MDY1LCA2Mjg2LCAwLCAwLCA2NTgzMywgNzc4NDgsIDAsIDE3NjUsIDAsIDAsIDY1NTg4LCAKLSAgICAwLCAwLCAwLCA4NDAxLCAwLCA0MjAxNCwgMCwgNzAzMCwgMTk0NzA0LCAxMDQ3OSwgNjQ5NTksIDI4NTIsIDAsIDAsIDAsIDAsIAotICAgIDEyODU4NiwgOTE3OTUxLCA2OTYzLCAwLCAxMjY2NywgNjQ1NDAsIDc0Nzg2LCAxMDE0NywgMTI5MzUsIDEyNzU2OCwgMCwgMCwgCi0gICAgMCwgMCwgNzg3NTcsIDAsIDAsIDAsIDAsIDk5OTQsIDEyNDY3LCAyODY0LCA2NDcxOSwgMTE0OCwgMTA0MzUsIDExNDYyLCAKLSAgICA0MTY3NSwgMCwgMjc2NSwgMCwgMCwgMCwgMTIwNzE5LCAxMjgxODgsIDkyNTE2LCA2NjY2MiwgMCwgNzgxMzMsIDkzNjQsIAotICAgIDE5NDY4NSwgNzQ0MTYsIDAsIDAsIDc3OTg4LCAyNjMsIDEwNDQ5LCA0MTI4OCwgMCwgNDE4MzksIDc4Mzg3LCAwLCA3Nzk4NiwgCi0gICAgMCwgNjkzMSwgNjk3MjIsIDY0MzU1LCA3MTc3LCAxMjA1MzAsIDAsIDAsIDAsIDQyNjIsIDEwMjg1LCAxMDcyMiwgNDIwMjAsIAotICAgIDAsIDY4MDYsIDY5OTIsIDQyMDE5LCAwLCA0MTI5MCwgMCwgNzUwLCAwLCAwLCAxMDE2MywgNjM5MTMsIDc0MDY2LCA3MDMyLCAKLSAgICA1OTU0LCA2NDkzMSwgNDMxNCwgMCwgMTk4LCA2ODQ1MywgNzMwLCAxMjAwOTQsIDYzOTA3LCA3Nzk5MywgNzg4OTEsIAotICAgIDEzMTY1LCA3MTA3LCA3NDE3MSwgNDI4MDQsIDY3OCwgODI0MCwgNzgwMTUsIDEyODc4NCwgNDEzNzgsIDExMDA4LCA2OTM4LCAKLSAgICA5MjIyMiwgOTI2MzcsIDIwOTcsIDY2MjQ2LCAxMjA1NjAsIDAsIDAsIDAsIDM4OTIsIDY4NjMyLCA2OTY0MiwgNjcxMiwgCi0gICAgNjYwNDUsIDQxNDcwLCA2NDgwNSwgMCwgMCwgMCwgNjQ4MDEsIDAsIDQ5NywgMTIxMDAsIDU5NTMsIDkyNjY3LCA3Nzk2LCAKLSAgICA2OTY2OSwgNDMyNTQsIDczODMxLCAwLCAxMDI5MywgNTk1MiwgMTI4MSwgMCwgMCwgMCwgMTA2NzcsIDYwNCwgNDEwOTcsIAotICAgIDkxODIsIDE4NTksIDAsIDkyNjAzLCAzNDI1LCAxMjc0ODgsIDAsIDI4MzYsIDAsIDAsIDk3MDcsIDAsIDQzMjAyLCAwLCAwLCAKLSAgICA2NTE5OSwgMTczOCwgOTE3ODE4LCAxMjgxNTgsIDI4MzIsIDkyNzAyLCA5NjcwLCAxMjkzNywgMCwgNjYzNzQsIDkxNzk1NiwgCi0gICAgMCwgMjgyMiwgNjgxMjIsIDQ0MzYsIDkyNTE5LCAwLCA3Mzc1MiwgMCwgNjQ4NzIsIDkyMzQwLCAxMzMxLCAwLCAwLCAwLCAKLSAgICAxMjcwOCwgMCwgNTA5MCwgNTA4OSwgMCwgMCwgMTE5MTA5LCAwLCAxMjg2ODEsIDMxOSwgMTE4ODQ3LCA0MzQ3OSwgOTQ3NywgCi0gICAgMCwgMCwgNTA4NywgOTIzMjUsIDc2NDAsIDk2LCA1MDg2LCAwLCA5MjM3OSwgMCwgNTA4NSwgNjQyODYsIDkyNjY1LCAwLCAKLSAgICA0MTQyMiwgMCwgMTE5OTAxLCA0MjM1NiwgMzc3MiwgMCwgMCwgNTAxMSwgMCwgMCwgMCwgMCwgMTI3MTY1LCAxMjcyNDEsIAotICAgIDY2NzcsIDc2MDEsIDAsIDU5MSwgNjQ0MTksIDExODk1MywgOTIyNjIsIDAsIDExODkyMywgNzM3MzQsIDAsIDEwOTM5LCAKLSAgICA2MTA2LCA2OTMzLCA0MTI3MSwgNjc2MCwgMTE5OTAzLCA0NTM0LCA0MTI3MCwgMTI4ODc2LCAwLCA2NTU3NCwgMCwgOTIyNCwgCi0gICAgMCwgMzY3MSwgODk3NiwgMCwgMCwgNDEyNzUsIDYzNzIsIDEyODA4NCwgNTUyNjEsIDc5NjMsIDYzNzEsIDAsIDU2OCwgMCwgCi0gICAgNDEyNzMsIDAsIDAsIDY3MjgsIDAsIDk3MTUsIDAsIDgyNTgsIDExNzUzLCA3NDgyMCwgMCwgOTYwMiwgMTE4OTE5LCA0MiwgCi0gICAgMCwgNDM2ODgsIDAsIDAsIDc0NTgsIDAsIDAsIDY1Mzg1LCAxMTk5MDAsIDAsIDExOTU4LCAwLCA5MTc4MjIsIDAsIDYyNTQsIAotICAgIDQyNzIxLCA2NjMzNiwgODA0NSwgMTE1NTAsIDAsIDAsIDAsIDQyODU4LCAxMTc4OSwgNjU4NjgsIDU1NTcsIDEwMTMzLCAKLSAgICA5NzM3LCAxMzEwOSwgMCwgOTQ2NywgNTU1OCwgODg3OCwgMTI4MTM2LCAxOTUwMzYsIDc0NTEsIDY3MDYsIDEwMTQ2LCAwLCAKLSAgICA5MDg2LCA2NDU2NiwgMCwgNjQ1ODQsIDc0MzcsIDc0NTQsIDEyNTk0LCAxMjg2OTAsIDY4MzYyLCA0NTQ2LCA3NzMxLCAwLCAKLSAgICAxMTk5MDksIDc0MjQzLCAwLCAzODA1LCAwLCAxOTQ1NjUsIDQ0MDAxLCA0MTAwOCwgMCwgNjMwNywgMTk5NDksIDAsIDc1NDQsIAotICAgIDAsIDQzNDY5LCAwLCAwLCAxMDE1MiwgNjQ0MjIsIDY1MDkxLCAxMTkxMTMsIDc2MDIsIDY0NzI5LCAwLCA0MzUyMSwgMCwgCi0gICAgNDIzMDIsIDQzNzExLCA0MzUyMywgNDE0NDcsIDU1NTksIDAsIDg3MDQsIDIzOTcsIDU1NTYsIDAsIDAsIDAsIDkwMTEsIAotICAgIDk2MzAsIDkyNjMzLCAwLCAwLCA1NTA2LCAwLCAxOTExLCA2NjY1MiwgMCwgOTk2MSwgODg0NSwgNjY2OTgsIDAsIDEwNzkyLCAKLSAgICA4ODg5LCAwLCAyMDk4LCAwLCA2NDc1MSwgMCwgNjY2MjIsIDAsIDAsIDc0MzY0LCAwLCAwLCAwLCA3NDM2NSwgNzU1MiwgMCwgCi0gICAgMCwgNjUzODQsIDcyMjMsIDQ1NTksIDAsIDE5NTYsIDQzMTM4LCA3MDI0LCA2NTcyOCwgNjQ1MDEsIDEyMTAsIDE5NTA3NywgCi0gICAgNjUxNzUsIDEwMTg0LCA0MzE0MCwgNDM2NTQsIDAsIDAsIDAsIDM4LCA4NTMzLCA2NjY2OSwgMTE5MTI0LCAwLCAwLCAwLCAKLSAgICA0MzU3LCAwLCAxMTk4MzcsIDAsIDc0MjMzLCA5OTY3LCAxMTk4NTIsIDQyODYwLCAxMTk4MzgsIDEwOTQxLCA2NTcyMSwgCi0gICAgNjk2MiwgMCwgMCwgMTE5MzI0LCAwLCAxMTAxNCwgMTI3OTcyLCA4OTQyLCAxMjAwMCwgNjkyMjQsIDkyMjY3LCAxMjg1MzYsIAotICAgIDExOTc0LCA5MjIxMywgNDI3NzIsIDEyNzUxOCwgMTE2NTAsIDUwMTMsIDkyNjYzLCAxMjg2NzcsIDY2MjEwLCAxMTg5MTQsIAotICAgIDY2MTMsIDkyNDc2LCAwLCA0MzgxOSwgMCwgMCwgNjQ3MTQsIDAsIDAsIDEyMTYyLCAxMjEyMCwgNDM0NzYsIDAsIDExMDI0LCAKLSAgICA3NDgxMSwgNjYyMjgsIDEwNTYzLCAwLCAxMjcxOTYsIDQzNTIyLCAyNDYyLCAwLCAxODM3LCAwLCA2Mzk3MiwgNjk1NywgMCwgCi0gICAgMTIwNTU5LCA0OTUyLCA2NTcxOCwgNjU4MjcsIDU1MDQsIDY1NzIwLCA2NTcxNCwgNjU3MTUsIDY1NzE2LCAwLCAxMjcwMDUsIAotICAgIDEyNzExOSwgMzEwOSwgNjM5NzUsIDc0MDI4LCAwLCA4MTA3LCAxMTkyMzQsIDExMjcsIDQ1NSwgMCwgNjM5NjgsIDEyNzkyNCwgCi0gICAgMzQ4MywgMTE5NTkzLCAxOTg5LCAwLCA2OTY3OCwgOTEwNCwgMzUwMywgNjUzNzUsIDkyNTA5LCA2Njk0LCA0MjYzMywgCi0gICAgMTg2NCwgMCwgNzQzMDYsIDQxNDQ2LCAyNTQwLCA3NzM2LCAwLCA3NDA2NCwgMCwgMTA1MjEsIDAsIDQyMTczLCA5NzA1LCAKLSAgICA3NDEyNCwgODYwNCwgNjk1NSwgMTA5MTYsIDQzNjg0LCA2MTQ5LCAzODg3LCAxOTk1NiwgMTQxMSwgMjgyNCwgMCwgMTAxMDYsIAotICAgIDEyNzg2MiwgMTQwMywgMTI4ODM5LCAxMzQ3LCA5NjMxLCA3NDQ0NCwgMCwgMCwgMCwgMCwgODY0MCwgMCwgMjU4LCAxNjU0LCAKLSAgICAwLCAwLCAwLCA0MzMxNCwgMCwgMCwgNDA0MiwgMTE0NzgsIDI4NzMsIDYzOTc3LCAxMTUyMiwgNDE2NjgsIDg1NDksIAotICAgIDEwODYxLCAwLCA2Mzk3NiwgMCwgNjg2MjMsIDAsIDc0NTg1LCA0MTM5MSwgMCwgOTE3OTAzLCAzNzYsIDY5ODcsIDkyMjEsIAotICAgIDAsIDAsIDg4MjMsIDEyODY5NywgMTI5NDMsIDY1MTg1LCA0MTg2OSwgMTI2MTksIDAsIDEwMTU0LCAwLCA3NDQzOSwgMjAzOSwgCi0gICAgMCwgNzQ0NiwgMTY4NCwgNjM5NzksIDEwOTc0LCA0NTgsIDEyMDYyMCwgMCwgNjk3OTEsIDEyNzE2MSwgMTE5MTYsIDY1MDE2LCAKLSAgICAwLCA2OTY3MSwgNDIxMTUsIDAsIDEyMjg4LCA3ODA1NywgMCwgMTQ5MywgNDIxMTEsIDc1NTMsIDQwOTcsIDEyODE5OSwgCi0gICAgMTMwODAsIDAsIDY1ODA4LCA2NjEwLCA2MDMwLCA4MDU5LCA3NTA4LCAxMzEzMSwgMCwgMCwgMCwgODc5NCwgNDEyNzgsIAotICAgIDQxNjI5LCAxMjE1NCwgMTI4MTkyLCA0MTI3NywgNjQ2NTgsIDAsIDY0MzgwLCA2NjI1LCA3NDM1NCwgMTk5MDQsIDAsIDAsIAotICAgIDAsIDY1MzcxLCA3MDc4LCAwLCA4MzMsIDAsIDYzNjksIDAsIDEwOTc5LCA0MTk1MywgMCwgNDE0MzQsIDYwNjIsIDAsIDAsIAotICAgIDE5OTE2LCA2OTEzLCA5MzMsIDEzNDEsIDk4NDIsIDY3MjAsIDY1NzQ0LCAwLCAwLCAxMjgyOTUsIDAsIDc0MDUsIDEwMTA1LCAKLSAgICA2NTgxMCwgMCwgNDE2MzIsIDc0OTMsIDU1MjkwLCAwLCA0MTYyMiwgMCwgMCwgMTE5NTU2LCA3NDU4NCwgNzYzMiwgOTcxNiwgCi0gICAgMTk5NTQsIDk4MDUsIDU5OTAsIDkwMCwgMCwgNjM5NTcsIDAsIDAsIDM2MTIsIDAsIDY0Mzc2LCAwLCA1Mzg5LCA5MjU5NywgCi0gICAgMCwgNjU5MzgsIDI4MzksIDk2MjEsIDU4MiwgMCwgNzQzNjgsIDM3NDksIDY5NDksIDc1NjksIDc0MDYxLCAwLCAwLCA2OTU2LCAKLSAgICA0NDAzLCAxOTk2MiwgNjU1NTksIDMyOTksIDAsIDkxNzU2NiwgMTE5MTI3LCA5MDAyLCAwLCA3NDM3MiwgNzQyMzYsIDg0NzgsIAotICAgIDc1OTgsIDU0NiwgNDI0NjksIDY1NTY5LCAxOTE4LCA5NTQyLCA0NzIsIDc3MTYsIDEwMzE5LCAxMDM4MywgNjk5NiwgMCwgCi0gICAgNjM5NTIsIDg0MjUsIDM2MDIsIDgzMjgsIDExNzY0LCAxMTg4OTQsIDAsIDY5Nzk2LCA0MTE4MywgMTI5MDcsIDEwMjcxLCAKLSAgICAxMDI4NywgNjg0LCA0MzUyNSwgMCwgMjg1NCwgMTE5NTg2LCA0NTkyLCA2NTc1NSwgMCwgOTIyNTYsIDExOTYzLCA0MzYyMCwgCi0gICAgMCwgNzg4ODksIDAsIDAsIDEyODgwOSwgOTg4MSwgNDMxMTUsIDY1NzU3LCAzNDE1LCAwLCAwLCA4NjQ4LCAwLCA2NzQxLCAKLSAgICA0MzA0NywgMCwgMTMxODAsIDEyODUxNywgNDE4LCA5MTc5NzIsIDY0NDk1LCAxMDI5NSwgMTAzMjcsIDEwMzkxLCA0MTc1MiwgCi0gICAgNzQzMzksIDg2NDEsIDQxNDQ5LCAwLCA3NDEwMCwgMCwgMTA5MTEsIDY5NDIsIDAsIDEwMjQsIDQyODQ5LCA0MTc1MSwgCi0gICAgNjk3NzYsIDg5NDEsIDAsIDQ1NTQsIDAsIDkwMjMsIDExNjg1LCAwLCA5OTI4LCA3ODYxNywgMCwgMTE0MzcsIDQzNzQxLCAKLSAgICA5MjE2MywgMTIwNzAwLCA2Mzk2NywgMCwgNDEyMDYsIDEyMDcyNCwgOTA0OSwgNDExODUsIDQzMTY2LCAwLCAxMTY4MCwgCi0gICAgOTI2MTksIDExNjg2LCA3ODU0NCwgNjUyMjQsIDQ1NjUsIDQ2NTUsIDExOTU1MywgMCwgOTIxODMsIDY0NTIzLCAxMDM0MywgCi0gICAgMTA0MDcsIDAsIDY2NjcxLCAxMTQ2NiwgMCwgMTI4MDAzLCA0Mjg5MCwgMCwgMTIwNTAsIDY4MjAxLCAyODYwLCAwLCAwLCAwLCAKLSAgICA0Mjc5MiwgNTc0MywgMTA0MjQsIDEyMDY1LCA0Mjg3MiwgMCwgOTIzNDIsIDAsIDg4NzUsIDAsIDAsIDkxNzk5MSwgNzUzMSwgCi0gICAgMTI4NDcsIDI0MTMsIDAsIDc4NjM1LCA5NjIsIDAsIDEyODU1LCA0MTE5NiwgNDI1NjQsIDAsIDE1ODIsIDAsIDU1MDgsIDAsIAotICAgIDAsIDAsIDEwODAxLCAwLCA5MjM1NCwgMCwgNzE3MywgNDk2LCAxMDQzOSwgNDMxMywgNjQ2MDcsIDY5NjM4LCA3ODYwLCAwLCAKLSAgICA5MDYsIDQyNzkzLCAyODQyLCA2NDA1LCA2NDcyMiwgMTMxMzIsIDc5OCwgNjQ2OTQsIDEyODAxLCA4NDA2LCAxMTUzLCAKLSAgICA5MjE3MywgNjQ3ODgsIDAsIDgwNTQsIDkxNzQsIDEyODY1MiwgOTE3OTc2LCA5OTY0LCAwLCA0MTYxMSwgNDY0MiwgNjY1NzQsIAotICAgIDExNTU2LCA5MTc5ODIsIDAsIDc4ODU3LCA0MjA4OSwgNzg4NTUsIDkwMDgsIDAsIDAsIDE5NTA5NiwgNDIwNzksIDkxNzk4MSwgCi0gICAgNzc5MjQsIDQyNTEzLCAwLCA0Mjg0MiwgNzM5ODUsIDY1Mjg1LCAxMTg5NzQsIDEyNzAwMywgMCwgMCwgMCwgMCwgMTEzMzUsIAotICAgIDY0MDY5LCA0MjA5MywgMzkyMCwgMCwgMCwgMCwgMCwgNDU4MCwgNDE5NjcsIDAsIDY0Mzg0LCA5MjE2NywgMTE5MTU4LCAKLSAgICAzMDIxLCA0MjAwNCwgMCwgMCwgNDIzMTcsIDQxOTk4LCAwLCA2OTQ2LCAwLCAwLCAwLCAxMjgxOTMsIDY1MjA0LCAwLCAKLSAgICA2ODExMywgNDI2OTAsIDk4ODAsIDQyMDEwLCA3NDgyNCwgNjQ1ODksIDEwMTExLCA2NDg3NSwgMTI3ODgwLCA2ODM5OSwgCi0gICAgNDM5OTgsIDExMzYwLCAwLCAwLCAwLCAxMTg4MjYsIDQyMTQ5LCAwLCAwLCAwLCA2NDk0MSwgNzc5MTksIDEyMDQyMSwgCi0gICAgMTI4MDc3LCAwLCA1NTI0NywgNDExMCwgNjYwMDUsIDY5NTksIDEwOTI5LCAxMTkxMTAsIDAsIDY2NzAzLCA3NzkyMSwgCi0gICAgODYxNywgNDE5ODIsIDYwMjUsIDY5MjQyLCAwLCAwLCAwLCAwLCA5NTk3LCA0MjA5OSwgNDMxNzIsIDAsIDEwMTE3LCAwLCAKKyAgICAwLCA2NTU1OCwgNjU5NDYsIDgxMTMsIDcwODcsIDUyNTUsIDE3ODYsIDY2MSwgMCwgMCwgMCwgNzQ0MjMsIDcxMzQ1LCA1ODYsIAorICAgIDc0NDE0LCA2NDM1OSwgMTI2NywgMTI4MjY5LCA2NTQ2OCwgMCwgNjU3MzEsIDAsIDEyNzE3OSwgMzYyMSwgMTIwNDczLCAKKyAgICA2NjY2NiwgNjQyMTEsIDAsIDY1NjIsIDEyOTI4LCAwLCAxMjI4LCA2NTQ5MCwgMTEzODMsIDAsIDAsIDAsIDE3MTQsIAorICAgIDc0NDA2LCAxMjc4MzEsIDAsIDk4MzkxMiwgMCwgNjYyMjUsIDAsIDAsIDQyNjYwLCAxMTQzNiwgMjA3MCwgNjQsIDEyMDY5NCwgCisgICAgMCwgMTAyOTEsIDEwMzIzLCAyODI2LCAwLCAwLCAwLCA0MjAwOCwgOTcwOCwgNDI3MTAsIDAsIDQyMDExLCA0MTk5OSwgCisgICAgOTIxNjQsIDEyMjA2LCA1ODM5LCAxNzAyLCAxMjQwLCA3NDA2NSwgNjI4NiwgMCwgOTgzOTYwLCA2NTgzMywgNzc4NDgsIDAsIAorICAgIDE3NjUsIDAsIDAsIDY1NTg4LCAwLCAwLCAwLCA4NDAxLCAwLCA0MjAxNCwgMCwgNzAzMCwgMTk0NzA0LCAxMDQ3OSwgCisgICAgNjQ5NTksIDI4NTIsIDAsIDAsIDAsIDAsIDEyODU4NiwgOTE3OTUxLCA2OTYzLCAwLCAxMjY2NywgNjQ1NDAsIDc0Nzg2LCAKKyAgICAxMDE0NywgMTI5MzUsIDEyNzU2OCwgMTI2NDgzLCAwLCAwLCAwLCA3ODc1NywgMCwgMCwgMCwgMCwgOTk5NCwgMTI0NjcsIAorICAgIDI4NjQsIDY0NzE5LCAxMTQ4LCAxMDQzNSwgMTE0NjIsIDQxNjc1LCA3MDg0LCAyNzY1LCAwLCA0MzM4MiwgMCwgMTIwNzE5LCAKKyAgICAxMjgxODgsIDkyNTE2LCA2NjY2MiwgMCwgNzgxMzMsIDkzNjQsIDE5NDY4NSwgNzQ0MTYsIDAsIDAsIDc3OTg4LCAyNjMsIAorICAgIDEwNDQ5LCA0MTI4OCwgMCwgNDE4MzksIDc4Mzg3LCA5ODM3MzMsIDc3OTg2LCAwLCA2OTMxLCA2OTcyMiwgNjQzNTUsIAorICAgIDcxNzcsIDcwMTA1LCAwLCAwLCAwLCA0MjYyLCAxMDI4NSwgMTA3MjIsIDQyMDIwLCAxMjY1NzUsIDY4MDYsIDY5OTIsIAorICAgIDQyMDE5LCAwLCA0MTI5MCwgOTgzNzA3LCA3NTAsIDAsIDcxMzA0LCAxMDE2MywgNjM5MTMsIDcxMzAwLCA3MDMyLCA1OTU0LCAKKyAgICA2NDkzMSwgNDMxNCwgMCwgMTk4LCA2ODQ1MywgNzMwLCAxMjAwOTQsIDYzOTA3LCA3Nzk5MywgNzg4OTEsIDEzMTY1LCAKKyAgICA3MTA3LCA3NDE3MSwgNDI4MDQsIDY3OCwgODI0MCwgNzgwMTUsIDEyODc4NCwgNDEzNzgsIDExMDA4LCA2OTM4LCA3MDAyNiwgCisgICAgOTI2MzcsIDIwOTcsIDY2MjQ2LCAxMjA1NjAsIDAsIDAsIDAsIDM4OTIsIDY4NjMyLCA2OTY0MiwgNjcxMiwgNjYwNDUsIAorICAgIDQxNDcwLCA2NDgwNSwgMCwgMCwgMTI4MjE1LCA2NDgwMSwgMCwgNDk3LCAxMjEwMCwgNTk1MywgOTI2NjcsIDc3OTYsIAorICAgIDY5NjY5LCA0MzI1NCwgNzM4MzEsIDAsIDEwMjkzLCA1OTUyLCAxMjgxLCA0Mzc0NywgMCwgMCwgMTA2NzcsIDYwNCwgCisgICAgNDEwOTcsIDkxODIsIDE4NTksIDAsIDkyNjAzLCAzNDI1LCAxMjc0ODgsIDAsIDI4MzYsIDAsIDAsIDk3MDcsIDAsIDQzMjAyLCAKKyAgICAwLCAwLCA2NTE5OSwgMTczOCwgOTE3ODE4LCAxMjgxNTgsIDI4MzIsIDkyNzAyLCA5NjcwLCAxMjkzNywgMCwgNjYzNzQsIAorICAgIDkxNzk1NiwgMCwgMjgyMiwgNjgxMjIsIDQ0MzYsIDkyNTE5LCA5ODM3MTQsIDczNzUyLCAwLCA2NDg3MiwgOTIzNDAsIAorICAgIDEzMzEsIDAsIDAsIDAsIDEyNzA4LCAwLCA1MDkwLCA1MDg5LCAxMjc5NzcsIDAsIDExOTEwOSwgMCwgMTI4NjgxLCAzMTksIAorICAgIDExODg0NywgNDM0NzksIDk0NzcsIDAsIDAsIDUwODcsIDkyMzI1LCA3NjQwLCA5NiwgNTA4NiwgMCwgOTIzNzksIDAsIAorICAgIDUwODUsIDY0Mjg2LCA5MjY2NSwgMCwgNDE0MjIsIDAsIDExOTkwMSwgNDIzNTYsIDM3NzIsIDAsIDAsIDUwMTEsIDAsIDAsIAorICAgIDEyNjU4NywgMCwgMTI3MTY1LCAxMjcyNDEsIDY2NzcsIDc2MDEsIDAsIDU5MSwgNjQ0MTksIDExODk1MywgOTIyNjIsIDAsIAorICAgIDExODkyMywgNzAwODQsIDAsIDEwOTM5LCA2MTA2LCA2OTMzLCA0MTI3MSwgNjc2MCwgNzEzNDMsIDQ1MzQsIDQxMjcwLCAKKyAgICAxMjg4NzYsIDAsIDY1NTc0LCAwLCA5MjI0LCA2OTg1MywgMzY3MSwgODk3NiwgMTI2NDc0LCAwLCA0MTI3NSwgNjM3MiwgCisgICAgMTI4MDg0LCA1NTI2MSwgNzk2MywgNjM3MSwgMCwgNTY4LCAwLCA0MTI3MywgOTgzNzIxLCAwLCA2NzI4LCAwLCA5NzE1LCAwLCAKKyAgICA4MjU4LCAxMTc1MywgNzQ4MjAsIDAsIDk2MDIsIDExODkxOSwgNDIsIDAsIDQzNjg4LCAwLCAwLCA3NDU4LCAwLCAwLCAKKyAgICA2NTM4NSwgMTE5OTAwLCAwLCAxMTk1OCwgMCwgOTE3ODIyLCAwLCA2MjU0LCA0MjcyMSwgNjYzMzYsIDgwNDUsIDExNTUwLCAKKyAgICAwLCAwLCA5ODM1OTcsIDQyODU4LCAxMTc4OSwgNjU4NjgsIDU1NTcsIDEwMTMzLCA5NzM3LCAxMzEwOSwgMCwgOTQ2NywgCisgICAgNTU1OCwgODg3OCwgMTI4MTM2LCAxOTUwMzYsIDc0NTEsIDY3MDYsIDEwMTQ2LCAwLCA5MDg2LCA2NDU2NiwgMCwgNjQ1ODQsIAorICAgIDc0MzcsIDc0NTQsIDEyNTk0LCAxMjg2OTAsIDY4MzYyLCA0NTQ2LCA3NzMxLCAwLCA3MDA0OCwgNzQyNDMsIDAsIDM4MDUsIAorICAgIDAsIDE5NDU2NSwgNDQwMDEsIDQxMDA4LCAwLCA2MzA3LCAxOTk0OSwgOTgzNzgxLCA3NTQ0LCA5ODMwNDUsIDQzNDY5LCAwLCAKKyAgICAwLCAxMDE1MiwgNjQ0MjIsIDY1MDkxLCAxMTkxMTMsIDc2MDIsIDY0NzI5LCAwLCA0MzUyMSwgMCwgNDIzMDIsIDQzNzExLCAKKyAgICA0MzUyMywgNDE0NDcsIDU1NTksIDAsIDg3MDQsIDIzOTcsIDU1NTYsIDAsIDAsIDAsIDkwMTEsIDk2MzAsIDkyNjMzLCAwLCAKKyAgICA5Mzk5OCwgNTUwNiwgMCwgMTkxMSwgNjY2NTIsIDAsIDk5NjEsIDg4NDUsIDY2Njk4LCAwLCAxMDc5MiwgODg4OSwgMCwgCisgICAgMjA5OCwgMCwgNjQ3NTEsIDAsIDY2NjIyLCAwLCAwLCA3NDM2NCwgMCwgMCwgOTgzNzk2LCA3NDM2NSwgNzU1MiwgMCwgMCwgCisgICAgNjUzODQsIDcyMjMsIDQ1NTksIDAsIDE5NTYsIDQzMTM4LCA3MDI0LCA2NTcyOCwgNjQ1MDEsIDEyMTAsIDE5NTA3NywgCisgICAgNjUxNzUsIDEwMTg0LCA0MzE0MCwgNDM2NTQsIDAsIDAsIDAsIDM4LCA4NTMzLCA2NjY2OSwgMTE5MTI0LCA5ODMyODUsIAorICAgIDk4Mzc4MywgMCwgNDM1NywgMCwgMTE5ODM3LCA5MTc4NjMsIDc0MjMzLCA5OTY3LCA3ODg4NCwgNDI4NjAsIDExOTgzOCwgCisgICAgMTA5NDEsIDY1NzIxLCA2OTYyLCAwLCAwLCAxMTkzMjQsIDAsIDExMDE0LCAxMjc5NzIsIDg5NDIsIDEyMDAwLCA2OTIyNCwgCisgICAgOTIyNjcsIDEyODUzNiwgMTE5NzQsIDkyMjEzLCA0Mjc3MiwgMTI3NTE4LCAxMTY1MCwgNTAxMywgOTI2NjMsIDEyNjU4MywgCisgICAgNjYyMTAsIDExODkxNCwgNjYxMywgOTI0NzYsIDAsIDQzODE5LCA5ODM3NjEsIDAsIDY0NzE0LCAwLCAwLCAxMjE2MiwgCisgICAgMTIxMjAsIDQzNDc2LCA5ODM3NTcsIDExMDI0LCA3NDgxMSwgNjYyMjgsIDEwNTYzLCAwLCAxMjcxOTYsIDQzNTIyLCAyNDYyLCAKKyAgICAwLCAxODM3LCAwLCA2Mzk3MiwgNjk1NywgMCwgMTIwNTU5LCA0OTUyLCA2NTcxOCwgNjU4MjcsIDU1MDQsIDY1NzIwLCAKKyAgICA2NTcxNCwgNjU3MTUsIDY1NzE2LCAwLCAxMjcwMDUsIDEyNzExOSwgMzEwOSwgNjM5NzUsIDc0MDI4LCAwLCA4MTA3LCAKKyAgICAxMTkyMzQsIDExMjcsIDQ1NSwgMCwgNjM5NjgsIDEyNzkyNCwgMzQ4MywgMTE5NTkzLCAxOTg5LCAwLCA2OTY3OCwgOTEwNCwgCisgICAgMzUwMywgNjUzNzUsIDkyNTA5LCA2Njk0LCA0MjYzMywgMTg2NCwgMCwgNzQzMDYsIDQxNDQ2LCAyNTQwLCA3NzM2LCAwLCAKKyAgICA3NDA2NCwgMCwgMTA1MjEsIDAsIDQyMTczLCA5NzA1LCA3NDEyNCwgODYwNCwgNjk1NSwgMTA5MTYsIDQzNjg0LCA2MTQ5LCAKKyAgICAzODg3LCAxOTk1NiwgMTQxMSwgMjgyNCwgMCwgMTAxMDYsIDEyNzg2MiwgMTQwMywgMTI4ODM5LCAxMzQ3LCA5NjMxLCAKKyAgICA3NDQ0NCwgMCwgMCwgMCwgMCwgODY0MCwgMCwgMjU4LCAxNjU0LCAwLCAwLCAwLCA0MzMxNCwgMCwgMCwgNDA0MiwgMTE0NzgsIAorICAgIDI4NzMsIDYzOTc3LCAxMTUyMiwgNDE2NjgsIDg1NDksIDEwODYxLCAwLCA2Mzk3NiwgMCwgNjg2MjMsIDAsIDc0NTg1LCAKKyAgICA0MTM5MSwgMCwgOTE3OTAzLCAzNzYsIDY5ODcsIDkyMjEsIDAsIDAsIDg4MjMsIDEyODY5NywgMTI5NDMsIDY1MTg1LCAKKyAgICA0MTg2OSwgMTI2MTksIDAsIDEwMTU0LCA5ODMwNDMsIDc0NDM5LCAyMDM5LCAwLCA3NDQ2LCAxNjg0LCA2Mzk3OSwgMTA5NzQsIAorICAgIDQ1OCwgMTIwNjIwLCAwLCA2OTc5MSwgMTI3MTYxLCAxMTkxNiwgNjUwMTYsIDAsIDY5NjcxLCA0MjExNSwgOTgzMTMzLCAKKyAgICAxMjI4OCwgNzgwNTcsIDAsIDE0OTMsIDQyMTExLCA3NTUzLCA0MDk3LCAxMjgxOTksIDEzMDgwLCAwLCA2NTgwOCwgNjYxMCwgCisgICAgNjAzMCwgODA1OSwgNzUwOCwgMTMxMzEsIDAsIDk4MzQyMywgMCwgODc5NCwgNDEyNzgsIDQxNjI5LCAxMjE1NCwgMTI4MTkyLCAKKyAgICA0MTI3NywgNjQ2NTgsIDAsIDY0MzgwLCA2NjI1LCA3NDM1NCwgMTk5MDQsIDAsIDAsIDAsIDY1MzcxLCA3MDc4LCAwLCA4MzMsIAorICAgIDAsIDYzNjksIDAsIDEwOTc5LCA0MTk1MywgMCwgNDE0MzQsIDYwNjIsIDAsIDAsIDE5OTE2LCA2OTEzLCA5MzMsIDEzNDEsIAorICAgIDk4NDIsIDY3MjAsIDY1NzQ0LCAwLCA5ODM1OTIsIDEyODI5NSwgMCwgNzQwNSwgMTAxMDUsIDY1ODEwLCAwLCA0MTYzMiwgCisgICAgNzQ5MywgNTUyOTAsIDAsIDQxNjIyLCAwLCAwLCAxMTk1NTYsIDc0NTg0LCA3NjMyLCA5NzE2LCAxOTk1NCwgOTgwNSwgCisgICAgNTk5MCwgOTAwLCAwLCA2Mzk1NywgMCwgMCwgMzYxMiwgMCwgNjQzNzYsIDkzOTg3LCA1Mzg5LCA5MjU5NywgMCwgNjU5MzgsIAorICAgIDI4MzksIDk2MjEsIDU4MiwgMCwgNzQzNjgsIDM3NDksIDY5NDksIDc1NjksIDc0MDYxLCAwLCAwLCA2OTU2LCA0NDAzLCAKKyAgICAxOTk2MiwgNjU1NTksIDMyOTksIDAsIDkxNzU2NiwgMTE5MTI3LCA5MDAyLCAwLCA3NDM3MiwgNzQyMzYsIDg0NzgsIDc1OTgsIAorICAgIDU0NiwgNDI0NjksIDY1NTY5LCAxOTE4LCA5NTQyLCA0NzIsIDc3MTYsIDEwMzE5LCAxMDM4MywgNjk5NiwgMCwgNjM5NTIsIAorICAgIDg0MjUsIDM2MDIsIDgzMjgsIDExNzY0LCAxMTg4OTQsIDAsIDY5Nzk2LCA0MTE4MywgMTI5MDcsIDEwMjcxLCAxMDI4NywgCisgICAgNjg0LCA0MzUyNSwgMCwgMjg1NCwgMTE5NTg2LCA0NTkyLCA2NTc1NSwgMCwgOTIyNTYsIDExOTYzLCA0MzYyMCwgMCwgCisgICAgNzgyNDksIDAsIDEyODU1MSwgMTI4ODA5LCA5ODgxLCA0MzExNSwgNjU3NTcsIDM0MTUsIDExOTEzMSwgMCwgODY0OCwgMCwgCisgICAgNjc0MSwgNDMwNDcsIDAsIDEzMTgwLCAxMjg1MTcsIDQxOCwgOTE3OTcyLCA2NDQ5NSwgMTAyOTUsIDEwMzI3LCAxMDM5MSwgCisgICAgNDE3NTIsIDc0MzM5LCA4NjQxLCA0MTQ0OSwgMCwgNzQxMDAsIDAsIDEwOTExLCA2OTQyLCAwLCAxMDI0LCA0Mjg0OSwgCisgICAgNDE3NTEsIDY5Nzc2LCA4OTQxLCA5ODM1NTYsIDQ1NTQsIDAsIDkwMjMsIDExNjg1LCAwLCA5OTI4LCA3ODYxNywgMCwgCisgICAgMTE0MzcsIDQzNzQxLCA5MjE2MywgMTIwNzAwLCA2Mzk2NywgOTgzNDc1LCA0MTIwNiwgMTIwNzI0LCA5MDQ5LCA0MTE4NSwgCisgICAgNDMxNjYsIDAsIDExNjgwLCA5MjYxOSwgMTE2ODYsIDc4NTQ0LCA2NTIyNCwgNDU2NSwgNDY1NSwgMTE5NTUzLCAwLCAKKyAgICA5MjE4MywgNjQ1MjMsIDEwMzQzLCAxMDQwNywgMCwgNjY2NzEsIDExNDY2LCAwLCAxMjgwMDMsIDQyODkwLCA3NDAxMywgCisgICAgMTIwNTAsIDY4MjAxLCAyODYwLCAwLCAwLCAwLCA0Mjc5MiwgNTc0MywgMTA0MjQsIDEyMDY1LCA0Mjg3MiwgMCwgOTIzNDIsIAorICAgIDAsIDg4NzUsIDAsIDAsIDkxNzk5MSwgNzUzMSwgMTI4NDcsIDI0MTMsIDAsIDc4NjM1LCA5NjIsIDAsIDEyODU1LCA0MTE5NiwgCisgICAgNDI1NjQsIDAsIDE1ODIsIDk4MzcwNiwgNTUwOCwgMCwgMCwgMCwgMTA4MDEsIDY5ODc2LCA5MjM1NCwgMCwgNzE3MywgNDk2LCAKKyAgICAxMDQzOSwgNDMxMywgNjQ2MDcsIDY5NjM4LCA3ODYwLCAwLCA5MDYsIDQyNzkzLCAyODQyLCA2NDA1LCA2NDcyMiwgMTMxMzIsIAorICAgIDc5OCwgNjQ2OTQsIDEyODAxLCA4NDA2LCAxMTUzLCA5MjE3MywgNjQ3ODgsIDAsIDgwNTQsIDkxNzQsIDEyODY1MiwgCisgICAgOTE3OTc2LCA5OTY0LCA3NDQwOSwgNDE2MTEsIDQ2NDIsIDY2NTc0LCAxMTU1NiwgOTE3OTgyLCAwLCA3ODg1NywgNDIwODksIAorICAgIDc4ODU1LCA5MDA4LCAwLCAxMjY1OTIsIDE5NTA5NiwgNDIwNzksIDkxNzk4MSwgNzc5MjQsIDQyNTEzLCA3NzkyNywgCisgICAgNDI4NDIsIDczOTg1LCA2NTI4NSwgMTE4OTc0LCAxMjcwMDMsIDk4MzY5MywgMCwgMCwgMCwgMTEzMzUsIDY0MDY5LCAKKyAgICA0MjA5MywgMzkyMCwgMCwgMCwgMCwgMCwgNDU4MCwgNDE5NjcsIDk4MzcyMywgNjQzODQsIDkyMTY3LCA5Mzk4NCwgMzAyMSwgCisgICAgNDIwMDQsIDAsIDAsIDQyMzE3LCA0MTk5OCwgMCwgNjk0NiwgMCwgMCwgMCwgMTI4MTkzLCA2NTIwNCwgMCwgNjgxMTMsIAorICAgIDQyNjkwLCA5ODgwLCA0MjAxMCwgNzQ4MjQsIDY0NTg5LCAxMDExMSwgNjQ4NzUsIDEyNzg4MCwgNjgzOTksIDQzOTk4LCAKKyAgICAxMTM2MCwgMCwgMCwgMCwgMTE4ODI2LCA0MjE0OSwgMCwgMCwgMCwgNjQ5NDEsIDc3OTE5LCAxMjA0MjEsIDEyODA3NywgMCwgCisgICAgNTUyNDcsIDQxMTAsIDY2MDA1LCA2OTU5LCAxMDkyOSwgMTE5MTEwLCAwLCA2NjcwMywgNzc5MjEsIDg2MTcsIDQxOTgyLCAKKyAgICA2MDI1LCA2OTI0MiwgOTgzMTc2LCAwLCAwLCAwLCA5NTk3LCA0MjA5OSwgNDMxNzIsIDk4MzM2OCwgMTAxMTcsIDk4MzE2OSwgCiAgICAgOTIyOTcsIDQxNjM2LCAwLCAwLCAxMjA2ODEsIDgzMDEsIDAsIDAsIDE4NywgMCwgNjU2NjksIDEyODMzOSwgNDk2MywgMCwgCi0gICAgMTI3NTE3LCAwLCA4OTY0LCA2NTY3NiwgNjU3ODUsIDAsIDQxOTQ4LCAwLCAwLCAwLCA0MTk0MiwgNjU0NDksIDMxNjAsIAotICAgIDEwMDgxLCAxMzIyNiwgNDIxMjEsIDQyNDc1LCA0MjY2MywgMTI4MjEwLCA0MTc2NiwgMCwgNjU4ODIsIDc4ODQ5LCA0MTc2MCwgCi0gICAgMTE4OSwgOTA1LCA0ODAsIDEwOTg1LCA0MTczMywgNjc4NTksIDk2MjksIDY3NDIsIDE3NDUsIDQzNjI1LCA3MzgzNSwgCi0gICAgNzg4OCwgMCwgMzk4MCwgMCwgNDI2NTYsIDQxNTA3LCA4ODA2LCA3MDIzLCAwLCA3NDI3OSwgOTQ0NywgNzg2NTEsIDc4NjcsIAotICAgIDY5MjE4LCA2MjM2LCAwLCAwLCAxMDUwNSwgMCwgMTI4NTEsIDExODk0OCwgMzQ4LCA1NDc0LCAxMjg4NDMsIDMxMDMsIDAsIAotICAgIDQxNzUzLCAxMjg1NDAsIDAsIDAsIDc4ODQ0LCA3ODg0NSwgNDE3MzksIDc4ODQzLCA0MjUxNSwgMTA5MzEsIDQxNzU2LCAKLSAgICA0MzM0NywgNDI1NjAsIDUzOTEsIDQxNzQ2LCAxMTkxNDcsIDkyNTkxLCA0MTI1OSwgNTU2MSwgNzQzNjAsIDI2OTEsIDAsIAotICAgIDY1NTUzLCA3OTMzLCA1NTYyLCA2OTgwMCwgMTI4MjY1LCA0MTI2MiwgMTI4MTQ2LCA2NDQyMSwgNzQ4NDYsIDQxMjUxLCAwLCAKLSAgICAwLCAzOTc5LCAwLCAwLCA3NDgxMywgMCwgMCwgMCwgMCwgOTI1MjQsIDQxMjY2LCAwLCAwLCAxMjg4MzYsIDEwNTg1LCAKLSAgICA2NTc0MSwgNDE3MzcsIDk1NzQsIDI2NjYsIDAsIDQxNzM4LCA4MzEsIDQxOSwgMTMxMjYsIDEwNzE2LCAwLCA0MjgyMiwgMCwgCi0gICAgNjQzNCwgMCwgNjkzOSwgNzc2NiwgNjQzMiwgMTI4MTA2LCAwLCA5MTYsIDc2OSwgNDE3NDIsIDExOTY4LCA3NDgwNSwgCi0gICAgNjQzMywgNTU2MywgNTQ3LCAxOTQzLCA2NDM5LCA1NTYwLCA0OTk0LCA0ODcsIDAsIDQ0OTcsIDM3NTQsIDEyNzA1NiwgCi0gICAgMTIwNDI0LCA5MDM5LCAwLCA0MTc3NiwgMCwgODcxNiwgMTU5NSwgNDE2MTUsIDAsIDAsIDc0MjYwLCAwLCA0Mjg1NCwgCi0gICAgNDMyMTksIDEyODcwOSwgMCwgMTIxODUsIDEyODg3OSwgMCwgNjgzNTUsIDY4MzU3LCAwLCA0Mjg1NiwgODYzNCwgMCwgMCwgCi0gICAgNDIwOSwgMTIwNzAyLCAwLCA2NTg3OSwgNDE1MzgsIDY1NjEyLCAxMjc1NDMsIDY2OSwgNTY3OSwgMCwgNjk3ODYsIDkyNTQwLCAKLSAgICAwLCAwLCA1Njc4LCAxMTgyMSwgMCwgNjcxMSwgNDYwLCAwLCAwLCAwLCAwLCAxMjA3NDcsIDAsIDAsIDc4MDUwLCAxMTkwMjIsIAotICAgIDAsIDAsIDAsIDc3ODIsIDkwNDQsIDQ5NzQsIDExNzYwLCA3ODQ5NCwgNzU3NywgNjU3MTEsIDQxOTEyLCAxMjE2LCAwLCAKLSAgICAxMjgwNzksIDU3OTIsIDAsIDAsIDc4NTAxLCAwLCAyOTMzLCAxMjI0NCwgMCwgNTY4MywgMCwgMCwgNzgxMTksIDE1NDksIDAsIAotICAgIDAsIDEyMDM5OCwgNTY4MiwgNjIwNiwgODY3MCwgMTAyNTYsIDU2ODAsIDkxNzU2OCwgMTAwMDEsIDAsIDY5NzY4LCAxNDQ5LCAKLSAgICAxMDI0MSwgNzgyOTAsIDEyODIyOCwgMCwgMTA1NTIsIDY0MzQyLCA0MTkyMiwgMTI4NTQ4LCA4NTg0LCAwLCA1NTY3LCAKLSAgICAyNzE3LCAwLCAwLCA1NTY0LCA0Mjg4NiwgNDE5MDgsIDQyODgyLCA1NTY1LCAwLCAxMjgwMjYsIDAsIDY1NzA4LCA2NTcwOSwgCi0gICAgNTU2NiwgNjk4MDMsIDY1NzA0LCA2NTcwNSwgMTE5MDQsIDQyODc1LCA0MzM3MywgNDI1MzksIDU5NDIsIDg0NjgsIAorICAgIDEyNzUxNywgMCwgODk2NCwgNjU2NzYsIDc3NzUsIDAsIDQxOTQ4LCAwLCAwLCAwLCA0MTk0MiwgNjU0NDksIDMxNjAsIAorICAgIDEwMDgxLCAxMzIyNiwgNDIxMjEsIDQyNDc1LCA0MjY2MywgMTI4MjEwLCA0MTc2NiwgMTE5MTE0LCA2NTg4MiwgNzg4NDksIAorICAgIDQxNzYwLCAxMTg5LCA5MDUsIDQ4MCwgMTA5ODUsIDQxNzMzLCA2Nzg1OSwgOTYyOSwgNjc0MiwgMTc0NSwgNDM2MjUsIAorICAgIDczODM1LCA3ODg4LCAwLCAzOTgwLCAwLCA0MjY1NiwgNDE1MDcsIDg4MDYsIDcwMjMsIDAsIDc0Mjc5LCA5NDQ3LCA3ODY1MSwgCisgICAgNzg2NywgNjkyMTgsIDYyMzYsIDk4MzEzNCwgMCwgMTA1MDUsIDAsIDEyODUxLCAxMTg5NDgsIDM0OCwgNTQ3NCwgMTI4ODQzLCAKKyAgICAzMTAzLCAwLCA0MTc1MywgMTI4NTQwLCAwLCAwLCA3ODg0NCwgNzg4NDUsIDQxNzM5LCA3ODg0MywgNDI1MTUsIDEwOTMxLCAKKyAgICA0MTc1NiwgNDMzNDcsIDQyNTYwLCA1MzkxLCA0MTc0NiwgMTE5MTQ3LCA5MjU5MSwgNDEyNTksIDU1NjEsIDY5OTMwLCAKKyAgICAyNjkxLCAwLCA2NTU1MywgNzkzMywgNTU2MiwgNjk4MDAsIDEyODI2NSwgNDEyNjIsIDEyODE0NiwgNjQ0MjEsIDc0ODQ2LCAKKyAgICA0MTI1MSwgMCwgMCwgMzk3OSwgMCwgMCwgNzQ4MTMsIDk4MzczMCwgMCwgMCwgMCwgOTI1MjQsIDQxMjY2LCAwLCA2NjU2NiwgCisgICAgMTI4ODM2LCAxMDU4NSwgNjU3NDEsIDQxNzM3LCA5NTc0LCAyNjY2LCAwLCA0MTczOCwgODMxLCA0MTksIDEzMTI2LCAKKyAgICAxMDcxNiwgMCwgNDI4MjIsIDAsIDY0MzQsIDAsIDY5MzksIDc3NjYsIDY0MzIsIDEyODEwNiwgNjk5MzIsIDkxNiwgNzY5LCAKKyAgICA0MTc0MiwgMTE5NjgsIDc0ODA1LCA2NDMzLCA1NTYzLCA1NDcsIDE5NDMsIDY0MzksIDU1NjAsIDQ5OTQsIDQ4NywgCisgICAgMTI2NTM3LCA0NDk3LCAzNzU0LCAxMjcwNTYsIDEyMDQyNCwgOTAzOSwgMCwgNDE3NzYsIDAsIDg3MTYsIDE1OTUsIDQxNjE1LCAKKyAgICAwLCAwLCA3NDI2MCwgMCwgNDI4NTQsIDQzMjE5LCAxMjg3MDksIDk4MzQ1MiwgMTIxODUsIDEyODg3OSwgNzAwNzIsIAorICAgIDY4MzU1LCA2ODM1NywgMCwgNDI4NTYsIDg2MzQsIDAsIDk4MzM4OSwgNDIwOSwgMTIwNzAyLCAwLCA2NTg3OSwgNDE1MzgsIAorICAgIDY1NjEyLCAxMjc1NDMsIDY2OSwgNTY3OSwgMCwgNjk3ODYsIDkyNTQwLCAwLCA5ODM0NTYsIDU2NzgsIDExODIxLCAwLCAKKyAgICA2NzExLCA0NjAsIDAsIDAsIDk4MzQ1MywgMCwgMTIwNzQ3LCAwLCAwLCA3ODA1MCwgMTE5MDIyLCAwLCA5ODM0NTQsIDAsIAorICAgIDc3ODIsIDkwNDQsIDQ5NzQsIDExNzYwLCA3ODQ5NCwgNzU3NywgNjU3MTEsIDQxOTEyLCAxMjE2LCAwLCAxMjgwNzksIAorICAgIDU3OTIsIDAsIDAsIDc4NTAxLCAwLCAyOTMzLCAxMjI0NCwgMCwgNTY4MywgOTgzMzg0LCAwLCA3ODExOSwgMTU0OSwgMCwgMCwgCisgICAgMTIwMzk4LCA1NjgyLCA2MjA2LCA4NjcwLCAxMDI1NiwgNTY4MCwgNjk5MzUsIDEwMDAxLCAxMjg1MTIsIDY5NzY4LCAxNDQ5LCAKKyAgICAxMDI0MSwgNzgyOTAsIDEyODIyOCwgMCwgMTA1NTIsIDY0MzQyLCA0MTkyMiwgMTI4NTQ4LCA4NTg0LCA2ODAzMCwgNTU2NywgCisgICAgMjcxNywgMCwgMCwgNTU2NCwgNDI4ODYsIDQxOTA4LCA0Mjg4MiwgNTU2NSwgOTgzMjQ4LCAxMjgwMjYsIDAsIDY1NzA4LCAKKyAgICA2NTcwOSwgNTU2NiwgNjk4MDMsIDY1NzA0LCA2NTcwNSwgMTE5MDQsIDQyODc1LCA0MzM3MywgNDI1MzksIDU5NDIsIDg0NjgsIAogICAgIDEyMDU2MSwgMTAzNjEsIDEwNDI1LCA2NTY5NywgNjU2OTgsIDY1Njk5LCAwLCA2NjU5OCwgMCwgNjQ2NjQsIDEwNjQ3LCAKLSAgICA3ODcwMiwgNzg3MDMsIDc4NjkwLCA0NTcsIDc4NTAyLCA2NTcwMSwgMTkzNCwgNDMwMDYsIDAsIDg4MDIsIDc4NzEwLCAKKyAgICA3ODcwMiwgNzg3MDMsIDc4NjkwLCA0NTcsIDc4NTAyLCA2NTcwMSwgMTkzNCwgNDMwMDYsIDExOTkwMywgODgwMiwgNzg3MTAsIAogICAgIDY1MTMwLCAxMTc0NywgNzg3MDksIDYwODcsIDc4NzA1LCA3ODcxNiwgNDE3NTcsIDc4NzExLCA4MDQzLCA4OTUwLCA2NTY5NCwgCiAgICAgNjQ0ODUsIDQzNTM0LCAxMDQ1NywgMCwgMTE5NjEsIDc4NzI1LCA3ODcyMiwgNzg3MjMsIDc4NzIwLCA3ODcyMSwgMCwgCi0gICAgNjU1MTUsIDk0OTksIDEwMDM1LCAxMzA2OSwgMCwgMCwgOTg4OSwgNjgxODQsIDQyODA2LCAwLCA3MjU2LCAwLCAwLCAxNjY3LCAKLSAgICA0MjE2MSwgMCwgNDI0MjgsIDAsIDY5MzQsIDAsIDEwODAyLCA2NDg2MSwgNjU1NiwgNzgzOTAsIDAsIDgxMDEsIDM2MTAsIDAsIAotICAgIDQxNzQ4LCA0OTk1LCA5NTUsIDY1OTA3LCAxMTkyMDgsIDUzNTAsIDY0MzM5LCA3ODMwNiwgNjQ1NDksIDEwODc1LCAKLSAgICAxMjg2NjIsIDU0NzcsIDY1NjkyLCAwLCAxMjg1MzIsIDEyMDM5NywgMTI4OTYsIDEwNDU2LCA5MTc5NTQsIDAsIDM4NzQsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDY1NjAzLCAwLCA2NTY4NywgMCwgNDEwMzgsIDc0MDA5LCAxMTk1NzAsIDQyMjM5LCA4NTM2LCAKLSAgICA3ODc0MCwgMCwgNzg3MjYsIDc0NDMyLCA3MjQsIDAsIDE0NTUsIDc4NzQ5LCA3MTgzLCA2NDU4MywgNzg3NDcsIDY4NDQzLCAKLSAgICA0MTc1LCA3ODc0MSwgNDM2MTQsIDY5ODAxLCA5MzksIDAsIDQzNTIwLCA2ODYxMywgNzQ1NjksIDkxNzk1OCwgMCwgNzg3NjMsIAotICAgIDc4NzY0LCA3ODc2MCwgMTA3ODgsIDYwODgsIDc4NzU5LCA3ODc1NSwgMTkwLCAwLCAxMjU5MywgMCwgODE4OCwgNjQ0MDgsIAotICAgIDAsIDQ0MTcsIDAsIDkyMjYxLCA2MzcwLCAwLCA3ODI3LCA2ODQ0MSwgNjk2NSwgMCwgMCwgMTMyMDEsIDEyODIwNSwgMCwgMCwgCi0gICAgNzQzODIsIDczNzgxLCA3OTE4LCA3Mzk4OCwgMCwgMCwgOTE3ODg0LCAxNzI4LCAwLCAxMjA3MTAsIDE3OCwgMTI5NzIsIAotICAgIDkyNjc5LCAwLCA5MTc4ODcsIDkyNTYzLCAwLCAwLCA3ODMyNywgMTIwNDA1LCA2NTY5MCwgMCwgMCwgMTE5MDU0LCAwLCAKLSAgICA5MjUyLCA5MTc4ODksIDQ2NTIsIDY4MzcxLCAwLCAwLCAwLCAxMzA2NSwgOTkyMywgMTA4MDYsIDAsIDExNzYzLCAwLCAKLSAgICAxMjA2ODgsIDY3MjMsIDc4MTg3LCAwLCA2OTkzLCAwLCAwLCA4MzMzLCAwLCAwLCAxMTM5MCwgMCwgNzQ0NjQsIDAsIAotICAgIDkyMzIwLCA3NDA4MCwgMCwgMCwgMTE5MTAsIDkyNTU5LCA4Mjc4LCA4OTYzLCA0MDM0LCAxMjg1NjAsIDAsIDY1MzQ0LCAKLSAgICAxMjA1MTcsIDQxNzQ3LCAwLCAwLCA4Njc3LCAwLCAxMjcwNywgOTM1MCwgNjYwMzcsIDEyODE4MCwgODgzNiwgMTIzMTUsIAotICAgIDEyNzQ3LCA4MzAwLCAwLCAwLCA3NDkxLCA4ODU2LCAxMjgwNjQsIDAsIDQzMTUwLCAxMjc3NjgsIDEyMDQwNCwgNjUzODksIAotICAgIDEyMDQwMiwgMTIwNDAzLCAxMDgxMywgMjU5MiwgMTI4NTMsIDQzMjY5LCA3MjYzLCAxMjAyNDQsIDY1MzYsIDEyMDIzOCwgCi0gICAgMTIwMjM5LCA2NTUxNiwgMTIzMjEsIDEyMDM5MSwgMTIwMzg4LCA1NTI4NywgMTAwMDcsIDEyMDI0NiwgOTU4OCwgMTIwMjQ4LCAKLSAgICAxNTk2LCAxMjAzODMsIDQxOTk0LCA2NTgwMSwgMTI4ODA4LCAwLCA2NjU3MiwgMCwgMCwgMTA2MTMsIDY2OTcsIDEyODA1LCAKLSAgICA0MTkyOCwgNDA5ODEsIDc4NDAzLCA3ODQwOSwgNTAwNiwgNjQzMjgsIDAsIDk5MzEsIDAsIDg4MjUsIDc0NTU1LCA2NTk0MCwgCi0gICAgNDMyNTksIDAsIDYxMDcsIDAsIDExOTE3NywgMCwgNzg0MDEsIDEyODY0MSwgMTE3ODMsIDMzNSwgMTIwMjI3LCA2NDY4OSwgCi0gICAgNDM4LCA0NTEwLCA1NzY1LCA4NzIxLCAxMjAyMzMsIDExOTIyNywgNjA5MiwgMTI4NDAsIDQzMTEyLCA4ODc2LCAxMjAyMzEsIAotICAgIDgwOTYsIDEwMjg0LCAxMjg1MTUsIDAsIDAsIDEwMzgwLCA4NzMzLCAwLCAxMjgyNDAsIDQxNjAyLCAwLCA5MjMwOCwgCi0gICAgNzQ4MzEsIDkxNzkwMSwgMCwgNzM3NDcsIDY1Mzk5LCAwLCA2NDU5MSwgNDI0MDUsIDAsIDEyMDgyMCwgODQzLCAxMTU0MSwgCi0gICAgMCwgOTE3ODk4LCAyMDY1LCA0MTkzNSwgNzQ0OTYsIDQxOTAyLCAwLCAwLCAyMTUsIDQxMjU4LCA3Nzg3NSwgNDMxNTksIAotICAgIDE5NTMsIDk1NzksIDQxOTM4LCAxMjU2LCAzOTEwLCA5NDA3LCA2MjQyLCAwLCAwLCA0MTI1NywgNDE5MDAsIDg2NzUsIAotICAgIDEwNzAwLCA4ODA1LCAxNzQyLCAwLCA5MzMzLCA4MjAyLCAxMjc3NTAsIDAsIDAsIDAsIDAsIDczODgyLCA0OTksIDAsIAotICAgIDQzNDY3LCAwLCA0MzgxOCwgMCwgMTcxMiwgNTkzMiwgNzc4NDUsIDQxNzYyLCAwLCAwLCAxMTk2NywgMTc3NSwgMCwgMCwgMCwgCi0gICAgMCwgMTI4MDA5LCA5NDU4LCAwLCA2NDcwLCA5MTgwLCAxMjAzODAsIDQzMTc2LCAwLCAwLCA0Mjc4MiwgMCwgMCwgMCwgCi0gICAgMTI4MzA5LCA3NDc3NywgMTIwNjY5LCA5NDE0LCAxMjAzODIsIDczNzgyLCA3Mzk2OSwgNTY1LCA0MjQ4NCwgNTc5NCwgMjAxLCAKLSAgICAyNjYyLCA0MjI5MiwgMCwgODI1NCwgMCwgMTA5NzUsIDAsIDEyMDYyNSwgNzQ3NjMsIDEwMjIsIDQxMDgsIDM4ODAsIAotICAgIDc0MjQ3LCAwLCAwLCA5MjI2MywgOTE3OTgwLCA3NTA3LCAwLCA0MzE0OSwgMCwgNjUwMzEsIDc5NjEsIDE2MzYsIDAsIAotICAgIDY1MDI5LCA2NTAyNCwgMCwgMTI0NzMsIDY1MzQsIDAsIDk5LCA5OCwgOTcsIDEyMDU3MSwgNjc1ODQsIDQwNDksIDc0MTYzLCAKLSAgICAxMjcwNjUsIDcwOTAsIDAsIDc4OTIsIDkxNzk2OSwgMTA3NzcsIDkxNzgwMywgNjUzMTAsIDY1NTYyLCA2NjU5OSwgNjY3MjIsIAotICAgIDAsIDgwMzksIDMzNjMsIDY2NTk0LCA0MzQzNCwgMCwgMCwgMTI1OTYsIDY2NTk1LCA0MjI1OCwgNDI1NzAsIDU1OTMsIAotICAgIDExOTE0OCwgMTIwNzExLCA5MjQyNSwgMTAxMDAsIDYwNjEsIDY0ODU0LCAxMTksIDExOCwgMTE3LCAxMTYsIDEyOTk4LCAKLSAgICAxMjIsIDEyMSwgMTIwLCAxMTEsIDExMCwgMTA5LCAxMDgsIDExNSwgMTE0LCAxMTMsIDExMiwgMTAzLCAxMDIsIDEwMSwgCi0gICAgMTAwLCAxMDcsIDEwNiwgMTA1LCAxMDQsIDY0MzYsIDczOTc0LCA1MzQsIDQxMjEyLCA3NzkzMSwgMTUzNiwgNjQwOTMsIAotICAgIDczOTcwLCA3NzkzMCwgMTI3MTU3LCAwLCA2MDIwLCAxMjcxNiwgMTI3MTEyLCAxMjc0NCwgNDc1LCAxMjAzOTQsIDEzMjY2LCAKLSAgICAxMjc4MTMsIDEyNzExMSwgMCwgNzM5MjYsIDAsIDEwNjQ1LCAxMjEyLCA2NTQzLCAwLCA4MTM0LCAxMjgwMjgsIDI5MTMsIAotICAgIDczODcwLCAxMjcxMTMsIDE4NjYsIDAsIDE5NTA5NSwgMCwgODkyMywgMTY0NSwgMTIwNTksIDY2NTg1LCA3ODc4NiwgMzE5NiwgCi0gICAgMCwgMCwgNTkzNSwgMTI1MCwgMTI3MDY2LCA4MTc0LCA5Nzg3LCA2NzMzLCA5ODU5LCA3OTE2LCA5ODYxLCA5ODYwLCA1MjU4LCAKLSAgICAxODgyLCAxODkyLCA2NzMxLCAxMDg4MiwgNDA1LCAxMTQ1NCwgNzM5MTEsIDAsIDEyODc4MSwgNDExNjksIDg5MzksIAotICAgIDQxMjQ1LCAwLCA0MTE3MCwgMTQ1NCwgMTEzNjksIDY0NzcsIDEyMTU3LCAwLCAwLCAwLCA0MTE3MiwgNzg1NSwgMCwgMCwgCi0gICAgMTA0ODAsIDAsIDAsIDc3OTM2LCA4MjY0LCAxMjYxMCwgMCwgNjQ1LCAwLCA3NjA5LCA0MDk3MywgMCwgNzM4MzMsIDc4MjQ5LCAKLSAgICA1ODI0LCA5ODQsIDc3OTE4LCAxMDY4OCwgNTg1MSwgMCwgNzcyOSwgNzM5ODIsIDEyMDUxOCwgMCwgMTk1MDg2LCA0MzM2OSwgCi0gICAgMCwgMTI4MTQwLCA2ODQxNSwgMCwgNDUzOCwgMTIwNDA2LCA0MzE0MSwgMCwgMCwgNzQyMTQsIDczODg2LCAwLCAwLCAKLSAgICAxMTg5MDIsIDQzMDA1LCA3ODQ0OCwgOTU1MiwgMCwgMCwgMCwgMTI5OTcsIDAsIDAsIDAsIDAsIDIzODEsIDEyODgzLCAKLSAgICAxMDk5NCwgMTA1MjksIDQxOTA2LCAwLCAwLCAwLCAxMjQyNSwgMTA2NjEsIDEwODU2LCA5NjE0LCAyNDI4LCA0MTQ3OCwgCi0gICAgODU4MiwgMTAwNjQsIDczOTMwLCAwLCAwLCAwLCA2NDg5NiwgMTE5MTYyLCAxOTUyLCA5MjE4MSwgODQ1NSwgMTAwODIsIAotICAgIDExNTc1LCAwLCAxMTk1NjYsIDAsIDEyODA4LCAxMjE4MywgNjE0NSwgMTE4OTU1LCA2NDkyOSwgOTI0MzMsIDAsIDAsIAotICAgIDQzMTg2LCA0MjUwOSwgMCwgMzkyMiwgOTE4NywgMCwgMCwgMTAxOTEsIDExOTA1NywgMTE3NTIsIDMzNTMsIDkzNTgsIDAsIAotICAgIDkxNzk1NywgNjY2ODAsIDEyMDA5MCwgODI0OCwgNzkzMSwgODU1OCwgOTc5NSwgNjgzODAsIDAsIDAsIDEyMDA4MiwgCi0gICAgMTIwMDgxLCAxMjAwODQsIDQxMDI3LCAxMjAwODYsIDAsIDEyMDA4OCwgMTIwMDg3LCA3MDE5LCAxMjAwNzMsIDAsIDExNzUxLCAKLSAgICAxMjAwNzgsIDc4Mjk0LCA2NDY1NywgODY1NywgMTIwMDQ4LCA4NTk0LCAxMjAwNjgsIDAsIDAsIDEyMDA2OSwgMTIwMDcyLCAKLSAgICAxMjAwNzEsIDAsIDAsIDQzMTU0LCA0MTAyOSwgMCwgMTEzMzIsIDY1MzgwLCA3NzI4LCAwLCAxMTI5NCwgMCwgNjY2NjUsIAotICAgIDc4NTEsIDAsIDgzNzUsIDg2OTksIDAsIDQyNTI0LCAwLCA5MDg1LCAwLCA3NTA0LCA5MzI3LCA2MTYwLCAxMjgwOTUsIDAsIAotICAgIDAsIDgwODgsIDAsIDc0MDEyLCA5MjUwMCwgMCwgNDQzOSwgNjkyNiwgMCwgMTI5MjQsIDEyODIyNywgNDIzNjksIDAsIAotICAgIDY1NDkxLCA2NTE0NSwgOTA0MSwgNDM1NTksIDY0NTc3LCAxMDgyNiwgMCwgMTEyOTYsIDAsIDAsIDAsIDY1ODI1LCA5NTc3LCAKLSAgICA2ODE5OSwgMCwgNjQ2NzAsIDAsIDc4MDU2LCA2NzkzLCAxMTI5NSwgMCwgNzgwNTMsIDczODcyLCAwLCAwLCAxMDkwMiwgMCwgCi0gICAgMCwgNzgwNzAsIDc4MDY4LCAxMDQ3MiwgMjk5NSwgMCwgMCwgNjQ2ODIsIDIzNzEsIDc4MDY5LCAxMjA4MDgsIDI1OSwgCi0gICAgMTAwOSwgOTIxNzEsIDI0MDIsIDIzMzMsIDY0NDAsIDAsIDAsIDY1MTI1LCA0MTI0NCwgMCwgMTMyNzEsIDkxMDMsIDQxMTgwLCAKLSAgICAwLCAwLCAwLCAwLCAxMDIxOSwgMCwgMCwgMCwgMCwgNDMxNzgsIDEyNzA3MCwgNDEyNjEsIDExOTM2MiwgNDM2NDAsIDg2MTMsIAotICAgIDAsIDExODk4OSwgNjczNiwgMTk1MDkyLCA0MTQ5MiwgMTIwMDUsIDEyNzg4OSwgMCwgMTg5MCwgMTIwMDU2LCAwLCAwLCAwLCAKLSAgICA3MjkzLCA3OTkxLCAwLCAxMDU3OCwgMCwgNzgwNzYsIDE5NDczOCwgNzgwNzcsIDAsIDAsIDc4ODAwLCA5MjY1MywgNjQ0NDUsIAotICAgIDQyNjY4LCA2NjM1LCAwLCA2MTY0LCA2NTE3MCwgMCwgMCwgNzY3NiwgMTE2NjQsIDAsIDAsIDY5NzA3LCAwLCAxMTg4MTIsIAotICAgIDAsIDAsIDEyODA0NSwgOTE3NSwgMTE5MjUsIDc4MDQ1LCA5MDg4LCAwLCA2NDU0NSwgMTM5NiwgMCwgNzU0NiwgMzg0NywgMCwgCi0gICAgMTI3ODM1LCA0OTg1LCAxMzI4OCwgNjcyLCA4MDk4LCA0MzE5NiwgMTk0NzQ2LCAwLCAxMjgxMjYsIDAsIDc0MDQzLCAKLSAgICA2NTA3MiwgMTU3NywgMTE3NzIsIDEzMDQxLCA1OTI4LCA0NTI1LCAxMDY1OCwgNjU5MTEsIDEyNjYsIDEwMTgwLCAwLCAKLSAgICAxMjg1ODQsIDEyNjIyLCAwLCAwLCAwLCAxOTQ3MTQsIDEyNzEzOSwgMTMzMTAsIDc3MywgMTk5MzMsIDE1MzksIDAsIAotICAgIDEyNjk4MywgNDI3MzEsIDkyMjA1LCAwLCAwLCAwLCAzMDUxLCA1ODYyLCA3ODIzLCA5MjQ3OCwgMCwgMTIwNDExLCAzMjUwLCAKLSAgICA0Mzk5MSwgNjk2ODcsIDY2NjQ5LCA5NTEwLCA2NjIzNywgMCwgMCwgNDEwNjYsIDY0NjczLCA5MTc5NjMsIDkxNzk2NCwgMCwgCi0gICAgMzUwNSwgODcwNywgOTE3OTY4LCA2NzI1LCAxMjgwMTMsIDkxNzk3MSwgOTIzMTQsIDM0NzEsIDkxNzk3MCwgNTQ3OSwgODgyLCAKLSAgICA2Njg2LCAxMTk1ODQsIDExNjEzLCAxMjA3NzIsIDQyNzU0LCAwLCAwLCA5MjY5NiwgMCwgMCwgMCwgMTI4NTIzLCAzMjI1LCAKKyAgICA2NTUxNSwgOTQ5OSwgMTAwMzUsIDEzMDY5LCA3MTMwOSwgMCwgOTg4OSwgNjgxODQsIDQyODA2LCAwLCA3MjU2LCAwLCAwLCAKKyAgICAxNjY3LCA0MjE2MSwgMCwgNDI0MjgsIDAsIDY5MzQsIDAsIDEwODAyLCA2NDg2MSwgNjU1NiwgNzgzOTAsIDAsIDgxMDEsIAorICAgIDM2MTAsIDk4MzE5OSwgNDE3NDgsIDQ5OTUsIDk1NSwgNjU5MDcsIDExOTIwOCwgNTM1MCwgNjQzMzksIDc4MzA2LCA2NDU0OSwgCisgICAgMTA4NzUsIDEyODY2MiwgNTQ3NywgNjU2OTIsIDAsIDEyODUzMiwgMTIwMzk3LCAxMjg5NiwgMTA0NTYsIDkxNzk1NCwgMCwgCisgICAgMzg3NCwgMCwgMCwgOTgzNjE5LCAxMjAzMzEsIDAsIDAsIDY1NjAzLCAwLCA2NTY4NywgMCwgNDEwMzgsIDc0MDA5LCAKKyAgICAxMTk1NzAsIDQyMjM5LCA4NTM2LCA3ODc0MCwgNzgzMjQsIDc4NzI2LCA3NDQzMiwgNzI0LCAwLCAxNDU1LCA3ODc0OSwgCisgICAgNzE4MywgNjQ1ODMsIDc4NzQ3LCA2ODQ0MywgNDE3NSwgNzg3NDEsIDQzNjE0LCA2OTgwMSwgOTM5LCAwLCA0MzUyMCwgCisgICAgNjg2MTMsIDc0NTY5LCA5MTc5NTgsIDAsIDc4NzYzLCA3ODc2NCwgNzg3NjAsIDEwNzg4LCA2MDg4LCA3ODc1OSwgNzg3NTUsIAorICAgIDE5MCwgMCwgMTI1OTMsIDAsIDgxODgsIDY0NDA4LCAwLCA0NDE3LCA5ODMyMTEsIDkyMjYxLCA2MzcwLCAwLCA3ODI3LCAKKyAgICA2ODQ0MSwgNjk2NSwgMCwgMCwgMTMyMDEsIDEyODIwNSwgNjk4OTYsIDAsIDc0MzgyLCA3Mzc4MSwgNzkxOCwgNzM5ODgsIDAsIAorICAgIDAsIDkxNzg4NCwgMTcyOCwgMCwgNDM3NjQsIDE3OCwgMTI5NzIsIDkyNjc5LCAwLCA5MTc4ODcsIDkyNTYzLCA5ODMzNzMsIAorICAgIDAsIDc4MzI3LCAxMjA0MDUsIDY1NjkwLCAwLCAwLCAxMTkwNTQsIDAsIDkyNTIsIDkxNzg4OSwgNDY1MiwgNjgzNzEsIDAsIAorICAgIDAsIDAsIDEzMDY1LCA5OTIzLCAxMDgwNiwgMCwgMTE3NjMsIDcwMDE2LCAxMjA2ODgsIDY3MjMsIDc4MTg3LCAwLCA2OTkzLCAKKyAgICAwLCAwLCA4MzMzLCAwLCAwLCAxMTM5MCwgMCwgNzQ0NjQsIDAsIDkyMzIwLCA3NDA4MCwgOTgzMzA3LCA2OTkxMSwgMTE5MTAsIAorICAgIDkyNTU5LCA4Mjc4LCA4OTYzLCA0MDM0LCAxMjg1NjAsIDAsIDY1MzQ0LCAxMjA1MTcsIDQxNzQ3LCAwLCAwLCA4Njc3LCAwLCAKKyAgICAxMjcwNywgOTM1MCwgNjYwMzcsIDEyODE4MCwgODgzNiwgMTIzMTUsIDEyNzQ3LCA4MzAwLCA5ODM3NDEsIDAsIDc0OTEsIAorICAgIDg4NTYsIDcxMzYxLCAwLCA0MzE1MCwgMTI3NzY4LCAxMjA0MDQsIDY1Mzg5LCAxMjA0MDIsIDEyMDQwMywgMTA4MTMsIAorICAgIDI1OTIsIDEyODUzLCA0MzI2OSwgNzI2MywgMTIwMjQ0LCA2NTM2LCAxMjAyMzgsIDEyMDIzOSwgNjU1MTYsIDEyMzIxLCAKKyAgICAxMjAzOTEsIDEyMDM4OCwgNTUyODcsIDEwMDA3LCAxMjAyNDYsIDk1ODgsIDEyMDI0OCwgMTU5NiwgMTIwMzgzLCA0MTk5NCwgCisgICAgNjU4MDEsIDEyODgwOCwgMCwgNjY1NzIsIDAsIDAsIDEwNjEzLCA2Njk3LCAxMjgwNSwgNDE5MjgsIDQwOTgxLCA3ODQwMywgCisgICAgNzg0MDksIDUwMDYsIDY0MzI4LCAwLCA5OTMxLCAwLCA4ODI1LCA3NDU1NSwgNjU5NDAsIDQzMjU5LCAwLCA2MTA3LCAwLCAKKyAgICAxMTkxNzcsIDAsIDc4NDAxLCAxMjg2NDEsIDExNzgzLCAzMzUsIDEyMDIyNywgNjQ2ODksIDQzOCwgNDUxMCwgNTc2NSwgCisgICAgODcyMSwgMTIwMjMzLCAxMTkyMjcsIDYwOTIsIDEyODQwLCA0MzExMiwgODg3NiwgMTIwMjMxLCA4MDk2LCAxMDI4NCwgCisgICAgMTI4NTE1LCAwLCAwLCAxMDM4MCwgODczMywgOTgzMDcyLCAxMjgyNDAsIDQxNjAyLCAwLCA5MjMwOCwgNzQ4MzEsIAorICAgIDkxNzkwMSwgMCwgNzM3NDcsIDY1Mzk5LCAwLCA2NDU5MSwgNDI0MDUsIDAsIDEyMDgyMCwgODQzLCAxMTU0MSwgMCwgCisgICAgOTE3ODk4LCAyMDY1LCA0MTkzNSwgNzQ0OTYsIDQxOTAyLCAwLCAwLCAyMTUsIDQxMjU4LCA3Nzg3NSwgNDMxNTksIDE5NTMsIAorICAgIDk1NzksIDQxOTM4LCAxMjU2LCAzOTEwLCA5NDA3LCA2MjQyLCAwLCA5ODMxMDAsIDQxMjU3LCA0MTkwMCwgODY3NSwgCisgICAgMTA3MDAsIDg4MDUsIDE3NDIsIDAsIDkzMzMsIDgyMDIsIDEyNzc1MCwgMCwgOTgzMTk3LCAwLCAwLCA3Mzg4MiwgNDk5LCAKKyAgICA5ODMwNDksIDQzNDY3LCAwLCA0MzgxOCwgMCwgMTcxMiwgNTkzMiwgNzc4NDUsIDQxNzYyLCA5ODMxMDQsIDAsIDExOTY3LCAKKyAgICAxNzc1LCAwLCAwLCAwLCAwLCAxMjgwMDksIDk0NTgsIDAsIDY0NzAsIDkxODAsIDEyMDM4MCwgNDMxNzYsIDAsIDAsIAorICAgIDQyNzgyLCAwLCAwLCAwLCAxMjgzMDksIDc0Nzc3LCAxMjA2NjksIDk0MTQsIDEyMDM4MiwgNzM3ODIsIDczOTY5LCA1NjUsIAorICAgIDQyNDg0LCA1Nzk0LCAyMDEsIDI2NjIsIDQyMjkyLCAwLCA4MjU0LCAwLCAxMDk3NSwgMCwgMTIwNjI1LCA3NDc2MywgMTAyMiwgCisgICAgNDEwOCwgMzg4MCwgNzQyNDcsIDAsIDAsIDkyMjYzLCA5MTc5ODAsIDc1MDcsIDAsIDQzMTQ5LCAwLCA2NTAzMSwgNzk2MSwgCisgICAgMTYzNiwgMCwgNjUwMjksIDY1MDI0LCAwLCAxMjQ3MywgNjUzNCwgMCwgOTksIDk4LCA5NywgMTIwNTcxLCA2NzU4NCwgCisgICAgNDA0OSwgNzQxNjMsIDEyNzA2NSwgNzA5MCwgMCwgNzg5MiwgOTE3OTY5LCAxMDc3NywgOTE3ODAzLCA2NTMxMCwgNjU1NjIsIAorICAgIDY2NTk5LCA2NjcyMiwgMCwgODAzOSwgMzM2MywgNjY1OTQsIDQzNDM0LCAwLCAwLCAxMjU5NiwgNjY1OTUsIDQyMjU4LCAKKyAgICA0MjU3MCwgNTU5MywgMTE5MTQ4LCAxMjA3MTEsIDkyNDI1LCAxMDEwMCwgNjA2MSwgNjQ4NTQsIDExOSwgMTE4LCAxMTcsIAorICAgIDExNiwgMTI5OTgsIDEyMiwgMTIxLCAxMjAsIDExMSwgMTEwLCAxMDksIDEwOCwgMTE1LCAxMTQsIDExMywgMTEyLCAxMDMsIAorICAgIDEwMiwgMTAxLCAxMDAsIDEwNywgMTA2LCAxMDUsIDEwNCwgNjQzNiwgNzM5NzQsIDUzNCwgNDEyMTIsIDc3OTMxLCAxNTM2LCAKKyAgICA2NDA5MywgNzM5NzAsIDc3OTMwLCAxMjcxNTcsIDAsIDYwMjAsIDEyNzE2LCAxMjcxMTIsIDEyNzQ0LCA0NzUsIDEyMDM5NCwgCisgICAgMTMyNjYsIDEyNzgxMywgMTI3MTExLCAwLCA3MzkyNiwgMCwgMTA2NDUsIDEyMTIsIDY1NDMsIDk4MzI5OSwgODEzNCwgCisgICAgMTI4MDI4LCAyOTEzLCA3Mzg3MCwgMTI3MTEzLCAxODY2LCAwLCAxOTUwOTUsIDAsIDg5MjMsIDE2NDUsIDEyMDU5LCAKKyAgICA2NjU4NSwgNzEyOTcsIDMxOTYsIDAsIDAsIDU5MzUsIDEyNTAsIDEyNzA2NiwgODE3NCwgOTc4NywgNjczMywgOTg1OSwgCisgICAgNzkxNiwgOTg2MSwgOTg2MCwgNTI1OCwgMTg4MiwgMTg5MiwgNjczMSwgMTA4ODIsIDQwNSwgMTE0NTQsIDczOTExLCAwLCAKKyAgICAxMjg3ODEsIDQxMTY5LCA4OTM5LCA0MTI0NSwgMCwgNDExNzAsIDE0NTQsIDExMzY5LCA2NDc3LCAxMjE1NywgMCwgMCwgMCwgCisgICAgNDExNzIsIDc4NTUsIDAsIDAsIDEwNDgwLCAwLCAwLCA3NzkzNiwgODI2NCwgMTI2MTAsIDk4MzMwMCwgNjQ1LCAxMjY2MTYsIAorICAgIDc2MDksIDQwOTczLCA2OTk0MywgNzM4MzMsIDY5OTQ4LCA1ODI0LCA5ODQsIDc3OTE4LCAxMDY4OCwgNTg1MSwgMCwgNzcyOSwgCisgICAgNzM5ODIsIDEyMDUxOCwgMCwgMTk1MDg2LCA0MzM2OSwgMCwgMTI4MTQwLCA2ODQxNSwgOTgzMDkzLCA0NTM4LCAxMjA0MDYsIAorICAgIDQzMTQxLCAwLCA5ODMyMDgsIDc0MjE0LCA3Mzg4NiwgMCwgMCwgMTE4OTAyLCA0MzAwNSwgNzg0NDgsIDk1NTIsIDAsIDAsIAorICAgIDk4MzE1OSwgMTI5OTcsIDAsIDAsIDAsIDAsIDIzODEsIDEyODgzLCAxMDk5NCwgMTA1MjksIDQxOTA2LCAwLCAwLCAwLCAKKyAgICAxMjQyNSwgMTA2NjEsIDEwODU2LCA5NjE0LCAyNDI4LCA0MTQ3OCwgODU4MiwgMTAwNjQsIDczOTMwLCAwLCAwLCAwLCAKKyAgICA2NDg5NiwgMTE5MTYyLCAxOTUyLCA5MjE4MSwgODQ1NSwgMTAwODIsIDExNTc1LCA5ODM0ODIsIDExOTU2NiwgMCwgMTI4MDgsIAorICAgIDEyMTgzLCA2MTQ1LCAxMTg5NTUsIDY0OTI5LCA5MjQzMywgMCwgOTgzMTkzLCA0MzE4NiwgNDI1MDksIDAsIDM5MjIsIAorICAgIDkxODcsIDk4MzYxNCwgMCwgMTAxOTEsIDExOTA1NywgMTE3NTIsIDMzNTMsIDkzNTgsIDAsIDcxMzY2LCA2NjY4MCwgCisgICAgMTIwMDkwLCA4MjQ4LCA3OTMxLCA4NTU4LCA5Nzk1LCA2ODM4MCwgOTgzMjg5LCAwLCAxMjAwODIsIDEyMDA4MSwgMTIwMDg0LCAKKyAgICA0MTAyNywgMTIwMDg2LCAwLCAxMjAwODgsIDczNjYsIDcwMTksIDEyMDA3MywgMCwgMTE3NTEsIDEyMDA3OCwgNzgyOTQsIAorICAgIDY0NjU3LCA4NjU3LCAxMjAwNDgsIDg1OTQsIDEyMDA2OCwgMCwgMCwgMTIwMDY5LCAxMjAwNzIsIDEyMDA3MSwgMCwgMCwgCisgICAgNDMxNTQsIDQxMDI5LCAwLCAxMTMzMiwgNjUzODAsIDc3MjgsIDk0MDc3LCAxMTI5NCwgMCwgNjY2NjUsIDc4NTEsIDAsIAorICAgIDgzNzUsIDg2OTksIDAsIDQyNTI0LCAwLCA5MDg1LCA5NDA0MSwgNzUwNCwgOTMyNywgNjE2MCwgMTI4MDk1LCA5ODM4NTUsIAorICAgIDAsIDgwODgsIDAsIDc0MDEyLCA5MjUwMCwgMCwgNDQzOSwgNjkyNiwgOTgzMDQ3LCAxMjkyNCwgMTI4MjI3LCA0MjM2OSwgCisgICAgNDM1MCwgNjU0OTEsIDY1MTQ1LCA5MDQxLCA0MzU1OSwgNjQ1NzcsIDEwODI2LCAwLCAxMTI5NiwgOTgzMjc1LCAwLCAwLCAKKyAgICA2NTgyNSwgOTU3NywgNjgxOTksIDAsIDY0NjcwLCA5ODMxMjEsIDc4MDU2LCA2NzkzLCAxMTI5NSwgMCwgNzgwNTMsIAorICAgIDczODcyLCAwLCAwLCAxMDkwMiwgMCwgMCwgNzgwNzAsIDc4MDY4LCAxMDQ3MiwgMjk5NSwgMCwgMCwgNjQ2ODIsIDIzNzEsIAorICAgIDc4MDY5LCAxMjA4MDgsIDI1OSwgMTAwOSwgOTIxNzEsIDI0MDIsIDIzMzMsIDY0NDAsIDE5NDc0MSwgMCwgNjUxMjUsIAorICAgIDQxMjQ0LCAwLCAxMzI3MSwgOTEwMywgMjI3OCwgMCwgMCwgMCwgMCwgMTAyMTksIDAsIDAsIDAsIDAsIDQzMTc4LCAKKyAgICAxMjcwNzAsIDQxMjYxLCAxMTkzNjIsIDQzNjQwLCA4NjEzLCAwLCA5NDA0OSwgNjczNiwgMTk1MDkyLCA0MTQ5MiwgMTIwMDUsIAorICAgIDY5OTI3LCAwLCAxODkwLCAxMjAwNTYsIDAsIDAsIDAsIDcyOTMsIDc5OTEsIDAsIDEwNTc4LCAwLCA3ODA3NiwgMTk0NzM4LCAKKyAgICA3ODA3NywgNjk5MjgsIDAsIDc4ODAwLCA5MjY1MywgNjQ0NDUsIDQyNjY4LCA2NjM1LCAwLCA2MTY0LCA2NTE3MCwgMCwgMCwgCisgICAgNzY3NiwgMTE2NjQsIDAsIDk4MzY0OSwgNjk3MDcsIDAsIDExODgxMiwgMCwgMCwgMTI4MDQ1LCA5MTc1LCAxMTkyNSwgCisgICAgNzgwNDUsIDkwODgsIDAsIDY0NTQ1LCAxMzk2LCAwLCA3NTQ2LCAzODQ3LCAxMjcxNzcsIDEyNzgzNSwgNDk4NSwgMTMyODgsIAorICAgIDY3MiwgODA5OCwgNDMxOTYsIDE5NDc0NiwgOTgzMDk2LCAxMjgxMjYsIDQyNjU1LCA3NDA0MywgNjUwNzIsIDE1NzcsIAorICAgIDExNzcyLCAxMzA0MSwgNTkyOCwgNDUyNSwgMTA2NTgsIDY1OTExLCAxMjY2LCAxMDE4MCwgMCwgMTI4NTg0LCAxMjYyMiwgMCwgCisgICAgMCwgMCwgMTk0NzE0LCAxMjcxMzksIDEzMzEwLCA3NzMsIDE5OTMzLCAxNTM5LCAwLCAxMjY5ODMsIDQyNzMxLCA2Nzk3MiwgCisgICAgMCwgMCwgMCwgMzA1MSwgNTg2MiwgNzgyMywgOTI0NzgsIDAsIDEyMDQxMSwgMzI1MCwgNDM5OTEsIDY5Njg3LCA2NjY0OSwgCisgICAgOTUxMCwgNjYyMzcsIDk4MzI5NCwgMCwgNDEwNjYsIDY0NjczLCA5MTc5NjMsIDkxNzk2NCwgMCwgMzUwNSwgODcwNywgCisgICAgOTE3OTY4LCA2NzI1LCAxMjgwMTMsIDkxNzk3MSwgOTIzMTQsIDM0NzEsIDkxNzk3MCwgNTQ3OSwgODgyLCA2Njg2LCAKKyAgICAxMTk1ODQsIDExNjEzLCAxMjA3NzIsIDQyNzU0LCAwLCA5ODMyOTgsIDkyNjk2LCAwLCAwLCAwLCAxMjg1MjMsIDMyMjUsIAogICAgIDkxNzk5NiwgNDQzMywgNDExNTYsIDQzOTczLCA0MzE3MywgMTQ0MywgNDM4MSwgMCwgMCwgMTA5MjYsIDExNzU2LCAxMTc1NywgCiAgICAgNjQ4NzksIDkxNzk0OSwgOTE3OTUwLCAxMjc4NDgsIDEzMjI3LCAwLCAxMDAyMSwgNTE2MCwgMTM4NywgMCwgOTE3OTUzLCAKICAgICA0MTQxOCwgMCwgNjU5MTQsIDY3MjEsIDIxNywgOTE3OTU1LCA5MTc5NjAsIDkxNzk2MSwgMTA0NDMsIDEwNzg5LCA0MTE1OCwgCi0gICAgMTE5MjU3LCA0Mjc0LCAwLCA0MTQ4MywgMCwgNDEyNTAsIDAsIDQyMTc5LCAwLCA1OTMxLCAxMTc0NCwgNjkyMzIsIDAsIAotICAgIDQxMjUyLCA2NjY4MiwgMCwgMTE5NjM3LCA0MTI0OSwgMTM2NiwgNjQ2MzUsIDY1MDQ3LCAxMjQ2NiwgMCwgMCwgNDM5NywgCisgICAgMTE5MjU3LCA0Mjc0LCA5ODMyOTIsIDQxNDgzLCAwLCA0MTI1MCwgMCwgNDIxNzksIDAsIDU5MzEsIDExNzQ0LCA2OTIzMiwgCisgICAgMCwgNDEyNTIsIDY2NjgyLCAwLCAxMTk2MzcsIDQxMjQ5LCAxMzY2LCA2NDYzNSwgNjUwNDcsIDEyNDY2LCAwLCAwLCA0Mzk3LCAKICAgICAxMjgwMzcsIDEyODMzNiwgNDEyOTYsIDk1NDUsIDQxMjkxLCAxMjgwNDksIDAsIDQxNDg1LCAzNTExLCA0MTI4MiwgNTkyMywgCiAgICAgMTA0MDAsIDAsIDEyODgxOCwgNzYwLCAwLCAxMjA4OCwgNTc4NiwgMCwgNDIyNTYsIDExOTg2OSwgMTE5ODYwLCA0MTcsIAotICAgIDQxNDc0LCAxMTk1NjIsIDQxNTY1LCAwLCA1OTM0LCAxMTk4NjcsIDY2NTgzLCAxMTkyMzEsIDY0ODc3LCAwLCA2NDQ4MSwgCisgICAgNDE0NzQsIDExOTU2MiwgNDE1NjUsIDAsIDU5MzQsIDExOTg2NywgNjY1ODMsIDExOTIzMSwgNjQ4NzcsIDIyODQsIDY0NDgxLCAKICAgICA3ODYxNCwgNjYwMTMsIDQxOTU2LCA0MzQ1NSwgMTI2OTk1LCAwLCAwLCAwLCA0MjI3MywgNTgxOSwgMCwgOTE3NTU2LCAwLCAKLSAgICAwLCAwLCA2NTkxMCwgMTI3NzQ3LCAxMDI0NiwgMTIwODE2LCAwLCAxMjM3LCAxMDI3NCwgNDU1MiwgMTE5NTc2LCAwLCAwLCAKLSAgICAxMzc1LCA2NjcwNSwgNDM1NzMsIDY1MjYwLCA0MjA2MywgMCwgNDI4MTEsIDEwMzEyLCA3NDE5MiwgMTIwNzk0LCA3ODQwLCAKLSAgICAwLCA0MzYzMCwgMTAyNTIsIDAsIDEyODEwNCwgNDMxODUsIDAsIDQzOTYsIDAsIDExOTg4MCwgMTA3NjksIDk2NzYsIAotICAgIDExOTA0MSwgMCwgOTc1MywgMCwgODk0NCwgMCwgMCwgMTA0NzMsIDAsIDAsIDYwNzIsIDQzMDI1LCAxMDI5OSwgMCwgMCwgCi0gICAgMTIwNjA4LCA2NjMyNiwgMCwgMCwgMCwgNDM4MTEsIDkzMzAsIDAsIDcyMjIsIDEwMjgzLCAxMDMxNSwgMTAzNzksIDQ5OTYsIAotICAgIDAsIDEzMjgxLCA2NjUxNywgNzg2NSwgMTAwODcsIDc4MzQzLCAwLCA3ODM0NywgMCwgMCwgNzU2NSwgNjYzNjMsIDEyOTUyLCAKLSAgICA2NDgwNiwgNDMxODAsIDc3OTI4LCA2ODA5NiwgNzc5MjksIDQzOTgyLCA3NDI4OCwgNjIyLCA3NDAyMywgODg1LCA0MzQwNSwgCi0gICAgMTYwMiwgMCwgMCwgODUyLCAwLCAxMjE2MCwgMCwgMTAyMTIsIDY1NDM1LCAwLCAxMjA3MSwgOTYwOSwgMTIxNTYsIAotICAgIDkxNzk4MywgOTE3OTg0LCA0MzU4NiwgMTEwMzUsIDEwNDExLCA5MTc5ODgsIDEwMjU1LCA2NzEwLCAxMDI3OSwgNDE5NCwgCi0gICAgMTAzNzUsIDkxNzk5MywgMCwgNDMxNSwgMTI2NDQsIDEyNzUxNiwgNzc5MzcsIDQzNjM5LCA0MzM0MywgMCwgOTE3OTk4LCAKLSAgICAxMTUwMSwgNDExNzcsIDEyODY4OSwgMCwgOTE3NzkyLCAwLCA5MjQxMywgODcxNSwgMCwgNDExNzksIDAsIDQzMzEzLCAwLCAKLSAgICA0MTE3NiwgMCwgOTk0LCAwLCA4NDUyLCAxMjcxMDMsIDczOTY2LCAwLCAwLCA1OTIxLCAwLCAyNTk3LCAwLCA1OTIyLCAKLSAgICAxMTg5MDMsIDc3OTQzLCA0MTg2LCA5MjUzMSwgMTI3MTA2LCAxMjcxMDUsIDY3MTgsIDAsIDQ0MDYsIDc0NjAxLCA4NDgwLCAKLSAgICA5MTkyLCA5NzQ3LCAxMjg2OTksIDQ0MTMsIDkyMTk2LCA0MjI2OCwgMzE5OCwgNTkyNCwgNTkyMCwgOTI0NjksIDY5MjEsIAotICAgIDc4MDgxLCA3NDAwNywgNDI4NjksIDg0MTgsIDExNjgxLCA0MzE2OSwgMTAxNzYsIDAsIDc0MiwgMCwgMjg5MywgMTA3NzIsIAotICAgIDY1Mjc2LCA1OTM3LCAxOTE0LCAyNTUzLCAxMTY4MiwgNjc1NiwgMTI4NTkwLCAxMjg2NDYsIDgzNjMsIDAsIDI5OTMsIAotICAgIDc3NzIsIDM5MTYsIDAsIDEyMDQ5NCwgMTE0MSwgNDI0MDcsIDgxNTksIDcxOCwgNzU3MiwgOTczLCAwLCAxMjA3MTgsIAotICAgIDMyMzUsIDI0MTUsIDQzMTY0LCAwLCA4MDE4LCA0MjMzMywgNzQ3NTYsIDEwNjc1LCA2OTM3LCA0MjQ4NiwgNDMzODEsIAotICAgIDY1MzkwLCAxMDA2NywgMCwgMTIwMiwgMCwgMCwgNjU4NjMsIDAsIDAsIDAsIDc4MTgyLCA2NDU0MiwgMzI2MCwgNzM4MjksIAotICAgIDY1Mzg4LCA5OTQ1LCA4NDE5LCA3ODA0MiwgNjczOCwgMCwgNDM2ODEsIDY5NzI4LCAyMDU5LCAwLCAwLCA1NTIzNywgMTQzMSwgCi0gICAgMCwgNjY1NjUsIDEwODIxLCAwLCAxMjgwNCwgMTI4MDc2LCA4MjI5LCAxMjM1LCAzMzA3LCAxMTQ3MiwgNzgwODksIDc4MTg0LCAKLSAgICA0NTQ0LCAwLCAwLCAwLCAxNzQwLCA3ODA5NywgODc1OCwgOTg1LCAxMjg3MiwgNjQ1MTEsIDc4MDk0LCAxMjA2OCwgNzgxMDIsIAotICAgIDAsIDEwMTQxLCAwLCA2Mzc2MSwgODc4NSwgNDQ3NiwgNzgxMDksIDYzNzYzLCAxMjY1NSwgODkwNywgNzgxMDUsIDc4MTA2LCAKLSAgICA3ODEwMywgNzgxMDQsIDAsIDExOTU3MiwgMTA2NjUsIDY0NjE2LCA0MTU3MiwgMCwgMTI3MTYwLCAwLCA0MTU3MywgMCwgCi0gICAgMzkzMSwgMTIwMjk1LCA3NDE0MywgMCwgMCwgMCwgMCwgMTE5ODIsIDAsIDAsIDAsIDEyODAxNiwgNjQ0ODQsIDAsIDQxMTY3LCAKLSAgICAwLCA0MTczNSwgMCwgNzE3LCAxMDc1NCwgMCwgMCwgMTI3OTc5LCAwLCA2Mzc2NywgMCwgMTc4MCwgNjkzNiwgMCwgMCwgCi0gICAgODE5LCAxMDYxMSwgOTY5NCwgMTI2OTc4LCAwLCAwLCAwLCAwLCA4MzQzLCA4MzQyLCA4MzQ1LCA4MzQ0LCA2NTc4LCA3MDA5LCAKKyAgICAxMjY2NDMsIDAsIDY1OTEwLCAxMjc3NDcsIDEwMjQ2LCAxMjA4MTYsIDY1Nzg1LCAxMjM3LCAxMDI3NCwgNDU1MiwgCisgICAgMTE5NTc2LCAwLCAwLCAxMzc1LCA2NjcwNSwgNDM1NzMsIDY1MjYwLCA0MjA2MywgMCwgNDI4MTEsIDEwMzEyLCA2OTg0NSwgCisgICAgMTIwNzk0LCA3ODQwLCAwLCA0MzYzMCwgMTAyNTIsIDAsIDEyODEwNCwgNDMxODUsIDAsIDQzOTYsIDAsIDExOTg4MCwgCisgICAgMTA3NjksIDk2NzYsIDExOTA0MSwgMCwgOTc1MywgMCwgODk0NCwgMCwgMCwgMTA0NzMsIDAsIDAsIDYwNzIsIDQzMDI1LCAKKyAgICAxMDI5OSwgMCwgMCwgMTIwNjA4LCA2NjMyNiwgOTgzNDM5LCAxMjc3OTQsIDAsIDQzODExLCA5MzMwLCAxMjA1OTYsIDcyMjIsIAorICAgIDEwMjgzLCAxMDMxNSwgMTAzNzksIDQ5OTYsIDk4Mzc3MywgMTMyODEsIDY2NTE3LCA3ODY1LCAxMDA4NywgNzgzNDMsIDAsIAorICAgIDc4MzQ3LCAwLCAwLCA3NTY1LCA2NjM2MywgMTI5NTIsIDY0ODA2LCA0MzE4MCwgNzc5MjgsIDc0MTQsIDc3OTI5LCA0Mzk4MiwgCisgICAgNzQyODgsIDYyMiwgNzQwMjMsIDg4NSwgNDM0MDUsIDE2MDIsIDAsIDAsIDg1MiwgMCwgMTIxNjAsIDAsIDEwMjEyLCAKKyAgICA2NTQzNSwgMCwgMTIwNzEsIDk2MDksIDEyMTU2LCA5MTc5ODMsIDkxNzk4NCwgNDM1ODYsIDExMDM1LCAxMDQxMSwgCisgICAgOTE3OTg4LCAxMDI1NSwgNjcxMCwgMTAyNzksIDQxOTQsIDEwMzc1LCA3MzkwMCwgMCwgNDMxNSwgMTI2NDQsIDEyNzUxNiwgCisgICAgNzc5MzcsIDQzNjM5LCA0MzM0MywgNzg3NzcsIDkxNzk5OCwgMTE1MDEsIDQxMTc3LCAxMjg2ODksIDAsIDkxNzc5MiwgMCwgCisgICAgOTI0MTMsIDg3MTUsIDAsIDQxMTc5LCAwLCA0MzMxMywgMCwgNDExNzYsIDAsIDk5NCwgMCwgODQ1MiwgMTI3MTAzLCAKKyAgICA3Mzk2NiwgMCwgMCwgNTkyMSwgMCwgMjU5NywgMCwgNTkyMiwgMTE4OTAzLCA3Nzk0MywgNDE4NiwgOTI1MzEsIDEyNzEwNiwgCisgICAgMTI3MTA1LCA2NzE4LCAwLCA0NDA2LCA3NDYwMSwgODQ4MCwgOTE5MiwgOTc0NywgMTI2NTMwLCA0NDEzLCA5MjE5NiwgCisgICAgNDIyNjgsIDMxOTgsIDU5MjQsIDU5MjAsIDkyNDY5LCA2OTIxLCA3ODA4MSwgNzQwMDcsIDQyODY5LCA4NDE4LCAxMTY4MSwgCisgICAgNDMxNjksIDEwMTc2LCAwLCA3NDIsIDAsIDI4OTMsIDEwNzcyLCA2NTI3NiwgNTkzNywgMTkxNCwgMjU1MywgMTE2ODIsIAorICAgIDY3NTYsIDEyODU5MCwgMTI4NjQ2LCA4MzYzLCAwLCAyOTkzLCA3NzcyLCAzOTE2LCA0MzAxLCAxMjA0OTQsIDExNDEsIAorICAgIDQyNDA3LCA4MTU5LCA3MTgsIDc1NzIsIDk3MywgMCwgMTIwNzE4LCAzMjM1LCAyNDE1LCA0MzE2NCwgMCwgODAxOCwgCisgICAgNDIzMzMsIDc0NzU2LCAxMDY3NSwgNjkzNywgNDI0ODYsIDQzMzgxLCA2NTM5MCwgMTAwNjcsIDAsIDEyMDIsIDAsIDAsIAorICAgIDY1ODYzLCAwLCAwLCA5NDAxMywgNzgxODIsIDY0NTQyLCAzMjYwLCA3MzgyOSwgNjUzODgsIDk5NDUsIDg0MTksIDc4MDQyLCAKKyAgICA2NzM4LCAwLCA0MzY4MSwgNjk3MjgsIDIwNTksIDAsIDAsIDU1MjM3LCAxNDMxLCAwLCA2NjU2NSwgMTA4MjEsIDAsIAorICAgIDEyODA0LCAxMjgwNzYsIDgyMjksIDEyMzUsIDMzMDcsIDExNDcyLCA3ODA4OSwgNzgxODQsIDQ1NDQsIDAsIDAsIDAsIAorICAgIDE3NDAsIDc4MDk3LCA4NzU4LCA5ODUsIDEyODcyLCA2NDUxMSwgNzgwOTQsIDEyMDY4LCA3ODEwMiwgMCwgMTAxNDEsIDAsIAorICAgIDYzNzYxLCA4Nzg1LCA0NDc2LCA3ODEwOSwgNjM3NjMsIDEyNjU1LCA4OTA3LCA3ODEwNSwgNzgxMDYsIDc4MTAzLCA3ODEwNCwgCisgICAgMCwgMTE5NTcyLCAxMDY2NSwgNjQ2MTYsIDQxNTcyLCAwLCAxMjcxNjAsIDAsIDQxNTczLCAwLCAzOTMxLCAxMjAyOTUsIAorICAgIDc0MTQzLCAwLCAwLCAwLCA3ODQ2MCwgMTE5ODIsIDAsIDAsIDAsIDEyODAxNiwgNjQ0ODQsIDAsIDQxMTY3LCAwLCA0MTczNSwgCisgICAgOTQwMTksIDcxNywgMTA3NTQsIDAsIDAsIDEyNzk3OSwgMCwgNjM3NjcsIDAsIDE3ODAsIDY5MzYsIDAsIDkyMjU0LCA4MTksIAorICAgIDEwNjExLCA5Njk0LCAxMjY5NzgsIDAsIDAsIDAsIDAsIDgzNDMsIDgzNDIsIDgzNDUsIDgzNDQsIDY1NzgsIDcwMDksIAogICAgIDc1MjMsIDY5MjIsIDgzNDgsIDgzNDcsIDc1MjUsIDMzNDYsIDgzMzksIDEyODE2NSwgMTI4MzM4LCA1NzUsIDI2OCwgCiAgICAgNzgxMTEsIDg1NjMsIDU3NTQsIDEyMDM0MywgNDE1NDEsIDY1NTY1LCA4MzM2LCA1OTM2LCA3MjkwLCA3ODExNywgODMzNywgCiAgICAgODM0MSwgMzA4LCAxMTM4OCwgNzUyMiwgMTIwNzIxLCA3ODEyMywgNjU0NjYsIDExMDkwLCA2OTUzLCAwLCAxMjAzNDYsIDAsIApAQCAtMTcxMjgsMTY4NiArMTgwNjMsMjY0MiBAQAogICAgIDc4MzAsIDExNjUxLCAxMzA5MywgNjQwMDIsIDAsIDY1NzQyLCAxMjg3NCwgMTE5NTk3LCAxMTU5MCwgMCwgNzQwNDgsIAogICAgIDEyODM1MCwgODU5NSwgMCwgOTE3OTQ3LCA0MzcwMywgMTMwOTcsIDAsIDY0NjQzLCAxMzI4MywgMTI2OTcsIDAsIDEyMzgxLCAKICAgICAzNDg4LCA1OTMzLCAxMDAzMywgNzM3MzgsIDY2MjQxLCA2NTU3MCwgMCwgMTIyOTcsIDExOTE1MywgMTk1NSwgMCwgNTM0OSwgCi0gICAgNDI1MzgsIDAsIDAsIDY1MzA4LCA5NDYyLCA5MTc1NTQsIDAsIDAsIDAsIDQyNzM2LCAwLCA1NzU2LCAwLCA3NjM4LCAKLSAgICA0MTY0MiwgNDI3NjQsIDAsIDQzMTA5LCA3NjM3LCA1NzUyLCAxMjA2MDAsIDAsIDczODMyLCAxMjg4MjcsIDEyMDYzNSwgCi0gICAgMTI4MjMxLCA3ODMzNCwgMCwgNzYzNiwgNjUxNzEsIDkxMjQsIDAsIDc4ODkyLCAwLCAyOTEsIDAsIDAsIDIwMjcsIDY2MjMwLCAKLSAgICAxMDA4MCwgNzgxMzYsIDEwNDAzLCAwLCA0NjQwLCA2NDcxMywgMTAyMjQsIDEyMDQyOSwgNDI1MTIsIDEyMDQzMSwgCisgICAgNDI1MzgsIDAsIDAsIDc0MTEsIDk0NjIsIDkxNzU1NCwgMCwgMCwgMCwgNDI3MzYsIDAsIDU3NTYsIDk4MzIxOSwgNzYzOCwgCisgICAgNDE2NDIsIDQyNzY0LCAwLCA0MzEwOSwgNzYzNywgNTc1MiwgNzQwMzcsIDAsIDczODMyLCAxMjg4MjcsIDEyMDYzNSwgCisgICAgMTI4MjMxLCA3ODMzNCwgMCwgNzYzNiwgNjUxNzEsIDkxMjQsIDAsIDc4ODkyLCAxMjA3OTgsIDI5MSwgMCwgMCwgMjAyNywgCisgICAgNjYyMzAsIDEwMDgwLCA3ODEzNiwgMTA0MDMsIDAsIDQ2NDAsIDY0NzEzLCAxMDIyNCwgMTIwNDI5LCA0MjUxMiwgMTIwNDMxLCAKICAgICAxMjA0MzAsIDAsIDEyODM1MSwgMTI3NDg5LCAxMjcxNDgsIDAsIDkyNDk5LCAwLCAxMTkwOTQsIDc0MjEzLCA3ODI0LCAwLCAKICAgICAwLCA0MTI3NCwgNTc3OCwgNjMwMiwgMCwgMCwgMTI2ODAsIDExOTEzMCwgMTQxNywgNzc4ODksIDE5NDkxNCwgOTQ1MiwgMCwgCi0gICAgNzQzOTMsIDExNTUyLCAwLCAxMjc4NTUsIDAsIDY1MzkxLCAwLCAxMDE3MiwgNjU0NTMsIDYzNzg5LCA0MTI2NCwgNzg2NTgsIAotICAgIDY0MjYsIDQ2NDEsIDkxNzksIDY0ODE5LCA1NTI3OCwgNDEyNTUsIDQyMDM2LCA0MTQ2OSwgNDEyNjksIDEyMDQxMiwgCi0gICAgNDEyNjcsIDQ2NDYsIDEyMDQyNSwgODY1LCA0MjAzNCwgNzgyNzQsIDc4MjczLCA0NjQ1LCA0MjAzMywgNzgyNzAsIAotICAgIDEyNzk4MiwgMCwgNjQ3MjgsIDAsIDc4NjczLCA3ODY3NCwgMTY1OSwgOTE5LCA0Mjc4NCwgMTY3MSwgMTk1MDg5LCA2MDY5LCAKLSAgICA5MjE5LCAxOTUwOTAsIDE2NjEsIDEzMTIwLCA2Mzc4NCwgNjk4MTksIDEwMTQwLCA5NzEzLCAxMTkxNDMsIDAsIDAsIDAsIAotICAgIDIzMDYsIDEwNDg1LCAxMTg5NDMsIDYwNjgsIDEwNjEyLCAxOTUwOTksIDExOTU2NywgMTk1MTAxLCA5MjU2MSwgNDE0NjIsIAotICAgIDEyMDQ3MCwgMTk1MDc5LCA1NDIyLCAxMjgyMzQsIDAsIDAsIDAsIDEwMjI5LCAxMDYzNSwgODI2LCAxMjgwODEsIDE5NTA4MiwgCi0gICAgMTk1MDg1LCAxOTUwODQsIDE5NTA4NywgNjQ4MywgMCwgMTgwOCwgNzg0OCwgMCwgODEwMCwgNzgyMjcsIDc4NjY5LCAKLSAgICA3ODY3MCwgMTMzMDEsIDc4NjY3LCA5NjY3LCA3ODY2NSwgNzg4NzIsIDAsIDExMDAzLCA5OTA0LCAwLCAwLCAxMjA2OTAsIAotICAgIDkxNDQsIDEwOTIxLCAwLCA3ODY4MCwgOTg0MCwgNjUxMzEsIDc4Njc4LCA3Nzg0MSwgMTAzMTMsIDAsIDAsIDY0MzIwLCAKLSAgICAxMDI2NSwgNzg2ODYsIDEwOTYyLCA3ODY4NCwgNDMwMDgsIDg5NDUsIDc4NjgzLCAwLCA0MSwgMTk1MDcyLCAxNzkyLCAKLSAgICAxMjA1MTUsIDE5NTA3MywgODY1NSwgMTk1MDc1LCA5MjU0NCwgNzc5NTEsIDEyMDY2LCAwLCAzODUsIDQxNTIsIDI1ODUsIAotICAgIDEyNzgwNCwgMTE5MDY4LCAzMTI2LCAwLCA3NDEzNiwgMTA5NTcsIDAsIDQzMjU4LCAwLCAxMjc4NzMsIDEzMTU3LCAwLCAwLCAKLSAgICAzNTcwLCAwLCA3NDQzLCAwLCA0NDAwNiwgNjk5NywgMCwgMCwgNzg3OSwgODczOSwgMTEwNzUsIDAsIDY1MjE2LCAwLCAKLSAgICA2OTc5NSwgMjU5MywgODQ2MywgNzgxMCwgOTE3ODYyLCA3ODM5LCAxMTk5MTMsIDc4ODA2LCAxMTk5MTIsIDk2OTEsIDQ0MTEsIAotICAgIDc4ODAyLCAwLCAwLCA0MzQ0MiwgNzg3OTksIDY1MjU0LCAxMDA2NiwgMCwgMCwgMCwgMCwgMTMwNjEsIDgwMTYsIDc4Njg3LCAKLSAgICAxOTkzMiwgNjQ4MzEsIDAsIDExOTkyMywgMTIzOTAsIDExOTE3MSwgMTYzNCwgNjgxMTUsIDAsIDExMDU2LCAwLCAxMTk5MjUsIAotICAgIDAsIDQxMTY1LCAxMTMyOCwgMTI0NTAsIDAsIDQxMTY2LCAwLCAxMjQ1NiwgMTE5OTE0LCAxNzEsIDU5NDEsIDEyNDUyLCAKLSAgICA5MTc1NDQsIDEyNDU4LCAxMjUzMSwgNzg3NzksIDQzMDEzLCA2MzgwMCwgNzQxNjIsIDEyNzU2OSwgMTIwNDgzLCA5OTY5LCAKLSAgICAwLCAxMjQ1NCwgNjM4MDYsIDQyMTMyLCAxMjA2MywgNzg0MjUsIDc4NDI0LCAzMjMwLCAwLCAwLCAwLCA1MjA5LCAyOTcsIAotICAgIDU4MTAsIDg1MjIsIDg0MTUsIDExOTkzNywgNzg0MjksIDc4NDI4LCA3MDc3LCAyNDk3LCAxMjg2NTEsIDk2MCwgNzQxNTYsIAotICAgIDY5ODEsIDkyMzc0LCAxMjkzOCwgNDI5MiwgMCwgNzQ4MTUsIDEwNTEyLCAwLCA3NDgxNCwgNzg4NzUsIDEyNzUwNSwgCi0gICAgNzg4NzYsIDI1MDMsIDczNzc4LCAxNzYyLCA2OTc5NCwgMjQ5NSwgNzg4NzMsIDU4NDQsIDc4ODc0LCAxMTg4MzgsIDAsIAotICAgIDEyNjU0LCA0NjYzLCAxODk5LCA3ODg3NywgMjUwNywgNjQxMjEsIDg3MjYsIDY1NTk0LCAwLCAwLCAwLCA4ODkyLCAwLCAKLSAgICA5MjMzOSwgMCwgMCwgNTc4MiwgNDIwLCAwLCAwLCA0Mzc5NiwgMTA3OTcsIDYzNzk0LCAwLCAwLCA2NDgxNCwgNjM3OTYsIAotICAgIDc3OTY1LCAwLCA2NjU4MSwgMTE5MjA0LCA0MTYwOCwgMCwgMCwgNjM3OTIsIDQ2NTksIDEyMDc4OCwgMCwgNDM2NzYsIDAsIAotICAgIDY5NjczLCAwLCAwLCAwLCAzMjksIDc3OTY4LCA5MjcwNywgOTE3NTQ4LCA3Mzk5LCAwLCA0MTE4OCwgMTMyNDQsIDEyMDQ2NiwgCi0gICAgNDIxNjcsIDc0MzUsIDc4MTkzLCA1MzgwLCAxMTkwODYsIDY5MjI1LCAxMTU1LCAxMTM2NSwgNDMxMjYsIDc3OTcyLCAwLCAKLSAgICA2NTY4NCwgMCwgNTYwMSwgNjUxOTIsIDQyNzY1LCA2Mzc1MiwgMCwgNzk4NywgMCwgMTE3MiwgNjk3OTksIDY3ODYsIAotICAgIDQzNjAxLCAxMjA0NzYsIDc0MTI2LCA1NjAzLCAwLCA0NDczLCAwLCAxOTQ4MjMsIDAsIDY1MzQ3LCA2NTM0NiwgNjUzNDUsIAotICAgIDAsIDEyNzM4NCwgNTM0NywgNjk4MDIsIDAsIDczODY4LCAxMTg5NDQsIDEwNTg4LCAwLCAwLCA2Mzc1NSwgMCwgNTM0MywgCi0gICAgNzg0MjIsIDAsIDQ1NTUsIDUzNDEsIDAsIDAsIDEyODY3MCwgNTM1MSwgMCwgNDMxMDQsIDY1MjQ0LCA5MTc4OTIsIDY0NTQxLCAKLSAgICA0MjUxOSwgNzQ0NzIsIDAsIDAsIDc0NzY1LCA5MTc4ODgsIDE5NDg5MiwgNjYzOCwgMCwgNjUxMTMsIDI3MSwgNzQxODAsIAotICAgIDY1MzcwLCA4ODM1LCA2NTM2OCwgMTI2NTMsIDY1MzY2LCA0MjE3MiwgNDEwODYsIDY1MzYzLCA2NTM2MiwgNjUzNjEsIAotICAgIDExOTEyLCA0MzQxMCwgMTEzMjMsIDY1MzU3LCAxMTgwMCwgNjUzNTUsIDUzNDUsIDY1MzUzLCA2NTM1MiwgNjUzNTEsIDc2MSwgCi0gICAgNjUzNDksIDE5OTU5LCA2OTcxOCwgNjM4NTYsIDAsIDI0MjMsIDc3OTU4LCA2NDY0NywgNzc5NTksIDExOTU3LCA0Njk5LCAwLCAKLSAgICAwLCAwLCAwLCA2NDYwNSwgMCwgMCwgMCwgNDkxNiwgMCwgMzgwLCAxMDk1OCwgNjY1NjMsIDc3OTU1LCA2OTc3MywgOTc3MywgCi0gICAgMTMxNjcsIDEyOTE4LCA0MTA5NiwgNzM5ODAsIDY5MjQ1LCA3ODI1NCwgOTE3ODkzLCAxMDY4NCwgMCwgOTE3ODk2LCAwLCAKLSAgICA3OTQ2LCAxMjU0MSwgODE4MiwgNjc1ODYsIDY5NzgwLCAwLCAwLCAwLCAwLCA5MDA1LCAxMjI1LCA2NjMwLCAwLCAwLCAwLCAKLSAgICAwLCA4ODQ3LCAwLCA2NTg3NiwgNTUzNSwgODMyOSwgNzQ1OTAsIDAsIDkyNjA5LCAwLCAwLCAzMTI3LCAyNTk1LCA2NTcxMywgCi0gICAgNDIwMTMsIDAsIDU2MDcsIDQxMDg5LCAwLCAwLCA3NDI1NiwgMjY2NSwgMTEzMDQsIDAsIDc0MjAwLCA0OTcwLCA4NzY0LCAKKyAgICA3NDM5MywgMTE1NTIsIDAsIDEyNzg1NSwgMTI4MjE3LCA2NTM5MSwgMCwgMTAxNzIsIDY1NDUzLCA2Mzc4OSwgNDEyNjQsIAorICAgIDc4NjU4LCA2NDI2LCA0NjQxLCA5MTc5LCA2NDgxOSwgNTUyNzgsIDQxMjU1LCA0MjAzNiwgNDE0NjksIDQxMjY5LCAKKyAgICAxMjA0MTIsIDQxMjY3LCA0NjQ2LCAxMjA0MjUsIDg2NSwgNDIwMzQsIDc4Mjc0LCA3ODI3MywgNDY0NSwgNDIwMzMsIAorICAgIDc4MjcwLCAxMjc5ODIsIDk4MzE3MiwgNjQ3MjgsIDAsIDc4NjczLCA3ODY3NCwgMTY1OSwgOTE5LCA0Mjc4NCwgMTY3MSwgCisgICAgMTk1MDg5LCA2MDY5LCA5MjE5LCAxMjg1NTgsIDE2NjEsIDEzMTIwLCA2Mzc4NCwgNjk4MTksIDEwMTQwLCA5NzEzLCAKKyAgICAxMTkxNDMsIDAsIDAsIDk0MDUwLCAyMzA2LCAxMDQ4NSwgMTE4OTQzLCA2MDY4LCAxMDYxMiwgMTk1MDk5LCAxMTk1NjcsIAorICAgIDE5NTEwMSwgOTI1NjEsIDQxNDYyLCAxMjA0NzAsIDE5NTA3OSwgNTQyMiwgMTI4MjM0LCAwLCAwLCAwLCAxMDIyOSwgCisgICAgMTA2MzUsIDgyNiwgMTI4MDgxLCAxOTUwODIsIDE5NTA4NSwgMTk1MDg0LCAxOTUwODcsIDY0ODMsIDkyMjExLCAxODA4LCAKKyAgICA3ODQ4LCAwLCA4MTAwLCA3ODIyNywgNzg2NjksIDc4NjcwLCAxMzMwMSwgNzg2NjcsIDk2NjcsIDc4NjY1LCA3ODg3MiwgMCwgCisgICAgMTEwMDMsIDk5MDQsIDAsIDAsIDEyMDY5MCwgOTE0NCwgMTA5MjEsIDAsIDc4NjgwLCA5ODQwLCA2NTEzMSwgNzg2NzgsIAorICAgIDc3ODQxLCAxMDMxMywgMCwgMCwgNjQzMjAsIDEwMjY1LCA3ODY4NiwgMTA5NjIsIDc4Njg0LCA0MzAwOCwgODk0NSwgCisgICAgNzg2ODMsIDAsIDQxLCAxOTUwNzIsIDE3OTIsIDEyMDUxNSwgMTk1MDczLCA4NjU1LCAxOTUwNzUsIDkyNTQ0LCA3Nzk1MSwgCisgICAgMTIwNjYsIDAsIDM4NSwgNDE1MiwgMjU4NSwgMTI3ODA0LCAxMTkwNjgsIDMxMjYsIDAsIDc0MTM2LCAxMDk1NywgOTgzNjk0LCAKKyAgICA0MzI1OCwgMTE5MTE2LCAxMjc4NzMsIDEzMTU3LCAwLCA5MTc1NDQsIDM1NzAsIDAsIDc0NDMsIDAsIDQ0MDA2LCA2OTk3LCAKKyAgICA2ODAwNCwgMTI2NjMxLCA3ODc5LCA4NzM5LCAxMTA3NSwgMCwgNjUyMTYsIDAsIDY5Nzk1LCAyNTkzLCA4NDYzLCA3ODEwLCAKKyAgICA5MTc4NjIsIDc4MzksIDExOTkxMywgNzg4MDYsIDExOTkxMiwgOTY5MSwgNDQxMSwgNzg4MDIsIDAsIDAsIDQzNDQyLCAKKyAgICA2OTg1MSwgNjUyNTQsIDEwMDY2LCA5ODM4ODAsIDAsIDAsIDAsIDEzMDYxLCA4MDE2LCA3ODY4NywgMTk5MzIsIDY0ODMxLCAKKyAgICAwLCAxMTk5MjMsIDEyMzkwLCAxMTkxNzEsIDE2MzQsIDY4MTE1LCAwLCAxMTA1NiwgOTgzNTc0LCAxMTk5MjUsIDAsIAorICAgIDQxMTY1LCAxMTMyOCwgMTI0NTAsIDAsIDQxMTY2LCAwLCAxMjQ1NiwgMTE5OTE0LCAxNzEsIDU5NDEsIDEyNDUyLCAKKyAgICAxOTQ3MDksIDEyNDU4LCAxMjUzMSwgNzg3NzksIDQzMDEzLCA2MzgwMCwgNzQxNjIsIDEyNzU2OSwgMTIwNDgzLCA5OTY5LCAKKyAgICAxMjA3NjcsIDEyNDU0LCA2MzgwNiwgNDIxMzIsIDEyMDYzLCA3ODQyNSwgNzg0MjQsIDMyMzAsIDAsIDAsIDAsIDUyMDksIAorICAgIDI5NywgNTgxMCwgODUyMiwgODQxNSwgMTE5OTM3LCA3ODQyOSwgNzg0MjgsIDcwNzcsIDI0OTcsIDEyODY1MSwgOTYwLCAKKyAgICA3NDE1NiwgNjk4MSwgOTIzNzQsIDEyOTM4LCA0MjkyLCAwLCA3NDgxNSwgMTA1MTIsIDAsIDc0ODE0LCA3ODg3NSwgCisgICAgMTI3NTA1LCA3ODg3NiwgMjUwMywgNzM3NzgsIDE3NjIsIDY5Nzk0LCAyNDk1LCA3ODg3MywgNTg0NCwgNjgwMzEsIAorICAgIDExODgzOCwgMCwgMTI2NTQsIDQ2NjMsIDE4OTksIDc4ODc3LCAyNTA3LCA2NDEyMSwgODcyNiwgNjU1OTQsIDAsIDAsIDAsIAorICAgIDg4OTIsIDAsIDkyMzM5LCAwLCA5ODMwNzMsIDU3ODIsIDQyMCwgMCwgMCwgNDM3OTYsIDEwNzk3LCA2Mzc5NCwgMCwgMCwgCisgICAgNjQ4MTQsIDYzNzk2LCA3Nzk2NSwgMCwgNjY1ODEsIDExOTIwNCwgNDE2MDgsIDAsIDAsIDYzNzkyLCA0NjU5LCAxMjA3ODgsIAorICAgIDAsIDQzNjc2LCAwLCA2OTY3MywgMCwgMCwgMCwgMzI5LCA3Nzk2OCwgOTI3MDcsIDkxNzU0OCwgNzM5OSwgMCwgNDExODgsIAorICAgIDEzMjQ0LCAxMjA0NjYsIDQyMTY3LCA3NDM1LCA3ODE5MywgNTM4MCwgMTE5MDg2LCA2OTIyNSwgMTE1NSwgMTEzNjUsIAorICAgIDQzMTI2LCA3Nzk3MiwgMCwgNjU2ODQsIDAsIDU2MDEsIDY1MTkyLCA0Mjc2NSwgNjM3NTIsIDAsIDc5ODcsIDEyODU0MywgCisgICAgMTE3MiwgNjk3OTksIDY3ODYsIDQzNjAxLCAxMjA0NzYsIDc0MTI2LCA1NjAzLCAwLCA0NDczLCAwLCAxOTQ4MjMsIDAsIAorICAgIDY1MzQ3LCA2NTM0NiwgNjUzNDUsIDAsIDEyNzM4NCwgNTM0NywgNjk4MDIsIDk4MzYyMywgNzM4NjgsIDExODk0NCwgCisgICAgMTA1ODgsIDAsIDAsIDYzNzU1LCAwLCA1MzQzLCA3ODQyMiwgMTIwNjYxLCA0NTU1LCA1MzQxLCAwLCA3MDA3MSwgMTI4NjcwLCAKKyAgICA1MzUxLCA3ODY3NSwgNDMxMDQsIDY1MjQ0LCA5MTc4OTIsIDY0NTQxLCA0MjUxOSwgNzQ0NzIsIDAsIDAsIDc0NzY1LCAKKyAgICA5MTc4ODgsIDEyNzUxMCwgNjYzOCwgMCwgNjUxMTMsIDI3MSwgNzQxODAsIDY1MzcwLCA4ODM1LCA2NTM2OCwgMTI2NTMsIAorICAgIDY1MzY2LCA0MjE3MiwgNDEwODYsIDY1MzYzLCA2NTM2MiwgNjUzNjEsIDExOTEyLCA0MzQxMCwgMTEzMjMsIDY1MzU3LCAKKyAgICAxMTgwMCwgNjUzNTUsIDUzNDUsIDY1MzUzLCA2NTM1MiwgNjUzNTEsIDc2MSwgNjUzNDksIDE5OTU5LCA2OTcxOCwgNjM4NTYsIAorICAgIDEyNjYzNSwgMjQyMywgNzc5NTgsIDY0NjQ3LCA3Nzk1OSwgMTE5NTcsIDQ2OTksIDAsIDAsIDAsIDAsIDY0NjA1LCAwLCAwLCAKKyAgICAwLCA0OTE2LCAwLCAzODAsIDEwOTU4LCA2NjU2MywgNzc5NTUsIDY5NzczLCA5NzczLCAxMzE2NywgMTI5MTgsIDQxMDk2LCAKKyAgICA3Mzk4MCwgNjkyNDUsIDc4MjU0LCA5MTc4OTMsIDEwNjg0LCAwLCA5MTc4OTYsIDAsIDc5NDYsIDEyNTQxLCA4MTgyLCAKKyAgICA2NzU4NiwgNjk3ODAsIDAsIDAsIDAsIDAsIDkwMDUsIDEyMjUsIDY2MzAsIDAsIDAsIDAsIDY4MDExLCA4ODQ3LCAwLCAKKyAgICA2NTg3NiwgNTUzNSwgODMyOSwgNzQ1OTAsIDk4MzIwNiwgOTI2MDksIDAsIDAsIDMxMjcsIDI1OTUsIDY1NzEzLCA0MjAxMywgCisgICAgOTgzODQ5LCA1NjA3LCA0MTA4OSwgMCwgMCwgNzQyNTYsIDI2NjUsIDExMzA0LCA0Mzc1MSwgNzQyMDAsIDQ5NzAsIDg3NjQsIAogICAgIDEyMDQ1OSwgODkzNCwgOTI3MjYsIDQxNTY2LCA0NDkyLCAwLCA2NTAxMSwgNDEwOTAsIDAsIDAsIDExODgsIDcyNTQsIAotICAgIDExMDAsIDAsIDEyODMwMSwgNDEwODEsIDI5MTIsIDExNzQ5LCA2OTc5MiwgMCwgMCwgMzU3MiwgMTAwMjMsIDQ5NTksIAotICAgIDEzMDc5LCAwLCAwLCA5NzI5LCAwLCAwLCAwLCA0MzM2MSwgMCwgMCwgMTE4MDMsIDc5OTYsIDk5MDcsIDQxNDUwLCAxMzMwNCwgCi0gICAgMTI4MjkwLCAxMjcyNjAsIDQxNDUxLCAwLCAxMTA5NSwgODI3MywgMTI3NTMzLCAzNDUxLCAwLCA5NzIsIDQxNDUzLCAwLCAwLCAKLSAgICA3Mzg4MywgOTI0MDgsIDczOTQ1LCAwLCAzNDU1LCAxOTk1NSwgOTUzOCwgMCwgNjk4MDcsIDAsIDAsIDAsIDAsIDExMzk2LCAKLSAgICAwLCAxMTAxOSwgMCwgMCwgMCwgMTIwNTA3LCA0MTA3OCwgMCwgMjYxLCA1OTI3LCA3NzkxLCAwLCA2NDQ0NiwgMCwgMTA2OTYsIAotICAgIDAsIDYwNzMsIDk4MzgsIDExODkyMCwgMCwgNjA3NSwgMTI4NTYzLCAyODIsIDAsIDY0MzcsIDc0MDc4LCAxMjgwMDAsIAotICAgIDk4MDEsIDAsIDAsIDAsIDAsIDM0NzQsIDExODc4NywgMCwgMTIwNjU1LCA2MDgxLCAwLCAxMjc4NDMsIDc0MDc2LCA3ODg3OSwgCi0gICAgMCwgMCwgMCwgMCwgMCwgODc1MSwgMTE0OTksIDEyMDI3MywgNzgxNiwgMTI2MzYsIDQ2NjUsIDEyNjI4LCA0NjcwLCAKLSAgICA5MjYwOCwgMTIwMjcyLCAwLCA5NjQyLCAxMDkxMiwgOTU4LCAwLCAxMTM4NywgNzg4NzgsIDQ2NjYsIDAsIDQ5MTUsIDAsIAotICAgIDQ2NjksIDAsIDY4MDk5LCAxMzI4NywgNDY2NCwgMTA4MzYsIDEyMDU1MCwgMCwgNjk3NzUsIDAsIDQzNTk1LCA3NDUwLCAwLCAKLSAgICA5MTc4NzUsIDg2NjQsIDk2OTcsIDM2MDYsIDkxNzg3MywgMCwgMCwgNjQ4MTUsIDEwNjMsIDEyMDI1MCwgMTIwMjUxLCAKLSAgICA5NzcyLCA3MjU1LCA4ODg2LCAxMzg5LCAxMjc5MzIsIDEyMDI1NywgMTIwMjU4LCAxMjAyNTksIDEyOTQxLCA0MjY2MSwgCi0gICAgOTIzODEsIDEyMDI1NSwgMTIwMjU2LCAxMjMwMSwgMTIwMjY2LCA2OTgyMCwgNDExMDIsIDY2NjA0LCAxMjAyNjIsIAotICAgIDEyMDI2MywgMTIwMjY0LCAxMDE3LCA2NjYwMCwgNTIzLCA1MDUsIDE0NDcsIDc0NDM2LCAwLCAwLCAwLCA4NjA4LCA0Mjc4OSwgCi0gICAgMTIwNjEzLCAxMjg3MDQsIDAsIDExOTE5NiwgMTEzMDcsIDY2NzA3LCA5MTc4NzEsIDEyNzc1MSwgMTE3NDUsIDc5MTksIDAsIAotICAgIDE2NDEsIDAsIDAsIDg5NjYsIDAsIDAsIDU5MDgsIDAsIDAsIDY3NDQsIDEyODM1NSwgMTY5OSwgNzQxOTEsIDc0ODQzLCAwLCAKLSAgICAwLCA2MzA2LCAxMDE2OSwgMCwgMTE5MjUxLCAxMDA2OCwgMzc2NiwgMjM4OSwgMTIwNDU2LCAxMjA0NTUsIDY2MTEsIDI1NywgCi0gICAgNDMxNzAsIDEzMTUzLCAwLCA0MjM4NiwgMCwgOTQzNiwgMjU5OSwgMCwgNjQ5NiwgOTQ0OSwgNTkzMCwgMTE0NzYsIDExMDMzLCAKLSAgICAxMTQ0NywgMTA1NDEsIDU2MjIsIDEyMDQzNiwgODQ3NywgMzc2MCwgMTcxOCwgOTQ0MiwgNjY0MzMsIDM3NzYsIDAsIAotICAgIDQxNDM1LCA0MzUyLCAwLCAyNDM1LCAxMjA4MDksIDU2MjEsIDEyMDM4NSwgNDIwMSwgMzc3OCwgNDIwMywgNDIwMiwgNDIwNSwgCi0gICAgNDIwNCwgMTIwNDQ3LCAzNzY4LCA2ODE0MiwgNzY1LCA0MTQ0MCwgMzc2NCwgODQ3MywgNjM3MywgODQ2OSwgMTIwNDM4LCAKLSAgICAxMjk0NywgNDU2NCwgMCwgMCwgNzQyNzEsIDczNzUzLCA4Mzc0LCAwLCAwLCA2ODI5LCA1MjI1LCAxMjg4MDcsIDEyNzM4NSwgCi0gICAgMCwgMCwgMTE5NjE1LCAwLCA3NDc5MywgNTYyNiwgNzM4MDcsIDExNzcxLCAwLCAxMjcyMzYsIDEyODAxOSwgMCwgNTM1MywgCi0gICAgNTYyNSwgNzQxNzksIDAsIDAsIDEwMTAsIDY0NTcyLCA0MTc4MCwgNDI2MjMsIDY0Mjc3LCAwLCA2OTUyLCAwLCAxMjA3NTIsIAotICAgIDc4NzYyLCAyNTkwLCA1NjI5LCA2NTU1MiwgNzU1MSwgMTAzMjUsIDU2MzIsIDEwNDcxLCAxMjAwMzgsIDEyMDAyNywgCi0gICAgMTIwMDI4LCAxMjAwMjUsIDU2MjgsIDEyMDAzMSwgOTcwLCAxMjAwMjksIDQ3NzIsIDI0MDAsIDU2MjcsIDEyMDAxNywgCi0gICAgMTIwMDE4LCAxMjAwMjMsIDY0Mjc1LCAxMjAwMjEsIDEwOTYxLCAwLCAyMDMsIDAsIDAsIDAsIDAsIDc4MzUwLCAwLCAKLSAgICA2NDM3OCwgNDIwNTQsIDAsIDAsIDU1NCwgMTE5NjQ5LCAxMTM1OCwgMCwgMTIxODIsIDQyMDQ4LCAxMTA2NSwgMTI3ODc4LCAKLSAgICA3Mzg5MSwgMCwgMCwgNTY5NCwgNzY4OSwgNjk3OTgsIDkzMjMsIDQzMjUsIDMwNDcsIDEwMzE3LCAxNzUsIDAsIDAsIAotICAgIDY5NzY0LCAwLCAwLCAxMjQzLCA0MjE1NCwgNTQzMSwgNjY1MiwgMCwgNjk3NzAsIDQzNjUxLCAwLCA2ODExOCwgMTI4MDI0LCAKLSAgICAxMTI5LCAwLCAwLCA2NTkwMCwgMTk4NiwgNzg0NiwgNzg4MDQsIDg2NjEsIDkxNzc3MiwgNjUyNTUsIDAsIDM4NDUsIDQ0OTAsIAotICAgIDExODk2OSwgNjY0OSwgNzQ0MDAsIDE0NTYsIDc1MzAsIDExOTc3LCA3MjQ5LCA4MzY2LCAwLCA3NzU2LCAxMjM0MiwgCi0gICAgMTI4NTY4LCA1MSwgNDE1MTYsIDAsIDg1NzAsIDk1NjgsIDkxNzg2MywgNDU2LCA3MDI2LCA4MTQ1LCAxMTY4LCA5MjUxLCAKLSAgICA5MDgyLCAxMTk5NjQsIDY0MDU1LCA0Mjc4MSwgMzg2NiwgMTIzMjMsIDQxNTEyLCA3MzgwNSwgNjgxMjEsIDAsIDQxNDk0LCAKLSAgICA5MjMxNiwgNDY2MCwgMCwgMTA0MDUsIDAsIDc4ODAzLCAwLCAwLCA0MjA0MCwgNzM5MTgsIDExOTYyNywgNzk0NCwgNDE0NTQsIAotICAgIDEyNjA1LCAwLCA0MjIwNSwgNDE0NTUsIDIzNiwgNjQwNTEsIDc4ODY3LCA4MjE0LCAwLCAwLCAwLCA0MTQ1NywgMCwgCi0gICAgMTE5NTg5LCAxOTY5LCAyMzg0LCA4MDk3LCA5MTc4NjQsIDAsIDEyNzM4MCwgNzgwMjksIDg3NjYsIDAsIDc4MDc5LCA1ODU0LCAKLSAgICAxMjc5NzQsIDEwNTgzLCAwLCAxMTk5ODksIDAsIDEwNDE2LCA5MTc4NjksIDM4NzIsIDkxNzg2OCwgMCwgODQyOSwgMCwgCi0gICAgMTE4ODA2LCAyODM4LCAxMjg4MDIsIDAsIDkxNzg2NiwgMCwgMCwgMCwgMCwgMCwgMTEwOTYsIDEyMDgxMywgMTA1NTMsIAotICAgIDE2NjIsIDg0ODMsIDEyMDM5NiwgNDM2MDUsIDU4OTIsIDQzNDE4LCAwLCA3Mzc0MiwgNjYsIDY1LCA2OCwgNjcsIDcwLCA2OSwgCi0gICAgNzIsIDcxLCA3NCwgNzMsIDc2LCA3NSwgNzgsIDc3LCA4MCwgNzksIDgyLCA4MSwgODQsIDgzLCA4NiwgODUsIDg4LCA4NywgCi0gICAgOTAsIDg5LCAxMTk4NjIsIDEwMzU3LCA3Mzg1LCA4MTcwLCAxNzA0LCA4NTU2LCAwLCA5NjU5LCAwLCAwLCAwLCA5NTU2LCAwLCAKLSAgICA0NTAzLCAxMTM1MywgOTY0NywgMCwgNzgxODUsIDAsIDAsIDkyNzEzLCA3ODg4NiwgMCwgMCwgNzQyMjksIDY2NTkzLCAKLSAgICA2NDM4LCA5MTc5NzksIDkxMDksIDc4ODgyLCAxMjg5LCA2NDU5OSwgMCwgMCwgMCwgNjU1MDcsIDI0NDcsIDAsIDAsIAotICAgIDEyODA0MiwgMCwgMCwgMCwgNjMzNCwgMCwgMCwgMTk5MzcsIDAsIDkyMzY4LCAwLCA1Njc1LCAyNTQsIDAsIDAsIDY5Njg2LCAKLSAgICA0MjQyNSwgODkxOCwgNjQwMDMsIDU3MTYsIDQyMzEyLCAwLCAwLCA2OTcyLCA0MjgyNiwgMCwgNDI0NjQsIDEyMDU2NywgMCwgCi0gICAgOTI2NDUsIDc0Nzk2LCA2NDQwMCwgNjQ2OTMsIDAsIDc3ODYxLCA2NTQyOSwgOTUxNSwgNDQzNSwgMCwgNDI1MjIsIDAsIDAsIAotICAgIDExNzg1LCAwLCA2NDY3MSwgNDE5NzgsIDE0MTIsIDQ1OTQsIDEzOTEsIDEwNTM2LCA4MDY3LCA5OTAxLCA3Nzc1LCAKLSAgICAxMjgyOTMsIDAsIDc0NTg4LCAxMjA3NDgsIDMxNDAsIDEyODg1NCwgNzk2MCwgNDMyNzEsIDAsIDEyNTE4LCAxMDkwOSwgCi0gICAgMTI3NTA4LCAxNDI4LCAxMjQ3MiwgMCwgMTI4Nzg3LCA3Njk5LCAxMjM5MywgMCwgMCwgMCwgNzQ1MTgsIDgyMjMsIDAsIAotICAgIDQyNjEsIDAsIDAsIDAsIDAsIDAsIDEyODMwMiwgMCwgMTI4MDQ2LCA0MzQxOSwgMCwgNjQ1NTQsIDEwNTc0LCAzODc4LCAwLCAKLSAgICA0MjM1MiwgMTc1MiwgNzM3ODUsIDAsIDQyNTA2LCAxMjg1NDEsIDEwMTk5LCAwLCAwLCAwLCA2NTkxOSwgMCwgNjY5NSwgCi0gICAgNzIwLCAzMjQsIDAsIDAsIDQzNDA2LCAwLCAxNDY0LCA0MDk4NSwgMCwgNzk3NCwgMCwgNDM0NzQsIDAsIDY0NDg4LCAwLCAwLCAKLSAgICA2NDA0MSwgNzQ3ODcsIDAsIDc4ODY1LCA5MjI1OCwgNjU1OTcsIDAsIDc4ODYzLCAwLCAxMzAyLCAwLCA3ODg2MSwgMCwgMCwgCi0gICAgMCwgNTIwNCwgNzQ3NzQsIDQzNDA0LCA0MzM5NiwgMCwgMzk5NSwgNjgzNjAsIDY1NjA4LCAzNzE0LCAwLCAwLCAwLCAKKyAgICAxMTAwLCAwLCAxMjgzMDEsIDQxMDgxLCAyOTEyLCAxMTc0OSwgNjk3OTIsIDAsIDY4MDE5LCAzNTcyLCAxMDAyMywgNDk1OSwgCisgICAgMTMwNzksIDAsIDk4MzI2OCwgOTcyOSwgMCwgMCwgMCwgNDMzNjEsIDAsIDAsIDExODAzLCA3OTk2LCA5OTA3LCA0MTQ1MCwgCisgICAgMTMzMDQsIDEyODI5MCwgMTI3MjYwLCA0MTQ1MSwgMCwgMTEwOTUsIDgyNzMsIDEyNzUzMywgMzQ1MSwgOTgzMzAxLCA5NzIsIAorICAgIDQxNDUzLCA5ODM0MzQsIDAsIDczODgzLCA2ODAyMiwgNzM5NDUsIDk4MzcyNiwgMjI4OCwgMTk5NTUsIDk1MzgsIDAsIAorICAgIDY5ODA3LCAwLCAwLCAwLCAwLCAxMTM5NiwgOTgzNDMyLCAxMTAxOSwgMCwgMCwgMCwgNjgwMjAsIDQxMDc4LCA3MTM2NSwgCisgICAgMjYxLCA1OTI3LCA3NzkxLCAwLCA3MzYyLCAwLCAxMDY5NiwgMCwgNjA3MywgOTgzOCwgMTE4OTIwLCAwLCA2MDc1LCAKKyAgICA5Mzk5NSwgMjgyLCAxMjY1MTAsIDY0MzcsIDc0MDc4LCAxMjgwMDAsIDk4MDEsIDAsIDc0MTc3LCAwLCAwLCAzNDc0LCAKKyAgICAxMTg3ODcsIDAsIDEyMDY1NSwgNjA4MSwgMCwgNzg4NzQsIDc0MDc2LCA3ODg3OSwgMCwgMCwgMCwgMCwgMCwgODc1MSwgCisgICAgMTE0OTksIDEyMDI3MywgNzgxNiwgMTI2MzYsIDQ2NjUsIDEyNjI4LCA0NjcwLCA5MjYwOCwgMTIwMjcyLCA2ODAxNywgCisgICAgOTY0MiwgMTA5MTIsIDk1OCwgMCwgMTEzODcsIDc4ODc4LCA0NjY2LCAwLCA0OTE1LCAwLCA0NjY5LCAwLCA2ODA5OSwgCisgICAgMTMyODcsIDQ2NjQsIDEwODM2LCAxMjA1NTAsIDAsIDY5Nzc1LCAwLCA0MzU5NSwgNzQ1MCwgMCwgOTE3ODc1LCA4NjY0LCAKKyAgICA5Njk3LCAzNjA2LCA5MTc4NzMsIDAsIDAsIDY0ODE1LCAxMDYzLCAxMjAyNTAsIDEyMDI1MSwgOTc3MiwgNzI1NSwgODg4NiwgCisgICAgMTM4OSwgMTI3OTMyLCAxMjAyNTcsIDEyMDI1OCwgMTIwMjU5LCAxMjk0MSwgNDI2NjEsIDkyMzgxLCAxMjAyNTUsIAorICAgIDEyMDI1NiwgMTIzMDEsIDEyMDI2NiwgNjk4MjAsIDQxMTAyLCA2NDQyOCwgMTIwMjYyLCAxMjAyNjMsIDEyMDI2NCwgMTAxNywgCisgICAgNjY2MDAsIDUyMywgNTA1LCAxNDQ3LCA3NDQzNiwgMCwgMCwgMCwgODYwOCwgNDI3ODksIDEyMDYxMywgMTI4NzA0LCAwLCAKKyAgICA3Mzg1NSwgMTEzMDcsIDY2NzA3LCA5MTc4NzEsIDEyNzc1MSwgMTE3NDUsIDc5MTksIDAsIDE2NDEsIDAsIDAsIDg5NjYsIDAsIAorICAgIDAsIDU5MDgsIDAsIDAsIDY3NDQsIDEyODM1NSwgMTY5OSwgNjk4NjEsIDc0ODQzLCA5MTc5MzMsIDAsIDYzMDYsIDEwMTY5LCAKKyAgICA3MTMyNCwgMTE5MjUxLCAxMDA2OCwgMzc2NiwgMjM4OSwgMTIwNDU2LCAxMjA0NTUsIDY2MTEsIDI1NywgNDMxNzAsIAorICAgIDEzMTUzLCAwLCA0MjM4NiwgMCwgOTQzNiwgMjU5OSwgMCwgNjQ5NiwgOTQ0OSwgNTkzMCwgMTE0NzYsIDExMDMzLCAxMTQ0NywgCisgICAgMTA1NDEsIDU2MjIsIDEyMDQzNiwgODQ3NywgMzc2MCwgMTcxOCwgOTQ0MiwgNjY0MzMsIDM3NzYsIDAsIDQxNDM1LCA0MzUyLCAKKyAgICA5ODM2MTAsIDI0MzUsIDEyMDgwOSwgNTYyMSwgMTIwMzg1LCA0MjAxLCAzNzc4LCA0MjAzLCA0MjAyLCA0MjA1LCA0MjA0LCAKKyAgICAxMjA0NDcsIDM3NjgsIDY4MTQyLCA3NjUsIDQxNDQwLCAzNzY0LCA4NDczLCA2MzczLCA4NDY5LCAxMjA0MzgsIDEyOTQ3LCAKKyAgICA0NTY0LCAwLCAwLCA3NDI3MSwgNzM3NTMsIDgzNzQsIDk4MzE1NiwgMCwgNjgyOSwgNTIyNSwgMTI4ODA3LCAxMjczODUsIDAsIAorICAgIDAsIDExOTYxNSwgMCwgNzQ3OTMsIDU2MjYsIDczODA3LCAxMTc3MSwgNzQwNzUsIDEyNzIzNiwgMTI4MDE5LCA0MjYxNCwgCisgICAgNTM1MywgNTYyNSwgNzQxNzksIDAsIDAsIDEwMTAsIDY0NTcyLCA0MTc4MCwgNDI2MjMsIDY0Mjc3LCA2OTk0MiwgNjk1MiwgCisgICAgOTgzMjY0LCAxMjA3NTIsIDc4NzYyLCAyNTkwLCA1NjI5LCA2NTU1MiwgNzU1MSwgMTAzMjUsIDU2MzIsIDEwNDcxLCAKKyAgICAxMjAwMzgsIDEyMDAyNywgMTIwMDI4LCAxMjAwMjUsIDU2MjgsIDEyMDAzMSwgOTcwLCAxMjAwMjksIDQ3NzIsIDI0MDAsIAorICAgIDU2MjcsIDEyMDAxNywgMTIwMDE4LCAxMjAwMjMsIDY0Mjc1LCAxMjAwMjEsIDg3ODYsIDAsIDIwMywgMCwgMCwgMCwgMCwgCisgICAgNzgzNTAsIDAsIDY0Mzc4LCA0MjA1NCwgMCwgMCwgNTU0LCAxMTk2NDksIDExMzU4LCAwLCAxMjE4MiwgNDIwNDgsIDExMDY1LCAKKyAgICAxMjY0NjQsIDczODkxLCAwLCAwLCA1Njk0LCA3Njg5LCA2OTc5OCwgOTMyMywgNDMyNSwgMzA0NywgMTAzMTcsIDE3NSwgMCwgCisgICAgMCwgNjk3NjQsIDAsIDAsIDEyNDMsIDQyMTU0LCA1NDMxLCA2NjUyLCAwLCA2OTc3MCwgNDM2NTEsIDAsIDY4MTE4LCAKKyAgICAxMjgwMjQsIDExMjksIDEyNjU3NCwgMCwgNjU5MDAsIDE5ODYsIDc4NDYsIDc4ODA0LCA4NjYxLCA5MTc3NzIsIDY1MjU1LCAKKyAgICAwLCAzODQ1LCA0NDkwLCAxMTg5NjksIDY2NDksIDc0NDAwLCAxNDU2LCA3NTMwLCAxMTk3NywgNzI0OSwgODM2NiwgMCwgCisgICAgNzc1NiwgMTIzNDIsIDEyODU2OCwgNTEsIDQxNTE2LCAwLCA4NTcwLCA5NTY4LCA3MTMxOCwgNDU2LCA3MDI2LCA4MTQ1LCAKKyAgICAxMTY4LCA5MjUxLCA5MDgyLCAxMTk5NjQsIDY0MDU1LCA0Mjc4MSwgMzg2NiwgMTIzMjMsIDQxNTEyLCA3MzgwNSwgNjgxMjEsIAorICAgIDAsIDQxNDk0LCA5MjMxNiwgNDY2MCwgMCwgMTA0MDUsIDAsIDc4ODAzLCAwLCAwLCA0MjA0MCwgNzM5MTgsIDExOTYyNywgCisgICAgNzk0NCwgNDE0NTQsIDEyNjA1LCAwLCA0MjIwNSwgNDE0NTUsIDIzNiwgNjQwNTEsIDc4ODY3LCA4MjE0LCAwLCAwLCAwLCAKKyAgICA0MTQ1NywgOTgzOTYxLCAxMTk1ODksIDE5NjksIDIzODQsIDgwOTcsIDkxNzg2NCwgNzQxMywgNjgwMTIsIDc4MDI5LCAKKyAgICA4NzY2LCAwLCA3ODA3OSwgNTg1NCwgMTI3OTc0LCAxMDU4MywgMCwgMTE5OTg5LCAwLCAxMDQxNiwgOTE3ODY5LCAzODcyLCAKKyAgICA5MTc4NjgsIDAsIDg0MjksIDAsIDExODgwNiwgMjgzOCwgMTI4ODAyLCAwLCA5MTc4NjYsIDAsIDAsIDAsIDk4Mzk1OCwgCisgICAgOTQwMDUsIDExMDk2LCAxMjA4MTMsIDEwNTUzLCAxNjYyLCA4NDgzLCAxMjAzOTYsIDQzNjA1LCA1ODkyLCA0MzQxOCwgMCwgCisgICAgNzM3NDIsIDY2LCA2NSwgNjgsIDY3LCA3MCwgNjksIDcyLCA3MSwgNzQsIDczLCA3NiwgNzUsIDc4LCA3NywgODAsIDc5LCAKKyAgICA4MiwgODEsIDg0LCA4MywgODYsIDg1LCA4OCwgODcsIDkwLCA4OSwgMTE5ODYyLCAxMDM1NywgNzM4NSwgODE3MCwgMTcwNCwgCisgICAgODU1NiwgMCwgOTY1OSwgMCwgMCwgMCwgOTU1NiwgMCwgNDUwMywgMTEzNTMsIDk2NDcsIDAsIDc4MTg1LCAwLCAwLCAKKyAgICA5MjcxMywgNzg4ODYsIDAsIDAsIDc0MjI5LCA2NjU5MywgNjQzOCwgOTE3OTc5LCA5MTA5LCA3ODg4MiwgMTI4OSwgNjQ1OTksIAorICAgIDAsIDY4MDA5LCAwLCA2NTUwNywgMjQ0NywgMCwgMCwgMTI4MDQyLCAxMjY1NDUsIDk4MzEzNywgMCwgNjMzNCwgMCwgMCwgCisgICAgMTk5MzcsIDAsIDkyMzY4LCAwLCA1Njc1LCAyNTQsIDAsIDAsIDY5Njg2LCA0MjQyNSwgODkxOCwgNjQwMDMsIDU3MTYsIAorICAgIDQyMzEyLCAwLCAwLCA2OTcyLCA0MjgyNiwgMCwgNDI0NjQsIDEyMDU2NywgMCwgOTI2NDUsIDc0Nzk2LCA2NDQwMCwgCisgICAgNjQ2OTMsIDAsIDc3ODYxLCA2NTQyOSwgOTUxNSwgNDQzNSwgMCwgNDI1MjIsIDAsIDY4MDA4LCAxMTc4NSwgNzQxMiwgCisgICAgNjQ2NzEsIDQxOTc4LCAxNDEyLCA0NTk0LCAxMzkxLCAxMDUzNiwgODA2NywgOTkwMSwgNzEwMywgMTI4MjkzLCA3MTAyLCAKKyAgICA3NDU4OCwgMTIwNzQ4LCAzMTQwLCAxMjg4NTQsIDc5NjAsIDQzMjcxLCAwLCAxMjUxOCwgMTA5MDksIDEyNzUwOCwgMTQyOCwgCisgICAgMTI0NzIsIDAsIDY5ODY0LCA3Njk5LCAxMjM5MywgMCwgMCwgMCwgNzQ1MTgsIDgyMjMsIDAsIDQyNjEsIDAsIDAsIDAsIDAsIAorICAgIDAsIDEyODMwMiwgMCwgMTI4MDQ2LCA0MzQxOSwgMCwgNjQ1NTQsIDEwNTc0LCAzODc4LCAwLCA0MjM1MiwgMTc1MiwgCisgICAgNzM3ODUsIDAsIDQyNTA2LCAxMjg1NDEsIDEwMTk5LCAwLCAwLCA2ODAyMSwgNjU5MTksIDAsIDY2OTUsIDcyMCwgMzI0LCAwLCAKKyAgICAwLCA0MzQwNiwgOTgzNzI3LCAxNDY0LCA0MDk4NSwgMCwgNzk3NCwgMCwgNDM0NzQsIDAsIDY0NDg4LCAwLCAwLCA2NDA0MSwgCisgICAgNzQ3ODcsIDAsIDc4ODY1LCA5MjI1OCwgNjU1OTcsIDAsIDc4ODYzLCAwLCAxMzAyLCAwLCA3ODg2MSwgMTE5MTM0LCAwLCAwLCAKKyAgICA1MjA0LCA3NDc3NCwgNDM0MDQsIDExODM1LCAwLCAzOTk1LCA2ODM2MCwgNjU2MDgsIDM3MTQsIDkyMTkwLCAwLCAwLCAKICAgICAxMDk5OSwgMTE3NTAsIDAsIDQzMjUxLCA2ODY2MCwgNDMzMDEsIDAsIDEyMDU1NywgODEzMCwgODY3MiwgMTA4NDUsIAotICAgIDExOTY0LCAwLCAwLCAwLCAwLCA2ODQ1NSwgNDI4NjMsIDczODM5LCAwLCAwLCAwLCAwLCAwLCAwLCA0NjgsIDYxMiwgMCwgCi0gICAgNjQ0MDEsIDY2NDQ4LCA2ODM3NiwgMCwgMTY3NCwgMCwgNTgyMywgMCwgMTIyODAsIDAsIDU0MCwgNzQ1NjQsIDExOTAxNywgCi0gICAgMCwgODQzMiwgMCwgMTEwNzMsIDAsIDY0MzE2LCAwLCAwLCA4MjAsIDQxNzQxLCAwLCAxMjA2NjcsIDAsIDY0Njg0LCAKLSAgICAxMjY5OTIsIDMzNTksIDc4MDAsIDEyODY0NCwgNjUxNzcsIDYyMjYsIDM1MywgMTIzOTYsIDAsIDExOTYxMiwgNjQ3NDIsIAotICAgIDEyODY4MiwgMTIwMjgyLCAwLCAwLCAxMjQxMiwgMTk5NDEsIDAsIDEyMDI3NywgNzg4NDcsIDE4ODQsIDk0ODEsIDQyNDE4LCAKLSAgICAwLCA0MTE1NywgMCwgMTE5NSwgNjQ4OTgsIDc5MjQsIDAsIDQxMTUxLCAyMDEwLCAwLCA0MTMyOCwgNDIzNDQsIDAsIAotICAgIDEyNDA5LCAwLCA0MzYwLCAxMjcwMDksIDk3MzksIDAsIDc0MzkyLCA3MzkyMSwgMCwgNDI1MjEsIDg1MzksIDAsIDAsIAotICAgIDExODk4NiwgMCwgNDc4OCwgMCwgMCwgNjU3MzQsIDAsIDQzNzkwLCAwLCAxMzA3NSwgNzQ0MjksIDAsIDY0NTY5LCA0MzUzMiwgCi0gICAgMTA4MzcsIDI0OTIsIDEyNzE5NywgMTE4OTAxLCA2ODYzNywgNDExMzYsIDQzNzg1LCAxMTgxMywgOTY0OSwgNDExNTQsIAotICAgIDExOTYxNywgNTEyOCwgNDAzOCwgNDExNDMsIDY1NjA0LCA2NDg1OSwgNDE1OTIsIDY3NzEsIDE2NDgsIDU0MzUsIDAsIAotICAgIDY3MzQsIDQxMzQzLCAxMTk4NDgsIDY1NDM5LCAxMjcwOSwgNjk4NiwgOTIzNjQsIDAsIDAsIDQxMzQ5LCAxMTkxMjMsIAotICAgIDEyNTgxLCAxMDM3NCwgNTE3NSwgMCwgNzM4MDYsIDEwMjU0LCAwLCAxMDI3OCwgMTAyNjIsIDc3OTUwLCA0MTM0NiwgMCwgCi0gICAgNjA3LCAwLCAxMTk4NTMsIDEyODg0NiwgMTI5MjMsIDEwMzE0LCAxMDI4MiwgNjU0NzcsIDEwMzc4LCAxMjAyOTcsIDQwOTc2LCAKLSAgICA4MjY1LCAwLCAxMTk4MzQsIDQwOTc1LCA1ODQwLCA0MjgzOCwgMCwgNDA5NzgsIDAsIDExOTg0MCwgMCwgMCwgMCwgNjY0NDQsIAotICAgIDEwNTM4LCAwLCAyNTUwLCAxMTk4MzYsIDY3NzksIDAsIDAsIDM1MjUsIDY4MjQsIDExODg4NiwgMCwgMCwgNTYxOSwgCi0gICAgNjU4MjIsIDAsIDE5NDg4MiwgNzQ1NSwgMCwgNTYxNiwgMTE0ODYsIDk2NTYsIDAsIDAsIDEwNzI3LCA1NjE1LCAwLCAKLSAgICAxMjA1NTEsIDQyMzgwLCA2NDg5NSwgNDM2OTMsIDY2NDUxLCA4MDgsIDU0NTUsIDExMzQ3LCAwLCAxMDI2LCA1NjIwLCAKLSAgICAxOTQ4ODcsIDAsIDExMzUwLCA1NjE3LCAwLCA5MjI1LCA2NDYzOSwgMTI3MDczLCA5MTQ1LCAxMjgwNjAsIDEzMzgsIAotICAgIDEyMDU4MSwgMCwgMTI3MzksIDQ2MDMsIDMwODQsIDAsIDkyNDg0LCA5ODU4LCA2MDM3LCAwLCAzOTc0LCA3ODIxMywgCi0gICAgMTAyOTAsIDAsIDMwODMsIDEwMzIyLCAwLCAwLCAwLCA0MTAzNiwgMCwgMCwgNDMzMjEsIDY1NjA2LCAwLCA0MTAzMiwgCi0gICAgNDIzODgsIDAsIDY0NzAwLCAxMDAxMSwgMTQ0NSwgNDA5NjEsIDAsIDE5NDg5MywgMCwgNDA5NjAsIDAsIDE5NDg5MSwgMCwgCi0gICAgNDA5NjMsIDY0OTUyLCAxMDQwMiwgMCwgMCwgOTIzMDQsIDEwNjAzLCAwLCAwLCAwLCAwLCA2NzE0LCAxMDA4MywgMTI3MDY5LCAKLSAgICAxOTQ4OTUsIDc4MzY3LCAxMjczNzcsIDAsIDAsIDkwNzMsIDQyNTg1LCA2NDMwMiwgMTA3MDQsIDY1MDMwLCA0Nzg3LCAwLCAKLSAgICA3NDgyOSwgMCwgNjU0MjMsIDAsIDEyODExOCwgOTU3MCwgMCwgOTUyNSwgMjY4OSwgOTE3NjI2LCA2NTQyNiwgMCwgCi0gICAgOTE3NjI0LCA0Mzc0MCwgMCwgNDA5NjYsIDkxNzYyMywgMTMyODYsIDM5OTgsIDQyNTk4LCA0MjU5NiwgNTAzLCA3NDIzNywgCisgICAgMTE5NjQsIDAsIDk4MzE4NSwgMCwgMCwgNjg0NTUsIDQyODYzLCA3MzgzOSwgMCwgMCwgMCwgMCwgMTI2NjI5LCAwLCA0NjgsIAorICAgIDYxMiwgMCwgNjQ0MDEsIDY2NDQ4LCA2ODM3NiwgMCwgMTY3NCwgMCwgNTgyMywgOTgzMTYzLCAxMjI4MCwgMCwgNTQwLCAKKyAgICA3NDU2NCwgMTE5MDE3LCAwLCA4NDMyLCAwLCAxMTA3MywgMCwgNjQzMTYsIDAsIDAsIDgyMCwgNDE3NDEsIDAsIDEyMDY2NywgCisgICAgMCwgNjQ2ODQsIDEyNjk5MiwgMzM1OSwgNzgwMCwgNjk5MzQsIDY1MTc3LCA2MjI2LCAzNTMsIDEyMzk2LCAwLCAxMTk2MTIsIAorICAgIDY0NzQyLCAxMjg2ODIsIDEyMDI4MiwgMCwgOTgzNDQyLCAxMjQxMiwgMTk5NDEsIDAsIDEyMDI3NywgNzg4NDcsIDE4ODQsIAorICAgIDk0ODEsIDQyNDE4LCA3MDA1OSwgNDExNTcsIDAsIDExOTUsIDY0ODk4LCA3OTI0LCAwLCA0MTE1MSwgMjAxMCwgMCwgCisgICAgNDEzMjgsIDQyMzQ0LCAwLCAxMjQwOSwgMCwgNDM2MCwgMTI3MDA5LCA5NzM5LCAxMjg1NTAsIDY5OTMzLCA3MzkyMSwgMCwgCisgICAgNDI1MjEsIDg1MzksIDk4MzcxNiwgMCwgMTE4OTg2LCAwLCA0Nzg4LCAwLCA2ODAyMywgNjU3MzQsIDk4MzQ0NywgNDM3OTAsIAorICAgIDAsIDEzMDc1LCA3NDQyOSwgOTQwNjMsIDY0NTY5LCA0MzUzMiwgMTA4MzcsIDI0OTIsIDEyNzE5NywgMTE4OTAxLCA2ODYzNywgCisgICAgNDExMzYsIDQzNzg1LCAxMTgxMywgOTY0OSwgNDExNTQsIDExOTYxNywgNTEyOCwgNDAzOCwgNDExNDMsIDY1NjA0LCAKKyAgICA2NDg1OSwgNDE1OTIsIDY3NzEsIDE2NDgsIDU0MzUsIDkxNzgzNywgNjczNCwgNDEzNDMsIDExOTg0OCwgNjU0MzksIAorICAgIDEyNzA5LCA2OTg2LCA5MjM2NCwgNjgwMTUsIDAsIDQxMzQ5LCA3MDAyMSwgMTI1ODEsIDEwMzc0LCA1MTc1LCAwLCA3MzgwNiwgCisgICAgMTAyNTQsIDAsIDEwMjc4LCAxMDI2MiwgNjk4NTgsIDQxMzQ2LCAwLCA2MDcsIDAsIDExOTg1MiwgMTI4ODQ2LCAxMjkyMywgCisgICAgMTAzMTQsIDEwMjgyLCA2NTQ3NywgMTAzNzgsIDEyMDI5NywgNDA5NzYsIDgyNjUsIDAsIDExOTgzNCwgNDA5NzUsIDU4NDAsIAorICAgIDQyODM4LCAwLCA0MDk3OCwgOTgzODg4LCAxMTk4NDAsIDAsIDk4MzA3MSwgMCwgNjY0NDQsIDEwNTM4LCAwLCAyNTUwLCAKKyAgICAxMTk4MzYsIDY3NzksIDAsIDAsIDM1MjUsIDY4MjQsIDExODg4NiwgMCwgMCwgNTYxOSwgNjU4MjIsIDEyNjU2NywgCisgICAgMTk0ODgyLCA3NDU1LCAwLCA1NjE2LCAxMTQ4NiwgOTY1NiwgMCwgMCwgMTA3MjcsIDU2MTUsIDAsIDEyMDU1MSwgNDIzODAsIAorICAgIDY0ODk1LCA0MzY5MywgNjY0NTEsIDgwOCwgNTQ1NSwgMTEzNDcsIDAsIDEwMjYsIDU2MjAsIDE5NDg4NywgMCwgMTEzNTAsIAorICAgIDU2MTcsIDAsIDkyMjUsIDY0NjM5LCAxMjcwNzMsIDkxNDUsIDEyODA2MCwgMTMzOCwgMTIwNTgxLCA5ODMxNTgsIDEyNzM5LCAKKyAgICA0NjAzLCAzMDg0LCA5ODMxNTUsIDkyNDg0LCA5ODU4LCA2MDM3LCAwLCAzOTc0LCA3ODIxMywgMTAyOTAsIDk4MzY5NSwgCisgICAgMzA4MywgMTAzMjIsIDAsIDAsIDAsIDQxMDM2LCAwLCAwLCA0MzMyMSwgNjU2MDYsIDAsIDQxMDMyLCA0MjM4OCwgMCwgCisgICAgNjQ3MDAsIDEwMDExLCAxNDQ1LCA0MDk2MSwgMCwgMTE5MTA1LCAwLCA0MDk2MCwgMCwgMTk0ODkxLCAwLCA0MDk2MywgCisgICAgNjQ5NTIsIDEwNDAyLCAwLCAwLCA5MjMwNCwgMTA2MDMsIDAsIDAsIDk4MzExMywgMCwgNjcxNCwgMTAwODMsIDEyNzA2OSwgCisgICAgMTk0ODk1LCA3ODM2NywgMTI3Mzc3LCAwLCA5Mzk2MywgOTA3MywgNDI1ODUsIDY0MzAyLCAxMDcwNCwgNjUwMzAsIDQ3ODcsIAorICAgIDAsIDc0ODI5LCAwLCA2NTQyMywgMCwgMTI4MTE4LCA5NTcwLCA1NTI2MCwgOTUyNSwgMjY4OSwgOTE3NjI2LCA2NTQyNiwgMCwgCisgICAgOTE3NjI0LCA0Mzc0MCwgMCwgNDA5NjYsIDkxNzYyMiwgMTMyODYsIDM5OTgsIDQyNTk4LCA0MjU5NiwgNTAzLCA3NDIzNywgCiAgICAgODczNSwgMjY5MCwgNjY0ODgsIDQyODM2LCAxMjcxNTAsIDQxOTU0LCA5MTc2MTcsIDE2NTIsIDc3MiwgNjY4OCwgODMxMCwgCiAgICAgNjU0MjgsIDM0ODcsIDQzNDE2LCAzNTg1LCAxMDE5NCwgNDMzMjAsIDExOTE1OSwgMTI4MTgzLCAxOTQ4NzQsIDY0NjgsIAotICAgIDQxOTc2LCA5NzIwLCA5MTc2MDYsIDExNzY3LCA0MTk3MCwgMCwgNTgzNiwgMTIzNTgsIDAsIDQzNTUsIDkwNDgsIDEyMTgwLCAKLSAgICA2NTAyNywgNjQ2ODAsIDEzMDM4LCA0MzY5OSwgMCwgNDE0ODgsIDEyODA4NywgODUyNywgMTk0OTE3LCAxMjM2MiwgMTI0MzUsIAotICAgIDEyMzYwLCA0MTA1MywgMzI2NiwgMCwgMTIzNTYsIDg2MTYsIDQxNDY2LCAwLCA5MjU4OCwgMTE0NTAsIDAsIDM2MzgsIAotICAgIDEyMzU0LCAwLCAzMjE2LCAwLCAyMzU4LCA5MjYwNiwgODYzMywgMCwgMCwgMTE5MTgyLCA2OTI0NCwgMCwgMCwgMTE3NTksIAotICAgIDE5NDkwMywgNjM2OCwgNzQ4MjMsIDAsIDQxNDIzLCA4MDc4LCAxMDUwNCwgMCwgNDE2OTgsIDQyMjM3LCAwLCA3MDAyLCAwLCAKLSAgICA0MTQzMCwgNDIyNjcsIDQxMDUxLCA0MTQ4NCwgMCwgMCwgNDEwNTAsIDQxNDczLCAxMDQ2NiwgMTMwOTksIDAsIDAsIDAsIAotICAgIDY0MzUsIDAsIDExMzYyLCAwLCAwLCA2NTM4MiwgMCwgNDE0MjAsIDAsIDM2MjUsIDc4MTU3LCA0MTQwOSwgMCwgNjk2MzksIAotICAgIDIwNDEsIDkxNzgsIDk2NzIsIDQxNDI3LCA0MzU0MSwgNDMzMTcsIDAsIDAsIDAsIDQxNDI0LCA5MTc1OTgsIDEyMDU0NiwgMCwgCi0gICAgMTI4MjEyLCAwLCA0MTQxNywgMTI2MSwgMCwgMCwgMTIxMDIsIDExOTY2MiwgNDE0MDEsIDAsIDEyNzUzOCwgMCwgNzgyNTEsIAotICAgIDAsIDQyMjkwLCAzMjc1LCA5MjQ3MiwgNDIzMjksIDc0NzU5LCAwLCAwLCAwLCA5MjM4OCwgNjk2NDksIDEwOTg5LCA3NDIzNCwgCi0gICAgMCwgMTA1OTgsIDc0MTAsIDI2NjksIDkwMywgMCwgMjkyMCwgMCwgMTI3MjMyLCA3NDYwMywgNjQ1MDQsIDE5OTI4LCAwLCAwLCAKLSAgICAzOTE3LCAwLCAxMTczMiwgMCwgMCwgNDE0NDgsIDQxNDYxLCAxMjg4MjMsIDAsIDEyNzkxMiwgMCwgODgxOSwgMTI2NjMsIDAsIAotICAgIDQxMTg0LCA3NDAxNCwgMjMyLCA3NDgzNSwgMTIwNjQ2LCA5MTY4LCA2NTc4NiwgMCwgMCwgMCwgOTA5NCwgMCwgMTE3NTgsIAotICAgIDY4NDI1LCAwLCAxMDY0LCA0MjQ2NywgMTI4MDQ0LCAxMDExNSwgMTk5MjQsIDkyNzExLCAwLCA3ODYyLCA2NDU1MSwgCi0gICAgMTMyMjQsIDg1MTYsIDQxODYyLCA2NjY1MCwgNzU2MSwgNzg2MTgsIDY5NzkzLCAxODc4LCAwLCAwLCAyOTExLCAwLCAKLSAgICA0MTE3OCwgNTQyNywgNjQ4MjMsIDAsIDAsIDM3ODcsIDQxMTc0LCAwLCA0MTQ1OCwgMCwgNDE0NjMsIDQyNDEzLCAxMTI5MiwgCi0gICAgMjQwNiwgNzc1LCAwLCA2NTU4NCwgMCwgNjA3NCwgOTYxOCwgMTI4NjY4LCAwLCA0MzQ0MCwgMCwgMTk0OTAxLCA0MTQzNiwgCi0gICAgMzY1NiwgMCwgMTk0ODk5LCA0MTQ1NiwgMCwgMTU5OSwgMTEzMzMsIDAsIDY3MDMsIDg1MTMsIDAsIDE2MTMsIDAsIDY4NDU2LCAKLSAgICAxMjU5OCwgMCwgMTIwNzM0LCA3ODc0NSwgNzQ1MDAsIDQxNDYwLCAxMDE0NSwgMTA1NDIsIDk5MzcsIDc4NzQ2LCAwLCAKKyAgICA0MTk3NiwgOTcyMCwgOTE3NjA2LCAxMTc2NywgNDE5NzAsIDE5NDU5NiwgNTgzNiwgMTIzNTgsIDAsIDQzNTUsIDkwNDgsIAorICAgIDEyMTgwLCA2NTAyNywgNjQ2ODAsIDEzMDM4LCA0MzY5OSwgMCwgNDE0ODgsIDEyODA4NywgODUyNywgMTk0OTE3LCAxMjM2MiwgCisgICAgMTI0MzUsIDEyMzYwLCA0MTA1MywgMzI2NiwgMCwgMTIzNTYsIDg2MTYsIDQxNDY2LCAwLCA5MjU4OCwgMTE0NTAsIDAsIAorICAgIDM2MzgsIDEyMzU0LCAwLCAzMjE2LCAwLCAyMzU4LCA5MjYwNiwgODYzMywgMCwgOTgzNzM2LCAxMTkxODIsIDY5MjQ0LCAwLCAKKyAgICAwLCAxMTc1OSwgMTk0OTAzLCA2MzY4LCA3NDgyMywgMCwgNDE0MjMsIDgwNzgsIDEwNTA0LCAxMjc1NTgsIDQxNjk4LCAKKyAgICA0MjIzNywgMCwgNzAwMiwgOTgzNjY5LCA0MTQzMCwgNDIyNjcsIDQxMDUxLCA0MTQ4NCwgMCwgMCwgNDEwNTAsIDQxNDczLCAKKyAgICAxMDQ2NiwgMTMwOTksIDAsIDAsIDAsIDY0MzUsIDAsIDExMzYyLCAwLCAwLCA2NTM4MiwgMCwgNDE0MjAsIDAsIDM2MjUsIAorICAgIDc4MTU3LCA0MTQwOSwgMCwgNjk2MzksIDIwNDEsIDkxNzgsIDk2NzIsIDQxNDI3LCA0MzU0MSwgNDMzMTcsIDAsIDAsIDAsIAorICAgIDQxNDI0LCA5MTc1OTgsIDEyMDU0NiwgMCwgMTI4MjEyLCAwLCA0MTQxNywgMTI2MSwgMCwgMCwgMTIxMDIsIDExOTY2MiwgCisgICAgNDE0MDEsIDAsIDEyNzUzOCwgMCwgNzgyNTEsIDAsIDQyMjkwLCAzMjc1LCA5MjQ3MiwgNDIzMjksIDc0NzU5LCAwLCAwLCAwLCAKKyAgICA5MjM4OCwgNjk2NDksIDEwOTg5LCA3NDIzNCwgOTgzMTQwLCAxMDU5OCwgNzQxMCwgMjY2OSwgOTAzLCAwLCAyOTIwLCAwLCAKKyAgICAxMjcyMzIsIDc0NjAzLCA2NDUwNCwgMTk5MjgsIDAsIDAsIDM5MTcsIDAsIDExNzMyLCAwLCA5ODMxODAsIDQxNDQ4LCAKKyAgICA0MTQ2MSwgMTI4ODIzLCAwLCAxMjc5MTIsIDAsIDg4MTksIDEyNjYzLCAwLCA0MTE4NCwgNzQwMTQsIDIzMiwgNzQ4MzUsIAorICAgIDEyMDY0NiwgOTE2OCwgNjU3ODYsIDAsIDAsIDAsIDkwOTQsIDAsIDExNzU4LCA2ODQyNSwgMCwgMTA2NCwgNDI0NjcsIAorICAgIDEyODA0NCwgMTAxMTUsIDE5OTI0LCA5MjcxMSwgMCwgNzg2MiwgNjQ1NTEsIDEzMjI0LCA4NTE2LCA0MTg2MiwgNjY2NTAsIAorICAgIDc1NjEsIDc4NjE4LCA2OTc5MywgMTg3OCwgMCwgOTgzMjYxLCAyOTExLCAwLCA0MTE3OCwgNTQyNywgNjQ4MjMsIDAsIDAsIAorICAgIDM3ODcsIDQxMTc0LCAwLCA0MTQ1OCwgMCwgNDE0NjMsIDQyNDEzLCAxMTI5MiwgMjQwNiwgNzc1LCAwLCA2NTU4NCwgCisgICAgNjk5MjMsIDYwNzQsIDk2MTgsIDEyODY2OCwgOTgzOTQzLCA0MzQ0MCwgMCwgMTk0OTAxLCA0MTQzNiwgMzY1NiwgMCwgCisgICAgMTIwNjAwLCA0MTQ1NiwgMCwgMTU5OSwgMTEzMzMsIDAsIDY3MDMsIDg1MTMsIDAsIDE2MTMsIDAsIDY4NDU2LCAxMjU5OCwgCisgICAgOTgzMTkxLCAxMjA3MzQsIDc4NzQ1LCA3NDUwMCwgNDE0NjAsIDEwMTQ1LCAxMDU0MiwgOTkzNywgNzg3NDYsIDcwMDI5LCAKICAgICA5OTA1LCAwLCA2NTczMCwgMCwgMTIwMzc0LCA4NDI3LCAxMjAzNzUsIDU1MjQ2LCAxMjAzNzYsIDAsIDExNDk3LCA2NDY4NywgCiAgICAgNzQwMDgsIDQyNTkyLCAzODcxLCAwLCAxMjgzMDUsIDkxMTEsIDU3NDEsIDAsIDE5NDg0NiwgMTIwMzY2LCAxMTkxMTEsIAogICAgIDEyMDc0NSwgMCwgMTIwMzY4LCAwLCAxMTY0OCwgMCwgMTk0ODczLCAxMjAzNjQsIDQxNTg3LCAxMjAzNjUsIDAsIDc0MzIyLCAKICAgICA0MjExMywgMCwgMTI3MTU1LCAxMjE3MiwgMCwgNzQ1MzAsIDY1Mjk4LCA2NTcyMywgMTk0ODQwLCA3Mzg3MSwgNjU3MjQsIAotICAgIDc5MjgsIDEyMDM1NCwgMCwgNDE1OTUsIDczNzMwLCAwLCA0MjExOCwgNzM4MzAsIDY2MDQyLCAxMDM1NSwgMCwgNzg3NSwgMCwgCi0gICAgNDE1OTgsIDM5OTMsIDAsIDE1NDUsIDQwOTcxLCA1MzYsIDEyODUyMSwgNDMwMjksIDAsIDAsIDY1MTczLCA2NTI4NiwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNDEzNzUsIDU0MDIsIDAsIDAsIDE2ODcsIDEyMDUwMywgMCwgMCwgNzgxOTQsIDY0MzI2LCAKLSAgICA0MDk2OSwgMTA1MjYsIDc4NzUzLCA4MzIzLCA0MDk2OCwgMTMzOSwgMTE3MzEsIDc4NzU2LCAwLCA2NTQ2MCwgMTIyNDIsIAotICAgIDEyODUxMywgODAyMCwgMTA4NDMsIDExNTU0LCAwLCAwLCA4MjY2LCA0MTAwNiwgNjU3MjIsIDAsIDEwNzEwLCAwLCAKLSAgICAxMTg5NDIsIDY3NjY3LCA2NDU2NywgMTE5MTU1LCAxOTUwOTEsIDAsIDExOTYzNiwgNjc4NTcsIDEyMDY4NywgMCwgMCwgCi0gICAgMTE3NTUsIDY2MzA1LCAwLCAwLCAxMDkxNywgMTIwNzY3LCAwLCAxMTI3MiwgMjA0MCwgNDEyNDcsIDQxMzI2LCAxOTUwNjAsIAotICAgIDE3NDEsIDQyMzcwLCAxMjI3LCAwLCAwLCAxMTQxMywgMCwgMCwgNTI4MywgMTU4NiwgNDk3OCwgMCwgMTk4NCwgMTk0NjIxLCAKLSAgICAwLCA5MjI5MywgNDA5ODQsIDEyODMwNiwgOTM3MywgMCwgMTI5MTYsIDYyODQsIDAsIDQxNjYzLCAwLCAwLCAwLCA5MjM3LCAKLSAgICA5Mzg1LCA0MTY0OCwgMCwgMCwgMCwgNDE2NjYsIDE4MzAsIDczNzgzLCAyMDU2LCA0MTI4NywgOTI2MTAsIDAsIDAsIAotICAgIDQyMjE5LCAxMjgyNTcsIDAsIDQxOTg3LCA0MTY3NiwgMCwgMTIwODIzLCAwLCA0MTY3MCwgMCwgOTI1OTAsIDI3OTYsIAotICAgIDU1MjkxLCAxMTY4MywgOTkwMiwgNzQ1MjEsIDAsIDExNDUxLCAwLCAxMjg4MjIsIDQyNjMxLCAyMzU5LCAwLCA2Nzg0NCwgCi0gICAgNzQxNjQsIDQxMjM4LCA1NDgsIDExNDA1LCAxMzEzMywgNjQzNjgsIDAsIDEyODc5NSwgMCwgMzk3LCA0MzYyMiwgNDIxMzksIAotICAgIDk1NDcsIDk1OTAsIDEyODIzOCwgMTYxNCwgNDM2NjEsIDY0MzU2LCA2NjMwNywgNjY1MSwgMTM1OCwgMCwgNDI4LCA5NjIwLCAKLSAgICAxNDY2LCA3ODExMiwgMTA5ODIsIDExODgzMSwgMTMzMywgNzEwNCwgNDA3LCA2NDI1LCAxMjg4MzQsIDc0MjUzLCAwLCAwLCAKLSAgICAwLCA1ODA0LCAxMTk3NiwgODU1NCwgOTI3MjEsIDAsIDAsIDkwNTcsIDQyMjk0LCA0MTIxOCwgMCwgMCwgNzgxMzcsIDE4ODMsIAotICAgIDEwOTUyLCA4MDQ4LCA3ODE0MiwgNDEyMjUsIDkyNjIxLCA0MjkxNSwgMCwgMTI4Njg0LCAwLCA0NDA3LCAwLCA2NTgwOSwgCi0gICAgMTE5MDc0LCAxOTQ4MjEsIDg0NDgsIDcxNDEsIDc0MTgzLCAwLCAxMjY3NSwgMTI2NTksIDAsIDQyMzYzLCAxMjA2MjQsIAotICAgIDE5NDgyNCwgNTUyNzMsIDEwNzY2LCAxMjAxMiwgMjM4NiwgNjQ3MzIsIDkxNzAsIDkxNzgyMSwgOTEyMywgNjQ1ODUsIAotICAgIDEyMDUwMCwgMCwgNzE0MCwgMTA5NzcsIDEyNzM3OCwgNDE2NCwgOTA4MSwgMCwgMTIwNTY5LCA0MjA0OSwgNDIwNDIsIAotICAgIDg3MDksIDEyODI4MywgMCwgMTIwNjM3LCA0MjQxOSwgNjQ3OTksIDQyMDQ3LCAwLCAwLCA4NDcwLCAxMTgwNywgNjU4OTcsIAotICAgIDU3NywgMCwgMCwgNzQzMDAsIDAsIDEyNzMwOCwgNzQ4NDAsIDAsIDAsIDEyODc5MSwgOTIyMjQsIDg3MzYsIDE0MTQsIAotICAgIDQyNjQzLCA5NjgzLCA0MzQ4NiwgNzQzNDQsIDAsIDI1MzYsIDAsIDY2MzMwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2NjMxNywgCi0gICAgOTE3NjEyLCA2NjMxNSwgMjEwNiwgMTIwMjIyLCAxMTI3MywgMCwgNDMwMDQsIDc1NDEsIDAsIDAsIDk2MSwgNjQzMDcsIAotICAgIDY2MzI0LCA2NDkwNiwgMTI4NTkxLCAzMTA2LCA2NTkxNywgNDEyODQsIDE2OTYsIDAsIDg5MSwgMTIxMDUsIDAsIDQyNjI0LCAKLSAgICAxMjgwMiwgMzI2NCwgODgyNCwgMTMyNjgsIDQzMDAzLCAxMDkzNiwgMCwgMCwgMCwgMTk0ODI2LCA5MjY4OCwgMCwgMjMyMiwgCi0gICAgMTIwMzcxLCAwLCAxMTQ0OSwgMTI4MTg3LCA0Mjg2OCwgNDEyODUsIDM1NDcsIDAsIDAsIDAsIDAsIDQzMjE2LCA2MDg5LCAKLSAgICA3ODY4MiwgMCwgMTIwNTc4LCA0MTcwLCAxMDI5LCAxMjc3NjEsIDEyNzAzNiwgMTE5MjI0LCA0MjM3NCwgMCwgNzQ0LCAwLCAKLSAgICAwLCAwLCA2NTgyMywgMTI3ODI2LCAwLCAzNTUxLCAwLCAwLCA0NjIzLCA1NTI2OCwgMCwgNDU5OCwgMCwgNjUxMzYsIAotICAgIDEyNzEzNiwgMCwgMCwgMTA4NTEsIDAsIDYxNzksIDkyNjAyLCA2MTgwLCAwLCAxMTk1MiwgMTIwNzc4LCA3ODY0OCwgCi0gICAgMTE5NzIsIDc4NjQ2LCA3ODY0NywgNzg2NDQsIDc4NjQ1LCAxNzcsIDc4NjQzLCA2MTc2LCAxMjA1ODAsIDAsIDAsIDYxNzcsIAotICAgIDkwMjAsIDc4NjUyLCA3ODY1MywgNjE3OCwgMTIwMjQ5LCAxMjAyNDIsIDEyODAyNywgNjc2NzMsIDc1MTgsIDg3NTQsIDAsIAotICAgIDEyMDIzNywgMjEzNywgNDMwODEsIDAsIDAsIDkxMzYsIDEyMDI0MCwgNDQwMSwgNDEyODAsIDAsIDg5NzQsIDIzMDgsIDAsIAotICAgIDc0MTQ5LCAwLCAyMzE4LCAwLCA2NjM2MSwgODE5OCwgMCwgNjQzNjAsIDEyNjAxLCA0MjUzNiwgNjUyNjYsIDEyMDgyNywgCi0gICAgNzQzMDcsIDAsIDY5NzAsIDU0MDQsIDQzMzMyLCAzNjY3LCA3OTM2LCAxMjkyNSwgMTI2OTg5LCA2Mzg1LCAwLCAwLCAKLSAgICAxMTg5NDksIDEwODc0LCA2NTUwNSwgMTI4MDgzLCAwLCA0MjA1MywgMjA3NSwgNDIwNTcsIDExMDgzLCA0MjA1MiwgMCwgMCwgCi0gICAgNjc2NTEsIDAsIDk2NjUsIDkyMzAwLCAwLCAxMzE4MSwgMCwgMCwgMCwgMCwgNzQxNDgsIDAsIDAsIDEyMDIyNSwgMTIwMjI5LCAKLSAgICAxMjAyMjQsIDc0MTcyLCA0MTE0NSwgMCwgMCwgMCwgNDExNDgsIDg2ODMsIDc1OTQsIDEyNzUxOSwgMCwgMTE5MDkwLCAKLSAgICAxMDg2OSwgNDM0NTgsIDQxMTQ2LCA5MjQwNywgMTE0NDEsIDAsIDM1MTIsIDExOTYzMywgMCwgODEwMywgMCwgMCwgNjUxODQsIAotICAgIDExNzgwLCA0MTU2MywgNDI3OTYsIDAsIDY5NzQyLCA0MTU0NCwgNjUxNDYsIDAsIDAsIDAsIDAsIDE5OTQyLCAwLCAKLSAgICAxMTg5MDgsIDc5ODgsIDEwNDM2LCA3NDI3MywgMzI3MSwgNzM4MDQsIDY0NzExLCAwLCAwLCAwLCAwLCAzODA0LCAxMzA3MCwgCi0gICAgMTE1NTcsIDQyMDQ0LCAwLCAxMDk1LCAwLCAzNTk5LCAxMjc3NzQsIDAsIDEyODg2MSwgODUxNCwgMCwgMCwgMCwgNzQzNDYsIAotICAgIDY2Njk3LCAwLCAxMTY4NCwgMCwgOTI0ODYsIDAsIDAsIDQyMDQzLCA0MzIzMiwgNjY2NzcsIDAsIDQyMDQ2LCA3ODI0MSwgCi0gICAgNDAzNiwgMCwgMCwgMTI4MjEzLCAxOTQ4NjEsIDAsIDExOTU0LCAwLCAxNDUwLCAxMjk4NiwgMTM0MCwgMCwgNjU0NDEsIAotICAgIDkyNzIyLCAwLCAwLCAxMjc3NzIsIDAsIDkxNzU0MiwgMCwgMCwgNjUzOSwgMCwgMCwgMCwgMTk0ODU2LCAwLCAxMjA0OTIsIAotICAgIDQxMTkwLCAzOTczLCAxMTkzNjUsIDQ1NzUsIDQxMTkzLCA3OTgyLCA0MjksIDAsIDEyNzE5NCwgMCwgMTk0ODU0LCA2NTc5MiwgCi0gICAgMCwgMTE4OTY4LCA2NDE3LCAxMTg5MTgsIDc4MTc4LCAwLCAxOTQ4NTAsIDAsIDAsIDQ5MTksIDEwNTkwLCAwLCA3NzU1LCAwLCAKLSAgICAwLCA2NDU0OCwgMTIwNTA2LCAxNjIxLCAxMDIxNCwgNjUxMjYsIDAsIDEyNzAwNCwgMCwgMTIxODgsIDAsIDE2MTcsIDgwNTAsIAotICAgIDAsIDUwMTUsIDAsIDExOTE3NCwgNDI1OTAsIDE5NDg3MSwgMTc1NiwgNzgxODEsIDAsIDY1NzY4LCA2MzUyLCA0MTg5MiwgMCwgCi0gICAgNzU1NSwgMTMxMDMsIDU0MDgsIDI4MTcsIDEyMTQsIDAsIDkyMzM1LCAwLCAwLCAwLCAwLCAxMjcxOTUsIDc5NTcsIDg2ODksIAotICAgIDY0NzIzLCAxMDU2LCA0Mjg5NiwgNzQxNDcsIDE5NDgxMywgMCwgNTUyODYsIDcwNzMsIDY1ODUwLCAxMjMyNywgMCwgCi0gICAgMTE5MDI4LCAwLCAwLCAwLCAyMzQxLCA4NDUwLCA4NDg0LCA4NDc0LCAwLCAwLCAwLCA4NDYxLCAxMjgxMDIsIDEyMTUzLCAKLSAgICAxMjc5OSwgMCwgNDM3MDksIDQzNzA4LCA5NDUxLCA3NTcxLCAxMzA3MywgMCwgMCwgNjgxLCAwLCA3MDMsIDAsIDMyNzIsIAotICAgIDg3ODEsIDEyODk0LCAwLCAxMTcwOSwgOTIyODgsIDc0NDQ2LCAwLCA5MjUzMiwgMCwgMTEzMzgsIDEyMDc2OCwgMzI3NiwgMCwgCi0gICAgMCwgNjU5MjgsIDAsIDAsIDY1MDIxLCA2NDc5NSwgNzQ1NzQsIDAsIDEwMDQ3LCA3ODgxNCwgMzI2MiwgNzg4MTEsIDQyNzExLCAKLSAgICAwLCAwLCA2ODQ3OCwgMTYzLCA1NzYsIDk4OTUsIDE2NTUsIDc4ODE3LCA3NDU5MSwgNzg4MTUsIDc4ODE2LCAwLCAwLCAwLCAKLSAgICAwLCAxMDAzOSwgMCwgMCwgNTYyMywgNTcxNywgNTc3NiwgMCwgMCwgMCwgNDE1OTEsIDExMDM2LCA2NTI1MiwgOTIzODIsIDAsIAotICAgIDAsIDAsIDY3ODQ4LCAwLCAwLCAwLCA4ODg3LCAwLCA3Mjk1LCAxMTAzMSwgMCwgNDMxNTcsIDAsIDg5NDYsIDEwMzQ4LCAKLSAgICAxMDQxMiwgODc1NSwgMCwgMCwgNTcxOCwgMTMyMjEsIDAsIDAsIDc4MTM1LCAwLCAwLCA4ODEwLCA3NDQ5OSwgNjg2LCAwLCAKLSAgICAwLCA0NjE5LCAxMTg5NTQsIDY2NTQsIDczNzY5LCA3NDQyNiwgMCwgMTIwNDAsIDY1Njg5LCAxMDEyOCwgNjUxMTgsIDAsIAotICAgIDExOTE1MSwgNzQyMDUsIDkyNjUxLCAwLCAyNDAxLCA2ODE0NCwgODc5MiwgMCwgMCwgNjU0NTUsIDAsIDkyMjQ2LCAwLCAKLSAgICAxMTkxMjksIDAsIDEyODg2LCAxMjc5MjAsIDY2NjI0LCAwLCA0MzU1NywgMTAzMDAsIDEwMTYxLCAxMDM5NiwgNzQxMzUsIDAsIAotICAgIDExODk0NSwgNzgxMTgsIDczODUxLCAzMDEwLCA2NDQxLCA3ODEyMiwgMTQ1OCwgNDE0NzUsIDEyODY3MiwgMCwgMCwgCi0gICAgMTE0NzksIDAsIDAsIDYzNTAsIDEyODY0LCA2OTY3NCwgNzgxMTQsIDEwNjEsIDY0NzgwLCAyMDAxLCA0MzExMSwgNTUyMzAsIAotICAgIDEyODY4NiwgNDA1MiwgMCwgNzYyNiwgMCwgMCwgMTA0NSwgMCwgNTYzMSwgNDExMTMsIDAsIDAsIDQzNzA3LCA3NDEyNywgMCwgCi0gICAgMCwgODQ4NiwgMCwgNzM3NTgsIDIzMzUsIDQzNjIsIDAsIDAsIDY5MjIxLCAxMDI1LCAwLCA0MjYyNSwgOTE3NjI3LCAKLSAgICA3ODA4NCwgNDE0NDMsIDAsIDEyODIwNiwgMCwgMTc3NCwgMTUyMywgMCwgMCwgNDE0NDUsIDc4MjM2LCAwLCA4NTY3LCAKLSAgICA0MTQ0MiwgMzk4OCwgMCwgNzgyMzcsIDExODkxMCwgMCwgNjUyNzQsIDg1NjQsIDc4MTk5LCA3ODIzOCwgMTI3NTE1LCAwLCAKLSAgICAwLCA0MzQ0NiwgMCwgNjY1MTMsIDYyNTYsIDAsIDU3OSwgNTUyMTgsIDEwMjA2LCAwLCA2Mzc1LCAyNjczLCAwLCAxMTgxNCwgCi0gICAgMCwgNDQ4OCwgMCwgMTI3MzM2LCA2ODQ1MSwgMTA0NDQsIDExODg0NiwgMTI3MzM0LCAxMTc5OSwgNzQ0MDcsIDY4NDY2LCAKLSAgICA0NDg3LCAxMjc4NDksIDQyODMyLCAxMDMyLCAxMjAyNjcsIDQzNDUwLCA3ODI1NywgNzIwMywgMCwgNjE0LCA3ODE5MSwgCi0gICAgMTI3MzI1LCAxMjA2MTUsIDAsIDc4MjYyLCAxMjg2NjksIDEyNzMyMywgMCwgNDMxMjEsIDAsIDAsIDkyNTEzLCAxMDUwLCAKLSAgICA3NTQ5LCAwLCAwLCA5MzE0LCAwLCAwLCAxMjA2MTYsIDAsIDEwMDU3LCAwLCAxMjczMTMsIDAsIDY2NTA0LCAwLCAwLCAKLSAgICAyMzA3LCAwLCA2NDMzMywgMTI3MzEyLCAxMjg1NDcsIDczODczLCAwLCAwLCAwLCAxMjc5NzMsIDEyODcwOCwgMCwgMTAzNjAsIAotICAgIDY3NDYsIDAsIDkyMjQ1LCA0NDAsIDAsIDEzMDg1LCA5MjMzLCA3NDIxNiwgMCwgMCwgOTk1NywgMCwgNjY0NDcsIDgwNDYsIAotICAgIDY0OTYzLCA2NTc3NywgMTAxMjUsIDc0MjEyLCA0MjgxOSwgMTA5MTAsIDAsIDE1MjEsIDk4OTYsIDAsIDEwNDg3LCAwLCAKLSAgICAxMjUyNywgMCwgNzk3MCwgMCwgMTI4NjYwLCAwLCA2NTc2OSwgNTI0MywgOTg0OSwgNTIzOSwgNjU3NzEsIDAsIDAsIDUyMzcsIAotICAgIDY5NzE0LCAwLCAxMDEwMywgNTI0NywgNDc2OSwgMCwgMTE4OTc3LCAxMjg3MywgNTc2NCwgMCwgMCwgMzAwOCwgNDg5NiwgMCwgCi0gICAgMTIwODcsIDAsIDU1MjMxLCA0MTEwMywgMCwgNjQ1NjUsIDQ3NzMsIDAsIDkyNzE3LCAwLCA0NzcwLCAwLCA5MTc1NjcsIAotICAgIDg3MzEsIDY1Mzc4LCAxMjczNjIsIDEyMDYxOSwgOTEyMiwgMTI4MDMzLCAwLCA0Nzc0LCAzMDE5LCA5OTk3LCAxMjgzNCwgMCwgCi0gICAgOTQ1NiwgMTAyMTUsIDEyMDU0NywgMCwgMCwgMCwgMCwgNzQ3NzYsIDQyODEsIDQ3NjgsIDAsIDQxNTM1LCA0MDk5LCA5MDE3LCAKLSAgICAwLCAwLCA3ODA5NSwgMCwgNzgwOTYsIDAsIDAsIDAsIDc4MDk4LCAwLCA0MjgxNCwgODgwLCAwLCAwLCAxMjgwMjEsIDIxMzQsIAotICAgIDAsIDEwMTE2LCA5ODc3LCA5MjMyOSwgMCwgMCwgNzA5NSwgMCwgNzQxMTYsIDY3NzgsIDAsIDc4MDkwLCA4MjQzLCAyNDI3LCAKLSAgICAxMjgxNDEsIDcwOTMsIDAsIDExNTg1LCAxOTUwMDMsIDk5NjIsIDAsIDEyMjIzLCAwLCAwLCAxNDM0LCAxMjAyNTQsIDU2MzcsIAotICAgIDExNTczLCAwLCAwLCAwLCAxOTk1MSwgMCwgNzgxMjEsIDAsIDAsIDU1MjgzLCAwLCAwLCA3NDQzNywgMTE1NiwgODc0MCwgCi0gICAgOTI0MTUsIDM3ODIsIDY0MzMxLCAwLCA0MTM3MCwgMTAxNCwgODI2MSwgMCwgMCwgMTA4MzUsIDAsIDY1NTM2LCAwLCAKLSAgICAxMjA0NjMsIDAsIDc3MDIsIDExODgyNCwgMCwgNDMwMTAsIDY1Nzc5LCA2NTc4MywgMTE1MCwgMTA1NDcsIDU3MDAsIDAsIAotICAgIDEyMDYwMywgNjUzODMsIDIzMzksIDQyNTk0LCA1Njk3LCAxMTg3ODgsIDAsIDEyODU3NiwgMCwgNDIyNTcsIDU2OTYsIAotICAgIDkyNjc3LCAxMjA0NjUsIDM4NjIsIDk2NDMsIDAsIDAsIDc2MzQsIDY1MTY3LCA5ODQ1LCAwLCAwLCA1NzAxLCA5NzIyLCAKLSAgICA0MTQ5MCwgMCwgMTQyNiwgNjgyMTcsIDAsIDY4NDQ3LCA0MjIwNCwgNTUyNzAsIDg1NzEsIDE5NDk5MSwgNzgwNjcsIDAsIAotICAgIDc4ODE4LCA5MjcxOSwgNDMxODIsIDEyMTg0LCAwLCA0MjAyMiwgMCwgMTAyODEsIDAsIDU2NTAsIDQzMTk0LCA2NDcxMiwgCi0gICAgMTA3NDQsIDAsIDk5MCwgNTY0NywgMCwgNzM4NywgNzg3MzQsIDQxMTE0LCAxMTQ3NywgNTY0NiwgMTI4NzksIDExMDE4LCAwLCAKLSAgICAzOTQ1LCA5MjU4OSwgMCwgMCwgMCwgMCwgNzgyMTIsIDEyNzc0NiwgMTAyMCwgNzM3NjMsIDAsIDc4NzMxLCA1NjQ4LCAKLSAgICA2NDc0OCwgMTk0OTEwLCAwLCAxMDIwNSwgMzU0NSwgMCwgNjk4NCwgMCwgNzQwNTEsIDAsIDQzMjQyLCAxMjA0NTgsIDI2NjcsIAotICAgIDAsIDAsIDAsIDk5MTEsIDAsIDY1MDIwLCAxMDA5NywgMTE5MTY2LCAxMjcxNDUsIDAsIDExODgzNiwgMCwgNzg0MjcsIAotICAgIDExNDAsIDc4NDI2LCAwLCAxMDE1OSwgMCwgMCwgODEyOCwgMCwgMCwgOTE3OTY1LCAxODE1LCAxOTkxMCwgODkwLCAwLCAKLSAgICAzMjY3LCA5MjI5MSwgMCwgMTAxMjMsIDAsIDQ0MTAsIDEwNDEsIDEwNTc2LCA2MzU0LCA5MjU4MSwgNTgwLCA3NDIzMiwgMCwgCisgICAgNzkyOCwgMTIwMzU0LCA5ODMwOTUsIDQxNTk1LCA3MzczMCwgMCwgNDIxMTgsIDczODMwLCA2NjA0MiwgMTAzNTUsIAorICAgIDk4MzExMCwgNzg3NSwgMCwgNDE1OTgsIDM5OTMsIDAsIDE1NDUsIDQwOTcxLCA1MzYsIDEyODUyMSwgNDMwMjksIDAsIDAsIAorICAgIDY1MTczLCA2NTI4NiwgMCwgMCwgMCwgMCwgMCwgMCwgNDEzNzUsIDU0MDIsIDAsIDAsIDE2ODcsIDEyMDUwMywgOTE3ODE3LCAKKyAgICAwLCA3ODE5NCwgNjQzMjYsIDQwOTY5LCAxMDUyNiwgNzg3NTMsIDgzMjMsIDQwOTY4LCAxMzM5LCAxMTczMSwgNzg3NTYsIDAsIAorICAgIDY1NDYwLCAxMjI0MiwgMTI4NTEzLCA4MDIwLCAxMDg0MywgMTE1NTQsIDAsIDAsIDgyNjYsIDQxMDA2LCA2NTcyMiwgMCwgCisgICAgMTA3MTAsIDAsIDExODk0MiwgNjc2NjcsIDY0NTY3LCAxMTkxNTUsIDE5NTA5MSwgMCwgMTE5NjM2LCA2Nzg1NywgMTIwNjg3LCAKKyAgICAwLCA5ODMwNjYsIDExNzU1LCA2NjMwNSwgMCwgMCwgMTA5MTcsIDkzOTc5LCAwLCAxMTI3MiwgMjA0MCwgNDEyNDcsIAorICAgIDQxMzI2LCAxOTUwNjAsIDE3NDEsIDQyMzcwLCAxMjI3LCAwLCAwLCAxMTQxMywgMCwgMCwgNTI4MywgMTU4NiwgNDk3OCwgMCwgCisgICAgMTk4NCwgMTE4MzAsIDAsIDkyMjkzLCA0MDk4NCwgMTI4MzA2LCA5MzczLCAwLCAxMjkxNiwgNjI4NCwgMCwgNDE2NjMsIDAsIAorICAgIDAsIDAsIDkyMzcsIDkzODUsIDQxNjQ4LCAwLCAxOTQ1ODAsIDIyOTksIDQxNjY2LCAxODMwLCA3Mzc4MywgMjA1NiwgCisgICAgNDEyODcsIDkyNjEwLCAwLCAwLCA0MjIxOSwgMTI4MjU3LCAwLCA0MTk4NywgNDE2NzYsIDk4MzA1OSwgMTIwODIzLCAKKyAgICA5ODMxNDQsIDQxNjcwLCAwLCA5MjU5MCwgMjc5NiwgNTUyOTEsIDExNjgzLCA5OTAyLCA3NDUyMSwgNjc5ODgsIDExNDUxLCAKKyAgICA5ODMxMTEsIDEyODgyMiwgNDI2MzEsIDIzNTksIDAsIDY3ODQ0LCA3NDE2NCwgNDEyMzgsIDU0OCwgMTE0MDUsIDEzMTMzLCAKKyAgICA2NDM2OCwgOTgzMjMzLCAxMjg3OTUsIDAsIDM5NywgNDM2MjIsIDQyMTM5LCA5NTQ3LCA5NTkwLCAxMjgyMzgsIDE2MTQsIAorICAgIDQzNjYxLCA2NDM1NiwgNjYzMDcsIDY2NTEsIDEzNTgsIDAsIDQyOCwgOTYyMCwgMTQ2NiwgNzgxMTIsIDEwOTgyLCAKKyAgICAxMTg4MzEsIDEzMzMsIDcxMDQsIDQwNywgNjQyNSwgMTI4ODM0LCA3NDI1MywgMCwgMCwgMCwgNTgwNCwgMTE5NzYsIDg1NTQsIAorICAgIDkyNzIxLCAwLCAwLCA5MDU3LCA0MjI5NCwgNDEyMTgsIDAsIDAsIDc4MTM3LCAxODgzLCAxMDk1MiwgODA0OCwgNzgxNDIsIAorICAgIDQxMjI1LCA5MjYyMSwgNDI5MTUsIDk4MzY2NywgMTI4Njg0LCAwLCA0NDA3LCAwLCA2NTgwOSwgMTE5MDc0LCAxOTQ4MjEsIAorICAgIDg0NDgsIDcxNDEsIDc0MTgzLCAwLCAxMjY3NSwgMTI2NTksIDAsIDQyMzYzLCAxMjA2MjQsIDE5NDgyNCwgNTUyNzMsIAorICAgIDEwNzY2LCAxMjAxMiwgMjM4NiwgNjQ3MzIsIDkxNzAsIDkxNzgyMSwgOTEyMywgNjQ1ODUsIDEyMDUwMCwgMTE5MTU4LCAKKyAgICA3MTQwLCAxMDk3NywgMTI3Mzc4LCA0MTY0LCA5MDgxLCAwLCAxMjA1NjksIDQyMDQ5LCA0MjA0MiwgODcwOSwgMTI4MjgzLCAKKyAgICAxMjY0NzcsIDEyMDYzNywgNDI0MTksIDY0Nzk5LCA0MjA0NywgMCwgMCwgODQ3MCwgMTE4MDcsIDY1ODk3LCA1NzcsIDAsIAorICAgIDk4Mzc1MSwgNzQzMDAsIDAsIDEyNzMwOCwgNzQ4NDAsIDAsIDAsIDEyODc5MSwgOTIyMjQsIDg3MzYsIDE0MTQsIDQyNjQzLCAKKyAgICA5NjgzLCA0MzQ4NiwgNzQzNDQsIDAsIDI1MzYsIDAsIDY2MzMwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2NjMxNywgNjk5NDUsIAorICAgIDY2MzE1LCAyMTA2LCAxMjAyMjIsIDExMjczLCAwLCA0MzAwNCwgNzU0MSwgMCwgMCwgOTYxLCA2NDMwNywgNjYzMjQsIAorICAgIDY0OTA2LCAxMjg1OTEsIDMxMDYsIDY1OTE3LCA0MTI4NCwgMTY5NiwgMCwgODkxLCAxMjEwNSwgMCwgNDI2MjQsIDEyODAyLCAKKyAgICAzMjY0LCA4ODI0LCAxMzI2OCwgNDMwMDMsIDEwOTM2LCAwLCAwLCAwLCAxOTQ4MjYsIDkyNjg4LCAwLCAyMzIyLCAxMjAzNzEsIAorICAgIDk4MzU4NCwgMTE0NDksIDEyODE4NywgNDI4NjgsIDQxMjg1LCAzNTQ3LCAwLCAwLCAxMjg3OTMsIDk4MzM5MCwgNDMyMTYsIAorICAgIDYwODksIDc4NjgyLCAwLCAxMjA1NzgsIDQxNzAsIDEwMjksIDEyNzc2MSwgMTI3MDM2LCAxMTkyMjQsIDQyMzc0LCAwLCAKKyAgICA3NDQsIDAsIDAsIDAsIDY1ODIzLCAxMjc4MjYsIDAsIDM1NTEsIDAsIDAsIDQ2MjMsIDU1MjY4LCAwLCA0NTk4LCA5ODMxNjIsIAorICAgIDY1MTM2LCAxMjcxMzYsIDAsIDAsIDEwODUxLCAwLCA2MTc5LCA5MjYwMiwgNjE4MCwgMCwgMTE5NTIsIDEyMDc3OCwgCisgICAgNzg2NDgsIDExOTcyLCA3ODY0NiwgNzg2NDcsIDc4NjQ0LCA3ODY0NSwgMTc3LCA3ODY0MywgNjE3NiwgMTIwNTgwLCAwLCAwLCAKKyAgICA2MTc3LCA5MDIwLCA3ODY1MiwgNzg2NTMsIDYxNzgsIDEyMDI0OSwgMTIwMjQyLCAxMjgwMjcsIDY3NjczLCAyMjE0LCAKKyAgICA4NzU0LCAwLCAxMjAyMzcsIDIxMzcsIDQzMDgxLCAwLCAwLCA5MTM2LCAxMjAyNDAsIDQ0MDEsIDQxMjgwLCAwLCA4OTc0LCAKKyAgICAyMzA4LCAwLCA3NDE0OSwgMCwgMjMxOCwgOTgzMTgzLCA2NjM2MSwgODE5OCwgMCwgNjQzNjAsIDEyNjAxLCA0MjUzNiwgCisgICAgNjUyNjYsIDEyMDgyNywgNzQzMDcsIDkyNDYyLCA2OTcwLCA1NDA0LCA0MzMzMiwgMzY2NywgNzkzNiwgMTI5MjUsIAorICAgIDEyNjk4OSwgNjM4NSwgMCwgMCwgMTE4OTQ5LCAxMDg3NCwgNjU1MDUsIDEyODA4MywgMCwgNDIwNTMsIDIwNzUsIDQyMDU3LCAKKyAgICAxMTA4MywgNDIwNTIsIDAsIDAsIDY3NjUxLCAwLCA5NjY1LCA5MjMwMCwgOTgzNjU3LCAxMzE4MSwgMCwgMCwgMCwgNzAwODgsIAorICAgIDc0MTQ4LCAwLCAwLCAxMjAyMjUsIDEyMDIyOSwgMTIwMjI0LCA3NDE3MiwgNDExNDUsIDAsIDk0MDk2LCA5ODM5MzcsIAorICAgIDQxMTQ4LCA4NjgzLCA3NTk0LCAxMjc1MTksIDAsIDExOTA5MCwgMTA4NjksIDQzNDU4LCA0MTE0NiwgOTI0MDcsIDExNDQxLCAKKyAgICAwLCAzNTEyLCAxMTk2MzMsIDk4MzcwMCwgODEwMywgMCwgMCwgNjUxODQsIDExNzgwLCA0MTU2MywgNDI3OTYsIDAsIAorICAgIDY5NzQyLCA0MTU0NCwgNjUxNDYsIDAsIDAsIDAsIDAsIDE5OTQyLCAwLCAxMTg5MDgsIDc5ODgsIDEwNDM2LCA3NDI3MywgCisgICAgMzI3MSwgNzM4MDQsIDY0NzExLCAwLCA5NDA2NCwgMCwgMCwgMzgwNCwgMTMwNzAsIDExNTU3LCA0MjA0NCwgMCwgMTA5NSwgCisgICAgMCwgMzU5OSwgMTI3Nzc0LCAwLCAxMjg4NjEsIDg1MTQsIDAsIDAsIDAsIDc0MzQ2LCA2NjY5NywgMCwgMTE2ODQsIDAsIAorICAgIDkyNDg2LCA5MTc2MDMsIDAsIDQyMDQzLCA0MzIzMiwgNjY2NzcsIDAsIDQyMDQ2LCA3ODI0MSwgNDAzNiwgMTI2NDgxLCAwLCAKKyAgICAxMjgyMTMsIDE5NDg2MSwgMCwgMTE5NTQsIDkzOTc4LCAxNDUwLCAxMjk4NiwgMTM0MCwgMCwgNjU0NDEsIDkyNzIyLCAwLCAKKyAgICAwLCAxMjc3NzIsIDAsIDkxNzU0MiwgMCwgMCwgNjUzOSwgMCwgMCwgMCwgMTk0ODU2LCAwLCAxMjA0OTIsIDQxMTkwLCAKKyAgICAzOTczLCAxMTkzNjUsIDQ1NzUsIDQxMTkzLCA3OTgyLCA0MjksIDAsIDEyNzE5NCwgMCwgMTk0ODU0LCA2NTc5MiwgMCwgCisgICAgMTE4OTY4LCA2NDE3LCAxMTg5MTgsIDc4MTc4LCAwLCAxOTQ4NTAsIDAsIDAsIDQ5MTksIDEwNTkwLCAxMjg1NTYsIDc3NTUsIAorICAgIDAsIDAsIDY0NTQ4LCAxMjA1MDYsIDE2MjEsIDEwMjE0LCA2NTEyNiwgMCwgMTI3MDA0LCAwLCAxMjE4OCwgOTgzNjU5LCAKKyAgICAxNjE3LCA4MDUwLCAwLCA1MDE1LCAwLCAxMTkxNzQsIDQyNTkwLCAxOTQ4NzEsIDE3NTYsIDc4MTgxLCAwLCA2NTc2OCwgCisgICAgNjM1MiwgNDE4OTIsIDAsIDc1NTUsIDEzMTAzLCA1NDA4LCAyODE3LCAxMjE0LCA2OTkxOSwgOTIzMzUsIDk4MzEyNSwgMCwgCisgICAgMCwgMCwgMTI3MTk1LCA3OTU3LCA4Njg5LCA2NDcyMywgMTA1NiwgNDI4OTYsIDc0MTQ3LCAxOTQ4MTMsIDAsIDU1Mjg2LCAKKyAgICA3MDczLCA2NTg1MCwgMTIzMjcsIDk4MzkzOSwgMTE5MDI4LCAwLCAwLCAwLCAyMzQxLCA4NDUwLCA4NDg0LCA4NDc0LCAKKyAgICA5ODMyNTIsIDAsIDcwMDc5LCA4NDYxLCAxMjgxMDIsIDEyMTUzLCAxMjc5OSwgMCwgNDM3MDksIDQzNzA4LCA5NDUxLCAKKyAgICA3NTcxLCAxMzA3MywgMCwgMCwgNjgxLCA5ODMyNDYsIDcwMywgMCwgMzI3MiwgODc4MSwgMTI4OTQsIDcwMDc3LCAxMTcwOSwgCisgICAgOTIyODgsIDc0NDQ2LCAwLCA5MjUzMiwgMCwgMTEzMzgsIDEyMDc2OCwgMzI3NiwgMCwgMCwgNjU5MjgsIDAsIDAsIDY1MDIxLCAKKyAgICA2NDc5NSwgNzQ1NzQsIDAsIDEwMDQ3LCA3ODgxNCwgMzI2MiwgNzg4MTEsIDQyNzExLCAwLCAwLCA2ODQ3OCwgMTYzLCA1NzYsIAorICAgIDk4OTUsIDE2NTUsIDc4ODE3LCA3NDU5MSwgNzg4MTUsIDc4ODE2LCA5ODMxMjIsIDAsIDAsIDAsIDEwMDM5LCAwLCAKKyAgICA5ODM5MzYsIDU2MjMsIDU3MTcsIDU3NzYsIDAsIDAsIDAsIDQxNTkxLCAxMTAzNiwgNjUyNTIsIDkyMzgyLCAwLCAwLCAwLCAKKyAgICA2Nzg0OCwgMCwgMCwgMCwgODg4NywgMTI3NTIxLCA3Mjk1LCAxMTAzMSwgMCwgNDMxNTcsIDAsIDg5NDYsIDEwMzQ4LCAKKyAgICAxMDQxMiwgODc1NSwgMCwgMCwgNTcxOCwgMTMyMjEsIDAsIDAsIDc4MTM1LCAwLCA5ODM3MDIsIDg4MTAsIDc0NDk5LCA2ODYsIAorICAgIDAsIDcxMzYyLCA0NjE5LCAxMTg5NTQsIDY2NTQsIDczNzY5LCA3NDQyNiwgMCwgMTIwNDAsIDY1Njg5LCAxMDEyOCwgCisgICAgNjUxMTgsIDAsIDExOTE1MSwgNzQyMDUsIDkyNjUxLCAwLCAyNDAxLCA2ODE0NCwgODc5MiwgOTgzNjM5LCAwLCA2NTQ1NSwgCisgICAgMCwgOTIyNDYsIDAsIDExOTEyOSwgMCwgMTI4ODYsIDEyNzkyMCwgNjY2MjQsIDAsIDQzNTU3LCAxMDMwMCwgMTAxNjEsIAorICAgIDEwMzk2LCA3NDEzNSwgOTgzNDQ1LCAxMTg5NDUsIDc4MTE4LCA3Mzg1MSwgMzAxMCwgNjQ0MSwgNzgxMjIsIDE0NTgsIAorICAgIDQxNDc1LCAxMjg2NzIsIDkzOTc1LCAwLCAxMTQ3OSwgMCwgMTIwMzU2LCA2MzUwLCAxMjg2NCwgNjk2NzQsIDc4MTE0LCAKKyAgICAxMDYxLCA2NDc4MCwgMjAwMSwgNDMxMTEsIDU1MjMwLCAxMjg2ODYsIDQwNTIsIDAsIDc2MjYsIDAsIDAsIDEwNDUsIDAsIAorICAgIDU2MzEsIDQxMTEzLCAwLCAwLCA0MzcwNywgNzQxMjcsIDAsIDAsIDg0ODYsIDAsIDczNzU4LCAyMzM1LCA0MzYyLCAKKyAgICA5ODMxOTUsIDEyNjU2MSwgNjkyMjEsIDEwMjUsIDAsIDQyNjI1LCA5MTc2MjcsIDc4MDg0LCA0MTQ0MywgMCwgMTI4MjA2LCAKKyAgICAwLCAxNzc0LCAxNTIzLCAwLCAwLCA0MTQ0NSwgNzgyMzYsIDAsIDg1NjcsIDQxNDQyLCAzOTg4LCAwLCA3ODIzNywgCisgICAgMTE4OTEwLCAwLCA2NTI3NCwgODU2NCwgNzgxOTksIDc4MjM4LCAxMjc1MTUsIDAsIDAsIDQzNDQ2LCAwLCA2NjUxMywgCisgICAgNjI1NiwgMCwgNTc5LCA1NTIxOCwgMTAyMDYsIDk4MzA3NSwgNjM3NSwgMjY3MywgMCwgMTE4MTQsIDAsIDQ0ODgsIDAsIAorICAgIDEyNzMzNiwgNjg0NTEsIDEwNDQ0LCAxMTg4NDYsIDEyNzMzNCwgMTE3OTksIDc0NDA3LCA2ODQ2NiwgNDQ4NywgMTI3ODQ5LCAKKyAgICA0MjgzMiwgMTAzMiwgMTIwMjY3LCA0MzQ1MCwgNzgyNTcsIDcyMDMsIDAsIDYxNCwgNzgxOTEsIDEyNzMyNSwgMTIwNjE1LCAKKyAgICAwLCA3ODI2MiwgMTI4NjY5LCAxMjczMjMsIDAsIDQzMTIxLCAwLCAwLCA5MjUxMywgMTA1MCwgNzU0OSwgMCwgMCwgOTMxNCwgCisgICAgMCwgMCwgMTIwNjE2LCAwLCAxMDA1NywgMCwgMTI3MzEzLCAwLCA2NjUwNCwgOTgzMTcxLCAwLCAyMzA3LCAwLCA2NDMzMywgCisgICAgMTI3MzEyLCAxMjg1NDcsIDczODczLCAwLCA5NDAzNSwgMCwgMTI3OTczLCAxMjg3MDgsIDAsIDEwMzYwLCA2NzQ2LCAwLCAKKyAgICA5MjI0NSwgNDQwLCAwLCAxMzA4NSwgOTIzMywgNzQyMTYsIDAsIDAsIDk5NTcsIDEyODI4NSwgNjY0NDcsIDgwNDYsIAorICAgIDY0OTYzLCA2NTc3NywgMTAxMjUsIDc0MjEyLCA0MjgxOSwgMTA5MTAsIDAsIDE1MjEsIDk4OTYsIDkzOTY1LCAxMDQ4NywgCisgICAgNjk4NzgsIDEyNTI3LCAwLCA3OTcwLCAwLCAxMjg2NjAsIDAsIDY1NzY5LCA1MjQzLCA5ODQ5LCA1MjM5LCA2NTc3MSwgCisgICAgOTgzMjI5LCAwLCA1MjM3LCA2OTcxNCwgMCwgMTAxMDMsIDUyNDcsIDQ3NjksIDAsIDExODk3NywgMTI4NzMsIDIyODMsIAorICAgIDk4MzIzMSwgMCwgMzAwOCwgNDg5NiwgMCwgMTIwODcsIDAsIDU1MjMxLCA0MTEwMywgMCwgNjQ1NjUsIDQ3NzMsIDAsIAorICAgIDkyNzE3LCA3MDA3NCwgNDc3MCwgMCwgOTE3NTY3LCA4NzMxLCA2NTM3OCwgMTI3MzYyLCAxMjA2MTksIDkxMjIsIDEyODAzMywgCisgICAgMTI2NjAwLCA0Nzc0LCAzMDE5LCA5OTk3LCAxMjgzNCwgMCwgOTQ1NiwgMTAyMTUsIDEyMDU0NywgMCwgMCwgMCwgMCwgCisgICAgNzQ3NzYsIDQyODEsIDQ3NjgsIDAsIDQxNTM1LCA0MDk5LCA5MDE3LCAwLCAwLCA3ODA5NSwgMCwgNzgwOTYsIDAsIDAsIDAsIAorICAgIDc4MDk4LCAwLCA0MjgxNCwgODgwLCAwLCAwLCAxMjgwMjEsIDIxMzQsIDAsIDEwMTE2LCA5ODc3LCA5MjMyOSwgMCwgMCwgCisgICAgNzA5NSwgMCwgNzQxMTYsIDY3NzgsIDAsIDc4MDkwLCA4MjQzLCAyNDI3LCAxMjgxNDEsIDcwOTMsIDAsIDExNTg1LCAKKyAgICAxOTUwMDMsIDk5NjIsIDAsIDEyMjIzLCAwLCAwLCAxNDM0LCAxMjAyNTQsIDU2MzcsIDExNTczLCAwLCAwLCAwLCAxOTk1MSwgCisgICAgMCwgNzgxMjEsIDAsIDAsIDU1MjgzLCAwLCAwLCA3NDQzNywgMTE1NiwgODc0MCwgOTI0MTUsIDM3ODIsIDY0MzMxLCAwLCAKKyAgICA0MTM3MCwgMTAxNCwgODI2MSwgMCwgMCwgMTA4MzUsIDAsIDY1NTM2LCAwLCAxMjA0NjMsIDAsIDc3MDIsIDExODgyNCwgMCwgCisgICAgNDMwMTAsIDY1Nzc5LCA2NTc4MywgMTE1MCwgMTA1NDcsIDU3MDAsIDAsIDEyMDYwMywgNjUzODMsIDIzMzksIDQyNTk0LCAKKyAgICA1Njk3LCAxMTg3ODgsIDAsIDEyODU3NiwgMCwgNDIyNTcsIDU2OTYsIDkyNjc3LCAxMjA0NjUsIDM4NjIsIDk2NDMsIDAsIDAsIAorICAgIDc2MzQsIDY1MTY3LCA5ODQ1LCAwLCAwLCA1NzAxLCA5NzIyLCA0MTQ5MCwgOTgzMTUzLCAxNDI2LCA2ODIxNywgMCwgCisgICAgNjg0NDcsIDQyMjA0LCA1NTI3MCwgODU3MSwgMTk0OTkxLCA3ODA2NywgMCwgNzg4MTgsIDkyNzE5LCA0MzE4MiwgMTIxODQsIAorICAgIDAsIDQyMDIyLCAwLCAxMDI4MSwgMCwgNTY1MCwgNDMxOTQsIDY0NzEyLCAxMDc0NCwgMCwgOTkwLCA1NjQ3LCAwLCA3Mzg3LCAKKyAgICA3ODczNCwgNDExMTQsIDExNDc3LCA1NjQ2LCAxMjg3OSwgMTEwMTgsIDk4MzkyMSwgMzk0NSwgOTI1ODksIDAsIDAsIDAsIDAsIAorICAgIDc4MjEyLCAxMjc3NDYsIDEwMjAsIDczNzYzLCAwLCA3ODczMSwgNTY0OCwgNjQ3NDgsIDE5NDkxMCwgNzg3MzMsIDEwMjA1LCAKKyAgICAzNTQ1LCA5ODM1ODUsIDY5ODQsIDAsIDc0MDUxLCA5ODM2NDYsIDQzMjQyLCAxMjA0NTgsIDI2NjcsIDAsIDAsIDAsIDk5MTEsIAorICAgIDAsIDY1MDIwLCAxMDA5NywgMTE5MTY2LCAxMjcxNDUsIDk4MzY1MywgMTE4ODM2LCA5ODM3MzksIDc4NDI3LCAxMTQwLCAKKyAgICA3ODQyNiwgMCwgMTAxNTksIDAsIDAsIDgxMjgsIDAsIDAsIDkxNzk2NSwgMTgxNSwgMTk5MTAsIDg5MCwgMCwgMzI2NywgCisgICAgOTIyOTEsIDAsIDEwMTIzLCAwLCA0NDEwLCAxMDQxLCAxMDU3NiwgNjM1NCwgOTI1ODEsIDU4MCwgNzQyMzIsIDAsIAogICAgIDEyODM0NywgMCwgMCwgMCwgMTk5MzgsIDY1OTA2LCAxMjc4MTksIDAsIDAsIDMyOTgsIDUzNzUsIDEwMTQyLCAwLCA4MjE1LCAKLSAgICAwLCA2MTM0LCA0MTI0NiwgNjQ0MDIsIDAsIDEyODIxNSwgMCwgMCwgMCwgNDEzODIsIDAsIDEyODY1MywgNTE3MywgNjUzNDgsIAorICAgIDAsIDYxMzQsIDQxMjQ2LCA2NDQwMiwgMCwgNjk4OTksIDAsIDAsIDAsIDQxMzgyLCAwLCAxMjg2NTMsIDUxNzMsIDY1MzQ4LCAKICAgICA1MjcsIDAsIDAsIDkyNjEyLCAxMjgyNTAsIDc4Nzk3LCAxMTkxNSwgMCwgMCwgMTAwNzIsIDAsIDQyNjk1LCAyMzI5LCAKLSAgICA0MjI1MCwgMCwgMTI4ODY0LCA2OTY2NywgMTIyNDUsIDE1NjgsIDAsIDAsIDAsIDEyODEyMCwgMCwgNzQzMjgsIDkyNzA4LCAKLSAgICA3NDc2OSwgMCwgMTE5MDg3LCA5MDY5LCA2MTQ0LCAwLCAwLCA3MzgyMiwgMCwgMTI4MDEwLCA2NDkxNywgNDE1MjEsIAotICAgIDExODkzNCwgNDk0LCAxMzI1MCwgMCwgNjUwOTgsIDYzNjQsIDk1NiwgMCwgMTI4MzAsIDEwNDYyLCA3Mzc0MCwgMCwgMCwgMCwgCi0gICAgMCwgNjY0NDksIDEzMjYzLCA3NDI4MSwgNjkyMTcsIDEzMTcxLCAxMjc3OTYsIDAsIDAsIDkyMjk0LCAwLCAxMDQ0LCAKLSAgICA0MTI3NiwgMCwgMCwgMCwgNDIwNjgsIDExNzk1LCAwLCAwLCAwLCAwLCA0MjQ1MCwgMzkwNywgMCwgNjQ1MjYsIDkxNzg0NywgCi0gICAgNjgxOTcsIDEyMjk1LCAwLCAxMTQ3NSwgMCwgMzAyMCwgMTE1MzcsIDAsIDY2NDQxLCAwLCAwLCAwLCAwLCAxMDU3LCA1NjYsIAotICAgIDQyNjk2LCAwLCAzMDE2LCA0MjI3NCwgNDM0NjQsIDY2NDkwLCAxMjkyMSwgNjY1NzEsIDc4NDcyLCA5MjUxMCwgMzAwNiwgCi0gICAgNDYyMCwgMTI3MjM3LCAwLCAwLCAwLCA2NDY1OSwgMCwgMTI3NzQ5LCA1NTI1MywgNjM1NywgNjM2MiwgODYyNiwgMCwgMCwgCi0gICAgOTA5MCwgNjUzNzcsIDQxNTk2LCAwLCA0MjkyMCwgMTY5OCwgMCwgNjQ0NzcsIDAsIDQzODEzLCAxMDUzLCAwLCA3ODI2OSwgCi0gICAgMCwgMCwgMTA1MiwgMTA1MSwgNDU5LCAxMDYwLCA3NDM0OSwgNjY0NzksIDAsIDAsIDAsIDAsIDQyNDkwLCA2ODksIDY1MDgsIAotICAgIDQxNjMsIDQyMjk4LCA4NjM5LCA2NjY0MSwgNDI0NiwgMCwgMCwgMTIxMzAsIDAsIDQyMzM3LCA2NDU5NiwgNjQzNzUsIAotICAgIDY2NDgxLCAxMjc4NTAsIDAsIDAsIDYzNTksIDAsIDQzNDcxLCAwLCAwLCAwLCAxMjcyNzQsIDAsIDYzNTgsIDYzNjEsIAotICAgIDE5MjYsIDYzNTYsIDkyNjI3LCA3ODk4LCA4MTEwLCAxMDkzNSwgMCwgMTAwNjksIDU4MzAsIDAsIDQzNjg1LCAwLCAwLCAwLCAKLSAgICAwLCA4NjkzLCA3ODYxMSwgMTE5NTY1LCAwLCAxMjA0MTMsIDAsIDEyNzI1NywgNjU4OTQsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDExOTE4NywgMjEzNSwgNzg4NjgsIDAsIDAsIDc4ODY5LCA0MjMxMywgNTU3OSwgOTI0MTIsIDAsIDAsIDAsIDAsIDU1NzgsIAotICAgIDQxNzc0LCAxMjgxMTUsIDQyMDIzLCA2MjM0LCA1NjY5LCA5MjI3NSwgMCwgMCwgMCwgMTI3NTA2LCA2ODIwMiwgNTU4MywgMCwgCi0gICAgMCwgNDI0MjYsIDU1ODAsIDQyMjc2LCAyOTIzLCA4OTIsIDU1ODIsIDQyNDY1LCA0MTMzMCwgMTk0OTg3LCA1Nzk1LCAKLSAgICA2NTUxMiwgMTE5MDA2LCA2NTcwMiwgMCwgMTIwODAxLCA2NTI1MSwgMCwgNjU3MTAsIDAsIDAsIDY3NjcyLCAwLCA1MzcwLCAKLSAgICAwLCAyOTMxLCAxNjM4LCAxMDk2NiwgMTAxODgsIDY1ODc4LCAxMTg4NDgsIDAsIDY5Njk0LCAwLCAxMjg4MzAsIDgxNzIsIAotICAgIDQyMDE3LCAwLCAxMDg0NCwgMCwgMTI4MTk1LCA5MjQyNCwgNjM3NCwgMCwgMCwgMjg2LCA3ODAyMywgMTA2MiwgMCwgCi0gICAgMTE5OTk5LCAwLCA3Mzk1LCAwLCAxMDcwLCA2NDkwMCwgNzE1MywgNjA5NSwgNDE4NjUsIDAsIDMwMTUsIDEyODAyMywgCi0gICAgOTE3NzYzLCA1MjExLCAwLCA2NDAwLCAwLCAxOTQ5ODMsIDAsIDgxODksIDExMjc2LCAwLCAwLCAzNzIsIDEyODgyOSwgMCwgCi0gICAgMTE4ODc0LCA0MjEwMiwgNDE1ODUsIDEyODIwMiwgMCwgNDIxMDEsIDI3NiwgNzg0MDIsIDAsIDMzLCA3NDIyNiwgMTI3MzAzLCAKLSAgICA5MDA3LCAxMTg3OTYsIDQxNTg4LCA2NjAzMywgNDI3LCAxMDc2MywgMTE4ODE5LCAwLCAxMjc4ODQsIDAsIDEwMzEsIDYyNTcsIAotICAgIDAsIDQyMTA0LCAwLCAwLCAyMzI4LCA5MjQwOSwgMTA3MSwgMCwgMCwgNzQ4NDgsIDAsIDAsIDAsIDEwNDcsIDAsIDAsIAotICAgIDY0NzkwLCAwLCA2OTcyMywgMTA2NTEsIDAsIDAsIDAsIDAsIDkyMjA2LCAxMTkxODEsIDU3MTEsIDQxNjMzLCAxMjA5OCwgCi0gICAgNjU1NzEsIDkxNjYsIDAsIDU3MTAsIDAsIDY3OTAsIDY1MTY4LCAxMzIxNiwgMCwgNjk3MTYsIDY5NzI2LCAwLCA2NDYxMSwgCi0gICAgNDE2MjMsIDE5NTAwMSwgNTcxNSwgNjk2NTQsIDAsIDAsIDU3MTIsIDI3NjEsIDQxNjIwLCA2ODEyNCwgMzA3NCwgNTcyMiwgCi0gICAgMCwgODY0MywgNzM3NjgsIDAsIDExODkwNiwgMjc1NywgMTEwNjcsIDk3MTgsIDc0NDk4LCA4OTEwLCAxMDY4OSwgNjQ3OSwgCi0gICAgMCwgMCwgMCwgNzg2MDcsIDkxOTYsIDY5NjcwLCAwLCAwLCAwLCAwLCAxMTg5MTEsIDAsIDAsIDAsIDAsIDAsIDEyMDAxMCwgCi0gICAgMCwgODcwMSwgNjgxMzAsIDExOTYxNiwgMTIwNTIyLCAwLCA0MjQ3NywgMCwgMTIxMjMsIDQ0OTUsIDQzNTY5LCAwLCAwLCAwLCAKLSAgICA2NDk0NiwgMTA5OTIsIDAsIDEyMDAwOSwgMCwgMCwgOTMxOCwgMTIwNjYxLCAxMzI0OSwgNjU2NzksIDczODA4LCAwLCAKLSAgICA2NTQ1NywgNDIyNDksIDc2MzksIDQzOTk1LCA2Nzg0NSwgNDI2NDEsIDU0NTQsIDAsIDAsIDE5NDk5NywgMTIwMDA1LCAwLCAKLSAgICAwLCA1MDg0LCAwLCAwLCAxMTg4NjEsIDAsIDczMywgOTE3ODc2LCA3ODAxNCwgNzg0MzYsIDc4NDM1LCA0MTY3NywgMCwgCi0gICAgOTIxOCwgMTczMSwgMCwgMCwgMCwgMTk1MDEwLCAwLCAwLCAwLCAxMjAwMDEsIDEyNzAxOCwgOTI0OTIsIDUxNTUsIDAsIAotICAgIDUzNTgsIDAsIDAsIDkxNzc2NywgNjQ0MjQsIDAsIDM4NDAsIDY0MzE0LCA0MTQzMiwgMCwgMCwgNjg0MzAsIDExOTExNiwgCi0gICAgNDMyNTMsIDY1OTQzLCAwLCAzMzcxLCAxMDk4OCwgMCwgODc3MSwgMTQ3OSwgMCwgMCwgMTEwOSwgMTE1ODAsIDAsIDY0NjAxLCAKLSAgICAxMjIwNSwgMCwgMCwgNjQ1MDcsIDg4NjgsIDM5OSwgMCwgNzQ4NDIsIDAsIDAsIDEyMTQ5LCAxMzA4OCwgNTUxLCAwLCAKLSAgICAxMDE1NiwgMTIxMTksIDkyNTcyLCAwLCAyNTQ0LCA2NTA3NCwgMTE5MjExLCAwLCAwLCA3ODAxMSwgMzUxLCAxMTkxNDksIDAsIAotICAgIDAsIDU1MjI5LCAwLCA3NDI2OCwgMCwgMCwgMCwgNDIzNzcsIDAsIDAsIDAsIDAsIDAsIDkwMTMsIDQwNTQsIDAsIDAsIDAsIAotICAgIDAsIDczOTYwLCA1NTg1LCA2NTg4MSwgMjU0OSwgNzQ0NjksIDAsIDAsIDU1ODQsIDgzNTgsIDAsIDc0NDExLCA5MjIxOSwgCi0gICAgMTA5MTksIDAsIDc5ODAsIDAsIDAsIDAsIDQxODAwLCA1NTg5LCAwLCAyNjY0LCA0MTYxMywgNTU4NiwgMTE4ODkwLCAwLCAKLSAgICAxMTM1NiwgMCwgMCwgNDM0NTIsIDc4NjA5LCAwLCA0MjU3MywgNjc4NTYsIDAsIDc4MTI5LCAwLCAwLCA5MjUzNSwgODEzNSwgCi0gICAgNjQ1MCwgMTAwNTUsIDc3OTk2LCAwLCAwLCAwLCA1NjU3LCAwLCA5NjI2LCAwLCA3Nzk5NCwgMTAxNzksIDU2NTQsIDEyOTM5LCAKLSAgICA5MjU3MywgMTIwNzk5LCAwLCAwLCA1NjUyLCAxMDk0NSwgMCwgNjY0ODYsIDAsIDM2NjEsIDc4NjMsIDAsIDAsIDAsIAotICAgIDc0NTA5LCAwLCA1NjU5LCAwLCAxMjc1MTAsIDY2NzI5LCA1NjU1LCAwLCA0MjE2OCwgMCwgMTA1NSwgOTE3NjI4LCAKLSAgICAxMjc3OTIsIDY2MzEwLCA3NDAzMCwgMCwgMTIxNDYsIDczOTU1LCA3Mzk1NiwgMTE2MTgsIDAsIDEyNjk5MCwgMCwgMTAyNzIsIAotICAgIDEwMzA0LCAxMDM2OCwgNDI1MTgsIDU5NCwgMTAyNDQsIDEwMjQ4LCA3NDA3LCAwLCA2NDg3MCwgMCwgMzQ2NywgMCwgMCwgCi0gICAgMzMzMSwgOTQ2LCAxMDIzMSwgMTQ5NSwgODEzMSwgNzQzMzAsIDAsIDk1NjIsIDY5MjIyLCA2NTkyNywgMCwgMCwgNjk2OTYsIAotICAgIDY5NzY5LCA2NDY1NiwgMCwgMCwgMTk0ODM3LCAwLCA1NjY2LCA2NTIyNywgNTMxOCwgNjM5OTQsIDAsIDkwOTEsIDEwNzk4LCAKLSAgICAwLCAxMjgxNjYsIDEwMTg2LCAwLCA3NzMyLCAwLCA2NDU1NiwgMCwgMCwgNTY2OCwgNzQ0NDUsIDAsIDAsIDU2NzAsIDAsIAotICAgIDEyNzI5NywgMTE4MjAsIDI5OTIsIDc4MjYsIDU2NjcsIDE5OTUyLCAxMjA4MDcsIDAsIDEyNzQ5LCA3NDU1MSwgMCwgMCwgCi0gICAgNjY0OTYsIDQzNjEsIDExOTI2MCwgMTMwNiwgOTI4NiwgMTQ5NywgMCwgMCwgMCwgMCwgMzU3MSwgMTMyNDcsIDAsIDc5NzMsIAotICAgIDY2MzUzLCA2ODQzNSwgNzgyNzgsIDY3ODk2LCA0MzE5MiwgMCwgNzgyNjUsIDU1MywgMTIwNjUzLCAwLCAxMjg1NTQsIAotICAgIDU4MjksIDAsIDQ1ODcsIDc4Mjg1LCA2NTkxMiwgMCwgMTI3NDYsIDAsIDAsIDExOTkyNCwgNTYzMywgMTE5OTI3LCAwLCAwLCAKLSAgICAwLCA2NDkwNSwgMCwgOTUxMiwgMTIwNjcxLCAxMjc0MiwgNjQ0MywgMCwgMCwgOTEzNSwgMCwgNDE1NjQsIDAsIDU1MjE5LCAKLSAgICAxMjg4MzIsIDAsIDAsIDEyMTQ4LCAwLCA3ODI5NywgMCwgNjQyNTYsIDAsIDExNjY5LCAwLCA1NjM0LCA0NTI0LCAwLCAKLSAgICAxMjcyNzAsIDAsIDExODg4MCwgMjQyNSwgNjUxODIsIDEyODc2OSwgNDM2MzYsIDUyMjEsIDc4NDEwLCAzMjgsIDAsIDAsIAotICAgIDY5ODE1LCA1NjM2LCAwLCA1MzI5LCAwLCA1NjM4LCAxMTk5MTgsIDc5NDAsIDY0OTM4LCA0MzIyMywgMCwgNTYzNSwgMzM3MywgCi0gICAgMjk4NiwgNzgyOTIsIDc0MjIzLCAzNDM3LCA3ODI5MSwgNjIwMywgNDI0NywgMCwgMTE5MjAsIDgyNzQsIDAsIDAsIDE2NTcsIAotICAgIDQxNTYxLCA3ODI5OSwgNzgyOTUsIDU2MzksIDI5NTQsIDU2NjAsIDU2NDAsIDc4MzAzLCAwLCA3ODMwMCwgNDIyMjcsIDAsIAotICAgIDAsIDQxNjM3LCA2Nzg3MiwgMCwgNzgzMTAsIDQxNjI1LCA0MzM2MiwgNzgzMDksIDEyMDcxMywgMTE3MDUsIDU2NDIsIDAsIAotICAgIDU0ODYsIDAsIDQzNTYsIDExNzEwLCAwLCAxMjA1MSwgMCwgMCwgNTY0MSwgODI1OSwgMCwgMTA1OCwgMCwgNjc2MzAsIDAsIAotICAgIDAsIDExNDQsIDc4NzUwLCAwLCA0MjIyOCwgMCwgNzM4OTAsIDExODk3MiwgMCwgNjUzMjIsIDAsIDU2NDUsIDY0OTY0LCAKLSAgICA4NjUyLCAyNTQ3LCA2NjQ4NCwgNDM2MzQsIDAsIDU2MDgsIDY1ODkwLCA0MzgwOCwgMCwgNjc2MjEsIDExOTkzNCwgOTAwMCwgCi0gICAgMCwgMCwgOTI2NzMsIDE4NjUsIDAsIDU2MTMsIDc0MjY3LCAwLCAwLCA1NjEwLCAwLCAwLCA2NTgyNiwgMjA2OSwgMCwgCi0gICAgMTA3ODcsIDQzOTk5LCAyOTk3LCAwLCA1NjA5LCA3ODMxNiwgNjUzMTksIDc4MzEzLCAxMjMxNiwgNjUzNzYsIDI0MTIsIDAsIAotICAgIDgxODYsIDk4MDcsIDc0MjY5LCAwLCAxMzEzMCwgNjU4NzQsIDAsIDU4MDcsIDAsIDEwMDMwLCA1MzA2LCAxMjkzNiwgMCwgMCwgCi0gICAgMTE3MDQsIDAsIDkyNTgzLCAxMDIxMSwgMCwgMCwgMCwgMCwgMTE3MDYsIDk3MTAsIDAsIDAsIDAsIDQxMywgNjU2MjMsIAotICAgIDcxMTgsIDAsIDkxMzMsIDc0MjYyLCAwLCAxMDQyLCAwLCA2NDc3OSwgMTIxNzEsIDExOTI0MCwgNjE4NSwgNjQ3NzYsIAotICAgIDQ5ODQsIDAsIDcwOCwgMTEzOTEsIDAsIDEyMjQxLCA5MjcyMCwgMCwgMTMwOCwgMCwgMjUzNCwgODEwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAxOTE3LCAzMDAwLCAwLCAwLCAxMjA3MzksIDIzNjQsIDkyNDQzLCA3NDQ3MCwgNjY2MTgsIDY1NjgwLCAwLCAxMDAyNywgCi0gICAgMCwgMTI4MTU0LCAxMjMzNywgMTIwNzIyLCAxMjczNjgsIDAsIDI5ODAsIDc1NSwgNjk3NzQsIDkzMSwgMTMxMjQsIDY4MTgyLCAKLSAgICA2MzYzLCAyNzQ4LCAwLCAwLCA2NTA0MSwgMCwgNDQwMTEsIDg3MzAsIDAsIDEyNzg1NCwgNzgzMTIsIDcyNzQsIDExOTI1MCwgCi0gICAgMCwgNzI3NSwgNzgzMDQsIDkzNSwgMCwgNjU4NDAsIDM3NywgNDIzMjUsIDExNjQ5LCAxMjczNjMsIDY1MjUzLCA2NDMwMSwgCi0gICAgMTI4ODM1LCA3ODMwOCwgNDIzNDEsIDY1Mjg0LCAyNDE3LCAwLCAxMjg4NCwgMTk5MTIsIDc5MDcsIDEwNzY4LCAwLCAKLSAgICAxOTQ5OTgsIDAsIDEwNjczLCAxMTkyMTcsIDcyNDgsIDAsIDEyODM0NiwgMTc4MSwgNTQ5NiwgMzYyNywgNjIsIDE2NDksIDAsIAotICAgIDk2NCwgMCwgMTI3ODc2LCA3ODIyNiwgMTI4Nzc1LCAxMjc1MTIsIDAsIDAsIDAsIDAsIDQzNjg5LCAxMjc5MTEsIDEzMTQyLCAKLSAgICA3ODgxMiwgNDI0MTUsIDY2NTc1LCA0NTQyLCA3NDAzNywgNDM1NDcsIDAsIDAsIDc2NzcsIDI5OTEsIDQ5NDYsIDQyNDU0LCAKLSAgICAwLCA3OTQ5LCAwLCAwLCAxMTM0MSwgNDI0OTQsIDMwNzMsIDY1NjI1LCA5NzE0LCAxMTY5MiwgNDY1NywgMCwgOTI3MjQsIAotICAgIDY0NzgsIDk4OTgsIDQzNjczLCA2NTIzNywgNjI0MSwgNzEwNiwgNDg3NywgMCwgNjIzOCwgMCwgMTA1NDgsIDEyNzA0OSwgCi0gICAgNDQwOSwgMCwgMCwgNjQ3OTgsIDAsIDUzNDYsIDAsIDEyMDUyOCwgNjIzNywgNDg3NCwgMCwgOTE3NiwgMCwgMCwgNjUyMzEsIAorICAgIDQyMjUwLCAwLCAxMjg4NjQsIDY5NjY3LCAxMjI0NSwgMTU2OCwgOTQwMzMsIDAsIDAsIDEyODEyMCwgMCwgNzQzMjgsIAorICAgIDkyNzA4LCA3NDc2OSwgMCwgMTE5MDg3LCA5MDY5LCA2MTQ0LCAwLCAwLCA3MzgyMiwgMCwgMTI4MDEwLCA2NDkxNywgCisgICAgNDE1MjEsIDExODkzNCwgNDk0LCAxMzI1MCwgMCwgNjUwOTgsIDYzNjQsIDk1NiwgMCwgMTI4MzAsIDEwNDYyLCA3Mzc0MCwgCisgICAgNzM3MzQsIDAsIDAsIDAsIDY2NDQ5LCAxMzI2MywgNzQyODEsIDY5MjE3LCAxMzE3MSwgMTI3Nzk2LCAwLCAwLCA5MjI5NCwgCisgICAgMCwgMTA0NCwgNDEyNzYsIDAsIDAsIDAsIDQyMDY4LCAxMTc5NSwgMCwgMCwgMCwgMCwgNDI0NTAsIDM5MDcsIDAsIDY0NTI2LCAKKyAgICAxMTgyOSwgNjgxOTcsIDEyMjk1LCAwLCAxMTQ3NSwgMCwgMzAyMCwgMTE1MzcsIDAsIDY2NDQxLCA5ODM0NDYsIDcwOTgsIDAsIAorICAgIDAsIDEwNTcsIDU2NiwgNDI2OTYsIDAsIDMwMTYsIDQyMjc0LCA0MzQ2NCwgNjY0OTAsIDEyOTIxLCA2NjU3MSwgNzg0NzIsIAorICAgIDkyNTEwLCAzMDA2LCA0NjIwLCAxMjcyMzcsIDk4MzU3OCwgMCwgMCwgNjQ2NTksIDAsIDEyNzc0OSwgNTUyNTMsIDYzNTcsIAorICAgIDYzNjIsIDg2MjYsIDcxMzM3LCAyMjE2LCA5MDkwLCA2NTM3NywgNDE1OTYsIDAsIDQyOTIwLCAxNjk4LCAwLCA2NDQ3NywgMCwgCisgICAgNDM4MTMsIDEwNTMsIDAsIDc4MjY5LCAwLCAxMjY1ODYsIDEwNTIsIDEwNTEsIDQ1OSwgMTA2MCwgNzQzNDksIDY2NDc5LCAwLCAKKyAgICAwLCAwLCAwLCA0MjQ5MCwgNjg5LCA2NTA4LCA0MTYzLCA0MjI5OCwgODYzOSwgNjY2NDEsIDQyNDYsIDAsIDAsIDEyMTMwLCAKKyAgICAwLCA0MjMzNywgNjQ1OTYsIDY0Mzc1LCA2NjQ4MSwgMTI3ODUwLCAwLCAwLCA2MzU5LCAwLCA0MzQ3MSwgOTgzNzU5LCAwLCAKKyAgICAwLCAxMjcyNzQsIDAsIDYzNTgsIDYzNjEsIDE5MjYsIDYzNTYsIDkyNjI3LCA3ODk4LCA4MTEwLCAxMDkzNSwgMCwgMTAwNjksIAorICAgIDU4MzAsIDAsIDQzNjg1LCAwLCAwLCAwLCAwLCA4NjkzLCA3ODYxMSwgMTE5NTY1LCA5ODM3OTksIDEyMDQxMywgMCwgCisgICAgMTI3MjU3LCA2NTg5NCwgMCwgMCwgMCwgOTgzOTE0LCAwLCAwLCAxMTkxODcsIDIxMzUsIDc4ODY4LCAwLCAwLCA3ODg2OSwgCisgICAgNDIzMTMsIDU1NzksIDkyNDEyLCAwLCA5ODMwODIsIDk0MDAyLCAwLCA1NTc4LCA0MTc3NCwgMTI4MTE1LCA0MjAyMywgCisgICAgNjIzNCwgNTY2OSwgOTIyNzUsIDAsIDAsIDAsIDEyNzUwNiwgNjgyMDIsIDU1ODMsIDAsIDAsIDQyNDI2LCA1NTgwLCAKKyAgICA0MjI3NiwgMjkyMywgODkyLCAyMjIwLCA0MjQ2NSwgNDEzMzAsIDE5NDk4NywgNTc5NSwgNjU1MTIsIDExOTAwNiwgNjU3MDIsIAorICAgIDAsIDEyMDgwMSwgNjUyNTEsIDAsIDY1NzEwLCAwLCAwLCA2NzY3MiwgMCwgNTM3MCwgMCwgMjkzMSwgMTYzOCwgMTA5NjYsIAorICAgIDEwMTg4LCA2NTg3OCwgMTE4ODQ4LCAwLCA2OTY5NCwgNjk4NzksIDEyODgzMCwgODE3MiwgNDIwMTcsIDAsIDEwODQ0LCAwLCAKKyAgICAxMjgxOTUsIDkyNDI0LCA2Mzc0LCAwLCAwLCAyODYsIDc4MDIzLCAxMDYyLCAwLCAxMTk5OTksIDAsIDczOTUsIDAsIDEwNzAsIAorICAgIDY0OTAwLCA3MTUzLCA2MDk1LCA0MTg2NSwgMCwgMzAxNSwgMTI4MDIzLCAxMjY0NjUsIDUyMTEsIDk4MzA4MywgNjQwMCwgMCwgCisgICAgMTk0OTgzLCA3MDA1NCwgODE4OSwgMTEyNzYsIDAsIDAsIDM3MiwgMTI4ODI5LCAwLCAxMTg4NzQsIDQyMTAyLCA0MTU4NSwgCisgICAgMTI4MjAyLCAwLCA0MjEwMSwgMjc2LCA3ODQwMiwgMCwgMzMsIDc0MjI2LCAxMjczMDMsIDkwMDcsIDExODc5NiwgNDE1ODgsIAorICAgIDY2MDMzLCA0MjcsIDEwNzYzLCAxMTg4MTksIDAsIDEyNzg4NCwgMCwgMTAzMSwgNjI1NywgMCwgNDIxMDQsIDAsIDk4Mzk3MSwgCisgICAgMjMyOCwgOTI0MDksIDEwNzEsIDQyODk5LCAwLCA3NDg0OCwgMCwgOTgzNTgwLCAwLCAxMDQ3LCAwLCAwLCA2NDc5MCwgMCwgCisgICAgNjk3MjMsIDEwNjUxLCAwLCAwLCAwLCAwLCA5MjIwNiwgMTE5MTgxLCA1NzExLCA0MTYzMywgMTIwOTgsIDY1NTcxLCA5MTY2LCAKKyAgICAwLCA1NzEwLCAwLCA2NzkwLCA2NTE2OCwgMTMyMTYsIDAsIDY5NzE2LCA2OTcyNiwgMCwgNjQ2MTEsIDQxNjIzLCAxOTUwMDEsIAorICAgIDU3MTUsIDY5NjU0LCAwLCAwLCA1NzEyLCAyNzYxLCA0MTYyMCwgNjgxMjQsIDMwNzQsIDU3MjIsIDAsIDg2NDMsIDczNzY4LCAKKyAgICAwLCAxMTg5MDYsIDI3NTcsIDExMDY3LCA5NzE4LCA3NDQ5OCwgODkxMCwgMTA2ODksIDY0NzksIDAsIDAsIDAsIDc4NjA3LCAKKyAgICA5MTk2LCA2OTY3MCwgMCwgMCwgMCwgMCwgMTE4OTExLCAwLCAwLCAwLCAwLCAwLCAxMjAwMTAsIDAsIDg3MDEsIDY4MTMwLCAKKyAgICAxMTk2MTYsIDEyMDUyMiwgMCwgNDI0NzcsIDE5NDk5NCwgMTIxMjMsIDQ0OTUsIDQzNTY5LCAwLCAwLCAwLCA2NDk0NiwgCisgICAgMTA5OTIsIDAsIDEyMDAwOSwgMCwgMCwgOTMxOCwgOTM5ODYsIDEzMjQ5LCA2NTY3OSwgNzM4MDgsIDAsIDY1NDU3LCAKKyAgICA0MjI0OSwgNzYzOSwgNDM5OTUsIDY3ODQ1LCA0MjY0MSwgNTQ1NCwgMCwgMCwgMTk0OTk3LCAxMjAwMDUsIDAsIDk4Mzk1NywgCisgICAgNTA4NCwgMCwgMCwgMTE4ODYxLCAwLCA3MzMsIDkxNzg3NiwgNzgwMTQsIDc4NDM2LCA3ODQzNSwgNDE2NzcsIDAsIDkyMTgsIAorICAgIDE3MzEsIDAsIDk4MzczNywgMCwgNjc5OTAsIDAsIDAsIDAsIDEyMDAwMSwgMTI3MDE4LCA5MjQ5MiwgNTE1NSwgMTIwMDAwLCAKKyAgICA1MzU4LCA5ODM3MzUsIDAsIDkxNzc2NywgNjQ0MjQsIDk4MzIyNSwgMzg0MCwgNjQzMTQsIDQxNDMyLCAwLCA3ODMxNSwgCisgICAgNjg0MzAsIDY3OTgwLCA0MzI1MywgNjU5NDMsIDAsIDMzNzEsIDEwOTg4LCAwLCA4NzcxLCAxNDc5LCAwLCAwLCAxMTA5LCAKKyAgICAxMTU4MCwgMCwgNjQ2MDEsIDEyMjA1LCAwLCAwLCA2NDUwNywgODg2OCwgMzk5LCA2Nzk3OCwgNzQ4NDIsIDk4MzI3NiwgCisgICAgOTgzNzEyLCAxMjE0OSwgMTMwODgsIDU1MSwgMCwgMTAxNTYsIDEyMTE5LCA5MjU3MiwgMCwgMjU0NCwgNjUwNzQsIAorICAgIDExOTIxMSwgMCwgMCwgNzgwMTEsIDM1MSwgMTE5MTQ5LCAwLCAwLCA1NTIyOSwgMCwgNzQyNjgsIDAsIDAsIDAsIDQyMzc3LCAKKyAgICAwLCAwLCAwLCA5ODM5MTUsIDAsIDkwMTMsIDQwNTQsIDAsIDk4MzU3MCwgMCwgMCwgNzM5NjAsIDU1ODUsIDY1ODgxLCAKKyAgICAyNTQ5LCA3NDQ2OSwgMCwgMCwgNTU4NCwgODM1OCwgMCwgNjQyMTUsIDkyMjE5LCAxMDkxOSwgMCwgNzk4MCwgMTI2NjAxLCAKKyAgICA5ODM3NzUsIDIyMTgsIDQxODAwLCA1NTg5LCAwLCAyNjY0LCA0MTYxMywgNTU4NiwgMTE4ODkwLCAwLCAxMTM1NiwgMCwgMCwgCisgICAgNDM0NTIsIDc4NjA5LCAwLCA0MjU3MywgNjc4NTYsIDAsIDc4MTI5LCAwLCAwLCA3NDM5MiwgODEzNSwgNjQ1MCwgMTAwNTUsIAorICAgIDc3OTk2LCAwLCAwLCAxMTkyMjUsIDU2NTcsIDAsIDk2MjYsIDAsIDc3OTk0LCAxMDE3OSwgNTY1NCwgMTI5MzksIDkyNTczLCAKKyAgICAxMjA3OTksIDAsIDAsIDU2NTIsIDEwOTQ1LCAwLCA2NjQ4NiwgMCwgMzY2MSwgNzg2MywgMCwgMCwgMCwgNzQ1MDksIAorICAgIDk4Mzg0MywgNTY1OSwgMCwgNzg2OTIsIDY2NzI5LCA1NjU1LCAwLCA0MjE2OCwgMCwgMTA1NSwgOTE3NjI4LCAxMjc3OTIsIAorICAgIDY2MzEwLCA3NDAzMCwgMCwgMTIxNDYsIDczOTU1LCA3Mzk1NiwgMTE2MTgsIDAsIDEyNjk5MCwgMCwgMTAyNzIsIDEwMzA0LCAKKyAgICAxMDM2OCwgNDI1MTgsIDU5NCwgMTAyNDQsIDEwMjQ4LCA3NDA3LCA5ODM4NzgsIDY0ODcwLCAwLCAzNDY3LCA5ODM4ODIsIDAsIAorICAgIDMzMzEsIDk0NiwgMTAyMzEsIDE0OTUsIDgxMzEsIDc0MzMwLCAwLCA5NTYyLCA2OTIyMiwgNjU5MjcsIDAsIDcwMDM2LCAKKyAgICA2OTY5NiwgNjk3NjksIDY0NjU2LCA5ODM3MTcsIDAsIDk0MDIwLCA3MDA1NiwgNTY2NiwgNjUyMjcsIDUzMTgsIDYzOTk0LCAKKyAgICAwLCA5MDkxLCAxMDc5OCwgMCwgMTI4MTY2LCAxMDE4NiwgMCwgNzczMiwgOTgzNzE1LCA2NDU1NiwgMCwgMCwgNTY2OCwgCisgICAgNzQ0NDUsIDAsIDEyODY2MywgNTY3MCwgMTI2NjEwLCAxMjcyOTcsIDExODIwLCAyOTkyLCA3ODI2LCA1NjY3LCAxOTk1MiwgCisgICAgMTIwODA3LCAwLCAxMjc0OSwgNzQ1NTEsIDAsIDAsIDY2NDk2LCA0MzYxLCAxMTkyNjAsIDEzMDYsIDkyODYsIDE0OTcsIAorICAgIDEyODI4NiwgOTQwMDQsIDAsIDAsIDM1NzEsIDEzMjQ3LCAwLCA3OTczLCA2NjM1MywgNjg0MzUsIDc4Mjc4LCA2Nzg5NiwgCisgICAgNDMxOTIsIDAsIDc4MjY1LCA1NTMsIDEyMDY1MywgMCwgMTI4NTU0LCA1ODI5LCAwLCA0NTg3LCA3ODI4NSwgNjU5MTIsIDAsIAorICAgIDEyNzQ2LCAwLCAwLCAxMTk5MjQsIDU2MzMsIDExOTkyNywgOTQxMDEsIDk0MTAyLCA5NDA5OSwgNjQ5MDUsIDk0MTA1LCAKKyAgICA5NTEyLCA5NDEwMywgMTI3NDIsIDY0NDMsIDk4Mzc5NywgMCwgOTEzNSwgMCwgNDE1NjQsIDAsIDU1MjE5LCAxMjg4MzIsIAorICAgIDk4Mzg0MiwgMCwgMTIxNDgsIDAsIDc4Mjk3LCAwLCA2NDI1NiwgMCwgMTE2NjksIDAsIDU2MzQsIDQ1MjQsIDAsIDEyNzI3MCwgCisgICAgMCwgMTE4ODgwLCAyNDI1LCA2NTE4MiwgMTI4NzY5LCA0MzYzNiwgNTIyMSwgNzg0MTAsIDMyOCwgMCwgOTgzODAwLCAKKyAgICA2OTgxNSwgNTYzNiwgMCwgNTMyOSwgMCwgNTYzOCwgMTE5OTE4LCA3OTQwLCA2NDkzOCwgNDMyMjMsIDQzNzYwLCA1NjM1LCAKKyAgICAzMzczLCAyOTg2LCA3ODI5MiwgNzQyMjMsIDM0MzcsIDc4MjkxLCA2MjAzLCA0MjQ3LCAwLCAxMTkyMCwgODI3NCwgMCwgMCwgCisgICAgMTY1NywgNDE1NjEsIDc4Mjk5LCA3ODI5NSwgNTYzOSwgMjk1NCwgNTY2MCwgNTY0MCwgNzgzMDMsIDk4MzY3NiwgNzgzMDAsIAorICAgIDQyMjI3LCAwLCAwLCA0MTYzNywgNjc4NzIsIDAsIDc4MzEwLCA0MTYyNSwgNDMzNjIsIDc4MzA5LCAxMjA3MTMsIDExNzA1LCAKKyAgICA1NjQyLCAwLCA1NDg2LCAwLCA0MzU2LCAxMTcxMCwgMCwgMTIwNTEsIDY5OTM4LCAwLCA1NjQxLCA4MjU5LCAwLCAxMDU4LCAKKyAgICAwLCA2NzYzMCwgMCwgMCwgMTE0NCwgNzg3NTAsIDAsIDQyMjI4LCAwLCA3Mzg5MCwgMTE4OTcyLCAwLCAyODAwLCAwLCAKKyAgICA1NjQ1LCA2NDk2NCwgODY1MiwgMjU0NywgNjY0ODQsIDQzNjM0LCAwLCA1NjA4LCA2NTg5MCwgNDM4MDgsIDAsIDY3NjIxLCAKKyAgICAxMTk5MzQsIDkwMDAsIDAsIDAsIDkyNjczLCAxODY1LCAwLCA1NjEzLCA2OTk1MCwgMCwgMCwgNTYxMCwgMCwgMCwgNjU4MjYsIAorICAgIDIwNjksIDAsIDEwNzg3LCA0Mzk5OSwgMjk5NywgMCwgNTYwOSwgNzgzMTYsIDY1MzE5LCA3ODMxMywgMTIzMTYsIDY1Mzc2LCAKKyAgICAyNDEyLCAwLCA4MTg2LCA5ODA3LCA3NDI2OSwgOTI1NDcsIDEzMTMwLCA2NTg3NCwgMCwgNTgwNywgMCwgMTAwMzAsIDUzMDYsIAorICAgIDEyMzY0LCAxMjgwNjQsIDAsIDExNzA0LCAwLCA5MjU4MywgMTAyMTEsIDAsIDAsIDAsIDAsIDExNzA2LCA5NzEwLCAwLCAwLCAKKyAgICAwLCA0MTMsIDY1NjIzLCA3MTE4LCAwLCA5MTMzLCA3NDI2MiwgMCwgMTA0MiwgMCwgNjQ3NzksIDEyMTcxLCAxMTkyNDAsIAorICAgIDYxODUsIDY0Nzc2LCA0OTg0LCAwLCA3MDgsIDExMzkxLCAwLCAxMjI0MSwgOTI3MjAsIDk4Mzg5MCwgMTMwOCwgMCwgMjUzNCwgCisgICAgODEwLCAwLCAwLCAwLCAwLCAwLCAxOTE3LCAzMDAwLCAwLCAwLCAxMjA3MzksIDIzNjQsIDkyNDQzLCA3NDQ3MCwgNjY2MTgsIAorICAgIDY1NjgwLCAxMjA3NzksIDEwMDI3LCAwLCAxMjgxNTQsIDEyMzM3LCAxMjA3MjIsIDEyNzM2OCwgOTgzMTY3LCAyOTgwLCAKKyAgICA3NTUsIDY5Nzc0LCA5MzEsIDEzMTI0LCA2ODE4MiwgNjM2MywgMjc0OCwgMCwgMCwgNjUwNDEsIDkyMjc2LCA0NDAxMSwgCisgICAgODczMCwgOTgzMDY3LCAxMjc4NTQsIDc4MzEyLCA3Mjc0LCAxMTkyNTAsIDAsIDcyNzUsIDc4MzA0LCA5MzUsIDAsIDY1ODQwLCAKKyAgICAzNzcsIDQyMzI1LCAxMTY0OSwgMTI3MzYzLCA2NTI1MywgNjQzMDEsIDEyODgzNSwgNzgzMDgsIDQyMzQxLCA2NTI4NCwgCisgICAgMjQxNywgMCwgMTI4ODQsIDE5OTEyLCA3OTA3LCAxMDc2OCwgMCwgMTk0OTk4LCAwLCAxMDY3MywgMTE5MjE3LCA3MjQ4LCAwLCAKKyAgICAxMjgzNDYsIDE3ODEsIDU0OTYsIDM2MjcsIDYyLCAxNjQ5LCAwLCA5NjQsIDAsIDEyNzg3NiwgNzgyMjYsIDEyODc3NSwgCisgICAgMTI3NTEyLCAwLCAwLCAwLCAwLCA0MzY4OSwgMTI3OTExLCAxMzE0MiwgNzg4MTIsIDQyNDE1LCA2NjU3NSwgNDU0MiwgCisgICAgNjk5MDksIDQzNTQ3LCAwLCAwLCA3Njc3LCAyOTkxLCA0OTQ2LCA0MjQ1NCwgMTE1NjUsIDc5NDksIDAsIDk4MzkwOSwgCisgICAgMTEzNDEsIDQyNDk0LCAzMDczLCA2NTYyNSwgOTcxNCwgMTE2OTIsIDQ2NTcsIDAsIDkyNzI0LCA2NDc4LCA5ODk4LCAKKyAgICA0MzY3MywgNjUyMzcsIDYyNDEsIDcxMDYsIDQ4NzcsIDk4Mzc4NiwgNjIzOCwgMCwgMTA1NDgsIDEyNzA0OSwgNDQwOSwgMCwgCisgICAgMCwgNjQ3OTgsIDAsIDUzNDYsIDAsIDk0MDQ3LCA2MjM3LCA0ODc0LCAwLCA5MTc2LCAwLCAxMjY1NTMsIDY1MjMxLCAKICAgICA2NTg4NCwgMTI2NzgsIDc4NzQ4LCAxMTg5MTIsIDExMzc4LCA0NDAxOCwgNDI3ODUsIDI0MDgsIDMyNTEsIDAsIDAsIDU2ODUsIAogICAgIDAsIDI0NjEsIDExMDUyLCA3MDkxLCA1MzQyLCA4MzE3LCAwLCA2ODE2MywgNTM0MCwgMCwgMTI3ODIwLCA0MzYzNSwgCi0gICAgNzM5MjgsIDEyNzUyOSwgMCwgMCwgMCwgMTI4NTEwLCA2NTQ4MiwgMCwgOTE0MiwgMCwgMCwgMCwgMTA5MzgsIDAsIAorICAgIDczOTI4LCAxMjc1MjksIDAsIDAsIDAsIDEyODUxMCwgNjU0ODIsIDAsIDkxNDIsIDAsIDEyNjQ3MCwgMCwgMTA5MzgsIDAsIAogICAgIDExODc5MCwgMTE4MiwgMjU0MiwgNDgyNiwgMCwgMCwgMTI4MTc2LCA1MjksIDg1ODAsIDAsIDAsIDEwNTg2LCAxMDc5MCwgCi0gICAgMTA4MzksIDY2MDIzLCA0MTU5MywgNDEyMDcsIDAsIDAsIDQxNTk0LCAyMjUsIDQyODI4LCAwLCAwLCAwLCAxMTM3NiwgCisgICAgMTA4MzksIDY2MDIzLCA0MTU5MywgNDEyMDcsIDAsIDAsIDQxNTk0LCAyMjUsIDQyODI4LCAwLCAwLCA5ODM5MjksIDExMzc2LCAKICAgICA3NDM3OSwgMTA3MjEsIDY3NjY0LCAzNDM4LCA0MjA5NywgMTI3MjY3LCAxMTA4NCwgMzE5NCwgNDE4NzAsIDI2NiwgNzgzMDUsIAotICAgIDAsIDQxODczLCAxMjA1NzUsIDExMzI0LCAxMjA1MzEsIDAsIDg0MjAsIDY0OTE4LCAxMjg4NDQsIDQxODcxLCA0MTMzOCwgCi0gICAgMzczNCwgNzczNCwgNDM2ODMsIDg3NTAsIDY2NjA1LCA2NjAxMSwgMCwgNDA5NjUsIDEyNzkzNywgMCwgNTE2MSwgMTA1NzIsIAotICAgIDAsIDAsIDAsIDY0MzQ5LCA3Mjg3LCA0MjE2MiwgMTI3NTUyLCAwLCAwLCAxMTk0OCwgNjkyMjAsIDEyMzU5LCA0MzQyOSwgCi0gICAgNDEzNjksIDE2OTcsIDEyMTkxLCAwLCA2ODYzMywgNzI4NiwgMCwgNjg2MzUsIDEwMDMxLCAwLCA5ODcwLCA2ODY0NSwgCi0gICAgODYyMCwgNjU4MjQsIDAsIDExOTM4LCAwLCA3Mjg1LCAwLCAxMTk1NzcsIDQyNjc4LCAwLCA0MzY3NywgNDE1ODMsIDAsIAotICAgIDY1Nzk5LCA5MjYyMywgMCwgMCwgMCwgNzgxNjksIDY2MTk5LCAwLCAzNjA5LCA2ODYyNCwgMCwgODMyLCAxMjA2OTMsIAotICAgIDEyMDc3MCwgNzg0NzMsIDY2MDA3LCA3ODQ3MSwgNjU3MDMsIDAsIDAsIDQyNzMyLCA1MTgwLCA5MjY5OSwgNDEzOTUsIAotICAgIDQxNTMwLCAxMTY5MSwgNjQ3NzMsIDkyMjE0LCA3NDAwMiwgMCwgMCwgMTI4NjQ1LCA2MzQ4LCAyNDMsIDEzMjAwLCAwLCAKLSAgICA2MDI0LCA5MjMwOSwgOTk3OSwgMTAwMzcsIDQxNTI5LCAxMDY0OCwgODUzOCwgNDM2ODcsIDAsIDAsIDQyODUsIDY2MTk1LCAKLSAgICAwLCA0MjMwLCAwLCAxMzMwNywgNDMyNTYsIDkyMzUzLCA3NTYzLCA0MjM3NiwgMCwgNjg0NDIsIDEyMDUxMiwgMCwgMCwgCi0gICAgMjE0LCAwLCAwLCA3ODQ2NiwgNjU4OTMsIDEyMjA4LCA5OTczLCAwLCA2NjMxMSwgNjU1ODksIDEyODI3NywgMjYwMywgMCwgCi0gICAgMCwgMCwgMCwgMCwgNjAyMiwgMCwgMjg4NCwgMCwgMTE2MjAsIDAsIDQzLCAwLCA2NjQ1MywgMTAxNiwgNDExMDcsIDAsIAotICAgIDQxMTIxLCAzODg1LCA5MiwgNjU0NTYsIDY0NjA4LCAwLCA3NDgwMSwgMCwgMjA3NCwgMCwgNzgyODMsIDAsIDEyNDUzLCAKLSAgICAxMjgxMjgsIDAsIDc0MjQxLCAwLCA2NzkxLCAxMjQ1NywgNzgyNjgsIDAsIDAsIDAsIDc4Mjc5LCAwLCAwLCA5MjM1OCwgCi0gICAgNjY2MzcsIDc5OTUsIDg3NTksIDQzNDIxLCA3ODI3NywgMTI0NDksIDEyODU1MiwgMCwgMCwgODc1MiwgMzE5NywgNDcyMCwgCi0gICAgMTAxNjUsIDAsIDExOTI0OSwgMCwgMTE1OTUsIDY0ODkzLCAwLCA0MzQzNSwgMCwgMCwgNDk5MywgMCwgNjE2OCwgMTA5MzQsIAotICAgIDE5NDYsIDc0MSwgMCwgNTQ5NCwgNDYzOSwgMCwgMTk5MCwgNjY1ODksIDQ0OTgsIDc4NjY0LCAxMTkxODMsIDAsIDAsIAotICAgIDY5NzM0LCAyOTYwLCA3Mzc3OSwgMCwgODk2OSwgMTI4MTE3LCA0MzQyNCwgMTI3MDU5LCAwLCAyOTUwLCAxMTk1NzksIAotICAgIDYyMTAsIDY1NzUzLCAzNzAsIDAsIDAsIDAsIDQ5NTMsIDAsIDAsIDAsIDAsIDY5MjMwLCAwLCAwLCA2NTY4OCwgMCwgNTA2MywgCi0gICAgMzUxNywgMjk2NCwgNDM2NjMsIDkxNzc2MiwgNjM0NCwgNzQ3OTEsIDEwNTY2LCAxMDE0NCwgNjYzMzMsIDgyNTIsIDcyOSwgCi0gICAgNjYwMTYsIDc4MjUzLCAwLCAwLCA2NDkyMywgMTI4MDQwLCA0MzY2OSwgOTAzMiwgNzgyNjMsIDc4MjY0LCAwLCA0MTIxNSwgCi0gICAgMCwgNjU4ODMsIDAsIDkxNzc3NCwgMTIwNjAyLCAzNzYxLCAwLCAwLCAwLCAwLCAxMjkxMiwgMTE5MDEyLCAzODUwLCAKLSAgICAxMjgxOTEsIDAsIDAsIDAsIDAsIDkwOCwgMCwgODYxMSwgMCwgMCwgMTI3NTU1LCA0MzY5MSwgNDExOTcsIDAsIDg5NzgsIAotICAgIDEyMDU0MCwgMTE5MTM1LCA0MTU4NiwgMTA1MjcsIDAsIDkxNzg0OCwgMzg0OCwgNzg3MzksIDE5NDkzNywgMTI3NTM2LCAKLSAgICA2NTI0MSwgNTMzNiwgMCwgMTI4Nzg2LCA2NjMsIDAsIDEwNzgwLCAwLCAwLCA3ODc2NywgMCwgMTI3MTYzLCA2ODE5MywgCi0gICAgMzQ3LCAwLCAwLCA3ODc3NSwgNjQ2NzUsIDQxNTgyLCA3ODc3NCwgNzg3NDQsIDY1NTc5LCAxMjk4MCwgNzg3NjksIDEyMTQzLCAKKyAgICAxMjAxODMsIDQxODczLCAxMjA1NzUsIDExMzI0LCAxMjA1MzEsIDAsIDg0MjAsIDY0OTE4LCAxMjg4NDQsIDQxODcxLCAKKyAgICA0MTMzOCwgMzczNCwgNzczNCwgNDM2ODMsIDg3NTAsIDY2NjA1LCA2NjAxMSwgOTI1MTQsIDQwOTY1LCAxMjc5MzcsIDAsIAorICAgIDUxNjEsIDEwNTcyLCAwLCAwLCAwLCA2NDM0OSwgNzI4NywgNDIxNjIsIDEyNzU1MiwgMCwgMTI2NjA1LCAxMTk0OCwgCisgICAgNjkyMjAsIDEyMzU5LCA0MzQyOSwgNDEzNjksIDE2OTcsIDEyMTkxLCAwLCA2ODYzMywgNzI4NiwgMCwgNjg2MzUsIDEwMDMxLCAKKyAgICAwLCA5ODcwLCA2ODY0NSwgODYyMCwgNjU4MjQsIDAsIDExOTM4LCAwLCA3Mjg1LCAwLCAxMTk1NzcsIDQyNjc4LCAwLCAKKyAgICA0MzY3NywgNDE1ODMsIDAsIDY1Nzk5LCA5MjYyMywgMCwgMCwgOTgzOTI3LCA3ODE2OSwgNjYxOTksIDAsIDM2MDksIAorICAgIDY4NjI0LCAwLCA4MzIsIDEyMDY5MywgMTIwNzcwLCA3ODQ3MywgNjYwMDcsIDc4NDcxLCA2NTcwMywgMCwgMCwgNDI3MzIsIAorICAgIDUxODAsIDkyNjk5LCA0MTM5NSwgNDE1MzAsIDExNjkxLCA2NDc3MywgOTIyMTQsIDc0MDAyLCAwLCAwLCAxMjg2NDUsIAorICAgIDYzNDgsIDI0MywgMTMyMDAsIDk4MzgwNCwgNjAyNCwgOTIzMDksIDk5NzksIDEwMDM3LCA0MTUyOSwgMTA2NDgsIDg1MzgsIAorICAgIDQzNjg3LCAwLCAwLCA0Mjg1LCA2NjE5NSwgMCwgNDIzMCwgMCwgNzM2NywgNDMyNTYsIDkyMzUzLCA3NTYzLCA0MjM3NiwgMCwgCisgICAgNjg0NDIsIDEyMDUxMiwgMCwgMCwgMjE0LCAwLCAwLCA3ODQ2NiwgNjU4OTMsIDEyMjA4LCA5OTczLCAwLCA2NjMxMSwgCisgICAgNjU1ODksIDEyODI3NywgMjYwMywgMCwgMCwgMCwgNzAwNDcsIDAsIDYwMjIsIDAsIDI4ODQsIDAsIDExNjIwLCAwLCA0MywgCisgICAgMCwgNjY0NTMsIDEwMTYsIDQxMTA3LCAwLCA0MTEyMSwgMzg4NSwgOTIsIDY1NDU2LCA2NDYwOCwgMCwgNzQ4MDEsIDAsIAorICAgIDIwNzQsIDAsIDc4MjgzLCAwLCAxMjQ1MywgMTI4MTI4LCA5ODM4MTcsIDc0MjQxLCAxMjY1NjgsIDY3OTEsIDEyNDU3LCAKKyAgICA3ODI2OCwgMCwgMCwgMCwgNzgyNzksIDAsIDAsIDkyMzU4LCA2NjYzNywgNzk5NSwgODc1OSwgNDM0MjEsIDc4Mjc3LCAKKyAgICAxMjQ0OSwgMTI4NTUyLCAwLCAwLCA4NzUyLCAzMTk3LCA0NzIwLCAxMDE2NSwgMCwgMTE5MjQ5LCAwLCAxMTU5NSwgNjQ4OTMsIAorICAgIDAsIDQzNDM1LCAwLCAwLCA0OTkzLCAwLCA2MTY4LCAxMDkzNCwgMTk0NiwgNzQxLCAwLCA1NDk0LCA0NjM5LCA5ODMxNDcsIAorICAgIDE5OTAsIDY2NTg5LCA0NDk4LCA3ODY2NCwgMTE5MTgzLCAwLCAwLCA2OTczNCwgMjk2MCwgNzM3NzksIDAsIDg5NjksIAorICAgIDEyODExNywgNDM0MjQsIDEyNzA1OSwgMCwgMjk1MCwgMTE5NTc5LCA2MjEwLCA2NTc1MywgMzcwLCAwLCAwLCAwLCA0OTUzLCAKKyAgICA5ODM2NzMsIDAsIDAsIDAsIDY5MjMwLCAwLCAwLCA2NTY4OCwgOTgzMjQwLCA1MDYzLCAzNTE3LCAyOTY0LCA0MzY2MywgCisgICAgOTE3NzYyLCA2MzQ0LCA3NDc5MSwgMTA1NjYsIDEwMTQ0LCA2NjMzMywgODI1MiwgNzI5LCA2NjAxNiwgNzgyNTMsIDAsIAorICAgIDcxMzE3LCA2NDkyMywgMTI4MDQwLCA0MzY2OSwgOTAzMiwgNzgyNjMsIDc4MjY0LCAwLCA0MTIxNSwgMCwgNjU4ODMsIDAsIAorICAgIDkxNzc3NCwgMTIwNjAyLCAzNzYxLCAwLCAwLCA3MDA2OCwgMCwgMTI5MTIsIDExOTAxMiwgMzg1MCwgMTI4MTkxLCAwLCAwLCAKKyAgICAwLCAwLCA5MDgsIDAsIDg2MTEsIDAsIDAsIDEyNzU1NSwgNDM2OTEsIDQxMTk3LCAwLCA4OTc4LCAxMjA1NDAsIDExOTEzNSwgCisgICAgNDE1ODYsIDEwNTI3LCAwLCA5MTc4NDgsIDM4NDgsIDc4NzM5LCAxOTQ5MzcsIDEyNzUzNiwgNjUyNDEsIDUzMzYsIAorICAgIDk4MzI1MSwgMTI4Nzg2LCA2NjMsIDAsIDEwNzgwLCAwLCAwLCA3ODc2NywgOTgzMjQ5LCAxMjcxNjMsIDY4MTkzLCAzNDcsIAorICAgIDAsIDAsIDc4Nzc1LCA2NDY3NSwgNDE1ODIsIDc4Nzc0LCA3ODc0NCwgNjU1NzksIDEyOTgwLCA3ODc2OSwgMTIxNDMsIAogICAgIDY5NjU3LCA3ODUxMiwgMCwgNDM0NDEsIDQxODA0LCA3ODUyMywgMCwgNzg1MjUsIDAsIDEyODg1OSwgNDE1ODQsIDEwNjgxLCAKLSAgICAwLCAwLCA3MzkzOCwgMCwgMTI4MDIyLCA0ODAwLCA2NjY2MSwgMCwgNjYzMDYsIDY0NzE1LCA3ODUzNCwgOTUxOCwgNjYwOSwgCi0gICAgMTA0MzQsIDAsIDExMzE5LCAxMDk3LCAwLCA5MTc4NTAsIDQxNzMwLCAwLCAwLCA3Mzg0NywgNzg3NjEsIDY1MTcyLCAKLSAgICA0MTcyOCwgNDE3MjEsIDAsIDAsIDAsIDQxMjAzLCAwLCAxMzExMCwgNDE3MjYsIDAsIDAsIDEwMDAsIDY5NjUxLCAwLCAKLSAgICA0MTE0MCwgMTIwOSwgNzM5NzgsIDAsIDczNzUwLCAxMDczLCA2MzIxLCA3Nzg3OCwgNDExMzgsIDAsIDY4MjEzLCAwLCAKLSAgICAxMjE2NywgMTExNSwgNDE2MDUsIDk3OTQsIDEyNzA2MiwgNjc2NzEsIDU1MjQ4LCAxMjIzNywgNzg3ODcsIDY2MzE0LCAKLSAgICA2NTg3LCA5MjkwLCA3ODc4MiwgNzg3ODMsIDkyMzEsIDc4NzgxLCAyOTU5LCA3OTI2LCAwLCAwLCAwLCA2NDM5OCwgMCwgCi0gICAgMTE5OTcwLCAxMjMxMSwgMCwgNzg3OTYsIDc4Nzk4LCA3ODc5NCwgNzg3OTUsIDY4NDM0LCA3ODc5MywgNjY2NzAsIDAsIDAsIAotICAgIDEyMjkwLCAxMjAxNjksIDAsIDExOTg3MywgNDIxNDIsIDk5NjgsIDgyMDUsIDAsIDUxMzEsIDAsIDk2MjcsIDc4NTM2LCAKLSAgICA3ODU0MiwgNzg1MzUsIDAsIDE5NDQsIDEyNDgsIDEwMTQ4LCAxMjc3NTUsIDExOTk5MCwgMTE5OTkxLCAxMjcwMSwgNzgzNzYsIAotICAgIDExMzA4LCAxMTk5OTUsIDAsIDExOTk5NywgMTE5OTk4LCA2NTMwNSwgNjUxMDAsIDQwMzEsIDQyNzk0LCAxMjAwMDMsIAotICAgIDcwNzUsIDgxNTQsIDExOTk4NSwgMTIwMDA3LCA0MTgxNywgNzM5MzQsIDQyMjc1LCAxMjAwMTEsIDEyMDAxMiwgNzg1MjYsIAotICAgIDEyMDAxNCwgMTIwMDE1LCA2MDQxLCAwLCA0MTg5OSwgMCwgODAwMiwgMCwgNDM2NCwgMCwgMCwgNjQzMzIsIDAsIDc4MTMsIAotICAgIDkwNjQsIDExOTk4NiwgMTAxMjQsIDc1MjYsIDg2MDEsIDcyODEsIDc4NDU1LCA3Mjc5LCAxMjA0MSwgMTQxOCwgMTA4ODUsIAotICAgIDEyNjczLCAwLCAwLCA5NjYwLCAwLCAxMzAxMiwgNDU3MSwgMCwgMCwgMCwgMTIwNzgsIDI5NzAsIDAsIDEwOTMzLCAwLCAKLSAgICA3Nzg3MCwgMCwgMCwgMCwgNDE1OTksIDAsIDEyODgzMSwgMCwgMTI5NTAsIDkyMTYwLCAzNDg2LCAwLCA3ODMxMSwgNDIzOSwgCi0gICAgMCwgMTI3Nzk5LCA2NjUxMSwgMCwgMjYzNywgNjQ2MjksIDg0NjAsIDEyNzA1MywgODQ3NiwgMCwgMCwgMCwgMCwgNjU2NzMsIAotICAgIDEwMTksIDc4NDk1LCA0MTQ4LCAwLCAxMjI4OSwgMCwgNDMxNiwgMCwgMTMxMTksIDAsIDU0MTIsIDY2MjQzLCA5OTM1LCAwLCAKLSAgICA3Mzg2NCwgMCwgNDE3MzQsIDgyMDYsIDc0MDgxLCA5MTYzLCAzMjg2LCA5MDcyLCA1ODY3LCAxMzMwMiwgNzYyMiwgNzEyMCwgCi0gICAgNDE3MzYsIDkyNTQ2LCA0MTczMSwgMCwgNzQwMCwgNTQxNiwgNjg2NjMsIDExODkyNCwgMTA4MTcsIDAsIDQxNTM5LCAKLSAgICAxMjcyODQsIDAsIDczOTYzLCA0MTg1NSwgNDE4NjcsIDY1NTY0LCAxMTI3NywgNjU4OTIsIDExNTM2LCAxMDYyMCwgOTIyNzIsIAotICAgIDcxMTUsIDY2MDMwLCA3MzkzMiwgNTQ5OCwgNzM5NDIsIDQxNTM2LCAwLCA2ODIwNCwgOTI1ODcsIDM0NTksIDg5OTcsIDAsIAotICAgIDAsIDAsIDAsIDkyNTEyLCAwLCA2NjM3NywgNjk3ODEsIDAsIDAsIDc4NTExLCAzMTYxLCAyOTUsIDEyMDIwNywgMCwgCi0gICAgOTIyMjMsIDEyNzg1NiwgNzg3NDIsIDkwMTYsIDQzNDU0LCA2MzkwMywgNjM5MDIsIDQzNjQxLCAwLCAzOTcxLCAwLCAKLSAgICA3Mzk3MiwgMjk1MiwgNzg3NjUsIDExMDM4LCAxMDkwMSwgNjM5MDAsIDYzODk5LCA2Mzg5OCwgMCwgNjY3LCAxMjMzMiwgCi0gICAgNjM4ODcsIDYwODYsIDQxNzIyLCAwLCA1MTcyLCAwLCAwLCA0MTU5LCAwLCAwLCA5ODE1LCA2Mzg4NCwgMTk5MzQsIDYzODgyLCAKLSAgICA0MTE5OCwgODU1NSwgNjM4NzgsIDYzODc3LCA0MjQ2MCwgNjA1MCwgNDI3MDgsIDYzODgxLCA2Mzg3MiwgMCwgNDI0MjEsIDAsIAotICAgIDQxNzIzLCA2Mzg3NSwgNjM4NzQsIDExNDYwLCA3NDMyLCAxOTEzLCA0MTkxMywgNjM4NTIsIDAsIDAsIDQyMzQ4LCAwLCAKKyAgICAwLCA5ODM2ODYsIDczOTM4LCAwLCAxMjgwMjIsIDQ4MDAsIDY2NjYxLCAwLCA2NjMwNiwgNjQ3MTUsIDc4NTM0LCA5NTE4LCAKKyAgICA2NjA5LCAxMDQzNCwgMCwgMTEzMTksIDEwOTcsIDAsIDkxNzg1MCwgNDE3MzAsIDk4MzIxMiwgMCwgNzM4NDcsIDc4NzYxLCAKKyAgICA2NTE3MiwgNDE3MjgsIDQxNzIxLCAwLCAwLCAwLCA0MTIwMywgOTE3NjEyLCAxMzExMCwgNDE3MjYsIDk4Mzg0NiwgMCwgCisgICAgMTAwMCwgNjk2NTEsIDAsIDQxMTQwLCAxMjA5LCA3Mzk3OCwgMCwgNzM3NTAsIDEwNzMsIDYzMjEsIDc3ODc4LCA0MTEzOCwgCisgICAgMCwgNjgyMTMsIDAsIDEyMTY3LCAxMTE1LCA0MTYwNSwgOTc5NCwgMTI3MDYyLCA2NzY3MSwgNTUyNDgsIDEyMjM3LCAKKyAgICA3ODc4NywgNjYzMTQsIDY1ODcsIDkyOTAsIDc4NzgyLCA3ODc4MywgOTIzMSwgNzg3ODEsIDI5NTksIDc5MjYsIDAsIDAsIDAsIAorICAgIDY0Mzk4LCAwLCAxMTk5NzAsIDEyMzExLCA5ODM3MTgsIDc4Nzk2LCA3ODc5OCwgNzg3OTQsIDc4Nzk1LCA2ODQzNCwgCisgICAgNzg3OTMsIDY2NjcwLCAwLCAwLCAxMjI5MCwgMTIwMTY5LCAwLCAxMTk4NzMsIDQyMTQyLCA5OTY4LCA4MjA1LCAwLCA1MTMxLCAKKyAgICAwLCA5NjI3LCA3ODUzNiwgNzg1NDIsIDc4NTM1LCA5ODMyMTAsIDE5NDQsIDEyNDgsIDEwMTQ4LCAxMjc3NTUsIDExOTk5MCwgCisgICAgMTE5OTkxLCAxMjcwMSwgNzgzNzYsIDExMzA4LCAxMTk5OTUsIDAsIDExOTk5NywgMTE5OTk4LCA2NTMwNSwgNjUxMDAsIAorICAgIDQwMzEsIDQyNzk0LCAxMjAwMDMsIDcwNzUsIDgxNTQsIDExOTk4NSwgMTIwMDA3LCA0MTgxNywgNzM5MzQsIDQyMjc1LCAKKyAgICAxMjAwMTEsIDEyMDAxMiwgNzg1MjYsIDEyMDAxNCwgMTIwMDE1LCA2MDQxLCAwLCA0MTg5OSwgMCwgODAwMiwgMCwgNDM2NCwgCisgICAgMCwgMCwgNjQzMzIsIDAsIDc4MTMsIDkwNjQsIDExOTk4NiwgMTAxMjQsIDc1MjYsIDg2MDEsIDcyODEsIDc4NDU1LCA3Mjc5LCAKKyAgICAxMjA0MSwgMTQxOCwgMTA4ODUsIDEyNjczLCAwLCAwLCA5NjYwLCA5ODMyNzIsIDEzMDEyLCA0NTcxLCAwLCAwLCAxMjAxNjQsIAorICAgIDEyMDc4LCAyOTcwLCAwLCAxMDkzMywgMCwgNzc4NzAsIDAsIDEyNzAxNSwgMCwgNDE1OTksIDAsIDEyODgzMSwgMCwgCisgICAgMTI5NTAsIDkyMTYwLCAzNDg2LCAwLCA3ODMxMSwgNDIzOSwgMCwgMTI3Nzk5LCA2NjUxMSwgMCwgMjYzNywgNjQ2MjksIAorICAgIDg0NjAsIDEyNzA1MywgODQ3NiwgOTgzOTY2LCAwLCAwLCAwLCA2NTY3MywgMTAxOSwgNzg0OTUsIDQxNDgsIDAsIDEyMjg5LCAKKyAgICAwLCA0MzE2LCAwLCAxMzExOSwgODQ4OCwgNTQxMiwgNjYyNDMsIDk5MzUsIDAsIDczODY0LCA5ODMyMDEsIDQxNzM0LCAKKyAgICA4MjA2LCA3NDA4MSwgOTE2MywgMzI4NiwgOTA3MiwgNTg2NywgMTMzMDIsIDc2MjIsIDcxMjAsIDQxNzM2LCA5MjU0NiwgCisgICAgNDE3MzEsIDAsIDc0MDAsIDU0MTYsIDY4NjYzLCAxMTg5MjQsIDEwODE3LCAwLCA0MTUzOSwgMTI3Mjg0LCAwLCA3Mzk2MywgCisgICAgNDE4NTUsIDQxODY3LCA2NTU2NCwgMTEyNzcsIDY1ODkyLCAxMTUzNiwgMTA2MjAsIDkyMjcyLCA3MTE1LCA2NjAzMCwgCisgICAgNzM5MzIsIDU0OTgsIDczOTQyLCA0MTUzNiwgMCwgNjgyMDQsIDkyNTg3LCAzNDU5LCA4OTk3LCAwLCAwLCAwLCAwLCAKKyAgICA5MjUxMiwgMCwgNjYzNzcsIDY5NzgxLCAwLCA5ODM2OTAsIDc4NTExLCAzMTYxLCAyOTUsIDEyMDIwNywgMCwgOTIyMjMsIAorICAgIDEyNzg1NiwgNzg3NDIsIDkwMTYsIDQzNDU0LCA2MzkwMywgNjM5MDIsIDQzNjQxLCAwLCAzOTcxLCAwLCA3MDA2MywgMjk1MiwgCisgICAgNzg3NjUsIDExMDM4LCAxMDkwMSwgNjM5MDAsIDYzODk5LCA2Mzg5OCwgOTQwNDMsIDY2NywgMTIzMzIsIDYzODg3LCA2MDg2LCAKKyAgICA0MTcyMiwgMCwgNTE3MiwgMCwgMCwgNDE1OSwgMCwgMCwgOTgxNSwgNjM4ODQsIDE5OTM0LCA2Mzg4MiwgNDExOTgsIDg1NTUsIAorICAgIDYzODc4LCA2Mzg3NywgNDI0NjAsIDYwNTAsIDQyNzA4LCA2Mzg4MSwgNjM4NzIsIDAsIDQyNDIxLCAwLCA0MTcyMywgCisgICAgNjM4NzUsIDYzODc0LCAxMTQ2MCwgNzQzMiwgMTkxMywgNDE5MTMsIDYzODUyLCAxMjY2MzYsIDAsIDQyMzQ4LCA3Mzg5MiwgCiAgICAgNjc1MiwgNDQ2LCA0MTkxMSwgMTI3OTA2LCA2Mzg1MSwgNjM4NTAsIDQxOTEwLCAwLCA2Mzg0NiwgMjk3MiwgMTI5MzIsIAogICAgIDcyNjIsIDAsIDYzODQ5LCA2Mzg0OCwgNjM4NDcsIDEyODA3MCwgNjU3MCwgODMwMiwgNzI1OSwgNjM4NDIsIDQxNzgsIAogICAgIDEwNzQ2LCA3MjUwLCAxMzIxNCwgMTAwNDEsIDgxMDUsIDYzODkyLCAwLCAxMTg5ODMsIDExMDUsIDQxODAsIDAsIDEyMDk0LCAKICAgICA5NDk3LCAwLCA2Mzg5MSwgNjM4OTAsIDYzODg5LCA2Mzg4OCwgNTUzOCwgOTk4NywgMCwgMTE4OTMyLCAxNjc4LCAxMzI3NCwgCiAgICAgNTUyLCAxMjA2NTQsIDQ0MDEwLCAxMDc4NSwgMCwgMTE5MTcwLCA0NTU3LCA3NDQ1OSwgOTE1OSwgMTAxNzEsIDEzMTI1LCAKICAgICA2Mzg2MCwgNTU0MCwgNjM4NTgsIDYzODY1LCAyODEsIDEzMjQyLCA2Mzg2MiwgNzQxNTQsIDAsIDU1MzYsIDY1NTY4LCAKLSAgICA2Mzg1NywgMTM4OCwgNzQxNjksIDAsIDEwNzcsIDAsIDY1MDk5LCAxMTUzMSwgNTgzNCwgMCwgMCwgMCwgMCwgNDI3NzMsIDAsIAotICAgIDAsIDAsIDExOTIyMCwgMCwgMzY2MywgMCwgMTExMiwgMTE5MTIyLCA4Njg2LCAwLCA1MzM0LCA2NTA4MSwgNDMyNDksIAotICAgIDc0Nzc4LCAxMjc5NjgsIDExMDc3LCAwLCA2NTA5LCAwLCA1MzI3LCAwLCAxOTkwNywgNjM4NjksIDM0NzgsIDc1ODMsIAotICAgIDc2NzksIDI5MDMsIDAsIDMwMDEsIDExNTgsIDg3NDUsIDAsIDczNzQ4LCA2Mzg2NiwgMCwgMTkxNSwgNDg0NiwgMCwgCi0gICAgNjYzNzEsIDExODk4NCwgNDIxMDUsIDI5OTAsIDEyMDEyOCwgODA1LCA2OTIzOCwgNjQ0MzgsIDEyMDcwLCA4NzYwLCAxMTE3LCAKLSAgICAxMTg5ODcsIDEyMjEyLCAxMjAxMjMsIDY1MTc0LCA0MjM1NywgNjM4MzUsIDYzODM0LCAwLCA3ODI0MCwgMTIyMjUsIAotICAgIDYzODM4LCA2MzgzNywgMCwgMCwgNjM4MzMsIDYwNDIsIDY2MzYwLCA4MDgzLCAwLCAwLCA2MzgyMSwgNjM4MjAsIDYzODE5LCAKLSAgICA2MzgxOCwgMCwgNTIyNywgOTA0NywgNjM4MjIsIDEyNzE2MiwgNjA5MSwgMCwgMTA2OTEsIDU2MCwgNTY0MywgODIyNiwgCi0gICAgMTE5NTc4LCA2MzgxMiwgNjM4MTEsIDYzODEwLCA2MzgwOSwgNTU0MiwgNjM4MTUsIDYzODE0LCA2MzgxMywgNjA0NywgCi0gICAgMTU5NywgMTIwMTQzLCA3ODAsIDIwNiwgNzc5MjUsIDQ5MzYsIDY1MTQ3LCA4MTY4LCA2MzkzMCwgMjA3NiwgMTA5MywgCi0gICAgOTg4MiwgNjM5MzQsIDIwODIsIDYzOTMyLCAxMjgxNTAsIDYzOTI5LCAzNTQ2LCAxNjA1LCA3NzkzNCwgOTgwNiwgNDM0NzIsIAotICAgIDc3OTMzLCA4NDAwLCAxMTM0MywgMjA4NiwgMCwgNjM5MjYsIDI5ODQsIDU5NjgsIDkyODcsIDAsIDQ2MTgsIDQyMjA5LCAKLSAgICA0MzQzMSwgMTMxNjksIDUyOTAsIDIwODksIDE2OTUsIDEwNzQzLCAxMDg4LCA2MzgyNSwgNzI2OCwgMTA4NCwgMTA4NSwgCi0gICAgNjM4MjksIDEwODMsIDEwMTMxLCA3MjgzLCAwLCA2Mzk3MCwgMTI4MzU4LCAxMDkyLCA0NzU0LCA3MjczLCA1MjUyLCAKLSAgICA0NDAxNiwgNDM2MjcsIDEyNzkyMSwgMCwgNzQwOCwgMTE4MDksIDAsIDAsIDAsIDI5NjUsIDcyNTgsIDg4MDgsIDAsIDEwODksIAotICAgIDQxODcsIDYzOTM3LCA0MjExOSwgNDIxMjAsIDAsIDk0MCwgNTc4NywgMTAwOTksIDYzOTM4LCAwLCA3NDQ5NCwgMTI0NjMsIAotICAgIDI5OTQsIDAsIDExODgyNywgMCwgOTY2NCwgNzc5MzksIDc3OTQwLCA2Nzg5MiwgNzc5MzgsIDc0MzQzLCAwLCAwLCA2NjAsIAotICAgIDEwMTI3LCA2NjYsIDkwMjIsIDU1MzIsIDQzNjY3LCA1NTMzLCA3Nzk0MSwgNzg1MDcsIDYxMTgsIDIyMiwgOTc5LCAzODg0LCAKLSAgICAwLCA3NDE1MSwgOTI2NTIsIDY1MDIsIDAsIDEyNzExOCwgMTI4Njk1LCA2Mzk1MSwgMTI0NjUsIDAsIDAsIDEyODc4MiwgCi0gICAgNjM5NDYsIDE3MDcsIDYzOTI0LCAxMjQ2MSwgNjM5NTAsIDYzODk3LCA2Mzk0OCwgNjM5NDcsIDYzOTQ1LCA2MDM4LCAKLSAgICA2Mzk0MywgNjM5NDIsIDY0Njg1LCA2Mzg5NSwgNjU4MzgsIDAsIDc3NzYsIDAsIDAsIDEyNzc3MywgMTIwNDQ0LCA2OTczMCwgCi0gICAgODAxLCA0MzE2NSwgMTY5MCwgNjM5MTksIDYzOTE4LCA2MzkxNywgMTMyNzcsIDQzNjU5LCAxMjk1MSwgMTIwNjM4LCA5OTA2LCAKLSAgICAyMDU0LCAyMzM0LCA3ODUxNSwgNjM5MTYsIDU0ODMsIDYzOTE0LCA2OTczNywgNjM5MTEsIDU0ODQsIDYzOTA5LCA2MzkwOCwgCi0gICAgMjUzOSwgMCwgNDM5ODAsIDU0ODUsIDAsIDQyNjk3LCA5MDYxLCA1NTM0LCAxMDY3MiwgNDUwMiwgMCwgMjUzLCAwLCAKLSAgICA2ODIwOCwgMCwgOTIwMywgNzQyMzEsIDAsIDExNTMwLCA5MjU0MiwgNjg2NjgsIDAsIDEyODgxNiwgMCwgMTA0NzQsIAotICAgIDQzNDI2LCAxMzI1NywgNDIzNTQsIDAsIDAsIDAsIDE5NTA2NSwgMCwgODQxMywgMCwgMCwgNTY5MywgNzI3MiwgMCwgCi0gICAgMTMyMDksIDY0NDcwLCA2NTgzMSwgNzg0NjAsIDE5NTA2MywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTI4MTMzLCAxMjc3NjcsIAotICAgIDY2NjA4LCAzMTExLCA0MTg2MywgODgwNCwgNDI5MTMsIDkyMTg3LCA3MjcwLCAwLCA2NjYwNiwgNjYyOCwgMTA3NiwgNzQzMywgCi0gICAgMTQzNiwgNzM4NDQsIDU1MjI2LCAxMjgzNTMsIDYzOTgyLCA3MzkzLCAxMjgwNywgNDM0MTMsIDYzOTA2LCAxNTk4LCAKLSAgICA2MzkwNCwgMCwgMCwgNDE3MjksIDQ0MjMsIDEzMDcsIDAsIDEwNTE1LCA0MTU4OSwgMTI4Njk4LCAwLCA2MjE4LCAwLCAKLSAgICAxNDMwLCAwLCAwLCAxMjA2MDYsIDc4NzU0LCA1NDEzLCA3NjE5LCAzMjU1LCAzNDkzLCA3NDAzMiwgMTE1NDksIDEwNzM1LCAKLSAgICA0MTc0MywgNzM5MzcsIDY4MDEsIDAsIDQ1MTgsIDEwOTkwLCA2NTA3MywgNTE2NywgNDQ4MSwgMzc3MSwgMCwgMjcxMCwgMCwgCi0gICAgNjkyNDMsIDQxNzI0LCAwLCA0MzA3MywgNDE2OTAsIDEyNDc5LCAwLCAwLCAwLCAwLCAxMTk2NTksIDE2MjgsIDEyNzE0OSwgCi0gICAgMCwgMCwgNjUyNjIsIDYzMzMsIDEwNzgzLCA0MjMxNSwgMCwgNjM4NTUsIDEyMDY4MywgMCwgMCwgNTMzOSwgNzQzMjMsIDAsIAotICAgIDEzMDA0LCAwLCA0NDU3LCAwLCAwLCAwLCAwLCA1Njg0LCA4Njc4LCAxMDkxNCwgMCwgNTY4OSwgNjU4MDcsIDAsIDY4NDY0LCAKLSAgICAxMjYzMywgMTI4NzAsIDY5NzA1LCA2NTE4MywgNTY4OCwgMTE5MjYsIDYwMzMsIDYzMTAsIDU2ODYsIDAsIDc0MjUxLCAwLCAKLSAgICAxMjA2NDcsIDAsIDUwLCAxMDU1OCwgOTg3MSwgMCwgNDM2NTUsIDAsIDAsIDAsIDY2NDY4LCAwLCAxMzI1OSwgNDQ0OCwgMCwgCi0gICAgMCwgMCwgMCwgNjc4NTMsIDAsIDEwNjQwLCAxMTUzOSwgMTE1MSwgMCwgOTE3NjA3LCAxMjc1NDQsIDEyNzA3OSwgMTk1MDUwLCAKLSAgICAxMjc4NTIsIDAsIDAsIDAsIDEyNTAxLCA2NDYwNCwgMCwgMTE1MjcsIDExODg3MCwgODgxMiwgMCwgMTE1MzgsIDg2NzMsIAotICAgIDEyNjUwLCAxMTAyMCwgMCwgNjY0NjcsIDIxMDUsIDgwODcsIDc4MTYzLCA2OTYzMiwgOTg5NCwgMCwgMCwgMCwgNDYzNiwgCi0gICAgNTUyNjIsIDc4NTEzLCA0NTE1LCAyMzgyLCAwLCAxMjcwNTUsIDAsIDEyMDQ5NSwgMCwgMTI4Mjg0LCAxMjI3NywgMTk0NjI3LCAKLSAgICAxMTk5NSwgOTI1NTMsIDAsIDEyMTU4LCAwLCA4NzQxLCAxMDE5NywgMCwgOTI0MjYsIDAsIDY1MzEsIDAsIDEyNzg0NiwgCi0gICAgNDczLCA0MzQxNSwgMCwgMCwgMTg3MywgMTA4NywgMCwgMCwgMCwgNzg1MjcsIDY2NDM5LCA0MzIxOCwgMCwgMTk0NzE2LCAKLSAgICA3MjM3LCAxMjUwNCwgNzQyODIsIDAsIDAsIDAsIDk0ODksIDAsIDAsIDQzODQsIDc0MjIwLCAxOTUwNTUsIDIwNTgsIAotICAgIDEyODg2MywgMTMyOTUsIDQzMTkxLCAxMjgwMzAsIDAsIDExNTQsIDM4NTcsIDEyMDUsIDAsIDAsIDEzMTAwLCAxMjk1OCwgCi0gICAgMTIwNzA2LCA3NDE2OCwgMCwgMCwgNDQyMSwgMTA1OTIsIDAsIDQ5NSwgMCwgNDE3MTIsIDc5ODMsIDAsIDEyMDc3OSwgMCwgCi0gICAgNjM0NywgMCwgNzY1NCwgNDE3MTAsIDQxOTYsIDAsIDQzNywgNDE3MDksIDczNzcyLCAwLCAwLCA5NDY1LCAxMzI5MCwgCi0gICAgMTE5MTgwLCA0OTk3LCA2NDMwNiwgMCwgMCwgNDk5OSwgMTk0NjQyLCAwLCAwLCA0NzExLCAxMjA3NjksIDAsIDI3MzksIDAsIAotICAgIDgwNDQsIDc0ODM0LCAxOTQ2NDMsIDQxNzg5LCAxMjgxNDIsIDEwODA5LCAwLCAwLCAwLCAxNzc5LCA2NjAwLCA2NjAxLCAKLSAgICA0MTU0MywgNTMyNSwgNjQyLCA2NDE4NywgMTMwNTgsIDEyMDQ0OSwgMTI4NzUsIDAsIDkyMTg2LCAxMzIyOSwgMCwgMTA1NzUsIAotICAgIDQzMzk5LCAwLCAwLCA0MTc5MSwgMTEwNCwgMCwgMCwgMTA2NTUsIDAsIDAsIDAsIDAsIDEwODIsIDE5NTA0OSwgODQyOCwgCi0gICAgNjU2OSwgMCwgMCwgMCwgMCwgNjc4MywgMCwgMTI5OTMsIDgwNDksIDQxNTQ4LCA0NDAyMSwgNjQ1OCwgMCwgMTI4ODgyLCAKLSAgICA0NzYxLCA2MzgyOCwgNDc2NiwgNjQ2MjMsIDEyNzMsIDQzNDA3LCAwLCAxMTg4NzYsIDE5NTA0NSwgNjkxMiwgMTMxMywgCi0gICAgNjMyMiwgMTA0ODMsIDAsIDQxNTQ1LCAwLCA5MjQ0OSwgMCwgMCwgMCwgMCwgNzg2MjQsIDM0ODQsIDc0MzM3LCAwLCAwLCAKLSAgICA4NTAzLCA1MTIyLCA0MTUyNywgMCwgNjYzMjAsIDAsIDAsIDAsIDAsIDQxNTM3LCA2OTY4MywgODMwMywgODI4MiwgMTE4MTcsIAotICAgIDczODU3LCAxMDAwMywgNzM4NTksIDY1OTA0LCAxOTQ2NjMsIDE2ODYsIDAsIDc4NDA2LCAxMTQ2NywgMzY2NCwgNjU5MjEsIAotICAgIDY0Mjk5LCAxOTQ2NjQsIDAsIDAsIDQzMjQsIDEyNiwgNDIyNDYsIDExOTE1MiwgMCwgNzQzNzgsIDY1OTI2LCA3NzQ0LCAKLSAgICAxOTQ2MzYsIDc0Mjc3LCA3NDMwMiwgNzgwNTIsIDQzODE3LCA2OTY2LCA0MzgyMiwgODEzNiwgMCwgNjU2MDAsIDE2MzMsIDAsIAotICAgIDAsIDQ3NjIsIDExMDMsIDAsIDAsIDQ3NjUsIDAsIDEzMDc4LCAwLCA0NzYwLCA2MzgyNywgMjA1MCwgMTA4NzEsIDQzMTk5LCAKLSAgICAxMTAyLCAwLCA0MjIzNiwgMTI4ODY3LCAxOTQ2NjcsIDExNTQ2LCA3NDc5NCwgMzM3LCAwLCA0MjU5MSwgODYyNywgMTIyNzksIAotICAgIDExMTEsIDAsIDkyMTYxLCA0NzA3LCA2ODIwNiwgMTAxNDMsIDc4ODMsIDEyNzA4MSwgNzg4MCwgNDUyMiwgODY0NSwgNTcwNCwgCi0gICAgMTMwMTAsIDAsIDgzMDQsIDkxNzU2MSwgMCwgMTE5NTc1LCAwLCAwLCA2NjY1NCwgMCwgOTI2NzYsIDAsIDEzMDA4LCAwLCAKLSAgICA0Mzg1LCAwLCAxMzAxMSwgMCwgOTI1NjksIDExOTE2MSwgMTMwMDksIDE2MCwgMjY3NywgMCwgMCwgNDE3OTMsIDY1NzYzLCAKLSAgICA3NDIyMSwgMTIwMTQxLCA0MTc5MiwgNDI3NzAsIDAsIDY1NzYyLCAxMTg4MjksIDQzODIxLCA1NzA5LCAwLCAxMjcxNzcsIAotICAgIDQzODE2LCAwLCAwLCAxMDc5LCAzODY3LCA1NzA4LCAwLCAwLCA0Mzc5NywgNTcwNiwgNjQ3NjgsIDU3MDUsIDg3OTEsIAotICAgIDQwMDUsIDAsIDEwMjM3LCAxMDk5MSwgMCwgNDM0NTksIDkxNzMsIDkxNzU4MSwgOTE3NTgwLCAxMzE3MCwgMTI1NDAsIAotICAgIDkxNzU3NywgNDI2MDUsIDEyMDc2NSwgOTE3NTcwLCA2ODY0NywgOTE3NTcyLCAxMDA1OCwgMCwgNzQ4NjcsIDE5NDY1NCwgCi0gICAgMTI3MDc4LCAzMzM5LCAxMTQ0OCwgMTEwNiwgOTE3NTkxLCA5MTc1OTAsIDkxNzU5MywgMzM0MCwgOTE3NTg3LCA5MTc1ODYsIAotICAgIDkxNzU4OSwgOTE3NTg4LCAxMjA1NDEsIDEwNjA1LCAxMzA5LCA2Mzk2NiwgMTIwNzQzLCAxNzU0LCA5MjIyNiwgMTMyNDYsIAotICAgIDg2NCwgMCwgMTE4OTI2LCA4OTcyLCAwLCA3ODQ5LCAxMjAwOTIsIDkyNTMzLCAxMzI0MCwgMTk1MDY4LCA1MTkyLCA0MzM4LCAKLSAgICAwLCAxMDk0OCwgOTE3NjAxLCAxMzE5OSwgOTI1NzUsIDEyMzYsIDEzMjA4LCAxMzI2MSwgMTMxODksIDEzMTg4LCAxMjAxNjQsIAotICAgIDAsIDc0NDAsIDAsIDEyMDE1MywgOTU1MywgMTU5MCwgNjM3NzcsIDYzNzc2LCAxMzE3OCwgNjM3ODIsIDYzNzgxLCA2Mzc4MCwgCi0gICAgNjM3NzksIDE1ODMsIDAsIDEzMjYwLCA0NTUwLCAwLCA2NDIwNSwgMCwgMCwgNDE1MjIsIDAsIDkyMTY4LCAwLCA5MTc4NTgsIAotICAgIDExMzU0LCAwLCAwLCA0Mjc5NSwgMCwgMTE5MTk1LCAxMTM5NCwgMTk0NjQ2LCAxMzIzNiwgMTMyNzIsIDEzMTk0LCAxMzM0LCAKLSAgICAwLCA0NDc5LCAxMTc4LCA2NTU4NiwgMTIwNjYzLCA2NjY4MSwgMTE5MTkzLCA0NjAxLCAwLCAwLCAwLCAwLCAwLCAxOTQ2NTgsIAotICAgIDAsIDY4MDksIDYzNzg2LCA2MDMxLCAwLCA2Mzc5MSwgNjM3OTAsIDExNDUsIDYzNzg4LCA3OTEwLCA2Mzc4NSwgNDMxNTMsIAotICAgIDc1NCwgMTAxOTIsIDEzMTA1LCA4MTgzLCAxMjA3NDEsIDIwMzcsIDAsIDAsIDEwNzQ3LCAxMjUsIDAsIDY0ODkwLCAwLCAwLCAKLSAgICAwLCA0MTcxOSwgNjM3NTgsIDM1MjMsIDEwNzQsIDEzMjU4LCA5NTM2LCA3NDA3NywgMCwgNDQyNywgNzQyNDIsIDYzNzU3LCAKLSAgICA0MzE0NSwgMTIyMTcsIDYzNzU0LCA0MTUzMiwgMTM0OSwgNjM3NTAsIDYzNzQ5LCAwLCAwLCAwLCA2Mzc1MywgNjM4MDIsIAotICAgIDQxMDg0LCAxMjA2MjIsIDY4MTMzLCA0MTkzMCwgNjM4MDUsIDYzODA0LCA0MzYzMiwgNjM4MDEsIDQxMDgyLCA4MTQwLCAKLSAgICA2Mzc5OCwgNjI2MCwgMCwgMCwgMTE5MjI1LCA2Mzc5MywgMTE5ODgsIDM4OTgsIDEyODI0MSwgMTAyMDEsIDEyMjM4LCAKLSAgICA2Mzc5NSwgNDIxOTQsIDEwMzY3LCAxMjUyMSwgMTA0MzEsIDQyMTE0LCA0MTkzMiwgMTA2OCwgMCwgMTI1MjMsIDEyOTQ1LCAKLSAgICAwLCA0MjIwMywgNzk1MCwgMTA4MDQsIDYzNzcxLCA0Mjc4NywgNDM4NiwgMTIyMjQsIDY5NzMsIDI3OTMsIDEyNDc1LCAwLCAKLSAgICAwLCA2Mzc2OSwgOTUzMCwgMCwgMTIyMzIsIDEzMTM1LCA4NTk2LCA1NjgxLCA2Mzc2MiwgNDU5NSwgNjM3NjAsIDc5MiwgMCwgCi0gICAgNjQ4MDMsIDAsIDg3NDIsIDAsIDExMDUzLCAxMjg3OTYsIDYzNzQ0LCAxMjgxMDcsIDAsIDc1ODgsIDYzNzQ4LCAxNjkzLCAKLSAgICA2Mzc0NiwgNDMyMDQsIDUwNTUsIDY4NDI2LCA5MTc4NTMsIDEwOTAsIDEyMDY3OSwgMTI4MzU2LCAxMTY2NSwgNzQxMzMsIAotICAgIDQ1NTgsIDY1Njg1LCA5NTIzLCAwLCAwLCA3ODY4MSwgMTE1MTMsIDAsIDYxNTcsIDYzNzc1LCA2Mzc3NCwgNjM3NzMsIAotICAgIDEzMTkxLCAxMjE3MCwgMzUwMCwgMzEzOSwgMCwgMzE3MCwgMTI0ODUsIDAsIDEwODcyLCA3ODI3MSwgMTMwMDYsIDY0NDMzLCAKLSAgICAwLCAwLCA5NDEsIDAsIDAsIDAsIDY1NTQxLCAxMTA2MywgMCwgODIyOCwgMCwgNDIwNjUsIDAsIDAsIDAsIDAsIDkyNDU1LCAKLSAgICA3Mzg2LCAwLCA2NDQ0NCwgMCwgMTE5ODYzLCA0MzYwMywgMCwgNjUzOTcsIDI4OCwgMCwgMCwgMCwgMTAwMjUsIDkxNzkxNiwgCi0gICAgMjkxOCwgMCwgNjUzMDAsIDExOTg3MSwgOTg4MywgNjQ3MjYsIDI3OTAsIDY1Mzk1LCAzNzkzLCAwLCAxMjc4MjksIDY1MzkzLCAKLSAgICAwLCA3NDEzOCwgMCwgMCwgMCwgNzQxMzksIDkyNzEyLCA2NTM5NCwgMTE1NDgsIDUyNzAsIDAsIDY1Mzk2LCAwLCA2NTgxMywgCi0gICAgMTMyNTYsIDEyODIsIDEyMDc3MSwgMCwgMCwgMTA4ODgsIDAsIDY1MjQyLCAwLCAzMzMwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA3NDI1OSwgMzMwNCwgNDI3NTMsIDAsIDAsIDAsIDE2MjcsIDAsIDAsIDAsIDUzNzEsIDEzMTE2LCAwLCAxODI2LCAxMTg3OTQsIAotICAgIDAsIDQzMDk0LCAwLCA0MzY1MCwgMCwgMCwgOTAzNSwgMCwgMCwgMTI4MDA1LCAwLCA5MjIwNywgNjgxMjUsIDAsIDE2NCwgMCwgCi0gICAgMCwgMCwgNjk1OCwgMCwgNDMxMTYsIDAsIDAsIDEzMjQ1LCAwLCAwLCAxMjczNzYsIDAsIDczODkzLCAxMjc3NTYsIDEyNjY2LCAKLSAgICAxMzE3NSwgMTMyMDcsIDEyMDQxNCwgNjYwMTQsIDEyMDQyOCwgNzQ0NywgNTkyOSwgMCwgNjU1MDksIDAsIDc0NDksIAotICAgIDExMzA2LCAwLCA3MzkyMCwgMzE4MCwgMCwgNjM4MDgsIDkwNTQsIDk3MSwgMTMwNjIsIDAsIDAsIDY1MTk1LCAxMDE2NCwgCi0gICAgOTIyNTIsIDc0NDI4LCAwLCA3ODE0NiwgOTI2MTEsIDAsIDAsIDAsIDEwMDQ1LCAxMjg4MiwgMTMyNzUsIDEyODE2MSwgCi0gICAgMTEwNTcsIDAsIDEzMjc2LCAwLCA0MTUyNSwgNzgxNTAsIDcyNzEsIDExNDQ0LCAwLCAwLCAwLCAxMjIyOSwgNDE1MjMsIDAsIAotICAgIDQzNDExLCA3Mzc1MSwgMCwgNjQ4MTMsIDAsIDAsIDEwNDc2LCAzODU4LCAwLCAzOTMyLCA2NDk1OCwgMCwgMCwgNzM5ODksIAotICAgIDY4MTkyLCAwLCAwLCAzNjksIDAsIDQxNzg0LCAwLCA2NDE2MywgMCwgMCwgMCwgNjU0NzQsIDQ3OTYsIDEyMjkyLCAwLCAKLSAgICA2NTQ3OSwgMCwgNDE3ODEsIDEwNDg2LCA0MTQ4MCwgNDMwMDIsIDk4OTksIDAsIDAsIDQwNCwgMTI4MjEsIDM3NDEsIDAsIAotICAgIDU3ODgsIDgwOTIsIDY4MjEyLCA0MTIyMiwgMTgzMSwgNjYwMjAsIDM5ODIsIDAsIDQzODgsIDAsIDc0NiwgMTIwNzg0LCAwLCAKLSAgICAwLCAxMjAxOCwgNjUyOTQsIDAsIDAsIDAsIDAsIDQ0MjIsIDQ3MDgsIDM3OTksIDc0MjkyLCAxMTkzNTcsIDAsIDc0NDMwLCAKLSAgICAwLCAxMTcwMCwgNDM3NCwgMCwgMTI4MTc5LCAxMzY0LCAwLCA4MDM4LCAwLCA5MTc1OTcsIDEyODY4LCA2OTgxNCwgMCwgCi0gICAgNjczNSwgNzM5NzksIDEzMTc0LCA3Mzk2OCwgMTMyMjUsIDAsIDY5ODA4LCA2NTgzNSwgMCwgMjM2NSwgNzg0MSwgMCwgCi0gICAgNDI4NTUsIDExODg1NiwgNDI4NjYsIDAsIDAsIDAsIDY2NDM4LCA0MTc4NSwgMTI2MTcsIDY0MTcyLCAxMzE3MywgNDM3MiwgCi0gICAgMTE5MzU0LCAwLCAwLCAwLCAwLCA5MjQwMiwgMTI4MDYyLCAxMjk2NSwgMzg0LCA2NDUxMiwgMTA0MDQsIDEwMzQwLCAKLSAgICAxMTkzNTIsIDE1NTYsIDUyNzQsIDEzMjEwLCAxMjAxMjUsIDEwMDE3LCA5NzMzLCA0MTc4NywgMCwgMTI2OTk0LCA0MTM3MywgCi0gICAgNzgwMzksIDEyMzAzLCAwLCAxMzIzMiwgMTMyMzMsIDM0OSwgNDg2MywgNDEzNzEsIDExNjU2LCAwLCAxMjA3MDMsIAotICAgIDExOTg4MywgMTI4NjEsIDQzOTgsIDg1NDMsIDY1NjE4LCAxMjgwMTgsIDEwOTYsIDAsIDAsIDQyNjg4LCAxMjQ0MSwgCi0gICAgMTIzNTUsIDExOTM0OCwgMTE5MzQ3LCA0MzE4LCAxMDQ1MiwgMCwgODAzMiwgMTMyNDMsIDEzMjM3LCAxMjcxOSwgMCwgCi0gICAgMTE5MTAxLCAwLCA2NDg4NCwgMTE5ODcyLCAxMTkzNDUsIDg1OTcsIDAsIDAsIDk4NjQsIDAsIDEyMDc4NSwgMTE5ODc0LCAwLCAKLSAgICAxMzE5NSwgNDE0NTIsIDY0OTYxLCA3NzIyLCAwLCAxMDQ1OSwgMTE5ODc4LCAwLCAxMTk4NzksIDY2NTkwLCAxMjgxMjMsIAotICAgIDQxNTMzLCA2NjMzNywgMCwgOTIxODQsIDAsIDQ5NjUsIDQzNDQ1LCA5MTc1MzYsIDczODQ5LCAwLCA0MzYzOCwgNzg1MzcsIAotICAgIDEyODI4NywgNjI2MSwgMTE5MzQyLCA0MzE0NywgNjY1NzAsIDE5NTcsIDEwNDIwLCA5ODIsIDI3NTYsIDEzMjkyLCAxMzIwNiwgCi0gICAgMTI4ODI4LCAwLCAyOTI1LCA3MzgwOSwgMTMwNTYsIDEyNzU1OSwgMTMyMTIsIDQzMjM4LCAwLCAxMzE5MCwgMTMxODcsIAotICAgIDkyNTQxLCAxMzE5OCwgMTE4NzkzLCAwLCA1MjQyLCAxMTkxNzksIDY0NDc2LCAxNjk0LCA4MjE2LCAwLCA2NzcwLCA0MzMzMSwgCi0gICAgMCwgNjU2MjAsIDAsIDQzNTQ0LCAwLCAwLCA0MTQ0NCwgNjU2MjEsIDEyMDMyNSwgOTE5NywgNTI0NiwgMTE5MTA2LCAKLSAgICAxMzE4NSwgOTcwOSwgMTIwMzIzLCAxMjAzMjIsIDEyMzE0LCA2NTYxNiwgNTIzOCwgMTE5MzMzLCAwLCAxMTkzMzcsIDUyMzYsIAotICAgIDQwOTc5LCAwLCA3NDIwMSwgODI4NiwgMCwgMzkzNiwgMTE5MzMxLCAxMTY5OSwgNDEzNDcsIDEyNzI0OSwgMTMyMzUsIAotICAgIDg4NDIsIDQxMjQ4LCAwLCA0Mzc5LCAxMzIzOSwgMTI2OTIsIDc5NjksIDEyNzI2NiwgNzIxOSwgMTI3MjUwLCAwLCAKLSAgICAxMjA1MDksIDAsIDY2MjI0LCA3MzQsIDI5NzksIDEyMDMwMywgNjU2MTksIDk4NzIsIDk1NywgNjQ5MjEsIDE4NDYsIAotICAgIDY2NjMxLCA0MTQ3NywgMTE5MjU2LCAxMjAzMTAsIDc0NTExLCA0MTc3MCwgMTY3MCwgNjQ0MiwgMTIwMzE3LCA0MjQ0NiwgCi0gICAgNTM3OSwgMTIwMzE4LCA0MTE2MywgNzQ4MzIsIDEyMDMxNSwgMTIwMzE0LCAxMjgwMjUsIDAsIDQyODQxLCAxMzI2NywgMCwgCi0gICAgMCwgNDE3NzUsIDAsIDcxMzAsIDQxNzczLCAwLCAxMDY2MywgMCwgMCwgMCwgNjE1MSwgMTIxMTAsIDQyNjczLCA2NTU3MiwgCi0gICAgNjUyOTMsIDY1MjUwLCAxMzI2NSwgMTMyNjQsIDY0NTE4LCAwLCA2MTAwLCAwLCA5MjY0NywgNTgwOCwgNjU5MjIsIDAsIAotICAgIDEyOTY3LCA2NjA0MSwgNTYxMiwgNDU4MywgMCwgMCwgNjgwOTcsIDY0NTc1LCAxMjg1MjQsIDExOTY1LCAwLCA2ODM1OCwgMCwgCi0gICAgNjk3ODksIDAsIDkyMjYwLCA2ODEwMiwgOTY5OCwgNzgxNCwgNzQ0NzYsIDExOTY1MSwgMTI4NTE0LCAwLCA0MTkyMSwgCi0gICAgMTE4ODU4LCA5NzU2LCA2OTg1LCAxMTkyNTgsIDc4NDkwLCA3NDIxOSwgMCwgMCwgMTE4OTk3LCA4MDEyLCA1Njc0LCAKLSAgICAxMjM1MywgMCwgMTIzNjEsIDU2NzcsIDU1ODgsIDAsIDQxOTI1LCAxMjgxMjQsIDQxOTIwLCA1NjczLCAxMjA1MzQsIDU2NzYsIAotICAgIDQxOTIzLCAxMjY5NCwgMTE4OTc4LCA1NjcyLCAxMjk0LCAwLCA3ODA1OSwgMCwgNDI1MTEsIDE3MjcsIDEyMDcyNSwgCi0gICAgNDI0MzYsIDAsIDAsIDAsIDc0MjIyLCA4NzE4LCAzNTUwLCA3MzYsIDEwMjY4LCA0NTA1LCAxMDMxNiwgNzQwOTAsIDU4MjYsIAotICAgIDU1MjMyLCA1ODEzLCAwLCAxMjA3MTIsIDU4NDEsIDU4MzcsIDU1MjM0LCAwLCAzMTA1LCAxMjgyOSwgNTgzOCwgNTc5NiwgMCwgCi0gICAgMTE5NTkyLCA1NzkzLCAwLCA1ODY2LCA1Nzk3LCA0MTAxMSwgNTg2NSwgMTIwMDkxLCA3OTU2LCA1OTgsIDAsIDY0NjQ5LCAKLSAgICA1ODA2LCA0MjM5OCwgMCwgOTAzNywgNTY3MSwgMTIwMDQxLCAwLCAwLCAwLCAxMjg4NTUsIDAsIDg0NywgMTI4MjQyLCAKLSAgICA5NTI5LCAwLCA2NjY1NywgNjk4MCwgMCwgMTIwMDM1LCA3ODQ4NCwgMCwgMCwgMTIwMDMzLCA3ODQ4NiwgMCwgMCwgCi0gICAgMTIwMDM5LCA0MjY4MywgMCwgMCwgNzExNCwgMCwgMCwgNDMxOTAsIDY1NDYzLCAxNTU0LCAwLCA0MjYxMSwgNDI1NjMsIDAsIAotICAgIDU2NTEsIDI5MjksIDY3OTIsIDQzMjAxLCAwLCAxOTk2MywgNTY5OCwgMCwgMCwgMCwgMCwgNTY0NCwgMTAyOTIsIDY1NTQ2LCAKLSAgICA2OTcyNywgNjgxNDEsIDgzNzIsIDAsIDY1MTE2LCAwLCAxMjAwMjIsIDEwMTc1LCAxMDM4OCwgNDI3OTksIDAsIDQxMDEzLCAKLSAgICAxMDU2OCwgMCwgMCwgMjg2OSwgMCwgNDEwMTUsIDE5NDY5MiwgMjc4NSwgNDM2NiwgMCwgMTA5NTQsIDQxODAyLCAwLCAKKyAgICA2Mzg1NywgMTM4OCwgNzQxNjksIDAsIDEwNzcsIDk4MzU3NywgNjUwOTksIDExNTMxLCA1ODM0LCAwLCAwLCAwLCAwLCAKKyAgICA0Mjc3MywgMCwgMCwgMCwgMTE5MjIwLCAwLCAzNjYzLCAwLCAxMTEyLCAxMTkxMjIsIDg2ODYsIDAsIDUzMzQsIDY1MDgxLCAKKyAgICA0MzI0OSwgNzQ3NzgsIDEyNzk2OCwgMTEwNzcsIDAsIDY1MDksIDAsIDUzMjcsIDAsIDE5OTA3LCA2Mzg2OSwgMzQ3OCwgCisgICAgNzU4MywgNzY3OSwgMjkwMywgMCwgMzAwMSwgMTE1OCwgODc0NSwgNDM3NDYsIDczNzQ4LCA2Mzg2NiwgNzg2MjYsIDE5MTUsIAorICAgIDQ4NDYsIDAsIDY2MzcxLCAxMTg5ODQsIDQyMTA1LCAyOTkwLCAxMjAxMjgsIDgwNSwgNjkyMzgsIDY0NDM4LCAxMjA3MCwgCisgICAgODc2MCwgMTExNywgMTE4OTg3LCAxMjIxMiwgMTIwMTIzLCA2NTE3NCwgNDIzNTcsIDYzODM1LCA2MzgzNCwgMCwgNzgyNDAsIAorICAgIDEyMjI1LCA2MzgzOCwgNjM4MzcsIDk4Mzg0NCwgOTgzNzk1LCA2MzgzMywgNjA0MiwgNjYzNjAsIDgwODMsIDAsIDAsIAorICAgIDYzODIxLCA2MzgyMCwgNjM4MTksIDYzODE4LCA5ODM4OTUsIDUyMjcsIDkwNDcsIDYzODIyLCAxMjcxNjIsIDYwOTEsIDAsIAorICAgIDEwNjkxLCA1NjAsIDU2NDMsIDgyMjYsIDExOTU3OCwgNjM4MTIsIDYzODExLCA2MzgxMCwgNjM4MDksIDIyODksIDYzODE1LCAKKyAgICA2MzgxNCwgNjM4MTMsIDYwNDcsIDE1OTcsIDEyMDE0MywgNzgwLCAyMDYsIDc3OTI1LCA0OTM2LCA2NTE0NywgODE2OCwgCisgICAgNjM5MzAsIDIwNzYsIDEwOTMsIDk4ODIsIDYzOTM0LCAyMDgyLCA2MzkzMiwgMTI4MTUwLCA2MzkyOSwgMzU0NiwgMTYwNSwgCisgICAgNzc5MzQsIDk4MDYsIDQzNDcyLCA3NzkzMywgODQwMCwgMTEzNDMsIDIwODYsIDAsIDYzOTI2LCAyOTg0LCA1OTY4LCA5Mjg3LCAKKyAgICAwLCA0NjE4LCA0MjIwOSwgNDM0MzEsIDEzMTY5LCA1MjkwLCAyMDg5LCAxNjk1LCAxMDc0MywgMTA4OCwgNjM4MjUsIDcyNjgsIAorICAgIDEwODQsIDEwODUsIDYzODI5LCAxMDgzLCAxMDEzMSwgNzI4MywgMCwgNjM5NzAsIDEyODM1OCwgMTA5MiwgNDc1NCwgNzI3MywgCisgICAgNTI1MiwgNDQwMTYsIDQzNjI3LCAxMjc5MjEsIDAsIDc0MDgsIDExODA5LCA5MTc2MTgsIDAsIDAsIDI5NjUsIDcyNTgsIAorICAgIDg4MDgsIDAsIDEwODksIDQxODcsIDYzOTM3LCA0MjExOSwgNDIxMjAsIDAsIDk0MCwgNTc4NywgMTAwOTksIDYzOTM4LCAwLCAKKyAgICA3NDQ5NCwgMTI0NjMsIDI5OTQsIDAsIDExODgyNywgMCwgOTY2NCwgNzc5MzksIDc3OTQwLCA2Nzg5MiwgNzc5MzgsIAorICAgIDc0MzQzLCAwLCAwLCA2NjAsIDEwMTI3LCA2NjYsIDkwMjIsIDU1MzIsIDQzNjY3LCA1NTMzLCA3Nzk0MSwgNzg1MDcsIAorICAgIDYxMTgsIDIyMiwgOTc5LCAzODg0LCAwLCA3NDE1MSwgOTI2NTIsIDY1MDIsIDAsIDEyNzExOCwgMTI4Njk1LCA2Mzk1MSwgCisgICAgMTI0NjUsIDAsIDAsIDEyODc4MiwgNjM5NDYsIDE3MDcsIDYzOTI0LCAxMjQ2MSwgNjM5NTAsIDYzODk3LCA2Mzk0OCwgCisgICAgNjM5NDcsIDYzOTQ1LCA2MDM4LCA2Mzk0MywgNjM5NDIsIDY0Njg1LCA2Mzg5NSwgNjU4MzgsIDIyNzYsIDc3NzYsIDk0MDc2LCAKKyAgICAwLCAxMjc3NzMsIDEyMDQ0NCwgNjk3MzAsIDgwMSwgNDMxNjUsIDE2OTAsIDYzOTE5LCA2MzkxOCwgNjM5MTcsIDEzMjc3LCAKKyAgICA0MzY1OSwgMTI5NTEsIDEyMDYzOCwgOTkwNiwgMjA1NCwgMjMzNCwgNzg1MTUsIDYzOTE2LCA1NDgzLCA2MzkxNCwgNjk3MzcsIAorICAgIDYzOTExLCA1NDg0LCA2MzkwOSwgNjM5MDgsIDI1MzksIDAsIDQzOTgwLCA1NDg1LCAwLCA0MjY5NywgOTA2MSwgNTUzNCwgCisgICAgMTA2NzIsIDQ1MDIsIDAsIDI1MywgMCwgNjgyMDgsIDAsIDkyMDMsIDc0MjMxLCAwLCAxMTUzMCwgOTI1NDIsIDY4NjY4LCAwLCAKKyAgICAxMTg5MDcsIDAsIDEwNDc0LCA0MzQyNiwgMTMyNTcsIDQyMzU0LCAxMjgwOTksIDk4MzY4OSwgNzAwNDQsIDE5NTA2NSwgMCwgCisgICAgODQxMywgOTgzODA3LCAwLCA1NjkzLCA3MjcyLCAwLCAxMzIwOSwgNjQ0NzAsIDY1ODMxLCA3NDM1MCwgMTk1MDYzLCAwLCAwLCAKKyAgICAwLCAxMjY2MzksIDAsIDAsIDk0MDc4LCAxMjgxMzMsIDEyNzc2NywgNjY2MDgsIDMxMTEsIDQxODYzLCA4ODA0LCA0MjkxMywgCisgICAgOTIxODcsIDcyNzAsIDAsIDY2NjA2LCA2NjI4LCAxMDc2LCA3NDMzLCAxNDM2LCA3Mzg0NCwgNTUyMjYsIDEyODM1MywgCisgICAgNjM5ODIsIDczOTMsIDEyODA3LCA0MzQxMywgNjM5MDYsIDE1OTgsIDYzOTA0LCAwLCAwLCA0MTcyOSwgNDQyMywgMTMwNywgCisgICAgMCwgMTA1MTUsIDQxNTg5LCAxMjg2OTgsIDAsIDYyMTgsIDAsIDE0MzAsIDAsIDAsIDEyMDYwNiwgNzg3NTQsIDU0MTMsIAorICAgIDc2MTksIDMyNTUsIDM0OTMsIDc0MDMyLCAxMTU0OSwgMTA3MzUsIDQxNzQzLCA3MzkzNywgNjgwMSwgOTgzNjI0LCA0NTE4LCAKKyAgICAxMDk5MCwgNjUwNzMsIDUxNjcsIDQ0ODEsIDM3NzEsIDEyMDE1OCwgMjcxMCwgMCwgNjkyNDMsIDQxNzI0LCAwLCA0MzA3MywgCisgICAgNDE2OTAsIDEyNDc5LCA5ODM2MjYsIDAsIDAsIDk4MzgwOSwgNzAwNDYsIDE2MjgsIDEyNzE0OSwgOTgzNDc5LCA5ODM3MjIsIAorICAgIDY1MjYyLCA2MzMzLCAxMDc4MywgNDIzMTUsIDAsIDYzODU1LCA5NDA1NiwgMCwgMCwgNTMzOSwgNzQzMjMsIDAsIDEzMDA0LCAKKyAgICAwLCA0NDU3LCAwLCAwLCAwLCAwLCA1Njg0LCA4Njc4LCAxMDkxNCwgMCwgNTY4OSwgNjU4MDcsIDAsIDY4NDY0LCAxMjYzMywgCisgICAgMTI4NzAsIDY5NzA1LCA2NTE4MywgNTY4OCwgMTE5MjYsIDYwMzMsIDYzMTAsIDU2ODYsIDAsIDc0MjUxLCAwLCAxMjA2NDcsIAorICAgIDAsIDUwLCAxMDU1OCwgOTg3MSwgNDI2MTIsIDQzNjU1LCAwLCAwLCAwLCA2NjQ2OCwgMCwgMTMyNTksIDQ0NDgsIDAsIAorICAgIDk4MzgzNiwgMCwgNzAwNDMsIDY3ODUzLCAwLCAxMDY0MCwgMTE1MzksIDExNTEsIDAsIDkxNzYwNywgMTI3NTQ0LCAKKyAgICAxMjcwNzksIDE5NTA1MCwgMTI3ODUyLCAwLCAwLCAwLCAxMjUwMSwgNjQ2MDQsIDAsIDExNTI3LCAxMTg4NzAsIDg4MTIsIDAsIAorICAgIDExNTM4LCA4NjczLCAxMjY1MCwgMTEwMjAsIDAsIDY2NDY3LCAyMTA1LCA4MDg3LCA3ODE2MywgNjk2MzIsIDk4OTQsIDAsIAorICAgIDAsIDAsIDQ2MzYsIDU1MjYyLCA3ODUxMywgNDUxNSwgMjM4MiwgMCwgMTI3MDU1LCAwLCAxMjA0OTUsIDAsIDEyODI4NCwgCisgICAgMTIyNzcsIDE5NDYyNywgMTE5OTUsIDkyNTUzLCAwLCAxMjE1OCwgMCwgODc0MSwgMTAxOTcsIDAsIDkyNDI2LCAwLCA2NTMxLCAKKyAgICAwLCAxMjc4NDYsIDQ3MywgNDM0MTUsIDAsIDk4MzY0MSwgMTg3MywgMTA4NywgMCwgMCwgMCwgNzg1MjcsIDY2NDM5LCAKKyAgICA0MzIxOCwgOTgzMTIzLCAxOTQ3MTYsIDcyMzcsIDEyNTA0LCA3NDI4MiwgMCwgOTgzNTcxLCAwLCA5NDg5LCAwLCAwLCAKKyAgICA0Mzg0LCA3NDIyMCwgNjM4NDUsIDIwNTgsIDEyODg2MywgMTMyOTUsIDQzMTkxLCAxMjgwMzAsIDAsIDExNTQsIDM4NTcsIAorICAgIDEyMDUsIDAsIDAsIDEzMTAwLCAxMjk1OCwgMTIwNzA2LCA3NDE2OCwgMCwgMCwgNDQyMSwgMTA1OTIsIDAsIDQ5NSwgCisgICAgMTE5MDA3LCA0MTcxMiwgNzk4MywgMCwgOTM5OTcsIDAsIDYzNDcsIDEyMDE2NSwgNzY1NCwgNDE3MTAsIDQxOTYsIDAsIAorICAgIDQzNywgNDE3MDksIDczNzcyLCAwLCAwLCA5NDY1LCAxMzI5MCwgMTE5MTgwLCA0OTk3LCA2NDMwNiwgMCwgMCwgNDk5OSwgCisgICAgMTk0NjQyLCAwLCAxMjY1ODIsIDQ3MTEsIDEyMDc2OSwgMCwgMjczOSwgMCwgODA0NCwgNzQ4MzQsIDE5NDY0MywgNDE3ODksIAorICAgIDEyODE0MiwgMTA4MDksIDAsIDAsIDAsIDE3NzksIDY2MDAsIDY2MDEsIDQxNTQzLCA1MzI1LCA2NDIsIDY0MTg3LCAxMzA1OCwgCisgICAgMTIwNDQ5LCAxMjg3NSwgMCwgOTIxODYsIDEzMjI5LCAwLCAxMDU3NSwgNDMzOTksIDAsIDAsIDQxNzkxLCAxMTA0LCAwLCAwLCAKKyAgICAxMDY1NSwgMCwgMCwgMCwgMCwgMTA4MiwgMTk1MDQ5LCA4NDI4LCA2NTY5LCAwLCAwLCAwLCA2OTg0OSwgNjc4MywgMCwgCisgICAgMTI5OTMsIDgwNDksIDQxNTQ4LCA0NDAyMSwgNjQ1OCwgOTgzNzk4LCAxMjg4ODIsIDQ3NjEsIDYzODI4LCA0NzY2LCAKKyAgICA2NDYyMywgMTI3MywgNDM0MDcsIDAsIDExODg3NiwgMTk1MDQ1LCA2OTEyLCAxMzEzLCA2MzIyLCAxMDQ4MywgOTgzNjAzLCAKKyAgICA0MTU0NSwgMCwgOTI0NDksIDAsIDAsIDAsIDAsIDc4NjI0LCAzNDg0LCA3NDMzNywgMCwgMCwgODUwMywgNTEyMiwgNDE1MjcsIAorICAgIDAsIDY2MzIwLCA5ODM4MDIsIDAsIDAsIDAsIDQxNTM3LCA2OTY4MywgODMwMywgODI4MiwgMTE4MTcsIDczODU3LCAxMDAwMywgCisgICAgNzM4NTksIDY1OTA0LCA3MzYzLCAxNjg2LCAwLCA3ODQwNiwgMTE0NjcsIDM2NjQsIDY1OTIxLCA2NDI5OSwgMTk0NjY0LCAwLCAKKyAgICAwLCA0MzI0LCAxMjYsIDQyMjQ2LCAxMTkxNTIsIDAsIDc0Mzc4LCA2NTkyNiwgNzc0NCwgMTk0NjM2LCA3NDI3NywgNzQzMDIsIAorICAgIDc4MDUyLCA0MzgxNywgNjk2NiwgNDM4MjIsIDgxMzYsIDAsIDY1NjAwLCAxNjMzLCAwLCAwLCA0NzYyLCAxMTAzLCAwLCAwLCAKKyAgICA0NzY1LCA5ODM0ODQsIDEzMDc4LCAwLCA0NzYwLCA2MzgyNywgMjA1MCwgMTA4NzEsIDQzMTk5LCAxMTAyLCAwLCA0MjIzNiwgCisgICAgMTI4ODY3LCAxOTQ2NjcsIDExNTQ2LCA3NDc5NCwgMzM3LCAwLCA0MjU5MSwgODYyNywgMTIyNzksIDExMTEsIDAsIDkyMTYxLCAKKyAgICA0NzA3LCA2ODIwNiwgMTAxNDMsIDc4ODMsIDEyNzA4MSwgNzg4MCwgNDUyMiwgODY0NSwgNTcwNCwgMTMwMTAsIDAsIDgzMDQsIAorICAgIDkxNzU2MSwgMCwgMTE5NTc1LCAyMjkzLCAwLCA2NjY1NCwgMCwgOTI2NzYsIDAsIDEzMDA4LCAwLCA0Mzg1LCAwLCAxMzAxMSwgCisgICAgMCwgOTI1NjksIDExOTE2MSwgMTMwMDksIDE2MCwgMjY3NywgMCwgMCwgNDE3OTMsIDY1NzYzLCA3NDIyMSwgMTIwMTQxLCAKKyAgICA0MTc5MiwgNDI3NzAsIDk0MDU0LCA2NTc2MiwgMTE4ODI5LCA0MzgyMSwgNTcwOSwgMCwgOTQwNTMsIDQzODE2LCAwLCAwLCAKKyAgICAxMDc5LCAzODY3LCA1NzA4LCAwLCAwLCA0Mzc5NywgNTcwNiwgNjQ3NjgsIDU3MDUsIDg3OTEsIDQwMDUsIDAsIDEwMjM3LCAKKyAgICAxMDk5MSwgMTI4ODE2LCA0MzQ1OSwgOTE3MywgOTE3NTgxLCA5MTc1ODAsIDEzMTcwLCAxMjU0MCwgOTE3NTc3LCA0MjYwNSwgCisgICAgMTIwNzY1LCAxMjY2MTcsIDY4NjQ3LCA5MTc1NzIsIDEwMDU4LCAwLCA3NDg2NywgMTk0NjU0LCAxMjcwNzgsIDMzMzksIAorICAgIDExNDQ4LCAxMTA2LCA5MTc1OTEsIDkxNzU5MCwgOTE3NTkzLCAzMzQwLCA5MTc1ODcsIDkxNzU4NiwgOTE3NTg5LCAKKyAgICA5MTc1ODgsIDEyMDU0MSwgMTA2MDUsIDEzMDksIDYzOTY2LCAxMjA3NDMsIDE3NTQsIDkyMjI2LCAxMzI0NiwgODY0LCAwLCAKKyAgICAxMTg5MjYsIDg5NzIsIDAsIDc4NDksIDEyMDA5MiwgOTI1MzMsIDEzMjQwLCAxOTUwNjgsIDUxOTIsIDQzMzgsIDY3OTgyLCAKKyAgICAxMDk0OCwgOTE3NjAxLCAxMzE5OSwgOTI1NzUsIDEyMzYsIDEzMjA4LCAxMzI2MSwgMTMxODksIDEzMTg4LCA5Mzk5MywgMCwgCisgICAgNzQ0MCwgMCwgMTIwMTUzLCA5NTUzLCAxNTkwLCA2Mzc3NywgNjM3NzYsIDEzMTc4LCA2Mzc4MiwgNjM3ODEsIDYzNzgwLCAKKyAgICA2Mzc3OSwgMTU4MywgMCwgMTMyNjAsIDQ1NTAsIDAsIDY0MjA1LCAwLCAwLCA0MTUyMiwgOTgzOTA2LCA5MjE2OCwgCisgICAgOTgzNzYzLCA5MTc4NTgsIDExMzU0LCA5NDA3MSwgMCwgNDI3OTUsIDAsIDExOTE5NSwgMTEzOTQsIDE5NDY0NiwgMTMyMzYsIAorICAgIDEzMjcyLCAxMzE5NCwgMTMzNCwgNjk5MjYsIDQ0NzksIDExNzgsIDY1NTg2LCAxMjA2NjMsIDY2NjgxLCAxMTkxOTMsIAorICAgIDQ2MDEsIDAsIDAsIDk4Mzc1NiwgMCwgMCwgMTk0NjU4LCAwLCA2ODA5LCA2Mzc4NiwgNjAzMSwgMCwgNjM3OTEsIDYzNzkwLCAKKyAgICAxMTQ1LCA2Mzc4OCwgNzkxMCwgNjM3ODUsIDQzMTUzLCA3NTQsIDEwMTkyLCAxMzEwNSwgODE4MywgMTIwNzQxLCAyMDM3LCAKKyAgICAwLCAwLCAxMDc0NywgMTI1LCAwLCA2NDg5MCwgMCwgOTgzMTMxLCAwLCA0MTcxOSwgNjM3NTgsIDM1MjMsIDEwNzQsIAorICAgIDEzMjU4LCA5NTM2LCA3NDA3NywgMCwgNDQyNywgNzQyNDIsIDYzNzU3LCA0MzE0NSwgMTIyMTcsIDYzNzU0LCA0MTUzMiwgCisgICAgMTM0OSwgNjM3NTAsIDYzNzQ5LCAwLCAwLCAwLCA2Mzc1MywgNjM4MDIsIDQxMDg0LCAxMjA2MjIsIDY4MTMzLCA0MTkzMCwgCisgICAgNjM4MDUsIDYzODA0LCA0MzYzMiwgNjM4MDEsIDQxMDgyLCA4MTQwLCA2Mzc5OCwgNjI2MCwgMCwgMCwgOTQwNzQsIDYzNzkzLCAKKyAgICAxMTk4OCwgMzg5OCwgMTI4MjQxLCAxMDIwMSwgMTIyMzgsIDYzNzk1LCA0MjE5NCwgMTAzNjcsIDEyNTIxLCAxMDQzMSwgCisgICAgNDIxMTQsIDQxOTMyLCAxMDY4LCAwLCAxMjUyMywgMTI5NDUsIDk4MzMyMSwgNDIyMDMsIDc5NTAsIDEwODA0LCA2Mzc3MSwgCisgICAgNDI3ODcsIDQzODYsIDEyMjI0LCA2OTczLCAyNzkzLCAxMjQ3NSwgMCwgMCwgNjM3NjksIDk1MzAsIDk4MzExOSwgMTIyMzIsIAorICAgIDEzMTM1LCA4NTk2LCA1NjgxLCA2Mzc2MiwgNDU5NSwgNjM3NjAsIDc5MiwgMCwgNjQ4MDMsIDAsIDg3NDIsIDAsIDExMDUzLCAKKyAgICAxMjg3OTYsIDYzNzQ0LCAxMjgxMDcsIDAsIDc1ODgsIDYzNzQ4LCAxNjkzLCA2Mzc0NiwgNDMyMDQsIDUwNTUsIDY4NDI2LCAKKyAgICA5MTc4NTMsIDEwOTAsIDEyMDY3OSwgMTI4MzU2LCAxMTY2NSwgNzQxMzMsIDQ1NTgsIDY1Njg1LCA5NTIzLCAwLCAwLCAKKyAgICA3ODY4MSwgMTE1MTMsIDAsIDYxNTcsIDYzNzc1LCA2Mzc3NCwgNjM3NzMsIDEzMTkxLCAxMjE3MCwgMzUwMCwgMzEzOSwgMCwgCisgICAgMzE3MCwgMTI0ODUsIDAsIDEwODcyLCA3ODI3MSwgMTMwMDYsIDY0NDMzLCAwLCAwLCA5NDEsIDAsIDAsIDAsIDY1NTQxLCAKKyAgICAxMTA2MywgMCwgODIyOCwgMCwgNDIwNjUsIDAsIDAsIDk0MDM5LCAwLCA5MjQ1NSwgNzM4NiwgMCwgNjQ0NDQsIDAsIAorICAgIDExOTg2MywgNDM2MDMsIDk0MDc1LCA2NTM5NywgMjg4LCAwLCAwLCAwLCAxMDAyNSwgNjk5MTUsIDI5MTgsIDAsIDY1MzAwLCAKKyAgICAxMTk4NzEsIDk4ODMsIDY0NzI2LCAyNzkwLCA2NTM5NSwgMzc5MywgMCwgMTI3ODI5LCA2NTM5MywgMCwgNzQxMzgsIDAsIDAsIAorICAgIDAsIDc0MTM5LCA5MjcxMiwgNjUzOTQsIDExNTQ4LCA1MjcwLCAwLCA2NTM5NiwgMCwgNjU4MTMsIDEzMjU2LCAxMjgyLCAKKyAgICAxMjA3NzEsIDAsIDAsIDEwODg4LCA5ODM2MDQsIDY1MjQyLCAwLCAzMzMwLCAwLCAwLCA5ODM5NjUsIDAsIDAsIDc0MjU5LCAKKyAgICAzMzA0LCA0Mjc1MywgMCwgMCwgMCwgMTYyNywgMCwgMCwgMCwgNTM3MSwgMTMxMTYsIDAsIDE4MjYsIDExODc5NCwgMCwgCisgICAgNDMwOTQsIDcwMDIzLCA0MzY1MCwgOTQwMzcsIDAsIDkwMzUsIDAsIDAsIDEyODAwNSwgMCwgOTIyMDcsIDY4MTI1LCAwLCAKKyAgICAxNjQsIDAsIDk0MDY3LCA5NDAwMCwgNjk1OCwgMCwgNDMxMTYsIDAsIDcwMDE5LCAxMzI0NSwgMCwgMCwgMTI3Mzc2LCAwLCAKKyAgICA3MDAzMSwgMTI3NzU2LCAxMjY2NiwgMTMxNzUsIDEzMjA3LCAxMjA0MTQsIDY2MDE0LCAxMjA0MjgsIDc0NDcsIDU5MjksIDAsIAorICAgIDY1NTA5LCAwLCA3NDQ5LCAxMTMwNiwgMCwgNzM5MjAsIDMxODAsIDAsIDYzODA4LCA5MDU0LCA5NzEsIDEzMDYyLCAwLCAwLCAKKyAgICA2NTE5NSwgMTAxNjQsIDkyMjUyLCA3NDQyOCwgMCwgNzgxNDYsIDkyNjExLCAwLCAwLCAwLCAxMDA0NSwgMTI4ODIsIAorICAgIDEzMjc1LCAxMjgxNjEsIDExMDU3LCAwLCAxMzI3NiwgMCwgNDE1MjUsIDc4MTUwLCA3MjcxLCAxMTQ0NCwgMCwgMCwgMCwgCisgICAgMTIyMjksIDQxNTIzLCAwLCA0MzQxMSwgNzM3NTEsIDAsIDY0ODEzLCAwLCAwLCAxMDQ3NiwgMzg1OCwgMCwgMzkzMiwgCisgICAgNjQ5NTgsIDAsIDAsIDczOTg5LCA2ODE5MiwgMCwgNjk4NDcsIDM2OSwgMCwgNDE3ODQsIDAsIDY0MTYzLCAwLCAwLCAwLCAKKyAgICA2NTQ3NCwgNDc5NiwgMTIyOTIsIDEyNjU5NSwgNjU0NzksIDAsIDQxNzgxLCAxMDQ4NiwgNDE0ODAsIDQzMDAyLCA5ODk5LCAKKyAgICAwLCAwLCA0MDQsIDEyODIxLCAzNzQxLCAwLCA1Nzg4LCA4MDkyLCA2ODIxMiwgNDEyMjIsIDE4MzEsIDY2MDIwLCAzOTgyLCAKKyAgICAwLCA0Mzg4LCAwLCA3NDYsIDEyMDc4NCwgMCwgMCwgMTIwMTgsIDY1Mjk0LCAwLCAwLCAwLCAwLCA0NDIyLCA0NzA4LCAKKyAgICAzNzk5LCA3NDI5MiwgMTE5MzU3LCAwLCA3NDQzMCwgMCwgMTE3MDAsIDQzNzQsIDAsIDEyODE3OSwgMTM2NCwgMCwgODAzOCwgCisgICAgMCwgOTE3NTk3LCAxMjg2OCwgNjk4MTQsIDAsIDY3MzUsIDczOTc5LCAxMzE3NCwgNzM5NjgsIDEzMjI1LCAwLCA2OTgwOCwgCisgICAgNjU4MzUsIDAsIDIzNjUsIDc4NDEsIDAsIDQyODU1LCAxMTg4NTYsIDQyODY2LCAwLCAwLCAwLCA2NjQzOCwgNDE3ODUsIAorICAgIDEyNjE3LCA2NDE3MiwgMTMxNzMsIDQzNzIsIDExOTM1NCwgMCwgOTgzNTY4LCAwLCAwLCA5MjQwMiwgMTI4MDYyLCAxMjk2NSwgCisgICAgMzg0LCA2NDUxMiwgMTA0MDQsIDEwMzQwLCAxMTkzNTIsIDE1NTYsIDUyNzQsIDEzMjEwLCAxMjAxMjUsIDEwMDE3LCA5NzMzLCAKKyAgICA0MTc4NywgOTgzMjM3LCAxMjY5OTQsIDQxMzczLCA3ODAzOSwgMTIzMDMsIDAsIDEzMjMyLCAxMzIzMywgMzQ5LCA0ODYzLCAKKyAgICA0MTM3MSwgMTE2NTYsIDAsIDEyMDcwMywgMTE5ODgzLCAxMjg2MSwgNDM5OCwgODU0MywgNjU2MTgsIDEyODAxOCwgMTA5NiwgCisgICAgMCwgMCwgNDI2ODgsIDEyNDQxLCAxMjM1NSwgMTE5MzQ4LCAxMTkzNDcsIDQzMTgsIDEwNDUyLCAwLCA4MDMyLCAxMzI0MywgCisgICAgMTMyMzcsIDEyNzE5LCAxMjY2NDYsIDExOTEwMSwgMCwgNjQ4ODQsIDExOTg3MiwgMTE5MzQ1LCA4NTk3LCAwLCAwLCA5ODY0LCAKKyAgICAwLCAxMjA3ODUsIDExOTg3NCwgOTQxMDcsIDEzMTk1LCA0MTQ1MiwgNjQ5NjEsIDc3MjIsIDAsIDEwNDU5LCAxMTk4NzgsIDAsIAorICAgIDExOTg3OSwgNjY1OTAsIDEyODEyMywgNDE1MzMsIDY2MzM3LCAwLCA5MjE4NCwgMCwgNDk2NSwgNDM0NDUsIDkxNzUzNiwgCisgICAgNzM4NDksIDAsIDQzNjM4LCA3ODUzNywgMTI4Mjg3LCA2MjYxLCAxMTkzNDIsIDQzMTQ3LCA2NjU3MCwgMTk1NywgMTA0MjAsIAorICAgIDk4MiwgMjc1NiwgMTMyOTIsIDEzMjA2LCAxMjg4MjgsIDAsIDI5MjUsIDczODA5LCAxMzA1NiwgMTI3NTU5LCAxMzIxMiwgCisgICAgNDMyMzgsIDAsIDEzMTkwLCAxMzE4NywgOTI1NDEsIDEzMTk4LCAxMTg3OTMsIDAsIDUyNDIsIDExOTE3OSwgNjQ0NzYsIAorICAgIDE2OTQsIDgyMTYsIDcxMzY5LCA2NzcwLCA0MzMzMSwgMCwgNjU2MjAsIDk4MzcxOSwgNDM1NDQsIDEyNjQ2NiwgMCwgCisgICAgNDE0NDQsIDY1NjIxLCA2OTk1NSwgOTE5NywgNTI0NiwgMTE5MTA2LCAxMzE4NSwgOTcwOSwgMTIwMzIzLCAxMjAzMjIsIAorICAgIDEyMzE0LCA2NTYxNiwgNTIzOCwgMTE5MzMzLCAwLCAxMTkzMzcsIDUyMzYsIDQwOTc5LCAwLCA3NDIwMSwgODI4NiwgCisgICAgMTI4NTM3LCAzOTM2LCAxMTkzMzEsIDExNjk5LCA0MTM0NywgMTI3MjQ5LCAxMzIzNSwgODg0MiwgNDEyNDgsIDAsIDQzNzksIAorICAgIDEzMjM5LCAxMjY5MiwgNzk2OSwgMTI3MjY2LCA3MjE5LCAxMjcyNTAsIDEyODI1MSwgMTIwNTA5LCAwLCA2NjIyNCwgNzM0LCAKKyAgICAyOTc5LCAxMjAzMDMsIDY1NjE5LCA5ODcyLCA5NTcsIDY0OTIxLCAxODQ2LCA2NjYzMSwgNDE0NzcsIDExOTI1NiwgCisgICAgMTIwMzEwLCA3NDUxMSwgNDE3NzAsIDE2NzAsIDY0NDIsIDEyMDMxNywgNDI0NDYsIDUzNzksIDEyMDMxOCwgNDExNjMsIAorICAgIDc0ODMyLCAxMjAzMTUsIDEyMDMxNCwgMTE1MDYsIDAsIDQyODQxLCAxMzI2NywgMCwgMCwgNDE3NzUsIDAsIDcxMzAsIAorICAgIDQxNzczLCAwLCAxMDY2MywgMCwgMCwgMCwgNjE1MSwgMTIxMTAsIDQyNjczLCA2NTU3MiwgNjUyOTMsIDY1MjUwLCAxMzI2NSwgCisgICAgMTMyNjQsIDY0NTE4LCAwLCA2MTAwLCAwLCA5MjY0NywgNTgwOCwgNjU5MjIsIDAsIDEyOTY3LCA2NjA0MSwgNTYxMiwgCisgICAgNDU4MywgMCwgMCwgNjgwOTcsIDY0NTc1LCAxMjY2MzcsIDExOTY1LCAwLCA2ODM1OCwgMCwgNjk3ODksIDAsIDkyMjYwLCAKKyAgICA2ODEwMiwgOTY5OCwgNzgxNCwgNzQ0NzYsIDExOTY1MSwgMTI4NTE0LCAwLCA0MTkyMSwgMTE4ODU4LCA5NzU2LCA2OTg1LCAKKyAgICAxMTkyNTgsIDc4NDkwLCA3NDIxOSwgMCwgMCwgMTE4OTk3LCA4MDEyLCA1Njc0LCAxMjM1MywgMCwgMTIzNjEsIDU2NzcsIAorICAgIDU1ODgsIDAsIDQxOTI1LCAxMjgxMjQsIDQxOTIwLCA1NjczLCAxMjA1MzQsIDU2NzYsIDQxOTIzLCAxMjY5NCwgMTE4OTc4LCAKKyAgICA1NjcyLCAxMjk0LCAwLCA3ODA1OSwgMCwgNDI1MTEsIDE3MjcsIDEyMDcyNSwgNDI0MzYsIDAsIDAsIDAsIDc0MjIyLCAKKyAgICA4NzE4LCAzNTUwLCA3MzYsIDEwMjY4LCA0NTA1LCAxMDMxNiwgNzQwOTAsIDU4MjYsIDU1MjMyLCA1ODEzLCAwLCAxMjA3MTIsIAorICAgIDU4NDEsIDU4MzcsIDU1MjM0LCAwLCAzMTA1LCAxMjgyOSwgNTgzOCwgNTc5NiwgMCwgMTE5NTkyLCA1NzkzLCAwLCA1ODY2LCAKKyAgICA1Nzk3LCA0MTAxMSwgNTg2NSwgMTIwMDkxLCA3OTU2LCA1OTgsIDAsIDY0NjQ5LCA1ODA2LCA0MjM5OCwgMCwgOTAzNywgCisgICAgNTY3MSwgMTIwMDQxLCAwLCAwLCAwLCAxMjg4NTUsIDAsIDg0NywgMTI4MjQyLCA5NTI5LCAwLCA2NjY1NywgNjk4MCwgCisgICAgNzg0ODMsIDEyMDAzNSwgNzg0ODQsIDk4MzQ4MywgMCwgMTIwMDMzLCA3ODQ4NiwgMCwgMCwgMTIwMDM5LCA0MjY4MywgMCwgCisgICAgOTgzMDU1LCA3MTE0LCAwLCAwLCA0MzE5MCwgNjU0NjMsIDE1NTQsIDAsIDQyNjExLCA0MjU2MywgMCwgNTY1MSwgMjkyOSwgCisgICAgNjc5MiwgNDMyMDEsIDAsIDE5OTYzLCA1Njk4LCAwLCAwLCAwLCAwLCA1NjQ0LCAxMDI5MiwgNjU1NDYsIDY5NzI3LCAKKyAgICA2ODE0MSwgODM3MiwgMCwgNjUxMTYsIDAsIDEyMDAyMiwgMTAxNzUsIDEwMzg4LCA0Mjc5OSwgOTQxMDAsIDQxMDEzLCAKKyAgICAxMDU2OCwgMCwgOTgzNjE4LCAyODY5LCAwLCA0MTAxNSwgMTk0NjkyLCAyNzg1LCA0MzY2LCAwLCAxMDk1NCwgNDE4MDIsIDAsIAogICAgIDQyNjA4LCA3ODQ2OSwgOTg4NCwgNDc1OSwgMCwgMCwgMTAyNjYsIDQxMzU5LCAxMTcwLCA0MzM2NSwgNjk4MTAsIDczOTA4LCAKICAgICAxNjA5LCA5MDIsIDAsIDYzOTM2LCAxMjg4NzUsIDExNjYxLCA4MTIyLCA1ODE4LCAwLCAwLCAzODYxLCA5NTQwLCAxMTAyOCwgCi0gICAgMjU1NCwgNTE1OCwgNTcxNCwgMTI3MDE1LCAwLCAwLCA4MDcsIDQzMDc5LCAwLCA3ODQ3NSwgOTc2LCA1NTExLCA2NDU1MywgCi0gICAgMCwgNDIxNTUsIDAsIDQxMzU2LCA3NDExMCwgMTE4ODAxLCAwLCAwLCA4Njc2LCAwLCAwLCAxMTA2NiwgNDUxLCA2Mzk0MSwgCi0gICAgNTc5OCwgOTM0OSwgNDIwMTgsIDEyNzg1OCwgMCwgMCwgNDM2MDksIDU5MDYsIDEyMDU1MywgMTQ0MCwgMCwgMTI4ODUzLCAKLSAgICAxMjAwMTYsIDc0MjgzLCAxMTAwNSwgMCwgNjY2NTYsIDY2MDQ0LCAwLCAxOTQ2OTgsIDAsIDAsIDQzMzkzLCAxMDA5NCwgMCwgCi0gICAgMTE1MjksIDEwODU3LCAxMjA2NDMsIDY2NDM2LCA2NTQ2LCA5MywgODEwMiwgMCwgNjg0MDUsIDAsIDAsIDgxNzEsIDAsIAotICAgIDExOTA5NywgMTI3MDY0LCA5MTc1NDMsIDM4MywgNzE1NCwgNDE2NTYsIDkyNjM0LCAwLCAwLCA1MTg3LCAwLCAxMjcyNzcsIAotICAgIDExMjg2LCA2ODYyMCwgNjQyMTcsIDAsIDUyMzIsIDAsIDQxMDA5LCAwLCA0MTAwNSwgMCwgMCwgMCwgODI5MiwgMTk1MDc0LCAKLSAgICA0OTgwLCA4ODYwLCA3Mzk0NywgMTAwMjgsIDY1MjkxLCA3MDc2LCAxMzE4MiwgMTk0NzA1LCAwLCAwLCAxMDYzMSwgNjYwMzEsIAotICAgIDc5NzIsIDAsIDc4Nzg1LCAwLCA3OTAwLCAwLCAxMTMwOSwgNzgzMTksIDQxOTgsIDQyNzI1LCAwLCA2NzY1NiwgOTk5NSwgMCwgCi0gICAgOTI1NTIsIDAsIDEyOTMxLCAwLCA0MjY4NCwgNzQyODUsIDIwODgsIDAsIDY0MzY2LCA2NTE1NiwgODgxNCwgNDIyMzgsIAotICAgIDc0NzcxLCAwLCAwLCAxMjgzNiwgMCwgMCwgNzQzNDIsIDg1OTMsIDAsIDAsIDY4NDQ1LCAxMzI1NSwgMCwgMCwgNzQ2NCwgMCwgCi0gICAgNjU4NjUsIDAsIDE5NDY1MCwgMTI3MTQ0LCAwLCA5MzQyLCAxMjA0NjQsIDAsIDY0NTE2LCAwLCA3ODc5MiwgMTAxMjksIAotICAgIDQxMDA3LCA3NDM3NSwgMCwgNDA5OTUsIDEyMjA5LCA0MTAxMiwgMTE5MTM2LCAwLCAwLCA2OTcyNCwgNDA5OTIsIDkyMjY0LCAKLSAgICAxMjcxNTMsIDY4NjUzLCA0MzU1OCwgNTUyMiwgMCwgNjEsIDAsIDc0MTA1LCAzNjMzLCAwLCA2NTE2MiwgNDEyMzQsIAotICAgIDEyMDg5LCA3ODI4MSwgOTc3MSwgMCwgMTMyNTEsIDEyODcwMSwgMCwgNjI2MiwgMjc4NCwgNDI3NDMsIDAsIDgxMjYsIAotICAgIDY2NDgzLCAwLCAwLCA0NDEsIDQyNjIxLCAwLCAwLCA0MTAwMiwgNDA5OTksIDExOTYyMywgNDMyNjYsIDcxMDgsIDE5NDc3OSwgCi0gICAgMTA4OTAsIDc0NDgxLCA2NTgzNCwgODMyNCwgMTE5MTAzLCA2NDQxNywgNzQ4MTcsIDEyNzQ2NSwgNjQ3MzcsIDAsIDAsIAotICAgIDg5MzAsIDY2Njc4LCA3NDI0OSwgMTE5MywgMTAwNTYsIDE4MDAsIDEzMjUzLCAxMzI1MiwgNzgyOSwgMCwgMCwgNzc0MywgMCwgCi0gICAgMCwgNzc5MDQsIDkyNjQwLCA3NzkwNSwgOTAzNCwgNjAzOSwgMCwgMTAwNzUsIDAsIDQxMDE4LCA2NTY4MywgMTAzMzgsIAotICAgIDY2NDY5LCAwLCAwLCAwLCA0MjgxNSwgMCwgNDE5NjYsIDAsIDAsIDAsIDExNzkyLCA0MzA2NCwgNDEwMjUsIDkxMSwgNzUzOSwgCi0gICAgMCwgMCwgMTIwMzM5LCA2NTE1OSwgNjQzOTAsIDAsIDAsIDU1MjAsIDExNjYyLCAwLCA2NTMzMCwgNDI4MTIsIDAsIDAsIAotICAgIDEyMzI2LCAwLCAwLCA0MjgwOCwgMTI4MzM3LCA5MzQ4LCA2NDkwMSwgMCwgMCwgMCwgMCwgMCwgMCwgOTE3NTg0LCA0MzcwMiwgCi0gICAgMCwgNTg1NywgNjUzNDIsIDkyNzI3LCAxMTkxMjAsIDEyMDA3OSwgODY0NCwgMCwgMCwgMCwgNzQyOTYsIDQxOTA5LCAwLCAKLSAgICAxMjAzMzIsIDI3OTEsIDY5NjYzLCAxODkxLCA2OTgyNCwgMCwgNDE5MDcsIDY2NjQ3LCAxMTg5MzksIDg3NjEsIDEyOTQyLCAKLSAgICA1NzQ4LCAwLCAxMDc3MywgMCwgMCwgODc5NiwgNzgxNDksIDY0MTIsIDIwNjEsIDg1MjAsIDEzMTQ2LCAxMjcxODUsIAotICAgIDYzOTMxLCAwLCA2NTkwMiwgMjg4MiwgMCwgMCwgMTI4NDMsIDQ1MjAsIDEyMDM0NSwgOTI0NTksIDAsIDAsIDAsIDczODYwLCAKLSAgICAwLCAwLCA2NDM0NSwgMCwgOTIwMSwgMTI4MzE0LCAxOTQ5NDAsIDAsIDAsIDQzNjc5LCA5MTc1ODUsIDY1MTE3LCA5MjI3MCwgCi0gICAgMCwgMTA0MjcsIDAsIDM4NDQsIDEyMDY3NSwgOTc1NSwgMTExMCwgNjYxMiwgMTIyMjIsIDAsIDEyODc4OSwgMCwgMCwgNzgzLCAKLSAgICAxOTQ5MzUsIDAsIDAsIDAsIDE5NDcyMCwgNjUwNTYsIDM2MjAsIDAsIDY4Mzc4LCA0NTU2LCAwLCAwLCAxOTQ5MzMsIAotICAgIDc0MjUwLCAwLCA2NzY1NywgMTA1MTAsIDQzODIsIDY2NDgyLCAwLCAwLCAxMjc1MjcsIDkxNzcsIDg5MDIsIDAsIDk4MzksIAotICAgIDAsIDEyODkxLCAwLCAwLCA2Mzk5OSwgMjAxNiwgNDE5MTcsIDk3ODgsIDYzOTI4LCAwLCAxODYyLCA2NTgwMCwgOTE1NSwgCi0gICAgNjY2MjMsIDk3ODYsIDY1MDgyLCA0MTkxOSwgODU3OSwgNDE5MTQsIDc5ODEsIDAsIDY2MDE3LCA0NTA4LCA2NDg4MywgCi0gICAgOTI0NTYsIDkyNTIyLCAxMjc4MTQsIDAsIDY0NTkyLCA3NDI3NiwgMTIwMDgwLCA2Nzg0LCA3ODc4OCwgNjgxODEsIDAsIDAsIAotICAgIDAsIDEyNzUzNCwgMTIxNDcsIDkwMjQsIDY2Mzc4LCA2NjQ3MiwgMCwgNjQyODksIDY1Mjg5LCA3ODE1MSwgNjY2NTgsIAotICAgIDE5NDkyOSwgNjQ1MDksIDc4MTUyLCAwLCAwLCAxMTA1MSwgMCwgMCwgMTEzNTUsIDY1ODg1LCAwLCAxMjgzMTAsIDQxMjE0LCAKLSAgICAwLCAxMjI5OSwgMCwgNzUwMCwgNDUwNiwgNzc3MywgMCwgMCwgOTk2MywgNjg2NDksIDAsIDQwNDAsIDEyMDU3MCwgNjE2NywgCi0gICAgMCwgNjM5MjIsIDY1OTQsIDAsIDAsIDAsIDM2MjQsIDQzMDM2LCAwLCA2Mzg3LCA2Mzk5MCwgMTk5NDcsIDYzOTg4LCAKLSAgICA0MTk1NSwgMCwgNjM5OTMsIDEwNDQwLCA5NjExLCAwLCA2ODAzLCAwLCA3NzM4LCA2Mzk4NiwgMTE0NDYsIDYzOTg0LCAKLSAgICA5MjY0MSwgMzQzNSwgNzgxNjQsIDQzODE0LCA0MzgxMCwgNzAyOSwgNjQyNTgsIDQxMjkyLCAxMTg4OTgsIDEyNzQ4LCAKLSAgICA0Mjc0MiwgOTUxNywgMTE1MTgsIDAsIDc4NzkwLCAwLCAxOTQ3NzcsIDYzOTU2LCA0MjQ1OCwgNjM5NTQsIDYzOTUzLCAKLSAgICA2Mzk2MCwgOTU5MSwgNDUxNiwgMTAyMTcsIDY4MzcwLCAxMTQ2OSwgNjk2OTcsIDQyMzA2LCAyNzIzLCAxMTg5NDcsIDAsIDAsIAotICAgIDAsIDAsIDAsIDExMzk3LCAyODgwLCAwLCAwLCAyODcyLCAwLCAwLCAzNDk4LCA0Mzc4LCA5MTc1MzksIDQyNzAsIDAsIAotICAgIDY1NTUxLCA2ODIwNSwgNjYzMywgNDMzODcsIDAsIDUyMzAsIDAsIDAsIDAsIDAsIDAsIDgxNjEsIDM5MywgMTIwMTMsIDAsIAotICAgIDAsIDAsIDQxNSwgNjM5NjQsIDYzOTYzLCA0MjM0NSwgMCwgNTE4MywgMTg3NywgNDI0OTgsIDAsIDI5MjcsIDAsIDYzOTYxLCAKLSAgICA0NDcyLCAwLCAwLCA3ODE1OSwgNjk2OTksIDkxNzkzNiwgNDIzNDAsIDQ3NTYsIDEyODA3OCwgNzA4MSwgMTA3MzAsIDc2OTEsIAotICAgIDEwMzMxLCA2MzgzMCwgMTE5NjI1LCAxOTQ5NDUsIDQyMTAzLCA4NjI4LCA5ODEzLCAwLCA0MjQ1MywgMTYwNCwgOTU2NSwgCi0gICAgMTA1MzksIDY5NzAxLCA2NTc2NCwgNDE0MTUsIDY1NzY3LCAwLCA4NDU3LCA0MjMwMSwgMTEzNzIsIDY0ODczLCAxMTk5MiwgCi0gICAgMCwgMCwgNjM5ODAsIDExODAxLCAzNjIyLCAwLCA2NDMzNiwgMTIwMTcsIDEwNDYzLCA2Mzk4MSwgNDk2NywgNjQxODksIAotICAgIDE5NjYsIDQzNjI4LCAwLCAwLCAwLCAwLCA2Mzk3MSwgNDM0NywgNDQxNiwgNDIwOTgsIDExMDA5LCAxMDY5NCwgNjM5NzMsIAotICAgIDQwMiwgMCwgMTMxNDcsIDAsIDQyMTAwLCA2NDY0NiwgMTMyMjgsIDAsIDQxODc1LCAzNTE1LCA3NDI1MiwgMTE4MDUsIDAsIAotICAgIDExMzAyLCA2MjU5LCA0MzM5NSwgMCwgMCwgMTk0NjcwLCAwLCA5MjM1MSwgMCwgNzQ0MjUsIDExMjk5LCAxNTYxLCAwLCAKLSAgICA5MjM1OSwgNjQ5NDIsIDAsIDE5NDczMywgMCwgMTk0NzMyLCAwLCA3NDMwMSwgMCwgMTEyODAsIDAsIDY5Nzg0LCA3NDA2MCwgCi0gICAgMCwgMCwgMTE5NjY0LCA1MTQ1LCAxMjQ4NiwgNjUwMTgsIDY2NTE2LCA1NDA5LCAxMjczNzksIDE5NDY2OSwgNzQwMiwgCi0gICAgNTM5OSwgOTY4NSwgNzQwODksIDc5NTIsIDU0MDEsIDAsIDY2NjE2LCA2ODQyMSwgMCwgMCwgNTQwNSwgMTI3ODc1LCAKLSAgICA2NDg2NiwgMCwgMTE5NTgzLCAxMjgzNDUsIDc4Nzg0LCA3NDI0OCwgMTEzMzAsIDE5NDcyMywgNjQ2OTAsIDMyNTQsIDAsIDAsIAotICAgIDAsIDQyMzkwLCA0MzY3OCwgMTk0NzI1LCAwLCA2NTA3NywgMCwgNjM4OCwgMzM1NSwgOTUwOCwgOTg2NywgNTcyMywgCi0gICAgMTE1MjAsIDU2MTEsIDAsIDMzNzcsIDAsIDAsIDAsIDAsIDc4MjI4LCAwLCAwLCA0MjY5MSwgOTE3ODg2LCAxMjcxOTgsIAotICAgIDc0NzY3LCAwLCAxMjcwNzUsIDEzNzksIDI0NiwgMCwgMCwgMzc4OCwgMCwgMTEwNDEsIDkyNTQ5LCA2NjMwNCwgMCwgMCwgCi0gICAgODkxNywgNDI0MDMsIDMwMSwgMCwgMCwgMCwgMCwgMCwgMCwgMTA2NTYsIDAsIDY1MjE0LCAxMTkyNDIsIDQyNTY3LCAKLSAgICA5MjIxNywgMTMxNjMsIDAsIDEyMDgzMSwgNzQ1OTcsIDMxODIsIDAsIDAsIDAsIDY1MDM0LCA2NTg4OSwgNDIxNjksIDQ3NTUsIAotICAgIDc0MjQ0LCAwLCAxMTQ0MywgMCwgNjYzMTksIDc0NTk4LCA2MDgsIDYwMCwgMCwgMTIxOSwgMzkzNCwgNjQyMDYsIDExNDgzLCAKLSAgICA3NDUxMCwgMCwgNzQ0ODUsIDQyNDQyLCA2NTQ3MCwgMCwgNjQyMDIsIDEzMTYwLCA3NzU5LCA0MjQ4MiwgNDg1LCAxMjgwMDYsIAotICAgIDAsIDk4MjgsIDAsIDAsIDQyMjgwLCAwLCA5MzUxLCA3Nzc4LCA2NDM3OSwgNzQ5NiwgNDI0MzEsIDY5MTYsIDEyMDgsIDAsIAotICAgIDExOTYzMSwgMTEwMDIsIDQyNDcwLCAwLCAxMTg5NDYsIDAsIDAsIDc0MDQxLCAwLCAxMjA2MzMsIDQzNTM5LCA1NDExLCAKLSAgICA0MjE5NiwgMCwgMCwgMCwgOTE1MCwgMCwgNDIzOTMsIDEzMDg2LCAxMzEwLCAxOTQ2ODcsIDkzMzcsIDEyMDUyLCAxMDY0MywgCi0gICAgNTUyNzEsIDAsIDEyMTY2LCAyNTQ2LCAxOTQ2ODMsIDIxMywgMTE4ODUyLCA2NTYxMSwgMCwgMCwgMTk0NzU2LCA3NDMxMCwgCisgICAgMjU1NCwgNTE1OCwgNTcxNCwgMjIxMywgMCwgMCwgODA3LCA0MzA3OSwgMCwgNzg0NzUsIDk3NiwgNTUxMSwgNjQ1NTMsIDAsIAorICAgIDQyMTU1LCAwLCA0MTM1NiwgNzQxMTAsIDExODgwMSwgMTI2NjE0LCAwLCA4Njc2LCA5ODMyODMsIDAsIDU1ODIsIDQ1MSwgCisgICAgNjM5NDEsIDU3OTgsIDkzNDksIDQyMDE4LCAxMjc4NTgsIDAsIDAsIDQzNjA5LCA1OTA2LCAxMjA1NTMsIDE0NDAsIDAsIAorICAgIDEyODg1MywgMTIwMDE2LCA3NDI4MywgMTEwMDUsIDAsIDY2NjU2LCA2NjA0NCwgMCwgMTk0Njk4LCAwLCAwLCA0MzM5MywgCisgICAgMTAwOTQsIDAsIDExNTI5LCAxMDg1NywgMTIwNjQzLCA2NjQzNiwgNjU0NiwgOTMsIDgxMDIsIDAsIDY4NDA1LCAwLCAwLCAKKyAgICA4MTcxLCAwLCAxMTkwOTcsIDEyNzA2NCwgOTE3NTQzLCAzODMsIDcxNTQsIDQxNjU2LCA5MjYzNCwgOTQwNDAsIDAsIDUxODcsIAorICAgIDcxMjk2LCAxMjcyNzcsIDExMjg2LCA2ODYyMCwgNjQyMTcsIDAsIDUyMzIsIDAsIDQxMDA5LCAwLCA0MTAwNSwgMCwgMCwgCisgICAgOTgzODE4LCA4MjkyLCAxOTUwNzQsIDQ5ODAsIDg4NjAsIDczOTQ3LCAxMDAyOCwgNjUyOTEsIDcwNzYsIDEzMTgyLCAKKyAgICAxOTQ3MDUsIDAsIDAsIDEwNjMxLCA2NjAzMSwgNzk3MiwgMCwgNzg3ODUsIDAsIDc5MDAsIDAsIDExMzA5LCAzODA2LCAKKyAgICA0MTk4LCA0MjcyNSwgMCwgNjc2NTYsIDk5OTUsIDAsIDkyNTUyLCAwLCAxMjkzMSwgMCwgNDI2ODQsIDc0Mjg1LCAyMDg4LCAKKyAgICA2NDIxMywgNjQzNjYsIDY1MTU2LCA4ODE0LCA0MjIzOCwgNzQ3NzEsIDAsIDAsIDEyODM2LCAwLCAwLCA3NDM0MiwgODU5MywgCisgICAgMCwgMCwgNjg0NDUsIDEzMjU1LCAwLCAwLCA3NDY0LCAwLCA2NTg2NSwgMCwgMTk0NjUwLCAxMjcxNDQsIDAsIDkzNDIsIAorICAgIDEyMDQ2NCwgMCwgNjQ1MTYsIDAsIDc4NzkyLCAxMDEyOSwgNDEwMDcsIDc0Mzc1LCAwLCA0MDk5NSwgMTIyMDksIDQxMDEyLCAKKyAgICAxMTkxMzYsIDAsIDAsIDY5NzI0LCA0MDk5MiwgOTIyNjQsIDEyNzE1MywgNjg2NTMsIDQzNTU4LCA1NTIyLCAwLCA2MSwgMCwgCisgICAgNzQxMDUsIDM2MzMsIDk4Mzg5MSwgNjUxNjIsIDQxMjM0LCAxMjA4OSwgNzgyODEsIDk3NzEsIDk4Mzg5NiwgMTMyNTEsIAorICAgIDEyODcwMSwgMCwgNjI2MiwgMjc4NCwgNDI3NDMsIDAsIDgxMjYsIDY2NDgzLCAwLCAwLCA0NDEsIDQyNjIxLCAwLCAwLCAKKyAgICA0MTAwMiwgNDA5OTksIDExOTYyMywgNDMyNjYsIDcxMDgsIDE5NDc3OSwgMTA4OTAsIDc0NDgxLCA2NTgzNCwgODMyNCwgCisgICAgMTE5MTAzLCA2NDQxNywgNzQ4MTcsIDEyNzQ2NSwgNjQ3MzcsIDAsIDk4MzY1MCwgODkzMCwgNjY2NzgsIDc0MjQ5LCAxMTkzLCAKKyAgICAxMDA1NiwgMTgwMCwgMTMyNTMsIDEzMjUyLCA3ODI5LCAwLCAwLCA3NzQzLCAwLCAwLCA3NzkwNCwgOTI2NDAsIDc3OTA1LCAKKyAgICA5MDM0LCA2MDM5LCAwLCAxMDA3NSwgMCwgNDEwMTgsIDY1NjgzLCAxMDMzOCwgNjY0NjksIDAsIDAsIDAsIDQyODE1LCAwLCAKKyAgICA0MTk2NiwgMCwgMTI3NDcxLCAwLCAxMTc5MiwgNDMwNjQsIDQxMDI1LCA5MTEsIDc1MzksIDAsIDAsIDEyMDMzOSwgNjUxNTksIAorICAgIDY0MzkwLCAwLCAwLCA1NTIwLCAxMTY2MiwgMCwgNjUzMzAsIDQyODEyLCAwLCAwLCAxMjMyNiwgOTgzODQ3LCAwLCA0MjgwOCwgCisgICAgMTI4MzM3LCA5MzQ4LCA2NDkwMSwgOTgzODUyLCAwLCAwLCAwLCAwLCAwLCA5MTc1ODQsIDQzNzAyLCA5ODM1NzYsIDU4NTcsIAorICAgIDY1MzQyLCA5MjcyNywgMTE5MTIwLCAxMjAwNzksIDg2NDQsIDAsIDAsIDAsIDc0Mjk2LCA0MTkwOSwgMCwgMTIwMzMyLCAKKyAgICAyNzkxLCA2OTY2MywgMTg5MSwgNjk4MjQsIDAsIDQxOTA3LCA2NjY0NywgMTE4OTM5LCA4NzYxLCAxMjk0MiwgNTc0OCwgMCwgCisgICAgMTA3NzMsIDAsIDAsIDg3OTYsIDc4MTQ5LCA2NDEyLCAyMDYxLCA4NTIwLCAxMzE0NiwgMTI3MTg1LCA2MzkzMSwgMCwgCisgICAgNjU5MDIsIDI4ODIsIDAsIDAsIDEyODQzLCA0NTIwLCAxMjAzNDUsIDkyNDU5LCAwLCA5ODM2NTEsIDAsIDczODYwLCAwLCAwLCAKKyAgICA2NDM0NSwgMCwgOTIwMSwgMTI4MzE0LCAxOTQ5NDAsIDAsIDAsIDQzNjc5LCA5MTc1ODUsIDY1MTE3LCA5MjI3MCwgMCwgCisgICAgMTA0MjcsIDAsIDM4NDQsIDEyMDY3NSwgOTc1NSwgMTExMCwgNjYxMiwgMTIyMjIsIDAsIDEyODc4OSwgMCwgMCwgNzgzLCAKKyAgICAxOTQ5MzUsIDAsIDAsIDk4MzA2NCwgMTk0NzIwLCA2NTA1NiwgMzYyMCwgNDExODAsIDY4Mzc4LCA0NTU2LCAwLCAwLCAKKyAgICAxOTQ5MzMsIDc0MjUwLCAwLCA2NzY1NywgMTA1MTAsIDQzODIsIDY2NDgyLCAwLCAwLCAxMjc1MjcsIDkxNzcsIDg5MDIsIAorICAgIDkzOTU4LCA5ODM5LCAwLCAxMjg5MSwgOTgzNzQ2LCA5ODM2MjcsIDYzOTk5LCAyMDE2LCA0MTkxNywgOTc4OCwgNjM5MjgsIAorICAgIDAsIDE4NjIsIDY1ODAwLCA5MTU1LCA2NjYyMywgOTc4NiwgNjUwODIsIDQxOTE5LCA4NTc5LCA0MTkxNCwgNzk4MSwgMCwgCisgICAgNjYwMTcsIDQ1MDgsIDY0ODgzLCA5MjQ1NiwgOTI1MjIsIDEyNzgxNCwgMCwgNjQ1OTIsIDc0Mjc2LCAxMjAwODAsIDY3ODQsIAorICAgIDc4Nzg4LCA2ODE4MSwgMCwgMCwgMCwgMTI3NTM0LCAxMjE0NywgOTAyNCwgNjYzNzgsIDY2NDcyLCA5ODM5MjAsIDY0Mjg5LCAKKyAgICA2NTI4OSwgNzgxNTEsIDY2NjU4LCAxOTQ5MjksIDY0NTA5LCA3ODE1MiwgMCwgMTI2NTA1LCAxMTA1MSwgOTgzMjg4LCAwLCAKKyAgICAxMTM1NSwgNjU4ODUsIDAsIDEyODMxMCwgNDEyMTQsIDAsIDEyMjk5LCAwLCA3NTAwLCA0NTA2LCA3NzczLCAwLCAwLCAKKyAgICA5OTYzLCA2ODY0OSwgMTI2NjA5LCA0MDQwLCAxMjA1NzAsIDYxNjcsIDAsIDYzOTIyLCA2NTk0LCA5ODM3MzEsIDAsIDAsIAorICAgIDM2MjQsIDQzMDM2LCAwLCA2Mzg3LCA2Mzk5MCwgMTk5NDcsIDYzOTg4LCA0MTk1NSwgMCwgNjM5OTMsIDEwNDQwLCA5NjExLCAKKyAgICA2NTYwNSwgNjgwMywgMCwgNzczOCwgNjM5ODYsIDExNDQ2LCA2Mzk4NCwgOTI2NDEsIDM0MzUsIDc4MTY0LCA0MzgxNCwgCisgICAgNDM4MTAsIDcwMjksIDY0MjU4LCA0MTI5MiwgMTE4ODk4LCAxMjc0OCwgNDI3NDIsIDk1MTcsIDExNTE4LCAwLCA3ODc5MCwgCisgICAgMCwgNjc5OTMsIDYzOTU2LCA0MjQ1OCwgNjM5NTQsIDYzOTUzLCA2Mzk2MCwgOTU5MSwgNDUxNiwgMTAyMTcsIDY4MzcwLCAKKyAgICAxMTQ2OSwgNjk2OTcsIDQyMzA2LCAyNzIzLCAxMTg5NDcsIDAsIDAsIDAsIDAsIDAsIDExMzk3LCAyODgwLCAwLCAwLCAKKyAgICAyODcyLCAwLCAwLCAzNDk4LCA0Mzc4LCA5MTc1MzksIDQyNzAsIDAsIDY1NTUxLCA2ODIwNSwgNjYzMywgNDMzODcsIDAsIAorICAgIDUyMzAsIDAsIDAsIDAsIDAsIDAsIDgxNjEsIDM5MywgMTIwMTMsIDAsIDAsIDEyNjQ3OSwgNDE1LCA2Mzk2NCwgNjM5NjMsIAorICAgIDQyMzQ1LCA5MjMxMCwgNTE4MywgMTg3NywgNDI0OTgsIDAsIDI5MjcsIDAsIDYzOTYxLCA0NDcyLCAwLCAwLCA3ODE1OSwgCisgICAgNjk2OTksIDkxNzkzNiwgNDIzNDAsIDQ3NTYsIDEyODA3OCwgNzA4MSwgMTA3MzAsIDc2OTEsIDEwMzMxLCA2MzgzMCwgCisgICAgMTE5NjI1LCA0MjkyMiwgNDIxMDMsIDg2MjgsIDk4MTMsIDAsIDQyNDUzLCAxNjA0LCA5NTY1LCAxMDUzOSwgNjk3MDEsIAorICAgIDY1NzY0LCA0MTQxNSwgNjU3NjcsIDAsIDg0NTcsIDQyMzAxLCAxMTM3MiwgNjQ4NzMsIDExOTkyLCAwLCAwLCA2Mzk4MCwgCisgICAgMTE4MDEsIDM2MjIsIDk4MzEyNCwgNjQzMzYsIDEyMDE3LCAxMDQ2MywgNjM5ODEsIDQ5NjcsIDY0MTg5LCAxOTY2LCAKKyAgICA0MzYyOCwgMCwgOTgzMjg0LCAwLCAwLCA2Mzk3MSwgNDM0NywgNDQxNiwgNDIwOTgsIDExMDA5LCAxMDY5NCwgNjM5NzMsIAorICAgIDQwMiwgMCwgMTMxNDcsIDEyODY5MiwgNDIxMDAsIDY0NjQ2LCAxMzIyOCwgMCwgNDE4NzUsIDM1MTUsIDc0MjUyLCAxMTgwNSwgCisgICAgMCwgMTEzMDIsIDYyNTksIDQzMzk1LCAwLCAwLCAxOTQ2NzAsIDAsIDkyMzUxLCAwLCA3NDQyNSwgMTEyOTksIDE1NjEsIDAsIAorICAgIDkyMzU5LCA2NDk0MiwgOTgzNTU5LCAxOTQ3MzMsIDk4MzY3NywgMTk0NzMyLCAwLCA3NDMwMSwgMCwgMTEyODAsIDAsIAorICAgIDY5Nzg0LCA3NDA2MCwgMCwgMCwgMTE5NjY0LCA1MTQ1LCAxMjQ4NiwgNjUwMTgsIDY2NTE2LCA1NDA5LCAxMjczNzksIAorICAgIDE5NDY2OSwgNzQwMiwgNTM5OSwgOTY4NSwgNzQwODksIDc5NTIsIDU0MDEsIDAsIDY2NjE2LCA2ODQyMSwgOTgzOTEwLCAwLCAKKyAgICA1NDA1LCAxMjc4NzUsIDY0ODY2LCAwLCAxMTk1ODMsIDEyODM0NSwgNzg3ODQsIDc0MjQ4LCAxMTMzMCwgMTk0NzIzLCAKKyAgICA2NDY5MCwgMzI1NCwgMCwgMCwgMTI4MjA3LCA0MjM5MCwgNDM2NzgsIDE5NDcyNSwgOTgzOTAwLCA2NTA3NywgMCwgNjM4OCwgCisgICAgMzM1NSwgOTUwOCwgOTg2NywgNTcyMywgMTE1MjAsIDU2MTEsIDAsIDMzNzcsIDAsIDAsIDAsIDAsIDc4MjI4LCAwLCAKKyAgICA5ODM3NTMsIDQyNjkxLCA5MTc4ODYsIDEyNzE5OCwgNzQ3NjcsIDAsIDEyNzA3NSwgMTM3OSwgMjQ2LCAwLCA5ODM3NTIsIAorICAgIDM3ODgsIDk4MzEwNiwgMTEwNDEsIDkyNTQ5LCA2NjMwNCwgMCwgMCwgODkxNywgNDI0MDMsIDMwMSwgMCwgMCwgMCwgMCwgMCwgCisgICAgOTgzNjg4LCAxMDY1NiwgMCwgNjUyMTQsIDExOTI0MiwgNDI1NjcsIDkyMjE3LCAxMzE2MywgOTgzMjAyLCAxMjA4MzEsIAorICAgIDc0NTk3LCAzMTgyLCAwLCAwLCAwLCA2NTAzNCwgNjU4ODksIDQyMTY5LCA0NzU1LCA3NDI0NCwgMTk0NjIxLCAxMTQ0MywgMCwgCisgICAgNjYzMTksIDc0NTk4LCA2MDgsIDYwMCwgMCwgMTIxOSwgMzkzNCwgNjQyMDYsIDExNDgzLCA3NDUxMCwgMCwgNzQ0ODUsIAorICAgIDQyNDQyLCA2NTQ3MCwgOTgzODk4LCA2NDIwMiwgMTMxNjAsIDc3NTksIDQyNDgyLCA0ODUsIDEyODAwNiwgMCwgOTgyOCwgMCwgCisgICAgMCwgNDIyODAsIDAsIDkzNTEsIDc3NzgsIDY0Mzc5LCA3NDk2LCA0MjQzMSwgNjkxNiwgMTIwOCwgMCwgMTE5NjMxLCAKKyAgICAxMTAwMiwgNDI0NzAsIDAsIDExODk0NiwgMCwgMCwgNzQwNDEsIDAsIDcwMDQ1LCA0MzUzOSwgNTQxMSwgNDIxOTYsIDAsIDAsIAorICAgIDAsIDkxNTAsIDAsIDQyMzkzLCAxMzA4NiwgMTMxMCwgMTk0Njg3LCA5MzM3LCAxMjA1MiwgMTA2NDMsIDU1MjcxLCAKKyAgICA5ODMxNzksIDEyMTY2LCAyNTQ2LCAxOTQ2ODMsIDIxMywgMTE4ODUyLCA2NTYxMSwgMCwgMCwgMTk0NzU2LCA3NDMxMCwgCiAgICAgNjU1NCwgMCwgMTE5MTQsIDU0NTIsIDAsIDAsIDAsIDAsIDAsIDE5NDY4MSwgOTI1NjAsIDI3MTMsIDAsIDk2NTAsIDQzMzMwLCAKICAgICAwLCAxOTQ2NzUsIDE0MDYsIDAsIDAsIDkyNjU5LCAwLCA2ODIyMywgNDE0MywgMTk0Njc3LCAwLCA2NTc0OCwgNDE0MSwgCiAgICAgOTY4MiwgNjUyODcsIDE1MDgsIDEyNzAxMywgODc3OSwgMTA1NjksIDg3MjUsIDEzMjk5LCA2NjYzOCwgNjU3NTAsIDQyMjYzLCAKICAgICA0MTQ1LCA2MzgwLCA2NTc1MSwgNjY2MTMsIDQzOTk0LCA2NTczOCwgNTUyNTAsIDkxODUsIDk1NTAsIDAsIDQzNDAzLCAwLCAKLSAgICAwLCAwLCA2NTczNiwgNDE5NTEsIDY0ODE2LCA2NTc1NiwgMCwgMTI5NTUsIDEwNTk2LCAyODg4LCAwLCAwLCAwLCA5NjU3LCAKLSAgICA5MDE5LCAxOTQ3NjYsIDAsIDI4NzgsIDUzOTAsIDAsIDE5NDk2MSwgMCwgNjg2NzksIDQzNTUyLCA3NTAxLCA2MzI4LCAwLCAKLSAgICAxMDQyOSwgMTAzNjUsIDAsIDAsIDQxOTQ2LCA3NTAzLCA1MjM1LCA4MDMsIDY4MzgxLCAwLCAwLCA4OTg2LCAwLCAxMDYzMiwgCi0gICAgMTE5MzQsIDExNDUyLCAxMzMyLCAwLCAwLCAwLCAwLCAxMTg4ODcsIDE3OTEsIDUxOTEsIDkyODgsIDY0ODIyLCAyODkyLCAwLCAKLSAgICA0MzM5NCwgNTU1LCAwLCAwLCA2NjY0NiwgMCwgMTE5MDAyLCAxMzE1MSwgNzQ1MTIsIDcyODksIDc0MDU1LCAwLCA4ODU0LCAKLSAgICA2NDE2MiwgNTg1OCwgNDE5MjcsIDEwNTgyLCAwLCAxNzg0LCAxMzYxLCAxOTUwNDcsIDAsIDc5MDUsIDAsIDY0ODY4LCAKLSAgICAxMjg4MTMsIDEzMTU4LCA5MjE2NiwgNzIxMSwgMCwgOTM3MSwgNzM5NzMsIDAsIDY4MjgsIDE2MjUsIDkyMzAyLCAwLCAKLSAgICAxMzQyLCA2ODQ0MCwgNjQxNzEsIDAsIDEwOTAzLCAwLCAwLCAwLCAwLCAwLCA0NDgyLCA0MTYwNiwgMCwgMTI4NTY5LCAwLCAKLSAgICAwLCA2NDM4MSwgMCwgMCwgMCwgNDIyNDUsIDAsIDQxOTcyLCAwLCA0NDQsIDAsIDkxMjcsIDY2Njg3LCA2NjYxOSwgMCwgCi0gICAgNzgwMjUsIDAsIDExMzQ5LCA0MDk5MSwgMCwgMCwgMTE5NTk5LCAxMjA4MzAsIDAsIDExOTcsIDEyODI4MiwgMTE0OSwgCi0gICAgMTk0OTcwLCAwLCAwLCA0MDk5MCwgMCwgMCwgMzQ5MiwgMCwgMTI3OTQyLCAwLCAwLCAwLCAxMjgzOCwgMCwgMTk5NDgsIDAsIAotICAgIDMwOTksIDAsIDAsIDQxMDg3LCAwLCAwLCAwLCAxMTkwNTksIDEyMDM2LCA0MTMwOSwgMCwgMCwgODE1MiwgMCwgNjQ0MjgsIAotICAgIDEyMjI3LCAwLCAwLCAxMjgyOCwgMTI3NTExLCAwLCAwLCAxMjA3MDgsIDAsIDAsIDEwMzg2LCAxMTk1NzQsIDAsIDAsIAotICAgIDkyNjgwLCAwLCA2ODE1NCwgMCwgMTc0MywgMCwgMCwgOTIyMzksIDY1MTg2LCAwLCAwLCA5NjA2LCAwLCAwLCA2NDQzOSwgMCwgCi0gICAgMCwgOTI2ODYsIDAsIDAsIDE5NDk2NywgMCwgMCwgMzM5NSwgOTM2MiwgMTA4NzgsIDAsIDAsIDc4MzYyLCA2NDgzMCwgMCwgCi0gICAgMCwgNDEwOTEsIDM0MjYsIDEzNDQsIDg4NzAsIDAsIDAsIDQ3MzUsIDEyNzAxNywgNjExOSwgMTI4MjIsIDQyNjk5LCAwLCAwLCAKLSAgICA3NDgxOCwgNTM5NiwgMCwgNDI2MzcsIDQxMDgwLCAwLCAxMjAzOSwgMTA1NTksIDAsIDExODg5MiwgMCwgOTQ3MiwgMCwgCi0gICAgMTE5MjksIDAsIDcxNzAsIDk1OTYsIDYxMzAsIDEyODgyNiwgNDM2MjksIDExNTc5LCAxOTQ3NDEsIDAsIDE5NDc0MCwgCi0gICAgMTI4NjkxLCA5MjE4NSwgNjY2OTksIDY0NDQwLCAxMDA0LCA5MjU4NCwgMTk0NzM3LCA0MzIzNCwgNjYwMDgsIDEyNjI3LCAwLCAKLSAgICA2ODQxNCwgMCwgNDM2MTksIDQzMzgyLCAxMTMwMCwgNDMzMDQsIDk2ODYsIDU4OTAsIDExNzc2LCA3NTU4LCAxMjcxNTgsIAotICAgIDY1NjI3LCAwLCAxMDcxOCwgMTMxNTQsIDM0NjEsIDkxMzksIDAsIDAsIDAsIDAsIDY1MzY1LCA3Mzg3NywgNjU2MjgsIAotICAgIDc4MDE5LCAwLCAwLCA0MTcwOCwgMTI4NjAsIDI2NDEsIDEyMDY5LCAxMDgzOCwgNTQwMywgMTAzNTIsIDczOTE3LCAxMDA2MSwgCi0gICAgNDMyMzcsIDAsIDUxNDAsIDIwOSwgMTI4ODQ3LCA0MTcwNCwgNDEwNTYsIDQzMDc4LCAxMjgxMjUsIDExODgwOSwgMCwgCi0gICAgMTA4OTksIDY1NDY5LCAwLCAwLCAwLCAyNDEwLCA5OTMsIDAsIDEyMDU4OSwgMTIwNjg5LCA3ODY5MywgMCwgMCwgNzIzMiwgCi0gICAgMCwgMTE5MjUzLCAwLCA3MTEwLCA3NDQ2MiwgMjA2NiwgMTA0ODksIDQyMTY2LCA0MzQ2MywgMTA2NTksIDM2MDAsIDAsIAotICAgIDQyMjQsIDEzMzYsIDQxNTE4LCAwLCAwLCAwLCAwLCA0MTEzOSwgNjQ4MjAsIDkyNTM4LCAxMjk2NiwgNDExMzQsIDAsIDAsIAotICAgIDAsIDAsIDI3MiwgNDI2MywgODc5MywgMCwgMCwgNDE1MDIsIDAsIDk4MywgMTI1NDksIDAsIDAsIDExOTAsIDQxMDksIAotICAgIDEzMzUsIDg0MSwgNTg4OCwgNDEzNTgsIDY0ODYzLCA5NTQ0LCA0MzQ4MSwgMCwgMCwgMCwgMjA5OSwgNTEyMCwgMjQwOSwgCi0gICAgNzc5OSwgMCwgNzQ0MjQsIDAsIDAsIDQ3MzEsIDAsIDY2NjI5LCAwLCAwLCAxMjU1LCA0MTQ5LCA5MjQ3LCAwLCA5OTEzLCAwLCAKLSAgICAwLCA2NDkxNCwgOTE3Nzg3LCA2NTEwMSwgMCwgMTE2OTQsIDkyNDc1LCAxMTY5MCwgNTgzNSwgMTI3MTY0LCA2NjYyNSwgCi0gICAgMTA4NDIsIDQxMzU0LCA0MjEyMywgNDMwOTcsIDExNjg4LCA2NjYzNCwgMTA5NCwgMTk0LCA2NDY5MiwgMCwgODE4MCwgMCwgCi0gICAgMCwgOTk3MiwgNzM4NjUsIDQ1MTksIDYxMTQsIDEwODk4LCA0MzA3MiwgMCwgMCwgMTI4ODU4LCAwLCAwLCAxMDY5NSwgMCwgCi0gICAgNzU0MCwgMCwgODgxLCA3ODU3LCA2MDY3LCA2NTE2NCwgMCwgMCwgMCwgMTMzMTEsIDY4NDAzLCA0MTg1NywgNjQzMjEsIAotICAgIDgzNTksIDAsIDEyNjg5LCAwLCAxOTQ1OTQsIDAsIDAsIDAsIDY4MTgzLCAwLCAwLCAxMjg3LCA1NDM2LCAwLCAwLCA3NDE0MiwgCi0gICAgOTIzMjgsIDc0MTUyLCAxMTkwNzgsIDYwNTEsIDEwNDk3LCA2OTY2OCwgODk4NSwgMTIxMDksIDAsIDAsIDAsIDAsIDAsIAotICAgIDM2NTIsIDEwNTM3LCAwLCAxMjc2LCAxMjA0NDAsIDY1NDksIDI3OSwgNzM3NDUsIDAsIDAsIDAsIDE0ODksIDAsIDAsIDAsIAotICAgIDM4OTksIDEwMDcsIDQyMTI0LCAwLCA0MjEyMiwgOTIzMzcsIDAsIDAsIDExOTg1LCAxMzQ1LCA3ODYwMCwgMCwgMCwgODk1NiwgCi0gICAgNDMwODMsIDExOTgzMCwgNDIxMzgsIDc4NjEwLCAwLCAxMjE1MSwgNzg2MDgsIDc4NjA0LCA3ODYwNSwgNjI4NSwgNzg2MDMsIAotICAgIDc4NjEyLCA3ODYxMywgNjU5NDIsIDQ5MiwgODY4NSwgMCwgMCwgMCwgNzg2MjIsIDQzNzEyLCAyNTgyLCAxMTQ3MCwgCi0gICAgNjQ1MzgsIDc0NDQsIDc4NjE1LCA3ODYxNiwgNDE1NTAsIDAsIDczODM3LCAxMTk4MjMsIDI1MjcsIDExOTgyNCwgMTk3LCAKLSAgICAyNzk5LCA5MjU5NCwgNDE5NDQsIDEyMDI3NiwgOTkzMywgMCwgNjY1MTUsIDc2NywgNTUyNCwgNzAyOCwgMCwgMCwgCi0gICAgMTE5ODI3LCAxMTk4MTcsIDExOTgyOCwgNzg2MzMsIDEwODk2LCAwLCAxNzk5LCAxMjA0OTcsIDY5NzEsIDc0MzM2LCAKLSAgICAxMjgzNDIsIDAsIDY1MzQwLCAxMTg5NzksIDQxNTUxLCAyNDM0LCAwLCAwLCAxMjA1NzksIDAsIDQ2MzEsIDAsIDAsIDY0MDcsIAotICAgIDAsIDYzMzgsIDQzMjE0LCAwLCA3NTcwLCAwLCAzMTkyLCAwLCA4NDE0LCAwLCAwLCAwLCAwLCAwLCA5MTY0LCA2NjYxMiwgMCwgCi0gICAgMzE3MSwgNjYyMywgNDk2MSwgNjgzOTYsIDg4NiwgNTUyMTYsIDg2NTQsIDc4ODMyLCA5OTkzLCA3NDM5MCwgNjQ2MDMsIDAsIAotICAgIDY5MjQxLCA5NTk5LCA3ODYyOSwgNDMwODQsIDc4NjI3LCA3ODYyOCwgNzg2MjUsIDIzOTksIDY5NjkzLCA4OTk0LCAxMDk0NCwgCi0gICAgNDEyMDgsIDAsIDQxMTY4LCA4MTc4LCAwLCAzMzY3LCA5MjMzNCwgNDI1MTAsIDc4NjQxLCA3ODYzNiwgNjgwNCwgNzg2MzQsIAotICAgIDE5NDcsIDAsIDAsIDkyNjgxLCA0Mjc1OSwgMTEwNjgsIDE3MDUsIDkzMzEsIDAsIDc0Nzk4LCA5MTgxLCA2NTM1OSwgMCwgCi0gICAgODAxNywgMCwgNjUwOTYsIDY2NzIwLCAwLCA0MzQ3NSwgMCwgNDkwOSwgMTIxMjYsIDEyODY3MywgMTIwNjk2LCA0OTA0LCAwLCAKKyAgICAwLCAwLCA2NTczNiwgNDE5NTEsIDY0ODE2LCA2NTc1NiwgOTgzMjAzLCAxMjk1NSwgMTA1OTYsIDI4ODgsIDE5NDY0NSwgMCwgCisgICAgMCwgOTY1NywgOTAxOSwgMTk0NzY2LCAwLCAyODc4LCA1MzkwLCAwLCAxOTQ5NjEsIDAsIDY4Njc5LCA0MzU1MiwgNzUwMSwgCisgICAgNjMyOCwgMCwgMTA0MjksIDEwMzY1LCAwLCAwLCA0MTk0NiwgNzUwMywgNTIzNSwgODAzLCA2ODM4MSwgMCwgMCwgODk4NiwgCisgICAgMTI2NTQyLCAxMDYzMiwgMTE5MzQsIDExNDUyLCAxMzMyLCAwLCAwLCAxMjY2NDcsIDAsIDExODg4NywgMTc5MSwgNTE5MSwgCisgICAgOTI4OCwgNjQ4MjIsIDI4OTIsIDAsIDQzMzk0LCA1NTUsIDAsIDAsIDY2NjQ2LCAwLCAxMTkwMDIsIDEzMTUxLCA3NDUxMiwgCisgICAgNzI4OSwgNzQwNTUsIDY0MTYxLCA4ODU0LCA2NDE2MiwgNTg1OCwgNDE5MjcsIDEwNTgyLCAwLCAxNzg0LCAxMzYxLCAKKyAgICAxOTUwNDcsIDAsIDc5MDUsIDAsIDY0ODY4LCAxMjg4MTMsIDEzMTU4LCA5MjE2NiwgNzIxMSwgMCwgOTM3MSwgNzM5NzMsIAorICAgIDkxNzU1MywgNjgyOCwgMTYyNSwgOTIzMDIsIDAsIDEzNDIsIDY4NDQwLCA2NDE3MSwgMTI2NzA0LCAxMDkwMywgOTgzNDg2LCAKKyAgICAwLCAwLCAwLCAwLCA0NDgyLCA0MTYwNiwgMCwgMTI4NTY5LCA5ODMxMTIsIDAsIDY0MzgxLCAwLCAwLCAxOTUwOTAsIAorICAgIDQyMjQ1LCAxMjY0NjcsIDQxOTcyLCAwLCA0NDQsIDAsIDkxMjcsIDY2Njg3LCA2NjYxOSwgMTI2NDg5LCA3ODAyNSwgMCwgCisgICAgMTEzNDksIDQwOTkxLCA5MTc1NzAsIDAsIDExOTU5OSwgMTIwODMwLCAwLCAxMTk3LCAxMjgyODIsIDExNDksIDE5NDk3MCwgCisgICAgMCwgMCwgNDA5OTAsIDQzNzY1LCAwLCAzNDkyLCAwLCAxMjc5NDIsIDAsIDAsIDAsIDEyODM4LCA5ODM5NjksIDE5OTQ4LCAwLCAKKyAgICAzMDk5LCAwLCAwLCA0MTA4NywgMCwgMCwgMCwgMTE5MDU5LCAxMjAzNiwgNDEzMDksIDAsIDAsIDgxNTIsIDAsIDQxNTUwLCAKKyAgICAxMjIyNywgOTgzNjEzLCAwLCAxMjgyOCwgMTI3NTExLCAwLCAwLCAxMjA3MDgsIDAsIDAsIDEwMzg2LCAxMTk1NzQsIDAsIDAsIAorICAgIDkyNjgwLCA5ODM3ODAsIDY4MTU0LCAwLCAxNzQzLCAwLCAwLCA5MjIzOSwgNjUxODYsIDkxNzU3MSwgMCwgOTYwNiwgMCwgMCwgCisgICAgNjQ0MzksIDAsIDAsIDkyNjg2LCAwLCAwLCAxOTQ5NjcsIDAsIDAsIDMzOTUsIDkzNjIsIDEwODc4LCAwLCAwLCA3ODM2MiwgCisgICAgNjQ4MzAsIDAsIDEyNjU1NywgNDEwOTEsIDM0MjYsIDEzNDQsIDg4NzAsIDAsIDAsIDQ3MzUsIDEyNzAxNywgNjExOSwgCisgICAgMTI4MjIsIDQyNjk5LCAwLCA5ODM4MTUsIDc0ODE4LCAxNDIzLCAwLCA0MjYzNywgNDEwODAsIDAsIDEyMDM5LCAxMDU1OSwgCisgICAgMCwgMTE4ODkyLCAwLCA5NDcyLCAwLCAxMTkyOSwgMCwgNzE3MCwgOTU5NiwgNjEzMCwgMTI4ODI2LCA0MzYyOSwgMTE1NzksIAorICAgIDc4NzEzLCAwLCAxOTQ3NDAsIDEyODY5MSwgOTIxODUsIDY2Njk5LCA2NDQ0MCwgMTAwNCwgOTI1ODQsIDE5NDczNywgCisgICAgNDMyMzQsIDY2MDA4LCAxMjYyNywgMCwgNjg0MTQsIDAsIDQzNjE5LCA0MzMwMywgMTEzMDAsIDQzMzA0LCA5Njg2LCA1ODkwLCAKKyAgICAxMTc3NiwgNzU1OCwgMTI3MTU4LCA2NTYyNywgMCwgMTA3MTgsIDEzMTU0LCAzNDYxLCA5MTM5LCAwLCAwLCAwLCAwLCAKKyAgICA2NTM2NSwgNzM4NzcsIDY1NjI4LCA3ODAxOSwgMTIwMzE5LCAwLCA0MTcwOCwgMTI4NjAsIDI2NDEsIDEyMDY5LCAxMDgzOCwgCisgICAgNTQwMywgMTAzNTIsIDcwMDg1LCAxMDA2MSwgNDMyMzcsIDAsIDUxNDAsIDIwOSwgMTI4ODQ3LCA0MTcwNCwgNDEwNTYsIAorICAgIDQzMDc4LCAxMjgxMjUsIDExODgwOSwgMCwgMTA4OTksIDY1NDY5LCA5MjM2MiwgMCwgMCwgMjQxMCwgOTkzLCAwLCAKKyAgICAxMjA1ODksIDEyMDY4OSwgNzg2OTMsIDAsIDAsIDcyMzIsIDAsIDExOTI1MywgMCwgNzExMCwgNzQ0NjIsIDIwNjYsIAorICAgIDEwNDg5LCA0MjE2NiwgNDM0NjMsIDEwNjU5LCAzNjAwLCAwLCA0MjI0LCAxMzM2LCA0MTUxOCwgMCwgMCwgMCwgMCwgCisgICAgNDExMzksIDY0ODIwLCA5MjUzOCwgMTI5NjYsIDQxMTM0LCAwLCAwLCAwLCAwLCAyNzIsIDQyNjMsIDg3OTMsIDAsIDAsIAorICAgIDQxNTAyLCAwLCA5ODMsIDEyNTQ5LCAwLCAwLCAxMTkwLCA0MTA5LCAxMzM1LCA4NDEsIDU4ODgsIDQxMzU4LCA2NDg2MywgCisgICAgOTU0NCwgNDM0ODEsIDAsIDE5NDgwNiwgNzAwMjcsIDIwOTksIDUxMjAsIDI0MDksIDc3OTksIDAsIDc0NDI0LCAwLCAwLCAKKyAgICA0NzMxLCAwLCA2NjYyOSwgMCwgMCwgMTI1NSwgNDE0OSwgOTI0NywgMCwgOTkxMywgMCwgMCwgNjQ5MTQsIDkxNzc4NywgCisgICAgNjUxMDEsIDAsIDExNjk0LCA5MjQ3NSwgMTE2OTAsIDU4MzUsIDEyNzE2NCwgNjY2MjUsIDEwODQyLCA0MTM1NCwgNDIxMjMsIAorICAgIDQzMDk3LCAxMTY4OCwgNjY2MzQsIDEwOTQsIDE5NCwgNjQ2OTIsIDAsIDgxODAsIDAsIDAsIDk5NzIsIDczODY1LCA0NTE5LCAKKyAgICA2MTE0LCAxMDg5OCwgNDMwNzIsIDAsIDAsIDkzOTYwLCA5ODMzMTQsIDEyNjU4MSwgMTA2OTUsIDAsIDc1NDAsIDAsIDg4MSwgCisgICAgNzg1NywgNjA2NywgNjUxNjQsIDAsIDAsIDAsIDEzMzExLCA2ODQwMywgNDE4NTcsIDY0MzIxLCA4MzU5LCAwLCAxMjY4OSwgCisgICAgMCwgMTk0NTk0LCAwLCA5ODMzMDQsIDk4Mzg3MiwgNjgxODMsIDAsIDk4MzMwNiwgMTI4NywgNTQzNiwgMCwgOTgzMzA5LCAKKyAgICA3NDE0MiwgOTIzMjgsIDc0MTUyLCAxMTkwNzgsIDYwNTEsIDEwNDk3LCA2OTY2OCwgODk4NSwgMTIxMDksIDk4MzMxNSwgMCwgCisgICAgMTI3MjQyLCAwLCAwLCAzNjUyLCAxMDUzNywgMCwgMTI3NiwgMTIwNDQwLCA2NTQ5LCAyNzksIDczNzQ1LCAwLCAwLCAwLCAKKyAgICAxNDg5LCAwLCAwLCAwLCAzODk5LCAxMDA3LCA0MjEyNCwgOTgzNTU3LCA0MjEyMiwgOTIzMzcsIDkyMzY3LCAwLCAxMTk4NSwgCisgICAgMTM0NSwgNzg2MDAsIDAsIDAsIDg5NTYsIDQzMDgzLCA5NDA1NywgNDIxMzgsIDc4NjEwLCAwLCAxMjE1MSwgNzg2MDgsIAorICAgIDc4NjA0LCA3ODYwNSwgNjI4NSwgNzg2MDMsIDc4NjEyLCA3ODYxMywgNjU5NDIsIDQ5MiwgODY4NSwgMCwgOTgzNzUwLCAwLCAKKyAgICA3ODYyMiwgNDM3MTIsIDI1ODIsIDExNDcwLCA2NDUzOCwgNzQ0NCwgNzg2MTUsIDc4NjE2LCAyMjk3LCAwLCA3MzgzNywgCisgICAgMTE5ODIzLCAyNTI3LCAxMTk4MjQsIDE5NywgMjc5OSwgOTI1OTQsIDQxOTQ0LCAxMjAyNzYsIDk5MzMsIDAsIDY2NTE1LCAKKyAgICA3NjcsIDU1MjQsIDcwMjgsIDAsIDAsIDExOTgyNywgMTE5ODE3LCAxMTk4MjgsIDc4NjMzLCAxMDg5NiwgMCwgMTc5OSwgCisgICAgMTIwNDk3LCA2OTcxLCA3NDMzNiwgMTI4MzQyLCAwLCA2NTM0MCwgMTE4OTc5LCA0MTU1MSwgMjQzNCwgOTQwMTgsIDAsIAorICAgIDEyMDU3OSwgMCwgNDYzMSwgMCwgMCwgNjQwNywgMCwgNjMzOCwgNDMyMTQsIDAsIDc1NzAsIDAsIDMxOTIsIDAsIDg0MTQsIAorICAgIDAsIDkzOTgzLCAwLCAwLCAwLCA5MTY0LCA2NjYxMiwgOTM5NTksIDMxNzEsIDY2MjMsIDQ5NjEsIDY4Mzk2LCA4ODYsIAorICAgIDU1MjE2LCA4NjU0LCA3ODgzMiwgOTk5MywgNzQzOTAsIDY0NjAzLCA3MDA2NiwgNjkyNDEsIDk1OTksIDc4NjI5LCA0MzA4NCwgCisgICAgNzg2MjcsIDc4NjI4LCA3ODYyNSwgMjM5OSwgNjk2OTMsIDg5OTQsIDEwOTQ0LCA0MTIwOCwgOTgzNzA0LCA0MTE2OCwgCisgICAgODE3OCwgMCwgMzM2NywgOTIzMzQsIDQyNTEwLCA3ODY0MSwgNzg2MzYsIDY4MDQsIDc4NjM0LCAxOTQ3LCAwLCAwLCAKKyAgICA5MjY4MSwgNDI3NTksIDExMDY4LCAxNzA1LCA5MzMxLCAwLCA3NDc5OCwgOTE4MSwgNjUzNTksIDAsIDgwMTcsIDExOTgzMSwgCisgICAgNjUwOTYsIDY2NzIwLCAwLCA0MzQ3NSwgMCwgNDkwOSwgMTIxMjYsIDEyODY3MywgMTIwNjk2LCA0OTA0LCA5ODMzMjUsIAogICAgIDY5NjUwLCAxMzY1LCA5MjUzLCA0Mjc1NywgNDM0MzYsIDc0NjIsIDAsIDAsIDAsIDAsIDExOTU4NywgNjQ0MTUsIDAsIDAsIAotICAgIDUzOTgsIDAsIDEyNzM4NiwgMCwgMCwgMCwgMTE5MDE1LCAwLCAwLCA5NDc2LCAwLCAwLCAxMjc2MywgMCwgMzYyOSwgMCwgCi0gICAgMTMwMDUsIDAsIDM2MjgsIDAsIDAsIDkyNTAyLCAzNDY5LCA0MjEwNywgNDIxMTYsIDkxNzU3OCwgNjQ4MDksIDI5MjgsIAotICAgIDQ5MDUsIDk4NTMsIDg1MSwgOTA0MCwgMCwgNjQ2NjUsIDQzMDg2LCA5MTE0LCAwLCA0MjU4MywgOTMxNSwgNDgyMiwgNDkwNiwgCi0gICAgMzg1MiwgMjg0NywgMTE5ODIxLCAzMjM2LCAxMTMxNywgMTI1MSwgNzc3NywgNDE4NTIsIDExNDEwLCAxMDk2NCwgMCwgCi0gICAgNDMyMjIsIDEyNjQ2LCAxMjAyNjksIDEwMjU5LCA5ODY1LCA2NTgyMSwgMCwgNjAxOCwgOTIyOTAsIDAsIDEyMjc2LCAwLCAKLSAgICA2ODM3MiwgMCwgOTIyNTksIDExOTI0NCwgMCwgMCwgMTA0NjcsIDAsIDI0NDMsIDEwOTE4LCA3ODIxNywgMTE5ODI1LCAKLSAgICAxMDAxLCA5MjQxLCAxOTI3LCAwLCAwLCA3Mzk4NywgMTI3ODg1LCAwLCAwLCAxMTg4MjgsIDEyMDI3MSwgNjU2NzgsIAotICAgIDEyODY3LCAwLCA4MjYwLCA3Nzk0NSwgNzUxOSwgMTE1MDUsIDEyMjc0LCA4OTA0LCA1MTgsIDY1ODU3LCAwLCAxMjg2NzQsIAotICAgIDEzMjA0LCA0Mzg3LCA4NTcsIDAsIDY1MzY5LCAwLCA5MjMzNiwgNDMxMjUsIDEyMDU5MiwgMCwgMCwgMCwgMCwgNTEzNiwgCi0gICAgMTk2OCwgMCwgMTk1MDIzLCAxMzM3LCA2NDk2NywgMTYyOSwgMCwgNzk2LCA2NjUwNiwgMCwgNzQxMjMsIDEyODc3LCAwLCAKLSAgICA0MjMxNCwgNDMzODgsIDAsIDc0NDAzLCA2MTIwLCA0NzgsIDY1MTUxLCA2ODEyOCwgMTI4MTQ3LCA0MzA4MiwgNjAxNiwgMCwgCi0gICAgNDIyODQsIDEyODUwNywgNDI3NiwgMTIwNiwgMzYxOSwgNDE2MzgsIDY5NjkxLCAzODQzLCAxMjAxMSwgODg1MywgMzM2MSwgCi0gICAgMCwgNDkwLCAxMDcxNSwgNzU3OCwgNjgzODQsIDAsIDY1MzUwLCAxMDUzMCwgMTIzNDgsIDg2NTMsIDc0MzE0LCA0MjQzNSwgCi0gICAgNjE1NCwgOTU1MSwgNjUzNTQsIDc4NTIyLCA3ODQsIDQyMzk3LCAzMzQsIDAsIDQyNDE2LCA2NTM1NiwgNjUyNzMsIDc3OTg3LCAKLSAgICA2OTY2NiwgNDQ0MiwgMTAzNjQsIDAsIDc3OCwgNDE2MjYsIDQyNDU1LCA3OTg5LCA3NDA2MywgMzIyNywgMCwgMTI3Mjc1LCAKLSAgICA3Mzk4MywgMjkxNSwgMTE1MDIsIDQxMDIyLCA0MTcwMiwgMTAzMDksIDEyNzAzNSwgNzgzMjAsIDAsIDY5NzUsIDAsIDU0MTUsIAotICAgIDEyMTc2LCAwLCA3NDE5MywgMzQ2MiwgNjUyMTUsIDQyNjI5LCA3ODY5MSwgNzM3ODQsIDAsIDAsIDk3NTksIDAsIDc4MzI0LCAKLSAgICAxMjcyNTQsIDgxMTQsIDc4Njk4LCA3ODY5NywgNzg2OTYsIDc4Njk1LCA4NzEwLCA0MjQ5NSwgMTE4OTU2LCAwLCA0MDUxLCAKLSAgICAxMDQ2MCwgNDMzNjQsIDExODkxNywgMTM1NiwgMTIxNjEsIDQyNzEzLCAxMjg4NTcsIDEyNzI2OCwgMTYxOSwgOTcwMywgCi0gICAgNDMxNTIsIDQyNDg5LCA0MjExMiwgMCwgMTg3NSwgMTA4MDgsIDQyMTA5LCAxMjAyODQsIDQxODYwLCA2NDg2MiwgMTMzMDUsIAotICAgIDY0OTA3LCA1Mjg5LCAxMzE0NCwgMTI4NjU4LCAwLCA1NTc1LCA5Njc1LCAwLCA1OTQwLCAyMjYsIDI2NDksIDYzMzYsIDAsIAotICAgIDAsIDQzMjM2LCAzMzgyLCA0MjQ0OSwgNjQ5OCwgMTY1OCwgMTE5MzYsIDc4MjMyLCAwLCAxMTI2OSwgMTAxNTEsIDczNzU5LCAKLSAgICA0MzEwMCwgNzQ0NDksIDY1NTA4LCAwLCAwLCAwLCA4OTM1LCA5MTc5ODUsIDAsIDAsIDAsIDYxNiwgNzQ3NTMsIDY1MTc4LCAKLSAgICA0Njg0LCA3ODcwMSwgMTE5NjUzLCAwLCAwLCAwLCA2MDQ4LCA3NDQ2MCwgNDIxMTAsIDczOTY1LCAxMDg3MCwgODU1NywgCi0gICAgMTEwNTQsIDY4NjY0LCAxMTkwNDksIDk2ODEsIDQ0NzUsIDAsIDQxMTQyLCAyMTAwLCAwLCAxMjA3MzEsIDYwMzUsIDAsIAotICAgIDc2NTEsIDEwMjk2LCA2NDQ0MywgMCwgMCwgOTE3OTg3LCAwLCAxMTg5NjYsIDc0MTQ0LCA0MDk5NywgMCwgMTAzOTIsIAotICAgIDEwMzI4LCA0MDk5OCwgNDM0NjIsIDc0NDg4LCAwLCA5ODAwLCA4OTc5LCAwLCAxMTkxMzEsIDQxMDAwLCAwLCAxMTkyMzksIAotICAgIDY0ODcsIDMzODYsIDAsIDEwMzQ0LCAwLCA2NTI5OSwgNTM5NCwgNDMyNDYsIDc4MjQzLCAxMDIyMCwgNjY1MDUsIDQxMjAwLCAKLSAgICAxMjg1ODMsIDQ0MjUsIDAsIDAsIDAsIDQzMDc0LCA3Mzc5OSwgMCwgNzgxNDcsIDAsIDEyMTczLCA3ODU0NSwgMCwgMCwgCi0gICAgNjUzMzgsIDAsIDAsIDExOTU4MiwgNDQ3NCwgMCwgNDMwOTMsIDAsIDE1ODcsIDAsIDEyNzM3MiwgNjQ0NzUsIDEyODA5OCwgCi0gICAgMTM2OSwgMCwgOTk1OSwgNzkyNywgMCwgNDU2MCwgMCwgMCwgOTIyNzcsIDAsIDY0OTQ4LCA0NDMwLCA3NDM0NywgNDI2MDEsIAotICAgIDQ1MTQsIDY2NDM0LCAwLCA4MTk0LCA2NTQ2MiwgMTA2MjYsIDEwOTY1LCAwLCA4ODkzLCAwLCAxMjU0MiwgMCwgNjUzNDEsIAotICAgIDAsIDY1ODI5LCA3OTI1LCAxMTk4MjIsIDEwNDc1LCAwLCAwLCAxMzUyLCAxMTA2OSwgNzcwNywgMTI3NTYwLCAwLCA2NTI3OSwgCi0gICAgMTI3MTAyLCA2ODIwNywgMTI3MTAwLCA2NTYwNSwgNjA0MCwgMTI3MDk3LCAxMDA3MSwgMCwgOTMzNiwgMTI4ODI0LCAwLCAKLSAgICA4ODk5LCA3Nzk4LCA2NDQ3NCwgNjQyNTksIDAsIDY1MTg4LCA3ODIwLCA0MzAxOCwgMCwgMCwgNzc0NiwgMTQ5MiwgNzg1NTEsIAotICAgIDEwODg0LCA3Nzk4MiwgMCwgNTEyNywgMTEyODUsIDQyNTAxLCA1NDk1LCA0MjczLCA0MzA5NSwgNDE0MjYsIDEwODQ5LCAKLSAgICA1NzMwLCAyOTk5LCA2MzQyLCA2ODYzNiwgNzQzMDQsIDM3MSwgNjQzNzMsIDYwMjMsIDE2OSwgNTQ5NywgMTE3MDgsIDAsIDAsIAotICAgIDYzMjMsIDE5NDY4NCwgODIyNCwgMCwgODkzOCwgNjA0MywgMTI3MzgsIDAsIDAsIDUzMjEsIDAsIDE5NDc5OCwgMCwgMjU4OSwgCi0gICAgNzQzMzIsIDE2ODksIDc4MDIsIDQ2ODMsIDc0MzE4LCA0MjcwNCwgMTIwMjk2LCAxMTkwNSwgMCwgMCwgMTI4NTE2LCAKLSAgICAxMjgxNjMsIDc0NTEzLCA2MDQ5LCAwLCA0MDI3LCA4MzQsIDExODk2MiwgMTgwMywgMCwgMTUwMywgMCwgMCwgMCwgNTczMSwgCi0gICAgMTM4MSwgMjM4NywgMCwgMCwgODI4OSwgNjQ1MjUsIDY1ODE3LCAyODgxLCA0MzE0MiwgMCwgOTYwMSwgMjg3OSwgOTY2OCwgCi0gICAgOTc2NiwgMCwgNTcyOSwgOTE3ODMzLCA3NDQxMCwgNjAzNiwgNjQ4ODEsIDQwMjYsIDkzNjEsIDEyNzA5MSwgMjg4NywgMCwgCi0gICAgMzUyNiwgNjI5OCwgMCwgNzc4OTcsIDEyMDA5NSwgNzg1MTksIDAsIDg1NzIsIDYwMjEsIDc3ODk2LCAxMjgyODgsIDc3ODk1LCAKKyAgICA1Mzk4LCAwLCAxMjczODYsIDkzOTUzLCAwLCAwLCAxMTkwMTUsIDAsIDAsIDk0NzYsIDAsIDk4Mzc2OCwgMTI3NjMsIAorICAgIDEyNjYwMywgMzYyOSwgMCwgMTMwMDUsIDAsIDM2MjgsIDAsIDAsIDkyNTAyLCAzNDY5LCA0MjEwNywgNDIxMTYsIDkxNzU3OCwgCisgICAgNjQ4MDksIDI5MjgsIDQ5MDUsIDk4NTMsIDg1MSwgOTA0MCwgMCwgNjQ2NjUsIDQzMDg2LCA5MTE0LCAwLCA0MjU4MywgCisgICAgOTMxNSwgNDgyMiwgNDkwNiwgMzg1MiwgMjg0NywgMTE5ODIxLCAzMjM2LCAxMTMxNywgMTI1MSwgNzc3NywgNDE4NTIsIAorICAgIDExNDEwLCAxMDk2NCwgMCwgNDMyMjIsIDEyNjQ2LCAxMjAyNjksIDEwMjU5LCA5ODY1LCA2NTgyMSwgMCwgNjAxOCwgCisgICAgOTIyOTAsIDAsIDEyMjc2LCAwLCA2ODM3MiwgMCwgOTIyNTksIDExOTI0NCwgMCwgOTgzMjI0LCAxMDQ2NywgMCwgMjQ0MywgCisgICAgMTA5MTgsIDc4MjE3LCAxMTk4MjUsIDEwMDEsIDkyNDEsIDE5MjcsIDAsIDAsIDczOTg3LCAxMjc4ODUsIDAsIDAsIAorICAgIDExODgyOCwgMTIwMjcxLCA2NTY3OCwgMTI4NjcsIDAsIDgyNjAsIDc3OTQ1LCA3NTE5LCAxMTUwNSwgMTIyNzQsIDg5MDQsIAorICAgIDUxOCwgNjU4NTcsIDAsIDEyODY3NCwgMTMyMDQsIDQzODcsIDg1NywgMCwgNjUzNjksIDAsIDkyMzM2LCA0MzEyNSwgCisgICAgMTIwNTkyLCAwLCAwLCAwLCAwLCA1MTM2LCAxOTY4LCA5ODMwNDEsIDEyNjYyNywgMTMzNywgNjQ5NjcsIDE2MjksIDAsIAorICAgIDc5NiwgNjY1MDYsIDAsIDc0MTIzLCAxMjg3NywgMTIwNjQ5LCA0MjMxNCwgNDMzODgsIDAsIDc0NDAzLCA2MTIwLCA0NzgsIAorICAgIDY1MTUxLCA2ODEyOCwgMTI4MTQ3LCA0MzA4MiwgNjAxNiwgMCwgNDIyODQsIDEyODUwNywgNDI3NiwgMTIwNiwgMzYxOSwgCisgICAgNDE2MzgsIDY5NjkxLCAzODQzLCAxMjAxMSwgODg1MywgMzM2MSwgMCwgNDkwLCAxMDcxNSwgNzU3OCwgNjgzODQsIDAsIAorICAgIDY1MzUwLCAxMDUzMCwgMTIzNDgsIDg2NTMsIDc0MzE0LCA0MjQzNSwgNjE1NCwgOTU1MSwgNjUzNTQsIDc4NTIyLCA3ODQsIAorICAgIDQyMzk3LCAzMzQsIDAsIDQyNDE2LCA2NTM1NiwgNjUyNzMsIDc3OTg3LCA2OTY2NiwgNDQ0MiwgMTAzNjQsIDAsIDc3OCwgCisgICAgNDE2MjYsIDQyNDU1LCA3OTg5LCA3NDA2MywgMzIyNywgNjk5MDcsIDEyNzI3NSwgNzM5ODMsIDI5MTUsIDExNTAyLCAKKyAgICA0MTAyMiwgNDE3MDIsIDEwMzA5LCAxMjcwMzUsIDc4MzIwLCAwLCA2OTc1LCAwLCA1NDE1LCAxMjE3NiwgMCwgNzQxOTMsIAorICAgIDM0NjIsIDY1MjE1LCA0MjYyOSwgNzg2OTEsIDczNzg0LCAwLCAwLCA5NzU5LCAwLCA3MDA1NywgMTI3MjU0LCA4MTE0LCAKKyAgICA3ODY5OCwgNzg2OTcsIDc4Njk2LCA3ODY5NSwgODcxMCwgNDI0OTUsIDExODk1NiwgMCwgNDA1MSwgMTA0NjAsIDQzMzY0LCAKKyAgICAxMTg5MTcsIDEzNTYsIDEyMTYxLCA0MjcxMywgMTI4ODU3LCAxMjcyNjgsIDE2MTksIDk3MDMsIDQzMTUyLCA0MjQ4OSwgCisgICAgNDIxMTIsIDEyNzk3OCwgMTg3NSwgMTA4MDgsIDQyMTA5LCAxMjAyODQsIDQxODYwLCA2NDg2MiwgMTMzMDUsIDY0OTA3LCAKKyAgICA1Mjg5LCAxMzE0NCwgMTI4NjU4LCAwLCA1NTc1LCA5Njc1LCAwLCA1OTQwLCAyMjYsIDI2NDksIDYzMzYsIDk4MzI2OSwgCisgICAgMTE5ODMwLCA0MzIzNiwgMzM4MiwgNDI0NDksIDY0OTgsIDE2NTgsIDExOTM2LCA3ODIzMiwgMCwgMTEyNjksIDEwMTUxLCAKKyAgICA3Mzc1OSwgNDMxMDAsIDY5ODg4LCA2NTUwOCwgMCwgMCwgMCwgODkzNSwgOTE3OTg1LCAwLCAwLCAwLCA2MTYsIDc0NzUzLCAKKyAgICA2NTE3OCwgNDY4NCwgNzg3MDEsIDExOTY1MywgMCwgMTI2NTUxLCAwLCA2MDQ4LCA3NDQ2MCwgNDIxMTAsIDczOTY1LCAKKyAgICAxMDg3MCwgODU1NywgMTEwNTQsIDY4NjY0LCAxMTkwNDksIDk2ODEsIDQ0NzUsIDAsIDQxMTQyLCAyMTAwLCAwLCAxMjA3MzEsIAorICAgIDYwMzUsIDAsIDc2NTEsIDEwMjk2LCA2NDQ0MywgMCwgOTgzMjg3LCA5MTc5ODcsIDAsIDExODk2NiwgNzQxNDQsIDQwOTk3LCAKKyAgICAwLCAxMDM5MiwgMTAzMjgsIDQwOTk4LCA0MzQ2MiwgNzQ0ODgsIDAsIDk4MDAsIDg5NzksIDAsIDEzMzA3LCA0MTAwMCwgMCwgCisgICAgMTE5MjM5LCA2NDg3LCAzMzg2LCAwLCAxMDM0NCwgMCwgNjUyOTksIDUzOTQsIDQzMjQ2LCA3ODI0MywgMTAyMjAsIDY2NTA1LCAKKyAgICA0MTIwMCwgMTI4NTgzLCA0NDI1LCAwLCAwLCAwLCA0MzA3NCwgNzM3OTksIDk4MzIwMCwgNzgxNDcsIDAsIDEyMTczLCAKKyAgICA3ODU0NSwgMCwgMTI3MDExLCA2NTMzOCwgMCwgMCwgMTE5NTgyLCA0NDc0LCAwLCA0MzA5MywgMTI4NjQ0LCAxNTg3LCAwLCAKKyAgICAxMjczNzIsIDY0NDc1LCAxMjgwOTgsIDEzNjksIDk4MzY2MywgOTk1OSwgNzkyNywgMCwgNDU2MCwgMCwgMCwgOTIyNzcsIDAsIAorICAgIDY0OTQ4LCA0NDMwLCA3NDM0NywgNDI2MDEsIDQ1MTQsIDY2NDM0LCA5Mzk1NSwgODE5NCwgNjU0NjIsIDEwNjI2LCAxMDk2NSwgCisgICAgMCwgODg5MywgOTgzMjkzLCAxMjU0MiwgMCwgNjUzNDEsIDAsIDY1ODI5LCA3OTI1LCAxMTk4MjIsIDEwNDc1LCAwLCAwLCAKKyAgICAxMzUyLCAxMTA2OSwgNzcwNywgMTI3NTYwLCAxMjY0ODYsIDY1Mjc5LCAxMjcxMDIsIDY4MjA3LCAxMjcxMDAsIDcwOTksIAorICAgIDYwNDAsIDEyNzA5NywgMTAwNzEsIDAsIDkzMzYsIDQzNzUwLCAwLCA4ODk5LCA3Nzk4LCA2NDQ3NCwgNjQyNTksIDY5ODczLCAKKyAgICA2NTE4OCwgNzgyMCwgNDMwMTgsIDEyNzA4MiwgMCwgNzc0NiwgMTQ5MiwgNzg1NTEsIDEwODg0LCA3Nzk4MiwgMCwgNTEyNywgCisgICAgMTEyODUsIDQyNTAxLCA1NDk1LCA0MjczLCA0MzA5NSwgNDE0MjYsIDEwODQ5LCA1NzMwLCAyOTk5LCA2MzQyLCA2ODYzNiwgCisgICAgNzQzMDQsIDM3MSwgNjQzNzMsIDYwMjMsIDE2OSwgNTQ5NywgMTE3MDgsIDAsIDAsIDYzMjMsIDE5NDY4NCwgODIyNCwgMCwgCisgICAgODkzOCwgNjA0MywgMTI3MzgsIDAsIDk4MzA3NiwgNTMyMSwgMCwgMTk0Nzk4LCAwLCAyNTg5LCA3NDMzMiwgMTY4OSwgCisgICAgNzgwMiwgNDY4MywgNzQzMTgsIDQyNzA0LCAxMjAyOTYsIDExOTA1LCAwLCAwLCAxMjg1MTYsIDEyODE2MywgNzQ1MTMsIAorICAgIDYwNDksIDAsIDQwMjcsIDgzNCwgMTE4OTYyLCAxODAzLCAwLCAxNTAzLCAwLCAwLCA3MTMxMiwgNTczMSwgMTM4MSwgMjM4NywgCisgICAgMCwgMCwgODI4OSwgNjQ1MjUsIDY1ODE3LCAyODgxLCA0MzE0MiwgMCwgOTYwMSwgMjg3OSwgOTY2OCwgOTc2NiwgMCwgCisgICAgNTcyOSwgOTE3ODMzLCA3NDQxMCwgNjAzNiwgNjQ4ODEsIDQwMjYsIDkzNjEsIDEyNzA5MSwgMjg4NywgMCwgMzUyNiwgCisgICAgNjI5OCwgMCwgNzc4OTcsIDEyMDA5NSwgNzg1MTksIDAsIDg1NzIsIDYwMjEsIDc3ODk2LCAxMjgyODgsIDc3ODk1LCAKICAgICA0MzE1NSwgMCwgMTE5ODQ5LCAzMTQ2LCAxMDk1OSwgOTQ4MywgMCwgNzc4OTMsIDEwOTgxLCAxNjYsIDkxNzg0MSwgODYzNSwgCi0gICAgMCwgMTA2MjMsIDQwOCwgMTE5MDU4LCAxMjc1MDcsIDEzMjk4LCAwLCA3NDI2LCA0MTY0MSwgMTI3MTcsIDAsIDc2MDcsIAotICAgIDEwNjM5LCA2NjcxMywgMCwgMCwgNDE2NDMsIDc0MTM0LCAwLCA4NzEzLCA0MTY0MCwgMTAyMjEsIDQxNjQ1LCA2NjcxMiwgCi0gICAgNjY0NSwgNjQ2LCA2NjcyNiwgNjY3MTEsIDQyMTI5LCAwLCA3NzkwMSwgMzQ3MiwgODY5NywgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNTgwOSwgMTk1MCwgMTE5MzU2LCA5MjQzMiwgNzQ1NzIsIDAsIDQyMTM2LCAwLCAwLCAwLCAwLCAzMjQ3LCAxMTk4NTQsIAotICAgIDY1MDE3LCAwLCA2ODQyOCwgNjY2NjgsIDAsIDAsIDEwOTgzLCAwLCAwLCAwLCA0MTU2NywgMCwgMCwgMCwgMTk0NjI0LCAwLCAKLSAgICAwLCAwLCA4Mjg1LCAwLCA0NTA5LCAwLCA2NjQ3MSwgMTIyMTYsIDAsIDQwOTg4LCA5MjU5MiwgMCwgNDE3MjcsIDAsIAotICAgIDQyODQ4LCAyMzk2LCA5MTc3NjYsIDAsIDc0MDE4LCA5MTc1MzgsIDY0OTQwLCA3MDI3LCAzODg2LCAwLCA0MjQ1NywgCi0gICAgMTE5MDA4LCAwLCA5OTYsIDY4MTIzLCA5MTc1NzEsIDQyNDksIDAsIDkxNzU5NCwgMTE3MDcsIDgyMjIsIDAsIDc5MzksIAotICAgIDkyNDU0LCA5MjQ2MCwgMTI3ODAxLCA5MTc1OTIsIDEyODM1OSwgODUzNCwgMTI3MTU0LCA0MDk4MywgMCwgMCwgMCwgNzIwMSwgCi0gICAgMTI1NjEsIDAsIDQyMzcxLCAxMjU1OCwgMCwgOTE3NTQ5LCAxMDA1MiwgNDA5ODIsIDAsIDAsIDE0ODgsIDAsIDAsIDAsIAotICAgIDkxNzU1OSwgMCwgMCwgMTU2MywgMTI4MDM0LCA5NjE5LCAwLCAwLCAwLCAxMjc4NzIsIDAsIDU4MDMsIDc3OTcsIDYwNzAsIAotICAgIDEwMDA2LCAwLCAyOTIyLCA2MDgyLCAwLCA2NTAwOSwgMCwgMTI1NjcsIDEyODcwMywgMCwgNDE0MTIsIDAsIDAsIDM2MDcsIAotICAgIDkyMDAsIDEwMDQ2LCA5NjEyLCA0MjE1MywgODIxOCwgOTQ4NSwgMCwgMjAzMiwgNzgzNTQsIDAsIDAsIDAsIDAsIDAsIAotICAgIDQzMDg1LCA2MDU3LCA1MDgsIDEyODU4NSwgMTI4MDE1LCAxMjAyNjUsIDAsIDkyNDA1LCAwLCAwLCA2MzgsIDYwODMsIAotICAgIDExOTA3MiwgMCwgMCwgMjMwNSwgNzgzNDgsIDAsIDAsIDYwNTYsIDY2NTksIDAsIDAsIDYwODUsIDAsIDAsIDM5MTUsIAotICAgIDQxNjM0LCAwLCA0MTYzOSwgNjM5MTIsIDExOTQxLCAwLCA0MDI4LCAxNzg3LCA0MjE4MCwgNDMwOTYsIDkyNjkwLCAzMjQ5LCAKLSAgICAxNzY4LCAwLCAxMjMyOCwgNTAxLCAxMjcwNzQsIDEwNjAxLCAwLCA1ODMsIDAsIDQxOTc3LCAwLCA2NjAwNCwgMTE5MzUwLCAKLSAgICA2NTA1LCA3NDAxMCwgMCwgMTMwNjQsIDU1MjY3LCAxMjA4MTAsIDY1MDAsIDU1MjYsIDY1MDQ5LCAwLCA3Mzc2NCwgMCwgCi0gICAgOTIzNzYsIDEyNzQ1LCA5Njc4LCAwLCAxMjA1ODcsIDk4NjksIDEyODgxNSwgMTc3MSwgMCwgODkzNiwgMCwgMCwgNDIwOCwgCi0gICAgNzgzNDEsIDExOTExNSwgNzgzNDIsIDAsIDAsIDc0MTAxLCAwLCAxMTc2MiwgMCwgOTI0MjIsIDc3OTk3LCAxMjg3ODgsIAotICAgIDY2NDc1LCAwLCA1MDI3LCA3ODE3MiwgMTI4ODc4LCAwLCA1MDY5LCA3Mzg2MiwgNTAyOCwgOTg5NywgMCwgNzM3MzksIAotICAgIDUwMjYsIDAsIDY4NjM5LCA2MzMxLCAxMDA3OSwgODkzMSwgMCwgMTQxNSwgODg2NiwgNDE5MDEsIDc0NzkwLCA3ODEzOCwgCi0gICAgMTE5MzYxLCAwLCA0MzEwNiwgNTAyOSwgNjUzMDksIDE1ODAsIDM1OTgsIDY4NDI0LCA0MTA3MCwgNzc5MDMsIDAsIDM0NDAsIAotICAgIDc4MjE1LCAxNTYyLCAxMjg2NTYsIDEyNzE3NSwgMTE5MzU4LCAxNzE2LCAwLCAxMDYwMCwgOTE3ODY3LCA2MjAsIDQxMDAxLCAKLSAgICA2MDI4LCAwLCA0Mjg5MiwgMCwgNzQ4MjIsIDUwMjQsIDEyMDgyOSwgNDEwMDMsIDAsIDUwMjUsIDEyODI2OSwgMCwgMCwgCi0gICAgMTE5MzI4LCAwLCA2NTU1NywgMCwgNzQ1NDEsIDAsIDExNTk5LCAxMjgyMDksIDExNjAyLCA2MjQzLCAxMTU3NCwgMTE1ODEsIAotICAgIDExNTk3LCAxMTU5OCwgNjI1MywgNjEwNSwgMTE1ODQsIDc0MTk1LCAxMTU2OSwgNjUyNzUsIDg5MDYsIDEyNzA5NiwgNTc1NSwgCi0gICAgMjYzNiwgMCwgMTA4MTUsIDExNjE5LCA3ODcxNywgNDE1NDAsIDc4MTUsIDExNjE2LCA2OTc5LCAxMjA4MCwgNzcyMSwgCi0gICAgMTE2MDQsIDc4NjksIDE1OTIsIDAsIDQyMTUyLCA3ODQ5OCwgNDEwNDgsIDAsIDgyOSwgMCwgOTI0MDYsIDE5OTUwLCAwLCAKLSAgICAxMjgyMTcsIDY2MTYsIDAsIDExODg3NSwgMTA5NTMsIDM5MSwgMCwgNjk3ODUsIDQ4MiwgNDIyOTYsIDExNTg4LCAwLCAKLSAgICA0MzYwNiwgMCwgNjgzOTcsIDY2MzcwLCA3NDUwNiwgNDIzMzUsIDAsIDAsIDAsIDc1MzgsIDUzMTUsIDEyMDY0NCwgNDI0OTEsIAotICAgIDAsIDQyMDYxLCAxMjgwODgsIDQ1NzYsIDAsIDY4NDE3LCA0MzgwOSwgNDI3NywgMCwgNDAzOSwgNjQ0NzIsIDQyMzM4LCAKLSAgICAzNjgsIDQyMDU4LCAzOTYwLCAxMTA0MywgMTEzMzcsIDc4MjA5LCA5MTc4MjAsIDYzOTg5LCAzOTU4LCAxMjEzMiwgMTg0OSwgCi0gICAgMCwgOTkyMSwgNDI0NTEsIDQyNTMsIDQxMTQ3LCA0MjA2NCwgMTE5NTksIDQyNDA0LCA0MTE2MCwgMCwgMzYxOCwgNzgzMzgsIAotICAgIDAsIDQzMzAwLCA1MTU2LCA5MjYyOSwgMCwgOTI5LCA2ODI3LCA0MjAzNSwgNDI0MzcsIDE1NTUsIDAsIDg2OTEsIDY2NDM1LCAKLSAgICAwLCA0MTY2MiwgMCwgMCwgMCwgMCwgMCwgNDU3OCwgNjQ1MTMsIDQxNjY0LCAwLCA0MjU3OCwgMTI4Nzk0LCA0MTY2MSwgCi0gICAgNzg3MTUsIDQzMjY3LCA5MzU2LCAwLCAwLCAwLCAxMjg2LCAxMDE2NiwgMCwgMCwgNjQ3MDcsIDAsIDQyNDc2LCA3NzMwLCAwLCAKLSAgICAxMjg1MjIsIDQyNDgzLCAwLCAwLCA0MjMyNCwgNDIyOTEsIDEwMDIwLCA0MzM1OSwgMCwgNjY0MSwgNTI1LCA0MTYyNywgCi0gICAgOTE3OTIzLCA4NzYzLCAxMjgzMDQsIDQxNjI4LCA1MzMsIDExOTMxLCA2NTIyNSwgODMyMSwgNDI1MDQsIDQyNTgxLCAwLCAKLSAgICA2OTE1LCA0MjMxMCwgNDM3NywgODU1OSwgMCwgMTIwMjM0LCAwLCAxMzE5MywgNjQzNTAsIDExNjY2LCA4Njc5LCA0MTkyNCwgCi0gICAgMTU3NiwgNzczNSwgOTIzOTgsIDAsIDczODQwLCAwLCAxMTM3NCwgNzgwNDMsIDEwODg5LCA0MzQ2MSwgNzc1NywgNDI0NjIsIAotICAgIDEyMDIyNiwgMTAwMjksIDY2NDkzLCAyNzE4LCA0MTY4LCA3Mzg0MiwgMTMzMDgsIDEyMDExMiwgMCwgMTE3OSwgNDQ0MCwgMCwgCi0gICAgNzc5NDgsIDM2MywgMTEwMTUsIDc3OTQ3LCA3Nzk0NCwgNjQyOTYsIDEyNzA5MCwgNjY2OTIsIDEyMDgyNiwgMCwgNjY0OTIsIAotICAgIDY1OTMsIDY0NjI1LCA0MTk2MywgOTIxNzcsIDExOTMyOSwgMCwgMTAwMTMsIDY0NDM0LCA5MjUyMCwgMTI3MDk1LCA5NDkyLCAKLSAgICAxMTc4MiwgNjQzODIsIDEyODMzLCA3NzgzMCwgMCwgMTI5NywgNDE2MzAsIDYzMCwgMTI3MDk0LCAwLCAxMjA3NzQsIAotICAgIDkyNDY1LCAxMDQzLCA0MzY1MiwgNjYyMjMsIDEwMDkwLCAwLCAxMjg2NjQsIDMxMywgOTE3NTYzLCA0MTg4MSwgMCwgCi0gICAgNDIzMTEsIDc0NDUsIDAsIDU3NTAsIDEwNzU5LCA5NDE5LCA1NTIyMiwgOTQwNSwgMTEyNjgsIDQyOTE5LCA5Mzk4LCA4NTI2LCAKLSAgICA5Mzk5LCA5NDIyLCAwLCA2NjQ5NSwgMCwgMCwgMTI3MjM5LCA0MTcxOCwgMTA3MDcsIDE2MDMsIDAsIDExOTAwMywgMCwgCi0gICAgNjMxLCA3Nzk1MiwgNjk3MDMsIDEzMTYxLCA2NTI3MiwgMCwgMTA1NDYsIDc0MjEwLCA3ODEwMSwgMTE2MDAsIDc3OTYxLCAKLSAgICAyNzk3LCA3MzgyMSwgNDI0MjcsIDMwNiwgNzE0LCAzMDU4LCA0MjM4MSwgNzc5NjIsIDEyNzA4MCwgMTIzNTEsIDQyMzk1LCAKLSAgICAwLCAxMTYwNywgMCwgNDIyODIsIDc3OTcxLCA3Nzk2NywgOTE1NywgNzM3NjUsIDY2MzY0LCA0MjQzMywgNzc5NjQsIDc2MDMsIAotICAgIDEyODAzLCAxODAsIDQyMTQxLCAwLCAxMjA2MTIsIDY2NDk0LCAxMjY3NCwgODI0NCwgMzYyLCA5MjQzOSwgMCwgODAzNywgCi0gICAgNDM3NzcsIDExNTM1LCAwLCA3NDg0NSwgNTE4NSwgNzE2NSwgNTUyMSwgMTAzMzQsIDIwOTMsIDc3OTgzLCAxMDMwMiwgCi0gICAgMTI4MTEyLCAxMDEwNCwgMTAyNywgNTE4MSwgMCwgMCwgMTA1MjMsIDE0NDYsIDQyMzIwLCA0MTY0NiwgOTkxLCA1MTg5LCAKLSAgICA0MjQ3MiwgNDE2NDcsIDEyMDEwNSwgMTcyMiwgNTU4MSwgNzc5NzksIDM0MDUsIDAsIDE5NDY0NCwgNTUyMywgMCwgNDI2MjAsIAotICAgIDkyNDQ3LCAwLCA5NTQ5LCAwLCAxMDU0OSwgNTUyODIsIDk2NjEsIDQzNjgyLCAwLCA3NzkxMCwgMTIwMDI2LCA3ODcwOCwgMCwgCi0gICAgNzc5MTEsIDAsIDQxOTkxLCAwLCAwLCA3NjMwLCA5ODQ2LCA3Njg0LCAxMDM1MCwgMCwgMTE3NCwgNzc5ODEsIDQyNzMzLCAKLSAgICA3Nzk3OCwgNzc5ODAsIDY2NDg1LCA3Nzk3NywgNDIyNzcsIDc3OTc0LCA0MjQ1NiwgNjU2NjcsIDEyNzAzNywgMTIzMzAsIAotICAgIDEyODI3MiwgMCwgNDI0MTcsIDQyMzgzLCAwLCA0MTM0NCwgNjI5MywgMCwgNjYyNTIsIDc3OTg0LCA3NDQ0MywgMCwgCi0gICAgMTAyMDksIDgzMTMsIDQxOTUsIDc0NDM1LCAxMzE2LCA2NjY5MCwgMTIwMDMyLCA2MzMyLCA2NDg5NCwgMCwgNjU4NzEsIAotICAgIDc4MDYwLCAxNzM2LCAwLCAzOTAxLCAxMjIyOCwgMTIwMTUxLCA2NTIwMCwgMzM4MywgMTA0NDYsIDc4ODQxLCA2OTMsIAotICAgIDkxMzAsIDMxNCwgNjQxNDksIDQyNDIwLCAxMTk0OSwgMCwgMTIwMTUyLCAxMTAyNiwgMCwgNTMzMiwgNjk0MCwgNjQxNTQsIAotICAgIDEyNjM1LCAxMjcwMDcsIDQyNzA2LCAxNzUxLCAyNzMsIDgxNjUsIDEzMTY2LCAxMjA3NjMsIDc4ODQwLCAwLCAxMjgyNCwgMCwgCi0gICAgNDUyOCwgNTMyMCwgNjMwMSwgNDM2NjIsIDYxMzMsIDkzMzksIDk0NjMsIDQyMzQ2LCAxMDkyMiwgNjQ1NjAsIDM3NTcsIDAsIAotICAgIDAsIDAsIDY1ODY5LCA3Mzc2MCwgMjU2OSwgMCwgMjMyNiwgNjU3NDAsIDI1NjUsIDQyNDU5LCA3NTk2LCA3OTIxLCAwLCAKLSAgICA3NDA5NSwgMTI3OTgxLCA0MTg0OCwgMjU2NywgNjYwMDYsIDAsIDQwNDQsIDkyNjQ2LCAwLCAxMjIzMywgMCwgMTAyMywgCi0gICAgNDc0LCAwLCAxMTk4MTgsIDAsIDAsIDQyNDg3LCA2NTU1NiwgMCwgMCwgNDIyOTUsIDAsIDAsIDAsIDkyNTE4LCA5ODM1LCAKLSAgICA2NjQ5OSwgMCwgNTQxNywgMTIyNzUsIDEwODk1LCAwLCAyNzQsIDAsIDE4NTgsIDAsIDAsIDU1MjUxLCAxMDExOCwgMzEzMywgCi0gICAgMTI4MDA4LCA3Mzc5NSwgMCwgOTYxMCwgODA2OCwgODE5NywgMCwgNjk5LCAwLCA0MTY2NSwgNTg2OCwgMCwgOTI2OTUsIAotICAgIDQyMTgyLCA3NTgxLCAxOTk0MCwgNDM2NjgsIDQxNjY3LCAxMjgwNTcsIDAsIDE5MjMsIDY1NTgzLCA2NTgwMiwgMCwgCi0gICAgNjQ1OTcsIDQzNDQ0LCAxMTkxODQsIDkyMTk3LCAwLCA2NDY0LCA3MDM2LCAyOTk2LCAxOTM3LCAwLCAwLCA0MTgzNSwgCi0gICAgNDA0NywgNDE4NDIsIDAsIDY0MTA3LCAwLCAwLCAxMTAxNywgMCwgMCwgMjkzLCA3Nzk2NiwgOTIxNjksIDY0NzkxLCAKLSAgICA0MTgyNywgNDI0NjYsIDQzNDIyLCAxMDU3OSwgODU2MCwgMCwgNjU0MTMsIDc3OTYzLCA0ODAzLCAxMjk2NCwgMTczOSwgCi0gICAgMTk0MSwgMzkwMCwgMCwgMTcxMywgNzc5NjksIDAsIDczOTU3LCAxMTQwNywgNDI0NDEsIDQxOTcxLCA2Mjk3LCAxMjAwOTgsIAotICAgIDY0MTA1LCAxMjgwODAsIDQyNDgxLCAxMTcxNiwgNjY0NzMsIDcxNzksIDQyMjg5LCAwLCA2NDEwMywgOTY5LCAwLCA5MzUyLCAKLSAgICAwLCA2MTY1LCA2NDEwMCwgMCwgNjYzMiwgNzM4NjEsIDQyNDAyLCA3NDMyNywgNzgwNiwgMCwgODkxNCwgMCwgMCwgMzE4MywgCi0gICAgMTQzNSwgNjQ4NzYsIDI5NjksIDYwNDYsIDY0NDQxLCA2MjA4LCA2Nzg0OSwgNTc0NiwgNzM3NDksIDAsIDY0NDE2LCAKLSAgICA0MjQyMiwgMCwgMCwgNzA4MiwgNzM3NzUsIDMzOCwgNTA1OSwgMTk0NzE5LCAwLCA0MjMyOCwgMTA3NjcsIDAsIDgxMTUsIDAsIAotICAgIDc0NzU4LCAwLCA4MjI3LCAyMDczLCAxMjE4LCAwLCAwLCA2NTg0OCwgMCwgMCwgMCwgMCwgMTI2OTg3LCA0NDg2LCAwLCAwLCAKLSAgICAwLCAxMDkyNSwgMCwgMCwgMCwgMCwgNDIzMDksIDEwMjU3LCA2NTE5MSwgMTAyNzMsIDAsIDEwMzA1LCA0MjQ2MSwgMCwgCi0gICAgNDIzNDksIDg4MzIsIDc4MDUxLCA2NDEyNywgMTA2NDQsIDQyNjYyLCA3ODgyOCwgNDIyNzgsIDc0NDUxLCAxMjY5ODgsIAotICAgIDkxNzg1NywgNzc5NCwgMCwgNDI0MjksIDYzNzcsIDQyMzE2LCAxMTkwMjYsIDM2NjksIDM5NjgsIDQyNDY4LCAwLCA2OTY1OCwgCi0gICAgMCwgNjU0MDIsIDExOTU4MSwgMCwgMCwgNjQ5MzMsIDAsIDQxOTYwLCA2Njk5LCAwLCAwLCAxMjgzNTQsIDY4MjMsIDQyMzkxLCAKLSAgICAxNTg4LCA2NTQwMCwgODQwOSwgNzgyMjMsIDE5OTY3LCA2NTM5OCwgNzg3LCAwLCA5MTc5MzksIDEyNzc0NCwgNjExNSwgCi0gICAgMjA3OCwgNDE2NTQsIDQyNDgwLCAwLCA5MjY1MCwgNDE2NTUsIDY1NDAxLCA0Mzk3NSwgMCwgMCwgMCwgNjQ0LCA2NTUwMCwgCi0gICAgNDE2NTcsIDEwNzc4LCAzNjU5LCA5NTMzLCAxODQsIDE1NTMsIDEzMTA3LCA2NTQ4NCwgNjk2NDgsIDEwNTAyLCA3NDQ1NywgCi0gICAgMCwgMCwgNDE1NTQsIDAsIDgyMjAsIDkxNzk0MywgNDE1NTcsIDAsIDAsIDExMDcwLCAxMTkyMjEsIDUxNTcsIDQwMjAsIAotICAgIDczODU4LCA0MTU1NSwgOTUxNCwgNjQ4MTgsIDY1MTAzLCA2NDY0MSwgNjQzMDMsIDc4MTMxLCA3NTIwLCAwLCA3NDM3NywgCi0gICAgMTEwMjksIDY2NjUxLCAwLCAwLCAxMTg5MzAsIDY0NTI3LCAwLCA3ODc3LCA3MzgwMywgMCwgMTI3MzQ4LCAxMjAwOTYsIAotICAgIDc0NjAyLCA5OTU1LCAxMTk1NTcsIDQwNTUsIDQyODE3LCAwLCA2NTIxMiwgMTE3MTUsIDEyMTkwLCAxMjMxOSwgNzg2MzAsIAotICAgIDAsIDc4NjMxLCA5NTAyLCA2NTQyNywgMCwgNjU0MjQsIDEyNjA3LCAwLCA5NzM0LCA2NTQyNSwgMCwgMCwgMTI3MzU3LCAKLSAgICA3ODgzNSwgOTI0MTAsIDEwMTEyLCAxMDgyNywgMCwgOTg2NiwgNzQ1MjcsIDY2Njc1LCAwLCA4NjI1LCA2NDM0NiwgMTEyOTAsIAotICAgIDEwNDc3LCAwLCA4NjM2LCAwLCA4MzE1LCA2NTQ0NCwgMCwgMCwgNzQ1OTUsIDYxNTIsIDAsIDAsIDY2MjksIDEyODI1MSwgCisgICAgOTgzNjA2LCAxMDYyMywgNDA4LCAxMTkwNTgsIDEyNzUwNywgMTMyOTgsIDAsIDc0MjYsIDQxNjQxLCAxMjcxNywgMCwgCisgICAgNzYwNywgMTA2MzksIDQzMzk2LCAwLCAwLCA0MTY0MywgNzQxMzQsIDk4MzA1NCwgODcxMywgNDE2NDAsIDEwMjIxLCAKKyAgICA0MTY0NSwgNjY3MTIsIDY2NDUsIDY0NiwgNjY3MjYsIDY2NzExLCA0MjEyOSwgOTM5OTQsIDc3OTAxLCAzNDcyLCA4Njk3LCAKKyAgICAwLCAwLCA5ODM4MDYsIDAsIDAsIDAsIDU4MDksIDE5NTAsIDExOTM1NiwgOTI0MzIsIDc0NTcyLCAwLCA0MjEzNiwgMCwgMCwgCisgICAgMCwgMCwgMzI0NywgMTE5ODU0LCA2NTAxNywgOTgzOTQ0LCA2ODQyOCwgNjY2NjgsIDAsIDAsIDEwOTgzLCAwLCAwLCAwLCAKKyAgICA0MTU2NywgMCwgMCwgMCwgMTk0NjI0LCAxMTk4NTMsIDAsIDAsIDgyODUsIDAsIDQ1MDksIDAsIDY2NDcxLCAxMjIxNiwgMCwgCisgICAgNDA5ODgsIDkyNTkyLCA3NDgwOSwgNDE3MjcsIDAsIDQyODQ4LCAyMzk2LCA5MTc3NjYsIDAsIDc0MDE4LCA5MTc1MzgsIAorICAgIDY0OTQwLCA3MDI3LCAzODg2LCAwLCA0MjQ1NywgMTE5MDA4LCAwLCA5OTYsIDY4MTIzLCA5NDA1OCwgNDI0OSwgMCwgCisgICAgOTE3NTk0LCAxMTcwNywgODIyMiwgMCwgNzkzOSwgOTI0NTQsIDkyNDYwLCAxMjc4MDEsIDkxNzU5MiwgMTI4MzU5LCA4NTM0LCAKKyAgICAxMjcxNTQsIDQwOTgzLCAwLCA5ODMyMzQsIDAsIDcyMDEsIDEyNTYxLCAwLCA0MjM3MSwgMTI1NTgsIDE1NDAsIDkxNzU0OSwgCisgICAgMTAwNTIsIDQwOTgyLCAwLCAwLCAxNDg4LCAwLCAwLCAwLCA5MTc1NTksIDAsIDAsIDE1NjMsIDEyODAzNCwgOTYxOSwgCisgICAgOTgzOTMxLCAwLCAwLCAxMjc4NzIsIDcxMzYzLCA1ODAzLCA3Nzk3LCA2MDcwLCAxMDAwNiwgMCwgMjkyMiwgNjA4MiwgMCwgCisgICAgNjUwMDksIDk4MzkzMywgMTI1NjcsIDEyODcwMywgMCwgNDE0MTIsIDAsIDAsIDM2MDcsIDkyMDAsIDEwMDQ2LCA5NjEyLCAKKyAgICA0MjE1MywgODIxOCwgOTQ4NSwgMCwgMjAzMiwgNzgzNTQsIDAsIDAsIDAsIDAsIDAsIDQzMDg1LCA2MDU3LCA1MDgsIAorICAgIDkzOTY4LCAxMjgwMTUsIDY3OTY4LCAwLCA5MjQwNSwgMCwgMCwgNjM4LCA2MDgzLCAxMTkwNzIsIDAsIDAsIDIzMDUsIAorICAgIDc4MzQ4LCA2ODA5NiwgMCwgNjA1NiwgNjY1OSwgNjc5NjksIDAsIDYwODUsIDAsIDAsIDM5MTUsIDQxNjM0LCAwLCA0MTYzOSwgCisgICAgNjM5MTIsIDExOTQxLCAwLCA0MDI4LCAxNzg3LCA0MjE4MCwgNDMwOTYsIDQzNzUzLCAzMjQ5LCAxNzY4LCA5Mzk4MiwgCisgICAgMTIzMjgsIDUwMSwgOTM5ODUsIDEwNjAxLCAwLCA1ODMsIDAsIDQxOTc3LCAwLCA2NjAwNCwgMTE5MzUwLCA2NTA1LCAKKyAgICA3NDAxMCwgMCwgMTMwNjQsIDU1MjY3LCAxMjA4MTAsIDY1MDAsIDU1MjYsIDY1MDQ5LCAwLCA3Mzc2NCwgMCwgOTIzNzYsIAorICAgIDEyNzQ1LCA5Njc4LCAwLCAxMjA1ODcsIDk4NjksIDEyODgxNSwgMTc3MSwgMCwgODkzNiwgMCwgMCwgNDIwOCwgNzgzNDEsIAorICAgIDc4NTY3LCA3ODM0MiwgMCwgOTgzNDQ4LCA3NDEwMSwgMCwgMTE3NjIsIDAsIDkyNDIyLCA3Nzk5NywgNjgwMTAsIDY2NDc1LCAKKyAgICAwLCA1MDI3LCA3ODE3MiwgMTI4ODc4LCAwLCA1MDY5LCA3Mzg2MiwgNTAyOCwgOTg5NywgMCwgNzM3MzksIDUwMjYsIAorICAgIDk4MzI0NywgNjg2MzksIDYzMzEsIDEwMDc5LCA4OTMxLCAwLCAxNDE1LCA4ODY2LCA0MTkwMSwgNzQ3OTAsIDc4MTM4LCAKKyAgICAxMTkzNjEsIDk4MzU2NCwgNDMxMDYsIDUwMjksIDY1MzA5LCAxNTgwLCAzNTk4LCA2ODQyNCwgNDEwNzAsIDc3OTAzLCAwLCAKKyAgICAzNDQwLCA3ODIxNSwgMTU2MiwgMTI4NjU2LCAxMjcxNzUsIDExOTM1OCwgMTcxNiwgOTgzNjcwLCAxMDYwMCwgOTE3ODY3LCAKKyAgICA2MjAsIDQxMDAxLCA2MDI4LCAwLCA0Mjg5MiwgMCwgNzQ4MjIsIDUwMjQsIDEyMDgyOSwgNDEwMDMsIDAsIDUwMjUsIAorICAgIDY5ODkyLCA5ODMyMDcsIDAsIDExODg4NSwgMCwgNjU1NTcsIDAsIDc0NTQxLCA5ODM1ODcsIDExNTk5LCAxMjgyMDksIAorICAgIDExNjAyLCA2MjQzLCAxMTU3NCwgMTE1ODEsIDExNTk3LCAxMTU5OCwgNjI1MywgNjEwNSwgMTE1ODQsIDc0MTk1LCAxMTU2OSwgCisgICAgNjUyNzUsIDg5MDYsIDEyNzA5NiwgNTc1NSwgMjYzNiwgMCwgMTA4MTUsIDExNjE5LCAyMzAxLCA0MTU0MCwgNzgxNSwgCisgICAgMTE2MTYsIDY5NzksIDEyMDgwLCA3NzIxLCAxMTYwNCwgNzg2OSwgMTU5MiwgMCwgNDIxNTIsIDc4NDk4LCA0MTA0OCwgCisgICAgOTE3NzYzLCA4MjksIDAsIDkyNDA2LCAxOTk1MCwgMCwgMTI2NDgyLCA2NjE2LCAwLCAxMTg4NzUsIDEwOTUzLCAzOTEsIDAsIAorICAgIDY5Nzg1LCA0ODIsIDQyMjk2LCAxMTU4OCwgMCwgNDM2MDYsIDAsIDY4Mzk3LCA2NjM3MCwgNzQ1MDYsIDQyMzM1LCAKKyAgICA5ODMxODgsIDAsIDAsIDc1MzgsIDUzMTUsIDEyMDY0NCwgNDI0OTEsIDAsIDQyMDYxLCAxMjgwODgsIDQ1NzYsIDAsIAorICAgIDY4NDE3LCA0MzgwOSwgNDI3NywgMCwgNDAzOSwgNjQ0NzIsIDQyMzM4LCAzNjgsIDQyMDU4LCAzOTYwLCAxMTA0MywgCisgICAgMTEzMzcsIDc4MjA5LCA5MTc4MjAsIDYzOTg5LCAzOTU4LCAxMjEzMiwgMTg0OSwgMCwgOTkyMSwgNDI0NTEsIDQyNTMsIAorICAgIDQxMTQ3LCA0MjA2NCwgMTE5NTksIDQyNDA0LCA0MTE2MCwgMCwgMzYxOCwgNzgzMzgsIDAsIDQzMzAwLCA1MTU2LCA5MjYyOSwgCisgICAgMCwgOTI5LCA2ODI3LCA0MjAzNSwgNDI0MzcsIDE1NTUsIDAsIDg2OTEsIDY2NDM1LCAyMjE1LCA0MTY2MiwgOTQwMTAsIDAsIAorICAgIDAsIDAsIDkzOTUyLCA0NTc4LCA2NDUxMywgNDE2NjQsIDk4MzcyNSwgNDI1NzgsIDEyODc5NCwgNDE2NjEsIDc4NzE1LCAKKyAgICA0MzI2NywgOTM1NiwgMCwgMCwgMCwgMTI4NiwgMTAxNjYsIDAsIDAsIDY0NzA3LCA5ODMxMjcsIDQyNDc2LCA3NzMwLCAKKyAgICA5ODM4NTAsIDEyODUyMiwgNDI0ODMsIDAsIDAsIDQyMzI0LCA0MjI5MSwgMTAwMjAsIDQzMzU5LCAwLCA2NjQxLCA1MjUsIAorICAgIDQxNjI3LCA5MTc5MjMsIDg3NjMsIDEyODMwNCwgNDE2MjgsIDUzMywgMTE5MzEsIDY1MjI1LCA4MzIxLCA0MjUwNCwgCisgICAgNDI1ODEsIDAsIDY5MTUsIDQyMzEwLCA0Mzc3LCA4NTU5LCAwLCA3NDM2MCwgMCwgMTMxOTMsIDY0MzUwLCAxMTY2NiwgCisgICAgODY3OSwgNDE5MjQsIDE1NzYsIDc3MzUsIDkyMzk4LCAwLCA3Mzg0MCwgOTgzMDkyLCAxMTM3NCwgNzgwNDMsIDEwODg5LCAKKyAgICA0MzQ2MSwgNzc1NywgNDI0NjIsIDEyMDIyNiwgMTAwMjksIDY2NDkzLCAyNzE4LCA0MTY4LCA3Mzg0MiwgMTMzMDgsIAorICAgIDEyMDExMiwgMCwgMTE3OSwgNDQ0MCwgMCwgNzc5NDgsIDM2MywgMTEwMTUsIDc3OTQ3LCA3Nzk0NCwgNjQyOTYsIDEyNzA5MCwgCisgICAgNjY2OTIsIDEyMDgyNiwgMCwgNjY0OTIsIDY1OTMsIDY0NjI1LCA0MTk2MywgOTIxNzcsIDExOTMyOSwgMCwgMTAwMTMsIAorICAgIDY0NDM0LCA5MjUyMCwgMTI3MDk1LCA5NDkyLCAxMTc4MiwgNjQzODIsIDEyODMzLCA3NzgzMCwgMCwgMTI5NywgNDE2MzAsIAorICAgIDYzMCwgMTI3MDk0LCAwLCAxMjA3NzQsIDkyNDY1LCAxMDQzLCA0MzY1MiwgNjYyMjMsIDEwMDkwLCAwLCAxMjg2NjQsIDMxMywgCisgICAgOTE3NTYzLCA0MTg4MSwgMCwgNDIzMTEsIDc0NDUsIDAsIDU3NTAsIDEwNzU5LCA5NDE5LCA1NTIyMiwgOTQwNSwgMTEyNjgsIAorICAgIDQyOTE5LCA5Mzk4LCA4NTI2LCA5Mzk5LCA5NDIyLCAwLCA2NjQ5NSwgMCwgMCwgMTI3MjM5LCA0MTcxOCwgMTA3MDcsIAorICAgIDE2MDMsIDAsIDExOTAwMywgMCwgNjMxLCA3Nzk1MiwgNjk3MDMsIDEzMTYxLCA2NTI3MiwgMCwgMTA1NDYsIDc0MjEwLCAKKyAgICA3ODEwMSwgMTE2MDAsIDc3OTYxLCAyNzk3LCA3MzgyMSwgNDI0MjcsIDMwNiwgNzE0LCAzMDU4LCA0MjM4MSwgNzc5NjIsIAorICAgIDEyNzA4MCwgMTIzNTEsIDQyMzk1LCAwLCAxMTYwNywgMCwgNDIyODIsIDc3OTcxLCA3Nzk2NywgOTE1NywgNzM3NjUsIAorICAgIDY2MzY0LCA0MjQzMywgNzc5NjQsIDc2MDMsIDEyODAzLCAxODAsIDQyMTQxLCAwLCAxMjA2MTIsIDY2NDk0LCAxMjY3NCwgCisgICAgODI0NCwgMzYyLCA5MjQzOSwgMCwgODAzNywgNDM3NzcsIDExNTM1LCAwLCA3NDg0NSwgNTE4NSwgNzE2NSwgNTUyMSwgCisgICAgMTAzMzQsIDIwOTMsIDcxMzI5LCAxMDMwMiwgMTI4MTEyLCAxMDEwNCwgMTAyNywgNTE4MSwgMCwgMCwgMTA1MjMsIDE0NDYsIAorICAgIDQyMzIwLCA0MTY0NiwgOTkxLCA1MTg5LCA0MjQ3MiwgNDE2NDcsIDEyMDEwNSwgMTcyMiwgNTU4MSwgNDI4OTgsIDM0MDUsIAorICAgIDAsIDE5NDY0NCwgNTUyMywgMCwgNDI2MjAsIDkyNDQ3LCA5ODM4MTAsIDk1NDksIDAsIDEwNTQ5LCA1NTI4MiwgOTY2MSwgCisgICAgNDM2ODIsIDAsIDc3OTEwLCAxMjAwMjYsIDc4NzA4LCAwLCA3NzkxMSwgMCwgNDE5OTEsIDk4Mzg4NCwgMCwgNzYzMCwgCisgICAgOTg0NiwgNzY4NCwgMTAzNTAsIDAsIDExNzQsIDc3OTgxLCA0MjczMywgNzc5NzgsIDc3OTgwLCA2NjQ4NSwgNzc5NzcsIAorICAgIDQyMjc3LCA3Nzk3NCwgNDI0NTYsIDY1NjY3LCAxMjcwMzcsIDEyMzMwLCAxMjgyNzIsIDAsIDQyNDE3LCA0MjM4MywgCisgICAgNjY2MzAsIDQxMzQ0LCA2MjkzLCAwLCA2NjI1MiwgNzc5ODQsIDc0NDQzLCAwLCAxMDIwOSwgODMxMywgNDE5NSwgNzQ0MzUsIAorICAgIDEzMTYsIDY2NjkwLCAxMjAwMzIsIDYzMzIsIDY0ODk0LCAwLCA2NTg3MSwgNzgwNjAsIDE3MzYsIDk4MzY3NSwgMzkwMSwgCisgICAgMTIyMjgsIDEyMDE1MSwgNjUyMDAsIDMzODMsIDEwNDQ2LCA3ODg0MSwgNjkzLCA5MTMwLCAzMTQsIDY0MTQ5LCA0MjQyMCwgCisgICAgMTE5NDksIDk4MzY2MCwgMTIwMTUyLCAxMTAyNiwgMTI4Nzg4LCA1MzMyLCA2OTQwLCA2NDE1NCwgMTI2MzUsIDEyNzAwNywgCisgICAgNDI3MDYsIDE3NTEsIDI3MywgODE2NSwgMTMxNjYsIDEyMDc2MywgNzg4NDAsIDcxMzY4LCAxMjgyNCwgMCwgNDUyOCwgCisgICAgNTMyMCwgNjMwMSwgNDM2NjIsIDYxMzMsIDkzMzksIDk0NjMsIDQyMzQ2LCAxMDkyMiwgNjQ1NjAsIDM3NTcsIDAsIDAsIDAsIAorICAgIDY1ODY5LCA3Mzc2MCwgMjU2OSwgMCwgMjMyNiwgNjU3NDAsIDI1NjUsIDQyNDU5LCA3NTk2LCA3OTIxLCA5ODM4NTksIAorICAgIDc0MDk1LCAxMjc5ODEsIDQxODQ4LCAyNTY3LCA2NjAwNiwgMCwgNDA0NCwgOTI2NDYsIDAsIDEyMjMzLCA5ODM4NjIsIAorICAgIDEwMjMsIDQ3NCwgMCwgMTE5ODE4LCAwLCAwLCA0MjQ4NywgNjU1NTYsIDAsIDEyNzg2NiwgNDIyOTUsIDAsIDAsIDcxMzIyLCAKKyAgICA5MjUxOCwgOTgzNSwgNjY0OTksIDAsIDU0MTcsIDEyMjc1LCAxMDg5NSwgMCwgMjc0LCAwLCAxODU4LCAwLCAwLCA1NTI1MSwgCisgICAgMTAxMTgsIDMxMzMsIDEyODAwOCwgNzM3OTUsIDAsIDk2MTAsIDgwNjgsIDgxOTcsIDAsIDY5OSwgMCwgNDE2NjUsIDU4NjgsIAorICAgIDAsIDkyNjk1LCA0MjE4MiwgNzU4MSwgMTk5NDAsIDQzNjY4LCA0MTY2NywgMTI4MDU3LCAwLCAxOTIzLCA2NTU4MywgCisgICAgNjU4MDIsIDkzOTcwLCA2NDU5NywgNDM0NDQsIDExOTE4NCwgOTIxOTcsIDAsIDY0NjQsIDcwMzYsIDI5OTYsIDE5MzcsIAorICAgIDk4Mzc0MiwgMCwgNDE4MzUsIDQwNDcsIDQxODQyLCAwLCA2NDEwNywgMCwgMCwgMTEwMTcsIDEyMDYwMSwgMCwgMjkzLCAKKyAgICA3Nzk2NiwgOTIxNjksIDY0NzkxLCA0MTgyNywgNDI0NjYsIDQzNDIyLCAxMDU3OSwgODU2MCwgNzEzNTAsIDY1NDEzLCAKKyAgICA3Nzk2MywgNDgwMywgMTI5NjQsIDE3MzksIDE5NDEsIDM5MDAsIDAsIDE3MTMsIDc3OTY5LCAwLCA3Mzk1NywgMTE0MDcsIAorICAgIDQyNDQxLCA0MTk3MSwgNjI5NywgMTIwMDk4LCA2NDEwNSwgMTI4MDgwLCA0MjQ4MSwgMTE3MTYsIDY2NDczLCA3MTc5LCAKKyAgICA0MjI4OSwgMCwgNjQxMDMsIDk2OSwgMCwgOTM1MiwgMCwgNjE2NSwgNjQxMDAsIDAsIDY2MzIsIDczODYxLCA0MjQwMiwgCisgICAgNzQzMjcsIDc4MDYsIDAsIDg5MTQsIDAsIDAsIDMxODMsIDE0MzUsIDY0ODc2LCAyOTY5LCA2MDQ2LCA2NDQ0MSwgNjIwOCwgCisgICAgNjc4NDksIDU3NDYsIDczNzQ5LCAwLCA2NDQxNiwgNDI0MjIsIDAsIDk4MzA0NiwgNzA4MiwgNzM3NzUsIDMzOCwgNTA1OSwgCisgICAgMTk0NzE5LCAwLCA0MjMyOCwgMTA3NjcsIDAsIDgxMTUsIDAsIDc0NzU4LCAwLCA4MjI3LCAyMDczLCAxMjE4LCA5MTc3OTAsIAorICAgIDAsIDY1ODQ4LCAwLCAwLCA2OTg2MywgMCwgMTI2OTg3LCA0NDg2LCAwLCAwLCAwLCAxMDkyNSwgMCwgMCwgMCwgOTgzNTg2LCAKKyAgICA0MjMwOSwgMTAyNTcsIDY1MTkxLCAxMDI3MywgMCwgMTAzMDUsIDQyNDYxLCAwLCA0MjM0OSwgODgzMiwgNzgwNTEsIAorICAgIDY0MTI3LCAxMDY0NCwgNDI2NjIsIDc4ODI4LCA0MjI3OCwgNzQ0NTEsIDEyNjk4OCwgNjk4NzQsIDc3OTQsIDAsIDQyNDI5LCAKKyAgICA2Mzc3LCA0MjMxNiwgMTE5MDI2LCAzNjY5LCAzOTY4LCA0MjQ2OCwgNzEzMTksIDY5NjU4LCAwLCA2NTQwMiwgMTE5NTgxLCAKKyAgICAwLCAwLCA2NDkzMywgMCwgNDE5NjAsIDY2OTksIDAsIDAsIDEyODM1NCwgNjgyMywgNDIzOTEsIDE1ODgsIDY1NDAwLCAKKyAgICA4NDA5LCA3ODIyMywgMTk5NjcsIDY1Mzk4LCA3ODcsIDcxMzE1LCA5MTc5MzksIDEyNzc0NCwgNjExNSwgMjA3OCwgNDE2NTQsIAorICAgIDQyNDgwLCAwLCA5MjY1MCwgNDE2NTUsIDY1NDAxLCA0Mzk3NSwgMCwgMCwgMCwgNjQ0LCA2NTUwMCwgNDE2NTcsIDEwNzc4LCAKKyAgICAzNjU5LCA5NTMzLCAxODQsIDE1NTMsIDEzMTA3LCA2NTQ4NCwgNjk2NDgsIDEwNTAyLCA3NDQ1NywgMCwgMCwgNDE1NTQsIDAsIAorICAgIDgyMjAsIDkxNzk0MywgNDE1NTcsIDAsIDAsIDExMDcwLCAxMTkyMjEsIDUxNTcsIDQwMjAsIDczODU4LCA0MTU1NSwgOTUxNCwgCisgICAgNjQ4MTgsIDY1MTAzLCA2NDY0MSwgNjQzMDMsIDc4MTMxLCA3NTIwLCAwLCA3NDM3NywgMTEwMjksIDY2NjUxLCA5ODMwNjgsIAorICAgIDAsIDExODkzMCwgNjQ1MjcsIDAsIDc4NzcsIDczODAzLCA5ODM3ODksIDEyNzM0OCwgMTIwMDk2LCA3NDYwMiwgOTk1NSwgCisgICAgMTE5NTU3LCA0MDU1LCA0MjgxNywgMCwgNjUyMTIsIDExNzE1LCAxMjE5MCwgMTIzMTksIDc4NjMwLCAwLCA3ODYzMSwgCisgICAgOTUwMiwgNjU0MjcsIDAsIDY1NDI0LCAxMjYwNywgMCwgOTczNCwgNjU0MjUsIDAsIDAsIDEyNzM1NywgNzg4MzUsIDkyNDEwLCAKKyAgICAxMDExMiwgMTA4MjcsIDAsIDk4NjYsIDc0NTI3LCA2NjY3NSwgMCwgODYyNSwgNjQzNDYsIDExMjkwLCAxMDQ3NywgMCwgCisgICAgODYzNiwgOTgzOTE4LCA4MzE1LCA2NTQ0NCwgOTgzNzg0LCAwLCA3NDU5NSwgNjE1MiwgMCwgMCwgNjYyOSwgMTI3MTA4LCAKICAgICAxMjAxNzEsIDAsIDc0NTg5LCA0Mzk5MywgMCwgNjk3OTAsIDY0NDM1LCAwLCA0MzY5MCwgMTEwNDYsIDExNDkwLCA0MjczMCwgCiAgICAgNDQ4NSwgMTI3MTA3LCAwLCA2NDkyNiwgMCwgMCwgMCwgNTg2OSwgMTI0MzcsIDQyNzI4LCAwLCA3MDQwLCAzNTg4LCAwLCAKICAgICAxMjgyNSwgMCwgMCwgMTI3MjUsIDAsIDAsIDc4NjQyLCAyMjMsIDAsIDY5Njc1LCAxMjAxNjYsIDQyNDQ0LCAwLCA2NDQ5OSwgCiAgICAgNjUyNDUsIDAsIDExNzEsIDAsIDY5NzE3LCAwLCAxODA1LCA4NzcyLCA0MzgyMCwgMCwgOTkzMCwgNjUyNDcsIDc4NjE5LCAKICAgICAxMjAxMTEsIDIzMzgsIDAsIDExODg1MywgMCwgNDI2NzYsIDAsIDY0ODAwLCA2NTIzNiwgNjc2NDQsIDY4MTI2LCAxMjEzLCAKLSAgICAwLCA2NDA3NSwgNzk3LCA2NDA3NCwgODczNCwgNDIxMiwgMCwgNjQzODcsIDQxMTUsIDAsIDUwMDUsIDY0MDcwLCA2NDA3MywgCi0gICAgMTA2NzksIDAsIDc3OTU0LCA5NDAyLCA2NDI3NiwgNDI2LCAwLCAwLCA4MjUxLCAxMDEzNiwgNjU0MzYsIDAsIDIxMjAsIAotICAgIDQzMzAyLCAxMjI0LCAwLCA2NTU3NiwgMTIwMTU4LCAxMDcwMSwgMTc2NCwgMzEwMSwgMTI3ODE1LCAxMjg1OCwgMTIwMTU5LCAKLSAgICAwLCAxMTM3MywgNjM3OCwgMTI3ODU5LCAxMjAxMDMsIDg2NjMsIDkzMTIsIDQxNjQ0LCA0NTM5LCAyMTI5LCAwLCA5MjIyLCAKLSAgICAwLCAwLCA0MjU5LCA5MDkyLCA3NDU2NywgNDE5NjEsIDAsIDEyNzI0LCA2NjM1NywgNDIzMzEsIDY0OTM1LCAwLCAwLCAKLSAgICAxMjkzLCA3OTQ3LCAyMTMyLCAwLCA3NDU5MywgMTIwMzA4LCAyNDU0LCA0MjcxNywgMzYxMywgMTI4ODM3LCAwLCAwLCAKLSAgICA2NTg4OCwgODgxNiwgMTA5NzgsIDEwODQwLCAwLCAxMDY2OCwgMCwgNDMwODcsIDEyNTk1LCAxMjAzMDQsIDAsIDg4MjIsIDAsIAotICAgIDExNTcsIDY0OTAzLCA4NjM4LCAwLCAwLCAwLCAwLCAxMjAzMTksIDgyMzUsIDEyMDMxNiwgNDQwNSwgMTAwODYsIDEyMDI0NywgCi0gICAgMCwgNjkyMTYsIDAsIDY1NDMwLCA3NDAxMywgNjA3OSwgNjgxNywgMTA3NjQsIDEyNzkxMCwgNjQyOTEsIDEyODA1MSwgOTk4LCAKLSAgICAxMjAzMTIsIDExMDYyLCAxMzE3LCA2NDMyNywgMTU1OCwgMCwgMTk5MSwgNzg4MiwgNDIyNTQsIDAsIDQxNzAwLCA1MzAsIDAsIAotICAgIDEwNDI4LCAxMTkzMzUsIDEyMDAyLCAxMTkzMzYsIDU3NDIsIDQzMDc2LCA0NjkyLCA2NDYzMCwgNDE4MjMsIDQwMDcsIAotICAgIDUwMDQsIDExOTMzNCwgNzg5NiwgNzUxLCA2NTk1LCA2NTk2LCAwLCA2NjM3MywgMCwgMCwgNjQ5MDgsIDkyNjkxLCA2MzExLCAKLSAgICAwLCAxMjAwNCwgMTE5MTkyLCAxMjA0OSwgNDMxMDgsIDEyMDMyNiwgMCwgNDE3MDUsIDkyMTg4LCA2NTk4LCAwLCA2NTk5LCAKLSAgICAxMjAzMzQsIDAsIDQyMTQ4LCAxMTg4MjUsIDY2MDI3LCAwLCA2NTk3LCA5NDEyLCA4MzQwLCAxMTgyNCwgNjQ3NDUsIDAsIDAsIAotICAgIDAsIDE5ODgsIDU0MDcsIDY3ODY1LCAyNDMwLCA0MTY3OCwgMCwgMTIwMjQzLCAyMzM2LCAwLCAwLCA3ODg3MSwgMTIwNDQyLCAKLSAgICAwLCAxOTIxLCAxMDk0NywgMTk5MjcsIDAsIDY1NDA2LCAwLCAxOTkxMywgNDI4NCwgMTMyMTcsIDAsIDQzNzg5LCAxMjg0MSwgCi0gICAgOTIyOSwgMTA5NTYsIDQyMjg1LCA0MTY3NCwgMTk5NjQsIDQxNjc5LCA2NTA4NCwgMzUyMSwgMCwgNTc3NCwgODMyNSwgMCwgCi0gICAgNjU0MDMsIDAsIDE4NTQsIDEwNzk0LCAwLCA2NzY2MCwgMCwgMCwgNzgzNTksIDUyODAsIDAsIDQzNDQsIDEyOTA1LCAKLSAgICA2NTQzMywgNjA3NiwgNjQ3OTMsIDQxNjEwLCA3NjgsIDEyMDc0LCA0NDIsIDAsIDY4MTYyLCA2NDA4MSwgMTI5MzQsIAotICAgIDQxNjgyLCA2NTQzMiwgNDE2OTMsIDAsIDYwNzEsIDY1NDM0LCAxMjc0NjcsIDQ4MDQsIDQwNTMsIDAsIDEyNzQ2OSwgCi0gICAgMTk0NjUzLCA0MTY5NiwgNDY3LCA2OTgyMywgMTI3NDYzLCA2OTc5NywgMCwgMCwgODQyMSwgMTI3NDcyLCA2OTY4MiwgCi0gICAgNDM3MDUsIDUwMiwgMCwgNjU0MzEsIDExOTA1NiwgMCwgMTIwNDMsIDEzMDMsIDMxNiwgOTI0NjIsIDIwMjksIDIxMzYsIAotICAgIDExOTI0NiwgMTE1MzMsIDY0MzY1LCA0MzQ4MCwgOTI2MzksIDQ4NjAsIDE5NDY0NSwgMTI3ODc3LCA0MjQ4OCwgMCwgOTU4MywgCi0gICAgMTI4ODQ5LCA1NTQ2LCA4MDE5LCA3Mzg1NiwgMCwgMCwgMCwgNTU0NCwgMjM1NSwgMTIxNTAsIDY1NzI1LCA1NTQzLCAKLSAgICA3Nzk4OSwgNjM3NTEsIDEyMTM3LCA1NTQ4LCA3Nzk4NSwgMCwgNjU3MjcsIDY4Mzg4LCA2NTcyNiwgNjA3NywgMTI4MzUyLCAKLSAgICA2NTQ1MiwgMCwgMTEzMDEsIDc4MDEzLCA3ODAwOCwgNzgwMTAsIDk4NzQsIDc4MDA3LCAwLCAxMzE5LCAzMDUwLCA2NTQxMCwgCi0gICAgMCwgMCwgNzgwMTYsIDc4MDE3LCA0MjgzMCwgNDM5OTYsIDY2NzE2LCAxMjgxMzcsIDQ2OTEsIDkyMjQyLCA5MzQ1LCA2MjEsIAotICAgIDkyNzA5LCAxMjgyMjIsIDAsIDY1NDExLCAwLCA0MTE4MiwgNzM4ODEsIDY1NDA4LCA3Mzg5OSwgNzgwMjQsIDk0NzQsIAotICAgIDEwNTQ1LCAxMTkxMTgsIDEwODg3LCAzNzg2LCA2NTQwOSwgODg5NCwgNDMxNzksIDExOTYxMSwgNzkyMywgMzcxNiwgCi0gICAgOTIzNjMsIDk5OTYsIDg1MDgsIDAsIDcwMTIsIDgxOTUsIDEyNzgzNCwgOTU2NiwgMCwgMzcyMiwgMCwgNDE3MDcsIDg0OTMsIAotICAgIDU0NSwgOTU3NSwgNDEzNzksIDEwMDUwLCAxMjcxOCwgMCwgODg1OSwgNjgyMCwgNzQzNDUsIDY1MTEwLCAxMjA3NDAsIDAsIAotICAgIDAsIDkxMTksIDI3ODcsIDc5MjAsIDExODgyMywgNDAyMSwgMjAxMiwgNzk4NSwgMCwgMTE5NjYzLCAwLCAwLCA3ODAyMSwgCi0gICAgNzgwMjIsIDQxMCwgNzgwMjAsIDE4MDIsIDc4MDE4LCA3NDEwNywgMCwgNDE2NTksIDQxNjcxLCAxODI3LCAwLCA2NDM5NiwgCi0gICAgMTAxMjYsIDEyMTE2LCA0MTY3MywgMTIwMzcwLCAxMTQyMiwgNzgxNDEsIDEyMDM3MywgMzg2MCwgMTIwMzY3LCA2ODQxMiwgCi0gICAgNDEzNDUsIDEyMDM2MiwgMTIwMzYzLCAxMTc0OCwgNDIxNTgsIDc5NDEsIDExMDc2LCA4NzQ5LCAxMjAzNjEsIDIxMDQsIAotICAgIDY0ODU4LCAzNjEsIDEyMDM1NywgODQ1LCAwLCA0MTU2MCwgMTE5NzAsIDQ1NjIsIDkxNzkyMCwgMjkyNiwgOTE3OTE5LCAKLSAgICA0NTY5LCA3NDEzMCwgMCwgNDM0ODcsIDE5NDYzMCwgNjExLCA3NDEyOSwgNjQ4NzEsIDExODg5MSwgNjU2MjksIDAsIAotICAgIDE5NDg1OCwgMCwgMCwgMTI3NTQ1LCAxMjA1NDMsIDAsIDAsIDYyOTEsIDAsIDc4NjM5LCA0MTY2OSwgNzA5NCwgOTE3OTIxLCAKLSAgICAwLCAwLCA3NDA1NCwgMTI3NzU0LCAxOTUwMjksIDAsIDgzOSwgMCwgNzY5NSwgODc2OSwgNjUyNDYsIDQ4MjksIDAsIDQ4NTksIAotICAgIDY0NDY3LCAwLCAwLCAxMTg5OTgsIDcyMDYsIDAsIDY2NDcsIDQzOTg2LCAwLCA2OTc2NiwgMCwgNjQ3NjQsIDQyMTAsIDAsIAotICAgIDEyNzkzNiwgODA0LCAwLCAwLCAxMjI5OCwgMCwgNjY2NTMsIDAsIDY0OTI0LCAxMDA5MSwgNzM5MzEsIDk0NjgsIDc0MjQ1LCAKLSAgICAwLCAwLCA3NDI0NiwgOTI1MDMsIDEyODM5LCA2NDY2OSwgOTIyMDIsIDAsIDEyNzksIDE0MjUsIDYyMjQsIDExOTIyOSwgCi0gICAgMTEwNDksIDAsIDkyNjk3LCA0MzIzOSwgODQ4MiwgOTI0NDAsIDAsIDUwMzIsIDY5Njc3LCAxMTk0MCwgNjc4ODgsIDY2NCwgCi0gICAgMTIwNDM3LCA1MDM0LCAwLCAwLCAxMjc1MjUsIDQyNzAyLCA3Mzg4OCwgMCwgMTMyOTQsIDY3ODczLCA2NDg2OSwgNjAzMiwgCi0gICAgMCwgOTExNSwgNzQzMCwgMTIwMzc3LCAwLCAxMjA4MTksIDY4Mzg3LCAxMjAxNjgsIDczOTEzLCAxMjAxNzAsIDQxMTYxLCAKLSAgICA1NTE4LCA0MTc0LCAxMDk5MywgNDExNjIsIDEyMDE2MCwgNjQ1MjgsIDExNjksIDQzNCwgNDE0MzcsIDE5MDUsIDYwMzQsIAotICAgIDQxMTY0LCA2NDc0NCwgOTUyOCwgMTE4ODY3LCAxMjg4MDAsIDUyNCwgMCwgNzQwMjksIDc4OCwgNzQwMjcsIDAsIDE5NDYzOCwgCi0gICAgMCwgMTY2MywgMTA0MTksIDc0MDI1LCA0MjYzNiwgMCwgNjk3MjUsIDAsIDEyMDY1NiwgMCwgNjc4NzYsIDAsIDAsIDAsIAotICAgIDY3ODk3LCA3NDAzOSwgMCwgMCwgMTEzOTUsIDAsIDExOTEwNywgNDM2MTIsIDY0MzQ0LCAwLCAwLCAxMDg1NSwgNTQ0NSwgCi0gICAgOTM1NSwgMCwgNjUxOTgsIDczOTEsIDg5ODksIDIyMSwgNjU2ODYsIDAsIDAsIDgwMTAsIDcxOTEsIDQ5NjIsIDY5NzcyLCAKLSAgICA4ODU1LCAwLCAwLCA2NDQ2OSwgMTIwNDI2LCAxMDU1NSwgMCwgNDMzMzMsIDkyMjk5LCAwLCAxMjA0MjcsIDEwNDUxLCAwLCAKLSAgICA2NzY1MywgNzI0NSwgMTI0NDMsIDc0NDA1LCA5OTQ3LCAxMjAxNDksIDc4MzE3LCAzODczLCA4MzY3LCAwLCAxMjAxNDYsIAotICAgIDQzNDMzLCA0MzY0OSwgMTE5ODcsIDAsIDAsIDExMDEwLCAxMjcyMywgNzQwNTksIDc0MDYyLCA2MjE3LCA1ODk2LCAwLCAKLSAgICA3NjgyLCA3NDA0OSwgMTQ2MiwgMTAyMzUsIDAsIDAsIDAsIDAsIDAsIDAsIDQyNTk1LCAwLCA3NDQwMiwgMTE4ODYwLCAwLCAKLSAgICAxMjA0MTksIDkyNDk3LCA3NDA1MiwgMCwgMCwgMTIwNTQ5LCAxMTkwODIsIDY0Mjk1LCAxMjA0MTgsIDAsIDY0NzY1LCAKLSAgICA3MzkyMywgMTIwNDE3LCAxMjA2NjIsIDEyMDczMCwgMTk0NzAyLCA2MjE2LCAwLCAxMDc1NSwgOTQ1NSwgMCwgODEyNCwgCi0gICAgMTI3MDQyLCA5NDcwLCA2OTQ0LCAxMjc1NDAsIDAsIDY5NjgwLCAyODI4LCAwLCA1MzEsIDQyNjM4LCAwLCAwLCAwLCAKLSAgICA0MzQyOCwgODIwNCwgMzYxNCwgMjgyNywgOTY5NiwgMCwgMCwgODcyOCwgNDM1NCwgMTA5MDQsIDc4NTYyLCAxOTkzNiwgCi0gICAgNzgzMywgMTIwNjkxLCAwLCA0MjU5OSwgNDI1OTcsIDQyNzA5LCAxMjA0MDksIDEyNzA0NCwgMCwgODUzNywgMCwgMCwgMCwgCi0gICAgMCwgMCwgNDExOTksIDEwMTIxLCAyMDI4LCAwLCAwLCA2OTcxNSwgMCwgMzA2MiwgMCwgNzQ0NDcsIDEyNjA4LCAwLCAKLSAgICA2NjQ0MCwgNzU0NSwgOTcwMCwgMTI1ODAsIDAsIDEyMDc3NywgMTIwNTAyLCA0MTE1NSwgMCwgNzQwNzEsIDAsIDAsIAotICAgIDEyNzEzLCAwLCAwLCAwLCA3ODc3MiwgMCwgMTczNCwgMCwgMCwgMTI3MDQwLCA2NDU5NCwgMjQ1NiwgMjMxLCAwLCA3NDE2NywgCi0gICAgNTQyLCAwLCAxMTg3ODYsIDAsIDAsIDEyMzAsIDAsIDAsIDM1OTcsIDQ0NDYsIDEwNTg0LCA3NDIzNSwgOTIyMTUsIDQwMzcsIAotICAgIDEyNzkzOCwgODM1MiwgMCwgNTY4NywgMCwgNjQ1MTUsIDAsIDE5NDgwMSwgNTUyNjUsIDY3ODQ2LCA3ODQzNCwgOTcwNCwgMCwgCi0gICAgMCwgNzQyODQsIDEyODI4NSwgMCwgODY2MCwgMCwgMCwgMCwgNzg3NzMsIDc0NDgyLCA0NDgzLCAxNzA5LCA2OTcyMSwgCi0gICAgOTkwOSwgNjA4MCwgMCwgMTIwMzU4LCAxNzQ2LCAxMzE1LCA4NjY3LCAwLCAwLCAxMzE0MCwgNjU4OTksIDEwNjA0LCAwLCAKLSAgICA0NDgwLCAxMTI2NiwgMTI4MTUyLCAxMjI2LCA2OTMwLCAwLCAwLCA2MzYwLCAxMDg5NywgNDEyMzAsIDYwNSwgMCwgNzQ3ODUsIAotICAgIDEyMDM1NiwgMCwgMCwgNDE1MDAsIDAsIDMxMSwgMTE0NTMsIDYyMjEsIDEwNjA4LCA2NDk0MywgNzQyODAsIDEwODc3LCAKLSAgICAxMTg4NjgsIDY0ODg1LCA3NDI3MiwgMCwgMCwgMCwgMTIwNzM2LCA3NDMxMiwgMzQ1LCAwLCA3NDQ1NiwgNjQ2MDYsIDk5MTcsIAotICAgIDAsIDkyMjMxLCA1MDM3LCAwLCAxNzc2LCA4NDIyLCAwLCAxMTg4MTQsIDQxNTA4LCA0MTIwMSwgMzIzLCA0MzMyOCwgMCwgCi0gICAgNDI2OTgsIDEyOTUsIDAsIDQ2MjUsIDAsIDQ2MzAsIDEzMTE3LCAwLCAxMjg3NzIsIDY1MTIzLCAxMTI5MywgMjY2OCwgCi0gICAgMTEyODgsIDAsIDQyNjQwLCA2NTY2NiwgMjUxOSwgOTIzNjksIDY1NDIwLCA5MjQ3OSwgMCwgNDI1MiwgNTA0OSwgNDI2NTksIAotICAgIDExOTAxMSwgNzA2LCA3NzU0LCAxMDg1NCwgODczOCwgMCwgNjU0MTksIDAsIDAsIDY0OSwgNjU0MjEsIDAsIDY2NzAyLCAwLCAKLSAgICAxMjY3MCwgMTAxMywgMCwgNjQ5MTksIDcwNSwgMCwgNjU0MjIsIDEyNzgwMywgMTE4MywgMCwgNzAxNywgNDI4NTIsIDAsIAotICAgIDgxNTcsIDk3MzYsIDY0NTAzLCA2NTQxOCwgMCwgMCwgNzQwMzUsIDAsIDExOTEzLCA3Mzg3NCwgNjY5NiwgMCwgODkyMCwgMCwgCi0gICAgMCwgNzk2MiwgMTIyMTEsIDk4MzcsIDIwNTEsIDY2MjI3LCAwLCA0MTg0LCAwLCAwLCAxMDE3NywgNzM3NzcsIDE4NTcsIDAsIAotICAgIDQ2MjYsIDg0NjQsIDg0NzIsIDAsIDQ2MjksIDg0OTksIDc4MzIxLCA3ODMyMiwgNDYyNCwgNzgxOCwgMTE5MTczLCAwLCAwLCAKLSAgICA3ODA1LCAwLCAwLCA2OTM1LCA5MjI5MiwgNzgzMjUsIDc4MzI2LCA3ODMyMywgNDMzMjcsIDQzOTg5LCAxMTkwNDYsIDg0OTIsIAotICAgIDgyNTAsIDg0NTksIDAsIDg0OTcsIDg0OTYsIDAsIDAsIDc4MzM2LCA3ODMzOSwgOTU0MywgNzgzMzUsIDc4MzMyLCA3NzgzMiwgCi0gICAgNjU4NDksIDc3ODMxLCAwLCAwLCAxMjQ1MSwgMCwgODY4NCwgMCwgNjEwMiwgMCwgNTI5OCwgMCwgNTI5NCwgMCwgMCwgMCwgCi0gICAgMTk1MDYyLCA5OTQ5LCAxMTk4MjYsIDQzNjE3LCAxMTkyMTUsIDAsIDEyMDczLCAwLCAwLCA3Nzg2MywgMTMxMDgsIAotICAgIDEyMDYxNywgNzQzOTcsIDQxNDY4LCAwLCAwLCA1MjkyLCA1NTI3MiwgMCwgMTkzOSwgNTMwMiwgMzk3MCwgOTE3ODc5LCAKLSAgICAxMjQ1NSwgMTc5MywgMCwgMCwgMCwgNjY0MywgOTI0NzcsIDY1MjYzLCAwLCA3ODMzMCwgNDEyOTMsIDc4MzI4LCA2NTkyMywgCi0gICAgMCwgMTMyMTksIDk1NjksIDAsIDc0MzgzLCAwLCAwLCAwLCA1NTAwLCA4ODEzLCAwLCAwLCA3NDU2NiwgNTMyMiwgMCwgCi0gICAgNzgzNDAsIDQzNjMxLCA1MzI0LCA2NjQ0MywgMzc4NCwgNDE2MTQsIDY1MjY5LCA2MjMwLCA3ODM0OSwgNzgzNDUsIDQzMzI0LCAKLSAgICAzMzYwLCA3ODM0NCwgMTE1MjMsIDAsIDkyNDg4LCA5OTI2LCA3MTk3LCAwLCA2ODQyOSwgNDI4OTQsIDQxODIxLCAxMjQ5LCAKLSAgICA3ODM2MCwgNzgzNjEsIDc4MzU2LCA3ODM1OCwgNzgzNTMsIDY0ODk5LCA2NDc2MywgNDExNDksIDQxODA3LCA0MzE2MiwgCi0gICAgNDE4MTUsIDQxMTUwLCAwLCAxMDU3MSwgMTAwOTYsIDAsIDAsIDc4MDc0LCA2OTQ3LCA0MTE1MiwgODg3LCA5MjQ5LCA2NTY1LCAKLSAgICA3ODUxMCwgNDE5OTAsIDc4NTA5LCA0MTgxMSwgNzQ0NjYsIDAsIDY2NzAsIDc3ODgyLCAwLCAwLCA0MzA5MiwgNDMzMjUsIDAsIAotICAgIDEwMTY4LCAwLCA5NzgxLCAxMjg2NTUsIDkxOTAsIDAsIDk2NjYsIDgyNjksIDY1OTQ0LCA3NDAwNSwgMTMwMTksIDExNjcwLCAKLSAgICAxMjczODMsIDMxNSwgMTI4MTMsIDAsIDc4NDMyLCA3ODI1NiwgNzgzNTEsIDc4MzUyLCAwLCAwLCAwLCAwLCAxMzc4LCAKLSAgICA5NTA5LCAwLCAwLCA3NDQ3NSwgMzA2NiwgOTIyMjAsIDY3ODQ3LCAwLCA5MjM1NSwgMCwgNzgzNjUsIDg3ODcsIDEyMDM3OSwgCi0gICAgMTk0NjE2LCA0MTYxOCwgMTk0NjE1LCA3ODI2MSwgMTk0NjE0LCAwLCA2NDY1MiwgMCwgMTk0NjEyLCAwLCA3ODM2NiwgCi0gICAgNDIwODgsIDAsIDE5NTA2MSwgNzE3NiwgMTI4ODMzLCAxMDEzNywgNjEyMSwgMTA5OTUsIDc4MjU5LCA3NDUzNCwgODExOSwgCi0gICAgNjQ4NzQsIDkxNzgxNiwgMTI3MTk5LCAxOTQ5MzksIDAsIDc0NTI1LCAwLCAwLCAxMjkzMCwgMTM5NCwgNzQ1MTQsIDAsIAotICAgIDc0NTE1LCAwLCAxMTg4MDQsIDI5OTgsIDk1MjcsIDEyMDY1OSwgNjUxOTAsIDEyOTc3LCA0MjA5MCwgMTE5MTY1LCAwLCAKLSAgICAxMTkxMDAsIDQxMjM2LCA5MjIzNSwgNDIwMDUsIDQyMDAzLCA0MTIzNywgNTg0OCwgMCwgMCwgMzY3MCwgMTI4NjU3LCAKLSAgICAxOTQ2MDAsIDAsIDAsIDc4OTAsIDAsIDExMjk4LCA0MzMxNSwgMCwgNjIyOSwgMTU5MywgMCwgMCwgNjE5LCA0NjM1LCAKLSAgICA2NTA4MCwgMCwgMTI4MDAyLCA0MTIwLCA2NTMzNywgNjUzMzYsIDAsIDExODA4LCAxMTkyMTQsIDc0MTE1LCA5MzY2LCAKLSAgICA0Mjc5MCwgNDIwMDYsIDAsIDY1MzI3LCA2NTMyNiwgNjUzMjUsIDEwNzU3LCAxNTA3LCA0MjIxNiwgNjUzMjEsIDY1MzIwLCAKLSAgICA2NTMzNSwgNjUzMzQsIDY1MzMzLCA2NTMzMiwgNjUzMzEsIDQyMDU5LCA2NTMyOSwgNDI2ODksIDkyNDI3LCA5MTI4LCAKLSAgICAxMTg4ODUsIDQyMDczLCA2Nzg1LCA2NDU5MCwgMCwgNDM3MSwgNzE5NiwgNjUzMTgsIDIwMzUsIDY1MzE2LCA0MTA2LCAKLSAgICA2NTMxNCwgNjUzMTMsIDQyMDc0LCAxMjc4NDcsIDQxMjI4LCAwLCA2NTYwOSwgNDEyNDEsIDc5MDMsIDQxMjM5LCA0MzUzMywgCi0gICAgNzg0NTksIDcxODksIDAsIDAsIDAsIDEyMzU3LCA0MjgwMiwgNzg0NTAsIDg0ODcsIDkxMzEsIDAsIDQ2MTUsIDEyNjk1LCAKLSAgICAxMjc3NTIsIDAsIDEyMTc1LCAwLCA2NDUzNSwgMCwgNzgwOSwgMCwgMCwgNTYyLCAxMjE2OSwgNjU5MCwgNjk3NjIsIAotICAgIDY2NDU1LCA2NDczOCwgMzIxOSwgNjg2NTQsIDAsIDAsIDEwMzcsIDAsIDIwMjUsIDEyODI2MywgMTMwOTgsIDc4NDQyLCAKLSAgICAxMDYzNywgNDU2OCwgNTQ5LCAxNTcwLCAwLCAyODM1LCAwLCAxMDYyNCwgNDM2MjMsIDExMDcyLCAxMjcxOTEsIDAsIDAsIAotICAgIDEyNjA2LCA3ODQzMywgMjgyNSwgMCwgMTA4MjUsIDgwNzksIDI4MjEsIDQxMDQ2LCA5MjMyNywgMCwgMCwgMTIwNTkzLCAKLSAgICAxMzA3MSwgMCwgNDUyLCA0MTA0OSwgNDI4NDAsIDYzNDYsIDI4MzEsIDU0NjEsIDc0NTk2LCAxMTQ2NSwgNTIxMiwgMCwgCi0gICAgNjQ3MDMsIDExOTE5MSwgNDIzMDgsIDcxODEsIDAsIDQxMzMyLCAwLCAxMjMzMywgMCwgMTY2OCwgMCwgMCwgMCwgMTE4NywgCi0gICAgMCwgNDI2MjgsIDc4NTc1LCAwLCAxMjg3NzcsIDAsIDMyNDAsIDEyODUxOCwgMTIxOTQsIDAsIDExNTkxLCA0MTA2NSwgCi0gICAgNTMyMywgODE2NiwgMCwgMCwgMCwgNzQ1MzUsIDE2MjMsIDY1Mjk3LCAxMjg4NTYsIDU3MSwgMCwgNDkxOCwgMCwgNTI4OCwgCi0gICAgMTI3Mjk1LCA4OTE2LCA2NTA0OCwgMTkwOSwgODg2NCwgMCwgMCwgMTA3MzYsIDkyNTA4LCAxMTU3MSwgNzYxNSwgMTI3MzAwLCAKLSAgICA5MjI5NiwgNDIzNywgOTI1NzYsIDEwMzUsIDY1ODE1LCAwLCA3ODgxLCA3MDEsIDY1OTM2LCAzNDg5LCAwLCAwLCAxMjA3NTEsIAotICAgIDExNDAzLCAwLCAwLCAxMjcxNDYsIDM3OTYsIDY4MDAsIDAsIDM5OTQsIDExNDIxLCAwLCAxOTUwNzYsIDAsIDAsIDAsIDAsIAorICAgIDAsIDY0MDc1LCA3OTcsIDY0MDc0LCA4NzM0LCA0MjEyLCAxMjczNjksIDY0Mzg3LCA0MTE1LCAwLCA1MDA1LCA2NDA3MCwgCisgICAgNjQwNzMsIDEwNjc5LCAwLCA3Nzk1NCwgOTQwMiwgNjQyNzYsIDQyNiwgMCwgMCwgODI1MSwgMTAxMzYsIDY1NDM2LCAwLCAKKyAgICAyMTIwLCA0MzMwMiwgMTIyNCwgMCwgNjU1NzYsIDc0MTkyLCAxMDcwMSwgMTc2NCwgMzEwMSwgMTI3ODE1LCAxMjg1OCwgCisgICAgMTIwMTU5LCAwLCAxMTM3MywgNjM3OCwgMTI3ODU5LCAxMjAxMDMsIDg2NjMsIDkzMTIsIDQxNjQ0LCA0NTM5LCAyMTI5LCAwLCAKKyAgICA5MjIyLCA5ODM3MjksIDAsIDQyNTksIDkwOTIsIDc0NTY3LCA0MTk2MSwgMCwgMTI3MjQsIDY2MzU3LCA0MjMzMSwgNjQ5MzUsIAorICAgIDAsIDAsIDEyOTMsIDc5NDcsIDIxMzIsIDk4Mzc1OCwgNzQ1OTMsIDEyMDMwOCwgMjQ1NCwgNDI3MTcsIDM2MTMsIDEyODgzNywgCisgICAgMCwgMCwgNjU4ODgsIDg4MTYsIDEwOTc4LCAxMDg0MCwgMCwgMTA2NjgsIDAsIDQzMDg3LCAxMjU5NSwgMTIwMzA0LCAKKyAgICA5ODMxMTQsIDg4MjIsIDAsIDExNTcsIDY0OTAzLCA4NjM4LCAwLCAwLCAwLCAwLCA2OTg0OCwgODIzNSwgMTIwMzE2LCAKKyAgICA0NDA1LCAxMDA4NiwgMTIwMjQ3LCAwLCA2OTIxNiwgMCwgNjU0MzAsIDcxMzIxLCA2MDc5LCA2ODE3LCAxMDc2NCwgCisgICAgMTI3OTEwLCA2NDI5MSwgMTI4MDUxLCA5OTgsIDEyMDMxMiwgMTEwNjIsIDEzMTcsIDY0MzI3LCAxNTU4LCAwLCAxOTkxLCAKKyAgICA3ODgyLCA0MjI1NCwgMCwgNDE3MDAsIDUzMCwgMCwgMTA0MjgsIDExOTMzNSwgMTIwMDIsIDExOTMzNiwgNTc0MiwgNDMwNzYsIAorICAgIDQ2OTIsIDY0NjMwLCA0MTgyMywgNDAwNywgNTAwNCwgMTE5MzM0LCA3ODk2LCA3NTEsIDY1OTUsIDY1OTYsIDEyMDMyNSwgCisgICAgNjYzNzMsIDAsIDAsIDY0OTA4LCA5MjY5MSwgNjMxMSwgMCwgMTIwMDQsIDExOTE5MiwgMTIwNDksIDQzMTA4LCAxMjAzMjYsIAorICAgIDAsIDQxNzA1LCA5MjE4OCwgNjU5OCwgMCwgNjU5OSwgMTIwMzM0LCAwLCA0MjE0OCwgMTE4ODI1LCA2NjAyNywgMCwgNjU5NywgCisgICAgOTQxMiwgODM0MCwgMTE4MjQsIDY0NzQ1LCAyMjgxLCA2OTkwNCwgMCwgMTk4OCwgNTQwNywgNjc4NjUsIDI0MzAsIDQxNjc4LCAKKyAgICAwLCAxMjAyNDMsIDIzMzYsIDk4Mzg5NCwgMCwgNzg4NzEsIDEyMDQ0MiwgOTgzNzYwLCAxOTIxLCAxMDk0NywgMTk5MjcsIDAsIAorICAgIDY1NDA2LCAwLCAxOTkxMywgNDI4NCwgMTMyMTcsIDAsIDQzNzg5LCAxMjg0MSwgOTIyOSwgMTA5NTYsIDQyMjg1LCA0MTY3NCwgCisgICAgMTk5NjQsIDQxNjc5LCA2NTA4NCwgMzUyMSwgMCwgNTc3NCwgODMyNSwgMCwgNjU0MDMsIDk4MzA4OSwgMTg1NCwgMTA3OTQsIAorICAgIDAsIDY3NjYwLCA2OTg0NiwgMCwgNzgzNTksIDUyODAsIDAsIDQzNDQsIDEyOTA1LCA2NTQzMywgNjA3NiwgNjQ3OTMsIAorICAgIDQxNjEwLCA3NjgsIDEyMDc0LCA0NDIsIDAsIDY4MTYyLCA2NDA4MSwgMTI5MzQsIDQxNjgyLCA2NTQzMiwgNDE2OTMsIDAsIAorICAgIDYwNzEsIDY1NDM0LCAxMjc0NjcsIDQ4MDQsIDQwNTMsIDAsIDEyNzQ2OSwgMTk0NjUzLCA0MTY5NiwgNDY3LCA2OTgyMywgCisgICAgMTI3NDYzLCA2OTc5NywgMTk0NjUyLCAxMjc0NzMsIDg0MjEsIDEyNzQ3MiwgNjk2ODIsIDQzNzA1LCA1MDIsIDAsIDY1NDMxLCAKKyAgICAxMTkwNTYsIDY5OTU0LCAxMjA0MywgMTMwMywgMzE2LCA3MzY0LCAyMDI5LCAyMTM2LCAxMTkyNDYsIDExNTMzLCA2NDM2NSwgCisgICAgNDM0ODAsIDkyNjM5LCA0ODYwLCAxMjY2NDgsIDEyNzg3NywgNDI0ODgsIDAsIDk1ODMsIDEyODg0OSwgNTU0NiwgODAxOSwgCisgICAgNzM4NTYsIDAsIDAsIDAsIDU1NDQsIDIzNTUsIDEyMTUwLCA2NTcyNSwgNTU0MywgNzc5ODksIDYzNzUxLCAxMjEzNywgCisgICAgNTU0OCwgNzc5ODUsIDAsIDY1NzI3LCA2ODM4OCwgNjU3MjYsIDYwNzcsIDEyODM1MiwgNjU0NTIsIDAsIDExMzAxLCAKKyAgICA3ODAxMywgNzgwMDgsIDc4MDEwLCA5ODc0LCA3ODAwNywgMCwgMTMxOSwgMzA1MCwgNjU0MTAsIDAsIDAsIDc4MDE2LCAKKyAgICA3ODAxNywgNDI4MzAsIDQzOTk2LCA2NjcxNiwgMTI4MTM3LCA0NjkxLCA5MjI0MiwgOTM0NSwgNjIxLCA5MjcwOSwgCisgICAgMTI4MjIyLCAwLCA2NTQxMSwgMCwgNDExODIsIDczODgxLCA2NTQwOCwgNzM4OTksIDc4MDI0LCA5NDc0LCAxMDU0NSwgCisgICAgMTE5MTE4LCAxMDg4NywgMzc4NiwgNjU0MDksIDg4OTQsIDQzMTc5LCAxMTk2MTEsIDc5MjMsIDM3MTYsIDkyMzYzLCA5OTk2LCAKKyAgICA4NTA4LCAwLCA3MDEyLCA4MTk1LCAxMjc4MzQsIDk1NjYsIDAsIDM3MjIsIDAsIDQxNzA3LCA4NDkzLCA1NDUsIDk1NzUsIAorICAgIDQxMzc5LCAxMDA1MCwgMTI3MTgsIDY5ODU0LCA4ODU5LCA2ODIwLCA3NDM0NSwgNjUxMTAsIDEyMDc0MCwgMCwgMCwgOTExOSwgCisgICAgMjc4NywgNzkyMCwgMTE4ODIzLCA0MDIxLCAyMDEyLCA3OTg1LCAwLCAxMTk2NjMsIDAsIDAsIDc4MDIxLCA3ODAyMiwgNDEwLCAKKyAgICA3ODAyMCwgMTgwMiwgNzgwMTgsIDc0MTA3LCAwLCA0MTY1OSwgNDE2NzEsIDE4MjcsIDAsIDY0Mzk2LCAxMDEyNiwgMTIxMTYsIAorICAgIDQxNjczLCAxMjAzNzAsIDExNDIyLCA3ODE0MSwgMTIwMzczLCAzODYwLCAxMjAzNjcsIDY4NDEyLCA0MTM0NSwgMTIwMzYyLCAKKyAgICAxMjAzNjMsIDExNzQ4LCA0MjE1OCwgNzk0MSwgMTEwNzYsIDg3NDksIDEyMDM2MSwgMjEwNCwgNjQ4NTgsIDM2MSwgCisgICAgMTIwMzU3LCA4NDUsIDAsIDQxNTYwLCAxMTk3MCwgNDU2MiwgOTE3OTIwLCAyOTI2LCA5MTc5MTksIDQ1NjksIDc0MTMwLCAwLCAKKyAgICA0MzQ4NywgMTk0NjMwLCA2MTEsIDc0MTI5LCA2NDg3MSwgMTE4ODkxLCA2NTYyOSwgMCwgMTk0ODU4LCAwLCAwLCAxMjc1NDUsIAorICAgIDEyMDU0MywgMCwgMCwgNjI5MSwgMCwgNzg2MzksIDQxNjY5LCA3MDk0LCA5MTc5MjEsIDAsIDk4MzU4MSwgNzQwNTQsIAorICAgIDEyNzc1NCwgMTk1MDI5LCAwLCA4MzksIDk4MzMxMSwgNzY5NSwgODc2OSwgNjUyNDYsIDQ4MjksIDE5NDY2MywgNDg1OSwgCisgICAgNjQ0NjcsIDAsIDk4Mzk1NCwgMTE4OTk4LCA3MjA2LCAwLCA2NjQ3LCA0Mzk4NiwgMCwgNjk3NjYsIDAsIDY0NzY0LCA0MjEwLCAKKyAgICA5ODM4NTQsIDEyNzkzNiwgODA0LCAwLCAwLCAxMjI5OCwgMCwgNjY2NTMsIDAsIDY0OTI0LCAxMDA5MSwgNzM5MzEsIDk0NjgsIAorICAgIDc0MjQ1LCAwLCAwLCA3NDI0NiwgOTI1MDMsIDEyODM5LCA2NDY2OSwgOTIyMDIsIDAsIDEyNzksIDE0MjUsIDYyMjQsIAorICAgIDExOTIyOSwgMTEwNDksIDAsIDkyNjk3LCA0MzIzOSwgODQ4MiwgOTI0NDAsIDAsIDUwMzIsIDY5Njc3LCAxMTk0MCwgCisgICAgNjc4ODgsIDY2NCwgMTIwNDM3LCA1MDM0LCAwLCAwLCAxMjc1MjUsIDQyNzAyLCA3Mzg4OCwgOTgzMTQ5LCAxMzI5NCwgCisgICAgNjc4NzMsIDY0ODY5LCA2MDMyLCAwLCA5MTE1LCA3NDMwLCAxMjAzNzcsIDAsIDEyMDgxOSwgNjgzODcsIDEyMDE2OCwgCisgICAgNzM5MTMsIDEyMDE3MCwgNDExNjEsIDU1MTgsIDQxNzQsIDEwOTkzLCA0MTE2MiwgMTIwMTYwLCA2NDUyOCwgMTE2OSwgNDM0LCAKKyAgICA0MTQzNywgMTkwNSwgNjAzNCwgNDExNjQsIDY0NzQ0LCA5NTI4LCAxMTg4NjcsIDEyODgwMCwgNTI0LCAwLCA3NDAyOSwgCisgICAgNzg4LCA3NDAyNywgMCwgMTk0NjM4LCAwLCAxNjYzLCAxMDQxOSwgNzQwMjUsIDQyNjM2LCAwLCA2OTcyNSwgMCwgMTIwNjU2LCAKKyAgICAwLCA2Nzg3NiwgMCwgMCwgMCwgNjc4OTcsIDc0MDM5LCAwLCAwLCAxMTM5NSwgMCwgMTE5MTA3LCA0MzYxMiwgNjQzNDQsIDAsIAorICAgIDAsIDEwODU1LCA1NDQ1LCA5MzU1LCAwLCA2NTE5OCwgNzM5MSwgODk4OSwgMjIxLCA2NTY4NiwgMCwgMCwgODAxMCwgNzE5MSwgCisgICAgNDk2MiwgNjk3NzIsIDg4NTUsIDAsIDAsIDY0NDY5LCAxMjA0MjYsIDEwNTU1LCAwLCA0MzMzMywgOTIyOTksIDAsIAorICAgIDEyMDQyNywgMTA0NTEsIDAsIDY3NjUzLCA3MjQ1LCAxMjQ0MywgNzQ0MDUsIDk5NDcsIDEyMDE0OSwgNzgzMTcsIDM4NzMsIAorICAgIDgzNjcsIDAsIDEyMDE0NiwgNDM0MzMsIDQzNjQ5LCAxMTk4NywgMCwgMCwgMTEwMTAsIDEyNzIzLCA3NDA1OSwgNzQwNjIsIAorICAgIDYyMTcsIDU4OTYsIDAsIDc2ODIsIDc0MDQ5LCAxNDYyLCAxMDIzNSwgMCwgMCwgMCwgMCwgMCwgMCwgNDI1OTUsIDAsIAorICAgIDc0NDAyLCAxMTg4NjAsIDAsIDEyMDQxOSwgOTI0OTcsIDc0MDUyLCAwLCA5MjM3OCwgMTIwNTQ5LCAxMTkwODIsIDY0Mjk1LCAKKyAgICAxMjA0MTgsIDAsIDY0NzY1LCA3MzkyMywgMTIwNDE3LCAxMjA2NjIsIDY5OTIwLCAxOTQ3MDIsIDYyMTYsIDAsIDEwNzU1LCAKKyAgICA5NDU1LCAwLCA4MTI0LCAxMjcwNDIsIDk0NzAsIDY5NDQsIDEyNzU0MCwgMCwgNjk2ODAsIDI4MjgsIDAsIDUzMSwgNDI2MzgsIAorICAgIDAsIDAsIDAsIDQzNDI4LCA4MjA0LCAzNjE0LCAyODI3LCA5Njk2LCAwLCAwLCA4NzI4LCA0MzU0LCAxMDkwNCwgNzg1NjIsIAorICAgIDE5OTM2LCA3ODMzLCAxMjA2OTEsIDAsIDQyNTk5LCA0MjU5NywgNDI3MDksIDEyMDQwOSwgMTI3MDQ0LCAwLCA4NTM3LCAwLCAKKyAgICAwLCA5MzU0LCA5ODMxNjQsIDEyODgzMywgNDExOTksIDEwMTIxLCAyMDI4LCAwLCA5ODMxOTQsIDY5NzE1LCAwLCAzMDYyLCAKKyAgICAwLCA3NDQ0NywgMTI2MDgsIDAsIDY2NDQwLCA3NTQ1LCA5NzAwLCAxMjU4MCwgOTIyMDUsIDEyMDc3NywgMTIwNTAyLCAKKyAgICA0MTE1NSwgMCwgNzQwNzEsIDAsIDk4MzQ0OSwgMTI3MTMsIDAsIDAsIDAsIDc4NzcyLCAwLCAxNzM0LCAwLCAwLCAxMjcwNDAsIAorICAgIDY0NTk0LCAyNDU2LCAyMzEsIDAsIDc0MTY3LCA1NDIsIDAsIDExODc4NiwgMCwgOTgzOTcwLCAxMjMwLCAwLCAwLCAzNTk3LCAKKyAgICA0NDQ2LCAxMDU4NCwgNzQyMzUsIDkyMjE1LCA0MDM3LCAxMjc5MzgsIDgzNTIsIDAsIDU2ODcsIDAsIDY0NTE1LCAwLCAKKyAgICAxOTQ4MDEsIDU1MjY1LCA2Nzg0NiwgNzg0MzQsIDk3MDQsIDAsIDAsIDcwMDgwLCA3MTMzOCwgMCwgODY2MCwgMTI2NDk1LCAKKyAgICAwLCAwLCA3ODc3MywgNzQ0ODIsIDQ0ODMsIDE3MDksIDY5NzIxLCA5OTA5LCA2MDgwLCAwLCAxMjAzNTgsIDE3NDYsIDEzMTUsIAorICAgIDg2NjcsIDAsIDAsIDEzMTQwLCA2NTg5OSwgMTA2MDQsIDAsIDQ0ODAsIDExMjY2LCAxMjgxNTIsIDEyMjYsIDY5MzAsIAorICAgIDY3OTc5LCA5ODM2ODEsIDYzNjAsIDEwODk3LCA0MTIzMCwgNjA1LCAwLCA3NDc4NSwgNjk4NzUsIDAsIDAsIDQxNTAwLCAwLCAKKyAgICAzMTEsIDExNDUzLCA2MjIxLCAxMDYwOCwgNjQ5NDMsIDc0MjgwLCAxMDg3NywgMTE4ODY4LCA2NDg4NSwgNzQyNzIsIDAsIDAsIAorICAgIDEyODU1OSwgMTIwNzM2LCA3NDMxMiwgMzQ1LCAwLCA3NDQ1NiwgNjQ2MDYsIDk5MTcsIDAsIDkyMjMxLCA1MDM3LCAwLCAKKyAgICAxNzc2LCA4NDIyLCAwLCAxMTg4MTQsIDQxNTA4LCA0MTIwMSwgMzIzLCA0MzMyOCwgMCwgNDI2OTgsIDEyOTUsIDE5NDg1MywgCisgICAgNDYyNSwgMCwgNDYzMCwgMTMxMTcsIDAsIDEyODc3MiwgNjUxMjMsIDExMjkzLCAyNjY4LCAxMTI4OCwgMCwgNDI2NDAsIAorICAgIDY1NjY2LCAyNTE5LCA5MjM2OSwgNjU0MjAsIDkyNDc5LCAwLCA0MjUyLCA1MDQ5LCA0MjY1OSwgMTE5MDExLCA3MDYsIAorICAgIDc3NTQsIDEwODU0LCA4NzM4LCAwLCA2NTQxOSwgMCwgMCwgNjQ5LCA2NTQyMSwgMCwgNjY3MDIsIDAsIDEyNjcwLCAxMDEzLCAKKyAgICAwLCA2NDkxOSwgNzA1LCAwLCA2NTQyMiwgMTI3ODAzLCAxMTgzLCAxMjY1MTksIDcwMTcsIDQyODUyLCAwLCA4MTU3LCAKKyAgICA5NzM2LCA2NDUwMywgNjU0MTgsIDAsIDk4Mzg2OSwgNzQwMzUsIDAsIDExOTEzLCA3Mzg3NCwgNjY5NiwgMCwgODkyMCwgCisgICAgMTE5Mjk4LCAwLCA3OTYyLCAxMjIxMSwgOTgzNywgMjA1MSwgNjYyMjcsIDAsIDQxODQsIDAsIDAsIDEwMTc3LCA3Mzc3NywgCisgICAgMTg1NywgMTk0NjU3LCA0NjI2LCA4NDY0LCA4NDcyLCAwLCA0NjI5LCA4NDk5LCA3ODMyMSwgNzgzMjIsIDQ2MjQsIDc4MTgsIAorICAgIDExOTE3MywgMCwgMCwgNzgwNSwgMCwgOTQwMDcsIDY5MzUsIDkyMjkyLCA3ODMyNSwgNzgzMjYsIDc4MzIzLCA0MzMyNywgCisgICAgNDM5ODksIDExOTA0NiwgODQ5MiwgODI1MCwgODQ1OSwgMCwgODQ5NywgODQ5NiwgMCwgMCwgNzgzMzYsIDc4MzM5LCA5NTQzLCAKKyAgICA3ODMzNSwgNzgzMzIsIDc3ODMyLCA2NTg0OSwgNzc4MzEsIDk4Mzk1MiwgMCwgMTI0NTEsIDAsIDg2ODQsIDAsIDYxMDIsIDAsIAorICAgIDUyOTgsIDAsIDUyOTQsIDAsIDAsIDk4MzQ1MSwgMTk1MDYyLCA5OTQ5LCAxMTk4MjYsIDQzNjE3LCAxMTkyMTUsIDAsIAorICAgIDEyMDczLCAwLCAwLCA3Nzg2MywgMTMxMDgsIDEyMDYxNywgMTE0MzksIDQxNDY4LCA5ODM3NDgsIDAsIDUyOTIsIDU1MjcyLCAKKyAgICA5ODM4NzQsIDE5MzksIDUzMDIsIDM5NzAsIDkxNzg3OSwgMTI0NTUsIDE3OTMsIDAsIDAsIDAsIDY2NDMsIDkyNDc3LCAKKyAgICA2NTI2MywgMCwgNzgzMzAsIDQxMjkzLCA3ODMyOCwgNjU5MjMsIDAsIDEzMjE5LCA5NTY5LCAwLCA3NDM4MywgMCwgNzQxOTcsIAorICAgIDAsIDU1MDAsIDg4MTMsIDAsIDAsIDc0NTY2LCA1MzIyLCAwLCA3ODM0MCwgNDM2MzEsIDUzMjQsIDY2NDQzLCAzNzg0LCAKKyAgICA0MTYxNCwgNjUyNjksIDYyMzAsIDc4MzQ5LCA3ODM0NSwgNDMzMjQsIDMzNjAsIDc4MzQ0LCAxMTUyMywgMCwgOTI0ODgsIAorICAgIDk5MjYsIDcxOTcsIDAsIDY4NDI5LCA0Mjg5NCwgNDE4MjEsIDEyNDksIDc4MzYwLCA3ODM2MSwgNzgzNTYsIDc4MzU4LCAKKyAgICA3ODM1MywgNjQ4OTksIDY0NzYzLCA0MTE0OSwgNDE4MDcsIDQzMTYyLCA0MTgxNSwgNDExNTAsIDAsIDEwNTcxLCAxMDA5NiwgCisgICAgMCwgMCwgNzgwNzQsIDY5NDcsIDQxMTUyLCA4ODcsIDkyNDksIDY1NjUsIDc4NTEwLCA0MTk5MCwgNzg1MDksIDQxODExLCAKKyAgICA3NDQ2NiwgOTM5NjYsIDY2NzAsIDc3ODgyLCAwLCAwLCA0MzA5MiwgNDMzMjUsIDAsIDEwMTY4LCAwLCA5NzgxLCAxMjg2NTUsIAorICAgIDkxOTAsIDAsIDk2NjYsIDgyNjksIDY1OTQ0LCA3NDAwNSwgMTMwMTksIDExNjcwLCA2OTg2MCwgMzE1LCAxMjgxMywgCisgICAgOTgzNDUwLCA3ODQzMiwgNzgyNTYsIDc4MzUxLCA3ODM1MiwgMCwgOTgzNjQ4LCAwLCAwLCAxMzc4LCA5NTA5LCAwLCAwLCAKKyAgICA3NDQ3NSwgMzA2NiwgOTIyMjAsIDY3ODQ3LCAwLCA5MjM1NSwgMCwgNzgzNjUsIDg3ODcsIDEyMDM3OSwgMTk0NjE2LCAKKyAgICA0MTYxOCwgMTk0NjE1LCA3ODI2MSwgMTk0NjE0LCAwLCA2NDY1MiwgMCwgMTk0NjEyLCAwLCA3ODM2NiwgNDIwODgsIDAsIAorICAgIDE5NTA2MSwgNzE3NiwgNDM3NTYsIDEwMTM3LCA2MTIxLCAxMDk5NSwgNzgyNTksIDc0NTM0LCA4MTE5LCA2NDg3NCwgCisgICAgOTE3ODE2LCAxMjcxOTksIDE5NDkzOSwgMCwgNzQ1MjUsIDAsIDAsIDEyOTMwLCAxMzk0LCA3NDUxNCwgMCwgNzQ1MTUsIDAsIAorICAgIDExODgwNCwgMjk5OCwgOTUyNywgMTIwNjU5LCA2NTE5MCwgMTI5NzcsIDQyMDkwLCAxMTkxNjUsIDAsIDExOTEwMCwgCisgICAgNDEyMzYsIDkyMjM1LCA0MjAwNSwgNDIwMDMsIDQxMjM3LCA1ODQ4LCAwLCAwLCAzNjcwLCAxMjg2NTcsIDE5NDYwMCwgMCwgCisgICAgMCwgNzg5MCwgMCwgMTEyOTgsIDQzMzE1LCAwLCA2MjI5LCAxNTkzLCAwLCAwLCA2MTksIDQ2MzUsIDY1MDgwLCAwLCAKKyAgICAxMjgwMDIsIDQxMjAsIDY1MzM3LCA2NTMzNiwgMCwgMTE4MDgsIDExOTIxNCwgNzQxMTUsIDkzNjYsIDQyNzkwLCA0MjAwNiwgCisgICAgMTE5MTE1LCA2NTMyNywgNjUzMjYsIDY1MzI1LCAxMDc1NywgMTUwNywgNDIyMTYsIDY1MzIxLCA2NTMyMCwgNjUzMzUsIAorICAgIDY1MzM0LCA2NTMzMywgNjUzMzIsIDY1MzMxLCA0MjA1OSwgNjUzMjksIDQyNjg5LCA5MjQyNywgOTEyOCwgOTQwNDUsIAorICAgIDQyMDczLCA2Nzg1LCA2NDU5MCwgOTgzODIxLCA0MzcxLCA3MTk2LCA2NTMxOCwgMjAzNSwgNjUzMTYsIDQxMDYsIDY1MzE0LCAKKyAgICA2NTMxMywgNDIwNzQsIDEyNzg0NywgNDEyMjgsIDAsIDY1NjA5LCA0MTI0MSwgNzkwMywgNDEyMzksIDQzNTMzLCA3ODQ1OSwgCisgICAgNzE4OSwgMCwgMCwgMCwgMTIzNTcsIDQyODAyLCA3ODQ1MCwgODQ4NywgOTEzMSwgMCwgNDYxNSwgMTI2OTUsIDEyNzc1MiwgCisgICAgMCwgMTIxNzUsIDAsIDY0NTM1LCAwLCA3ODA5LCAwLCAwLCA1NjIsIDEyMTY5LCA2NTkwLCA2OTc2MiwgNjY0NTUsIDY0NzM4LCAKKyAgICAzMjE5LCA2ODY1NCwgOTgzNzc4LCAwLCAxMDM3LCAwLCAyMDI1LCAxMjgyNjMsIDEzMDk4LCA3ODQ0MiwgMTA2MzcsIDQ1NjgsIAorICAgIDU0OSwgMTU3MCwgMCwgMjgzNSwgMCwgMTA2MjQsIDQzNjIzLCAxMTA3MiwgMTI3MTkxLCAwLCAwLCAxMjYwNiwgNzg0MzMsIAorICAgIDI4MjUsIDAsIDEwODI1LCA4MDc5LCAyODIxLCA0MTA0NiwgOTIzMjcsIDczNjUsIDk4Mzc0NCwgMTIwNTkzLCAxMzA3MSwgMCwgCisgICAgNDUyLCA0MTA0OSwgNDI4NDAsIDYzNDYsIDI4MzEsIDU0NjEsIDc0NTk2LCAxMTQ2NSwgNTIxMiwgMCwgNjQ3MDMsIAorICAgIDExOTE5MSwgNDIzMDgsIDcxODEsIDAsIDQxMzMyLCAwLCAxMjMzMywgMCwgMTY2OCwgMCwgMCwgMCwgMTE4NywgOTgzMzc3LCAKKyAgICA0MjYyOCwgNzg1NzUsIDAsIDEyODc3NywgMCwgMzI0MCwgMTI4NTE4LCAxMjE5NCwgMCwgMTE1OTEsIDQxMDY1LCA1MzIzLCAKKyAgICA4MTY2LCAwLCAwLCAwLCA3NDUzNSwgMTYyMywgNjUyOTcsIDEyODg1NiwgNTcxLCAwLCA0OTE4LCAwLCA1Mjg4LCAxMjcyOTUsIAorICAgIDg5MTYsIDY1MDQ4LCAxOTA5LCA4ODY0LCAwLCAwLCAxMDczNiwgOTI1MDgsIDExNTcxLCA3NjE1LCAxMjczMDAsIDkyMjk2LCAKKyAgICA0MjM3LCA5MjU3NiwgMTAzNSwgNjU4MTUsIDAsIDc4ODEsIDcwMSwgNjU5MzYsIDM0ODksIDAsIDAsIDEyMDc1MSwgMTE0MDMsIAorICAgIDAsIDAsIDEyNzE0NiwgMzc5NiwgNjgwMCwgMCwgMzk5NCwgMTE0MjEsIDAsIDE5NTA3NiwgMCwgOTgzOTEzLCAwLCAwLCAKICAgICA2NDg1NywgMTI4MTA1LCAyODU1LCAxMjc4MjgsIDY2MzA4LCA0MTYyMSwgNjgyMTQsIDEyNzI4MywgMTI3ODE3LCAxMDY1NCwgCiAgICAgMCwgMTE5MjI2LCAxMjE2NCwgMzI0NiwgNzkwNiwgNDM5NzIsIDY1ODQ3LCA3MTgyLCAwLCAxMzAyNCwgMTk0ODIyLCAKLSAgICA3NDI3MCwgMTI4Mjg5LCAwLCAwLCAwLCAxNDk2LCA3NDcsIDAsIDk0MiwgMjM3OCwgNDMxMzYsIDEyNzkwNSwgODQ2NiwgMCwgCi0gICAgOTMyMCwgODAwMSwgMTIzMiwgODEzOSwgMTE2MTcsIDAsIDAsIDExNDA5LCA2ODM3MywgNjM4MiwgMCwgNjQ2MzQsIAotICAgIDEyODI3OSwgMCwgMTE2MTIsIDAsIDY3NjAwLCAyMzc0LCAwLCA4NDc1LCAxMTYwOSwgNjYzMTMsIDAsIDAsIDUyODYsIAotICAgIDExOTI5NywgMCwgMCwgNjQ5MjUsIDEyMDI4MywgMTk0NTg0LCAxMTg5ODIsIDE5NDU4MywgNzcwNSwgMTE5NDIsIDExMzA1LCAKLSAgICAxOTQ1ODEsIDMzMDksIDAsIDAsIDAsIDAsIDY4MDIsIDAsIDQxNjUzLCAxMjgwLCAxMjQxLCA3MTY4LCAxMjA5NiwgMCwgCi0gICAgNjY2MTUsIDQyNTY1LCA0MTY1MSwgMCwgMCwgMCwgNDE2NTAsIDY2NTA3LCA2NjQ3MCwgMCwgMTI5MTQsIDQxNDkxLCAKLSAgICA2NjAxMCwgMTE5NTUyLCA2MDc4LCA5OTU0LCAwLCAxNDc1LCAwLCA5OTM4LCA2MDg0LCA5MTc1NDYsIDQxMDY0LCA0MTA2MiwgCi0gICAgMCwgMCwgMzI1NiwgMTI4NjQwLCA0MjA3NiwgNDMyNTIsIDc4ODIzLCA5MTc5MDYsIDg3MjcsIDAsIDY1ODc1LCAwLCAwLCAKLSAgICAxMjc3NjIsIDEwNTYyLCA3NDIxNSwgNDMwNjUsIDAsIDAsIDMyNDgsIDc0Mjk3LCAzMjYxLCA5MDE1LCAwLCAwLCAzNjM1LCAKLSAgICA2NDMzNywgMCwgMCwgMCwgNzE5NSwgMCwgMjAwNywgNjQ0MzEsIDAsIDAsIDAsIDAsIDYzNSwgMCwgMCwgNjU2MTMsIAotICAgIDc3OTA5LCA5MjQyMCwgNzM5OTcsIDAsIDAsIDExOTIxOCwgNzk4NCwgODYwMCwgNzQ0MzQsIDEyNzc3MCwgNDE3NiwgMCwgCi0gICAgMjAzNCwgOTI1NTEsIDEyMDgwNSwgNjU4OTEsIDEyNzAzOCwgMCwgMzE4LCAyMDM4LCAxMjg4NjAsIDc4NTk2LCAwLCAzNjQ5LCAKLSAgICAxMzE0OSwgNDIxNDUsIDQyNzk4LCAzNjM0LCAxMjAyOTEsIDExODkyNywgNjc2NzcsIDEyMDEyNCwgNzg2NiwgMCwgMTE0MDIsIAotICAgIDQyMTQ2LCAxMjAxMzQsIDc0MjM4LCA0MjY2NCwgMjg0OSwgMTI3MDM0LCAwLCA3OTM4LCAxMjk2MCwgMTc2MSwgMTE4MTIsIAotICAgIDY1Mzc5LCA2ODM4NiwgMTI4MTg1LCAxMTU5LCAwLCA2OTcyOSwgMCwgMCwgNzE3OCwgMTk0NjMyLCAwLCA0MTY4MCwgMCwgCi0gICAgMTI4MjAzLCAxMTUzNCwgMTUxNCwgMTE2NjgsIDY3ODkxLCA5MzEzLCA3MDE1LCAwLCA2Nzg3NywgMCwgMTI5ODksIDY2NDc0LCAKLSAgICA5MzY4LCAxMjg0OCwgMTYyNCwgNDMyNzAsIDAsIDE5NDU2MywgMTA4MTgsIDEyODIwNywgOTk1MywgMCwgNzg0MjEsIDExOTQsIAotICAgIDMyNDIsIDk3NjEsIDk1NTUsIDg1OTgsIDEyMDI5OSwgNjE2OSwgMTI4NzEsIDE1NTEsIDI3OTgsIDY1MTc2LCA0OTU4LCAKLSAgICA0Mjc1MiwgMTE5MDI1LCAwLCA2Nzg3NSwgMTIwMzAxLCAzNDk1LCA2NjY0OCwgMTk0NzY4LCAwLCA2ODM2NCwgMCwgNDg5MSwgCi0gICAgMCwgMTA2NDEsIDAsIDczNzQ2LCAwLCA2ODM1MiwgMCwgNzM3ODcsIDAsIDE5NDYzMywgNzE5OSwgNjQ5NTUsIDAsIDAsIDAsIAotICAgIDAsIDAsIDQyNjg1LCA0MjY3OSwgMTkzLCAwLCAwLCAwLCA0MjY2NywgMCwgNTI3MSwgOTIzMTgsIDkyNTE3LCAxMTg4ODIsIAotICAgIDEzNjIsIDEzMjk3LCAwLCAxMjgwOTQsIDAsIDAsIDczNzg5LCAwLCA2NjU4LCA0NDI2LCAwLCA5MjYyOCwgMCwgOTIzMTksIAotICAgIDcyNzYsIDQyMTYzLCA1MjIwLCAwLCAwLCAwLCAyNDE2LCAzMzEwLCA0MjcwMywgMCwgMzc5LCAwLCAxMjc5NzcsIDAsIDAsIAotICAgIDMyMjMsIDY1NDkyLCAxMjg0LCAxOTQ3NzEsIDQ1NDksIDAsIDAsIDAsIDEyNzc2MywgMTA4MDcsIDk1NTgsIDE5NDYxMywgMCwgCi0gICAgODUxNSwgODY4OCwgMTI4NjYsIDAsIDMyOTQsIDAsIDg1MjksIDEyODEwMSwgNDMzODUsIDc1NjQsIDAsIDQzMzI5LCAwLCAKLSAgICA5MjQ1OCwgNzM3NTcsIDY2NDU2LCA0MjM1OSwgMCwgMjAzMSwgMCwgNzIwMiwgMCwgMTI2NzYsIDQyNzI5LCA5MjE5OCwgCi0gICAgMzIxNSwgMCwgNzcxMCwgMTYxMCwgNzM4MDEsIDAsIDAsIDY1NjgyLCAwLCAxMjA1MzcsIDY1OTI0LCA5OTc0LCAyMjgsIAotICAgIDY2MzU0LCAxNTAxLCAwLCA2NDM5NSwgNTE3OSwgNzIwMCwgNjIyNSwgMCwgNjU3OTQsIDE3MjUsIDY1NTMzLCA4MTk2LCAKLSAgICA3NDc2LCA3NDM5OSwgMCwgMCwgNzE1MiwgODUwMiwgNTc2MiwgMTk2NywgNzQ4MywgMCwgMCwgODEwNCwgMCwgNzQ3NCwgCi0gICAgOTI1NzEsIDAsIDAsIDEwNDE0LCAxMzAwMSwgODE0MSwgMCwgNDI1MzcsIDE1NTcsIDQzNTk0LCAxMjg2NDIsIDYzMzAsIAotICAgIDY4MDUsIDg2MzEsIDI1NDUsIDEyMDY3MiwgMTI3MTY2LCAwLCA3NDE5MCwgMCwgMCwgMCwgNDI3NjIsIDAsIDQyOTE0LCAKLSAgICAxNjUwLCAyNjIsIDE2MzcsIDAsIDc5MDEsIDMyMzgsIDEyODE3MywgNDE4NjEsIDAsIDAsIDY1MTU4LCAxMDg2MCwgMCwgCi0gICAgNDM2NTgsIDc1MjcsIDAsIDQzMzE5LCA2NDE5LCAwLCA0NSwgMCwgNjQ1ODgsIDAsIDAsIDExOTgxMCwgNzE5NCwgNTI5MSwgCi0gICAgMCwgNDM2NjYsIDEzMTI5LCAwLCA5MDg0LCAwLCA4NzM3LCAwLCAxMjg4MSwgMCwgMTI5MDYsIDk2MzksIDc5MTIsIDI2MjAsIAotICAgIDAsIDAsIDAsIDAsIDE3OSwgNjU4OTYsIDAsIDY0NzU2LCAyODUzLCA3ODQ0MywgMTE4ODEzLCAwLCAxMTg5OTYsIDExOTAwOSwgCi0gICAgMjg1MCwgODA4NCwgMCwgNzM4NTAsIDI4MDEsIDkyMjg0LCA0MjA2OSwgMTE5ODM5LCA3NDc1NCwgMTE5ODQxLCA0MjA3MiwgCi0gICAgMTE5ODQzLCAxMTk4NDIsIDEwMzk4LCAwLCAwLCA4Mzc3LCAxMjcxMTYsIDgyNDUsIDY4NDAxLCAzMTU4LCA5MjM5NiwgCi0gICAgMzk4MywgNDM2NTYsIDkyMywgMTE5ODU3LCAxMTk4NTYsIDI5MiwgMTMwMDIsIDExOTg0NSwgMTE5ODQ0LCAzMjIxLCAxNzYzLCAKLSAgICA5MjQ2MywgNDYxMiwgMTE5ODUxLCAxMTk4NTAsIDcyNTMsIDEyNzExMCwgNjgzOTEsIDAsIDEwNzgyLCAzNjM3LCAxMjk5NiwgCi0gICAgNDM1NDIsIDAsIDY0NTc4LCAwLCAzMjI4LCA2OTYzNiwgODc4MywgMCwgMTE5NjE0LCAyNzMxLCAwLCAwLCA3ODU4NSwgCi0gICAgNDEwMiwgNzY5NiwgNzM4NzgsIDAsIDAsIDc4NTg2LCA0MzMxNiwgNDE3NywgMTEyODMsIDkwODksIDAsIDczOTk2LCAwLCAKLSAgICA2NDUwMCwgNDM2NzQsIDAsIDY0OTQ3LCAxODU2LCAwLCAwLCA2Mzc5LCAwLCAwLCAwLCAzMjA4LCAxMjk3NSwgNzQ3NzUsIDAsIAotICAgIDAsIDkyMzg5LCA3NDA3MiwgNTUyNjksIDAsIDAsIDAsIDIwMzMsIDc4NTc3LCA3ODU3NiwgMTk1MDI2LCA1NTI1NCwgNzc0MCwgCi0gICAgMCwgMCwgMCwgNzM5NjQsIDAsIDAsIDY3NjEyLCA2NTY3NCwgMCwgMCwgNDE2ODksIDAsIDc0MDA2LCA2NDkwOSwgNjY0NiwgCi0gICAgMTE3OTAsIDc0MDE5LCAwLCAxMjgwNjYsIDEyODAzMSwgODU2MSwgNDU3MywgMCwgNTMyNiwgMCwgMTIwNjA1LCA3MjMwLCAKLSAgICA4MjU3LCAwLCA4Nzc4LCA0MTY4OCwgMCwgNjU3NzYsIDIwNzEsIDgzMTQsIDY0NTksIDAsIDc2MjgsIDY1MDkyLCA3MzkwMywgCi0gICAgNjY3MjEsIDExMzQyLCAxMjg1NjEsIDAsIDAsIDEyODIyNiwgMTI3MDAxLCAwLCAxMTgxMCwgMTMxNjQsIDEwNzIzLCA5NjcsIAotICAgIDAsIDAsIDExOTQ2LCAwLCAzMjU3LCAwLCAxMjMwNywgMTg0NSwgMCwgNDM1MjYsIDAsIDAsIDE4ODYsIDQyMzQyLCAxMDA4OSwgCi0gICAgODcwLCA3NjQ4LCAzNDk5LCA4NjA5LCA3NjUyLCA4NzYsIDg3MSwgODc3LCAwLCA4NzgsIDQyMDE1LCA4NzksIDQzNjkyLCAKLSAgICA0NTYzLCAwLCAwLCA3NTkxLCA2NTg4NywgODY3LCA5NTIwLCA4NzIsIDAsIDg2OCwgODczLCA3NjQyLCAwLCA4NjksIDg3NCwgCi0gICAgNzY0NCwgMCwgODc1LCA3OTAsIDEyODMwMywgMCwgMCwgMCwgNjYxODIsIDAsIDU0MjksIDAsIDY2MTgwLCAwLCA2NjE4MSwgCi0gICAgNjg0NTIsIDAsIDAsIDQyMDY3LCAwLCA1NDMzLCAxMDY1NywgNzkxMSwgMTk0NjIyLCAxNTQ3LCA2NjE3NiwgNDIwMTIsIAotICAgIDEyMDU3NiwgNTQyNSwgNDk3NywgOTk5OSwgNTMxNywgNTQyMywgNDYxMSwgMCwgNjc2MzcsIDAsIDk2NzksIDc0MTIyLCAwLCAKLSAgICAwLCAwLCA2NjE5NCwgNDQxOCwgNjYxODQsIDQ2MjgsIDQyNDUsIDExOTY0OCwgMCwgMCwgMTg1MSwgMCwgMTI3MTg5LCAKLSAgICAxMTkwOCwgMCwgOTM2MCwgMTE4ODk3LCAwLCA0Mjc3NiwgNjYxODcsIDEyODM3LCA4ODI5LCA3NzExLCA5MjcxNCwgMCwgCi0gICAgOTIzMjEsIDQzMzE4LCAwLCA4ODA5LCAxMTk5NzQsIDAsIDAsIDEyMDYwNCwgMCwgMCwgMCwgMCwgMCwgMCwgNzQyNywgCi0gICAgOTk1OCwgNDU4OCwgNDM2ODAsIDAsIDc0NDg0LCAwLCAyNDMzLCAwLCAxMTk2MjIsIDMzNTIsIDc0MzYzLCAwLCAwLCA3OTMsIAotICAgIDc0NDA0LCAwLCAzMDUsIDU2NywgNjc2NjIsIDg0MiwgMTI4NTE5LCA4MjA4LCAwLCA0MTY5NSwgMTY0NywgMTE4ODc3LCAwLCAKLSAgICA3ODM3LCA5MTc2MjUsIDgxOCwgNTMzNywgOTE3NjIyLCA5MTc2MjEsIDQxMzc2LCAxMTk5NzgsIDkxNzYxOCwgMTIwNTk0LCAKLSAgICA3NDA4NiwgOTE3NjE1LCA5MTc2MTQsIDkxNzYxMywgMTA5NzMsIDY2MzU5LCAxMzcyLCAxMjcxNzIsIDkxNzYwOCwgNDk2OSwgCi0gICAgMTI1NCwgOTE3NjA1LCA5MTc2MDQsIDkxNzYwMywgOTE3NjAyLCA2NTIyOCwgNzgyMjEsIDAsIDAsIDI4NDAsIDAsIAotICAgIDExOTk4MiwgMCwgMCwgMzI0NSwgOTA2OCwgNjgxOTQsIDY0NzI1LCAwLCAwLCAxMjk5MSwgMCwgMjY1MSwgMTI4NTI4LCAwLCAKLSAgICA5MTc2MTEsIDEyNzAyNiwgMTI4ODgzLCAwLCAwLCA0MzY0OCwgMTIwODEyLCAwLCA0MzMyMiwgOTI2NjIsIDAsIDAsIAotICAgIDY0MzcyLCA5MjY5OCwgMzIyNiwgNjU1LCA3NTIsIDc0NTcsIDc0NTYsIDc0NTIsIDMyODUsIDEyODc3OSwgMTI3ODIxLCAKLSAgICAxMTk5ODgsIDY1NjEwLCAyMzkxLCAwLCA5MjI0OCwgNjcxLCAyNTAsIDc0MzQsIDYxOCwgNjY4LCA2MTAsIDQyODAwLCAKLSAgICA3NDMxLCAxMTUyLCA0MjgwMSwgNjQwLCAxMjA2NjYsIDc0NDgsIDc0MzksIDYyOCwgMzkwNSwgNzM4MTAsIDAsIDEyODI2NiwgCi0gICAgNjQ3NDksIDY3ODUwLCAyMTA3LCAwLCAwLCA0NjA1LCAxMjgxNzQsIDAsIDQzMzcyLCA2NTk0NSwgMTI4ODM4LCAwLCAKLSAgICAxMTk1OTAsIDAsIDAsIDAsIDk4NywgNjkyNywgMTE1NzIsIDQyMjYxLCAxMTQ2NCwgMzM2NSwgOTk3MSwgMCwgMCwgCi0gICAgMTI4Mjk3LCAwLCAwLCAwLCAwLCAxMTMzNCwgNDMzMjYsIDEyNjA5LCAxMTUxOSwgMTE1MDMsIDU1MzAsIDUyMTAsIDAsIAotICAgIDQ2MjcsIDAsIDUyMDgsIDAsIDEyODg0MiwgMTAzMzIsIDUyMTgsIDc5NzYsIDkxNTYsIDAsIDMyNDQsIDU1MjksIDY5NjQ3LCAKLSAgICA3Mzg5NCwgMTI4ODUyLCA1NDMyLCA2NDk2NSwgNTUyNywgNzQwMzMsIDEwNTE2LCA3NzkwLCA1NTI4LCAwLCA0MjE0MCwgCi0gICAgMTIwMjgxLCAwLCAwLCA0MzU0NSwgOTg4NywgMCwgNDAwMCwgNzQyOSwgNzQyOCwgNjY1LCA3NDI0LCAzMjA2LCAxMjAyNzgsIAotICAgIDc4ODQsIDAsIDEyODU2NiwgOTE3OTg5LCAxMjg2NjYsIDIxMSwgMjUwOSwgMCwgMTIwNTczLCA2ODY3MiwgMzIyMCwgCi0gICAgNDIyMzUsIDAsIDEwNjkwLCA4OTUxLCA1MjE0LCA0MjQ3NCwgODExOCwgMCwgNzA0OCwgNDU5MCwgMTI3MjU4LCA1ODUyLCAwLCAKLSAgICAwLCAxMjcyNTksIDE3MDgsIDAsIDAsIDI2MjMsIDExOTQzLCAwLCA2OTIyNiwgMCwgNDY5OCwgNjY1MDksIDEwNjYsIAotICAgIDExOTkyMSwgNDcwMSwgMCwgMTIwMjg1LCA3NDIyNSwgMTE5MTE0LCA4MjY3LCAwLCAxMjcyNjUsIDAsIDc1MTYsIDAsIAotICAgIDI2MjUsIDAsIDgwMzQsIDc0MzA5LCAwLCAzNjMxLCAxMDk1NSwgNzg1MCwgMTIwMjkzLCA4NDE2LCAwLCAwLCAwLCA0MzM4NCwgCi0gICAgMTI2NjAsIDAsIDAsIDAsIDc0ODUwLCA0MTA2OSwgMCwgMTI4MTU2LCAxMjA5OSwgNDMxMCwgMTAwMzIsIDYyNTIsIDcxMywgCi0gICAgNzk5MCwgMCwgMzk5MCwgMCwgMCwgNjYzNjgsIDUwMTcsIDY0OTU2LCA3MDcxLCAwLCAxMTkxNDQsIDEwMzAsIDExODgwMCwgCi0gICAgMCwgOTUxMywgNDEwNTksIDkzNTcsIDAsIDE3NzMsIDAsIDEyMDM1MCwgMCwgNjMzOSwgNzc0NSwgOTg0NCwgMCwgNjQ2NTAsIAotICAgIDk0LCAxODgwLCA3NDc2NiwgMCwgODkwOCwgMCwgMTI4NzA3LCA2NTkxMywgNzg0NzAsIDEwNzUyLCAxMzAwMywgMCwgMCwgCi0gICAgNDEzMDcsIDg3MzIsIDEyMDMzOCwgMCwgMTc1NywgNjk2NCwgNDY5NiwgMCwgMCwgNjQ3ODUsIDczOTQsIDM2NDEsIDU0MTksIAotICAgIDEyODA1NSwgMCwgMTI3ODgzLCAwLCAxMjAzNDQsIDQzOTg4LCAwLCA4NjEwLCA0MzA2MiwgNzU5MiwgODU2LCA3NDI5OSwgCi0gICAgOTM2LCAxMzI4OSwgMTI3NTIxLCA0MzE3MSwgMTQ1OSwgMCwgNjUyNDMsIDc4NjM4LCAxOTk1MywgMCwgMTUwNCwgMTE5MTA4LCAKLSAgICAwLCAxMjkxMywgNzQyMDYsIDc1MjksIDAsIDAsIDAsIDEyMDc4MiwgNDExMywgMCwgMjM3MiwgMzM2LCAwLCA3NTA5LCAKLSAgICAxMjE1MiwgMCwgNjgyLCA2NjQ1OCwgNDE1MDUsIDAsIDY0NzQzLCAxMDU5MywgMTcwMywgMCwgMCwgODAzMywgMCwgMCwgCi0gICAgOTgxMCwgMTI3MjY5LCAwLCAxMjk3MCwgMCwgNDIzNTEsIDEwMTA5LCAwLCAwLCAxOTQ2OTMsIDAsIDExOTI0NywgMCwgMCwgCi0gICAgNzQyOTEsIDE5NjUsIDcwNjksIDQzMzEyLCAwLCA3Mzg4NywgMCwgMjA4NywgNjQzNzAsIDYzMTQsIDQxNzE0LCA4NTAxLCAwLCAKLSAgICAwLCA3NDIzOSwgNDEzMTcsIDkyNjE0LCAyMDkxLCA3NDU0NSwgMjA5MCwgMCwgOTM1MywgNzExNywgMjA3NywgNzc4ODYsIDAsIAotICAgIDEwNDk4LCAyMDgzLCA3Nzg4OCwgMCwgMCwgMTE5MjM2LCA2MzQsIDAsIDAsIDAsIDY5Nzc5LCA0MTY1LCA4NzQ2LCAwLCAKLSAgICA5NjU0LCAxMjg1NiwgNjkyNCwgMCwgNzA2NiwgMCwgMCwgMTI4MTM1LCA0MTAzNywgNDI2OTIsIDc3ODYsIDEyOTU5LCAKLSAgICA0MTAzOSwgMCwgMCwgNjgwLCA2Mjc0LCAxMjgyMDAsIDExODEsIDcwNTYsIDMxNzQsIDAsIDAsIDkyNjY4LCA2NTY2NSwgCi0gICAgMTI3Mzc1LCAwLCA2OTIwLCAwLCA5MjI5NSwgMCwgMTE4OTY1LCAwLCA2NDY0NCwgMTI2OTgxLCAwLCAwLCA0MTAyOCwgMCwgCi0gICAgNjIzMSwgMjYxMywgNjUzMDIsIDQwOTg5LCAwLCAxOTQ2OTYsIDAsIDQyNzYwLCAwLCAwLCAwLCA0MDk4NywgNDY2NywgMCwgCi0gICAgMCwgODgyOCwgMCwgMCwgMTI0NiwgNDc0NiwgMCwgMCwgMTEwMjEsIDQ3NDksIDkyNjc1LCAwLCA5MjEsIDQ3NDQsIDAsIAotICAgIDEyNzAyLCAyNDIsIDAsIDE1NjYsIDgyMTcsIDAsIDY0NjUzLCA3ODM4NiwgMTI4MTIxLCA3NDAzNiwgNzQ1MDUsIDQzMjc0LCAKLSAgICA1MzEzLCA5NTEsIDAsIDAsIDAsIDc2MDQsIDAsIDQwMDksIDEyNzgxNiwgMCwgMTIwNTYyLCAwLCAwLCA2NDg2MCwgCi0gICAgMTE5MTM4LCAxMTkwNjksIDAsIDEyNzM3MCwgNDA0OCwgMCwgMCwgMTIwNTk2LCAxNjQ2LCA3Nzg5MCwgNjQ1MzQsIDczOTk1LCAKLSAgICAxMjA3MDUsIDAsIDExOTg5MCwgMjU3OSwgMTE5OTA1LCAzMTc3LCAxMTM1NywgOTA5OSwgNDEwNywgMzQ0MSwgMTE5ODk0LCAKLSAgICAyOTc1LCA3NDQ0MiwgOTgyMiwgMCwgNTUyMjAsIDEwMDg0LCA3Mzk0MywgMTE4ODQwLCAwLCA5MTc1NjIsIDAsIDMzOTksIAotICAgIDk4NTEsIDAsIDExOTA5LCA5MDU5LCAwLCA3Njg3LCAwLCA2Nzg5LCAwLCAwLCAwLCAwLCAwLCAwLCAxNzc3LCA5MTUxLCAKLSAgICAxMTM3LCA2OTc2NywgNzQ5LCA0MjM2NiwgMCwgNTM4NSwgMTI4NTc0LCAxMjgyMTgsIDAsIDAsIDU5ODksIDAsIDAsIAotICAgIDEyODA5MSwgMCwgNDE2ODUsIDY5MjIzLCAwLCA5NzY5LCA0MTY4NCwgMCwgNTE5LCAwLCAxMTc0MCwgNTc2NiwgMCwgMCwgCi0gICAgMjYwMCwgODg0OCwgMTIwMTM4LCA0MTI5NywgMCwgMzY2NiwgNzQ0NzMsIDQxMzAwLCA3NDQ2OCwgNjUxNjAsIDAsIDY5Njg4LCAKLSAgICA2OTc3MSwgNzQ0NzksIDAsIDY1NTgsIDAsIDAsIDY5NzY1LCAxMjA3NTAsIDI1MiwgMCwgNDEzMDIsIDAsIDAsIDAsIAotICAgIDY5NzYzLCAwLCAxMTcyOSwgODcxOSwgOTA2MCwgMCwgMTIwMTM5LCAxMDc2MSwgMCwgMCwgMCwgMTE4NzkyLCAxMTczNCwgMCwgCi0gICAgMTE3MzAsIDAsIDk1OTMsIDU3NTcsIDI0MDMsIDY0ODA4LCA1NTI3NSwgMCwgMTE3MjgsIDQzNTcyLCAwLCAwLCA3NzY0LCAwLCAKLSAgICAxMTA5NCwgMTIwODI1LCAwLCAwLCA0MjgyLCA4Mjk4LCAwLCAwLCAwLCAwLCAwLCA2NDQ0OSwgMCwgMTI3NTA5LCA2Mzg1NCwgCi0gICAgODQ1NiwgMCwgNzQ3ODMsIDY1NjcwLCAwLCA3ODI1MCwgMCwgNzc3NCwgMTA2MDcsIDk3OTIsIDAsIDAsIDAsIDAsIAotICAgIDEyMDc2NCwgMCwgMTAwMTksIDc0NzYyLCAwLCAzNDU4LCA0MzY1LCAwLCAwLCAzNjQ3LCAwLCAyNjAyLCAxMjgzNDEsIDAsIAotICAgIDE5NDcwNywgNDExMzUsIDAsIDAsIDAsIDY0NjMxLCAxNzIsIDQ5NzEsIDQxMjE5LCA0MTEzNywgMTg4OSwgNzIzOCwgNjU0NSwgCi0gICAgMCwgOTIxOTMsIDc1OTcsIDEwNTI4LCAwLCAwLCAzNzMyLCA3MzkxMCwgMTk0NTg4LCA1MzQ0LCAwLCA0MzM2NiwgNDMzNjMsIAotICAgIDkwNjIsIDExOTI1MiwgMCwgMCwgMCwgNjQ0NzksIDkyMzIsIDkyNTk2LCAwLCAwLCAxOTQ3MTIsIDEwOTAwLCA0MTUzMSwgCi0gICAgMTI2MywgMzcyMCwgMTIwNDgsIDAsIDY0MjkyLCA0MTUyNCwgNzIyNywgMTE5NjM1LCA2MDk5LCA0MTUzNCwgMCwgMTI3MzU0LCAKLSAgICAxMjczNDUsIDI5OSwgMCwgODUyNSwgMTI3MzQ3LCAzNTI0LCA5MTc1NjUsIDg4MzEsIDEyNzM0OSwgOTI1NjQsIDMwNzUsIAotICAgIDY3ODY3LCAxMjczNTIsIDAsIDY2MzYyLCAwLCA2NDM1MywgMCwgMCwgNTg0NSwgMCwgMCwgMCwgMjU4MSwgODIwMCwgCi0gICAgNjUxMTQsIDY4NDYwLCAwLCA0MzI4MywgNTU1MSwgMCwgMTIwNzM1LCAwLCA2MzQwLCAxMTg4NTUsIDAsIDc4MTM0LCA4NjgwLCAKLSAgICA3MjA0LCAwLCAyNTg4LCAyOTE0LCA3MDExLCA1NTI4MSwgMCwgMjQ3MSwgMTk0NjMxLCAyODgzLCAyNzQ5LCAxMTk1NjMsIAorICAgIDc0MjcwLCAxMjgyODksIDAsIDAsIDAsIDE0OTYsIDc0NywgMCwgOTQyLCAyMzc4LCA0MzEzNiwgMTI3OTA1LCA4NDY2LCAKKyAgICA5ODM1NzUsIDkzMjAsIDgwMDEsIDEyMzIsIDgxMzksIDExNjE3LCAwLCAwLCAxMTQwOSwgNjgzNzMsIDYzODIsIDAsIAorICAgIDY0NjM0LCAxMjgyNzksIDAsIDExNjEyLCAwLCA2NzYwMCwgMjM3NCwgOTQwNjYsIDg0NzUsIDExNjA5LCA2NjMxMywgMCwgMCwgCisgICAgNTI4NiwgMTE5Mjk3LCAwLCAwLCA2NDkyNSwgMTIwMjgzLCAxOTQ1ODQsIDExODk4MiwgMTk0NTgzLCA3NzA1LCAxMTk0MiwgCisgICAgMTEzMDUsIDE5NDU4MSwgMzMwOSwgMCwgMCwgMCwgMCwgNjgwMiwgMCwgNDE2NTMsIDEyODAsIDEyNDEsIDcxNjgsIDEyMDk2LCAKKyAgICAwLCA2NjYxNSwgNDI1NjUsIDQxNjUxLCAwLCAwLCAwLCA0MTY1MCwgNjY1MDcsIDY2NDcwLCAwLCAxMjkxNCwgNDE0OTEsIAorICAgIDY2MDEwLCAxMTk1NTIsIDYwNzgsIDk5NTQsIDAsIDE0NzUsIDExOTI0NywgOTkzOCwgNjA4NCwgOTE3NTQ2LCA0MTA2NCwgCisgICAgNDEwNjIsIDAsIDAsIDMyNTYsIDEwMTg5LCA0MjA3NiwgNDMyNTIsIDc4ODIzLCA5MTc5MDYsIDg3MjcsIDAsIDY1ODc1LCAwLCAKKyAgICAwLCAxMjc3NjIsIDEwNTYyLCA3NDIxNSwgNDMwNjUsIDAsIDAsIDMyNDgsIDc0Mjk3LCAzMjYxLCA5MDE1LCA3MTM1MSwgMCwgCisgICAgMzYzNSwgNjQzMzcsIDk4MzI3MywgMCwgMCwgNzE5NSwgMCwgMjAwNywgNjQ0MzEsIDAsIDAsIDAsIDAsIDYzNSwgMCwgMCwgCisgICAgNjU2MTMsIDc3OTA5LCA5MjQyMCwgNzM5OTcsIDAsIDAsIDExOTIxOCwgNzk4NCwgODYwMCwgNzQ0MzQsIDEyNzc3MCwgCisgICAgNDE3NiwgNzAwNTAsIDIwMzQsIDkyNTUxLCAxMjA4MDUsIDY1ODkxLCAxMjcwMzgsIDAsIDMxOCwgMjAzOCwgMTI4ODYwLCAKKyAgICA3ODU5NiwgMCwgMzY0OSwgMTMxNDksIDQyMTQ1LCA0Mjc5OCwgMzYzNCwgMTIwMjkxLCAxMTg5MjcsIDY3Njc3LCAxMjAxMjQsIAorICAgIDc4NjYsIDAsIDExNDAyLCA0MjE0NiwgOTQwMzIsIDc0MjM4LCA0MjY2NCwgMjg0OSwgMTI3MDM0LCAwLCA3OTM4LCAxMjk2MCwgCisgICAgMTc2MSwgMTE4MTIsIDY1Mzc5LCA2ODM4NiwgMTI4MTg1LCAxMTU5LCAwLCA2OTcyOSwgMCwgMCwgNzE3OCwgMTk0NjMyLCAwLCAKKyAgICA0MTY4MCwgMCwgMTI4MjAzLCAxMTUzNCwgMTUxNCwgMTE2NjgsIDY3ODkxLCA5MzEzLCA3MDE1LCAwLCA2Nzg3NywgCisgICAgMTk0NTY3LCAxMjk4OSwgNjY0NzQsIDkzNjgsIDEyODQ4LCAxNjI0LCA0MzI3MCwgMCwgNzQyNzgsIDEwODE4LCAxMjY2NDQsIAorICAgIDk5NTMsIDAsIDc4NDIxLCAxMTk0LCAzMjQyLCA5NzYxLCA5NTU1LCA4NTk4LCAxMjAyOTksIDYxNjksIDEyODcxLCAxNTUxLCAKKyAgICAyNzk4LCA2NTE3NiwgNDk1OCwgNDI3NTIsIDExOTAyNSwgMCwgNjc4NzUsIDEyMDMwMSwgMzQ5NSwgNjY2NDgsIDE5NDc2OCwgCisgICAgMCwgNjgzNjQsIDk4MzIyMiwgNDg5MSwgMCwgMTA2NDEsIDAsIDczNzQ2LCAwLCA2ODM1MiwgMCwgNzM3ODcsIDE5NDgyOSwgCisgICAgMTk0NjMzLCA3MTk5LCA2NDk1NSwgMCwgMCwgMCwgMCwgMCwgNDI2ODUsIDQyNjc5LCAxOTMsIDAsIDAsIDAsIDQyNjY3LCAwLCAKKyAgICA1MjcxLCA5MjMxOCwgOTI1MTcsIDExODg4MiwgMTM2MiwgMTMyOTcsIDAsIDEyODA5NCwgMCwgOTgzMzIzLCA3Mzc4OSwgMCwgCisgICAgNjY1OCwgNDQyNiwgMCwgOTI2MjgsIDk4MzgzMywgOTIzMTksIDcyNzYsIDQyMTYzLCA1MjIwLCAwLCAwLCA5ODMzMjIsIAorICAgIDI0MTYsIDMzMTAsIDQyNzAzLCAwLCAzNzksIDAsIDQzNzU1LCAwLCAwLCAzMjIzLCA2NTQ5MiwgMTI4NCwgMTk0NzcxLCAKKyAgICA0NTQ5LCAwLCAwLCA5ODMxNTQsIDEyNzc2MywgMTA4MDcsIDk1NTgsIDE5NDYxMywgMCwgODUxNSwgODY4OCwgMTI4NjYsIAorICAgIDY1MzA4LCAzMjk0LCA5ODMzMjQsIDg1MjksIDEyODEwMSwgNDMzODUsIDc1NjQsIDAsIDQzMzI5LCAwLCA5MjQ1OCwgCisgICAgNzM3NTcsIDY2NDU2LCA0MjM1OSwgMCwgMjAzMSwgMCwgNzIwMiwgMCwgMTI2NzYsIDQyNzI5LCA5MjE5OCwgMzIxNSwgMCwgCisgICAgNzcxMCwgMTYxMCwgNzM4MDEsIDAsIDAsIDY1NjgyLCAwLCAxMjA1MzcsIDY1OTI0LCA5OTc0LCAyMjgsIDY2MzU0LCAxNTAxLCAKKyAgICAwLCA2NDM5NSwgNTE3OSwgNzIwMCwgNjIyNSwgMCwgNjU3OTQsIDE3MjUsIDY1NTMzLCA4MTk2LCA3NDc2LCA3NDM5OSwgMCwgCisgICAgMCwgNzE1MiwgODUwMiwgNTc2MiwgMTk2NywgNzQ4MywgMCwgMCwgODEwNCwgMCwgNzQ3NCwgNzc5NzksIDAsIDEyNjUwNywgCisgICAgMTA0MTQsIDEzMDAxLCA4MTQxLCAwLCA0MjUzNywgMTU1NywgNDM1OTQsIDEyODY0MiwgNjMzMCwgNjgwNSwgODYzMSwgCisgICAgMjU0NSwgNzAwNTIsIDEyNzE2NiwgMCwgNzQxOTAsIDAsIDAsIDk4Mzc3NywgNDI3NjIsIDAsIDQyOTE0LCAxNjUwLCAyNjIsIAorICAgIDE2MzcsIDAsIDc5MDEsIDMyMzgsIDEyODE3MywgNDE4NjEsIDAsIDEyODU4NSwgNjUxNTgsIDEwODYwLCA5NDA1OSwgCisgICAgNDM2NTgsIDc1MjcsIDAsIDQzMzE5LCA2NDE5LCAwLCA0NSwgMCwgNjQ1ODgsIDkzOTg5LCAwLCAxMTk4MTAsIDcxOTQsIAorICAgIDUyOTEsIDAsIDQzNjY2LCAxMzEyOSwgMCwgOTA4NCwgMCwgODczNywgMCwgMTI4ODEsIDAsIDEyOTA2LCA5NjM5LCA3OTEyLCAKKyAgICAyNjIwLCAwLCAwLCAwLCA5ODM4NjYsIDE3OSwgNjU4OTYsIDAsIDY0NzU2LCAyODUzLCA3ODQ0MywgMTE4ODEzLCA5ODM4ODEsIAorICAgIDExODk5NiwgMTE5MDA5LCAyODUwLCA4MDg0LCA5ODMwODUsIDczODUwLCAyODAxLCA5MjI4NCwgNDIwNjksIDExOTgzOSwgCisgICAgNzQ3NTQsIDExOTg0MSwgNDIwNzIsIDExOTg0MywgMTE5ODQyLCAxMDM5OCwgOTgzMDU2LCAwLCA4Mzc3LCAxMjcxMTYsIAorICAgIDgyNDUsIDY4NDAxLCAzMTU4LCA5MjM5NiwgMzk4MywgNDM2NTYsIDkyMywgMTE5ODU3LCAxMTk4NTYsIDI5MiwgMTMwMDIsIAorICAgIDExOTg0NSwgMTE5ODQ0LCAzMjIxLCAxNzYzLCA5MjQ2MywgNDYxMiwgMTE5ODUxLCAxMTk4NTAsIDcyNTMsIDEyNzExMCwgCisgICAgNjgzOTEsIDAsIDEwNzgyLCAzNjM3LCAxMjk5NiwgNDM1NDIsIDAsIDY0NTc4LCA5ODM2NjYsIDMyMjgsIDY5NjM2LCA4NzgzLCAKKyAgICAwLCAxMTk2MTQsIDI3MzEsIDAsIDAsIDc4NTg1LCA0MTAyLCA3Njk2LCA3Mzg3OCwgMCwgMCwgNzg1ODYsIDQzMzE2LCAKKyAgICA0MTc3LCAxMTI4MywgOTA4OSwgMCwgNzM5OTYsIDk4MzE3MywgNjQ1MDAsIDQzNjc0LCAwLCA2NDk0NywgMTg1NiwgMCwgMCwgCisgICAgNjM3OSwgMCwgMCwgMCwgMzIwOCwgMTI5NzUsIDc0Nzc1LCAxMjczODAsIDk4MzkyMiwgOTIzODksIDc0MDcyLCA1NTI2OSwgCisgICAgMCwgMCwgOTgzNjc0LCAyMDMzLCA3ODU3NywgNzg1NzYsIDE5NTAyNiwgNTUyNTQsIDc3NDAsIDAsIDAsIDAsIDczOTY0LCAwLCAKKyAgICA5Mzk4OCwgNjc2MTIsIDY1Njc0LCAxMjgyNDQsIDk0MTEwLCA0MTY4OSwgMCwgNzQwMDYsIDY0OTA5LCA2NjQ2LCAxMTc5MCwgCisgICAgNzQwMTksIDAsIDEyODA2NiwgMTI4MDMxLCA4NTYxLCA0NTczLCAwLCA1MzI2LCAwLCAxMjA2MDUsIDcyMzAsIDgyNTcsIDAsIAorICAgIDg3NzgsIDQxNjg4LCAwLCA2NTc3NiwgMjA3MSwgODMxNCwgNjQ1OSwgMCwgNzYyOCwgNjUwOTIsIDczOTAzLCA2NjcyMSwgCisgICAgMTEzNDIsIDEyODU2MSwgMCwgMCwgMTI4MjI2LCAxMjcwMDEsIDAsIDExODEwLCAxMzE2NCwgMTA3MjMsIDk2NywgOTgzOTQyLCAKKyAgICAxMjY0NjksIDExOTQ2LCAwLCAzMjU3LCAwLCAxMjMwNywgMTg0NSwgOTgzMTU3LCA0MzUyNiwgMCwgMCwgMTg4NiwgNDIzNDIsIAorICAgIDEwMDg5LCA4NzAsIDc2NDgsIDM0OTksIDg2MDksIDc2NTIsIDg3NiwgODcxLCA4NzcsIDAsIDg3OCwgNDIwMTUsIDg3OSwgCisgICAgNDM2OTIsIDQ1NjMsIDAsIDAsIDc1OTEsIDY1ODg3LCA4NjcsIDk1MjAsIDg3MiwgMTI2NjA3LCA4NjgsIDg3MywgNzY0MiwgCisgICAgMCwgODY5LCA4NzQsIDc2NDQsIDEyMDY3NCwgODc1LCA3OTAsIDEyODMwMywgMCwgMCwgMCwgNjYxODIsIDk4MzI1MCwgCisgICAgNTQyOSwgMTk1MDU1LCA2NjE4MCwgMTI2NDgwLCA2NjE4MSwgNjg0NTIsIDk4MzI4MSwgOTgzMjQyLCA0MjA2NywgMCwgCisgICAgNTQzMywgMTA2NTcsIDc5MTEsIDE5NDYyMiwgMTU0NywgNjYxNzYsIDQyMDEyLCAxMjA1NzYsIDU0MjUsIDQ5NzcsIDk5OTksIAorICAgIDUzMTcsIDU0MjMsIDQ2MTEsIDAsIDY3NjM3LCAwLCA5Njc5LCA3NDEyMiwgMCwgMCwgMCwgNjYxOTQsIDQ0MTgsIDY2MTg0LCAKKyAgICA0NjI4LCA0MjQ1LCAxMTk2NDgsIDAsIDAsIDE4NTEsIDAsIDEyNzE4OSwgMTE5MDgsIDAsIDkzNjAsIDExODg5NywgCisgICAgOTgzMjcwLCA0Mjc3NiwgNjYxODcsIDEyODM3LCA4ODI5LCA3NzExLCA5MjcxNCwgMCwgOTIzMjEsIDQzMzE4LCAwLCA4ODA5LCAKKyAgICA2OTg4MSwgMCwgOTgzMTQyLCAxMjA2MDQsIDk4MzA1MiwgOTgzODczLCAwLCA5ODMyNjIsIDAsIDAsIDc0MjcsIDk5NTgsIAorICAgIDQ1ODgsIDQzNjgwLCAwLCA3NDQ4NCwgMTk0OTY4LCAyNDMzLCAwLCAxMTk2MjIsIDMzNTIsIDc0MzYzLCA5ODM4NzYsIDAsIAorICAgIDc5MywgNzQ0MDQsIDAsIDMwNSwgNTY3LCA2NzY2MiwgODQyLCAxMjg1MTksIDgyMDgsIDAsIDQxNjk1LCAxNjQ3LCAKKyAgICAxMTg4NzcsIDAsIDc4MzcsIDkxNzYyNSwgODE4LCA1MzM3LCAxOTQ2MjgsIDkxNzYyMSwgNDEzNzYsIDExOTk3OCwgCisgICAgMTI2NTc2LCAxMjA1OTQsIDc0MDg2LCA5MTc2MTUsIDkxNzYxNCwgOTE3NjEzLCAxMDk3MywgNjYzNTksIDEzNzIsIAorICAgIDEyNzE3MiwgOTE3NjA4LCA0OTY5LCAxMjU0LCA5MTc2MDUsIDkxNzYwNCwgOTM5NjcsIDkxNzYwMiwgNjUyMjgsIDc4MjIxLCAKKyAgICAxMjY2MTIsIDAsIDI4NDAsIDAsIDExOTk4MiwgOTgzOTMwLCAwLCAzMjQ1LCA5MDY4LCA2ODE5NCwgNjQ3MjUsIDAsIDAsIAorICAgIDEyOTkxLCAwLCAyNjUxLCA2ODAxNiwgOTgzMjU3LCA5MTc2MTEsIDEyNzAyNiwgMTI4ODgzLCAwLCAwLCA0MzY0OCwgCisgICAgMTIwODEyLCAwLCA0MzMyMiwgOTI2NjIsIDAsIDAsIDY0MzcyLCA5MjY5OCwgMzIyNiwgNjU1LCA3NTIsIDc0NTcsIDc0NTYsIAorICAgIDc0NTIsIDMyODUsIDEyODc3OSwgMTI3ODIxLCAxMTk5ODgsIDY1NjEwLCAyMzkxLCAwLCA5MjI0OCwgNjcxLCAyNTAsIAorICAgIDc0MzQsIDYxOCwgNjY4LCA2MTAsIDQyODAwLCA3NDMxLCAxMTUyLCA0MjgwMSwgNjQwLCAxMjA2NjYsIDc0NDgsIDc0MzksIAorICAgIDYyOCwgMzkwNSwgNzM4MTAsIDAsIDEyODI2NiwgNjQ3NDksIDY3ODUwLCAyMTA3LCAwLCAwLCA0NjA1LCAxMjgxNzQsIAorICAgIDk4MzE5MiwgNDMzNzIsIDY1OTQ1LCAxMjg4MzgsIDAsIDExOTU5MCwgMCwgMCwgMCwgOTg3LCA2OTI3LCAxMTU3MiwgCisgICAgNDIyNjEsIDExNDY0LCAzMzY1LCA5OTcxLCAwLCAwLCAxMjgyOTcsIDAsIDAsIDAsIDAsIDExMzM0LCA0MzMyNiwgMTI2MDksIAorICAgIDExNTE5LCAxMTUwMywgNTUzMCwgNTIxMCwgMCwgNDYyNywgOTgzODgzLCA1MjA4LCAwLCAxMjg4NDIsIDEwMzMyLCA1MjE4LCAKKyAgICA3OTc2LCA5MTU2LCAwLCAzMjQ0LCA1NTI5LCA2OTY0NywgNzM4OTQsIDEyODg1MiwgNTQzMiwgNjQ5NjUsIDU1MjcsIAorICAgIDc0MDMzLCAxMDUxNiwgNzc5MCwgNTUyOCwgMCwgNDIxNDAsIDEyMDI4MSwgMCwgMCwgNDM1NDUsIDk4ODcsIDAsIDQwMDAsIAorICAgIDc0MjksIDc0MjgsIDY2NSwgNzQyNCwgMzIwNiwgMTIwMjc4LCA3ODg0LCAwLCAxMjg1NjYsIDkxNzk4OSwgMTI4NjY2LCAKKyAgICAyMTEsIDI1MDksIDEyODg1OCwgMTIwNTczLCA2ODY3MiwgMzIyMCwgNDIyMzUsIDAsIDEwNjkwLCA4OTUxLCA1MjE0LCAKKyAgICA0MjQ3NCwgODExOCwgMCwgNzA0OCwgNDU5MCwgMTI3MjU4LCA1ODUyLCAwLCAwLCAxMjcyNTksIDE3MDgsIDAsIDk4MzE2NSwgCisgICAgMjYyMywgMTE5NDMsIDAsIDY5MjI2LCAwLCA0Njk4LCA2NjUwOSwgMTA2NiwgMTE5OTIxLCA0NzAxLCA5ODM4NjcsIAorICAgIDEyMDI4NSwgNzQyMjUsIDk0MTExLCA4MjY3LCAwLCAxMjcyNjUsIDAsIDc1MTYsIDAsIDI2MjUsIDk4Mzk2OCwgODAzNCwgCisgICAgNzQzMDksIDAsIDM2MzEsIDEwOTU1LCA3ODUwLCAxMjAyOTMsIDg0MTYsIDAsIDAsIDAsIDQzMzg0LCAxMjY2MCwgMCwgMCwgCisgICAgMCwgNzQ4NTAsIDQxMDY5LCAwLCAxMjgxNTYsIDEyMDk5LCA0MzEwLCAxMDAzMiwgNjI1MiwgNzEzLCA3OTkwLCAwLCAzOTkwLCAKKyAgICAwLCA5ODMyNTQsIDY2MzY4LCA1MDE3LCA2NDk1NiwgNzA3MSwgMCwgMTE5MTQ0LCAxMDMwLCAxMTg4MDAsIDk4MzEyMCwgCisgICAgOTUxMywgNDEwNTksIDkzNTcsIDAsIDE3NzMsIDAsIDEyMDM1MCwgMCwgNjMzOSwgNzc0NSwgOTg0NCwgMCwgNjQ2NTAsIDk0LCAKKyAgICAxODgwLCA3NDc2NiwgOTgzODI5LCA4OTA4LCAwLCAxMjg3MDcsIDY1OTEzLCA3ODQ3MCwgMTA3NTIsIDEzMDAzLCAwLCAKKyAgICAxMjY1NzIsIDQxMzA3LCA4NzMyLCAxMjAzMzgsIDAsIDE3NTcsIDY5NjQsIDQ2OTYsIDAsIDEyMDMzNSwgNjQ3ODUsIDczOTQsIAorICAgIDM2NDEsIDU0MTksIDEyODA1NSwgMCwgMTI3ODgzLCAwLCAxMjAzNDQsIDQzOTg4LCAwLCA4NjEwLCA0MzA2MiwgNzU5MiwgCisgICAgODU2LCA3NDI5OSwgOTM2LCAxMzI4OSwgNjk4OTQsIDQzMTcxLCAxNDU5LCAwLCA2NTI0MywgNzg2MzgsIDE5OTUzLCAwLCAKKyAgICAxNTA0LCA3MDA2NCwgMCwgMTI5MTMsIDc0MjA2LCA3NTI5LCAwLCAxMjg2OTksIDk4Mzk0OCwgMTIwNzgyLCA0MTEzLCAwLCAKKyAgICAyMzcyLCAzMzYsIDAsIDc1MDksIDEyMTUyLCAwLCA2ODIsIDY2NDU4LCA0MTUwNSwgMCwgNjQ3NDMsIDEwNTkzLCAxNzAzLCAKKyAgICAwLCA5ODM5NDYsIDgwMzMsIDY5OTUzLCAwLCA5ODEwLCAxMjcyNjksIDAsIDEyOTcwLCAwLCA0MjM1MSwgMTAxMDksIAorICAgIDkxNzYyMywgMCwgMTk0NjkzLCAwLCA5MjY5MCwgMCwgMCwgNzQyOTEsIDE5NjUsIDcwNjksIDQzMzEyLCAwLCA3Mzg4NywgMCwgCisgICAgMjA4NywgNjQzNzAsIDYzMTQsIDQxNzE0LCA4NTAxLCAwLCAwLCA3NDIzOSwgNDEzMTcsIDkyNjE0LCAyMDkxLCA3NDU0NSwgCisgICAgMjA5MCwgMCwgOTM1MywgNzExNywgMjA3NywgNzc4ODYsIDAsIDEwNDk4LCAyMDgzLCA3Nzg4OCwgMCwgMCwgMTE5MjM2LCAKKyAgICA2MzQsIDAsIDAsIDAsIDY5Nzc5LCA0MTY1LCA4NzQ2LCAwLCA5NjU0LCAxMjg1NiwgNjkyNCwgMCwgNzA2NiwgOTgzNzEwLCAKKyAgICAwLCAxMjgxMzUsIDQxMDM3LCA0MjY5MiwgNzc4NiwgMTI5NTksIDQxMDM5LCAxMjc0ODMsIDAsIDY4MCwgMjMwMiwgCisgICAgMTI4MjAwLCAxMTgxLCA3MDU2LCAzMTc0LCAxMjY1MTYsIDAsIDkyNjY4LCA2NTY2NSwgMTI3Mzc1LCAxMjY1MDYsIDY5MjAsIAorICAgIDAsIDkyMjk1LCAwLCAxMTg5NjUsIDAsIDY0NjQ0LCAxMjY5ODEsIDc0MTE5LCAwLCA0MTAyOCwgMCwgNjIzMSwgMjYxMywgCisgICAgNjUzMDIsIDQwOTg5LCAwLCAxOTQ2OTYsIDAsIDQyNzYwLCAwLCA5ODM1NjYsIDAsIDQwOTg3LCA0NjY3LCAwLCA5ODM5MjMsIAorICAgIDg4MjgsIDAsIDAsIDEyNDYsIDQ3NDYsIDAsIDAsIDExMDIxLCA0NzQ5LCA5MjY3NSwgMCwgOTIxLCA0NzQ0LCAwLCAxMjcwMiwgCisgICAgMjQyLCAwLCAxNTY2LCA4MjE3LCAwLCA2NDY1MywgNzgzODYsIDEyODEyMSwgNzQwMzYsIDc0NTA1LCA0MzI3NCwgNTMxMywgCisgICAgOTUxLCAwLCAwLCA5ODM4NTgsIDc2MDQsIDk4MzI4MiwgNDAwOSwgMTI3ODE2LCA5ODM3MDEsIDEyMDU2MiwgMCwgOTgzNzExLCAKKyAgICA2NDg2MCwgMTE5MTM4LCAxMTkwNjksIDAsIDEyNzM3MCwgNDA0OCwgOTgzNTk4LCAwLCA3MDAyNCwgMTY0NiwgNzc4OTAsIAorICAgIDY0NTM0LCA3Mzk5NSwgMTIwNzA1LCAwLCAxMTk4OTAsIDI1NzksIDExOTkwNSwgMzE3NywgMTEzNTcsIDkwOTksIDQxMDcsIAorICAgIDM0NDEsIDExOTg5NCwgMjk3NSwgNzQ0NDIsIDk4MjIsIDk4MzkyNiwgNTUyMjAsIDEwMDg0LCA3Mzk0MywgMTE4ODQwLCAwLCAKKyAgICA5MTc1NjIsIDE5NDYxMCwgMzM5OSwgOTg1MSwgOTgzNzA4LCAxMTkwOSwgOTA1OSwgMCwgNzY4NywgMCwgNjc4OSwgMCwgMCwgCisgICAgMCwgNzEzNjcsIDAsIDAsIDE3NzcsIDkxNTEsIDExMzcsIDY5NzY3LCA3NDksIDQyMzY2LCAwLCA1Mzg1LCAxMjg1NzQsIAorICAgIDEyODIxOCwgMCwgMCwgNTk4OSwgMCwgMCwgMTI4MDkxLCAwLCA0MTY4NSwgNjkyMjMsIDAsIDk3NjksIDQxNjg0LCAKKyAgICA5ODMyMTQsIDUxOSwgMCwgMTE3NDAsIDU3NjYsIDAsIDAsIDI2MDAsIDg4NDgsIDEyMDEzOCwgNDEyOTcsIDAsIDM2NjYsIAorICAgIDc0NDczLCA0MTMwMCwgNzQ0NjgsIDY1MTYwLCAwLCA2OTY4OCwgNjk3NzEsIDc0NDc5LCAwLCA2NTU4LCAwLCAwLCA2OTc2NSwgCisgICAgMTIwNzUwLCAyNTIsIDAsIDQxMzAyLCAwLCAwLCAwLCA2OTc2MywgMCwgMTE3MjksIDg3MTksIDkwNjAsIDAsIDEyMDEzOSwgCisgICAgMTA3NjEsIDAsIDAsIDAsIDExODc5MiwgMTE3MzQsIDk4MzIyMSwgMTE3MzAsIDAsIDk1OTMsIDU3NTcsIDI0MDMsIDY0ODA4LCAKKyAgICA1NTI3NSwgMCwgMTE3MjgsIDQzNTcyLCAwLCAwLCA3NzY0LCA5ODM3MDUsIDExMDk0LCAxMjA4MjUsIDAsIDAsIDQyODIsIAorICAgIDgyOTgsIDAsIDAsIDAsIDAsIDAsIDY0NDQ5LCAwLCAxMjY2NTAsIDYzODU0LCA4NDU2LCAwLCA3NDc4MywgNjU2NzAsIDAsIAorICAgIDc4MjUwLCAwLCA3Nzc0LCAxMDYwNywgOTc5MiwgMCwgMCwgMCwgMCwgMTIwNzY0LCAwLCAxMDAxOSwgNzQ3NjIsIDAsIAorICAgIDM0NTgsIDQzNjUsIDcwMDUzLCA5ODM3MDMsIDM2NDcsIDAsIDI2MDIsIDEyODM0MSwgMCwgMTk0NzA3LCA0MTEzNSwgMCwgMCwgCisgICAgMCwgNjQ2MzEsIDE3MiwgNDk3MSwgNDEyMTksIDQxMTM3LCAxODg5LCA3MjM4LCA2NTQ1LCAxMjY0NzYsIDkyMTkzLCA3NTk3LCAKKyAgICAxMDUyOCwgMCwgMCwgMzczMiwgNzM5MTAsIDE5NDU4OCwgNTM0NCwgMCwgNDMzNjYsIDQzMzYzLCA5MDYyLCAxMTkyNTIsIDAsIAorICAgIDAsIDAsIDY0NDc5LCA5MjMyLCA5MjU5NiwgMCwgMCwgMTk0NzEyLCAxMDkwMCwgNDE1MzEsIDEyNjMsIDM3MjAsIDEyMDQ4LCAKKyAgICAwLCA2NDI5MiwgNDE1MjQsIDcyMjcsIDExOTYzNSwgNjA5OSwgNDE1MzQsIDAsIDEyNzM1NCwgMTI3MzQ1LCAyOTksIAorICAgIDkxNzk1NywgODUyNSwgMTI3MzQ3LCAzNTI0LCA5MTc1NjUsIDg4MzEsIDEyNzM0OSwgOTI1NjQsIDMwNzUsIDY3ODY3LCAKKyAgICAxMjczNTIsIDAsIDY2MzYyLCAwLCA2NDM1MywgMCwgMCwgNTg0NSwgMCwgMCwgMCwgMjU4MSwgODIwMCwgNjUxMTQsIAorICAgIDY4NDYwLCAwLCA0MzI4MywgNTU1MSwgMCwgMTIwNzM1LCAwLCA2MzQwLCAxMTg4NTUsIDAsIDc4MTM0LCA4NjgwLCA3MjA0LCAKKyAgICA3MDA2NSwgMjU4OCwgMjkxNCwgNzAxMSwgNTUyODEsIDAsIDI0NzEsIDE5NDYzMSwgMjg4MywgMjc0OSwgMTE5NTYzLCAKICAgICA3Mzc3NCwgMTA5MTMsIDAsIDAsIDg2NjYsIDY3NSwgNDI0OTMsIDAsIDQzNTcxLCAwLCA2MjE5LCAwLCA5OTgwLCA0MTIzMiwgCi0gICAgMTA5MjgsIDAsIDQxMTUzLCA0MTIyOSwgMTE4OTY3LCAwLCAzNzM4LCAxMjczNjksIDAsIDEyNzExLCAzMTgxLCA2NjIxMiwgCi0gICAgNzQyODksIDY4NDcyLCA0Mjg1NywgODI2MiwgMCwgMCwgMCwgMCwgNDIzNDcsIDEyMDkyLCA5NjE1LCA3MjM0LCA3NDA0NywgCi0gICAgMCwgMCwgNjQ2NzQsIDAsIDAsIDczODQ2LCAyOTM0LCAxMjcyMiwgMTIwNzYyLCA5MjIsIDQzOTgzLCA3NDUwNywgMCwgCi0gICAgNzQ0NjEsIDMyMTgsIDEyMDQ3MSwgNzQyOTAsIDEyMDQ2OSwgNjQ1NjIsIDEyMDQ3NSwgODU2OSwgMTE0MDQsIDExOTMyLCAKLSAgICA3MzcyOCwgMzIxNCwgMTIwNDYxLCAxMjA0NjgsIDEyMTI4LCAzMjA3LCA2NTQ4NiwgNzg3MjksIDE5MDEsIDc4NzI3LCAKLSAgICAxMjczMjYsIDEyMDQ2MCwgNzQyNSwgMzIwNSwgMCwgNzg3MzcsIDc4NzM2LCA3ODczNSwgNDMzODMsIDc4NzMzLCA2NTQ1OSwgCi0gICAgMjYwNiwgNzg3MzAsIDczODk3LCAwLCAxMTQ5NiwgMTE3MywgMCwgNDEyNzIsIDExOTY2MSwgMCwgMCwgMCwgMTIwNzM3LCAwLCAKLSAgICAwLCAwLCAzNzgsIDI2MTAsIDAsIDY1MDc5LCAwLCA2NTY5NSwgMCwgMzcsIDcwNjgsIDAsIDEyMDQ4MCwgMTIwNDc5LCAKLSAgICAzMjA5LCAxMjA0NzcsIDAsIDEwNjM4LCA5NzY4LCAxMjA0ODEsIDAsIDAsIDAsIDAsIDAsIDAsIDY1NTEwLCAwLCAwLCAKLSAgICA1MjMzLCAwLCA2NDc5MiwgMCwgMCwgMCwgMCwgNzA2MCwgOTg0NywgMTIwMTQ0LCAxNjg1LCA1OTUsIDAsIDczOTcxLCAKLSAgICAxMjkyLCA4OTQwLCA3MzgwLCAxMTA4OCwgMCwgMTAwMDQsIDEyNjk5NywgMCwgNjU0MSwgMCwgMCwgMCwgMzI0MywgOTAxNCwgCi0gICAgNTYwNiwgMCwgNTM4LCA2NDYyMCwgNTYwMiwgODQ2NywgNzQzOTEsIDY1NDcsIDAsIDgyMDMsIDc4NDg4LCAwLCA4NDU4LCAKLSAgICA2NTIxMSwgODQ5NSwgMTE5OTA0LCAwLCA5MTc1NTIsIDc3OSwgNzgzMTQsIDY0MzY3LCAyNDY1LCAwLCA4MTkzLCA1NTI3OSwgCi0gICAgOTczMCwgOTI4MCwgMCwgNzA2NSwgNzQxNTUsIDQzNDYsIDAsIDczNzk4LCA1MDQsIDAsIDkyNDE0LCA4OTgyLCAwLCAwLCAwLCAKLSAgICA3ODIsIDAsIDEwODgzLCAwLCAxOTQ4NTIsIDczMiwgMzczNywgMTI3MjUzLCAxNTQ4LCA2ODY1MCwgMCwgMTgzMiwgNTYwNCwgCi0gICAgNTczNSwgNDExNDEsIDExOTAyMCwgNDM3NiwgMCwgMTE3ODcsIDM3NDUsIDAsIDAsIDQyODg4LCA2NTcxMiwgMCwgMzg2OSwgCi0gICAgMTE5MzcsIDU3MjUsIDEyNzUzOSwgMTc4MywgNjg2NDgsIDU3MjgsIDAsIDAsIDAsIDExOTE4LCA2NjU2NywgNTcyNCwgMCwgCi0gICAgNTcyNywgNzg1MjEsIDAsIDAsIDc2NCwgMCwgMTI4MTE2LCA0MzUzMSwgMCwgOTAzMywgMCwgNDI1MzIsIDYyMjMsIDExMDQyLCAKLSAgICAxMjA3NDksIDExNDIzLCAwLCAxMTk4NjEsIDAsIDQzNDY1LCAwLCAxMjgyNjcsIDY1NTksIDY0NTU3LCAwLCAwLCAxMjA2NDgsIAotICAgIDQzMDE5LCA0MzQ3NywgMTAyMzgsIDAsIDAsIDQzMzc3LCA5MjI4MiwgMCwgMTQ3OCwgOTc4MywgMTE4MjUsIDI2MDcsIAotICAgIDY0NzQwLCAwLCA3NzM5LCA3NDU0MywgMCwgMCwgMCwgNjEzMiwgMCwgNjM3NjUsIDAsIDAsIDQxMTQ0LCAwLCA5MjQzOCwgCi0gICAgNDM1MzcsIDY3NjEsIDEwMDkzLCA0MzY5LCA5MTc3OTEsIDAsIDAsIDg4MjAsIDM5NDcsIDAsIDAsIDExNTE1LCA1MjYsIDAsIAotICAgIDQxMjk1LCAxOTQ2MDMsIDkxNzc4NSwgMTk0OTMyLCAwLCA3Njg4LCA5MTc3ODYsIDc2ODYsIDgyODgsIDExODE1LCAwLCAwLCAKLSAgICAwLCAxNTQzLCAzNzEzLCA0MTIyMSwgMTI0MjMsIDQyMjgxLCA5MTc3ODgsIDc0MDI0LCAxMjI5MywgMCwgNjQzNTcsIAotICAgIDExNzk0LCA0MjA4MiwgMCwgMTczNywgODk4NywgNDIwODEsIDAsIDcyMDUsIDAsIDkzMzUsIDEyODUwLCAxMTk4NzAsIAotICAgIDY1NTMsIDcwNTUsIDAsIDgyNzcsIDAsIDAsIDU0NzUsIDc0Nzk1LCA2NzgwLCAwLCAwLCAxMjk5MCwgMTE2MCwgNDIwODQsIAotICAgIDExOTY1MCwgNDEyMTcsIDExOTY2MCwgMTAwMTgsIDM2MCwgMCwgMCwgNjgxNzYsIDU4NjMsIDMxMzcsIDAsIDQxNDcsIDAsIAotICAgIDQxMjE2LCA3ODQ0LCAyNjE2LCAxMTkxOTAsIDY4NDYxLCA2NTIzNCwgMCwgMTMwNzYsIDMxMzUsIDAsIDc4MTQzLCAKLSAgICAxMTkxMzksIDMxNDIsIDkyNDUxLCAwLCAxMDgxOSwgMTE5NTgwLCAxMDE4MywgMCwgMjYwOCwgMTQ3MCwgNzM5NjcsIDAsIAotICAgIDYyMjcsIDAsIDAsIDY5NzQxLCAwLCA2MTYzLCAwLCAwLCAxMjczMTQsIDAsIDAsIDg2MDMsIDAsIDExOTg2NiwgMzMwNiwgCi0gICAgMTA4NzYsIDQzMzkyLCAxMTk1NzMsIDEyNzkzMSwgNTc1MSwgMCwgNjIyMiwgMCwgMCwgMTIwODYsIDc0MDMsIDE2MDAsIAotICAgIDY0MzA5LCA2NDkzOSwgMCwgNjQ3ODMsIDkyNjU4LCAxMTMxMCwgMCwgODg4MiwgMCwgMCwgMjU3MCwgNzAyMSwgMCwgMCwgCi0gICAgNDMxMTAsIDAsIDEyMzQsIDY1NDAsIDY5NzQsIDAsIDAsIDAsIDUwMDIsIDAsIDQxMjg2LCAwLCAxMjcwMTksIDAsIDQzNTg1LCAKLSAgICAwLCA2NTUxLCAwLCAxMjgyMjksIDAsIDQxMjg5LCAwLCAxOTQ2MDIsIDAsIDg5NzcsIDYwMiwgMTIwODE0LCAwLCAxMjg3NzgsIAotICAgIDEyODY2MSwgMCwgMCwgNDEyNzksIDAsIDAsIDAsIDExMDgxLCA0MzYxNSwgMCwgMCwgMCwgMCwgMTI3MjcsIDAsIDAsIAotICAgIDc4Mzk3LCA5NDc1LCA3MTEyLCA2NTEwNSwgMCwgOTYzMywgMTA4ODYsIDQzNTkyLCA3ODMxLCAwLCAxOTQ1NzEsIDAsIAotICAgIDczOTE1LCA4MDc2LCA0MzA0OCwgODI5MCwgODI5MSwgNDMwNTEsIDkyNTcwLCAwLCAyNTk2LCA0MzU4NCwgMCwgMTMxMTMsIAotICAgIDAsIDEyNzc1NywgMjM5MywgNzA1OCwgOTA4NywgNzQwNjcsIDY4NjczLCA0MTU3NCwgNzgzMzcsIDAsIDc0MDU4LCA2Mzc2LCAKLSAgICAwLCAwLCAwLCAwLCA5ODU0LCAxMjc3NDgsIDY0Njk2LCAwLCAxMjgyMjAsIDAsIDY5OTQsIDAsIDE3MjAsIDAsIDAsIDAsIAotICAgIDY1MjksIDcwNjMsIDAsIDM3NTEsIDkxMjAsIDAsIDAsIDE3OTgsIDcwOSwgMCwgMTM1NCwgMTg3NiwgMTMxNTIsIDY1NTcsIAotICAgIDEyNDMwLCA4MTM3LCAwLCA5MjY0MiwgMCwgMCwgMjQ1LCAxMjgwOTcsIDExNDU2LCA0MTIzMywgNzA3MCwgMCwgMCwgNjEzNiwgCi0gICAgOTE3NjA5LCA2NTY3NywgODY4MiwgNDEyMzUsIDkyNTk1LCA0MjA0NSwgOTgwNCwgMCwgNDMyLCAzNTk1LCAwLCA2NTQzNywgCi0gICAgMCwgNzQ0NTUsIDQyMzk5LCAwLCAwLCAxMjgyNzQsIDAsIDExOTY1OCwgMCwgMCwgMCwgNzc4OTQsIDg3OTcsIDAsIDkwNTIsIAotICAgIDY0ODg4LCA3MTY3LCAyMzU2LCA5NSwgNzQ3ODQsIDEwNTgwLCAwLCA0MjI4NiwgMCwgNjQ2NDAsIDAsIDExOTEwNCwgMCwgCi0gICAgNzQxMzcsIDAsIDEwMDYzLCAxMjY1MiwgMTIxOTksIDkyNDgwLCAwLCAyNTY2LCAxMTk3MSwgMCwgMCwgMTA2NSwgMCwgMCwgCi0gICAgNDM0MDAsIDI1NzYsIDY2Njk2LCAwLCAwLCA0MzYwNCwgMCwgMCwgNzQwODIsIDUxNCwgNzQ1MDIsIDAsIDI5MjEsIDQzMjE1LCAKLSAgICA2NDQ5MywgNTc3MiwgMTI5NjgsIDAsIDE5NDk0NCwgNzQ1ODAsIDQzMzk4LCAyNTgwLCAwLCA0MTM0MSwgNDEyMjMsIDY1NjQsIAotICAgIDE0NjMsIDQxMzQyLCAwLCA1MjkzLCAwLCAwLCAzNzMzLCAxMTM0NiwgMCwgMTIwNTQsIDAsIDc0MDk4LCA0MjgyNywgMCwgCi0gICAgMTMwOTEsIDAsIDAsIDAsIDkxNzkxNSwgMCwgMTI3MDI1LCAwLCA3NDgyMSwgMCwgMCwgMTE5MDQyLCAwLCAxMjc4NjUsIAotICAgIDEzMDkwLCA2NjY0MywgMCwgMTI3MCwgMTEzMiwgNDIzNjAsIDAsIDc0MDk2LCA2NjY1NSwgNDI1NjksIDEyNzgyNCwgMCwgCi0gICAgNjQ3NjEsIDAsIDQxMDIxLCA4NTEwLCA0MjQzMiwgMCwgMCwgMCwgMCwgNjQ0OTYsIDc0MTA5LCAwLCA5OTE1LCAwLCAwLCAKLSAgICA3MDYxLCA0MTMzNiwgMzg1NCwgNjk3MDAsIDEzMTQxLCA2ODQxMywgNDM0MDEsIDQyMzE5LCAxMzA4MiwgMCwgNzA2NywgCi0gICAgNjgyMjEsIDAsIDAsIDEyNzE3MSwgMCwgMCwgMTI3Nzk3LCA5MDI5LCA0MzU0MywgMTE5MzE1LCAyMzUzLCA2MzA4LCAwLCAKLSAgICA3NDc5MiwgMjYxMSwgMTE5MTg2LCAwLCAwLCAwLCA0MzY2NCwgOTIzOTksIDY2NjI3LCAwLCA0NDg0LCA4NTA5LCAxMTg5NzYsIAotICAgIDc4MTE2LCA2NTIzMywgMCwgNDEyMjQsIDQxMDE3LCAwLCAzNzQ3LCAxMDUyMiwgMCwgMCwgMTY5MSwgNDEyMjYsIDAsIAotICAgIDEyMTA3LCA0NDAwMiwgMTA5MDUsIDY1MDEwLCAxOTQ5ODYsIDY5NywgNjYwMTgsIDkyODQsIDQyNDQsIDAsIDAsIDkyNjQ0LCAKLSAgICAxMzEyMSwgMTIwMDM2LCAwLCAxMjAxMCwgMTI4NTczLCAxMjgyMjEsIDAsIDAsIDAsIDEyNzE5MywgNjU4MTYsIDY4MTExLCAKLSAgICAwLCAxMjc5MzMsIDY1NjY4LCA5MjI1NywgNjYxOCwgMTE4Nzg0LCA2NjM2NSwgMCwgNDIyMzQsIDEyNjQ4LCAxMjgwMzksIAotICAgIDcxMjMsIDAsIDU3ODUsIDkxOTgsIDk3NjQsIDQxMzE2LCA2NTg3NywgNzM4MywgMTMyMzAsIDQxMjk5LCAwLCAwLCA2ODM2NSwgCi0gICAgMTI4MjU4LCAwLCAwLCAwLCAxMzEyMiwgMCwgMTkxLCA3NDExOSwgODU4NSwgODAwMCwgNjQ0MTEsIDEyMDY1MiwgNDI4ODksIAorICAgIDEwOTI4LCAwLCA0MTE1MywgNDEyMjksIDExODk2NywgMCwgMzczOCwgOTQwMTYsIDAsIDEyNzExLCAzMTgxLCA2NjIxMiwgCisgICAgNzQyODksIDY4NDcyLCA0Mjg1NywgODI2MiwgOTgzMzcxLCAwLCA5ODMyMjAsIDAsIDQyMzQ3LCAxMjA5MiwgOTYxNSwgCisgICAgNzIzNCwgNzQwNDcsIDk4MzA4OCwgMCwgNDM3NDQsIDAsIDAsIDczODQ2LCAyOTM0LCAxMjcyMiwgMTIwNzYyLCA5MjIsIAorICAgIDQzOTgzLCA3NDUwNywgOTgzMTI2LCA3NDQ2MSwgMzIxOCwgMTIwNDcxLCA3NDI5MCwgMTIwNDY5LCA2NDU2MiwgMTIwNDc1LCAKKyAgICA4NTY5LCAxMTQwNCwgMTE5MzIsIDczNzI4LCAzMjE0LCAxMjA0NjEsIDEyMDQ2OCwgMTIxMjgsIDMyMDcsIDY1NDg2LCAKKyAgICA3ODcyOSwgMTkwMSwgNzg3MjcsIDEyNzMyNiwgMTIwNDYwLCA3NDI1LCAzMjA1LCA2ODAwMywgNzg3MzcsIDc4NzM2LCAKKyAgICA3ODczNSwgNDMzODMsIDY5OTQwLCA2NTQ1OSwgMjYwNiwgNzg3MzAsIDczODk3LCAwLCAxMTQ5NiwgMTE3MywgMCwgNDEyNzIsIAorICAgIDExOTY2MSwgMCwgMCwgOTgzMzEzLCAxMjA3MzcsIDAsIDk4Mzk2MiwgOTgzMzEyLCAzNzgsIDI2MTAsIDAsIDY1MDc5LCAKKyAgICA5ODMzMTcsIDY1Njk1LCAxMjY1NTksIDM3LCA3MDY4LCAwLCAxMjA0ODAsIDEyMDQ3OSwgMzIwOSwgMTIwNDc3LCAwLCAKKyAgICAxMDYzOCwgOTc2OCwgNjk5NTIsIDExOTkwOSwgOTgzMzkxLCAwLCAwLCAwLCAwLCA2NTUxMCwgMCwgMCwgNTIzMywgCisgICAgOTgzMzI3LCA2NDc5MiwgOTgzMzI2LCAwLCAxMjY2MzMsIDAsIDcwNjAsIDk4NDcsIDEyMDE0NCwgMTY4NSwgNTk1LCAwLCAKKyAgICA3Mzk3MSwgMTI5MiwgODk0MCwgNzM4MCwgMTEwODgsIDAsIDEwMDA0LCAxMjY5OTcsIDAsIDY1NDEsIDAsIDAsIDAsIDMyNDMsIAorICAgIDkwMTQsIDU2MDYsIDAsIDUzOCwgNjQ2MjAsIDU2MDIsIDg0NjcsIDc0MzkxLCA2NTQ3LCAxMjgxMzIsIDgyMDMsIDc4NDg4LCAKKyAgICA5ODMwOTAsIDg0NTgsIDY1MjExLCA4NDk1LCAxMTk5MDQsIDAsIDkxNzU1MiwgNzc5LCA3ODMxNCwgNjQzNjcsIDI0NjUsIAorICAgIDY5OTAxLCA4MTkzLCA1NTI3OSwgOTczMCwgOTI4MCwgMCwgNzA2NSwgNzQxNTUsIDQzNDYsIDAsIDczNzk4LCA1MDQsIDAsIAorICAgIDkyNDE0LCA4OTgyLCAwLCAwLCAwLCA3ODIsIDAsIDEwODgzLCAwLCAxOTQ4NTIsIDczMiwgMzczNywgMTI3MjUzLCAxNTQ4LCAKKyAgICA2ODY1MCwgOTI1MDcsIDE4MzIsIDU2MDQsIDU3MzUsIDQxMTQxLCAxMTkwMjAsIDQzNzYsIDAsIDExNzg3LCAzNzQ1LCAwLCAKKyAgICAwLCA0Mjg4OCwgNjU3MTIsIDk4MzI5NiwgMzg2OSwgMTE5MzcsIDU3MjUsIDEyNzUzOSwgMTc4MywgNjg2NDgsIDU3MjgsIDAsIAorICAgIDAsIDAsIDExOTE4LCA2NjU2NywgNTcyNCwgMCwgNTcyNywgNzg1MjEsIDAsIDAsIDc2NCwgMCwgMTI4MTE2LCA0MzUzMSwgMCwgCisgICAgOTAzMywgMCwgNDI1MzIsIDYyMjMsIDExMDQyLCAxMjA3NDksIDExNDIzLCAwLCAxMTk4NjEsIDcxMzQ0LCA0MzQ2NSwgMCwgCisgICAgMTI4MjY3LCA2NTU5LCA2NDU1NywgNzEzNDgsIDkyNjQ5LCAxMjA2NDgsIDQzMDE5LCA0MzQ3NywgMTAyMzgsIDc0NDkxLCAwLCAKKyAgICA0MzM3NywgOTIyODIsIDcxMzQ2LCAxNDc4LCA5NzgzLCAxMTgyNSwgMjYwNywgNjQ3NDAsIDAsIDc3MzksIDc0NTQzLCAwLCAKKyAgICAwLCAwLCA2MTMyLCAwLCA2Mzc2NSwgMCwgNzAwNTgsIDQxMTQ0LCAwLCA5MjQzOCwgNDM1MzcsIDY3NjEsIDEwMDkzLCAKKyAgICA0MzY5LCA5MTc3OTEsIDAsIDk4MzE0OCwgODgyMCwgMzk0NywgMCwgMCwgMTE1MTUsIDUyNiwgMTI4MTAzLCA0MTI5NSwgCisgICAgMTk0NjAzLCA5MTc3ODUsIDE5NDkzMiwgMCwgNzY4OCwgOTE3Nzg2LCA3Njg2LCA4Mjg4LCAxMTgxNSwgMCwgMCwgOTgzMzc0LCAKKyAgICAxNTQzLCAzNzEzLCA0MTIyMSwgMTI0MjMsIDQyMjgxLCA5MTc3ODgsIDc0MDI0LCAxMjI5MywgMCwgNjQzNTcsIDExNzk0LCAKKyAgICA0MjA4MiwgMCwgMTczNywgODk4NywgNDIwODEsIDAsIDcyMDUsIDAsIDkzMzUsIDEyODUwLCAxMTk4NzAsIDY1NTMsIDcwNTUsIAorICAgIDAsIDgyNzcsIDAsIDAsIDU0NzUsIDc0Nzk1LCA2NzgwLCAwLCAwLCAxMjk5MCwgMTE2MCwgNDIwODQsIDExOTY1MCwgCisgICAgNDEyMTcsIDExOTY2MCwgMTAwMTgsIDM2MCwgMCwgMCwgNjgxNzYsIDU4NjMsIDMxMzcsIDAsIDQxNDcsIDk4MzE3MCwgCisgICAgNDEyMTYsIDc4NDQsIDI2MTYsIDExOTE5MCwgNjg0NjEsIDY1MjM0LCA5ODMyODYsIDEzMDc2LCAzMTM1LCA5ODMyNzksIAorICAgIDc4MTQzLCAxMTkxMzksIDMxNDIsIDkyNDUxLCA5NDA2OCwgMTA4MTksIDExOTU4MCwgMTAxODMsIDAsIDI2MDgsIDE0NzAsIAorICAgIDczOTY3LCA5NDAwOCwgNjIyNywgMCwgMTI3MTczLCA2OTc0MSwgOTgzNTgyLCA2MTYzLCA5ODM1NTgsIDAsIDEyNzMxNCwgMCwgCisgICAgMCwgODYwMywgMCwgMTE5ODY2LCAzMzA2LCAxMDg3NiwgNDMzOTIsIDExOTU3MywgMTI3OTMxLCA1NzUxLCAwLCA2MjIyLCAwLCAKKyAgICAwLCAxMjA4NiwgNzQwMywgMTYwMCwgNjQzMDksIDY0OTM5LCAwLCA2NDc4MywgOTI2NTgsIDExMzEwLCAwLCA4ODgyLCAwLCAKKyAgICAwLCAyNTcwLCA3MDIxLCAwLCAwLCA0MzExMCwgMCwgMTIzNCwgNjU0MCwgNjk3NCwgMCwgMCwgOTgzMjA5LCA1MDAyLCAwLCAKKyAgICA0MTI4NiwgNjk5NDYsIDEyNzAxOSwgMCwgNDM1ODUsIDAsIDY1NTEsIDk4Mzk1MywgMTI4MjI5LCAwLCA0MTI4OSwgMCwgCisgICAgMTk0NjAyLCAwLCA4OTc3LCA2MDIsIDEyMDgxNCwgMCwgMTI4Nzc4LCAxMjg2NjEsIDAsIDk4MzM2NywgNDEyNzksIDAsIDAsIAorICAgIDAsIDExMDgxLCA0MzYxNSwgMCwgMCwgMCwgOTgzNjEyLCAxMjcyNywgMCwgMCwgNzgzOTcsIDk0NzUsIDcxMTIsIDY1MTA1LCAKKyAgICAwLCA5NjMzLCAxMDg4NiwgNDM1OTIsIDc4MzEsIDk4MzgyMCwgMTk0NTcxLCAwLCA3MzkxNSwgODA3NiwgNDMwNDgsIDgyOTAsIAorICAgIDgyOTEsIDQzMDUxLCA5MjU3MCwgMCwgMjU5NiwgNDM1ODQsIDAsIDEzMTEzLCAwLCAxMjc3NTcsIDIzOTMsIDcwNTgsIAorICAgIDkwODcsIDc0MDY3LCA2ODY3MywgNDE1NzQsIDc4MzM3LCAwLCA3NDA1OCwgNjM3NiwgMCwgMCwgMCwgMCwgOTg1NCwgCisgICAgMTI3NzQ4LCA2NDY5NiwgMCwgMTI4MjIwLCAwLCA2OTk0LCAwLCAxNzIwLCAwLCAwLCAwLCA2NTI5LCA3MDYzLCA5ODMxODIsIAorICAgIDM3NTEsIDkxMjAsIDk4MzQ3NywgMCwgMTc5OCwgNzA5LCAwLCAxMzU0LCAxODc2LCAxMzE1MiwgNjU1NywgMTI0MzAsIAorICAgIDgxMzcsIDk0MDk4LCA5MjY0MiwgMCwgMCwgMjQ1LCAxMjgwOTcsIDExNDU2LCA0MTIzMywgNzA3MCwgMCwgOTQwNDYsIAorICAgIDYxMzYsIDkxNzYwOSwgNjU2NzcsIDg2ODIsIDQxMjM1LCA5MjU5NSwgNDIwNDUsIDk4MDQsIDExODk2MywgNDMyLCAzNTk1LCAKKyAgICAxOTQ5NDUsIDY1NDM3LCAwLCA3NDQ1NSwgNDIzOTksIDAsIDAsIDEyODI3NCwgMCwgMTE5NjU4LCAwLCAwLCAwLCA3Nzg5NCwgCisgICAgODc5NywgMCwgOTA1MiwgNjQ4ODgsIDcxNjcsIDIzNTYsIDk1LCA3NDc4NCwgMTA1ODAsIDAsIDQyMjg2LCAwLCA2NDY0MCwgCisgICAgMCwgOTQxMDksIDAsIDc0MTM3LCA3MDAzNSwgMTAwNjMsIDEyNjUyLCAxMjE5OSwgOTI0ODAsIDAsIDI1NjYsIDExOTcxLCAKKyAgICA5ODM3MjgsIDAsIDEwNjUsIDAsIDAsIDQzNDAwLCAyNTc2LCA2NjY5NiwgOTM5OTksIDAsIDQzNjA0LCAwLCAwLCA3NDA4MiwgCisgICAgNTE0LCA3NDUwMiwgNzAwMzIsIDI5MjEsIDQzMjE1LCA2NDQ5MywgNTc3MiwgMTI5NjgsIDcwMDU1LCAxOTQ5NDQsIDc0NTgwLCAKKyAgICA0MzM5OCwgMjU4MCwgOTgzODAxLCA0MTM0MSwgNDEyMjMsIDY1NjQsIDE0NjMsIDQxMzQyLCAwLCA1MjkzLCA3MDAyMCwgMCwgCisgICAgMzczMywgMTEzNDYsIDAsIDEyMDU0LCAwLCA3NDA5OCwgNDI4MjcsIDAsIDEzMDkxLCAwLCAwLCAwLCA5MTc5MTUsIDAsIAorICAgIDEyNzAyNSwgMCwgNzQ4MjEsIDAsIDk4MzcyNCwgMTE5MDQyLCAwLCAxMjc4NjUsIDEzMDkwLCA2NjY0MywgMCwgMTI3MCwgCisgICAgMTEzMiwgNDIzNjAsIDAsIDc0MDk2LCA2NjY1NSwgNDI1NjksIDEyNzgyNCwgMCwgNjQ3NjEsIDAsIDQxMDIxLCA4NTEwLCAKKyAgICA0MjQzMiwgMCwgMCwgMTk0NzgyLCAwLCA2NDQ5NiwgNzQxMDksIDcwMDMwLCA5OTE1LCAwLCA5ODMyMTYsIDcwNjEsIAorICAgIDQxMzM2LCAzODU0LCA2OTcwMCwgMTMxNDEsIDY4NDEzLCA0MzQwMSwgNDIzMTksIDEzMDgyLCAwLCA3MDY3LCA2ODIyMSwgMCwgCisgICAgMTI3MzgzLCAxMjcxNzEsIDAsIDAsIDEyNzc5NywgOTAyOSwgNDM1NDMsIDExOTMxNSwgMjM1MywgNjMwOCwgMCwgNzQ3OTIsIAorICAgIDI2MTEsIDExOTE4NiwgMCwgMCwgMCwgNDM2NjQsIDkyMzk5LCA2NjYyNywgMCwgNDQ4NCwgODUwOSwgMTE4OTc2LCAxMTA2NiwgCisgICAgNjUyMzMsIDAsIDQxMjI0LCA0MTAxNywgMCwgMzc0NywgMTA1MjIsIDAsIDAsIDE2OTEsIDQxMjI2LCAwLCAxMjEwNywgCisgICAgNzEwMCwgMTA5MDUsIDY1MDEwLCAxOTQ5ODYsIDY5NywgNjYwMTgsIDkyODQsIDQyNDQsIDAsIDAsIDkyNjQ0LCAxMzEyMSwgCisgICAgMTIwMDM2LCAwLCAxMjAxMCwgMTI4NTczLCAxMjgyMjEsIDAsIDAsIDAsIDEyNzE5MywgNjU4MTYsIDY4MTExLCAwLCAKKyAgICAxMjc5MzMsIDY1NjY4LCA5MjI1NywgNjYxOCwgMTE4Nzg0LCA2NjM2NSwgMCwgNDIyMzQsIDEyNjQ4LCA3ODExMCwgNzEyMywgCisgICAgNzAwMzgsIDU3ODUsIDkxOTgsIDk3NjQsIDQxMzE2LCA2NTg3NywgNzM4MywgMTMyMzAsIDQxMjk5LCAwLCAwLCA2ODM2NSwgCisgICAgMTI4MjU4LCAwLCAwLCAwLCAxMzEyMiwgMCwgMTkxLCA3MDA2MCwgODU4NSwgODAwMCwgNjQ0MTEsIDEyMDY1MiwgNDI4ODksIAogICAgIDY0ODUwLCA0MTA3MiwgNDE1NzgsIDAsIDQxNTc3LCAwLCAxMDAwMiwgMCwgNjUzMywgNzM4MDIsIDQxNTcwLCAwLCA2ODMsIAogICAgIDM5NiwgNDE1ODAsIDY4MTQ2LCAwLCAxMjkwMSwgNDMwNTgsIDAsIDM0MywgNzEyOSwgNDI2ODAsIDQxMzYwLCA3ODE1NCwgMCwgCi0gICAgNDc0MywgMCwgMCwgNzQwNDAsIDc0MTA4LCA4NzQzLCAxNzI0LCAxNDMzLCAxMTkzMjIsIDAsIDM3MzksIDYyNjMsIDkyNTE0LCAKLSAgICAwLCAzOTY0LCA2NTkyLCAwLCAxMjg2OTMsIDY2MDQwLCAwLCA0MjU2OCwgNjk4MDYsIDAsIDE3NzgsIDM5NTYsIDAsIAotICAgIDQyMDcwLCA2NTYzLCA0MzA3NSwgOTAxOCwgMCwgMCwgMTIwNjcsIDQxMzEyLCAwLCA1NTQ3LCA3NDUzMSwgMTI3OTY5LCAwLCAKLSAgICA4MTc1LCAwLCAyODQsIDgxMDgsIDkzNCwgMCwgNzQwMDEsIDE3MywgNjY0NjAsIDcxNzQsIDkyNzAzLCAxMTg4MjIsIDE3NTAsIAotICAgIDAsIDQzOTQsIDY4MzY4LCAxODA3LCAwLCA5MjI5OCwgMCwgNTg4OSwgMCwgNzE4MCwgMCwgMTE5MTQ1LCAwLCA5MTc1NTgsIAotICAgIDQyNDcxLCA2OTgyLCAxNzIxLCA0NDAyMiwgNzg5MSwgNDIyNDMsIDQyMTYwLCAyNTgzLCA0NTEyLCAxMTkzNjAsIDY1MjMwLCAKLSAgICAxMjgxMDksIDAsIDAsIDM4NTUsIDAsIDAsIDAsIDAsIDc0Mjk1LCAwLCAwLCA5MjQxNiwgMzk3NSwgMCwgNzQwODcsIDAsIAotICAgIDEyNjcyLCAzNzk4LCAyNzAzLCAwLCAwLCAyMTA5LCA5Nzc0LCAxMjc1LCAwLCAwLCA0MTA5NSwgMzk2MiwgMCwgMjkzMiwgCi0gICAgNDExMDEsIDM5NTQsIDY0NTcsIDQ1MTMsIDAsIDAsIDczOTk0LCA3Mzk5MiwgMTQ2OCwgMCwgMCwgNDE4NTEsIDEyODIzMCwgCi0gICAgNDE4NDYsIDAsIDU1MjM4LCA3NjMzLCA0MTg0OSwgNjgzODUsIDQzMjAsIDMyMjQsIDAsIDEyODAzMiwgMCwgNDI1MzEsIDAsIAotICAgIDE1MTAsIDAsIDgyNTYsIDAsIDExMzkzLCAwLCA4ODc5LCAxMjgwNzUsIDkyNDc0LCA4NzcwLCAwLCAwLCA3ODM3NywgMTkxMCwgCi0gICAgODY3MSwgNzgzNzQsIDQyODMsIDAsIDEyNzExNywgNjgzNjEsIDc4MzE4LCAyNjU0LCA3ODkzLCAxOTUwMDcsIDAsIDAsIDAsIAotICAgIDY1MTA2LCA0Mjc2MSwgMTI4NTcsIDQ1ODEsIDg0MTEsIDc4MzcyLCA3ODM3MSwgNzgzNzAsIDc4MzY5LCA3ODM2OCwgMCwgMCwgCi0gICAgMCwgMTczMywgNDM5MiwgMjU2OCwgMTA3ODYsIDY5NjYxLCAwLCA4MTg0LCA0MTQ4NiwgMCwgNzM5NiwgNzExNiwgMCwgCi0gICAgNjk3ODgsIDAsIDcxODUsIDc5NjUsIDAsIDAsIDkyMzQ3LCAwLCA0MTM1MCwgOTEyOSwgMCwgMCwgMCwgMCwgOTI0ODksIDAsIAotICAgIDEwNDgxLCAwLCAxMjc0ODYsIDcxNzEsIDAsIDM0MCwgOTI0OTgsIDAsIDAsIDAsIDkyMjAwLCAwLCAwLCA2NzY0LCAKLSAgICAxMjc0ODcsIDAsIDAsIDAsIDAsIDY1MjAzLCAxMTM5MiwgMTE5MDk4LCAxMTkzNTksIDAsIDMyMTAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDEyNzk3MCwgOTE3NjE5LCAwLCAwLCAxMDA0MywgMCwgMTE4NiwgNDE1NzEsIDY5OTksIDYxNywgOTQ2NCwgMTI4MjQ0LCAKLSAgICAzNjc1LCA1MjA3LCA2NTA2MiwgNTIxMywgMTk0NzY5LCAyNjE3LCA0MTM0OCwgNDE1NjgsIDEyODgwMywgMzI1MywgCi0gICAgMTIwNTM1LCAwLCA4NjMwLCAxMjg1NDQsIDAsIDU1OTYsIDU1NDUsIDcyODgsIDI1ODYsIDY0ODg3LCAwLCA1MjE3LCAwLCAwLCAKLSAgICAwLCAwLCA2NDI5MywgNjgwOTgsIDI2MzUsIDAsIDAsIDAsIDAsIDAsIDc4MzUsIDAsIDAsIDE5NDk4OCwgOTIyODUsIAotICAgIDY0NTU4LCAxMjcxMjIsIDAsIDEyNzEyMSwgMCwgMTI3OTEzLCAwLCA1Nzg0LCAwLCAwLCAwLCAwLCA0MDExLCA5MTc2MTYsIAotICAgIDY4MTAxLCAwLCA3ODY0LCA0MjU0LCA2NTA5NSwgMCwgNTYwMCwgMzkwMywgMTI3MDgzLCAxMDQ0NywgNTU5OCwgMTIwNywgCi0gICAgMTIwNTIxLCA2NjY4OSwgMzUwMSwgNDI1ODIsIDQzNjAwLCAxOTQ3ODAsIDAsIDExMjQsIDU1OTcsIDE5NDc3OCwgMTk0NzcyLCAKLSAgICA5MzIxLCAwLCAwLCAwLCAwLCAxNzE5LCA2ODM1NiwgNjgzNTQsIDk2NzEsIDExMjUsIDQzOTksIDEyNzQ3OSwgOTE3NjEwLCAKLSAgICAwLCA3NjMxLCA1NDg4LCA3MTI4LCAxMjA1MzIsIDAsIDU0OTEsIDAsIDg5MzcsIDQzMDQ0LCAyNjA0LCA3NDE4NywgNTQ5MCwgCi0gICAgNDMwNDYsIDU0ODksIDcyMTIsIDExNzY4LCA0MzA0MywgNjMwMCwgMCwgNzEyMiwgMCwgNDM5MCwgNDU0LCA0MTM5NywgMCwgCi0gICAgOTg3NSwgNzU5MywgMTk0NzkyLCA5MjI3NCwgMTE4OTEzLCA3MjA3LCAwLCA2NTkwMSwgMjM5NCwgMjU3NSwgMCwgMzc0NiwgCi0gICAgMTEwMTYsIDY1NzUyLCAxMjAwMzcsIDAsIDQzNDIzLCAxMjg2ODMsIDExOTg5LCAwLCAwLCAwLCAwLCAwLCA4MjQ5LCAKLSAgICAxMjgxNzIsIDAsIDc4NTMxLCA2NjQwLCA3NDgwNiwgMjU5OCwgNTEzLCAwLCA2NTg2LCA4NjU2LCAwLCAxMjcwMDIsIAotICAgIDY1MDA4LCAwLCAxOTQ3ODQsIDE5NDk4OSwgMTk0Nzk1LCAwLCA5MjUxNSwgNjg0NzUsIDAsIDAsIDAsIDc4NjM3LCAxMjY0NywgCi0gICAgMCwgMTI4MDQzLCAwLCAxMDM2LCAwLCA5MjQxOSwgMTcyMywgMTI4MDU2LCAwLCAwLCA0MTU3OSwgMjQ0NCwgMCwgMTA3MDUsIAotICAgIDczODc2LCAwLCA3NDQ4NiwgMCwgNzQwLCAxMTkyMjIsIDE5NDk3OCwgMTk0OTg0LCAwLCA0MjM4LCAxMTA3MSwgOTQ1OSwgCi0gICAgNjg0MzcsIDc4MTQwLCA3ODEzOSwgMTk0OTg1LCA4MTIxLCAxMDQzOCwgNzQ0ODcsIDQyNTc0LCAxMzI4NSwgNTUyNjMsIAotICAgIDExOTA3LCAxOTUwMDAsIDU2OTAsIDkyMjU1LCAwLCAwLCA0MzE4MSwgMTMwOTUsIDAsIDEyNzg1NywgNjQ0OTgsIDAsIAotICAgIDk1MDYsIDY5NzgsIDE5NDk5MywgNzc5OTIsIDAsIDAsIDE5NDk5MiwgMCwgMTI3ODQ1LCAxMTIyLCAzMTcsIDAsIDAsIDAsIAotICAgIDAsIDE5MjAsIDAsIDEwMTczLCA4MjcsIDAsIDAsIDc4Mzc4LCAxMjAxMjYsIDUyMjMsIDEzMDQsIDAsIDExOTU2NCwgNTIyNiwgCi0gICAgMTI2MDIsIDAsIDAsIDkzMjksIDc3NTgsIDkyMzksIDQxMTczLCA1MjI0LCA1NDg3LCAxMjIyLCA1NjkyLCA0MTcyNSwgCisgICAgNDc0MywgMCwgMCwgNzQwNDAsIDc0MTA4LCA4NzQzLCAxNzI0LCAxNDMzLCAxMTkzMjIsIDAsIDM3MzksIDYyNjMsIDcxMzQ5LCAKKyAgICAwLCAzOTY0LCA2NTkyLCAwLCAxMjg2OTMsIDY2MDQwLCAwLCA0MjU2OCwgNjk4MDYsIDEyODExMywgMTc3OCwgMzk1NiwgMCwgCisgICAgNDIwNzAsIDY1NjMsIDQzMDc1LCA5MDE4LCA5NDAwNiwgOTgzMzg4LCAxMjA2NywgNDEzMTIsIDAsIDU1NDcsIDc0NTMxLCAKKyAgICAxMjc5NjksIDAsIDgxNzUsIDAsIDI4NCwgODEwOCwgOTM0LCAwLCA3NDAwMSwgMTczLCA2NjQ2MCwgNzE3NCwgOTI3MDMsIAorICAgIDExODgyMiwgMTc1MCwgMCwgNDM5NCwgNjgzNjgsIDE4MDcsIDk4Mzg3OSwgOTIyOTgsIDAsIDU4ODksIDAsIDcxODAsIDAsIAorICAgIDExOTE0NSwgMCwgOTE3NTU4LCA0MjQ3MSwgNjk4MiwgMTcyMSwgNDQwMjIsIDc4OTEsIDQyMjQzLCA0MjE2MCwgMjU4MywgCisgICAgNDUxMiwgMTE5MzYwLCA2NTIzMCwgMTI4MTA5LCAwLCAwLCAzODU1LCAwLCAwLCAwLCAwLCA3NDI5NSwgMCwgMCwgOTI0MTYsIAorICAgIDM5NzUsIDAsIDc0MDg3LCAwLCAxMjY3MiwgMzc5OCwgMjcwMywgOTgzNTk5LCAwLCAyMTA5LCA5Nzc0LCAxMjc1LCAwLCAwLCAKKyAgICA0MTA5NSwgMzk2MiwgMCwgMjkzMiwgNDExMDEsIDM5NTQsIDY0NTcsIDQ1MTMsIDAsIDAsIDczOTk0LCA3Mzk5MiwgMTQ2OCwgCisgICAgMCwgMCwgNDE4NTEsIDEyODIzMCwgNDE4NDYsIDAsIDU1MjM4LCA3NjMzLCA0MTg0OSwgNjgzODUsIDQzMjAsIDMyMjQsIDAsIAorICAgIDEyODAzMiwgMCwgNDI1MzEsIDExOTEwOCwgMTUxMCwgMCwgODI1NiwgMCwgMTEzOTMsIDAsIDg4NzksIDEyODA3NSwgCisgICAgOTI0NzQsIDg3NzAsIDAsIDAsIDc4Mzc3LCAxOTEwLCA4NjcxLCA3ODM3NCwgNDI4MywgMCwgMTI3MTE3LCA2ODM2MSwgCisgICAgNzgzMTgsIDI2NTQsIDc4OTMsIDE5NTAwNywgMCwgMCwgMCwgNjUxMDYsIDQyNzYxLCAxMjg1NywgNDU4MSwgODQxMSwgCisgICAgNzgzNzIsIDc4MzcxLCA3ODM3MCwgNzgzNjksIDc4MzY4LCAwLCAwLCAwLCAxNzMzLCA0MzkyLCAyNTY4LCAxMDc4NiwgCisgICAgNjk2NjEsIDAsIDgxODQsIDQxNDg2LCAwLCA3Mzk2LCA3MTE2LCAwLCA2OTc4OCwgMCwgNzE4NSwgNzk2NSwgMCwgMCwgCisgICAgOTIzNDcsIDk4MzA4NywgNDEzNTAsIDkxMjksIDAsIDAsIDIyOTQsIDAsIDkyNDg5LCAwLCAxMDQ4MSwgMCwgNzAwMjIsIAorICAgIDcxNzEsIDAsIDM0MCwgOTI0OTgsIDkzOTcyLCAwLCAwLCA5MjIwMCwgMCwgMCwgNjc2NCwgMTI3NDg3LCAwLCAwLCAwLCAwLCAKKyAgICA2NTIwMywgMTEzOTIsIDExOTA5OCwgMTE5MzU5LCAwLCAzMjEwLCAwLCAwLCAxMTg3OTUsIDAsIDAsIDEyNzk3MCwgCisgICAgOTE3NjE5LCAwLCAwLCAxMDA0MywgMCwgMTE4NiwgNDE1NzEsIDY5OTksIDYxNywgOTQ2NCwgMTI2NjQyLCAzNjc1LCA1MjA3LCAKKyAgICA2NTA2MiwgNTIxMywgMTk0NzY5LCAyNjE3LCA0MTM0OCwgNDE1NjgsIDEyODgwMywgMzI1MywgMTIwNTM1LCAwLCA4NjMwLCAKKyAgICAxMjg1NDQsIDAsIDU1OTYsIDU1NDUsIDcyODgsIDI1ODYsIDY0ODg3LCAwLCA1MjE3LCA3MTMzNiwgMCwgMCwgMCwgNjQyOTMsIAorICAgIDY4MDk4LCAyNjM1LCAwLCAwLCA5ODM4MzcsIDAsIDk4MzYzMiwgNzgzNSwgNzAwNDAsIDAsIDE5NDk4OCwgOTIyODUsIAorICAgIDY0NTU4LCAxMjcxMjIsIDAsIDEyNzEyMSwgMCwgMTI3OTEzLCAwLCA1Nzg0LCA5ODMxMDIsIDAsIDAsIDcwMDMzLCA0MDExLCAKKyAgICA5MTc2MTYsIDY4MTAxLCAwLCA3ODY0LCA0MjU0LCA2NTA5NSwgOTgzNDg4LCA1NjAwLCAzOTAzLCAxMjcwODMsIDEwNDQ3LCAKKyAgICA1NTk4LCAxMjA3LCAxMjA1MjEsIDY2Njg5LCAzNTAxLCA0MjU4MiwgNDM2MDAsIDE5NDc4MCwgMCwgMTEyNCwgNTU5NywgCisgICAgMTk0Nzc4LCAxOTQ3NzIsIDkzMjEsIDk4MzQ3NiwgOTgzNDczLCA5ODM0NzQsIDAsIDE3MTksIDY4MzU2LCA2ODM1NCwgCisgICAgOTY3MSwgMTEyNSwgNDM5OSwgMTI3NDc5LCA5MTc2MTAsIDk4MzQ4MCwgNzYzMSwgNTQ4OCwgNzEyOCwgMTIwNTMyLCAwLCAKKyAgICA1NDkxLCAwLCA4OTM3LCA0MzA0NCwgMjYwNCwgNzQxODcsIDU0OTAsIDQzMDQ2LCA1NDg5LCA3MjEyLCAxMTc2OCwgNDMwNDMsIAorICAgIDYzMDAsIDAsIDcxMjIsIDAsIDQzOTAsIDQ1NCwgNDEzOTcsIDAsIDk4NzUsIDc1OTMsIDE5NDc5MSwgOTIyNzQsIDExODkxMywgCisgICAgNzIwNywgMCwgNjU5MDEsIDIzOTQsIDI1NzUsIDAsIDM3NDYsIDExMDE2LCA2NTc1MiwgMTIwMDM3LCAwLCA0MzQyMywgCisgICAgMTI4NjgzLCAxMTk4OSwgMCwgMCwgMCwgMCwgMCwgODI0OSwgMTI4MTcyLCAwLCA3ODUzMSwgNjY0MCwgNzQ4MDYsIDI1OTgsIAorICAgIDUxMywgMCwgNjU4NiwgODY1NiwgMCwgMTIwNzEwLCA2NTAwOCwgMCwgMTk0Nzg0LCAxOTQ5ODksIDE5NDc5NSwgOTgzNDY1LCAKKyAgICA5MjUxNSwgNjg0NzUsIDkzOTczLCAwLCAwLCA3ODYzNywgMTI2NDcsIDAsIDEyODA0MywgNjk4OTMsIDEwMzYsIDk4MzQ2OSwgCisgICAgOTI0MTksIDE3MjMsIDEyODA1NiwgNzQyMTcsIDAsIDQxNTc5LCAyNDQ0LCAwLCAxMDcwNSwgNzM4NzYsIDk4MzQ2MSwgCisgICAgNzQ0ODYsIDk4MzQ1OSwgNzQwLCAxMTkyMjIsIDE5NDk3OCwgMTk0OTg0LCAwLCA0MjM4LCAxMTA3MSwgOTQ1OSwgNjg0MzcsIAorICAgIDc4MTQwLCA3ODEzOSwgMTk0OTg1LCA4MTIxLCAxMDQzOCwgNzQ0ODcsIDQyNTc0LCAxMzI4NSwgNTUyNjMsIDExOTA3LCAKKyAgICAxOTUwMDAsIDU2OTAsIDkyMjU1LCA5Mzk5MiwgMCwgNDMxODEsIDEzMDk1LCAwLCAxMjc4NTcsIDY0NDk4LCAwLCA5NTA2LCAKKyAgICA2OTc4LCAxOTQ5OTMsIDc3OTkyLCAwLCAwLCAxOTQ5OTIsIDAsIDEyNzg0NSwgMTEyMiwgMzE3LCAwLCAwLCAwLCAwLCAKKyAgICAxOTIwLCAwLCAxMDE3MywgODI3LCAwLCAwLCA3ODM3OCwgMTIwMTI2LCA1MjIzLCAxMzA0LCAwLCAxMTk1NjQsIDUyMjYsIAorICAgIDEyNjAyLCA5NDA0NCwgMCwgOTMyOSwgNzc1OCwgOTIzOSwgNDExNzMsIDUyMjQsIDU0ODcsIDEyMjIsIDU2OTIsIDQxNzI1LCAKICAgICA2OTIyOSwgOTY3NCwgNTY5NSwgNDE3MTEsIDY0NjI3LCAxOTkwOSwgMCwgNzQ2MDQsIDU2OTEsIDI4NywgODY2LCAyMzMsIAotICAgIDEyNzQ5MCwgMCwgNDI4MTYsIDAsIDY1MTQwLCA3NDc5NywgMCwgODgzMCwgNjU2OCwgNDIzMDAsIDEwNTI0LCA0MTE3NSwgMCwgCi0gICAgMCwgMCwgNTI5NiwgMCwgNDI0OTIsIDQzNDAyLCA5MjQ2NiwgMzMwMiwgMCwgMCwgNjUxNiwgNjUxNSwgNjUxNCwgNjUxMywgCi0gICAgNjUxMiwgMCwgNzg1NiwgODY5MCwgMCwgMCwgMTIxMjIsIDExOTYwMiwgNDM5NzYsIDAsIDE3ODUsIDkyNTA3LCA2ODYyMiwgCi0gICAgNjUxNTMsIDE5NDgxMCwgNTEzOCwgMCwgMCwgMCwgMCwgNDU0MCwgNDExODEsIDAsIDYyMDAsIDAsIDUxMzQsIDAsIDMyMiwgCi0gICAgNDY0MywgNTEzMiwgMCwgNjM4OSwgMCwgNTE0MywgMCwgODc5MCwgMTI4Njk0LCAwLCAxOTQ4MDIsIDAsIDg4NjksIAotICAgIDEyMDYwMSwgMCwgNDIwNjAsIDAsIDAsIDE5NDgwNCwgMTI3MDEyLCAxMDI3MCwgMTAyODYsIDEwMzE4LCAxMDM4MiwgCi0gICAgNDM1MjksIDY2NDc3LCAwLCAwLCA3NDE3MCwgMCwgMzIzNCwgMCwgMCwgNzQzNzYsIDQzMTM5LCAxMTg4MTUsIDEyNzA4NCwgCi0gICAgMTIwNjI3LCA4NzY3LCAwLCA3NDQ4OSwgOTY5NSwgMTIwNzQ2LCA1MjAxLCAwLCA2MjE1LCAxMjcxNCwgNjIxNCwgMTMxMDEsIAotICAgIDAsIDE5NDk5OSwgNjUyNjgsIDAsIDAsIDAsIDExMDI3LCAwLCAxMDA1OSwgMTA1MTEsIDQyMDc1LCA5NzY3LCA3ODksIAotICAgIDE3NDksIDc4ODkwLCAxMjcwNzEsIDAsIDMyMCwgMCwgODY0NywgMCwgMzA0OSwgMCwgNjQ3MSwgNDIwNzEsIDQzMTU2LCAKLSAgICA5OTI1LCAxMjczNTYsIDEyNzM1NSwgNjY0NzgsIDQ5NjAsIDU1NDksIDEyNzM1OSwgMTI3MzQ2LCA4NDg1LCA0NjcxLCAKLSAgICA1NDE4LCAxMjczNTAsIDMzNTEsIDEyNzAwNiwgMTI3MzUxLCAxMDYxMCwgNTQxNCwgMzA2NCwgNjIxMiwgNDI4NiwgNTQyMSwgCi0gICAgMTI3MzQ0LCA5NTU0LCAwLCAxMjc3OTQsIDEyNzEwOSwgNjY1MywgMTI4ODExLCAwLCA2NDUxMCwgNjIxMywgMTI4ODUsIDAsIAotICAgIDExOTA0NSwgNjQ3MjAsIDAsIDEyMDc1OSwgNzM3NDEsIDEyNjAzLCA3MTMxLCAxMTQzMCwgNDU2NiwgNzg0MywgOTMxNywgCi0gICAgMzgwMSwgMTAzNDIsIDEwNDA2LCAwLCAxMTkyNTksIDQyNTc2LCAwLCA1MjAwLCAwLCA5MTc5NDgsIDAsIDkxODMsIAotICAgIDEyNzM2MSwgNzQ0NTgsIDczODI1LCAzOTUsIDU0ODIsIDUxOTgsIDg3ODYsIDEwMzkwLCA3NDIwMiwgNTE5NiwgNDMyMjQsIAotICAgIDYxMTMsIDQyMDA5LCA1MjA1LCAwLCA0MzMwNywgMCwgMTE4OTczLCAwLCAxMjEzNCwgMCwgMCwgMTE4ODQzLCA5MTI2LCAKLSAgICA0MzUsIDAsIDEyMDE0LCAxMDM3NywgODA5MywgOTA3OSwgMzIwMywgMTkyLCA2NTEwOSwgMzM4NSwgMCwgNjQ0MzAsIDUzODMsIAotICAgIDEwMjk0LCAxMDMyNiwgMTI4MTc4LCA1NzM4LCAwLCAzMzM2LCA3ODM1NSwgNTM2MSwgMzYyMywgNDExNTksIDAsIDY4MTEyLCAKLSAgICA3ODcyLCA4NTgxLCAwLCAxMjYwLCAzMTQ5LCA1MzU5LCAwLCAwLCA3OTE0LCA1MzU3LCA5MjE3MCwgMTI4NjU5LCAyNjI0LCAKLSAgICA1MzY0LCAwLCAxMTQzMSwgMTIwMDMwLCA5MTAxLCAxMTA1OCwgNzgyODgsIDAsIDc4MjkzLCA0MjI3MSwgNzgyODksIAotICAgIDQyOTE3LCAxMjA3OTMsIDAsIDY1NTY2LCA2NzE3LCAxMDYxOSwgNDMzNjAsIDc4Mzg1LCA3ODM4NCwgNzgzODMsIDc4MzgyLCAKLSAgICA3ODM4MSwgNzgzODAsIDc4Mzc5LCA5MzE5LCA3MDk3LCAxMTkwNTUsIDc3OTA2LCAzMjMyLCA3MzgyNCwgNzQ1ODEsIAotICAgIDEyMDYzMiwgMCwgMCwgNDE4ODksIDkyNDUzLCAwLCAxMTYxLCA0MTg5NSwgNzQxMDMsIDk3MDEsIDg2MjIsIDAsIDAsIAotICAgIDczODE5LCAxMjA1ODgsIDUwMTIsIDc3OTEyLCA0MTM2MiwgMCwgNzgyOTYsIDExOTIxLCAwLCAxMTc2OSwgMCwgNjg2MDksIAotICAgIDQxMzY0LCAwLCA3NDIyOCwgNDEzNTIsIDQxMzYxLCAwLCA0MTM2NiwgMCwgMzM1NiwgMCwgOTE3LCA2ODQyMiwgMTE5OTE1LCAKLSAgICA3MTM0LCA4MTk5LCA3ODM4OSwgMTE5OTE3LCA2NzcsIDExOTkxNiwgMCwgMTE5OTMyLCAxMjcxNjksIDAsIDAsIDAsIDMzNDksIAotICAgIDc0MTI1LCA3MDIyLCA4OTI3LCA0NzM5LCAwLCA1ODAyLCAwLCA4NjE1LCAwLCAwLCA0OTEsIDAsIDEwMTkwLCAxMjA2OTgsIAotICAgIDY1ODM3LCAxMjg4MjAsIDg0MjYsIDExMDkyLCA5ODkxLCAwLCA0MjQ5NywgNzExMywgNzU4NiwgNDIzMDUsIDEwODUyLCAwLCAKLSAgICAwLCA0NjA2LCA2ODQ0OCwgOTA5NSwgNzc0MSwgMTI2ODQsIDQxODg1LCAxMDQ2LCA3MTI0LCAwLCAwLCA1ODE1LCA1MTcxLCAKLSAgICA2NTUzOSwgNjg2MTIsIDY5MzIsIDc4MzE1LCA0MjM5NCwgNDE4NzgsIDc0ODQ5LCAxMjA2MjEsIDAsIDUxNjksIDExOTM1LCAKLSAgICAwLCAwLCAzMTc1LCAxMjA4MjIsIDE1MzcsIDEyMDgwNCwgNTE3NiwgODkwNSwgNDEzNiwgNDg3MSwgNzgyODcsIDAsIDk4MzMsIAotICAgIDAsIDAsIDExMjgsIDY1OTIwLCAwLCA5NzExLCA3MDU3LCA5NDA4LCA5NDA5LCA5NDEwLCA5NDExLCAzNjYyLCA5NDEzLCAKLSAgICAzMzc4LCA5NDE1LCA5NDE2LCA5NDE3LCA5NDE4LCA2MzIwLCA5NDIwLCA5NDIxLCA1ODk3LCA5NDIzLCA1MTY1LCA1MTI2LCAKLSAgICA0MTM4NSwgMCwgNDEzODksIDkxNzkzOCwgODk1NSwgMzM3NCwgOTQwMCwgOTQwMSwgNzExOSwgOTQwMywgOTQwNCwgMzUwNywgCi0gICAgOTQwNiwgNzYyOSwgMCwgMTk5MjUsIDQyNjY5LCA2ODQ2MywgMTgzLCA0Mzk4NSwgMjYzMSwgMCwgMTA2MjcsIDQxMTMwLCAKLSAgICA3ODI2MCwgMzk5NiwgMCwgNzg3NzEsIDAsIDExOTMxMywgMTE5MzA3LCA3ODc2OCwgNjU4MCwgNDMzMiwgNjQ4MjUsIAotICAgIDY2MzI5LCAxMDcyNiwgNjY2ODYsIDQxMTI1LCA1ODk5LCA0MTM2NSwgOTE3OTE4LCAxMjA4NSwgMCwgNTc0LCA5MTc5MjIsIAotICAgIDc3ODI1LCA3MzgyOCwgNTQ0OCwgNDEwNTgsIDU0NDYsIDY5NzA5LCA0MTMyMiwgNDIyMTEsIDU0NDIsIDQxOTAsIDc3ODM0LCAKLSAgICA3NzgzNSwgNTQ1MSwgNzc4MzMsIDM2MTYsIDc3ODI4LCA3NzgzNywgNzc4MzgsIDc3MDgsIDc3ODM2LCAxMDg1OSwgNjU4NjcsIAotICAgIDEwMzQ1LCAxMDQwOSwgNDE5MSwgMCwgNzc4NDQsIDczODAwLCA0MjE4MSwgNzc4NDMsIDc3ODM5LCAyMDYwLCAwLCA3MTExLCAKLSAgICAxMTc4OCwgNjU1ODcsIDY4MTI5LCAxMDQxNSwgNzQxMDIsIDAsIDIwNSwgMCwgMTAzNTEsIDExOTA3NiwgMCwgOTg2MiwgCi0gICAgNjU4OCwgNDMyNTcsIDY0Njk3LCA3Mzk5OCwgNDEzNTUsIDU1MDUsIDExOTE1NCwgNTUwMywgODAyMSwgMCwgNzEyNSwgCi0gICAgOTgxOSwgNDEzNTcsIDgwMTEsIDQyODg1LCA1NTA3LCAxMjA0NCwgOTI2MzYsIDAsIDEwMDI2LCA1NDcyLCA3MTA5LCAxMTkxLCAKLSAgICAxMzEwNiwgNTQ3MCwgMTAzMjksIDU0NzYsIDg5OTEsIDY2MzIyLCA2OTc3OCwgNzgyNjcsIDQyODc0LCA4NTUwLCA0Mjg3NiwgCi0gICAgNTU5MiwgMjkxOSwgMCwgMjY3NSwgNTU5NSwgNzg0MTEsIDAsIDQzNjcsIDAsIDAsIDU0NzgsIDU5MDQsIDU1OTQsIDAsIAotICAgIDc0MTUwLCA3MjkxLCA1NTkwLCA3Nzg0OSwgMTMwNjcsIDExODkwOSwgMTIwMzcyLCAwLCA5NzMxLCA2OTczMSwgNjQ2MzMsIAotICAgIDc3ODU3LCA3Nzg1NCwgNzc4NTUsIDc3ODUyLCA3Nzg1MywgNzc4NTAsIDEwNzUwLCA0MzcxNCwgNzc4NTgsIDcxMzcsIDAsIAotICAgIDEyODI5NiwgMTI4ODcsIDEwNTUxLCAxOTQ1NjQsIDc3ODY2LCA3Nzg2NywgNzc4NjQsIDc3ODY1LCA5OTI5LCA1MTk5LCAKLSAgICA5OTM2LCAxMTIwLCA0MjM4NywgMCwgMTQ0NCwgOTQ4NiwgNzU1NCwgNjU4MzksIDU1MjUyLCAwLCAxNDQyLCAwLCA1ODk0LCAKLSAgICAwLCAwLCA0MTE3MSwgOTI1MTEsIDc0MzEzLCAwLCAxMzE2MiwgMCwgMzMzNCwgMCwgMTE4ODAzLCA3Nzg4MSwgNjYwMjIsIDAsIAotICAgIDAsIDE2NTEsIDAsIDg4NjEsIDAsIDAsIDExNDIsIDAsIDgyNzEsIDAsIDAsIDAsIDEyOTAzLCAwLCA0MDAyLCA0MzYyNiwgCi0gICAgMTA0NDIsIDEwNjc2LCAzMzQ0LCAwLCAwLCAxMjkyMCwgMTk0NTYwLCAwLCAwLCA2NjY0MiwgMTI3NywgMCwgNzg3MSwgMCwgCi0gICAgMCwgNzg4NTMsIDAsIDc4ODU0LCAxMjAzNjAsIDAsIDExNzg0LCAwLCA3ODAxMiwgNDcwMCwgNjYzNjYsIDc4ODU4LCAKLSAgICAxMjAzNTksIDExMDEyLCAwLCA3ODg1NiwgOTI0MDAsIDc3ODc5LCA0OTczLCA4Nzg0LCA3Nzg3NywgNzQ4MDQsIDc3ODc0LCAKLSAgICA3Nzg2OSwgNzc4NzEsIDQyNDQwLCAwLCA0MzExOCwgMCwgNDIzNjQsIDY3NzQsIDY3NzMsIDkxNzU2MCwgMTIwMzY5LCAKLSAgICAxMDM0NiwgMTA0MTAsIDc4ODU5LCA5MjQzLCAyNDY0LCA3NDI2MywgNjEwOCwgMzM3MiwgMCwgNjI0NywgNDMxMTcsIAotICAgIDc0NTI2LCA3MTIxLCA3NDE2NiwgMCwgMTIwMzU1LCA5MjUzNywgMCwgMCwgMTk1MDM0LCAwLCAwLCAwLCA3NDIxNywgMzM1NCwgCi0gICAgMTk1MDM3LCA0MTkyLCA5Mjg5LCAxMTg5OTksIDQxMTkxLCAzODc2LCAwLCAxMjc5ODMsIDEyMDY2MCwgNDM2OTYsIDQzMzgwLCAKLSAgICAwLCAwLCAwLCAwLCAxMTYwMywgMCwgMCwgNjU4OSwgMTI4NTg4LCAxOTQ2NzksIDAsIDAsIDAsIDAsIDAsIDQyNTcyLCAKLSAgICAxMjgyNjQsIDEwNjMwLCA3NDgyNywgMTk2MywgMTE4ODg5LCAxMjc5NzgsIDExNjU0LCAwLCA3NTUwLCAxMDY4NiwgNTkwMywgCi0gICAgMCwgNzgwMDksIDQxMzI5LCA5NjYyLCA5MTc5MzcsIDY0Njk4LCAzMzY2LCAxMDM5OSwgMCwgMCwgMTEwMTMsIDEyNzkyNywgCi0gICAgMTI4MzAwLCAwLCA3ODYyMSwgMTk0NjcyLCA2OTI1LCAwLCAwLCA5MTc5MjksIDAsIDExNTY4LCAwLCA0MzM2NywgNjQ1NzksIAorICAgIDEyNzQ5MCwgOTgzNDMzLCA0MjgxNiwgOTQwMzYsIDY1MTQwLCA3NDc5NywgMCwgODgzMCwgNjU2OCwgNDIzMDAsIDEwNTI0LCAKKyAgICA0MTE3NSwgOTgzNDQwLCA5ODM0MzcsIDk4MzQzOCwgNTI5NiwgOTgzNDM2LCA0MjQ5MiwgNDM0MDIsIDkyNDY2LCAzMzAyLCAKKyAgICAwLCAwLCA2NTE2LCA2NTE1LCA2NTE0LCA2NTEzLCA2NTEyLCAwLCA3ODU2LCA4NjkwLCAwLCAwLCAxMjEyMiwgMTE5NjAyLCAKKyAgICA0Mzk3NiwgMCwgMTc4NSwgNjk5MjUsIDY4NjIyLCA2NTE1MywgMTk0ODEwLCA1MTM4LCAwLCAwLCAxMTg4NjksIDAsIDQ1NDAsIAorICAgIDQxMTgxLCAwLCA2MjAwLCAwLCA1MTM0LCAwLCAzMjIsIDQ2NDMsIDUxMzIsIDAsIDYzODksIDEyODUzMywgNTE0MywgMCwgCisgICAgODc5MCwgMTI4Njk0LCAwLCAxOTQ4MDIsIDAsIDg4NjksIDY5OTE2LCAwLCA0MjA2MCwgNzEzMjYsIDk2NDgsIDE5NDgwNCwgCisgICAgMTI3MDEyLCAxMDI3MCwgMTAyODYsIDEwMzE4LCAxMDM4MiwgNDM1MjksIDY2NDc3LCAwLCAwLCA3NDE3MCwgMCwgMzIzNCwgCisgICAgMCwgMCwgNzQzNzYsIDQzMTM5LCAxMTg4MTUsIDEyNzA4NCwgMTIwNjI3LCA4NzY3LCAwLCA3NDQ4OSwgOTY5NSwgMTIwNzQ2LCAKKyAgICA1MjAxLCAwLCA2MjE1LCAxMjcxNCwgNjIxNCwgMTMxMDEsIDAsIDE5NDk5OSwgNjUyNjgsIDAsIDAsIDAsIDExMDI3LCAwLCAKKyAgICAxMDA1OSwgMTA1MTEsIDQyMDc1LCA5NzY3LCA3ODksIDE3NDksIDc4ODkwLCAxMjcwNzEsIDk4MzY2MSwgMzIwLCAwLCAKKyAgICA4NjQ3LCAwLCAzMDQ5LCAwLCA2NDcxLCA0MjA3MSwgNDMxNTYsIDk5MjUsIDEyNzM1NiwgMTI3MzU1LCA2NjQ3OCwgNDk2MCwgCisgICAgNTU0OSwgMTI3MzU5LCAxMjczNDYsIDg0ODUsIDQ2NzEsIDU0MTgsIDEyNzM1MCwgMzM1MSwgMTI3MDA2LCAxMjczNTEsIAorICAgIDEwNjEwLCA1NDE0LCAzMDY0LCA2MjEyLCA0Mjg2LCA1NDIxLCAxMjczNDQsIDk1NTQsIDAsIDk0MDQ4LCAxMjcxMDksIAorICAgIDY2NTMsIDEyODgxMSwgMCwgNjQ1MTAsIDYyMTMsIDEyODg1LCAwLCAxMTkwNDUsIDY0NzIwLCAwLCAxMjA3NTksIDczNzQxLCAKKyAgICAxMjYwMywgNzEzMSwgMTE0MzAsIDQ1NjYsIDc1MTgsIDkzMTcsIDM4MDEsIDEwMzQyLCAxMDQwNiwgMCwgMTE5MjU5LCAKKyAgICA0MjU3NiwgMCwgNTIwMCwgMTI2NjExLCA5MTc5NDgsIDAsIDkxODMsIDEyNzM2MSwgNzQ0NTgsIDczODI1LCAzOTUsIDU0ODIsIAorICAgIDUxOTgsIDQzNDksIDEwMzkwLCA3NDIwMiwgNTE5NiwgNDMyMjQsIDYxMTMsIDQyMDA5LCA1MjA1LCAwLCA0MzMwNywgMCwgCisgICAgMTE4OTczLCAwLCAxMjEzNCwgMCwgMCwgMTE4ODQzLCA5MTI2LCA0MzUsIDAsIDEyMDE0LCAxMDM3NywgODA5MywgOTA3OSwgCisgICAgMzIwMywgMTkyLCA2NTEwOSwgMzM4NSwgMCwgNjQ0MzAsIDUzODMsIDEwMjk0LCAxMDMyNiwgMTI4MTc4LCA1NzM4LCAKKyAgICA5ODMyMTMsIDMzMzYsIDc4MzU1LCA1MzYxLCAzNjIzLCA0MTE1OSwgMCwgNjgxMTIsIDc4NzIsIDg1ODEsIDAsIDEyNjAsIAorICAgIDMxNDksIDUzNTksIDEyMDEzNCwgMCwgNzkxNCwgNTM1NywgOTIxNzAsIDEyODY1OSwgMjYyNCwgNTM2NCwgMCwgMTE0MzEsIAorICAgIDEyMDAzMCwgOTEwMSwgMTEwNTgsIDc4Mjg4LCAwLCA3ODI5MywgNDIyNzEsIDc4Mjg5LCA0MjkxNywgMTIwNzkzLCAwLCAKKyAgICA2NTU2NiwgNjcxNywgMTA2MTksIDQzMzYwLCA3ODM4NSwgNzgzODQsIDExODMyLCA3ODM4MiwgNzgzODEsIDc4MzgwLCAKKyAgICA3ODM3OSwgOTMxOSwgNzA5NywgMTE5MDU1LCA3NzkwNiwgMzIzMiwgNzM4MjQsIDc0NTgxLCAxMjA2MzIsIDAsIDAsIAorICAgIDQxODg5LCA5MjQ1MywgMCwgMTE2MSwgNDE4OTUsIDc0MTAzLCA5NzAxLCA4NjIyLCAwLCAwLCA3MzgxOSwgMTIwNTg4LCAKKyAgICA1MDEyLCA3NzkxMiwgNDEzNjIsIDY5ODYyLCA3ODI5NiwgMTE5MjEsIDAsIDExNzY5LCAwLCA2ODYwOSwgNDEzNjQsIDAsIAorICAgIDc0MjI4LCA0MTM1MiwgNDEzNjEsIDAsIDQxMzY2LCAwLCAzMzU2LCAwLCA5MTcsIDY4NDIyLCAxMTk5MTUsIDcxMzQsIAorICAgIDgxOTksIDc4Mzg5LCAxMTk5MTcsIDY3NywgMTE5OTE2LCAwLCAxMTk5MzIsIDEyNzE2OSwgMCwgMCwgMCwgMzM0OSwgCisgICAgNzQxMjUsIDcwMjIsIDg5MjcsIDQ3MzksIDAsIDU4MDIsIDAsIDg2MTUsIDAsIDAsIDQ5MSwgMTI4ODE5LCAxMDE5MCwgCisgICAgMTIwNjk4LCA2NTgzNywgMTI4ODIwLCA4NDI2LCAxMTA5MiwgOTg5MSwgMCwgNDI0OTcsIDcxMTMsIDc1ODYsIDQyMzA1LCAKKyAgICAxMDg1MiwgMCwgMCwgNDYwNiwgNjg0NDgsIDkwOTUsIDc3NDEsIDEyNjg0LCA0MTg4NSwgMTA0NiwgNzEyNCwgMCwgMCwgCisgICAgNTgxNSwgNTE3MSwgNjU1MzksIDY4NjEyLCA2OTMyLCA3NDI2NywgNDIzOTQsIDQxODc4LCA3NDg0OSwgMTIwNjIxLCAwLCAKKyAgICA1MTY5LCAxMTkzNSwgMCwgMCwgMzE3NSwgMTIwODIyLCAxNTM3LCAxMjA4MDQsIDUxNzYsIDg5MDUsIDQxMzYsIDQ4NzEsIAorICAgIDc4Mjg3LCAwLCA5ODMzLCAwLCAwLCAxMTI4LCA2NTkyMCwgMCwgOTcxMSwgNzA1NywgOTQwOCwgOTQwOSwgOTQxMCwgOTQxMSwgCisgICAgMzY2MiwgOTQxMywgMzM3OCwgOTQxNSwgOTQxNiwgOTQxNywgOTQxOCwgNjMyMCwgOTQyMCwgOTQyMSwgNTg5NywgOTQyMywgCisgICAgNTE2NSwgNTEyNiwgNDEzODUsIDAsIDQxMzg5LCA5MTc5MzgsIDg5NTUsIDMzNzQsIDk0MDAsIDk0MDEsIDcxMTksIDk0MDMsIAorICAgIDk0MDQsIDM1MDcsIDk0MDYsIDc2MjksIDk4MzYxNywgMTk5MjUsIDQyNjY5LCA2ODQ2MywgMTgzLCA0Mzk4NSwgMjYzMSwgMCwgCisgICAgMTA2MjcsIDQxMTMwLCA3ODI2MCwgMzk5NiwgMCwgNzg3NzEsIDAsIDExOTMxMywgMTE5MzA3LCA3ODc2OCwgNjU4MCwgCisgICAgNDMzMiwgNjQ4MjUsIDY2MzI5LCAxMDcyNiwgNjY2ODYsIDQxMTI1LCA1ODk5LCA0MTM2NSwgOTE3OTE4LCAxMjA4NSwgMCwgCisgICAgNTc0LCA5MTc5MjIsIDc3ODI1LCA3MzgyOCwgNTQ0OCwgNDEwNTgsIDU0NDYsIDY5NzA5LCA0MTMyMiwgNDIyMTEsIDU0NDIsIAorICAgIDQxOTAsIDc3ODM0LCA3NzgzNSwgNTQ1MSwgNzc4MzMsIDM2MTYsIDc3ODI4LCA3NzgzNywgNzc4MzgsIDc3MDgsIDc3ODM2LCAKKyAgICAxMDg1OSwgNjU4NjcsIDEwMzQ1LCAxMDQwOSwgNDE5MSwgMCwgNzc4NDQsIDczODAwLCA0MjE4MSwgNzc4NDMsIDc3ODM5LCAKKyAgICAyMDYwLCAwLCA3MTExLCAxMTc4OCwgNjU1ODcsIDY4MTI5LCAxMDQxNSwgNzQxMDIsIDAsIDIwNSwgMCwgMTAzNTEsIAorICAgIDExOTA3NiwgMCwgOTg2MiwgNjU4OCwgNDMyNTcsIDY0Njk3LCA3Mzk5OCwgNDEzNTUsIDU1MDUsIDExOTE1NCwgNTUwMywgCisgICAgODAyMSwgMCwgNzEyNSwgOTgxOSwgNDEzNTcsIDgwMTEsIDQyODg1LCA1NTA3LCAxMjA0NCwgOTI2MzYsIDAsIDEwMDI2LCAKKyAgICA1NDcyLCA3MTA5LCAxMTkxLCAxMzEwNiwgNTQ3MCwgMTAzMjksIDU0NzYsIDg5OTEsIDY2MzIyLCA2OTc3OCwgNzgyNjcsIAorICAgIDQyODc0LCA4NTUwLCA0Mjg3NiwgNTU5MiwgMjkxOSwgMCwgMjY3NSwgNTU5NSwgNzg0MTEsIDQzNzYyLCA0MzY3LCAwLCAwLCAKKyAgICA1NDc4LCA1OTA0LCA1NTk0LCAwLCA3NDE1MCwgNzI5MSwgNTU5MCwgNDM3NjEsIDEzMDY3LCAxMTg5MDksIDEyMDM3MiwgCisgICAgOTgzMTA4LCA5NzMxLCA2OTczMSwgNjQ2MzMsIDc3ODU3LCA3Nzg1NCwgNzc4NTUsIDc3ODUyLCA3Nzg1MywgNzc4NTAsIAorICAgIDEwNzUwLCA0MzcxNCwgNzc4NTgsIDcxMzcsIDAsIDEyODI5NiwgMTI4ODcsIDEwNTUxLCAxOTQ1NjQsIDc3ODY2LCA3Nzg2NywgCisgICAgNzc4NjQsIDc3ODY1LCA5OTI5LCA1MTk5LCA5OTM2LCAxMTIwLCA0MjM4NywgMCwgMTQ0NCwgOTQ4NiwgNzU1NCwgNjU4MzksIAorICAgIDU1MjUyLCA3Mzk3MiwgMTQ0MiwgMCwgNTg5NCwgNzAwNjksIDAsIDQxMTcxLCA5MjUxMSwgNzQzMTMsIDAsIDEzMTYyLCAwLCAKKyAgICAzMzM0LCAxOTUwMTAsIDExODgwMywgNzc4ODEsIDY2MDIyLCAwLCAwLCAxNjUxLCAxMjg3NzEsIDg4NjEsIDAsIDAsIDExNDIsIAorICAgIDAsIDgyNzEsIDAsIDk4MzA1OCwgMTI2NjQ1LCAxMjkwMywgMCwgNDAwMiwgNDM2MjYsIDEwNDQyLCAxMDY3NiwgMzM0NCwgMCwgCisgICAgMCwgMTI5MjAsIDE5NDU2MCwgMCwgMCwgNjY2NDIsIDEyNzcsIDAsIDc4NzEsIDAsIDAsIDc4ODUzLCAwLCA3ODg1NCwgCisgICAgMTIwMzYwLCAwLCAxMTc4NCwgMCwgNzgwMTIsIDQ3MDAsIDY2MzY2LCA3ODg1OCwgMTIwMzU5LCAxMTAxMiwgMCwgNzg4NTYsIAorICAgIDkyNDAwLCA3Nzg3OSwgNDk3MywgODc4NCwgNzc4NzcsIDc0ODA0LCA3Nzg3NCwgNzc4NjksIDc3ODcxLCA0MjQ0MCwgMCwgCisgICAgNDMxMTgsIDAsIDQyMzY0LCA2Nzc0LCA2NzczLCA5MTc1NjAsIDEyMDM2OSwgMTAzNDYsIDEwNDEwLCA3ODg1OSwgOTI0MywgCisgICAgMjQ2NCwgNzQyNjMsIDYxMDgsIDMzNzIsIDAsIDYyNDcsIDQzMTE3LCA3NDUyNiwgNzEyMSwgNzQxNjYsIDAsIDEyMDM1NSwgCisgICAgOTI1MzcsIDAsIDAsIDE5NTAzNCwgMCwgMCwgMCwgNzAwODMsIDMzNTQsIDE5NTAzNywgNDE5MiwgOTI4OSwgMTE4OTk5LCAKKyAgICA0MTE5MSwgMzg3NiwgMCwgNzAwNjcsIDEyMDY2MCwgNDM2OTYsIDQzMzgwLCAwLCA5ODMwOTEsIDAsIDAsIDExNjAzLCAKKyAgICA5ODM5NDUsIDAsIDY1ODksIDEyODU4OCwgMTk0Njc5LCAwLCAwLCA5ODM2OTEsIDAsIDAsIDQyNTcyLCAxMjgyNjQsIAorICAgIDEwNjMwLCA3NDgyNywgMTk2MywgMTE2MjIsIDEyNzA5OCwgMTE2NTQsIDAsIDc1NTAsIDEwNjg2LCA1OTAzLCAwLCA3ODAwOSwgCisgICAgNDEzMjksIDk2NjIsIDkxNzkzNywgNjQ2OTgsIDMzNjYsIDEwMzk5LCAwLCA1NTQyLCAxMTAxMywgMTI3OTI3LCAxMjgzMDAsIAorICAgIDAsIDc4NjIxLCAxOTQ2NzIsIDY5MjUsIDAsIDAsIDkxNzkyOSwgMCwgMTE1NjgsIDk4MzY2NCwgNDMzNjcsIDY0NTc5LCAKICAgICA5MTc5MzAsIDc4NTIsIDAsIDAsIDY3NTQsIDYzMTIsIDAsIDY0NjcyLCA2NTI5NiwgMCwgMTE4OTU3LCAwLCA0MTYsIAotICAgIDEyMjk2LCA2ODQ1NywgNzM4MzQsIDY4MTc3LCAxMTA1MCwgMTA5ODQsIDkyMjA4LCAwLCAwLCA5MjE4MiwgMCwgMCwgOTUzMiwgCi0gICAgNjYzNTUsIDAsIDAsIDkxNzkyNSwgNjQzNDMsIDE5NTAzMiwgMTI4MjgxLCAxOTUwMzEsIDAsIDAsIDE5NTA1NywgMTE0NDUsIAotICAgIDAsIDIxMTIsIDE5NTA1NiwgMTI4ODE0LCAxMDE4NSwgMTAyMSwgMTI4MTMwLCA5NTA3LCAxMDIxMCwgNzQ1NDQsIDgwMjMsIAotICAgIDEyMDAsIDEyMjQzLCA3ODAwMSwgNTI4MiwgNzgwMDMsIDk2MjQsIDExNTQ1LCAwLCAxMjA0OTMsIDMzNDMsIDQ0MjQsIAotICAgIDExMDQ3LCAxODg1LCA0MzI2OCwgMzg5NiwgNzg2MjYsIDY2NDk3LCAyOTQ3LCAzOTIsIDc4OTQsIDQzOTEsIDY4MTM5LCAwLCAKLSAgICAxMzA1OSwgNzQ4MTYsIDc3OTk4LCAzMzgxLCA3OTQyLCAwLCA2OTIxOSwgMCwgNjQ3NTcsIDAsIDM5MTMsIDAsIDAsIAotICAgIDc4MjM1LCA3MDQ0LCAxMjY1LCAwLCA2MzA5LCA3MDQ1LCA3MTc1LCA3MDQ3LCA3ODIzOSwgMTE3OTEsIDAsIDAsIDgyMjEsIAotICAgIDc4MzA3LCA0MTg2NCwgMCwgMCwgMCwgMCwgMTY3LCAwLCA3ODMwMSwgMCwgNzQyMTEsIDQxODk3LCA2ODQ3NywgMCwgCi0gICAgOTE3NTgzLCAwLCAwLCAyNDkzLCAwLCAxMTg4MTEsIDAsIDAsIDY0MzU0LCAwLCA4Nzc3LCAwLCA0MDYsIDg4ODQsIDIzODUsIAotICAgIDAsIDkyNDUwLCAwLCA5MTc1NzMsIDQzMDMwLCA0MjAyNywgMTIxMTQsIDAsIDkxNzU3OSwgNjQ5MzYsIDE5NDY5NSwgMCwgCi0gICAgMTIwNjI5LCAxMDU2MSwgMCwgODM2NSwgMTIwNTM5LCAwLCA2NTg0MSwgMTIwNzg3LCAxMTYwMSwgMCwgNzQxMjEsIDAsIAotICAgIDkxNzU3NSwgNzgzNCwgNzQxNTksIDAsIDkxNzU3NCwgMTAyOTgsIDY2MjQsIDQ5MDgsIDkxNzU5NiwgMTYzOSwgMCwgMCwgCi0gICAgNzQxNTcsIDYzMjcsIDY3MjQsIDAsIDEyODA4NiwgOTI1NjYsIDAsIDQ4MTcsIDc4NDQ2LCAxOTQ3NTksIDkyNTM2LCA3MDQzLCAKLSAgICA5NjAwLCAxMTAyMiwgMCwgMCwgMCwgMCwgMCwgMCwgNzU0OCwgNjQ3OTQsIDQyMDUwLCAxMjI5MSwgNTUyODksIDE5NDc2MSwgCi0gICAgMTIzNDMsIDY1NywgMTk1MDU0LCA0MjcwNSwgNDQ2MSwgMTEzNCwgMTgzOCwgNzg0MzgsIDIwNTcsIDAsIDQ0NjgsIDAsIDAsIAotICAgIDAsIDQ0NTYsIDUyMDYsIDEwNzIwLCAwLCA0MjUyMywgMTI3NTIwLCAwLCAwLCA5MTc1OTUsIDY1NTUwLCAyNjAsIDQ4MTYsIAotICAgIDY3NjU4LCAxMDY4NywgMCwgNDgyMSwgNDQ2NiwgMCwgMTk1MDQzLCA0ODE4LCAxOTUwNDgsIDQxNDAzLCAxMTk5NzcsIDAsIAotICAgIDAsIDQxNDA2LCA0MzI3MywgNzQxNjAsIDExOTk4MywgNzM5MzksIDkyNjM4LCAxMTk5ODQsIDExOTk3OSwgNDE0MDQsIAotICAgIDExNjUsIDExOTk4MCwgNDQ1MSwgMTMwODcsIDAsIDExMjg0LCAxMTk5ODcsIDczODU1LCA2NTE1NSwgNDMwMTQsIDU0MzksIAotICAgIDkzNjMsIDEyNzU1OCwgMzM3NSwgMTI4ODY5LCA1OTAwLCAwLCA3ODg5LCAyNzIyLCA0MjI2MiwgMCwgMCwgMTI4Nzc0LCAwLCAKLSAgICAwLCAwLCAxMjc4MTAsIDExNDAxLCAwLCAwLCA2ODQ1OSwgMCwgMCwgMCwgMCwgNjU0MzgsIDAsIDcyODAsIDEyNzg4NywgMCwgCi0gICAgMTI3MzgxLCA0ODY4LCAxMTk5NjcsIDExOTk2NiwgMTE4Nzk4LCAwLCAwLCA0MzE2MSwgMCwgOTIzNjAsIDAsIDUxODIsIDAsIAotICAgIDEyMDU0MiwgMCwgMCwgNDIyNiwgMTIwNzk4LCAxMjEzNSwgNTczMiwgNDQ2NCwgMCwgMCwgOTc3LCA0NDU4LCAwLCAwLCAKLSAgICA2NDc3MCwgNzQ4MzgsIDAsIDM0NCwgMCwgMTk0NzkwLCAxMzk1LCA2NDI3OSwgMCwgOTIyNDAsIDAsIDc4NiwgMCwgNDMxNzQsIAotICAgIDY0MzQwLCAwLCAwLCAxMjA3MjMsIDQzMDI2LCA3NjEyLCAxMDEzMiwgNjQ0MTMsIDY1MDI1LCAwLCAwLCAwLCAwLCAwLCAKLSAgICA2ODQ0NCwgMCwgOTI0MzcsIDAsIDExOTE2MCwgMTAyMDQsIDkyNjU2LCAwLCAxMjc4MDksIDAsIDEzOTksIDAsIDY1MjE3LCAKLSAgICAwLCA4ODUyLCAwLCAyNDEsIDEyODc4MCwgNDkwNywgMCwgMCwgNzkzMiwgOTcyNywgMTI4ODczLCA3NDI1NSwgODc0OCwgMCwgCi0gICAgMCwgMCwgMCwgNDI3ODAsIDAsIDAsIDAsIDQyMTcsIDAsIDg2NTAsIDAsIDAsIDAsIDAsIDExODg3MiwgNDMwOTksIDM5NjUsIAotICAgIDExOTExOSwgNjcxOSwgMCwgMTMzMDAsIDc4NDM5LCAxMjgyNjEsIDQzMDU3LCA2NjU4OCwgMTE4OTkxLCAwLCAwLCA3MzgxNSwgCi0gICAgNDQyMCwgMCwgNjQxMCwgNzc2MCwgMCwgMCwgMCwgMCwgMCwgNzI5NCwgMCwgMCwgMCwgOTA2NiwgMCwgMTE5OTMsIDQzMTg4LCAKLSAgICAyNjI2LCA3NzYyLCAwLCAwLCAwLCA5MjYwMSwgNDI4MjUsIDQxODU0LCA1MzA0LCAwLCA3ODUxNiwgNjkxOSwgODYxOSwgCi0gICAgMTE5NjU1LCAxMDAzOCwgNjY0NTQsIDk1OTIsIDQyODUxLCAxMjY5OTMsIDE1NDIsIDkyMzAzLCAwLCAwLCAwLCAwLCAKLSAgICA3NDMxMSwgNzg0OTcsIDAsIDEwMTgxLCAwLCA0MzYyNCwgMCwgNzc3OSwgMCwgMTAxOTUsIDk0NzksIDYwMjksIDAsIAotICAgIDkyMjY4LCA5Njg5LCAwLCAwLCA4OTkzLCA2NjM1OCwgMCwgNDIzNzgsIDMzNjgsIDYwNiwgMTI3MDMwLCA3Njk3LCA2OTIzNywgCi0gICAgNjk3ODcsIDIwMzAsIDAsIDYwMjcsIDgzNzAsIDQzMjIsIDAsIDY1MjA3LCAwLCAwLCAwLCAwLCAwLCAyNzM1LCA0MjgzMSwgCi0gICAgNzc5MzUsIDEyNzEyMCwgNzQ4NjYsIDg4ODEsIDExOTA0NywgMCwgMCwgNzM5NDYsIDAsIDAsIDAsIDY4MTQwLCAwLCA5NTc2LCAKLSAgICAxMjg4NzIsIDMzNDcsIDQxNjAsIDUxNTQsIDU1Mjg4LCAzNzk0LCA2NjU2NCwgODUzMCwgMTI3MDYzLCA3NzA5LCA0MTExMiwgCi0gICAgMCwgNjY1NjAsIDQyMDQxLCA0NTcyLCAxMjg3NiwgNjY1NjEsIDAsIDY3NTgsIDAsIDE2MTUsIDU4NTUsIDgwOSwgMCwgCi0gICAgOTIyODMsIDEyODMxNiwgMTI4MDA0LCA1Nzk5LCAwLCAwLCAwLCA3MjYwLCAwLCA0MzAzMSwgNjQ0MjUsIDY1MTI4LCAKLSAgICA3ODgxOSwgNjQzODYsIDY1MjU3LCAwLCA2ODYxNiwgMTIwNjA3LCA5MzQ3LCAxMjgwNjcsIDY1MzIsIDAsIDAsIDAsIAotICAgIDEyNzA2MCwgNjU4MjgsIDAsIDI4MywgNjg2NjUsIDc4ODEzLCA1MzIsIDc4NjYzLCAwLCAwLCAxMjA2MDksIDAsIDMzNzAsIAotICAgIDAsIDExMzYxLCA1NDQzLCA3ODc3OCwgODE1MywgNzM3NjcsIDAsIDEwNzQxLCAwLCAwLCAwLCAwLCA2NTQ5NSwgNjQ3MDYsIAotICAgIDAsIDQzMzQ0LCAwLCA3MTQ0LCA5NDY2LCA3ODg2NiwgOTgyNCwgMCwgMCwgMCwgMCwgOTE1LCA0MzQyNSwgMCwgMCwgMCwgMCwgCi0gICAgMTI3MTc4LCA0MzI2NCwgMCwgMCwgMCwgMCwgNzg4NjQsIDY3MzAsIDc4ODYyLCA2ODE2MSwgNjQ1NTAsIDUxODYsIDEyODkwLCAKLSAgICAxMjc4MzcsIDAsIDEyMTA4LCAwLCA2NTEyNCwgNDMxMjcsIDY2MDQzLCAwLCA2MzI2LCA0MzEwNywgNzc4MjYsIDAsIAotICAgIDQyNTYyLCAwLCAwLCAwLCAxMjg1MjAsIDExNDg1LCA2MTAzLCAxMjcxMjMsIDAsIDExNzE4LCAwLCAxMjg4OSwgOTI2NTcsIAotICAgIDEyNzEzNywgMCwgMCwgMCwgNTUyNDUsIDAsIDE2MzAsIDEyODIzMiwgNjU0ODMsIDAsIDEyNTY1LCAwLCA2NTQ3NiwgCi0gICAgMTIwMDEzLCAwLCAxMTk1NTQsIDkyODMsIDc3MDAsIDkxNzUzNywgOTY5MCwgNjU0OTksIDAsIDY0NTkzLCA1MTIsIDMzNzYsIAotICAgIDY4MjEwLCAwLCAwLCA3Nzg5MiwgNjMyLCAxMjk0MCwgNzc4OTEsIDQyNTI5LCA3ODU4NywgMCwgNTk1NywgMTEwNTkzLCAKLSAgICA4OTI2LCAwLCAwLCAxMjgyNzMsIDEwNzQ1LCAxMDE3NCwgNzM3OSwgNjQ1ODEsIDUzODYsIDEyMDY4NiwgMTE3MTMsIAotICAgIDEwNjMzLCA2OTcwOCwgNTA1NiwgMCwgMCwgMCwgMTIwNzczLCAwLCA5ODEyLCAwLCA0NDYwLCAwLCAwLCAwLCAxMjgwMzgsIAotICAgIDAsIDAsIDEyNzE3NCwgNjQyNzgsIDkyMzcwLCA0MzQ2NiwgMCwgMCwgNjQzODksIDI5NTMsIDczODc5LCAxODAxLCAxMjgzNSwgCi0gICAgMTE5MDI5LCAwLCA3MzgyMywgMCwgNjYzNzUsIDIwODUsIDcwMiwgNDI1NzksIDc3ODg0LCA3Nzg4NSwgMTMwNzQsIDc3ODgzLCAKLSAgICAwLCAwLCAxMjg1NzAsIDEyMTA2LCAwLCA3NDIwNywgMTc1NSwgMTA0ODIsIDEyODYzLCA3Nzg5OCwgMTE2MywgMjk1MSwgCi0gICAgOTUyMiwgNzQwNzksIDc4MjY2LCAxMjA2NzQsIDAsIDMzODQsIDY5MjI3LCAxMDcwMiwgODMwLCA3NzkwMiwgNzc4OTksIAorICAgIDEyMjk2LCA2ODQ1NywgNzM4MzQsIDY4MTc3LCAxMTA1MCwgMTA5ODQsIDkyMjA4LCAwLCAwLCA5MjE4MiwgMCwgOTgzNjA1LCAKKyAgICA5NTMyLCA2NjM1NSwgMCwgOTgzMjI4LCA5MTc5MjUsIDY0MzQzLCAxOTUwMzIsIDEyODI4MSwgMTk1MDMxLCAwLCAxOTUwMzAsIAorICAgIDE5NTA1NywgMTE0NDUsIDAsIDIxMTIsIDE5NTA1NiwgMTI4ODE0LCAxMDE4NSwgMTAyMSwgMTI4MTMwLCA5NTA3LCAxMDIxMCwgCisgICAgNzQ1NDQsIDgwMjMsIDEyMDAsIDEyMjQzLCA3ODAwMSwgNTI4MiwgNzgwMDMsIDk2MjQsIDExNTQ1LCAwLCAxMjA0OTMsIAorICAgIDMzNDMsIDQ0MjQsIDExMDQ3LCAxODg1LCA0MzI2OCwgMzg5NiwgNzg0NDQsIDY2NDk3LCAyOTQ3LCAzOTIsIDc4OTQsIAorICAgIDQzOTEsIDY4MTM5LCA5ODMwNjIsIDEzMDU5LCA3NDgxNiwgNzc5OTgsIDMzODEsIDc5NDIsIDAsIDY5MjE5LCAwLCA2NDc1NywgCisgICAgMCwgMzkxMywgMCwgMCwgNzgyMzUsIDcwNDQsIDEyNjUsIDAsIDYzMDksIDcwNDUsIDcxNzUsIDcwNDcsIDc4MjM5LCAKKyAgICAxMTc5MSwgMCwgMCwgODIyMSwgNzgzMDcsIDQxODY0LCAwLCAwLCAwLCAwLCAxNjcsIDk4Mzg5NywgNzgzMDEsIDk4MzY0NCwgCisgICAgNzQyMTEsIDQxODk3LCA2ODQ3NywgMCwgOTE3NTgzLCA5ODM2MjUsIDk0MDY1LCAyNDkzLCAwLCAxMTg4MTEsIDAsIDAsIAorICAgIDY0MzU0LCAwLCA4Nzc3LCAwLCA0MDYsIDg4ODQsIDIzODUsIDAsIDkyNDUwLCAwLCA5MTc1NzMsIDQzMDMwLCA0MjAyNywgCisgICAgMTIxMTQsIDAsIDkxNzU3OSwgNjQ5MzYsIDE5NDY5NSwgMCwgMTIwNjI5LCAxMDU2MSwgMCwgODM2NSwgMTIwNTM5LCAKKyAgICA5ODM3NjUsIDY1ODQxLCAxMjA3ODcsIDExNjAxLCAwLCA3NDEyMSwgMCwgOTE3NTc1LCA3ODM0LCA3NDE1OSwgMCwgCisgICAgOTE3NTc0LCAxMDI5OCwgNjYyNCwgNDkwOCwgOTE3NTk2LCAxNjM5LCAwLCAwLCA3NDE1NywgNjMyNywgNjcyNCwgMCwgCisgICAgMTI4MDg2LCA5MjU2NiwgNjk5MTAsIDQ4MTcsIDc4NDQ2LCAxOTQ3NTksIDkyNTM2LCA3MDQzLCA5NjAwLCAxMTAyMiwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNzU0OCwgNjQ3OTQsIDQyMDUwLCAxMjI5MSwgNTUyODksIDE5NDc2MSwgMTIzNDMsIDY1NywgCisgICAgMTk1MDU0LCA0MjcwNSwgNDQ2MSwgMTEzNCwgMTgzOCwgNzg0MzgsIDIwNTcsIDAsIDQ0NjgsIDAsIDAsIDAsIDQ0NTYsIAorICAgIDUyMDYsIDEwNzIwLCAwLCA0MjUyMywgMTI3NTIwLCAwLCAwLCA5MTc1OTUsIDY1NTUwLCAyNjAsIDQ4MTYsIDY3NjU4LCAKKyAgICAxMDY4NywgMCwgNDgyMSwgNDQ2NiwgMCwgMTk1MDQzLCA0ODE4LCAxOTUwNDgsIDQxNDAzLCAxMTk5NzcsIDAsIDAsIAorICAgIDQxNDA2LCA0MzI3MywgNzQxNjAsIDExOTk4MywgNzM5MzksIDkyNjM4LCAxMTk5ODQsIDExOTk3OSwgNDE0MDQsIDExNjUsIAorICAgIDExOTk4MCwgNDQ1MSwgMTMwODcsIDAsIDExMjg0LCAxMTk5ODcsIDcwMDk3LCA2NTE1NSwgNDMwMTQsIDU0MzksIDkzNjMsIAorICAgIDcwMDcwLCAzMzc1LCAxMjg4NjksIDU5MDAsIDkzOTkwLCA3ODg5LCAyNzIyLCA0MjI2MiwgMCwgMCwgMTI4Nzc0LCAwLCAKKyAgICAyMjgyLCAwLCAxMjc4MTAsIDExNDAxLCA5ODM4MTMsIDAsIDY4NDU5LCAwLCAwLCAwLCAwLCA2NTQzOCwgMCwgNzI4MCwgCisgICAgMTI3ODg3LCAwLCAxMjczODEsIDQ4NjgsIDExOTk2NywgMTE5OTY2LCAxMTg3OTgsIDAsIDAsIDQzMTYxLCAwLCA5MjM2MCwgCisgICAgMCwgNTE4MiwgMCwgMTIwNTQyLCAwLCAwLCA0MjI2LCAxMTkyNDMsIDEyMTM1LCA1NzMyLCA0NDY0LCAwLCA3MTMzMCwgOTc3LCAKKyAgICA0NDU4LCAwLCAwLCA2NDc3MCwgNzQ4MzgsIDAsIDM0NCwgMCwgMTk0NzkwLCAxMzk1LCA2NDI3OSwgMCwgOTIyNDAsIDAsIAorICAgIDc4NiwgMCwgNDMxNzQsIDY0MzQwLCAwLCAxOTQ3NjcsIDEyMDcyMywgNDMwMjYsIDc2MTIsIDEwMTMyLCA2NDQxMywgCisgICAgNjUwMjUsIDAsIDAsIDAsIDkzOTU2LCAwLCA2ODQ0NCwgMCwgOTI0MzcsIDAsIDExOTE2MCwgMTAyMDQsIDkyNjU2LCAwLCAKKyAgICAxMjc4MDksIDk4MzYzNSwgMTM5OSwgOTgzNjQzLCA2NTIxNywgMCwgODg1MiwgMTI4NTcxLCAyNDEsIDEyODc4MCwgNDkwNywgCisgICAgMCwgOTgzNjMwLCA3OTMyLCA5NzI3LCAxMjg4NzMsIDc0MjU1LCA4NzQ4LCAwLCAwLCA5ODM2MzQsIDAsIDQyNzgwLCAwLCAwLCAKKyAgICAwLCA0MjE3LCAwLCA4NjUwLCAwLCAwLCAwLCA2OTkwMCwgMTE4ODcyLCA0MzA5OSwgMzk2NSwgMTE5MTE5LCA2NzE5LCAwLCAKKyAgICAxMzMwMCwgNzg0MzksIDkzOTcxLCA0MzA1NywgNjY1ODgsIDExODk5MSwgMCwgMCwgNzM4MTUsIDQ0MjAsIDAsIDY0MTAsIAorICAgIDc3NjAsIDAsIDAsIDAsIDAsIDAsIDcyOTQsIDAsIDAsIDAsIDkwNjYsIDAsIDExOTkzLCA0MzE4OCwgMjYyNiwgNzc2MiwgMCwgCisgICAgMCwgMCwgOTI2MDEsIDQyODI1LCA0MTg1NCwgNTMwNCwgMCwgNzg1MTYsIDY5MTksIDg2MTksIDExOTY1NSwgMTAwMzgsIAorICAgIDY2NDU0LCA5NTkyLCA0Mjg1MSwgMTI2OTkzLCAxNTQyLCA5MjMwMywgMCwgMCwgMCwgMCwgNzQzMTEsIDc4NDk3LCAwLCAKKyAgICAxMDE4MSwgMCwgNDM2MjQsIDAsIDc3NzksIDAsIDEwMTk1LCA5NDc5LCA2MDI5LCAwLCA5MjI2OCwgOTY4OSwgMCwgNjU1NzcsIAorICAgIDg5OTMsIDY2MzU4LCAwLCA0MjM3OCwgMzM2OCwgNjA2LCAxMjcwMzAsIDc2OTcsIDY5MjM3LCA2OTc4NywgMjAzMCwgMCwgCisgICAgNjAyNywgODM3MCwgNDMyMiwgMCwgNjUyMDcsIDAsIDk4MzMzMSwgOTgzMzMwLCA5ODMzMjksIDk4MzMyOCwgMjczNSwgCisgICAgNDI4MzEsIDc3OTM1LCAxMjcxMjAsIDc0ODY2LCA4ODgxLCAxMTkwNDcsIDAsIDAsIDczOTQ2LCAwLCAwLCAwLCA2ODE0MCwgCisgICAgOTgzOTE5LCA5NTc2LCAxMjg4NzIsIDMzNDcsIDQxNjAsIDUxNTQsIDU1Mjg4LCAzNzk0LCA2NjU2NCwgODUzMCwgMTI3MDYzLCAKKyAgICA3NzA5LCA0MTExMiwgOTgzMTMyLCA2NjU2MCwgNDIwNDEsIDQ1NzIsIDEyODc2LCA2NjU2MSwgOTgzNzQ5LCA2NzU4LCAKKyAgICA5ODM5MTcsIDE2MTUsIDU4NTUsIDgwOSwgMCwgOTIyODMsIDEyODMxNiwgMTI4MDA0LCA1Nzk5LCA5ODMzMjAsIDcwMTAwLCAKKyAgICA5ODMzMTgsIDcyNjAsIDk4MzMxNiwgNDMwMzEsIDY0NDI1LCA2NTEyOCwgNzg4MTksIDY0Mzg2LCA2NTI1NywgMCwgNjg2MTYsIAorICAgIDEyMDYwNywgOTM0NywgMTI4MDY3LCA2NTMyLCAwLCAwLCAwLCAxMjcwNjAsIDY1ODI4LCAwLCAyODMsIDY4NjY1LCA3ODgxMywgCisgICAgNTMyLCA3ODY2MywgMCwgOTgzNzg3LCAxMjA2MDksIDAsIDMzNzAsIDAsIDExMzYxLCA1NDQzLCA3ODc3OCwgODE1MywgCisgICAgNzM3NjcsIDAsIDEwNzQxLCAwLCAyMjk4LCAwLCA5ODM5MDgsIDY1NDk1LCA2NDcwNiwgOTgzMzEwLCA0MzM0NCwgOTgzMzA4LCAKKyAgICA3MTQ0LCA5NDY2LCA3ODg2NiwgOTgyNCwgOTgzMzAzLCA5ODMzMDIsIDAsIDAsIDkxNSwgNDM0MjUsIDAsIDAsIDAsIDAsIAorICAgIDEyNzE3OCwgNDMyNjQsIDcwMDk2LCAwLCAwLCA0MzAzOCwgNzg4NjQsIDY3MzAsIDc4ODYyLCA2ODE2MSwgNjQ1NTAsIAorICAgIDUxODYsIDczNjAsIDEyNzgzNywgMCwgMTIxMDgsIDAsIDY1MTI0LCA0MzEyNywgNjYwNDMsIDAsIDYzMjYsIDQzMTA3LCAKKyAgICA3NzgyNiwgMCwgNDI1NjIsIDAsIDEyODgyMSwgMCwgMTI4NTIwLCAxMTQ4NSwgNjEwMywgMTI3MTIzLCA5ODMyOTcsIAorICAgIDExNzE4LCA5ODMyOTUsIDEyODg5LCA5MjY1NywgMTI3MTM3LCAwLCAwLCAwLCA1NTI0NSwgMCwgMTYzMCwgMTI4MjMyLCAKKyAgICA2NTQ4MywgMCwgMTI1NjUsIDAsIDY1NDc2LCAxMjAwMTMsIDAsIDExOTU1NCwgOTI4MywgNzcwMCwgOTE3NTM3LCA5NjkwLCAKKyAgICA2NTQ5OSwgMCwgNjQ1OTMsIDUxMiwgMzM3NiwgNjgyMTAsIDAsIDEyODY3NywgNzc4OTIsIDYzMiwgMTI5NDAsIDc3ODkxLCAKKyAgICA0MjUyOSwgNzg1ODcsIDAsIDU5NTcsIDExMDU5MywgODkyNiwgOTgzMjkxLCA5ODMyOTAsIDEyODI3MywgMTA3NDUsIAorICAgIDEwMTc0LCA3Mzc5LCA2NDU4MSwgNTM4NiwgMTIwNjg2LCAxMTcxMywgMTA2MzMsIDY5NzA4LCA1MDU2LCAwLCAwLCAwLCAKKyAgICAxMjA3NzMsIDAsIDk4MTIsIDAsIDQ0NjAsIDAsIDAsIDcxMzA3LCAxMjgwMzgsIDAsIDAsIDEyNzE3NCwgNjQyNzgsIAorICAgIDkyMzcwLCA0MzQ2NiwgMCwgMCwgNjQzODksIDI5NTMsIDczODc5LCAxODAxLCAxMjgzNSwgMTE5MDI5LCAwLCA3MzgyMywgMCwgCisgICAgNjYzNzUsIDIwODUsIDcwMiwgNDI1NzksIDc3ODg0LCA3Nzg4NSwgMTMwNzQsIDc3ODgzLCA5ODMyNzgsIDk4MzI3NywgCisgICAgMTI4NTcwLCAxMjEwNiwgOTgzMjc0LCA3NDIwNywgMTc1NSwgMTA0ODIsIDEyODYzLCA3Nzg5OCwgMTE2MywgMjk1MSwgCisgICAgOTUyMiwgNzQwNzksIDc4MjY2LCA2NjYwNCwgMCwgMzM4NCwgNjkyMjcsIDEwNzAyLCA4MzAsIDc3OTAyLCA3Nzg5OSwgCiAgICAgNzc5MDAsIDg0NTEsIDAsIDAsIDAsIDY5NzM5LCAwLCAwLCAwLCAwLCAyOTA4LCAwLCA0MzM4NiwgNjQ5MDIsIDQyNDMsIDAsIAotICAgIDEyMjM5LCAwLCAwLCA0NDQxLCAwLCAwLCA3Mzk0MCwgNjQzNTIsIDEyNzUxMywgMCwgNDExLCAwLCA5MTk5LCAwLCA0MDU2LCAKLSAgICAxMTg5OTIsIDQxODkwLCAwLCAyNzMwLCA0MTYwNCwgMCwgNTQyOCwgMTk0NzQzLCAzMzY0LCA0MjI2NSwgNjQ0MzcsIAotICAgIDEyNzkzNSwgMTE4ODE2LCAxOTQ3NDIsIDk2ODQsIDIxNiwgMCwgMTQwMSwgMTI4MDUzLCA0NDAxMiwgMCwgMCwgOTI1ODUsIAotICAgIDkxNTgsIDc3ODQyLCAxMjA2NjQsIDU3NjgsIDAsIDAsIDAsIDQ4NCwgMTk0NzM5LCAwLCAwLCA2NTg5NSwgMCwgMCwgMzMzOCwgCi0gICAgNzM5MzUsIDU3MiwgNzA0MSwgMjczNiwgNjc2MDUsIDAsIDEyODY4MCwgMjc5NCwgODgwNywgNjQ0OTEsIDc3ODQ3LCA1NDM4LCAKLSAgICA1MjIyLCA1MzgxLCA0MzExNCwgMCwgNTE5MywgNTEyNSwgNTQ1NiwgNTUwOSwgNzc4NDYsIDE5NDc0NywgOTUzNCwgMCwgMCwgCi0gICAgMCwgMzQzMCwgMCwgMCwgMCwgMCwgOTgxLCAwLCA0MzMwLCA3MzkyOSwgMTIwNTM2LCAxODI0LCAxMDkwOCwgMCwgNzAzNCwgCi0gICAgNDE2ODMsIDY0NjE3LCAwLCA3Mzc1NCwgMzk1NywgNjQzNTgsIDY0NTQ3LCAxMjgyNTksIDY3NCwgNjM5OTEsIDAsIDI5NDYsIAotICAgIDUzNTQsIDUyNTEsIDUzMjgsIDUzMDcsIDM3NTksIDExNDExLCA4MzY0LCA1MTIzLCAxMTk2MjgsIDUyODEsIDU0NjksIAotICAgIDUxMjEsIDExOTI0NSwgMTE4OTkzLCAwLCA1MTMwLCAwLCAwLCA3Nzk5MCwgMCwgMTIwNzI2LCAxMjIxLCAyNzMzLCAxMTc0NiwgCi0gICAgNzc5OTEsIDUyMTYsIDAsIDAsIDAsIDAsIDM0NjgsIDcwMzMsIDkyMzAsIDU5MzksIDE5NTA1MiwgMCwgMCwgMTIwNjc3LCAKLSAgICA2ODQwMCwgNzI3OCwgMTAzMjEsIDEwMjg5LCA2NDYxMywgMTAzODUsIDQxNzA2LCAwLCAwLCAwLCAwLCAxMTczOSwgMCwgCi0gICAgNDE5ODEsIDAsIDU5MzgsIDAsIDAsIDEyNDQ4LCA3NTc2LCAxMDQwMSwgMTAzMzcsIDczODUyLCAwLCAxMzA1NywgMCwgCi0gICAgMTI2OTc2LCAwLCAxMDAwOSwgMCwgNDE3MDMsIDAsIDEyMTY1LCAwLCAwLCA5ODg1LCAwLCA4MDc3LCAwLCAxMjc5MDgsIDAsIAotICAgIDAsIDAsIDkyNDU3LCAwLCA0MjIwLCAxMDcyNSwgMTA0MzMsIDAsIDY4Mzk1LCA0OTg3LCA2NDUxOSwgMCwgMTI4MzQwLCAwLCAKLSAgICAwLCAwLCAxMDk3MCwgMTE3MzMsIDAsIDEyMDc5MiwgMCwgMTk5NDQsIDAsIDkwMDksIDg1NTEsIDkyMzQ1LCAxMTQ2OCwgCi0gICAgNjQ2MzYsIDc1NzUsIDAsIDI3MjQsIDAsIDAsIDEyMzEzLCAxMTA1OTIsIDUxNSwgMTE5OTQ3LCA0Mjc5MSwgNjM5ODcsIAotICAgIDc4Mjg2LCAxMTk5NDMsIDExOTk0MCwgMTE5OTQxLCAxMTk5MzgsIDk3NzUsIDQwNDYsIDQ1ODksIDQ1MjEsIDY4NjI5LCAKLSAgICA5MTQxLCAwLCA3ODg1MCwgMjc0MSwgNjQzOTksIDYxOTcsIDEzNzAsIDAsIDAsIDAsIDAsIDAsIDAsIDYxODQsIDg2MDYsIAotICAgIDMzMDMsIDQxMzcyLCAxMTc4NiwgOTQ3MywgNjYyMDMsIDY2MTc3LCA5MjQ0NiwgMTE1OTMsIDQzMDA3LCA0NDc4LCA2NjE3OCwgCi0gICAgMCwgMCwgMjc0NCwgMCwgNDQ3NywgMTE4OTY0LCA4MTQsIDQyMDY2LCA2NjE4MywgNjYyMDQsIDQzNzg2LCAxMTk5NjEsIAotICAgIDY2MTk4LCA0MTg4MCwgNjYxODgsIDY2MTk3LCA3ODE0OCwgMTE5NTUsIDY2MTkwLCA2NjE5MSwgNDExMTEsIDY2MTg5LCAKLSAgICA3Mzc4OCwgNzc4OCwgNDg0NywgMCwgMTI3NzU5LCAwLCAwLCAwLCAxNTgxLCA2NTM1LCA3ODE2MSwgMTI5NTQsIDQzMCwgCi0gICAgNzgxNjAsIDU1MjU5LCA3ODE1OCwgMTI4MDM2LCA1Mjc4LCA0OTQ1LCA0Mjg4MywgNDk1MCwgMCwgNjg2MjUsIDAsIDcyNjksIAotICAgIDAsIDU5NjQsIDEyOTA4LCAwLCAwLCA3NDc2NCwgNzQ0NzcsIDExOTE0NiwgMTk0OTM2LCA0OTQ5LCAwLCA0NDMsIDAsIAotICAgIDQ5NDQsIDU0NjcsIDExOTYwMywgMCwgNjUxMzcsIDYwNDQsIDY1MzkyLCAwLCA0MjEzLCAwLCA0MTMwMywgMCwgMTk0OTMxLCAKLSAgICAxMTk5NjIsIDQxMzA2LCA3Mzk4NCwgMjY5OCwgMTI3MTU5LCAwLCAxMjA3MiwgMzE5MywgMCwgNDEzMDQsIDgyNCwgCi0gICAgMTI4Njc2LCAxMjA5MSwgNzg4OTMsIDc4ODk0LCAxMTk4MTYsIDQ2NzMsIDY0ODA0LCA0Njc4LCAxMTk4MjAsIDExOTgxOSwgCi0gICAgNjUwNTksIDAsIDY3MzksIDAsIDU0ODEsIDM0OTAsIDExOTksIDExOTgxMSwgODM1NiwgMTE5ODI5LCAxMTk4MzIsIDQ2NzcsIAotICAgIDEyNjg4LCAzMTAyLCAwLCA0NjcyLCA3ODE3MywgNzgxNzUsIDU1MzEsIDY4MzY3LCA0MjU3NSwgNzgxNzAsIDc4MTY2LCAKLSAgICA0Njc0LCA0NTQ4LCA0NDAwNSwgMTE5OTQ5LCA2ODY1OCwgMTE5OTQ2LCA4MDI1LCA2ODYzMCwgMTI3MDI0LCAxODU1LCAwLCAKLSAgICA2ODY2OSwgMCwgOTI0NDUsIDEyNzU1NCwgMCwgMCwgMTE5NjUyLCAyNzQ1LCAxMTc5NywgMCwgMTI4MTU5LCA5MjAyLCAKLSAgICA0NjU0LCAwLCAwLCA2ODYzOCwgNzM5OTMsIDEwNTI1LCA0NjQ5LCA2NTIwOSwgMCwgMCwgNDY0OCwgNDMwODAsIDAsIDAsIDAsIAotICAgIDYyNDYsIDY0OTUwLCA3ODI4LCA0NjUwLCA2Nzc3LCA2Nzc2LCA2Nzc1LCA0NjUzLCA3ODIyLCA3ODAwNSwgOTIzODQsIAotICAgIDQzMTg3LCA4NjY5LCAwLCA2ODIxLCA2NTA5MywgMCwgNzg4ODEsIDI3MTYsIDAsIDAsIDAsIDAsIDY4MzY5LCAxMjAwNTQsIAorICAgIDEyMjM5LCAwLCAwLCA0NDQxLCAwLCA5ODMyNzEsIDczOTQwLCA2NDM1MiwgMTI3NTEzLCA5ODMyNjcsIDQxMSwgOTgzMjY1LCAKKyAgICA5MTk5LCA5ODMyNjMsIDQwNTYsIDExODk5MiwgNDE4OTAsIDAsIDI3MzAsIDQxNjA0LCA5ODM5MjgsIDU0MjgsIDE5NDc0MywgCisgICAgMzM2NCwgNDIyNjUsIDY0NDM3LCAxMjc5MzUsIDExODgxNiwgMTk0NzQyLCA5Njg0LCAyMTYsIDAsIDE0MDEsIDEyODA1MywgCisgICAgNDQwMTIsIDAsIDAsIDkyNTg1LCA5MTU4LCA3Nzg0MiwgNjk5MDUsIDU3NjgsIDAsIDAsIDAsIDQ4NCwgMTk0NzM5LCAwLCAwLCAKKyAgICA2NTg5NSwgMCwgMCwgMzMzOCwgNzM5MzUsIDU3MiwgNzA0MSwgMjczNiwgNjc2MDUsIDk4MzI1NSwgOTM5NjIsIDI3OTQsIAorICAgIDg4MDcsIDY0NDkxLCA3Nzg0NywgNTQzOCwgNTIyMiwgNTM4MSwgNDMxMTQsIDAsIDUxOTMsIDUxMjUsIDU0NTYsIDU1MDksIAorICAgIDc3ODQ2LCAxOTQ3NDcsIDk1MzQsIDAsIDAsIDAsIDM0MzAsIDAsIDAsIDc4NzE3LCAwLCA5ODEsIDAsIDQzMzAsIDczOTI5LCAKKyAgICAxMjA1MzYsIDE4MjQsIDEwOTA4LCAwLCA3MDM0LCA0MTY4MywgNjQ2MTcsIDAsIDczNzU0LCAzOTU3LCA2NDM1OCwgNjQ1NDcsIAorICAgIDEyODI1OSwgNjc0LCA2Mzk5MSwgOTgzMjQzLCAyOTQ2LCA1MzU0LCA1MjUxLCA1MzI4LCA1MzA3LCAzNzU5LCAxMTQxMSwgCisgICAgODM2NCwgNTEyMywgMTE5NjI4LCA1MjgxLCA1NDY5LCA1MTIxLCAxMTkyNDUsIDExODk5MywgMCwgNTEzMCwgMCwgMCwgCisgICAgNzc5OTAsIDAsIDEyMDcyNiwgMTIyMSwgMjczMywgMTE3NDYsIDc3OTkxLCA1MjE2LCAwLCAwLCAwLCAwLCAzNDY4LCA3MDMzLCAKKyAgICA5MjMwLCA1OTM5LCAxOTUwNTIsIDAsIDAsIDEyMDY3NywgNjg0MDAsIDcyNzgsIDEwMzIxLCAxMDI4OSwgNjQ2MTMsIAorICAgIDEwMzg1LCA0MTcwNiwgMCwgMCwgOTgzNDA1LCAwLCAxMTczOSwgOTgzNDE4LCA0MTk4MSwgMCwgNTkzOCwgMCwgNDM3NjYsIAorICAgIDEyNDQ4LCA3NTc2LCAxMDQwMSwgMTAzMzcsIDczODUyLCAwLCAxMzA1NywgMCwgMTI2OTc2LCAwLCAxMDAwOSwgMCwgCisgICAgNDE3MDMsIDk4MzYyOSwgMTIxNjUsIDAsIDAsIDk4ODUsIDAsIDgwNzcsIDAsIDEyNzkwOCwgMCwgMCwgMCwgOTI0NTcsIDAsIAorICAgIDQyMjAsIDEwNzI1LCAxMDQzMywgMCwgNjgzOTUsIDQ5ODcsIDY0NTE5LCAwLCAxMjgzNDAsIDAsIDAsIDAsIDEwOTcwLCAKKyAgICAxMTczMywgMCwgMTIwNzkyLCAwLCAxOTk0NCwgMCwgOTAwOSwgODU1MSwgOTIzNDUsIDExNDY4LCA2NDYzNiwgNzU3NSwgMCwgCisgICAgMjcyNCwgMCwgMCwgMTIzMTMsIDExMDU5MiwgNTE1LCAxMTk5NDcsIDQyNzkxLCA2Mzk4NywgNzgyODYsIDExOTk0MywgCisgICAgMTE5OTQwLCAxMTk5NDEsIDExOTkzOCwgOTc3NSwgNDA0NiwgNDU4OSwgNDUyMSwgNjg2MjksIDkxNDEsIDAsIDc4ODUwLCAKKyAgICAyNzQxLCA2NDM5OSwgNjE5NywgMTM3MCwgMCwgMCwgMCwgMCwgMCwgMCwgNjE4NCwgODYwNiwgMzMwMywgNDEzNzIsIAorICAgIDExNzg2LCA5NDczLCA2NjIwMywgNjYxNzcsIDkyNDQ2LCAxMTU5MywgNDMwMDcsIDQ0NzgsIDY2MTc4LCAwLCAwLCAyNzQ0LCAKKyAgICAwLCA0NDc3LCAxMTg5NjQsIDgxNCwgNDIwNjYsIDY2MTgzLCA2NjIwNCwgNDM3ODYsIDExOTk2MSwgNjYxOTgsIDQxODgwLCAKKyAgICA2NjE4OCwgMTE2MjMsIDc4MTQ4LCAxMTk1NSwgNjYxOTAsIDY2MTkxLCA0MTExMSwgNjYxODksIDczNzg4LCA3Nzg4LCAKKyAgICA0ODQ3LCAwLCAxMjc3NTksIDAsIDAsIDAsIDE1ODEsIDY1MzUsIDc4MTYxLCAxMjk1NCwgNDMwLCA3ODE2MCwgNTUyNTksIAorICAgIDc4MTU4LCAxMjgwMzYsIDUyNzgsIDQ5NDUsIDQyODgzLCA0OTUwLCA5ODM0MzAsIDY4NjI1LCA5ODM0MjgsIDcyNjksIDAsIAorICAgIDU5NjQsIDEyOTA4LCA5ODM1NTUsIDAsIDc0NzY0LCA3NDQ3NywgMTE5MTQ2LCAxOTQ5MzYsIDQ5NDksIDk4MzQyMSwgNDQzLCAKKyAgICA5ODM0MTksIDQ5NDQsIDU0NjcsIDExOTYwMywgMCwgNjUxMzcsIDYwNDQsIDY1MzkyLCAwLCA0MjEzLCAwLCA0MTMwMywgMCwgCisgICAgMTk0OTMxLCAxMTk5NjIsIDQxMzA2LCA3Mzk4NCwgMjY5OCwgMTI3MTU5LCAwLCAxMjA3MiwgMzE5MywgMCwgNDEzMDQsIAorICAgIDgyNCwgMTI4Njc2LCAxMjA5MSwgNzg4OTMsIDc4ODk0LCAxMTk4MTYsIDQ2NzMsIDY0ODA0LCA0Njc4LCAxMTk4MjAsIAorICAgIDExOTgxOSwgNjUwNTksIDAsIDY3MzksIDAsIDU0ODEsIDM0OTAsIDExOTksIDExOTgxMSwgODM1NiwgNjk5NDcsIDExOTgzMiwgCisgICAgNDY3NywgMTI2ODgsIDMxMDIsIDAsIDQ2NzIsIDc4MTczLCA3ODE3NSwgNTUzMSwgNjgzNjcsIDQyNTc1LCA3ODE3MCwgCisgICAgNzgxNjYsIDQ2NzQsIDQ1NDgsIDQ0MDA1LCAxMTk5NDksIDY4NjU4LCAxMTk5NDYsIDgwMjUsIDY4NjMwLCAxMjcwMjQsIAorICAgIDE4NTUsIDk4MzQwNCwgNjg2NjksIDk4MzQwMiwgOTI0NDUsIDEyNzU1NCwgMCwgMTI3MzM5LCAxMTk2NTIsIDI3NDUsIAorICAgIDExNzk3LCA5ODM0MTAsIDEyODE1OSwgOTIwMiwgNDY1NCwgOTgzNDA2LCA5ODM0MDgsIDY4NjM4LCA3Mzk5MywgMTA1MjUsIAorICAgIDQ2NDksIDY1MjA5LCA5ODM0MDksIDAsIDQ2NDgsIDQzMDgwLCA5ODMzOTgsIDk4MzM5OSwgOTgzMzk2LCA2MjQ2LCA2NDk1MCwgCisgICAgNzgyOCwgNDY1MCwgNjc3NywgNjc3NiwgNjc3NSwgNDY1MywgNzgyMiwgNzgwMDUsIDkyMzg0LCA0MzE4NywgODY2OSwgCisgICAgOTgzNDA3LCA2ODIxLCA2NTA5MywgMCwgNzg4ODEsIDI3MTYsIDAsIDk4MzA2MCwgOTgzNDExLCAwLCA2ODM2OSwgMTIwMDU0LCAKICAgICAxMTA2MCwgODU0NywgMjcxMSwgNDIxNjUsIDc4MDI3LCA3ODAyNiwgNzk5MiwgMCwgMCwgNDY2MiwgNzgwMzMsIDc4MDMyLCAKICAgICA5MTQ5LCA5MTQ2LCA1OTksIDIwODEsIDc4MDMxLCA3ODAzMCwgMTk0OTYyLCA0NjU2LCAxMDEzMCwgNjg0NTAsIDc4MTEsIAotICAgIDQwOTk0LCAxOTQ5NjUsIDY0MTQsIDU5NjcsIDQ2NTgsIDM3MjUsIDU3MTMsIDU4MTQsIDQ2NjEsIDQyNDM0LCAwLCAwLCAwLCAKLSAgICA2NDkwNCwgOTAyNiwgMTA4MzMsIDc0ODY0LCA3NTQ3LCA0ODY3LCAwLCAxMDAwOCwgMTAyMjIsIDMwNTQsIDE5NDk1NiwgCi0gICAgOTc0NCwgNzg4NjAsIDc2MDUsIDQ2MjIsIDExOTY1NiwgMCwgMCwgMCwgMCwgMCwgOTA0NSwgNzg4ODgsIDQyMjUsIDE5OTI2LCAKLSAgICA3ODg4NywgMTI4ODAsIDY1MzA3LCA0NjE3LCA3ODg4MywgMCwgNDE3MzIsIDQ2MTYsIDEwNTE4LCAxMDQyMywgMTAzNTksIDAsIAotICAgIDU5NTgsIDAsIDAsIDQyMTUsIDk3ODksIDkxNzk0MSwgNDMyMSwgNDYyMSwgMCwgNDEzMTMsIDUyMiwgNTM2OCwgMCwgCi0gICAgNjU4MDMsIDAsIDUzNjYsIDEyMjAxLCA1MzcyLCAwLCAwLCAwLCA3NzIwLCA3MzkwLCAyNjk2LCAwLCAwLCA0NjM4LCAwLCAKLSAgICAxNzkwLCA3ODI0MiwgNTk2NSwgNjQzNjMsIDY2NTY5LCA2ODY0NiwgMTk0OTY4LCA1Mzc2LCAxODM1LCA1MzM1LCAxOTQ5NjYsIAorICAgIDQwOTk0LCAxOTQ5NjUsIDY0MTQsIDU5NjcsIDQ2NTgsIDM3MjUsIDU3MTMsIDU4MTQsIDQ2NjEsIDQyNDM0LCA5ODM0MDMsIAorICAgIDAsIDAsIDY0OTA0LCA5MDI2LCAxMDgzMywgNzQ4NjQsIDc1NDcsIDQ4NjcsIDAsIDEwMDA4LCAxMDIyMiwgMzA1NCwgCisgICAgMTk0OTU2LCA5NzQ0LCA3ODg2MCwgNzYwNSwgNDYyMiwgMTE5NjU2LCA5ODMzODcsIDk0MDcwLCA5ODMzODUsIDk4MzM4NiwgCisgICAgOTgzMzgzLCA5MDQ1LCA3ODg4OCwgNDIyNSwgMTk5MjYsIDc4ODg3LCAxMjg4MCwgNjUzMDcsIDQ2MTcsIDc4ODgzLCAKKyAgICA5ODMzNzgsIDQxNzMyLCA0NjE2LCAxMDUxOCwgMTA0MjMsIDEwMzU5LCA5ODMzNzIsIDU5NTgsIDAsIDk4MzQyNSwgNDIxNSwgCisgICAgOTc4OSwgOTE3OTQxLCA0MzIxLCA0NjIxLCA5ODMzODEsIDQxMzEzLCA1MjIsIDUzNjgsIDAsIDY1ODAzLCAwLCA1MzY2LCAKKyAgICAxMjIwMSwgNTM3MiwgMCwgOTgzNDAxLCAwLCA3NzIwLCA3MzkwLCAyNjk2LCA5ODMzOTIsIDAsIDQ2MzgsIDk4MzM5NywgCisgICAgMTc5MCwgNzgyNDIsIDU5NjUsIDY0MzYzLCA2NjU2OSwgNjg2NDYsIDEyNzgzMywgNTM3NiwgMTgzNSwgNTMzNSwgMTk0OTY2LCAKICAgICAxMjgwODksIDQ2MzMsIDAsIDY4MTE5LCAxMTgwLCA0NjMyLCAxMjgwOTMsIDUzODcsIDUzMzMsIDAsIDAsIDQyMDk0LCAKLSAgICA1MzMxLCA0NjM0LCAxMTkyOCwgMCwgNTMzOCwgNDYzNywgMTI4MTcwLCA1OTcxLCA0MjQxNCwgMCwgMTI2OCwgNjUwOTcsIAotICAgIDQyMzYxLCAwLCAwLCA3Mzg1MywgMTQyNywgMCwgMCwgNTk3MCwgMzQzMSwgMCwgMTAzNTgsIDEwNDIyLCA0NzU4LCAwLCAKLSAgICAxNjA4LCAyNzM4LCAwLCAxMDQ1NSwgNDc1MywgNzQwMjYsIDExMzQ0LCA0MjIyLCA2MjQwLCA1MjMxLCA3NDM4NCwgMCwgCi0gICAgNjgzNzcsIDYyNDgsIDAsIDAsIDAsIDQyMzE4LCA5MjU4MiwgNTIyOSwgNDc1NywgMCwgMCwgMjcyOCwgNDc1MiwgNjQ1NjMsIAotICAgIDY1MjM1LCA1MjM0LCAwLCAxMjgxNDUsIDAsIDEwNzEzLCA3MTY2LCAwLCAyNjIyLCA3NDYwLCAxMjczMDIsIDAsIDAsIAotICAgIDg5NTQsIDc0NzYwLCA2NTE4OSwgMjYzMiwgOTIyMzAsIDEwMTA4LCAxMDExLCA1NTc0LCAxODUzLCAyNzA5LCA2NTEzOSwgCi0gICAgNTU3NywgMCwgMCwgMTE4ODcxLCA2ODY0MSwgODk2NSwgNzYzNSwgNDIxNzcsIDUzMTYsIDAsIDUzMTQsIDY0NTEsIDU1NzIsIAotICAgIDAsIDUzMTIsIDAsIDU1MjUsIDUzMzAsIDUzMTksIDAsIDAsIDE5NDkwNywgNDQwMDMsIDAsIDAsIDAsIDEyMDQ5OCwgCi0gICAgMTI3ODUxLCAxOTUwMDksIDAsIDc0MDIyLCAwLCA2NDYwOSwgNjg2NDMsIDEyMDYzNCwgMCwgNTcyMSwgMCwgNTUxOSwgCi0gICAgODYzMiwgNjY0NjUsIDExMjY3LCA3Mzk2MSwgOTIyNzgsIDU3MjAsIDAsIDE2OTIsIDQyMTksIDQ2MTAsIDg2OTYsIDQzMDUsIAotICAgIDAsIDQ2MDksIDQzNDc4LCA0NjE0LCA1NDEsIDAsIDUyODcsIDUzMDksIDUyODUsIDY4Mzg5LCA1OTYxLCA0NjQ3LCA1NiwgCi0gICAgNDIxNiwgMTA1NzcsIDQxMzgxLCA2MDEsIDQ2MTMsIDAsIDAsIDkyMjc2LCA0NjA4LCA2NDI2MCwgNDExMjQsIDUxOTAsIAotICAgIDY3NjI4LCAwLCA2ODE0NSwgNzA4NiwgMCwgMTE5MjQzLCA2NzYyMCwgMCwgMjczNCwgMTEwNzQsIDAsIDY3NjI3LCA0MzU5MywgCi0gICAgMCwgNjc2MjUsIDU5NjAsIDAsIDg5OTIsIDQyNTkzLCAxMjgyNjAsIDE3ODIsIDY3NjIyLCA2ODExNCwgMTE5OTM5LCAwLCAKLSAgICA2ODE4MCwgNTUwMSwgMTE5OTUyLCA0MjUwOCwgNzQ0MiwgNDM2NjUsIDM1OSwgNDEyNTMsIDY4MzkyLCA2MjM5LCAxMTk5NTYsIAotICAgIDQxMjU2LCAwLCA2ODEzNCwgMCwgNzQyMDksIDkxNzU1MCwgOTM0NiwgNjk2NjAsIDQxMjU0LCAxMjgwNDcsIDQzMjkxLCAKLSAgICAzNzY3LCA1NzM3LCAwLCA0ODY1LCAwLCA1NzQwLCA5MTc5OTcsIDU3MzYsIDQzNjgsIDY0NzI0LCA3MTkzLCA2ODEzNywgMCwgCi0gICAgNTczOSwgNDEwMjQsIDQ4NjYsIDAsIDczOTA0LCAwLCA0ODY5LCAxMjA1NjMsIDAsIDQyMjMsIDEyODIwMSwgNjY1MCwgMCwgCi0gICAgMCwgMCwgMTI3ODkwLCA0ODcwLCAxMjA0NDUsIDY4NjYxLCA2NzE2LCA3ODE3NiwgNjg2NjcsIDY4MzgyLCA2ODY3NiwgCi0gICAgMTI3OTI1LCAxMDEyMiwgNDg2NCwgNjY1NjgsIDQxNDQsIDc5MzcsIDAsIDYyNDUsIDY4NjUyLCAyNzMyLCA0MjczNCwgNzQ1LCAKLSAgICAwLCAxOTUwOTcsIDkyMTk1LCA0Nzc3LCA3ODIxLCAwLCA2ODYzMSwgNDI3NzUsIDAsIDE5NDk1NCwgMCwgMzA5NywgMCwgCi0gICAgNTk2NiwgMCwgNDc3OCwgMCwgMTA4NjMsIDAsIDQ3ODEsIDAsIDY0NDA3LCAwLCAwLCA4NTc3LCAxMjg1NjIsIDY4MTk2LCAKLSAgICA0MzI4NSwgMTAyMTYsIDQ3ODIsIDAsIDAsIDEyMDc1NywgNjg2MTgsIDEyMzI1LCA0MzA1NiwgODcxNywgMCwgMCwgNDc3NiwgCi0gICAgNzM4MTgsIDExNDkyLCA4NzAwLCAwLCAxMzE3NiwgNjgzNjMsIDEwNDI2LCAwLCA5MTc1OTksIDEwMzYyLCAxOTQ3MDYsIAotICAgIDE3MTUsIDQ4NDksIDgyNDIsIDk1NjEsIDczOTIyLCA0MzI3OCwgNDI2MzUsIDAsIDAsIDU5NjMsIDkxNzkyNiwgMCwgMCwgCi0gICAgNDg1MCwgMCwgMTYwNywgNDY2LCA0ODUzLCAxMTg5OTUsIDQ4NTQsIDEyNzkxOCwgNTE2NCwgMCwgMTM1MCwgNTEyNCwgCi0gICAgNjQ0MjAsIDE5OTMsIDUzNjIsIDg0NzEsIDI3MDgsIDkyNDcxLCAxMjQ0NSwgMzc4NSwgMjM0LCAzMTk5LCAwLCA0MTI2OCwgCi0gICAgNDg0OCwgMjUzMCwgOTE3OTA5LCAyMDY4LCAxOTY0LCAwLCA3Mzc2MiwgMTA0NTgsIDAsIDg1NzYsIDc4NTQzLCAwLCAyNzA0LCAKLSAgICA0Nzk0LCAwLCA2ODIxMSwgODMyMiwgNDc5NywgNTc1MywgMCwgMjY5NCwgNDc5MiwgMCwgMjQzOSwgNjUxMDQsIDY5ODA0LCAKLSAgICAwLCAzMDMsIDAsIDkyNjIyLCAwLCAyNDM3LCAwLCA0MjIxLCA0ODQ0LCAxMTg4NjksIDAsIDAsIDAsIDAsIDAsIDQzMjkyLCAKLSAgICAwLCAyNDQxLCAxMDczOSwgNjUwOTAsIDAsIDExOTMyNywgMCwgMjQ1MSwgMjcxNCwgMTE5MzI2LCAwLCA0MzM3OSwgNDkzNywgCisgICAgNTMzMSwgNDYzNCwgMTE5MjgsIDk4MzU5NCwgNTMzOCwgNDYzNywgMTI4MTcwLCA1OTcxLCA0MjQxNCwgMCwgMTI2OCwgCisgICAgNjUwOTcsIDQyMzYxLCAwLCAwLCA3Mzg1MywgMTQyNywgMCwgMCwgNTk3MCwgMzQzMSwgMCwgMTAzNTgsIDEwNDIyLCA0NzU4LCAKKyAgICA5ODMzNjYsIDE2MDgsIDI3MzgsIDAsIDEwNDU1LCA0NzUzLCA3NDAyNiwgMTEzNDQsIDQyMjIsIDYyNDAsIDUyMzEsIAorICAgIDc0Mzg0LCA5ODMzNzAsIDY4Mzc3LCA2MjQ4LCA5ODMzNTQsIDk4MzM1NSwgOTgzMzUyLCA0MjMxOCwgOTI1ODIsIDUyMjksIAorICAgIDQ3NTcsIDAsIDAsIDI3MjgsIDQ3NTIsIDY0NTYzLCA2NTIzNSwgNTIzNCwgMCwgMTI4MTQ1LCAwLCAxMDcxMywgNzE2NiwgMCwgCisgICAgMjYyMiwgNzQ2MCwgMTI3MzAyLCAwLCAwLCA4OTU0LCA3NDc2MCwgNjUxODksIDI2MzIsIDQyNjE3LCAxMDEwOCwgMTAxMSwgCisgICAgNTU3NCwgMTg1MywgMjcwOSwgNjUxMzksIDU1NzcsIDAsIDAsIDExODg3MSwgNjg2NDEsIDg5NjUsIDc2MzUsIDQyMTc3LCAKKyAgICA1MzE2LCAwLCA1MzE0LCA2NDUxLCA1NTcyLCA2NjQ2NCwgNTMxMiwgMCwgNTUyNSwgNTMzMCwgNTMxOSwgOTgzNDEyLCAKKyAgICA5ODM4NjMsIDE5NDkwNywgNDQwMDMsIDAsIDk4MzQ3MiwgOTgzNDE1LCAxMjA0OTgsIDEyNzg1MSwgMTk1MDA5LCA5ODM4NTYsIAorICAgIDc0MDIyLCA5ODM0MTQsIDY0NjA5LCA2ODY0MywgMTIwNjM0LCA5ODM0ODEsIDU3MjEsIDk4MzM5MywgNTUxOSwgODYzMiwgCisgICAgNjY0NjUsIDExMjY3LCA3Mzk2MSwgOTIyNzgsIDU3MjAsIDk4MzM0NCwgMTY5MiwgNDIxOSwgNDYxMCwgODY5NiwgNDMwNSwgCisgICAgMCwgNDYwOSwgNDM0NzgsIDQ2MTQsIDU0MSwgOTgzMzQ3LCA1Mjg3LCA1MzA5LCA1Mjg1LCA2ODM4OSwgNTk2MSwgNDY0NywgCisgICAgNTYsIDQyMTYsIDEwNTc3LCA0MTM4MSwgNjAxLCA0NjEzLCA5ODMzNDEsIDk4MzMzOCwgNzc4NDksIDQ2MDgsIDY0MjYwLCAKKyAgICA0MTEyNCwgNTE5MCwgNjc2MjgsIDAsIDY4MTQ1LCA3MDg2LCAwLCA2Nzk5OCwgNjc2MjAsIDAsIDI3MzQsIDExMDc0LCAwLCAKKyAgICA2NzYyNywgNDM1OTMsIDAsIDY3NjI1LCA1OTYwLCAwLCA4OTkyLCA0MjU5MywgMTI4MjYwLCAxNzgyLCA2NzYyMiwgNjgxMTQsIAorICAgIDExOTkzOSwgMCwgNjgxODAsIDU1MDEsIDExOTk1MiwgNDI1MDgsIDc0NDIsIDQzNjY1LCAzNTksIDQxMjUzLCA2ODM5MiwgCisgICAgNjIzOSwgMTE5OTU2LCA0MTI1NiwgMCwgNjgxMzQsIDAsIDc0MjA5LCA5MTc1NTAsIDkzNDYsIDY5NjYwLCA0MTI1NCwgCisgICAgMTI4MDQ3LCA0MzI5MSwgMzc2NywgNTczNywgMCwgNDg2NSwgMCwgNTc0MCwgOTE3OTk3LCA1NzM2LCA0MzY4LCA2NDcyNCwgCisgICAgNzE5MywgNjgxMzcsIDAsIDU3MzksIDQxMDI0LCA0ODY2LCAwLCA3MzkwNCwgOTgzODMxLCA0ODY5LCAxMjA1NjMsIDAsIAorICAgIDQyMjMsIDEyODIwMSwgNjY1MCwgMTI2NTA5LCAwLCA5ODM0NTUsIDEyNzg5MCwgNDg3MCwgMTIwNDQ1LCA2ODY2MSwgNjcxNiwgCisgICAgNzgxNzYsIDY4NjY3LCA2ODM4MiwgNjg2NzYsIDEyNzkyNSwgMTAxMjIsIDQ4NjQsIDY2NTY4LCA0MTQ0LCA3OTM3LCAwLCAKKyAgICA2MjQ1LCA2ODY1MiwgMjczMiwgNDI3MzQsIDc0NSwgMCwgMTk1MDk3LCA5MjE5NSwgNDc3NywgNzgyMSwgMCwgNjg2MzEsIAorICAgIDQyNzc1LCAwLCAxOTQ5NTQsIDAsIDMwOTcsIDAsIDU5NjYsIDk4MzQ3OCwgNDc3OCwgMCwgMTA4NjMsIDAsIDQ3ODEsIDAsIAorICAgIDY0NDA3LCAwLCAxMjgzMjMsIDg1NzcsIDEyODU2MiwgNjgxOTYsIDQzMjg1LCAxMDIxNiwgNDc4MiwgMCwgMCwgMTIwNzU3LCAKKyAgICA2ODYxOCwgMTIzMjUsIDQzMDU2LCA4NzE3LCAwLCAwLCA0Nzc2LCA3MzgxOCwgMTE0OTIsIDg3MDAsIDAsIDEzMTc2LCAKKyAgICA2ODM2MywgMTA0MjYsIDAsIDkxNzU5OSwgMTAzNjIsIDE5NDcwNiwgMTcxNSwgNDg0OSwgODI0MiwgOTU2MSwgNzM5MjIsIAorICAgIDQzMjc4LCA0MjYzNSwgMCwgMCwgNTk2MywgOTE3OTI2LCAwLCAwLCA0ODUwLCAwLCAxNjA3LCA0NjYsIDQ4NTMsIDExODk5NSwgCisgICAgNDg1NCwgMTI3OTE4LCA1MTY0LCA5ODM4NjEsIDEzNTAsIDUxMjQsIDY0NDIwLCAxOTkzLCA1MzYyLCA4NDcxLCAyNzA4LCAKKyAgICA5MjQ3MSwgMTI0NDUsIDM3ODUsIDIzNCwgMzE5OSwgMCwgNDEyNjgsIDQ4NDgsIDI1MzAsIDkxNzkwOSwgMjA2OCwgMTk2NCwgCisgICAgMCwgNzM3NjIsIDEwNDU4LCAwLCA4NTc2LCA3ODU0MywgMCwgMjcwNCwgNDc5NCwgMCwgNjgyMTEsIDgzMjIsIDQ3OTcsIAorICAgIDU3NTMsIDAsIDI2OTQsIDQ3OTIsIDAsIDI0MzksIDY1MTA0LCA2OTgwNCwgOTgzNDE2LCAzMDMsIDk4MzEwMSwgOTI2MjIsIAorICAgIDk4MzQxNywgMjQzNywgMCwgNDIyMSwgNDg0NCwgOTIyMTYsIDAsIDAsIDAsIDcwMDQyLCAwLCA0MzI5MiwgMCwgMjQ0MSwgCisgICAgMTA3MzksIDY1MDkwLCAwLCAxMTkzMjcsIDEyNjU0MSwgMjQ1MSwgMjcxNCwgMTE5MzI2LCAwLCA0MzM3OSwgNDkzNywgCiAgICAgNDMzNzYsIDc1MywgNTg0OSwgMTA1OTcsIDQzMDg5LCAxMTcyMiwgOTI0OCwgOTI1NTUsIDQyODc5LCAxMTcyNSwgMCwgMCwgCiAgICAgMjcyNiwgMzEwNywgNzM5NTgsIDQ5NDEsIDY0OTM3LCAxMTkyMzMsIDkxNDAsIDE0MDgsIDUyNjEsIDQ2MDcsIDAsIDE4MSwgCi0gICAgMCwgNDk0MiwgOTUzOSwgNDkzOCwgMCwgNjUyMDEsIDUyNTksIDkzNjksIDY0MTg1LCA0MTQyLCA1MjU3LCAwLCAwLCA0OTY0LCAKLSAgICA1MjY0LCA2NDE3OCwgNjQxNzcsIDEyOTc5LCA0MTQxMSwgNjQxODIsIDY0MTgxLCA2NDE4MCwgNjQxNzksIDk0ODIsIDQ4NzMsIAotICAgIDQxMjMxLCAxODIyLCA0MjUyNiwgMTI4NTgxLCAxMjc1OCwgMzg2NSwgMCwgMCwgMTA1MDAsIDAsIDAsIDc4MDI4LCAwLCAKLSAgICA5ODMwLCA0MzY0MiwgMzg5LCAxMDg5MywgNzUyMSwgMTI3ODc5LCA0ODcyLCA1NDYzLCAwLCAzMTI1LCA5NTY3LCAwLCAKLSAgICA0ODc4LCA1NDU5LCA0NjA0LCA5MTc5MzEsIDk1NTcsIDU0NjUsIDY4NjE3LCAwLCAxMTQ5NCwgMCwgOTU2MywgMTA4NjUsIAotICAgIDc0NTcwLCA0MzI3OSwgNjQxODYsIDAsIDc4NzE0LCA2NDE5MSwgNjQxOTAsIDg4OTgsIDY0MTg4LCAwLCA0MTAzMCwgCi0gICAgNzg4MzYsIDAsIDkxNzgzNSwgNzg4MjAsIDkxNzgzNCwgMCwgNzg4MDUsIDQxMDMxLCA3ODgwMSwgMTE5NjAsIDY3NDUsIAotICAgIDMwODIsIDAsIDc4NTM5LCA3MzkxOSwgMTA1NzMsIDQxNzQ0LCA3MDc5LCA1ODU2LCAxMjcwNDMsIDUxNjMsIDc4ODA5LCAKLSAgICAxMjgxNjIsIDE4MTcsIDY2NzI0LCA3ODUzOCwgMCwgMTA1NjQsIDc3NjMsIDEzMDc3LCA0MTgxMywgNDQwMCwgNDE3NDUsIAotICAgIDY0MjA3LCAxMDI3NSwgODkyNSwgMTAzNzEsIDEwMzA3LCA0MTgxNCwgNDI0OCwgMCwgMCwgNDU0MSwgNjI5OSwgNjQyMDQsIAotICAgIDY0MjAzLCA2NDIwMSwgNjQyMDAsIDY0MTk5LCA2NDE5OCwgMCwgNDIxNTYsIDc4Njg4LCAwLCA2NDE5MywgNjQxOTIsIAotICAgIDY1MjIzLCA5OTQzLCA2NDE5NywgNjQxOTYsIDY0MTk1LCA2NDE5NCwgMTMyODIsIDY0MTc1LCA2NDE3NCwgNjQxNzMsIAotICAgIDc4MTg5LCA4NDYsIDc4MTg2LCA5OTY1LCAwLCAwLCAwLCAwLCAyNTQzLCAxMjE2MywgMzEwOCwgOTc0NSwgNjQxNjcsIAotICAgIDY0MTY2LCA2NDE2NSwgNjQxNjQsIDIxMTAsIDkyMTc2LCA2NDE2OSwgNjQxNjgsIDY0OTQ5LCAxMDk3MiwgMTAyNTEsIAotICAgIDEwMjQ3LCA0Mjc2OCwgNzE1LCA2NDE2MSwgNDMyOTksIDk0NTMsIDUzNDgsIDEwOTQzLCAxMjAzNzgsIDAsIDExMzUyLCAKLSAgICA1NTAsIDk5MTAsIDAsIDAsIDY2NTc5LCAxMTU1MSwgMCwgMTk1MDgwLCA5NTA0LCA3MTg3LCAwLCAxMDM3MywgMCwgCi0gICAgMTIwNzkxLCAxMDI2MSwgMTAyNTMsIDY0MDQsIDEwMjc3LCA3ODE4MywgMTE5ODQsIDE1NTIsIDY1MjIyLCA2OTk4LCAKLSAgICA3ODE4MCwgMCwgMzEyOCwgNDc4OSwgNTA2NywgNTA2NiwgMTE4ODQ5LCA0Nzg0LCAwLCA4ODI3LCAxMTQ2LCA1MDY1LCAKLSAgICA3ODE5NiwgNzgxOTIsIDY4MTM2LCA3ODE5MCwgNDM0MTIsIDUwNjQsIDI0MzEsIDAsIDk0NTAsIDE4MDksIDAsIDc4MjAwLCAKLSAgICA3ODIwMSwgNTA2MiwgMTI2NCwgNjQ4MTcsIDEzMjU0LCAxMTY5NywgMCwgOTc4NSwgNjQ3MTYsIDAsIDM5MzMsIDc0NTU5LCAKLSAgICA0NzQwLCA3OTU0LCAwLCAwLCA0MjYwOSwgMCwgNzQxNzUsIDAsIDEyNzAxNiwgMCwgMCwgNDIxMzAsIDAsIDUxNTEsIAotICAgIDkxNzgyOSwgOTE3ODIzLCAwLCAwLCAwLCA3NjIwLCAzODAwLCA2NTEyMiwgMCwgMCwgODM1NSwgNzg1NCwgMCwgOTU0LCAKLSAgICA2NDkyNywgNDE4NSwgNDEwNDUsIDEyNzE0MSwgNDE0MzgsIDQxNDM5LCA2ODY2NiwgMTA3MTEsIDQ1OTMsIDEyNzc0NSwgCi0gICAgMTIwNTg0LCAwLCA2NDc3NCwgODA1MywgMTA1MzIsIDY2NzI3LCAwLCAwLCAwLCA2NDc1OSwgNjM4MSwgNTE2NiwgOTg4OCwgCi0gICAgMTI3ODAwLCA1MTQ4LCA0MjgzNCwgMCwgNzgyMDUsIDc4MjA2LCA0Mzc4NywgNzgyMDQsIDY0MTMxLCAzMTE5LCA5MTc4MTQsIAotICAgIDAsIDMwNjAsIDY0MTM1LCA5OTg2LCAwLCA3Nzg3NiwgNjM2LCAxMTY5OCwgMCwgMCwgOTkxNiwgMTE3MDEsIDc4MzYsIAotICAgIDQyNzQxLCA2NDEzNywgODMyMCwgNzg2NDAsIDg4NjMsIDkyNDMxLCAxMTk5NjAsIDE0NzcsIDQzMjg5LCAwLCA3NDM1OCwgCi0gICAgODYxOCwgMCwgOTkwOCwgMCwgMCwgMCwgMzkzNywgMTIzMTIsIDAsIDAsIDAsIDY0NzgxLCA5MTIsIDYzNDksIDQ1MzYsIAotICAgIDExOTk2MywgNzQ1MzIsIDAsIDYyNDQsIDAsIDE5NDU4MCwgMzkzNSwgMTIwNjY1LCAwLCAwLCAxMTk1MCwgNTM5MiwgCi0gICAgNDIyNDgsIDY1MTI5LCA2ODY1NiwgNTM5NywgMCwgMTIwNDYsIDEyNTk5LCAwLCAwLCA1Mzk1LCAwLCA1MzkzLCAzNTQsIAotICAgIDY4NjE1LCAxMTk5NDgsIDc4NTAzLCAwLCAwLCA0MjAzOSwgMCwgMCwgNjQxNDIsIDYyNiwgMCwgNTg5NSwgMCwgMCwgNTc4MCwgCi0gICAgMCwgMCwgMTI4ODc0LCAwLCAwLCA0MzI5NywgMCwgNDMxMSwgNDY0NCwgODgxOCwgMCwgMTI4MTg2LCAwLCA3MTQ1LCAzOTE4LCAKLSAgICA2NjQ1MiwgMzc5NywgMTY0NCwgOTIzNDYsIDk2NTgsIDQxNDAsIDExMzg1LCA2NTk0NywgNjQ1NSwgOTAzMCwgODEzLCAKLSAgICAxMTk5NDUsIDY4MTMxLCA0MTQ2LCAxMTk5NTcsIDUzNjAsIDI0NjYsIDAsIDY3NjY5LCAxMTk5NDIsIDYyNDksIDQyMTE3LCAKLSAgICA5MjI4NywgMTI4MjI0LCAwLCAwLCA3NDA0NiwgMTIwNTgzLCA0OTExLCA5ODgsIDkxNzgwNywgMCwgMCwgNDMwNjEsIDcwNTQsIAorICAgIDk4MzQyMiwgNDk0MiwgOTUzOSwgNDkzOCwgMCwgNjUyMDEsIDUyNTksIDkzNjksIDY0MTg1LCA0MTQyLCA1MjU3LCAKKyAgICA5ODM2MDEsIDAsIDQ5NjQsIDUyNjQsIDY0MTc4LCA2NDE3NywgMTI5NzksIDQxNDExLCA2NDE4MiwgNjQxODEsIDY0MTgwLCAKKyAgICA2NDE3OSwgOTQ4MiwgNDg3MywgNDEyMzEsIDE4MjIsIDQyNTI2LCAxMjg1ODEsIDEyNzU4LCAzODY1LCAwLCAwLCAxMDUwMCwgCisgICAgMCwgMTE5MDI0LCA3ODAyOCwgOTI0MDgsIDk4MzAsIDQzNjQyLCAzODksIDEwODkzLCA3NTIxLCAxMjc4NzksIDQ4NzIsIAorICAgIDU0NjMsIDAsIDMxMjUsIDk1NjcsIDAsIDQ4NzgsIDU0NTksIDQ2MDQsIDkxNzkzMSwgOTU1NywgNTQ2NSwgNjg2MTcsIDAsIAorICAgIDExNDk0LCAxMjY0OTIsIDk1NjMsIDEwODY1LCA3NDU3MCwgNDMyNzksIDY0MTg2LCA5ODM0MzEsIDc4NzE0LCA2NDE5MSwgCisgICAgNjQxOTAsIDg4OTgsIDY0MTg4LCAwLCA0MTAzMCwgNzg4MzYsIDAsIDkxNzgzNSwgNzg4MjAsIDkxNzgzNCwgMCwgNzg4MDUsIAorICAgIDQxMDMxLCA3ODgwMSwgMTE5NjAsIDY3NDUsIDMwODIsIDk4MzQyOSwgNzg1MzksIDczOTE5LCAxMDU3MywgNDE3NDQsIAorICAgIDcwNzksIDU4NTYsIDEyNzA0MywgNTE2MywgNzg4MDksIDEyODE2MiwgMTgxNywgNjY3MjQsIDc4NTM4LCAwLCAxMDU2NCwgCisgICAgNzc2MywgMTMwNzcsIDQxODEzLCA0NDAwLCA0MTc0NSwgNjQyMDcsIDEwMjc1LCA4OTI1LCAxMDM3MSwgMTAzMDcsIDQxODE0LCAKKyAgICA0MjQ4LCAwLCAwLCA0NTQxLCA2Mjk5LCA2NDIwNCwgNjQyMDMsIDY0MjAxLCA2NDIwMCwgNjQxOTksIDY0MTk4LCAxMjY0NzEsIAorICAgIDQyMTU2LCA3ODY4OCwgMCwgNjQxOTMsIDY0MTkyLCA2NTIyMywgOTk0MywgNjQxOTcsIDY0MTk2LCA2NDE5NSwgNjQxOTQsIAorICAgIDEzMjgyLCA2NDE3NSwgNjQxNzQsIDY0MTczLCA3ODE4OSwgODQ2LCA3ODE4NiwgOTk2NSwgMCwgMCwgMCwgMCwgMjU0MywgCisgICAgMTIxNjMsIDMxMDgsIDk3NDUsIDY0MTY3LCA2NDE2NiwgNjQxNjUsIDY0MTY0LCAyMTEwLCA5MjE3NiwgNjQxNjksIDY0MTY4LCAKKyAgICA2NDk0OSwgMTA5NzIsIDEwMjUxLCAxMDI0NywgNDI3NjgsIDcxNSwgMjI5NSwgNDMyOTksIDk0NTMsIDUzNDgsIDEwOTQzLCAKKyAgICAxMjAzNzgsIDAsIDExMzUyLCA1NTAsIDk5MTAsIDEyNjcwNSwgMCwgNjY1NzksIDExNTUxLCAwLCAxOTUwODAsIDk1MDQsIAorICAgIDcxODcsIDAsIDEwMzczLCAwLCAxMjA3OTEsIDEwMjYxLCAxMDI1MywgNjQwNCwgMTAyNzcsIDc4MTgzLCAxMTk4NCwgMTU1MiwgCisgICAgNjUyMjIsIDY5OTgsIDc4MTgwLCAwLCAzMTI4LCA0Nzg5LCA1MDY3LCA1MDY2LCAxMTg4NDksIDQ3ODQsIDAsIDg4MjcsIAorICAgIDExNDYsIDUwNjUsIDY5ODkwLCA3ODE5MiwgNjgxMzYsIDc4MTkwLCA0MzQxMiwgNTA2NCwgMjQzMSwgMCwgOTQ1MCwgMTgwOSwgCisgICAgMCwgNzgyMDAsIDc4MjAxLCA1MDYyLCAxMjY0LCA2NDgxNywgMTMyNTQsIDExNjk3LCAxMjY1OTgsIDk3ODUsIDY0NzE2LCAwLCAKKyAgICAzOTMzLCA3NDU1OSwgNDc0MCwgNzk1NCwgMCwgMCwgNDI2MDksIDAsIDc0MTc1LCAwLCAxMjcwMTYsIDAsIDk4Mzg2NCwgCisgICAgNDIxMzAsIDAsIDUxNTEsIDkxNzgyOSwgOTE3ODIzLCAwLCA5Mzk4MCwgMCwgNzYyMCwgMzgwMCwgNjUxMjIsIDAsIDAsIAorICAgIDgzNTUsIDc4NTQsIDAsIDk1NCwgNjQ5MjcsIDQxODUsIDQxMDQ1LCAxMjcxNDEsIDQxNDM4LCA0MTQzOSwgNjg2NjYsIAorICAgIDEwNzExLCA0NTkzLCAxMjc3NDUsIDEyMDU4NCwgOTgzNDAwLCA2NDc3NCwgODA1MywgMTA1MzIsIDY2NzI3LCAwLCAwLCAwLCAKKyAgICA2NDc1OSwgNjM4MSwgNTE2NiwgOTg4OCwgMTI3ODAwLCA1MTQ4LCA0MjgzNCwgMCwgNzgyMDUsIDc4MjA2LCA0Mzc4NywgCisgICAgNzgyMDQsIDY0MTMxLCAzMTE5LCA5MTc4MTQsIDAsIDMwNjAsIDY0MTM1LCA5OTg2LCAwLCA3Nzg3NiwgNjM2LCAxMTY5OCwgCisgICAgMCwgOTgzNDQzLCA5OTE2LCAxMTcwMSwgNzgzNiwgNDI3NDEsIDY0MTM3LCA4MzIwLCA3ODY0MCwgODg2MywgOTI0MzEsIAorICAgIDExOTk2MCwgMTQ3NywgNDMyODksIDAsIDc0MzU4LCA4NjE4LCA5ODMzOTQsIDk5MDgsIDk4Mzk3MiwgMCwgMCwgMzkzNywgCisgICAgMTIzMTIsIDAsIDk4MzM5NSwgMCwgNjQ3ODEsIDkxMiwgNjM0OSwgNDUzNiwgOTM5NTQsIDc0NTMyLCAxMjY1OTQsIDYyNDQsIAorICAgIDkyMjA5LCA3MTM0MSwgMzkzNSwgMTIwNjY1LCA5ODM0NjgsIDAsIDExOTUwLCA1MzkyLCA0MjI0OCwgNjUxMjksIDY4NjU2LCAKKyAgICA1Mzk3LCAwLCAxMjA0NiwgMTI1OTksIDAsIDEyODI2MSwgNTM5NSwgMCwgNTM5MywgMzU0LCA2ODYxNSwgMTE5OTQ4LCAKKyAgICA3ODUwMywgMCwgMCwgNDIwMzksIDAsIDAsIDY0MTQyLCA2MjYsIDAsIDU4OTUsIDAsIDAsIDU3ODAsIDAsIDAsIDEyODg3NCwgCisgICAgMCwgMCwgNDMyOTcsIDk4MzA3OSwgNDMxMSwgNDY0NCwgODgxOCwgMCwgMTI4MTg2LCAwLCA3MTQ1LCAzOTE4LCA2NjQ1MiwgCisgICAgMzc5NywgMTY0NCwgOTIzNDYsIDk2NTgsIDQxNDAsIDExMzg1LCA2NTk0NywgNjQ1NSwgOTAzMCwgODEzLCAxMTk5NDUsIAorICAgIDY4MTMxLCA0MTQ2LCAxMTk5NTcsIDUzNjAsIDI0NjYsIDAsIDY3NjY5LCAxMTk5NDIsIDYyNDksIDQyMTE3LCA5MjI4NywgCisgICAgMTI4MjI0LCAwLCAwLCA3NDA0NiwgNDM3NDUsIDQ5MTEsIDk4OCwgOTE3ODA3LCAwLCA5ODM0NjAsIDQzMDYxLCA3MDU0LCAKICAgICA2NDE0NywgMCwgNjQ5MjAsIDY4MTk1LCA2Njk4LCAxMTg5MzMsIDkyNTA2LCAwLCAxMjAwMDYsIDExOTgxLCAxMjIwMiwgMCwgCiAgICAgMTEwMzIsIDY3NjU0LCA2MDkzLCAxMTYwOCwgOTc1LCA2ODY2MiwgNjU4NDMsIDE3MCwgMCwgMCwgNDE2OSwgMCwgNDE4NTksIAogICAgIDYwNTgsIDEyMDQwMSwgMTMyMDMsIDEyMDY1NywgMCwgMCwgNjg2NTcsIDk4MTgsIDEwMTc4LCAxMDMyNCwgNDIxMDYsIAogICAgIDU4OTgsIDc0NTQwLCA0NzM4LCA0MTg1NiwgNzA2MiwgOTE3ODY1LCA0NzM3LCAxMTc3OSwgNDc0MiwgMTIwNTY0LCA5MjM5MSwgCi0gICAgNzM3MzYsIDAsIDk4MjUsIDY0NDgsIDY3MTUsIDEyNzAwOCwgNDgzMSwgMCwgOTI1MjUsIDAsIDUzMDAsIDQ3NDEsIDQyMTA4LCAKLSAgICAwLCA2NDE1OSwgNDczNiwgNjQxNDgsIDAsIDg0OSwgOTIxOTEsIDc4NDkxLCA0MzI4OCwgMCwgNjY2MjAsIDAsIDEyNzMzMSwgCi0gICAgNjU1NDksIDk0OTYsIDY0NTk4LCAxMTg4NjYsIDAsIDc4NzYsIDY4MTMyLCA5MTc4NzIsIDM5MjgsIDkxNzg3MCwgNDMzNzgsIAotICAgIDEwNzA2LCA3MTk4LCAwLCA0ODQyLCAxMjA1MywgMTI4MTI5LCAwLCA0ODQxLCAwLCA0MTcxLCAxMjAwOCwgNjI1MSwgMzkyMywgCi0gICAgMTQ5MCwgMCwgMTE5NTkxLCAwLCA0MDk3MiwgNTI0NSwgMCwgMTAxMTQsIDQyMDAxLCA0MTg4OCwgNDg0NSwgODMzMiwgCi0gICAgNDA5NzQsIDY0MzQ3LCA0ODQwLCA5MDc3LCA3ODM0NiwgMTc0NywgOTE3ODQ5LCA0ODI1LCA2OTI0MCwgOTE3ODUyLCAKLSAgICA2ODY1NSwgMCwgMCwgMCwgMCwgNjg2MjgsIDAsIDk4NTAsIDExODkzNywgMzY3LCAxNDcyLCA5MTc4NTksIDY2ODcsIDEyNzQsIAotICAgIDAsIDU5MDUsIDEyMzM5LCA4OTE5LCA3Mzk1MywgMTA5MDcsIDY1MjYxLCAxMTAyMywgMTE5NTU5LCA0ODMwLCA5MTM0LCAKLSAgICA3ODY2NiwgNjQxMjYsIDQzMDExLCAwLCAwLCA2NDEwMSwgMCwgMCwgNDgyNCwgMTA2MTQsIDEyMDM5MCwgMCwgMTg4OCwgCi0gICAgMTk2MCwgNzg2MSwgOTE3ODU2LCA3ODUyNCwgNDE4MzYsIDQzMDEyLCA2MDUyLCA2MDY0LCA1NCwgNDMwMDksIDEyMjE0LCAwLCAKLSAgICA2MjExLCAwLCAzNTgsIDQxOTk3LCA0MTgzMywgMTE0NDIsIDEwNzU4LCA2NTc3NCwgMCwgMTIwMzg0LCA2NDExNSwgOTIyMjEsIAotICAgIDAsIDAsIDAsIDExOTA1MywgMCwgMTI3NjUsIDY0MTE4LCAxMjY5OTgsIDEyOTYyLCAwLCAwLCA0MDE3LCAxMjgyNywgNTI0MSwgCi0gICAgMTIwMzkyLCAwLCA0MTExOCwgMzkyNCwgMCwgMTEzNjYsIDkxNzg0MywgMCwgMCwgOTE3ODQ2LCA0MTExNiwgOTE3ODQ0LCAKLSAgICA5MTc1NjQsIDAsIDExMzYzLCAxMjA1NywgMTE5MTcsIDE1NjcsIDc0MDAwLCA0NzIxLCAwLCA2NjIwMiwgODk1NywgNDEzOSwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMTI3NDAsIDEyODcwMiwgNDcyMiwgNjgxNiwgMTI3NzkzLCAxMjc1OSwgNDcyNSwgMCwgNDcyNiwgCi0gICAgMCwgMCwgMCwgOTE3OTA0LCA5MTc5MDUsIDAsIDEyNzU1LCAxMjc2MiwgNDAxNSwgMCwgODA1MiwgNDc2LCAwLCAwLCAKLSAgICAxMjgyOTQsIDY0MjEyLCA0MTAyMCwgMTM4MiwgNjQyMDksIDY0MjE2LCA2NDIxNSwgNjQyMTQsIDE2NTYsIDQxODMxLCAwLCAKKyAgICA3MzczNiwgOTgzMzU2LCA5ODI1LCA2NDQ4LCA2NzE1LCAxMjcwMDgsIDQ4MzEsIDAsIDkyNTI1LCAwLCA1MzAwLCA0NzQxLCAKKyAgICA0MjEwOCwgOTgzMzQ2LCA2NDE1OSwgNDczNiwgNjQxNDgsIDAsIDg0OSwgOTIxOTEsIDc4NDkxLCA0MzI4OCwgMCwgNjY2MjAsIAorICAgIDkxNzkxNiwgMTI3MzMxLCA2NTU0OSwgOTQ5NiwgNjQ1OTgsIDExODg2NiwgOTgzMzU4LCA3ODc2LCA2ODEzMiwgOTE3ODcyLCAKKyAgICAzOTI4LCA5MTc4NzAsIDQzMzc4LCAxMDcwNiwgNzE5OCwgMCwgNDg0MiwgMTIwNTMsIDEyODEyOSwgMCwgNDg0MSwgMCwgCisgICAgNDE3MSwgMTIwMDgsIDYyNTEsIDM5MjMsIDE0OTAsIDAsIDExOTU5MSwgMTI2NTEyLCA0MDk3MiwgNTI0NSwgMCwgMTAxMTQsIAorICAgIDQyMDAxLCA0MTg4OCwgNDg0NSwgODMzMiwgNDA5NzQsIDY0MzQ3LCA0ODQwLCA5MDc3LCA3ODM0NiwgMTc0NywgOTE3ODQ5LCAKKyAgICA0ODI1LCA2OTI0MCwgOTE3ODUyLCA2ODY1NSwgMCwgOTgzMzgwLCAwLCAwLCA2ODYyOCwgOTgzMzM5LCA5ODUwLCAxMTg5MzcsIAorICAgIDM2NywgMTQ3MiwgOTE3ODU5LCA2Njg3LCAxMjc0LCAwLCA1OTA1LCAxMjMzOSwgODkxOSwgNzM5NTMsIDEwOTA3LCA2NTI2MSwgCisgICAgMTEwMjMsIDExOTU1OSwgNDgzMCwgOTEzNCwgNzg2NjYsIDY0MTI2LCA0MzAxMSwgMCwgMTI2NjI2LCA2NDEwMSwgMCwgMCwgCisgICAgNDgyNCwgMTA2MTQsIDExOTY1OSwgMCwgMTg4OCwgMTk2MCwgNzg2MSwgOTE3ODU2LCA3ODUyNCwgNDE4MzYsIDQzMDEyLCAKKyAgICA2MDUyLCA2MDY0LCA1NCwgNDMwMDksIDEyMjE0LCAwLCA2MjExLCAwLCAzNTgsIDQxOTk3LCA0MTgzMywgMTE0NDIsIAorICAgIDEwNzU4LCA2NTc3NCwgMCwgMTIwMzg0LCA2NDExNSwgOTIyMjEsIDcwMDE4LCAwLCAwLCAxMTkwNTMsIDAsIDEyNzY1LCAKKyAgICA2NDExOCwgMTI2OTk4LCAxMjk2MiwgMCwgMTI2NTgwLCA0MDE3LCAxMjgyNywgNTI0MSwgMTIwMzkyLCAwLCA0MTExOCwgCisgICAgMzkyNCwgMCwgMTEzNjYsIDkxNzg0MywgMCwgMCwgOTE3ODQ2LCA0MTExNiwgOTE3ODQ0LCA5MTc1NjQsIDAsIDExMzYzLCAKKyAgICAxMjA1NywgMTE5MTcsIDE1NjcsIDc0MDAwLCA0NzIxLCAxMjY2NDEsIDY2MjAyLCA4OTU3LCA0MTM5LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAxMjc0MCwgMTI4NzAyLCA0NzIyLCA2ODE2LCAxMjc3OTMsIDEyNzU5LCA0NzI1LCA5ODMzNzUsIDQ3MjYsIDAsIAorICAgIDE5NDg5MiwgMCwgMTI4MzIxLCA5MTc5MDUsIDAsIDEyNzU1LCAxMjc2MiwgNDAxNSwgMCwgODA1MiwgNDc2LCAwLCAwLCAKKyAgICAxMjgyOTQsIDY0MjEyLCA0MTAyMCwgMTM4MiwgNjQyMDksIDY0MjE2LCA0NDAwMiwgNjQyMTQsIDE2NTYsIDQxODMxLCAwLCAKICAgICAwLCA0MTg0MywgODcyMCwgMzkwOCwgMTQ1MiwgMTMxMTEsIDAsIDY0MDY3LCAxMjczMjgsIDg1NTIsIDY0MTEzLCA0MTg0NSwgCiAgICAgMzg0OSwgNzg3MzIsIDY2MjMyLCA5Nzc4LCAxMjAwNjYsIDU4OTEsIDcwNjQsIDU1LCA5OTQ4LCAxMTkwODUsIDAsIDAsIAotICAgIDc5MzUsIDI0MjAsIDAsIDExMTQsIDkyNTk5LCA2NzU4NSwgNzg2NzUsIDEyMDA1MywgOTIzNTAsIDEyMDA1MSwgMzkzOCwgCisgICAgNzkzNSwgMjQyMCwgMCwgMTExNCwgOTI1OTksIDY3NTg1LCA3MDEwNCwgMTIwMDUzLCA5MjM1MCwgMTIwMDUxLCAzOTM4LCAKICAgICAxMjAwNTcsIDY1NDE3LCA2NDcxNywgMTIwMDYwLCAxMjAwNjEsIDY1NDE1LCAxMjAwNTksIDYyOTIsIDY1MzAzLCA3OTU1LCAKICAgICA2NDUyLCA0NzEzLCAxMjgxOTYsIDY2MjQ5LCA5MTc4ODUsIDkxNzg5MCwgOTE3ODkxLCA2NTE1MiwgNzE5LCAxMjAwNDQsIAogICAgIDc4NjIzLCAxMjAwNDIsIDY3MTMsIDQ1MzIsIDY1NDEyLCA2OTgyMiwgMTA4NjgsIDQ3MTcsIDIzNDksIDU5MDIsIDY2NDUwLCAKICAgICA0NzEyLCA5MTc5MDIsIDkxNzg5OSwgOTE3OTAwLCA2NTQxNiwgODE1NSwgNDcxOCwgMzk0MiwgNDcxNCwgOTYyNSwgMCwgCi0gICAgNjM4MywgMTk0NzQ0LCAxMjAwNiwgMTI4NTY1LCAwLCAwLCAwLCAwLCA2NTQxNCwgNjQ1NCwgMTIyOSwgMCwgNjY0MzcsIAotICAgIDY2MDI1LCA3ODY5OSwgMCwgNDI1MDAsIDEyMDUwOCwgNDgwOSwgOTYyMywgOTE3ODc0LCA3ODY5NCwgOTE3ODgwLCAKKyAgICA2MzgzLCAxOTQ3NDQsIDEyMDA2LCAxMjg1NjUsIDAsIDAsIDAsIDAsIDY1NDE0LCA2NDU0LCAxMjI5LCAxMjY2MDYsIAorICAgIDY2NDM3LCA2NjAyNSwgNzg2OTksIDAsIDQyNTAwLCAxMjA1MDgsIDQ4MDksIDk2MjMsIDkxNzg3NCwgNzg2OTQsIDkxNzg4MCwgCiAgICAgOTE3ODc3LCA5MTc4NzgsIDY1NDA1LCA2ODE1OSwgMTI4OTMsIDkxNzg4MiwgNTM2NSwgNDU0NSwgODkwMSwgOTI0MjEsIAogICAgIDExOTU1NSwgNDgxMywgMTI4MjYyLCAwLCA1OTI1LCA0ODA4LCA2NDMzMCwgMCwgNjU0NzUsIDExODk0MCwgMTk1MDI4LCAKLSAgICA0ODE0LCAwLCA0ODEwLCAwLCAwLCA2NDkyOCwgMTA1NDMsIDAsIDM1MjIsIDAsIDQxNCwgNjU0MDQsIDAsIDE5NTAyNywgCisgICAgNDgxNCwgMCwgNDgxMCwgMCwgMCwgNjQ5MjgsIDEwNTQzLCAwLCAzNTIyLCA3MTMzNSwgNDE0LCA2NTQwNCwgMCwgMTk1MDI3LCAKICAgICA2NDU2LCA3MzgyMCwgMCwgNjY5MSwgNDIxOTMsIDkyMjI1LCAxMjgxNzEsIDAsIDc0NDk1LCAwLCAwLCAwLCAxMTg4MjAsIAogICAgIDk3NTEsIDY1NDA3LCAxMjgwODUsIDExNzcwLCAzOTE5LCAwLCAwLCA2NTA2MSwgMCwgMCwgMCwgMTIyMzUsIDAsIDAsIAotICAgIDEyNzIzMywgNjQwOTIsIDAsIDY0MDgwLCAwLCA2NDA5MCwgMCwgMCwgMTAxNjIsIDEwMzEwLCAwLCA4NDU0LCAxMjc4ODgsIAotICAgIDQyMDM4LCAzODcsIDQxMzYzLCAxMjczNywgMCwgNDc4MCwgNDMzNjgsIDAsIDY0MzEwLCA2NDYyMSwgNjczMiwgMCwgMCwgMCwgCi0gICAgMCwgMCwgODg5NiwgMCwgMzc1LCA2OTc2LCA2NjU4MiwgMTE5MDA1LCAwLCAwLCAwLCAxMTkyMDIsIDExOTIwMywgMTI1MjYsIAotICAgIDQzMTIwLCAyMzE1LCAwLCAxOTM4LCAxMTkxOTcsIDAsIDQ1MjksIDExOTIwMCwgMTE5MjAxLCAxMTkxOTgsIDExOTE5OSwgCi0gICAgNjk2OTIsIDAsIDY5Njk4LCAxMzE1MCwgNjQ0OTIsIDAsIDAsIDAsIDEyOTAyLCAwLCA0Mjg5MSwgNjYzMjcsIDc0Mjk4LCAwLCAKLSAgICAxMDc5OSwgNjk2OTAsIDI1ODcsIDY2MzcyLCAwLCA0MTkzLCA5MjI1MCwgNDI0MSwgMCwgNzk5OCwgMCwgMCwgMCwgMCwgCi0gICAgMjMxNiwgMTE4ODIxLCAwLCAwLCAwLCA2NDI5NywgNzQ3OTksIDkyNDQyLCA3NDE0MCwgMCwgNTM3MywgMCwgMCwgMzc2MiwgCi0gICAgMTAwMTUsIDEyNzMzNSwgMTE5MjMyLCAwLCA0MTU5MCwgMCwgOTIzNzgsIDM3ODAsIDc0ODUsIDU3NzksIDAsIDQyMDM3LCAwLCAKLSAgICAzOTA2LCAxMjM0OSwgMCwgODMyNiwgMCwgNjU0OTgsIDM3NjMsIDY5ODMsIDU2MTgsIDAsIDM3NzksIDAsIDQzNjEzLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAyODAsIDc0NTU4LCAxMjczMzIsIDY4MTM4LCAxMzA3MiwgMTg5NCwgMCwgMCwgNjU0NzgsIAotICAgIDQzMzEwLCA3MjMxLCAwLCAxMTc3MywgMCwgMCwgMCwgMCwgMjU1MSwgMCwgNjQ1MywgMTAyMDAsIDYyMzUsIDAsIDExOTIzNywgCi0gICAgMCwgMTI4ODA1LCA0NDcwLCAxMTk2MTMsIDkxNzU1NywgNzc4MCwgNTM2OSwgMTE4OTU4LCA1MjQ5LCAwLCA1MzY3LCA4NzU2LCAKLSAgICAxMjcxNDMsIDAsIDUzNzcsIDEyMDU4NSwgNjgxNDMsIDE2ODgsIDc4MjQ1LCAwLCA2OTY4NSwgMCwgMCwgMCwgNDQwMjAsIAotICAgIDY4MDgsIDQxMzE5LCAxMzAwLCAxMDY1MCwgNDE2OTIsIDY0NTA1LCA0NjY4LCAwLCAxMTk2MjQsIDE0NjUsIDEwODUwLCAKKyAgICAxMjcyMzMsIDY0MDkyLCA5ODM0NjIsIDY0MDgwLCAwLCA2NDA5MCwgMCwgNjk5MTMsIDEwMTYyLCAxMDMxMCwgMCwgODQ1NCwgCisgICAgMTI3ODg4LCA0MjAzOCwgMzg3LCA0MTM2MywgMTI3MzcsIDAsIDQ3ODAsIDQzMzY4LCAwLCA2NDMxMCwgNjQ2MjEsIDY3MzIsIAorICAgIDc4MTE2LCAwLCA5ODMxMzksIDAsIDk4MzA3NCwgODg5NiwgMCwgMzc1LCA2OTc2LCA2NjU4MiwgMTE5MDA1LCA5ODM4NjUsIAorICAgIDAsIDk4MzQyNiwgMTE5MjAyLCAxMTkyMDMsIDEyNTI2LCA0MzEyMCwgMjMxNSwgMCwgMTkzOCwgMTE5MTk3LCAwLCA0NTI5LCAKKyAgICAxMTkyMDAsIDExOTIwMSwgMTE5MTk4LCAxMTkxOTksIDY5NjkyLCA5ODM0MjQsIDY5Njk4LCAxMzE1MCwgNjQ0OTIsIDAsIDAsIAorICAgIDIyOTEsIDEyOTAyLCAwLCA0Mjg5MSwgNjYzMjcsIDc0Mjk4LCA5MTc4NTcsIDEwNzk5LCA2OTY5MCwgMjU4NywgNjYzNzIsIAorICAgIDAsIDQxOTMsIDkyMjUwLCA0MjQxLCA5ODMwNTcsIDc5OTgsIDAsIDAsIDAsIDEyNjY0MCwgMjMxNiwgMTE4ODIxLCAwLCAwLCAKKyAgICAwLCA2NDI5NywgNzQ3OTksIDkyNDQyLCA3NDE0MCwgMCwgNTM3MywgMCwgOTgzODc3LCAzNzYyLCAxMDAxNSwgMTIwNjcyLCAKKyAgICAxMTkyMzIsIDAsIDQxNTkwLCAwLCA3MDA5OCwgMzc4MCwgNzQ4NSwgNTc3OSwgMCwgNDIwMzcsIDAsIDM5MDYsIDEyMzQ5LCAKKyAgICAwLCA4MzI2LCAwLCA2NTQ5OCwgMzc2MywgNjk4MywgNTYxOCwgMCwgMzc3OSwgMCwgNDM2MTMsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDI4MCwgNzQ1NTgsIDEyNzMzMiwgNjgxMzgsIDEzMDcyLCAxODk0LCAwLCAwLCA2NTQ3OCwgNDMzMTAsIDcyMzEsIDAsIAorICAgIDExNzczLCAwLCAwLCAwLCAwLCAyNTUxLCAwLCA2NDUzLCAxMDIwMCwgNjIzNSwgOTgzNzQzLCAxMTkyMzcsIDAsIDEyODgwNSwgCisgICAgNDQ3MCwgMTE4MjYsIDkxNzU1NywgNzc4MCwgNTM2OSwgMTE4OTU4LCA1MjQ5LCAwLCA1MzY3LCA4NzU2LCAxMjcxNDMsIDAsIAorICAgIDUzNzcsIDEyMDU4NSwgNjgxNDMsIDE2ODgsIDc4MjQ1LCA5ODMzNDgsIDY5Njg1LCA5ODM3NDcsIDAsIDAsIDQ0MDIwLCAKKyAgICA2ODA4LCA0MTMxOSwgMTMwMCwgMTA2NTAsIDQxNjkyLCA2NDUwNSwgMjI5MCwgMCwgMTE5NjI0LCAxNDY1LCAxMDg1MCwgCiAgICAgMzk0MywgMCwgNDEyMDUsIDQxMzE1LCAxMTg5NjEsIDAsIDAsIDUzNTIsIDAsIDAsIDg4MzksIDQxMzE0LCA3Mzg0LCA3Nzg1LCAKICAgICA0MTIwNCwgMTI3MzIyLCA0MTIwOSwgNjk2MzcsIDkyMjQxLCA0MzYwNywgMCwgMCwgNTQyMCwgMzg5NywgMTAxMzQsIDAsIAogICAgIDc0NDE3LCA0MDE4LCA3MTUwLCA2ODEyNywgMCwgMCwgMCwgMCwgMTI3NTI2LCAyNTYxLCA2ODYyMSwgMzU0MiwgNzE0OCwgCiAgICAgMTIwNzYsIDc5NTEsIDY4MTUyLCAxMTg4NTcsIDUzMDMsIDYyNzYsIDE3MDYsIDAsIDc4NzUxLCA3MTQ2LCAwLCA2NTE1MCwgCi0gICAgNDE4MTksIDAsIDczOTUxLCAxMDg0NywgNDE4MjIsIDk5ODUsIDg2MCwgMCwgMTA1MDYsIDAsIDY5NjQxLCAxMDc1MywgCisgICAgNDE4MTksIDAsIDczOTUxLCAxMDg0NywgNDE4MjIsIDk5ODUsIDg2MCwgMCwgMTA1MDYsIDk4MzQyNywgNjk2NDEsIDEwNzUzLCAKICAgICAxMDgzMCwgMCwgNjE1LCA2NDQ5MCwgNzU3NCwgOTI2MTcsIDc3OTIyLCAwLCAxMjkwOSwgNDMwMTYsIDY0NTU5LCAxMjcwMjgsIAotICAgIDAsIDAsIDAsIDIwMjAsIDAsIDQwMjIsIDEyODc4MywgMCwgNzc5MjMsIDAsIDQxNjkxLCAwLCAwLCA3NDMyOSwgMCwgCi0gICAgNjQ2MjIsIDkwNzAsIDAsIDY4NDExLCAzOTExLCA0MjgyOSwgNDMxMjIsIDEwMzMsIDc0NDQwLCAwLCA3MDAwLCAzOTA0LCAwLCAKLSAgICAxMjgxOTgsIDAsIDExODkzMSwgMTE5NjMwLCAxMzEyMywgMTA4NDYsIDM0NTAsIDEyNzM2MCwgNzM5NywgMTE4ODA3LCAwLCAKLSAgICA0Mjc3OCwgMTAwMDAsIDQxMDg4LCA0NDksIDAsIDM3NzcsIDY4NDU4LCAwLCA5NjM2LCAwLCAxMDczOCwgNjk2MzQsIDkzNjcsIAotICAgIDU5MywgNDEwODUsIDM5OTksIDY1MjI2LCA0MTcxMywgMTI3NjQsIDAsIDY0NDA5LCAzNTk2LCAwLCAwLCA5NzYzLCAKKyAgICAwLCAwLCA2Nzk5NiwgMjAyMCwgMCwgNDAyMiwgMTI4NzgzLCAwLCA3NzkyMywgMTI2NTkzLCA0MTY5MSwgMCwgMCwgNzQzMjksIAorICAgIDAsIDY0NjIyLCA5MDcwLCAwLCA2ODQxMSwgMzkxMSwgNDI4MjksIDQzMTIyLCAxMDMzLCA3NDQ0MCwgMCwgNzAwMCwgMzkwNCwgCisgICAgMCwgMTI4MTk4LCAwLCAxMTg5MzEsIDExOTYzMCwgMTMxMjMsIDEwODQ2LCAzNDUwLCAxMjczNjAsIDczOTcsIDExODgwNywgCisgICAgMCwgNDI3NzgsIDEwMDAwLCA0MTA4OCwgNDQ5LCAwLCAzNzc3LCA2ODQ1OCwgMCwgOTYzNiwgMCwgMTA3MzgsIDY5NjM0LCAKKyAgICA5MzY3LCA1OTMsIDQxMDg1LCAzOTk5LCA2NTIyNiwgNDE3MTMsIDEyNzY0LCAwLCA2NDQwOSwgMzU5NiwgMCwgMCwgOTc2MywgCiAgICAgMTIwMjgwLCA5MjE5MiwgMTIzNDcsIDEyNCwgMTI5ODEsIDQxMTI3LCAyMDkyLCA5MjY4NywgMCwgMCwgMCwgMTA4MjAsIAotICAgIDQzOTg3LCAwLCAwLCAxNzY5LCA0MTcxNSwgMjQ2MywgNzg0ODksIDAsIDEyNzcwLCAwLCAxNTM4LCAwLCA0MzEyNCwgMCwgCi0gICAgMTk1MDU4LCA3Nzk1LCAxMjAzMDAsIDAsIDQ4MjgsIDEyNTgsIDEyNzgwMiwgMjAwNiwgMCwgMCwgOTQ5OCwgMTI3MDMyLCAKKyAgICA0Mzk4NywgMCwgMCwgMTc2OSwgNDE3MTUsIDI0NjMsIDc4NDg5LCAwLCAxMjc3MCwgMTI2NTAwLCAxNTM4LCAwLCA0MzEyNCwgCisgICAgMCwgMTk1MDU4LCA3Nzk1LCAxMjAzMDAsIDAsIDQ4MjgsIDEyNTgsIDEyNzgwMiwgMjAwNiwgMCwgMCwgOTQ5OCwgMTI3MDMyLCAKICAgICAxMjcwMzMsIDEyMDI4OSwgMTIwMjg4LCAzOTM5LCAxMjAyOTAsIDg4NDYsIDg5NDMsIDEyMDI4NywgMTIwMjg2LCAyNjUwLCAKICAgICA0NDkxLCAxOTYxLCA0MjYwMiwgMTE1MjUsIDEyMDI5MiwgMTk1OSwgMTIwMjk0LCA1NTIyOCwgMTE3NzQsIDQxMDE2LCAwLCAKICAgICA2ODY3NSwgMTI4MDU0LCAxNTExLCA5MzI0LCA3ODIxMSwgMTA1MTksIDY2MzMxLCAzNDU0LCAxOTkzMCwgMCwgNDEwMTksIDAsIAogICAgIDAsIDY1MjkyLCA2ODIyLCAxMjg2MiwgMCwgMCwgNDIxNDMsIDQxODI4LCA3ODIwNywgNjU1MzEsIDc4MjA4LCAxMTg4NzksIAotICAgIDU1MjIzLCAwLCAwLCA0MTgyNiwgODg2NSwgNjQwMiwgMCwgMTMyNzksIDc5MTcsIDEyMDM0MCwgMCwgNzczMywgMCwgNDk5OCwgCi0gICAgMCwgOTIzMzIsIDQxOTUwLCAwLCA0MjY4LCAwLCAwLCAwLCA0MDEzLCAwLCAxMDg4MSwgMCwgMCwgMCwgNzQ3ODgsIDIwMTQsIAotICAgIDAsIDAsIDk3NjUsIDAsIDAsIDAsIDE5NTA1OSwgNzgzNTcsIDY1MjgxLCAxMjc4MjUsIDEwOTQ5LCAwLCAwLCAwLCAyMDE1LCAKLSAgICAwLCAwLCAwLCA2NjMxOCwgNDMyMzMsIDAsIDQyNTE3LCAwLCAwLCAwLCAxMjY5OCwgODA5NCwgMTAxMzUsIDY1OTA5LCAKLSAgICA2NDc0LCA3OTQsIDAsIDEyNjU2LCAxMjgxMjIsIDExOTM1MywgMTI4MjcwLCAxNjY1LCAwLCA0ODMzLCAwLCAxMTkzNTEsIAotICAgIDEyNzM2NywgMCwgMTg5LCAxMjYxMSwgMCwgMCwgMjg1OSwgNDgzOCwgMCwgNDgzNCwgNjUwNzgsIDAsIDAsIDQ4MzcsIAotICAgIDEyNzA2MSwgNzcwLCAwLCA4MTEsIDAsIDQxMDQyLCA5MTc1NTEsIDQxMzE4LCA2NDQyNywgMCwgMCwgNzg4NDgsIDM4OTUsIAotICAgIDAsIDc0MzQxLCAzOTc2LCAwLCA0Mjg1OSwgMTAxOTMsIDMxMTYsIDc3NDcsIDAsIDAsIDAsIDAsIDAsIDQzNjg2LCA3ODg0NiwgCi0gICAgNDE4NzcsIDAsIDI4NzEsIDY0NjE0LCAxMjg3ODUsIDk5OSwgMCwgNjM0NSwgNDE4NzYsIDI2NjMsIDIwMTcsIDAsIDAsIAotICAgIDExMDQwLCAxMDE1MCwgMCwgNjQzMDgsIDE1MjIsIDU5NywgNDc3NSwgMTI1NTUsIDEyNTcxLCAxMjU1MCwgMTI1ODMsIAotICAgIDEyNTYwLCAyMDE5LCAxMjU1NiwgMTI1ODQsIDMwOTIsIDAsIDEyNTYyLCA0NzgzLCAxMjU2NiwgMTI1NjksIDEyNTU0LCAwLCAKLSAgICAxMDgxMiwgNzg4NTEsIDAsIDAsIDMwNzgsIDE0MDIsIDAsIDEyODI3NSwgMCwgMCwgMTE5MjQ4LCAzOTQsIDMwODgsIDAsIAotICAgIDkyMTcyLCAwLCAzOTkxLCA2NDM5MSwgMCwgMCwgNDI0LCA2NjMyOCwgMTk5OSwgNjk2NTksIDczOTE0LCAwLCAwLCAwLCAwLCAKLSAgICA0MjIzMSwgODI0NiwgMCwgMCwgMCwgNDE4NDAsIDAsIDIzNzcsIDEyOTgsIDY0MDExLCAxMjU3MiwgMTEzMTgsIDEyNTU3LCAKLSAgICAxMjU1OSwgMTI1NzAsIDg0ODgsIDEwMDMsIDIzNzMsIDk0NDYsIDc0ODEsIDk0NDgsIDQ4LCAwLCA5NDgwLCA0ODEsIDAsIAotICAgIDk0MzgsIDk0MzksIDk0NDAsIDk0NDEsIDg0NjUsIDk0NDMsIDk0NDQsIDk0NDUsIDk0MzAsIDk0MzEsIDk0MzIsIDk0MzMsIAotICAgIDk0MzQsIDk0MzUsIDM5ODQsIDk0MzcsIDAsIDAsIDk0MjQsIDk0MjUsIDk0MjYsIDk0MjcsIDk0MjgsIDk0MjksIDY0NzU4LCAKLSAgICAyMzYyLCA5NjU1LCAwLCAyMDA0LCA5MDk2LCA5NzgyLCAxMjg4NDgsIDkxNzIsIDEyODU0NSwgMTk5NjUsIDAsIDU5NTUsIAotICAgIDY3NjY2LCAxMTA4LCAwLCA3NDc3MywgMCwgMCwgNjQ3ODIsIDM5MjYsIDkyNDQ4LCA2NTIxMCwgODc5OCwgMCwgOTIxNjUsIAotICAgIDEzOTIsIDAsIDAsIDEyNzM2NCwgMTA2MDYsIDgwNjUsIDExODgwNSwgMTAzNTMsIDEwNDE3LCAwLCAwLCA2NDUyNCwgCi0gICAgOTI0MTgsIDQwMTksIDAsIDAsIDQzMjgwLCA4MjE5LCA2ODQwMiwgMTgxMiwgMCwgMCwgMCwgMCwgNDI0MTAsIDc0NDQ4LCAKLSAgICAxMTkxMzIsIDYwNTQsIDEwNjk3LCAzMTY5LCA0MjI5NywgNDIzMjIsIDEwNjQyLCAzOTA5LCA5OTUwLCAwLCAxMjgxMzksIDAsIAotICAgIDY4Njc4LCAwLCAwLCAxMDQ5LCAwLCA2NTcwNywgMjMwNCwgNDE4MDYsIDkyMzI2LCA0MjMzNiwgMzkyMSwgMCwgMTE3NzUsIAotICAgIDY0NzYwLCAxMTc2NiwgMTAzOCwgNDIzMDMsIDk4MjMsIDEyNzI3OCwgNjkyMzYsIDQwMDgsIDY0MDA0LCA4NzczLCAxMDczMywgCi0gICAgMzYsIDAsIDUxNTMsIDQxODA1LCAwLCA3MzczNSwgNzYzLCA0MTgwOCwgNjQ5MTAsIDAsIDIwMDksIDAsIDAsIDEyNzE0MiwgCi0gICAgOTY0MCwgMTE5OTUxLCAwLCAxMjA2OTUsIDg2MjEsIDAsIDEyODUyLCAzMDMxLCAwLCA2NDM2MSwgMCwgMTgyLCAxOTQ3MTgsIAotICAgIDkyNzE2LCA5MjU5OCwgMTE5OTUwLCAwLCA5MDU4LCAzNjYsIDAsIDk4OTIsIDU5NjksIDExNzU0LCAxMDg0OCwgNDU3MCwgCi0gICAgNjUzMDEsIDQ0MDEzLCA0MjU1LCAwLCAxMDEwMiwgNDExODksIDQwMDMsIDQxMDI2LCA2ODEwOSwgMTMyOTMsIDQxMTkyLCAKLSAgICA2OTYzNSwgMCwgNDIyNTEsIDAsIDQyNTM0LCA2NTE3OSwgMTEyODcsIDYxMjgsIDAsIDExMDM0LCAxMDkyMywgNjQ0MjMsIDAsIAotICAgIDY1NTA2LCAwLCA2NTg2MSwgNzQwODMsIDkyNjAwLCA5OTMyLCAwLCA5MjQyMywgMTE5OTU1LCAwLCA5ODE3LCAwLCAKLSAgICAxMjAxNDAsIDAsIDEyMTE3LCA2NjU4NiwgNDE4MywgMTA1NDAsIDY2MjUwLCA5MDYzLCAxMjcwNDUsIDAsIDExOTk1NCwgMCwgCi0gICAgMTI4OTcsIDM3OTIsIDIwMTEsIDAsIDYwNjUsIDQzMTYwLCAwLCAxOTQ3MTUsIDg2OTIsIDQxMTg2LCA0MTgxNiwgNDEwMjMsIAotICAgIDQxODE4LCA0MTE4NywgMTE2NTksIDc5MjIsIDEyNjE0LCAyMDA1LCA4NTIzLCA3ODAwMiwgMCwgNzUxMywgMTg2MywgNDcxMCwgCi0gICAgMCwgNTk1NiwgNzYyMSwgNzgwMDYsIDkyNjI0LCA0NzA1LCA3MTYsIDc4MDA0LCAwLCA0NzA0LCAxMjAwNDAsIDEyMDI3MCwgCi0gICAgNDIyNDEsIDE2MSwgNDM5NzcsIDc0NTQ2LCA2NjIxNCwgNDcwNiwgMCwgMCwgNDI2NzIsIDQ3MDksIDEwNjgwLCAwLCAKLSAgICA0MzI5MywgMTE5OTQ0LCAwLCAxMTkxNjQsIDEyMDMyOCwgOTI0NjcsIDAsIDE3MDAsIDExOTIyMywgMCwgMCwgMTI4MTE5LCAKLSAgICA0MDA0LCAwLCAxMDk2OCwgNDMyOTYsIDAsIDg1MDYsIDAsIDAsIDEyNjk5NiwgMTAwNSwgOTM3LCA3ODIxNiwgNDczNCwgCi0gICAgMjg3MCwgMCwgNzgyMTgsIDAsIDc0NjMsIDQ3MjksIDAsIDIzNSwgMTM4NCwgNDcyOCwgMCwgMTIwNDIwLCA5MjQ5MCwgCi0gICAgMTIwMzMxLCA4MTA5LCA0MzEwNSwgMCwgNDczMCwgNDQ3LCAxMzE4NiwgMTUxMywgNDczMywgMTIwNDE1LCAwLCAwLCAKLSAgICA0MjUyNywgMTI5MTEsIDQzNDI3LCAxMzgzLCA4NTY1LCAyNDY5LCAxMjAwMjQsIDY2OTAsIDYxNTYsIDY4MTE3LCA0MzQzOSwgCi0gICAgNzk5MywgNDI4OCwgMTIwNDE2LCAyNjc0LCAxMzIzOCwgMTE5MjIsIDAsIDEyMDMzMCwgMzUxMCwgMTMyMzQsIDAsIAotICAgIDEyMDQwNywgNTYwNSwgNDIwOTUsIDExMzY0LCAwLCAxMzgwLCA2NTYxNywgMTIwMjUzLCAxMjAyNjEsIDEzMTk2LCAxMzE5NywgCi0gICAgMTIwMzA5LCAxMjA2ODIsIDk0OTUsIDExOTM0NiwgMCwgNTk1OSwgMCwgNzM5NzYsIDEyMDMwNSwgNDMzNzEsIDY5NDEsIAotICAgIDExOTM0OSwgMTMyMDUsIDEzMjExLCA1ODAxLCAxMjc2OSwgNjU5MDUsIDQxNjk3LCAxMjgzLCAxMjAzMDIsIDQ3NzksIDAsIAotICAgIDM3MTksIDQwMDYsIDAsIDE5OTU3LCAxMjg3NzMsIDIwMjEsIDExOTMzMiwgMTIwNjk5LCAxMTkxNTAsIDQzMDI4LCA2NTQ5MywgCi0gICAgNDE4MzgsIDM4NzUsIDU5NjIsIDY0MzQxLCA5MjYxNiwgOTgxNCwgNDM0NTcsIDU4MjcsIDMzMTQsIDc3ODcsIDc4MjM0LCAKLSAgICA2NTQ5NCwgNjgxNTMsIDAsIDAsIDEyMDYzNiwgNjQ1MzEsIDEyMDY5MiwgMTk0NjI2LCAwLCAwLCA2NjMxNiwgNjU0NjcsIAotICAgIDU3NzEsIDQxMjk4LCAwLCA5NzQyLCA1MjEsIDAsIDEwODAwLCAwLCA4NDA0LCAxOTQ2MjUsIDQ4MywgNzA5NiwgNzA4OSwgCi0gICAgNjYzMjMsIDkyOCwgMCwgMCwgMTE5MDE4LCAxMDU5OSwgMTE1ODYsIDM5ODksIDEwOTcxLCAwLCA2NTc4MiwgOTg0MSwgCi0gICAgODg0MywgMTIxNDUsIDkyNDcwLCAxMDA3NCwgNzg1NDgsIDAsIDM3NjksIDAsIDAsIDAsIDAsIDk1NzMsIDAsIDY1MjkwLCAKLSAgICA4ODQ5LCAwLCA2NTg1NSwgNjUxMTIsIDE3OTYsIDEyMDUwNSwgMCwgNjk2NjUsIDgxNjQsIDQxMzAxLCAzNTAyLCAwLCAKLSAgICA3Mzg4LCAxMDYyMSwgNzM4MzgsIDc4NTUzLCA1ODI1LCAxMzAwNywgNjgxNjUsIDAsIDEyMDQ1NywgMTI2NjEsIDc2MDgsIAotICAgIDEwMzU0LCAxMDQxOCwgNDI0MTEsIDIwMjIsIDAsIDE0MDksIDEyMTk1LCA0MDAxLCAzMTEyLCAxMDgyNCwgMTIwNjM5LCAKLSAgICAxMzkwLCAwLCAwLCA0MjEsIDQzNTM2LCA1ODQ2LCAxMjAxMjAsIDQxMzAsIDEyNzc3NSwgNzU5NSwgNDI1ODgsIDc2MDAsIAotICAgIDEyMDEyMSwgNjYwMzUsIDAsIDAsIDY1ODUxLCA0MjYwNywgMTI4MTkwLCA5MjQwMywgMzE2OCwgMCwgNDIxMzQsIDAsIAotICAgIDIzNzAsIDI4NDYsIDkyNjA1LCAwLCAwLCAxMjAxMzIsIDAsIDE4MzYsIDAsIDAsIDkyNTU4LCAzNzQwLCA5MjU0NywgNjI5MCwgCisgICAgNTUyMjMsIDAsIDEyODA3MSwgNDE4MjYsIDg4NjUsIDY0MDIsIDAsIDEzMjc5LCA3OTE3LCA3NDc1NSwgMCwgNzczMywgMCwgCisgICAgNDk5OCwgOTgzODg3LCA5MjMzMiwgNDE5NTAsIDAsIDQyNjgsIDAsIDAsIDcwMDYxLCA0MDEzLCAwLCAxMDg4MSwgMCwgMCwgCisgICAgMCwgNzQ3ODgsIDIwMTQsIDAsIDAsIDk3NjUsIDAsIDAsIDAsIDE5NTA1OSwgNzgzNTcsIDY1MjgxLCAxMjc4MjUsIDEwOTQ5LCAKKyAgICAwLCAwLCAwLCAyMDE1LCAwLCAwLCAwLCA2NjMxOCwgNDMyMzMsIDAsIDQyNTE3LCAwLCAwLCAwLCAxMjY5OCwgODA5NCwgCisgICAgMTAxMzUsIDY1OTA5LCA2NDc0LCA3OTQsIDAsIDEyNjU2LCAxMjgxMjIsIDExOTM1MywgMTI4MjcwLCAxNjY1LCAwLCA0ODMzLCAKKyAgICA5ODMwNTMsIDExOTM1MSwgMTI3MzY3LCAwLCAxODksIDEyNjExLCAwLCAwLCAyODU5LCA0ODM4LCAwLCA0ODM0LCA2NTA3OCwgCisgICAgMCwgMCwgNDgzNywgMTI3MDYxLCA3NzAsIDAsIDgxMSwgMCwgNDEwNDIsIDkxNzU1MSwgNDEzMTgsIDY0NDI3LCAwLCAKKyAgICAxMjgyMDgsIDc4ODQ4LCAzODk1LCAwLCA3NDM0MSwgMzk3NiwgMCwgNDI4NTksIDEwMTkzLCAzMTE2LCA3NzQ3LCAwLCAwLCAKKyAgICAwLCAwLCAwLCA0MzY4NiwgNzg4NDYsIDQxODc3LCAwLCAyODcxLCA2NDYxNCwgMTI4Nzg1LCA5OTksIDAsIDYzNDUsIAorICAgIDQxODc2LCAyNjYzLCAyMDE3LCAwLCAwLCAxMTA0MCwgMTAxNTAsIDAsIDY0MzA4LCAxNTIyLCA1OTcsIDQ3NzUsIDEyNTU1LCAKKyAgICAxMjU3MSwgMTI1NTAsIDEyNTgzLCAxMjU2MCwgMjAxOSwgMTI1NTYsIDEyNTg0LCAzMDkyLCAwLCAxMjU2MiwgNDc4MywgCisgICAgMTI1NjYsIDEyNTY5LCAxMjU1NCwgMCwgMTA4MTIsIDc4ODUxLCAwLCAwLCAzMDc4LCAxNDAyLCAwLCAxMjgyNzUsIDAsIDAsIAorICAgIDExOTI0OCwgMzk0LCAzMDg4LCAwLCA5MjE3MiwgMCwgMzk5MSwgNjQzOTEsIDAsIDEyODUyNCwgNDI0LCA2NjMyOCwgMTk5OSwgCisgICAgNjk2NTksIDczOTE0LCAwLCAwLCAwLCAwLCA0MjIzMSwgODI0NiwgMCwgMCwgMCwgNDE4NDAsIDk4MzYwOSwgMjM3NywgCisgICAgMTI5OCwgNjQwMTEsIDEyNTcyLCAxMTMxOCwgMTI1NTcsIDEyNTU5LCAxMjU3MCwgNzQ3OSwgMTAwMywgMjM3MywgOTQ0NiwgCisgICAgNzQ4MSwgOTQ0OCwgNDgsIDAsIDk0ODAsIDQ4MSwgMCwgOTQzOCwgOTQzOSwgOTQ0MCwgOTQ0MSwgODQ2NSwgOTQ0MywgCisgICAgOTQ0NCwgOTQ0NSwgOTQzMCwgOTQzMSwgOTQzMiwgOTQzMywgOTQzNCwgOTQzNSwgMzk4NCwgOTQzNywgMCwgMCwgOTQyNCwgCisgICAgOTQyNSwgOTQyNiwgOTQyNywgOTQyOCwgOTQyOSwgNjQ3NTgsIDIzNjIsIDk2NTUsIDAsIDIwMDQsIDkwOTYsIDk3ODIsIAorICAgIDEyODg0OCwgOTE3MiwgMTI4NTQ1LCAxOTk2NSwgMCwgNTk1NSwgNjc2NjYsIDExMDgsIDAsIDc0NzczLCAwLCAwLCA2NDc4MiwgCisgICAgMzkyNiwgOTI0NDgsIDY1MjEwLCA4Nzk4LCAwLCA5MjE2NSwgMTM5MiwgMCwgMCwgMTI3MzY0LCAxMDYwNiwgODA2NSwgCisgICAgMTE4ODA1LCAxMDM1MywgMTA0MTcsIDAsIDAsIDY0NTI0LCA5MjQxOCwgNDAxOSwgMCwgOTgzMjgwLCA0MzI4MCwgODIxOSwgCisgICAgNjg0MDIsIDE4MTIsIDExOTk2MywgOTgzNjgzLCAwLCAxMjY0ODgsIDQyNDEwLCA3NDQ0OCwgMTE5MTMyLCA2MDU0LCAKKyAgICAxMDY5NywgMzE2OSwgNDIyOTcsIDQyMzIyLCAxMDY0MiwgMzkwOSwgOTk1MCwgMCwgMTI4MTM5LCA5ODMyNTMsIDY4Njc4LCAKKyAgICAwLCAwLCAxMDQ5LCAwLCA2NTcwNywgMjMwNCwgNDE4MDYsIDkyMzI2LCA0MjMzNiwgMzkyMSwgMCwgMTE3NzUsIDY0NzYwLCAKKyAgICAxMTc2NiwgMTAzOCwgNDIzMDMsIDk4MjMsIDEyNzI3OCwgNjkyMzYsIDQwMDgsIDY0MDA0LCA4NzczLCAxMDczMywgMzYsIDAsIAorICAgIDUxNTMsIDQxODA1LCAwLCA3MzczNSwgNzYzLCA0MTgwOCwgNjQ5MTAsIDk4MzEzMCwgMjAwOSwgMCwgMCwgMTI3MTQyLCAKKyAgICA5NjQwLCAxMTk5NTEsIDAsIDEyMDY5NSwgODYyMSwgMTIwNTIzLCAxMjg1MiwgMzAzMSwgOTgzMDUwLCA2NDM2MSwgMCwgCisgICAgMTgyLCAxOTQ3MTgsIDkyNzE2LCA5MjU5OCwgMTE5OTUwLCA0MjYxMywgOTA1OCwgMzY2LCAwLCA5ODkyLCA1OTY5LCAKKyAgICAxMTc1NCwgMTA4NDgsIDQ1NzAsIDY1MzAxLCA0NDAxMywgNDI1NSwgMTI3ODg5LCAxMDEwMiwgNDExODksIDQwMDMsIAorICAgIDQxMDI2LCA2ODEwOSwgMTMyOTMsIDQxMTkyLCA2OTYzNSwgMCwgNDIyNTEsIDAsIDQyNTM0LCA2NTE3OSwgMTEyODcsIAorICAgIDYxMjgsIDAsIDExMDM0LCAxMDkyMywgNjQ0MjMsIDAsIDY1NTA2LCAwLCA2NTg2MSwgNzQwODMsIDkyNjAwLCA5OTMyLCAwLCAKKyAgICA5MjQyMywgMTE5OTU1LCAwLCA5ODE3LCAwLCAxMjAxNDAsIDAsIDEyMTE3LCA2NjU4NiwgNDE4MywgMTA1NDAsIDY2MjUwLCAKKyAgICA5MDYzLCAxMjcwNDUsIDAsIDExOTk1NCwgMCwgMTI4OTcsIDM3OTIsIDIwMTEsIDAsIDYwNjUsIDQzMTYwLCAwLCAxOTQ3MTUsIAorICAgIDg2OTIsIDQxMTg2LCA0MTgxNiwgNDEwMjMsIDQxODE4LCA0MTE4NywgMTE2NTksIDc5MjIsIDEyNjE0LCAyMDA1LCA4NTIzLCAKKyAgICA3ODAwMiwgMCwgNzUxMywgMTg2MywgNDcxMCwgMCwgNTk1NiwgNzYyMSwgNzgwMDYsIDkyNjI0LCA0NzA1LCA3MTYsIAorICAgIDc4MDA0LCAwLCA0NzA0LCAxMjAwNDAsIDEyMDI3MCwgNDIyNDEsIDE2MSwgNDM5NzcsIDc0NTQ2LCA2NjIxNCwgNDcwNiwgMCwgCisgICAgNjk5MTQsIDQyNjcyLCA0NzA5LCAxMDY4MCwgMTE5MDY1LCA0MzI5MywgMTE5OTQ0LCAwLCAxMTkxNjQsIDEyMDMyOCwgCisgICAgOTI0NjcsIDEwMTg3LCAxNzAwLCAxMTkyMjMsIDAsIDAsIDEyODExOSwgNDAwNCwgMCwgMTA5NjgsIDQzMjk2LCA5ODM2MzMsIAorICAgIDg1MDYsIDAsIDAsIDEyNjk5NiwgMTAwNSwgOTM3LCA3ODIxNiwgNDczNCwgMjg3MCwgMCwgNzgyMTgsIDk4MzEwOSwgNzQ2MywgCisgICAgNDcyOSwgMCwgMjM1LCAxMzg0LCA0NzI4LCAwLCAxMjA0MjAsIDkyNDkwLCA3NDQ0OSwgODEwOSwgNDMxMDUsIDk4MzE3NCwgCisgICAgNDczMCwgNDQ3LCAxMzE4NiwgMTUxMywgNDczMywgMTIwNDE1LCAwLCAwLCA0MjUyNywgMTI5MTEsIDQzNDI3LCAxMzgzLCAKKyAgICA4NTY1LCAyNDY5LCAxMjAwMjQsIDY2OTAsIDYxNTYsIDY4MTE3LCA0MzQzOSwgNzk5MywgNDI4OCwgMTIwNDE2LCAyNjc0LCAKKyAgICAxMzIzOCwgMTE5MjIsIDAsIDEyMDMzMCwgMzUxMCwgMTMyMzQsIDAsIDEyMDQwNywgNTYwNSwgNDIwOTUsIDExMzY0LCAwLCAKKyAgICAxMzgwLCA2NTYxNywgMTIwMjUzLCAxMjAyNjEsIDEzMTk2LCAxMzE5NywgMTIwMzA5LCAxMjA2ODIsIDk0OTUsIDExOTM0NiwgCisgICAgMCwgNTk1OSwgNjc5ODQsIDczOTc2LCAxMjAzMDUsIDQzMzcxLCA2OTQxLCAxMTkzNDksIDEzMjA1LCAxMzIxMSwgNTgwMSwgCisgICAgMTI3NjksIDY1OTA1LCA0MTY5NywgMTI4MywgMTIwMzAyLCA0Nzc5LCAwLCAzNzE5LCA0MDA2LCA5ODM1NjksIDE5OTU3LCAKKyAgICAxMjg3NzMsIDIwMjEsIDExOTMzMiwgMTIwNjk5LCAxMTkxNTAsIDQzMDI4LCA2NTQ5MywgNDE4MzgsIDM4NzUsIDU5NjIsIAorICAgIDY0MzQxLCA5MjYxNiwgOTgxNCwgNDM0NTcsIDU4MjcsIDMzMTQsIDc3ODcsIDc4MjM0LCA2NTQ5NCwgNjgxNTMsIDAsIDAsIAorICAgIDEyMDYzNiwgNjQ1MzEsIDEyMDY5MiwgMTk0NjI2LCAwLCAwLCA2NjMxNiwgNjU0NjcsIDU3NzEsIDQxMjk4LCA5ODM3ODUsIAorICAgIDk3NDIsIDUyMSwgMCwgMTA4MDAsIDkyMjIyLCA4NDA0LCAxOTQ2MjUsIDQ4MywgNzA5NiwgNzA4OSwgNjYzMjMsIDkyOCwgMCwgCisgICAgMCwgMTE5MDE4LCAxMDU5OSwgMTE1ODYsIDM5ODksIDEwOTcxLCA0Mzc0OCwgNjU3ODIsIDk4NDEsIDg4NDMsIDEyMTQ1LCAKKyAgICA5MjQ3MCwgMTAwNzQsIDc4NTQ4LCAwLCAzNzY5LCAwLCAwLCAwLCA5ODMxMDcsIDk1NzMsIDAsIDY1MjkwLCA4ODQ5LCAwLCAKKyAgICA2NTg1NSwgNjUxMTIsIDE3OTYsIDEyMDUwNSwgMCwgNjk2NjUsIDgxNjQsIDQxMzAxLCAzNTAyLCAwLCA3Mzg4LCAxMDYyMSwgCisgICAgNzM4MzgsIDc4NTUzLCA1ODI1LCAxMzAwNywgNjgxNjUsIDAsIDEyMDQ1NywgMTI2NjEsIDc2MDgsIDEwMzU0LCAxMDQxOCwgCisgICAgNDI0MTEsIDIwMjIsIDAsIDE0MDksIDEyMTk1LCA0MDAxLCAzMTEyLCAxMDgyNCwgMTIwNjM5LCAxMzkwLCAwLCAwLCA0MjEsIAorICAgIDQzNTM2LCA1ODQ2LCAxMjAxMjAsIDQxMzAsIDEyNzc3NSwgNzU5NSwgNDI1ODgsIDc2MDAsIDEyMDEyMSwgNjYwMzUsIAorICAgIDk4MzkwNCwgMCwgNjU4NTEsIDQyNjA3LCAxMjgxOTAsIDkyNDAzLCAzMTY4LCAwLCA0MjEzNCwgMTE4MzEsIDIzNzAsIAorICAgIDI4NDYsIDkyNjA1LCAwLCAwLCAxMjAxMzIsIDAsIDE4MzYsIDAsIDAsIDkyNTU4LCAzNzQwLCA2OTg0MywgNjI5MCwgCiAgICAgNjUzNzQsIDEyMDQ1MSwgMjM5MCwgMzk0NCwgNjY2MjgsIDEyMDQzNCwgMCwgNjEzNSwgMzExOCwgNzQyNjUsIDExOTA5MywgCi0gICAgMTIwNDQ2LCAwLCAwLCA4MTI3LCA4OTc1LCA2NDczOSwgNzk0MywgMCwgMCwgMTA2MTgsIDI1ODQsIDAsIDAsIDAsIDk5OTgsIAotICAgIDAsIDAsIDAsIDAsIDAsIDYyMDQsIDAsIDAsIDgyNzksIDg3NzYsIDY0OTU0LCA0OTc1LCA3NDgwOSwgMTIwMTMwLCA0MjY3LCAKLSAgICAxNjMxLCA0MjIwNiwgMTI3ODY2LCAwLCAxOTUwNDYsIDY1NzAwLCA2NjU2MiwgMCwgNjQ2NDUsIDAsIDAsIDAsIDEyNTg2LCAKLSAgICAwLCA5MjQyLCAxMjc5MjIsIDAsIDQ1MjMsIDU4NDIsIDEwNDk1LCAzMTIyLCAwLCA3NzkzLCA3ODI3NSwgOTMyOCwgMCwgCi0gICAgNzgzOTMsIDEyNjA0LCAwLCA2NjE1LCA2NzY1MCwgOTIzNDQsIDM5ODYsIDQ0MDI1LCAwLCA4OTEyLCA2NDU1NSwgNzQwOSwgCi0gICAgMCwgMCwgOTU0MSwgNzgyNzYsIDAsIDExMjc1LCA4NTQwLCAxMTQ5OCwgMCwgMCwgNDEwNDAsIDI0NTksIDAsIDEzMDYwLCAKLSAgICA0MTA0MSwgNzQ0MTMsIDAsIDAsIDAsIDY4NDI3LCAxMDQ1MCwgMTI1NTEsIDQxMDQzLCA3MDIwLCAxMjAzNTMsIDM3NjUsIDAsIAotICAgIDAsIDE2MDYsIDEyMDM0OCwgMTIwMzUxLCAzMDkzLCA2ODQzNiwgMCwgMCwgMTIwNjQ5LCAwLCAwLCA0MzEyLCA3NDA5MSwgCi0gICAgMTIwMzM3LCAxMjAzMzYsIDExOTIzLCA0MDIzLCAxMjAzMzMsIDU3NjMsIDEyMDMzNSwgNDgyNywgMTA4OTQsIDEyODEwLCAKLSAgICA2NDQwNiwgMTE4Nzg1LCA0NDU1LCA3NDMyMSwgNDMzLCAxMTk2MjAsIDY2NjYwLCAyNDk5LCAwLCAwLCAwLCAxMTk3MywgCisgICAgMTIwNDQ2LCAwLCAwLCA4MTI3LCA4OTc1LCA2NDczOSwgNzk0MywgOTgzNzM0LCAwLCAxMDYxOCwgMjU4NCwgMCwgMCwgMCwgCisgICAgOTk5OCwgMTI4NTY0LCAwLCAwLCAwLCAwLCA2MjA0LCAwLCAwLCA4Mjc5LCA4Nzc2LCA2NDk1NCwgNDk3NSwgNzAwNzUsIAorICAgIDEyMDEzMCwgNDI2NywgMTYzMSwgNDIyMDYsIDc3OTgzLCAwLCAxOTUwNDYsIDY1NzAwLCA2NjU2MiwgMCwgNjQ2NDUsIDAsIAorICAgIDAsIDEyNjU4OCwgMTI1ODYsIDAsIDkyNDIsIDEyNzkyMiwgMCwgNDUyMywgNTg0MiwgMTA0OTUsIDMxMjIsIDk4Mzc4OCwgCisgICAgNzc5MywgNzgyNzUsIDkzMjgsIDExOTEwNCwgNzgzOTMsIDEyNjA0LCAwLCA2NjE1LCAyMjg1LCA5MjM0NCwgMzk4NiwgCisgICAgNDQwMjUsIDAsIDg5MTIsIDY0NTU1LCA3NDA5LCAwLCA5ODMzNTAsIDk1NDEsIDc4Mjc2LCAwLCAxMTI3NSwgODU0MCwgCisgICAgMTE0OTgsIDAsIDk4MzM0OSwgNDEwNDAsIDI0NTksIDAsIDEzMDYwLCA0MTA0MSwgNzQ0MTMsIDk4MzEzOCwgMCwgMCwgCisgICAgNjg0MjcsIDEwNDUwLCAxMjU1MSwgNDEwNDMsIDcwMjAsIDEyMDM1MywgMzc2NSwgOTgzMzQyLCAwLCAxNjA2LCAxMjAzNDgsIAorICAgIDEyMDM1MSwgMzA5MywgNjg0MzYsIDAsIDk4MzA2MSwgMTE5NjEzLCAwLCAwLCA0MzEyLCA3NDA5MSwgMTIwMzM3LCAKKyAgICAxMjAzMzYsIDExOTIzLCA0MDIzLCAxMjAzMzMsIDU3NjMsIDk0MDE1LCA0ODI3LCAxMDg5NCwgMTI4MTAsIDY0NDA2LCAKKyAgICAxMTg3ODUsIDQ0NTUsIDc0MzIxLCA0MzMsIDExOTYyMCwgNjY2NjAsIDI0OTksIDAsIDAsIDExODgzNywgMTE5NzMsIAogICAgIDEzMDg5LCA0MjkzLCAxMjAzMjksIDQyMjI0LCA0Mjc1OCwgMTIxOTYsIDQyODM3LCA0MjIyNiwgMTE5MzE5LCAwLCAKLSAgICAxMTkxMjYsIDU4MTcsIDEyNzgwNiwgNTUyNzcsIDMxMjAsIDk3OTcsIDAsIDAsIDAsIDEwMzg5LCAwLCAwLCA0ODk1LCAKLSAgICA2NTM1OCwgMCwgNDM1OSwgNTg1LCAyMzgzLCAzNTA5LCAxOTQ5MjAsIDQ4NiwgNDI5MCwgNTc1OCwgMTI3NTQ2LCAwLCAwLCAKLSAgICA3MDA0LCAwLCA2NTg4MCwgMTI3ODg2LCAxMTkwNDgsIDIzODAsIDExMzgwLCAwLCAwLCAyMzc2LCAwLCAxMTkzMjAsIDAsIAotICAgIDUxOTcsIDEyNzA0NiwgMTI3MDQ3LCAxMjcwNDgsIDIzNjYsIDEyNzA1MCwgMTI3MDUxLCAxMjA1NTQsIDEyMDA0NSwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNzQxODgsIDEyMDI0MSwgMCwgMCwgMTIwMDQ3LCAxMjg1NzUsIDAsIDAsIDEyMDA0OSwgMCwgCi0gICAgMTg0NywgMCwgMTAzMzksIDAsIDQyMzg0LCAwLCA0MjI3LCA3NDE1OCwgMCwgOTI1MDEsIDQzMDMyLCAwLCA0MjM2NSwgMCwgCi0gICAgMTI2NzEsIDExMzg0LCAwLCAwLCAwLCA2NDc5NywgMCwgNTgyMCwgMCwgMTIwMDUyLCAxMjAwNjUsIDAsIDEyMDA2NCwgCi0gICAgMTIwNjUwLCA0MjEzNywgOTg5MywgMjc1NCwgMTI2NjQsIDEyMDA2MywgMCwgNzM3NywgMTI3ODY3LCA0MTc5OSwgNjU1MzAsIAotICAgIDE3MTEsIDEyOTg0LCA0MzAzOSwgMzExNCwgNjI1NSwgMCwgMTE4OTM4LCAwLCAxMDg1MywgOTI2LCAwLCA3NDE4NCwgMCwgCi0gICAgMTIwMDU1LCAwLCA0MzE3NSwgMCwgNDMwMzcsIDQxNzk4LCA0MTAzNSwgMTE1ODMsIDEyNzc2OSwgNDE4MDEsIDExOTA4OCwgCi0gICAgMCwgNTIwLCA0MjAwLCAxMjY5OSwgODMzMSwgMCwgMzA5MSwgNDEwMzQsIDEyNzM1MywgMCwgODM2MCwgMCwgNzgwNDQsIAotICAgIDMyMSwgNDIyOSwgNjQ1NDMsIDkxNzk0NiwgNjU1NjMsIDAsIDkxNzk3NCwgMjg2MSwgNDM3OTMsIDEwMDk1LCAwLCA5MTk1LCAKLSAgICA5MjM4NiwgMTg2MSwgMCwgNzM3MzMsIDAsIDAsIDQzMDQxLCAwLCA0Mzc5NCwgMTI4NTMwLCAzODU5LCAxMjE4MSwgNDE2NjAsIAotICAgIDgyMDksIDAsIDczODY3LCAxMjk3MywgMCwgNzQ3NTcsIDEyNzUxNCwgNDE2NTgsIDAsIDAsIDU3NjAsIDAsIDc0MywgNDQxNCwgCisgICAgMTE5MTI2LCA1ODE3LCAxMjc4MDYsIDU1Mjc3LCAzMTIwLCA5Nzk3LCAwLCAwLCAwLCAxMDM4OSwgMTI2NDg1LCAwLCA0ODk1LCAKKyAgICA2NTM1OCwgMCwgNDM1OSwgNTg1LCAyMzgzLCAzNTA5LCA3MDAzNywgNDg2LCA0MjkwLCA1NzU4LCAxMjc1NDYsIDAsIDAsIAorICAgIDcwMDQsIDAsIDY1ODgwLCAxMjc4ODYsIDExOTA0OCwgMjM4MCwgMTEzODAsIDAsIDkzOTk2LCAyMzc2LCAwLCAxMTkzMjAsIAorICAgIDAsIDUxOTcsIDEyNzA0NiwgMTI3MDQ3LCAxMjcwNDgsIDIzNjYsIDEyNzA1MCwgMTI3MDUxLCAxMjA1NTQsIDEyMDA0NSwgMCwgCisgICAgMCwgMCwgOTgzMDg0LCAwLCAwLCAwLCA3NDE4OCwgNzEzNDIsIDk4MzA4NiwgOTgzNTczLCAxMjAwNDcsIDEyODU3NSwgMCwgCisgICAgMCwgMTIwMDQ5LCAwLCAxODQ3LCAwLCAxMDMzOSwgOTgzMzU3LCA0MjM4NCwgMCwgNDIyNywgNzQxNTgsIDAsIDkyNTAxLCAKKyAgICA0MzAzMiwgMCwgNDIzNjUsIDAsIDEyNjcxLCAxMTM4NCwgMCwgOTgzNDU3LCAwLCA2NDc5NywgOTgzMzM3LCA1ODIwLCAKKyAgICA5ODMzMzYsIDEyMDA1MiwgMTIwMDY1LCAwLCAxMjAwNjQsIDEyMDY1MCwgNDIxMzcsIDk4OTMsIDI3NTQsIDEyNjY0LCAKKyAgICAxMjAwNjMsIDAsIDczNzcsIDEyNzg2NywgNDE3OTksIDY1NTMwLCAxNzExLCAxMjk4NCwgNDMwMzksIDMxMTQsIDYyNTUsIAorICAgIDk4MzMzMiwgMTE4OTM4LCAwLCAxMDg1MywgOTI2LCA5ODMzNjEsIDc0MTg0LCA5ODMzNjAsIDEyMDA1NSwgMCwgNDMxNzUsIAorICAgIDAsIDQzMDM3LCA0MTc5OCwgNDEwMzUsIDExNTgzLCAxMjc3NjksIDQxODAxLCAxMTkwODgsIDExOTYwNSwgNTIwLCA0MjAwLCAKKyAgICAxMjY5OSwgODMzMSwgMCwgMzA5MSwgNDEwMzQsIDEyNzM1MywgOTgzNjcyLCA4MzYwLCAwLCA3ODA0NCwgMzIxLCA0MjI5LCAKKyAgICA2NDU0MywgOTE3OTQ2LCA2NTU2MywgMCwgOTE3OTc0LCAyODYxLCA0Mzc5MywgMTAwOTUsIDAsIDkxOTUsIDkyMzg2LCAKKyAgICAxODYxLCAwLCA3MzczMywgMCwgMCwgNDMwNDEsIDAsIDQzNzk0LCAxMjg1MzAsIDM4NTksIDEyMTgxLCA0MTY2MCwgODIwOSwgCisgICAgMCwgNzM4NjcsIDEyOTczLCAwLCA3NDc1NywgMTI3NTE0LCA0MTY1OCwgMCwgMCwgNTc2MCwgMCwgNzQzLCA0NDE0LCAKICAgICAxMjA3NjYsIDAsIDQyNjMyLCA5MTc5NzMsIDY1MTYxLCA3Mzg5NiwgMTI4NTg5LCAwLCAxNDA1LCAxMTkwNjMsIDQzMjIwLCAKICAgICA0MzM0MSwgMCwgMTk5MTksIDAsIDY0NTMyLCA2NTM2NywgNDM3MTAsIDAsIDAsIDM1MTMsIDAsIDExODg4MywgNDMzNDIsIAogICAgIDExOTA2NCwgNjU1MjksIDY1MzY0LCAxMjgxOTcsIDAsIDY0ODUsIDEzOTcsIDAsIDQxOTg2LCA5MjY3OCwgMCwgMCwgCi0gICAgNzQwOTcsIDAsIDc0NzEsIDEyMDc5LCAwLCAxMjY4MiwgNDMyODcsIDkyMzE3LCAwLCAwLCAwLCAwLCAwLCAxMDk5LCAKLSAgICAxMDQ5MCwgMCwgMTA1MDEsIDY1MTgxLCA3NDQ2MywgMCwgNDY0LCA0MTYyNCwgNjUyODMsIDY3NjYzLCA3ODIyMiwgMTM0NiwgCi0gICAgMCwgOTE3NjMxLCA2NDU3MywgNjQ4OTcsIDQyMywgMTgxOCwgNjUxNDQsIDAsIDgyNzIsIDEyNzgxMiwgMTk5MTEsIDQyMTgsIAotICAgIDMwODcsIDY0OTYwLCAxMjcyMzQsIDQzNTY0LCAwLCAwLCA5NTg0LCAxMDQ2NSwgMCwgNzQzNTksIDEyNjI2LCA5MTA2LCAwLCAKLSAgICA0MjY0MiwgMTIwMjMwLCA2NDc1MCwgOTM5MCwgMCwgNDE3OTcsIDAsIDAsIDI2NSwgNDE3OTUsIDY0NjY2LCAwLCA0MzUzMCwgCi0gICAgMjc1MiwgMCwgMCwgMCwgNTksIDAsIDAsIDAsIDkyMzcxLCA3Nzg3MywgNDE4MTAsIDAsIDcwMTAsIDAsIDQxODA5LCAKLSAgICA0MTQ5NSwgMTE5MzY0LCAwLCA0MjI1MiwgNDIyMTMsIDgwMDksIDMzMDUsIDQzMDMzLCA1MTEsIDkyNzAwLCA2NjI1NSwgCi0gICAgMTMxMjcsIDEyMDA2NywgMCwgMCwgMCwgOTE3OTc3LCA2NTkxNSwgMTQwMCwgNDE4MTIsIDEwNjg1LCAxOTQ4NzAsIDIxMDMsIAotICAgIDEwMzg3LCA0NDUzLCA0MzI3NiwgOTE3NzgzLCAxMzE1OSwgMCwgNjQ4MSwgNDEyMTMsIDAsIDAsIDAsIDAsIDQxOTgzLCAKLSAgICA3NDE5OCwgNjYxNywgOTExNiwgMTE5NjU0LCAwLCA0NjIsIDY4MTEwLCAxMDQ5MywgMCwgODEyOSwgMCwgMCwgNzQ0NzEsIAotICAgIDY2NDQsIDExNjU4LCAwLCAxMjgyNDUsIDM0NTIsIDExOTA2LCA5NTgxLCAxMzg1LCAzMDk4LCAwLCAxMTkwMTMsIDQzMzQwLCAKLSAgICAwLCA0MTAzMywgNjQ5MywgNDI2MjYsIDAsIDAsIDExNDI2LCA3Nzg4NywgMTY4MSwgMTE4Nzg5LCAxMjA0LCAzNzU1LCAKLSAgICA2NDY2MSwgNzIzNSwgMTAxNzAsIDM5NjYsIDg5MTEsIDAsIDQxODQxLCA0MzMzOCwgMCwgMCwgNTcyNiwgNjQ5MTUsIAotICAgIDQyMTc1LCAwLCAwLCA0MTQ5NywgNjUwNDQsIDEyMDEwOSwgMjg1MSwgNDMwMTcsIDAsIDAsIDQzNzMsIDc4MDU4LCAwLCAKLSAgICA5NTg3LCAxNzg5LCA2NjcxLCAxMjg4NDAsIDMxMDAsIDAsIDY1MzYwLCAwLCA5MjM2NSwgMCwgNjQ5MjIsIDAsIDgxOTAsIAotICAgIDEyMDgzLCAwLCAwLCA2NTA2LCA2NDMxMiwgNzQzNzQsIDIzNjgsIDAsIDQ0MTksIDAsIDExOTEyNSwgMzQzOSwgMTgyNSwgCi0gICAgMTE5MiwgMTIwMTA2LCA4ODkxLCAzMDgwLCAxMjAyMjgsIDIzNDcsIDU0MzAsIDAsIDg5OTAsIDI4NDgsIDAsIDEyODIyMywgCi0gICAgOTI1MjgsIDI0OSwgMCwgMCwgMCwgMTIwNjU4LCAwLCAwLCA4ODgzLCA5MTc4MDIsIDcyOCwgNjgxNzgsIDk5NSwgMCwgMCwgCi0gICAgNjQ4MjYsIDAsIDkxNzc5OCwgMTI4MzQ4LCAwLCAxOTk0NSwgODA5MSwgNTU4LCAwLCAxMjI3MywgMTk0ODE0LCAwLCAKLSAgICAxMjExMiwgMCwgMCwgMCwgNzQ0MTksIDEyMzM1LCAxMjAxMDQsIDkxNzc5NSwgMzQ0MywgMzEyOSwgMCwgMjEwMiwgNjU0NDUsIAotICAgIDc4MjU4LCA2NDg5MSwgMCwgNzcyNSwgNjUxMDgsIDc4MjU1LCAwLCA4NjI0LCA2OTI0NiwgMTI0NDYsIDQzMjk1LCAwLCAKLSAgICA0MTg5NCwgMCwgNjI3NywgNDE2NzIsIDQxODkzLCAxMDAxMCwgMTI4Njc4LCAzNTQwLCAxMjg2NDksIDgzNSwgMCwgNjk4MTYsIAorICAgIDc0MDk3LCAwLCA3NDcxLCAxMjA3OSwgNjc5OTcsIDEyNjgyLCA0MzI4NywgOTIzMTcsIDAsIDk4MzE0MywgOTgzNjk4LCAwLCAKKyAgICAwLCAxMDk5LCAxMDQ5MCwgMCwgMTA1MDEsIDY1MTgxLCA3NDQ2MywgMCwgNDY0LCA0MTYyNCwgNjUyODMsIDY3NjYzLCAKKyAgICA3ODIyMiwgMTM0NiwgMCwgOTE3NjMxLCA2NDU3MywgNjQ4OTcsIDQyMywgMTgxOCwgNjUxNDQsIDAsIDgyNzIsIDEyNzgxMiwgCisgICAgMTk5MTEsIDQyMTgsIDMwODcsIDY0OTYwLCAxMjcyMzQsIDQzNTY0LCAwLCAwLCA5NTg0LCAxMDQ2NSwgOTgzODkzLCAKKyAgICA3NDM1OSwgMTI2MjYsIDkxMDYsIDAsIDQyNjQyLCAxMjAyMzAsIDY0NzUwLCA5MzkwLCAwLCA0MTc5NywgMCwgMCwgMjY1LCAKKyAgICA0MTc5NSwgNjQ2NjYsIDEyNjUwOCwgNDM1MzAsIDI3NTIsIDAsIDAsIDk4MzQ4NSwgNTksIDAsIDk4MzU5MywgMCwgOTIzNzEsIAorICAgIDc3ODczLCA0MTgxMCwgMCwgNzAxMCwgMCwgNDE4MDksIDQxNDk1LCAxMTkzNjQsIDAsIDQyMjUyLCA0MjIxMywgODAwOSwgCisgICAgMzMwNSwgNDMwMzMsIDUxMSwgOTI3MDAsIDY2MjU1LCAxMzEyNywgMTIwMDY3LCAwLCA3NDM5NywgMTIwMjM1LCA5MTc5NzcsIAorICAgIDY1OTE1LCAxNDAwLCA0MTgxMiwgMTA2ODUsIDE5NDg3MCwgMjEwMywgMTAzODcsIDQ0NTMsIDQzMjc2LCA5MTc3ODMsIAorICAgIDEzMTU5LCAwLCA2NDgxLCA0MTIxMywgMCwgMCwgMCwgMCwgNDE5ODMsIDc0MTk4LCA2NjE3LCA5MTE2LCAxMTk2NTQsIDAsIAorICAgIDQ2MiwgNjgxMTAsIDEwNDkzLCAwLCA4MTI5LCAwLCAwLCA3NDQ3MSwgNjY0NCwgMTE2NTgsIDAsIDEyODI0NSwgMzQ1MiwgCisgICAgMTE5MDYsIDk1ODEsIDEzODUsIDMwOTgsIDAsIDExOTAxMywgNDMzNDAsIDAsIDQxMDMzLCA2NDkzLCA0MjYyNiwgMCwgMCwgCisgICAgMTE0MjYsIDc3ODg3LCAxNjgxLCAxMTg3ODksIDEyMDQsIDM3NTUsIDY0NjYxLCA3MjM1LCAxMDE3MCwgMzk2NiwgODkxMSwgCisgICAgMCwgNDE4NDEsIDQzMzM4LCAwLCAwLCA1NzI2LCA2NDkxNSwgNDIxNzUsIDAsIDAsIDQxNDk3LCA2NTA0NCwgMTIwMTA5LCAKKyAgICAyODUxLCA0MzAxNywgOTgzNTg5LCAwLCA0MzczLCA3ODA1OCwgMCwgOTU4NywgMTc4OSwgNjY3MSwgMTI4ODQwLCAzMTAwLCAKKyAgICAwLCA2NTM2MCwgMCwgOTIzNjUsIDkxNzc4OSwgNjQ5MjIsIDAsIDgxOTAsIDEyMDgzLCAwLCAwLCA2NTA2LCA2NDMxMiwgCisgICAgNzQzNzQsIDIzNjgsIDAsIDQ0MTksIDk4MzgzOCwgMTE5MTI1LCAzNDM5LCAxODI1LCAxMTkyLCAxMjAxMDYsIDg4OTEsIAorICAgIDMwODAsIDEyMDIyOCwgMjM0NywgNTQzMCwgMCwgODk5MCwgMjg0OCwgMCwgMTI4MjIzLCA5MjUyOCwgMjQ5LCAwLCAwLCAwLCAKKyAgICAxMjA2NTgsIDAsIDAsIDg4ODMsIDkxNzgwMiwgNzI4LCA2ODE3OCwgOTk1LCAwLCAwLCA2NDgyNiwgMCwgOTE3Nzk4LCAKKyAgICAxMjgzNDgsIDAsIDE5OTQ1LCA4MDkxLCA1NTgsIDAsIDEyMjczLCAxOTQ4MTQsIDk4Mzg0MSwgMTIxMTIsIDY5OTEyLCAwLCAKKyAgICAwLCA3NDQxOSwgMTIzMzUsIDEyMDEwNCwgOTE3Nzk1LCAzNDQzLCAzMTI5LCAwLCAyMTAyLCA2NTQ0NSwgNzgyNTgsIAorICAgIDY0ODkxLCAwLCA3NzI1LCA2NTEwOCwgNzgyNTUsIDAsIDg2MjQsIDY5MjQ2LCAxMjQ0NiwgNDMyOTUsIDAsIDQxODk0LCAwLCAKKyAgICA2Mjc3LCA0MTY3MiwgNDE4OTMsIDEwMDEwLCAxMjg2NzgsIDM1NDAsIDEyODY0OSwgODM1LCA3MTM0MCwgNjk4MTYsIAogICAgIDExOTg2OCwgNzQ0MDgsIDAsIDczOTU5LCA1NDI2LCA0MjU4LCAwLCAwLCA1NDI0LCAxMjgxMjcsIDgyODMsIDAsIDU0MzQsIAotICAgIDAsIDAsIDE5OTE3LCAxMTQwOCwgMCwgMTE5NDcsIDAsIDE0MDQsIDMwOTUsIDExNDMyLCAxMjgzMDcsIDM0NjQsIDY0ODYsIAotICAgIDQ4MTksIDEyODIzMywgMCwgNTcwLCA4MDk1LCAzNjcyLCAxMTk4NjQsIDE0OTgsIDY3ODY2LCAwLCAwLCA0MzEsIDAsIDAsIAotICAgIDEyODE4MiwgMTI4MDk2LCA2ODE2NywgMCwgMTMwOTYsIDEyODY0MywgMCwgNDM0MDgsIDk1MTYsIDEyODUzOCwgNTI2OCwgCi0gICAgNDIyMzAsIDQyMjIwLCAwLCA0NDUwLCAxMjA1MTEsIDExNTQ3LCA0MzQxNywgMTI4NTQyLCAzNTYsIDM0NzcsIDIyNywgCi0gICAgMTA0ODgsIDY4MjAzLCAzODIsIDExNDE4LCAwLCAwLCAwLCAwLCAwLCAwLCA2NDg0LCAyNTQxLCA2NjAzOSwgMCwgNzg3MTgsIAotICAgIDkyNzIzLCAzNTQ5LCAwLCA5MTEwLCAxMTk2NjUsIDI3NDMsIDAsIDQzMjkwLCAxOTQ4MTIsIDkwOTcsIDAsIDQzMDE1LCAKLSAgICA4NzgyLCAwLCA3NzYsIDI1MjQsIDQyNzA3LCA4NTczLCAwLCAwLCAwLCAwLCA0MjY5NCwgNjQ5NDQsIDg5NTIsIDM4NTYsIAotICAgIDExODgxOCwgMCwgNTg3MiwgNjQ5NSwgMCwgMCwgMCwgOTI1NDMsIDAsIDEyMDczMywgMTI4NDksIDM5NTMsIDE4OTcsIDAsIAotICAgIDY1MDk0LCAxMTk5NCwgNDMzOSwgNzQ1NTYsIDkyNjU0LCA2Nzg0MywgMCwgMCwgMCwgNjg0NzMsIDc0MTA0LCA1MjI4LCAKLSAgICAxMjg4MDQsIDc4NjgsIDQzMTg0LCAwLCAwLCA3Mzk4NiwgNDM0MzgsIDAsIDQzMDIyLCAwLCAxMTYyLCAwLCAyNjcxLCAwLCAKLSAgICAwLCA5MjYzMiwgOTI2MzEsIDExODg2NSwgNDU1MywgNzM4MTEsIDAsIDE5NTAwNSwgMCwgMCwgMTk5MjEsIDc0MzMxLCAKLSAgICAxMTQyNCwgMTk1MDA2LCA0NTY3LCA0MTg5MSwgMCwgMCwgNTUyNDksIDQ4MjAsIDY1MjM5LCAxOTQ2NjIsIDAsIDAsIAotICAgIDQzMDQyLCAxMTkyMTIsIDEzNzcsIDEyODY5LCA0ODk3LCA0MjgyMSwgOTI1MCwgMCwgNDQzOCwgNjQzODUsIDAsIDE3NTMsIAotICAgIDExMzMxLCA2MTQ3LCAxOTQ5NDEsIDQzMjgyLCA4ODMzLCAwLCAwLCA2NTA0LCA3ODQwOCwgMTI2OTc5LCAxMDcxOSwgMCwgCi0gICAgMTg5OCwgMTQxMywgNDI0NDMsIDAsIDgwMiwgMTIxNDEsIDAsIDE5NDY3MSwgNjY0OCwgMTA2NzEsIDI1MjgsIDAsIDY0Nzg5LCAKLSAgICA5MTY5LCA4MzgsIDEyNzA5MiwgMTIwNjk3LCA4NDQsIDUwMTQsIDAsIDI1NiwgMCwgOTk5MCwgMCwgNDI3MzksIDkxNzg1MSwgCi0gICAgNzU0MiwgNjU0NjQsIDk3MjYsIDAsIDY0ODksIDEwMDQ4LCA3NDMyNiwgNzg3MTksIDY2NTczLCAwLCA3ODcyNCwgNzg3MTIsIAotICAgIDExNzYxLCAxOTQ2NTUsIDAsIDQxMDk0LCAwLCAwLCAwLCAwLCA5MjY4OSwgNjE5NiwgNjk0NSwgMTk0NjI4LCAxOTQ4OTAsIAotICAgIDEyODE4NCwgMTIwNDkxLCAxMTgxNiwgMTk0OTQzLCA1NzMzLCAyOTMwLCAwLCAwLCA0MTA5OCwgMCwgNDEwOTMsIDAsIAotICAgIDY2NjI2LCA1ODgsIDk3NjAsIDAsIDE5NDcxNywgMTIzOCwgMjAwLCAwLCAxNjYwLCA3MzkxNiwgMCwgMTE4OTA1LCA3NDM2MiwgCi0gICAgMCwgOTI0ODUsIDE5NDY1MSwgMCwgMCwgMzM5NCwgMTk0ODk0LCAxMjA2NjgsIDAsIDAsIDEyNzM1OCwgNjYyMTksIAotICAgIDEyNzE4MywgNDMyODQsIDE5NDY1NywgNzgxNywgMTg0MSwgMTEwNTUsIDEyMDUzMywgMTk0OTc5LCAxOTQ5ODIsIDE2NjksIAotICAgIDEwNzc2LCAxOTQ5ODEsIDc3MDEsIDE5NDk4MCwgMCwgMTk0OTk1LCAxNzMyLCA0MDMwLCAwLCAzOTYzLCA2NjYxMSwgCi0gICAgMTI3NTMwLCA0MTc2OCwgNjQ5MSwgMCwgNjUzMjQsIDkxNCwgNjUzMjMsIDgwNzEsIDM1MzgsIDAsIDc4NzEzLCA2NTMyOCwgCi0gICAgOTI0NDEsIDc0MzY3LCA3NjE0LCAwLCAxMTgxOSwgMCwgMTIwMDksIDEyMzk5LCAwLCA2Nzg1MiwgNjU1MzcsIDAsIDEwODQxLCAKLSAgICA0MzQzMCwgNTMwMSwgMCwgOTI2MTgsIDU3MzQsIDg5NjAsIDAsIDkyNTI3LCA2NTMxNywgNzc4ODAsIDAsIDAsIDAsIAotICAgIDEyMzA0LCAwLCAwLCA2NTMxNSwgOTI2NzAsIDEyODUxMSwgMCwgMCwgMCwgMTE5NjIxLCA5MjUyOSwgNzQ1MzYsIDEyNDQ3LCAKLSAgICA2NDQ4NiwgMTI3Mzc0LCAwLCAwLCAwLCAwLCAwLCA0Mjc2NywgMTA5MTUsIDAsIDEyMDA3LCA0MzY5NSwgMTIwNTIwLCAKLSAgICAxMTk3NSwgMTk0ODc4LCAwLCA5MjYwNCwgMjU1NSwgODYyOSwgMCwgNDMxNjgsIDQxODcyLCA0MzcwNiwgNDQ5NiwgCi0gICAgMTk0ODc5LCAxMjgxNDgsIDAsIDAsIDAsIDAsIDAsIDY0NzMwLCAwLCA2NjcxNCwgNjgyMjIsIDAsIDAsIDY1NTk2LCAKLSAgICA5MjMwNiwgMTE0MTYsIDQyODAsIDY3NjU1LCA4NzY1LCAxMjc4NCwgNzc5MiwgMTM5MywgMTI3MjQyLCA2Nzg3MSwgNzQzODYsIAotICAgIDAsIDgyMzMsIDEyODIwLCAwLCA2NjgzLCAxOTQ4NzYsIDM0NDIsIDEyMTQ0LCAyODQxLCAxMjU0MywgMCwgMTQ3MywgCi0gICAgNDI4MjAsIDY0MzI5LCAxMjc4MzIsIDAsIDY4NjQyLCA2NDg4LCAzNTcsIDEwNDgsIDQxMTAwLCAwLCA0MTEwNCwgMCwgCi0gICAgMzQwNiwgMTA1NCwgMTE5MDY1LCAxMDQwLCA2NTQ1MCwgMCwgNDQzNCwgMTA2OSwgMCwgMTE4ODYyLCA2NTczNywgOTE3NzY1LCAKLSAgICAxMjg3MDUsIDAsIDAsIDk2OTMsIDQxOTQzLCAwLCA0MTkzMSwgNDE3NTksIDEyNzU3LCA0MzUzLCAwLCAxMDU5LCA5NzkwLCAKLSAgICA4OTk1LCAxMjgyODYsIDAsIDY1OTM3LCAwLCA0MTc2NCwgMTA2NDYsIDAsIDExODgzMywgOTIzNzIsIDAsIDc0ODMwLCAKLSAgICA3ODU2OSwgMTI3NDMsIDAsIDY0ODAsIDkxNzc2MSwgNDE3NzksIDQyNTgwLCA2NjYwMSwgMTIyMDcsIDExOTYxOSwgNjMzNSwgCi0gICAgNjY2MDIsIDExMzEyLCA2NDgwNywgMCwgMCwgNDE3NjcsIDAsIDAsIDQzMDIwLCAxMjgyNzEsIDM5NTUsIDc0MjU0LCAwLCAwLCAKLSAgICA5MTc4NjEsIDAsIDc3OTI2LCA5NzcwLCA5MjQ2LCAxMjIzMCwgMCwgMCwgMCwgMTA0NDgsIDQxNzgzLCA0MTc4NiwgCi0gICAgMTI3MDkzLCAxMjc5NywgMjc1NSwgNjQ1NzEsIDc4NTc4LCAxOTQ5MjcsIDQ4NTcsIDAsIDQ0MjgsIDEyNzk0LCA3Mzc1NSwgCi0gICAgMTI4MDYxLCA3ODU3NCwgMCwgMCwgMCwgNTc0NywgNzg4MjUsIDAsIDc5NzgsIDQxMDkyLCA3NDU3MSwgMCwgMTE5MjQsIAotICAgIDQzODEyLCA0MjE0NCwgNjUwMTUsIDAsIDU2MywgMCwgMCwgMTI3OTgsIDExMjcxLCA1NywgMCwgMCwgOTE3ODYwLCAKLSAgICAxMTkwNDMsIDAsIDExOTEzNCwgNDMxMzcsIDY5NCwgMCwgOTg3NiwgMCwgMTE5MTY4LCAwLCA3ODgyMiwgNjQ1MzcsIDAsIAotICAgIDI3NywgNzQzODUsIDcyMjksIDEyNzYxLCAwLCAwLCAxMzAyNSwgNjQ4MTEsIDg3NTcsIDc4ODI0LCAwLCAxNTc0LCA3MzgxLCAKLSAgICAwLCAyNTI1LCA0ODUyLCA1NzQ5LCA2ODQ2NSwgMTMwMjcsIDQyODI0LCAxMjA1NzQsIDEwMzksIDcxNTEsIDEwMTU1LCAKLSAgICA1NzQ1LCAxODgsIDQxODU4LCAxMTU5MiwgMCwgNzQwMTUsIDkwNTUsIDQxODUzLCA0ODU4LCA5MTc3ODAsIDAsIDQzNiwgCi0gICAgNDc3MSwgMCwgMjc4NiwgMCwgNDg1NiwgODA1MSwgMCwgMTE5NjA5LCAwLCA5NjQ0LCAwLCAwLCAwLCAxOTQ5MTYsIAotICAgIDEyMDczMiwgNjY3MTAsIDExODgzNCwgMCwgNzM5MDYsIDAsIDEyNzExNCwgMCwgMTAyMzQsIDU4NDMsIDExOTM5LCAwLCAKLSAgICA0MjE1NywgMCwgMzE1NywgMTk0OTE4LCA2ODM5MywgMCwgMzUwNCwgMTE5MTc4LCAwLCAxMDgyMiwgNTE0OSwgNjYwMjksIAotICAgIDEwMjI2LCA2NTE0MiwgMCwgMzU5NCwgNDI0MjQsIDE5NDk1OSwgNDAsIDEyNjU3LCAwLCAwLCAzODYsIDAsIDg4MzQsIDAsIAotICAgIDEyODE1LCA0MzU3NCwgMCwgNzM5MDcsIDAsIDc0MTk2LCA3MjIwLCA3NDUwNCwgMCwgNzQzMTYsIDAsIDc3OTMyLCA0MzA0LCAKLSAgICA3NDUwMywgODE2MCwgNzg3MDcsIDE5NDc1MywgMCwgMCwgMCwgMTM0OCwgOTIzNDksIDc4NTk3LCAwLCAxMzMwMywgMCwgCi0gICAgOTIzOTIsIDE5NDc1NSwgNzU5OSwgMTI3OCwgNDM2MTYsIDEzMjY5LCAwLCAwLCA3NDM4NywgNzgxNzksIDc4NTk4LCAKLSAgICA3NDQ5MiwgNjA5NywgNzU2OCwgODc4MCwgNDk4MiwgMTI3NDY0LCA3NDUwMSwgMTk0NzYzLCA3ODU5MiwgMTk0NzYyLCAKLSAgICAyNjcyLCAzNzM1LCAxMjc0NzEsIDEzMTM4LCA0MjI2NiwgOTQ4NCwgMTA3MjQsIDQxMjAyLCAxMTkwMjQsIDAsIDQzNzQyLCAKLSAgICAwLCA5NDg3LCAxMTk5NTksIDExOTExNywgMzg0MiwgMTI4NzY4LCA3ODY2OCwgMTI0NDIsIDYxOTMsIDk3OTEsIDEyNzk3NiwgCi0gICAgMCwgNDI1MTYsIDcyMjgsIDc1NTksIDc0ODAzLCA3ODQ2OCwgNzg3MywgMTEzOTksIDExOTIxOSwgMTk0NjkxLCAxOTQ4NTUsIAotICAgIDE5NDY5MCwgMTk0ODU3LCAzNjA0LCAwLCAxMTkxODgsIDEyODg3NywgNzg1NDAsIDc4NTQxLCA0MjUwNywgMTk2MiwgCi0gICAgNDMzMDUsIDc4NDc2LCA0MjUwNSwgMTE2NjAsIDAsIDIwNzIsIDkyMzEyLCA2OTk1LCA3NDE3MywgNTQzNywgNzQxNzQsIAotICAgIDEwNjY5LCA4NzAyLCA3OTY0LCA5MjM1MiwgMCwgMTk5LCAxOTQ4NDMsIDQxMDUsIDE5NDg0NSwgMTk0Njk5LCAxOTQ4NDcsIAotICAgIDE5NDcxMCwgMTE5ODc1LCAxMzE0OCwgNzU2MCwgNzg0NzksIDkyMjYsIDc4NDgwLCAxOTUwNzAsIDY0NzIsIDY1ODE0LCAKLSAgICA3Mzk1NCwgMCwgNDcyNCwgMCwgMCwgOTE5MSwgMCwgNjQ0MzIsIDAsIDAsIDE5NTAyNCwgMTAxOTYsIDc4ODYsIDAsIDY1ODUsIAotICAgIDAsIDY2ODAsIDE5NTA0MiwgMCwgMTk1MDUxLCA2Njc5LCA3NDQxMiwgOTIyNTEsIDE5NDg2NiwgNzQ0MjEsIDExMzgyLCAwLCAKLSAgICAwLCAxMjc4OTEsIDEyNzQ4NCwgMTk0ODMzLCAxOTQ4MzIsIDY2ODEsIDEyNzQ4MiwgMTI2OTMsIDE5NDgzNiwgNDI3MjcsIAotICAgIDE5NDgzOCwgMTI4MjUyLCA3ODE5NSwgNjU0NDIsIDExOTYxMCwgNjk3MzMsIDk5ODksIDQzMjQ4LCA2NjI0OCwgMTk0ODE2LCAKLSAgICAwLCAxOTQ4MTgsIDEyODg0NSwgMTk0ODIwLCAxOTQ4MTksIDUyOTcsIDcwNDIsIDEzMjg0LCA2MTEyLCA3OTY4LCAxOTQ4MjUsIAotICAgIDczOTI3LCA5MjQ0NCwgMTk0NzM2LCA2NTc0NiwgMTI3NDc2LCA3NDQwOSwgNzQzODksIDEyODY5NiwgNDM0MiwgNDI4MzksIAotICAgIDE5NDgzMSwgMTY3NywgMCwgMCwgMTk0ODA2LCA5MTc4NTUsIDExMDkxLCAxMTAxMSwgMjcxOSwgMCwgMCwgMTE5NTk1LCAKLSAgICAxMDE2MCwgMCwgMCwgNzU4NSwgNjUxNjksIDIwNTIsIDQzMDgsIDkyMTc0LCA3NDE3NywgNzUwNSwgNTQzLCA2NDkxNiwgCi0gICAgNjQ3MzYsIDAsIDAsIDY0NjU1LCAwLCAxMTg5MjIsIDIwNjQsIDAsIDQzMTU4LCA3OTAyLCAwLCA2NTI2NSwgMTk0NjM5LCAwLCAKLSAgICAxMjcxNzAsIDAsIDAsIDAsIDAsIDEyOTk0LCA5MjcyOCwgMTA4MjgsIDAsIDYyMjgsIDQzMDcsIDM0ODIsIDEyODUyNywgMCwgCi0gICAgMCwgMCwgNTA2LCA3NDU3MywgNDExOTQsIDY1NzM1LCAyMDU1LCA0MzI1NSwgNDExOTUsIDAsIDgxNjksIDAsIDg4NDEsIDAsIAotICAgIDUxNiwgMCwgMjA2MywgMTE5MDUxLCAzNCwgMTI4ODUwLCAxMjAxODYsIDExNTA0LCAxNjEyLCA3NDMzMywgMTIwMTgyLCAKLSAgICA3NDUyMCwgNzQzMDgsIDEyMDAxLCAxMjAxNzgsIDEwMjQyLCA2NDU2NCwgMTIwMTc5LCAxMjAxNzQsIDY1ODQsIDc3NDksIAotICAgIDExMDM3LCAwLCAxNzU4LCAwLCAxMDY2NywgMTA1NjAsIDEyMDE5NywgOTI1OTMsIDE5MzUsIDExNTE3LCAxMjAxOTMsIAorICAgIDk4MzU5MCwgMCwgMTk5MTcsIDExNDA4LCAwLCAxMTk0NywgMCwgMTQwNCwgMzA5NSwgMTE0MzIsIDEyODMwNywgMzQ2NCwgCisgICAgNjQ4NiwgNDgxOSwgMTI4MjMzLCAwLCA1NzAsIDgwOTUsIDM2NzIsIDExOTg2NCwgMTQ5OCwgNjc4NjYsIDAsIDEyODUzOSwgCisgICAgNDMxLCAwLCAwLCAxMjgxODIsIDEyODA5NiwgNjgxNjcsIDk4MzY1NCwgMTMwOTYsIDEyODY0MywgMCwgNDM0MDgsIDk1MTYsIAorICAgIDEyODUzOCwgNTI2OCwgNDIyMzAsIDQyMjIwLCAwLCA0NDUwLCAxMjA1MTEsIDExNTQ3LCA0MzQxNywgMTI4NTQyLCAzNTYsIAorICAgIDM0NzcsIDIyNywgMTA0ODgsIDY4MjAzLCAzODIsIDExNDE4LCAwLCAxOTUwNjYsIDAsIDAsIDAsIDAsIDY0ODQsIDI1NDEsIAorICAgIDY2MDM5LCAwLCA3ODcxOCwgOTI3MjMsIDM1NDksIDAsIDkxMTAsIDExOTY2NSwgMjc0MywgMCwgNDMyOTAsIDE5NDgxMiwgCisgICAgOTA5NywgMCwgNDMwMTUsIDg3ODIsIDAsIDc3NiwgMjUyNCwgNDI3MDcsIDg1NzMsIDAsIDEyNjQ5NCwgMCwgMCwgNDI2OTQsIAorICAgIDY0OTQ0LCA4OTUyLCAzODU2LCAxMTg4MTgsIDAsIDU4NzIsIDY0OTUsIDAsIDAsIDAsIDkyNTQzLCAwLCAxMjA3MzMsIAorICAgIDEyODQ5LCAzOTUzLCAxODk3LCAwLCA2NTA5NCwgMTE5OTQsIDQzMzksIDc0NTU2LCA5MjY1NCwgNjc4NDMsIDAsIDAsIDAsIAorICAgIDY4NDczLCA3NDEwNCwgNTIyOCwgMTI4ODA0LCA3ODY4LCA0MzE4NCwgMCwgMCwgNzM5ODYsIDQzNDM4LCAwLCA0MzAyMiwgMCwgCisgICAgMTE2MiwgOTE3ODQ3LCAyNjcxLCAwLCAwLCA5MjYzMiwgOTI2MzEsIDExODg2NSwgNDU1MywgNzM4MTEsIDAsIDE5NTAwNSwgCisgICAgMCwgMCwgMTk5MjEsIDc0MzMxLCAxMTQyNCwgMTk1MDA2LCA0NTY3LCA0MTg5MSwgMCwgOTgzNzc5LCA1NTI0OSwgNDgyMCwgCisgICAgNjUyMzksIDE5NDY2MiwgMCwgMTk0NjY1LCA0MzA0MiwgMTE5MjEyLCAxMzc3LCAxMjg2OSwgNDg5NywgNDI4MjEsIDkyNTAsIAorICAgIDAsIDQ0MzgsIDY0Mzg1LCAwLCAxNzUzLCAxMTMzMSwgNjE0NywgMTk0OTQxLCA0MzI4MiwgODgzMywgMCwgMCwgNjUwNCwgCisgICAgNzg0MDgsIDEyNjk3OSwgMTA3MTksIDAsIDE4OTgsIDE0MTMsIDQyNDQzLCAwLCA4MDIsIDEyMTQxLCAwLCAxOTQ2NzEsIAorICAgIDY2NDgsIDEwNjcxLCAyNTI4LCAwLCA2NDc4OSwgOTE2OSwgODM4LCAxMjAwODcsIDEyMDY5NywgODQ0LCA1MDE0LCAwLCAKKyAgICAyNTYsIDAsIDk5OTAsIDAsIDQyNzM5LCA5MTc4NTEsIDc1NDIsIDY1NDY0LCA5NzI2LCAwLCA2NDg5LCAxMDA0OCwgNzQzMjYsIAorICAgIDc4NzE5LCA2NjU3MywgMCwgNzg3MjQsIDc4NzEyLCAxMTc2MSwgMTk0NjU1LCAwLCA0MTA5NCwgMCwgMCwgMTk0ODkzLCAwLCAKKyAgICA5MjY4OSwgNjE5NiwgNjk0NSwgOTM5NjksIDE5NDg5MCwgMTI4MTg0LCAxMjA0OTEsIDExODE2LCAxOTQ5NDMsIDU3MzMsIAorICAgIDI5MzAsIDAsIDAsIDQxMDk4LCAwLCA0MTA5MywgMCwgNjY2MjYsIDU4OCwgOTc2MCwgMCwgMTk0NzE3LCAxMjM4LCAyMDAsIAorICAgIDk4MzIwNSwgMTY2MCwgNzM5MTYsIDAsIDExODkwNSwgNzQzNjIsIDAsIDkyNDg1LCAxOTQ2NTEsIDAsIDk4MzY5NywgMzM5NCwgCisgICAgMTk0ODk0LCAxMjA2NjgsIDAsIDAsIDEyNzM1OCwgNjYyMTksIDEyNzE4MywgNDMyODQsIDE5NDY1NiwgNzgxNywgMTg0MSwgCisgICAgMTEwNTUsIDEyMDUzMywgMTk0OTc5LCAxOTQ5ODIsIDE2NjksIDEwNzc2LCAxOTQ5ODEsIDc3MDEsIDE5NDk4MCwgMCwgCisgICAgMTk0OTk1LCAxNzMyLCA0MDMwLCAwLCAzOTYzLCA2NjYxMSwgMTI3NTMwLCA0MTc2OCwgNjQ5MSwgMCwgNjUzMjQsIDkxNCwgCisgICAgNjUzMjMsIDgwNzEsIDM1MzgsIDAsIDIyODcsIDY1MzI4LCA5MjQ0MSwgNzQzNjcsIDc2MTQsIDAsIDExODE5LCAwLCAKKyAgICAxMjAwOSwgMTIzOTksIDAsIDY3ODUyLCA2NTUzNywgMCwgMTA4NDEsIDQzNDMwLCA1MzAxLCAwLCA5MjYxOCwgNTczNCwgCisgICAgODk2MCwgMCwgOTI1MjcsIDY1MzE3LCA3Nzg4MCwgMCwgMCwgMCwgMTIzMDQsIDAsIDAsIDY1MzE1LCA5MjY3MCwgMTI4NTExLCAKKyAgICAwLCAwLCAwLCAxMTk2MjEsIDkyNTI5LCA3NDUzNiwgMTI0NDcsIDY0NDg2LCAxMjczNzQsIDEyNjU2MiwgOTgzMTI5LCAwLCAKKyAgICAwLCA5ODM3OTMsIDQyNzY3LCAxMDkxNSwgMCwgMTIwMDcsIDQzNjk1LCAxMjA1MjAsIDExOTc1LCAxOTQ4NzgsIDAsIAorICAgIDkyNjA0LCAyNTU1LCA4NjI5LCAxMjg2NDAsIDQzMTY4LCA0MTg3MiwgNDM3MDYsIDQ0OTYsIDE5NDg3OSwgMTI4MTQ4LCAKKyAgICAxMjAyNDEsIDAsIDAsIDAsIDAsIDY0NzMwLCA3MDA0MSwgNjY3MTQsIDY4MjIyLCAwLCA3MDA3NiwgNjU1OTYsIDkyMzA2LCAKKyAgICAxMTQxNiwgNDI4MCwgNjc2NTUsIDg3NjUsIDEyNzg0LCA3NzkyLCAxMzkzLCAxMjY0NzMsIDY3ODcxLCA3NDM4NiwgMCwgCisgICAgODIzMywgMTI4MjAsIDAsIDY2ODMsIDE5NDg3NiwgMzQ0MiwgMTIxNDQsIDI4NDEsIDEyNTQzLCAwLCAxNDczLCA0MjgyMCwgCisgICAgNjQzMjksIDEyNzgzMiwgMCwgNjg2NDIsIDY0ODgsIDM1NywgMTA0OCwgNDExMDAsIDAsIDQxMTA0LCA5NDAwMywgMzQwNiwgCisgICAgMTA1NCwgNzEzMjAsIDEwNDAsIDY1NDUwLCAwLCA0NDM0LCAxMDY5LCAwLCAxMTg4NjIsIDY1NzM3LCA5MTc3NjUsIAorICAgIDEyODcwNSwgMCwgOTgzNjg0LCA5NjkzLCA0MTk0MywgMTI2NTY0LCA0MTkzMSwgNDE3NTksIDEyNzU3LCA0MzUzLCAwLCAKKyAgICAxMDU5LCA5NzkwLCA4OTk1LCAxMTk5NzQsIDk4MzY4NywgNjU5MzcsIDAsIDQxNzY0LCAxMDY0NiwgMCwgMTE4ODMzLCAKKyAgICA5MjM3MiwgMCwgNzQ4MzAsIDc4NTY5LCAxMjc0MywgOTgzNjgwLCA2NDgwLCA5MTc3NjEsIDQxNzc5LCA0MjU4MCwgNjY2MDEsIAorICAgIDEyMjA3LCAxMTk2MTksIDYzMzUsIDY2NjAyLCAxMTMxMiwgNjQ4MDcsIDAsIDAsIDQxNzY3LCAxMTk2MjksIDk4Mzc1NSwgCisgICAgNDMwMjAsIDEyODI3MSwgMzk1NSwgNzQyNTQsIDAsIDk4Mzc0NSwgOTE3ODYxLCAwLCA3NzkyNiwgOTc3MCwgOTI0NiwgCisgICAgMTIyMzAsIDAsIDAsIDAsIDEwNDQ4LCA0MTc4MywgNDE3ODYsIDEyNzA5MywgMTI3OTcsIDI3NTUsIDY0NTcxLCA3ODU3OCwgCisgICAgMTk0OTI3LCA0ODU3LCAwLCA0NDI4LCAxMjc5NCwgNzM3NTUsIDEyODA2MSwgNzg1NzQsIDAsIDc0Mjg0LCAwLCA1NzQ3LCAKKyAgICA3ODgyNSwgMCwgNzk3OCwgNDEwOTIsIDc0NTcxLCAwLCAxMTkyNCwgNDM4MTIsIDQyMTQ0LCA2NTAxNSwgMCwgNTYzLCAwLCAKKyAgICA5ODM2ODIsIDEyNzk4LCAxMTI3MSwgNTcsIDAsIDAsIDkxNzg2MCwgMTE5MDQzLCAwLCA5NDA1MSwgNDMxMzcsIDY5NCwgMCwgCisgICAgOTg3NiwgMCwgMTE5MTY4LCAwLCA3ODgyMiwgNjQ1MzcsIDAsIDI3NywgNzQzODUsIDcyMjksIDEyNzYxLCAwLCAwLCAKKyAgICAxMzAyNSwgNjQ4MTEsIDg3NTcsIDc4ODI0LCAxMjY0NzgsIDE1NzQsIDczODEsIDAsIDI1MjUsIDQ4NTIsIDU3NDksIAorICAgIDY4NDY1LCAxMzAyNywgNDI4MjQsIDEyMDU3NCwgMTAzOSwgNzE1MSwgMTAxNTUsIDU3NDUsIDE4OCwgNDE4NTgsIDExNTkyLCAKKyAgICAwLCA3NDAxNSwgOTA1NSwgNDE4NTMsIDQ4NTgsIDkxNzc4MCwgMCwgNDM2LCA0NzcxLCAwLCAyNzg2LCAwLCA0ODU2LCAKKyAgICA4MDUxLCAwLCAxMTk2MDksIDcxMzI3LCA5NjQ0LCAwLCAwLCAwLCAxOTQ5MTYsIDEyMDczMiwgNjY3MTAsIDExODgzNCwgCisgICAgOTgzMzUxLCA3MzkwNiwgMTI4NjgwLCAxMjcxMTQsIDAsIDEwMjM0LCA1ODQzLCAxMTkzOSwgMCwgNDIxNTcsIDAsIDMxNTcsIAorICAgIDE5NDkxOCwgNjgzOTMsIDAsIDM1MDQsIDExOTE3OCwgMCwgMTA4MjIsIDUxNDksIDY2MDI5LCAxMDIyNiwgNjUxNDIsIAorICAgIDEyODAyNSwgMzU5NCwgNDI0MjQsIDE5NDk1OSwgNDAsIDEyNjU3LCA5ODM2NTYsIDAsIDM4NiwgMCwgODgzNCwgMCwgCisgICAgMTI4MTUsIDQzNTc0LCAwLCA3MzkwNywgMCwgNzQxOTYsIDcyMjAsIDc0NTA0LCAwLCA3NDMxNiwgMCwgNjUzMjIsIDQzMDQsIAorICAgIDc0NTAzLCA4MTYwLCA3ODcwNywgMTk0NzUzLCAwLCAwLCAxMjg1MjYsIDEzNDgsIDkyMzQ5LCA3ODU5NywgMTI2NTM5LCAKKyAgICAxMzMwMywgMCwgOTIzOTIsIDE5NDc1NSwgNzU5OSwgMTI3OCwgNDM2MTYsIDEzMjY5LCAwLCAwLCA3NDM4NywgNzgxNzksIAorICAgIDc4NTk4LCA3NDQ5MiwgNjA5NywgNzU2OCwgODc4MCwgNDk4MiwgMTI3NDY0LCA3NDUwMSwgMTk0NzYzLCA3ODU5MiwgCisgICAgMTk0NzYyLCAyNjcyLCAzNzM1LCAxMjc0NzAsIDEzMTM4LCA0MjI2NiwgOTQ4NCwgMTA3MjQsIDQxMjAyLCA3MTM2NCwgMCwgCisgICAgNDM3NDIsIDAsIDk0ODcsIDExOTk1OSwgMTE5MTE3LCAzODQyLCAxMjg3NjgsIDc4NjY4LCAxMjQ0MiwgNjE5MywgOTc5MSwgCisgICAgMTI3OTc2LCAwLCA0MjUxNiwgNzIyOCwgNzU1OSwgNzQ4MDMsIDc4NDY4LCA3ODczLCAxMTM5OSwgMTE5MjE5LCAxOTQ2OTEsIAorICAgIDE5NDg1NSwgMTk0NjkwLCAxOTQ4NTcsIDM2MDQsIDEyMDY4MywgMTE5MTg4LCAxMjg4NzcsIDc4NTQwLCA3ODU0MSwgCisgICAgNDI1MDcsIDE5NjIsIDQzMzA1LCA3ODQ3NiwgNDI1MDUsIDExNjYwLCAwLCAyMDcyLCA5MjMxMiwgNjk5NSwgNzQxNzMsIAorICAgIDU0MzcsIDc0MTc0LCAxMDY2OSwgODcwMiwgNzk2NCwgOTIzNTIsIDAsIDE5OSwgMTk0ODQzLCA0MTA1LCAxOTQ4NDUsIAorICAgIDE5NDY5OSwgMTk0ODQ3LCAxOTQ3MTAsIDExOTg3NSwgMTMxNDgsIDc1NjAsIDc4NDc5LCA5MjI2LCA3ODQ4MCwgMTk1MDcwLCAKKyAgICA2NDcyLCA2NTgxNCwgNzM5NTQsIDAsIDQ3MjQsIDAsIDAsIDkxOTEsIDAsIDY0NDMyLCA5ODM4MDgsIDk4MzI0MSwgCisgICAgMTk1MDI0LCAxMDE5NiwgNzg4NiwgMCwgNjU4NSwgMCwgNjY4MCwgMTk1MDQyLCAwLCAxOTUwNTEsIDY2NzksIDc0NDEyLCAKKyAgICA5MjI1MSwgMTk0ODY2LCA3NDQyMSwgMTEzODIsIDk4MzYyMiwgOTgzNjI4LCAxMjc4OTEsIDEyNzQ4NCwgMTk0ODMzLCAKKyAgICAxOTQ4MzIsIDY2ODEsIDEyNzQ4MiwgMTI2OTMsIDE5NDgzNiwgNDI3MjcsIDc4MTk2LCAxMjgyNTIsIDc4MTk1LCA2NTQ0MiwgCisgICAgMTE5NjEwLCA2OTczMywgOTk4OSwgNDMyNDgsIDY2MjQ4LCAxOTQ4MTYsIDAsIDE5NDgxOCwgMTI4ODQ1LCAxOTQ4MjAsIAorICAgIDE5NDgxOSwgNTI5NywgNzA0MiwgMTMyODQsIDYxMTIsIDc5NjgsIDE5NDgyNSwgNzM5MjcsIDkyNDQ0LCAxOTQ3MzYsIAorICAgIDY1NzQ2LCAxMjc0NzYsIDY5ODg5LCA3NDM4OSwgMTI4Njk2LCA0MzQyLCA0MjgzOSwgMTk0ODMxLCAxNjc3LCAwLCAwLCAKKyAgICAxMjY1OTAsIDkxNzg1NSwgMTEwOTEsIDExMDExLCAyNzE5LCAwLCAwLCAxMTk1OTUsIDEwMTYwLCAwLCAwLCA3NTg1LCAKKyAgICA2NTE2OSwgMjA1MiwgNDMwOCwgOTIxNzQsIDQzMDAwLCA3NTA1LCA1NDMsIDY0OTE2LCA2NDczNiwgMCwgMCwgNjQ2NTUsIDAsIAorICAgIDExODkyMiwgMjA2NCwgMCwgNDMxNTgsIDc5MDIsIDAsIDY1MjY1LCAxOTQ2MzksIDAsIDEyNzE3MCwgMCwgMCwgMCwgMCwgCisgICAgMTI5OTQsIDkyNzI4LCAxMDgyOCwgOTgzOTM0LCA2MjI4LCA0MzA3LCAzNDgyLCAxMjg1MjcsIDAsIDAsIDAsIDUwNiwgCisgICAgNzQ1NzMsIDQxMTk0LCA2NTczNSwgMjA1NSwgNDMyNTUsIDQxMTk1LCAwLCA4MTY5LCA5ODM2NzEsIDg4NDEsIDAsIDUxNiwgCisgICAgOTM5NzQsIDIwNjMsIDExOTA1MSwgMzQsIDEyODg1MCwgMTIwMTg2LCAxMTUwNCwgMTYxMiwgNzQzMzMsIDEyMDE4MiwgCisgICAgMTE4MjcsIDc0MzA4LCAxMjAwMSwgMTIwMTc4LCAxMDI0MiwgNjQ1NjQsIDEyMDE3OSwgNjc5ODYsIDY1ODQsIDc3NDksIAorICAgIDExMDM3LCAwLCAxNzU4LCAxMjcwOTIsIDEwNjY3LCAxMDU2MCwgMTIwMTk3LCA5MjU5MywgMTkzNSwgMTE1MTcsIDEyMDE5MywgCiAgICAgMTIwMTk2LCAxMjAxOTUsIDE5MzEsIDEyMDE4OSwgNzQ4MzksIDEyMDE5MSwgMTIxNywgNjQ3MDIsIDEyNjQzLCA4MjUsIAogICAgIDEyNzgzOCwgMTk0OTA1LCAxMjI5NCwgOTI0MjgsIDc4ODM0LCA5MTM4LCA3ODgzMSwgNzg4MzMsIDEyNjMxLCA3ODgyOSwgCiAgICAgMTEwODAsIDc0NTU0LCA2NDAwMCwgNTU5MSwgMTIzOSwgMCwgMTEzMTMsIDAsIDM0MDMsIDAsIDAsIDY0MzY0LCA5MjI2OSwgCi0gICAgMCwgNzQ1ODIsIDg5OTgsIDEyOTg4LCAwLCA5MTUyLCAwLCAwLCAxOTQ4OTgsIDY3NTg5LCA0MTg1MCwgNjQyOTAsIDM0MzMsIAotICAgIDkyMzkzLCAxMjYxNSwgMTU5NCwgNDIxOTIsIDY5MTQsIDY3NjAzLCAwLCAxMTk1NjksIDc0NTY1LCA0MTM1MywgNjc2MDIsIAotICAgIDY3NjExLCA0MzM3LCAwLCAxMjcyOTYsIDkxOCwgNjUwMzUsIDQxMzUxLCA3NjgxLCAxOTQ5MDAsIDQyNTc3LCA0MTM5MywgCi0gICAgMTI2NjgsIDE5NDkwNCwgMjQ3NywgMTI3Mjg1LCAwLCAxMjczMDEsIDAsIDY3NjA0LCAxOTQ4ODAsIDEyNzIzNSwgNTczLCAKLSAgICAxMjcyODIsIDE5NDg4NCwgMTE0MTcsIDE5NDg4NiwgMTE5ODE0LCAxOTQ4ODgsIDY3NTk5LCAwLCAxOTQ4ODksIDY3NjA3LCAKLSAgICAxMTQ4MiwgMCwgMzk4MSwgMzM1NywgMCwgNDIyMjMsIDQyMDcsIDEyODgsIDc4ODQyLCA3ODgzOSwgNjg0MTksIDc4ODM3LCAKLSAgICAxMTU4OSwgNDIxOTUsIDE5NDg3MiwgMTk0NTk5LCAxMjcyNjMsIDY0NjAyLCA2NzYxOCwgOTI1MzksIDAsIDQyNzg4LCAKLSAgICA2ODQxNiwgNjQ0ODAsIDE5NDg3NSwgODQyMywgMzM0OCwgNDQ4LCA2ODQ3NiwgOTcxNywgMCwgMCwgOTk3LCAwLCAwLCAKLSAgICA5MjU3NywgMCwgMTE0NDAsIDExMzc5LCA0MjAwMCwgMTMxMzksIDQyMjIxLCA2NTAxMywgMTI2OTk5LCAxMjc3NjAsIAotICAgIDczNzk2LCAwLCAxMTkyMjgsIDEyMDM1LCAwLCAyODE4LCAwLCAwLCA3Mzc5MywgMCwgNDE3MiwgMCwgMCwgODM3MywgCisgICAgMCwgNzQ1ODIsIDg5OTgsIDEyOTg4LCAwLCA5MTUyLCA5ODM4NDAsIDAsIDEyNjQ4NCwgNjc1ODksIDQxODUwLCA2NDI5MCwgCisgICAgMzQzMywgOTIzOTMsIDEyNjE1LCAxNTk0LCA0MjE5MiwgNjkxNCwgNjc2MDMsIDAsIDExOTU2OSwgNzQ1NjUsIDQxMzUzLCAKKyAgICA2NzYwMiwgNjc2MTEsIDQzMzcsIDAsIDEyNzI5NiwgOTE4LCA2NTAzNSwgNDEzNTEsIDc2ODEsIDE5NDkwMCwgNDI1NzcsIAorICAgIDQxMzkzLCAxMjY2OCwgMTk0OTA0LCAyNDc3LCAxMjcyODUsIDAsIDEyNzMwMSwgMCwgNjc2MDQsIDE5NDg4MCwgMTI3MjM1LCAKKyAgICA1NzMsIDEyNzI4MiwgMTk0ODg0LCAxMTQxNywgMTk0ODg2LCAxMTk4MTQsIDE5NDg4OCwgNjc1OTksIDAsIDE5NDg4OSwgCisgICAgNjc2MDcsIDExNDgyLCAwLCAzOTgxLCAzMzU3LCAwLCA0MjIyMywgNDIwNywgMTI4OCwgNzg4NDIsIDc4ODM5LCA2ODQxOSwgCisgICAgNzg4MzcsIDExNTg5LCA0MjE5NSwgMTk0ODcyLCAxOTQ1OTksIDEyNzI2MywgNjQ2MDIsIDY3NjE4LCA5MjUzOSwgMCwgCisgICAgNDI3ODgsIDY4NDE2LCA2NDQ4MCwgMTk0ODc1LCA4NDIzLCAzMzQ4LCA0NDgsIDY4NDc2LCA5NzE3LCAwLCAwLCA5OTcsIDAsIAorICAgIDAsIDkyNTc3LCAwLCAxMTQ0MCwgMTEzNzksIDQyMDAwLCAxMzEzOSwgNDIyMjEsIDY1MDEzLCAxMjY5OTksIDEyNzc2MCwgCisgICAgNzM3OTYsIDAsIDExOTIyOCwgMTIwMzUsIDAsIDI4MTgsIDAsIDc0NDExLCA3Mzc5MywgMCwgNDE3MiwgMCwgMCwgODM3MywgCiAgICAgMTA4NzMsIDEyMTk3LCAwLCAwLCA5MjI2NSwgNjk3MDYsIDAsIDc4MjEwLCAwLCAxMjgxMTAsIDE5NDg2NSwgMTI2OTgyLCAKICAgICA3NDU2MywgNjQ4MjgsIDExNDE5LCAxOTQ4NjgsIDc2NiwgMTI1NywgMCwgMTE4ODQ1LCAxMTM4MSwgMzI2NSwgNjY2MTcsIAotICAgIDMyNzQsIDEyNzM2NSwgMCwgMCwgMCwgNzQ1MjIsIDQxOTg5LCAwLCAwLCAxMjg3OTgsIDMyNjMsIDAsIDY1NjcyLCAwLCAKLSAgICAzMjcwLCA2NDUzOSwgMTE0ODksIDAsIDAsIDAsIDAsIDk1MDUsIDY1NTE4LCAxOTQ3NzYsIDc1NiwgMTk0NjA1LCAwLCAwLCAKLSAgICAwLCA3MjYxLCAwLCAxODYsIDAsIDExOTE1NiwgNTc3MCwgMTMxNzksIDY1ODMwLCAxMjYxMiwgMTI5NDksIDY0ODU2LCAKLSAgICAxMjgwMCwgMCwgNzQyMDMsIDY0NzE4LCAwLCAwLCA5MjQzNCwgMTE4OTI5LCAwLCAxMTU3OCwgMCwgMTE5Mjk2LCAwLCAwLCAKLSAgICAwLCAwLCA3NDU2OCwgOTI1NCwgMCwgMTc5NCwgMTIwMjE3LCA2NDUyMSwgNTYyNCwgMTIwMjIwLCAxMjAyMjEsIDExOTk1OCwgCi0gICAgMTIwMjIzLCAzNjE3LCA2NjYzNiwgNjQ4ODYsIDEyMDIxMSwgMTIwMjEyLCAxMjAyMTMsIDEyMDIxNCwgMTg3MiwgNjY1MDgsIAotICAgIDEyMDQ2NywgNDEwNzksIDEwNzQ4LCA1NTAyLCAxMTkzMzAsIDQ0NTIsIDAsIDAsIDkyNTI2LCA0NTExLCAwLCAwLCA2NDY3OCwgCi0gICAgMTE0MjUsIDAsIDQzMjQ1LCAxMjMxLCAxOTQ3ODMsIDAsIDAsIDkwMDMsIDgxOTIsIDAsIDUzMDUsIDk2NTMsIDEwNjE2LCAKLSAgICA4Njk0LCA5NTQ2LCAwLCAwLCAxMjA0NzgsIDEyMDIwMCwgNjUyMDUsIDEyMDIwMiwgNjQwNjMsIDk4NzgsIDc0NzgwLCAKLSAgICAxMTk2MjYsIDc4MjAyLCA2NDA1OCwgODc5OSwgNDIxMzEsIDAsIDY0MDYyLCAxMDI4LCA2NDA2MCwgNjQwNTksIDgzNywgCi0gICAgMTA1NjcsIDAsIDQzMTAzLCAwLCAxMjA3NTQsIDExNDI3LCAyOTAyLCA2NDA0MywgNjQwNDIsIDY2NDY0LCAxMDc1NiwgMCwgCi0gICAgNDI2MDYsIDY0MDQ1LCA2NDA0NCwgNDM5NzksIDEwMDc2LCA2NDA0MCwgNDMwNjAsIDE5NDk0MiwgMTAzNCwgMzM5MiwgCi0gICAgMTI3NzcxLCA0MzA5MSwgNjQwMzMsIDY0MDMyLCA0MjczNSwgNjQwMzgsIDY0MDM3LCA2NDAzNiwgNjQwMzUsIDQyOTEsIAotICAgIDE5NDkyOCwgNjQwMTUsIDY0MDE0LCA2NDY4MSwgMTk0OTMwLCAwLCA3ODE0NSwgMCwgNDMwOTAsIDAsIDM0NzYsIDg5NzMsIAotICAgIDY0MDEyLCA0MjQ3MywgNjQwMTAsIDY0MDA4LCA2NDAwNywgMjAwMywgNzcwNiwgNjQ1MTcsIDc4MTUzLCAyNTM4LCA2NDAwOSwgCi0gICAgMjA0LCAwLCA0ODAyLCA0MTExLCA4MjM5LCA5MDk4LCA0ODA1LCA2NDAwMSwgNjQwNTcsIDc4ODUsIDcyNDcsIDY0MDU0LCAwLCAKLSAgICAwLCA0NzY3LCA5MzQzLCA2NDA0OSwgNjQwNDgsIDEyMDAzNCwgMTEzMywgNjQwNTMsIDY0MDUyLCA0MzQ1MywgNjQwNTAsIAotICAgIDQxMzQwLCAxMTg5NzUsIDE5NDgzNSwgMTAwMDUsIDEyMzI5LCA0MTMzMywgMCwgODQ4OSwgMTk0MiwgMCwgMTk0ODM0LCAKLSAgICA0MjUyMCwgMTI4MjQ5LCAwLCAwLCAxMDc2MCwgNjQwMjMsIDY0MDIyLCA2NDAyMSwgNjU4MiwgNDM2NzAsIDAsIDY0MDI1LCAKLSAgICA5MTY3LCA0MjE1MSwgNzgyNDQsIDAsIDIwMjYsIDY0MDE5LCA2NDAxOCwgNjQwMTcsIDY0MDE2LCAxMjc2OCwgMCwgNzU4MiwgCi0gICAgNzgyNTIsIDc4MjQ4LCA3NzkxNCwgNzgyNDYsIDc4MjQ3LCAwLCA3NzkxNSwgNzg3NjYsIDY3ODgsIDEzMDk0LCA3NzkyMCwgCi0gICAgNzUzMiwgNDE0MTQsIDc4NTIwLCAzMTc5LCA3ODUxOCwgNjQ3NjksIDc4NTE0LCA3ODUxNywgMTE0NjEsIDc0NDU0LCAKLSAgICAxMDc1MSwgOTA1MSwgMTIwNzIwLCA2NzA4LCAxMDUzNSwgMCwgNjgyMTgsIDU1Mjc0LCAyMDA4LCA2NDAzMSwgNjQwMzAsIAotICAgIDI5NCwgNDE4NzQsIDAsIDEyNjk5MSwgNjU5MjksIDAsIDAsIDAsIDAsIDY0MDI4LCA4MTQ2LCA2NDAyNiwgNDE3ODgsIAotICAgIDE5NDg0NCwgMCwgMTE4Nzk1LCA2MzQzLCA0MzI0NywgMTE5ODg4LCAwLCAxMTk4ODYsIDExOTg5MSwgMTE5ODkyLCAKLSAgICAxMTk4ODksIDExNDMzLCAxMTk4OTUsIDExOTg5NiwgMCwgNzgwMSwgNjU1NzgsIDE5NDgzOSwgMTI5MTUsIDQzOTY4LCAKLSAgICAzMjk3LCA5Njk5LCAxOTQ5NTUsIDExMzUsIDAsIDAsIDEyODUyNSwgMTk5NSwgNjcyMiwgMCwgMCwgMjU1MiwgNDE1NDYsIAotICAgIDYwLCA2ODM5NCwgODY0OSwgNDE1NDksIDc4NDk2LCAwLCAwLCA2NjgyLCAwLCA3ODY3OSwgNjQ3MTAsIDQxNTQ3LCAwLCAKLSAgICAyMDEzLCAxMjgyOTEsIDc4NTMwLCA3ODUzMiwgNzg1MjgsIDc4NTI5LCAxMjgzMiwgNzg0OTMsIDgwODEsIDgzNjIsIDM1MzcsIAotICAgIDExOTkwOCwgOTEzNywgNzE1NSwgODk5OSwgMCwgNzg1MzMsIDM0NjYsIDAsIDAsIDE5OTYsIDAsIDM0NTMsIDYyODIsIDAsIAotICAgIDIwMDIsIDIwMDAsIDEyMDE3NSwgNTM3LCAwLCA0MTc5LCA2NTExOSwgMTk5OCwgMCwgMTg0MiwgMCwgOTI2NzQsIDk2MjgsIAotICAgIDY4NDQ2LCAxMjA4MSwgOTgyNiwgNjQ1MDIsIDE3NjcsIDAsIDAsIDAsIDEyMDIwMSwgMCwgMCwgMCwgMzA1OSwgNDQwMjQsIAotICAgIDEyMDIwNCwgMTE5OTUzLCA5MjY5MywgMCwgMCwgOTI0NTIsIDQxMDAsIDkyMCwgMTgxMSwgMTM1NSwgMCwgMCwgMzU5MiwgCi0gICAgMTAwNzgsIDAsIDAsIDAsIDg1OTIsIDY1ODcwLCA2ODE2NCwgMTI4NzkyLCAxMDc0MiwgMCwgNDI5MTgsIDE5OTQsIDkyODEsIAotICAgIDMyOTYsIDEyODY1LCAxOTk3LCAxODk1LCAKKyAgICAzMjc0LCAxMjczNjUsIDEyNjUyMywgOTQwNDIsIDk4Mzk0MSwgNzQ1MjIsIDQxOTg5LCAwLCAwLCAxMjg3OTgsIDMyNjMsIDAsIAorICAgIDY1NjcyLCAwLCAzMjcwLCA2NDUzOSwgMTE0ODksIDAsIDAsIDAsIDAsIDk1MDUsIDY1NTE4LCAxOTQ3NzYsIDc1NiwgCisgICAgMTk0NjA1LCAwLCAwLCAwLCA3MjYxLCAwLCAxODYsIDAsIDExOTE1NiwgNTc3MCwgMTMxNzksIDY1ODMwLCAxMjYxMiwgCisgICAgMTI5NDksIDY0ODU2LCAxMjgwMCwgOTgzODkyLCA3NDIwMywgNjQ3MTgsIDExNTA3LCAwLCA5MjQzNCwgMTE4OTI5LCAwLCAKKyAgICAxMTU3OCwgMCwgMTE5Mjk2LCAwLCAwLCAwLCAwLCA3NDU2OCwgOTI1NCwgMCwgMTc5NCwgMTIwMjE3LCA2NDUyMSwgNTYyNCwgCisgICAgMTIwMjIwLCAxMjAyMjEsIDExOTk1OCwgMTIwMjIzLCAzNjE3LCA2NjYzNiwgNjQ4ODYsIDk0MDYxLCAxMjAyMTIsIAorICAgIDEyMDIxMywgMTIwMjE0LCAxODcyLCA2NjUwOCwgMTIwNDY3LCA0MTA3OSwgMTA3NDgsIDU1MDIsIDExOTMzMCwgNDQ1MiwgMCwgCisgICAgOTgzNzYyLCA5MjUyNiwgNDUxMSwgMCwgOTgzODY4LCA2NDY3OCwgMTE0MjUsIDAsIDQzMjQ1LCAxMjMxLCAxOTQ3ODMsIAorICAgIDY5OTAzLCAwLCA5MDAzLCA4MTkyLCAwLCA1MzA1LCA5NjUzLCAxMDYxNiwgODY5NCwgOTU0NiwgMCwgMCwgMTIwNDc4LCAKKyAgICAxMjAyMDAsIDY1MjA1LCAxMjAyMDIsIDY0MDYzLCA5ODc4LCA3NDc4MCwgMTE5NjI2LCA3ODIwMiwgNjQwNTgsIDg3OTksIAorICAgIDQyMTMxLCAwLCA2NDA2MiwgMTAyOCwgNjQwNjAsIDY0MDU5LCA4MzcsIDEwNTY3LCAwLCA0MzEwMywgMCwgMTIwNzU0LCAKKyAgICAxMTQyNywgMjkwMiwgNjQwNDMsIDY0MDQyLCA0Mzc0OSwgMTA3NTYsIDY0MDQ3LCA0MjYwNiwgNjQwNDUsIDY0MDQ0LCAKKyAgICA0Mzk3OSwgMTAwNzYsIDY0MDQwLCA0MzA2MCwgMTk0OTQyLCAxMDM0LCAzMzkyLCAxMjc3NzEsIDQzMDkxLCA2NDAzMywgCisgICAgNjQwMzIsIDQyNzM1LCA2NDAzOCwgNjQwMzcsIDY0MDM2LCA2NDAzNSwgNDI5MSwgMTk0OTI4LCA2NDAxNSwgNjQwMTQsIAorICAgIDY0NjgxLCAxOTQ5MzAsIDAsIDc4MTQ1LCAwLCA0MzA5MCwgMCwgMzQ3NiwgODk3MywgNjQwMTIsIDQyNDczLCA2NDAxMCwgCisgICAgNjQwMDgsIDY0MDA3LCAyMDAzLCA3NzA2LCA2NDUxNywgNzgxNTMsIDI1MzgsIDY0MDA5LCAyMDQsIDAsIDQ4MDIsIDQxMTEsIAorICAgIDgyMzksIDkwOTgsIDQ4MDUsIDY0MDAxLCA2NDA1NywgNzg4NSwgNzI0NywgNjQwNTQsIDk4MzI1OCwgMCwgNDc2NywgOTM0MywgCisgICAgNjQwNDksIDY0MDQ4LCAxMjAwMzQsIDExMzMsIDY0MDUzLCA2NDA1MiwgNDM0NTMsIDY0MDUwLCA0MTM0MCwgMTE4OTc1LCAKKyAgICAxOTQ4MzUsIDEwMDA1LCAxMjMyOSwgNDEzMzMsIDAsIDg0ODksIDE5NDIsIDAsIDE5NDgzNCwgNDI1MjAsIDEyODI0OSwgMCwgCisgICAgMCwgMTA3NjAsIDY0MDIzLCA2NDAyMiwgNjQwMjEsIDY1ODIsIDQzNjcwLCAwLCA2NDAyNSwgOTE2NywgNDIxNTEsIDc4MjQ0LCAKKyAgICA5ODMyMjYsIDIwMjYsIDY0MDE5LCA2NDAxOCwgNjQwMTcsIDY0MDE2LCAxMjc2OCwgMCwgNzU4MiwgNzgyNTIsIDc4MjQ4LCAKKyAgICA3NzkxNCwgNzgyNDYsIDc4MjQ3LCAwLCA3NzkxNSwgNzg3NjYsIDY3ODgsIDEzMDk0LCA3NzkyMCwgNzUzMiwgNDE0MTQsIAorICAgIDc4NTIwLCAzMTc5LCA3ODUxOCwgNjQ3NjksIDc4NTE0LCA3ODUxNywgMTE0NjEsIDc0NDU0LCAxMDc1MSwgOTA1MSwgCisgICAgMTIwNzIwLCA2NzA4LCAxMDUzNSwgMCwgNjgyMTgsIDU1Mjc0LCAyMDA4LCA2NDAzMSwgNjQwMzAsIDI5NCwgNDE4NzQsIDAsIAorICAgIDEyNjk5MSwgNjU5MjksIDAsIDAsIDAsIDAsIDY0MDI4LCA4MTQ2LCA2NDAyNiwgNDE3ODgsIDE5NDg0NCwgMCwgNDM1MSwgCisgICAgNjM0MywgNDMyNDcsIDExOTg4OCwgMCwgMTE5ODg2LCAxMTk4OTEsIDExOTg5MiwgMTE5ODg5LCAxMTQzMywgMTE5ODk1LCAKKyAgICAxMTk4OTYsIDAsIDc4MDEsIDY1NTc4LCAxOTQ4MzksIDEyOTE1LCA0Mzk2OCwgMzI5NywgOTY5OSwgMTk0OTU1LCAxMTM1LCAKKyAgICAwLCAwLCAxMjg1MjUsIDE5OTUsIDY3MjIsIDk4MzkxNiwgMCwgMjU1MiwgNDE1NDYsIDYwLCA2ODM5NCwgODY0OSwgNDE1NDksIAorICAgIDc4NDk2LCA5ODMzMTksIDAsIDY2ODIsIDAsIDc4Njc5LCA2NDcxMCwgNDE1NDcsIDk4MzYyMSwgMjAxMywgMTI4MjkxLCAKKyAgICA3ODUzMCwgNzg1MzIsIDc4NTI4LCA3ODUyOSwgMTI4MzIsIDc4NDkzLCA4MDgxLCA4MzYyLCAzNTM3LCAxMTk5MDgsIDkxMzcsIAorICAgIDcxNTUsIDg5OTksIDAsIDc4NTMzLCAzNDY2LCAwLCAwLCAxOTk2LCAwLCAzNDUzLCA2MjgyLCAwLCAyMDAyLCAyMDAwLCAKKyAgICAxMjAxNzUsIDUzNywgMCwgNDE3OSwgNjUxMTksIDE5OTgsIDAsIDE4NDIsIDAsIDkyNjc0LCA5NjI4LCA2ODQ0NiwgMTIwODEsIAorICAgIDk4MjYsIDY0NTAyLCAxNzY3LCAwLCAwLCAwLCAxMjAyMDEsIDk4MzYzNywgMCwgMCwgMzA1OSwgNDQwMjQsIDEyMDIwNCwgCisgICAgMTE5OTUzLCA5MjY5MywgMCwgMCwgOTI0NTIsIDQxMDAsIDkyMCwgMTgxMSwgMTM1NSwgMCwgMCwgMzU5MiwgMTAwNzgsIDAsIAorICAgIDAsIDAsIDg1OTIsIDY1ODcwLCA2ODE2NCwgMTI4NzkyLCAxMDc0MiwgMCwgNDI5MTgsIDE5OTQsIDkyODEsIDMyOTYsIAorICAgIDEyODY1LCAxOTk3LCAxODk1LCAKIH07CiAKICNkZWZpbmUgY29kZV9tYWdpYyA0NwogI2RlZmluZSBjb2RlX3NpemUgMzI3NjgKICNkZWZpbmUgY29kZV9wb2x5IDMyNzcxCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgYWxpYXNlc19zdGFydCA9IDB4ZjAwMDA7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGFsaWFzZXNfZW5kID0gMHhmMDFjMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbmFtZV9hbGlhc2VzW10gPSB7CisgICAgMHgwMDAwLAorICAgIDB4MDAwMCwKKyAgICAweDAwMDEsCisgICAgMHgwMDAxLAorICAgIDB4MDAwMiwKKyAgICAweDAwMDIsCisgICAgMHgwMDAzLAorICAgIDB4MDAwMywKKyAgICAweDAwMDQsCisgICAgMHgwMDA0LAorICAgIDB4MDAwNSwKKyAgICAweDAwMDUsCisgICAgMHgwMDA2LAorICAgIDB4MDAwNiwKKyAgICAweDAwMDcsCisgICAgMHgwMDA3LAorICAgIDB4MDAwOCwKKyAgICAweDAwMDgsCisgICAgMHgwMDA5LAorICAgIDB4MDAwOSwKKyAgICAweDAwMDksCisgICAgMHgwMDA5LAorICAgIDB4MDAwQSwKKyAgICAweDAwMEEsCisgICAgMHgwMDBBLAorICAgIDB4MDAwQSwKKyAgICAweDAwMEEsCisgICAgMHgwMDBBLAorICAgIDB4MDAwQiwKKyAgICAweDAwMEIsCisgICAgMHgwMDBCLAorICAgIDB4MDAwQywKKyAgICAweDAwMEMsCisgICAgMHgwMDBELAorICAgIDB4MDAwRCwKKyAgICAweDAwMEUsCisgICAgMHgwMDBFLAorICAgIDB4MDAwRSwKKyAgICAweDAwMEYsCisgICAgMHgwMDBGLAorICAgIDB4MDAwRiwKKyAgICAweDAwMTAsCisgICAgMHgwMDEwLAorICAgIDB4MDAxMSwKKyAgICAweDAwMTEsCisgICAgMHgwMDEyLAorICAgIDB4MDAxMiwKKyAgICAweDAwMTMsCisgICAgMHgwMDEzLAorICAgIDB4MDAxNCwKKyAgICAweDAwMTQsCisgICAgMHgwMDE1LAorICAgIDB4MDAxNSwKKyAgICAweDAwMTYsCisgICAgMHgwMDE2LAorICAgIDB4MDAxNywKKyAgICAweDAwMTcsCisgICAgMHgwMDE4LAorICAgIDB4MDAxOCwKKyAgICAweDAwMTksCisgICAgMHgwMDE5LAorICAgIDB4MDAxQSwKKyAgICAweDAwMUEsCisgICAgMHgwMDFCLAorICAgIDB4MDAxQiwKKyAgICAweDAwMUMsCisgICAgMHgwMDFDLAorICAgIDB4MDAxQywKKyAgICAweDAwMUQsCisgICAgMHgwMDFELAorICAgIDB4MDAxRCwKKyAgICAweDAwMUUsCisgICAgMHgwMDFFLAorICAgIDB4MDAxRSwKKyAgICAweDAwMUYsCisgICAgMHgwMDFGLAorICAgIDB4MDAxRiwKKyAgICAweDAwMjAsCisgICAgMHgwMDdGLAorICAgIDB4MDA3RiwKKyAgICAweDAwODAsCisgICAgMHgwMDgwLAorICAgIDB4MDA4MSwKKyAgICAweDAwODEsCisgICAgMHgwMDgyLAorICAgIDB4MDA4MiwKKyAgICAweDAwODMsCisgICAgMHgwMDgzLAorICAgIDB4MDA4NCwKKyAgICAweDAwODQsCisgICAgMHgwMDg1LAorICAgIDB4MDA4NSwKKyAgICAweDAwODYsCisgICAgMHgwMDg2LAorICAgIDB4MDA4NywKKyAgICAweDAwODcsCisgICAgMHgwMDg4LAorICAgIDB4MDA4OCwKKyAgICAweDAwODgsCisgICAgMHgwMDg5LAorICAgIDB4MDA4OSwKKyAgICAweDAwODksCisgICAgMHgwMDhBLAorICAgIDB4MDA4QSwKKyAgICAweDAwOEEsCisgICAgMHgwMDhCLAorICAgIDB4MDA4QiwKKyAgICAweDAwOEIsCisgICAgMHgwMDhDLAorICAgIDB4MDA4QywKKyAgICAweDAwOEMsCisgICAgMHgwMDhELAorICAgIDB4MDA4RCwKKyAgICAweDAwOEQsCisgICAgMHgwMDhFLAorICAgIDB4MDA4RSwKKyAgICAweDAwOEUsCisgICAgMHgwMDhGLAorICAgIDB4MDA4RiwKKyAgICAweDAwOEYsCisgICAgMHgwMDkwLAorICAgIDB4MDA5MCwKKyAgICAweDAwOTEsCisgICAgMHgwMDkxLAorICAgIDB4MDA5MSwKKyAgICAweDAwOTIsCisgICAgMHgwMDkyLAorICAgIDB4MDA5MiwKKyAgICAweDAwOTMsCisgICAgMHgwMDkzLAorICAgIDB4MDA5NCwKKyAgICAweDAwOTQsCisgICAgMHgwMDk1LAorICAgIDB4MDA5NSwKKyAgICAweDAwOTYsCisgICAgMHgwMDk2LAorICAgIDB4MDA5NiwKKyAgICAweDAwOTcsCisgICAgMHgwMDk3LAorICAgIDB4MDA5NywKKyAgICAweDAwOTgsCisgICAgMHgwMDk4LAorICAgIDB4MDA5OSwKKyAgICAweDAwOTksCisgICAgMHgwMDlBLAorICAgIDB4MDA5QSwKKyAgICAweDAwOUIsCisgICAgMHgwMDlCLAorICAgIDB4MDA5QywKKyAgICAweDAwOUMsCisgICAgMHgwMDlELAorICAgIDB4MDA5RCwKKyAgICAweDAwOUUsCisgICAgMHgwMDlFLAorICAgIDB4MDA5RiwKKyAgICAweDAwOUYsCisgICAgMHgwMEEwLAorICAgIDB4MDBBRCwKKyAgICAweDAxQTIsCisgICAgMHgwMUEzLAorICAgIDB4MDM0RiwKKyAgICAweDBDREUsCisgICAgMHgwRTlELAorICAgIDB4MEU5RiwKKyAgICAweDBFQTMsCisgICAgMHgwRUE1LAorICAgIDB4MEZEMCwKKyAgICAweDE4MEIsCisgICAgMHgxODBDLAorICAgIDB4MTgwRCwKKyAgICAweDE4MEUsCisgICAgMHgyMDBCLAorICAgIDB4MjAwQywKKyAgICAweDIwMEQsCisgICAgMHgyMDBFLAorICAgIDB4MjAwRiwKKyAgICAweDIwMkEsCisgICAgMHgyMDJCLAorICAgIDB4MjAyQywKKyAgICAweDIwMkQsCisgICAgMHgyMDJFLAorICAgIDB4MjAyRiwKKyAgICAweDIwNUYsCisgICAgMHgyMDYwLAorICAgIDB4MjExOCwKKyAgICAweDI0NDgsCisgICAgMHgyNDQ5LAorICAgIDB4QTAxNSwKKyAgICAweEZFMTgsCisgICAgMHhGRTAwLAorICAgIDB4RkUwMSwKKyAgICAweEZFMDIsCisgICAgMHhGRTAzLAorICAgIDB4RkUwNCwKKyAgICAweEZFMDUsCisgICAgMHhGRTA2LAorICAgIDB4RkUwNywKKyAgICAweEZFMDgsCisgICAgMHhGRTA5LAorICAgIDB4RkUwQSwKKyAgICAweEZFMEIsCisgICAgMHhGRTBDLAorICAgIDB4RkUwRCwKKyAgICAweEZFMEUsCisgICAgMHhGRTBGLAorICAgIDB4RkVGRiwKKyAgICAweEZFRkYsCisgICAgMHhGRUZGLAorICAgIDB4MUQwQzUsCisgICAgMHhFMDEwMCwKKyAgICAweEUwMTAxLAorICAgIDB4RTAxMDIsCisgICAgMHhFMDEwMywKKyAgICAweEUwMTA0LAorICAgIDB4RTAxMDUsCisgICAgMHhFMDEwNiwKKyAgICAweEUwMTA3LAorICAgIDB4RTAxMDgsCisgICAgMHhFMDEwOSwKKyAgICAweEUwMTBBLAorICAgIDB4RTAxMEIsCisgICAgMHhFMDEwQywKKyAgICAweEUwMTBELAorICAgIDB4RTAxMEUsCisgICAgMHhFMDEwRiwKKyAgICAweEUwMTEwLAorICAgIDB4RTAxMTEsCisgICAgMHhFMDExMiwKKyAgICAweEUwMTEzLAorICAgIDB4RTAxMTQsCisgICAgMHhFMDExNSwKKyAgICAweEUwMTE2LAorICAgIDB4RTAxMTcsCisgICAgMHhFMDExOCwKKyAgICAweEUwMTE5LAorICAgIDB4RTAxMUEsCisgICAgMHhFMDExQiwKKyAgICAweEUwMTFDLAorICAgIDB4RTAxMUQsCisgICAgMHhFMDExRSwKKyAgICAweEUwMTFGLAorICAgIDB4RTAxMjAsCisgICAgMHhFMDEyMSwKKyAgICAweEUwMTIyLAorICAgIDB4RTAxMjMsCisgICAgMHhFMDEyNCwKKyAgICAweEUwMTI1LAorICAgIDB4RTAxMjYsCisgICAgMHhFMDEyNywKKyAgICAweEUwMTI4LAorICAgIDB4RTAxMjksCisgICAgMHhFMDEyQSwKKyAgICAweEUwMTJCLAorICAgIDB4RTAxMkMsCisgICAgMHhFMDEyRCwKKyAgICAweEUwMTJFLAorICAgIDB4RTAxMkYsCisgICAgMHhFMDEzMCwKKyAgICAweEUwMTMxLAorICAgIDB4RTAxMzIsCisgICAgMHhFMDEzMywKKyAgICAweEUwMTM0LAorICAgIDB4RTAxMzUsCisgICAgMHhFMDEzNiwKKyAgICAweEUwMTM3LAorICAgIDB4RTAxMzgsCisgICAgMHhFMDEzOSwKKyAgICAweEUwMTNBLAorICAgIDB4RTAxM0IsCisgICAgMHhFMDEzQywKKyAgICAweEUwMTNELAorICAgIDB4RTAxM0UsCisgICAgMHhFMDEzRiwKKyAgICAweEUwMTQwLAorICAgIDB4RTAxNDEsCisgICAgMHhFMDE0MiwKKyAgICAweEUwMTQzLAorICAgIDB4RTAxNDQsCisgICAgMHhFMDE0NSwKKyAgICAweEUwMTQ2LAorICAgIDB4RTAxNDcsCisgICAgMHhFMDE0OCwKKyAgICAweEUwMTQ5LAorICAgIDB4RTAxNEEsCisgICAgMHhFMDE0QiwKKyAgICAweEUwMTRDLAorICAgIDB4RTAxNEQsCisgICAgMHhFMDE0RSwKKyAgICAweEUwMTRGLAorICAgIDB4RTAxNTAsCisgICAgMHhFMDE1MSwKKyAgICAweEUwMTUyLAorICAgIDB4RTAxNTMsCisgICAgMHhFMDE1NCwKKyAgICAweEUwMTU1LAorICAgIDB4RTAxNTYsCisgICAgMHhFMDE1NywKKyAgICAweEUwMTU4LAorICAgIDB4RTAxNTksCisgICAgMHhFMDE1QSwKKyAgICAweEUwMTVCLAorICAgIDB4RTAxNUMsCisgICAgMHhFMDE1RCwKKyAgICAweEUwMTVFLAorICAgIDB4RTAxNUYsCisgICAgMHhFMDE2MCwKKyAgICAweEUwMTYxLAorICAgIDB4RTAxNjIsCisgICAgMHhFMDE2MywKKyAgICAweEUwMTY0LAorICAgIDB4RTAxNjUsCisgICAgMHhFMDE2NiwKKyAgICAweEUwMTY3LAorICAgIDB4RTAxNjgsCisgICAgMHhFMDE2OSwKKyAgICAweEUwMTZBLAorICAgIDB4RTAxNkIsCisgICAgMHhFMDE2QywKKyAgICAweEUwMTZELAorICAgIDB4RTAxNkUsCisgICAgMHhFMDE2RiwKKyAgICAweEUwMTcwLAorICAgIDB4RTAxNzEsCisgICAgMHhFMDE3MiwKKyAgICAweEUwMTczLAorICAgIDB4RTAxNzQsCisgICAgMHhFMDE3NSwKKyAgICAweEUwMTc2LAorICAgIDB4RTAxNzcsCisgICAgMHhFMDE3OCwKKyAgICAweEUwMTc5LAorICAgIDB4RTAxN0EsCisgICAgMHhFMDE3QiwKKyAgICAweEUwMTdDLAorICAgIDB4RTAxN0QsCisgICAgMHhFMDE3RSwKKyAgICAweEUwMTdGLAorICAgIDB4RTAxODAsCisgICAgMHhFMDE4MSwKKyAgICAweEUwMTgyLAorICAgIDB4RTAxODMsCisgICAgMHhFMDE4NCwKKyAgICAweEUwMTg1LAorICAgIDB4RTAxODYsCisgICAgMHhFMDE4NywKKyAgICAweEUwMTg4LAorICAgIDB4RTAxODksCisgICAgMHhFMDE4QSwKKyAgICAweEUwMThCLAorICAgIDB4RTAxOEMsCisgICAgMHhFMDE4RCwKKyAgICAweEUwMThFLAorICAgIDB4RTAxOEYsCisgICAgMHhFMDE5MCwKKyAgICAweEUwMTkxLAorICAgIDB4RTAxOTIsCisgICAgMHhFMDE5MywKKyAgICAweEUwMTk0LAorICAgIDB4RTAxOTUsCisgICAgMHhFMDE5NiwKKyAgICAweEUwMTk3LAorICAgIDB4RTAxOTgsCisgICAgMHhFMDE5OSwKKyAgICAweEUwMTlBLAorICAgIDB4RTAxOUIsCisgICAgMHhFMDE5QywKKyAgICAweEUwMTlELAorICAgIDB4RTAxOUUsCisgICAgMHhFMDE5RiwKKyAgICAweEUwMUEwLAorICAgIDB4RTAxQTEsCisgICAgMHhFMDFBMiwKKyAgICAweEUwMUEzLAorICAgIDB4RTAxQTQsCisgICAgMHhFMDFBNSwKKyAgICAweEUwMUE2LAorICAgIDB4RTAxQTcsCisgICAgMHhFMDFBOCwKKyAgICAweEUwMUE5LAorICAgIDB4RTAxQUEsCisgICAgMHhFMDFBQiwKKyAgICAweEUwMUFDLAorICAgIDB4RTAxQUQsCisgICAgMHhFMDFBRSwKKyAgICAweEUwMUFGLAorICAgIDB4RTAxQjAsCisgICAgMHhFMDFCMSwKKyAgICAweEUwMUIyLAorICAgIDB4RTAxQjMsCisgICAgMHhFMDFCNCwKKyAgICAweEUwMUI1LAorICAgIDB4RTAxQjYsCisgICAgMHhFMDFCNywKKyAgICAweEUwMUI4LAorICAgIDB4RTAxQjksCisgICAgMHhFMDFCQSwKKyAgICAweEUwMUJCLAorICAgIDB4RTAxQkMsCisgICAgMHhFMDFCRCwKKyAgICAweEUwMUJFLAorICAgIDB4RTAxQkYsCisgICAgMHhFMDFDMCwKKyAgICAweEUwMUMxLAorICAgIDB4RTAxQzIsCisgICAgMHhFMDFDMywKKyAgICAweEUwMUM0LAorICAgIDB4RTAxQzUsCisgICAgMHhFMDFDNiwKKyAgICAweEUwMUM3LAorICAgIDB4RTAxQzgsCisgICAgMHhFMDFDOSwKKyAgICAweEUwMUNBLAorICAgIDB4RTAxQ0IsCisgICAgMHhFMDFDQywKKyAgICAweEUwMUNELAorICAgIDB4RTAxQ0UsCisgICAgMHhFMDFDRiwKKyAgICAweEUwMUQwLAorICAgIDB4RTAxRDEsCisgICAgMHhFMDFEMiwKKyAgICAweEUwMUQzLAorICAgIDB4RTAxRDQsCisgICAgMHhFMDFENSwKKyAgICAweEUwMUQ2LAorICAgIDB4RTAxRDcsCisgICAgMHhFMDFEOCwKKyAgICAweEUwMUQ5LAorICAgIDB4RTAxREEsCisgICAgMHhFMDFEQiwKKyAgICAweEUwMURDLAorICAgIDB4RTAxREQsCisgICAgMHhFMDFERSwKKyAgICAweEUwMURGLAorICAgIDB4RTAxRTAsCisgICAgMHhFMDFFMSwKKyAgICAweEUwMUUyLAorICAgIDB4RTAxRTMsCisgICAgMHhFMDFFNCwKKyAgICAweEUwMUU1LAorICAgIDB4RTAxRTYsCisgICAgMHhFMDFFNywKKyAgICAweEUwMUU4LAorICAgIDB4RTAxRTksCisgICAgMHhFMDFFQSwKKyAgICAweEUwMUVCLAorICAgIDB4RTAxRUMsCisgICAgMHhFMDFFRCwKKyAgICAweEUwMUVFLAorICAgIDB4RTAxRUYsCit9OworCit0eXBlZGVmIHN0cnVjdCBOYW1lZFNlcXVlbmNlIHsKKyAgICBpbnQgc2VxbGVuOworICAgIFB5X1VDUzIgc2VxWzRdOworfSBuYW1lZF9zZXF1ZW5jZTsKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBuYW1lZF9zZXF1ZW5jZXNfc3RhcnQgPSAweGYwMjAwOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBuYW1lZF9zZXF1ZW5jZXNfZW5kID0gMHhmMDNhNTsKK3N0YXRpYyBjb25zdCBuYW1lZF9zZXF1ZW5jZSBuYW1lZF9zZXF1ZW5jZXNbXSA9IHsKKyAgICB7MiwgezB4MDEwMCwgMHgwMzAwfX0sCisgICAgezIsIHsweDAxMDEsIDB4MDMwMH19LAorICAgIHsyLCB7MHgwMDQ1LCAweDAzMjl9fSwKKyAgICB7MiwgezB4MDA2NSwgMHgwMzI5fX0sCisgICAgezIsIHsweDAwQzgsIDB4MDMyOX19LAorICAgIHsyLCB7MHgwMEU4LCAweDAzMjl9fSwKKyAgICB7MiwgezB4MDBDOSwgMHgwMzI5fX0sCisgICAgezIsIHsweDAwRTksIDB4MDMyOX19LAorICAgIHsyLCB7MHgwMENBLCAweDAzMDR9fSwKKyAgICB7MiwgezB4MDBFQSwgMHgwMzA0fX0sCisgICAgezIsIHsweDAwQ0EsIDB4MDMwQ319LAorICAgIHsyLCB7MHgwMEVBLCAweDAzMEN9fSwKKyAgICB7MiwgezB4MDEyQSwgMHgwMzAwfX0sCisgICAgezIsIHsweDAxMkIsIDB4MDMwMH19LAorICAgIHszLCB7MHgwMDY5LCAweDAzMDcsIDB4MDMwMX19LAorICAgIHszLCB7MHgwMDZFLCAweDAzNjAsIDB4MDA2N319LAorICAgIHsyLCB7MHgwMDRGLCAweDAzMjl9fSwKKyAgICB7MiwgezB4MDA2RiwgMHgwMzI5fX0sCisgICAgezIsIHsweDAwRDIsIDB4MDMyOX19LAorICAgIHsyLCB7MHgwMEYyLCAweDAzMjl9fSwKKyAgICB7MiwgezB4MDBEMywgMHgwMzI5fX0sCisgICAgezIsIHsweDAwRjMsIDB4MDMyOX19LAorICAgIHsyLCB7MHgwMDUzLCAweDAzMjl9fSwKKyAgICB7MiwgezB4MDA3MywgMHgwMzI5fX0sCisgICAgezIsIHsweDAxNkEsIDB4MDMwMH19LAorICAgIHsyLCB7MHgwMTZCLCAweDAzMDB9fSwKKyAgICB7MiwgezB4MDEwNCwgMHgwMzAxfX0sCisgICAgezIsIHsweDAxMDUsIDB4MDMwMX19LAorICAgIHsyLCB7MHgwMTA0LCAweDAzMDN9fSwKKyAgICB7MiwgezB4MDEwNSwgMHgwMzAzfX0sCisgICAgezIsIHsweDAxMTgsIDB4MDMwMX19LAorICAgIHsyLCB7MHgwMTE5LCAweDAzMDF9fSwKKyAgICB7MiwgezB4MDExOCwgMHgwMzAzfX0sCisgICAgezIsIHsweDAxMTksIDB4MDMwM319LAorICAgIHsyLCB7MHgwMTE2LCAweDAzMDF9fSwKKyAgICB7MiwgezB4MDExNywgMHgwMzAxfX0sCisgICAgezIsIHsweDAxMTYsIDB4MDMwM319LAorICAgIHsyLCB7MHgwMTE3LCAweDAzMDN9fSwKKyAgICB7MywgezB4MDA2OSwgMHgwMzA3LCAweDAzMDB9fSwKKyAgICB7MywgezB4MDA2OSwgMHgwMzA3LCAweDAzMDN9fSwKKyAgICB7MiwgezB4MDEyRSwgMHgwMzAxfX0sCisgICAgezMsIHsweDAxMkYsIDB4MDMwNywgMHgwMzAxfX0sCisgICAgezIsIHsweDAxMkUsIDB4MDMwM319LAorICAgIHszLCB7MHgwMTJGLCAweDAzMDcsIDB4MDMwM319LAorICAgIHsyLCB7MHgwMDRBLCAweDAzMDN9fSwKKyAgICB7MywgezB4MDA2QSwgMHgwMzA3LCAweDAzMDN9fSwKKyAgICB7MiwgezB4MDA0QywgMHgwMzAzfX0sCisgICAgezIsIHsweDAwNkMsIDB4MDMwM319LAorICAgIHsyLCB7MHgwMDRELCAweDAzMDN9fSwKKyAgICB7MiwgezB4MDA2RCwgMHgwMzAzfX0sCisgICAgezIsIHsweDAwNTIsIDB4MDMwM319LAorICAgIHsyLCB7MHgwMDcyLCAweDAzMDN9fSwKKyAgICB7MiwgezB4MDE3MiwgMHgwMzAxfX0sCisgICAgezIsIHsweDAxNzMsIDB4MDMwMX19LAorICAgIHsyLCB7MHgwMTcyLCAweDAzMDN9fSwKKyAgICB7MiwgezB4MDE3MywgMHgwMzAzfX0sCisgICAgezIsIHsweDAxNkEsIDB4MDMwMX19LAorICAgIHsyLCB7MHgwMTZCLCAweDAzMDF9fSwKKyAgICB7MiwgezB4MDE2QSwgMHgwMzAzfX0sCisgICAgezIsIHsweDAxNkIsIDB4MDMwM319LAorICAgIHsyLCB7MHgwMEU2LCAweDAzMDB9fSwKKyAgICB7MiwgezB4MDI1NCwgMHgwMzAwfX0sCisgICAgezIsIHsweDAyNTQsIDB4MDMwMX19LAorICAgIHsyLCB7MHgwMjhDLCAweDAzMDB9fSwKKyAgICB7MiwgezB4MDI4QywgMHgwMzAxfX0sCisgICAgezIsIHsweDAyNTksIDB4MDMwMH19LAorICAgIHsyLCB7MHgwMjU5LCAweDAzMDF9fSwKKyAgICB7MiwgezB4MDI1QSwgMHgwMzAwfX0sCisgICAgezIsIHsweDAyNUEsIDB4MDMwMX19LAorICAgIHszLCB7MHgwOTk1LCAweDA5Q0QsIDB4MDlCN319LAorICAgIHsyLCB7MHgwQjk1LCAweDBCQ0R9fSwKKyAgICB7MiwgezB4MEI5OSwgMHgwQkNEfX0sCisgICAgezIsIHsweDBCOUEsIDB4MEJDRH19LAorICAgIHsyLCB7MHgwQjlFLCAweDBCQ0R9fSwKKyAgICB7MiwgezB4MEI5RiwgMHgwQkNEfX0sCisgICAgezIsIHsweDBCQTMsIDB4MEJDRH19LAorICAgIHsyLCB7MHgwQkE0LCAweDBCQ0R9fSwKKyAgICB7MiwgezB4MEJBOCwgMHgwQkNEfX0sCisgICAgezIsIHsweDBCQUEsIDB4MEJDRH19LAorICAgIHsyLCB7MHgwQkFFLCAweDBCQ0R9fSwKKyAgICB7MiwgezB4MEJBRiwgMHgwQkNEfX0sCisgICAgezIsIHsweDBCQjAsIDB4MEJDRH19LAorICAgIHsyLCB7MHgwQkIyLCAweDBCQ0R9fSwKKyAgICB7MiwgezB4MEJCNSwgMHgwQkNEfX0sCisgICAgezIsIHsweDBCQjQsIDB4MEJDRH19LAorICAgIHsyLCB7MHgwQkIzLCAweDBCQ0R9fSwKKyAgICB7MiwgezB4MEJCMSwgMHgwQkNEfX0sCisgICAgezIsIHsweDBCQTksIDB4MEJDRH19LAorICAgIHsyLCB7MHgwQjlDLCAweDBCQ0R9fSwKKyAgICB7MiwgezB4MEJCNiwgMHgwQkNEfX0sCisgICAgezIsIHsweDBCQjcsIDB4MEJDRH19LAorICAgIHsyLCB7MHgwQkI4LCAweDBCQ0R9fSwKKyAgICB7MiwgezB4MEJCOSwgMHgwQkNEfX0sCisgICAgezQsIHsweDBCOTUsIDB4MEJDRCwgMHgwQkI3LCAweDBCQ0R9fSwKKyAgICB7MiwgezB4MEI5NSwgMHgwQkJFfX0sCisgICAgezIsIHsweDBCOTUsIDB4MEJCRn19LAorICAgIHsyLCB7MHgwQjk1LCAweDBCQzB9fSwKKyAgICB7MiwgezB4MEI5NSwgMHgwQkMxfX0sCisgICAgezIsIHsweDBCOTUsIDB4MEJDMn19LAorICAgIHsyLCB7MHgwQjk1LCAweDBCQzZ9fSwKKyAgICB7MiwgezB4MEI5NSwgMHgwQkM3fX0sCisgICAgezIsIHsweDBCOTUsIDB4MEJDOH19LAorICAgIHsyLCB7MHgwQjk1LCAweDBCQ0F9fSwKKyAgICB7MiwgezB4MEI5NSwgMHgwQkNCfX0sCisgICAgezIsIHsweDBCOTUsIDB4MEJDQ319LAorICAgIHsyLCB7MHgwQjk5LCAweDBCQkV9fSwKKyAgICB7MiwgezB4MEI5OSwgMHgwQkJGfX0sCisgICAgezIsIHsweDBCOTksIDB4MEJDMH19LAorICAgIHsyLCB7MHgwQjk5LCAweDBCQzF9fSwKKyAgICB7MiwgezB4MEI5OSwgMHgwQkMyfX0sCisgICAgezIsIHsweDBCOTksIDB4MEJDNn19LAorICAgIHsyLCB7MHgwQjk5LCAweDBCQzd9fSwKKyAgICB7MiwgezB4MEI5OSwgMHgwQkM4fX0sCisgICAgezIsIHsweDBCOTksIDB4MEJDQX19LAorICAgIHsyLCB7MHgwQjk5LCAweDBCQ0J9fSwKKyAgICB7MiwgezB4MEI5OSwgMHgwQkNDfX0sCisgICAgezIsIHsweDBCOUEsIDB4MEJCRX19LAorICAgIHsyLCB7MHgwQjlBLCAweDBCQkZ9fSwKKyAgICB7MiwgezB4MEI5QSwgMHgwQkMwfX0sCisgICAgezIsIHsweDBCOUEsIDB4MEJDMX19LAorICAgIHsyLCB7MHgwQjlBLCAweDBCQzJ9fSwKKyAgICB7MiwgezB4MEI5QSwgMHgwQkM2fX0sCisgICAgezIsIHsweDBCOUEsIDB4MEJDN319LAorICAgIHsyLCB7MHgwQjlBLCAweDBCQzh9fSwKKyAgICB7MiwgezB4MEI5QSwgMHgwQkNBfX0sCisgICAgezIsIHsweDBCOUEsIDB4MEJDQn19LAorICAgIHsyLCB7MHgwQjlBLCAweDBCQ0N9fSwKKyAgICB7MiwgezB4MEI5RSwgMHgwQkJFfX0sCisgICAgezIsIHsweDBCOUUsIDB4MEJCRn19LAorICAgIHsyLCB7MHgwQjlFLCAweDBCQzB9fSwKKyAgICB7MiwgezB4MEI5RSwgMHgwQkMxfX0sCisgICAgezIsIHsweDBCOUUsIDB4MEJDMn19LAorICAgIHsyLCB7MHgwQjlFLCAweDBCQzZ9fSwKKyAgICB7MiwgezB4MEI5RSwgMHgwQkM3fX0sCisgICAgezIsIHsweDBCOUUsIDB4MEJDOH19LAorICAgIHsyLCB7MHgwQjlFLCAweDBCQ0F9fSwKKyAgICB7MiwgezB4MEI5RSwgMHgwQkNCfX0sCisgICAgezIsIHsweDBCOUUsIDB4MEJDQ319LAorICAgIHsyLCB7MHgwQjlGLCAweDBCQkV9fSwKKyAgICB7MiwgezB4MEI5RiwgMHgwQkJGfX0sCisgICAgezIsIHsweDBCOUYsIDB4MEJDMH19LAorICAgIHsyLCB7MHgwQjlGLCAweDBCQzF9fSwKKyAgICB7MiwgezB4MEI5RiwgMHgwQkMyfX0sCisgICAgezIsIHsweDBCOUYsIDB4MEJDNn19LAorICAgIHsyLCB7MHgwQjlGLCAweDBCQzd9fSwKKyAgICB7MiwgezB4MEI5RiwgMHgwQkM4fX0sCisgICAgezIsIHsweDBCOUYsIDB4MEJDQX19LAorICAgIHsyLCB7MHgwQjlGLCAweDBCQ0J9fSwKKyAgICB7MiwgezB4MEI5RiwgMHgwQkNDfX0sCisgICAgezIsIHsweDBCQTMsIDB4MEJCRX19LAorICAgIHsyLCB7MHgwQkEzLCAweDBCQkZ9fSwKKyAgICB7MiwgezB4MEJBMywgMHgwQkMwfX0sCisgICAgezIsIHsweDBCQTMsIDB4MEJDMX19LAorICAgIHsyLCB7MHgwQkEzLCAweDBCQzJ9fSwKKyAgICB7MiwgezB4MEJBMywgMHgwQkM2fX0sCisgICAgezIsIHsweDBCQTMsIDB4MEJDN319LAorICAgIHsyLCB7MHgwQkEzLCAweDBCQzh9fSwKKyAgICB7MiwgezB4MEJBMywgMHgwQkNBfX0sCisgICAgezIsIHsweDBCQTMsIDB4MEJDQn19LAorICAgIHsyLCB7MHgwQkEzLCAweDBCQ0N9fSwKKyAgICB7MiwgezB4MEJBNCwgMHgwQkJFfX0sCisgICAgezIsIHsweDBCQTQsIDB4MEJCRn19LAorICAgIHsyLCB7MHgwQkE0LCAweDBCQzB9fSwKKyAgICB7MiwgezB4MEJBNCwgMHgwQkMxfX0sCisgICAgezIsIHsweDBCQTQsIDB4MEJDMn19LAorICAgIHsyLCB7MHgwQkE0LCAweDBCQzZ9fSwKKyAgICB7MiwgezB4MEJBNCwgMHgwQkM3fX0sCisgICAgezIsIHsweDBCQTQsIDB4MEJDOH19LAorICAgIHsyLCB7MHgwQkE0LCAweDBCQ0F9fSwKKyAgICB7MiwgezB4MEJBNCwgMHgwQkNCfX0sCisgICAgezIsIHsweDBCQTQsIDB4MEJDQ319LAorICAgIHsyLCB7MHgwQkE4LCAweDBCQkV9fSwKKyAgICB7MiwgezB4MEJBOCwgMHgwQkJGfX0sCisgICAgezIsIHsweDBCQTgsIDB4MEJDMH19LAorICAgIHsyLCB7MHgwQkE4LCAweDBCQzF9fSwKKyAgICB7MiwgezB4MEJBOCwgMHgwQkMyfX0sCisgICAgezIsIHsweDBCQTgsIDB4MEJDNn19LAorICAgIHsyLCB7MHgwQkE4LCAweDBCQzd9fSwKKyAgICB7MiwgezB4MEJBOCwgMHgwQkM4fX0sCisgICAgezIsIHsweDBCQTgsIDB4MEJDQX19LAorICAgIHsyLCB7MHgwQkE4LCAweDBCQ0J9fSwKKyAgICB7MiwgezB4MEJBOCwgMHgwQkNDfX0sCisgICAgezIsIHsweDBCQUEsIDB4MEJCRX19LAorICAgIHsyLCB7MHgwQkFBLCAweDBCQkZ9fSwKKyAgICB7MiwgezB4MEJBQSwgMHgwQkMwfX0sCisgICAgezIsIHsweDBCQUEsIDB4MEJDMX19LAorICAgIHsyLCB7MHgwQkFBLCAweDBCQzJ9fSwKKyAgICB7MiwgezB4MEJBQSwgMHgwQkM2fX0sCisgICAgezIsIHsweDBCQUEsIDB4MEJDN319LAorICAgIHsyLCB7MHgwQkFBLCAweDBCQzh9fSwKKyAgICB7MiwgezB4MEJBQSwgMHgwQkNBfX0sCisgICAgezIsIHsweDBCQUEsIDB4MEJDQn19LAorICAgIHsyLCB7MHgwQkFBLCAweDBCQ0N9fSwKKyAgICB7MiwgezB4MEJBRSwgMHgwQkJFfX0sCisgICAgezIsIHsweDBCQUUsIDB4MEJCRn19LAorICAgIHsyLCB7MHgwQkFFLCAweDBCQzB9fSwKKyAgICB7MiwgezB4MEJBRSwgMHgwQkMxfX0sCisgICAgezIsIHsweDBCQUUsIDB4MEJDMn19LAorICAgIHsyLCB7MHgwQkFFLCAweDBCQzZ9fSwKKyAgICB7MiwgezB4MEJBRSwgMHgwQkM3fX0sCisgICAgezIsIHsweDBCQUUsIDB4MEJDOH19LAorICAgIHsyLCB7MHgwQkFFLCAweDBCQ0F9fSwKKyAgICB7MiwgezB4MEJBRSwgMHgwQkNCfX0sCisgICAgezIsIHsweDBCQUUsIDB4MEJDQ319LAorICAgIHsyLCB7MHgwQkFGLCAweDBCQkV9fSwKKyAgICB7MiwgezB4MEJBRiwgMHgwQkJGfX0sCisgICAgezIsIHsweDBCQUYsIDB4MEJDMH19LAorICAgIHsyLCB7MHgwQkFGLCAweDBCQzF9fSwKKyAgICB7MiwgezB4MEJBRiwgMHgwQkMyfX0sCisgICAgezIsIHsweDBCQUYsIDB4MEJDNn19LAorICAgIHsyLCB7MHgwQkFGLCAweDBCQzd9fSwKKyAgICB7MiwgezB4MEJBRiwgMHgwQkM4fX0sCisgICAgezIsIHsweDBCQUYsIDB4MEJDQX19LAorICAgIHsyLCB7MHgwQkFGLCAweDBCQ0J9fSwKKyAgICB7MiwgezB4MEJBRiwgMHgwQkNDfX0sCisgICAgezIsIHsweDBCQjAsIDB4MEJCRX19LAorICAgIHsyLCB7MHgwQkIwLCAweDBCQkZ9fSwKKyAgICB7MiwgezB4MEJCMCwgMHgwQkMwfX0sCisgICAgezIsIHsweDBCQjAsIDB4MEJDMX19LAorICAgIHsyLCB7MHgwQkIwLCAweDBCQzJ9fSwKKyAgICB7MiwgezB4MEJCMCwgMHgwQkM2fX0sCisgICAgezIsIHsweDBCQjAsIDB4MEJDN319LAorICAgIHsyLCB7MHgwQkIwLCAweDBCQzh9fSwKKyAgICB7MiwgezB4MEJCMCwgMHgwQkNBfX0sCisgICAgezIsIHsweDBCQjAsIDB4MEJDQn19LAorICAgIHsyLCB7MHgwQkIwLCAweDBCQ0N9fSwKKyAgICB7MiwgezB4MEJCMiwgMHgwQkJFfX0sCisgICAgezIsIHsweDBCQjIsIDB4MEJCRn19LAorICAgIHsyLCB7MHgwQkIyLCAweDBCQzB9fSwKKyAgICB7MiwgezB4MEJCMiwgMHgwQkMxfX0sCisgICAgezIsIHsweDBCQjIsIDB4MEJDMn19LAorICAgIHsyLCB7MHgwQkIyLCAweDBCQzZ9fSwKKyAgICB7MiwgezB4MEJCMiwgMHgwQkM3fX0sCisgICAgezIsIHsweDBCQjIsIDB4MEJDOH19LAorICAgIHsyLCB7MHgwQkIyLCAweDBCQ0F9fSwKKyAgICB7MiwgezB4MEJCMiwgMHgwQkNCfX0sCisgICAgezIsIHsweDBCQjIsIDB4MEJDQ319LAorICAgIHsyLCB7MHgwQkI1LCAweDBCQkV9fSwKKyAgICB7MiwgezB4MEJCNSwgMHgwQkJGfX0sCisgICAgezIsIHsweDBCQjUsIDB4MEJDMH19LAorICAgIHsyLCB7MHgwQkI1LCAweDBCQzF9fSwKKyAgICB7MiwgezB4MEJCNSwgMHgwQkMyfX0sCisgICAgezIsIHsweDBCQjUsIDB4MEJDNn19LAorICAgIHsyLCB7MHgwQkI1LCAweDBCQzd9fSwKKyAgICB7MiwgezB4MEJCNSwgMHgwQkM4fX0sCisgICAgezIsIHsweDBCQjUsIDB4MEJDQX19LAorICAgIHsyLCB7MHgwQkI1LCAweDBCQ0J9fSwKKyAgICB7MiwgezB4MEJCNSwgMHgwQkNDfX0sCisgICAgezIsIHsweDBCQjQsIDB4MEJCRX19LAorICAgIHsyLCB7MHgwQkI0LCAweDBCQkZ9fSwKKyAgICB7MiwgezB4MEJCNCwgMHgwQkMwfX0sCisgICAgezIsIHsweDBCQjQsIDB4MEJDMX19LAorICAgIHsyLCB7MHgwQkI0LCAweDBCQzJ9fSwKKyAgICB7MiwgezB4MEJCNCwgMHgwQkM2fX0sCisgICAgezIsIHsweDBCQjQsIDB4MEJDN319LAorICAgIHsyLCB7MHgwQkI0LCAweDBCQzh9fSwKKyAgICB7MiwgezB4MEJCNCwgMHgwQkNBfX0sCisgICAgezIsIHsweDBCQjQsIDB4MEJDQn19LAorICAgIHsyLCB7MHgwQkI0LCAweDBCQ0N9fSwKKyAgICB7MiwgezB4MEJCMywgMHgwQkJFfX0sCisgICAgezIsIHsweDBCQjMsIDB4MEJCRn19LAorICAgIHsyLCB7MHgwQkIzLCAweDBCQzB9fSwKKyAgICB7MiwgezB4MEJCMywgMHgwQkMxfX0sCisgICAgezIsIHsweDBCQjMsIDB4MEJDMn19LAorICAgIHsyLCB7MHgwQkIzLCAweDBCQzZ9fSwKKyAgICB7MiwgezB4MEJCMywgMHgwQkM3fX0sCisgICAgezIsIHsweDBCQjMsIDB4MEJDOH19LAorICAgIHsyLCB7MHgwQkIzLCAweDBCQ0F9fSwKKyAgICB7MiwgezB4MEJCMywgMHgwQkNCfX0sCisgICAgezIsIHsweDBCQjMsIDB4MEJDQ319LAorICAgIHsyLCB7MHgwQkIxLCAweDBCQkV9fSwKKyAgICB7MiwgezB4MEJCMSwgMHgwQkJGfX0sCisgICAgezIsIHsweDBCQjEsIDB4MEJDMH19LAorICAgIHsyLCB7MHgwQkIxLCAweDBCQzF9fSwKKyAgICB7MiwgezB4MEJCMSwgMHgwQkMyfX0sCisgICAgezIsIHsweDBCQjEsIDB4MEJDNn19LAorICAgIHsyLCB7MHgwQkIxLCAweDBCQzd9fSwKKyAgICB7MiwgezB4MEJCMSwgMHgwQkM4fX0sCisgICAgezIsIHsweDBCQjEsIDB4MEJDQX19LAorICAgIHsyLCB7MHgwQkIxLCAweDBCQ0J9fSwKKyAgICB7MiwgezB4MEJCMSwgMHgwQkNDfX0sCisgICAgezIsIHsweDBCQTksIDB4MEJCRX19LAorICAgIHsyLCB7MHgwQkE5LCAweDBCQkZ9fSwKKyAgICB7MiwgezB4MEJBOSwgMHgwQkMwfX0sCisgICAgezIsIHsweDBCQTksIDB4MEJDMX19LAorICAgIHsyLCB7MHgwQkE5LCAweDBCQzJ9fSwKKyAgICB7MiwgezB4MEJBOSwgMHgwQkM2fX0sCisgICAgezIsIHsweDBCQTksIDB4MEJDN319LAorICAgIHsyLCB7MHgwQkE5LCAweDBCQzh9fSwKKyAgICB7MiwgezB4MEJBOSwgMHgwQkNBfX0sCisgICAgezIsIHsweDBCQTksIDB4MEJDQn19LAorICAgIHsyLCB7MHgwQkE5LCAweDBCQ0N9fSwKKyAgICB7MiwgezB4MEI5QywgMHgwQkJFfX0sCisgICAgezIsIHsweDBCOUMsIDB4MEJCRn19LAorICAgIHsyLCB7MHgwQjlDLCAweDBCQzB9fSwKKyAgICB7MiwgezB4MEI5QywgMHgwQkMxfX0sCisgICAgezIsIHsweDBCOUMsIDB4MEJDMn19LAorICAgIHsyLCB7MHgwQjlDLCAweDBCQzZ9fSwKKyAgICB7MiwgezB4MEI5QywgMHgwQkM3fX0sCisgICAgezIsIHsweDBCOUMsIDB4MEJDOH19LAorICAgIHsyLCB7MHgwQjlDLCAweDBCQ0F9fSwKKyAgICB7MiwgezB4MEI5QywgMHgwQkNCfX0sCisgICAgezIsIHsweDBCOUMsIDB4MEJDQ319LAorICAgIHsyLCB7MHgwQkI2LCAweDBCQkV9fSwKKyAgICB7MiwgezB4MEJCNiwgMHgwQkJGfX0sCisgICAgezIsIHsweDBCQjYsIDB4MEJDMH19LAorICAgIHsyLCB7MHgwQkI2LCAweDBCQzF9fSwKKyAgICB7MiwgezB4MEJCNiwgMHgwQkMyfX0sCisgICAgezIsIHsweDBCQjYsIDB4MEJDNn19LAorICAgIHsyLCB7MHgwQkI2LCAweDBCQzd9fSwKKyAgICB7MiwgezB4MEJCNiwgMHgwQkM4fX0sCisgICAgezIsIHsweDBCQjYsIDB4MEJDQX19LAorICAgIHsyLCB7MHgwQkI2LCAweDBCQ0J9fSwKKyAgICB7MiwgezB4MEJCNiwgMHgwQkNDfX0sCisgICAgezIsIHsweDBCQjcsIDB4MEJCRX19LAorICAgIHsyLCB7MHgwQkI3LCAweDBCQkZ9fSwKKyAgICB7MiwgezB4MEJCNywgMHgwQkMwfX0sCisgICAgezIsIHsweDBCQjcsIDB4MEJDMX19LAorICAgIHsyLCB7MHgwQkI3LCAweDBCQzJ9fSwKKyAgICB7MiwgezB4MEJCNywgMHgwQkM2fX0sCisgICAgezIsIHsweDBCQjcsIDB4MEJDN319LAorICAgIHsyLCB7MHgwQkI3LCAweDBCQzh9fSwKKyAgICB7MiwgezB4MEJCNywgMHgwQkNBfX0sCisgICAgezIsIHsweDBCQjcsIDB4MEJDQn19LAorICAgIHsyLCB7MHgwQkI3LCAweDBCQ0N9fSwKKyAgICB7MiwgezB4MEJCOCwgMHgwQkJFfX0sCisgICAgezIsIHsweDBCQjgsIDB4MEJCRn19LAorICAgIHsyLCB7MHgwQkI4LCAweDBCQzB9fSwKKyAgICB7MiwgezB4MEJCOCwgMHgwQkMxfX0sCisgICAgezIsIHsweDBCQjgsIDB4MEJDMn19LAorICAgIHsyLCB7MHgwQkI4LCAweDBCQzZ9fSwKKyAgICB7MiwgezB4MEJCOCwgMHgwQkM3fX0sCisgICAgezIsIHsweDBCQjgsIDB4MEJDOH19LAorICAgIHsyLCB7MHgwQkI4LCAweDBCQ0F9fSwKKyAgICB7MiwgezB4MEJCOCwgMHgwQkNCfX0sCisgICAgezIsIHsweDBCQjgsIDB4MEJDQ319LAorICAgIHsyLCB7MHgwQkI5LCAweDBCQkV9fSwKKyAgICB7MiwgezB4MEJCOSwgMHgwQkJGfX0sCisgICAgezIsIHsweDBCQjksIDB4MEJDMH19LAorICAgIHsyLCB7MHgwQkI5LCAweDBCQzF9fSwKKyAgICB7MiwgezB4MEJCOSwgMHgwQkMyfX0sCisgICAgezIsIHsweDBCQjksIDB4MEJDNn19LAorICAgIHsyLCB7MHgwQkI5LCAweDBCQzd9fSwKKyAgICB7MiwgezB4MEJCOSwgMHgwQkM4fX0sCisgICAgezIsIHsweDBCQjksIDB4MEJDQX19LAorICAgIHsyLCB7MHgwQkI5LCAweDBCQ0J9fSwKKyAgICB7MiwgezB4MEJCOSwgMHgwQkNDfX0sCisgICAgezMsIHsweDBCOTUsIDB4MEJDRCwgMHgwQkI3fX0sCisgICAgezQsIHsweDBCOTUsIDB4MEJDRCwgMHgwQkI3LCAweDBCQkV9fSwKKyAgICB7NCwgezB4MEI5NSwgMHgwQkNELCAweDBCQjcsIDB4MEJCRn19LAorICAgIHs0LCB7MHgwQjk1LCAweDBCQ0QsIDB4MEJCNywgMHgwQkMwfX0sCisgICAgezQsIHsweDBCOTUsIDB4MEJDRCwgMHgwQkI3LCAweDBCQzF9fSwKKyAgICB7NCwgezB4MEI5NSwgMHgwQkNELCAweDBCQjcsIDB4MEJDMn19LAorICAgIHs0LCB7MHgwQjk1LCAweDBCQ0QsIDB4MEJCNywgMHgwQkM2fX0sCisgICAgezQsIHsweDBCOTUsIDB4MEJDRCwgMHgwQkI3LCAweDBCQzd9fSwKKyAgICB7NCwgezB4MEI5NSwgMHgwQkNELCAweDBCQjcsIDB4MEJDOH19LAorICAgIHs0LCB7MHgwQjk1LCAweDBCQ0QsIDB4MEJCNywgMHgwQkNBfX0sCisgICAgezQsIHsweDBCOTUsIDB4MEJDRCwgMHgwQkI3LCAweDBCQ0J9fSwKKyAgICB7NCwgezB4MEI5NSwgMHgwQkNELCAweDBCQjcsIDB4MEJDQ319LAorICAgIHs0LCB7MHgwQkI2LCAweDBCQ0QsIDB4MEJCMCwgMHgwQkMwfX0sCisgICAgezMsIHsweDBEQ0EsIDB4MjAwRCwgMHgwREJBfX0sCisgICAgezMsIHsweDBEQ0EsIDB4MjAwRCwgMHgwREJCfX0sCisgICAgezMsIHsweDBEQkIsIDB4MERDQSwgMHgyMDBEfX0sCisgICAgezIsIHsweDEwRTMsIDB4MDMwMn19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3ODB9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzgxfX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc4Mn19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3ODN9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzg0fX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc4NX19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3ODZ9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzg3fX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc4OH19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3ODl9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzhBfX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc4Qn19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3OEN9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzhEfX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc4RX19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3OEZ9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzkwfX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc5MX19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3OTJ9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzkzfX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc5NH19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3OTV9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzk2fX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc5N319LAorICAgIHsyLCB7MHgxN0QyLCAweDE3OTh9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzk5fX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc5QX19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3OUJ9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzlDfX0sCisgICAgezIsIHsweDE3RDIsIDB4MTc5RH19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3OUV9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxNzlGfX0sCisgICAgezIsIHsweDE3RDIsIDB4MTdBMH19LAorICAgIHsyLCB7MHgxN0QyLCAweDE3QTF9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxN0EyfX0sCisgICAgezIsIHsweDE3RDIsIDB4MTdBN319LAorICAgIHsyLCB7MHgxN0QyLCAweDE3QUJ9fSwKKyAgICB7MiwgezB4MTdEMiwgMHgxN0FDfX0sCisgICAgezIsIHsweDE3RDIsIDB4MTdBRn19LAorICAgIHsyLCB7MHgxN0JCLCAweDE3QzZ9fSwKKyAgICB7MiwgezB4MTdCNiwgMHgxN0M2fX0sCisgICAgezIsIHsweDMwNEIsIDB4MzA5QX19LAorICAgIHsyLCB7MHgzMDRELCAweDMwOUF9fSwKKyAgICB7MiwgezB4MzA0RiwgMHgzMDlBfX0sCisgICAgezIsIHsweDMwNTEsIDB4MzA5QX19LAorICAgIHsyLCB7MHgzMDUzLCAweDMwOUF9fSwKKyAgICB7MiwgezB4MzBBQiwgMHgzMDlBfX0sCisgICAgezIsIHsweDMwQUQsIDB4MzA5QX19LAorICAgIHsyLCB7MHgzMEFGLCAweDMwOUF9fSwKKyAgICB7MiwgezB4MzBCMSwgMHgzMDlBfX0sCisgICAgezIsIHsweDMwQjMsIDB4MzA5QX19LAorICAgIHsyLCB7MHgzMEJCLCAweDMwOUF9fSwKKyAgICB7MiwgezB4MzBDNCwgMHgzMDlBfX0sCisgICAgezIsIHsweDMwQzgsIDB4MzA5QX19LAorICAgIHsyLCB7MHgzMUY3LCAweDMwOUF9fSwKKyAgICB7MiwgezB4MDJFNSwgMHgwMkU5fX0sCisgICAgezIsIHsweDAyRTksIDB4MDJFNX19LAorfTsKZGlmZiAtLWdpdCBhL01vZHVsZXMveHhsaW1pdGVkLmMgYi9Nb2R1bGVzL3h4bGltaXRlZC5jCmluZGV4IGVjOTI0ZjIuLjY2MWI2ZTIgMTAwNjQ0Ci0tLSBhL01vZHVsZXMveHhsaW1pdGVkLmMKKysrIGIvTW9kdWxlcy94eGxpbWl0ZWQuYwpAQCAtMTg3LDggKzE4Nyw3IEBACiBzdGF0aWMgUHlPYmplY3QgKgogbnVsbF9yaWNoY29tcGFyZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm90aGVyLCBpbnQgb3ApCiB7Ci0gICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogfQogCiBzdGF0aWMgUHlUeXBlX1Nsb3QgTnVsbF9UeXBlX3Nsb3RzW10gPSB7CmRpZmYgLS1naXQgYS9Nb2R1bGVzL3ppcGltcG9ydC5jIGIvTW9kdWxlcy96aXBpbXBvcnQuYwppbmRleCBkOGMzZDhhLi5hYzhkZDA5IDEwMDY0NAotLS0gYS9Nb2R1bGVzL3ppcGltcG9ydC5jCisrKyBiL01vZHVsZXMvemlwaW1wb3J0LmMKQEAgLTQ5LDcgKzQ5LDcgQEAKIC8qIGZvcndhcmQgZGVjbHMgKi8KIHN0YXRpYyBQeU9iamVjdCAqcmVhZF9kaXJlY3RvcnkoUHlPYmplY3QgKmFyY2hpdmUpOwogc3RhdGljIFB5T2JqZWN0ICpnZXRfZGF0YShQeU9iamVjdCAqYXJjaGl2ZSwgUHlPYmplY3QgKnRvY19lbnRyeSk7Ci1zdGF0aWMgUHlPYmplY3QgKmdldF9tb2R1bGVfY29kZShaaXBJbXBvcnRlciAqc2VsZiwgY2hhciAqZnVsbG5hbWUsCitzdGF0aWMgUHlPYmplY3QgKmdldF9tb2R1bGVfY29kZShaaXBJbXBvcnRlciAqc2VsZiwgUHlPYmplY3QgKmZ1bGxuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpwX2lzcGFja2FnZSwgUHlPYmplY3QgKipwX21vZHBhdGgpOwogCiAKQEAgLTYzLDEwOSArNjMsMTA5IEBACiBzdGF0aWMgaW50CiB6aXBpbXBvcnRlcl9pbml0KFppcEltcG9ydGVyICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7Ci0gICAgUHlPYmplY3QgKnBhdGhvYmosICpmaWxlczsKLSAgICBQeV9VTklDT0RFICpwYXRoLCAqcCwgKnByZWZpeCwgYnVmW01BWFBBVEhMRU4rMl07Ci0gICAgUHlfc3NpemVfdCBsZW47CisgICAgUHlPYmplY3QgKnBhdGgsICpmaWxlcywgKnRtcDsKKyAgICBQeU9iamVjdCAqZmlsZW5hbWUgPSBOVUxMOworICAgIFB5X3NzaXplX3QgbGVuLCBmbGVuOworI2lmZGVmIEFMVFNFUAorICAgIF9QeV9JREVOVElGSUVSKHJlcGxhY2UpOworI2VuZGlmCiAKICAgICBpZiAoIV9QeUFyZ19Ob0tleXdvcmRzKCJ6aXBpbXBvcnRlcigpIiwga3dkcykpCiAgICAgICAgIHJldHVybiAtMTsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiTyY6emlwaW1wb3J0ZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRlNEZWNvZGVyLCAmcGF0aG9iaikpCisgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0RlY29kZXIsICZwYXRoKSkKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgLyogY29weSBwYXRoIHRvIGJ1ZiAqLwotICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRShwYXRob2JqKTsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHBhdGgpID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChwYXRoKTsKICAgICBpZiAobGVuID09IDApIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFppcEltcG9ydEVycm9yLCAiYXJjaGl2ZSBwYXRoIGlzIGVtcHR5Iik7CiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQotICAgIGlmIChsZW4gPj0gTUFYUEFUSExFTikgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoWmlwSW1wb3J0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiYXJjaGl2ZSBwYXRoIHRvbyBsb25nIik7Ci0gICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgfQotICAgIFB5X1VOSUNPREVfc3RyY3B5KGJ1ZiwgUHlVbmljb2RlX0FTX1VOSUNPREUocGF0aG9iaikpOwogCiAjaWZkZWYgQUxUU0VQCi0gICAgZm9yIChwID0gYnVmOyAqcDsgcCsrKSB7Ci0gICAgICAgIGlmICgqcCA9PSBBTFRTRVApCi0gICAgICAgICAgICAqcCA9IFNFUDsKLSAgICB9CisgICAgdG1wID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChwYXRoLCAmUHlJZF9yZXBsYWNlLCAiQ0MiLCBBTFRTRVAsIFNFUCk7CisgICAgaWYgKCF0bXApCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgUHlfREVDUkVGKHBhdGgpOworICAgIHBhdGggPSB0bXA7CiAjZW5kaWYKIAotICAgIHBhdGggPSBOVUxMOwotICAgIHByZWZpeCA9IE5VTEw7CisgICAgZmlsZW5hbWUgPSBwYXRoOworICAgIFB5X0lOQ1JFRihmaWxlbmFtZSk7CisgICAgZmxlbiA9IGxlbjsKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIHN0cnVjdCBzdGF0IHN0YXRidWY7CiAgICAgICAgIGludCBydjsKIAotICAgICAgICBpZiAocGF0aG9iaiA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBwYXRob2JqID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKGJ1ZiwgbGVuKTsKLSAgICAgICAgICAgIGlmIChwYXRob2JqID09IE5VTEwpCi0gICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgfQotICAgICAgICBydiA9IF9QeV9zdGF0KHBhdGhvYmosICZzdGF0YnVmKTsKKyAgICAgICAgcnYgPSBfUHlfc3RhdChmaWxlbmFtZSwgJnN0YXRidWYpOworICAgICAgICBpZiAocnYgPT0gLTIpCisgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICBpZiAocnYgPT0gMCkgewogICAgICAgICAgICAgLyogaXQgZXhpc3RzICovCi0gICAgICAgICAgICBpZiAoU19JU1JFRyhzdGF0YnVmLnN0X21vZGUpKQotICAgICAgICAgICAgICAgIC8qIGl0J3MgYSBmaWxlICovCi0gICAgICAgICAgICAgICAgcGF0aCA9IGJ1ZjsKKyAgICAgICAgICAgIGlmICghU19JU1JFRyhzdGF0YnVmLnN0X21vZGUpKQorICAgICAgICAgICAgICAgIC8qIGl0J3MgYSBub3QgZmlsZSAqLworICAgICAgICAgICAgICAgIFB5X0NMRUFSKGZpbGVuYW1lKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBQeV9DTEVBUihmaWxlbmFtZSk7CiAgICAgICAgIC8qIGJhY2sgdXAgb25lIHBhdGggZWxlbWVudCAqLwotICAgICAgICBwID0gUHlfVU5JQ09ERV9zdHJyY2hyKGJ1ZiwgU0VQKTsKLSAgICAgICAgaWYgKHByZWZpeCAhPSBOVUxMKQotICAgICAgICAgICAgKnByZWZpeCA9IFNFUDsKLSAgICAgICAgaWYgKHAgPT0gTlVMTCkKKyAgICAgICAgZmxlbiA9IFB5VW5pY29kZV9GaW5kQ2hhcihwYXRoLCBTRVAsIDAsIGZsZW4sIC0xKTsKKyAgICAgICAgaWYgKGZsZW4gPT0gLTEpCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgKnAgPSAnXDAnOwotICAgICAgICBsZW4gPSBwIC0gYnVmOwotICAgICAgICBwcmVmaXggPSBwOwotICAgICAgICBQeV9DTEVBUihwYXRob2JqKTsKKyAgICAgICAgZmlsZW5hbWUgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKHBhdGgsIDAsIGZsZW4pOwogICAgIH0KLSAgICBpZiAocGF0aCA9PSBOVUxMKSB7CisgICAgaWYgKGZpbGVuYW1lID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFppcEltcG9ydEVycm9yLCAibm90IGEgWmlwIGZpbGUiKTsKICAgICAgICAgZ290byBlcnJvcjsKICAgICB9CiAKLSAgICBmaWxlcyA9IFB5RGljdF9HZXRJdGVtKHppcF9kaXJlY3RvcnlfY2FjaGUsIHBhdGhvYmopOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoZmlsZW5hbWUpIDwgMCkKKyAgICAgICAgZ290byBlcnJvcjsKKworICAgIGZpbGVzID0gUHlEaWN0X0dldEl0ZW0oemlwX2RpcmVjdG9yeV9jYWNoZSwgZmlsZW5hbWUpOwogICAgIGlmIChmaWxlcyA9PSBOVUxMKSB7Ci0gICAgICAgIGZpbGVzID0gcmVhZF9kaXJlY3RvcnkocGF0aG9iaik7CisgICAgICAgIGZpbGVzID0gcmVhZF9kaXJlY3RvcnkoZmlsZW5hbWUpOwogICAgICAgICBpZiAoZmlsZXMgPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIGlmIChQeURpY3RfU2V0SXRlbSh6aXBfZGlyZWN0b3J5X2NhY2hlLCBwYXRob2JqLCBmaWxlcykgIT0gMCkKKyAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtKHppcF9kaXJlY3RvcnlfY2FjaGUsIGZpbGVuYW1lLCBmaWxlcykgIT0gMCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQogICAgIGVsc2UKICAgICAgICAgUHlfSU5DUkVGKGZpbGVzKTsKICAgICBzZWxmLT5maWxlcyA9IGZpbGVzOwogCi0gICAgc2VsZi0+YXJjaGl2ZSA9IHBhdGhvYmo7Ci0gICAgcGF0aG9iaiA9IE5VTEw7CisgICAgLyogVHJhbnNmZXIgcmVmZXJlbmNlICovCisgICAgc2VsZi0+YXJjaGl2ZSA9IGZpbGVuYW1lOworICAgIGZpbGVuYW1lID0gTlVMTDsKIAotICAgIGlmIChwcmVmaXggIT0gTlVMTCkgewotICAgICAgICBwcmVmaXgrKzsKLSAgICAgICAgbGVuID0gUHlfVU5JQ09ERV9zdHJsZW4ocHJlZml4KTsKLSAgICAgICAgaWYgKHByZWZpeFtsZW4tMV0gIT0gU0VQKSB7CisgICAgLyogQ2hlY2sgaWYgdGhlcmUgaXMgYSBwcmVmaXggZGlyZWN0b3J5IGZvbGxvd2luZyB0aGUgZmlsZW5hbWUuICovCisgICAgaWYgKGZsZW4gIT0gbGVuKSB7CisgICAgICAgIHRtcCA9IFB5VW5pY29kZV9TdWJzdHJpbmcocGF0aCwgZmxlbisxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHBhdGgpKTsKKyAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgc2VsZi0+cHJlZml4ID0gdG1wOworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURfQ0hBUihwYXRoLCBsZW4tMSkgIT0gU0VQKSB7CiAgICAgICAgICAgICAvKiBhZGQgdHJhaWxpbmcgU0VQICovCi0gICAgICAgICAgICBwcmVmaXhbbGVuXSA9IFNFUDsKLSAgICAgICAgICAgIHByZWZpeFtsZW4gKyAxXSA9ICdcMCc7Ci0gICAgICAgICAgICBsZW4rKzsKKyAgICAgICAgICAgIHRtcCA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlVSVjIiwgc2VsZi0+cHJlZml4LCBTRVApOworICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICBQeV9ERUNSRUYoc2VsZi0+cHJlZml4KTsKKyAgICAgICAgICAgIHNlbGYtPnByZWZpeCA9IHRtcDsKICAgICAgICAgfQogICAgIH0KICAgICBlbHNlCi0gICAgICAgIGxlbiA9IDA7Ci0gICAgc2VsZi0+cHJlZml4ID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHByZWZpeCwgbGVuKTsKLSAgICBpZiAoc2VsZi0+cHJlZml4ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZXJyb3I7Ci0KKyAgICAgICAgc2VsZi0+cHJlZml4ID0gUHlVbmljb2RlX05ldygwLCAwKTsKKyAgICBQeV9ERUNSRUYocGF0aCk7CiAgICAgcmV0dXJuIDA7CiAKIGVycm9yOgotICAgIFB5X1hERUNSRUYocGF0aG9iaik7CisgICAgUHlfREVDUkVGKHBhdGgpOworICAgIFB5X1hERUNSRUYoZmlsZW5hbWUpOwogICAgIHJldHVybiAtMTsKIH0KIApAQCAtMTkzLDcgKzE5Myw3IEBACiB7CiAgICAgaWYgKHNlbGYtPmFyY2hpdmUgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKCI8emlwaW1wb3J0ZXIgb2JqZWN0IFwiPz8/XCI+Iik7Ci0gICAgZWxzZSBpZiAoc2VsZi0+cHJlZml4ICE9IE5VTEwgJiYgUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYtPnByZWZpeCkgIT0gMCkKKyAgICBlbHNlIGlmIChzZWxmLT5wcmVmaXggIT0gTlVMTCAmJiBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmLT5wcmVmaXgpICE9IDApCiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiPHppcGltcG9ydGVyIG9iamVjdCBcIiVVJWMlVVwiPiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5hcmNoaXZlLCBTRVAsIHNlbGYtPnByZWZpeCk7CiAgICAgZWxzZQpAQCAtMjAyLDQ5ICsyMDIsNTQgQEAKIH0KIAogLyogcmV0dXJuIGZ1bGxuYW1lLnNwbGl0KCIuIilbLTFdICovCi1zdGF0aWMgY2hhciAqCi1nZXRfc3VibmFtZShjaGFyICpmdWxsbmFtZSkKK3N0YXRpYyBQeU9iamVjdCAqCitnZXRfc3VibmFtZShQeU9iamVjdCAqZnVsbG5hbWUpCiB7Ci0gICAgY2hhciAqc3VibmFtZSA9IHN0cnJjaHIoZnVsbG5hbWUsICcuJyk7Ci0gICAgaWYgKHN1Ym5hbWUgPT0gTlVMTCkKLSAgICAgICAgc3VibmFtZSA9IGZ1bGxuYW1lOwotICAgIGVsc2UKLSAgICAgICAgc3VibmFtZSsrOwotICAgIHJldHVybiBzdWJuYW1lOworICAgIFB5X3NzaXplX3QgbGVuLCBkb3Q7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShmdWxsbmFtZSkgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChmdWxsbmFtZSk7CisgICAgZG90ID0gUHlVbmljb2RlX0ZpbmRDaGFyKGZ1bGxuYW1lLCAnLicsIDAsIGxlbiwgLTEpOworICAgIGlmIChkb3QgPT0gLTEpIHsKKyAgICAgICAgUHlfSU5DUkVGKGZ1bGxuYW1lKTsKKyAgICAgICAgcmV0dXJuIGZ1bGxuYW1lOworICAgIH0gZWxzZQorICAgICAgICByZXR1cm4gUHlVbmljb2RlX1N1YnN0cmluZyhmdWxsbmFtZSwgZG90KzEsIGxlbik7CiB9CiAKIC8qIEdpdmVuIGEgKHN1Yiltb2R1bGVuYW1lLCB3cml0ZSB0aGUgcG90ZW50aWFsIGZpbGUgcGF0aCBpbiB0aGUKICAgIGFyY2hpdmUgKHdpdGhvdXQgZXh0ZW5zaW9uKSB0byB0aGUgcGF0aCBidWZmZXIuIFJldHVybiB0aGUKLSAgIGxlbmd0aCBvZiB0aGUgcmVzdWx0aW5nIHN0cmluZy4gKi8KLXN0YXRpYyBpbnQKLW1ha2VfZmlsZW5hbWUoUHlPYmplY3QgKnByZWZpeF9vYmosIGNoYXIgKm5hbWUsIGNoYXIgKnBhdGgsIHNpemVfdCBwYXRoc2l6ZSkKKyAgIGxlbmd0aCBvZiB0aGUgcmVzdWx0aW5nIHN0cmluZy4KKworICAgcmV0dXJuIHNlbGYucHJlZml4ICsgbmFtZS5yZXBsYWNlKCcuJywgb3Muc2VwKSAqLworc3RhdGljIFB5T2JqZWN0KgorbWFrZV9maWxlbmFtZShQeU9iamVjdCAqcHJlZml4LCBQeU9iamVjdCAqbmFtZSkKIHsKLSAgICBzaXplX3QgbGVuOwotICAgIGNoYXIgKnA7Ci0gICAgUHlPYmplY3QgKnByZWZpeDsKKyAgICBQeU9iamVjdCAqcGF0aG9iajsKKyAgICBQeV9VQ1M0ICpwLCAqYnVmOworICAgIFB5X3NzaXplX3QgbGVuOwogCi0gICAgcHJlZml4ID0gUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdChwcmVmaXhfb2JqKTsKLSAgICBpZiAocHJlZml4ID09IE5VTEwpCi0gICAgICAgIHJldHVybiAtMTsKLSAgICBsZW4gPSBQeUJ5dGVzX0dFVF9TSVpFKHByZWZpeCk7Ci0KLSAgICAvKiBzZWxmLnByZWZpeCArIG5hbWUgWysgU0VQICsgIl9faW5pdF9fIl0gKyAiLnB5W2NvXSIgKi8KLSAgICBpZiAobGVuICsgc3RybGVuKG5hbWUpICsgMTMgPj0gcGF0aHNpemUgLSAxKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhaaXBJbXBvcnRFcnJvciwgInBhdGggdG9vIGxvbmciKTsKLSAgICAgICAgUHlfREVDUkVGKHByZWZpeCk7Ci0gICAgICAgIHJldHVybiAtMTsKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChwcmVmaXgpICsgUHlVbmljb2RlX0dFVF9MRU5HVEgobmFtZSkgKyAxOworICAgIHAgPSBidWYgPSBQeU1lbV9NYWxsb2Moc2l6ZW9mKFB5X1VDUzQpICogbGVuKTsKKyAgICBpZiAoYnVmID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgc3RyY3B5KHBhdGgsIFB5Qnl0ZXNfQVNfU1RSSU5HKHByZWZpeCkpOwotICAgIFB5X0RFQ1JFRihwcmVmaXgpOwotICAgIHN0cmNweShwYXRoICsgbGVuLCBuYW1lKTsKLSAgICBmb3IgKHAgPSBwYXRoICsgbGVuOyAqcDsgcCsrKSB7CisgICAgaWYgKCFQeVVuaWNvZGVfQXNVQ1M0KHByZWZpeCwgcCwgbGVuLCAwKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcCArPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChwcmVmaXgpOworICAgIGxlbiAtPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChwcmVmaXgpOworICAgIGlmICghUHlVbmljb2RlX0FzVUNTNChuYW1lLCBwLCBsZW4sIDEpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBmb3IgKDsgKnA7IHArKykgewogICAgICAgICBpZiAoKnAgPT0gJy4nKQogICAgICAgICAgICAgKnAgPSBTRVA7CiAgICAgfQotICAgIGxlbiArPSBzdHJsZW4obmFtZSk7Ci0gICAgYXNzZXJ0KGxlbiA8IElOVF9NQVgpOwotICAgIHJldHVybiAoaW50KWxlbjsKKyAgICBwYXRob2JqID0gUHlVbmljb2RlX0Zyb21LaW5kQW5kRGF0YShQeVVuaWNvZGVfNEJZVEVfS0lORCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHAtYnVmKTsKKyAgICBQeU1lbV9GcmVlKGJ1Zik7CisgICAgcmV0dXJuIHBhdGhvYmo7CiB9CiAKIGVudW0gemlfbW9kdWxlX2luZm8gewpAQCAtMjU0LDMyICsyNTksMTEzIEBACiAgICAgTUlfUEFDS0FHRQogfTsKIAorLyogRG9lcyB0aGlzIHBhdGggcmVwcmVzZW50IGEgZGlyZWN0b3J5PworICAgb24gZXJyb3IsIHJldHVybiA8IDAKKyAgIGlmIG5vdCBhIGRpciwgcmV0dXJuIDAKKyAgIGlmIGEgZGlyLCByZXR1cm4gMQorKi8KK3N0YXRpYyBpbnQKK2NoZWNrX2lzX2RpcmVjdG9yeShaaXBJbXBvcnRlciAqc2VsZiwgUHlPYmplY3QqIHByZWZpeCwgUHlPYmplY3QgKnBhdGgpCit7CisgICAgUHlPYmplY3QgKmRpcnBhdGg7CisgICAgaW50IHJlczsKKworICAgIC8qIFNlZSBpZiB0aGlzIGlzIGEgImRpcmVjdG9yeSIuIElmIHNvLCBpdCdzIGVsaWdpYmxlIHRvIGJlIHBhcnQKKyAgICAgICBvZiBhIG5hbWVzcGFjZSBwYWNrYWdlLiBXZSB0ZXN0IGJ5IHNlZWluZyBpZiB0aGUgbmFtZSwgd2l0aCBhbgorICAgICAgIGFwcGVuZGVkIHBhdGggc2VwYXJhdG9yLCBleGlzdHMuICovCisgICAgZGlycGF0aCA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlVSVVJWMiLCBwcmVmaXgsIHBhdGgsIFNFUCk7CisgICAgaWYgKGRpcnBhdGggPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIC8qIElmIGRpcnBhdGggaXMgcHJlc2VudCBpbiBzZWxmLT5maWxlcywgd2UgaGF2ZSBhIGRpcmVjdG9yeS4gKi8KKyAgICByZXMgPSBQeURpY3RfQ29udGFpbnMoc2VsZi0+ZmlsZXMsIGRpcnBhdGgpOworICAgIFB5X0RFQ1JFRihkaXJwYXRoKTsKKyAgICByZXR1cm4gcmVzOworfQorCiAvKiBSZXR1cm4gc29tZSBpbmZvcm1hdGlvbiBhYm91dCBhIG1vZHVsZS4gKi8KIHN0YXRpYyBlbnVtIHppX21vZHVsZV9pbmZvCi1nZXRfbW9kdWxlX2luZm8oWmlwSW1wb3J0ZXIgKnNlbGYsIGNoYXIgKmZ1bGxuYW1lKQorZ2V0X21vZHVsZV9pbmZvKFppcEltcG9ydGVyICpzZWxmLCBQeU9iamVjdCAqZnVsbG5hbWUpCiB7Ci0gICAgY2hhciAqc3VibmFtZSwgcGF0aFtNQVhQQVRITEVOICsgMV07Ci0gICAgaW50IGxlbjsKKyAgICBQeU9iamVjdCAqc3VibmFtZTsKKyAgICBQeU9iamVjdCAqcGF0aCwgKmZ1bGxwYXRoLCAqaXRlbTsKICAgICBzdHJ1Y3Qgc3RfemlwX3NlYXJjaG9yZGVyICp6c287CiAKICAgICBzdWJuYW1lID0gZ2V0X3N1Ym5hbWUoZnVsbG5hbWUpOworICAgIGlmIChzdWJuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybiBNSV9FUlJPUjsKIAotICAgIGxlbiA9IG1ha2VfZmlsZW5hbWUoc2VsZi0+cHJlZml4LCBzdWJuYW1lLCBwYXRoLCBzaXplb2YocGF0aCkpOwotICAgIGlmIChsZW4gPCAwKQorICAgIHBhdGggPSBtYWtlX2ZpbGVuYW1lKHNlbGYtPnByZWZpeCwgc3VibmFtZSk7CisgICAgUHlfREVDUkVGKHN1Ym5hbWUpOworICAgIGlmIChwYXRoID09IE5VTEwpCiAgICAgICAgIHJldHVybiBNSV9FUlJPUjsKIAogICAgIGZvciAoenNvID0gemlwX3NlYXJjaG9yZGVyOyAqenNvLT5zdWZmaXg7IHpzbysrKSB7Ci0gICAgICAgIHN0cmNweShwYXRoICsgbGVuLCB6c28tPnN1ZmZpeCk7Ci0gICAgICAgIGlmIChQeURpY3RfR2V0SXRlbVN0cmluZyhzZWxmLT5maWxlcywgcGF0aCkgIT0gTlVMTCkgeworICAgICAgICBmdWxscGF0aCA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlVSVzIiwgcGF0aCwgenNvLT5zdWZmaXgpOworICAgICAgICBpZiAoZnVsbHBhdGggPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfREVDUkVGKHBhdGgpOworICAgICAgICAgICAgcmV0dXJuIE1JX0VSUk9SOworICAgICAgICB9CisgICAgICAgIGl0ZW0gPSBQeURpY3RfR2V0SXRlbShzZWxmLT5maWxlcywgZnVsbHBhdGgpOworICAgICAgICBQeV9ERUNSRUYoZnVsbHBhdGgpOworICAgICAgICBpZiAoaXRlbSAhPSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYocGF0aCk7CiAgICAgICAgICAgICBpZiAoenNvLT50eXBlICYgSVNfUEFDS0FHRSkKICAgICAgICAgICAgICAgICByZXR1cm4gTUlfUEFDS0FHRTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gTUlfTU9EVUxFOwogICAgICAgICB9CiAgICAgfQorICAgIFB5X0RFQ1JFRihwYXRoKTsKICAgICByZXR1cm4gTUlfTk9UX0ZPVU5EOwogfQogCit0eXBlZGVmIGVudW0geworICAgIEZMX0VSUk9SLAorICAgIEZMX05PVF9GT1VORCwKKyAgICBGTF9NT0RVTEVfRk9VTkQsCisgICAgRkxfTlNfRk9VTkQKK30gZmluZF9sb2FkZXJfcmVzdWx0OworCisvKiBUaGUgZ3V0cyBvZiAiZmluZF9sb2FkZXIiIGFuZCAiZmluZF9tb2R1bGUiLiBSZXR1cm4gdmFsdWVzOgorICAgLTE6IGVycm9yCisgICAgMDogbm8gbG9hZGVyIG9yIG5hbWVzcGFjZSBwb3J0aW9ucyBmb3VuZAorICAgIDE6IG1vZHVsZS9wYWNrYWdlIGZvdW5kCisgICAgMjogbmFtZXNwYWNlIHBvcnRpb24gZm91bmQ6ICpuYW1lc3BhY2VfcG9ydGlvbiB3aWxsIHBvaW50IHRvIHRoZSBuYW1lCisqLworc3RhdGljIGZpbmRfbG9hZGVyX3Jlc3VsdAorZmluZF9sb2FkZXIoWmlwSW1wb3J0ZXIgKnNlbGYsIFB5T2JqZWN0ICpmdWxsbmFtZSwgUHlPYmplY3QgKipuYW1lc3BhY2VfcG9ydGlvbikKK3sKKyAgICBlbnVtIHppX21vZHVsZV9pbmZvIG1pOworCisgICAgKm5hbWVzcGFjZV9wb3J0aW9uID0gTlVMTDsKKworICAgIG1pID0gZ2V0X21vZHVsZV9pbmZvKHNlbGYsIGZ1bGxuYW1lKTsKKyAgICBpZiAobWkgPT0gTUlfRVJST1IpCisgICAgICAgIHJldHVybiBGTF9FUlJPUjsKKyAgICBpZiAobWkgPT0gTUlfTk9UX0ZPVU5EKSB7CisgICAgICAgIC8qIE5vdCBhIG1vZHVsZSBvciByZWd1bGFyIHBhY2thZ2UuIFNlZSBpZiB0aGlzIGlzIGEgZGlyZWN0b3J5LCBhbmQKKyAgICAgICAgICAgdGhlcmVmb3JlIHBvc3NpYmx5IGEgcG9ydGlvbiBvZiBhIG5hbWVzcGFjZSBwYWNrYWdlLiAqLworICAgICAgICBpbnQgaXNfZGlyID0gY2hlY2tfaXNfZGlyZWN0b3J5KHNlbGYsIHNlbGYtPnByZWZpeCwgZnVsbG5hbWUpOworICAgICAgICBpZiAoaXNfZGlyIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgaWYgKGlzX2RpcikgeworICAgICAgICAgICAgLyogVGhpcyBpcyBwb3NzaWJseSBhIHBvcnRpb24gb2YgYSBuYW1lc3BhY2UKKyAgICAgICAgICAgICAgIHBhY2thZ2UuIFJldHVybiB0aGUgc3RyaW5nIHJlcHJlc2VudGluZyBpdHMgcGF0aCwKKyAgICAgICAgICAgICAgIHdpdGhvdXQgYSB0cmFpbGluZyBzZXBhcmF0b3IuICovCisgICAgICAgICAgICAqbmFtZXNwYWNlX3BvcnRpb24gPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJVUlYyVVJVUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+YXJjaGl2ZSwgU0VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+cHJlZml4LCBmdWxsbmFtZSk7CisgICAgICAgICAgICBpZiAoKm5hbWVzcGFjZV9wb3J0aW9uID09IE5VTEwpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZMX0VSUk9SOworICAgICAgICAgICAgcmV0dXJuIEZMX05TX0ZPVU5EOworICAgICAgICB9CisgICAgICAgIHJldHVybiBGTF9OT1RfRk9VTkQ7CisgICAgfQorICAgIC8qIFRoaXMgaXMgYSBtb2R1bGUgb3IgcGFja2FnZS4gKi8KKyAgICByZXR1cm4gRkxfTU9EVUxFX0ZPVU5EOworfQorCisKIC8qIENoZWNrIHdoZXRoZXIgd2UgY2FuIHNhdGlzZnkgdGhlIGltcG9ydCBvZiB0aGUgbW9kdWxlIG5hbWVkIGJ5CiAgICAnZnVsbG5hbWUnLiBSZXR1cm4gc2VsZiBpZiB3ZSBjYW4sIE5vbmUgaWYgd2UgY2FuJ3QuICovCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMjg3LDIyICszNzMsNjQgQEAKIHsKICAgICBaaXBJbXBvcnRlciAqc2VsZiA9IChaaXBJbXBvcnRlciAqKW9iajsKICAgICBQeU9iamVjdCAqcGF0aCA9IE5VTEw7Ci0gICAgY2hhciAqZnVsbG5hbWU7Ci0gICAgZW51bSB6aV9tb2R1bGVfaW5mbyBtaTsKKyAgICBQeU9iamVjdCAqZnVsbG5hbWU7CisgICAgUHlPYmplY3QgKm5hbWVzcGFjZV9wb3J0aW9uID0gTlVMTDsKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAic3xPOnppcGltcG9ydGVyLmZpbmRfbW9kdWxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJmZ1bGxuYW1lLCAmcGF0aCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVfE86emlwaW1wb3J0ZXIuZmluZF9tb2R1bGUiLCAmZnVsbG5hbWUsICZwYXRoKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBtaSA9IGdldF9tb2R1bGVfaW5mbyhzZWxmLCBmdWxsbmFtZSk7Ci0gICAgaWYgKG1pID09IE1JX0VSUk9SKQorICAgIHN3aXRjaCAoZmluZF9sb2FkZXIoc2VsZiwgZnVsbG5hbWUsICZuYW1lc3BhY2VfcG9ydGlvbikpIHsKKyAgICBjYXNlIEZMX0VSUk9SOgogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAobWkgPT0gTUlfTk9UX0ZPVU5EKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICAgICAgcmV0dXJuIFB5X05vbmU7CisgICAgY2FzZSBGTF9OU19GT1VORDoKKyAgICAgICAgLyogQSBuYW1lc3BhY2UgcG9ydGlvbiBpcyBub3QgYWxsb3dlZCB2aWEgZmluZF9tb2R1bGUsIHNvIHJldHVybiBOb25lLiAqLworICAgICAgICBQeV9ERUNSRUYobmFtZXNwYWNlX3BvcnRpb24pOworICAgICAgICAvKiBGQUxMIFRIUk9VR0ggKi8KKyAgICBjYXNlIEZMX05PVF9GT1VORDoKKyAgICAgICAgcmVzdWx0ID0gUHlfTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBGTF9NT0RVTEVfRk9VTkQ6CisgICAgICAgIHJlc3VsdCA9IChQeU9iamVjdCAqKXNlbGY7CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBQeV9JTkNSRUYoc2VsZik7Ci0gICAgcmV0dXJuIChQeU9iamVjdCAqKXNlbGY7CisgICAgUHlfSU5DUkVGKHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCisvKiBDaGVjayB3aGV0aGVyIHdlIGNhbiBzYXRpc2Z5IHRoZSBpbXBvcnQgb2YgdGhlIG1vZHVsZSBuYW1lZCBieQorICAgJ2Z1bGxuYW1lJywgb3Igd2hldGhlciBpdCBjb3VsZCBiZSBhIHBvcnRpb24gb2YgYSBuYW1lc3BhY2UKKyAgIHBhY2thZ2UuIFJldHVybiBzZWxmIGlmIHdlIGNhbiBsb2FkIGl0LCBhIHN0cmluZyBjb250YWluaW5nIHRoZQorICAgZnVsbCBwYXRoIGlmIGl0J3MgYSBwb3NzaWJsZSBuYW1lc3BhY2UgcG9ydGlvbiwgTm9uZSBpZiB3ZQorICAgY2FuJ3QgbG9hZCBpdC4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCit6aXBpbXBvcnRlcl9maW5kX2xvYWRlcihQeU9iamVjdCAqb2JqLCBQeU9iamVjdCAqYXJncykKK3sKKyAgICBaaXBJbXBvcnRlciAqc2VsZiA9IChaaXBJbXBvcnRlciAqKW9iajsKKyAgICBQeU9iamVjdCAqcGF0aCA9IE5VTEw7CisgICAgUHlPYmplY3QgKmZ1bGxuYW1lOworICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOworICAgIFB5T2JqZWN0ICpuYW1lc3BhY2VfcG9ydGlvbiA9IE5VTEw7CisKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlV8Tzp6aXBpbXBvcnRlci5maW5kX21vZHVsZSIsICZmdWxsbmFtZSwgJnBhdGgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHN3aXRjaCAoZmluZF9sb2FkZXIoc2VsZiwgZnVsbG5hbWUsICZuYW1lc3BhY2VfcG9ydGlvbikpIHsKKyAgICBjYXNlIEZMX0VSUk9SOgorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBjYXNlIEZMX05PVF9GT1VORDogICAgICAgIC8qIE5vdCBmb3VuZCwgcmV0dXJuIChOb25lLCBbXSkgKi8KKyAgICAgICAgcmVzdWx0ID0gUHlfQnVpbGRWYWx1ZSgiT1tdIiwgUHlfTm9uZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRkxfTU9EVUxFX0ZPVU5EOiAgICAgLyogUmV0dXJuIChzZWxmLCBbXSkgKi8KKyAgICAgICAgcmVzdWx0ID0gUHlfQnVpbGRWYWx1ZSgiT1tdIiwgc2VsZik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRkxfTlNfRk9VTkQ6ICAgICAgICAgLyogUmV0dXJuIChOb25lLCBbbmFtZXNwYWNlX3BvcnRpb25dKSAqLworICAgICAgICByZXN1bHQgPSBQeV9CdWlsZFZhbHVlKCJPW09dIiwgUHlfTm9uZSwgbmFtZXNwYWNlX3BvcnRpb24pOworICAgICAgICBQeV9ERUNSRUYobmFtZXNwYWNlX3BvcnRpb24pOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiAvKiBMb2FkIGFuZCByZXR1cm4gdGhlIG1vZHVsZSBuYW1lZCBieSAnZnVsbG5hbWUnLiAqLwpAQCAtMzExLDE5ICs0MzksMjEgQEAKIHsKICAgICBaaXBJbXBvcnRlciAqc2VsZiA9IChaaXBJbXBvcnRlciAqKW9iajsKICAgICBQeU9iamVjdCAqY29kZSA9IE5VTEwsICptb2QsICpkaWN0OwotICAgIGNoYXIgKmZ1bGxuYW1lOwotICAgIFB5T2JqZWN0ICptb2RwYXRoID0gTlVMTCwgKm1vZHBhdGhfYnl0ZXM7CisgICAgUHlPYmplY3QgKmZ1bGxuYW1lOworICAgIFB5T2JqZWN0ICptb2RwYXRoID0gTlVMTDsKICAgICBpbnQgaXNwYWNrYWdlOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzOnppcGltcG9ydGVyLmxvYWRfbW9kdWxlIiwKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6emlwaW1wb3J0ZXIubG9hZF9tb2R1bGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAmZnVsbG5hbWUpKQogICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKGZ1bGxuYW1lKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBjb2RlID0gZ2V0X21vZHVsZV9jb2RlKHNlbGYsIGZ1bGxuYW1lLCAmaXNwYWNrYWdlLCAmbW9kcGF0aCk7CiAgICAgaWYgKGNvZGUgPT0gTlVMTCkKICAgICAgICAgZ290byBlcnJvcjsKIAotICAgIG1vZCA9IFB5SW1wb3J0X0FkZE1vZHVsZShmdWxsbmFtZSk7CisgICAgbW9kID0gUHlJbXBvcnRfQWRkTW9kdWxlT2JqZWN0KGZ1bGxuYW1lKTsKICAgICBpZiAobW9kID09IE5VTEwpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgZGljdCA9IFB5TW9kdWxlX0dldERpY3QobW9kKTsKQEAgLTMzNiwxNyArNDY2LDE3IEBACiAgICAgICAgIC8qIGFkZCBfX3BhdGhfXyB0byB0aGUgbW9kdWxlICpiZWZvcmUqIHRoZSBjb2RlIGdldHMKICAgICAgICAgICAgZXhlY3V0ZWQgKi8KICAgICAgICAgUHlPYmplY3QgKnBrZ3BhdGgsICpmdWxscGF0aDsKLSAgICAgICAgY2hhciAqc3VibmFtZSA9IGdldF9zdWJuYW1lKGZ1bGxuYW1lKTsKKyAgICAgICAgUHlPYmplY3QgKnN1Ym5hbWUgPSBnZXRfc3VibmFtZShmdWxsbmFtZSk7CiAgICAgICAgIGludCBlcnI7CiAKLSAgICAgICAgZnVsbHBhdGggPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJVUlYyVVJXMiLAorICAgICAgICBmdWxscGF0aCA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlVSVjJVUlVSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmFyY2hpdmUsIFNFUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+cHJlZml4LCBzdWJuYW1lKTsKKyAgICAgICAgUHlfREVDUkVGKHN1Ym5hbWUpOwogICAgICAgICBpZiAoZnVsbHBhdGggPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAKLSAgICAgICAgcGtncGF0aCA9IFB5X0J1aWxkVmFsdWUoIltPXSIsIGZ1bGxwYXRoKTsKLSAgICAgICAgUHlfREVDUkVGKGZ1bGxwYXRoKTsKKyAgICAgICAgcGtncGF0aCA9IFB5X0J1aWxkVmFsdWUoIltOXSIsIGZ1bGxwYXRoKTsKICAgICAgICAgaWYgKHBrZ3BhdGggPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgIGVyciA9IFB5RGljdF9TZXRJdGVtU3RyaW5nKGRpY3QsICJfX3BhdGhfXyIsIHBrZ3BhdGgpOwpAQCAtMzU0LDE4ICs0ODQsMTMgQEAKICAgICAgICAgaWYgKGVyciAhPSAwKQogICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICB9Ci0gICAgbW9kcGF0aF9ieXRlcyA9IFB5VW5pY29kZV9FbmNvZGVGU0RlZmF1bHQobW9kcGF0aCk7Ci0gICAgaWYgKG1vZHBhdGhfYnl0ZXMgPT0gTlVMTCkKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICBtb2QgPSBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZUV4KGZ1bGxuYW1lLCBjb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcobW9kcGF0aF9ieXRlcykpOwotICAgIFB5X0RFQ1JFRihtb2RwYXRoX2J5dGVzKTsKKyAgICBtb2QgPSBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZU9iamVjdChmdWxsbmFtZSwgY29kZSwgbW9kcGF0aCwgTlVMTCk7CiAgICAgUHlfQ0xFQVIoY29kZSk7CiAgICAgaWYgKG1vZCA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogCiAgICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQotICAgICAgICBQeVN5c19Gb3JtYXRTdGRlcnIoImltcG9ydCAlcyAjIGxvYWRlZCBmcm9tIFppcCAlVVxuIiwKKyAgICAgICAgUHlTeXNfRm9ybWF0U3RkZXJyKCJpbXBvcnQgJVUgIyBsb2FkZWQgZnJvbSBaaXAgJVVcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsbmFtZSwgbW9kcGF0aCk7CiAgICAgUHlfREVDUkVGKG1vZHBhdGgpOwogICAgIHJldHVybiBtb2Q7CkBAIC0zODAsMTIgKzUwNSwxMCBAQAogemlwaW1wb3J0ZXJfZ2V0X2ZpbGVuYW1lKFB5T2JqZWN0ICpvYmosIFB5T2JqZWN0ICphcmdzKQogewogICAgIFppcEltcG9ydGVyICpzZWxmID0gKFppcEltcG9ydGVyICopb2JqOwotICAgIFB5T2JqZWN0ICpjb2RlOwotICAgIGNoYXIgKmZ1bGxuYW1lOwotICAgIFB5T2JqZWN0ICptb2RwYXRoOworICAgIFB5T2JqZWN0ICpmdWxsbmFtZSwgKmNvZGUsICptb2RwYXRoOwogICAgIGludCBpc3BhY2thZ2U7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInM6emlwaW1wb3J0ZXIuZ2V0X2ZpbGVuYW1lIiwKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6emlwaW1wb3J0ZXIuZ2V0X2ZpbGVuYW1lIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZ1bGxuYW1lKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTQwNCwxMCArNTI3LDEwIEBACiB6aXBpbXBvcnRlcl9pc19wYWNrYWdlKFB5T2JqZWN0ICpvYmosIFB5T2JqZWN0ICphcmdzKQogewogICAgIFppcEltcG9ydGVyICpzZWxmID0gKFppcEltcG9ydGVyICopb2JqOwotICAgIGNoYXIgKmZ1bGxuYW1lOworICAgIFB5T2JqZWN0ICpmdWxsbmFtZTsKICAgICBlbnVtIHppX21vZHVsZV9pbmZvIG1pOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzOnppcGltcG9ydGVyLmlzX3BhY2thZ2UiLAorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVTp6aXBpbXBvcnRlci5pc19wYWNrYWdlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZ1bGxuYW1lKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTQxNSw3MSArNTM4LDcwIEBACiAgICAgaWYgKG1pID09IE1JX0VSUk9SKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAobWkgPT0gTUlfTk9UX0ZPVU5EKSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChaaXBJbXBvcnRFcnJvciwgImNhbid0IGZpbmQgbW9kdWxlICclcyciLCBmdWxsbmFtZSk7CisgICAgICAgIFB5RXJyX0Zvcm1hdChaaXBJbXBvcnRFcnJvciwgImNhbid0IGZpbmQgbW9kdWxlICVSIiwgZnVsbG5hbWUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZyhtaSA9PSBNSV9QQUNLQUdFKTsKIH0KIAorCiBzdGF0aWMgUHlPYmplY3QgKgogemlwaW1wb3J0ZXJfZ2V0X2RhdGEoUHlPYmplY3QgKm9iaiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgWmlwSW1wb3J0ZXIgKnNlbGYgPSAoWmlwSW1wb3J0ZXIgKilvYmo7Ci0gICAgUHlPYmplY3QgKnBhdGhvYmosICprZXk7Ci0gICAgY29uc3QgUHlfVU5JQ09ERSAqcGF0aDsKKyAgICBQeU9iamVjdCAqcGF0aCwgKmtleTsKICNpZmRlZiBBTFRTRVAKLSAgICBQeV9VTklDT0RFICpwLCBidWZbTUFYUEFUSExFTiArIDFdOworICAgIF9QeV9JREVOVElGSUVSKHJlcGxhY2UpOwogI2VuZGlmCi0gICAgUHlfVU5JQ09ERSAqYXJjaGl2ZTsKICAgICBQeU9iamVjdCAqdG9jX2VudHJ5OwotICAgIFB5X3NzaXplX3QgcGF0aF9sZW4sIGxlbjsKKyAgICBQeV9zc2l6ZV90IHBhdGhfc3RhcnQsIHBhdGhfbGVuLCBsZW47CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6emlwaW1wb3J0ZXIuZ2V0X2RhdGEiLCAmcGF0aG9iaikpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVOnppcGltcG9ydGVyLmdldF9kYXRhIiwgJnBhdGgpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHBhdGhfbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKHBhdGhvYmopOwotICAgIHBhdGggPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShwYXRob2JqKTsKICNpZmRlZiBBTFRTRVAKLSAgICBpZiAocGF0aF9sZW4gPj0gTUFYUEFUSExFTikgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoWmlwSW1wb3J0RXJyb3IsICJwYXRoIHRvbyBsb25nIik7CisgICAgcGF0aCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQocGF0aCwgJlB5SWRfcmVwbGFjZSwgIkNDIiwgQUxUU0VQLCBTRVApOworICAgIGlmICghcGF0aCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIFB5X1VOSUNPREVfc3RyY3B5KGJ1ZiwgcGF0aCk7Ci0gICAgZm9yIChwID0gYnVmOyAqcDsgcCsrKSB7Ci0gICAgICAgIGlmICgqcCA9PSBBTFRTRVApCi0gICAgICAgICAgICAqcCA9IFNFUDsKLSAgICB9Ci0gICAgcGF0aCA9IGJ1ZjsKKyNlbHNlCisgICAgUHlfSU5DUkVGKHBhdGgpOwogI2VuZGlmCi0gICAgYXJjaGl2ZSA9IFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYtPmFyY2hpdmUpOwotICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRShzZWxmLT5hcmNoaXZlKTsKLSAgICBpZiAoKHNpemVfdClsZW4gPCBQeV9VTklDT0RFX3N0cmxlbihwYXRoKSAmJgotICAgICAgICBQeV9VTklDT0RFX3N0cm5jbXAocGF0aCwgYXJjaGl2ZSwgbGVuKSA9PSAwICYmCi0gICAgICAgIHBhdGhbbGVuXSA9PSBTRVApIHsKLSAgICAgICAgcGF0aCArPSBsZW4gKyAxOwotICAgICAgICBwYXRoX2xlbiAtPSBsZW4gKyAxOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkocGF0aCkgPT0gLTEpCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICBwYXRoX2xlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHBhdGgpOworCisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZi0+YXJjaGl2ZSk7CisgICAgcGF0aF9zdGFydCA9IDA7CisgICAgaWYgKFB5VW5pY29kZV9UYWlsbWF0Y2gocGF0aCwgc2VsZi0+YXJjaGl2ZSwgMCwgbGVuLCAtMSkKKyAgICAgICAgJiYgUHlVbmljb2RlX1JFQURfQ0hBUihwYXRoLCBsZW4pID09IFNFUCkgeworICAgICAgICBwYXRoX3N0YXJ0ID0gbGVuICsgMTsKICAgICB9CiAKLSAgICBrZXkgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocGF0aCwgcGF0aF9sZW4pOworICAgIGtleSA9IFB5VW5pY29kZV9TdWJzdHJpbmcocGF0aCwgcGF0aF9zdGFydCwgcGF0aF9sZW4pOwogICAgIGlmIChrZXkgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgdG9jX2VudHJ5ID0gUHlEaWN0X0dldEl0ZW0oc2VsZi0+ZmlsZXMsIGtleSk7CiAgICAgaWYgKHRvY19lbnRyeSA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZU9iamVjdChQeUV4Y19JT0Vycm9yLCBrZXkpOwogICAgICAgICBQeV9ERUNSRUYoa2V5KTsKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQogICAgIFB5X0RFQ1JFRihrZXkpOworICAgIFB5X0RFQ1JFRihwYXRoKTsKICAgICByZXR1cm4gZ2V0X2RhdGEoc2VsZi0+YXJjaGl2ZSwgdG9jX2VudHJ5KTsKKyAgZXJyb3I6CisgICAgUHlfREVDUkVGKHBhdGgpOworICAgIHJldHVybiBOVUxMOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgogemlwaW1wb3J0ZXJfZ2V0X2NvZGUoUHlPYmplY3QgKm9iaiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgWmlwSW1wb3J0ZXIgKnNlbGYgPSAoWmlwSW1wb3J0ZXIgKilvYmo7Ci0gICAgY2hhciAqZnVsbG5hbWU7CisgICAgUHlPYmplY3QgKmZ1bGxuYW1lOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzOnppcGltcG9ydGVyLmdldF9jb2RlIiwgJmZ1bGxuYW1lKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6emlwaW1wb3J0ZXIuZ2V0X2NvZGUiLCAmZnVsbG5hbWUpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHJldHVybiBnZXRfbW9kdWxlX2NvZGUoc2VsZiwgZnVsbG5hbWUsIE5VTEwsIE5VTEwpOwpAQCAtNDkwLDM0ICs2MTIsMzkgQEAKIHsKICAgICBaaXBJbXBvcnRlciAqc2VsZiA9IChaaXBJbXBvcnRlciAqKW9iajsKICAgICBQeU9iamVjdCAqdG9jX2VudHJ5OwotICAgIGNoYXIgKmZ1bGxuYW1lLCAqc3VibmFtZSwgcGF0aFtNQVhQQVRITEVOKzFdOwotICAgIGludCBsZW47CisgICAgUHlPYmplY3QgKmZ1bGxuYW1lLCAqc3VibmFtZSwgKnBhdGgsICpmdWxscGF0aDsKICAgICBlbnVtIHppX21vZHVsZV9pbmZvIG1pOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzOnppcGltcG9ydGVyLmdldF9zb3VyY2UiLCAmZnVsbG5hbWUpKQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVTp6aXBpbXBvcnRlci5nZXRfc291cmNlIiwgJmZ1bGxuYW1lKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBtaSA9IGdldF9tb2R1bGVfaW5mbyhzZWxmLCBmdWxsbmFtZSk7CiAgICAgaWYgKG1pID09IE1JX0VSUk9SKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAobWkgPT0gTUlfTk9UX0ZPVU5EKSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChaaXBJbXBvcnRFcnJvciwgImNhbid0IGZpbmQgbW9kdWxlICclcyciLCBmdWxsbmFtZSk7CisgICAgICAgIFB5RXJyX0Zvcm1hdChaaXBJbXBvcnRFcnJvciwgImNhbid0IGZpbmQgbW9kdWxlICVSIiwgZnVsbG5hbWUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CisKICAgICBzdWJuYW1lID0gZ2V0X3N1Ym5hbWUoZnVsbG5hbWUpOwotCi0gICAgbGVuID0gbWFrZV9maWxlbmFtZShzZWxmLT5wcmVmaXgsIHN1Ym5hbWUsIHBhdGgsIHNpemVvZihwYXRoKSk7Ci0gICAgaWYgKGxlbiA8IDApCisgICAgaWYgKHN1Ym5hbWUgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAobWkgPT0gTUlfUEFDS0FHRSkgewotICAgICAgICBwYXRoW2xlbl0gPSBTRVA7Ci0gICAgICAgIHN0cmNweShwYXRoICsgbGVuICsgMSwgIl9faW5pdF9fLnB5Iik7Ci0gICAgfQotICAgIGVsc2UKLSAgICAgICAgc3RyY3B5KHBhdGggKyBsZW4sICIucHkiKTsKKyAgICBwYXRoID0gbWFrZV9maWxlbmFtZShzZWxmLT5wcmVmaXgsIHN1Ym5hbWUpOworICAgIFB5X0RFQ1JFRihzdWJuYW1lKTsKKyAgICBpZiAocGF0aCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHRvY19lbnRyeSA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKHNlbGYtPmZpbGVzLCBwYXRoKTsKKyAgICBpZiAobWkgPT0gTUlfUEFDS0FHRSkKKyAgICAgICAgZnVsbHBhdGggPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJVUlY19faW5pdF9fLnB5IiwgcGF0aCwgU0VQKTsKKyAgICBlbHNlCisgICAgICAgIGZ1bGxwYXRoID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVVLnB5IiwgcGF0aCk7CisgICAgUHlfREVDUkVGKHBhdGgpOworICAgIGlmIChmdWxscGF0aCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHRvY19lbnRyeSA9IFB5RGljdF9HZXRJdGVtKHNlbGYtPmZpbGVzLCBmdWxscGF0aCk7CisgICAgUHlfREVDUkVGKGZ1bGxwYXRoKTsKICAgICBpZiAodG9jX2VudHJ5ICE9IE5VTEwpIHsKICAgICAgICAgUHlPYmplY3QgKnJlcywgKmJ5dGVzOwogICAgICAgICBieXRlcyA9IGdldF9kYXRhKHNlbGYtPmFyY2hpdmUsIHRvY19lbnRyeSk7CkBAIC01NDMsNiArNjcwLDE2IEBACiBUaGUgb3B0aW9uYWwgJ3BhdGgnIGFyZ3VtZW50IGlzIGlnbm9yZWQgLS0gaXQncyB0aGVyZSBmb3IgY29tcGF0aWJpbGl0eVxuXAogd2l0aCB0aGUgaW1wb3J0ZXIgcHJvdG9jb2wuIik7CiAKK1B5RG9jX1NUUlZBUihkb2NfZmluZF9sb2FkZXIsCisiZmluZF9sb2FkZXIoZnVsbG5hbWUsIHBhdGg9Tm9uZSkgLT4gc2VsZiwgc3RyIG9yIE5vbmUuXG5cCitcblwKK1NlYXJjaCBmb3IgYSBtb2R1bGUgc3BlY2lmaWVkIGJ5ICdmdWxsbmFtZScuICdmdWxsbmFtZScgbXVzdCBiZSB0aGVcblwKK2Z1bGx5IHF1YWxpZmllZCAoZG90dGVkKSBtb2R1bGUgbmFtZS4gSXQgcmV0dXJucyB0aGUgemlwaW1wb3J0ZXJcblwKK2luc3RhbmNlIGl0c2VsZiBpZiB0aGUgbW9kdWxlIHdhcyBmb3VuZCwgYSBzdHJpbmcgY29udGFpbmluZyB0aGVcblwKK2Z1bGwgcGF0aCBuYW1lIGlmIGl0J3MgcG9zc2libHkgYSBwb3J0aW9uIG9mIGEgbmFtZXNwYWNlIHBhY2thZ2UsXG5cCitvciBOb25lIG90aGVyd2lzZS4gVGhlIG9wdGlvbmFsICdwYXRoJyBhcmd1bWVudCBpcyBpZ25vcmVkIC0tIGl0J3NcblwKKyB0aGVyZSBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBpbXBvcnRlciBwcm90b2NvbC4iKTsKKwogUHlEb2NfU1RSVkFSKGRvY19sb2FkX21vZHVsZSwKICJsb2FkX21vZHVsZShmdWxsbmFtZSkgLT4gbW9kdWxlLlxuXAogXG5cCkBAIC01ODQsNiArNzIxLDggQEAKIHN0YXRpYyBQeU1ldGhvZERlZiB6aXBpbXBvcnRlcl9tZXRob2RzW10gPSB7CiAgICAgeyJmaW5kX21vZHVsZSIsIHppcGltcG9ydGVyX2ZpbmRfbW9kdWxlLCBNRVRIX1ZBUkFSR1MsCiAgICAgIGRvY19maW5kX21vZHVsZX0sCisgICAgeyJmaW5kX2xvYWRlciIsIHppcGltcG9ydGVyX2ZpbmRfbG9hZGVyLCBNRVRIX1ZBUkFSR1MsCisgICAgIGRvY19maW5kX2xvYWRlcn0sCiAgICAgeyJsb2FkX21vZHVsZSIsIHppcGltcG9ydGVyX2xvYWRfbW9kdWxlLCBNRVRIX1ZBUkFSR1MsCiAgICAgIGRvY19sb2FkX21vZHVsZX0sCiAgICAgeyJnZXRfZGF0YSIsIHppcGltcG9ydGVyX2dldF9kYXRhLCBNRVRIX1ZBUkFSR1MsCkBAIC03MDgsNTAgKzg0Nyw0MSBAQAogICAgZGF0YV9zaXplIGFuZCBmaWxlX29mZnNldCBhcmUgMC4KICovCiBzdGF0aWMgUHlPYmplY3QgKgotcmVhZF9kaXJlY3RvcnkoUHlPYmplY3QgKmFyY2hpdmVfb2JqKQorcmVhZF9kaXJlY3RvcnkoUHlPYmplY3QgKmFyY2hpdmUpCiB7Ci0gICAgLyogRklYTUU6IHdvcmsgb24gUHlfVU5JQ09ERSogaW5zdGVhZCBvZiBjaGFyKiAqLwogICAgIFB5T2JqZWN0ICpmaWxlcyA9IE5VTEw7CiAgICAgRklMRSAqZnA7CiAgICAgdW5zaWduZWQgc2hvcnQgZmxhZ3M7CiAgICAgc2hvcnQgY29tcHJlc3MsIHRpbWUsIGRhdGUsIG5hbWVfc2l6ZTsKICAgICBsb25nIGNyYywgZGF0YV9zaXplLCBmaWxlX3NpemUsIGhlYWRlcl9zaXplOwogICAgIFB5X3NzaXplX3QgZmlsZV9vZmZzZXQsIGhlYWRlcl9wb3NpdGlvbiwgaGVhZGVyX29mZnNldDsKLSAgICBsb25nIGksIGwsIGNvdW50OwotICAgIHNpemVfdCBsZW5ndGg7Ci0gICAgUHlfVU5JQ09ERSBwYXRoW01BWFBBVEhMRU4gKyA1XTsKKyAgICBsb25nIGwsIGNvdW50OworICAgIFB5X3NzaXplX3QgaTsKICAgICBjaGFyIG5hbWVbTUFYUEFUSExFTiArIDVdOwogICAgIFB5T2JqZWN0ICpuYW1lb2JqID0gTlVMTDsKICAgICBjaGFyICpwLCBlbmRvZl9jZW50cmFsX2RpclsyMl07CiAgICAgUHlfc3NpemVfdCBhcmNfb2Zmc2V0OyAgLyogQWJzb2x1dGUgb2Zmc2V0IHRvIHN0YXJ0IG9mIHRoZSB6aXAtYXJjaGl2ZS4gKi8KLSAgICBQeU9iamVjdCAqcGF0aG9iajsKKyAgICBQeU9iamVjdCAqcGF0aDsKICAgICBjb25zdCBjaGFyICpjaGFyc2V0OwogICAgIGludCBib290c3RyYXA7CiAKLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKGFyY2hpdmVfb2JqKSA+IE1BWFBBVEhMRU4pIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiWmlwIHBhdGggbmFtZSBpcyB0b28gbG9uZyIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgUHlfVU5JQ09ERV9zdHJjcHkocGF0aCwgUHlVbmljb2RlX0FTX1VOSUNPREUoYXJjaGl2ZV9vYmopKTsKLQotICAgIGZwID0gX1B5X2ZvcGVuKGFyY2hpdmVfb2JqLCAicmIiKTsKKyAgICBmcCA9IF9QeV9mb3BlbihhcmNoaXZlLCAicmIiKTsKICAgICBpZiAoZnAgPT0gTlVMTCkgewogICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoWmlwSW1wb3J0RXJyb3IsICJjYW4ndCBvcGVuIFppcCBmaWxlOiAnJVUnIiwgYXJjaGl2ZV9vYmopOworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFppcEltcG9ydEVycm9yLCAiY2FuJ3Qgb3BlbiBaaXAgZmlsZTogJVIiLCBhcmNoaXZlKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIGZzZWVrKGZwLCAtMjIsIFNFRUtfRU5EKTsKICAgICBoZWFkZXJfcG9zaXRpb24gPSBmdGVsbChmcCk7CiAgICAgaWYgKGZyZWFkKGVuZG9mX2NlbnRyYWxfZGlyLCAxLCAyMiwgZnApICE9IDIyKSB7CiAgICAgICAgIGZjbG9zZShmcCk7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChaaXBJbXBvcnRFcnJvciwgImNhbid0IHJlYWQgWmlwIGZpbGU6ICclVSciLCBhcmNoaXZlX29iaik7CisgICAgICAgIFB5RXJyX0Zvcm1hdChaaXBJbXBvcnRFcnJvciwgImNhbid0IHJlYWQgWmlwIGZpbGU6ICVSIiwgYXJjaGl2ZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBpZiAoZ2V0X2xvbmcoKHVuc2lnbmVkIGNoYXIgKillbmRvZl9jZW50cmFsX2RpcikgIT0gMHgwNjA1NEI1MCkgewogICAgICAgICAvKiBCYWQ6IEVuZCBvZiBDZW50cmFsIERpciBzaWduYXR1cmUgKi8KICAgICAgICAgZmNsb3NlKGZwKTsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFppcEltcG9ydEVycm9yLCAibm90IGEgWmlwIGZpbGU6ICclVSciLCBhcmNoaXZlX29iaik7CisgICAgICAgIFB5RXJyX0Zvcm1hdChaaXBJbXBvcnRFcnJvciwgIm5vdCBhIFppcCBmaWxlOiAlUiIsIGFyY2hpdmUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTc2NCw5ICs4OTQsNiBAQAogICAgIGlmIChmaWxlcyA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogCi0gICAgbGVuZ3RoID0gUHlfVU5JQ09ERV9zdHJsZW4ocGF0aCk7Ci0gICAgcGF0aFtsZW5ndGhdID0gU0VQOwotCiAgICAgLyogU3RhcnQgb2YgQ2VudHJhbCBEaXJlY3RvcnkgKi8KICAgICBjb3VudCA9IDA7CiAgICAgZm9yICg7OykgewpAQCAtNzk1LDcgKzkyMiw3IEBACiAgICAgICAgICAgICBuYW1lX3NpemUgPSBNQVhQQVRITEVOOwogCiAgICAgICAgIHAgPSBuYW1lOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmFtZV9zaXplOyBpKyspIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IChQeV9zc2l6ZV90KW5hbWVfc2l6ZTsgaSsrKSB7CiAgICAgICAgICAgICAqcCA9IChjaGFyKWdldGMoZnApOwogICAgICAgICAgICAgaWYgKCpwID09ICcvJykKICAgICAgICAgICAgICAgICAqcCA9IFNFUDsKQEAgLTgyMCw2ICs5NDcsOCBAQAogICAgICAgICBlbHNlCiAgICAgICAgICAgICBjaGFyc2V0ID0gImNwNDM3IjsKICAgICAgICAgbmFtZW9iaiA9IFB5VW5pY29kZV9EZWNvZGUobmFtZSwgbmFtZV9zaXplLCBjaGFyc2V0LCBOVUxMKTsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShuYW1lb2JqKSA9PSAtMSkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgIGlmIChuYW1lb2JqID09IE5VTEwpIHsKICAgICAgICAgICAgIGlmIChib290c3RyYXApCiAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3IsCkBAIC04MjgsMTIgKzk1NywxMCBAQAogICAgICAgICAgICAgICAgICAgICBQWV9NQUpPUl9WRVJTSU9OLCBQWV9NSU5PUl9WRVJTSU9OKTsKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgIH0KLSAgICAgICAgUHlfVU5JQ09ERV9zdHJuY3B5KHBhdGggKyBsZW5ndGggKyAxLCBQeVVuaWNvZGVfQVNfVU5JQ09ERShuYW1lb2JqKSwgTUFYUEFUSExFTiAtIGxlbmd0aCAtIDEpOwotCi0gICAgICAgIHBhdGhvYmogPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocGF0aCwgUHlfVU5JQ09ERV9zdHJsZW4ocGF0aCkpOwotICAgICAgICBpZiAocGF0aG9iaiA9PSBOVUxMKQorICAgICAgICBwYXRoID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVVJWMlVSIsIGFyY2hpdmUsIFNFUCwgbmFtZW9iaik7CisgICAgICAgIGlmIChwYXRoID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICB0ID0gUHlfQnVpbGRWYWx1ZSgiTmhsbG5oaGwiLCBwYXRob2JqLCBjb21wcmVzcywgZGF0YV9zaXplLAorICAgICAgICB0ID0gUHlfQnVpbGRWYWx1ZSgiTmhsbG5oaGwiLCBwYXRoLCBjb21wcmVzcywgZGF0YV9zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX3NpemUsIGZpbGVfb2Zmc2V0LCB0aW1lLCBkYXRlLCBjcmMpOwogICAgICAgICBpZiAodCA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBlcnJvcjsKQEAgLTg0Niw4ICs5NzMsOCBAQAogICAgIH0KICAgICBmY2xvc2UoZnApOwogICAgIGlmIChQeV9WZXJib3NlRmxhZykKLSAgICAgICAgUHlTeXNfRm9ybWF0U3RkZXJyKCIjIHppcGltcG9ydDogZm91bmQgJWxkIG5hbWVzIGluICVVXG4iLAotICAgICAgICAgICAgY291bnQsIGFyY2hpdmVfb2JqKTsKKyAgICAgICAgUHlTeXNfRm9ybWF0U3RkZXJyKCIjIHppcGltcG9ydDogZm91bmQgJWxkIG5hbWVzIGluICVSXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQsIGFyY2hpdmUpOwogICAgIHJldHVybiBmaWxlczsKIGVycm9yOgogICAgIGZjbG9zZShmcCk7CkBAIC04NjUsNiArOTkyLDcgQEAKICAgICBzdGF0aWMgaW50IGltcG9ydGluZ196bGliID0gMDsKICAgICBQeU9iamVjdCAqemxpYjsKICAgICBQeU9iamVjdCAqZGVjb21wcmVzczsKKyAgICBfUHlfSURFTlRJRklFUihkZWNvbXByZXNzKTsKIAogICAgIGlmIChpbXBvcnRpbmdfemxpYiAhPSAwKQogICAgICAgICAvKiBTb21lb25lIGhhcyBhIHpsaWIucHlbY29dIGluIHRoZWlyIFppcCBmaWxlOwpAQCAtODc0LDggKzEwMDIsOCBAQAogICAgIHpsaWIgPSBQeUltcG9ydF9JbXBvcnRNb2R1bGVOb0Jsb2NrKCJ6bGliIik7CiAgICAgaW1wb3J0aW5nX3psaWIgPSAwOwogICAgIGlmICh6bGliICE9IE5VTEwpIHsKLSAgICAgICAgZGVjb21wcmVzcyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoemxpYiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlY29tcHJlc3MiKTsKKyAgICAgICAgZGVjb21wcmVzcyA9IF9QeU9iamVjdF9HZXRBdHRySWQoemxpYiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlB5SWRfZGVjb21wcmVzcyk7CiAgICAgICAgIFB5X0RFQ1JFRih6bGliKTsKICAgICB9CiAgICAgZWxzZSB7CkBAIC0xMDAxLDcgKzExMjksNyBAQAogICAgdG8gLnB5IGlmIGF2YWlsYWJsZSBhbmQgd2UgZG9uJ3Qgd2FudCB0byBtYXNrIG90aGVyIGVycm9ycykuCiAgICBSZXR1cm5zIGEgbmV3IHJlZmVyZW5jZS4gKi8KIHN0YXRpYyBQeU9iamVjdCAqCi11bm1hcnNoYWxfY29kZShjaGFyICpwYXRobmFtZSwgUHlPYmplY3QgKmRhdGEsIHRpbWVfdCBtdGltZSkKK3VubWFyc2hhbF9jb2RlKFB5T2JqZWN0ICpwYXRobmFtZSwgUHlPYmplY3QgKmRhdGEsIHRpbWVfdCBtdGltZSkKIHsKICAgICBQeU9iamVjdCAqY29kZTsKICAgICBjaGFyICpidWYgPSBQeUJ5dGVzX0FzU3RyaW5nKGRhdGEpOwpAQCAtMTAxNSw4ICsxMTQzLDggQEAKIAogICAgIGlmIChnZXRfbG9uZygodW5zaWduZWQgY2hhciAqKWJ1ZikgIT0gUHlJbXBvcnRfR2V0TWFnaWNOdW1iZXIoKSkgewogICAgICAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigiIyAlcyBoYXMgYmFkIG1hZ2ljXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUpOworICAgICAgICAgICAgUHlTeXNfRm9ybWF0U3RkZXJyKCIjICVSIGhhcyBiYWQgbWFnaWNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUpOwogICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgICAgIHJldHVybiBQeV9Ob25lOyAgLyogc2lnbmFsIGNhbGxlciB0byB0cnkgYWx0ZXJuYXRpdmUgKi8KICAgICB9CkBAIC0xMDI0LDE5ICsxMTUyLDIxIEBACiAgICAgaWYgKG10aW1lICE9IDAgJiYgIWVxX210aW1lKGdldF9sb25nKCh1bnNpZ25lZCBjaGFyICopYnVmICsgNCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10aW1lKSkgewogICAgICAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigiIyAlcyBoYXMgYmFkIG10aW1lXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUpOworICAgICAgICAgICAgUHlTeXNfRm9ybWF0U3RkZXJyKCIjICVSIGhhcyBiYWQgbXRpbWVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUpOwogICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgICAgIHJldHVybiBQeV9Ob25lOyAgLyogc2lnbmFsIGNhbGxlciB0byB0cnkgYWx0ZXJuYXRpdmUgKi8KICAgICB9CiAKLSAgICBjb2RlID0gUHlNYXJzaGFsX1JlYWRPYmplY3RGcm9tU3RyaW5nKGJ1ZiArIDgsIHNpemUgLSA4KTsKKyAgICAvKiBYWFggdGhlIHB5YydzIHNpemUgZmllbGQgaXMgaWdub3JlZDsgdGltZXN0YW1wIGNvbGxpc2lvbnMgYXJlIHByb2JhYmx5CisgICAgICAgdW5pbXBvcnRhbnQgd2l0aCB6aXAgZmlsZXMuICovCisgICAgY29kZSA9IFB5TWFyc2hhbF9SZWFkT2JqZWN0RnJvbVN0cmluZyhidWYgKyAxMiwgc2l6ZSAtIDEyKTsKICAgICBpZiAoY29kZSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAoIVB5Q29kZV9DaGVjayhjb2RlKSkgewogICAgICAgICBQeV9ERUNSRUYoY29kZSk7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgImNvbXBpbGVkIG1vZHVsZSAlcyBpcyBub3QgYSBjb2RlIG9iamVjdCIsCisgICAgICAgICAgICAgImNvbXBpbGVkIG1vZHVsZSAlUiBpcyBub3QgYSBjb2RlIG9iamVjdCIsCiAgICAgICAgICAgICAgcGF0aG5hbWUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC0xMDUwLDExICsxMTgwLDEyIEBACiBzdGF0aWMgUHlPYmplY3QgKgogbm9ybWFsaXplX2xpbmVfZW5kaW5ncyhQeU9iamVjdCAqc291cmNlKQogewotICAgIGNoYXIgKmJ1ZiwgKnEsICpwID0gUHlCeXRlc19Bc1N0cmluZyhzb3VyY2UpOworICAgIGNoYXIgKmJ1ZiwgKnEsICpwOwogICAgIFB5T2JqZWN0ICpmaXhlZF9zb3VyY2U7CiAgICAgaW50IGxlbiA9IDA7CiAKLSAgICBpZiAoIXApIHsKKyAgICBwID0gUHlCeXRlc19Bc1N0cmluZyhzb3VyY2UpOworICAgIGlmIChwID09IE5VTEwpIHsKICAgICAgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoIlxuXDAiLCAyKTsKICAgICB9CiAKQEAgLTEwODcsMTYgKzEyMTgsMjQgQEAKIC8qIEdpdmVuIGEgc3RyaW5nIGJ1ZmZlciBjb250YWluaW5nIFB5dGhvbiBzb3VyY2UgY29kZSwgY29tcGlsZSBpdAogICAgcmV0dXJuIGFuZCByZXR1cm4gYSBjb2RlIG9iamVjdCBhcyBhIG5ldyByZWZlcmVuY2UuICovCiBzdGF0aWMgUHlPYmplY3QgKgotY29tcGlsZV9zb3VyY2UoY2hhciAqcGF0aG5hbWUsIFB5T2JqZWN0ICpzb3VyY2UpCitjb21waWxlX3NvdXJjZShQeU9iamVjdCAqcGF0aG5hbWUsIFB5T2JqZWN0ICpzb3VyY2UpCiB7Ci0gICAgUHlPYmplY3QgKmNvZGUsICpmaXhlZF9zb3VyY2U7CisgICAgUHlPYmplY3QgKmNvZGUsICpmaXhlZF9zb3VyY2UsICpwYXRoYnl0ZXM7CiAKLSAgICBmaXhlZF9zb3VyY2UgPSBub3JtYWxpemVfbGluZV9lbmRpbmdzKHNvdXJjZSk7Ci0gICAgaWYgKGZpeGVkX3NvdXJjZSA9PSBOVUxMKQorICAgIHBhdGhieXRlcyA9IFB5VW5pY29kZV9FbmNvZGVGU0RlZmF1bHQocGF0aG5hbWUpOworICAgIGlmIChwYXRoYnl0ZXMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBjb2RlID0gUHlfQ29tcGlsZVN0cmluZyhQeUJ5dGVzX0FzU3RyaW5nKGZpeGVkX3NvdXJjZSksIHBhdGhuYW1lLAorICAgIGZpeGVkX3NvdXJjZSA9IG5vcm1hbGl6ZV9saW5lX2VuZGluZ3Moc291cmNlKTsKKyAgICBpZiAoZml4ZWRfc291cmNlID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKHBhdGhieXRlcyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIGNvZGUgPSBQeV9Db21waWxlU3RyaW5nKFB5Qnl0ZXNfQXNTdHJpbmcoZml4ZWRfc291cmNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0FzU3RyaW5nKHBhdGhieXRlcyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfZmlsZV9pbnB1dCk7CisgICAgUHlfREVDUkVGKHBhdGhieXRlcyk7CiAgICAgUHlfREVDUkVGKGZpeGVkX3NvdXJjZSk7CiAgICAgcmV0dXJuIGNvZGU7CiB9CkBAIC0xMTI1LDE0ICsxMjY0LDIyIEBACiAgICBtb2RpZmljYXRpb24gdGltZSBvZiB0aGUgbWF0Y2hpbmcgLnB5IGZpbGUsIG9yIDAgaWYgbm8gc291cmNlCiAgICBpcyBhdmFpbGFibGUuICovCiBzdGF0aWMgdGltZV90Ci1nZXRfbXRpbWVfb2Zfc291cmNlKFppcEltcG9ydGVyICpzZWxmLCBjaGFyICpwYXRoKQorZ2V0X210aW1lX29mX3NvdXJjZShaaXBJbXBvcnRlciAqc2VsZiwgUHlPYmplY3QgKnBhdGgpCiB7Ci0gICAgUHlPYmplY3QgKnRvY19lbnRyeTsKLSAgICB0aW1lX3QgbXRpbWUgPSAwOwotICAgIFB5X3NzaXplX3QgbGFzdGNoYXIgPSBzdHJsZW4ocGF0aCkgLSAxOwotICAgIGNoYXIgc2F2ZWNoYXIgPSBwYXRoW2xhc3RjaGFyXTsKLSAgICBwYXRoW2xhc3RjaGFyXSA9ICdcMCc7ICAvKiBzdHJpcCAnYycgb3IgJ28nIGZyb20gKi5weVtjb10gKi8KLSAgICB0b2NfZW50cnkgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhzZWxmLT5maWxlcywgcGF0aCk7CisgICAgUHlPYmplY3QgKnRvY19lbnRyeSwgKnN0cmlwcGVkOworICAgIHRpbWVfdCBtdGltZTsKKworICAgIC8qIHN0cmlwICdjJyBvciAnbycgZnJvbSAqLnB5W2NvXSAqLworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkocGF0aCkgPT0gLTEpCisgICAgICAgIHJldHVybiAodGltZV90KS0xOworICAgIHN0cmlwcGVkID0gUHlVbmljb2RlX0Zyb21LaW5kQW5kRGF0YShQeVVuaWNvZGVfS0lORChwYXRoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0RBVEEocGF0aCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHBhdGgpIC0gMSk7CisgICAgaWYgKHN0cmlwcGVkID09IE5VTEwpCisgICAgICAgIHJldHVybiAodGltZV90KS0xOworCisgICAgdG9jX2VudHJ5ID0gUHlEaWN0X0dldEl0ZW0oc2VsZi0+ZmlsZXMsIHN0cmlwcGVkKTsKKyAgICBQeV9ERUNSRUYoc3RyaXBwZWQpOwogICAgIGlmICh0b2NfZW50cnkgIT0gTlVMTCAmJiBQeVR1cGxlX0NoZWNrKHRvY19lbnRyeSkgJiYKICAgICAgICAgUHlUdXBsZV9TaXplKHRvY19lbnRyeSkgPT0gOCkgewogICAgICAgICAvKiBmZXRjaCB0aGUgdGltZSBzdGFtcCBvZiB0aGUgLnB5IGZpbGUgZm9yIGNvbXBhcmlzb24KQEAgLTExNDEsOCArMTI4OCw4IEBACiAgICAgICAgIHRpbWUgPSBQeUxvbmdfQXNMb25nKFB5VHVwbGVfR2V0SXRlbSh0b2NfZW50cnksIDUpKTsKICAgICAgICAgZGF0ZSA9IFB5TG9uZ19Bc0xvbmcoUHlUdXBsZV9HZXRJdGVtKHRvY19lbnRyeSwgNikpOwogICAgICAgICBtdGltZSA9IHBhcnNlX2Rvc3RpbWUodGltZSwgZGF0ZSk7Ci0gICAgfQotICAgIHBhdGhbbGFzdGNoYXJdID0gc2F2ZWNoYXI7CisgICAgfSBlbHNlCisgICAgICAgIG10aW1lID0gMDsKICAgICByZXR1cm4gbXRpbWU7CiB9CiAKQEAgLTExNTIsMjQgKzEyOTksMTcgQEAKIGdldF9jb2RlX2Zyb21fZGF0YShaaXBJbXBvcnRlciAqc2VsZiwgaW50IGlzcGFja2FnZSwgaW50IGlzYnl0ZWNvZGUsCiAgICAgICAgICAgICAgICAgICAgdGltZV90IG10aW1lLCBQeU9iamVjdCAqdG9jX2VudHJ5KQogewotICAgIFB5T2JqZWN0ICpkYXRhLCAqY29kZTsKLSAgICBQeU9iamVjdCAqbW9kcGF0aDsKKyAgICBQeU9iamVjdCAqZGF0YSwgKm1vZHBhdGgsICpjb2RlOwogCiAgICAgZGF0YSA9IGdldF9kYXRhKHNlbGYtPmFyY2hpdmUsIHRvY19lbnRyeSk7CiAgICAgaWYgKGRhdGEgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBtb2RwYXRoID0gUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdChQeVR1cGxlX0dldEl0ZW0odG9jX2VudHJ5LCAwKSk7Ci0gICAgaWYgKG1vZHBhdGggPT0gTlVMTCkgewotICAgICAgICBQeV9ERUNSRUYoZGF0YSk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQorICAgIG1vZHBhdGggPSBQeVR1cGxlX0dldEl0ZW0odG9jX2VudHJ5LCAwKTsKICAgICBpZiAoaXNieXRlY29kZSkKLSAgICAgICAgY29kZSA9IHVubWFyc2hhbF9jb2RlKFB5Qnl0ZXNfQVNfU1RSSU5HKG1vZHBhdGgpLCBkYXRhLCBtdGltZSk7CisgICAgICAgIGNvZGUgPSB1bm1hcnNoYWxfY29kZShtb2RwYXRoLCBkYXRhLCBtdGltZSk7CiAgICAgZWxzZQotICAgICAgICBjb2RlID0gY29tcGlsZV9zb3VyY2UoUHlCeXRlc19BU19TVFJJTkcobW9kcGF0aCksIGRhdGEpOwotICAgIFB5X0RFQ1JFRihtb2RwYXRoKTsKKyAgICAgICAgY29kZSA9IGNvbXBpbGVfc291cmNlKG1vZHBhdGgsIGRhdGEpOwogICAgIFB5X0RFQ1JFRihkYXRhKTsKICAgICByZXR1cm4gY29kZTsKIH0KQEAgLTExNzcsMzUgKzEzMTcsNDUgQEAKIC8qIEdldCB0aGUgY29kZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBtb2R1bGUgc3BlY2lmaWVkIGJ5CiAgICAnZnVsbG5hbWUnLiAqLwogc3RhdGljIFB5T2JqZWN0ICoKLWdldF9tb2R1bGVfY29kZShaaXBJbXBvcnRlciAqc2VsZiwgY2hhciAqZnVsbG5hbWUsCitnZXRfbW9kdWxlX2NvZGUoWmlwSW1wb3J0ZXIgKnNlbGYsIFB5T2JqZWN0ICpmdWxsbmFtZSwKICAgICAgICAgICAgICAgICBpbnQgKnBfaXNwYWNrYWdlLCBQeU9iamVjdCAqKnBfbW9kcGF0aCkKIHsKLSAgICBQeU9iamVjdCAqdG9jX2VudHJ5OwotICAgIGNoYXIgKnN1Ym5hbWUsIHBhdGhbTUFYUEFUSExFTiArIDFdOwotICAgIGludCBsZW47CisgICAgUHlPYmplY3QgKmNvZGUgPSBOVUxMLCAqdG9jX2VudHJ5LCAqc3VibmFtZTsKKyAgICBQeU9iamVjdCAqcGF0aCwgKmZ1bGxwYXRoID0gTlVMTDsKICAgICBzdHJ1Y3Qgc3RfemlwX3NlYXJjaG9yZGVyICp6c287CiAKICAgICBzdWJuYW1lID0gZ2V0X3N1Ym5hbWUoZnVsbG5hbWUpOworICAgIGlmIChzdWJuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgbGVuID0gbWFrZV9maWxlbmFtZShzZWxmLT5wcmVmaXgsIHN1Ym5hbWUsIHBhdGgsIHNpemVvZihwYXRoKSk7Ci0gICAgaWYgKGxlbiA8IDApCisgICAgcGF0aCA9IG1ha2VfZmlsZW5hbWUoc2VsZi0+cHJlZml4LCBzdWJuYW1lKTsKKyAgICBQeV9ERUNSRUYoc3VibmFtZSk7CisgICAgaWYgKHBhdGggPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBmb3IgKHpzbyA9IHppcF9zZWFyY2hvcmRlcjsgKnpzby0+c3VmZml4OyB6c28rKykgewotICAgICAgICBQeU9iamVjdCAqY29kZSA9IE5VTEw7CisgICAgICAgIGNvZGUgPSBOVUxMOwogCi0gICAgICAgIHN0cmNweShwYXRoICsgbGVuLCB6c28tPnN1ZmZpeCk7CisgICAgICAgIGZ1bGxwYXRoID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVVJXMiLCBwYXRoLCB6c28tPnN1ZmZpeCk7CisgICAgICAgIGlmIChmdWxscGF0aCA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBleGl0OworCiAgICAgICAgIGlmIChQeV9WZXJib3NlRmxhZyA+IDEpCi0gICAgICAgICAgICBQeVN5c19Gb3JtYXRTdGRlcnIoIiMgdHJ5aW5nICVVJWMlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5hcmNoaXZlLCAoaW50KVNFUCwgcGF0aCk7Ci0gICAgICAgIHRvY19lbnRyeSA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKHNlbGYtPmZpbGVzLCBwYXRoKTsKKyAgICAgICAgICAgIFB5U3lzX0Zvcm1hdFN0ZGVycigiIyB0cnlpbmcgJVUlYyVVXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmFyY2hpdmUsIChpbnQpU0VQLCBmdWxscGF0aCk7CisgICAgICAgIHRvY19lbnRyeSA9IFB5RGljdF9HZXRJdGVtKHNlbGYtPmZpbGVzLCBmdWxscGF0aCk7CiAgICAgICAgIGlmICh0b2NfZW50cnkgIT0gTlVMTCkgewogICAgICAgICAgICAgdGltZV90IG10aW1lID0gMDsKICAgICAgICAgICAgIGludCBpc3BhY2thZ2UgPSB6c28tPnR5cGUgJiBJU19QQUNLQUdFOwogICAgICAgICAgICAgaW50IGlzYnl0ZWNvZGUgPSB6c28tPnR5cGUgJiBJU19CWVRFQ09ERTsKIAotICAgICAgICAgICAgaWYgKGlzYnl0ZWNvZGUpCi0gICAgICAgICAgICAgICAgbXRpbWUgPSBnZXRfbXRpbWVfb2Zfc291cmNlKHNlbGYsIHBhdGgpOworICAgICAgICAgICAgaWYgKGlzYnl0ZWNvZGUpIHsKKyAgICAgICAgICAgICAgICBtdGltZSA9IGdldF9tdGltZV9vZl9zb3VyY2Uoc2VsZiwgZnVsbHBhdGgpOworICAgICAgICAgICAgICAgIGlmIChtdGltZSA9PSAodGltZV90KS0xICYmIFB5RXJyX09jY3VycmVkKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBleGl0OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFB5X0NMRUFSKGZ1bGxwYXRoKTsKICAgICAgICAgICAgIGlmIChwX2lzcGFja2FnZSAhPSBOVUxMKQogICAgICAgICAgICAgICAgICpwX2lzcGFja2FnZSA9IGlzcGFja2FnZTsKICAgICAgICAgICAgIGNvZGUgPSBnZXRfY29kZV9mcm9tX2RhdGEoc2VsZiwgaXNwYWNrYWdlLApAQCAtMTIyMSwxMSArMTM3MSwxNiBAQAogICAgICAgICAgICAgICAgICpwX21vZHBhdGggPSBQeVR1cGxlX0dldEl0ZW0odG9jX2VudHJ5LCAwKTsKICAgICAgICAgICAgICAgICBQeV9JTkNSRUYoKnBfbW9kcGF0aCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gY29kZTsKKyAgICAgICAgICAgIGdvdG8gZXhpdDsKICAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBQeV9DTEVBUihmdWxscGF0aCk7CiAgICAgfQotICAgIFB5RXJyX0Zvcm1hdChaaXBJbXBvcnRFcnJvciwgImNhbid0IGZpbmQgbW9kdWxlICclcyciLCBmdWxsbmFtZSk7Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgUHlFcnJfRm9ybWF0KFppcEltcG9ydEVycm9yLCAiY2FuJ3QgZmluZCBtb2R1bGUgJVIiLCBmdWxsbmFtZSk7CitleGl0OgorICAgIFB5X0RFQ1JFRihwYXRoKTsKKyAgICBQeV9YREVDUkVGKGZ1bGxwYXRoKTsKKyAgICByZXR1cm4gY29kZTsKIH0KIAogCmRpZmYgLS1naXQgYS9Nb2R1bGVzL3psaWJtb2R1bGUuYyBiL01vZHVsZXMvemxpYm1vZHVsZS5jCmluZGV4IGExZTYwNWIuLjY1MTkxOTQgMTAwNjQ0Ci0tLSBhL01vZHVsZXMvemxpYm1vZHVsZS5jCisrKyBiL01vZHVsZXMvemxpYm1vZHVsZS5jCkBAIC00Myw3ICs0Myw5IEBACiAgICAgel9zdHJlYW0genN0OwogICAgIFB5T2JqZWN0ICp1bnVzZWRfZGF0YTsKICAgICBQeU9iamVjdCAqdW5jb25zdW1lZF90YWlsOworICAgIGNoYXIgZW9mOwogICAgIGludCBpc19pbml0aWFsaXNlZDsKKyAgICBQeU9iamVjdCAqemRpY3Q7CiAgICAgI2lmZGVmIFdJVEhfVEhSRUFECiAgICAgICAgIFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrOwogICAgICNlbmRpZgpAQCAtNzksMTQgKzgxLDM0IEBACiB9CiAKIFB5RG9jX1NUUlZBUihjb21wcmVzc29ial9fZG9jX18sCi0iY29tcHJlc3NvYmooW2xldmVsXSkgLS0gUmV0dXJuIGEgY29tcHJlc3NvciBvYmplY3QuXG4iCisiY29tcHJlc3NvYmoobGV2ZWw9LTEsIG1ldGhvZD1ERUZMQVRFRCwgd2JpdHM9MTUsIG1lbWxldmVsPTgsXG4iCisiICAgICAgICAgICAgc3RyYXRlZ3k9Wl9ERUZBVUxUX1NUUkFURUdZWywgemRpY3RdKVxuIgorIiAtLSBSZXR1cm4gYSBjb21wcmVzc29yIG9iamVjdC5cbiIKICJcbiIKLSJPcHRpb25hbCBhcmcgbGV2ZWwgaXMgdGhlIGNvbXByZXNzaW9uIGxldmVsLCBpbiAxLTkuIik7CisibGV2ZWwgaXMgdGhlIGNvbXByZXNzaW9uIGxldmVsIChhbiBpbnRlZ2VyIGluIHRoZSByYW5nZSAwLTk7IGRlZmF1bHQgaXMgNikuXG4iCisiSGlnaGVyIGNvbXByZXNzaW9uIGxldmVscyBhcmUgc2xvd2VyLCBidXQgcHJvZHVjZSBzbWFsbGVyIHJlc3VsdHMuXG4iCisiXG4iCisibWV0aG9kIGlzIHRoZSBjb21wcmVzc2lvbiBhbGdvcml0aG0uIElmIGdpdmVuLCB0aGlzIG11c3QgYmUgREVGTEFURUQuXG4iCisiXG4iCisid2JpdHMgaXMgdGhlIGJhc2UgdHdvIGxvZ2FyaXRobSBvZiB0aGUgd2luZG93IHNpemUgKHJhbmdlOiA4Li4xNSkuXG4iCisiXG4iCisibWVtbGV2ZWwgY29udHJvbHMgdGhlIGFtb3VudCBvZiBtZW1vcnkgdXNlZCBmb3IgaW50ZXJuYWwgY29tcHJlc3Npb24gc3RhdGUuXG4iCisiVmFsaWQgdmFsdWVzIHJhbmdlIGZyb20gMSB0byA5LiBIaWdoZXIgdmFsdWVzIHJlc3VsdCBpbiBoaWdoZXIgbWVtb3J5IHVzYWdlLFxuIgorImZhc3RlciBjb21wcmVzc2lvbiwgYW5kIHNtYWxsZXIgb3V0cHV0LlxuIgorIlxuIgorInN0cmF0ZWd5IGlzIHVzZWQgdG8gdHVuZSB0aGUgY29tcHJlc3Npb24gYWxnb3JpdGhtLiBQb3NzaWJsZSB2YWx1ZXMgYXJlXG4iCisiWl9ERUZBVUxUX1NUUkFURUdZLCBaX0ZJTFRFUkVELCBhbmQgWl9IVUZGTUFOX09OTFkuXG4iCisiXG4iCisiemRpY3QgaXMgdGhlIHByZWRlZmluZWQgY29tcHJlc3Npb24gZGljdGlvbmFyeSAtIGEgc2VxdWVuY2Ugb2YgYnl0ZXNcbiIKKyJjb250YWluaW5nIHN1YnNlcXVlbmNlcyB0aGF0IGFyZSBsaWtlbHkgdG8gb2NjdXIgaW4gdGhlIGlucHV0IGRhdGEuIik7CiAKIFB5RG9jX1NUUlZBUihkZWNvbXByZXNzb2JqX19kb2NfXywKLSJkZWNvbXByZXNzb2JqKFt3Yml0c10pIC0tIFJldHVybiBhIGRlY29tcHJlc3NvciBvYmplY3QuXG4iCisiZGVjb21wcmVzc29iaihbd2JpdHNbLCB6ZGljdF1dKSAtLSBSZXR1cm4gYSBkZWNvbXByZXNzb3Igb2JqZWN0LlxuIgogIlxuIgotIk9wdGlvbmFsIGFyZyB3Yml0cyBpcyB0aGUgd2luZG93IGJ1ZmZlciBzaXplLiIpOworIk9wdGlvbmFsIGFyZyB3Yml0cyBpcyB0aGUgd2luZG93IGJ1ZmZlciBzaXplLlxuIgorIlxuIgorIk9wdGlvbmFsIGFyZyB6ZGljdCBpcyB0aGUgcHJlZGVmaW5lZCBjb21wcmVzc2lvbiBkaWN0aW9uYXJ5LiBUaGlzIG11c3QgYmVcbiIKKyJ0aGUgc2FtZSBkaWN0aW9uYXJ5IGFzIHVzZWQgYnkgdGhlIGNvbXByZXNzb3IgdGhhdCBwcm9kdWNlZCB0aGUgaW5wdXQgZGF0YS4iKTsKIAogc3RhdGljIGNvbXBvYmplY3QgKgogbmV3Y29tcG9iamVjdChQeVR5cGVPYmplY3QgKnR5cGUpCkBAIC05NSw3ICsxMTcsOSBAQAogICAgIHNlbGYgPSBQeU9iamVjdF9OZXcoY29tcG9iamVjdCwgdHlwZSk7CiAgICAgaWYgKHNlbGYgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgc2VsZi0+ZW9mID0gMDsKICAgICBzZWxmLT5pc19pbml0aWFsaXNlZCA9IDA7CisgICAgc2VsZi0+emRpY3QgPSBOVUxMOwogICAgIHNlbGYtPnVudXNlZF9kYXRhID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgiIiwgMCk7CiAgICAgaWYgKHNlbGYtPnVudXNlZF9kYXRhID09IE5VTEwpIHsKICAgICAgICAgUHlfREVDUkVGKHNlbGYpOwpAQCAtMjk3LDcgKzMyMSw3IEBACiAKICAgICBlcnIgPSBpbmZsYXRlRW5kKCZ6c3QpOwogICAgIGlmIChlcnIgIT0gWl9PSykgewotICAgICAgICB6bGliX2Vycm9yKHpzdCwgZXJyLCAid2hpbGUgZmluaXNoaW5nIGRhdGEgZGVjb21wcmVzc2lvbiIpOworICAgICAgICB6bGliX2Vycm9yKHpzdCwgZXJyLCAid2hpbGUgZmluaXNoaW5nIGRlY29tcHJlc3Npb24iKTsKICAgICAgICAgZ290byBlcnJvcjsKICAgICB9CiAKQEAgLTMxNCwxOSArMzM4LDI0IEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1QeVpsaWJfY29tcHJlc3NvYmooUHlPYmplY3QgKnNlbGZwdHIsIFB5T2JqZWN0ICphcmdzKQorUHlabGliX2NvbXByZXNzb2JqKFB5T2JqZWN0ICpzZWxmcHRyLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKIHsKICAgICBjb21wb2JqZWN0ICpzZWxmOwogICAgIGludCBsZXZlbD1aX0RFRkFVTFRfQ09NUFJFU1NJT04sIG1ldGhvZD1ERUZMQVRFRDsKICAgICBpbnQgd2JpdHM9TUFYX1dCSVRTLCBtZW1MZXZlbD1ERUZfTUVNX0xFVkVMLCBzdHJhdGVneT0wLCBlcnI7CisgICAgUHlfYnVmZmVyIHpkaWN0OworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsibGV2ZWwiLCAibWV0aG9kIiwgIndiaXRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1lbUxldmVsIiwgInN0cmF0ZWd5IiwgInpkaWN0IiwgTlVMTH07CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxpaWlpaTpjb21wcmVzc29iaiIsICZsZXZlbCwgJm1ldGhvZCwgJndiaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmbWVtTGV2ZWwsICZzdHJhdGVneSkpCisgICAgemRpY3QuYnVmID0gTlVMTDsgLyogU2VudGluZWwsIHNvIHdlIGNhbiB0ZWxsIHdoZXRoZXIgemRpY3Qgd2FzIHN1cHBsaWVkLiAqLworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3YXJncywgInxpaWlpaXkqOmNvbXByZXNzb2JqIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2xpc3QsICZsZXZlbCwgJm1ldGhvZCwgJndiaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtZW1MZXZlbCwgJnN0cmF0ZWd5LCAmemRpY3QpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHNlbGYgPSBuZXdjb21wb2JqZWN0KCZDb21wdHlwZSk7CiAgICAgaWYgKHNlbGY9PU5VTEwpCi0gICAgICAgIHJldHVybihOVUxMKTsKKyAgICAgICAgZ290byBlcnJvcjsKICAgICBzZWxmLT56c3QuemFsbG9jID0gKGFsbG9jX2Z1bmMpTlVMTDsKICAgICBzZWxmLT56c3QuemZyZWUgPSAoZnJlZV9mdW5jKVpfTlVMTDsKICAgICBzZWxmLT56c3QubmV4dF9pbiA9IE5VTEw7CkBAIC0zMzUsMzAgKzM2NCw1OCBAQAogICAgIHN3aXRjaChlcnIpIHsKICAgICBjYXNlIChaX09LKToKICAgICAgICAgc2VsZi0+aXNfaW5pdGlhbGlzZWQgPSAxOwotICAgICAgICByZXR1cm4gKFB5T2JqZWN0KilzZWxmOworICAgICAgICBpZiAoemRpY3QuYnVmID09IE5VTEwpIHsKKyAgICAgICAgICAgIGdvdG8gc3VjY2VzczsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGVyciA9IGRlZmxhdGVTZXREaWN0aW9uYXJ5KCZzZWxmLT56c3QsIHpkaWN0LmJ1ZiwgemRpY3QubGVuKTsKKyAgICAgICAgICAgIHN3aXRjaCAoZXJyKSB7CisgICAgICAgICAgICBjYXNlIChaX09LKToKKyAgICAgICAgICAgICAgICBnb3RvIHN1Y2Nlc3M7CisgICAgICAgICAgICBjYXNlIChaX1NUUkVBTV9FUlJPUik6CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJJbnZhbGlkIGRpY3Rpb25hcnkiKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImRlZmxhdGVTZXREaWN0aW9uYXJ5KCkiKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAgIH0KICAgICBjYXNlIChaX01FTV9FUlJPUik6Ci0gICAgICAgIFB5X0RFQ1JFRihzZWxmKTsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX01lbW9yeUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgIkNhbid0IGFsbG9jYXRlIG1lbW9yeSBmb3IgY29tcHJlc3Npb24gb2JqZWN0Iik7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBnb3RvIGVycm9yOwogICAgIGNhc2UoWl9TVFJFQU1fRVJST1IpOgotICAgICAgICBQeV9ERUNSRUYoc2VsZik7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiSW52YWxpZCBpbml0aWFsaXphdGlvbiBvcHRpb24iKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgZGVmYXVsdDoKICAgICAgICAgemxpYl9lcnJvcihzZWxmLT56c3QsIGVyciwgIndoaWxlIGNyZWF0aW5nIGNvbXByZXNzaW9uIG9iamVjdCIpOwotICAgICAgICBQeV9ERUNSRUYoc2VsZik7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBnb3RvIGVycm9yOwogICAgIH0KKworIGVycm9yOgorICAgIFB5X1hERUNSRUYoc2VsZik7CisgICAgc2VsZiA9IE5VTEw7Cisgc3VjY2VzczoKKyAgICBpZiAoemRpY3QuYnVmICE9IE5VTEwpCisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnpkaWN0KTsKKyAgICByZXR1cm4gKFB5T2JqZWN0KilzZWxmOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotUHlabGliX2RlY29tcHJlc3NvYmooUHlPYmplY3QgKnNlbGZwdHIsIFB5T2JqZWN0ICphcmdzKQorUHlabGliX2RlY29tcHJlc3NvYmooUHlPYmplY3QgKnNlbGZwdHIsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQogeworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsid2JpdHMiLCAiemRpY3QiLCBOVUxMfTsKICAgICBpbnQgd2JpdHM9REVGX1dCSVRTLCBlcnI7CiAgICAgY29tcG9iamVjdCAqc2VsZjsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxpOmRlY29tcHJlc3NvYmoiLCAmd2JpdHMpKQorICAgIFB5T2JqZWN0ICp6ZGljdD1OVUxMOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAifGlPOmRlY29tcHJlc3NvYmoiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3bGlzdCwgJndiaXRzLCAmemRpY3QpKQogICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoemRpY3QgIT0gTlVMTCAmJiAhUHlPYmplY3RfQ2hlY2tCdWZmZXIoemRpY3QpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiemRpY3QgYXJndW1lbnQgbXVzdCBzdXBwb3J0IHRoZSBidWZmZXIgcHJvdG9jb2wiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogCiAgICAgc2VsZiA9IG5ld2NvbXBvYmplY3QoJkRlY29tcHR5cGUpOwogICAgIGlmIChzZWxmID09IE5VTEwpCkBAIC0zNjcsNiArNDI0LDEwIEBACiAgICAgc2VsZi0+enN0LnpmcmVlID0gKGZyZWVfZnVuYylaX05VTEw7CiAgICAgc2VsZi0+enN0Lm5leHRfaW4gPSBOVUxMOwogICAgIHNlbGYtPnpzdC5hdmFpbF9pbiA9IDA7CisgICAgaWYgKHpkaWN0ICE9IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKHpkaWN0KTsKKyAgICAgICAgc2VsZi0+emRpY3QgPSB6ZGljdDsKKyAgICB9CiAgICAgZXJyID0gaW5mbGF0ZUluaXQyKCZzZWxmLT56c3QsIHdiaXRzKTsKICAgICBzd2l0Y2goZXJyKSB7CiAgICAgY2FzZSAoWl9PSyk6CkBAIC0zOTYsNiArNDU3LDcgQEAKICNlbmRpZgogICAgIFB5X1hERUNSRUYoc2VsZi0+dW51c2VkX2RhdGEpOwogICAgIFB5X1hERUNSRUYoc2VsZi0+dW5jb25zdW1lZF90YWlsKTsKKyAgICBQeV9YREVDUkVGKHNlbGYtPnpkaWN0KTsKICAgICBQeU9iamVjdF9EZWwoc2VsZik7CiB9CiAKQEAgLTQ4Miw3ICs1NDQsNyBAQAogICAgICovCiAKICAgICBpZiAoZXJyICE9IFpfT0sgJiYgZXJyICE9IFpfQlVGX0VSUk9SKSB7Ci0gICAgICAgIHpsaWJfZXJyb3Ioc2VsZi0+enN0LCBlcnIsICJ3aGlsZSBjb21wcmVzc2luZyIpOworICAgICAgICB6bGliX2Vycm9yKHNlbGYtPnpzdCwgZXJyLCAid2hpbGUgY29tcHJlc3NpbmcgZGF0YSIpOwogICAgICAgICBQeV9ERUNSRUYoUmV0VmFsKTsKICAgICAgICAgUmV0VmFsID0gTlVMTDsKICAgICAgICAgZ290byBlcnJvcjsKQEAgLTU1NSw2ICs2MTcsMjcgQEAKICAgICBlcnIgPSBpbmZsYXRlKCYoc2VsZi0+enN0KSwgWl9TWU5DX0ZMVVNIKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwogCisgICAgaWYgKGVyciA9PSBaX05FRURfRElDVCAmJiBzZWxmLT56ZGljdCAhPSBOVUxMKSB7CisgICAgICAgIFB5X2J1ZmZlciB6ZGljdF9idWY7CisgICAgICAgIGlmIChQeU9iamVjdF9HZXRCdWZmZXIoc2VsZi0+emRpY3QsICZ6ZGljdF9idWYsIFB5QlVGX1NJTVBMRSkgPT0gLTEpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihSZXRWYWwpOworICAgICAgICAgICAgUmV0VmFsID0gTlVMTDsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgZXJyID0gaW5mbGF0ZVNldERpY3Rpb25hcnkoJihzZWxmLT56c3QpLCB6ZGljdF9idWYuYnVmLCB6ZGljdF9idWYubGVuKTsKKyAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmemRpY3RfYnVmKTsKKyAgICAgICAgaWYgKGVyciAhPSBaX09LKSB7CisgICAgICAgICAgICB6bGliX2Vycm9yKHNlbGYtPnpzdCwgZXJyLCAid2hpbGUgZGVjb21wcmVzc2luZyBkYXRhIik7CisgICAgICAgICAgICBQeV9ERUNSRUYoUmV0VmFsKTsKKyAgICAgICAgICAgIFJldFZhbCA9IE5VTEw7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIC8qIFJlcGVhdCB0aGUgY2FsbCB0byBpbmZsYXRlLiAqLworICAgICAgICBQeV9CRUdJTl9BTExPV19USFJFQURTCisgICAgICAgIGVyciA9IGluZmxhdGUoJihzZWxmLT56c3QpLCBaX1NZTkNfRkxVU0gpOworICAgICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUworICAgIH0KKwogICAgIC8qIFdoaWxlIFpfT0sgYW5kIHRoZSBvdXRwdXQgYnVmZmVyIGlzIGZ1bGwsIHRoZXJlIG1pZ2h0IGJlIG1vcmUgb3V0cHV0LgogICAgICAgIFNvIGV4dGVuZCB0aGUgb3V0cHV0IGJ1ZmZlciBhbmQgdHJ5IGFnYWluLgogICAgICovCkBAIC02MTcsMTIgKzcwMCwxMyBAQAogICAgICAgICAgICAgUHlfREVDUkVGKFJldFZhbCk7CiAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICB9CisgICAgICAgIHNlbGYtPmVvZiA9IDE7CiAgICAgICAgIC8qIFdlIHdpbGwgb25seSBnZXQgWl9CVUZfRVJST1IgaWYgdGhlIG91dHB1dCBidWZmZXIgd2FzIGZ1bGwKICAgICAgICAgICAgYnV0IHRoZXJlIHdhc24ndCBtb3JlIG91dHB1dCB3aGVuIHdlIHRyaWVkIGFnYWluLCBzbyBpdCBpcwogICAgICAgICAgICBub3QgYW4gZXJyb3IgY29uZGl0aW9uLgogICAgICAgICAqLwogICAgIH0gZWxzZSBpZiAoZXJyICE9IFpfT0sgJiYgZXJyICE9IFpfQlVGX0VSUk9SKSB7Ci0gICAgICAgIHpsaWJfZXJyb3Ioc2VsZi0+enN0LCBlcnIsICJ3aGlsZSBkZWNvbXByZXNzaW5nIik7CisgICAgICAgIHpsaWJfZXJyb3Ioc2VsZi0+enN0LCBlcnIsICJ3aGlsZSBkZWNvbXByZXNzaW5nIGRhdGEiKTsKICAgICAgICAgUHlfREVDUkVGKFJldFZhbCk7CiAgICAgICAgIFJldFZhbCA9IE5VTEw7CiAgICAgICAgIGdvdG8gZXJyb3I7CkBAIC03MDMsNyArNzg3LDcgQEAKICAgICBpZiAoZXJyID09IFpfU1RSRUFNX0VORCAmJiBmbHVzaG1vZGUgPT0gWl9GSU5JU0gpIHsKICAgICAgICAgZXJyID0gZGVmbGF0ZUVuZCgmKHNlbGYtPnpzdCkpOwogICAgICAgICBpZiAoZXJyICE9IFpfT0spIHsKLSAgICAgICAgICAgIHpsaWJfZXJyb3Ioc2VsZi0+enN0LCBlcnIsICJmcm9tIGRlZmxhdGVFbmQoKSIpOworICAgICAgICAgICAgemxpYl9lcnJvcihzZWxmLT56c3QsIGVyciwgIndoaWxlIGZpbmlzaGluZyBjb21wcmVzc2lvbiIpOwogICAgICAgICAgICAgUHlfREVDUkVGKFJldFZhbCk7CiAgICAgICAgICAgICBSZXRWYWwgPSBOVUxMOwogICAgICAgICAgICAgZ290byBlcnJvcjsKQEAgLTc2NywxMCArODUxLDE0IEBACiAgICAgfQogICAgIFB5X0lOQ1JFRihzZWxmLT51bnVzZWRfZGF0YSk7CiAgICAgUHlfSU5DUkVGKHNlbGYtPnVuY29uc3VtZWRfdGFpbCk7CisgICAgUHlfWElOQ1JFRihzZWxmLT56ZGljdCk7CiAgICAgUHlfWERFQ1JFRihyZXR2YWwtPnVudXNlZF9kYXRhKTsKICAgICBQeV9YREVDUkVGKHJldHZhbC0+dW5jb25zdW1lZF90YWlsKTsKKyAgICBQeV9YREVDUkVGKHJldHZhbC0+emRpY3QpOwogICAgIHJldHZhbC0+dW51c2VkX2RhdGEgPSBzZWxmLT51bnVzZWRfZGF0YTsKICAgICByZXR2YWwtPnVuY29uc3VtZWRfdGFpbCA9IHNlbGYtPnVuY29uc3VtZWRfdGFpbDsKKyAgICByZXR2YWwtPnpkaWN0ID0gc2VsZi0+emRpY3Q7CisgICAgcmV0dmFsLT5lb2YgPSBzZWxmLT5lb2Y7CiAKICAgICAvKiBNYXJrIGl0IGFzIGJlaW5nIGluaXRpYWxpemVkICovCiAgICAgcmV0dmFsLT5pc19pbml0aWFsaXNlZCA9IDE7CkBAIC04MTgsMTAgKzkwNiwxNCBAQAogCiAgICAgUHlfSU5DUkVGKHNlbGYtPnVudXNlZF9kYXRhKTsKICAgICBQeV9JTkNSRUYoc2VsZi0+dW5jb25zdW1lZF90YWlsKTsKKyAgICBQeV9YSU5DUkVGKHNlbGYtPnpkaWN0KTsKICAgICBQeV9YREVDUkVGKHJldHZhbC0+dW51c2VkX2RhdGEpOwogICAgIFB5X1hERUNSRUYocmV0dmFsLT51bmNvbnN1bWVkX3RhaWwpOworICAgIFB5X1hERUNSRUYocmV0dmFsLT56ZGljdCk7CiAgICAgcmV0dmFsLT51bnVzZWRfZGF0YSA9IHNlbGYtPnVudXNlZF9kYXRhOwogICAgIHJldHZhbC0+dW5jb25zdW1lZF90YWlsID0gc2VsZi0+dW5jb25zdW1lZF90YWlsOworICAgIHJldHZhbC0+emRpY3QgPSBzZWxmLT56ZGljdDsKKyAgICByZXR2YWwtPmVvZiA9IHNlbGYtPmVvZjsKIAogICAgIC8qIE1hcmsgaXQgYXMgYmVpbmcgaW5pdGlhbGl6ZWQgKi8KICAgICByZXR2YWwtPmlzX2luaXRpYWxpc2VkID0gMTsKQEAgLTg4NywxNCArOTc5LDEzIEBACiAgICAgICAgIFB5X0VORF9BTExPV19USFJFQURTCiAgICAgfQogCi0gICAgLyogSWYgZmx1c2htb2RlIGlzIFpfRklOSVNILCB3ZSBhbHNvIGhhdmUgdG8gY2FsbCBkZWZsYXRlRW5kKCkgdG8gZnJlZQotICAgICAgIHZhcmlvdXMgZGF0YSBzdHJ1Y3R1cmVzLiBOb3RlIHdlIHNob3VsZCBvbmx5IGdldCBaX1NUUkVBTV9FTkQgd2hlbgotICAgICAgIGZsdXNobW9kZSBpcyBaX0ZJTklTSCAqLworICAgIC8qIElmIGF0IGVuZCBvZiBzdHJlYW0sIGNsZWFuIHVwIGFueSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHpsaWIuICovCiAgICAgaWYgKGVyciA9PSBaX1NUUkVBTV9FTkQpIHsKLSAgICAgICAgZXJyID0gaW5mbGF0ZUVuZCgmKHNlbGYtPnpzdCkpOworICAgICAgICBzZWxmLT5lb2YgPSAxOwogICAgICAgICBzZWxmLT5pc19pbml0aWFsaXNlZCA9IDA7CisgICAgICAgIGVyciA9IGluZmxhdGVFbmQoJihzZWxmLT56c3QpKTsKICAgICAgICAgaWYgKGVyciAhPSBaX09LKSB7Ci0gICAgICAgICAgICB6bGliX2Vycm9yKHNlbGYtPnpzdCwgZXJyLCAiZnJvbSBpbmZsYXRlRW5kKCkiKTsKKyAgICAgICAgICAgIHpsaWJfZXJyb3Ioc2VsZi0+enN0LCBlcnIsICJ3aGlsZSBmaW5pc2hpbmcgZGVjb21wcmVzc2lvbiIpOwogICAgICAgICAgICAgUHlfREVDUkVGKHJldHZhbCk7CiAgICAgICAgICAgICByZXR2YWwgPSBOVUxMOwogICAgICAgICAgICAgZ290byBlcnJvcjsKQEAgLTk0Miw2ICsxMDMzLDcgQEAKIHN0YXRpYyBQeU1lbWJlckRlZiBEZWNvbXBfbWVtYmVyc1tdID0gewogICAgIHsidW51c2VkX2RhdGEiLCAgICAgVF9PQkpFQ1QsIENPTVBfT0ZGKHVudXNlZF9kYXRhKSwgUkVBRE9OTFl9LAogICAgIHsidW5jb25zdW1lZF90YWlsIiwgVF9PQkpFQ1QsIENPTVBfT0ZGKHVuY29uc3VtZWRfdGFpbCksIFJFQURPTkxZfSwKKyAgICB7ImVvZiIsICAgICAgICAgICAgIFRfQk9PTCwgICBDT01QX09GRihlb2YpLCBSRUFET05MWX0sCiAgICAge05VTEx9LAogfTsKIApAQCAtMTAyNywxMyArMTExOSwxMyBAQAogICAgICAgICAgICAgICAgIGFkbGVyMzJfX2RvY19ffSwKICAgICB7ImNvbXByZXNzIiwgKFB5Q0Z1bmN0aW9uKVB5WmxpYl9jb21wcmVzcywgIE1FVEhfVkFSQVJHUywKICAgICAgICAgICAgICAgICAgY29tcHJlc3NfX2RvY19ffSwKLSAgICB7ImNvbXByZXNzb2JqIiwgKFB5Q0Z1bmN0aW9uKVB5WmxpYl9jb21wcmVzc29iaiwgTUVUSF9WQVJBUkdTLAorICAgIHsiY29tcHJlc3NvYmoiLCAoUHlDRnVuY3Rpb24pUHlabGliX2NvbXByZXNzb2JqLCBNRVRIX1ZBUkFSR1N8TUVUSF9LRVlXT1JEUywKICAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NvYmpfX2RvY19ffSwKICAgICB7ImNyYzMyIiwgKFB5Q0Z1bmN0aW9uKVB5WmxpYl9jcmMzMiwgTUVUSF9WQVJBUkdTLAogICAgICAgICAgICAgICBjcmMzMl9fZG9jX199LAogICAgIHsiZGVjb21wcmVzcyIsIChQeUNGdW5jdGlvbilQeVpsaWJfZGVjb21wcmVzcywgTUVUSF9WQVJBUkdTLAogICAgICAgICAgICAgICAgICAgIGRlY29tcHJlc3NfX2RvY19ffSwKLSAgICB7ImRlY29tcHJlc3NvYmoiLCAoUHlDRnVuY3Rpb24pUHlabGliX2RlY29tcHJlc3NvYmosIE1FVEhfVkFSQVJHUywKKyAgICB7ImRlY29tcHJlc3NvYmoiLCAoUHlDRnVuY3Rpb24pUHlabGliX2RlY29tcHJlc3NvYmosIE1FVEhfVkFSQVJHU3xNRVRIX0tFWVdPUkRTLAogICAgICAgICAgICAgICAgICAgIGRlY29tcHJlc3NvYmpfX2RvY19ffSwKICAgICB7TlVMTCwgTlVMTH0KIH07CkBAIC0xMTA3LDEwICsxMTk5LDEwIEBACiAiXG4iCiAiYWRsZXIzMihzdHJpbmdbLCBzdGFydF0pIC0tIENvbXB1dGUgYW4gQWRsZXItMzIgY2hlY2tzdW0uXG4iCiAiY29tcHJlc3Moc3RyaW5nWywgbGV2ZWxdKSAtLSBDb21wcmVzcyBzdHJpbmcsIHdpdGggY29tcHJlc3Npb24gbGV2ZWwgaW4gMS05LlxuIgotImNvbXByZXNzb2JqKFtsZXZlbF0pIC0tIFJldHVybiBhIGNvbXByZXNzb3Igb2JqZWN0LlxuIgorImNvbXByZXNzb2JqKFtsZXZlbFssIC4uLl1dKSAtLSBSZXR1cm4gYSBjb21wcmVzc29yIG9iamVjdC5cbiIKICJjcmMzMihzdHJpbmdbLCBzdGFydF0pIC0tIENvbXB1dGUgYSBDUkMtMzIgY2hlY2tzdW0uXG4iCiAiZGVjb21wcmVzcyhzdHJpbmcsW3diaXRzXSxbYnVmc2l6ZV0pIC0tIERlY29tcHJlc3NlcyBhIGNvbXByZXNzZWQgc3RyaW5nLlxuIgotImRlY29tcHJlc3NvYmooW3diaXRzXSkgLS0gUmV0dXJuIGEgZGVjb21wcmVzc29yIG9iamVjdC5cbiIKKyJkZWNvbXByZXNzb2JqKFt3Yml0c1ssIHpkaWN0XV1dKSAtLSBSZXR1cm4gYSBkZWNvbXByZXNzb3Igb2JqZWN0LlxuIgogIlxuIgogIid3Yml0cycgaXMgd2luZG93IGJ1ZmZlciBzaXplLlxuIgogIkNvbXByZXNzb3Igb2JqZWN0cyBzdXBwb3J0IGNvbXByZXNzKCkgYW5kIGZsdXNoKCkgbWV0aG9kczsgZGVjb21wcmVzc29yXG4iCkBAIC0xMTY0LDYgKzEyNTYsMTAgQEAKICAgICBpZiAodmVyICE9IE5VTEwpCiAgICAgICAgIFB5TW9kdWxlX0FkZE9iamVjdChtLCAiWkxJQl9WRVJTSU9OIiwgdmVyKTsKIAorICAgIHZlciA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKHpsaWJWZXJzaW9uKCkpOworICAgIGlmICh2ZXIgIT0gTlVMTCkKKyAgICAgICAgUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJaTElCX1JVTlRJTUVfVkVSU0lPTiIsIHZlcik7CisKICAgICBQeU1vZHVsZV9BZGRTdHJpbmdDb25zdGFudChtLCAiX192ZXJzaW9uX18iLCAiMS4wIik7CiAKICAgICByZXR1cm4gbTsKZGlmZiAtLWdpdCBhL09iamVjdHMvYWJzdHJhY3QuYyBiL09iamVjdHMvYWJzdHJhY3QuYwppbmRleCAyZjg4N2FhLi40MmNkMTY5IDEwMDY0NAotLS0gYS9PYmplY3RzL2Fic3RyYWN0LmMKKysrIGIvT2JqZWN0cy9hYnN0cmFjdC5jCkBAIC03NCw3ICs3NCw3IEBACiBQeV9zc2l6ZV90CiBfUHlPYmplY3RfTGVuZ3RoSGludChQeU9iamVjdCAqbywgUHlfc3NpemVfdCBkZWZhdWx0dmFsdWUpCiB7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpoaW50c3Ryb2JqID0gTlVMTDsKKyAgICBfUHlfSURFTlRJRklFUihfX2xlbmd0aF9oaW50X18pOwogICAgIFB5T2JqZWN0ICpybywgKmhpbnRtZXRoOwogICAgIFB5X3NzaXplX3QgcnY7CiAKQEAgLTg5LDcgKzg5LDcgQEAKICAgICB9CiAKICAgICAvKiB0cnkgby5fX2xlbmd0aF9oaW50X18oKSAqLwotICAgIGhpbnRtZXRoID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwobywgIl9fbGVuZ3RoX2hpbnRfXyIsICZoaW50c3Ryb2JqKTsKKyAgICBoaW50bWV0aCA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKG8sICZQeUlkX19fbGVuZ3RoX2hpbnRfXyk7CiAgICAgaWYgKGhpbnRtZXRoID09IE5VTEwpIHsKICAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgICAgICByZXR1cm4gLTE7CkBAIC0yMzcsNyArMjM3LDggQEAKICAgICBwYiA9IG9iai0+b2JfdHlwZS0+dHBfYXNfYnVmZmVyOwogICAgIGlmIChwYiA9PSBOVUxMIHx8IHBiLT5iZl9nZXRidWZmZXIgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIGFuIG9iamVjdCB3aXRoIHRoZSBidWZmZXIgaW50ZXJmYWNlIik7CisgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgYnl0ZXMsIGJ5dGVhcnJheSAiCisgICAgICAgICAgICAgICAgICAgICAgICAib3IgYnVmZmVyIGNvbXBhdGlibGUgb2JqZWN0Iik7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgICAgaWYgKCgqcGItPmJmX2dldGJ1ZmZlcikob2JqLCAmdmlldywgUHlCVUZfU0lNUExFKSkgcmV0dXJuIC0xOwpAQCAtMzMxLDcgKzMzMiw3IEBACiB7CiAgICAgaWYgKCFQeU9iamVjdF9DaGVja0J1ZmZlcihvYmopKSB7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAiJyUxMDBzJyBkb2VzIG5vdCBzdXBwb3J0IHRoZSBidWZmZXIgaW50ZXJmYWNlIiwKKyAgICAgICAgICAgICAgICAgICAgICInJS4xMDBzJyBkb2VzIG5vdCBzdXBwb3J0IHRoZSBidWZmZXIgaW50ZXJmYWNlIiwKICAgICAgICAgICAgICAgICAgICAgIFB5X1RZUEUob2JqKS0+dHBfbmFtZSk7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CkBAIC0zMzksNyArMzQwLDcgQEAKIH0KIAogc3RhdGljIGludAotX0lzRm9ydHJhbkNvbnRpZ3VvdXMoUHlfYnVmZmVyICp2aWV3KQorX0lzRm9ydHJhbkNvbnRpZ3VvdXMoY29uc3QgUHlfYnVmZmVyICp2aWV3KQogewogICAgIFB5X3NzaXplX3Qgc2QsIGRpbTsKICAgICBpbnQgaTsKQEAgLTM2MCw3ICszNjEsNyBAQAogfQogCiBzdGF0aWMgaW50Ci1fSXNDQ29udGlndW91cyhQeV9idWZmZXIgKnZpZXcpCitfSXNDQ29udGlndW91cyhjb25zdCBQeV9idWZmZXIgKnZpZXcpCiB7CiAgICAgUHlfc3NpemVfdCBzZCwgZGltOwogICAgIGludCBpOwpAQCAtMzgxLDE2ICszODIsMTYgQEAKIH0KIAogaW50Ci1QeUJ1ZmZlcl9Jc0NvbnRpZ3VvdXMoUHlfYnVmZmVyICp2aWV3LCBjaGFyIGZvcnQpCitQeUJ1ZmZlcl9Jc0NvbnRpZ3VvdXMoY29uc3QgUHlfYnVmZmVyICp2aWV3LCBjaGFyIG9yZGVyKQogewogCiAgICAgaWYgKHZpZXctPnN1Ym9mZnNldHMgIT0gTlVMTCkgcmV0dXJuIDA7CiAKLSAgICBpZiAoZm9ydCA9PSAnQycpCisgICAgaWYgKG9yZGVyID09ICdDJykKICAgICAgICAgcmV0dXJuIF9Jc0NDb250aWd1b3VzKHZpZXcpOwotICAgIGVsc2UgaWYgKGZvcnQgPT0gJ0YnKQorICAgIGVsc2UgaWYgKG9yZGVyID09ICdGJykKICAgICAgICAgcmV0dXJuIF9Jc0ZvcnRyYW5Db250aWd1b3VzKHZpZXcpOwotICAgIGVsc2UgaWYgKGZvcnQgPT0gJ0EnKQorICAgIGVsc2UgaWYgKG9yZGVyID09ICdBJykKICAgICAgICAgcmV0dXJuIChfSXNDQ29udGlndW91cyh2aWV3KSB8fCBfSXNGb3J0cmFuQ29udGlndW91cyh2aWV3KSk7CiAgICAgcmV0dXJuIDA7CiB9CkBAIC02NDgsOSArNjQ5LDkgQEAKIAogaW50CiBQeUJ1ZmZlcl9GaWxsSW5mbyhQeV9idWZmZXIgKnZpZXcsIFB5T2JqZWN0ICpvYmosIHZvaWQgKmJ1ZiwgUHlfc3NpemVfdCBsZW4sCi0gICAgICAgICAgICAgIGludCByZWFkb25seSwgaW50IGZsYWdzKQorICAgICAgICAgICAgICAgICAgaW50IHJlYWRvbmx5LCBpbnQgZmxhZ3MpCiB7Ci0gICAgaWYgKHZpZXcgPT0gTlVMTCkgcmV0dXJuIDA7CisgICAgaWYgKHZpZXcgPT0gTlVMTCkgcmV0dXJuIDA7IC8qIFhYWCB3aHkgbm90IC0xPyAqLwogICAgIGlmICgoKGZsYWdzICYgUHlCVUZfV1JJVEFCTEUpID09IFB5QlVGX1dSSVRBQkxFKSAmJgogICAgICAgICAocmVhZG9ubHkgPT0gMSkpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0J1ZmZlckVycm9yLApAQCAtNjk2LDE2ICs2OTcsMTYgQEAKICAgICBQeU9iamVjdCAqbWV0aDsKICAgICBQeU9iamVjdCAqZW1wdHkgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwotICAgIHN0YXRpYyBQeU9iamVjdCAqZm9ybWF0X2NhY2hlID0gTlVMTDsKKyAgICBfUHlfSURFTlRJRklFUihfX2Zvcm1hdF9fKTsKIAogICAgIC8qIElmIG5vIGZvcm1hdF9zcGVjIGlzIHByb3ZpZGVkLCB1c2UgYW4gZW1wdHkgc3RyaW5nICovCiAgICAgaWYgKGZvcm1hdF9zcGVjID09IE5VTEwpIHsKLSAgICAgICAgZW1wdHkgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgMCk7CisgICAgICAgIGVtcHR5ID0gUHlVbmljb2RlX05ldygwLCAwKTsKICAgICAgICAgZm9ybWF0X3NwZWMgPSBlbXB0eTsKICAgICB9CiAKICAgICAvKiBGaW5kIHRoZSAodW5ib3VuZCEpIF9fZm9ybWF0X18gbWV0aG9kIChhIGJvcnJvd2VkIHJlZmVyZW5jZSkgKi8KLSAgICBtZXRoID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwob2JqLCAiX19mb3JtYXRfXyIsICZmb3JtYXRfY2FjaGUpOworICAgIG1ldGggPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChvYmosICZQeUlkX19fZm9ybWF0X18pOwogICAgIGlmIChtZXRoID09IE5VTEwpIHsKICAgICAgICAgaWYgKCFQeUVycl9PY2N1cnJlZCgpKQogICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKQEAgLTc5Miw4ICs3OTMsNyBAQAogICAgICAgICAgICAgcmV0dXJuIHg7CiAgICAgICAgIFB5X0RFQ1JFRih4KTsgLyogY2FuJ3QgZG8gaXQgKi8KICAgICB9Ci0gICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMTI2OCwzNyArMTI2OCwzMiBAQAogfQogCiAKLVB5T2JqZWN0ICoKLV9QeU51bWJlcl9Db252ZXJ0SW50ZWdyYWxUb0ludChQeU9iamVjdCAqaW50ZWdyYWwsIGNvbnN0IGNoYXIqIGVycm9yX2Zvcm1hdCkKKy8qCisgIFJldHVybnMgdGhlIEludGVncmFsIGluc3RhbmNlIGNvbnZlcnRlZCB0byBhbiBpbnQuIFRoZSBpbnN0YW5jZSBpcyBleHBlY3RlZAorICB0byBiZSBhbiBpbnQgb3IgaGF2ZSBhbiBfX2ludF9fIG1ldGhvZC4gU3RlYWxzIGludGVncmFsJ3MKKyAgcmVmZXJlbmNlLiBlcnJvcl9mb3JtYXQgd2lsbCBiZSB1c2VkIHRvIGNyZWF0ZSB0aGUgVHlwZUVycm9yIGlmIGludGVncmFsCisgIGlzbid0IGFjdHVhbGx5IGFuIEludGVncmFsIGluc3RhbmNlLiBlcnJvcl9mb3JtYXQgc2hvdWxkIGJlIGEgZm9ybWF0IHN0cmluZworICB0aGF0IGNhbiBhY2NlcHQgYSBjaGFyKiBuYW1pbmcgaW50ZWdyYWwncyB0eXBlLiAKKyovCitzdGF0aWMgUHlPYmplY3QgKgorY29udmVydF9pbnRlZ3JhbF90b19pbnQoUHlPYmplY3QgKmludGVncmFsLCBjb25zdCBjaGFyICplcnJvcl9mb3JtYXQpCiB7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICppbnRfbmFtZSA9IE5VTEw7Ci0gICAgaWYgKGludF9uYW1lID09IE5VTEwpIHsKLSAgICAgICAgaW50X25hbWUgPSBQeVVuaWNvZGVfSW50ZXJuRnJvbVN0cmluZygiX19pbnRfXyIpOwotICAgICAgICBpZiAoaW50X25hbWUgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGlmIChpbnRlZ3JhbCAmJiAhUHlMb25nX0NoZWNrKGludGVncmFsKSkgewotICAgICAgICAvKiBEb24ndCBnbyB0aHJvdWdoIHRwX2FzX251bWJlci0+bmJfaW50IHRvIGF2b2lkCi0gICAgICAgICAgIGhpdHRpbmcgdGhlIGNsYXNzaWMgY2xhc3MgZmFsbGJhY2sgdG8gX190cnVuY19fLiAqLwotICAgICAgICBQeU9iamVjdCAqaW50X2Z1bmMgPSBQeU9iamVjdF9HZXRBdHRyKGludGVncmFsLCBpbnRfbmFtZSk7Ci0gICAgICAgIGlmIChpbnRfZnVuYyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBQeUVycl9DbGVhcigpOyAvKiBSYWlzZSBhIGRpZmZlcmVudCBlcnJvci4gKi8KLSAgICAgICAgICAgIGdvdG8gbm9uX2ludGVncmFsX2Vycm9yOwotICAgICAgICB9CisgICAgUHlOdW1iZXJNZXRob2RzICpuYjsKKyAgICBpZiAoUHlMb25nX0NoZWNrKGludGVncmFsKSkKKyAgICAgICAgcmV0dXJuIGludGVncmFsOworICAgIG5iID0gUHlfVFlQRShpbnRlZ3JhbCktPnRwX2FzX251bWJlcjsKKyAgICBpZiAobmItPm5iX2ludCkgeworICAgICAgICBQeU9iamVjdCAqYXNfaW50ID0gbmItPm5iX2ludChpbnRlZ3JhbCk7CiAgICAgICAgIFB5X0RFQ1JFRihpbnRlZ3JhbCk7Ci0gICAgICAgIGludGVncmFsID0gUHlFdmFsX0NhbGxPYmplY3QoaW50X2Z1bmMsIE5VTEwpOwotICAgICAgICBQeV9ERUNSRUYoaW50X2Z1bmMpOwotICAgICAgICBpZiAoaW50ZWdyYWwgJiYgIVB5TG9uZ19DaGVjayhpbnRlZ3JhbCkpIHsKLSAgICAgICAgICAgIGdvdG8gbm9uX2ludGVncmFsX2Vycm9yOwotICAgICAgICB9CisgICAgICAgIGlmICghYXNfaW50KQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGlmIChQeUxvbmdfQ2hlY2soYXNfaW50KSkKKyAgICAgICAgICAgIHJldHVybiBhc19pbnQ7CisgICAgICAgIFB5X0RFQ1JFRihhc19pbnQpOwogICAgIH0KLSAgICByZXR1cm4gaW50ZWdyYWw7Ci0KLW5vbl9pbnRlZ3JhbF9lcnJvcjoKICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCBlcnJvcl9mb3JtYXQsIFB5X1RZUEUoaW50ZWdyYWwpLT50cF9uYW1lKTsKICAgICBQeV9ERUNSRUYoaW50ZWdyYWwpOwotICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiBOVUxMOyAgICAKIH0KIAogCkBAIC0xMzI1LDE2ICsxMzIwLDEwIEBACiBQeU51bWJlcl9Mb25nKFB5T2JqZWN0ICpvKQogewogICAgIFB5TnVtYmVyTWV0aG9kcyAqbTsKLSAgICBzdGF0aWMgUHlPYmplY3QgKnRydW5jX25hbWUgPSBOVUxMOwogICAgIFB5T2JqZWN0ICp0cnVuY19mdW5jOwogICAgIGNvbnN0IGNoYXIgKmJ1ZmZlcjsKICAgICBQeV9zc2l6ZV90IGJ1ZmZlcl9sZW47Ci0KLSAgICBpZiAodHJ1bmNfbmFtZSA9PSBOVUxMKSB7Ci0gICAgICAgIHRydW5jX25hbWUgPSBQeVVuaWNvZGVfSW50ZXJuRnJvbVN0cmluZygiX190cnVuY19fIik7Ci0gICAgICAgIGlmICh0cnVuY19uYW1lID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgX1B5X0lERU5USUZJRVIoX190cnVuY19fKTsKIAogICAgIGlmIChvID09IE5VTEwpCiAgICAgICAgIHJldHVybiBudWxsX2Vycm9yKCk7CkBAIC0xMzU2LDMyICsxMzQ1LDMwIEBACiAgICAgfQogICAgIGlmIChQeUxvbmdfQ2hlY2sobykpIC8qIEFuIGludCBzdWJjbGFzcyB3aXRob3V0IG5iX2ludCAqLwogICAgICAgICByZXR1cm4gX1B5TG9uZ19Db3B5KChQeUxvbmdPYmplY3QgKilvKTsKLSAgICB0cnVuY19mdW5jID0gUHlPYmplY3RfR2V0QXR0cihvLCB0cnVuY19uYW1lKTsKKyAgICB0cnVuY19mdW5jID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwobywgJlB5SWRfX190cnVuY19fKTsKICAgICBpZiAodHJ1bmNfZnVuYykgewogICAgICAgICBQeU9iamVjdCAqdHJ1bmNhdGVkID0gUHlFdmFsX0NhbGxPYmplY3QodHJ1bmNfZnVuYywgTlVMTCk7CiAgICAgICAgIFB5T2JqZWN0ICppbnRfaW5zdGFuY2U7CiAgICAgICAgIFB5X0RFQ1JFRih0cnVuY19mdW5jKTsKICAgICAgICAgLyogX190cnVuY19fIGlzIHNwZWNpZmllZCB0byByZXR1cm4gYW4gSW50ZWdyYWwgdHlwZSwKLSAgICAgICAgICAgYnV0IGxvbmcoKSBuZWVkcyB0byByZXR1cm4gYSBsb25nLiAqLwotICAgICAgICBpbnRfaW5zdGFuY2UgPSBfUHlOdW1iZXJfQ29udmVydEludGVncmFsVG9JbnQoCi0gICAgICAgICAgICB0cnVuY2F0ZWQsCisgICAgICAgICAgIGJ1dCBpbnQoKSBuZWVkcyB0byByZXR1cm4gYSBpbnQuICovCisgICAgICAgIGludF9pbnN0YW5jZSA9IGNvbnZlcnRfaW50ZWdyYWxfdG9faW50KHRydW5jYXRlZCwKICAgICAgICAgICAgICJfX3RydW5jX18gcmV0dXJuZWQgbm9uLUludGVncmFsICh0eXBlICUuMjAwcykiKTsKICAgICAgICAgcmV0dXJuIGludF9pbnN0YW5jZTsKICAgICB9Ci0gICAgUHlFcnJfQ2xlYXIoKTsgIC8qIEl0J3Mgbm90IGFuIGVycm9yIGlmICBvLl9fdHJ1bmNfXyBkb2Vzbid0IGV4aXN0LiAqLworICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGlmIChQeUJ5dGVzX0NoZWNrKG8pKQogICAgICAgICAvKiBuZWVkIHRvIGRvIGV4dHJhIGVycm9yIGNoZWNraW5nIHRoYXQgUHlMb25nX0Zyb21TdHJpbmcoKQotICAgICAgICAgKiBkb2Vzbid0IGRvLiAgSW4gcGFydGljdWxhciBsb25nKCc5LjUnKSBtdXN0IHJhaXNlIGFuCisgICAgICAgICAqIGRvZXNuJ3QgZG8uICBJbiBwYXJ0aWN1bGFyIGludCgnOS41JykgbXVzdCByYWlzZSBhbgogICAgICAgICAgKiBleGNlcHRpb24sIG5vdCB0cnVuY2F0ZSB0aGUgZmxvYXQuCiAgICAgICAgICAqLwogICAgICAgICByZXR1cm4gbG9uZ19mcm9tX3N0cmluZyhQeUJ5dGVzX0FTX1NUUklORyhvKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlc19HRVRfU0laRShvKSk7CiAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhvKSkKICAgICAgICAgLyogVGhlIGFib3ZlIGNoZWNrIGlzIGRvbmUgaW4gUHlMb25nX0Zyb21Vbmljb2RlKCkuICovCi0gICAgICAgIHJldHVybiBQeUxvbmdfRnJvbVVuaWNvZGUoUHlVbmljb2RlX0FTX1VOSUNPREUobyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKG8pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEwKTsKKyAgICAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tVW5pY29kZU9iamVjdChvLCAxMCk7CiAgICAgaWYgKCFQeU9iamVjdF9Bc0NoYXJCdWZmZXIobywgJmJ1ZmZlciwgJmJ1ZmZlcl9sZW4pKQogICAgICAgICByZXR1cm4gbG9uZ19mcm9tX3N0cmluZyhidWZmZXIsIGJ1ZmZlcl9sZW4pOwogCkBAIC0xOTg2LDcgKzE5NzMsNyBAQAogaW50CiBQeU1hcHBpbmdfQ2hlY2soUHlPYmplY3QgKm8pCiB7Ci0gICAgcmV0dXJuICAgICAgbyAmJiBvLT5vYl90eXBlLT50cF9hc19tYXBwaW5nICYmCisgICAgcmV0dXJuIG8gJiYgby0+b2JfdHlwZS0+dHBfYXNfbWFwcGluZyAmJgogICAgICAgICBvLT5vYl90eXBlLT50cF9hc19tYXBwaW5nLT5tcF9zdWJzY3JpcHQ7CiB9CiAKQEAgLTIwODQsMTAgKzIwNzEsMTEgQEAKIHsKICAgICBQeU9iamVjdCAqa2V5czsKICAgICBQeU9iamVjdCAqZmFzdDsKKyAgICBfUHlfSURFTlRJRklFUihrZXlzKTsKIAogICAgIGlmIChQeURpY3RfQ2hlY2tFeGFjdChvKSkKICAgICAgICAgcmV0dXJuIFB5RGljdF9LZXlzKG8pOwotICAgIGtleXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKG8sICJrZXlzIiwgTlVMTCk7CisgICAga2V5cyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQobywgJlB5SWRfa2V5cywgTlVMTCk7CiAgICAgaWYgKGtleXMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgZmFzdCA9IFB5U2VxdWVuY2VfRmFzdChrZXlzLCAiby5rZXlzKCkgYXJlIG5vdCBpdGVyYWJsZSIpOwpAQCAtMjEwMCwxMCArMjA4OCwxMSBAQAogewogICAgIFB5T2JqZWN0ICppdGVtczsKICAgICBQeU9iamVjdCAqZmFzdDsKKyAgICBfUHlfSURFTlRJRklFUihpdGVtcyk7CiAKICAgICBpZiAoUHlEaWN0X0NoZWNrRXhhY3QobykpCiAgICAgICAgIHJldHVybiBQeURpY3RfSXRlbXMobyk7Ci0gICAgaXRlbXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKG8sICJpdGVtcyIsIE5VTEwpOworICAgIGl0ZW1zID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChvLCAmUHlJZF9pdGVtcywgTlVMTCk7CiAgICAgaWYgKGl0ZW1zID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGZhc3QgPSBQeVNlcXVlbmNlX0Zhc3QoaXRlbXMsICJvLml0ZW1zKCkgYXJlIG5vdCBpdGVyYWJsZSIpOwpAQCAtMjExNiwxMCArMjEwNSwxMSBAQAogewogICAgIFB5T2JqZWN0ICp2YWx1ZXM7CiAgICAgUHlPYmplY3QgKmZhc3Q7CisgICAgX1B5X0lERU5USUZJRVIodmFsdWVzKTsKIAogICAgIGlmIChQeURpY3RfQ2hlY2tFeGFjdChvKSkKICAgICAgICAgcmV0dXJuIFB5RGljdF9WYWx1ZXMobyk7Ci0gICAgdmFsdWVzID0gUHlPYmplY3RfQ2FsbE1ldGhvZChvLCAidmFsdWVzIiwgTlVMTCk7CisgICAgdmFsdWVzID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChvLCAmUHlJZF92YWx1ZXMsIE5VTEwpOwogICAgIGlmICh2YWx1ZXMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgZmFzdCA9IFB5U2VxdWVuY2VfRmFzdCh2YWx1ZXMsICJvLnZhbHVlcygpIGFyZSBub3QgaXRlcmFibGUiKTsKQEAgLTIyMjUsMjIgKzIyMTUsMTEgQEAKICAgICByZXR1cm4gY2FsbF9mdW5jdGlvbl90YWlsKGNhbGxhYmxlLCBhcmdzKTsKIH0KIAotUHlPYmplY3QgKgotUHlPYmplY3RfQ2FsbE1ldGhvZChQeU9iamVjdCAqbywgY2hhciAqbmFtZSwgY2hhciAqZm9ybWF0LCAuLi4pCitzdGF0aWMgUHlPYmplY3QqCitjYWxsbWV0aG9kKFB5T2JqZWN0KiBmdW5jLCBjaGFyICpmb3JtYXQsIHZhX2xpc3QgdmEsIGludCBpc19zaXplX3QpCiB7Ci0gICAgdmFfbGlzdCB2YTsKLSAgICBQeU9iamVjdCAqYXJnczsKLSAgICBQeU9iamVjdCAqZnVuYyA9IE5VTEw7CiAgICAgUHlPYmplY3QgKnJldHZhbCA9IE5VTEw7Ci0KLSAgICBpZiAobyA9PSBOVUxMIHx8IG5hbWUgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIG51bGxfZXJyb3IoKTsKLQotICAgIGZ1bmMgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG8sIG5hbWUpOwotICAgIGlmIChmdW5jID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0F0dHJpYnV0ZUVycm9yLCBuYW1lKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQorICAgIFB5T2JqZWN0ICphcmdzOwogCiAgICAgaWYgKCFQeUNhbGxhYmxlX0NoZWNrKGZ1bmMpKSB7CiAgICAgICAgIHR5cGVfZXJyb3IoImF0dHJpYnV0ZSBvZiB0eXBlICclLjIwMHMnIGlzIG5vdCBjYWxsYWJsZSIsIGZ1bmMpOwpAQCAtMjI0OCw5ICsyMjI3LDEwIEBACiAgICAgfQogCiAgICAgaWYgKGZvcm1hdCAmJiAqZm9ybWF0KSB7Ci0gICAgICAgIHZhX3N0YXJ0KHZhLCBmb3JtYXQpOwotICAgICAgICBhcmdzID0gUHlfVmFCdWlsZFZhbHVlKGZvcm1hdCwgdmEpOwotICAgICAgICB2YV9lbmQodmEpOworICAgICAgICBpZiAoaXNfc2l6ZV90KQorICAgICAgICAgICAgYXJncyA9IF9QeV9WYUJ1aWxkVmFsdWVfU2l6ZVQoZm9ybWF0LCB2YSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFyZ3MgPSBQeV9WYUJ1aWxkVmFsdWUoZm9ybWF0LCB2YSk7CiAgICAgfQogICAgIGVsc2UKICAgICAgICAgYXJncyA9IFB5VHVwbGVfTmV3KDApOwpAQCAtMjI2NSw0NCArMjI0NSw4NiBAQAogfQogCiBQeU9iamVjdCAqCitQeU9iamVjdF9DYWxsTWV0aG9kKFB5T2JqZWN0ICpvLCBjaGFyICpuYW1lLCBjaGFyICpmb3JtYXQsIC4uLikKK3sKKyAgICB2YV9saXN0IHZhOworICAgIFB5T2JqZWN0ICpmdW5jID0gTlVMTDsKKyAgICBQeU9iamVjdCAqcmV0dmFsID0gTlVMTDsKKworICAgIGlmIChvID09IE5VTEwgfHwgbmFtZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gbnVsbF9lcnJvcigpOworCisgICAgZnVuYyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcobywgbmFtZSk7CisgICAgaWYgKGZ1bmMgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICB2YV9zdGFydCh2YSwgZm9ybWF0KTsKKyAgICByZXR2YWwgPSBjYWxsbWV0aG9kKGZ1bmMsIGZvcm1hdCwgdmEsIDApOworICAgIHZhX2VuZCh2YSk7CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworUHlPYmplY3QgKgorX1B5T2JqZWN0X0NhbGxNZXRob2RJZChQeU9iamVjdCAqbywgX1B5X0lkZW50aWZpZXIgKm5hbWUsIGNoYXIgKmZvcm1hdCwgLi4uKQoreworICAgIHZhX2xpc3QgdmE7CisgICAgUHlPYmplY3QgKmZ1bmMgPSBOVUxMOworICAgIFB5T2JqZWN0ICpyZXR2YWwgPSBOVUxMOworCisgICAgaWYgKG8gPT0gTlVMTCB8fCBuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybiBudWxsX2Vycm9yKCk7CisKKyAgICBmdW5jID0gX1B5T2JqZWN0X0dldEF0dHJJZChvLCBuYW1lKTsKKyAgICBpZiAoZnVuYyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHZhX3N0YXJ0KHZhLCBmb3JtYXQpOworICAgIHJldHZhbCA9IGNhbGxtZXRob2QoZnVuYywgZm9ybWF0LCB2YSwgMCk7CisgICAgdmFfZW5kKHZhKTsKKyAgICByZXR1cm4gcmV0dmFsOworfQorCitQeU9iamVjdCAqCiBfUHlPYmplY3RfQ2FsbE1ldGhvZF9TaXplVChQeU9iamVjdCAqbywgY2hhciAqbmFtZSwgY2hhciAqZm9ybWF0LCAuLi4pCiB7CiAgICAgdmFfbGlzdCB2YTsKLSAgICBQeU9iamVjdCAqYXJnczsKICAgICBQeU9iamVjdCAqZnVuYyA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKnJldHZhbCA9IE5VTEw7CisgICAgUHlPYmplY3QgKnJldHZhbDsKIAogICAgIGlmIChvID09IE5VTEwgfHwgbmFtZSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gbnVsbF9lcnJvcigpOwogCiAgICAgZnVuYyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcobywgbmFtZSk7CiAgICAgaWYgKGZ1bmMgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQXR0cmlidXRlRXJyb3IsIG5hbWUpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0KLSAgICBpZiAoIVB5Q2FsbGFibGVfQ2hlY2soZnVuYykpIHsKLSAgICAgICAgdHlwZV9lcnJvcigiYXR0cmlidXRlIG9mIHR5cGUgJyUuMjAwcycgaXMgbm90IGNhbGxhYmxlIiwgZnVuYyk7Ci0gICAgICAgIGdvdG8gZXhpdDsKLSAgICB9Ci0KLSAgICBpZiAoZm9ybWF0ICYmICpmb3JtYXQpIHsKLSAgICAgICAgdmFfc3RhcnQodmEsIGZvcm1hdCk7Ci0gICAgICAgIGFyZ3MgPSBfUHlfVmFCdWlsZFZhbHVlX1NpemVUKGZvcm1hdCwgdmEpOwotICAgICAgICB2YV9lbmQodmEpOwotICAgIH0KLSAgICBlbHNlCi0gICAgICAgIGFyZ3MgPSBQeVR1cGxlX05ldygwKTsKLQotICAgIHJldHZhbCA9IGNhbGxfZnVuY3Rpb25fdGFpbChmdW5jLCBhcmdzKTsKLQotICBleGl0OgotICAgIC8qIGFyZ3MgZ2V0cyBjb25zdW1lZCBpbiBjYWxsX2Z1bmN0aW9uX3RhaWwgKi8KLSAgICBQeV9YREVDUkVGKGZ1bmMpOwotCisgICAgdmFfc3RhcnQodmEsIGZvcm1hdCk7CisgICAgcmV0dmFsID0gY2FsbG1ldGhvZChmdW5jLCBmb3JtYXQsIHZhLCAxKTsKKyAgICB2YV9lbmQodmEpOwogICAgIHJldHVybiByZXR2YWw7CiB9CiAKK1B5T2JqZWN0ICoKK19QeU9iamVjdF9DYWxsTWV0aG9kSWRfU2l6ZVQoUHlPYmplY3QgKm8sIF9QeV9JZGVudGlmaWVyICpuYW1lLCBjaGFyICpmb3JtYXQsIC4uLikKK3sKKyAgICB2YV9saXN0IHZhOworICAgIFB5T2JqZWN0ICpmdW5jID0gTlVMTDsKKyAgICBQeU9iamVjdCAqcmV0dmFsOworCisgICAgaWYgKG8gPT0gTlVMTCB8fCBuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybiBudWxsX2Vycm9yKCk7CisKKyAgICBmdW5jID0gX1B5T2JqZWN0X0dldEF0dHJJZChvLCBuYW1lKTsKKyAgICBpZiAoZnVuYyA9PSBOVUxMKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICB2YV9zdGFydCh2YSwgZm9ybWF0KTsKKyAgICByZXR2YWwgPSBjYWxsbWV0aG9kKGZ1bmMsIGZvcm1hdCwgdmEsIDEpOworICAgIHZhX2VuZCh2YSk7CisgICAgcmV0dXJuIHJldHZhbDsKK30KIAogc3RhdGljIFB5T2JqZWN0ICoKIG9iamFyZ3NfbWt0dXBsZSh2YV9saXN0IHZhKQpAQCAtMjM1NSw2ICsyMzc3LDM1IEBACiB9CiAKIFB5T2JqZWN0ICoKK19QeU9iamVjdF9DYWxsTWV0aG9kT2JqSWRBcmdzKFB5T2JqZWN0ICpjYWxsYWJsZSwKKyAgICAgICAgc3RydWN0IF9QeV9JZGVudGlmaWVyICpuYW1lLCAuLi4pCit7CisgICAgUHlPYmplY3QgKmFyZ3MsICp0bXA7CisgICAgdmFfbGlzdCB2YXJnczsKKworICAgIGlmIChjYWxsYWJsZSA9PSBOVUxMIHx8IG5hbWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIG51bGxfZXJyb3IoKTsKKworICAgIGNhbGxhYmxlID0gX1B5T2JqZWN0X0dldEF0dHJJZChjYWxsYWJsZSwgbmFtZSk7CisgICAgaWYgKGNhbGxhYmxlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLyogY291bnQgdGhlIGFyZ3MgKi8KKyAgICB2YV9zdGFydCh2YXJncywgbmFtZSk7CisgICAgYXJncyA9IG9iamFyZ3NfbWt0dXBsZSh2YXJncyk7CisgICAgdmFfZW5kKHZhcmdzKTsKKyAgICBpZiAoYXJncyA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihjYWxsYWJsZSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICB0bXAgPSBQeU9iamVjdF9DYWxsKGNhbGxhYmxlLCBhcmdzLCBOVUxMKTsKKyAgICBQeV9ERUNSRUYoYXJncyk7CisgICAgUHlfREVDUkVGKGNhbGxhYmxlKTsKKworICAgIHJldHVybiB0bXA7Cit9CisKK1B5T2JqZWN0ICoKIFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoUHlPYmplY3QgKmNhbGxhYmxlLCAuLi4pCiB7CiAgICAgUHlPYmplY3QgKmFyZ3MsICp0bXA7CkBAIC0yMzc4LDEwICsyNDI5LDggQEAKIAogLyogaXNpbnN0YW5jZSgpLCBpc3N1YmNsYXNzKCkgKi8KIAotLyogYWJzdHJhY3RfZ2V0X2Jhc2VzKCkgaGFzIGxvZ2ljYWxseSA0IHJldHVybiBzdGF0ZXMsIHdpdGggYSBzb3J0IG9mIDB0aAotICogc3RhdGUgdGhhdCB3aWxsIGFsbW9zdCBuZXZlciBoYXBwZW4uCisvKiBhYnN0cmFjdF9nZXRfYmFzZXMoKSBoYXMgbG9naWNhbGx5IDQgcmV0dXJuIHN0YXRlczoKICAqCi0gKiAwLiBjcmVhdGluZyB0aGUgX19iYXNlc19fIHN0YXRpYyBzdHJpbmcgY291bGQgZ2V0IGEgTWVtb3J5RXJyb3IKICAqIDEuIGdldGF0dHIoY2xzLCAnX19iYXNlc19fJykgY291bGQgcmFpc2UgYW4gQXR0cmlidXRlRXJyb3IKICAqIDIuIGdldGF0dHIoY2xzLCAnX19iYXNlc19fJykgY291bGQgcmFpc2Ugc29tZSBvdGhlciBleGNlcHRpb24KICAqIDMuIGdldGF0dHIoY2xzLCAnX19iYXNlc19fJykgY291bGQgcmV0dXJuIGEgdHVwbGUKQEAgLTI0MDcsMTYgKzI0NTYsMTEgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBhYnN0cmFjdF9nZXRfYmFzZXMoUHlPYmplY3QgKmNscykKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKl9fYmFzZXNfXyA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIoX19iYXNlc19fKTsKICAgICBQeU9iamVjdCAqYmFzZXM7CiAKLSAgICBpZiAoX19iYXNlc19fID09IE5VTEwpIHsKLSAgICAgICAgX19iYXNlc19fID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fYmFzZXNfXyIpOwotICAgICAgICBpZiAoX19iYXNlc19fID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CiAgICAgUHlfQUxMT1dfUkVDVVJTSU9OCi0gICAgYmFzZXMgPSBQeU9iamVjdF9HZXRBdHRyKGNscywgX19iYXNlc19fKTsKKyAgICBiYXNlcyA9IF9QeU9iamVjdF9HZXRBdHRySWQoY2xzLCAmUHlJZF9fX2Jhc2VzX18pOwogICAgIFB5X0VORF9BTExPV19SRUNVUlNJT04KICAgICBpZiAoYmFzZXMgPT0gTlVMTCkgewogICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19BdHRyaWJ1dGVFcnJvcikpCkBAIC0yNDg2LDE5ICsyNTMwLDEzIEBACiByZWN1cnNpdmVfaXNpbnN0YW5jZShQeU9iamVjdCAqaW5zdCwgUHlPYmplY3QgKmNscykKIHsKICAgICBQeU9iamVjdCAqaWNsczsKLSAgICBzdGF0aWMgUHlPYmplY3QgKl9fY2xhc3NfXyA9IE5VTEw7CiAgICAgaW50IHJldHZhbCA9IDA7Ci0KLSAgICBpZiAoX19jbGFzc19fID09IE5VTEwpIHsKLSAgICAgICAgX19jbGFzc19fID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fY2xhc3NfXyIpOwotICAgICAgICBpZiAoX19jbGFzc19fID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQorICAgIF9QeV9JREVOVElGSUVSKF9fY2xhc3NfXyk7CiAKICAgICBpZiAoUHlUeXBlX0NoZWNrKGNscykpIHsKICAgICAgICAgcmV0dmFsID0gUHlPYmplY3RfVHlwZUNoZWNrKGluc3QsIChQeVR5cGVPYmplY3QgKiljbHMpOwogICAgICAgICBpZiAocmV0dmFsID09IDApIHsKLSAgICAgICAgICAgIFB5T2JqZWN0ICpjID0gUHlPYmplY3RfR2V0QXR0cihpbnN0LCBfX2NsYXNzX18pOworICAgICAgICAgICAgUHlPYmplY3QgKmMgPSBfUHlPYmplY3RfR2V0QXR0cklkKGluc3QsICZQeUlkX19fY2xhc3NfXyk7CiAgICAgICAgICAgICBpZiAoYyA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwpAQCAtMjUxOSw3ICsyNTU3LDcgQEAKICAgICAgICAgaWYgKCFjaGVja19jbGFzcyhjbHMsCiAgICAgICAgICAgICAiaXNpbnN0YW5jZSgpIGFyZyAyIG11c3QgYmUgYSB0eXBlIG9yIHR1cGxlIG9mIHR5cGVzIikpCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIGljbHMgPSBQeU9iamVjdF9HZXRBdHRyKGluc3QsIF9fY2xhc3NfXyk7CisgICAgICAgIGljbHMgPSBfUHlPYmplY3RfR2V0QXR0cklkKGluc3QsICZQeUlkX19fY2xhc3NfXyk7CiAgICAgICAgIGlmIChpY2xzID09IE5VTEwpIHsKICAgICAgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0F0dHJpYnV0ZUVycm9yKSkKICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwpAQCAtMjUzOCw3ICsyNTc2LDcgQEAKIGludAogUHlPYmplY3RfSXNJbnN0YW5jZShQeU9iamVjdCAqaW5zdCwgUHlPYmplY3QgKmNscykKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKm5hbWUgPSBOVUxMOworICAgIF9QeV9JREVOVElGSUVSKF9faW5zdGFuY2VjaGVja19fKTsKICAgICBQeU9iamVjdCAqY2hlY2tlcjsKIAogICAgIC8qIFF1aWNrIHRlc3QgZm9yIGFuIGV4YWN0IG1hdGNoICovCkBAIC0yNTY0LDcgKzI2MDIsNyBAQAogICAgICAgICByZXR1cm4gcjsKICAgICB9CiAKLSAgICBjaGVja2VyID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwoY2xzLCAiX19pbnN0YW5jZWNoZWNrX18iLCAmbmFtZSk7CisgICAgY2hlY2tlciA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKGNscywgJlB5SWRfX19pbnN0YW5jZWNoZWNrX18pOwogICAgIGlmIChjaGVja2VyICE9IE5VTEwpIHsKICAgICAgICAgUHlPYmplY3QgKnJlczsKICAgICAgICAgaW50IG9rID0gLTE7CkBAIC0yNjA3LDcgKzI2NDUsNyBAQAogaW50CiBQeU9iamVjdF9Jc1N1YmNsYXNzKFB5T2JqZWN0ICpkZXJpdmVkLCBQeU9iamVjdCAqY2xzKQogewotICAgIHN0YXRpYyBQeU9iamVjdCAqbmFtZSA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIoX19zdWJjbGFzc2NoZWNrX18pOwogICAgIFB5T2JqZWN0ICpjaGVja2VyOwogCiAgICAgaWYgKFB5VHVwbGVfQ2hlY2soY2xzKSkgewpAQCAtMjYyOSw3ICsyNjY3LDcgQEAKICAgICAgICAgcmV0dXJuIHI7CiAgICAgfQogCi0gICAgY2hlY2tlciA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKGNscywgIl9fc3ViY2xhc3NjaGVja19fIiwgJm5hbWUpOworICAgIGNoZWNrZXIgPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChjbHMsICZQeUlkX19fc3ViY2xhc3NjaGVja19fKTsKICAgICBpZiAoY2hlY2tlciAhPSBOVUxMKSB7CiAgICAgICAgIFB5T2JqZWN0ICpyZXM7CiAgICAgICAgIGludCBvayA9IC0xOwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9ieXRlYXJyYXlvYmplY3QuYyBiL09iamVjdHMvYnl0ZWFycmF5b2JqZWN0LmMKaW5kZXggNTViNGRmNi4uNWI3MDgzZCAxMDA2NDQKLS0tIGEvT2JqZWN0cy9ieXRlYXJyYXlvYmplY3QuYworKysgYi9PYmplY3RzL2J5dGVhcnJheW9iamVjdC5jCkBAIC0xMzksNyArMTM5LDcgQEAKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIGFsbG9jID0gc2l6ZSArIDE7Ci0gICAgICAgIG5ldy0+b2JfYnl0ZXMgPSBQeU1lbV9NYWxsb2MoYWxsb2MpOworICAgICAgICBuZXctPm9iX2J5dGVzID0gUHlPYmplY3RfTWFsbG9jKGFsbG9jKTsKICAgICAgICAgaWYgKG5ldy0+b2JfYnl0ZXMgPT0gTlVMTCkgewogICAgICAgICAgICAgUHlfREVDUkVGKG5ldyk7CiAgICAgICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKQEAgLTIwOSw3ICsyMDksNyBAQAogICAgICAgICBhbGxvYyA9IHNpemUgKyAxOwogICAgIH0KIAotICAgIHN2YWwgPSBQeU1lbV9SZWFsbG9jKCgoUHlCeXRlQXJyYXlPYmplY3QgKilzZWxmKS0+b2JfYnl0ZXMsIGFsbG9jKTsKKyAgICBzdmFsID0gUHlPYmplY3RfUmVhbGxvYygoKFB5Qnl0ZUFycmF5T2JqZWN0ICopc2VsZiktPm9iX2J5dGVzLCBhbGxvYyk7CiAgICAgaWYgKHN2YWwgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwogICAgICAgICByZXR1cm4gLTE7CkBAIC04NTAsODcgKzg1MCw4MiBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGJ5dGVhcnJheV9yZXByKFB5Qnl0ZUFycmF5T2JqZWN0ICpzZWxmKQogewotICAgIHN0YXRpYyBjb25zdCBjaGFyICpoZXhkaWdpdHMgPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CiAgICAgY29uc3QgY2hhciAqcXVvdGVfcHJlZml4ID0gImJ5dGVhcnJheShiIjsKICAgICBjb25zdCBjaGFyICpxdW90ZV9wb3N0Zml4ID0gIikiOwogICAgIFB5X3NzaXplX3QgbGVuZ3RoID0gUHlfU0laRShzZWxmKTsKLSAgICAvKiAxNCA9PSBzdHJsZW4ocXVvdGVfcHJlZml4KSArIDIgKyBzdHJsZW4ocXVvdGVfcG9zdGZpeCkgKi8KKyAgICAvKiAxNSA9PSBzdHJsZW4ocXVvdGVfcHJlZml4KSArIDIgKyBzdHJsZW4ocXVvdGVfcG9zdGZpeCkgKyAxICovCiAgICAgc2l6ZV90IG5ld3NpemU7CiAgICAgUHlPYmplY3QgKnY7Ci0gICAgaWYgKGxlbmd0aCA+IChQWV9TU0laRV9UX01BWCAtIDE0KSAvIDQpIHsKKyAgICByZWdpc3RlciBQeV9zc2l6ZV90IGk7CisgICAgcmVnaXN0ZXIgY2hhciBjOworICAgIHJlZ2lzdGVyIGNoYXIgKnA7CisgICAgaW50IHF1b3RlOworICAgIGNoYXIgKnRlc3QsICpzdGFydDsKKyAgICBjaGFyICpidWZmZXI7CisKKyAgICBpZiAobGVuZ3RoID4gKFBZX1NTSVpFX1RfTUFYIC0gMTUpIC8gNCkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKICAgICAgICAgICAgICJieXRlYXJyYXkgb2JqZWN0IGlzIHRvbyBsYXJnZSB0byBtYWtlIHJlcHIiKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIG5ld3NpemUgPSAxNCArIDQgKiBsZW5ndGg7Ci0gICAgdiA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLCBuZXdzaXplKTsKLSAgICBpZiAodiA9PSBOVUxMKSB7CisKKyAgICBuZXdzaXplID0gMTUgKyBsZW5ndGggKiA0OworICAgIGJ1ZmZlciA9IFB5T2JqZWN0X01hbGxvYyhuZXdzaXplKTsKKyAgICBpZiAoYnVmZmVyID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIGVsc2UgewotICAgICAgICByZWdpc3RlciBQeV9zc2l6ZV90IGk7Ci0gICAgICAgIHJlZ2lzdGVyIFB5X1VOSUNPREUgYzsKLSAgICAgICAgcmVnaXN0ZXIgUHlfVU5JQ09ERSAqcDsKLSAgICAgICAgaW50IHF1b3RlOwogCi0gICAgICAgIC8qIEZpZ3VyZSBvdXQgd2hpY2ggcXVvdGUgdG8gdXNlOyBzaW5nbGUgaXMgcHJlZmVycmVkICovCi0gICAgICAgIHF1b3RlID0gJ1wnJzsKLSAgICAgICAgewotICAgICAgICAgICAgY2hhciAqdGVzdCwgKnN0YXJ0OwotICAgICAgICAgICAgc3RhcnQgPSBQeUJ5dGVBcnJheV9BU19TVFJJTkcoc2VsZik7Ci0gICAgICAgICAgICBmb3IgKHRlc3QgPSBzdGFydDsgdGVzdCA8IHN0YXJ0K2xlbmd0aDsgKyt0ZXN0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKCp0ZXN0ID09ICciJykgewotICAgICAgICAgICAgICAgICAgICBxdW90ZSA9ICdcJyc7IC8qIGJhY2sgdG8gc2luZ2xlICovCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gZGVjaWRlZDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoKnRlc3QgPT0gJ1wnJykKLSAgICAgICAgICAgICAgICAgICAgcXVvdGUgPSAnIic7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgZGVjaWRlZDoKLSAgICAgICAgICAgIDsKKyAgICAvKiBGaWd1cmUgb3V0IHdoaWNoIHF1b3RlIHRvIHVzZTsgc2luZ2xlIGlzIHByZWZlcnJlZCAqLworICAgIHF1b3RlID0gJ1wnJzsKKyAgICBzdGFydCA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyhzZWxmKTsKKyAgICBmb3IgKHRlc3QgPSBzdGFydDsgdGVzdCA8IHN0YXJ0K2xlbmd0aDsgKyt0ZXN0KSB7CisgICAgICAgIGlmICgqdGVzdCA9PSAnIicpIHsKKyAgICAgICAgICAgIHF1b3RlID0gJ1wnJzsgLyogYmFjayB0byBzaW5nbGUgKi8KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KLSAgICAgICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHYpOwotICAgICAgICB3aGlsZSAoKnF1b3RlX3ByZWZpeCkKLSAgICAgICAgICAgICpwKysgPSAqcXVvdGVfcHJlZml4Kys7Ci0gICAgICAgICpwKysgPSBxdW90ZTsKLQotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIC8qIFRoZXJlJ3MgYXQgbGVhc3QgZW5vdWdoIHJvb20gZm9yIGEgaGV4IGVzY2FwZQotICAgICAgICAgICAgICAgYW5kIGEgY2xvc2luZyBxdW90ZS4gKi8KLSAgICAgICAgICAgIGFzc2VydChuZXdzaXplIC0gKHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSkgPj0gNSk7Ci0gICAgICAgICAgICBjID0gc2VsZi0+b2JfYnl0ZXNbaV07Ci0gICAgICAgICAgICBpZiAoYyA9PSAnXCcnIHx8IGMgPT0gJ1xcJykKLSAgICAgICAgICAgICAgICAqcCsrID0gJ1xcJywgKnArKyA9IGM7Ci0gICAgICAgICAgICBlbHNlIGlmIChjID09ICdcdCcpCi0gICAgICAgICAgICAgICAgKnArKyA9ICdcXCcsICpwKysgPSAndCc7Ci0gICAgICAgICAgICBlbHNlIGlmIChjID09ICdcbicpCi0gICAgICAgICAgICAgICAgKnArKyA9ICdcXCcsICpwKysgPSAnbic7Ci0gICAgICAgICAgICBlbHNlIGlmIChjID09ICdccicpCi0gICAgICAgICAgICAgICAgKnArKyA9ICdcXCcsICpwKysgPSAncic7Ci0gICAgICAgICAgICBlbHNlIGlmIChjID09IDApCi0gICAgICAgICAgICAgICAgKnArKyA9ICdcXCcsICpwKysgPSAneCcsICpwKysgPSAnMCcsICpwKysgPSAnMCc7Ci0gICAgICAgICAgICBlbHNlIGlmIChjIDwgJyAnIHx8IGMgPj0gMHg3ZikgewotICAgICAgICAgICAgICAgICpwKysgPSAnXFwnOwotICAgICAgICAgICAgICAgICpwKysgPSAneCc7Ci0gICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soYyAmIDB4ZjApID4+IDRdOwotICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbYyAmIDB4Zl07Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgKnArKyA9IGM7Ci0gICAgICAgIH0KLSAgICAgICAgYXNzZXJ0KG5ld3NpemUgLSAocCAtIFB5VW5pY29kZV9BU19VTklDT0RFKHYpKSA+PSAxKTsKLSAgICAgICAgKnArKyA9IHF1b3RlOwotICAgICAgICB3aGlsZSAoKnF1b3RlX3Bvc3RmaXgpIHsKLSAgICAgICAgICAgKnArKyA9ICpxdW90ZV9wb3N0Zml4Kys7Ci0gICAgICAgIH0KLSAgICAgICAgKnAgPSAnXDAnOwotICAgICAgICBpZiAoUHlVbmljb2RlX1Jlc2l6ZSgmdiwgKHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSkpKSB7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdjsKKyAgICAgICAgZWxzZSBpZiAoKnRlc3QgPT0gJ1wnJykKKyAgICAgICAgICAgIHF1b3RlID0gJyInOwogICAgIH0KKworICAgIHAgPSBidWZmZXI7CisgICAgd2hpbGUgKCpxdW90ZV9wcmVmaXgpCisgICAgICAgICpwKysgPSAqcXVvdGVfcHJlZml4Kys7CisgICAgKnArKyA9IHF1b3RlOworCisgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIC8qIFRoZXJlJ3MgYXQgbGVhc3QgZW5vdWdoIHJvb20gZm9yIGEgaGV4IGVzY2FwZQorICAgICAgICAgICBhbmQgYSBjbG9zaW5nIHF1b3RlLiAqLworICAgICAgICBhc3NlcnQobmV3c2l6ZSAtIChwIC0gYnVmZmVyKSA+PSA1KTsKKyAgICAgICAgYyA9IHNlbGYtPm9iX2J5dGVzW2ldOworICAgICAgICBpZiAoYyA9PSAnXCcnIHx8IGMgPT0gJ1xcJykKKyAgICAgICAgICAgICpwKysgPSAnXFwnLCAqcCsrID0gYzsKKyAgICAgICAgZWxzZSBpZiAoYyA9PSAnXHQnKQorICAgICAgICAgICAgKnArKyA9ICdcXCcsICpwKysgPSAndCc7CisgICAgICAgIGVsc2UgaWYgKGMgPT0gJ1xuJykKKyAgICAgICAgICAgICpwKysgPSAnXFwnLCAqcCsrID0gJ24nOworICAgICAgICBlbHNlIGlmIChjID09ICdccicpCisgICAgICAgICAgICAqcCsrID0gJ1xcJywgKnArKyA9ICdyJzsKKyAgICAgICAgZWxzZSBpZiAoYyA9PSAwKQorICAgICAgICAgICAgKnArKyA9ICdcXCcsICpwKysgPSAneCcsICpwKysgPSAnMCcsICpwKysgPSAnMCc7CisgICAgICAgIGVsc2UgaWYgKGMgPCAnICcgfHwgYyA+PSAweDdmKSB7CisgICAgICAgICAgICAqcCsrID0gJ1xcJzsKKyAgICAgICAgICAgICpwKysgPSAneCc7CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjICYgMHhmMCkgPj4gNF07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzW2MgJiAweGZdOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgICpwKysgPSBjOworICAgIH0KKyAgICBhc3NlcnQobmV3c2l6ZSAtIChwIC0gYnVmZmVyKSA+PSAxKTsKKyAgICAqcCsrID0gcXVvdGU7CisgICAgd2hpbGUgKCpxdW90ZV9wb3N0Zml4KSB7CisgICAgICAgKnArKyA9ICpxdW90ZV9wb3N0Zml4Kys7CisgICAgfQorCisgICAgdiA9IFB5VW5pY29kZV9EZWNvZGVBU0NJSShidWZmZXIsIHAgLSBidWZmZXIsIE5VTEwpOworICAgIFB5T2JqZWN0X0ZyZWUoYnVmZmVyKTsKKyAgICByZXR1cm4gdjsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTk2NCwyMyArOTU5LDIwIEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KIAotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICB9CiAKICAgICBzZWxmX3NpemUgPSBfZ2V0YnVmZmVyKHNlbGYsICZzZWxmX2J5dGVzKTsKICAgICBpZiAoc2VsZl9zaXplIDwgMCkgewogICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICB9CiAKICAgICBvdGhlcl9zaXplID0gX2dldGJ1ZmZlcihvdGhlciwgJm90aGVyX2J5dGVzKTsKICAgICBpZiAob3RoZXJfc2l6ZSA8IDApIHsKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmc2VsZl9ieXRlcyk7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKKyAgICAgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogICAgIH0KIAogICAgIGlmIChzZWxmX3NpemUgIT0gb3RoZXJfc2l6ZSAmJiAob3AgPT0gUHlfRVEgfHwgb3AgPT0gUHlfTkUpKSB7CkBAIC0xMDI4LDcgKzEwMjAsNyBAQAogICAgICAgICBQeUVycl9QcmludCgpOwogICAgIH0KICAgICBpZiAoc2VsZi0+b2JfYnl0ZXMgIT0gMCkgewotICAgICAgICBQeU1lbV9GcmVlKHNlbGYtPm9iX2J5dGVzKTsKKyAgICAgICAgUHlPYmplY3RfRnJlZShzZWxmLT5vYl9ieXRlcyk7CiAgICAgfQogICAgIFB5X1RZUEUoc2VsZiktPnRwX2ZyZWUoKFB5T2JqZWN0ICopc2VsZik7CiB9CkBAIC0xMDM3LDYgKzEwMjksOCBAQAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIC8qIE1ldGhvZHMgKi8KIAorI2RlZmluZSBGQVNUU0VBUkNIIGZhc3RzZWFyY2gKKyNkZWZpbmUgU1RSSU5HTElCKEYpIHN0cmluZ2xpYl8jI0YKICNkZWZpbmUgU1RSSU5HTElCX0NIQVIgY2hhcgogI2RlZmluZSBTVFJJTkdMSUJfTEVOIFB5Qnl0ZUFycmF5X0dFVF9TSVpFCiAjZGVmaW5lIFNUUklOR0xJQl9TVFIgUHlCeXRlQXJyYXlfQVNfU1RSSU5HCkBAIC0xMDc3LDI0ICsxMDcxLDQxIEBACiBieXRlYXJyYXlfZmluZF9pbnRlcm5hbChQeUJ5dGVBcnJheU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIGludCBkaXIpCiB7CiAgICAgUHlPYmplY3QgKnN1Ym9iajsKKyAgICBjaGFyIGJ5dGU7CiAgICAgUHlfYnVmZmVyIHN1YmJ1ZjsKKyAgICBjb25zdCBjaGFyICpzdWI7CisgICAgUHlfc3NpemVfdCBzdWJfbGVuOwogICAgIFB5X3NzaXplX3Qgc3RhcnQ9MCwgZW5kPVBZX1NTSVpFX1RfTUFYOwogICAgIFB5X3NzaXplX3QgcmVzOwogCi0gICAgaWYgKCFzdHJpbmdsaWJfcGFyc2VfYXJnc19maW5kcygiZmluZC9yZmluZC9pbmRleC9yaW5kZXgiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncywgJnN1Ym9iaiwgJnN0YXJ0LCAmZW5kKSkKKyAgICBpZiAoIXN0cmluZ2xpYl9wYXJzZV9hcmdzX2ZpbmRzX2J5dGUoImZpbmQvcmZpbmQvaW5kZXgvcmluZGV4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncywgJnN1Ym9iaiwgJmJ5dGUsICZzdGFydCwgJmVuZCkpCiAgICAgICAgIHJldHVybiAtMjsKLSAgICBpZiAoX2dldGJ1ZmZlcihzdWJvYmosICZzdWJidWYpIDwgMCkKLSAgICAgICAgcmV0dXJuIC0yOworCisgICAgaWYgKHN1Ym9iaikgeworICAgICAgICBpZiAoX2dldGJ1ZmZlcihzdWJvYmosICZzdWJidWYpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMjsKKworICAgICAgICBzdWIgPSBzdWJidWYuYnVmOworICAgICAgICBzdWJfbGVuID0gc3ViYnVmLmxlbjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHN1YiA9ICZieXRlOworICAgICAgICBzdWJfbGVuID0gMTsKKyAgICB9CisKICAgICBpZiAoZGlyID4gMCkKICAgICAgICAgcmVzID0gc3RyaW5nbGliX2ZpbmRfc2xpY2UoCiAgICAgICAgICAgICBQeUJ5dGVBcnJheV9BU19TVFJJTkcoc2VsZiksIFB5Qnl0ZUFycmF5X0dFVF9TSVpFKHNlbGYpLAotICAgICAgICAgICAgc3ViYnVmLmJ1Ziwgc3ViYnVmLmxlbiwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBzdWIsIHN1Yl9sZW4sIHN0YXJ0LCBlbmQpOwogICAgIGVsc2UKICAgICAgICAgcmVzID0gc3RyaW5nbGliX3JmaW5kX3NsaWNlKAogICAgICAgICAgICAgUHlCeXRlQXJyYXlfQVNfU1RSSU5HKHNlbGYpLCBQeUJ5dGVBcnJheV9HRVRfU0laRShzZWxmKSwKLSAgICAgICAgICAgIHN1YmJ1Zi5idWYsIHN1YmJ1Zi5sZW4sIHN0YXJ0LCBlbmQpOwotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnN1YmJ1Zik7CisgICAgICAgICAgICBzdWIsIHN1Yl9sZW4sIHN0YXJ0LCBlbmQpOworCisgICAgaWYgKHN1Ym9iaikKKyAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmc3ViYnVmKTsKKwogICAgIHJldHVybiByZXM7CiB9CiAKQEAgLTExMjcsMjYgKzExMzgsNjYgQEAKIGJ5dGVhcnJheV9jb3VudChQeUJ5dGVBcnJheU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlPYmplY3QgKnN1Yl9vYmo7Ci0gICAgY29uc3QgY2hhciAqc3RyID0gUHlCeXRlQXJyYXlfQVNfU1RSSU5HKHNlbGYpOworICAgIGNvbnN0IGNoYXIgKnN0ciA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyhzZWxmKSwgKnN1YjsKKyAgICBQeV9zc2l6ZV90IHN1Yl9sZW47CisgICAgY2hhciBieXRlOwogICAgIFB5X3NzaXplX3Qgc3RhcnQgPSAwLCBlbmQgPSBQWV9TU0laRV9UX01BWDsKKwogICAgIFB5X2J1ZmZlciB2c3ViOwogICAgIFB5T2JqZWN0ICpjb3VudF9vYmo7CiAKLSAgICBpZiAoIXN0cmluZ2xpYl9wYXJzZV9hcmdzX2ZpbmRzKCJjb3VudCIsIGFyZ3MsICZzdWJfb2JqLCAmc3RhcnQsICZlbmQpKQorICAgIGlmICghc3RyaW5nbGliX3BhcnNlX2FyZ3NfZmluZHNfYnl0ZSgiY291bnQiLCBhcmdzLCAmc3ViX29iaiwgJmJ5dGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGFydCwgJmVuZCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgaWYgKF9nZXRidWZmZXIoc3ViX29iaiwgJnZzdWIpIDwgMCkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKHN1Yl9vYmopIHsKKyAgICAgICAgaWYgKF9nZXRidWZmZXIoc3ViX29iaiwgJnZzdWIpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworCisgICAgICAgIHN1YiA9IHZzdWIuYnVmOworICAgICAgICBzdWJfbGVuID0gdnN1Yi5sZW47CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBzdWIgPSAmYnl0ZTsKKyAgICAgICAgc3ViX2xlbiA9IDE7CisgICAgfQogCiAgICAgQURKVVNUX0lORElDRVMoc3RhcnQsIGVuZCwgUHlCeXRlQXJyYXlfR0VUX1NJWkUoc2VsZikpOwogCiAgICAgY291bnRfb2JqID0gUHlMb25nX0Zyb21Tc2l6ZV90KAotICAgICAgICBzdHJpbmdsaWJfY291bnQoc3RyICsgc3RhcnQsIGVuZCAtIHN0YXJ0LCB2c3ViLmJ1ZiwgdnN1Yi5sZW4sIFBZX1NTSVpFX1RfTUFYKQorICAgICAgICBzdHJpbmdsaWJfY291bnQoc3RyICsgc3RhcnQsIGVuZCAtIHN0YXJ0LCBzdWIsIHN1Yl9sZW4sIFBZX1NTSVpFX1RfTUFYKQogICAgICAgICApOwotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZzdWIpOworCisgICAgaWYgKHN1Yl9vYmopCisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZzdWIpOworCiAgICAgcmV0dXJuIGNvdW50X29iajsKIH0KIAorUHlEb2NfU1RSVkFSKGNsZWFyX19kb2NfXywKKyJCLmNsZWFyKCkgLT4gTm9uZVxuXAorXG5cCitSZW1vdmUgYWxsIGl0ZW1zIGZyb20gQi4iKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK2J5dGVhcnJheV9jbGVhcihQeUJ5dGVBcnJheU9iamVjdCAqc2VsZikKK3sKKyAgICBpZiAoUHlCeXRlQXJyYXlfUmVzaXplKChQeU9iamVjdCAqKXNlbGYsIDApIDwgMCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihjb3B5X19kb2NfXywKKyJCLmNvcHkoKSAtPiBieXRlYXJyYXlcblwKK1xuXAorUmV0dXJuIGEgY29weSBvZiBCLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorYnl0ZWFycmF5X2NvcHkoUHlCeXRlQXJyYXlPYmplY3QgKnNlbGYpCit7CisgICAgcmV0dXJuIFB5Qnl0ZUFycmF5X0Zyb21TdHJpbmdBbmRTaXplKFB5Qnl0ZUFycmF5X0FTX1NUUklORygoUHlPYmplY3QgKilzZWxmKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlCeXRlQXJyYXlfR0VUX1NJWkUoc2VsZikpOworfQogCiBQeURvY19TVFJWQVIoaW5kZXhfX2RvY19fLAogIkIuaW5kZXgoc3ViWywgc3RhcnRbLCBlbmRdXSkgLT4gaW50XG5cCkBAIC0xOTg4LDcgKzIwMzksNyBAQAogfQogCiBQeURvY19TVFJWQVIoc3BsaXRfX2RvY19fLAotIkIuc3BsaXQoW3NlcFssIG1heHNwbGl0XV0pIC0+IGxpc3Qgb2YgYnl0ZWFycmF5c1xuXAorIkIuc3BsaXQoc2VwPU5vbmUsIG1heHNwbGl0PS0xKSAtPiBsaXN0IG9mIGJ5dGVhcnJheXNcblwKIFxuXAogUmV0dXJuIGEgbGlzdCBvZiB0aGUgc2VjdGlvbnMgaW4gQiwgdXNpbmcgc2VwIGFzIHRoZSBkZWxpbWl0ZXIuXG5cCiBJZiBzZXAgaXMgbm90IGdpdmVuLCBCIGlzIHNwbGl0IG9uIEFTQ0lJIHdoaXRlc3BhY2UgY2hhcmFjdGVyc1xuXApAQCAtMTk5NiwxNSArMjA0NywxNyBAQAogSWYgbWF4c3BsaXQgaXMgZ2l2ZW4sIGF0IG1vc3QgbWF4c3BsaXQgc3BsaXRzIGFyZSBkb25lLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotYnl0ZWFycmF5X3NwbGl0KFB5Qnl0ZUFycmF5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK2J5dGVhcnJheV9zcGxpdChQeUJ5dGVBcnJheU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogeworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsic2VwIiwgIm1heHNwbGl0IiwgMH07CiAgICAgUHlfc3NpemVfdCBsZW4gPSBQeUJ5dGVBcnJheV9HRVRfU0laRShzZWxmKSwgbjsKICAgICBQeV9zc2l6ZV90IG1heHNwbGl0ID0gLTE7CiAgICAgY29uc3QgY2hhciAqcyA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyhzZWxmKSwgKnN1YjsKICAgICBQeU9iamVjdCAqbGlzdCwgKnN1Ym9iaiA9IFB5X05vbmU7CiAgICAgUHlfYnVmZmVyIHZzdWI7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxPbjpzcGxpdCIsICZzdWJvYmosICZtYXhzcGxpdCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgInxPbjpzcGxpdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmc3Vib2JqLCAmbWF4c3BsaXQpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAobWF4c3BsaXQgPCAwKQogICAgICAgICBtYXhzcGxpdCA9IFBZX1NTSVpFX1RfTUFYOwpAQCAtMjA4MCw3ICsyMTMzLDcgQEAKIH0KIAogUHlEb2NfU1RSVkFSKHJzcGxpdF9fZG9jX18sCi0iQi5yc3BsaXQoc2VwWywgbWF4c3BsaXRdKSAtPiBsaXN0IG9mIGJ5dGVhcnJheXNcblwKKyJCLnJzcGxpdChzZXA9Tm9uZSwgbWF4c3BsaXQ9LTEpIC0+IGxpc3Qgb2YgYnl0ZWFycmF5c1xuXAogXG5cCiBSZXR1cm4gYSBsaXN0IG9mIHRoZSBzZWN0aW9ucyBpbiBCLCB1c2luZyBzZXAgYXMgdGhlIGRlbGltaXRlcixcblwKIHN0YXJ0aW5nIGF0IHRoZSBlbmQgb2YgQiBhbmQgd29ya2luZyB0byB0aGUgZnJvbnQuXG5cCkBAIC0yMDg5LDE1ICsyMTQyLDE3IEBACiBJZiBtYXhzcGxpdCBpcyBnaXZlbiwgYXQgbW9zdCBtYXhzcGxpdCBzcGxpdHMgYXJlIGRvbmUuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1ieXRlYXJyYXlfcnNwbGl0KFB5Qnl0ZUFycmF5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK2J5dGVhcnJheV9yc3BsaXQoUHlCeXRlQXJyYXlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7InNlcCIsICJtYXhzcGxpdCIsIDB9OwogICAgIFB5X3NzaXplX3QgbGVuID0gUHlCeXRlQXJyYXlfR0VUX1NJWkUoc2VsZiksIG47CiAgICAgUHlfc3NpemVfdCBtYXhzcGxpdCA9IC0xOwogICAgIGNvbnN0IGNoYXIgKnMgPSBQeUJ5dGVBcnJheV9BU19TVFJJTkcoc2VsZiksICpzdWI7CiAgICAgUHlPYmplY3QgKmxpc3QsICpzdWJvYmogPSBQeV9Ob25lOwogICAgIFB5X2J1ZmZlciB2c3ViOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ8T246cnNwbGl0IiwgJnN1Ym9iaiwgJm1heHNwbGl0KSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE9uOnJzcGxpdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmc3Vib2JqLCAmbWF4c3BsaXQpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAobWF4c3BsaXQgPCAwKQogICAgICAgICBtYXhzcGxpdCA9IFBZX1NTSVpFX1RfTUFYOwpAQCAtMjQ0OCw3ICsyNTAzLDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBieXRlYXJyYXlfcnN0cmlwKFB5Qnl0ZUFycmF5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeV9zc2l6ZV90IGxlZnQsIHJpZ2h0LCBteXNpemUsIGFyZ3NpemU7CisgICAgUHlfc3NpemVfdCByaWdodCwgbXlzaXplLCBhcmdzaXplOwogICAgIHZvaWQgKm15cHRyLCAqYXJncHRyOwogICAgIFB5T2JqZWN0ICphcmcgPSBQeV9Ob25lOwogICAgIFB5X2J1ZmZlciB2YXJnOwpAQCAtMjQ2NiwxMSArMjUyMSwxMCBAQAogICAgIH0KICAgICBteXB0ciA9IHNlbGYtPm9iX2J5dGVzOwogICAgIG15c2l6ZSA9IFB5X1NJWkUoc2VsZik7Ci0gICAgbGVmdCA9IDA7CiAgICAgcmlnaHQgPSByc3RyaXBfaGVscGVyKG15cHRyLCBteXNpemUsIGFyZ3B0ciwgYXJnc2l6ZSk7CiAgICAgaWYgKGFyZyAhPSBQeV9Ob25lKQogICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZ2YXJnKTsKLSAgICByZXR1cm4gUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemUoc2VsZi0+b2JfYnl0ZXMgKyBsZWZ0LCByaWdodCAtIGxlZnQpOworICAgIHJldHVybiBQeUJ5dGVBcnJheV9Gcm9tU3RyaW5nQW5kU2l6ZShzZWxmLT5vYl9ieXRlcywgcmlnaHQpOwogfQogCiBQeURvY19TVFJWQVIoZGVjb2RlX2RvYywKQEAgLTI1OTIsMTEgKzI2NDYsMTMgQEAKIGlzIGdpdmVuIGFuZCB0cnVlLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi1ieXRlYXJyYXlfc3BsaXRsaW5lcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitieXRlYXJyYXlfc3BsaXRsaW5lcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogeworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsia2VlcGVuZHMiLCAwfTsKICAgICBpbnQga2VlcGVuZHMgPSAwOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ8aTpzcGxpdGxpbmVzIiwgJmtlZXBlbmRzKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifGk6c3BsaXRsaW5lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAma2VlcGVuZHMpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHJldHVybiBzdHJpbmdsaWJfc3BsaXRsaW5lcygKQEAgLTI2MTMsNyArMjY2OSw3IEBACiBFeGFtcGxlOiBieXRlYXJyYXkuZnJvbWhleCgnQjkgMDFFRicpIC0+IGJ5dGVhcnJheShiJ1xceGI5XFx4MDFcXHhlZicpLiIpOwogCiBzdGF0aWMgaW50Ci1oZXhfZGlnaXRfdG9faW50KFB5X1VOSUNPREUgYykKK2hleF9kaWdpdF90b19pbnQoUHlfVUNTNCBjKQogewogICAgIGlmIChjID49IDEyOCkKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtMjYzMywxNSArMjY4OSwyMCBAQAogewogICAgIFB5T2JqZWN0ICpuZXdieXRlcywgKmhleG9iajsKICAgICBjaGFyICpidWY7Ci0gICAgUHlfVU5JQ09ERSAqaGV4OwogICAgIFB5X3NzaXplX3QgaGV4bGVuLCBieXRlc2xlbiwgaSwgajsKICAgICBpbnQgdG9wLCBib3Q7CisgICAgdm9pZCAqZGF0YTsKKyAgICB1bnNpZ25lZCBpbnQga2luZDsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVTpmcm9taGV4IiwgJmhleG9iaikpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGFzc2VydChQeVVuaWNvZGVfQ2hlY2soaGV4b2JqKSk7Ci0gICAgaGV4bGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKGhleG9iaik7Ci0gICAgaGV4ID0gUHlVbmljb2RlX0FTX1VOSUNPREUoaGV4b2JqKTsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKGhleG9iaikpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChoZXhvYmopOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShoZXhvYmopOworICAgIGhleGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGhleG9iaik7CisKICAgICBieXRlc2xlbiA9IGhleGxlbi8yOyAvKiBUaGlzIG92ZXJlc3RpbWF0ZXMgaWYgdGhlcmUgYXJlIHNwYWNlcyAqLwogICAgIG5ld2J5dGVzID0gUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgYnl0ZXNsZW4pOwogICAgIGlmICghbmV3Ynl0ZXMpCkBAIC0yNjQ5LDEyICsyNzEwLDEyIEBACiAgICAgYnVmID0gUHlCeXRlQXJyYXlfQVNfU1RSSU5HKG5ld2J5dGVzKTsKICAgICBmb3IgKGkgPSBqID0gMDsgaSA8IGhleGxlbjsgaSArPSAyKSB7CiAgICAgICAgIC8qIHNraXAgb3ZlciBzcGFjZXMgaW4gdGhlIGlucHV0ICovCi0gICAgICAgIHdoaWxlIChoZXhbaV0gPT0gJyAnKQorICAgICAgICB3aGlsZSAoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSkgPT0gJyAnKQogICAgICAgICAgICAgaSsrOwogICAgICAgICBpZiAoaSA+PSBoZXhsZW4pCiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgdG9wID0gaGV4X2RpZ2l0X3RvX2ludChoZXhbaV0pOwotICAgICAgICBib3QgPSBoZXhfZGlnaXRfdG9faW50KGhleFtpKzFdKTsKKyAgICAgICAgdG9wID0gaGV4X2RpZ2l0X3RvX2ludChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKSk7CisgICAgICAgIGJvdCA9IGhleF9kaWdpdF90b19pbnQoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSsxKSk7CiAgICAgICAgIGlmICh0b3AgPT0gLTEgfHwgYm90ID09IC0xKSB7CiAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAibm9uLWhleGFkZWNpbWFsIG51bWJlciBmb3VuZCBpbiAiCkBAIC0yNjcyLDI2ICsyNzMzLDU5IEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKLVB5RG9jX1NUUlZBUihyZWR1Y2VfZG9jLCAiUmV0dXJuIHN0YXRlIGluZm9ybWF0aW9uIGZvciBwaWNrbGluZy4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLWJ5dGVhcnJheV9yZWR1Y2UoUHlCeXRlQXJyYXlPYmplY3QgKnNlbGYpCitfY29tbW9uX3JlZHVjZShQeUJ5dGVBcnJheU9iamVjdCAqc2VsZiwgaW50IHByb3RvKQogewotICAgIFB5T2JqZWN0ICpsYXRpbjEsICpkaWN0OwotICAgIGlmIChzZWxmLT5vYl9ieXRlcykKLSAgICAgICAgbGF0aW4xID0gUHlVbmljb2RlX0RlY29kZUxhdGluMShzZWxmLT5vYl9ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9TSVpFKHNlbGYpLCBOVUxMKTsKLSAgICBlbHNlCi0gICAgICAgIGxhdGluMSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCIiKTsKKyAgICBQeU9iamVjdCAqZGljdDsKKyAgICBfUHlfSURFTlRJRklFUihfX2RpY3RfXyk7CiAKLSAgICBkaWN0ID0gUHlPYmplY3RfR2V0QXR0clN0cmluZygoUHlPYmplY3QgKilzZWxmLCAiX19kaWN0X18iKTsKKyAgICBkaWN0ID0gX1B5T2JqZWN0X0dldEF0dHJJZCgoUHlPYmplY3QgKilzZWxmLCAmUHlJZF9fX2RpY3RfXyk7CiAgICAgaWYgKGRpY3QgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICBkaWN0ID0gUHlfTm9uZTsKICAgICAgICAgUHlfSU5DUkVGKGRpY3QpOwogICAgIH0KIAotICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoTyhOcylOKSIsIFB5X1RZUEUoc2VsZiksIGxhdGluMSwgImxhdGluLTEiLCBkaWN0KTsKKyAgICBpZiAocHJvdG8gPCAzKSB7CisgICAgICAgIC8qIHVzZSBzdHIgYmFzZWQgcmVkdWN0aW9uIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIFB5dGhvbiAyLnggKi8KKyAgICAgICAgUHlPYmplY3QgKmxhdGluMTsKKyAgICAgICAgaWYgKHNlbGYtPm9iX2J5dGVzKQorICAgICAgICAgICAgbGF0aW4xID0gUHlVbmljb2RlX0RlY29kZUxhdGluMShzZWxmLT5vYl9ieXRlcywgUHlfU0laRShzZWxmKSwgTlVMTCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxhdGluMSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCIiKTsKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihPKE5zKU4pIiwgUHlfVFlQRShzZWxmKSwgbGF0aW4xLCAibGF0aW4tMSIsIGRpY3QpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLyogdXNlIG1vcmUgZWZmaWNpZW50IGJ5dGUgYmFzZWQgcmVkdWN0aW9uICovCisgICAgICAgIGlmIChzZWxmLT5vYl9ieXRlcykgeworICAgICAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihPKHkjKU4pIiwgUHlfVFlQRShzZWxmKSwgc2VsZi0+b2JfYnl0ZXMsIFB5X1NJWkUoc2VsZiksIGRpY3QpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihPKClOKSIsIFB5X1RZUEUoc2VsZiksIGRpY3QpOworICAgICAgICB9CisgICAgfQorfQorCitQeURvY19TVFJWQVIocmVkdWNlX2RvYywgIlJldHVybiBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgcGlja2xpbmcuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitieXRlYXJyYXlfcmVkdWNlKFB5Qnl0ZUFycmF5T2JqZWN0ICpzZWxmKQoreworICAgIHJldHVybiBfY29tbW9uX3JlZHVjZShzZWxmLCAyKTsKK30KKworUHlEb2NfU1RSVkFSKHJlZHVjZV9leF9kb2MsICJSZXR1cm4gc3RhdGUgaW5mb3JtYXRpb24gZm9yIHBpY2tsaW5nLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgorYnl0ZWFycmF5X3JlZHVjZV9leChQeUJ5dGVBcnJheU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgaW50IHByb3RvID0gMDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifGk6X19yZWR1Y2VfZXhfXyIsICZwcm90bykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0dXJuIF9jb21tb25fcmVkdWNlKHNlbGYsIHByb3RvKTsKIH0KIAogUHlEb2NfU1RSVkFSKHNpemVvZl9kb2MsCkBAIC0yNzM1LDExICsyODI5LDE0IEBACiBieXRlYXJyYXlfbWV0aG9kc1tdID0gewogICAgIHsiX19hbGxvY19fIiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheV9hbGxvYywgTUVUSF9OT0FSR1MsIGFsbG9jX2RvY30sCiAgICAgeyJfX3JlZHVjZV9fIiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheV9yZWR1Y2UsIE1FVEhfTk9BUkdTLCByZWR1Y2VfZG9jfSwKKyAgICB7Il9fcmVkdWNlX2V4X18iLCAoUHlDRnVuY3Rpb24pYnl0ZWFycmF5X3JlZHVjZV9leCwgTUVUSF9WQVJBUkdTLCByZWR1Y2VfZXhfZG9jfSwKICAgICB7Il9fc2l6ZW9mX18iLCAoUHlDRnVuY3Rpb24pYnl0ZWFycmF5X3NpemVvZiwgTUVUSF9OT0FSR1MsIHNpemVvZl9kb2N9LAogICAgIHsiYXBwZW5kIiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheV9hcHBlbmQsIE1FVEhfTywgYXBwZW5kX19kb2NfX30sCiAgICAgeyJjYXBpdGFsaXplIiwgKFB5Q0Z1bmN0aW9uKXN0cmluZ2xpYl9jYXBpdGFsaXplLCBNRVRIX05PQVJHUywKICAgICAgX1B5X2NhcGl0YWxpemVfX2RvY19ffSwKICAgICB7ImNlbnRlciIsIChQeUNGdW5jdGlvbilzdHJpbmdsaWJfY2VudGVyLCBNRVRIX1ZBUkFSR1MsIGNlbnRlcl9fZG9jX199LAorICAgIHsiY2xlYXIiLCAoUHlDRnVuY3Rpb24pYnl0ZWFycmF5X2NsZWFyLCBNRVRIX05PQVJHUywgY2xlYXJfX2RvY19ffSwKKyAgICB7ImNvcHkiLCAoUHlDRnVuY3Rpb24pYnl0ZWFycmF5X2NvcHksIE1FVEhfTk9BUkdTLCBjb3B5X19kb2NfX30sCiAgICAgeyJjb3VudCIsIChQeUNGdW5jdGlvbilieXRlYXJyYXlfY291bnQsIE1FVEhfVkFSQVJHUywgY291bnRfX2RvY19ffSwKICAgICB7ImRlY29kZSIsIChQeUNGdW5jdGlvbilieXRlYXJyYXlfZGVjb2RlLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCBkZWNvZGVfZG9jfSwKICAgICB7ImVuZHN3aXRoIiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheV9lbmRzd2l0aCwgTUVUSF9WQVJBUkdTLCBlbmRzd2l0aF9fZG9jX199LApAQCAtMjc4MCwxMSArMjg3NywxMSBAQAogICAgIHsicmluZGV4IiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheV9yaW5kZXgsIE1FVEhfVkFSQVJHUywgcmluZGV4X19kb2NfX30sCiAgICAgeyJyanVzdCIsIChQeUNGdW5jdGlvbilzdHJpbmdsaWJfcmp1c3QsIE1FVEhfVkFSQVJHUywgcmp1c3RfX2RvY19ffSwKICAgICB7InJwYXJ0aXRpb24iLCAoUHlDRnVuY3Rpb24pYnl0ZWFycmF5X3JwYXJ0aXRpb24sIE1FVEhfTywgcnBhcnRpdGlvbl9fZG9jX199LAotICAgIHsicnNwbGl0IiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheV9yc3BsaXQsIE1FVEhfVkFSQVJHUywgcnNwbGl0X19kb2NfX30sCisgICAgeyJyc3BsaXQiLCAoUHlDRnVuY3Rpb24pYnl0ZWFycmF5X3JzcGxpdCwgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgcnNwbGl0X19kb2NfX30sCiAgICAgeyJyc3RyaXAiLCAoUHlDRnVuY3Rpb24pYnl0ZWFycmF5X3JzdHJpcCwgTUVUSF9WQVJBUkdTLCByc3RyaXBfX2RvY19ffSwKLSAgICB7InNwbGl0IiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheV9zcGxpdCwgTUVUSF9WQVJBUkdTLCBzcGxpdF9fZG9jX199LAotICAgIHsic3BsaXRsaW5lcyIsIChQeUNGdW5jdGlvbilieXRlYXJyYXlfc3BsaXRsaW5lcywgTUVUSF9WQVJBUkdTLAotICAgICBzcGxpdGxpbmVzX19kb2NfX30sCisgICAgeyJzcGxpdCIsIChQeUNGdW5jdGlvbilieXRlYXJyYXlfc3BsaXQsIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsIHNwbGl0X19kb2NfX30sCisgICAgeyJzcGxpdGxpbmVzIiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheV9zcGxpdGxpbmVzLAorICAgICBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCBzcGxpdGxpbmVzX19kb2NfX30sCiAgICAgeyJzdGFydHN3aXRoIiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheV9zdGFydHN3aXRoLCBNRVRIX1ZBUkFSR1MgLAogICAgICBzdGFydHN3aXRoX19kb2NfX30sCiAgICAgeyJzdHJpcCIsIChQeUNGdW5jdGlvbilieXRlYXJyYXlfc3RyaXAsIE1FVEhfVkFSQVJHUywgc3RyaXBfX2RvY19ffSwKQEAgLTI5MDYsNyArMzAwMyw3IEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1ieXRlc2FycmF5aXRlcl9sZW5ndGhfaGludChieXRlc2l0ZXJvYmplY3QgKml0KQorYnl0ZWFycmF5aXRlcl9sZW5ndGhfaGludChieXRlc2l0ZXJvYmplY3QgKml0KQogewogICAgIFB5X3NzaXplX3QgbGVuID0gMDsKICAgICBpZiAoaXQtPml0X3NlcSkKQEAgLTI5MTcsOSArMzAxNCw0MSBAQAogUHlEb2NfU1RSVkFSKGxlbmd0aF9oaW50X2RvYywKICAgICAiUHJpdmF0ZSBtZXRob2QgcmV0dXJuaW5nIGFuIGVzdGltYXRlIG9mIGxlbihsaXN0KGl0KSkuIik7CiAKK3N0YXRpYyBQeU9iamVjdCAqCitieXRlYXJyYXlpdGVyX3JlZHVjZShieXRlc2l0ZXJvYmplY3QgKml0KQoreworICAgIGlmIChpdC0+aXRfc2VxICE9IE5VTEwpIHsKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk4oTyluIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oIml0ZXIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQtPml0X3NlcSwgaXQtPml0X2luZGV4KTsKKyAgICB9IGVsc2UgeworICAgICAgICBQeU9iamVjdCAqdSA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLCAwKTsKKyAgICAgICAgaWYgKHUgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTihOKSIsIF9QeU9iamVjdF9HZXRCdWlsdGluKCJpdGVyIiksIHUpOworICAgIH0KK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2J5dGVhcnJheWl0ZXJfc2V0c3RhdGUoYnl0ZXNpdGVyb2JqZWN0ICppdCwgUHlPYmplY3QgKnN0YXRlKQoreworICAgIFB5X3NzaXplX3QgaW5kZXggPSBQeUxvbmdfQXNTc2l6ZV90KHN0YXRlKTsKKyAgICBpZiAoaW5kZXggPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgaW5kZXggPSAwOworICAgIGl0LT5pdF9pbmRleCA9IGluZGV4OworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitQeURvY19TVFJWQVIoc2V0c3RhdGVfZG9jLCAiU2V0IHN0YXRlIGluZm9ybWF0aW9uIGZvciB1bnBpY2tsaW5nLiIpOworCiBzdGF0aWMgUHlNZXRob2REZWYgYnl0ZWFycmF5aXRlcl9tZXRob2RzW10gPSB7Ci0gICAgeyJfX2xlbmd0aF9oaW50X18iLCAoUHlDRnVuY3Rpb24pYnl0ZXNhcnJheWl0ZXJfbGVuZ3RoX2hpbnQsIE1FVEhfTk9BUkdTLAorICAgIHsiX19sZW5ndGhfaGludF9fIiwgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheWl0ZXJfbGVuZ3RoX2hpbnQsIE1FVEhfTk9BUkdTLAogICAgICBsZW5ndGhfaGludF9kb2N9LAorICAgICB7Il9fcmVkdWNlX18iLCAgICAgIChQeUNGdW5jdGlvbilieXRlYXJyYXlpdGVyX3JlZHVjZSwgTUVUSF9OT0FSR1MsCisgICAgIHJlZHVjZV9kb2N9LAorICAgIHsiX19zZXRzdGF0ZV9fIiwgICAgKFB5Q0Z1bmN0aW9uKWJ5dGVhcnJheWl0ZXJfc2V0c3RhdGUsIE1FVEhfTywKKyAgICAgc2V0c3RhdGVfZG9jfSwKICAgICB7TlVMTCwgTlVMTH0gLyogc2VudGluZWwgKi8KIH07CiAKZGlmZiAtLWdpdCBhL09iamVjdHMvYnl0ZXNfbWV0aG9kcy5jIGIvT2JqZWN0cy9ieXRlc19tZXRob2RzLmMKaW5kZXggNzIzM2NlYS4uZWYzYzJmNyAxMDA2NDQKLS0tIGEvT2JqZWN0cy9ieXRlc19tZXRob2RzLmMKKysrIGIvT2JqZWN0cy9ieXRlc19tZXRob2RzLmMKQEAgLTI0OCwxMiArMjQ4LDggQEAKIHsKICAgICBQeV9zc2l6ZV90IGk7CiAKLSAgICBQeV9NRU1DUFkocmVzdWx0LCBjcHRyLCBsZW4pOwotCiAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgIGludCBjID0gUHlfQ0hBUk1BU0socmVzdWx0W2ldKTsKLSAgICAgICAgaWYgKFB5X0lTVVBQRVIoYykpCi0gICAgICAgICAgICByZXN1bHRbaV0gPSBQeV9UT0xPV0VSKGMpOworICAgICAgICByZXN1bHRbaV0gPSBQeV9UT0xPV0VSKCh1bnNpZ25lZCBjaGFyKSBjcHRyW2ldKTsKICAgICB9CiB9CiAKQEAgLTI2OCwxMiArMjY0LDggQEAKIHsKICAgICBQeV9zc2l6ZV90IGk7CiAKLSAgICBQeV9NRU1DUFkocmVzdWx0LCBjcHRyLCBsZW4pOwotCiAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgIGludCBjID0gUHlfQ0hBUk1BU0socmVzdWx0W2ldKTsKLSAgICAgICAgaWYgKFB5X0lTTE9XRVIoYykpCi0gICAgICAgICAgICByZXN1bHRbaV0gPSBQeV9UT1VQUEVSKGMpOworICAgICAgICByZXN1bHRbaV0gPSBQeV9UT1VQUEVSKCh1bnNpZ25lZCBjaGFyKSBjcHRyW2ldKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL09iamVjdHMvYnl0ZXNvYmplY3QuYyBiL09iamVjdHMvYnl0ZXNvYmplY3QuYwppbmRleCA3OTZlNDAwLi4xNGJkOGU2IDEwMDY0NAotLS0gYS9PYmplY3RzL2J5dGVzb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9ieXRlc29iamVjdC5jCkBAIC00MSwxMCArNDEsNiBAQAogI2RlZmluZSBQeUJ5dGVzT2JqZWN0X1NJWkUgKG9mZnNldG9mKFB5Qnl0ZXNPYmplY3QsIG9iX3N2YWwpICsgMSkKIAogLyoKLSAgIEZvciBib3RoIFB5Qnl0ZXNfRnJvbVN0cmluZygpIGFuZCBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKCksIHRoZQotICAgcGFyYW1ldGVyIGBzaXplJyBkZW5vdGVzIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRvIGFsbG9jYXRlLCBub3QgY291bnRpbmcgYW55Ci0gICBudWxsIHRlcm1pbmF0aW5nIGNoYXJhY3Rlci4KLQogICAgRm9yIFB5Qnl0ZXNfRnJvbVN0cmluZygpLCB0aGUgcGFyYW1ldGVyIGBzdHInIHBvaW50cyB0byBhIG51bGwtdGVybWluYXRlZAogICAgc3RyaW5nIGNvbnRhaW5pbmcgZXhhY3RseSBgc2l6ZScgYnl0ZXMuCiAKQEAgLTYxLDggKzU3LDggQEAKIAogICAgVGhlIFB5T2JqZWN0IG1lbWJlciBgb3AtPm9iX3NpemUnLCB3aGljaCBkZW5vdGVzIHRoZSBudW1iZXIgb2YgImV4dHJhCiAgICBpdGVtcyIgaW4gYSB2YXJpYWJsZS1zaXplIG9iamVjdCwgd2lsbCBjb250YWluIHRoZSBudW1iZXIgb2YgYnl0ZXMKLSAgIGFsbG9jYXRlZCBmb3Igc3RyaW5nIGRhdGEsIG5vdCBjb3VudGluZyB0aGUgbnVsbCB0ZXJtaW5hdGluZyBjaGFyYWN0ZXIuICBJdAotICAgaXMgdGhlcmVmb3JlIGVxdWFsIHRvIHRoZSBlcXVhbCB0byB0aGUgYHNpemUnIHBhcmFtZXRlciAoZm9yCisgICBhbGxvY2F0ZWQgZm9yIHN0cmluZyBkYXRhLCBub3QgY291bnRpbmcgdGhlIG51bGwgdGVybWluYXRpbmcgY2hhcmFjdGVyLgorICAgSXQgaXMgdGhlcmVmb3JlIGVxdWFsIHRvIHRoZSBgc2l6ZScgcGFyYW1ldGVyIChmb3IKICAgIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoKSkgb3IgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIGluIHRoZSBgc3RyJwogICAgcGFyYW1ldGVyIChmb3IgUHlCeXRlc19Gcm9tU3RyaW5nKCkpLgogKi8KQEAgLTU2OCw3NiArNTY0LDcwIEBACiBQeU9iamVjdCAqCiBQeUJ5dGVzX1JlcHIoUHlPYmplY3QgKm9iaiwgaW50IHNtYXJ0cXVvdGVzKQogewotICAgIHN0YXRpYyBjb25zdCBjaGFyICpoZXhkaWdpdHMgPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CiAgICAgcmVnaXN0ZXIgUHlCeXRlc09iamVjdCogb3AgPSAoUHlCeXRlc09iamVjdCopIG9iajsKLSAgICBQeV9zc2l6ZV90IGxlbmd0aCA9IFB5X1NJWkUob3ApOwotICAgIHNpemVfdCBuZXdzaXplOworICAgIFB5X3NzaXplX3QgaSwgbGVuZ3RoID0gUHlfU0laRShvcCk7CisgICAgc2l6ZV90IG5ld3NpemUsIHNxdW90ZXMsIGRxdW90ZXM7CiAgICAgUHlPYmplY3QgKnY7Ci0gICAgaWYgKGxlbmd0aCA+IChQWV9TU0laRV9UX01BWCAtIDMpIC8gNCkgeworICAgIHVuc2lnbmVkIGNoYXIgcXVvdGUsICpzLCAqcDsKKworICAgIC8qIENvbXB1dGUgc2l6ZSBvZiBvdXRwdXQgc3RyaW5nICovCisgICAgc3F1b3RlcyA9IGRxdW90ZXMgPSAwOworICAgIG5ld3NpemUgPSAzOyAvKiBiJycgKi8KKyAgICBzID0gKHVuc2lnbmVkIGNoYXIqKW9wLT5vYl9zdmFsOworICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBzd2l0Y2goc1tpXSkgeworICAgICAgICBjYXNlICdcJyc6IHNxdW90ZXMrKzsgbmV3c2l6ZSsrOyBicmVhazsKKyAgICAgICAgY2FzZSAnIic6ICBkcXVvdGVzKys7IG5ld3NpemUrKzsgYnJlYWs7CisgICAgICAgIGNhc2UgJ1xcJzogY2FzZSAnXHQnOiBjYXNlICdcbic6IGNhc2UgJ1xyJzoKKyAgICAgICAgICAgIG5ld3NpemUgKz0gMjsgYnJlYWs7IC8qIFxDICovCisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoc1tpXSA8ICcgJyB8fCBzW2ldID49IDB4N2YpCisgICAgICAgICAgICAgICAgbmV3c2l6ZSArPSA0OyAvKiBceEhIICovCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgbmV3c2l6ZSsrOworICAgICAgICB9CisgICAgfQorICAgIHF1b3RlID0gJ1wnJzsKKyAgICBpZiAoc21hcnRxdW90ZXMgJiYgc3F1b3RlcyAmJiAhZHF1b3RlcykKKyAgICAgICAgcXVvdGUgPSAnIic7CisgICAgaWYgKHNxdW90ZXMgJiYgcXVvdGUgPT0gJ1wnJykKKyAgICAgICAgbmV3c2l6ZSArPSBzcXVvdGVzOworCisgICAgaWYgKG5ld3NpemUgPiAoUFlfU1NJWkVfVF9NQVggLSBzaXplb2YoUHlVbmljb2RlT2JqZWN0KSAtIDEpKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAogICAgICAgICAgICAgImJ5dGVzIG9iamVjdCBpcyB0b28gbGFyZ2UgdG8gbWFrZSByZXByIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBuZXdzaXplID0gMyArIDQgKiBsZW5ndGg7Ci0gICAgdiA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLCBuZXdzaXplKTsKKworICAgIHYgPSBQeVVuaWNvZGVfTmV3KG5ld3NpemUsIDEyNyk7CiAgICAgaWYgKHYgPT0gTlVMTCkgewogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIHJlZ2lzdGVyIFB5X3NzaXplX3QgaTsKLSAgICAgICAgcmVnaXN0ZXIgUHlfVU5JQ09ERSBjOwotICAgICAgICByZWdpc3RlciBQeV9VTklDT0RFICpwID0gUHlVbmljb2RlX0FTX1VOSUNPREUodik7Ci0gICAgICAgIGludCBxdW90ZTsKKyAgICBwID0gUHlVbmljb2RlXzFCWVRFX0RBVEEodik7CiAKLSAgICAgICAgLyogRmlndXJlIG91dCB3aGljaCBxdW90ZSB0byB1c2U7IHNpbmdsZSBpcyBwcmVmZXJyZWQgKi8KLSAgICAgICAgcXVvdGUgPSAnXCcnOwotICAgICAgICBpZiAoc21hcnRxdW90ZXMpIHsKLSAgICAgICAgICAgIGNoYXIgKnRlc3QsICpzdGFydDsKLSAgICAgICAgICAgIHN0YXJ0ID0gUHlCeXRlc19BU19TVFJJTkcob3ApOwotICAgICAgICAgICAgZm9yICh0ZXN0ID0gc3RhcnQ7IHRlc3QgPCBzdGFydCtsZW5ndGg7ICsrdGVzdCkgewotICAgICAgICAgICAgICAgIGlmICgqdGVzdCA9PSAnIicpIHsKLSAgICAgICAgICAgICAgICAgICAgcXVvdGUgPSAnXCcnOyAvKiBiYWNrIHRvIHNpbmdsZSAqLwotICAgICAgICAgICAgICAgICAgICBnb3RvIGRlY2lkZWQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCp0ZXN0ID09ICdcJycpCi0gICAgICAgICAgICAgICAgICAgIHF1b3RlID0gJyInOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZGVjaWRlZDoKLSAgICAgICAgICAgIDsKKyAgICAqcCsrID0gJ2InLCAqcCsrID0gcXVvdGU7CisgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgYyA9IG9wLT5vYl9zdmFsW2ldOworICAgICAgICBpZiAoYyA9PSBxdW90ZSB8fCBjID09ICdcXCcpCisgICAgICAgICAgICAqcCsrID0gJ1xcJywgKnArKyA9IGM7CisgICAgICAgIGVsc2UgaWYgKGMgPT0gJ1x0JykKKyAgICAgICAgICAgICpwKysgPSAnXFwnLCAqcCsrID0gJ3QnOworICAgICAgICBlbHNlIGlmIChjID09ICdcbicpCisgICAgICAgICAgICAqcCsrID0gJ1xcJywgKnArKyA9ICduJzsKKyAgICAgICAgZWxzZSBpZiAoYyA9PSAnXHInKQorICAgICAgICAgICAgKnArKyA9ICdcXCcsICpwKysgPSAncic7CisgICAgICAgIGVsc2UgaWYgKGMgPCAnICcgfHwgYyA+PSAweDdmKSB7CisgICAgICAgICAgICAqcCsrID0gJ1xcJzsKKyAgICAgICAgICAgICpwKysgPSAneCc7CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjICYgMHhmMCkgPj4gNF07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzW2MgJiAweGZdOwogICAgICAgICB9Ci0KLSAgICAgICAgKnArKyA9ICdiJywgKnArKyA9IHF1b3RlOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgICAgIC8qIFRoZXJlJ3MgYXQgbGVhc3QgZW5vdWdoIHJvb20gZm9yIGEgaGV4IGVzY2FwZQotICAgICAgICAgICAgICAgYW5kIGEgY2xvc2luZyBxdW90ZS4gKi8KLSAgICAgICAgICAgIGFzc2VydChuZXdzaXplIC0gKHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSkgPj0gNSk7Ci0gICAgICAgICAgICBjID0gb3AtPm9iX3N2YWxbaV07Ci0gICAgICAgICAgICBpZiAoYyA9PSBxdW90ZSB8fCBjID09ICdcXCcpCi0gICAgICAgICAgICAgICAgKnArKyA9ICdcXCcsICpwKysgPSBjOwotICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnXHQnKQotICAgICAgICAgICAgICAgICpwKysgPSAnXFwnLCAqcCsrID0gJ3QnOwotICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnXG4nKQotICAgICAgICAgICAgICAgICpwKysgPSAnXFwnLCAqcCsrID0gJ24nOwotICAgICAgICAgICAgZWxzZSBpZiAoYyA9PSAnXHInKQotICAgICAgICAgICAgICAgICpwKysgPSAnXFwnLCAqcCsrID0gJ3InOwotICAgICAgICAgICAgZWxzZSBpZiAoYyA8ICcgJyB8fCBjID49IDB4N2YpIHsKLSAgICAgICAgICAgICAgICAqcCsrID0gJ1xcJzsKLSAgICAgICAgICAgICAgICAqcCsrID0gJ3gnOwotICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGMgJiAweGYwKSA+PiA0XTsKLSAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzW2MgJiAweGZdOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICpwKysgPSBjOwotICAgICAgICB9Ci0gICAgICAgIGFzc2VydChuZXdzaXplIC0gKHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSkgPj0gMSk7Ci0gICAgICAgICpwKysgPSBxdW90ZTsKLSAgICAgICAgKnAgPSAnXDAnOwotICAgICAgICBpZiAoUHlVbmljb2RlX1Jlc2l6ZSgmdiwgKHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSkpKSB7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gdjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgKnArKyA9IGM7CiAgICAgfQorICAgICpwKysgPSBxdW90ZTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHYsIDEpKTsKKyAgICByZXR1cm4gdjsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTg3MSwzNSArODYxLDExIEBACiBzdGF0aWMgUHlfaGFzaF90CiBieXRlc19oYXNoKFB5Qnl0ZXNPYmplY3QgKmEpCiB7Ci0gICAgcmVnaXN0ZXIgUHlfc3NpemVfdCBsZW47Ci0gICAgcmVnaXN0ZXIgdW5zaWduZWQgY2hhciAqcDsKLSAgICByZWdpc3RlciBQeV9oYXNoX3QgeDsKLQotI2lmZGVmIFB5X0RFQlVHCi0gICAgYXNzZXJ0KF9QeV9IYXNoU2VjcmV0X0luaXRpYWxpemVkKTsKLSNlbmRpZgotICAgIGlmIChhLT5vYl9zaGFzaCAhPSAtMSkKLSAgICAgICAgcmV0dXJuIGEtPm9iX3NoYXNoOwotICAgIGxlbiA9IFB5X1NJWkUoYSk7Ci0gICAgLyoKLSAgICAgIFdlIG1ha2UgdGhlIGhhc2ggb2YgdGhlIGVtcHR5IHN0cmluZyBiZSAwLCByYXRoZXIgdGhhbiB1c2luZwotICAgICAgKHByZWZpeCBeIHN1ZmZpeCksIHNpbmNlIHRoaXMgc2xpZ2h0bHkgb2JmdXNjYXRlcyB0aGUgaGFzaCBzZWNyZXQKLSAgICAqLwotICAgIGlmIChsZW4gPT0gMCkgewotICAgICAgICBhLT5vYl9zaGFzaCA9IDA7Ci0gICAgICAgIHJldHVybiAwOworICAgIGlmIChhLT5vYl9zaGFzaCA9PSAtMSkgeworICAgICAgICAvKiBDYW4ndCBmYWlsICovCisgICAgICAgIGEtPm9iX3NoYXNoID0gX1B5X0hhc2hCeXRlcygodW5zaWduZWQgY2hhciAqKSBhLT5vYl9zdmFsLCBQeV9TSVpFKGEpKTsKICAgICB9Ci0gICAgcCA9ICh1bnNpZ25lZCBjaGFyICopIGEtPm9iX3N2YWw7Ci0gICAgeCA9IF9QeV9IYXNoU2VjcmV0LnByZWZpeDsKLSAgICB4IF49ICpwIDw8IDc7Ci0gICAgd2hpbGUgKC0tbGVuID49IDApCi0gICAgICAgIHggPSAoX1B5SEFTSF9NVUxUSVBMSUVSKngpIF4gKnArKzsKLSAgICB4IF49IFB5X1NJWkUoYSk7Ci0gICAgeCBePSBfUHlfSGFzaFNlY3JldC5zdWZmaXg7Ci0gICAgaWYgKHggPT0gLTEpCi0gICAgICAgIHggPSAtMjsKLSAgICBhLT5vYl9zaGFzaCA9IHg7Ci0gICAgcmV0dXJuIHg7CisgICAgcmV0dXJuIGEtPm9iX3NoYXNoOwogfQogCiBzdGF0aWMgUHlPYmplY3QqCkBAIC0xMDA3LDcgKzk3Myw3IEBACiAjZGVmaW5lIFNUUklQTkFNRShpKSAoc3RyaXBmb3JtYXRbaV0rMykKIAogUHlEb2NfU1RSVkFSKHNwbGl0X19kb2NfXywKLSJCLnNwbGl0KFtzZXBbLCBtYXhzcGxpdF1dKSAtPiBsaXN0IG9mIGJ5dGVzXG5cCisiQi5zcGxpdChzZXA9Tm9uZSwgbWF4c3BsaXQ9LTEpIC0+IGxpc3Qgb2YgYnl0ZXNcblwKIFxuXAogUmV0dXJuIGEgbGlzdCBvZiB0aGUgc2VjdGlvbnMgaW4gQiwgdXNpbmcgc2VwIGFzIHRoZSBkZWxpbWl0ZXIuXG5cCiBJZiBzZXAgaXMgbm90IHNwZWNpZmllZCBvciBpcyBOb25lLCBCIGlzIHNwbGl0IG9uIEFTQ0lJIHdoaXRlc3BhY2VcblwKQEAgLTEwMTUsMTUgKzk4MSwxNyBAQAogSWYgbWF4c3BsaXQgaXMgZ2l2ZW4sIGF0IG1vc3QgbWF4c3BsaXQgc3BsaXRzIGFyZSBkb25lLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotYnl0ZXNfc3BsaXQoUHlCeXRlc09iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitieXRlc19zcGxpdChQeUJ5dGVzT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJzZXAiLCAibWF4c3BsaXQiLCAwfTsKICAgICBQeV9zc2l6ZV90IGxlbiA9IFB5Qnl0ZXNfR0VUX1NJWkUoc2VsZiksIG47CiAgICAgUHlfc3NpemVfdCBtYXhzcGxpdCA9IC0xOwogICAgIGNvbnN0IGNoYXIgKnMgPSBQeUJ5dGVzX0FTX1NUUklORyhzZWxmKSwgKnN1YjsKICAgICBQeV9idWZmZXIgdnN1YjsKICAgICBQeU9iamVjdCAqbGlzdCwgKnN1Ym9iaiA9IFB5X05vbmU7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxPbjpzcGxpdCIsICZzdWJvYmosICZtYXhzcGxpdCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgInxPbjpzcGxpdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmc3Vib2JqLCAmbWF4c3BsaXQpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAobWF4c3BsaXQgPCAwKQogICAgICAgICBtYXhzcGxpdCA9IFBZX1NTSVpFX1RfTUFYOwpAQCAtMTA5NSw3ICsxMDYzLDcgQEAKIH0KIAogUHlEb2NfU1RSVkFSKHJzcGxpdF9fZG9jX18sCi0iQi5yc3BsaXQoW3NlcFssIG1heHNwbGl0XV0pIC0+IGxpc3Qgb2YgYnl0ZXNcblwKKyJCLnJzcGxpdChzZXA9Tm9uZSwgbWF4c3BsaXQ9LTEpIC0+IGxpc3Qgb2YgYnl0ZXNcblwKIFxuXAogUmV0dXJuIGEgbGlzdCBvZiB0aGUgc2VjdGlvbnMgaW4gQiwgdXNpbmcgc2VwIGFzIHRoZSBkZWxpbWl0ZXIsXG5cCiBzdGFydGluZyBhdCB0aGUgZW5kIG9mIEIgYW5kIHdvcmtpbmcgdG8gdGhlIGZyb250LlxuXApAQCAtMTEwNSwxNSArMTA3MywxNyBAQAogCiAKIHN0YXRpYyBQeU9iamVjdCAqCi1ieXRlc19yc3BsaXQoUHlCeXRlc09iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCitieXRlc19yc3BsaXQoUHlCeXRlc09iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogeworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsic2VwIiwgIm1heHNwbGl0IiwgMH07CiAgICAgUHlfc3NpemVfdCBsZW4gPSBQeUJ5dGVzX0dFVF9TSVpFKHNlbGYpLCBuOwogICAgIFB5X3NzaXplX3QgbWF4c3BsaXQgPSAtMTsKICAgICBjb25zdCBjaGFyICpzID0gUHlCeXRlc19BU19TVFJJTkcoc2VsZiksICpzdWI7CiAgICAgUHlfYnVmZmVyIHZzdWI7CiAgICAgUHlPYmplY3QgKmxpc3QsICpzdWJvYmogPSBQeV9Ob25lOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ8T246cnNwbGl0IiwgJnN1Ym9iaiwgJm1heHNwbGl0KSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifE9uOnJzcGxpdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmc3Vib2JqLCAmbWF4c3BsaXQpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAobWF4c3BsaXQgPCAwKQogICAgICAgICBtYXhzcGxpdCA9IFBZX1NTSVpFX1RfTUFYOwpAQCAtMTI1NCwzMSArMTIyNCw0MiBAQAogYnl0ZXNfZmluZF9pbnRlcm5hbChQeUJ5dGVzT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgaW50IGRpcikKIHsKICAgICBQeU9iamVjdCAqc3Vib2JqOworICAgIGNoYXIgYnl0ZTsKKyAgICBQeV9idWZmZXIgc3ViYnVmOwogICAgIGNvbnN0IGNoYXIgKnN1YjsKICAgICBQeV9zc2l6ZV90IHN1Yl9sZW47CiAgICAgUHlfc3NpemVfdCBzdGFydD0wLCBlbmQ9UFlfU1NJWkVfVF9NQVg7CisgICAgUHlfc3NpemVfdCByZXM7CiAKLSAgICBpZiAoIXN0cmluZ2xpYl9wYXJzZV9hcmdzX2ZpbmRzKCJmaW5kL3JmaW5kL2luZGV4L3JpbmRleCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLCAmc3Vib2JqLCAmc3RhcnQsICZlbmQpKQorICAgIGlmICghc3RyaW5nbGliX3BhcnNlX2FyZ3NfZmluZHNfYnl0ZSgiZmluZC9yZmluZC9pbmRleC9yaW5kZXgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLCAmc3Vib2JqLCAmYnl0ZSwgJnN0YXJ0LCAmZW5kKSkKICAgICAgICAgcmV0dXJuIC0yOwogCi0gICAgaWYgKFB5Qnl0ZXNfQ2hlY2soc3Vib2JqKSkgewotICAgICAgICBzdWIgPSBQeUJ5dGVzX0FTX1NUUklORyhzdWJvYmopOwotICAgICAgICBzdWJfbGVuID0gUHlCeXRlc19HRVRfU0laRShzdWJvYmopOworICAgIGlmIChzdWJvYmopIHsKKyAgICAgICAgaWYgKF9nZXRidWZmZXIoc3Vib2JqLCAmc3ViYnVmKSA8IDApCisgICAgICAgICAgICByZXR1cm4gLTI7CisKKyAgICAgICAgc3ViID0gc3ViYnVmLmJ1ZjsKKyAgICAgICAgc3ViX2xlbiA9IHN1YmJ1Zi5sZW47CiAgICAgfQotICAgIGVsc2UgaWYgKFB5T2JqZWN0X0FzQ2hhckJ1ZmZlcihzdWJvYmosICZzdWIsICZzdWJfbGVuKSkKLSAgICAgICAgLyogWFhYIC0gdGhlICJleHBlY3RlZCBhIGNoYXJhY3RlciBidWZmZXIgb2JqZWN0IiBpcyBwcmV0dHkKLSAgICAgICAgICAgY29uZnVzaW5nIGZvciBhIG5vbi1leHBlcnQuICByZW1hcCB0byBzb21ldGhpbmcgZWxzZSA/ICovCi0gICAgICAgIHJldHVybiAtMjsKKyAgICBlbHNlIHsKKyAgICAgICAgc3ViID0gJmJ5dGU7CisgICAgICAgIHN1Yl9sZW4gPSAxOworICAgIH0KIAogICAgIGlmIChkaXIgPiAwKQotICAgICAgICByZXR1cm4gc3RyaW5nbGliX2ZpbmRfc2xpY2UoCisgICAgICAgIHJlcyA9IHN0cmluZ2xpYl9maW5kX3NsaWNlKAogICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcoc2VsZiksIFB5Qnl0ZXNfR0VUX1NJWkUoc2VsZiksCiAgICAgICAgICAgICBzdWIsIHN1Yl9sZW4sIHN0YXJ0LCBlbmQpOwogICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIHN0cmluZ2xpYl9yZmluZF9zbGljZSgKKyAgICAgICAgcmVzID0gc3RyaW5nbGliX3JmaW5kX3NsaWNlKAogICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcoc2VsZiksIFB5Qnl0ZXNfR0VUX1NJWkUoc2VsZiksCiAgICAgICAgICAgICBzdWIsIHN1Yl9sZW4sIHN0YXJ0LCBlbmQpOworCisgICAgaWYgKHN1Ym9iaikKKyAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgmc3ViYnVmKTsKKworICAgIHJldHVybiByZXM7CiB9CiAKIApAQCAtMTUwNCwyMyArMTQ4NSwzOCBAQAogICAgIFB5T2JqZWN0ICpzdWJfb2JqOwogICAgIGNvbnN0IGNoYXIgKnN0ciA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHNlbGYpLCAqc3ViOwogICAgIFB5X3NzaXplX3Qgc3ViX2xlbjsKKyAgICBjaGFyIGJ5dGU7CiAgICAgUHlfc3NpemVfdCBzdGFydCA9IDAsIGVuZCA9IFBZX1NTSVpFX1RfTUFYOwogCi0gICAgaWYgKCFzdHJpbmdsaWJfcGFyc2VfYXJnc19maW5kcygiY291bnQiLCBhcmdzLCAmc3ViX29iaiwgJnN0YXJ0LCAmZW5kKSkKKyAgICBQeV9idWZmZXIgdnN1YjsKKyAgICBQeU9iamVjdCAqY291bnRfb2JqOworCisgICAgaWYgKCFzdHJpbmdsaWJfcGFyc2VfYXJnc19maW5kc19ieXRlKCJjb3VudCIsIGFyZ3MsICZzdWJfb2JqLCAmYnl0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0LCAmZW5kKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAoUHlCeXRlc19DaGVjayhzdWJfb2JqKSkgewotICAgICAgICBzdWIgPSBQeUJ5dGVzX0FTX1NUUklORyhzdWJfb2JqKTsKLSAgICAgICAgc3ViX2xlbiA9IFB5Qnl0ZXNfR0VUX1NJWkUoc3ViX29iaik7CisgICAgaWYgKHN1Yl9vYmopIHsKKyAgICAgICAgaWYgKF9nZXRidWZmZXIoc3ViX29iaiwgJnZzdWIpIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworCisgICAgICAgIHN1YiA9IHZzdWIuYnVmOworICAgICAgICBzdWJfbGVuID0gdnN1Yi5sZW47CiAgICAgfQotICAgIGVsc2UgaWYgKFB5T2JqZWN0X0FzQ2hhckJ1ZmZlcihzdWJfb2JqLCAmc3ViLCAmc3ViX2xlbikpCi0gICAgICAgIHJldHVybiBOVUxMOworICAgIGVsc2UgeworICAgICAgICBzdWIgPSAmYnl0ZTsKKyAgICAgICAgc3ViX2xlbiA9IDE7CisgICAgfQogCiAgICAgQURKVVNUX0lORElDRVMoc3RhcnQsIGVuZCwgUHlCeXRlc19HRVRfU0laRShzZWxmKSk7CiAKLSAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KAorICAgIGNvdW50X29iaiA9IFB5TG9uZ19Gcm9tU3NpemVfdCgKICAgICAgICAgc3RyaW5nbGliX2NvdW50KHN0ciArIHN0YXJ0LCBlbmQgLSBzdGFydCwgc3ViLCBzdWJfbGVuLCBQWV9TU0laRV9UX01BWCkKICAgICAgICAgKTsKKworICAgIGlmIChzdWJfb2JqKQorICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZ2c3ViKTsKKworICAgIHJldHVybiBjb3VudF9vYmo7CiB9CiAKIApAQCAtMjMyOSwxMSArMjMyNSwxMyBAQAogaXMgZ2l2ZW4gYW5kIHRydWUuIik7CiAKIHN0YXRpYyBQeU9iamVjdCoKLWJ5dGVzX3NwbGl0bGluZXMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQorYnl0ZXNfc3BsaXRsaW5lcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogeworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsia2VlcGVuZHMiLCAwfTsKICAgICBpbnQga2VlcGVuZHMgPSAwOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ8aTpzcGxpdGxpbmVzIiwgJmtlZXBlbmRzKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifGk6c3BsaXRsaW5lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAma2VlcGVuZHMpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHJldHVybiBzdHJpbmdsaWJfc3BsaXRsaW5lcygKQEAgLTIzNTEsNyArMjM0OSw3IEBACiBFeGFtcGxlOiBieXRlcy5mcm9taGV4KCdCOSAwMUVGJykgLT4gYidcXHhiOVxceDAxXFx4ZWYnLiIpOwogCiBzdGF0aWMgaW50Ci1oZXhfZGlnaXRfdG9faW50KFB5X1VOSUNPREUgYykKK2hleF9kaWdpdF90b19pbnQoUHlfVUNTNCBjKQogewogICAgIGlmIChjID49IDEyOCkKICAgICAgICAgcmV0dXJuIC0xOwpAQCAtMjM3MSwxNSArMjM2OSwyMCBAQAogewogICAgIFB5T2JqZWN0ICpuZXdzdHJpbmcsICpoZXhvYmo7CiAgICAgY2hhciAqYnVmOwotICAgIFB5X1VOSUNPREUgKmhleDsKICAgICBQeV9zc2l6ZV90IGhleGxlbiwgYnl0ZXNsZW4sIGksIGo7CiAgICAgaW50IHRvcCwgYm90OworICAgIHZvaWQgKmRhdGE7CisgICAgdW5zaWduZWQgaW50IGtpbmQ7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6ZnJvbWhleCIsICZoZXhvYmopKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBhc3NlcnQoUHlVbmljb2RlX0NoZWNrKGhleG9iaikpOwotICAgIGhleGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRShoZXhvYmopOwotICAgIGhleCA9IFB5VW5pY29kZV9BU19VTklDT0RFKGhleG9iaik7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShoZXhvYmopKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoaGV4b2JqKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoaGV4b2JqKTsKKyAgICBoZXhsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChoZXhvYmopOworCiAgICAgYnl0ZXNsZW4gPSBoZXhsZW4vMjsgLyogVGhpcyBvdmVyZXN0aW1hdGVzIGlmIHRoZXJlIGFyZSBzcGFjZXMgKi8KICAgICBuZXdzdHJpbmcgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIGJ5dGVzbGVuKTsKICAgICBpZiAoIW5ld3N0cmluZykKQEAgLTIzODcsMTIgKzIzOTAsMTIgQEAKICAgICBidWYgPSBQeUJ5dGVzX0FTX1NUUklORyhuZXdzdHJpbmcpOwogICAgIGZvciAoaSA9IGogPSAwOyBpIDwgaGV4bGVuOyBpICs9IDIpIHsKICAgICAgICAgLyogc2tpcCBvdmVyIHNwYWNlcyBpbiB0aGUgaW5wdXQgKi8KLSAgICAgICAgd2hpbGUgKGhleFtpXSA9PSAnICcpCisgICAgICAgIHdoaWxlIChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKSA9PSAnICcpCiAgICAgICAgICAgICBpKys7CiAgICAgICAgIGlmIChpID49IGhleGxlbikKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB0b3AgPSBoZXhfZGlnaXRfdG9faW50KGhleFtpXSk7Ci0gICAgICAgIGJvdCA9IGhleF9kaWdpdF90b19pbnQoaGV4W2krMV0pOworICAgICAgICB0b3AgPSBoZXhfZGlnaXRfdG9faW50KFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpKTsKKyAgICAgICAgYm90ID0gaGV4X2RpZ2l0X3RvX2ludChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKzEpKTsKICAgICAgICAgaWYgKHRvcCA9PSAtMSB8fCBib3QgPT0gLTEpIHsKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICJub24taGV4YWRlY2ltYWwgbnVtYmVyIGZvdW5kIGluICIKQEAgLTI0NzIsMTAgKzI0NzUsMTAgQEAKICAgICB7InJqdXN0IiwgKFB5Q0Z1bmN0aW9uKXN0cmluZ2xpYl9yanVzdCwgTUVUSF9WQVJBUkdTLCByanVzdF9fZG9jX199LAogICAgIHsicnBhcnRpdGlvbiIsIChQeUNGdW5jdGlvbilieXRlc19ycGFydGl0aW9uLCBNRVRIX08sCiAgICAgIHJwYXJ0aXRpb25fX2RvY19ffSwKLSAgICB7InJzcGxpdCIsIChQeUNGdW5jdGlvbilieXRlc19yc3BsaXQsIE1FVEhfVkFSQVJHUywgcnNwbGl0X19kb2NfX30sCisgICAgeyJyc3BsaXQiLCAoUHlDRnVuY3Rpb24pYnl0ZXNfcnNwbGl0LCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCByc3BsaXRfX2RvY19ffSwKICAgICB7InJzdHJpcCIsIChQeUNGdW5jdGlvbilieXRlc19yc3RyaXAsIE1FVEhfVkFSQVJHUywgcnN0cmlwX19kb2NfX30sCi0gICAgeyJzcGxpdCIsIChQeUNGdW5jdGlvbilieXRlc19zcGxpdCwgTUVUSF9WQVJBUkdTLCBzcGxpdF9fZG9jX199LAotICAgIHsic3BsaXRsaW5lcyIsIChQeUNGdW5jdGlvbilieXRlc19zcGxpdGxpbmVzLCBNRVRIX1ZBUkFSR1MsCisgICAgeyJzcGxpdCIsIChQeUNGdW5jdGlvbilieXRlc19zcGxpdCwgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgc3BsaXRfX2RvY19ffSwKKyAgICB7InNwbGl0bGluZXMiLCAoUHlDRnVuY3Rpb24pYnl0ZXNfc3BsaXRsaW5lcywgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywKICAgICAgc3BsaXRsaW5lc19fZG9jX199LAogICAgIHsic3RhcnRzd2l0aCIsIChQeUNGdW5jdGlvbilieXRlc19zdGFydHN3aXRoLCBNRVRIX1ZBUkFSR1MsCiAgICAgIHN0YXJ0c3dpdGhfX2RvY19ffSwKQEAgLTI1NzQsNiArMjU3NywxMiBAQAogICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQorCisgICAgaWYgKFB5Qnl0ZXNfQ2hlY2tFeGFjdCh4KSkgeworICAgICAgICBQeV9JTkNSRUYoeCk7CisgICAgICAgIHJldHVybiB4OworICAgIH0KKwogICAgIC8qIFVzZSB0aGUgbW9kZXJuIGJ1ZmZlciBpbnRlcmZhY2UgKi8KICAgICBpZiAoUHlPYmplY3RfQ2hlY2tCdWZmZXIoeCkpIHsKICAgICAgICAgUHlfYnVmZmVyIHZpZXc7CkBAIC0yODU3LDE0OSArMjg2Niw2IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKLS8qIF9QeUJ5dGVzX0Zvcm1hdExvbmcgZW11bGF0ZXMgdGhlIGZvcm1hdCBjb2RlcyBkLCB1LCBvLCB4IGFuZCBYLCBhbmQKLSAqIHRoZSBGX0FMVCBmbGFnLCBmb3IgUHl0aG9uJ3MgbG9uZyAodW5ib3VuZGVkKSBpbnRzLiAgSXQncyBub3QgdXNlZCBmb3IKLSAqIFB5dGhvbidzIHJlZ3VsYXIgaW50cy4KLSAqIFJldHVybiB2YWx1ZTogIGEgbmV3IFB5Qnl0ZXMqLCBvciBOVUxMIGlmIGVycm9yLgotICogIC4gICpwYnVmIGlzIHNldCB0byBwb2ludCBpbnRvIGl0LAotICogICAgICpwbGVuIHNldCB0byB0aGUgIyBvZiBjaGFycyBmb2xsb3dpbmcgdGhhdC4KLSAqICAgICBDYWxsZXIgbXVzdCBkZWNyZWYgaXQgd2hlbiBkb25lIHVzaW5nIHBidWYuCi0gKiAgICAgVGhlIHN0cmluZyBzdGFydGluZyBhdCAqcGJ1ZiBpcyBvZiB0aGUgZm9ybQotICogICAgICAgICAiLSI/ICgiMHgiIHwgIjBYIik/IGRpZ2l0KwotICogICAgICIweCIvIjBYIiBhcmUgcHJlc2VudCBvbmx5IGZvciB4IGFuZCBYIGNvbnZlcnNpb25zLCB3aXRoIEZfQUxUCi0gKiAgICAgICAgIHNldCBpbiBmbGFncy4gIFRoZSBjYXNlIG9mIGhleCBkaWdpdHMgd2lsbCBiZSBjb3JyZWN0LAotICogICAgIFRoZXJlIHdpbGwgYmUgYXQgbGVhc3QgcHJlYyBkaWdpdHMsIHplcm8tZmlsbGVkIG9uIHRoZSBsZWZ0IGlmCi0gKiAgICAgICAgIG5lY2Vzc2FyeSB0byBnZXQgdGhhdCBtYW55LgotICogdmFsICAgICAgICAgIG9iamVjdCB0byBiZSBjb252ZXJ0ZWQKLSAqIGZsYWdzICAgICAgICBiaXRtYXNrIG9mIGZvcm1hdCBmbGFnczsgb25seSBGX0FMVCBpcyBsb29rZWQgYXQKLSAqIHByZWMgICAgICAgICBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHM7IDAtZmlsbCBvbiBsZWZ0IGlmIG5lZWRlZAotICogdHlwZSAgICAgICAgIGEgY2hhcmFjdGVyIGluIFtkdW94WF07IHUgYWN0cyB0aGUgc2FtZSBhcyBkCi0gKgotICogQ0FVVElPTjogIG8sIHggYW5kIFggY29udmVyc2lvbnMgb24gcmVndWxhciBpbnRzIGNhbiBuZXZlcgotICogcHJvZHVjZSBhICctJyBzaWduLCBidXQgY2FuIGZvciBQeXRob24ncyB1bmJvdW5kZWQgaW50cy4KLSAqLwotUHlPYmplY3QqCi1fUHlCeXRlc19Gb3JtYXRMb25nKFB5T2JqZWN0ICp2YWwsIGludCBmbGFncywgaW50IHByZWMsIGludCB0eXBlLAotICAgICAgICAgICAgICAgICAgICAgY2hhciAqKnBidWYsIGludCAqcGxlbikKLXsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLSAgICBjaGFyICpidWY7Ci0gICAgUHlfc3NpemVfdCBpOwotICAgIGludCBzaWduOyAgICAgICAgICAgLyogMSBpZiAnLScsIGVsc2UgMCAqLwotICAgIGludCBsZW47ICAgICAgICAgICAgLyogbnVtYmVyIG9mIGNoYXJhY3RlcnMgKi8KLSAgICBQeV9zc2l6ZV90IGxsZW47Ci0gICAgaW50IG51bWRpZ2l0czsgICAgICAvKiBsZW4gPT0gbnVtbm9uZGlnaXRzICsgbnVtZGlnaXRzICovCi0gICAgaW50IG51bW5vbmRpZ2l0cyA9IDA7Ci0KLSAgICAvKiBBdm9pZCBleGNlZWRpbmcgU1NJWkVfVF9NQVggKi8KLSAgICBpZiAocHJlYyA+IElOVF9NQVgtMykgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJwcmVjaXNpb24gdG9vIGxhcmdlIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgJ2QnOgotICAgIGNhc2UgJ3UnOgotICAgICAgICAvKiBTcGVjaWFsLWNhc2UgYm9vbGVhbjogd2Ugd2FudCAwLzEgKi8KLSAgICAgICAgaWYgKFB5Qm9vbF9DaGVjayh2YWwpKQotICAgICAgICAgICAgcmVzdWx0ID0gUHlOdW1iZXJfVG9CYXNlKHZhbCwgMTApOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSBQeV9UWVBFKHZhbCktPnRwX3N0cih2YWwpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlICdvJzoKLSAgICAgICAgbnVtbm9uZGlnaXRzID0gMjsKLSAgICAgICAgcmVzdWx0ID0gUHlOdW1iZXJfVG9CYXNlKHZhbCwgOCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgJ3gnOgotICAgIGNhc2UgJ1gnOgotICAgICAgICBudW1ub25kaWdpdHMgPSAyOwotICAgICAgICByZXN1bHQgPSBQeU51bWJlcl9Ub0Jhc2UodmFsLCAxNik7Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIGFzc2VydCghIid0eXBlJyBub3QgaW4gW2R1b3hYXSIpOwotICAgIH0KLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBidWYgPSBfUHlVbmljb2RlX0FzU3RyaW5nKHJlc3VsdCk7Ci0gICAgaWYgKCFidWYpIHsKLSAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIC8qIFRvIG1vZGlmeSB0aGUgc3RyaW5nIGluLXBsYWNlLCB0aGVyZSBjYW4gb25seSBiZSBvbmUgcmVmZXJlbmNlLiAqLwotICAgIGlmIChQeV9SRUZDTlQocmVzdWx0KSAhPSAxKSB7Ci0gICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgbGxlbiA9IFB5VW5pY29kZV9HZXRTaXplKHJlc3VsdCk7Ci0gICAgaWYgKGxsZW4gPiBJTlRfTUFYKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZyB0b28gbGFyZ2UgaW4gX1B5Qnl0ZXNfRm9ybWF0TG9uZyIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgbGVuID0gKGludClsbGVuOwotICAgIGlmIChidWZbbGVuLTFdID09ICdMJykgewotICAgICAgICAtLWxlbjsKLSAgICAgICAgYnVmW2xlbl0gPSAnXDAnOwotICAgIH0KLSAgICBzaWduID0gYnVmWzBdID09ICctJzsKLSAgICBudW1ub25kaWdpdHMgKz0gc2lnbjsKLSAgICBudW1kaWdpdHMgPSBsZW4gLSBudW1ub25kaWdpdHM7Ci0gICAgYXNzZXJ0KG51bWRpZ2l0cyA+IDApOwotCi0gICAgLyogR2V0IHJpZCBvZiBiYXNlIG1hcmtlciB1bmxlc3MgRl9BTFQgKi8KLSAgICBpZiAoKChmbGFncyAmIEZfQUxUKSA9PSAwICYmCi0gICAgICAgICh0eXBlID09ICdvJyB8fCB0eXBlID09ICd4JyB8fCB0eXBlID09ICdYJykpKSB7Ci0gICAgICAgIGFzc2VydChidWZbc2lnbl0gPT0gJzAnKTsKLSAgICAgICAgYXNzZXJ0KGJ1ZltzaWduKzFdID09ICd4JyB8fCBidWZbc2lnbisxXSA9PSAnWCcgfHwKLSAgICAgICAgICAgICAgIGJ1ZltzaWduKzFdID09ICdvJyk7Ci0gICAgICAgIG51bW5vbmRpZ2l0cyAtPSAyOwotICAgICAgICBidWYgKz0gMjsKLSAgICAgICAgbGVuIC09IDI7Ci0gICAgICAgIGlmIChzaWduKQotICAgICAgICAgICAgYnVmWzBdID0gJy0nOwotICAgICAgICBhc3NlcnQobGVuID09IG51bW5vbmRpZ2l0cyArIG51bWRpZ2l0cyk7Ci0gICAgICAgIGFzc2VydChudW1kaWdpdHMgPiAwKTsKLSAgICB9Ci0KLSAgICAvKiBGaWxsIHdpdGggbGVhZGluZyB6ZXJvZXMgdG8gbWVldCBtaW5pbXVtIHdpZHRoLiAqLwotICAgIGlmIChwcmVjID4gbnVtZGlnaXRzKSB7Ci0gICAgICAgIFB5T2JqZWN0ICpyMSA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtbm9uZGlnaXRzICsgcHJlYyk7Ci0gICAgICAgIGNoYXIgKmIxOwotICAgICAgICBpZiAoIXIxKSB7Ci0gICAgICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGIxID0gUHlCeXRlc19BU19TVFJJTkcocjEpOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtbm9uZGlnaXRzOyArK2kpCi0gICAgICAgICAgICAqYjErKyA9ICpidWYrKzsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHByZWMgLSBudW1kaWdpdHM7IGkrKykKLSAgICAgICAgICAgICpiMSsrID0gJzAnOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtZGlnaXRzOyBpKyspCi0gICAgICAgICAgICAqYjErKyA9ICpidWYrKzsKLSAgICAgICAgKmIxID0gJ1wwJzsKLSAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgIHJlc3VsdCA9IHIxOwotICAgICAgICBidWYgPSBQeUJ5dGVzX0FTX1NUUklORyhyZXN1bHQpOwotICAgICAgICBsZW4gPSBudW1ub25kaWdpdHMgKyBwcmVjOwotICAgIH0KLQotICAgIC8qIEZpeCB1cCBjYXNlIGZvciBoZXggY29udmVyc2lvbnMuICovCi0gICAgaWYgKHR5cGUgPT0gJ1gnKSB7Ci0gICAgICAgIC8qIE5lZWQgdG8gY29udmVydCBhbGwgbG93ZXIgY2FzZSBsZXR0ZXJzIHRvIHVwcGVyIGNhc2UuCi0gICAgICAgICAgIGFuZCBuZWVkIHRvIGNvbnZlcnQgMHggdG8gMFggKGFuZCAtMHggdG8gLTBYKS4gKi8KLSAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKQotICAgICAgICAgICAgaWYgKGJ1ZltpXSA+PSAnYScgJiYgYnVmW2ldIDw9ICd4JykKLSAgICAgICAgICAgICAgICBidWZbaV0gLT0gJ2EnLSdBJzsKLSAgICB9Ci0gICAgKnBidWYgPSBidWY7Ci0gICAgKnBsZW4gPSBsZW47Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogdm9pZAogUHlCeXRlc19GaW5pKHZvaWQpCiB7CkBAIC0zMDcyLDkgKzI5MzgsNDMgQEAKIFB5RG9jX1NUUlZBUihsZW5ndGhfaGludF9kb2MsCiAgICAgICAgICAgICAgIlByaXZhdGUgbWV0aG9kIHJldHVybmluZyBhbiBlc3RpbWF0ZSBvZiBsZW4obGlzdChpdCkpLiIpOwogCitzdGF0aWMgUHlPYmplY3QgKgorc3RyaXRlcl9yZWR1Y2Uoc3RyaXRlcm9iamVjdCAqaXQpCit7CisgICAgaWYgKGl0LT5pdF9zZXEgIT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTihPKW4iLCBfUHlPYmplY3RfR2V0QnVpbHRpbigiaXRlciIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC0+aXRfc2VxLCBpdC0+aXRfaW5kZXgpOworICAgIH0gZWxzZSB7CisgICAgICAgIFB5T2JqZWN0ICp1ID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIDApOworICAgICAgICBpZiAodSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJOKE4pIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oIml0ZXIiKSwgdSk7CisgICAgfQorfQorCitQeURvY19TVFJWQVIocmVkdWNlX2RvYywgIlJldHVybiBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgcGlja2xpbmcuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCitzdHJpdGVyX3NldHN0YXRlKHN0cml0ZXJvYmplY3QgKml0LCBQeU9iamVjdCAqc3RhdGUpCit7CisgICAgUHlfc3NpemVfdCBpbmRleCA9IFB5TG9uZ19Bc1NzaXplX3Qoc3RhdGUpOworICAgIGlmIChpbmRleCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICBpbmRleCA9IDA7CisgICAgaXQtPml0X2luZGV4ID0gaW5kZXg7CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihzZXRzdGF0ZV9kb2MsICJTZXQgc3RhdGUgaW5mb3JtYXRpb24gZm9yIHVucGlja2xpbmcuIik7CisKIHN0YXRpYyBQeU1ldGhvZERlZiBzdHJpdGVyX21ldGhvZHNbXSA9IHsKICAgICB7Il9fbGVuZ3RoX2hpbnRfXyIsIChQeUNGdW5jdGlvbilzdHJpdGVyX2xlbiwgTUVUSF9OT0FSR1MsCiAgICAgIGxlbmd0aF9oaW50X2RvY30sCisgICAgeyJfX3JlZHVjZV9fIiwgICAgICAoUHlDRnVuY3Rpb24pc3RyaXRlcl9yZWR1Y2UsIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKKyAgICB7Il9fc2V0c3RhdGVfXyIsICAgIChQeUNGdW5jdGlvbilzdHJpdGVyX3NldHN0YXRlLCBNRVRIX08sCisgICAgIHNldHN0YXRlX2RvY30sCiAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KIH07CiAKZGlmZiAtLWdpdCBhL09iamVjdHMvY2xhc3NvYmplY3QuYyBiL09iamVjdHMvY2xhc3NvYmplY3QuYwppbmRleCA2ZGY5MzBmLi4wNDE2YTZhIDEwMDY0NAotLS0gYS9PYmplY3RzL2NsYXNzb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9jbGFzc29iamVjdC5jCkBAIC0xNCw2ICsxNCw4IEBACiAjZGVmaW5lIFB5TWV0aG9kX01BWEZSRUVMSVNUIDI1NgogI2VuZGlmCiAKK19QeV9JREVOVElGSUVSKF9fbmFtZV9fKTsKKwogUHlPYmplY3QgKgogUHlNZXRob2RfRnVuY3Rpb24oUHlPYmplY3QgKmltKQogewpAQCAtMTkwLDggKzE5Miw3IEBACiAgICAgICAgICFQeU1ldGhvZF9DaGVjayhzZWxmKSB8fAogICAgICAgICAhUHlNZXRob2RfQ2hlY2sob3RoZXIpKQogICAgIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOworICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAgICAgfQogICAgIGEgPSAoUHlNZXRob2RPYmplY3QgKilzZWxmOwogICAgIGIgPSAoUHlNZXRob2RPYmplY3QgKilvdGhlcjsKQEAgLTIyNyw3ICsyMjgsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBmdW5jbmFtZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoZnVuYywgIl9fbmFtZV9fIik7CisgICAgZnVuY25hbWUgPSBfUHlPYmplY3RfR2V0QXR0cklkKGZ1bmMsICZQeUlkX19fbmFtZV9fKTsKICAgICBpZiAoZnVuY25hbWUgPT0gTlVMTCkgewogICAgICAgICBpZiAoIVB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0yNDEsNyArMjQyLDcgQEAKICAgICBpZiAoa2xhc3MgPT0gTlVMTCkKICAgICAgICAga2xhc3NuYW1lID0gTlVMTDsKICAgICBlbHNlIHsKLSAgICAgICAga2xhc3NuYW1lID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhrbGFzcywgIl9fbmFtZV9fIik7CisgICAgICAgIGtsYXNzbmFtZSA9IF9QeU9iamVjdF9HZXRBdHRySWQoa2xhc3MsICZQeUlkX19fbmFtZV9fKTsKICAgICAgICAgaWYgKGtsYXNzbmFtZSA9PSBOVUxMKSB7CiAgICAgICAgICAgICBpZiAoIVB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMzk5LDYgKzQwMCwxNSBAQAogICAgICh2b2lkKVB5TWV0aG9kX0NsZWFyRnJlZUxpc3QoKTsKIH0KIAorLyogUHJpbnQgc3VtbWFyeSBpbmZvIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGUgb3B0aW1pemVkIGFsbG9jYXRvciAqLwordm9pZAorX1B5TWV0aG9kX0RlYnVnTWFsbG9jU3RhdHMoRklMRSAqb3V0KQoreworICAgIF9QeURlYnVnQWxsb2NhdG9yU3RhdHMob3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyZWUgUHlNZXRob2RPYmplY3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtZnJlZSwgc2l6ZW9mKFB5TWV0aG9kT2JqZWN0KSk7Cit9CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogaW5zdGFuY2UgbWV0aG9kCiAgKi8KQEAgLTUxNiw4ICs1MjYsNyBAQAogICAgICAgICAhUHlJbnN0YW5jZU1ldGhvZF9DaGVjayhzZWxmKSB8fAogICAgICAgICAhUHlJbnN0YW5jZU1ldGhvZF9DaGVjayhvdGhlcikpCiAgICAgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICB9CiAgICAgYSA9IChQeUluc3RhbmNlTWV0aG9kT2JqZWN0ICopc2VsZjsKICAgICBiID0gKFB5SW5zdGFuY2VNZXRob2RPYmplY3QgKilvdGhlcjsKQEAgLTU0NCw3ICs1NTMsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBmdW5jbmFtZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoZnVuYywgIl9fbmFtZV9fIik7CisgICAgZnVuY25hbWUgPSBfUHlPYmplY3RfR2V0QXR0cklkKGZ1bmMsICZQeUlkX19fbmFtZV9fKTsKICAgICBpZiAoZnVuY25hbWUgPT0gTlVMTCkgewogICAgICAgICBpZiAoIVB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CmRpZmYgLS1naXQgYS9PYmplY3RzL2NvZGVvYmplY3QuYyBiL09iamVjdHMvY29kZW9iamVjdC5jCmluZGV4IGJiOTM4ZWEuLjU1MGUyODQgMTAwNjQ0Ci0tLSBhL09iamVjdHMvY29kZW9iamVjdC5jCisrKyBiL09iamVjdHMvY29kZW9iamVjdC5jCkBAIC04LDE5ICs4LDI0IEBACiAvKiBhbGxfbmFtZV9jaGFycyhzKTogdHJ1ZSBpZmYgYWxsIGNoYXJzIGluIHMgYXJlIHZhbGlkIE5BTUVfQ0hBUlMgKi8KIAogc3RhdGljIGludAotYWxsX25hbWVfY2hhcnMoUHlfVU5JQ09ERSAqcykKK2FsbF9uYW1lX2NoYXJzKFB5T2JqZWN0ICpvKQogewogICAgIHN0YXRpYyBjaGFyIG9rX25hbWVfY2hhclsyNTZdOwogICAgIHN0YXRpYyB1bnNpZ25lZCBjaGFyICpuYW1lX2NoYXJzID0gKHVuc2lnbmVkIGNoYXIgKilOQU1FX0NIQVJTOworICAgIFB5VW5pY29kZU9iamVjdCAqdSA9IChQeVVuaWNvZGVPYmplY3QgKilvOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnM7CisKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayhvKSB8fCBQeVVuaWNvZGVfUkVBRFkodSkgPT0gLTEgfHwKKyAgICAgICAgUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHUpID49IDEyOCkKKyAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAob2tfbmFtZV9jaGFyWypuYW1lX2NoYXJzXSA9PSAwKSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnA7CiAgICAgICAgIGZvciAocCA9IG5hbWVfY2hhcnM7ICpwOyBwKyspCiAgICAgICAgICAgICBva19uYW1lX2NoYXJbKnBdID0gMTsKICAgICB9CisgICAgcyA9IFB5VW5pY29kZV8xQllURV9EQVRBKHUpOwogICAgIHdoaWxlICgqcykgewotICAgICAgICBpZiAoKnMgPj0gMTI4KQotICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGlmIChva19uYW1lX2NoYXJbKnMrK10gPT0gMCkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTUxLDcgKzU2LDggQEAKICAgICAgICAgICAgUHlPYmplY3QgKmxub3RhYikKIHsKICAgICBQeUNvZGVPYmplY3QgKmNvOwotICAgIFB5X3NzaXplX3QgaTsKKyAgICB1bnNpZ25lZCBjaGFyICpjZWxsMmFyZyA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBpLCBuX2NlbGx2YXJzOwogCiAgICAgLyogQ2hlY2sgYXJndW1lbnQgdHlwZXMgKi8KICAgICBpZiAoYXJnY291bnQgPCAwIHx8IGt3b25seWFyZ2NvdW50IDwgMCB8fCBubG9jYWxzIDwgMCB8fApAQCAtNjgsNDggKzc0LDc5IEBACiAgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CisgICAgbl9jZWxsdmFycyA9IFB5VHVwbGVfR0VUX1NJWkUoY2VsbHZhcnMpOwogICAgIGludGVybl9zdHJpbmdzKG5hbWVzKTsKICAgICBpbnRlcm5fc3RyaW5ncyh2YXJuYW1lcyk7CiAgICAgaW50ZXJuX3N0cmluZ3MoZnJlZXZhcnMpOwogICAgIGludGVybl9zdHJpbmdzKGNlbGx2YXJzKTsKICAgICAvKiBJbnRlcm4gc2VsZWN0ZWQgc3RyaW5nIGNvbnN0YW50cyAqLwotICAgIGZvciAoaSA9IFB5VHVwbGVfU2l6ZShjb25zdHMpOyAtLWkgPj0gMDsgKSB7CisgICAgZm9yIChpID0gUHlUdXBsZV9HRVRfU0laRShjb25zdHMpOyAtLWkgPj0gMDsgKSB7CiAgICAgICAgIFB5T2JqZWN0ICp2ID0gUHlUdXBsZV9HZXRJdGVtKGNvbnN0cywgaSk7Ci0gICAgICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHYpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICghYWxsX25hbWVfY2hhcnMoUHlVbmljb2RlX0FTX1VOSUNPREUodikpKQorICAgICAgICBpZiAoIWFsbF9uYW1lX2NoYXJzKHYpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIFB5VW5pY29kZV9JbnRlcm5JblBsYWNlKCZQeVR1cGxlX0dFVF9JVEVNKGNvbnN0cywgaSkpOwogICAgIH0KLSAgICBjbyA9IFB5T2JqZWN0X05FVyhQeUNvZGVPYmplY3QsICZQeUNvZGVfVHlwZSk7Ci0gICAgaWYgKGNvICE9IE5VTEwpIHsKLSAgICAgICAgY28tPmNvX2FyZ2NvdW50ID0gYXJnY291bnQ7Ci0gICAgICAgIGNvLT5jb19rd29ubHlhcmdjb3VudCA9IGt3b25seWFyZ2NvdW50OwotICAgICAgICBjby0+Y29fbmxvY2FscyA9IG5sb2NhbHM7Ci0gICAgICAgIGNvLT5jb19zdGFja3NpemUgPSBzdGFja3NpemU7Ci0gICAgICAgIGNvLT5jb19mbGFncyA9IGZsYWdzOwotICAgICAgICBQeV9JTkNSRUYoY29kZSk7Ci0gICAgICAgIGNvLT5jb19jb2RlID0gY29kZTsKLSAgICAgICAgUHlfSU5DUkVGKGNvbnN0cyk7Ci0gICAgICAgIGNvLT5jb19jb25zdHMgPSBjb25zdHM7Ci0gICAgICAgIFB5X0lOQ1JFRihuYW1lcyk7Ci0gICAgICAgIGNvLT5jb19uYW1lcyA9IG5hbWVzOwotICAgICAgICBQeV9JTkNSRUYodmFybmFtZXMpOwotICAgICAgICBjby0+Y29fdmFybmFtZXMgPSB2YXJuYW1lczsKLSAgICAgICAgUHlfSU5DUkVGKGZyZWV2YXJzKTsKLSAgICAgICAgY28tPmNvX2ZyZWV2YXJzID0gZnJlZXZhcnM7Ci0gICAgICAgIFB5X0lOQ1JFRihjZWxsdmFycyk7Ci0gICAgICAgIGNvLT5jb19jZWxsdmFycyA9IGNlbGx2YXJzOwotICAgICAgICBQeV9JTkNSRUYoZmlsZW5hbWUpOwotICAgICAgICBjby0+Y29fZmlsZW5hbWUgPSBmaWxlbmFtZTsKLSAgICAgICAgUHlfSU5DUkVGKG5hbWUpOwotICAgICAgICBjby0+Y29fbmFtZSA9IG5hbWU7Ci0gICAgICAgIGNvLT5jb19maXJzdGxpbmVubyA9IGZpcnN0bGluZW5vOwotICAgICAgICBQeV9JTkNSRUYobG5vdGFiKTsKLSAgICAgICAgY28tPmNvX2xub3RhYiA9IGxub3RhYjsKLSAgICAgICAgY28tPmNvX3pvbWJpZWZyYW1lID0gTlVMTDsKLSAgICAgICAgY28tPmNvX3dlYWtyZWZsaXN0ID0gTlVMTDsKKyAgICAvKiBDcmVhdGUgbWFwcGluZyBiZXR3ZWVuIGNlbGxzIGFuZCBhcmd1bWVudHMgaWYgbmVlZGVkLiAqLworICAgIGlmIChuX2NlbGx2YXJzKSB7CisgICAgICAgIFB5X3NzaXplX3QgdG90YWxfYXJncyA9IGFyZ2NvdW50ICsga3dvbmx5YXJnY291bnQgKworICAgICAgICAgICAgKChmbGFncyAmIENPX1ZBUkFSR1MpICE9IDApICsgKChmbGFncyAmIENPX1ZBUktFWVdPUkRTKSAhPSAwKTsKKyAgICAgICAgUHlfc3NpemVfdCBhbGxvY19zaXplID0gc2l6ZW9mKHVuc2lnbmVkIGNoYXIpICogbl9jZWxsdmFyczsKKyAgICAgICAgaW50IHVzZWRfY2VsbDJhcmcgPSAwOworICAgICAgICBjZWxsMmFyZyA9IFB5TWVtX01BTExPQyhhbGxvY19zaXplKTsKKyAgICAgICAgaWYgKGNlbGwyYXJnID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgbWVtc2V0KGNlbGwyYXJnLCBDT19DRUxMX05PVF9BTl9BUkcsIGFsbG9jX3NpemUpOworICAgICAgICAvKiBGaW5kIGNlbGxzIHdoaWNoIGFyZSBhbHNvIGFyZ3VtZW50cy4gKi8KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG5fY2VsbHZhcnM7IGkrKykgeworICAgICAgICAgICAgUHlfc3NpemVfdCBqOworICAgICAgICAgICAgUHlPYmplY3QgKmNlbGwgPSBQeVR1cGxlX0dFVF9JVEVNKGNlbGx2YXJzLCBpKTsKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB0b3RhbF9hcmdzOyBqKyspIHsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqYXJnID0gUHlUdXBsZV9HRVRfSVRFTSh2YXJuYW1lcywgaik7CisgICAgICAgICAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ29tcGFyZShjZWxsLCBhcmcpKSB7CisgICAgICAgICAgICAgICAgICAgIGNlbGwyYXJnW2ldID0gajsKKyAgICAgICAgICAgICAgICAgICAgdXNlZF9jZWxsMmFyZyA9IDE7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoIXVzZWRfY2VsbDJhcmcpIHsKKyAgICAgICAgICAgIFB5TWVtX0ZSRUUoY2VsbDJhcmcpOworICAgICAgICAgICAgY2VsbDJhcmcgPSBOVUxMOworICAgICAgICB9CiAgICAgfQorICAgIGNvID0gUHlPYmplY3RfTkVXKFB5Q29kZU9iamVjdCwgJlB5Q29kZV9UeXBlKTsKKyAgICBpZiAoY28gPT0gTlVMTCkgeworICAgICAgICBpZiAoY2VsbDJhcmcpCisgICAgICAgICAgICBQeU1lbV9GUkVFKGNlbGwyYXJnKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGNvLT5jb19hcmdjb3VudCA9IGFyZ2NvdW50OworICAgIGNvLT5jb19rd29ubHlhcmdjb3VudCA9IGt3b25seWFyZ2NvdW50OworICAgIGNvLT5jb19ubG9jYWxzID0gbmxvY2FsczsKKyAgICBjby0+Y29fc3RhY2tzaXplID0gc3RhY2tzaXplOworICAgIGNvLT5jb19mbGFncyA9IGZsYWdzOworICAgIFB5X0lOQ1JFRihjb2RlKTsKKyAgICBjby0+Y29fY29kZSA9IGNvZGU7CisgICAgUHlfSU5DUkVGKGNvbnN0cyk7CisgICAgY28tPmNvX2NvbnN0cyA9IGNvbnN0czsKKyAgICBQeV9JTkNSRUYobmFtZXMpOworICAgIGNvLT5jb19uYW1lcyA9IG5hbWVzOworICAgIFB5X0lOQ1JFRih2YXJuYW1lcyk7CisgICAgY28tPmNvX3Zhcm5hbWVzID0gdmFybmFtZXM7CisgICAgUHlfSU5DUkVGKGZyZWV2YXJzKTsKKyAgICBjby0+Y29fZnJlZXZhcnMgPSBmcmVldmFyczsKKyAgICBQeV9JTkNSRUYoY2VsbHZhcnMpOworICAgIGNvLT5jb19jZWxsdmFycyA9IGNlbGx2YXJzOworICAgIGNvLT5jb19jZWxsMmFyZyA9IGNlbGwyYXJnOworICAgIFB5X0lOQ1JFRihmaWxlbmFtZSk7CisgICAgY28tPmNvX2ZpbGVuYW1lID0gZmlsZW5hbWU7CisgICAgUHlfSU5DUkVGKG5hbWUpOworICAgIGNvLT5jb19uYW1lID0gbmFtZTsKKyAgICBjby0+Y29fZmlyc3RsaW5lbm8gPSBmaXJzdGxpbmVubzsKKyAgICBQeV9JTkNSRUYobG5vdGFiKTsKKyAgICBjby0+Y29fbG5vdGFiID0gbG5vdGFiOworICAgIGNvLT5jb196b21iaWVmcmFtZSA9IE5VTEw7CisgICAgY28tPmNvX3dlYWtyZWZsaXN0ID0gTlVMTDsKICAgICByZXR1cm4gY287CiB9CiAKQEAgLTIxMiw5ICsyNDksNyBAQAogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpdGVtID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKAotICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKGl0ZW0pLAotICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShpdGVtKSk7CisgICAgICAgICAgICBpdGVtID0gX1B5VW5pY29kZV9Db3B5KGl0ZW0pOwogICAgICAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkgewogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihuZXd0dXBsZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0zMzAsNiArMzY1LDggQEAKICAgICBQeV9YREVDUkVGKGNvLT5jb19maWxlbmFtZSk7CiAgICAgUHlfWERFQ1JFRihjby0+Y29fbmFtZSk7CiAgICAgUHlfWERFQ1JFRihjby0+Y29fbG5vdGFiKTsKKyAgICBpZiAoY28tPmNvX2NlbGwyYXJnICE9IE5VTEwpCisgICAgICAgIFB5TWVtX0ZSRUUoY28tPmNvX2NlbGwyYXJnKTsKICAgICBpZiAoY28tPmNvX3pvbWJpZWZyYW1lICE9IE5VTEwpCiAgICAgICAgIFB5T2JqZWN0X0dDX0RlbChjby0+Y29fem9tYmllZnJhbWUpOwogICAgIGlmIChjby0+Y29fd2Vha3JlZmxpc3QgIT0gTlVMTCkKQEAgLTM2Niw4ICs0MDMsNyBAQAogICAgIGlmICgob3AgIT0gUHlfRVEgJiYgb3AgIT0gUHlfTkUpIHx8CiAgICAgICAgICFQeUNvZGVfQ2hlY2soc2VsZikgfHwKICAgICAgICAgIVB5Q29kZV9DaGVjayhvdGhlcikpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOworICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAgICAgfQogCiAgICAgY28gPSAoUHlDb2RlT2JqZWN0ICopc2VsZjsKZGlmZiAtLWdpdCBhL09iamVjdHMvY29tcGxleG9iamVjdC5jIGIvT2JqZWN0cy9jb21wbGV4b2JqZWN0LmMKaW5kZXggZTI0N2JhOS4uNDAzYzYwYyAxMDA2NDQKLS0tIGEvT2JqZWN0cy9jb21wbGV4b2JqZWN0LmMKKysrIGIvT2JqZWN0cy9jb21wbGV4b2JqZWN0LmMKQEAgLTI2NSw5ICsyNjUsOSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHRyeV9jb21wbGV4X3NwZWNpYWxfbWV0aG9kKFB5T2JqZWN0ICpvcCkgewogICAgIFB5T2JqZWN0ICpmOwotICAgIHN0YXRpYyBQeU9iamVjdCAqY29tcGxleHN0cjsKKyAgICBfUHlfSURFTlRJRklFUihfX2NvbXBsZXhfXyk7CiAKLSAgICBmID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwob3AsICJfX2NvbXBsZXhfXyIsICZjb21wbGV4c3RyKTsKKyAgICBmID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwob3AsICZQeUlkX19fY29tcGxleF9fKTsKICAgICBpZiAoZikgewogICAgICAgICBQeU9iamVjdCAqcmVzID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhmLCBOVUxMKTsKICAgICAgICAgUHlfREVDUkVGKGYpOwpAQCAtMzMwLDEyICszMzAsMTAgQEAKICAgICBpbnQgcHJlY2lzaW9uID0gMDsKICAgICBjaGFyIGZvcm1hdF9jb2RlID0gJ3InOwogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwotICAgIFB5X3NzaXplX3QgbGVuOwogCiAgICAgLyogSWYgdGhlc2UgYXJlIG5vbi1OVUxMLCB0aGV5J2xsIG5lZWQgdG8gYmUgZnJlZWQuICovCiAgICAgY2hhciAqcHJlID0gTlVMTDsKICAgICBjaGFyICppbSA9IE5VTEw7Ci0gICAgY2hhciAqYnVmID0gTlVMTDsKIAogICAgIC8qIFRoZXNlIGRvIG5vdCBuZWVkIHRvIGJlIGZyZWVkLiByZSBpcyBlaXRoZXIgYW4gYWxpYXMKICAgICAgICBmb3IgcHJlIG9yIGEgcG9pbnRlciB0byBhIGNvbnN0YW50LiAgbGVhZCBhbmQgdGFpbApAQCAtMzc0LDIwICszNzIsMTAgQEAKICAgICAgICAgbGVhZCA9ICIoIjsKICAgICAgICAgdGFpbCA9ICIpIjsKICAgICB9Ci0gICAgLyogQWxsb2MgdGhlIGZpbmFsIGJ1ZmZlci4gQWRkIG9uZSBmb3IgdGhlICJqIiBpbiB0aGUgZm9ybWF0IHN0cmluZywKLSAgICAgICBhbmQgb25lIGZvciB0aGUgdHJhaWxpbmcgemVybyBieXRlLiAqLwotICAgIGxlbiA9IHN0cmxlbihsZWFkKSArIHN0cmxlbihyZSkgKyBzdHJsZW4oaW0pICsgc3RybGVuKHRhaWwpICsgMjsKLSAgICBidWYgPSBQeU1lbV9NYWxsb2MobGVuKTsKLSAgICBpZiAoIWJ1ZikgewotICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotICAgIFB5T1Nfc25wcmludGYoYnVmLCBsZW4sICIlcyVzJXNqJXMiLCBsZWFkLCByZSwgaW0sIHRhaWwpOwotICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKGJ1Zik7CisgICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVzJXMlc2olcyIsIGxlYWQsIHJlLCBpbSwgdGFpbCk7CiAgIGRvbmU6CiAgICAgUHlNZW1fRnJlZShpbSk7CiAgICAgUHlNZW1fRnJlZShwcmUpOwotICAgIFB5TWVtX0ZyZWUoYnVmKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC02NjIsOCArNjUwLDcgQEAKICAgICByZXR1cm4gcmVzOwogCiBVbmltcGxlbWVudGVkOgotICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOworICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTcxMiwxMiArNjk5LDIyIEBACiBjb21wbGV4X19mb3JtYXRfXyhQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCiB7CiAgICAgUHlPYmplY3QgKmZvcm1hdF9zcGVjOworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOworICAgIGludCByZXQ7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6X19mb3JtYXRfXyIsICZmb3JtYXRfc3BlYykpCi0gICAgcmV0dXJuIE5VTEw7Ci0gICAgcmV0dXJuIF9QeUNvbXBsZXhfRm9ybWF0QWR2YW5jZWQoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShmb3JtYXRfc3BlYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKGZvcm1hdF9zcGVjKSk7CisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIsIDApOworICAgIHJldCA9IF9QeUNvbXBsZXhfRm9ybWF0QWR2YW5jZWRXcml0ZXIoCisgICAgICAgICZ3cml0ZXIsCisgICAgICAgIHNlbGYsCisgICAgICAgIGZvcm1hdF9zcGVjLCAwLCBQeVVuaWNvZGVfR0VUX0xFTkdUSChmb3JtYXRfc3BlYykpOworICAgIGlmIChyZXQgPT0gLTEpIHsKKyAgICAgICAgX1B5VW5pY29kZVdyaXRlcl9EZWFsbG9jKCZ3cml0ZXIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuIF9QeVVuaWNvZGVXcml0ZXJfRmluaXNoKCZ3cml0ZXIpOwogfQogCiAjaWYgMApAQCAtNzY4LDIwICs3NjUsMTAgQEAKICAgICBQeV9zc2l6ZV90IGxlbjsKIAogICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sodikpIHsKLSAgICAgICAgUHlfc3NpemVfdCBpLCBidWZsZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUodik7Ci0gICAgICAgIFB5X1VOSUNPREUgKmJ1ZnB0cjsKLSAgICAgICAgc19idWZmZXIgPSBQeVVuaWNvZGVfVHJhbnNmb3JtRGVjaW1hbFRvQVNDSUkoCi0gICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSwgYnVmbGVuKTsKKyAgICAgICAgc19idWZmZXIgPSBfUHlVbmljb2RlX1RyYW5zZm9ybURlY2ltYWxBbmRTcGFjZVRvQVNDSUkodik7CiAgICAgICAgIGlmIChzX2J1ZmZlciA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIC8qIFJlcGxhY2Ugbm9uLUFTQ0lJIHdoaXRlc3BhY2Ugd2l0aCAnICcgKi8KLSAgICAgICAgYnVmcHRyID0gUHlVbmljb2RlX0FTX1VOSUNPREUoc19idWZmZXIpOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYnVmbGVuOyBpKyspIHsKLSAgICAgICAgICAgIFB5X1VOSUNPREUgY2ggPSBidWZwdHJbaV07Ci0gICAgICAgICAgICBpZiAoY2ggPiAxMjcgJiYgUHlfVU5JQ09ERV9JU1NQQUNFKGNoKSkKLSAgICAgICAgICAgICAgICBidWZwdHJbaV0gPSAnICc7Ci0gICAgICAgIH0KLSAgICAgICAgcyA9IF9QeVVuaWNvZGVfQXNTdHJpbmdBbmRTaXplKHNfYnVmZmVyLCAmbGVuKTsKKyAgICAgICAgcyA9IFB5VW5pY29kZV9Bc1VURjhBbmRTaXplKHNfYnVmZmVyLCAmbGVuKTsKICAgICAgICAgaWYgKHMgPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9kZXNjcm9iamVjdC5jIGIvT2JqZWN0cy9kZXNjcm9iamVjdC5jCmluZGV4IDk5MzRmMjMuLmFiY2MwMDIgMTAwNjQ0Ci0tLSBhL09iamVjdHMvZGVzY3JvYmplY3QuYworKysgYi9PYmplY3RzL2Rlc2Nyb2JqZWN0LmMKQEAgLTksNiArOSw3IEBACiAgICAgX1B5T2JqZWN0X0dDX1VOVFJBQ0soZGVzY3IpOwogICAgIFB5X1hERUNSRUYoZGVzY3ItPmRfdHlwZSk7CiAgICAgUHlfWERFQ1JFRihkZXNjci0+ZF9uYW1lKTsKKyAgICBQeV9YREVDUkVGKGRlc2NyLT5kX3F1YWxuYW1lKTsKICAgICBQeU9iamVjdF9HQ19EZWwoZGVzY3IpOwogfQogCkBAIC0zNTksNiArMzYwLDQ0IEBACiAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKGRlc2NyLT5kX21ldGhvZC0+bWxfZG9jKTsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK2NhbGN1bGF0ZV9xdWFsbmFtZShQeURlc2NyT2JqZWN0ICpkZXNjcikKK3sKKyAgICBQeU9iamVjdCAqdHlwZV9xdWFsbmFtZSwgKnJlczsKKyAgICBfUHlfSURFTlRJRklFUihfX3F1YWxuYW1lX18pOworCisgICAgaWYgKGRlc2NyLT5kX25hbWUgPT0gTlVMTCB8fCAhUHlVbmljb2RlX0NoZWNrKGRlc2NyLT5kX25hbWUpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiPGRlc2NyaXB0b3I+Ll9fbmFtZV9fIGlzIG5vdCBhIHVuaWNvZGUgb2JqZWN0Iik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHR5cGVfcXVhbG5hbWUgPSBfUHlPYmplY3RfR2V0QXR0cklkKChQeU9iamVjdCAqKWRlc2NyLT5kX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlB5SWRfX19xdWFsbmFtZV9fKTsKKyAgICBpZiAodHlwZV9xdWFsbmFtZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHR5cGVfcXVhbG5hbWUpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICI8ZGVzY3JpcHRvcj4uX19vYmpjbGFzc19fLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICJfX3F1YWxuYW1lX18gaXMgbm90IGEgdW5pY29kZSBvYmplY3QiKTsKKyAgICAgICAgUHlfWERFQ1JFRih0eXBlX3F1YWxuYW1lKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmVzID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVTLiVTIiwgdHlwZV9xdWFsbmFtZSwgZGVzY3ItPmRfbmFtZSk7CisgICAgUHlfREVDUkVGKHR5cGVfcXVhbG5hbWUpOworICAgIHJldHVybiByZXM7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitkZXNjcl9nZXRfcXVhbG5hbWUoUHlEZXNjck9iamVjdCAqZGVzY3IpCit7CisgICAgaWYgKGRlc2NyLT5kX3F1YWxuYW1lID09IE5VTEwpCisgICAgICAgIGRlc2NyLT5kX3F1YWxuYW1lID0gY2FsY3VsYXRlX3F1YWxuYW1lKGRlc2NyKTsKKyAgICBQeV9YSU5DUkVGKGRlc2NyLT5kX3F1YWxuYW1lKTsKKyAgICByZXR1cm4gZGVzY3ItPmRfcXVhbG5hbWU7Cit9CisKIHN0YXRpYyBQeU1lbWJlckRlZiBkZXNjcl9tZW1iZXJzW10gPSB7CiAgICAgeyJfX29iamNsYXNzX18iLCBUX09CSkVDVCwgb2Zmc2V0b2YoUHlEZXNjck9iamVjdCwgZF90eXBlKSwgUkVBRE9OTFl9LAogICAgIHsiX19uYW1lX18iLCBUX09CSkVDVCwgb2Zmc2V0b2YoUHlEZXNjck9iamVjdCwgZF9uYW1lKSwgUkVBRE9OTFl9LApAQCAtMzY3LDYgKzQwNiw3IEBACiAKIHN0YXRpYyBQeUdldFNldERlZiBtZXRob2RfZ2V0c2V0W10gPSB7CiAgICAgeyJfX2RvY19fIiwgKGdldHRlciltZXRob2RfZ2V0X2RvY30sCisgICAgeyJfX3F1YWxuYW1lX18iLCAoZ2V0dGVyKWRlc2NyX2dldF9xdWFsbmFtZX0sCiAgICAgezB9CiB9OwogCkBAIC0zODIsNiArNDIyLDcgQEAKIAogc3RhdGljIFB5R2V0U2V0RGVmIG1lbWJlcl9nZXRzZXRbXSA9IHsKICAgICB7Il9fZG9jX18iLCAoZ2V0dGVyKW1lbWJlcl9nZXRfZG9jfSwKKyAgICB7Il9fcXVhbG5hbWVfXyIsIChnZXR0ZXIpZGVzY3JfZ2V0X3F1YWxuYW1lfSwKICAgICB7MH0KIH07CiAKQEAgLTM5Nyw2ICs0MzgsNyBAQAogCiBzdGF0aWMgUHlHZXRTZXREZWYgZ2V0c2V0X2dldHNldFtdID0gewogICAgIHsiX19kb2NfXyIsIChnZXR0ZXIpZ2V0c2V0X2dldF9kb2N9LAorICAgIHsiX19xdWFsbmFtZV9fIiwgKGdldHRlcilkZXNjcl9nZXRfcXVhbG5hbWV9LAogICAgIHswfQogfTsKIApAQCAtNDEyLDYgKzQ1NCw3IEBACiAKIHN0YXRpYyBQeUdldFNldERlZiB3cmFwcGVyZGVzY3JfZ2V0c2V0W10gPSB7CiAgICAgeyJfX2RvY19fIiwgKGdldHRlcil3cmFwcGVyZGVzY3JfZ2V0X2RvY30sCisgICAgeyJfX3F1YWxuYW1lX18iLCAoZ2V0dGVyKWRlc2NyX2dldF9xdWFsbmFtZX0sCiAgICAgezB9CiB9OwogCkBAIC02MjMsNiArNjY2LDkgQEAKICAgICAgICAgICAgIFB5X0RFQ1JFRihkZXNjcik7CiAgICAgICAgICAgICBkZXNjciA9IE5VTEw7CiAgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkZXNjci0+ZF9xdWFsbmFtZSA9IE5VTEw7CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGRlc2NyOwogfQpAQCAtNjkwLDQxICs3MzYsNDQgQEAKIH0KIAogCi0vKiAtLS0gUmVhZG9ubHkgcHJveHkgZm9yIGRpY3Rpb25hcmllcyAoYWN0dWFsbHkgYW55IG1hcHBpbmcpIC0tLSAqLworLyogLS0tIG1hcHBpbmdwcm94eTogcmVhZC1vbmx5IHByb3h5IGZvciBtYXBwaW5ncyAtLS0gKi8KIAogLyogVGhpcyBoYXMgbm8gcmVhc29uIHRvIGJlIGluIHRoaXMgZmlsZSBleGNlcHQgdGhhdCBhZGRpbmcgbmV3IGZpbGVzIGlzIGEKICAgIGJpdCBvZiBhIHBhaW4gKi8KIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFB5T2JqZWN0X0hFQUQKLSAgICBQeU9iamVjdCAqZGljdDsKLX0gcHJveHlvYmplY3Q7CisgICAgUHlPYmplY3QgKm1hcHBpbmc7Cit9IG1hcHBpbmdwcm94eW9iamVjdDsKIAogc3RhdGljIFB5X3NzaXplX3QKLXByb3h5X2xlbihwcm94eW9iamVjdCAqcHApCittYXBwaW5ncHJveHlfbGVuKG1hcHBpbmdwcm94eW9iamVjdCAqcHApCiB7Ci0gICAgcmV0dXJuIFB5T2JqZWN0X1NpemUocHAtPmRpY3QpOworICAgIHJldHVybiBQeU9iamVjdF9TaXplKHBwLT5tYXBwaW5nKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLXByb3h5X2dldGl0ZW0ocHJveHlvYmplY3QgKnBwLCBQeU9iamVjdCAqa2V5KQorbWFwcGluZ3Byb3h5X2dldGl0ZW0obWFwcGluZ3Byb3h5b2JqZWN0ICpwcCwgUHlPYmplY3QgKmtleSkKIHsKLSAgICByZXR1cm4gUHlPYmplY3RfR2V0SXRlbShwcC0+ZGljdCwga2V5KTsKKyAgICByZXR1cm4gUHlPYmplY3RfR2V0SXRlbShwcC0+bWFwcGluZywga2V5KTsKIH0KIAotc3RhdGljIFB5TWFwcGluZ01ldGhvZHMgcHJveHlfYXNfbWFwcGluZyA9IHsKLSAgICAobGVuZnVuYylwcm94eV9sZW4sICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG1wX2xlbmd0aCAqLwotICAgIChiaW5hcnlmdW5jKXByb3h5X2dldGl0ZW0sICAgICAgICAgICAgICAgICAgLyogbXBfc3Vic2NyaXB0ICovCitzdGF0aWMgUHlNYXBwaW5nTWV0aG9kcyBtYXBwaW5ncHJveHlfYXNfbWFwcGluZyA9IHsKKyAgICAobGVuZnVuYyltYXBwaW5ncHJveHlfbGVuLCAgICAgICAgICAgICAgICAgIC8qIG1wX2xlbmd0aCAqLworICAgIChiaW5hcnlmdW5jKW1hcHBpbmdwcm94eV9nZXRpdGVtLCAgICAgICAgICAgLyogbXBfc3Vic2NyaXB0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBtcF9hc3Nfc3Vic2NyaXB0ICovCiB9OwogCiBzdGF0aWMgaW50Ci1wcm94eV9jb250YWlucyhwcm94eW9iamVjdCAqcHAsIFB5T2JqZWN0ICprZXkpCittYXBwaW5ncHJveHlfY29udGFpbnMobWFwcGluZ3Byb3h5b2JqZWN0ICpwcCwgUHlPYmplY3QgKmtleSkKIHsKLSAgICByZXR1cm4gUHlEaWN0X0NvbnRhaW5zKHBwLT5kaWN0LCBrZXkpOworICAgIGlmIChQeURpY3RfQ2hlY2tFeGFjdChwcC0+bWFwcGluZykpCisgICAgICAgIHJldHVybiBQeURpY3RfQ29udGFpbnMocHAtPm1hcHBpbmcsIGtleSk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUHlTZXF1ZW5jZV9Db250YWlucyhwcC0+bWFwcGluZywga2V5KTsKIH0KIAotc3RhdGljIFB5U2VxdWVuY2VNZXRob2RzIHByb3h5X2FzX3NlcXVlbmNlID0geworc3RhdGljIFB5U2VxdWVuY2VNZXRob2RzIG1hcHBpbmdwcm94eV9hc19zZXF1ZW5jZSA9IHsKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNxX2xlbmd0aCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3FfY29uY2F0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzcV9yZXBlYXQgKi8KQEAgLTczMiwxNDcgKzc4MSwxOTkgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNxX3NsaWNlICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzcV9hc3NfaXRlbSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3FfYXNzX3NsaWNlICovCi0gICAgKG9iam9ianByb2MpcHJveHlfY29udGFpbnMsICAgICAgICAgICAgICAgICAvKiBzcV9jb250YWlucyAqLworICAgIChvYmpvYmpwcm9jKW1hcHBpbmdwcm94eV9jb250YWlucywgICAgICAgICAgICAgICAgIC8qIHNxX2NvbnRhaW5zICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzcV9pbnBsYWNlX2NvbmNhdCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3FfaW5wbGFjZV9yZXBlYXQgKi8KIH07CiAKIHN0YXRpYyBQeU9iamVjdCAqCi1wcm94eV9nZXQocHJveHlvYmplY3QgKnBwLCBQeU9iamVjdCAqYXJncykKK21hcHBpbmdwcm94eV9nZXQobWFwcGluZ3Byb3h5b2JqZWN0ICpwcCwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlPYmplY3QgKmtleSwgKmRlZiA9IFB5X05vbmU7CisgICAgX1B5X0lERU5USUZJRVIoZ2V0KTsKIAogICAgIGlmICghUHlBcmdfVW5wYWNrVHVwbGUoYXJncywgImdldCIsIDEsIDIsICZrZXksICZkZWYpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICByZXR1cm4gUHlPYmplY3RfQ2FsbE1ldGhvZChwcC0+ZGljdCwgImdldCIsICIoT08pIiwga2V5LCBkZWYpOworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHBwLT5tYXBwaW5nLCAmUHlJZF9nZXQsICIoT08pIiwga2V5LCBkZWYpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotcHJveHlfa2V5cyhwcm94eW9iamVjdCAqcHApCittYXBwaW5ncHJveHlfa2V5cyhtYXBwaW5ncHJveHlvYmplY3QgKnBwKQogewotICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKHBwLT5kaWN0LCAia2V5cyIsIE5VTEwpOworICAgIF9QeV9JREVOVElGSUVSKGtleXMpOworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHBwLT5tYXBwaW5nLCAmUHlJZF9rZXlzLCBOVUxMKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLXByb3h5X3ZhbHVlcyhwcm94eW9iamVjdCAqcHApCittYXBwaW5ncHJveHlfdmFsdWVzKG1hcHBpbmdwcm94eW9iamVjdCAqcHApCiB7Ci0gICAgcmV0dXJuIFB5T2JqZWN0X0NhbGxNZXRob2QocHAtPmRpY3QsICJ2YWx1ZXMiLCBOVUxMKTsKKyAgICBfUHlfSURFTlRJRklFUih2YWx1ZXMpOworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHBwLT5tYXBwaW5nLCAmUHlJZF92YWx1ZXMsIE5VTEwpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotcHJveHlfaXRlbXMocHJveHlvYmplY3QgKnBwKQorbWFwcGluZ3Byb3h5X2l0ZW1zKG1hcHBpbmdwcm94eW9iamVjdCAqcHApCiB7Ci0gICAgcmV0dXJuIFB5T2JqZWN0X0NhbGxNZXRob2QocHAtPmRpY3QsICJpdGVtcyIsIE5VTEwpOworICAgIF9QeV9JREVOVElGSUVSKGl0ZW1zKTsKKyAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChwcC0+bWFwcGluZywgJlB5SWRfaXRlbXMsIE5VTEwpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotcHJveHlfY29weShwcm94eW9iamVjdCAqcHApCittYXBwaW5ncHJveHlfY29weShtYXBwaW5ncHJveHlvYmplY3QgKnBwKQogewotICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKHBwLT5kaWN0LCAiY29weSIsIE5VTEwpOworICAgIF9QeV9JREVOVElGSUVSKGNvcHkpOworICAgIHJldHVybiBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHBwLT5tYXBwaW5nLCAmUHlJZF9jb3B5LCBOVUxMKTsKIH0KIAotc3RhdGljIFB5TWV0aG9kRGVmIHByb3h5X21ldGhvZHNbXSA9IHsKLSAgICB7ImdldCIsICAgICAgIChQeUNGdW5jdGlvbilwcm94eV9nZXQsICAgICAgICBNRVRIX1ZBUkFSR1MsCisvKiBXQVJOSU5HOiBtYXBwaW5ncHJveHkgbWV0aG9kcyBtdXN0IG5vdCBnaXZlIGFjY2VzcworICAgICAgICAgICAgdG8gdGhlIHVuZGVybHlpbmcgbWFwcGluZyAqLworCitzdGF0aWMgUHlNZXRob2REZWYgbWFwcGluZ3Byb3h5X21ldGhvZHNbXSA9IHsKKyAgICB7ImdldCIsICAgICAgIChQeUNGdW5jdGlvbiltYXBwaW5ncHJveHlfZ2V0LCAgICAgICAgTUVUSF9WQVJBUkdTLAogICAgICBQeURvY19TVFIoIkQuZ2V0KGtbLGRdKSAtPiBEW2tdIGlmIGsgaW4gRCwgZWxzZSBkLiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgIGQgZGVmYXVsdHMgdG8gTm9uZS4iKX0sCi0gICAgeyJrZXlzIiwgICAgICAoUHlDRnVuY3Rpb24pcHJveHlfa2V5cywgICAgICAgTUVUSF9OT0FSR1MsCisgICAgICAgICAgICAgICAiICBkIGRlZmF1bHRzIHRvIE5vbmUuIil9LAorICAgIHsia2V5cyIsICAgICAgKFB5Q0Z1bmN0aW9uKW1hcHBpbmdwcm94eV9rZXlzLCAgICAgICBNRVRIX05PQVJHUywKICAgICAgUHlEb2NfU1RSKCJELmtleXMoKSAtPiBsaXN0IG9mIEQncyBrZXlzIil9LAotICAgIHsidmFsdWVzIiwgICAgKFB5Q0Z1bmN0aW9uKXByb3h5X3ZhbHVlcywgICAgIE1FVEhfTk9BUkdTLAorICAgIHsidmFsdWVzIiwgICAgKFB5Q0Z1bmN0aW9uKW1hcHBpbmdwcm94eV92YWx1ZXMsICAgICBNRVRIX05PQVJHUywKICAgICAgUHlEb2NfU1RSKCJELnZhbHVlcygpIC0+IGxpc3Qgb2YgRCdzIHZhbHVlcyIpfSwKLSAgICB7Iml0ZW1zIiwgICAgIChQeUNGdW5jdGlvbilwcm94eV9pdGVtcywgICAgICBNRVRIX05PQVJHUywKKyAgICB7Iml0ZW1zIiwgICAgIChQeUNGdW5jdGlvbiltYXBwaW5ncHJveHlfaXRlbXMsICAgICAgTUVUSF9OT0FSR1MsCiAgICAgIFB5RG9jX1NUUigiRC5pdGVtcygpIC0+IGxpc3Qgb2YgRCdzIChrZXksIHZhbHVlKSBwYWlycywgYXMgMi10dXBsZXMiKX0sCi0gICAgeyJjb3B5IiwgICAgICAoUHlDRnVuY3Rpb24pcHJveHlfY29weSwgICAgICAgTUVUSF9OT0FSR1MsCisgICAgeyJjb3B5IiwgICAgICAoUHlDRnVuY3Rpb24pbWFwcGluZ3Byb3h5X2NvcHksICAgICAgIE1FVEhfTk9BUkdTLAogICAgICBQeURvY19TVFIoIkQuY29weSgpIC0+IGEgc2hhbGxvdyBjb3B5IG9mIEQiKX0sCiAgICAgezB9CiB9OwogCiBzdGF0aWMgdm9pZAotcHJveHlfZGVhbGxvYyhwcm94eW9iamVjdCAqcHApCittYXBwaW5ncHJveHlfZGVhbGxvYyhtYXBwaW5ncHJveHlvYmplY3QgKnBwKQogewogICAgIF9QeU9iamVjdF9HQ19VTlRSQUNLKHBwKTsKLSAgICBQeV9ERUNSRUYocHAtPmRpY3QpOworICAgIFB5X0RFQ1JFRihwcC0+bWFwcGluZyk7CiAgICAgUHlPYmplY3RfR0NfRGVsKHBwKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLXByb3h5X2dldGl0ZXIocHJveHlvYmplY3QgKnBwKQorbWFwcGluZ3Byb3h5X2dldGl0ZXIobWFwcGluZ3Byb3h5b2JqZWN0ICpwcCkKIHsKLSAgICByZXR1cm4gUHlPYmplY3RfR2V0SXRlcihwcC0+ZGljdCk7CisgICAgcmV0dXJuIFB5T2JqZWN0X0dldEl0ZXIocHAtPm1hcHBpbmcpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotcHJveHlfc3RyKHByb3h5b2JqZWN0ICpwcCkKK21hcHBpbmdwcm94eV9zdHIobWFwcGluZ3Byb3h5b2JqZWN0ICpwcCkKIHsKLSAgICByZXR1cm4gUHlPYmplY3RfU3RyKHBwLT5kaWN0KTsKKyAgICByZXR1cm4gUHlPYmplY3RfU3RyKHBwLT5tYXBwaW5nKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLXByb3h5X3JlcHIocHJveHlvYmplY3QgKnBwKQorbWFwcGluZ3Byb3h5X3JlcHIobWFwcGluZ3Byb3h5b2JqZWN0ICpwcCkKIHsKLSAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoImRpY3RfcHJveHkoJVIpIiwgcHAtPmRpY3QpOworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgibWFwcGluZ3Byb3h5KCVSKSIsIHBwLT5tYXBwaW5nKTsKIH0KIAogc3RhdGljIGludAotcHJveHlfdHJhdmVyc2UoUHlPYmplY3QgKnNlbGYsIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQorbWFwcGluZ3Byb3h5X3RyYXZlcnNlKFB5T2JqZWN0ICpzZWxmLCB2aXNpdHByb2MgdmlzaXQsIHZvaWQgKmFyZykKIHsKLSAgICBwcm94eW9iamVjdCAqcHAgPSAocHJveHlvYmplY3QgKilzZWxmOwotICAgIFB5X1ZJU0lUKHBwLT5kaWN0KTsKKyAgICBtYXBwaW5ncHJveHlvYmplY3QgKnBwID0gKG1hcHBpbmdwcm94eW9iamVjdCAqKXNlbGY7CisgICAgUHlfVklTSVQocHAtPm1hcHBpbmcpOwogICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotcHJveHlfcmljaGNvbXBhcmUocHJveHlvYmplY3QgKnYsIFB5T2JqZWN0ICp3LCBpbnQgb3ApCittYXBwaW5ncHJveHlfcmljaGNvbXBhcmUobWFwcGluZ3Byb3h5b2JqZWN0ICp2LCBQeU9iamVjdCAqdywgaW50IG9wKQogewotICAgIHJldHVybiBQeU9iamVjdF9SaWNoQ29tcGFyZSh2LT5kaWN0LCB3LCBvcCk7CisgICAgcmV0dXJuIFB5T2JqZWN0X1JpY2hDb21wYXJlKHYtPm1hcHBpbmcsIHcsIG9wKTsKK30KKworc3RhdGljIGludAorbWFwcGluZ3Byb3h5X2NoZWNrX21hcHBpbmcoUHlPYmplY3QgKm1hcHBpbmcpCit7CisgICAgaWYgKCFQeU1hcHBpbmdfQ2hlY2sobWFwcGluZykKKyAgICAgICAgfHwgUHlMaXN0X0NoZWNrKG1hcHBpbmcpCisgICAgICAgIHx8IFB5VHVwbGVfQ2hlY2sobWFwcGluZykpIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgIm1hcHBpbmdwcm94eSgpIGFyZ3VtZW50IG11c3QgYmUgYSBtYXBwaW5nLCBub3QgJXMiLAorICAgICAgICAgICAgICAgICAgICBQeV9UWVBFKG1hcHBpbmcpLT50cF9uYW1lKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIFB5T2JqZWN0KgorbWFwcGluZ3Byb3h5X25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7Im1hcHBpbmciLCBOVUxMfTsKKyAgICBQeU9iamVjdCAqbWFwcGluZzsKKyAgICBtYXBwaW5ncHJveHlvYmplY3QgKm1hcHBpbmdwcm94eTsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJPOm1hcHBpbmdwcm94eSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmbWFwcGluZykpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKG1hcHBpbmdwcm94eV9jaGVja19tYXBwaW5nKG1hcHBpbmcpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIG1hcHBpbmdwcm94eSA9IFB5T2JqZWN0X0dDX05ldyhtYXBwaW5ncHJveHlvYmplY3QsICZQeURpY3RQcm94eV9UeXBlKTsKKyAgICBpZiAobWFwcGluZ3Byb3h5ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIFB5X0lOQ1JFRihtYXBwaW5nKTsKKyAgICBtYXBwaW5ncHJveHktPm1hcHBpbmcgPSBtYXBwaW5nOworICAgIF9QeU9iamVjdF9HQ19UUkFDSyhtYXBwaW5ncHJveHkpOworICAgIHJldHVybiAoUHlPYmplY3QgKiltYXBwaW5ncHJveHk7CiB9CiAKIFB5VHlwZU9iamVjdCBQeURpY3RQcm94eV9UeXBlID0gewogICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVCgmUHlUeXBlX1R5cGUsIDApCi0gICAgImRpY3RfcHJveHkiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9uYW1lICovCi0gICAgc2l6ZW9mKHByb3h5b2JqZWN0KSwgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNpY3NpemUgKi8KKyAgICAibWFwcGluZ3Byb3h5IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICBzaXplb2YobWFwcGluZ3Byb3h5b2JqZWN0KSwgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2ljc2l6ZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KICAgICAvKiBtZXRob2RzICovCi0gICAgKGRlc3RydWN0b3IpcHJveHlfZGVhbGxvYywgICAgICAgICAgICAgICAgICAvKiB0cF9kZWFsbG9jICovCisgICAgKGRlc3RydWN0b3IpbWFwcGluZ3Byb3h5X2RlYWxsb2MsICAgICAgICAgICAvKiB0cF9kZWFsbG9jICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0ciAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVzZXJ2ZWQgKi8KLSAgICAocmVwcmZ1bmMpcHJveHlfcmVwciwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JlcHIgKi8KKyAgICAocmVwcmZ1bmMpbWFwcGluZ3Byb3h5X3JlcHIsICAgICAgICAgICAgICAgIC8qIHRwX3JlcHIgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLwotICAgICZwcm94eV9hc19zZXF1ZW5jZSwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KLSAgICAmcHJveHlfYXNfbWFwcGluZywgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX21hcHBpbmcgKi8KKyAgICAmbWFwcGluZ3Byb3h5X2FzX3NlcXVlbmNlLCAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX3NlcXVlbmNlICovCisgICAgJm1hcHBpbmdwcm94eV9hc19tYXBwaW5nLCAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19tYXBwaW5nICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9oYXNoICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCi0gICAgKHJlcHJmdW5jKXByb3h5X3N0ciwgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KKyAgICAocmVwcmZ1bmMpbWFwcGluZ3Byb3h5X3N0ciwgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLwogICAgIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyLCAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHJvICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KICAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0hBVkVfR0MsIC8qIHRwX2ZsYWdzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KLSAgICBwcm94eV90cmF2ZXJzZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCisgICAgbWFwcGluZ3Byb3h5X3RyYXZlcnNlLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KLSAgICAocmljaGNtcGZ1bmMpcHJveHlfcmljaGNvbXBhcmUsICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgKHJpY2hjbXBmdW5jKW1hcHBpbmdwcm94eV9yaWNoY29tcGFyZSwgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KLSAgICAoZ2V0aXRlcmZ1bmMpcHJveHlfZ2V0aXRlciwgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KKyAgICAoZ2V0aXRlcmZ1bmMpbWFwcGluZ3Byb3h5X2dldGl0ZXIsICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgcHJveHlfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgbWFwcGluZ3Byb3h5X21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX2dldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pbml0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLworICAgIG1hcHBpbmdwcm94eV9uZXcsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmV3ICovCiB9OwogCiBQeU9iamVjdCAqCi1QeURpY3RQcm94eV9OZXcoUHlPYmplY3QgKmRpY3QpCitQeURpY3RQcm94eV9OZXcoUHlPYmplY3QgKm1hcHBpbmcpCiB7Ci0gICAgcHJveHlvYmplY3QgKnBwOworICAgIG1hcHBpbmdwcm94eW9iamVjdCAqcHA7CiAKLSAgICBwcCA9IFB5T2JqZWN0X0dDX05ldyhwcm94eW9iamVjdCwgJlB5RGljdFByb3h5X1R5cGUpOworICAgIGlmIChtYXBwaW5ncHJveHlfY2hlY2tfbWFwcGluZyhtYXBwaW5nKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBwcCA9IFB5T2JqZWN0X0dDX05ldyhtYXBwaW5ncHJveHlvYmplY3QsICZQeURpY3RQcm94eV9UeXBlKTsKICAgICBpZiAocHAgIT0gTlVMTCkgewotICAgICAgICBQeV9JTkNSRUYoZGljdCk7Ci0gICAgICAgIHBwLT5kaWN0ID0gZGljdDsKKyAgICAgICAgUHlfSU5DUkVGKG1hcHBpbmcpOworICAgICAgICBwcC0+bWFwcGluZyA9IG1hcHBpbmc7CiAgICAgICAgIF9QeU9iamVjdF9HQ19UUkFDSyhwcCk7CiAgICAgfQogICAgIHJldHVybiAoUHlPYmplY3QgKilwcDsKQEAgLTEwMjAsOSArMTEyMSwxNiBAQAogICAgIH0KIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK3dyYXBwZXJfcXVhbG5hbWUod3JhcHBlcm9iamVjdCAqd3ApCit7CisgICAgcmV0dXJuIGRlc2NyX2dldF9xdWFsbmFtZSgoUHlEZXNjck9iamVjdCAqKXdwLT5kZXNjcik7Cit9CisKIHN0YXRpYyBQeUdldFNldERlZiB3cmFwcGVyX2dldHNldHNbXSA9IHsKICAgICB7Il9fb2JqY2xhc3NfXyIsIChnZXR0ZXIpd3JhcHBlcl9vYmpjbGFzc30sCiAgICAgeyJfX25hbWVfXyIsIChnZXR0ZXIpd3JhcHBlcl9uYW1lfSwKKyAgICB7Il9fcXVhbG5hbWVfXyIsIChnZXR0ZXIpd3JhcHBlcl9xdWFsbmFtZX0sCiAgICAgeyJfX2RvY19fIiwgKGdldHRlcil3cmFwcGVyX2RvY30sCiAgICAgezB9CiB9OwpAQCAtMTMzMiw3ICsxNDQwLDggQEAKIAogICAgIC8qIGlmIG5vIGRvY3N0cmluZyBnaXZlbiBhbmQgdGhlIGdldHRlciBoYXMgb25lLCB1c2UgdGhhdCBvbmUgKi8KICAgICBpZiAoKGRvYyA9PSBOVUxMIHx8IGRvYyA9PSBQeV9Ob25lKSAmJiBnZXQgIT0gTlVMTCkgewotICAgICAgICBQeU9iamVjdCAqZ2V0X2RvYyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoZ2V0LCAiX19kb2NfXyIpOworICAgICAgICBfUHlfSURFTlRJRklFUihfX2RvY19fKTsKKyAgICAgICAgUHlPYmplY3QgKmdldF9kb2MgPSBfUHlPYmplY3RfR2V0QXR0cklkKGdldCwgJlB5SWRfX19kb2NfXyk7CiAgICAgICAgIGlmIChnZXRfZG9jKSB7CiAgICAgICAgICAgICBpZiAoUHlfVFlQRShzZWxmKSA9PSAmUHlQcm9wZXJ0eV9UeXBlKSB7CiAgICAgICAgICAgICAgICAgUHlfWERFQ1JFRihwcm9wLT5wcm9wX2RvYyk7CkBAIC0xMzQzLDcgKzE0NTIsNyBAQAogICAgICAgICAgICAgICAgIGluIGRpY3Qgb2YgdGhlIHN1YmNsYXNzIGluc3RhbmNlIGluc3RlYWQsCiAgICAgICAgICAgICAgICAgb3RoZXJ3aXNlIGl0IGdldHMgc2hhZG93ZWQgYnkgX19kb2NfXyBpbiB0aGUKICAgICAgICAgICAgICAgICBjbGFzcydzIGRpY3QuICovCi0gICAgICAgICAgICAgICAgaW50IGVyciA9IFB5T2JqZWN0X1NldEF0dHJTdHJpbmcoc2VsZiwgIl9fZG9jX18iLCBnZXRfZG9jKTsKKyAgICAgICAgICAgICAgICBpbnQgZXJyID0gX1B5T2JqZWN0X1NldEF0dHJJZChzZWxmLCAmUHlJZF9fX2RvY19fLCBnZXRfZG9jKTsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoZ2V0X2RvYyk7CiAgICAgICAgICAgICAgICAgaWYgKGVyciA8IDApCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKQEAgLTEzNjEsNiArMTQ3MCw0MyBAQAogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorcHJvcGVydHlfZ2V0X19faXNhYnN0cmFjdG1ldGhvZF9fKHByb3BlcnR5b2JqZWN0ICpwcm9wLCB2b2lkICpjbG9zdXJlKQoreworICAgIGludCByZXMgPSBfUHlPYmplY3RfSXNBYnN0cmFjdChwcm9wLT5wcm9wX2dldCk7CisgICAgaWYgKHJlcyA9PSAtMSkgeworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZWxzZSBpZiAocmVzKSB7CisgICAgICAgIFB5X1JFVFVSTl9UUlVFOworICAgIH0KKworICAgIHJlcyA9IF9QeU9iamVjdF9Jc0Fic3RyYWN0KHByb3AtPnByb3Bfc2V0KTsKKyAgICBpZiAocmVzID09IC0xKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBlbHNlIGlmIChyZXMpIHsKKyAgICAgICAgUHlfUkVUVVJOX1RSVUU7CisgICAgfQorCisgICAgcmVzID0gX1B5T2JqZWN0X0lzQWJzdHJhY3QocHJvcC0+cHJvcF9kZWwpOworICAgIGlmIChyZXMgPT0gLTEpIHsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGVsc2UgaWYgKHJlcykgeworICAgICAgICBQeV9SRVRVUk5fVFJVRTsKKyAgICB9CisgICAgUHlfUkVUVVJOX0ZBTFNFOworfQorCitzdGF0aWMgUHlHZXRTZXREZWYgcHJvcGVydHlfZ2V0c2V0bGlzdFtdID0geworICAgIHsiX19pc2Fic3RyYWN0bWV0aG9kX18iLAorICAgICAoZ2V0dGVyKXByb3BlcnR5X2dldF9fX2lzYWJzdHJhY3RtZXRob2RfXywgTlVMTCwKKyAgICAgTlVMTCwKKyAgICAgTlVMTH0sCisgICAge05VTEx9IC8qIFNlbnRpbmVsICovCit9OworCiBQeURvY19TVFJWQVIocHJvcGVydHlfZG9jLAogInByb3BlcnR5KGZnZXQ9Tm9uZSwgZnNldD1Ob25lLCBmZGVsPU5vbmUsIGRvYz1Ob25lKSAtPiBwcm9wZXJ0eSBhdHRyaWJ1dGVcbiIKICJcbiIKQEAgLTE0MjYsNyArMTU3Miw3IEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwogICAgIHByb3BlcnR5X21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIHByb3BlcnR5X21lbWJlcnMsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCisgICAgcHJvcGVydHlfZ2V0c2V0bGlzdCwgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KICAgICBwcm9wZXJ0eV9kZXNjcl9nZXQsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX2dldCAqLwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9kaWN0bm90ZXMudHh0IGIvT2JqZWN0cy9kaWN0bm90ZXMudHh0CmluZGV4IGQzYWE3NzQuLmY4OTcyMGMgMTAwNjQ0Ci0tLSBhL09iamVjdHMvZGljdG5vdGVzLnR4dAorKysgYi9PYmplY3RzL2RpY3Rub3Rlcy50eHQKQEAgLTEsNyArMSw2IEBACi1OT1RFUyBPTiBPUFRJTUlaSU5HIERJQ1RJT05BUklFUworTk9URVMgT04gRElDVElPTkFSSUVTCiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCi0KIFByaW5jaXBhbCBVc2UgQ2FzZXMgZm9yIERpY3Rpb25hcmllcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKQEAgLTIxLDcgKzIwLDcgQEAKIAogQnVpbHRpbnMKICAgICBGcmVxdWVudCByZWFkcy4gIEFsbW9zdCBuZXZlciB3cml0dGVuLgotICAgIFNpemUgMTI2IGludGVybmVkIHN0cmluZ3MgKGFzIG9mIFB5Mi4zYjEpLgorICAgIEFib3V0IDE1MCBpbnRlcm5lZCBzdHJpbmdzIChhcyBvZiBQeTMuMykuCiAgICAgQSBmZXcga2V5cyBhcmUgYWNjZXNzZWQgbXVjaCBtb3JlIGZyZXF1ZW50bHkgdGhhbiBvdGhlcnMuCiAKIFVuaXF1aWZpY2F0aW9uCkBAIC01OSw1NSArNTgsMjAgQEAKICAgICBDaGFyYWN0ZXJpemVkIGJ5IGRlbGV0aW9ucyBpbnRlcnNwZXJzZWQgd2l0aCBhZGRzIGFuZCByZXBsYWNlbWVudHMuCiAgICAgUGVyZm9ybWFuY2UgYmVuZWZpdHMgZ3JlYXRseSBmcm9tIHRoZSByZS11c2Ugb2YgZHVtbXkgZW50cmllcy4KIAorRGF0YSBMYXlvdXQKKy0tLS0tLS0tLS0tCiAKLURhdGEgTGF5b3V0IChhc3N1bWluZyBhIDMyLWJpdCBib3ggd2l0aCA2NCBieXRlcyBwZXIgY2FjaGUgbGluZSkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotU21hbGxkaWN0cyAoOCBlbnRyaWVzKSBhcmUgYXR0YWNoZWQgdG8gdGhlIGRpY3RvYmplY3Qgc3RydWN0dXJlCi1hbmQgdGhlIHdob2xlIGdyb3VwIG5lYXJseSBmaWxscyB0d28gY29uc2VjdXRpdmUgY2FjaGUgbGluZXMuCi0KLUxhcmdlciBkaWN0cyB1c2UgdGhlIGZpcnN0IGhhbGYgb2YgdGhlIGRpY3RvYmplY3Qgc3RydWN0dXJlIChvbmUgY2FjaGUKLWxpbmUpIGFuZCBhIHNlcGFyYXRlLCBjb250aW51b3VzIGJsb2NrIG9mIGVudHJpZXMgKGF0IDEyIGJ5dGVzIGVhY2gKLWZvciBhIHRvdGFsIG9mIDUuMzMzIGVudHJpZXMgcGVyIGNhY2hlIGxpbmUpLgorRGljdGlvbmFyaWVzIGFyZSBjb21wb3NlZCBvZiAzIGNvbXBvbmVudHM6CitUaGUgZGljdG9iamVjdCBzdHJ1Y3QgaXRzZWxmCitBIGRpY3Qta2V5cyBvYmplY3QgKGtleXMgJiBoYXNoZXMpCitBIHZhbHVlcyBhcnJheQogCiAKIFR1bmFibGUgRGljdGlvbmFyeSBQYXJhbWV0ZXJzCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi0qIFB5RGljdF9NSU5TSVpFLiAgQ3VycmVudGx5IHNldCB0byA4LgotICAgIE11c3QgYmUgYSBwb3dlciBvZiB0d28uICBOZXcgZGljdHMgaGF2ZSB0byB6ZXJvLW91dCBldmVyeSBjZWxsLgotICAgIEVhY2ggYWRkaXRpb25hbCA4IGNvbnN1bWVzIDEuNSBjYWNoZSBsaW5lcy4gIEluY3JlYXNpbmcgaW1wcm92ZXMKLSAgICB0aGUgc3BhcnNlbmVzcyBvZiBzbWFsbCBkaWN0aW9uYXJpZXMgYnV0IGNvc3RzIHRpbWUgdG8gcmVhZCBpbgotICAgIHRoZSBhZGRpdGlvbmFsIGNhY2hlIGxpbmVzIGlmIHRoZXkgYXJlIG5vdCBhbHJlYWR5IGluIGNhY2hlLgotICAgIFRoYXQgY2FzZSBpcyBjb21tb24gd2hlbiBrZXl3b3JkIGFyZ3VtZW50cyBhcmUgcGFzc2VkLgotCi0qIE1heGltdW0gZGljdGlvbmFyeSBsb2FkIGluIFB5RGljdF9TZXRJdGVtLiAgQ3VycmVudGx5IHNldCB0byAyLzMuCi0gICAgSW5jcmVhc2luZyB0aGlzIHJhdGlvIG1ha2VzIGRpY3Rpb25hcmllcyBtb3JlIGRlbnNlIHJlc3VsdGluZwotICAgIGluIG1vcmUgY29sbGlzaW9ucy4gIERlY3JlYXNpbmcgaXQgaW1wcm92ZXMgc3BhcnNlbmVzcyBhdCB0aGUKLSAgICBleHBlbnNlIG9mIHNwcmVhZGluZyBlbnRyaWVzIG92ZXIgbW9yZSBjYWNoZSBsaW5lcyBhbmQgYXQgdGhlCi0gICAgY29zdCBvZiB0b3RhbCBtZW1vcnkgY29uc3VtZWQuCi0KLSAgICBUaGUgbG9hZCB0ZXN0IG9jY3VycyBpbiBoaWdobHkgdGltZSBzZW5zaXRpdmUgY29kZS4gIEVmZm9ydHMKLSAgICB0byBtYWtlIHRoZSB0ZXN0IG1vcmUgY29tcGxleCAoZm9yIGV4YW1wbGUsIHZhcnlpbmcgdGhlIGxvYWQKLSAgICBmb3IgZGlmZmVyZW50IHNpemVzKSBoYXZlIGRlZ3JhZGVkIHBlcmZvcm1hbmNlLgotCi0qIEdyb3d0aCByYXRlIHVwb24gaGl0dGluZyBtYXhpbXVtIGxvYWQuICBDdXJyZW50bHkgc2V0IHRvICoyLgotICAgIFJhaXNpbmcgdGhpcyB0byAqNCByZXN1bHRzIGluIGhhbGYgdGhlIG51bWJlciBvZiByZXNpemVzLAotICAgIGxlc3MgZWZmb3J0IHRvIHJlc2l6ZSwgYmV0dGVyIHNwYXJzZW5lc3MgZm9yIHNvbWUgKGJ1dCBub3QKLSAgICBhbGwgZGljdCBzaXplcyksIGFuZCBwb3RlbnRpYWxseSBkb3VibGVzIG1lbW9yeSBjb25zdW1wdGlvbgotICAgIGRlcGVuZGluZyBvbiB0aGUgc2l6ZSBvZiB0aGUgZGljdGlvbmFyeS4gIFNldHRpbmcgdG8gKjQKLSAgICBlbGltaW5hdGVzIGV2ZXJ5IG90aGVyIHJlc2l6ZSBzdGVwLgotCi0qIE1heGltdW0gc3BhcnNlbmVzcyAobWluaW11bSBkaWN0aW9uYXJ5IGxvYWQpLiAgV2hhdCBwZXJjZW50YWdlCi0gICAgb2YgZW50cmllcyBjYW4gYmUgdW51c2VkIGJlZm9yZSB0aGUgZGljdGlvbmFyeSBzaHJpbmtzIHRvCi0gICAgZnJlZSB1cCBtZW1vcnkgYW5kIHNwZWVkIHVwIGl0ZXJhdGlvbj8gIChUaGUgY3VycmVudCBDUHl0aG9uCi0gICAgY29kZSBkb2VzIG5vdCByZXByZXNlbnQgdGhpcyBwYXJhbWV0ZXIgZGlyZWN0bHkuKQotCi0qIFNocmlua2FnZSByYXRlIHVwb24gZXhjZWVkaW5nIG1heGltdW0gc3BhcnNlbmVzcy4gIFRoZSBjdXJyZW50Ci0gICAgQ1B5dGhvbiBjb2RlIG5ldmVyIGV2ZW4gY2hlY2tzIHNwYXJzZW5lc3Mgd2hlbiBkZWxldGluZyBhCi0gICAga2V5LiAgV2hlbiBhIG5ldyBrZXkgaXMgYWRkZWQsIGl0IHJlc2l6ZXMgYmFzZWQgb24gdGhlIG51bWJlcgotICAgIG9mIGFjdGl2ZSBrZXlzLCBzbyB0aGF0IHRoZSBhZGRpdGlvbiBtYXkgdHJpZ2dlciBzaHJpbmthZ2UKLSAgICByYXRoZXIgdGhhbiBncm93dGguCitTZWUgY29tbWVudHMgZm9yIFB5RGljdF9NSU5TSVpFX1NQTElULCBQeURpY3RfTUlOU0laRV9DT01CSU5FRCwKK1VTQUJMRV9GUkFDVElPTiBhbmQgR1JPV1RIX1JBVEUgaW4gZGljdG9iamVjdC5jCiAKIFR1bmUtdXBzIHNob3VsZCBiZSBtZWFzdXJlZCBhY3Jvc3MgYSBicm9hZCByYW5nZSBvZiBhcHBsaWNhdGlvbnMgYW5kCiB1c2UgY2FzZXMuICBBIGNoYW5nZSB0byBhbnkgcGFyYW1ldGVyIHdpbGwgaGVscCBpbiBzb21lIHNpdHVhdGlvbnMgYW5kCkBAIC0xMjYsOCArOTAsOCBAQAogQWxzbywgZXZlcnkgZGljdGlvbmFyeSBpdGVyYXRlcyBhdCBsZWFzdCB0d2ljZSwgb25jZSBmb3IgdGhlIG1lbXNldCgpCiB3aGVuIGl0IGlzIGNyZWF0ZWQgYW5kIG9uY2UgYnkgZGVhbGxvYygpLgogCi1EaWN0aW9uYXJ5IG9wZXJhdGlvbnMgaW52b2x2aW5nIG9ubHkgYSBzaW5nbGUga2V5IGNhbiBiZSBPKDEpIHVubGVzcyAKLXJlc2l6aW5nIGlzIHBvc3NpYmxlLiAgQnkgY2hlY2tpbmcgZm9yIGEgcmVzaXplIG9ubHkgd2hlbiB0aGUgCitEaWN0aW9uYXJ5IG9wZXJhdGlvbnMgaW52b2x2aW5nIG9ubHkgYSBzaW5nbGUga2V5IGNhbiBiZSBPKDEpIHVubGVzcworcmVzaXppbmcgaXMgcG9zc2libGUuICBCeSBjaGVja2luZyBmb3IgYSByZXNpemUgb25seSB3aGVuIHRoZQogZGljdGlvbmFyeSBjYW4gZ3JvdyAoYW5kIG1heSAqcmVxdWlyZSogcmVzaXppbmcpLCBvdGhlciBvcGVyYXRpb25zCiByZW1haW4gTygxKSwgYW5kIHRoZSBvZGRzIG9mIHJlc2l6ZSB0aHJhc2hpbmcgb3IgbWVtb3J5IGZyYWdtZW50YXRpb24KIGFyZSByZWR1Y2VkLiBJbiBwYXJ0aWN1bGFyLCBhbiBhbGdvcml0aG0gdGhhdCBlbXB0aWVzIGEgZGljdGlvbmFyeQpAQCAtMTM1LDEzNiArOTksNTEgQEAKIG5vdCBiZSBuZWNlc3NhcnkgYXQgYWxsIGJlY2F1c2UgdGhlIGRpY3Rpb25hcnkgaXMgZXZlbnR1YWxseQogZGlzY2FyZGVkIGVudGlyZWx5LgogCitUaGUga2V5IGRpZmZlcmVuY2VzIGJldHdlZW4gdGhpcyBpbXBsZW1lbnRhdGlvbiBhbmQgZWFybGllciB2ZXJzaW9ucyBhcmU6CisgICAgMS4gVGhlIHRhYmxlIGNhbiBiZSBzcGxpdCBpbnRvIHR3byBwYXJ0cywgdGhlIGtleXMgYW5kIHRoZSB2YWx1ZXMuCisKKyAgICAyLiBUaGVyZSBpcyBhbiBhZGRpdGlvbmFsIGtleS12YWx1ZSBjb21iaW5hdGlvbjogKGtleSwgTlVMTCkuCisgICAgICAgVW5saWtlICg8ZHVtbXk+LCBOVUxMKSB3aGljaCByZXByZXNlbnRzIGEgZGVsZXRlZCB2YWx1ZSwgKGtleSwgTlVMTCkKKyAgICAgICByZXByZXNlbnRlZCBhIHlldCB0byBiZSBpbnNlcnRlZCB2YWx1ZS4gVGhpcyBjb21iaW5hdGlvbiBjYW4gb25seSBvY2N1cgorICAgICAgIHdoZW4gdGhlIHRhYmxlIGlzIHNwbGl0LgorCisgICAgMy4gTm8gc21hbGwgdGFibGUgZW1iZWRkZWQgaW4gdGhlIGRpY3QsCisgICAgICAgYXMgdGhpcyB3b3VsZCBtYWtlIHNoYXJpbmcgb2Yga2V5LXRhYmxlcyBpbXBvc3NpYmxlLgorCisKK1RoZXNlIGNoYW5nZXMgaGF2ZSB0aGUgZm9sbG93aW5nIGNvbnNlcXVlbmNlcy4KKyAgIDEuIEdlbmVyYWwgZGljdGlvbmFyaWVzIGFyZSBzbGlnaHRseSBsYXJnZXIuCisKKyAgIDIuIEFsbCBvYmplY3QgZGljdGlvbmFyaWVzIG9mIGEgc2luZ2xlIGNsYXNzIGNhbiBzaGFyZSBhIHNpbmdsZSBrZXktdGFibGUsCisgICAgICBzYXZpbmcgYWJvdXQgNjAlIG1lbW9yeSBmb3Igc3VjaCBjYXNlcy4KIAogUmVzdWx0cyBvZiBDYWNoZSBMb2NhbGl0eSBFeHBlcmltZW50cwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotV2hlbiBhbiBlbnRyeSBpcyByZXRyaWV2ZWQgZnJvbSBtZW1vcnksIDQuMzMzIGFkamFjZW50IGVudHJpZXMgYXJlIGFsc28KLXJldHJpZXZlZCBpbnRvIGEgY2FjaGUgbGluZS4gIFNpbmNlIGFjY2Vzc2luZyBpdGVtcyBpbiBjYWNoZSBpcyAqbXVjaCoKLWNoZWFwZXIgdGhhbiBhIGNhY2hlIG1pc3MsIGFuIGVudGljaW5nIGlkZWEgaXMgdG8gcHJvYmUgdGhlIGFkamFjZW50Ci1lbnRyaWVzIGFzIGEgZmlyc3Qgc3RlcCBpbiBjb2xsaXNpb24gcmVzb2x1dGlvbi4gIFVuZm9ydHVuYXRlbHksIHRoZQotaW50cm9kdWN0aW9uIG9mIGFueSByZWd1bGFyaXR5IGludG8gY29sbGlzaW9uIHNlYXJjaGVzIHJlc3VsdHMgaW4gbW9yZQotY29sbGlzaW9ucyB0aGFuIHRoZSBjdXJyZW50IHJhbmRvbSBjaGFpbmluZyBhcHByb2FjaC4KK0V4cGVyaW1lbnRzIG9uIGFuIGVhcmxpZXIgZGVzaWduIG9mIGRpY3Rpb25hcnksIGluIHdoaWNoIGFsbCB0YWJsZXMgd2VyZQorY29tYmluZWQsIHNob3dlZCB0aGUgZm9sbG93aW5nOgogCi1FeHBsb2l0aW5nIGNhY2hlIGxvY2FsaXR5IGF0IHRoZSBleHBlbnNlIG9mIGFkZGl0aW9uYWwgY29sbGlzaW9ucyBmYWlscwotdG8gcGF5b2ZmIHdoZW4gdGhlIGVudHJpZXMgYXJlIGFscmVhZHkgbG9hZGVkIGluIGNhY2hlICh0aGUgZXhwZW5zZQotaXMgcGFpZCB3aXRoIG5vIGNvbXBlbnNhdGluZyBiZW5lZml0KS4gIFRoaXMgb2NjdXJzIGluIHNtYWxsIGRpY3Rpb25hcmllcwotd2hlcmUgdGhlIHdob2xlIGRpY3Rpb25hcnkgZml0cyBpbnRvIGEgcGFpciBvZiBjYWNoZSBsaW5lcy4gIEl0IGFsc28KLW9jY3VycyBmcmVxdWVudGx5IGluIGxhcmdlIGRpY3Rpb25hcmllcyB3aGljaCBoYXZlIGEgY29tbW9uIGFjY2VzcyBwYXR0ZXJuCi13aGVyZSBzb21lIGtleXMgYXJlIGFjY2Vzc2VkIG11Y2ggbW9yZSBmcmVxdWVudGx5IHRoYW4gb3RoZXJzLiAgVGhlCi1tb3JlIHBvcHVsYXIgZW50cmllcyAqYW5kKiB0aGVpciBjb2xsaXNpb24gY2hhaW5zIHRlbmQgdG8gcmVtYWluIGluIGNhY2hlLgorICBXaGVuIGFuIGVudHJ5IGlzIHJldHJpZXZlZCBmcm9tIG1lbW9yeSwgc2V2ZXJhbCBhZGphY2VudCBlbnRyaWVzIGFyZSBhbHNvCisgIHJldHJpZXZlZCBpbnRvIGEgY2FjaGUgbGluZS4gIFNpbmNlIGFjY2Vzc2luZyBpdGVtcyBpbiBjYWNoZSBpcyAqbXVjaCoKKyAgY2hlYXBlciB0aGFuIGEgY2FjaGUgbWlzcywgYW4gZW50aWNpbmcgaWRlYSBpcyB0byBwcm9iZSB0aGUgYWRqYWNlbnQKKyAgZW50cmllcyBhcyBhIGZpcnN0IHN0ZXAgaW4gY29sbGlzaW9uIHJlc29sdXRpb24uICBVbmZvcnR1bmF0ZWx5LCB0aGUKKyAgaW50cm9kdWN0aW9uIG9mIGFueSByZWd1bGFyaXR5IGludG8gY29sbGlzaW9uIHNlYXJjaGVzIHJlc3VsdHMgaW4gbW9yZQorICBjb2xsaXNpb25zIHRoYW4gdGhlIGN1cnJlbnQgcmFuZG9tIGNoYWluaW5nIGFwcHJvYWNoLgogCi1UbyBleHBsb2l0IGNhY2hlIGxvY2FsaXR5LCBjaGFuZ2UgdGhlIGNvbGxpc2lvbiByZXNvbHV0aW9uIHNlY3Rpb24KLWluIGxvb2tkaWN0KCkgYW5kIGxvb2tkaWN0X3N0cmluZygpLiAgU2V0IGlePTEgYXQgdGhlIHRvcCBvZiB0aGUKLWxvb3AgYW5kIG1vdmUgdGhlICBpID0gKGkgPDwgMikgKyBpICsgcGVydHVyYiArIDEgdG8gYW4gdW5yb2xsZWQKLXZlcnNpb24gb2YgdGhlIGxvb3AuCisgIEV4cGxvaXRpbmcgY2FjaGUgbG9jYWxpdHkgYXQgdGhlIGV4cGVuc2Ugb2YgYWRkaXRpb25hbCBjb2xsaXNpb25zIGZhaWxzCisgIHRvIHBheW9mZiB3aGVuIHRoZSBlbnRyaWVzIGFyZSBhbHJlYWR5IGxvYWRlZCBpbiBjYWNoZSAodGhlIGV4cGVuc2UKKyAgaXMgcGFpZCB3aXRoIG5vIGNvbXBlbnNhdGluZyBiZW5lZml0KS4gIFRoaXMgb2NjdXJzIGluIHNtYWxsIGRpY3Rpb25hcmllcworICB3aGVyZSB0aGUgd2hvbGUgZGljdGlvbmFyeSBmaXRzIGludG8gYSBwYWlyIG9mIGNhY2hlIGxpbmVzLiAgSXQgYWxzbworICBvY2N1cnMgZnJlcXVlbnRseSBpbiBsYXJnZSBkaWN0aW9uYXJpZXMgd2hpY2ggaGF2ZSBhIGNvbW1vbiBhY2Nlc3MgcGF0dGVybgorICB3aGVyZSBzb21lIGtleXMgYXJlIGFjY2Vzc2VkIG11Y2ggbW9yZSBmcmVxdWVudGx5IHRoYW4gb3RoZXJzLiAgVGhlCisgIG1vcmUgcG9wdWxhciBlbnRyaWVzICphbmQqIHRoZWlyIGNvbGxpc2lvbiBjaGFpbnMgdGVuZCB0byByZW1haW4gaW4gY2FjaGUuCiAKLVRoaXMgb3B0aW1pemF0aW9uIHN0cmF0ZWd5IGNhbiBiZSBsZXZlcmFnZWQgaW4gc2V2ZXJhbCB3YXlzOgorICBUbyBleHBsb2l0IGNhY2hlIGxvY2FsaXR5LCBjaGFuZ2UgdGhlIGNvbGxpc2lvbiByZXNvbHV0aW9uIHNlY3Rpb24KKyAgaW4gbG9va2RpY3QoKSBhbmQgbG9va2RpY3Rfc3RyaW5nKCkuICBTZXQgaV49MSBhdCB0aGUgdG9wIG9mIHRoZQorICBsb29wIGFuZCBtb3ZlIHRoZSAgaSA9IChpIDw8IDIpICsgaSArIHBlcnR1cmIgKyAxIHRvIGFuIHVucm9sbGVkCisgIHZlcnNpb24gb2YgdGhlIGxvb3AuCiAKLSogSWYgdGhlIGRpY3Rpb25hcnkgaXMga2VwdCBzcGFyc2UgKHRocm91Z2ggdGhlIHR1bmFibGUgcGFyYW1ldGVycyksCi10aGVuIHRoZSBvY2N1cnJlbmNlIG9mIGFkZGl0aW9uYWwgY29sbGlzaW9ucyBpcyBsZXNzZW5lZC4KLQotKiBJZiBsb29rZGljdCgpIGFuZCBsb29rZGljdF9zdHJpbmcoKSBhcmUgc3BlY2lhbGl6ZWQgZm9yIHNtYWxsIGRpY3RzCi1hbmQgZm9yIGxhcmdlZGljdHMsIHRoZW4gdGhlIHZlcnNpb25zIGZvciBsYXJnZV9kaWN0cyBjYW4gYmUgZ2l2ZW4KLWFuIGFsdGVybmF0ZSBzZWFyY2ggc3RyYXRlZ3kgd2l0aG91dCBpbmNyZWFzaW5nIGNvbGxpc2lvbnMgaW4gc21hbGwgZGljdHMKLXdoaWNoIGFscmVhZHkgaGF2ZSB0aGUgbWF4aW11bSBiZW5lZml0IG9mIGNhY2hlIGxvY2FsaXR5LgotCi0qIElmIHRoZSB1c2UgY2FzZSBmb3IgYSBkaWN0aW9uYXJ5IGlzIGtub3duIHRvIGhhdmUgYSByYW5kb20ga2V5Ci1hY2Nlc3MgcGF0dGVybiAoYXMgb3Bwb3NlZCB0byBhIG1vcmUgY29tbW9uIHBhdHRlcm4gd2l0aCBhIFppcGYncyBsYXcKLWRpc3RyaWJ1dGlvbiksIHRoZW4gdGhlcmUgd2lsbCBiZSBtb3JlIGJlbmVmaXQgZm9yIGxhcmdlIGRpY3Rpb25hcmllcwotYmVjYXVzZSBhbnkgZ2l2ZW4ga2V5IGlzIG5vIG1vcmUgbGlrZWx5IHRoYW4gYW5vdGhlciB0byBhbHJlYWR5IGJlCi1pbiBjYWNoZS4KLQotKiBJbiB1c2UgY2FzZXMgd2l0aCBwYWlyZWQgYWNjZXNzZXMgdG8gdGhlIHNhbWUga2V5LCB0aGUgc2Vjb25kIGFjY2VzcwotaXMgYWx3YXlzIGluIGNhY2hlIGFuZCBnZXRzIG5vIGJlbmVmaXQgZnJvbSBlZmZvcnRzIHRvIGZ1cnRoZXIgaW1wcm92ZQotY2FjaGUgbG9jYWxpdHkuCi0KLU9wdGltaXppbmcgdGhlIFNlYXJjaCBvZiBTbWFsbCBEaWN0aW9uYXJpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotSWYgbG9va2RpY3QoKSBhbmQgbG9va2RpY3Rfc3RyaW5nKCkgYXJlIHNwZWNpYWxpemVkIGZvciBzbWFsbGVyIGRpY3Rpb25hcmllcywKLXRoZW4gYSBjdXN0b20gc2VhcmNoIGFwcHJvYWNoIGNhbiBiZSBpbXBsZW1lbnRlZCB0aGF0IGV4cGxvaXRzIHRoZSBzbWFsbAotc2VhcmNoIHNwYWNlIGFuZCBjYWNoZSBsb2NhbGl0eS4KLQotKiBUaGUgc2ltcGxlc3QgZXhhbXBsZSBpcyBhIGxpbmVhciBzZWFyY2ggb2YgY29udGlndW91cyBlbnRyaWVzLiAgVGhpcyBpcwotICBzaW1wbGUgdG8gaW1wbGVtZW50LCBndWFyYW50ZWVkIHRvIHRlcm1pbmF0ZSByYXBpZGx5LCBuZXZlciBzZWFyY2hlcwotICB0aGUgc2FtZSBlbnRyeSB0d2ljZSwgYW5kIHByZWNsdWRlcyB0aGUgbmVlZCB0byBjaGVjayBmb3IgZHVtbXkgZW50cmllcy4KLQotKiBBIG1vcmUgYWR2YW5jZWQgZXhhbXBsZSBpcyBhIHNlbGYtb3JnYW5pemluZyBzZWFyY2ggc28gdGhhdCB0aGUgbW9zdAotICBmcmVxdWVudGx5IGFjY2Vzc2VkIGVudHJpZXMgZ2V0IHByb2JlZCBmaXJzdC4gIFRoZSBvcmdhbml6YXRpb24KLSAgYWRhcHRzIGlmIHRoZSBhY2Nlc3MgcGF0dGVybiBjaGFuZ2VzIG92ZXIgdGltZS4gIFRyZWFwcyBhcmUgaWRlYWxseQotICBzdWl0ZWQgZm9yIHNlbGYtb3JnYW5pemF0aW9uIHdpdGggdGhlIG1vc3QgY29tbW9uIGVudHJpZXMgYXQgdGhlCi0gIHRvcCBvZiB0aGUgaGVhcCBhbmQgYSByYXBpZCBiaW5hcnkgc2VhcmNoIHBhdHRlcm4uICBNb3N0IHByb2JlcyBhbmQKLSAgcmVzdWx0cyBhcmUgYWxsIGxvY2F0ZWQgYXQgdGhlIHRvcCBvZiB0aGUgdHJlZSBhbGxvd2luZyB0aGVtIGFsbCB0bwotICBiZSBsb2NhdGVkIGluIG9uZSBvciB0d28gY2FjaGUgbGluZXMuCi0KLSogQWxzbywgc21hbGwgZGljdGlvbmFyaWVzIG1heSBiZSBtYWRlIG1vcmUgZGVuc2UsIHBlcmhhcHMgZmlsbGluZyBhbGwKLSAgZWlnaHQgY2VsbHMgdG8gdGFrZSB0aGUgbWF4aW11bSBhZHZhbnRhZ2Ugb2YgdHdvIGNhY2hlIGxpbmVzLgorRm9yIHNwbGl0IHRhYmxlcywgdGhlIGFib3ZlIHdpbGwgYXBwbHkgdG8gdGhlIGtleXMsIGJ1dCB0aGUgdmFsdWUgd2lsbAorYWx3YXlzIGJlIGluIGEgZGlmZmVyZW50IGNhY2hlIGxpbmUgZnJvbSB0aGUga2V5LgogCiAKLVN0cmF0ZWd5IFBhdHRlcm4KLS0tLS0tLS0tLS0tLS0tLS0KLQotQ29uc2lkZXIgYWxsb3dpbmcgdGhlIHVzZXIgdG8gc2V0IHRoZSB0dW5hYmxlIHBhcmFtZXRlcnMgb3IgdG8gc2VsZWN0IGEKLXBhcnRpY3VsYXIgc2VhcmNoIG1ldGhvZC4gIFNpbmNlIHNvbWUgZGljdGlvbmFyeSB1c2UgY2FzZXMgaGF2ZSBrbm93bgotc2l6ZXMgYW5kIGFjY2VzcyBwYXR0ZXJucywgdGhlIHVzZXIgbWF5IGJlIGFibGUgdG8gcHJvdmlkZSB1c2VmdWwgaGludHMuCi0KLTEpIEZvciBleGFtcGxlLCBpZiBtZW1iZXJzaGlwIHRlc3Rpbmcgb3IgbG9va3VwcyBkb21pbmF0ZSBydW50aW1lIGFuZCBtZW1vcnkKLSAgIGlzIG5vdCBhdCBhIHByZW1pdW0sIHRoZSB1c2VyIG1heSBiZW5lZml0IGZyb20gc2V0dGluZyB0aGUgbWF4aW11bSBsb2FkCi0gICByYXRpbyBhdCA1JSBvciAxMCUgaW5zdGVhZCBvZiB0aGUgdXN1YWwgNjYuNyUuICBUaGlzIHdpbGwgc2hhcnBseQotICAgY3VydGFpbCB0aGUgbnVtYmVyIG9mIGNvbGxpc2lvbnMgYnV0IHdpbGwgaW5jcmVhc2UgaXRlcmF0aW9uIHRpbWUuCi0gICBUaGUgYnVpbHRpbiBuYW1lc3BhY2UgaXMgYSBwcmltZSBleGFtcGxlIG9mIGEgZGljdGlvbmFyeSB0aGF0IGNhbgotICAgYmVuZWZpdCBmcm9tIGJlaW5nIGhpZ2hseSBzcGFyc2UuCi0KLTIpIERpY3Rpb25hcnkgY3JlYXRpb24gdGltZSBjYW4gYmUgc2hvcnRlbmVkIGluIGNhc2VzIHdoZXJlIHRoZSB1bHRpbWF0ZQotICAgc2l6ZSBvZiB0aGUgZGljdGlvbmFyeSBpcyBrbm93biBpbiBhZHZhbmNlLiAgVGhlIGRpY3Rpb25hcnkgY2FuIGJlCi0gICBwcmUtc2l6ZWQgc28gdGhhdCBubyByZXNpemUgb3BlcmF0aW9ucyBhcmUgcmVxdWlyZWQgZHVyaW5nIGNyZWF0aW9uLgotICAgTm90IG9ubHkgZG9lcyB0aGlzIHNhdmUgcmVzaXplcywgYnV0IHRoZSBrZXkgaW5zZXJ0aW9uIHdpbGwgZ28KLSAgIG1vcmUgcXVpY2tseSBiZWNhdXNlIHRoZSBmaXJzdCBoYWxmIG9mIHRoZSBrZXlzIHdpbGwgYmUgaW5zZXJ0ZWQgaW50bwotICAgYSBtb3JlIHNwYXJzZSBlbnZpcm9ubWVudCB0aGFuIGJlZm9yZS4gIFRoZSBwcmVjb25kaXRpb25zIGZvciB0aGlzCi0gICBzdHJhdGVneSBhcmlzZSB3aGVuZXZlciBhIGRpY3Rpb25hcnkgaXMgY3JlYXRlZCBmcm9tIGEga2V5IG9yIGl0ZW0KLSAgIHNlcXVlbmNlIGFuZCB0aGUgbnVtYmVyIG9mICp1bmlxdWUqIGtleXMgaXMga25vd24uCi0KLTMpIElmIHRoZSBrZXkgc3BhY2UgaXMgbGFyZ2UgYW5kIHRoZSBhY2Nlc3MgcGF0dGVybiBpcyBrbm93biB0byBiZSByYW5kb20sCi0gICB0aGVuIHNlYXJjaCBzdHJhdGVnaWVzIGV4cGxvaXRpbmcgY2FjaGUgbG9jYWxpdHkgY2FuIGJlIGZydWl0ZnVsLgotICAgVGhlIHByZWNvbmRpdGlvbnMgZm9yIHRoaXMgc3RyYXRlZ3kgYXJpc2UgaW4gc2ltdWxhdGlvbnMgYW5kCi0gICBudW1lcmljYWwgYW5hbHlzaXMuCi0KLTQpIElmIHRoZSBrZXlzIGFyZSBmaXhlZCBhbmQgdGhlIGFjY2VzcyBwYXR0ZXJuIHN0cm9uZ2x5IGZhdm9ycyBzb21lIG9mCi0gICB0aGUga2V5cywgdGhlbiB0aGUgZW50cmllcyBjYW4gYmUgc3RvcmVkIGNvbnRpZ3VvdXNseSBhbmQgYWNjZXNzZWQKLSAgIHdpdGggYSBsaW5lYXIgc2VhcmNoIG9yIHRyZWFwLiAgVGhpcyBleHBsb2l0cyBrbm93bGVkZ2Ugb2YgdGhlIGRhdGEsCi0gICBjYWNoZSBsb2NhbGl0eSwgYW5kIGEgc2ltcGxpZmllZCBzZWFyY2ggcm91dGluZS4gIEl0IGFsc28gZWxpbWluYXRlcwotICAgdGhlIG5lZWQgdG8gdGVzdCBmb3IgZHVtbXkgZW50cmllcyBvbiBlYWNoIHByb2JlLiAgVGhlIHByZWNvbmRpdGlvbnMKLSAgIGZvciB0aGlzIHN0cmF0ZWd5IGFyaXNlIGluIHN5bWJvbCB0YWJsZXMgYW5kIGluIHRoZSBidWlsdGluIGRpY3Rpb25hcnkuCi0KLQotUmVhZG9ubHkgRGljdGlvbmFyaWVzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVNvbWUgZGljdGlvbmFyeSB1c2UgY2FzZXMgcGFzcyB0aHJvdWdoIGEgYnVpbGQgc3RhZ2UgYW5kIHRoZW4gbW92ZSB0byBhCi1tb3JlIGhlYXZpbHkgZXhlcmNpc2VkIGxvb2t1cCBzdGFnZSB3aXRoIG5vIGZ1cnRoZXIgY2hhbmdlcyB0byB0aGUKLWRpY3Rpb25hcnkuCi0KLUFuIGlkZWEgdGhhdCBlbWVyZ2VkIG9uIHB5dGhvbi1kZXYgaXMgdG8gYmUgYWJsZSB0byBjb252ZXJ0IGEgZGljdGlvbmFyeQotdG8gYSByZWFkLW9ubHkgc3RhdGUuICBUaGlzIGNhbiBoZWxwIHByZXZlbnQgcHJvZ3JhbW1pbmcgZXJyb3JzIGFuZCBhbHNvCi1wcm92aWRlIGtub3dsZWRnZSB0aGF0IGNhbiBiZSBleHBsb2l0ZWQgZm9yIGxvb2t1cCBvcHRpbWl6YXRpb24uCi0KLVRoZSBkaWN0aW9uYXJ5IGNhbiBiZSBpbW1lZGlhdGVseSByZWJ1aWx0IChlbGltaW5hdGluZyBkdW1teSBlbnRyaWVzKSwKLXJlc2l6ZWQgKHRvIGFuIGFwcHJvcHJpYXRlIGxldmVsIG9mIHNwYXJzZW5lc3MpLCBhbmQgdGhlIGtleXMgY2FuIGJlCi1qb3N0bGVkICh0byBtaW5pbWl6ZSBjb2xsaXNpb25zKS4gIFRoZSBsb29rZGljdCgpIHJvdXRpbmUgY2FuIHRoZW4KLWVsaW1pbmF0ZSB0aGUgdGVzdCBmb3IgZHVtbXkgZW50cmllcyAoc2F2aW5nIGFib3V0IDEvNCBvZiB0aGUgdGltZQotc3BlbnQgaW4gdGhlIGNvbGxpc2lvbiByZXNvbHV0aW9uIGxvb3ApLgotCi1BbiBhZGRpdGlvbmFsIHBvc3NpYmlsaXR5IGlzIHRvIGluc2VydCBsaW5rcyBpbnRvIHRoZSBlbXB0eSBzcGFjZXMKLXNvIHRoYXQgZGljdGlvbmFyeSBpdGVyYXRpb24gY2FuIHByb2NlZWQgaW4gbGVuKGQpIHN0ZXBzIGluc3RlYWQgb2YKLShtcC0+bWFzayArIDEpIHN0ZXBzLiAgQWx0ZXJuYXRpdmVseSwgYSBzZXBhcmF0ZSB0dXBsZSBvZiBrZXlzIGNhbiBiZQota2VwdCBqdXN0IGZvciBpdGVyYXRpb24uCi0KLQotQ2FjaGluZyBMb29rdXBzCi0tLS0tLS0tLS0tLS0tLS0KLVRoZSBpZGVhIGlzIHRvIGV4cGxvaXQga2V5IGFjY2VzcyBwYXR0ZXJucyBieSBhbnRpY2lwYXRpbmcgZnV0dXJlIGxvb2t1cHMKLWJhc2VkIG9uIHByZXZpb3VzIGxvb2t1cHMuCi0KLVRoZSBzaW1wbGVzdCBpbmNhcm5hdGlvbiBpcyB0byBzYXZlIHRoZSBtb3N0IHJlY2VudGx5IGFjY2Vzc2VkIGVudHJ5LgotVGhpcyBnaXZlcyBvcHRpbWFsIHBlcmZvcm1hbmNlIGZvciB1c2UgY2FzZXMgd2hlcmUgZXZlcnkgZ2V0IGlzIGZvbGxvd2VkCi1ieSBhIHNldCBvciBkZWwgdG8gdGhlIHNhbWUga2V5LgpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9kaWN0b2JqZWN0LmMgYi9PYmplY3RzL2RpY3RvYmplY3QuYwppbmRleCAyN2RlMTBkLi5hZWY4ZDEwIDEwMDY0NAotLS0gYS9PYmplY3RzL2RpY3RvYmplY3QuYworKysgYi9PYmplY3RzL2RpY3RvYmplY3QuYwpAQCAtNyw5ICs3LDkzIEBACiAgICB0dW5pbmcgZGljdGlvbmFyaWVzLCBhbmQgc2V2ZXJhbCBpZGVhcyBmb3IgcG9zc2libGUgb3B0aW1pemF0aW9ucy4KICovCiAKKworLyoKK1RoZXJlIGFyZSBmb3VyIGtpbmRzIG9mIHNsb3RzIGluIHRoZSB0YWJsZToKKworMS4gVW51c2VkLiAgbWVfa2V5ID09IG1lX3ZhbHVlID09IE5VTEwKKyAgIERvZXMgbm90IGhvbGQgYW4gYWN0aXZlIChrZXksIHZhbHVlKSBwYWlyIG5vdyBhbmQgbmV2ZXIgZGlkLiAgVW51c2VkIGNhbgorICAgdHJhbnNpdGlvbiB0byBBY3RpdmUgdXBvbiBrZXkgaW5zZXJ0aW9uLiAgVGhpcyBpcyB0aGUgb25seSBjYXNlIGluIHdoaWNoCisgICBtZV9rZXkgaXMgTlVMTCwgYW5kIGlzIGVhY2ggc2xvdCdzIGluaXRpYWwgc3RhdGUuCisKKzIuIEFjdGl2ZS4gIG1lX2tleSAhPSBOVUxMIGFuZCBtZV9rZXkgIT0gZHVtbXkgYW5kIG1lX3ZhbHVlICE9IE5VTEwKKyAgIEhvbGRzIGFuIGFjdGl2ZSAoa2V5LCB2YWx1ZSkgcGFpci4gIEFjdGl2ZSBjYW4gdHJhbnNpdGlvbiB0byBEdW1teSBvcgorICAgUGVuZGluZyB1cG9uIGtleSBkZWxldGlvbiAoZm9yIGNvbWJpbmVkIGFuZCBzcGxpdCB0YWJsZXMgcmVzcGVjdGl2ZWx5KS4KKyAgIFRoaXMgaXMgdGhlIG9ubHkgY2FzZSBpbiB3aGljaCBtZV92YWx1ZSAhPSBOVUxMLgorCiszLiBEdW1teS4gIG1lX2tleSA9PSBkdW1teSBhbmQgbWVfdmFsdWUgPT0gTlVMTAorICAgUHJldmlvdXNseSBoZWxkIGFuIGFjdGl2ZSAoa2V5LCB2YWx1ZSkgcGFpciwgYnV0IHRoYXQgd2FzIGRlbGV0ZWQgYW5kIGFuCisgICBhY3RpdmUgcGFpciBoYXMgbm90IHlldCBvdmVyd3JpdHRlbiB0aGUgc2xvdC4gIER1bW15IGNhbiB0cmFuc2l0aW9uIHRvCisgICBBY3RpdmUgdXBvbiBrZXkgaW5zZXJ0aW9uLiAgRHVtbXkgc2xvdHMgY2Fubm90IGJlIG1hZGUgVW51c2VkIGFnYWluCisgICAoY2Fubm90IGhhdmUgbWVfa2V5IHNldCB0byBOVUxMKSwgZWxzZSB0aGUgcHJvYmUgc2VxdWVuY2UgaW4gY2FzZSBvZgorICAgY29sbGlzaW9uIHdvdWxkIGhhdmUgbm8gd2F5IHRvIGtub3cgdGhleSB3ZXJlIG9uY2UgYWN0aXZlLgorCis0LiBQZW5kaW5nLiBOb3QgeWV0IGluc2VydGVkIG9yIGRlbGV0ZWQgZnJvbSBhIHNwbGl0LXRhYmxlLgorICAga2V5ICE9IE5VTEwsIGtleSAhPSBkdW1teSBhbmQgdmFsdWUgPT0gTlVMTAorCitUaGUgRGljdE9iamVjdCBjYW4gYmUgaW4gb25lIG9mIHR3byBmb3Jtcy4KK0VpdGhlcjoKKyAgQSBjb21iaW5lZCB0YWJsZToKKyAgICBtYV92YWx1ZXMgPT0gTlVMTCwgZGtfcmVmY250ID09IDEuCisgICAgVmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIG1lX3ZhbHVlIGZpZWxkIG9mIHRoZSBQeURpY3RLZXlzT2JqZWN0LgorICAgIFNsb3Qga2luZCA0IGlzIG5vdCBhbGxvd2VkIGkuZS4KKyAgICAgICAga2V5ICE9IE5VTEwsIGtleSAhPSBkdW1teSBhbmQgdmFsdWUgPT0gTlVMTCBpcyBpbGxlZ2FsLgorT3I6CisgIEEgc3BsaXQgdGFibGU6CisgICAgbWFfdmFsdWVzICE9IE5VTEwsIGRrX3JlZmNudCA+PSAxCisgICAgVmFsdWVzIGFyZSBzdG9yZWQgaW4gdGhlIG1hX3ZhbHVlcyBhcnJheS4KKyAgICBPbmx5IHN0cmluZyAodW5pY29kZSkga2V5cyBhcmUgYWxsb3dlZCwgbm8gPGR1bW15PiBrZXlzIGFyZSBwcmVzZW50LgorCitOb3RlOiAucG9waXRlbSgpIGFidXNlcyB0aGUgbWVfaGFzaCBmaWVsZCBvZiBhbiBVbnVzZWQgb3IgRHVtbXkgc2xvdCB0bworaG9sZCBhIHNlYXJjaCBmaW5nZXIuICBUaGUgbWVfaGFzaCBmaWVsZCBvZiBVbnVzZWQgb3IgRHVtbXkgc2xvdHMgaGFzIG5vCittZWFuaW5nIG90aGVyd2lzZS4gQXMgYSBjb25zZXF1ZW5jZSBvZiB0aGlzIHBvcGl0ZW0gYWx3YXlzIGNvbnZlcnRzIHRoZSBkaWN0Cit0byB0aGUgY29tYmluZWQtdGFibGUgZm9ybS4KKyovCisKKy8qIFB5RGljdF9NSU5TSVpFX1NQTElUIGlzIHRoZSBtaW5pbXVtIHNpemUgb2YgYSBzcGxpdCBkaWN0aW9uYXJ5LgorICogSXQgbXVzdCBiZSBhIHBvd2VyIG9mIDIsIGFuZCBhdCBsZWFzdCA0LgorICogUmVzaXppbmcgb2Ygc3BsaXQgZGljdGlvbmFyaWVzIGlzIHZlcnkgcmFyZSwgc28gdGhlIHNhdmluZyBtZW1vcnkgaXMgbW9yZQorICogaW1wb3J0YW50IHRoYW4gdGhlIGNvc3Qgb2YgcmVzaXppbmcuCisgKi8KKyNkZWZpbmUgUHlEaWN0X01JTlNJWkVfU1BMSVQgNAorCisvKiBQeURpY3RfTUlOU0laRV9DT01CSU5FRCBpcyB0aGUgc3RhcnRpbmcgc2l6ZSBmb3IgYW55IG5ldywgbm9uLXNwbGl0IGRpY3QuCisgKiA4IGFsbG93cyBkaWN0cyB3aXRoIG5vIG1vcmUgdGhhbiA1IGFjdGl2ZSBlbnRyaWVzOyBleHBlcmltZW50cyBzdWdnZXN0ZWQKKyAqIHRoaXMgc3VmZmljZXMgZm9yIHRoZSBtYWpvcml0eSBvZiBkaWN0cyAoY29uc2lzdGluZyBtb3N0bHkgb2YgdXN1YWxseS1zbWFsbAorICogZGljdHMgY3JlYXRlZCB0byBwYXNzIGtleXdvcmQgYXJndW1lbnRzKS4KKyAqIE1ha2luZyB0aGlzIDgsIHJhdGhlciB0aGFuIDQgcmVkdWNlcyB0aGUgbnVtYmVyIG9mIHJlc2l6ZXMgZm9yIG1vc3QKKyAqIGRpY3Rpb25hcmllcywgd2l0aG91dCBhbnkgc2lnbmlmaWNhbnQgZXh0cmEgbWVtb3J5IHVzZS4KKyAqLworI2RlZmluZSBQeURpY3RfTUlOU0laRV9DT01CSU5FRCA4CisKICNpbmNsdWRlICJQeXRob24uaCIKICNpbmNsdWRlICJzdHJpbmdsaWIvZXEuaCIKIAordHlwZWRlZiBzdHJ1Y3QgeworICAgIC8qIENhY2hlZCBoYXNoIGNvZGUgb2YgbWVfa2V5LiAqLworICAgIFB5X2hhc2hfdCBtZV9oYXNoOworICAgIFB5T2JqZWN0ICptZV9rZXk7CisgICAgUHlPYmplY3QgKm1lX3ZhbHVlOyAvKiBUaGlzIGZpZWxkIGlzIG9ubHkgbWVhbmluZ2Z1bCBmb3IgY29tYmluZWQgdGFibGVzICovCit9IFB5RGljdEtleUVudHJ5OworCit0eXBlZGVmIFB5RGljdEtleUVudHJ5ICooKmRpY3RfbG9va3VwX2Z1bmMpCisoUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwgUHlfaGFzaF90IGhhc2gsIFB5T2JqZWN0ICoqKnZhbHVlX2FkZHIpOworCitzdHJ1Y3QgX2RpY3RrZXlzb2JqZWN0IHsKKyAgICBQeV9zc2l6ZV90IGRrX3JlZmNudDsKKyAgICBQeV9zc2l6ZV90IGRrX3NpemU7CisgICAgZGljdF9sb29rdXBfZnVuYyBka19sb29rdXA7CisgICAgUHlfc3NpemVfdCBka191c2FibGU7CisgICAgUHlEaWN0S2V5RW50cnkgZGtfZW50cmllc1sxXTsKK307CisKKworLyoKK1RvIGVuc3VyZSB0aGUgbG9va3VwIGFsZ29yaXRobSB0ZXJtaW5hdGVzLCB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBVbnVzZWQKK3Nsb3QgKE5VTEwga2V5KSBpbiB0aGUgdGFibGUuCitUbyBhdm9pZCBzbG93aW5nIGRvd24gbG9va3VwcyBvbiBhIG5lYXItZnVsbCB0YWJsZSwgd2UgcmVzaXplIHRoZSB0YWJsZSB3aGVuCitpdCdzIFVTQUJMRV9GUkFDVElPTiAoY3VycmVudGx5IHR3by10aGlyZHMpIGZ1bGwuCisqLwogCiAvKiBTZXQgYSBrZXkgZXJyb3Igd2l0aCB0aGUgc3BlY2lmaWVkIGFyZ3VtZW50LCB3cmFwcGluZyBpdCBpbiBhCiAgKiB0dXBsZSBhdXRvbWF0aWNhbGx5IHNvIHRoYXQgdHVwbGUga2V5cyBhcmUgbm90IHVucGFja2VkIGFzIHRoZQpAQCAtMjUsMTAgKzEwOSw2IEBACiAgICAgUHlfREVDUkVGKHR1cCk7CiB9CiAKLS8qIERlZmluZSB0aGlzIG91dCBpZiB5b3UgZG9uJ3Qgd2FudCBjb252ZXJzaW9uIHN0YXRpc3RpY3Mgb24gZXhpdC4gKi8KLSN1bmRlZiBTSE9XX0NPTlZFUlNJT05fQ09VTlRTCi0KLS8qIFNlZSBsYXJnZSBjb21tZW50IGJsb2NrIGJlbG93LiAgVGhpcyBtdXN0IGJlID49IDEuICovCiAjZGVmaW5lIFBFUlRVUkJfU0hJRlQgNQogCiAvKgpAQCAtMTI2LDggKzIwNiwxMyBAQAogCiAqLwogCi0vKiBPYmplY3QgdXNlZCBhcyBkdW1teSBrZXkgdG8gZmlsbCBkZWxldGVkIGVudHJpZXMgKi8KLXN0YXRpYyBQeU9iamVjdCAqZHVtbXkgPSBOVUxMOyAvKiBJbml0aWFsaXplZCBieSBmaXJzdCBjYWxsIHRvIG5ld1B5RGljdE9iamVjdCgpICovCisvKiBPYmplY3QgdXNlZCBhcyBkdW1teSBrZXkgdG8gZmlsbCBkZWxldGVkIGVudHJpZXMKKyAqIFRoaXMgY291bGQgYmUgYW55IHVuaXF1ZSBvYmplY3QsCisgKiB1c2UgYSBjdXN0b20gdHlwZSBpbiBvcmRlciB0byBtaW5pbWlzZSBjb3VwbGluZy4KKyovCitzdGF0aWMgUHlPYmplY3QgX2R1bW15X3N0cnVjdDsKKworI2RlZmluZSBkdW1teSAoJl9kdW1teV9zdHJ1Y3QpCiAKICNpZmRlZiBQeV9SRUZfREVCVUcKIFB5T2JqZWN0ICoKQEAgLTEzOCw3NyArMjIzLDE3IEBACiAjZW5kaWYKIAogLyogZm9yd2FyZCBkZWNsYXJhdGlvbnMgKi8KLXN0YXRpYyBQeURpY3RFbnRyeSAqCi1sb29rZGljdF91bmljb2RlKFB5RGljdE9iamVjdCAqbXAsIFB5T2JqZWN0ICprZXksIFB5X2hhc2hfdCBoYXNoKTsKK3N0YXRpYyBQeURpY3RLZXlFbnRyeSAqbG9va2RpY3QoUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfaGFzaF90IGhhc2gsIFB5T2JqZWN0ICoqKnZhbHVlX2FkZHIpOworc3RhdGljIFB5RGljdEtleUVudHJ5ICpsb29rZGljdF91bmljb2RlKFB5RGljdE9iamVjdCAqbXAsIFB5T2JqZWN0ICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfaGFzaF90IGhhc2gsIFB5T2JqZWN0ICoqKnZhbHVlX2FkZHIpOworc3RhdGljIFB5RGljdEtleUVudHJ5ICoKK2xvb2tkaWN0X3VuaWNvZGVfbm9kdW1teShQeURpY3RPYmplY3QgKm1wLCBQeU9iamVjdCAqa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgIFB5X2hhc2hfdCBoYXNoLCBQeU9iamVjdCAqKip2YWx1ZV9hZGRyKTsKK3N0YXRpYyBQeURpY3RLZXlFbnRyeSAqbG9va2RpY3Rfc3BsaXQoUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfaGFzaF90IGhhc2gsIFB5T2JqZWN0ICoqKnZhbHVlX2FkZHIpOwogCi0jaWZkZWYgU0hPV19DT05WRVJTSU9OX0NPVU5UUwotc3RhdGljIGxvbmcgY3JlYXRlZCA9IDBMOwotc3RhdGljIGxvbmcgY29udmVydGVkID0gMEw7Ci0KLXN0YXRpYyB2b2lkCi1zaG93X2NvdW50cyh2b2lkKQotewotICAgIGZwcmludGYoc3RkZXJyLCAiY3JlYXRlZCAlbGQgc3RyaW5nIGRpY3RzXG4iLCBjcmVhdGVkKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgImNvbnZlcnRlZCAlbGQgdG8gbm9ybWFsIGRpY3RzXG4iLCBjb252ZXJ0ZWQpOwotICAgIGZwcmludGYoc3RkZXJyLCAiJS4yZiUlIGNvbnZlcnNpb24gcmF0ZVxuIiwgKDEwMC4wKmNvbnZlcnRlZCkvY3JlYXRlZCk7Ci19Ci0jZW5kaWYKLQotLyogRGVidWcgc3RhdGlzdGljIHRvIGNvbXBhcmUgYWxsb2NhdGlvbnMgd2l0aCByZXVzZSB0aHJvdWdoIHRoZSBmcmVlIGxpc3QgKi8KLSN1bmRlZiBTSE9XX0FMTE9DX0NPVU5UCi0jaWZkZWYgU0hPV19BTExPQ19DT1VOVAotc3RhdGljIHNpemVfdCBjb3VudF9hbGxvYyA9IDA7Ci1zdGF0aWMgc2l6ZV90IGNvdW50X3JldXNlID0gMDsKLQotc3RhdGljIHZvaWQKLXNob3dfYWxsb2Modm9pZCkKLXsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIkRpY3QgYWxsb2NhdGlvbnM6ICUiIFBZX0ZPUk1BVF9TSVpFX1QgImRcbiIsCi0gICAgICAgIGNvdW50X2FsbG9jKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIkRpY3QgcmV1c2UgdGhyb3VnaCBmcmVlbGlzdDogJSIgUFlfRk9STUFUX1NJWkVfVAotICAgICAgICAiZFxuIiwgY291bnRfcmV1c2UpOwotICAgIGZwcmludGYoc3RkZXJyLCAiJS4yZiUlIHJldXNlIHJhdGVcblxuIiwKLSAgICAgICAgKDEwMC4wKmNvdW50X3JldXNlLyhjb3VudF9hbGxvYytjb3VudF9yZXVzZSkpKTsKLX0KLSNlbmRpZgotCi0vKiBEZWJ1ZyBzdGF0aXN0aWMgdG8gY291bnQgR0MgdHJhY2tpbmcgb2YgZGljdHMgKi8KLSNpZmRlZiBTSE9XX1RSQUNLX0NPVU5UCi1zdGF0aWMgUHlfc3NpemVfdCBjb3VudF91bnRyYWNrZWQgPSAwOwotc3RhdGljIFB5X3NzaXplX3QgY291bnRfdHJhY2tlZCA9IDA7Ci0KLXN0YXRpYyB2b2lkCi1zaG93X3RyYWNrKHZvaWQpCi17Ci0gICAgZnByaW50ZihzdGRlcnIsICJEaWN0cyBjcmVhdGVkOiAlIiBQWV9GT1JNQVRfU0laRV9UICJkXG4iLAotICAgICAgICBjb3VudF90cmFja2VkICsgY291bnRfdW50cmFja2VkKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIkRpY3RzIHRyYWNrZWQgYnkgdGhlIEdDOiAlIiBQWV9GT1JNQVRfU0laRV9UCi0gICAgICAgICJkXG4iLCBjb3VudF90cmFja2VkKTsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiUuMmYlJSBkaWN0IHRyYWNraW5nIHJhdGVcblxuIiwKLSAgICAgICAgKDEwMC4wKmNvdW50X3RyYWNrZWQvKGNvdW50X3VudHJhY2tlZCtjb3VudF90cmFja2VkKSkpOwotfQotI2VuZGlmCi0KLQotLyogSW5pdGlhbGl6YXRpb24gbWFjcm9zLgotICAgVGhlcmUgYXJlIHR3byB3YXlzIHRvIGNyZWF0ZSBhIGRpY3Q6ICBQeURpY3RfTmV3KCkgaXMgdGhlIG1haW4gQyBBUEkKLSAgIGZ1bmN0aW9uLCBhbmQgdGhlIHRwX25ldyBzbG90IG1hcHMgdG8gZGljdF9uZXcoKS4gIEluIHRoZSBsYXR0ZXIgY2FzZSB3ZQotICAgY2FuIHNhdmUgYSBsaXR0bGUgdGltZSBvdmVyIHdoYXQgUHlEaWN0X05ldyBkb2VzIGJlY2F1c2UgaXQncyBndWFyYW50ZWVkCi0gICB0aGF0IHRoZSBQeURpY3RPYmplY3Qgc3RydWN0IGlzIGFscmVhZHkgemVyb2VkIG91dC4KLSAgIEV2ZXJ5b25lIGV4Y2VwdCBkaWN0X25ldygpIHNob3VsZCB1c2UgRU1QVFlfVE9fTUlOU0laRSAodW5sZXNzIHRoZXkgaGF2ZQotICAgYW4gZXhjZWxsZW50IHJlYXNvbiBub3QgdG8pLgotKi8KLQotI2RlZmluZSBJTklUX05PTlpFUk9fRElDVF9TTE9UUyhtcCkgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIChtcCktPm1hX3RhYmxlID0gKG1wKS0+bWFfc21hbGx0YWJsZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIChtcCktPm1hX21hc2sgPSBQeURpY3RfTUlOU0laRSAtIDE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gd2hpbGUoMCkKLQotI2RlZmluZSBFTVBUWV9UT19NSU5TSVpFKG1wKSBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIG1lbXNldCgobXApLT5tYV9zbWFsbHRhYmxlLCAwLCBzaXplb2YoKG1wKS0+bWFfc21hbGx0YWJsZSkpOyAgICAgICAgXAotICAgIChtcCktPm1hX3VzZWQgPSAobXApLT5tYV9maWxsID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIElOSVRfTk9OWkVST19ESUNUX1NMT1RTKG1wKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gd2hpbGUoMCkKK3N0YXRpYyBpbnQgZGljdHJlc2l6ZShQeURpY3RPYmplY3QgKm1wLCBQeV9zc2l6ZV90IG1pbnVzZWQpOwogCiAvKiBEaWN0aW9uYXJ5IHJldXNlIHNjaGVtZSB0byBzYXZlIGNhbGxzIHRvIG1hbGxvYywgZnJlZSwgYW5kIG1lbXNldCAqLwogI2lmbmRlZiBQeURpY3RfTUFYRlJFRUxJU1QKQEAgLTIxNyw3MyArMjQyLDE5NCBAQAogc3RhdGljIFB5RGljdE9iamVjdCAqZnJlZV9saXN0W1B5RGljdF9NQVhGUkVFTElTVF07CiBzdGF0aWMgaW50IG51bWZyZWUgPSAwOwogCi12b2lkCi1QeURpY3RfRmluaSh2b2lkKQoraW50CitQeURpY3RfQ2xlYXJGcmVlTGlzdCh2b2lkKQogewogICAgIFB5RGljdE9iamVjdCAqb3A7Ci0KKyAgICBpbnQgcmV0ID0gbnVtZnJlZTsKICAgICB3aGlsZSAobnVtZnJlZSkgewogICAgICAgICBvcCA9IGZyZWVfbGlzdFstLW51bWZyZWVdOwogICAgICAgICBhc3NlcnQoUHlEaWN0X0NoZWNrRXhhY3Qob3ApKTsKICAgICAgICAgUHlPYmplY3RfR0NfRGVsKG9wKTsKICAgICB9CisgICAgcmV0dXJuIHJldDsKIH0KIAotUHlPYmplY3QgKgotUHlEaWN0X05ldyh2b2lkKQorLyogUHJpbnQgc3VtbWFyeSBpbmZvIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGUgb3B0aW1pemVkIGFsbG9jYXRvciAqLwordm9pZAorX1B5RGljdF9EZWJ1Z01hbGxvY1N0YXRzKEZJTEUgKm91dCkKIHsKLSAgICByZWdpc3RlciBQeURpY3RPYmplY3QgKm1wOwotICAgIGlmIChkdW1teSA9PSBOVUxMKSB7IC8qIEF1dG8taW5pdGlhbGl6ZSBkdW1teSAqLwotICAgICAgICBkdW1teSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCI8ZHVtbXkga2V5PiIpOwotICAgICAgICBpZiAoZHVtbXkgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotI2lmZGVmIFNIT1dfQ09OVkVSU0lPTl9DT1VOVFMKLSAgICAgICAgUHlfQXRFeGl0KHNob3dfY291bnRzKTsKLSNlbmRpZgotI2lmZGVmIFNIT1dfQUxMT0NfQ09VTlQKLSAgICAgICAgUHlfQXRFeGl0KHNob3dfYWxsb2MpOwotI2VuZGlmCi0jaWZkZWYgU0hPV19UUkFDS19DT1VOVAotICAgICAgICBQeV9BdEV4aXQoc2hvd190cmFjayk7Ci0jZW5kaWYKKyAgICBfUHlEZWJ1Z0FsbG9jYXRvclN0YXRzKG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcmVlIFB5RGljdE9iamVjdCIsIG51bWZyZWUsIHNpemVvZihQeURpY3RPYmplY3QpKTsKK30KKworCit2b2lkCitQeURpY3RfRmluaSh2b2lkKQoreworICAgIFB5RGljdF9DbGVhckZyZWVMaXN0KCk7Cit9CisKKyNkZWZpbmUgREtfREVCVUdfSU5DUkVGIF9QeV9JTkNfUkVGVE9UQUwgX1B5X1JFRl9ERUJVR19DT01NQQorI2RlZmluZSBES19ERUJVR19ERUNSRUYgX1B5X0RFQ19SRUZUT1RBTCBfUHlfUkVGX0RFQlVHX0NPTU1BCisKKyNkZWZpbmUgREtfSU5DUkVGKGRrKSAoREtfREVCVUdfSU5DUkVGICsrKGRrKS0+ZGtfcmVmY250KQorI2RlZmluZSBES19ERUNSRUYoZGspIGlmIChES19ERUJVR19ERUNSRUYgKC0tKGRrKS0+ZGtfcmVmY250KSA9PSAwKSBmcmVlX2tleXNfb2JqZWN0KGRrKQorI2RlZmluZSBES19TSVpFKGRrKSAoKGRrKS0+ZGtfc2l6ZSkKKyNkZWZpbmUgREtfTUFTSyhkaykgKCgoZGspLT5ka19zaXplKS0xKQorI2RlZmluZSBJU19QT1dFUl9PRl8yKHgpICgoKHgpICYgKHgtMSkpID09IDApCisKKy8qIFVTQUJMRV9GUkFDVElPTiBpcyB0aGUgbWF4aW11bSBkaWN0aW9uYXJ5IGxvYWQuCisgKiBDdXJyZW50bHkgc2V0IHRvICgybisxKS8zLiBJbmNyZWFzaW5nIHRoaXMgcmF0aW8gbWFrZXMgZGljdGlvbmFyaWVzIG1vcmUKKyAqIGRlbnNlIHJlc3VsdGluZyBpbiBtb3JlIGNvbGxpc2lvbnMuICBEZWNyZWFzaW5nIGl0IGltcHJvdmVzIHNwYXJzZW5lc3MKKyAqIGF0IHRoZSBleHBlbnNlIG9mIHNwcmVhZGluZyBlbnRyaWVzIG92ZXIgbW9yZSBjYWNoZSBsaW5lcyBhbmQgYXQgdGhlCisgKiBjb3N0IG9mIHRvdGFsIG1lbW9yeSBjb25zdW1lZC4KKyAqCisgKiBVU0FCTEVfRlJBQ1RJT04gbXVzdCBvYmV5IHRoZSBmb2xsb3dpbmc6CisgKiAgICAgKDAgPCBVU0FCTEVfRlJBQ1RJT04obikgPCBuKSBmb3IgYWxsIG4gPj0gMgorICoKKyAqIFVTQUJMRV9GUkFDVElPTiBzaG91bGQgYmUgdmVyeSBxdWljayB0byBjYWxjdWxhdGUuCisgKiBGcmFjdGlvbnMgYXJvdW5kIDUvOCB0byAyLzMgc2VlbSB0byB3b3JrIHdlbGwgaW4gcHJhY3RpY2UuCisgKi8KKworLyogVXNlICgybisxKS8zIHJhdGhlciB0aGFuIDJuKzMgYmVjYXVzZTogaXQgbWFrZXMgbm8gZGlmZmVyZW5jZSBmb3IKKyAqIGNvbWJpbmVkIHRhYmxlcyAodGhlIHR3byBmcmFjdGlvbnMgcm91bmQgdG8gdGhlIHNhbWUgbnVtYmVyIG4gPCApLAorICogYnV0IDIqNC8zIGlzIDIgd2hlcmVhcyAoMio0KzEpLzMgaXMgMyB3aGljaCBwb3RlbnRpYWxseSBzYXZlcyBxdWl0ZQorICogYSBsb3Qgb2Ygc3BhY2UgZm9yIHNtYWxsLCBzcGxpdCB0YWJsZXMgKi8KKyNkZWZpbmUgVVNBQkxFX0ZSQUNUSU9OKG4pICgoKChuKSA8PCAxKSsxKS8zKQorCisvKiBBbHRlcm5hdGl2ZSBmcmFjdGlvbiB0aGF0IGlzIG90aGVyd2lzZSBjbG9zZSBlbm91Z2ggdG8gKDJuKzEpLzMgdG8gbWFrZQorICogbGl0dGxlIGRpZmZlcmVuY2UuIDggKiAyLzMgPT0gOCAqIDUvOCA9PSA1LiAxNiAqIDIvMyA9PSAxNiAqIDUvOCA9PSAxMC4KKyAqIDMyICogMi8zID0gMjEsIDMyICogNS84ID0gMjAuCisgKiBJdHMgYWR2YW50YWdlIGlzIHRoYXQgaXQgaXMgZmFzdGVyIHRvIGNvbXB1dGUgb24gbWFjaGluZXMgd2l0aCBzbG93IGRpdmlzaW9uLgorICogI2RlZmluZSBVU0FCTEVfRlJBQ1RJT04obikgKCgobikgPj4gMSkgKyAoKG4pID4+IDIpIC0gKChuKSA+PiAzKSkKKyovCisKKy8qIEdST1dUSF9SQVRFLiBHcm93dGggcmF0ZSB1cG9uIGhpdHRpbmcgbWF4aW11bSBsb2FkLiAgQ3VycmVudGx5IHNldCB0byAqMi4KKyAqIFJhaXNpbmcgdGhpcyB0byAqNCBkb3VibGVzIG1lbW9yeSBjb25zdW1wdGlvbiBkZXBlbmRpbmcgb24gdGhlIHNpemUgb2YKKyAqIHRoZSBkaWN0aW9uYXJ5LCBidXQgcmVzdWx0cyBpbiBoYWxmIHRoZSBudW1iZXIgb2YgcmVzaXplcywgbGVzcyBlZmZvcnQgdG8KKyAqIHJlc2l6ZSBhbmQgYmV0dGVyIHNwYXJzZW5lc3MgZm9yIHNvbWUgKGJ1dCBub3QgYWxsIGRpY3Qgc2l6ZXMpLgorICogU2V0dGluZyB0byAqNCBlbGltaW5hdGVzIGV2ZXJ5IG90aGVyIHJlc2l6ZSBzdGVwLgorICogR1JPV1RIX1JBVEUgd2FzIHNldCB0byAqNCB1cCB0byB2ZXJzaW9uIDMuMi4KKyAqLworI2RlZmluZSBHUk9XVEhfUkFURSh4KSAoKHgpICogMikKKworI2RlZmluZSBFTlNVUkVfQUxMT1dTX0RFTEVUSU9OUyhkKSBcCisgICAgaWYgKChkKS0+bWFfa2V5cy0+ZGtfbG9va3VwID09IGxvb2tkaWN0X3VuaWNvZGVfbm9kdW1teSkgeyBcCisgICAgICAgIChkKS0+bWFfa2V5cy0+ZGtfbG9va3VwID0gbG9va2RpY3RfdW5pY29kZTsgXAogICAgIH0KKworLyogVGhpcyBpbW11dGFibGUsIGVtcHR5IFB5RGljdEtleXNPYmplY3QgaXMgdXNlZCBmb3IgUHlEaWN0X0NsZWFyKCkKKyAqICh3aGljaCBjYW5ub3QgZmFpbCBhbmQgdGh1cyBjYW4gZG8gbm8gYWxsb2NhdGlvbikuCisgKi8KK3N0YXRpYyBQeURpY3RLZXlzT2JqZWN0IGVtcHR5X2tleXNfc3RydWN0ID0geworICAgICAgICAyLCAvKiBka19yZWZjbnQgMSBmb3IgdGhpcyBzdHJ1Y3QsIDEgZm9yIGR1bW15X3N0cnVjdCAqLworICAgICAgICAxLCAvKiBka19zaXplICovCisgICAgICAgIGxvb2tkaWN0X3NwbGl0LCAvKiBka19sb29rdXAgKi8KKyAgICAgICAgMCwgLyogZGtfdXNhYmxlIChpbW11dGFibGUpICovCisgICAgICAgIHsKKyAgICAgICAgICAgIHsgMCwgMCwgMCB9IC8qIGRrX2VudHJpZXMgKGVtcHR5KSAqLworICAgICAgICB9Cit9OworCitzdGF0aWMgUHlPYmplY3QgKmVtcHR5X3ZhbHVlc1sxXSA9IHsgTlVMTCB9OworCisjZGVmaW5lIFB5X0VNUFRZX0tFWVMgJmVtcHR5X2tleXNfc3RydWN0CisKK3N0YXRpYyBQeURpY3RLZXlzT2JqZWN0ICpuZXdfa2V5c19vYmplY3QoUHlfc3NpemVfdCBzaXplKQoreworICAgIFB5RGljdEtleXNPYmplY3QgKmRrOworICAgIFB5X3NzaXplX3QgaTsKKyAgICBQeURpY3RLZXlFbnRyeSAqZXAwOworCisgICAgYXNzZXJ0KHNpemUgPj0gUHlEaWN0X01JTlNJWkVfU1BMSVQpOworICAgIGFzc2VydChJU19QT1dFUl9PRl8yKHNpemUpKTsKKyAgICBkayA9IFB5TWVtX01BTExPQyhzaXplb2YoUHlEaWN0S2V5c09iamVjdCkgKworICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihQeURpY3RLZXlFbnRyeSkgKiAoc2l6ZS0xKSk7CisgICAgaWYgKGRrID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIERLX0RFQlVHX0lOQ1JFRiBkay0+ZGtfcmVmY250ID0gMTsKKyAgICBkay0+ZGtfc2l6ZSA9IHNpemU7CisgICAgZGstPmRrX3VzYWJsZSA9IFVTQUJMRV9GUkFDVElPTihzaXplKTsKKyAgICBlcDAgPSAmZGstPmRrX2VudHJpZXNbMF07CisgICAgLyogSGFzaCB2YWx1ZSBvZiBzbG90IDAgaXMgdXNlZCBieSBwb3BpdGVtLCBzbyBpdCBtdXN0IGJlIGluaXRpYWxpemVkICovCisgICAgZXAwLT5tZV9oYXNoID0gMDsKKyAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIGVwMFtpXS5tZV9rZXkgPSBOVUxMOworICAgICAgICBlcDBbaV0ubWVfdmFsdWUgPSBOVUxMOworICAgIH0KKyAgICBkay0+ZGtfbG9va3VwID0gbG9va2RpY3RfdW5pY29kZV9ub2R1bW15OworICAgIHJldHVybiBkazsKK30KKworc3RhdGljIHZvaWQKK2ZyZWVfa2V5c19vYmplY3QoUHlEaWN0S2V5c09iamVjdCAqa2V5cykKK3sKKyAgICBQeURpY3RLZXlFbnRyeSAqZW50cmllcyA9ICZrZXlzLT5ka19lbnRyaWVzWzBdOworICAgIFB5X3NzaXplX3QgaSwgbjsKKyAgICBmb3IgKGkgPSAwLCBuID0gREtfU0laRShrZXlzKTsgaSA8IG47IGkrKykgeworICAgICAgICBQeV9YREVDUkVGKGVudHJpZXNbaV0ubWVfa2V5KTsKKyAgICAgICAgUHlfWERFQ1JFRihlbnRyaWVzW2ldLm1lX3ZhbHVlKTsKKyAgICB9CisgICAgUHlNZW1fRlJFRShrZXlzKTsKK30KKworI2RlZmluZSBuZXdfdmFsdWVzKHNpemUpIFB5TWVtX05FVyhQeU9iamVjdCAqLCBzaXplKQorCisjZGVmaW5lIGZyZWVfdmFsdWVzKHZhbHVlcykgUHlNZW1fRlJFRSh2YWx1ZXMpCisKKy8qIENvbnN1bWVzIGEgcmVmZXJlbmNlIHRvIHRoZSBrZXlzIG9iamVjdCAqLworc3RhdGljIFB5T2JqZWN0ICoKK25ld19kaWN0KFB5RGljdEtleXNPYmplY3QgKmtleXMsIFB5T2JqZWN0ICoqdmFsdWVzKQoreworICAgIFB5RGljdE9iamVjdCAqbXA7CiAgICAgaWYgKG51bWZyZWUpIHsKICAgICAgICAgbXAgPSBmcmVlX2xpc3RbLS1udW1mcmVlXTsKICAgICAgICAgYXNzZXJ0IChtcCAhPSBOVUxMKTsKICAgICAgICAgYXNzZXJ0IChQeV9UWVBFKG1wKSA9PSAmUHlEaWN0X1R5cGUpOwogICAgICAgICBfUHlfTmV3UmVmZXJlbmNlKChQeU9iamVjdCAqKW1wKTsKLSAgICAgICAgaWYgKG1wLT5tYV9maWxsKSB7Ci0gICAgICAgICAgICBFTVBUWV9UT19NSU5TSVpFKG1wKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8qIEF0IGxlYXN0IHNldCBtYV90YWJsZSBhbmQgbWFfbWFzazsgdGhlc2UgYXJlIHdyb25nCi0gICAgICAgICAgICAgICBpZiBhbiBlbXB0eSBidXQgcHJlc2l6ZWQgZGljdCBpcyBhZGRlZCB0byBmcmVlbGlzdCAqLwotICAgICAgICAgICAgSU5JVF9OT05aRVJPX0RJQ1RfU0xPVFMobXApOwotICAgICAgICB9Ci0gICAgICAgIGFzc2VydCAobXAtPm1hX3VzZWQgPT0gMCk7Ci0gICAgICAgIGFzc2VydCAobXAtPm1hX3RhYmxlID09IG1wLT5tYV9zbWFsbHRhYmxlKTsKLSAgICAgICAgYXNzZXJ0IChtcC0+bWFfbWFzayA9PSBQeURpY3RfTUlOU0laRSAtIDEpOwotI2lmZGVmIFNIT1dfQUxMT0NfQ09VTlQKLSAgICAgICAgY291bnRfcmV1c2UrKzsKLSNlbmRpZgotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1wID0gUHlPYmplY3RfR0NfTmV3KFB5RGljdE9iamVjdCwgJlB5RGljdF9UeXBlKTsKLSAgICAgICAgaWYgKG1wID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgRU1QVFlfVE9fTUlOU0laRShtcCk7Ci0jaWZkZWYgU0hPV19BTExPQ19DT1VOVAotICAgICAgICBjb3VudF9hbGxvYysrOwotI2VuZGlmCiAgICAgfQotICAgIG1wLT5tYV9sb29rdXAgPSBsb29rZGljdF91bmljb2RlOwotI2lmZGVmIFNIT1dfVFJBQ0tfQ09VTlQKLSAgICBjb3VudF91bnRyYWNrZWQrKzsKLSNlbmRpZgotI2lmZGVmIFNIT1dfQ09OVkVSU0lPTl9DT1VOVFMKLSAgICArK2NyZWF0ZWQ7Ci0jZW5kaWYKKyAgICBlbHNlIHsKKyAgICAgICAgbXAgPSBQeU9iamVjdF9HQ19OZXcoUHlEaWN0T2JqZWN0LCAmUHlEaWN0X1R5cGUpOworICAgICAgICBpZiAobXAgPT0gTlVMTCkgeworICAgICAgICAgICAgREtfREVDUkVGKGtleXMpOworICAgICAgICAgICAgZnJlZV92YWx1ZXModmFsdWVzKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorICAgIG1wLT5tYV9rZXlzID0ga2V5czsKKyAgICBtcC0+bWFfdmFsdWVzID0gdmFsdWVzOworICAgIG1wLT5tYV91c2VkID0gMDsKICAgICByZXR1cm4gKFB5T2JqZWN0ICopbXA7CiB9CiAKKy8qIENvbnN1bWVzIGEgcmVmZXJlbmNlIHRvIHRoZSBrZXlzIG9iamVjdCAqLworc3RhdGljIFB5T2JqZWN0ICoKK25ld19kaWN0X3dpdGhfc2hhcmVkX2tleXMoUHlEaWN0S2V5c09iamVjdCAqa2V5cykKK3sKKyAgICBQeU9iamVjdCAqKnZhbHVlczsKKyAgICBQeV9zc2l6ZV90IGksIHNpemU7CisKKyAgICBzaXplID0gREtfU0laRShrZXlzKTsKKyAgICB2YWx1ZXMgPSBuZXdfdmFsdWVzKHNpemUpOworICAgIGlmICh2YWx1ZXMgPT0gTlVMTCkgeworICAgICAgICBES19ERUNSRUYoa2V5cyk7CisgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIHZhbHVlc1tpXSA9IE5VTEw7CisgICAgfQorICAgIHJldHVybiBuZXdfZGljdChrZXlzLCB2YWx1ZXMpOworfQorCitQeU9iamVjdCAqCitQeURpY3RfTmV3KHZvaWQpCit7CisgICAgcmV0dXJuIG5ld19kaWN0KG5ld19rZXlzX29iamVjdChQeURpY3RfTUlOU0laRV9DT01CSU5FRCksIE5VTEwpOworfQorCiAvKgogVGhlIGJhc2ljIGxvb2t1cCBmdW5jdGlvbiB1c2VkIGJ5IGFsbCBvcGVyYXRpb25zLgogVGhpcyBpcyBiYXNlZCBvbiBBbGdvcml0aG0gRCBmcm9tIEtudXRoIFZvbC4gMywgU2VjLiA2LjQuCkBAIC0zMDIsMjkgKzQ0OCwzNSBAQAogbG9va2RpY3QoKSBpcyBnZW5lcmFsLXB1cnBvc2UsIGFuZCBtYXkgcmV0dXJuIE5VTEwgaWYgKGFuZCBvbmx5IGlmKSBhCiBjb21wYXJpc29uIHJhaXNlcyBhbiBleGNlcHRpb24gKHRoaXMgd2FzIG5ldyBpbiBQeXRob24gMi41KS4KIGxvb2tkaWN0X3VuaWNvZGUoKSBiZWxvdyBpcyBzcGVjaWFsaXplZCB0byBzdHJpbmcga2V5cywgY29tcGFyaXNvbiBvZiB3aGljaCBjYW4KLW5ldmVyIHJhaXNlIGFuIGV4Y2VwdGlvbjsgdGhhdCBmdW5jdGlvbiBjYW4gbmV2ZXIgcmV0dXJuIE5VTEwuICBGb3IgYm90aCwgd2hlbgotdGhlIGtleSBpc24ndCBmb3VuZCBhIFB5RGljdEVudHJ5KiBpcyByZXR1cm5lZCBmb3Igd2hpY2ggdGhlIG1lX3ZhbHVlIGZpZWxkIGlzCi1OVUxMOyB0aGlzIGlzIHRoZSBzbG90IGluIHRoZSBkaWN0IGF0IHdoaWNoIHRoZSBrZXkgd291bGQgaGF2ZSBiZWVuIGZvdW5kLCBhbmQKLXRoZSBjYWxsZXIgY2FuIChpZiBpdCB3aXNoZXMpIGFkZCB0aGUgPGtleSwgdmFsdWU+IHBhaXIgdG8gdGhlIHJldHVybmVkCi1QeURpY3RFbnRyeSouCituZXZlciByYWlzZSBhbiBleGNlcHRpb247IHRoYXQgZnVuY3Rpb24gY2FuIG5ldmVyIHJldHVybiBOVUxMLgorbG9va2RpY3RfdW5pY29kZV9ub2R1bW15IGlzIGZ1cnRoZXIgc3BlY2lhbGl6ZWQgZm9yIHN0cmluZyBrZXlzIHRoYXQgY2Fubm90IGJlCit0aGUgPGR1bW15PiB2YWx1ZS4KK0ZvciBib3RoLCB3aGVuIHRoZSBrZXkgaXNuJ3QgZm91bmQgYSBQeURpY3RFbnRyeSogaXMgcmV0dXJuZWQKK3doZXJlIHRoZSBrZXkgd291bGQgaGF2ZSBiZWVuIGZvdW5kLCAqdmFsdWVfYWRkciBwb2ludHMgdG8gdGhlIG1hdGNoaW5nIHZhbHVlCitzbG90LgogKi8KLXN0YXRpYyBQeURpY3RFbnRyeSAqCi1sb29rZGljdChQeURpY3RPYmplY3QgKm1wLCBQeU9iamVjdCAqa2V5LCByZWdpc3RlciBQeV9oYXNoX3QgaGFzaCkKK3N0YXRpYyBQeURpY3RLZXlFbnRyeSAqCitsb29rZGljdChQeURpY3RPYmplY3QgKm1wLCBQeU9iamVjdCAqa2V5LAorICAgICAgICAgUHlfaGFzaF90IGhhc2gsIFB5T2JqZWN0ICoqKnZhbHVlX2FkZHIpCiB7CiAgICAgcmVnaXN0ZXIgc2l6ZV90IGk7CiAgICAgcmVnaXN0ZXIgc2l6ZV90IHBlcnR1cmI7Ci0gICAgcmVnaXN0ZXIgUHlEaWN0RW50cnkgKmZyZWVzbG90OwotICAgIHJlZ2lzdGVyIHNpemVfdCBtYXNrID0gKHNpemVfdCltcC0+bWFfbWFzazsKLSAgICBQeURpY3RFbnRyeSAqZXAwID0gbXAtPm1hX3RhYmxlOwotICAgIHJlZ2lzdGVyIFB5RGljdEVudHJ5ICplcDsKKyAgICByZWdpc3RlciBQeURpY3RLZXlFbnRyeSAqZnJlZXNsb3Q7CisgICAgcmVnaXN0ZXIgc2l6ZV90IG1hc2s7CisgICAgUHlEaWN0S2V5RW50cnkgKmVwMDsKKyAgICByZWdpc3RlciBQeURpY3RLZXlFbnRyeSAqZXA7CiAgICAgcmVnaXN0ZXIgaW50IGNtcDsKICAgICBQeU9iamVjdCAqc3RhcnRrZXk7CiAKK3RvcDoKKyAgICBtYXNrID0gREtfTUFTSyhtcC0+bWFfa2V5cyk7CisgICAgZXAwID0gJm1wLT5tYV9rZXlzLT5ka19lbnRyaWVzWzBdOwogICAgIGkgPSAoc2l6ZV90KWhhc2ggJiBtYXNrOwogICAgIGVwID0gJmVwMFtpXTsKLSAgICBpZiAoZXAtPm1lX2tleSA9PSBOVUxMIHx8IGVwLT5tZV9rZXkgPT0ga2V5KQorICAgIGlmIChlcC0+bWVfa2V5ID09IE5VTEwgfHwgZXAtPm1lX2tleSA9PSBrZXkpIHsKKyAgICAgICAgKnZhbHVlX2FkZHIgPSAmZXAtPm1lX3ZhbHVlOwogICAgICAgICByZXR1cm4gZXA7Ci0KKyAgICB9CiAgICAgaWYgKGVwLT5tZV9rZXkgPT0gZHVtbXkpCiAgICAgICAgIGZyZWVzbG90ID0gZXA7CiAgICAgZWxzZSB7CkBAIC0zMzUsMTcgKzQ4NywxNSBAQAogICAgICAgICAgICAgUHlfREVDUkVGKHN0YXJ0a2V5KTsKICAgICAgICAgICAgIGlmIChjbXAgPCAwKQogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgaWYgKGVwMCA9PSBtcC0+bWFfdGFibGUgJiYgZXAtPm1lX2tleSA9PSBzdGFydGtleSkgewotICAgICAgICAgICAgICAgIGlmIChjbXAgPiAwKQorICAgICAgICAgICAgaWYgKGVwMCA9PSBtcC0+bWFfa2V5cy0+ZGtfZW50cmllcyAmJiBlcC0+bWVfa2V5ID09IHN0YXJ0a2V5KSB7CisgICAgICAgICAgICAgICAgaWYgKGNtcCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgKnZhbHVlX2FkZHIgPSAmZXAtPm1lX3ZhbHVlOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXA7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgLyogVGhlIGNvbXBhcmUgZGlkIG1ham9yIG5hc3R5IHN0dWZmIHRvIHRoZQotICAgICAgICAgICAgICAgICAqIGRpY3Q6ICBzdGFydCBvdmVyLgotICAgICAgICAgICAgICAgICAqIFhYWCBBIGNsZXZlciBhZHZlcnNhcnkgY291bGQgcHJldmVudCB0aGlzCi0gICAgICAgICAgICAgICAgICogWFhYIGZyb20gdGVybWluYXRpbmcuCi0gICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxvb2tkaWN0KG1wLCBrZXksIGhhc2gpOworICAgICAgICAgICAgICAgIC8qIFRoZSBkaWN0IHdhcyBtdXRhdGVkLCByZXN0YXJ0ICovCisgICAgICAgICAgICAgICAgZ290byB0b3A7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZnJlZXNsb3QgPSBOVUxMOwpAQCAtMzU2LDI4ICs1MDYsMzcgQEAKICAgICBmb3IgKHBlcnR1cmIgPSBoYXNoOyA7IHBlcnR1cmIgPj49IFBFUlRVUkJfU0hJRlQpIHsKICAgICAgICAgaSA9IChpIDw8IDIpICsgaSArIHBlcnR1cmIgKyAxOwogICAgICAgICBlcCA9ICZlcDBbaSAmIG1hc2tdOwotICAgICAgICBpZiAoZXAtPm1lX2tleSA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIGZyZWVzbG90ID09IE5VTEwgPyBlcCA6IGZyZWVzbG90OwotICAgICAgICBpZiAoZXAtPm1lX2tleSA9PSBrZXkpCisgICAgICAgIGlmIChlcC0+bWVfa2V5ID09IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChmcmVlc2xvdCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgKnZhbHVlX2FkZHIgPSAmZXAtPm1lX3ZhbHVlOworICAgICAgICAgICAgICAgIHJldHVybiBlcDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgKnZhbHVlX2FkZHIgPSAmZnJlZXNsb3QtPm1lX3ZhbHVlOworICAgICAgICAgICAgICAgIHJldHVybiBmcmVlc2xvdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoZXAtPm1lX2tleSA9PSBrZXkpIHsKKyAgICAgICAgICAgICp2YWx1ZV9hZGRyID0gJmVwLT5tZV92YWx1ZTsKICAgICAgICAgICAgIHJldHVybiBlcDsKKyAgICAgICAgfQogICAgICAgICBpZiAoZXAtPm1lX2hhc2ggPT0gaGFzaCAmJiBlcC0+bWVfa2V5ICE9IGR1bW15KSB7CiAgICAgICAgICAgICBzdGFydGtleSA9IGVwLT5tZV9rZXk7CiAgICAgICAgICAgICBQeV9JTkNSRUYoc3RhcnRrZXkpOwogICAgICAgICAgICAgY21wID0gUHlPYmplY3RfUmljaENvbXBhcmVCb29sKHN0YXJ0a2V5LCBrZXksIFB5X0VRKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRihzdGFydGtleSk7Ci0gICAgICAgICAgICBpZiAoY21wIDwgMCkKKyAgICAgICAgICAgIGlmIChjbXAgPCAwKSB7CisgICAgICAgICAgICAgICAgKnZhbHVlX2FkZHIgPSBOVUxMOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgaWYgKGVwMCA9PSBtcC0+bWFfdGFibGUgJiYgZXAtPm1lX2tleSA9PSBzdGFydGtleSkgewotICAgICAgICAgICAgICAgIGlmIChjbXAgPiAwKQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVwMCA9PSBtcC0+bWFfa2V5cy0+ZGtfZW50cmllcyAmJiBlcC0+bWVfa2V5ID09IHN0YXJ0a2V5KSB7CisgICAgICAgICAgICAgICAgaWYgKGNtcCA+IDApIHsKKyAgICAgICAgICAgICAgICAgICAgKnZhbHVlX2FkZHIgPSAmZXAtPm1lX3ZhbHVlOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXA7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgLyogVGhlIGNvbXBhcmUgZGlkIG1ham9yIG5hc3R5IHN0dWZmIHRvIHRoZQotICAgICAgICAgICAgICAgICAqIGRpY3Q6ICBzdGFydCBvdmVyLgotICAgICAgICAgICAgICAgICAqIFhYWCBBIGNsZXZlciBhZHZlcnNhcnkgY291bGQgcHJldmVudCB0aGlzCi0gICAgICAgICAgICAgICAgICogWFhYIGZyb20gdGVybWluYXRpbmcuCi0gICAgICAgICAgICAgICAgICovCi0gICAgICAgICAgICAgICAgcmV0dXJuIGxvb2tkaWN0KG1wLCBrZXksIGhhc2gpOworICAgICAgICAgICAgICAgIC8qIFRoZSBkaWN0IHdhcyBtdXRhdGVkLCByZXN0YXJ0ICovCisgICAgICAgICAgICAgICAgZ290byB0b3A7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoZXAtPm1lX2tleSA9PSBkdW1teSAmJiBmcmVlc2xvdCA9PSBOVUxMKQpAQCAtMzg3LDQ2ICs1NDYsMzkgQEAKICAgICByZXR1cm4gMDsKIH0KIAotLyoKLSAqIEhhY2tlZCB1cCB2ZXJzaW9uIG9mIGxvb2tkaWN0IHdoaWNoIGNhbiBhc3N1bWUga2V5cyBhcmUgYWx3YXlzCi0gKiB1bmljb2RlczsgdGhpcyBhc3N1bXB0aW9uIGFsbG93cyB0ZXN0aW5nIGZvciBlcnJvcnMgZHVyaW5nCi0gKiBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2woKSB0byBiZSBkcm9wcGVkOyB1bmljb2RlLXVuaWNvZGUKLSAqIGNvbXBhcmlzb25zIG5ldmVyIHJhaXNlIGV4Y2VwdGlvbnMuICBUaGlzIGFsc28gbWVhbnMgd2UgZG9uJ3QgbmVlZAotICogdG8gZ28gdGhyb3VnaCBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2woKTsgd2UgY2FuIGFsd2F5cyB1c2UKLSAqIHVuaWNvZGVfZXEoKSBkaXJlY3RseS4KLSAqCi0gKiBUaGlzIGlzIHZhbHVhYmxlIGJlY2F1c2UgZGljdHMgd2l0aCBvbmx5IHVuaWNvZGUga2V5cyBhcmUgdmVyeSBjb21tb24uCi0gKi8KLXN0YXRpYyBQeURpY3RFbnRyeSAqCi1sb29rZGljdF91bmljb2RlKFB5RGljdE9iamVjdCAqbXAsIFB5T2JqZWN0ICprZXksIHJlZ2lzdGVyIFB5X2hhc2hfdCBoYXNoKQorLyogU3BlY2lhbGl6ZWQgdmVyc2lvbiBmb3Igc3RyaW5nLW9ubHkga2V5cyAqLworc3RhdGljIFB5RGljdEtleUVudHJ5ICoKK2xvb2tkaWN0X3VuaWNvZGUoUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwKKyAgICAgICAgICAgICAgICAgUHlfaGFzaF90IGhhc2gsIFB5T2JqZWN0ICoqKnZhbHVlX2FkZHIpCiB7CiAgICAgcmVnaXN0ZXIgc2l6ZV90IGk7CiAgICAgcmVnaXN0ZXIgc2l6ZV90IHBlcnR1cmI7Ci0gICAgcmVnaXN0ZXIgUHlEaWN0RW50cnkgKmZyZWVzbG90OwotICAgIHJlZ2lzdGVyIHNpemVfdCBtYXNrID0gKHNpemVfdCltcC0+bWFfbWFzazsKLSAgICBQeURpY3RFbnRyeSAqZXAwID0gbXAtPm1hX3RhYmxlOwotICAgIHJlZ2lzdGVyIFB5RGljdEVudHJ5ICplcDsKKyAgICByZWdpc3RlciBQeURpY3RLZXlFbnRyeSAqZnJlZXNsb3Q7CisgICAgcmVnaXN0ZXIgc2l6ZV90IG1hc2sgPSBES19NQVNLKG1wLT5tYV9rZXlzKTsKKyAgICBQeURpY3RLZXlFbnRyeSAqZXAwID0gJm1wLT5tYV9rZXlzLT5ka19lbnRyaWVzWzBdOworICAgIHJlZ2lzdGVyIFB5RGljdEtleUVudHJ5ICplcDsKIAogICAgIC8qIE1ha2Ugc3VyZSB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgaGF2ZSB0byBoYW5kbGUgbm9uLXVuaWNvZGUga2V5cywKICAgICAgICBpbmNsdWRpbmcgc3ViY2xhc3NlcyBvZiBzdHI7IGUuZy4sIG9uZSByZWFzb24gdG8gc3ViY2xhc3MKICAgICAgICB1bmljb2RlcyBpcyB0byBvdmVycmlkZSBfX2VxX18sIGFuZCBmb3Igc3BlZWQgd2UgZG9uJ3QgY2F0ZXIgdG8KICAgICAgICB0aGF0IGhlcmUuICovCiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpKSB7Ci0jaWZkZWYgU0hPV19DT05WRVJTSU9OX0NPVU5UUwotICAgICAgICArK2NvbnZlcnRlZDsKLSNlbmRpZgotICAgICAgICBtcC0+bWFfbG9va3VwID0gbG9va2RpY3Q7Ci0gICAgICAgIHJldHVybiBsb29rZGljdChtcCwga2V5LCBoYXNoKTsKKyAgICAgICAgbXAtPm1hX2tleXMtPmRrX2xvb2t1cCA9IGxvb2tkaWN0OworICAgICAgICByZXR1cm4gbG9va2RpY3QobXAsIGtleSwgaGFzaCwgdmFsdWVfYWRkcik7CiAgICAgfQotICAgIGkgPSBoYXNoICYgbWFzazsKKyAgICBpID0gKHNpemVfdCloYXNoICYgbWFzazsKICAgICBlcCA9ICZlcDBbaV07Ci0gICAgaWYgKGVwLT5tZV9rZXkgPT0gTlVMTCB8fCBlcC0+bWVfa2V5ID09IGtleSkKKyAgICBpZiAoZXAtPm1lX2tleSA9PSBOVUxMIHx8IGVwLT5tZV9rZXkgPT0ga2V5KSB7CisgICAgICAgICp2YWx1ZV9hZGRyID0gJmVwLT5tZV92YWx1ZTsKICAgICAgICAgcmV0dXJuIGVwOworICAgIH0KICAgICBpZiAoZXAtPm1lX2tleSA9PSBkdW1teSkKICAgICAgICAgZnJlZXNsb3QgPSBlcDsKICAgICBlbHNlIHsKLSAgICAgICAgaWYgKGVwLT5tZV9oYXNoID09IGhhc2ggJiYgdW5pY29kZV9lcShlcC0+bWVfa2V5LCBrZXkpKQorICAgICAgICBpZiAoZXAtPm1lX2hhc2ggPT0gaGFzaCAmJiB1bmljb2RlX2VxKGVwLT5tZV9rZXksIGtleSkpIHsKKyAgICAgICAgICAgICp2YWx1ZV9hZGRyID0gJmVwLT5tZV92YWx1ZTsKICAgICAgICAgICAgIHJldHVybiBlcDsKKyAgICAgICAgfQogICAgICAgICBmcmVlc2xvdCA9IE5VTEw7CiAgICAgfQogCkBAIC00MzUsMTMgKzU4NywyMiBAQAogICAgIGZvciAocGVydHVyYiA9IGhhc2g7IDsgcGVydHVyYiA+Pj0gUEVSVFVSQl9TSElGVCkgewogICAgICAgICBpID0gKGkgPDwgMikgKyBpICsgcGVydHVyYiArIDE7CiAgICAgICAgIGVwID0gJmVwMFtpICYgbWFza107Ci0gICAgICAgIGlmIChlcC0+bWVfa2V5ID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gZnJlZXNsb3QgPT0gTlVMTCA/IGVwIDogZnJlZXNsb3Q7CisgICAgICAgIGlmIChlcC0+bWVfa2V5ID09IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChmcmVlc2xvdCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgKnZhbHVlX2FkZHIgPSAmZXAtPm1lX3ZhbHVlOworICAgICAgICAgICAgICAgIHJldHVybiBlcDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgKnZhbHVlX2FkZHIgPSAmZnJlZXNsb3QtPm1lX3ZhbHVlOworICAgICAgICAgICAgICAgIHJldHVybiBmcmVlc2xvdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICBpZiAoZXAtPm1lX2tleSA9PSBrZXkKICAgICAgICAgICAgIHx8IChlcC0+bWVfaGFzaCA9PSBoYXNoCiAgICAgICAgICAgICAmJiBlcC0+bWVfa2V5ICE9IGR1bW15Ci0gICAgICAgICAgICAmJiB1bmljb2RlX2VxKGVwLT5tZV9rZXksIGtleSkpKQorICAgICAgICAgICAgJiYgdW5pY29kZV9lcShlcC0+bWVfa2V5LCBrZXkpKSkgeworICAgICAgICAgICAgKnZhbHVlX2FkZHIgPSAmZXAtPm1lX3ZhbHVlOwogICAgICAgICAgICAgcmV0dXJuIGVwOworICAgICAgICB9CiAgICAgICAgIGlmIChlcC0+bWVfa2V5ID09IGR1bW15ICYmIGZyZWVzbG90ID09IE5VTEwpCiAgICAgICAgICAgICBmcmVlc2xvdCA9IGVwOwogICAgIH0KQEAgLTQ0OSw2ICs2MTAsOTIgQEAKICAgICByZXR1cm4gMDsKIH0KIAorLyogRmFzdGVyIHZlcnNpb24gb2YgbG9va2RpY3RfdW5pY29kZSB3aGVuIGl0IGlzIGtub3duIHRoYXQgbm8gPGR1bW15PiBrZXlzCisgKiB3aWxsIGJlIHByZXNlbnQuICovCitzdGF0aWMgUHlEaWN0S2V5RW50cnkgKgorbG9va2RpY3RfdW5pY29kZV9ub2R1bW15KFB5RGljdE9iamVjdCAqbXAsIFB5T2JqZWN0ICprZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgUHlfaGFzaF90IGhhc2gsIFB5T2JqZWN0ICoqKnZhbHVlX2FkZHIpCit7CisgICAgcmVnaXN0ZXIgc2l6ZV90IGk7CisgICAgcmVnaXN0ZXIgc2l6ZV90IHBlcnR1cmI7CisgICAgcmVnaXN0ZXIgc2l6ZV90IG1hc2sgPSBES19NQVNLKG1wLT5tYV9rZXlzKTsKKyAgICBQeURpY3RLZXlFbnRyeSAqZXAwID0gJm1wLT5tYV9rZXlzLT5ka19lbnRyaWVzWzBdOworICAgIHJlZ2lzdGVyIFB5RGljdEtleUVudHJ5ICplcDsKKworICAgIC8qIE1ha2Ugc3VyZSB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3QgaGF2ZSB0byBoYW5kbGUgbm9uLXVuaWNvZGUga2V5cywKKyAgICAgICBpbmNsdWRpbmcgc3ViY2xhc3NlcyBvZiBzdHI7IGUuZy4sIG9uZSByZWFzb24gdG8gc3ViY2xhc3MKKyAgICAgICB1bmljb2RlcyBpcyB0byBvdmVycmlkZSBfX2VxX18sIGFuZCBmb3Igc3BlZWQgd2UgZG9uJ3QgY2F0ZXIgdG8KKyAgICAgICB0aGF0IGhlcmUuICovCisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpKSB7CisgICAgICAgIG1wLT5tYV9rZXlzLT5ka19sb29rdXAgPSBsb29rZGljdDsKKyAgICAgICAgcmV0dXJuIGxvb2tkaWN0KG1wLCBrZXksIGhhc2gsIHZhbHVlX2FkZHIpOworICAgIH0KKyAgICBpID0gKHNpemVfdCloYXNoICYgbWFzazsKKyAgICBlcCA9ICZlcDBbaV07CisgICAgYXNzZXJ0KGVwLT5tZV9rZXkgPT0gTlVMTCB8fCBQeVVuaWNvZGVfQ2hlY2tFeGFjdChlcC0+bWVfa2V5KSk7CisgICAgaWYgKGVwLT5tZV9rZXkgPT0gTlVMTCB8fCBlcC0+bWVfa2V5ID09IGtleSB8fAorICAgICAgICAoZXAtPm1lX2hhc2ggPT0gaGFzaCAmJiB1bmljb2RlX2VxKGVwLT5tZV9rZXksIGtleSkpKSB7CisgICAgICAgICp2YWx1ZV9hZGRyID0gJmVwLT5tZV92YWx1ZTsKKyAgICAgICAgcmV0dXJuIGVwOworICAgIH0KKyAgICBmb3IgKHBlcnR1cmIgPSBoYXNoOyA7IHBlcnR1cmIgPj49IFBFUlRVUkJfU0hJRlQpIHsKKyAgICAgICAgaSA9IChpIDw8IDIpICsgaSArIHBlcnR1cmIgKyAxOworICAgICAgICBlcCA9ICZlcDBbaSAmIG1hc2tdOworICAgICAgICBhc3NlcnQoZXAtPm1lX2tleSA9PSBOVUxMIHx8IFB5VW5pY29kZV9DaGVja0V4YWN0KGVwLT5tZV9rZXkpKTsKKyAgICAgICAgaWYgKGVwLT5tZV9rZXkgPT0gTlVMTCB8fCBlcC0+bWVfa2V5ID09IGtleSB8fAorICAgICAgICAgICAgKGVwLT5tZV9oYXNoID09IGhhc2ggJiYgdW5pY29kZV9lcShlcC0+bWVfa2V5LCBrZXkpKSkgeworICAgICAgICAgICAgKnZhbHVlX2FkZHIgPSAmZXAtPm1lX3ZhbHVlOworICAgICAgICAgICAgcmV0dXJuIGVwOworICAgICAgICB9CisgICAgfQorICAgIGFzc2VydCgwKTsgICAgICAgICAgLyogTk9UIFJFQUNIRUQgKi8KKyAgICByZXR1cm4gMDsKK30KKworLyogVmVyc2lvbiBvZiBsb29rZGljdCBmb3Igc3BsaXQgdGFibGVzLgorICogQWxsIHNwbGl0IHRhYmxlcyBhbmQgb25seSBzcGxpdCB0YWJsZXMgdXNlIHRoaXMgbG9va3VwIGZ1bmN0aW9uLgorICogU3BsaXQgdGFibGVzIG9ubHkgY29udGFpbiB1bmljb2RlIGtleXMgYW5kIG5vIGR1bW15IGtleXMsCisgKiBzbyBhbGdvcml0aG0gaXMgdGhlIHNhbWUgYXMgbG9va2RpY3RfdW5pY29kZV9ub2R1bW15LgorICovCitzdGF0aWMgUHlEaWN0S2V5RW50cnkgKgorbG9va2RpY3Rfc3BsaXQoUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwKKyAgICAgICAgICAgICAgIFB5X2hhc2hfdCBoYXNoLCBQeU9iamVjdCAqKip2YWx1ZV9hZGRyKQoreworICAgIHJlZ2lzdGVyIHNpemVfdCBpOworICAgIHJlZ2lzdGVyIHNpemVfdCBwZXJ0dXJiOworICAgIHJlZ2lzdGVyIHNpemVfdCBtYXNrID0gREtfTUFTSyhtcC0+bWFfa2V5cyk7CisgICAgUHlEaWN0S2V5RW50cnkgKmVwMCA9ICZtcC0+bWFfa2V5cy0+ZGtfZW50cmllc1swXTsKKyAgICByZWdpc3RlciBQeURpY3RLZXlFbnRyeSAqZXA7CisKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVja0V4YWN0KGtleSkpIHsKKyAgICAgICAgZXAgPSBsb29rZGljdChtcCwga2V5LCBoYXNoLCB2YWx1ZV9hZGRyKTsKKyAgICAgICAgLyogbG9va2RpY3QgZXhwZWN0cyBhIGNvbWJpbmVkLXRhYmxlLCBzbyBmaXggdmFsdWVfYWRkciAqLworICAgICAgICBpID0gZXAgLSBlcDA7CisgICAgICAgICp2YWx1ZV9hZGRyID0gJm1wLT5tYV92YWx1ZXNbaV07CisgICAgICAgIHJldHVybiBlcDsKKyAgICB9CisgICAgaSA9IChzaXplX3QpaGFzaCAmIG1hc2s7CisgICAgZXAgPSAmZXAwW2ldOworICAgIGFzc2VydChlcC0+bWVfa2V5ID09IE5VTEwgfHwgUHlVbmljb2RlX0NoZWNrRXhhY3QoZXAtPm1lX2tleSkpOworICAgIGlmIChlcC0+bWVfa2V5ID09IE5VTEwgfHwgZXAtPm1lX2tleSA9PSBrZXkgfHwKKyAgICAgICAgKGVwLT5tZV9oYXNoID09IGhhc2ggJiYgdW5pY29kZV9lcShlcC0+bWVfa2V5LCBrZXkpKSkgeworICAgICAgICAqdmFsdWVfYWRkciA9ICZtcC0+bWFfdmFsdWVzW2ldOworICAgICAgICByZXR1cm4gZXA7CisgICAgfQorICAgIGZvciAocGVydHVyYiA9IGhhc2g7IDsgcGVydHVyYiA+Pj0gUEVSVFVSQl9TSElGVCkgeworICAgICAgICBpID0gKGkgPDwgMikgKyBpICsgcGVydHVyYiArIDE7CisgICAgICAgIGVwID0gJmVwMFtpICYgbWFza107CisgICAgICAgIGFzc2VydChlcC0+bWVfa2V5ID09IE5VTEwgfHwgUHlVbmljb2RlX0NoZWNrRXhhY3QoZXAtPm1lX2tleSkpOworICAgICAgICBpZiAoZXAtPm1lX2tleSA9PSBOVUxMIHx8IGVwLT5tZV9rZXkgPT0ga2V5IHx8CisgICAgICAgICAgICAoZXAtPm1lX2hhc2ggPT0gaGFzaCAmJiB1bmljb2RlX2VxKGVwLT5tZV9rZXksIGtleSkpKSB7CisgICAgICAgICAgICAqdmFsdWVfYWRkciA9ICZtcC0+bWFfdmFsdWVzW2kgJiBtYXNrXTsKKyAgICAgICAgICAgIHJldHVybiBlcDsKKyAgICAgICAgfQorICAgIH0KKyAgICBhc3NlcnQoMCk7ICAgICAgICAgIC8qIE5PVCBSRUFDSEVEICovCisgICAgcmV0dXJuIDA7Cit9CisKIGludAogX1B5RGljdF9IYXNPbmx5U3RyaW5nS2V5cyhQeU9iamVjdCAqZGljdCkKIHsKQEAgLTQ1Niw3ICs3MDMsNyBAQAogICAgIFB5T2JqZWN0ICprZXksICp2YWx1ZTsKICAgICBhc3NlcnQoUHlEaWN0X0NoZWNrKGRpY3QpKTsKICAgICAvKiBTaG9ydGN1dCAqLwotICAgIGlmICgoKFB5RGljdE9iamVjdCAqKWRpY3QpLT5tYV9sb29rdXAgPT0gbG9va2RpY3RfdW5pY29kZSkKKyAgICBpZiAoKChQeURpY3RPYmplY3QgKilkaWN0KS0+bWFfa2V5cy0+ZGtfbG9va3VwICE9IGxvb2tkaWN0KQogICAgICAgICByZXR1cm4gMTsKICAgICB3aGlsZSAoUHlEaWN0X05leHQoZGljdCwgJnBvcywgJmtleSwgJnZhbHVlKSkKICAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2soa2V5KSkKQEAgLTQ2NCwyMyArNzExLDEyIEBACiAgICAgcmV0dXJuIDE7CiB9CiAKLSNpZmRlZiBTSE9XX1RSQUNLX0NPVU5UCi0jZGVmaW5lIElOQ1JFQVNFX1RSQUNLX0NPVU5UIFwKLSAgICAoY291bnRfdHJhY2tlZCsrLCBjb3VudF91bnRyYWNrZWQtLSk7Ci0jZGVmaW5lIERFQ1JFQVNFX1RSQUNLX0NPVU5UIFwKLSAgICAoY291bnRfdHJhY2tlZC0tLCBjb3VudF91bnRyYWNrZWQrKyk7Ci0jZWxzZQotI2RlZmluZSBJTkNSRUFTRV9UUkFDS19DT1VOVAotI2RlZmluZSBERUNSRUFTRV9UUkFDS19DT1VOVAotI2VuZGlmCi0KICNkZWZpbmUgTUFJTlRBSU5fVFJBQ0tJTkcobXAsIGtleSwgdmFsdWUpIFwKICAgICBkbyB7IFwKICAgICAgICAgaWYgKCFfUHlPYmplY3RfR0NfSVNfVFJBQ0tFRChtcCkpIHsgXAogICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9HQ19NQVlfQkVfVFJBQ0tFRChrZXkpIHx8IFwKICAgICAgICAgICAgICAgICBfUHlPYmplY3RfR0NfTUFZX0JFX1RSQUNLRUQodmFsdWUpKSB7IFwKICAgICAgICAgICAgICAgICBfUHlPYmplY3RfR0NfVFJBQ0sobXApOyBcCi0gICAgICAgICAgICAgICAgSU5DUkVBU0VfVFJBQ0tfQ09VTlQgXAogICAgICAgICAgICAgfSBcCiAgICAgICAgIH0gXAogICAgIH0gd2hpbGUoMCkKQEAgLTQ5MCw3OCArNzI2LDEzNiBAQAogewogICAgIFB5RGljdE9iamVjdCAqbXA7CiAgICAgUHlPYmplY3QgKnZhbHVlOwotICAgIFB5X3NzaXplX3QgbWFzaywgaTsKLSAgICBQeURpY3RFbnRyeSAqZXA7CisgICAgUHlfc3NpemVfdCBpLCBzaXplOwogCiAgICAgaWYgKCFQeURpY3RfQ2hlY2tFeGFjdChvcCkgfHwgIV9QeU9iamVjdF9HQ19JU19UUkFDS0VEKG9wKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbXAgPSAoUHlEaWN0T2JqZWN0ICopIG9wOwotICAgIGVwID0gbXAtPm1hX3RhYmxlOwotICAgIG1hc2sgPSBtcC0+bWFfbWFzazsKLSAgICBmb3IgKGkgPSAwOyBpIDw9IG1hc2s7IGkrKykgewotICAgICAgICBpZiAoKHZhbHVlID0gZXBbaV0ubWVfdmFsdWUpID09IE5VTEwpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKF9QeU9iamVjdF9HQ19NQVlfQkVfVFJBQ0tFRCh2YWx1ZSkgfHwKLSAgICAgICAgICAgIF9QeU9iamVjdF9HQ19NQVlfQkVfVFJBQ0tFRChlcFtpXS5tZV9rZXkpKQotICAgICAgICAgICAgcmV0dXJuOworICAgIHNpemUgPSBES19TSVpFKG1wLT5tYV9rZXlzKTsKKyAgICBpZiAoX1B5RGljdF9IYXNTcGxpdFRhYmxlKG1wKSkgeworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKHZhbHVlID0gbXAtPm1hX3ZhbHVlc1tpXSkgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChfUHlPYmplY3RfR0NfTUFZX0JFX1RSQUNLRUQodmFsdWUpKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0KCFfUHlPYmplY3RfR0NfTUFZX0JFX1RSQUNLRUQoCisgICAgICAgICAgICAgICAgICAgIG1wLT5tYV9rZXlzLT5ka19lbnRyaWVzW2ldLm1lX2tleSkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KLSAgICBERUNSRUFTRV9UUkFDS19DT1VOVAorICAgIGVsc2UgeworICAgICAgICBQeURpY3RLZXlFbnRyeSAqZXAwID0gJm1wLT5tYV9rZXlzLT5ka19lbnRyaWVzWzBdOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoKHZhbHVlID0gZXAwW2ldLm1lX3ZhbHVlKSA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9HQ19NQVlfQkVfVFJBQ0tFRCh2YWx1ZSkgfHwKKyAgICAgICAgICAgICAgICBfUHlPYmplY3RfR0NfTUFZX0JFX1RSQUNLRUQoZXAwW2ldLm1lX2tleSkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQogICAgIF9QeU9iamVjdF9HQ19VTlRSQUNLKG9wKTsKIH0KIAotLyoKLUludGVybmFsIHJvdXRpbmUgdG8gaW5zZXJ0IGEgbmV3IGl0ZW0gaW50byB0aGUgdGFibGUgd2hlbiB5b3UgaGF2ZSBlbnRyeSBvYmplY3QuCi1Vc2VkIGJ5IGluc2VydGRpY3QuCi0qLwotc3RhdGljIGludAotaW5zZXJ0ZGljdF9ieV9lbnRyeShyZWdpc3RlciBQeURpY3RPYmplY3QgKm1wLCBQeU9iamVjdCAqa2V5LCBQeV9oYXNoX3QgaGFzaCwKLSAgICAgICAgICAgICAgICAgICAgUHlEaWN0RW50cnkgKmVwLCBQeU9iamVjdCAqdmFsdWUpCisvKiBJbnRlcm5hbCBmdW5jdGlvbiB0byBmaW5kIHNsb3QgZm9yIGFuIGl0ZW0gZnJvbSBpdHMgaGFzaAorICogd2hlbiBpdCBpcyBrbm93biB0aGF0IHRoZSBrZXkgaXMgbm90IHByZXNlbnQgaW4gdGhlIGRpY3QuCisgKi8KK3N0YXRpYyBQeURpY3RLZXlFbnRyeSAqCitmaW5kX2VtcHR5X3Nsb3QoUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwgUHlfaGFzaF90IGhhc2gsCisgICAgICAgICAgICAgICAgUHlPYmplY3QgKioqdmFsdWVfYWRkcikKIHsKLSAgICBQeU9iamVjdCAqb2xkX3ZhbHVlOworICAgIHNpemVfdCBpOworICAgIHNpemVfdCBwZXJ0dXJiOworICAgIHNpemVfdCBtYXNrID0gREtfTUFTSyhtcC0+bWFfa2V5cyk7CisgICAgUHlEaWN0S2V5RW50cnkgKmVwMCA9ICZtcC0+bWFfa2V5cy0+ZGtfZW50cmllc1swXTsKKyAgICBQeURpY3RLZXlFbnRyeSAqZXA7CiAKLSAgICBNQUlOVEFJTl9UUkFDS0lORyhtcCwga2V5LCB2YWx1ZSk7Ci0gICAgaWYgKGVwLT5tZV92YWx1ZSAhPSBOVUxMKSB7Ci0gICAgICAgIG9sZF92YWx1ZSA9IGVwLT5tZV92YWx1ZTsKLSAgICAgICAgZXAtPm1lX3ZhbHVlID0gdmFsdWU7Ci0gICAgICAgIFB5X0RFQ1JFRihvbGRfdmFsdWUpOyAvKiB3aGljaCAqKkNBTioqIHJlLWVudGVyICovCi0gICAgICAgIFB5X0RFQ1JFRihrZXkpOworICAgIGFzc2VydChrZXkgIT0gTlVMTCk7CisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpKQorICAgICAgICBtcC0+bWFfa2V5cy0+ZGtfbG9va3VwID0gbG9va2RpY3Q7CisgICAgaSA9IGhhc2ggJiBtYXNrOworICAgIGVwID0gJmVwMFtpXTsKKyAgICBmb3IgKHBlcnR1cmIgPSBoYXNoOyBlcC0+bWVfa2V5ICE9IE5VTEw7IHBlcnR1cmIgPj49IFBFUlRVUkJfU0hJRlQpIHsKKyAgICAgICAgaSA9IChpIDw8IDIpICsgaSArIHBlcnR1cmIgKyAxOworICAgICAgICBlcCA9ICZlcDBbaSAmIG1hc2tdOwogICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKGVwLT5tZV9rZXkgPT0gTlVMTCkKLSAgICAgICAgICAgIG1wLT5tYV9maWxsKys7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgYXNzZXJ0KGVwLT5tZV9rZXkgPT0gZHVtbXkpOwotICAgICAgICAgICAgUHlfREVDUkVGKGR1bW15KTsKLSAgICAgICAgfQotICAgICAgICBlcC0+bWVfa2V5ID0ga2V5OwotICAgICAgICBlcC0+bWVfaGFzaCA9IGhhc2g7Ci0gICAgICAgIGVwLT5tZV92YWx1ZSA9IHZhbHVlOwotICAgICAgICBtcC0+bWFfdXNlZCsrOwotICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICBhc3NlcnQoZXAtPm1lX3ZhbHVlID09IE5VTEwpOworICAgIGlmIChtcC0+bWFfdmFsdWVzKQorICAgICAgICAqdmFsdWVfYWRkciA9ICZtcC0+bWFfdmFsdWVzW2kgJiBtYXNrXTsKKyAgICBlbHNlCisgICAgICAgICp2YWx1ZV9hZGRyID0gJmVwLT5tZV92YWx1ZTsKKyAgICByZXR1cm4gZXA7CiB9CiAKK3N0YXRpYyBpbnQKK2luc2VydGlvbl9yZXNpemUoUHlEaWN0T2JqZWN0ICptcCkKK3sKKyAgICByZXR1cm4gZGljdHJlc2l6ZShtcCwgR1JPV1RIX1JBVEUobXAtPm1hX3VzZWQpKTsKK30KIAogLyoKIEludGVybmFsIHJvdXRpbmUgdG8gaW5zZXJ0IGEgbmV3IGl0ZW0gaW50byB0aGUgdGFibGUuCiBVc2VkIGJvdGggYnkgdGhlIGludGVybmFsIHJlc2l6ZSByb3V0aW5lIGFuZCBieSB0aGUgcHVibGljIGluc2VydCByb3V0aW5lLgotRWF0cyBhIHJlZmVyZW5jZSB0byBrZXkgYW5kIG9uZSB0byB2YWx1ZS4KIFJldHVybnMgLTEgaWYgYW4gZXJyb3Igb2NjdXJyZWQsIG9yIDAgb24gc3VjY2Vzcy4KICovCiBzdGF0aWMgaW50Ci1pbnNlcnRkaWN0KHJlZ2lzdGVyIFB5RGljdE9iamVjdCAqbXAsIFB5T2JqZWN0ICprZXksIFB5X2hhc2hfdCBoYXNoLCBQeU9iamVjdCAqdmFsdWUpCitpbnNlcnRkaWN0KFB5RGljdE9iamVjdCAqbXAsIFB5T2JqZWN0ICprZXksIFB5X2hhc2hfdCBoYXNoLCBQeU9iamVjdCAqdmFsdWUpCiB7Ci0gICAgcmVnaXN0ZXIgUHlEaWN0RW50cnkgKmVwOworICAgIFB5T2JqZWN0ICpvbGRfdmFsdWU7CisgICAgUHlPYmplY3QgKip2YWx1ZV9hZGRyOworICAgIFB5RGljdEtleUVudHJ5ICplcDsKKyAgICBhc3NlcnQoa2V5ICE9IGR1bW15KTsKIAotICAgIGFzc2VydChtcC0+bWFfbG9va3VwICE9IE5VTEwpOwotICAgIGVwID0gbXAtPm1hX2xvb2t1cChtcCwga2V5LCBoYXNoKTsKKyAgICBpZiAobXAtPm1hX3ZhbHVlcyAhPSBOVUxMICYmICFQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpKSB7CisgICAgICAgIGlmIChpbnNlcnRpb25fcmVzaXplKG1wKSA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgZXAgPSBtcC0+bWFfa2V5cy0+ZGtfbG9va3VwKG1wLCBrZXksIGhhc2gsICZ2YWx1ZV9hZGRyKTsKICAgICBpZiAoZXAgPT0gTlVMTCkgewotICAgICAgICBQeV9ERUNSRUYoa2V5KTsKLSAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KLSAgICByZXR1cm4gaW5zZXJ0ZGljdF9ieV9lbnRyeShtcCwga2V5LCBoYXNoLCBlcCwgdmFsdWUpOworICAgIFB5X0lOQ1JFRih2YWx1ZSk7CisgICAgTUFJTlRBSU5fVFJBQ0tJTkcobXAsIGtleSwgdmFsdWUpOworICAgIG9sZF92YWx1ZSA9ICp2YWx1ZV9hZGRyOworICAgIGlmIChvbGRfdmFsdWUgIT0gTlVMTCkgeworICAgICAgICBhc3NlcnQoZXAtPm1lX2tleSAhPSBOVUxMICYmIGVwLT5tZV9rZXkgIT0gZHVtbXkpOworICAgICAgICAqdmFsdWVfYWRkciA9IHZhbHVlOworICAgICAgICBQeV9ERUNSRUYob2xkX3ZhbHVlKTsgLyogd2hpY2ggKipDQU4qKiByZS1lbnRlciAqLworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKGVwLT5tZV9rZXkgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfSU5DUkVGKGtleSk7CisgICAgICAgICAgICBpZiAobXAtPm1hX2tleXMtPmRrX3VzYWJsZSA8PSAwKSB7CisgICAgICAgICAgICAgICAgLyogTmVlZCB0byByZXNpemUuICovCisgICAgICAgICAgICAgICAgaWYgKGluc2VydGlvbl9yZXNpemUobXApIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoa2V5KTsKKyAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlcCA9IGZpbmRfZW1wdHlfc2xvdChtcCwga2V5LCBoYXNoLCAmdmFsdWVfYWRkcik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtcC0+bWFfa2V5cy0+ZGtfdXNhYmxlLS07CisgICAgICAgICAgICBhc3NlcnQobXAtPm1hX2tleXMtPmRrX3VzYWJsZSA+PSAwKTsKKyAgICAgICAgICAgIGVwLT5tZV9rZXkgPSBrZXk7CisgICAgICAgICAgICBlcC0+bWVfaGFzaCA9IGhhc2g7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAoZXAtPm1lX2tleSA9PSBkdW1teSkgeworICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihrZXkpOworICAgICAgICAgICAgICAgIGVwLT5tZV9rZXkgPSBrZXk7CisgICAgICAgICAgICAgICAgZXAtPm1lX2hhc2ggPSBoYXNoOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkdW1teSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydChfUHlEaWN0X0hhc1NwbGl0VGFibGUobXApKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtcC0+bWFfdXNlZCsrOworICAgICAgICAqdmFsdWVfYWRkciA9IHZhbHVlOworICAgIH0KKyAgICBhc3NlcnQoZXAtPm1lX2tleSAhPSBOVUxMICYmIGVwLT5tZV9rZXkgIT0gZHVtbXkpOworICAgIGFzc2VydChQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpIHx8IG1wLT5tYV9rZXlzLT5ka19sb29rdXAgPT0gbG9va2RpY3QpOworICAgIHJldHVybiAwOwogfQogCiAvKgpAQCAtNTcxLDE4ICs4NjUsMjUgQEAKIHVzaW5nIGluc2VydGRpY3QoKSBpbiBkaWN0cmVzaXplKCkgaXMgZGFuZ2Vyb3VzIChTRiBidWcgIzE0NTYyMDkpLgogTm90ZSB0aGF0IG5vIHJlZmNvdW50cyBhcmUgY2hhbmdlZCBieSB0aGlzIHJvdXRpbmU7IGlmIG5lZWRlZCwgdGhlIGNhbGxlcgogaXMgcmVzcG9uc2libGUgZm9yIGluY3JlZidpbmcgYGtleWAgYW5kIGB2YWx1ZWAuCitOZWl0aGVyIG1wLT5tYV91c2VkIG5vciBrLT5ka191c2FibGUgYXJlIG1vZGlmaWVkIGJ5IHRoaXMgcm91dGluZTsgdGhlIGNhbGxlcgorbXVzdCBzZXQgdGhlbSBjb3JyZWN0bHkKICovCiBzdGF0aWMgdm9pZAotaW5zZXJ0ZGljdF9jbGVhbihyZWdpc3RlciBQeURpY3RPYmplY3QgKm1wLCBQeU9iamVjdCAqa2V5LCBQeV9oYXNoX3QgaGFzaCwKK2luc2VydGRpY3RfY2xlYW4oUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmtleSwgUHlfaGFzaF90IGhhc2gsCiAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp2YWx1ZSkKIHsKLSAgICByZWdpc3RlciBzaXplX3QgaTsKLSAgICByZWdpc3RlciBzaXplX3QgcGVydHVyYjsKLSAgICByZWdpc3RlciBzaXplX3QgbWFzayA9IChzaXplX3QpbXAtPm1hX21hc2s7Ci0gICAgUHlEaWN0RW50cnkgKmVwMCA9IG1wLT5tYV90YWJsZTsKLSAgICByZWdpc3RlciBQeURpY3RFbnRyeSAqZXA7CisgICAgc2l6ZV90IGk7CisgICAgc2l6ZV90IHBlcnR1cmI7CisgICAgUHlEaWN0S2V5c09iamVjdCAqayA9IG1wLT5tYV9rZXlzOworICAgIHNpemVfdCBtYXNrID0gKHNpemVfdClES19TSVpFKGspLTE7CisgICAgUHlEaWN0S2V5RW50cnkgKmVwMCA9ICZrLT5ka19lbnRyaWVzWzBdOworICAgIFB5RGljdEtleUVudHJ5ICplcDsKIAotICAgIE1BSU5UQUlOX1RSQUNLSU5HKG1wLCBrZXksIHZhbHVlKTsKKyAgICBhc3NlcnQoay0+ZGtfbG9va3VwICE9IE5VTEwpOworICAgIGFzc2VydCh2YWx1ZSAhPSBOVUxMKTsKKyAgICBhc3NlcnQoa2V5ICE9IE5VTEwpOworICAgIGFzc2VydChrZXkgIT0gZHVtbXkpOworICAgIGFzc2VydChQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpIHx8IGstPmRrX2xvb2t1cCA9PSBsb29rZGljdCk7CiAgICAgaSA9IGhhc2ggJiBtYXNrOwogICAgIGVwID0gJmVwMFtpXTsKICAgICBmb3IgKHBlcnR1cmIgPSBoYXNoOyBlcC0+bWVfa2V5ICE9IE5VTEw7IHBlcnR1cmIgPj49IFBFUlRVUkJfU0hJRlQpIHsKQEAgLTU5MCwzMSArODkxLDMxIEBACiAgICAgICAgIGVwID0gJmVwMFtpICYgbWFza107CiAgICAgfQogICAgIGFzc2VydChlcC0+bWVfdmFsdWUgPT0gTlVMTCk7Ci0gICAgbXAtPm1hX2ZpbGwrKzsKICAgICBlcC0+bWVfa2V5ID0ga2V5OwogICAgIGVwLT5tZV9oYXNoID0gaGFzaDsKICAgICBlcC0+bWVfdmFsdWUgPSB2YWx1ZTsKLSAgICBtcC0+bWFfdXNlZCsrOwogfQogCiAvKgogUmVzdHJ1Y3R1cmUgdGhlIHRhYmxlIGJ5IGFsbG9jYXRpbmcgYSBuZXcgdGFibGUgYW5kIHJlaW5zZXJ0aW5nIGFsbAogaXRlbXMgYWdhaW4uICBXaGVuIGVudHJpZXMgaGF2ZSBiZWVuIGRlbGV0ZWQsIHRoZSBuZXcgdGFibGUgbWF5CiBhY3R1YWxseSBiZSBzbWFsbGVyIHRoYW4gdGhlIG9sZCBvbmUuCitJZiBhIHRhYmxlIGlzIHNwbGl0IChpdHMga2V5cyBhbmQgaGFzaGVzIGFyZSBzaGFyZWQsIGl0cyB2YWx1ZXMgYXJlIG5vdCksCit0aGVuIHRoZSB2YWx1ZXMgYXJlIHRlbXBvcmFyaWx5IGNvcGllZCBpbnRvIHRoZSB0YWJsZSwgaXQgaXMgcmVzaXplZCBhcworYSBjb21iaW5lZCB0YWJsZSwgdGhlbiB0aGUgbWVfdmFsdWUgc2xvdHMgaW4gdGhlIG9sZCB0YWJsZSBhcmUgTlVMTGVkIG91dC4KK0FmdGVyIHJlc2l6aW5nIGEgdGFibGUgaXMgYWx3YXlzIGNvbWJpbmVkLAorYnV0IGNhbiBiZSByZXNwbGl0IGJ5IG1ha2Vfa2V5c19zaGFyZWQoKS4KICovCiBzdGF0aWMgaW50CiBkaWN0cmVzaXplKFB5RGljdE9iamVjdCAqbXAsIFB5X3NzaXplX3QgbWludXNlZCkKIHsKICAgICBQeV9zc2l6ZV90IG5ld3NpemU7Ci0gICAgUHlEaWN0RW50cnkgKm9sZHRhYmxlLCAqbmV3dGFibGUsICplcDsKLSAgICBQeV9zc2l6ZV90IGk7Ci0gICAgaW50IGlzX29sZHRhYmxlX21hbGxvY2VkOwotICAgIFB5RGljdEVudHJ5IHNtYWxsX2NvcHlbUHlEaWN0X01JTlNJWkVdOworICAgIFB5RGljdEtleXNPYmplY3QgKm9sZGtleXM7CisgICAgUHlPYmplY3QgKipvbGR2YWx1ZXM7CisgICAgUHlfc3NpemVfdCBpLCBvbGRzaXplOwogCi0gICAgYXNzZXJ0KG1pbnVzZWQgPj0gMCk7Ci0KLSAgICAvKiBGaW5kIHRoZSBzbWFsbGVzdCB0YWJsZSBzaXplID4gbWludXNlZC4gKi8KLSAgICBmb3IgKG5ld3NpemUgPSBQeURpY3RfTUlOU0laRTsKKy8qIEZpbmQgdGhlIHNtYWxsZXN0IHRhYmxlIHNpemUgPiBtaW51c2VkLiAqLworICAgIGZvciAobmV3c2l6ZSA9IFB5RGljdF9NSU5TSVpFX0NPTUJJTkVEOwogICAgICAgICAgbmV3c2l6ZSA8PSBtaW51c2VkICYmIG5ld3NpemUgPiAwOwogICAgICAgICAgbmV3c2l6ZSA8PD0gMSkKICAgICAgICAgOwpAQCAtNjIyLDgzICs5MjMsMTI1IEBACiAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9Ci0KLSAgICAvKiBHZXQgc3BhY2UgZm9yIGEgbmV3IHRhYmxlLiAqLwotICAgIG9sZHRhYmxlID0gbXAtPm1hX3RhYmxlOwotICAgIGFzc2VydChvbGR0YWJsZSAhPSBOVUxMKTsKLSAgICBpc19vbGR0YWJsZV9tYWxsb2NlZCA9IG9sZHRhYmxlICE9IG1wLT5tYV9zbWFsbHRhYmxlOwotCi0gICAgaWYgKG5ld3NpemUgPT0gUHlEaWN0X01JTlNJWkUpIHsKLSAgICAgICAgLyogQSBsYXJnZSB0YWJsZSBpcyBzaHJpbmtpbmcsIG9yIHdlIGNhbid0IGdldCBhbnkgc21hbGxlci4gKi8KLSAgICAgICAgbmV3dGFibGUgPSBtcC0+bWFfc21hbGx0YWJsZTsKLSAgICAgICAgaWYgKG5ld3RhYmxlID09IG9sZHRhYmxlKSB7Ci0gICAgICAgICAgICBpZiAobXAtPm1hX2ZpbGwgPT0gbXAtPm1hX3VzZWQpIHsKLSAgICAgICAgICAgICAgICAvKiBObyBkdW1taWVzLCBzbyBubyBwb2ludCBkb2luZyBhbnl0aGluZy4gKi8KLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICBvbGRrZXlzID0gbXAtPm1hX2tleXM7CisgICAgb2xkdmFsdWVzID0gbXAtPm1hX3ZhbHVlczsKKyAgICAvKiBBbGxvY2F0ZSBhIG5ldyB0YWJsZS4gKi8KKyAgICBtcC0+bWFfa2V5cyA9IG5ld19rZXlzX29iamVjdChuZXdzaXplKTsKKyAgICBpZiAobXAtPm1hX2tleXMgPT0gTlVMTCkgeworICAgICAgICBtcC0+bWFfa2V5cyA9IG9sZGtleXM7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKG9sZGtleXMtPmRrX2xvb2t1cCA9PSBsb29rZGljdCkKKyAgICAgICAgbXAtPm1hX2tleXMtPmRrX2xvb2t1cCA9IGxvb2tkaWN0OworICAgIG9sZHNpemUgPSBES19TSVpFKG9sZGtleXMpOworICAgIG1wLT5tYV92YWx1ZXMgPSBOVUxMOworICAgIC8qIElmIGVtcHR5IHRoZW4gbm90aGluZyB0byBjb3B5IHNvIGp1c3QgcmV0dXJuICovCisgICAgaWYgKG9sZHNpemUgPT0gMSkgeworICAgICAgICBhc3NlcnQob2xka2V5cyA9PSBQeV9FTVBUWV9LRVlTKTsKKyAgICAgICAgREtfREVDUkVGKG9sZGtleXMpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgLyogTWFpbiBsb29wIGJlbG93IGFzc3VtZXMgd2UgY2FuIHRyYW5zZmVyIHJlZmNvdW50IHRvIG5ldyBrZXlzCisgICAgICogYW5kIHRoYXQgdmFsdWUgaXMgc3RvcmVkIGluIG1lX3ZhbHVlLgorICAgICAqIEluY3JlbWVudCByZWYtY291bnRzIGFuZCBjb3B5IHZhbHVlcyBoZXJlIHRvIGNvbXBlbnNhdGUKKyAgICAgKiBUaGlzIChyZXNpemluZyBhIHNwbGl0IHRhYmxlKSBzaG91bGQgYmUgcmVsYXRpdmVseSByYXJlICovCisgICAgaWYgKG9sZHZhbHVlcyAhPSBOVUxMKSB7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBvbGRzaXplOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChvbGR2YWx1ZXNbaV0gIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihvbGRrZXlzLT5ka19lbnRyaWVzW2ldLm1lX2tleSk7CisgICAgICAgICAgICAgICAgb2xka2V5cy0+ZGtfZW50cmllc1tpXS5tZV92YWx1ZSA9IG9sZHZhbHVlc1tpXTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8qIFdlJ3JlIG5vdCBnb2luZyB0byByZXNpemUgaXQsIGJ1dCByZWJ1aWxkIHRoZQotICAgICAgICAgICAgICAgdGFibGUgYW55d2F5IHRvIHB1cmdlIG9sZCBkdW1teSBlbnRyaWVzLgotICAgICAgICAgICAgICAgU3VidGxlOiAgVGhpcyBpcyAqbmVjZXNzYXJ5KiBpZiBmaWxsPT1zaXplLAotICAgICAgICAgICAgICAgYXMgbG9va2RpY3QgbmVlZHMgYXQgbGVhc3Qgb25lIHZpcmdpbiBzbG90IHRvCi0gICAgICAgICAgICAgICB0ZXJtaW5hdGUgZmFpbGluZyBzZWFyY2hlcy4gIElmIGZpbGwgPCBzaXplLCBpdCdzCi0gICAgICAgICAgICAgICBtZXJlbHkgZGVzaXJhYmxlLCBhcyBkdW1taWVzIHNsb3cgc2VhcmNoZXMuICovCi0gICAgICAgICAgICBhc3NlcnQobXAtPm1hX2ZpbGwgPiBtcC0+bWFfdXNlZCk7Ci0gICAgICAgICAgICBtZW1jcHkoc21hbGxfY29weSwgb2xkdGFibGUsIHNpemVvZihzbWFsbF9jb3B5KSk7Ci0gICAgICAgICAgICBvbGR0YWJsZSA9IHNtYWxsX2NvcHk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIG5ld3RhYmxlID0gUHlNZW1fTkVXKFB5RGljdEVudHJ5LCBuZXdzaXplKTsKLSAgICAgICAgaWYgKG5ld3RhYmxlID09IE5VTEwpIHsKLSAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICAvKiBNYWtlIHRoZSBkaWN0IGVtcHR5LCB1c2luZyB0aGUgbmV3IHRhYmxlLiAqLwotICAgIGFzc2VydChuZXd0YWJsZSAhPSBvbGR0YWJsZSk7Ci0gICAgbXAtPm1hX3RhYmxlID0gbmV3dGFibGU7Ci0gICAgbXAtPm1hX21hc2sgPSBuZXdzaXplIC0gMTsKLSAgICBtZW1zZXQobmV3dGFibGUsIDAsIHNpemVvZihQeURpY3RFbnRyeSkgKiBuZXdzaXplKTsKLSAgICBtcC0+bWFfdXNlZCA9IDA7Ci0gICAgaSA9IG1wLT5tYV9maWxsOwotICAgIG1wLT5tYV9maWxsID0gMDsKLQotICAgIC8qIENvcHkgdGhlIGRhdGEgb3ZlcjsgdGhpcyBpcyByZWZjb3VudC1uZXV0cmFsIGZvciBhY3RpdmUgZW50cmllczsKLSAgICAgICBkdW1teSBlbnRyaWVzIGFyZW4ndCBjb3BpZWQgb3Zlciwgb2YgY291cnNlICovCi0gICAgZm9yIChlcCA9IG9sZHRhYmxlOyBpID4gMDsgZXArKykgewotICAgICAgICBpZiAoZXAtPm1lX3ZhbHVlICE9IE5VTEwpIHsgICAgICAgICAgICAgLyogYWN0aXZlIGVudHJ5ICovCi0gICAgICAgICAgICAtLWk7CisgICAgLyogTWFpbiBsb29wICovCisgICAgZm9yIChpID0gMDsgaSA8IG9sZHNpemU7IGkrKykgeworICAgICAgICBQeURpY3RLZXlFbnRyeSAqZXAgPSAmb2xka2V5cy0+ZGtfZW50cmllc1tpXTsKKyAgICAgICAgaWYgKGVwLT5tZV92YWx1ZSAhPSBOVUxMKSB7CisgICAgICAgICAgICBhc3NlcnQoZXAtPm1lX2tleSAhPSBkdW1teSk7CiAgICAgICAgICAgICBpbnNlcnRkaWN0X2NsZWFuKG1wLCBlcC0+bWVfa2V5LCBlcC0+bWVfaGFzaCwgZXAtPm1lX3ZhbHVlKTsKICAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChlcC0+bWVfa2V5ICE9IE5VTEwpIHsgICAgICAgICAgLyogZHVtbXkgZW50cnkgKi8KLSAgICAgICAgICAgIC0taTsKLSAgICAgICAgICAgIGFzc2VydChlcC0+bWVfa2V5ID09IGR1bW15KTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihlcC0+bWVfa2V5KTsKLSAgICAgICAgfQotICAgICAgICAvKiBlbHNlIGtleSA9PSB2YWx1ZSA9PSBOVUxMOiAgbm90aGluZyB0byBkbyAqLwogICAgIH0KLQotICAgIGlmIChpc19vbGR0YWJsZV9tYWxsb2NlZCkKLSAgICAgICAgUHlNZW1fREVMKG9sZHRhYmxlKTsKKyAgICBtcC0+bWFfa2V5cy0+ZGtfdXNhYmxlIC09IG1wLT5tYV91c2VkOworICAgIGlmIChvbGR2YWx1ZXMgIT0gTlVMTCkgeworICAgICAgICAvKiBOVUxMIG91dCBtZV92YWx1ZSBzbG90IGluIG9sZGtleXMsIGluIGNhc2UgaXQgd2FzIHNoYXJlZCAqLworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb2xkc2l6ZTsgaSsrKQorICAgICAgICAgICAgb2xka2V5cy0+ZGtfZW50cmllc1tpXS5tZV92YWx1ZSA9IE5VTEw7CisgICAgICAgIGFzc2VydChvbGR2YWx1ZXMgIT0gZW1wdHlfdmFsdWVzKTsKKyAgICAgICAgZnJlZV92YWx1ZXMob2xkdmFsdWVzKTsKKyAgICAgICAgREtfREVDUkVGKG9sZGtleXMpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgYXNzZXJ0KG9sZGtleXMtPmRrX2xvb2t1cCAhPSBsb29rZGljdF9zcGxpdCk7CisgICAgICAgIGlmIChvbGRrZXlzLT5ka19sb29rdXAgIT0gbG9va2RpY3RfdW5pY29kZV9ub2R1bW15KSB7CisgICAgICAgICAgICBQeURpY3RLZXlFbnRyeSAqZXAwID0gJm9sZGtleXMtPmRrX2VudHJpZXNbMF07CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgb2xkc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgaWYgKGVwMFtpXS5tZV9rZXkgPT0gZHVtbXkpCisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkdW1teSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYXNzZXJ0KG9sZGtleXMtPmRrX3JlZmNudCA9PSAxKTsKKyAgICAgICAgREtfREVCVUdfREVDUkVGIFB5TWVtX0ZSRUUob2xka2V5cyk7CisgICAgfQogICAgIHJldHVybiAwOwogfQogCi0vKiBDcmVhdGUgYSBuZXcgZGljdGlvbmFyeSBwcmUtc2l6ZWQgdG8gaG9sZCBhbiBlc3RpbWF0ZWQgbnVtYmVyIG9mIGVsZW1lbnRzLgotICAgVW5kZXJlc3RpbWF0ZXMgYXJlIG9rYXkgYmVjYXVzZSB0aGUgZGljdGlvbmFyeSB3aWxsIHJlc2l6ZSBhcyBuZWNlc3NhcnkuCi0gICBPdmVyZXN0aW1hdGVzIGp1c3QgbWVhbiB0aGUgZGljdGlvbmFyeSB3aWxsIGJlIG1vcmUgc3BhcnNlIHRoYW4gdXN1YWwuCi0qLworLyogUmV0dXJucyBOVUxMIGlmIHVuYWJsZSB0byBzcGxpdCB0YWJsZS4KKyAqIEEgTlVMTCByZXR1cm4gZG9lcyBub3QgbmVjZXNzYXJpbHkgaW5kaWNhdGUgYW4gZXJyb3IgKi8KK3N0YXRpYyBQeURpY3RLZXlzT2JqZWN0ICoKK21ha2Vfa2V5c19zaGFyZWQoUHlPYmplY3QgKm9wKQoreworICAgIFB5X3NzaXplX3QgaTsKKyAgICBQeV9zc2l6ZV90IHNpemU7CisgICAgUHlEaWN0T2JqZWN0ICptcCA9IChQeURpY3RPYmplY3QgKilvcDsKKworICAgIGlmICghUHlEaWN0X0NoZWNrRXhhY3Qob3ApKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoIV9QeURpY3RfSGFzU3BsaXRUYWJsZShtcCkpIHsKKyAgICAgICAgUHlEaWN0S2V5RW50cnkgKmVwMDsKKyAgICAgICAgUHlPYmplY3QgKip2YWx1ZXM7CisgICAgICAgIGFzc2VydChtcC0+bWFfa2V5cy0+ZGtfcmVmY250ID09IDEpOworICAgICAgICBpZiAobXAtPm1hX2tleXMtPmRrX2xvb2t1cCA9PSBsb29rZGljdCkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAobXAtPm1hX2tleXMtPmRrX2xvb2t1cCA9PSBsb29rZGljdF91bmljb2RlKSB7CisgICAgICAgICAgICAvKiBSZW1vdmUgZHVtbXkga2V5cyAqLworICAgICAgICAgICAgaWYgKGRpY3RyZXNpemUobXAsIERLX1NJWkUobXAtPm1hX2tleXMpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnQobXAtPm1hX2tleXMtPmRrX2xvb2t1cCA9PSBsb29rZGljdF91bmljb2RlX25vZHVtbXkpOworICAgICAgICAvKiBDb3B5IHZhbHVlcyBpbnRvIGEgbmV3IGFycmF5ICovCisgICAgICAgIGVwMCA9ICZtcC0+bWFfa2V5cy0+ZGtfZW50cmllc1swXTsKKyAgICAgICAgc2l6ZSA9IERLX1NJWkUobXAtPm1hX2tleXMpOworICAgICAgICB2YWx1ZXMgPSBuZXdfdmFsdWVzKHNpemUpOworICAgICAgICBpZiAodmFsdWVzID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19NZW1vcnlFcnJvciwKKyAgICAgICAgICAgICAgICAiTm90IGVub3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgbmV3IHZhbHVlcyBhcnJheSIpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgdmFsdWVzW2ldID0gZXAwW2ldLm1lX3ZhbHVlOworICAgICAgICAgICAgZXAwW2ldLm1lX3ZhbHVlID0gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBtcC0+bWFfa2V5cy0+ZGtfbG9va3VwID0gbG9va2RpY3Rfc3BsaXQ7CisgICAgICAgIG1wLT5tYV92YWx1ZXMgPSB2YWx1ZXM7CisgICAgfQorICAgIERLX0lOQ1JFRihtcC0+bWFfa2V5cyk7CisgICAgcmV0dXJuIG1wLT5tYV9rZXlzOworfQogCiBQeU9iamVjdCAqCiBfUHlEaWN0X05ld1ByZXNpemVkKFB5X3NzaXplX3QgbWludXNlZCkKIHsKLSAgICBQeU9iamVjdCAqb3AgPSBQeURpY3RfTmV3KCk7Ci0KLSAgICBpZiAobWludXNlZD41ICYmIG9wICE9IE5VTEwgJiYgZGljdHJlc2l6ZSgoUHlEaWN0T2JqZWN0ICopb3AsIG1pbnVzZWQpID09IC0xKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihvcCk7CisgICAgUHlfc3NpemVfdCBuZXdzaXplOworICAgIFB5RGljdEtleXNPYmplY3QgKm5ld19rZXlzOworICAgIGZvciAobmV3c2l6ZSA9IFB5RGljdF9NSU5TSVpFX0NPTUJJTkVEOworICAgICAgICAgbmV3c2l6ZSA8PSBtaW51c2VkICYmIG5ld3NpemUgPiAwOworICAgICAgICAgbmV3c2l6ZSA8PD0gMSkKKyAgICAgICAgOworICAgIG5ld19rZXlzID0gbmV3X2tleXNfb2JqZWN0KG5ld3NpemUpOworICAgIGlmIChuZXdfa2V5cyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIG9wOworICAgIHJldHVybiBuZXdfZGljdChuZXdfa2V5cywgTlVMTCk7CiB9CiAKIC8qIE5vdGUgdGhhdCwgZm9yIGhpc3RvcmljYWwgcmVhc29ucywgUHlEaWN0X0dldEl0ZW0oKSBzdXBwcmVzc2VzIGFsbCBlcnJvcnMKQEAgLTcxNiwxMiArMTA1OSwxNCBAQAogewogICAgIFB5X2hhc2hfdCBoYXNoOwogICAgIFB5RGljdE9iamVjdCAqbXAgPSAoUHlEaWN0T2JqZWN0ICopb3A7Ci0gICAgUHlEaWN0RW50cnkgKmVwOworICAgIFB5RGljdEtleUVudHJ5ICplcDsKICAgICBQeVRocmVhZFN0YXRlICp0c3RhdGU7CisgICAgUHlPYmplY3QgKip2YWx1ZV9hZGRyOworCiAgICAgaWYgKCFQeURpY3RfQ2hlY2sob3ApKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAoIVB5VW5pY29kZV9DaGVja0V4YWN0KGtleSkgfHwKLSAgICAgICAgKGhhc2ggPSAoKFB5VW5pY29kZU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkKKyAgICAgICAgKGhhc2ggPSAoKFB5QVNDSUlPYmplY3QgKikga2V5KS0+aGFzaCkgPT0gLTEpCiAgICAgewogICAgICAgICBoYXNoID0gUHlPYmplY3RfSGFzaChrZXkpOwogICAgICAgICBpZiAoaGFzaCA9PSAtMSkgewpAQCAtNzQxLDIwICsxMDg2LDIwIEBACiAgICAgICAgIC8qIHByZXNlcnZlIHRoZSBleGlzdGluZyBleGNlcHRpb24gKi8KICAgICAgICAgUHlPYmplY3QgKmVycl90eXBlLCAqZXJyX3ZhbHVlLCAqZXJyX3RiOwogICAgICAgICBQeUVycl9GZXRjaCgmZXJyX3R5cGUsICZlcnJfdmFsdWUsICZlcnJfdGIpOwotICAgICAgICBlcCA9IChtcC0+bWFfbG9va3VwKShtcCwga2V5LCBoYXNoKTsKKyAgICAgICAgZXAgPSAobXAtPm1hX2tleXMtPmRrX2xvb2t1cCkobXAsIGtleSwgaGFzaCwgJnZhbHVlX2FkZHIpOwogICAgICAgICAvKiBpZ25vcmUgZXJyb3JzICovCiAgICAgICAgIFB5RXJyX1Jlc3RvcmUoZXJyX3R5cGUsIGVycl92YWx1ZSwgZXJyX3RiKTsKICAgICAgICAgaWYgKGVwID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIGVwID0gKG1wLT5tYV9sb29rdXApKG1wLCBrZXksIGhhc2gpOworICAgICAgICBlcCA9IChtcC0+bWFfa2V5cy0+ZGtfbG9va3VwKShtcCwga2V5LCBoYXNoLCAmdmFsdWVfYWRkcik7CiAgICAgICAgIGlmIChlcCA9PSBOVUxMKSB7CiAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGVwLT5tZV92YWx1ZTsKKyAgICByZXR1cm4gKnZhbHVlX2FkZHI7CiB9CiAKIC8qIFZhcmlhbnQgb2YgUHlEaWN0X0dldEl0ZW0oKSB0aGF0IGRvZXNuJ3Qgc3VwcHJlc3MgZXhjZXB0aW9ucy4KQEAgLTc2NiwxNCArMTExMSwxNSBAQAogewogICAgIFB5X2hhc2hfdCBoYXNoOwogICAgIFB5RGljdE9iamVjdCptcCA9IChQeURpY3RPYmplY3QgKilvcDsKLSAgICBQeURpY3RFbnRyeSAqZXA7CisgICAgUHlEaWN0S2V5RW50cnkgKmVwOworICAgIFB5T2JqZWN0ICoqdmFsdWVfYWRkcjsKIAogICAgIGlmICghUHlEaWN0X0NoZWNrKG9wKSkgewogICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIGlmICghUHlVbmljb2RlX0NoZWNrRXhhY3Qoa2V5KSB8fAotICAgICAgICAoaGFzaCA9ICgoUHlVbmljb2RlT2JqZWN0ICopIGtleSktPmhhc2gpID09IC0xKQorICAgICAgICAoaGFzaCA9ICgoUHlBU0NJSU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkKICAgICB7CiAgICAgICAgIGhhc2ggPSBQeU9iamVjdF9IYXNoKGtleSk7CiAgICAgICAgIGlmIChoYXNoID09IC0xKSB7CkBAIC03ODEsNDkgKzExMjcsNTUgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIGVwID0gKG1wLT5tYV9sb29rdXApKG1wLCBrZXksIGhhc2gpOworICAgIGVwID0gKG1wLT5tYV9rZXlzLT5ka19sb29rdXApKG1wLCBrZXksIGhhc2gsICZ2YWx1ZV9hZGRyKTsKICAgICBpZiAoZXAgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcmV0dXJuIGVwLT5tZV92YWx1ZTsKKyAgICByZXR1cm4gKnZhbHVlX2FkZHI7CiB9CiAKLXN0YXRpYyBpbnQKLWRpY3Rfc2V0X2l0ZW1fYnlfaGFzaF9vcl9lbnRyeShyZWdpc3RlciBQeU9iamVjdCAqb3AsIFB5T2JqZWN0ICprZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfaGFzaF90IGhhc2gsIFB5RGljdEVudHJ5ICplcCwgUHlPYmplY3QgKnZhbHVlKQorUHlPYmplY3QgKgorX1B5RGljdF9HZXRJdGVtSWRXaXRoRXJyb3IoUHlPYmplY3QgKmRwLCBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKmtleSkKIHsKLSAgICByZWdpc3RlciBQeURpY3RPYmplY3QgKm1wOwotICAgIHJlZ2lzdGVyIFB5X3NzaXplX3Qgbl91c2VkOworICAgIFB5T2JqZWN0ICprdjsKKyAgICBrdiA9IF9QeVVuaWNvZGVfRnJvbUlkKGtleSk7IC8qIGJvcnJvd2VkICovCisgICAgaWYgKGt2ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiBQeURpY3RfR2V0SXRlbVdpdGhFcnJvcihkcCwga3YpOworfQogCi0gICAgbXAgPSAoUHlEaWN0T2JqZWN0ICopb3A7Ci0gICAgYXNzZXJ0KG1wLT5tYV9maWxsIDw9IG1wLT5tYV9tYXNrKTsgIC8qIGF0IGxlYXN0IG9uZSBlbXB0eSBzbG90ICovCi0gICAgbl91c2VkID0gbXAtPm1hX3VzZWQ7Ci0gICAgUHlfSU5DUkVGKHZhbHVlKTsKLSAgICBQeV9JTkNSRUYoa2V5KTsKLSAgICBpZiAoZXAgPT0gTlVMTCkgewotICAgICAgICBpZiAoaW5zZXJ0ZGljdChtcCwga2V5LCBoYXNoLCB2YWx1ZSkgIT0gMCkKLSAgICAgICAgICAgIHJldHVybiAtMTsKKy8qIEZhc3QgdmVyc2lvbiBvZiBnbG9iYWwgdmFsdWUgbG9va3VwLgorICogTG9va3VwIGluIGdsb2JhbHMsIHRoZW4gYnVpbHRpbnMuCisgKi8KK1B5T2JqZWN0ICoKK19QeURpY3RfTG9hZEdsb2JhbChQeURpY3RPYmplY3QgKmdsb2JhbHMsIFB5RGljdE9iamVjdCAqYnVpbHRpbnMsIFB5T2JqZWN0ICprZXkpCit7CisgICAgUHlPYmplY3QgKng7CisgICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KGtleSkpIHsKKyAgICAgICAgUHlPYmplY3QgKip2YWx1ZV9hZGRyOworICAgICAgICBQeV9oYXNoX3QgaGFzaCA9ICgoUHlBU0NJSU9iamVjdCAqKWtleSktPmhhc2g7CisgICAgICAgIGlmIChoYXNoICE9IC0xKSB7CisgICAgICAgICAgICBQeURpY3RLZXlFbnRyeSAqZTsKKyAgICAgICAgICAgIGUgPSBnbG9iYWxzLT5tYV9rZXlzLT5ka19sb29rdXAoZ2xvYmFscywga2V5LCBoYXNoLCAmdmFsdWVfYWRkcik7CisgICAgICAgICAgICBpZiAoZSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB4ID0gKnZhbHVlX2FkZHI7CisgICAgICAgICAgICBpZiAoeCAhPSBOVUxMKQorICAgICAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICAgICAgZSA9IGJ1aWx0aW5zLT5tYV9rZXlzLT5ka19sb29rdXAoYnVpbHRpbnMsIGtleSwgaGFzaCwgJnZhbHVlX2FkZHIpOworICAgICAgICAgICAgaWYgKGUgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICAgICAgeCA9ICp2YWx1ZV9hZGRyOworICAgICAgICAgICAgcmV0dXJuIHg7CisgICAgICAgIH0KICAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChpbnNlcnRkaWN0X2J5X2VudHJ5KG1wLCBrZXksIGhhc2gsIGVwLCB2YWx1ZSkgIT0gMCkKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgLyogSWYgd2UgYWRkZWQgYSBrZXksIHdlIGNhbiBzYWZlbHkgcmVzaXplLiAgT3RoZXJ3aXNlIGp1c3QgcmV0dXJuIQotICAgICAqIElmIGZpbGwgPj0gMi8zIHNpemUsIGFkanVzdCBzaXplLiAgTm9ybWFsbHksIHRoaXMgZG91YmxlcyBvcgotICAgICAqIHF1YWR1cGxlcyB0aGUgc2l6ZSwgYnV0IGl0J3MgYWxzbyBwb3NzaWJsZSBmb3IgdGhlIGRpY3QgdG8gc2hyaW5rCi0gICAgICogKGlmIG1hX2ZpbGwgaXMgbXVjaCBsYXJnZXIgdGhhbiBtYV91c2VkLCBtZWFuaW5nIGEgbG90IG9mIGRpY3QKLSAgICAgKiBrZXlzIGhhdmUgYmVlbiAqIGRlbGV0ZWQpLgotICAgICAqCi0gICAgICogUXVhZHJ1cGxpbmcgdGhlIHNpemUgaW1wcm92ZXMgYXZlcmFnZSBkaWN0aW9uYXJ5IHNwYXJzZW5lc3MKLSAgICAgKiAocmVkdWNpbmcgY29sbGlzaW9ucykgYXQgdGhlIGNvc3Qgb2Ygc29tZSBtZW1vcnkgYW5kIGl0ZXJhdGlvbgotICAgICAqIHNwZWVkICh3aGljaCBsb29wcyBvdmVyIGV2ZXJ5IHBvc3NpYmxlIGVudHJ5KS4gIEl0IGFsc28gaGFsdmVzCi0gICAgICogdGhlIG51bWJlciBvZiBleHBlbnNpdmUgcmVzaXplIG9wZXJhdGlvbnMgaW4gYSBncm93aW5nIGRpY3Rpb25hcnkuCi0gICAgICoKLSAgICAgKiBWZXJ5IGxhcmdlIGRpY3Rpb25hcmllcyAob3ZlciA1MEsgaXRlbXMpIHVzZSBkb3VibGluZyBpbnN0ZWFkLgotICAgICAqIFRoaXMgbWF5IGhlbHAgYXBwbGljYXRpb25zIHdpdGggc2V2ZXJlIG1lbW9yeSBjb25zdHJhaW50cy4KLSAgICAgKi8KLSAgICBpZiAoIShtcC0+bWFfdXNlZCA+IG5fdXNlZCAmJiBtcC0+bWFfZmlsbCozID49IChtcC0+bWFfbWFzaysxKSoyKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGRpY3RyZXNpemUobXAsIChtcC0+bWFfdXNlZCA+IDUwMDAwID8gMiA6IDQpICogbXAtPm1hX3VzZWQpOworICAgIHggPSBQeURpY3RfR2V0SXRlbVdpdGhFcnJvcigoUHlPYmplY3QgKilnbG9iYWxzLCBrZXkpOworICAgIGlmICh4ICE9IE5VTEwpCisgICAgICAgIHJldHVybiB4OworICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gUHlEaWN0X0dldEl0ZW1XaXRoRXJyb3IoKFB5T2JqZWN0ICopYnVpbHRpbnMsIGtleSk7CiB9CiAKIC8qIENBVVRJT046IFB5RGljdF9TZXRJdGVtKCkgbXVzdCBndWFyYW50ZWUgdGhhdCBpdCB3b24ndCByZXNpemUgdGhlCkBAIC04MzMsMzYgKzExODUsMzcgQEAKICAqIHJlbW92ZSB0aGVtLgogICovCiBpbnQKLVB5RGljdF9TZXRJdGVtKHJlZ2lzdGVyIFB5T2JqZWN0ICpvcCwgUHlPYmplY3QgKmtleSwgUHlPYmplY3QgKnZhbHVlKQorUHlEaWN0X1NldEl0ZW0oUHlPYmplY3QgKm9wLCBQeU9iamVjdCAqa2V5LCBQeU9iamVjdCAqdmFsdWUpCiB7Ci0gICAgcmVnaXN0ZXIgUHlfaGFzaF90IGhhc2g7Ci0KKyAgICBQeURpY3RPYmplY3QgKm1wOworICAgIFB5X2hhc2hfdCBoYXNoOwogICAgIGlmICghUHlEaWN0X0NoZWNrKG9wKSkgewogICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICBhc3NlcnQoa2V5KTsKICAgICBhc3NlcnQodmFsdWUpOwotICAgIGlmIChQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpKSB7Ci0gICAgICAgIGhhc2ggPSAoKFB5VW5pY29kZU9iamVjdCAqKSBrZXkpLT5oYXNoOwotICAgICAgICBpZiAoaGFzaCA9PSAtMSkKLSAgICAgICAgICAgIGhhc2ggPSBQeU9iamVjdF9IYXNoKGtleSk7Ci0gICAgfQotICAgIGVsc2UgeworICAgIG1wID0gKFB5RGljdE9iamVjdCAqKW9wOworICAgIGlmICghUHlVbmljb2RlX0NoZWNrRXhhY3Qoa2V5KSB8fAorICAgICAgICAoaGFzaCA9ICgoUHlBU0NJSU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkKKyAgICB7CiAgICAgICAgIGhhc2ggPSBQeU9iamVjdF9IYXNoKGtleSk7CiAgICAgICAgIGlmIChoYXNoID09IC0xKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KLSAgICByZXR1cm4gZGljdF9zZXRfaXRlbV9ieV9oYXNoX29yX2VudHJ5KG9wLCBrZXksIGhhc2gsIE5VTEwsIHZhbHVlKTsKKworICAgIC8qIGluc2VydGRpY3QoKSBoYW5kbGVzIGFueSByZXNpemluZyB0aGF0IG1pZ2h0IGJlIG5lY2Vzc2FyeSAqLworICAgIHJldHVybiBpbnNlcnRkaWN0KG1wLCBrZXksIGhhc2gsIHZhbHVlKTsKIH0KIAogaW50CiBQeURpY3RfRGVsSXRlbShQeU9iamVjdCAqb3AsIFB5T2JqZWN0ICprZXkpCiB7Ci0gICAgcmVnaXN0ZXIgUHlEaWN0T2JqZWN0ICptcDsKLSAgICByZWdpc3RlciBQeV9oYXNoX3QgaGFzaDsKLSAgICByZWdpc3RlciBQeURpY3RFbnRyeSAqZXA7Ci0gICAgUHlPYmplY3QgKm9sZF92YWx1ZSwgKm9sZF9rZXk7CisgICAgUHlEaWN0T2JqZWN0ICptcDsKKyAgICBQeV9oYXNoX3QgaGFzaDsKKyAgICBQeURpY3RLZXlFbnRyeSAqZXA7CisgICAgUHlPYmplY3QgKm9sZF9rZXksICpvbGRfdmFsdWU7CisgICAgUHlPYmplY3QgKip2YWx1ZV9hZGRyOwogCiAgICAgaWYgKCFQeURpY3RfQ2hlY2sob3ApKSB7CiAgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOwpAQCAtODcwLDI3ICsxMjIzLDMwIEBACiAgICAgfQogICAgIGFzc2VydChrZXkpOwogICAgIGlmICghUHlVbmljb2RlX0NoZWNrRXhhY3Qoa2V5KSB8fAotICAgICAgICAoaGFzaCA9ICgoUHlVbmljb2RlT2JqZWN0ICopIGtleSktPmhhc2gpID09IC0xKSB7CisgICAgICAgIChoYXNoID0gKChQeUFTQ0lJT2JqZWN0ICopIGtleSktPmhhc2gpID09IC0xKSB7CiAgICAgICAgIGhhc2ggPSBQeU9iamVjdF9IYXNoKGtleSk7CiAgICAgICAgIGlmIChoYXNoID09IC0xKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICBtcCA9IChQeURpY3RPYmplY3QgKilvcDsKLSAgICBlcCA9IChtcC0+bWFfbG9va3VwKShtcCwga2V5LCBoYXNoKTsKKyAgICBlcCA9IChtcC0+bWFfa2V5cy0+ZGtfbG9va3VwKShtcCwga2V5LCBoYXNoLCAmdmFsdWVfYWRkcik7CiAgICAgaWYgKGVwID09IE5VTEwpCiAgICAgICAgIHJldHVybiAtMTsKLSAgICBpZiAoZXAtPm1lX3ZhbHVlID09IE5VTEwpIHsKKyAgICBpZiAoKnZhbHVlX2FkZHIgPT0gTlVMTCkgewogICAgICAgICBzZXRfa2V5X2Vycm9yKGtleSk7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9Ci0gICAgb2xkX2tleSA9IGVwLT5tZV9rZXk7Ci0gICAgUHlfSU5DUkVGKGR1bW15KTsKLSAgICBlcC0+bWVfa2V5ID0gZHVtbXk7Ci0gICAgb2xkX3ZhbHVlID0gZXAtPm1lX3ZhbHVlOwotICAgIGVwLT5tZV92YWx1ZSA9IE5VTEw7CisgICAgb2xkX3ZhbHVlID0gKnZhbHVlX2FkZHI7CisgICAgKnZhbHVlX2FkZHIgPSBOVUxMOwogICAgIG1wLT5tYV91c2VkLS07CisgICAgaWYgKCFfUHlEaWN0X0hhc1NwbGl0VGFibGUobXApKSB7CisgICAgICAgIEVOU1VSRV9BTExPV1NfREVMRVRJT05TKG1wKTsKKyAgICAgICAgb2xkX2tleSA9IGVwLT5tZV9rZXk7CisgICAgICAgIFB5X0lOQ1JFRihkdW1teSk7CisgICAgICAgIGVwLT5tZV9rZXkgPSBkdW1teTsKKyAgICAgICAgUHlfREVDUkVGKG9sZF9rZXkpOworICAgIH0KICAgICBQeV9ERUNSRUYob2xkX3ZhbHVlKTsKLSAgICBQeV9ERUNSRUYob2xkX2tleSk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTg5OCw2OSArMTI1NCw3MCBAQAogUHlEaWN0X0NsZWFyKFB5T2JqZWN0ICpvcCkKIHsKICAgICBQeURpY3RPYmplY3QgKm1wOwotICAgIFB5RGljdEVudHJ5ICplcCwgKnRhYmxlOwotICAgIGludCB0YWJsZV9pc19tYWxsb2NlZDsKLSAgICBQeV9zc2l6ZV90IGZpbGw7Ci0gICAgUHlEaWN0RW50cnkgc21hbGxfY29weVtQeURpY3RfTUlOU0laRV07Ci0jaWZkZWYgUHlfREVCVUcKKyAgICBQeURpY3RLZXlzT2JqZWN0ICpvbGRrZXlzOworICAgIFB5T2JqZWN0ICoqb2xkdmFsdWVzOwogICAgIFB5X3NzaXplX3QgaSwgbjsKLSNlbmRpZgogCiAgICAgaWYgKCFQeURpY3RfQ2hlY2sob3ApKQogICAgICAgICByZXR1cm47CisgICAgbXAgPSAoKFB5RGljdE9iamVjdCAqKW9wKTsKKyAgICBvbGRrZXlzID0gbXAtPm1hX2tleXM7CisgICAgb2xkdmFsdWVzID0gbXAtPm1hX3ZhbHVlczsKKyAgICBpZiAob2xkdmFsdWVzID09IGVtcHR5X3ZhbHVlcykKKyAgICAgICAgcmV0dXJuOworICAgIC8qIEVtcHR5IHRoZSBkaWN0Li4uICovCisgICAgREtfSU5DUkVGKFB5X0VNUFRZX0tFWVMpOworICAgIG1wLT5tYV9rZXlzID0gUHlfRU1QVFlfS0VZUzsKKyAgICBtcC0+bWFfdmFsdWVzID0gZW1wdHlfdmFsdWVzOworICAgIG1wLT5tYV91c2VkID0gMDsKKyAgICAvKiAuLi50aGVuIGNsZWFyIHRoZSBrZXlzIGFuZCB2YWx1ZXMgKi8KKyAgICBpZiAob2xkdmFsdWVzICE9IE5VTEwpIHsKKyAgICAgICAgbiA9IERLX1NJWkUob2xka2V5cyk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisgICAgICAgICAgICBQeV9DTEVBUihvbGR2YWx1ZXNbaV0pOworICAgICAgICBmcmVlX3ZhbHVlcyhvbGR2YWx1ZXMpOworICAgICAgICBES19ERUNSRUYob2xka2V5cyk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgIGFzc2VydChvbGRrZXlzLT5ka19yZWZjbnQgPT0gMSk7CisgICAgICAgREtfREVDUkVGKG9sZGtleXMpOworICAgIH0KK30KKworLyogUmV0dXJucyAtMSBpZiBubyBtb3JlIGl0ZW1zIChvciBvcCBpcyBub3QgYSBkaWN0KSwKKyAqIGluZGV4IG9mIGl0ZW0gb3RoZXJ3aXNlLiBTdG9yZXMgdmFsdWUgaW4gcHZhbHVlCisgKi8KK1B5X0xPQ0FMX0lOTElORShQeV9zc2l6ZV90KQorZGljdF9uZXh0KFB5T2JqZWN0ICpvcCwgUHlfc3NpemVfdCBpLCBQeU9iamVjdCAqKnB2YWx1ZSkKK3sKKyAgICBQeV9zc2l6ZV90IG1hc2ssIG9mZnNldDsKKyAgICBQeURpY3RPYmplY3QgKm1wOworICAgIFB5T2JqZWN0ICoqdmFsdWVfcHRyOworCisKKyAgICBpZiAoIVB5RGljdF9DaGVjayhvcCkpCisgICAgICAgIHJldHVybiAtMTsKICAgICBtcCA9IChQeURpY3RPYmplY3QgKilvcDsKLSNpZmRlZiBQeV9ERUJVRwotICAgIG4gPSBtcC0+bWFfbWFzayArIDE7Ci0gICAgaSA9IDA7Ci0jZW5kaWYKLQotICAgIHRhYmxlID0gbXAtPm1hX3RhYmxlOwotICAgIGFzc2VydCh0YWJsZSAhPSBOVUxMKTsKLSAgICB0YWJsZV9pc19tYWxsb2NlZCA9IHRhYmxlICE9IG1wLT5tYV9zbWFsbHRhYmxlOwotCi0gICAgLyogVGhpcyBpcyBkZWxpY2F0ZS4gIER1cmluZyB0aGUgcHJvY2VzcyBvZiBjbGVhcmluZyB0aGUgZGljdCwKLSAgICAgKiBkZWNyZWZzIGNhbiBjYXVzZSB0aGUgZGljdCB0byBtdXRhdGUuICBUbyBhdm9pZCBmYXRhbCBjb25mdXNpb24KLSAgICAgKiAodm9pY2Ugb2YgZXhwZXJpZW5jZSksIHdlIGhhdmUgdG8gbWFrZSB0aGUgZGljdCBlbXB0eSBiZWZvcmUKLSAgICAgKiBjbGVhcmluZyB0aGUgc2xvdHMsIGFuZCBuZXZlciByZWZlciB0byBhbnl0aGluZyB2aWEgbXAtPnh4eCB3aGlsZQotICAgICAqIGNsZWFyaW5nLgotICAgICAqLwotICAgIGZpbGwgPSBtcC0+bWFfZmlsbDsKLSAgICBpZiAodGFibGVfaXNfbWFsbG9jZWQpCi0gICAgICAgIEVNUFRZX1RPX01JTlNJWkUobXApOwotCi0gICAgZWxzZSBpZiAoZmlsbCA+IDApIHsKLSAgICAgICAgLyogSXQncyBhIHNtYWxsIHRhYmxlIHdpdGggc29tZXRoaW5nIHRoYXQgbmVlZHMgdG8gYmUgY2xlYXJlZC4KLSAgICAgICAgICogQWZyYWlkIHRoZSBvbmx5IHNhZmUgd2F5IGlzIHRvIGNvcHkgdGhlIGRpY3QgZW50cmllcyBpbnRvCi0gICAgICAgICAqIGFub3RoZXIgc21hbGwgdGFibGUgZmlyc3QuCi0gICAgICAgICAqLwotICAgICAgICBtZW1jcHkoc21hbGxfY29weSwgdGFibGUsIHNpemVvZihzbWFsbF9jb3B5KSk7Ci0gICAgICAgIHRhYmxlID0gc21hbGxfY29weTsKLSAgICAgICAgRU1QVFlfVE9fTUlOU0laRShtcCk7CisgICAgaWYgKGkgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKG1wLT5tYV92YWx1ZXMpIHsKKyAgICAgICAgdmFsdWVfcHRyID0gJm1wLT5tYV92YWx1ZXNbaV07CisgICAgICAgIG9mZnNldCA9IHNpemVvZihQeU9iamVjdCAqKTsKICAgICB9Ci0gICAgLyogZWxzZSBpdCdzIGEgc21hbGwgdGFibGUgdGhhdCdzIGFscmVhZHkgZW1wdHkgKi8KLQotICAgIC8qIE5vdyB3ZSBjYW4gZmluYWxseSBjbGVhciB0aGluZ3MuICBJZiBDIGhhZCByZWZjb3VudHMsIHdlIGNvdWxkCi0gICAgICogYXNzZXJ0IHRoYXQgdGhlIHJlZmNvdW50IG9uIHRhYmxlIGlzIDEgbm93LCBpLmUuIHRoYXQgdGhpcyBmdW5jdGlvbgotICAgICAqIGhhcyB1bmlxdWUgYWNjZXNzIHRvIGl0LCBzbyBkZWNyZWYgc2lkZS1lZmZlY3RzIGNhbid0IGFsdGVyIGl0LgotICAgICAqLwotICAgIGZvciAoZXAgPSB0YWJsZTsgZmlsbCA+IDA7ICsrZXApIHsKLSNpZmRlZiBQeV9ERUJVRwotICAgICAgICBhc3NlcnQoaSA8IG4pOwotICAgICAgICArK2k7Ci0jZW5kaWYKLSAgICAgICAgaWYgKGVwLT5tZV9rZXkpIHsKLSAgICAgICAgICAgIC0tZmlsbDsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihlcC0+bWVfa2V5KTsKLSAgICAgICAgICAgIFB5X1hERUNSRUYoZXAtPm1lX3ZhbHVlKTsKLSAgICAgICAgfQotI2lmZGVmIFB5X0RFQlVHCi0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGFzc2VydChlcC0+bWVfdmFsdWUgPT0gTlVMTCk7Ci0jZW5kaWYKKyAgICBlbHNlIHsKKyAgICAgICAgdmFsdWVfcHRyID0gJm1wLT5tYV9rZXlzLT5ka19lbnRyaWVzW2ldLm1lX3ZhbHVlOworICAgICAgICBvZmZzZXQgPSBzaXplb2YoUHlEaWN0S2V5RW50cnkpOwogICAgIH0KLQotICAgIGlmICh0YWJsZV9pc19tYWxsb2NlZCkKLSAgICAgICAgUHlNZW1fREVMKHRhYmxlKTsKKyAgICBtYXNrID0gREtfTUFTSyhtcC0+bWFfa2V5cyk7CisgICAgd2hpbGUgKGkgPD0gbWFzayAmJiAqdmFsdWVfcHRyID09IE5VTEwpIHsKKyAgICAgICAgdmFsdWVfcHRyID0gKFB5T2JqZWN0ICoqKSgoKGNoYXIgKil2YWx1ZV9wdHIpICsgb2Zmc2V0KTsKKyAgICAgICAgaSsrOworICAgIH0KKyAgICBpZiAoaSA+IG1hc2spCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAocHZhbHVlKQorICAgICAgICAqcHZhbHVlID0gKnZhbHVlX3B0cjsKKyAgICByZXR1cm4gaTsKIH0KIAogLyoKQEAgLTk4MSw3NSArMTMzOCw1OSBAQAogaW50CiBQeURpY3RfTmV4dChQeU9iamVjdCAqb3AsIFB5X3NzaXplX3QgKnBwb3MsIFB5T2JqZWN0ICoqcGtleSwgUHlPYmplY3QgKipwdmFsdWUpCiB7Ci0gICAgcmVnaXN0ZXIgUHlfc3NpemVfdCBpOwotICAgIHJlZ2lzdGVyIFB5X3NzaXplX3QgbWFzazsKLSAgICByZWdpc3RlciBQeURpY3RFbnRyeSAqZXA7Ci0KLSAgICBpZiAoIVB5RGljdF9DaGVjayhvcCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGkgPSAqcHBvczsKKyAgICBQeURpY3RPYmplY3QgKm1wOworICAgIFB5X3NzaXplX3QgaSA9IGRpY3RfbmV4dChvcCwgKnBwb3MsIHB2YWx1ZSk7CiAgICAgaWYgKGkgPCAwKQogICAgICAgICByZXR1cm4gMDsKLSAgICBlcCA9ICgoUHlEaWN0T2JqZWN0ICopb3ApLT5tYV90YWJsZTsKLSAgICBtYXNrID0gKChQeURpY3RPYmplY3QgKilvcCktPm1hX21hc2s7Ci0gICAgd2hpbGUgKGkgPD0gbWFzayAmJiBlcFtpXS5tZV92YWx1ZSA9PSBOVUxMKQotICAgICAgICBpKys7CisgICAgbXAgPSAoUHlEaWN0T2JqZWN0ICopb3A7CiAgICAgKnBwb3MgPSBpKzE7Ci0gICAgaWYgKGkgPiBtYXNrKQotICAgICAgICByZXR1cm4gMDsKICAgICBpZiAocGtleSkKLSAgICAgICAgKnBrZXkgPSBlcFtpXS5tZV9rZXk7Ci0gICAgaWYgKHB2YWx1ZSkKLSAgICAgICAgKnB2YWx1ZSA9IGVwW2ldLm1lX3ZhbHVlOworICAgICAgICAqcGtleSA9IG1wLT5tYV9rZXlzLT5ka19lbnRyaWVzW2ldLm1lX2tleTsKICAgICByZXR1cm4gMTsKIH0KIAotLyogSW50ZXJuYWwgdmVyc2lvbiBvZiBQeURpY3RfTmV4dCB0aGF0IHJldHVybnMgYSBoYXNoIHZhbHVlIGluIGFkZGl0aW9uIHRvIHRoZSBrZXkgYW5kIHZhbHVlLiovCisvKiBJbnRlcm5hbCB2ZXJzaW9uIG9mIFB5RGljdF9OZXh0IHRoYXQgcmV0dXJucyBhIGhhc2ggdmFsdWUgaW4gYWRkaXRpb24KKyAqIHRvIHRoZSBrZXkgYW5kIHZhbHVlLgorICovCiBpbnQKLV9QeURpY3RfTmV4dChQeU9iamVjdCAqb3AsIFB5X3NzaXplX3QgKnBwb3MsIFB5T2JqZWN0ICoqcGtleSwgUHlPYmplY3QgKipwdmFsdWUsIFB5X2hhc2hfdCAqcGhhc2gpCitfUHlEaWN0X05leHQoUHlPYmplY3QgKm9wLCBQeV9zc2l6ZV90ICpwcG9zLCBQeU9iamVjdCAqKnBrZXksCisgICAgICAgICAgICAgUHlPYmplY3QgKipwdmFsdWUsIFB5X2hhc2hfdCAqcGhhc2gpCiB7Ci0gICAgcmVnaXN0ZXIgUHlfc3NpemVfdCBpOwotICAgIHJlZ2lzdGVyIFB5X3NzaXplX3QgbWFzazsKLSAgICByZWdpc3RlciBQeURpY3RFbnRyeSAqZXA7Ci0KLSAgICBpZiAoIVB5RGljdF9DaGVjayhvcCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGkgPSAqcHBvczsKKyAgICBQeURpY3RPYmplY3QgKm1wOworICAgIFB5X3NzaXplX3QgaSA9IGRpY3RfbmV4dChvcCwgKnBwb3MsIHB2YWx1ZSk7CiAgICAgaWYgKGkgPCAwKQogICAgICAgICByZXR1cm4gMDsKLSAgICBlcCA9ICgoUHlEaWN0T2JqZWN0ICopb3ApLT5tYV90YWJsZTsKLSAgICBtYXNrID0gKChQeURpY3RPYmplY3QgKilvcCktPm1hX21hc2s7Ci0gICAgd2hpbGUgKGkgPD0gbWFzayAmJiBlcFtpXS5tZV92YWx1ZSA9PSBOVUxMKQotICAgICAgICBpKys7CisgICAgbXAgPSAoUHlEaWN0T2JqZWN0ICopb3A7CiAgICAgKnBwb3MgPSBpKzE7Ci0gICAgaWYgKGkgPiBtYXNrKQotICAgICAgICByZXR1cm4gMDsKLSAgICAqcGhhc2ggPSBlcFtpXS5tZV9oYXNoOworICAgICpwaGFzaCA9IG1wLT5tYV9rZXlzLT5ka19lbnRyaWVzW2ldLm1lX2hhc2g7CiAgICAgaWYgKHBrZXkpCi0gICAgICAgICpwa2V5ID0gZXBbaV0ubWVfa2V5OwotICAgIGlmIChwdmFsdWUpCi0gICAgICAgICpwdmFsdWUgPSBlcFtpXS5tZV92YWx1ZTsKKyAgICAgICAgKnBrZXkgPSBtcC0+bWFfa2V5cy0+ZGtfZW50cmllc1tpXS5tZV9rZXk7CiAgICAgcmV0dXJuIDE7CiB9CiAKIC8qIE1ldGhvZHMgKi8KIAogc3RhdGljIHZvaWQKLWRpY3RfZGVhbGxvYyhyZWdpc3RlciBQeURpY3RPYmplY3QgKm1wKQorZGljdF9kZWFsbG9jKFB5RGljdE9iamVjdCAqbXApCiB7Ci0gICAgcmVnaXN0ZXIgUHlEaWN0RW50cnkgKmVwOwotICAgIFB5X3NzaXplX3QgZmlsbCA9IG1wLT5tYV9maWxsOworICAgIFB5T2JqZWN0ICoqdmFsdWVzID0gbXAtPm1hX3ZhbHVlczsKKyAgICBQeURpY3RLZXlzT2JqZWN0ICprZXlzID0gbXAtPm1hX2tleXM7CisgICAgUHlfc3NpemVfdCBpLCBuOwogICAgIFB5T2JqZWN0X0dDX1VuVHJhY2sobXApOwogICAgIFB5X1RSQVNIQ0FOX1NBRkVfQkVHSU4obXApCi0gICAgZm9yIChlcCA9IG1wLT5tYV90YWJsZTsgZmlsbCA+IDA7IGVwKyspIHsKLSAgICAgICAgaWYgKGVwLT5tZV9rZXkpIHsKLSAgICAgICAgICAgIC0tZmlsbDsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihlcC0+bWVfa2V5KTsKLSAgICAgICAgICAgIFB5X1hERUNSRUYoZXAtPm1lX3ZhbHVlKTsKKyAgICBpZiAodmFsdWVzICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKHZhbHVlcyAhPSBlbXB0eV92YWx1ZXMpIHsKKyAgICAgICAgICAgIGZvciAoaSA9IDAsIG4gPSBES19TSVpFKG1wLT5tYV9rZXlzKTsgaSA8IG47IGkrKykgeworICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodmFsdWVzW2ldKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZyZWVfdmFsdWVzKHZhbHVlcyk7CiAgICAgICAgIH0KKyAgICAgICAgREtfREVDUkVGKGtleXMpOwogICAgIH0KLSAgICBpZiAobXAtPm1hX3RhYmxlICE9IG1wLT5tYV9zbWFsbHRhYmxlKQotICAgICAgICBQeU1lbV9ERUwobXAtPm1hX3RhYmxlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgYXNzZXJ0KGtleXMtPmRrX3JlZmNudCA9PSAxKTsKKyAgICAgICAgREtfREVDUkVGKGtleXMpOworICAgIH0KICAgICBpZiAobnVtZnJlZSA8IFB5RGljdF9NQVhGUkVFTElTVCAmJiBQeV9UWVBFKG1wKSA9PSAmUHlEaWN0X1R5cGUpCiAgICAgICAgIGZyZWVfbGlzdFtudW1mcmVlKytdID0gbXA7CiAgICAgZWxzZQpAQCAtMTA1Nyw2ICsxMzk4LDcgQEAKICAgICBQeV9UUkFTSENBTl9TQUZFX0VORChtcCkKIH0KIAorCiBzdGF0aWMgUHlPYmplY3QgKgogZGljdF9yZXByKFB5RGljdE9iamVjdCAqbXApCiB7CkBAIC0xMDg4LDExICsxNDMwLDEzIEBACiAgICAgaSA9IDA7CiAgICAgd2hpbGUgKFB5RGljdF9OZXh0KChQeU9iamVjdCAqKW1wLCAmaSwgJmtleSwgJnZhbHVlKSkgewogICAgICAgICBpbnQgc3RhdHVzOwotICAgICAgICAvKiBQcmV2ZW50IHJlcHIgZnJvbSBkZWxldGluZyB2YWx1ZSBkdXJpbmcga2V5IGZvcm1hdC4gKi8KKyAgICAgICAgLyogUHJldmVudCByZXByIGZyb20gZGVsZXRpbmcga2V5IG9yIHZhbHVlIGR1cmluZyBrZXkgZm9ybWF0LiAqLworICAgICAgICBQeV9JTkNSRUYoa2V5KTsKICAgICAgICAgUHlfSU5DUkVGKHZhbHVlKTsKICAgICAgICAgcyA9IFB5T2JqZWN0X1JlcHIoa2V5KTsKICAgICAgICAgUHlVbmljb2RlX0FwcGVuZCgmcywgY29sb24pOwogICAgICAgICBQeVVuaWNvZGVfQXBwZW5kQW5kRGVsKCZzLCBQeU9iamVjdF9SZXByKHZhbHVlKSk7CisgICAgICAgIFB5X0RFQ1JFRihrZXkpOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICBpZiAocyA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBEb25lOwpAQCAtMTE0NywyNiArMTQ5MSwyNSBAQAogewogICAgIFB5T2JqZWN0ICp2OwogICAgIFB5X2hhc2hfdCBoYXNoOwotICAgIFB5RGljdEVudHJ5ICplcDsKLSAgICBhc3NlcnQobXAtPm1hX3RhYmxlICE9IE5VTEwpOworICAgIFB5RGljdEtleUVudHJ5ICplcDsKKyAgICBQeU9iamVjdCAqKnZhbHVlX2FkZHI7CisKICAgICBpZiAoIVB5VW5pY29kZV9DaGVja0V4YWN0KGtleSkgfHwKLSAgICAgICAgKGhhc2ggPSAoKFB5VW5pY29kZU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkgeworICAgICAgICAoaGFzaCA9ICgoUHlBU0NJSU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkgewogICAgICAgICBoYXNoID0gUHlPYmplY3RfSGFzaChrZXkpOwogICAgICAgICBpZiAoaGFzaCA9PSAtMSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBlcCA9IChtcC0+bWFfbG9va3VwKShtcCwga2V5LCBoYXNoKTsKKyAgICBlcCA9IChtcC0+bWFfa2V5cy0+ZGtfbG9va3VwKShtcCwga2V5LCBoYXNoLCAmdmFsdWVfYWRkcik7CiAgICAgaWYgKGVwID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHYgPSBlcC0+bWVfdmFsdWU7CisgICAgdiA9ICp2YWx1ZV9hZGRyOwogICAgIGlmICh2ID09IE5VTEwpIHsKICAgICAgICAgaWYgKCFQeURpY3RfQ2hlY2tFeGFjdChtcCkpIHsKICAgICAgICAgICAgIC8qIExvb2sgdXAgX19taXNzaW5nX18gbWV0aG9kIGlmIHdlJ3JlIGEgc3ViY2xhc3MuICovCiAgICAgICAgICAgICBQeU9iamVjdCAqbWlzc2luZywgKnJlczsKLSAgICAgICAgICAgIHN0YXRpYyBQeU9iamVjdCAqbWlzc2luZ19zdHIgPSBOVUxMOwotICAgICAgICAgICAgbWlzc2luZyA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKChQeU9iamVjdCAqKW1wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX21pc3NpbmdfXyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1pc3Npbmdfc3RyKTsKKyAgICAgICAgICAgIF9QeV9JREVOVElGSUVSKF9fbWlzc2luZ19fKTsKKyAgICAgICAgICAgIG1pc3NpbmcgPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbCgoUHlPYmplY3QgKiltcCwgJlB5SWRfX19taXNzaW5nX18pOwogICAgICAgICAgICAgaWYgKG1pc3NpbmcgIT0gTlVMTCkgewogICAgICAgICAgICAgICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MobWlzc2luZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwgTlVMTCk7CkBAIC0xMjA0LDggKzE1NDcsOSBAQAogewogICAgIHJlZ2lzdGVyIFB5T2JqZWN0ICp2OwogICAgIHJlZ2lzdGVyIFB5X3NzaXplX3QgaSwgajsKLSAgICBQeURpY3RFbnRyeSAqZXA7Ci0gICAgUHlfc3NpemVfdCBtYXNrLCBuOworICAgIFB5RGljdEtleUVudHJ5ICplcDsKKyAgICBQeV9zc2l6ZV90IHNpemUsIG4sIG9mZnNldDsKKyAgICBQeU9iamVjdCAqKnZhbHVlX3B0cjsKIAogICBhZ2FpbjoKICAgICBuID0gbXAtPm1hX3VzZWQ7CkBAIC0xMjE5LDE1ICsxNTYzLDI0IEBACiAgICAgICAgIFB5X0RFQ1JFRih2KTsKICAgICAgICAgZ290byBhZ2FpbjsKICAgICB9Ci0gICAgZXAgPSBtcC0+bWFfdGFibGU7Ci0gICAgbWFzayA9IG1wLT5tYV9tYXNrOwotICAgIGZvciAoaSA9IDAsIGogPSAwOyBpIDw9IG1hc2s7IGkrKykgewotICAgICAgICBpZiAoZXBbaV0ubWVfdmFsdWUgIT0gTlVMTCkgeworICAgIGVwID0gJm1wLT5tYV9rZXlzLT5ka19lbnRyaWVzWzBdOworICAgIHNpemUgPSBES19TSVpFKG1wLT5tYV9rZXlzKTsKKyAgICBpZiAobXAtPm1hX3ZhbHVlcykgeworICAgICAgICB2YWx1ZV9wdHIgPSBtcC0+bWFfdmFsdWVzOworICAgICAgICBvZmZzZXQgPSBzaXplb2YoUHlPYmplY3QgKik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICB2YWx1ZV9wdHIgPSAmZXBbMF0ubWVfdmFsdWU7CisgICAgICAgIG9mZnNldCA9IHNpemVvZihQeURpY3RLZXlFbnRyeSk7CisgICAgfQorICAgIGZvciAoaSA9IDAsIGogPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIGlmICgqdmFsdWVfcHRyICE9IE5VTEwpIHsKICAgICAgICAgICAgIFB5T2JqZWN0ICprZXkgPSBlcFtpXS5tZV9rZXk7CiAgICAgICAgICAgICBQeV9JTkNSRUYoa2V5KTsKICAgICAgICAgICAgIFB5TGlzdF9TRVRfSVRFTSh2LCBqLCBrZXkpOwogICAgICAgICAgICAgaisrOwogICAgICAgICB9CisgICAgICAgIHZhbHVlX3B0ciA9IChQeU9iamVjdCAqKikoKChjaGFyICopdmFsdWVfcHRyKSArIG9mZnNldCk7CiAgICAgfQogICAgIGFzc2VydChqID09IG4pOwogICAgIHJldHVybiB2OwpAQCAtMTIzOCw4ICsxNTkxLDggQEAKIHsKICAgICByZWdpc3RlciBQeU9iamVjdCAqdjsKICAgICByZWdpc3RlciBQeV9zc2l6ZV90IGksIGo7Ci0gICAgUHlEaWN0RW50cnkgKmVwOwotICAgIFB5X3NzaXplX3QgbWFzaywgbjsKKyAgICBQeV9zc2l6ZV90IHNpemUsIG4sIG9mZnNldDsKKyAgICBQeU9iamVjdCAqKnZhbHVlX3B0cjsKIAogICBhZ2FpbjoKICAgICBuID0gbXAtPm1hX3VzZWQ7CkBAIC0xMjUzLDExICsxNjA2LDE5IEBACiAgICAgICAgIFB5X0RFQ1JFRih2KTsKICAgICAgICAgZ290byBhZ2FpbjsKICAgICB9Ci0gICAgZXAgPSBtcC0+bWFfdGFibGU7Ci0gICAgbWFzayA9IG1wLT5tYV9tYXNrOwotICAgIGZvciAoaSA9IDAsIGogPSAwOyBpIDw9IG1hc2s7IGkrKykgewotICAgICAgICBpZiAoZXBbaV0ubWVfdmFsdWUgIT0gTlVMTCkgewotICAgICAgICAgICAgUHlPYmplY3QgKnZhbHVlID0gZXBbaV0ubWVfdmFsdWU7CisgICAgc2l6ZSA9IERLX1NJWkUobXAtPm1hX2tleXMpOworICAgIGlmIChtcC0+bWFfdmFsdWVzKSB7CisgICAgICAgIHZhbHVlX3B0ciA9IG1wLT5tYV92YWx1ZXM7CisgICAgICAgIG9mZnNldCA9IHNpemVvZihQeU9iamVjdCAqKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHZhbHVlX3B0ciA9ICZtcC0+bWFfa2V5cy0+ZGtfZW50cmllc1swXS5tZV92YWx1ZTsKKyAgICAgICAgb2Zmc2V0ID0gc2l6ZW9mKFB5RGljdEtleUVudHJ5KTsKKyAgICB9CisgICAgZm9yIChpID0gMCwgaiA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgUHlPYmplY3QgKnZhbHVlID0gKnZhbHVlX3B0cjsKKyAgICAgICAgdmFsdWVfcHRyID0gKFB5T2JqZWN0ICoqKSgoKGNoYXIgKil2YWx1ZV9wdHIpICsgb2Zmc2V0KTsKKyAgICAgICAgaWYgKHZhbHVlICE9IE5VTEwpIHsKICAgICAgICAgICAgIFB5X0lOQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICBQeUxpc3RfU0VUX0lURU0odiwgaiwgdmFsdWUpOwogICAgICAgICAgICAgaisrOwpAQCAtMTI3Miw5ICsxNjMzLDEwIEBACiB7CiAgICAgcmVnaXN0ZXIgUHlPYmplY3QgKnY7CiAgICAgcmVnaXN0ZXIgUHlfc3NpemVfdCBpLCBqLCBuOwotICAgIFB5X3NzaXplX3QgbWFzazsKLSAgICBQeU9iamVjdCAqaXRlbSwgKmtleSwgKnZhbHVlOwotICAgIFB5RGljdEVudHJ5ICplcDsKKyAgICBQeV9zc2l6ZV90IHNpemUsIG9mZnNldDsKKyAgICBQeU9iamVjdCAqaXRlbSwgKmtleTsKKyAgICBQeURpY3RLZXlFbnRyeSAqZXA7CisgICAgUHlPYmplY3QgKip2YWx1ZV9wdHI7CiAKICAgICAvKiBQcmVhbGxvY2F0ZSB0aGUgbGlzdCBvZiB0dXBsZXMsIHRvIGF2b2lkIGFsbG9jYXRpb25zIGR1cmluZwogICAgICAqIHRoZSBsb29wIG92ZXIgdGhlIGl0ZW1zLCB3aGljaCBjb3VsZCB0cmlnZ2VyIEdDLCB3aGljaApAQCAtMTMwMSwxMCArMTY2MywyMCBAQAogICAgICAgICBnb3RvIGFnYWluOwogICAgIH0KICAgICAvKiBOb3RoaW5nIHdlIGRvIGJlbG93IG1ha2VzIGFueSBmdW5jdGlvbiBjYWxscy4gKi8KLSAgICBlcCA9IG1wLT5tYV90YWJsZTsKLSAgICBtYXNrID0gbXAtPm1hX21hc2s7Ci0gICAgZm9yIChpID0gMCwgaiA9IDA7IGkgPD0gbWFzazsgaSsrKSB7Ci0gICAgICAgIGlmICgodmFsdWU9ZXBbaV0ubWVfdmFsdWUpICE9IE5VTEwpIHsKKyAgICBlcCA9IG1wLT5tYV9rZXlzLT5ka19lbnRyaWVzOworICAgIHNpemUgPSBES19TSVpFKG1wLT5tYV9rZXlzKTsKKyAgICBpZiAobXAtPm1hX3ZhbHVlcykgeworICAgICAgICB2YWx1ZV9wdHIgPSBtcC0+bWFfdmFsdWVzOworICAgICAgICBvZmZzZXQgPSBzaXplb2YoUHlPYmplY3QgKik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICB2YWx1ZV9wdHIgPSAmZXBbMF0ubWVfdmFsdWU7CisgICAgICAgIG9mZnNldCA9IHNpemVvZihQeURpY3RLZXlFbnRyeSk7CisgICAgfQorICAgIGZvciAoaSA9IDAsIGogPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIFB5T2JqZWN0ICp2YWx1ZSA9ICp2YWx1ZV9wdHI7CisgICAgICAgIHZhbHVlX3B0ciA9IChQeU9iamVjdCAqKikoKChjaGFyICopdmFsdWVfcHRyKSArIG9mZnNldCk7CisgICAgICAgIGlmICh2YWx1ZSAhPSBOVUxMKSB7CiAgICAgICAgICAgICBrZXkgPSBlcFtpXS5tZV9rZXk7CiAgICAgICAgICAgICBpdGVtID0gUHlMaXN0X0dFVF9JVEVNKHYsIGopOwogICAgICAgICAgICAgUHlfSU5DUkVGKGtleSk7CkBAIC0xMzQ4LDggKzE3MjAsNiBAQAogICAgICAgICB9CiAKICAgICAgICAgd2hpbGUgKF9QeURpY3RfTmV4dChzZXEsICZwb3MsICZrZXksICZvbGR2YWx1ZSwgJmhhc2gpKSB7Ci0gICAgICAgICAgICBQeV9JTkNSRUYoa2V5KTsKLSAgICAgICAgICAgIFB5X0lOQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICBpZiAoaW5zZXJ0ZGljdChtcCwga2V5LCBoYXNoLCB2YWx1ZSkpIHsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoZCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0xMzcwLDggKzE3NDAsNiBAQAogICAgICAgICB9CiAKICAgICAgICAgd2hpbGUgKF9QeVNldF9OZXh0RW50cnkoc2VxLCAmcG9zLCAma2V5LCAmaGFzaCkpIHsKLSAgICAgICAgICAgIFB5X0lOQ1JFRihrZXkpOwotICAgICAgICAgICAgUHlfSU5DUkVGKHZhbHVlKTsKICAgICAgICAgICAgIGlmIChpbnNlcnRkaWN0KG1wLCBrZXksIGhhc2gsIHZhbHVlKSkgewogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihkKTsKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTE0MjMsNyArMTc5MSw4IEBACiAgICAgICAgIHJlc3VsdCA9IC0xOwogCiAgICAgZWxzZSBpZiAoYXJnICE9IE5VTEwpIHsKLSAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcoYXJnLCAia2V5cyIpKQorICAgICAgICBfUHlfSURFTlRJRklFUihrZXlzKTsKKyAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQoYXJnLCAmUHlJZF9rZXlzKSkKICAgICAgICAgICAgIHJlc3VsdCA9IFB5RGljdF9NZXJnZShzZWxmLCBhcmcsIDEpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXN1bHQgPSBQeURpY3RfTWVyZ2VGcm9tU2VxMihzZWxmLCBhcmcsIDEpOwpAQCAtMTUzNSw4ICsxOTA0LDggQEAKIFB5RGljdF9NZXJnZShQeU9iamVjdCAqYSwgUHlPYmplY3QgKmIsIGludCBvdmVycmlkZSkKIHsKICAgICByZWdpc3RlciBQeURpY3RPYmplY3QgKm1wLCAqb3RoZXI7Ci0gICAgcmVnaXN0ZXIgUHlfc3NpemVfdCBpOwotICAgIFB5RGljdEVudHJ5ICplbnRyeTsKKyAgICByZWdpc3RlciBQeV9zc2l6ZV90IGksIG47CisgICAgUHlEaWN0S2V5RW50cnkgKmVudHJ5OwogCiAgICAgLyogV2UgYWNjZXB0IGZvciB0aGUgYXJndW1lbnQgZWl0aGVyIGEgY29uY3JldGUgZGljdGlvbmFyeSBvYmplY3QsCiAgICAgICogb3IgYW4gYWJzdHJhY3QgIm1hcHBpbmciIG9iamVjdC4gIEZvciB0aGUgZm9ybWVyLCB3ZSBjYW4gZG8KQEAgLTE1NjMsMjAgKzE5MzIsMjMgQEAKICAgICAgICAgICogaW5jcmVtZW50YWxseSByZXNpemluZyBhcyB3ZSBpbnNlcnQgbmV3IGl0ZW1zLiAgRXhwZWN0CiAgICAgICAgICAqIHRoYXQgdGhlcmUgd2lsbCBiZSBubyAob3IgZmV3KSBvdmVybGFwcGluZyBrZXlzLgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKChtcC0+bWFfZmlsbCArIG90aGVyLT5tYV91c2VkKSozID49IChtcC0+bWFfbWFzaysxKSoyKSB7Ci0gICAgICAgICAgIGlmIChkaWN0cmVzaXplKG1wLCAobXAtPm1hX3VzZWQgKyBvdGhlci0+bWFfdXNlZCkqMikgIT0gMCkKKyAgICAgICAgaWYgKG1wLT5tYV9rZXlzLT5ka191c2FibGUgKiAzIDwgb3RoZXItPm1hX3VzZWQgKiAyKQorICAgICAgICAgICAgaWYgKGRpY3RyZXNpemUobXAsIChtcC0+bWFfdXNlZCArIG90aGVyLT5tYV91c2VkKSoyKSAhPSAwKQogICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPD0gb3RoZXItPm1hX21hc2s7IGkrKykgewotICAgICAgICAgICAgZW50cnkgPSAmb3RoZXItPm1hX3RhYmxlW2ldOwotICAgICAgICAgICAgaWYgKGVudHJ5LT5tZV92YWx1ZSAhPSBOVUxMICYmCisgICAgICAgIGZvciAoaSA9IDAsIG4gPSBES19TSVpFKG90aGVyLT5tYV9rZXlzKTsgaSA8IG47IGkrKykgeworICAgICAgICAgICAgUHlPYmplY3QgKnZhbHVlOworICAgICAgICAgICAgZW50cnkgPSAmb3RoZXItPm1hX2tleXMtPmRrX2VudHJpZXNbaV07CisgICAgICAgICAgICBpZiAob3RoZXItPm1hX3ZhbHVlcykKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IG90aGVyLT5tYV92YWx1ZXNbaV07CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdmFsdWUgPSBlbnRyeS0+bWVfdmFsdWU7CisKKyAgICAgICAgICAgIGlmICh2YWx1ZSAhPSBOVUxMICYmCiAgICAgICAgICAgICAgICAgKG92ZXJyaWRlIHx8CiAgICAgICAgICAgICAgICAgIFB5RGljdF9HZXRJdGVtKGEsIGVudHJ5LT5tZV9rZXkpID09IE5VTEwpKSB7Ci0gICAgICAgICAgICAgICAgUHlfSU5DUkVGKGVudHJ5LT5tZV9rZXkpOwotICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihlbnRyeS0+bWVfdmFsdWUpOwogICAgICAgICAgICAgICAgIGlmIChpbnNlcnRkaWN0KG1wLCBlbnRyeS0+bWVfa2V5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5tZV9oYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5LT5tZV92YWx1ZSkgIT0gMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSkgIT0gMCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xNjM4LDExICsyMDEwLDM3IEBACiBQeURpY3RfQ29weShQeU9iamVjdCAqbykKIHsKICAgICBQeU9iamVjdCAqY29weTsKKyAgICBQeURpY3RPYmplY3QgKm1wOworICAgIFB5X3NzaXplX3QgaSwgbjsKIAogICAgIGlmIChvID09IE5VTEwgfHwgIVB5RGljdF9DaGVjayhvKSkgewogICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQorICAgIG1wID0gKFB5RGljdE9iamVjdCAqKW87CisgICAgaWYgKF9QeURpY3RfSGFzU3BsaXRUYWJsZShtcCkpIHsKKyAgICAgICAgUHlEaWN0T2JqZWN0ICpzcGxpdF9jb3B5OworICAgICAgICBQeU9iamVjdCAqKm5ld3ZhbHVlcyA9IG5ld192YWx1ZXMoREtfU0laRShtcC0+bWFfa2V5cykpOworICAgICAgICBpZiAobmV3dmFsdWVzID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgc3BsaXRfY29weSA9IFB5T2JqZWN0X0dDX05ldyhQeURpY3RPYmplY3QsICZQeURpY3RfVHlwZSk7CisgICAgICAgIGlmIChzcGxpdF9jb3B5ID09IE5VTEwpIHsKKyAgICAgICAgICAgIGZyZWVfdmFsdWVzKG5ld3ZhbHVlcyk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBzcGxpdF9jb3B5LT5tYV92YWx1ZXMgPSBuZXd2YWx1ZXM7CisgICAgICAgIHNwbGl0X2NvcHktPm1hX2tleXMgPSBtcC0+bWFfa2V5czsKKyAgICAgICAgc3BsaXRfY29weS0+bWFfdXNlZCA9IG1wLT5tYV91c2VkOworICAgICAgICBES19JTkNSRUYobXAtPm1hX2tleXMpOworICAgICAgICBmb3IgKGkgPSAwLCBuID0gREtfU0laRShtcC0+bWFfa2V5cyk7IGkgPCBuOyBpKyspIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2YWx1ZSA9IG1wLT5tYV92YWx1ZXNbaV07CisgICAgICAgICAgICBQeV9YSU5DUkVGKHZhbHVlKTsKKyAgICAgICAgICAgIHNwbGl0X2NvcHktPm1hX3ZhbHVlc1tpXSA9IHZhbHVlOworICAgICAgICB9CisgICAgICAgIGlmIChfUHlPYmplY3RfR0NfSVNfVFJBQ0tFRChtcCkpCisgICAgICAgICAgICBfUHlPYmplY3RfR0NfVFJBQ0soc3BsaXRfY29weSk7CisgICAgICAgIHJldHVybiAoUHlPYmplY3QgKilzcGxpdF9jb3B5OworICAgIH0KICAgICBjb3B5ID0gUHlEaWN0X05ldygpOwogICAgIGlmIChjb3B5ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTcwNCwxNCArMjEwMiwxOCBAQAogICAgIGlmIChhLT5tYV91c2VkICE9IGItPm1hX3VzZWQpCiAgICAgICAgIC8qIGNhbid0IGJlIGVxdWFsIGlmICMgb2YgZW50cmllcyBkaWZmZXIgKi8KICAgICAgICAgcmV0dXJuIDA7Ci0KICAgICAvKiBTYW1lICMgb2YgZW50cmllcyAtLSBjaGVjayBhbGwgb2YgJ2VtLiAgRXhpdCBlYXJseSBvbiBhbnkgZGlmZi4gKi8KLSAgICBmb3IgKGkgPSAwOyBpIDw9IGEtPm1hX21hc2s7IGkrKykgewotICAgICAgICBQeU9iamVjdCAqYXZhbCA9IGEtPm1hX3RhYmxlW2ldLm1lX3ZhbHVlOworICAgIGZvciAoaSA9IDA7IGkgPCBES19TSVpFKGEtPm1hX2tleXMpOyBpKyspIHsKKyAgICAgICAgUHlEaWN0S2V5RW50cnkgKmVwID0gJmEtPm1hX2tleXMtPmRrX2VudHJpZXNbaV07CisgICAgICAgIFB5T2JqZWN0ICphdmFsOworICAgICAgICBpZiAoYS0+bWFfdmFsdWVzKQorICAgICAgICAgICAgYXZhbCA9IGEtPm1hX3ZhbHVlc1tpXTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXZhbCA9IGVwLT5tZV92YWx1ZTsKICAgICAgICAgaWYgKGF2YWwgIT0gTlVMTCkgewogICAgICAgICAgICAgaW50IGNtcDsKICAgICAgICAgICAgIFB5T2JqZWN0ICpidmFsOwotICAgICAgICAgICAgUHlPYmplY3QgKmtleSA9IGEtPm1hX3RhYmxlW2ldLm1lX2tleTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICprZXkgPSBlcC0+bWVfa2V5OwogICAgICAgICAgICAgLyogdGVtcG9yYXJpbHkgYnVtcCBhdmFsJ3MgcmVmY291bnQgdG8gZW5zdXJlIGl0IHN0YXlzCiAgICAgICAgICAgICAgICBhbGl2ZSB1bnRpbCB3ZSdyZSBkb25lIHdpdGggaXQgKi8KICAgICAgICAgICAgIFB5X0lOQ1JFRihhdmFsKTsKQEAgLTE3MzIsNyArMjEzNCw3IEBACiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIDE7Ci0gfQorfQogCiBzdGF0aWMgUHlPYmplY3QgKgogZGljdF9yaWNoY29tcGFyZShQeU9iamVjdCAqdiwgUHlPYmplY3QgKncsIGludCBvcCkKQEAgLTE3NTMsMjQgKzIxNTUsMjUgQEAKICAgICAgICAgcmVzID0gUHlfTm90SW1wbGVtZW50ZWQ7CiAgICAgUHlfSU5DUkVGKHJlcyk7CiAgICAgcmV0dXJuIHJlczsKLSB9Cit9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBkaWN0X2NvbnRhaW5zKHJlZ2lzdGVyIFB5RGljdE9iamVjdCAqbXAsIFB5T2JqZWN0ICprZXkpCiB7CiAgICAgUHlfaGFzaF90IGhhc2g7Ci0gICAgUHlEaWN0RW50cnkgKmVwOworICAgIFB5RGljdEtleUVudHJ5ICplcDsKKyAgICBQeU9iamVjdCAqKnZhbHVlX2FkZHI7CiAKICAgICBpZiAoIVB5VW5pY29kZV9DaGVja0V4YWN0KGtleSkgfHwKLSAgICAgICAgKGhhc2ggPSAoKFB5VW5pY29kZU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkgeworICAgICAgICAoaGFzaCA9ICgoUHlBU0NJSU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkgewogICAgICAgICBoYXNoID0gUHlPYmplY3RfSGFzaChrZXkpOwogICAgICAgICBpZiAoaGFzaCA9PSAtMSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBlcCA9IChtcC0+bWFfbG9va3VwKShtcCwga2V5LCBoYXNoKTsKKyAgICBlcCA9IChtcC0+bWFfa2V5cy0+ZGtfbG9va3VwKShtcCwga2V5LCBoYXNoLCAmdmFsdWVfYWRkcik7CiAgICAgaWYgKGVwID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoZXAtPm1lX3ZhbHVlICE9IE5VTEwpOworICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoKnZhbHVlX2FkZHIgIT0gTlVMTCk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0xNzgwLDI4ICsyMTgzLDI4IEBACiAgICAgUHlPYmplY3QgKmZhaWxvYmogPSBQeV9Ob25lOwogICAgIFB5T2JqZWN0ICp2YWwgPSBOVUxMOwogICAgIFB5X2hhc2hfdCBoYXNoOwotICAgIFB5RGljdEVudHJ5ICplcDsKKyAgICBQeURpY3RLZXlFbnRyeSAqZXA7CisgICAgUHlPYmplY3QgKip2YWx1ZV9hZGRyOwogCiAgICAgaWYgKCFQeUFyZ19VbnBhY2tUdXBsZShhcmdzLCAiZ2V0IiwgMSwgMiwgJmtleSwgJmZhaWxvYmopKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGlmICghUHlVbmljb2RlX0NoZWNrRXhhY3Qoa2V5KSB8fAotICAgICAgICAoaGFzaCA9ICgoUHlVbmljb2RlT2JqZWN0ICopIGtleSktPmhhc2gpID09IC0xKSB7CisgICAgICAgIChoYXNoID0gKChQeUFTQ0lJT2JqZWN0ICopIGtleSktPmhhc2gpID09IC0xKSB7CiAgICAgICAgIGhhc2ggPSBQeU9iamVjdF9IYXNoKGtleSk7CiAgICAgICAgIGlmIChoYXNoID09IC0xKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIGVwID0gKG1wLT5tYV9sb29rdXApKG1wLCBrZXksIGhhc2gpOworICAgIGVwID0gKG1wLT5tYV9rZXlzLT5ka19sb29rdXApKG1wLCBrZXksIGhhc2gsICZ2YWx1ZV9hZGRyKTsKICAgICBpZiAoZXAgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgdmFsID0gZXAtPm1lX3ZhbHVlOworICAgIHZhbCA9ICp2YWx1ZV9hZGRyOwogICAgIGlmICh2YWwgPT0gTlVMTCkKICAgICAgICAgdmFsID0gZmFpbG9iajsKICAgICBQeV9JTkNSRUYodmFsKTsKICAgICByZXR1cm4gdmFsOwogfQogCi0KIHN0YXRpYyBQeU9iamVjdCAqCiBkaWN0X3NldGRlZmF1bHQocmVnaXN0ZXIgUHlEaWN0T2JqZWN0ICptcCwgUHlPYmplY3QgKmFyZ3MpCiB7CkBAIC0xODA5LDI3ICsyMjEyLDQwIEBACiAgICAgUHlPYmplY3QgKmZhaWxvYmogPSBQeV9Ob25lOwogICAgIFB5T2JqZWN0ICp2YWwgPSBOVUxMOwogICAgIFB5X2hhc2hfdCBoYXNoOwotICAgIFB5RGljdEVudHJ5ICplcDsKKyAgICBQeURpY3RLZXlFbnRyeSAqZXA7CisgICAgUHlPYmplY3QgKip2YWx1ZV9hZGRyOwogCiAgICAgaWYgKCFQeUFyZ19VbnBhY2tUdXBsZShhcmdzLCAic2V0ZGVmYXVsdCIsIDEsIDIsICZrZXksICZmYWlsb2JqKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBpZiAoIVB5VW5pY29kZV9DaGVja0V4YWN0KGtleSkgfHwKLSAgICAgICAgKGhhc2ggPSAoKFB5VW5pY29kZU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkgeworICAgICAgICAoaGFzaCA9ICgoUHlBU0NJSU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkgewogICAgICAgICBoYXNoID0gUHlPYmplY3RfSGFzaChrZXkpOwogICAgICAgICBpZiAoaGFzaCA9PSAtMSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBlcCA9IChtcC0+bWFfbG9va3VwKShtcCwga2V5LCBoYXNoKTsKKyAgICBlcCA9IChtcC0+bWFfa2V5cy0+ZGtfbG9va3VwKShtcCwga2V5LCBoYXNoLCAmdmFsdWVfYWRkcik7CiAgICAgaWYgKGVwID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHZhbCA9IGVwLT5tZV92YWx1ZTsKKyAgICB2YWwgPSAqdmFsdWVfYWRkcjsKICAgICBpZiAodmFsID09IE5VTEwpIHsKLSAgICAgICAgaWYgKGRpY3Rfc2V0X2l0ZW1fYnlfaGFzaF9vcl9lbnRyeSgoUHlPYmplY3QqKW1wLCBrZXksIGhhc2gsIGVwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhaWxvYmopID09IDApCi0gICAgICAgICAgICB2YWwgPSBmYWlsb2JqOworICAgICAgICBQeV9JTkNSRUYoZmFpbG9iaik7CisgICAgICAgIFB5X0lOQ1JFRihrZXkpOworICAgICAgICBpZiAobXAtPm1hX2tleXMtPmRrX3VzYWJsZSA8PSAwKSB7CisgICAgICAgICAgICAvKiBOZWVkIHRvIHJlc2l6ZS4gKi8KKyAgICAgICAgICAgIGlmIChpbnNlcnRpb25fcmVzaXplKG1wKSA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICBlcCA9IGZpbmRfZW1wdHlfc2xvdChtcCwga2V5LCBoYXNoLCAmdmFsdWVfYWRkcik7CisgICAgICAgIH0KKyAgICAgICAgTUFJTlRBSU5fVFJBQ0tJTkcobXAsIGtleSwgZmFpbG9iaik7CisgICAgICAgIGVwLT5tZV9rZXkgPSBrZXk7CisgICAgICAgIGVwLT5tZV9oYXNoID0gaGFzaDsKKyAgICAgICAgKnZhbHVlX2FkZHIgPSBmYWlsb2JqOworICAgICAgICB2YWwgPSBmYWlsb2JqOworICAgICAgICBtcC0+bWFfa2V5cy0+ZGtfdXNhYmxlLS07CisgICAgICAgIG1wLT5tYV91c2VkKys7CiAgICAgfQotICAgIFB5X1hJTkNSRUYodmFsKTsKKyAgICBQeV9JTkNSRUYodmFsKTsKICAgICByZXR1cm4gdmFsOwogfQogCkBAIC0xODQ1LDkgKzIyNjEsMTAgQEAKIGRpY3RfcG9wKFB5RGljdE9iamVjdCAqbXAsIFB5T2JqZWN0ICphcmdzKQogewogICAgIFB5X2hhc2hfdCBoYXNoOwotICAgIFB5RGljdEVudHJ5ICplcDsKICAgICBQeU9iamVjdCAqb2xkX3ZhbHVlLCAqb2xkX2tleTsKICAgICBQeU9iamVjdCAqa2V5LCAqZGVmbHQgPSBOVUxMOworICAgIFB5RGljdEtleUVudHJ5ICplcDsKKyAgICBQeU9iamVjdCAqKnZhbHVlX2FkZHI7CiAKICAgICBpZighUHlBcmdfVW5wYWNrVHVwbGUoYXJncywgInBvcCIsIDEsIDIsICZrZXksICZkZWZsdCkpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTg2MCwxNSArMjI3NywxNiBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpIHx8Ci0gICAgICAgIChoYXNoID0gKChQeVVuaWNvZGVPYmplY3QgKikga2V5KS0+aGFzaCkgPT0gLTEpIHsKKyAgICAgICAgKGhhc2ggPSAoKFB5QVNDSUlPYmplY3QgKikga2V5KS0+aGFzaCkgPT0gLTEpIHsKICAgICAgICAgaGFzaCA9IFB5T2JqZWN0X0hhc2goa2V5KTsKICAgICAgICAgaWYgKGhhc2ggPT0gLTEpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgZXAgPSAobXAtPm1hX2xvb2t1cCkobXAsIGtleSwgaGFzaCk7CisgICAgZXAgPSAobXAtPm1hX2tleXMtPmRrX2xvb2t1cCkobXAsIGtleSwgaGFzaCwgJnZhbHVlX2FkZHIpOwogICAgIGlmIChlcCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoZXAtPm1lX3ZhbHVlID09IE5VTEwpIHsKKyAgICBvbGRfdmFsdWUgPSAqdmFsdWVfYWRkcjsKKyAgICBpZiAob2xkX3ZhbHVlID09IE5VTEwpIHsKICAgICAgICAgaWYgKGRlZmx0KSB7CiAgICAgICAgICAgICBQeV9JTkNSRUYoZGVmbHQpOwogICAgICAgICAgICAgcmV0dXJuIGRlZmx0OwpAQCAtMTg3NiwxMyArMjI5NCwxNSBAQAogICAgICAgICBzZXRfa2V5X2Vycm9yKGtleSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBvbGRfa2V5ID0gZXAtPm1lX2tleTsKLSAgICBQeV9JTkNSRUYoZHVtbXkpOwotICAgIGVwLT5tZV9rZXkgPSBkdW1teTsKLSAgICBvbGRfdmFsdWUgPSBlcC0+bWVfdmFsdWU7Ci0gICAgZXAtPm1lX3ZhbHVlID0gTlVMTDsKKyAgICAqdmFsdWVfYWRkciA9IE5VTEw7CiAgICAgbXAtPm1hX3VzZWQtLTsKLSAgICBQeV9ERUNSRUYob2xkX2tleSk7CisgICAgaWYgKCFfUHlEaWN0X0hhc1NwbGl0VGFibGUobXApKSB7CisgICAgICAgIEVOU1VSRV9BTExPV1NfREVMRVRJT05TKG1wKTsKKyAgICAgICAgb2xkX2tleSA9IGVwLT5tZV9rZXk7CisgICAgICAgIFB5X0lOQ1JFRihkdW1teSk7CisgICAgICAgIGVwLT5tZV9rZXkgPSBkdW1teTsKKyAgICAgICAgUHlfREVDUkVGKG9sZF9rZXkpOworICAgIH0KICAgICByZXR1cm4gb2xkX3ZhbHVlOwogfQogCkBAIC0xODkwLDkgKzIzMTAsMTAgQEAKIGRpY3RfcG9waXRlbShQeURpY3RPYmplY3QgKm1wKQogewogICAgIFB5X2hhc2hfdCBpID0gMDsKLSAgICBQeURpY3RFbnRyeSAqZXA7CisgICAgUHlEaWN0S2V5RW50cnkgKmVwOwogICAgIFB5T2JqZWN0ICpyZXM7CiAKKwogICAgIC8qIEFsbG9jYXRlIHRoZSByZXN1bHQgdHVwbGUgYmVmb3JlIGNoZWNraW5nIHRoZSBzaXplLiAgQmVsaWV2ZSBpdAogICAgICAqIG9yIG5vdCwgdGhpcyBhbGxvY2F0aW9uIGNvdWxkIHRyaWdnZXIgYSBnYXJiYWdlIGNvbGxlY3Rpb24gd2hpY2gKICAgICAgKiBjb3VsZCBlbXB0eSB0aGUgZGljdCwgc28gaWYgd2UgY2hlY2tlZCB0aGUgc2l6ZSBmaXJzdCBhbmQgdGhhdApAQCAtMTkxMSwyNSArMjMzMiwzNCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgInBvcGl0ZW0oKTogZGljdGlvbmFyeSBpcyBlbXB0eSIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CisgICAgLyogQ29udmVydCBzcGxpdCB0YWJsZSB0byBjb21iaW5lZCB0YWJsZSAqLworICAgIGlmIChtcC0+bWFfa2V5cy0+ZGtfbG9va3VwID09IGxvb2tkaWN0X3NwbGl0KSB7CisgICAgICAgIGlmIChkaWN0cmVzaXplKG1wLCBES19TSVpFKG1wLT5tYV9rZXlzKSkpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihyZXMpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICB9CisgICAgRU5TVVJFX0FMTE9XU19ERUxFVElPTlMobXApOwogICAgIC8qIFNldCBlcCB0byAidGhlIGZpcnN0IiBkaWN0IGVudHJ5IHdpdGggYSB2YWx1ZS4gIFdlIGFidXNlIHRoZSBoYXNoCiAgICAgICogZmllbGQgb2Ygc2xvdCAwIHRvIGhvbGQgYSBzZWFyY2ggZmluZ2VyOgogICAgICAqIElmIHNsb3QgMCBoYXMgYSB2YWx1ZSwgdXNlIHNsb3QgMC4KICAgICAgKiBFbHNlIHNsb3QgMCBpcyBiZWluZyB1c2VkIHRvIGhvbGQgYSBzZWFyY2ggZmluZ2VyLAogICAgICAqIGFuZCB3ZSB1c2UgaXRzIGhhc2ggdmFsdWUgYXMgdGhlIGZpcnN0IGluZGV4IHRvIGxvb2suCiAgICAgICovCi0gICAgZXAgPSAmbXAtPm1hX3RhYmxlWzBdOworICAgIGVwID0gJm1wLT5tYV9rZXlzLT5ka19lbnRyaWVzWzBdOwogICAgIGlmIChlcC0+bWVfdmFsdWUgPT0gTlVMTCkgeworICAgICAgICBQeV9zc2l6ZV90IG1hc2sgPSBES19NQVNLKG1wLT5tYV9rZXlzKTsKICAgICAgICAgaSA9IGVwLT5tZV9oYXNoOwogICAgICAgICAvKiBUaGUgaGFzaCBmaWVsZCBtYXkgYmUgYSByZWFsIGhhc2ggdmFsdWUsIG9yIGl0IG1heSBiZSBhCiAgICAgICAgICAqIGxlZ2l0IHNlYXJjaCBmaW5nZXIsIG9yIGl0IG1heSBiZSBhIG9uY2UtbGVnaXQgc2VhcmNoCiAgICAgICAgICAqIGZpbmdlciB0aGF0J3Mgb3V0IG9mIGJvdW5kcyBub3cgYmVjYXVzZSBpdCB3cmFwcGVkIGFyb3VuZAogICAgICAgICAgKiBvciB0aGUgdGFibGUgc2hydW5rIC0tIHNpbXBseSBtYWtlIHN1cmUgaXQncyBpbiBib3VuZHMgbm93LgogICAgICAgICAgKi8KLSAgICAgICAgaWYgKGkgPiBtcC0+bWFfbWFzayB8fCBpIDwgMSkKKyAgICAgICAgaWYgKGkgPiBtYXNrIHx8IGkgPCAxKQogICAgICAgICAgICAgaSA9IDE7ICAgICAgICAgICAgICAvKiBza2lwIHNsb3QgMCAqLwotICAgICAgICB3aGlsZSAoKGVwID0gJm1wLT5tYV90YWJsZVtpXSktPm1lX3ZhbHVlID09IE5VTEwpIHsKKyAgICAgICAgd2hpbGUgKChlcCA9ICZtcC0+bWFfa2V5cy0+ZGtfZW50cmllc1tpXSktPm1lX3ZhbHVlID09IE5VTEwpIHsKICAgICAgICAgICAgIGkrKzsKLSAgICAgICAgICAgIGlmIChpID4gbXAtPm1hX21hc2spCisgICAgICAgICAgICBpZiAoaSA+IG1hc2spCiAgICAgICAgICAgICAgICAgaSA9IDE7CiAgICAgICAgIH0KICAgICB9CkBAIC0xOTM5LDIxICsyMzY5LDM0IEBACiAgICAgZXAtPm1lX2tleSA9IGR1bW15OwogICAgIGVwLT5tZV92YWx1ZSA9IE5VTEw7CiAgICAgbXAtPm1hX3VzZWQtLTsKLSAgICBhc3NlcnQobXAtPm1hX3RhYmxlWzBdLm1lX3ZhbHVlID09IE5VTEwpOwotICAgIG1wLT5tYV90YWJsZVswXS5tZV9oYXNoID0gaSArIDE7ICAvKiBuZXh0IHBsYWNlIHRvIHN0YXJ0ICovCisgICAgYXNzZXJ0KG1wLT5tYV9rZXlzLT5ka19lbnRyaWVzWzBdLm1lX3ZhbHVlID09IE5VTEwpOworICAgIG1wLT5tYV9rZXlzLT5ka19lbnRyaWVzWzBdLm1lX2hhc2ggPSBpICsgMTsgIC8qIG5leHQgcGxhY2UgdG8gc3RhcnQgKi8KICAgICByZXR1cm4gcmVzOwogfQogCiBzdGF0aWMgaW50CiBkaWN0X3RyYXZlcnNlKFB5T2JqZWN0ICpvcCwgdmlzaXRwcm9jIHZpc2l0LCB2b2lkICphcmcpCiB7Ci0gICAgUHlfc3NpemVfdCBpID0gMDsKLSAgICBQeU9iamVjdCAqcGs7Ci0gICAgUHlPYmplY3QgKnB2OwotCi0gICAgd2hpbGUgKFB5RGljdF9OZXh0KG9wLCAmaSwgJnBrLCAmcHYpKSB7Ci0gICAgICAgIFB5X1ZJU0lUKHBrKTsKLSAgICAgICAgUHlfVklTSVQocHYpOworICAgIFB5X3NzaXplX3QgaSwgbjsKKyAgICBQeURpY3RPYmplY3QgKm1wID0gKFB5RGljdE9iamVjdCAqKW9wOworICAgIGlmIChtcC0+bWFfa2V5cy0+ZGtfbG9va3VwID09IGxvb2tkaWN0KSB7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBES19TSVpFKG1wLT5tYV9rZXlzKTsgaSsrKSB7CisgICAgICAgICAgICBpZiAobXAtPm1hX2tleXMtPmRrX2VudHJpZXNbaV0ubWVfdmFsdWUgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5X1ZJU0lUKG1wLT5tYV9rZXlzLT5ka19lbnRyaWVzW2ldLm1lX3ZhbHVlKTsKKyAgICAgICAgICAgICAgICBQeV9WSVNJVChtcC0+bWFfa2V5cy0+ZGtfZW50cmllc1tpXS5tZV9rZXkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1wLT5tYV92YWx1ZXMgIT0gTlVMTCkgeworICAgICAgICAgICAgZm9yIChpID0gMCwgbiA9IERLX1NJWkUobXAtPm1hX2tleXMpOyBpIDwgbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgUHlfVklTSVQobXAtPm1hX3ZhbHVlc1tpXSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IgKGkgPSAwLCBuID0gREtfU0laRShtcC0+bWFfa2V5cyk7IGkgPCBuOyBpKyspIHsKKyAgICAgICAgICAgICAgICBQeV9WSVNJVChtcC0+bWFfa2V5cy0+ZGtfZW50cmllc1tpXS5tZV92YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC0xOTcwLDE0ICsyNDEzLDI1IEBACiBzdGF0aWMgUHlPYmplY3QgKgogZGljdF9zaXplb2YoUHlEaWN0T2JqZWN0ICptcCkKIHsKLSAgICBQeV9zc2l6ZV90IHJlczsKKyAgICBQeV9zc2l6ZV90IHNpemUsIHJlczsKIAorICAgIHNpemUgPSBES19TSVpFKG1wLT5tYV9rZXlzKTsKICAgICByZXMgPSBzaXplb2YoUHlEaWN0T2JqZWN0KTsKLSAgICBpZiAobXAtPm1hX3RhYmxlICE9IG1wLT5tYV9zbWFsbHRhYmxlKQotICAgICAgICByZXMgPSByZXMgKyAobXAtPm1hX21hc2sgKyAxKSAqIHNpemVvZihQeURpY3RFbnRyeSk7CisgICAgaWYgKG1wLT5tYV92YWx1ZXMpCisgICAgICAgIHJlcyArPSBzaXplICogc2l6ZW9mKFB5T2JqZWN0Kik7CisgICAgLyogSWYgdGhlIGRpY3Rpb25hcnkgaXMgc3BsaXQsIHRoZSBrZXlzIHBvcnRpb24gaXMgYWNjb3VudGVkLWZvcgorICAgICAgIGluIHRoZSB0eXBlIG9iamVjdC4gKi8KKyAgICBpZiAobXAtPm1hX2tleXMtPmRrX3JlZmNudCA9PSAxKQorICAgICAgICByZXMgKz0gc2l6ZW9mKFB5RGljdEtleXNPYmplY3QpICsgKHNpemUtMSkgKiBzaXplb2YoUHlEaWN0S2V5RW50cnkpOwogICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3QocmVzKTsKIH0KIAorUHlfc3NpemVfdAorX1B5RGljdF9LZXlzU2l6ZShQeURpY3RLZXlzT2JqZWN0ICprZXlzKQoreworICAgIHJldHVybiBzaXplb2YoUHlEaWN0S2V5c09iamVjdCkgKyAoREtfU0laRShrZXlzKS0xKSAqIHNpemVvZihQeURpY3RLZXlFbnRyeSk7Cit9CisKIFB5RG9jX1NUUlZBUihjb250YWluc19fZG9jX18sCiAiRC5fX2NvbnRhaW5zX18oaykgLT4gVHJ1ZSBpZiBEIGhhcyBhIGtleSBrLCBlbHNlIEZhbHNlIik7CiAKQEAgLTIwNjYsMTYgKzI1MjAsMTcgQEAKIHsKICAgICBQeV9oYXNoX3QgaGFzaDsKICAgICBQeURpY3RPYmplY3QgKm1wID0gKFB5RGljdE9iamVjdCAqKW9wOwotICAgIFB5RGljdEVudHJ5ICplcDsKKyAgICBQeURpY3RLZXlFbnRyeSAqZXA7CisgICAgUHlPYmplY3QgKip2YWx1ZV9hZGRyOwogCiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpIHx8Ci0gICAgICAgIChoYXNoID0gKChQeVVuaWNvZGVPYmplY3QgKikga2V5KS0+aGFzaCkgPT0gLTEpIHsKKyAgICAgICAgKGhhc2ggPSAoKFB5QVNDSUlPYmplY3QgKikga2V5KS0+aGFzaCkgPT0gLTEpIHsKICAgICAgICAgaGFzaCA9IFB5T2JqZWN0X0hhc2goa2V5KTsKICAgICAgICAgaWYgKGhhc2ggPT0gLTEpCiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgfQotICAgIGVwID0gKG1wLT5tYV9sb29rdXApKG1wLCBrZXksIGhhc2gpOwotICAgIHJldHVybiBlcCA9PSBOVUxMID8gLTEgOiAoZXAtPm1lX3ZhbHVlICE9IE5VTEwpOworICAgIGVwID0gKG1wLT5tYV9rZXlzLT5ka19sb29rdXApKG1wLCBrZXksIGhhc2gsICZ2YWx1ZV9hZGRyKTsKKyAgICByZXR1cm4gKGVwID09IE5VTEwpID8gLTEgOiAoKnZhbHVlX2FkZHIgIT0gTlVMTCk7CiB9CiAKIC8qIEludGVybmFsIHZlcnNpb24gb2YgUHlEaWN0X0NvbnRhaW5zIHVzZWQgd2hlbiB0aGUgaGFzaCB2YWx1ZSBpcyBhbHJlYWR5IGtub3duICovCkBAIC0yMDgzLDEwICsyNTM4LDExIEBACiBfUHlEaWN0X0NvbnRhaW5zKFB5T2JqZWN0ICpvcCwgUHlPYmplY3QgKmtleSwgUHlfaGFzaF90IGhhc2gpCiB7CiAgICAgUHlEaWN0T2JqZWN0ICptcCA9IChQeURpY3RPYmplY3QgKilvcDsKLSAgICBQeURpY3RFbnRyeSAqZXA7CisgICAgUHlEaWN0S2V5RW50cnkgKmVwOworICAgIFB5T2JqZWN0ICoqdmFsdWVfYWRkcjsKIAotICAgIGVwID0gKG1wLT5tYV9sb29rdXApKG1wLCBrZXksIGhhc2gpOwotICAgIHJldHVybiBlcCA9PSBOVUxMID8gLTEgOiAoZXAtPm1lX3ZhbHVlICE9IE5VTEwpOworICAgIGVwID0gKG1wLT5tYV9rZXlzLT5ka19sb29rdXApKG1wLCBrZXksIGhhc2gsICZ2YWx1ZV9hZGRyKTsKKyAgICByZXR1cm4gKGVwID09IE5VTEwpID8gLTEgOiAoKnZhbHVlX2FkZHIgIT0gTlVMTCk7CiB9CiAKIC8qIEhhY2sgdG8gaW1wbGVtZW50ICJrZXkgaW4gZGljdCIgKi8KQEAgLTIxMTIsMjIgKzI1NjgsMTcgQEAKICAgICBzZWxmID0gdHlwZS0+dHBfYWxsb2ModHlwZSwgMCk7CiAgICAgaWYgKHNlbGYgIT0gTlVMTCkgewogICAgICAgICBQeURpY3RPYmplY3QgKmQgPSAoUHlEaWN0T2JqZWN0ICopc2VsZjsKLSAgICAgICAgLyogSXQncyBndWFyYW50ZWVkIHRoYXQgdHAtPmFsbG9jIHplcm9lZCBvdXQgdGhlIHN0cnVjdC4gKi8KLSAgICAgICAgYXNzZXJ0KGQtPm1hX3RhYmxlID09IE5VTEwgJiYgZC0+bWFfZmlsbCA9PSAwICYmIGQtPm1hX3VzZWQgPT0gMCk7Ci0gICAgICAgIElOSVRfTk9OWkVST19ESUNUX1NMT1RTKGQpOwotICAgICAgICBkLT5tYV9sb29rdXAgPSBsb29rZGljdF91bmljb2RlOworICAgICAgICBkLT5tYV9rZXlzID0gbmV3X2tleXNfb2JqZWN0KFB5RGljdF9NSU5TSVpFX0NPTUJJTkVEKTsKKyAgICAgICAgLyogWFhYIC0gU2hvdWxkIHdlIHJhaXNlIGEgbm8tbWVtb3J5IGVycm9yPyAqLworICAgICAgICBpZiAoZC0+bWFfa2V5cyA9PSBOVUxMKSB7CisgICAgICAgICAgICBES19JTkNSRUYoUHlfRU1QVFlfS0VZUyk7CisgICAgICAgICAgICBkLT5tYV9rZXlzID0gUHlfRU1QVFlfS0VZUzsKKyAgICAgICAgICAgIGQtPm1hX3ZhbHVlcyA9IGVtcHR5X3ZhbHVlczsKKyAgICAgICAgfQorICAgICAgICBkLT5tYV91c2VkID0gMDsKICAgICAgICAgLyogVGhlIG9iamVjdCBoYXMgYmVlbiBpbXBsaWNpdGx5IHRyYWNrZWQgYnkgdHBfYWxsb2MgKi8KICAgICAgICAgaWYgKHR5cGUgPT0gJlB5RGljdF9UeXBlKQogICAgICAgICAgICAgX1B5T2JqZWN0X0dDX1VOVFJBQ0soZCk7Ci0jaWZkZWYgU0hPV19DT05WRVJTSU9OX0NPVU5UUwotICAgICAgICArK2NyZWF0ZWQ7Ci0jZW5kaWYKLSNpZmRlZiBTSE9XX1RSQUNLX0NPVU5UCi0gICAgICAgIGlmIChfUHlPYmplY3RfR0NfSVNfVFJBQ0tFRChkKSkKLSAgICAgICAgICAgIGNvdW50X3RyYWNrZWQrKzsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY291bnRfdW50cmFja2VkKys7Ci0jZW5kaWYKICAgICB9CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0yMTk4LDYgKzI2NDksMTYgQEAKICAgICBQeU9iamVjdF9HQ19EZWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2ZyZWUgKi8KIH07CiAKK1B5T2JqZWN0ICoKK19QeURpY3RfR2V0SXRlbUlkKFB5T2JqZWN0ICpkcCwgc3RydWN0IF9QeV9JZGVudGlmaWVyICprZXkpCit7CisgICAgUHlPYmplY3QgKmt2OworICAgIGt2ID0gX1B5VW5pY29kZV9Gcm9tSWQoa2V5KTsgLyogYm9ycm93ZWQgKi8KKyAgICBpZiAoa3YgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIFB5RGljdF9HZXRJdGVtKGRwLCBrdik7Cit9CisKIC8qIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggb2xkIGRpY3Rpb25hcnkgaW50ZXJmYWNlICovCiAKIFB5T2JqZWN0ICoKQEAgLTIyMTMsNiArMjY3NCwxNiBAQAogfQogCiBpbnQKK19QeURpY3RfU2V0SXRlbUlkKFB5T2JqZWN0ICp2LCBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKmtleSwgUHlPYmplY3QgKml0ZW0pCit7CisgICAgUHlPYmplY3QgKmt2OworICAgIGt2ID0gX1B5VW5pY29kZV9Gcm9tSWQoa2V5KTsgLyogYm9ycm93ZWQgKi8KKyAgICBpZiAoa3YgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHJldHVybiBQeURpY3RfU2V0SXRlbSh2LCBrdiwgaXRlbSk7Cit9CisKK2ludAogUHlEaWN0X1NldEl0ZW1TdHJpbmcoUHlPYmplY3QgKnYsIGNvbnN0IGNoYXIgKmtleSwgUHlPYmplY3QgKml0ZW0pCiB7CiAgICAgUHlPYmplY3QgKmt2OwpAQCAtMjMwMywxOCArMjc3NCwyNiBAQAogUHlEb2NfU1RSVkFSKGxlbmd0aF9oaW50X2RvYywKICAgICAgICAgICAgICAiUHJpdmF0ZSBtZXRob2QgcmV0dXJuaW5nIGFuIGVzdGltYXRlIG9mIGxlbihsaXN0KGl0KSkuIik7CiAKK3N0YXRpYyBQeU9iamVjdCAqCitkaWN0aXRlcl9yZWR1Y2UoZGljdGl0ZXJvYmplY3QgKmRpKTsKKworUHlEb2NfU1RSVkFSKHJlZHVjZV9kb2MsICJSZXR1cm4gc3RhdGUgaW5mb3JtYXRpb24gZm9yIHBpY2tsaW5nLiIpOworCiBzdGF0aWMgUHlNZXRob2REZWYgZGljdGl0ZXJfbWV0aG9kc1tdID0gewogICAgIHsiX19sZW5ndGhfaGludF9fIiwgKFB5Q0Z1bmN0aW9uKWRpY3RpdGVyX2xlbiwgTUVUSF9OT0FSR1MsCiAgICAgIGxlbmd0aF9oaW50X2RvY30sCisgICAgIHsiX19yZWR1Y2VfXyIsIChQeUNGdW5jdGlvbilkaWN0aXRlcl9yZWR1Y2UsIE1FVEhfTk9BUkdTLAorICAgICByZWR1Y2VfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwogfTsKIAogc3RhdGljIFB5T2JqZWN0ICpkaWN0aXRlcl9pdGVybmV4dGtleShkaWN0aXRlcm9iamVjdCAqZGkpCiB7CiAgICAgUHlPYmplY3QgKmtleTsKLSAgICByZWdpc3RlciBQeV9zc2l6ZV90IGksIG1hc2s7Ci0gICAgcmVnaXN0ZXIgUHlEaWN0RW50cnkgKmVwOworICAgIHJlZ2lzdGVyIFB5X3NzaXplX3QgaSwgbWFzaywgb2Zmc2V0OworICAgIHJlZ2lzdGVyIFB5RGljdEtleXNPYmplY3QgKms7CiAgICAgUHlEaWN0T2JqZWN0ICpkID0gZGktPmRpX2RpY3Q7CisgICAgUHlPYmplY3QgKip2YWx1ZV9wdHI7CiAKICAgICBpZiAoZCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTIzMzAsMTUgKzI4MDksMjUgQEAKICAgICBpID0gZGktPmRpX3BvczsKICAgICBpZiAoaSA8IDApCiAgICAgICAgIGdvdG8gZmFpbDsKLSAgICBlcCA9IGQtPm1hX3RhYmxlOwotICAgIG1hc2sgPSBkLT5tYV9tYXNrOwotICAgIHdoaWxlIChpIDw9IG1hc2sgJiYgZXBbaV0ubWVfdmFsdWUgPT0gTlVMTCkKKyAgICBrID0gZC0+bWFfa2V5czsKKyAgICBpZiAoZC0+bWFfdmFsdWVzKSB7CisgICAgICAgIHZhbHVlX3B0ciA9ICZkLT5tYV92YWx1ZXNbaV07CisgICAgICAgIG9mZnNldCA9IHNpemVvZihQeU9iamVjdCAqKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHZhbHVlX3B0ciA9ICZrLT5ka19lbnRyaWVzW2ldLm1lX3ZhbHVlOworICAgICAgICBvZmZzZXQgPSBzaXplb2YoUHlEaWN0S2V5RW50cnkpOworICAgIH0KKyAgICBtYXNrID0gREtfU0laRShrKS0xOworICAgIHdoaWxlIChpIDw9IG1hc2sgJiYgKnZhbHVlX3B0ciA9PSBOVUxMKSB7CisgICAgICAgIHZhbHVlX3B0ciA9IChQeU9iamVjdCAqKikoKChjaGFyICopdmFsdWVfcHRyKSArIG9mZnNldCk7CiAgICAgICAgIGkrKzsKKyAgICB9CiAgICAgZGktPmRpX3BvcyA9IGkrMTsKICAgICBpZiAoaSA+IG1hc2spCiAgICAgICAgIGdvdG8gZmFpbDsKICAgICBkaS0+bGVuLS07Ci0gICAga2V5ID0gZXBbaV0ubWVfa2V5OworICAgIGtleSA9IGstPmRrX2VudHJpZXNbaV0ubWVfa2V5OwogICAgIFB5X0lOQ1JFRihrZXkpOwogICAgIHJldHVybiBrZXk7CiAKQEAgLTIzODQsOSArMjg3Myw5IEBACiBzdGF0aWMgUHlPYmplY3QgKmRpY3RpdGVyX2l0ZXJuZXh0dmFsdWUoZGljdGl0ZXJvYmplY3QgKmRpKQogewogICAgIFB5T2JqZWN0ICp2YWx1ZTsKLSAgICByZWdpc3RlciBQeV9zc2l6ZV90IGksIG1hc2s7Ci0gICAgcmVnaXN0ZXIgUHlEaWN0RW50cnkgKmVwOworICAgIHJlZ2lzdGVyIFB5X3NzaXplX3QgaSwgbWFzaywgb2Zmc2V0OwogICAgIFB5RGljdE9iamVjdCAqZCA9IGRpLT5kaV9kaWN0OworICAgIFB5T2JqZWN0ICoqdmFsdWVfcHRyOwogCiAgICAgaWYgKGQgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0yNDAwLDE3ICsyODg5LDI2IEBACiAgICAgfQogCiAgICAgaSA9IGRpLT5kaV9wb3M7Ci0gICAgbWFzayA9IGQtPm1hX21hc2s7CisgICAgbWFzayA9IERLX1NJWkUoZC0+bWFfa2V5cyktMTsKICAgICBpZiAoaSA8IDAgfHwgaSA+IG1hc2spCiAgICAgICAgIGdvdG8gZmFpbDsKLSAgICBlcCA9IGQtPm1hX3RhYmxlOwotICAgIHdoaWxlICgodmFsdWU9ZXBbaV0ubWVfdmFsdWUpID09IE5VTEwpIHsKKyAgICBpZiAoZC0+bWFfdmFsdWVzKSB7CisgICAgICAgIHZhbHVlX3B0ciA9ICZkLT5tYV92YWx1ZXNbaV07CisgICAgICAgIG9mZnNldCA9IHNpemVvZihQeU9iamVjdCAqKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHZhbHVlX3B0ciA9ICZkLT5tYV9rZXlzLT5ka19lbnRyaWVzW2ldLm1lX3ZhbHVlOworICAgICAgICBvZmZzZXQgPSBzaXplb2YoUHlEaWN0S2V5RW50cnkpOworICAgIH0KKyAgICB3aGlsZSAoaSA8PSBtYXNrICYmICp2YWx1ZV9wdHIgPT0gTlVMTCkgeworICAgICAgICB2YWx1ZV9wdHIgPSAoUHlPYmplY3QgKiopKCgoY2hhciAqKXZhbHVlX3B0cikgKyBvZmZzZXQpOwogICAgICAgICBpKys7CiAgICAgICAgIGlmIChpID4gbWFzaykKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICB9CiAgICAgZGktPmRpX3BvcyA9IGkrMTsKICAgICBkaS0+bGVuLS07CisgICAgdmFsdWUgPSAqdmFsdWVfcHRyOwogICAgIFB5X0lOQ1JFRih2YWx1ZSk7CiAgICAgcmV0dXJuIHZhbHVlOwogCkBAIC0yNDU2LDkgKzI5NTQsOSBAQAogc3RhdGljIFB5T2JqZWN0ICpkaWN0aXRlcl9pdGVybmV4dGl0ZW0oZGljdGl0ZXJvYmplY3QgKmRpKQogewogICAgIFB5T2JqZWN0ICprZXksICp2YWx1ZSwgKnJlc3VsdCA9IGRpLT5kaV9yZXN1bHQ7Ci0gICAgcmVnaXN0ZXIgUHlfc3NpemVfdCBpLCBtYXNrOwotICAgIHJlZ2lzdGVyIFB5RGljdEVudHJ5ICplcDsKKyAgICByZWdpc3RlciBQeV9zc2l6ZV90IGksIG1hc2ssIG9mZnNldDsKICAgICBQeURpY3RPYmplY3QgKmQgPSBkaS0+ZGlfZGljdDsKKyAgICBQeU9iamVjdCAqKnZhbHVlX3B0cjsKIAogICAgIGlmIChkID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMjQ3NCwxMCArMjk3MiwxOSBAQAogICAgIGkgPSBkaS0+ZGlfcG9zOwogICAgIGlmIChpIDwgMCkKICAgICAgICAgZ290byBmYWlsOwotICAgIGVwID0gZC0+bWFfdGFibGU7Ci0gICAgbWFzayA9IGQtPm1hX21hc2s7Ci0gICAgd2hpbGUgKGkgPD0gbWFzayAmJiBlcFtpXS5tZV92YWx1ZSA9PSBOVUxMKQorICAgIG1hc2sgPSBES19TSVpFKGQtPm1hX2tleXMpLTE7CisgICAgaWYgKGQtPm1hX3ZhbHVlcykgeworICAgICAgICB2YWx1ZV9wdHIgPSAmZC0+bWFfdmFsdWVzW2ldOworICAgICAgICBvZmZzZXQgPSBzaXplb2YoUHlPYmplY3QgKik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICB2YWx1ZV9wdHIgPSAmZC0+bWFfa2V5cy0+ZGtfZW50cmllc1tpXS5tZV92YWx1ZTsKKyAgICAgICAgb2Zmc2V0ID0gc2l6ZW9mKFB5RGljdEtleUVudHJ5KTsKKyAgICB9CisgICAgd2hpbGUgKGkgPD0gbWFzayAmJiAqdmFsdWVfcHRyID09IE5VTEwpIHsKKyAgICAgICAgdmFsdWVfcHRyID0gKFB5T2JqZWN0ICoqKSgoKGNoYXIgKil2YWx1ZV9wdHIpICsgb2Zmc2V0KTsKICAgICAgICAgaSsrOworICAgIH0KICAgICBkaS0+ZGlfcG9zID0gaSsxOwogICAgIGlmIChpID4gbWFzaykKICAgICAgICAgZ290byBmYWlsOwpAQCAtMjQ5Miw4ICsyOTk5LDggQEAKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBkaS0+bGVuLS07Ci0gICAga2V5ID0gZXBbaV0ubWVfa2V5OwotICAgIHZhbHVlID0gZXBbaV0ubWVfdmFsdWU7CisgICAga2V5ID0gZC0+bWFfa2V5cy0+ZGtfZW50cmllc1tpXS5tZV9rZXk7CisgICAgdmFsdWUgPSAqdmFsdWVfcHRyOwogICAgIFB5X0lOQ1JFRihrZXkpOwogICAgIFB5X0lOQ1JFRih2YWx1ZSk7CiAgICAgUHlUdXBsZV9TRVRfSVRFTShyZXN1bHQsIDAsIGtleSk7CkBAIC0yNTQwLDYgKzMwNDcsNTIgQEAKIH07CiAKIAorc3RhdGljIFB5T2JqZWN0ICoKK2RpY3RpdGVyX3JlZHVjZShkaWN0aXRlcm9iamVjdCAqZGkpCit7CisgICAgUHlPYmplY3QgKmxpc3Q7CisgICAgZGljdGl0ZXJvYmplY3QgdG1wOworCisgICAgbGlzdCA9IFB5TGlzdF9OZXcoMCk7CisgICAgaWYgKCFsaXN0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8qIGNvcHkgdGhlIGl0ZXJ0b3Igc3RhdGUgKi8KKyAgICB0bXAgPSAqZGk7CisgICAgUHlfWElOQ1JFRih0bXAuZGlfZGljdCk7CisKKyAgICAvKiBpdGVyYXRlIHRoZSB0ZW1wb3JhcnkgaW50byBhIGxpc3QgKi8KKyAgICBmb3IoOzspIHsKKyAgICAgICAgUHlPYmplY3QgKmVsZW1lbnQgPSAwOworICAgICAgICBpZiAoUHlfVFlQRShkaSkgPT0gJlB5RGljdEl0ZXJJdGVtX1R5cGUpCisgICAgICAgICAgICBlbGVtZW50ID0gZGljdGl0ZXJfaXRlcm5leHRpdGVtKCZ0bXApOworICAgICAgICBlbHNlIGlmIChQeV9UWVBFKGRpKSA9PSAmUHlEaWN0SXRlcktleV9UeXBlKQorICAgICAgICAgICAgZWxlbWVudCA9IGRpY3RpdGVyX2l0ZXJuZXh0a2V5KCZ0bXApOworICAgICAgICBlbHNlIGlmIChQeV9UWVBFKGRpKSA9PSAmUHlEaWN0SXRlclZhbHVlX1R5cGUpCisgICAgICAgICAgICBlbGVtZW50ID0gZGljdGl0ZXJfaXRlcm5leHR2YWx1ZSgmdG1wKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXNzZXJ0KDApOworICAgICAgICBpZiAoZWxlbWVudCkgeworICAgICAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQobGlzdCwgZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYoZWxlbWVudCk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGxpc3QpOworICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodG1wLmRpX2RpY3QpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICAgICAgUHlfREVDUkVGKGVsZW1lbnQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBQeV9YREVDUkVGKHRtcC5kaV9kaWN0KTsKKyAgICAvKiBjaGVjayBmb3IgZXJyb3IgKi8KKyAgICBpZiAodG1wLmRpX2RpY3QgIT0gTlVMTCkgeworICAgICAgICAvKiB3ZSBoYXZlIGFuIGVycm9yICovCisgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJOKE4pIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oIml0ZXIiKSwgbGlzdCk7Cit9CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qIFZpZXcgb2JqZWN0cyBmb3Iga2V5cygpLCBpdGVtcygpLCB2YWx1ZXMoKS4gKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTI2NDQsMTAgKzMxOTcsOCBAQAogICAgIGFzc2VydChQeURpY3RWaWV3U2V0X0NoZWNrKHNlbGYpKTsKICAgICBhc3NlcnQob3RoZXIgIT0gTlVMTCk7CiAKLSAgICBpZiAoIVB5QW55U2V0X0NoZWNrKG90aGVyKSAmJiAhUHlEaWN0Vmlld1NldF9DaGVjayhvdGhlcikpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZiAoIVB5QW55U2V0X0NoZWNrKG90aGVyKSAmJiAhUHlEaWN0Vmlld1NldF9DaGVjayhvdGhlcikpCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKIAogICAgIGxlbl9zZWxmID0gUHlPYmplY3RfU2l6ZShzZWxmKTsKICAgICBpZiAobGVuX3NlbGYgPCAwKQpAQCAtMjc0NSwxMCArMzI5NiwxMiBAQAogewogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBQeVNldF9OZXcoc2VsZik7CiAgICAgUHlPYmplY3QgKnRtcDsKKyAgICBfUHlfSURFTlRJRklFUihkaWZmZXJlbmNlX3VwZGF0ZSk7CisKICAgICBpZiAocmVzdWx0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgdG1wID0gUHlPYmplY3RfQ2FsbE1ldGhvZChyZXN1bHQsICJkaWZmZXJlbmNlX3VwZGF0ZSIsICJPIiwgb3RoZXIpOworICAgIHRtcCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQocmVzdWx0LCAmUHlJZF9kaWZmZXJlbmNlX3VwZGF0ZSwgIk8iLCBvdGhlcik7CiAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CiAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOwogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTI3NjMsMTAgKzMzMTYsMTIgQEAKIHsKICAgICBQeU9iamVjdCAqcmVzdWx0ID0gUHlTZXRfTmV3KHNlbGYpOwogICAgIFB5T2JqZWN0ICp0bXA7CisgICAgX1B5X0lERU5USUZJRVIoaW50ZXJzZWN0aW9uX3VwZGF0ZSk7CisKICAgICBpZiAocmVzdWx0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgdG1wID0gUHlPYmplY3RfQ2FsbE1ldGhvZChyZXN1bHQsICJpbnRlcnNlY3Rpb25fdXBkYXRlIiwgIk8iLCBvdGhlcik7CisgICAgdG1wID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChyZXN1bHQsICZQeUlkX2ludGVyc2VjdGlvbl91cGRhdGUsICJPIiwgb3RoZXIpOwogICAgIGlmICh0bXAgPT0gTlVMTCkgewogICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0yNzgxLDEwICszMzM2LDEyIEBACiB7CiAgICAgUHlPYmplY3QgKnJlc3VsdCA9IFB5U2V0X05ldyhzZWxmKTsKICAgICBQeU9iamVjdCAqdG1wOworICAgIF9QeV9JREVOVElGSUVSKHVwZGF0ZSk7CisKICAgICBpZiAocmVzdWx0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgdG1wID0gUHlPYmplY3RfQ2FsbE1ldGhvZChyZXN1bHQsICJ1cGRhdGUiLCAiTyIsIG90aGVyKTsKKyAgICB0bXAgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHJlc3VsdCwgJlB5SWRfdXBkYXRlLCAiTyIsIG90aGVyKTsKICAgICBpZiAodG1wID09IE5VTEwpIHsKICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMjc5OSwxMCArMzM1NiwxMiBAQAogewogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBQeVNldF9OZXcoc2VsZik7CiAgICAgUHlPYmplY3QgKnRtcDsKKyAgICBfUHlfSURFTlRJRklFUihzeW1tZXRyaWNfZGlmZmVyZW5jZV91cGRhdGUpOworCiAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHRtcCA9IFB5T2JqZWN0X0NhbGxNZXRob2QocmVzdWx0LCAic3ltbWV0cmljX2RpZmZlcmVuY2VfdXBkYXRlIiwgIk8iLAorICAgIHRtcCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQocmVzdWx0LCAmUHlJZF9zeW1tZXRyaWNfZGlmZmVyZW5jZV91cGRhdGUsICJPIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyKTsKICAgICBpZiAodG1wID09IE5VTEwpIHsKICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CkBAIC0zMDgxLDMgKzM2NDAsMTUxIEBACiB7CiAgICAgcmV0dXJuIGRpY3R2aWV3X25ldyhkaWN0LCAmUHlEaWN0VmFsdWVzX1R5cGUpOwogfQorCisvKiBSZXR1cm5zIE5VTEwgaWYgY2Fubm90IGFsbG9jYXRlIGEgbmV3IFB5RGljdEtleXNPYmplY3QsCisgICBidXQgZG9lcyBub3Qgc2V0IGFuIGVycm9yICovCitQeURpY3RLZXlzT2JqZWN0ICoKK19QeURpY3RfTmV3S2V5c0ZvckNsYXNzKHZvaWQpCit7CisgICAgUHlEaWN0S2V5c09iamVjdCAqa2V5cyA9IG5ld19rZXlzX29iamVjdChQeURpY3RfTUlOU0laRV9TUExJVCk7CisgICAgaWYgKGtleXMgPT0gTlVMTCkKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICBlbHNlCisgICAgICAgIGtleXMtPmRrX2xvb2t1cCA9IGxvb2tkaWN0X3NwbGl0OworICAgIHJldHVybiBrZXlzOworfQorCisjZGVmaW5lIENBQ0hFRF9LRVlTKHRwKSAoKChQeUhlYXBUeXBlT2JqZWN0Kil0cCktPmh0X2NhY2hlZF9rZXlzKQorCitQeU9iamVjdCAqCitQeU9iamVjdF9HZW5lcmljR2V0RGljdChQeU9iamVjdCAqb2JqLCB2b2lkICpjb250ZXh0KQoreworICAgIFB5T2JqZWN0ICpkaWN0LCAqKmRpY3RwdHIgPSBfUHlPYmplY3RfR2V0RGljdFB0cihvYmopOworICAgIGlmIChkaWN0cHRyID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0F0dHJpYnV0ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIlRoaXMgb2JqZWN0IGhhcyBubyBfX2RpY3RfXyIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgZGljdCA9ICpkaWN0cHRyOworICAgIGlmIChkaWN0ID09IE5VTEwpIHsKKyAgICAgICAgUHlUeXBlT2JqZWN0ICp0cCA9IFB5X1RZUEUob2JqKTsKKyAgICAgICAgaWYgKCh0cC0+dHBfZmxhZ3MgJiBQeV9UUEZMQUdTX0hFQVBUWVBFKSAmJiBDQUNIRURfS0VZUyh0cCkpIHsKKyAgICAgICAgICAgIERLX0lOQ1JFRihDQUNIRURfS0VZUyh0cCkpOworICAgICAgICAgICAgKmRpY3RwdHIgPSBkaWN0ID0gbmV3X2RpY3Rfd2l0aF9zaGFyZWRfa2V5cyhDQUNIRURfS0VZUyh0cCkpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgKmRpY3RwdHIgPSBkaWN0ID0gUHlEaWN0X05ldygpOworICAgICAgICB9CisgICAgfQorICAgIFB5X1hJTkNSRUYoZGljdCk7CisgICAgcmV0dXJuIGRpY3Q7Cit9CisKK2ludAorX1B5T2JqZWN0RGljdF9TZXRJdGVtKFB5VHlwZU9iamVjdCAqdHAsIFB5T2JqZWN0ICoqZGljdHB0ciwKKyAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICprZXksIFB5T2JqZWN0ICp2YWx1ZSkKK3sKKyAgICBQeU9iamVjdCAqZGljdDsKKyAgICBpbnQgcmVzOworICAgIFB5RGljdEtleXNPYmplY3QgKmNhY2hlZDsKKworICAgIGFzc2VydChkaWN0cHRyICE9IE5VTEwpOworICAgIGlmICgodHAtPnRwX2ZsYWdzICYgUHlfVFBGTEFHU19IRUFQVFlQRSkgJiYgKGNhY2hlZCA9IENBQ0hFRF9LRVlTKHRwKSkpIHsKKyAgICAgICAgYXNzZXJ0KGRpY3RwdHIgIT0gTlVMTCk7CisgICAgICAgIGRpY3QgPSAqZGljdHB0cjsKKyAgICAgICAgaWYgKGRpY3QgPT0gTlVMTCkgeworICAgICAgICAgICAgREtfSU5DUkVGKGNhY2hlZCk7CisgICAgICAgICAgICBkaWN0ID0gbmV3X2RpY3Rfd2l0aF9zaGFyZWRfa2V5cyhjYWNoZWQpOworICAgICAgICAgICAgaWYgKGRpY3QgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAqZGljdHB0ciA9IGRpY3Q7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKKyAgICAgICAgICAgIHJlcyA9IFB5RGljdF9EZWxJdGVtKGRpY3QsIGtleSk7CisgICAgICAgICAgICBpZiAoY2FjaGVkICE9ICgoUHlEaWN0T2JqZWN0ICopZGljdCktPm1hX2tleXMpIHsKKyAgICAgICAgICAgICAgICBDQUNIRURfS0VZUyh0cCkgPSBOVUxMOworICAgICAgICAgICAgICAgIERLX0RFQ1JFRihjYWNoZWQpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmVzID0gUHlEaWN0X1NldEl0ZW0oZGljdCwga2V5LCB2YWx1ZSk7CisgICAgICAgICAgICBpZiAoY2FjaGVkICE9ICgoUHlEaWN0T2JqZWN0ICopZGljdCktPm1hX2tleXMpIHsKKyAgICAgICAgICAgICAgICAvKiBFaXRoZXIgdXBkYXRlIHRwLT5odF9jYWNoZWRfa2V5cyBvciBkZWxldGUgaXQgKi8KKyAgICAgICAgICAgICAgICBpZiAoY2FjaGVkLT5ka19yZWZjbnQgPT0gMSkgeworICAgICAgICAgICAgICAgICAgICBDQUNIRURfS0VZUyh0cCkgPSBtYWtlX2tleXNfc2hhcmVkKGRpY3QpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIENBQ0hFRF9LRVlTKHRwKSA9IE5VTEw7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIERLX0RFQ1JFRihjYWNoZWQpOworICAgICAgICAgICAgICAgIGlmIChDQUNIRURfS0VZUyh0cCkgPT0gTlVMTCAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBkaWN0ID0gKmRpY3RwdHI7CisgICAgICAgIGlmIChkaWN0ID09IE5VTEwpIHsKKyAgICAgICAgICAgIGRpY3QgPSBQeURpY3RfTmV3KCk7CisgICAgICAgICAgICBpZiAoZGljdCA9PSBOVUxMKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICpkaWN0cHRyID0gZGljdDsKKyAgICAgICAgfQorICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICAgICAgcmVzID0gUHlEaWN0X0RlbEl0ZW0oZGljdCwga2V5KTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJlcyA9IFB5RGljdF9TZXRJdGVtKGRpY3QsIGtleSwgdmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXM7Cit9CisKK3ZvaWQKK19QeURpY3RLZXlzX0RlY1JlZihQeURpY3RLZXlzT2JqZWN0ICprZXlzKQoreworICAgIERLX0RFQ1JFRihrZXlzKTsKK30KKworCisvKiBBUkdTVVNFRCAqLworc3RhdGljIFB5T2JqZWN0ICoKK2R1bW15X3JlcHIoUHlPYmplY3QgKm9wKQoreworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZygiPGR1bW15IGtleT4iKTsKK30KKworLyogQVJHVVNFRCAqLworc3RhdGljIHZvaWQKK2R1bW15X2RlYWxsb2MoUHlPYmplY3QqIGlnbm9yZSkKK3sKKyAgICAvKiBUaGlzIHNob3VsZCBuZXZlciBnZXQgY2FsbGVkLCBidXQgd2UgYWxzbyBkb24ndCB3YW50IHRvIFNFR1YgaWYKKyAgICAgKiB3ZSBhY2NpZGVudGFsbHkgZGVjcmVmIGR1bW15LWtleSBvdXQgb2YgZXhpc3RlbmNlLgorICAgICAqLworICAgIFB5X0ZhdGFsRXJyb3IoImRlYWxsb2NhdGluZyA8ZHVtbXkga2V5PiIpOworfQorCitzdGF0aWMgUHlUeXBlT2JqZWN0IFB5RGljdER1bW15X1R5cGUgPSB7CisgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKCZQeVR5cGVfVHlwZSwgMCkKKyAgICAiPGR1bW15IGtleT4gdHlwZSIsCisgICAgMCwKKyAgICAwLAorICAgIGR1bW15X2RlYWxsb2MsICAgICAgLyp0cF9kZWFsbG9jKi8gLypuZXZlciBjYWxsZWQqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9wcmludCovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2dldGF0dHIqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRyKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfcmVzZXJ2ZWQqLworICAgIGR1bW15X3JlcHIsICAgICAgICAgLyp0cF9yZXByKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbnVtYmVyKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfYXNfc2VxdWVuY2UqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9hc19tYXBwaW5nKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX3N0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9hc19idWZmZXIgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQsIC8qdHBfZmxhZ3MgKi8KK307CisKK3N0YXRpYyBQeU9iamVjdCBfZHVtbXlfc3RydWN0ID0geworICBfUHlPYmplY3RfRVhUUkFfSU5JVAorICAyLCAmUHlEaWN0RHVtbXlfVHlwZQorfTsKKwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9lbnVtb2JqZWN0LmMgYi9PYmplY3RzL2VudW1vYmplY3QuYwppbmRleCAwMGEzMzQ2Li5jNDU4Y2ZlIDEwMDY0NAotLS0gYS9PYmplY3RzL2VudW1vYmplY3QuYworKysgYi9PYmplY3RzL2VudW1vYmplY3QuYwpAQCAtMTU4LDYgKzE1OCwyMiBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitlbnVtX3JlZHVjZShlbnVtb2JqZWN0ICplbikKK3sKKyAgICBpZiAoZW4tPmVuX2xvbmdpbmRleCAhPSBOVUxMKQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPTykiLCBQeV9UWVBFKGVuKSwgZW4tPmVuX3NpdCwgZW4tPmVuX2xvbmdpbmRleCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPbikiLCBQeV9UWVBFKGVuKSwgZW4tPmVuX3NpdCwgZW4tPmVuX2luZGV4KTsKK30KKworUHlEb2NfU1RSVkFSKHJlZHVjZV9kb2MsICJSZXR1cm4gc3RhdGUgaW5mb3JtYXRpb24gZm9yIHBpY2tsaW5nLiIpOworCitzdGF0aWMgUHlNZXRob2REZWYgZW51bV9tZXRob2RzW10gPSB7CisgICAgeyJfX3JlZHVjZV9fIiwgKFB5Q0Z1bmN0aW9uKWVudW1fcmVkdWNlLCBNRVRIX05PQVJHUywgcmVkdWNlX2RvY30sCisgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KK307CisKIFB5RG9jX1NUUlZBUihlbnVtX2RvYywKICJlbnVtZXJhdGUoaXRlcmFibGVbLCBzdGFydF0pIC0+IGl0ZXJhdG9yIGZvciBpbmRleCwgdmFsdWUgb2YgaXRlcmFibGVcbiIKICJcbiIKQEAgLTE5Nyw3ICsyMTMsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KICAgICBQeU9iamVjdF9TZWxmSXRlciwgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCiAgICAgKGl0ZXJuZXh0ZnVuYyllbnVtX25leHQsICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIGVudW1fbWV0aG9kcywgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCkBAIC0yMjQsOCArMjQwLDggQEAKIHsKICAgICBQeV9zc2l6ZV90IG47CiAgICAgUHlPYmplY3QgKnNlcSwgKnJldmVyc2VkX21ldGg7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpyZXZlcnNlZF9jYWNoZSA9IE5VTEw7CiAgICAgcmV2ZXJzZWRvYmplY3QgKnJvOworICAgIF9QeV9JREVOVElGSUVSKF9fcmV2ZXJzZWRfXyk7CiAKICAgICBpZiAodHlwZSA9PSAmUHlSZXZlcnNlZF9UeXBlICYmICFfUHlBcmdfTm9LZXl3b3JkcygicmV2ZXJzZWQoKSIsIGt3ZHMpKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTIzMyw3ICsyNDksNyBAQAogICAgIGlmICghUHlBcmdfVW5wYWNrVHVwbGUoYXJncywgInJldmVyc2VkIiwgMSwgMSwgJnNlcSkgKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJldmVyc2VkX21ldGggPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChzZXEsICJfX3JldmVyc2VkX18iLCAmcmV2ZXJzZWRfY2FjaGUpOworICAgIHJldmVyc2VkX21ldGggPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChzZXEsICZQeUlkX19fcmV2ZXJzZWRfXyk7CiAgICAgaWYgKHJldmVyc2VkX21ldGggIT0gTlVMTCkgewogICAgICAgICBQeU9iamVjdCAqcmVzID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhyZXZlcnNlZF9tZXRoLCBOVUxMKTsKICAgICAgICAgUHlfREVDUkVGKHJldmVyc2VkX21ldGgpOwpAQCAtMzE5LDggKzMzNSw0MCBAQAogCiBQeURvY19TVFJWQVIobGVuZ3RoX2hpbnRfZG9jLCAiUHJpdmF0ZSBtZXRob2QgcmV0dXJuaW5nIGFuIGVzdGltYXRlIG9mIGxlbihsaXN0KGl0KSkuIik7CiAKK3N0YXRpYyBQeU9iamVjdCAqCityZXZlcnNlZF9yZWR1Y2UocmV2ZXJzZWRvYmplY3QgKnJvKQoreworICAgIGlmIChyby0+c2VxKQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTyhPKW4iLCBQeV9UWVBFKHJvKSwgcm8tPnNlcSwgcm8tPmluZGV4KTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPKCgpKSIsIFB5X1RZUEUocm8pKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK3JldmVyc2VkX3NldHN0YXRlKHJldmVyc2Vkb2JqZWN0ICpybywgUHlPYmplY3QgKnN0YXRlKQoreworICAgIFB5X3NzaXplX3QgaW5kZXggPSBQeUxvbmdfQXNTc2l6ZV90KHN0YXRlKTsKKyAgICBpZiAoaW5kZXggPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKHJvLT5zZXEgIT0gMCkgeworICAgICAgICBQeV9zc2l6ZV90IG4gPSBQeVNlcXVlbmNlX1NpemUocm8tPnNlcSk7CisgICAgICAgIGlmIChuIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBpZiAoaW5kZXggPCAtMSkKKyAgICAgICAgICAgIGluZGV4ID0gLTE7CisgICAgICAgIGVsc2UgaWYgKGluZGV4ID4gbi0xKQorICAgICAgICAgICAgaW5kZXggPSBuLTE7CisgICAgICAgIHJvLT5pbmRleCA9IGluZGV4OworICAgIH0KKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworUHlEb2NfU1RSVkFSKHNldHN0YXRlX2RvYywgIlNldCBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgdW5waWNrbGluZy4iKTsKKwogc3RhdGljIFB5TWV0aG9kRGVmIHJldmVyc2VkaXRlcl9tZXRob2RzW10gPSB7CiAgICAgeyJfX2xlbmd0aF9oaW50X18iLCAoUHlDRnVuY3Rpb24pcmV2ZXJzZWRfbGVuLCBNRVRIX05PQVJHUywgbGVuZ3RoX2hpbnRfZG9jfSwKKyAgICB7Il9fcmVkdWNlX18iLCAoUHlDRnVuY3Rpb24pcmV2ZXJzZWRfcmVkdWNlLCBNRVRIX05PQVJHUywgcmVkdWNlX2RvY30sCisgICAgeyJfX3NldHN0YXRlX18iLCAoUHlDRnVuY3Rpb24pcmV2ZXJzZWRfc2V0c3RhdGUsIE1FVEhfTywgc2V0c3RhdGVfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwogfTsKIApkaWZmIC0tZ2l0IGEvT2JqZWN0cy9leGNlcHRpb25zLmMgYi9PYmplY3RzL2V4Y2VwdGlvbnMuYwppbmRleCA5ZGFhMTJhLi41Yzg1ZjEwIDEwMDY0NAotLS0gYS9PYmplY3RzL2V4Y2VwdGlvbnMuYworKysgYi9PYmplY3RzL2V4Y2VwdGlvbnMuYwpAQCAtMTAsNiArMTAsMjAgQEAKICNpbmNsdWRlICJvc2RlZnMuaCIKIAogCisvKiBDb21wYXRpYmlsaXR5IGFsaWFzZXMgKi8KK1B5T2JqZWN0ICpQeUV4Y19FbnZpcm9ubWVudEVycm9yID0gTlVMTDsKK1B5T2JqZWN0ICpQeUV4Y19JT0Vycm9yID0gTlVMTDsKKyNpZmRlZiBNU19XSU5ET1dTCitQeU9iamVjdCAqUHlFeGNfV2luZG93c0Vycm9yID0gTlVMTDsKKyNlbmRpZgorI2lmZGVmIF9fVk1TCitQeU9iamVjdCAqUHlFeGNfVk1TRXJyb3IgPSBOVUxMOworI2VuZGlmCisKKy8qIFRoZSBkaWN0IG1hcCBmcm9tIGVycm5vIGNvZGVzIHRvIE9TRXJyb3Igc3ViY2xhc3NlcyAqLworc3RhdGljIFB5T2JqZWN0ICplcnJub21hcCA9IE5VTEw7CisKKwogLyogTk9URTogSWYgdGhlIGV4Y2VwdGlvbiBjbGFzcyBoaWVyYXJjaHkgY2hhbmdlcywgZG9uJ3QgZm9yZ2V0IHRvIHVwZGF0ZQogICogTGliL3Rlc3QvZXhjZXB0aW9uX2hpZXJhcmNoeS50eHQKICAqLwpAQCAtMjgsNiArNDIsNyBAQAogICAgIC8qIHRoZSBkaWN0IGlzIGNyZWF0ZWQgb24gdGhlIGZseSBpbiBQeU9iamVjdF9HZW5lcmljU2V0QXR0ciAqLwogICAgIHNlbGYtPmRpY3QgPSBOVUxMOwogICAgIHNlbGYtPnRyYWNlYmFjayA9IHNlbGYtPmNhdXNlID0gc2VsZi0+Y29udGV4dCA9IE5VTEw7CisgICAgc2VsZi0+c3VwcHJlc3NfY29udGV4dCA9IDA7CiAKICAgICBzZWxmLT5hcmdzID0gUHlUdXBsZV9OZXcoMCk7CiAgICAgaWYgKCFzZWxmLT5hcmdzKSB7CkBAIC00NCw3ICs1OSw3IEBACiAgICAgaWYgKCFfUHlBcmdfTm9LZXl3b3JkcyhQeV9UWVBFKHNlbGYpLT50cF9uYW1lLCBrd2RzKSkKICAgICAgICAgcmV0dXJuIC0xOwogCi0gICAgUHlfREVDUkVGKHNlbGYtPmFyZ3MpOworICAgIFB5X1hERUNSRUYoc2VsZi0+YXJncyk7CiAgICAgc2VsZi0+YXJncyA9IGFyZ3M7CiAgICAgUHlfSU5DUkVGKHNlbGYtPmFyZ3MpOwogCkBAIC0xNjMsMzYgKzE3OCw2IEBACiAgICB7TlVMTCwgTlVMTCwgMCwgTlVMTH0sCiB9OwogCi0KLXN0YXRpYyBQeU9iamVjdCAqCi1CYXNlRXhjZXB0aW9uX2dldF9kaWN0KFB5QmFzZUV4Y2VwdGlvbk9iamVjdCAqc2VsZikKLXsKLSAgICBpZiAoc2VsZi0+ZGljdCA9PSBOVUxMKSB7Ci0gICAgICAgIHNlbGYtPmRpY3QgPSBQeURpY3RfTmV3KCk7Ci0gICAgICAgIGlmICghc2VsZi0+ZGljdCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBQeV9JTkNSRUYoc2VsZi0+ZGljdCk7Ci0gICAgcmV0dXJuIHNlbGYtPmRpY3Q7Ci19Ci0KLXN0YXRpYyBpbnQKLUJhc2VFeGNlcHRpb25fc2V0X2RpY3QoUHlCYXNlRXhjZXB0aW9uT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdmFsKQotewotICAgIGlmICh2YWwgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiX19kaWN0X18gbWF5IG5vdCBiZSBkZWxldGVkIik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgaWYgKCFQeURpY3RfQ2hlY2sodmFsKSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiX19kaWN0X18gbXVzdCBiZSBhIGRpY3Rpb25hcnkiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICBQeV9DTEVBUihzZWxmLT5kaWN0KTsKLSAgICBQeV9JTkNSRUYodmFsKTsKLSAgICBzZWxmLT5kaWN0ID0gdmFsOwotICAgIHJldHVybiAwOwotfQotCiBzdGF0aWMgUHlPYmplY3QgKgogQmFzZUV4Y2VwdGlvbl9nZXRfYXJncyhQeUJhc2VFeGNlcHRpb25PYmplY3QgKnNlbGYpCiB7CkBAIC0zMDYsNyArMjkxLDcgQEAKIAogCiBzdGF0aWMgUHlHZXRTZXREZWYgQmFzZUV4Y2VwdGlvbl9nZXRzZXRbXSA9IHsKLSAgICB7Il9fZGljdF9fIiwgKGdldHRlcilCYXNlRXhjZXB0aW9uX2dldF9kaWN0LCAoc2V0dGVyKUJhc2VFeGNlcHRpb25fc2V0X2RpY3R9LAorICAgIHsiX19kaWN0X18iLCBQeU9iamVjdF9HZW5lcmljR2V0RGljdCwgUHlPYmplY3RfR2VuZXJpY1NldERpY3R9LAogICAgIHsiYXJncyIsIChnZXR0ZXIpQmFzZUV4Y2VwdGlvbl9nZXRfYXJncywgKHNldHRlcilCYXNlRXhjZXB0aW9uX3NldF9hcmdzfSwKICAgICB7Il9fdHJhY2ViYWNrX18iLCAoZ2V0dGVyKUJhc2VFeGNlcHRpb25fZ2V0X3RiLCAoc2V0dGVyKUJhc2VFeGNlcHRpb25fc2V0X3RifSwKICAgICB7Il9fY29udGV4dF9fIiwgKGdldHRlcilCYXNlRXhjZXB0aW9uX2dldF9jb250ZXh0LApAQCAtMzQyLDYgKzMyNyw3IEBACiBQeUV4Y2VwdGlvbl9TZXRDYXVzZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmNhdXNlKSB7CiAgICAgUHlPYmplY3QgKm9sZF9jYXVzZSA9ICgoUHlCYXNlRXhjZXB0aW9uT2JqZWN0ICopc2VsZiktPmNhdXNlOwogICAgICgoUHlCYXNlRXhjZXB0aW9uT2JqZWN0ICopc2VsZiktPmNhdXNlID0gY2F1c2U7CisgICAgKChQeUJhc2VFeGNlcHRpb25PYmplY3QgKilzZWxmKS0+c3VwcHJlc3NfY29udGV4dCA9IDE7CiAgICAgUHlfWERFQ1JFRihvbGRfY2F1c2UpOwogfQogCkBAIC0zNjEsNiArMzQ3LDEzIEBACiB9CiAKIAorc3RhdGljIHN0cnVjdCBQeU1lbWJlckRlZiBCYXNlRXhjZXB0aW9uX21lbWJlcnNbXSA9IHsKKyAgICB7Il9fc3VwcHJlc3NfY29udGV4dF9fIiwgVF9CT09MLAorICAgICBvZmZzZXRvZihQeUJhc2VFeGNlcHRpb25PYmplY3QsIHN1cHByZXNzX2NvbnRleHQpfSwKKyAgICB7TlVMTH0KK307CisKKwogc3RhdGljIFB5VHlwZU9iamVjdCBfUHlFeGNfQmFzZUV4Y2VwdGlvbiA9IHsKICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKICAgICAiQmFzZUV4Y2VwdGlvbiIsIC8qdHBfbmFtZSovCkBAIC0zOTEsNyArMzg0LDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwogICAgIEJhc2VFeGNlcHRpb25fbWV0aG9kcywgICAgICAvKiB0cF9tZXRob2RzICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KKyAgICBCYXNlRXhjZXB0aW9uX21lbWJlcnMsICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIEJhc2VFeGNlcHRpb25fZ2V0c2V0LCAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCkBAIC00MzYsMTEgKzQyOSwxMyBAQAogICAgIFB5RG9jX1NUUihFWENET0MpLCAodHJhdmVyc2Vwcm9jKUVYQ1NUT1JFICMjIF90cmF2ZXJzZSwgXAogICAgIChpbnF1aXJ5KUVYQ1NUT1JFICMjIF9jbGVhciwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgJl8gIyMgRVhDQkFTRSwgXAogICAgIDAsIDAsIDAsIG9mZnNldG9mKFB5ICMjIEVYQ1NUT1JFICMjIE9iamVjdCwgZGljdCksIFwKLSAgICAoaW5pdHByb2MpRVhDU1RPUkUgIyMgX2luaXQsIDAsIEJhc2VFeGNlcHRpb25fbmV3LFwKKyAgICAoaW5pdHByb2MpRVhDU1RPUkUgIyMgX2luaXQsIDAsIDAsIFwKIH07IFwKIFB5T2JqZWN0ICpQeUV4Y18gIyMgRVhDTkFNRSA9IChQeU9iamVjdCAqKSZfUHlFeGNfICMjIEVYQ05BTUUKIAotI2RlZmluZSBDb21wbGV4RXh0ZW5kc0V4Y2VwdGlvbihFWENCQVNFLCBFWENOQU1FLCBFWENTVE9SRSwgRVhDREVBTExPQywgRVhDTUVUSE9EUywgRVhDTUVNQkVSUywgRVhDU1RSLCBFWENET0MpIFwKKyNkZWZpbmUgQ29tcGxleEV4dGVuZHNFeGNlcHRpb24oRVhDQkFTRSwgRVhDTkFNRSwgRVhDU1RPUkUsIEVYQ05FVywgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFWENNRVRIT0RTLCBFWENNRU1CRVJTLCBFWENHRVRTRVQsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRVhDU1RSLCBFWENET0MpIFwKIHN0YXRpYyBQeVR5cGVPYmplY3QgX1B5RXhjXyAjIyBFWENOQU1FID0geyBcCiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApIFwKICAgICAjIEVYQ05BTUUsIFwKQEAgLTQ1MCw5ICs0NDUsOSBAQAogICAgIFB5X1RQRkxBR1NfREVGQVVMVCB8IFB5X1RQRkxBR1NfQkFTRVRZUEUgfCBQeV9UUEZMQUdTX0hBVkVfR0MsIFwKICAgICBQeURvY19TVFIoRVhDRE9DKSwgKHRyYXZlcnNlcHJvYylFWENTVE9SRSAjIyBfdHJhdmVyc2UsIFwKICAgICAoaW5xdWlyeSlFWENTVE9SRSAjIyBfY2xlYXIsIDAsIDAsIDAsIDAsIEVYQ01FVEhPRFMsIFwKLSAgICBFWENNRU1CRVJTLCAwLCAmXyAjIyBFWENCQVNFLCBcCisgICAgRVhDTUVNQkVSUywgRVhDR0VUU0VULCAmXyAjIyBFWENCQVNFLCBcCiAgICAgMCwgMCwgMCwgb2Zmc2V0b2YoUHkgIyMgRVhDU1RPUkUgIyMgT2JqZWN0LCBkaWN0KSwgXAotICAgIChpbml0cHJvYylFWENTVE9SRSAjIyBfaW5pdCwgMCwgQmFzZUV4Y2VwdGlvbl9uZXcsXAorICAgIChpbml0cHJvYylFWENTVE9SRSAjIyBfaW5pdCwgMCwgRVhDTkVXLFwKIH07IFwKIFB5T2JqZWN0ICpQeUV4Y18gIyMgRVhDTkFNRSA9IChQeU9iamVjdCAqKSZfUHlFeGNfICMjIEVYQ05BTUUKIApAQCAtNDc0LDggKzQ2OSw2NCBAQAogLyoKICAqICAgIFN0b3BJdGVyYXRpb24gZXh0ZW5kcyBFeGNlcHRpb24KICAqLwotU2ltcGxlRXh0ZW5kc0V4Y2VwdGlvbihQeUV4Y19FeGNlcHRpb24sIFN0b3BJdGVyYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICJTaWduYWwgdGhlIGVuZCBmcm9tIGl0ZXJhdG9yLl9fbmV4dF9fKCkuIik7CisKK3N0YXRpYyBQeU1lbWJlckRlZiBTdG9wSXRlcmF0aW9uX21lbWJlcnNbXSA9IHsKKyAgICB7InZhbHVlIiwgVF9PQkpFQ1QsIG9mZnNldG9mKFB5U3RvcEl0ZXJhdGlvbk9iamVjdCwgdmFsdWUpLCAwLAorICAgICAgICBQeURvY19TVFIoImdlbmVyYXRvciByZXR1cm4gdmFsdWUiKX0sCisgICAge05VTEx9ICAvKiBTZW50aW5lbCAqLworfTsKKworc3RhdGljIGludAorU3RvcEl0ZXJhdGlvbl9pbml0KFB5U3RvcEl0ZXJhdGlvbk9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQoreworICAgIFB5X3NzaXplX3Qgc2l6ZSA9IFB5VHVwbGVfR0VUX1NJWkUoYXJncyk7CisgICAgUHlPYmplY3QgKnZhbHVlOworCisgICAgaWYgKEJhc2VFeGNlcHRpb25faW5pdCgoUHlCYXNlRXhjZXB0aW9uT2JqZWN0ICopc2VsZiwgYXJncywga3dkcykgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBQeV9DTEVBUihzZWxmLT52YWx1ZSk7CisgICAgaWYgKHNpemUgPiAwKQorICAgICAgICB2YWx1ZSA9IFB5VHVwbGVfR0VUX0lURU0oYXJncywgMCk7CisgICAgZWxzZQorICAgICAgICB2YWx1ZSA9IFB5X05vbmU7CisgICAgUHlfSU5DUkVGKHZhbHVlKTsKKyAgICBzZWxmLT52YWx1ZSA9IHZhbHVlOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CitTdG9wSXRlcmF0aW9uX2NsZWFyKFB5U3RvcEl0ZXJhdGlvbk9iamVjdCAqc2VsZikKK3sKKyAgICBQeV9DTEVBUihzZWxmLT52YWx1ZSk7CisgICAgcmV0dXJuIEJhc2VFeGNlcHRpb25fY2xlYXIoKFB5QmFzZUV4Y2VwdGlvbk9iamVjdCAqKXNlbGYpOworfQorCitzdGF0aWMgdm9pZAorU3RvcEl0ZXJhdGlvbl9kZWFsbG9jKFB5U3RvcEl0ZXJhdGlvbk9iamVjdCAqc2VsZikKK3sKKyAgICBfUHlPYmplY3RfR0NfVU5UUkFDSyhzZWxmKTsKKyAgICBTdG9wSXRlcmF0aW9uX2NsZWFyKHNlbGYpOworICAgIFB5X1RZUEUoc2VsZiktPnRwX2ZyZWUoKFB5T2JqZWN0ICopc2VsZik7Cit9CisKK3N0YXRpYyBpbnQKK1N0b3BJdGVyYXRpb25fdHJhdmVyc2UoUHlTdG9wSXRlcmF0aW9uT2JqZWN0ICpzZWxmLCB2aXNpdHByb2MgdmlzaXQsIHZvaWQgKmFyZykKK3sKKyAgICBQeV9WSVNJVChzZWxmLT52YWx1ZSk7CisgICAgcmV0dXJuIEJhc2VFeGNlcHRpb25fdHJhdmVyc2UoKFB5QmFzZUV4Y2VwdGlvbk9iamVjdCAqKXNlbGYsIHZpc2l0LCBhcmcpOworfQorCitDb21wbGV4RXh0ZW5kc0V4Y2VwdGlvbigKKyAgICBQeUV4Y19FeGNlcHRpb24sICAgICAgIC8qIGJhc2UgKi8KKyAgICBTdG9wSXRlcmF0aW9uLCAgICAgICAgIC8qIG5hbWUgKi8KKyAgICBTdG9wSXRlcmF0aW9uLCAgICAgICAgIC8qIHByZWZpeCBmb3IgKl9pbml0LCBldGMgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgIC8qIG5ldyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgLyogbWV0aG9kcyAqLworICAgIFN0b3BJdGVyYXRpb25fbWVtYmVycywgLyogbWVtYmVycyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgLyogZ2V0c2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAvKiBzdHIgKi8KKyAgICAiU2lnbmFsIHRoZSBlbmQgZnJvbSBpdGVyYXRvci5fX25leHRfXygpLiIKKyk7CiAKIAogLyoKQEAgLTUwMiw3ICs1NTMsNyBAQAogICAgIFB5X0NMRUFSKHNlbGYtPmNvZGUpOwogICAgIGlmIChzaXplID09IDEpCiAgICAgICAgIHNlbGYtPmNvZGUgPSBQeVR1cGxlX0dFVF9JVEVNKGFyZ3MsIDApOwotICAgIGVsc2UgaWYgKHNpemUgPiAxKQorICAgIGVsc2UgLyogc2l6ZSA+IDEgKi8KICAgICAgICAgc2VsZi0+Y29kZSA9IGFyZ3M7CiAgICAgUHlfSU5DUkVGKHNlbGYtPmNvZGUpOwogICAgIHJldHVybiAwOwpAQCAtNTM3LDcgKzU4OCw3IEBACiB9OwogCiBDb21wbGV4RXh0ZW5kc0V4Y2VwdGlvbihQeUV4Y19CYXNlRXhjZXB0aW9uLCBTeXN0ZW1FeGl0LCBTeXN0ZW1FeGl0LAotICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtRXhpdF9kZWFsbG9jLCAwLCBTeXN0ZW1FeGl0X21lbWJlcnMsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCBTeXN0ZW1FeGl0X21lbWJlcnMsIDAsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAiUmVxdWVzdCB0byBleGl0IGZyb20gdGhlIGludGVycHJldGVyLiIpOwogCiAvKgpAQCAtNTUwLDEyOSArNjAxLDQ0MSBAQAogLyoKICAqICAgIEltcG9ydEVycm9yIGV4dGVuZHMgRXhjZXB0aW9uCiAgKi8KLVNpbXBsZUV4dGVuZHNFeGNlcHRpb24oUHlFeGNfRXhjZXB0aW9uLCBJbXBvcnRFcnJvciwKLSAgICAgICAgICAiSW1wb3J0IGNhbid0IGZpbmQgbW9kdWxlLCBvciBjYW4ndCBmaW5kIG5hbWUgaW4gbW9kdWxlLiIpOwogCitzdGF0aWMgaW50CitJbXBvcnRFcnJvcl9pbml0KFB5SW1wb3J0RXJyb3JPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBQeU9iamVjdCAqbXNnID0gTlVMTDsKKyAgICBQeU9iamVjdCAqbmFtZSA9IE5VTEw7CisgICAgUHlPYmplY3QgKnBhdGggPSBOVUxMOworCisvKiBNYWNybyByZXBsYWNlbWVudCBkb2Vzbid0IGFsbG93ICMjIHRvIHN0YXJ0IHRoZSBmaXJzdCBsaW5lIG9mIGEgbWFjcm8sCisgICBzbyB3ZSBtb3ZlIHRoZSBhc3NpZ25tZW50IGFuZCBOVUxMIGNoZWNrIGludG8gdGhlIGlmLXN0YXRlbWVudC4gKi8KKyNkZWZpbmUgR0VUX0tXRChrd2QpIHsgXAorICAgIGt3ZCA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKGt3ZHMsICNrd2QpOyBcCisgICAgaWYgKGt3ZCkgeyBcCisgICAgICAgIFB5X0NMRUFSKHNlbGYtPmt3ZCk7IFwKKyAgICAgICAgc2VsZi0+a3dkID0ga3dkOyAgIFwKKyAgICAgICAgUHlfSU5DUkVGKHNlbGYtPmt3ZCk7XAorICAgICAgICBpZiAoUHlEaWN0X0RlbEl0ZW1TdHJpbmcoa3dkcywgI2t3ZCkpIFwKKyAgICAgICAgICAgIHJldHVybiAtMTsgXAorICAgIH0gXAorICAgIH0KKworICAgIGlmIChrd2RzKSB7CisgICAgICAgIEdFVF9LV0QobmFtZSk7CisgICAgICAgIEdFVF9LV0QocGF0aCk7CisgICAgfQorCisgICAgaWYgKEJhc2VFeGNlcHRpb25faW5pdCgoUHlCYXNlRXhjZXB0aW9uT2JqZWN0ICopc2VsZiwgYXJncywga3dkcykgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoUHlUdXBsZV9HRVRfU0laRShhcmdzKSAhPSAxKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIVB5QXJnX1VucGFja1R1cGxlKGFyZ3MsICJJbXBvcnRFcnJvciIsIDEsIDEsICZtc2cpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBQeV9DTEVBUihzZWxmLT5tc2cpOyAgICAgICAgICAvKiByZXBsYWNpbmcgKi8KKyAgICBzZWxmLT5tc2cgPSBtc2c7CisgICAgUHlfSU5DUkVGKHNlbGYtPm1zZyk7CisKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorSW1wb3J0RXJyb3JfY2xlYXIoUHlJbXBvcnRFcnJvck9iamVjdCAqc2VsZikKK3sKKyAgICBQeV9DTEVBUihzZWxmLT5tc2cpOworICAgIFB5X0NMRUFSKHNlbGYtPm5hbWUpOworICAgIFB5X0NMRUFSKHNlbGYtPnBhdGgpOworICAgIHJldHVybiBCYXNlRXhjZXB0aW9uX2NsZWFyKChQeUJhc2VFeGNlcHRpb25PYmplY3QgKilzZWxmKTsKK30KKworc3RhdGljIHZvaWQKK0ltcG9ydEVycm9yX2RlYWxsb2MoUHlJbXBvcnRFcnJvck9iamVjdCAqc2VsZikKK3sKKyAgICBfUHlPYmplY3RfR0NfVU5UUkFDSyhzZWxmKTsKKyAgICBJbXBvcnRFcnJvcl9jbGVhcihzZWxmKTsKKyAgICBQeV9UWVBFKHNlbGYpLT50cF9mcmVlKChQeU9iamVjdCAqKXNlbGYpOworfQorCitzdGF0aWMgaW50CitJbXBvcnRFcnJvcl90cmF2ZXJzZShQeUltcG9ydEVycm9yT2JqZWN0ICpzZWxmLCB2aXNpdHByb2MgdmlzaXQsIHZvaWQgKmFyZykKK3sKKyAgICBQeV9WSVNJVChzZWxmLT5tc2cpOworICAgIFB5X1ZJU0lUKHNlbGYtPm5hbWUpOworICAgIFB5X1ZJU0lUKHNlbGYtPnBhdGgpOworICAgIHJldHVybiBCYXNlRXhjZXB0aW9uX3RyYXZlcnNlKChQeUJhc2VFeGNlcHRpb25PYmplY3QgKilzZWxmLCB2aXNpdCwgYXJnKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK0ltcG9ydEVycm9yX3N0cihQeUltcG9ydEVycm9yT2JqZWN0ICpzZWxmKQoreworICAgIGlmIChzZWxmLT5tc2cpIHsKKyAgICAgICAgUHlfSU5DUkVGKHNlbGYtPm1zZyk7CisgICAgICAgIHJldHVybiBzZWxmLT5tc2c7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gQmFzZUV4Y2VwdGlvbl9zdHIoKFB5QmFzZUV4Y2VwdGlvbk9iamVjdCAqKXNlbGYpOworICAgIH0KK30KKworc3RhdGljIFB5TWVtYmVyRGVmIEltcG9ydEVycm9yX21lbWJlcnNbXSA9IHsKKyAgICB7Im1zZyIsIFRfT0JKRUNULCBvZmZzZXRvZihQeUltcG9ydEVycm9yT2JqZWN0LCBtc2cpLCAwLAorICAgICAgICBQeURvY19TVFIoImV4Y2VwdGlvbiBtZXNzYWdlIil9LAorICAgIHsibmFtZSIsIFRfT0JKRUNULCBvZmZzZXRvZihQeUltcG9ydEVycm9yT2JqZWN0LCBuYW1lKSwgMCwKKyAgICAgICAgUHlEb2NfU1RSKCJtb2R1bGUgbmFtZSIpfSwKKyAgICB7InBhdGgiLCBUX09CSkVDVCwgb2Zmc2V0b2YoUHlJbXBvcnRFcnJvck9iamVjdCwgcGF0aCksIDAsCisgICAgICAgIFB5RG9jX1NUUigibW9kdWxlIHBhdGgiKX0sCisgICAge05VTEx9ICAvKiBTZW50aW5lbCAqLworfTsKKworc3RhdGljIFB5TWV0aG9kRGVmIEltcG9ydEVycm9yX21ldGhvZHNbXSA9IHsKKyAgICB7TlVMTH0KK307CisKK0NvbXBsZXhFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX0V4Y2VwdGlvbiwgSW1wb3J0RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICBJbXBvcnRFcnJvciwgMCAvKiBuZXcgKi8sCisgICAgICAgICAgICAgICAgICAgICAgICBJbXBvcnRFcnJvcl9tZXRob2RzLCBJbXBvcnRFcnJvcl9tZW1iZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgMCAvKiBnZXRzZXQgKi8sIEltcG9ydEVycm9yX3N0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJJbXBvcnQgY2FuJ3QgZmluZCBtb2R1bGUsIG9yIGNhbid0IGZpbmQgbmFtZSBpbiAiCisgICAgICAgICAgICAgICAgICAgICAgICAibW9kdWxlLiIpOwogCiAvKgotICogICAgRW52aXJvbm1lbnRFcnJvciBleHRlbmRzIEV4Y2VwdGlvbgorICogICAgT1NFcnJvciBleHRlbmRzIEV4Y2VwdGlvbgogICovCiAKKyNpZmRlZiBNU19XSU5ET1dTCisjaW5jbHVkZSAiZXJybWFwLmgiCisjZW5kaWYKKwogLyogV2hlcmUgYSBmdW5jdGlvbiBoYXMgYSBzaW5nbGUgZmlsZW5hbWUsIHN1Y2ggYXMgb3BlbigpIG9yIHNvbWUKICAqIG9mIHRoZSBvcyBtb2R1bGUgZnVuY3Rpb25zLCBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWUoKSBpcwogICogY2FsbGVkLCBnaXZpbmcgYSB0aGlyZCBhcmd1bWVudCB3aGljaCBpcyB0aGUgZmlsZW5hbWUuICBCdXQsIHNvCiAgKiB0aGF0IG9sZCBjb2RlIHVzaW5nIGluLXBsYWNlIHVucGFja2luZyBkb2Vzbid0IGJyZWFrLCBlLmcuOgogICoKLSAqIGV4Y2VwdCBJT0Vycm9yLCAoZXJybm8sIHN0cmVycm9yKToKKyAqIGV4Y2VwdCBPU0Vycm9yLCAoZXJybm8sIHN0cmVycm9yKToKICAqCiAgKiB3ZSBoYWNrIGFyZ3Mgc28gdGhhdCBpdCBvbmx5IGNvbnRhaW5zIHR3byBpdGVtcy4gIFRoaXMgYWxzbwogICogbWVhbnMgd2UgbmVlZCBvdXIgb3duIF9fc3RyX18oKSB3aGljaCBwcmludHMgb3V0IHRoZSBmaWxlbmFtZQogICogd2hlbiBpdCB3YXMgc3VwcGxpZWQuCiAgKi8KKworLyogVGhpcyBmdW5jdGlvbiBkb2Vzbid0IGNsZWFudXAgb24gZXJyb3IsIHRoZSBjYWxsZXIgc2hvdWxkICovCiBzdGF0aWMgaW50Ci1FbnZpcm9ubWVudEVycm9yX2luaXQoUHlFbnZpcm9ubWVudEVycm9yT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywKLSAgICBQeU9iamVjdCAqa3dkcykKK29zZXJyb3JfcGFyc2VfYXJncyhQeU9iamVjdCAqKnBfYXJncywKKyAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqKm15ZXJybm8sIFB5T2JqZWN0ICoqc3RyZXJyb3IsCisgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKipmaWxlbmFtZQorI2lmZGVmIE1TX1dJTkRPV1MKKyAgICAgICAgICAgICAgICAgICAsIFB5T2JqZWN0ICoqd2luZXJyb3IKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgKQogewotICAgIFB5T2JqZWN0ICpteWVycm5vID0gTlVMTCwgKnN0cmVycm9yID0gTlVMTCwgKmZpbGVuYW1lID0gTlVMTDsKLSAgICBQeU9iamVjdCAqc3Vic2xpY2UgPSBOVUxMOworICAgIFB5X3NzaXplX3QgbmFyZ3M7CisgICAgUHlPYmplY3QgKmFyZ3MgPSAqcF9hcmdzOwogCi0gICAgaWYgKEJhc2VFeGNlcHRpb25faW5pdCgoUHlCYXNlRXhjZXB0aW9uT2JqZWN0ICopc2VsZiwgYXJncywga3dkcykgPT0gLTEpCi0gICAgICAgIHJldHVybiAtMTsKKyAgICBuYXJncyA9IFB5VHVwbGVfR0VUX1NJWkUoYXJncyk7CiAKLSAgICBpZiAoUHlUdXBsZV9HRVRfU0laRShhcmdzKSA8PSAxIHx8IFB5VHVwbGVfR0VUX1NJWkUoYXJncykgPiAzKSB7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGlmICghUHlBcmdfVW5wYWNrVHVwbGUoYXJncywgIkVudmlyb25tZW50RXJyb3IiLCAyLCAzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJm15ZXJybm8sICZzdHJlcnJvciwgJmZpbGVuYW1lKSkgewotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIFB5X0NMRUFSKHNlbGYtPm15ZXJybm8pOyAgICAgICAvKiByZXBsYWNpbmcgKi8KLSAgICBzZWxmLT5teWVycm5vID0gbXllcnJubzsKLSAgICBQeV9JTkNSRUYoc2VsZi0+bXllcnJubyk7Ci0KLSAgICBQeV9DTEVBUihzZWxmLT5zdHJlcnJvcik7ICAgICAgLyogcmVwbGFjaW5nICovCi0gICAgc2VsZi0+c3RyZXJyb3IgPSBzdHJlcnJvcjsKLSAgICBQeV9JTkNSRUYoc2VsZi0+c3RyZXJyb3IpOwotCi0gICAgLyogc2VsZi0+ZmlsZW5hbWUgd2lsbCByZW1haW4gUHlfTm9uZSBvdGhlcndpc2UgKi8KLSAgICBpZiAoZmlsZW5hbWUgIT0gTlVMTCkgewotICAgICAgICBQeV9DTEVBUihzZWxmLT5maWxlbmFtZSk7ICAgICAgLyogcmVwbGFjaW5nICovCi0gICAgICAgIHNlbGYtPmZpbGVuYW1lID0gZmlsZW5hbWU7Ci0gICAgICAgIFB5X0lOQ1JFRihzZWxmLT5maWxlbmFtZSk7Ci0KLSAgICAgICAgc3Vic2xpY2UgPSBQeVR1cGxlX0dldFNsaWNlKGFyZ3MsIDAsIDIpOwotICAgICAgICBpZiAoIXN1YnNsaWNlKQorI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBpZiAobmFyZ3MgPj0gMiAmJiBuYXJncyA8PSA0KSB7CisgICAgICAgIGlmICghUHlBcmdfVW5wYWNrVHVwbGUoYXJncywgIk9TRXJyb3IiLCAyLCA0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ZXJybm8sIHN0cmVycm9yLCBmaWxlbmFtZSwgd2luZXJyb3IpKQogICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBpZiAoKndpbmVycm9yICYmIFB5TG9uZ19DaGVjaygqd2luZXJyb3IpKSB7CisgICAgICAgICAgICBsb25nIGVycmNvZGUsIHdpbmVycmNvZGU7CisgICAgICAgICAgICBQeU9iamVjdCAqbmV3YXJnczsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKIAotICAgICAgICBQeV9ERUNSRUYoc2VsZi0+YXJncyk7ICAvKiByZXBsYWNpbmcgYXJncyAqLwotICAgICAgICBzZWxmLT5hcmdzID0gc3Vic2xpY2U7CisgICAgICAgICAgICB3aW5lcnJjb2RlID0gUHlMb25nX0FzTG9uZygqd2luZXJyb3IpOworICAgICAgICAgICAgaWYgKHdpbmVycmNvZGUgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAvKiBTZXQgZXJybm8gdG8gdGhlIGNvcnJlc3BvbmRpbmcgUE9TSVggZXJybm8gKG92ZXJyaWRpbmcKKyAgICAgICAgICAgICAgIGZpcnN0IGFyZ3VtZW50KS4gIFdpbmRvd3MgU29ja2V0IGVycm9yIGNvZGVzICg+PSAxMDAwMCkKKyAgICAgICAgICAgICAgIGhhdmUgdGhlIHNhbWUgdmFsdWUgYXMgdGhlaXIgUE9TSVggY291bnRlcnBhcnRzLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICh3aW5lcnJjb2RlIDwgMTAwMDApCisgICAgICAgICAgICAgICAgZXJyY29kZSA9IHdpbmVycm9yX3RvX2Vycm5vKHdpbmVycmNvZGUpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGVycmNvZGUgPSB3aW5lcnJjb2RlOworICAgICAgICAgICAgKm15ZXJybm8gPSBQeUxvbmdfRnJvbUxvbmcoZXJyY29kZSk7CisgICAgICAgICAgICBpZiAoISpteWVycm5vKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIG5ld2FyZ3MgPSBQeVR1cGxlX05ldyhuYXJncyk7CisgICAgICAgICAgICBpZiAoIW5ld2FyZ3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgUHlUdXBsZV9TRVRfSVRFTShuZXdhcmdzLCAwLCAqbXllcnJubyk7CisgICAgICAgICAgICBmb3IgKGkgPSAxOyBpIDwgbmFyZ3M7IGkrKykgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp2YWwgPSBQeVR1cGxlX0dFVF9JVEVNKGFyZ3MsIGkpOworICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih2YWwpOworICAgICAgICAgICAgICAgIFB5VHVwbGVfU0VUX0lURU0obmV3YXJncywgaSwgdmFsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFB5X0RFQ1JFRihhcmdzKTsKKyAgICAgICAgICAgIGFyZ3MgPSAqcF9hcmdzID0gbmV3YXJnczsKKyAgICAgICAgfQogICAgIH0KKyNlbHNlCisgICAgaWYgKG5hcmdzID49IDIgJiYgbmFyZ3MgPD0gMykgeworICAgICAgICBpZiAoIVB5QXJnX1VucGFja1R1cGxlKGFyZ3MsICJPU0Vycm9yIiwgMiwgMywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteWVycm5vLCBzdHJlcnJvciwgZmlsZW5hbWUpKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyNlbmRpZgorCiAgICAgcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBpbnQKLUVudmlyb25tZW50RXJyb3JfY2xlYXIoUHlFbnZpcm9ubWVudEVycm9yT2JqZWN0ICpzZWxmKQorb3NlcnJvcl9pbml0KFB5T1NFcnJvck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKipwX2FyZ3MsCisgICAgICAgICAgICAgUHlPYmplY3QgKm15ZXJybm8sIFB5T2JqZWN0ICpzdHJlcnJvciwKKyAgICAgICAgICAgICBQeU9iamVjdCAqZmlsZW5hbWUKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgICAgICAgICAgLCBQeU9iamVjdCAqd2luZXJyb3IKKyNlbmRpZgorICAgICAgICAgICAgICkKK3sKKyAgICBQeU9iamVjdCAqYXJncyA9ICpwX2FyZ3M7CisgICAgUHlfc3NpemVfdCBuYXJncyA9IFB5VHVwbGVfR0VUX1NJWkUoYXJncyk7CisKKyAgICAvKiBzZWxmLT5maWxlbmFtZSB3aWxsIHJlbWFpbiBQeV9Ob25lIG90aGVyd2lzZSAqLworICAgIGlmIChmaWxlbmFtZSAmJiBmaWxlbmFtZSAhPSBQeV9Ob25lKSB7CisgICAgICAgIGlmIChQeV9UWVBFKHNlbGYpID09IChQeVR5cGVPYmplY3QgKikgUHlFeGNfQmxvY2tpbmdJT0Vycm9yICYmCisgICAgICAgICAgICBQeU51bWJlcl9DaGVjayhmaWxlbmFtZSkpIHsKKyAgICAgICAgICAgIC8qIEJsb2NraW5nSU9FcnJvcidzIDNyZCBhcmd1bWVudCBjYW4gYmUgdGhlIG51bWJlciBvZgorICAgICAgICAgICAgICogY2hhcmFjdGVycyB3cml0dGVuLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBzZWxmLT53cml0dGVuID0gUHlOdW1iZXJfQXNTc2l6ZV90KGZpbGVuYW1lLCBQeUV4Y19WYWx1ZUVycm9yKTsKKyAgICAgICAgICAgIGlmIChzZWxmLT53cml0dGVuID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUHlfSU5DUkVGKGZpbGVuYW1lKTsKKyAgICAgICAgICAgIHNlbGYtPmZpbGVuYW1lID0gZmlsZW5hbWU7CisKKyAgICAgICAgICAgIGlmIChuYXJncyA+PSAyICYmIG5hcmdzIDw9IDMpIHsKKyAgICAgICAgICAgICAgICAvKiBmaWxlbmFtZSBpcyByZW1vdmVkIGZyb20gdGhlIGFyZ3MgdHVwbGUgKGZvciBjb21wYXRpYmlsaXR5CisgICAgICAgICAgICAgICAgICAgcHVycG9zZXMsIHNlZSB0ZXN0X2V4Y2VwdGlvbnMucHkpICovCisgICAgICAgICAgICAgICAgUHlPYmplY3QgKnN1YnNsaWNlID0gUHlUdXBsZV9HZXRTbGljZShhcmdzLCAwLCAyKTsKKyAgICAgICAgICAgICAgICBpZiAoIXN1YnNsaWNlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYXJncyk7ICAvKiByZXBsYWNpbmcgYXJncyAqLworICAgICAgICAgICAgICAgICpwX2FyZ3MgPSBhcmdzID0gc3Vic2xpY2U7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgUHlfWElOQ1JFRihteWVycm5vKTsKKyAgICBzZWxmLT5teWVycm5vID0gbXllcnJubzsKKworICAgIFB5X1hJTkNSRUYoc3RyZXJyb3IpOworICAgIHNlbGYtPnN0cmVycm9yID0gc3RyZXJyb3I7CisKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgUHlfWElOQ1JFRih3aW5lcnJvcik7CisgICAgc2VsZi0+d2luZXJyb3IgPSB3aW5lcnJvcjsKKyNlbmRpZgorCisgICAgLyogU3RlYWxzIHRoZSByZWZlcmVuY2UgdG8gYXJncyAqLworICAgIFB5X0NMRUFSKHNlbGYtPmFyZ3MpOworICAgIHNlbGYtPmFyZ3MgPSBhcmdzOworICAgIGFyZ3MgPSBOVUxMOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitPU0Vycm9yX25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcyk7CitzdGF0aWMgaW50CitPU0Vycm9yX2luaXQoUHlPU0Vycm9yT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpOworCitzdGF0aWMgaW50Citvc2Vycm9yX3VzZV9pbml0KFB5VHlwZU9iamVjdCAqdHlwZSkKK3sKKyAgICAvKiBXaGVuIF9faW5pdF9fIGlzIGRlZmluZWQgaW4gYSBPU0Vycm9yIHN1YmNsYXNzLCB3ZSB3YW50IGFueQorICAgICAgIGV4dHJhbmVvdXMgYXJndW1lbnQgdG8gX19uZXdfXyB0byBiZSBpZ25vcmVkLiAgVGhlIG9ubHkgcmVhc29uYWJsZQorICAgICAgIHNvbHV0aW9uLCBnaXZlbiBfX25ld19fIHRha2VzIGEgdmFyaWFibGUgbnVtYmVyIG9mIGFyZ3VtZW50cywKKyAgICAgICBpcyB0byBkZWZlciBhcmcgcGFyc2luZyBhbmQgaW5pdGlhbGl6YXRpb24gdG8gX19pbml0X18uCisKKyAgICAgICBCdXQgd2hlbiBfX25ld19fIGlzIG92ZXJyaWRlbiBhcyB3ZWxsLCBpdCBzaG91bGQgY2FsbCBvdXIgX19uZXdfXworICAgICAgIHdpdGggdGhlIHJpZ2h0IGFyZ3VtZW50cy4KKworICAgICAgIChzZWUgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTEyNTU1I21zZzE0ODgyOSApCisgICAgKi8KKyAgICBpZiAodHlwZS0+dHBfaW5pdCAhPSAoaW5pdHByb2MpIE9TRXJyb3JfaW5pdCAmJgorICAgICAgICB0eXBlLT50cF9uZXcgPT0gKG5ld2Z1bmMpIE9TRXJyb3JfbmV3KSB7CisgICAgICAgIGFzc2VydCgoUHlPYmplY3QgKikgdHlwZSAhPSBQeUV4Y19PU0Vycm9yKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorT1NFcnJvcl9uZXcoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCit7CisgICAgUHlPU0Vycm9yT2JqZWN0ICpzZWxmID0gTlVMTDsKKyAgICBQeU9iamVjdCAqbXllcnJubyA9IE5VTEwsICpzdHJlcnJvciA9IE5VTEwsICpmaWxlbmFtZSA9IE5VTEw7CisjaWZkZWYgTVNfV0lORE9XUworICAgIFB5T2JqZWN0ICp3aW5lcnJvciA9IE5VTEw7CisjZW5kaWYKKworICAgIGlmICghb3NlcnJvcl91c2VfaW5pdCh0eXBlKSkgeworICAgICAgICBpZiAoIV9QeUFyZ19Ob0tleXdvcmRzKHR5cGUtPnRwX25hbWUsIGt3ZHMpKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAgICAgUHlfSU5DUkVGKGFyZ3MpOworICAgICAgICBpZiAob3NlcnJvcl9wYXJzZV9hcmdzKCZhcmdzLCAmbXllcnJubywgJnN0cmVycm9yLCAmZmlsZW5hbWUKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAmd2luZXJyb3IKKyNlbmRpZgorICAgICAgICAgICAgKSkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICAgICAgaWYgKG15ZXJybm8gJiYgUHlMb25nX0NoZWNrKG15ZXJybm8pICYmCisgICAgICAgICAgICBlcnJub21hcCAmJiAoUHlPYmplY3QgKikgdHlwZSA9PSBQeUV4Y19PU0Vycm9yKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqbmV3dHlwZTsKKyAgICAgICAgICAgIG5ld3R5cGUgPSBQeURpY3RfR2V0SXRlbShlcnJub21hcCwgbXllcnJubyk7CisgICAgICAgICAgICBpZiAobmV3dHlwZSkgeworICAgICAgICAgICAgICAgIGFzc2VydChQeVR5cGVfQ2hlY2sobmV3dHlwZSkpOworICAgICAgICAgICAgICAgIHR5cGUgPSAoUHlUeXBlT2JqZWN0ICopIG5ld3R5cGU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzZWxmID0gKFB5T1NFcnJvck9iamVjdCAqKSB0eXBlLT50cF9hbGxvYyh0eXBlLCAwKTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICBzZWxmLT5kaWN0ID0gTlVMTDsKKyAgICBzZWxmLT50cmFjZWJhY2sgPSBzZWxmLT5jYXVzZSA9IHNlbGYtPmNvbnRleHQgPSBOVUxMOworICAgIHNlbGYtPndyaXR0ZW4gPSAtMTsKKworICAgIGlmICghb3NlcnJvcl91c2VfaW5pdCh0eXBlKSkgeworICAgICAgICBpZiAob3NlcnJvcl9pbml0KHNlbGYsICZhcmdzLCBteWVycm5vLCBzdHJlcnJvciwgZmlsZW5hbWUKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgICAgICAgICAgICAgICAgICAgICAgLCB3aW5lcnJvcgorI2VuZGlmCisgICAgICAgICAgICApKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHNlbGYtPmFyZ3MgPSBQeVR1cGxlX05ldygwKTsKKyAgICAgICAgaWYgKHNlbGYtPmFyZ3MgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgcmV0dXJuIChQeU9iamVjdCAqKSBzZWxmOworCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKGFyZ3MpOworICAgIFB5X1hERUNSRUYoc2VsZik7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBpbnQKK09TRXJyb3JfaW5pdChQeU9TRXJyb3JPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKK3sKKyAgICBQeU9iamVjdCAqbXllcnJubyA9IE5VTEwsICpzdHJlcnJvciA9IE5VTEwsICpmaWxlbmFtZSA9IE5VTEw7CisjaWZkZWYgTVNfV0lORE9XUworICAgIFB5T2JqZWN0ICp3aW5lcnJvciA9IE5VTEw7CisjZW5kaWYKKworICAgIGlmICghb3NlcnJvcl91c2VfaW5pdChQeV9UWVBFKHNlbGYpKSkKKyAgICAgICAgLyogRXZlcnl0aGluZyBhbHJlYWR5IGRvbmUgaW4gT1NFcnJvcl9uZXcgKi8KKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIV9QeUFyZ19Ob0tleXdvcmRzKFB5X1RZUEUoc2VsZiktPnRwX25hbWUsIGt3ZHMpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBQeV9JTkNSRUYoYXJncyk7CisgICAgaWYgKG9zZXJyb3JfcGFyc2VfYXJncygmYXJncywgJm15ZXJybm8sICZzdHJlcnJvciwgJmZpbGVuYW1lCisjaWZkZWYgTVNfV0lORE9XUworICAgICAgICAgICAgICAgICAgICAgICAgICAgLCAmd2luZXJyb3IKKyNlbmRpZgorICAgICAgICApKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgaWYgKG9zZXJyb3JfaW5pdChzZWxmLCAmYXJncywgbXllcnJubywgc3RyZXJyb3IsIGZpbGVuYW1lCisjaWZkZWYgTVNfV0lORE9XUworICAgICAgICAgICAgICAgICAgICAgLCB3aW5lcnJvcgorI2VuZGlmCisgICAgICAgICkpCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICByZXR1cm4gMDsKKworZXJyb3I6CisgICAgUHlfWERFQ1JFRihhcmdzKTsKKyAgICByZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQKK09TRXJyb3JfY2xlYXIoUHlPU0Vycm9yT2JqZWN0ICpzZWxmKQogewogICAgIFB5X0NMRUFSKHNlbGYtPm15ZXJybm8pOwogICAgIFB5X0NMRUFSKHNlbGYtPnN0cmVycm9yKTsKICAgICBQeV9DTEVBUihzZWxmLT5maWxlbmFtZSk7CisjaWZkZWYgTVNfV0lORE9XUworICAgIFB5X0NMRUFSKHNlbGYtPndpbmVycm9yKTsKKyNlbmRpZgogICAgIHJldHVybiBCYXNlRXhjZXB0aW9uX2NsZWFyKChQeUJhc2VFeGNlcHRpb25PYmplY3QgKilzZWxmKTsKIH0KIAogc3RhdGljIHZvaWQKLUVudmlyb25tZW50RXJyb3JfZGVhbGxvYyhQeUVudmlyb25tZW50RXJyb3JPYmplY3QgKnNlbGYpCitPU0Vycm9yX2RlYWxsb2MoUHlPU0Vycm9yT2JqZWN0ICpzZWxmKQogewogICAgIF9QeU9iamVjdF9HQ19VTlRSQUNLKHNlbGYpOwotICAgIEVudmlyb25tZW50RXJyb3JfY2xlYXIoc2VsZik7CisgICAgT1NFcnJvcl9jbGVhcihzZWxmKTsKICAgICBQeV9UWVBFKHNlbGYpLT50cF9mcmVlKChQeU9iamVjdCAqKXNlbGYpOwogfQogCiBzdGF0aWMgaW50Ci1FbnZpcm9ubWVudEVycm9yX3RyYXZlcnNlKFB5RW52aXJvbm1lbnRFcnJvck9iamVjdCAqc2VsZiwgdmlzaXRwcm9jIHZpc2l0LAorT1NFcnJvcl90cmF2ZXJzZShQeU9TRXJyb3JPYmplY3QgKnNlbGYsIHZpc2l0cHJvYyB2aXNpdCwKICAgICAgICAgdm9pZCAqYXJnKQogewogICAgIFB5X1ZJU0lUKHNlbGYtPm15ZXJybm8pOwogICAgIFB5X1ZJU0lUKHNlbGYtPnN0cmVycm9yKTsKICAgICBQeV9WSVNJVChzZWxmLT5maWxlbmFtZSk7CisjaWZkZWYgTVNfV0lORE9XUworICAgIFB5X1ZJU0lUKHNlbGYtPndpbmVycm9yKTsKKyNlbmRpZgogICAgIHJldHVybiBCYXNlRXhjZXB0aW9uX3RyYXZlcnNlKChQeUJhc2VFeGNlcHRpb25PYmplY3QgKilzZWxmLCB2aXNpdCwgYXJnKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLUVudmlyb25tZW50RXJyb3Jfc3RyKFB5RW52aXJvbm1lbnRFcnJvck9iamVjdCAqc2VsZikKK09TRXJyb3Jfc3RyKFB5T1NFcnJvck9iamVjdCAqc2VsZikKIHsKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgLyogSWYgYXZhaWxhYmxlLCB3aW5lcnJvciBoYXMgdGhlIHByaW9yaXR5IG92ZXIgbXllcnJubyAqLworICAgIGlmIChzZWxmLT53aW5lcnJvciAmJiBzZWxmLT5maWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCJbRXJyb3IgJVNdICVTOiAlUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT53aW5lcnJvciA/IHNlbGYtPndpbmVycm9yOiBQeV9Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+c3RyZXJyb3IgPyBzZWxmLT5zdHJlcnJvcjogUHlfTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPmZpbGVuYW1lKTsKKyAgICBpZiAoc2VsZi0+d2luZXJyb3IgJiYgc2VsZi0+c3RyZXJyb3IpCisgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiW0Vycm9yICVTXSAlUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT53aW5lcnJvciA/IHNlbGYtPndpbmVycm9yOiBQeV9Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+c3RyZXJyb3IgPyBzZWxmLT5zdHJlcnJvcjogUHlfTm9uZSk7CisjZW5kaWYKICAgICBpZiAoc2VsZi0+ZmlsZW5hbWUpCiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiW0Vycm5vICVTXSAlUzogJVIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+bXllcnJubyA/IHNlbGYtPm15ZXJybm86IFB5X05vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5zdHJlcnJvciA/IHNlbGYtPnN0cmVycm9yOiBQeV9Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+ZmlsZW5hbWUpOwotICAgIGVsc2UgaWYgKHNlbGYtPm15ZXJybm8gJiYgc2VsZi0+c3RyZXJyb3IpCisgICAgaWYgKHNlbGYtPm15ZXJybm8gJiYgc2VsZi0+c3RyZXJyb3IpCiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiW0Vycm5vICVTXSAlUyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5teWVycm5vID8gc2VsZi0+bXllcnJubzogUHlfTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPnN0cmVycm9yID8gc2VsZi0+c3RyZXJyb3I6IFB5X05vbmUpOwotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIEJhc2VFeGNlcHRpb25fc3RyKChQeUJhc2VFeGNlcHRpb25PYmplY3QgKilzZWxmKTsKKyAgICByZXR1cm4gQmFzZUV4Y2VwdGlvbl9zdHIoKFB5QmFzZUV4Y2VwdGlvbk9iamVjdCAqKXNlbGYpOwogfQogCi1zdGF0aWMgUHlNZW1iZXJEZWYgRW52aXJvbm1lbnRFcnJvcl9tZW1iZXJzW10gPSB7Ci0gICAgeyJlcnJubyIsIFRfT0JKRUNULCBvZmZzZXRvZihQeUVudmlyb25tZW50RXJyb3JPYmplY3QsIG15ZXJybm8pLCAwLAotICAgICAgICBQeURvY19TVFIoImV4Y2VwdGlvbiBlcnJubyIpfSwKLSAgICB7InN0cmVycm9yIiwgVF9PQkpFQ1QsIG9mZnNldG9mKFB5RW52aXJvbm1lbnRFcnJvck9iamVjdCwgc3RyZXJyb3IpLCAwLAotICAgICAgICBQeURvY19TVFIoImV4Y2VwdGlvbiBzdHJlcnJvciIpfSwKLSAgICB7ImZpbGVuYW1lIiwgVF9PQkpFQ1QsIG9mZnNldG9mKFB5RW52aXJvbm1lbnRFcnJvck9iamVjdCwgZmlsZW5hbWUpLCAwLAotICAgICAgICBQeURvY19TVFIoImV4Y2VwdGlvbiBmaWxlbmFtZSIpfSwKLSAgICB7TlVMTH0gIC8qIFNlbnRpbmVsICovCi19OwotCi0KIHN0YXRpYyBQeU9iamVjdCAqCi1FbnZpcm9ubWVudEVycm9yX3JlZHVjZShQeUVudmlyb25tZW50RXJyb3JPYmplY3QgKnNlbGYpCitPU0Vycm9yX3JlZHVjZShQeU9TRXJyb3JPYmplY3QgKnNlbGYpCiB7CiAgICAgUHlPYmplY3QgKmFyZ3MgPSBzZWxmLT5hcmdzOwogICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMLCAqdG1wOwogCiAgICAgLyogc2VsZi0+YXJncyBpcyBvbmx5IHRoZSBmaXJzdCB0d28gcmVhbCBhcmd1bWVudHMgaWYgdGhlcmUgd2FzIGEKLSAgICAgKiBmaWxlIG5hbWUgZ2l2ZW4gdG8gRW52aXJvbm1lbnRFcnJvci4gKi8KKyAgICAgKiBmaWxlIG5hbWUgZ2l2ZW4gdG8gT1NFcnJvci4gKi8KICAgICBpZiAoUHlUdXBsZV9HRVRfU0laRShhcmdzKSA9PSAyICYmIHNlbGYtPmZpbGVuYW1lKSB7CiAgICAgICAgIGFyZ3MgPSBQeVR1cGxlX05ldygzKTsKICAgICAgICAgaWYgKCFhcmdzKQpAQCAtNjk5LDE0NCArMTA2Miw5MyBAQAogICAgIHJldHVybiByZXM7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitPU0Vycm9yX3dyaXR0ZW5fZ2V0KFB5T1NFcnJvck9iamVjdCAqc2VsZiwgdm9pZCAqY29udGV4dCkKK3sKKyAgICBpZiAoc2VsZi0+d3JpdHRlbiA9PSAtMSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQXR0cmlidXRlRXJyb3IsICJjaGFyYWN0ZXJzX3dyaXR0ZW4iKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3Qoc2VsZi0+d3JpdHRlbik7Cit9CiAKLXN0YXRpYyBQeU1ldGhvZERlZiBFbnZpcm9ubWVudEVycm9yX21ldGhvZHNbXSA9IHsKLSAgICB7Il9fcmVkdWNlX18iLCAoUHlDRnVuY3Rpb24pRW52aXJvbm1lbnRFcnJvcl9yZWR1Y2UsIE1FVEhfTk9BUkdTfSwKK3N0YXRpYyBpbnQKK09TRXJyb3Jfd3JpdHRlbl9zZXQoUHlPU0Vycm9yT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJnLCB2b2lkICpjb250ZXh0KQoreworICAgIFB5X3NzaXplX3QgbjsKKyAgICBuID0gUHlOdW1iZXJfQXNTc2l6ZV90KGFyZywgUHlFeGNfVmFsdWVFcnJvcik7CisgICAgaWYgKG4gPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHNlbGYtPndyaXR0ZW4gPSBuOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUHlNZW1iZXJEZWYgT1NFcnJvcl9tZW1iZXJzW10gPSB7CisgICAgeyJlcnJubyIsIFRfT0JKRUNULCBvZmZzZXRvZihQeU9TRXJyb3JPYmplY3QsIG15ZXJybm8pLCAwLAorICAgICAgICBQeURvY19TVFIoIlBPU0lYIGV4Y2VwdGlvbiBjb2RlIil9LAorICAgIHsic3RyZXJyb3IiLCBUX09CSkVDVCwgb2Zmc2V0b2YoUHlPU0Vycm9yT2JqZWN0LCBzdHJlcnJvciksIDAsCisgICAgICAgIFB5RG9jX1NUUigiZXhjZXB0aW9uIHN0cmVycm9yIil9LAorICAgIHsiZmlsZW5hbWUiLCBUX09CSkVDVCwgb2Zmc2V0b2YoUHlPU0Vycm9yT2JqZWN0LCBmaWxlbmFtZSksIDAsCisgICAgICAgIFB5RG9jX1NUUigiZXhjZXB0aW9uIGZpbGVuYW1lIil9LAorI2lmZGVmIE1TX1dJTkRPV1MKKyAgICB7IndpbmVycm9yIiwgVF9PQkpFQ1QsIG9mZnNldG9mKFB5T1NFcnJvck9iamVjdCwgd2luZXJyb3IpLCAwLAorICAgICAgICBQeURvY19TVFIoIldpbjMyIGV4Y2VwdGlvbiBjb2RlIil9LAorI2VuZGlmCisgICAge05VTEx9ICAvKiBTZW50aW5lbCAqLworfTsKKworc3RhdGljIFB5TWV0aG9kRGVmIE9TRXJyb3JfbWV0aG9kc1tdID0geworICAgIHsiX19yZWR1Y2VfXyIsIChQeUNGdW5jdGlvbilPU0Vycm9yX3JlZHVjZSwgTUVUSF9OT0FSR1N9LAogICAgIHtOVUxMfQogfTsKIAotQ29tcGxleEV4dGVuZHNFeGNlcHRpb24oUHlFeGNfRXhjZXB0aW9uLCBFbnZpcm9ubWVudEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgRW52aXJvbm1lbnRFcnJvciwgRW52aXJvbm1lbnRFcnJvcl9kZWFsbG9jLAotICAgICAgICAgICAgICAgICAgICAgICAgRW52aXJvbm1lbnRFcnJvcl9tZXRob2RzLCBFbnZpcm9ubWVudEVycm9yX21lbWJlcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICBFbnZpcm9ubWVudEVycm9yX3N0ciwKK3N0YXRpYyBQeUdldFNldERlZiBPU0Vycm9yX2dldHNldFtdID0geworICAgIHsiY2hhcmFjdGVyc193cml0dGVuIiwgKGdldHRlcikgT1NFcnJvcl93cml0dGVuX2dldCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZXR0ZXIpIE9TRXJyb3Jfd3JpdHRlbl9zZXQsIE5VTEx9LAorICAgIHtOVUxMfQorfTsKKworCitDb21wbGV4RXh0ZW5kc0V4Y2VwdGlvbihQeUV4Y19FeGNlcHRpb24sIE9TRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICBPU0Vycm9yLCBPU0Vycm9yX25ldywKKyAgICAgICAgICAgICAgICAgICAgICAgIE9TRXJyb3JfbWV0aG9kcywgT1NFcnJvcl9tZW1iZXJzLCBPU0Vycm9yX2dldHNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgIE9TRXJyb3Jfc3RyLAogICAgICAgICAgICAgICAgICAgICAgICAgIkJhc2UgY2xhc3MgZm9yIEkvTyByZWxhdGVkIGVycm9ycy4iKTsKIAogCiAvKgotICogICAgSU9FcnJvciBleHRlbmRzIEVudmlyb25tZW50RXJyb3IKKyAqICAgIFZhcmlvdXMgT1NFcnJvciBzdWJjbGFzc2VzCiAgKi8KLU1pZGRsaW5nRXh0ZW5kc0V4Y2VwdGlvbihQeUV4Y19FbnZpcm9ubWVudEVycm9yLCBJT0Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgIEVudmlyb25tZW50RXJyb3IsICJJL08gb3BlcmF0aW9uIGZhaWxlZC4iKTsKLQotCi0vKgotICogICAgT1NFcnJvciBleHRlbmRzIEVudmlyb25tZW50RXJyb3IKLSAqLwotTWlkZGxpbmdFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX0Vudmlyb25tZW50RXJyb3IsIE9TRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgRW52aXJvbm1lbnRFcnJvciwgIk9TIHN5c3RlbSBjYWxsIGZhaWxlZC4iKTsKLQotCi0vKgotICogICAgV2luZG93c0Vycm9yIGV4dGVuZHMgT1NFcnJvcgotICovCi0jaWZkZWYgTVNfV0lORE9XUwotI2luY2x1ZGUgImVycm1hcC5oIgotCi1zdGF0aWMgaW50Ci1XaW5kb3dzRXJyb3JfY2xlYXIoUHlXaW5kb3dzRXJyb3JPYmplY3QgKnNlbGYpCi17Ci0gICAgUHlfQ0xFQVIoc2VsZi0+bXllcnJubyk7Ci0gICAgUHlfQ0xFQVIoc2VsZi0+c3RyZXJyb3IpOwotICAgIFB5X0NMRUFSKHNlbGYtPmZpbGVuYW1lKTsKLSAgICBQeV9DTEVBUihzZWxmLT53aW5lcnJvcik7Ci0gICAgcmV0dXJuIEJhc2VFeGNlcHRpb25fY2xlYXIoKFB5QmFzZUV4Y2VwdGlvbk9iamVjdCAqKXNlbGYpOwotfQotCi1zdGF0aWMgdm9pZAotV2luZG93c0Vycm9yX2RlYWxsb2MoUHlXaW5kb3dzRXJyb3JPYmplY3QgKnNlbGYpCi17Ci0gICAgX1B5T2JqZWN0X0dDX1VOVFJBQ0soc2VsZik7Ci0gICAgV2luZG93c0Vycm9yX2NsZWFyKHNlbGYpOwotICAgIFB5X1RZUEUoc2VsZiktPnRwX2ZyZWUoKFB5T2JqZWN0ICopc2VsZik7Ci19Ci0KLXN0YXRpYyBpbnQKLVdpbmRvd3NFcnJvcl90cmF2ZXJzZShQeVdpbmRvd3NFcnJvck9iamVjdCAqc2VsZiwgdmlzaXRwcm9jIHZpc2l0LCB2b2lkICphcmcpCi17Ci0gICAgUHlfVklTSVQoc2VsZi0+bXllcnJubyk7Ci0gICAgUHlfVklTSVQoc2VsZi0+c3RyZXJyb3IpOwotICAgIFB5X1ZJU0lUKHNlbGYtPmZpbGVuYW1lKTsKLSAgICBQeV9WSVNJVChzZWxmLT53aW5lcnJvcik7Ci0gICAgcmV0dXJuIEJhc2VFeGNlcHRpb25fdHJhdmVyc2UoKFB5QmFzZUV4Y2VwdGlvbk9iamVjdCAqKXNlbGYsIHZpc2l0LCBhcmcpOwotfQotCi1zdGF0aWMgaW50Ci1XaW5kb3dzRXJyb3JfaW5pdChQeVdpbmRvd3NFcnJvck9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQotewotICAgIFB5T2JqZWN0ICpvX2VycmNvZGUgPSBOVUxMOwotICAgIGxvbmcgZXJyY29kZTsKLSAgICBsb25nIHBvc2l4X2Vycm5vOwotCi0gICAgaWYgKEVudmlyb25tZW50RXJyb3JfaW5pdCgoUHlFbnZpcm9ubWVudEVycm9yT2JqZWN0ICopc2VsZiwgYXJncywga3dkcykKLSAgICAgICAgICAgID09IC0xKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBpZiAoc2VsZi0+bXllcnJubyA9PSBOVUxMKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIC8qIFNldCBlcnJubyB0byB0aGUgUE9TSVggZXJybm8sIGFuZCB3aW5lcnJvciB0byB0aGUgV2luMzIKLSAgICAgICBlcnJvciBjb2RlLiAqLwotICAgIGVycmNvZGUgPSBQeUxvbmdfQXNMb25nKHNlbGYtPm15ZXJybm8pOwotICAgIGlmIChlcnJjb2RlID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgIHJldHVybiAtMTsKLSAgICBwb3NpeF9lcnJubyA9IHdpbmVycm9yX3RvX2Vycm5vKGVycmNvZGUpOwotCi0gICAgUHlfQ0xFQVIoc2VsZi0+d2luZXJyb3IpOwotICAgIHNlbGYtPndpbmVycm9yID0gc2VsZi0+bXllcnJubzsKLQotICAgIG9fZXJyY29kZSA9IFB5TG9uZ19Gcm9tTG9uZyhwb3NpeF9lcnJubyk7Ci0gICAgaWYgKCFvX2VycmNvZGUpCi0gICAgICAgIHJldHVybiAtMTsKLQotICAgIHNlbGYtPm15ZXJybm8gPSBvX2VycmNvZGU7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotCi1zdGF0aWMgUHlPYmplY3QgKgotV2luZG93c0Vycm9yX3N0cihQeVdpbmRvd3NFcnJvck9iamVjdCAqc2VsZikKLXsKLSAgICBpZiAoc2VsZi0+ZmlsZW5hbWUpCi0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiW0Vycm9yICVTXSAlUzogJVIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+d2luZXJyb3IgPyBzZWxmLT53aW5lcnJvcjogUHlfTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYtPnN0cmVycm9yID8gc2VsZi0+c3RyZXJyb3I6IFB5X05vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5maWxlbmFtZSk7Ci0gICAgZWxzZSBpZiAoc2VsZi0+d2luZXJyb3IgJiYgc2VsZi0+c3RyZXJyb3IpCi0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiW0Vycm9yICVTXSAlUyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT53aW5lcnJvciA/IHNlbGYtPndpbmVycm9yOiBQeV9Ob25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi0+c3RyZXJyb3IgPyBzZWxmLT5zdHJlcnJvcjogUHlfTm9uZSk7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gRW52aXJvbm1lbnRFcnJvcl9zdHIoKFB5RW52aXJvbm1lbnRFcnJvck9iamVjdCAqKXNlbGYpOwotfQotCi1zdGF0aWMgUHlNZW1iZXJEZWYgV2luZG93c0Vycm9yX21lbWJlcnNbXSA9IHsKLSAgICB7ImVycm5vIiwgVF9PQkpFQ1QsIG9mZnNldG9mKFB5V2luZG93c0Vycm9yT2JqZWN0LCBteWVycm5vKSwgMCwKLSAgICAgICAgUHlEb2NfU1RSKCJQT1NJWCBleGNlcHRpb24gY29kZSIpfSwKLSAgICB7InN0cmVycm9yIiwgVF9PQkpFQ1QsIG9mZnNldG9mKFB5V2luZG93c0Vycm9yT2JqZWN0LCBzdHJlcnJvciksIDAsCi0gICAgICAgIFB5RG9jX1NUUigiZXhjZXB0aW9uIHN0cmVycm9yIil9LAotICAgIHsiZmlsZW5hbWUiLCBUX09CSkVDVCwgb2Zmc2V0b2YoUHlXaW5kb3dzRXJyb3JPYmplY3QsIGZpbGVuYW1lKSwgMCwKLSAgICAgICAgUHlEb2NfU1RSKCJleGNlcHRpb24gZmlsZW5hbWUiKX0sCi0gICAgeyJ3aW5lcnJvciIsIFRfT0JKRUNULCBvZmZzZXRvZihQeVdpbmRvd3NFcnJvck9iamVjdCwgd2luZXJyb3IpLCAwLAotICAgICAgICBQeURvY19TVFIoIldpbjMyIGV4Y2VwdGlvbiBjb2RlIil9LAotICAgIHtOVUxMfSAgLyogU2VudGluZWwgKi8KLX07Ci0KLUNvbXBsZXhFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX09TRXJyb3IsIFdpbmRvd3NFcnJvciwgV2luZG93c0Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93c0Vycm9yX2RlYWxsb2MsIDAsIFdpbmRvd3NFcnJvcl9tZW1iZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgV2luZG93c0Vycm9yX3N0ciwgIk1TLVdpbmRvd3MgT1Mgc3lzdGVtIGNhbGwgZmFpbGVkLiIpOwotCi0jZW5kaWYgLyogTVNfV0lORE9XUyAqLwotCi0KLS8qCi0gKiAgICBWTVNFcnJvciBleHRlbmRzIE9TRXJyb3IgKEkgdGhpbmspCi0gKi8KLSNpZmRlZiBfX1ZNUwotTWlkZGxpbmdFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX09TRXJyb3IsIFZNU0Vycm9yLCBFbnZpcm9ubWVudEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICJPcGVuVk1TIE9TIHN5c3RlbSBjYWxsIGZhaWxlZC4iKTsKLSNlbmRpZgotCitNaWRkbGluZ0V4dGVuZHNFeGNlcHRpb24oUHlFeGNfT1NFcnJvciwgQmxvY2tpbmdJT0Vycm9yLCBPU0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJJL08gb3BlcmF0aW9uIHdvdWxkIGJsb2NrLiIpOworTWlkZGxpbmdFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX09TRXJyb3IsIENvbm5lY3Rpb25FcnJvciwgT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiBlcnJvci4iKTsKK01pZGRsaW5nRXh0ZW5kc0V4Y2VwdGlvbihQeUV4Y19PU0Vycm9yLCBDaGlsZFByb2Nlc3NFcnJvciwgT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiQ2hpbGQgcHJvY2VzcyBlcnJvci4iKTsKK01pZGRsaW5nRXh0ZW5kc0V4Y2VwdGlvbihQeUV4Y19Db25uZWN0aW9uRXJyb3IsIEJyb2tlblBpcGVFcnJvciwgT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiQnJva2VuIHBpcGUuIik7CitNaWRkbGluZ0V4dGVuZHNFeGNlcHRpb24oUHlFeGNfQ29ubmVjdGlvbkVycm9yLCBDb25uZWN0aW9uQWJvcnRlZEVycm9yLCBPU0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIGFib3J0ZWQuIik7CitNaWRkbGluZ0V4dGVuZHNFeGNlcHRpb24oUHlFeGNfQ29ubmVjdGlvbkVycm9yLCBDb25uZWN0aW9uUmVmdXNlZEVycm9yLCBPU0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHJlZnVzZWQuIik7CitNaWRkbGluZ0V4dGVuZHNFeGNlcHRpb24oUHlFeGNfQ29ubmVjdGlvbkVycm9yLCBDb25uZWN0aW9uUmVzZXRFcnJvciwgT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiByZXNldC4iKTsKK01pZGRsaW5nRXh0ZW5kc0V4Y2VwdGlvbihQeUV4Y19PU0Vycm9yLCBGaWxlRXhpc3RzRXJyb3IsIE9TRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkZpbGUgYWxyZWFkeSBleGlzdHMuIik7CitNaWRkbGluZ0V4dGVuZHNFeGNlcHRpb24oUHlFeGNfT1NFcnJvciwgRmlsZU5vdEZvdW5kRXJyb3IsIE9TRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkZpbGUgbm90IGZvdW5kLiIpOworTWlkZGxpbmdFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX09TRXJyb3IsIElzQURpcmVjdG9yeUVycm9yLCBPU0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICJPcGVyYXRpb24gZG9lc24ndCB3b3JrIG9uIGRpcmVjdG9yaWVzLiIpOworTWlkZGxpbmdFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX09TRXJyb3IsIE5vdEFEaXJlY3RvcnlFcnJvciwgT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiT3BlcmF0aW9uIG9ubHkgd29ya3Mgb24gZGlyZWN0b3JpZXMuIik7CitNaWRkbGluZ0V4dGVuZHNFeGNlcHRpb24oUHlFeGNfT1NFcnJvciwgSW50ZXJydXB0ZWRFcnJvciwgT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiSW50ZXJydXB0ZWQgYnkgc2lnbmFsLiIpOworTWlkZGxpbmdFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX09TRXJyb3IsIFBlcm1pc3Npb25FcnJvciwgT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTm90IGVub3VnaCBwZXJtaXNzaW9ucy4iKTsKK01pZGRsaW5nRXh0ZW5kc0V4Y2VwdGlvbihQeUV4Y19PU0Vycm9yLCBQcm9jZXNzTG9va3VwRXJyb3IsIE9TRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIlByb2Nlc3Mgbm90IGZvdW5kLiIpOworTWlkZGxpbmdFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX09TRXJyb3IsIFRpbWVvdXRFcnJvciwgT1NFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVGltZW91dCBleHBpcmVkLiIpOwogCiAvKgogICogICAgRU9GRXJyb3IgZXh0ZW5kcyBFeGNlcHRpb24KQEAgLTk2NywyMSArMTI3OSwyMyBAQAogc3RhdGljIFB5T2JqZWN0KgogbXlfYmFzZW5hbWUoUHlPYmplY3QgKm5hbWUpCiB7Ci0gICAgUHlfVU5JQ09ERSAqdW5pY29kZTsKICAgICBQeV9zc2l6ZV90IGksIHNpemUsIG9mZnNldDsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOwogCi0gICAgdW5pY29kZSA9IFB5VW5pY29kZV9BU19VTklDT0RFKG5hbWUpOwotICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX1NJWkUobmFtZSk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShuYW1lKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKG5hbWUpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShuYW1lKTsKKyAgICBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgobmFtZSk7CiAgICAgb2Zmc2V0ID0gMDsKICAgICBmb3IoaT0wOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIGlmICh1bmljb2RlW2ldID09IFNFUCkKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpID09IFNFUCkKICAgICAgICAgICAgIG9mZnNldCA9IGkgKyAxOwogICAgIH0KLSAgICBpZiAob2Zmc2V0ICE9IDApIHsKLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tVW5pY29kZSgKLSAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKG5hbWUpICsgb2Zmc2V0LAotICAgICAgICAgICAgc2l6ZSAtIG9mZnNldCk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAob2Zmc2V0ICE9IDApCisgICAgICAgIHJldHVybiBQeVVuaWNvZGVfU3Vic3RyaW5nKG5hbWUsIG9mZnNldCwgc2l6ZSk7CisgICAgZWxzZSB7CiAgICAgICAgIFB5X0lOQ1JFRihuYW1lKTsKICAgICAgICAgcmV0dXJuIG5hbWU7CiAgICAgfQpAQCAtMTA0OSw3ICsxMzYzLDcgQEAKIH07CiAKIENvbXBsZXhFeHRlbmRzRXhjZXB0aW9uKFB5RXhjX0V4Y2VwdGlvbiwgU3ludGF4RXJyb3IsIFN5bnRheEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgU3ludGF4RXJyb3JfZGVhbGxvYywgMCwgU3ludGF4RXJyb3JfbWVtYmVycywKKyAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIFN5bnRheEVycm9yX21lbWJlcnMsIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICBTeW50YXhFcnJvcl9zdHIsICJJbnZhbGlkIHN5bnRheC4iKTsKIAogCkBAIC0xMTAzLDcgKzE0MTcsNyBAQAogfQogCiBDb21wbGV4RXh0ZW5kc0V4Y2VwdGlvbihQeUV4Y19Mb29rdXBFcnJvciwgS2V5RXJyb3IsIEJhc2VFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCBLZXlFcnJvcl9zdHIsICJNYXBwaW5nIGtleSBub3QgZm91bmQuIik7CisgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCBLZXlFcnJvcl9zdHIsICJNYXBwaW5nIGtleSBub3QgZm91bmQuIik7CiAKIAogLyoKQEAgLTEyMDIsNyArMTUxNiw3IEBACiAgICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybiAtMTsKICAgICAqc3RhcnQgPSAoKFB5VW5pY29kZUVycm9yT2JqZWN0ICopZXhjKS0+c3RhcnQ7Ci0gICAgc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShvYmopOworICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChvYmopOwogICAgIGlmICgqc3RhcnQ8MCkKICAgICAgICAgKnN0YXJ0ID0gMDsgLypYWFggY2hlY2sgZm9yIHZhbHVlcyA8MCovCiAgICAgaWYgKCpzdGFydD49c2l6ZSkKQEAgLTEyNzAsNyArMTU4NCw3IEBACiAgICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybiAtMTsKICAgICAqZW5kID0gKChQeVVuaWNvZGVFcnJvck9iamVjdCAqKWV4YyktPmVuZDsKLSAgICBzaXplID0gUHlVbmljb2RlX0dFVF9TSVpFKG9iaik7CisgICAgc2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKG9iaik7CiAgICAgaWYgKCplbmQ8MSkKICAgICAgICAgKmVuZCA9IDE7CiAgICAgaWYgKCplbmQ+c2l6ZSkKQEAgLTE0NDIsNiArMTc1NiwxMSBAQAogICAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKGVyci0+b2JqZWN0KSA8IC0xKSB7CisgICAgICAgIGVyci0+ZW5jb2RpbmcgPSBOVUxMOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCiAgICAgUHlfSU5DUkVGKGVyci0+ZW5jb2RpbmcpOwogICAgIFB5X0lOQ1JFRihlcnItPm9iamVjdCk7CiAgICAgUHlfSU5DUkVGKGVyci0+cmVhc29uKTsKQEAgLTE0NjYsOCArMTc4NSw4IEBACiAgICAgaWYgKGVuY29kaW5nX3N0ciA9PSBOVUxMKQogICAgICAgICBnb3RvIGRvbmU7CiAKLSAgICBpZiAodXNlbGYtPnN0YXJ0IDwgUHlVbmljb2RlX0dFVF9TSVpFKHVzZWxmLT5vYmplY3QpICYmIHVzZWxmLT5lbmQgPT0gdXNlbGYtPnN0YXJ0KzEpIHsKLSAgICAgICAgaW50IGJhZGNoYXIgPSAoaW50KVB5VW5pY29kZV9BU19VTklDT0RFKHVzZWxmLT5vYmplY3QpW3VzZWxmLT5zdGFydF07CisgICAgaWYgKHVzZWxmLT5zdGFydCA8IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVzZWxmLT5vYmplY3QpICYmIHVzZWxmLT5lbmQgPT0gdXNlbGYtPnN0YXJ0KzEpIHsKKyAgICAgICAgUHlfVUNTNCBiYWRjaGFyID0gUHlVbmljb2RlX1JlYWRDaGFyKHVzZWxmLT5vYmplY3QsIHVzZWxmLT5zdGFydCk7CiAgICAgICAgIGNvbnN0IGNoYXIgKmZtdDsKICAgICAgICAgaWYgKGJhZGNoYXIgPD0gMHhmZikKICAgICAgICAgICAgIGZtdCA9ICInJVUnIGNvZGVjIGNhbid0IGVuY29kZSBjaGFyYWN0ZXIgJ1xceCUwMngnIGluIHBvc2l0aW9uICV6ZDogJVUiOwpAQCAtMTQ3OCw3ICsxNzk3LDcgQEAKICAgICAgICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoCiAgICAgICAgICAgICBmbXQsCiAgICAgICAgICAgICBlbmNvZGluZ19zdHIsCi0gICAgICAgICAgICBiYWRjaGFyLAorICAgICAgICAgICAgKGludCliYWRjaGFyLAogICAgICAgICAgICAgdXNlbGYtPnN0YXJ0LAogICAgICAgICAgICAgcmVhc29uX3N0cik7CiAgICAgfQpAQCAtMTY3NSw4ICsxOTk0LDggQEAKICAgICBpZiAocmVhc29uX3N0ciA9PSBOVUxMKQogICAgICAgICBnb3RvIGRvbmU7CiAKLSAgICBpZiAodXNlbGYtPnN0YXJ0IDwgUHlVbmljb2RlX0dFVF9TSVpFKHVzZWxmLT5vYmplY3QpICYmIHVzZWxmLT5lbmQgPT0gdXNlbGYtPnN0YXJ0KzEpIHsKLSAgICAgICAgaW50IGJhZGNoYXIgPSAoaW50KVB5VW5pY29kZV9BU19VTklDT0RFKHVzZWxmLT5vYmplY3QpW3VzZWxmLT5zdGFydF07CisgICAgaWYgKHVzZWxmLT5zdGFydCA8IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVzZWxmLT5vYmplY3QpICYmIHVzZWxmLT5lbmQgPT0gdXNlbGYtPnN0YXJ0KzEpIHsKKyAgICAgICAgUHlfVUNTNCBiYWRjaGFyID0gUHlVbmljb2RlX1JlYWRDaGFyKHVzZWxmLT5vYmplY3QsIHVzZWxmLT5zdGFydCk7CiAgICAgICAgIGNvbnN0IGNoYXIgKmZtdDsKICAgICAgICAgaWYgKGJhZGNoYXIgPD0gMHhmZikKICAgICAgICAgICAgIGZtdCA9ICJjYW4ndCB0cmFuc2xhdGUgY2hhcmFjdGVyICdcXHglMDJ4JyBpbiBwb3NpdGlvbiAlemQ6ICVVIjsKQEAgLTE2ODYsNyArMjAwNSw3IEBACiAgICAgICAgICAgICBmbXQgPSAiY2FuJ3QgdHJhbnNsYXRlIGNoYXJhY3RlciAnXFxVJTA4eCcgaW4gcG9zaXRpb24gJXpkOiAlVSI7CiAgICAgICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KAogICAgICAgICAgICAgZm10LAotICAgICAgICAgICAgYmFkY2hhciwKKyAgICAgICAgICAgIChpbnQpYmFkY2hhciwKICAgICAgICAgICAgIHVzZWxmLT5zdGFydCwKICAgICAgICAgICAgIHJlYXNvbl9zdHIKICAgICAgICAgKTsKQEAgLTE3MTcsNiArMjAzNiw3IEBACiB9OwogUHlPYmplY3QgKlB5RXhjX1VuaWNvZGVUcmFuc2xhdGVFcnJvciA9IChQeU9iamVjdCAqKSZfUHlFeGNfVW5pY29kZVRyYW5zbGF0ZUVycm9yOwogCisvKiBEZXByZWNhdGVkLiAqLwogUHlPYmplY3QgKgogUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfQ3JlYXRlKAogICAgIGNvbnN0IFB5X1VOSUNPREUgKm9iamVjdCwgUHlfc3NpemVfdCBsZW5ndGgsCkBAIC0xNzI2LDYgKzIwNDYsMTQgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdCwgbGVuZ3RoLCBzdGFydCwgZW5kLCByZWFzb24pOwogfQogCitQeU9iamVjdCAqCitfUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfQ3JlYXRlKAorICAgIFB5T2JqZWN0ICpvYmplY3QsCisgICAgUHlfc3NpemVfdCBzdGFydCwgUHlfc3NpemVfdCBlbmQsIGNvbnN0IGNoYXIgKnJlYXNvbikKK3sKKyAgICByZXR1cm4gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKFB5RXhjX1VuaWNvZGVUcmFuc2xhdGVFcnJvciwgIk9ucyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3QsIHN0YXJ0LCBlbmQsIHJlYXNvbik7Cit9CiAKIC8qCiAgKiAgICBBc3NlcnRpb25FcnJvciBleHRlbmRzIEV4Y2VwdGlvbgpAQCAtMTk3NSwxMSArMjMwMyw4MCBAQAogICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhiZGljdCwgIyBUWVBFLCBQeUV4Y18gIyMgVFlQRSkpIFwKICAgICAgICAgUHlfRmF0YWxFcnJvcigiTW9kdWxlIGRpY3Rpb25hcnkgaW5zZXJ0aW9uIHByb2JsZW0uIik7CiAKKyNkZWZpbmUgSU5JVF9BTElBUyhOQU1FLCBUWVBFKSBQeV9JTkNSRUYoUHlFeGNfICMjIFRZUEUpOyBcCisgICAgUHlfWERFQ1JFRihQeUV4Y18gIyMgTkFNRSk7IFwKKyAgICBQeUV4Y18gIyMgTkFNRSA9IFB5RXhjXyAjIyBUWVBFOyBcCisgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGJkaWN0LCAjIE5BTUUsIFB5RXhjXyAjIyBOQU1FKSkgXAorICAgICAgICBQeV9GYXRhbEVycm9yKCJNb2R1bGUgZGljdGlvbmFyeSBpbnNlcnRpb24gcHJvYmxlbS4iKTsKKworI2RlZmluZSBBRERfRVJSTk8oVFlQRSwgQ09ERSkgeyBcCisgICAgUHlPYmplY3QgKl9jb2RlID0gUHlMb25nX0Zyb21Mb25nKENPREUpOyBcCisgICAgYXNzZXJ0KF9QeU9iamVjdF9SZWFsSXNTdWJjbGFzcyhQeUV4Y18gIyMgVFlQRSwgUHlFeGNfT1NFcnJvcikpOyBcCisgICAgaWYgKCFfY29kZSB8fCBQeURpY3RfU2V0SXRlbShlcnJub21hcCwgX2NvZGUsIFB5RXhjXyAjIyBUWVBFKSkgXAorICAgICAgICBQeV9GYXRhbEVycm9yKCJlcnJtYXAgaW5zZXJ0aW9uIHByb2JsZW0uIik7IFwKKyAgICBQeV9ERUNSRUYoX2NvZGUpOyBcCisgICAgfQorCisjaWZkZWYgTVNfV0lORE9XUworI2luY2x1ZGUgPFdpbnNvY2syLmg+CisvKiBUaGUgZm9sbG93aW5nIGNvbnN0YW50cyB3ZXJlIGFkZGVkIHRvIGVycm5vLmggaW4gVlMyMDEwIGJ1dCBoYXZlCisgICBwcmVmZXJyZWQgV1NBIGVxdWl2YWxlbnRzLiAqLworI3VuZGVmIEVBRERSSU5VU0UKKyN1bmRlZiBFQUREUk5PVEFWQUlMCisjdW5kZWYgRUFGTk9TVVBQT1JUCisjdW5kZWYgRUFMUkVBRFkKKyN1bmRlZiBFQ09OTkFCT1JURUQKKyN1bmRlZiBFQ09OTlJFRlVTRUQKKyN1bmRlZiBFQ09OTlJFU0VUCisjdW5kZWYgRURFU1RBRERSUkVRCisjdW5kZWYgRUhPU1RVTlJFQUNICisjdW5kZWYgRUlOUFJPR1JFU1MKKyN1bmRlZiBFSVNDT05OCisjdW5kZWYgRUxPT1AKKyN1bmRlZiBFTVNHU0laRQorI3VuZGVmIEVORVRET1dOCisjdW5kZWYgRU5FVFJFU0VUCisjdW5kZWYgRU5FVFVOUkVBQ0gKKyN1bmRlZiBFTk9CVUZTCisjdW5kZWYgRU5PUFJPVE9PUFQKKyN1bmRlZiBFTk9UQ09OTgorI3VuZGVmIEVOT1RTT0NLCisjdW5kZWYgRU9QTk9UU1VQUAorI3VuZGVmIEVQUk9UT05PU1VQUE9SVAorI3VuZGVmIEVQUk9UT1RZUEUKKyN1bmRlZiBFVElNRURPVVQKKyN1bmRlZiBFV09VTERCTE9DSworCisjaWYgZGVmaW5lZChXU0FFQUxSRUFEWSkgJiYgIWRlZmluZWQoRUFMUkVBRFkpCisjZGVmaW5lIEVBTFJFQURZIFdTQUVBTFJFQURZCisjZW5kaWYKKyNpZiBkZWZpbmVkKFdTQUVDT05OQUJPUlRFRCkgJiYgIWRlZmluZWQoRUNPTk5BQk9SVEVEKQorI2RlZmluZSBFQ09OTkFCT1JURUQgV1NBRUNPTk5BQk9SVEVECisjZW5kaWYKKyNpZiBkZWZpbmVkKFdTQUVDT05OUkVGVVNFRCkgJiYgIWRlZmluZWQoRUNPTk5SRUZVU0VEKQorI2RlZmluZSBFQ09OTlJFRlVTRUQgV1NBRUNPTk5SRUZVU0VECisjZW5kaWYKKyNpZiBkZWZpbmVkKFdTQUVDT05OUkVTRVQpICYmICFkZWZpbmVkKEVDT05OUkVTRVQpCisjZGVmaW5lIEVDT05OUkVTRVQgV1NBRUNPTk5SRVNFVAorI2VuZGlmCisjaWYgZGVmaW5lZChXU0FFSU5QUk9HUkVTUykgJiYgIWRlZmluZWQoRUlOUFJPR1JFU1MpCisjZGVmaW5lIEVJTlBST0dSRVNTIFdTQUVJTlBST0dSRVNTCisjZW5kaWYKKyNpZiBkZWZpbmVkKFdTQUVTSFVURE9XTikgJiYgIWRlZmluZWQoRVNIVVRET1dOKQorI2RlZmluZSBFU0hVVERPV04gV1NBRVNIVVRET1dOCisjZW5kaWYKKyNpZiBkZWZpbmVkKFdTQUVUSU1FRE9VVCkgJiYgIWRlZmluZWQoRVRJTUVET1VUKQorI2RlZmluZSBFVElNRURPVVQgV1NBRVRJTUVET1VUCisjZW5kaWYKKyNpZiBkZWZpbmVkKFdTQUVXT1VMREJMT0NLKSAmJiAhZGVmaW5lZChFV09VTERCTE9DSykKKyNkZWZpbmUgRVdPVUxEQkxPQ0sgV1NBRVdPVUxEQkxPQ0sKKyNlbmRpZgorI2VuZGlmIC8qIE1TX1dJTkRPV1MgKi8KIAogdm9pZAotX1B5RXhjX0luaXQodm9pZCkKK19QeUV4Y19Jbml0KFB5T2JqZWN0ICpibHRpbm1vZCkKIHsKLSAgICBQeU9iamVjdCAqYmx0aW5tb2QsICpiZGljdDsKKyAgICBQeU9iamVjdCAqYmRpY3Q7CiAKICAgICBQUkVfSU5JVChCYXNlRXhjZXB0aW9uKQogICAgIFBSRV9JTklUKEV4Y2VwdGlvbikKQEAgLTE5ODksMTUgKzIzODYsNyBAQAogICAgIFBSRV9JTklUKFN5c3RlbUV4aXQpCiAgICAgUFJFX0lOSVQoS2V5Ym9hcmRJbnRlcnJ1cHQpCiAgICAgUFJFX0lOSVQoSW1wb3J0RXJyb3IpCi0gICAgUFJFX0lOSVQoRW52aXJvbm1lbnRFcnJvcikKLSAgICBQUkVfSU5JVChJT0Vycm9yKQogICAgIFBSRV9JTklUKE9TRXJyb3IpCi0jaWZkZWYgTVNfV0lORE9XUwotICAgIFBSRV9JTklUKFdpbmRvd3NFcnJvcikKLSNlbmRpZgotI2lmZGVmIF9fVk1TCi0gICAgUFJFX0lOSVQoVk1TRXJyb3IpCi0jZW5kaWYKICAgICBQUkVfSU5JVChFT0ZFcnJvcikKICAgICBQUkVfSU5JVChSdW50aW1lRXJyb3IpCiAgICAgUFJFX0lOSVQoTm90SW1wbGVtZW50ZWRFcnJvcikKQEAgLTIwMzcsOSArMjQyNiwyNCBAQAogICAgIFBSRV9JTklUKEJ5dGVzV2FybmluZykKICAgICBQUkVfSU5JVChSZXNvdXJjZVdhcm5pbmcpCiAKLSAgICBibHRpbm1vZCA9IFB5SW1wb3J0X0ltcG9ydE1vZHVsZSgiYnVpbHRpbnMiKTsKLSAgICBpZiAoYmx0aW5tb2QgPT0gTlVMTCkKLSAgICAgICAgUHlfRmF0YWxFcnJvcigiZXhjZXB0aW9ucyBib290c3RyYXBwaW5nIGVycm9yLiIpOworICAgIC8qIE9TRXJyb3Igc3ViY2xhc3NlcyAqLworICAgIFBSRV9JTklUKENvbm5lY3Rpb25FcnJvcik7CisKKyAgICBQUkVfSU5JVChCbG9ja2luZ0lPRXJyb3IpOworICAgIFBSRV9JTklUKEJyb2tlblBpcGVFcnJvcik7CisgICAgUFJFX0lOSVQoQ2hpbGRQcm9jZXNzRXJyb3IpOworICAgIFBSRV9JTklUKENvbm5lY3Rpb25BYm9ydGVkRXJyb3IpOworICAgIFBSRV9JTklUKENvbm5lY3Rpb25SZWZ1c2VkRXJyb3IpOworICAgIFBSRV9JTklUKENvbm5lY3Rpb25SZXNldEVycm9yKTsKKyAgICBQUkVfSU5JVChGaWxlRXhpc3RzRXJyb3IpOworICAgIFBSRV9JTklUKEZpbGVOb3RGb3VuZEVycm9yKTsKKyAgICBQUkVfSU5JVChJc0FEaXJlY3RvcnlFcnJvcik7CisgICAgUFJFX0lOSVQoTm90QURpcmVjdG9yeUVycm9yKTsKKyAgICBQUkVfSU5JVChJbnRlcnJ1cHRlZEVycm9yKTsKKyAgICBQUkVfSU5JVChQZXJtaXNzaW9uRXJyb3IpOworICAgIFBSRV9JTklUKFByb2Nlc3NMb29rdXBFcnJvcik7CisgICAgUFJFX0lOSVQoVGltZW91dEVycm9yKTsKKwogICAgIGJkaWN0ID0gUHlNb2R1bGVfR2V0RGljdChibHRpbm1vZCk7CiAgICAgaWYgKGJkaWN0ID09IE5VTEwpCiAgICAgICAgIFB5X0ZhdGFsRXJyb3IoImV4Y2VwdGlvbnMgYm9vdHN0cmFwcGluZyBlcnJvci4iKTsKQEAgLTIwNTIsMTQgKzI0NTYsMTQgQEAKICAgICBQT1NUX0lOSVQoU3lzdGVtRXhpdCkKICAgICBQT1NUX0lOSVQoS2V5Ym9hcmRJbnRlcnJ1cHQpCiAgICAgUE9TVF9JTklUKEltcG9ydEVycm9yKQotICAgIFBPU1RfSU5JVChFbnZpcm9ubWVudEVycm9yKQotICAgIFBPU1RfSU5JVChJT0Vycm9yKQogICAgIFBPU1RfSU5JVChPU0Vycm9yKQorICAgIElOSVRfQUxJQVMoRW52aXJvbm1lbnRFcnJvciwgT1NFcnJvcikKKyAgICBJTklUX0FMSUFTKElPRXJyb3IsIE9TRXJyb3IpCiAjaWZkZWYgTVNfV0lORE9XUwotICAgIFBPU1RfSU5JVChXaW5kb3dzRXJyb3IpCisgICAgSU5JVF9BTElBUyhXaW5kb3dzRXJyb3IsIE9TRXJyb3IpCiAjZW5kaWYKICNpZmRlZiBfX1ZNUwotICAgIFBPU1RfSU5JVChWTVNFcnJvcikKKyAgICBJTklUX0FMSUFTKFZNU0Vycm9yLCBPU0Vycm9yKQogI2VuZGlmCiAgICAgUE9TVF9JTklUKEVPRkVycm9yKQogICAgIFBPU1RfSU5JVChSdW50aW1lRXJyb3IpCkBAIC0yMTAwLDYgKzI1MDQsNDkgQEAKICAgICBQT1NUX0lOSVQoQnl0ZXNXYXJuaW5nKQogICAgIFBPU1RfSU5JVChSZXNvdXJjZVdhcm5pbmcpCiAKKyAgICBpZiAoIWVycm5vbWFwKSB7CisgICAgICAgIGVycm5vbWFwID0gUHlEaWN0X05ldygpOworICAgICAgICBpZiAoIWVycm5vbWFwKQorICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigiQ2Fubm90IGFsbG9jYXRlIG1hcCBmcm9tIGVycm5vcyB0byBPU0Vycm9yIHN1YmNsYXNzZXMiKTsKKyAgICB9CisKKyAgICAvKiBPU0Vycm9yIHN1YmNsYXNzZXMgKi8KKyAgICBQT1NUX0lOSVQoQ29ubmVjdGlvbkVycm9yKTsKKworICAgIFBPU1RfSU5JVChCbG9ja2luZ0lPRXJyb3IpOworICAgIEFERF9FUlJOTyhCbG9ja2luZ0lPRXJyb3IsIEVBR0FJTik7CisgICAgQUREX0VSUk5PKEJsb2NraW5nSU9FcnJvciwgRUFMUkVBRFkpOworICAgIEFERF9FUlJOTyhCbG9ja2luZ0lPRXJyb3IsIEVJTlBST0dSRVNTKTsKKyAgICBBRERfRVJSTk8oQmxvY2tpbmdJT0Vycm9yLCBFV09VTERCTE9DSyk7CisgICAgUE9TVF9JTklUKEJyb2tlblBpcGVFcnJvcik7CisgICAgQUREX0VSUk5PKEJyb2tlblBpcGVFcnJvciwgRVBJUEUpOworICAgIEFERF9FUlJOTyhCcm9rZW5QaXBlRXJyb3IsIEVTSFVURE9XTik7CisgICAgUE9TVF9JTklUKENoaWxkUHJvY2Vzc0Vycm9yKTsKKyAgICBBRERfRVJSTk8oQ2hpbGRQcm9jZXNzRXJyb3IsIEVDSElMRCk7CisgICAgUE9TVF9JTklUKENvbm5lY3Rpb25BYm9ydGVkRXJyb3IpOworICAgIEFERF9FUlJOTyhDb25uZWN0aW9uQWJvcnRlZEVycm9yLCBFQ09OTkFCT1JURUQpOworICAgIFBPU1RfSU5JVChDb25uZWN0aW9uUmVmdXNlZEVycm9yKTsKKyAgICBBRERfRVJSTk8oQ29ubmVjdGlvblJlZnVzZWRFcnJvciwgRUNPTk5SRUZVU0VEKTsKKyAgICBQT1NUX0lOSVQoQ29ubmVjdGlvblJlc2V0RXJyb3IpOworICAgIEFERF9FUlJOTyhDb25uZWN0aW9uUmVzZXRFcnJvciwgRUNPTk5SRVNFVCk7CisgICAgUE9TVF9JTklUKEZpbGVFeGlzdHNFcnJvcik7CisgICAgQUREX0VSUk5PKEZpbGVFeGlzdHNFcnJvciwgRUVYSVNUKTsKKyAgICBQT1NUX0lOSVQoRmlsZU5vdEZvdW5kRXJyb3IpOworICAgIEFERF9FUlJOTyhGaWxlTm90Rm91bmRFcnJvciwgRU5PRU5UKTsKKyAgICBQT1NUX0lOSVQoSXNBRGlyZWN0b3J5RXJyb3IpOworICAgIEFERF9FUlJOTyhJc0FEaXJlY3RvcnlFcnJvciwgRUlTRElSKTsKKyAgICBQT1NUX0lOSVQoTm90QURpcmVjdG9yeUVycm9yKTsKKyAgICBBRERfRVJSTk8oTm90QURpcmVjdG9yeUVycm9yLCBFTk9URElSKTsKKyAgICBQT1NUX0lOSVQoSW50ZXJydXB0ZWRFcnJvcik7CisgICAgQUREX0VSUk5PKEludGVycnVwdGVkRXJyb3IsIEVJTlRSKTsKKyAgICBQT1NUX0lOSVQoUGVybWlzc2lvbkVycm9yKTsKKyAgICBBRERfRVJSTk8oUGVybWlzc2lvbkVycm9yLCBFQUNDRVMpOworICAgIEFERF9FUlJOTyhQZXJtaXNzaW9uRXJyb3IsIEVQRVJNKTsKKyAgICBQT1NUX0lOSVQoUHJvY2Vzc0xvb2t1cEVycm9yKTsKKyAgICBBRERfRVJSTk8oUHJvY2Vzc0xvb2t1cEVycm9yLCBFU1JDSCk7CisgICAgUE9TVF9JTklUKFRpbWVvdXRFcnJvcik7CisgICAgQUREX0VSUk5PKFRpbWVvdXRFcnJvciwgRVRJTUVET1VUKTsKKwogICAgIHByZWFsbG9jYXRlX21lbWVycm9ycygpOwogCiAgICAgaWYgKCFQeUV4Y19SZWN1cnNpb25FcnJvckluc3QpIHsKQEAgLTIxMjYsNyArMjU3Myw2IEBACiAgICAgICAgICAgICBQeV9ERUNSRUYoYXJnc190dXBsZSk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgUHlfREVDUkVGKGJsdGlubW9kKTsKIH0KIAogdm9pZApAQCAtMjEzNCw0ICsyNTgwLDUgQEAKIHsKICAgICBQeV9DTEVBUihQeUV4Y19SZWN1cnNpb25FcnJvckluc3QpOwogICAgIGZyZWVfcHJlYWxsb2NhdGVkX21lbWVycm9ycygpOworICAgIFB5X0NMRUFSKGVycm5vbWFwKTsKIH0KZGlmZiAtLWdpdCBhL09iamVjdHMvZmlsZW9iamVjdC5jIGIvT2JqZWN0cy9maWxlb2JqZWN0LmMKaW5kZXggZDIwZjE5Ni4uZTFjNDdjZSAxMDA2NDQKLS0tIGEvT2JqZWN0cy9maWxlb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9maWxlb2JqZWN0LmMKQEAgLTMwLDExICszMCwxMiBAQAogICAgICAgICAgICAgICBjaGFyICplcnJvcnMsIGNoYXIgKm5ld2xpbmUsIGludCBjbG9zZWZkKQogewogICAgIFB5T2JqZWN0ICppbywgKnN0cmVhbTsKKyAgICBfUHlfSURFTlRJRklFUihvcGVuKTsKIAogICAgIGlvID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlKCJpbyIpOwogICAgIGlmIChpbyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBzdHJlYW0gPSBQeU9iamVjdF9DYWxsTWV0aG9kKGlvLCAib3BlbiIsICJpc2lzc3NpIiwgZmQsIG1vZGUsCisgICAgc3RyZWFtID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChpbywgJlB5SWRfb3BlbiwgImlzaXNzc2kiLCBmZCwgbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcmluZywgZW5jb2RpbmcsIGVycm9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2xpbmUsIGNsb3NlZmQpOwogICAgIFB5X0RFQ1JFRihpbyk7CkBAIC01OCw4ICs1OSw5IEBACiAgICAgewogICAgICAgICBQeU9iamVjdCAqcmVhZGVyOwogICAgICAgICBQeU9iamVjdCAqYXJnczsKKyAgICAgICAgX1B5X0lERU5USUZJRVIocmVhZGxpbmUpOwogCi0gICAgICAgIHJlYWRlciA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoZiwgInJlYWRsaW5lIik7CisgICAgICAgIHJlYWRlciA9IF9QeU9iamVjdF9HZXRBdHRySWQoZiwgJlB5SWRfcmVhZGxpbmUpOwogICAgICAgICBpZiAocmVhZGVyID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKG4gPD0gMCkKQEAgLTEwMywyMyArMTA1LDE4IEBACiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKG4gPCAwICYmIHJlc3VsdCAhPSBOVUxMICYmIFB5VW5pY29kZV9DaGVjayhyZXN1bHQpKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgKnMgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXN1bHQpOwotICAgICAgICBQeV9zc2l6ZV90IGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRShyZXN1bHQpOworICAgICAgICBQeV9zc2l6ZV90IGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlc3VsdCk7CiAgICAgICAgIGlmIChsZW4gPT0gMCkgewogICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CiAgICAgICAgICAgICByZXN1bHQgPSBOVUxMOwogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0VPRkVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFT0Ygd2hlbiByZWFkaW5nIGEgbGluZSIpOwogICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKHNbbGVuLTFdID09ICdcbicpIHsKLSAgICAgICAgICAgIGlmIChyZXN1bHQtPm9iX3JlZmNudCA9PSAxKQotICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SZXNpemUoJnJlc3VsdCwgbGVuLTEpOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKnY7Ci0gICAgICAgICAgICAgICAgdiA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShzLCBsZW4tMSk7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgICAgICAgICAgcmVzdWx0ID0gdjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoUHlVbmljb2RlX1JFQURfQ0hBUihyZXN1bHQsIGxlbi0xKSA9PSAnXG4nKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdjsKKyAgICAgICAgICAgIHYgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKHJlc3VsdCwgMCwgbGVuLTEpOworICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgICAgICByZXN1bHQgPSB2OwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CkBAIC0xMzEsMTEgKzEyOCwxMyBAQAogUHlGaWxlX1dyaXRlT2JqZWN0KFB5T2JqZWN0ICp2LCBQeU9iamVjdCAqZiwgaW50IGZsYWdzKQogewogICAgIFB5T2JqZWN0ICp3cml0ZXIsICp2YWx1ZSwgKmFyZ3MsICpyZXN1bHQ7CisgICAgX1B5X0lERU5USUZJRVIod3JpdGUpOworCiAgICAgaWYgKGYgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAid3JpdGVvYmplY3Qgd2l0aCBOVUxMIGZpbGUiKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KLSAgICB3cml0ZXIgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGYsICJ3cml0ZSIpOworICAgIHdyaXRlciA9IF9QeU9iamVjdF9HZXRBdHRySWQoZiwgJlB5SWRfd3JpdGUpOwogICAgIGlmICh3cml0ZXIgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIGlmIChmbGFncyAmIFB5X1BSSU5UX1JBVykgewpAQCAtMTk4LDExICsxOTcsMTIgQEAKIHsKICAgICBpbnQgZmQ7CiAgICAgUHlPYmplY3QgKm1ldGg7CisgICAgX1B5X0lERU5USUZJRVIoZmlsZW5vKTsKIAogICAgIGlmIChQeUxvbmdfQ2hlY2sobykpIHsKICAgICAgICAgZmQgPSBQeUxvbmdfQXNMb25nKG8pOwogICAgIH0KLSAgICBlbHNlIGlmICgobWV0aCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcobywgImZpbGVubyIpKSAhPSBOVUxMKQorICAgIGVsc2UgaWYgKChtZXRoID0gX1B5T2JqZWN0X0dldEF0dHJJZChvLCAmUHlJZF9maWxlbm8pKSAhPSBOVUxMKQogICAgIHsKICAgICAgICAgUHlPYmplY3QgKmZubyA9IFB5RXZhbF9DYWxsT2JqZWN0KG1ldGgsIE5VTEwpOwogICAgICAgICBQeV9ERUNSRUYobWV0aCk7CkBAIC0yOTcsOCArMjk3LDggQEAKICAgICAgICAgKnArKyA9IGM7CiAgICAgICAgIGlmIChjID09ICdcbicpIGJyZWFrOwogICAgIH0KLSAgICBpZiAoIGMgPT0gRU9GICYmIHNraXBuZXh0bGYgKQotICAgICAgICBuZXdsaW5ldHlwZXMgfD0gTkVXTElORV9DUjsKKyAgICAvKiBpZiAoIGMgPT0gRU9GICYmIHNraXBuZXh0bGYgKQorICAgICAgICBuZXdsaW5ldHlwZXMgfD0gTkVXTElORV9DUjsgKi8KICAgICBGVU5MT0NLRklMRShzdHJlYW0pOwogICAgICpwID0gJ1wwJzsKICAgICBpZiAoIHNraXBuZXh0bGYgKSB7CmRpZmYgLS1naXQgYS9PYmplY3RzL2Zsb2F0b2JqZWN0LmMgYi9PYmplY3RzL2Zsb2F0b2JqZWN0LmMKaW5kZXggZTE0NmE0Zi4uYTQyYmU3MSAxMDA2NDQKLS0tIGEvT2JqZWN0cy9mbG9hdG9iamVjdC5jCisrKyBiL09iamVjdHMvZmxvYXRvYmplY3QuYwpAQCAtMTUsNTkgKzE1LDE3IEBACiAjZGVmaW5lIE1JTih4LCB5KSAoKHgpIDwgKHkpID8gKHgpIDogKHkpKQogCiAKLSNpZmRlZiBfT1NGX1NPVVJDRQotLyogT1NGMSA1LjEgZG9lc24ndCBtYWtlIHRoaXMgYXZhaWxhYmxlIHdpdGggWE9QRU5fU09VUkNFX0VYVEVOREVEIGRlZmluZWQgKi8KLWV4dGVybiBpbnQgZmluaXRlKGRvdWJsZSk7Ci0jZW5kaWYKLQogLyogU3BlY2lhbCBmcmVlIGxpc3QKLQotICAgU2luY2Ugc29tZSBQeXRob24gcHJvZ3JhbXMgY2FuIHNwZW5kIG11Y2ggb2YgdGhlaXIgdGltZSBhbGxvY2F0aW5nCi0gICBhbmQgZGVhbGxvY2F0aW5nIGZsb2F0cywgdGhlc2Ugb3BlcmF0aW9ucyBzaG91bGQgYmUgdmVyeSBmYXN0LgotICAgVGhlcmVmb3JlIHdlIHVzZSBhIGRlZGljYXRlZCBhbGxvY2F0aW9uIHNjaGVtZSB3aXRoIGEgbXVjaCBsb3dlcgotICAgb3ZlcmhlYWQgKGluIHNwYWNlIGFuZCB0aW1lKSB0aGFuIHN0cmFpZ2h0IG1hbGxvYygpOiBhIHNpbXBsZQotICAgZGVkaWNhdGVkIGZyZWUgbGlzdCwgZmlsbGVkIHdoZW4gbmVjZXNzYXJ5IHdpdGggbWVtb3J5IGZyb20gbWFsbG9jKCkuCi0KLSAgIGJsb2NrX2xpc3QgaXMgYSBzaW5nbHktbGlua2VkIGxpc3Qgb2YgYWxsIFB5RmxvYXRCbG9ja3MgZXZlciBhbGxvY2F0ZWQsCi0gICBsaW5rZWQgdmlhIHRoZWlyIG5leHQgbWVtYmVycy4gIFB5RmxvYXRCbG9ja3MgYXJlIG5ldmVyIHJldHVybmVkIHRvIHRoZQotICAgc3lzdGVtIGJlZm9yZSBzaHV0ZG93biAoUHlGbG9hdF9GaW5pKS4KLQogICAgZnJlZV9saXN0IGlzIGEgc2luZ2x5LWxpbmtlZCBsaXN0IG9mIGF2YWlsYWJsZSBQeUZsb2F0T2JqZWN0cywgbGlua2VkCiAgICB2aWEgYWJ1c2Ugb2YgdGhlaXIgb2JfdHlwZSBtZW1iZXJzLgogKi8KIAotI2RlZmluZSBCTE9DS19TSVpFICAgICAgMTAwMCAgICAvKiAxSyBsZXNzIHR5cGljYWwgbWFsbG9jIG92ZXJoZWFkICovCi0jZGVmaW5lIEJIRUFEX1NJWkUgICAgICA4ICAgICAgIC8qIEVub3VnaCBmb3IgYSA2NC1iaXQgcG9pbnRlciAqLwotI2RlZmluZSBOX0ZMT0FUT0JKRUNUUyAgKChCTE9DS19TSVpFIC0gQkhFQURfU0laRSkgLyBzaXplb2YoUHlGbG9hdE9iamVjdCkpCi0KLXN0cnVjdCBfZmxvYXRibG9jayB7Ci0gICAgc3RydWN0IF9mbG9hdGJsb2NrICpuZXh0OwotICAgIFB5RmxvYXRPYmplY3Qgb2JqZWN0c1tOX0ZMT0FUT0JKRUNUU107Ci19OwotCi10eXBlZGVmIHN0cnVjdCBfZmxvYXRibG9jayBQeUZsb2F0QmxvY2s7Ci0KLXN0YXRpYyBQeUZsb2F0QmxvY2sgKmJsb2NrX2xpc3QgPSBOVUxMOworI2lmbmRlZiBQeUZsb2F0X01BWEZSRUVMSVNUCisjZGVmaW5lIFB5RmxvYXRfTUFYRlJFRUxJU1QgICAgMTAwCisjZW5kaWYKK3N0YXRpYyBpbnQgbnVtZnJlZSA9IDA7CiBzdGF0aWMgUHlGbG9hdE9iamVjdCAqZnJlZV9saXN0ID0gTlVMTDsKIAotc3RhdGljIFB5RmxvYXRPYmplY3QgKgotZmlsbF9mcmVlX2xpc3Qodm9pZCkKLXsKLSAgICBQeUZsb2F0T2JqZWN0ICpwLCAqcTsKLSAgICAvKiBYWFggRmxvYXQgYmxvY2tzIGVzY2FwZSB0aGUgb2JqZWN0IGhlYXAuIFVzZSBQeU9iamVjdF9NQUxMT0MgPz8/ICovCi0gICAgcCA9IChQeUZsb2F0T2JqZWN0ICopIFB5TWVtX01BTExPQyhzaXplb2YoUHlGbG9hdEJsb2NrKSk7Ci0gICAgaWYgKHAgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIChQeUZsb2F0T2JqZWN0ICopIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgKChQeUZsb2F0QmxvY2sgKilwKS0+bmV4dCA9IGJsb2NrX2xpc3Q7Ci0gICAgYmxvY2tfbGlzdCA9IChQeUZsb2F0QmxvY2sgKilwOwotICAgIHAgPSAmKChQeUZsb2F0QmxvY2sgKilwKS0+b2JqZWN0c1swXTsKLSAgICBxID0gcCArIE5fRkxPQVRPQkpFQ1RTOwotICAgIHdoaWxlICgtLXEgPiBwKQotICAgICAgICBQeV9UWVBFKHEpID0gKHN0cnVjdCBfdHlwZW9iamVjdCAqKShxLTEpOwotICAgIFB5X1RZUEUocSkgPSBOVUxMOwotICAgIHJldHVybiBwICsgTl9GTE9BVE9CSkVDVFMgLSAxOwotfQotCiBkb3VibGUKIFB5RmxvYXRfR2V0TWF4KHZvaWQpCiB7CkBAIC0xNTYsMTQgKzExNCwxNiBAQAogUHlPYmplY3QgKgogUHlGbG9hdF9Gcm9tRG91YmxlKGRvdWJsZSBmdmFsKQogewotICAgIHJlZ2lzdGVyIFB5RmxvYXRPYmplY3QgKm9wOwotICAgIGlmIChmcmVlX2xpc3QgPT0gTlVMTCkgewotICAgICAgICBpZiAoKGZyZWVfbGlzdCA9IGZpbGxfZnJlZV9saXN0KCkpID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZWdpc3RlciBQeUZsb2F0T2JqZWN0ICpvcCA9IGZyZWVfbGlzdDsKKyAgICBpZiAob3AgIT0gTlVMTCkgeworICAgICAgICBmcmVlX2xpc3QgPSAoUHlGbG9hdE9iamVjdCAqKSBQeV9UWVBFKG9wKTsKKyAgICAgICAgbnVtZnJlZS0tOworICAgIH0gZWxzZSB7CisgICAgICAgIG9wID0gKFB5RmxvYXRPYmplY3QqKSBQeU9iamVjdF9NQUxMT0Moc2l6ZW9mKFB5RmxvYXRPYmplY3QpKTsKKyAgICAgICAgaWYgKCFvcCkKKyAgICAgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwogICAgIH0KICAgICAvKiBJbmxpbmUgUHlPYmplY3RfTmV3ICovCi0gICAgb3AgPSBmcmVlX2xpc3Q7Ci0gICAgZnJlZV9saXN0ID0gKFB5RmxvYXRPYmplY3QgKilQeV9UWVBFKG9wKTsKICAgICBQeU9iamVjdF9JTklUKG9wLCAmUHlGbG9hdF9UeXBlKTsKICAgICBvcC0+b2JfZnZhbCA9IGZ2YWw7CiAgICAgcmV0dXJuIChQeU9iamVjdCAqKSBvcDsKQEAgLTE3OSwyNSArMTM5LDE0IEBACiAgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CiAKICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKHYpKSB7Ci0gICAgICAgIFB5X3NzaXplX3QgaSwgYnVmbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKHYpOwotICAgICAgICBQeV9VTklDT0RFICpidWZwdHI7Ci0gICAgICAgIHNfYnVmZmVyID0gUHlVbmljb2RlX1RyYW5zZm9ybURlY2ltYWxUb0FTQ0lJKAotICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUodiksIGJ1Zmxlbik7CisgICAgICAgIHNfYnVmZmVyID0gX1B5VW5pY29kZV9UcmFuc2Zvcm1EZWNpbWFsQW5kU3BhY2VUb0FTQ0lJKHYpOwogICAgICAgICBpZiAoc19idWZmZXIgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAvKiBSZXBsYWNlIG5vbi1BU0NJSSB3aGl0ZXNwYWNlIHdpdGggJyAnICovCi0gICAgICAgIGJ1ZnB0ciA9IFB5VW5pY29kZV9BU19VTklDT0RFKHNfYnVmZmVyKTsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IGJ1ZmxlbjsgaSsrKSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFIGNoID0gYnVmcHRyW2ldOwotICAgICAgICAgICAgaWYgKGNoID4gMTI3ICYmIFB5X1VOSUNPREVfSVNTUEFDRShjaCkpCi0gICAgICAgICAgICAgICAgYnVmcHRyW2ldID0gJyAnOwotICAgICAgICB9Ci0gICAgICAgIHMgPSBfUHlVbmljb2RlX0FzU3RyaW5nQW5kU2l6ZShzX2J1ZmZlciwgJmxlbik7CisgICAgICAgIHMgPSBQeVVuaWNvZGVfQXNVVEY4QW5kU2l6ZShzX2J1ZmZlciwgJmxlbik7CiAgICAgICAgIGlmIChzID09IE5VTEwpIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihzX2J1ZmZlcik7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQotICAgICAgICBsYXN0ID0gcyArIGxlbjsKICAgICB9CiAgICAgZWxzZSBpZiAoUHlPYmplY3RfQXNDaGFyQnVmZmVyKHYsICZzLCAmbGVuKSkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLApAQCAtMjMzLDYgKzE4MiwxMSBAQAogZmxvYXRfZGVhbGxvYyhQeUZsb2F0T2JqZWN0ICpvcCkKIHsKICAgICBpZiAoUHlGbG9hdF9DaGVja0V4YWN0KG9wKSkgeworICAgICAgICBpZiAobnVtZnJlZSA+PSBQeUZsb2F0X01BWEZSRUVMSVNUKSAgeworICAgICAgICAgICAgUHlPYmplY3RfRlJFRShvcCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbnVtZnJlZSsrOwogICAgICAgICBQeV9UWVBFKG9wKSA9IChzdHJ1Y3QgX3R5cGVvYmplY3QgKilmcmVlX2xpc3Q7CiAgICAgICAgIGZyZWVfbGlzdCA9IG9wOwogICAgIH0KQEAgLTMxMywxMyArMjY3LDE1IEBACiBmbG9hdF9yZXByKFB5RmxvYXRPYmplY3QgKnYpCiB7CiAgICAgUHlPYmplY3QgKnJlc3VsdDsKLSAgICBjaGFyICpidWYgPSBQeU9TX2RvdWJsZV90b19zdHJpbmcoUHlGbG9hdF9BU19ET1VCTEUodiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyJywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfRFRTRl9BRERfRE9UXzAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIGNoYXIgKmJ1ZjsKKworICAgIGJ1ZiA9IFB5T1NfZG91YmxlX3RvX3N0cmluZyhQeUZsb2F0X0FTX0RPVUJMRSh2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3InLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9EVFNGX0FERF9ET1RfMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgaWYgKCFidWYpCiAgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwotICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKGJ1Zik7CisgICAgcmVzdWx0ID0gX1B5VW5pY29kZV9Gcm9tQVNDSUkoYnVmLCBzdHJsZW4oYnVmKSk7CiAgICAgUHlNZW1fRnJlZShidWYpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC01MjMsOCArNDc5LDcgQEAKICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKHIpOwogCiAgVW5pbXBsZW1lbnRlZDoKLSAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKKyAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiB9CiAKIHN0YXRpYyBQeV9oYXNoX3QKQEAgLTEwODAsNyArMTAzNSw3IEBACiBjaGFyX2Zyb21faGV4KGludCB4KQogewogICAgIGFzc2VydCgwIDw9IHggJiYgeCA8IDE2KTsKLSAgICByZXR1cm4gIjAxMjM0NTY3ODlhYmNkZWYiW3hdOworICAgIHJldHVybiBQeV9oZXhkaWdpdHNbeF07CiB9CiAKIHN0YXRpYyBpbnQKQEAgLTE3NTAsMTIgKzE3MDUsMjIgQEAKIGZsb2F0X19mb3JtYXRfXyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlPYmplY3QgKmZvcm1hdF9zcGVjOworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOworICAgIGludCByZXQ7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6X19mb3JtYXRfXyIsICZmb3JtYXRfc3BlYykpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiBfUHlGbG9hdF9Gb3JtYXRBZHZhbmNlZChzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShmb3JtYXRfc3BlYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShmb3JtYXRfc3BlYykpOworCisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIsIDApOworICAgIHJldCA9IF9QeUZsb2F0X0Zvcm1hdEFkdmFuY2VkV3JpdGVyKAorICAgICAgICAmd3JpdGVyLAorICAgICAgICBzZWxmLAorICAgICAgICBmb3JtYXRfc3BlYywgMCwgUHlVbmljb2RlX0dFVF9MRU5HVEgoZm9ybWF0X3NwZWMpKTsKKyAgICBpZiAocmV0ID09IC0xKSB7CisgICAgICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmd3JpdGVyKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX0ZpbmlzaCgmd3JpdGVyKTsKIH0KIAogUHlEb2NfU1RSVkFSKGZsb2F0X19mb3JtYXRfX2RvYywKQEAgLTE5NTAsOTggKzE5MTUsMzQgQEAKIGludAogUHlGbG9hdF9DbGVhckZyZWVMaXN0KHZvaWQpCiB7Ci0gICAgUHlGbG9hdE9iamVjdCAqcDsKLSAgICBQeUZsb2F0QmxvY2sgKmxpc3QsICpuZXh0OwotICAgIGludCBpOwotICAgIGludCB1OyAgICAgICAgICAgICAgICAgICAgICAvKiByZW1haW5pbmcgdW5mcmVlZCBmbG9hdHMgcGVyIGJsb2NrICovCi0gICAgaW50IGZyZWVsaXN0X3NpemUgPSAwOwotCi0gICAgbGlzdCA9IGJsb2NrX2xpc3Q7Ci0gICAgYmxvY2tfbGlzdCA9IE5VTEw7Ci0gICAgZnJlZV9saXN0ID0gTlVMTDsKLSAgICB3aGlsZSAobGlzdCAhPSBOVUxMKSB7Ci0gICAgICAgIHUgPSAwOwotICAgICAgICBmb3IgKGkgPSAwLCBwID0gJmxpc3QtPm9iamVjdHNbMF07Ci0gICAgICAgICAgICAgaSA8IE5fRkxPQVRPQkpFQ1RTOwotICAgICAgICAgICAgIGkrKywgcCsrKSB7Ci0gICAgICAgICAgICBpZiAoUHlGbG9hdF9DaGVja0V4YWN0KHApICYmIFB5X1JFRkNOVChwKSAhPSAwKQotICAgICAgICAgICAgICAgIHUrKzsKLSAgICAgICAgfQotICAgICAgICBuZXh0ID0gbGlzdC0+bmV4dDsKLSAgICAgICAgaWYgKHUpIHsKLSAgICAgICAgICAgIGxpc3QtPm5leHQgPSBibG9ja19saXN0OwotICAgICAgICAgICAgYmxvY2tfbGlzdCA9IGxpc3Q7Ci0gICAgICAgICAgICBmb3IgKGkgPSAwLCBwID0gJmxpc3QtPm9iamVjdHNbMF07Ci0gICAgICAgICAgICAgICAgIGkgPCBOX0ZMT0FUT0JKRUNUUzsKLSAgICAgICAgICAgICAgICAgaSsrLCBwKyspIHsKLSAgICAgICAgICAgICAgICBpZiAoIVB5RmxvYXRfQ2hlY2tFeGFjdChwKSB8fAotICAgICAgICAgICAgICAgICAgICBQeV9SRUZDTlQocCkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBQeV9UWVBFKHApID0gKHN0cnVjdCBfdHlwZW9iamVjdCAqKQotICAgICAgICAgICAgICAgICAgICAgICAgZnJlZV9saXN0OwotICAgICAgICAgICAgICAgICAgICBmcmVlX2xpc3QgPSBwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFB5TWVtX0ZSRUUobGlzdCk7Ci0gICAgICAgIH0KLSAgICAgICAgZnJlZWxpc3Rfc2l6ZSArPSB1OwotICAgICAgICBsaXN0ID0gbmV4dDsKKyAgICBQeUZsb2F0T2JqZWN0ICpmID0gZnJlZV9saXN0LCAqbmV4dDsKKyAgICBpbnQgaSA9IG51bWZyZWU7CisgICAgd2hpbGUgKGYpIHsKKyAgICAgICAgbmV4dCA9IChQeUZsb2F0T2JqZWN0KikgUHlfVFlQRShmKTsKKyAgICAgICAgUHlPYmplY3RfRlJFRShmKTsKKyAgICAgICAgZiA9IG5leHQ7CiAgICAgfQotICAgIHJldHVybiBmcmVlbGlzdF9zaXplOworICAgIGZyZWVfbGlzdCA9IE5VTEw7CisgICAgbnVtZnJlZSA9IDA7CisgICAgcmV0dXJuIGk7CiB9CiAKIHZvaWQKIFB5RmxvYXRfRmluaSh2b2lkKQogewotICAgIFB5RmxvYXRPYmplY3QgKnA7Ci0gICAgUHlGbG9hdEJsb2NrICpsaXN0OwotICAgIGludCBpOwotICAgIGludCB1OyAgICAgICAgICAgICAgICAgICAgICAvKiB0b3RhbCB1bmZyZWVkIGZsb2F0cyBwZXIgYmxvY2sgKi8KLQotICAgIHUgPSBQeUZsb2F0X0NsZWFyRnJlZUxpc3QoKTsKLQotICAgIGlmICghUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgIHJldHVybjsKLSAgICBmcHJpbnRmKHN0ZGVyciwgIiMgY2xlYW51cCBmbG9hdHMiKTsKLSAgICBpZiAoIXUpIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsCi0gICAgICAgICAgICAiOiAlZCB1bmZyZWVkIGZsb2F0JXNcbiIsCi0gICAgICAgICAgICB1LCB1ID09IDEgPyAiIiA6ICJzIik7Ci0gICAgfQotICAgIGlmIChQeV9WZXJib3NlRmxhZyA+IDEpIHsKLSAgICAgICAgbGlzdCA9IGJsb2NrX2xpc3Q7Ci0gICAgICAgIHdoaWxlIChsaXN0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIGZvciAoaSA9IDAsIHAgPSAmbGlzdC0+b2JqZWN0c1swXTsKLSAgICAgICAgICAgICAgICAgaSA8IE5fRkxPQVRPQkpFQ1RTOwotICAgICAgICAgICAgICAgICBpKyssIHArKykgewotICAgICAgICAgICAgICAgIGlmIChQeUZsb2F0X0NoZWNrRXhhY3QocCkgJiYKLSAgICAgICAgICAgICAgICAgICAgUHlfUkVGQ05UKHApICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgY2hhciAqYnVmID0gUHlPU19kb3VibGVfdG9fc3RyaW5nKAotICAgICAgICAgICAgICAgICAgICAgICAgUHlGbG9hdF9BU19ET1VCTEUocCksICdyJywKLSAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIE5VTEwpOwotICAgICAgICAgICAgICAgICAgICBpZiAoYnVmKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBYWFgodHdvdXRlcnMpIGNhc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmNvdW50IHRvIGxvbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudGlsICV6ZCBpcwotICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdmVyc2FsbHkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGF2YWlsYWJsZQotICAgICAgICAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLAotICAgICAgICAgICAgICAgICAiIyAgIDxmbG9hdCBhdCAlcCwgcmVmY250PSVsZCwgdmFsPSVzPlxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAsIChsb25nKVB5X1JFRkNOVChwKSwgYnVmKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5TWVtX0ZyZWUoYnVmKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgbGlzdCA9IGxpc3QtPm5leHQ7Ci0gICAgICAgIH0KLSAgICB9CisgICAgKHZvaWQpUHlGbG9hdF9DbGVhckZyZWVMaXN0KCk7CiB9CiAKKy8qIFByaW50IHN1bW1hcnkgaW5mbyBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIG9wdGltaXplZCBhbGxvY2F0b3IgKi8KK3ZvaWQKK19QeUZsb2F0X0RlYnVnTWFsbG9jU3RhdHMoRklMRSAqb3V0KQoreworICAgIF9QeURlYnVnQWxsb2NhdG9yU3RhdHMob3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyZWUgUHlGbG9hdE9iamVjdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1mcmVlLCBzaXplb2YoUHlGbG9hdE9iamVjdCkpOworfQorCisKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICogX1B5RmxvYXRfe1BhY2ssVW5wYWNrfXs0LDh9LiAgU2VlIGZsb2F0b2JqZWN0LmguCiAgKi8KQEAgLTIyNTEsNyArMjE1Miw3IEBACiAKICAgICAgICAgLyogRWlnaHRoIGJ5dGUgKi8KICAgICAgICAgKnAgPSBmbG8gJiAweEZGOwotICAgICAgICBwICs9IGluY3I7CisgICAgICAgIC8qIHAgKz0gaW5jcjsgKi8KIAogICAgICAgICAvKiBEb25lICovCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9mcmFtZW9iamVjdC5jIGIvT2JqZWN0cy9mcmFtZW9iamVjdC5jCmluZGV4IGFkY2U0MmIuLjgwOGU1OTUgMTAwNjQ0Ci0tLSBhL09iamVjdHMvZnJhbWVvYmplY3QuYworKysgYi9PYmplY3RzL2ZyYW1lb2JqZWN0LmMKQEAgLTE1LDExICsxNSwxMSBAQAogI2RlZmluZSBPRkYoeCkgb2Zmc2V0b2YoUHlGcmFtZU9iamVjdCwgeCkKIAogc3RhdGljIFB5TWVtYmVyRGVmIGZyYW1lX21lbWJlcmxpc3RbXSA9IHsKLSAgICB7ImZfYmFjayIsICAgICAgICAgIFRfT0JKRUNULCAgICAgICBPRkYoZl9iYWNrKSwgICAgUkVBRE9OTFl9LAotICAgIHsiZl9jb2RlIiwgICAgICAgICAgVF9PQkpFQ1QsICAgICAgIE9GRihmX2NvZGUpLCAgICBSRUFET05MWX0sCi0gICAgeyJmX2J1aWx0aW5zIiwgICAgICBUX09CSkVDVCwgICAgICAgT0ZGKGZfYnVpbHRpbnMpLFJFQURPTkxZfSwKLSAgICB7ImZfZ2xvYmFscyIsICAgICAgIFRfT0JKRUNULCAgICAgICBPRkYoZl9nbG9iYWxzKSwgUkVBRE9OTFl9LAotICAgIHsiZl9sYXN0aSIsICAgICAgICAgVF9JTlQsICAgICAgICAgIE9GRihmX2xhc3RpKSwgICBSRUFET05MWX0sCisgICAgeyJmX2JhY2siLCAgICAgICAgICBUX09CSkVDVCwgICAgICAgT0ZGKGZfYmFjayksICAgICAgUkVBRE9OTFl9LAorICAgIHsiZl9jb2RlIiwgICAgICAgICAgVF9PQkpFQ1QsICAgICAgIE9GRihmX2NvZGUpLCAgICAgIFJFQURPTkxZfSwKKyAgICB7ImZfYnVpbHRpbnMiLCAgICAgIFRfT0JKRUNULCAgICAgICBPRkYoZl9idWlsdGlucyksICBSRUFET05MWX0sCisgICAgeyJmX2dsb2JhbHMiLCAgICAgICBUX09CSkVDVCwgICAgICAgT0ZGKGZfZ2xvYmFscyksICAgUkVBRE9OTFl9LAorICAgIHsiZl9sYXN0aSIsICAgICAgICAgVF9JTlQsICAgICAgICAgIE9GRihmX2xhc3RpKSwgICAgIFJFQURPTkxZfSwKICAgICB7TlVMTH0gICAgICAvKiBTZW50aW5lbCAqLwogfTsKIApAQCAtNjE0LDEwICs2MTQsOCBAQAogICAgICAgICBpZiAoYnVpbHRpbnMpIHsKICAgICAgICAgICAgIGlmIChQeU1vZHVsZV9DaGVjayhidWlsdGlucykpIHsKICAgICAgICAgICAgICAgICBidWlsdGlucyA9IFB5TW9kdWxlX0dldERpY3QoYnVpbHRpbnMpOwotICAgICAgICAgICAgICAgIGFzc2VydCghYnVpbHRpbnMgfHwgUHlEaWN0X0NoZWNrKGJ1aWx0aW5zKSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KGJ1aWx0aW5zICE9IE5VTEwpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAoIVB5RGljdF9DaGVjayhidWlsdGlucykpCi0gICAgICAgICAgICAgICAgYnVpbHRpbnMgPSBOVUxMOwogICAgICAgICB9CiAgICAgICAgIGlmIChidWlsdGlucyA9PSBOVUxMKSB7CiAgICAgICAgICAgICAvKiBObyBidWlsdGlucyEgICAgICAgICAgICAgIE1ha2UgdXAgYSBtaW5pbWFsIG9uZQpAQCAtNjM2LDcgKzYzNCw3IEBACiAgICAgICAgIC8qIElmIHdlIHNoYXJlIHRoZSBnbG9iYWxzLCB3ZSBzaGFyZSB0aGUgYnVpbHRpbnMuCiAgICAgICAgICAgIFNhdmUgYSBsb29rdXAgYW5kIGEgY2FsbC4gKi8KICAgICAgICAgYnVpbHRpbnMgPSBiYWNrLT5mX2J1aWx0aW5zOwotICAgICAgICBhc3NlcnQoYnVpbHRpbnMgIT0gTlVMTCAmJiBQeURpY3RfQ2hlY2soYnVpbHRpbnMpKTsKKyAgICAgICAgYXNzZXJ0KGJ1aWx0aW5zICE9IE5VTEwpOwogICAgICAgICBQeV9JTkNSRUYoYnVpbHRpbnMpOwogICAgIH0KICAgICBpZiAoY29kZS0+Y29fem9tYmllZnJhbWUgIT0gTlVMTCkgewpAQCAtNjY1LDExICs2NjMsMTMgQEAKICAgICAgICAgICAgIGYgPSBmcmVlX2xpc3Q7CiAgICAgICAgICAgICBmcmVlX2xpc3QgPSBmcmVlX2xpc3QtPmZfYmFjazsKICAgICAgICAgICAgIGlmIChQeV9TSVpFKGYpIDwgZXh0cmFzKSB7Ci0gICAgICAgICAgICAgICAgZiA9IFB5T2JqZWN0X0dDX1Jlc2l6ZShQeUZyYW1lT2JqZWN0LCBmLCBleHRyYXMpOwotICAgICAgICAgICAgICAgIGlmIChmID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBQeUZyYW1lT2JqZWN0ICpuZXdfZiA9IFB5T2JqZWN0X0dDX1Jlc2l6ZShQeUZyYW1lT2JqZWN0LCBmLCBleHRyYXMpOworICAgICAgICAgICAgICAgIGlmIChuZXdfZiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0X0dDX0RlbChmKTsKICAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGJ1aWx0aW5zKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGYgPSBuZXdfZjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIF9QeV9OZXdSZWZlcmVuY2UoKFB5T2JqZWN0ICopZik7CiAgICAgICAgIH0KQEAgLTk1NSwzICs5NTUsMTMgQEAKICAgICBQeV9YREVDUkVGKGJ1aWx0aW5fb2JqZWN0KTsKICAgICBidWlsdGluX29iamVjdCA9IE5VTEw7CiB9CisKKy8qIFByaW50IHN1bW1hcnkgaW5mbyBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIG9wdGltaXplZCBhbGxvY2F0b3IgKi8KK3ZvaWQKK19QeUZyYW1lX0RlYnVnTWFsbG9jU3RhdHMoRklMRSAqb3V0KQoreworICAgIF9QeURlYnVnQWxsb2NhdG9yU3RhdHMob3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyZWUgUHlGcmFtZU9iamVjdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1mcmVlLCBzaXplb2YoUHlGcmFtZU9iamVjdCkpOworfQorCmRpZmYgLS1naXQgYS9PYmplY3RzL2Z1bmNvYmplY3QuYyBiL09iamVjdHMvZnVuY29iamVjdC5jCmluZGV4IDIyOTJhOWUuLjQ5NDE1YjkgMTAwNjQ0Ci0tLSBhL09iamVjdHMvZnVuY29iamVjdC5jCisrKyBiL09iamVjdHMvZnVuY29iamVjdC5jCkBAIC02LDcgKzYsNyBAQAogI2luY2x1ZGUgInN0cnVjdG1lbWJlci5oIgogCiBQeU9iamVjdCAqCi1QeUZ1bmN0aW9uX05ldyhQeU9iamVjdCAqY29kZSwgUHlPYmplY3QgKmdsb2JhbHMpCitQeUZ1bmN0aW9uX05ld1dpdGhRdWFsTmFtZShQeU9iamVjdCAqY29kZSwgUHlPYmplY3QgKmdsb2JhbHMsIFB5T2JqZWN0ICpxdWFsbmFtZSkKIHsKICAgICBQeUZ1bmN0aW9uT2JqZWN0ICpvcCA9IFB5T2JqZWN0X0dDX05ldyhQeUZ1bmN0aW9uT2JqZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeUZ1bmN0aW9uX1R5cGUpOwpAQCAtNTQsNiArNTQsMTEgQEAKICAgICAgICAgICAgIFB5X0lOQ1JFRihtb2R1bGUpOwogICAgICAgICAgICAgb3AtPmZ1bmNfbW9kdWxlID0gbW9kdWxlOwogICAgICAgICB9CisgICAgICAgIGlmIChxdWFsbmFtZSkKKyAgICAgICAgICAgIG9wLT5mdW5jX3F1YWxuYW1lID0gcXVhbG5hbWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG9wLT5mdW5jX3F1YWxuYW1lID0gb3AtPmZ1bmNfbmFtZTsKKyAgICAgICAgUHlfSU5DUkVGKG9wLT5mdW5jX3F1YWxuYW1lKTsKICAgICB9CiAgICAgZWxzZQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTYyLDYgKzY3LDEyIEBACiB9CiAKIFB5T2JqZWN0ICoKK1B5RnVuY3Rpb25fTmV3KFB5T2JqZWN0ICpjb2RlLCBQeU9iamVjdCAqZ2xvYmFscykKK3sKKyAgICByZXR1cm4gUHlGdW5jdGlvbl9OZXdXaXRoUXVhbE5hbWUoY29kZSwgZ2xvYmFscywgTlVMTCk7Cit9CisKK1B5T2JqZWN0ICoKIFB5RnVuY3Rpb25fR2V0Q29kZShQeU9iamVjdCAqb3ApCiB7CiAgICAgaWYgKCFQeUZ1bmN0aW9uX0NoZWNrKG9wKSkgewpAQCAtMjM0LDQyICsyNDUsNiBAQAogfTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLWZ1bmNfZ2V0X2RpY3QoUHlGdW5jdGlvbk9iamVjdCAqb3ApCi17Ci0gICAgaWYgKG9wLT5mdW5jX2RpY3QgPT0gTlVMTCkgewotICAgICAgICBvcC0+ZnVuY19kaWN0ID0gUHlEaWN0X05ldygpOwotICAgICAgICBpZiAob3AtPmZ1bmNfZGljdCA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIFB5X0lOQ1JFRihvcC0+ZnVuY19kaWN0KTsKLSAgICByZXR1cm4gb3AtPmZ1bmNfZGljdDsKLX0KLQotc3RhdGljIGludAotZnVuY19zZXRfZGljdChQeUZ1bmN0aW9uT2JqZWN0ICpvcCwgUHlPYmplY3QgKnZhbHVlKQotewotICAgIFB5T2JqZWN0ICp0bXA7Ci0KLSAgICAvKiBJdCBpcyBpbGxlZ2FsIHRvIGRlbCBmLmZ1bmNfZGljdCAqLwotICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb24ncyBkaWN0aW9uYXJ5IG1heSBub3QgYmUgZGVsZXRlZCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIC8qIENhbiBvbmx5IHNldCBmdW5jX2RpY3QgdG8gYSBkaWN0aW9uYXJ5ICovCi0gICAgaWYgKCFQeURpY3RfQ2hlY2sodmFsdWUpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAic2V0dGluZyBmdW5jdGlvbidzIGRpY3Rpb25hcnkgdG8gYSBub24tZGljdCIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIHRtcCA9IG9wLT5mdW5jX2RpY3Q7Ci0gICAgUHlfSU5DUkVGKHZhbHVlKTsKLSAgICBvcC0+ZnVuY19kaWN0ID0gdmFsdWU7Ci0gICAgUHlfWERFQ1JFRih0bXApOwotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgogZnVuY19nZXRfY29kZShQeUZ1bmN0aW9uT2JqZWN0ICpvcCkKIHsKICAgICBQeV9JTkNSRUYob3AtPmZ1bmNfY29kZSk7CkBAIC0zMzQsNiArMzA5LDMyIEBACiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCitmdW5jX2dldF9xdWFsbmFtZShQeUZ1bmN0aW9uT2JqZWN0ICpvcCkKK3sKKyAgICBQeV9JTkNSRUYob3AtPmZ1bmNfcXVhbG5hbWUpOworICAgIHJldHVybiBvcC0+ZnVuY19xdWFsbmFtZTsKK30KKworc3RhdGljIGludAorZnVuY19zZXRfcXVhbG5hbWUoUHlGdW5jdGlvbk9iamVjdCAqb3AsIFB5T2JqZWN0ICp2YWx1ZSkKK3sKKyAgICBQeU9iamVjdCAqdG1wOworCisgICAgLyogTm90IGxlZ2FsIHRvIGRlbCBmLl9fcXVhbG5hbWVfXyBvciB0byBzZXQgaXQgdG8gYW55dGhpbmcKKyAgICAgKiBvdGhlciB0aGFuIGEgc3RyaW5nIG9iamVjdC4gKi8KKyAgICBpZiAodmFsdWUgPT0gTlVMTCB8fCAhUHlVbmljb2RlX0NoZWNrKHZhbHVlKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIl9fcXVhbG5hbWVfXyBtdXN0IGJlIHNldCB0byBhIHN0cmluZyBvYmplY3QiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICB0bXAgPSBvcC0+ZnVuY19xdWFsbmFtZTsKKyAgICBQeV9JTkNSRUYodmFsdWUpOworICAgIG9wLT5mdW5jX3F1YWxuYW1lID0gdmFsdWU7CisgICAgUHlfREVDUkVGKHRtcCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCiBmdW5jX2dldF9kZWZhdWx0cyhQeUZ1bmN0aW9uT2JqZWN0ICpvcCkKIHsKICAgICBpZiAob3AtPmZ1bmNfZGVmYXVsdHMgPT0gTlVMTCkgewpAQCAtNDM5LDggKzQ0MCw5IEBACiAgICAgIChzZXR0ZXIpZnVuY19zZXRfa3dkZWZhdWx0c30sCiAgICAgeyJfX2Fubm90YXRpb25zX18iLCAoZ2V0dGVyKWZ1bmNfZ2V0X2Fubm90YXRpb25zLAogICAgICAoc2V0dGVyKWZ1bmNfc2V0X2Fubm90YXRpb25zfSwKLSAgICB7Il9fZGljdF9fIiwgKGdldHRlcilmdW5jX2dldF9kaWN0LCAoc2V0dGVyKWZ1bmNfc2V0X2RpY3R9LAorICAgIHsiX19kaWN0X18iLCBQeU9iamVjdF9HZW5lcmljR2V0RGljdCwgUHlPYmplY3RfR2VuZXJpY1NldERpY3R9LAogICAgIHsiX19uYW1lX18iLCAoZ2V0dGVyKWZ1bmNfZ2V0X25hbWUsIChzZXR0ZXIpZnVuY19zZXRfbmFtZX0sCisgICAgeyJfX3F1YWxuYW1lX18iLCAoZ2V0dGVyKWZ1bmNfZ2V0X3F1YWxuYW1lLCAoc2V0dGVyKWZ1bmNfc2V0X3F1YWxuYW1lfSwKICAgICB7TlVMTH0gLyogU2VudGluZWwgKi8KIH07CiAKQEAgLTU2MSw2ICs1NjMsNyBAQAogICAgIFB5X1hERUNSRUYob3AtPmZ1bmNfZGljdCk7CiAgICAgUHlfWERFQ1JFRihvcC0+ZnVuY19jbG9zdXJlKTsKICAgICBQeV9YREVDUkVGKG9wLT5mdW5jX2Fubm90YXRpb25zKTsKKyAgICBQeV9YREVDUkVGKG9wLT5mdW5jX3F1YWxuYW1lKTsKICAgICBQeU9iamVjdF9HQ19EZWwob3ApOwogfQogCkBAIC01NjgsNyArNTcxLDcgQEAKIGZ1bmNfcmVwcihQeUZ1bmN0aW9uT2JqZWN0ICpvcCkKIHsKICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjxmdW5jdGlvbiAlVSBhdCAlcD4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLT5mdW5jX25hbWUsIG9wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcC0+ZnVuY19xdWFsbmFtZSwgb3ApOwogfQogCiBzdGF0aWMgaW50CkBAIC01ODQsNiArNTg3LDcgQEAKICAgICBQeV9WSVNJVChmLT5mdW5jX2RpY3QpOwogICAgIFB5X1ZJU0lUKGYtPmZ1bmNfY2xvc3VyZSk7CiAgICAgUHlfVklTSVQoZi0+ZnVuY19hbm5vdGF0aW9ucyk7CisgICAgUHlfVklTSVQoZi0+ZnVuY19xdWFsbmFtZSk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTY2Nyw4ICs2NzEsOCBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLwogICAgIGZ1bmN0aW9uX2NhbGwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCi0gICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLwotICAgIFB5T2JqZWN0X0dlbmVyaWNTZXRBdHRyLCAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHJvICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfYnVmZmVyICovCiAgICAgUHlfVFBGTEFHU19ERUZBVUxUIHwgUHlfVFBGTEFHU19IQVZFX0dDLC8qIHRwX2ZsYWdzICovCiAgICAgZnVuY19kb2MsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KQEAgLTcxNCw2ICs3MTgsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFB5T2JqZWN0X0hFQUQKICAgICBQeU9iamVjdCAqY21fY2FsbGFibGU7CisgICAgUHlPYmplY3QgKmNtX2RpY3Q7CiB9IGNsYXNzbWV0aG9kOwogCiBzdGF0aWMgdm9pZApAQCAtNzIxLDYgKzcyNiw3IEBACiB7CiAgICAgX1B5T2JqZWN0X0dDX1VOVFJBQ0soKFB5T2JqZWN0ICopY20pOwogICAgIFB5X1hERUNSRUYoY20tPmNtX2NhbGxhYmxlKTsKKyAgICBQeV9YREVDUkVGKGNtLT5jbV9kaWN0KTsKICAgICBQeV9UWVBFKGNtKS0+dHBfZnJlZSgoUHlPYmplY3QgKiljbSk7CiB9CiAKQEAgLTcyOCw2ICs3MzQsNyBAQAogY21fdHJhdmVyc2UoY2xhc3NtZXRob2QgKmNtLCB2aXNpdHByb2MgdmlzaXQsIHZvaWQgKmFyZykKIHsKICAgICBQeV9WSVNJVChjbS0+Y21fY2FsbGFibGUpOworICAgIFB5X1ZJU0lUKGNtLT5jbV9kaWN0KTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtNzM1LDYgKzc0Miw3IEBACiBjbV9jbGVhcihjbGFzc21ldGhvZCAqY20pCiB7CiAgICAgUHlfQ0xFQVIoY20tPmNtX2NhbGxhYmxlKTsKKyAgICBQeV9DTEVBUihjbS0+Y21fZGljdCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTc3NCw2ICs3ODIsMjggQEAKICAgICB7TlVMTH0gIC8qIFNlbnRpbmVsICovCiB9OwogCitzdGF0aWMgUHlPYmplY3QgKgorY21fZ2V0X19faXNhYnN0cmFjdG1ldGhvZF9fKGNsYXNzbWV0aG9kICpjbSwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICBpbnQgcmVzID0gX1B5T2JqZWN0X0lzQWJzdHJhY3QoY20tPmNtX2NhbGxhYmxlKTsKKyAgICBpZiAocmVzID09IC0xKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBlbHNlIGlmIChyZXMpIHsKKyAgICAgICAgUHlfUkVUVVJOX1RSVUU7CisgICAgfQorICAgIFB5X1JFVFVSTl9GQUxTRTsKK30KKworc3RhdGljIFB5R2V0U2V0RGVmIGNtX2dldHNldGxpc3RbXSA9IHsKKyAgICB7Il9faXNhYnN0cmFjdG1ldGhvZF9fIiwKKyAgICAgKGdldHRlciljbV9nZXRfX19pc2Fic3RyYWN0bWV0aG9kX18sIE5VTEwsCisgICAgIE5VTEwsCisgICAgIE5VTEx9LAorICAgIHsiX19kaWN0X18iLCBQeU9iamVjdF9HZW5lcmljR2V0RGljdCwgUHlPYmplY3RfR2VuZXJpY1NldERpY3QsIE5VTEwsIE5VTEx9LAorICAgIHtOVUxMfSAvKiBTZW50aW5lbCAqLworfTsKKwogUHlEb2NfU1RSVkFSKGNsYXNzbWV0aG9kX2RvYywKICJjbGFzc21ldGhvZChmdW5jdGlvbikgLT4gbWV0aG9kXG5cCiBcblwKQEAgLTgxMiw3ICs4NDIsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCi0gICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHJvICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KICAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0JBU0VUWVBFIHwgUHlfVFBGTEFHU19IQVZFX0dDLApAQCAtODI1LDEyICs4NTUsMTIgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgY21fbWVtYmVybGlzdCwgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIGNtX2dldHNldGxpc3QsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCiAgICAgY21fZGVzY3JfZ2V0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9nZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3NldCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLworICAgIG9mZnNldG9mKGNsYXNzbWV0aG9kLCBjbV9kaWN0KSwgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLwogICAgIGNtX2luaXQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaW5pdCAqLwogICAgIFB5VHlwZV9HZW5lcmljQWxsb2MsICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KICAgICBQeVR5cGVfR2VuZXJpY05ldywgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLwpAQCAtODY5LDYgKzg5OSw3IEBACiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgUHlPYmplY3RfSEVBRAogICAgIFB5T2JqZWN0ICpzbV9jYWxsYWJsZTsKKyAgICBQeU9iamVjdCAqc21fZGljdDsKIH0gc3RhdGljbWV0aG9kOwogCiBzdGF0aWMgdm9pZApAQCAtODc2LDYgKzkwNyw3IEBACiB7CiAgICAgX1B5T2JqZWN0X0dDX1VOVFJBQ0soKFB5T2JqZWN0ICopc20pOwogICAgIFB5X1hERUNSRUYoc20tPnNtX2NhbGxhYmxlKTsKKyAgICBQeV9YREVDUkVGKHNtLT5zbV9kaWN0KTsKICAgICBQeV9UWVBFKHNtKS0+dHBfZnJlZSgoUHlPYmplY3QgKilzbSk7CiB9CiAKQEAgLTg4Myw2ICs5MTUsNyBAQAogc21fdHJhdmVyc2Uoc3RhdGljbWV0aG9kICpzbSwgdmlzaXRwcm9jIHZpc2l0LCB2b2lkICphcmcpCiB7CiAgICAgUHlfVklTSVQoc20tPnNtX2NhbGxhYmxlKTsKKyAgICBQeV9WSVNJVChzbS0+c21fZGljdCk7CiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTg5MCw2ICs5MjMsNyBAQAogc21fY2xlYXIoc3RhdGljbWV0aG9kICpzbSkKIHsKICAgICBQeV9DTEVBUihzbS0+c21fY2FsbGFibGUpOworICAgIFB5X0NMRUFSKHNtLT5zbV9kaWN0KTsKICAgICByZXR1cm4gMDsKIH0KIApAQCAtOTI3LDYgKzk2MSwyOCBAQAogICAgIHtOVUxMfSAgLyogU2VudGluZWwgKi8KIH07CiAKK3N0YXRpYyBQeU9iamVjdCAqCitzbV9nZXRfX19pc2Fic3RyYWN0bWV0aG9kX18oc3RhdGljbWV0aG9kICpzbSwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICBpbnQgcmVzID0gX1B5T2JqZWN0X0lzQWJzdHJhY3Qoc20tPnNtX2NhbGxhYmxlKTsKKyAgICBpZiAocmVzID09IC0xKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBlbHNlIGlmIChyZXMpIHsKKyAgICAgICAgUHlfUkVUVVJOX1RSVUU7CisgICAgfQorICAgIFB5X1JFVFVSTl9GQUxTRTsKK30KKworc3RhdGljIFB5R2V0U2V0RGVmIHNtX2dldHNldGxpc3RbXSA9IHsKKyAgICB7Il9faXNhYnN0cmFjdG1ldGhvZF9fIiwKKyAgICAgKGdldHRlcilzbV9nZXRfX19pc2Fic3RyYWN0bWV0aG9kX18sIE5VTEwsCisgICAgIE5VTEwsCisgICAgIE5VTEx9LAorICAgIHsiX19kaWN0X18iLCBQeU9iamVjdF9HZW5lcmljR2V0RGljdCwgUHlPYmplY3RfR2VuZXJpY1NldERpY3QsIE5VTEwsIE5VTEx9LAorICAgIHtOVUxMfSAvKiBTZW50aW5lbCAqLworfTsKKwogUHlEb2NfU1RSVkFSKHN0YXRpY21ldGhvZF9kb2MsCiAic3RhdGljbWV0aG9kKGZ1bmN0aW9uKSAtPiBtZXRob2RcblwKIFxuXApAQCAtOTYyLDcgKzEwMTgsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCi0gICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHJvICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KICAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0JBU0VUWVBFIHwgUHlfVFBGTEFHU19IQVZFX0dDLApAQCAtOTc1LDEyICsxMDMxLDEyIEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIHNtX21lbWJlcmxpc3QsICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KKyAgICBzbV9nZXRzZXRsaXN0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdCAqLwogICAgIHNtX2Rlc2NyX2dldCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9zZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KKyAgICBvZmZzZXRvZihzdGF0aWNtZXRob2QsIHNtX2RpY3QpLCAgICAgICAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KICAgICBzbV9pbml0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2luaXQgKi8KICAgICBQeVR5cGVfR2VuZXJpY0FsbG9jLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FsbG9jICovCiAgICAgUHlUeXBlX0dlbmVyaWNOZXcsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9uZXcgKi8KZGlmZiAtLWdpdCBhL09iamVjdHMvZ2Vub2JqZWN0LmMgYi9PYmplY3RzL2dlbm9iamVjdC5jCmluZGV4IDZlMjVmMTMuLjU5N2FlZDMgMTAwNjQ0Ci0tLSBhL09iamVjdHMvZ2Vub2JqZWN0LmMKKysrIGIvT2JqZWN0cy9nZW5vYmplY3QuYwpAQCAtNSw2ICs1LDggQEAKICNpbmNsdWRlICJzdHJ1Y3RtZW1iZXIuaCIKICNpbmNsdWRlICJvcGNvZGUuaCIKIAorc3RhdGljIFB5T2JqZWN0ICpnZW5fY2xvc2UoUHlHZW5PYmplY3QgKmdlbiwgUHlPYmplY3QgKmFyZ3MpOworCiBzdGF0aWMgaW50CiBnZW5fdHJhdmVyc2UoUHlHZW5PYmplY3QgKmdlbiwgdmlzaXRwcm9jIHZpc2l0LCB2b2lkICphcmcpCiB7CkBAIC01MSw3ICs1Myw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAiZ2VuZXJhdG9yIGFscmVhZHkgZXhlY3V0aW5nIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBpZiAoZj09TlVMTCB8fCBmLT5mX3N0YWNrdG9wID09IE5VTEwpIHsKKyAgICBpZiAoZiA9PSBOVUxMIHx8IGYtPmZfc3RhY2t0b3AgPT0gTlVMTCkgewogICAgICAgICAvKiBPbmx5IHNldCBleGNlcHRpb24gaWYgY2FsbGVkIGZyb20gc2VuZCgpICovCiAgICAgICAgIGlmIChhcmcgJiYgIWV4YykKICAgICAgICAgICAgIFB5RXJyX1NldE5vbmUoUHlFeGNfU3RvcEl0ZXJhdGlvbik7CkBAIC05MCwxMiArOTIsMTkgQEAKIAogICAgIC8qIElmIHRoZSBnZW5lcmF0b3IganVzdCByZXR1cm5lZCAoYXMgb3Bwb3NlZCB0byB5aWVsZGluZyksIHNpZ25hbAogICAgICAqIHRoYXQgdGhlIGdlbmVyYXRvciBpcyBleGhhdXN0ZWQuICovCi0gICAgaWYgKHJlc3VsdCA9PSBQeV9Ob25lICYmIGYtPmZfc3RhY2t0b3AgPT0gTlVMTCkgewotICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKLSAgICAgICAgcmVzdWx0ID0gTlVMTDsKLSAgICAgICAgLyogU2V0IGV4Y2VwdGlvbiBpZiBub3QgY2FsbGVkIGJ5IGdlbl9pdGVybmV4dCgpICovCi0gICAgICAgIGlmIChhcmcpCisgICAgaWYgKHJlc3VsdCAmJiBmLT5mX3N0YWNrdG9wID09IE5VTEwpIHsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBQeV9Ob25lKSB7CisgICAgICAgICAgICAvKiBEZWxheSBleGNlcHRpb24gaW5zdGFudGlhdGlvbiBpZiB3ZSBjYW4gKi8KICAgICAgICAgICAgIFB5RXJyX1NldE5vbmUoUHlFeGNfU3RvcEl0ZXJhdGlvbik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBQeU9iamVjdCAqZSA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfU3RvcEl0ZXJhdGlvbiwgcmVzdWx0LCBOVUxMKTsKKyAgICAgICAgICAgIGlmIChlICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNfU3RvcEl0ZXJhdGlvbiwgZSk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGUpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFB5X0NMRUFSKHJlc3VsdCk7CiAgICAgfQogCiAgICAgaWYgKCFyZXN1bHQgfHwgZi0+Zl9zdGFja3RvcCA9PSBOVUxMKSB7CkBAIC0xMTEsOCArMTIwLDggQEAKICAgICAgICAgUHlfWERFQ1JFRih0KTsKICAgICAgICAgUHlfWERFQ1JFRih2KTsKICAgICAgICAgUHlfWERFQ1JFRih0Yik7Ci0gICAgICAgIFB5X0RFQ1JFRihmKTsKICAgICAgICAgZ2VuLT5naV9mcmFtZSA9IE5VTEw7CisgICAgICAgIFB5X0RFQ1JFRihmKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTIyLDggKzEzMSw4IEBACiAic2VuZChhcmcpIC0+IHNlbmQgJ2FyZycgaW50byBnZW5lcmF0b3IsXG5cCiByZXR1cm4gbmV4dCB5aWVsZGVkIHZhbHVlIG9yIHJhaXNlIFN0b3BJdGVyYXRpb24uIik7CiAKLXN0YXRpYyBQeU9iamVjdCAqCi1nZW5fc2VuZChQeUdlbk9iamVjdCAqZ2VuLCBQeU9iamVjdCAqYXJnKQorUHlPYmplY3QgKgorX1B5R2VuX1NlbmQoUHlHZW5PYmplY3QgKmdlbiwgUHlPYmplY3QgKmFyZykKIHsKICAgICByZXR1cm4gZ2VuX3NlbmRfZXgoZ2VuLCBhcmcsIDApOwogfQpAQCAtMTMxLDExICsxNDAsNzIgQEAKIFB5RG9jX1NUUlZBUihjbG9zZV9kb2MsCiAiY2xvc2UoKSAtPiByYWlzZSBHZW5lcmF0b3JFeGl0IGluc2lkZSBnZW5lcmF0b3IuIik7CiAKKy8qCisgKiAgIFRoaXMgaGVscGVyIGZ1bmN0aW9uIGlzIHVzZWQgYnkgZ2VuX2Nsb3NlIGFuZCBnZW5fdGhyb3cgdG8KKyAqICAgY2xvc2UgYSBzdWJpdGVyYXRvciBiZWluZyBkZWxlZ2F0ZWQgdG8gYnkgeWllbGQtZnJvbS4KKyAqLworCitzdGF0aWMgaW50CitnZW5fY2xvc2VfaXRlcihQeU9iamVjdCAqeWYpCit7CisgICAgUHlPYmplY3QgKnJldHZhbCA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIoY2xvc2UpOworCisgICAgaWYgKFB5R2VuX0NoZWNrRXhhY3QoeWYpKSB7CisgICAgICAgIHJldHZhbCA9IGdlbl9jbG9zZSgoUHlHZW5PYmplY3QgKil5ZiwgTlVMTCk7CisgICAgICAgIGlmIChyZXR2YWwgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICB9IGVsc2UgeworICAgICAgICBQeU9iamVjdCAqbWV0aCA9IF9QeU9iamVjdF9HZXRBdHRySWQoeWYsICZQeUlkX2Nsb3NlKTsKKyAgICAgICAgaWYgKG1ldGggPT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKCFQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0F0dHJpYnV0ZUVycm9yKSkKKyAgICAgICAgICAgICAgICBQeUVycl9Xcml0ZVVucmFpc2FibGUoeWYpOworICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHJldHZhbCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihtZXRoLCAiIik7CisgICAgICAgICAgICBQeV9ERUNSRUYobWV0aCk7CisgICAgICAgICAgICBpZiAocmV0dmFsID09IE5VTEwpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgfQorICAgIFB5X1hERUNSRUYocmV0dmFsKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2dlbl95ZihQeUdlbk9iamVjdCAqZ2VuKQoreworICAgIFB5T2JqZWN0ICp5ZiA9IE5VTEw7CisgICAgUHlGcmFtZU9iamVjdCAqZiA9IGdlbi0+Z2lfZnJhbWU7CisKKyAgICBpZiAoZikgeworICAgICAgICBQeU9iamVjdCAqYnl0ZWNvZGUgPSBmLT5mX2NvZGUtPmNvX2NvZGU7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgKmNvZGUgPSAodW5zaWduZWQgY2hhciAqKVB5Qnl0ZXNfQVNfU1RSSU5HKGJ5dGVjb2RlKTsKKworICAgICAgICBpZiAoY29kZVtmLT5mX2xhc3RpICsgMV0gIT0gWUlFTERfRlJPTSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB5ZiA9IGYtPmZfc3RhY2t0b3BbLTFdOworICAgICAgICBQeV9JTkNSRUYoeWYpOworICAgIH0KKworICAgIHJldHVybiB5ZjsKK30KKwogc3RhdGljIFB5T2JqZWN0ICoKIGdlbl9jbG9zZShQeUdlbk9iamVjdCAqZ2VuLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBQeU9iamVjdCAqcmV0dmFsOwotICAgIFB5RXJyX1NldE5vbmUoUHlFeGNfR2VuZXJhdG9yRXhpdCk7CisgICAgUHlPYmplY3QgKnlmID0gZ2VuX3lmKGdlbik7CisgICAgaW50IGVyciA9IDA7CisKKyAgICBpZiAoeWYpIHsKKyAgICAgICAgZ2VuLT5naV9ydW5uaW5nID0gMTsKKyAgICAgICAgZXJyID0gZ2VuX2Nsb3NlX2l0ZXIoeWYpOworICAgICAgICBnZW4tPmdpX3J1bm5pbmcgPSAwOworICAgICAgICBQeV9ERUNSRUYoeWYpOworICAgIH0KKyAgICBpZiAoZXJyID09IDApCisgICAgICAgIFB5RXJyX1NldE5vbmUoUHlFeGNfR2VuZXJhdG9yRXhpdCk7CiAgICAgcmV0dmFsID0gZ2VuX3NlbmRfZXgoZ2VuLCBQeV9Ob25lLCAxKTsKICAgICBpZiAocmV0dmFsKSB7CiAgICAgICAgIFB5X0RFQ1JFRihyZXR2YWwpOwpAQCAtMTQ0LDggKzIxNCw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19TdG9wSXRlcmF0aW9uKQotICAgICAgICB8fCBQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0dlbmVyYXRvckV4aXQpKQotICAgIHsKKyAgICAgICAgfHwgUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19HZW5lcmF0b3JFeGl0KSkgewogICAgICAgICBQeUVycl9DbGVhcigpOyAgICAgICAgICAvKiBpZ25vcmUgdGhlc2UgZXJyb3JzICovCiAgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKICAgICAgICAgcmV0dXJuIFB5X05vbmU7CkBAIC0xOTYsNyArMjY1LDcgQEAKICAgICAgICAgX1B5X05ld1JlZmVyZW5jZShzZWxmKTsKICAgICAgICAgc2VsZi0+b2JfcmVmY250ID0gcmVmY250OwogICAgIH0KLSAgICBhc3NlcnQoUHlUeXBlX0lTX0dDKHNlbGYtPm9iX3R5cGUpICYmCisgICAgYXNzZXJ0KFB5VHlwZV9JU19HQyhQeV9UWVBFKHNlbGYpKSAmJgogICAgICAgICAgICBfUHlfQVNfR0Moc2VsZiktPmdjLmdjX3JlZnMgIT0gX1B5R0NfUkVGU19VTlRSQUNLRUQpOwogCiAgICAgLyogSWYgUHlfUkVGX0RFQlVHLCBfUHlfTmV3UmVmZXJlbmNlIGJ1bXBlZCBfUHlfUmVmVG90YWwsIHNvCkBAIC0yMDksOCArMjc4LDggQEAKICAgICAgKiB1bmRvbmUuCiAgICAgICovCiAjaWZkZWYgQ09VTlRfQUxMT0NTCi0gICAgLS1zZWxmLT5vYl90eXBlLT50cF9mcmVlczsKLSAgICAtLXNlbGYtPm9iX3R5cGUtPnRwX2FsbG9jczsKKyAgICAtLShQeV9UWVBFKHNlbGYpLT50cF9mcmVlcyk7CisgICAgLS0oUHlfVFlQRShzZWxmKS0+dHBfYWxsb2NzKTsKICNlbmRpZgogfQogCkBAIC0yMjYsMTAgKzI5NSw2NCBAQAogICAgIFB5T2JqZWN0ICp0eXA7CiAgICAgUHlPYmplY3QgKnRiID0gTlVMTDsKICAgICBQeU9iamVjdCAqdmFsID0gTlVMTDsKKyAgICBQeU9iamVjdCAqeWYgPSBnZW5feWYoZ2VuKTsKKyAgICBfUHlfSURFTlRJRklFUih0aHJvdyk7CiAKICAgICBpZiAoIVB5QXJnX1VucGFja1R1cGxlKGFyZ3MsICJ0aHJvdyIsIDEsIDMsICZ0eXAsICZ2YWwsICZ0YikpCiAgICAgICAgIHJldHVybiBOVUxMOwogCisgICAgaWYgKHlmKSB7CisgICAgICAgIFB5T2JqZWN0ICpyZXQ7CisgICAgICAgIGludCBlcnI7CisgICAgICAgIGlmIChQeUVycl9HaXZlbkV4Y2VwdGlvbk1hdGNoZXModHlwLCBQeUV4Y19HZW5lcmF0b3JFeGl0KSkgeworICAgICAgICAgICAgZ2VuLT5naV9ydW5uaW5nID0gMTsKKyAgICAgICAgICAgIGVyciA9IGdlbl9jbG9zZV9pdGVyKHlmKTsKKyAgICAgICAgICAgIGdlbi0+Z2lfcnVubmluZyA9IDA7CisgICAgICAgICAgICBQeV9ERUNSRUYoeWYpOworICAgICAgICAgICAgaWYgKGVyciA8IDApCisgICAgICAgICAgICAgICAgcmV0dXJuIGdlbl9zZW5kX2V4KGdlbiwgUHlfTm9uZSwgMSk7CisgICAgICAgICAgICBnb3RvIHRocm93X2hlcmU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFB5R2VuX0NoZWNrRXhhY3QoeWYpKSB7CisgICAgICAgICAgICBnZW4tPmdpX3J1bm5pbmcgPSAxOworICAgICAgICAgICAgcmV0ID0gZ2VuX3Rocm93KChQeUdlbk9iamVjdCAqKXlmLCBhcmdzKTsKKyAgICAgICAgICAgIGdlbi0+Z2lfcnVubmluZyA9IDA7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBQeU9iamVjdCAqbWV0aCA9IF9QeU9iamVjdF9HZXRBdHRySWQoeWYsICZQeUlkX3Rocm93KTsKKyAgICAgICAgICAgIGlmIChtZXRoID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBpZiAoIVB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKSB7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih5Zik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih5Zik7CisgICAgICAgICAgICAgICAgZ290byB0aHJvd19oZXJlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZ2VuLT5naV9ydW5uaW5nID0gMTsKKyAgICAgICAgICAgIHJldCA9IFB5T2JqZWN0X0NhbGxPYmplY3QobWV0aCwgYXJncyk7CisgICAgICAgICAgICBnZW4tPmdpX3J1bm5pbmcgPSAwOworICAgICAgICAgICAgUHlfREVDUkVGKG1ldGgpOworICAgICAgICB9CisgICAgICAgIFB5X0RFQ1JFRih5Zik7CisgICAgICAgIGlmICghcmV0KSB7CisgICAgICAgICAgICBQeU9iamVjdCAqdmFsOworICAgICAgICAgICAgLyogUG9wIHN1Yml0ZXJhdG9yIGZyb20gc3RhY2sgKi8KKyAgICAgICAgICAgIHJldCA9ICooLS1nZW4tPmdpX2ZyYW1lLT5mX3N0YWNrdG9wKTsKKyAgICAgICAgICAgIGFzc2VydChyZXQgPT0geWYpOworICAgICAgICAgICAgUHlfREVDUkVGKHJldCk7CisgICAgICAgICAgICAvKiBUZXJtaW5hdGlvbiByZXBldGl0aW9uIG9mIFlJRUxEX0ZST00gKi8KKyAgICAgICAgICAgIGdlbi0+Z2lfZnJhbWUtPmZfbGFzdGkrKzsKKyAgICAgICAgICAgIGlmIChfUHlHZW5fRmV0Y2hTdG9wSXRlcmF0aW9uVmFsdWUoJnZhbCkgPT0gMCkgeworICAgICAgICAgICAgICAgIHJldCA9IGdlbl9zZW5kX2V4KGdlbiwgdmFsLCAwKTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmV0ID0gZ2VuX3NlbmRfZXgoZ2VuLCBQeV9Ob25lLCAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKwordGhyb3dfaGVyZToKICAgICAvKiBGaXJzdCwgY2hlY2sgdGhlIHRyYWNlYmFjayBhcmd1bWVudCwgcmVwbGFjaW5nIE5vbmUgd2l0aAogICAgICAgIE5VTEwuICovCiAgICAgaWYgKHRiID09IFB5X05vbmUpIHsKQEAgLTI3Miw3ICszOTUsNyBAQAogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgImV4Y2VwdGlvbnMgbXVzdCBiZSBjbGFzc2VzIG9yIGluc3RhbmNlcyAiCiAgICAgICAgICAgICAgICAgICAgICAiZGVyaXZpbmcgZnJvbSBCYXNlRXhjZXB0aW9uLCBub3QgJXMiLAotICAgICAgICAgICAgICAgICAgICAgdHlwLT5vYl90eXBlLT50cF9uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgIFB5X1RZUEUodHlwKS0+dHBfbmFtZSk7CiAgICAgICAgICAgICBnb3RvIGZhaWxlZF90aHJvdzsKICAgICB9CiAKQEAgLTI5MSw5ICs0MTQsNDYgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBnZW5faXRlcm5leHQoUHlHZW5PYmplY3QgKmdlbikKIHsKLSAgICByZXR1cm4gZ2VuX3NlbmRfZXgoZ2VuLCBOVUxMLCAwKTsKKyAgICBQeU9iamVjdCAqdmFsID0gTlVMTDsKKyAgICBQeU9iamVjdCAqcmV0OworICAgIHJldCA9IGdlbl9zZW5kX2V4KGdlbiwgdmFsLCAwKTsKKyAgICBQeV9YREVDUkVGKHZhbCk7CisgICAgcmV0dXJuIHJldDsKIH0KIAorLyoKKyAqICAgSWYgU3RvcEl0ZXJhdGlvbiBleGNlcHRpb24gaXMgc2V0LCBmZXRjaGVzIGl0cyAndmFsdWUnCisgKiAgIGF0dHJpYnV0ZSBpZiBhbnksIG90aGVyd2lzZSBzZXRzIHB2YWx1ZSB0byBOb25lLgorICoKKyAqICAgUmV0dXJucyAwIGlmIG5vIGV4Y2VwdGlvbiBvciBTdG9wSXRlcmF0aW9uIGlzIHNldC4KKyAqICAgSWYgYW55IG90aGVyIGV4Y2VwdGlvbiBpcyBzZXQsIHJldHVybnMgLTEgYW5kIGxlYXZlcworICogICBwdmFsdWUgdW5jaGFuZ2VkLgorICovCisKK2ludAorX1B5R2VuX0ZldGNoU3RvcEl0ZXJhdGlvblZhbHVlKFB5T2JqZWN0ICoqcHZhbHVlKSB7CisgICAgUHlPYmplY3QgKmV0LCAqZXYsICp0YjsKKyAgICBQeU9iamVjdCAqdmFsdWUgPSBOVUxMOworCisgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfU3RvcEl0ZXJhdGlvbikpIHsKKyAgICAgICAgUHlFcnJfRmV0Y2goJmV0LCAmZXYsICZ0Yik7CisgICAgICAgIFB5X1hERUNSRUYoZXQpOworICAgICAgICBQeV9YREVDUkVGKHRiKTsKKyAgICAgICAgaWYgKGV2KSB7CisgICAgICAgICAgICB2YWx1ZSA9ICgoUHlTdG9wSXRlcmF0aW9uT2JqZWN0ICopZXYpLT52YWx1ZTsKKyAgICAgICAgICAgIFB5X0lOQ1JFRih2YWx1ZSk7CisgICAgICAgICAgICBQeV9ERUNSRUYoZXYpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKKyAgICAgICAgdmFsdWUgPSBQeV9Ob25lOworICAgICAgICBQeV9JTkNSRUYodmFsdWUpOworICAgIH0KKyAgICAqcHZhbHVlID0gdmFsdWU7CisgICAgcmV0dXJuIDA7Cit9CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBnZW5fcmVwcihQeUdlbk9iamVjdCAqZ2VuKQpAQCAtMzI0LDEzICs0ODQsMTMgQEAKIAogc3RhdGljIFB5TWVtYmVyRGVmIGdlbl9tZW1iZXJsaXN0W10gPSB7CiAgICAgeyJnaV9mcmFtZSIsICAgICAgICBUX09CSkVDVCwgb2Zmc2V0b2YoUHlHZW5PYmplY3QsIGdpX2ZyYW1lKSwgICAgICBSRUFET05MWX0sCi0gICAgeyJnaV9ydW5uaW5nIiwgICAgICBUX0lOVCwgICAgb2Zmc2V0b2YoUHlHZW5PYmplY3QsIGdpX3J1bm5pbmcpLCAgICBSRUFET05MWX0sCisgICAgeyJnaV9ydW5uaW5nIiwgICAgICBUX0JPT0wsICAgIG9mZnNldG9mKFB5R2VuT2JqZWN0LCBnaV9ydW5uaW5nKSwgICAgUkVBRE9OTFl9LAogICAgIHsiZ2lfY29kZSIsICAgICBUX09CSkVDVCwgb2Zmc2V0b2YoUHlHZW5PYmplY3QsIGdpX2NvZGUpLCAgUkVBRE9OTFl9LAogICAgIHtOVUxMfSAgICAgIC8qIFNlbnRpbmVsICovCiB9OwogCiBzdGF0aWMgUHlNZXRob2REZWYgZ2VuX21ldGhvZHNbXSA9IHsKLSAgICB7InNlbmQiLChQeUNGdW5jdGlvbilnZW5fc2VuZCwgTUVUSF9PLCBzZW5kX2RvY30sCisgICAgeyJzZW5kIiwoUHlDRnVuY3Rpb24pX1B5R2VuX1NlbmQsIE1FVEhfTywgc2VuZF9kb2N9LAogICAgIHsidGhyb3ciLChQeUNGdW5jdGlvbilnZW5fdGhyb3csIE1FVEhfVkFSQVJHUywgdGhyb3dfZG9jfSwKICAgICB7ImNsb3NlIiwoUHlDRnVuY3Rpb24pZ2VuX2Nsb3NlLCBNRVRIX05PQVJHUywgY2xvc2VfZG9jfSwKICAgICB7TlVMTCwgTlVMTH0gICAgICAgIC8qIFNlbnRpbmVsICovCkBAIC00MTAsMTUgKzU3MCwxMyBAQAogICAgIGludCBpOwogICAgIFB5RnJhbWVPYmplY3QgKmYgPSBnZW4tPmdpX2ZyYW1lOwogCi0gICAgaWYgKGYgPT0gTlVMTCB8fCBmLT5mX3N0YWNrdG9wID09IE5VTEwgfHwgZi0+Zl9pYmxvY2sgPD0gMCkKKyAgICBpZiAoZiA9PSBOVUxMIHx8IGYtPmZfc3RhY2t0b3AgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIDA7IC8qIG5vIGZyYW1lIG9yIGVtcHR5IGJsb2Nrc3RhY2sgPT0gbm8gZmluYWxpemF0aW9uICovCiAKICAgICAvKiBBbnkgYmxvY2sgdHlwZSBiZXNpZGVzIGEgbG9vcCByZXF1aXJlcyBjbGVhbnVwLiAqLwotICAgIGkgPSBmLT5mX2libG9jazsKLSAgICB3aGlsZSAoLS1pID49IDApIHsKKyAgICBmb3IgKGkgPSAwOyBpIDwgZi0+Zl9pYmxvY2s7IGkrKykKICAgICAgICAgaWYgKGYtPmZfYmxvY2tzdGFja1tpXS5iX3R5cGUgIT0gU0VUVVBfTE9PUCkKICAgICAgICAgICAgIHJldHVybiAxOwotICAgIH0KIAogICAgIC8qIE5vIGJsb2NrcyBleGNlcHQgbG9vcHMsIGl0J3Mgc2FmZSB0byBza2lwIGZpbmFsaXphdGlvbi4gKi8KICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL09iamVjdHMvaXRlcm9iamVjdC5jIGIvT2JqZWN0cy9pdGVyb2JqZWN0LmMKaW5kZXggOTFhOTNmNS4uM2NmYmVhZiAxMDA2NDQKLS0tIGEvT2JqZWN0cy9pdGVyb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9pdGVyb2JqZWN0LmMKQEAgLTg4LDggKzg4LDM4IEBACiAKIFB5RG9jX1NUUlZBUihsZW5ndGhfaGludF9kb2MsICJQcml2YXRlIG1ldGhvZCByZXR1cm5pbmcgYW4gZXN0aW1hdGUgb2YgbGVuKGxpc3QoaXQpKS4iKTsKIAorc3RhdGljIFB5T2JqZWN0ICoKK2l0ZXJfcmVkdWNlKHNlcWl0ZXJvYmplY3QgKml0KQoreworICAgIGlmIChpdC0+aXRfc2VxICE9IE5VTEwpCisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJOKE8pbiIsIF9QeU9iamVjdF9HZXRCdWlsdGluKCJpdGVyIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0LT5pdF9zZXEsIGl0LT5pdF9pbmRleCk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTigoKSkiLCBfUHlPYmplY3RfR2V0QnVpbHRpbigiaXRlciIpKTsKK30KKworUHlEb2NfU1RSVkFSKHJlZHVjZV9kb2MsICJSZXR1cm4gc3RhdGUgaW5mb3JtYXRpb24gZm9yIHBpY2tsaW5nLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgoraXRlcl9zZXRzdGF0ZShzZXFpdGVyb2JqZWN0ICppdCwgUHlPYmplY3QgKnN0YXRlKQoreworICAgIFB5X3NzaXplX3QgaW5kZXggPSBQeUxvbmdfQXNTc2l6ZV90KHN0YXRlKTsKKyAgICBpZiAoaW5kZXggPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKGl0LT5pdF9zZXEgIT0gTlVMTCkgeworICAgICAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICBpdC0+aXRfaW5kZXggPSBpbmRleDsKKyAgICB9CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihzZXRzdGF0ZV9kb2MsICJTZXQgc3RhdGUgaW5mb3JtYXRpb24gZm9yIHVucGlja2xpbmcuIik7CisKIHN0YXRpYyBQeU1ldGhvZERlZiBzZXFpdGVyX21ldGhvZHNbXSA9IHsKICAgICB7Il9fbGVuZ3RoX2hpbnRfXyIsIChQeUNGdW5jdGlvbilpdGVyX2xlbiwgTUVUSF9OT0FSR1MsIGxlbmd0aF9oaW50X2RvY30sCisgICAgeyJfX3JlZHVjZV9fIiwgKFB5Q0Z1bmN0aW9uKWl0ZXJfcmVkdWNlLCBNRVRIX05PQVJHUywgcmVkdWNlX2RvY30sCisgICAgeyJfX3NldHN0YXRlX18iLCAoUHlDRnVuY3Rpb24paXRlcl9zZXRzdGF0ZSwgTUVUSF9PLCBzZXRzdGF0ZV9kb2N9LAogICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCiB9OwogCkBAIC0xOTUsNiArMjI1LDIxIEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitjYWxsaXRlcl9yZWR1Y2UoY2FsbGl0ZXJvYmplY3QgKml0KQoreworICAgIGlmIChpdC0+aXRfY2FsbGFibGUgIT0gTlVMTCAmJiBpdC0+aXRfc2VudGluZWwgIT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk4oT08pIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oIml0ZXIiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQtPml0X2NhbGxhYmxlLCBpdC0+aXRfc2VudGluZWwpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk4oKCkpIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oIml0ZXIiKSk7Cit9CisKK3N0YXRpYyBQeU1ldGhvZERlZiBjYWxsaXRlcl9tZXRob2RzW10gPSB7CisgICAgeyJfX3JlZHVjZV9fIiwgKFB5Q0Z1bmN0aW9uKWNhbGxpdGVyX3JlZHVjZSwgTUVUSF9OT0FSR1MsIHJlZHVjZV9kb2N9LAorICAgIHtOVUxMLCAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCit9OworCiBQeVR5cGVPYmplY3QgUHlDYWxsSXRlcl9UeXBlID0gewogICAgIFB5VmFyT2JqZWN0X0hFQURfSU5JVCgmUHlUeXBlX1R5cGUsIDApCiAgICAgImNhbGxhYmxlX2l0ZXJhdG9yIiwgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9uYW1lICovCkBAIC0yMjQsNyArMjY5LDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCiAgICAgKGl0ZXJuZXh0ZnVuYyljYWxsaXRlcl9pdGVybmV4dCwgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIGNhbGxpdGVyX21ldGhvZHMsICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogfTsKIAogCmRpZmYgLS1naXQgYS9PYmplY3RzL2xpc3RvYmplY3QuYyBiL09iamVjdHMvbGlzdG9iamVjdC5jCmluZGV4IGI5ZWYwZDAuLjZlMGQwOTQgMTAwNjQ0Ci0tLSBhL09iamVjdHMvbGlzdG9iamVjdC5jCisrKyBiL09iamVjdHMvbGlzdG9iamVjdC5jCkBAIC05OCwxNiArOTgsMzIgQEAKIHN0YXRpYyBQeUxpc3RPYmplY3QgKmZyZWVfbGlzdFtQeUxpc3RfTUFYRlJFRUxJU1RdOwogc3RhdGljIGludCBudW1mcmVlID0gMDsKIAotdm9pZAotUHlMaXN0X0Zpbmkodm9pZCkKK2ludAorUHlMaXN0X0NsZWFyRnJlZUxpc3Qodm9pZCkKIHsKICAgICBQeUxpc3RPYmplY3QgKm9wOwotCisgICAgaW50IHJldCA9IG51bWZyZWU7CiAgICAgd2hpbGUgKG51bWZyZWUpIHsKICAgICAgICAgb3AgPSBmcmVlX2xpc3RbLS1udW1mcmVlXTsKICAgICAgICAgYXNzZXJ0KFB5TGlzdF9DaGVja0V4YWN0KG9wKSk7CiAgICAgICAgIFB5T2JqZWN0X0dDX0RlbChvcCk7CiAgICAgfQorICAgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQKK1B5TGlzdF9GaW5pKHZvaWQpCit7CisgICAgUHlMaXN0X0NsZWFyRnJlZUxpc3QoKTsKK30KKworLyogUHJpbnQgc3VtbWFyeSBpbmZvIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGUgb3B0aW1pemVkIGFsbG9jYXRvciAqLwordm9pZAorX1B5TGlzdF9EZWJ1Z01hbGxvY1N0YXRzKEZJTEUgKm91dCkKK3sKKyAgICBfUHlEZWJ1Z0FsbG9jYXRvclN0YXRzKG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcmVlIFB5TGlzdE9iamVjdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1mcmVlLCBzaXplb2YoUHlMaXN0T2JqZWN0KSk7CiB9CiAKIFB5T2JqZWN0ICoKQEAgLTczNyw2ICs3NTMsMTkgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKK2xpc3RjbGVhcihQeUxpc3RPYmplY3QgKnNlbGYpCit7CisgICAgbGlzdF9jbGVhcihzZWxmKTsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK2xpc3Rjb3B5KFB5TGlzdE9iamVjdCAqc2VsZikKK3sKKyAgICByZXR1cm4gbGlzdF9zbGljZShzZWxmLCAwLCBQeV9TSVpFKHNlbGYpKTsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKIGxpc3RhcHBlbmQoUHlMaXN0T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdikKIHsKICAgICBpZiAoYXBwMShzZWxmLCB2KSA9PSAwKQpAQCAtMjEwOSw4ICsyMTM4LDcgQEAKIGxpc3RpbmRleChQeUxpc3RPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIFB5X3NzaXplX3QgaSwgc3RhcnQ9MCwgc3RvcD1QeV9TSVpFKHNlbGYpOwotICAgIFB5T2JqZWN0ICp2LCAqZm9ybWF0X3R1cGxlLCAqZXJyX3N0cmluZzsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmVycl9mb3JtYXQgPSBOVUxMOworICAgIFB5T2JqZWN0ICp2OwogCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPfE8mTyY6aW5kZXgiLCAmdiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1B5RXZhbF9TbGljZUluZGV4LCAmc3RhcnQsCkBAIC0yMTMzLDIwICsyMTYxLDcgQEAKICAgICAgICAgZWxzZSBpZiAoY21wIDwgMCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBpZiAoZXJyX2Zvcm1hdCA9PSBOVUxMKSB7Ci0gICAgICAgIGVycl9mb3JtYXQgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiJXIgaXMgbm90IGluIGxpc3QiKTsKLSAgICAgICAgaWYgKGVycl9mb3JtYXQgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBmb3JtYXRfdHVwbGUgPSBQeVR1cGxlX1BhY2soMSwgdik7Ci0gICAgaWYgKGZvcm1hdF90dXBsZSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBlcnJfc3RyaW5nID0gUHlVbmljb2RlX0Zvcm1hdChlcnJfZm9ybWF0LCBmb3JtYXRfdHVwbGUpOwotICAgIFB5X0RFQ1JFRihmb3JtYXRfdHVwbGUpOwotICAgIGlmIChlcnJfc3RyaW5nID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIFB5RXJyX1NldE9iamVjdChQeUV4Y19WYWx1ZUVycm9yLCBlcnJfc3RyaW5nKTsKLSAgICBQeV9ERUNSRUYoZXJyX3N0cmluZyk7CisgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsICIlUiBpcyBub3QgaW4gbGlzdCIsIHYpOwogICAgIHJldHVybiBOVUxMOwogfQogCkBAIC0yMjAyLDEwICsyMjE3LDggQEAKICAgICBQeUxpc3RPYmplY3QgKnZsLCAqd2w7CiAgICAgUHlfc3NpemVfdCBpOwogCi0gICAgaWYgKCFQeUxpc3RfQ2hlY2sodikgfHwgIVB5TGlzdF9DaGVjayh3KSkgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7Ci0gICAgfQorICAgIGlmICghUHlMaXN0X0NoZWNrKHYpIHx8ICFQeUxpc3RfQ2hlY2sodykpCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKIAogICAgIHZsID0gKFB5TGlzdE9iamVjdCAqKXY7CiAgICAgd2wgPSAoUHlMaXN0T2JqZWN0ICopdzsKQEAgLTIzMTQsMTcgKzIzMjcsMjEgQEAKICJMLl9fcmV2ZXJzZWRfXygpIC0tIHJldHVybiBhIHJldmVyc2UgaXRlcmF0b3Igb3ZlciB0aGUgbGlzdCIpOwogUHlEb2NfU1RSVkFSKHNpemVvZl9kb2MsCiAiTC5fX3NpemVvZl9fKCkgLS0gc2l6ZSBvZiBMIGluIG1lbW9yeSwgaW4gYnl0ZXMiKTsKK1B5RG9jX1NUUlZBUihjbGVhcl9kb2MsCisiTC5jbGVhcigpIC0+IE5vbmUgLS0gcmVtb3ZlIGFsbCBpdGVtcyBmcm9tIEwiKTsKK1B5RG9jX1NUUlZBUihjb3B5X2RvYywKKyJMLmNvcHkoKSAtPiBsaXN0IC0tIGEgc2hhbGxvdyBjb3B5IG9mIEwiKTsKIFB5RG9jX1NUUlZBUihhcHBlbmRfZG9jLAotIkwuYXBwZW5kKG9iamVjdCkgLS0gYXBwZW5kIG9iamVjdCB0byBlbmQiKTsKKyJMLmFwcGVuZChvYmplY3QpIC0+IE5vbmUgLS0gYXBwZW5kIG9iamVjdCB0byBlbmQiKTsKIFB5RG9jX1NUUlZBUihleHRlbmRfZG9jLAotIkwuZXh0ZW5kKGl0ZXJhYmxlKSAtLSBleHRlbmQgbGlzdCBieSBhcHBlbmRpbmcgZWxlbWVudHMgZnJvbSB0aGUgaXRlcmFibGUiKTsKKyJMLmV4dGVuZChpdGVyYWJsZSkgLT4gTm9uZSAtLSBleHRlbmQgbGlzdCBieSBhcHBlbmRpbmcgZWxlbWVudHMgZnJvbSB0aGUgaXRlcmFibGUiKTsKIFB5RG9jX1NUUlZBUihpbnNlcnRfZG9jLAogIkwuaW5zZXJ0KGluZGV4LCBvYmplY3QpIC0tIGluc2VydCBvYmplY3QgYmVmb3JlIGluZGV4Iik7CiBQeURvY19TVFJWQVIocG9wX2RvYywKICJMLnBvcChbaW5kZXhdKSAtPiBpdGVtIC0tIHJlbW92ZSBhbmQgcmV0dXJuIGl0ZW0gYXQgaW5kZXggKGRlZmF1bHQgbGFzdCkuXG4iCiAiUmFpc2VzIEluZGV4RXJyb3IgaWYgbGlzdCBpcyBlbXB0eSBvciBpbmRleCBpcyBvdXQgb2YgcmFuZ2UuIik7CiBQeURvY19TVFJWQVIocmVtb3ZlX2RvYywKLSJMLnJlbW92ZSh2YWx1ZSkgLS0gcmVtb3ZlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdmFsdWUuXG4iCisiTC5yZW1vdmUodmFsdWUpIC0+IE5vbmUgLS0gcmVtb3ZlIGZpcnN0IG9jY3VycmVuY2Ugb2YgdmFsdWUuXG4iCiAiUmFpc2VzIFZhbHVlRXJyb3IgaWYgdGhlIHZhbHVlIGlzIG5vdCBwcmVzZW50LiIpOwogUHlEb2NfU1RSVkFSKGluZGV4X2RvYywKICJMLmluZGV4KHZhbHVlLCBbc3RhcnQsIFtzdG9wXV0pIC0+IGludGVnZXIgLS0gcmV0dXJuIGZpcnN0IGluZGV4IG9mIHZhbHVlLlxuIgpAQCAtMjMzNCw3ICsyMzUxLDcgQEAKIFB5RG9jX1NUUlZBUihyZXZlcnNlX2RvYywKICJMLnJldmVyc2UoKSAtLSByZXZlcnNlICpJTiBQTEFDRSoiKTsKIFB5RG9jX1NUUlZBUihzb3J0X2RvYywKLSJMLnNvcnQoa2V5PU5vbmUsIHJldmVyc2U9RmFsc2UpIC0tIHN0YWJsZSBzb3J0ICpJTiBQTEFDRSoiKTsKKyJMLnNvcnQoa2V5PU5vbmUsIHJldmVyc2U9RmFsc2UpIC0+IE5vbmUgLS0gc3RhYmxlIHNvcnQgKklOIFBMQUNFKiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKmxpc3Rfc3Vic2NyaXB0KFB5TGlzdE9iamVjdCosIFB5T2JqZWN0Kik7CiAKQEAgLTIzNDIsOSArMjM1OSwxMSBAQAogICAgIHsiX19nZXRpdGVtX18iLCAoUHlDRnVuY3Rpb24pbGlzdF9zdWJzY3JpcHQsIE1FVEhfT3xNRVRIX0NPRVhJU1QsIGdldGl0ZW1fZG9jfSwKICAgICB7Il9fcmV2ZXJzZWRfXyIsKFB5Q0Z1bmN0aW9uKWxpc3RfcmV2ZXJzZWQsIE1FVEhfTk9BUkdTLCByZXZlcnNlZF9kb2N9LAogICAgIHsiX19zaXplb2ZfXyIsICAoUHlDRnVuY3Rpb24pbGlzdF9zaXplb2YsIE1FVEhfTk9BUkdTLCBzaXplb2ZfZG9jfSwKKyAgICB7ImNsZWFyIiwgICAgICAgICAgIChQeUNGdW5jdGlvbilsaXN0Y2xlYXIsICAgTUVUSF9OT0FSR1MsIGNsZWFyX2RvY30sCisgICAgeyJjb3B5IiwgICAgICAgICAgICAoUHlDRnVuY3Rpb24pbGlzdGNvcHksICAgTUVUSF9OT0FSR1MsIGNvcHlfZG9jfSwKICAgICB7ImFwcGVuZCIsICAgICAgICAgIChQeUNGdW5jdGlvbilsaXN0YXBwZW5kLCAgTUVUSF9PLCBhcHBlbmRfZG9jfSwKICAgICB7Imluc2VydCIsICAgICAgICAgIChQeUNGdW5jdGlvbilsaXN0aW5zZXJ0LCAgTUVUSF9WQVJBUkdTLCBpbnNlcnRfZG9jfSwKLSAgICB7ImV4dGVuZCIsICAgICAgKFB5Q0Z1bmN0aW9uKWxpc3RleHRlbmQsICBNRVRIX08sIGV4dGVuZF9kb2N9LAorICAgIHsiZXh0ZW5kIiwgICAgICAgICAgKFB5Q0Z1bmN0aW9uKWxpc3RleHRlbmQsICBNRVRIX08sIGV4dGVuZF9kb2N9LAogICAgIHsicG9wIiwgICAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKWxpc3Rwb3AsICAgICBNRVRIX1ZBUkFSR1MsIHBvcF9kb2N9LAogICAgIHsicmVtb3ZlIiwgICAgICAgICAgKFB5Q0Z1bmN0aW9uKWxpc3RyZW1vdmUsICBNRVRIX08sIHJlbW92ZV9kb2N9LAogICAgIHsiaW5kZXgiLCAgICAgICAgICAgKFB5Q0Z1bmN0aW9uKWxpc3RpbmRleCwgICBNRVRIX1ZBUkFSR1MsIGluZGV4X2RvY30sCkBAIC0yNDA3LDcgKzI0MjYsNyBAQAogICAgICAgICAgICAgc3JjID0gc2VsZi0+b2JfaXRlbTsKICAgICAgICAgICAgIGRlc3QgPSAoKFB5TGlzdE9iamVjdCAqKXJlc3VsdCktPm9iX2l0ZW07CiAgICAgICAgICAgICBmb3IgKGN1ciA9IHN0YXJ0LCBpID0gMDsgaSA8IHNsaWNlbGVuZ3RoOwotICAgICAgICAgICAgICAgICBjdXIgKz0gc3RlcCwgaSsrKSB7CisgICAgICAgICAgICAgICAgIGN1ciArPSAoc2l6ZV90KXN0ZXAsIGkrKykgewogICAgICAgICAgICAgICAgIGl0ID0gc3JjW2N1cl07CiAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKGl0KTsKICAgICAgICAgICAgICAgICBkZXN0W2ldID0gaXQ7CkBAIC0yNDk4LDcgKzI1MTcsNyBAQAogICAgICAgICAgICAgICAgICAgICBzZWxmLT5vYl9pdGVtICsgY3VyICsgMSwKICAgICAgICAgICAgICAgICAgICAgbGltICogc2l6ZW9mKFB5T2JqZWN0ICopKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGN1ciA9IHN0YXJ0ICsgc2xpY2VsZW5ndGgqc3RlcDsKKyAgICAgICAgICAgIGN1ciA9IHN0YXJ0ICsgKHNpemVfdClzbGljZWxlbmd0aCAqIHN0ZXA7CiAgICAgICAgICAgICBpZiAoY3VyIDwgKHNpemVfdClQeV9TSVpFKHNlbGYpKSB7CiAgICAgICAgICAgICAgICAgbWVtbW92ZShzZWxmLT5vYl9pdGVtICsgY3VyIC0gc2xpY2VsZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgIHNlbGYtPm9iX2l0ZW0gKyBjdXIsCkBAIC0yNTYyLDcgKzI1ODEsNyBAQAogICAgICAgICAgICAgc2VsZml0ZW1zID0gc2VsZi0+b2JfaXRlbTsKICAgICAgICAgICAgIHNlcWl0ZW1zID0gUHlTZXF1ZW5jZV9GYXN0X0lURU1TKHNlcSk7CiAgICAgICAgICAgICBmb3IgKGN1ciA9IHN0YXJ0LCBpID0gMDsgaSA8IHNsaWNlbGVuZ3RoOwotICAgICAgICAgICAgICAgICBjdXIgKz0gc3RlcCwgaSsrKSB7CisgICAgICAgICAgICAgICAgIGN1ciArPSAoc2l6ZV90KXN0ZXAsIGkrKykgewogICAgICAgICAgICAgICAgIGdhcmJhZ2VbaV0gPSBzZWxmaXRlbXNbY3VyXTsKICAgICAgICAgICAgICAgICBpbnMgPSBzZXFpdGVtc1tpXTsKICAgICAgICAgICAgICAgICBQeV9JTkNSRUYoaW5zKTsKQEAgLTI2NTAsMTEgKzI2NjksMTggQEAKIHN0YXRpYyBpbnQgbGlzdGl0ZXJfdHJhdmVyc2UobGlzdGl0ZXJvYmplY3QgKiwgdmlzaXRwcm9jLCB2b2lkICopOwogc3RhdGljIFB5T2JqZWN0ICpsaXN0aXRlcl9uZXh0KGxpc3RpdGVyb2JqZWN0ICopOwogc3RhdGljIFB5T2JqZWN0ICpsaXN0aXRlcl9sZW4obGlzdGl0ZXJvYmplY3QgKik7CitzdGF0aWMgUHlPYmplY3QgKmxpc3RpdGVyX3JlZHVjZV9nZW5lcmFsKHZvaWQgKl9pdCwgaW50IGZvcndhcmQpOworc3RhdGljIFB5T2JqZWN0ICpsaXN0aXRlcl9yZWR1Y2UobGlzdGl0ZXJvYmplY3QgKik7CitzdGF0aWMgUHlPYmplY3QgKmxpc3RpdGVyX3NldHN0YXRlKGxpc3RpdGVyb2JqZWN0ICosIFB5T2JqZWN0ICpzdGF0ZSk7CiAKIFB5RG9jX1NUUlZBUihsZW5ndGhfaGludF9kb2MsICJQcml2YXRlIG1ldGhvZCByZXR1cm5pbmcgYW4gZXN0aW1hdGUgb2YgbGVuKGxpc3QoaXQpKS4iKTsKK1B5RG9jX1NUUlZBUihyZWR1Y2VfZG9jLCAiUmV0dXJuIHN0YXRlIGluZm9ybWF0aW9uIGZvciBwaWNrbGluZy4iKTsKK1B5RG9jX1NUUlZBUihzZXRzdGF0ZV9kb2MsICJTZXQgc3RhdGUgaW5mb3JtYXRpb24gZm9yIHVucGlja2xpbmcuIik7CiAKIHN0YXRpYyBQeU1ldGhvZERlZiBsaXN0aXRlcl9tZXRob2RzW10gPSB7CiAgICAgeyJfX2xlbmd0aF9oaW50X18iLCAoUHlDRnVuY3Rpb24pbGlzdGl0ZXJfbGVuLCBNRVRIX05PQVJHUywgbGVuZ3RoX2hpbnRfZG9jfSwKKyAgICB7Il9fcmVkdWNlX18iLCAoUHlDRnVuY3Rpb24pbGlzdGl0ZXJfcmVkdWNlLCBNRVRIX05PQVJHUywgcmVkdWNlX2RvY30sCisgICAgeyJfX3NldHN0YXRlX18iLCAoUHlDRnVuY3Rpb24pbGlzdGl0ZXJfc2V0c3RhdGUsIE1FVEhfTywgc2V0c3RhdGVfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwogfTsKIApAQCAtMjc2MSw2ICsyNzg3LDI3IEBACiAgICAgfQogICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoMCk7CiB9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaXN0aXRlcl9yZWR1Y2UobGlzdGl0ZXJvYmplY3QgKml0KQoreworICAgIHJldHVybiBsaXN0aXRlcl9yZWR1Y2VfZ2VuZXJhbChpdCwgMSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsaXN0aXRlcl9zZXRzdGF0ZShsaXN0aXRlcm9iamVjdCAqaXQsIFB5T2JqZWN0ICpzdGF0ZSkKK3sKKyAgICBsb25nIGluZGV4ID0gUHlMb25nX0FzTG9uZyhzdGF0ZSk7CisgICAgaWYgKGluZGV4ID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChpdC0+aXRfc2VxICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgICAgIGluZGV4ID0gMDsKKyAgICAgICAgaXQtPml0X2luZGV4ID0gaW5kZXg7CisgICAgfQorICAgIFB5X1JFVFVSTl9OT05FOworfQorCiAvKioqKioqKioqKioqKioqKioqKioqKiogTGlzdCBSZXZlcnNlIEl0ZXJhdG9yICoqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiB0eXBlZGVmIHN0cnVjdCB7CkBAIC0yNzc0LDkgKzI4MjEsMTMgQEAKIHN0YXRpYyBpbnQgbGlzdHJldml0ZXJfdHJhdmVyc2UobGlzdHJldml0ZXJvYmplY3QgKiwgdmlzaXRwcm9jLCB2b2lkICopOwogc3RhdGljIFB5T2JqZWN0ICpsaXN0cmV2aXRlcl9uZXh0KGxpc3RyZXZpdGVyb2JqZWN0ICopOwogc3RhdGljIFB5T2JqZWN0ICpsaXN0cmV2aXRlcl9sZW4obGlzdHJldml0ZXJvYmplY3QgKik7CitzdGF0aWMgUHlPYmplY3QgKmxpc3RyZXZpdGVyX3JlZHVjZShsaXN0cmV2aXRlcm9iamVjdCAqKTsKK3N0YXRpYyBQeU9iamVjdCAqbGlzdHJldml0ZXJfc2V0c3RhdGUobGlzdHJldml0ZXJvYmplY3QgKiwgUHlPYmplY3QgKik7CiAKIHN0YXRpYyBQeU1ldGhvZERlZiBsaXN0cmV2aXRlcl9tZXRob2RzW10gPSB7CiAgICAgeyJfX2xlbmd0aF9oaW50X18iLCAoUHlDRnVuY3Rpb24pbGlzdHJldml0ZXJfbGVuLCBNRVRIX05PQVJHUywgbGVuZ3RoX2hpbnRfZG9jfSwKKyAgICB7Il9fcmVkdWNlX18iLCAoUHlDRnVuY3Rpb24pbGlzdHJldml0ZXJfcmVkdWNlLCBNRVRIX05PQVJHUywgcmVkdWNlX2RvY30sCisgICAgeyJfX3NldHN0YXRlX18iLCAoUHlDRnVuY3Rpb24pbGlzdHJldml0ZXJfc2V0c3RhdGUsIE1FVEhfTywgc2V0c3RhdGVfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwogfTsKIApAQCAtMjg3MywzICsyOTI0LDUxIEBACiAgICAgICAgIGxlbiA9IDA7CiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChsZW4pOwogfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlzdHJldml0ZXJfcmVkdWNlKGxpc3RyZXZpdGVyb2JqZWN0ICppdCkKK3sKKyAgICByZXR1cm4gbGlzdGl0ZXJfcmVkdWNlX2dlbmVyYWwoaXQsIDApOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbGlzdHJldml0ZXJfc2V0c3RhdGUobGlzdHJldml0ZXJvYmplY3QgKml0LCBQeU9iamVjdCAqc3RhdGUpCit7CisgICAgUHlfc3NpemVfdCBpbmRleCA9IFB5TG9uZ19Bc1NzaXplX3Qoc3RhdGUpOworICAgIGlmIChpbmRleCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoaXQtPml0X3NlcSAhPSBOVUxMKSB7CisgICAgICAgIGlmIChpbmRleCA8IC0xKQorICAgICAgICAgICAgaW5kZXggPSAtMTsKKyAgICAgICAgZWxzZSBpZiAoaW5kZXggPiBQeUxpc3RfR0VUX1NJWkUoaXQtPml0X3NlcSkgLSAxKQorICAgICAgICAgICAgaW5kZXggPSBQeUxpc3RfR0VUX1NJWkUoaXQtPml0X3NlcSkgLSAxOworICAgICAgICBpdC0+aXRfaW5kZXggPSBpbmRleDsKKyAgICB9CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKKy8qIGNvbW1vbiBwaWNrbGluZyBzdXBwb3J0ICovCisKK3N0YXRpYyBQeU9iamVjdCAqCitsaXN0aXRlcl9yZWR1Y2VfZ2VuZXJhbCh2b2lkICpfaXQsIGludCBmb3J3YXJkKQoreworICAgIFB5T2JqZWN0ICpsaXN0OworCisgICAgLyogdGhlIG9iamVjdHMgYXJlIG5vdCB0aGUgc2FtZSwgaW5kZXggaXMgb2YgZGlmZmVyZW50IHR5cGVzISAqLworICAgIGlmIChmb3J3YXJkKSB7CisgICAgICAgIGxpc3RpdGVyb2JqZWN0ICppdCA9IChsaXN0aXRlcm9iamVjdCAqKV9pdDsKKyAgICAgICAgaWYgKGl0LT5pdF9zZXEpCisgICAgICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTihPKWwiLCBfUHlPYmplY3RfR2V0QnVpbHRpbigiaXRlciIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQtPml0X3NlcSwgaXQtPml0X2luZGV4KTsKKyAgICB9IGVsc2UgeworICAgICAgICBsaXN0cmV2aXRlcm9iamVjdCAqaXQgPSAobGlzdHJldml0ZXJvYmplY3QgKilfaXQ7CisgICAgICAgIGlmIChpdC0+aXRfc2VxKQorICAgICAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk4oTyluIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oInJldmVyc2VkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC0+aXRfc2VxLCBpdC0+aXRfaW5kZXgpOworICAgIH0KKyAgICAvKiBlbXB0eSBpdGVyYXRvciwgY3JlYXRlIGFuIGVtcHR5IGxpc3QgKi8KKyAgICBsaXN0ID0gUHlMaXN0X05ldygwKTsKKyAgICBpZiAobGlzdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTihOKSIsIF9QeU9iamVjdF9HZXRCdWlsdGluKCJpdGVyIiksIGxpc3QpOworfQpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9sb25nb2JqZWN0LmMgYi9PYmplY3RzL2xvbmdvYmplY3QuYwppbmRleCBhNzM1ZTMzLi44MGZlNzI0IDEwMDY0NAotLS0gYS9PYmplY3RzL2xvbmdvYmplY3QuYworKysgYi9PYmplY3RzL2xvbmdvYmplY3QuYwpAQCAtMzIwLDggKzMyMCwxNSBAQAogI2RlZmluZSBQWV9BQlNfTE9OR19NSU4gICAgICAgICAoMC0odW5zaWduZWQgbG9uZylMT05HX01JTikKICNkZWZpbmUgUFlfQUJTX1NTSVpFX1RfTUlOICAgICAgKDAtKHNpemVfdClQWV9TU0laRV9UX01JTikKIAotLyogR2V0IGEgQyBsb25nIGludCBmcm9tIGEgbG9uZyBpbnQgb2JqZWN0LgotICAgUmV0dXJucyAtMSBhbmQgc2V0cyBhbiBlcnJvciBjb25kaXRpb24gaWYgb3ZlcmZsb3cgb2NjdXJzLiAqLworLyogR2V0IGEgQyBsb25nIGludCBmcm9tIGEgbG9uZyBpbnQgb2JqZWN0IG9yIGFueSBvYmplY3QgdGhhdCBoYXMgYW4gX19pbnRfXworICAgbWV0aG9kLgorCisgICBPbiBvdmVyZmxvdywgcmV0dXJuIC0xIGFuZCBzZXQgKm92ZXJmbG93IHRvIDEgb3IgLTEgZGVwZW5kaW5nIG9uIHRoZSBzaWduIG9mCisgICB0aGUgcmVzdWx0LiAgT3RoZXJ3aXNlICpvdmVyZmxvdyBpcyAwLgorCisgICBGb3Igb3RoZXIgZXJyb3JzIChlLmcuLCBUeXBlRXJyb3IpLCByZXR1cm4gLTEgYW5kIHNldCBhbiBlcnJvciBjb25kaXRpb24uCisgICBJbiB0aGlzIGNhc2UgKm92ZXJmbG93IHdpbGwgYmUgMC4KKyovCiAKIGxvbmcKIFB5TG9uZ19Bc0xvbmdBbmRPdmVyZmxvdyhQeU9iamVjdCAqdnYsIGludCAqb3ZlcmZsb3cpCkBAIC00MTAsNiArNDE3LDkgQEAKICAgICByZXR1cm4gcmVzOwogfQogCisvKiBHZXQgYSBDIGxvbmcgaW50IGZyb20gYSBsb25nIGludCBvYmplY3Qgb3IgYW55IG9iamVjdCB0aGF0IGhhcyBhbiBfX2ludF9fCisgICBtZXRob2QuICBSZXR1cm4gLTEgYW5kIHNldCBhbiBlcnJvciBpZiBvdmVyZmxvdyBvY2N1cnMuICovCisKIGxvbmcKIFB5TG9uZ19Bc0xvbmcoUHlPYmplY3QgKm9iaikKIHsKQEAgLTkyMSw3ICs5MzEsNyBAQAogCiB9CiAKLS8qIENyZWF0ZSBhIG5ldyBsb25nIChvciBpbnQpIG9iamVjdCBmcm9tIGEgQyBwb2ludGVyICovCisvKiBDcmVhdGUgYSBuZXcgbG9uZyBpbnQgb2JqZWN0IGZyb20gYSBDIHBvaW50ZXIgKi8KIAogUHlPYmplY3QgKgogUHlMb25nX0Zyb21Wb2lkUHRyKHZvaWQgKnApCkBAIC05MzksMTUgKzk0OSwxMSBAQAogCiB9CiAKLS8qIEdldCBhIEMgcG9pbnRlciBmcm9tIGEgbG9uZyBvYmplY3QgKG9yIGFuIGludCBvYmplY3QgaW4gc29tZSBjYXNlcykgKi8KKy8qIEdldCBhIEMgcG9pbnRlciBmcm9tIGEgbG9uZyBpbnQgb2JqZWN0LiAqLwogCiB2b2lkICoKIFB5TG9uZ19Bc1ZvaWRQdHIoUHlPYmplY3QgKnZ2KQogewotICAgIC8qIFRoaXMgZnVuY3Rpb24gd2lsbCBhbGxvdyBpbnQgb3IgbG9uZyBvYmplY3RzLiBJZiB2diBpcyBuZWl0aGVyLAotICAgICAgIHRoZW4gdGhlIFB5TG9uZ19Bc0xvbmcqKCkgZnVuY3Rpb25zIHdpbGwgcmFpc2UgdGhlIGV4Y2VwdGlvbjoKLSAgICAgICBQeUV4Y19TeXN0ZW1FcnJvciwgImJhZCBhcmd1bWVudCB0byBpbnRlcm5hbCBmdW5jdGlvbiIKLSAgICAqLwogI2lmIFNJWkVPRl9WT0lEX1AgPD0gU0laRU9GX0xPTkcKICAgICBsb25nIHg7CiAKQEAgLTExMjgsOCArMTEzNCw4IEBACiAgICAgcmV0dXJuIChQeU9iamVjdCAqKXY7CiB9CiAKLS8qIEdldCBhIEMgUFlfTE9OR19MT05HIGludCBmcm9tIGEgbG9uZyBpbnQgb2JqZWN0LgotICAgUmV0dXJuIC0xIGFuZCBzZXQgYW4gZXJyb3IgaWYgb3ZlcmZsb3cgb2NjdXJzLiAqLworLyogR2V0IGEgQyBsb25nIGxvbmcgaW50IGZyb20gYSBsb25nIGludCBvYmplY3Qgb3IgYW55IG9iamVjdCB0aGF0IGhhcyBhbgorICAgX19pbnRfXyBtZXRob2QuICBSZXR1cm4gLTEgYW5kIHNldCBhbiBlcnJvciBpZiBvdmVyZmxvdyBvY2N1cnMuICovCiAKIFBZX0xPTkdfTE9ORwogUHlMb25nX0FzTG9uZ0xvbmcoUHlPYmplY3QgKnZ2KQpAQCAtMTE5MSwxMCArMTE5NywxNCBAQAogICAgIGludCBvbmUgPSAxOwogICAgIGludCByZXM7CiAKLSAgICBpZiAodnYgPT0gTlVMTCB8fCAhUHlMb25nX0NoZWNrKHZ2KSkgeworICAgIGlmICh2diA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOwogICAgICAgICByZXR1cm4gKHVuc2lnbmVkIFBZX0xPTkdfTE9ORyktMTsKICAgICB9CisgICAgaWYgKCFQeUxvbmdfQ2hlY2sodnYpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJhbiBpbnRlZ2VyIGlzIHJlcXVpcmVkIik7CisgICAgICAgIHJldHVybiAodW5zaWduZWQgUFlfTE9OR19MT05HKS0xOworICAgIH0KIAogICAgIHYgPSAoUHlMb25nT2JqZWN0Kil2djsKICAgICBzd2l0Y2goUHlfU0laRSh2KSkgewpAQCAtMTI4MSwxMiArMTI5MSwxNCBAQAogfQogI3VuZGVmIElTX0xJVFRMRV9FTkRJQU4KIAotLyogR2V0IGEgQyBsb25nIGxvbmcgaW50IGZyb20gYSBQeXRob24gbG9uZyBvciBQeXRob24gaW50IG9iamVjdC4KLSAgIE9uIG92ZXJmbG93LCByZXR1cm5zIC0xIGFuZCBzZXRzICpvdmVyZmxvdyB0byAxIG9yIC0xIGRlcGVuZGluZwotICAgb24gdGhlIHNpZ24gb2YgdGhlIHJlc3VsdC4gIE90aGVyd2lzZSAqb3ZlcmZsb3cgaXMgMC4KKy8qIEdldCBhIEMgbG9uZyBsb25nIGludCBmcm9tIGEgbG9uZyBpbnQgb2JqZWN0IG9yIGFueSBvYmplY3QgdGhhdCBoYXMgYW4KKyAgIF9faW50X18gbWV0aG9kLgogCi0gICBGb3Igb3RoZXIgZXJyb3JzIChlLmcuLCB0eXBlIGVycm9yKSwgcmV0dXJucyAtMSBhbmQgc2V0cyBhbiBlcnJvcgotICAgY29uZGl0aW9uLgorICAgT24gb3ZlcmZsb3csIHJldHVybiAtMSBhbmQgc2V0ICpvdmVyZmxvdyB0byAxIG9yIC0xIGRlcGVuZGluZyBvbiB0aGUgc2lnbiBvZgorICAgdGhlIHJlc3VsdC4gIE90aGVyd2lzZSAqb3ZlcmZsb3cgaXMgMC4KKworICAgRm9yIG90aGVyIGVycm9ycyAoZS5nLiwgVHlwZUVycm9yKSwgcmV0dXJuIC0xIGFuZCBzZXQgYW4gZXJyb3IgY29uZGl0aW9uLgorICAgSW4gdGhpcyBjYXNlICpvdmVyZmxvdyB3aWxsIGJlIDAuCiAqLwogCiBQWV9MT05HX0xPTkcKQEAgLTEzODAsMTAgKzEzOTIsOCBAQAogCiAjZGVmaW5lIENIRUNLX0JJTk9QKHYsdykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBpZiAoIVB5TG9uZ19DaGVjayh2KSB8fCAhUHlMb25nX0NoZWNrKHcpKSB7ICAgICBcCi0gICAgICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOyAgICAgICAgICAgICAgIFwKLSAgICAgICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsgICAgICAgICAgICAgICAgICAgXAotICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmICghUHlMb25nX0NoZWNrKHYpIHx8ICFQeUxvbmdfQ2hlY2sodykpICAgICAgIFwKKyAgICAgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsgICAgICAgICAgICAgICAgICAgXAogICAgIH0gd2hpbGUoMCkKIAogLyogYml0c19pbl9kaWdpdChkKSByZXR1cm5zIHRoZSB1bmlxdWUgaW50ZWdlciBrIHN1Y2ggdGhhdCAyKiooay0xKSA8PSBkIDwKQEAgLTE1NDAsMjAgKzE1NTAsMjIgQEAKICAgIHN0cmluZy4gIChSZXR1cm4gdmFsdWUgaXMgbm9uLXNoYXJlZCBzbyB0aGF0IGNhbGxlcnMgY2FuIG1vZGlmeSB0aGUKICAgIHJldHVybmVkIHZhbHVlIGlmIG5lY2Vzc2FyeS4pICovCiAKLXN0YXRpYyBQeU9iamVjdCAqCi1sb25nX3RvX2RlY2ltYWxfc3RyaW5nKFB5T2JqZWN0ICphYSkKK3N0YXRpYyBpbnQKK2xvbmdfdG9fZGVjaW1hbF9zdHJpbmdfaW50ZXJuYWwoUHlPYmplY3QgKmFhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqKnBfb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpCiB7CiAgICAgUHlMb25nT2JqZWN0ICpzY3JhdGNoLCAqYTsKICAgICBQeU9iamVjdCAqc3RyOwogICAgIFB5X3NzaXplX3Qgc2l6ZSwgc3RybGVuLCBzaXplX2EsIGksIGo7CiAgICAgZGlnaXQgKnBvdXQsICpwaW4sIHJlbSwgdGVucG93OwotICAgIFB5X1VOSUNPREUgKnA7CiAgICAgaW50IG5lZ2F0aXZlOworICAgIGVudW0gUHlVbmljb2RlX0tpbmQga2luZDsKIAogICAgIGEgPSAoUHlMb25nT2JqZWN0ICopYWE7CiAgICAgaWYgKGEgPT0gTlVMTCB8fCAhUHlMb25nX0NoZWNrKGEpKSB7CiAgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOwotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICBzaXplX2EgPSBBQlMoUHlfU0laRShhKSk7CiAgICAgbmVnYXRpdmUgPSBQeV9TSVpFKGEpIDwgMDsKQEAgLTE1NzAsMTMgKzE1ODIsMTMgQEAKICAgICBpZiAoc2l6ZV9hID4gUFlfU1NJWkVfVF9NQVggLyBQeUxvbmdfU0hJRlQpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAibG9uZyBpcyB0b28gbGFyZ2UgdG8gZm9ybWF0Iik7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIC8qIHRoZSBleHByZXNzaW9uIHNpemVfYSAqIFB5TG9uZ19TSElGVCBpcyBub3cgc2FmZSBmcm9tIG92ZXJmbG93ICovCiAgICAgc2l6ZSA9IDEgKyBzaXplX2EgKiBQeUxvbmdfU0hJRlQgLyAoMyAqIF9QeUxvbmdfREVDSU1BTF9TSElGVCk7CiAgICAgc2NyYXRjaCA9IF9QeUxvbmdfTmV3KHNpemUpOwogICAgIGlmIChzY3JhdGNoID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4gLTE7CiAKICAgICAvKiBjb252ZXJ0IGFycmF5IG9mIGJhc2UgX1B5TG9uZ19CQVNFIGRpZ2l0cyBpbiBwaW4gdG8gYW4gYXJyYXkgb2YKICAgICAgICBiYXNlIF9QeUxvbmdfREVDSU1BTF9CQVNFIGRpZ2l0cyBpbiBwb3V0LCBmb2xsb3dpbmcgS251dGggKFRBT0NQLApAQCAtMTU5OSw3ICsxNjExLDcgQEAKICAgICAgICAgLyogY2hlY2sgZm9yIGtleWJvYXJkIGludGVycnVwdCAqLwogICAgICAgICBTSUdDSEVDSyh7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHNjcmF0Y2gpOwotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgIH0pOwogICAgIH0KICAgICAvKiBwb3V0IHNob3VsZCBoYXZlIGF0IGxlYXN0IG9uZSBkaWdpdCwgc28gdGhhdCB0aGUgY2FzZSB3aGVuIGEgPSAwCkBAIC0xNjE1LDY0ICsxNjI3LDExNiBAQAogICAgICAgICB0ZW5wb3cgKj0gMTA7CiAgICAgICAgIHN0cmxlbisrOwogICAgIH0KLSAgICBzdHIgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgc3RybGVuKTsKLSAgICBpZiAoc3RyID09IE5VTEwpIHsKLSAgICAgICAgUHlfREVDUkVGKHNjcmF0Y2gpOwotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAod3JpdGVyKSB7CisgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUod3JpdGVyLCBzdHJsZW4sICc5JykgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGtpbmQgPSB3cml0ZXItPmtpbmQ7CisgICAgICAgIHN0ciA9IE5VTEw7CiAgICAgfQorICAgIGVsc2UgeworICAgICAgICBzdHIgPSBQeVVuaWNvZGVfTmV3KHN0cmxlbiwgJzknKTsKKyAgICAgICAgaWYgKHN0ciA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoc2NyYXRjaCk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHN0cik7CisgICAgfQorCisjZGVmaW5lIFdSSVRFX0RJR0lUUyhUWVBFKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKHdyaXRlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBwID0gKFRZUEUqKVB5VW5pY29kZV9EQVRBKHdyaXRlci0+YnVmZmVyKSArIHdyaXRlci0+cG9zICsgc3RybGVuOyBcCisgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcCA9IChUWVBFKilQeVVuaWNvZGVfREFUQShzdHIpICsgc3RybGVuOyAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICpwID0gJ1wwJzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAvKiBwb3V0WzBdIHRocm91Z2ggcG91dFtzaXplLTJdIGNvbnRyaWJ1dGUgZXhhY3RseSAgICAgICAgICAgIFwKKyAgICAgICAgICAgX1B5TG9uZ19ERUNJTUFMX1NISUZUIGRpZ2l0cyBlYWNoICovICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGZvciAoaT0wOyBpIDwgc2l6ZSAtIDE7IGkrKykgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcmVtID0gcG91dFtpXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBfUHlMb25nX0RFQ0lNQUxfU0hJRlQ7IGorKykgeyAgICAgICAgICAgICBcCisgICAgICAgICAgICAgICAgKi0tcCA9ICcwJyArIHJlbSAlIDEwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIHJlbSAvPSAxMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAvKiBwb3V0W3NpemUtMV06IGFsd2F5cyBwcm9kdWNlIGF0IGxlYXN0IG9uZSBkZWNpbWFsIGRpZ2l0ICovIFwKKyAgICAgICAgcmVtID0gcG91dFtpXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgKi0tcCA9ICcwJyArIHJlbSAlIDEwOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHJlbSAvPSAxMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gd2hpbGUgKHJlbSAhPSAwKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgLyogYW5kIHNpZ24gKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIGlmIChuZWdhdGl2ZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgKi0tcCA9ICctJzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIC8qIGNoZWNrIHdlJ3ZlIGNvdW50ZWQgY29ycmVjdGx5ICovICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAod3JpdGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGFzc2VydChwID09ICgoVFlQRSopUHlVbmljb2RlX0RBVEEod3JpdGVyLT5idWZmZXIpICsgd3JpdGVyLT5wb3MpKTsgXAorICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGFzc2VydChwID09IChUWVBFKilQeVVuaWNvZGVfREFUQShzdHIpKTsgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKIAogICAgIC8qIGZpbGwgdGhlIHN0cmluZyByaWdodC10by1sZWZ0ICovCi0gICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHN0cikgKyBzdHJsZW47Ci0gICAgKnAgPSAnXDAnOwotICAgIC8qIHBvdXRbMF0gdGhyb3VnaCBwb3V0W3NpemUtMl0gY29udHJpYnV0ZSBleGFjdGx5Ci0gICAgICAgX1B5TG9uZ19ERUNJTUFMX1NISUZUIGRpZ2l0cyBlYWNoICovCi0gICAgZm9yIChpPTA7IGkgPCBzaXplIC0gMTsgaSsrKSB7Ci0gICAgICAgIHJlbSA9IHBvdXRbaV07Ci0gICAgICAgIGZvciAoaiA9IDA7IGogPCBfUHlMb25nX0RFQ0lNQUxfU0hJRlQ7IGorKykgewotICAgICAgICAgICAgKi0tcCA9ICcwJyArIHJlbSAlIDEwOwotICAgICAgICAgICAgcmVtIC89IDEwOwotICAgICAgICB9CisgICAgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQpIHsKKyAgICAgICAgUHlfVUNTMSAqcDsKKyAgICAgICAgV1JJVEVfRElHSVRTKFB5X1VDUzEpOwogICAgIH0KLSAgICAvKiBwb3V0W3NpemUtMV06IGFsd2F5cyBwcm9kdWNlIGF0IGxlYXN0IG9uZSBkZWNpbWFsIGRpZ2l0ICovCi0gICAgcmVtID0gcG91dFtpXTsKLSAgICBkbyB7Ci0gICAgICAgICotLXAgPSAnMCcgKyByZW0gJSAxMDsKLSAgICAgICAgcmVtIC89IDEwOwotICAgIH0gd2hpbGUgKHJlbSAhPSAwKTsKKyAgICBlbHNlIGlmIChraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5EKSB7CisgICAgICAgIFB5X1VDUzIgKnA7CisgICAgICAgIFdSSVRFX0RJR0lUUyhQeV9VQ1MyKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5X1VDUzQgKnA7CisgICAgICAgIGFzc2VydCAoa2luZCA9PSBQeVVuaWNvZGVfNEJZVEVfS0lORCk7CisgICAgICAgIFdSSVRFX0RJR0lUUyhQeV9VQ1M0KTsKKyAgICB9CisjdW5kZWYgV1JJVEVfRElHSVRTCiAKLSAgICAvKiBhbmQgc2lnbiAqLwotICAgIGlmIChuZWdhdGl2ZSkKLSAgICAgICAgKi0tcCA9ICctJzsKLQotICAgIC8qIGNoZWNrIHdlJ3ZlIGNvdW50ZWQgY29ycmVjdGx5ICovCi0gICAgYXNzZXJ0KHAgPT0gUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyKSk7CiAgICAgUHlfREVDUkVGKHNjcmF0Y2gpOwotICAgIHJldHVybiAoUHlPYmplY3QgKilzdHI7CisgICAgaWYgKHdyaXRlcikgeworICAgICAgICB3cml0ZXItPnBvcyArPSBzdHJsZW47CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHN0ciwgMSkpOworICAgICAgICAqcF9vdXRwdXQgPSAoUHlPYmplY3QgKilzdHI7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbG9uZ190b19kZWNpbWFsX3N0cmluZyhQeU9iamVjdCAqYWEpCit7CisgICAgUHlPYmplY3QgKnY7CisgICAgaWYgKGxvbmdfdG9fZGVjaW1hbF9zdHJpbmdfaW50ZXJuYWwoYWEsICZ2LCBOVUxMKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIHY7CiB9CiAKIC8qIENvbnZlcnQgYSBsb25nIGludCBvYmplY3QgdG8gYSBzdHJpbmcsIHVzaW5nIGEgZ2l2ZW4gY29udmVyc2lvbiBiYXNlLAotICAgd2hpY2ggc2hvdWxkIGJlIG9uZSBvZiAyLCA4LCAxMCBvciAxNi4gIFJldHVybiBhIHN0cmluZyBvYmplY3QuCi0gICBJZiBiYXNlIGlzIDIsIDggb3IgMTYsIGFkZCB0aGUgcHJvcGVyIHByZWZpeCAnMGInLCAnMG8nIG9yICcweCcuICovCisgICB3aGljaCBzaG91bGQgYmUgb25lIG9mIDIsIDggb3IgMTYuICBSZXR1cm4gYSBzdHJpbmcgb2JqZWN0LgorICAgSWYgYmFzZSBpcyAyLCA4IG9yIDE2LCBhZGQgdGhlIHByb3BlciBwcmVmaXggJzBiJywgJzBvJyBvciAnMHgnCisgICBpZiBhbHRlcm5hdGUgaXMgbm9uemVyby4gKi8KIAotUHlPYmplY3QgKgotX1B5TG9uZ19Gb3JtYXQoUHlPYmplY3QgKmFhLCBpbnQgYmFzZSkKK3N0YXRpYyBpbnQKK2xvbmdfZm9ybWF0X2JpbmFyeShQeU9iamVjdCAqYWEsIGludCBiYXNlLCBpbnQgYWx0ZXJuYXRlLAorICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqcF9vdXRwdXQsIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcikKIHsKICAgICByZWdpc3RlciBQeUxvbmdPYmplY3QgKmEgPSAoUHlMb25nT2JqZWN0ICopYWE7Ci0gICAgUHlPYmplY3QgKnN0cjsKLSAgICBQeV9zc2l6ZV90IGksIHN6OworICAgIFB5T2JqZWN0ICp2OworICAgIFB5X3NzaXplX3Qgc3o7CiAgICAgUHlfc3NpemVfdCBzaXplX2E7Ci0gICAgUHlfVU5JQ09ERSAqcCwgc2lnbiA9ICdcMCc7CisgICAgZW51bSBQeVVuaWNvZGVfS2luZCBraW5kOworICAgIGludCBuZWdhdGl2ZTsKICAgICBpbnQgYml0czsKIAotICAgIGFzc2VydChiYXNlID09IDIgfHwgYmFzZSA9PSA4IHx8IGJhc2UgPT0gMTAgfHwgYmFzZSA9PSAxNik7Ci0gICAgaWYgKGJhc2UgPT0gMTApCi0gICAgICAgIHJldHVybiBsb25nX3RvX2RlY2ltYWxfc3RyaW5nKChQeU9iamVjdCAqKWEpOwotCisgICAgYXNzZXJ0KGJhc2UgPT0gMiB8fCBiYXNlID09IDggfHwgYmFzZSA9PSAxNik7CiAgICAgaWYgKGEgPT0gTlVMTCB8fCAhUHlMb25nX0NoZWNrKGEpKSB7CiAgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOwotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KICAgICBzaXplX2EgPSBBQlMoUHlfU0laRShhKSk7CisgICAgbmVnYXRpdmUgPSBQeV9TSVpFKGEpIDwgMDsKIAogICAgIC8qIENvbXB1dGUgYSByb3VnaCB1cHBlciBib3VuZCBmb3IgdGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nICovCiAgICAgc3dpdGNoIChiYXNlKSB7CkBAIC0xNjg5LDcwICsxNzUzLDEzNyBAQAogICAgICAgICBhc3NlcnQoMCk7IC8qIHNob3VsZG4ndCBldmVyIGdldCBoZXJlICovCiAgICAgICAgIGJpdHMgPSAwOyAvKiB0byBzaWxlbmNlIGdjYyB3YXJuaW5nICovCiAgICAgfQotICAgIC8qIGNvbXB1dGUgbGVuZ3RoIG9mIG91dHB1dCBzdHJpbmc6IGFsbG93IDIgY2hhcmFjdGVycyBmb3IgcHJlZml4IGFuZAotICAgICAgIDEgZm9yIHBvc3NpYmxlICctJyBzaWduLiAqLwotICAgIGlmIChzaXplX2EgPiAoUFlfU1NJWkVfVF9NQVggLSAzKSAvIFB5TG9uZ19TSElGVCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbnQgaXMgdG9vIGxhcmdlIHRvIGZvcm1hdCIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgLyogbm93IHNpemVfYSAqIFB5TG9uZ19TSElGVCArIDMgPD0gUFlfU1NJWkVfVF9NQVgsIHNvIHRoZSBSSFMgYmVsb3cKLSAgICAgICBpcyBzYWZlIGZyb20gb3ZlcmZsb3cgKi8KLSAgICBzeiA9IDMgKyAoc2l6ZV9hICogUHlMb25nX1NISUZUICsgKGJpdHMgLSAxKSkgLyBiaXRzOwotICAgIGFzc2VydChzeiA+PSAwKTsKLSAgICBzdHIgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgc3opOwotICAgIGlmIChzdHIgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHN0cikgKyBzejsKLSAgICAqcCA9ICdcMCc7Ci0gICAgaWYgKFB5X1NJWkUoYSkgPCAwKQotICAgICAgICBzaWduID0gJy0nOwogCi0gICAgaWYgKFB5X1NJWkUoYSkgPT0gMCkgewotICAgICAgICAqLS1wID0gJzAnOworICAgIC8qIENvbXB1dGUgZXhhY3QgbGVuZ3RoICdzeicgb2Ygb3V0cHV0IHN0cmluZy4gKi8KKyAgICBpZiAoc2l6ZV9hID09IDApIHsKKyAgICAgICAgc3ogPSAxOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAgLyogSlJIOiBzcGVjaWFsIGNhc2UgZm9yIHBvd2VyLW9mLTIgYmFzZXMgKi8KLSAgICAgICAgdHdvZGlnaXRzIGFjY3VtID0gMDsKLSAgICAgICAgaW50IGFjY3VtYml0cyA9IDA7ICAgICAgICAgICAgICAvKiAjIG9mIGJpdHMgaW4gYWNjdW0gKi8KLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHNpemVfYTsgKytpKSB7Ci0gICAgICAgICAgICBhY2N1bSB8PSAodHdvZGlnaXRzKWEtPm9iX2RpZ2l0W2ldIDw8IGFjY3VtYml0czsKLSAgICAgICAgICAgIGFjY3VtYml0cyArPSBQeUxvbmdfU0hJRlQ7Ci0gICAgICAgICAgICBhc3NlcnQoYWNjdW1iaXRzID49IGJpdHMpOwotICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgIFB5X1VOSUNPREUgY2RpZ2l0OwotICAgICAgICAgICAgICAgIGNkaWdpdCA9IChQeV9VTklDT0RFKShhY2N1bSAmIChiYXNlIC0gMSkpOwotICAgICAgICAgICAgICAgIGNkaWdpdCArPSAoY2RpZ2l0IDwgMTApID8gJzAnIDogJ2EnLTEwOwotICAgICAgICAgICAgICAgIGFzc2VydChwID4gUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyKSk7Ci0gICAgICAgICAgICAgICAgKi0tcCA9IGNkaWdpdDsKLSAgICAgICAgICAgICAgICBhY2N1bWJpdHMgLT0gYml0czsKLSAgICAgICAgICAgICAgICBhY2N1bSA+Pj0gYml0czsKLSAgICAgICAgICAgIH0gd2hpbGUgKGkgPCBzaXplX2EtMSA/IGFjY3VtYml0cyA+PSBiaXRzIDogYWNjdW0gPiAwKTsKKyAgICAgICAgUHlfc3NpemVfdCBzaXplX2FfaW5fYml0czsKKyAgICAgICAgLyogRW5zdXJlIG92ZXJmbG93IGRvZXNuJ3Qgb2NjdXIgZHVyaW5nIGNvbXB1dGF0aW9uIG9mIHN6LiAqLworICAgICAgICBpZiAoc2l6ZV9hID4gKFBZX1NTSVpFX1RfTUFYIC0gMykgLyBQeUxvbmdfU0hJRlQpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnQgaXMgdG9vIGxhcmdlIHRvIGZvcm1hdCIpOworICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICB9CisgICAgICAgIHNpemVfYV9pbl9iaXRzID0gKHNpemVfYSAtIDEpICogUHlMb25nX1NISUZUICsKKyAgICAgICAgICAgICAgICAgICAgICAgICBiaXRzX2luX2RpZ2l0KGEtPm9iX2RpZ2l0W3NpemVfYSAtIDFdKTsKKyAgICAgICAgLyogQWxsb3cgMSBjaGFyYWN0ZXIgZm9yIGEgJy0nIHNpZ24uICovCisgICAgICAgIHN6ID0gbmVnYXRpdmUgKyAoc2l6ZV9hX2luX2JpdHMgKyAoYml0cyAtIDEpKSAvIGJpdHM7CisgICAgfQorICAgIGlmIChhbHRlcm5hdGUpIHsKKyAgICAgICAgLyogMiBjaGFyYWN0ZXJzIGZvciBwcmVmaXggICovCisgICAgICAgIHN6ICs9IDI7CiAgICAgfQogCi0gICAgaWYgKGJhc2UgPT0gMTYpCi0gICAgICAgICotLXAgPSAneCc7Ci0gICAgZWxzZSBpZiAoYmFzZSA9PSA4KQotICAgICAgICAqLS1wID0gJ28nOwotICAgIGVsc2UgLyogKGJhc2UgPT0gMikgKi8KLSAgICAgICAgKi0tcCA9ICdiJzsKLSAgICAqLS1wID0gJzAnOwotICAgIGlmIChzaWduKQotICAgICAgICAqLS1wID0gc2lnbjsKLSAgICBpZiAocCAhPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdHIpKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgKnEgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdHIpOwotICAgICAgICBhc3NlcnQocCA+IHEpOwotICAgICAgICBkbyB7Ci0gICAgICAgIH0gd2hpbGUgKCgqcSsrID0gKnArKykgIT0gJ1wwJyk7Ci0gICAgICAgIHEtLTsKLSAgICAgICAgaWYgKFB5VW5pY29kZV9SZXNpemUoJnN0ciwoUHlfc3NpemVfdCkgKHEgLQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHN0cikpKSkgewotICAgICAgICAgICAgUHlfREVDUkVGKHN0cik7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQorICAgIGlmICh3cml0ZXIpIHsKKyAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSh3cml0ZXIsIHN6LCAneCcpID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBraW5kID0gd3JpdGVyLT5raW5kOworICAgICAgICB2ID0gTlVMTDsKICAgICB9Ci0gICAgcmV0dXJuIChQeU9iamVjdCAqKXN0cjsKKyAgICBlbHNlIHsKKyAgICAgICAgdiA9IFB5VW5pY29kZV9OZXcoc3osICd4Jyk7CisgICAgICAgIGlmICh2ID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh2KTsKKyAgICB9CisKKyNkZWZpbmUgV1JJVEVfRElHSVRTKFRZUEUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgaWYgKHdyaXRlcikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIHAgPSAoVFlQRSopUHlVbmljb2RlX0RBVEEod3JpdGVyLT5idWZmZXIpICsgd3JpdGVyLT5wb3MgKyBzejsgXAorICAgICAgICBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgcCA9IChUWVBFKilQeVVuaWNvZGVfREFUQSh2KSArIHN6OyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoc2l6ZV9hID09IDApIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgKi0tcCA9ICcwJzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgLyogSlJIOiBzcGVjaWFsIGNhc2UgZm9yIHBvd2VyLW9mLTIgYmFzZXMgKi8gICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgdHdvZGlnaXRzIGFjY3VtID0gMDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgaW50IGFjY3VtYml0cyA9IDA7ICAgLyogIyBvZiBiaXRzIGluIGFjY3VtICovICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgUHlfc3NpemVfdCBpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHNpemVfYTsgKytpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGFjY3VtIHw9ICh0d29kaWdpdHMpYS0+b2JfZGlnaXRbaV0gPDwgYWNjdW1iaXRzOyAgICAgICAgXAorICAgICAgICAgICAgICAgIGFjY3VtYml0cyArPSBQeUxvbmdfU0hJRlQ7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGFzc2VydChhY2N1bWJpdHMgPj0gYml0cyk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBjaGFyIGNkaWdpdDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBjZGlnaXQgPSAoY2hhcikoYWNjdW0gJiAoYmFzZSAtIDEpKTsgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBjZGlnaXQgKz0gKGNkaWdpdCA8IDEwKSA/ICcwJyA6ICdhJy0xMDsgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAqLS1wID0gY2RpZ2l0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBhY2N1bWJpdHMgLT0gYml0czsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICBhY2N1bSA+Pj0gYml0czsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIH0gd2hpbGUgKGkgPCBzaXplX2EtMSA/IGFjY3VtYml0cyA+PSBiaXRzIDogYWNjdW0gPiAwKTsgXAorICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAoYWx0ZXJuYXRlKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgaWYgKGJhc2UgPT0gMTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICotLXAgPSAneCc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgZWxzZSBpZiAoYmFzZSA9PSA4KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICotLXAgPSAnbyc7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgZWxzZSAvKiAoYmFzZSA9PSAyKSAqLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgICotLXAgPSAnYic7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgKi0tcCA9ICcwJzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAobmVnYXRpdmUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgKi0tcCA9ICctJzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBpZiAod3JpdGVyKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgYXNzZXJ0KHAgPT0gKChUWVBFKilQeVVuaWNvZGVfREFUQSh3cml0ZXItPmJ1ZmZlcikgKyB3cml0ZXItPnBvcykpOyBcCisgICAgICAgIGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBhc3NlcnQocCA9PSAoVFlQRSopUHlVbmljb2RlX0RBVEEodikpOyAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworICAgIGlmIChraW5kID09IFB5VW5pY29kZV8xQllURV9LSU5EKSB7CisgICAgICAgIFB5X1VDUzEgKnA7CisgICAgICAgIFdSSVRFX0RJR0lUUyhQeV9VQ1MxKTsKKyAgICB9CisgICAgZWxzZSBpZiAoa2luZCA9PSBQeVVuaWNvZGVfMkJZVEVfS0lORCkgeworICAgICAgICBQeV9VQ1MyICpwOworICAgICAgICBXUklURV9ESUdJVFMoUHlfVUNTMik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBQeV9VQ1M0ICpwOworICAgICAgICBhc3NlcnQgKGtpbmQgPT0gUHlVbmljb2RlXzRCWVRFX0tJTkQpOworICAgICAgICBXUklURV9ESUdJVFMoUHlfVUNTNCk7CisgICAgfQorI3VuZGVmIFdSSVRFX0RJR0lUUworCisgICAgaWYgKHdyaXRlcikgeworICAgICAgICB3cml0ZXItPnBvcyArPSBzejsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodiwgMSkpOworICAgICAgICAqcF9vdXRwdXQgPSB2OworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworUHlPYmplY3QgKgorX1B5TG9uZ19Gb3JtYXQoUHlPYmplY3QgKm9iaiwgaW50IGJhc2UpCit7CisgICAgUHlPYmplY3QgKnN0cjsKKyAgICBpbnQgZXJyOworICAgIGlmIChiYXNlID09IDEwKQorICAgICAgICBlcnIgPSBsb25nX3RvX2RlY2ltYWxfc3RyaW5nX2ludGVybmFsKG9iaiwgJnN0ciwgTlVMTCk7CisgICAgZWxzZQorICAgICAgICBlcnIgPSBsb25nX2Zvcm1hdF9iaW5hcnkob2JqLCBiYXNlLCAxLCAmc3RyLCBOVUxMKTsKKyAgICBpZiAoZXJyID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gc3RyOworfQorCitpbnQKK19QeUxvbmdfRm9ybWF0V3JpdGVyKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpvYmosCisgICAgICAgICAgICAgICAgICAgICBpbnQgYmFzZSwgaW50IGFsdGVybmF0ZSkKK3sKKyAgICBpZiAoYmFzZSA9PSAxMCkKKyAgICAgICAgcmV0dXJuIGxvbmdfdG9fZGVjaW1hbF9zdHJpbmdfaW50ZXJuYWwob2JqLCBOVUxMLCB3cml0ZXIpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGxvbmdfZm9ybWF0X2JpbmFyeShvYmosIGJhc2UsIGFsdGVybmF0ZSwgTlVMTCwgd3JpdGVyKTsKIH0KIAogLyogVGFibGUgb2YgZGlnaXQgdmFsdWVzIGZvciA4LWJpdCBzdHJpbmcgLT4gaW50ZWdlciBjb252ZXJzaW9uLgpAQCAtMjEzMCwyMyArMjI2MSwyNiBAQAogUHlPYmplY3QgKgogUHlMb25nX0Zyb21Vbmljb2RlKFB5X1VOSUNPREUgKnUsIFB5X3NzaXplX3QgbGVuZ3RoLCBpbnQgYmFzZSkKIHsKKyAgICBQeU9iamVjdCAqdiwgKnVuaWNvZGUgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUodSwgbGVuZ3RoKTsKKyAgICBpZiAodW5pY29kZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB2ID0gUHlMb25nX0Zyb21Vbmljb2RlT2JqZWN0KHVuaWNvZGUsIGJhc2UpOworICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICByZXR1cm4gdjsKK30KKworUHlPYmplY3QgKgorUHlMb25nX0Zyb21Vbmljb2RlT2JqZWN0KFB5T2JqZWN0ICp1LCBpbnQgYmFzZSkKK3sKICAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIFB5T2JqZWN0ICphc2NpaWRpZzsKICAgICBjaGFyICpidWZmZXIsICplbmQ7Ci0gICAgUHlfc3NpemVfdCBpLCBidWZsZW47Ci0gICAgUHlfVU5JQ09ERSAqcHRyOworICAgIFB5X3NzaXplX3QgYnVmbGVuOwogCi0gICAgYXNjaWlkaWcgPSBQeVVuaWNvZGVfVHJhbnNmb3JtRGVjaW1hbFRvQVNDSUkodSwgbGVuZ3RoKTsKKyAgICBhc2NpaWRpZyA9IF9QeVVuaWNvZGVfVHJhbnNmb3JtRGVjaW1hbEFuZFNwYWNlVG9BU0NJSSh1KTsKICAgICBpZiAoYXNjaWlkaWcgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgLyogUmVwbGFjZSBub24tQVNDSUkgd2hpdGVzcGFjZSB3aXRoICcgJyAqLwotICAgIHB0ciA9IFB5VW5pY29kZV9BU19VTklDT0RFKGFzY2lpZGlnKTsKLSAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjaCA9IHB0cltpXTsKLSAgICAgICAgaWYgKGNoID4gMTI3ICYmIFB5X1VOSUNPREVfSVNTUEFDRShjaCkpCi0gICAgICAgICAgICBwdHJbaV0gPSAnICc7Ci0gICAgfQotICAgIGJ1ZmZlciA9IF9QeVVuaWNvZGVfQXNTdHJpbmdBbmRTaXplKGFzY2lpZGlnLCAmYnVmbGVuKTsKKyAgICBidWZmZXIgPSBQeVVuaWNvZGVfQXNVVEY4QW5kU2l6ZShhc2NpaWRpZywgJmJ1Zmxlbik7CiAgICAgaWYgKGJ1ZmZlciA9PSBOVUxMKSB7CiAgICAgICAgIFB5X0RFQ1JFRihhc2NpaWRpZyk7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMjQ0Myw4ICsyNTc3LDcgQEAKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgIH0KLSAgICBhc3NlcnQoMSA8PSB4X3NpemUgJiYKLSAgICAgICAgICAgeF9zaXplIDw9IChQeV9zc2l6ZV90KShzaXplb2YoeF9kaWdpdHMpL3NpemVvZihkaWdpdCkpKTsKKyAgICBhc3NlcnQoMSA8PSB4X3NpemUgJiYgeF9zaXplIDw9IChQeV9zc2l6ZV90KVB5X0FSUkFZX0xFTkdUSCh4X2RpZ2l0cykpOwogCiAgICAgLyogUm91bmQsIGFuZCBjb252ZXJ0IHRvIGRvdWJsZS4gKi8KICAgICB4X2RpZ2l0c1swXSArPSBoYWxmX2V2ZW5fY29ycmVjdGlvblt4X2RpZ2l0c1swXSAmIDddOwpAQCAtMjQ4MSwxMCArMjYxNCwxNCBAQAogICAgIFB5X3NzaXplX3QgZXhwb25lbnQ7CiAgICAgZG91YmxlIHg7CiAKLSAgICBpZiAodiA9PSBOVUxMIHx8ICFQeUxvbmdfQ2hlY2sodikpIHsKKyAgICBpZiAodiA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOwogICAgICAgICByZXR1cm4gLTEuMDsKICAgICB9CisgICAgaWYgKCFQeUxvbmdfQ2hlY2sodikpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImFuIGludGVnZXIgaXMgcmVxdWlyZWQiKTsKKyAgICAgICAgcmV0dXJuIC0xLjA7CisgICAgfQogICAgIHggPSBfUHlMb25nX0ZyZXhwKChQeUxvbmdPYmplY3QgKil2LCAmZXhwb25lbnQpOwogICAgIGlmICgoeCA9PSAtMS4wICYmIFB5RXJyX09jY3VycmVkKCkpIHx8IGV4cG9uZW50ID4gREJMX01BWF9FWFApIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCkBAIC0zNjA5LDggKzM3NDYsNyBAQAogICAgIGVsc2UgewogICAgICAgICBQeV9ERUNSRUYoYSk7CiAgICAgICAgIFB5X0RFQ1JFRihiKTsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOworICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAgICAgfQogCiAgICAgaWYgKFB5X1NJWkUoYikgPCAwKSB7ICAvKiBpZiBleHBvbmVudCBpcyBuZWdhdGl2ZSAqLwpAQCAtNDEzNyw5ICs0MjczLDcgQEAKICAgICB9CiAKICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKHgpKQotICAgICAgICByZXR1cm4gUHlMb25nX0Zyb21Vbmljb2RlKFB5VW5pY29kZV9BU19VTklDT0RFKHgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh4KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KWJhc2UpOworICAgICAgICByZXR1cm4gUHlMb25nX0Zyb21Vbmljb2RlT2JqZWN0KHgsIChpbnQpYmFzZSk7CiAgICAgZWxzZSBpZiAoUHlCeXRlQXJyYXlfQ2hlY2soeCkgfHwgUHlCeXRlc19DaGVjayh4KSkgewogICAgICAgICAvKiBTaW5jZSBQeUxvbmdfRnJvbVN0cmluZyBkb2Vzbid0IGhhdmUgYSBsZW5ndGggcGFyYW1ldGVyLAogICAgICAgICAgKiBjaGVjayBoZXJlIGZvciBwb3NzaWJsZSBOVUxzIGluIHRoZSBzdHJpbmcuICovCkBAIC00MjE4LDEyICs0MzUyLDIyIEBACiBsb25nX19mb3JtYXRfXyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlPYmplY3QgKmZvcm1hdF9zcGVjOworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOworICAgIGludCByZXQ7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6X19mb3JtYXRfXyIsICZmb3JtYXRfc3BlYykpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiBfUHlMb25nX0Zvcm1hdEFkdmFuY2VkKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUoZm9ybWF0X3NwZWMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShmb3JtYXRfc3BlYykpOworCisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIsIDApOworICAgIHJldCA9IF9QeUxvbmdfRm9ybWF0QWR2YW5jZWRXcml0ZXIoCisgICAgICAgICZ3cml0ZXIsCisgICAgICAgIHNlbGYsCisgICAgICAgIGZvcm1hdF9zcGVjLCAwLCBQeVVuaWNvZGVfR0VUX0xFTkdUSChmb3JtYXRfc3BlYykpOworICAgIGlmIChyZXQgPT0gLTEpIHsKKyAgICAgICAgX1B5VW5pY29kZVdyaXRlcl9EZWFsbG9jKCZ3cml0ZXIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuIF9QeVVuaWNvZGVXcml0ZXJfRmluaXNoKCZ3cml0ZXIpOwogfQogCiAvKiBSZXR1cm4gYSBwYWlyIChxLCByKSBzdWNoIHRoYXQgYSA9IGIgKiBxICsgciwgYW5kCmRpZmYgLS1naXQgYS9PYmplY3RzL21lbW9yeW9iamVjdC5jIGIvT2JqZWN0cy9tZW1vcnlvYmplY3QuYwppbmRleCAyZTMyYjJhLi42MjQyN2Q0IDEwMDY0NAotLS0gYS9PYmplY3RzL21lbW9yeW9iamVjdC5jCisrKyBiL09iamVjdHMvbWVtb3J5b2JqZWN0LmMKQEAgLTEsMTI2ICsxLDkxNiBAQAotCiAvKiBNZW1vcnl2aWV3IG9iamVjdCBpbXBsZW1lbnRhdGlvbiAqLwogCiAjaW5jbHVkZSAiUHl0aG9uLmgiCisjaW5jbHVkZSA8c3RkZGVmLmg+CiAKLSNkZWZpbmUgSVNfUkVMRUFTRUQobWVtb2JqKSBcCi0gICAgKCgoUHlNZW1vcnlWaWV3T2JqZWN0ICopIG1lbW9iaiktPnZpZXcuYnVmID09IE5VTEwpCiAKLSNkZWZpbmUgQ0hFQ0tfUkVMRUFTRUQobWVtb2JqKSBcCi0gICAgaWYgKElTX1JFTEVBU0VEKG1lbW9iaikpIHsgXAotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgXAotICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhdGlvbiBmb3JiaWRkZW4gb24gcmVsZWFzZWQgbWVtb3J5dmlldyBvYmplY3QiKTsgXAotICAgICAgICByZXR1cm4gTlVMTDsgXAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hbmFnZWRCdWZmZXIgT2JqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKgorICAgTWFuYWdlZEJ1ZmZlciBPYmplY3Q6CisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgICBUaGUgcHVycG9zZSBvZiB0aGlzIG9iamVjdCBpcyB0byBmYWNpbGl0YXRlIHRoZSBoYW5kbGluZyBvZiBjaGFpbmVkCisgICAgIG1lbW9yeXZpZXdzIHRoYXQgaGF2ZSB0aGUgc2FtZSB1bmRlcmx5aW5nIGV4cG9ydGluZyBvYmplY3QuIFBFUC0zMTE4CisgICAgIGFsbG93cyB0aGUgdW5kZXJseWluZyBvYmplY3QgdG8gY2hhbmdlIHdoaWxlIGEgdmlldyBpcyBleHBvcnRlZC4gVGhpcworICAgICBjb3VsZCBsZWFkIHRvIHVuZXhwZWN0ZWQgcmVzdWx0cyB3aGVuIGNvbnN0cnVjdGluZyBhIG5ldyBtZW1vcnl2aWV3CisgICAgIGZyb20gYW4gZXhpc3RpbmcgbWVtb3J5dmlldy4KKworICAgICBSYXRoZXIgdGhhbiByZXBlYXRlZGx5IHJlZGlyZWN0aW5nIGJ1ZmZlciByZXF1ZXN0cyB0byB0aGUgb3JpZ2luYWwgYmFzZQorICAgICBvYmplY3QsIGFsbCBjaGFpbmVkIG1lbW9yeXZpZXdzIHVzZSBhIHNpbmdsZSBidWZmZXIgc25hcHNob3QuIFRoaXMKKyAgICAgc25hcHNob3QgaXMgZ2VuZXJhdGVkIGJ5IHRoZSBjb25zdHJ1Y3RvciBfUHlNYW5hZ2VkQnVmZmVyX0Zyb21PYmplY3QoKS4KKworICAgT3duZXJzaGlwIHJ1bGVzOgorICAgLS0tLS0tLS0tLS0tLS0tLQorCisgICAgIFRoZSBtYXN0ZXIgYnVmZmVyIGluc2lkZSBhIG1hbmFnZWQgYnVmZmVyIGlzIGZpbGxlZCBpbiBieSB0aGUgb3JpZ2luYWwKKyAgICAgYmFzZSBvYmplY3QuIHNoYXBlLCBzdHJpZGVzLCBzdWJvZmZzZXRzIGFuZCBmb3JtYXQgYXJlIHJlYWQtb25seSBmb3IKKyAgICAgYWxsIGNvbnN1bWVycy4KKworICAgICBBIG1lbW9yeXZpZXcncyBidWZmZXIgaXMgYSBwcml2YXRlIGNvcHkgb2YgdGhlIGV4cG9ydGVyJ3MgYnVmZmVyLiBzaGFwZSwKKyAgICAgc3RyaWRlcyBhbmQgc3Vib2Zmc2V0cyBiZWxvbmcgdG8gdGhlIG1lbW9yeXZpZXcgYW5kIGFyZSB0aHVzIHdyaXRhYmxlLgorCisgICAgIElmIGEgbWVtb3J5dmlldyBpdHNlbGYgZXhwb3J0cyBzZXZlcmFsIGJ1ZmZlcnMgdmlhIG1lbW9yeV9nZXRidWYoKSwgYWxsCisgICAgIGJ1ZmZlciBjb3BpZXMgc2hhcmUgc2hhcGUsIHN0cmlkZXMgYW5kIHN1Ym9mZnNldHMuIEluIHRoaXMgY2FzZSwgdGhlCisgICAgIGFycmF5cyBhcmUgTk9UIHdyaXRhYmxlLgorCisgICBSZWZlcmVuY2UgY291bnQgYXNzdW1wdGlvbnM6CisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAgVGhlICdvYmonIG1lbWJlciBvZiBhIFB5X2J1ZmZlciBtdXN0IGVpdGhlciBiZSBOVUxMIG9yIHJlZmVyIHRvIHRoZQorICAgICBleHBvcnRpbmcgYmFzZSBvYmplY3QuIEluIHRoZSBQeXRob24gY29kZWJhc2UsIGFsbCBnZXRidWZmZXJwcm9jcworICAgICByZXR1cm4gYSBuZXcgcmVmZXJlbmNlIHRvIHZpZXcub2JqIChleGFtcGxlOiBieXRlc19idWZmZXJfZ2V0YnVmZmVyKCkpLgorCisgICAgIFB5QnVmZmVyX1JlbGVhc2UoKSBkZWNyZW1lbnRzIHZpZXcub2JqIChpZiBub24tTlVMTCksIHNvIHRoZQorICAgICByZWxlYXNlYnVmZmVycHJvY3MgbXVzdCBOT1QgZGVjcmVtZW50IHZpZXcub2JqLgorKi8KKworCisjZGVmaW5lIFhTVFJJTkdJWkUodikgI3YKKyNkZWZpbmUgU1RSSU5HSVpFKHYpIFhTVFJJTkdJWkUodikKKworI2RlZmluZSBDSEVDS19NQlVGX1JFTEVBU0VEKG1idWYpIFwKKyAgICBpZiAoKChfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0ICopbWJ1ZiktPmZsYWdzJl9QeV9NQU5BR0VEX0JVRkZFUl9SRUxFQVNFRCkgeyBcCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgIm9wZXJhdGlvbiBmb3JiaWRkZW4gb24gcmVsZWFzZWQgbWVtb3J5dmlldyBvYmplY3QiKTsgICAgICAgICAgICAgIFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgfQogCi0jZGVmaW5lIENIRUNLX1JFTEVBU0VEX0lOVChtZW1vYmopIFwKLSAgICBpZiAoSVNfUkVMRUFTRUQobWVtb2JqKSkgeyBcCi0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAib3BlcmF0aW9uIGZvcmJpZGRlbiBvbiByZWxlYXNlZCBtZW1vcnl2aWV3IG9iamVjdCIpOyBcCi0gICAgICAgIHJldHVybiAtMTsgXAotICAgIH0KIAotc3RhdGljIFB5X3NzaXplX3QKLWdldF9zaGFwZTAoUHlfYnVmZmVyICpidWYpCitQeV9MT0NBTF9JTkxJTkUoX1B5TWFuYWdlZEJ1ZmZlck9iamVjdCAqKQorbWJ1Zl9hbGxvYyh2b2lkKQogewotICAgIGlmIChidWYtPnNoYXBlICE9IE5VTEwpCi0gICAgICAgIHJldHVybiBidWYtPnNoYXBlWzBdOwotICAgIGlmIChidWYtPm5kaW0gPT0gMCkKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgImV4cG9ydGVkIGJ1ZmZlciBkb2VzIG5vdCBoYXZlIGFueSBzaGFwZSBpbmZvcm1hdGlvbiBhc3NvY2lhdGVkICIKLSAgICAgICAgInRvIGl0Iik7Ci0gICAgcmV0dXJuIC0xOworICAgIF9QeU1hbmFnZWRCdWZmZXJPYmplY3QgKm1idWY7CisKKyAgICBtYnVmID0gKF9QeU1hbmFnZWRCdWZmZXJPYmplY3QgKikKKyAgICAgICAgUHlPYmplY3RfR0NfTmV3KF9QeU1hbmFnZWRCdWZmZXJPYmplY3QsICZfUHlNYW5hZ2VkQnVmZmVyX1R5cGUpOworICAgIGlmIChtYnVmID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIG1idWYtPmZsYWdzID0gMDsKKyAgICBtYnVmLT5leHBvcnRzID0gMDsKKyAgICBtYnVmLT5tYXN0ZXIub2JqID0gTlVMTDsKKyAgICBfUHlPYmplY3RfR0NfVFJBQ0sobWJ1Zik7CisKKyAgICByZXR1cm4gbWJ1ZjsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK19QeU1hbmFnZWRCdWZmZXJfRnJvbU9iamVjdChQeU9iamVjdCAqYmFzZSkKK3sKKyAgICBfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0ICptYnVmOworCisgICAgbWJ1ZiA9IG1idWZfYWxsb2MoKTsKKyAgICBpZiAobWJ1ZiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGlmIChQeU9iamVjdF9HZXRCdWZmZXIoYmFzZSwgJm1idWYtPm1hc3RlciwgUHlCVUZfRlVMTF9STykgPCAwKSB7CisgICAgICAgIG1idWYtPm1hc3Rlci5vYmogPSBOVUxMOworICAgICAgICBQeV9ERUNSRUYobWJ1Zik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiAoUHlPYmplY3QgKiltYnVmOwogfQogCiBzdGF0aWMgdm9pZAotZHVwX2J1ZmZlcihQeV9idWZmZXIgKmRlc3QsIFB5X2J1ZmZlciAqc3JjKQorbWJ1Zl9yZWxlYXNlKF9QeU1hbmFnZWRCdWZmZXJPYmplY3QgKnNlbGYpCiB7Ci0gICAgKmRlc3QgPSAqc3JjOwotICAgIGlmIChzcmMtPm5kaW0gPT0gMSAmJiBzcmMtPnNoYXBlICE9IE5VTEwpIHsKLSAgICAgICAgZGVzdC0+c2hhcGUgPSAmKGRlc3QtPnNtYWxsdGFibGVbMF0pOwotICAgICAgICBkZXN0LT5zaGFwZVswXSA9IGdldF9zaGFwZTAoc3JjKTsKLSAgICB9Ci0gICAgaWYgKHNyYy0+bmRpbSA9PSAxICYmIHNyYy0+c3RyaWRlcyAhPSBOVUxMKSB7Ci0gICAgICAgIGRlc3QtPnN0cmlkZXMgPSAmKGRlc3QtPnNtYWxsdGFibGVbMV0pOwotICAgICAgICBkZXN0LT5zdHJpZGVzWzBdID0gc3JjLT5zdHJpZGVzWzBdOwotICAgIH0KKyAgICBpZiAoc2VsZi0+ZmxhZ3MmX1B5X01BTkFHRURfQlVGRkVSX1JFTEVBU0VEKQorICAgICAgICByZXR1cm47CisKKyAgICAvKiBOT1RFOiBhdCB0aGlzIHBvaW50IHNlbGYtPmV4cG9ydHMgY2FuIHN0aWxsIGJlID4gMCBpZiB0aGlzIGZ1bmN0aW9uCisgICAgICAgaXMgY2FsbGVkIGZyb20gbWJ1Zl9jbGVhcigpIHRvIGJyZWFrIHVwIGEgcmVmZXJlbmNlIGN5Y2xlLiAqLworICAgIHNlbGYtPmZsYWdzIHw9IF9QeV9NQU5BR0VEX0JVRkZFUl9SRUxFQVNFRDsKKworICAgIC8qIFB5QnVmZmVyX1JlbGVhc2UoKSBkZWNyZW1lbnRzIG1hc3Rlci0+b2JqIGFuZCBzZXRzIGl0IHRvIE5VTEwuICovCisgICAgX1B5T2JqZWN0X0dDX1VOVFJBQ0soc2VsZik7CisgICAgUHlCdWZmZXJfUmVsZWFzZSgmc2VsZi0+bWFzdGVyKTsKK30KKworc3RhdGljIHZvaWQKK21idWZfZGVhbGxvYyhfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0ICpzZWxmKQoreworICAgIGFzc2VydChzZWxmLT5leHBvcnRzID09IDApOworICAgIG1idWZfcmVsZWFzZShzZWxmKTsKKyAgICBpZiAoc2VsZi0+ZmxhZ3MmX1B5X01BTkFHRURfQlVGRkVSX0ZSRUVfRk9STUFUKQorICAgICAgICBQeU1lbV9GcmVlKHNlbGYtPm1hc3Rlci5mb3JtYXQpOworICAgIFB5T2JqZWN0X0dDX0RlbChzZWxmKTsKIH0KIAogc3RhdGljIGludAotbWVtb3J5X2dldGJ1ZihQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYsIFB5X2J1ZmZlciAqdmlldywgaW50IGZsYWdzKQorbWJ1Zl90cmF2ZXJzZShfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0ICpzZWxmLCB2aXNpdHByb2MgdmlzaXQsIHZvaWQgKmFyZykKIHsKLSAgICBpbnQgcmVzID0gMDsKLSAgICBDSEVDS19SRUxFQVNFRF9JTlQoc2VsZik7Ci0gICAgaWYgKHNlbGYtPnZpZXcub2JqICE9IE5VTEwpCi0gICAgICAgIHJlcyA9IFB5T2JqZWN0X0dldEJ1ZmZlcihzZWxmLT52aWV3Lm9iaiwgdmlldywgZmxhZ3MpOwotICAgIGlmICh2aWV3KQotICAgICAgICBkdXBfYnVmZmVyKHZpZXcsICZzZWxmLT52aWV3KTsKLSAgICByZXR1cm4gcmVzOworICAgIFB5X1ZJU0lUKHNlbGYtPm1hc3Rlci5vYmopOworICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZAotbWVtb3J5X3JlbGVhc2VidWYoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmLCBQeV9idWZmZXIgKnZpZXcpCitzdGF0aWMgaW50CittYnVmX2NsZWFyKF9QeU1hbmFnZWRCdWZmZXJPYmplY3QgKnNlbGYpCiB7Ci0gICAgUHlCdWZmZXJfUmVsZWFzZSh2aWV3KTsKKyAgICBhc3NlcnQoc2VsZi0+ZXhwb3J0cyA+PSAwKTsKKyAgICBtYnVmX3JlbGVhc2Uoc2VsZik7CisgICAgcmV0dXJuIDA7CiB9CiAKK1B5VHlwZU9iamVjdCBfUHlNYW5hZ2VkQnVmZmVyX1R5cGUgPSB7CisgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKCZQeVR5cGVfVHlwZSwgMCkKKyAgICAibWFuYWdlZGJ1ZmZlciIsCisgICAgc2l6ZW9mKF9QeU1hbmFnZWRCdWZmZXJPYmplY3QpLAorICAgIDAsCisgICAgKGRlc3RydWN0b3IpbWJ1Zl9kZWFsbG9jLCAgICAgICAgICAgICAgICAvKiB0cF9kZWFsbG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmVzZXJ2ZWQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JlcHIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfc2VxdWVuY2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX21hcHBpbmcgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NhbGwgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLworICAgIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyLCAgICAgICAgICAgICAgICAgLyogdHBfZ2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHJvICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19idWZmZXIgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0hBVkVfR0MsIC8qIHRwX2ZsYWdzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KKyAgICAodHJhdmVyc2Vwcm9jKW1idWZfdHJhdmVyc2UsICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCisgICAgKGlucXVpcnkpbWJ1Zl9jbGVhciAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnlWaWV3IE9iamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIEluIHRoZSBwcm9jZXNzIG9mIGJyZWFraW5nIHJlZmVyZW5jZSBjeWNsZXMgbWJ1Zl9yZWxlYXNlKCkgY2FuIGJlCisgICBjYWxsZWQgYmVmb3JlIG1lbW9yeV9yZWxlYXNlKCkuICovCisjZGVmaW5lIEJBU0VfSU5BQ0NFU1NJQkxFKG12KSBcCisgICAgKCgoUHlNZW1vcnlWaWV3T2JqZWN0ICopbXYpLT5mbGFncyZfUHlfTUVNT1JZVklFV19SRUxFQVNFRCB8fCBcCisgICAgICgoUHlNZW1vcnlWaWV3T2JqZWN0ICopbXYpLT5tYnVmLT5mbGFncyZfUHlfTUFOQUdFRF9CVUZGRVJfUkVMRUFTRUQpCisKKyNkZWZpbmUgQ0hFQ0tfUkVMRUFTRUQobXYpIFwKKyAgICBpZiAoQkFTRV9JTkFDQ0VTU0lCTEUobXYpKSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgICJvcGVyYXRpb24gZm9yYmlkZGVuIG9uIHJlbGVhc2VkIG1lbW9yeXZpZXcgb2JqZWN0Iik7IFwKKyAgICAgICAgcmV0dXJuIE5VTEw7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyNkZWZpbmUgQ0hFQ0tfUkVMRUFTRURfSU5UKG12KSBcCisgICAgaWYgKEJBU0VfSU5BQ0NFU1NJQkxFKG12KSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICAib3BlcmF0aW9uIGZvcmJpZGRlbiBvbiByZWxlYXNlZCBtZW1vcnl2aWV3IG9iamVjdCIpOyBcCisgICAgICAgIHJldHVybiAtMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfQorCisjZGVmaW5lIENIRUNLX0xJU1RfT1JfVFVQTEUodikgXAorICAgIGlmICghUHlMaXN0X0NoZWNrKHYpICYmICFQeVR1cGxlX0NoZWNrKHYpKSB7IFwKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgICAgICAgICBcCisgICAgICAgICAgICAjdiAiIG11c3QgYmUgYSBsaXN0IG9yIGEgdHVwbGUiKTsgICAgXAorICAgICAgICByZXR1cm4gTlVMTDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB9CisKKyNkZWZpbmUgVklFV19BRERSKG12KSAoJigoUHlNZW1vcnlWaWV3T2JqZWN0ICopbXYpLT52aWV3KQorCisvKiBDaGVjayBmb3IgdGhlIHByZXNlbmNlIG9mIHN1Ym9mZnNldHMgaW4gdGhlIGZpcnN0IGRpbWVuc2lvbi4gKi8KKyNkZWZpbmUgSEFWRV9QVFIoc3Vib2Zmc2V0cykgKHN1Ym9mZnNldHMgJiYgc3Vib2Zmc2V0c1swXSA+PSAwKQorLyogQWRqdXN0IHB0ciBpZiBzdWJvZmZzZXRzIGFyZSBwcmVzZW50LiAqLworI2RlZmluZSBBREpVU1RfUFRSKHB0ciwgc3Vib2Zmc2V0cykgXAorICAgIChIQVZFX1BUUihzdWJvZmZzZXRzKSA/ICooKGNoYXIqKilwdHIpICsgc3Vib2Zmc2V0c1swXSA6IHB0cikKKworLyogTWVtb3J5dmlldyBidWZmZXIgcHJvcGVydGllcyAqLworI2RlZmluZSBNVl9DX0NPTlRJR1VPVVMoZmxhZ3MpIChmbGFncyYoX1B5X01FTU9SWVZJRVdfU0NBTEFSfF9QeV9NRU1PUllWSUVXX0MpKQorI2RlZmluZSBNVl9GX0NPTlRJR1VPVVMoZmxhZ3MpIFwKKyAgICAoZmxhZ3MmKF9QeV9NRU1PUllWSUVXX1NDQUxBUnxfUHlfTUVNT1JZVklFV19GT1JUUkFOKSkKKyNkZWZpbmUgTVZfQU5ZX0NPTlRJR1VPVVMoZmxhZ3MpIFwKKyAgICAoZmxhZ3MmKF9QeV9NRU1PUllWSUVXX1NDQUxBUnxfUHlfTUVNT1JZVklFV19DfF9QeV9NRU1PUllWSUVXX0ZPUlRSQU4pKQorCisvKiBGYXN0IGNvbnRpZ3VpdHkgdGVzdC4gQ2FsbGVyIG11c3QgZW5zdXJlIHN1Ym9mZnNldHM9PU5VTEwgYW5kIG5kaW09PTEuICovCisjZGVmaW5lIE1WX0NPTlRJR1VPVVNfTkRJTTEodmlldykgXAorICAgICgodmlldyktPnNoYXBlWzBdID09IDEgfHwgKHZpZXcpLT5zdHJpZGVzWzBdID09ICh2aWV3KS0+aXRlbXNpemUpCisKKy8qIGdldGJ1ZmZlcigpIHJlcXVlc3RzICovCisjZGVmaW5lIFJFUV9JTkRJUkVDVChmbGFncykgKChmbGFncyZQeUJVRl9JTkRJUkVDVCkgPT0gUHlCVUZfSU5ESVJFQ1QpCisjZGVmaW5lIFJFUV9DX0NPTlRJR1VPVVMoZmxhZ3MpICgoZmxhZ3MmUHlCVUZfQ19DT05USUdVT1VTKSA9PSBQeUJVRl9DX0NPTlRJR1VPVVMpCisjZGVmaW5lIFJFUV9GX0NPTlRJR1VPVVMoZmxhZ3MpICgoZmxhZ3MmUHlCVUZfRl9DT05USUdVT1VTKSA9PSBQeUJVRl9GX0NPTlRJR1VPVVMpCisjZGVmaW5lIFJFUV9BTllfQ09OVElHVU9VUyhmbGFncykgKChmbGFncyZQeUJVRl9BTllfQ09OVElHVU9VUykgPT0gUHlCVUZfQU5ZX0NPTlRJR1VPVVMpCisjZGVmaW5lIFJFUV9TVFJJREVTKGZsYWdzKSAoKGZsYWdzJlB5QlVGX1NUUklERVMpID09IFB5QlVGX1NUUklERVMpCisjZGVmaW5lIFJFUV9TSEFQRShmbGFncykgKChmbGFncyZQeUJVRl9ORCkgPT0gUHlCVUZfTkQpCisjZGVmaW5lIFJFUV9XUklUQUJMRShmbGFncykgKGZsYWdzJlB5QlVGX1dSSVRBQkxFKQorI2RlZmluZSBSRVFfRk9STUFUKGZsYWdzKSAoZmxhZ3MmUHlCVUZfRk9STUFUKQorCisKIFB5RG9jX1NUUlZBUihtZW1vcnlfZG9jLAogIm1lbW9yeXZpZXcob2JqZWN0KVxuXAogXG5cCiBDcmVhdGUgYSBuZXcgbWVtb3J5dmlldyBvYmplY3Qgd2hpY2ggcmVmZXJlbmNlcyB0aGUgZ2l2ZW4gb2JqZWN0LiIpOwogCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICBDb3B5IG1lbW9yeXZpZXcgYnVmZmVycyAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogVGhlIGZ1bmN0aW9ucyBpbiB0aGlzIHNlY3Rpb24gdGFrZSBhIHNvdXJjZSBhbmQgYSBkZXN0aW5hdGlvbiBidWZmZXIKKyAgIHdpdGggdGhlIHNhbWUgbG9naWNhbCBzdHJ1Y3R1cmU6IGZvcm1hdCwgaXRlbXNpemUsIG5kaW0gYW5kIHNoYXBlCisgICBhcmUgaWRlbnRpY2FsLCB3aXRoIG5kaW0gPiAwLgorCisgICBOT1RFOiBBbGwgYnVmZmVycyBhcmUgYXNzdW1lZCB0byBoYXZlIFB5QlVGX0ZVTEwgaW5mb3JtYXRpb24sIHdoaWNoCisgICBpcyB0aGUgY2FzZSBmb3IgbWVtb3J5dmlld3MhICovCisKKworLyogQXNzdW1wdGlvbnM6IG5kaW0gPj0gMS4gVGhlIG1hY3JvIHRlc3RzIGZvciBhIGNvcm5lciBjYXNlIHRoYXQgc2hvdWxkCisgICBwZXJoYXBzIGJlIGV4cGxpY2l0bHkgZm9yYmlkZGVuIGluIHRoZSBQRVAuICovCisjZGVmaW5lIEhBVkVfU1VCT0ZGU0VUU19JTl9MQVNUX0RJTSh2aWV3KSBcCisgICAgKHZpZXctPnN1Ym9mZnNldHMgJiYgdmlldy0+c3Vib2Zmc2V0c1tkZXN0LT5uZGltLTFdID49IDApCisKK1B5X0xPQ0FMX0lOTElORShpbnQpCitsYXN0X2RpbV9pc19jb250aWd1b3VzKFB5X2J1ZmZlciAqZGVzdCwgUHlfYnVmZmVyICpzcmMpCit7CisgICAgYXNzZXJ0KGRlc3QtPm5kaW0gPiAwICYmIHNyYy0+bmRpbSA+IDApOworICAgIHJldHVybiAoIUhBVkVfU1VCT0ZGU0VUU19JTl9MQVNUX0RJTShkZXN0KSAmJgorICAgICAgICAgICAgIUhBVkVfU1VCT0ZGU0VUU19JTl9MQVNUX0RJTShzcmMpICYmCisgICAgICAgICAgICBkZXN0LT5zdHJpZGVzW2Rlc3QtPm5kaW0tMV0gPT0gZGVzdC0+aXRlbXNpemUgJiYKKyAgICAgICAgICAgIHNyYy0+c3RyaWRlc1tzcmMtPm5kaW0tMV0gPT0gc3JjLT5pdGVtc2l6ZSk7Cit9CisKKy8qIENoZWNrIHRoYXQgdGhlIGxvZ2ljYWwgc3RydWN0dXJlIG9mIHRoZSBkZXN0aW5hdGlvbiBhbmQgc291cmNlIGJ1ZmZlcnMKKyAgIGlzIGlkZW50aWNhbC4gKi8KK3N0YXRpYyBpbnQKK2NtcF9zdHJ1Y3R1cmUoUHlfYnVmZmVyICpkZXN0LCBQeV9idWZmZXIgKnNyYykKK3sKKyAgICBjb25zdCBjaGFyICpkZm10LCAqc2ZtdDsKKyAgICBpbnQgaTsKKworICAgIGFzc2VydChkZXN0LT5mb3JtYXQgJiYgc3JjLT5mb3JtYXQpOworICAgIGRmbXQgPSBkZXN0LT5mb3JtYXRbMF0gPT0gJ0AnID8gZGVzdC0+Zm9ybWF0KzEgOiBkZXN0LT5mb3JtYXQ7CisgICAgc2ZtdCA9IHNyYy0+Zm9ybWF0WzBdID09ICdAJyA/IHNyYy0+Zm9ybWF0KzEgOiBzcmMtPmZvcm1hdDsKKworICAgIGlmIChzdHJjbXAoZGZtdCwgc2ZtdCkgIT0gMCB8fAorICAgICAgICBkZXN0LT5pdGVtc2l6ZSAhPSBzcmMtPml0ZW1zaXplIHx8CisgICAgICAgIGRlc3QtPm5kaW0gIT0gc3JjLT5uZGltKSB7CisgICAgICAgIGdvdG8gdmFsdWVfZXJyb3I7CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IGRlc3QtPm5kaW07IGkrKykgeworICAgICAgICBpZiAoZGVzdC0+c2hhcGVbaV0gIT0gc3JjLT5zaGFwZVtpXSkKKyAgICAgICAgICAgIGdvdG8gdmFsdWVfZXJyb3I7CisgICAgICAgIGlmIChkZXN0LT5zaGFwZVtpXSA9PSAwKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIDA7CisKK3ZhbHVlX2Vycm9yOgorICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAibmRhcnJheSBhc3NpZ25tZW50OiBsdmFsdWUgYW5kIHJ2YWx1ZSBoYXZlIGRpZmZlcmVudCBzdHJ1Y3R1cmVzIik7CisgICAgcmV0dXJuIC0xOworfQorCisvKiBCYXNlIGNhc2UgZm9yIHJlY3Vyc2l2ZSBtdWx0aS1kaW1lbnNpb25hbCBjb3B5aW5nLiBDb250aWd1b3VzIGFycmF5cyBhcmUKKyAgIGNvcGllZCB3aXRoIHZlcnkgbGl0dGxlIG92ZXJoZWFkLiBBc3N1bXB0aW9uczogbmRpbSA9PSAxLCBtZW0gPT0gTlVMTCBvcgorICAgc2l6ZW9mKG1lbSkgPT0gc2hhcGVbMF0gKiBpdGVtc2l6ZS4gKi8KK3N0YXRpYyB2b2lkCitjb3B5X2Jhc2UoY29uc3QgUHlfc3NpemVfdCAqc2hhcGUsIFB5X3NzaXplX3QgaXRlbXNpemUsCisgICAgICAgICAgY2hhciAqZHB0ciwgY29uc3QgUHlfc3NpemVfdCAqZHN0cmlkZXMsIGNvbnN0IFB5X3NzaXplX3QgKmRzdWJvZmZzZXRzLAorICAgICAgICAgIGNoYXIgKnNwdHIsIGNvbnN0IFB5X3NzaXplX3QgKnNzdHJpZGVzLCBjb25zdCBQeV9zc2l6ZV90ICpzc3Vib2Zmc2V0cywKKyAgICAgICAgICBjaGFyICptZW0pCit7CisgICAgaWYgKG1lbSA9PSBOVUxMKSB7IC8qIGNvbnRpZ3VvdXMgKi8KKyAgICAgICAgUHlfc3NpemVfdCBzaXplID0gc2hhcGVbMF0gKiBpdGVtc2l6ZTsKKyAgICAgICAgaWYgKGRwdHIgKyBzaXplIDwgc3B0ciB8fCBzcHRyICsgc2l6ZSA8IGRwdHIpCisgICAgICAgICAgICBtZW1jcHkoZHB0ciwgc3B0ciwgc2l6ZSk7IC8qIG5vIG92ZXJsYXBwaW5nICovCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1lbW1vdmUoZHB0ciwgc3B0ciwgc2l6ZSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBjaGFyICpwOworICAgICAgICBQeV9zc2l6ZV90IGk7CisgICAgICAgIGZvciAoaT0wLCBwPW1lbTsgaSA8IHNoYXBlWzBdOyBwKz1pdGVtc2l6ZSwgc3B0cis9c3N0cmlkZXNbMF0sIGkrKykgeworICAgICAgICAgICAgY2hhciAqeHNwdHIgPSBBREpVU1RfUFRSKHNwdHIsIHNzdWJvZmZzZXRzKTsKKyAgICAgICAgICAgIG1lbWNweShwLCB4c3B0ciwgaXRlbXNpemUpOworICAgICAgICB9CisgICAgICAgIGZvciAoaT0wLCBwPW1lbTsgaSA8IHNoYXBlWzBdOyBwKz1pdGVtc2l6ZSwgZHB0cis9ZHN0cmlkZXNbMF0sIGkrKykgeworICAgICAgICAgICAgY2hhciAqeGRwdHIgPSBBREpVU1RfUFRSKGRwdHIsIGRzdWJvZmZzZXRzKTsKKyAgICAgICAgICAgIG1lbWNweSh4ZHB0ciwgcCwgaXRlbXNpemUpOworICAgICAgICB9CisgICAgfQorCit9CisKKy8qIFJlY3Vyc2l2ZWx5IGNvcHkgYSBzb3VyY2UgYnVmZmVyIHRvIGEgZGVzdGluYXRpb24gYnVmZmVyLiBUaGUgdHdvIGJ1ZmZlcnMKKyAgIGhhdmUgdGhlIHNhbWUgbmRpbSwgc2hhcGUgYW5kIGl0ZW1zaXplLiAqLworc3RhdGljIHZvaWQKK2NvcHlfcmVjKGNvbnN0IFB5X3NzaXplX3QgKnNoYXBlLCBQeV9zc2l6ZV90IG5kaW0sIFB5X3NzaXplX3QgaXRlbXNpemUsCisgICAgICAgICBjaGFyICpkcHRyLCBjb25zdCBQeV9zc2l6ZV90ICpkc3RyaWRlcywgY29uc3QgUHlfc3NpemVfdCAqZHN1Ym9mZnNldHMsCisgICAgICAgICBjaGFyICpzcHRyLCBjb25zdCBQeV9zc2l6ZV90ICpzc3RyaWRlcywgY29uc3QgUHlfc3NpemVfdCAqc3N1Ym9mZnNldHMsCisgICAgICAgICBjaGFyICptZW0pCit7CisgICAgUHlfc3NpemVfdCBpOworCisgICAgYXNzZXJ0KG5kaW0gPj0gMSk7CisKKyAgICBpZiAobmRpbSA9PSAxKSB7CisgICAgICAgIGNvcHlfYmFzZShzaGFwZSwgaXRlbXNpemUsCisgICAgICAgICAgICAgICAgICBkcHRyLCBkc3RyaWRlcywgZHN1Ym9mZnNldHMsCisgICAgICAgICAgICAgICAgICBzcHRyLCBzc3RyaWRlcywgc3N1Ym9mZnNldHMsCisgICAgICAgICAgICAgICAgICBtZW0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yIChpID0gMDsgaSA8IHNoYXBlWzBdOyBkcHRyKz1kc3RyaWRlc1swXSwgc3B0cis9c3N0cmlkZXNbMF0sIGkrKykgeworICAgICAgICBjaGFyICp4ZHB0ciA9IEFESlVTVF9QVFIoZHB0ciwgZHN1Ym9mZnNldHMpOworICAgICAgICBjaGFyICp4c3B0ciA9IEFESlVTVF9QVFIoc3B0ciwgc3N1Ym9mZnNldHMpOworCisgICAgICAgIGNvcHlfcmVjKHNoYXBlKzEsIG5kaW0tMSwgaXRlbXNpemUsCisgICAgICAgICAgICAgICAgIHhkcHRyLCBkc3RyaWRlcysxLCBkc3Vib2Zmc2V0cyA/IGRzdWJvZmZzZXRzKzEgOiBOVUxMLAorICAgICAgICAgICAgICAgICB4c3B0ciwgc3N0cmlkZXMrMSwgc3N1Ym9mZnNldHMgPyBzc3Vib2Zmc2V0cysxIDogTlVMTCwKKyAgICAgICAgICAgICAgICAgbWVtKTsKKyAgICB9Cit9CisKKy8qIEZhc3RlciBjb3B5aW5nIG9mIG9uZS1kaW1lbnNpb25hbCBhcnJheXMuICovCitzdGF0aWMgaW50Citjb3B5X3NpbmdsZShQeV9idWZmZXIgKmRlc3QsIFB5X2J1ZmZlciAqc3JjKQoreworICAgIGNoYXIgKm1lbSA9IE5VTEw7CisKKyAgICBhc3NlcnQoZGVzdC0+bmRpbSA9PSAxKTsKKworICAgIGlmIChjbXBfc3RydWN0dXJlKGRlc3QsIHNyYykgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAoIWxhc3RfZGltX2lzX2NvbnRpZ3VvdXMoZGVzdCwgc3JjKSkgeworICAgICAgICBtZW0gPSBQeU1lbV9NYWxsb2MoZGVzdC0+c2hhcGVbMF0gKiBkZXN0LT5pdGVtc2l6ZSk7CisgICAgICAgIGlmIChtZW0gPT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNvcHlfYmFzZShkZXN0LT5zaGFwZSwgZGVzdC0+aXRlbXNpemUsCisgICAgICAgICAgICAgIGRlc3QtPmJ1ZiwgZGVzdC0+c3RyaWRlcywgZGVzdC0+c3Vib2Zmc2V0cywKKyAgICAgICAgICAgICAgc3JjLT5idWYsIHNyYy0+c3RyaWRlcywgc3JjLT5zdWJvZmZzZXRzLAorICAgICAgICAgICAgICBtZW0pOworCisgICAgaWYgKG1lbSkKKyAgICAgICAgUHlNZW1fRnJlZShtZW0pOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qIFJlY3Vyc2l2ZWx5IGNvcHkgc3JjIHRvIGRlc3QuIEJvdGggYnVmZmVycyBtdXN0IGhhdmUgdGhlIHNhbWUgYmFzaWMKKyAgIHN0cnVjdHVyZS4gQ29weWluZyBpcyBhdG9taWMsIHRoZSBmdW5jdGlvbiBuZXZlciBmYWlscyB3aXRoIGEgcGFydGlhbAorICAgY29weS4gKi8KK3N0YXRpYyBpbnQKK2NvcHlfYnVmZmVyKFB5X2J1ZmZlciAqZGVzdCwgUHlfYnVmZmVyICpzcmMpCit7CisgICAgY2hhciAqbWVtID0gTlVMTDsKKworICAgIGFzc2VydChkZXN0LT5uZGltID4gMCk7CisKKyAgICBpZiAoY21wX3N0cnVjdHVyZShkZXN0LCBzcmMpIDwgMCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKCFsYXN0X2RpbV9pc19jb250aWd1b3VzKGRlc3QsIHNyYykpIHsKKyAgICAgICAgbWVtID0gUHlNZW1fTWFsbG9jKGRlc3QtPnNoYXBlW2Rlc3QtPm5kaW0tMV0gKiBkZXN0LT5pdGVtc2l6ZSk7CisgICAgICAgIGlmIChtZW0gPT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNvcHlfcmVjKGRlc3QtPnNoYXBlLCBkZXN0LT5uZGltLCBkZXN0LT5pdGVtc2l6ZSwKKyAgICAgICAgICAgICBkZXN0LT5idWYsIGRlc3QtPnN0cmlkZXMsIGRlc3QtPnN1Ym9mZnNldHMsCisgICAgICAgICAgICAgc3JjLT5idWYsIHNyYy0+c3RyaWRlcywgc3JjLT5zdWJvZmZzZXRzLAorICAgICAgICAgICAgIG1lbSk7CisKKyAgICBpZiAobWVtKQorICAgICAgICBQeU1lbV9GcmVlKG1lbSk7CisKKyAgICByZXR1cm4gMDsKK30KKworLyogSW5pdGlhbGl6ZSBzdHJpZGVzIGZvciBhIEMtY29udGlndW91cyBhcnJheS4gKi8KK1B5X0xPQ0FMX0lOTElORSh2b2lkKQoraW5pdF9zdHJpZGVzX2Zyb21fc2hhcGUoUHlfYnVmZmVyICp2aWV3KQoreworICAgIFB5X3NzaXplX3QgaTsKKworICAgIGFzc2VydCh2aWV3LT5uZGltID4gMCk7CisKKyAgICB2aWV3LT5zdHJpZGVzW3ZpZXctPm5kaW0tMV0gPSB2aWV3LT5pdGVtc2l6ZTsKKyAgICBmb3IgKGkgPSB2aWV3LT5uZGltLTI7IGkgPj0gMDsgaS0tKQorICAgICAgICB2aWV3LT5zdHJpZGVzW2ldID0gdmlldy0+c3RyaWRlc1tpKzFdICogdmlldy0+c2hhcGVbaSsxXTsKK30KKworLyogSW5pdGlhbGl6ZSBzdHJpZGVzIGZvciBhIEZvcnRyYW4tY29udGlndW91cyBhcnJheS4gKi8KK1B5X0xPQ0FMX0lOTElORSh2b2lkKQoraW5pdF9mb3J0cmFuX3N0cmlkZXNfZnJvbV9zaGFwZShQeV9idWZmZXIgKnZpZXcpCit7CisgICAgUHlfc3NpemVfdCBpOworCisgICAgYXNzZXJ0KHZpZXctPm5kaW0gPiAwKTsKKworICAgIHZpZXctPnN0cmlkZXNbMF0gPSB2aWV3LT5pdGVtc2l6ZTsKKyAgICBmb3IgKGkgPSAxOyBpIDwgdmlldy0+bmRpbTsgaSsrKQorICAgICAgICB2aWV3LT5zdHJpZGVzW2ldID0gdmlldy0+c3RyaWRlc1tpLTFdICogdmlldy0+c2hhcGVbaS0xXTsKK30KKworLyogQ29weSBzcmMgdG8gYSBDLWNvbnRpZ3VvdXMgcmVwcmVzZW50YXRpb24uIEFzc3VtcHRpb25zOgorICAgbGVuKG1lbSkgPT0gc3JjLT5sZW4uICovCitzdGF0aWMgaW50CitidWZmZXJfdG9fY19jb250aWd1b3VzKGNoYXIgKm1lbSwgUHlfYnVmZmVyICpzcmMpCit7CisgICAgUHlfYnVmZmVyIGRlc3Q7CisgICAgUHlfc3NpemVfdCAqc3RyaWRlczsKKyAgICBpbnQgcmV0OworCisgICAgYXNzZXJ0KHNyYy0+c2hhcGUgIT0gTlVMTCk7CisgICAgYXNzZXJ0KHNyYy0+c3RyaWRlcyAhPSBOVUxMKTsKKworICAgIHN0cmlkZXMgPSBQeU1lbV9NYWxsb2Moc3JjLT5uZGltICogKHNpemVvZiAqc3JjLT5zdHJpZGVzKSk7CisgICAgaWYgKHN0cmlkZXMgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgLyogaW5pdGlhbGl6ZSBkZXN0IGFzIGEgQy1jb250aWd1b3VzIGJ1ZmZlciAqLworICAgIGRlc3QgPSAqc3JjOworICAgIGRlc3QuYnVmID0gbWVtOworICAgIC8qIHNoYXBlIGlzIGNvbnN0YW50IGFuZCBzaGFyZWQgKi8KKyAgICBkZXN0LnN0cmlkZXMgPSBzdHJpZGVzOworICAgIGluaXRfc3RyaWRlc19mcm9tX3NoYXBlKCZkZXN0KTsKKyAgICBkZXN0LnN1Ym9mZnNldHMgPSBOVUxMOworCisgICAgcmV0ID0gY29weV9idWZmZXIoJmRlc3QsIHNyYyk7CisKKyAgICBQeU1lbV9GcmVlKHN0cmlkZXMpOworICAgIHJldHVybiByZXQ7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25zdHJ1Y3RvcnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBJbml0aWFsaXplIHZhbHVlcyB0aGF0IGFyZSBzaGFyZWQgd2l0aCB0aGUgbWFuYWdlZCBidWZmZXIuICovCitQeV9MT0NBTF9JTkxJTkUodm9pZCkKK2luaXRfc2hhcmVkX3ZhbHVlcyhQeV9idWZmZXIgKmRlc3QsIGNvbnN0IFB5X2J1ZmZlciAqc3JjKQoreworICAgIGRlc3QtPm9iaiA9IHNyYy0+b2JqOworICAgIGRlc3QtPmJ1ZiA9IHNyYy0+YnVmOworICAgIGRlc3QtPmxlbiA9IHNyYy0+bGVuOworICAgIGRlc3QtPml0ZW1zaXplID0gc3JjLT5pdGVtc2l6ZTsKKyAgICBkZXN0LT5yZWFkb25seSA9IHNyYy0+cmVhZG9ubHk7CisgICAgZGVzdC0+Zm9ybWF0ID0gc3JjLT5mb3JtYXQgPyBzcmMtPmZvcm1hdCA6ICJCIjsKKyAgICBkZXN0LT5pbnRlcm5hbCA9IHNyYy0+aW50ZXJuYWw7Cit9CisKKy8qIENvcHkgc2hhcGUgYW5kIHN0cmlkZXMuIFJlY29uc3RydWN0IG1pc3NpbmcgdmFsdWVzLiAqLworc3RhdGljIHZvaWQKK2luaXRfc2hhcGVfc3RyaWRlcyhQeV9idWZmZXIgKmRlc3QsIGNvbnN0IFB5X2J1ZmZlciAqc3JjKQoreworICAgIFB5X3NzaXplX3QgaTsKKworICAgIGlmIChzcmMtPm5kaW0gPT0gMCkgeworICAgICAgICBkZXN0LT5zaGFwZSA9IE5VTEw7CisgICAgICAgIGRlc3QtPnN0cmlkZXMgPSBOVUxMOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzcmMtPm5kaW0gPT0gMSkgeworICAgICAgICBkZXN0LT5zaGFwZVswXSA9IHNyYy0+c2hhcGUgPyBzcmMtPnNoYXBlWzBdIDogc3JjLT5sZW4gLyBzcmMtPml0ZW1zaXplOworICAgICAgICBkZXN0LT5zdHJpZGVzWzBdID0gc3JjLT5zdHJpZGVzID8gc3JjLT5zdHJpZGVzWzBdIDogc3JjLT5pdGVtc2l6ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBzcmMtPm5kaW07IGkrKykKKyAgICAgICAgZGVzdC0+c2hhcGVbaV0gPSBzcmMtPnNoYXBlW2ldOworICAgIGlmIChzcmMtPnN0cmlkZXMpIHsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IHNyYy0+bmRpbTsgaSsrKQorICAgICAgICAgICAgZGVzdC0+c3RyaWRlc1tpXSA9IHNyYy0+c3RyaWRlc1tpXTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGluaXRfc3RyaWRlc19mcm9tX3NoYXBlKGRlc3QpOworICAgIH0KK30KKworUHlfTE9DQUxfSU5MSU5FKHZvaWQpCitpbml0X3N1Ym9mZnNldHMoUHlfYnVmZmVyICpkZXN0LCBjb25zdCBQeV9idWZmZXIgKnNyYykKK3sKKyAgICBQeV9zc2l6ZV90IGk7CisKKyAgICBpZiAoc3JjLT5zdWJvZmZzZXRzID09IE5VTEwpIHsKKyAgICAgICAgZGVzdC0+c3Vib2Zmc2V0cyA9IE5VTEw7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZm9yIChpID0gMDsgaSA8IHNyYy0+bmRpbTsgaSsrKQorICAgICAgICBkZXN0LT5zdWJvZmZzZXRzW2ldID0gc3JjLT5zdWJvZmZzZXRzW2ldOworfQorCisvKiBsZW4gPSBwcm9kdWN0KHNoYXBlKSAqIGl0ZW1zaXplICovCitQeV9MT0NBTF9JTkxJTkUodm9pZCkKK2luaXRfbGVuKFB5X2J1ZmZlciAqdmlldykKK3sKKyAgICBQeV9zc2l6ZV90IGksIGxlbjsKKworICAgIGxlbiA9IDE7CisgICAgZm9yIChpID0gMDsgaSA8IHZpZXctPm5kaW07IGkrKykKKyAgICAgICAgbGVuICo9IHZpZXctPnNoYXBlW2ldOworICAgIGxlbiAqPSB2aWV3LT5pdGVtc2l6ZTsKKworICAgIHZpZXctPmxlbiA9IGxlbjsKK30KKworLyogSW5pdGlhbGl6ZSBtZW1vcnl2aWV3IGJ1ZmZlciBwcm9wZXJ0aWVzLiAqLworc3RhdGljIHZvaWQKK2luaXRfZmxhZ3MoUHlNZW1vcnlWaWV3T2JqZWN0ICptdikKK3sKKyAgICBjb25zdCBQeV9idWZmZXIgKnZpZXcgPSAmbXYtPnZpZXc7CisgICAgaW50IGZsYWdzID0gMDsKKworICAgIHN3aXRjaCAodmlldy0+bmRpbSkgeworICAgIGNhc2UgMDoKKyAgICAgICAgZmxhZ3MgfD0gKF9QeV9NRU1PUllWSUVXX1NDQUxBUnxfUHlfTUVNT1JZVklFV19DfAorICAgICAgICAgICAgICAgICAgX1B5X01FTU9SWVZJRVdfRk9SVFJBTik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMToKKyAgICAgICAgaWYgKE1WX0NPTlRJR1VPVVNfTkRJTTEodmlldykpCisgICAgICAgICAgICBmbGFncyB8PSAoX1B5X01FTU9SWVZJRVdfQ3xfUHlfTUVNT1JZVklFV19GT1JUUkFOKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgaWYgKFB5QnVmZmVyX0lzQ29udGlndW91cyh2aWV3LCAnQycpKQorICAgICAgICAgICAgZmxhZ3MgfD0gX1B5X01FTU9SWVZJRVdfQzsKKyAgICAgICAgaWYgKFB5QnVmZmVyX0lzQ29udGlndW91cyh2aWV3LCAnRicpKQorICAgICAgICAgICAgZmxhZ3MgfD0gX1B5X01FTU9SWVZJRVdfRk9SVFJBTjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKHZpZXctPnN1Ym9mZnNldHMpIHsKKyAgICAgICAgZmxhZ3MgfD0gX1B5X01FTU9SWVZJRVdfUElMOworICAgICAgICBmbGFncyAmPSB+KF9QeV9NRU1PUllWSUVXX0N8X1B5X01FTU9SWVZJRVdfRk9SVFJBTik7CisgICAgfQorCisgICAgbXYtPmZsYWdzID0gZmxhZ3M7Cit9CisKKy8qIEFsbG9jYXRlIGEgbmV3IG1lbW9yeXZpZXcgYW5kIHBlcmZvcm0gYmFzaWMgaW5pdGlhbGl6YXRpb24uIE5ldyBtZW1vcnl2aWV3cworICAgYXJlIGV4Y2x1c2l2ZWx5IGNyZWF0ZWQgdGhyb3VnaCB0aGUgbWJ1Zl9hZGQgZnVuY3Rpb25zLiAqLworUHlfTE9DQUxfSU5MSU5FKFB5TWVtb3J5Vmlld09iamVjdCAqKQorbWVtb3J5X2FsbG9jKGludCBuZGltKQoreworICAgIFB5TWVtb3J5Vmlld09iamVjdCAqbXY7CisKKyAgICBtdiA9IChQeU1lbW9yeVZpZXdPYmplY3QgKikKKyAgICAgICAgUHlPYmplY3RfR0NfTmV3VmFyKFB5TWVtb3J5Vmlld09iamVjdCwgJlB5TWVtb3J5Vmlld19UeXBlLCAzKm5kaW0pOworICAgIGlmIChtdiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIG12LT5tYnVmID0gTlVMTDsKKyAgICBtdi0+aGFzaCA9IC0xOworICAgIG12LT5mbGFncyA9IDA7CisgICAgbXYtPmV4cG9ydHMgPSAwOworICAgIG12LT52aWV3Lm5kaW0gPSBuZGltOworICAgIG12LT52aWV3LnNoYXBlID0gbXYtPm9iX2FycmF5OworICAgIG12LT52aWV3LnN0cmlkZXMgPSBtdi0+b2JfYXJyYXkgKyBuZGltOworICAgIG12LT52aWV3LnN1Ym9mZnNldHMgPSBtdi0+b2JfYXJyYXkgKyAyICogbmRpbTsKKyAgICBtdi0+d2Vha3JlZmxpc3QgPSBOVUxMOworCisgICAgX1B5T2JqZWN0X0dDX1RSQUNLKG12KTsKKyAgICByZXR1cm4gbXY7Cit9CisKKy8qCisgICBSZXR1cm4gYSBuZXcgbWVtb3J5dmlldyB0aGF0IGlzIHJlZ2lzdGVyZWQgd2l0aCBtYnVmLiBJZiBzcmMgaXMgTlVMTCwKKyAgIHVzZSBtYnVmLT5tYXN0ZXIgYXMgdGhlIHVuZGVybHlpbmcgYnVmZmVyLiBPdGhlcndpc2UsIHVzZSBzcmMuCisKKyAgIFRoZSBuZXcgbWVtb3J5dmlldyBoYXMgZnVsbCBidWZmZXIgaW5mb3JtYXRpb246IHNoYXBlIGFuZCBzdHJpZGVzCisgICBhcmUgYWx3YXlzIHByZXNlbnQsIHN1Ym9mZnNldHMgYXMgbmVlZGVkLiBBcnJheXMgYXJlIGNvcGllZCB0bworICAgdGhlIG1lbW9yeXZpZXcncyBvYl9hcnJheSBmaWVsZC4KKyAqLworc3RhdGljIFB5T2JqZWN0ICoKK21idWZfYWRkX3ZpZXcoX1B5TWFuYWdlZEJ1ZmZlck9iamVjdCAqbWJ1ZiwgY29uc3QgUHlfYnVmZmVyICpzcmMpCit7CisgICAgUHlNZW1vcnlWaWV3T2JqZWN0ICptdjsKKyAgICBQeV9idWZmZXIgKmRlc3Q7CisKKyAgICBpZiAoc3JjID09IE5VTEwpCisgICAgICAgIHNyYyA9ICZtYnVmLT5tYXN0ZXI7CisKKyAgICBpZiAoc3JjLT5uZGltID4gUHlCVUZfTUFYX05ESU0pIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAibWVtb3J5dmlldzogbnVtYmVyIG9mIGRpbWVuc2lvbnMgbXVzdCBub3QgZXhjZWVkICIKKyAgICAgICAgICAgIFNUUklOR0laRShQeUJVRl9NQVhfTkRJTSkpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBtdiA9IG1lbW9yeV9hbGxvYyhzcmMtPm5kaW0pOworICAgIGlmIChtdiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGRlc3QgPSAmbXYtPnZpZXc7CisgICAgaW5pdF9zaGFyZWRfdmFsdWVzKGRlc3QsIHNyYyk7CisgICAgaW5pdF9zaGFwZV9zdHJpZGVzKGRlc3QsIHNyYyk7CisgICAgaW5pdF9zdWJvZmZzZXRzKGRlc3QsIHNyYyk7CisgICAgaW5pdF9mbGFncyhtdik7CisKKyAgICBtdi0+bWJ1ZiA9IG1idWY7CisgICAgUHlfSU5DUkVGKG1idWYpOworICAgIG1idWYtPmV4cG9ydHMrKzsKKworICAgIHJldHVybiAoUHlPYmplY3QgKiltdjsKK30KKworLyogUmVnaXN0ZXIgYW4gaW5jb21wbGV0ZSB2aWV3OiBzaGFwZSwgc3RyaWRlcywgc3Vib2Zmc2V0cyBhbmQgZmxhZ3Mgc3RpbGwKKyAgIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQuIFVzZSAnbmRpbScgaW5zdGVhZCBvZiBzcmMtPm5kaW0gdG8gZGV0ZXJtaW5lIHRoZQorICAgc2l6ZSBvZiB0aGUgbWVtb3J5dmlldydzIG9iX2FycmF5LgorCisgICBBc3N1bXB0aW9uOiBuZGltIDw9IFB5QlVGX01BWF9ORElNLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK21idWZfYWRkX2luY29tcGxldGVfdmlldyhfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0ICptYnVmLCBjb25zdCBQeV9idWZmZXIgKnNyYywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmRpbSkKK3sKKyAgICBQeU1lbW9yeVZpZXdPYmplY3QgKm12OworICAgIFB5X2J1ZmZlciAqZGVzdDsKKworICAgIGlmIChzcmMgPT0gTlVMTCkKKyAgICAgICAgc3JjID0gJm1idWYtPm1hc3RlcjsKKworICAgIGFzc2VydChuZGltIDw9IFB5QlVGX01BWF9ORElNKTsKKworICAgIG12ID0gbWVtb3J5X2FsbG9jKG5kaW0pOworICAgIGlmIChtdiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGRlc3QgPSAmbXYtPnZpZXc7CisgICAgaW5pdF9zaGFyZWRfdmFsdWVzKGRlc3QsIHNyYyk7CisKKyAgICBtdi0+bWJ1ZiA9IG1idWY7CisgICAgUHlfSU5DUkVGKG1idWYpOworICAgIG1idWYtPmV4cG9ydHMrKzsKKworICAgIHJldHVybiAoUHlPYmplY3QgKiltdjsKK30KKworLyogRXhwb3NlIGEgcmF3IG1lbW9yeSBhcmVhIGFzIGEgdmlldyBvZiBjb250aWd1b3VzIGJ5dGVzLiBmbGFncyBjYW4gYmUKKyAgIFB5QlVGX1JFQUQgb3IgUHlCVUZfV1JJVEUuIHZpZXctPmZvcm1hdCBpcyBzZXQgdG8gIkIiICh1bnNpZ25lZCBieXRlcykuCisgICBUaGUgbWVtb3J5dmlldyBoYXMgY29tcGxldGUgYnVmZmVyIGluZm9ybWF0aW9uLiAqLworUHlPYmplY3QgKgorUHlNZW1vcnlWaWV3X0Zyb21NZW1vcnkoY2hhciAqbWVtLCBQeV9zc2l6ZV90IHNpemUsIGludCBmbGFncykKK3sKKyAgICBfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0ICptYnVmOworICAgIFB5T2JqZWN0ICptdjsKKyAgICBpbnQgcmVhZG9ubHk7CisKKyAgICBhc3NlcnQobWVtICE9IE5VTEwpOworICAgIGFzc2VydChmbGFncyA9PSBQeUJVRl9SRUFEIHx8IGZsYWdzID09IFB5QlVGX1dSSVRFKTsKKworICAgIG1idWYgPSBtYnVmX2FsbG9jKCk7CisgICAgaWYgKG1idWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICByZWFkb25seSA9IChmbGFncyA9PSBQeUJVRl9XUklURSkgPyAwIDogMTsKKyAgICAodm9pZClQeUJ1ZmZlcl9GaWxsSW5mbygmbWJ1Zi0+bWFzdGVyLCBOVUxMLCBtZW0sIHNpemUsIHJlYWRvbmx5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5QlVGX0ZVTExfUk8pOworCisgICAgbXYgPSBtYnVmX2FkZF92aWV3KG1idWYsIE5VTEwpOworICAgIFB5X0RFQ1JFRihtYnVmKTsKKworICAgIHJldHVybiBtdjsKK30KKworLyogQ3JlYXRlIGEgbWVtb3J5dmlldyBmcm9tIGEgZ2l2ZW4gUHlfYnVmZmVyLiBGb3Igc2ltcGxlIGJ5dGUgdmlld3MsCisgICBQeU1lbW9yeVZpZXdfRnJvbU1lbW9yeSgpIHNob3VsZCBiZSB1c2VkIGluc3RlYWQuCisgICBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBvbmx5IGVudHJ5IHBvaW50IHRoYXQgY2FuIGNyZWF0ZSBhIG1hc3RlciBidWZmZXIKKyAgIHdpdGhvdXQgZnVsbCBpbmZvcm1hdGlvbi4gQmVjYXVzZSBvZiB0aGlzIGZhY3QgaW5pdF9zaGFwZV9zdHJpZGVzKCkKKyAgIG11c3QgYmUgYWJsZSB0byByZWNvbnN0cnVjdCBtaXNzaW5nIHZhbHVlcy4gICovCiBQeU9iamVjdCAqCiBQeU1lbW9yeVZpZXdfRnJvbUJ1ZmZlcihQeV9idWZmZXIgKmluZm8pCiB7Ci0gICAgUHlNZW1vcnlWaWV3T2JqZWN0ICptdmlldzsKKyAgICBfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0ICptYnVmOworICAgIFB5T2JqZWN0ICptdjsKIAogICAgIGlmIChpbmZvLT5idWYgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICJjYW5ub3QgbWFrZSBtZW1vcnkgdmlldyBmcm9tIGEgYnVmZmVyIHdpdGggYSBOVUxMIGRhdGEgcG9pbnRlciIpOworICAgICAgICAgICAgIlB5TWVtb3J5Vmlld19Gcm9tQnVmZmVyKCk6IGluZm8tPmJ1ZiBtdXN0IG5vdCBiZSBOVUxMIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBtdmlldyA9IChQeU1lbW9yeVZpZXdPYmplY3QgKikKLSAgICAgICAgUHlPYmplY3RfR0NfTmV3KFB5TWVtb3J5Vmlld09iamVjdCwgJlB5TWVtb3J5Vmlld19UeXBlKTsKLSAgICBpZiAobXZpZXcgPT0gTlVMTCkKKworICAgIG1idWYgPSBtYnVmX2FsbG9jKCk7CisgICAgaWYgKG1idWYgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgZHVwX2J1ZmZlcigmbXZpZXctPnZpZXcsIGluZm8pOwotICAgIC8qIE5PVEU6IG12aWV3LT52aWV3Lm9iaiBzaG91bGQgYWxyZWFkeSBoYXZlIGJlZW4gaW5jcmVmJ2VkIGFzCi0gICAgICAgcGFydCBvZiBQeUJ1ZmZlcl9GaWxsSW5mbygpLiAqLwotICAgIF9QeU9iamVjdF9HQ19UUkFDSyhtdmlldyk7Ci0gICAgcmV0dXJuIChQeU9iamVjdCAqKW12aWV3OworCisgICAgLyogaW5mby0+b2JqIGlzIGVpdGhlciBOVUxMIG9yIGEgYm9ycm93ZWQgcmVmZXJlbmNlLiBUaGlzIHJlZmVyZW5jZQorICAgICAgIHNob3VsZCBub3QgYmUgZGVjcmVtZW50ZWQgaW4gUHlCdWZmZXJfUmVsZWFzZSgpLiAqLworICAgIG1idWYtPm1hc3RlciA9ICppbmZvOworICAgIG1idWYtPm1hc3Rlci5vYmogPSBOVUxMOworCisgICAgbXYgPSBtYnVmX2FkZF92aWV3KG1idWYsIE5VTEwpOworICAgIFB5X0RFQ1JFRihtYnVmKTsKKworICAgIHJldHVybiBtdjsKIH0KIAorLyogQ3JlYXRlIGEgbWVtb3J5dmlldyBmcm9tIGFuIG9iamVjdCB0aGF0IGltcGxlbWVudHMgdGhlIGJ1ZmZlciBwcm90b2NvbC4KKyAgIElmIHRoZSBvYmplY3QgaXMgYSBtZW1vcnl2aWV3LCB0aGUgbmV3IG1lbW9yeXZpZXcgbXVzdCBiZSByZWdpc3RlcmVkCisgICB3aXRoIHRoZSBzYW1lIG1hbmFnZWQgYnVmZmVyLiBPdGhlcndpc2UsIGEgbmV3IG1hbmFnZWQgYnVmZmVyIGlzIGNyZWF0ZWQuICovCiBQeU9iamVjdCAqCi1QeU1lbW9yeVZpZXdfRnJvbU9iamVjdChQeU9iamVjdCAqYmFzZSkKK1B5TWVtb3J5Vmlld19Gcm9tT2JqZWN0KFB5T2JqZWN0ICp2KQogewotICAgIFB5TWVtb3J5Vmlld09iamVjdCAqbXZpZXc7Ci0gICAgUHlfYnVmZmVyIHZpZXc7CisgICAgX1B5TWFuYWdlZEJ1ZmZlck9iamVjdCAqbWJ1ZjsKIAotICAgIGlmICghUHlPYmplY3RfQ2hlY2tCdWZmZXIoYmFzZSkpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICJjYW5ub3QgbWFrZSBtZW1vcnkgdmlldyBiZWNhdXNlIG9iamVjdCBkb2VzICIKLSAgICAgICAgICAgICJub3QgaGF2ZSB0aGUgYnVmZmVyIGludGVyZmFjZSIpOwotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoUHlNZW1vcnlWaWV3X0NoZWNrKHYpKSB7CisgICAgICAgIFB5TWVtb3J5Vmlld09iamVjdCAqbXYgPSAoUHlNZW1vcnlWaWV3T2JqZWN0ICopdjsKKyAgICAgICAgQ0hFQ0tfUkVMRUFTRUQobXYpOworICAgICAgICByZXR1cm4gbWJ1Zl9hZGRfdmlldyhtdi0+bWJ1ZiwgJm12LT52aWV3KTsKKyAgICB9CisgICAgZWxzZSBpZiAoUHlPYmplY3RfQ2hlY2tCdWZmZXIodikpIHsKKyAgICAgICAgUHlPYmplY3QgKnJldDsKKyAgICAgICAgbWJ1ZiA9IChfUHlNYW5hZ2VkQnVmZmVyT2JqZWN0ICopX1B5TWFuYWdlZEJ1ZmZlcl9Gcm9tT2JqZWN0KHYpOworICAgICAgICBpZiAobWJ1ZiA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldCA9IG1idWZfYWRkX3ZpZXcobWJ1ZiwgTlVMTCk7CisgICAgICAgIFB5X0RFQ1JFRihtYnVmKTsKKyAgICAgICAgcmV0dXJuIHJldDsKICAgICB9CiAKLSAgICBpZiAoUHlPYmplY3RfR2V0QnVmZmVyKGJhc2UsICZ2aWV3LCBQeUJVRl9GVUxMX1JPKSA8IDApCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgbXZpZXcgPSAoUHlNZW1vcnlWaWV3T2JqZWN0ICopUHlNZW1vcnlWaWV3X0Zyb21CdWZmZXIoJnZpZXcpOwotICAgIGlmIChtdmlldyA9PSBOVUxMKSB7Ci0gICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZpZXcpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICByZXR1cm4gKFB5T2JqZWN0ICopbXZpZXc7CisgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgIm1lbW9yeXZpZXc6ICUuMjAwcyBvYmplY3QgZG9lcyBub3QgaGF2ZSB0aGUgYnVmZmVyIGludGVyZmFjZSIsCisgICAgICAgIFB5X1RZUEUodiktPnRwX25hbWUpOworICAgIHJldHVybiBOVUxMOwogfQogCisvKiBDb3B5IHRoZSBmb3JtYXQgc3RyaW5nIGZyb20gYSBiYXNlIG9iamVjdCB0aGF0IG1pZ2h0IHZhbmlzaC4gKi8KK3N0YXRpYyBpbnQKK21idWZfY29weV9mb3JtYXQoX1B5TWFuYWdlZEJ1ZmZlck9iamVjdCAqbWJ1ZiwgY29uc3QgY2hhciAqZm10KQoreworICAgIGlmIChmbXQgIT0gTlVMTCkgeworICAgICAgICBjaGFyICpjcCA9IFB5TWVtX01hbGxvYyhzdHJsZW4oZm10KSsxKTsKKyAgICAgICAgaWYgKGNwID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgbWJ1Zi0+bWFzdGVyLmZvcm1hdCA9IHN0cmNweShjcCwgZm10KTsKKyAgICAgICAgbWJ1Zi0+ZmxhZ3MgfD0gX1B5X01BTkFHRURfQlVGRkVSX0ZSRUVfRk9STUFUOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgorICAgUmV0dXJuIGEgbWVtb3J5dmlldyB0aGF0IGlzIGJhc2VkIG9uIGEgY29udGlndW91cyBjb3B5IG9mIHNyYy4KKyAgIEFzc3VtcHRpb25zOiBzcmMgaGFzIFB5QlVGX0ZVTExfUk8gaW5mb3JtYXRpb24sIHNyYy0+bmRpbSA+IDAuCisKKyAgIE93bmVyc2hpcCBydWxlczoKKyAgICAgMSkgQXMgdXN1YWwsIHRoZSByZXR1cm5lZCBtZW1vcnl2aWV3IGhhcyBhIHByaXZhdGUgY29weQorICAgICAgICBvZiBzcmMtPnNoYXBlLCBzcmMtPnN0cmlkZXMgYW5kIHNyYy0+c3Vib2Zmc2V0cy4KKyAgICAgMikgc3JjLT5mb3JtYXQgaXMgY29waWVkIHRvIHRoZSBtYXN0ZXIgYnVmZmVyIGFuZCByZWxlYXNlZAorICAgICAgICBpbiBtYnVmX2RlYWxsb2MoKS4gVGhlIHJlbGVhc2VidWZmZXJwcm9jIG9mIHRoZSBieXRlcworICAgICAgICBvYmplY3QgaXMgTlVMTCwgc28gaXQgZG9lcyBub3QgbWF0dGVyIHRoYXQgbWJ1Zl9yZWxlYXNlKCkKKyAgICAgICAgcGFzc2VzIHRoZSBhbHRlcmVkIGZvcm1hdCBwb2ludGVyIHRvIFB5QnVmZmVyX1JlbGVhc2UoKS4KKyovCitzdGF0aWMgUHlPYmplY3QgKgorbWVtb3J5X2Zyb21fY29udGlndW91c19jb3B5KFB5X2J1ZmZlciAqc3JjLCBjaGFyIG9yZGVyKQoreworICAgIF9QeU1hbmFnZWRCdWZmZXJPYmplY3QgKm1idWY7CisgICAgUHlNZW1vcnlWaWV3T2JqZWN0ICptdjsKKyAgICBQeU9iamVjdCAqYnl0ZXM7CisgICAgUHlfYnVmZmVyICpkZXN0OworICAgIGludCBpOworCisgICAgYXNzZXJ0KHNyYy0+bmRpbSA+IDApOworICAgIGFzc2VydChzcmMtPnNoYXBlICE9IE5VTEwpOworCisgICAgYnl0ZXMgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIHNyYy0+bGVuKTsKKyAgICBpZiAoYnl0ZXMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBtYnVmID0gKF9QeU1hbmFnZWRCdWZmZXJPYmplY3QgKilfUHlNYW5hZ2VkQnVmZmVyX0Zyb21PYmplY3QoYnl0ZXMpOworICAgIFB5X0RFQ1JFRihieXRlcyk7CisgICAgaWYgKG1idWYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAobWJ1Zl9jb3B5X2Zvcm1hdChtYnVmLCBzcmMtPmZvcm1hdCkgPCAwKSB7CisgICAgICAgIFB5X0RFQ1JFRihtYnVmKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgbXYgPSAoUHlNZW1vcnlWaWV3T2JqZWN0ICopbWJ1Zl9hZGRfaW5jb21wbGV0ZV92aWV3KG1idWYsIE5VTEwsIHNyYy0+bmRpbSk7CisgICAgUHlfREVDUkVGKG1idWYpOworICAgIGlmIChtdiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGRlc3QgPSAmbXYtPnZpZXc7CisKKyAgICAvKiBzaGFyZWQgdmFsdWVzIGFyZSBpbml0aWFsaXplZCBjb3JyZWN0bHkgZXhjZXB0IGZvciBpdGVtc2l6ZSAqLworICAgIGRlc3QtPml0ZW1zaXplID0gc3JjLT5pdGVtc2l6ZTsKKworICAgIC8qIHNoYXBlIGFuZCBzdHJpZGVzICovCisgICAgZm9yIChpID0gMDsgaSA8IHNyYy0+bmRpbTsgaSsrKSB7CisgICAgICAgIGRlc3QtPnNoYXBlW2ldID0gc3JjLT5zaGFwZVtpXTsKKyAgICB9CisgICAgaWYgKG9yZGVyID09ICdDJyB8fCBvcmRlciA9PSAnQScpIHsKKyAgICAgICAgaW5pdF9zdHJpZGVzX2Zyb21fc2hhcGUoZGVzdCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBpbml0X2ZvcnRyYW5fc3RyaWRlc19mcm9tX3NoYXBlKGRlc3QpOworICAgIH0KKyAgICAvKiBzdWJvZmZzZXRzICovCisgICAgZGVzdC0+c3Vib2Zmc2V0cyA9IE5VTEw7CisKKyAgICAvKiBmbGFncyAqLworICAgIGluaXRfZmxhZ3MobXYpOworCisgICAgaWYgKGNvcHlfYnVmZmVyKGRlc3QsIHNyYykgPCAwKSB7CisgICAgICAgIFB5X0RFQ1JFRihtdik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiAoUHlPYmplY3QgKiltdjsKK30KKworLyoKKyAgIFJldHVybiBhIG5ldyBtZW1vcnl2aWV3IG9iamVjdCBiYXNlZCBvbiBhIGNvbnRpZ3VvdXMgZXhwb3J0ZXIgd2l0aAorICAgYnVmZmVydHlwZT17UHlCVUZfUkVBRCwgUHlCVUZfV1JJVEV9IGFuZCBvcmRlcj17J0MnLCAnRidvcnRyYW4sIG9yICdBJ255fS4KKyAgIFRoZSBsb2dpY2FsIHN0cnVjdHVyZSBvZiB0aGUgaW5wdXQgYW5kIG91dHB1dCBidWZmZXJzIGlzIHRoZSBzYW1lCisgICAoaS5lLiB0b2xpc3QoaW5wdXQpID09IHRvbGlzdChvdXRwdXQpKSwgYnV0IHRoZSBwaHlzaWNhbCBsYXlvdXQgaW4KKyAgIG1lbW9yeSBjYW4gYmUgZXhwbGljaXRseSBjaG9zZW4uCisgCisgICBBcyB1c3VhbCwgaWYgYnVmZmVydHlwZT1QeUJVRl9XUklURSwgdGhlIGV4cG9ydGVyJ3MgYnVmZmVyIG11c3QgYmUgd3JpdGFibGUsCisgICBvdGhlcndpc2UgaXQgbWF5IGJlIHdyaXRhYmxlIG9yIHJlYWQtb25seS4KKworICAgSWYgdGhlIGV4cG9ydGVyIGlzIGFscmVhZHkgY29udGlndW91cyB3aXRoIHRoZSBkZXNpcmVkIHRhcmdldCBvcmRlciwKKyAgIHRoZSBtZW1vcnl2aWV3IHdpbGwgYmUgZGlyZWN0bHkgYmFzZWQgb24gdGhlIGV4cG9ydGVyLgorCisgICBPdGhlcndpc2UsIGlmIHRoZSBidWZmZXJ0eXBlIGlzIFB5QlVGX1JFQUQsIHRoZSBtZW1vcnl2aWV3IHdpbGwgYmUKKyAgIGJhc2VkIG9uIGEgbmV3IGJ5dGVzIG9iamVjdC4gSWYgb3JkZXI9eydDJywgJ0Enbnl9LCB1c2UgJ0MnIG9yZGVyLAorICAgJ0Ynb3J0cmFuIG9yZGVyIG90aGVyd2lzZS4KKyovCitQeU9iamVjdCAqCitQeU1lbW9yeVZpZXdfR2V0Q29udGlndW91cyhQeU9iamVjdCAqb2JqLCBpbnQgYnVmZmVydHlwZSwgY2hhciBvcmRlcikKK3sKKyAgICBQeU1lbW9yeVZpZXdPYmplY3QgKm12OworICAgIFB5T2JqZWN0ICpyZXQ7CisgICAgUHlfYnVmZmVyICp2aWV3OworCisgICAgYXNzZXJ0KGJ1ZmZlcnR5cGUgPT0gUHlCVUZfUkVBRCB8fCBidWZmZXJ0eXBlID09IFB5QlVGX1dSSVRFKTsKKyAgICBhc3NlcnQob3JkZXIgPT0gJ0MnIHx8IG9yZGVyID09ICdGJyB8fCBvcmRlciA9PSAnQScpOworCisgICAgbXYgPSAoUHlNZW1vcnlWaWV3T2JqZWN0ICopUHlNZW1vcnlWaWV3X0Zyb21PYmplY3Qob2JqKTsKKyAgICBpZiAobXYgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICB2aWV3ID0gJm12LT52aWV3OworICAgIGlmIChidWZmZXJ0eXBlID09IFB5QlVGX1dSSVRFICYmIHZpZXctPnJlYWRvbmx5KSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJ1bmRlcmx5aW5nIGJ1ZmZlciBpcyBub3Qgd3JpdGFibGUiKTsKKyAgICAgICAgUHlfREVDUkVGKG12KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKFB5QnVmZmVyX0lzQ29udGlndW91cyh2aWV3LCBvcmRlcikpCisgICAgICAgIHJldHVybiAoUHlPYmplY3QgKiltdjsKKworICAgIGlmIChidWZmZXJ0eXBlID09IFB5QlVGX1dSSVRFKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJ3cml0YWJsZSBjb250aWd1b3VzIGJ1ZmZlciByZXF1ZXN0ZWQgIgorICAgICAgICAgICAgImZvciBhIG5vbi1jb250aWd1b3VzIG9iamVjdC4iKTsKKyAgICAgICAgUHlfREVDUkVGKG12KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmV0ID0gbWVtb3J5X2Zyb21fY29udGlndW91c19jb3B5KHZpZXcsIG9yZGVyKTsKKyAgICBQeV9ERUNSRUYobXYpOworICAgIHJldHVybiByZXQ7Cit9CisKKwogc3RhdGljIFB5T2JqZWN0ICoKIG1lbW9yeV9uZXcoUHlUeXBlT2JqZWN0ICpzdWJ0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7CiAgICAgUHlPYmplY3QgKm9iajsKLSAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7Im9iamVjdCIsIDB9OworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsib2JqZWN0IiwgTlVMTH07CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiTzptZW1vcnl2aWV3Iiwga3dsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZvYmopKSB7CkBAIC0xMzEsMjAzICs5MjEsMTU3MyBAQAogfQogCiAKLXN0YXRpYyB2b2lkCi1fc3RyaWRlZF9jb3B5X25kKGNoYXIgKmRlc3QsIGNoYXIgKnNyYywgaW50IG5kLCBQeV9zc2l6ZV90ICpzaGFwZSwKLSAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqc3RyaWRlcywgUHlfc3NpemVfdCBpdGVtc2l6ZSwgY2hhciBmb3J0KQorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlbGVhc2UvR0MgbWFuYWdlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBJbmZvcm0gdGhlIG1hbmFnZWQgYnVmZmVyIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIG1lbW9yeXZpZXcgd2lsbCBub3QgYWNjZXNzCisgICB0aGUgdW5kZXJseWluZyBidWZmZXIgYWdhaW4uIElmIG5vIG90aGVyIG1lbW9yeXZpZXdzIGFyZSByZWdpc3RlcmVkIHdpdGgKKyAgIHRoZSBtYW5hZ2VkIGJ1ZmZlciwgdGhlIHVuZGVybHlpbmcgYnVmZmVyIGlzIHJlbGVhc2VkIGluc3RhbnRseSBhbmQKKyAgIG1hcmtlZCBhcyBpbmFjY2Vzc2libGUgZm9yIGJvdGggdGhlIG1lbW9yeXZpZXcgYW5kIHRoZSBtYW5hZ2VkIGJ1ZmZlci4KKworICAgVGhpcyBmdW5jdGlvbiBmYWlscyBpZiB0aGUgbWVtb3J5dmlldyBpdHNlbGYgaGFzIGV4cG9ydGVkIGJ1ZmZlcnMuICovCitzdGF0aWMgaW50CitfbWVtb3J5X3JlbGVhc2UoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmKQogewotICAgIGludCBrOwotICAgIFB5X3NzaXplX3Qgb3V0c3RyaWRlOworICAgIGlmIChzZWxmLT5mbGFncyAmIF9QeV9NRU1PUllWSUVXX1JFTEVBU0VEKQorICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmIChuZD09MCkgewotICAgICAgICBtZW1jcHkoZGVzdCwgc3JjLCBpdGVtc2l6ZSk7CisgICAgaWYgKHNlbGYtPmV4cG9ydHMgPT0gMCkgeworICAgICAgICBzZWxmLT5mbGFncyB8PSBfUHlfTUVNT1JZVklFV19SRUxFQVNFRDsKKyAgICAgICAgYXNzZXJ0KHNlbGYtPm1idWYtPmV4cG9ydHMgPiAwKTsKKyAgICAgICAgaWYgKC0tc2VsZi0+bWJ1Zi0+ZXhwb3J0cyA9PSAwKQorICAgICAgICAgICAgbWJ1Zl9yZWxlYXNlKHNlbGYtPm1idWYpOworICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgZWxzZSBpZiAobmQgPT0gMSkgewotICAgICAgICBmb3IgKGsgPSAwOyBrPHNoYXBlWzBdOyBrKyspIHsKLSAgICAgICAgICAgIG1lbWNweShkZXN0LCBzcmMsIGl0ZW1zaXplKTsKLSAgICAgICAgICAgIGRlc3QgKz0gaXRlbXNpemU7Ci0gICAgICAgICAgICBzcmMgKz0gc3RyaWRlc1swXTsKLSAgICAgICAgfQorICAgIGlmIChzZWxmLT5leHBvcnRzID4gMCkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAibWVtb3J5dmlldyBoYXMgJXpkIGV4cG9ydGVkIGJ1ZmZlciVzIiwgc2VsZi0+ZXhwb3J0cywKKyAgICAgICAgICAgIHNlbGYtPmV4cG9ydHM9PTEgPyAiIiA6ICJzIik7CisgICAgICAgIHJldHVybiAtMTsKICAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChmb3J0ID09ICdGJykgewotICAgICAgICAgICAgLyogQ29weSBmaXJzdCBkaW1lbnNpb24gZmlyc3QsCi0gICAgICAgICAgICAgICBzZWNvbmQgZGltZW5zaW9uIHNlY29uZCwgZXRjLi4uCi0gICAgICAgICAgICAgICBTZXQgdXAgdGhlIHJlY3Vyc2l2ZSBsb29wIGJhY2t3YXJkcyBzbyB0aGF0IGZpbmFsCi0gICAgICAgICAgICAgICBkaW1lbnNpb24gaXMgYWN0dWFsbHkgY29waWVkIGxhc3QuCi0gICAgICAgICAgICAqLwotICAgICAgICAgICAgb3V0c3RyaWRlID0gaXRlbXNpemU7Ci0gICAgICAgICAgICBmb3IgKGs9MTsgazxuZC0xO2srKykgewotICAgICAgICAgICAgICAgIG91dHN0cmlkZSAqPSBzaGFwZVtrXTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAoaz0wOyBrPHNoYXBlW25kLTFdOyBrKyspIHsKLSAgICAgICAgICAgICAgICBfc3RyaWRlZF9jb3B5X25kKGRlc3QsIHNyYywgbmQtMSwgc2hhcGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpZGVzLCBpdGVtc2l6ZSwgZm9ydCk7Ci0gICAgICAgICAgICAgICAgZGVzdCArPSBvdXRzdHJpZGU7Ci0gICAgICAgICAgICAgICAgc3JjICs9IHN0cmlkZXNbbmQtMV07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KIAotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8qIENvcHkgbGFzdCBkaW1lbnNpb24gZmlyc3QsCi0gICAgICAgICAgICAgICBzZWNvbmQtdG8tbGFzdCBkaW1lbnNpb24gc2Vjb25kLCBldGMuCi0gICAgICAgICAgICAgICBTZXQgdXAgdGhlIHJlY3Vyc2lvbiBzbyB0aGF0IHRoZQotICAgICAgICAgICAgICAgZmlyc3QgZGltZW5zaW9uIGlzIGNvcGllZCBsYXN0Ci0gICAgICAgICAgICAqLwotICAgICAgICAgICAgb3V0c3RyaWRlID0gaXRlbXNpemU7Ci0gICAgICAgICAgICBmb3IgKGs9MTsgayA8IG5kOyBrKyspIHsKLSAgICAgICAgICAgICAgICBvdXRzdHJpZGUgKj0gc2hhcGVba107Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKGs9MDsgazxzaGFwZVswXTsgaysrKSB7Ci0gICAgICAgICAgICAgICAgX3N0cmlkZWRfY29weV9uZChkZXN0LCBzcmMsIG5kLTEsIHNoYXBlKzEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpZGVzKzEsIGl0ZW1zaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ydCk7Ci0gICAgICAgICAgICAgICAgZGVzdCArPSBvdXRzdHJpZGU7Ci0gICAgICAgICAgICAgICAgc3JjICs9IHN0cmlkZXNbMF07Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuOworICAgIFB5X0ZhdGFsRXJyb3IoIl9tZW1vcnlfcmVsZWFzZSgpOiBuZWdhdGl2ZSBleHBvcnQgY291bnQiKTsKKyAgICByZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCittZW1vcnlfcmVsZWFzZShQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYpCit7CisgICAgaWYgKF9tZW1vcnlfcmVsZWFzZShzZWxmKSA8IDApCisgICAgICAgIHJldHVybiBOVUxMOworICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgdm9pZAorbWVtb3J5X2RlYWxsb2MoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmKQoreworICAgIGFzc2VydChzZWxmLT5leHBvcnRzID09IDApOworICAgIF9QeU9iamVjdF9HQ19VTlRSQUNLKHNlbGYpOworICAgICh2b2lkKV9tZW1vcnlfcmVsZWFzZShzZWxmKTsKKyAgICBQeV9DTEVBUihzZWxmLT5tYnVmKTsKKyAgICBpZiAoc2VsZi0+d2Vha3JlZmxpc3QgIT0gTlVMTCkKKyAgICAgICAgUHlPYmplY3RfQ2xlYXJXZWFrUmVmcygoUHlPYmplY3QgKikgc2VsZik7CisgICAgUHlPYmplY3RfR0NfRGVsKHNlbGYpOwogfQogCiBzdGF0aWMgaW50Ci1faW5kaXJlY3RfY29weV9uZChjaGFyICpkZXN0LCBQeV9idWZmZXIgKnZpZXcsIGNoYXIgZm9ydCkKK21lbW9yeV90cmF2ZXJzZShQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYsIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQogewotICAgIFB5X3NzaXplX3QgKmluZGljZXM7Ci0gICAgaW50IGs7Ci0gICAgUHlfc3NpemVfdCBlbGVtZW50czsKLSAgICBjaGFyICpwdHI7Ci0gICAgdm9pZCAoKmZ1bmMpKGludCwgUHlfc3NpemVfdCAqLCBjb25zdCBQeV9zc2l6ZV90ICopOworICAgIFB5X1ZJU0lUKHNlbGYtPm1idWYpOworICAgIHJldHVybiAwOworfQogCi0gICAgaWYgKHZpZXctPm5kaW0gPiBQWV9TU0laRV9UX01BWCAvIHNpemVvZihQeV9zc2l6ZV90KSkgewotICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICByZXR1cm4gLTE7CitzdGF0aWMgaW50CittZW1vcnlfY2xlYXIoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmKQoreworICAgICh2b2lkKV9tZW1vcnlfcmVsZWFzZShzZWxmKTsKKyAgICBQeV9DTEVBUihzZWxmLT5tYnVmKTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK21lbW9yeV9lbnRlcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgQ0hFQ0tfUkVMRUFTRUQoc2VsZik7CisgICAgUHlfSU5DUkVGKHNlbGYpOworICAgIHJldHVybiBzZWxmOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbWVtb3J5X2V4aXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIHJldHVybiBtZW1vcnlfcmVsZWFzZSgoUHlNZW1vcnlWaWV3T2JqZWN0ICopc2VsZik7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICBDYXN0aW5nIGZvcm1hdCBhbmQgc2hhcGUgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIElTX0JZVEVfRk9STUFUKGYpIChmID09ICdiJyB8fCBmID09ICdCJyB8fCBmID09ICdjJykKKworUHlfTE9DQUxfSU5MSU5FKFB5X3NzaXplX3QpCitnZXRfbmF0aXZlX2ZtdGNoYXIoY2hhciAqcmVzdWx0LCBjb25zdCBjaGFyICpmbXQpCit7CisgICAgUHlfc3NpemVfdCBzaXplID0gLTE7CisKKyAgICBpZiAoZm10WzBdID09ICdAJykgZm10Kys7CisKKyAgICBzd2l0Y2ggKGZtdFswXSkgeworICAgIGNhc2UgJ2MnOiBjYXNlICdiJzogY2FzZSAnQic6IHNpemUgPSBzaXplb2YoY2hhcik7IGJyZWFrOworICAgIGNhc2UgJ2gnOiBjYXNlICdIJzogc2l6ZSA9IHNpemVvZihzaG9ydCk7IGJyZWFrOworICAgIGNhc2UgJ2knOiBjYXNlICdJJzogc2l6ZSA9IHNpemVvZihpbnQpOyBicmVhazsKKyAgICBjYXNlICdsJzogY2FzZSAnTCc6IHNpemUgPSBzaXplb2YobG9uZyk7IGJyZWFrOworICAgICNpZmRlZiBIQVZFX0xPTkdfTE9ORworICAgIGNhc2UgJ3EnOiBjYXNlICdRJzogc2l6ZSA9IHNpemVvZihQWV9MT05HX0xPTkcpOyBicmVhazsKKyAgICAjZW5kaWYKKyAgICBjYXNlICduJzogY2FzZSAnTic6IHNpemUgPSBzaXplb2YoUHlfc3NpemVfdCk7IGJyZWFrOworICAgIGNhc2UgJ2YnOiBzaXplID0gc2l6ZW9mKGZsb2F0KTsgYnJlYWs7CisgICAgY2FzZSAnZCc6IHNpemUgPSBzaXplb2YoZG91YmxlKTsgYnJlYWs7CisgICAgI2lmZGVmIEhBVkVfQzk5X0JPT0wKKyAgICBjYXNlICc/Jzogc2l6ZSA9IHNpemVvZihfQm9vbCk7IGJyZWFrOworICAgICNlbHNlCisgICAgY2FzZSAnPyc6IHNpemUgPSBzaXplb2YoY2hhcik7IGJyZWFrOworICAgICNlbmRpZgorICAgIGNhc2UgJ1AnOiBzaXplID0gc2l6ZW9mKHZvaWQgKik7IGJyZWFrOwogICAgIH0KIAotICAgIGluZGljZXMgPSAoUHlfc3NpemVfdCAqKVB5TWVtX01hbGxvYyhzaXplb2YoUHlfc3NpemVfdCkqdmlldy0+bmRpbSk7Ci0gICAgaWYgKGluZGljZXMgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGZvciAoaz0wOyBrPHZpZXctPm5kaW07aysrKSB7Ci0gICAgICAgIGluZGljZXNba10gPSAwOworICAgIGlmIChzaXplID4gMCAmJiBmbXRbMV0gPT0gJ1wwJykgeworICAgICAgICAqcmVzdWx0ID0gZm10WzBdOworICAgICAgICByZXR1cm4gc2l6ZTsKICAgICB9CiAKLSAgICBlbGVtZW50cyA9IDE7Ci0gICAgZm9yIChrPTA7IGs8dmlldy0+bmRpbTsgaysrKSB7Ci0gICAgICAgIGVsZW1lbnRzICo9IHZpZXctPnNoYXBlW2tdOworICAgIHJldHVybiAtMTsKK30KKworLyogQ2FzdCBhIG1lbW9yeXZpZXcncyBkYXRhIHR5cGUgdG8gJ2Zvcm1hdCcuIFRoZSBpbnB1dCBhcnJheSBtdXN0IGJlCisgICBDLWNvbnRpZ3VvdXMuIEF0IGxlYXN0IG9uZSBvZiBpbnB1dC1mb3JtYXQsIG91dHB1dC1mb3JtYXQgbXVzdCBoYXZlCisgICBieXRlIHNpemUuIFRoZSBvdXRwdXQgYXJyYXkgaXMgMS1ELCB3aXRoIHRoZSBzYW1lIGJ5dGUgbGVuZ3RoIGFzIHRoZQorICAgaW5wdXQgYXJyYXkuIFRodXMsIHZpZXctPmxlbiBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIG5ldyBpdGVtc2l6ZS4gKi8KK3N0YXRpYyBpbnQKK2Nhc3RfdG9fMUQoUHlNZW1vcnlWaWV3T2JqZWN0ICptdiwgUHlPYmplY3QgKmZvcm1hdCkKK3sKKyAgICBQeV9idWZmZXIgKnZpZXcgPSAmbXYtPnZpZXc7CisgICAgUHlPYmplY3QgKmFzY2lpZm10OworICAgIGNoYXIgc3JjY2hhciwgZGVzdGNoYXI7CisgICAgUHlfc3NpemVfdCBpdGVtc2l6ZTsKKyAgICBpbnQgcmV0ID0gLTE7CisKKyAgICBhc3NlcnQodmlldy0+bmRpbSA+PSAxKTsKKyAgICBhc3NlcnQoUHlfU0laRShtdikgPT0gMyp2aWV3LT5uZGltKTsKKyAgICBhc3NlcnQodmlldy0+c2hhcGUgPT0gbXYtPm9iX2FycmF5KTsKKyAgICBhc3NlcnQodmlldy0+c3RyaWRlcyA9PSBtdi0+b2JfYXJyYXkgKyB2aWV3LT5uZGltKTsKKyAgICBhc3NlcnQodmlldy0+c3Vib2Zmc2V0cyA9PSBtdi0+b2JfYXJyYXkgKyAyKnZpZXctPm5kaW0pOworCisgICAgaWYgKGdldF9uYXRpdmVfZm10Y2hhcigmc3JjY2hhciwgdmlldy0+Zm9ybWF0KSA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAibWVtb3J5dmlldzogc291cmNlIGZvcm1hdCBtdXN0IGJlIGEgbmF0aXZlIHNpbmdsZSBjaGFyYWN0ZXIgIgorICAgICAgICAgICAgImZvcm1hdCBwcmVmaXhlZCB3aXRoIGFuIG9wdGlvbmFsICdAJyIpOworICAgICAgICByZXR1cm4gcmV0OwogICAgIH0KLSAgICBpZiAoZm9ydCA9PSAnRicpIHsKLSAgICAgICAgZnVuYyA9IF9QeV9hZGRfb25lX3RvX2luZGV4X0Y7CisKKyAgICBhc2NpaWZtdCA9IFB5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nKGZvcm1hdCk7CisgICAgaWYgKGFzY2lpZm10ID09IE5VTEwpCisgICAgICAgIHJldHVybiByZXQ7CisKKyAgICBpdGVtc2l6ZSA9IGdldF9uYXRpdmVfZm10Y2hhcigmZGVzdGNoYXIsIFB5Qnl0ZXNfQVNfU1RSSU5HKGFzY2lpZm10KSk7CisgICAgaWYgKGl0ZW1zaXplIDwgMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICJtZW1vcnl2aWV3OiBkZXN0aW5hdGlvbiBmb3JtYXQgbXVzdCBiZSBhIG5hdGl2ZSBzaW5nbGUgIgorICAgICAgICAgICAgImNoYXJhY3RlciBmb3JtYXQgcHJlZml4ZWQgd2l0aCBhbiBvcHRpb25hbCAnQCciKTsKKyAgICAgICAgZ290byBvdXQ7CisgICAgfQorCisgICAgaWYgKCFJU19CWVRFX0ZPUk1BVChzcmNjaGFyKSAmJiAhSVNfQllURV9GT1JNQVQoZGVzdGNoYXIpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAibWVtb3J5dmlldzogY2Fubm90IGNhc3QgYmV0d2VlbiB0d28gbm9uLWJ5dGUgZm9ybWF0cyIpOworICAgICAgICBnb3RvIG91dDsKKyAgICB9CisgICAgaWYgKHZpZXctPmxlbiAlIGl0ZW1zaXplKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAibWVtb3J5dmlldzogbGVuZ3RoIGlzIG5vdCBhIG11bHRpcGxlIG9mIGl0ZW1zaXplIik7CisgICAgICAgIGdvdG8gb3V0OworICAgIH0KKworICAgIHN0cm5jcHkobXYtPmZvcm1hdCwgUHlCeXRlc19BU19TVFJJTkcoYXNjaWlmbXQpLAorICAgICAgICAgICAgX1B5X01FTU9SWVZJRVdfTUFYX0ZPUk1BVCk7CisgICAgbXYtPmZvcm1hdFtfUHlfTUVNT1JZVklFV19NQVhfRk9STUFULTFdID0gJ1wwJzsKKyAgICB2aWV3LT5mb3JtYXQgPSBtdi0+Zm9ybWF0OworICAgIHZpZXctPml0ZW1zaXplID0gaXRlbXNpemU7CisKKyAgICB2aWV3LT5uZGltID0gMTsKKyAgICB2aWV3LT5zaGFwZVswXSA9IHZpZXctPmxlbiAvIHZpZXctPml0ZW1zaXplOworICAgIHZpZXctPnN0cmlkZXNbMF0gPSB2aWV3LT5pdGVtc2l6ZTsKKyAgICB2aWV3LT5zdWJvZmZzZXRzID0gTlVMTDsKKworICAgIGluaXRfZmxhZ3MobXYpOworIAorICAgIHJldCA9IDA7CisKK291dDoKKyAgICBQeV9ERUNSRUYoYXNjaWlmbXQpOworICAgIHJldHVybiByZXQ7Cit9CisKKy8qIFRoZSBtZW1vcnl2aWV3IG11c3QgaGF2ZSBzcGFjZSBmb3IgMypsZW4oc2VxKSBlbGVtZW50cy4gKi8KK3N0YXRpYyBQeV9zc2l6ZV90Citjb3B5X3NoYXBlKFB5X3NzaXplX3QgKnNoYXBlLCBjb25zdCBQeU9iamVjdCAqc2VxLCBQeV9zc2l6ZV90IG5kaW0sCisgICAgICAgICAgIFB5X3NzaXplX3QgaXRlbXNpemUpCit7CisgICAgUHlfc3NpemVfdCB4LCBpOworICAgIFB5X3NzaXplX3QgbGVuID0gaXRlbXNpemU7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbmRpbTsgaSsrKSB7CisgICAgICAgIFB5T2JqZWN0ICp0bXAgPSBQeVNlcXVlbmNlX0Zhc3RfR0VUX0lURU0oc2VxLCBpKTsKKyAgICAgICAgaWYgKCFQeUxvbmdfQ2hlY2sodG1wKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAibWVtb3J5dmlldy5jYXN0KCk6IGVsZW1lbnRzIG9mIHNoYXBlIG11c3QgYmUgaW50ZWdlcnMiKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICB4ID0gUHlMb25nX0FzU3NpemVfdCh0bXApOworICAgICAgICBpZiAoeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHggPD0gMCkgeworICAgICAgICAgICAgLyogSW4gZ2VuZXJhbCBlbGVtZW50cyBvZiBzaGFwZSBtYXkgYmUgMCwgYnV0IG5vdCBmb3IgY2FzdGluZy4gKi8KKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICJtZW1vcnl2aWV3LmNhc3QoKTogZWxlbWVudHMgb2Ygc2hhcGUgbXVzdCBiZSBpbnRlZ2VycyA+IDAiKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoeCA+IFBZX1NTSVpFX1RfTUFYIC8gbGVuKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAibWVtb3J5dmlldy5jYXN0KCk6IHByb2R1Y3Qoc2hhcGUpID4gU1NJWkVfTUFYIik7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgbGVuICo9IHg7CisgICAgICAgIHNoYXBlW2ldID0geDsKKyAgICB9CisKKyAgICByZXR1cm4gbGVuOworfQorCisvKiBDYXN0IGEgMS1EIGFycmF5IHRvIGEgbmV3IHNoYXBlLiBUaGUgcmVzdWx0IGFycmF5IHdpbGwgYmUgQy1jb250aWd1b3VzLgorICAgSWYgdGhlIHJlc3VsdCBhcnJheSBkb2VzIG5vdCBoYXZlIGV4YWN0bHkgdGhlIHNhbWUgYnl0ZSBsZW5ndGggYXMgdGhlCisgICBpbnB1dCBhcnJheSwgcmFpc2UgVmFsdWVFcnJvci4gKi8KK3N0YXRpYyBpbnQKK2Nhc3RfdG9fTkQoUHlNZW1vcnlWaWV3T2JqZWN0ICptdiwgY29uc3QgUHlPYmplY3QgKnNoYXBlLCBpbnQgbmRpbSkKK3sKKyAgICBQeV9idWZmZXIgKnZpZXcgPSAmbXYtPnZpZXc7CisgICAgUHlfc3NpemVfdCBsZW47CisKKyAgICBhc3NlcnQodmlldy0+bmRpbSA9PSAxKTsgLyogbmRpbSBmcm9tIGNhc3RfdG9fMUQoKSAqLworICAgIGFzc2VydChQeV9TSVpFKG12KSA9PSAzKihuZGltPT0wPzE6bmRpbSkpOyAvKiBuZGltIG9mIHJlc3VsdCBhcnJheSAqLworICAgIGFzc2VydCh2aWV3LT5zaGFwZSA9PSBtdi0+b2JfYXJyYXkpOworICAgIGFzc2VydCh2aWV3LT5zdHJpZGVzID09IG12LT5vYl9hcnJheSArIChuZGltPT0wPzE6bmRpbSkpOworICAgIGFzc2VydCh2aWV3LT5zdWJvZmZzZXRzID09IE5VTEwpOworCisgICAgdmlldy0+bmRpbSA9IG5kaW07CisgICAgaWYgKHZpZXctPm5kaW0gPT0gMCkgeworICAgICAgICB2aWV3LT5zaGFwZSA9IE5VTEw7CisgICAgICAgIHZpZXctPnN0cmlkZXMgPSBOVUxMOworICAgICAgICBsZW4gPSB2aWV3LT5pdGVtc2l6ZTsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIGZ1bmMgPSBfUHlfYWRkX29uZV90b19pbmRleF9DOwotICAgIH0KLSAgICB3aGlsZSAoZWxlbWVudHMtLSkgewotICAgICAgICBmdW5jKHZpZXctPm5kaW0sIGluZGljZXMsIHZpZXctPnNoYXBlKTsKLSAgICAgICAgcHRyID0gUHlCdWZmZXJfR2V0UG9pbnRlcih2aWV3LCBpbmRpY2VzKTsKLSAgICAgICAgbWVtY3B5KGRlc3QsIHB0ciwgdmlldy0+aXRlbXNpemUpOwotICAgICAgICBkZXN0ICs9IHZpZXctPml0ZW1zaXplOworICAgICAgICBsZW4gPSBjb3B5X3NoYXBlKHZpZXctPnNoYXBlLCBzaGFwZSwgbmRpbSwgdmlldy0+aXRlbXNpemUpOworICAgICAgICBpZiAobGVuIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgaW5pdF9zdHJpZGVzX2Zyb21fc2hhcGUodmlldyk7CiAgICAgfQogCi0gICAgUHlNZW1fRnJlZShpbmRpY2VzKTsKKyAgICBpZiAodmlldy0+bGVuICE9IGxlbikgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgIm1lbW9yeXZpZXc6IHByb2R1Y3Qoc2hhcGUpICogaXRlbXNpemUgIT0gYnVmZmVyIHNpemUiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGluaXRfZmxhZ3MobXYpOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3plcm9faW5fc2hhcGUoUHlNZW1vcnlWaWV3T2JqZWN0ICptdikKK3sKKyAgICBQeV9idWZmZXIgKnZpZXcgPSAmbXYtPnZpZXc7CisgICAgUHlfc3NpemVfdCBpOworCisgICAgZm9yIChpID0gMDsgaSA8IHZpZXctPm5kaW07IGkrKykKKyAgICAgICAgaWYgKHZpZXctPnNoYXBlW2ldID09IDApCisgICAgICAgICAgICByZXR1cm4gMTsKKwogICAgIHJldHVybiAwOwogfQogCiAvKgotICAgR2V0IGEgdGhlIGRhdGEgZnJvbSBhbiBvYmplY3QgYXMgYSBjb250aWd1b3VzIGNodW5rIG9mIG1lbW9yeSAoaW4KLSAgIGVpdGhlciAnQycgb3IgJ0Ynb3J0cmFuIG9yZGVyKSBldmVuIGlmIGl0IG1lYW5zIGNvcHlpbmcgaXQgaW50byBhCi0gICBzZXBhcmF0ZSBtZW1vcnkgYXJlYS4KKyAgIENhc3QgYSBjb3B5IG9mICdzZWxmJyB0byBhIGRpZmZlcmVudCB2aWV3LiBUaGUgaW5wdXQgdmlldyBtdXN0CisgICBiZSBDLWNvbnRpZ3VvdXMuIFRoZSBmdW5jdGlvbiBhbHdheXMgY2FzdHMgdGhlIGlucHV0IHZpZXcgdG8gYQorICAgMS1EIG91dHB1dCBhY2NvcmRpbmcgdG8gJ2Zvcm1hdCcuIEF0IGxlYXN0IG9uZSBvZiBpbnB1dC1mb3JtYXQsCisgICBvdXRwdXQtZm9ybWF0IG11c3QgaGF2ZSBieXRlIHNpemUuCiAKLSAgIFJldHVybnMgYSBuZXcgcmVmZXJlbmNlIHRvIGEgTWVtb3J5IHZpZXcgb2JqZWN0LiAgSWYgbm8gY29weSBpcyBuZWVkZWQsCi0gICB0aGUgbWVtb3J5IHZpZXcgb2JqZWN0IHBvaW50cyB0byB0aGUgb3JpZ2luYWwgbWVtb3J5IGFuZCBob2xkcyBhCi0gICBsb2NrIG9uIHRoZSBvcmlnaW5hbC4gIElmIGEgY29weSBpcyBuZWVkZWQsIHRoZW4gdGhlIG1lbW9yeSB2aWV3IG9iamVjdAotICAgcG9pbnRzIHRvIGEgYnJhbmQtbmV3IEJ5dGVzIG9iamVjdCAoYW5kIGhvbGRzIGEgbWVtb3J5IGxvY2sgb24gaXQpLgorICAgSWYgJ3NoYXBlJyBpcyBnaXZlbiwgdGhlIDEtRCB2aWV3IGZyb20gdGhlIHByZXZpb3VzIHN0ZXAgd2lsbAorICAgYmUgY2FzdCB0byBhIEMtY29udGlndW91cyB2aWV3IHdpdGggbmV3IHNoYXBlIGFuZCBzdHJpZGVzLgogCi0gICBidWZmZXJ0eXBlCi0KLSAgIFB5QlVGX1JFQUQgIGJ1ZmZlciBvbmx5IG5lZWRzIHRvIGJlIHJlYWQtb25seQotICAgUHlCVUZfV1JJVEUgYnVmZmVyIG5lZWRzIHRvIGJlIHdyaXRhYmxlIChnaXZlIGVycm9yIGlmIG5vdCBjb250aWd1b3VzKQotICAgUHlCVUZfU0hBRE9XIGJ1ZmZlciBuZWVkcyB0byBiZSB3cml0YWJsZSBzbyBzaGFkb3cgaXQgd2l0aAotICAgICAgICAgICAgICAgIGEgY29udGlndW91cyBidWZmZXIgaWYgaXQgaXMgbm90LiBUaGUgdmlldyB3aWxsIHBvaW50IHRvCi0gICAgICAgICAgICAgICAgdGhlIHNoYWRvdyBidWZmZXIgd2hpY2ggY2FuIGJlIHdyaXR0ZW4gdG8gYW5kIHRoZW4KLSAgICAgICAgICAgICAgICB3aWxsIGJlIGNvcGllZCBiYWNrIGludG8gdGhlIG90aGVyIGJ1ZmZlciB3aGVuIHRoZSBtZW1vcnkKLSAgICAgICAgICAgICAgICB2aWV3IGlzIGRlLWFsbG9jYXRlZC4gIFdoaWxlIHRoZSBzaGFkb3cgYnVmZmVyIGlzCi0gICAgICAgICAgICAgICAgYmVpbmcgdXNlZCwgaXQgd2lsbCBoYXZlIGFuIGV4Y2x1c2l2ZSB3cml0ZSBsb2NrIG9uCi0gICAgICAgICAgICAgICAgdGhlIG9yaWdpbmFsIGJ1ZmZlci4KLSAqLwotCi1QeU9iamVjdCAqCi1QeU1lbW9yeVZpZXdfR2V0Q29udGlndW91cyhQeU9iamVjdCAqb2JqLCBpbnQgYnVmZmVydHlwZSwgY2hhciBmb3J0KQorICAgQWxsIGNhc3RzIG11c3QgcmVzdWx0IGluIHZpZXdzIHRoYXQgd2lsbCBoYXZlIHRoZSBleGFjdCBieXRlCisgICBzaXplIG9mIHRoZSBvcmlnaW5hbCBpbnB1dC4gT3RoZXJ3aXNlLCBhbiBlcnJvciBpcyByYWlzZWQuCisqLworc3RhdGljIFB5T2JqZWN0ICoKK21lbW9yeV9jYXN0KFB5TWVtb3J5Vmlld09iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewotICAgIFB5TWVtb3J5Vmlld09iamVjdCAqbWVtOwotICAgIFB5T2JqZWN0ICpieXRlczsKLSAgICBQeV9idWZmZXIgKnZpZXc7Ci0gICAgaW50IGZsYWdzOwotICAgIGNoYXIgKmRlc3Q7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJmb3JtYXQiLCAic2hhcGUiLCBOVUxMfTsKKyAgICBQeU1lbW9yeVZpZXdPYmplY3QgKm12ID0gTlVMTDsKKyAgICBQeU9iamVjdCAqc2hhcGUgPSBOVUxMOworICAgIFB5T2JqZWN0ICpmb3JtYXQ7CisgICAgUHlfc3NpemVfdCBuZGltID0gMTsKIAotICAgIGlmICghUHlPYmplY3RfQ2hlY2tCdWZmZXIob2JqKSkgeworICAgIENIRUNLX1JFTEVBU0VEKHNlbGYpOworCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIk98TyIsIGt3bGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0LCAmc2hhcGUpKSB7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayhmb3JtYXQpKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAib2JqZWN0IGRvZXMgbm90IHN1cHBvcnQgdGhlIGJ1ZmZlciBpbnRlcmZhY2UiKTsKKyAgICAgICAgICAgICJtZW1vcnl2aWV3OiBmb3JtYXQgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0KLSAgICBtZW0gPSBQeU9iamVjdF9HQ19OZXcoUHlNZW1vcnlWaWV3T2JqZWN0LCAmUHlNZW1vcnlWaWV3X1R5cGUpOwotICAgIGlmIChtZW0gPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICB2aWV3ID0gJm1lbS0+dmlldzsKLSAgICBmbGFncyA9IFB5QlVGX0ZVTExfUk87Ci0gICAgc3dpdGNoKGJ1ZmZlcnR5cGUpIHsKLSAgICBjYXNlIFB5QlVGX1dSSVRFOgotICAgICAgICBmbGFncyA9IFB5QlVGX0ZVTEw7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGlmIChQeU9iamVjdF9HZXRCdWZmZXIob2JqLCB2aWV3LCBmbGFncykgIT0gMCkgewotICAgICAgICBQeV9ERUNSRUYobWVtKTsKKyAgICBpZiAoIU1WX0NfQ09OVElHVU9VUyhzZWxmLT5mbGFncykpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICJtZW1vcnl2aWV3OiBjYXN0cyBhcmUgcmVzdHJpY3RlZCB0byBDLWNvbnRpZ3VvdXMgdmlld3MiKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotCi0gICAgaWYgKFB5QnVmZmVyX0lzQ29udGlndW91cyh2aWV3LCBmb3J0KSkgewotICAgICAgICAvKiBubyBjb3B5IG5lZWRlZCAqLwotICAgICAgICBfUHlPYmplY3RfR0NfVFJBQ0sobWVtKTsKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKW1lbTsKLSAgICB9Ci0gICAgLyogb3RoZXJ3aXNlIGEgY29weSBpcyBuZWVkZWQgKi8KLSAgICBpZiAoYnVmZmVydHlwZSA9PSBQeUJVRl9XUklURSkgewotICAgICAgICBQeV9ERUNSRUYobWVtKTsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0J1ZmZlckVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgIndyaXRhYmxlIGNvbnRpZ3VvdXMgYnVmZmVyIHJlcXVlc3RlZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAiZm9yIGEgbm9uLWNvbnRpZ3VvdXNvYmplY3QuIik7CisgICAgaWYgKHplcm9faW5fc2hhcGUoc2VsZikpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICJtZW1vcnl2aWV3OiBjYW5ub3QgY2FzdCB2aWV3IHdpdGggemVyb3MgaW4gc2hhcGUgb3Igc3RyaWRlcyIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgYnl0ZXMgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIHZpZXctPmxlbik7Ci0gICAgaWYgKGJ5dGVzID09IE5VTEwpIHsKLSAgICAgICAgUHlfREVDUkVGKG1lbSk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBkZXN0ID0gUHlCeXRlc19BU19TVFJJTkcoYnl0ZXMpOwotICAgIC8qIGRpZmZlcmVudCBjb3B5aW5nIHN0cmF0ZWd5IGRlcGVuZGluZyBvbiB3aGV0aGVyCi0gICAgICAgb3Igbm90IGFueSBwb2ludGVyIGRlLXJlZmVyZW5jaW5nIGlzIG5lZWRlZAotICAgICovCi0gICAgLyogc3RyaWRlZCBvciBpbi1kaXJlY3QgY29weSAqLwotICAgIGlmICh2aWV3LT5zdWJvZmZzZXRzPT1OVUxMKSB7Ci0gICAgICAgIF9zdHJpZGVkX2NvcHlfbmQoZGVzdCwgdmlldy0+YnVmLCB2aWV3LT5uZGltLCB2aWV3LT5zaGFwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LT5zdHJpZGVzLCB2aWV3LT5pdGVtc2l6ZSwgZm9ydCk7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICBpZiAoX2luZGlyZWN0X2NvcHlfbmQoZGVzdCwgdmlldywgZm9ydCkgPCAwKSB7Ci0gICAgICAgICAgICBQeV9ERUNSRUYoYnl0ZXMpOwotICAgICAgICAgICAgUHlfREVDUkVGKG1lbSk7CisgICAgaWYgKHNoYXBlKSB7CisgICAgICAgIENIRUNLX0xJU1RfT1JfVFVQTEUoc2hhcGUpCisgICAgICAgIG5kaW0gPSBQeVNlcXVlbmNlX0Zhc3RfR0VUX1NJWkUoc2hhcGUpOworICAgICAgICBpZiAobmRpbSA+IFB5QlVGX01BWF9ORElNKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAibWVtb3J5dmlldzogbnVtYmVyIG9mIGRpbWVuc2lvbnMgbXVzdCBub3QgZXhjZWVkICIKKyAgICAgICAgICAgICAgICBTVFJJTkdJWkUoUHlCVUZfTUFYX05ESU0pKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIFB5QnVmZmVyX1JlbGVhc2Uodmlldyk7ICAvKiBYWFggPyAqLworICAgICAgICBpZiAoc2VsZi0+dmlldy5uZGltICE9IDEgJiYgbmRpbSAhPSAxKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICJtZW1vcnl2aWV3OiBjYXN0IG11c3QgYmUgMUQgLT4gTkQgb3IgTkQgLT4gMUQiKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CiAgICAgfQotICAgIF9QeU9iamVjdF9HQ19UUkFDSyhtZW0pOwotICAgIHJldHVybiAoUHlPYmplY3QgKiltZW07CisKKyAgICBtdiA9IChQeU1lbW9yeVZpZXdPYmplY3QgKikKKyAgICAgICAgbWJ1Zl9hZGRfaW5jb21wbGV0ZV92aWV3KHNlbGYtPm1idWYsICZzZWxmLT52aWV3LCBuZGltPT0wID8gMSA6IChpbnQpbmRpbSk7CisgICAgaWYgKG12ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKGNhc3RfdG9fMUQobXYsIGZvcm1hdCkgPCAwKQorICAgICAgICBnb3RvIGVycm9yOworICAgIGlmIChzaGFwZSAmJiBjYXN0X3RvX05EKG12LCBzaGFwZSwgKGludCluZGltKSA8IDApCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICByZXR1cm4gKFB5T2JqZWN0ICopbXY7CisKK2Vycm9yOgorICAgIFB5X0RFQ1JFRihtdik7CisgICAgcmV0dXJuIE5VTEw7CiB9CiAKIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YnVmZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgaW50CittZW1vcnlfZ2V0YnVmKFB5TWVtb3J5Vmlld09iamVjdCAqc2VsZiwgUHlfYnVmZmVyICp2aWV3LCBpbnQgZmxhZ3MpCit7CisgICAgUHlfYnVmZmVyICpiYXNlID0gJnNlbGYtPnZpZXc7CisgICAgaW50IGJhc2VmbGFncyA9IHNlbGYtPmZsYWdzOworCisgICAgQ0hFQ0tfUkVMRUFTRURfSU5UKHNlbGYpOworCisgICAgLyogc3RhcnQgd2l0aCBjb21wbGV0ZSBpbmZvcm1hdGlvbiAqLworICAgICp2aWV3ID0gKmJhc2U7CisgICAgdmlldy0+b2JqID0gTlVMTDsKKworICAgIGlmIChSRVFfV1JJVEFCTEUoZmxhZ3MpICYmIGJhc2UtPnJlYWRvbmx5KSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJtZW1vcnl2aWV3OiB1bmRlcmx5aW5nIGJ1ZmZlciBpcyBub3Qgd3JpdGFibGUiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoIVJFUV9GT1JNQVQoZmxhZ3MpKSB7CisgICAgICAgIC8qIE5VTEwgaW5kaWNhdGVzIHRoYXQgdGhlIGJ1ZmZlcidzIGRhdGEgdHlwZSBoYXMgYmVlbiBjYXN0IHRvICdCJy4KKyAgICAgICAgICAgdmlldy0+aXRlbXNpemUgaXMgdGhlIF9wcmV2aW91c18gaXRlbXNpemUuIElmIHNoYXBlIGlzIHByZXNlbnQsCisgICAgICAgICAgIHRoZSBlcXVhbGl0eSBwcm9kdWN0KHNoYXBlKSAqIGl0ZW1zaXplID0gbGVuIHN0aWxsIGhvbGRzIGF0IHRoaXMKKyAgICAgICAgICAgcG9pbnQuIFRoZSBlcXVhbGl0eSBjYWxjc2l6ZShmb3JtYXQpID0gaXRlbXNpemUgZG9lcyBfbm90XyBob2xkCisgICAgICAgICAgIGZyb20gaGVyZSBvbiEgKi8KKyAgICAgICAgdmlldy0+Zm9ybWF0ID0gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoUkVRX0NfQ09OVElHVU9VUyhmbGFncykgJiYgIU1WX0NfQ09OVElHVU9VUyhiYXNlZmxhZ3MpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJtZW1vcnl2aWV3OiB1bmRlcmx5aW5nIGJ1ZmZlciBpcyBub3QgQy1jb250aWd1b3VzIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKFJFUV9GX0NPTlRJR1VPVVMoZmxhZ3MpICYmICFNVl9GX0NPTlRJR1VPVVMoYmFzZWZsYWdzKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAibWVtb3J5dmlldzogdW5kZXJseWluZyBidWZmZXIgaXMgbm90IEZvcnRyYW4gY29udGlndW91cyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChSRVFfQU5ZX0NPTlRJR1VPVVMoZmxhZ3MpICYmICFNVl9BTllfQ09OVElHVU9VUyhiYXNlZmxhZ3MpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICJtZW1vcnl2aWV3OiB1bmRlcmx5aW5nIGJ1ZmZlciBpcyBub3QgY29udGlndW91cyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmICghUkVRX0lORElSRUNUKGZsYWdzKSAmJiAoYmFzZWZsYWdzICYgX1B5X01FTU9SWVZJRVdfUElMKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAibWVtb3J5dmlldzogdW5kZXJseWluZyBidWZmZXIgcmVxdWlyZXMgc3Vib2Zmc2V0cyIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmICghUkVRX1NUUklERVMoZmxhZ3MpKSB7CisgICAgICAgIGlmICghTVZfQ19DT05USUdVT1VTKGJhc2VmbGFncykpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19CdWZmZXJFcnJvciwKKyAgICAgICAgICAgICAgICAibWVtb3J5dmlldzogdW5kZXJseWluZyBidWZmZXIgaXMgbm90IEMtY29udGlndW91cyIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHZpZXctPnN0cmlkZXMgPSBOVUxMOworICAgIH0KKyAgICBpZiAoIVJFUV9TSEFQRShmbGFncykpIHsKKyAgICAgICAgLyogUHlCVUZfU0lNUExFIG9yIFB5QlVGX1dSSVRBQkxFOiBhdCB0aGlzIHBvaW50IGJ1ZiBpcyBDLWNvbnRpZ3VvdXMsCisgICAgICAgICAgIHNvIGJhc2UtPmJ1ZiA9IG5kYnVmLT5kYXRhLiAqLworICAgICAgICBpZiAodmlldy0+Zm9ybWF0ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIC8qIFB5QlVGX1NJTVBMRXxQeUJVRl9GT1JNQVQgYW5kIFB5QlVGX1dSSVRBQkxFfFB5QlVGX0ZPUk1BVCBkbworICAgICAgICAgICAgICAgbm90IG1ha2Ugc2Vuc2UuICovCisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfQnVmZmVyRXJyb3IsCisgICAgICAgICAgICAgICAgIm5kYXJyYXk6IGNhbm5vdCBjYXN0IHRvIHVuc2lnbmVkIGJ5dGVzIGlmIHRoZSBmb3JtYXQgZmxhZyAiCisgICAgICAgICAgICAgICAgImlzIHByZXNlbnQiKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICAvKiBwcm9kdWN0KHNoYXBlKSAqIGl0ZW1zaXplID0gbGVuIGFuZCBjYWxjc2l6ZShmb3JtYXQpID0gaXRlbXNpemUKKyAgICAgICAgICAgZG8gX25vdF8gaG9sZCBmcm9tIGhlcmUgb24hICovCisgICAgICAgIHZpZXctPm5kaW0gPSAxOworICAgICAgICB2aWV3LT5zaGFwZSA9IE5VTEw7CisgICAgfQorCisKKyAgICB2aWV3LT5vYmogPSAoUHlPYmplY3QgKilzZWxmOworICAgIFB5X0lOQ1JFRih2aWV3LT5vYmopOworICAgIHNlbGYtPmV4cG9ydHMrKzsKKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAorbWVtb3J5X3JlbGVhc2VidWYoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmLCBQeV9idWZmZXIgKnZpZXcpCit7CisgICAgc2VsZi0+ZXhwb3J0cy0tOworICAgIHJldHVybjsKKyAgICAvKiBQeUJ1ZmZlcl9SZWxlYXNlKCkgZGVjcmVtZW50cyB2aWV3LT5vYmogYWZ0ZXIgdGhpcyBmdW5jdGlvbiByZXR1cm5zLiAqLworfQorCisvKiBCdWZmZXIgbWV0aG9kcyAqLworc3RhdGljIFB5QnVmZmVyUHJvY3MgbWVtb3J5X2FzX2J1ZmZlciA9IHsKKyAgICAoZ2V0YnVmZmVycHJvYyltZW1vcnlfZ2V0YnVmLCAgICAgICAgIC8qIGJmX2dldGJ1ZmZlciAqLworICAgIChyZWxlYXNlYnVmZmVycHJvYyltZW1vcnlfcmVsZWFzZWJ1ZiwgLyogYmZfcmVsZWFzZWJ1ZmZlciAqLworfTsKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICBPcHRpbWl6ZWQgcGFjay91bnBhY2sgZm9yIGFsbCBuYXRpdmUgZm9ybWF0IHNwZWNpZmllcnMgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qCisgIEZpeCBleGNlcHRpb25zOgorICAgICAxKSBJbmNsdWRlIGZvcm1hdCBzdHJpbmcgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCisgICAgIDIpIE92ZXJmbG93RXJyb3IgLT4gVmFsdWVFcnJvci4KKyAgICAgMykgVGhlIGVycm9yIG1lc3NhZ2UgZnJvbSBQeU51bWJlcl9JbmRleCgpIGlzIG5vdCBpZGVhbC4KKyovCitzdGF0aWMgaW50Cit0eXBlX2Vycm9yX2ludChjb25zdCBjaGFyICpmbXQpCit7CisgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgIm1lbW9yeXZpZXc6IGludmFsaWQgdHlwZSBmb3IgZm9ybWF0ICclcyciLCBmbXQpOworICAgIHJldHVybiAtMTsKK30KKworc3RhdGljIGludAordmFsdWVfZXJyb3JfaW50KGNvbnN0IGNoYXIgKmZtdCkKK3sKKyAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgIm1lbW9yeXZpZXc6IGludmFsaWQgdmFsdWUgZm9yIGZvcm1hdCAnJXMnIiwgZm10KTsKKyAgICByZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQKK2ZpeF9lcnJvcl9pbnQoY29uc3QgY2hhciAqZm10KQoreworICAgIGFzc2VydChQeUVycl9PY2N1cnJlZCgpKTsKKyAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19UeXBlRXJyb3IpKSB7CisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgICAgIHJldHVybiB0eXBlX2Vycm9yX2ludChmbXQpOworICAgIH0KKyAgICBlbHNlIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX092ZXJmbG93RXJyb3IpIHx8CisgICAgICAgICAgICAgUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19WYWx1ZUVycm9yKSkgeworICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICByZXR1cm4gdmFsdWVfZXJyb3JfaW50KGZtdCk7CisgICAgfQorCisgICAgcmV0dXJuIC0xOworfQorCisvKiBBY2NlcHQgaW50ZWdlciBvYmplY3RzIG9yIG9iamVjdHMgd2l0aCBhbiBfX2luZGV4X18oKSBtZXRob2QuICovCitzdGF0aWMgbG9uZworcHlsb25nX2FzX2xkKFB5T2JqZWN0ICppdGVtKQoreworICAgIFB5T2JqZWN0ICp0bXA7CisgICAgbG9uZyBsZDsKKworICAgIHRtcCA9IFB5TnVtYmVyX0luZGV4KGl0ZW0pOworICAgIGlmICh0bXAgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgbGQgPSBQeUxvbmdfQXNMb25nKHRtcCk7CisgICAgUHlfREVDUkVGKHRtcCk7CisgICAgcmV0dXJuIGxkOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZworcHlsb25nX2FzX2x1KFB5T2JqZWN0ICppdGVtKQoreworICAgIFB5T2JqZWN0ICp0bXA7CisgICAgdW5zaWduZWQgbG9uZyBsdTsKKworICAgIHRtcCA9IFB5TnVtYmVyX0luZGV4KGl0ZW0pOworICAgIGlmICh0bXAgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuICh1bnNpZ25lZCBsb25nKS0xOworCisgICAgbHUgPSBQeUxvbmdfQXNVbnNpZ25lZExvbmcodG1wKTsKKyAgICBQeV9ERUNSRUYodG1wKTsKKyAgICByZXR1cm4gbHU7Cit9CisKKyNpZmRlZiBIQVZFX0xPTkdfTE9ORworc3RhdGljIFBZX0xPTkdfTE9ORworcHlsb25nX2FzX2xsZChQeU9iamVjdCAqaXRlbSkKK3sKKyAgICBQeU9iamVjdCAqdG1wOworICAgIFBZX0xPTkdfTE9ORyBsbGQ7CisKKyAgICB0bXAgPSBQeU51bWJlcl9JbmRleChpdGVtKTsKKyAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGxsZCA9IFB5TG9uZ19Bc0xvbmdMb25nKHRtcCk7CisgICAgUHlfREVDUkVGKHRtcCk7CisgICAgcmV0dXJuIGxsZDsKK30KKworc3RhdGljIHVuc2lnbmVkIFBZX0xPTkdfTE9ORworcHlsb25nX2FzX2xsdShQeU9iamVjdCAqaXRlbSkKK3sKKyAgICBQeU9iamVjdCAqdG1wOworICAgIHVuc2lnbmVkIFBZX0xPTkdfTE9ORyBsbHU7CisKKyAgICB0bXAgPSBQeU51bWJlcl9JbmRleChpdGVtKTsKKyAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgIHJldHVybiAodW5zaWduZWQgUFlfTE9OR19MT05HKS0xOworCisgICAgbGx1ID0gUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZyh0bXApOworICAgIFB5X0RFQ1JFRih0bXApOworICAgIHJldHVybiBsbHU7Cit9CisjZW5kaWYKKworc3RhdGljIFB5X3NzaXplX3QKK3B5bG9uZ19hc196ZChQeU9iamVjdCAqaXRlbSkKK3sKKyAgICBQeU9iamVjdCAqdG1wOworICAgIFB5X3NzaXplX3QgemQ7CisKKyAgICB0bXAgPSBQeU51bWJlcl9JbmRleChpdGVtKTsKKyAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIHpkID0gUHlMb25nX0FzU3NpemVfdCh0bXApOworICAgIFB5X0RFQ1JFRih0bXApOworICAgIHJldHVybiB6ZDsKK30KKworc3RhdGljIHNpemVfdAorcHlsb25nX2FzX3p1KFB5T2JqZWN0ICppdGVtKQoreworICAgIFB5T2JqZWN0ICp0bXA7CisgICAgc2l6ZV90IHp1OworCisgICAgdG1wID0gUHlOdW1iZXJfSW5kZXgoaXRlbSk7CisgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gKHNpemVfdCktMTsKKworICAgIHp1ID0gUHlMb25nX0FzU2l6ZV90KHRtcCk7CisgICAgUHlfREVDUkVGKHRtcCk7CisgICAgcmV0dXJuIHp1OworfQorCisvKiBUaW1pbmdzIHdpdGggdGhlIG5kYXJyYXkgZnJvbSBfdGVzdGJ1ZmZlci5jIGluZGljYXRlIHRoYXQgdXNpbmcgdGhlCisgICBzdHJ1Y3QgbW9kdWxlIGlzIGFyb3VuZCAxNXggc2xvd2VyIHRoYW4gdGhlIHR3byBmdW5jdGlvbnMgYmVsb3cuICovCisKKyNkZWZpbmUgVU5QQUNLX1NJTkdMRShkZXN0LCBwdHIsIHR5cGUpIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGUgeDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICBtZW1jcHkoKGNoYXIgKikmeCwgcHRyLCBzaXplb2YgeCk7IFwKKyAgICAgICAgZGVzdCA9IHg7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKworLyogVW5wYWNrIGEgc2luZ2xlIGl0ZW0uICdmbXQnIGNhbiBiZSBhbnkgbmF0aXZlIGZvcm1hdCBjaGFyYWN0ZXIgaW4gc3RydWN0CisgICBtb2R1bGUgc3ludGF4LiBUaGlzIGZ1bmN0aW9uIGlzIHZlcnkgc2Vuc2l0aXZlIHRvIHNtYWxsIGNoYW5nZXMuIFdpdGggdGhpcworICAgbGF5b3V0IGdjYyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlcyBhIGZhc3QganVtcCB0YWJsZS4gKi8KK1B5X0xPQ0FMX0lOTElORShQeU9iamVjdCAqKQordW5wYWNrX3NpbmdsZShjb25zdCBjaGFyICpwdHIsIGNvbnN0IGNoYXIgKmZtdCkKK3sKKyAgICB1bnNpZ25lZCBQWV9MT05HX0xPTkcgbGx1OworICAgIHVuc2lnbmVkIGxvbmcgbHU7CisgICAgc2l6ZV90IHp1OworICAgIFBZX0xPTkdfTE9ORyBsbGQ7CisgICAgbG9uZyBsZDsKKyAgICBQeV9zc2l6ZV90IHpkOworICAgIGRvdWJsZSBkOworICAgIHVuc2lnbmVkIGNoYXIgdWM7CisgICAgdm9pZCAqcDsKKworICAgIHN3aXRjaCAoZm10WzBdKSB7CisKKyAgICAvKiBzaWduZWQgaW50ZWdlcnMgYW5kIGZhc3QgcGF0aCBmb3IgJ0InICovCisgICAgY2FzZSAnQic6IHVjID0gKigodW5zaWduZWQgY2hhciAqKXB0cik7IGdvdG8gY29udmVydF91YzsKKyAgICBjYXNlICdiJzogbGQgPSAgICooKHNpZ25lZCBjaGFyICopcHRyKTsgZ290byBjb252ZXJ0X2xkOworICAgIGNhc2UgJ2gnOiBVTlBBQ0tfU0lOR0xFKGxkLCBwdHIsIHNob3J0KTsgZ290byBjb252ZXJ0X2xkOworICAgIGNhc2UgJ2knOiBVTlBBQ0tfU0lOR0xFKGxkLCBwdHIsIGludCk7IGdvdG8gY29udmVydF9sZDsKKyAgICBjYXNlICdsJzogVU5QQUNLX1NJTkdMRShsZCwgcHRyLCBsb25nKTsgZ290byBjb252ZXJ0X2xkOworCisgICAgLyogYm9vbGVhbiAqLworICAgICNpZmRlZiBIQVZFX0M5OV9CT09MCisgICAgY2FzZSAnPyc6IFVOUEFDS19TSU5HTEUobGQsIHB0ciwgX0Jvb2wpOyBnb3RvIGNvbnZlcnRfYm9vbDsKKyAgICAjZWxzZQorICAgIGNhc2UgJz8nOiBVTlBBQ0tfU0lOR0xFKGxkLCBwdHIsIGNoYXIpOyBnb3RvIGNvbnZlcnRfYm9vbDsKKyAgICAjZW5kaWYKKworICAgIC8qIHVuc2lnbmVkIGludGVnZXJzICovCisgICAgY2FzZSAnSCc6IFVOUEFDS19TSU5HTEUobHUsIHB0ciwgdW5zaWduZWQgc2hvcnQpOyBnb3RvIGNvbnZlcnRfbHU7CisgICAgY2FzZSAnSSc6IFVOUEFDS19TSU5HTEUobHUsIHB0ciwgdW5zaWduZWQgaW50KTsgZ290byBjb252ZXJ0X2x1OworICAgIGNhc2UgJ0wnOiBVTlBBQ0tfU0lOR0xFKGx1LCBwdHIsIHVuc2lnbmVkIGxvbmcpOyBnb3RvIGNvbnZlcnRfbHU7CisKKyAgICAvKiBuYXRpdmUgNjQtYml0ICovCisgICAgI2lmZGVmIEhBVkVfTE9OR19MT05HCisgICAgY2FzZSAncSc6IFVOUEFDS19TSU5HTEUobGxkLCBwdHIsIFBZX0xPTkdfTE9ORyk7IGdvdG8gY29udmVydF9sbGQ7CisgICAgY2FzZSAnUSc6IFVOUEFDS19TSU5HTEUobGx1LCBwdHIsIHVuc2lnbmVkIFBZX0xPTkdfTE9ORyk7IGdvdG8gY29udmVydF9sbHU7CisgICAgI2VuZGlmCisKKyAgICAvKiBzc2l6ZV90IGFuZCBzaXplX3QgKi8KKyAgICBjYXNlICduJzogVU5QQUNLX1NJTkdMRSh6ZCwgcHRyLCBQeV9zc2l6ZV90KTsgZ290byBjb252ZXJ0X3pkOworICAgIGNhc2UgJ04nOiBVTlBBQ0tfU0lOR0xFKHp1LCBwdHIsIHNpemVfdCk7IGdvdG8gY29udmVydF96dTsKKworICAgIC8qIGZsb2F0cyAqLworICAgIGNhc2UgJ2YnOiBVTlBBQ0tfU0lOR0xFKGQsIHB0ciwgZmxvYXQpOyBnb3RvIGNvbnZlcnRfZG91YmxlOworICAgIGNhc2UgJ2QnOiBVTlBBQ0tfU0lOR0xFKGQsIHB0ciwgZG91YmxlKTsgZ290byBjb252ZXJ0X2RvdWJsZTsKKworICAgIC8qIGJ5dGVzIG9iamVjdCAqLworICAgIGNhc2UgJ2MnOiBnb3RvIGNvbnZlcnRfYnl0ZXM7CisKKyAgICAvKiBwb2ludGVyICovCisgICAgY2FzZSAnUCc6IFVOUEFDS19TSU5HTEUocCwgcHRyLCB2b2lkICopOyBnb3RvIGNvbnZlcnRfcG9pbnRlcjsKKworICAgIC8qIGRlZmF1bHQgKi8KKyAgICBkZWZhdWx0OiBnb3RvIGVycl9mb3JtYXQ7CisgICAgfQorCitjb252ZXJ0X3VjOgorICAgIC8qIFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKCkgaXMgc2xvd2VyICovCisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyh1Yyk7Citjb252ZXJ0X2xkOgorICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcobGQpOworY29udmVydF9sdToKKyAgICByZXR1cm4gUHlMb25nX0Zyb21VbnNpZ25lZExvbmcobHUpOworY29udmVydF9sbGQ6CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZ0xvbmcobGxkKTsKK2NvbnZlcnRfbGx1OgorICAgIHJldHVybiBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZ0xvbmcobGx1KTsKK2NvbnZlcnRfemQ6CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdCh6ZCk7Citjb252ZXJ0X3p1OgorICAgIHJldHVybiBQeUxvbmdfRnJvbVNpemVfdCh6dSk7Citjb252ZXJ0X2RvdWJsZToKKyAgICByZXR1cm4gUHlGbG9hdF9Gcm9tRG91YmxlKGQpOworY29udmVydF9ib29sOgorICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcobGQpOworY29udmVydF9ieXRlczoKKyAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShwdHIsIDEpOworY29udmVydF9wb2ludGVyOgorICAgIHJldHVybiBQeUxvbmdfRnJvbVZvaWRQdHIocCk7CitlcnJfZm9ybWF0OgorICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yLAorICAgICAgICAibWVtb3J5dmlldzogZm9ybWF0ICVzIG5vdCBzdXBwb3J0ZWQiLCBmbXQpOworICAgIHJldHVybiBOVUxMOworfQorCisjZGVmaW5lIFBBQ0tfU0lOR0xFKHB0ciwgc3JjLCB0eXBlKSBcCisgICAgZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGUgeDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHggPSAodHlwZSlzcmM7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIG1lbWNweShwdHIsIChjaGFyICopJngsIHNpemVvZiB4KTsgICBcCisgICAgfSB3aGlsZSAoMCkKKworLyogUGFjayBhIHNpbmdsZSBpdGVtLiAnZm10JyBjYW4gYmUgYW55IG5hdGl2ZSBmb3JtYXQgY2hhcmFjdGVyIGluCisgICBzdHJ1Y3QgbW9kdWxlIHN5bnRheC4gKi8KK3N0YXRpYyBpbnQKK3BhY2tfc2luZ2xlKGNoYXIgKnB0ciwgUHlPYmplY3QgKml0ZW0sIGNvbnN0IGNoYXIgKmZtdCkKK3sKKyAgICB1bnNpZ25lZCBQWV9MT05HX0xPTkcgbGx1OworICAgIHVuc2lnbmVkIGxvbmcgbHU7CisgICAgc2l6ZV90IHp1OworICAgIFBZX0xPTkdfTE9ORyBsbGQ7CisgICAgbG9uZyBsZDsKKyAgICBQeV9zc2l6ZV90IHpkOworICAgIGRvdWJsZSBkOworICAgIHZvaWQgKnA7CisKKyAgICBzd2l0Y2ggKGZtdFswXSkgeworICAgIC8qIHNpZ25lZCBpbnRlZ2VycyAqLworICAgIGNhc2UgJ2InOiBjYXNlICdoJzogY2FzZSAnaSc6IGNhc2UgJ2wnOgorICAgICAgICBsZCA9IHB5bG9uZ19hc19sZChpdGVtKTsKKyAgICAgICAgaWYgKGxkID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBnb3RvIGVycl9vY2N1cnJlZDsKKyAgICAgICAgc3dpdGNoIChmbXRbMF0pIHsKKyAgICAgICAgY2FzZSAnYic6CisgICAgICAgICAgICBpZiAobGQgPCBTQ0hBUl9NSU4gfHwgbGQgPiBTQ0hBUl9NQVgpIGdvdG8gZXJyX3JhbmdlOworICAgICAgICAgICAgKigoc2lnbmVkIGNoYXIgKilwdHIpID0gKHNpZ25lZCBjaGFyKWxkOyBicmVhazsKKyAgICAgICAgY2FzZSAnaCc6CisgICAgICAgICAgICBpZiAobGQgPCBTSFJUX01JTiB8fCBsZCA+IFNIUlRfTUFYKSBnb3RvIGVycl9yYW5nZTsKKyAgICAgICAgICAgIFBBQ0tfU0lOR0xFKHB0ciwgbGQsIHNob3J0KTsgYnJlYWs7CisgICAgICAgIGNhc2UgJ2knOgorICAgICAgICAgICAgaWYgKGxkIDwgSU5UX01JTiB8fCBsZCA+IElOVF9NQVgpIGdvdG8gZXJyX3JhbmdlOworICAgICAgICAgICAgUEFDS19TSU5HTEUocHRyLCBsZCwgaW50KTsgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6IC8qICdsJyAqLworICAgICAgICAgICAgUEFDS19TSU5HTEUocHRyLCBsZCwgbG9uZyk7IGJyZWFrOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworCisgICAgLyogdW5zaWduZWQgaW50ZWdlcnMgKi8KKyAgICBjYXNlICdCJzogY2FzZSAnSCc6IGNhc2UgJ0knOiBjYXNlICdMJzoKKyAgICAgICAgbHUgPSBweWxvbmdfYXNfbHUoaXRlbSk7CisgICAgICAgIGlmIChsdSA9PSAodW5zaWduZWQgbG9uZyktMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgZ290byBlcnJfb2NjdXJyZWQ7CisgICAgICAgIHN3aXRjaCAoZm10WzBdKSB7CisgICAgICAgIGNhc2UgJ0InOgorICAgICAgICAgICAgaWYgKGx1ID4gVUNIQVJfTUFYKSBnb3RvIGVycl9yYW5nZTsKKyAgICAgICAgICAgICooKHVuc2lnbmVkIGNoYXIgKilwdHIpID0gKHVuc2lnbmVkIGNoYXIpbHU7IGJyZWFrOworICAgICAgICBjYXNlICdIJzoKKyAgICAgICAgICAgIGlmIChsdSA+IFVTSFJUX01BWCkgZ290byBlcnJfcmFuZ2U7CisgICAgICAgICAgICBQQUNLX1NJTkdMRShwdHIsIGx1LCB1bnNpZ25lZCBzaG9ydCk7IGJyZWFrOworICAgICAgICBjYXNlICdJJzoKKyAgICAgICAgICAgIGlmIChsdSA+IFVJTlRfTUFYKSBnb3RvIGVycl9yYW5nZTsKKyAgICAgICAgICAgIFBBQ0tfU0lOR0xFKHB0ciwgbHUsIHVuc2lnbmVkIGludCk7IGJyZWFrOworICAgICAgICBkZWZhdWx0OiAvKiAnTCcgKi8KKyAgICAgICAgICAgIFBBQ0tfU0lOR0xFKHB0ciwgbHUsIHVuc2lnbmVkIGxvbmcpOyBicmVhazsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIC8qIG5hdGl2ZSA2NC1iaXQgKi8KKyAgICAjaWZkZWYgSEFWRV9MT05HX0xPTkcKKyAgICBjYXNlICdxJzoKKyAgICAgICAgbGxkID0gcHlsb25nX2FzX2xsZChpdGVtKTsKKyAgICAgICAgaWYgKGxsZCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgZ290byBlcnJfb2NjdXJyZWQ7CisgICAgICAgIFBBQ0tfU0lOR0xFKHB0ciwgbGxkLCBQWV9MT05HX0xPTkcpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICdRJzoKKyAgICAgICAgbGx1ID0gcHlsb25nX2FzX2xsdShpdGVtKTsKKyAgICAgICAgaWYgKGxsdSA9PSAodW5zaWduZWQgUFlfTE9OR19MT05HKS0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBnb3RvIGVycl9vY2N1cnJlZDsKKyAgICAgICAgUEFDS19TSU5HTEUocHRyLCBsbHUsIHVuc2lnbmVkIFBZX0xPTkdfTE9ORyk7CisgICAgICAgIGJyZWFrOworICAgICNlbmRpZgorCisgICAgLyogc3NpemVfdCBhbmQgc2l6ZV90ICovCisgICAgY2FzZSAnbic6CisgICAgICAgIHpkID0gcHlsb25nX2FzX3pkKGl0ZW0pOworICAgICAgICBpZiAoemQgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIGdvdG8gZXJyX29jY3VycmVkOworICAgICAgICBQQUNLX1NJTkdMRShwdHIsIHpkLCBQeV9zc2l6ZV90KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAnTic6CisgICAgICAgIHp1ID0gcHlsb25nX2FzX3p1KGl0ZW0pOworICAgICAgICBpZiAoenUgPT0gKHNpemVfdCktMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgZ290byBlcnJfb2NjdXJyZWQ7CisgICAgICAgIFBBQ0tfU0lOR0xFKHB0ciwgenUsIHNpemVfdCk7CisgICAgICAgIGJyZWFrOworCisgICAgLyogZmxvYXRzICovCisgICAgY2FzZSAnZic6IGNhc2UgJ2QnOgorICAgICAgICBkID0gUHlGbG9hdF9Bc0RvdWJsZShpdGVtKTsKKyAgICAgICAgaWYgKGQgPT0gLTEuMCAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgZ290byBlcnJfb2NjdXJyZWQ7CisgICAgICAgIGlmIChmbXRbMF0gPT0gJ2YnKSB7CisgICAgICAgICAgICBQQUNLX1NJTkdMRShwdHIsIGQsIGZsb2F0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFBBQ0tfU0lOR0xFKHB0ciwgZCwgZG91YmxlKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKworICAgIC8qIGJvb2wgKi8KKyAgICBjYXNlICc/JzoKKyAgICAgICAgbGQgPSBQeU9iamVjdF9Jc1RydWUoaXRlbSk7CisgICAgICAgIGlmIChsZCA8IDApCisgICAgICAgICAgICByZXR1cm4gLTE7IC8qIHByZXNlcnZlIG9yaWdpbmFsIGVycm9yICovCisgICAgI2lmZGVmIEhBVkVfQzk5X0JPT0wKKyAgICAgICAgUEFDS19TSU5HTEUocHRyLCBsZCwgX0Jvb2wpOworICAgICNlbHNlCisgICAgICAgIFBBQ0tfU0lOR0xFKHB0ciwgbGQsIGNoYXIpOworICAgICNlbmRpZgorICAgICAgICAgYnJlYWs7CisKKyAgICAvKiBieXRlcyBvYmplY3QgKi8KKyAgICBjYXNlICdjJzoKKyAgICAgICAgaWYgKCFQeUJ5dGVzX0NoZWNrKGl0ZW0pKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVfZXJyb3JfaW50KGZtdCk7CisgICAgICAgIGlmIChQeUJ5dGVzX0dFVF9TSVpFKGl0ZW0pICE9IDEpCisgICAgICAgICAgICByZXR1cm4gdmFsdWVfZXJyb3JfaW50KGZtdCk7CisgICAgICAgICpwdHIgPSBQeUJ5dGVzX0FTX1NUUklORyhpdGVtKVswXTsKKyAgICAgICAgYnJlYWs7CisKKyAgICAvKiBwb2ludGVyICovCisgICAgY2FzZSAnUCc6CisgICAgICAgIHAgPSBQeUxvbmdfQXNWb2lkUHRyKGl0ZW0pOworICAgICAgICBpZiAocCA9PSBOVUxMICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBnb3RvIGVycl9vY2N1cnJlZDsKKyAgICAgICAgUEFDS19TSU5HTEUocHRyLCBwLCB2b2lkICopOworICAgICAgICBicmVhazsKKworICAgIC8qIGRlZmF1bHQgKi8KKyAgICBkZWZhdWx0OiBnb3RvIGVycl9mb3JtYXQ7CisgICAgfQorCisgICAgcmV0dXJuIDA7CisKK2Vycl9vY2N1cnJlZDoKKyAgICByZXR1cm4gZml4X2Vycm9yX2ludChmbXQpOworZXJyX3JhbmdlOgorICAgIHJldHVybiB2YWx1ZV9lcnJvcl9pbnQoZm10KTsKK2Vycl9mb3JtYXQ6CisgICAgUHlFcnJfRm9ybWF0KFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3IsCisgICAgICAgICJtZW1vcnl2aWV3OiBmb3JtYXQgJXMgbm90IHN1cHBvcnRlZCIsIGZtdCk7CisgICAgcmV0dXJuIC0xOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXByZXNlbnRhdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogYWxsb3cgZXhwbGljaXQgZm9ybSBvZiBuYXRpdmUgZm9ybWF0ICovCitQeV9MT0NBTF9JTkxJTkUoY29uc3QgY2hhciAqKQorYWRqdXN0X2ZtdChjb25zdCBQeV9idWZmZXIgKnZpZXcpCit7CisgICAgY29uc3QgY2hhciAqZm10OworCisgICAgZm10ID0gKHZpZXctPmZvcm1hdFswXSA9PSAnQCcpID8gdmlldy0+Zm9ybWF0KzEgOiB2aWV3LT5mb3JtYXQ7CisgICAgaWYgKGZtdFswXSAmJiBmbXRbMV0gPT0gJ1wwJykKKyAgICAgICAgcmV0dXJuIGZtdDsKKworICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yLAorICAgICAgICAibWVtb3J5dmlldzogdW5zdXBwb3J0ZWQgZm9ybWF0ICVzIiwgdmlldy0+Zm9ybWF0KTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworLyogQmFzZSBjYXNlIGZvciBtdWx0aS1kaW1lbnNpb25hbCB1bnBhY2tpbmcuIEFzc3VtcHRpb246IG5kaW0gPT0gMS4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCit0b2xpc3RfYmFzZShjb25zdCBjaGFyICpwdHIsIGNvbnN0IFB5X3NzaXplX3QgKnNoYXBlLAorICAgICAgICAgICAgY29uc3QgUHlfc3NpemVfdCAqc3RyaWRlcywgY29uc3QgUHlfc3NpemVfdCAqc3Vib2Zmc2V0cywKKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmZtdCkKK3sKKyAgICBQeU9iamVjdCAqbHN0LCAqaXRlbTsKKyAgICBQeV9zc2l6ZV90IGk7CisKKyAgICBsc3QgPSBQeUxpc3RfTmV3KHNoYXBlWzBdKTsKKyAgICBpZiAobHN0ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZm9yIChpID0gMDsgaSA8IHNoYXBlWzBdOyBwdHIrPXN0cmlkZXNbMF0sIGkrKykgeworICAgICAgICBjb25zdCBjaGFyICp4cHRyID0gQURKVVNUX1BUUihwdHIsIHN1Ym9mZnNldHMpOworICAgICAgICBpdGVtID0gdW5wYWNrX3NpbmdsZSh4cHRyLCBmbXQpOworICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYobHN0KTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIFB5TGlzdF9TRVRfSVRFTShsc3QsIGksIGl0ZW0pOworICAgIH0KKworICAgIHJldHVybiBsc3Q7Cit9CisKKy8qIFVucGFjayBhIG11bHRpLWRpbWVuc2lvbmFsIGFycmF5IGludG8gYSBuZXN0ZWQgbGlzdC4KKyAgIEFzc3VtcHRpb246IG5kaW0gPj0gMS4gKi8KK3N0YXRpYyBQeU9iamVjdCAqCit0b2xpc3RfcmVjKGNvbnN0IGNoYXIgKnB0ciwgUHlfc3NpemVfdCBuZGltLCBjb25zdCBQeV9zc2l6ZV90ICpzaGFwZSwKKyAgICAgICAgICAgY29uc3QgUHlfc3NpemVfdCAqc3RyaWRlcywgY29uc3QgUHlfc3NpemVfdCAqc3Vib2Zmc2V0cywKKyAgICAgICAgICAgY29uc3QgY2hhciAqZm10KQoreworICAgIFB5T2JqZWN0ICpsc3QsICppdGVtOworICAgIFB5X3NzaXplX3QgaTsKKworICAgIGFzc2VydChuZGltID49IDEpOworICAgIGFzc2VydChzaGFwZSAhPSBOVUxMKTsKKyAgICBhc3NlcnQoc3RyaWRlcyAhPSBOVUxMKTsKKworICAgIGlmIChuZGltID09IDEpCisgICAgICAgIHJldHVybiB0b2xpc3RfYmFzZShwdHIsIHNoYXBlLCBzdHJpZGVzLCBzdWJvZmZzZXRzLCBmbXQpOworCisgICAgbHN0ID0gUHlMaXN0X05ldyhzaGFwZVswXSk7CisgICAgaWYgKGxzdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGZvciAoaSA9IDA7IGkgPCBzaGFwZVswXTsgcHRyKz1zdHJpZGVzWzBdLCBpKyspIHsKKyAgICAgICAgY29uc3QgY2hhciAqeHB0ciA9IEFESlVTVF9QVFIocHRyLCBzdWJvZmZzZXRzKTsKKyAgICAgICAgaXRlbSA9IHRvbGlzdF9yZWMoeHB0ciwgbmRpbS0xLCBzaGFwZSsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpZGVzKzEsIHN1Ym9mZnNldHMgPyBzdWJvZmZzZXRzKzEgOiBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQpOworICAgICAgICBpZiAoaXRlbSA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYobHN0KTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIFB5TGlzdF9TRVRfSVRFTShsc3QsIGksIGl0ZW0pOworICAgIH0KKworICAgIHJldHVybiBsc3Q7Cit9CisKKy8qIFJldHVybiBhIGxpc3QgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1lbW9yeXZpZXcuIEN1cnJlbnRseSBvbmx5IGJ1ZmZlcnMKKyAgIHdpdGggbmF0aXZlIGZvcm1hdCBzdHJpbmdzIGFyZSBzdXBwb3J0ZWQuICovCitzdGF0aWMgUHlPYmplY3QgKgorbWVtb3J5X3RvbGlzdChQeU1lbW9yeVZpZXdPYmplY3QgKm12LCBQeU9iamVjdCAqbm9hcmdzKQoreworICAgIGNvbnN0IFB5X2J1ZmZlciAqdmlldyA9ICYobXYtPnZpZXcpOworICAgIGNvbnN0IGNoYXIgKmZtdDsKKworICAgIENIRUNLX1JFTEVBU0VEKG12KTsKKworICAgIGZtdCA9IGFkanVzdF9mbXQodmlldyk7CisgICAgaWYgKGZtdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAodmlldy0+bmRpbSA9PSAwKSB7CisgICAgICAgIHJldHVybiB1bnBhY2tfc2luZ2xlKHZpZXctPmJ1ZiwgZm10KTsKKyAgICB9CisgICAgZWxzZSBpZiAodmlldy0+bmRpbSA9PSAxKSB7CisgICAgICAgIHJldHVybiB0b2xpc3RfYmFzZSh2aWV3LT5idWYsIHZpZXctPnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldy0+c3RyaWRlcywgdmlldy0+c3Vib2Zmc2V0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gdG9saXN0X3JlYyh2aWV3LT5idWYsIHZpZXctPm5kaW0sIHZpZXctPnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3LT5zdHJpZGVzLCB2aWV3LT5zdWJvZmZzZXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBmbXQpOworICAgIH0KK30KKworc3RhdGljIFB5T2JqZWN0ICoKK21lbW9yeV90b2J5dGVzKFB5TWVtb3J5Vmlld09iamVjdCAqc2VsZiwgUHlPYmplY3QgKmR1bW15KQoreworICAgIFB5X2J1ZmZlciAqc3JjID0gVklFV19BRERSKHNlbGYpOworICAgIFB5T2JqZWN0ICpieXRlcyA9IE5VTEw7CisKKyAgICBDSEVDS19SRUxFQVNFRChzZWxmKTsKKworICAgIGlmIChNVl9DX0NPTlRJR1VPVVMoc2VsZi0+ZmxhZ3MpKSB7CisgICAgICAgIHJldHVybiBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKHNyYy0+YnVmLCBzcmMtPmxlbik7CisgICAgfQorCisgICAgYnl0ZXMgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIHNyYy0+bGVuKTsKKyAgICBpZiAoYnl0ZXMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoYnVmZmVyX3RvX2NfY29udGlndW91cyhQeUJ5dGVzX0FTX1NUUklORyhieXRlcyksIHNyYykgPCAwKSB7CisgICAgICAgIFB5X0RFQ1JFRihieXRlcyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiBieXRlczsKK30KKworc3RhdGljIFB5T2JqZWN0ICoKK21lbW9yeV9yZXByKFB5TWVtb3J5Vmlld09iamVjdCAqc2VsZikKK3sKKyAgICBpZiAoc2VsZi0+ZmxhZ3MgJiBfUHlfTUVNT1JZVklFV19SRUxFQVNFRCkKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8cmVsZWFzZWQgbWVtb3J5IGF0ICVwPiIsIHNlbGYpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8bWVtb3J5IGF0ICVwPiIsIHNlbGYpOworfQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleGluZyBhbmQgc2xpY2luZyAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogR2V0IHRoZSBwb2ludGVyIHRvIHRoZSBpdGVtIGF0IGluZGV4LiAqLworc3RhdGljIGNoYXIgKgorcHRyX2Zyb21faW5kZXgoUHlfYnVmZmVyICp2aWV3LCBQeV9zc2l6ZV90IGluZGV4KQoreworICAgIGNoYXIgKnB0cjsKKyAgICBQeV9zc2l6ZV90IG5pdGVtczsgLyogaXRlbXMgaW4gdGhlIGZpcnN0IGRpbWVuc2lvbiAqLworCisgICAgYXNzZXJ0KHZpZXctPnNoYXBlKTsKKyAgICBhc3NlcnQodmlldy0+c3RyaWRlcyk7CisKKyAgICBuaXRlbXMgPSB2aWV3LT5zaGFwZVswXTsKKyAgICBpZiAoaW5kZXggPCAwKSB7CisgICAgICAgIGluZGV4ICs9IG5pdGVtczsKKyAgICB9CisgICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBuaXRlbXMpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0luZGV4RXJyb3IsICJpbmRleCBvdXQgb2YgYm91bmRzIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHB0ciA9IChjaGFyICopdmlldy0+YnVmOworICAgIHB0ciArPSB2aWV3LT5zdHJpZGVzWzBdICogaW5kZXg7CisKKyAgICBwdHIgPSBBREpVU1RfUFRSKHB0ciwgdmlldy0+c3Vib2Zmc2V0cyk7CisKKyAgICByZXR1cm4gcHRyOworfQorCisvKiBSZXR1cm4gdGhlIGl0ZW0gYXQgaW5kZXguIEluIGEgb25lLWRpbWVuc2lvbmFsIHZpZXcsIHRoaXMgaXMgYW4gb2JqZWN0CisgICB3aXRoIHRoZSB0eXBlIHNwZWNpZmllZCBieSB2aWV3LT5mb3JtYXQuIE90aGVyd2lzZSwgdGhlIGl0ZW0gaXMgYSBzdWItdmlldy4KKyAgIFRoZSBmdW5jdGlvbiBpcyB1c2VkIGluIG1lbW9yeV9zdWJzY3JpcHQoKSBhbmQgbWVtb3J5X2FzX3NlcXVlbmNlLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK21lbW9yeV9pdGVtKFB5TWVtb3J5Vmlld09iamVjdCAqc2VsZiwgUHlfc3NpemVfdCBpbmRleCkKK3sKKyAgICBQeV9idWZmZXIgKnZpZXcgPSAmKHNlbGYtPnZpZXcpOworICAgIGNvbnN0IGNoYXIgKmZtdDsKKworICAgIENIRUNLX1JFTEVBU0VEKHNlbGYpOworCisgICAgZm10ID0gYWRqdXN0X2ZtdCh2aWV3KTsKKyAgICBpZiAoZm10ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKHZpZXctPm5kaW0gPT0gMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiaW52YWxpZCBpbmRleGluZyBvZiAwLWRpbSBtZW1vcnkiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmICh2aWV3LT5uZGltID09IDEpIHsKKyAgICAgICAgY2hhciAqcHRyID0gcHRyX2Zyb21faW5kZXgodmlldywgaW5kZXgpOworICAgICAgICBpZiAocHRyID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIHVucGFja19zaW5nbGUocHRyLCBmbXQpOworICAgIH0KKworICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yLAorICAgICAgICAibXVsdGktZGltZW5zaW9uYWwgc3ViLXZpZXdzIGFyZSBub3QgaW1wbGVtZW50ZWQiKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKworUHlfTE9DQUxfSU5MSU5FKGludCkKK2luaXRfc2xpY2UoUHlfYnVmZmVyICpiYXNlLCBQeU9iamVjdCAqa2V5LCBpbnQgZGltKQoreworICAgIFB5X3NzaXplX3Qgc3RhcnQsIHN0b3AsIHN0ZXAsIHNsaWNlbGVuZ3RoOworCisgICAgaWYgKFB5U2xpY2VfR2V0SW5kaWNlc0V4KGtleSwgYmFzZS0+c2hhcGVbZGltXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0LCAmc3RvcCwgJnN0ZXAsICZzbGljZWxlbmd0aCkgPCAwKSB7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKworICAgIGlmIChiYXNlLT5zdWJvZmZzZXRzID09IE5VTEwgfHwgZGltID09IDApIHsKKyAgICBhZGp1c3RfYnVmOgorICAgICAgICBiYXNlLT5idWYgPSAoY2hhciAqKWJhc2UtPmJ1ZiArIGJhc2UtPnN0cmlkZXNbZGltXSAqIHN0YXJ0OworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgUHlfc3NpemVfdCBuID0gZGltLTE7CisgICAgICAgIHdoaWxlIChuID49IDAgJiYgYmFzZS0+c3Vib2Zmc2V0c1tuXSA8IDApCisgICAgICAgICAgICBuLS07CisgICAgICAgIGlmIChuIDwgMCkKKyAgICAgICAgICAgIGdvdG8gYWRqdXN0X2J1ZjsgLyogYWxsIHN1Ym9mZnNldHMgYXJlIG5lZ2F0aXZlICovCisgICAgICAgIGJhc2UtPnN1Ym9mZnNldHNbbl0gPSBiYXNlLT5zdWJvZmZzZXRzW25dICsgYmFzZS0+c3RyaWRlc1tkaW1dICogc3RhcnQ7CisgICAgfQorICAgIGJhc2UtPnNoYXBlW2RpbV0gPSBzbGljZWxlbmd0aDsKKyAgICBiYXNlLT5zdHJpZGVzW2RpbV0gPSBiYXNlLT5zdHJpZGVzW2RpbV0gKiBzdGVwOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2lzX211bHRpc2xpY2UoUHlPYmplY3QgKmtleSkKK3sKKyAgICBQeV9zc2l6ZV90IHNpemUsIGk7CisKKyAgICBpZiAoIVB5VHVwbGVfQ2hlY2soa2V5KSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgc2l6ZSA9IFB5VHVwbGVfR0VUX1NJWkUoa2V5KTsKKyAgICBpZiAoc2l6ZSA9PSAwKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgUHlPYmplY3QgKnggPSBQeVR1cGxlX0dFVF9JVEVNKGtleSwgaSk7CisgICAgICAgIGlmICghUHlTbGljZV9DaGVjayh4KSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gMTsKK30KKworLyogbXZbb2JqXSByZXR1cm5zIGFuIG9iamVjdCBob2xkaW5nIHRoZSBkYXRhIGZvciBvbmUgZWxlbWVudCBpZiBvYmoKKyAgIGZ1bGx5IGluZGV4ZXMgdGhlIG1lbW9yeXZpZXcgb3IgYW5vdGhlciBtZW1vcnl2aWV3IG9iamVjdCBpZiBpdAorICAgZG9lcyBub3QuCisKKyAgIDAtZCBtZW1vcnl2aWV3IG9iamVjdHMgY2FuIGJlIHJlZmVyZW5jZWQgdXNpbmcgbXZbLi4uXSBvciBtdlsoKV0KKyAgIGJ1dCBub3Qgd2l0aCBhbnl0aGluZyBlbHNlLiAqLworc3RhdGljIFB5T2JqZWN0ICoKK21lbW9yeV9zdWJzY3JpcHQoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqa2V5KQoreworICAgIFB5X2J1ZmZlciAqdmlldzsKKyAgICB2aWV3ID0gJihzZWxmLT52aWV3KTsKKyAgICAKKyAgICBDSEVDS19SRUxFQVNFRChzZWxmKTsKKworICAgIGlmICh2aWV3LT5uZGltID09IDApIHsKKyAgICAgICAgaWYgKFB5VHVwbGVfQ2hlY2soa2V5KSAmJiBQeVR1cGxlX0dFVF9TSVpFKGtleSkgPT0gMCkgeworICAgICAgICAgICAgY29uc3QgY2hhciAqZm10ID0gYWRqdXN0X2ZtdCh2aWV3KTsKKyAgICAgICAgICAgIGlmIChmbXQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIHJldHVybiB1bnBhY2tfc2luZ2xlKHZpZXctPmJ1ZiwgZm10KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChrZXkgPT0gUHlfRWxsaXBzaXMpIHsKKyAgICAgICAgICAgIFB5X0lOQ1JFRihzZWxmKTsKKyAgICAgICAgICAgIHJldHVybiAoUHlPYmplY3QgKilzZWxmOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAiaW52YWxpZCBpbmRleGluZyBvZiAwLWRpbSBtZW1vcnkiKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKFB5SW5kZXhfQ2hlY2soa2V5KSkgeworICAgICAgICBQeV9zc2l6ZV90IGluZGV4OworICAgICAgICBpbmRleCA9IFB5TnVtYmVyX0FzU3NpemVfdChrZXksIFB5RXhjX0luZGV4RXJyb3IpOworICAgICAgICBpZiAoaW5kZXggPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICByZXR1cm4gbWVtb3J5X2l0ZW0oc2VsZiwgaW5kZXgpOworICAgIH0KKyAgICBlbHNlIGlmIChQeVNsaWNlX0NoZWNrKGtleSkpIHsKKyAgICAgICAgUHlNZW1vcnlWaWV3T2JqZWN0ICpzbGljZWQ7CisKKyAgICAgICAgc2xpY2VkID0gKFB5TWVtb3J5Vmlld09iamVjdCAqKW1idWZfYWRkX3ZpZXcoc2VsZi0+bWJ1Ziwgdmlldyk7CisgICAgICAgIGlmIChzbGljZWQgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworCisgICAgICAgIGlmIChpbml0X3NsaWNlKCZzbGljZWQtPnZpZXcsIGtleSwgMCkgPCAwKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoc2xpY2VkKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIGluaXRfbGVuKCZzbGljZWQtPnZpZXcpOworICAgICAgICBpbml0X2ZsYWdzKHNsaWNlZCk7CisKKyAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXNsaWNlZDsKKyAgICB9CisgICAgZWxzZSBpZiAoaXNfbXVsdGlzbGljZShrZXkpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yLAorICAgICAgICAgICAgIm11bHRpLWRpbWVuc2lvbmFsIHNsaWNpbmcgaXMgbm90IGltcGxlbWVudGVkIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJtZW1vcnl2aWV3OiBpbnZhbGlkIHNsaWNlIGtleSIpOworICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgaW50CittZW1vcnlfYXNzX3N1YihQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICprZXksIFB5T2JqZWN0ICp2YWx1ZSkKK3sKKyAgICBQeV9idWZmZXIgKnZpZXcgPSAmKHNlbGYtPnZpZXcpOworICAgIFB5X2J1ZmZlciBzcmM7CisgICAgY29uc3QgY2hhciAqZm10OworICAgIGNoYXIgKnB0cjsKKworICAgIENIRUNLX1JFTEVBU0VEX0lOVChzZWxmKTsKKworICAgIGZtdCA9IGFkanVzdF9mbXQodmlldyk7CisgICAgaWYgKGZtdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAodmlldy0+cmVhZG9ubHkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImNhbm5vdCBtb2RpZnkgcmVhZC1vbmx5IG1lbW9yeSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJjYW5ub3QgZGVsZXRlIG1lbW9yeSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmICh2aWV3LT5uZGltID09IDApIHsKKyAgICAgICAgaWYgKGtleSA9PSBQeV9FbGxpcHNpcyB8fAorICAgICAgICAgICAgKFB5VHVwbGVfQ2hlY2soa2V5KSAmJiBQeVR1cGxlX0dFVF9TSVpFKGtleSk9PTApKSB7CisgICAgICAgICAgICBwdHIgPSAoY2hhciAqKXZpZXctPmJ1ZjsKKyAgICAgICAgICAgIHJldHVybiBwYWNrX3NpbmdsZShwdHIsIHZhbHVlLCBmbXQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAiaW52YWxpZCBpbmRleGluZyBvZiAwLWRpbSBtZW1vcnkiKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAodmlldy0+bmRpbSAhPSAxKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yLAorICAgICAgICAgICAgIm1lbW9yeXZpZXcgYXNzaWdubWVudHMgYXJlIGN1cnJlbnRseSByZXN0cmljdGVkIHRvIG5kaW0gPSAxIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAoUHlJbmRleF9DaGVjayhrZXkpKSB7CisgICAgICAgIFB5X3NzaXplX3QgaW5kZXggPSBQeU51bWJlcl9Bc1NzaXplX3Qoa2V5LCBQeUV4Y19JbmRleEVycm9yKTsKKyAgICAgICAgaWYgKGluZGV4ID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHB0ciA9IHB0cl9mcm9tX2luZGV4KHZpZXcsIGluZGV4KTsKKyAgICAgICAgaWYgKHB0ciA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICByZXR1cm4gcGFja19zaW5nbGUocHRyLCB2YWx1ZSwgZm10KTsKKyAgICB9CisgICAgLyogb25lLWRpbWVuc2lvbmFsOiBmYXN0IHBhdGggKi8KKyAgICBpZiAoUHlTbGljZV9DaGVjayhrZXkpICYmIHZpZXctPm5kaW0gPT0gMSkgeworICAgICAgICBQeV9idWZmZXIgZGVzdDsgLyogc2xpY2VkIHZpZXcgKi8KKyAgICAgICAgUHlfc3NpemVfdCBhcnJheXNbM107CisgICAgICAgIGludCByZXQgPSAtMTsKKworICAgICAgICAvKiBydmFsdWUgbXVzdCBiZSBhbiBleHBvcnRlciAqLworICAgICAgICBpZiAoUHlPYmplY3RfR2V0QnVmZmVyKHZhbHVlLCAmc3JjLCBQeUJVRl9GVUxMX1JPKSA8IDApCisgICAgICAgICAgICByZXR1cm4gcmV0OworCisgICAgICAgIGRlc3QgPSAqdmlldzsKKyAgICAgICAgZGVzdC5zaGFwZSA9ICZhcnJheXNbMF07IGRlc3Quc2hhcGVbMF0gPSB2aWV3LT5zaGFwZVswXTsKKyAgICAgICAgZGVzdC5zdHJpZGVzID0gJmFycmF5c1sxXTsgZGVzdC5zdHJpZGVzWzBdID0gdmlldy0+c3RyaWRlc1swXTsKKyAgICAgICAgaWYgKHZpZXctPnN1Ym9mZnNldHMpIHsKKyAgICAgICAgICAgIGRlc3Quc3Vib2Zmc2V0cyA9ICZhcnJheXNbMl07IGRlc3Quc3Vib2Zmc2V0c1swXSA9IHZpZXctPnN1Ym9mZnNldHNbMF07CisgICAgICAgIH0KKworICAgICAgICBpZiAoaW5pdF9zbGljZSgmZGVzdCwga2V5LCAwKSA8IDApCisgICAgICAgICAgICBnb3RvIGVuZF9ibG9jazsKKyAgICAgICAgZGVzdC5sZW4gPSBkZXN0LnNoYXBlWzBdICogZGVzdC5pdGVtc2l6ZTsKKworICAgICAgICByZXQgPSBjb3B5X3NpbmdsZSgmZGVzdCwgJnNyYyk7CisKKyAgICBlbmRfYmxvY2s6CisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2UoJnNyYyk7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorICAgIGVsc2UgaWYgKFB5U2xpY2VfQ2hlY2soa2V5KSB8fCBpc19tdWx0aXNsaWNlKGtleSkpIHsKKyAgICAgICAgLyogQ2FsbCBtZW1vcnlfc3Vic2NyaXB0KCkgdG8gcHJvZHVjZSBhIHNsaWNlZCBsdmFsdWUsIHRoZW4gY29weQorICAgICAgICAgICBydmFsdWUgaW50byBsdmFsdWUuIFRoaXMgaXMgYWxyZWFkeSBpbXBsZW1lbnRlZCBpbiBfdGVzdGJ1ZmZlci5jLiAqLworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvciwKKyAgICAgICAgICAgICJtZW1vcnl2aWV3IHNsaWNlIGFzc2lnbm1lbnRzIGFyZSBjdXJyZW50bHkgcmVzdHJpY3RlZCAiCisgICAgICAgICAgICAidG8gbmRpbSA9IDEiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJtZW1vcnl2aWV3OiBpbnZhbGlkIHNsaWNlIGtleSIpOworICAgIHJldHVybiAtMTsKK30KKworc3RhdGljIFB5X3NzaXplX3QKK21lbW9yeV9sZW5ndGgoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmKQoreworICAgIENIRUNLX1JFTEVBU0VEX0lOVChzZWxmKTsKKyAgICByZXR1cm4gc2VsZi0+dmlldy5uZGltID09IDAgPyAxIDogc2VsZi0+dmlldy5zaGFwZVswXTsKK30KKworLyogQXMgbWFwcGluZyAqLworc3RhdGljIFB5TWFwcGluZ01ldGhvZHMgbWVtb3J5X2FzX21hcHBpbmcgPSB7CisgICAgKGxlbmZ1bmMpbWVtb3J5X2xlbmd0aCwgICAgICAgICAgICAgICAvKiBtcF9sZW5ndGggKi8KKyAgICAoYmluYXJ5ZnVuYyltZW1vcnlfc3Vic2NyaXB0LCAgICAgICAgIC8qIG1wX3N1YnNjcmlwdCAqLworICAgIChvYmpvYmphcmdwcm9jKW1lbW9yeV9hc3Nfc3ViLCAgICAgICAgLyogbXBfYXNzX3N1YnNjcmlwdCAqLworfTsKKworLyogQXMgc2VxdWVuY2UgKi8KK3N0YXRpYyBQeVNlcXVlbmNlTWV0aG9kcyBtZW1vcnlfYXNfc2VxdWVuY2UgPSB7CisgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzcV9sZW5ndGggKi8KKyAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNxX2NvbmNhdCAqLworICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3FfcmVwZWF0ICovCisgICAgICAgIChzc2l6ZWFyZ2Z1bmMpbWVtb3J5X2l0ZW0sICAgICAgICAvKiBzcV9pdGVtICovCit9OworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wYXJpc29ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2RlZmluZSBDTVBfU0lOR0xFKHAsIHEsIHR5cGUpIFwKKyAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICB0eXBlIHg7ICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHR5cGUgeTsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgbWVtY3B5KChjaGFyICopJngsIHAsIHNpemVvZiB4KTsgXAorICAgICAgICBtZW1jcHkoKGNoYXIgKikmeSwgcSwgc2l6ZW9mIHkpOyBcCisgICAgICAgIGVxdWFsID0gKHggPT0geSk7ICAgICAgICAgICAgICAgIFwKKyAgICB9IHdoaWxlICgwKQorCitQeV9MT0NBTF9JTkxJTkUoaW50KQordW5wYWNrX2NtcChjb25zdCBjaGFyICpwLCBjb25zdCBjaGFyICpxLCBjb25zdCBjaGFyICpmbXQpCit7CisgICAgaW50IGVxdWFsOworCisgICAgc3dpdGNoIChmbXRbMF0pIHsKKworICAgIC8qIHNpZ25lZCBpbnRlZ2VycyBhbmQgZmFzdCBwYXRoIGZvciAnQicgKi8KKyAgICBjYXNlICdCJzogcmV0dXJuICooKHVuc2lnbmVkIGNoYXIgKilwKSA9PSAqKCh1bnNpZ25lZCBjaGFyICopcSk7CisgICAgY2FzZSAnYic6IHJldHVybiAqKChzaWduZWQgY2hhciAqKXApID09ICooKHNpZ25lZCBjaGFyICopcSk7CisgICAgY2FzZSAnaCc6IENNUF9TSU5HTEUocCwgcSwgc2hvcnQpOyByZXR1cm4gZXF1YWw7CisgICAgY2FzZSAnaSc6IENNUF9TSU5HTEUocCwgcSwgaW50KTsgcmV0dXJuIGVxdWFsOworICAgIGNhc2UgJ2wnOiBDTVBfU0lOR0xFKHAsIHEsIGxvbmcpOyByZXR1cm4gZXF1YWw7CisKKyAgICAvKiBib29sZWFuICovCisgICAgI2lmZGVmIEhBVkVfQzk5X0JPT0wKKyAgICBjYXNlICc/JzogQ01QX1NJTkdMRShwLCBxLCBfQm9vbCk7IHJldHVybiBlcXVhbDsKKyAgICAjZWxzZQorICAgIGNhc2UgJz8nOiBDTVBfU0lOR0xFKHAsIHEsIGNoYXIpOyByZXR1cm4gZXF1YWw7CisgICAgI2VuZGlmCisKKyAgICAvKiB1bnNpZ25lZCBpbnRlZ2VycyAqLworICAgIGNhc2UgJ0gnOiBDTVBfU0lOR0xFKHAsIHEsIHVuc2lnbmVkIHNob3J0KTsgcmV0dXJuIGVxdWFsOworICAgIGNhc2UgJ0knOiBDTVBfU0lOR0xFKHAsIHEsIHVuc2lnbmVkIGludCk7IHJldHVybiBlcXVhbDsKKyAgICBjYXNlICdMJzogQ01QX1NJTkdMRShwLCBxLCB1bnNpZ25lZCBsb25nKTsgcmV0dXJuIGVxdWFsOworCisgICAgLyogbmF0aXZlIDY0LWJpdCAqLworICAgICNpZmRlZiBIQVZFX0xPTkdfTE9ORworICAgIGNhc2UgJ3EnOiBDTVBfU0lOR0xFKHAsIHEsIFBZX0xPTkdfTE9ORyk7IHJldHVybiBlcXVhbDsKKyAgICBjYXNlICdRJzogQ01QX1NJTkdMRShwLCBxLCB1bnNpZ25lZCBQWV9MT05HX0xPTkcpOyByZXR1cm4gZXF1YWw7CisgICAgI2VuZGlmCisKKyAgICAvKiBzc2l6ZV90IGFuZCBzaXplX3QgKi8KKyAgICBjYXNlICduJzogQ01QX1NJTkdMRShwLCBxLCBQeV9zc2l6ZV90KTsgcmV0dXJuIGVxdWFsOworICAgIGNhc2UgJ04nOiBDTVBfU0lOR0xFKHAsIHEsIHNpemVfdCk7IHJldHVybiBlcXVhbDsKKworICAgIC8qIGZsb2F0cyAqLworICAgIC8qIFhYWCBEQkxfRVBTSUxPTj8gKi8KKyAgICBjYXNlICdmJzogQ01QX1NJTkdMRShwLCBxLCBmbG9hdCk7IHJldHVybiBlcXVhbDsKKyAgICBjYXNlICdkJzogQ01QX1NJTkdMRShwLCBxLCBkb3VibGUpOyByZXR1cm4gZXF1YWw7CisKKyAgICAvKiBieXRlcyBvYmplY3QgKi8KKyAgICBjYXNlICdjJzogcmV0dXJuICpwID09ICpxOworCisgICAgLyogcG9pbnRlciAqLworICAgIGNhc2UgJ1AnOiBDTVBfU0lOR0xFKHAsIHEsIHZvaWQgKik7IHJldHVybiBlcXVhbDsKKworICAgIC8qIFB5X05vdEltcGxlbWVudGVkICovCisgICAgZGVmYXVsdDogcmV0dXJuIC0xOworICAgIH0KK30KKworLyogQmFzZSBjYXNlIGZvciByZWN1cnNpdmUgYXJyYXkgY29tcGFyaXNvbnMuIEFzc3VtcHRpb246IG5kaW0gPT0gMS4gKi8KK3N0YXRpYyBpbnQKK2NtcF9iYXNlKGNvbnN0IGNoYXIgKnAsIGNvbnN0IGNoYXIgKnEsIGNvbnN0IFB5X3NzaXplX3QgKnNoYXBlLAorICAgICAgICAgY29uc3QgUHlfc3NpemVfdCAqcHN0cmlkZXMsIGNvbnN0IFB5X3NzaXplX3QgKnBzdWJvZmZzZXRzLAorICAgICAgICAgY29uc3QgUHlfc3NpemVfdCAqcXN0cmlkZXMsIGNvbnN0IFB5X3NzaXplX3QgKnFzdWJvZmZzZXRzLAorICAgICAgICAgY29uc3QgY2hhciAqZm10KQoreworICAgIFB5X3NzaXplX3QgaTsKKyAgICBpbnQgZXF1YWw7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgc2hhcGVbMF07IHArPXBzdHJpZGVzWzBdLCBxKz1xc3RyaWRlc1swXSwgaSsrKSB7CisgICAgICAgIGNvbnN0IGNoYXIgKnhwID0gQURKVVNUX1BUUihwLCBwc3Vib2Zmc2V0cyk7CisgICAgICAgIGNvbnN0IGNoYXIgKnhxID0gQURKVVNUX1BUUihxLCBxc3Vib2Zmc2V0cyk7CisgICAgICAgIGVxdWFsID0gdW5wYWNrX2NtcCh4cCwgeHEsIGZtdCk7CisgICAgICAgIGlmIChlcXVhbCA8PSAwKQorICAgICAgICAgICAgcmV0dXJuIGVxdWFsOworICAgIH0KKworICAgIHJldHVybiAxOworfQorCisvKiBSZWN1cnNpdmVseSBjb21wYXJlIHR3byBtdWx0aS1kaW1lbnNpb25hbCBhcnJheXMgdGhhdCBoYXZlIHRoZSBzYW1lCisgICBsb2dpY2FsIHN0cnVjdHVyZS4gQXNzdW1wdGlvbjogbmRpbSA+PSAxLiAqLworc3RhdGljIGludAorY21wX3JlYyhjb25zdCBjaGFyICpwLCBjb25zdCBjaGFyICpxLAorICAgICAgICBQeV9zc2l6ZV90IG5kaW0sIGNvbnN0IFB5X3NzaXplX3QgKnNoYXBlLAorICAgICAgICBjb25zdCBQeV9zc2l6ZV90ICpwc3RyaWRlcywgY29uc3QgUHlfc3NpemVfdCAqcHN1Ym9mZnNldHMsCisgICAgICAgIGNvbnN0IFB5X3NzaXplX3QgKnFzdHJpZGVzLCBjb25zdCBQeV9zc2l6ZV90ICpxc3Vib2Zmc2V0cywKKyAgICAgICAgY29uc3QgY2hhciAqZm10KQoreworICAgIFB5X3NzaXplX3QgaTsKKyAgICBpbnQgZXF1YWw7CisKKyAgICBhc3NlcnQobmRpbSA+PSAxKTsKKyAgICBhc3NlcnQoc2hhcGUgIT0gTlVMTCk7CisgICAgYXNzZXJ0KHBzdHJpZGVzICE9IE5VTEwpOworICAgIGFzc2VydChxc3RyaWRlcyAhPSBOVUxMKTsKKworICAgIGlmIChuZGltID09IDEpIHsKKyAgICAgICAgcmV0dXJuIGNtcF9iYXNlKHAsIHEsIHNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgcHN0cmlkZXMsIHBzdWJvZmZzZXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgcXN0cmlkZXMsIHFzdWJvZmZzZXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgZm10KTsKKyAgICB9CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgc2hhcGVbMF07IHArPXBzdHJpZGVzWzBdLCBxKz1xc3RyaWRlc1swXSwgaSsrKSB7CisgICAgICAgIGNvbnN0IGNoYXIgKnhwID0gQURKVVNUX1BUUihwLCBwc3Vib2Zmc2V0cyk7CisgICAgICAgIGNvbnN0IGNoYXIgKnhxID0gQURKVVNUX1BUUihxLCBxc3Vib2Zmc2V0cyk7CisgICAgICAgIGVxdWFsID0gY21wX3JlYyh4cCwgeHEsIG5kaW0tMSwgc2hhcGUrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBzdHJpZGVzKzEsIHBzdWJvZmZzZXRzID8gcHN1Ym9mZnNldHMrMSA6IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICBxc3RyaWRlcysxLCBxc3Vib2Zmc2V0cyA/IHFzdWJvZmZzZXRzKzEgOiBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgZm10KTsKKyAgICAgICAgaWYgKGVxdWFsIDw9IDApCisgICAgICAgICAgICByZXR1cm4gZXF1YWw7CisgICAgfQorCisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCittZW1vcnlfcmljaGNvbXBhcmUoUHlPYmplY3QgKnYsIFB5T2JqZWN0ICp3LCBpbnQgb3ApCit7CisgICAgUHlPYmplY3QgKnJlczsKKyAgICBQeV9idWZmZXIgd2J1ZiwgKnZ2LCAqd3cgPSBOVUxMOworICAgIGNvbnN0IGNoYXIgKnZmbXQsICp3Zm10OworICAgIGludCBlcXVhbCA9IC0xOyAvKiBQeV9Ob3RJbXBsZW1lbnRlZCAqLworCisgICAgaWYgKG9wICE9IFB5X0VRICYmIG9wICE9IFB5X05FKQorICAgICAgICBnb3RvIHJlc3VsdDsgLyogUHlfTm90SW1wbGVtZW50ZWQgKi8KKworICAgIGFzc2VydChQeU1lbW9yeVZpZXdfQ2hlY2sodikpOworICAgIGlmIChCQVNFX0lOQUNDRVNTSUJMRSh2KSkgeworICAgICAgICBlcXVhbCA9ICh2ID09IHcpOworICAgICAgICBnb3RvIHJlc3VsdDsKKyAgICB9CisgICAgdnYgPSBWSUVXX0FERFIodik7CisKKyAgICBpZiAoUHlNZW1vcnlWaWV3X0NoZWNrKHcpKSB7CisgICAgICAgIGlmIChCQVNFX0lOQUNDRVNTSUJMRSh3KSkgeworICAgICAgICAgICAgZXF1YWwgPSAodiA9PSB3KTsKKyAgICAgICAgICAgIGdvdG8gcmVzdWx0OworICAgICAgICB9CisgICAgICAgIHd3ID0gVklFV19BRERSKHcpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcih3LCAmd2J1ZiwgUHlCVUZfRlVMTF9STykgPCAwKSB7CisgICAgICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICAgICAgZ290byByZXN1bHQ7IC8qIFB5X05vdEltcGxlbWVudGVkICovCisgICAgICAgIH0KKyAgICAgICAgd3cgPSAmd2J1ZjsKKyAgICB9CisKKyAgICB2Zm10ID0gYWRqdXN0X2ZtdCh2dik7CisgICAgd2ZtdCA9IGFkanVzdF9mbXQod3cpOworICAgIGlmICh2Zm10ID09IE5VTEwgfHwgd2ZtdCA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgICAgIGdvdG8gcmVzdWx0OyAvKiBQeV9Ob3RJbXBsZW1lbnRlZCAqLworICAgIH0KKworICAgIGlmIChjbXBfc3RydWN0dXJlKHZ2LCB3dykgPCAwKSB7CisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgICAgIGVxdWFsID0gMDsKKyAgICAgICAgZ290byByZXN1bHQ7CisgICAgfQorCisgICAgaWYgKHZ2LT5uZGltID09IDApIHsKKyAgICAgICAgZXF1YWwgPSB1bnBhY2tfY21wKHZ2LT5idWYsIHd3LT5idWYsIHZmbXQpOworICAgIH0KKyAgICBlbHNlIGlmICh2di0+bmRpbSA9PSAxKSB7CisgICAgICAgIGVxdWFsID0gY21wX2Jhc2UodnYtPmJ1Ziwgd3ctPmJ1ZiwgdnYtPnNoYXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHZ2LT5zdHJpZGVzLCB2di0+c3Vib2Zmc2V0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICB3dy0+c3RyaWRlcywgd3ctPnN1Ym9mZnNldHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgdmZtdCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBlcXVhbCA9IGNtcF9yZWModnYtPmJ1Ziwgd3ctPmJ1ZiwgdnYtPm5kaW0sIHZ2LT5zaGFwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHZ2LT5zdHJpZGVzLCB2di0+c3Vib2Zmc2V0cywKKyAgICAgICAgICAgICAgICAgICAgICAgIHd3LT5zdHJpZGVzLCB3dy0+c3Vib2Zmc2V0cywKKyAgICAgICAgICAgICAgICAgICAgICAgIHZmbXQpOworICAgIH0KKworcmVzdWx0OgorICAgIGlmIChlcXVhbCA8IDApCisgICAgICAgIHJlcyA9IFB5X05vdEltcGxlbWVudGVkOyAKKyAgICBlbHNlIGlmICgoZXF1YWwgJiYgb3AgPT0gUHlfRVEpIHx8ICghZXF1YWwgJiYgb3AgPT0gUHlfTkUpKQorICAgICAgICByZXMgPSBQeV9UcnVlOworICAgIGVsc2UKKyAgICAgICAgcmVzID0gUHlfRmFsc2U7CisKKyAgICBpZiAod3cgPT0gJndidWYpCisgICAgICAgIFB5QnVmZmVyX1JlbGVhc2Uod3cpOworICAgIFB5X0lOQ1JFRihyZXMpOworICAgIHJldHVybiByZXM7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIYXNoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIFB5X2hhc2hfdAorbWVtb3J5X2hhc2goUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmKQoreworICAgIGlmIChzZWxmLT5oYXNoID09IC0xKSB7CisgICAgICAgIFB5X2J1ZmZlciAqdmlldyA9ICZzZWxmLT52aWV3OworICAgICAgICBjaGFyICptZW0gPSB2aWV3LT5idWY7CisKKyAgICAgICAgQ0hFQ0tfUkVMRUFTRURfSU5UKHNlbGYpOworCisgICAgICAgIGlmICghdmlldy0+cmVhZG9ubHkpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICJjYW5ub3QgaGFzaCB3cml0YWJsZSBtZW1vcnl2aWV3IG9iamVjdCIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGlmICh2aWV3LT5vYmogIT0gTlVMTCAmJiBQeU9iamVjdF9IYXNoKHZpZXctPm9iaikgPT0gLTEpIHsKKyAgICAgICAgICAgIC8qIEtlZXAgdGhlIG9yaWdpbmFsIGVycm9yIG1lc3NhZ2UgKi8KKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghTVZfQ19DT05USUdVT1VTKHNlbGYtPmZsYWdzKSkgeworICAgICAgICAgICAgbWVtID0gUHlNZW1fTWFsbG9jKHZpZXctPmxlbik7CisgICAgICAgICAgICBpZiAobWVtID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChidWZmZXJfdG9fY19jb250aWd1b3VzKG1lbSwgdmlldykgPCAwKSB7CisgICAgICAgICAgICAgICAgUHlNZW1fRnJlZShtZW0pOworICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8qIENhbid0IGZhaWwgKi8KKyAgICAgICAgc2VsZi0+aGFzaCA9IF9QeV9IYXNoQnl0ZXMoKHVuc2lnbmVkIGNoYXIgKiltZW0sIHZpZXctPmxlbik7CisKKyAgICAgICAgaWYgKG1lbSAhPSB2aWV3LT5idWYpCisgICAgICAgICAgICBQeU1lbV9GcmVlKG1lbSk7CisgICAgfQorCisgICAgcmV0dXJuIHNlbGYtPmhhc2g7Cit9CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXR0ZXJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitzdGF0aWMgUHlPYmplY3QgKgorX0ludFR1cGxlRnJvbVNzaXpldChpbnQgbGVuLCBQeV9zc2l6ZV90ICp2YWxzKQoreworICAgIGludCBpOworICAgIFB5T2JqZWN0ICpvOworICAgIFB5T2JqZWN0ICppbnRUdXBsZTsKKworICAgIGlmICh2YWxzID09IE5VTEwpCisgICAgICAgIHJldHVybiBQeVR1cGxlX05ldygwKTsKKworICAgIGludFR1cGxlID0gUHlUdXBsZV9OZXcobGVuKTsKKyAgICBpZiAoIWludFR1cGxlKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBmb3IgKGk9MDsgaTxsZW47IGkrKykgeworICAgICAgICBvID0gUHlMb25nX0Zyb21Tc2l6ZV90KHZhbHNbaV0pOworICAgICAgICBpZiAoIW8pIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihpbnRUdXBsZSk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGludFR1cGxlLCBpLCBvKTsKKyAgICB9CisgICAgcmV0dXJuIGludFR1cGxlOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbWVtb3J5X29ial9nZXQoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmKQoreworICAgIFB5X2J1ZmZlciAqdmlldyA9ICZzZWxmLT52aWV3OworCisgICAgQ0hFQ0tfUkVMRUFTRUQoc2VsZik7CisgICAgaWYgKHZpZXctPm9iaiA9PSBOVUxMKSB7CisgICAgICAgIFB5X1JFVFVSTl9OT05FOworICAgIH0KKyAgICBQeV9JTkNSRUYodmlldy0+b2JqKTsKKyAgICByZXR1cm4gdmlldy0+b2JqOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorbWVtb3J5X25ieXRlc19nZXQoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmKQoreworICAgIENIRUNLX1JFTEVBU0VEKHNlbGYpOworICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3Qoc2VsZi0+dmlldy5sZW4pOworfQorCiBzdGF0aWMgUHlPYmplY3QgKgogbWVtb3J5X2Zvcm1hdF9nZXQoUHlNZW1vcnlWaWV3T2JqZWN0ICpzZWxmKQogewpAQCAtMzQzLDMxICsyNTAzLDYgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLV9JbnRUdXBsZUZyb21Tc2l6ZXQoaW50IGxlbiwgUHlfc3NpemVfdCAqdmFscykKLXsKLSAgICBpbnQgaTsKLSAgICBQeU9iamVjdCAqbzsKLSAgICBQeU9iamVjdCAqaW50VHVwbGU7Ci0KLSAgICBpZiAodmFscyA9PSBOVUxMKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICAgICAgcmV0dXJuIFB5X05vbmU7Ci0gICAgfQotICAgIGludFR1cGxlID0gUHlUdXBsZV9OZXcobGVuKTsKLSAgICBpZiAoIWludFR1cGxlKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBmb3IgKGk9MDsgaTxsZW47IGkrKykgewotICAgICAgICBvID0gUHlMb25nX0Zyb21Tc2l6ZV90KHZhbHNbaV0pOwotICAgICAgICBpZiAoIW8pIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihpbnRUdXBsZSk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGludFR1cGxlLCBpLCBvKTsKLSAgICB9Ci0gICAgcmV0dXJuIGludFR1cGxlOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgogbWVtb3J5X3NoYXBlX2dldChQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYpCiB7CiAgICAgQ0hFQ0tfUkVMRUFTRUQoc2VsZik7CkBAIC00MDIsNDI1ICsyNTM3LDYwIEBACiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZyhzZWxmLT52aWV3Lm5kaW0pOwogfQogCi1zdGF0aWMgUHlHZXRTZXREZWYgbWVtb3J5X2dldHNldGxpc3RbXSA9ewotICAgIHsiZm9ybWF0IiwgICAgICAgICAgICAgICAgKGdldHRlciltZW1vcnlfZm9ybWF0X2dldCwgICAgICBOVUxMLCBOVUxMfSwKLSAgICB7Iml0ZW1zaXplIiwgICAgICAgIChnZXR0ZXIpbWVtb3J5X2l0ZW1zaXplX2dldCwgICAgTlVMTCwgTlVMTH0sCi0gICAgeyJzaGFwZSIsICAgICAgICAgICAoZ2V0dGVyKW1lbW9yeV9zaGFwZV9nZXQsICAgICAgIE5VTEwsIE5VTEx9LAotICAgIHsic3RyaWRlcyIsICAgICAgICAgKGdldHRlciltZW1vcnlfc3RyaWRlc19nZXQsICAgICBOVUxMLCBOVUxMfSwKLSAgICB7InN1Ym9mZnNldHMiLCAgICAgIChnZXR0ZXIpbWVtb3J5X3N1Ym9mZnNldHNfZ2V0LCAgTlVMTCwgTlVMTH0sCi0gICAgeyJyZWFkb25seSIsICAgICAgICAoZ2V0dGVyKW1lbW9yeV9yZWFkb25seV9nZXQsICAgIE5VTEwsIE5VTEx9LAotICAgIHsibmRpbSIsICAgICAgICAgICAgKGdldHRlciltZW1vcnlfbmRpbV9nZXQsICAgICAgICBOVUxMLCBOVUxMfSwKK3N0YXRpYyBQeU9iamVjdCAqCittZW1vcnlfY19jb250aWd1b3VzKFB5TWVtb3J5Vmlld09iamVjdCAqc2VsZiwgUHlPYmplY3QgKmR1bW15KQoreworICAgIENIRUNLX1JFTEVBU0VEKHNlbGYpOworICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoTVZfQ19DT05USUdVT1VTKHNlbGYtPmZsYWdzKSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCittZW1vcnlfZl9jb250aWd1b3VzKFB5TWVtb3J5Vmlld09iamVjdCAqc2VsZiwgUHlPYmplY3QgKmR1bW15KQoreworICAgIENIRUNLX1JFTEVBU0VEKHNlbGYpOworICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoTVZfRl9DT05USUdVT1VTKHNlbGYtPmZsYWdzKSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCittZW1vcnlfY29udGlndW91cyhQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpkdW1teSkKK3sKKyAgICBDSEVDS19SRUxFQVNFRChzZWxmKTsKKyAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKE1WX0FOWV9DT05USUdVT1VTKHNlbGYtPmZsYWdzKSk7Cit9CisKK3N0YXRpYyBQeUdldFNldERlZiBtZW1vcnlfZ2V0c2V0bGlzdFtdID0geworICAgIHsib2JqIiwgICAgICAgICAgICAgKGdldHRlciltZW1vcnlfb2JqX2dldCwgICAgICAgIE5VTEwsIE5VTEx9LAorICAgIHsibmJ5dGVzIiwgICAgICAgICAgKGdldHRlciltZW1vcnlfbmJ5dGVzX2dldCwgICAgIE5VTEwsIE5VTEx9LAorICAgIHsicmVhZG9ubHkiLCAgICAgICAgKGdldHRlciltZW1vcnlfcmVhZG9ubHlfZ2V0LCAgIE5VTEwsIE5VTEx9LAorICAgIHsiaXRlbXNpemUiLCAgICAgICAgKGdldHRlciltZW1vcnlfaXRlbXNpemVfZ2V0LCAgIE5VTEwsIE5VTEx9LAorICAgIHsiZm9ybWF0IiwgICAgICAgICAgKGdldHRlciltZW1vcnlfZm9ybWF0X2dldCwgICAgIE5VTEwsIE5VTEx9LAorICAgIHsibmRpbSIsICAgICAgICAgICAgKGdldHRlciltZW1vcnlfbmRpbV9nZXQsICAgICAgIE5VTEwsIE5VTEx9LAorICAgIHsic2hhcGUiLCAgICAgICAgICAgKGdldHRlciltZW1vcnlfc2hhcGVfZ2V0LCAgICAgIE5VTEwsIE5VTEx9LAorICAgIHsic3RyaWRlcyIsICAgICAgICAgKGdldHRlciltZW1vcnlfc3RyaWRlc19nZXQsICAgIE5VTEwsIE5VTEx9LAorICAgIHsic3Vib2Zmc2V0cyIsICAgICAgKGdldHRlciltZW1vcnlfc3Vib2Zmc2V0c19nZXQsIE5VTEwsIE5VTEx9LAorICAgIHsiY19jb250aWd1b3VzIiwgICAgKGdldHRlciltZW1vcnlfY19jb250aWd1b3VzLCAgIE5VTEwsIE5VTEx9LAorICAgIHsiZl9jb250aWd1b3VzIiwgICAgKGdldHRlciltZW1vcnlfZl9jb250aWd1b3VzLCAgIE5VTEwsIE5VTEx9LAorICAgIHsiY29udGlndW91cyIsICAgICAgKGdldHRlciltZW1vcnlfY29udGlndW91cywgICAgIE5VTEwsIE5VTEx9LAogICAgIHtOVUxMLCBOVUxMLCBOVUxMLCBOVUxMfSwKIH07CiAKIAotc3RhdGljIFB5T2JqZWN0ICoKLW1lbW9yeV90b2J5dGVzKFB5TWVtb3J5Vmlld09iamVjdCAqbWVtLCBQeU9iamVjdCAqbm9hcmdzKQotewotICAgIENIRUNLX1JFTEVBU0VEKG1lbSk7Ci0gICAgcmV0dXJuIFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoCi0gICAgICAgICAgICAoUHlPYmplY3QgKikgJlB5Qnl0ZXNfVHlwZSwgbWVtLCBOVUxMKTsKLX0KLQotLyogVE9ETzogcmV3cml0ZSB0aGlzIGZ1bmN0aW9uIHVzaW5nIHRoZSBzdHJ1Y3QgbW9kdWxlIHRvIHVucGFjawotICAgZWFjaCBidWZmZXIgaXRlbSAqLwotCi1zdGF0aWMgUHlPYmplY3QgKgotbWVtb3J5X3RvbGlzdChQeU1lbW9yeVZpZXdPYmplY3QgKm1lbSwgUHlPYmplY3QgKm5vYXJncykKLXsKLSAgICBQeV9idWZmZXIgKnZpZXcgPSAmKG1lbS0+dmlldyk7Ci0gICAgUHlfc3NpemVfdCBpOwotICAgIFB5T2JqZWN0ICpyZXMsICppdGVtOwotICAgIGNoYXIgKmJ1ZjsKLQotICAgIENIRUNLX1JFTEVBU0VEKG1lbSk7Ci0gICAgaWYgKHN0cmNtcCh2aWV3LT5mb3JtYXQsICJCIikgfHwgdmlldy0+aXRlbXNpemUgIT0gMSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvciwgCi0gICAgICAgICAgICAgICAgInRvbGlzdCgpIG9ubHkgc3VwcG9ydHMgYnl0ZSB2aWV3cyIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgaWYgKHZpZXctPm5kaW0gIT0gMSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvciwgCi0gICAgICAgICAgICAgICAgInRvbGlzdCgpIG9ubHkgc3VwcG9ydHMgb25lLWRpbWVuc2lvbmFsIG9iamVjdHMiKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIHJlcyA9IFB5TGlzdF9OZXcodmlldy0+bGVuKTsKLSAgICBpZiAocmVzID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGJ1ZiA9IHZpZXctPmJ1ZjsKLSAgICBmb3IgKGkgPSAwOyBpIDwgdmlldy0+bGVuOyBpKyspIHsKLSAgICAgICAgaXRlbSA9IFB5TG9uZ19Gcm9tVW5zaWduZWRMb25nKCh1bnNpZ25lZCBjaGFyKSAqYnVmKTsKLSAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkgewotICAgICAgICAgICAgUHlfREVDUkVGKHJlcyk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBQeUxpc3RfU0VUX0lURU0ocmVzLCBpLCBpdGVtKTsKLSAgICAgICAgYnVmKys7Ci0gICAgfQotICAgIHJldHVybiByZXM7Ci19Ci0KLXN0YXRpYyB2b2lkCi1kb19yZWxlYXNlKFB5TWVtb3J5Vmlld09iamVjdCAqc2VsZikKLXsKLSAgICBpZiAoc2VsZi0+dmlldy5vYmogIT0gTlVMTCkgewotICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKCYoc2VsZi0+dmlldykpOwotICAgIH0KLSAgICBzZWxmLT52aWV3Lm9iaiA9IE5VTEw7Ci0gICAgc2VsZi0+dmlldy5idWYgPSBOVUxMOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotbWVtb3J5X2VudGVyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBDSEVDS19SRUxFQVNFRChzZWxmKTsKLSAgICBQeV9JTkNSRUYoc2VsZik7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1tZW1vcnlfZXhpdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgZG9fcmVsZWFzZSgoUHlNZW1vcnlWaWV3T2JqZWN0ICopIHNlbGYpOwotICAgIFB5X1JFVFVSTl9OT05FOwotfQotCiBzdGF0aWMgUHlNZXRob2REZWYgbWVtb3J5X21ldGhvZHNbXSA9IHsKLSAgICB7InJlbGVhc2UiLCBtZW1vcnlfZXhpdCwgTUVUSF9OT0FSR1N9LAotICAgIHsidG9ieXRlcyIsIChQeUNGdW5jdGlvbiltZW1vcnlfdG9ieXRlcywgTUVUSF9OT0FSR1MsIE5VTEx9LAotICAgIHsidG9saXN0IiwgKFB5Q0Z1bmN0aW9uKW1lbW9yeV90b2xpc3QsIE1FVEhfTk9BUkdTLCBOVUxMfSwKLSAgICB7Il9fZW50ZXJfXyIsIG1lbW9yeV9lbnRlciwgTUVUSF9OT0FSR1N9LAotICAgIHsiX19leGl0X18iLCBtZW1vcnlfZXhpdCwgTUVUSF9WQVJBUkdTfSwKLSAgICB7TlVMTCwgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCi19OwotCi0KLXN0YXRpYyB2b2lkCi1tZW1vcnlfZGVhbGxvYyhQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYpCi17Ci0gICAgX1B5T2JqZWN0X0dDX1VOVFJBQ0soc2VsZik7Ci0gICAgZG9fcmVsZWFzZShzZWxmKTsKLSAgICBQeU9iamVjdF9HQ19EZWwoc2VsZik7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1tZW1vcnlfcmVwcihQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYpCi17Ci0gICAgaWYgKElTX1JFTEVBU0VEKHNlbGYpKQotICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjxyZWxlYXNlZCBtZW1vcnkgYXQgJXA+Iiwgc2VsZik7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjxtZW1vcnkgYXQgJXA+Iiwgc2VsZik7Ci19Ci0KLS8qIFNlcXVlbmNlIG1ldGhvZHMgKi8KLXN0YXRpYyBQeV9zc2l6ZV90Ci1tZW1vcnlfbGVuZ3RoKFB5TWVtb3J5Vmlld09iamVjdCAqc2VsZikKLXsKLSAgICBDSEVDS19SRUxFQVNFRF9JTlQoc2VsZik7Ci0gICAgcmV0dXJuIGdldF9zaGFwZTAoJnNlbGYtPnZpZXcpOwotfQotCi0vKiBBbHRlcm5hdGUgdmVyc2lvbiBvZiBtZW1vcnlfc3ViY3JpcHQgdGhhdCBvbmx5IGFjY2VwdHMgaW5kaWNlcy4KLSAgIFVzZWQgYnkgUHlTZXFJdGVyX05ldygpLgotKi8KLXN0YXRpYyBQeU9iamVjdCAqCi1tZW1vcnlfaXRlbShQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYsIFB5X3NzaXplX3QgcmVzdWx0KQotewotICAgIFB5X2J1ZmZlciAqdmlldyA9ICYoc2VsZi0+dmlldyk7Ci0KLSAgICBDSEVDS19SRUxFQVNFRChzZWxmKTsKLSAgICBpZiAodmlldy0+bmRpbSA9PSAwKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbmRleEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgImludmFsaWQgaW5kZXhpbmcgb2YgMC1kaW0gbWVtb3J5Iik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBpZiAodmlldy0+bmRpbSA9PSAxKSB7Ci0gICAgICAgIC8qIFJldHVybiBhIGJ5dGVzIG9iamVjdCAqLwotICAgICAgICBjaGFyICpwdHI7Ci0gICAgICAgIHB0ciA9IChjaGFyICopdmlldy0+YnVmOwotICAgICAgICBpZiAocmVzdWx0IDwgMCkgewotICAgICAgICAgICAgcmVzdWx0ICs9IGdldF9zaGFwZTAodmlldyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKChyZXN1bHQgPCAwKSB8fCAocmVzdWx0ID49IGdldF9zaGFwZTAodmlldykpKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSW5kZXhFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImluZGV4IG91dCBvZiBib3VuZHMiKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGlmICh2aWV3LT5zdHJpZGVzID09IE5VTEwpCi0gICAgICAgICAgICBwdHIgKz0gdmlldy0+aXRlbXNpemUgKiByZXN1bHQ7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHB0ciArPSB2aWV3LT5zdHJpZGVzWzBdICogcmVzdWx0OwotICAgICAgICBpZiAodmlldy0+c3Vib2Zmc2V0cyAhPSBOVUxMICYmCi0gICAgICAgICAgICB2aWV3LT5zdWJvZmZzZXRzWzBdID49IDApIHsKLSAgICAgICAgICAgIHB0ciA9ICooKGNoYXIgKiopcHRyKSArIHZpZXctPnN1Ym9mZnNldHNbMF07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUocHRyLCB2aWV3LT5pdGVtc2l6ZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLyogUmV0dXJuIGEgbmV3IG1lbW9yeS12aWV3IG9iamVjdCAqLwotICAgICAgICBQeV9idWZmZXIgbmV3dmlldzsKLSAgICAgICAgbWVtc2V0KCZuZXd2aWV3LCAwLCBzaXplb2YobmV3dmlldykpOwotICAgICAgICAvKiBYWFg6ICBUaGlzIG5lZWRzIHRvIGJlIGZpeGVkIHNvIGl0IGFjdHVhbGx5IHJldHVybnMgYSBzdWItdmlldyAqLwotICAgICAgICByZXR1cm4gUHlNZW1vcnlWaWV3X0Zyb21CdWZmZXIoJm5ld3ZpZXcpOwotICAgIH0KLX0KLQotLyoKLSAgbWVtW29ial0gcmV0dXJucyBhIGJ5dGVzIG9iamVjdCBob2xkaW5nIHRoZSBkYXRhIGZvciBvbmUgZWxlbWVudCBpZgotICAgICAgICAgICBvYmogZnVsbHkgaW5kZXhlcyB0aGUgbWVtb3J5IHZpZXcgb3IgYW5vdGhlciBtZW1vcnktdmlldyBvYmplY3QKLSAgICAgICAgICAgaWYgaXQgZG9lcyBub3QuCi0KLSAgICAgICAgICAgMC1kIG1lbW9yeS12aWV3IG9iamVjdHMgY2FuIGJlIHJlZmVyZW5jZWQgdXNpbmcgLi4uIG9yICgpIGJ1dAotICAgICAgICAgICBub3Qgd2l0aCBhbnl0aGluZyBlbHNlLgotICovCi1zdGF0aWMgUHlPYmplY3QgKgotbWVtb3J5X3N1YnNjcmlwdChQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICprZXkpCi17Ci0gICAgUHlfYnVmZmVyICp2aWV3OwotICAgIHZpZXcgPSAmKHNlbGYtPnZpZXcpOwotICAgIAotICAgIENIRUNLX1JFTEVBU0VEKHNlbGYpOwotICAgIGlmICh2aWV3LT5uZGltID09IDApIHsKLSAgICAgICAgaWYgKGtleSA9PSBQeV9FbGxpcHNpcyB8fAotICAgICAgICAgICAgKFB5VHVwbGVfQ2hlY2soa2V5KSAmJiBQeVR1cGxlX0dFVF9TSVpFKGtleSk9PTApKSB7Ci0gICAgICAgICAgICBQeV9JTkNSRUYoc2VsZik7Ci0gICAgICAgICAgICByZXR1cm4gKFB5T2JqZWN0ICopc2VsZjsKLSAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbmRleEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW52YWxpZCBpbmRleGluZyBvZiAwLWRpbSBtZW1vcnkiKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmIChQeUluZGV4X0NoZWNrKGtleSkpIHsKLSAgICAgICAgUHlfc3NpemVfdCByZXN1bHQ7Ci0gICAgICAgIHJlc3VsdCA9IFB5TnVtYmVyX0FzU3NpemVfdChrZXksIE5VTEwpOwotICAgICAgICBpZiAocmVzdWx0ID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIHJldHVybiBtZW1vcnlfaXRlbShzZWxmLCByZXN1bHQpOwotICAgIH0KLSAgICBlbHNlIGlmIChQeVNsaWNlX0NoZWNrKGtleSkpIHsKLSAgICAgICAgUHlfc3NpemVfdCBzdGFydCwgc3RvcCwgc3RlcCwgc2xpY2VsZW5ndGg7Ci0KLSAgICAgICAgaWYgKFB5U2xpY2VfR2V0SW5kaWNlc0V4KGtleSwgZ2V0X3NoYXBlMCh2aWV3KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGFydCwgJnN0b3AsICZzdGVwLCAmc2xpY2VsZW5ndGgpIDwgMCkgewotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAKLSAgICAgICAgaWYgKHN0ZXAgPT0gMSAmJiB2aWV3LT5uZGltID09IDEpIHsKLSAgICAgICAgICAgIFB5X2J1ZmZlciBuZXd2aWV3OwotICAgICAgICAgICAgdm9pZCAqbmV3YnVmID0gKGNoYXIgKikgdmlldy0+YnVmCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIHN0YXJ0ICogdmlldy0+aXRlbXNpemU7Ci0gICAgICAgICAgICBpbnQgbmV3ZmxhZ3MgPSB2aWV3LT5yZWFkb25seQotICAgICAgICAgICAgICAgICAgICA/IFB5QlVGX0NPTlRJR19STyA6IFB5QlVGX0NPTlRJRzsKLSAgICAKLSAgICAgICAgICAgIC8qIFhYWCBUaGVyZSBzaG91bGQgYmUgYW4gQVBJIHRvIGNyZWF0ZSBhIHN1YmJ1ZmZlciAqLwotICAgICAgICAgICAgaWYgKHZpZXctPm9iaiAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcih2aWV3LT5vYmosICZuZXd2aWV3LCBuZXdmbGFncykgPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgbmV3dmlldyA9ICp2aWV3OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbmV3dmlldy5idWYgPSBuZXdidWY7Ci0gICAgICAgICAgICBuZXd2aWV3LmxlbiA9IHNsaWNlbGVuZ3RoICogbmV3dmlldy5pdGVtc2l6ZTsKLSAgICAgICAgICAgIG5ld3ZpZXcuZm9ybWF0ID0gdmlldy0+Zm9ybWF0OwotICAgICAgICAgICAgbmV3dmlldy5zaGFwZSA9ICYobmV3dmlldy5zbWFsbHRhYmxlWzBdKTsKLSAgICAgICAgICAgIG5ld3ZpZXcuc2hhcGVbMF0gPSBzbGljZWxlbmd0aDsKLSAgICAgICAgICAgIG5ld3ZpZXcuc3RyaWRlcyA9ICYobmV3dmlldy5pdGVtc2l6ZSk7Ci0gICAgICAgICAgICByZXR1cm4gUHlNZW1vcnlWaWV3X0Zyb21CdWZmZXIoJm5ld3ZpZXcpOwotICAgICAgICB9Ci0gICAgICAgIFB5RXJyX1NldE5vbmUoUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvcik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAiY2Fubm90IGluZGV4IG1lbW9yeSB1c2luZyBcIiUuMjAwc1wiIiwgCi0gICAgICAgIGtleS0+b2JfdHlwZS0+dHBfbmFtZSk7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLQotLyogTmVlZCB0byBzdXBwb3J0IGFzc2lnbmluZyBtZW1vcnkgaWYgd2UgY2FuICovCi1zdGF0aWMgaW50Ci1tZW1vcnlfYXNzX3N1YihQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICprZXksIFB5T2JqZWN0ICp2YWx1ZSkKLXsKLSAgICBQeV9zc2l6ZV90IHN0YXJ0LCBsZW4sIGJ5dGVsZW47Ci0gICAgUHlfYnVmZmVyIHNyY3ZpZXc7Ci0gICAgUHlfYnVmZmVyICp2aWV3ID0gJihzZWxmLT52aWV3KTsKLSAgICBjaGFyICpzcmNidWYsICpkZXN0YnVmOwotCi0gICAgQ0hFQ0tfUkVMRUFTRURfSU5UKHNlbGYpOwotICAgIGlmICh2aWV3LT5yZWFkb25seSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgImNhbm5vdCBtb2RpZnkgcmVhZC1vbmx5IG1lbW9yeSIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiY2Fubm90IGRlbGV0ZSBtZW1vcnkiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICBpZiAodmlldy0+bmRpbSAhPSAxKSB7Ci0gICAgICAgIFB5RXJyX1NldE5vbmUoUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvcik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgaWYgKFB5SW5kZXhfQ2hlY2soa2V5KSkgewotICAgICAgICBzdGFydCA9IFB5TnVtYmVyX0FzU3NpemVfdChrZXksIE5VTEwpOwotICAgICAgICBpZiAoc3RhcnQgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgaWYgKHN0YXJ0IDwgMCkgewotICAgICAgICAgICAgc3RhcnQgKz0gZ2V0X3NoYXBlMCh2aWV3KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoKHN0YXJ0IDwgMCkgfHwgKHN0YXJ0ID49IGdldF9zaGFwZTAodmlldykpKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSW5kZXhFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5kZXggb3V0IG9mIGJvdW5kcyIpOwotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgICAgIGxlbiA9IDE7Ci0gICAgfQotICAgIGVsc2UgaWYgKFB5U2xpY2VfQ2hlY2soa2V5KSkgewotICAgICAgICBQeV9zc2l6ZV90IHN0b3AsIHN0ZXA7Ci0KLSAgICAgICAgaWYgKFB5U2xpY2VfR2V0SW5kaWNlc0V4KGtleSwgZ2V0X3NoYXBlMCh2aWV3KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhcnQsICZzdG9wLCAmc3RlcCwgJmxlbikgPCAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0ZXAgIT0gMSkgewotICAgICAgICAgICAgUHlFcnJfU2V0Tm9uZShQeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yKTsKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgfQotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICJjYW5ub3QgaW5kZXggbWVtb3J5IHVzaW5nIFwiJS4yMDBzXCIiLCAKLSAgICAgICAgICAgIGtleS0+b2JfdHlwZS0+dHBfbmFtZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcih2YWx1ZSwgJnNyY3ZpZXcsIFB5QlVGX0NPTlRJR19STykgPT0gLTEpIHsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICAvKiBYWFggc2hvdWxkIHdlIGFsbG93IGFzc2lnbm1lbnQgb2YgZGlmZmVyZW50IGl0ZW0gc2l6ZXMKLSAgICAgICBhcyBsb25nIGFzIHRoZSBieXRlIGxlbmd0aCBpcyB0aGUgc2FtZT8KLSAgICAgICAoZS5nLiBhc3NpZ24gMiBzaG9ydHMgdG8gYSA0LWJ5dGUgc2xpY2UpICovCi0gICAgaWYgKHNyY3ZpZXcuaXRlbXNpemUgIT0gdmlldy0+aXRlbXNpemUpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICJtaXNtYXRjaGluZyBpdGVtIHNpemVzIGZvciBcIiUuMjAwc1wiIGFuZCBcIiUuMjAwc1wiIiwgCi0gICAgICAgICAgICB2aWV3LT5vYmotPm9iX3R5cGUtPnRwX25hbWUsIHNyY3ZpZXcub2JqLT5vYl90eXBlLT50cF9uYW1lKTsKLSAgICAgICAgZ290byBfZXJyb3I7Ci0gICAgfQotICAgIGJ5dGVsZW4gPSBsZW4gKiB2aWV3LT5pdGVtc2l6ZTsKLSAgICBpZiAoYnl0ZWxlbiAhPSBzcmN2aWV3LmxlbikgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICJjYW5ub3QgbW9kaWZ5IHNpemUgb2YgbWVtb3J5dmlldyBvYmplY3QiKTsKLSAgICAgICAgZ290byBfZXJyb3I7Ci0gICAgfQotICAgIC8qIERvIHRoZSBhY3R1YWwgY29weSAqLwotICAgIGRlc3RidWYgPSAoY2hhciAqKSB2aWV3LT5idWYgKyBzdGFydCAqIHZpZXctPml0ZW1zaXplOwotICAgIHNyY2J1ZiA9IChjaGFyICopIHNyY3ZpZXcuYnVmOwotICAgIGlmIChkZXN0YnVmICsgYnl0ZWxlbiA8IHNyY2J1ZiB8fCBzcmNidWYgKyBieXRlbGVuIDwgZGVzdGJ1ZikKLSAgICAgICAgLyogTm8gb3ZlcmxhcHBpbmcgKi8KLSAgICAgICAgbWVtY3B5KGRlc3RidWYsIHNyY2J1ZiwgYnl0ZWxlbik7Ci0gICAgZWxzZQotICAgICAgICBtZW1tb3ZlKGRlc3RidWYsIHNyY2J1ZiwgYnl0ZWxlbik7Ci0KLSAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZzcmN2aWV3KTsKLSAgICByZXR1cm4gMDsKLQotX2Vycm9yOgotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnNyY3ZpZXcpOwotICAgIHJldHVybiAtMTsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKLW1lbW9yeV9yaWNoY29tcGFyZShQeU9iamVjdCAqdiwgUHlPYmplY3QgKncsIGludCBvcCkKLXsKLSAgICBQeV9idWZmZXIgdnYsIHd3OwotICAgIGludCBlcXVhbCA9IDA7Ci0gICAgUHlPYmplY3QgKnJlczsKLQotICAgIHZ2Lm9iaiA9IE5VTEw7Ci0gICAgd3cub2JqID0gTlVMTDsKLSAgICBpZiAob3AgIT0gUHlfRVEgJiYgb3AgIT0gUHlfTkUpCi0gICAgICAgIGdvdG8gX25vdGltcGw7Ci0gICAgaWYgKChQeU1lbW9yeVZpZXdfQ2hlY2sodikgJiYgSVNfUkVMRUFTRUQodikpIHx8Ci0gICAgICAgIChQeU1lbW9yeVZpZXdfQ2hlY2sodykgJiYgSVNfUkVMRUFTRUQodykpKSB7Ci0gICAgICAgIGVxdWFsID0gKHYgPT0gdyk7Ci0gICAgICAgIGdvdG8gX2VuZDsKLSAgICB9Ci0gICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcih2LCAmdnYsIFB5QlVGX0NPTlRJR19STykgPT0gLTEpIHsKLSAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICAgICAgZ290byBfbm90aW1wbDsKLSAgICB9Ci0gICAgaWYgKFB5T2JqZWN0X0dldEJ1ZmZlcih3LCAmd3csIFB5QlVGX0NPTlRJR19STykgPT0gLTEpIHsKLSAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICAgICAgZ290byBfbm90aW1wbDsKLSAgICB9Ci0KLSAgICBpZiAodnYuaXRlbXNpemUgIT0gd3cuaXRlbXNpemUgfHwgdnYubGVuICE9IHd3LmxlbikKLSAgICAgICAgZ290byBfZW5kOwotCi0gICAgZXF1YWwgPSAhbWVtY21wKHZ2LmJ1Ziwgd3cuYnVmLCB2di5sZW4pOwotCi1fZW5kOgotICAgIFB5QnVmZmVyX1JlbGVhc2UoJnZ2KTsKLSAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZ3dyk7Ci0gICAgaWYgKChlcXVhbCAmJiBvcCA9PSBQeV9FUSkgfHwgKCFlcXVhbCAmJiBvcCA9PSBQeV9ORSkpCi0gICAgICAgIHJlcyA9IFB5X1RydWU7Ci0gICAgZWxzZQotICAgICAgICByZXMgPSBQeV9GYWxzZTsKLSAgICBQeV9JTkNSRUYocmVzKTsKLSAgICByZXR1cm4gcmVzOwotCi1fbm90aW1wbDoKLSAgICBQeUJ1ZmZlcl9SZWxlYXNlKCZ2dik7Ci0gICAgUHlCdWZmZXJfUmVsZWFzZSgmd3cpOwotICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotfQotCi0KLXN0YXRpYyBpbnQKLW1lbW9yeV90cmF2ZXJzZShQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYsIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQotewotICAgIGlmIChzZWxmLT52aWV3Lm9iaiAhPSBOVUxMKQotICAgICAgICBQeV9WSVNJVChzZWxmLT52aWV3Lm9iaik7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBpbnQKLW1lbW9yeV9jbGVhcihQeU1lbW9yeVZpZXdPYmplY3QgKnNlbGYpCi17Ci0gICAgUHlCdWZmZXJfUmVsZWFzZSgmc2VsZi0+dmlldyk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLQotLyogQXMgbWFwcGluZyAqLwotc3RhdGljIFB5TWFwcGluZ01ldGhvZHMgbWVtb3J5X2FzX21hcHBpbmcgPSB7Ci0gICAgKGxlbmZ1bmMpbWVtb3J5X2xlbmd0aCwgICAgICAgICAgICAgICAvKiBtcF9sZW5ndGggKi8KLSAgICAoYmluYXJ5ZnVuYyltZW1vcnlfc3Vic2NyaXB0LCAgICAgICAgIC8qIG1wX3N1YnNjcmlwdCAqLwotICAgIChvYmpvYmphcmdwcm9jKW1lbW9yeV9hc3Nfc3ViLCAgICAgICAgLyogbXBfYXNzX3N1YnNjcmlwdCAqLwotfTsKLQotc3RhdGljIFB5U2VxdWVuY2VNZXRob2RzIG1lbW9yeV9hc19zZXF1ZW5jZSA9IHsKLSAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc3FfbGVuZ3RoICovCi0gICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNxX2NvbmNhdCAqLwotICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzcV9yZXBlYXQgKi8KLSAgICAgICAgKHNzaXplYXJnZnVuYyltZW1vcnlfaXRlbSwgICAgICAgICAgLyogc3FfaXRlbSAqLwotfTsKLQotLyogQnVmZmVyIG1ldGhvZHMgKi8KLQotc3RhdGljIFB5QnVmZmVyUHJvY3MgbWVtb3J5X2FzX2J1ZmZlciA9IHsKLSAgICAoZ2V0YnVmZmVycHJvYyltZW1vcnlfZ2V0YnVmLCAgICAgICAgIC8qIGJmX2dldGJ1ZmZlciAqLwotICAgIChyZWxlYXNlYnVmZmVycHJvYyltZW1vcnlfcmVsZWFzZWJ1ZiwgLyogYmZfcmVsZWFzZWJ1ZmZlciAqLworICAgIHsicmVsZWFzZSIsICAgICAoUHlDRnVuY3Rpb24pbWVtb3J5X3JlbGVhc2UsIE1FVEhfTk9BUkdTfSwKKyAgICB7InRvYnl0ZXMiLCAgICAgKFB5Q0Z1bmN0aW9uKW1lbW9yeV90b2J5dGVzLCBNRVRIX05PQVJHUywgTlVMTH0sCisgICAgeyJ0b2xpc3QiLCAgICAgIChQeUNGdW5jdGlvbiltZW1vcnlfdG9saXN0LCBNRVRIX05PQVJHUywgTlVMTH0sCisgICAgeyJjYXN0IiwgICAgICAgIChQeUNGdW5jdGlvbiltZW1vcnlfY2FzdCwgTUVUSF9WQVJBUkdTfE1FVEhfS0VZV09SRFMsIE5VTEx9LAorICAgIHsiX19lbnRlcl9fIiwgICBtZW1vcnlfZW50ZXIsIE1FVEhfTk9BUkdTfSwKKyAgICB7Il9fZXhpdF9fIiwgICAgbWVtb3J5X2V4aXQsIE1FVEhfVkFSQVJHU30sCisgICAge05VTEwsICAgICAgICAgIE5VTEx9CiB9OwogCiAKIFB5VHlwZU9iamVjdCBQeU1lbW9yeVZpZXdfVHlwZSA9IHsKICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoJlB5VHlwZV9UeXBlLCAwKQotICAgICJtZW1vcnl2aWV3IiwKLSAgICBzaXplb2YoUHlNZW1vcnlWaWV3T2JqZWN0KSwKLSAgICAwLAorICAgICJtZW1vcnl2aWV3IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25hbWUgKi8KKyAgICBvZmZzZXRvZihQeU1lbW9yeVZpZXdPYmplY3QsIG9iX2FycmF5KSwgICAvKiB0cF9iYXNpY3NpemUgKi8KKyAgICBzaXplb2YoUHlfc3NpemVfdCksICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVtc2l6ZSAqLwogICAgIChkZXN0cnVjdG9yKW1lbW9yeV9kZWFsbG9jLCAgICAgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KQEAgLTgzMCw3ICsyNjAwLDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19udW1iZXIgKi8KICAgICAmbWVtb3J5X2FzX3NlcXVlbmNlLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLwogICAgICZtZW1vcnlfYXNfbWFwcGluZywgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX21hcHBpbmcgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9oYXNoICovCisgICAgKGhhc2hmdW5jKW1lbW9yeV9oYXNoLCAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NhbGwgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zdHIgKi8KICAgICBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLwpAQCAtODQxLDcgKzI2MTEsNyBAQAogICAgICh0cmF2ZXJzZXByb2MpbWVtb3J5X3RyYXZlcnNlLCAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCiAgICAgKGlucXVpcnkpbWVtb3J5X2NsZWFyLCAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KICAgICBtZW1vcnlfcmljaGNvbXBhcmUsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yaWNoY29tcGFyZSAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCisgICAgb2Zmc2V0b2YoUHlNZW1vcnlWaWV3T2JqZWN0LCB3ZWFrcmVmbGlzdCksLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KICAgICBtZW1vcnlfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCmRpZmYgLS1naXQgYS9PYmplY3RzL21ldGhvZG9iamVjdC5jIGIvT2JqZWN0cy9tZXRob2RvYmplY3QuYwppbmRleCBmMWE5ZjRiLi4xZDE0M2Y5IDEwMDY0NAotLS0gYS9PYmplY3RzL21ldGhvZG9iamVjdC5jCisrKyBiL09iamVjdHMvbWV0aG9kb2JqZWN0LmMKQEAgLTQ0LDcgKzQ0LDcgQEAKICAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICByZXR1cm4gKChQeUNGdW5jdGlvbk9iamVjdCAqKW9wKSAtPiBtX21sIC0+IG1sX21ldGg7CisgICAgcmV0dXJuIFB5Q0Z1bmN0aW9uX0dFVF9GVU5DVElPTihvcCk7CiB9CiAKIFB5T2JqZWN0ICoKQEAgLTU0LDcgKzU0LDcgQEAKICAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICByZXR1cm4gKChQeUNGdW5jdGlvbk9iamVjdCAqKW9wKSAtPiBtX3NlbGY7CisgICAgcmV0dXJuIFB5Q0Z1bmN0aW9uX0dFVF9TRUxGKG9wKTsKIH0KIAogaW50CkBAIC02NCw3ICs2NCw3IEBACiAgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQotICAgIHJldHVybiAoKFB5Q0Z1bmN0aW9uT2JqZWN0ICopb3ApIC0+IG1fbWwgLT4gbWxfZmxhZ3M7CisgICAgcmV0dXJuIFB5Q0Z1bmN0aW9uX0dFVF9GTEFHUyhvcCk7CiB9CiAKIFB5T2JqZWN0ICoKQEAgLTE1MSw2ICsxNTEsNDEgQEAKICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmcobS0+bV9tbC0+bWxfbmFtZSk7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCittZXRoX2dldF9fcXVhbG5hbWVfXyhQeUNGdW5jdGlvbk9iamVjdCAqbSwgdm9pZCAqY2xvc3VyZSkKK3sKKyAgICAvKiBJZiBfX3NlbGZfXyBpcyBhIG1vZHVsZSBvciBOVUxMLCByZXR1cm4gbS5fX25hbWVfXworICAgICAgIChlLmcuIGxlbi5fX3F1YWxuYW1lX18gPT0gJ2xlbicpCisKKyAgICAgICBJZiBfX3NlbGZfXyBpcyBhIHR5cGUsIHJldHVybiBtLl9fc2VsZl9fLl9fcXVhbG5hbWVfXyArICcuJyArIG0uX19uYW1lX18KKyAgICAgICAoZS5nLiBkaWN0LmZyb21rZXlzLl9fcXVhbG5hbWVfXyA9PSAnZGljdC5mcm9ta2V5cycpCisKKyAgICAgICBPdGhlcndpc2UgcmV0dXJuIHR5cGUobS5fX3NlbGZfXykuX19xdWFsbmFtZV9fICsgJy4nICsgbS5fX25hbWVfXworICAgICAgIChlLmcuIFtdLmFwcGVuZC5fX3F1YWxuYW1lX18gPT0gJ2xpc3QuYXBwZW5kJykgKi8KKyAgICBQeU9iamVjdCAqdHlwZSwgKnR5cGVfcXVhbG5hbWUsICpyZXM7CisgICAgX1B5X0lERU5USUZJRVIoX19xdWFsbmFtZV9fKTsKKworICAgIGlmIChtLT5tX3NlbGYgPT0gTlVMTCB8fCBQeU1vZHVsZV9DaGVjayhtLT5tX3NlbGYpKQorICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmcobS0+bV9tbC0+bWxfbmFtZSk7CisKKyAgICB0eXBlID0gUHlUeXBlX0NoZWNrKG0tPm1fc2VsZikgPyBtLT5tX3NlbGYgOiAoUHlPYmplY3QqKVB5X1RZUEUobS0+bV9zZWxmKTsKKworICAgIHR5cGVfcXVhbG5hbWUgPSBfUHlPYmplY3RfR2V0QXR0cklkKHR5cGUsICZQeUlkX19fcXVhbG5hbWVfXyk7CisgICAgaWYgKHR5cGVfcXVhbG5hbWUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh0eXBlX3F1YWxuYW1lKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiPG1ldGhvZD4uX19jbGFzc19fLiIKKyAgICAgICAgICAgICAgICAgICAgICAgICJfX3F1YWxuYW1lX18gaXMgbm90IGEgdW5pY29kZSBvYmplY3QiKTsKKyAgICAgICAgUHlfWERFQ1JFRih0eXBlX3F1YWxuYW1lKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmVzID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVTLiVzIiwgdHlwZV9xdWFsbmFtZSwgbS0+bV9tbC0+bWxfbmFtZSk7CisgICAgUHlfREVDUkVGKHR5cGVfcXVhbG5hbWUpOworICAgIHJldHVybiByZXM7Cit9CisKIHN0YXRpYyBpbnQKIG1ldGhfdHJhdmVyc2UoUHlDRnVuY3Rpb25PYmplY3QgKm0sIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQogewpAQCAtMTY0LDcgKzE5OSw3IEBACiB7CiAgICAgUHlPYmplY3QgKnNlbGY7CiAKLSAgICBzZWxmID0gbS0+bV9zZWxmOworICAgIHNlbGYgPSBQeUNGdW5jdGlvbl9HRVRfU0VMRihtKTsKICAgICBpZiAoc2VsZiA9PSBOVUxMKQogICAgICAgICBzZWxmID0gUHlfTm9uZTsKICAgICBQeV9JTkNSRUYoc2VsZik7CkBAIC0xNzQsNiArMjA5LDcgQEAKIHN0YXRpYyBQeUdldFNldERlZiBtZXRoX2dldHNldHMgW10gPSB7CiAgICAgeyJfX2RvY19fIiwgIChnZXR0ZXIpbWV0aF9nZXRfX2RvY19fLCAgTlVMTCwgTlVMTH0sCiAgICAgeyJfX25hbWVfXyIsIChnZXR0ZXIpbWV0aF9nZXRfX25hbWVfXywgTlVMTCwgTlVMTH0sCisgICAgeyJfX3F1YWxuYW1lX18iLCAoZ2V0dGVyKW1ldGhfZ2V0X19xdWFsbmFtZV9fLCBOVUxMLCBOVUxMfSwKICAgICB7Il9fc2VsZl9fIiwgKGdldHRlciltZXRoX2dldF9fc2VsZl9fLCBOVUxMLCBOVUxMfSwKICAgICB7MH0KIH07CkBAIC0yMDgsOCArMjQ0LDcgQEAKICAgICAgICAgIVB5Q0Z1bmN0aW9uX0NoZWNrKHNlbGYpIHx8CiAgICAgICAgICFQeUNGdW5jdGlvbl9DaGVjayhvdGhlcikpCiAgICAgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICB9CiAgICAgYSA9IChQeUNGdW5jdGlvbk9iamVjdCAqKXNlbGY7CiAgICAgYiA9IChQeUNGdW5jdGlvbk9iamVjdCAqKW90aGVyOwpAQCAtMzAzLDYgKzMzOCwxNSBAQAogICAgICh2b2lkKVB5Q0Z1bmN0aW9uX0NsZWFyRnJlZUxpc3QoKTsKIH0KIAorLyogUHJpbnQgc3VtbWFyeSBpbmZvIGFib3V0IHRoZSBzdGF0ZSBvZiB0aGUgb3B0aW1pemVkIGFsbG9jYXRvciAqLwordm9pZAorX1B5Q0Z1bmN0aW9uX0RlYnVnTWFsbG9jU3RhdHMoRklMRSAqb3V0KQoreworICAgIF9QeURlYnVnQWxsb2NhdG9yU3RhdHMob3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgImZyZWUgUHlDRnVuY3Rpb24iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtZnJlZSwgc2l6ZW9mKFB5Q0Z1bmN0aW9uKSk7Cit9CisKIC8qIFB5Q0Z1bmN0aW9uX05ldygpIGlzIG5vdyBqdXN0IGEgbWFjcm8gdGhhdCBjYWxscyBQeUNGdW5jdGlvbl9OZXdFeCgpLAogICAgYnV0IGl0J3MgcGFydCBvZiB0aGUgQVBJIHNvIHdlIG5lZWQgdG8ga2VlcCBhIGZ1bmN0aW9uIGFyb3VuZCB0aGF0CiAgICBleGlzdGluZyBDIGV4dGVuc2lvbnMgY2FuIGNhbGwuCmRpZmYgLS1naXQgYS9PYmplY3RzL21vZHVsZW9iamVjdC5jIGIvT2JqZWN0cy9tb2R1bGVvYmplY3QuYwppbmRleCBmMzFiNWRhLi5kNTBiMmIyIDEwMDY0NAotLS0gYS9PYmplY3RzL21vZHVsZW9iamVjdC5jCisrKyBiL09iamVjdHMvbW9kdWxlb2JqZWN0LmMKQEAgLTI3LDM2ICsyNyw0NSBAQAogCiAKIFB5T2JqZWN0ICoKLVB5TW9kdWxlX05ldyhjb25zdCBjaGFyICpuYW1lKQorUHlNb2R1bGVfTmV3T2JqZWN0KFB5T2JqZWN0ICpuYW1lKQogewogICAgIFB5TW9kdWxlT2JqZWN0ICptOwotICAgIFB5T2JqZWN0ICpuYW1lb2JqOwogICAgIG0gPSBQeU9iamVjdF9HQ19OZXcoUHlNb2R1bGVPYmplY3QsICZQeU1vZHVsZV9UeXBlKTsKICAgICBpZiAobSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBtLT5tZF9kZWYgPSBOVUxMOwogICAgIG0tPm1kX3N0YXRlID0gTlVMTDsKLSAgICBuYW1lb2JqID0gUHlVbmljb2RlX0Zyb21TdHJpbmcobmFtZSk7CiAgICAgbS0+bWRfZGljdCA9IFB5RGljdF9OZXcoKTsKLSAgICBpZiAobS0+bWRfZGljdCA9PSBOVUxMIHx8IG5hbWVvYmogPT0gTlVMTCkKKyAgICBpZiAobS0+bWRfZGljdCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWw7Ci0gICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKG0tPm1kX2RpY3QsICJfX25hbWVfXyIsIG5hbWVvYmopICE9IDApCisgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKG0tPm1kX2RpY3QsICJfX25hbWVfXyIsIG5hbWUpICE9IDApCiAgICAgICAgIGdvdG8gZmFpbDsKICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcobS0+bWRfZGljdCwgIl9fZG9jX18iLCBQeV9Ob25lKSAhPSAwKQogICAgICAgICBnb3RvIGZhaWw7CiAgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKG0tPm1kX2RpY3QsICJfX3BhY2thZ2VfXyIsIFB5X05vbmUpICE9IDApCiAgICAgICAgIGdvdG8gZmFpbDsKLSAgICBQeV9ERUNSRUYobmFtZW9iaik7CiAgICAgUHlPYmplY3RfR0NfVHJhY2sobSk7CiAgICAgcmV0dXJuIChQeU9iamVjdCAqKW07CiAKICBmYWlsOgotICAgIFB5X1hERUNSRUYobmFtZW9iaik7CiAgICAgUHlfREVDUkVGKG0pOwogICAgIHJldHVybiBOVUxMOwogfQogCiBQeU9iamVjdCAqCitQeU1vZHVsZV9OZXcoY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgICBQeU9iamVjdCAqbmFtZW9iaiwgKm1vZHVsZTsKKyAgICBuYW1lb2JqID0gUHlVbmljb2RlX0Zyb21TdHJpbmcobmFtZSk7CisgICAgaWYgKG5hbWVvYmogPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbW9kdWxlID0gUHlNb2R1bGVfTmV3T2JqZWN0KG5hbWVvYmopOworICAgIFB5X0RFQ1JFRihuYW1lb2JqKTsKKyAgICByZXR1cm4gbW9kdWxlOworfQorCisKK1B5T2JqZWN0ICoKIFB5TW9kdWxlX0NyZWF0ZTIoc3RydWN0IFB5TW9kdWxlRGVmKiBtb2R1bGUsIGludCBtb2R1bGVfYXBpX3ZlcnNpb24pCiB7CiAgICAgUHlPYmplY3QgKmQsICp2LCAqbjsKQEAgLTE2OSwyNCArMTc4LDM1IEBACiAgICAgcmV0dXJuIGQ7CiB9CiAKLWNvbnN0IGNoYXIgKgotUHlNb2R1bGVfR2V0TmFtZShQeU9iamVjdCAqbSkKK1B5T2JqZWN0KgorUHlNb2R1bGVfR2V0TmFtZU9iamVjdChQeU9iamVjdCAqbSkKIHsKICAgICBQeU9iamVjdCAqZDsKLSAgICBQeU9iamVjdCAqbmFtZW9iajsKKyAgICBQeU9iamVjdCAqbmFtZTsKICAgICBpZiAoIVB5TW9kdWxlX0NoZWNrKG0pKSB7CiAgICAgICAgIFB5RXJyX0JhZEFyZ3VtZW50KCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBkID0gKChQeU1vZHVsZU9iamVjdCAqKW0pLT5tZF9kaWN0OwogICAgIGlmIChkID09IE5VTEwgfHwKLSAgICAgICAgKG5hbWVvYmogPSBQeURpY3RfR2V0SXRlbVN0cmluZyhkLCAiX19uYW1lX18iKSkgPT0gTlVMTCB8fAotICAgICAgICAhUHlVbmljb2RlX0NoZWNrKG5hbWVvYmopKQorICAgICAgICAobmFtZSA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKGQsICJfX25hbWVfXyIpKSA9PSBOVUxMIHx8CisgICAgICAgICFQeVVuaWNvZGVfQ2hlY2sobmFtZSkpCiAgICAgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsICJuYW1lbGVzcyBtb2R1bGUiKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBfUHlVbmljb2RlX0FzU3RyaW5nKG5hbWVvYmopOworICAgIFB5X0lOQ1JFRihuYW1lKTsKKyAgICByZXR1cm4gbmFtZTsKK30KKworY29uc3QgY2hhciAqCitQeU1vZHVsZV9HZXROYW1lKFB5T2JqZWN0ICptKQoreworICAgIFB5T2JqZWN0ICpuYW1lID0gUHlNb2R1bGVfR2V0TmFtZU9iamVjdChtKTsKKyAgICBpZiAobmFtZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9ERUNSRUYobmFtZSk7ICAgLyogbW9kdWxlIGRpY3QgaGFzIHN0aWxsIGEgcmVmZXJlbmNlICovCisgICAgcmV0dXJuIF9QeVVuaWNvZGVfQXNTdHJpbmcobmFtZSk7CiB9CiAKIFB5T2JqZWN0KgpAQCAtMjE5LDcgKzIzOSw3IEBACiAgICAgaWYgKGZpbGVvYmogPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgdXRmOCA9IF9QeVVuaWNvZGVfQXNTdHJpbmcoZmlsZW9iaik7Ci0gICAgUHlfREVDUkVGKGZpbGVvYmopOworICAgIFB5X0RFQ1JFRihmaWxlb2JqKTsgICAvKiBtb2R1bGUgZGljdCBoYXMgc3RpbGwgYSByZWZlcmVuY2UgKi8KICAgICByZXR1cm4gdXRmODsKIH0KIApAQCAtMjY1LDggKzI4NSw4IEBACiAgICAgcG9zID0gMDsKICAgICB3aGlsZSAoUHlEaWN0X05leHQoZCwgJnBvcywgJmtleSwgJnZhbHVlKSkgewogICAgICAgICBpZiAodmFsdWUgIT0gUHlfTm9uZSAmJiBQeVVuaWNvZGVfQ2hlY2soa2V5KSkgewotICAgICAgICAgICAgUHlfVU5JQ09ERSAqdSA9IFB5VW5pY29kZV9BU19VTklDT0RFKGtleSk7Ci0gICAgICAgICAgICBpZiAodVswXSA9PSAnXycgJiYgdVsxXSAhPSAnXycpIHsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRF9DSEFSKGtleSwgMCkgPT0gJ18nICYmCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1JFQURfQ0hBUihrZXksIDEpICE9ICdfJykgewogICAgICAgICAgICAgICAgIGlmIChQeV9WZXJib3NlRmxhZyA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcyA9IF9QeVVuaWNvZGVfQXNTdHJpbmcoa2V5KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHMgIT0gTlVMTCkKQEAgLTI4Myw5ICszMDMsOCBAQAogICAgIHBvcyA9IDA7CiAgICAgd2hpbGUgKFB5RGljdF9OZXh0KGQsICZwb3MsICZrZXksICZ2YWx1ZSkpIHsKICAgICAgICAgaWYgKHZhbHVlICE9IFB5X05vbmUgJiYgUHlVbmljb2RlX0NoZWNrKGtleSkpIHsKLSAgICAgICAgICAgIFB5X1VOSUNPREUgKnUgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShrZXkpOwotICAgICAgICAgICAgaWYgKHVbMF0gIT0gJ18nCi0gICAgICAgICAgICAgICAgfHwgUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcoa2V5LCAiX19idWlsdGluc19fIikgIT0gMCkKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRF9DSEFSKGtleSwgMCkgIT0gJ18nIHx8CisgICAgICAgICAgICAgICAgUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcoa2V5LCAiX19idWlsdGluc19fIikgIT0gMCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoUHlfVmVyYm9zZUZsYWcgPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnMgPSBfUHlVbmljb2RlX0FzU3RyaW5nKGtleSk7CkBAIC0zNDcsMjEgKzM2Niw1NCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIG1vZHVsZV9yZXByKFB5TW9kdWxlT2JqZWN0ICptKQogewotICAgIGNvbnN0IGNoYXIgKm5hbWU7Ci0gICAgUHlPYmplY3QgKmZpbGVuYW1lLCAqcmVwcjsKKyAgICBQeU9iamVjdCAqbmFtZSwgKmZpbGVuYW1lLCAqcmVwciwgKmxvYWRlciA9IE5VTEw7CiAKLSAgICBuYW1lID0gUHlNb2R1bGVfR2V0TmFtZSgoUHlPYmplY3QgKiltKTsKKyAgICAvKiBTZWUgaWYgdGhlIG1vZHVsZSBoYXMgYW4gX19sb2FkZXJfXy4gIElmIGl0IGRvZXMsIGdpdmUgdGhlIGxvYWRlciB0aGUKKyAgICAgKiBmaXJzdCBzaG90IGF0IHByb2R1Y2luZyBhIHJlcHIgZm9yIHRoZSBtb2R1bGUuCisgICAgICovCisgICAgaWYgKG0tPm1kX2RpY3QgIT0gTlVMTCkgeworICAgICAgICBsb2FkZXIgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtLT5tZF9kaWN0LCAiX19sb2FkZXJfXyIpOworICAgIH0KKyAgICBpZiAobG9hZGVyICE9IE5VTEwpIHsKKyAgICAgICAgcmVwciA9IFB5T2JqZWN0X0NhbGxNZXRob2QobG9hZGVyLCAibW9kdWxlX3JlcHIiLCAiKE8pIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFB5T2JqZWN0ICopbSwgTlVMTCk7CisgICAgICAgIGlmIChyZXByID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZXR1cm4gcmVwcjsKKyAgICAgICAgfQorICAgIH0KKyAgICAvKiBfX2xvYWRlcl9fLm1vZHVsZV9yZXByKG0pIGRpZCBub3QgcHJvdmlkZSB1cyB3aXRoIGEgcmVwci4gIE5leHQsIHNlZSBpZgorICAgICAqIHRoZSBtb2R1bGUgaGFzIGFuIF9fZmlsZV9fLiAgSWYgaXQgZG9lc24ndCB0aGVuIHVzZSByZXByKF9fbG9hZGVyX18pIGlmCisgICAgICogaXQgZXhpc3RzLCBvdGhlcndpc2UsIGp1c3QgdXNlIG1vZHVsZS5fX25hbWVfXy4KKyAgICAgKi8KKyAgICBuYW1lID0gUHlNb2R1bGVfR2V0TmFtZU9iamVjdCgoUHlPYmplY3QgKiltKTsKICAgICBpZiAobmFtZSA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgICAgIG5hbWUgPSAiPyI7CisgICAgICAgIG5hbWUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUoIj8iLCAxKTsKKyAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBmaWxlbmFtZSA9IFB5TW9kdWxlX0dldEZpbGVuYW1lT2JqZWN0KChQeU9iamVjdCAqKW0pOwogICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiPG1vZHVsZSAnJXMnIChidWlsdC1pbik+IiwgbmFtZSk7CisgICAgICAgIC8qIFRoZXJlJ3Mgbm8gbS5fX2ZpbGVfXywgc28gaWYgdGhlcmUgd2FzIGFuIF9fbG9hZGVyX18sIHVzZSB0aGF0IGluCisgICAgICAgICAqIHRoZSByZXByLCBvdGhlcndpc2UsIHRoZSBvbmx5IHRoaW5nIHlvdSBjYW4gdXNlIGlzIG0uX19uYW1lX18KKyAgICAgICAgICovCisgICAgICAgIGlmIChsb2FkZXIgPT0gTlVMTCkgeworICAgICAgICAgICAgcmVwciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8bW9kdWxlICVSPiIsIG5hbWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVwciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8bW9kdWxlICVSICglUik+IiwgbmFtZSwgbG9hZGVyKTsKKyAgICAgICAgfQogICAgIH0KLSAgICByZXByID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjxtb2R1bGUgJyVzJyBmcm9tICclVSc+IiwgbmFtZSwgZmlsZW5hbWUpOwotICAgIFB5X0RFQ1JFRihmaWxlbmFtZSk7CisgICAgLyogRmluYWxseSwgdXNlIG0uX19maWxlX18gKi8KKyAgICBlbHNlIHsKKyAgICAgICAgcmVwciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCI8bW9kdWxlICVSIGZyb20gJVI+IiwgbmFtZSwgZmlsZW5hbWUpOworICAgICAgICBQeV9ERUNSRUYoZmlsZW5hbWUpOworICAgIH0KKyAgICBQeV9ERUNSRUYobmFtZSk7CiAgICAgcmV0dXJuIHJlcHI7CiB9CiAKQEAgLTM4OSw2ICs0NDEsMzUgQEAKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK21vZHVsZV9kaXIoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQoreworICAgIF9QeV9JREVOVElGSUVSKF9fZGljdF9fKTsKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKKyAgICBQeU9iamVjdCAqZGljdCA9IF9QeU9iamVjdF9HZXRBdHRySWQoc2VsZiwgJlB5SWRfX19kaWN0X18pOworCisgICAgaWYgKGRpY3QgIT0gTlVMTCkgeworICAgICAgICBpZiAoUHlEaWN0X0NoZWNrKGRpY3QpKQorICAgICAgICAgICAgcmVzdWx0ID0gUHlEaWN0X0tleXMoZGljdCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSA9IFB5TW9kdWxlX0dldE5hbWUoc2VsZik7CisgICAgICAgICAgICBpZiAobmFtZSkKKyAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJS4yMDBzLl9fZGljdF9fIGlzIG5vdCBhIGRpY3Rpb25hcnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFB5X1hERUNSRUYoZGljdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIFB5TWV0aG9kRGVmIG1vZHVsZV9tZXRob2RzW10gPSB7CisgICAgeyJfX2Rpcl9fIiwgbW9kdWxlX2RpciwgTUVUSF9OT0FSR1MsCisgICAgIFB5RG9jX1NUUigiX19kaXJfXygpIC0+IGxpc3RcbnNwZWNpYWxpemVkIGRpcigpIGltcGxlbWVudGF0aW9uIil9LAorICAgIHswfQorfTsKKwogCiBQeURvY19TVFJWQVIobW9kdWxlX2RvYywKICJtb2R1bGUobmFtZVssIGRvY10pXG5cCkBAIC00MjUsNyArNTA2LDcgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIG1vZHVsZV9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIG1vZHVsZV9tZW1iZXJzLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCmRpZmYgLS1naXQgYS9PYmplY3RzL25hbWVzcGFjZW9iamVjdC5jIGIvT2JqZWN0cy9uYW1lc3BhY2VvYmplY3QuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NTM4NzRjCi0tLSAvZGV2L251bGwKKysrIGIvT2JqZWN0cy9uYW1lc3BhY2VvYmplY3QuYwpAQCAtMCwwICsxLDIyNSBAQAorLyogbmFtZXNwYWNlIG9iamVjdCBpbXBsZW1lbnRhdGlvbiAqLworCisjaW5jbHVkZSAiUHl0aG9uLmgiCisjaW5jbHVkZSAic3RydWN0bWVtYmVyLmgiCisKKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICBQeU9iamVjdCAqbnNfZGljdDsKK30gX1B5TmFtZXNwYWNlT2JqZWN0OworCisKK3N0YXRpYyBQeU1lbWJlckRlZiBuYW1lc3BhY2VfbWVtYmVyc1tdID0geworICAgIHsiX19kaWN0X18iLCBUX09CSkVDVCwgb2Zmc2V0b2YoX1B5TmFtZXNwYWNlT2JqZWN0LCBuc19kaWN0KSwgUkVBRE9OTFl9LAorICAgIHtOVUxMfQorfTsKKworCisvKiBNZXRob2RzICovCisKK3N0YXRpYyBQeU9iamVjdCAqCituYW1lc3BhY2VfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQoreworICAgIF9QeU5hbWVzcGFjZU9iamVjdCAqbnM7CisgICAgbnMgPSBQeU9iamVjdF9HQ19OZXcoX1B5TmFtZXNwYWNlT2JqZWN0LCAmX1B5TmFtZXNwYWNlX1R5cGUpOworICAgIGlmIChucyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIG5zLT5uc19kaWN0ID0gUHlEaWN0X05ldygpOworICAgIGlmIChucy0+bnNfZGljdCA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihucyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIFB5T2JqZWN0X0dDX1RyYWNrKG5zKTsKKyAgICByZXR1cm4gKFB5T2JqZWN0ICopbnM7Cit9CisKKworc3RhdGljIGludAorbmFtZXNwYWNlX2luaXQoX1B5TmFtZXNwYWNlT2JqZWN0ICpucywgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQoreworICAgIC8qIGlnbm9yZSBhcmdzIGlmIGl0J3MgTlVMTCBvciBlbXB0eSAqLworICAgIGlmIChhcmdzICE9IE5VTEwpIHsKKyAgICAgICAgUHlfc3NpemVfdCBhcmdjb3VudCA9IFB5T2JqZWN0X1NpemUoYXJncyk7CisgICAgICAgIGlmIChhcmdjb3VudCA8IDApCisgICAgICAgICAgICByZXR1cm4gYXJnY291bnQ7CisgICAgICAgIGVsc2UgaWYgKGFyZ2NvdW50ID4gMCkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIm5vIHBvc2l0aW9uYWwgYXJndW1lbnRzIGV4cGVjdGVkIik7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGt3ZHMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFB5RGljdF9VcGRhdGUobnMtPm5zX2RpY3QsIGt3ZHMpOworfQorCisKK3N0YXRpYyB2b2lkCituYW1lc3BhY2VfZGVhbGxvYyhfUHlOYW1lc3BhY2VPYmplY3QgKm5zKQoreworICAgIFB5T2JqZWN0X0dDX1VuVHJhY2sobnMpOworICAgIFB5X0NMRUFSKG5zLT5uc19kaWN0KTsKKyAgICBQeV9UWVBFKG5zKS0+dHBfZnJlZSgoUHlPYmplY3QgKilucyk7Cit9CisKKworc3RhdGljIFB5T2JqZWN0ICoKK25hbWVzcGFjZV9yZXByKF9QeU5hbWVzcGFjZU9iamVjdCAqbnMpCit7CisgICAgaW50IGksIGxvb3BfZXJyb3IgPSAwOworICAgIFB5T2JqZWN0ICpwYWlycyA9IE5VTEwsICpkID0gTlVMTCwgKmtleXMgPSBOVUxMLCAqa2V5c19pdGVyID0gTlVMTDsKKyAgICBQeU9iamVjdCAqa2V5OworICAgIFB5T2JqZWN0ICpzZXBhcmF0b3IsICpwYWlyc3JlcHIsICpyZXByID0gTlVMTDsKKworICAgIGkgPSBQeV9SZXByRW50ZXIoKFB5T2JqZWN0ICopbnMpOworICAgIGlmIChpICE9IDApIHsKKyAgICAgICAgcmV0dXJuIGkgPiAwID8gUHlVbmljb2RlX0Zyb21TdHJpbmcoIm5hbWVzcGFjZSguLi4pIikgOiBOVUxMOworICAgIH0KKworICAgIHBhaXJzID0gUHlMaXN0X05ldygwKTsKKyAgICBpZiAocGFpcnMgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKworICAgIGQgPSAoKF9QeU5hbWVzcGFjZU9iamVjdCAqKW5zKS0+bnNfZGljdDsKKyAgICBhc3NlcnQoZCAhPSBOVUxMKTsKKyAgICBQeV9JTkNSRUYoZCk7CisKKyAgICBrZXlzID0gUHlEaWN0X0tleXMoZCk7CisgICAgaWYgKGtleXMgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICBpZiAoUHlMaXN0X1NvcnQoa2V5cykgIT0gMCkKKyAgICAgICAgZ290byBlcnJvcjsKKworICAgIGtleXNfaXRlciA9IFB5T2JqZWN0X0dldEl0ZXIoa2V5cyk7CisgICAgaWYgKGtleXNfaXRlciA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgd2hpbGUgKChrZXkgPSBQeUl0ZXJfTmV4dChrZXlzX2l0ZXIpKSAhPSBOVUxMKSB7CisgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soa2V5KSAmJiBQeVVuaWNvZGVfR0VUX1NJWkUoa2V5KSA+IDApIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICp2YWx1ZSwgKml0ZW07CisKKyAgICAgICAgICAgIHZhbHVlID0gUHlEaWN0X0dldEl0ZW0oZCwga2V5KTsKKyAgICAgICAgICAgIGFzc2VydCh2YWx1ZSAhPSBOVUxMKTsKKworICAgICAgICAgICAgaXRlbSA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlUz0lUiIsIGtleSwgdmFsdWUpOworICAgICAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGxvb3BfZXJyb3IgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgbG9vcF9lcnJvciA9IFB5TGlzdF9BcHBlbmQocGFpcnMsIGl0ZW0pOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihpdGVtKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIFB5X0RFQ1JFRihrZXkpOworICAgICAgICBpZiAobG9vcF9lcnJvcikKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgc2VwYXJhdG9yID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIiwgIik7CisgICAgaWYgKHNlcGFyYXRvciA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgcGFpcnNyZXByID0gUHlVbmljb2RlX0pvaW4oc2VwYXJhdG9yLCBwYWlycyk7CisgICAgUHlfREVDUkVGKHNlcGFyYXRvcik7CisgICAgaWYgKHBhaXJzcmVwciA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgcmVwciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlcyglUykiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKFB5T2JqZWN0ICopbnMpLT5vYl90eXBlLT50cF9uYW1lLCBwYWlyc3JlcHIpOworICAgIFB5X0RFQ1JFRihwYWlyc3JlcHIpOworCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKHBhaXJzKTsKKyAgICBQeV9YREVDUkVGKGQpOworICAgIFB5X1hERUNSRUYoa2V5cyk7CisgICAgUHlfWERFQ1JFRihrZXlzX2l0ZXIpOworICAgIFB5X1JlcHJMZWF2ZSgoUHlPYmplY3QgKilucyk7CisKKyAgICByZXR1cm4gcmVwcjsKK30KKworCitzdGF0aWMgaW50CituYW1lc3BhY2VfdHJhdmVyc2UoX1B5TmFtZXNwYWNlT2JqZWN0ICpucywgdmlzaXRwcm9jIHZpc2l0LCB2b2lkICphcmcpCit7CisgICAgUHlfVklTSVQobnMtPm5zX2RpY3QpOworICAgIHJldHVybiAwOworfQorCisKK3N0YXRpYyBpbnQKK25hbWVzcGFjZV9jbGVhcihfUHlOYW1lc3BhY2VPYmplY3QgKm5zKQoreworICAgIFB5X0NMRUFSKG5zLT5uc19kaWN0KTsKKyAgICByZXR1cm4gMDsKK30KKworCitQeURvY19TVFJWQVIobmFtZXNwYWNlX2RvYywKKyJBIHNpbXBsZSBhdHRyaWJ1dGUtYmFzZWQgbmFtZXNwYWNlLlxuXAorXG5cCituYW1lc3BhY2UoKiprd2FyZ3MpIik7CisKK1B5VHlwZU9iamVjdCBfUHlOYW1lc3BhY2VfVHlwZSA9IHsKKyAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoJlB5VHlwZV9UeXBlLCAwKQorICAgICJuYW1lc3BhY2UiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbmFtZSAqLworICAgIHNpemVvZihfUHlOYW1lc3BhY2VPYmplY3QpLCAgICAgICAgICAgICAgICAgLyogdHBfc2l6ZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlbXNpemUgKi8KKyAgICAoZGVzdHJ1Y3RvciluYW1lc3BhY2VfZGVhbGxvYywgICAgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9yZXNlcnZlZCAqLworICAgIChyZXByZnVuYyluYW1lc3BhY2VfcmVwciwgICAgICAgICAgICAgICAgICAgLyogdHBfcmVwciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbnVtYmVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfbWFwcGluZyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2FsbCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc3RyICovCisgICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRybyAqLworICAgIFB5T2JqZWN0X0dlbmVyaWNTZXRBdHRyLCAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0cm8gKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCB8IFB5X1RQRkxBR1NfSEFWRV9HQyB8CisgICAgICAgIFB5X1RQRkxBR1NfQkFTRVRZUEUsICAgICAgICAgICAgICAgICAgICAvKiB0cF9mbGFncyAqLworICAgIG5hbWVzcGFjZV9kb2MsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgKHRyYXZlcnNlcHJvYyluYW1lc3BhY2VfdHJhdmVyc2UsICAgICAgICAgICAvKiB0cF90cmF2ZXJzZSAqLworICAgIChpbnF1aXJ5KW5hbWVzcGFjZV9jbGVhciwgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF93ZWFrbGlzdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBuYW1lc3BhY2VfbWVtYmVycywgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9zZXQgKi8KKyAgICBvZmZzZXRvZihfUHlOYW1lc3BhY2VPYmplY3QsIG5zX2RpY3QpLCAgICAgIC8qIHRwX2RpY3RvZmZzZXQgKi8KKyAgICAoaW5pdHByb2MpbmFtZXNwYWNlX2luaXQsICAgICAgICAgICAgICAgICAgIC8qIHRwX2luaXQgKi8KKyAgICBQeVR5cGVfR2VuZXJpY0FsbG9jLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FsbG9jICovCisgICAgKG5ld2Z1bmMpbmFtZXNwYWNlX25ldywgICAgICAgICAgICAgICAgICAgICAvKiB0cF9uZXcgKi8KKyAgICBQeU9iamVjdF9HQ19EZWwsICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2ZyZWUgKi8KK307CisKKworUHlPYmplY3QgKgorX1B5TmFtZXNwYWNlX05ldyhQeU9iamVjdCAqa3dkcykKK3sKKyAgICBQeU9iamVjdCAqbnMgPSBuYW1lc3BhY2VfbmV3KCZfUHlOYW1lc3BhY2VfVHlwZSwgTlVMTCwgTlVMTCk7CisgICAgaWYgKG5zID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKGt3ZHMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIG5zOworICAgIGlmIChQeURpY3RfVXBkYXRlKCgoX1B5TmFtZXNwYWNlT2JqZWN0ICopbnMpLT5uc19kaWN0LCBrd2RzKSAhPSAwKSB7CisgICAgICAgIFB5X0RFQ1JFRihucyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKworICAgIHJldHVybiAoUHlPYmplY3QgKiluczsKK30KZGlmZiAtLWdpdCBhL09iamVjdHMvb2JqZWN0LmMgYi9PYmplY3RzL29iamVjdC5jCmluZGV4IDg0ZWMyZjMuLmY0YzAyMDggMTAwNjQ0Ci0tLSBhL09iamVjdHMvb2JqZWN0LmMKKysrIGIvT2JqZWN0cy9vYmplY3QuYwpAQCAtMSw1ICsxLDUgQEAKIAotLyogR2VuZXJpYyBvYmplY3Qgb3BlcmF0aW9uczsgYW5kIGltcGxlbWVudGF0aW9uIG9mIE5vbmUgKE5vT2JqZWN0KSAqLworLyogR2VuZXJpYyBvYmplY3Qgb3BlcmF0aW9uczsgYW5kIGltcGxlbWVudGF0aW9uIG9mIE5vbmUgKi8KIAogI2luY2x1ZGUgIlB5dGhvbi5oIgogI2luY2x1ZGUgImZyYW1lb2JqZWN0LmgiCkBAIC0yOSw4ICsyOSw2IEBACiB9CiAjZW5kaWYgLyogUHlfUkVGX0RFQlVHICovCiAKLWludCBQeV9EaXZpc2lvbldhcm5pbmdGbGFnOwotCiAvKiBPYmplY3QgYWxsb2NhdGlvbiByb3V0aW5lcyB1c2VkIGJ5IE5FV09CSiBhbmQgTkVXVkFST0JKIG1hY3Jvcy4KICAgIFRoZXNlIGFyZSB1c2VkIGJ5IHRoZSBpbmRpdmlkdWFsIHJvdXRpbmVzIGZvciBvYmplY3QgY3JlYXRpb24uCiAgICBEbyBub3QgY2FsbCB0aGVtIG90aGVyd2lzZSwgdGhleSBkbyBub3QgaW5pdGlhbGl6ZSB0aGUgb2JqZWN0ISAqLwpAQCAtMjk3LDkgKzI5NSw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIGlmIChQeVVuaWNvZGVfQ2hlY2socykpIHsKICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdDsKLSAgICAgICAgICAgICAgICB0ID0gUHlVbmljb2RlX0VuY29kZVVURjgoUHlVbmljb2RlX0FTX1VOSUNPREUocyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJhY2tzbGFzaHJlcGxhY2UiKTsKKyAgICAgICAgICAgICAgICB0ID0gUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyhzLCAidXRmLTgiLCAiYmFja3NsYXNocmVwbGFjZSIpOwogICAgICAgICAgICAgICAgIGlmICh0ID09IE5VTEwpCiAgICAgICAgICAgICAgICAgICAgIHJldCA9IDA7CiAgICAgICAgICAgICAgICAgZWxzZSB7CkBAIC0zODIsMTMgKzM3OCwxOSBAQAogICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIjwlcyBvYmplY3QgYXQgJXA+IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtPm9iX3R5cGUtPnRwX25hbWUsIHYpOwogICAgIHJlcyA9ICgqdi0+b2JfdHlwZS0+dHBfcmVwcikodik7Ci0gICAgaWYgKHJlcyAhPSBOVUxMICYmICFQeVVuaWNvZGVfQ2hlY2socmVzKSkgeworICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2socmVzKSkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgIl9fcmVwcl9fIHJldHVybmVkIG5vbi1zdHJpbmcgKHR5cGUgJS4yMDBzKSIsCiAgICAgICAgICAgICAgICAgICAgICByZXMtPm9iX3R5cGUtPnRwX25hbWUpOwogICAgICAgICBQeV9ERUNSRUYocmVzKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQorI2lmbmRlZiBQeV9ERUJVRworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkocmVzKSA8IDApCisgICAgICAgIHJldHVybiBOVUxMOworI2VuZGlmCiAgICAgcmV0dXJuIHJlczsKIH0KIApAQCAtNDA3LDYgKzQwOSwxMCBAQAogICAgIGlmICh2ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZygiPE5VTEw+Iik7CiAgICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KHYpKSB7CisjaWZuZGVmIFB5X0RFQlVHCisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodikgPCAwKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYKICAgICAgICAgUHlfSU5DUkVGKHYpOwogICAgICAgICByZXR1cm4gdjsKICAgICB9CkBAIC00MjgsNiArNDM0LDExIEBACiAgICAgICAgIFB5X0RFQ1JFRihyZXMpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CisjaWZuZGVmIFB5X0RFQlVHCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShyZXMpIDwgMCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJlcywgMSkpOwogICAgIHJldHVybiByZXM7CiB9CiAKQEAgLTQ0MSwxMSArNDUyLDcgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiByZXByIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBQeVVuaWNvZGUgb2JqZWN0IGJ5IFB5T2JqZWN0X1JlcHIgKi8KLSAgICBhc2NpaSA9IFB5VW5pY29kZV9FbmNvZGVBU0NJSSgKLSAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUocmVwciksCi0gICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShyZXByKSwKLSAgICAgICAgImJhY2tzbGFzaHJlcGxhY2UiKTsKLQorICAgIGFzY2lpID0gX1B5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nKHJlcHIsICJiYWNrc2xhc2hyZXBsYWNlIik7CiAgICAgUHlfREVDUkVGKHJlcHIpOwogICAgIGlmIChhc2NpaSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTQ2Myw3ICs0NzAsNyBAQAogUHlPYmplY3RfQnl0ZXMoUHlPYmplY3QgKnYpCiB7CiAgICAgUHlPYmplY3QgKnJlc3VsdCwgKmZ1bmM7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpieXRlc3N0cmluZyA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIoX19ieXRlc19fKTsKIAogICAgIGlmICh2ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBQeUJ5dGVzX0Zyb21TdHJpbmcoIjxOVUxMPiIpOwpAQCAtNDczLDcgKzQ4MCw3IEBACiAgICAgICAgIHJldHVybiB2OwogICAgIH0KIAotICAgIGZ1bmMgPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbCh2LCAiX19ieXRlc19fIiwgJmJ5dGVzc3RyaW5nKTsKKyAgICBmdW5jID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwodiwgJlB5SWRfX19ieXRlc19fKTsKICAgICBpZiAoZnVuYyAhPSBOVUxMKSB7CiAgICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoZnVuYywgTlVMTCk7CiAgICAgICAgIFB5X0RFQ1JFRihmdW5jKTsKQEAgLTc0Nyw2ICs3NTQsMzMgQEAKIH0KIAogUHlfaGFzaF90CitfUHlfSGFzaEJ5dGVzKHVuc2lnbmVkIGNoYXIgKnAsIFB5X3NzaXplX3QgbGVuKQoreworICAgIFB5X3VoYXNoX3QgeDsKKyAgICBQeV9zc2l6ZV90IGk7CisKKyAgICAvKgorICAgICAgV2UgbWFrZSB0aGUgaGFzaCBvZiB0aGUgZW1wdHkgc3RyaW5nIGJlIDAsIHJhdGhlciB0aGFuIHVzaW5nCisgICAgICAocHJlZml4IF4gc3VmZml4KSwgc2luY2UgdGhpcyBzbGlnaHRseSBvYmZ1c2NhdGVzIHRoZSBoYXNoIHNlY3JldAorICAgICovCisjaWZkZWYgUHlfREVCVUcKKyAgICBhc3NlcnQoX1B5X0hhc2hTZWNyZXRfSW5pdGlhbGl6ZWQpOworI2VuZGlmCisgICAgaWYgKGxlbiA9PSAwKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICB4ID0gKFB5X3VoYXNoX3QpIF9QeV9IYXNoU2VjcmV0LnByZWZpeDsKKyAgICB4IF49IChQeV91aGFzaF90KSAqcCA8PCA3OworICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKKyAgICAgICAgeCA9IChfUHlIQVNIX01VTFRJUExJRVIgKiB4KSBeIChQeV91aGFzaF90KSAqcCsrOworICAgIHggXj0gKFB5X3VoYXNoX3QpIGxlbjsKKyAgICB4IF49IChQeV91aGFzaF90KSBfUHlfSGFzaFNlY3JldC5zdWZmaXg7CisgICAgaWYgKHggPT0gLTEpCisgICAgICAgIHggPSAtMjsKKyAgICByZXR1cm4geDsKK30KKworUHlfaGFzaF90CiBQeU9iamVjdF9IYXNoTm90SW1wbGVtZW50ZWQoUHlPYmplY3QgKnYpCiB7CiAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgInVuaGFzaGFibGUgdHlwZTogJyUuMjAwcyciLApAQCAtNzg4LDcgKzgyMiw3IEBACiAgICAgaWYgKHcgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgcmVzID0gUHlPYmplY3RfR2V0QXR0cih2LCB3KTsKLSAgICBQeV9YREVDUkVGKHcpOworICAgIFB5X0RFQ1JFRih3KTsKICAgICByZXR1cm4gcmVzOwogfQogCkBAIC04MjAsNiArODU0LDYyIEBACiAgICAgcmV0dXJuIHJlczsKIH0KIAoraW50CitfUHlPYmplY3RfSXNBYnN0cmFjdChQeU9iamVjdCAqb2JqKQoreworICAgIGludCByZXM7CisgICAgUHlPYmplY3QqIGlzYWJzdHJhY3Q7CisgICAgX1B5X0lERU5USUZJRVIoX19pc2Fic3RyYWN0bWV0aG9kX18pOworCisgICAgaWYgKG9iaiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlzYWJzdHJhY3QgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfX19pc2Fic3RyYWN0bWV0aG9kX18pOworICAgIGlmIChpc2Fic3RyYWN0ID09IE5VTEwpIHsKKyAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKSB7CisgICAgICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICByZXMgPSBQeU9iamVjdF9Jc1RydWUoaXNhYnN0cmFjdCk7CisgICAgUHlfREVDUkVGKGlzYWJzdHJhY3QpOworICAgIHJldHVybiByZXM7Cit9CisKK1B5T2JqZWN0ICoKK19QeU9iamVjdF9HZXRBdHRySWQoUHlPYmplY3QgKnYsIF9QeV9JZGVudGlmaWVyICpuYW1lKQoreworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgUHlPYmplY3QgKm9uYW1lID0gX1B5VW5pY29kZV9Gcm9tSWQobmFtZSk7IC8qIGJvcnJvd2VkICovCisgICAgaWYgKCFvbmFtZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmVzdWx0ID0gUHlPYmplY3RfR2V0QXR0cih2LCBvbmFtZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworaW50CitfUHlPYmplY3RfSGFzQXR0cklkKFB5T2JqZWN0ICp2LCBfUHlfSWRlbnRpZmllciAqbmFtZSkKK3sKKyAgICBpbnQgcmVzdWx0OworICAgIFB5T2JqZWN0ICpvbmFtZSA9IF9QeVVuaWNvZGVfRnJvbUlkKG5hbWUpOyAvKiBib3Jyb3dlZCAqLworICAgIGlmICghb25hbWUpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXN1bHQgPSBQeU9iamVjdF9IYXNBdHRyKHYsIG9uYW1lKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitpbnQKK19QeU9iamVjdF9TZXRBdHRySWQoUHlPYmplY3QgKnYsIF9QeV9JZGVudGlmaWVyICpuYW1lLCBQeU9iamVjdCAqdykKK3sKKyAgICBpbnQgcmVzdWx0OworICAgIFB5T2JqZWN0ICpvbmFtZSA9IF9QeVVuaWNvZGVfRnJvbUlkKG5hbWUpOyAvKiBib3Jyb3dlZCAqLworICAgIGlmICghb25hbWUpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXN1bHQgPSBQeU9iamVjdF9TZXRBdHRyKHYsIG9uYW1lLCB3KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBQeU9iamVjdCAqCiBQeU9iamVjdF9HZXRBdHRyKFB5T2JqZWN0ICp2LCBQeU9iamVjdCAqbmFtZSkKIHsKQEAgLTkzOCw2ICsxMDI4LDE5IEBACiAgICAgcmV0dXJuIG9iajsKIH0KIAorLyogQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8gZ2V0IGEgYnVpbHRpbiBmcm9tIGl0cyBuYW1lICovCitQeU9iamVjdCAqCitfUHlPYmplY3RfR2V0QnVpbHRpbihjb25zdCBjaGFyICpuYW1lKQoreworICAgIFB5T2JqZWN0ICptb2QsICphdHRyOworICAgIG1vZCA9IFB5SW1wb3J0X0ltcG9ydE1vZHVsZSgiYnVpbHRpbnMiKTsKKyAgICBpZiAobW9kID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGF0dHIgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG1vZCwgbmFtZSk7CisgICAgUHlfREVDUkVGKG1vZCk7CisgICAgcmV0dXJuIGF0dHI7Cit9CisKIC8qIEhlbHBlciB1c2VkIHdoZW4gdGhlIF9fbmV4dF9fIG1ldGhvZCBpcyByZW1vdmVkIGZyb20gYSB0eXBlOgogICAgdHBfaXRlcm5leHQgaXMgbmV2ZXIgTlVMTCBhbmQgY2FuIGJlIHNhZmVseSBjYWxsZWQgd2l0aG91dCBjaGVja2luZwogICAgb24gZXZlcnkgaXRlcmF0aW9uLgpAQCAtOTg2LDcgKzEwODksNiBAQAogICAgICAgICBmID0gZGVzY3ItPm9iX3R5cGUtPnRwX2Rlc2NyX2dldDsKICAgICAgICAgaWYgKGYgIT0gTlVMTCAmJiBQeURlc2NyX0lzRGF0YShkZXNjcikpIHsKICAgICAgICAgICAgIHJlcyA9IGYoZGVzY3IsIG9iaiwgKFB5T2JqZWN0ICopb2JqLT5vYl90eXBlKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihkZXNjcik7CiAgICAgICAgICAgICBnb3RvIGRvbmU7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDE3LDcgKzExMTksNiBAQAogICAgICAgICByZXMgPSBQeURpY3RfR2V0SXRlbShkaWN0LCBuYW1lKTsKICAgICAgICAgaWYgKHJlcyAhPSBOVUxMKSB7CiAgICAgICAgICAgICBQeV9JTkNSRUYocmVzKTsKLSAgICAgICAgICAgIFB5X1hERUNSRUYoZGVzY3IpOwogICAgICAgICAgICAgUHlfREVDUkVGKGRpY3QpOwogICAgICAgICAgICAgZ290byBkb25lOwogICAgICAgICB9CkBAIC0xMDI2LDEzICsxMTI3LDEyIEBACiAKICAgICBpZiAoZiAhPSBOVUxMKSB7CiAgICAgICAgIHJlcyA9IGYoZGVzY3IsIG9iaiwgKFB5T2JqZWN0ICopUHlfVFlQRShvYmopKTsKLSAgICAgICAgUHlfREVDUkVGKGRlc2NyKTsKICAgICAgICAgZ290byBkb25lOwogICAgIH0KIAogICAgIGlmIChkZXNjciAhPSBOVUxMKSB7CiAgICAgICAgIHJlcyA9IGRlc2NyOwotICAgICAgICAvKiBkZXNjciB3YXMgYWxyZWFkeSBpbmNyZWZlZCBhYm92ZSAqLworICAgICAgICBkZXNjciA9IE5VTEw7CiAgICAgICAgIGdvdG8gZG9uZTsKICAgICB9CiAKQEAgLTEwNDAsNiArMTE0MCw3IEBACiAgICAgICAgICAgICAgICAgICInJS41MHMnIG9iamVjdCBoYXMgbm8gYXR0cmlidXRlICclVSciLAogICAgICAgICAgICAgICAgICB0cC0+dHBfbmFtZSwgbmFtZSk7CiAgIGRvbmU6CisgICAgUHlfWERFQ1JFRihkZXNjcik7CiAgICAgUHlfREVDUkVGKG5hbWUpOwogICAgIHJldHVybiByZXM7CiB9CkBAIC0xMDY2LDE1ICsxMTY3LDE1IEBACiAgICAgICAgICAgICAgICAgICAgICBuYW1lLT5vYl90eXBlLT50cF9uYW1lKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KLSAgICBlbHNlCi0gICAgICAgIFB5X0lOQ1JFRihuYW1lKTsKIAotICAgIGlmICh0cC0+dHBfZGljdCA9PSBOVUxMKSB7Ci0gICAgICAgIGlmIChQeVR5cGVfUmVhZHkodHApIDwgMCkKLSAgICAgICAgICAgIGdvdG8gZG9uZTsKLSAgICB9CisgICAgaWYgKHRwLT50cF9kaWN0ID09IE5VTEwgJiYgUHlUeXBlX1JlYWR5KHRwKSA8IDApCisgICAgICAgIHJldHVybiAtMTsKKworICAgIFB5X0lOQ1JFRihuYW1lKTsKIAogICAgIGRlc2NyID0gX1B5VHlwZV9Mb29rdXAodHAsIG5hbWUpOworICAgIFB5X1hJTkNSRUYoZGVzY3IpOworCiAgICAgZiA9IE5VTEw7CiAgICAgaWYgKGRlc2NyICE9IE5VTEwpIHsKICAgICAgICAgZiA9IGRlc2NyLT5vYl90eXBlLT50cF9kZXNjcl9zZXQ7CkBAIC0xMDg3LDEzICsxMTg4LDEwIEBACiAgICAgaWYgKGRpY3QgPT0gTlVMTCkgewogICAgICAgICBkaWN0cHRyID0gX1B5T2JqZWN0X0dldERpY3RQdHIob2JqKTsKICAgICAgICAgaWYgKGRpY3RwdHIgIT0gTlVMTCkgewotICAgICAgICAgICAgZGljdCA9ICpkaWN0cHRyOwotICAgICAgICAgICAgaWYgKGRpY3QgPT0gTlVMTCAmJiB2YWx1ZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgZGljdCA9IFB5RGljdF9OZXcoKTsKLSAgICAgICAgICAgICAgICBpZiAoZGljdCA9PSBOVUxMKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgICAgICAgICAgICAgKmRpY3RwdHIgPSBkaWN0OwotICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzID0gX1B5T2JqZWN0RGljdF9TZXRJdGVtKFB5X1RZUEUob2JqKSwgZGljdHB0ciwgbmFtZSwgdmFsdWUpOworICAgICAgICAgICAgaWYgKHJlcyA8IDAgJiYgUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19LZXlFcnJvcikpCisgICAgICAgICAgICAgICAgUHlFcnJfU2V0T2JqZWN0KFB5RXhjX0F0dHJpYnV0ZUVycm9yLCBuYW1lKTsKKyAgICAgICAgICAgIGdvdG8gZG9uZTsKICAgICAgICAgfQogICAgIH0KICAgICBpZiAoZGljdCAhPSBOVUxMKSB7CkBAIC0xMTAyLDkgKzEyMDAsOSBAQAogICAgICAgICAgICAgcmVzID0gUHlEaWN0X0RlbEl0ZW0oZGljdCwgbmFtZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlcyA9IFB5RGljdF9TZXRJdGVtKGRpY3QsIG5hbWUsIHZhbHVlKTsKKyAgICAgICAgUHlfREVDUkVGKGRpY3QpOwogICAgICAgICBpZiAocmVzIDwgMCAmJiBQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0tleUVycm9yKSkKICAgICAgICAgICAgIFB5RXJyX1NldE9iamVjdChQeUV4Y19BdHRyaWJ1dGVFcnJvciwgbmFtZSk7Ci0gICAgICAgIFB5X0RFQ1JFRihkaWN0KTsKICAgICAgICAgZ290byBkb25lOwogICAgIH0KIApAQCAtMTEyNCw2ICsxMjIyLDcgQEAKICAgICAgICAgICAgICAgICAgIiclLjUwcycgb2JqZWN0IGF0dHJpYnV0ZSAnJVUnIGlzIHJlYWQtb25seSIsCiAgICAgICAgICAgICAgICAgIHRwLT50cF9uYW1lLCBuYW1lKTsKICAgZG9uZToKKyAgICBQeV9YREVDUkVGKGRlc2NyKTsKICAgICBQeV9ERUNSRUYobmFtZSk7CiAgICAgcmV0dXJuIHJlczsKIH0KQEAgLTExMzQsNiArMTIzMywzMiBAQAogICAgIHJldHVybiBfUHlPYmplY3RfR2VuZXJpY1NldEF0dHJXaXRoRGljdChvYmosIG5hbWUsIHZhbHVlLCBOVUxMKTsKIH0KIAoraW50CitQeU9iamVjdF9HZW5lcmljU2V0RGljdChQeU9iamVjdCAqb2JqLCBQeU9iamVjdCAqdmFsdWUsIHZvaWQgKmNvbnRleHQpCit7CisgICAgUHlPYmplY3QgKmRpY3QsICoqZGljdHB0ciA9IF9QeU9iamVjdF9HZXREaWN0UHRyKG9iaik7CisgICAgaWYgKGRpY3RwdHIgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfQXR0cmlidXRlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyBvYmplY3QgaGFzIG5vIF9fZGljdF9fIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKHZhbHVlID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImNhbm5vdCBkZWxldGUgX19kaWN0X18iKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAoIVB5RGljdF9DaGVjayh2YWx1ZSkpIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJfX2RpY3RfXyBtdXN0IGJlIHNldCB0byBhIGRpY3Rpb25hcnksICIKKyAgICAgICAgICAgICAgICAgICAgICJub3QgYSAnJS4yMDBzJyIsIFB5X1RZUEUodmFsdWUpLT50cF9uYW1lKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBkaWN0ID0gKmRpY3RwdHI7CisgICAgUHlfWElOQ1JFRih2YWx1ZSk7CisgICAgKmRpY3RwdHIgPSB2YWx1ZTsKKyAgICBQeV9YREVDUkVGKGRpY3QpOworICAgIHJldHVybiAwOworfQorCiAKIC8qIFRlc3QgYSB2YWx1ZSB1c2VkIGFzIGNvbmRpdGlvbiwgZS5nLiwgaW4gYSBmb3Igb3IgaWYgc3RhdGVtZW50LgogICAgUmV0dXJuIC0xIGlmIGFuIGVycm9yIG9jY3VycmVkICovCkBAIC0xMTg2LDY2ICsxMzExLDYgQEAKICAgICByZXR1cm4geC0+b2JfdHlwZS0+dHBfY2FsbCAhPSBOVUxMOwogfQogCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFB5T2JqZWN0X0RpcigpIGhlbHBlcnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0vKiBIZWxwZXIgZm9yIFB5T2JqZWN0X0Rpci4KLSAgIE1lcmdlIHRoZSBfX2RpY3RfXyBvZiBhY2xhc3MgaW50byBkaWN0LCBhbmQgcmVjdXJzaXZlbHkgYWxzbyBhbGwKLSAgIHRoZSBfX2RpY3RfX3Mgb2YgYWNsYXNzJ3MgYmFzZSBjbGFzc2VzLiAgVGhlIG9yZGVyIG9mIG1lcmdpbmcgaXNuJ3QKLSAgIGRlZmluZWQsIGFzIGl0J3MgZXhwZWN0ZWQgdGhhdCBvbmx5IHRoZSBmaW5hbCBzZXQgb2YgZGljdCBrZXlzIGlzCi0gICBpbnRlcmVzdGluZy4KLSAgIFJldHVybiAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGVycm9yLgotKi8KLQotc3RhdGljIGludAotbWVyZ2VfY2xhc3NfZGljdChQeU9iamVjdCogZGljdCwgUHlPYmplY3QqIGFjbGFzcykKLXsKLSAgICBQeU9iamVjdCAqY2xhc3NkaWN0OwotICAgIFB5T2JqZWN0ICpiYXNlczsKLQotICAgIGFzc2VydChQeURpY3RfQ2hlY2soZGljdCkpOwotICAgIGFzc2VydChhY2xhc3MpOwotCi0gICAgLyogTWVyZ2UgaW4gdGhlIHR5cGUncyBkaWN0IChpZiBhbnkpLiAqLwotICAgIGNsYXNzZGljdCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoYWNsYXNzLCAiX19kaWN0X18iKTsKLSAgICBpZiAoY2xhc3NkaWN0ID09IE5VTEwpCi0gICAgICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGludCBzdGF0dXMgPSBQeURpY3RfVXBkYXRlKGRpY3QsIGNsYXNzZGljdCk7Ci0gICAgICAgIFB5X0RFQ1JFRihjbGFzc2RpY3QpOwotICAgICAgICBpZiAoc3RhdHVzIDwgMCkKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0KLSAgICAvKiBSZWN1cnNpdmVseSBtZXJnZSBpbiB0aGUgYmFzZSB0eXBlcycgKGlmIGFueSkgZGljdHMuICovCi0gICAgYmFzZXMgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGFjbGFzcywgIl9fYmFzZXNfXyIpOwotICAgIGlmIChiYXNlcyA9PSBOVUxMKQotICAgICAgICBQeUVycl9DbGVhcigpOwotICAgIGVsc2UgewotICAgICAgICAvKiBXZSBoYXZlIG5vIGd1YXJhbnRlZSB0aGF0IGJhc2VzIGlzIGEgcmVhbCB0dXBsZSAqLwotICAgICAgICBQeV9zc2l6ZV90IGksIG47Ci0gICAgICAgIG4gPSBQeVNlcXVlbmNlX1NpemUoYmFzZXMpOyAvKiBUaGlzIGJldHRlciBiZSByaWdodCAqLwotICAgICAgICBpZiAobiA8IDApCi0gICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKLSAgICAgICAgICAgICAgICBpbnQgc3RhdHVzOwotICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpiYXNlID0gUHlTZXF1ZW5jZV9HZXRJdGVtKGJhc2VzLCBpKTsKLSAgICAgICAgICAgICAgICBpZiAoYmFzZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihiYXNlcyk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc3RhdHVzID0gbWVyZ2VfY2xhc3NfZGljdChkaWN0LCBiYXNlKTsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYmFzZSk7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKGJhc2VzKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBQeV9ERUNSRUYoYmFzZXMpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KIAogLyogSGVscGVyIGZvciBQeU9iamVjdF9EaXIgd2l0aG91dCBhcmd1bWVudHM6IHJldHVybnMgdGhlIGxvY2FsIHNjb3BlLiAqLwogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTEyNjksMTQwICsxMzM0LDQzIEBACiAgICAgICAgIFB5X0RFQ1JFRihuYW1lcyk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KKyAgICBpZiAoUHlMaXN0X1NvcnQobmFtZXMpKSB7CisgICAgICAgIFB5X0RFQ1JFRihuYW1lcyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KICAgICAvKiB0aGUgbG9jYWxzIGRvbid0IG5lZWQgdG8gYmUgREVDUkVGJ2QgKi8KICAgICByZXR1cm4gbmFtZXM7CiB9CiAKLS8qIEhlbHBlciBmb3IgUHlPYmplY3RfRGlyIG9mIHR5cGUgb2JqZWN0czogcmV0dXJucyBfX2RpY3RfXyBhbmQgX19iYXNlc19fLgotICAgV2UgZGVsaWJlcmF0ZWx5IGRvbid0IHN1Y2sgdXAgaXRzIF9fY2xhc3NfXywgYXMgbWV0aG9kcyBiZWxvbmdpbmcgdG8gdGhlCi0gICBtZXRhY2xhc3Mgd291bGQgcHJvYmFibHkgYmUgbW9yZSBjb25mdXNpbmcgdGhhbiBoZWxwZnVsLgotKi8KLXN0YXRpYyBQeU9iamVjdCAqCi1fc3BlY2lhbGl6ZWRfZGlyX3R5cGUoUHlPYmplY3QgKm9iaikKLXsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLSAgICBQeU9iamVjdCAqZGljdCA9IFB5RGljdF9OZXcoKTsKLQotICAgIGlmIChkaWN0ICE9IE5VTEwgJiYgbWVyZ2VfY2xhc3NfZGljdChkaWN0LCBvYmopID09IDApCi0gICAgICAgIHJlc3VsdCA9IFB5RGljdF9LZXlzKGRpY3QpOwotCi0gICAgUHlfWERFQ1JFRihkaWN0KTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vKiBIZWxwZXIgZm9yIFB5T2JqZWN0X0RpciBvZiBtb2R1bGUgb2JqZWN0czogcmV0dXJucyB0aGUgbW9kdWxlJ3MgX19kaWN0X18uICovCi1zdGF0aWMgUHlPYmplY3QgKgotX3NwZWNpYWxpemVkX2Rpcl9tb2R1bGUoUHlPYmplY3QgKm9iaikKLXsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLSAgICBQeU9iamVjdCAqZGljdCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiX19kaWN0X18iKTsKLQotICAgIGlmIChkaWN0ICE9IE5VTEwpIHsKLSAgICAgICAgaWYgKFB5RGljdF9DaGVjayhkaWN0KSkKLSAgICAgICAgICAgIHJlc3VsdCA9IFB5RGljdF9LZXlzKGRpY3QpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGNvbnN0IGNoYXIgKm5hbWUgPSBQeU1vZHVsZV9HZXROYW1lKG9iaik7Ci0gICAgICAgICAgICBpZiAobmFtZSkKLSAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJS4yMDBzLl9fZGljdF9fIGlzIG5vdCBhIGRpY3Rpb25hcnkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIFB5X1hERUNSRUYoZGljdCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLyogSGVscGVyIGZvciBQeU9iamVjdF9EaXIgb2YgZ2VuZXJpYyBvYmplY3RzOiByZXR1cm5zIF9fZGljdF9fLCBfX2NsYXNzX18sCi0gICBhbmQgcmVjdXJzaXZlbHkgdXAgdGhlIF9fY2xhc3NfXy5fX2Jhc2VzX18gY2hhaW4uCi0qLwotc3RhdGljIFB5T2JqZWN0ICoKLV9nZW5lcmljX2RpcihQeU9iamVjdCAqb2JqKQotewotICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpkaWN0ID0gTlVMTDsKLSAgICBQeU9iamVjdCAqaXRzY2xhc3MgPSBOVUxMOwotCi0gICAgLyogR2V0IF9fZGljdF9fICh3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSBhIHJlYWwgZGljdC4uLikgKi8KLSAgICBkaWN0ID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJfX2RpY3RfXyIpOwotICAgIGlmIChkaWN0ID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICAgICAgZGljdCA9IFB5RGljdF9OZXcoKTsKLSAgICB9Ci0gICAgZWxzZSBpZiAoIVB5RGljdF9DaGVjayhkaWN0KSkgewotICAgICAgICBQeV9ERUNSRUYoZGljdCk7Ci0gICAgICAgIGRpY3QgPSBQeURpY3RfTmV3KCk7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICAvKiBDb3B5IF9fZGljdF9fIHRvIGF2b2lkIG11dGF0aW5nIGl0LiAqLwotICAgICAgICBQeU9iamVjdCAqdGVtcCA9IFB5RGljdF9Db3B5KGRpY3QpOwotICAgICAgICBQeV9ERUNSRUYoZGljdCk7Ci0gICAgICAgIGRpY3QgPSB0ZW1wOwotICAgIH0KLQotICAgIGlmIChkaWN0ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZXJyb3I7Ci0KLSAgICAvKiBNZXJnZSBpbiBhdHRycyByZWFjaGFibGUgZnJvbSBpdHMgY2xhc3MuICovCi0gICAgaXRzY2xhc3MgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIl9fY2xhc3NfXyIpOwotICAgIGlmIChpdHNjbGFzcyA9PSBOVUxMKQotICAgICAgICAvKiBYWFgodG9tZXIpOiBQZXJoYXBzIGZhbGwgYmFjayB0byBvYmotPm9iX3R5cGUgaWYgbm8KLSAgICAgICAgICAgICAgICAgICAgICAgX19jbGFzc19fIGV4aXN0cz8gKi8KLSAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgaWYgKG1lcmdlX2NsYXNzX2RpY3QoZGljdCwgaXRzY2xhc3MpICE9IDApCi0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgIH0KLQotICAgIHJlc3VsdCA9IFB5RGljdF9LZXlzKGRpY3QpOwotICAgIC8qIGZhbGwgdGhyb3VnaCAqLwotZXJyb3I6Ci0gICAgUHlfWERFQ1JFRihpdHNjbGFzcyk7Ci0gICAgUHlfWERFQ1JFRihkaWN0KTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0vKiBIZWxwZXIgZm9yIFB5T2JqZWN0X0Rpcjogb2JqZWN0IGludHJvc3BlY3Rpb24uCi0gICBUaGlzIGNhbGxzIG9uZSBvZiB0aGUgYWJvdmUgc3BlY2lhbGl6ZWQgdmVyc2lvbnMgaWYgbm8gX19kaXJfXyBtZXRob2QKLSAgIGV4aXN0cy4gKi8KKy8qIEhlbHBlciBmb3IgUHlPYmplY3RfRGlyOiBvYmplY3QgaW50cm9zcGVjdGlvbi4gKi8KIHN0YXRpYyBQeU9iamVjdCAqCiBfZGlyX29iamVjdChQeU9iamVjdCAqb2JqKQogewotICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwotICAgIHN0YXRpYyBQeU9iamVjdCAqZGlyX3N0ciA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKmRpcmZ1bmMgPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChvYmosICJfX2Rpcl9fIiwgJmRpcl9zdHIpOworICAgIFB5T2JqZWN0ICpyZXN1bHQsICpzb3J0ZWQ7CisgICAgX1B5X0lERU5USUZJRVIoX19kaXJfXyk7CisgICAgUHlPYmplY3QgKmRpcmZ1bmMgPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChvYmosICZQeUlkX19fZGlyX18pOwogCiAgICAgYXNzZXJ0KG9iaik7CiAgICAgaWYgKGRpcmZ1bmMgPT0gTlVMTCkgewotICAgICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAvKiB1c2UgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiAqLwotICAgICAgICBpZiAoUHlNb2R1bGVfQ2hlY2sob2JqKSkKLSAgICAgICAgICAgIHJlc3VsdCA9IF9zcGVjaWFsaXplZF9kaXJfbW9kdWxlKG9iaik7Ci0gICAgICAgIGVsc2UgaWYgKFB5VHlwZV9DaGVjayhvYmopKQotICAgICAgICAgICAgcmVzdWx0ID0gX3NwZWNpYWxpemVkX2Rpcl90eXBlKG9iaik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9IF9nZW5lcmljX2RpcihvYmopOworICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAib2JqZWN0IGRvZXMgbm90IHByb3ZpZGUgX19kaXJfXyIpOworICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8qIHVzZSBfX2Rpcl9fICovCi0gICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoZGlyZnVuYywgTlVMTCk7Ci0gICAgICAgIFB5X0RFQ1JFRihkaXJmdW5jKTsKLSAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICAgICAgLyogcmVzdWx0IG11c3QgYmUgYSBsaXN0ICovCi0gICAgICAgIC8qIFhYWChnYnJhbmRsKTogY291bGQgYWxzbyBjaGVjayBpZiBhbGwgaXRlbXMgYXJlIHN0cmluZ3MgKi8KLSAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2socmVzdWx0KSkgewotICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiX19kaXJfXygpIG11c3QgcmV0dXJuIGEgbGlzdCwgbm90ICUuMjAwcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShyZXN1bHQpLT50cF9uYW1lKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOwotICAgICAgICAgICAgcmVzdWx0ID0gTlVMTDsKLSAgICAgICAgfQorICAgIC8qIHVzZSBfX2Rpcl9fICovCisgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncyhkaXJmdW5jLCBOVUxMKTsKKyAgICBQeV9ERUNSRUYoZGlyZnVuYyk7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAvKiByZXR1cm4gc29ydGVkKHJlc3VsdCkgKi8KKyAgICBzb3J0ZWQgPSBQeVNlcXVlbmNlX0xpc3QocmVzdWx0KTsKKyAgICBQeV9ERUNSRUYocmVzdWx0KTsKKyAgICBpZiAoc29ydGVkID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChQeUxpc3RfU29ydChzb3J0ZWQpKSB7CisgICAgICAgIFB5X0RFQ1JFRihzb3J0ZWQpOworICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBzb3J0ZWQ7CiB9CiAKIC8qIEltcGxlbWVudGF0aW9uIG9mIGRpcigpIC0tIGlmIG9iaiBpcyBOVUxMLCByZXR1cm5zIHRoZSBuYW1lcyBpbiB0aGUgY3VycmVudApAQCAtMTQxMiwzMSArMTM4MCwxMyBAQAogUHlPYmplY3QgKgogUHlPYmplY3RfRGlyKFB5T2JqZWN0ICpvYmopCiB7Ci0gICAgUHlPYmplY3QgKiByZXN1bHQ7Ci0KLSAgICBpZiAob2JqID09IE5VTEwpCi0gICAgICAgIC8qIG5vIG9iamVjdCAtLSBpbnRyb3NwZWN0IHRoZSBsb2NhbHMgKi8KLSAgICAgICAgcmVzdWx0ID0gX2Rpcl9sb2NhbHMoKTsKLSAgICBlbHNlCi0gICAgICAgIC8qIG9iamVjdCAtLSBpbnRyb3NwZWN0IHRoZSBvYmplY3QgKi8KLSAgICAgICAgcmVzdWx0ID0gX2Rpcl9vYmplY3Qob2JqKTsKLQotICAgIGFzc2VydChyZXN1bHQgPT0gTlVMTCB8fCBQeUxpc3RfQ2hlY2socmVzdWx0KSk7Ci0KLSAgICBpZiAocmVzdWx0ICE9IE5VTEwgJiYgUHlMaXN0X1NvcnQocmVzdWx0KSAhPSAwKSB7Ci0gICAgICAgIC8qIHNvcnRpbmcgdGhlIGxpc3QgZmFpbGVkICovCi0gICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOwotICAgICAgICByZXN1bHQgPSBOVUxMOwotICAgIH0KLQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIChvYmogPT0gTlVMTCkgPyBfZGlyX2xvY2FscygpIDogX2Rpcl9vYmplY3Qob2JqKTsKIH0KIAogLyoKLU5vT2JqZWN0IGlzIHVzYWJsZSBhcyBhIG5vbi1OVUxMIHVuZGVmaW5lZCB2YWx1ZSwgdXNlZCBieSB0aGUgbWFjcm8gTm9uZS4KK05vbmUgaXMgYSBub24tTlVMTCB1bmRlZmluZWQgdmFsdWUuCiBUaGVyZSBpcyAoYW5kIHNob3VsZCBiZSEpIG5vIHdheSB0byBjcmVhdGUgb3RoZXIgb2JqZWN0cyBvZiB0aGlzIHR5cGUsCiBzbyB0aGVyZSBpcyBleGFjdGx5IG9uZSAod2hpY2ggaXMgaW5kZXN0cnVjdGlibGUsIGJ5IHRoZSB3YXkpLgotKFhYWCBUaGlzIHR5cGUgYW5kIHRoZSB0eXBlIG9mIE5vdEltcGxlbWVudGVkIGJlbG93IHNob3VsZCBiZSB1bmlmaWVkLikKICovCiAKIC8qIEFSR1NVU0VEICovCkBAIC0xNDU2LDYgKzE0MDYsNTggQEAKICAgICBQeV9GYXRhbEVycm9yKCJkZWFsbG9jYXRpbmcgTm9uZSIpOwogfQogCitzdGF0aWMgUHlPYmplY3QgKgorbm9uZV9uZXcoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncykKK3sKKyAgICBpZiAoUHlUdXBsZV9HRVRfU0laRShhcmdzKSB8fCAoa3dhcmdzICYmIFB5RGljdF9TaXplKGt3YXJncykpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJOb25lVHlwZSB0YWtlcyBubyBhcmd1bWVudHMiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIFB5X1JFVFVSTl9OT05FOworfQorCitzdGF0aWMgaW50Citub25lX2Jvb2woUHlPYmplY3QgKnYpCit7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBQeU51bWJlck1ldGhvZHMgbm9uZV9hc19udW1iZXIgPSB7CisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5iX2FkZCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuYl9zdWJ0cmFjdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuYl9tdWx0aXBseSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuYl9yZW1haW5kZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfZGl2bW9kICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5iX3Bvd2VyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5iX25lZ2F0aXZlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5iX3Bvc2l0aXZlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5iX2Fic29sdXRlICovCisgICAgKGlucXVpcnkpbm9uZV9ib29sLCAgICAgICAgIC8qIG5iX2Jvb2wgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW52ZXJ0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5iX2xzaGlmdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuYl9yc2hpZnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfYW5kICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5iX3hvciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuYl9vciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuYl9pbnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfcmVzZXJ2ZWQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfZmxvYXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW5wbGFjZV9hZGQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW5wbGFjZV9zdWJ0cmFjdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuYl9pbnBsYWNlX211bHRpcGx5ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5iX2lucGxhY2VfcmVtYWluZGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5iX2lucGxhY2VfcG93ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW5wbGFjZV9sc2hpZnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW5wbGFjZV9yc2hpZnQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW5wbGFjZV9hbmQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW5wbGFjZV94b3IgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW5wbGFjZV9vciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuYl9mbG9vcl9kaXZpZGUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfdHJ1ZV9kaXZpZGUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW5wbGFjZV9mbG9vcl9kaXZpZGUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbmJfaW5wbGFjZV90cnVlX2RpdmlkZSAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBuYl9pbmRleCAqLworfTsKIAogc3RhdGljIFB5VHlwZU9iamVjdCBQeU5vbmVfVHlwZSA9IHsKICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoJlB5VHlwZV9UeXBlLCAwKQpAQCAtMTQ2OCwxMCArMTQ3MCwzNCBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRyKi8KICAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfcmVzZXJ2ZWQqLwogICAgIG5vbmVfcmVwciwgICAgICAgICAgLyp0cF9yZXByKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfYXNfbnVtYmVyKi8KKyAgICAmbm9uZV9hc19udW1iZXIsICAgIC8qdHBfYXNfbnVtYmVyKi8KICAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfYXNfc2VxdWVuY2UqLwogICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9hc19tYXBwaW5nKi8KICAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfaGFzaCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9jYWxsICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX3N0ciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9nZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9zZXRhdHRybyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9hc19idWZmZXIgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQsIC8qdHBfZmxhZ3MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX3RyYXZlcnNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2NsZWFyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX3dlYWtsaXN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2l0ZXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfaXRlcm5leHQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfbWV0aG9kcyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9tZW1iZXJzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2dldHNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9iYXNlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2RpY3QgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfZGVzY3JfZ2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2Rlc2NyX3NldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9kaWN0b2Zmc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2luaXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfYWxsb2MgKi8KKyAgICBub25lX25ldywgICAgICAgICAgIC8qdHBfbmV3ICovCiB9OwogCiBQeU9iamVjdCBfUHlfTm9uZVN0cnVjdCA9IHsKQEAgLTE0ODgsNiArMTUxNCwxNiBAQAogICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZygiTm90SW1wbGVtZW50ZWQiKTsKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK25vdGltcGxlbWVudGVkX25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIGlmIChQeVR1cGxlX0dFVF9TSVpFKGFyZ3MpIHx8IChrd2FyZ3MgJiYgUHlEaWN0X1NpemUoa3dhcmdzKSkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIk5vdEltcGxlbWVudGVkVHlwZSB0YWtlcyBubyBhcmd1bWVudHMiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKK30KKwogc3RhdGljIFB5VHlwZU9iamVjdCBQeU5vdEltcGxlbWVudGVkX1R5cGUgPSB7CiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKCZQeVR5cGVfVHlwZSwgMCkKICAgICAiTm90SW1wbGVtZW50ZWRUeXBlIiwKQEAgLTE1MDMsNiArMTUzOSwzMCBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9hc19zZXF1ZW5jZSovCiAgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2FzX21hcHBpbmcqLwogICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9oYXNoICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2NhbGwgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfc3RyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2dldGF0dHJvICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX3NldGF0dHJvICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2FzX2J1ZmZlciAqLworICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgLyp0cF9mbGFncyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9kb2MgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfdHJhdmVyc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfY2xlYXIgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfcmljaGNvbXBhcmUgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfaXRlciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9pdGVybmV4dCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9tZXRob2RzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX21lbWJlcnMgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0c2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2Jhc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfZGljdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9kZXNjcl9nZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfZGVzY3Jfc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAvKnRwX2RpY3RvZmZzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgIC8qdHBfaW5pdCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgLyp0cF9hbGxvYyAqLworICAgIG5vdGltcGxlbWVudGVkX25ldywgLyp0cF9uZXcgKi8KIH07CiAKIFB5T2JqZWN0IF9QeV9Ob3RJbXBsZW1lbnRlZFN0cnVjdCA9IHsKQEAgLTE1ODUsNiArMTY0NSw5IEBACiAgICAgaWYgKFB5VHlwZV9SZWFkeSgmUHlQcm9wZXJ0eV9UeXBlKSA8IDApCiAgICAgICAgIFB5X0ZhdGFsRXJyb3IoIkNhbid0IGluaXRpYWxpemUgcHJvcGVydHkgdHlwZSIpOwogCisgICAgaWYgKFB5VHlwZV9SZWFkeSgmX1B5TWFuYWdlZEJ1ZmZlcl9UeXBlKSA8IDApCisgICAgICAgIFB5X0ZhdGFsRXJyb3IoIkNhbid0IGluaXRpYWxpemUgbWFuYWdlZCBidWZmZXIgdHlwZSIpOworCiAgICAgaWYgKFB5VHlwZV9SZWFkeSgmUHlNZW1vcnlWaWV3X1R5cGUpIDwgMCkKICAgICAgICAgUHlfRmF0YWxFcnJvcigiQ2FuJ3QgaW5pdGlhbGl6ZSBtZW1vcnl2aWV3IHR5cGUiKTsKIApAQCAtMTY0NCw2ICsxNzA3LDkgQEAKIAogICAgIGlmIChQeVR5cGVfUmVhZHkoJlB5WmlwX1R5cGUpIDwgMCkKICAgICAgICAgUHlfRmF0YWxFcnJvcigiQ2FuJ3QgaW5pdGlhbGl6ZSB6aXAgdHlwZSIpOworCisgICAgaWYgKFB5VHlwZV9SZWFkeSgmX1B5TmFtZXNwYWNlX1R5cGUpIDwgMCkKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiQ2FuJ3QgaW5pdGlhbGl6ZSBuYW1lc3BhY2UgdHlwZSIpOwogfQogCiAKQEAgLTE3ODYsNiArMTg1MiwxOCBAQAogICAgIFB5TWVtX0ZSRUUocCk7CiB9CiAKK3ZvaWQKK19QeU9iamVjdF9EZWJ1Z1R5cGVTdGF0cyhGSUxFICpvdXQpCit7CisgICAgX1B5Q0Z1bmN0aW9uX0RlYnVnTWFsbG9jU3RhdHMob3V0KTsKKyAgICBfUHlEaWN0X0RlYnVnTWFsbG9jU3RhdHMob3V0KTsKKyAgICBfUHlGbG9hdF9EZWJ1Z01hbGxvY1N0YXRzKG91dCk7CisgICAgX1B5RnJhbWVfRGVidWdNYWxsb2NTdGF0cyhvdXQpOworICAgIF9QeUxpc3RfRGVidWdNYWxsb2NTdGF0cyhvdXQpOworICAgIF9QeU1ldGhvZF9EZWJ1Z01hbGxvY1N0YXRzKG91dCk7CisgICAgX1B5U2V0X0RlYnVnTWFsbG9jU3RhdHMob3V0KTsKKyAgICBfUHlUdXBsZV9EZWJ1Z01hbGxvY1N0YXRzKG91dCk7Cit9CiAKIC8qIFRoZXNlIG1ldGhvZHMgYXJlIHVzZWQgdG8gY29udHJvbCBpbmZpbml0ZSByZWN1cnNpb24gaW4gcmVwciwgc3RyLCBwcmludCwKICAgIGV0Yy4gIENvbnRhaW5lciBvYmplY3RzIHRoYXQgbWF5IHJlY3Vyc2l2ZWx5IGNvbnRhaW4gdGhlbXNlbHZlcywKZGlmZiAtLWdpdCBhL09iamVjdHMvb2JtYWxsb2MuYyBiL09iamVjdHMvb2JtYWxsb2MuYwppbmRleCAzOTE2MjYyLi45MjU0ODIxIDEwMDY0NAotLS0gYS9PYmplY3RzL29ibWFsbG9jLmMKKysrIGIvT2JqZWN0cy9vYm1hbGxvYy5jCkBAIC0yLDYgKzIsMTMgQEAKIAogI2lmZGVmIFdJVEhfUFlNQUxMT0MKIAorI2lmZGVmIEhBVkVfTU1BUAorICNpbmNsdWRlIDxzeXMvbW1hbi5oPgorICNpZmRlZiBNQVBfQU5PTllNT1VTCisgICNkZWZpbmUgQVJFTkFTX1VTRV9NTUFQCisgI2VuZGlmCisjZW5kaWYKKwogI2lmZGVmIFdJVEhfVkFMR1JJTkQKICNpbmNsdWRlIDx2YWxncmluZC92YWxncmluZC5oPgogCkBAIC03NSw3ICs4Miw4IEBACiAgKiBBbGxvY2F0aW9uIHN0cmF0ZWd5IGFic3RyYWN0OgogICoKICAqIEZvciBzbWFsbCByZXF1ZXN0cywgdGhlIGFsbG9jYXRvciBzdWItYWxsb2NhdGVzIDxCaWc+IGJsb2NrcyBvZiBtZW1vcnkuCi0gKiBSZXF1ZXN0cyBncmVhdGVyIHRoYW4gMjU2IGJ5dGVzIGFyZSByb3V0ZWQgdG8gdGhlIHN5c3RlbSdzIGFsbG9jYXRvci4KKyAqIFJlcXVlc3RzIGdyZWF0ZXIgdGhhbiBTTUFMTF9SRVFVRVNUX1RIUkVTSE9MRCBieXRlcyBhcmUgcm91dGVkIHRvIHRoZQorICogc3lzdGVtJ3MgYWxsb2NhdG9yLgogICoKICAqIFNtYWxsIHJlcXVlc3RzIGFyZSBncm91cGVkIGluIHNpemUgY2xhc3NlcyBzcGFjZWQgOCBieXRlcyBhcGFydCwgZHVlCiAgKiB0byB0aGUgcmVxdWlyZWQgdmFsaWQgYWxpZ25tZW50IG9mIHRoZSByZXR1cm5lZCBhZGRyZXNzLiBSZXF1ZXN0cyBvZgpAQCAtMTA3LDEwICsxMTUsMTEgQEAKICAqICAgICAgIDU3LTY0ICAgICAgICAgICAgICAgICAgIDY0ICAgICAgICAgICAgICAgICAgICAgICA3CiAgKiAgICAgICA2NS03MiAgICAgICAgICAgICAgICAgICA3MiAgICAgICAgICAgICAgICAgICAgICAgOAogICogICAgICAgIC4uLiAgICAgICAgICAgICAgICAgICAuLi4gICAgICAgICAgICAgICAgICAgICAuLi4KLSAqICAgICAgMjQxLTI0OCAgICAgICAgICAgICAgICAgMjQ4ICAgICAgICAgICAgICAgICAgICAgIDMwCi0gKiAgICAgIDI0OS0yNTYgICAgICAgICAgICAgICAgIDI1NiAgICAgICAgICAgICAgICAgICAgICAzMQorICogICAgICA0OTctNTA0ICAgICAgICAgICAgICAgICA1MDQgICAgICAgICAgICAgICAgICAgICAgNjIKKyAqICAgICAgNTA1LTUxMiAgICAgICAgICAgICAgICAgNTEyICAgICAgICAgICAgICAgICAgICAgIDYzCiAgKgotICogICAgICAwLCAyNTcgYW5kIHVwOiByb3V0ZWQgdG8gdGhlIHVuZGVybHlpbmcgYWxsb2NhdG9yLgorICogICAgICAwLCBTTUFMTF9SRVFVRVNUX1RIUkVTSE9MRCArIDEgYW5kIHVwOiByb3V0ZWQgdG8gdGhlIHVuZGVybHlpbmcKKyAqICAgICAgYWxsb2NhdG9yLgogICovCiAKIC8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLwpAQCAtMTM5LDE0ICsxNDgsMTcgQEAKICAqIHNtYWxsIGVub3VnaCBpbiBvcmRlciB0byB1c2UgcHJlYWxsb2NhdGVkIG1lbW9yeSBwb29scy4gWW91IGNhbiB0dW5lCiAgKiB0aGlzIHZhbHVlIGFjY29yZGluZyB0byB5b3VyIGFwcGxpY2F0aW9uIGJlaGF2aW91ciBhbmQgbWVtb3J5IG5lZWRzLgogICoKKyAqIE5vdGU6IGEgc2l6ZSB0aHJlc2hvbGQgb2YgNTEyIGd1YXJhbnRlZXMgdGhhdCBuZXdseSBjcmVhdGVkIGRpY3Rpb25hcmllcworICogd2lsbCBiZSBhbGxvY2F0ZWQgZnJvbSBwcmVhbGxvY2F0ZWQgbWVtb3J5IHBvb2xzIG9uIDY0LWJpdC4KKyAqCiAgKiBUaGUgZm9sbG93aW5nIGludmFyaWFudHMgbXVzdCBob2xkOgotICogICAgICAxKSBBTElHTk1FTlQgPD0gU01BTExfUkVRVUVTVF9USFJFU0hPTEQgPD0gMjU2CisgKiAgICAgIDEpIEFMSUdOTUVOVCA8PSBTTUFMTF9SRVFVRVNUX1RIUkVTSE9MRCA8PSA1MTIKICAqICAgICAgMikgU01BTExfUkVRVUVTVF9USFJFU0hPTEQgaXMgZXZlbmx5IGRpdmlzaWJsZSBieSBBTElHTk1FTlQKICAqCiAgKiBBbHRob3VnaCBub3QgcmVxdWlyZWQsIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UgYW5kIHNwYWNlIGVmZmljaWVuY3ksCiAgKiBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IFNNQUxMX1JFUVVFU1RfVEhSRVNIT0xEIGlzIHNldCB0byBhIHBvd2VyIG9mIDIuCiAgKi8KLSNkZWZpbmUgU01BTExfUkVRVUVTVF9USFJFU0hPTEQgMjU2CisjZGVmaW5lIFNNQUxMX1JFUVVFU1RfVEhSRVNIT0xEIDUxMgogI2RlZmluZSBOQl9TTUFMTF9TSVpFX0NMQVNTRVMgICAoU01BTExfUkVRVUVTVF9USFJFU0hPTEQgLyBBTElHTk1FTlQpCiAKIC8qCkBAIC0xNzQsMTUgKzE4NiwxNSBAQAogLyoKICAqIFRoZSBhbGxvY2F0b3Igc3ViLWFsbG9jYXRlcyA8QmlnPiBibG9ja3Mgb2YgbWVtb3J5IChjYWxsZWQgYXJlbmFzKSBhbGlnbmVkCiAgKiBvbiBhIHBhZ2UgYm91bmRhcnkuIFRoaXMgaXMgYSByZXNlcnZlZCB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgZm9yIHRoZQotICogY3VycmVudCBwcm9jZXNzIChvYnRhaW5lZCB0aHJvdWdoIGEgbWFsbG9jIGNhbGwpLiBJbiBubyB3YXkgdGhpcyBtZWFucwotICogdGhhdCB0aGUgbWVtb3J5IGFyZW5hcyB3aWxsIGJlIHVzZWQgZW50aXJlbHkuIEEgbWFsbG9jKDxCaWc+KSBpcyB1c3VhbGx5Ci0gKiBhbiBhZGRyZXNzIHJhbmdlIHJlc2VydmF0aW9uIGZvciA8QmlnPiBieXRlcywgdW5sZXNzIGFsbCBwYWdlcyB3aXRoaW4gdGhpcwotICogc3BhY2UgYXJlIHJlZmVyZW5jZWQgc3Vic2VxdWVudGx5LiBTbyBtYWxsb2MnaW5nIGJpZyBibG9ja3MgYW5kIG5vdCB1c2luZwotICogdGhlbSBkb2VzIG5vdCBtZWFuICJ3YXN0aW5nIG1lbW9yeSIuIEl0J3MgYW4gYWRkcmVzc2FibGUgcmFuZ2Ugd2FzdGFnZS4uLgorICogY3VycmVudCBwcm9jZXNzIChvYnRhaW5lZCB0aHJvdWdoIGEgbWFsbG9jKCkvbW1hcCgpIGNhbGwpLiBJbiBubyB3YXkgdGhpcworICogbWVhbnMgdGhhdCB0aGUgbWVtb3J5IGFyZW5hcyB3aWxsIGJlIHVzZWQgZW50aXJlbHkuIEEgbWFsbG9jKDxCaWc+KSBpcworICogdXN1YWxseSBhbiBhZGRyZXNzIHJhbmdlIHJlc2VydmF0aW9uIGZvciA8QmlnPiBieXRlcywgdW5sZXNzIGFsbCBwYWdlcyB3aXRoaW4KKyAqIHRoaXMgc3BhY2UgYXJlIHJlZmVyZW5jZWQgc3Vic2VxdWVudGx5LiBTbyBtYWxsb2MnaW5nIGJpZyBibG9ja3MgYW5kIG5vdAorICogdXNpbmcgdGhlbSBkb2VzIG5vdCBtZWFuICJ3YXN0aW5nIG1lbW9yeSIuIEl0J3MgYW4gYWRkcmVzc2FibGUgcmFuZ2UKKyAqIHdhc3RhZ2UuLi4KICAqCi0gKiBUaGVyZWZvcmUsIGFsbG9jYXRpbmcgYXJlbmFzIHdpdGggbWFsbG9jIGlzIG5vdCBvcHRpbWFsLCBiZWNhdXNlIHRoZXJlIGlzCi0gKiBzb21lIGFkZHJlc3Mgc3BhY2Ugd2FzdGFnZSwgYnV0IHRoaXMgaXMgdGhlIG1vc3QgcG9ydGFibGUgd2F5IHRvIHJlcXVlc3QKLSAqIG1lbW9yeSBmcm9tIHRoZSBzeXN0ZW0gYWNyb3NzIHZhcmlvdXMgcGxhdGZvcm1zLgorICogQXJlbmFzIGFyZSBhbGxvY2F0ZWQgd2l0aCBtbWFwKCkgb24gc3lzdGVtcyBzdXBwb3J0aW5nIGFub255bW91cyBtZW1vcnkKKyAqIG1hcHBpbmdzIHRvIHJlZHVjZSBoZWFwIGZyYWdtZW50YXRpb24uCiAgKi8KICNkZWZpbmUgQVJFTkFfU0laRSAgICAgICAgICAgICAgKDI1NiA8PCAxMCkgICAgIC8qIDI1NktCICovCiAKQEAgLTQ0MCw2ICs0NTIsOSBAQAogICAgICwgUFQoNDgpLCBQVCg0OSksIFBUKDUwKSwgUFQoNTEpLCBQVCg1MiksIFBUKDUzKSwgUFQoNTQpLCBQVCg1NSkKICNpZiBOQl9TTUFMTF9TSVpFX0NMQVNTRVMgPiA1NgogICAgICwgUFQoNTYpLCBQVCg1NyksIFBUKDU4KSwgUFQoNTkpLCBQVCg2MCksIFBUKDYxKSwgUFQoNjIpLCBQVCg2MykKKyNpZiBOQl9TTUFMTF9TSVpFX0NMQVNTRVMgPiA2NAorI2Vycm9yICJOQl9TTUFMTF9TSVpFX0NMQVNTRVMgc2hvdWxkIGJlIGxlc3MgdGhhbiA2NCIKKyNlbmRpZiAvKiBOQl9TTUFMTF9TSVpFX0NMQVNTRVMgPiA2NCAqLwogI2VuZGlmIC8qIE5CX1NNQUxMX1NJWkVfQ0xBU1NFUyA+IDU2ICovCiAjZW5kaWYgLyogTkJfU01BTExfU0laRV9DTEFTU0VTID4gNDggKi8KICNlbmRpZiAvKiBOQl9TTUFMTF9TSVpFX0NMQVNTRVMgPiA0MCAqLwpAQCAtNTA4LDEyICs1MjMsMTAgQEAKIC8qIE51bWJlciBvZiBhcmVuYXMgYWxsb2NhdGVkIHRoYXQgaGF2ZW4ndCBiZWVuIGZyZWUoKSdkLiAqLwogc3RhdGljIHNpemVfdCBuYXJlbmFzX2N1cnJlbnRseV9hbGxvY2F0ZWQgPSAwOwogCi0jaWZkZWYgUFlNQUxMT0NfREVCVUcKIC8qIFRvdGFsIG51bWJlciBvZiB0aW1lcyBtYWxsb2MoKSBjYWxsZWQgdG8gYWxsb2NhdGUgYW4gYXJlbmEuICovCiBzdGF0aWMgc2l6ZV90IG50aW1lc19hcmVuYV9hbGxvY2F0ZWQgPSAwOwogLyogSGlnaCB3YXRlciBtYXJrIChtYXggdmFsdWUgZXZlciBzZWVuKSBmb3IgbmFyZW5hc19jdXJyZW50bHlfYWxsb2NhdGVkLiAqLwogc3RhdGljIHNpemVfdCBuYXJlbmFzX2hpZ2h3YXRlciA9IDA7Ci0jZW5kaWYKIAogLyogQWxsb2NhdGUgYSBuZXcgYXJlbmEuICBJZiB3ZSBydW4gb3V0IG9mIG1lbW9yeSwgcmV0dXJuIE5VTEwuICBFbHNlCiAgKiBhbGxvY2F0ZSBhIG5ldyBhcmVuYSwgYW5kIHJldHVybiB0aGUgYWRkcmVzcyBvZiBhbiBhcmVuYV9vYmplY3QKQEAgLTUyNSwxMCArNTM4LDEyIEBACiB7CiAgICAgc3RydWN0IGFyZW5hX29iamVjdCogYXJlbmFvYmo7CiAgICAgdWludCBleGNlc3M7ICAgICAgICAvKiBudW1iZXIgb2YgYnl0ZXMgYWJvdmUgcG9vbCBhbGlnbm1lbnQgKi8KKyAgICB2b2lkICphZGRyZXNzOworICAgIGludCBlcnI7CiAKICNpZmRlZiBQWU1BTExPQ19ERUJVRwogICAgIGlmIChQeV9HRVRFTlYoIlBZVEhPTk1BTExPQ1NUQVRTIikpCi0gICAgICAgIF9QeU9iamVjdF9EZWJ1Z01hbGxvY1N0YXRzKCk7CisgICAgICAgIF9QeU9iamVjdF9EZWJ1Z01hbGxvY1N0YXRzKHN0ZGVycik7CiAjZW5kaWYKICAgICBpZiAodW51c2VkX2FyZW5hX29iamVjdHMgPT0gTlVMTCkgewogICAgICAgICB1aW50IGk7CkBAIC01NzcsOCArNTkyLDE1IEBACiAgICAgYXJlbmFvYmogPSB1bnVzZWRfYXJlbmFfb2JqZWN0czsKICAgICB1bnVzZWRfYXJlbmFfb2JqZWN0cyA9IGFyZW5hb2JqLT5uZXh0YXJlbmE7CiAgICAgYXNzZXJ0KGFyZW5hb2JqLT5hZGRyZXNzID09IDApOwotICAgIGFyZW5hb2JqLT5hZGRyZXNzID0gKHVwdHIpbWFsbG9jKEFSRU5BX1NJWkUpOwotICAgIGlmIChhcmVuYW9iai0+YWRkcmVzcyA9PSAwKSB7CisjaWZkZWYgQVJFTkFTX1VTRV9NTUFQCisgICAgYWRkcmVzcyA9IG1tYXAoTlVMTCwgQVJFTkFfU0laRSwgUFJPVF9SRUFEfFBST1RfV1JJVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BUF9QUklWQVRFfE1BUF9BTk9OWU1PVVMsIC0xLCAwKTsKKyAgICBlcnIgPSAoYWRkcmVzcyA9PSBNQVBfRkFJTEVEKTsKKyNlbHNlCisgICAgYWRkcmVzcyA9IG1hbGxvYyhBUkVOQV9TSVpFKTsKKyAgICBlcnIgPSAoYWRkcmVzcyA9PSAwKTsKKyNlbmRpZgorICAgIGlmIChlcnIpIHsKICAgICAgICAgLyogVGhlIGFsbG9jYXRpb24gZmFpbGVkOiByZXR1cm4gTlVMTCBhZnRlciBwdXR0aW5nIHRoZQogICAgICAgICAgKiBhcmVuYW9iaiBiYWNrLgogICAgICAgICAgKi8KQEAgLTU4NiwxMyArNjA4LDEyIEBACiAgICAgICAgIHVudXNlZF9hcmVuYV9vYmplY3RzID0gYXJlbmFvYmo7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KKyAgICBhcmVuYW9iai0+YWRkcmVzcyA9ICh1cHRyKWFkZHJlc3M7CiAKICAgICArK25hcmVuYXNfY3VycmVudGx5X2FsbG9jYXRlZDsKLSNpZmRlZiBQWU1BTExPQ19ERUJVRwogICAgICsrbnRpbWVzX2FyZW5hX2FsbG9jYXRlZDsKICAgICBpZiAobmFyZW5hc19jdXJyZW50bHlfYWxsb2NhdGVkID4gbmFyZW5hc19oaWdod2F0ZXIpCiAgICAgICAgIG5hcmVuYXNfaGlnaHdhdGVyID0gbmFyZW5hc19jdXJyZW50bHlfYWxsb2NhdGVkOwotI2VuZGlmCiAgICAgYXJlbmFvYmotPmZyZWVwb29scyA9IE5VTEw7CiAgICAgLyogcG9vbF9hZGRyZXNzIDwtIGZpcnN0IHBvb2wtYWxpZ25lZCBhZGRyZXNzIGluIHRoZSBhcmVuYQogICAgICAgIG5mcmVlcG9vbHMgPC0gbnVtYmVyIG9mIHdob2xlIHBvb2xzIHRoYXQgZml0IGFmdGVyIGFsaWdubWVudCAqLwpAQCAtMTA1NCw3ICsxMDc1LDExIEBACiAgICAgICAgICAgICAgICAgdW51c2VkX2FyZW5hX29iamVjdHMgPSBhbzsKIAogICAgICAgICAgICAgICAgIC8qIEZyZWUgdGhlIGVudGlyZSBhcmVuYS4gKi8KKyNpZmRlZiBBUkVOQVNfVVNFX01NQVAKKyAgICAgICAgICAgICAgICBtdW5tYXAoKHZvaWQgKilhby0+YWRkcmVzcywgQVJFTkFfU0laRSk7CisjZWxzZQogICAgICAgICAgICAgICAgIGZyZWUoKHZvaWQgKilhby0+YWRkcmVzcyk7CisjZW5kaWYKICAgICAgICAgICAgICAgICBhby0+YWRkcmVzcyA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgLyogbWFyayB1bmFzc29jaWF0ZWQgKi8KICAgICAgICAgICAgICAgICAtLW5hcmVuYXNfY3VycmVudGx5X2FsbG9jYXRlZDsKIApAQCAtMTY5NCwxNyArMTcxOSwxOSBAQAogICAgIH0KIH0KIAorI2VuZGlmICAvKiBQWU1BTExPQ19ERUJVRyAqLworCiBzdGF0aWMgc2l6ZV90Ci1wcmludG9uZShjb25zdCBjaGFyKiBtc2csIHNpemVfdCB2YWx1ZSkKK3ByaW50b25lKEZJTEUgKm91dCwgY29uc3QgY2hhciogbXNnLCBzaXplX3QgdmFsdWUpCiB7CiAgICAgaW50IGksIGs7CiAgICAgY2hhciBidWZbMTAwXTsKICAgICBzaXplX3Qgb3JpZ3ZhbHVlID0gdmFsdWU7CiAKLSAgICBmcHV0cyhtc2csIHN0ZGVycik7CisgICAgZnB1dHMobXNnLCBvdXQpOwogICAgIGZvciAoaSA9IChpbnQpc3RybGVuKG1zZyk7IGkgPCAzNTsgKytpKQotICAgICAgICBmcHV0YygnICcsIHN0ZGVycik7Ci0gICAgZnB1dGMoJz0nLCBzdGRlcnIpOworICAgICAgICBmcHV0YygnICcsIG91dCk7CisgICAgZnB1dGMoJz0nLCBvdXQpOwogCiAgICAgLyogV3JpdGUgdGhlIHZhbHVlIHdpdGggY29tbWFzLiAqLwogICAgIGkgPSAyMjsKQEAgLTE3MjUsMTcgKzE3NTIsMzMgQEAKIAogICAgIHdoaWxlIChpID49IDApCiAgICAgICAgIGJ1ZltpLS1dID0gJyAnOwotICAgIGZwdXRzKGJ1Ziwgc3RkZXJyKTsKKyAgICBmcHV0cyhidWYsIG91dCk7CiAKICAgICByZXR1cm4gb3JpZ3ZhbHVlOwogfQogCi0vKiBQcmludCBzdW1tYXJ5IGluZm8gdG8gc3RkZXJyIGFib3V0IHRoZSBzdGF0ZSBvZiBweW1hbGxvYydzIHN0cnVjdHVyZXMuCit2b2lkCitfUHlEZWJ1Z0FsbG9jYXRvclN0YXRzKEZJTEUgKm91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqYmxvY2tfbmFtZSwgaW50IG51bV9ibG9ja3MsIHNpemVfdCBzaXplb2ZfYmxvY2spCit7CisgICAgY2hhciBidWYxWzEyOF07CisgICAgY2hhciBidWYyWzEyOF07CisgICAgUHlPU19zbnByaW50ZihidWYxLCBzaXplb2YoYnVmMSksCisgICAgICAgICAgICAgICAgICAiJWQgJXNzICogJXpkIGJ5dGVzIGVhY2giLAorICAgICAgICAgICAgICAgICAgbnVtX2Jsb2NrcywgYmxvY2tfbmFtZSwgc2l6ZW9mX2Jsb2NrKTsKKyAgICBQeU9TX3NucHJpbnRmKGJ1ZjIsIHNpemVvZihidWYyKSwKKyAgICAgICAgICAgICAgICAgICIlNDhzICIsIGJ1ZjEpOworICAgICh2b2lkKXByaW50b25lKG91dCwgYnVmMiwgbnVtX2Jsb2NrcyAqIHNpemVvZl9ibG9jayk7Cit9CisKKyNpZmRlZiBXSVRIX1BZTUFMTE9DCisKKy8qIFByaW50IHN1bW1hcnkgaW5mbyB0byAib3V0IiBhYm91dCB0aGUgc3RhdGUgb2YgcHltYWxsb2MncyBzdHJ1Y3R1cmVzLgogICogSW4gUHlfREVCVUcgbW9kZSwgYWxzbyBwZXJmb3JtIHNvbWUgZXhwZW5zaXZlIGludGVybmFsIGNvbnNpc3RlbmN5CiAgKiBjaGVja3MuCiAgKi8KIHZvaWQKLV9QeU9iamVjdF9EZWJ1Z01hbGxvY1N0YXRzKHZvaWQpCitfUHlPYmplY3RfRGVidWdNYWxsb2NTdGF0cyhGSUxFICpvdXQpCiB7CiAgICAgdWludCBpOwogICAgIGNvbnN0IHVpbnQgbnVtY2xhc3NlcyA9IFNNQUxMX1JFUVVFU1RfVEhSRVNIT0xEID4+IEFMSUdOTUVOVF9TSElGVDsKQEAgLTE3NjQsNyArMTgwNyw3IEBACiAgICAgc2l6ZV90IHRvdGFsOwogICAgIGNoYXIgYnVmWzEyOF07CiAKLSAgICBmcHJpbnRmKHN0ZGVyciwgIlNtYWxsIGJsb2NrIHRocmVzaG9sZCA9ICVkLCBpbiAldSBzaXplIGNsYXNzZXMuXG4iLAorICAgIGZwcmludGYob3V0LCAiU21hbGwgYmxvY2sgdGhyZXNob2xkID0gJWQsIGluICV1IHNpemUgY2xhc3Nlcy5cbiIsCiAgICAgICAgICAgICBTTUFMTF9SRVFVRVNUX1RIUkVTSE9MRCwgbnVtY2xhc3Nlcyk7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtY2xhc3NlczsgKytpKQpAQCAtMTc3NSw3ICsxODE4LDYgQEAKICAgICAgKiB3aWxsIGJlIGxpdmluZyBpbiBmdWxsIHBvb2xzIC0tIHdvdWxkIGJlIGEgc2hhbWUgdG8gbWlzcyB0aGVtLgogICAgICAqLwogICAgIGZvciAoaSA9IDA7IGkgPCBtYXhhcmVuYXM7ICsraSkgewotICAgICAgICB1aW50IHBvb2xzaW5hcmVuYTsKICAgICAgICAgdWludCBqOwogICAgICAgICB1cHRyIGJhc2UgPSBhcmVuYXNbaV0uYWRkcmVzczsKIApAQCAtMTc4NCw3ICsxODI2LDYgQEAKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBuYXJlbmFzICs9IDE7CiAKLSAgICAgICAgcG9vbHNpbmFyZW5hID0gYXJlbmFzW2ldLm50b3RhbHBvb2xzOwogICAgICAgICBudW1mcmVlcG9vbHMgKz0gYXJlbmFzW2ldLm5mcmVlcG9vbHM7CiAKICAgICAgICAgLyogcm91bmQgdXAgdG8gcG9vbCBhbGlnbm1lbnQgKi8KQEAgLTE4MjAsMTAgKzE4NjEsMTAgQEAKICAgICB9CiAgICAgYXNzZXJ0KG5hcmVuYXMgPT0gbmFyZW5hc19jdXJyZW50bHlfYWxsb2NhdGVkKTsKIAotICAgIGZwdXRjKCdcbicsIHN0ZGVycik7CisgICAgZnB1dGMoJ1xuJywgb3V0KTsKICAgICBmcHV0cygiY2xhc3MgICBzaXplICAgbnVtIHBvb2xzICAgYmxvY2tzIGluIHVzZSAgYXZhaWwgYmxvY2tzXG4iCiAgICAgICAgICAgIi0tLS0tICAgLS0tLSAgIC0tLS0tLS0tLSAgIC0tLS0tLS0tLS0tLS0gIC0tLS0tLS0tLS0tLVxuIiwKLSAgICAgICAgICBzdGRlcnIpOworICAgICAgICAgIG91dCk7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtY2xhc3NlczsgKytpKSB7CiAgICAgICAgIHNpemVfdCBwID0gbnVtcG9vbHNbaV07CkBAIC0xODM0LDcgKzE4NzUsNyBAQAogICAgICAgICAgICAgYXNzZXJ0KGIgPT0gMCAmJiBmID09IDApOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlNXUgJTZ1ICIKKyAgICAgICAgZnByaW50ZihvdXQsICIlNXUgJTZ1ICIKICAgICAgICAgICAgICAgICAgICAgICAgICIlMTEiIFBZX0ZPUk1BVF9TSVpFX1QgInUgIgogICAgICAgICAgICAgICAgICAgICAgICAgIiUxNSIgUFlfRk9STUFUX1NJWkVfVCAidSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiJTEzIiBQWV9GT1JNQVRfU0laRV9UICJ1XG4iLApAQCAtMTg0NCwzNSArMTg4NSwzNiBAQAogICAgICAgICBwb29sX2hlYWRlcl9ieXRlcyArPSBwICogUE9PTF9PVkVSSEVBRDsKICAgICAgICAgcXVhbnRpemF0aW9uICs9IHAgKiAoKFBPT0xfU0laRSAtIFBPT0xfT1ZFUkhFQUQpICUgc2l6ZSk7CiAgICAgfQotICAgIGZwdXRjKCdcbicsIHN0ZGVycik7Ci0gICAgKHZvaWQpcHJpbnRvbmUoIiMgdGltZXMgb2JqZWN0IG1hbGxvYyBjYWxsZWQiLCBzZXJpYWxubyk7Ci0KLSAgICAodm9pZClwcmludG9uZSgiIyBhcmVuYXMgYWxsb2NhdGVkIHRvdGFsIiwgbnRpbWVzX2FyZW5hX2FsbG9jYXRlZCk7Ci0gICAgKHZvaWQpcHJpbnRvbmUoIiMgYXJlbmFzIHJlY2xhaW1lZCIsIG50aW1lc19hcmVuYV9hbGxvY2F0ZWQgLSBuYXJlbmFzKTsKLSAgICAodm9pZClwcmludG9uZSgiIyBhcmVuYXMgaGlnaHdhdGVyIG1hcmsiLCBuYXJlbmFzX2hpZ2h3YXRlcik7Ci0gICAgKHZvaWQpcHJpbnRvbmUoIiMgYXJlbmFzIGFsbG9jYXRlZCBjdXJyZW50IiwgbmFyZW5hcyk7CisgICAgZnB1dGMoJ1xuJywgb3V0KTsKKyNpZmRlZiBQWU1BTExPQ19ERUJVRworICAgICh2b2lkKXByaW50b25lKG91dCwgIiMgdGltZXMgb2JqZWN0IG1hbGxvYyBjYWxsZWQiLCBzZXJpYWxubyk7CisjZW5kaWYKKyAgICAodm9pZClwcmludG9uZShvdXQsICIjIGFyZW5hcyBhbGxvY2F0ZWQgdG90YWwiLCBudGltZXNfYXJlbmFfYWxsb2NhdGVkKTsKKyAgICAodm9pZClwcmludG9uZShvdXQsICIjIGFyZW5hcyByZWNsYWltZWQiLCBudGltZXNfYXJlbmFfYWxsb2NhdGVkIC0gbmFyZW5hcyk7CisgICAgKHZvaWQpcHJpbnRvbmUob3V0LCAiIyBhcmVuYXMgaGlnaHdhdGVyIG1hcmsiLCBuYXJlbmFzX2hpZ2h3YXRlcik7CisgICAgKHZvaWQpcHJpbnRvbmUob3V0LCAiIyBhcmVuYXMgYWxsb2NhdGVkIGN1cnJlbnQiLCBuYXJlbmFzKTsKIAogICAgIFB5T1Nfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwKICAgICAgICAgIiUiIFBZX0ZPUk1BVF9TSVpFX1QgInUgYXJlbmFzICogJWQgYnl0ZXMvYXJlbmEiLAogICAgICAgICBuYXJlbmFzLCBBUkVOQV9TSVpFKTsKLSAgICAodm9pZClwcmludG9uZShidWYsIG5hcmVuYXMgKiBBUkVOQV9TSVpFKTsKKyAgICAodm9pZClwcmludG9uZShvdXQsIGJ1ZiwgbmFyZW5hcyAqIEFSRU5BX1NJWkUpOwogCi0gICAgZnB1dGMoJ1xuJywgc3RkZXJyKTsKKyAgICBmcHV0YygnXG4nLCBvdXQpOwogCi0gICAgdG90YWwgPSBwcmludG9uZSgiIyBieXRlcyBpbiBhbGxvY2F0ZWQgYmxvY2tzIiwgYWxsb2NhdGVkX2J5dGVzKTsKLSAgICB0b3RhbCArPSBwcmludG9uZSgiIyBieXRlcyBpbiBhdmFpbGFibGUgYmxvY2tzIiwgYXZhaWxhYmxlX2J5dGVzKTsKKyAgICB0b3RhbCA9IHByaW50b25lKG91dCwgIiMgYnl0ZXMgaW4gYWxsb2NhdGVkIGJsb2NrcyIsIGFsbG9jYXRlZF9ieXRlcyk7CisgICAgdG90YWwgKz0gcHJpbnRvbmUob3V0LCAiIyBieXRlcyBpbiBhdmFpbGFibGUgYmxvY2tzIiwgYXZhaWxhYmxlX2J5dGVzKTsKIAogICAgIFB5T1Nfc25wcmludGYoYnVmLCBzaXplb2YoYnVmKSwKICAgICAgICAgIiV1IHVudXNlZCBwb29scyAqICVkIGJ5dGVzIiwgbnVtZnJlZXBvb2xzLCBQT09MX1NJWkUpOwotICAgIHRvdGFsICs9IHByaW50b25lKGJ1ZiwgKHNpemVfdCludW1mcmVlcG9vbHMgKiBQT09MX1NJWkUpOworICAgIHRvdGFsICs9IHByaW50b25lKG91dCwgYnVmLCAoc2l6ZV90KW51bWZyZWVwb29scyAqIFBPT0xfU0laRSk7CiAKLSAgICB0b3RhbCArPSBwcmludG9uZSgiIyBieXRlcyBsb3N0IHRvIHBvb2wgaGVhZGVycyIsIHBvb2xfaGVhZGVyX2J5dGVzKTsKLSAgICB0b3RhbCArPSBwcmludG9uZSgiIyBieXRlcyBsb3N0IHRvIHF1YW50aXphdGlvbiIsIHF1YW50aXphdGlvbik7Ci0gICAgdG90YWwgKz0gcHJpbnRvbmUoIiMgYnl0ZXMgbG9zdCB0byBhcmVuYSBhbGlnbm1lbnQiLCBhcmVuYV9hbGlnbm1lbnQpOwotICAgICh2b2lkKXByaW50b25lKCJUb3RhbCIsIHRvdGFsKTsKKyAgICB0b3RhbCArPSBwcmludG9uZShvdXQsICIjIGJ5dGVzIGxvc3QgdG8gcG9vbCBoZWFkZXJzIiwgcG9vbF9oZWFkZXJfYnl0ZXMpOworICAgIHRvdGFsICs9IHByaW50b25lKG91dCwgIiMgYnl0ZXMgbG9zdCB0byBxdWFudGl6YXRpb24iLCBxdWFudGl6YXRpb24pOworICAgIHRvdGFsICs9IHByaW50b25lKG91dCwgIiMgYnl0ZXMgbG9zdCB0byBhcmVuYSBhbGlnbm1lbnQiLCBhcmVuYV9hbGlnbm1lbnQpOworICAgICh2b2lkKXByaW50b25lKG91dCwgIlRvdGFsIiwgdG90YWwpOwogfQogCi0jZW5kaWYgIC8qIFBZTUFMTE9DX0RFQlVHICovCisjZW5kaWYgLyogI2lmZGVmIFdJVEhfUFlNQUxMT0MgKi8KIAogI2lmZGVmIFB5X1VTSU5HX01FTU9SWV9ERUJVR0dFUgogLyogTWFrZSB0aGlzIGZ1bmN0aW9uIGxhc3Qgc28gZ2NjIHdvbid0IGlubGluZSBpdCBzaW5jZSB0aGUgZGVmaW5pdGlvbiBpcwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9yYW5nZW9iamVjdC5jIGIvT2JqZWN0cy9yYW5nZW9iamVjdC5jCmluZGV4IDkzNWIyMDUuLmM0N2E0ZmYgMTAwNjQ0Ci0tLSBhL09iamVjdHMvcmFuZ2VvYmplY3QuYworKysgYi9PYmplY3RzL3Jhbmdlb2JqZWN0LmMKQEAgLTEsNiArMSw3IEBACiAvKiBSYW5nZSBvYmplY3QgaW1wbGVtZW50YXRpb24gKi8KIAogI2luY2x1ZGUgIlB5dGhvbi5oIgorI2luY2x1ZGUgInN0cnVjdG1lbWJlci5oIgogCiAvKiBTdXBwb3J0IG9iamVjdHMgd2hvc2UgbGVuZ3RoIGlzID4gUFlfU1NJWkVfVF9NQVguCiAKQEAgLTYwOSw2ICs2MTAsMTM3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQWV9JVEVSU0VBUkNIX0NPTlRBSU5TKTsKIH0KIAorLyogQ29tcGFyZSB0d28gcmFuZ2Ugb2JqZWN0cy4gIFJldHVybiAxIGZvciBlcXVhbCwgMCBmb3Igbm90IGVxdWFsCisgICBhbmQgLTEgb24gZXJyb3IuICBUaGUgYWxnb3JpdGhtIGlzIHJvdWdobHkgdGhlIEMgZXF1aXZhbGVudCBvZgorCisgICBpZiByMCBpcyByMToKKyAgICAgICByZXR1cm4gVHJ1ZQorICAgaWYgbGVuKHIwKSAhPSBsZW4ocjEpOgorICAgICAgIHJldHVybiBGYWxzZQorICAgaWYgbm90IGxlbihyMCk6CisgICAgICAgcmV0dXJuIFRydWUKKyAgIGlmIHIwLnN0YXJ0ICE9IHIxLnN0YXJ0OgorICAgICAgIHJldHVybiBGYWxzZQorICAgaWYgbGVuKHIwKSA9PSAxOgorICAgICAgIHJldHVybiBUcnVlCisgICByZXR1cm4gcjAuc3RlcCA9PSByMS5zdGVwCisqLworc3RhdGljIGludAorcmFuZ2VfZXF1YWxzKHJhbmdlb2JqZWN0ICpyMCwgcmFuZ2VvYmplY3QgKnIxKQoreworICAgIGludCBjbXBfcmVzdWx0OworICAgIFB5T2JqZWN0ICpvbmU7CisKKyAgICBpZiAocjAgPT0gcjEpCisgICAgICAgIHJldHVybiAxOworICAgIGNtcF9yZXN1bHQgPSBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2wocjAtPmxlbmd0aCwgcjEtPmxlbmd0aCwgUHlfRVEpOworICAgIC8qIFJldHVybiBGYWxzZSBvciBlcnJvciB0byB0aGUgY2FsbGVyLiAqLworICAgIGlmIChjbXBfcmVzdWx0ICE9IDEpCisgICAgICAgIHJldHVybiBjbXBfcmVzdWx0OworICAgIGNtcF9yZXN1bHQgPSBQeU9iamVjdF9Ob3QocjAtPmxlbmd0aCk7CisgICAgLyogUmV0dXJuIFRydWUgb3IgZXJyb3IgdG8gdGhlIGNhbGxlci4gKi8KKyAgICBpZiAoY21wX3Jlc3VsdCAhPSAwKQorICAgICAgICByZXR1cm4gY21wX3Jlc3VsdDsKKyAgICBjbXBfcmVzdWx0ID0gUHlPYmplY3RfUmljaENvbXBhcmVCb29sKHIwLT5zdGFydCwgcjEtPnN0YXJ0LCBQeV9FUSk7CisgICAgLyogUmV0dXJuIEZhbHNlIG9yIGVycm9yIHRvIHRoZSBjYWxsZXIuICovCisgICAgaWYgKGNtcF9yZXN1bHQgIT0gMSkKKyAgICAgICAgcmV0dXJuIGNtcF9yZXN1bHQ7CisgICAgb25lID0gUHlMb25nX0Zyb21Mb25nKDEpOworICAgIGlmICghb25lKQorICAgICAgICByZXR1cm4gLTE7CisgICAgY21wX3Jlc3VsdCA9IFB5T2JqZWN0X1JpY2hDb21wYXJlQm9vbChyMC0+bGVuZ3RoLCBvbmUsIFB5X0VRKTsKKyAgICBQeV9ERUNSRUYob25lKTsKKyAgICAvKiBSZXR1cm4gVHJ1ZSBvciBlcnJvciB0byB0aGUgY2FsbGVyLiAqLworICAgIGlmIChjbXBfcmVzdWx0ICE9IDApCisgICAgICAgIHJldHVybiBjbXBfcmVzdWx0OworICAgIHJldHVybiBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2wocjAtPnN0ZXAsIHIxLT5zdGVwLCBQeV9FUSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCityYW5nZV9yaWNoY29tcGFyZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm90aGVyLCBpbnQgb3ApCit7CisgICAgaW50IHJlc3VsdDsKKworICAgIGlmICghUHlSYW5nZV9DaGVjayhvdGhlcikpCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKKyAgICBzd2l0Y2ggKG9wKSB7CisgICAgY2FzZSBQeV9ORToKKyAgICBjYXNlIFB5X0VROgorICAgICAgICByZXN1bHQgPSByYW5nZV9lcXVhbHMoKHJhbmdlb2JqZWN0KilzZWxmLCAocmFuZ2VvYmplY3QqKW90aGVyKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBpZiAob3AgPT0gUHlfTkUpCisgICAgICAgICAgICByZXN1bHQgPSAhcmVzdWx0OworICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgUHlfUkVUVVJOX1RSVUU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFB5X1JFVFVSTl9GQUxTRTsKKyAgICBjYXNlIFB5X0xFOgorICAgIGNhc2UgUHlfR0U6CisgICAgY2FzZSBQeV9MVDoKKyAgICBjYXNlIFB5X0dUOgorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorfQorCisvKiBIYXNoIGZ1bmN0aW9uIGZvciByYW5nZSBvYmplY3RzLiAgUm91Z2ggQyBlcXVpdmFsZW50IG9mCisKKyAgIGlmIG5vdCBsZW4ocik6CisgICAgICAgcmV0dXJuIGhhc2goKGxlbihyKSwgTm9uZSwgTm9uZSkpCisgICBpZiBsZW4ocikgPT0gMToKKyAgICAgICByZXR1cm4gaGFzaCgobGVuKHIpLCByLnN0YXJ0LCBOb25lKSkKKyAgIHJldHVybiBoYXNoKChsZW4ociksIHIuc3RhcnQsIHIuc3RlcCkpCisqLworc3RhdGljIFB5X2hhc2hfdAorcmFuZ2VfaGFzaChyYW5nZW9iamVjdCAqcikKK3sKKyAgICBQeU9iamVjdCAqdDsKKyAgICBQeV9oYXNoX3QgcmVzdWx0ID0gLTE7CisgICAgaW50IGNtcF9yZXN1bHQ7CisKKyAgICB0ID0gUHlUdXBsZV9OZXcoMyk7CisgICAgaWYgKCF0KQorICAgICAgICByZXR1cm4gLTE7CisgICAgUHlfSU5DUkVGKHItPmxlbmd0aCk7CisgICAgUHlUdXBsZV9TRVRfSVRFTSh0LCAwLCByLT5sZW5ndGgpOworICAgIGNtcF9yZXN1bHQgPSBQeU9iamVjdF9Ob3Qoci0+bGVuZ3RoKTsKKyAgICBpZiAoY21wX3Jlc3VsdCA9PSAtMSkKKyAgICAgICAgZ290byBlbmQ7CisgICAgaWYgKGNtcF9yZXN1bHQgPT0gMSkgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgUHlUdXBsZV9TRVRfSVRFTSh0LCAxLCBQeV9Ob25lKTsKKyAgICAgICAgUHlUdXBsZV9TRVRfSVRFTSh0LCAyLCBQeV9Ob25lKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5T2JqZWN0ICpvbmU7CisgICAgICAgIFB5X0lOQ1JFRihyLT5zdGFydCk7CisgICAgICAgIFB5VHVwbGVfU0VUX0lURU0odCwgMSwgci0+c3RhcnQpOworICAgICAgICBvbmUgPSBQeUxvbmdfRnJvbUxvbmcoMSk7CisgICAgICAgIGlmICghb25lKQorICAgICAgICAgICAgZ290byBlbmQ7CisgICAgICAgIGNtcF9yZXN1bHQgPSBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2woci0+bGVuZ3RoLCBvbmUsIFB5X0VRKTsKKyAgICAgICAgUHlfREVDUkVGKG9uZSk7CisgICAgICAgIGlmIChjbXBfcmVzdWx0ID09IC0xKQorICAgICAgICAgICAgZ290byBlbmQ7CisgICAgICAgIGlmIChjbXBfcmVzdWx0ID09IDEpIHsKKyAgICAgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKKyAgICAgICAgICAgIFB5VHVwbGVfU0VUX0lURU0odCwgMiwgUHlfTm9uZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBQeV9JTkNSRUYoci0+c3RlcCk7CisgICAgICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKHQsIDIsIHItPnN0ZXApOworICAgICAgICB9CisgICAgfQorICAgIHJlc3VsdCA9IFB5T2JqZWN0X0hhc2godCk7CisgIGVuZDoKKyAgICBQeV9ERUNSRUYodCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIFB5T2JqZWN0ICoKIHJhbmdlX2NvdW50KHJhbmdlb2JqZWN0ICpyLCBQeU9iamVjdCAqb2IpCiB7CkBAIC03NDksNiArODgxLDEzIEBACiAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KIH07CiAKK3N0YXRpYyBQeU1lbWJlckRlZiByYW5nZV9tZW1iZXJzW10gPSB7CisgICAgeyJzdGFydCIsICAgVF9PQkpFQ1RfRVgsICAgIG9mZnNldG9mKHJhbmdlb2JqZWN0LCBzdGFydCksICAgUkVBRE9OTFl9LAorICAgIHsic3RvcCIsICAgIFRfT0JKRUNUX0VYLCAgICBvZmZzZXRvZihyYW5nZW9iamVjdCwgc3RvcCksICAgIFJFQURPTkxZfSwKKyAgICB7InN0ZXAiLCAgICBUX09CSkVDVF9FWCwgICAgb2Zmc2V0b2YocmFuZ2VvYmplY3QsIHN0ZXApLCAgICBSRUFET05MWX0sCisgICAgezB9Cit9OworCiBQeVR5cGVPYmplY3QgUHlSYW5nZV9UeXBlID0gewogICAgICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoJlB5VHlwZV9UeXBlLCAwKQogICAgICAgICAicmFuZ2UiLCAgICAgICAgICAgICAgICAvKiBOYW1lIG9mIHRoaXMgdHlwZSAqLwpAQCAtNzYzLDcgKzkwMiw3IEBACiAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX251bWJlciAqLwogICAgICAgICAmcmFuZ2VfYXNfc2VxdWVuY2UsICAgICAvKiB0cF9hc19zZXF1ZW5jZSAqLwogICAgICAgICAmcmFuZ2VfYXNfbWFwcGluZywgICAgICAvKiB0cF9hc19tYXBwaW5nICovCi0gICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2hhc2ggKi8KKyAgICAgICAgKGhhc2hmdW5jKXJhbmdlX2hhc2gsICAgLyogdHBfaGFzaCAqLwogICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jYWxsICovCiAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3N0ciAqLwogICAgICAgICBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwgIC8qIHRwX2dldGF0dHJvICovCkBAIC03NzMsMTIgKzkxMiwxMiBAQAogICAgICAgICByYW5nZV9kb2MsICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KLSAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KKyAgICAgICAgcmFuZ2VfcmljaGNvbXBhcmUsICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KICAgICAgICAgcmFuZ2VfaXRlciwgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwogICAgICAgICByYW5nZV9tZXRob2RzLCAgICAgICAgICAvKiB0cF9tZXRob2RzICovCi0gICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KKyAgICAgICAgcmFuZ2VfbWVtYmVycywgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwogICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCkBAIC04MjUsOSArOTY0LDU5IEBACiBQeURvY19TVFJWQVIobGVuZ3RoX2hpbnRfZG9jLAogICAgICAgICAgICAgICJQcml2YXRlIG1ldGhvZCByZXR1cm5pbmcgYW4gZXN0aW1hdGUgb2YgbGVuKGxpc3QoaXQpKS4iKTsKIAorc3RhdGljIFB5T2JqZWN0ICoKK3JhbmdlaXRlcl9yZWR1Y2UocmFuZ2VpdGVyb2JqZWN0ICpyKQoreworICAgIFB5T2JqZWN0ICpzdGFydD1OVUxMLCAqc3RvcD1OVUxMLCAqc3RlcD1OVUxMOworICAgIFB5T2JqZWN0ICpyYW5nZTsKKyAgICAKKyAgICAvKiBjcmVhdGUgYSByYW5nZSBvYmplY3QgZm9yIHBpY2tsaW5nICovCisgICAgc3RhcnQgPSBQeUxvbmdfRnJvbUxvbmcoci0+c3RhcnQpOworICAgIGlmIChzdGFydCA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycjsKKyAgICBzdG9wID0gUHlMb25nX0Zyb21Mb25nKHItPnN0YXJ0ICsgci0+bGVuICogci0+c3RlcCk7CisgICAgaWYgKHN0b3AgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnI7CisgICAgc3RlcCA9IFB5TG9uZ19Gcm9tTG9uZyhyLT5zdGVwKTsKKyAgICBpZiAoc3RlcCA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycjsKKyAgICByYW5nZSA9IChQeU9iamVjdCopbWFrZV9yYW5nZV9vYmplY3QoJlB5UmFuZ2VfVHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgc3RvcCwgc3RlcCk7CisgICAgaWYgKHJhbmdlID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyOworICAgIC8qIHJldHVybiB0aGUgcmVzdWx0ICovCisgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk4oTilpIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oIml0ZXIiKSwgcmFuZ2UsIHItPmluZGV4KTsKK2VycjoKKyAgICBQeV9YREVDUkVGKHN0YXJ0KTsKKyAgICBQeV9YREVDUkVGKHN0b3ApOworICAgIFB5X1hERUNSRUYoc3RlcCk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCityYW5nZWl0ZXJfc2V0c3RhdGUocmFuZ2VpdGVyb2JqZWN0ICpyLCBQeU9iamVjdCAqc3RhdGUpCit7CisgICAgbG9uZyBpbmRleCA9IFB5TG9uZ19Bc0xvbmcoc3RhdGUpOworICAgIGlmIChpbmRleCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IHItPmxlbikgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImluZGV4IG91dCBvZiByYW5nZSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgci0+aW5kZXggPSBpbmRleDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworUHlEb2NfU1RSVkFSKHJlZHVjZV9kb2MsICJSZXR1cm4gc3RhdGUgaW5mb3JtYXRpb24gZm9yIHBpY2tsaW5nLiIpOworUHlEb2NfU1RSVkFSKHNldHN0YXRlX2RvYywgIlNldCBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgdW5waWNrbGluZy4iKTsKKwogc3RhdGljIFB5TWV0aG9kRGVmIHJhbmdlaXRlcl9tZXRob2RzW10gPSB7CiAgICAgeyJfX2xlbmd0aF9oaW50X18iLCAoUHlDRnVuY3Rpb24pcmFuZ2VpdGVyX2xlbiwgTUVUSF9OT0FSR1MsCiAgICAgICAgIGxlbmd0aF9oaW50X2RvY30sCisgICAgeyJfX3JlZHVjZV9fIiwgKFB5Q0Z1bmN0aW9uKXJhbmdlaXRlcl9yZWR1Y2UsIE1FVEhfTk9BUkdTLAorICAgICAgICByZWR1Y2VfZG9jfSwKKyAgICB7Il9fc2V0c3RhdGVfXyIsIChQeUNGdW5jdGlvbilyYW5nZWl0ZXJfc2V0c3RhdGUsIE1FVEhfTywKKyAgICAgICAgc2V0c3RhdGVfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwogfTsKIApAQCAtOTU2LDkgKzExNDUsNTEgQEAKICAgICByZXR1cm4gUHlOdW1iZXJfU3VidHJhY3Qoci0+bGVuLCByLT5pbmRleCk7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitsb25ncmFuZ2VpdGVyX3JlZHVjZShsb25ncmFuZ2VpdGVyb2JqZWN0ICpyKQoreworICAgIFB5T2JqZWN0ICpwcm9kdWN0LCAqc3RvcD1OVUxMOworICAgIFB5T2JqZWN0ICpyYW5nZTsKKworICAgIC8qIGNyZWF0ZSBhIHJhbmdlIG9iamVjdCBmb3IgcGlja2xpbmcuICBNdXN0IGNhbGN1bGF0ZSB0aGUgInN0b3AiIHZhbHVlICovCisgICAgcHJvZHVjdCA9IFB5TnVtYmVyX011bHRpcGx5KHItPmxlbiwgci0+c3RlcCk7CisgICAgaWYgKHByb2R1Y3QgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgc3RvcCA9IFB5TnVtYmVyX0FkZChyLT5zdGFydCwgcHJvZHVjdCk7CisgICAgUHlfREVDUkVGKHByb2R1Y3QpOworICAgIGlmIChzdG9wID09ICBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBQeV9JTkNSRUYoci0+c3RhcnQpOworICAgIFB5X0lOQ1JFRihyLT5zdGVwKTsKKyAgICByYW5nZSA9ICAoUHlPYmplY3QqKW1ha2VfcmFuZ2Vfb2JqZWN0KCZQeVJhbmdlX1R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgci0+c3RhcnQsIHN0b3AsIHItPnN0ZXApOworICAgIGlmIChyYW5nZSA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRihyLT5zdGFydCk7CisgICAgICAgIFB5X0RFQ1JFRihzdG9wKTsKKyAgICAgICAgUHlfREVDUkVGKHItPnN0ZXApOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICAvKiByZXR1cm4gdGhlIHJlc3VsdCAqLworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJOKE4pTyIsIF9QeU9iamVjdF9HZXRCdWlsdGluKCJpdGVyIiksIHJhbmdlLCByLT5pbmRleCk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitsb25ncmFuZ2VpdGVyX3NldHN0YXRlKGxvbmdyYW5nZWl0ZXJvYmplY3QgKnIsIFB5T2JqZWN0ICpzdGF0ZSkKK3sKKyAgICBQeV9DTEVBUihyLT5pbmRleCk7CisgICAgci0+aW5kZXggPSBzdGF0ZTsKKyAgICBQeV9JTkNSRUYoci0+aW5kZXgpOworICAgIFB5X1JFVFVSTl9OT05FOworfQorCiBzdGF0aWMgUHlNZXRob2REZWYgbG9uZ3JhbmdlaXRlcl9tZXRob2RzW10gPSB7CiAgICAgeyJfX2xlbmd0aF9oaW50X18iLCAoUHlDRnVuY3Rpb24pbG9uZ3JhbmdlaXRlcl9sZW4sIE1FVEhfTk9BUkdTLAogICAgICAgICBsZW5ndGhfaGludF9kb2N9LAorICAgIHsiX19yZWR1Y2VfXyIsIChQeUNGdW5jdGlvbilsb25ncmFuZ2VpdGVyX3JlZHVjZSwgTUVUSF9OT0FSR1MsCisgICAgICAgIHJlZHVjZV9kb2N9LAorICAgIHsiX19zZXRzdGF0ZV9fIiwgKFB5Q0Z1bmN0aW9uKWxvbmdyYW5nZWl0ZXJfc2V0c3RhdGUsIE1FVEhfTywKKyAgICAgICAgc2V0c3RhdGVfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwogfTsKIApkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zZXRvYmplY3QuYyBiL09iamVjdHMvc2V0b2JqZWN0LmMKaW5kZXggM2FiZWVmYi4uM2U5MTU3MiAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zZXRvYmplY3QuYworKysgYi9PYmplY3RzL3NldG9iamVjdC5jCkBAIC03Nyw3ICs3Nyw3IEBACiBzdGF0aWMgc2V0ZW50cnkgKgogc2V0X2xvb2trZXkoUHlTZXRPYmplY3QgKnNvLCBQeU9iamVjdCAqa2V5LCByZWdpc3RlciBQeV9oYXNoX3QgaGFzaCkKIHsKLSAgICByZWdpc3RlciBQeV9zc2l6ZV90IGk7CisgICAgcmVnaXN0ZXIgc2l6ZV90IGk7CiAgICAgcmVnaXN0ZXIgc2l6ZV90IHBlcnR1cmI7CiAgICAgcmVnaXN0ZXIgc2V0ZW50cnkgKmZyZWVzbG90OwogICAgIHJlZ2lzdGVyIHNpemVfdCBtYXNrID0gc28tPm1hc2s7CkBAIC04Niw3ICs4Niw3IEBACiAgICAgcmVnaXN0ZXIgaW50IGNtcDsKICAgICBQeU9iamVjdCAqc3RhcnRrZXk7CiAKLSAgICBpID0gaGFzaCAmIG1hc2s7CisgICAgaSA9IChzaXplX3QpaGFzaCAmIG1hc2s7CiAgICAgZW50cnkgPSAmdGFibGVbaV07CiAgICAgaWYgKGVudHJ5LT5rZXkgPT0gTlVMTCB8fCBlbnRyeS0+a2V5ID09IGtleSkKICAgICAgICAgcmV0dXJuIGVudHJ5OwpAQCAtMTU5LDcgKzE1OSw3IEBACiBzdGF0aWMgc2V0ZW50cnkgKgogc2V0X2xvb2trZXlfdW5pY29kZShQeVNldE9iamVjdCAqc28sIFB5T2JqZWN0ICprZXksIHJlZ2lzdGVyIFB5X2hhc2hfdCBoYXNoKQogewotICAgIHJlZ2lzdGVyIFB5X3NzaXplX3QgaTsKKyAgICByZWdpc3RlciBzaXplX3QgaTsKICAgICByZWdpc3RlciBzaXplX3QgcGVydHVyYjsKICAgICByZWdpc3RlciBzZXRlbnRyeSAqZnJlZXNsb3Q7CiAgICAgcmVnaXN0ZXIgc2l6ZV90IG1hc2sgPSBzby0+bWFzazsKQEAgLTE3NCw3ICsxNzQsNyBAQAogICAgICAgICBzby0+bG9va3VwID0gc2V0X2xvb2trZXk7CiAgICAgICAgIHJldHVybiBzZXRfbG9va2tleShzbywga2V5LCBoYXNoKTsKICAgICB9Ci0gICAgaSA9IGhhc2ggJiBtYXNrOworICAgIGkgPSAoc2l6ZV90KWhhc2ggJiBtYXNrOwogICAgIGVudHJ5ID0gJnRhYmxlW2ldOwogICAgIGlmIChlbnRyeS0+a2V5ID09IE5VTEwgfHwgZW50cnktPmtleSA9PSBrZXkpCiAgICAgICAgIHJldHVybiBlbnRyeTsKQEAgLTI1Niw3ICsyNTYsNyBAQAogICAgIHNldGVudHJ5ICp0YWJsZSA9IHNvLT50YWJsZTsKICAgICByZWdpc3RlciBzZXRlbnRyeSAqZW50cnk7CiAKLSAgICBpID0gaGFzaCAmIG1hc2s7CisgICAgaSA9IChzaXplX3QpaGFzaCAmIG1hc2s7CiAgICAgZW50cnkgPSAmdGFibGVbaV07CiAgICAgZm9yIChwZXJ0dXJiID0gaGFzaDsgZW50cnktPmtleSAhPSBOVUxMOyBwZXJ0dXJiID4+PSBQRVJUVVJCX1NISUZUKSB7CiAgICAgICAgIGkgPSAoaSA8PCAyKSArIGkgKyBwZXJ0dXJiICsgMTsKQEAgLTM4Niw3ICszODYsNyBAQAogICAgIHJlZ2lzdGVyIFB5X3NzaXplX3Qgbl91c2VkOwogCiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpIHx8Ci0gICAgICAgIChoYXNoID0gKChQeVVuaWNvZGVPYmplY3QgKikga2V5KS0+aGFzaCkgPT0gLTEpIHsKKyAgICAgICAgKGhhc2ggPSAoKFB5QVNDSUlPYmplY3QgKikga2V5KS0+aGFzaCkgPT0gLTEpIHsKICAgICAgICAgaGFzaCA9IFB5T2JqZWN0X0hhc2goa2V5KTsKICAgICAgICAgaWYgKGhhc2ggPT0gLTEpCiAgICAgICAgICAgICByZXR1cm4gLTE7CkBAIC00MzQsNyArNDM0LDcgQEAKICAgICBhc3NlcnQgKFB5QW55U2V0X0NoZWNrKHNvKSk7CiAKICAgICBpZiAoIVB5VW5pY29kZV9DaGVja0V4YWN0KGtleSkgfHwKLSAgICAgICAgKGhhc2ggPSAoKFB5VW5pY29kZU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkgeworICAgICAgICAoaGFzaCA9ICgoUHlBU0NJSU9iamVjdCAqKSBrZXkpLT5oYXNoKSA9PSAtMSkgewogICAgICAgICBoYXNoID0gUHlPYmplY3RfSGFzaChrZXkpOwogICAgICAgICBpZiAoaGFzaCA9PSAtMSkKICAgICAgICAgICAgIHJldHVybiAtMTsKQEAgLTU3OSwxMSArNTc5LDggQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBzZXRfcmVwcihQeVNldE9iamVjdCAqc28pCiB7Ci0gICAgUHlPYmplY3QgKmtleXMsICpyZXN1bHQ9TlVMTDsKLSAgICBQeV9VTklDT0RFICp1OworICAgIFB5T2JqZWN0ICpyZXN1bHQ9TlVMTCwgKmtleXMsICpsaXN0cmVwciwgKnRtcDsKICAgICBpbnQgc3RhdHVzID0gUHlfUmVwckVudGVyKChQeU9iamVjdCopc28pOwotICAgIFB5T2JqZWN0ICpsaXN0cmVwcjsKLSAgICBQeV9zc2l6ZV90IG5ld3NpemU7CiAKICAgICBpZiAoc3RhdHVzICE9IDApIHsKICAgICAgICAgaWYgKHN0YXR1cyA8IDApCkBAIC02MDEsMjkgKzU5OCwyNCBAQAogICAgIGlmIChrZXlzID09IE5VTEwpCiAgICAgICAgIGdvdG8gZG9uZTsKIAorICAgIC8qIHJlcHIoa2V5cylbMTotMV0gKi8KICAgICBsaXN0cmVwciA9IFB5T2JqZWN0X1JlcHIoa2V5cyk7CiAgICAgUHlfREVDUkVGKGtleXMpOwogICAgIGlmIChsaXN0cmVwciA9PSBOVUxMKQogICAgICAgICBnb3RvIGRvbmU7Ci0gICAgbmV3c2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShsaXN0cmVwcik7Ci0gICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIG5ld3NpemUpOwotICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgdSA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlc3VsdCk7Ci0gICAgICAgICp1KysgPSAneyc7Ci0gICAgICAgIC8qIE9taXQgdGhlIGJyYWNrZXRzIGZyb20gdGhlIGxpc3RyZXByICovCi0gICAgICAgIFB5X1VOSUNPREVfQ09QWSh1LCBQeVVuaWNvZGVfQVNfVU5JQ09ERShsaXN0cmVwcikrMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShsaXN0cmVwciktMik7Ci0gICAgICAgIHUgKz0gbmV3c2l6ZS0yOwotICAgICAgICAqdSsrID0gJ30nOwotICAgIH0KKyAgICB0bXAgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKGxpc3RyZXByLCAxLCBQeVVuaWNvZGVfR0VUX0xFTkdUSChsaXN0cmVwciktMSk7CiAgICAgUHlfREVDUkVGKGxpc3RyZXByKTsKLSAgICBpZiAoUHlfVFlQRShzbykgIT0gJlB5U2V0X1R5cGUpIHsKLSAgICAgICAgUHlPYmplY3QgKnRtcCA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlcyglVSkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShzbyktPnRwX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQpOwotICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKLSAgICAgICAgcmVzdWx0ID0gdG1wOwotICAgIH0KKyAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBsaXN0cmVwciA9IHRtcDsKKworICAgIGlmIChQeV9UWVBFKHNvKSAhPSAmUHlTZXRfVHlwZSkKKyAgICAgICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVzKHslVX0pIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfVFlQRShzbyktPnRwX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RyZXByKTsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCJ7JVV9IiwgbGlzdHJlcHIpOworICAgIFB5X0RFQ1JFRihsaXN0cmVwcik7CiBkb25lOgogICAgIFB5X1JlcHJMZWF2ZSgoUHlPYmplY3QqKXNvKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtNjgyLDcgKzY3NCw3IEBACiAgICAgc2V0ZW50cnkgKmVudHJ5OwogCiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2tFeGFjdChrZXkpIHx8Ci0gICAgICAgIChoYXNoID0gKChQeVVuaWNvZGVPYmplY3QgKikga2V5KS0+aGFzaCkgPT0gLTEpIHsKKyAgICAgICAgKGhhc2ggPSAoKFB5QVNDSUlPYmplY3QgKikga2V5KS0+aGFzaCkgPT0gLTEpIHsKICAgICAgICAgaGFzaCA9IFB5T2JqZWN0X0hhc2goa2V5KTsKICAgICAgICAgaWYgKGhhc2ggPT0gLTEpCiAgICAgICAgICAgICByZXR1cm4gLTE7CkBAIC03NjgsMTQgKzc2MCwxNCBAQAogZnJvemVuc2V0X2hhc2goUHlPYmplY3QgKnNlbGYpCiB7CiAgICAgUHlTZXRPYmplY3QgKnNvID0gKFB5U2V0T2JqZWN0ICopc2VsZjsKLSAgICBQeV9oYXNoX3QgaCwgaGFzaCA9IDE5Mjc4NjgyMzdMOworICAgIFB5X3VoYXNoX3QgaCwgaGFzaCA9IDE5Mjc4NjgyMzdVOwogICAgIHNldGVudHJ5ICplbnRyeTsKICAgICBQeV9zc2l6ZV90IHBvcyA9IDA7CiAKICAgICBpZiAoc28tPmhhc2ggIT0gLTEpCiAgICAgICAgIHJldHVybiBzby0+aGFzaDsKIAotICAgIGhhc2ggKj0gUHlTZXRfR0VUX1NJWkUoc2VsZikgKyAxOworICAgIGhhc2ggKj0gKFB5X3VoYXNoX3QpUHlTZXRfR0VUX1NJWkUoc2VsZikgKyAxOwogICAgIHdoaWxlIChzZXRfbmV4dChzbywgJnBvcywgJmVudHJ5KSkgewogICAgICAgICAvKiBXb3JrIHRvIGluY3JlYXNlIHRoZSBiaXQgZGlzcGVyc2lvbiBmb3IgY2xvc2VseSBzcGFjZWQgaGFzaAogICAgICAgICAgICB2YWx1ZXMuICBUaGUgaXMgaW1wb3J0YW50IGJlY2F1c2Ugc29tZSB1c2UgY2FzZXMgaGF2ZSBtYW55CkBAIC03ODMsMTEgKzc3NSwxMSBAQAogICAgICAgICAgICBoYXNoZXMgc28gdGhhdCBtYW55IGRpc3RpbmN0IGNvbWJpbmF0aW9ucyBjb2xsYXBzZSB0byBvbmx5CiAgICAgICAgICAgIGEgaGFuZGZ1bCBvZiBkaXN0aW5jdCBoYXNoIHZhbHVlcy4gKi8KICAgICAgICAgaCA9IGVudHJ5LT5oYXNoOwotICAgICAgICBoYXNoIF49IChoIF4gKGggPDwgMTYpIF4gODk4Njk3NDdMKSAgKiAzNjQ0Nzk4MTY3dTsKKyAgICAgICAgaGFzaCBePSAoaCBeIChoIDw8IDE2KSBeIDg5ODY5NzQ3VSkgICogMzY0NDc5ODE2N1U7CiAgICAgfQotICAgIGhhc2ggPSBoYXNoICogNjkwNjlMICsgOTA3MTMzOTIzTDsKKyAgICBoYXNoID0gaGFzaCAqIDY5MDY5VSArIDkwNzEzMzkyM1U7CiAgICAgaWYgKGhhc2ggPT0gLTEpCi0gICAgICAgIGhhc2ggPSA1OTA5MjM3MTNMOworICAgICAgICBoYXNoID0gNTkwOTIzNzEzVTsKICAgICBzby0+aGFzaCA9IGhhc2g7CiAgICAgcmV0dXJuIGhhc2g7CiB9CkBAIC04MjcsOCArODE5LDUxIEBACiAKIFB5RG9jX1NUUlZBUihsZW5ndGhfaGludF9kb2MsICJQcml2YXRlIG1ldGhvZCByZXR1cm5pbmcgYW4gZXN0aW1hdGUgb2YgbGVuKGxpc3QoaXQpKS4iKTsKIAorc3RhdGljIFB5T2JqZWN0ICpzZXRpdGVyX2l0ZXJuZXh0KHNldGl0ZXJvYmplY3QgKnNpKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK3NldGl0ZXJfcmVkdWNlKHNldGl0ZXJvYmplY3QgKnNpKQoreworICAgIFB5T2JqZWN0ICpsaXN0OworICAgIHNldGl0ZXJvYmplY3QgdG1wOworCisgICAgbGlzdCA9IFB5TGlzdF9OZXcoMCk7CisgICAgaWYgKCFsaXN0KQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8qIGNvcHkgdGhlIGl0ZXJ0b3Igc3RhdGUgKi8KKyAgICB0bXAgPSAqc2k7CisgICAgUHlfWElOQ1JFRih0bXAuc2lfc2V0KTsKKyAgICAKKyAgICAvKiBpdGVyYXRlIHRoZSB0ZW1wb3JhcnkgaW50byBhIGxpc3QgKi8KKyAgICBmb3IoOzspIHsKKyAgICAgICAgUHlPYmplY3QgKmVsZW1lbnQgPSBzZXRpdGVyX2l0ZXJuZXh0KCZ0bXApOworICAgICAgICBpZiAoZWxlbWVudCkgeworICAgICAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQobGlzdCwgZWxlbWVudCkpIHsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYoZWxlbWVudCk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGxpc3QpOworICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodG1wLnNpX3NldCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBQeV9ERUNSRUYoZWxlbWVudCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIFB5X1hERUNSRUYodG1wLnNpX3NldCk7CisgICAgLyogY2hlY2sgZm9yIGVycm9yICovCisgICAgaWYgKHRtcC5zaV9zZXQgIT0gTlVMTCkgeworICAgICAgICAvKiB3ZSBoYXZlIGFuIGVycm9yICovCisgICAgICAgIFB5X0RFQ1JFRihsaXN0KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJOKE4pIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oIml0ZXIiKSwgbGlzdCk7Cit9CisKK1B5RG9jX1NUUlZBUihyZWR1Y2VfZG9jLCAiUmV0dXJuIHN0YXRlIGluZm9ybWF0aW9uIGZvciBwaWNrbGluZy4iKTsKKwogc3RhdGljIFB5TWV0aG9kRGVmIHNldGl0ZXJfbWV0aG9kc1tdID0gewogICAgIHsiX19sZW5ndGhfaGludF9fIiwgKFB5Q0Z1bmN0aW9uKXNldGl0ZXJfbGVuLCBNRVRIX05PQVJHUywgbGVuZ3RoX2hpbnRfZG9jfSwKKyAgICB7Il9fcmVkdWNlX18iLCAoUHlDRnVuY3Rpb24pc2V0aXRlcl9yZWR1Y2UsIE1FVEhfTk9BUkdTLCByZWR1Y2VfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwogfTsKIApAQCAtMTA3Niw5ICsxMTExLDEwIEBACiAgICAgcmV0dXJuIGVtcHR5ZnJvemVuc2V0OwogfQogCi12b2lkCi1QeVNldF9GaW5pKHZvaWQpCitpbnQKK1B5U2V0X0NsZWFyRnJlZUxpc3Qodm9pZCkKIHsKKyAgICBpbnQgZnJlZWxpc3Rfc2l6ZSA9IG51bWZyZWU7CiAgICAgUHlTZXRPYmplY3QgKnNvOwogCiAgICAgd2hpbGUgKG51bWZyZWUpIHsKQEAgLTEwODYsMTAgKzExMjIsMjcgQEAKICAgICAgICAgc28gPSBmcmVlX2xpc3RbbnVtZnJlZV07CiAgICAgICAgIFB5T2JqZWN0X0dDX0RlbChzbyk7CiAgICAgfQorICAgIHJldHVybiBmcmVlbGlzdF9zaXplOworfQorCit2b2lkCitQeVNldF9GaW5pKHZvaWQpCit7CisgICAgUHlTZXRfQ2xlYXJGcmVlTGlzdCgpOwogICAgIFB5X0NMRUFSKGR1bW15KTsKICAgICBQeV9DTEVBUihlbXB0eWZyb3plbnNldCk7CiB9CiAKKy8qIFByaW50IHN1bW1hcnkgaW5mbyBhYm91dCB0aGUgc3RhdGUgb2YgdGhlIG9wdGltaXplZCBhbGxvY2F0b3IgKi8KK3ZvaWQKK19QeVNldF9EZWJ1Z01hbGxvY1N0YXRzKEZJTEUgKm91dCkKK3sKKyAgICBfUHlEZWJ1Z0FsbG9jYXRvclN0YXRzKG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcmVlIFB5U2V0T2JqZWN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWZyZWUsIHNpemVvZihQeVNldE9iamVjdCkpOworfQorCisKIHN0YXRpYyBQeU9iamVjdCAqCiBzZXRfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewpAQCAtMTIxMCwxMCArMTI2Myw4IEBACiB7CiAgICAgUHlTZXRPYmplY3QgKnJlc3VsdDsKIAotICAgIGlmICghUHlBbnlTZXRfQ2hlY2soc28pIHx8ICFQeUFueVNldF9DaGVjayhvdGhlcikpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZiAoIVB5QW55U2V0X0NoZWNrKHNvKSB8fCAhUHlBbnlTZXRfQ2hlY2sob3RoZXIpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAKICAgICByZXN1bHQgPSAoUHlTZXRPYmplY3QgKilzZXRfY29weShzbyk7CiAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQpAQCAtMTIzMCwxMCArMTI4MSw5IEBACiBzdGF0aWMgUHlPYmplY3QgKgogc2V0X2lvcihQeVNldE9iamVjdCAqc28sIFB5T2JqZWN0ICpvdGhlcikKIHsKLSAgICBpZiAoIVB5QW55U2V0X0NoZWNrKG90aGVyKSkgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7Ci0gICAgfQorICAgIGlmICghUHlBbnlTZXRfQ2hlY2sob3RoZXIpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CisKICAgICBpZiAoc2V0X3VwZGF0ZV9pbnRlcm5hbChzbywgb3RoZXIpID09IC0xKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBQeV9JTkNSRUYoc28pOwpAQCAtMTM4MywxMCArMTQzMyw4IEBACiBzdGF0aWMgUHlPYmplY3QgKgogc2V0X2FuZChQeVNldE9iamVjdCAqc28sIFB5T2JqZWN0ICpvdGhlcikKIHsKLSAgICBpZiAoIVB5QW55U2V0X0NoZWNrKHNvKSB8fCAhUHlBbnlTZXRfQ2hlY2sob3RoZXIpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKLSAgICB9CisgICAgaWYgKCFQeUFueVNldF9DaGVjayhzbykgfHwgIVB5QW55U2V0X0NoZWNrKG90aGVyKSkKKyAgICAgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogICAgIHJldHVybiBzZXRfaW50ZXJzZWN0aW9uKHNvLCBvdGhlcik7CiB9CiAKQEAgLTEzOTUsMTAgKzE0NDMsOCBAQAogewogICAgIFB5T2JqZWN0ICpyZXN1bHQ7CiAKLSAgICBpZiAoIVB5QW55U2V0X0NoZWNrKG90aGVyKSkgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7Ci0gICAgfQorICAgIGlmICghUHlBbnlTZXRfQ2hlY2sob3RoZXIpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAgICAgcmVzdWx0ID0gc2V0X2ludGVyc2VjdGlvbl91cGRhdGUoc28sIG90aGVyKTsKICAgICBpZiAocmVzdWx0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTYyNSwyMCArMTY3MSwxNiBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHNldF9zdWIoUHlTZXRPYmplY3QgKnNvLCBQeU9iamVjdCAqb3RoZXIpCiB7Ci0gICAgaWYgKCFQeUFueVNldF9DaGVjayhzbykgfHwgIVB5QW55U2V0X0NoZWNrKG90aGVyKSkgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7Ci0gICAgfQorICAgIGlmICghUHlBbnlTZXRfQ2hlY2soc28pIHx8ICFQeUFueVNldF9DaGVjayhvdGhlcikpCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICByZXR1cm4gc2V0X2RpZmZlcmVuY2Uoc28sIG90aGVyKTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKIHNldF9pc3ViKFB5U2V0T2JqZWN0ICpzbywgUHlPYmplY3QgKm90aGVyKQogewotICAgIGlmICghUHlBbnlTZXRfQ2hlY2sob3RoZXIpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKLSAgICB9CisgICAgaWYgKCFQeUFueVNldF9DaGVjayhvdGhlcikpCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICBpZiAoc2V0X2RpZmZlcmVuY2VfdXBkYXRlX2ludGVybmFsKHNvLCBvdGhlcikgPT0gLTEpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIFB5X0lOQ1JFRihzbyk7CkBAIC0xNzM2LDEwICsxNzc4LDggQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBzZXRfeG9yKFB5U2V0T2JqZWN0ICpzbywgUHlPYmplY3QgKm90aGVyKQogewotICAgIGlmICghUHlBbnlTZXRfQ2hlY2soc28pIHx8ICFQeUFueVNldF9DaGVjayhvdGhlcikpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZiAoIVB5QW55U2V0X0NoZWNrKHNvKSB8fCAhUHlBbnlTZXRfQ2hlY2sob3RoZXIpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAgICAgcmV0dXJuIHNldF9zeW1tZXRyaWNfZGlmZmVyZW5jZShzbywgb3RoZXIpOwogfQogCkBAIC0xNzQ4LDEwICsxNzg4LDggQEAKIHsKICAgICBQeU9iamVjdCAqcmVzdWx0OwogCi0gICAgaWYgKCFQeUFueVNldF9DaGVjayhvdGhlcikpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZiAoIVB5QW55U2V0X0NoZWNrKG90aGVyKSkKKyAgICAgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogICAgIHJlc3VsdCA9IHNldF9zeW1tZXRyaWNfZGlmZmVyZW5jZV91cGRhdGUoc28sIG90aGVyKTsKICAgICBpZiAocmVzdWx0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTgxMywxMCArMTg1MSw5IEBACiB7CiAgICAgUHlPYmplY3QgKnIxLCAqcjI7CiAKLSAgICBpZighUHlBbnlTZXRfQ2hlY2sodykpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZighUHlBbnlTZXRfQ2hlY2sodykpCisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKKwogICAgIHN3aXRjaCAob3ApIHsKICAgICBjYXNlIFB5X0VROgogICAgICAgICBpZiAoUHlTZXRfR0VUX1NJWkUodikgIT0gUHlTZXRfR0VUX1NJWkUodykpCkBAIC0xODQ2LDggKzE4ODMsNyBAQAogICAgICAgICAgICAgUHlfUkVUVVJOX0ZBTFNFOwogICAgICAgICByZXR1cm4gc2V0X2lzc3VwZXJzZXQodiwgdyk7CiAgICAgfQotICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOworICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTE5NTksNiArMTk5NSw3IEBACiBzZXRfcmVkdWNlKFB5U2V0T2JqZWN0ICpzbykKIHsKICAgICBQeU9iamVjdCAqa2V5cz1OVUxMLCAqYXJncz1OVUxMLCAqcmVzdWx0PU5VTEwsICpkaWN0PU5VTEw7CisgICAgX1B5X0lERU5USUZJRVIoX19kaWN0X18pOwogCiAgICAga2V5cyA9IFB5U2VxdWVuY2VfTGlzdCgoUHlPYmplY3QgKilzbyk7CiAgICAgaWYgKGtleXMgPT0gTlVMTCkKQEAgLTE5NjYsNyArMjAwMyw3IEBACiAgICAgYXJncyA9IFB5VHVwbGVfUGFjaygxLCBrZXlzKTsKICAgICBpZiAoYXJncyA9PSBOVUxMKQogICAgICAgICBnb3RvIGRvbmU7Ci0gICAgZGljdCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoKFB5T2JqZWN0ICopc28sICJfX2RpY3RfXyIpOworICAgIGRpY3QgPSBfUHlPYmplY3RfR2V0QXR0cklkKChQeU9iamVjdCAqKXNvLCAmUHlJZF9fX2RpY3RfXyk7CiAgICAgaWYgKGRpY3QgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICBkaWN0ID0gUHlfTm9uZTsKQEAgLTE5ODAsOCArMjAxNyw2IEBACiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotUHlEb2NfU1RSVkFSKHJlZHVjZV9kb2MsICJSZXR1cm4gc3RhdGUgaW5mb3JtYXRpb24gZm9yIHBpY2tsaW5nLiIpOwotCiBzdGF0aWMgUHlPYmplY3QgKgogc2V0X3NpemVvZihQeVNldE9iamVjdCAqc28pCiB7CmRpZmYgLS1naXQgYS9PYmplY3RzL3NsaWNlb2JqZWN0LmMgYi9PYmplY3RzL3NsaWNlb2JqZWN0LmMKaW5kZXggZDdiOTdjOS4uYzRhMTkwNyAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zbGljZW9iamVjdC5jCisrKyBiL09iamVjdHMvc2xpY2VvYmplY3QuYwpAQCAtMTcsNiArMTcsMTcgQEAKICNpbmNsdWRlICJzdHJ1Y3RtZW1iZXIuaCIKIAogc3RhdGljIFB5T2JqZWN0ICoKK2VsbGlwc2lzX25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQoreworICAgIGlmIChQeVR1cGxlX0dFVF9TSVpFKGFyZ3MpIHx8IChrd2FyZ3MgJiYgUHlEaWN0X1NpemUoa3dhcmdzKSkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIkVsbGlwc2lzVHlwZSB0YWtlcyBubyBhcmd1bWVudHMiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIFB5X0lOQ1JFRihQeV9FbGxpcHNpcyk7CisgICAgcmV0dXJuIFB5X0VsbGlwc2lzOworfQorCitzdGF0aWMgUHlPYmplY3QgKgogZWxsaXBzaXNfcmVwcihQeU9iamVjdCAqb3ApCiB7CiAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJFbGxpcHNpcyIpOwpAQCAtNDMsNiArNTQsMjQgQEAKICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9zZXRhdHRybyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLwogICAgIFB5X1RQRkxBR1NfREVGQVVMVCwgICAgICAgICAgICAgICAgIC8qIHRwX2ZsYWdzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9jbGVhciAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCisgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLworICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2luaXQgKi8KKyAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9hbGxvYyAqLworICAgIGVsbGlwc2lzX25ldywgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX25ldyAqLwogfTsKIAogUHlPYmplY3QgX1B5X0VsbGlwc2lzT2JqZWN0ID0gewpAQCAtNTEsMTkgKzgwLDM4IEBACiB9OwogCiAKLS8qIFNsaWNlIG9iamVjdCBpbXBsZW1lbnRhdGlvbgorLyogU2xpY2Ugb2JqZWN0IGltcGxlbWVudGF0aW9uICovCiAKLSAgIHN0YXJ0LCBzdG9wLCBhbmQgc3RlcCBhcmUgcHl0aG9uIG9iamVjdHMgd2l0aCBOb25lIGluZGljYXRpbmcgbm8KKy8qIFVzaW5nIGEgY2FjaGUgaXMgdmVyeSBlZmZlY3RpdmUgc2luY2UgdHlwaWNhbGx5IG9ubHkgYSBzaW5nbGUgc2xpY2UgaXMKKyAqIGNyZWF0ZWQgYW5kIHRoZW4gZGVsZXRlZCBhZ2FpbgorICovCitzdGF0aWMgUHlTbGljZU9iamVjdCAqc2xpY2VfY2FjaGUgPSBOVUxMOwordm9pZCBQeVNsaWNlX0Zpbmkodm9pZCkKK3sKKyAgICBQeVNsaWNlT2JqZWN0ICpvYmogPSBzbGljZV9jYWNoZTsKKyAgICBpZiAob2JqICE9IE5VTEwpIHsKKyAgICAgICAgc2xpY2VfY2FjaGUgPSBOVUxMOworICAgICAgICBQeU9iamVjdF9EZWwob2JqKTsKKyAgICB9Cit9CisKKy8qIHN0YXJ0LCBzdG9wLCBhbmQgc3RlcCBhcmUgcHl0aG9uIG9iamVjdHMgd2l0aCBOb25lIGluZGljYXRpbmcgbm8KICAgIGluZGV4IGlzIHByZXNlbnQuCiAqLwogCiBQeU9iamVjdCAqCiBQeVNsaWNlX05ldyhQeU9iamVjdCAqc3RhcnQsIFB5T2JqZWN0ICpzdG9wLCBQeU9iamVjdCAqc3RlcCkKIHsKLSAgICBQeVNsaWNlT2JqZWN0ICpvYmogPSBQeU9iamVjdF9OZXcoUHlTbGljZU9iamVjdCwgJlB5U2xpY2VfVHlwZSk7Ci0KLSAgICBpZiAob2JqID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOworICAgIFB5U2xpY2VPYmplY3QgKm9iajsKKyAgICBpZiAoc2xpY2VfY2FjaGUgIT0gTlVMTCkgeworICAgICAgICBvYmogPSBzbGljZV9jYWNoZTsKKyAgICAgICAgc2xpY2VfY2FjaGUgPSBOVUxMOworICAgICAgICBfUHlfTmV3UmVmZXJlbmNlKChQeU9iamVjdCAqKW9iaik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb2JqID0gUHlPYmplY3RfTmV3KFB5U2xpY2VPYmplY3QsICZQeVNsaWNlX1R5cGUpOworICAgICAgICBpZiAob2JqID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAKICAgICBpZiAoc3RlcCA9PSBOVUxMKSBzdGVwID0gUHlfTm9uZTsKICAgICBQeV9JTkNSRUYoc3RlcCk7CkBAIC0yMzEsNyArMjc5LDEwIEBACiAgICAgUHlfREVDUkVGKHItPnN0ZXApOwogICAgIFB5X0RFQ1JFRihyLT5zdGFydCk7CiAgICAgUHlfREVDUkVGKHItPnN0b3ApOwotICAgIFB5T2JqZWN0X0RlbChyKTsKKyAgICBpZiAoc2xpY2VfY2FjaGUgPT0gTlVMTCkKKyAgICAgICAgc2xpY2VfY2FjaGUgPSByOworICAgIGVsc2UKKyAgICAgICAgUHlPYmplY3RfRGVsKHIpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMjk3LDEwICszNDgsOCBAQAogICAgIFB5T2JqZWN0ICp0MjsKICAgICBQeU9iamVjdCAqcmVzOwogCi0gICAgaWYgKCFQeVNsaWNlX0NoZWNrKHYpIHx8ICFQeVNsaWNlX0NoZWNrKHcpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKLSAgICB9CisgICAgaWYgKCFQeVNsaWNlX0NoZWNrKHYpIHx8ICFQeVNsaWNlX0NoZWNrKHcpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAKICAgICBpZiAodiA9PSB3KSB7CiAgICAgICAgIC8qIFhYWCBEbyB3ZSByZWFsbHkgbmVlZCB0aGlzIHNob3J0Y3V0PwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvYXNjaWlsaWIuaCBiL09iamVjdHMvc3RyaW5nbGliL2FzY2lpbGliLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjYyODEzZAotLS0gL2Rldi9udWxsCisrKyBiL09iamVjdHMvc3RyaW5nbGliL2FzY2lpbGliLmgKQEAgLTAsMCArMSwzMCBAQAorLyogdGhpcyBpcyBzb3J0IG9mIGEgaGFjay4gIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIHBsYWNlIChmb3JtYXR0aW5nCisgICBmbG9hdHMpIHdoZXJlIHNvbWUgc3RyaW5nbGliIGNvZGUgdGFrZXMgYSBkaWZmZXJlbnQgcGF0aCBpZiBpdCdzCisgICBjb21waWxlZCBhcyB1bmljb2RlLiAqLworI2RlZmluZSBTVFJJTkdMSUJfSVNfVU5JQ09ERSAgICAgMQorCisjZGVmaW5lIEZBU1RTRUFSQ0ggICAgICAgICAgICAgICBhc2NpaWxpYl9mYXN0c2VhcmNoCisjZGVmaW5lIFNUUklOR0xJQihGKSAgICAgICAgICAgICBhc2NpaWxpYl8jI0YKKyNkZWZpbmUgU1RSSU5HTElCX09CSkVDVCAgICAgICAgIFB5VW5pY29kZU9iamVjdAorI2RlZmluZSBTVFJJTkdMSUJfU0laRU9GX0NIQVIgICAgMQorI2RlZmluZSBTVFJJTkdMSUJfTUFYX0NIQVIgICAgICAgMHg3RnUKKyNkZWZpbmUgU1RSSU5HTElCX0NIQVIgICAgICAgICAgIFB5X1VDUzEKKyNkZWZpbmUgU1RSSU5HTElCX1RZUEVfTkFNRSAgICAgICJ1bmljb2RlIgorI2RlZmluZSBTVFJJTkdMSUJfUEFSU0VfQ09ERSAgICAgIlUiCisjZGVmaW5lIFNUUklOR0xJQl9FTVBUWSAgICAgICAgICB1bmljb2RlX2VtcHR5CisjZGVmaW5lIFNUUklOR0xJQl9JU1NQQUNFICAgICAgICBQeV9VTklDT0RFX0lTU1BBQ0UKKyNkZWZpbmUgU1RSSU5HTElCX0lTTElORUJSRUFLICAgIEJMT09NX0xJTkVCUkVBSworI2RlZmluZSBTVFJJTkdMSUJfSVNERUNJTUFMICAgICAgUHlfVU5JQ09ERV9JU0RFQ0lNQUwKKyNkZWZpbmUgU1RSSU5HTElCX1RPREVDSU1BTCAgICAgIFB5X1VOSUNPREVfVE9ERUNJTUFMCisjZGVmaW5lIFNUUklOR0xJQl9TVFIgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQQorI2RlZmluZSBTVFJJTkdMSUJfTEVOICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgKKyNkZWZpbmUgU1RSSU5HTElCX05FVyhTVFIsTEVOKSAgIF9QeVVuaWNvZGVfRnJvbUFTQ0lJKChjaGFyKikoU1RSKSwoTEVOKSkKKyNkZWZpbmUgU1RSSU5HTElCX1JFU0laRSAgICAgICAgIG5vdF9zdXBwb3J0ZWQKKyNkZWZpbmUgU1RSSU5HTElCX0NIRUNLICAgICAgICAgIFB5VW5pY29kZV9DaGVjaworI2RlZmluZSBTVFJJTkdMSUJfQ0hFQ0tfRVhBQ1QgICAgUHlVbmljb2RlX0NoZWNrRXhhY3QKKworI2RlZmluZSBTVFJJTkdMSUJfVE9TVFIgICAgICAgICAgUHlPYmplY3RfU3RyCisjZGVmaW5lIFNUUklOR0xJQl9UT0FTQ0lJICAgICAgICBQeU9iamVjdF9BU0NJSQorCisjZGVmaW5lIF9QeV9JbnNlcnRUaG91c2FuZHNHcm91cGluZyBfUHlVbmljb2RlX2FzY2lpX0luc2VydFRob3VzYW5kc0dyb3VwaW5nCisKZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL2NvZGVjcy5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvY29kZWNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q1NWY0OQotLS0gL2Rldi9udWxsCisrKyBiL09iamVjdHMvc3RyaW5nbGliL2NvZGVjcy5oCkBAIC0wLDAgKzEsNjMzIEBACisvKiBzdHJpbmdsaWI6IGNvZGVjIGltcGxlbWVudGF0aW9ucyAqLworCisjaWYgU1RSSU5HTElCX0lTX1VOSUNPREUKKworLyogTWFzayB0byBjaGVjayBvciBmb3JjZSBhbGlnbm1lbnQgb2YgYSBwb2ludGVyIHRvIEMgJ2xvbmcnIGJvdW5kYXJpZXMgKi8KKyNkZWZpbmUgTE9OR19QVFJfTUFTSyAoc2l6ZV90KSAoU0laRU9GX0xPTkcgLSAxKQorCisvKiBNYXNrIHRvIHF1aWNrbHkgY2hlY2sgd2hldGhlciBhIEMgJ2xvbmcnIGNvbnRhaW5zIGEKKyAgIG5vbi1BU0NJSSwgVVRGOC1lbmNvZGVkIGNoYXIuICovCisjaWYgKFNJWkVPRl9MT05HID09IDgpCisjIGRlZmluZSBBU0NJSV9DSEFSX01BU0sgMHg4MDgwODA4MDgwODA4MDgwVUwKKyNlbGlmIChTSVpFT0ZfTE9ORyA9PSA0KQorIyBkZWZpbmUgQVNDSUlfQ0hBUl9NQVNLIDB4ODA4MDgwODBVTAorI2Vsc2UKKyMgZXJyb3IgQyAnbG9uZycgc2l6ZSBzaG91bGQgYmUgZWl0aGVyIDQgb3IgOCEKKyNlbmRpZgorCisvKiAxMHh4eHh4eCAqLworI2RlZmluZSBJU19DT05USU5VQVRJT05fQllURShjaCkgKChjaCkgPj0gMHg4MCAmJiAoY2gpIDwgMHhDMCkKKworUHlfTE9DQUxfSU5MSU5FKFB5X1VDUzQpCitTVFJJTkdMSUIodXRmOF9kZWNvZGUpKGNvbnN0IGNoYXIgKippbnB0ciwgY29uc3QgY2hhciAqZW5kLAorICAgICAgICAgICAgICAgICAgICAgICBTVFJJTkdMSUJfQ0hBUiAqZGVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqb3V0cG9zKQoreworICAgIFB5X1VDUzQgY2g7CisgICAgY29uc3QgY2hhciAqcyA9ICppbnB0cjsKKyAgICBjb25zdCBjaGFyICphbGlnbmVkX2VuZCA9IChjb25zdCBjaGFyICopICgoc2l6ZV90KSBlbmQgJiB+TE9OR19QVFJfTUFTSyk7CisgICAgU1RSSU5HTElCX0NIQVIgKnAgPSBkZXN0ICsgKm91dHBvczsKKworICAgIHdoaWxlIChzIDwgZW5kKSB7CisgICAgICAgIGNoID0gKHVuc2lnbmVkIGNoYXIpKnM7CisKKyAgICAgICAgaWYgKGNoIDwgMHg4MCkgeworICAgICAgICAgICAgLyogRmFzdCBwYXRoIGZvciBydW5zIG9mIEFTQ0lJIGNoYXJhY3RlcnMuIEdpdmVuIHRoYXQgY29tbW9uIFVURi04CisgICAgICAgICAgICAgICBpbnB1dCB3aWxsIGNvbnNpc3Qgb2YgYW4gb3ZlcndoZWxtaW5nIG1ham9yaXR5IG9mIEFTQ0lJCisgICAgICAgICAgICAgICBjaGFyYWN0ZXJzLCB3ZSB0cnkgdG8gb3B0aW1pemUgZm9yIHRoaXMgY2FzZSBieSBjaGVja2luZworICAgICAgICAgICAgICAgYXMgbWFueSBjaGFyYWN0ZXJzIGFzIGEgQyAnbG9uZycgY2FuIGNvbnRhaW4uCisgICAgICAgICAgICAgICBGaXJzdCwgY2hlY2sgaWYgd2UgY2FuIGRvIGFuIGFsaWduZWQgcmVhZCwgYXMgbW9zdCBDUFVzIGhhdmUKKyAgICAgICAgICAgICAgIGEgcGVuYWx0eSBmb3IgdW5hbGlnbmVkIHJlYWRzLgorICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICghKChzaXplX3QpIHMgJiBMT05HX1BUUl9NQVNLKSkgeworICAgICAgICAgICAgICAgIC8qIEhlbHAgcmVnaXN0ZXIgYWxsb2NhdGlvbiAqLworICAgICAgICAgICAgICAgIHJlZ2lzdGVyIGNvbnN0IGNoYXIgKl9zID0gczsKKyAgICAgICAgICAgICAgICByZWdpc3RlciBTVFJJTkdMSUJfQ0hBUiAqX3AgPSBwOworICAgICAgICAgICAgICAgIHdoaWxlIChfcyA8IGFsaWduZWRfZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIFJlYWQgYSB3aG9sZSBsb25nIGF0IGEgdGltZSAoZWl0aGVyIDQgb3IgOCBieXRlcyksCisgICAgICAgICAgICAgICAgICAgICAgIGFuZCBkbyBhIGZhc3QgdW5yb2xsZWQgY29weSBpZiBpdCBvbmx5IGNvbnRhaW5zIEFTQ0lJCisgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMuICovCisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgdmFsdWUgPSAqKHVuc2lnbmVkIGxvbmcgKikgX3M7CisgICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSAmIEFTQ0lJX0NIQVJfTUFTSykKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworI2lmZGVmIEJZVEVPUkRFUl9JU19MSVRUTEVfRU5ESUFOCisgICAgICAgICAgICAgICAgICAgIF9wWzBdID0gKFNUUklOR0xJQl9DSEFSKSh2YWx1ZSAmIDB4RkZ1KTsKKyAgICAgICAgICAgICAgICAgICAgX3BbMV0gPSAoU1RSSU5HTElCX0NIQVIpKCh2YWx1ZSA+PiA4KSAmIDB4RkZ1KTsKKyAgICAgICAgICAgICAgICAgICAgX3BbMl0gPSAoU1RSSU5HTElCX0NIQVIpKCh2YWx1ZSA+PiAxNikgJiAweEZGdSk7CisgICAgICAgICAgICAgICAgICAgIF9wWzNdID0gKFNUUklOR0xJQl9DSEFSKSgodmFsdWUgPj4gMjQpICYgMHhGRnUpOworIyBpZiBTSVpFT0ZfTE9ORyA9PSA4CisgICAgICAgICAgICAgICAgICAgIF9wWzRdID0gKFNUUklOR0xJQl9DSEFSKSgodmFsdWUgPj4gMzIpICYgMHhGRnUpOworICAgICAgICAgICAgICAgICAgICBfcFs1XSA9IChTVFJJTkdMSUJfQ0hBUikoKHZhbHVlID4+IDQwKSAmIDB4RkZ1KTsKKyAgICAgICAgICAgICAgICAgICAgX3BbNl0gPSAoU1RSSU5HTElCX0NIQVIpKCh2YWx1ZSA+PiA0OCkgJiAweEZGdSk7CisgICAgICAgICAgICAgICAgICAgIF9wWzddID0gKFNUUklOR0xJQl9DSEFSKSgodmFsdWUgPj4gNTYpICYgMHhGRnUpOworIyBlbmRpZgorI2Vsc2UKKyMgaWYgU0laRU9GX0xPTkcgPT0gOAorICAgICAgICAgICAgICAgICAgICBfcFswXSA9IChTVFJJTkdMSUJfQ0hBUikoKHZhbHVlID4+IDU2KSAmIDB4RkZ1KTsKKyAgICAgICAgICAgICAgICAgICAgX3BbMV0gPSAoU1RSSU5HTElCX0NIQVIpKCh2YWx1ZSA+PiA0OCkgJiAweEZGdSk7CisgICAgICAgICAgICAgICAgICAgIF9wWzJdID0gKFNUUklOR0xJQl9DSEFSKSgodmFsdWUgPj4gNDApICYgMHhGRnUpOworICAgICAgICAgICAgICAgICAgICBfcFszXSA9IChTVFJJTkdMSUJfQ0hBUikoKHZhbHVlID4+IDMyKSAmIDB4RkZ1KTsKKyAgICAgICAgICAgICAgICAgICAgX3BbNF0gPSAoU1RSSU5HTElCX0NIQVIpKCh2YWx1ZSA+PiAyNCkgJiAweEZGdSk7CisgICAgICAgICAgICAgICAgICAgIF9wWzVdID0gKFNUUklOR0xJQl9DSEFSKSgodmFsdWUgPj4gMTYpICYgMHhGRnUpOworICAgICAgICAgICAgICAgICAgICBfcFs2XSA9IChTVFJJTkdMSUJfQ0hBUikoKHZhbHVlID4+IDgpICYgMHhGRnUpOworICAgICAgICAgICAgICAgICAgICBfcFs3XSA9IChTVFJJTkdMSUJfQ0hBUikodmFsdWUgJiAweEZGdSk7CisjIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgX3BbMF0gPSAoU1RSSU5HTElCX0NIQVIpKCh2YWx1ZSA+PiAyNCkgJiAweEZGdSk7CisgICAgICAgICAgICAgICAgICAgIF9wWzFdID0gKFNUUklOR0xJQl9DSEFSKSgodmFsdWUgPj4gMTYpICYgMHhGRnUpOworICAgICAgICAgICAgICAgICAgICBfcFsyXSA9IChTVFJJTkdMSUJfQ0hBUikoKHZhbHVlID4+IDgpICYgMHhGRnUpOworICAgICAgICAgICAgICAgICAgICBfcFszXSA9IChTVFJJTkdMSUJfQ0hBUikodmFsdWUgJiAweEZGdSk7CisjIGVuZGlmCisjZW5kaWYKKyAgICAgICAgICAgICAgICAgICAgX3MgKz0gU0laRU9GX0xPTkc7CisgICAgICAgICAgICAgICAgICAgIF9wICs9IFNJWkVPRl9MT05HOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzID0gX3M7CisgICAgICAgICAgICAgICAgcCA9IF9wOworICAgICAgICAgICAgICAgIGlmIChzID09IGVuZCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2ggPSAodW5zaWduZWQgY2hhcikqczsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjaCA8IDB4ODApIHsKKyAgICAgICAgICAgICAgICBzKys7CisgICAgICAgICAgICAgICAgKnArKyA9IGNoOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoIDwgMHhDMikgeworICAgICAgICAgICAgLyogaW52YWxpZCBzZXF1ZW5jZQorICAgICAgICAgICAgICAgXHg4MC1ceEJGIC0tIGNvbnRpbnVhdGlvbiBieXRlCisgICAgICAgICAgICAgICBceEMwLVx4QzEgLS0gZmFrZSAwMDAwLTAwN0YgKi8KKyAgICAgICAgICAgIGdvdG8gSW52YWxpZFN0YXJ0OworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoIDwgMHhFMCkgeworICAgICAgICAgICAgLyogXHhDMlx4ODAtXHhERlx4QkYgLS0gMDA4MC0wN0ZGICovCisgICAgICAgICAgICBQeV9VQ1M0IGNoMjsKKyAgICAgICAgICAgIGlmIChlbmQgLSBzIDwgMikgeworICAgICAgICAgICAgICAgIC8qIHVuZXhwZWN0ZWQgZW5kIG9mIGRhdGE6IHRoZSBjYWxsZXIgd2lsbCBkZWNpZGUgd2hldGhlcgorICAgICAgICAgICAgICAgICAgIGl0J3MgYW4gZXJyb3Igb3Igbm90ICovCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjaDIgPSAodW5zaWduZWQgY2hhcilzWzFdOworICAgICAgICAgICAgaWYgKCFJU19DT05USU5VQVRJT05fQllURShjaDIpKQorICAgICAgICAgICAgICAgIC8qIGludmFsaWQgY29udGludWF0aW9uIGJ5dGUgKi8KKyAgICAgICAgICAgICAgICBnb3RvIEludmFsaWRDb250aW51YXRpb247CisgICAgICAgICAgICBjaCA9IChjaCA8PCA2KSArIGNoMiAtCisgICAgICAgICAgICAgICAgICgoMHhDMCA8PCA2KSArIDB4ODApOworICAgICAgICAgICAgYXNzZXJ0ICgoY2ggPiAweDAwN0YpICYmIChjaCA8PSAweDA3RkYpKTsKKyAgICAgICAgICAgIHMgKz0gMjsKKyAgICAgICAgICAgIGlmIChTVFJJTkdMSUJfTUFYX0NIQVIgPD0gMHgwMDdGIHx8CisgICAgICAgICAgICAgICAgKFNUUklOR0xJQl9NQVhfQ0hBUiA8IDB4MDdGRiAmJiBjaCA+IFNUUklOR0xJQl9NQVhfQ0hBUikpCisgICAgICAgICAgICAgICAgZ290byBPdmVyZmxvdzsKKyAgICAgICAgICAgICpwKysgPSBjaDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoIDwgMHhGMCkgeworICAgICAgICAgICAgLyogXHhFMFx4QTBceDgwLVx4RUZceEJGXHhCRiAtLSAwODAwLUZGRkYgKi8KKyAgICAgICAgICAgIFB5X1VDUzQgY2gyLCBjaDM7CisgICAgICAgICAgICBpZiAoZW5kIC0gcyA8IDMpIHsKKyAgICAgICAgICAgICAgICAvKiB1bmV4cGVjdGVkIGVuZCBvZiBkYXRhOiB0aGUgY2FsbGVyIHdpbGwgZGVjaWRlIHdoZXRoZXIKKyAgICAgICAgICAgICAgICAgICBpdCdzIGFuIGVycm9yIG9yIG5vdCAqLworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2gyID0gKHVuc2lnbmVkIGNoYXIpc1sxXTsKKyAgICAgICAgICAgIGNoMyA9ICh1bnNpZ25lZCBjaGFyKXNbMl07CisgICAgICAgICAgICBpZiAoIUlTX0NPTlRJTlVBVElPTl9CWVRFKGNoMikgfHwKKyAgICAgICAgICAgICAgICAhSVNfQ09OVElOVUFUSU9OX0JZVEUoY2gzKSkgeworICAgICAgICAgICAgICAgIC8qIGludmFsaWQgY29udGludWF0aW9uIGJ5dGUgKi8KKyAgICAgICAgICAgICAgICBnb3RvIEludmFsaWRDb250aW51YXRpb247CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2ggPT0gMHhFMCkgeworICAgICAgICAgICAgICAgIGlmIChjaDIgPCAweEEwKQorICAgICAgICAgICAgICAgICAgICAvKiBpbnZhbGlkIHNlcXVlbmNlCisgICAgICAgICAgICAgICAgICAgICAgIFx4RTBceDgwXHg4MC1ceEUwXHg5Rlx4QkYgLS0gZmFrZSAwMDAwLTA4MDAgKi8KKyAgICAgICAgICAgICAgICAgICAgZ290byBJbnZhbGlkQ29udGludWF0aW9uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gMHhFRCAmJiBjaDIgPiAweDlGKSB7CisgICAgICAgICAgICAgICAgLyogRGVjb2RpbmcgVVRGLTggc2VxdWVuY2VzIGluIHJhbmdlIFx4RURceEEwXHg4MC1ceEVEXHhCRlx4QkYKKyAgICAgICAgICAgICAgICAgICB3aWxsIHJlc3VsdCBpbiBzdXJyb2dhdGVzIGluIHJhbmdlIEQ4MDAtREZGRi4gU3Vycm9nYXRlcyBhcmUKKyAgICAgICAgICAgICAgICAgICBub3QgdmFsaWQgVVRGLTggc28gdGhleSBhcmUgcmVqZWN0ZWQuCisgICAgICAgICAgICAgICAgICAgU2VlIGh0dHA6Ly93d3cudW5pY29kZS5vcmcvdmVyc2lvbnMvVW5pY29kZTUuMi4wL2NoMDMucGRmCisgICAgICAgICAgICAgICAgICAgKHRhYmxlIDMtNykgYW5kIGh0dHA6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzM2MjkudHh0ICovCisgICAgICAgICAgICAgICAgZ290byBJbnZhbGlkQ29udGludWF0aW9uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2ggPSAoY2ggPDwgMTIpICsgKGNoMiA8PCA2KSArIGNoMyAtCisgICAgICAgICAgICAgICAgICgoMHhFMCA8PCAxMikgKyAoMHg4MCA8PCA2KSArIDB4ODApOworICAgICAgICAgICAgYXNzZXJ0ICgoY2ggPiAweDA3RkYpICYmIChjaCA8PSAweEZGRkYpKTsKKyAgICAgICAgICAgIHMgKz0gMzsKKyAgICAgICAgICAgIGlmIChTVFJJTkdMSUJfTUFYX0NIQVIgPD0gMHgwN0ZGIHx8CisgICAgICAgICAgICAgICAgKFNUUklOR0xJQl9NQVhfQ0hBUiA8IDB4RkZGRiAmJiBjaCA+IFNUUklOR0xJQl9NQVhfQ0hBUikpCisgICAgICAgICAgICAgICAgZ290byBPdmVyZmxvdzsKKyAgICAgICAgICAgICpwKysgPSBjaDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGNoIDwgMHhGNSkgeworICAgICAgICAgICAgLyogXHhGMFx4OTBceDgwXHg4MC1ceEY0XHg4Rlx4QkZceEJGIC0tIDEwMDAwLTEwRkZGRiAqLworICAgICAgICAgICAgUHlfVUNTNCBjaDIsIGNoMywgY2g0OworICAgICAgICAgICAgaWYgKGVuZCAtIHMgPCA0KSB7CisgICAgICAgICAgICAgICAgLyogdW5leHBlY3RlZCBlbmQgb2YgZGF0YTogdGhlIGNhbGxlciB3aWxsIGRlY2lkZSB3aGV0aGVyCisgICAgICAgICAgICAgICAgICAgaXQncyBhbiBlcnJvciBvciBub3QgKi8KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoMiA9ICh1bnNpZ25lZCBjaGFyKXNbMV07CisgICAgICAgICAgICBjaDMgPSAodW5zaWduZWQgY2hhcilzWzJdOworICAgICAgICAgICAgY2g0ID0gKHVuc2lnbmVkIGNoYXIpc1szXTsKKyAgICAgICAgICAgIGlmICghSVNfQ09OVElOVUFUSU9OX0JZVEUoY2gyKSB8fAorICAgICAgICAgICAgICAgICFJU19DT05USU5VQVRJT05fQllURShjaDMpIHx8CisgICAgICAgICAgICAgICAgIUlTX0NPTlRJTlVBVElPTl9CWVRFKGNoNCkpIHsKKyAgICAgICAgICAgICAgICAvKiBpbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlICovCisgICAgICAgICAgICAgICAgZ290byBJbnZhbGlkQ29udGludWF0aW9uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGNoID09IDB4RjApIHsKKyAgICAgICAgICAgICAgICBpZiAoY2gyIDwgMHg5MCkKKyAgICAgICAgICAgICAgICAgICAgLyogaW52YWxpZCBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgICAgICBceEYwXHg4MFx4ODBceDgwLVx4RjBceDgwXHhCRlx4QkYgLS0gZmFrZSAwMDAwLUZGRkYgKi8KKyAgICAgICAgICAgICAgICAgICAgZ290byBJbnZhbGlkQ29udGludWF0aW9uOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoY2ggPT0gMHhGNCAmJiBjaDIgPiAweDhGKSB7CisgICAgICAgICAgICAgICAgLyogaW52YWxpZCBzZXF1ZW5jZQorICAgICAgICAgICAgICAgICAgIFx4RjRceDkwXHg4MFw4MC0gLS0gMTEwMDAwLSBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIGdvdG8gSW52YWxpZENvbnRpbnVhdGlvbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoID0gKGNoIDw8IDE4KSArIChjaDIgPDwgMTIpICsgKGNoMyA8PCA2KSArIGNoNCAtCisgICAgICAgICAgICAgICAgICgoMHhGMCA8PCAxOCkgKyAoMHg4MCA8PCAxMikgKyAoMHg4MCA8PCA2KSArIDB4ODApOworICAgICAgICAgICAgYXNzZXJ0ICgoY2ggPiAweEZGRkYpICYmIChjaCA8PSAweDEwRkZGRikpOworICAgICAgICAgICAgcyArPSA0OworICAgICAgICAgICAgaWYgKFNUUklOR0xJQl9NQVhfQ0hBUiA8PSAweEZGRkYgfHwKKyAgICAgICAgICAgICAgICAoU1RSSU5HTElCX01BWF9DSEFSIDwgMHgxMEZGRkYgJiYgY2ggPiBTVFJJTkdMSUJfTUFYX0NIQVIpKQorICAgICAgICAgICAgICAgIGdvdG8gT3ZlcmZsb3c7CisgICAgICAgICAgICAqcCsrID0gY2g7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBnb3RvIEludmFsaWRTdGFydDsKKyAgICB9CisgICAgY2ggPSAwOworT3ZlcmZsb3c6CitSZXR1cm46CisgICAgKmlucHRyID0gczsKKyAgICAqb3V0cG9zID0gcCAtIGRlc3Q7CisgICAgcmV0dXJuIGNoOworSW52YWxpZFN0YXJ0OgorICAgIGNoID0gMTsKKyAgICBnb3RvIFJldHVybjsKK0ludmFsaWRDb250aW51YXRpb246CisgICAgY2ggPSAyOworICAgIGdvdG8gUmV0dXJuOworfQorCisjdW5kZWYgQVNDSUlfQ0hBUl9NQVNLCisjdW5kZWYgSVNfQ09OVElOVUFUSU9OX0JZVEUKKworCisvKiBVVEYtOCBlbmNvZGVyIHNwZWNpYWxpemVkIGZvciBhIFVuaWNvZGUga2luZCB0byBhdm9pZCB0aGUgc2xvdworICAgUHlVbmljb2RlX1JFQUQoKSBtYWNyby4gRGVsZXRlIHNvbWUgcGFydHMgb2YgdGhlIGNvZGUgZGVwZW5kaW5nIG9uIHRoZSBraW5kOgorICAgVUNTLTEgc3RyaW5ncyBkb24ndCBuZWVkIHRvIGhhbmRsZSBzdXJyb2dhdGVzIGZvciBleGFtcGxlLiAqLworUHlfTE9DQUxfSU5MSU5FKFB5T2JqZWN0ICopCitTVFJJTkdMSUIodXRmOF9lbmNvZGVyKShQeU9iamVjdCAqdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFNUUklOR0xJQl9DSEFSICpkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQoreworI2RlZmluZSBNQVhfU0hPUlRfVU5JQ0hBUlMgMzAwICAvKiBsYXJnZXN0IHNpemUgd2UnbGwgZG8gb24gdGhlIHN0YWNrICovCisKKyAgICBQeV9zc2l6ZV90IGk7ICAgICAgICAgICAgICAgIC8qIGluZGV4IGludG8gcyBvZiBuZXh0IGlucHV0IGJ5dGUgKi8KKyAgICBQeU9iamVjdCAqcmVzdWx0OyAgICAgICAgICAgIC8qIHJlc3VsdCBzdHJpbmcgb2JqZWN0ICovCisgICAgY2hhciAqcDsgICAgICAgICAgICAgICAgICAgICAvKiBuZXh0IGZyZWUgYnl0ZSBpbiBvdXRwdXQgYnVmZmVyICovCisgICAgUHlfc3NpemVfdCBuYWxsb2NhdGVkOyAgICAgIC8qIG51bWJlciBvZiByZXN1bHQgYnl0ZXMgYWxsb2NhdGVkICovCisgICAgUHlfc3NpemVfdCBubmVlZGVkOyAgICAgICAgICAgIC8qIG51bWJlciBvZiByZXN1bHQgYnl0ZXMgbmVlZGVkICovCisjaWYgU1RSSU5HTElCX1NJWkVPRl9DSEFSID4gMQorICAgIFB5T2JqZWN0ICplcnJvckhhbmRsZXIgPSBOVUxMOworICAgIFB5T2JqZWN0ICpleGMgPSBOVUxMOworICAgIFB5T2JqZWN0ICpyZXAgPSBOVUxMOworI2VuZGlmCisjaWYgU1RSSU5HTElCX1NJWkVPRl9DSEFSID09IDEKKyAgICBjb25zdCBQeV9zc2l6ZV90IG1heF9jaGFyX3NpemUgPSAyOworICAgIGNoYXIgc3RhY2tidWZbTUFYX1NIT1JUX1VOSUNIQVJTICogMl07CisjZWxpZiBTVFJJTkdMSUJfU0laRU9GX0NIQVIgPT0gMgorICAgIGNvbnN0IFB5X3NzaXplX3QgbWF4X2NoYXJfc2l6ZSA9IDM7CisgICAgY2hhciBzdGFja2J1ZltNQVhfU0hPUlRfVU5JQ0hBUlMgKiAzXTsKKyNlbHNlIC8qICBTVFJJTkdMSUJfU0laRU9GX0NIQVIgPT0gNCAqLworICAgIGNvbnN0IFB5X3NzaXplX3QgbWF4X2NoYXJfc2l6ZSA9IDQ7CisgICAgY2hhciBzdGFja2J1ZltNQVhfU0hPUlRfVU5JQ0hBUlMgKiA0XTsKKyNlbmRpZgorCisgICAgYXNzZXJ0KHNpemUgPj0gMCk7CisKKyAgICBpZiAoc2l6ZSA8PSBNQVhfU0hPUlRfVU5JQ0hBUlMpIHsKKyAgICAgICAgLyogV3JpdGUgaW50byB0aGUgc3RhY2sgYnVmZmVyOyBuYWxsb2NhdGVkIGNhbid0IG92ZXJmbG93LgorICAgICAgICAgKiBBdCB0aGUgZW5kLCB3ZSdsbCBhbGxvY2F0ZSBleGFjdGx5IGFzIG11Y2ggaGVhcCBzcGFjZSBhcyBpdAorICAgICAgICAgKiB0dXJucyBvdXQgd2UgbmVlZC4KKyAgICAgICAgICovCisgICAgICAgIG5hbGxvY2F0ZWQgPSBQeV9TQUZFX0RPV05DQVNUKHNpemVvZihzdGFja2J1ZiksIHNpemVfdCwgaW50KTsKKyAgICAgICAgcmVzdWx0ID0gTlVMTDsgICAvKiB3aWxsIGFsbG9jYXRlIGFmdGVyIHdlJ3JlIGRvbmUgKi8KKyAgICAgICAgcCA9IHN0YWNrYnVmOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKHNpemUgPiBQWV9TU0laRV9UX01BWCAvIG1heF9jaGFyX3NpemUpIHsKKyAgICAgICAgICAgIC8qIGludGVnZXIgb3ZlcmZsb3cgKi8KKyAgICAgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICB9CisgICAgICAgIC8qIE92ZXJhbGxvY2F0ZSBvbiB0aGUgaGVhcCwgYW5kIGdpdmUgdGhlIGV4Y2VzcyBiYWNrIGF0IHRoZSBlbmQuICovCisgICAgICAgIG5hbGxvY2F0ZWQgPSBzaXplICogbWF4X2NoYXJfc2l6ZTsKKyAgICAgICAgcmVzdWx0ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBuYWxsb2NhdGVkKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHAgPSBQeUJ5dGVzX0FTX1NUUklORyhyZXN1bHQpOworICAgIH0KKworICAgIGZvciAoaSA9IDA7IGkgPCBzaXplOykgeworICAgICAgICBQeV9VQ1M0IGNoID0gZGF0YVtpKytdOworCisgICAgICAgIGlmIChjaCA8IDB4ODApIHsKKyAgICAgICAgICAgIC8qIEVuY29kZSBBU0NJSSAqLworICAgICAgICAgICAgKnArKyA9IChjaGFyKSBjaDsKKworICAgICAgICB9CisgICAgICAgIGVsc2UKKyNpZiBTVFJJTkdMSUJfU0laRU9GX0NIQVIgPiAxCisgICAgICAgIGlmIChjaCA8IDB4MDgwMCkKKyNlbmRpZgorICAgICAgICB7CisgICAgICAgICAgICAvKiBFbmNvZGUgTGF0aW4tMSAqLworICAgICAgICAgICAgKnArKyA9IChjaGFyKSgweGMwIHwgKGNoID4+IDYpKTsKKyAgICAgICAgICAgICpwKysgPSAoY2hhcikoMHg4MCB8IChjaCAmIDB4M2YpKTsKKyAgICAgICAgfQorI2lmIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiA+IDEKKyAgICAgICAgZWxzZSBpZiAoUHlfVU5JQ09ERV9JU19TVVJST0dBVEUoY2gpKSB7CisgICAgICAgICAgICBQeV9zc2l6ZV90IG5ld3BvczsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgcmVwc2l6ZSwgaywgc3RhcnRwb3M7CisgICAgICAgICAgICBzdGFydHBvcyA9IGktMTsKKyAgICAgICAgICAgIHJlcCA9IHVuaWNvZGVfZW5jb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAorICAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLCAidXRmLTgiLCAic3Vycm9nYXRlcyBub3QgYWxsb3dlZCIsCisgICAgICAgICAgICAgICAgICB1bmljb2RlLCAmZXhjLCBzdGFydHBvcywgc3RhcnRwb3MrMSwgJm5ld3Bvcyk7CisgICAgICAgICAgICBpZiAoIXJlcCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworCisgICAgICAgICAgICBpZiAoUHlCeXRlc19DaGVjayhyZXApKQorICAgICAgICAgICAgICAgIHJlcHNpemUgPSBQeUJ5dGVzX0dFVF9TSVpFKHJlcCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVwc2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlcCk7CisKKyAgICAgICAgICAgIGlmIChyZXBzaXplID4gbWF4X2NoYXJfc2l6ZSkgeworICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgb2Zmc2V0OworCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBwIC0gc3RhY2tidWY7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBvZmZzZXQgPSBwIC0gUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KTsKKworICAgICAgICAgICAgICAgIGlmIChuYWxsb2NhdGVkID4gUFlfU1NJWkVfVF9NQVggLSByZXBzaXplICsgbWF4X2NoYXJfc2l6ZSkgeworICAgICAgICAgICAgICAgICAgICAvKiBpbnRlZ2VyIG92ZXJmbG93ICovCisgICAgICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG5hbGxvY2F0ZWQgKz0gcmVwc2l6ZSAtIG1heF9jaGFyX3NpemU7CisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChfUHlCeXRlc19SZXNpemUoJnJlc3VsdCwgbmFsbG9jYXRlZCkgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIG5hbGxvY2F0ZWQpOworICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICBQeV9NRU1DUFkoUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KSwgc3RhY2tidWYsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHAgPSBQeUJ5dGVzX0FTX1NUUklORyhyZXN1bHQpICsgb2Zmc2V0OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoUHlCeXRlc19DaGVjayhyZXApKSB7CisgICAgICAgICAgICAgICAgY2hhciAqcHJlcCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlcCk7CisgICAgICAgICAgICAgICAgZm9yKGsgPSByZXBzaXplOyBrID4gMDsgay0tKQorICAgICAgICAgICAgICAgICAgICAqcCsrID0gKnByZXArKzsKKyAgICAgICAgICAgIH0gZWxzZSAvKiByZXAgaXMgdW5pY29kZSAqLyB7CisgICAgICAgICAgICAgICAgZW51bSBQeVVuaWNvZGVfS2luZCByZXBraW5kOworICAgICAgICAgICAgICAgIHZvaWQgKnJlcGRhdGE7CisKKyAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHJlcCkgPCAwKQorICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgIHJlcGtpbmQgPSBQeVVuaWNvZGVfS0lORChyZXApOworICAgICAgICAgICAgICAgIHJlcGRhdGEgPSBQeVVuaWNvZGVfREFUQShyZXApOworCisgICAgICAgICAgICAgICAgZm9yKGs9MDsgazxyZXBzaXplOyBrKyspIHsKKyAgICAgICAgICAgICAgICAgICAgUHlfVUNTNCBjID0gUHlVbmljb2RlX1JFQUQocmVwa2luZCwgcmVwZGF0YSwgayk7CisgICAgICAgICAgICAgICAgICAgIGlmICgweDgwIDw9IGMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlX2VuY29kZV9leGNlcHRpb24oJmV4YywgInV0Zi04IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS0xLCBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vycm9nYXRlcyBub3QgYWxsb3dlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAqcCsrID0gKGNoYXIpYzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBQeV9DTEVBUihyZXApOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyNpZiBTVFJJTkdMSUJfU0laRU9GX0NIQVIgPiAyCisgICAgICAgIGlmIChjaCA8IDB4MTAwMDApCisjZW5kaWYKKyAgICAgICAgeworICAgICAgICAgICAgKnArKyA9IChjaGFyKSgweGUwIHwgKGNoID4+IDEyKSk7CisgICAgICAgICAgICAqcCsrID0gKGNoYXIpKDB4ODAgfCAoKGNoID4+IDYpICYgMHgzZikpOworICAgICAgICAgICAgKnArKyA9IChjaGFyKSgweDgwIHwgKGNoICYgMHgzZikpOworICAgICAgICB9CisjaWYgU1RSSU5HTElCX1NJWkVPRl9DSEFSID4gMgorICAgICAgICBlbHNlIC8qIGNoID49IDB4MTAwMDAgKi8KKyAgICAgICAgeworICAgICAgICAgICAgYXNzZXJ0KGNoIDw9IE1BWF9VTklDT0RFKTsKKyAgICAgICAgICAgIC8qIEVuY29kZSBVQ1M0IFVuaWNvZGUgb3JkaW5hbHMgKi8KKyAgICAgICAgICAgICpwKysgPSAoY2hhcikoMHhmMCB8IChjaCA+PiAxOCkpOworICAgICAgICAgICAgKnArKyA9IChjaGFyKSgweDgwIHwgKChjaCA+PiAxMikgJiAweDNmKSk7CisgICAgICAgICAgICAqcCsrID0gKGNoYXIpKDB4ODAgfCAoKGNoID4+IDYpICYgMHgzZikpOworICAgICAgICAgICAgKnArKyA9IChjaGFyKSgweDgwIHwgKGNoICYgMHgzZikpOworICAgICAgICB9CisjZW5kaWYgLyogU1RSSU5HTElCX1NJWkVPRl9DSEFSID4gMiAqLworI2VuZGlmIC8qIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiA+IDEgKi8KKyAgICB9CisKKyAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKKyAgICAgICAgLyogVGhpcyB3YXMgc3RhY2sgYWxsb2NhdGVkLiAqLworICAgICAgICBubmVlZGVkID0gcCAtIHN0YWNrYnVmOworICAgICAgICBhc3NlcnQobm5lZWRlZCA8PSBuYWxsb2NhdGVkKTsKKyAgICAgICAgcmVzdWx0ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShzdGFja2J1Ziwgbm5lZWRlZCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvKiBDdXQgYmFjayB0byBzaXplIGFjdHVhbGx5IG5lZWRlZC4gKi8KKyAgICAgICAgbm5lZWRlZCA9IHAgLSBQeUJ5dGVzX0FTX1NUUklORyhyZXN1bHQpOworICAgICAgICBhc3NlcnQobm5lZWRlZCA8PSBuYWxsb2NhdGVkKTsKKyAgICAgICAgX1B5Qnl0ZXNfUmVzaXplKCZyZXN1bHQsIG5uZWVkZWQpOworICAgIH0KKworI2lmIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiA+IDEKKyAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CisgICAgUHlfWERFQ1JFRihleGMpOworI2VuZGlmCisgICAgcmV0dXJuIHJlc3VsdDsKKworI2lmIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiA+IDEKKyBlcnJvcjoKKyAgICBQeV9YREVDUkVGKHJlcCk7CisgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOworICAgIFB5X1hERUNSRUYoZXhjKTsKKyAgICBQeV9YREVDUkVGKHJlc3VsdCk7CisgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYKKworI3VuZGVmIE1BWF9TSE9SVF9VTklDSEFSUworfQorCisvKiBUaGUgcGF0dGVybiBmb3IgY29uc3RydWN0aW5nIFVDUzItcmVwZWF0ZWQgbWFza3MuICovCisjaWYgU0laRU9GX0xPTkcgPT0gOAorIyBkZWZpbmUgVUNTMl9SRVBFQVRfTUFTSyAweDAwMDEwMDAxMDAwMTAwMDF1bAorI2VsaWYgU0laRU9GX0xPTkcgPT0gNAorIyBkZWZpbmUgVUNTMl9SRVBFQVRfTUFTSyAweDAwMDEwMDAxdWwKKyNlbHNlCisjIGVycm9yIEMgJ2xvbmcnIHNpemUgc2hvdWxkIGJlIGVpdGhlciA0IG9yIDghCisjZW5kaWYKKworLyogVGhlIG1hc2sgZm9yIGZhc3QgY2hlY2tpbmcuICovCisjaWYgU1RSSU5HTElCX1NJWkVPRl9DSEFSID09IDEKKy8qIFRoZSBtYXNrIGZvciBmYXN0IGNoZWNraW5nIG9mIHdoZXRoZXIgYSBDICdsb25nJyBjb250YWlucyBhCisgICBub24tQVNDSUkgb3Igbm9uLUxhdGluMSBVVEYxNi1lbmNvZGVkIGNoYXJhY3RlcnMuICovCisjIGRlZmluZSBGQVNUX0NIQVJfTUFTSyAgICAgICAgIChVQ1MyX1JFUEVBVF9NQVNLICogKDB4RkZGRnUgJiB+U1RSSU5HTElCX01BWF9DSEFSKSkKKyNlbHNlCisvKiBUaGUgbWFzayBmb3IgZmFzdCBjaGVja2luZyBvZiB3aGV0aGVyIGEgQyAnbG9uZycgbWF5IGNvbnRhaW4KKyAgIFVURjE2LWVuY29kZWQgc3Vycm9nYXRlIGNoYXJhY3RlcnMuIFRoaXMgaXMgYW4gZWZmaWNpZW50IGhldXJpc3RpYywKKyAgIGFzc3VtaW5nIHRoYXQgbm9uLXN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIHdpdGggYSBjb2RlIHBvaW50ID49IDB4ODAwMCBhcmUKKyAgIHJhcmUgaW4gbW9zdCBpbnB1dC4KKyovCisjIGRlZmluZSBGQVNUX0NIQVJfTUFTSyAgICAgICAgIChVQ1MyX1JFUEVBVF9NQVNLICogMHg4MDAwdSkKKyNlbmRpZgorLyogVGhlIG1hc2sgZm9yIGZhc3QgYnl0ZS1zd2FwcGluZy4gKi8KKyNkZWZpbmUgU1RSSVBQRURfTUFTSyAgICAgICAgICAgKFVDUzJfUkVQRUFUX01BU0sgKiAweDAwRkZ1KQorLyogU3dhcCBieXRlcy4gKi8KKyNkZWZpbmUgU1dBQih2YWx1ZSkgICAgICAgICAgICAgKCgoKHZhbHVlKSA+PiA4KSAmIFNUUklQUEVEX01BU0spIHwgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgodmFsdWUpICYgU1RSSVBQRURfTUFTSykgPDwgOCkpCisKK1B5X0xPQ0FMX0lOTElORShQeV9VQ1M0KQorU1RSSU5HTElCKHV0ZjE2X2RlY29kZSkoY29uc3QgdW5zaWduZWQgY2hhciAqKmlucHRyLCBjb25zdCB1bnNpZ25lZCBjaGFyICplLAorICAgICAgICAgICAgICAgICAgICAgICAgU1RSSU5HTElCX0NIQVIgKmRlc3QsIFB5X3NzaXplX3QgKm91dHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYXRpdmVfb3JkZXJpbmcpCit7CisgICAgUHlfVUNTNCBjaDsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICphbGlnbmVkX2VuZCA9CisgICAgICAgICAgICAoY29uc3QgdW5zaWduZWQgY2hhciAqKSAoKHNpemVfdCkgZSAmIH5MT05HX1BUUl9NQVNLKTsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpxID0gKmlucHRyOworICAgIFNUUklOR0xJQl9DSEFSICpwID0gZGVzdCArICpvdXRwb3M7CisgICAgLyogT2Zmc2V0cyBmcm9tIHEgZm9yIHJldHJpZXZpbmcgYnl0ZSBwYWlycyBpbiB0aGUgcmlnaHQgb3JkZXIuICovCisjaWZkZWYgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KKyAgICBpbnQgaWhpID0gISFuYXRpdmVfb3JkZXJpbmcsIGlsbyA9ICFuYXRpdmVfb3JkZXJpbmc7CisjZWxzZQorICAgIGludCBpaGkgPSAhbmF0aXZlX29yZGVyaW5nLCBpbG8gPSAhIW5hdGl2ZV9vcmRlcmluZzsKKyNlbmRpZgorICAgIC0tZTsKKworICAgIHdoaWxlIChxIDwgZSkgeworICAgICAgICBQeV9VQ1M0IGNoMjsKKyAgICAgICAgLyogRmlyc3QgY2hlY2sgZm9yIHBvc3NpYmxlIGFsaWduZWQgcmVhZCBvZiBhIEMgJ2xvbmcnLiBVbmFsaWduZWQKKyAgICAgICAgICAgcmVhZHMgYXJlIG1vcmUgZXhwZW5zaXZlLCBiZXR0ZXIgdG8gZGVmZXIgdG8gYW5vdGhlciBpdGVyYXRpb24uICovCisgICAgICAgIGlmICghKChzaXplX3QpIHEgJiBMT05HX1BUUl9NQVNLKSkgeworICAgICAgICAgICAgLyogRmFzdCBwYXRoIGZvciBydW5zIG9mIGluLXJhbmdlIG5vbi1zdXJyb2dhdGUgY2hhcnMuICovCisgICAgICAgICAgICByZWdpc3RlciBjb25zdCB1bnNpZ25lZCBjaGFyICpfcSA9IHE7CisgICAgICAgICAgICB3aGlsZSAoX3EgPCBhbGlnbmVkX2VuZCkgeworICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgYmxvY2sgPSAqICh1bnNpZ25lZCBsb25nICopIF9xOworICAgICAgICAgICAgICAgIGlmIChuYXRpdmVfb3JkZXJpbmcpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogQ2FuIHVzZSBidWZmZXIgZGlyZWN0bHkgKi8KKyAgICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrICYgRkFTVF9DSEFSX01BU0spCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIE5lZWQgdG8gYnl0ZS1zd2FwICovCisgICAgICAgICAgICAgICAgICAgIGlmIChibG9jayAmIFNXQUIoRkFTVF9DSEFSX01BU0spKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisjaWYgU1RSSU5HTElCX1NJWkVPRl9DSEFSID09IDEKKyAgICAgICAgICAgICAgICAgICAgYmxvY2sgPj49IDg7CisjZWxzZQorICAgICAgICAgICAgICAgICAgICBibG9jayA9IFNXQUIoYmxvY2spOworI2VuZGlmCisgICAgICAgICAgICAgICAgfQorI2lmZGVmIEJZVEVPUkRFUl9JU19MSVRUTEVfRU5ESUFOCisjIGlmIFNJWkVPRl9MT05HID09IDQKKyAgICAgICAgICAgICAgICBwWzBdID0gKFNUUklOR0xJQl9DSEFSKShibG9jayAmIDB4RkZGRnUpOworICAgICAgICAgICAgICAgIHBbMV0gPSAoU1RSSU5HTElCX0NIQVIpKGJsb2NrID4+IDE2KTsKKyMgZWxpZiBTSVpFT0ZfTE9ORyA9PSA4CisgICAgICAgICAgICAgICAgcFswXSA9IChTVFJJTkdMSUJfQ0hBUikoYmxvY2sgJiAweEZGRkZ1KTsKKyAgICAgICAgICAgICAgICBwWzFdID0gKFNUUklOR0xJQl9DSEFSKSgoYmxvY2sgPj4gMTYpICYgMHhGRkZGdSk7CisgICAgICAgICAgICAgICAgcFsyXSA9IChTVFJJTkdMSUJfQ0hBUikoKGJsb2NrID4+IDMyKSAmIDB4RkZGRnUpOworICAgICAgICAgICAgICAgIHBbM10gPSAoU1RSSU5HTElCX0NIQVIpKGJsb2NrID4+IDQ4KTsKKyMgZW5kaWYKKyNlbHNlCisjIGlmIFNJWkVPRl9MT05HID09IDQKKyAgICAgICAgICAgICAgICBwWzBdID0gKFNUUklOR0xJQl9DSEFSKShibG9jayA+PiAxNik7CisgICAgICAgICAgICAgICAgcFsxXSA9IChTVFJJTkdMSUJfQ0hBUikoYmxvY2sgJiAweEZGRkZ1KTsKKyMgZWxpZiBTSVpFT0ZfTE9ORyA9PSA4CisgICAgICAgICAgICAgICAgcFswXSA9IChTVFJJTkdMSUJfQ0hBUikoYmxvY2sgPj4gNDgpOworICAgICAgICAgICAgICAgIHBbMV0gPSAoU1RSSU5HTElCX0NIQVIpKChibG9jayA+PiAzMikgJiAweEZGRkZ1KTsKKyAgICAgICAgICAgICAgICBwWzJdID0gKFNUUklOR0xJQl9DSEFSKSgoYmxvY2sgPj4gMTYpICYgMHhGRkZGdSk7CisgICAgICAgICAgICAgICAgcFszXSA9IChTVFJJTkdMSUJfQ0hBUikoYmxvY2sgJiAweEZGRkZ1KTsKKyMgZW5kaWYKKyNlbmRpZgorICAgICAgICAgICAgICAgIF9xICs9IFNJWkVPRl9MT05HOworICAgICAgICAgICAgICAgIHAgKz0gU0laRU9GX0xPTkcgLyAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcSA9IF9xOworICAgICAgICAgICAgaWYgKHEgPj0gZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIGNoID0gKHFbaWhpXSA8PCA4KSB8IHFbaWxvXTsKKyAgICAgICAgcSArPSAyOworICAgICAgICBpZiAoIVB5X1VOSUNPREVfSVNfU1VSUk9HQVRFKGNoKSkgeworI2lmIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiA8IDIKKyAgICAgICAgICAgIGlmIChjaCA+IFNUUklOR0xJQl9NQVhfQ0hBUikKKyAgICAgICAgICAgICAgICAvKiBPdXQtb2YtcmFuZ2UgKi8KKyAgICAgICAgICAgICAgICBnb3RvIFJldHVybjsKKyNlbmRpZgorICAgICAgICAgICAgKnArKyA9IChTVFJJTkdMSUJfQ0hBUiljaDsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgLyogVVRGLTE2IGNvZGUgcGFpcjogKi8KKyAgICAgICAgaWYgKHEgPj0gZSkKKyAgICAgICAgICAgIGdvdG8gVW5leHBlY3RlZEVuZDsKKyAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTX0hJR0hfU1VSUk9HQVRFKGNoKSkKKyAgICAgICAgICAgIGdvdG8gSWxsZWdhbEVuY29kaW5nOworICAgICAgICBjaDIgPSAocVtpaGldIDw8IDgpIHwgcVtpbG9dOworICAgICAgICBxICs9IDI7CisgICAgICAgIGlmICghUHlfVU5JQ09ERV9JU19MT1dfU1VSUk9HQVRFKGNoMikpCisgICAgICAgICAgICBnb3RvIElsbGVnYWxTdXJyb2dhdGU7CisgICAgICAgIGNoID0gUHlfVU5JQ09ERV9KT0lOX1NVUlJPR0FURVMoY2gsIGNoMik7CisjaWYgU1RSSU5HTElCX1NJWkVPRl9DSEFSIDwgNAorICAgICAgICAvKiBPdXQtb2YtcmFuZ2UgKi8KKyAgICAgICAgZ290byBSZXR1cm47CisjZWxzZQorICAgICAgICAqcCsrID0gKFNUUklOR0xJQl9DSEFSKWNoOworI2VuZGlmCisgICAgfQorICAgIGNoID0gMDsKK1JldHVybjoKKyAgICAqaW5wdHIgPSBxOworICAgICpvdXRwb3MgPSBwIC0gZGVzdDsKKyAgICByZXR1cm4gY2g7CitVbmV4cGVjdGVkRW5kOgorICAgIGNoID0gMTsKKyAgICBnb3RvIFJldHVybjsKK0lsbGVnYWxFbmNvZGluZzoKKyAgICBjaCA9IDI7CisgICAgZ290byBSZXR1cm47CitJbGxlZ2FsU3Vycm9nYXRlOgorICAgIGNoID0gMzsKKyAgICBnb3RvIFJldHVybjsKK30KKyN1bmRlZiBVQ1MyX1JFUEVBVF9NQVNLCisjdW5kZWYgRkFTVF9DSEFSX01BU0sKKyN1bmRlZiBTVFJJUFBFRF9NQVNLCisjdW5kZWYgU1dBQgorI3VuZGVmIExPTkdfUFRSX01BU0sKKworCitQeV9MT0NBTF9JTkxJTkUodm9pZCkKK1NUUklOR0xJQih1dGYxNl9lbmNvZGUpKHVuc2lnbmVkIHNob3J0ICpvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiAqaW4sCisgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBuYXRpdmVfb3JkZXJpbmcpCit7CisgICAgY29uc3QgU1RSSU5HTElCX0NIQVIgKmVuZCA9IGluICsgbGVuOworI2lmIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiA9PSAxCisjIGRlZmluZSBTV0FCMihDSCkgICgoQ0gpIDw8IDgpCisjZWxzZQorIyBkZWZpbmUgU1dBQjIoQ0gpICAoKChDSCkgPDwgOCkgfCAoKENIKSA+PiA4KSkKKyNlbmRpZgorI2lmIFNUUklOR0xJQl9NQVhfQ0hBUiA8IDB4MTAwMDAKKyAgICBpZiAobmF0aXZlX29yZGVyaW5nKSB7CisjIGlmIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiA9PSAyCisgICAgICAgIFB5X01FTUNQWShvdXQsIGluLCAyICogbGVuKTsKKyMgZWxzZQorICAgICAgICBfUHlVbmljb2RlX0NPTlZFUlRfQllURVMoU1RSSU5HTElCX0NIQVIsIHVuc2lnbmVkIHNob3J0LCBpbiwgZW5kLCBvdXQpOworIyBlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSICp1bnJvbGxlZF9lbmQgPSBpbiArIChsZW4gJiB+IChQeV9zc2l6ZV90KSAzKTsKKyAgICAgICAgd2hpbGUgKGluIDwgdW5yb2xsZWRfZW5kKSB7CisgICAgICAgICAgICBvdXRbMF0gPSBTV0FCMihpblswXSk7CisgICAgICAgICAgICBvdXRbMV0gPSBTV0FCMihpblsxXSk7CisgICAgICAgICAgICBvdXRbMl0gPSBTV0FCMihpblsyXSk7CisgICAgICAgICAgICBvdXRbM10gPSBTV0FCMihpblszXSk7CisgICAgICAgICAgICBpbiArPSA0OyBvdXQgKz0gNDsKKyAgICAgICAgfQorICAgICAgICB3aGlsZSAoaW4gPCBlbmQpIHsKKyAgICAgICAgICAgICpvdXQrKyA9IFNXQUIyKCppbik7CisgICAgICAgICAgICArK2luOworICAgICAgICB9CisgICAgfQorI2Vsc2UKKyAgICBpZiAobmF0aXZlX29yZGVyaW5nKSB7CisgICAgICAgIHdoaWxlIChpbiA8IGVuZCkgeworICAgICAgICAgICAgUHlfVUNTNCBjaCA9ICppbisrOworICAgICAgICAgICAgaWYgKGNoIDwgMHgxMDAwMCkKKyAgICAgICAgICAgICAgICAqb3V0KysgPSBjaDsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIG91dFswXSA9IFB5X1VOSUNPREVfSElHSF9TVVJST0dBVEUoY2gpOworICAgICAgICAgICAgICAgIG91dFsxXSA9IFB5X1VOSUNPREVfTE9XX1NVUlJPR0FURShjaCk7CisgICAgICAgICAgICAgICAgb3V0ICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICB3aGlsZSAoaW4gPCBlbmQpIHsKKyAgICAgICAgICAgIFB5X1VDUzQgY2ggPSAqaW4rKzsKKyAgICAgICAgICAgIGlmIChjaCA8IDB4MTAwMDApCisgICAgICAgICAgICAgICAgKm91dCsrID0gU1dBQjIoKFB5X1VDUzIpY2gpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgUHlfVUNTMiBjaDEgPSBQeV9VTklDT0RFX0hJR0hfU1VSUk9HQVRFKGNoKTsKKyAgICAgICAgICAgICAgICBQeV9VQ1MyIGNoMiA9IFB5X1VOSUNPREVfTE9XX1NVUlJPR0FURShjaCk7CisgICAgICAgICAgICAgICAgb3V0WzBdID0gU1dBQjIoY2gxKTsKKyAgICAgICAgICAgICAgICBvdXRbMV0gPSBTV0FCMihjaDIpOworICAgICAgICAgICAgICAgIG91dCArPSAyOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorI2VuZGlmCisjdW5kZWYgU1dBQjIKK30KKyNlbmRpZiAvKiBTVFJJTkdMSUJfSVNfVU5JQ09ERSAqLwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvY291bnQuaCBiL09iamVjdHMvc3RyaW5nbGliL2NvdW50LmgKaW5kZXggZGUzNGY5Ni4uZjQ4NTAwYiAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvY291bnQuaAorKysgYi9PYmplY3RzL3N0cmluZ2xpYi9jb3VudC5oCkBAIC0xLDE0ICsxLDExIEBACiAvKiBzdHJpbmdsaWI6IGNvdW50IGltcGxlbWVudGF0aW9uICovCiAKLSNpZm5kZWYgU1RSSU5HTElCX0NPVU5UX0gKLSNkZWZpbmUgU1RSSU5HTElCX0NPVU5UX0gKLQogI2lmbmRlZiBTVFJJTkdMSUJfRkFTVFNFQVJDSF9ICiAjZXJyb3IgbXVzdCBpbmNsdWRlICJzdHJpbmdsaWIvZmFzdHNlYXJjaC5oIiBiZWZvcmUgaW5jbHVkaW5nIHRoaXMgbW9kdWxlCiAjZW5kaWYKIAogUHlfTE9DQUxfSU5MSU5FKFB5X3NzaXplX3QpCi1zdHJpbmdsaWJfY291bnQoY29uc3QgU1RSSU5HTElCX0NIQVIqIHN0ciwgUHlfc3NpemVfdCBzdHJfbGVuLAorU1RSSU5HTElCKGNvdW50KShjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3RyLCBQeV9zc2l6ZV90IHN0cl9sZW4sCiAgICAgICAgICAgICAgICAgY29uc3QgU1RSSU5HTElCX0NIQVIqIHN1YiwgUHlfc3NpemVfdCBzdWJfbGVuLAogICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbWF4Y291bnQpCiB7CkBAIC0xOSw3ICsxNiw3IEBACiAgICAgaWYgKHN1Yl9sZW4gPT0gMCkKICAgICAgICAgcmV0dXJuIChzdHJfbGVuIDwgbWF4Y291bnQpID8gc3RyX2xlbiArIDEgOiBtYXhjb3VudDsKIAotICAgIGNvdW50ID0gZmFzdHNlYXJjaChzdHIsIHN0cl9sZW4sIHN1Yiwgc3ViX2xlbiwgbWF4Y291bnQsIEZBU1RfQ09VTlQpOworICAgIGNvdW50ID0gRkFTVFNFQVJDSChzdHIsIHN0cl9sZW4sIHN1Yiwgc3ViX2xlbiwgbWF4Y291bnQsIEZBU1RfQ09VTlQpOwogCiAgICAgaWYgKGNvdW50IDwgMCkKICAgICAgICAgcmV0dXJuIDA7IC8qIG5vIG1hdGNoICovCkBAIC0yNyw0ICsyNCw0IEBACiAgICAgcmV0dXJuIGNvdW50OwogfQogCi0jZW5kaWYKKwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvZXEuaCBiL09iamVjdHMvc3RyaW5nbGliL2VxLmgKaW5kZXggM2U3ZjVlOC4uOGU3OWE0MyAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvZXEuaAorKysgYi9PYmplY3RzL3N0cmluZ2xpYi9lcS5oCkBAIC05LDEzICs5LDI2IEBACiAgICAgcmVnaXN0ZXIgUHlVbmljb2RlT2JqZWN0ICphID0gKFB5VW5pY29kZU9iamVjdCAqKWFhOwogICAgIHJlZ2lzdGVyIFB5VW5pY29kZU9iamVjdCAqYiA9IChQeVVuaWNvZGVPYmplY3QgKiliYjsKIAotICAgIGlmIChhLT5sZW5ndGggIT0gYi0+bGVuZ3RoKQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoYSkgPT0gLTEgfHwgUHlVbmljb2RlX1JFQURZKGIpID09IC0xKSB7CisgICAgICAgIGFzc2VydCgwICYmICJ1bmljb2RlX2VxIHJlYWR5IGZhaWwiKTsKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKGEtPmxlbmd0aCA9PSAwKQotICAgICAgICByZXR1cm4gMTsKLSAgICBpZiAoYS0+c3RyWzBdICE9IGItPnN0clswXSkKKyAgICB9CisKKyAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoYSkgIT0gUHlVbmljb2RlX0dFVF9MRU5HVEgoYikpCiAgICAgICAgIHJldHVybiAwOwotICAgIGlmIChhLT5sZW5ndGggPT0gMSkKKyAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoYSkgPT0gMCkKICAgICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0dXJuIG1lbWNtcChhLT5zdHIsIGItPnN0ciwgYS0+bGVuZ3RoICogc2l6ZW9mKFB5X1VOSUNPREUpKSA9PSAwOworICAgIGlmIChQeVVuaWNvZGVfS0lORChhKSAhPSBQeVVuaWNvZGVfS0lORChiKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgLyogSnVzdCBjb21wYXJpbmcgdGhlIGZpcnN0IGJ5dGUgaXMgZW5vdWdoIHRvIHNlZSBpZiBhIGFuZCBiIGRpZmZlci4KKyAgICAgKiBJZiB0aGV5IGFyZSAyIGJ5dGUgb3IgNCBieXRlIGNoYXJhY3RlciBtb3N0IGRpZmZlcmVuY2VzIHdpbGwgaGFwcGVuIGluCisgICAgICogdGhlIGxvd2VyIGJ5dGVzIGFueXdheXMuCisgICAgICovCisgICAgaWYgKFB5VW5pY29kZV8xQllURV9EQVRBKGEpWzBdICE9IFB5VW5pY29kZV8xQllURV9EQVRBKGIpWzBdKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoUHlVbmljb2RlX0tJTkQoYSkgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQgJiYKKyAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoYSkgPT0gMSkKKyAgICAgICAgcmV0dXJuIDE7CisgICAgcmV0dXJuIG1lbWNtcChQeVVuaWNvZGVfMUJZVEVfREFUQShhKSwgUHlVbmljb2RlXzFCWVRFX0RBVEEoYiksCisgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChhKSAqIFB5VW5pY29kZV9LSU5EKGEpKSA9PSAwOwogfQpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvZmFzdHNlYXJjaC5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvZmFzdHNlYXJjaC5oCmluZGV4IGUyMzFjNTguLmYzZTA0NjEgMTAwNjQ0Ci0tLSBhL09iamVjdHMvc3RyaW5nbGliL2Zhc3RzZWFyY2guaAorKysgYi9PYmplY3RzL3N0cmluZ2xpYi9mYXN0c2VhcmNoLmgKQEAgLTEsNiArMSw1IEBACiAvKiBzdHJpbmdsaWI6IGZhc3RzZWFyY2ggaW1wbGVtZW50YXRpb24gKi8KIAotI2lmbmRlZiBTVFJJTkdMSUJfRkFTVFNFQVJDSF9ICiAjZGVmaW5lIFNUUklOR0xJQl9GQVNUU0VBUkNIX0gKIAogLyogZmFzdCBzZWFyY2gvY291bnQgaW1wbGVtZW50YXRpb24sIGJhc2VkIG9uIGEgbWl4IGJldHdlZW4gYm95ZXItCkBAIC0zMyw4ICszMiw2MiBAQAogI2RlZmluZSBTVFJJTkdMSUJfQkxPT00obWFzaywgY2gpICAgICBcCiAgICAgKChtYXNrICYgICgxVUwgPDwgKChjaCkgJiAoU1RSSU5HTElCX0JMT09NX1dJRFRIIC0xKSkpKSkKIAorCiBQeV9MT0NBTF9JTkxJTkUoUHlfc3NpemVfdCkKLWZhc3RzZWFyY2goY29uc3QgU1RSSU5HTElCX0NIQVIqIHMsIFB5X3NzaXplX3QgbiwKK1NUUklOR0xJQihmYXN0c2VhcmNoX21lbWNocl8xY2hhcikoY29uc3QgU1RSSU5HTElCX0NIQVIqIHMsIFB5X3NzaXplX3QgbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RSSU5HTElCX0NIQVIgY2gsIHVuc2lnbmVkIGNoYXIgbmVlZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG1heGNvdW50LCBpbnQgbW9kZSkKK3sKKyAgICB2b2lkICpjYW5kaWRhdGU7CisgICAgY29uc3QgU1RSSU5HTElCX0NIQVIgKmZvdW5kOworCisjZGVmaW5lIERPX01FTUNIUihtZW1jaHIsIHMsIG5lZWRsZSwgbmNoYXJzKSBkbyB7IFwKKyAgICBjYW5kaWRhdGUgPSBtZW1jaHIoKGNvbnN0IHZvaWQgKikgKHMpLCAobmVlZGxlKSwgKG5jaGFycykgKiBzaXplb2YoU1RSSU5HTElCX0NIQVIpKTsgXAorICAgIGZvdW5kID0gKGNvbnN0IFNUUklOR0xJQl9DSEFSICopIFwKKyAgICAgICAgKChQeV9zc2l6ZV90KSBjYW5kaWRhdGUgJiAofiAoKFB5X3NzaXplX3QpIHNpemVvZihTVFJJTkdMSUJfQ0hBUikgLSAxKSkpOyBcCisgICAgfSB3aGlsZSAoMCkKKworICAgIGlmIChtb2RlID09IEZBU1RfU0VBUkNIKSB7CisgICAgICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSICpfcyA9IHM7CisgICAgICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSICplID0gcyArIG47CisgICAgICAgIHdoaWxlIChfcyA8IGUpIHsKKyAgICAgICAgICAgIERPX01FTUNIUihtZW1jaHIsIF9zLCBuZWVkbGUsIGUgLSBfcyk7CisgICAgICAgICAgICBpZiAoZm91bmQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBpZiAoc2l6ZW9mKFNUUklOR0xJQl9DSEFSKSA9PSAxIHx8ICpmb3VuZCA9PSBjaCkKKyAgICAgICAgICAgICAgICByZXR1cm4gKGZvdW5kIC0gX3MpOworICAgICAgICAgICAgLyogRmFsc2UgcG9zaXRpdmUgKi8KKyAgICAgICAgICAgIF9zID0gZm91bmQgKyAxOworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisjaWZkZWYgSEFWRV9NRU1SQ0hSCisgICAgLyogbWVtcmNocigpIGlzIGEgR05VIGV4dGVuc2lvbiwgYXZhaWxhYmxlIHNpbmNlIGdsaWJjIDIuMS45MS4KKyAgICAgICBpdCBkb2Vzbid0IHNlZW0gYXMgb3B0aW1pemVkIGFzIG1lbWNocigpLCBidXQgaXMgc3RpbGwgcXVpdGUKKyAgICAgICBmYXN0ZXIgdGhhbiBvdXIgaGFuZC13cml0dGVuIGxvb3AgaW4gRkFTVFNFQVJDSCBiZWxvdyAqLworICAgIGVsc2UgaWYgKG1vZGUgPT0gRkFTVF9SU0VBUkNIKSB7CisgICAgICAgIHdoaWxlIChuID4gMCkgeworICAgICAgICAgICAgRE9fTUVNQ0hSKG1lbXJjaHIsIHMsIG5lZWRsZSwgbik7CisgICAgICAgICAgICBpZiAoZm91bmQgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBuID0gZm91bmQgLSBzOworICAgICAgICAgICAgaWYgKHNpemVvZihTVFJJTkdMSUJfQ0hBUikgPT0gMSB8fCAqZm91bmQgPT0gY2gpCisgICAgICAgICAgICAgICAgcmV0dXJuIG47CisgICAgICAgICAgICAvKiBGYWxzZSBwb3NpdGl2ZSAqLworICAgICAgICB9CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisjZW5kaWYKKyAgICBlbHNlIHsKKyAgICAgICAgYXNzZXJ0KDApOyAvKiBTaG91bGQgbmV2ZXIgZ2V0IGhlcmUgKi8KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisjdW5kZWYgRE9fTUVNQ0hSCit9CisKK1B5X0xPQ0FMX0lOTElORShQeV9zc2l6ZV90KQorRkFTVFNFQVJDSChjb25zdCBTVFJJTkdMSUJfQ0hBUiogcywgUHlfc3NpemVfdCBuLAogICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogcCwgUHlfc3NpemVfdCBtLAogICAgICAgICAgICBQeV9zc2l6ZV90IG1heGNvdW50LCBpbnQgbW9kZSkKIHsKQEAgLTUyLDYgKzEwNSwyNCBAQAogICAgICAgICBpZiAobSA8PSAwKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAvKiB1c2Ugc3BlY2lhbCBjYXNlIGZvciAxLWNoYXJhY3RlciBzdHJpbmdzICovCisgICAgICAgIGlmIChuID4gMTAgJiYgKG1vZGUgPT0gRkFTVF9TRUFSQ0gKKyNpZmRlZiBIQVZFX01FTVJDSFIKKyAgICAgICAgICAgICAgICAgICAgfHwgbW9kZSA9PSBGQVNUX1JTRUFSQ0gKKyNlbmRpZgorICAgICAgICAgICAgICAgICAgICApKSB7CisgICAgICAgICAgICAvKiB1c2UgbWVtY2hyIGlmIHdlIGNhbiBjaG9vc2UgYSBuZWVkbGUgd2l0aG91dCB0d28gbWFueSBsaWtlbHkKKyAgICAgICAgICAgICAgIGZhbHNlIHBvc2l0aXZlcyAqLworICAgICAgICAgICAgdW5zaWduZWQgY2hhciBuZWVkbGU7CisgICAgICAgICAgICBuZWVkbGUgPSBwWzBdICYgMHhmZjsKKyNpZiBTVFJJTkdMSUJfU0laRU9GX0NIQVIgPiAxCisgICAgICAgICAgICAvKiBJZiBsb29raW5nIGZvciBhIG11bHRpcGxlIG9mIDI1Niwgd2UnZCBoYXZlIHRvbworICAgICAgICAgICAgICAgbWFueSBmYWxzZSBwb3NpdGl2ZXMgbG9va2luZyBmb3IgdGhlICdcMCcgYnl0ZSBpbiBVQ1MyCisgICAgICAgICAgICAgICBhbmQgVUNTNCByZXByZXNlbnRhdGlvbnMuICovCisgICAgICAgICAgICBpZiAobmVlZGxlICE9IDApCisjZW5kaWYKKyAgICAgICAgICAgICAgICByZXR1cm4gU1RSSU5HTElCKGZhc3RzZWFyY2hfbWVtY2hyXzFjaGFyKQorICAgICAgICAgICAgICAgICAgICAgICAocywgbiwgcFswXSwgbmVlZGxlLCBtYXhjb3VudCwgbW9kZSk7CisgICAgICAgIH0KICAgICAgICAgaWYgKG1vZGUgPT0gRkFTVF9DT1VOVCkgewogICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykKICAgICAgICAgICAgICAgICBpZiAoc1tpXSA9PSBwWzBdKSB7CkBAIC0xNTcsNCArMjI4LDMgQEAKICAgICByZXR1cm4gY291bnQ7CiB9CiAKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvZmluZC5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvZmluZC5oCmluZGV4IGNlNjE1ZGMuLjUxOGUwMTIgMTAwNjQ0Ci0tLSBhL09iamVjdHMvc3RyaW5nbGliL2ZpbmQuaAorKysgYi9PYmplY3RzL3N0cmluZ2xpYi9maW5kLmgKQEAgLTEsMTQgKzEsMTEgQEAKIC8qIHN0cmluZ2xpYjogZmluZC9pbmRleCBpbXBsZW1lbnRhdGlvbiAqLwogCi0jaWZuZGVmIFNUUklOR0xJQl9GSU5EX0gKLSNkZWZpbmUgU1RSSU5HTElCX0ZJTkRfSAotCiAjaWZuZGVmIFNUUklOR0xJQl9GQVNUU0VBUkNIX0gKICNlcnJvciBtdXN0IGluY2x1ZGUgInN0cmluZ2xpYi9mYXN0c2VhcmNoLmgiIGJlZm9yZSBpbmNsdWRpbmcgdGhpcyBtb2R1bGUKICNlbmRpZgogCiBQeV9MT0NBTF9JTkxJTkUoUHlfc3NpemVfdCkKLXN0cmluZ2xpYl9maW5kKGNvbnN0IFNUUklOR0xJQl9DSEFSKiBzdHIsIFB5X3NzaXplX3Qgc3RyX2xlbiwKK1NUUklOR0xJQihmaW5kKShjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3RyLCBQeV9zc2l6ZV90IHN0cl9sZW4sCiAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3ViLCBQeV9zc2l6ZV90IHN1Yl9sZW4sCiAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG9mZnNldCkKIHsKQEAgLTE5LDcgKzE2LDcgQEAKICAgICBpZiAoc3ViX2xlbiA9PSAwKQogICAgICAgICByZXR1cm4gb2Zmc2V0OwogCi0gICAgcG9zID0gZmFzdHNlYXJjaChzdHIsIHN0cl9sZW4sIHN1Yiwgc3ViX2xlbiwgLTEsIEZBU1RfU0VBUkNIKTsKKyAgICBwb3MgPSBGQVNUU0VBUkNIKHN0ciwgc3RyX2xlbiwgc3ViLCBzdWJfbGVuLCAtMSwgRkFTVF9TRUFSQ0gpOwogCiAgICAgaWYgKHBvcyA+PSAwKQogICAgICAgICBwb3MgKz0gb2Zmc2V0OwpAQCAtMjgsNyArMjUsNyBAQAogfQogCiBQeV9MT0NBTF9JTkxJTkUoUHlfc3NpemVfdCkKLXN0cmluZ2xpYl9yZmluZChjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3RyLCBQeV9zc2l6ZV90IHN0cl9sZW4sCitTVFJJTkdMSUIocmZpbmQpKGNvbnN0IFNUUklOR0xJQl9DSEFSKiBzdHIsIFB5X3NzaXplX3Qgc3RyX2xlbiwKICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3ViLCBQeV9zc2l6ZV90IHN1Yl9sZW4sCiAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBvZmZzZXQpCiB7CkBAIC0zOSw3ICszNiw3IEBACiAgICAgaWYgKHN1Yl9sZW4gPT0gMCkKICAgICAgICAgcmV0dXJuIHN0cl9sZW4gKyBvZmZzZXQ7CiAKLSAgICBwb3MgPSBmYXN0c2VhcmNoKHN0ciwgc3RyX2xlbiwgc3ViLCBzdWJfbGVuLCAtMSwgRkFTVF9SU0VBUkNIKTsKKyAgICBwb3MgPSBGQVNUU0VBUkNIKHN0ciwgc3RyX2xlbiwgc3ViLCBzdWJfbGVuLCAtMSwgRkFTVF9SU0VBUkNIKTsKIAogICAgIGlmIChwb3MgPj0gMCkKICAgICAgICAgcG9zICs9IG9mZnNldDsKQEAgLTYzLDI5ICs2MCwyOSBAQAogICAgIH0KIAogUHlfTE9DQUxfSU5MSU5FKFB5X3NzaXplX3QpCi1zdHJpbmdsaWJfZmluZF9zbGljZShjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3RyLCBQeV9zc2l6ZV90IHN0cl9sZW4sCitTVFJJTkdMSUIoZmluZF9zbGljZSkoY29uc3QgU1RSSU5HTElCX0NIQVIqIHN0ciwgUHlfc3NpemVfdCBzdHJfbGVuLAogICAgICAgICAgICAgICAgICAgICAgY29uc3QgU1RSSU5HTElCX0NIQVIqIHN1YiwgUHlfc3NpemVfdCBzdWJfbGVuLAogICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydCwgUHlfc3NpemVfdCBlbmQpCiB7CiAgICAgQURKVVNUX0lORElDRVMoc3RhcnQsIGVuZCwgc3RyX2xlbik7Ci0gICAgcmV0dXJuIHN0cmluZ2xpYl9maW5kKHN0ciArIHN0YXJ0LCBlbmQgLSBzdGFydCwgc3ViLCBzdWJfbGVuLCBzdGFydCk7CisgICAgcmV0dXJuIFNUUklOR0xJQihmaW5kKShzdHIgKyBzdGFydCwgZW5kIC0gc3RhcnQsIHN1Yiwgc3ViX2xlbiwgc3RhcnQpOwogfQogCiBQeV9MT0NBTF9JTkxJTkUoUHlfc3NpemVfdCkKLXN0cmluZ2xpYl9yZmluZF9zbGljZShjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3RyLCBQeV9zc2l6ZV90IHN0cl9sZW4sCitTVFJJTkdMSUIocmZpbmRfc2xpY2UpKGNvbnN0IFNUUklOR0xJQl9DSEFSKiBzdHIsIFB5X3NzaXplX3Qgc3RyX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3ViLCBQeV9zc2l6ZV90IHN1Yl9sZW4sCiAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydCwgUHlfc3NpemVfdCBlbmQpCiB7CiAgICAgQURKVVNUX0lORElDRVMoc3RhcnQsIGVuZCwgc3RyX2xlbik7Ci0gICAgcmV0dXJuIHN0cmluZ2xpYl9yZmluZChzdHIgKyBzdGFydCwgZW5kIC0gc3RhcnQsIHN1Yiwgc3ViX2xlbiwgc3RhcnQpOworICAgIHJldHVybiBTVFJJTkdMSUIocmZpbmQpKHN0ciArIHN0YXJ0LCBlbmQgLSBzdGFydCwgc3ViLCBzdWJfbGVuLCBzdGFydCk7CiB9CiAKICNpZmRlZiBTVFJJTkdMSUJfV0FOVF9DT05UQUlOU19PQkoKIAogUHlfTE9DQUxfSU5MSU5FKGludCkKLXN0cmluZ2xpYl9jb250YWluc19vYmooUHlPYmplY3QqIHN0ciwgUHlPYmplY3QqIHN1YikKK1NUUklOR0xJQihjb250YWluc19vYmopKFB5T2JqZWN0KiBzdHIsIFB5T2JqZWN0KiBzdWIpCiB7Ci0gICAgcmV0dXJuIHN0cmluZ2xpYl9maW5kKAorICAgIHJldHVybiBTVFJJTkdMSUIoZmluZCkoCiAgICAgICAgIFNUUklOR0xJQl9TVFIoc3RyKSwgU1RSSU5HTElCX0xFTihzdHIpLAogICAgICAgICBTVFJJTkdMSUJfU1RSKHN1YiksIFNUUklOR0xJQl9MRU4oc3ViKSwgMAogICAgICAgICApICE9IC0xOwpAQCAtOTgsMTQgKzk1LDE0IEBACiByaW5kZXgpIGFuZCBmb3IgY291bnQsIHN0YXJ0c3dpdGggYW5kIGVuZHN3aXRoLCBiZWNhdXNlIHRoZXkgYWxsIGhhdmUKIHRoZSBzYW1lIGJlaGF2aW91ciBmb3IgdGhlIGFyZ3VtZW50cy4KIAotSXQgZG9lcyBub3QgdG91Y2ggdGhlIHZhcmlhYmxlcyByZWNlaXZlZCB1bnRpbCBpdCBrbm93cyBldmVyeXRoaW5nIAorSXQgZG9lcyBub3QgdG91Y2ggdGhlIHZhcmlhYmxlcyByZWNlaXZlZCB1bnRpbCBpdCBrbm93cyBldmVyeXRoaW5nCiBpcyBvay4KICovCiAKICNkZWZpbmUgRk9STUFUX0JVRkZFUl9TSVpFIDUwCiAKIFB5X0xPQ0FMX0lOTElORShpbnQpCi1zdHJpbmdsaWJfcGFyc2VfYXJnc19maW5kcyhjb25zdCBjaGFyICogZnVuY3Rpb25fbmFtZSwgUHlPYmplY3QgKmFyZ3MsCitTVFJJTkdMSUIocGFyc2VfYXJnc19maW5kcykoY29uc3QgY2hhciAqIGZ1bmN0aW9uX25hbWUsIFB5T2JqZWN0ICphcmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKipzdWJvYmosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90ICpzdGFydCwgUHlfc3NpemVfdCAqZW5kKQogewpAQCAtMTQ4LDI4ICsxNDUsNzYgQEAKIAogTm90ZSB0aGF0IHdlIHJlY2VpdmUgYSBwb2ludGVyIHRvIHRoZSBwb2ludGVyIG9mIHRoZSBzdWJzdHJpbmcgb2JqZWN0LAogc28gd2hlbiB3ZSBjcmVhdGUgdGhhdCBvYmplY3QgaW4gdGhpcyBmdW5jdGlvbiB3ZSBkb24ndCBERUNSRUYgaXQsCi1iZWNhdXNlIGl0IGNvbnRpbnVlcyBsaXZpbmcgaW4gdGhlIGNhbGxlciBmdW5jdGlvbnMgKHRob3NlIGZ1bmN0aW9ucywgCitiZWNhdXNlIGl0IGNvbnRpbnVlcyBsaXZpbmcgaW4gdGhlIGNhbGxlciBmdW5jdGlvbnMgKHRob3NlIGZ1bmN0aW9ucywKIGFmdGVyIGZpbmlzaGluZyB1c2luZyB0aGUgc3Vic3RyaW5nLCBtdXN0IERFQ1JFRiBpdCkuCiAqLwogCiBQeV9MT0NBTF9JTkxJTkUoaW50KQotc3RyaW5nbGliX3BhcnNlX2FyZ3NfZmluZHNfdW5pY29kZShjb25zdCBjaGFyICogZnVuY3Rpb25fbmFtZSwgUHlPYmplY3QgKmFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZU9iamVjdCAqKnN1YnN0cmluZywKK1NUUklOR0xJQihwYXJzZV9hcmdzX2ZpbmRzX3VuaWNvZGUpKGNvbnN0IGNoYXIgKiBmdW5jdGlvbl9uYW1lLCBQeU9iamVjdCAqYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKipzdWJzdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKnN0YXJ0LCBQeV9zc2l6ZV90ICplbmQpCiB7CiAgICAgUHlPYmplY3QgKnRtcF9zdWJzdHJpbmc7CiAKLSAgICBpZihzdHJpbmdsaWJfcGFyc2VfYXJnc19maW5kcyhmdW5jdGlvbl9uYW1lLCBhcmdzLCAmdG1wX3N1YnN0cmluZywKKyAgICBpZihTVFJJTkdMSUIocGFyc2VfYXJnc19maW5kcykoZnVuY3Rpb25fbmFtZSwgYXJncywgJnRtcF9zdWJzdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsIGVuZCkpIHsKICAgICAgICAgdG1wX3N1YnN0cmluZyA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHRtcF9zdWJzdHJpbmcpOwogICAgICAgICBpZiAoIXRtcF9zdWJzdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgKnN1YnN0cmluZyA9IChQeVVuaWNvZGVPYmplY3QgKil0bXBfc3Vic3RyaW5nOworICAgICAgICAqc3Vic3RyaW5nID0gdG1wX3N1YnN0cmluZzsKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogICAgIHJldHVybiAwOwogfQogCi0jZW5kaWYgLyogU1RSSU5HTElCX0lTX1VOSUNPREUgKi8KKyNlbHNlIC8qICFTVFJJTkdMSUJfSVNfVU5JQ09ERSAqLwogCi0jZW5kaWYgLyogU1RSSU5HTElCX0ZJTkRfSCAqLworLyoKK1dyYXBzIHN0cmluZ2xpYl9wYXJzZV9hcmdzX2ZpbmRzKCkgYW5kIGFkZGl0aW9uYWxseSBjaGVja3Mgd2hldGhlciB0aGUKK2ZpcnN0IGFyZ3VtZW50IGlzIGFuIGludGVnZXIgaW4gcmFuZ2UoMCwgMjU2KS4KKworSWYgdGhpcyBpcyB0aGUgY2FzZSwgd3JpdGVzIHRoZSBpbnRlZ2VyIHZhbHVlIHRvIHRoZSBieXRlIHBhcmFtZXRlcgorYW5kIHNldHMgc3Vib2JqIHRvIE5VTEwuIE90aGVyd2lzZSwgc2V0cyB0aGUgZmlyc3QgYXJndW1lbnQgdG8gc3Vib2JqCithbmQgZG9lc24ndCB0b3VjaCBieXRlLiBUaGUgb3RoZXIgcGFyYW1ldGVycyBhcmUgc2ltaWxhciB0byB0aG9zZSBvZgorc3RyaW5nbGliX3BhcnNlX2FyZ3NfZmluZHMoKS4KKyovCisKK1B5X0xPQ0FMX0lOTElORShpbnQpCitTVFJJTkdMSUIocGFyc2VfYXJnc19maW5kc19ieXRlKShjb25zdCBjaGFyICpmdW5jdGlvbl9uYW1lLCBQeU9iamVjdCAqYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqc3Vib2JqLCBjaGFyICpieXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqc3RhcnQsIFB5X3NzaXplX3QgKmVuZCkKK3sKKyAgICBQeU9iamVjdCAqdG1wX3N1Ym9iajsKKyAgICBQeV9zc2l6ZV90IGl2YWw7CisgICAgUHlPYmplY3QgKmVycjsKKworICAgIGlmKCFTVFJJTkdMSUIocGFyc2VfYXJnc19maW5kcykoZnVuY3Rpb25fbmFtZSwgYXJncywgJnRtcF9zdWJvYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgZW5kKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIVB5TnVtYmVyX0NoZWNrKHRtcF9zdWJvYmopKSB7CisgICAgICAgICpzdWJvYmogPSB0bXBfc3Vib2JqOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpdmFsID0gUHlOdW1iZXJfQXNTc2l6ZV90KHRtcF9zdWJvYmosIFB5RXhjX092ZXJmbG93RXJyb3IpOworICAgIGlmIChpdmFsID09IC0xKSB7CisgICAgICAgIGVyciA9IFB5RXJyX09jY3VycmVkKCk7CisgICAgICAgIGlmIChlcnIgJiYgIVB5RXJyX0dpdmVuRXhjZXB0aW9uTWF0Y2hlcyhlcnIsIFB5RXhjX092ZXJmbG93RXJyb3IpKSB7CisgICAgICAgICAgICBQeUVycl9DbGVhcigpOworICAgICAgICAgICAgKnN1Ym9iaiA9IHRtcF9zdWJvYmo7CisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChpdmFsIDwgMCB8fCBpdmFsID4gMjU1KSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiYnl0ZSBtdXN0IGJlIGluIHJhbmdlKDAsIDI1NikiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgKnN1Ym9iaiA9IE5VTEw7CisgICAgKmJ5dGUgPSAoY2hhcilpdmFsOworICAgIHJldHVybiAxOworfQorCisjZW5kaWYgLyogU1RSSU5HTElCX0lTX1VOSUNPREUgKi8KZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL2ZpbmRfbWF4X2NoYXIuaCBiL09iamVjdHMvc3RyaW5nbGliL2ZpbmRfbWF4X2NoYXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTM0NGEwCi0tLSAvZGV2L251bGwKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvZmluZF9tYXhfY2hhci5oCkBAIC0wLDAgKzEsMTM2IEBACisvKiBGaW5kaW5nIHRoZSBvcHRpbWFsIHdpZHRoIG9mIHVuaWNvZGUgY2hhcmFjdGVycyBpbiBhIGJ1ZmZlciAqLworCisjaWYgU1RSSU5HTElCX0lTX1VOSUNPREUKKworLyogTWFzayB0byBjaGVjayBvciBmb3JjZSBhbGlnbm1lbnQgb2YgYSBwb2ludGVyIHRvIEMgJ2xvbmcnIGJvdW5kYXJpZXMgKi8KKyNkZWZpbmUgTE9OR19QVFJfTUFTSyAoc2l6ZV90KSAoU0laRU9GX0xPTkcgLSAxKQorCisvKiBNYXNrIHRvIHF1aWNrbHkgY2hlY2sgd2hldGhlciBhIEMgJ2xvbmcnIGNvbnRhaW5zIGEKKyAgIG5vbi1BU0NJSSwgVVRGOC1lbmNvZGVkIGNoYXIuICovCisjaWYgKFNJWkVPRl9MT05HID09IDgpCisjIGRlZmluZSBVQ1MxX0FTQ0lJX0NIQVJfTUFTSyAweDgwODA4MDgwODA4MDgwODBVTAorI2VsaWYgKFNJWkVPRl9MT05HID09IDQpCisjIGRlZmluZSBVQ1MxX0FTQ0lJX0NIQVJfTUFTSyAweDgwODA4MDgwVUwKKyNlbHNlCisjIGVycm9yIEMgJ2xvbmcnIHNpemUgc2hvdWxkIGJlIGVpdGhlciA0IG9yIDghCisjZW5kaWYKKworI2lmIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiA9PSAxCisKK1B5X0xPQ0FMX0lOTElORShQeV9VQ1M0KQorU1RSSU5HTElCKGZpbmRfbWF4X2NoYXIpKGNvbnN0IFNUUklOR0xJQl9DSEFSICpiZWdpbiwgY29uc3QgU1RSSU5HTElCX0NIQVIgKmVuZCkKK3sKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpwID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgYmVnaW47CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWxpZ25lZF9lbmQgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKSAoKHNpemVfdCkgZW5kICYgfkxPTkdfUFRSX01BU0spOworCisgICAgd2hpbGUgKHAgPCBlbmQpIHsKKyAgICAgICAgaWYgKCEoKHNpemVfdCkgcCAmIExPTkdfUFRSX01BU0spKSB7CisgICAgICAgICAgICAvKiBIZWxwIHJlZ2lzdGVyIGFsbG9jYXRpb24gKi8KKyAgICAgICAgICAgIHJlZ2lzdGVyIGNvbnN0IHVuc2lnbmVkIGNoYXIgKl9wID0gcDsKKyAgICAgICAgICAgIHdoaWxlIChfcCA8IGFsaWduZWRfZW5kKSB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2YWx1ZSA9ICoodW5zaWduZWQgbG9uZyAqKSBfcDsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiBVQ1MxX0FTQ0lJX0NIQVJfTUFTSykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI1NTsKKyAgICAgICAgICAgICAgICBfcCArPSBTSVpFT0ZfTE9ORzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHAgPSBfcDsKKyAgICAgICAgICAgIGlmIChwID09IGVuZCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoKnArKyAmIDB4ODApCisgICAgICAgICAgICByZXR1cm4gMjU1OworICAgIH0KKyAgICByZXR1cm4gMTI3OworfQorCisjdW5kZWYgTE9OR19QVFJfTUFTSworI3VuZGVmIEFTQ0lJX0NIQVJfTUFTSworCisjZWxzZSAvKiBTVFJJTkdMSUJfU0laRU9GX0NIQVIgPT0gMSAqLworCisjZGVmaW5lIE1BU0tfQVNDSUkgMHhGRkZGRkY4MAorI2RlZmluZSBNQVNLX1VDUzEgMHhGRkZGRkYwMAorI2RlZmluZSBNQVNLX1VDUzIgMHhGRkZGMDAwMAorCisjZGVmaW5lIE1BWF9DSEFSX0FTQ0lJIDB4N2YKKyNkZWZpbmUgTUFYX0NIQVJfVUNTMSAgMHhmZgorI2RlZmluZSBNQVhfQ0hBUl9VQ1MyICAweGZmZmYKKyNkZWZpbmUgTUFYX0NIQVJfVUNTNCAgMHgxMGZmZmYKKworUHlfTE9DQUxfSU5MSU5FKFB5X1VDUzQpCitTVFJJTkdMSUIoZmluZF9tYXhfY2hhcikoY29uc3QgU1RSSU5HTElCX0NIQVIgKmJlZ2luLCBjb25zdCBTVFJJTkdMSUJfQ0hBUiAqZW5kKQoreworI2lmIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiA9PSAyCisgICAgY29uc3QgUHlfVUNTNCBtYXNrX2xpbWl0ID0gTUFTS19VQ1MxOworICAgIGNvbnN0IFB5X1VDUzQgbWF4X2NoYXJfbGltaXQgPSBNQVhfQ0hBUl9VQ1MyOworI2VsaWYgU1RSSU5HTElCX1NJWkVPRl9DSEFSID09IDQKKyAgICBjb25zdCBQeV9VQ1M0IG1hc2tfbGltaXQgPSBNQVNLX1VDUzI7CisgICAgY29uc3QgUHlfVUNTNCBtYXhfY2hhcl9saW1pdCA9IE1BWF9DSEFSX1VDUzQ7CisjZWxzZQorI2Vycm9yIEludmFsaWQgU1RSSU5HTElCX1NJWkVPRl9DSEFSIChtdXN0IGJlIDEsIDIgb3IgNCkKKyNlbmRpZgorICAgIHJlZ2lzdGVyIFB5X1VDUzQgbWFzazsKKyAgICBQeV9zc2l6ZV90IG4gPSBlbmQgLSBiZWdpbjsKKyAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiAqcCA9IGJlZ2luOworICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSICp1bnJvbGxlZF9lbmQgPSBiZWdpbiArIChuICYgfiAoUHlfc3NpemVfdCkgMyk7CisgICAgUHlfVUNTNCBtYXhfY2hhcjsKKworICAgIG1heF9jaGFyID0gTUFYX0NIQVJfQVNDSUk7CisgICAgbWFzayA9IE1BU0tfQVNDSUk7CisgICAgd2hpbGUgKHAgPCB1bnJvbGxlZF9lbmQpIHsKKyAgICAgICAgU1RSSU5HTElCX0NIQVIgYml0cyA9IHBbMF0gfCBwWzFdIHwgcFsyXSB8IHBbM107CisgICAgICAgIGlmIChiaXRzICYgbWFzaykgeworICAgICAgICAgICAgaWYgKG1hc2sgPT0gbWFza19saW1pdCkgeworICAgICAgICAgICAgICAgIC8qIExpbWl0IHJlYWNoZWQgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gbWF4X2NoYXJfbGltaXQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAobWFzayA9PSBNQVNLX0FTQ0lJKSB7CisgICAgICAgICAgICAgICAgbWF4X2NoYXIgPSBNQVhfQ0hBUl9VQ1MxOworICAgICAgICAgICAgICAgIG1hc2sgPSBNQVNLX1VDUzE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAvKiBtYXNrIGNhbid0IGJlIE1BU0tfVUNTMiBiZWNhdXNlIG9mIG1hc2tfbGltaXQgYWJvdmUgKi8KKyAgICAgICAgICAgICAgICBhc3NlcnQobWFzayA9PSBNQVNLX1VDUzEpOworICAgICAgICAgICAgICAgIG1heF9jaGFyID0gTUFYX0NIQVJfVUNTMjsKKyAgICAgICAgICAgICAgICBtYXNrID0gTUFTS19VQ1MyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLyogV2UgY2hlY2sgdGhlIG5ldyBtYXNrIG9uIHRoZSBzYW1lIGNoYXJzIGluIHRoZSBuZXh0IGl0ZXJhdGlvbiAqLworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgcCArPSA0OworICAgIH0KKyAgICB3aGlsZSAocCA8IGVuZCkgeworICAgICAgICBpZiAocFswXSAmIG1hc2spIHsKKyAgICAgICAgICAgIGlmIChtYXNrID09IG1hc2tfbGltaXQpIHsKKyAgICAgICAgICAgICAgICAvKiBMaW1pdCByZWFjaGVkICovCisgICAgICAgICAgICAgICAgcmV0dXJuIG1heF9jaGFyX2xpbWl0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG1hc2sgPT0gTUFTS19BU0NJSSkgeworICAgICAgICAgICAgICAgIG1heF9jaGFyID0gTUFYX0NIQVJfVUNTMTsKKyAgICAgICAgICAgICAgICBtYXNrID0gTUFTS19VQ1MxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLyogbWFzayBjYW4ndCBiZSBNQVNLX1VDUzIgYmVjYXVzZSBvZiBtYXNrX2xpbWl0IGFib3ZlICovCisgICAgICAgICAgICAgICAgYXNzZXJ0KG1hc2sgPT0gTUFTS19VQ1MxKTsKKyAgICAgICAgICAgICAgICBtYXhfY2hhciA9IE1BWF9DSEFSX1VDUzI7CisgICAgICAgICAgICAgICAgbWFzayA9IE1BU0tfVUNTMjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIFdlIGNoZWNrIHRoZSBuZXcgbWFzayBvbiB0aGUgc2FtZSBjaGFycyBpbiB0aGUgbmV4dCBpdGVyYXRpb24gKi8KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIHArKzsKKyAgICB9CisgICAgcmV0dXJuIG1heF9jaGFyOworfQorCisjdW5kZWYgTUFTS19BU0NJSQorI3VuZGVmIE1BU0tfVUNTMQorI3VuZGVmIE1BU0tfVUNTMgorI3VuZGVmIE1BWF9DSEFSX0FTQ0lJCisjdW5kZWYgTUFYX0NIQVJfVUNTMQorI3VuZGVmIE1BWF9DSEFSX1VDUzIKKyN1bmRlZiBNQVhfQ0hBUl9VQ1M0CisKKyNlbmRpZiAvKiBTVFJJTkdMSUJfU0laRU9GX0NIQVIgPT0gMSAqLworI2VuZGlmIC8qIFNUUklOR0xJQl9JU19VTklDT0RFICovCisKZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL2Zvcm1hdHRlci5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvZm9ybWF0dGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRmZGM2MmQuLjAwMDAwMDAKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvZm9ybWF0dGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxNTE4ICswLDAgQEAKLS8qIGltcGxlbWVudHMgdGhlIHN0cmluZywgbG9uZywgYW5kIGZsb2F0IGZvcm1hdHRlcnMuICB0aGF0IGlzLAotICAgc3RyaW5nLl9fZm9ybWF0X18sIGV0Yy4gKi8KLQotI2luY2x1ZGUgPGxvY2FsZS5oPgotCi0vKiBCZWZvcmUgaW5jbHVkaW5nIHRoaXMsIHlvdSBtdXN0IGluY2x1ZGUgZWl0aGVyOgotICAgc3RyaW5nbGliL3VuaWNvZGVkZWZzLmgKLSAgIHN0cmluZ2xpYi9zdHJpbmdkZWZzLmgKLQotICAgQWxzbywgeW91IHNob3VsZCBkZWZpbmUgdGhlIG5hbWVzOgotICAgRk9STUFUX1NUUklORwotICAgRk9STUFUX0xPTkcKLSAgIEZPUk1BVF9GTE9BVAotICAgRk9STUFUX0NPTVBMRVgKLSAgIHRvIGJlIHdoYXRldmVyIHlvdSB3YW50IHRoZSBwdWJsaWMgbmFtZXMgb2YgdGhlc2UgZnVuY3Rpb25zIHRvCi0gICBiZS4gIFRoZXNlIGFyZSB0aGUgb25seSBub24tc3RhdGljIGZ1bmN0aW9ucyBkZWZpbmVkIGhlcmUuCi0qLwotCi0vKiBSYWlzZXMgYW4gZXhjZXB0aW9uIGFib3V0IGFuIHVua25vd24gcHJlc2VudGF0aW9uIHR5cGUgZm9yIHRoaXMKLSAqIHR5cGUuICovCi0KLXN0YXRpYyB2b2lkCi11bmtub3duX3ByZXNlbnRhdGlvbl90eXBlKFNUUklOR0xJQl9DSEFSIHByZXNlbnRhdGlvbl90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiB0eXBlX25hbWUpCi17Ci0jaWYgU1RSSU5HTElCX0lTX1VOSUNPREUKLSAgICAvKiBJZiBTVFJJTkdMSUJfQ0hBUiBpcyBQeV9VTklDT0RFLCAlYyBtaWdodCBiZSBvdXQtb2YtcmFuZ2UsCi0gICAgICAgaGVuY2UgdGhlIHR3byBjYXNlcy4gSWYgaXQgaXMgY2hhciwgZ2NjIGNvbXBsYWlucyB0aGF0IHRoZQotICAgICAgIGNvbmRpdGlvbiBiZWxvdyBpcyBhbHdheXMgdHJ1ZSwgaGVuY2UgdGhlIGlmZGVmLiAqLwotICAgIGlmIChwcmVzZW50YXRpb25fdHlwZSA+IDMyICYmIHByZXNlbnRhdGlvbl90eXBlIDwgMTI4KQotI2VuZGlmCi0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgIlVua25vd24gZm9ybWF0IGNvZGUgJyVjJyAiCi0gICAgICAgICAgICAgICAgICAgICAiZm9yIG9iamVjdCBvZiB0eXBlICclLjIwMHMnIiwKLSAgICAgICAgICAgICAgICAgICAgIChjaGFyKXByZXNlbnRhdGlvbl90eXBlLAotICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lKTsKLSNpZiBTVFJJTkdMSUJfSVNfVU5JQ09ERQotICAgIGVsc2UKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAiVW5rbm93biBmb3JtYXQgY29kZSAnXFx4JXgnICIKLSAgICAgICAgICAgICAgICAgICAgICJmb3Igb2JqZWN0IG9mIHR5cGUgJyUuMjAwcyciLAotICAgICAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGludClwcmVzZW50YXRpb25fdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgIHR5cGVfbmFtZSk7Ci0jZW5kaWYKLX0KLQotc3RhdGljIHZvaWQKLWludmFsaWRfY29tbWFfdHlwZShTVFJJTkdMSUJfQ0hBUiBwcmVzZW50YXRpb25fdHlwZSkKLXsKLSNpZiBTVFJJTkdMSUJfSVNfVU5JQ09ERQotICAgIC8qIFNlZSBjb21tZW50IGluIHVua25vd25fcHJlc2VudGF0aW9uX3R5cGUgKi8KLSAgICBpZiAocHJlc2VudGF0aW9uX3R5cGUgPiAzMiAmJiBwcmVzZW50YXRpb25fdHlwZSA8IDEyOCkKLSNlbmRpZgotICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICJDYW5ub3Qgc3BlY2lmeSAnLCcgd2l0aCAnJWMnLiIsCi0gICAgICAgICAgICAgICAgICAgICAoY2hhcilwcmVzZW50YXRpb25fdHlwZSk7Ci0jaWYgU1RSSU5HTElCX0lTX1VOSUNPREUKLSAgICBlbHNlCi0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBzcGVjaWZ5ICcsJyB3aXRoICdcXHgleCcuIiwKLSAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpcHJlc2VudGF0aW9uX3R5cGUpOwotI2VuZGlmCi19Ci0KLS8qCi0gICAgZ2V0X2ludGVnZXIgY29uc3VtZXMgMCBvciBtb3JlIGRlY2ltYWwgZGlnaXQgY2hhcmFjdGVycyBmcm9tIGFuCi0gICAgaW5wdXQgc3RyaW5nLCB1cGRhdGVzICpyZXN1bHQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyBwb3NpdGl2ZQotICAgIGludGVnZXIsIGFuZCByZXR1cm5zIHRoZSBudW1iZXIgb2YgZGlnaXRzIGNvbnN1bWVkLgotCi0gICAgcmV0dXJucyAtMSBvbiBlcnJvci4KLSovCi1zdGF0aWMgaW50Ci1nZXRfaW50ZWdlcihTVFJJTkdMSUJfQ0hBUiAqKnB0ciwgU1RSSU5HTElCX0NIQVIgKmVuZCwKLSAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKnJlc3VsdCkKLXsKLSAgICBQeV9zc2l6ZV90IGFjY3VtdWxhdG9yLCBkaWdpdHZhbCwgb2xkYWNjdW11bGF0b3I7Ci0gICAgaW50IG51bWRpZ2l0czsKLSAgICBhY2N1bXVsYXRvciA9IG51bWRpZ2l0cyA9IDA7Ci0gICAgZm9yICg7OygqcHRyKSsrLCBudW1kaWdpdHMrKykgewotICAgICAgICBpZiAoKnB0ciA+PSBlbmQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGlnaXR2YWwgPSBTVFJJTkdMSUJfVE9ERUNJTUFMKCoqcHRyKTsKLSAgICAgICAgaWYgKGRpZ2l0dmFsIDwgMCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAvKgotICAgICAgICAgICBUaGlzIHRyaWNrIHdhcyBjb3BpZWQgZnJvbSBvbGQgVW5pY29kZSBmb3JtYXQgY29kZS4gIEl0J3MgY3V0ZSwKLSAgICAgICAgICAgYnV0IHdvdWxkIHJlYWxseSBzdWNrIG9uIGFuIG9sZCBtYWNoaW5lIHdpdGggYSBzbG93IGRpdmlkZQotICAgICAgICAgICBpbXBsZW1lbnRhdGlvbi4gIEZvcnR1bmF0ZWx5LCBpbiB0aGUgbm9ybWFsIGNhc2Ugd2UgZG8gbm90Ci0gICAgICAgICAgIGV4cGVjdCB0b28gbWFueSBkaWdpdHMuCi0gICAgICAgICovCi0gICAgICAgIG9sZGFjY3VtdWxhdG9yID0gYWNjdW11bGF0b3I7Ci0gICAgICAgIGFjY3VtdWxhdG9yICo9IDEwOwotICAgICAgICBpZiAoKGFjY3VtdWxhdG9yKzEwKS8xMCAhPSBvbGRhY2N1bXVsYXRvcisxKSB7Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiVG9vIG1hbnkgZGVjaW1hbCBkaWdpdHMgaW4gZm9ybWF0IHN0cmluZyIpOwotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgICAgIGFjY3VtdWxhdG9yICs9IGRpZ2l0dmFsOwotICAgIH0KLSAgICAqcmVzdWx0ID0gYWNjdW11bGF0b3I7Ci0gICAgcmV0dXJuIG51bWRpZ2l0czsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKioqKioqKioqKiBzdGFuZGFyZCBmb3JtYXQgc3BlY2lmaWVyIHBhcnNpbmcgKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiByZXR1cm5zIHRydWUgaWYgdGhpcyBjaGFyYWN0ZXIgaXMgYSBzcGVjaWZpZXIgYWxpZ25tZW50IHRva2VuICovCi1QeV9MT0NBTF9JTkxJTkUoaW50KQotaXNfYWxpZ25tZW50X3Rva2VuKFNUUklOR0xJQl9DSEFSIGMpCi17Ci0gICAgc3dpdGNoIChjKSB7Ci0gICAgY2FzZSAnPCc6IGNhc2UgJz4nOiBjYXNlICc9JzogY2FzZSAnXic6Ci0gICAgICAgIHJldHVybiAxOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLX0KLQotLyogcmV0dXJucyB0cnVlIGlmIHRoaXMgY2hhcmFjdGVyIGlzIGEgc2lnbiBlbGVtZW50ICovCi1QeV9MT0NBTF9JTkxJTkUoaW50KQotaXNfc2lnbl9lbGVtZW50KFNUUklOR0xJQl9DSEFSIGMpCi17Ci0gICAgc3dpdGNoIChjKSB7Ci0gICAgY2FzZSAnICc6IGNhc2UgJysnOiBjYXNlICctJzoKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotfQotCi0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBTVFJJTkdMSUJfQ0hBUiBmaWxsX2NoYXI7Ci0gICAgU1RSSU5HTElCX0NIQVIgYWxpZ247Ci0gICAgaW50IGFsdGVybmF0ZTsKLSAgICBTVFJJTkdMSUJfQ0hBUiBzaWduOwotICAgIFB5X3NzaXplX3Qgd2lkdGg7Ci0gICAgaW50IHRob3VzYW5kc19zZXBhcmF0b3JzOwotICAgIFB5X3NzaXplX3QgcHJlY2lzaW9uOwotICAgIFNUUklOR0xJQl9DSEFSIHR5cGU7Ci19IEludGVybmFsRm9ybWF0U3BlYzsKLQotCi0jaWYgMAotLyogT2NjYXNzaW9uYWxseSB1c2VmdWwgZm9yIGRlYnVnZ2luZy4gU2hvdWxkIG5vcm1hbGx5IGJlIGNvbW1lbnRlZCBvdXQuICovCi1zdGF0aWMgdm9pZAotREVCVUdfUFJJTlRfRk9STUFUX1NQRUMoSW50ZXJuYWxGb3JtYXRTcGVjICpmb3JtYXQpCi17Ci0gICAgcHJpbnRmKCJpbnRlcm5hbCBmb3JtYXQgc3BlYzogZmlsbF9jaGFyICVkXG4iLCBmb3JtYXQtPmZpbGxfY2hhcik7Ci0gICAgcHJpbnRmKCJpbnRlcm5hbCBmb3JtYXQgc3BlYzogYWxpZ24gJWRcbiIsIGZvcm1hdC0+YWxpZ24pOwotICAgIHByaW50ZigiaW50ZXJuYWwgZm9ybWF0IHNwZWM6IGFsdGVybmF0ZSAlZFxuIiwgZm9ybWF0LT5hbHRlcm5hdGUpOwotICAgIHByaW50ZigiaW50ZXJuYWwgZm9ybWF0IHNwZWM6IHNpZ24gJWRcbiIsIGZvcm1hdC0+c2lnbik7Ci0gICAgcHJpbnRmKCJpbnRlcm5hbCBmb3JtYXQgc3BlYzogd2lkdGggJXpkXG4iLCBmb3JtYXQtPndpZHRoKTsKLSAgICBwcmludGYoImludGVybmFsIGZvcm1hdCBzcGVjOiB0aG91c2FuZHNfc2VwYXJhdG9ycyAlZFxuIiwKLSAgICAgICAgICAgZm9ybWF0LT50aG91c2FuZHNfc2VwYXJhdG9ycyk7Ci0gICAgcHJpbnRmKCJpbnRlcm5hbCBmb3JtYXQgc3BlYzogcHJlY2lzaW9uICV6ZFxuIiwgZm9ybWF0LT5wcmVjaXNpb24pOwotICAgIHByaW50ZigiaW50ZXJuYWwgZm9ybWF0IHNwZWM6IHR5cGUgJWNcbiIsIGZvcm1hdC0+dHlwZSk7Ci0gICAgcHJpbnRmKCJcbiIpOwotfQotI2VuZGlmCi0KLQotLyoKLSAgcHRyIHBvaW50cyB0byB0aGUgc3RhcnQgb2YgdGhlIGZvcm1hdF9zcGVjLCBlbmQgcG9pbnRzIGp1c3QgcGFzdCBpdHMgZW5kLgotICBmaWxscyBpbiBmb3JtYXQgd2l0aCB0aGUgcGFyc2VkIGluZm9ybWF0aW9uLgotICByZXR1cm5zIDEgb24gc3VjY2VzcywgMCBvbiBmYWlsdXJlLgotICBpZiBmYWlsdXJlLCBzZXRzIHRoZSBleGNlcHRpb24KLSovCi1zdGF0aWMgaW50Ci1wYXJzZV9pbnRlcm5hbF9yZW5kZXJfZm9ybWF0X3NwZWMoU1RSSU5HTElCX0NIQVIgKmZvcm1hdF9zcGVjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgZm9ybWF0X3NwZWNfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsRm9ybWF0U3BlYyAqZm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZGVmYXVsdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgZGVmYXVsdF9hbGlnbikKLXsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcHRyID0gZm9ybWF0X3NwZWM7Ci0gICAgU1RSSU5HTElCX0NIQVIgKmVuZCA9IGZvcm1hdF9zcGVjICsgZm9ybWF0X3NwZWNfbGVuOwotCi0gICAgLyogZW5kLXB0ciBpcyB1c2VkIHRocm91Z2hvdXQgdGhpcyBjb2RlIHRvIHNwZWNpZnkgdGhlIGxlbmd0aCBvZgotICAgICAgIHRoZSBpbnB1dCBzdHJpbmcgKi8KLQotICAgIFB5X3NzaXplX3QgY29uc3VtZWQ7Ci0gICAgaW50IGFsaWduX3NwZWNpZmllZCA9IDA7Ci0KLSAgICBmb3JtYXQtPmZpbGxfY2hhciA9ICdcMCc7Ci0gICAgZm9ybWF0LT5hbGlnbiA9IGRlZmF1bHRfYWxpZ247Ci0gICAgZm9ybWF0LT5hbHRlcm5hdGUgPSAwOwotICAgIGZvcm1hdC0+c2lnbiA9ICdcMCc7Ci0gICAgZm9ybWF0LT53aWR0aCA9IC0xOwotICAgIGZvcm1hdC0+dGhvdXNhbmRzX3NlcGFyYXRvcnMgPSAwOwotICAgIGZvcm1hdC0+cHJlY2lzaW9uID0gLTE7Ci0gICAgZm9ybWF0LT50eXBlID0gZGVmYXVsdF90eXBlOwotCi0gICAgLyogSWYgdGhlIHNlY29uZCBjaGFyIGlzIGFuIGFsaWdubWVudCB0b2tlbiwKLSAgICAgICB0aGVuIHBhcnNlIHRoZSBmaWxsIGNoYXIgKi8KLSAgICBpZiAoZW5kLXB0ciA+PSAyICYmIGlzX2FsaWdubWVudF90b2tlbihwdHJbMV0pKSB7Ci0gICAgICAgIGZvcm1hdC0+YWxpZ24gPSBwdHJbMV07Ci0gICAgICAgIGZvcm1hdC0+ZmlsbF9jaGFyID0gcHRyWzBdOwotICAgICAgICBhbGlnbl9zcGVjaWZpZWQgPSAxOwotICAgICAgICBwdHIgKz0gMjsKLSAgICB9Ci0gICAgZWxzZSBpZiAoZW5kLXB0ciA+PSAxICYmIGlzX2FsaWdubWVudF90b2tlbihwdHJbMF0pKSB7Ci0gICAgICAgIGZvcm1hdC0+YWxpZ24gPSBwdHJbMF07Ci0gICAgICAgIGFsaWduX3NwZWNpZmllZCA9IDE7Ci0gICAgICAgICsrcHRyOwotICAgIH0KLQotICAgIC8qIFBhcnNlIHRoZSB2YXJpb3VzIHNpZ24gb3B0aW9ucyAqLwotICAgIGlmIChlbmQtcHRyID49IDEgJiYgaXNfc2lnbl9lbGVtZW50KHB0clswXSkpIHsKLSAgICAgICAgZm9ybWF0LT5zaWduID0gcHRyWzBdOwotICAgICAgICArK3B0cjsKLSAgICB9Ci0KLSAgICAvKiBJZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgIywgd2UncmUgaW4gYWx0ZXJuYXRlIG1vZGUuICBUaGlzIG9ubHkKLSAgICAgICBhcHBsaWVzIHRvIGludGVnZXJzLiAqLwotICAgIGlmIChlbmQtcHRyID49IDEgJiYgcHRyWzBdID09ICcjJykgewotICAgICAgICBmb3JtYXQtPmFsdGVybmF0ZSA9IDE7Ci0gICAgICAgICsrcHRyOwotICAgIH0KLQotICAgIC8qIFRoZSBzcGVjaWFsIGNhc2UgZm9yIDAtcGFkZGluZyAoYmFja3dhcmRzIGNvbXBhdCkgKi8KLSAgICBpZiAoZm9ybWF0LT5maWxsX2NoYXIgPT0gJ1wwJyAmJiBlbmQtcHRyID49IDEgJiYgcHRyWzBdID09ICcwJykgewotICAgICAgICBmb3JtYXQtPmZpbGxfY2hhciA9ICcwJzsKLSAgICAgICAgaWYgKCFhbGlnbl9zcGVjaWZpZWQpIHsKLSAgICAgICAgICAgIGZvcm1hdC0+YWxpZ24gPSAnPSc7Ci0gICAgICAgIH0KLSAgICAgICAgKytwdHI7Ci0gICAgfQotCi0gICAgY29uc3VtZWQgPSBnZXRfaW50ZWdlcigmcHRyLCBlbmQsICZmb3JtYXQtPndpZHRoKTsKLSAgICBpZiAoY29uc3VtZWQgPT0gLTEpCi0gICAgICAgIC8qIE92ZXJmbG93IGVycm9yLiBFeGNlcHRpb24gYWxyZWFkeSBzZXQuICovCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgLyogSWYgY29uc3VtZWQgaXMgMCwgd2UgZGlkbid0IGNvbnN1bWUgYW55IGNoYXJhY3RlcnMgZm9yIHRoZQotICAgICAgIHdpZHRoLiBJbiB0aGF0IGNhc2UsIHJlc2V0IHRoZSB3aWR0aCB0byAtMSwgYmVjYXVzZQotICAgICAgIGdldF9pbnRlZ2VyKCkgd2lsbCBoYXZlIHNldCBpdCB0byB6ZXJvLiAtMSBpcyBob3cgd2UgcmVjb3JkCi0gICAgICAgdGhhdCB0aGUgd2lkdGggd2Fzbid0IHNwZWNpZmllZC4gKi8KLSAgICBpZiAoY29uc3VtZWQgPT0gMCkKLSAgICAgICAgZm9ybWF0LT53aWR0aCA9IC0xOwotCi0gICAgLyogQ29tbWEgc2lnbmlmaWVzIGFkZCB0aG91c2FuZHMgc2VwYXJhdG9ycyAqLwotICAgIGlmIChlbmQtcHRyICYmIHB0clswXSA9PSAnLCcpIHsKLSAgICAgICAgZm9ybWF0LT50aG91c2FuZHNfc2VwYXJhdG9ycyA9IDE7Ci0gICAgICAgICsrcHRyOwotICAgIH0KLQotICAgIC8qIFBhcnNlIGZpZWxkIHByZWNpc2lvbiAqLwotICAgIGlmIChlbmQtcHRyICYmIHB0clswXSA9PSAnLicpIHsKLSAgICAgICAgKytwdHI7Ci0KLSAgICAgICAgY29uc3VtZWQgPSBnZXRfaW50ZWdlcigmcHRyLCBlbmQsICZmb3JtYXQtPnByZWNpc2lvbik7Ci0gICAgICAgIGlmIChjb25zdW1lZCA9PSAtMSkKLSAgICAgICAgICAgIC8qIE92ZXJmbG93IGVycm9yLiBFeGNlcHRpb24gYWxyZWFkeSBzZXQuICovCi0gICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICAvKiBOb3QgaGF2aW5nIGEgcHJlY2lzaW9uIGFmdGVyIGEgZG90IGlzIGFuIGVycm9yLiAqLwotICAgICAgICBpZiAoY29uc3VtZWQgPT0gMCkgewotICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkZvcm1hdCBzcGVjaWZpZXIgbWlzc2luZyBwcmVjaXNpb24iKTsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICB9Ci0KLSAgICAvKiBGaW5hbGx5LCBwYXJzZSB0aGUgdHlwZSBmaWVsZC4gKi8KLQotICAgIGlmIChlbmQtcHRyID4gMSkgewotICAgICAgICAvKiBNb3JlIHRoYW4gb25lIGNoYXIgcmVtYWluLCBpbnZhbGlkIGNvbnZlcnNpb24gc3BlYy4gKi8KLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsICJJbnZhbGlkIGNvbnZlcnNpb24gc3BlY2lmaWNhdGlvbiIpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBpZiAoZW5kLXB0ciA9PSAxKSB7Ci0gICAgICAgIGZvcm1hdC0+dHlwZSA9IHB0clswXTsKLSAgICAgICAgKytwdHI7Ci0gICAgfQotCi0gICAgLyogRG8gYXMgbXVjaCB2YWxpZGF0aW5nIGFzIHdlIGNhbiwganVzdCBieSBsb29raW5nIGF0IHRoZSBmb3JtYXQKLSAgICAgICBzcGVjaWZpZXIuICBEbyBub3QgdGFrZSBpbnRvIGFjY291bnQgd2hhdCB0eXBlIG9mIGZvcm1hdHRpbmcKLSAgICAgICB3ZSdyZSBkb2luZyAoaW50LCBmbG9hdCwgc3RyaW5nKS4gKi8KLQotICAgIGlmIChmb3JtYXQtPnRob3VzYW5kc19zZXBhcmF0b3JzKSB7Ci0gICAgICAgIHN3aXRjaCAoZm9ybWF0LT50eXBlKSB7Ci0gICAgICAgIGNhc2UgJ2QnOgotICAgICAgICBjYXNlICdlJzoKLSAgICAgICAgY2FzZSAnZic6Ci0gICAgICAgIGNhc2UgJ2cnOgotICAgICAgICBjYXNlICdFJzoKLSAgICAgICAgY2FzZSAnRyc6Ci0gICAgICAgIGNhc2UgJyUnOgotICAgICAgICBjYXNlICdGJzoKLSAgICAgICAgY2FzZSAnXDAnOgotICAgICAgICAgICAgLyogVGhlc2UgYXJlIGFsbG93ZWQuIFNlZSBQRVAgMzc4LiovCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGludmFsaWRfY29tbWFfdHlwZShmb3JtYXQtPnR5cGUpOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gMTsKLX0KLQotLyogQ2FsY3VsYXRlIHRoZSBwYWRkaW5nIG5lZWRlZC4gKi8KLXN0YXRpYyB2b2lkCi1jYWxjX3BhZGRpbmcoUHlfc3NpemVfdCBuY2hhcnMsIFB5X3NzaXplX3Qgd2lkdGgsIFNUUklOR0xJQl9DSEFSIGFsaWduLAotICAgICAgICAgICAgIFB5X3NzaXplX3QgKm5fbHBhZGRpbmcsIFB5X3NzaXplX3QgKm5fcnBhZGRpbmcsCi0gICAgICAgICAgICAgUHlfc3NpemVfdCAqbl90b3RhbCkKLXsKLSAgICBpZiAod2lkdGggPj0gMCkgewotICAgICAgICBpZiAobmNoYXJzID4gd2lkdGgpCi0gICAgICAgICAgICAqbl90b3RhbCA9IG5jaGFyczsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgKm5fdG90YWwgPSB3aWR0aDsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8qIG5vdCBzcGVjaWZpZWQsIHVzZSBhbGwgb2YgdGhlIGNoYXJzIGFuZCBubyBtb3JlICovCi0gICAgICAgICpuX3RvdGFsID0gbmNoYXJzOwotICAgIH0KLQotICAgIC8qIEZpZ3VyZSBvdXQgaG93IG11Y2ggbGVhZGluZyBzcGFjZSB3ZSBuZWVkLCBiYXNlZCBvbiB0aGUKLSAgICAgICBhbGlnbmluZyAqLwotICAgIGlmIChhbGlnbiA9PSAnPicpCi0gICAgICAgICpuX2xwYWRkaW5nID0gKm5fdG90YWwgLSBuY2hhcnM7Ci0gICAgZWxzZSBpZiAoYWxpZ24gPT0gJ14nKQotICAgICAgICAqbl9scGFkZGluZyA9ICgqbl90b3RhbCAtIG5jaGFycykgLyAyOwotICAgIGVsc2UgaWYgKGFsaWduID09ICc8JyB8fCBhbGlnbiA9PSAnPScpCi0gICAgICAgICpuX2xwYWRkaW5nID0gMDsKLSAgICBlbHNlIHsKLSAgICAgICAgLyogV2Ugc2hvdWxkIG5ldmVyIGhhdmUgYW4gdW5zcGVjaWZpZWQgYWxpZ25tZW50LiAqLwotICAgICAgICAqbl9scGFkZGluZyA9IDA7Ci0gICAgICAgIGFzc2VydCgwKTsKLSAgICB9Ci0KLSAgICAqbl9ycGFkZGluZyA9ICpuX3RvdGFsIC0gbmNoYXJzIC0gKm5fbHBhZGRpbmc7Ci19Ci0KLS8qIERvIHRoZSBwYWRkaW5nLCBhbmQgcmV0dXJuIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgY2FsbGVyLXN1cHBsaWVkCi0gICBjb250ZW50IGdvZXMuICovCi1zdGF0aWMgU1RSSU5HTElCX0NIQVIgKgotZmlsbF9wYWRkaW5nKFNUUklOR0xJQl9DSEFSICpwLCBQeV9zc2l6ZV90IG5jaGFycywgU1RSSU5HTElCX0NIQVIgZmlsbF9jaGFyLAotICAgICAgICAgICAgIFB5X3NzaXplX3Qgbl9scGFkZGluZywgUHlfc3NpemVfdCBuX3JwYWRkaW5nKQotewotICAgIC8qIFBhZCBvbiBsZWZ0LiAqLwotICAgIGlmIChuX2xwYWRkaW5nKQotICAgICAgICBTVFJJTkdMSUJfRklMTChwLCBmaWxsX2NoYXIsIG5fbHBhZGRpbmcpOwotCi0gICAgLyogUGFkIG9uIHJpZ2h0LiAqLwotICAgIGlmIChuX3JwYWRkaW5nKQotICAgICAgICBTVFJJTkdMSUJfRklMTChwICsgbmNoYXJzICsgbl9scGFkZGluZywgZmlsbF9jaGFyLCBuX3JwYWRkaW5nKTsKLQotICAgIC8qIFBvaW50ZXIgdG8gdGhlIHVzZXIgY29udGVudC4gKi8KLSAgICByZXR1cm4gcCArIG5fbHBhZGRpbmc7Ci19Ci0KLSNpZiBkZWZpbmVkIEZPUk1BVF9GTE9BVCB8fCBkZWZpbmVkIEZPUk1BVF9MT05HIHx8IGRlZmluZWQgRk9STUFUX0NPTVBMRVgKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKioqKioqKioqKiogY29tbW9uIHJvdXRpbmVzIGZvciBudW1lcmljIGZvcm1hdHRpbmcgKioqKioqKioqKioqKioqKioqKioqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogTG9jYWxlIHR5cGUgY29kZXMuICovCi0jZGVmaW5lIExUX0NVUlJFTlRfTE9DQUxFIDAKLSNkZWZpbmUgTFRfREVGQVVMVF9MT0NBTEUgMQotI2RlZmluZSBMVF9OT19MT0NBTEUgMgotCi0vKiBMb2NhbGUgaW5mbyBuZWVkZWQgZm9yIGZvcm1hdHRpbmcgaW50ZWdlcnMgYW5kIHRoZSBwYXJ0IG9mIGZsb2F0cwotICAgYmVmb3JlIGFuZCBpbmNsdWRpbmcgdGhlIGRlY2ltYWwuIE5vdGUgdGhhdCBsb2NhbGVzIG9ubHkgc3VwcG9ydAotICAgOC1iaXQgY2hhcnMsIG5vdCB1bmljb2RlLiAqLwotdHlwZWRlZiBzdHJ1Y3QgewotICAgIGNoYXIgKmRlY2ltYWxfcG9pbnQ7Ci0gICAgY2hhciAqdGhvdXNhbmRzX3NlcDsKLSAgICBjaGFyICpncm91cGluZzsKLX0gTG9jYWxlSW5mbzsKLQotLyogZGVzY3JpYmVzIHRoZSBsYXlvdXQgZm9yIGFuIGludGVnZXIsIHNlZSB0aGUgY29tbWVudCBpbgotICAgY2FsY19udW1iZXJfd2lkdGhzKCkgZm9yIGRldGFpbHMgKi8KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBQeV9zc2l6ZV90IG5fbHBhZGRpbmc7Ci0gICAgUHlfc3NpemVfdCBuX3ByZWZpeDsKLSAgICBQeV9zc2l6ZV90IG5fc3BhZGRpbmc7Ci0gICAgUHlfc3NpemVfdCBuX3JwYWRkaW5nOwotICAgIGNoYXIgc2lnbjsKLSAgICBQeV9zc2l6ZV90IG5fc2lnbjsgICAgICAvKiBudW1iZXIgb2YgZGlnaXRzIG5lZWRlZCBmb3Igc2lnbiAoMC8xKSAqLwotICAgIFB5X3NzaXplX3Qgbl9ncm91cGVkX2RpZ2l0czsgLyogU3BhY2UgdGFrZW4gdXAgYnkgdGhlIGRpZ2l0cywgaW5jbHVkaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnkgZ3JvdXBpbmcgY2hhcnMuICovCi0gICAgUHlfc3NpemVfdCBuX2RlY2ltYWw7ICAgLyogMCBpZiBvbmx5IGFuIGludGVnZXIgKi8KLSAgICBQeV9zc2l6ZV90IG5fcmVtYWluZGVyOyAvKiBEaWdpdHMgaW4gZGVjaW1hbCBhbmQvb3IgZXhwb25lbnQgcGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRpbmcgdGhlIGRlY2ltYWwgaXRzZWxmLCBpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNlbnQuICovCi0KLSAgICAvKiBUaGVzZSAyIGFyZSBub3QgdGhlIHdpZHRocyBvZiBmaWVsZHMsIGJ1dCBhcmUgbmVlZGVkIGJ5Ci0gICAgICAgU1RSSU5HTElCX0dST1VQSU5HLiAqLwotICAgIFB5X3NzaXplX3Qgbl9kaWdpdHM7ICAgIC8qIFRoZSBudW1iZXIgb2YgZGlnaXRzIGJlZm9yZSBhIGRlY2ltYWwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvciBleHBvbmVudC4gKi8KLSAgICBQeV9zc2l6ZV90IG5fbWluX3dpZHRoOyAvKiBUaGUgbWluX3dpZHRoIHdlIHVzZWQgd2hlbiB3ZSBjb21wdXRlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBuX2dyb3VwZWRfZGlnaXRzIHdpZHRoLiAqLwotfSBOdW1iZXJGaWVsZFdpZHRoczsKLQotCi0vKiBHaXZlbiBhIG51bWJlciBvZiB0aGUgZm9ybToKLSAgIGRpZ2l0c1tyZW1haW5kZXJdCi0gICB3aGVyZSBwdHIgcG9pbnRzIHRvIHRoZSBzdGFydCBhbmQgZW5kIHBvaW50cyB0byB0aGUgZW5kLCBmaW5kIHdoZXJlCi0gICAgdGhlIGludGVnZXIgcGFydCBlbmRzLiBUaGlzIGNvdWxkIGJlIGEgZGVjaW1hbCwgYW4gZXhwb25lbnQsIGJvdGgsCi0gICAgb3IgbmVpdGhlci4KLSAgIElmIGEgZGVjaW1hbCBwb2ludCBpcyBwcmVzZW50LCBzZXQgKmhhc19kZWNpbWFsIGFuZCBpbmNyZW1lbnQKLSAgICByZW1haW5kZXIgYmV5b25kIGl0LgotICAgUmVzdWx0cyBhcmUgdW5kZWZpbmVkIChidXQgc2hvdWxkbid0IGNyYXNoKSBmb3IgaW1wcm9wZXJseQotICAgIGZvcm1hdHRlZCBzdHJpbmdzLgotKi8KLXN0YXRpYyB2b2lkCi1wYXJzZV9udW1iZXIoU1RSSU5HTElCX0NIQVIgKnB0ciwgUHlfc3NpemVfdCBsZW4sCi0gICAgICAgICAgICAgUHlfc3NpemVfdCAqbl9yZW1haW5kZXIsIGludCAqaGFzX2RlY2ltYWwpCi17Ci0gICAgU1RSSU5HTElCX0NIQVIgKmVuZCA9IHB0ciArIGxlbjsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcmVtYWluZGVyOwotCi0gICAgd2hpbGUgKHB0cjxlbmQgJiYgaXNkaWdpdCgqcHRyKSkKLSAgICAgICAgKytwdHI7Ci0gICAgcmVtYWluZGVyID0gcHRyOwotCi0gICAgLyogRG9lcyByZW1haW5kZXIgc3RhcnQgd2l0aCBhIGRlY2ltYWwgcG9pbnQ/ICovCi0gICAgKmhhc19kZWNpbWFsID0gcHRyPGVuZCAmJiAqcmVtYWluZGVyID09ICcuJzsKLQotICAgIC8qIFNraXAgdGhlIGRlY2ltYWwgcG9pbnQuICovCi0gICAgaWYgKCpoYXNfZGVjaW1hbCkKLSAgICAgICAgcmVtYWluZGVyKys7Ci0KLSAgICAqbl9yZW1haW5kZXIgPSBlbmQgLSByZW1haW5kZXI7Ci19Ci0KLS8qIG5vdCBhbGwgZmllbGRzIG9mIGZvcm1hdCBhcmUgdXNlZC4gIGZvciBleGFtcGxlLCBwcmVjaXNpb24gaXMKLSAgIHVudXNlZC4gIHNob3VsZCB0aGlzIHRha2UgZGlzY3JldGUgcGFyYW1zIGluIG9yZGVyIHRvIGJlIG1vcmUgY2xlYXIKLSAgIGFib3V0IHdoYXQgaXQgZG9lcz8gIG9yIGlzIHBhc3NpbmcgYSBzaW5nbGUgZm9ybWF0IHBhcmFtZXRlciBlYXNpZXIKLSAgIGFuZCBtb3JlIGVmZmljaWVudCBlbm91Z2ggdG8ganVzdGlmeSBhIGxpdHRsZSBvYmZ1c2NhdGlvbj8gKi8KLXN0YXRpYyBQeV9zc2l6ZV90Ci1jYWxjX251bWJlcl93aWR0aHMoTnVtYmVyRmllbGRXaWR0aHMgKnNwZWMsIFB5X3NzaXplX3Qgbl9wcmVmaXgsCi0gICAgICAgICAgICAgICAgICAgU1RSSU5HTElCX0NIQVIgc2lnbl9jaGFyLCBTVFJJTkdMSUJfQ0hBUiAqbnVtYmVyLAotICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgbl9udW1iZXIsIFB5X3NzaXplX3Qgbl9yZW1haW5kZXIsCi0gICAgICAgICAgICAgICAgICAgaW50IGhhc19kZWNpbWFsLCBjb25zdCBMb2NhbGVJbmZvICpsb2NhbGUsCi0gICAgICAgICAgICAgICAgICAgY29uc3QgSW50ZXJuYWxGb3JtYXRTcGVjICpmb3JtYXQpCi17Ci0gICAgUHlfc3NpemVfdCBuX25vbl9kaWdpdF9ub25fcGFkZGluZzsKLSAgICBQeV9zc2l6ZV90IG5fcGFkZGluZzsKLQotICAgIHNwZWMtPm5fZGlnaXRzID0gbl9udW1iZXIgLSBuX3JlbWFpbmRlciAtIChoYXNfZGVjaW1hbD8xOjApOwotICAgIHNwZWMtPm5fbHBhZGRpbmcgPSAwOwotICAgIHNwZWMtPm5fcHJlZml4ID0gbl9wcmVmaXg7Ci0gICAgc3BlYy0+bl9kZWNpbWFsID0gaGFzX2RlY2ltYWwgPyBzdHJsZW4obG9jYWxlLT5kZWNpbWFsX3BvaW50KSA6IDA7Ci0gICAgc3BlYy0+bl9yZW1haW5kZXIgPSBuX3JlbWFpbmRlcjsKLSAgICBzcGVjLT5uX3NwYWRkaW5nID0gMDsKLSAgICBzcGVjLT5uX3JwYWRkaW5nID0gMDsKLSAgICBzcGVjLT5zaWduID0gJ1wwJzsKLSAgICBzcGVjLT5uX3NpZ24gPSAwOwotCi0gICAgLyogdGhlIG91dHB1dCB3aWxsIGxvb2sgbGlrZToKLSAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci0gICAgICAgfCA8bHBhZGRpbmc+IDxzaWduPiA8cHJlZml4PiA8c3BhZGRpbmc+IDxncm91cGVkX2RpZ2l0cz4gPGRlY2ltYWw+IDxyZW1haW5kZXI+IDxycGFkZGluZz4gfAotICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKLQotICAgICAgIHNpZ24gaXMgY29tcHV0ZWQgZnJvbSBmb3JtYXQtPnNpZ24gYW5kIHRoZSBhY3R1YWwKLSAgICAgICBzaWduIG9mIHRoZSBudW1iZXIKLQotICAgICAgIHByZWZpeCBpcyBnaXZlbiAoaXQncyBmb3IgdGhlICcweCcgcHJlZml4KQotCi0gICAgICAgZGlnaXRzIGlzIGFscmVhZHkga25vd24KLQotICAgICAgIHRoZSB0b3RhbCB3aWR0aCBpcyBlaXRoZXIgZ2l2ZW4sIG9yIGNvbXB1dGVkIGZyb20gdGhlCi0gICAgICAgYWN0dWFsIGRpZ2l0cwotCi0gICAgICAgb25seSBvbmUgb2YgbHBhZGRpbmcsIHNwYWRkaW5nLCBhbmQgcnBhZGRpbmcgY2FuIGJlIG5vbi16ZXJvLAotICAgICAgIGFuZCBpdCdzIGNhbGN1bGF0ZWQgZnJvbSB0aGUgd2lkdGggYW5kIG90aGVyIGZpZWxkcwotICAgICovCi0KLSAgICAvKiBjb21wdXRlIHRoZSB2YXJpb3VzIHBhcnRzIHdlJ3JlIGdvaW5nIHRvIHdyaXRlICovCi0gICAgc3dpdGNoIChmb3JtYXQtPnNpZ24pIHsKLSAgICBjYXNlICcrJzoKLSAgICAgICAgLyogYWx3YXlzIHB1dCBhICsgb3IgLSAqLwotICAgICAgICBzcGVjLT5uX3NpZ24gPSAxOwotICAgICAgICBzcGVjLT5zaWduID0gKHNpZ25fY2hhciA9PSAnLScgPyAnLScgOiAnKycpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlICcgJzoKLSAgICAgICAgc3BlYy0+bl9zaWduID0gMTsKLSAgICAgICAgc3BlYy0+c2lnbiA9IChzaWduX2NoYXIgPT0gJy0nID8gJy0nIDogJyAnKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgLyogTm90IHNwZWNpZmllZCwgb3IgdGhlIGRlZmF1bHQgKC0pICovCi0gICAgICAgIGlmIChzaWduX2NoYXIgPT0gJy0nKSB7Ci0gICAgICAgICAgICBzcGVjLT5uX3NpZ24gPSAxOwotICAgICAgICAgICAgc3BlYy0+c2lnbiA9ICctJzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8qIFRoZSBudW1iZXIgb2YgY2hhcnMgdXNlZCBmb3Igbm9uLWRpZ2l0cyBhbmQgbm9uLXBhZGRpbmcuICovCi0gICAgbl9ub25fZGlnaXRfbm9uX3BhZGRpbmcgPSBzcGVjLT5uX3NpZ24gKyBzcGVjLT5uX3ByZWZpeCArIHNwZWMtPm5fZGVjaW1hbCArCi0gICAgICAgIHNwZWMtPm5fcmVtYWluZGVyOwotCi0gICAgLyogbWluX3dpZHRoIGNhbiBnbyBuZWdhdGl2ZSwgdGhhdCdzIG9rYXkuIGZvcm1hdC0+d2lkdGggPT0gLTEgbWVhbnMKLSAgICAgICB3ZSBkb24ndCBjYXJlLiAqLwotICAgIGlmIChmb3JtYXQtPmZpbGxfY2hhciA9PSAnMCcgJiYgZm9ybWF0LT5hbGlnbiA9PSAnPScpCi0gICAgICAgIHNwZWMtPm5fbWluX3dpZHRoID0gZm9ybWF0LT53aWR0aCAtIG5fbm9uX2RpZ2l0X25vbl9wYWRkaW5nOwotICAgIGVsc2UKLSAgICAgICAgc3BlYy0+bl9taW5fd2lkdGggPSAwOwotCi0gICAgaWYgKHNwZWMtPm5fZGlnaXRzID09IDApCi0gICAgICAgIC8qIFRoaXMgY2FzZSBvbmx5IG9jY3VycyB3aGVuIHVzaW5nICdjJyBmb3JtYXR0aW5nLCB3ZSBuZWVkCi0gICAgICAgICAgIHRvIHNwZWNpYWwgY2FzZSBpdCBiZWNhdXNlIHRoZSBncm91cGluZyBjb2RlIGFsd2F5cyB3YW50cwotICAgICAgICAgICB0byBoYXZlIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIuICovCi0gICAgICAgIHNwZWMtPm5fZ3JvdXBlZF9kaWdpdHMgPSAwOwotICAgIGVsc2UKLSAgICAgICAgc3BlYy0+bl9ncm91cGVkX2RpZ2l0cyA9IFNUUklOR0xJQl9HUk9VUElORyhOVUxMLCAwLCBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWMtPm5fZGlnaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWMtPm5fbWluX3dpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZS0+Z3JvdXBpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlLT50aG91c2FuZHNfc2VwKTsKLQotICAgIC8qIEdpdmVuIHRoZSBkZXNpcmVkIHdpZHRoIGFuZCB0aGUgdG90YWwgb2YgZGlnaXQgYW5kIG5vbi1kaWdpdAotICAgICAgIHNwYWNlIHdlIGNvbnN1bWUsIHNlZSBpZiB3ZSBuZWVkIGFueSBwYWRkaW5nLiBmb3JtYXQtPndpZHRoIGNhbgotICAgICAgIGJlIG5lZ2F0aXZlIChtZWFuaW5nIG5vIHBhZGRpbmcpLCBidXQgdGhpcyBjb2RlIHN0aWxsIHdvcmtzIGluCi0gICAgICAgdGhhdCBjYXNlLiAqLwotICAgIG5fcGFkZGluZyA9IGZvcm1hdC0+d2lkdGggLQotICAgICAgICAgICAgICAgICAgICAgICAgKG5fbm9uX2RpZ2l0X25vbl9wYWRkaW5nICsgc3BlYy0+bl9ncm91cGVkX2RpZ2l0cyk7Ci0gICAgaWYgKG5fcGFkZGluZyA+IDApIHsKLSAgICAgICAgLyogU29tZSBwYWRkaW5nIGlzIG5lZWRlZC4gRGV0ZXJtaW5lIGlmIGl0J3MgbGVmdCwgc3BhY2UsIG9yIHJpZ2h0LiAqLwotICAgICAgICBzd2l0Y2ggKGZvcm1hdC0+YWxpZ24pIHsKLSAgICAgICAgY2FzZSAnPCc6Ci0gICAgICAgICAgICBzcGVjLT5uX3JwYWRkaW5nID0gbl9wYWRkaW5nOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ14nOgotICAgICAgICAgICAgc3BlYy0+bl9scGFkZGluZyA9IG5fcGFkZGluZyAvIDI7Ci0gICAgICAgICAgICBzcGVjLT5uX3JwYWRkaW5nID0gbl9wYWRkaW5nIC0gc3BlYy0+bl9scGFkZGluZzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICc9JzoKLSAgICAgICAgICAgIHNwZWMtPm5fc3BhZGRpbmcgPSBuX3BhZGRpbmc7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAnPic6Ci0gICAgICAgICAgICBzcGVjLT5uX2xwYWRkaW5nID0gbl9wYWRkaW5nOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAvKiBTaG91bGRuJ3QgZ2V0IGhlcmUsIGJ1dCB0cmVhdCBpdCBhcyAnPicgKi8KLSAgICAgICAgICAgIHNwZWMtPm5fbHBhZGRpbmcgPSBuX3BhZGRpbmc7Ci0gICAgICAgICAgICBhc3NlcnQoMCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gc3BlYy0+bl9scGFkZGluZyArIHNwZWMtPm5fc2lnbiArIHNwZWMtPm5fcHJlZml4ICsKLSAgICAgICAgc3BlYy0+bl9zcGFkZGluZyArIHNwZWMtPm5fZ3JvdXBlZF9kaWdpdHMgKyBzcGVjLT5uX2RlY2ltYWwgKwotICAgICAgICBzcGVjLT5uX3JlbWFpbmRlciArIHNwZWMtPm5fcnBhZGRpbmc7Ci19Ci0KLS8qIEZpbGwgaW4gdGhlIGRpZ2l0IHBhcnRzIG9mIGEgbnVtYmVycydzIHN0cmluZyByZXByZXNlbnRhdGlvbiwKLSAgIGFzIGRldGVybWluZWQgaW4gY2FsY19udW1iZXJfd2lkdGhzKCkuCi0gICBObyBlcnJvciBjaGVja2luZywgc2luY2Ugd2Uga25vdyB0aGUgYnVmZmVyIGlzIHRoZSBjb3JyZWN0IHNpemUuICovCi1zdGF0aWMgdm9pZAotZmlsbF9udW1iZXIoU1RSSU5HTElCX0NIQVIgKmJ1ZiwgY29uc3QgTnVtYmVyRmllbGRXaWR0aHMgKnNwZWMsCi0gICAgICAgICAgICBTVFJJTkdMSUJfQ0hBUiAqZGlnaXRzLCBQeV9zc2l6ZV90IG5fZGlnaXRzLAotICAgICAgICAgICAgU1RSSU5HTElCX0NIQVIgKnByZWZpeCwgU1RSSU5HTElCX0NIQVIgZmlsbF9jaGFyLAotICAgICAgICAgICAgTG9jYWxlSW5mbyAqbG9jYWxlLCBpbnQgdG91cHBlcikKLXsKLSAgICAvKiBVc2VkIHRvIGtlZXAgdHJhY2sgb2YgZGlnaXRzLCBkZWNpbWFsLCBhbmQgcmVtYWluZGVyLiAqLwotICAgIFNUUklOR0xJQl9DSEFSICpwID0gZGlnaXRzOwotCi0jaWZuZGVmIE5ERUJVRwotICAgIFB5X3NzaXplX3QgcjsKLSNlbmRpZgotCi0gICAgaWYgKHNwZWMtPm5fbHBhZGRpbmcpIHsKLSAgICAgICAgU1RSSU5HTElCX0ZJTEwoYnVmLCBmaWxsX2NoYXIsIHNwZWMtPm5fbHBhZGRpbmcpOwotICAgICAgICBidWYgKz0gc3BlYy0+bl9scGFkZGluZzsKLSAgICB9Ci0gICAgaWYgKHNwZWMtPm5fc2lnbiA9PSAxKSB7Ci0gICAgICAgICpidWYrKyA9IHNwZWMtPnNpZ247Ci0gICAgfQotICAgIGlmIChzcGVjLT5uX3ByZWZpeCkgewotICAgICAgICBtZW1tb3ZlKGJ1ZiwKLSAgICAgICAgICAgICAgICBwcmVmaXgsCi0gICAgICAgICAgICAgICAgc3BlYy0+bl9wcmVmaXggKiBzaXplb2YoU1RSSU5HTElCX0NIQVIpKTsKLSAgICAgICAgaWYgKHRvdXBwZXIpIHsKLSAgICAgICAgICAgIFB5X3NzaXplX3QgdDsKLSAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCBzcGVjLT5uX3ByZWZpeDsgKyt0KQotICAgICAgICAgICAgICAgIGJ1Zlt0XSA9IFNUUklOR0xJQl9UT1VQUEVSKGJ1Zlt0XSk7Ci0gICAgICAgIH0KLSAgICAgICAgYnVmICs9IHNwZWMtPm5fcHJlZml4OwotICAgIH0KLSAgICBpZiAoc3BlYy0+bl9zcGFkZGluZykgewotICAgICAgICBTVFJJTkdMSUJfRklMTChidWYsIGZpbGxfY2hhciwgc3BlYy0+bl9zcGFkZGluZyk7Ci0gICAgICAgIGJ1ZiArPSBzcGVjLT5uX3NwYWRkaW5nOwotICAgIH0KLQotICAgIC8qIE9ubHkgZm9yIHR5cGUgJ2MnIHNwZWNpYWwgY2FzZSwgaXQgaGFzIG5vIGRpZ2l0cy4gKi8KLSAgICBpZiAoc3BlYy0+bl9kaWdpdHMgIT0gMCkgewotICAgICAgICAvKiBGaWxsIHRoZSBkaWdpdHMgd2l0aCBJbnNlcnRUaG91c2FuZHNHcm91cGluZy4gKi8KLSNpZm5kZWYgTkRFQlVHCi0gICAgICAgIHIgPQotI2VuZGlmCi0gICAgICAgICAgICBTVFJJTkdMSUJfR1JPVVBJTkcoYnVmLCBzcGVjLT5uX2dyb3VwZWRfZGlnaXRzLCBkaWdpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlYy0+bl9kaWdpdHMsIHNwZWMtPm5fbWluX3dpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZS0+Z3JvdXBpbmcsIGxvY2FsZS0+dGhvdXNhbmRzX3NlcCk7Ci0jaWZuZGVmIE5ERUJVRwotICAgICAgICBhc3NlcnQociA9PSBzcGVjLT5uX2dyb3VwZWRfZGlnaXRzKTsKLSNlbmRpZgotICAgICAgICBwICs9IHNwZWMtPm5fZGlnaXRzOwotICAgIH0KLSAgICBpZiAodG91cHBlcikgewotICAgICAgICBQeV9zc2l6ZV90IHQ7Ci0gICAgICAgIGZvciAodCA9IDA7IHQgPCBzcGVjLT5uX2dyb3VwZWRfZGlnaXRzOyArK3QpCi0gICAgICAgICAgICBidWZbdF0gPSBTVFJJTkdMSUJfVE9VUFBFUihidWZbdF0pOwotICAgIH0KLSAgICBidWYgKz0gc3BlYy0+bl9ncm91cGVkX2RpZ2l0czsKLQotICAgIGlmIChzcGVjLT5uX2RlY2ltYWwpIHsKLSAgICAgICAgUHlfc3NpemVfdCB0OwotICAgICAgICBmb3IgKHQgPSAwOyB0IDwgc3BlYy0+bl9kZWNpbWFsOyArK3QpCi0gICAgICAgICAgICBidWZbdF0gPSBsb2NhbGUtPmRlY2ltYWxfcG9pbnRbdF07Ci0gICAgICAgIGJ1ZiArPSBzcGVjLT5uX2RlY2ltYWw7Ci0gICAgICAgIHAgKz0gMTsKLSAgICB9Ci0KLSAgICBpZiAoc3BlYy0+bl9yZW1haW5kZXIpIHsKLSAgICAgICAgbWVtY3B5KGJ1ZiwgcCwgc3BlYy0+bl9yZW1haW5kZXIgKiBzaXplb2YoU1RSSU5HTElCX0NIQVIpKTsKLSAgICAgICAgYnVmICs9IHNwZWMtPm5fcmVtYWluZGVyOwotICAgICAgICBwICs9IHNwZWMtPm5fcmVtYWluZGVyOwotICAgIH0KLQotICAgIGlmIChzcGVjLT5uX3JwYWRkaW5nKSB7Ci0gICAgICAgIFNUUklOR0xJQl9GSUxMKGJ1ZiwgZmlsbF9jaGFyLCBzcGVjLT5uX3JwYWRkaW5nKTsKLSAgICAgICAgYnVmICs9IHNwZWMtPm5fcnBhZGRpbmc7Ci0gICAgfQotfQotCi1zdGF0aWMgY2hhciBub19ncm91cGluZ1sxXSA9IHtDSEFSX01BWH07Ci0KLS8qIEZpbmQgdGhlIGRlY2ltYWwgcG9pbnQgY2hhcmFjdGVyKHM/KSwgdGhvdXNhbmRzX3NlcGFyYXRvcihzPyksIGFuZAotICAgZ3JvdXBpbmcgZGVzY3JpcHRpb24sIGVpdGhlciBmb3IgdGhlIGN1cnJlbnQgbG9jYWxlIGlmIHR5cGUgaXMKLSAgIExUX0NVUlJFTlRfTE9DQUxFLCBhIGhhcmQtY29kZWQgbG9jYWxlIGlmIExUX0RFRkFVTFRfTE9DQUxFLCBvcgotICAgbm9uZSBpZiBMVF9OT19MT0NBTEUuICovCi1zdGF0aWMgdm9pZAotZ2V0X2xvY2FsZV9pbmZvKGludCB0eXBlLCBMb2NhbGVJbmZvICpsb2NhbGVfaW5mbykKLXsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIExUX0NVUlJFTlRfTE9DQUxFOiB7Ci0gICAgICAgIHN0cnVjdCBsY29udiAqbG9jYWxlX2RhdGEgPSBsb2NhbGVjb252KCk7Ci0gICAgICAgIGxvY2FsZV9pbmZvLT5kZWNpbWFsX3BvaW50ID0gbG9jYWxlX2RhdGEtPmRlY2ltYWxfcG9pbnQ7Ci0gICAgICAgIGxvY2FsZV9pbmZvLT50aG91c2FuZHNfc2VwID0gbG9jYWxlX2RhdGEtPnRob3VzYW5kc19zZXA7Ci0gICAgICAgIGxvY2FsZV9pbmZvLT5ncm91cGluZyA9IGxvY2FsZV9kYXRhLT5ncm91cGluZzsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgTFRfREVGQVVMVF9MT0NBTEU6Ci0gICAgICAgIGxvY2FsZV9pbmZvLT5kZWNpbWFsX3BvaW50ID0gIi4iOwotICAgICAgICBsb2NhbGVfaW5mby0+dGhvdXNhbmRzX3NlcCA9ICIsIjsKLSAgICAgICAgbG9jYWxlX2luZm8tPmdyb3VwaW5nID0gIlwzIjsgLyogR3JvdXAgZXZlcnkgMyBjaGFyYWN0ZXJzLiAgVGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbXBsaWNpdCkgdHJhaWxpbmcgMCBtZWFucyByZXBlYXQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5maW5pdGVseS4gKi8KLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBMVF9OT19MT0NBTEU6Ci0gICAgICAgIGxvY2FsZV9pbmZvLT5kZWNpbWFsX3BvaW50ID0gIi4iOwotICAgICAgICBsb2NhbGVfaW5mby0+dGhvdXNhbmRzX3NlcCA9ICIiOwotICAgICAgICBsb2NhbGVfaW5mby0+Z3JvdXBpbmcgPSBub19ncm91cGluZzsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYXNzZXJ0KDApOwotICAgIH0KLX0KLQotI2VuZGlmIC8qIEZPUk1BVF9GTE9BVCB8fCBGT1JNQVRfTE9ORyB8fCBGT1JNQVRfQ09NUExFWCAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqKioqKioqKioqIHN0cmluZyBmb3JtYXR0aW5nICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXN0YXRpYyBQeU9iamVjdCAqCi1mb3JtYXRfc3RyaW5nX2ludGVybmFsKFB5T2JqZWN0ICp2YWx1ZSwgY29uc3QgSW50ZXJuYWxGb3JtYXRTcGVjICpmb3JtYXQpCi17Ci0gICAgUHlfc3NpemVfdCBscGFkOwotICAgIFB5X3NzaXplX3QgcnBhZDsKLSAgICBQeV9zc2l6ZV90IHRvdGFsOwotICAgIFNUUklOR0xJQl9DSEFSICpwOwotICAgIFB5X3NzaXplX3QgbGVuID0gU1RSSU5HTElCX0xFTih2YWx1ZSk7Ci0gICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7Ci0KLSAgICAvKiBzaWduIGlzIG5vdCBhbGxvd2VkIG9uIHN0cmluZ3MgKi8KLSAgICBpZiAoZm9ybWF0LT5zaWduICE9ICdcMCcpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiU2lnbiBub3QgYWxsb3dlZCBpbiBzdHJpbmcgZm9ybWF0IHNwZWNpZmllciIpOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0gICAgLyogYWx0ZXJuYXRlIGlzIG5vdCBhbGxvd2VkIG9uIHN0cmluZ3MgKi8KLSAgICBpZiAoZm9ybWF0LT5hbHRlcm5hdGUpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiQWx0ZXJuYXRlIGZvcm0gKCMpIG5vdCBhbGxvd2VkIGluIHN0cmluZyBmb3JtYXQgIgotICAgICAgICAgICAgICAgICAgICAgICAgInNwZWNpZmllciIpOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0gICAgLyogJz0nIGFsaWdubWVudCBub3QgYWxsb3dlZCBvbiBzdHJpbmdzICovCi0gICAgaWYgKGZvcm1hdC0+YWxpZ24gPT0gJz0nKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgIic9JyBhbGlnbm1lbnQgbm90IGFsbG93ZWQgIgotICAgICAgICAgICAgICAgICAgICAgICAgImluIHN0cmluZyBmb3JtYXQgc3BlY2lmaWVyIik7Ci0gICAgICAgIGdvdG8gZG9uZTsKLSAgICB9Ci0KLSAgICAvKiBpZiBwcmVjaXNpb24gaXMgc3BlY2lmaWVkLCBvdXRwdXQgbm8gbW9yZSB0aGF0IGZvcm1hdC5wcmVjaXNpb24KLSAgICAgICBjaGFyYWN0ZXJzICovCi0gICAgaWYgKGZvcm1hdC0+cHJlY2lzaW9uID49IDAgJiYgbGVuID49IGZvcm1hdC0+cHJlY2lzaW9uKSB7Ci0gICAgICAgIGxlbiA9IGZvcm1hdC0+cHJlY2lzaW9uOwotICAgIH0KLQotICAgIGNhbGNfcGFkZGluZyhsZW4sIGZvcm1hdC0+d2lkdGgsIGZvcm1hdC0+YWxpZ24sICZscGFkLCAmcnBhZCwgJnRvdGFsKTsKLQotICAgIC8qIGFsbG9jYXRlIHRoZSByZXN1bHRpbmcgc3RyaW5nICovCi0gICAgcmVzdWx0ID0gU1RSSU5HTElCX05FVyhOVUxMLCB0b3RhbCk7Ci0gICAgaWYgKHJlc3VsdCA9PSBOVUxMKQotICAgICAgICBnb3RvIGRvbmU7Ci0KLSAgICAvKiBXcml0ZSBpbnRvIHRoYXQgc3BhY2UuIEZpcnN0IHRoZSBwYWRkaW5nLiAqLwotICAgIHAgPSBmaWxsX3BhZGRpbmcoU1RSSU5HTElCX1NUUihyZXN1bHQpLCBsZW4sCi0gICAgICAgICAgICAgICAgICAgICBmb3JtYXQtPmZpbGxfY2hhcj09J1wwJz8nICc6Zm9ybWF0LT5maWxsX2NoYXIsCi0gICAgICAgICAgICAgICAgICAgICBscGFkLCBycGFkKTsKLQotICAgIC8qIFRoZW4gdGhlIHNvdXJjZSBzdHJpbmcuICovCi0gICAgbWVtY3B5KHAsIFNUUklOR0xJQl9TVFIodmFsdWUpLCBsZW4gKiBzaXplb2YoU1RSSU5HTElCX0NIQVIpKTsKLQotZG9uZToKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKioqKioqKioqKiogbG9uZyBmb3JtYXR0aW5nICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2lmIGRlZmluZWQgRk9STUFUX0xPTkcgfHwgZGVmaW5lZCBGT1JNQVRfSU5UCi10eXBlZGVmIFB5T2JqZWN0KgotKCpJbnRPckxvbmdUb1N0cmluZykoUHlPYmplY3QgKnZhbHVlLCBpbnQgYmFzZSk7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1mb3JtYXRfaW50X29yX2xvbmdfaW50ZXJuYWwoUHlPYmplY3QgKnZhbHVlLCBjb25zdCBJbnRlcm5hbEZvcm1hdFNwZWMgKmZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRPckxvbmdUb1N0cmluZyB0b3N0cmluZykKLXsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLSAgICBQeU9iamVjdCAqdG1wID0gTlVMTDsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcG51bWVyaWNfY2hhcnM7Ci0gICAgU1RSSU5HTElCX0NIQVIgbnVtZXJpY19jaGFyOwotICAgIFNUUklOR0xJQl9DSEFSIHNpZ25fY2hhciA9ICdcMCc7Ci0gICAgUHlfc3NpemVfdCBuX2RpZ2l0czsgICAgICAgLyogY291bnQgb2YgZGlnaXRzIG5lZWQgZnJvbSB0aGUgY29tcHV0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgKi8KLSAgICBQeV9zc2l6ZV90IG5fcmVtYWluZGVyID0gMDsgLyogVXNlZCBvbmx5IGZvciAnYycgZm9ybWF0dGluZywgd2hpY2gKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjZXMgbm9uLWRpZ2l0cyAqLwotICAgIFB5X3NzaXplX3Qgbl9wcmVmaXggPSAwOyAgIC8qIENvdW50IG9mIHByZWZpeCBjaGFycywgKGUuZy4sICcweCcpICovCi0gICAgUHlfc3NpemVfdCBuX3RvdGFsOwotICAgIFNUUklOR0xJQl9DSEFSICpwcmVmaXggPSBOVUxMOwotICAgIE51bWJlckZpZWxkV2lkdGhzIHNwZWM7Ci0gICAgbG9uZyB4OwotCi0gICAgLyogTG9jYWxlIHNldHRpbmdzLCBlaXRoZXIgZnJvbSB0aGUgYWN0dWFsIGxvY2FsZSBvcgotICAgICAgIGZyb20gYSBoYXJkLWNvZGUgcHNldWRvLWxvY2FsZSAqLwotICAgIExvY2FsZUluZm8gbG9jYWxlOwotCi0gICAgLyogbm8gcHJlY2lzaW9uIGFsbG93ZWQgb24gaW50ZWdlcnMgKi8KLSAgICBpZiAoZm9ybWF0LT5wcmVjaXNpb24gIT0gLTEpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiUHJlY2lzaW9uIG5vdCBhbGxvd2VkIGluIGludGVnZXIgZm9ybWF0IHNwZWNpZmllciIpOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0gICAgLyogc3BlY2lhbCBjYXNlIGZvciBjaGFyYWN0ZXIgZm9ybWF0dGluZyAqLwotICAgIGlmIChmb3JtYXQtPnR5cGUgPT0gJ2MnKSB7Ci0gICAgICAgIC8qIGVycm9yIHRvIHNwZWNpZnkgYSBzaWduICovCi0gICAgICAgIGlmIChmb3JtYXQtPnNpZ24gIT0gJ1wwJykgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNpZ24gbm90IGFsbG93ZWQgd2l0aCBpbnRlZ2VyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgZm9ybWF0IHNwZWNpZmllciAnYyciKTsKLSAgICAgICAgICAgIGdvdG8gZG9uZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIHRha2VuIGZyb20gdW5pY29kZW9iamVjdC5jIGZvcm1hdGNoYXIoKSAqLwotICAgICAgICAvKiBJbnRlZ2VyIGlucHV0IHRydW5jYXRlZCB0byBhIGNoYXJhY3RlciAqLwotLyogWFhYOiB3b24ndCB3b3JrIGZvciBpbnQgKi8KLSAgICAgICAgeCA9IFB5TG9uZ19Bc0xvbmcodmFsdWUpOwotICAgICAgICBpZiAoeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICAgICAgZ290byBkb25lOwotI2lmZGVmIFB5X1VOSUNPREVfV0lERQotICAgICAgICBpZiAoeCA8IDAgfHwgeCA+IDB4MTBmZmZmKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJWMgYXJnIG5vdCBpbiByYW5nZSgweDExMDAwMCkgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICIod2lkZSBQeXRob24gYnVpbGQpIik7Ci0gICAgICAgICAgICBnb3RvIGRvbmU7Ci0gICAgICAgIH0KLSNlbHNlCi0gICAgICAgIGlmICh4IDwgMCB8fCB4ID4gMHhmZmZmKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJWMgYXJnIG5vdCBpbiByYW5nZSgweDEwMDAwKSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIihuYXJyb3cgUHl0aG9uIGJ1aWxkKSIpOwotICAgICAgICAgICAgZ290byBkb25lOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgbnVtZXJpY19jaGFyID0gKFNUUklOR0xJQl9DSEFSKXg7Ci0gICAgICAgIHBudW1lcmljX2NoYXJzID0gJm51bWVyaWNfY2hhcjsKLSAgICAgICAgbl9kaWdpdHMgPSAxOwotCi0gICAgICAgIC8qIEFzIGEgc29ydC1vZiBoYWNrLCB3ZSB0ZWxsIGNhbGNfbnVtYmVyX3dpZHRocyB0aGF0IHdlIG9ubHkKLSAgICAgICAgICAgaGF2ZSAicmVtYWluZGVyIiBjaGFyYWN0ZXJzLiBjYWxjX251bWJlcl93aWR0aHMgdGhpbmtzCi0gICAgICAgICAgIHRoZXNlIGFyZSBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3QgZ2V0IGZvcm1hdHRlZCwgb25seSBjb3BpZWQKLSAgICAgICAgICAgaW50byB0aGUgb3V0cHV0IHN0cmluZy4gV2UgZG8gdGhpcyBmb3IgJ2MnIGZvcm1hdHRpbmcsCi0gICAgICAgICAgIGJlY2F1c2UgdGhlIGNoYXJhY3RlcnMgYXJlIGxpa2VseSB0byBiZSBub24tZGlnaXRzLiAqLwotICAgICAgICBuX3JlbWFpbmRlciA9IDE7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICBpbnQgYmFzZTsKLSAgICAgICAgaW50IGxlYWRpbmdfY2hhcnNfdG9fc2tpcCA9IDA7ICAvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBhZGRlZCBieQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5TnVtYmVyX1RvQmFzZSB0aGF0IHdlIHdhbnQgdG8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwIG92ZXIuICovCi0KLSAgICAgICAgLyogQ29tcHV0ZSB0aGUgYmFzZSBhbmQgaG93IG1hbnkgY2hhcmFjdGVycyB3aWxsIGJlIGFkZGVkIGJ5Ci0gICAgICAgICAgIFB5TnVtYmVyX1RvQmFzZSAqLwotICAgICAgICBzd2l0Y2ggKGZvcm1hdC0+dHlwZSkgewotICAgICAgICBjYXNlICdiJzoKLSAgICAgICAgICAgIGJhc2UgPSAyOwotICAgICAgICAgICAgbGVhZGluZ19jaGFyc190b19za2lwID0gMjsgLyogMGIgKi8KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICdvJzoKLSAgICAgICAgICAgIGJhc2UgPSA4OwotICAgICAgICAgICAgbGVhZGluZ19jaGFyc190b19za2lwID0gMjsgLyogMG8gKi8KLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlICd4JzoKLSAgICAgICAgY2FzZSAnWCc6Ci0gICAgICAgICAgICBiYXNlID0gMTY7Ci0gICAgICAgICAgICBsZWFkaW5nX2NoYXJzX3RvX3NraXAgPSAyOyAvKiAweCAqLwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6ICAvKiBzaG91bGRuJ3QgYmUgbmVlZGVkLCBidXQgc3RvcHMgYSBjb21waWxlciB3YXJuaW5nICovCi0gICAgICAgIGNhc2UgJ2QnOgotICAgICAgICBjYXNlICduJzoKLSAgICAgICAgICAgIGJhc2UgPSAxMDsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogVGhlIG51bWJlciBvZiBwcmVmaXggY2hhcnMgaXMgdGhlIHNhbWUgYXMgdGhlIGxlYWRpbmcKLSAgICAgICAgICAgY2hhcnMgdG8gc2tpcCAqLwotICAgICAgICBpZiAoZm9ybWF0LT5hbHRlcm5hdGUpCi0gICAgICAgICAgICBuX3ByZWZpeCA9IGxlYWRpbmdfY2hhcnNfdG9fc2tpcDsKLQotICAgICAgICAvKiBEbyB0aGUgaGFyZCBwYXJ0LCBjb252ZXJ0aW5nIHRvIGEgc3RyaW5nIGluIGEgZ2l2ZW4gYmFzZSAqLwotICAgICAgICB0bXAgPSB0b3N0cmluZyh2YWx1ZSwgYmFzZSk7Ci0gICAgICAgIGlmICh0bXAgPT0gTlVMTCkKLSAgICAgICAgICAgIGdvdG8gZG9uZTsKLQotICAgICAgICBwbnVtZXJpY19jaGFycyA9IFNUUklOR0xJQl9TVFIodG1wKTsKLSAgICAgICAgbl9kaWdpdHMgPSBTVFJJTkdMSUJfTEVOKHRtcCk7Ci0KLSAgICAgICAgcHJlZml4ID0gcG51bWVyaWNfY2hhcnM7Ci0KLSAgICAgICAgLyogUmVtZW1iZXIgbm90IHRvIG1vZGlmeSB3aGF0IHBudW1lcmljX2NoYXJzIHBvaW50cyB0by4gIGl0Ci0gICAgICAgICAgIG1pZ2h0IGJlIGludGVybmVkLiAgT25seSBtb2RpZnkgaXQgYWZ0ZXIgd2UgY29weSBpdCBpbnRvIGEKLSAgICAgICAgICAgbmV3bHkgYWxsb2NhdGVkIG91dHB1dCBidWZmZXIuICovCi0KLSAgICAgICAgLyogSXMgYSBzaWduIGNoYXJhY3RlciBwcmVzZW50IGluIHRoZSBvdXRwdXQ/ICBJZiBzbywgcmVtZW1iZXIgaXQKLSAgICAgICAgICAgYW5kIHNraXAgaXQgKi8KLSAgICAgICAgaWYgKHBudW1lcmljX2NoYXJzWzBdID09ICctJykgewotICAgICAgICAgICAgc2lnbl9jaGFyID0gcG51bWVyaWNfY2hhcnNbMF07Ci0gICAgICAgICAgICArK3ByZWZpeDsKLSAgICAgICAgICAgICsrbGVhZGluZ19jaGFyc190b19za2lwOwotICAgICAgICB9Ci0KLSAgICAgICAgLyogU2tpcCBvdmVyIHRoZSBsZWFkaW5nIGNoYXJzICgweCwgMGIsIGV0Yy4pICovCi0gICAgICAgIG5fZGlnaXRzIC09IGxlYWRpbmdfY2hhcnNfdG9fc2tpcDsKLSAgICAgICAgcG51bWVyaWNfY2hhcnMgKz0gbGVhZGluZ19jaGFyc190b19za2lwOwotICAgIH0KLQotICAgIC8qIERldGVybWluZSB0aGUgZ3JvdXBpbmcsIHNlcGFyYXRvciwgYW5kIGRlY2ltYWwgcG9pbnQsIGlmIGFueS4gKi8KLSAgICBnZXRfbG9jYWxlX2luZm8oZm9ybWF0LT50eXBlID09ICduJyA/IExUX0NVUlJFTlRfTE9DQUxFIDoKLSAgICAgICAgICAgICAgICAgICAgKGZvcm1hdC0+dGhvdXNhbmRzX3NlcGFyYXRvcnMgPwotICAgICAgICAgICAgICAgICAgICAgTFRfREVGQVVMVF9MT0NBTEUgOgotICAgICAgICAgICAgICAgICAgICAgTFRfTk9fTE9DQUxFKSwKLSAgICAgICAgICAgICAgICAgICAgJmxvY2FsZSk7Ci0KLSAgICAvKiBDYWxjdWxhdGUgaG93IG11Y2ggbWVtb3J5IHdlJ2xsIG5lZWQuICovCi0gICAgbl90b3RhbCA9IGNhbGNfbnVtYmVyX3dpZHRocygmc3BlYywgbl9wcmVmaXgsIHNpZ25fY2hhciwgcG51bWVyaWNfY2hhcnMsCi0gICAgICAgICAgICAgICAgICAgICAgIG5fZGlnaXRzLCBuX3JlbWFpbmRlciwgMCwgJmxvY2FsZSwgZm9ybWF0KTsKLQotICAgIC8qIEFsbG9jYXRlIHRoZSBtZW1vcnkuICovCi0gICAgcmVzdWx0ID0gU1RSSU5HTElCX05FVyhOVUxMLCBuX3RvdGFsKTsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgZ290byBkb25lOwotCi0gICAgLyogUG9wdWxhdGUgdGhlIG1lbW9yeS4gKi8KLSAgICBmaWxsX251bWJlcihTVFJJTkdMSUJfU1RSKHJlc3VsdCksICZzcGVjLCBwbnVtZXJpY19jaGFycywgbl9kaWdpdHMsCi0gICAgICAgICAgICAgICAgcHJlZml4LCBmb3JtYXQtPmZpbGxfY2hhciA9PSAnXDAnID8gJyAnIDogZm9ybWF0LT5maWxsX2NoYXIsCi0gICAgICAgICAgICAgICAgJmxvY2FsZSwgZm9ybWF0LT50eXBlID09ICdYJyk7Ci0KLWRvbmU6Ci0gICAgUHlfWERFQ1JFRih0bXApOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0jZW5kaWYgLyogZGVmaW5lZCBGT1JNQVRfTE9ORyB8fCBkZWZpbmVkIEZPUk1BVF9JTlQgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKioqKioqKioqKiBmbG9hdCBmb3JtYXR0aW5nICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0jaWZkZWYgRk9STUFUX0ZMT0FUCi0jaWYgU1RSSU5HTElCX0lTX1VOSUNPREUKLXN0YXRpYyB2b2lkCi1zdHJ0b3VuaWNvZGUoUHlfVU5JQ09ERSAqYnVmZmVyLCBjb25zdCBjaGFyICpjaGFyYnVmZmVyLCBQeV9zc2l6ZV90IGxlbikKLXsKLSAgICBQeV9zc2l6ZV90IGk7Ci0gICAgZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKQotICAgICAgICBidWZmZXJbaV0gPSAoUHlfVU5JQ09ERSljaGFyYnVmZmVyW2ldOwotfQotI2VuZGlmCi0KLS8qIG11Y2ggb2YgdGhpcyBpcyB0YWtlbiBmcm9tIHVuaWNvZGVvYmplY3QuYyAqLwotc3RhdGljIFB5T2JqZWN0ICoKLWZvcm1hdF9mbG9hdF9pbnRlcm5hbChQeU9iamVjdCAqdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50ZXJuYWxGb3JtYXRTcGVjICpmb3JtYXQpCi17Ci0gICAgY2hhciAqYnVmID0gTlVMTDsgICAgICAgLyogYnVmZmVyIHJldHVybmVkIGZyb20gUHlPU19kb3VibGVfdG9fc3RyaW5nICovCi0gICAgUHlfc3NpemVfdCBuX2RpZ2l0czsKLSAgICBQeV9zc2l6ZV90IG5fcmVtYWluZGVyOwotICAgIFB5X3NzaXplX3Qgbl90b3RhbDsKLSAgICBpbnQgaGFzX2RlY2ltYWw7Ci0gICAgZG91YmxlIHZhbDsKLSAgICBQeV9zc2l6ZV90IHByZWNpc2lvbiA9IGZvcm1hdC0+cHJlY2lzaW9uOwotICAgIFB5X3NzaXplX3QgZGVmYXVsdF9wcmVjaXNpb24gPSA2OwotICAgIFNUUklOR0xJQl9DSEFSIHR5cGUgPSBmb3JtYXQtPnR5cGU7Ci0gICAgaW50IGFkZF9wY3QgPSAwOwotICAgIFNUUklOR0xJQl9DSEFSICpwOwotICAgIE51bWJlckZpZWxkV2lkdGhzIHNwZWM7Ci0gICAgaW50IGZsYWdzID0gMDsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLSAgICBTVFJJTkdMSUJfQ0hBUiBzaWduX2NoYXIgPSAnXDAnOwotICAgIGludCBmbG9hdF90eXBlOyAvKiBVc2VkIHRvIHNlZSBpZiB3ZSBoYXZlIGEgbmFuLCBpbmYsIG9yIHJlZ3VsYXIgZmxvYXQuICovCi0KLSNpZiBTVFJJTkdMSUJfSVNfVU5JQ09ERQotICAgIFB5X1VOSUNPREUgKnVuaWNvZGVfdG1wID0gTlVMTDsKLSNlbmRpZgotCi0gICAgLyogTG9jYWxlIHNldHRpbmdzLCBlaXRoZXIgZnJvbSB0aGUgYWN0dWFsIGxvY2FsZSBvcgotICAgICAgIGZyb20gYSBoYXJkLWNvZGUgcHNldWRvLWxvY2FsZSAqLwotICAgIExvY2FsZUluZm8gbG9jYWxlOwotCi0gICAgaWYgKGZvcm1hdC0+YWx0ZXJuYXRlKQotICAgICAgICBmbGFncyB8PSBQeV9EVFNGX0FMVDsKLQotICAgIGlmICh0eXBlID09ICdcMCcpIHsKLSAgICAgICAgLyogT21pdHRlZCB0eXBlIHNwZWNpZmllci4gIEJlaGF2ZXMgaW4gdGhlIHNhbWUgd2F5IGFzIHJlcHIoeCkKLSAgICAgICAgICAgYW5kIHN0cih4KSBpZiBubyBwcmVjaXNpb24gaXMgZ2l2ZW4sIGVsc2UgbGlrZSAnZycsIGJ1dCB3aXRoCi0gICAgICAgICAgIGF0IGxlYXN0IG9uZSBkaWdpdCBhZnRlciB0aGUgZGVjaW1hbCBwb2ludC4gKi8KLSAgICAgICAgZmxhZ3MgfD0gUHlfRFRTRl9BRERfRE9UXzA7Ci0gICAgICAgIHR5cGUgPSAncic7Ci0gICAgICAgIGRlZmF1bHRfcHJlY2lzaW9uID0gMDsKLSAgICB9Ci0KLSAgICBpZiAodHlwZSA9PSAnbicpCi0gICAgICAgIC8qICduJyBpcyB0aGUgc2FtZSBhcyAnZycsIGV4Y2VwdCBmb3IgdGhlIGxvY2FsZSB1c2VkIHRvCi0gICAgICAgICAgIGZvcm1hdCB0aGUgcmVzdWx0LiBXZSB0YWtlIGNhcmUgb2YgdGhhdCBsYXRlci4gKi8KLSAgICAgICAgdHlwZSA9ICdnJzsKLQotICAgIHZhbCA9IFB5RmxvYXRfQXNEb3VibGUodmFsdWUpOwotICAgIGlmICh2YWwgPT0gLTEuMCAmJiBQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICBnb3RvIGRvbmU7Ci0KLSAgICBpZiAodHlwZSA9PSAnJScpIHsKLSAgICAgICAgdHlwZSA9ICdmJzsKLSAgICAgICAgdmFsICo9IDEwMDsKLSAgICAgICAgYWRkX3BjdCA9IDE7Ci0gICAgfQotCi0gICAgaWYgKHByZWNpc2lvbiA8IDApCi0gICAgICAgIHByZWNpc2lvbiA9IGRlZmF1bHRfcHJlY2lzaW9uOwotICAgIGVsc2UgaWYgKHR5cGUgPT0gJ3InKQotICAgICAgICB0eXBlID0gJ2cnOwotCi0gICAgLyogQ2FzdCAidHlwZSIsIGJlY2F1c2UgaWYgd2UncmUgaW4gdW5pY29kZSB3ZSBuZWVkIHRvIHBhc3MgYQotICAgICAgIDgtYml0IGNoYXIuIFRoaXMgaXMgc2FmZSwgYmVjYXVzZSB3ZSd2ZSByZXN0cmljdGVkIHdoYXQgInR5cGUiCi0gICAgICAgY2FuIGJlLiAqLwotICAgIGJ1ZiA9IFB5T1NfZG91YmxlX3RvX3N0cmluZyh2YWwsIChjaGFyKXR5cGUsIHByZWNpc2lvbiwgZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmbG9hdF90eXBlKTsKLSAgICBpZiAoYnVmID09IE5VTEwpCi0gICAgICAgIGdvdG8gZG9uZTsKLSAgICBuX2RpZ2l0cyA9IHN0cmxlbihidWYpOwotCi0gICAgaWYgKGFkZF9wY3QpIHsKLSAgICAgICAgLyogV2Uga25vdyB0aGF0IGJ1ZiBoYXMgYSB0cmFpbGluZyB6ZXJvIChzaW5jZSB3ZSBqdXN0IGNhbGxlZAotICAgICAgICAgICBzdHJsZW4oKSBvbiBpdCksIGFuZCB3ZSBkb24ndCB1c2UgdGhhdCBmYWN0IGFueSBtb3JlLiBTbyB3ZQotICAgICAgICAgICBjYW4ganVzdCB3cml0ZSBvdmVyIHRoZSB0cmFpbGluZyB6ZXJvLiAqLwotICAgICAgICBidWZbbl9kaWdpdHNdID0gJyUnOwotICAgICAgICBuX2RpZ2l0cyArPSAxOwotICAgIH0KLQotICAgIC8qIFNpbmNlIHRoZXJlIGlzIG5vIHVuaWNvZGUgdmVyc2lvbiBvZiBQeU9TX2RvdWJsZV90b19zdHJpbmcsCi0gICAgICAganVzdCB1c2UgdGhlIDggYml0IHZlcnNpb24gYW5kIHRoZW4gY29udmVydCB0byB1bmljb2RlLiAqLwotI2lmIFNUUklOR0xJQl9JU19VTklDT0RFCi0gICAgdW5pY29kZV90bXAgPSAoUHlfVU5JQ09ERSopUHlNZW1fTWFsbG9jKChuX2RpZ2l0cykqc2l6ZW9mKFB5X1VOSUNPREUpKTsKLSAgICBpZiAodW5pY29kZV90bXAgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotICAgIHN0cnRvdW5pY29kZSh1bmljb2RlX3RtcCwgYnVmLCBuX2RpZ2l0cyk7Ci0gICAgcCA9IHVuaWNvZGVfdG1wOwotI2Vsc2UKLSAgICBwID0gYnVmOwotI2VuZGlmCi0KLSAgICAvKiBJcyBhIHNpZ24gY2hhcmFjdGVyIHByZXNlbnQgaW4gdGhlIG91dHB1dD8gIElmIHNvLCByZW1lbWJlciBpdAotICAgICAgIGFuZCBza2lwIGl0ICovCi0gICAgaWYgKCpwID09ICctJykgewotICAgICAgICBzaWduX2NoYXIgPSAqcDsKLSAgICAgICAgKytwOwotICAgICAgICAtLW5fZGlnaXRzOwotICAgIH0KLQotICAgIC8qIERldGVybWluZSBpZiB3ZSBoYXZlIGFueSAicmVtYWluZGVyIiAoYWZ0ZXIgdGhlIGRpZ2l0cywgbWlnaHQgaW5jbHVkZQotICAgICAgIGRlY2ltYWwgb3IgZXhwb25lbnQgb3IgYm90aCAob3IgbmVpdGhlcikpICovCi0gICAgcGFyc2VfbnVtYmVyKHAsIG5fZGlnaXRzLCAmbl9yZW1haW5kZXIsICZoYXNfZGVjaW1hbCk7Ci0KLSAgICAvKiBEZXRlcm1pbmUgdGhlIGdyb3VwaW5nLCBzZXBhcmF0b3IsIGFuZCBkZWNpbWFsIHBvaW50LCBpZiBhbnkuICovCi0gICAgZ2V0X2xvY2FsZV9pbmZvKGZvcm1hdC0+dHlwZSA9PSAnbicgPyBMVF9DVVJSRU5UX0xPQ0FMRSA6Ci0gICAgICAgICAgICAgICAgICAgIChmb3JtYXQtPnRob3VzYW5kc19zZXBhcmF0b3JzID8KLSAgICAgICAgICAgICAgICAgICAgIExUX0RFRkFVTFRfTE9DQUxFIDoKLSAgICAgICAgICAgICAgICAgICAgIExUX05PX0xPQ0FMRSksCi0gICAgICAgICAgICAgICAgICAgICZsb2NhbGUpOwotCi0gICAgLyogQ2FsY3VsYXRlIGhvdyBtdWNoIG1lbW9yeSB3ZSdsbCBuZWVkLiAqLwotICAgIG5fdG90YWwgPSBjYWxjX251bWJlcl93aWR0aHMoJnNwZWMsIDAsIHNpZ25fY2hhciwgcCwgbl9kaWdpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuX3JlbWFpbmRlciwgaGFzX2RlY2ltYWwsICZsb2NhbGUsIGZvcm1hdCk7Ci0KLSAgICAvKiBBbGxvY2F0ZSB0aGUgbWVtb3J5LiAqLwotICAgIHJlc3VsdCA9IFNUUklOR0xJQl9ORVcoTlVMTCwgbl90b3RhbCk7Ci0gICAgaWYgKHJlc3VsdCA9PSBOVUxMKQotICAgICAgICBnb3RvIGRvbmU7Ci0KLSAgICAvKiBQb3B1bGF0ZSB0aGUgbWVtb3J5LiAqLwotICAgIGZpbGxfbnVtYmVyKFNUUklOR0xJQl9TVFIocmVzdWx0KSwgJnNwZWMsIHAsIG5fZGlnaXRzLCBOVUxMLAotICAgICAgICAgICAgICAgIGZvcm1hdC0+ZmlsbF9jaGFyID09ICdcMCcgPyAnICcgOiBmb3JtYXQtPmZpbGxfY2hhciwgJmxvY2FsZSwKLSAgICAgICAgICAgICAgICAwKTsKLQotZG9uZToKLSAgICBQeU1lbV9GcmVlKGJ1Zik7Ci0jaWYgU1RSSU5HTElCX0lTX1VOSUNPREUKLSAgICBQeU1lbV9GcmVlKHVuaWNvZGVfdG1wKTsKLSNlbmRpZgotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0jZW5kaWYgLyogRk9STUFUX0ZMT0FUICovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0vKioqKioqKioqKiogY29tcGxleCBmb3JtYXR0aW5nICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotI2lmZGVmIEZPUk1BVF9DT01QTEVYCi0KLXN0YXRpYyBQeU9iamVjdCAqCi1mb3JtYXRfY29tcGxleF9pbnRlcm5hbChQeU9iamVjdCAqdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRlcm5hbEZvcm1hdFNwZWMgKmZvcm1hdCkKLXsKLSAgICBkb3VibGUgcmU7Ci0gICAgZG91YmxlIGltOwotICAgIGNoYXIgKnJlX2J1ZiA9IE5VTEw7ICAgICAgIC8qIGJ1ZmZlciByZXR1cm5lZCBmcm9tIFB5T1NfZG91YmxlX3RvX3N0cmluZyAqLwotICAgIGNoYXIgKmltX2J1ZiA9IE5VTEw7ICAgICAgIC8qIGJ1ZmZlciByZXR1cm5lZCBmcm9tIFB5T1NfZG91YmxlX3RvX3N0cmluZyAqLwotCi0gICAgSW50ZXJuYWxGb3JtYXRTcGVjIHRtcF9mb3JtYXQgPSAqZm9ybWF0OwotICAgIFB5X3NzaXplX3Qgbl9yZV9kaWdpdHM7Ci0gICAgUHlfc3NpemVfdCBuX2ltX2RpZ2l0czsKLSAgICBQeV9zc2l6ZV90IG5fcmVfcmVtYWluZGVyOwotICAgIFB5X3NzaXplX3Qgbl9pbV9yZW1haW5kZXI7Ci0gICAgUHlfc3NpemVfdCBuX3JlX3RvdGFsOwotICAgIFB5X3NzaXplX3Qgbl9pbV90b3RhbDsKLSAgICBpbnQgcmVfaGFzX2RlY2ltYWw7Ci0gICAgaW50IGltX2hhc19kZWNpbWFsOwotICAgIFB5X3NzaXplX3QgcHJlY2lzaW9uID0gZm9ybWF0LT5wcmVjaXNpb247Ci0gICAgUHlfc3NpemVfdCBkZWZhdWx0X3ByZWNpc2lvbiA9IDY7Ci0gICAgU1RSSU5HTElCX0NIQVIgdHlwZSA9IGZvcm1hdC0+dHlwZTsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcF9yZTsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcF9pbTsKLSAgICBOdW1iZXJGaWVsZFdpZHRocyByZV9zcGVjOwotICAgIE51bWJlckZpZWxkV2lkdGhzIGltX3NwZWM7Ci0gICAgaW50IGZsYWdzID0gMDsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcDsKLSAgICBTVFJJTkdMSUJfQ0hBUiByZV9zaWduX2NoYXIgPSAnXDAnOwotICAgIFNUUklOR0xJQl9DSEFSIGltX3NpZ25fY2hhciA9ICdcMCc7Ci0gICAgaW50IHJlX2Zsb2F0X3R5cGU7IC8qIFVzZWQgdG8gc2VlIGlmIHdlIGhhdmUgYSBuYW4sIGluZiwgb3IgcmVndWxhciBmbG9hdC4gKi8KLSAgICBpbnQgaW1fZmxvYXRfdHlwZTsKLSAgICBpbnQgYWRkX3BhcmVucyA9IDA7Ci0gICAgaW50IHNraXBfcmUgPSAwOwotICAgIFB5X3NzaXplX3QgbHBhZDsKLSAgICBQeV9zc2l6ZV90IHJwYWQ7Ci0gICAgUHlfc3NpemVfdCB0b3RhbDsKLQotI2lmIFNUUklOR0xJQl9JU19VTklDT0RFCi0gICAgUHlfVU5JQ09ERSAqcmVfdW5pY29kZV90bXAgPSBOVUxMOwotICAgIFB5X1VOSUNPREUgKmltX3VuaWNvZGVfdG1wID0gTlVMTDsKLSNlbmRpZgotCi0gICAgLyogTG9jYWxlIHNldHRpbmdzLCBlaXRoZXIgZnJvbSB0aGUgYWN0dWFsIGxvY2FsZSBvcgotICAgICAgIGZyb20gYSBoYXJkLWNvZGUgcHNldWRvLWxvY2FsZSAqLwotICAgIExvY2FsZUluZm8gbG9jYWxlOwotCi0gICAgLyogWmVybyBwYWRkaW5nIGlzIG5vdCBhbGxvd2VkLiAqLwotICAgIGlmIChmb3JtYXQtPmZpbGxfY2hhciA9PSAnMCcpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiWmVybyBwYWRkaW5nIGlzIG5vdCBhbGxvd2VkIGluIGNvbXBsZXggZm9ybWF0ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZXIiKTsKLSAgICAgICAgZ290byBkb25lOwotICAgIH0KLQotICAgIC8qIE5laXRoZXIgaXMgJz0nIGFsaWdubWVudCAuICovCi0gICAgaWYgKGZvcm1hdC0+YWxpZ24gPT0gJz0nKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgIic9JyBhbGlnbm1lbnQgZmxhZyBpcyBub3QgYWxsb3dlZCBpbiBjb21wbGV4IGZvcm1hdCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAic3BlY2lmaWVyIik7Ci0gICAgICAgIGdvdG8gZG9uZTsKLSAgICB9Ci0KLSAgICByZSA9IFB5Q29tcGxleF9SZWFsQXNEb3VibGUodmFsdWUpOwotICAgIGlmIChyZSA9PSAtMS4wICYmIFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgIGdvdG8gZG9uZTsKLSAgICBpbSA9IFB5Q29tcGxleF9JbWFnQXNEb3VibGUodmFsdWUpOwotICAgIGlmIChpbSA9PSAtMS4wICYmIFB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgIGdvdG8gZG9uZTsKLQotICAgIGlmIChmb3JtYXQtPmFsdGVybmF0ZSkKLSAgICAgICAgZmxhZ3MgfD0gUHlfRFRTRl9BTFQ7Ci0KLSAgICBpZiAodHlwZSA9PSAnXDAnKSB7Ci0gICAgICAgIC8qIE9taXR0ZWQgdHlwZSBzcGVjaWZpZXIuIFNob3VsZCBiZSBsaWtlIHN0cihzZWxmKS4gKi8KLSAgICAgICAgdHlwZSA9ICdyJzsKLSAgICAgICAgZGVmYXVsdF9wcmVjaXNpb24gPSAwOwotICAgICAgICBpZiAocmUgPT0gMC4wICYmIGNvcHlzaWduKDEuMCwgcmUpID09IDEuMCkKLSAgICAgICAgICAgIHNraXBfcmUgPSAxOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBhZGRfcGFyZW5zID0gMTsKLSAgICB9Ci0KLSAgICBpZiAodHlwZSA9PSAnbicpCi0gICAgICAgIC8qICduJyBpcyB0aGUgc2FtZSBhcyAnZycsIGV4Y2VwdCBmb3IgdGhlIGxvY2FsZSB1c2VkIHRvCi0gICAgICAgICAgIGZvcm1hdCB0aGUgcmVzdWx0LiBXZSB0YWtlIGNhcmUgb2YgdGhhdCBsYXRlci4gKi8KLSAgICAgICAgdHlwZSA9ICdnJzsKLQotICAgIGlmIChwcmVjaXNpb24gPCAwKQotICAgICAgICBwcmVjaXNpb24gPSBkZWZhdWx0X3ByZWNpc2lvbjsKLSAgICBlbHNlIGlmICh0eXBlID09ICdyJykKLSAgICAgICAgdHlwZSA9ICdnJzsKLQotICAgIC8qIENhc3QgInR5cGUiLCBiZWNhdXNlIGlmIHdlJ3JlIGluIHVuaWNvZGUgd2UgbmVlZCB0byBwYXNzIGEKLSAgICAgICA4LWJpdCBjaGFyLiBUaGlzIGlzIHNhZmUsIGJlY2F1c2Ugd2UndmUgcmVzdHJpY3RlZCB3aGF0ICJ0eXBlIgotICAgICAgIGNhbiBiZS4gKi8KLSAgICByZV9idWYgPSBQeU9TX2RvdWJsZV90b19zdHJpbmcocmUsIChjaGFyKXR5cGUsIHByZWNpc2lvbiwgZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZV9mbG9hdF90eXBlKTsKLSAgICBpZiAocmVfYnVmID09IE5VTEwpCi0gICAgICAgIGdvdG8gZG9uZTsKLSAgICBpbV9idWYgPSBQeU9TX2RvdWJsZV90b19zdHJpbmcoaW0sIChjaGFyKXR5cGUsIHByZWNpc2lvbiwgZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbV9mbG9hdF90eXBlKTsKLSAgICBpZiAoaW1fYnVmID09IE5VTEwpCi0gICAgICAgIGdvdG8gZG9uZTsKLQotICAgIG5fcmVfZGlnaXRzID0gc3RybGVuKHJlX2J1Zik7Ci0gICAgbl9pbV9kaWdpdHMgPSBzdHJsZW4oaW1fYnVmKTsKLQotICAgIC8qIFNpbmNlIHRoZXJlIGlzIG5vIHVuaWNvZGUgdmVyc2lvbiBvZiBQeU9TX2RvdWJsZV90b19zdHJpbmcsCi0gICAgICAganVzdCB1c2UgdGhlIDggYml0IHZlcnNpb24gYW5kIHRoZW4gY29udmVydCB0byB1bmljb2RlLiAqLwotI2lmIFNUUklOR0xJQl9JU19VTklDT0RFCi0gICAgcmVfdW5pY29kZV90bXAgPSAoUHlfVU5JQ09ERSopUHlNZW1fTWFsbG9jKChuX3JlX2RpZ2l0cykqc2l6ZW9mKFB5X1VOSUNPREUpKTsKLSAgICBpZiAocmVfdW5pY29kZV90bXAgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotICAgIHN0cnRvdW5pY29kZShyZV91bmljb2RlX3RtcCwgcmVfYnVmLCBuX3JlX2RpZ2l0cyk7Ci0gICAgcF9yZSA9IHJlX3VuaWNvZGVfdG1wOwotCi0gICAgaW1fdW5pY29kZV90bXAgPSAoUHlfVU5JQ09ERSopUHlNZW1fTWFsbG9jKChuX2ltX2RpZ2l0cykqc2l6ZW9mKFB5X1VOSUNPREUpKTsKLSAgICBpZiAoaW1fdW5pY29kZV90bXAgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotICAgIHN0cnRvdW5pY29kZShpbV91bmljb2RlX3RtcCwgaW1fYnVmLCBuX2ltX2RpZ2l0cyk7Ci0gICAgcF9pbSA9IGltX3VuaWNvZGVfdG1wOwotI2Vsc2UKLSAgICBwX3JlID0gcmVfYnVmOwotICAgIHBfaW0gPSBpbV9idWY7Ci0jZW5kaWYKLQotICAgIC8qIElzIGEgc2lnbiBjaGFyYWN0ZXIgcHJlc2VudCBpbiB0aGUgb3V0cHV0PyAgSWYgc28sIHJlbWVtYmVyIGl0Ci0gICAgICAgYW5kIHNraXAgaXQgKi8KLSAgICBpZiAoKnBfcmUgPT0gJy0nKSB7Ci0gICAgICAgIHJlX3NpZ25fY2hhciA9ICpwX3JlOwotICAgICAgICArK3BfcmU7Ci0gICAgICAgIC0tbl9yZV9kaWdpdHM7Ci0gICAgfQotICAgIGlmICgqcF9pbSA9PSAnLScpIHsKLSAgICAgICAgaW1fc2lnbl9jaGFyID0gKnBfaW07Ci0gICAgICAgICsrcF9pbTsKLSAgICAgICAgLS1uX2ltX2RpZ2l0czsKLSAgICB9Ci0KLSAgICAvKiBEZXRlcm1pbmUgaWYgd2UgaGF2ZSBhbnkgInJlbWFpbmRlciIgKGFmdGVyIHRoZSBkaWdpdHMsIG1pZ2h0IGluY2x1ZGUKLSAgICAgICBkZWNpbWFsIG9yIGV4cG9uZW50IG9yIGJvdGggKG9yIG5laXRoZXIpKSAqLwotICAgIHBhcnNlX251bWJlcihwX3JlLCBuX3JlX2RpZ2l0cywgJm5fcmVfcmVtYWluZGVyLCAmcmVfaGFzX2RlY2ltYWwpOwotICAgIHBhcnNlX251bWJlcihwX2ltLCBuX2ltX2RpZ2l0cywgJm5faW1fcmVtYWluZGVyLCAmaW1faGFzX2RlY2ltYWwpOwotCi0gICAgLyogRGV0ZXJtaW5lIHRoZSBncm91cGluZywgc2VwYXJhdG9yLCBhbmQgZGVjaW1hbCBwb2ludCwgaWYgYW55LiAqLwotICAgIGdldF9sb2NhbGVfaW5mbyhmb3JtYXQtPnR5cGUgPT0gJ24nID8gTFRfQ1VSUkVOVF9MT0NBTEUgOgotICAgICAgICAgICAgICAgICAgICAoZm9ybWF0LT50aG91c2FuZHNfc2VwYXJhdG9ycyA/Ci0gICAgICAgICAgICAgICAgICAgICBMVF9ERUZBVUxUX0xPQ0FMRSA6Ci0gICAgICAgICAgICAgICAgICAgICBMVF9OT19MT0NBTEUpLAotICAgICAgICAgICAgICAgICAgICAmbG9jYWxlKTsKLQotICAgIC8qIFR1cm4gb2ZmIGFueSBwYWRkaW5nLiBXZSdsbCBkbyBpdCBsYXRlciBhZnRlciB3ZSd2ZSBjb21wb3NlZAotICAgICAgIHRoZSBudW1iZXJzIHdpdGhvdXQgcGFkZGluZy4gKi8KLSAgICB0bXBfZm9ybWF0LmZpbGxfY2hhciA9ICdcMCc7Ci0gICAgdG1wX2Zvcm1hdC5hbGlnbiA9ICc8JzsKLSAgICB0bXBfZm9ybWF0LndpZHRoID0gLTE7Ci0KLSAgICAvKiBDYWxjdWxhdGUgaG93IG11Y2ggbWVtb3J5IHdlJ2xsIG5lZWQuICovCi0gICAgbl9yZV90b3RhbCA9IGNhbGNfbnVtYmVyX3dpZHRocygmcmVfc3BlYywgMCwgcmVfc2lnbl9jaGFyLCBwX3JlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9yZV9kaWdpdHMsIG5fcmVfcmVtYWluZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVfaGFzX2RlY2ltYWwsICZsb2NhbGUsICZ0bXBfZm9ybWF0KTsKLQotICAgIC8qIFNhbWUgZm9ybWF0dGluZywgYnV0IGFsd2F5cyBpbmNsdWRlIGEgc2lnbiwgdW5sZXNzIHRoZSByZWFsIHBhcnQgaXMKLSAgICAgKiBnb2luZyB0byBiZSBvbWl0dGVkLCBpbiB3aGljaCBjYXNlIHdlIHVzZSB3aGF0ZXZlciBzaWduIGNvbnZlbnRpb24gd2FzCi0gICAgICogcmVxdWVzdGVkIGJ5IHRoZSBvcmlnaW5hbCBmb3JtYXQuICovCi0gICAgaWYgKCFza2lwX3JlKQotICAgICAgICB0bXBfZm9ybWF0LnNpZ24gPSAnKyc7Ci0gICAgbl9pbV90b3RhbCA9IGNhbGNfbnVtYmVyX3dpZHRocygmaW1fc3BlYywgMCwgaW1fc2lnbl9jaGFyLCBwX2ltLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbl9pbV9kaWdpdHMsIG5faW1fcmVtYWluZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1faGFzX2RlY2ltYWwsICZsb2NhbGUsICZ0bXBfZm9ybWF0KTsKLQotICAgIGlmIChza2lwX3JlKQotICAgICAgICBuX3JlX3RvdGFsID0gMDsKLQotICAgIC8qIEFkZCAxIGZvciB0aGUgJ2onLCBhbmQgb3B0aW9uYWxseSAyIGZvciBwYXJlbnMuICovCi0gICAgY2FsY19wYWRkaW5nKG5fcmVfdG90YWwgKyBuX2ltX3RvdGFsICsgMSArIGFkZF9wYXJlbnMgKiAyLAotICAgICAgICAgICAgICAgICBmb3JtYXQtPndpZHRoLCBmb3JtYXQtPmFsaWduLCAmbHBhZCwgJnJwYWQsICZ0b3RhbCk7Ci0KLSAgICByZXN1bHQgPSBTVFJJTkdMSUJfTkVXKE5VTEwsIHRvdGFsKTsKLSAgICBpZiAocmVzdWx0ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZG9uZTsKLQotICAgIC8qIFBvcHVsYXRlIHRoZSBtZW1vcnkuIEZpcnN0LCB0aGUgcGFkZGluZy4gKi8KLSAgICBwID0gZmlsbF9wYWRkaW5nKFNUUklOR0xJQl9TVFIocmVzdWx0KSwKLSAgICAgICAgICAgICAgICAgICAgIG5fcmVfdG90YWwgKyBuX2ltX3RvdGFsICsgMSArIGFkZF9wYXJlbnMgKiAyLAotICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LT5maWxsX2NoYXI9PSdcMCcgPyAnICcgOiBmb3JtYXQtPmZpbGxfY2hhciwKLSAgICAgICAgICAgICAgICAgICAgIGxwYWQsIHJwYWQpOwotCi0gICAgaWYgKGFkZF9wYXJlbnMpCi0gICAgICAgICpwKysgPSAnKCc7Ci0KLSAgICBpZiAoIXNraXBfcmUpIHsKLSAgICAgICAgZmlsbF9udW1iZXIocCwgJnJlX3NwZWMsIHBfcmUsIG5fcmVfZGlnaXRzLCBOVUxMLCAwLCAmbG9jYWxlLCAwKTsKLSAgICAgICAgcCArPSBuX3JlX3RvdGFsOwotICAgIH0KLSAgICBmaWxsX251bWJlcihwLCAmaW1fc3BlYywgcF9pbSwgbl9pbV9kaWdpdHMsIE5VTEwsIDAsICZsb2NhbGUsIDApOwotICAgIHAgKz0gbl9pbV90b3RhbDsKLSAgICAqcCsrID0gJ2onOwotCi0gICAgaWYgKGFkZF9wYXJlbnMpCi0gICAgICAgICpwKysgPSAnKSc7Ci0KLWRvbmU6Ci0gICAgUHlNZW1fRnJlZShyZV9idWYpOwotICAgIFB5TWVtX0ZyZWUoaW1fYnVmKTsKLSNpZiBTVFJJTkdMSUJfSVNfVU5JQ09ERQotICAgIFB5TWVtX0ZyZWUocmVfdW5pY29kZV90bXApOwotICAgIFB5TWVtX0ZyZWUoaW1fdW5pY29kZV90bXApOwotI2VuZGlmCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLSNlbmRpZiAvKiBGT1JNQVRfQ09NUExFWCAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqKioqKioqKioqIGJ1aWx0IGluIGZvcm1hdHRlcnMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1QeU9iamVjdCAqCi1GT1JNQVRfU1RSSU5HKFB5T2JqZWN0ICpvYmosCi0gICAgICAgICAgICAgIFNUUklOR0xJQl9DSEFSICpmb3JtYXRfc3BlYywKLSAgICAgICAgICAgICAgUHlfc3NpemVfdCBmb3JtYXRfc3BlY19sZW4pCi17Ci0gICAgSW50ZXJuYWxGb3JtYXRTcGVjIGZvcm1hdDsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLQotICAgIC8qIGNoZWNrIGZvciB0aGUgc3BlY2lhbCBjYXNlIG9mIHplcm8gbGVuZ3RoIGZvcm1hdCBzcGVjLCBtYWtlCi0gICAgICAgaXQgZXF1aXZhbGVudCB0byBzdHIob2JqKSAqLwotICAgIGlmIChmb3JtYXRfc3BlY19sZW4gPT0gMCkgewotICAgICAgICByZXN1bHQgPSBTVFJJTkdMSUJfVE9TVFIob2JqKTsKLSAgICAgICAgZ290byBkb25lOwotICAgIH0KLQotICAgIC8qIHBhcnNlIHRoZSBmb3JtYXRfc3BlYyAqLwotICAgIGlmICghcGFyc2VfaW50ZXJuYWxfcmVuZGVyX2Zvcm1hdF9zcGVjKGZvcm1hdF9zcGVjLCBmb3JtYXRfc3BlY19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvcm1hdCwgJ3MnLCAnPCcpKQotICAgICAgICBnb3RvIGRvbmU7Ci0KLSAgICAvKiB0eXBlIGNvbnZlcnNpb24/ICovCi0gICAgc3dpdGNoIChmb3JtYXQudHlwZSkgewotICAgIGNhc2UgJ3MnOgotICAgICAgICAvKiBubyB0eXBlIGNvbnZlcnNpb24gbmVlZGVkLCBhbHJlYWR5IGEgc3RyaW5nLiAgZG8gdGhlIGZvcm1hdHRpbmcgKi8KLSAgICAgICAgcmVzdWx0ID0gZm9ybWF0X3N0cmluZ19pbnRlcm5hbChvYmosICZmb3JtYXQpOwotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICAvKiB1bmtub3duICovCi0gICAgICAgIHVua25vd25fcHJlc2VudGF0aW9uX3R5cGUoZm9ybWF0LnR5cGUsIG9iai0+b2JfdHlwZS0+dHBfbmFtZSk7Ci0gICAgICAgIGdvdG8gZG9uZTsKLSAgICB9Ci0KLWRvbmU6Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotI2lmIGRlZmluZWQgRk9STUFUX0xPTkcgfHwgZGVmaW5lZCBGT1JNQVRfSU5UCi1zdGF0aWMgUHlPYmplY3QqCi1mb3JtYXRfaW50X29yX2xvbmcoUHlPYmplY3QqIG9iaiwKLSAgICAgICAgICAgICAgICAgICBTVFJJTkdMSUJfQ0hBUiAqZm9ybWF0X3NwZWMsCi0gICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBmb3JtYXRfc3BlY19sZW4sCi0gICAgICAgICAgICAgICAgICAgSW50T3JMb25nVG9TdHJpbmcgdG9zdHJpbmcpCi17Ci0gICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKnRtcCA9IE5VTEw7Ci0gICAgSW50ZXJuYWxGb3JtYXRTcGVjIGZvcm1hdDsKLQotICAgIC8qIGNoZWNrIGZvciB0aGUgc3BlY2lhbCBjYXNlIG9mIHplcm8gbGVuZ3RoIGZvcm1hdCBzcGVjLCBtYWtlCi0gICAgICAgaXQgZXF1aXZhbGVudCB0byBzdHIob2JqKSAqLwotICAgIGlmIChmb3JtYXRfc3BlY19sZW4gPT0gMCkgewotICAgICAgICByZXN1bHQgPSBTVFJJTkdMSUJfVE9TVFIob2JqKTsKLSAgICAgICAgZ290byBkb25lOwotICAgIH0KLQotICAgIC8qIHBhcnNlIHRoZSBmb3JtYXRfc3BlYyAqLwotICAgIGlmICghcGFyc2VfaW50ZXJuYWxfcmVuZGVyX2Zvcm1hdF9zcGVjKGZvcm1hdF9zcGVjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9zcGVjX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0LCAnZCcsICc+JykpCi0gICAgICAgIGdvdG8gZG9uZTsKLQotICAgIC8qIHR5cGUgY29udmVyc2lvbj8gKi8KLSAgICBzd2l0Y2ggKGZvcm1hdC50eXBlKSB7Ci0gICAgY2FzZSAnYic6Ci0gICAgY2FzZSAnYyc6Ci0gICAgY2FzZSAnZCc6Ci0gICAgY2FzZSAnbyc6Ci0gICAgY2FzZSAneCc6Ci0gICAgY2FzZSAnWCc6Ci0gICAgY2FzZSAnbic6Ci0gICAgICAgIC8qIG5vIHR5cGUgY29udmVyc2lvbiBuZWVkZWQsIGFscmVhZHkgYW4gaW50IChvciBsb25nKS4gIGRvCi0gICAgICAgICAgIHRoZSBmb3JtYXR0aW5nICovCi0gICAgICAgICAgICByZXN1bHQgPSBmb3JtYXRfaW50X29yX2xvbmdfaW50ZXJuYWwob2JqLCAmZm9ybWF0LCB0b3N0cmluZyk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSAnZSc6Ci0gICAgY2FzZSAnRSc6Ci0gICAgY2FzZSAnZic6Ci0gICAgY2FzZSAnRic6Ci0gICAgY2FzZSAnZyc6Ci0gICAgY2FzZSAnRyc6Ci0gICAgY2FzZSAnJSc6Ci0gICAgICAgIC8qIGNvbnZlcnQgdG8gZmxvYXQgKi8KLSAgICAgICAgdG1wID0gUHlOdW1iZXJfRmxvYXQob2JqKTsKLSAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQotICAgICAgICAgICAgZ290byBkb25lOwotICAgICAgICByZXN1bHQgPSBmb3JtYXRfZmxvYXRfaW50ZXJuYWwodG1wLCAmZm9ybWF0KTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBkZWZhdWx0OgotICAgICAgICAvKiB1bmtub3duICovCi0gICAgICAgIHVua25vd25fcHJlc2VudGF0aW9uX3R5cGUoZm9ybWF0LnR5cGUsIG9iai0+b2JfdHlwZS0+dHBfbmFtZSk7Ci0gICAgICAgIGdvdG8gZG9uZTsKLSAgICB9Ci0KLWRvbmU6Ci0gICAgUHlfWERFQ1JFRih0bXApOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0jZW5kaWYgLyogRk9STUFUX0xPTkcgfHwgZGVmaW5lZCBGT1JNQVRfSU5UICovCi0KLSNpZmRlZiBGT1JNQVRfTE9ORwotLyogTmVlZCB0byBkZWZpbmUgbG9uZ19mb3JtYXQgYXMgYSBmdW5jdGlvbiB0aGF0IHdpbGwgY29udmVydCBhIGxvbmcKLSAgIHRvIGEgc3RyaW5nLiAgSW4gMy4wLCBfUHlMb25nX0Zvcm1hdCBoYXMgdGhlIGNvcnJlY3Qgc2lnbmF0dXJlLiAgSW4KLSAgIDIueCwgd2UgbmVlZCB0byBmdWRnZSBhIGZldyBwYXJhbWV0ZXJzICovCi0jaWYgUFlfVkVSU0lPTl9IRVggPj0gMHgwMzAwMDAwMAotI2RlZmluZSBsb25nX2Zvcm1hdCBfUHlMb25nX0Zvcm1hdAotI2Vsc2UKLXN0YXRpYyBQeU9iamVjdCoKLWxvbmdfZm9ybWF0KFB5T2JqZWN0KiB2YWx1ZSwgaW50IGJhc2UpCi17Ci0gICAgLyogQ29udmVydCB0byBiYXNlLCBkb24ndCBhZGQgdHJhaWxpbmcgJ0wnLCBhbmQgdXNlIHRoZSBuZXcgb2N0YWwKLSAgICAgICBmb3JtYXQuIFdlIGFscmVhZHkga25vdyB0aGlzIGlzIGEgbG9uZyBvYmplY3QgKi8KLSAgICBhc3NlcnQoUHlMb25nX0NoZWNrKHZhbHVlKSk7Ci0gICAgLyogY29udmVydCB0byBiYXNlLCBkb24ndCBhZGQgJ0wnLCBhbmQgdXNlIHRoZSBuZXcgb2N0YWwgZm9ybWF0ICovCi0gICAgcmV0dXJuIF9QeUxvbmdfRm9ybWF0KHZhbHVlLCBiYXNlLCAwLCAxKTsKLX0KLSNlbmRpZgotCi1QeU9iamVjdCAqCi1GT1JNQVRfTE9ORyhQeU9iamVjdCAqb2JqLAotICAgICAgICAgICAgU1RSSU5HTElCX0NIQVIgKmZvcm1hdF9zcGVjLAotICAgICAgICAgICAgUHlfc3NpemVfdCBmb3JtYXRfc3BlY19sZW4pCi17Ci0gICAgcmV0dXJuIGZvcm1hdF9pbnRfb3JfbG9uZyhvYmosIGZvcm1hdF9zcGVjLCBmb3JtYXRfc3BlY19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nX2Zvcm1hdCk7Ci19Ci0jZW5kaWYgLyogRk9STUFUX0xPTkcgKi8KLQotI2lmZGVmIEZPUk1BVF9JTlQKLS8qIHRoaXMgaXMgb25seSB1c2VkIGZvciAyLngsIG5vdCAzLjAgKi8KLXN0YXRpYyBQeU9iamVjdCoKLWludF9mb3JtYXQoUHlPYmplY3QqIHZhbHVlLCBpbnQgYmFzZSkKLXsKLSAgICAvKiBDb252ZXJ0IHRvIGJhc2UsIGFuZCB1c2UgdGhlIG5ldyBvY3RhbCBmb3JtYXQuIFdlIGFscmVhZHkKLSAgICAgICBrbm93IHRoaXMgaXMgYW4gaW50IG9iamVjdCAqLwotICAgIGFzc2VydChQeUludF9DaGVjayh2YWx1ZSkpOwotICAgIHJldHVybiBfUHlJbnRfRm9ybWF0KChQeUludE9iamVjdCopdmFsdWUsIGJhc2UsIDEpOwotfQotCi1QeU9iamVjdCAqCi1GT1JNQVRfSU5UKFB5T2JqZWN0ICpvYmosCi0gICAgICAgICAgIFNUUklOR0xJQl9DSEFSICpmb3JtYXRfc3BlYywKLSAgICAgICAgICAgUHlfc3NpemVfdCBmb3JtYXRfc3BlY19sZW4pCi17Ci0gICAgcmV0dXJuIGZvcm1hdF9pbnRfb3JfbG9uZyhvYmosIGZvcm1hdF9zcGVjLCBmb3JtYXRfc3BlY19sZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRfZm9ybWF0KTsKLX0KLSNlbmRpZiAvKiBGT1JNQVRfSU5UICovCi0KLSNpZmRlZiBGT1JNQVRfRkxPQVQKLVB5T2JqZWN0ICoKLUZPUk1BVF9GTE9BVChQeU9iamVjdCAqb2JqLAotICAgICAgICAgICAgIFNUUklOR0xJQl9DSEFSICpmb3JtYXRfc3BlYywKLSAgICAgICAgICAgICBQeV9zc2l6ZV90IGZvcm1hdF9zcGVjX2xlbikKLXsKLSAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKLSAgICBJbnRlcm5hbEZvcm1hdFNwZWMgZm9ybWF0OwotCi0gICAgLyogY2hlY2sgZm9yIHRoZSBzcGVjaWFsIGNhc2Ugb2YgemVybyBsZW5ndGggZm9ybWF0IHNwZWMsIG1ha2UKLSAgICAgICBpdCBlcXVpdmFsZW50IHRvIHN0cihvYmopICovCi0gICAgaWYgKGZvcm1hdF9zcGVjX2xlbiA9PSAwKSB7Ci0gICAgICAgIHJlc3VsdCA9IFNUUklOR0xJQl9UT1NUUihvYmopOwotICAgICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0gICAgLyogcGFyc2UgdGhlIGZvcm1hdF9zcGVjICovCi0gICAgaWYgKCFwYXJzZV9pbnRlcm5hbF9yZW5kZXJfZm9ybWF0X3NwZWMoZm9ybWF0X3NwZWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0X3NwZWNfbGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb3JtYXQsICdcMCcsICc+JykpCi0gICAgICAgIGdvdG8gZG9uZTsKLQotICAgIC8qIHR5cGUgY29udmVyc2lvbj8gKi8KLSAgICBzd2l0Y2ggKGZvcm1hdC50eXBlKSB7Ci0gICAgY2FzZSAnXDAnOiAvKiBObyBmb3JtYXQgY29kZTogbGlrZSAnZycsIGJ1dCB3aXRoIGF0IGxlYXN0IG9uZSBkZWNpbWFsLiAqLwotICAgIGNhc2UgJ2UnOgotICAgIGNhc2UgJ0UnOgotICAgIGNhc2UgJ2YnOgotICAgIGNhc2UgJ0YnOgotICAgIGNhc2UgJ2cnOgotICAgIGNhc2UgJ0cnOgotICAgIGNhc2UgJ24nOgotICAgIGNhc2UgJyUnOgotICAgICAgICAvKiBubyBjb252ZXJzaW9uLCBhbHJlYWR5IGEgZmxvYXQuICBkbyB0aGUgZm9ybWF0dGluZyAqLwotICAgICAgICByZXN1bHQgPSBmb3JtYXRfZmxvYXRfaW50ZXJuYWwob2JqLCAmZm9ybWF0KTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBkZWZhdWx0OgotICAgICAgICAvKiB1bmtub3duICovCi0gICAgICAgIHVua25vd25fcHJlc2VudGF0aW9uX3R5cGUoZm9ybWF0LnR5cGUsIG9iai0+b2JfdHlwZS0+dHBfbmFtZSk7Ci0gICAgICAgIGdvdG8gZG9uZTsKLSAgICB9Ci0KLWRvbmU6Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLSNlbmRpZiAvKiBGT1JNQVRfRkxPQVQgKi8KLQotI2lmZGVmIEZPUk1BVF9DT01QTEVYCi1QeU9iamVjdCAqCi1GT1JNQVRfQ09NUExFWChQeU9iamVjdCAqb2JqLAotICAgICAgICAgICAgICAgU1RSSU5HTElCX0NIQVIgKmZvcm1hdF9zcGVjLAotICAgICAgICAgICAgICAgUHlfc3NpemVfdCBmb3JtYXRfc3BlY19sZW4pCi17Ci0gICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7Ci0gICAgSW50ZXJuYWxGb3JtYXRTcGVjIGZvcm1hdDsKLQotICAgIC8qIGNoZWNrIGZvciB0aGUgc3BlY2lhbCBjYXNlIG9mIHplcm8gbGVuZ3RoIGZvcm1hdCBzcGVjLCBtYWtlCi0gICAgICAgaXQgZXF1aXZhbGVudCB0byBzdHIob2JqKSAqLwotICAgIGlmIChmb3JtYXRfc3BlY19sZW4gPT0gMCkgewotICAgICAgICByZXN1bHQgPSBTVFJJTkdMSUJfVE9TVFIob2JqKTsKLSAgICAgICAgZ290byBkb25lOwotICAgIH0KLQotICAgIC8qIHBhcnNlIHRoZSBmb3JtYXRfc3BlYyAqLwotICAgIGlmICghcGFyc2VfaW50ZXJuYWxfcmVuZGVyX2Zvcm1hdF9zcGVjKGZvcm1hdF9zcGVjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9zcGVjX2xlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0LCAnXDAnLCAnPicpKQotICAgICAgICBnb3RvIGRvbmU7Ci0KLSAgICAvKiB0eXBlIGNvbnZlcnNpb24/ICovCi0gICAgc3dpdGNoIChmb3JtYXQudHlwZSkgewotICAgIGNhc2UgJ1wwJzogLyogTm8gZm9ybWF0IGNvZGU6IGxpa2UgJ2cnLCBidXQgd2l0aCBhdCBsZWFzdCBvbmUgZGVjaW1hbC4gKi8KLSAgICBjYXNlICdlJzoKLSAgICBjYXNlICdFJzoKLSAgICBjYXNlICdmJzoKLSAgICBjYXNlICdGJzoKLSAgICBjYXNlICdnJzoKLSAgICBjYXNlICdHJzoKLSAgICBjYXNlICduJzoKLSAgICAgICAgLyogbm8gY29udmVyc2lvbiwgYWxyZWFkeSBhIGNvbXBsZXguICBkbyB0aGUgZm9ybWF0dGluZyAqLwotICAgICAgICByZXN1bHQgPSBmb3JtYXRfY29tcGxleF9pbnRlcm5hbChvYmosICZmb3JtYXQpOwotICAgICAgICBicmVhazsKLQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIC8qIHVua25vd24gKi8KLSAgICAgICAgdW5rbm93bl9wcmVzZW50YXRpb25fdHlwZShmb3JtYXQudHlwZSwgb2JqLT5vYl90eXBlLT50cF9uYW1lKTsKLSAgICAgICAgZ290byBkb25lOwotICAgIH0KLQotZG9uZToKLSAgICByZXR1cm4gcmVzdWx0OwotfQotI2VuZGlmIC8qIEZPUk1BVF9DT01QTEVYICovCmRpZmYgLS1naXQgYS9PYmplY3RzL3N0cmluZ2xpYi9sb2NhbGV1dGlsLmggYi9PYmplY3RzL3N0cmluZ2xpYi9sb2NhbGV1dGlsLmgKaW5kZXggZjU0ODEzMy4uNmUyZjA3MyAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvbG9jYWxldXRpbC5oCisrKyBiL09iamVjdHMvc3RyaW5nbGliL2xvY2FsZXV0aWwuaApAQCAtMSwyMSArMSwxOSBAQAogLyogc3RyaW5nbGliOiBsb2NhbGUgcmVsYXRlZCBoZWxwZXJzIGltcGxlbWVudGF0aW9uICovCiAKLSNpZm5kZWYgU1RSSU5HTElCX0xPQ0FMRVVUSUxfSAotI2RlZmluZSBTVFJJTkdMSUJfTE9DQUxFVVRJTF9ICi0KICNpbmNsdWRlIDxsb2NhbGUuaD4KIAotI2RlZmluZSBNQVgoeCwgeSkgKCh4KSA8ICh5KSA/ICh5KSA6ICh4KSkKLSNkZWZpbmUgTUlOKHgsIHkpICgoeCkgPCAoeSkgPyAoeCkgOiAoeSkpCisjaWZuZGVmIFNUUklOR0xJQl9JU19VTklDT0RFCisjICAgZXJyb3IgImxvY2FsZXV0aWwgaXMgc3BlY2lmaWMgdG8gVW5pY29kZSIKKyNlbmRpZgogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgY29uc3QgY2hhciAqZ3JvdXBpbmc7CiAgICAgY2hhciBwcmV2aW91czsKICAgICBQeV9zc2l6ZV90IGk7IC8qIFdoZXJlIHdlJ3JlIGN1cnJlbnRseSBwb2ludGluZyBpbiBncm91cGluZy4gKi8KLX0gR3JvdXBHZW5lcmF0b3I7Cit9IFNUUklOR0xJQihHcm91cEdlbmVyYXRvcik7CiAKIHN0YXRpYyB2b2lkCi1fR3JvdXBHZW5lcmF0b3JfaW5pdChHcm91cEdlbmVyYXRvciAqc2VsZiwgY29uc3QgY2hhciAqZ3JvdXBpbmcpCitTVFJJTkdMSUIoR3JvdXBHZW5lcmF0b3JfaW5pdCkoU1RSSU5HTElCKEdyb3VwR2VuZXJhdG9yKSAqc2VsZiwgY29uc3QgY2hhciAqZ3JvdXBpbmcpCiB7CiAgICAgc2VsZi0+Z3JvdXBpbmcgPSBncm91cGluZzsKICAgICBzZWxmLT5pID0gMDsKQEAgLTI0LDcgKzIyLDcgQEAKIAogLyogUmV0dXJucyB0aGUgbmV4dCBncm91cGluZywgb3IgMCB0byBzaWduaWZ5IGVuZC4gKi8KIHN0YXRpYyBQeV9zc2l6ZV90Ci1fR3JvdXBHZW5lcmF0b3JfbmV4dChHcm91cEdlbmVyYXRvciAqc2VsZikKK1NUUklOR0xJQihHcm91cEdlbmVyYXRvcl9uZXh0KShTVFJJTkdMSUIoR3JvdXBHZW5lcmF0b3IpICpzZWxmKQogewogICAgIC8qIE5vdGUgdGhhdCB3ZSBkb24ndCByZWFsbHkgZG8gbXVjaCBlcnJvciBjaGVja2luZyBoZXJlLiBJZiBhCiAgICAgICAgZ3JvdXBpbmcgc3RyaW5nIGNvbnRhaW5zIGp1c3QgQ0hBUl9NQVgsIGZvciBleGFtcGxlLCB0aGVuIGp1c3QKQEAgLTQ4LDI3ICs0NiwxOCBAQAogLyogRmlsbCBpbiBzb21lIGRpZ2l0cywgbGVhZGluZyB6ZXJvcywgYW5kIHRob3VzYW5kcyBzZXBhcmF0b3IuIEFsbAogICAgYXJlIG9wdGlvbmFsLCBkZXBlbmRpbmcgb24gd2hlbiB3ZSdyZSBjYWxsZWQuICovCiBzdGF0aWMgdm9pZAotZmlsbChTVFJJTkdMSUJfQ0hBUiAqKmRpZ2l0c19lbmQsIFNUUklOR0xJQl9DSEFSICoqYnVmZmVyX2VuZCwKLSAgICAgUHlfc3NpemVfdCBuX2NoYXJzLCBQeV9zc2l6ZV90IG5femVyb3MsIGNvbnN0IGNoYXIqIHRob3VzYW5kc19zZXAsCitTVFJJTkdMSUIoZmlsbCkoU1RSSU5HTElCX0NIQVIgKipkaWdpdHNfZW5kLCBTVFJJTkdMSUJfQ0hBUiAqKmJ1ZmZlcl9lbmQsCisgICAgIFB5X3NzaXplX3Qgbl9jaGFycywgUHlfc3NpemVfdCBuX3plcm9zLCBTVFJJTkdMSUJfQ0hBUiogdGhvdXNhbmRzX3NlcCwKICAgICAgUHlfc3NpemVfdCB0aG91c2FuZHNfc2VwX2xlbikKIHsKLSNpZiBTVFJJTkdMSUJfSVNfVU5JQ09ERQogICAgIFB5X3NzaXplX3QgaTsKLSNlbmRpZgogCiAgICAgaWYgKHRob3VzYW5kc19zZXApIHsKICAgICAgICAgKmJ1ZmZlcl9lbmQgLT0gdGhvdXNhbmRzX3NlcF9sZW47CiAKICAgICAgICAgLyogQ29weSB0aGUgdGhvdXNhbmRzX3NlcCBjaGFycyBpbnRvIHRoZSBidWZmZXIuICovCi0jaWYgU1RSSU5HTElCX0lTX1VOSUNPREUKLSAgICAgICAgLyogQ29udmVydCBmcm9tIHRoZSBjaGFyJ3Mgb2YgdGhlIHRob3VzYW5kc19zZXAgZnJvbQotICAgICAgICAgICB0aGUgbG9jYWxlIGludG8gdW5pY29kZS4gKi8KLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHRob3VzYW5kc19zZXBfbGVuOyArK2kpCi0gICAgICAgICAgICAoKmJ1ZmZlcl9lbmQpW2ldID0gdGhvdXNhbmRzX3NlcFtpXTsKLSNlbHNlCi0gICAgICAgIC8qIE5vIGNvbnZlcnNpb24sIGp1c3QgbWVtY3B5IHRoZSB0aG91c2FuZHNfc2VwLiAqLwotICAgICAgICBtZW1jcHkoKmJ1ZmZlcl9lbmQsIHRob3VzYW5kc19zZXAsIHRob3VzYW5kc19zZXBfbGVuKTsKLSNlbmRpZgorICAgICAgICBtZW1jcHkoKmJ1ZmZlcl9lbmQsIHRob3VzYW5kc19zZXAsCisgICAgICAgICAgICAgICB0aG91c2FuZHNfc2VwX2xlbiAqIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUik7CiAgICAgfQogCiAgICAgKmJ1ZmZlcl9lbmQgLT0gbl9jaGFyczsKQEAgLTc2LDExICs2NSwxMiBAQAogICAgIG1lbWNweSgqYnVmZmVyX2VuZCwgKmRpZ2l0c19lbmQsIG5fY2hhcnMgKiBzaXplb2YoU1RSSU5HTElCX0NIQVIpKTsKIAogICAgICpidWZmZXJfZW5kIC09IG5femVyb3M7Ci0gICAgU1RSSU5HTElCX0ZJTEwoKmJ1ZmZlcl9lbmQsICcwJywgbl96ZXJvcyk7CisgICAgZm9yIChpID0gMDsgaSA8IG5femVyb3M7IGkrKykKKyAgICAgICAgKCpidWZmZXJfZW5kKVtpXSA9ICcwJzsKIH0KIAogLyoqCi0gKiBfUHlfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmc6CisgKiBJbnNlcnRUaG91c2FuZHNHcm91cGluZzoKICAqIEBidWZmZXI6IEEgcG9pbnRlciB0byB0aGUgc3RhcnQgb2YgYSBzdHJpbmcuCiAgKiBAbl9idWZmZXI6IE51bWJlciBvZiBjaGFyYWN0ZXJzIGluIEBidWZmZXIuCiAgKiBAZGlnaXRzOiBBIHBvaW50ZXIgdG8gdGhlIGRpZ2l0cyB3ZSdyZSByZWFkaW5nIGZyb20uIElmIGNvdW50CkBAIC0xMDksMTQgKzk5LDE2IEBACiAgKiBBcyBjbG9zZWx5IGFzIHBvc3NpYmxlLCB0aGlzIGNvZGUgbWltaWNzIHRoZSBsb2dpYyBpbiBkZWNpbWFsLnB5J3MKICAgICBfaW5zZXJ0X3Rob3VzYW5kc19zZXAoKS4KICAqKi8KLVB5X3NzaXplX3QKLV9QeV9JbnNlcnRUaG91c2FuZHNHcm91cGluZyhTVFJJTkdMSUJfQ0hBUiAqYnVmZmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgbl9idWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RSSU5HTElCX0NIQVIgKmRpZ2l0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG5fZGlnaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbWluX3dpZHRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmdyb3VwaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnRob3VzYW5kc19zZXApCitzdGF0aWMgUHlfc3NpemVfdAorU1RSSU5HTElCKEluc2VydFRob3VzYW5kc0dyb3VwaW5nKSgKKyAgICBTVFJJTkdMSUJfQ0hBUiAqYnVmZmVyLAorICAgIFB5X3NzaXplX3Qgbl9idWZmZXIsCisgICAgU1RSSU5HTElCX0NIQVIgKmRpZ2l0cywKKyAgICBQeV9zc2l6ZV90IG5fZGlnaXRzLAorICAgIFB5X3NzaXplX3QgbWluX3dpZHRoLAorICAgIGNvbnN0IGNoYXIgKmdyb3VwaW5nLAorICAgIFNUUklOR0xJQl9DSEFSICp0aG91c2FuZHNfc2VwLAorICAgIFB5X3NzaXplX3QgdGhvdXNhbmRzX3NlcF9sZW4pCiB7CiAgICAgUHlfc3NpemVfdCBjb3VudCA9IDA7CiAgICAgUHlfc3NpemVfdCBuX3plcm9zOwpAQCAtMTI4LDIzICsxMjAsMjIgQEAKICAgICBTVFJJTkdMSUJfQ0hBUiAqZGlnaXRzX2VuZCA9IE5VTEw7CiAgICAgUHlfc3NpemVfdCBsOwogICAgIFB5X3NzaXplX3Qgbl9jaGFyczsKLSAgICBQeV9zc2l6ZV90IHRob3VzYW5kc19zZXBfbGVuID0gc3RybGVuKHRob3VzYW5kc19zZXApOwogICAgIFB5X3NzaXplX3QgcmVtYWluaW5nID0gbl9kaWdpdHM7IC8qIE51bWJlciBvZiBjaGFycyByZW1haW5pbmcgdG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSBsb29rZWQgYXQgKi8KICAgICAvKiBBIGdlbmVyYXRvciB0aGF0IHJldHVybnMgYWxsIG9mIHRoZSBncm91cGluZyB3aWR0aHMsIHVudGlsIGl0CiAgICAgICAgcmV0dXJucyAwLiAqLwotICAgIEdyb3VwR2VuZXJhdG9yIGdyb3VwZ2VuOwotICAgIF9Hcm91cEdlbmVyYXRvcl9pbml0KCZncm91cGdlbiwgZ3JvdXBpbmcpOworICAgIFNUUklOR0xJQihHcm91cEdlbmVyYXRvcikgZ3JvdXBnZW47CisgICAgU1RSSU5HTElCKEdyb3VwR2VuZXJhdG9yX2luaXQpKCZncm91cGdlbiwgZ3JvdXBpbmcpOwogCiAgICAgaWYgKGJ1ZmZlcikgewogICAgICAgICBidWZmZXJfZW5kID0gYnVmZmVyICsgbl9idWZmZXI7CiAgICAgICAgIGRpZ2l0c19lbmQgPSBkaWdpdHMgKyBuX2RpZ2l0czsKICAgICB9CiAKLSAgICB3aGlsZSAoKGwgPSBfR3JvdXBHZW5lcmF0b3JfbmV4dCgmZ3JvdXBnZW4pKSA+IDApIHsKLSAgICAgICAgbCA9IE1JTihsLCBNQVgoTUFYKHJlbWFpbmluZywgbWluX3dpZHRoKSwgMSkpOwotICAgICAgICBuX3plcm9zID0gTUFYKDAsIGwgLSByZW1haW5pbmcpOwotICAgICAgICBuX2NoYXJzID0gTUFYKDAsIE1JTihyZW1haW5pbmcsIGwpKTsKKyAgICB3aGlsZSAoKGwgPSBTVFJJTkdMSUIoR3JvdXBHZW5lcmF0b3JfbmV4dCkoJmdyb3VwZ2VuKSkgPiAwKSB7CisgICAgICAgIGwgPSBQeV9NSU4obCwgUHlfTUFYKFB5X01BWChyZW1haW5pbmcsIG1pbl93aWR0aCksIDEpKTsKKyAgICAgICAgbl96ZXJvcyA9IFB5X01BWCgwLCBsIC0gcmVtYWluaW5nKTsKKyAgICAgICAgbl9jaGFycyA9IFB5X01BWCgwLCBQeV9NSU4ocmVtYWluaW5nLCBsKSk7CiAKICAgICAgICAgLyogVXNlIG5femVybyB6ZXJvJ3MgYW5kIG5fY2hhcnMgY2hhcnMgKi8KIApAQCAtMTUzLDcgKzE0NCw3IEBACiAKICAgICAgICAgaWYgKGJ1ZmZlcikgewogICAgICAgICAgICAgLyogQ29weSBpbnRvIHRoZSBvdXRwdXQgYnVmZmVyLiAqLwotICAgICAgICAgICAgZmlsbCgmZGlnaXRzX2VuZCwgJmJ1ZmZlcl9lbmQsIG5fY2hhcnMsIG5femVyb3MsCisgICAgICAgICAgICBTVFJJTkdMSUIoZmlsbCkoJmRpZ2l0c19lbmQsICZidWZmZXJfZW5kLCBuX2NoYXJzLCBuX3plcm9zLAogICAgICAgICAgICAgICAgICB1c2Vfc2VwYXJhdG9yID8gdGhvdXNhbmRzX3NlcCA6IE5VTEwsIHRob3VzYW5kc19zZXBfbGVuKTsKICAgICAgICAgfQogCkBAIC0xNzIsNDEgKzE2MywxOCBAQAogICAgIGlmICghbG9vcF9icm9rZW4pIHsKICAgICAgICAgLyogV2UgbGVmdCB0aGUgbG9vcCB3aXRob3V0IHVzaW5nIGEgYnJlYWsgc3RhdGVtZW50LiAqLwogCi0gICAgICAgIGwgPSBNQVgoTUFYKHJlbWFpbmluZywgbWluX3dpZHRoKSwgMSk7Ci0gICAgICAgIG5femVyb3MgPSBNQVgoMCwgbCAtIHJlbWFpbmluZyk7Ci0gICAgICAgIG5fY2hhcnMgPSBNQVgoMCwgTUlOKHJlbWFpbmluZywgbCkpOworICAgICAgICBsID0gUHlfTUFYKFB5X01BWChyZW1haW5pbmcsIG1pbl93aWR0aCksIDEpOworICAgICAgICBuX3plcm9zID0gUHlfTUFYKDAsIGwgLSByZW1haW5pbmcpOworICAgICAgICBuX2NoYXJzID0gUHlfTUFYKDAsIFB5X01JTihyZW1haW5pbmcsIGwpKTsKIAogICAgICAgICAvKiBVc2Ugbl96ZXJvIHplcm8ncyBhbmQgbl9jaGFycyBjaGFycyAqLwogICAgICAgICBjb3VudCArPSAodXNlX3NlcGFyYXRvciA/IHRob3VzYW5kc19zZXBfbGVuIDogMCkgKyBuX3plcm9zICsgbl9jaGFyczsKICAgICAgICAgaWYgKGJ1ZmZlcikgewogICAgICAgICAgICAgLyogQ29weSBpbnRvIHRoZSBvdXRwdXQgYnVmZmVyLiAqLwotICAgICAgICAgICAgZmlsbCgmZGlnaXRzX2VuZCwgJmJ1ZmZlcl9lbmQsIG5fY2hhcnMsIG5femVyb3MsCisgICAgICAgICAgICBTVFJJTkdMSUIoZmlsbCkoJmRpZ2l0c19lbmQsICZidWZmZXJfZW5kLCBuX2NoYXJzLCBuX3plcm9zLAogICAgICAgICAgICAgICAgICB1c2Vfc2VwYXJhdG9yID8gdGhvdXNhbmRzX3NlcCA6IE5VTEwsIHRob3VzYW5kc19zZXBfbGVuKTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gY291bnQ7CiB9CiAKLS8qKgotICogX1B5X0luc2VydFRob3VzYW5kc0dyb3VwaW5nTG9jYWxlOgotICogQGJ1ZmZlcjogQSBwb2ludGVyIHRvIHRoZSBzdGFydCBvZiBhIHN0cmluZy4KLSAqIEBuX2RpZ2l0czogVGhlIG51bWJlciBvZiBkaWdpdHMgaW4gdGhlIHN0cmluZywgaW4gd2hpY2ggd2Ugd2FudAotICogICAgICAgICAgICB0byBwdXQgdGhlIGdyb3VwaW5nIGNoYXJzLgotICoKLSAqIFJlYWRzIHRoZWUgY3VycmVudCBsb2NhbGUgYW5kIGNhbGxzIF9QeV9JbnNlcnRUaG91c2FuZHNHcm91cGluZygpLgotICoqLwotUHlfc3NpemVfdAotX1B5X0luc2VydFRob3VzYW5kc0dyb3VwaW5nTG9jYWxlKFNUUklOR0xJQl9DSEFSICpidWZmZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuX2J1ZmZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTVFJJTkdMSUJfQ0hBUiAqZGlnaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgbl9kaWdpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBtaW5fd2lkdGgpCi17Ci0gICAgICAgIHN0cnVjdCBsY29udiAqbG9jYWxlX2RhdGEgPSBsb2NhbGVjb252KCk7Ci0gICAgICAgIGNvbnN0IGNoYXIgKmdyb3VwaW5nID0gbG9jYWxlX2RhdGEtPmdyb3VwaW5nOwotICAgICAgICBjb25zdCBjaGFyICp0aG91c2FuZHNfc2VwID0gbG9jYWxlX2RhdGEtPnRob3VzYW5kc19zZXA7Ci0KLSAgICAgICAgcmV0dXJuIF9QeV9JbnNlcnRUaG91c2FuZHNHcm91cGluZyhidWZmZXIsIG5fYnVmZmVyLCBkaWdpdHMsIG5fZGlnaXRzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl93aWR0aCwgZ3JvdXBpbmcsIHRob3VzYW5kc19zZXApOwotfQotI2VuZGlmIC8qIFNUUklOR0xJQl9MT0NBTEVVVElMX0ggKi8KZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL3BhcnRpdGlvbi5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvcGFydGl0aW9uLmgKaW5kZXggMDE3MGJkZC4uNDBjYjUxMiAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvcGFydGl0aW9uLmgKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvcGFydGl0aW9uLmgKQEAgLTEsMTQgKzEsMTEgQEAKIC8qIHN0cmluZ2xpYjogcGFydGl0aW9uIGltcGxlbWVudGF0aW9uICovCiAKLSNpZm5kZWYgU1RSSU5HTElCX1BBUlRJVElPTl9ICi0jZGVmaW5lIFNUUklOR0xJQl9QQVJUSVRJT05fSAotCiAjaWZuZGVmIFNUUklOR0xJQl9GQVNUU0VBUkNIX0gKICNlcnJvciBtdXN0IGluY2x1ZGUgInN0cmluZ2xpYi9mYXN0c2VhcmNoLmgiIGJlZm9yZSBpbmNsdWRpbmcgdGhpcyBtb2R1bGUKICNlbmRpZgogCiBQeV9MT0NBTF9JTkxJTkUoUHlPYmplY3QqKQotc3RyaW5nbGliX3BhcnRpdGlvbihQeU9iamVjdCogc3RyX29iaiwKK1NUUklOR0xJQihwYXJ0aXRpb24pKFB5T2JqZWN0KiBzdHJfb2JqLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3RyLCBQeV9zc2l6ZV90IHN0cl9sZW4sCiAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0KiBzZXBfb2JqLAogICAgICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogc2VwLCBQeV9zc2l6ZV90IHNlcF9sZW4pCkBAIC0yNSw3ICsyMiw3IEBACiAgICAgaWYgKCFvdXQpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgcG9zID0gZmFzdHNlYXJjaChzdHIsIHN0cl9sZW4sIHNlcCwgc2VwX2xlbiwgLTEsIEZBU1RfU0VBUkNIKTsKKyAgICBwb3MgPSBGQVNUU0VBUkNIKHN0ciwgc3RyX2xlbiwgc2VwLCBzZXBfbGVuLCAtMSwgRkFTVF9TRUFSQ0gpOwogCiAgICAgaWYgKHBvcyA8IDApIHsKICNpZiBTVFJJTkdMSUJfTVVUQUJMRQpAQCAtNTgsNyArNTUsNyBAQAogfQogCiBQeV9MT0NBTF9JTkxJTkUoUHlPYmplY3QqKQotc3RyaW5nbGliX3JwYXJ0aXRpb24oUHlPYmplY3QqIHN0cl9vYmosCitTVFJJTkdMSUIocnBhcnRpdGlvbikoUHlPYmplY3QqIHN0cl9vYmosCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3RyLCBQeV9zc2l6ZV90IHN0cl9sZW4sCiAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCogc2VwX29iaiwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSKiBzZXAsIFB5X3NzaXplX3Qgc2VwX2xlbikKQEAgLTc1LDcgKzcyLDcgQEAKICAgICBpZiAoIW91dCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBwb3MgPSBmYXN0c2VhcmNoKHN0ciwgc3RyX2xlbiwgc2VwLCBzZXBfbGVuLCAtMSwgRkFTVF9SU0VBUkNIKTsKKyAgICBwb3MgPSBGQVNUU0VBUkNIKHN0ciwgc3RyX2xlbiwgc2VwLCBzZXBfbGVuLCAtMSwgRkFTVF9SU0VBUkNIKTsKIAogICAgIGlmIChwb3MgPCAwKSB7CiAjaWYgU1RSSU5HTElCX01VVEFCTEUKQEAgLTEwNyw0ICsxMDQsMyBAQAogICAgIHJldHVybiBvdXQ7CiB9CiAKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvc3BsaXQuaCBiL09iamVjdHMvc3RyaW5nbGliL3NwbGl0LmgKaW5kZXggNjBlNzc2Ny4uOTQ3ZGQyOCAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvc3BsaXQuaAorKysgYi9PYmplY3RzL3N0cmluZ2xpYi9zcGxpdC5oCkBAIC0xLDggKzEsNSBAQAogLyogc3RyaW5nbGliOiBzcGxpdCBpbXBsZW1lbnRhdGlvbiAqLwogCi0jaWZuZGVmIFNUUklOR0xJQl9TUExJVF9ICi0jZGVmaW5lIFNUUklOR0xJQl9TUExJVF9ICi0KICNpZm5kZWYgU1RSSU5HTElCX0ZBU1RTRUFSQ0hfSAogI2Vycm9yIG11c3QgaW5jbHVkZSAic3RyaW5nbGliL2Zhc3RzZWFyY2guaCIgYmVmb3JlIGluY2x1ZGluZyB0aGlzIG1vZHVsZQogI2VuZGlmCkBAIC01NCw3ICs1MSw3IEBACiAjZGVmaW5lIEZJWF9QUkVBTExPQ19TSVpFKGxpc3QpIFB5X1NJWkUobGlzdCkgPSBjb3VudAogCiBQeV9MT0NBTF9JTkxJTkUoUHlPYmplY3QgKikKLXN0cmluZ2xpYl9zcGxpdF93aGl0ZXNwYWNlKFB5T2JqZWN0KiBzdHJfb2JqLAorU1RSSU5HTElCKHNwbGl0X3doaXRlc3BhY2UpKFB5T2JqZWN0KiBzdHJfb2JqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU1RSSU5HTElCX0NIQVIqIHN0ciwgUHlfc3NpemVfdCBzdHJfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBtYXhjb3VudCkKIHsKQEAgLTEwMiw3ICs5OSw3IEBACiB9CiAKIFB5X0xPQ0FMX0lOTElORShQeU9iamVjdCAqKQotc3RyaW5nbGliX3NwbGl0X2NoYXIoUHlPYmplY3QqIHN0cl9vYmosCitTVFJJTkdMSUIoc3BsaXRfY2hhcikoUHlPYmplY3QqIHN0cl9vYmosCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3RyLCBQeV9zc2l6ZV90IHN0cl9sZW4sCiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiBjaCwKICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbWF4Y291bnQpCkBAIC0xNDUsNyArMTQyLDcgQEAKIH0KIAogUHlfTE9DQUxfSU5MSU5FKFB5T2JqZWN0ICopCi1zdHJpbmdsaWJfc3BsaXQoUHlPYmplY3QqIHN0cl9vYmosCitTVFJJTkdMSUIoc3BsaXQpKFB5T2JqZWN0KiBzdHJfb2JqLAogICAgICAgICAgICAgICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSKiBzdHIsIFB5X3NzaXplX3Qgc3RyX2xlbiwKICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogc2VwLCBQeV9zc2l6ZV90IHNlcF9sZW4sCiAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBtYXhjb3VudCkKQEAgLTE1OCw3ICsxNTUsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgZWxzZSBpZiAoc2VwX2xlbiA9PSAxKQotICAgICAgICByZXR1cm4gc3RyaW5nbGliX3NwbGl0X2NoYXIoc3RyX29iaiwgc3RyLCBzdHJfbGVuLCBzZXBbMF0sIG1heGNvdW50KTsKKyAgICAgICAgcmV0dXJuIFNUUklOR0xJQihzcGxpdF9jaGFyKShzdHJfb2JqLCBzdHIsIHN0cl9sZW4sIHNlcFswXSwgbWF4Y291bnQpOwogCiAgICAgbGlzdCA9IFB5TGlzdF9OZXcoUFJFQUxMT0NfU0laRShtYXhjb3VudCkpOwogICAgIGlmIChsaXN0ID09IE5VTEwpCkBAIC0xNjYsNyArMTYzLDcgQEAKIAogICAgIGkgPSBqID0gMDsKICAgICB3aGlsZSAobWF4Y291bnQtLSA+IDApIHsKLSAgICAgICAgcG9zID0gZmFzdHNlYXJjaChzdHIraSwgc3RyX2xlbi1pLCBzZXAsIHNlcF9sZW4sIC0xLCBGQVNUX1NFQVJDSCk7CisgICAgICAgIHBvcyA9IEZBU1RTRUFSQ0goc3RyK2ksIHN0cl9sZW4taSwgc2VwLCBzZXBfbGVuLCAtMSwgRkFTVF9TRUFSQ0gpOwogICAgICAgICBpZiAocG9zIDwgMCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBqID0gaSArIHBvczsKQEAgLTE5Myw3ICsxOTAsNyBAQAogfQogCiBQeV9MT0NBTF9JTkxJTkUoUHlPYmplY3QgKikKLXN0cmluZ2xpYl9yc3BsaXRfd2hpdGVzcGFjZShQeU9iamVjdCogc3RyX29iaiwKK1NUUklOR0xJQihyc3BsaXRfd2hpdGVzcGFjZSkoUHlPYmplY3QqIHN0cl9vYmosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU1RSSU5HTElCX0NIQVIqIHN0ciwgUHlfc3NpemVfdCBzdHJfbGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbWF4Y291bnQpCiB7CkBAIC0yNDMsNyArMjQwLDcgQEAKIH0KIAogUHlfTE9DQUxfSU5MSU5FKFB5T2JqZWN0ICopCi1zdHJpbmdsaWJfcnNwbGl0X2NoYXIoUHlPYmplY3QqIHN0cl9vYmosCitTVFJJTkdMSUIocnNwbGl0X2NoYXIpKFB5T2JqZWN0KiBzdHJfb2JqLAogICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSKiBzdHIsIFB5X3NzaXplX3Qgc3RyX2xlbiwKICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiBjaCwKICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG1heGNvdW50KQpAQCAtMjg3LDcgKzI4NCw3IEBACiB9CiAKIFB5X0xPQ0FMX0lOTElORShQeU9iamVjdCAqKQotc3RyaW5nbGliX3JzcGxpdChQeU9iamVjdCogc3RyX29iaiwKK1NUUklOR0xJQihyc3BsaXQpKFB5T2JqZWN0KiBzdHJfb2JqLAogICAgICAgICAgICAgICAgICBjb25zdCBTVFJJTkdMSUJfQ0hBUiogc3RyLCBQeV9zc2l6ZV90IHN0cl9sZW4sCiAgICAgICAgICAgICAgICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSKiBzZXAsIFB5X3NzaXplX3Qgc2VwX2xlbiwKICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBtYXhjb3VudCkKQEAgLTMwMCw3ICsyOTcsNyBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgZWxzZSBpZiAoc2VwX2xlbiA9PSAxKQotICAgICAgICByZXR1cm4gc3RyaW5nbGliX3JzcGxpdF9jaGFyKHN0cl9vYmosIHN0ciwgc3RyX2xlbiwgc2VwWzBdLCBtYXhjb3VudCk7CisgICAgICAgIHJldHVybiBTVFJJTkdMSUIocnNwbGl0X2NoYXIpKHN0cl9vYmosIHN0ciwgc3RyX2xlbiwgc2VwWzBdLCBtYXhjb3VudCk7CiAKICAgICBsaXN0ID0gUHlMaXN0X05ldyhQUkVBTExPQ19TSVpFKG1heGNvdW50KSk7CiAgICAgaWYgKGxpc3QgPT0gTlVMTCkKQEAgLTMwOCw3ICszMDUsNyBAQAogCiAgICAgaiA9IHN0cl9sZW47CiAgICAgd2hpbGUgKG1heGNvdW50LS0gPiAwKSB7Ci0gICAgICAgIHBvcyA9IGZhc3RzZWFyY2goc3RyLCBqLCBzZXAsIHNlcF9sZW4sIC0xLCBGQVNUX1JTRUFSQ0gpOworICAgICAgICBwb3MgPSBGQVNUU0VBUkNIKHN0ciwgaiwgc2VwLCBzZXBfbGVuLCAtMSwgRkFTVF9SU0VBUkNIKTsKICAgICAgICAgaWYgKHBvcyA8IDApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgU1BMSVRfQUREKHN0ciwgcG9zICsgc2VwX2xlbiwgaik7CkBAIC0zMzYsNyArMzMzLDcgQEAKIH0KIAogUHlfTE9DQUxfSU5MSU5FKFB5T2JqZWN0ICopCi1zdHJpbmdsaWJfc3BsaXRsaW5lcyhQeU9iamVjdCogc3RyX29iaiwKK1NUUklOR0xJQihzcGxpdGxpbmVzKShQeU9iamVjdCogc3RyX29iaiwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNUUklOR0xJQl9DSEFSKiBzdHIsIFB5X3NzaXplX3Qgc3RyX2xlbiwKICAgICAgICAgICAgICAgICAgICAgIGludCBrZWVwZW5kcykKIHsKQEAgLTM5MSw0ICszODgsMyBAQAogICAgIHJldHVybiBOVUxMOwogfQogCi0jZW5kaWYKZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL3N0cmluZ2RlZnMuaCBiL09iamVjdHMvc3RyaW5nbGliL3N0cmluZ2RlZnMuaAppbmRleCAxYzQ5NDI2Li43YmI5MWE3IDEwMDY0NAotLS0gYS9PYmplY3RzL3N0cmluZ2xpYi9zdHJpbmdkZWZzLmgKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvc3RyaW5nZGVmcy5oCkBAIC02LDcgKzYsMTAgQEAKICAgIGNvbXBpbGVkIGFzIHVuaWNvZGUuICovCiAjZGVmaW5lIFNUUklOR0xJQl9JU19VTklDT0RFICAgICAwCiAKKyNkZWZpbmUgRkFTVFNFQVJDSCBmYXN0c2VhcmNoCisjZGVmaW5lIFNUUklOR0xJQihGKSBzdHJpbmdsaWJfIyNGCiAjZGVmaW5lIFNUUklOR0xJQl9PQkpFQ1QgICAgICAgICBQeUJ5dGVzT2JqZWN0CisjZGVmaW5lIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiAgICAxCiAjZGVmaW5lIFNUUklOR0xJQl9DSEFSICAgICAgICAgICBjaGFyCiAjZGVmaW5lIFNUUklOR0xJQl9UWVBFX05BTUUgICAgICAic3RyaW5nIgogI2RlZmluZSBTVFJJTkdMSUJfUEFSU0VfQ09ERSAgICAgIlMiCkBAIC0xNSw5ICsxOCw2IEBACiAjZGVmaW5lIFNUUklOR0xJQl9JU0xJTkVCUkVBSyh4KSAoKHggPT0gJ1xuJykgfHwgKHggPT0gJ1xyJykpCiAjZGVmaW5lIFNUUklOR0xJQl9JU0RFQ0lNQUwoeCkgICAoKHggPj0gJzAnKSAmJiAoeCA8PSAnOScpKQogI2RlZmluZSBTVFJJTkdMSUJfVE9ERUNJTUFMKHgpICAgKFNUUklOR0xJQl9JU0RFQ0lNQUwoeCkgPyAoeCAtICcwJykgOiAtMSkKLSNkZWZpbmUgU1RSSU5HTElCX1RPVVBQRVIgICAgICAgIFB5X1RPVVBQRVIKLSNkZWZpbmUgU1RSSU5HTElCX1RPTE9XRVIgICAgICAgIFB5X1RPTE9XRVIKLSNkZWZpbmUgU1RSSU5HTElCX0ZJTEwgICAgICAgICAgIG1lbXNldAogI2RlZmluZSBTVFJJTkdMSUJfU1RSICAgICAgICAgICAgUHlCeXRlc19BU19TVFJJTkcKICNkZWZpbmUgU1RSSU5HTElCX0xFTiAgICAgICAgICAgIFB5Qnl0ZXNfR0VUX1NJWkUKICNkZWZpbmUgU1RSSU5HTElCX05FVyAgICAgICAgICAgIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUKQEAgLTI1LDcgKzI1LDUgQEAKICNkZWZpbmUgU1RSSU5HTElCX0NIRUNLICAgICAgICAgIFB5Qnl0ZXNfQ2hlY2sKICNkZWZpbmUgU1RSSU5HTElCX0NIRUNLX0VYQUNUICAgIFB5Qnl0ZXNfQ2hlY2tFeGFjdAogI2RlZmluZSBTVFJJTkdMSUJfVE9TVFIgICAgICAgICAgUHlPYmplY3RfU3RyCi0jZGVmaW5lIFNUUklOR0xJQl9HUk9VUElORyAgICAgICBfUHlCeXRlc19JbnNlcnRUaG91c2FuZHNHcm91cGluZwotI2RlZmluZSBTVFJJTkdMSUJfR1JPVVBJTkdfTE9DQUxFIF9QeUJ5dGVzX0luc2VydFRob3VzYW5kc0dyb3VwaW5nTG9jYWxlCiAjZGVmaW5lIFNUUklOR0xJQl9UT0FTQ0lJICAgICAgICBQeU9iamVjdF9SZXByCiAjZW5kaWYgLyogIVNUUklOR0xJQl9TVFJJTkdERUZTX0ggKi8KZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL3VjczFsaWIuaCBiL09iamVjdHMvc3RyaW5nbGliL3VjczFsaWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOGM2ZmNiCi0tLSAvZGV2L251bGwKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvdWNzMWxpYi5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qIHRoaXMgaXMgc29ydCBvZiBhIGhhY2suICB0aGVyZSdzIGF0IGxlYXN0IG9uZSBwbGFjZSAoZm9ybWF0dGluZworICAgZmxvYXRzKSB3aGVyZSBzb21lIHN0cmluZ2xpYiBjb2RlIHRha2VzIGEgZGlmZmVyZW50IHBhdGggaWYgaXQncworICAgY29tcGlsZWQgYXMgdW5pY29kZS4gKi8KKyNkZWZpbmUgU1RSSU5HTElCX0lTX1VOSUNPREUgICAgIDEKKworI2RlZmluZSBGQVNUU0VBUkNIICAgICAgICAgICAgICAgdWNzMWxpYl9mYXN0c2VhcmNoCisjZGVmaW5lIFNUUklOR0xJQihGKSAgICAgICAgICAgICB1Y3MxbGliXyMjRgorI2RlZmluZSBTVFJJTkdMSUJfT0JKRUNUICAgICAgICAgUHlVbmljb2RlT2JqZWN0CisjZGVmaW5lIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiAgICAxCisjZGVmaW5lIFNUUklOR0xJQl9NQVhfQ0hBUiAgICAgICAweEZGdQorI2RlZmluZSBTVFJJTkdMSUJfQ0hBUiAgICAgICAgICAgUHlfVUNTMQorI2RlZmluZSBTVFJJTkdMSUJfVFlQRV9OQU1FICAgICAgInVuaWNvZGUiCisjZGVmaW5lIFNUUklOR0xJQl9QQVJTRV9DT0RFICAgICAiVSIKKyNkZWZpbmUgU1RSSU5HTElCX0VNUFRZICAgICAgICAgIHVuaWNvZGVfZW1wdHkKKyNkZWZpbmUgU1RSSU5HTElCX0lTU1BBQ0UgICAgICAgIFB5X1VOSUNPREVfSVNTUEFDRQorI2RlZmluZSBTVFJJTkdMSUJfSVNMSU5FQlJFQUsgICAgQkxPT01fTElORUJSRUFLCisjZGVmaW5lIFNUUklOR0xJQl9JU0RFQ0lNQUwgICAgICBQeV9VTklDT0RFX0lTREVDSU1BTAorI2RlZmluZSBTVFJJTkdMSUJfVE9ERUNJTUFMICAgICAgUHlfVU5JQ09ERV9UT0RFQ0lNQUwKKyNkZWZpbmUgU1RSSU5HTElCX1NUUiAgICAgICAgICAgIFB5VW5pY29kZV8xQllURV9EQVRBCisjZGVmaW5lIFNUUklOR0xJQl9MRU4gICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSAorI2RlZmluZSBTVFJJTkdMSUJfTkVXICAgICAgICAgICAgX1B5VW5pY29kZV9Gcm9tVUNTMQorI2RlZmluZSBTVFJJTkdMSUJfUkVTSVpFICAgICAgICAgbm90X3N1cHBvcnRlZAorI2RlZmluZSBTVFJJTkdMSUJfQ0hFQ0sgICAgICAgICAgUHlVbmljb2RlX0NoZWNrCisjZGVmaW5lIFNUUklOR0xJQl9DSEVDS19FWEFDVCAgICBQeVVuaWNvZGVfQ2hlY2tFeGFjdAorCisjZGVmaW5lIFNUUklOR0xJQl9UT1NUUiAgICAgICAgICBQeU9iamVjdF9TdHIKKyNkZWZpbmUgU1RSSU5HTElCX1RPQVNDSUkgICAgICAgIFB5T2JqZWN0X0FTQ0lJCisKKyNkZWZpbmUgX1B5X0luc2VydFRob3VzYW5kc0dyb3VwaW5nIF9QeVVuaWNvZGVfdWNzMV9JbnNlcnRUaG91c2FuZHNHcm91cGluZworCisKZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL3VjczJsaWIuaCBiL09iamVjdHMvc3RyaW5nbGliL3VjczJsaWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NWU1NzI5Ci0tLSAvZGV2L251bGwKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvdWNzMmxpYi5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qIHRoaXMgaXMgc29ydCBvZiBhIGhhY2suICB0aGVyZSdzIGF0IGxlYXN0IG9uZSBwbGFjZSAoZm9ybWF0dGluZworICAgZmxvYXRzKSB3aGVyZSBzb21lIHN0cmluZ2xpYiBjb2RlIHRha2VzIGEgZGlmZmVyZW50IHBhdGggaWYgaXQncworICAgY29tcGlsZWQgYXMgdW5pY29kZS4gKi8KKyNkZWZpbmUgU1RSSU5HTElCX0lTX1VOSUNPREUgICAgIDEKKworI2RlZmluZSBGQVNUU0VBUkNIICAgICAgICAgICAgICAgdWNzMmxpYl9mYXN0c2VhcmNoCisjZGVmaW5lIFNUUklOR0xJQihGKSAgICAgICAgICAgICB1Y3MybGliXyMjRgorI2RlZmluZSBTVFJJTkdMSUJfT0JKRUNUICAgICAgICAgUHlVbmljb2RlT2JqZWN0CisjZGVmaW5lIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiAgICAyCisjZGVmaW5lIFNUUklOR0xJQl9NQVhfQ0hBUiAgICAgICAweEZGRkZ1CisjZGVmaW5lIFNUUklOR0xJQl9DSEFSICAgICAgICAgICBQeV9VQ1MyCisjZGVmaW5lIFNUUklOR0xJQl9UWVBFX05BTUUgICAgICAidW5pY29kZSIKKyNkZWZpbmUgU1RSSU5HTElCX1BBUlNFX0NPREUgICAgICJVIgorI2RlZmluZSBTVFJJTkdMSUJfRU1QVFkgICAgICAgICAgdW5pY29kZV9lbXB0eQorI2RlZmluZSBTVFJJTkdMSUJfSVNTUEFDRSAgICAgICAgUHlfVU5JQ09ERV9JU1NQQUNFCisjZGVmaW5lIFNUUklOR0xJQl9JU0xJTkVCUkVBSyAgICBCTE9PTV9MSU5FQlJFQUsKKyNkZWZpbmUgU1RSSU5HTElCX0lTREVDSU1BTCAgICAgIFB5X1VOSUNPREVfSVNERUNJTUFMCisjZGVmaW5lIFNUUklOR0xJQl9UT0RFQ0lNQUwgICAgICBQeV9VTklDT0RFX1RPREVDSU1BTAorI2RlZmluZSBTVFJJTkdMSUJfU1RSICAgICAgICAgICAgUHlVbmljb2RlXzJCWVRFX0RBVEEKKyNkZWZpbmUgU1RSSU5HTElCX0xFTiAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RICisjZGVmaW5lIFNUUklOR0xJQl9ORVcgICAgICAgICAgICBfUHlVbmljb2RlX0Zyb21VQ1MyCisjZGVmaW5lIFNUUklOR0xJQl9SRVNJWkUgICAgICAgICBub3Rfc3VwcG9ydGVkCisjZGVmaW5lIFNUUklOR0xJQl9DSEVDSyAgICAgICAgICBQeVVuaWNvZGVfQ2hlY2sKKyNkZWZpbmUgU1RSSU5HTElCX0NIRUNLX0VYQUNUICAgIFB5VW5pY29kZV9DaGVja0V4YWN0CisKKyNkZWZpbmUgU1RSSU5HTElCX1RPU1RSICAgICAgICAgIFB5T2JqZWN0X1N0cgorI2RlZmluZSBTVFJJTkdMSUJfVE9BU0NJSSAgICAgICAgUHlPYmplY3RfQVNDSUkKKworI2RlZmluZSBfUHlfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcgX1B5VW5pY29kZV91Y3MyX0luc2VydFRob3VzYW5kc0dyb3VwaW5nCisKZGlmZiAtLWdpdCBhL09iamVjdHMvc3RyaW5nbGliL3VjczRsaWIuaCBiL09iamVjdHMvc3RyaW5nbGliL3VjczRsaWIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NDdhMjdlCi0tLSAvZGV2L251bGwKKysrIGIvT2JqZWN0cy9zdHJpbmdsaWIvdWNzNGxpYi5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qIHRoaXMgaXMgc29ydCBvZiBhIGhhY2suICB0aGVyZSdzIGF0IGxlYXN0IG9uZSBwbGFjZSAoZm9ybWF0dGluZworICAgZmxvYXRzKSB3aGVyZSBzb21lIHN0cmluZ2xpYiBjb2RlIHRha2VzIGEgZGlmZmVyZW50IHBhdGggaWYgaXQncworICAgY29tcGlsZWQgYXMgdW5pY29kZS4gKi8KKyNkZWZpbmUgU1RSSU5HTElCX0lTX1VOSUNPREUgICAgIDEKKworI2RlZmluZSBGQVNUU0VBUkNIICAgICAgICAgICAgICAgdWNzNGxpYl9mYXN0c2VhcmNoCisjZGVmaW5lIFNUUklOR0xJQihGKSAgICAgICAgICAgICB1Y3M0bGliXyMjRgorI2RlZmluZSBTVFJJTkdMSUJfT0JKRUNUICAgICAgICAgUHlVbmljb2RlT2JqZWN0CisjZGVmaW5lIFNUUklOR0xJQl9TSVpFT0ZfQ0hBUiAgICA0CisjZGVmaW5lIFNUUklOR0xJQl9NQVhfQ0hBUiAgICAgICAweDEwRkZGRnUKKyNkZWZpbmUgU1RSSU5HTElCX0NIQVIgICAgICAgICAgIFB5X1VDUzQKKyNkZWZpbmUgU1RSSU5HTElCX1RZUEVfTkFNRSAgICAgICJ1bmljb2RlIgorI2RlZmluZSBTVFJJTkdMSUJfUEFSU0VfQ09ERSAgICAgIlUiCisjZGVmaW5lIFNUUklOR0xJQl9FTVBUWSAgICAgICAgICB1bmljb2RlX2VtcHR5CisjZGVmaW5lIFNUUklOR0xJQl9JU1NQQUNFICAgICAgICBQeV9VTklDT0RFX0lTU1BBQ0UKKyNkZWZpbmUgU1RSSU5HTElCX0lTTElORUJSRUFLICAgIEJMT09NX0xJTkVCUkVBSworI2RlZmluZSBTVFJJTkdMSUJfSVNERUNJTUFMICAgICAgUHlfVU5JQ09ERV9JU0RFQ0lNQUwKKyNkZWZpbmUgU1RSSU5HTElCX1RPREVDSU1BTCAgICAgIFB5X1VOSUNPREVfVE9ERUNJTUFMCisjZGVmaW5lIFNUUklOR0xJQl9TVFIgICAgICAgICAgICBQeVVuaWNvZGVfNEJZVEVfREFUQQorI2RlZmluZSBTVFJJTkdMSUJfTEVOICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgKKyNkZWZpbmUgU1RSSU5HTElCX05FVyAgICAgICAgICAgIF9QeVVuaWNvZGVfRnJvbVVDUzQKKyNkZWZpbmUgU1RSSU5HTElCX1JFU0laRSAgICAgICAgIG5vdF9zdXBwb3J0ZWQKKyNkZWZpbmUgU1RSSU5HTElCX0NIRUNLICAgICAgICAgIFB5VW5pY29kZV9DaGVjaworI2RlZmluZSBTVFJJTkdMSUJfQ0hFQ0tfRVhBQ1QgICAgUHlVbmljb2RlX0NoZWNrRXhhY3QKKworI2RlZmluZSBTVFJJTkdMSUJfVE9TVFIgICAgICAgICAgUHlPYmplY3RfU3RyCisjZGVmaW5lIFNUUklOR0xJQl9UT0FTQ0lJICAgICAgICBQeU9iamVjdF9BU0NJSQorCisjZGVmaW5lIF9QeV9JbnNlcnRUaG91c2FuZHNHcm91cGluZyBfUHlVbmljb2RlX3VjczRfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcKKwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvdW5kZWYuaCBiL09iamVjdHMvc3RyaW5nbGliL3VuZGVmLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDMxMTdlYwotLS0gL2Rldi9udWxsCisrKyBiL09iamVjdHMvc3RyaW5nbGliL3VuZGVmLmgKQEAgLTAsMCArMSwxMiBAQAorI3VuZGVmICBGQVNUU0VBUkNICisjdW5kZWYgIFNUUklOR0xJQgorI3VuZGVmICBTVFJJTkdMSUJfU0laRU9GX0NIQVIKKyN1bmRlZiAgU1RSSU5HTElCX01BWF9DSEFSCisjdW5kZWYgIFNUUklOR0xJQl9DSEFSCisjdW5kZWYgIFNUUklOR0xJQl9TVFIKKyN1bmRlZiAgU1RSSU5HTElCX0xFTgorI3VuZGVmICBTVFJJTkdMSUJfTkVXCisjdW5kZWYgIFNUUklOR0xJQl9SRVNJWkUKKyN1bmRlZiAgX1B5X0luc2VydFRob3VzYW5kc0dyb3VwaW5nCisjdW5kZWYgU1RSSU5HTElCX0lTX1VOSUNPREUKKwpkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvc3RyaW5nX2Zvcm1hdC5oIGIvT2JqZWN0cy9zdHJpbmdsaWIvdW5pY29kZV9mb3JtYXQuaApzaW1pbGFyaXR5IGluZGV4IDc4JQpyZW5hbWUgZnJvbSBPYmplY3RzL3N0cmluZ2xpYi9zdHJpbmdfZm9ybWF0LmgKcmVuYW1lIHRvIE9iamVjdHMvc3RyaW5nbGliL3VuaWNvZGVfZm9ybWF0LmgKaW5kZXggNmM3YWRjYi4uYmU1ODBjNiAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvc3RyaW5nX2Zvcm1hdC5oCisrKyBiL09iamVjdHMvc3RyaW5nbGliL3VuaWNvZGVfZm9ybWF0LmgKQEAgLTEsMTYgKzEsNyBAQAogLyoKLSAgICBzdHJpbmdfZm9ybWF0LmggLS0gaW1wbGVtZW50YXRpb24gb2Ygc3RyaW5nLmZvcm1hdCgpLgotCi0gICAgSXQgdXNlcyB0aGUgT2JqZWN0cy9zdHJpbmdsaWIgY29udmVudGlvbnMsIHNvIHRoYXQgaXQgY2FuIGJlCi0gICAgY29tcGlsZWQgZm9yIGJvdGggdW5pY29kZSBhbmQgc3RyaW5nIG9iamVjdHMuCisgICAgdW5pY29kZV9mb3JtYXQuaCAtLSBpbXBsZW1lbnRhdGlvbiBvZiBzdHIuZm9ybWF0KCkuCiAqLwogCi0KLS8qIERlZmluZXMgZm9yIFB5dGhvbiAyLjYgY29tcGF0aWJpbGl0eSAqLwotI2lmIFBZX1ZFUlNJT05fSEVYIDwgMHgwMzAwMDAwMAotI2RlZmluZSBQeUxvbmdfRnJvbVNzaXplX3QgX1B5TG9uZ19Gcm9tU3NpemVfdAotI2VuZGlmCi0KIC8qIERlZmluZXMgZm9yIG1vcmUgZWZmaWNpZW50bHkgcmVhbGxvY2F0aW5nIHRoZSBzdHJpbmcgYnVmZmVyICovCiAjZGVmaW5lIElOSVRJQUxfU0laRV9JTkNSRU1FTlQgMTAwCiAjZGVmaW5lIFNJWkVfTVVMVElQTElFUiAyCkBAIC0yNiw4ICsxNyw4IEBACiAgICB1bmljb2RlIHBvaW50ZXJzLgogKi8KIHR5cGVkZWYgc3RydWN0IHsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcHRyOwotICAgIFNUUklOR0xJQl9DSEFSICplbmQ7CisgICAgUHlPYmplY3QgKnN0cjsgLyogYm9ycm93ZWQgcmVmZXJlbmNlICovCisgICAgUHlfc3NpemVfdCBzdGFydCwgZW5kOwogfSBTdWJTdHJpbmc7CiAKIApAQCAtNjQsMzQgKzU1LDMyIEBACiAKIC8qIGZpbGwgaW4gYSBTdWJTdHJpbmcgZnJvbSBhIHBvaW50ZXIgYW5kIGxlbmd0aCAqLwogUHlfTE9DQUxfSU5MSU5FKHZvaWQpCi1TdWJTdHJpbmdfaW5pdChTdWJTdHJpbmcgKnN0ciwgU1RSSU5HTElCX0NIQVIgKnAsIFB5X3NzaXplX3QgbGVuKQorU3ViU3RyaW5nX2luaXQoU3ViU3RyaW5nICpzdHIsIFB5T2JqZWN0ICpzLCBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCkKIHsKLSAgICBzdHItPnB0ciA9IHA7Ci0gICAgaWYgKHAgPT0gTlVMTCkKLSAgICAgICAgc3RyLT5lbmQgPSBOVUxMOwotICAgIGVsc2UKLSAgICAgICAgc3RyLT5lbmQgPSBzdHItPnB0ciArIGxlbjsKKyAgICBzdHItPnN0ciA9IHM7CisgICAgc3RyLT5zdGFydCA9IHN0YXJ0OworICAgIHN0ci0+ZW5kID0gZW5kOwogfQogCi0vKiByZXR1cm4gYSBuZXcgc3RyaW5nLiAgaWYgc3RyLT5wdHIgaXMgTlVMTCwgcmV0dXJuIE5vbmUgKi8KKy8qIHJldHVybiBhIG5ldyBzdHJpbmcuICBpZiBzdHItPnN0ciBpcyBOVUxMLCByZXR1cm4gTm9uZSAqLwogUHlfTE9DQUxfSU5MSU5FKFB5T2JqZWN0ICopCiBTdWJTdHJpbmdfbmV3X29iamVjdChTdWJTdHJpbmcgKnN0cikKIHsKLSAgICBpZiAoc3RyLT5wdHIgPT0gTlVMTCkgeworICAgIGlmIChzdHItPnN0ciA9PSBOVUxMKSB7CiAgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKICAgICAgICAgcmV0dXJuIFB5X05vbmU7CiAgICAgfQotICAgIHJldHVybiBTVFJJTkdMSUJfTkVXKHN0ci0+cHRyLCBzdHItPmVuZCAtIHN0ci0+cHRyKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX1N1YnN0cmluZyhzdHItPnN0ciwgc3RyLT5zdGFydCwgc3RyLT5lbmQpOwogfQogCi0vKiByZXR1cm4gYSBuZXcgc3RyaW5nLiAgaWYgc3RyLT5wdHIgaXMgTlVMTCwgcmV0dXJuIE5vbmUgKi8KKy8qIHJldHVybiBhIG5ldyBzdHJpbmcuICBpZiBzdHItPnN0ciBpcyBOVUxMLCByZXR1cm4gTm9uZSAqLwogUHlfTE9DQUxfSU5MSU5FKFB5T2JqZWN0ICopCiBTdWJTdHJpbmdfbmV3X29iamVjdF9vcl9lbXB0eShTdWJTdHJpbmcgKnN0cikKIHsKLSAgICBpZiAoc3RyLT5wdHIgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gU1RSSU5HTElCX05FVyhOVUxMLCAwKTsKKyAgICBpZiAoc3RyLT5zdHIgPT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUHlVbmljb2RlX05ldygwLCAwKTsKICAgICB9Ci0gICAgcmV0dXJuIFNUUklOR0xJQl9ORVcoc3RyLT5wdHIsIHN0ci0+ZW5kIC0gc3RyLT5wdHIpOworICAgIHJldHVybiBTdWJTdHJpbmdfbmV3X29iamVjdChzdHIpOwogfQogCiAvKiBSZXR1cm4gMSBpZiBhbiBlcnJvciBoYXMgYmVlbiBkZXRlY3RlZCBzd2l0Y2hpbmcgYmV0d2VlbiBhdXRvbWF0aWMKQEAgLTEyMSw3NCArMTEwLDYgQEAKIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotLyoqKioqKioqKioqICAgIE91dHB1dCBzdHJpbmcgbWFuYWdlbWVudCBmdW5jdGlvbnMgICAgICAgKioqKioqKioqKioqKioqKi8KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLXR5cGVkZWYgc3RydWN0IHsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcHRyOwotICAgIFNUUklOR0xJQl9DSEFSICplbmQ7Ci0gICAgUHlPYmplY3QgKm9iajsKLSAgICBQeV9zc2l6ZV90IHNpemVfaW5jcmVtZW50OwotfSBPdXRwdXRTdHJpbmc7Ci0KLS8qIGluaXRpYWxpemUgYW4gT3V0cHV0U3RyaW5nIG9iamVjdCwgcmVzZXJ2aW5nIHNpemUgY2hhcmFjdGVycyAqLwotc3RhdGljIGludAotb3V0cHV0X2luaXRpYWxpemUoT3V0cHV0U3RyaW5nICpvdXRwdXQsIFB5X3NzaXplX3Qgc2l6ZSkKLXsKLSAgICBvdXRwdXQtPm9iaiA9IFNUUklOR0xJQl9ORVcoTlVMTCwgc2l6ZSk7Ci0gICAgaWYgKG91dHB1dC0+b2JqID09IE5VTEwpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgb3V0cHV0LT5wdHIgPSBTVFJJTkdMSUJfU1RSKG91dHB1dC0+b2JqKTsKLSAgICBvdXRwdXQtPmVuZCA9IFNUUklOR0xJQl9MRU4ob3V0cHV0LT5vYmopICsgb3V0cHV0LT5wdHI7Ci0gICAgb3V0cHV0LT5zaXplX2luY3JlbWVudCA9IElOSVRJQUxfU0laRV9JTkNSRU1FTlQ7Ci0KLSAgICByZXR1cm4gMTsKLX0KLQotLyoKLSAgICBvdXRwdXRfZXh0ZW5kIHJlYWxsb2NhdGVzIHRoZSBvdXRwdXQgc3RyaW5nIGJ1ZmZlci4KLSAgICBJdCByZXR1cm5zIGEgc3RhdHVzOiAgMCBmb3IgYSBmYWlsZWQgcmVhbGxvY2F0aW9uLAotICAgIDEgZm9yIHN1Y2Nlc3MuCi0qLwotCi1zdGF0aWMgaW50Ci1vdXRwdXRfZXh0ZW5kKE91dHB1dFN0cmluZyAqb3V0cHV0LCBQeV9zc2l6ZV90IGNvdW50KQotewotICAgIFNUUklOR0xJQl9DSEFSICpzdGFydHB0ciA9IFNUUklOR0xJQl9TVFIob3V0cHV0LT5vYmopOwotICAgIFB5X3NzaXplX3QgY3VybGVuID0gb3V0cHV0LT5wdHIgLSBzdGFydHB0cjsKLSAgICBQeV9zc2l6ZV90IG1heGxlbiA9IGN1cmxlbiArIGNvdW50ICsgb3V0cHV0LT5zaXplX2luY3JlbWVudDsKLQotICAgIGlmIChTVFJJTkdMSUJfUkVTSVpFKCZvdXRwdXQtPm9iaiwgbWF4bGVuKSA8IDApCi0gICAgICAgIHJldHVybiAwOwotICAgIHN0YXJ0cHRyID0gU1RSSU5HTElCX1NUUihvdXRwdXQtPm9iaik7Ci0gICAgb3V0cHV0LT5wdHIgPSBzdGFydHB0ciArIGN1cmxlbjsKLSAgICBvdXRwdXQtPmVuZCA9IHN0YXJ0cHRyICsgbWF4bGVuOwotICAgIGlmIChvdXRwdXQtPnNpemVfaW5jcmVtZW50IDwgTUFYX1NJWkVfSU5DUkVNRU5UKQotICAgICAgICBvdXRwdXQtPnNpemVfaW5jcmVtZW50ICo9IFNJWkVfTVVMVElQTElFUjsKLSAgICByZXR1cm4gMTsKLX0KLQotLyoKLSAgICBvdXRwdXRfZGF0YSBkdW1wcyBjaGFyYWN0ZXJzIGludG8gb3VyIG91dHB1dCBzdHJpbmcKLSAgICBidWZmZXIuCi0KLSAgICBJbiBzb21lIGNhc2VzLCBpdCBoYXMgdG8gcmVhbGxvY2F0ZSB0aGUgc3RyaW5nLgotCi0gICAgSXQgcmV0dXJucyBhIHN0YXR1czogIDAgZm9yIGEgZmFpbGVkIHJlYWxsb2NhdGlvbiwKLSAgICAxIGZvciBzdWNjZXNzLgotKi8KLXN0YXRpYyBpbnQKLW91dHB1dF9kYXRhKE91dHB1dFN0cmluZyAqb3V0cHV0LCBjb25zdCBTVFJJTkdMSUJfQ0hBUiAqcywgUHlfc3NpemVfdCBjb3VudCkKLXsKLSAgICBpZiAoKGNvdW50ID4gb3V0cHV0LT5lbmQgLSBvdXRwdXQtPnB0cikgJiYgIW91dHB1dF9leHRlbmQob3V0cHV0LCBjb3VudCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIG1lbWNweShvdXRwdXQtPnB0ciwgcywgY291bnQgKiBzaXplb2YoU1RSSU5HTElCX0NIQVIpKTsKLSAgICBvdXRwdXQtPnB0ciArPSBjb3VudDsKLSAgICByZXR1cm4gMTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qKioqKioqKioqKiAgRm9ybWF0IHN0cmluZyBwYXJzaW5nIC0tIGludGVnZXJzIGFuZCBpZGVudGlmaWVycyAqKioqKioqKiovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCkBAIC0xOTcsMzEgKzExOCwyOCBAQAogewogICAgIFB5X3NzaXplX3QgYWNjdW11bGF0b3IgPSAwOwogICAgIFB5X3NzaXplX3QgZGlnaXR2YWw7Ci0gICAgUHlfc3NpemVfdCBvbGRhY2N1bXVsYXRvcjsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcDsKKyAgICBQeV9zc2l6ZV90IGk7CiAKICAgICAvKiBlbXB0eSBzdHJpbmcgaXMgYW4gZXJyb3IgKi8KLSAgICBpZiAoc3RyLT5wdHIgPj0gc3RyLT5lbmQpCisgICAgaWYgKHN0ci0+c3RhcnQgPj0gc3RyLT5lbmQpCiAgICAgICAgIHJldHVybiAtMTsKIAotICAgIGZvciAocCA9IHN0ci0+cHRyOyBwIDwgc3RyLT5lbmQ7IHArKykgewotICAgICAgICBkaWdpdHZhbCA9IFNUUklOR0xJQl9UT0RFQ0lNQUwoKnApOworICAgIGZvciAoaSA9IHN0ci0+c3RhcnQ7IGkgPCBzdHItPmVuZDsgaSsrKSB7CisgICAgICAgIGRpZ2l0dmFsID0gUHlfVU5JQ09ERV9UT0RFQ0lNQUwoUHlVbmljb2RlX1JFQURfQ0hBUihzdHItPnN0ciwgaSkpOwogICAgICAgICBpZiAoZGlnaXR2YWwgPCAwKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAvKgotICAgICAgICAgICBUaGlzIHRyaWNrIHdhcyBjb3BpZWQgZnJvbSBvbGQgVW5pY29kZSBmb3JtYXQgY29kZS4gIEl0J3MgY3V0ZSwKLSAgICAgICAgICAgYnV0IHdvdWxkIHJlYWxseSBzdWNrIG9uIGFuIG9sZCBtYWNoaW5lIHdpdGggYSBzbG93IGRpdmlkZQotICAgICAgICAgICBpbXBsZW1lbnRhdGlvbi4gIEZvcnR1bmF0ZWx5LCBpbiB0aGUgbm9ybWFsIGNhc2Ugd2UgZG8gbm90Ci0gICAgICAgICAgIGV4cGVjdCB0b28gbWFueSBkaWdpdHMuCisgICAgICAgICAgIERldGVjdCBwb3NzaWJsZSBvdmVyZmxvdyBiZWZvcmUgaXQgaGFwcGVuczoKKworICAgICAgICAgICAgICBhY2N1bXVsYXRvciAqIDEwICsgZGlnaXR2YWwgPiBQWV9TU0laRV9UX01BWCBpZiBhbmQgb25seSBpZgorICAgICAgICAgICAgICBhY2N1bXVsYXRvciA+IChQWV9TU0laRV9UX01BWCAtIGRpZ2l0dmFsKSAvIDEwLgogICAgICAgICAqLwotICAgICAgICBvbGRhY2N1bXVsYXRvciA9IGFjY3VtdWxhdG9yOwotICAgICAgICBhY2N1bXVsYXRvciAqPSAxMDsKLSAgICAgICAgaWYgKChhY2N1bXVsYXRvcisxMCkvMTAgIT0gb2xkYWNjdW11bGF0b3IrMSkgeworICAgICAgICBpZiAoYWNjdW11bGF0b3IgPiAoUFlfU1NJWkVfVF9NQVggLSBkaWdpdHZhbCkgLyAxMCkgewogICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIlRvbyBtYW55IGRlY2ltYWwgZGlnaXRzIGluIGZvcm1hdCBzdHJpbmciKTsKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgfQotICAgICAgICBhY2N1bXVsYXRvciArPSBkaWdpdHZhbDsKKyAgICAgICAgYWNjdW11bGF0b3IgPSBhY2N1bXVsYXRvciAqIDEwICsgZGlnaXR2YWw7CiAgICAgfQogICAgIHJldHVybiBhY2N1bXVsYXRvcjsKIH0KQEAgLTI4MiwzNCArMjAwLDM2IEBACiAgICAgICAgbGlmZXRpbWUgb2YgdGhlIGl0ZXJhdG9yLiAgY2FuIGJlIGVtcHR5ICovCiAgICAgU3ViU3RyaW5nIHN0cjsKIAotICAgIC8qIHBvaW50ZXIgdG8gd2hlcmUgd2UgYXJlIGluc2lkZSBmaWVsZF9uYW1lICovCi0gICAgU1RSSU5HTElCX0NIQVIgKnB0cjsKKyAgICAvKiBpbmRleCB0byB3aGVyZSB3ZSBhcmUgaW5zaWRlIGZpZWxkX25hbWUgKi8KKyAgICBQeV9zc2l6ZV90IGluZGV4OwogfSBGaWVsZE5hbWVJdGVyYXRvcjsKIAogCiBzdGF0aWMgaW50Ci1GaWVsZE5hbWVJdGVyYXRvcl9pbml0KEZpZWxkTmFtZUl0ZXJhdG9yICpzZWxmLCBTVFJJTkdMSUJfQ0hBUiAqcHRyLAotICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbikKK0ZpZWxkTmFtZUl0ZXJhdG9yX2luaXQoRmllbGROYW1lSXRlcmF0b3IgKnNlbGYsIFB5T2JqZWN0ICpzLAorICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCkKIHsKLSAgICBTdWJTdHJpbmdfaW5pdCgmc2VsZi0+c3RyLCBwdHIsIGxlbik7Ci0gICAgc2VsZi0+cHRyID0gc2VsZi0+c3RyLnB0cjsKKyAgICBTdWJTdHJpbmdfaW5pdCgmc2VsZi0+c3RyLCBzLCBzdGFydCwgZW5kKTsKKyAgICBzZWxmLT5pbmRleCA9IHN0YXJ0OwogICAgIHJldHVybiAxOwogfQogCiBzdGF0aWMgaW50CiBfRmllbGROYW1lSXRlcmF0b3JfYXR0cihGaWVsZE5hbWVJdGVyYXRvciAqc2VsZiwgU3ViU3RyaW5nICpuYW1lKQogewotICAgIFNUUklOR0xJQl9DSEFSIGM7CisgICAgUHlfVUNTNCBjOwogCi0gICAgbmFtZS0+cHRyID0gc2VsZi0+cHRyOworICAgIG5hbWUtPnN0ciA9IHNlbGYtPnN0ci5zdHI7CisgICAgbmFtZS0+c3RhcnQgPSBzZWxmLT5pbmRleDsKIAogICAgIC8qIHJldHVybiBldmVyeXRoaW5nIHVudGlsICcuJyBvciAnWycgKi8KLSAgICB3aGlsZSAoc2VsZi0+cHRyIDwgc2VsZi0+c3RyLmVuZCkgewotICAgICAgICBzd2l0Y2ggKGMgPSAqc2VsZi0+cHRyKyspIHsKKyAgICB3aGlsZSAoc2VsZi0+aW5kZXggPCBzZWxmLT5zdHIuZW5kKSB7CisgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHNlbGYtPnN0ci5zdHIsIHNlbGYtPmluZGV4KyspOworICAgICAgICBzd2l0Y2ggKGMpIHsKICAgICAgICAgY2FzZSAnWyc6CiAgICAgICAgIGNhc2UgJy4nOgogICAgICAgICAgICAgLyogYmFja3VwIHNvIHRoYXQgd2UgdGhpcyBjaGFyYWN0ZXIgd2lsbCBiZSBzZWVuIG5leHQgdGltZSAqLwotICAgICAgICAgICAgc2VsZi0+cHRyLS07CisgICAgICAgICAgICBzZWxmLT5pbmRleC0tOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTMxNyw3ICsyMzcsNyBAQAogICAgICAgICBicmVhazsKICAgICB9CiAgICAgLyogZW5kIG9mIHN0cmluZyBpcyBva2F5ICovCi0gICAgbmFtZS0+ZW5kID0gc2VsZi0+cHRyOworICAgIG5hbWUtPmVuZCA9IHNlbGYtPmluZGV4OwogICAgIHJldHVybiAxOwogfQogCkBAIC0zMjUsMTMgKzI0NSwxNSBAQAogX0ZpZWxkTmFtZUl0ZXJhdG9yX2l0ZW0oRmllbGROYW1lSXRlcmF0b3IgKnNlbGYsIFN1YlN0cmluZyAqbmFtZSkKIHsKICAgICBpbnQgYnJhY2tldF9zZWVuID0gMDsKLSAgICBTVFJJTkdMSUJfQ0hBUiBjOworICAgIFB5X1VDUzQgYzsKIAotICAgIG5hbWUtPnB0ciA9IHNlbGYtPnB0cjsKKyAgICBuYW1lLT5zdHIgPSBzZWxmLT5zdHIuc3RyOworICAgIG5hbWUtPnN0YXJ0ID0gc2VsZi0+aW5kZXg7CiAKICAgICAvKiByZXR1cm4gZXZlcnl0aGluZyB1bnRpbCAnXScgKi8KLSAgICB3aGlsZSAoc2VsZi0+cHRyIDwgc2VsZi0+c3RyLmVuZCkgewotICAgICAgICBzd2l0Y2ggKGMgPSAqc2VsZi0+cHRyKyspIHsKKyAgICB3aGlsZSAoc2VsZi0+aW5kZXggPCBzZWxmLT5zdHIuZW5kKSB7CisgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHNlbGYtPnN0ci5zdHIsIHNlbGYtPmluZGV4KyspOworICAgICAgICBzd2l0Y2ggKGMpIHsKICAgICAgICAgY2FzZSAnXSc6CiAgICAgICAgICAgICBicmFja2V0X3NlZW4gPSAxOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0zNDgsNyArMjcwLDcgQEAKIAogICAgIC8qIGVuZCBvZiBzdHJpbmcgaXMgb2theSAqLwogICAgIC8qIGRvbid0IGluY2x1ZGUgdGhlICddJyAqLwotICAgIG5hbWUtPmVuZCA9IHNlbGYtPnB0ci0xOworICAgIG5hbWUtPmVuZCA9IHNlbGYtPmluZGV4LTE7CiAgICAgcmV0dXJuIDE7CiB9CiAKQEAgLTM1OCwxMCArMjgwLDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKm5hbWVfaWR4LCBTdWJTdHJpbmcgKm5hbWUpCiB7CiAgICAgLyogY2hlY2sgYXQgZW5kIG9mIGlucHV0ICovCi0gICAgaWYgKHNlbGYtPnB0ciA+PSBzZWxmLT5zdHIuZW5kKQorICAgIGlmIChzZWxmLT5pbmRleCA+PSBzZWxmLT5zdHIuZW5kKQogICAgICAgICByZXR1cm4gMTsKIAotICAgIHN3aXRjaCAoKnNlbGYtPnB0cisrKSB7CisgICAgc3dpdGNoIChQeVVuaWNvZGVfUkVBRF9DSEFSKHNlbGYtPnN0ci5zdHIsIHNlbGYtPmluZGV4KyspKSB7CiAgICAgY2FzZSAnLic6CiAgICAgICAgICppc19hdHRyaWJ1dGUgPSAxOwogICAgICAgICBpZiAoX0ZpZWxkTmFtZUl0ZXJhdG9yX2F0dHIoc2VsZiwgbmFtZSkgPT0gMCkKQEAgLTM4NCw3ICszMDYsNyBAQAogICAgIH0KIAogICAgIC8qIGVtcHR5IHN0cmluZyBpcyBhbiBlcnJvciAqLwotICAgIGlmIChuYW1lLT5wdHIgPT0gbmFtZS0+ZW5kKSB7CisgICAgaWYgKG5hbWUtPnN0YXJ0ID09IG5hbWUtPmVuZCkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIkVtcHR5IGF0dHJpYnV0ZSBpbiBmb3JtYXQgc3RyaW5nIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTQwMCwyNCArMzIyLDIzIEBACiAgICAgICAgICAgICdyZXN0JyBpcyBhbiBpdGVyYXRvciB0byByZXR1cm4gdGhlIHJlc3QKICovCiBzdGF0aWMgaW50Ci1maWVsZF9uYW1lX3NwbGl0KFNUUklOR0xJQl9DSEFSICpwdHIsIFB5X3NzaXplX3QgbGVuLCBTdWJTdHJpbmcgKmZpcnN0LAorZmllbGRfbmFtZV9zcGxpdChQeU9iamVjdCAqc3RyLCBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCwgU3ViU3RyaW5nICpmaXJzdCwKICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqZmlyc3RfaWR4LCBGaWVsZE5hbWVJdGVyYXRvciAqcmVzdCwKICAgICAgICAgICAgICAgICAgQXV0b051bWJlciAqYXV0b19udW1iZXIpCiB7Ci0gICAgU1RSSU5HTElCX0NIQVIgYzsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqcCA9IHB0cjsKLSAgICBTVFJJTkdMSUJfQ0hBUiAqZW5kID0gcHRyICsgbGVuOworICAgIFB5X1VDUzQgYzsKKyAgICBQeV9zc2l6ZV90IGkgPSBzdGFydDsKICAgICBpbnQgZmllbGRfbmFtZV9pc19lbXB0eTsKICAgICBpbnQgdXNpbmdfbnVtZXJpY19pbmRleDsKIAogICAgIC8qIGZpbmQgdGhlIHBhcnQgdXAgdW50aWwgdGhlIGZpcnN0ICcuJyBvciAnWycgKi8KLSAgICB3aGlsZSAocCA8IGVuZCkgewotICAgICAgICBzd2l0Y2ggKGMgPSAqcCsrKSB7CisgICAgd2hpbGUgKGkgPCBlbmQpIHsKKyAgICAgICAgc3dpdGNoIChjID0gUHlVbmljb2RlX1JFQURfQ0hBUihzdHIsIGkrKykpIHsKICAgICAgICAgY2FzZSAnWyc6CiAgICAgICAgIGNhc2UgJy4nOgogICAgICAgICAgICAgLyogYmFja3VwIHNvIHRoYXQgd2UgdGhpcyBjaGFyYWN0ZXIgaXMgYXZhaWxhYmxlIHRvIHRoZQogICAgICAgICAgICAgICAgInJlc3QiIGl0ZXJhdG9yICovCi0gICAgICAgICAgICBwLS07CisgICAgICAgICAgICBpLS07CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNDI2LDE1ICszNDcsMTUgQEAKICAgICB9CiAKICAgICAvKiBzZXQgdXAgdGhlIHJldHVybiB2YWx1ZXMgKi8KLSAgICBTdWJTdHJpbmdfaW5pdChmaXJzdCwgcHRyLCBwIC0gcHRyKTsKLSAgICBGaWVsZE5hbWVJdGVyYXRvcl9pbml0KHJlc3QsIHAsIGVuZCAtIHApOworICAgIFN1YlN0cmluZ19pbml0KGZpcnN0LCBzdHIsIHN0YXJ0LCBpKTsKKyAgICBGaWVsZE5hbWVJdGVyYXRvcl9pbml0KHJlc3QsIHN0ciwgaSwgZW5kKTsKIAogICAgIC8qIHNlZSBpZiAiZmlyc3QiIGlzIGFuIGludGVnZXIsIGluIHdoaWNoIGNhc2UgaXQncyB1c2VkIGFzIGFuIGluZGV4ICovCiAgICAgKmZpcnN0X2lkeCA9IGdldF9pbnRlZ2VyKGZpcnN0KTsKICAgICBpZiAoKmZpcnN0X2lkeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGZpZWxkX25hbWVfaXNfZW1wdHkgPSBmaXJzdC0+cHRyID49IGZpcnN0LT5lbmQ7CisgICAgZmllbGRfbmFtZV9pc19lbXB0eSA9IGZpcnN0LT5zdGFydCA+PSBmaXJzdC0+ZW5kOwogCiAgICAgLyogSWYgdGhlIGZpZWxkIG5hbWUgaXMgb21pdHRlZCBvciBpZiB3ZSBoYXZlIGEgbnVtZXJpYyBpbmRleAogICAgICAgIHNwZWNpZmllZCwgdGhlbiB3ZSdyZSBkb2luZyBudW1lcmljIGluZGV4aW5nIGludG8gYXJncy4gKi8KQEAgLTQ4OSw3ICs0MTAsNyBAQAogICAgIFB5X3NzaXplX3QgaW5kZXg7CiAgICAgRmllbGROYW1lSXRlcmF0b3IgcmVzdDsKIAotICAgIGlmICghZmllbGRfbmFtZV9zcGxpdChpbnB1dC0+cHRyLCBpbnB1dC0+ZW5kIC0gaW5wdXQtPnB0ciwgJmZpcnN0LAorICAgIGlmICghZmllbGRfbmFtZV9zcGxpdChpbnB1dC0+c3RyLCBpbnB1dC0+c3RhcnQsIGlucHV0LT5lbmQsICZmaXJzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgJmluZGV4LCAmcmVzdCwgYXV0b19udW1iZXIpKSB7CiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQpAQCAtNTczLDM5ICs0OTQsNDEgQEAKICAgICBhcHBlbmRzIHRvIHRoZSBvdXRwdXQuCiAqLwogc3RhdGljIGludAotcmVuZGVyX2ZpZWxkKFB5T2JqZWN0ICpmaWVsZG9iaiwgU3ViU3RyaW5nICpmb3JtYXRfc3BlYywgT3V0cHV0U3RyaW5nICpvdXRwdXQpCityZW5kZXJfZmllbGQoUHlPYmplY3QgKmZpZWxkb2JqLCBTdWJTdHJpbmcgKmZvcm1hdF9zcGVjLCBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpCiB7CiAgICAgaW50IG9rID0gMDsKICAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKICAgICBQeU9iamVjdCAqZm9ybWF0X3NwZWNfb2JqZWN0ID0gTlVMTDsKLSAgICBQeU9iamVjdCAqKCpmb3JtYXR0ZXIpKFB5T2JqZWN0ICosIFNUUklOR0xJQl9DSEFSICosIFB5X3NzaXplX3QpID0gTlVMTDsKLSAgICBTVFJJTkdMSUJfQ0hBUiogZm9ybWF0X3NwZWNfc3RhcnQgPSBmb3JtYXRfc3BlYy0+cHRyID8KLSAgICAgICAgICAgIGZvcm1hdF9zcGVjLT5wdHIgOiBOVUxMOwotICAgIFB5X3NzaXplX3QgZm9ybWF0X3NwZWNfbGVuID0gZm9ybWF0X3NwZWMtPnB0ciA/Ci0gICAgICAgICAgICBmb3JtYXRfc3BlYy0+ZW5kIC0gZm9ybWF0X3NwZWMtPnB0ciA6IDA7CisgICAgaW50ICgqZm9ybWF0dGVyKSAoX1B5VW5pY29kZVdyaXRlciosIFB5T2JqZWN0ICosIFB5T2JqZWN0ICosIFB5X3NzaXplX3QsIFB5X3NzaXplX3QpID0gTlVMTDsKKyAgICBpbnQgZXJyOwogCiAgICAgLyogSWYgd2Uga25vdyB0aGUgdHlwZSBleGFjdGx5LCBza2lwIHRoZSBsb29rdXAgb2YgX19mb3JtYXRfXyBhbmQganVzdAogICAgICAgIGNhbGwgdGhlIGZvcm1hdHRlciBkaXJlY3RseS4gKi8KICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QoZmllbGRvYmopKQotICAgICAgICBmb3JtYXR0ZXIgPSBfUHlVbmljb2RlX0Zvcm1hdEFkdmFuY2VkOworICAgICAgICBmb3JtYXR0ZXIgPSBfUHlVbmljb2RlX0Zvcm1hdEFkdmFuY2VkV3JpdGVyOwogICAgIGVsc2UgaWYgKFB5TG9uZ19DaGVja0V4YWN0KGZpZWxkb2JqKSkKLSAgICAgICAgZm9ybWF0dGVyID1fUHlMb25nX0Zvcm1hdEFkdmFuY2VkOworICAgICAgICBmb3JtYXR0ZXIgPSBfUHlMb25nX0Zvcm1hdEFkdmFuY2VkV3JpdGVyOwogICAgIGVsc2UgaWYgKFB5RmxvYXRfQ2hlY2tFeGFjdChmaWVsZG9iaikpCi0gICAgICAgIGZvcm1hdHRlciA9IF9QeUZsb2F0X0Zvcm1hdEFkdmFuY2VkOwotCi0gICAgLyogWFhYOiBmb3IgMi42LCBjb252ZXJ0IGZvcm1hdF9zcGVjIHRvIHRoZSBhcHByb3ByaWF0ZSB0eXBlCi0gICAgICAgKHVuaWNvZGUsIHN0cikgKi8KKyAgICAgICAgZm9ybWF0dGVyID0gX1B5RmxvYXRfRm9ybWF0QWR2YW5jZWRXcml0ZXI7CisgICAgZWxzZSBpZiAoUHlDb21wbGV4X0NoZWNrRXhhY3QoZmllbGRvYmopKQorICAgICAgICBmb3JtYXR0ZXIgPSBfUHlDb21wbGV4X0Zvcm1hdEFkdmFuY2VkV3JpdGVyOwogCiAgICAgaWYgKGZvcm1hdHRlcikgewogICAgICAgICAvKiB3ZSBrbm93IGV4YWN0bHkgd2hpY2ggZm9ybWF0dGVyIHdpbGwgYmUgY2FsbGVkIHdoZW4gX19mb3JtYXRfXyBpcwogICAgICAgICAgICBsb29rZWQgdXAsIHNvIGNhbGwgaXQgZGlyZWN0bHksIGluc3RlYWQuICovCi0gICAgICAgIHJlc3VsdCA9IGZvcm1hdHRlcihmaWVsZG9iaiwgZm9ybWF0X3NwZWNfc3RhcnQsIGZvcm1hdF9zcGVjX2xlbik7CisgICAgICAgIGVyciA9IGZvcm1hdHRlcih3cml0ZXIsIGZpZWxkb2JqLCBmb3JtYXRfc3BlYy0+c3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0X3NwZWMtPnN0YXJ0LCBmb3JtYXRfc3BlYy0+ZW5kKTsKKyAgICAgICAgcmV0dXJuIChlcnIgPT0gMCk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICAvKiBXZSBuZWVkIHRvIGNyZWF0ZSBhbiBvYmplY3Qgb3V0IG9mIHRoZSBwb2ludGVycyB3ZSBoYXZlLCBiZWNhdXNlCiAgICAgICAgICAgIF9fZm9ybWF0X18gdGFrZXMgYSBzdHJpbmcvdW5pY29kZSBvYmplY3QgZm9yIGZvcm1hdF9zcGVjLiAqLwotICAgICAgICBmb3JtYXRfc3BlY19vYmplY3QgPSBTVFJJTkdMSUJfTkVXKGZvcm1hdF9zcGVjX3N0YXJ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9zcGVjX2xlbik7CisgICAgICAgIGlmIChmb3JtYXRfc3BlYy0+c3RyKQorICAgICAgICAgICAgZm9ybWF0X3NwZWNfb2JqZWN0ID0gUHlVbmljb2RlX1N1YnN0cmluZyhmb3JtYXRfc3BlYy0+c3RyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfc3BlYy0+c3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9zcGVjLT5lbmQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBmb3JtYXRfc3BlY19vYmplY3QgPSBQeVVuaWNvZGVfTmV3KDAsIDApOwogICAgICAgICBpZiAoZm9ybWF0X3NwZWNfb2JqZWN0ID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGRvbmU7CiAKQEAgLTYxNCwyNCArNTM3LDEwIEBACiAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQogICAgICAgICBnb3RvIGRvbmU7CiAKLSNpZiBQWV9WRVJTSU9OX0hFWCA+PSAweDAzMDAwMDAwCi0gICAgYXNzZXJ0KFB5VW5pY29kZV9DaGVjayhyZXN1bHQpKTsKLSNlbHNlCi0gICAgYXNzZXJ0KFB5Qnl0ZXNfQ2hlY2socmVzdWx0KSB8fCBQeVVuaWNvZGVfQ2hlY2socmVzdWx0KSk7CisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfV3JpdGVTdHIod3JpdGVyLCByZXN1bHQpID09IC0xKQorICAgICAgICBnb3RvIGRvbmU7CisgICAgb2sgPSAxOwogCi0gICAgLyogQ29udmVydCByZXN1bHQgdG8gb3VyIHR5cGUuICBXZSBjb3VsZCBiZSBzdHIsIGFuZCByZXN1bHQgY291bGQKLSAgICAgICBiZSB1bmljb2RlICovCi0gICAgewotICAgICAgICBQeU9iamVjdCAqdG1wID0gU1RSSU5HTElCX1RPU1RSKHJlc3VsdCk7Ci0gICAgICAgIGlmICh0bXAgPT0gTlVMTCkKLSAgICAgICAgICAgIGdvdG8gZG9uZTsKLSAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgIHJlc3VsdCA9IHRtcDsKLSAgICB9Ci0jZW5kaWYKLQotICAgIG9rID0gb3V0cHV0X2RhdGEob3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgU1RSSU5HTElCX1NUUihyZXN1bHQpLCBTVFJJTkdMSUJfTEVOKHJlc3VsdCkpOwogZG9uZToKICAgICBQeV9YREVDUkVGKGZvcm1hdF9zcGVjX29iamVjdCk7CiAgICAgUHlfWERFQ1JFRihyZXN1bHQpOwpAQCAtNjQwLDIzICs1NDksMjQgQEAKIAogc3RhdGljIGludAogcGFyc2VfZmllbGQoU3ViU3RyaW5nICpzdHIsIFN1YlN0cmluZyAqZmllbGRfbmFtZSwgU3ViU3RyaW5nICpmb3JtYXRfc3BlYywKLSAgICAgICAgICAgIFNUUklOR0xJQl9DSEFSICpjb252ZXJzaW9uKQorICAgICAgICAgICAgUHlfVUNTNCAqY29udmVyc2lvbikKIHsKICAgICAvKiBOb3RlIHRoaXMgZnVuY3Rpb24gd29ya3MgaWYgdGhlIGZpZWxkIG5hbWUgaXMgemVybyBsZW5ndGgsCiAgICAgICAgd2hpY2ggaXMgZ29vZC4gIFplcm8gbGVuZ3RoIGZpZWxkIG5hbWVzIGFyZSBoYW5kbGVkIGxhdGVyLCBpbgogICAgICAgIGZpZWxkX25hbWVfc3BsaXQuICovCiAKLSAgICBTVFJJTkdMSUJfQ0hBUiBjID0gMDsKKyAgICBQeV9VQ1M0IGMgPSAwOwogCiAgICAgLyogaW5pdGlhbGl6ZSB0aGVzZSwgYXMgdGhleSBtYXkgYmUgZW1wdHkgKi8KICAgICAqY29udmVyc2lvbiA9ICdcMCc7Ci0gICAgU3ViU3RyaW5nX2luaXQoZm9ybWF0X3NwZWMsIE5VTEwsIDApOworICAgIFN1YlN0cmluZ19pbml0KGZvcm1hdF9zcGVjLCBOVUxMLCAwLCAwKTsKIAogICAgIC8qIFNlYXJjaCBmb3IgdGhlIGZpZWxkIG5hbWUuICBpdCdzIHRlcm1pbmF0ZWQgYnkgdGhlIGVuZCBvZgogICAgICAgIHRoZSBzdHJpbmcsIG9yIGEgJzonIG9yICchJyAqLwotICAgIGZpZWxkX25hbWUtPnB0ciA9IHN0ci0+cHRyOwotICAgIHdoaWxlIChzdHItPnB0ciA8IHN0ci0+ZW5kKSB7Ci0gICAgICAgIHN3aXRjaCAoYyA9ICooc3RyLT5wdHIrKykpIHsKKyAgICBmaWVsZF9uYW1lLT5zdHIgPSBzdHItPnN0cjsKKyAgICBmaWVsZF9uYW1lLT5zdGFydCA9IHN0ci0+c3RhcnQ7CisgICAgd2hpbGUgKHN0ci0+c3RhcnQgPCBzdHItPmVuZCkgeworICAgICAgICBzd2l0Y2ggKChjID0gUHlVbmljb2RlX1JFQURfQ0hBUihzdHItPnN0ciwgc3RyLT5zdGFydCsrKSkpIHsKICAgICAgICAgY2FzZSAnOic6CiAgICAgICAgIGNhc2UgJyEnOgogICAgICAgICAgICAgYnJlYWs7CkBAIC02NjksMjYgKzU3OSwyNyBAQAogICAgIGlmIChjID09ICchJyB8fCBjID09ICc6JykgewogICAgICAgICAvKiB3ZSBoYXZlIGEgZm9ybWF0IHNwZWNpZmllciBhbmQvb3IgYSBjb252ZXJzaW9uICovCiAgICAgICAgIC8qIGRvbid0IGluY2x1ZGUgdGhlIGxhc3QgY2hhcmFjdGVyICovCi0gICAgICAgIGZpZWxkX25hbWUtPmVuZCA9IHN0ci0+cHRyLTE7CisgICAgICAgIGZpZWxkX25hbWUtPmVuZCA9IHN0ci0+c3RhcnQtMTsKIAogICAgICAgICAvKiB0aGUgZm9ybWF0IHNwZWNpZmllciBpcyB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nICovCi0gICAgICAgIGZvcm1hdF9zcGVjLT5wdHIgPSBzdHItPnB0cjsKKyAgICAgICAgZm9ybWF0X3NwZWMtPnN0ciA9IHN0ci0+c3RyOworICAgICAgICBmb3JtYXRfc3BlYy0+c3RhcnQgPSBzdHItPnN0YXJ0OwogICAgICAgICBmb3JtYXRfc3BlYy0+ZW5kID0gc3RyLT5lbmQ7CiAKICAgICAgICAgLyogc2VlIGlmIHRoZXJlJ3MgYSBjb252ZXJzaW9uIHNwZWNpZmllciAqLwogICAgICAgICBpZiAoYyA9PSAnIScpIHsKICAgICAgICAgICAgIC8qIHRoZXJlIG11c3QgYmUgYW5vdGhlciBjaGFyYWN0ZXIgcHJlc2VudCAqLwotICAgICAgICAgICAgaWYgKGZvcm1hdF9zcGVjLT5wdHIgPj0gZm9ybWF0X3NwZWMtPmVuZCkgeworICAgICAgICAgICAgaWYgKGZvcm1hdF9zcGVjLT5zdGFydCA+PSBmb3JtYXRfc3BlYy0+ZW5kKSB7CiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbmQgb2YgZm9ybWF0IHdoaWxlIGxvb2tpbmcgZm9yIGNvbnZlcnNpb24gIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3BlY2lmaWVyIik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAqY29udmVyc2lvbiA9ICooZm9ybWF0X3NwZWMtPnB0cisrKTsKKyAgICAgICAgICAgICpjb252ZXJzaW9uID0gUHlVbmljb2RlX1JFQURfQ0hBUihmb3JtYXRfc3BlYy0+c3RyLCBmb3JtYXRfc3BlYy0+c3RhcnQrKyk7CiAKICAgICAgICAgICAgIC8qIGlmIHRoZXJlIGlzIGFub3RoZXIgY2hhcmFjdGVyLCBpdCBtdXN0IGJlIGEgY29sb24gKi8KLSAgICAgICAgICAgIGlmIChmb3JtYXRfc3BlYy0+cHRyIDwgZm9ybWF0X3NwZWMtPmVuZCkgewotICAgICAgICAgICAgICAgIGMgPSAqKGZvcm1hdF9zcGVjLT5wdHIrKyk7CisgICAgICAgICAgICBpZiAoZm9ybWF0X3NwZWMtPnN0YXJ0IDwgZm9ybWF0X3NwZWMtPmVuZCkgeworICAgICAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKGZvcm1hdF9zcGVjLT5zdHIsIGZvcm1hdF9zcGVjLT5zdGFydCsrKTsKICAgICAgICAgICAgICAgICBpZiAoYyAhPSAnOicpIHsKICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQgJzonIGFmdGVyIGZvcm1hdCBzcGVjaWZpZXIiKTsKQEAgLTY5OSw3ICs2MTAsNyBAQAogICAgIH0KICAgICBlbHNlCiAgICAgICAgIC8qIGVuZCBvZiBzdHJpbmcsIHRoZXJlJ3Mgbm8gZm9ybWF0X3NwZWMgb3IgY29udmVyc2lvbiAqLwotICAgICAgICBmaWVsZF9uYW1lLT5lbmQgPSBzdHItPnB0cjsKKyAgICAgICAgZmllbGRfbmFtZS0+ZW5kID0gc3RyLT5zdGFydDsKIAogICAgIHJldHVybiAxOwogfQpAQCAtNzE4LDkgKzYyOSwxMCBAQAogfSBNYXJrdXBJdGVyYXRvcjsKIAogc3RhdGljIGludAotTWFya3VwSXRlcmF0b3JfaW5pdChNYXJrdXBJdGVyYXRvciAqc2VsZiwgU1RSSU5HTElCX0NIQVIgKnB0ciwgUHlfc3NpemVfdCBsZW4pCitNYXJrdXBJdGVyYXRvcl9pbml0KE1hcmt1cEl0ZXJhdG9yICpzZWxmLCBQeU9iamVjdCAqc3RyLAorICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCkKIHsKLSAgICBTdWJTdHJpbmdfaW5pdCgmc2VsZi0+c3RyLCBwdHIsIGxlbik7CisgICAgU3ViU3RyaW5nX2luaXQoJnNlbGYtPnN0ciwgc3RyLCBzdGFydCwgZW5kKTsKICAgICByZXR1cm4gMTsKIH0KIApAQCAtNzI5LDMwICs2NDEsMzAgQEAKIHN0YXRpYyBpbnQKIE1hcmt1cEl0ZXJhdG9yX25leHQoTWFya3VwSXRlcmF0b3IgKnNlbGYsIFN1YlN0cmluZyAqbGl0ZXJhbCwKICAgICAgICAgICAgICAgICAgICAgaW50ICpmaWVsZF9wcmVzZW50LCBTdWJTdHJpbmcgKmZpZWxkX25hbWUsCi0gICAgICAgICAgICAgICAgICAgIFN1YlN0cmluZyAqZm9ybWF0X3NwZWMsIFNUUklOR0xJQl9DSEFSICpjb252ZXJzaW9uLAorICAgICAgICAgICAgICAgICAgICBTdWJTdHJpbmcgKmZvcm1hdF9zcGVjLCBQeV9VQ1M0ICpjb252ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICBpbnQgKmZvcm1hdF9zcGVjX25lZWRzX2V4cGFuZGluZykKIHsKICAgICBpbnQgYXRfZW5kOwotICAgIFNUUklOR0xJQl9DSEFSIGMgPSAwOwotICAgIFNUUklOR0xJQl9DSEFSICpzdGFydDsKKyAgICBQeV9VQ1M0IGMgPSAwOworICAgIFB5X3NzaXplX3Qgc3RhcnQ7CiAgICAgaW50IGNvdW50OwogICAgIFB5X3NzaXplX3QgbGVuOwogICAgIGludCBtYXJrdXBfZm9sbG93cyA9IDA7CiAKICAgICAvKiBpbml0aWFsaXplIGFsbCBvZiB0aGUgb3V0cHV0IHZhcmlhYmxlcyAqLwotICAgIFN1YlN0cmluZ19pbml0KGxpdGVyYWwsIE5VTEwsIDApOwotICAgIFN1YlN0cmluZ19pbml0KGZpZWxkX25hbWUsIE5VTEwsIDApOwotICAgIFN1YlN0cmluZ19pbml0KGZvcm1hdF9zcGVjLCBOVUxMLCAwKTsKKyAgICBTdWJTdHJpbmdfaW5pdChsaXRlcmFsLCBOVUxMLCAwLCAwKTsKKyAgICBTdWJTdHJpbmdfaW5pdChmaWVsZF9uYW1lLCBOVUxMLCAwLCAwKTsKKyAgICBTdWJTdHJpbmdfaW5pdChmb3JtYXRfc3BlYywgTlVMTCwgMCwgMCk7CiAgICAgKmNvbnZlcnNpb24gPSAnXDAnOwogICAgICpmb3JtYXRfc3BlY19uZWVkc19leHBhbmRpbmcgPSAwOwogICAgICpmaWVsZF9wcmVzZW50ID0gMDsKIAogICAgIC8qIE5vIG1vcmUgaW5wdXQsIGVuZCBvZiBpdGVyYXRvci4gIFRoaXMgaXMgdGhlIG5vcm1hbCBleGl0CiAgICAgICAgcGF0aC4gKi8KLSAgICBpZiAoc2VsZi0+c3RyLnB0ciA+PSBzZWxmLT5zdHIuZW5kKQorICAgIGlmIChzZWxmLT5zdHIuc3RhcnQgPj0gc2VsZi0+c3RyLmVuZCkKICAgICAgICAgcmV0dXJuIDE7CiAKLSAgICBzdGFydCA9IHNlbGYtPnN0ci5wdHI7CisgICAgc3RhcnQgPSBzZWxmLT5zdHIuc3RhcnQ7CiAKICAgICAvKiBGaXJzdCByZWFkIGFueSBsaXRlcmFsIHRleHQuIFJlYWQgdW50aWwgdGhlIGVuZCBvZiBzdHJpbmcsIGFuCiAgICAgICAgZXNjYXBlZCAneycgb3IgJ30nLCBvciBhbiB1bmVzY2FwZWQgJ3snLiAgSW4gb3JkZXIgdG8gbmV2ZXIKQEAgLTc2MSw4ICs2NzMsOCBAQAogICAgICAgIGluY2x1ZGluZyB0aGUgYnJhY2UsIGJ1dCBubyBmb3JtYXQgb2JqZWN0LiAgVGhlIG5leHQgdGltZQogICAgICAgIHRocm91Z2gsIHdlJ2xsIHJldHVybiB0aGUgcmVzdCBvZiB0aGUgbGl0ZXJhbCwgc2tpcHBpbmcgcGFzdAogICAgICAgIHRoZSBzZWNvbmQgY29uc2VjdXRpdmUgYnJhY2UuICovCi0gICAgd2hpbGUgKHNlbGYtPnN0ci5wdHIgPCBzZWxmLT5zdHIuZW5kKSB7Ci0gICAgICAgIHN3aXRjaCAoYyA9ICooc2VsZi0+c3RyLnB0cisrKSkgeworICAgIHdoaWxlIChzZWxmLT5zdHIuc3RhcnQgPCBzZWxmLT5zdHIuZW5kKSB7CisgICAgICAgIHN3aXRjaCAoYyA9IFB5VW5pY29kZV9SRUFEX0NIQVIoc2VsZi0+c3RyLnN0ciwgc2VsZi0+c3RyLnN0YXJ0KyspKSB7CiAgICAgICAgIGNhc2UgJ3snOgogICAgICAgICBjYXNlICd9JzoKICAgICAgICAgICAgIG1hcmt1cF9mb2xsb3dzID0gMTsKQEAgLTc3MywxMCArNjg1LDEyIEBACiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGF0X2VuZCA9IHNlbGYtPnN0ci5wdHIgPj0gc2VsZi0+c3RyLmVuZDsKLSAgICBsZW4gPSBzZWxmLT5zdHIucHRyIC0gc3RhcnQ7CisgICAgYXRfZW5kID0gc2VsZi0+c3RyLnN0YXJ0ID49IHNlbGYtPnN0ci5lbmQ7CisgICAgbGVuID0gc2VsZi0+c3RyLnN0YXJ0IC0gc3RhcnQ7CiAKLSAgICBpZiAoKGMgPT0gJ30nKSAmJiAoYXRfZW5kIHx8IChjICE9ICpzZWxmLT5zdHIucHRyKSkpIHsKKyAgICBpZiAoKGMgPT0gJ30nKSAmJiAoYXRfZW5kIHx8CisgICAgICAgICAgICAgICAgICAgICAgIChjICE9IFB5VW5pY29kZV9SRUFEX0NIQVIoc2VsZi0+c3RyLnN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLT5zdHIuc3RhcnQpKSkpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJTaW5nbGUgJ30nIGVuY291bnRlcmVkICIKICAgICAgICAgICAgICAgICAgICAgICAgICJpbiBmb3JtYXQgc3RyaW5nIik7CiAgICAgICAgIHJldHVybiAwOwpAQCAtNzg3LDEwICs3MDEsMTAgQEAKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIGlmICghYXRfZW5kKSB7Ci0gICAgICAgIGlmIChjID09ICpzZWxmLT5zdHIucHRyKSB7CisgICAgICAgIGlmIChjID09IFB5VW5pY29kZV9SRUFEX0NIQVIoc2VsZi0+c3RyLnN0ciwgc2VsZi0+c3RyLnN0YXJ0KSkgewogICAgICAgICAgICAgLyogZXNjYXBlZCB9IG9yIHssIHNraXAgaXQgaW4gdGhlIGlucHV0LiAgdGhlcmUgaXMgbm8KICAgICAgICAgICAgICAgIG1hcmt1cCBvYmplY3QgZm9sbG93aW5nIHVzLCBqdXN0IHRoaXMgbGl0ZXJhbCB0ZXh0ICovCi0gICAgICAgICAgICBzZWxmLT5zdHIucHRyKys7CisgICAgICAgICAgICBzZWxmLT5zdHIuc3RhcnQrKzsKICAgICAgICAgICAgIG1hcmt1cF9mb2xsb3dzID0gMDsKICAgICAgICAgfQogICAgICAgICBlbHNlCkBAIC03OTgsNyArNzEyLDggQEAKICAgICB9CiAKICAgICAvKiByZWNvcmQgdGhlIGxpdGVyYWwgdGV4dCAqLwotICAgIGxpdGVyYWwtPnB0ciA9IHN0YXJ0OworICAgIGxpdGVyYWwtPnN0ciA9IHNlbGYtPnN0ci5zdHI7CisgICAgbGl0ZXJhbC0+c3RhcnQgPSBzdGFydDsKICAgICBsaXRlcmFsLT5lbmQgPSBzdGFydCArIGxlbjsKIAogICAgIGlmICghbWFya3VwX2ZvbGxvd3MpCkBAIC04MTAsMTIgKzcyNSwxMiBAQAogICAgICpmaWVsZF9wcmVzZW50ID0gMTsKICAgICBjb3VudCA9IDE7CiAKLSAgICBzdGFydCA9IHNlbGYtPnN0ci5wdHI7CisgICAgc3RhcnQgPSBzZWxmLT5zdHIuc3RhcnQ7CiAKICAgICAvKiB3ZSBrbm93IHdlIGNhbid0IGhhdmUgYSB6ZXJvIGxlbmd0aCBzdHJpbmcsIHNvIGRvbid0IHdvcnJ5CiAgICAgICAgYWJvdXQgdGhhdCBjYXNlICovCi0gICAgd2hpbGUgKHNlbGYtPnN0ci5wdHIgPCBzZWxmLT5zdHIuZW5kKSB7Ci0gICAgICAgIHN3aXRjaCAoYyA9ICooc2VsZi0+c3RyLnB0cisrKSkgeworICAgIHdoaWxlIChzZWxmLT5zdHIuc3RhcnQgPCBzZWxmLT5zdHIuZW5kKSB7CisgICAgICAgIHN3aXRjaCAoYyA9IFB5VW5pY29kZV9SRUFEX0NIQVIoc2VsZi0+c3RyLnN0ciwgc2VsZi0+c3RyLnN0YXJ0KyspKSB7CiAgICAgICAgIGNhc2UgJ3snOgogICAgICAgICAgICAgLyogdGhlIGZvcm1hdCBzcGVjIG5lZWRzIHRvIGJlIHJlY3Vyc2l2ZWx5IGV4cGFuZGVkLgogICAgICAgICAgICAgICAgdGhpcyBpcyBhbiBvcHRpbWl6YXRpb24sIGFuZCBub3Qgc3RyaWN0bHkgbmVlZGVkICovCkBAIC04MjgsNyArNzQzLDcgQEAKICAgICAgICAgICAgICAgICAvKiB3ZSdyZSBkb25lLiAgcGFyc2UgYW5kIGdldCBvdXQgKi8KICAgICAgICAgICAgICAgICBTdWJTdHJpbmcgczsKIAotICAgICAgICAgICAgICAgIFN1YlN0cmluZ19pbml0KCZzLCBzdGFydCwgc2VsZi0+c3RyLnB0ciAtIDEgLSBzdGFydCk7CisgICAgICAgICAgICAgICAgU3ViU3RyaW5nX2luaXQoJnMsIHNlbGYtPnN0ci5zdHIsIHN0YXJ0LCBzZWxmLT5zdHIuc3RhcnQgLSAxKTsKICAgICAgICAgICAgICAgICBpZiAocGFyc2VfZmllbGQoJnMsIGZpZWxkX25hbWUsIGZvcm1hdF9zcGVjLCBjb252ZXJzaW9uKSA9PSAwKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIApAQCAtODQ3LDcgKzc2Miw3IEBACiAKIC8qIGRvIHRoZSAhciBvciAhcyBjb252ZXJzaW9uIG9uIG9iaiAqLwogc3RhdGljIFB5T2JqZWN0ICoKLWRvX2NvbnZlcnNpb24oUHlPYmplY3QgKm9iaiwgU1RSSU5HTElCX0NIQVIgY29udmVyc2lvbikKK2RvX2NvbnZlcnNpb24oUHlPYmplY3QgKm9iaiwgUHlfVUNTNCBjb252ZXJzaW9uKQogewogICAgIC8qIFhYWCBpbiBwcmUtMy4wLCBkbyB3ZSBuZWVkIHRvIGNvbnZlcnQgdGhpcyB0byB1bmljb2RlLCBzaW5jZSBpdAogICAgICAgIG1pZ2h0IGhhdmUgcmV0dXJuZWQgYSBzdHJpbmc/ICovCkBAIC04NTUsMTEgKzc3MCw5IEBACiAgICAgY2FzZSAncic6CiAgICAgICAgIHJldHVybiBQeU9iamVjdF9SZXByKG9iaik7CiAgICAgY2FzZSAncyc6Ci0gICAgICAgIHJldHVybiBTVFJJTkdMSUJfVE9TVFIob2JqKTsKLSNpZiBQWV9WRVJTSU9OX0hFWCA+PSAweDAzMDAwMDAwCisgICAgICAgIHJldHVybiBQeU9iamVjdF9TdHIob2JqKTsKICAgICBjYXNlICdhJzoKLSAgICAgICAgcmV0dXJuIFNUUklOR0xJQl9UT0FTQ0lJKG9iaik7Ci0jZW5kaWYKKyAgICAgICAgcmV0dXJuIFB5T2JqZWN0X0FTQ0lJKG9iaik7CiAgICAgZGVmYXVsdDoKICAgICAgICAgaWYgKGNvbnZlcnNpb24gPiAzMiAmJiBjb252ZXJzaW9uIDwgMTI3KSB7CiAgICAgICAgICAgICAgICAgLyogSXQncyB0aGUgQVNDSUkgc3VicmFuZ2U7IGNhc3RpbmcgdG8gY2hhciBpcyBzYWZlCkBAIC04OTEsOCArODA0LDggQEAKIAogc3RhdGljIGludAogb3V0cHV0X21hcmt1cChTdWJTdHJpbmcgKmZpZWxkX25hbWUsIFN1YlN0cmluZyAqZm9ybWF0X3NwZWMsCi0gICAgICAgICAgICAgIGludCBmb3JtYXRfc3BlY19uZWVkc19leHBhbmRpbmcsIFNUUklOR0xJQl9DSEFSIGNvbnZlcnNpb24sCi0gICAgICAgICAgICAgIE91dHB1dFN0cmluZyAqb3V0cHV0LCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncywKKyAgICAgICAgICAgICAgaW50IGZvcm1hdF9zcGVjX25lZWRzX2V4cGFuZGluZywgUHlfVUNTNCBjb252ZXJzaW9uLAorICAgICAgICAgICAgICBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzLAogICAgICAgICAgICAgICBpbnQgcmVjdXJzaW9uX2RlcHRoLCBBdXRvTnVtYmVyICphdXRvX251bWJlcikKIHsKICAgICBQeU9iamVjdCAqdG1wID0gTlVMTDsKQEAgLTkwOCw3ICs4MjEsNyBAQAogCiAgICAgaWYgKGNvbnZlcnNpb24gIT0gJ1wwJykgewogICAgICAgICB0bXAgPSBkb19jb252ZXJzaW9uKGZpZWxkb2JqLCBjb252ZXJzaW9uKTsKLSAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICBpZiAodG1wID09IE5VTEwgfHwgUHlVbmljb2RlX1JFQURZKHRtcCkgPT0gLTEpCiAgICAgICAgICAgICBnb3RvIGRvbmU7CiAKICAgICAgICAgLyogZG8gdGhlIGFzc2lnbm1lbnQsIHRyYW5zZmVycmluZyBvd25lcnNoaXA6IGZpZWxkb2JqID0gdG1wICovCkBAIC05MjEsMjAgKzgzNCwxOSBAQAogICAgIGlmIChmb3JtYXRfc3BlY19uZWVkc19leHBhbmRpbmcpIHsKICAgICAgICAgdG1wID0gYnVpbGRfc3RyaW5nKGZvcm1hdF9zcGVjLCBhcmdzLCBrd2FyZ3MsIHJlY3Vyc2lvbl9kZXB0aC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b19udW1iZXIpOwotICAgICAgICBpZiAodG1wID09IE5VTEwpCisgICAgICAgIGlmICh0bXAgPT0gTlVMTCB8fCBQeVVuaWNvZGVfUkVBRFkodG1wKSA9PSAtMSkKICAgICAgICAgICAgIGdvdG8gZG9uZTsKIAogICAgICAgICAvKiBub3RlIHRoYXQgaW4gdGhlIGNhc2Ugd2UncmUgZXhwYW5kaW5nIHRoZSBmb3JtYXQgc3RyaW5nLAogICAgICAgICAgICB0bXAgbXVzdCBiZSBrZXB0IGFyb3VuZCB1bnRpbCBhZnRlciB0aGUgY2FsbCB0bwogICAgICAgICAgICByZW5kZXJfZmllbGQuICovCi0gICAgICAgIFN1YlN0cmluZ19pbml0KCZleHBhbmRlZF9mb3JtYXRfc3BlYywKLSAgICAgICAgICAgICAgICAgICAgICAgU1RSSU5HTElCX1NUUih0bXApLCBTVFJJTkdMSUJfTEVOKHRtcCkpOworICAgICAgICBTdWJTdHJpbmdfaW5pdCgmZXhwYW5kZWRfZm9ybWF0X3NwZWMsIHRtcCwgMCwgUHlVbmljb2RlX0dFVF9MRU5HVEgodG1wKSk7CiAgICAgICAgIGFjdHVhbF9mb3JtYXRfc3BlYyA9ICZleHBhbmRlZF9mb3JtYXRfc3BlYzsKICAgICB9CiAgICAgZWxzZQogICAgICAgICBhY3R1YWxfZm9ybWF0X3NwZWMgPSBmb3JtYXRfc3BlYzsKIAotICAgIGlmIChyZW5kZXJfZmllbGQoZmllbGRvYmosIGFjdHVhbF9mb3JtYXRfc3BlYywgb3V0cHV0KSA9PSAwKQorICAgIGlmIChyZW5kZXJfZmllbGQoZmllbGRvYmosIGFjdHVhbF9mb3JtYXRfc3BlYywgd3JpdGVyKSA9PSAwKQogICAgICAgICBnb3RvIGRvbmU7CiAKICAgICByZXN1bHQgPSAxOwpAQCAtOTU0LDcgKzg2Niw3IEBACiAqLwogc3RhdGljIGludAogZG9fbWFya3VwKFN1YlN0cmluZyAqaW5wdXQsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzLAotICAgICAgICAgIE91dHB1dFN0cmluZyAqb3V0cHV0LCBpbnQgcmVjdXJzaW9uX2RlcHRoLCBBdXRvTnVtYmVyICphdXRvX251bWJlcikKKyAgICAgICAgICBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsIGludCByZWN1cnNpb25fZGVwdGgsIEF1dG9OdW1iZXIgKmF1dG9fbnVtYmVyKQogewogICAgIE1hcmt1cEl0ZXJhdG9yIGl0ZXI7CiAgICAgaW50IGZvcm1hdF9zcGVjX25lZWRzX2V4cGFuZGluZzsKQEAgLTk2MywyMCArODc1LDM1IEBACiAgICAgU3ViU3RyaW5nIGxpdGVyYWw7CiAgICAgU3ViU3RyaW5nIGZpZWxkX25hbWU7CiAgICAgU3ViU3RyaW5nIGZvcm1hdF9zcGVjOwotICAgIFNUUklOR0xJQl9DSEFSIGNvbnZlcnNpb247CisgICAgUHlfVUNTNCBjb252ZXJzaW9uLCBtYXhjaGFyOworICAgIFB5X3NzaXplX3Qgc3VibGVuOworICAgIGludCBlcnI7CiAKLSAgICBNYXJrdXBJdGVyYXRvcl9pbml0KCZpdGVyLCBpbnB1dC0+cHRyLCBpbnB1dC0+ZW5kIC0gaW5wdXQtPnB0cik7CisgICAgTWFya3VwSXRlcmF0b3JfaW5pdCgmaXRlciwgaW5wdXQtPnN0ciwgaW5wdXQtPnN0YXJ0LCBpbnB1dC0+ZW5kKTsKICAgICB3aGlsZSAoKHJlc3VsdCA9IE1hcmt1cEl0ZXJhdG9yX25leHQoJml0ZXIsICZsaXRlcmFsLCAmZmllbGRfcHJlc2VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZpZWxkX25hbWUsICZmb3JtYXRfc3BlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbnZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb3JtYXRfc3BlY19uZWVkc19leHBhbmRpbmcpKSA9PSAyKSB7Ci0gICAgICAgIGlmICghb3V0cHV0X2RhdGEob3V0cHV0LCBsaXRlcmFsLnB0ciwgbGl0ZXJhbC5lbmQgLSBsaXRlcmFsLnB0cikpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgaWYgKGZpZWxkX3ByZXNlbnQpCisgICAgICAgIHN1YmxlbiA9IGxpdGVyYWwuZW5kIC0gbGl0ZXJhbC5zdGFydDsKKyAgICAgICAgaWYgKHN1YmxlbikgeworICAgICAgICAgICAgbWF4Y2hhciA9IF9QeVVuaWNvZGVfRmluZE1heENoYXIobGl0ZXJhbC5zdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXRlcmFsLnN0YXJ0LCBsaXRlcmFsLmVuZCk7CisgICAgICAgICAgICBlcnIgPSBfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUod3JpdGVyLCBzdWJsZW4sIG1heGNoYXIpOworICAgICAgICAgICAgaWYgKGVyciA9PSAtMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHdyaXRlci0+YnVmZmVyLCB3cml0ZXItPnBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpdGVyYWwuc3RyLCBsaXRlcmFsLnN0YXJ0LCBzdWJsZW4pOworICAgICAgICAgICAgd3JpdGVyLT5wb3MgKz0gc3VibGVuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZpZWxkX3ByZXNlbnQpIHsKKyAgICAgICAgICAgIGlmIChpdGVyLnN0ci5zdGFydCA9PSBpdGVyLnN0ci5lbmQpCisgICAgICAgICAgICAgICAgd3JpdGVyLT5vdmVyYWxsb2NhdGUgPSAwOwogICAgICAgICAgICAgaWYgKCFvdXRwdXRfbWFya3VwKCZmaWVsZF9uYW1lLCAmZm9ybWF0X3NwZWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0X3NwZWNfbmVlZHNfZXhwYW5kaW5nLCBjb252ZXJzaW9uLCBvdXRwdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0X3NwZWNfbmVlZHNfZXhwYW5kaW5nLCBjb252ZXJzaW9uLCB3cml0ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncywga3dhcmdzLCByZWN1cnNpb25fZGVwdGgsIGF1dG9fbnVtYmVyKSkKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtOTkwLDQzICs5MTcsMjYgQEAKIGJ1aWxkX3N0cmluZyhTdWJTdHJpbmcgKmlucHV0LCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3YXJncywKICAgICAgICAgICAgICBpbnQgcmVjdXJzaW9uX2RlcHRoLCBBdXRvTnVtYmVyICphdXRvX251bWJlcikKIHsKLSAgICBPdXRwdXRTdHJpbmcgb3V0cHV0OwotICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBOVUxMOwotICAgIFB5X3NzaXplX3QgY291bnQ7Ci0KLSAgICBvdXRwdXQub2JqID0gTlVMTDsgLyogbmVlZGVkIHNvIGNsZWFudXAgY29kZSBhbHdheXMgd29ya3MgKi8KKyAgICBfUHlVbmljb2RlV3JpdGVyIHdyaXRlcjsKKyAgICBQeV9zc2l6ZV90IG1pbmxlbjsKIAogICAgIC8qIGNoZWNrIHRoZSByZWN1cnNpb24gbGV2ZWwgKi8KICAgICBpZiAocmVjdXJzaW9uX2RlcHRoIDw9IDApIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiTWF4IHN0cmluZyByZWN1cnNpb24gZXhjZWVkZWQiKTsKLSAgICAgICAgZ290byBkb25lOworICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICAvKiBpbml0aWFsIHNpemUgaXMgdGhlIGxlbmd0aCBvZiB0aGUgZm9ybWF0IHN0cmluZywgcGx1cyB0aGUgc2l6ZQotICAgICAgIGluY3JlbWVudC4gIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIGRlZmF1bHQgKi8KLSAgICBpZiAoIW91dHB1dF9pbml0aWFsaXplKCZvdXRwdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dC0+ZW5kIC0gaW5wdXQtPnB0ciArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBJTklUSUFMX1NJWkVfSU5DUkVNRU5UKSkKLSAgICAgICAgZ290byBkb25lOworICAgIG1pbmxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGlucHV0LT5zdHIpICsgMTAwOworICAgIF9QeVVuaWNvZGVXcml0ZXJfSW5pdCgmd3JpdGVyLCBtaW5sZW4pOwogCi0gICAgaWYgKCFkb19tYXJrdXAoaW5wdXQsIGFyZ3MsIGt3YXJncywgJm91dHB1dCwgcmVjdXJzaW9uX2RlcHRoLAorICAgIGlmICghZG9fbWFya3VwKGlucHV0LCBhcmdzLCBrd2FyZ3MsICZ3cml0ZXIsIHJlY3Vyc2lvbl9kZXB0aCwKICAgICAgICAgICAgICAgICAgICBhdXRvX251bWJlcikpIHsKLSAgICAgICAgZ290byBkb25lOworICAgICAgICBfUHlVbmljb2RlV3JpdGVyX0RlYWxsb2MoJndyaXRlcik7CisgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIGNvdW50ID0gb3V0cHV0LnB0ciAtIFNUUklOR0xJQl9TVFIob3V0cHV0Lm9iaik7Ci0gICAgaWYgKFNUUklOR0xJQl9SRVNJWkUoJm91dHB1dC5vYmosIGNvdW50KSA8IDApIHsKLSAgICAgICAgZ290byBkb25lOwotICAgIH0KLQotICAgIC8qIHRyYW5zZmVyIG93bmVyc2hpcCB0byByZXN1bHQgKi8KLSAgICByZXN1bHQgPSBvdXRwdXQub2JqOwotICAgIG91dHB1dC5vYmogPSBOVUxMOwotCi1kb25lOgotICAgIFB5X1hERUNSRUYob3V0cHV0Lm9iaik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gX1B5VW5pY29kZVdyaXRlcl9GaW5pc2goJndyaXRlcik7CiB9CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0xMDQ3LDggKzk1NywxMSBAQAogCiAgICAgQXV0b051bWJlciBhdXRvX251bWJlcjsKIAorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgQXV0b051bWJlcl9Jbml0KCZhdXRvX251bWJlcik7Ci0gICAgU3ViU3RyaW5nX2luaXQoJmlucHV0LCBTVFJJTkdMSUJfU1RSKHNlbGYpLCBTVFJJTkdMSUJfTEVOKHNlbGYpKTsKKyAgICBTdWJTdHJpbmdfaW5pdCgmaW5wdXQsIHNlbGYsIDAsIFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpKTsKICAgICByZXR1cm4gYnVpbGRfc3RyaW5nKCZpbnB1dCwgYXJncywga3dhcmdzLCByZWN1cnNpb25fZGVwdGgsICZhdXRvX251bWJlcik7CiB9CiAKQEAgLTEwNzAsOSArOTgzLDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFB5T2JqZWN0X0hFQUQKLQotICAgIFNUUklOR0xJQl9PQkpFQ1QgKnN0cjsKLQorICAgIFB5T2JqZWN0ICpzdHI7CiAgICAgTWFya3VwSXRlcmF0b3IgaXRfbWFya3VwOwogfSBmb3JtYXR0ZXJpdGVyb2JqZWN0OwogCkBAIC0xMDk3LDcgKzEwMDgsNyBAQAogICAgIFN1YlN0cmluZyBsaXRlcmFsOwogICAgIFN1YlN0cmluZyBmaWVsZF9uYW1lOwogICAgIFN1YlN0cmluZyBmb3JtYXRfc3BlYzsKLSAgICBTVFJJTkdMSUJfQ0hBUiBjb252ZXJzaW9uOworICAgIFB5X1VDUzQgY29udmVyc2lvbjsKICAgICBpbnQgZm9ybWF0X3NwZWNfbmVlZHNfZXhwYW5kaW5nOwogICAgIGludCBmaWVsZF9wcmVzZW50OwogICAgIGludCByZXN1bHQgPSBNYXJrdXBJdGVyYXRvcl9uZXh0KCZpdC0+aXRfbWFya3VwLCAmbGl0ZXJhbCwgJmZpZWxkX3ByZXNlbnQsCkBAIC0xMTQxLDcgKzEwNTIsOCBAQAogICAgICAgICAgICAgUHlfSU5DUkVGKGNvbnZlcnNpb25fc3RyKTsKICAgICAgICAgfQogICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb252ZXJzaW9uX3N0ciA9IFNUUklOR0xJQl9ORVcoJmNvbnZlcnNpb24sIDEpOworICAgICAgICAgICAgY29udmVyc2lvbl9zdHIgPSBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKFB5VW5pY29kZV80QllURV9LSU5ELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb252ZXJzaW9uLCAxKTsKICAgICAgICAgaWYgKGNvbnZlcnNpb25fc3RyID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGRvbmU7CiAKQEAgLTExOTgsNyArMTExMCw3IEBACiAgICBkZXNjcmliaW5nIHRoZSBwYXJzZWQgZWxlbWVudHMuICBJdCdzIGEgd3JhcHBlciBhcm91bmQKICAgIHN0cmluZ2xpYi9zdHJpbmdfZm9ybWF0LmgncyBNYXJrdXBJdGVyYXRvciAqLwogc3RhdGljIFB5T2JqZWN0ICoKLWZvcm1hdHRlcl9wYXJzZXIoUHlPYmplY3QgKmlnbm9yZWQsIFNUUklOR0xJQl9PQkpFQ1QgKnNlbGYpCitmb3JtYXR0ZXJfcGFyc2VyKFB5T2JqZWN0ICppZ25vcmVkLCBQeU9iamVjdCAqc2VsZikKIHsKICAgICBmb3JtYXR0ZXJpdGVyb2JqZWN0ICppdDsKIApAQCAtMTIwNyw2ICsxMTE5LDkgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKICAgICBpdCA9IFB5T2JqZWN0X05ldyhmb3JtYXR0ZXJpdGVyb2JqZWN0LCAmUHlGb3JtYXR0ZXJJdGVyX1R5cGUpOwogICAgIGlmIChpdCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTEyMTYsMTAgKzExMzEsNyBAQAogICAgIGl0LT5zdHIgPSBzZWxmOwogCiAgICAgLyogaW5pdGlhbGl6ZSB0aGUgY29udGFpbmVkIE1hcmt1cEl0ZXJhdG9yICovCi0gICAgTWFya3VwSXRlcmF0b3JfaW5pdCgmaXQtPml0X21hcmt1cCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFNUUklOR0xJQl9TVFIoc2VsZiksCi0gICAgICAgICAgICAgICAgICAgICAgICBTVFJJTkdMSUJfTEVOKHNlbGYpKTsKLQorICAgIE1hcmt1cEl0ZXJhdG9yX2luaXQoJml0LT5pdF9tYXJrdXAsIChQeU9iamVjdCopc2VsZiwgMCwgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZikpOwogICAgIHJldHVybiAoUHlPYmplY3QgKilpdDsKIH0KIApAQCAtMTIzNSw5ICsxMTQ3LDcgQEAKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFB5T2JqZWN0X0hFQUQKLQotICAgIFNUUklOR0xJQl9PQkpFQ1QgKnN0cjsKLQorICAgIFB5T2JqZWN0ICpzdHI7CiAgICAgRmllbGROYW1lSXRlcmF0b3IgaXRfZmllbGQ7CiB9IGZpZWxkbmFtZWl0ZXJvYmplY3Q7CiAKQEAgLTEzMzgsNyArMTI0OCw3IEBACiAgICBmaWVsZF9uYW1lX3NwbGl0LiAgVGhlIGl0ZXJhdG9yIGl0IHJldHVybnMgaXMgYQogICAgRmllbGROYW1lSXRlcmF0b3IgKi8KIHN0YXRpYyBQeU9iamVjdCAqCi1mb3JtYXR0ZXJfZmllbGRfbmFtZV9zcGxpdChQeU9iamVjdCAqaWdub3JlZCwgU1RSSU5HTElCX09CSkVDVCAqc2VsZikKK2Zvcm1hdHRlcl9maWVsZF9uYW1lX3NwbGl0KFB5T2JqZWN0ICppZ25vcmVkLCBQeU9iamVjdCAqc2VsZikKIHsKICAgICBTdWJTdHJpbmcgZmlyc3Q7CiAgICAgUHlfc3NpemVfdCBmaXJzdF9pZHg7CkBAIC0xMzUyLDYgKzEyNjIsOSBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIGl0ID0gUHlPYmplY3RfTmV3KGZpZWxkbmFtZWl0ZXJvYmplY3QsICZQeUZpZWxkTmFtZUl0ZXJfVHlwZSk7CiAgICAgaWYgKGl0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTM2Myw4ICsxMjc2LDcgQEAKIAogICAgIC8qIFBhc3MgaW4gYXV0b19udW1iZXIgPSBOVUxMLiBXZSdsbCByZXR1cm4gYW4gZW1wdHkgc3RyaW5nIGZvcgogICAgICAgIGZpcnN0X29iaiBpbiB0aGF0IGNhc2UuICovCi0gICAgaWYgKCFmaWVsZF9uYW1lX3NwbGl0KFNUUklOR0xJQl9TVFIoc2VsZiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFNUUklOR0xJQl9MRU4oc2VsZiksCisgICAgaWYgKCFmaWVsZF9uYW1lX3NwbGl0KChQeU9iamVjdCopc2VsZiwgMCwgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICZmaXJzdCwgJmZpcnN0X2lkeCwgJml0LT5pdF9maWVsZCwgTlVMTCkpCiAgICAgICAgIGdvdG8gZG9uZTsKIApkaWZmIC0tZ2l0IGEvT2JqZWN0cy9zdHJpbmdsaWIvdW5pY29kZWRlZnMuaCBiL09iamVjdHMvc3RyaW5nbGliL3VuaWNvZGVkZWZzLmgKaW5kZXggMDlkYWU2ZC4uZjE2ZjIxZSAxMDA2NDQKLS0tIGEvT2JqZWN0cy9zdHJpbmdsaWIvdW5pY29kZWRlZnMuaAorKysgYi9PYmplY3RzL3N0cmluZ2xpYi91bmljb2RlZGVmcy5oCkBAIC02LDcgKzYsMTAgQEAKICAgIGNvbXBpbGVkIGFzIHVuaWNvZGUuICovCiAjZGVmaW5lIFNUUklOR0xJQl9JU19VTklDT0RFICAgICAxCiAKKyNkZWZpbmUgRkFTVFNFQVJDSCAgICAgICAgICAgICAgIGZhc3RzZWFyY2gKKyNkZWZpbmUgU1RSSU5HTElCKEYpICAgICAgICAgICAgIHN0cmluZ2xpYl8jI0YKICNkZWZpbmUgU1RSSU5HTElCX09CSkVDVCAgICAgICAgIFB5VW5pY29kZU9iamVjdAorI2RlZmluZSBTVFJJTkdMSUJfU0laRU9GX0NIQVIgICAgUHlfVU5JQ09ERV9TSVpFCiAjZGVmaW5lIFNUUklOR0xJQl9DSEFSICAgICAgICAgICBQeV9VTklDT0RFCiAjZGVmaW5lIFNUUklOR0xJQl9UWVBFX05BTUUgICAgICAidW5pY29kZSIKICNkZWZpbmUgU1RSSU5HTElCX1BBUlNFX0NPREUgICAgICJVIgpAQCAtMTUsMTcgKzE4LDEyIEBACiAjZGVmaW5lIFNUUklOR0xJQl9JU0xJTkVCUkVBSyAgICBCTE9PTV9MSU5FQlJFQUsKICNkZWZpbmUgU1RSSU5HTElCX0lTREVDSU1BTCAgICAgIFB5X1VOSUNPREVfSVNERUNJTUFMCiAjZGVmaW5lIFNUUklOR0xJQl9UT0RFQ0lNQUwgICAgICBQeV9VTklDT0RFX1RPREVDSU1BTAotI2RlZmluZSBTVFJJTkdMSUJfVE9VUFBFUiAgICAgICAgUHlfVU5JQ09ERV9UT1VQUEVSCi0jZGVmaW5lIFNUUklOR0xJQl9UT0xPV0VSICAgICAgICBQeV9VTklDT0RFX1RPTE9XRVIKLSNkZWZpbmUgU1RSSU5HTElCX0ZJTEwgICAgICAgICAgIFB5X1VOSUNPREVfRklMTAogI2RlZmluZSBTVFJJTkdMSUJfU1RSICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUKICNkZWZpbmUgU1RSSU5HTElCX0xFTiAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRQogI2RlZmluZSBTVFJJTkdMSUJfTkVXICAgICAgICAgICAgUHlVbmljb2RlX0Zyb21Vbmljb2RlCiAjZGVmaW5lIFNUUklOR0xJQl9SRVNJWkUgICAgICAgICBQeVVuaWNvZGVfUmVzaXplCiAjZGVmaW5lIFNUUklOR0xJQl9DSEVDSyAgICAgICAgICBQeVVuaWNvZGVfQ2hlY2sKICNkZWZpbmUgU1RSSU5HTElCX0NIRUNLX0VYQUNUICAgIFB5VW5pY29kZV9DaGVja0V4YWN0Ci0jZGVmaW5lIFNUUklOR0xJQl9HUk9VUElORyAgICAgICBfUHlVbmljb2RlX0luc2VydFRob3VzYW5kc0dyb3VwaW5nCi0jZGVmaW5lIFNUUklOR0xJQl9HUk9VUElOR19MT0NBTEUgX1B5VW5pY29kZV9JbnNlcnRUaG91c2FuZHNHcm91cGluZ0xvY2FsZQogCiAjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAzMDAwMDAwCiAjZGVmaW5lIFNUUklOR0xJQl9UT1NUUiAgICAgICAgICBQeU9iamVjdF9Vbmljb2RlCmRpZmYgLS1naXQgYS9PYmplY3RzL3R1cGxlb2JqZWN0LmMgYi9PYmplY3RzL3R1cGxlb2JqZWN0LmMKaW5kZXggZTk5ZWRhMC4uMDEzZGI2OSAxMDA2NDQKLS0tIGEvT2JqZWN0cy90dXBsZW9iamVjdC5jCisrKyBiL09iamVjdHMvdHVwbGVvYmplY3QuYwpAQCAtNDUsNiArNDUsMjIgQEAKIH0KICNlbmRpZgogCisvKiBQcmludCBzdW1tYXJ5IGluZm8gYWJvdXQgdGhlIHN0YXRlIG9mIHRoZSBvcHRpbWl6ZWQgYWxsb2NhdG9yICovCit2b2lkCitfUHlUdXBsZV9EZWJ1Z01hbGxvY1N0YXRzKEZJTEUgKm91dCkKK3sKKyNpZiBQeVR1cGxlX01BWFNBVkVTSVpFID4gMAorICAgIGludCBpOworICAgIGNoYXIgYnVmWzEyOF07CisgICAgZm9yIChpID0gMTsgaSA8IFB5VHVwbGVfTUFYU0FWRVNJWkU7IGkrKykgeworICAgICAgICBQeU9TX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksCisgICAgICAgICAgICAgICAgICAgICAgImZyZWUgJWQtc2l6ZWQgUHlUdXBsZU9iamVjdCIsIGkpOworICAgICAgICBfUHlEZWJ1Z0FsbG9jYXRvclN0YXRzKG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtZnJlZVtpXSwgX1B5T2JqZWN0X1ZBUl9TSVpFKCZQeVR1cGxlX1R5cGUsIGkpKTsKKyAgICB9CisjZW5kaWYKK30KIAogUHlPYmplY3QgKgogUHlUdXBsZV9OZXcocmVnaXN0ZXIgUHlfc3NpemVfdCBzaXplKQpAQCAtODcsNyArMTAzLDcgQEAKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIH0KLSAgICAgICAgbmJ5dGVzICs9IHNpemVvZihQeVR1cGxlT2JqZWN0KSAtIHNpemVvZihQeU9iamVjdCAqKTsKKyAgICAgICAgLyogbmJ5dGVzICs9IHNpemVvZihQeVR1cGxlT2JqZWN0KSAtIHNpemVvZihQeU9iamVjdCAqKTsgKi8KIAogICAgICAgICBvcCA9IFB5T2JqZWN0X0dDX05ld1ZhcihQeVR1cGxlT2JqZWN0LCAmUHlUdXBsZV9UeXBlLCBzaXplKTsKICAgICAgICAgaWYgKG9wID09IE5VTEwpCkBAIC0zMTMsMTEgKzMyOSwxMiBAQAogc3RhdGljIFB5X2hhc2hfdAogdHVwbGVoYXNoKFB5VHVwbGVPYmplY3QgKnYpCiB7Ci0gICAgcmVnaXN0ZXIgUHlfaGFzaF90IHgsIHk7CisgICAgcmVnaXN0ZXIgUHlfdWhhc2hfdCB4OworICAgIHJlZ2lzdGVyIFB5X2hhc2hfdCB5OwogICAgIHJlZ2lzdGVyIFB5X3NzaXplX3QgbGVuID0gUHlfU0laRSh2KTsKICAgICByZWdpc3RlciBQeU9iamVjdCAqKnA7Ci0gICAgUHlfaGFzaF90IG11bHQgPSBfUHlIQVNIX01VTFRJUExJRVI7Ci0gICAgeCA9IDB4MzQ1Njc4TDsKKyAgICBQeV91aGFzaF90IG11bHQgPSBfUHlIQVNIX01VTFRJUExJRVI7CisgICAgeCA9IDB4MzQ1Njc4OwogICAgIHAgPSB2LT5vYl9pdGVtOwogICAgIHdoaWxlICgtLWxlbiA+PSAwKSB7CiAgICAgICAgIHkgPSBQeU9iamVjdF9IYXNoKCpwKyspOwpAQCAtMzI4LDcgKzM0NSw3IEBACiAgICAgICAgIG11bHQgKz0gKFB5X2hhc2hfdCkoODI1MjBMICsgbGVuICsgbGVuKTsKICAgICB9CiAgICAgeCArPSA5NzUzMUw7Ci0gICAgaWYgKHggPT0gLTEpCisgICAgaWYgKHggPT0gKFB5X3VoYXNoX3QpLTEpCiAgICAgICAgIHggPSAtMjsKICAgICByZXR1cm4geDsKIH0KQEAgLTU0NCwxMCArNTYxLDggQEAKICAgICBQeV9zc2l6ZV90IGk7CiAgICAgUHlfc3NpemVfdCB2bGVuLCB3bGVuOwogCi0gICAgaWYgKCFQeVR1cGxlX0NoZWNrKHYpIHx8ICFQeVR1cGxlX0NoZWNrKHcpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKLSAgICB9CisgICAgaWYgKCFQeVR1cGxlX0NoZWNrKHYpIHx8ICFQeVR1cGxlX0NoZWNrKHcpKQorICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAKICAgICB2dCA9IChQeVR1cGxlT2JqZWN0ICopdjsKICAgICB3dCA9IChQeVR1cGxlT2JqZWN0ICopdzsKQEAgLTk2OCw4ICs5ODMsMzkgQEAKIAogUHlEb2NfU1RSVkFSKGxlbmd0aF9oaW50X2RvYywgIlByaXZhdGUgbWV0aG9kIHJldHVybmluZyBhbiBlc3RpbWF0ZSBvZiBsZW4obGlzdChpdCkpLiIpOwogCitzdGF0aWMgUHlPYmplY3QgKgordHVwbGVpdGVyX3JlZHVjZSh0dXBsZWl0ZXJvYmplY3QgKml0KQoreworICAgIGlmIChpdC0+aXRfc2VxKQorICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTihPKWwiLCBfUHlPYmplY3RfR2V0QnVpbHRpbigiaXRlciIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC0+aXRfc2VxLCBpdC0+aXRfaW5kZXgpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk4oKCkpIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oIml0ZXIiKSk7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCit0dXBsZWl0ZXJfc2V0c3RhdGUodHVwbGVpdGVyb2JqZWN0ICppdCwgUHlPYmplY3QgKnN0YXRlKQoreworICAgIGxvbmcgaW5kZXggPSBQeUxvbmdfQXNMb25nKHN0YXRlKTsKKyAgICBpZiAoaW5kZXggPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKGl0LT5pdF9zZXEgIT0gTlVMTCkgeworICAgICAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICAgICAgaW5kZXggPSAwOworICAgICAgICBlbHNlIGlmIChpdC0+aXRfc2VxICE9IE5VTEwgJiYgaW5kZXggPiBQeVR1cGxlX0dFVF9TSVpFKGl0LT5pdF9zZXEpKQorICAgICAgICAgICAgaW5kZXggPSBQeVR1cGxlX0dFVF9TSVpFKGl0LT5pdF9zZXEpOworICAgICAgICBpdC0+aXRfaW5kZXggPSBpbmRleDsKKyAgICB9CisgICAgUHlfUkVUVVJOX05PTkU7Cit9CisKK1B5RG9jX1NUUlZBUihyZWR1Y2VfZG9jLCAiUmV0dXJuIHN0YXRlIGluZm9ybWF0aW9uIGZvciBwaWNrbGluZy4iKTsKK1B5RG9jX1NUUlZBUihzZXRzdGF0ZV9kb2MsICJTZXQgc3RhdGUgaW5mb3JtYXRpb24gZm9yIHVucGlja2xpbmcuIik7CisKIHN0YXRpYyBQeU1ldGhvZERlZiB0dXBsZWl0ZXJfbWV0aG9kc1tdID0gewogICAgIHsiX19sZW5ndGhfaGludF9fIiwgKFB5Q0Z1bmN0aW9uKXR1cGxlaXRlcl9sZW4sIE1FVEhfTk9BUkdTLCBsZW5ndGhfaGludF9kb2N9LAorICAgIHsiX19yZWR1Y2VfXyIsIChQeUNGdW5jdGlvbil0dXBsZWl0ZXJfcmVkdWNlLCBNRVRIX05PQVJHUywgcmVkdWNlX2RvY30sCisgICAgeyJfX3NldHN0YXRlX18iLCAoUHlDRnVuY3Rpb24pdHVwbGVpdGVyX3NldHN0YXRlLCBNRVRIX08sIHNldHN0YXRlX2RvY30sCiAgICAge05VTEwsICAgICAgICAgICAgICBOVUxMfSAgICAgICAgICAgLyogc2VudGluZWwgKi8KIH07CiAKZGlmZiAtLWdpdCBhL09iamVjdHMvdHlwZW9iamVjdC5jIGIvT2JqZWN0cy90eXBlb2JqZWN0LmMKaW5kZXggNTRhOTkwZS4uMmNjNmVlYSAxMDA2NDQKLS0tIGEvT2JqZWN0cy90eXBlb2JqZWN0LmMKKysrIGIvT2JqZWN0cy90eXBlb2JqZWN0LmMKQEAgLTE0LDE2ICsxNCwxNyBAQAogICAgTUNBQ0hFX01BWF9BVFRSX1NJWkUsIHNpbmNlIGl0IG1pZ2h0IGJlIGEgcHJvYmxlbSBpZiB2ZXJ5IGxhcmdlCiAgICBzdHJpbmdzIGFyZSB1c2VkIGFzIGF0dHJpYnV0ZSBuYW1lcy4gKi8KICNkZWZpbmUgTUNBQ0hFX01BWF9BVFRSX1NJWkUgICAgMTAwCi0jZGVmaW5lIE1DQUNIRV9TSVpFX0VYUCAgICAgICAgIDEwCisjZGVmaW5lIE1DQUNIRV9TSVpFX0VYUCAgICAgICAgIDkKICNkZWZpbmUgTUNBQ0hFX0hBU0godmVyc2lvbiwgbmFtZV9oYXNoKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgKCgodW5zaWduZWQgaW50KSh2ZXJzaW9uKSAqICh1bnNpZ25lZCBpbnQpKG5hbWVfaGFzaCkpICAgICAgICAgIFwKICAgICAgICAgID4+ICg4KnNpemVvZih1bnNpZ25lZCBpbnQpIC0gTUNBQ0hFX1NJWkVfRVhQKSkKICNkZWZpbmUgTUNBQ0hFX0hBU0hfTUVUSE9EKHR5cGUsIG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgTUNBQ0hFX0hBU0goKHR5cGUpLT50cF92ZXJzaW9uX3RhZywgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgICAgICAgICAgICAgICgoUHlVbmljb2RlT2JqZWN0ICopKG5hbWUpKS0+aGFzaCkKKyAgICAgICAgICAgICAgICAgICAgKChQeUFTQ0lJT2JqZWN0ICopKG5hbWUpKS0+aGFzaCkKICNkZWZpbmUgTUNBQ0hFX0NBQ0hFQUJMRV9OQU1FKG5hbWUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgUHlVbmljb2RlX0NoZWNrRXhhY3QobmFtZSkgJiYgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUobmFtZSkgPD0gTUNBQ0hFX01BWF9BVFRSX1NJWkUKKyAgICAgICAgUHlVbmljb2RlX1JFQURZKG5hbWUpICE9IC0xICYmICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgobmFtZSkgPD0gTUNBQ0hFX01BWF9BVFRSX1NJWkUKIAogc3RydWN0IG1ldGhvZF9jYWNoZV9lbnRyeSB7CiAgICAgdW5zaWduZWQgaW50IHZlcnNpb247CkBAIC0zNCw2ICszNSwyMiBAQAogc3RhdGljIHN0cnVjdCBtZXRob2RfY2FjaGVfZW50cnkgbWV0aG9kX2NhY2hlWzEgPDwgTUNBQ0hFX1NJWkVfRVhQXTsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgbmV4dF92ZXJzaW9uX3RhZyA9IDA7CiAKK19QeV9JREVOVElGSUVSKF9fY2xhc3NfXyk7CitfUHlfSURFTlRJRklFUihfX2RpY3RfXyk7CitfUHlfSURFTlRJRklFUihfX2RvY19fKTsKK19QeV9JREVOVElGSUVSKF9fZ2V0aXRlbV9fKTsKK19QeV9JREVOVElGSUVSKF9fZ2V0YXR0cmlidXRlX18pOworX1B5X0lERU5USUZJRVIoX19oYXNoX18pOworX1B5X0lERU5USUZJRVIoX19tb2R1bGVfXyk7CitfUHlfSURFTlRJRklFUihfX25hbWVfXyk7CitfUHlfSURFTlRJRklFUihfX25ld19fKTsKKworc3RhdGljIFB5T2JqZWN0ICoKK19QeVR5cGVfTG9va3VwSWQoUHlUeXBlT2JqZWN0ICp0eXBlLCBzdHJ1Y3QgX1B5X0lkZW50aWZpZXIgKm5hbWUpOworCitzdGF0aWMgUHlPYmplY3QgKgorc2xvdF90cF9uZXcoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpOworCiB1bnNpZ25lZCBpbnQKIFB5VHlwZV9DbGVhckNhY2hlKHZvaWQpCiB7CkBAIC05NiwxNSArMTEzLDEzIEBACiBzdGF0aWMgdm9pZAogdHlwZV9tcm9fbW9kaWZpZWQoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqYmFzZXMpIHsKICAgICAvKgotICAgICAgIENoZWNrIHRoYXQgYWxsIGJhc2UgY2xhc3NlcyBvciBlbGVtZW50cyBvZiB0aGUgbXJvIG9mIHR5cGUgYXJlCisgICAgICAgQ2hlY2sgdGhhdCBhbGwgYmFzZSBjbGFzc2VzIG9yIGVsZW1lbnRzIG9mIHRoZSBNUk8gb2YgdHlwZSBhcmUKICAgICAgICBhYmxlIHRvIGJlIGNhY2hlZC4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGFmdGVyIHRoZSBiYXNlCiAgICAgICAgY2xhc3NlcyBvciBtcm8gb2YgdGhlIHR5cGUgYXJlIGFsdGVyZWQuCiAKICAgICAgICBVbnNldCBIQVZFX1ZFUlNJT05fVEFHIGFuZCBWQUxJRF9WRVJTSU9OX1RBRyBpZiB0aGUgdHlwZQotICAgICAgIGluaGVyaXRzIGZyb20gYW4gb2xkLXN0eWxlIGNsYXNzLCBlaXRoZXIgZGlyZWN0bHkgb3IgaWYgaXQKLSAgICAgICBhcHBlYXJzIGluIHRoZSBNUk8gb2YgYSBuZXctc3R5bGUgY2xhc3MuICBObyBzdXBwb3J0IGVpdGhlciBmb3IKLSAgICAgICBjdXN0b20gTVJPcyB0aGF0IGluY2x1ZGUgdHlwZXMgdGhhdCBhcmUgbm90IG9mZmljaWFsbHkgc3VwZXIKLSAgICAgICB0eXBlcy4KKyAgICAgICBoYXMgYSBjdXN0b20gTVJPIHRoYXQgaW5jbHVkZXMgYSB0eXBlIHdoaWNoIGlzIG5vdCBvZmZpY2lhbGx5CisgICAgICAgc3VwZXIgdHlwZS4KIAogICAgICAgIENhbGxlZCBmcm9tIG1yb19pbnRlcm5hbCwgd2hpY2ggd2lsbCBzdWJzZXF1ZW50bHkgYmUgY2FsbGVkIG9uCiAgICAgICAgZWFjaCBzdWJjbGFzcyB3aGVuIHRoZWlyIG1ybyBpcyByZWN1cnNpdmVseSB1cGRhdGVkLgpAQCAtMTIwLDExICsxMzUsNyBAQAogICAgICAgICBQeU9iamVjdCAqYiA9IFB5VHVwbGVfR0VUX0lURU0oYmFzZXMsIGkpOwogICAgICAgICBQeVR5cGVPYmplY3QgKmNsczsKIAotICAgICAgICBpZiAoIVB5VHlwZV9DaGVjayhiKSApIHsKLSAgICAgICAgICAgIGNsZWFyID0gMTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0KKyAgICAgICAgYXNzZXJ0KFB5VHlwZV9DaGVjayhiKSk7CiAgICAgICAgIGNscyA9IChQeVR5cGVPYmplY3QgKiliOwogCiAgICAgICAgIGlmICghUHlUeXBlX0hhc0ZlYXR1cmUoY2xzLCBQeV9UUEZMQUdTX0hBVkVfVkVSU0lPTl9UQUcpIHx8CkBAIC0yMDEsNiArMjEyLDIyIEBACiAgICAgezB9CiB9OwogCitzdGF0aWMgaW50CitjaGVja19zZXRfc3BlY2lhbF90eXBlX2F0dHIoUHlUeXBlT2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqdmFsdWUsIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgICAgaWYgKCEodHlwZS0+dHBfZmxhZ3MgJiBQeV9UUEZMQUdTX0hFQVBUWVBFKSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgImNhbid0IHNldCAlcy4lcyIsIHR5cGUtPnRwX25hbWUsIG5hbWUpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgImNhbid0IGRlbGV0ZSAlcy4lcyIsIHR5cGUtPnRwX25hbWUsIG5hbWUpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBQeU9iamVjdCAqCiB0eXBlX25hbWUoUHlUeXBlT2JqZWN0ICp0eXBlLCB2b2lkICpjb250ZXh0KQogewpAQCAtMjIyLDYgKzI0OSwxOSBAQAogICAgIH0KIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK3R5cGVfcXVhbG5hbWUoUHlUeXBlT2JqZWN0ICp0eXBlLCB2b2lkICpjb250ZXh0KQoreworICAgIGlmICh0eXBlLT50cF9mbGFncyAmIFB5X1RQRkxBR1NfSEVBUFRZUEUpIHsKKyAgICAgICAgUHlIZWFwVHlwZU9iamVjdCogZXQgPSAoUHlIZWFwVHlwZU9iamVjdCopdHlwZTsKKyAgICAgICAgUHlfSU5DUkVGKGV0LT5odF9xdWFsbmFtZSk7CisgICAgICAgIHJldHVybiBldC0+aHRfcXVhbG5hbWU7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICByZXR1cm4gdHlwZV9uYW1lKHR5cGUsIGNvbnRleHQpOworICAgIH0KK30KKwogc3RhdGljIGludAogdHlwZV9zZXRfbmFtZShQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICp2YWx1ZSwgdm9pZCAqY29udGV4dCkKIHsKQEAgLTIyOSwxNiArMjY5LDggQEAKICAgICBjaGFyICp0cF9uYW1lOwogICAgIFB5T2JqZWN0ICp0bXA7CiAKLSAgICBpZiAoISh0eXBlLT50cF9mbGFncyAmIFB5X1RQRkxBR1NfSEVBUFRZUEUpKSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAiY2FuJ3Qgc2V0ICVzLl9fbmFtZV9fIiwgdHlwZS0+dHBfbmFtZSk7CisgICAgaWYgKCFjaGVja19zZXRfc3BlY2lhbF90eXBlX2F0dHIodHlwZSwgdmFsdWUsICJfX25hbWVfXyIpKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICJjYW4ndCBkZWxldGUgJXMuX19uYW1lX18iLCB0eXBlLT50cF9uYW1lKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KICAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh2YWx1ZSkpIHsKICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICJjYW4gb25seSBhc3NpZ24gc3RyaW5nIHRvICVzLl9fbmFtZV9fLCBub3QgJyVzJyIsCkBAIC0yNzQsNiArMzA2LDI1IEBACiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBpbnQKK3R5cGVfc2V0X3F1YWxuYW1lKFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKnZhbHVlLCB2b2lkICpjb250ZXh0KQoreworICAgIFB5SGVhcFR5cGVPYmplY3QqIGV0OworCisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodmFsdWUpKSB7CisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAiY2FuIG9ubHkgYXNzaWduIHN0cmluZyB0byAlcy5fX3F1YWxuYW1lX18sIG5vdCAnJXMnIiwKKyAgICAgICAgICAgICAgICAgICAgIHR5cGUtPnRwX25hbWUsIFB5X1RZUEUodmFsdWUpLT50cF9uYW1lKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGV0ID0gKFB5SGVhcFR5cGVPYmplY3QqKXR5cGU7CisgICAgUHlfSU5DUkVGKHZhbHVlKTsKKyAgICBQeV9ERUNSRUYoZXQtPmh0X3F1YWxuYW1lKTsKKyAgICBldC0+aHRfcXVhbG5hbWUgPSB2YWx1ZTsKKyAgICByZXR1cm4gMDsKK30KKwogc3RhdGljIFB5T2JqZWN0ICoKIHR5cGVfbW9kdWxlKFB5VHlwZU9iamVjdCAqdHlwZSwgdm9pZCAqY29udGV4dCkKIHsKQEAgLTI4MSw3ICszMzIsNyBAQAogICAgIGNoYXIgKnM7CiAKICAgICBpZiAodHlwZS0+dHBfZmxhZ3MgJiBQeV9UUEZMQUdTX0hFQVBUWVBFKSB7Ci0gICAgICAgIG1vZCA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKHR5cGUtPnRwX2RpY3QsICJfX21vZHVsZV9fIik7CisgICAgICAgIG1vZCA9IF9QeURpY3RfR2V0SXRlbUlkKHR5cGUtPnRwX2RpY3QsICZQeUlkX19fbW9kdWxlX18pOwogICAgICAgICBpZiAoIW1vZCkgewogICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0F0dHJpYnV0ZUVycm9yLCAiX19tb2R1bGVfXyIpOwogICAgICAgICAgICAgcmV0dXJuIDA7CkBAIC0zMDEsMjAgKzM1MiwxMiBAQAogc3RhdGljIGludAogdHlwZV9zZXRfbW9kdWxlKFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKnZhbHVlLCB2b2lkICpjb250ZXh0KQogewotICAgIGlmICghKHR5cGUtPnRwX2ZsYWdzICYgUHlfVFBGTEFHU19IRUFQVFlQRSkpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICJjYW4ndCBzZXQgJXMuX19tb2R1bGVfXyIsIHR5cGUtPnRwX25hbWUpOworICAgIGlmICghY2hlY2tfc2V0X3NwZWNpYWxfdHlwZV9hdHRyKHR5cGUsIHZhbHVlLCAiX19tb2R1bGVfXyIpKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICJjYW4ndCBkZWxldGUgJXMuX19tb2R1bGVfXyIsIHR5cGUtPnRwX25hbWUpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQogCiAgICAgUHlUeXBlX01vZGlmaWVkKHR5cGUpOwogCi0gICAgcmV0dXJuIFB5RGljdF9TZXRJdGVtU3RyaW5nKHR5cGUtPnRwX2RpY3QsICJfX21vZHVsZV9fIiwgdmFsdWUpOworICAgIHJldHVybiBfUHlEaWN0X1NldEl0ZW1JZCh0eXBlLT50cF9kaWN0LCAmUHlJZF9fX21vZHVsZV9fLCB2YWx1ZSk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC00MzMsMTYgKzQ3Niw4IEBACiAgICAgUHlUeXBlT2JqZWN0ICpuZXdfYmFzZSwgKm9sZF9iYXNlOwogICAgIFB5T2JqZWN0ICpvbGRfYmFzZXMsICpvbGRfbXJvOwogCi0gICAgaWYgKCEodHlwZS0+dHBfZmxhZ3MgJiBQeV9UUEZMQUdTX0hFQVBUWVBFKSkgewotICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgImNhbid0IHNldCAlcy5fX2Jhc2VzX18iLCB0eXBlLT50cF9uYW1lKTsKKyAgICBpZiAoIWNoZWNrX3NldF9zcGVjaWFsX3R5cGVfYXR0cih0eXBlLCB2YWx1ZSwgIl9fYmFzZXNfXyIpKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICJjYW4ndCBkZWxldGUgJXMuX19iYXNlc19fIiwgdHlwZS0+dHBfbmFtZSk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9CiAgICAgaWYgKCFQeVR1cGxlX0NoZWNrKHZhbHVlKSkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgICJjYW4gb25seSBhc3NpZ24gdHVwbGUgdG8gJXMuX19iYXNlc19fLCBub3QgJXMiLApAQCAtNDU5LDggKzQ5NCw3IEBACiAgICAgICAgIG9iID0gUHlUdXBsZV9HRVRfSVRFTSh2YWx1ZSwgaSk7CiAgICAgICAgIGlmICghUHlUeXBlX0NoZWNrKG9iKSkgewogICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiJXMuX19iYXNlc19fIG11c3QgYmUgdHVwbGUgb2Ygb2xkLSBvciAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIm5ldy1zdHlsZSBjbGFzc2VzLCBub3QgJyVzJyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIiVzLl9fYmFzZXNfXyBtdXN0IGJlIHR1cGxlIG9mIGNsYXNzZXMsIG5vdCAnJXMnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLT50cF9uYW1lLCBQeV9UWVBFKG9iKS0+dHBfbmFtZSk7CiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIH0KQEAgLTU3OCw3ICs2MTIsNyBAQAogICAgIFB5T2JqZWN0ICpyZXN1bHQ7CiAgICAgaWYgKCEodHlwZS0+dHBfZmxhZ3MgJiBQeV9UUEZMQUdTX0hFQVBUWVBFKSAmJiB0eXBlLT50cF9kb2MgIT0gTlVMTCkKICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKHR5cGUtPnRwX2RvYyk7Ci0gICAgcmVzdWx0ID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcodHlwZS0+dHBfZGljdCwgIl9fZG9jX18iKTsKKyAgICByZXN1bHQgPSBfUHlEaWN0X0dldEl0ZW1JZCh0eXBlLT50cF9kaWN0LCAmUHlJZF9fX2RvY19fKTsKICAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKICAgICAgICAgcmVzdWx0ID0gUHlfTm9uZTsKICAgICAgICAgUHlfSU5DUkVGKHJlc3VsdCk7CkBAIC01OTMsNiArNjI3LDE1IEBACiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGludAordHlwZV9zZXRfZG9jKFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKnZhbHVlLCB2b2lkICpjb250ZXh0KQoreworICAgIGlmICghY2hlY2tfc2V0X3NwZWNpYWxfdHlwZV9hdHRyKHR5cGUsIHZhbHVlLCAiX19kb2NfXyIpKQorICAgICAgICByZXR1cm4gLTE7CisgICAgUHlUeXBlX01vZGlmaWVkKHR5cGUpOworICAgIHJldHVybiBfUHlEaWN0X1NldEl0ZW1JZCh0eXBlLT50cF9kaWN0LCAmUHlJZF9fX2RvY19fLCB2YWx1ZSk7Cit9CisKIHN0YXRpYyBQeU9iamVjdCAqCiB0eXBlX19faW5zdGFuY2VjaGVja19fKFB5T2JqZWN0ICp0eXBlLCBQeU9iamVjdCAqaW5zdCkKIHsKQEAgLTYyMywxMiArNjY2LDEzIEBACiAKIHN0YXRpYyBQeUdldFNldERlZiB0eXBlX2dldHNldHNbXSA9IHsKICAgICB7Il9fbmFtZV9fIiwgKGdldHRlcil0eXBlX25hbWUsIChzZXR0ZXIpdHlwZV9zZXRfbmFtZSwgTlVMTH0sCisgICAgeyJfX3F1YWxuYW1lX18iLCAoZ2V0dGVyKXR5cGVfcXVhbG5hbWUsIChzZXR0ZXIpdHlwZV9zZXRfcXVhbG5hbWUsIE5VTEx9LAogICAgIHsiX19iYXNlc19fIiwgKGdldHRlcil0eXBlX2dldF9iYXNlcywgKHNldHRlcil0eXBlX3NldF9iYXNlcywgTlVMTH0sCiAgICAgeyJfX21vZHVsZV9fIiwgKGdldHRlcil0eXBlX21vZHVsZSwgKHNldHRlcil0eXBlX3NldF9tb2R1bGUsIE5VTEx9LAogICAgIHsiX19hYnN0cmFjdG1ldGhvZHNfXyIsIChnZXR0ZXIpdHlwZV9hYnN0cmFjdG1ldGhvZHMsCiAgICAgIChzZXR0ZXIpdHlwZV9zZXRfYWJzdHJhY3RtZXRob2RzLCBOVUxMfSwKICAgICB7Il9fZGljdF9fIiwgIChnZXR0ZXIpdHlwZV9kaWN0LCAgTlVMTCwgTlVMTH0sCi0gICAgeyJfX2RvY19fIiwgKGdldHRlcil0eXBlX2dldF9kb2MsIE5VTEwsIE5VTEx9LAorICAgIHsiX19kb2NfXyIsIChnZXR0ZXIpdHlwZV9nZXRfZG9jLCAoc2V0dGVyKXR5cGVfc2V0X2RvYywgTlVMTH0sCiAgICAgezB9CiB9OwogCkBAIC02NDQsNyArNjg4LDcgQEAKICAgICAgICAgUHlfREVDUkVGKG1vZCk7CiAgICAgICAgIG1vZCA9IE5VTEw7CiAgICAgfQotICAgIG5hbWUgPSB0eXBlX25hbWUodHlwZSwgTlVMTCk7CisgICAgbmFtZSA9IHR5cGVfcXVhbG5hbWUodHlwZSwgTlVMTCk7CiAgICAgaWYgKG5hbWUgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTkwNCw3ICs5NDgsNyBAQAogCiAgICAgLyogRmluZCB0aGUgbmVhcmVzdCBiYXNlIHdpdGggYSBkaWZmZXJlbnQgdHBfZGVhbGxvYyAqLwogICAgIGJhc2UgPSB0eXBlOwotICAgIHdoaWxlICgoYmFzZWRlYWxsb2MgPSBiYXNlLT50cF9kZWFsbG9jKSA9PSBzdWJ0eXBlX2RlYWxsb2MpIHsKKyAgICB3aGlsZSAoKC8qYmFzZWRlYWxsb2MgPSovIGJhc2UtPnRwX2RlYWxsb2MpID09IHN1YnR5cGVfZGVhbGxvYykgewogICAgICAgICBiYXNlID0gYmFzZS0+dHBfYmFzZTsKICAgICAgICAgYXNzZXJ0KGJhc2UpOwogICAgIH0KQEAgLTExMjcsMTYgKzExNzEsMTEgQEAKICovCiAKIHN0YXRpYyBQeU9iamVjdCAqCi1sb29rdXBfbWF5YmUoUHlPYmplY3QgKnNlbGYsIGNoYXIgKmF0dHJzdHIsIFB5T2JqZWN0ICoqYXR0cm9iaikKK2xvb2t1cF9tYXliZShQeU9iamVjdCAqc2VsZiwgX1B5X0lkZW50aWZpZXIgKmF0dHJpZCkKIHsKICAgICBQeU9iamVjdCAqcmVzOwogCi0gICAgaWYgKCphdHRyb2JqID09IE5VTEwpIHsKLSAgICAgICAgKmF0dHJvYmogPSBQeVVuaWNvZGVfSW50ZXJuRnJvbVN0cmluZyhhdHRyc3RyKTsKLSAgICAgICAgaWYgKCphdHRyb2JqID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmVzID0gX1B5VHlwZV9Mb29rdXAoUHlfVFlQRShzZWxmKSwgKmF0dHJvYmopOworICAgIHJlcyA9IF9QeVR5cGVfTG9va3VwSWQoUHlfVFlQRShzZWxmKSwgYXR0cmlkKTsKICAgICBpZiAocmVzICE9IE5VTEwpIHsKICAgICAgICAgZGVzY3JnZXRmdW5jIGY7CiAgICAgICAgIGlmICgoZiA9IFB5X1RZUEUocmVzKS0+dHBfZGVzY3JfZ2V0KSA9PSBOVUxMKQpAQCAtMTE0OCwxOCArMTE4NywxOCBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotbG9va3VwX21ldGhvZChQeU9iamVjdCAqc2VsZiwgY2hhciAqYXR0cnN0ciwgUHlPYmplY3QgKiphdHRyb2JqKQorbG9va3VwX21ldGhvZChQeU9iamVjdCAqc2VsZiwgX1B5X0lkZW50aWZpZXIgKmF0dHJpZCkKIHsKLSAgICBQeU9iamVjdCAqcmVzID0gbG9va3VwX21heWJlKHNlbGYsIGF0dHJzdHIsIGF0dHJvYmopOworICAgIFB5T2JqZWN0ICpyZXMgPSBsb29rdXBfbWF5YmUoc2VsZiwgYXR0cmlkKTsKICAgICBpZiAocmVzID09IE5VTEwgJiYgIVB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgIFB5RXJyX1NldE9iamVjdChQeUV4Y19BdHRyaWJ1dGVFcnJvciwgKmF0dHJvYmopOworICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNfQXR0cmlidXRlRXJyb3IsIGF0dHJpZC0+b2JqZWN0KTsKICAgICByZXR1cm4gcmVzOwogfQogCiBQeU9iamVjdCAqCi1fUHlPYmplY3RfTG9va3VwU3BlY2lhbChQeU9iamVjdCAqc2VsZiwgY2hhciAqYXR0cnN0ciwgUHlPYmplY3QgKiphdHRyb2JqKQorX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwoUHlPYmplY3QgKnNlbGYsIF9QeV9JZGVudGlmaWVyICphdHRyaWQpCiB7Ci0gICAgcmV0dXJuIGxvb2t1cF9tYXliZShzZWxmLCBhdHRyc3RyLCBhdHRyb2JqKTsKKyAgICByZXR1cm4gbG9va3VwX21heWJlKHNlbGYsIGF0dHJpZCk7CiB9CiAKIC8qIEEgdmFyaWF0aW9uIG9mIFB5T2JqZWN0X0NhbGxNZXRob2QgdGhhdCB1c2VzIGxvb2t1cF9tZXRob2QoKQpAQCAtMTE2NywxNyArMTIwNiwxNyBAQAogICAgYXMgbG9va3VwX21ldGhvZCB0byBjYWNoZSB0aGUgaW50ZXJuZWQgbmFtZSBzdHJpbmcgb2JqZWN0LiAqLwogCiBzdGF0aWMgUHlPYmplY3QgKgotY2FsbF9tZXRob2QoUHlPYmplY3QgKm8sIGNoYXIgKm5hbWUsIFB5T2JqZWN0ICoqbmFtZW9iaiwgY2hhciAqZm9ybWF0LCAuLi4pCitjYWxsX21ldGhvZChQeU9iamVjdCAqbywgX1B5X0lkZW50aWZpZXIgKm5hbWVpZCwgY2hhciAqZm9ybWF0LCAuLi4pCiB7CiAgICAgdmFfbGlzdCB2YTsKICAgICBQeU9iamVjdCAqYXJncywgKmZ1bmMgPSAwLCAqcmV0dmFsOwogICAgIHZhX3N0YXJ0KHZhLCBmb3JtYXQpOwogCi0gICAgZnVuYyA9IGxvb2t1cF9tYXliZShvLCBuYW1lLCBuYW1lb2JqKTsKKyAgICBmdW5jID0gbG9va3VwX21heWJlKG8sIG5hbWVpZCk7CiAgICAgaWYgKGZ1bmMgPT0gTlVMTCkgewogICAgICAgICB2YV9lbmQodmEpOwogICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCi0gICAgICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNfQXR0cmlidXRlRXJyb3IsICpuYW1lb2JqKTsKKyAgICAgICAgICAgIFB5RXJyX1NldE9iamVjdChQeUV4Y19BdHRyaWJ1dGVFcnJvciwgbmFtZWlkLT5vYmplY3QpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKQEAgLTEyMDMsMTkgKzEyNDIsMTcgQEAKIC8qIENsb25lIG9mIGNhbGxfbWV0aG9kKCkgdGhhdCByZXR1cm5zIE5vdEltcGxlbWVudGVkIHdoZW4gdGhlIGxvb2t1cCBmYWlscy4gKi8KIAogc3RhdGljIFB5T2JqZWN0ICoKLWNhbGxfbWF5YmUoUHlPYmplY3QgKm8sIGNoYXIgKm5hbWUsIFB5T2JqZWN0ICoqbmFtZW9iaiwgY2hhciAqZm9ybWF0LCAuLi4pCitjYWxsX21heWJlKFB5T2JqZWN0ICpvLCBfUHlfSWRlbnRpZmllciAqbmFtZWlkLCBjaGFyICpmb3JtYXQsIC4uLikKIHsKICAgICB2YV9saXN0IHZhOwogICAgIFB5T2JqZWN0ICphcmdzLCAqZnVuYyA9IDAsICpyZXR2YWw7CiAgICAgdmFfc3RhcnQodmEsIGZvcm1hdCk7CiAKLSAgICBmdW5jID0gbG9va3VwX21heWJlKG8sIG5hbWUsIG5hbWVvYmopOworICAgIGZ1bmMgPSBsb29rdXBfbWF5YmUobywgbmFtZWlkKTsKICAgICBpZiAoZnVuYyA9PSBOVUxMKSB7CiAgICAgICAgIHZhX2VuZCh2YSk7Ci0gICAgICAgIGlmICghUHlFcnJfT2NjdXJyZWQoKSkgewotICAgICAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgICAgIHJldHVybiBQeV9Ob3RJbXBsZW1lbnRlZDsKLSAgICAgICAgfQorICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIApAQCAtMTI4MSw3ICsxMzE4LDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBjbGFzc19uYW1lKFB5T2JqZWN0ICpjbHMpCiB7Ci0gICAgUHlPYmplY3QgKm5hbWUgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGNscywgIl9fbmFtZV9fIik7CisgICAgUHlPYmplY3QgKm5hbWUgPSBfUHlPYmplY3RfR2V0QXR0cklkKGNscywgJlB5SWRfX19uYW1lX18pOwogICAgIGlmIChuYW1lID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgUHlfWERFQ1JFRihuYW1lKTsKQEAgLTE1MzYsOSArMTU3Myw5IEBACiAgICAgICAgIHJlc3VsdCA9IG1yb19pbXBsZW1lbnRhdGlvbih0eXBlKTsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIHN0YXRpYyBQeU9iamVjdCAqbXJvX3N0cjsKKyAgICAgICAgX1B5X0lERU5USUZJRVIobXJvKTsKICAgICAgICAgY2hlY2tpdCA9IDE7Ci0gICAgICAgIG1ybyA9IGxvb2t1cF9tZXRob2QoKFB5T2JqZWN0ICopdHlwZSwgIm1ybyIsICZtcm9fc3RyKTsKKyAgICAgICAgbXJvID0gbG9va3VwX21ldGhvZCgoUHlPYmplY3QgKil0eXBlLCAmUHlJZF9tcm8pOwogICAgICAgICBpZiAobXJvID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgIHJlc3VsdCA9IFB5T2JqZWN0X0NhbGxPYmplY3QobXJvLCBOVUxMKTsKQEAgLTE1ODIsNyArMTYxOSw3IEBACiAgICAgdHlwZS0+dHBfbXJvID0gdHVwbGU7CiAKICAgICB0eXBlX21yb19tb2RpZmllZCh0eXBlLCB0eXBlLT50cF9tcm8pOwotICAgIC8qIGNvcm5lciBjYXNlOiB0aGUgb2xkLXN0eWxlIHN1cGVyIGNsYXNzIG1pZ2h0IGhhdmUgYmVlbiBoaWRkZW4KKyAgICAvKiBjb3JuZXIgY2FzZTogdGhlIHN1cGVyIGNsYXNzIG1pZ2h0IGhhdmUgYmVlbiBoaWRkZW4KICAgICAgICBmcm9tIHRoZSBjdXN0b20gTVJPICovCiAgICAgdHlwZV9tcm9fbW9kaWZpZWQodHlwZSwgdHlwZS0+dHBfYmFzZXMpOwogCkBAIC0xNjM5LDkgKzE2NzYsOCBAQAogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKGJhc2UgPT0gTlVMTCkKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICJhIG5ldy1zdHlsZSBjbGFzcyBjYW4ndCBoYXZlIG9ubHkgY2xhc3NpYyBiYXNlcyIpOworICAgIGFzc2VydCAoYmFzZSAhPSBOVUxMKTsKKwogICAgIHJldHVybiBiYXNlOwogfQogCkBAIC0xNzA5LDE1ICsxNzQ1LDkgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBnZXRfZGljdF9kZXNjcmlwdG9yKFB5VHlwZU9iamVjdCAqdHlwZSkKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmRpY3Rfc3RyOwogICAgIFB5T2JqZWN0ICpkZXNjcjsKIAotICAgIGlmIChkaWN0X3N0ciA9PSBOVUxMKSB7Ci0gICAgICAgIGRpY3Rfc3RyID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fZGljdF9fIik7Ci0gICAgICAgIGlmIChkaWN0X3N0ciA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGRlc2NyID0gX1B5VHlwZV9Mb29rdXAodHlwZSwgZGljdF9zdHIpOworICAgIGRlc2NyID0gX1B5VHlwZV9Mb29rdXBJZCh0eXBlLCAmUHlJZF9fX2RpY3RfXyk7CiAgICAgaWYgKGRlc2NyID09IE5VTEwgfHwgIVB5RGVzY3JfSXNEYXRhKGRlc2NyKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTE3MzUsOCArMTc2NSw2IEBACiBzdGF0aWMgUHlPYmplY3QgKgogc3VidHlwZV9kaWN0KFB5T2JqZWN0ICpvYmosIHZvaWQgKmNvbnRleHQpCiB7Ci0gICAgUHlPYmplY3QgKipkaWN0cHRyOwotICAgIFB5T2JqZWN0ICpkaWN0OwogICAgIFB5VHlwZU9iamVjdCAqYmFzZTsKIAogICAgIGJhc2UgPSBnZXRfYnVpbHRpbl9iYXNlX3dpdGhfZGljdChQeV9UWVBFKG9iaikpOwpAQCAtMTc1NCwyNSArMTc4MiwxMyBAQAogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmdW5jKGRlc2NyLCBvYmosIChQeU9iamVjdCAqKShQeV9UWVBFKG9iaikpKTsKICAgICB9Ci0KLSAgICBkaWN0cHRyID0gX1B5T2JqZWN0X0dldERpY3RQdHIob2JqKTsKLSAgICBpZiAoZGljdHB0ciA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19BdHRyaWJ1dGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIG9iamVjdCBoYXMgbm8gX19kaWN0X18iKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGRpY3QgPSAqZGljdHB0cjsKLSAgICBpZiAoZGljdCA9PSBOVUxMKQotICAgICAgICAqZGljdHB0ciA9IGRpY3QgPSBQeURpY3RfTmV3KCk7Ci0gICAgUHlfWElOQ1JFRihkaWN0KTsKLSAgICByZXR1cm4gZGljdDsKKyAgICByZXR1cm4gUHlPYmplY3RfR2VuZXJpY0dldERpY3Qob2JqLCBjb250ZXh0KTsKIH0KIAogc3RhdGljIGludAogc3VidHlwZV9zZXRkaWN0KFB5T2JqZWN0ICpvYmosIFB5T2JqZWN0ICp2YWx1ZSwgdm9pZCAqY29udGV4dCkKIHsKLSAgICBQeU9iamVjdCAqKmRpY3RwdHI7Ci0gICAgUHlPYmplY3QgKmRpY3Q7CisgICAgUHlPYmplY3QgKmRpY3QsICoqZGljdHB0cjsKICAgICBQeVR5cGVPYmplY3QgKmJhc2U7CiAKICAgICBiYXNlID0gZ2V0X2J1aWx0aW5fYmFzZV93aXRoX2RpY3QoUHlfVFlQRShvYmopKTsKQEAgLTE3OTAsNyArMTgwNiw3IEBACiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGZ1bmMoZGVzY3IsIG9iaiwgdmFsdWUpOwogICAgIH0KLQorICAgIC8qIEFsbW9zdCBsaWtlIFB5T2JqZWN0X0dlbmVyaWNTZXREaWN0LCBidXQgYWxsb3cgX19kaWN0X18gdG8gYmUgZGVsZXRlZC4gKi8KICAgICBkaWN0cHRyID0gX1B5T2JqZWN0X0dldERpY3RQdHIob2JqKTsKICAgICBpZiAoZGljdHB0ciA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19BdHRyaWJ1dGVFcnJvciwKQEAgLTE5NTEsMTQgKzE5NjcsMTYgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiB0eXBlX25ldyhQeVR5cGVPYmplY3QgKm1ldGF0eXBlLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7Ci0gICAgUHlPYmplY3QgKm5hbWUsICpiYXNlcywgKmRpY3Q7CisgICAgUHlPYmplY3QgKm5hbWUsICpiYXNlcyA9IE5VTEwsICpvcmlnX2RpY3QsICpkaWN0ID0gTlVMTDsKICAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7Im5hbWUiLCAiYmFzZXMiLCAiZGljdCIsIDB9OwotICAgIFB5T2JqZWN0ICpzbG90cywgKnRtcCwgKm5ld3Nsb3RzOwotICAgIFB5VHlwZU9iamVjdCAqdHlwZSwgKmJhc2UsICp0bXB0eXBlLCAqd2lubmVyOworICAgIFB5T2JqZWN0ICpxdWFsbmFtZSwgKnNsb3RzID0gTlVMTCwgKnRtcCwgKm5ld3Nsb3RzOworICAgIFB5VHlwZU9iamVjdCAqdHlwZSA9IE5VTEwsICpiYXNlLCAqdG1wdHlwZSwgKndpbm5lcjsKICAgICBQeUhlYXBUeXBlT2JqZWN0ICpldDsKICAgICBQeU1lbWJlckRlZiAqbXA7CiAgICAgUHlfc3NpemVfdCBpLCBuYmFzZXMsIG5zbG90cywgc2xvdG9mZnNldCwgYWRkX2RpY3QsIGFkZF93ZWFrOwogICAgIGludCBqLCBtYXlfYWRkX2RpY3QsIG1heV9hZGRfd2VhazsKKyAgICBfUHlfSURFTlRJRklFUihfX3F1YWxuYW1lX18pOworICAgIF9QeV9JREVOVElGSUVSKF9fc2xvdHNfXyk7CiAKICAgICBhc3NlcnQoYXJncyAhPSBOVUxMICYmIFB5VHVwbGVfQ2hlY2soYXJncykpOwogICAgIGFzc2VydChrd2RzID09IE5VTEwgfHwgUHlEaWN0X0NoZWNrKGt3ZHMpKTsKQEAgLTE5ODgsNyArMjAwNiw3IEBACiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIlVPIU8hOnR5cGUiLCBrd2xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlB5VHVwbGVfVHlwZSwgJmJhc2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeURpY3RfVHlwZSwgJmRpY3QpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeURpY3RfVHlwZSwgJm9yaWdfZGljdCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgLyogRGV0ZXJtaW5lIHRoZSBwcm9wZXIgbWV0YXR5cGUgdG8gZGVhbCB3aXRoIHRoaXM6ICovCkBAIC0yMDA4LDMwICsyMDI2LDMwIEBACiAgICAgaWYgKG5iYXNlcyA9PSAwKSB7CiAgICAgICAgIGJhc2VzID0gUHlUdXBsZV9QYWNrKDEsICZQeUJhc2VPYmplY3RfVHlwZSk7CiAgICAgICAgIGlmIChiYXNlcyA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICBuYmFzZXMgPSAxOwogICAgIH0KICAgICBlbHNlCiAgICAgICAgIFB5X0lOQ1JFRihiYXNlcyk7CiAKLSAgICAvKiBYWFggRnJvbSBoZXJlIHVudGlsIHR5cGUgaXMgYWxsb2NhdGVkLCAicmV0dXJuIE5VTEwiIGxlYWtzIGJhc2VzISAqLwotCiAgICAgLyogQ2FsY3VsYXRlIGJlc3QgYmFzZSwgYW5kIGNoZWNrIHRoYXQgYWxsIGJhc2VzIGFyZSB0eXBlIG9iamVjdHMgKi8KICAgICBiYXNlID0gYmVzdF9iYXNlKGJhc2VzKTsKICAgICBpZiAoYmFzZSA9PSBOVUxMKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihiYXNlcyk7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBnb3RvIGVycm9yOwogICAgIH0KICAgICBpZiAoIVB5VHlwZV9IYXNGZWF0dXJlKGJhc2UsIFB5X1RQRkxBR1NfQkFTRVRZUEUpKSB7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAidHlwZSAnJS4xMDBzJyBpcyBub3QgYW4gYWNjZXB0YWJsZSBiYXNlIHR5cGUiLAogICAgICAgICAgICAgICAgICAgICAgYmFzZS0+dHBfbmFtZSk7Ci0gICAgICAgIFB5X0RFQ1JFRihiYXNlcyk7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBnb3RvIGVycm9yOwogICAgIH0KIAorICAgIGRpY3QgPSBQeURpY3RfQ29weShvcmlnX2RpY3QpOworICAgIGlmIChkaWN0ID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CisKICAgICAvKiBDaGVjayBmb3IgYSBfX3Nsb3RzX18gc2VxdWVuY2UgdmFyaWFibGUgaW4gZGljdCwgYW5kIGNvdW50IGl0ICovCi0gICAgc2xvdHMgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhkaWN0LCAiX19zbG90c19fIik7CisgICAgc2xvdHMgPSBfUHlEaWN0X0dldEl0ZW1JZChkaWN0LCAmUHlJZF9fX3Nsb3RzX18pOwogICAgIG5zbG90cyA9IDA7CiAgICAgYWRkX2RpY3QgPSAwOwogICAgIGFkZF93ZWFrID0gMDsKQEAgLTIwNTMsMTAgKzIwNzEsOCBAQAogICAgICAgICAgICAgc2xvdHMgPSBQeVR1cGxlX1BhY2soMSwgc2xvdHMpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBzbG90cyA9IFB5U2VxdWVuY2VfVHVwbGUoc2xvdHMpOwotICAgICAgICBpZiAoc2xvdHMgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlfREVDUkVGKGJhc2VzKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9CisgICAgICAgIGlmIChzbG90cyA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgYXNzZXJ0KFB5VHVwbGVfQ2hlY2soc2xvdHMpKTsKIAogICAgICAgICAvKiBBcmUgc2xvdHMgYWxsb3dlZD8gKi8KQEAgLTIwNjYsMjQgKzIwODIsMjEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAibm9uZW1wdHkgX19zbG90c19fICIKICAgICAgICAgICAgICAgICAgICAgICAgICAibm90IHN1cHBvcnRlZCBmb3Igc3VidHlwZSBvZiAnJXMnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLT50cF9uYW1lKTsKLSAgICAgICAgICBiYWRfc2xvdHM6Ci0gICAgICAgICAgICBQeV9ERUNSRUYoYmFzZXMpOwotICAgICAgICAgICAgUHlfREVDUkVGKHNsb3RzKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgfQogCiAgICAgICAgIC8qIENoZWNrIGZvciB2YWxpZCBzbG90IG5hbWVzIGFuZCB0d28gc3BlY2lhbCBjYXNlcyAqLwogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnNsb3RzOyBpKyspIHsKICAgICAgICAgICAgIFB5T2JqZWN0ICp0bXAgPSBQeVR1cGxlX0dFVF9JVEVNKHNsb3RzLCBpKTsKICAgICAgICAgICAgIGlmICghdmFsaWRfaWRlbnRpZmllcih0bXApKQotICAgICAgICAgICAgICAgIGdvdG8gYmFkX3Nsb3RzOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICBhc3NlcnQoUHlVbmljb2RlX0NoZWNrKHRtcCkpOwogICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKHRtcCwgIl9fZGljdF9fIikgPT0gMCkgewogICAgICAgICAgICAgICAgIGlmICghbWF5X2FkZF9kaWN0IHx8IGFkZF9kaWN0KSB7CiAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAiX19kaWN0X18gc2xvdCBkaXNhbGxvd2VkOiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAid2UgYWxyZWFkeSBnb3Qgb25lIik7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gYmFkX3Nsb3RzOworICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBhZGRfZGljdCsrOwogICAgICAgICAgICAgfQpAQCAtMjA5Myw3ICsyMTA2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICJfX3dlYWtyZWZfXyBzbG90IGRpc2FsbG93ZWQ6ICIKICAgICAgICAgICAgICAgICAgICAgICAgICJlaXRoZXIgd2UgYWxyZWFkeSBnb3Qgb25lLCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAib3IgX19pdGVtc2l6ZV9fICE9IDAiKTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBiYWRfc2xvdHM7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGFkZF93ZWFrKys7CiAgICAgICAgICAgICB9CkBAIC0yMTA1LDcgKzIxMTgsNyBAQAogICAgICAgICAqLwogICAgICAgICBuZXdzbG90cyA9IFB5TGlzdF9OZXcobnNsb3RzIC0gYWRkX2RpY3QgLSBhZGRfd2Vhayk7CiAgICAgICAgIGlmIChuZXdzbG90cyA9PSBOVUxMKQotICAgICAgICAgICAgZ290byBiYWRfc2xvdHM7CisgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICBmb3IgKGkgPSBqID0gMDsgaSA8IG5zbG90czsgaSsrKSB7CiAgICAgICAgICAgICB0bXAgPSBQeVR1cGxlX0dFVF9JVEVNKHNsb3RzLCBpKTsKICAgICAgICAgICAgIGlmICgoYWRkX2RpY3QgJiYKQEAgLTIxMTYsMjUgKzIxMjksMjkgQEAKICAgICAgICAgICAgIHRtcCA9X1B5X01hbmdsZShuYW1lLCB0bXApOwogICAgICAgICAgICAgaWYgKCF0bXApIHsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYobmV3c2xvdHMpOwotICAgICAgICAgICAgICAgIGdvdG8gYmFkX3Nsb3RzOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBQeUxpc3RfU0VUX0lURU0obmV3c2xvdHMsIGosIHRtcCk7CisgICAgICAgICAgICBpZiAoUHlEaWN0X0dldEl0ZW0oZGljdCwgdG1wKSkgeworICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJVIgaW4gX19zbG90c19fIGNvbmZsaWN0cyB3aXRoIGNsYXNzIHZhcmlhYmxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wKTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYobmV3c2xvdHMpOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBqKys7CiAgICAgICAgIH0KICAgICAgICAgYXNzZXJ0KGogPT0gbnNsb3RzIC0gYWRkX2RpY3QgLSBhZGRfd2Vhayk7CiAgICAgICAgIG5zbG90cyA9IGo7Ci0gICAgICAgIFB5X0RFQ1JFRihzbG90cyk7CisgICAgICAgIFB5X0NMRUFSKHNsb3RzKTsKICAgICAgICAgaWYgKFB5TGlzdF9Tb3J0KG5ld3Nsb3RzKSA9PSAtMSkgewotICAgICAgICAgICAgUHlfREVDUkVGKGJhc2VzKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRihuZXdzbG90cyk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgc2xvdHMgPSBQeUxpc3RfQXNUdXBsZShuZXdzbG90cyk7CiAgICAgICAgIFB5X0RFQ1JFRihuZXdzbG90cyk7Ci0gICAgICAgIGlmIChzbG90cyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBQeV9ERUNSRUYoYmFzZXMpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHNsb3RzID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycm9yOwogCiAgICAgICAgIC8qIFNlY29uZGFyeSBiYXNlcyBtYXkgcHJvdmlkZSB3ZWFrcmVmcyBvciBkaWN0ICovCiAgICAgICAgIGlmIChuYmFzZXMgPiAxICYmCkBAIC0yMTYyLDIyICsyMTc5LDE3IEBACiAgICAgICAgIH0KICAgICB9CiAKLSAgICAvKiBYWFggRnJvbSBoZXJlIHVudGlsIHR5cGUgaXMgc2FmZWx5IGFsbG9jYXRlZCwKLSAgICAgICAicmV0dXJuIE5VTEwiIG1heSBsZWFrIHNsb3RzISAqLwotCiAgICAgLyogQWxsb2NhdGUgdGhlIHR5cGUgb2JqZWN0ICovCiAgICAgdHlwZSA9IChQeVR5cGVPYmplY3QgKiltZXRhdHlwZS0+dHBfYWxsb2MobWV0YXR5cGUsIG5zbG90cyk7Ci0gICAgaWYgKHR5cGUgPT0gTlVMTCkgewotICAgICAgICBQeV9YREVDUkVGKHNsb3RzKTsKLSAgICAgICAgUHlfREVDUkVGKGJhc2VzKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQorICAgIGlmICh0eXBlID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CiAKICAgICAvKiBLZWVwIG5hbWUgYW5kIHNsb3RzIGFsaXZlIGluIHRoZSBleHRlbmRlZCB0eXBlIG9iamVjdCAqLwogICAgIGV0ID0gKFB5SGVhcFR5cGVPYmplY3QgKil0eXBlOwogICAgIFB5X0lOQ1JFRihuYW1lKTsKICAgICBldC0+aHRfbmFtZSA9IG5hbWU7CiAgICAgZXQtPmh0X3Nsb3RzID0gc2xvdHM7CisgICAgc2xvdHMgPSBOVUxMOwogCiAgICAgLyogSW5pdGlhbGl6ZSB0cF9mbGFncyAqLwogICAgIHR5cGUtPnRwX2ZsYWdzID0gUHlfVFBGTEFHU19ERUZBVUxUIHwgUHlfVFBGTEFHU19IRUFQVFlQRSB8CkBAIC0yMTkxLDU5ICsyMjAzLDY5IEBACiAgICAgdHlwZS0+dHBfYXNfbWFwcGluZyA9ICZldC0+YXNfbWFwcGluZzsKICAgICB0eXBlLT50cF9hc19idWZmZXIgPSAmZXQtPmFzX2J1ZmZlcjsKICAgICB0eXBlLT50cF9uYW1lID0gX1B5VW5pY29kZV9Bc1N0cmluZyhuYW1lKTsKLSAgICBpZiAoIXR5cGUtPnRwX25hbWUpIHsKLSAgICAgICAgUHlfREVDUkVGKHR5cGUpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgaWYgKCF0eXBlLT50cF9uYW1lKQorICAgICAgICBnb3RvIGVycm9yOwogCiAgICAgLyogU2V0IHRwX2Jhc2UgYW5kIHRwX2Jhc2VzICovCiAgICAgdHlwZS0+dHBfYmFzZXMgPSBiYXNlczsKKyAgICBiYXNlcyA9IE5VTEw7CiAgICAgUHlfSU5DUkVGKGJhc2UpOwogICAgIHR5cGUtPnRwX2Jhc2UgPSBiYXNlOwogCiAgICAgLyogSW5pdGlhbGl6ZSB0cF9kaWN0IGZyb20gcGFzc2VkLWluIGRpY3QgKi8KLSAgICB0eXBlLT50cF9kaWN0ID0gZGljdCA9IFB5RGljdF9Db3B5KGRpY3QpOwotICAgIGlmIChkaWN0ID09IE5VTEwpIHsKLSAgICAgICAgUHlfREVDUkVGKHR5cGUpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgUHlfSU5DUkVGKGRpY3QpOworICAgIHR5cGUtPnRwX2RpY3QgPSBkaWN0OwogCiAgICAgLyogU2V0IF9fbW9kdWxlX18gaW4gdGhlIGRpY3QgKi8KLSAgICBpZiAoUHlEaWN0X0dldEl0ZW1TdHJpbmcoZGljdCwgIl9fbW9kdWxlX18iKSA9PSBOVUxMKSB7CisgICAgaWYgKF9QeURpY3RfR2V0SXRlbUlkKGRpY3QsICZQeUlkX19fbW9kdWxlX18pID09IE5VTEwpIHsKICAgICAgICAgdG1wID0gUHlFdmFsX0dldEdsb2JhbHMoKTsKICAgICAgICAgaWYgKHRtcCAhPSBOVUxMKSB7Ci0gICAgICAgICAgICB0bXAgPSBQeURpY3RfR2V0SXRlbVN0cmluZyh0bXAsICJfX25hbWVfXyIpOworICAgICAgICAgICAgdG1wID0gX1B5RGljdF9HZXRJdGVtSWQodG1wLCAmUHlJZF9fX25hbWVfXyk7CiAgICAgICAgICAgICBpZiAodG1wICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZGljdCwgIl9fbW9kdWxlX18iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXApIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICAgICAgaWYgKF9QeURpY3RfU2V0SXRlbUlkKGRpY3QsICZQeUlkX19fbW9kdWxlX18sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCkgPCAwKQorICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCisgICAgLyogU2V0IGh0X3F1YWxuYW1lIHRvIGRpY3RbJ19fcXVhbG5hbWVfXyddIGlmIGF2YWlsYWJsZSwgZWxzZSB0bworICAgICAgIF9fbmFtZV9fLiAgVGhlIF9fcXVhbG5hbWVfXyBhY2Nlc3NvciB3aWxsIGxvb2sgZm9yIGh0X3F1YWxuYW1lLgorICAgICovCisgICAgcXVhbG5hbWUgPSBfUHlEaWN0X0dldEl0ZW1JZChkaWN0LCAmUHlJZF9fX3F1YWxuYW1lX18pOworICAgIGlmIChxdWFsbmFtZSAhPSBOVUxMKSB7CisgICAgICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHF1YWxuYW1lKSkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSBfX3F1YWxuYW1lX18gbXVzdCBiZSBhIHN0ciwgbm90ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQeV9UWVBFKHF1YWxuYW1lKS0+dHBfbmFtZSk7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBxdWFsbmFtZSA9IGV0LT5odF9uYW1lOworICAgIH0KKyAgICBQeV9JTkNSRUYocXVhbG5hbWUpOworICAgIGV0LT5odF9xdWFsbmFtZSA9IHF1YWxuYW1lOworCiAgICAgLyogU2V0IHRwX2RvYyB0byBhIGNvcHkgb2YgZGljdFsnX19kb2NfXyddLCBpZiB0aGUgbGF0dGVyIGlzIHRoZXJlCiAgICAgICAgYW5kIGlzIGEgc3RyaW5nLiAgVGhlIF9fZG9jX18gYWNjZXNzb3Igd2lsbCBmaXJzdCBsb29rIGZvciB0cF9kb2M7CiAgICAgICAgaWYgdGhhdCBmYWlscywgaXQgd2lsbCBzdGlsbCBsb29rIGludG8gX19kaWN0X18uCiAgICAgKi8KICAgICB7Ci0gICAgICAgIFB5T2JqZWN0ICpkb2MgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhkaWN0LCAiX19kb2NfXyIpOworICAgICAgICBQeU9iamVjdCAqZG9jID0gX1B5RGljdF9HZXRJdGVtSWQoZGljdCwgJlB5SWRfX19kb2NfXyk7CiAgICAgICAgIGlmIChkb2MgIT0gTlVMTCAmJiBQeVVuaWNvZGVfQ2hlY2soZG9jKSkgewogICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICBjaGFyICpkb2Nfc3RyOwogICAgICAgICAgICAgY2hhciAqdHBfZG9jOwogCiAgICAgICAgICAgICBkb2Nfc3RyID0gX1B5VW5pY29kZV9Bc1N0cmluZyhkb2MpOwotICAgICAgICAgICAgaWYgKGRvY19zdHIgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih0eXBlKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChkb2Nfc3RyID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIC8qIFNpbGVudGx5IHRydW5jYXRlIHRoZSBkb2NzdHJpbmcgaWYgaXQgY29udGFpbnMgbnVsbCBieXRlcy4gKi8KICAgICAgICAgICAgIGxlbiA9IHN0cmxlbihkb2Nfc3RyKTsKICAgICAgICAgICAgIHRwX2RvYyA9IChjaGFyICopUHlPYmplY3RfTUFMTE9DKGxlbiArIDEpOwotICAgICAgICAgICAgaWYgKHRwX2RvYyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHR5cGUpOwotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKHRwX2RvYyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICBtZW1jcHkodHBfZG9jLCBkb2Nfc3RyLCBsZW4gKyAxKTsKICAgICAgICAgICAgIHR5cGUtPnRwX2RvYyA9IHRwX2RvYzsKICAgICAgICAgfQpAQCAtMjI1MSwyOCArMjI3MywyNSBAQAogCiAgICAgLyogU3BlY2lhbC1jYXNlIF9fbmV3X186IGlmIGl0J3MgYSBwbGFpbiBmdW5jdGlvbiwKICAgICAgICBtYWtlIGl0IGEgc3RhdGljIGZ1bmN0aW9uICovCi0gICAgdG1wID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcoZGljdCwgIl9fbmV3X18iKTsKKyAgICB0bXAgPSBfUHlEaWN0X0dldEl0ZW1JZChkaWN0LCAmUHlJZF9fX25ld19fKTsKICAgICBpZiAodG1wICE9IE5VTEwgJiYgUHlGdW5jdGlvbl9DaGVjayh0bXApKSB7CiAgICAgICAgIHRtcCA9IFB5U3RhdGljTWV0aG9kX05ldyh0bXApOwotICAgICAgICBpZiAodG1wID09IE5VTEwpIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRih0eXBlKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIFB5RGljdF9TZXRJdGVtU3RyaW5nKGRpY3QsICJfX25ld19fIiwgdG1wKTsKKyAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgaWYgKF9QeURpY3RfU2V0SXRlbUlkKGRpY3QsICZQeUlkX19fbmV3X18sIHRtcCkgPCAwKQorICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgUHlfREVDUkVGKHRtcCk7CiAgICAgfQogCiAgICAgLyogQWRkIGRlc2NyaXB0b3JzIGZvciBjdXN0b20gc2xvdHMgZnJvbSBfX3Nsb3RzX18sIG9yIGZvciBfX2RpY3RfXyAqLwogICAgIG1wID0gUHlIZWFwVHlwZV9HRVRfTUVNQkVSUyhldCk7CiAgICAgc2xvdG9mZnNldCA9IGJhc2UtPnRwX2Jhc2ljc2l6ZTsKLSAgICBpZiAoc2xvdHMgIT0gTlVMTCkgeworICAgIGlmIChldC0+aHRfc2xvdHMgIT0gTlVMTCkgewogICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnNsb3RzOyBpKyssIG1wKyspIHsKICAgICAgICAgICAgIG1wLT5uYW1lID0gX1B5VW5pY29kZV9Bc1N0cmluZygKLSAgICAgICAgICAgICAgICBQeVR1cGxlX0dFVF9JVEVNKHNsb3RzLCBpKSk7Ci0gICAgICAgICAgICBpZiAobXAtPm5hbWUgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih0eXBlKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBQeVR1cGxlX0dFVF9JVEVNKGV0LT5odF9zbG90cywgaSkpOworICAgICAgICAgICAgaWYgKG1wLT5uYW1lID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIG1wLT50eXBlID0gVF9PQkpFQ1RfRVg7CiAgICAgICAgICAgICBtcC0+b2Zmc2V0ID0gc2xvdG9mZnNldDsKIApAQCAtMjI5MCw2ICsyMzA5LDkgQEAKICAgICAgICAgICAgIHR5cGUtPnRwX2RpY3RvZmZzZXQgPSBzbG90b2Zmc2V0OwogICAgICAgICBzbG90b2Zmc2V0ICs9IHNpemVvZihQeU9iamVjdCAqKTsKICAgICB9CisgICAgaWYgKHR5cGUtPnRwX2RpY3RvZmZzZXQpIHsKKyAgICAgICAgZXQtPmh0X2NhY2hlZF9rZXlzID0gX1B5RGljdF9OZXdLZXlzRm9yQ2xhc3MoKTsKKyAgICB9CiAgICAgaWYgKGFkZF93ZWFrKSB7CiAgICAgICAgIGFzc2VydCghYmFzZS0+dHBfaXRlbXNpemUpOwogICAgICAgICB0eXBlLT50cF93ZWFrbGlzdG9mZnNldCA9IHNsb3RvZmZzZXQ7CkBAIC0yMzMzLDE1ICsyMzU1LDIxIEBACiAgICAgICAgIHR5cGUtPnRwX2ZyZWUgPSBQeU9iamVjdF9EZWw7CiAKICAgICAvKiBJbml0aWFsaXplIHRoZSByZXN0ICovCi0gICAgaWYgKFB5VHlwZV9SZWFkeSh0eXBlKSA8IDApIHsKLSAgICAgICAgUHlfREVDUkVGKHR5cGUpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgaWYgKFB5VHlwZV9SZWFkeSh0eXBlKSA8IDApCisgICAgICAgIGdvdG8gZXJyb3I7CiAKICAgICAvKiBQdXQgdGhlIHByb3BlciBzbG90cyBpbiBwbGFjZSAqLwogICAgIGZpeHVwX3Nsb3RfZGlzcGF0Y2hlcnModHlwZSk7CiAKKyAgICBQeV9ERUNSRUYoZGljdCk7CiAgICAgcmV0dXJuIChQeU9iamVjdCAqKXR5cGU7CisKK2Vycm9yOgorICAgIFB5X1hERUNSRUYoZGljdCk7CisgICAgUHlfWERFQ1JFRihiYXNlcyk7CisgICAgUHlfWERFQ1JFRihzbG90cyk7CisgICAgUHlfWERFQ1JFRih0eXBlKTsKKyAgICByZXR1cm4gTlVMTDsKIH0KIAogc3RhdGljIHNob3J0IHNsb3RvZmZzZXRzW10gPSB7CkBAIC0yMzUwLDMwICsyMzc4LDg5IEBACiB9OwogCiBQeU9iamVjdCAqCi1QeVR5cGVfRnJvbVNwZWMoUHlUeXBlX1NwZWMgKnNwZWMpCitQeVR5cGVfRnJvbVNwZWNXaXRoQmFzZXMoUHlUeXBlX1NwZWMgKnNwZWMsIFB5T2JqZWN0ICpiYXNlcykKIHsKICAgICBQeUhlYXBUeXBlT2JqZWN0ICpyZXMgPSAoUHlIZWFwVHlwZU9iamVjdCopUHlUeXBlX0dlbmVyaWNBbGxvYygmUHlUeXBlX1R5cGUsIDApOworICAgIFB5VHlwZU9iamVjdCAqdHlwZSwgKmJhc2U7CisgICAgY2hhciAqczsKICAgICBjaGFyICpyZXNfc3RhcnQgPSAoY2hhciopcmVzOwogICAgIFB5VHlwZV9TbG90ICpzbG90OworICAgIAorICAgIC8qIFNldCB0aGUgdHlwZSBuYW1lIGFuZCBxdWFsbmFtZSAqLworICAgIHMgPSBzdHJyY2hyKHNwZWMtPm5hbWUsICcuJyk7CisgICAgaWYgKHMgPT0gTlVMTCkKKyAgICAgICAgcyA9IChjaGFyKilzcGVjLT5uYW1lOworICAgIGVsc2UKKyAgICAgICAgcysrOwogCiAgICAgaWYgKHJlcyA9PSBOVUxMKQotICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcmVzLT5odF9uYW1lID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoc3BlYy0+bmFtZSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIHR5cGUgPSAmcmVzLT5odF90eXBlOworICAgIC8qIFRoZSBmbGFncyBtdXN0IGJlIGluaXRpYWxpemVkIGVhcmx5LCBiZWZvcmUgdGhlIEdDIHRyYXZlcnNlcyB1cyAqLworICAgIHR5cGUtPnRwX2ZsYWdzID0gc3BlYy0+ZmxhZ3MgfCBQeV9UUEZMQUdTX0hFQVBUWVBFOworICAgIHJlcy0+aHRfbmFtZSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKHMpOwogICAgIGlmICghcmVzLT5odF9uYW1lKQogICAgICAgICBnb3RvIGZhaWw7Ci0gICAgcmVzLT5odF90eXBlLnRwX25hbWUgPSBfUHlVbmljb2RlX0FzU3RyaW5nKHJlcy0+aHRfbmFtZSk7Ci0gICAgaWYgKCFyZXMtPmh0X3R5cGUudHBfbmFtZSkKKyAgICByZXMtPmh0X3F1YWxuYW1lID0gcmVzLT5odF9uYW1lOworICAgIFB5X0lOQ1JFRihyZXMtPmh0X3F1YWxuYW1lKTsKKyAgICB0eXBlLT50cF9uYW1lID0gc3BlYy0+bmFtZTsKKyAgICBpZiAoIXR5cGUtPnRwX25hbWUpCiAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAKKyAgICAvKiBBZGp1c3QgZm9yIGVtcHR5IHR1cGxlIGJhc2VzICovCisgICAgaWYgKCFiYXNlcykgeworICAgICAgICBiYXNlID0gJlB5QmFzZU9iamVjdF9UeXBlOworICAgICAgICAvKiBTZWUgd2hldGhlciBQeV90cF9iYXNlKHMpIHdhcyBzcGVjaWZpZWQgKi8KKyAgICAgICAgZm9yIChzbG90ID0gc3BlYy0+c2xvdHM7IHNsb3QtPnNsb3Q7IHNsb3QrKykgeworICAgICAgICAgICAgaWYgKHNsb3QtPnNsb3QgPT0gUHlfdHBfYmFzZSkKKyAgICAgICAgICAgICAgICBiYXNlID0gc2xvdC0+cGZ1bmM7CisgICAgICAgICAgICBlbHNlIGlmIChzbG90LT5zbG90ID09IFB5X3RwX2Jhc2VzKSB7CisgICAgICAgICAgICAgICAgYmFzZXMgPSBzbG90LT5wZnVuYzsKKyAgICAgICAgICAgICAgICBQeV9JTkNSRUYoYmFzZXMpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICghYmFzZXMpCisgICAgICAgICAgICBiYXNlcyA9IFB5VHVwbGVfUGFjaygxLCBiYXNlKTsKKyAgICAgICAgaWYgKCFiYXNlcykKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgZWxzZQorICAgICAgICBQeV9JTkNSRUYoYmFzZXMpOwogCi0gICAgcmVzLT5odF90eXBlLnRwX2Jhc2ljc2l6ZSA9IHNwZWMtPmJhc2ljc2l6ZTsKLSAgICByZXMtPmh0X3R5cGUudHBfaXRlbXNpemUgPSBzcGVjLT5pdGVtc2l6ZTsKLSAgICByZXMtPmh0X3R5cGUudHBfZmxhZ3MgPSBzcGVjLT5mbGFncyB8IFB5X1RQRkxBR1NfSEVBUFRZUEU7CisgICAgLyogQ2FsY3VsYXRlIGJlc3QgYmFzZSwgYW5kIGNoZWNrIHRoYXQgYWxsIGJhc2VzIGFyZSB0eXBlIG9iamVjdHMgKi8KKyAgICBiYXNlID0gYmVzdF9iYXNlKGJhc2VzKTsKKyAgICBpZiAoYmFzZSA9PSBOVUxMKSB7CisgICAgICAgIGdvdG8gZmFpbDsKKyAgICB9CisgICAgaWYgKCFQeVR5cGVfSGFzRmVhdHVyZShiYXNlLCBQeV9UUEZMQUdTX0JBU0VUWVBFKSkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgInR5cGUgJyUuMTAwcycgaXMgbm90IGFuIGFjY2VwdGFibGUgYmFzZSB0eXBlIiwKKyAgICAgICAgICAgICAgICAgICAgIGJhc2UtPnRwX25hbWUpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorCisgICAgLyogSW5pdGlhbGl6ZSBlc3NlbnRpYWwgZmllbGRzICovCisgICAgdHlwZS0+dHBfYXNfbnVtYmVyID0gJnJlcy0+YXNfbnVtYmVyOworICAgIHR5cGUtPnRwX2FzX3NlcXVlbmNlID0gJnJlcy0+YXNfc2VxdWVuY2U7CisgICAgdHlwZS0+dHBfYXNfbWFwcGluZyA9ICZyZXMtPmFzX21hcHBpbmc7CisgICAgdHlwZS0+dHBfYXNfYnVmZmVyID0gJnJlcy0+YXNfYnVmZmVyOworICAgIC8qIFNldCB0cF9iYXNlIGFuZCB0cF9iYXNlcyAqLworICAgIHR5cGUtPnRwX2Jhc2VzID0gYmFzZXM7CisgICAgYmFzZXMgPSBOVUxMOworICAgIFB5X0lOQ1JFRihiYXNlKTsKKyAgICB0eXBlLT50cF9iYXNlID0gYmFzZTsKKworICAgIHR5cGUtPnRwX2Jhc2ljc2l6ZSA9IHNwZWMtPmJhc2ljc2l6ZTsKKyAgICB0eXBlLT50cF9pdGVtc2l6ZSA9IHNwZWMtPml0ZW1zaXplOwogCiAgICAgZm9yIChzbG90ID0gc3BlYy0+c2xvdHM7IHNsb3QtPnNsb3Q7IHNsb3QrKykgewotICAgICAgICBpZiAoc2xvdC0+c2xvdCA+PSBzaXplb2Yoc2xvdG9mZnNldHMpL3NpemVvZihzbG90b2Zmc2V0c1swXSkpIHsKKyAgICAgICAgaWYgKHNsb3QtPnNsb3QgPj0gUHlfQVJSQVlfTEVOR1RIKHNsb3RvZmZzZXRzKSkgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwgImludmFsaWQgc2xvdCBvZmZzZXQiKTsKICAgICAgICAgICAgIGdvdG8gZmFpbDsKICAgICAgICAgfQorICAgICAgICBpZiAoc2xvdC0+c2xvdCA9PSBQeV90cF9iYXNlIHx8IHNsb3QtPnNsb3QgPT0gUHlfdHBfYmFzZXMpCisgICAgICAgICAgICAvKiBQcm9jZXNzZWQgYWJvdmUgKi8KKyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAqKHZvaWQqKikocmVzX3N0YXJ0ICsgc2xvdG9mZnNldHNbc2xvdC0+c2xvdF0pID0gc2xvdC0+cGZ1bmM7CiAKICAgICAgICAgLyogbmVlZCB0byBtYWtlIGEgY29weSBvZiB0aGUgZG9jc3RyaW5nIHNsb3QsIHdoaWNoIHVzdWFsbHkKQEAgLTIzODQsMTkgKzI0NzEsMjkgQEAKICAgICAgICAgICAgIGlmICh0cF9kb2MgPT0gTlVMTCkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgICAgICBtZW1jcHkodHBfZG9jLCBzbG90LT5wZnVuYywgbGVuKTsKLSAgICAgICAgICAgIHJlcy0+aHRfdHlwZS50cF9kb2MgPSB0cF9kb2M7CisgICAgICAgICAgICB0eXBlLT50cF9kb2MgPSB0cF9kb2M7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKHJlcy0+aHRfdHlwZS50cF9kZWFsbG9jID09IE5VTEwpIHsKKyAgICBpZiAodHlwZS0+dHBfZGljdG9mZnNldCkgeworICAgICAgICByZXMtPmh0X2NhY2hlZF9rZXlzID0gX1B5RGljdF9OZXdLZXlzRm9yQ2xhc3MoKTsKKyAgICB9CisgICAgaWYgKHR5cGUtPnRwX2RlYWxsb2MgPT0gTlVMTCkgewogICAgICAgICAvKiBJdCdzIGEgaGVhcCB0eXBlLCBzbyBuZWVkcyB0aGUgaGVhcCB0eXBlcycgZGVhbGxvYy4KICAgICAgICAgICAgc3VidHlwZV9kZWFsbG9jIHdpbGwgY2FsbCB0aGUgYmFzZSB0eXBlJ3MgdHBfZGVhbGxvYywgaWYKICAgICAgICAgICAgbmVjZXNzYXJ5LiAqLwotICAgICAgICByZXMtPmh0X3R5cGUudHBfZGVhbGxvYyA9IHN1YnR5cGVfZGVhbGxvYzsKKyAgICAgICAgdHlwZS0+dHBfZGVhbGxvYyA9IHN1YnR5cGVfZGVhbGxvYzsKICAgICB9CiAKLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZyZXMtPmh0X3R5cGUpIDwgMCkKKyAgICBpZiAoUHlUeXBlX1JlYWR5KHR5cGUpIDwgMCkKICAgICAgICAgZ290byBmYWlsOwogCisgICAgLyogU2V0IHR5cGUuX19tb2R1bGVfXyAqLworICAgIHMgPSBzdHJyY2hyKHNwZWMtPm5hbWUsICcuJyk7CisgICAgaWYgKHMgIT0gTlVMTCkKKyAgICAgICAgX1B5RGljdF9TZXRJdGVtSWQodHlwZS0+dHBfZGljdCwgJlB5SWRfX19tb2R1bGVfXywgCisgICAgICAgICAgICBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUoCisgICAgICAgICAgICAgICAgc3BlYy0+bmFtZSwgKFB5X3NzaXplX3QpKHMgLSBzcGVjLT5uYW1lKSkpOworCiAgICAgcmV0dXJuIChQeU9iamVjdCopcmVzOwogCiAgZmFpbDoKQEAgLTI0MDQsNiArMjUwMSwxMiBAQAogICAgIHJldHVybiBOVUxMOwogfQogCitQeU9iamVjdCAqCitQeVR5cGVfRnJvbVNwZWMoUHlUeXBlX1NwZWMgKnNwZWMpCit7CisgICAgcmV0dXJuIFB5VHlwZV9Gcm9tU3BlY1dpdGhCYXNlcyhzcGVjLCBOVUxMKTsKK30KKwogCiAvKiBJbnRlcm5hbCBBUEkgdG8gbG9vayBmb3IgYSBuYW1lIHRocm91Z2ggdGhlIE1STy4KICAgIFRoaXMgcmV0dXJucyBhIGJvcnJvd2VkIHJlZmVyZW5jZSwgYW5kIGRvZXNuJ3Qgc2V0IGFuIGV4Y2VwdGlvbiEgKi8KQEAgLTI0MzMsNiArMjUzNiw5IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgcmVzID0gTlVMTDsKKyAgICAvKiBrZWVwIGEgc3Ryb25nIHJlZmVyZW5jZSB0byBtcm8gYmVjYXVzZSB0eXBlLT50cF9tcm8gY2FuIGJlIHJlcGxhY2VkCisgICAgICAgZHVyaW5nIFB5RGljdF9HZXRJdGVtKGRpY3QsIG5hbWUpICAqLworICAgIFB5X0lOQ1JFRihtcm8pOwogICAgIGFzc2VydChQeVR1cGxlX0NoZWNrKG1ybykpOwogICAgIG4gPSBQeVR1cGxlX0dFVF9TSVpFKG1ybyk7CiAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewpAQCAtMjQ0NCw2ICsyNTUwLDcgQEAKICAgICAgICAgaWYgKHJlcyAhPSBOVUxMKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIFB5X0RFQ1JFRihtcm8pOwogCiAgICAgaWYgKE1DQUNIRV9DQUNIRUFCTEVfTkFNRShuYW1lKSAmJiBhc3NpZ25fdmVyc2lvbl90YWcodHlwZSkpIHsKICAgICAgICAgaCA9IE1DQUNIRV9IQVNIX01FVEhPRCh0eXBlLCBuYW1lKTsKQEAgLTI0NTYsNiArMjU2MywxNiBAQAogICAgIHJldHVybiByZXM7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitfUHlUeXBlX0xvb2t1cElkKFB5VHlwZU9iamVjdCAqdHlwZSwgc3RydWN0IF9QeV9JZGVudGlmaWVyICpuYW1lKQoreworICAgIFB5T2JqZWN0ICpvbmFtZTsKKyAgICBvbmFtZSA9IF9QeVVuaWNvZGVfRnJvbUlkKG5hbWUpOyAgIC8qIGJvcnJvd2VkICovCisgICAgaWYgKG9uYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiBfUHlUeXBlX0xvb2t1cCh0eXBlLCBvbmFtZSk7Cit9CisKIC8qIFRoaXMgaXMgc2ltaWxhciB0byBQeU9iamVjdF9HZW5lcmljR2V0QXR0cigpLAogICAgYnV0IHVzZXMgX1B5VHlwZV9Mb29rdXAoKSBpbnN0ZWFkIG9mIGp1c3QgbG9va2luZyBpbiB0eXBlLT50cF9kaWN0LiAqLwogc3RhdGljIFB5T2JqZWN0ICoKQEAgLTI1NTUsNiArMjY3Miw5IEBACiAgICAgcmV0dXJuIHVwZGF0ZV9zbG90KHR5cGUsIG5hbWUpOwogfQogCitleHRlcm4gdm9pZAorX1B5RGljdEtleXNfRGVjUmVmKFB5RGljdEtleXNPYmplY3QgKmtleXMpOworCiBzdGF0aWMgdm9pZAogdHlwZV9kZWFsbG9jKFB5VHlwZU9iamVjdCAqdHlwZSkKIHsKQEAgLTI1NzYsNyArMjY5NiwxMCBAQAogICAgICAqLwogICAgIFB5T2JqZWN0X0ZyZWUoKGNoYXIgKil0eXBlLT50cF9kb2MpOwogICAgIFB5X1hERUNSRUYoZXQtPmh0X25hbWUpOworICAgIFB5X1hERUNSRUYoZXQtPmh0X3F1YWxuYW1lKTsKICAgICBQeV9YREVDUkVGKGV0LT5odF9zbG90cyk7CisgICAgaWYgKGV0LT5odF9jYWNoZWRfa2V5cykKKyAgICAgICAgX1B5RGljdEtleXNfRGVjUmVmKGV0LT5odF9jYWNoZWRfa2V5cyk7CiAgICAgUHlfVFlQRSh0eXBlKS0+dHBfZnJlZSgoUHlPYmplY3QgKil0eXBlKTsKIH0KIApAQCAtMjYxNCw2ICsyNzM3LDk5IEBACiAgICAgcmV0dXJuIFB5RGljdF9OZXcoKTsKIH0KIAorLyoKKyAgIE1lcmdlIHRoZSBfX2RpY3RfXyBvZiBhY2xhc3MgaW50byBkaWN0LCBhbmQgcmVjdXJzaXZlbHkgYWxzbyBhbGwKKyAgIHRoZSBfX2RpY3RfX3Mgb2YgYWNsYXNzJ3MgYmFzZSBjbGFzc2VzLiAgVGhlIG9yZGVyIG9mIG1lcmdpbmcgaXNuJ3QKKyAgIGRlZmluZWQsIGFzIGl0J3MgZXhwZWN0ZWQgdGhhdCBvbmx5IHRoZSBmaW5hbCBzZXQgb2YgZGljdCBrZXlzIGlzCisgICBpbnRlcmVzdGluZy4KKyAgIFJldHVybiAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGVycm9yLgorKi8KKworc3RhdGljIGludAorbWVyZ2VfY2xhc3NfZGljdChQeU9iamVjdCAqZGljdCwgUHlPYmplY3QgKmFjbGFzcykKK3sKKyAgICBQeU9iamVjdCAqY2xhc3NkaWN0OworICAgIFB5T2JqZWN0ICpiYXNlczsKKyAgICBfUHlfSURFTlRJRklFUihfX2Jhc2VzX18pOworCisgICAgYXNzZXJ0KFB5RGljdF9DaGVjayhkaWN0KSk7CisgICAgYXNzZXJ0KGFjbGFzcyk7CisKKyAgICAvKiBNZXJnZSBpbiB0aGUgdHlwZSdzIGRpY3QgKGlmIGFueSkuICovCisgICAgY2xhc3NkaWN0ID0gX1B5T2JqZWN0X0dldEF0dHJJZChhY2xhc3MsICZQeUlkX19fZGljdF9fKTsKKyAgICBpZiAoY2xhc3NkaWN0ID09IE5VTEwpCisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgZWxzZSB7CisgICAgICAgIGludCBzdGF0dXMgPSBQeURpY3RfVXBkYXRlKGRpY3QsIGNsYXNzZGljdCk7CisgICAgICAgIFB5X0RFQ1JFRihjbGFzc2RpY3QpOworICAgICAgICBpZiAoc3RhdHVzIDwgMCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICAvKiBSZWN1cnNpdmVseSBtZXJnZSBpbiB0aGUgYmFzZSB0eXBlcycgKGlmIGFueSkgZGljdHMuICovCisgICAgYmFzZXMgPSBfUHlPYmplY3RfR2V0QXR0cklkKGFjbGFzcywgJlB5SWRfX19iYXNlc19fKTsKKyAgICBpZiAoYmFzZXMgPT0gTlVMTCkKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgLyogV2UgaGF2ZSBubyBndWFyYW50ZWUgdGhhdCBiYXNlcyBpcyBhIHJlYWwgdHVwbGUgKi8KKyAgICAgICAgUHlfc3NpemVfdCBpLCBuOworICAgICAgICBuID0gUHlTZXF1ZW5jZV9TaXplKGJhc2VzKTsgLyogVGhpcyBiZXR0ZXIgYmUgcmlnaHQgKi8KKyAgICAgICAgaWYgKG4gPCAwKQorICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgaW50IHN0YXR1czsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqYmFzZSA9IFB5U2VxdWVuY2VfR2V0SXRlbShiYXNlcywgaSk7CisgICAgICAgICAgICAgICAgaWYgKGJhc2UgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYmFzZXMpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHN0YXR1cyA9IG1lcmdlX2NsYXNzX2RpY3QoZGljdCwgYmFzZSk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGJhc2UpOworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihiYXNlcyk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgUHlfREVDUkVGKGJhc2VzKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKKy8qIF9fZGlyX18gZm9yIHR5cGUgb2JqZWN0czogcmV0dXJucyBfX2RpY3RfXyBhbmQgX19iYXNlc19fLgorICAgV2UgZGVsaWJlcmF0ZWx5IGRvbid0IHN1Y2sgdXAgaXRzIF9fY2xhc3NfXywgYXMgbWV0aG9kcyBiZWxvbmdpbmcgdG8gdGhlCisgICBtZXRhY2xhc3Mgd291bGQgcHJvYmFibHkgYmUgbW9yZSBjb25mdXNpbmcgdGhhbiBoZWxwZnVsLgorKi8KK3N0YXRpYyBQeU9iamVjdCAqCit0eXBlX2RpcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CisgICAgUHlPYmplY3QgKmRpY3QgPSBQeURpY3RfTmV3KCk7CisKKyAgICBpZiAoZGljdCAhPSBOVUxMICYmIG1lcmdlX2NsYXNzX2RpY3QoZGljdCwgc2VsZikgPT0gMCkKKyAgICAgICAgcmVzdWx0ID0gUHlEaWN0X0tleXMoZGljdCk7CisKKyAgICBQeV9YREVDUkVGKGRpY3QpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBQeU9iamVjdCoKK3R5cGVfc2l6ZW9mKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJnc191bnVzZWQpCit7CisgICAgUHlfc3NpemVfdCBzaXplOworICAgIFB5VHlwZU9iamVjdCAqdHlwZSA9IChQeVR5cGVPYmplY3QqKXNlbGY7CisgICAgaWYgKHR5cGUtPnRwX2ZsYWdzICYgUHlfVFBGTEFHU19IRUFQVFlQRSkgeworICAgICAgICBQeUhlYXBUeXBlT2JqZWN0KiBldCA9IChQeUhlYXBUeXBlT2JqZWN0Kil0eXBlOworICAgICAgICBzaXplID0gc2l6ZW9mKFB5SGVhcFR5cGVPYmplY3QpOworICAgICAgICBpZiAoZXQtPmh0X2NhY2hlZF9rZXlzKQorICAgICAgICAgICAgc2l6ZSArPSBfUHlEaWN0X0tleXNTaXplKGV0LT5odF9jYWNoZWRfa2V5cyk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgc2l6ZSA9IHNpemVvZihQeVR5cGVPYmplY3QpOworICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3Qoc2l6ZSk7Cit9CisKIHN0YXRpYyBQeU1ldGhvZERlZiB0eXBlX21ldGhvZHNbXSA9IHsKICAgICB7Im1ybyIsIChQeUNGdW5jdGlvbiltcm9fZXh0ZXJuYWwsIE1FVEhfTk9BUkdTLAogICAgICBQeURvY19TVFIoIm1ybygpIC0+IGxpc3RcbnJldHVybiBhIHR5cGUncyBtZXRob2QgcmVzb2x1dGlvbiBvcmRlciIpfSwKQEAgLTI2MjcsNiArMjg0MywxMCBAQAogICAgICBQeURvY19TVFIoIl9faW5zdGFuY2VjaGVja19fKCkgLT4gYm9vbFxuY2hlY2sgaWYgYW4gb2JqZWN0IGlzIGFuIGluc3RhbmNlIil9LAogICAgIHsiX19zdWJjbGFzc2NoZWNrX18iLCB0eXBlX19fc3ViY2xhc3NjaGVja19fLCBNRVRIX08sCiAgICAgIFB5RG9jX1NUUigiX19zdWJjbGFzc2NoZWNrX18oKSAtPiBib29sXG5jaGVjayBpZiBhIGNsYXNzIGlzIGEgc3ViY2xhc3MiKX0sCisgICAgeyJfX2Rpcl9fIiwgdHlwZV9kaXIsIE1FVEhfTk9BUkdTLAorICAgICBQeURvY19TVFIoIl9fZGlyX18oKSAtPiBsaXN0XG5zcGVjaWFsaXplZCBfX2Rpcl9fIGltcGxlbWVudGF0aW9uIGZvciB0eXBlcyIpfSwKKyAgICB7Il9fc2l6ZW9mX18iLCAgICAgIHR5cGVfc2l6ZW9mLCAgICAgICBNRVRIX05PQVJHUywKKyAgICAgIl9fc2l6ZW9mX18oKSAtPiBpbnRcbnJldHVybiBtZW1vcnkgY29uc3VtcHRpb24gb2YgdGhlIHR5cGUgb2JqZWN0In0sCiAgICAgezB9CiB9OwogCkBAIC0yNjM5LDcgKzI4NTksMTIgQEAKIHsKICAgICAvKiBCZWNhdXNlIG9mIHR5cGVfaXNfZ2MoKSwgdGhlIGNvbGxlY3RvciBvbmx5IGNhbGxzIHRoaXMKICAgICAgICBmb3IgaGVhcHR5cGVzLiAqLwotICAgIGFzc2VydCh0eXBlLT50cF9mbGFncyAmIFB5X1RQRkxBR1NfSEVBUFRZUEUpOworICAgIGlmICghKHR5cGUtPnRwX2ZsYWdzICYgUHlfVFBGTEFHU19IRUFQVFlQRSkpIHsKKyAgICAgICAgY2hhciBtc2dbMjAwXTsKKyAgICAgICAgc3ByaW50Zihtc2csICJ0eXBlX3RyYXZlcnNlKCkgY2FsbGVkIGZvciBub24taGVhcCB0eXBlICclLjEwMHMnIiwKKyAgICAgICAgICAgICAgICB0eXBlLT50cF9uYW1lKTsKKyAgICAgICAgUHlfRmF0YWxFcnJvcihtc2cpOworICAgIH0KIAogICAgIFB5X1ZJU0lUKHR5cGUtPnRwX2RpY3QpOwogICAgIFB5X1ZJU0lUKHR5cGUtPnRwX2NhY2hlKTsKQEAgLTI2NTgsNiArMjg4Myw3IEBACiBzdGF0aWMgaW50CiB0eXBlX2NsZWFyKFB5VHlwZU9iamVjdCAqdHlwZSkKIHsKKyAgICBQeURpY3RLZXlzT2JqZWN0ICpjYWNoZWRfa2V5czsKICAgICAvKiBCZWNhdXNlIG9mIHR5cGVfaXNfZ2MoKSwgdGhlIGNvbGxlY3RvciBvbmx5IGNhbGxzIHRoaXMKICAgICAgICBmb3IgaGVhcHR5cGVzLiAqLwogICAgIGFzc2VydCh0eXBlLT50cF9mbGFncyAmIFB5X1RQRkxBR1NfSEVBUFRZUEUpOwpAQCAtMjY4OSw2ICsyOTE1LDExIEBACiAgICAgKi8KIAogICAgIFB5VHlwZV9Nb2RpZmllZCh0eXBlKTsKKyAgICBjYWNoZWRfa2V5cyA9ICgoUHlIZWFwVHlwZU9iamVjdCAqKXR5cGUpLT5odF9jYWNoZWRfa2V5czsKKyAgICBpZiAoY2FjaGVkX2tleXMgIT0gTlVMTCkgeworICAgICAgICAoKFB5SGVhcFR5cGVPYmplY3QgKil0eXBlKS0+aHRfY2FjaGVkX2tleXMgPSBOVUxMOworICAgICAgICBfUHlEaWN0S2V5c19EZWNSZWYoY2FjaGVkX2tleXMpOworICAgIH0KICAgICBpZiAodHlwZS0+dHBfZGljdCkKICAgICAgICAgUHlEaWN0X0NsZWFyKHR5cGUtPnRwX2RpY3QpOwogICAgIFB5X0NMRUFSKHR5cGUtPnRwX21ybyk7CkBAIC0yODA0LDIyICszMDM1LDExIEBACiBvYmplY3RfaW5pdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewogICAgIGludCBlcnIgPSAwOwotICAgIGlmIChleGNlc3NfYXJncyhhcmdzLCBrd2RzKSkgewotICAgICAgICBQeVR5cGVPYmplY3QgKnR5cGUgPSBQeV9UWVBFKHNlbGYpOwotICAgICAgICBpZiAodHlwZS0+dHBfaW5pdCAhPSBvYmplY3RfaW5pdCAmJgotICAgICAgICAgICAgdHlwZS0+dHBfbmV3ICE9IG9iamVjdF9uZXcpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGVyciA9IFB5RXJyX1dhcm5FeChQeUV4Y19EZXByZWNhdGlvbldhcm5pbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICJvYmplY3QuX19pbml0X18oKSB0YWtlcyBubyBwYXJhbWV0ZXJzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgMSk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAodHlwZS0+dHBfaW5pdCAhPSBvYmplY3RfaW5pdCB8fAotICAgICAgICAgICAgICAgICB0eXBlLT50cF9uZXcgPT0gb2JqZWN0X25ldykKLSAgICAgICAgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAib2JqZWN0Ll9faW5pdF9fKCkgdGFrZXMgbm8gcGFyYW1ldGVycyIpOwotICAgICAgICAgICAgZXJyID0gLTE7Ci0gICAgICAgIH0KKyAgICBQeVR5cGVPYmplY3QgKnR5cGUgPSBQeV9UWVBFKHNlbGYpOworICAgIGlmIChleGNlc3NfYXJncyhhcmdzLCBrd2RzKSAmJgorICAgICAgICAodHlwZS0+dHBfbmV3ID09IG9iamVjdF9uZXcgfHwgdHlwZS0+dHBfaW5pdCAhPSBvYmplY3RfaW5pdCkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIm9iamVjdC5fX2luaXRfXygpIHRha2VzIG5vIHBhcmFtZXRlcnMiKTsKKyAgICAgICAgZXJyID0gLTE7CiAgICAgfQogICAgIHJldHVybiBlcnI7CiB9CkBAIC0yODI3LDMzICszMDQ3LDIxIEBACiBzdGF0aWMgUHlPYmplY3QgKgogb2JqZWN0X25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKLSAgICBpbnQgZXJyID0gMDsKLSAgICBpZiAoZXhjZXNzX2FyZ3MoYXJncywga3dkcykpIHsKLSAgICAgICAgaWYgKHR5cGUtPnRwX25ldyAhPSBvYmplY3RfbmV3ICYmCi0gICAgICAgICAgICB0eXBlLT50cF9pbml0ICE9IG9iamVjdF9pbml0KQotICAgICAgICB7Ci0gICAgICAgICAgICBlcnIgPSBQeUVycl9XYXJuRXgoUHlFeGNfRGVwcmVjYXRpb25XYXJuaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAib2JqZWN0Ll9fbmV3X18oKSB0YWtlcyBubyBwYXJhbWV0ZXJzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgMSk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAodHlwZS0+dHBfbmV3ICE9IG9iamVjdF9uZXcgfHwKLSAgICAgICAgICAgICAgICAgdHlwZS0+dHBfaW5pdCA9PSBvYmplY3RfaW5pdCkKLSAgICAgICAgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAib2JqZWN0Ll9fbmV3X18oKSB0YWtlcyBubyBwYXJhbWV0ZXJzIik7Ci0gICAgICAgICAgICBlcnIgPSAtMTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoZXJyIDwgMCkKKyAgICBpZiAoZXhjZXNzX2FyZ3MoYXJncywga3dkcykgJiYKKyAgICAgICAgKHR5cGUtPnRwX2luaXQgPT0gb2JqZWN0X2luaXQgfHwgdHlwZS0+dHBfbmV3ICE9IG9iamVjdF9uZXcpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJvYmplY3QuX19uZXdfXygpIHRha2VzIG5vIHBhcmFtZXRlcnMiKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogCiAgICAgaWYgKHR5cGUtPnRwX2ZsYWdzICYgUHlfVFBGTEFHU19JU19BQlNUUkFDVCkgewotICAgICAgICBzdGF0aWMgUHlPYmplY3QgKmNvbW1hID0gTlVMTDsKICAgICAgICAgUHlPYmplY3QgKmFic3RyYWN0X21ldGhvZHMgPSBOVUxMOwogICAgICAgICBQeU9iamVjdCAqYnVpbHRpbnM7CiAgICAgICAgIFB5T2JqZWN0ICpzb3J0ZWQ7CiAgICAgICAgIFB5T2JqZWN0ICpzb3J0ZWRfbWV0aG9kcyA9IE5VTEw7CiAgICAgICAgIFB5T2JqZWN0ICpqb2luZWQgPSBOVUxMOworICAgICAgICBQeU9iamVjdCAqY29tbWE7CisgICAgICAgIF9QeV9zdGF0aWNfc3RyaW5nKGNvbW1hX2lkLCAiLCAiKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoc29ydGVkKTsKIAogICAgICAgICAvKiBDb21wdXRlICIsICIuam9pbihzb3J0ZWQodHlwZS5fX2Fic3RyYWN0bWV0aG9kc19fKSkKICAgICAgICAgICAgaW50byBqb2luZWQuICovCkBAIC0yODYzLDcgKzMwNzEsNyBAQAogICAgICAgICBidWlsdGlucyA9IFB5RXZhbF9HZXRCdWlsdGlucygpOwogICAgICAgICBpZiAoYnVpbHRpbnMgPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgIHNvcnRlZCA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKGJ1aWx0aW5zLCAic29ydGVkIik7CisgICAgICAgIHNvcnRlZCA9IF9QeURpY3RfR2V0SXRlbUlkKGJ1aWx0aW5zLCAmUHlJZF9zb3J0ZWQpOwogICAgICAgICBpZiAoc29ydGVkID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGVycm9yOwogICAgICAgICBzb3J0ZWRfbWV0aG9kcyA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3Moc29ydGVkLApAQCAtMjg3MSwxMyArMzA3OSwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CiAgICAgICAgIGlmIChzb3J0ZWRfbWV0aG9kcyA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgaWYgKGNvbW1hID09IE5VTEwpIHsKLSAgICAgICAgICAgIGNvbW1hID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIiwgIik7Ci0gICAgICAgICAgICBpZiAoY29tbWEgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICB9Ci0gICAgICAgIGpvaW5lZCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoY29tbWEsICJqb2luIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTyIsICBzb3J0ZWRfbWV0aG9kcyk7CisgICAgICAgIGNvbW1hID0gX1B5VW5pY29kZV9Gcm9tSWQoJmNvbW1hX2lkKTsKKyAgICAgICAgaWYgKGNvbW1hID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBqb2luZWQgPSBQeVVuaWNvZGVfSm9pbihjb21tYSwgc29ydGVkX21ldGhvZHMpOwogICAgICAgICBpZiAoam9pbmVkID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGVycm9yOwogCkBAIC0yOTE1LDcgKzMxMjAsNyBAQAogICAgICAgICBQeV9ERUNSRUYobW9kKTsKICAgICAgICAgbW9kID0gTlVMTDsKICAgICB9Ci0gICAgbmFtZSA9IHR5cGVfbmFtZSh0eXBlLCBOVUxMKTsKKyAgICBuYW1lID0gdHlwZV9xdWFsbmFtZSh0eXBlLCBOVUxMKTsKICAgICBpZiAobmFtZSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAobW9kICE9IE5VTEwgJiYgUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobW9kLCAiYnVpbHRpbnMiKSkKQEAgLTMwNzgsNyArMzI4Myw3IEBACiAgICAgfQogICAgIGlmICghUHlUeXBlX0NoZWNrKHZhbHVlKSkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICJfX2NsYXNzX18gbXVzdCBiZSBzZXQgdG8gbmV3LXN0eWxlIGNsYXNzLCBub3QgJyVzJyBvYmplY3QiLAorICAgICAgICAgICJfX2NsYXNzX18gbXVzdCBiZSBzZXQgdG8gYSBjbGFzcywgbm90ICclcycgb2JqZWN0IiwKICAgICAgICAgICBQeV9UWVBFKHZhbHVlKS0+dHBfbmFtZSk7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CkBAIC0zMTE5LDE0ICszMzI0LDE5IEBACiBpbXBvcnRfY29weXJlZyh2b2lkKQogewogICAgIHN0YXRpYyBQeU9iamVjdCAqY29weXJlZ19zdHI7CisgICAgc3RhdGljIFB5T2JqZWN0ICptb2RfY29weXJlZyA9IE5VTEw7CiAKICAgICBpZiAoIWNvcHlyZWdfc3RyKSB7CiAgICAgICAgIGNvcHlyZWdfc3RyID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoImNvcHlyZWciKTsKICAgICAgICAgaWYgKGNvcHlyZWdfc3RyID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CisgICAgaWYgKCFtb2RfY29weXJlZykgeworICAgICAgICBtb2RfY29weXJlZyA9IFB5SW1wb3J0X0ltcG9ydChjb3B5cmVnX3N0cik7CisgICAgfQogCi0gICAgcmV0dXJuIFB5SW1wb3J0X0ltcG9ydChjb3B5cmVnX3N0cik7CisgICAgUHlfWElOQ1JFRihtb2RfY29weXJlZyk7CisgICAgcmV0dXJuIG1vZF9jb3B5cmVnOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMzEzNSwxNCArMzM0NSwxMSBAQAogICAgIFB5T2JqZWN0ICpjbHNkaWN0OwogICAgIFB5T2JqZWN0ICpjb3B5cmVnOwogICAgIFB5T2JqZWN0ICpzbG90bmFtZXM7Ci0KLSAgICBpZiAoIVB5VHlwZV9DaGVjayhjbHMpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICAgICAgcmV0dXJuIFB5X05vbmU7Ci0gICAgfQorICAgIF9QeV9JREVOVElGSUVSKF9fc2xvdG5hbWVzX18pOworICAgIF9QeV9JREVOVElGSUVSKF9zbG90bmFtZXMpOwogCiAgICAgY2xzZGljdCA9ICgoUHlUeXBlT2JqZWN0ICopY2xzKS0+dHBfZGljdDsKLSAgICBzbG90bmFtZXMgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhjbHNkaWN0LCAiX19zbG90bmFtZXNfXyIpOworICAgIHNsb3RuYW1lcyA9IF9QeURpY3RfR2V0SXRlbUlkKGNsc2RpY3QsICZQeUlkX19fc2xvdG5hbWVzX18pOwogICAgIGlmIChzbG90bmFtZXMgIT0gTlVMTCAmJiBQeUxpc3RfQ2hlY2soc2xvdG5hbWVzKSkgewogICAgICAgICBQeV9JTkNSRUYoc2xvdG5hbWVzKTsKICAgICAgICAgcmV0dXJuIHNsb3RuYW1lczsKQEAgLTMxNTIsNyArMzM1OSw3IEBACiAgICAgaWYgKGNvcHlyZWcgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBzbG90bmFtZXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGNvcHlyZWcsICJfc2xvdG5hbWVzIiwgIk8iLCBjbHMpOworICAgIHNsb3RuYW1lcyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoY29weXJlZywgJlB5SWRfX3Nsb3RuYW1lcywgIk8iLCBjbHMpOwogICAgIFB5X0RFQ1JFRihjb3B5cmVnKTsKICAgICBpZiAoc2xvdG5hbWVzICE9IE5VTEwgJiYKICAgICAgICAgc2xvdG5hbWVzICE9IFB5X05vbmUgJiYKQEAgLTMxNzYsMTIgKzMzODMsMTMgQEAKICAgICBQeU9iamVjdCAqc2xvdHMgPSBOVUxMLCAqbGlzdGl0ZW1zID0gTlVMTCwgKmRpY3RpdGVtcyA9IE5VTEw7CiAgICAgUHlPYmplY3QgKmNvcHlyZWcgPSBOVUxMLCAqbmV3b2JqID0gTlVMTCwgKnJlcyA9IE5VTEw7CiAgICAgUHlfc3NpemVfdCBpLCBuOworICAgIF9QeV9JREVOVElGSUVSKF9fZ2V0bmV3YXJnc19fKTsKKyAgICBfUHlfSURFTlRJRklFUihfX2dldHN0YXRlX18pOworICAgIF9QeV9JREVOVElGSUVSKF9fbmV3b2JqX18pOwogCi0gICAgY2xzID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJfX2NsYXNzX18iKTsKLSAgICBpZiAoY2xzID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOworICAgIGNscyA9IChQeU9iamVjdCAqKSBQeV9UWVBFKG9iaik7CiAKLSAgICBnZXRuZXdhcmdzID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJfX2dldG5ld2FyZ3NfXyIpOworICAgIGdldG5ld2FyZ3MgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfX19nZXRuZXdhcmdzX18pOwogICAgIGlmIChnZXRuZXdhcmdzICE9IE5VTEwpIHsKICAgICAgICAgYXJncyA9IFB5T2JqZWN0X0NhbGxPYmplY3QoZ2V0bmV3YXJncywgTlVMTCk7CiAgICAgICAgIFB5X0RFQ1JFRihnZXRuZXdhcmdzKTsKQEAgLTMxOTksNyArMzQwNyw3IEBACiAgICAgaWYgKGFyZ3MgPT0gTlVMTCkKICAgICAgICAgZ290byBlbmQ7CiAKLSAgICBnZXRzdGF0ZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiX19nZXRzdGF0ZV9fIik7CisgICAgZ2V0c3RhdGUgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfX19nZXRzdGF0ZV9fKTsKICAgICBpZiAoZ2V0c3RhdGUgIT0gTlVMTCkgewogICAgICAgICBzdGF0ZSA9IFB5T2JqZWN0X0NhbGxPYmplY3QoZ2V0c3RhdGUsIE5VTEwpOwogICAgICAgICBQeV9ERUNSRUYoZ2V0c3RhdGUpOwpAQCAtMzIwNywxNyArMzQxNSwxOCBAQAogICAgICAgICAgICAgZ290byBlbmQ7CiAgICAgfQogICAgIGVsc2UgeworICAgICAgICBQeU9iamVjdCAqKmRpY3Q7CiAgICAgICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgICAgIHN0YXRlID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJfX2RpY3RfXyIpOwotICAgICAgICBpZiAoc3RhdGUgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgZGljdCA9IF9QeU9iamVjdF9HZXREaWN0UHRyKG9iaik7CisgICAgICAgIGlmIChkaWN0ICYmICpkaWN0KQorICAgICAgICAgICAgc3RhdGUgPSAqZGljdDsKKyAgICAgICAgZWxzZQogICAgICAgICAgICAgc3RhdGUgPSBQeV9Ob25lOwotICAgICAgICAgICAgUHlfSU5DUkVGKHN0YXRlKTsKLSAgICAgICAgfQorICAgICAgICBQeV9JTkNSRUYoc3RhdGUpOwogICAgICAgICBuYW1lcyA9IHNsb3RuYW1lcyhjbHMpOwogICAgICAgICBpZiAobmFtZXMgPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZW5kOwotICAgICAgICBpZiAobmFtZXMgIT0gUHlfTm9uZSkgeworICAgICAgICBpZiAobmFtZXMgIT0gUHlfTm9uZSAmJiBQeUxpc3RfR0VUX1NJWkUobmFtZXMpID4gMCkgewogICAgICAgICAgICAgYXNzZXJ0KFB5TGlzdF9DaGVjayhuYW1lcykpOwogICAgICAgICAgICAgc2xvdHMgPSBQeURpY3RfTmV3KCk7CiAgICAgICAgICAgICBpZiAoc2xvdHMgPT0gTlVMTCkKQEAgLTMyNjQsNyArMzQ3Myw4IEBACiAgICAgICAgIFB5X0lOQ1JFRihkaWN0aXRlbXMpOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAgUHlPYmplY3QgKml0ZW1zID0gUHlPYmplY3RfQ2FsbE1ldGhvZChvYmosICJpdGVtcyIsICIiKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoaXRlbXMpOworICAgICAgICBQeU9iamVjdCAqaXRlbXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKG9iaiwgJlB5SWRfaXRlbXMsICIiKTsKICAgICAgICAgaWYgKGl0ZW1zID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGVuZDsKICAgICAgICAgZGljdGl0ZW1zID0gUHlPYmplY3RfR2V0SXRlcihpdGVtcyk7CkBAIC0zMjc2LDcgKzM0ODYsNyBAQAogICAgIGNvcHlyZWcgPSBpbXBvcnRfY29weXJlZygpOwogICAgIGlmIChjb3B5cmVnID09IE5VTEwpCiAgICAgICAgIGdvdG8gZW5kOwotICAgIG5ld29iaiA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoY29weXJlZywgIl9fbmV3b2JqX18iKTsKKyAgICBuZXdvYmogPSBfUHlPYmplY3RfR2V0QXR0cklkKGNvcHlyZWcsICZQeUlkX19fbmV3b2JqX18pOwogICAgIGlmIChuZXdvYmogPT0gTlVMTCkKICAgICAgICAgZ290byBlbmQ7CiAKQEAgLTMyODQsOCArMzQ5NCw4IEBACiAgICAgYXJnczIgPSBQeVR1cGxlX05ldyhuKzEpOwogICAgIGlmIChhcmdzMiA9PSBOVUxMKQogICAgICAgICBnb3RvIGVuZDsKKyAgICBQeV9JTkNSRUYoY2xzKTsKICAgICBQeVR1cGxlX1NFVF9JVEVNKGFyZ3MyLCAwLCBjbHMpOwotICAgIGNscyA9IE5VTEw7CiAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgICBQeU9iamVjdCAqdiA9IFB5VHVwbGVfR0VUX0lURU0oYXJncywgaSk7CiAgICAgICAgIFB5X0lOQ1JFRih2KTsKQEAgLTMyOTUsNyArMzUwNSw2IEBACiAgICAgcmVzID0gUHlUdXBsZV9QYWNrKDUsIG5ld29iaiwgYXJnczIsIHN0YXRlLCBsaXN0aXRlbXMsIGRpY3RpdGVtcyk7CiAKICAgZW5kOgotICAgIFB5X1hERUNSRUYoY2xzKTsKICAgICBQeV9YREVDUkVGKGFyZ3MpOwogICAgIFB5X1hERUNSRUYoYXJnczIpOwogICAgIFB5X1hERUNSRUYoc2xvdHMpOwpAQCAtMzM1NSwzMSArMzU2NCwzNCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIG9iamVjdF9yZWR1Y2VfZXgoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogeworICAgIHN0YXRpYyBQeU9iamVjdCAqb2JqcmVkdWNlOwogICAgIFB5T2JqZWN0ICpyZWR1Y2UsICpyZXM7CiAgICAgaW50IHByb3RvID0gMDsKKyAgICBfUHlfSURFTlRJRklFUihfX3JlZHVjZV9fKTsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifGk6X19yZWR1Y2VfZXhfXyIsICZwcm90bykpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgcmVkdWNlID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhzZWxmLCAiX19yZWR1Y2VfXyIpOworICAgIGlmIChvYmpyZWR1Y2UgPT0gTlVMTCkgeworICAgICAgICBvYmpyZWR1Y2UgPSBfUHlEaWN0X0dldEl0ZW1JZChQeUJhc2VPYmplY3RfVHlwZS50cF9kaWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlJZF9fX3JlZHVjZV9fKTsKKyAgICAgICAgaWYgKG9ianJlZHVjZSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgcmVkdWNlID0gX1B5T2JqZWN0X0dldEF0dHJJZChzZWxmLCAmUHlJZF9fX3JlZHVjZV9fKTsKICAgICBpZiAocmVkdWNlID09IE5VTEwpCiAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIFB5T2JqZWN0ICpjbHMsICpjbHNyZWR1Y2UsICpvYmpyZWR1Y2U7CisgICAgICAgIFB5T2JqZWN0ICpjbHMsICpjbHNyZWR1Y2U7CiAgICAgICAgIGludCBvdmVycmlkZTsKLSAgICAgICAgY2xzID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhzZWxmLCAiX19jbGFzc19fIik7Ci0gICAgICAgIGlmIChjbHMgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlfREVDUkVGKHJlZHVjZSk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBjbHNyZWR1Y2UgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGNscywgIl9fcmVkdWNlX18iKTsKLSAgICAgICAgUHlfREVDUkVGKGNscyk7CisKKyAgICAgICAgY2xzID0gKFB5T2JqZWN0ICopIFB5X1RZUEUoc2VsZik7CisgICAgICAgIGNsc3JlZHVjZSA9IF9QeU9iamVjdF9HZXRBdHRySWQoY2xzLCAmUHlJZF9fX3JlZHVjZV9fKTsKICAgICAgICAgaWYgKGNsc3JlZHVjZSA9PSBOVUxMKSB7CiAgICAgICAgICAgICBQeV9ERUNSRUYocmVkdWNlKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIG9ianJlZHVjZSA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKFB5QmFzZU9iamVjdF9UeXBlLnRwX2RpY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX3JlZHVjZV9fIik7CiAgICAgICAgIG92ZXJyaWRlID0gKGNsc3JlZHVjZSAhPSBvYmpyZWR1Y2UpOwogICAgICAgICBQeV9ERUNSRUYoY2xzcmVkdWNlKTsKICAgICAgICAgaWYgKG92ZXJyaWRlKSB7CkBAIC0zMzk3LDggKzM2MDksNyBAQAogc3RhdGljIFB5T2JqZWN0ICoKIG9iamVjdF9zdWJjbGFzc2hvb2soUHlPYmplY3QgKmNscywgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogfQogCiBQeURvY19TVFJWQVIob2JqZWN0X3N1YmNsYXNzaG9va19kb2MsCkBAIC0zNDI5LDIxICszNjQwLDIxIEBACiAgICAgc2VsZl9hc19zdHIgPSBQeU9iamVjdF9TdHIoc2VsZik7CiAgICAgaWYgKHNlbGZfYXNfc3RyICE9IE5VTEwpIHsKICAgICAgICAgLyogSXNzdWUgNzk5NDogSWYgd2UncmUgY29udmVydGluZyB0byBhIHN0cmluZywgd2UKLQkgICBzaG91bGQgcmVqZWN0IGZvcm1hdCBzcGVjaWZpY2F0aW9ucyAqLwotICAgICAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKGZvcm1hdF9zcGVjKSA+IDApIHsKLQkgICAgaWYgKFB5RXJyX1dhcm5FeChQeUV4Y19QZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nLAotCQkJICAgICAib2JqZWN0Ll9fZm9ybWF0X18gd2l0aCBhIG5vbi1lbXB0eSBmb3JtYXQgIgotCQkJICAgICAic3RyaW5nIGlzIGRlcHJlY2F0ZWQiLCAxKSA8IDApIHsKLQkgICAgICBnb3RvIGRvbmU7Ci0JICAgIH0KLQkgICAgLyogRXZlbnR1YWxseSB0aGlzIHdpbGwgYmVjb21lIGFuIGVycm9yOgotCSAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotCSAgICAgICAibm9uLWVtcHR5IGZvcm1hdCBzdHJpbmcgcGFzc2VkIHRvIG9iamVjdC5fX2Zvcm1hdF9fIik7Ci0JICAgICAgIGdvdG8gZG9uZTsKLQkgICAgKi8KLQl9CisgICAgICAgICAgIHNob3VsZCByZWplY3QgZm9ybWF0IHNwZWNpZmljYXRpb25zICovCisgICAgICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChmb3JtYXRfc3BlYykgPiAwKSB7CisgICAgICAgICAgICBpZiAoUHlFcnJfV2FybkV4KFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9iamVjdC5fX2Zvcm1hdF9fIHdpdGggYSBub24tZW1wdHkgZm9ybWF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZyBpcyBkZXByZWNhdGVkIiwgMSkgPCAwKSB7CisgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGJlY29tZSBhbiBlcnJvcjoKKyAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAibm9uLWVtcHR5IGZvcm1hdCBzdHJpbmcgcGFzc2VkIHRvIG9iamVjdC5fX2Zvcm1hdF9fIik7CisgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICAqLworICAgICAgICB9CiAKLQlyZXN1bHQgPSBQeU9iamVjdF9Gb3JtYXQoc2VsZl9hc19zdHIsIGZvcm1hdF9zcGVjKTsKKyAgICAgICAgcmVzdWx0ID0gUHlPYmplY3RfRm9ybWF0KHNlbGZfYXNfc3RyLCBmb3JtYXRfc3BlYyk7CiAgICAgfQogCiBkb25lOgpAQCAtMzQ2Niw2ICszNjc3LDUzIEBACiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChyZXMpOwogfQogCisvKiBfX2Rpcl9fIGZvciBnZW5lcmljIG9iamVjdHM6IHJldHVybnMgX19kaWN0X18sIF9fY2xhc3NfXywKKyAgIGFuZCByZWN1cnNpdmVseSB1cCB0aGUgX19jbGFzc19fLl9fYmFzZXNfXyBjaGFpbi4KKyovCitzdGF0aWMgUHlPYmplY3QgKgorb2JqZWN0X2RpcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit7CisgICAgUHlPYmplY3QgKnJlc3VsdCA9IE5VTEw7CisgICAgUHlPYmplY3QgKmRpY3QgPSBOVUxMOworICAgIFB5T2JqZWN0ICppdHNjbGFzcyA9IE5VTEw7CisKKyAgICAvKiBHZXQgX19kaWN0X18gKHdoaWNoIG1heSBvciBtYXkgbm90IGJlIGEgcmVhbCBkaWN0Li4uKSAqLworICAgIGRpY3QgPSBfUHlPYmplY3RfR2V0QXR0cklkKHNlbGYsICZQeUlkX19fZGljdF9fKTsKKyAgICBpZiAoZGljdCA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgICAgIGRpY3QgPSBQeURpY3RfTmV3KCk7CisgICAgfQorICAgIGVsc2UgaWYgKCFQeURpY3RfQ2hlY2soZGljdCkpIHsKKyAgICAgICAgUHlfREVDUkVGKGRpY3QpOworICAgICAgICBkaWN0ID0gUHlEaWN0X05ldygpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLyogQ29weSBfX2RpY3RfXyB0byBhdm9pZCBtdXRhdGluZyBpdC4gKi8KKyAgICAgICAgUHlPYmplY3QgKnRlbXAgPSBQeURpY3RfQ29weShkaWN0KTsKKyAgICAgICAgUHlfREVDUkVGKGRpY3QpOworICAgICAgICBkaWN0ID0gdGVtcDsKKyAgICB9CisKKyAgICBpZiAoZGljdCA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgLyogTWVyZ2UgaW4gYXR0cnMgcmVhY2hhYmxlIGZyb20gaXRzIGNsYXNzLiAqLworICAgIGl0c2NsYXNzID0gX1B5T2JqZWN0X0dldEF0dHJJZChzZWxmLCAmUHlJZF9fX2NsYXNzX18pOworICAgIGlmIChpdHNjbGFzcyA9PSBOVUxMKQorICAgICAgICAvKiBYWFgodG9tZXIpOiBQZXJoYXBzIGZhbGwgYmFjayB0byBvYmotPm9iX3R5cGUgaWYgbm8KKyAgICAgICAgICAgICAgICAgICAgICAgX19jbGFzc19fIGV4aXN0cz8gKi8KKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICBlbHNlIGlmIChtZXJnZV9jbGFzc19kaWN0KGRpY3QsIGl0c2NsYXNzKSAhPSAwKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgcmVzdWx0ID0gUHlEaWN0X0tleXMoZGljdCk7CisgICAgLyogZmFsbCB0aHJvdWdoICovCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKGl0c2NsYXNzKTsKKyAgICBQeV9YREVDUkVGKGRpY3QpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBQeU1ldGhvZERlZiBvYmplY3RfbWV0aG9kc1tdID0gewogICAgIHsiX19yZWR1Y2VfZXhfXyIsIG9iamVjdF9yZWR1Y2VfZXgsIE1FVEhfVkFSQVJHUywKICAgICAgUHlEb2NfU1RSKCJoZWxwZXIgZm9yIHBpY2tsZSIpfSwKQEAgLTM0NzcsNiArMzczNSw4IEBACiAgICAgIFB5RG9jX1NUUigiZGVmYXVsdCBvYmplY3QgZm9ybWF0dGVyIil9LAogICAgIHsiX19zaXplb2ZfXyIsIG9iamVjdF9zaXplb2YsIE1FVEhfTk9BUkdTLAogICAgICBQeURvY19TVFIoIl9fc2l6ZW9mX18oKSAtPiBpbnRcbnNpemUgb2Ygb2JqZWN0IGluIG1lbW9yeSwgaW4gYnl0ZXMiKX0sCisgICAgeyJfX2Rpcl9fIiwgb2JqZWN0X2RpciwgTUVUSF9OT0FSR1MsCisgICAgIFB5RG9jX1NUUigiX19kaXJfXygpIC0+IGxpc3RcbmRlZmF1bHQgZGlyKCkgaW1wbGVtZW50YXRpb24iKX0sCiAgICAgezB9CiB9OwogCkBAIC0zNTQ2LDcgKzM4MDYsNyBAQAogICAgICAgICAgICAgZGVzY3IgPSBQeURlc2NyX05ld0NsYXNzTWV0aG9kKHR5cGUsIG1ldGgpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKG1ldGgtPm1sX2ZsYWdzICYgTUVUSF9TVEFUSUMpIHsKLSAgICAgICAgICAgIFB5T2JqZWN0ICpjZnVuYyA9IFB5Q0Z1bmN0aW9uX05ldyhtZXRoLCBOVUxMKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpjZnVuYyA9IFB5Q0Z1bmN0aW9uX05ldyhtZXRoLCAoUHlPYmplY3QqKXR5cGUpOwogICAgICAgICAgICAgaWYgKGNmdW5jID09IE5VTEwpCiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgZGVzY3IgPSBQeVN0YXRpY01ldGhvZF9OZXcoY2Z1bmMpOwpAQCAtMzYyNyw4ICszODg3LDggQEAKICAgICAgICAgICAgdGhhdCB0aGUgZXh0ZW5zaW9uIHR5cGUncyBvd24gZmFjdG9yeSBmdW5jdGlvbiBlbnN1cmVzKS4KICAgICAgICAgICAgSGVhcCB0eXBlcywgb2YgY291cnNlLCBhcmUgdW5kZXIgb3VyIGNvbnRyb2wsIHNvIHRoZXkgZG8KICAgICAgICAgICAgaW5oZXJpdCB0cF9uZXc7IHN0YXRpYyBleHRlbnNpb24gdHlwZXMgdGhhdCBzcGVjaWZ5IHNvbWUKLSAgICAgICAgICAgb3RoZXIgYnVpbHQtaW4gdHlwZSBhcyB0aGUgZGVmYXVsdCBhcmUgY29uc2lkZXJlZAotICAgICAgICAgICBuZXctc3R5bGUtYXdhcmUgc28gdGhleSBhbHNvIGluaGVyaXQgb2JqZWN0Ll9fbmV3X18uICovCisgICAgICAgICAgIG90aGVyIGJ1aWx0LWluIHR5cGUgYXMgdGhlIGRlZmF1bHQgYWxzbworICAgICAgICAgICBpbmhlcml0IG9iamVjdC5fX25ld19fLiAqLwogICAgICAgICBpZiAoYmFzZSAhPSAmUHlCYXNlT2JqZWN0X1R5cGUgfHwKICAgICAgICAgICAgICh0eXBlLT50cF9mbGFncyAmIFB5X1RQRkxBR1NfSEVBUFRZUEUpKSB7CiAgICAgICAgICAgICBpZiAodHlwZS0+dHBfbmV3ID09IE5VTEwpCkBAIC0zNjY3LDIzICszOTI3LDE3IEBACiAgICAgICAgIHR5cGUtPnRwX2ZsYWdzIHw9IFB5X1RQRkxBR1NfRElDVF9TVUJDTEFTUzsKIH0KIAotc3RhdGljIGNoYXIgKmhhc2hfbmFtZV9vcFtdID0gewotICAgICJfX2VxX18iLAotICAgICJfX2hhc2hfXyIsCi0gICAgTlVMTAotfTsKLQogc3RhdGljIGludAogb3ZlcnJpZGVzX2hhc2goUHlUeXBlT2JqZWN0ICp0eXBlKQogewotICAgIGNoYXIgKipwOwogICAgIFB5T2JqZWN0ICpkaWN0ID0gdHlwZS0+dHBfZGljdDsKKyAgICBfUHlfSURFTlRJRklFUihfX2VxX18pOwogCiAgICAgYXNzZXJ0KGRpY3QgIT0gTlVMTCk7Ci0gICAgZm9yIChwID0gaGFzaF9uYW1lX29wOyAqcDsgcCsrKSB7Ci0gICAgICAgIGlmIChQeURpY3RfR2V0SXRlbVN0cmluZyhkaWN0LCAqcCkgIT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgIH0KKyAgICBpZiAoX1B5RGljdF9HZXRJdGVtSWQoZGljdCwgJlB5SWRfX19lcV9fKSAhPSBOVUxMKQorICAgICAgICByZXR1cm4gMTsKKyAgICBpZiAoX1B5RGljdF9HZXRJdGVtSWQoZGljdCwgJlB5SWRfX19oYXNoX18pICE9IE5VTEwpCisgICAgICAgIHJldHVybiAxOwogICAgIHJldHVybiAwOwogfQogCkBAIC0zOTY5LDE2ICs0MjIzLDE2IEBACiAgICAgLyogaWYgdGhlIHR5cGUgZGljdGlvbmFyeSBkb2Vzbid0IGNvbnRhaW4gYSBfX2RvY19fLCBzZXQgaXQgZnJvbQogICAgICAgIHRoZSB0cF9kb2Mgc2xvdC4KICAgICAgKi8KLSAgICBpZiAoUHlEaWN0X0dldEl0ZW1TdHJpbmcodHlwZS0+dHBfZGljdCwgIl9fZG9jX18iKSA9PSBOVUxMKSB7CisgICAgaWYgKF9QeURpY3RfR2V0SXRlbUlkKHR5cGUtPnRwX2RpY3QsICZQeUlkX19fZG9jX18pID09IE5VTEwpIHsKICAgICAgICAgaWYgKHR5cGUtPnRwX2RvYyAhPSBOVUxMKSB7CiAgICAgICAgICAgICBQeU9iamVjdCAqZG9jID0gUHlVbmljb2RlX0Zyb21TdHJpbmcodHlwZS0+dHBfZG9jKTsKICAgICAgICAgICAgIGlmIChkb2MgPT0gTlVMTCkKICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICAgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcodHlwZS0+dHBfZGljdCwgIl9fZG9jX18iLCBkb2MpOworICAgICAgICAgICAgX1B5RGljdF9TZXRJdGVtSWQodHlwZS0+dHBfZGljdCwgJlB5SWRfX19kb2NfXywgZG9jKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRihkb2MpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcodHlwZS0+dHBfZGljdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2RvY19fIiwgUHlfTm9uZSk7CisgICAgICAgICAgICBfUHlEaWN0X1NldEl0ZW1JZCh0eXBlLT50cF9kaWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJlB5SWRfX19kb2NfXywgUHlfTm9uZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM5ODksOCArNDI0Myw4IEBACiAgICAgICAgVGhpcyBzaWduYWxzIHRoYXQgX19oYXNoX18gaXMgbm90IGluaGVyaXRlZC4KICAgICAgKi8KICAgICBpZiAodHlwZS0+dHBfaGFzaCA9PSBOVUxMKSB7Ci0gICAgICAgIGlmIChQeURpY3RfR2V0SXRlbVN0cmluZyh0eXBlLT50cF9kaWN0LCAiX19oYXNoX18iKSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcodHlwZS0+dHBfZGljdCwgIl9faGFzaF9fIiwgUHlfTm9uZSkgPCAwKQorICAgICAgICBpZiAoX1B5RGljdF9HZXRJdGVtSWQodHlwZS0+dHBfZGljdCwgJlB5SWRfX19oYXNoX18pID09IE5VTEwpIHsKKyAgICAgICAgICAgIGlmIChfUHlEaWN0X1NldEl0ZW1JZCh0eXBlLT50cF9kaWN0LCAmUHlJZF9fX2hhc2hfXywgUHlfTm9uZSkgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgICAgICAgICB0eXBlLT50cF9oYXNoID0gUHlPYmplY3RfSGFzaE5vdEltcGxlbWVudGVkOwogICAgICAgICB9CkBAIC00NTg3LDcgKzQ4NDEsNyBAQAogICAgICAgIG9iamVjdC5fX25ld19fKGRpY3QpLiAgVG8gZG8gdGhpcywgd2UgY2hlY2sgdGhhdCB0aGUKICAgICAgICBtb3N0IGRlcml2ZWQgYmFzZSB0aGF0J3Mgbm90IGEgaGVhcCB0eXBlIGlzIHRoaXMgdHlwZS4gKi8KICAgICBzdGF0aWNiYXNlID0gc3VidHlwZTsKLSAgICB3aGlsZSAoc3RhdGljYmFzZSAmJiAoc3RhdGljYmFzZS0+dHBfZmxhZ3MgJiBQeV9UUEZMQUdTX0hFQVBUWVBFKSkKKyAgICB3aGlsZSAoc3RhdGljYmFzZSAmJiAoc3RhdGljYmFzZS0+dHBfbmV3ID09IHNsb3RfdHBfbmV3KSkKICAgICAgICAgc3RhdGljYmFzZSA9IHN0YXRpY2Jhc2UtPnRwX2Jhc2U7CiAgICAgLyogSWYgc3RhdGljYmFzZSBpcyBOVUxMIG5vdywgaXQgaXMgYSByZWFsbHkgd2VpcmQgdHlwZS4KICAgICAgICBJbiB0aGUgc3Bpcml0IG9mIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5ICg/KSwganVzdCBzaHV0IHVwLiAqLwpAQCAtNDYyMCwxMiArNDg3NCwxMiBAQAogewogICAgIFB5T2JqZWN0ICpmdW5jOwogCi0gICAgaWYgKFB5RGljdF9HZXRJdGVtU3RyaW5nKHR5cGUtPnRwX2RpY3QsICJfX25ld19fIikgIT0gTlVMTCkKKyAgICBpZiAoX1B5RGljdF9HZXRJdGVtSWQodHlwZS0+dHBfZGljdCwgJlB5SWRfX19uZXdfXykgIT0gTlVMTCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgZnVuYyA9IFB5Q0Z1bmN0aW9uX05ldyh0cF9uZXdfbWV0aG9kZGVmLCAoUHlPYmplY3QgKil0eXBlKTsKICAgICBpZiAoZnVuYyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKHR5cGUtPnRwX2RpY3QsICJfX25ld19fIiwgZnVuYykpIHsKKyAgICBpZiAoX1B5RGljdF9TZXRJdGVtSWQodHlwZS0+dHBfZGljdCwgJlB5SWRfX19uZXdfXywgZnVuYykpIHsKICAgICAgICAgUHlfREVDUkVGKGZ1bmMpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQpAQCAtNDY0MCwzNCArNDg5NCwzNCBAQAogc3RhdGljIFB5T2JqZWN0ICogXAogRlVOQ05BTUUoUHlPYmplY3QgKnNlbGYpIFwKIHsgXAotICAgIHN0YXRpYyBQeU9iamVjdCAqY2FjaGVfc3RyOyBcCi0gICAgcmV0dXJuIGNhbGxfbWV0aG9kKHNlbGYsIE9QU1RSLCAmY2FjaGVfc3RyLCAiKCkiKTsgXAorICAgIF9QeV9zdGF0aWNfc3RyaW5nKGlkLCBPUFNUUik7IFwKKyAgICByZXR1cm4gY2FsbF9tZXRob2Qoc2VsZiwgJmlkLCAiKCkiKTsgXAogfQogCiAjZGVmaW5lIFNMT1QxKEZVTkNOQU1FLCBPUFNUUiwgQVJHMVRZUEUsIEFSR0NPREVTKSBcCiBzdGF0aWMgUHlPYmplY3QgKiBcCiBGVU5DTkFNRShQeU9iamVjdCAqc2VsZiwgQVJHMVRZUEUgYXJnMSkgXAogeyBcCi0gICAgc3RhdGljIFB5T2JqZWN0ICpjYWNoZV9zdHI7IFwKLSAgICByZXR1cm4gY2FsbF9tZXRob2Qoc2VsZiwgT1BTVFIsICZjYWNoZV9zdHIsICIoIiBBUkdDT0RFUyAiKSIsIGFyZzEpOyBcCisgICAgX1B5X3N0YXRpY19zdHJpbmcoaWQsIE9QU1RSKTsgXAorICAgIHJldHVybiBjYWxsX21ldGhvZChzZWxmLCAmaWQsICIoIiBBUkdDT0RFUyAiKSIsIGFyZzEpOyBcCiB9CiAKIC8qIEJvb2xlYW4gaGVscGVyIGZvciBTTE9UMUJJTkZVTEwoKS4KICAgIHJpZ2h0Ll9fY2xhc3NfXyBpcyBhIG5vbnRyaXZpYWwgc3ViY2xhc3Mgb2YgbGVmdC5fX2NsYXNzX18uICovCiBzdGF0aWMgaW50Ci1tZXRob2RfaXNfb3ZlcmxvYWRlZChQeU9iamVjdCAqbGVmdCwgUHlPYmplY3QgKnJpZ2h0LCBjaGFyICpuYW1lKQorbWV0aG9kX2lzX292ZXJsb2FkZWQoUHlPYmplY3QgKmxlZnQsIFB5T2JqZWN0ICpyaWdodCwgc3RydWN0IF9QeV9JZGVudGlmaWVyICpuYW1lKQogewogICAgIFB5T2JqZWN0ICphLCAqYjsKICAgICBpbnQgb2s7CiAKLSAgICBiID0gUHlPYmplY3RfR2V0QXR0clN0cmluZygoUHlPYmplY3QgKikoUHlfVFlQRShyaWdodCkpLCBuYW1lKTsKKyAgICBiID0gX1B5T2JqZWN0X0dldEF0dHJJZCgoUHlPYmplY3QgKikoUHlfVFlQRShyaWdodCkpLCBuYW1lKTsKICAgICBpZiAoYiA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgIC8qIElmIHJpZ2h0IGRvZXNuJ3QgaGF2ZSBpdCwgaXQncyBub3Qgb3ZlcmxvYWRlZCAqLwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBhID0gUHlPYmplY3RfR2V0QXR0clN0cmluZygoUHlPYmplY3QgKikoUHlfVFlQRShsZWZ0KSksIG5hbWUpOworICAgIGEgPSBfUHlPYmplY3RfR2V0QXR0cklkKChQeU9iamVjdCAqKShQeV9UWVBFKGxlZnQpKSwgbmFtZSk7CiAgICAgaWYgKGEgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICBQeV9ERUNSRUYoYik7CkBAIC00NjkxLDcgKzQ5NDUsOCBAQAogc3RhdGljIFB5T2JqZWN0ICogXAogRlVOQ05BTUUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpvdGhlcikgXAogeyBcCi0gICAgc3RhdGljIFB5T2JqZWN0ICpjYWNoZV9zdHIsICpyY2FjaGVfc3RyOyBcCisgICAgX1B5X3N0YXRpY19zdHJpbmcob3BfaWQsIE9QU1RSKTsgXAorICAgIF9QeV9zdGF0aWNfc3RyaW5nKHJvcF9pZCwgUk9QU1RSKTsgXAogICAgIGludCBkb19vdGhlciA9IFB5X1RZUEUoc2VsZikgIT0gUHlfVFlQRShvdGhlcikgJiYgXAogICAgICAgICBQeV9UWVBFKG90aGVyKS0+dHBfYXNfbnVtYmVyICE9IE5VTEwgJiYgXAogICAgICAgICBQeV9UWVBFKG90aGVyKS0+dHBfYXNfbnVtYmVyLT5TTE9UTkFNRSA9PSBURVNURlVOQzsgXApAQCAtNDcwMCwyNyArNDk1NSwyMyBAQAogICAgICAgICBQeU9iamVjdCAqcjsgXAogICAgICAgICBpZiAoZG9fb3RoZXIgJiYgXAogICAgICAgICAgICAgUHlUeXBlX0lzU3VidHlwZShQeV9UWVBFKG90aGVyKSwgUHlfVFlQRShzZWxmKSkgJiYgXAotICAgICAgICAgICAgbWV0aG9kX2lzX292ZXJsb2FkZWQoc2VsZiwgb3RoZXIsIFJPUFNUUikpIHsgXAotICAgICAgICAgICAgciA9IGNhbGxfbWF5YmUoIFwKLSAgICAgICAgICAgICAgICBvdGhlciwgUk9QU1RSLCAmcmNhY2hlX3N0ciwgIihPKSIsIHNlbGYpOyBcCisgICAgICAgICAgICBtZXRob2RfaXNfb3ZlcmxvYWRlZChzZWxmLCBvdGhlciwgJnJvcF9pZCkpIHsgXAorICAgICAgICAgICAgciA9IGNhbGxfbWF5YmUob3RoZXIsICZyb3BfaWQsICIoTykiLCBzZWxmKTsgXAogICAgICAgICAgICAgaWYgKHIgIT0gUHlfTm90SW1wbGVtZW50ZWQpIFwKICAgICAgICAgICAgICAgICByZXR1cm4gcjsgXAogICAgICAgICAgICAgUHlfREVDUkVGKHIpOyBcCiAgICAgICAgICAgICBkb19vdGhlciA9IDA7IFwKICAgICAgICAgfSBcCi0gICAgICAgIHIgPSBjYWxsX21heWJlKCBcCi0gICAgICAgICAgICBzZWxmLCBPUFNUUiwgJmNhY2hlX3N0ciwgIihPKSIsIG90aGVyKTsgXAorICAgICAgICByID0gY2FsbF9tYXliZShzZWxmLCAmb3BfaWQsICIoTykiLCBvdGhlcik7IFwKICAgICAgICAgaWYgKHIgIT0gUHlfTm90SW1wbGVtZW50ZWQgfHwgXAogICAgICAgICAgICAgUHlfVFlQRShvdGhlcikgPT0gUHlfVFlQRShzZWxmKSkgXAogICAgICAgICAgICAgcmV0dXJuIHI7IFwKICAgICAgICAgUHlfREVDUkVGKHIpOyBcCiAgICAgfSBcCiAgICAgaWYgKGRvX290aGVyKSB7IFwKLSAgICAgICAgcmV0dXJuIGNhbGxfbWF5YmUoIFwKLSAgICAgICAgICAgIG90aGVyLCBST1BTVFIsICZyY2FjaGVfc3RyLCAiKE8pIiwgc2VsZik7IFwKKyAgICAgICAgcmV0dXJuIGNhbGxfbWF5YmUob3RoZXIsICZyb3BfaWQsICIoTykiLCBzZWxmKTsgXAogICAgIH0gXAotICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7IFwKLSAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7IFwKKyAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7IFwKIH0KIAogI2RlZmluZSBTTE9UMUJJTihGVU5DTkFNRSwgU0xPVE5BTUUsIE9QU1RSLCBST1BTVFIpIFwKQEAgLTQ3MzAsMTYgKzQ5ODEsMTUgQEAKIHN0YXRpYyBQeU9iamVjdCAqIFwKIEZVTkNOQU1FKFB5T2JqZWN0ICpzZWxmLCBBUkcxVFlQRSBhcmcxLCBBUkcyVFlQRSBhcmcyKSBcCiB7IFwKLSAgICBzdGF0aWMgUHlPYmplY3QgKmNhY2hlX3N0cjsgXAotICAgIHJldHVybiBjYWxsX21ldGhvZChzZWxmLCBPUFNUUiwgJmNhY2hlX3N0ciwgXAotICAgICAgICAgICAgICAgICAgICAgICAiKCIgQVJHQ09ERVMgIikiLCBhcmcxLCBhcmcyKTsgXAorICAgIF9QeV9zdGF0aWNfc3RyaW5nKGlkLCAjT1BTVFIpOyBcCisgICAgcmV0dXJuIGNhbGxfbWV0aG9kKHNlbGYsICZpZCwgIigiIEFSR0NPREVTICIpIiwgYXJnMSwgYXJnMik7IFwKIH0KIAogc3RhdGljIFB5X3NzaXplX3QKIHNsb3Rfc3FfbGVuZ3RoKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHN0YXRpYyBQeU9iamVjdCAqbGVuX3N0cjsKLSAgICBQeU9iamVjdCAqcmVzID0gY2FsbF9tZXRob2Qoc2VsZiwgIl9fbGVuX18iLCAmbGVuX3N0ciwgIigpIik7CisgICAgX1B5X0lERU5USUZJRVIoX19sZW5fXyk7CisgICAgUHlPYmplY3QgKnJlcyA9IGNhbGxfbWV0aG9kKHNlbGYsICZQeUlkX19fbGVuX18sICIoKSIpOwogICAgIFB5X3NzaXplX3QgbGVuOwogCiAgICAgaWYgKHJlcyA9PSBOVUxMKQpAQCAtNDc2MCwxNiArNTAxMCwxMCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHNsb3Rfc3FfaXRlbShQeU9iamVjdCAqc2VsZiwgUHlfc3NpemVfdCBpKQogewotICAgIHN0YXRpYyBQeU9iamVjdCAqZ2V0aXRlbV9zdHI7CiAgICAgUHlPYmplY3QgKmZ1bmMsICphcmdzID0gTlVMTCwgKml2YWwgPSBOVUxMLCAqcmV0dmFsID0gTlVMTDsKICAgICBkZXNjcmdldGZ1bmMgZjsKIAotICAgIGlmIChnZXRpdGVtX3N0ciA9PSBOVUxMKSB7Ci0gICAgICAgIGdldGl0ZW1fc3RyID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fZ2V0aXRlbV9fIik7Ci0gICAgICAgIGlmIChnZXRpdGVtX3N0ciA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGZ1bmMgPSBfUHlUeXBlX0xvb2t1cChQeV9UWVBFKHNlbGYpLCBnZXRpdGVtX3N0cik7CisgICAgZnVuYyA9IF9QeVR5cGVfTG9va3VwSWQoUHlfVFlQRShzZWxmKSwgJlB5SWRfX19nZXRpdGVtX18pOwogICAgIGlmIChmdW5jICE9IE5VTEwpIHsKICAgICAgICAgaWYgKChmID0gUHlfVFlQRShmdW5jKS0+dHBfZGVzY3JfZ2V0KSA9PSBOVUxMKQogICAgICAgICAgICAgUHlfSU5DUkVGKGZ1bmMpOwpAQCAtNDc5Miw2ICs1MDM2LDcgQEAKICAgICAgICAgfQogICAgIH0KICAgICBlbHNlIHsKKyAgICAgICAgUHlPYmplY3QgKmdldGl0ZW1fc3RyID0gX1B5VW5pY29kZV9Gcm9tSWQoJlB5SWRfX19nZXRpdGVtX18pOwogICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNfQXR0cmlidXRlRXJyb3IsIGdldGl0ZW1fc3RyKTsKICAgICB9CiAgICAgUHlfWERFQ1JFRihhcmdzKTsKQEAgLTQ4MDQsMTQgKzUwNDksMTMgQEAKIHNsb3Rfc3FfYXNzX2l0ZW0oUHlPYmplY3QgKnNlbGYsIFB5X3NzaXplX3QgaW5kZXgsIFB5T2JqZWN0ICp2YWx1ZSkKIHsKICAgICBQeU9iamVjdCAqcmVzOwotICAgIHN0YXRpYyBQeU9iamVjdCAqZGVsaXRlbV9zdHIsICpzZXRpdGVtX3N0cjsKKyAgICBfUHlfSURFTlRJRklFUihfX2RlbGl0ZW1fXyk7CisgICAgX1B5X0lERU5USUZJRVIoX19zZXRpdGVtX18pOwogCiAgICAgaWYgKHZhbHVlID09IE5VTEwpCi0gICAgICAgIHJlcyA9IGNhbGxfbWV0aG9kKHNlbGYsICJfX2RlbGl0ZW1fXyIsICZkZWxpdGVtX3N0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIihuKSIsIGluZGV4KTsKKyAgICAgICAgcmVzID0gY2FsbF9tZXRob2Qoc2VsZiwgJlB5SWRfX19kZWxpdGVtX18sICIobikiLCBpbmRleCk7CiAgICAgZWxzZQotICAgICAgICByZXMgPSBjYWxsX21ldGhvZChzZWxmLCAiX19zZXRpdGVtX18iLCAmc2V0aXRlbV9zdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIobk8pIiwgaW5kZXgsIHZhbHVlKTsKKyAgICAgICAgcmVzID0gY2FsbF9tZXRob2Qoc2VsZiwgJlB5SWRfX19zZXRpdGVtX18sICIobk8pIiwgaW5kZXgsIHZhbHVlKTsKICAgICBpZiAocmVzID09IE5VTEwpCiAgICAgICAgIHJldHVybiAtMTsKICAgICBQeV9ERUNSRUYocmVzKTsKQEAgLTQ4MjMsMTAgKzUwNjcsOSBAQAogewogICAgIFB5T2JqZWN0ICpmdW5jLCAqcmVzLCAqYXJnczsKICAgICBpbnQgcmVzdWx0ID0gLTE7CisgICAgX1B5X0lERU5USUZJRVIoX19jb250YWluc19fKTsKIAotICAgIHN0YXRpYyBQeU9iamVjdCAqY29udGFpbnNfc3RyOwotCi0gICAgZnVuYyA9IGxvb2t1cF9tYXliZShzZWxmLCAiX19jb250YWluc19fIiwgJmNvbnRhaW5zX3N0cik7CisgICAgZnVuYyA9IGxvb2t1cF9tYXliZShzZWxmLCAmUHlJZF9fX2NvbnRhaW5zX18pOwogICAgIGlmIChmdW5jICE9IE5VTEwpIHsKICAgICAgICAgYXJncyA9IFB5VHVwbGVfUGFjaygxLCB2YWx1ZSk7CiAgICAgICAgIGlmIChhcmdzID09IE5VTEwpCkBAIC00ODU3LDE0ICs1MTAwLDE0IEBACiBzbG90X21wX2Fzc19zdWJzY3JpcHQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICprZXksIFB5T2JqZWN0ICp2YWx1ZSkKIHsKICAgICBQeU9iamVjdCAqcmVzOwotICAgIHN0YXRpYyBQeU9iamVjdCAqZGVsaXRlbV9zdHIsICpzZXRpdGVtX3N0cjsKKyAgICBfUHlfSURFTlRJRklFUihfX2RlbGl0ZW1fXyk7CisgICAgX1B5X0lERU5USUZJRVIoX19zZXRpdGVtX18pOwogCiAgICAgaWYgKHZhbHVlID09IE5VTEwpCi0gICAgICAgIHJlcyA9IGNhbGxfbWV0aG9kKHNlbGYsICJfX2RlbGl0ZW1fXyIsICZkZWxpdGVtX3N0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIihPKSIsIGtleSk7CisgICAgICAgIHJlcyA9IGNhbGxfbWV0aG9kKHNlbGYsICZQeUlkX19fZGVsaXRlbV9fLCAiKE8pIiwga2V5KTsKICAgICBlbHNlCi0gICAgICAgIHJlcyA9IGNhbGxfbWV0aG9kKHNlbGYsICJfX3NldGl0ZW1fXyIsICZzZXRpdGVtX3N0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiKE9PKSIsIGtleSwgdmFsdWUpOworICAgICAgICByZXMgPSBjYWxsX21ldGhvZChzZWxmLCAmUHlJZF9fX3NldGl0ZW1fXywgIihPTykiLCBrZXksIHZhbHVlKTsKKwogICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIFB5X0RFQ1JFRihyZXMpOwpAQCAtNDg4NSw3ICs1MTI4LDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBzbG90X25iX3Bvd2VyKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqb3RoZXIsIFB5T2JqZWN0ICptb2R1bHVzKQogewotICAgIHN0YXRpYyBQeU9iamVjdCAqcG93X3N0cjsKKyAgICBfUHlfSURFTlRJRklFUihfX3Bvd19fKTsKIAogICAgIGlmIChtb2R1bHVzID09IFB5X05vbmUpCiAgICAgICAgIHJldHVybiBzbG90X25iX3Bvd2VyX2JpbmFyeShzZWxmLCBvdGhlcik7CkBAIC00ODk0LDExICs1MTM3LDkgQEAKICAgICAgICBzbG90X25iX3Bvd2VyLCBzbyBjaGVjayBiZWZvcmUgY2FsbGluZyBzZWxmLl9fcG93X18uICovCiAgICAgaWYgKFB5X1RZUEUoc2VsZiktPnRwX2FzX251bWJlciAhPSBOVUxMICYmCiAgICAgICAgIFB5X1RZUEUoc2VsZiktPnRwX2FzX251bWJlci0+bmJfcG93ZXIgPT0gc2xvdF9uYl9wb3dlcikgewotICAgICAgICByZXR1cm4gY2FsbF9tZXRob2Qoc2VsZiwgIl9fcG93X18iLCAmcG93X3N0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICIoT08pIiwgb3RoZXIsIG1vZHVsdXMpOworICAgICAgICByZXR1cm4gY2FsbF9tZXRob2Qoc2VsZiwgJlB5SWRfX19wb3dfXywgIihPTykiLCBvdGhlciwgbW9kdWx1cyk7CiAgICAgfQotICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOworICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKIH0KIAogU0xPVDAoc2xvdF9uYl9uZWdhdGl2ZSwgIl9fbmVnX18iKQpAQCAtNDkwOSwxNSArNTE1MCwxNiBAQAogc2xvdF9uYl9ib29sKFB5T2JqZWN0ICpzZWxmKQogewogICAgIFB5T2JqZWN0ICpmdW5jLCAqYXJnczsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmJvb2xfc3RyLCAqbGVuX3N0cjsKICAgICBpbnQgcmVzdWx0ID0gLTE7CiAgICAgaW50IHVzaW5nX2xlbiA9IDA7CisgICAgX1B5X0lERU5USUZJRVIoX19sZW5fXyk7CisgICAgX1B5X0lERU5USUZJRVIoX19ib29sX18pOwogCi0gICAgZnVuYyA9IGxvb2t1cF9tYXliZShzZWxmLCAiX19ib29sX18iLCAmYm9vbF9zdHIpOworICAgIGZ1bmMgPSBsb29rdXBfbWF5YmUoc2VsZiwgJlB5SWRfX19ib29sX18pOwogICAgIGlmIChmdW5jID09IE5VTEwpIHsKICAgICAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIGZ1bmMgPSBsb29rdXBfbWF5YmUoc2VsZiwgIl9fbGVuX18iLCAmbGVuX3N0cik7CisgICAgICAgIGZ1bmMgPSBsb29rdXBfbWF5YmUoc2VsZiwgJlB5SWRfX19sZW5fXyk7CiAgICAgICAgIGlmIChmdW5jID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gUHlFcnJfT2NjdXJyZWQoKSA/IC0xIDogMTsKICAgICAgICAgdXNpbmdfbGVuID0gMTsKQEAgLTQ5NTIsOCArNTE5NCw4IEBACiBzdGF0aWMgUHlPYmplY3QgKgogc2xvdF9uYl9pbmRleChQeU9iamVjdCAqc2VsZikKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmluZGV4X3N0cjsKLSAgICByZXR1cm4gY2FsbF9tZXRob2Qoc2VsZiwgIl9faW5kZXhfXyIsICZpbmRleF9zdHIsICIoKSIpOworICAgIF9QeV9JREVOVElGSUVSKF9faW5kZXhfXyk7CisgICAgcmV0dXJuIGNhbGxfbWV0aG9kKHNlbGYsICZQeUlkX19faW5kZXhfXywgIigpIik7CiB9CiAKIApAQCAtNDk3NCw4ICs1MjE2LDggQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBzbG90X25iX2lucGxhY2VfcG93ZXIoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICogYXJnMSwgUHlPYmplY3QgKmFyZzIpCiB7Ci0gIHN0YXRpYyBQeU9iamVjdCAqY2FjaGVfc3RyOwotICByZXR1cm4gY2FsbF9tZXRob2Qoc2VsZiwgIl9faXBvd19fIiwgJmNhY2hlX3N0ciwgIigiICJPIiAiKSIsIGFyZzEpOworICAgIF9QeV9JREVOVElGSUVSKF9faXBvd19fKTsKKyAgICByZXR1cm4gY2FsbF9tZXRob2Qoc2VsZiwgJlB5SWRfX19pcG93X18sICIoIiAiTyIgIikiLCBhcmcxKTsKIH0KIFNMT1QxKHNsb3RfbmJfaW5wbGFjZV9sc2hpZnQsICJfX2lsc2hpZnRfXyIsIFB5T2JqZWN0ICosICJPIikKIFNMT1QxKHNsb3RfbmJfaW5wbGFjZV9yc2hpZnQsICJfX2lyc2hpZnRfXyIsIFB5T2JqZWN0ICosICJPIikKQEAgLTQ5OTIsOSArNTIzNCw5IEBACiBzbG90X3RwX3JlcHIoUHlPYmplY3QgKnNlbGYpCiB7CiAgICAgUHlPYmplY3QgKmZ1bmMsICpyZXM7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpyZXByX3N0cjsKKyAgICBfUHlfSURFTlRJRklFUihfX3JlcHJfXyk7CiAKLSAgICBmdW5jID0gbG9va3VwX21ldGhvZChzZWxmLCAiX19yZXByX18iLCAmcmVwcl9zdHIpOworICAgIGZ1bmMgPSBsb29rdXBfbWV0aG9kKHNlbGYsICZQeUlkX19fcmVwcl9fKTsKICAgICBpZiAoZnVuYyAhPSBOVUxMKSB7CiAgICAgICAgIHJlcyA9IFB5RXZhbF9DYWxsT2JqZWN0KGZ1bmMsIE5VTEwpOwogICAgICAgICBQeV9ERUNSRUYoZnVuYyk7CkBAIC01MDA5LDIzICs1MjUxLDMwIEBACiBzbG90X3RwX3N0cihQeU9iamVjdCAqc2VsZikKIHsKICAgICBQeU9iamVjdCAqZnVuYywgKnJlczsKLSAgICBzdGF0aWMgUHlPYmplY3QgKnN0cl9zdHI7CisgICAgX1B5X0lERU5USUZJRVIoX19zdHJfXyk7CiAKLSAgICBmdW5jID0gbG9va3VwX21ldGhvZChzZWxmLCAiX19zdHJfXyIsICZzdHJfc3RyKTsKKyAgICBmdW5jID0gbG9va3VwX21ldGhvZChzZWxmLCAmUHlJZF9fX3N0cl9fKTsKICAgICBpZiAoZnVuYyAhPSBOVUxMKSB7CiAgICAgICAgIHJlcyA9IFB5RXZhbF9DYWxsT2JqZWN0KGZ1bmMsIE5VTEwpOwogICAgICAgICBQeV9ERUNSRUYoZnVuYyk7CiAgICAgICAgIHJldHVybiByZXM7CiAgICAgfQogICAgIGVsc2UgewotICAgICAgICBQeU9iamVjdCAqcmVzczsKKyAgICAgICAgLyogUHlPYmplY3QgKnJlc3M7ICovCiAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgIHJlcyA9IHNsb3RfdHBfcmVwcihzZWxmKTsKICAgICAgICAgaWYgKCFyZXMpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgcmVzcyA9IF9QeVVuaWNvZGVfQXNEZWZhdWx0RW5jb2RlZFN0cmluZyhyZXMsIE5VTEwpOworICAgICAgICAvKiBYWFggdGhpcyBpcyBub24tc2Vuc2ljYWwuIFdoeSBzaG91bGQgd2UgcmV0dXJuCisgICAgICAgICAgIGEgYnl0ZXMgb2JqZWN0IGZyb20gX19zdHJfXy4gSXMgdGhpcyBjb2RlIGV2ZW4KKyAgICAgICAgICAgdXNlZD8gLSBtdmwgKi8KKyAgICAgICAgYXNzZXJ0KDApOworICAgICAgICByZXR1cm4gcmVzOworICAgICAgICAvKgorICAgICAgICByZXNzID0gX1B5VW5pY29kZV9Bc0RlZmF1bHRFbmNvZGVkU3RyaW5nKHJlcyk7CiAgICAgICAgIFB5X0RFQ1JFRihyZXMpOwogICAgICAgICByZXR1cm4gcmVzczsKKyAgICAgICAgKi8KICAgICB9CiB9CiAKQEAgLTUwMzMsMTAgKzUyODIsOSBAQAogc2xvdF90cF9oYXNoKFB5T2JqZWN0ICpzZWxmKQogewogICAgIFB5T2JqZWN0ICpmdW5jLCAqcmVzOwotICAgIHN0YXRpYyBQeU9iamVjdCAqaGFzaF9zdHI7CiAgICAgUHlfc3NpemVfdCBoOwogCi0gICAgZnVuYyA9IGxvb2t1cF9tZXRob2Qoc2VsZiwgIl9faGFzaF9fIiwgJmhhc2hfc3RyKTsKKyAgICBmdW5jID0gbG9va3VwX21ldGhvZChzZWxmLCAmUHlJZF9fX2hhc2hfXyk7CiAKICAgICBpZiAoZnVuYyA9PSBQeV9Ob25lKSB7CiAgICAgICAgIFB5X0RFQ1JFRihmdW5jKTsKQEAgLTUwODAsOCArNTMyOCw4IEBACiBzdGF0aWMgUHlPYmplY3QgKgogc2xvdF90cF9jYWxsKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpjYWxsX3N0cjsKLSAgICBQeU9iamVjdCAqbWV0aCA9IGxvb2t1cF9tZXRob2Qoc2VsZiwgIl9fY2FsbF9fIiwgJmNhbGxfc3RyKTsKKyAgICBfUHlfSURFTlRJRklFUihfX2NhbGxfXyk7CisgICAgUHlPYmplY3QgKm1ldGggPSBsb29rdXBfbWV0aG9kKHNlbGYsICZQeUlkX19fY2FsbF9fKTsKICAgICBQeU9iamVjdCAqcmVzOwogCiAgICAgaWYgKG1ldGggPT0gTlVMTCkKQEAgLTUxMDcsOSArNTM1NSw3IEBACiBzdGF0aWMgUHlPYmplY3QgKgogc2xvdF90cF9nZXRhdHRybyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm5hbWUpCiB7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpnZXRhdHRyaWJ1dGVfc3RyID0gTlVMTDsKLSAgICByZXR1cm4gY2FsbF9tZXRob2Qoc2VsZiwgIl9fZ2V0YXR0cmlidXRlX18iLCAmZ2V0YXR0cmlidXRlX3N0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgIihPKSIsIG5hbWUpOworICAgIHJldHVybiBjYWxsX21ldGhvZChzZWxmLCAmUHlJZF9fX2dldGF0dHJpYnV0ZV9fLCAiKE8pIiwgbmFtZSk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC01MTM1LDI2ICs1MzgxLDE0IEBACiB7CiAgICAgUHlUeXBlT2JqZWN0ICp0cCA9IFB5X1RZUEUoc2VsZik7CiAgICAgUHlPYmplY3QgKmdldGF0dHIsICpnZXRhdHRyaWJ1dGUsICpyZXM7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpnZXRhdHRyaWJ1dGVfc3RyID0gTlVMTDsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmdldGF0dHJfc3RyID0gTlVMTDsKKyAgICBfUHlfSURFTlRJRklFUihfX2dldGF0dHJfXyk7CiAKLSAgICBpZiAoZ2V0YXR0cl9zdHIgPT0gTlVMTCkgewotICAgICAgICBnZXRhdHRyX3N0ciA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCJfX2dldGF0dHJfXyIpOwotICAgICAgICBpZiAoZ2V0YXR0cl9zdHIgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBpZiAoZ2V0YXR0cmlidXRlX3N0ciA9PSBOVUxMKSB7Ci0gICAgICAgIGdldGF0dHJpYnV0ZV9zdHIgPQotICAgICAgICAgICAgUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fZ2V0YXR0cmlidXRlX18iKTsKLSAgICAgICAgaWYgKGdldGF0dHJpYnV0ZV9zdHIgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KICAgICAvKiBzcGVlZCBoYWNrOiB3ZSBjb3VsZCB1c2UgbG9va3VwX21heWJlLCBidXQgdGhhdCB3b3VsZCByZXNvbHZlIHRoZQogICAgICAgIG1ldGhvZCBmdWxseSBmb3IgZWFjaCBhdHRyaWJ1dGUgbG9va3VwIGZvciBjbGFzc2VzIHdpdGgKICAgICAgICBfX2dldGF0dHJfXywgZXZlbiB3aGVuIHRoZSBhdHRyaWJ1dGUgaXMgcHJlc2VudC4gU28gd2UgdXNlCiAgICAgICAgX1B5VHlwZV9Mb29rdXAgYW5kIGNyZWF0ZSB0aGUgbWV0aG9kIG9ubHkgd2hlbiBuZWVkZWQsIHdpdGgKICAgICAgICBjYWxsX2F0dHJpYnV0ZS4gKi8KLSAgICBnZXRhdHRyID0gX1B5VHlwZV9Mb29rdXAodHAsIGdldGF0dHJfc3RyKTsKKyAgICBnZXRhdHRyID0gX1B5VHlwZV9Mb29rdXBJZCh0cCwgJlB5SWRfX19nZXRhdHRyX18pOwogICAgIGlmIChnZXRhdHRyID09IE5VTEwpIHsKICAgICAgICAgLyogTm8gX19nZXRhdHRyX18gaG9vazogdXNlIGEgc2ltcGxlciBkaXNwYXRjaGVyICovCiAgICAgICAgIHRwLT50cF9nZXRhdHRybyA9IHNsb3RfdHBfZ2V0YXR0cm87CkBAIC01MTY2LDcgKzU0MDAsNyBAQAogICAgICAgIF9fZ2V0YXR0cl9fLCBldmVuIHdoZW4gc2VsZiBoYXMgdGhlIGRlZmF1bHQgX19nZXRhdHRyaWJ1dGVfXwogICAgICAgIG1ldGhvZC4gU28gd2UgdXNlIF9QeVR5cGVfTG9va3VwIGFuZCBjcmVhdGUgdGhlIG1ldGhvZCBvbmx5IHdoZW4KICAgICAgICBuZWVkZWQsIHdpdGggY2FsbF9hdHRyaWJ1dGUuICovCi0gICAgZ2V0YXR0cmlidXRlID0gX1B5VHlwZV9Mb29rdXAodHAsIGdldGF0dHJpYnV0ZV9zdHIpOworICAgIGdldGF0dHJpYnV0ZSA9IF9QeVR5cGVfTG9va3VwSWQodHAsICZQeUlkX19fZ2V0YXR0cmlidXRlX18pOwogICAgIGlmIChnZXRhdHRyaWJ1dGUgPT0gTlVMTCB8fAogICAgICAgICAoUHlfVFlQRShnZXRhdHRyaWJ1dGUpID09ICZQeVdyYXBwZXJEZXNjcl9UeXBlICYmCiAgICAgICAgICAoKFB5V3JhcHBlckRlc2NyT2JqZWN0ICopZ2V0YXR0cmlidXRlKS0+ZF93cmFwcGVkID09CkBAIC01MTg5LDQwICs1NDIzLDM3IEBACiBzbG90X3RwX3NldGF0dHJvKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqbmFtZSwgUHlPYmplY3QgKnZhbHVlKQogewogICAgIFB5T2JqZWN0ICpyZXM7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpkZWxhdHRyX3N0ciwgKnNldGF0dHJfc3RyOworICAgIF9QeV9JREVOVElGSUVSKF9fZGVsYXR0cl9fKTsKKyAgICBfUHlfSURFTlRJRklFUihfX3NldGF0dHJfXyk7CiAKICAgICBpZiAodmFsdWUgPT0gTlVMTCkKLSAgICAgICAgcmVzID0gY2FsbF9tZXRob2Qoc2VsZiwgIl9fZGVsYXR0cl9fIiwgJmRlbGF0dHJfc3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiKE8pIiwgbmFtZSk7CisgICAgICAgIHJlcyA9IGNhbGxfbWV0aG9kKHNlbGYsICZQeUlkX19fZGVsYXR0cl9fLCAiKE8pIiwgbmFtZSk7CiAgICAgZWxzZQotICAgICAgICByZXMgPSBjYWxsX21ldGhvZChzZWxmLCAiX19zZXRhdHRyX18iLCAmc2V0YXR0cl9zdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIoT08pIiwgbmFtZSwgdmFsdWUpOworICAgICAgICByZXMgPSBjYWxsX21ldGhvZChzZWxmLCAmUHlJZF9fX3NldGF0dHJfXywgIihPTykiLCBuYW1lLCB2YWx1ZSk7CiAgICAgaWYgKHJlcyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgUHlfREVDUkVGKHJlcyk7CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBjaGFyICpuYW1lX29wW10gPSB7Ci0gICAgIl9fbHRfXyIsCi0gICAgIl9fbGVfXyIsCi0gICAgIl9fZXFfXyIsCi0gICAgIl9fbmVfXyIsCi0gICAgIl9fZ3RfXyIsCi0gICAgIl9fZ2VfXyIsCitzdGF0aWMgX1B5X0lkZW50aWZpZXIgbmFtZV9vcFtdID0geworICAgIHswLCAiX19sdF9fIiwgMH0sCisgICAgezAsICJfX2xlX18iLCAwfSwKKyAgICB7MCwgIl9fZXFfXyIsIDB9LAorICAgIHswLCAiX19uZV9fIiwgMH0sCisgICAgezAsICJfX2d0X18iLCAwfSwKKyAgICB7MCwgIl9fZ2VfXyIsIDB9CiB9OwogCiBzdGF0aWMgUHlPYmplY3QgKgogc2xvdF90cF9yaWNoY29tcGFyZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm90aGVyLCBpbnQgb3ApCiB7CiAgICAgUHlPYmplY3QgKmZ1bmMsICphcmdzLCAqcmVzOwotICAgIHN0YXRpYyBQeU9iamVjdCAqb3Bfc3RyWzZdOwogCi0gICAgZnVuYyA9IGxvb2t1cF9tZXRob2Qoc2VsZiwgbmFtZV9vcFtvcF0sICZvcF9zdHJbb3BdKTsKKyAgICBmdW5jID0gbG9va3VwX21ldGhvZChzZWxmLCAmbmFtZV9vcFtvcF0pOwogICAgIGlmIChmdW5jID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOworICAgICAgICBQeV9SRVRVUk5fTk9USU1QTEVNRU5URUQ7CiAgICAgfQogICAgIGFyZ3MgPSBQeVR1cGxlX1BhY2soMSwgb3RoZXIpOwogICAgIGlmIChhcmdzID09IE5VTEwpCkBAIC01MjM5LDkgKzU0NzAsOSBAQAogc2xvdF90cF9pdGVyKFB5T2JqZWN0ICpzZWxmKQogewogICAgIFB5T2JqZWN0ICpmdW5jLCAqcmVzOwotICAgIHN0YXRpYyBQeU9iamVjdCAqaXRlcl9zdHIsICpnZXRpdGVtX3N0cjsKKyAgICBfUHlfSURFTlRJRklFUihfX2l0ZXJfXyk7CiAKLSAgICBmdW5jID0gbG9va3VwX21ldGhvZChzZWxmLCAiX19pdGVyX18iLCAmaXRlcl9zdHIpOworICAgIGZ1bmMgPSBsb29rdXBfbWV0aG9kKHNlbGYsICZQeUlkX19faXRlcl9fKTsKICAgICBpZiAoZnVuYyAhPSBOVUxMKSB7CiAgICAgICAgIFB5T2JqZWN0ICphcmdzOwogICAgICAgICBhcmdzID0gcmVzID0gUHlUdXBsZV9OZXcoMCk7CkBAIC01MjUzLDcgKzU0ODQsNyBAQAogICAgICAgICByZXR1cm4gcmVzOwogICAgIH0KICAgICBQeUVycl9DbGVhcigpOwotICAgIGZ1bmMgPSBsb29rdXBfbWV0aG9kKHNlbGYsICJfX2dldGl0ZW1fXyIsICZnZXRpdGVtX3N0cik7CisgICAgZnVuYyA9IGxvb2t1cF9tZXRob2Qoc2VsZiwgJlB5SWRfX19nZXRpdGVtX18pOwogICAgIGlmIChmdW5jID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICInJS4yMDBzJyBvYmplY3QgaXMgbm90IGl0ZXJhYmxlIiwKQEAgLTUyNjcsOCArNTQ5OCw4IEBACiBzdGF0aWMgUHlPYmplY3QgKgogc2xvdF90cF9pdGVybmV4dChQeU9iamVjdCAqc2VsZikKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKm5leHRfc3RyOwotICAgIHJldHVybiBjYWxsX21ldGhvZChzZWxmLCAiX19uZXh0X18iLCAmbmV4dF9zdHIsICIoKSIpOworICAgIF9QeV9JREVOVElGSUVSKF9fbmV4dF9fKTsKKyAgICByZXR1cm4gY2FsbF9tZXRob2Qoc2VsZiwgJlB5SWRfX19uZXh0X18sICIoKSIpOwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtNTI3NiwxNCArNTUwNyw5IEBACiB7CiAgICAgUHlUeXBlT2JqZWN0ICp0cCA9IFB5X1RZUEUoc2VsZik7CiAgICAgUHlPYmplY3QgKmdldDsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmdldF9zdHIgPSBOVUxMOworICAgIF9QeV9JREVOVElGSUVSKF9fZ2V0X18pOwogCi0gICAgaWYgKGdldF9zdHIgPT0gTlVMTCkgewotICAgICAgICBnZXRfc3RyID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fZ2V0X18iKTsKLSAgICAgICAgaWYgKGdldF9zdHIgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBnZXQgPSBfUHlUeXBlX0xvb2t1cCh0cCwgZ2V0X3N0cik7CisgICAgZ2V0ID0gX1B5VHlwZV9Mb29rdXBJZCh0cCwgJlB5SWRfX19nZXRfXyk7CiAgICAgaWYgKGdldCA9PSBOVUxMKSB7CiAgICAgICAgIC8qIEF2b2lkIGZ1cnRoZXIgc2xvd2Rvd25zICovCiAgICAgICAgIGlmICh0cC0+dHBfZGVzY3JfZ2V0ID09IHNsb3RfdHBfZGVzY3JfZ2V0KQpAQCAtNTMwMiwxNCArNTUyOCwxMyBAQAogc2xvdF90cF9kZXNjcl9zZXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICp0YXJnZXQsIFB5T2JqZWN0ICp2YWx1ZSkKIHsKICAgICBQeU9iamVjdCAqcmVzOwotICAgIHN0YXRpYyBQeU9iamVjdCAqZGVsX3N0ciwgKnNldF9zdHI7CisgICAgX1B5X0lERU5USUZJRVIoX19kZWxldGVfXyk7CisgICAgX1B5X0lERU5USUZJRVIoX19zZXRfXyk7CiAKICAgICBpZiAodmFsdWUgPT0gTlVMTCkKLSAgICAgICAgcmVzID0gY2FsbF9tZXRob2Qoc2VsZiwgIl9fZGVsZXRlX18iLCAmZGVsX3N0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIihPKSIsIHRhcmdldCk7CisgICAgICAgIHJlcyA9IGNhbGxfbWV0aG9kKHNlbGYsICZQeUlkX19fZGVsZXRlX18sICIoTykiLCB0YXJnZXQpOwogICAgIGVsc2UKLSAgICAgICAgcmVzID0gY2FsbF9tZXRob2Qoc2VsZiwgIl9fc2V0X18iLCAmc2V0X3N0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIihPTykiLCB0YXJnZXQsIHZhbHVlKTsKKyAgICAgICAgcmVzID0gY2FsbF9tZXRob2Qoc2VsZiwgJlB5SWRfX19zZXRfXywgIihPTykiLCB0YXJnZXQsIHZhbHVlKTsKICAgICBpZiAocmVzID09IE5VTEwpCiAgICAgICAgIHJldHVybiAtMTsKICAgICBQeV9ERUNSRUYocmVzKTsKQEAgLTUzMTksOCArNTU0NCw4IEBACiBzdGF0aWMgaW50CiBzbG90X3RwX2luaXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKLSAgICBzdGF0aWMgUHlPYmplY3QgKmluaXRfc3RyOwotICAgIFB5T2JqZWN0ICptZXRoID0gbG9va3VwX21ldGhvZChzZWxmLCAiX19pbml0X18iLCAmaW5pdF9zdHIpOworICAgIF9QeV9JREVOVElGSUVSKF9faW5pdF9fKTsKKyAgICBQeU9iamVjdCAqbWV0aCA9IGxvb2t1cF9tZXRob2Qoc2VsZiwgJlB5SWRfX19pbml0X18pOwogICAgIFB5T2JqZWN0ICpyZXM7CiAKICAgICBpZiAobWV0aCA9PSBOVUxMKQpAQCAtNTM0MywxNyArNTU2OCwxMiBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHNsb3RfdHBfbmV3KFB5VHlwZU9iamVjdCAqdHlwZSwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogewotICAgIHN0YXRpYyBQeU9iamVjdCAqbmV3X3N0cjsKICAgICBQeU9iamVjdCAqZnVuYzsKICAgICBQeU9iamVjdCAqbmV3YXJncywgKng7CiAgICAgUHlfc3NpemVfdCBpLCBuOworICAgIF9QeV9JREVOVElGSUVSKF9fbmV3X18pOwogCi0gICAgaWYgKG5ld19zdHIgPT0gTlVMTCkgewotICAgICAgICBuZXdfc3RyID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fbmV3X18iKTsKLSAgICAgICAgaWYgKG5ld19zdHIgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBmdW5jID0gUHlPYmplY3RfR2V0QXR0cigoUHlPYmplY3QgKil0eXBlLCBuZXdfc3RyKTsKKyAgICBmdW5jID0gX1B5T2JqZWN0X0dldEF0dHJJZCgoUHlPYmplY3QgKil0eXBlLCAmUHlJZF9fX25ld19fKTsKICAgICBpZiAoZnVuYyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBhc3NlcnQoUHlUdXBsZV9DaGVjayhhcmdzKSk7CkBAIC01Mzc3LDcgKzU1OTcsNyBAQAogc3RhdGljIHZvaWQKIHNsb3RfdHBfZGVsKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHN0YXRpYyBQeU9iamVjdCAqZGVsX3N0ciA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIoX19kZWxfXyk7CiAgICAgUHlPYmplY3QgKmRlbCwgKnJlczsKICAgICBQeU9iamVjdCAqZXJyb3JfdHlwZSwgKmVycm9yX3ZhbHVlLCAqZXJyb3JfdHJhY2ViYWNrOwogCkBAIC01Mzg5LDcgKzU2MDksNyBAQAogICAgIFB5RXJyX0ZldGNoKCZlcnJvcl90eXBlLCAmZXJyb3JfdmFsdWUsICZlcnJvcl90cmFjZWJhY2spOwogCiAgICAgLyogRXhlY3V0ZSBfX2RlbF9fIG1ldGhvZCwgaWYgYW55LiAqLwotICAgIGRlbCA9IGxvb2t1cF9tYXliZShzZWxmLCAiX19kZWxfXyIsICZkZWxfc3RyKTsKKyAgICBkZWwgPSBsb29rdXBfbWF5YmUoc2VsZiwgJlB5SWRfX19kZWxfXyk7CiAgICAgaWYgKGRlbCAhPSBOVUxMKSB7CiAgICAgICAgIHJlcyA9IFB5RXZhbF9DYWxsT2JqZWN0KGRlbCwgTlVMTCk7CiAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKQEAgLTYxMDQsNyArNjMyNCw3IEBACiAgICAgICAgIC8qIFdlIHdhbnQgX19jbGFzc19fIHRvIHJldHVybiB0aGUgY2xhc3Mgb2YgdGhlIHN1cGVyIG9iamVjdAogICAgICAgICAgICAoaS5lLiBzdXBlciwgb3IgYSBzdWJjbGFzcyksIG5vdCB0aGUgY2xhc3Mgb2Ygc3UtPm9iai4gKi8KICAgICAgICAgc2tpcCA9IChQeVVuaWNvZGVfQ2hlY2sobmFtZSkgJiYKLSAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShuYW1lKSA9PSA5ICYmCisgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChuYW1lKSA9PSA5ICYmCiAgICAgICAgICAgICBQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZyhuYW1lLCAiX19jbGFzc19fIikgPT0gMCk7CiAgICAgfQogCkBAIC02MTI5LDYgKzYzNDksOSBAQAogICAgICAgICB9CiAgICAgICAgIGkrKzsKICAgICAgICAgcmVzID0gTlVMTDsKKyAgICAgICAgLyoga2VlcCBhIHN0cm9uZyByZWZlcmVuY2UgdG8gbXJvIGJlY2F1c2Ugc3RhcnR0eXBlLT50cF9tcm8gY2FuIGJlCisgICAgICAgICAgIHJlcGxhY2VkIGR1cmluZyBQeURpY3RfR2V0SXRlbShkaWN0LCBuYW1lKSAgKi8KKyAgICAgICAgUHlfSU5DUkVGKG1ybyk7CiAgICAgICAgIGZvciAoOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgICAgICB0bXAgPSBQeVR1cGxlX0dFVF9JVEVNKG1ybywgaSk7CiAgICAgICAgICAgICBpZiAoUHlUeXBlX0NoZWNrKHRtcCkpCkBAIC02MTUzLDkgKzYzNzYsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHJlcyk7CiAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHRtcDsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKG1ybyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlczsKICAgICAgICAgICAgIH0KICAgICAgICAgfQorICAgICAgICBQeV9ERUNSRUYobXJvKTsKICAgICB9CiAgICAgcmV0dXJuIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyKHNlbGYsIG5hbWUpOwogfQpAQCAtNjE2NSw3ICs2MzkwLDcgQEAKIHsKICAgICAvKiBDaGVjayB0aGF0IGEgc3VwZXIoKSBjYWxsIG1ha2VzIHNlbnNlLiAgUmV0dXJuIGEgdHlwZSBvYmplY3QuCiAKLSAgICAgICBvYmogY2FuIGJlIGEgbmV3LXN0eWxlIGNsYXNzLCBvciBhbiBpbnN0YW5jZSBvZiBvbmU6CisgICAgICAgb2JqIGNhbiBiZSBhIGNsYXNzLCBvciBhbiBpbnN0YW5jZSBvZiBvbmU6CiAKICAgICAgICAtIElmIGl0IGlzIGEgY2xhc3MsIGl0IG11c3QgYmUgYSBzdWJjbGFzcyBvZiAndHlwZScuICAgICAgVGhpcyBjYXNlIGlzCiAgICAgICAgICB1c2VkIGZvciBjbGFzcyBtZXRob2RzOyB0aGUgcmV0dXJuIHZhbHVlIGlzIG9iai4KQEAgLTYxOTEsMTcgKzY0MTYsOSBAQAogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgLyogVHJ5IHRoZSBzbG93IHdheSAqLwotICAgICAgICBzdGF0aWMgUHlPYmplY3QgKmNsYXNzX3N0ciA9IE5VTEw7CiAgICAgICAgIFB5T2JqZWN0ICpjbGFzc19hdHRyOwogCi0gICAgICAgIGlmIChjbGFzc19zdHIgPT0gTlVMTCkgewotICAgICAgICAgICAgY2xhc3Nfc3RyID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIl9fY2xhc3NfXyIpOwotICAgICAgICAgICAgaWYgKGNsYXNzX3N0ciA9PSBOVUxMKQotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0KLSAgICAgICAgY2xhc3NfYXR0ciA9IFB5T2JqZWN0X0dldEF0dHIob2JqLCBjbGFzc19zdHIpOwotCisgICAgICAgIGNsYXNzX2F0dHIgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfX19jbGFzc19fKTsKICAgICAgICAgaWYgKGNsYXNzX2F0dHIgIT0gTlVMTCAmJgogICAgICAgICAgICAgUHlUeXBlX0NoZWNrKGNsYXNzX2F0dHIpICYmCiAgICAgICAgICAgICAoUHlUeXBlT2JqZWN0ICopY2xhc3NfYXR0ciAhPSBQeV9UWVBFKG9iaikpCmRpZmYgLS1naXQgYS9PYmplY3RzL3R5cGVzbG90cy5pbmMgYi9PYmplY3RzL3R5cGVzbG90cy5pbmMKaW5kZXggNTE4NmRjZi4uY2FhMWUwMyAxMDA2NDQKLS0tIGEvT2JqZWN0cy90eXBlc2xvdHMuaW5jCisrKyBiL09iamVjdHMvdHlwZXNsb3RzLmluYwpAQCAtMSw0ICsxLDQgQEAKLS8qIEdlbmVyYXRlZCBieSB0eXBlc2xvdHMucHkgJFJldmlzaW9uJCAqLworLyogR2VuZXJhdGVkIGJ5IHR5cGVzbG90cy5weSAqLwogMCwKIDAsCiBvZmZzZXRvZihQeUhlYXBUeXBlT2JqZWN0LCBhc19tYXBwaW5nLm1wX2Fzc19zdWJzY3JpcHQpLApkaWZmIC0tZ2l0IGEvT2JqZWN0cy90eXBlc2xvdHMucHkgYi9PYmplY3RzL3R5cGVzbG90cy5weQppbmRleCAyZTAwYzgwLi5iMjRjN2Y0IDEwMDY0NAotLS0gYS9PYmplY3RzL3R5cGVzbG90cy5weQorKysgYi9PYmplY3RzL3R5cGVzbG90cy5weQpAQCAtMyw3ICszLDcgQEAKIAogaW1wb3J0IHN5cywgcmUKIAotcHJpbnQoIi8qIEdlbmVyYXRlZCBieSB0eXBlc2xvdHMucHkgJFJldmlzaW9uJCAqLyIpCitwcmludCgiLyogR2VuZXJhdGVkIGJ5IHR5cGVzbG90cy5weSAqLyIpCiByZXMgPSB7fQogZm9yIGxpbmUgaW4gc3lzLnN0ZGluOgogICAgIG0gPSByZS5tYXRjaCgiI2RlZmluZSBQeV8oW2Etel9dKykgKFswLTldKykiLCBsaW5lKQpkaWZmIC0tZ2l0IGEvT2JqZWN0cy91bmljb2RlY3R5cGUuYyBiL09iamVjdHMvdW5pY29kZWN0eXBlLmMKaW5kZXggOWY2YWM4OS4uYTU3MmMxMiAxMDA2NDQKLS0tIGEvT2JqZWN0cy91bmljb2RlY3R5cGUuYworKysgYi9PYmplY3RzL3VuaWNvZGVjdHlwZS5jCkBAIC0yMSwxMyArMjEsMjAgQEAKICNkZWZpbmUgWElEX1NUQVJUX01BU0sgMHgxMDAKICNkZWZpbmUgWElEX0NPTlRJTlVFX01BU0sgMHgyMDAKICNkZWZpbmUgUFJJTlRBQkxFX01BU0sgMHg0MDAKLSNkZWZpbmUgTk9ERUxUQV9NQVNLIDB4ODAwCi0jZGVmaW5lIE5VTUVSSUNfTUFTSyAweDEwMDAKKyNkZWZpbmUgTlVNRVJJQ19NQVNLIDB4ODAwCisjZGVmaW5lIENBU0VfSUdOT1JBQkxFX01BU0sgMHgxMDAwCisjZGVmaW5lIENBU0VEX01BU0sgMHgyMDAwCisjZGVmaW5lIEVYVEVOREVEX0NBU0VfTUFTSyAweDQwMDAKIAogdHlwZWRlZiBzdHJ1Y3QgewotICAgIGNvbnN0IFB5X1VDUzQgdXBwZXI7Ci0gICAgY29uc3QgUHlfVUNTNCBsb3dlcjsKLSAgICBjb25zdCBQeV9VQ1M0IHRpdGxlOworICAgIC8qIAorICAgICAgIFRoZXNlIGFyZSBlaXRoZXIgZGVsdGFzIHRvIHRoZSBjaGFyYWN0ZXIgb3Igb2Zmc2V0cyBpbgorICAgICAgIF9QeVVuaWNvZGVfRXh0ZW5kZWRDYXNlLgorICAgICovCisgICAgY29uc3QgaW50IHVwcGVyOworICAgIGNvbnN0IGludCBsb3dlcjsKKyAgICBjb25zdCBpbnQgdGl0bGU7CisgICAgLyogTm90ZSBpZiBtb3JlIGZsYWcgc3BhY2UgaXMgbmVlZGVkLCBkZWNpbWFsIGFuZCBkaWdpdCBjb3VsZCBiZSB1bmlmaWVkLiAqLwogICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgZGVjaW1hbDsKICAgICBjb25zdCB1bnNpZ25lZCBjaGFyIGRpZ2l0OwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IGZsYWdzOwpAQCAtNTcsMTUgKzY0LDEwIEBACiBQeV9VQ1M0IF9QeVVuaWNvZGVfVG9UaXRsZWNhc2UocmVnaXN0ZXIgUHlfVUNTNCBjaCkKIHsKICAgICBjb25zdCBfUHlVbmljb2RlX1R5cGVSZWNvcmQgKmN0eXBlID0gZ2V0dHlwZXJlY29yZChjaCk7Ci0gICAgaW50IGRlbHRhID0gY3R5cGUtPnRpdGxlOwogCi0gICAgaWYgKGN0eXBlLT5mbGFncyAmIE5PREVMVEFfTUFTSykKLSAgICAgICAgcmV0dXJuIGRlbHRhOwotCi0gICAgaWYgKGRlbHRhID49IDMyNzY4KQotICAgICAgICAgICAgZGVsdGEgLT0gNjU1MzY7Ci0KLSAgICByZXR1cm4gY2ggKyBkZWx0YTsKKyAgICBpZiAoY3R5cGUtPmZsYWdzICYgRVhURU5ERURfQ0FTRV9NQVNLKQorICAgICAgICByZXR1cm4gX1B5VW5pY29kZV9FeHRlbmRlZENhc2VbY3R5cGUtPnRpdGxlICYgMHhGRkZGXTsKKyAgICByZXR1cm4gY2ggKyBjdHlwZS0+dGl0bGU7CiB9CiAKIC8qIFJldHVybnMgMSBmb3IgVW5pY29kZSBjaGFyYWN0ZXJzIGhhdmluZyB0aGUgY2F0ZWdvcnkgJ0x0JywgMApAQCAtMTg4LDEyICsxOTAsMTAgQEAKIFB5X1VDUzQgX1B5VW5pY29kZV9Ub1VwcGVyY2FzZShQeV9VQ1M0IGNoKQogewogICAgIGNvbnN0IF9QeVVuaWNvZGVfVHlwZVJlY29yZCAqY3R5cGUgPSBnZXR0eXBlcmVjb3JkKGNoKTsKLSAgICBpbnQgZGVsdGEgPSBjdHlwZS0+dXBwZXI7Ci0gICAgaWYgKGN0eXBlLT5mbGFncyAmIE5PREVMVEFfTUFTSykKLSAgICAgICAgcmV0dXJuIGRlbHRhOwotICAgIGlmIChkZWx0YSA+PSAzMjc2OCkKLSAgICAgICAgICAgIGRlbHRhIC09IDY1NTM2OwotICAgIHJldHVybiBjaCArIGRlbHRhOworCisgICAgaWYgKGN0eXBlLT5mbGFncyAmIEVYVEVOREVEX0NBU0VfTUFTSykKKyAgICAgICAgcmV0dXJuIF9QeVVuaWNvZGVfRXh0ZW5kZWRDYXNlW2N0eXBlLT51cHBlciAmIDB4RkZGRl07CisgICAgcmV0dXJuIGNoICsgY3R5cGUtPnVwcGVyOwogfQogCiAvKiBSZXR1cm5zIHRoZSBsb3dlcmNhc2UgVW5pY29kZSBjaGFyYWN0ZXJzIGNvcnJlc3BvbmRpbmcgdG8gY2ggb3IganVzdApAQCAtMjAyLDEyICsyMDIsODcgQEAKIFB5X1VDUzQgX1B5VW5pY29kZV9Ub0xvd2VyY2FzZShQeV9VQ1M0IGNoKQogewogICAgIGNvbnN0IF9QeVVuaWNvZGVfVHlwZVJlY29yZCAqY3R5cGUgPSBnZXR0eXBlcmVjb3JkKGNoKTsKLSAgICBpbnQgZGVsdGEgPSBjdHlwZS0+bG93ZXI7Ci0gICAgaWYgKGN0eXBlLT5mbGFncyAmIE5PREVMVEFfTUFTSykKLSAgICAgICAgcmV0dXJuIGRlbHRhOwotICAgIGlmIChkZWx0YSA+PSAzMjc2OCkKLSAgICAgICAgICAgIGRlbHRhIC09IDY1NTM2OwotICAgIHJldHVybiBjaCArIGRlbHRhOworCisgICAgaWYgKGN0eXBlLT5mbGFncyAmIEVYVEVOREVEX0NBU0VfTUFTSykKKyAgICAgICAgcmV0dXJuIF9QeVVuaWNvZGVfRXh0ZW5kZWRDYXNlW2N0eXBlLT5sb3dlciAmIDB4RkZGRl07CisgICAgcmV0dXJuIGNoICsgY3R5cGUtPmxvd2VyOworfQorCitpbnQgX1B5VW5pY29kZV9Ub0xvd2VyRnVsbChQeV9VQ1M0IGNoLCBQeV9VQ1M0ICpyZXMpCit7CisgICAgY29uc3QgX1B5VW5pY29kZV9UeXBlUmVjb3JkICpjdHlwZSA9IGdldHR5cGVyZWNvcmQoY2gpOworCisgICAgaWYgKGN0eXBlLT5mbGFncyAmIEVYVEVOREVEX0NBU0VfTUFTSykgeworICAgICAgICBpbnQgaW5kZXggPSBjdHlwZS0+bG93ZXIgJiAweEZGRkY7CisgICAgICAgIGludCBuID0gY3R5cGUtPmxvd2VyID4+IDI0OworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykKKyAgICAgICAgICAgIHJlc1tpXSA9IF9QeVVuaWNvZGVfRXh0ZW5kZWRDYXNlW2luZGV4ICsgaV07CisgICAgICAgIHJldHVybiBuOworICAgIH0KKyAgICByZXNbMF0gPSBjaCArIGN0eXBlLT5sb3dlcjsKKyAgICByZXR1cm4gMTsKK30KKworaW50IF9QeVVuaWNvZGVfVG9UaXRsZUZ1bGwoUHlfVUNTNCBjaCwgUHlfVUNTNCAqcmVzKQoreworICAgIGNvbnN0IF9QeVVuaWNvZGVfVHlwZVJlY29yZCAqY3R5cGUgPSBnZXR0eXBlcmVjb3JkKGNoKTsKKworICAgIGlmIChjdHlwZS0+ZmxhZ3MgJiBFWFRFTkRFRF9DQVNFX01BU0spIHsKKyAgICAgICAgaW50IGluZGV4ID0gY3R5cGUtPnRpdGxlICYgMHhGRkZGOworICAgICAgICBpbnQgbiA9IGN0eXBlLT50aXRsZSA+PiAyNDsKKyAgICAgICAgaW50IGk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspCisgICAgICAgICAgICByZXNbaV0gPSBfUHlVbmljb2RlX0V4dGVuZGVkQ2FzZVtpbmRleCArIGldOworICAgICAgICByZXR1cm4gbjsKKyAgICB9CisgICAgcmVzWzBdID0gY2ggKyBjdHlwZS0+dGl0bGU7CisgICAgcmV0dXJuIDE7Cit9CisKK2ludCBfUHlVbmljb2RlX1RvVXBwZXJGdWxsKFB5X1VDUzQgY2gsIFB5X1VDUzQgKnJlcykKK3sKKyAgICBjb25zdCBfUHlVbmljb2RlX1R5cGVSZWNvcmQgKmN0eXBlID0gZ2V0dHlwZXJlY29yZChjaCk7CisKKyAgICBpZiAoY3R5cGUtPmZsYWdzICYgRVhURU5ERURfQ0FTRV9NQVNLKSB7CisgICAgICAgIGludCBpbmRleCA9IGN0eXBlLT51cHBlciAmIDB4RkZGRjsKKyAgICAgICAgaW50IG4gPSBjdHlwZS0+dXBwZXIgPj4gMjQ7CisgICAgICAgIGludCBpOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKQorICAgICAgICAgICAgcmVzW2ldID0gX1B5VW5pY29kZV9FeHRlbmRlZENhc2VbaW5kZXggKyBpXTsKKyAgICAgICAgcmV0dXJuIG47CisgICAgfQorICAgIHJlc1swXSA9IGNoICsgY3R5cGUtPnVwcGVyOworICAgIHJldHVybiAxOworfQorCitpbnQgX1B5VW5pY29kZV9Ub0ZvbGRlZEZ1bGwoUHlfVUNTNCBjaCwgUHlfVUNTNCAqcmVzKQoreworICAgIGNvbnN0IF9QeVVuaWNvZGVfVHlwZVJlY29yZCAqY3R5cGUgPSBnZXR0eXBlcmVjb3JkKGNoKTsKKworICAgIGlmIChjdHlwZS0+ZmxhZ3MgJiBFWFRFTkRFRF9DQVNFX01BU0sgJiYgKGN0eXBlLT5sb3dlciA+PiAyMCkgJiA3KSB7CisgICAgICAgIGludCBpbmRleCA9IChjdHlwZS0+bG93ZXIgJiAweEZGRkYpICsgKGN0eXBlLT5sb3dlciA+PiAyNCk7CisgICAgICAgIGludCBuID0gKGN0eXBlLT5sb3dlciA+PiAyMCkgJiA3OworICAgICAgICBpbnQgaTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG47IGkrKykKKyAgICAgICAgICAgIHJlc1tpXSA9IF9QeVVuaWNvZGVfRXh0ZW5kZWRDYXNlW2luZGV4ICsgaV07CisgICAgICAgIHJldHVybiBuOworICAgIH0KKyAgICByZXR1cm4gX1B5VW5pY29kZV9Ub0xvd2VyRnVsbChjaCwgcmVzKTsKK30KKworaW50IF9QeVVuaWNvZGVfSXNDYXNlZChQeV9VQ1M0IGNoKQoreworICAgIGNvbnN0IF9QeVVuaWNvZGVfVHlwZVJlY29yZCAqY3R5cGUgPSBnZXR0eXBlcmVjb3JkKGNoKTsKKworICAgIHJldHVybiAoY3R5cGUtPmZsYWdzICYgQ0FTRURfTUFTSykgIT0gMDsKK30KKworaW50IF9QeVVuaWNvZGVfSXNDYXNlSWdub3JhYmxlKFB5X1VDUzQgY2gpCit7CisgICAgY29uc3QgX1B5VW5pY29kZV9UeXBlUmVjb3JkICpjdHlwZSA9IGdldHR5cGVyZWNvcmQoY2gpOworCisgICAgcmV0dXJuIChjdHlwZS0+ZmxhZ3MgJiBDQVNFX0lHTk9SQUJMRV9NQVNLKSAhPSAwOwogfQogCiAvKiBSZXR1cm5zIDEgZm9yIFVuaWNvZGUgY2hhcmFjdGVycyBoYXZpbmcgdGhlIGNhdGVnb3J5ICdMbCcsICdMdScsICdMdCcsCmRpZmYgLS1naXQgYS9PYmplY3RzL3VuaWNvZGVvYmplY3QuYyBiL09iamVjdHMvdW5pY29kZW9iamVjdC5jCmluZGV4IGNkMTc3ODkuLjNlM2FiZmMgMTAwNjQ0Ci0tLSBhL09iamVjdHMvdW5pY29kZW9iamVjdC5jCisrKyBiL09iamVjdHMvdW5pY29kZW9iamVjdC5jCkBAIC0xLDggKzEsNyBAQAogLyoKIAogVW5pY29kZSBpbXBsZW1lbnRhdGlvbiBiYXNlZCBvbiBvcmlnaW5hbCBjb2RlIGJ5IEZyZWRyaWsgTHVuZGgsCi1tb2RpZmllZCBieSBNYXJjLUFuZHJlIExlbWJ1cmcgPG1hbEBsZW1idXJnLmNvbT4gYWNjb3JkaW5nIHRvIHRoZQotVW5pY29kZSBJbnRlZ3JhdGlvbiBQcm9wb3NhbCAoc2VlIGZpbGUgTWlzYy91bmljb2RlLnR4dCkuCittb2RpZmllZCBieSBNYXJjLUFuZHJlIExlbWJ1cmcgPG1hbEBsZW1idXJnLmNvbT4uCiAKIE1ham9yIHNwZWVkIHVwZ3JhZGVzIHRvIHRoZSBtZXRob2QgaW1wbGVtZW50YXRpb25zIGF0IHRoZSBSZXlramF2aWsKIE5lZWRGb3JTcGVlZCBzcHJpbnQsIGJ5IEZyZWRyaWsgTHVuZGggYW5kIEFuZHJldyBEYWxrZS4KQEAgLTQyLDM0ICs0MSwxMiBAQAogI2RlZmluZSBQWV9TU0laRV9UX0NMRUFOCiAjaW5jbHVkZSAiUHl0aG9uLmgiCiAjaW5jbHVkZSAidWNuaGFzaC5oIgorI2luY2x1ZGUgImJ5dGVzX21ldGhvZHMuaCIKIAogI2lmZGVmIE1TX1dJTkRPV1MKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKIAotLyogTGltaXQgZm9yIHRoZSBVbmljb2RlIG9iamVjdCBmcmVlIGxpc3QgKi8KLQotI2RlZmluZSBQeVVuaWNvZGVfTUFYRlJFRUxJU1QgICAgICAgMTAyNAotCi0vKiBMaW1pdCBmb3IgdGhlIFVuaWNvZGUgb2JqZWN0IGZyZWUgbGlzdCBzdGF5IGFsaXZlIG9wdGltaXphdGlvbi4KLQotICAgVGhlIGltcGxlbWVudGF0aW9uIHdpbGwga2VlcCBhbGxvY2F0ZWQgVW5pY29kZSBtZW1vcnkgaW50YWN0IGZvcgotICAgYWxsIG9iamVjdHMgb24gdGhlIGZyZWUgbGlzdCBoYXZpbmcgYSBzaXplIGxlc3MgdGhhbiB0aGlzCi0gICBsaW1pdC4gVGhpcyByZWR1Y2VzIG1hbGxvYygpIG92ZXJoZWFkIGZvciBzbWFsbCBVbmljb2RlIG9iamVjdHMuCi0KLSAgIEF0IHdvcnN0IHRoaXMgd2lsbCByZXN1bHQgaW4gUHlVbmljb2RlX01BWEZSRUVMSVNUICoKLSAgIChzaXplb2YoUHlVbmljb2RlT2JqZWN0KSArIEtFRVBBTElWRV9TSVpFX0xJTUlUICsKLSAgIG1hbGxvYygpLW92ZXJoZWFkKSBieXRlcyBvZiB1bnVzZWQgZ2FyYmFnZS4KLQotICAgU2V0dGluZyB0aGUgbGltaXQgdG8gMCBlZmZlY3RpdmVseSB0dXJucyB0aGUgZmVhdHVyZSBvZmYuCi0KLSAgIE5vdGU6IFRoaXMgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUgISBJZiB5b3UgZ2V0IGNvcmUgZHVtcHMgd2hlbgotICAgdXNpbmcgVW5pY29kZSBvYmplY3RzLCB0dXJuIHRoaXMgZmVhdHVyZSBvZmYuCi0KLSovCi0KLSNkZWZpbmUgS0VFUEFMSVZFX1NJWkVfTElNSVQgICAgICAgOQotCiAvKiBFbmRpYW5uZXNzIHN3aXRjaGVzOyBkZWZhdWx0cyB0byBsaXR0bGUgZW5kaWFuICovCiAKICNpZmRlZiBXT1JEU19CSUdFTkRJQU4KQEAgLTkwLDYgKzY3LDExMCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAorLyogTWF4aW11bSBjb2RlIHBvaW50IG9mIFVuaWNvZGUgNi4wOiAweDEwZmZmZiAoMSwxMTQsMTExKSAqLworI2RlZmluZSBNQVhfVU5JQ09ERSAweDEwZmZmZgorCisjaWZkZWYgUHlfREVCVUcKKyMgIGRlZmluZSBfUHlVbmljb2RlX0NIRUNLKG9wKSBfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kob3AsIDApCisjZWxzZQorIyAgZGVmaW5lIF9QeVVuaWNvZGVfQ0hFQ0sob3ApIFB5VW5pY29kZV9DaGVjayhvcCkKKyNlbmRpZgorCisjZGVmaW5lIF9QeVVuaWNvZGVfVVRGOChvcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKChQeUNvbXBhY3RVbmljb2RlT2JqZWN0Kikob3ApKS0+dXRmOCkKKyNkZWZpbmUgUHlVbmljb2RlX1VURjgob3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyhvcCkpLCAgICAgICAgICAgICAgICAgICAgICBcCisgICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkob3ApKSwgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgUHlVbmljb2RlX0lTX0NPTVBBQ1RfQVNDSUkob3ApID8gICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgKChjaGFyKikoKFB5QVNDSUlPYmplY3QqKShvcCkgKyAxKSkgOiAgICAgICAgICBcCisgICAgICAgICBfUHlVbmljb2RlX1VURjgob3ApKQorI2RlZmluZSBfUHlVbmljb2RlX1VURjhfTEVOR1RIKG9wKSAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKCgoUHlDb21wYWN0VW5pY29kZU9iamVjdCopKG9wKSktPnV0ZjhfbGVuZ3RoKQorI2RlZmluZSBQeVVuaWNvZGVfVVRGOF9MRU5HVEgob3ApICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKGFzc2VydChfUHlVbmljb2RlX0NIRUNLKG9wKSksICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgYXNzZXJ0KFB5VW5pY29kZV9JU19SRUFEWShvcCkpLCAgICAgICAgICAgICAgICAgICAgXAorICAgICBQeVVuaWNvZGVfSVNfQ09NUEFDVF9BU0NJSShvcCkgPyAgICAgICAgICAgICAgICAgICBcCisgICAgICAgICAoKFB5QVNDSUlPYmplY3QqKShvcCkpLT5sZW5ndGggOiAgICAgICAgICAgICAgIFwKKyAgICAgICAgIF9QeVVuaWNvZGVfVVRGOF9MRU5HVEgob3ApKQorI2RlZmluZSBfUHlVbmljb2RlX1dTVFIob3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKCgoUHlBU0NJSU9iamVjdCopKG9wKSktPndzdHIpCisjZGVmaW5lIF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgob3ApICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKChQeUNvbXBhY3RVbmljb2RlT2JqZWN0Kikob3ApKS0+d3N0cl9sZW5ndGgpCisjZGVmaW5lIF9QeVVuaWNvZGVfTEVOR1RIKG9wKSAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKChQeUFTQ0lJT2JqZWN0ICopKG9wKSktPmxlbmd0aCkKKyNkZWZpbmUgX1B5VW5pY29kZV9TVEFURShvcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICgoKFB5QVNDSUlPYmplY3QgKikob3ApKS0+c3RhdGUpCisjZGVmaW5lIF9QeVVuaWNvZGVfSEFTSChvcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKChQeUFTQ0lJT2JqZWN0ICopKG9wKSktPmhhc2gpCisjZGVmaW5lIF9QeVVuaWNvZGVfS0lORChvcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoYXNzZXJ0KF9QeVVuaWNvZGVfQ0hFQ0sob3ApKSwgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAoKFB5QVNDSUlPYmplY3QgKikob3ApKS0+c3RhdGUua2luZCkKKyNkZWZpbmUgX1B5VW5pY29kZV9HRVRfTEVOR1RIKG9wKSAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyhvcCkpLCAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICgoUHlBU0NJSU9iamVjdCAqKShvcCkpLT5sZW5ndGgpCisjZGVmaW5lIF9QeVVuaWNvZGVfREFUQV9BTlkob3ApICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAoKChQeVVuaWNvZGVPYmplY3QqKShvcCkpLT5kYXRhLmFueSkKKworLyogT3B0aW1pemVkIHZlcnNpb24gb2YgUHlfTUFYKCkgdG8gY29tcHV0ZSB0aGUgbWF4aW11bSBjaGFyYWN0ZXI6CisgICB1c2UgaXQgd2hlbiB5b3VyIGFyZSBjb21wdXRpbmcgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBQeVVuaWNvZGVfTmV3KCkgKi8KKyNkZWZpbmUgTUFYX01BWENIQVIobWF4Y2hhcjEsIG1heGNoYXIyKSAgICAgICAgICAgICAgICAgXAorICAgICgobWF4Y2hhcjEpIHwgKG1heGNoYXIyKSkKKworI3VuZGVmIFB5VW5pY29kZV9SRUFEWQorI2RlZmluZSBQeVVuaWNvZGVfUkVBRFkob3ApICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgKGFzc2VydChfUHlVbmljb2RlX0NIRUNLKG9wKSksICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgKFB5VW5pY29kZV9JU19SRUFEWShvcCkgPyAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgMCA6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBfUHlVbmljb2RlX1JlYWR5KG9wKSkpCisKKyNkZWZpbmUgX1B5VW5pY29kZV9TSEFSRV9VVEY4KG9wKSAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyhvcCkpLCAgICAgICAgICAgICAgICAgICAgICBcCisgICAgIGFzc2VydCghUHlVbmljb2RlX0lTX0NPTVBBQ1RfQVNDSUkob3ApKSwgICAgICAgICAgIFwKKyAgICAgKF9QeVVuaWNvZGVfVVRGOChvcCkgPT0gUHlVbmljb2RlX0RBVEEob3ApKSkKKyNkZWZpbmUgX1B5VW5pY29kZV9TSEFSRV9XU1RSKG9wKSAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIChhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyhvcCkpLCAgICAgICAgICAgICAgICAgICAgICBcCisgICAgIChfUHlVbmljb2RlX1dTVFIodW5pY29kZSkgPT0gUHlVbmljb2RlX0RBVEEob3ApKSkKKworLyogdHJ1ZSBpZiB0aGUgVW5pY29kZSBvYmplY3QgaGFzIGFuIGFsbG9jYXRlZCBVVEYtOCBtZW1vcnkgYmxvY2sKKyAgIChub3Qgc2hhcmVkIHdpdGggb3RoZXIgZGF0YSkgKi8KKyNkZWZpbmUgX1B5VW5pY29kZV9IQVNfVVRGOF9NRU1PUlkob3ApICAgICAgICAgICAgICAgICAgXAorICAgIChhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyhvcCkpLCAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICghUHlVbmljb2RlX0lTX0NPTVBBQ1RfQVNDSUkob3ApICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICYmIF9QeVVuaWNvZGVfVVRGOChvcCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgJiYgX1B5VW5pY29kZV9VVEY4KG9wKSAhPSBQeVVuaWNvZGVfREFUQShvcCkpKQorCisvKiB0cnVlIGlmIHRoZSBVbmljb2RlIG9iamVjdCBoYXMgYW4gYWxsb2NhdGVkIHdzdHIgbWVtb3J5IGJsb2NrCisgICAobm90IHNoYXJlZCB3aXRoIG90aGVyIGRhdGEpICovCisjZGVmaW5lIF9QeVVuaWNvZGVfSEFTX1dTVFJfTUVNT1JZKG9wKSAgICAgICAgICAgICAgICAgIFwKKyAgICAoYXNzZXJ0KF9QeVVuaWNvZGVfQ0hFQ0sob3ApKSwgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAoX1B5VW5pY29kZV9XU1RSKG9wKSAmJiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAoIVB5VW5pY29kZV9JU19SRUFEWShvcCkgfHwgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICBfUHlVbmljb2RlX1dTVFIob3ApICE9IFB5VW5pY29kZV9EQVRBKG9wKSkpKQorCisvKiBHZW5lcmljIGhlbHBlciBtYWNybyB0byBjb252ZXJ0IGNoYXJhY3RlcnMgb2YgZGlmZmVyZW50IHR5cGVzLgorICAgZnJvbV90eXBlIGFuZCB0b190eXBlIGhhdmUgdG8gYmUgdmFsaWQgdHlwZSBuYW1lcywgYmVnaW4gYW5kIGVuZAorICAgYXJlIHBvaW50ZXJzIHRvIHRoZSBzb3VyY2UgY2hhcmFjdGVycyB3aGljaCBzaG91bGQgYmUgb2YgdHlwZQorICAgImZyb21fdHlwZSAqIi4gIHRvIGlzIGEgcG9pbnRlciBvZiB0eXBlICJ0b190eXBlICoiIGFuZCBwb2ludHMgdG8gdGhlCisgICBidWZmZXIgd2hlcmUgdGhlIHJlc3VsdCBjaGFyYWN0ZXJzIGFyZSB3cml0dGVuIHRvLiAqLworI2RlZmluZSBfUHlVbmljb2RlX0NPTlZFUlRfQllURVMoZnJvbV90eXBlLCB0b190eXBlLCBiZWdpbiwgZW5kLCB0bykgXAorICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHRvX3R5cGUgKl90byA9ICh0b190eXBlICopIHRvOyAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgZnJvbV90eXBlICpfaXRlciA9IChiZWdpbik7ICAgICAgICAgICAgICAgXAorICAgICAgICBjb25zdCBmcm9tX3R5cGUgKl9lbmQgPSAoZW5kKTsgICAgICAgICAgICAgICAgICBcCisgICAgICAgIFB5X3NzaXplX3QgbiA9IChfZW5kKSAtIChfaXRlcik7ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgY29uc3QgZnJvbV90eXBlICpfdW5yb2xsZWRfZW5kID0gICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgX2l0ZXIgKyAobiAmIH4gKFB5X3NzaXplX3QpIDMpOyAgICAgICAgICAgICBcCisgICAgICAgIHdoaWxlIChfaXRlciA8IChfdW5yb2xsZWRfZW5kKSkgeyAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF90b1swXSA9ICh0b190eXBlKSBfaXRlclswXTsgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgX3RvWzFdID0gKHRvX3R5cGUpIF9pdGVyWzFdOyAgICAgICAgICAgICAgICBcCisgICAgICAgICAgICBfdG9bMl0gPSAodG9fdHlwZSkgX2l0ZXJbMl07ICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIF90b1szXSA9ICh0b190eXBlKSBfaXRlclszXTsgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgX2l0ZXIgKz0gNDsgX3RvICs9IDQ7ICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgd2hpbGUgKF9pdGVyIDwgKF9lbmQpKSAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgKl90bysrID0gKHRvX3R5cGUpICpfaXRlcisrOyAgICAgICAgICAgICAgICBcCisgICAgfSB3aGlsZSAoMCkKKwogLyogVGhpcyBkaWN0aW9uYXJ5IGhvbGRzIGFsbCBpbnRlcm5lZCB1bmljb2RlIHN0cmluZ3MuICBOb3RlIHRoYXQgcmVmZXJlbmNlcwogICAgdG8gc3RyaW5ncyBpbiB0aGlzIGRpY3Rpb25hcnkgYXJlICpub3QqIGNvdW50ZWQgaW4gdGhlIHN0cmluZydzIG9iX3JlZmNudC4KICAgIFdoZW4gdGhlIGludGVybmVkIHN0cmluZyByZWFjaGVzIGEgcmVmY250IG9mIDAgdGhlIHN0cmluZyBkZWFsbG9jYXRpb24KQEAgLTEwMCwxNiArMTgxLDE1IEBACiAqLwogc3RhdGljIFB5T2JqZWN0ICppbnRlcm5lZDsKIAotLyogRnJlZSBsaXN0IGZvciBVbmljb2RlIG9iamVjdHMgKi8KLXN0YXRpYyBQeVVuaWNvZGVPYmplY3QgKmZyZWVfbGlzdDsKLXN0YXRpYyBpbnQgbnVtZnJlZTsKLQogLyogVGhlIGVtcHR5IFVuaWNvZGUgb2JqZWN0IGlzIHNoYXJlZCB0byBpbXByb3ZlIHBlcmZvcm1hbmNlLiAqLwotc3RhdGljIFB5VW5pY29kZU9iamVjdCAqdW5pY29kZV9lbXB0eTsKK3N0YXRpYyBQeU9iamVjdCAqdW5pY29kZV9lbXB0eTsKKworLyogTGlzdCBvZiBzdGF0aWMgc3RyaW5ncy4gKi8KK3N0YXRpYyBfUHlfSWRlbnRpZmllciAqc3RhdGljX3N0cmluZ3M7CiAKIC8qIFNpbmdsZSBjaGFyYWN0ZXIgVW5pY29kZSBzdHJpbmdzIGluIHRoZSBMYXRpbi0xIHJhbmdlIGFyZSBiZWluZwogICAgc2hhcmVkIGFzIHdlbGwuICovCi1zdGF0aWMgUHlVbmljb2RlT2JqZWN0ICp1bmljb2RlX2xhdGluMVsyNTZdOworc3RhdGljIFB5T2JqZWN0ICp1bmljb2RlX2xhdGluMVsyNTZdOwogCiAvKiBGYXN0IGRldGVjdGlvbiBvZiB0aGUgbW9zdCBmcmVxdWVudCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgKi8KIGNvbnN0IHVuc2lnbmVkIGNoYXIgX1B5X2FzY2lpX3doaXRlc3BhY2VbXSA9IHsKQEAgLTE0MiwxNiArMjIyLDMxIEBACiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMAogfTsKIAotc3RhdGljIFB5T2JqZWN0ICp1bmljb2RlX2VuY29kZV9jYWxsX2Vycm9yaGFuZGxlcihjb25zdCBjaGFyICplcnJvcnMsCisvKiBmb3J3YXJkICovCitzdGF0aWMgUHlVbmljb2RlT2JqZWN0ICpfUHlVbmljb2RlX05ldyhQeV9zc2l6ZV90IGxlbmd0aCk7CitzdGF0aWMgUHlPYmplY3QqIGdldF9sYXRpbjFfY2hhcih1bnNpZ25lZCBjaGFyIGNoKTsKK3N0YXRpYyBpbnQgdW5pY29kZV9tb2RpZmlhYmxlKFB5T2JqZWN0ICp1bmljb2RlKTsKKworCitzdGF0aWMgUHlPYmplY3QgKgorX1B5VW5pY29kZV9Gcm9tVUNTMShjb25zdCB1bnNpZ25lZCBjaGFyICpzLCBQeV9zc2l6ZV90IHNpemUpOworc3RhdGljIFB5T2JqZWN0ICoKK19QeVVuaWNvZGVfRnJvbVVDUzIoY29uc3QgUHlfVUNTMiAqcywgUHlfc3NpemVfdCBzaXplKTsKK3N0YXRpYyBQeU9iamVjdCAqCitfUHlVbmljb2RlX0Zyb21VQ1M0KGNvbnN0IFB5X1VDUzQgKnMsIFB5X3NzaXplX3Qgc2l6ZSk7CisKK3N0YXRpYyBQeU9iamVjdCAqCit1bmljb2RlX2VuY29kZV9jYWxsX2Vycm9yaGFuZGxlcihjb25zdCBjaGFyICplcnJvcnMsCiAgICAgICAgUHlPYmplY3QgKiplcnJvckhhbmRsZXIsY29uc3QgY2hhciAqZW5jb2RpbmcsIGNvbnN0IGNoYXIgKnJlYXNvbiwKLSAgICAgICBjb25zdCBQeV9VTklDT0RFICp1bmljb2RlLCBQeV9zc2l6ZV90IHNpemUsIFB5T2JqZWN0ICoqZXhjZXB0aW9uT2JqZWN0LAorICAgICAgIFB5T2JqZWN0ICp1bmljb2RlLCBQeU9iamVjdCAqKmV4Y2VwdGlvbk9iamVjdCwKICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0cG9zLCBQeV9zc2l6ZV90IGVuZHBvcywgUHlfc3NpemVfdCAqbmV3cG9zKTsKIAotc3RhdGljIHZvaWQgcmFpc2VfZW5jb2RlX2V4Y2VwdGlvbihQeU9iamVjdCAqKmV4Y2VwdGlvbk9iamVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFB5X1VOSUNPREUgKnVuaWNvZGUsIFB5X3NzaXplX3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydHBvcywgUHlfc3NpemVfdCBlbmRwb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnJlYXNvbik7CitzdGF0aWMgdm9pZAorcmFpc2VfZW5jb2RlX2V4Y2VwdGlvbihQeU9iamVjdCAqKmV4Y2VwdGlvbk9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp1bmljb2RlLAorICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0cG9zLCBQeV9zc2l6ZV90IGVuZHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVhc29uKTsKIAogLyogU2FtZSBmb3IgbGluZWJyZWFrcyAqLwogc3RhdGljIHVuc2lnbmVkIGNoYXIgYXNjaWlfbGluZWJyZWFrW10gPSB7CkBAIC0xODEsNyArMjc2LDggQEAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwCiB9OwogCi0KKy8qIFRoZSBtYXggdW5pY29kZSB2YWx1ZSBpcyBhbHdheXMgMHgxMEZGRkYgd2hpbGUgdXNpbmcgdGhlIFBFUC0zOTMgQVBJLgorICAgVGhpcyBmdW5jdGlvbiBpcyBrZXB0IGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggdGhlIG9sZCBBUEkuICovCiBQeV9VTklDT0RFCiBQeVVuaWNvZGVfR2V0TWF4KHZvaWQpCiB7CkBAIC0xOTQsNiArMjkwLDIyNCBAQAogI2VuZGlmCiB9CiAKKyNpZmRlZiBQeV9ERUJVRworaW50CitfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3koUHlPYmplY3QgKm9wLCBpbnQgY2hlY2tfY29udGVudCkKK3sKKyAgICBQeUFTQ0lJT2JqZWN0ICphc2NpaTsKKyAgICB1bnNpZ25lZCBpbnQga2luZDsKKworICAgIGFzc2VydChQeVVuaWNvZGVfQ2hlY2sob3ApKTsKKworICAgIGFzY2lpID0gKFB5QVNDSUlPYmplY3QgKilvcDsKKyAgICBraW5kID0gYXNjaWktPnN0YXRlLmtpbmQ7CisKKyAgICBpZiAoYXNjaWktPnN0YXRlLmFzY2lpID09IDEgJiYgYXNjaWktPnN0YXRlLmNvbXBhY3QgPT0gMSkgeworICAgICAgICBhc3NlcnQoa2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCk7CisgICAgICAgIGFzc2VydChhc2NpaS0+c3RhdGUucmVhZHkgPT0gMSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBQeUNvbXBhY3RVbmljb2RlT2JqZWN0ICpjb21wYWN0ID0gKFB5Q29tcGFjdFVuaWNvZGVPYmplY3QgKilvcDsKKyAgICAgICAgdm9pZCAqZGF0YTsKKworICAgICAgICBpZiAoYXNjaWktPnN0YXRlLmNvbXBhY3QgPT0gMSkgeworICAgICAgICAgICAgZGF0YSA9IGNvbXBhY3QgKyAxOworICAgICAgICAgICAgYXNzZXJ0KGtpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQKKyAgICAgICAgICAgICAgICAgICB8fCBraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5ECisgICAgICAgICAgICAgICAgICAgfHwga2luZCA9PSBQeVVuaWNvZGVfNEJZVEVfS0lORCk7CisgICAgICAgICAgICBhc3NlcnQoYXNjaWktPnN0YXRlLmFzY2lpID09IDApOworICAgICAgICAgICAgYXNzZXJ0KGFzY2lpLT5zdGF0ZS5yZWFkeSA9PSAxKTsKKyAgICAgICAgICAgIGFzc2VydCAoY29tcGFjdC0+dXRmOCAhPSBkYXRhKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFB5VW5pY29kZU9iamVjdCAqdW5pY29kZSA9IChQeVVuaWNvZGVPYmplY3QgKilvcDsKKworICAgICAgICAgICAgZGF0YSA9IHVuaWNvZGUtPmRhdGEuYW55OworICAgICAgICAgICAgaWYgKGtpbmQgPT0gUHlVbmljb2RlX1dDSEFSX0tJTkQpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQoYXNjaWktPmxlbmd0aCA9PSAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoYXNjaWktPmhhc2ggPT0gLTEpOworICAgICAgICAgICAgICAgIGFzc2VydChhc2NpaS0+c3RhdGUuY29tcGFjdCA9PSAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoYXNjaWktPnN0YXRlLmFzY2lpID09IDApOworICAgICAgICAgICAgICAgIGFzc2VydChhc2NpaS0+c3RhdGUucmVhZHkgPT0gMCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KGFzY2lpLT5zdGF0ZS5pbnRlcm5lZCA9PSBTU1RBVEVfTk9UX0lOVEVSTkVEKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoYXNjaWktPndzdHIgIT0gTlVMTCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KGRhdGEgPT0gTlVMTCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KGNvbXBhY3QtPnV0ZjggPT0gTlVMTCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQoa2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORAorICAgICAgICAgICAgICAgICAgICAgICB8fCBraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5ECisgICAgICAgICAgICAgICAgICAgICAgIHx8IGtpbmQgPT0gUHlVbmljb2RlXzRCWVRFX0tJTkQpOworICAgICAgICAgICAgICAgIGFzc2VydChhc2NpaS0+c3RhdGUuY29tcGFjdCA9PSAwKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoYXNjaWktPnN0YXRlLnJlYWR5ID09IDEpOworICAgICAgICAgICAgICAgIGFzc2VydChkYXRhICE9IE5VTEwpOworICAgICAgICAgICAgICAgIGlmIChhc2NpaS0+c3RhdGUuYXNjaWkpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IChjb21wYWN0LT51dGY4ID09IGRhdGEpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQgKGNvbXBhY3QtPnV0ZjhfbGVuZ3RoID09IGFzY2lpLT5sZW5ndGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCAoY29tcGFjdC0+dXRmOCAhPSBkYXRhKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBpZiAoa2luZCAhPSBQeVVuaWNvZGVfV0NIQVJfS0lORCkgeworICAgICAgICAgICAgaWYgKAorI2lmIFNJWkVPRl9XQ0hBUl9UID09IDIKKyAgICAgICAgICAgICAgICBraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5ECisjZWxzZQorICAgICAgICAgICAgICAgIGtpbmQgPT0gUHlVbmljb2RlXzRCWVRFX0tJTkQKKyNlbmRpZgorICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGFzc2VydChhc2NpaS0+d3N0ciA9PSBkYXRhKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoY29tcGFjdC0+d3N0cl9sZW5ndGggPT0gYXNjaWktPmxlbmd0aCk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBhc3NlcnQoYXNjaWktPndzdHIgIT0gZGF0YSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29tcGFjdC0+dXRmOCA9PSBOVUxMKQorICAgICAgICAgICAgYXNzZXJ0KGNvbXBhY3QtPnV0ZjhfbGVuZ3RoID09IDApOworICAgICAgICBpZiAoYXNjaWktPndzdHIgPT0gTlVMTCkKKyAgICAgICAgICAgIGFzc2VydChjb21wYWN0LT53c3RyX2xlbmd0aCA9PSAwKTsKKyAgICB9CisgICAgLyogY2hlY2sgdGhhdCB0aGUgYmVzdCBraW5kIGlzIHVzZWQgKi8KKyAgICBpZiAoY2hlY2tfY29udGVudCAmJiBraW5kICE9IFB5VW5pY29kZV9XQ0hBUl9LSU5EKQorICAgIHsKKyAgICAgICAgUHlfc3NpemVfdCBpOworICAgICAgICBQeV9VQ1M0IG1heGNoYXIgPSAwOworICAgICAgICB2b2lkICpkYXRhOworICAgICAgICBQeV9VQ1M0IGNoOworCisgICAgICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShhc2NpaSk7CisgICAgICAgIGZvciAoaT0wOyBpIDwgYXNjaWktPmxlbmd0aDsgaSsrKQorICAgICAgICB7CisgICAgICAgICAgICBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpOworICAgICAgICAgICAgaWYgKGNoID4gbWF4Y2hhcikKKyAgICAgICAgICAgICAgICBtYXhjaGFyID0gY2g7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQpIHsKKyAgICAgICAgICAgIGlmIChhc2NpaS0+c3RhdGUuYXNjaWkgPT0gMCkgeworICAgICAgICAgICAgICAgIGFzc2VydChtYXhjaGFyID49IDEyOCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KG1heGNoYXIgPD0gMjU1KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBhc3NlcnQobWF4Y2hhciA8IDEyOCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoa2luZCA9PSBQeVVuaWNvZGVfMkJZVEVfS0lORCkgeworICAgICAgICAgICAgYXNzZXJ0KG1heGNoYXIgPj0gMHgxMDApOworICAgICAgICAgICAgYXNzZXJ0KG1heGNoYXIgPD0gMHhGRkZGKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChtYXhjaGFyID49IDB4MTAwMDApOworICAgICAgICAgICAgYXNzZXJ0KG1heGNoYXIgPD0gTUFYX1VOSUNPREUpOworICAgICAgICB9CisgICAgICAgIGFzc2VydChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBhc2NpaS0+bGVuZ3RoKSA9PSAwKTsKKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisjZW5kaWYKKworc3RhdGljIFB5T2JqZWN0KgordW5pY29kZV9yZXN1bHRfd2NoYXIoUHlPYmplY3QgKnVuaWNvZGUpCit7CisjaWZuZGVmIFB5X0RFQlVHCisgICAgUHlfc3NpemVfdCBsZW47CisKKyAgICBhc3NlcnQoUHlfUkVGQ05UKHVuaWNvZGUpID09IDEpOworCisgICAgbGVuID0gX1B5VW5pY29kZV9XU1RSX0xFTkdUSCh1bmljb2RlKTsKKyAgICBpZiAobGVuID09IDApIHsKKyAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGVfZW1wdHkpOworICAgICAgICBQeV9ERUNSRUYodW5pY29kZSk7CisgICAgICAgIHJldHVybiB1bmljb2RlX2VtcHR5OworICAgIH0KKworICAgIGlmIChsZW4gPT0gMSkgeworICAgICAgICB3Y2hhcl90IGNoID0gX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpWzBdOworICAgICAgICBpZiAoY2ggPCAyNTYpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpsYXRpbjFfY2hhciA9IGdldF9sYXRpbjFfY2hhcigodW5zaWduZWQgY2hhciljaCk7CisgICAgICAgICAgICBQeV9ERUNSRUYodW5pY29kZSk7CisgICAgICAgICAgICByZXR1cm4gbGF0aW4xX2NoYXI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoX1B5VW5pY29kZV9SZWFkeSh1bmljb2RlKSA8IDApIHsKKyAgICAgICAgUHlfWERFQ1JFRih1bmljb2RlKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorI2Vsc2UKKyAgICAvKiBkb24ndCBtYWtlIHRoZSByZXN1bHQgcmVhZHkgaW4gZGVidWcgbW9kZSB0byBlbnN1cmUgdGhhdCB0aGUgY2FsbGVyCisgICAgICAgbWFrZXMgdGhlIHN0cmluZyByZWFkeSBiZWZvcmUgdXNpbmcgaXQgKi8KKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHVuaWNvZGUsIDEpKTsKKyNlbmRpZgorICAgIHJldHVybiB1bmljb2RlOworfQorCitzdGF0aWMgUHlPYmplY3QqCit1bmljb2RlX3Jlc3VsdF9yZWFkeShQeU9iamVjdCAqdW5pY29kZSkKK3sKKyAgICBQeV9zc2l6ZV90IGxlbmd0aDsKKworICAgIGxlbmd0aCA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpOworICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICBpZiAodW5pY29kZSAhPSB1bmljb2RlX2VtcHR5KSB7CisgICAgICAgICAgICBQeV9JTkNSRUYodW5pY29kZV9lbXB0eSk7CisgICAgICAgICAgICBQeV9ERUNSRUYodW5pY29kZSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfZW1wdHk7CisgICAgfQorCisgICAgaWYgKGxlbmd0aCA9PSAxKSB7CisgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHVuaWNvZGUsIDApOworICAgICAgICBpZiAoY2ggPCAyNTYpIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpsYXRpbjFfY2hhciA9IHVuaWNvZGVfbGF0aW4xW2NoXTsKKyAgICAgICAgICAgIGlmIChsYXRpbjFfY2hhciAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGUgIT0gbGF0aW4xX2NoYXIpIHsKKyAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKGxhdGluMV9jaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHVuaWNvZGUpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICByZXR1cm4gbGF0aW4xX2NoYXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHVuaWNvZGUsIDEpKTsKKyAgICAgICAgICAgICAgICBQeV9JTkNSRUYodW5pY29kZSk7CisgICAgICAgICAgICAgICAgdW5pY29kZV9sYXRpbjFbY2hdID0gdW5pY29kZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdW5pY29kZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodW5pY29kZSwgMSkpOworICAgIHJldHVybiB1bmljb2RlOworfQorCitzdGF0aWMgUHlPYmplY3QqCit1bmljb2RlX3Jlc3VsdChQeU9iamVjdCAqdW5pY29kZSkKK3sKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyh1bmljb2RlKSk7CisgICAgaWYgKFB5VW5pY29kZV9JU19SRUFEWSh1bmljb2RlKSkKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0X3JlYWR5KHVuaWNvZGUpOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0X3djaGFyKHVuaWNvZGUpOworfQorCitzdGF0aWMgUHlPYmplY3QqCit1bmljb2RlX3Jlc3VsdF91bmNoYW5nZWQoUHlPYmplY3QgKnVuaWNvZGUpCit7CisgICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KHVuaWNvZGUpKSB7CisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodW5pY29kZSkgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGUpOworICAgICAgICByZXR1cm4gdW5pY29kZTsKKyAgICB9CisgICAgZWxzZQorICAgICAgICAvKiBTdWJ0eXBlIC0tIHJldHVybiBnZW51aW5lIHVuaWNvZGUgc3RyaW5nIHdpdGggdGhlIHNhbWUgdmFsdWUuICovCisgICAgICAgIHJldHVybiBfUHlVbmljb2RlX0NvcHkodW5pY29kZSk7Cit9CisKKyNpZmRlZiBIQVZFX01CQ1MKK3N0YXRpYyBPU1ZFUlNJT05JTkZPRVggd2ludmVyOworI2VuZGlmCisKIC8qIC0tLSBCbG9vbSBGaWx0ZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKIC8qIHN0dWZmIHRvIGltcGxlbWVudCBzaW1wbGUgImJsb29tIGZpbHRlcnMiIGZvciBVbmljb2RlIGNoYXJhY3RlcnMuCkBAIC0yMjMsNyArNTM3LDggQEAKICAgICAoKGNoKSA8IDEyOFUgPyBhc2NpaV9saW5lYnJlYWtbKGNoKV0gOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAgKEJMT09NKGJsb29tX2xpbmVicmVhaywgKGNoKSkgJiYgUHlfVU5JQ09ERV9JU0xJTkVCUkVBSyhjaCkpKQogCi1QeV9MT0NBTF9JTkxJTkUoQkxPT01fTUFTSykgbWFrZV9ibG9vbV9tYXNrKFB5X1VOSUNPREUqIHB0ciwgUHlfc3NpemVfdCBsZW4pCitQeV9MT0NBTF9JTkxJTkUoQkxPT01fTUFTSykKK21ha2VfYmxvb21fbWFzayhpbnQga2luZCwgdm9pZCogcHRyLCBQeV9zc2l6ZV90IGxlbikKIHsKICAgICAvKiBjYWxjdWxhdGUgc2ltcGxlIGJsb29tLXN0eWxlIGJpdG1hc2sgZm9yIGEgZ2l2ZW4gdW5pY29kZSBzdHJpbmcgKi8KIApAQCAtMjMyLDc2ICs1NDcsMjUzIEBACiAKICAgICBtYXNrID0gMDsKICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCi0gICAgICAgIEJMT09NX0FERChtYXNrLCBwdHJbaV0pOworICAgICAgICBCTE9PTV9BREQobWFzaywgUHlVbmljb2RlX1JFQUQoa2luZCwgcHRyLCBpKSk7CiAKICAgICByZXR1cm4gbWFzazsKIH0KIAotUHlfTE9DQUxfSU5MSU5FKGludCkgdW5pY29kZV9tZW1iZXIoUHlfVU5JQ09ERSBjaHIsIFB5X1VOSUNPREUqIHNldCwgUHlfc3NpemVfdCBzZXRsZW4pCi17Ci0gICAgUHlfc3NpemVfdCBpOworI2RlZmluZSBCTE9PTV9NRU1CRVIobWFzaywgY2hyLCBzdHIpIFwKKyAgICAoQkxPT00obWFzaywgY2hyKSBcCisgICAgICYmIChQeVVuaWNvZGVfRmluZENoYXIoc3RyLCBjaHIsIDAsIFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0ciksIDEpID49IDApKQogCi0gICAgZm9yIChpID0gMDsgaSA8IHNldGxlbjsgaSsrKQotICAgICAgICBpZiAoc2V0W2ldID09IGNocikKLSAgICAgICAgICAgIHJldHVybiAxOworLyogQ29tcGlsYXRpb24gb2YgdGVtcGxhdGVkIHJvdXRpbmVzICovCiAKLSAgICByZXR1cm4gMDsKLX0KKyNpbmNsdWRlICJzdHJpbmdsaWIvYXNjaWlsaWIuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvZmFzdHNlYXJjaC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9wYXJ0aXRpb24uaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvc3BsaXQuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvY291bnQuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvZmluZC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9maW5kX21heF9jaGFyLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL2xvY2FsZXV0aWwuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvdW5kZWYuaCIKIAotI2RlZmluZSBCTE9PTV9NRU1CRVIobWFzaywgY2hyLCBzZXQsIHNldGxlbikgICAgICAgICAgICAgICAgICAgIFwKLSAgICBCTE9PTShtYXNrLCBjaHIpICYmIHVuaWNvZGVfbWVtYmVyKGNociwgc2V0LCBzZXRsZW4pCisjaW5jbHVkZSAic3RyaW5nbGliL3VjczFsaWIuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvZmFzdHNlYXJjaC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9wYXJ0aXRpb24uaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvc3BsaXQuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvY291bnQuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvZmluZC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9maW5kX21heF9jaGFyLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL2xvY2FsZXV0aWwuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvdW5kZWYuaCIKKworI2luY2x1ZGUgInN0cmluZ2xpYi91Y3MybGliLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL2Zhc3RzZWFyY2guaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvcGFydGl0aW9uLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL3NwbGl0LmgiCisjaW5jbHVkZSAic3RyaW5nbGliL2NvdW50LmgiCisjaW5jbHVkZSAic3RyaW5nbGliL2ZpbmQuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvZmluZF9tYXhfY2hhci5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9sb2NhbGV1dGlsLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL3VuZGVmLmgiCisKKyNpbmNsdWRlICJzdHJpbmdsaWIvdWNzNGxpYi5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9mYXN0c2VhcmNoLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL3BhcnRpdGlvbi5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9zcGxpdC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9jb3VudC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9maW5kLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL2ZpbmRfbWF4X2NoYXIuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvbG9jYWxldXRpbC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi91bmRlZi5oIgorCisjaW5jbHVkZSAic3RyaW5nbGliL3VuaWNvZGVkZWZzLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL2Zhc3RzZWFyY2guaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvY291bnQuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvZmluZC5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi91bmRlZi5oIgogCiAvKiAtLS0gVW5pY29kZSBPYmplY3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotc3RhdGljCi1pbnQgdW5pY29kZV9yZXNpemUocmVnaXN0ZXIgUHlVbmljb2RlT2JqZWN0ICp1bmljb2RlLAotICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuZ3RoKQorc3RhdGljIFB5T2JqZWN0ICoKK2ZpeHVwKFB5T2JqZWN0ICpzZWxmLCBQeV9VQ1M0ICgqZml4ZmN0KShQeU9iamVjdCAqcykpOworCitQeV9MT0NBTF9JTkxJTkUoUHlfc3NpemVfdCkgZmluZGNoYXIodm9pZCAqcywgaW50IGtpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLCBQeV9VQ1M0IGNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24pCiB7Ci0gICAgdm9pZCAqb2xkc3RyOworICAgIGludCBtb2RlID0gKGRpcmVjdGlvbiA9PSAxKSA/IEZBU1RfU0VBUkNIIDogRkFTVF9SU0VBUkNIOwogCi0gICAgLyogU2hvcnRjdXQgaWYgdGhlcmUncyBub3RoaW5nIG11Y2ggdG8gZG8uICovCi0gICAgaWYgKHVuaWNvZGUtPmxlbmd0aCA9PSBsZW5ndGgpCi0gICAgICAgIGdvdG8gcmVzZXQ7Ci0KLSAgICAvKiBSZXNpemluZyBzaGFyZWQgb2JqZWN0ICh1bmljb2RlX2VtcHR5IG9yIHNpbmdsZSBjaGFyYWN0ZXIKLSAgICAgICBvYmplY3RzKSBpbi1wbGFjZSBpcyBub3QgYWxsb3dlZC4gVXNlIFB5VW5pY29kZV9SZXNpemUoKQotICAgICAgIGluc3RlYWQgISAqLwotCi0gICAgaWYgKHVuaWNvZGUgPT0gdW5pY29kZV9lbXB0eSB8fAotICAgICAgICAodW5pY29kZS0+bGVuZ3RoID09IDEgJiYKLSAgICAgICAgIHVuaWNvZGUtPnN0clswXSA8IDI1NlUgJiYKLSAgICAgICAgIHVuaWNvZGVfbGF0aW4xW3VuaWNvZGUtPnN0clswXV0gPT0gdW5pY29kZSkpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgImNhbid0IHJlc2l6ZSBzaGFyZWQgc3RyIG9iamVjdHMiKTsKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOgorICAgICAgICB7CisgICAgICAgICAgICBQeV9VQ1MxIGNoMSA9IChQeV9VQ1MxKSBjaDsKKyAgICAgICAgICAgIGlmIChjaDEgPT0gY2gpCisgICAgICAgICAgICAgICAgcmV0dXJuIHVjczFsaWJfZmFzdHNlYXJjaCgoUHlfVUNTMSAqKSBzLCBzaXplLCAmY2gxLCAxLCAwLCBtb2RlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICB7CisgICAgICAgICAgICBQeV9VQ1MyIGNoMiA9IChQeV9VQ1MyKSBjaDsKKyAgICAgICAgICAgIGlmIChjaDIgPT0gY2gpCisgICAgICAgICAgICAgICAgcmV0dXJuIHVjczJsaWJfZmFzdHNlYXJjaCgoUHlfVUNTMiAqKSBzLCBzaXplLCAmY2gyLCAxLCAwLCBtb2RlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICBjYXNlIFB5VW5pY29kZV80QllURV9LSU5EOgorICAgICAgICByZXR1cm4gdWNzNGxpYl9mYXN0c2VhcmNoKChQeV9VQ1M0ICopIHMsIHNpemUsICZjaCwgMSwgMCwgbW9kZSk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYXNzZXJ0KDApOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQorfQogCi0gICAgLyogV2UgYWxsb2NhdGUgb25lIG1vcmUgYnl0ZSB0byBtYWtlIHN1cmUgdGhlIHN0cmluZyBpcyBVeDAwMDAgdGVybWluYXRlZC4KLSAgICAgICBUaGUgb3ZlcmFsbG9jYXRpb24gaXMgYWxzbyB1c2VkIGJ5IGZhc3RzZWFyY2gsIHdoaWNoIGFzc3VtZXMgdGhhdCBpdCdzCi0gICAgICAgc2FmZSB0byBsb29rIGF0IHN0cltsZW5ndGhdICh3aXRob3V0IG1ha2luZyBhbnkgYXNzdW1wdGlvbnMgYWJvdXQgd2hhdAotICAgICAgIGl0IGNvbnRhaW5zKS4gKi8KK3N0YXRpYyBQeU9iamVjdCoKK3Jlc2l6ZV9jb21wYWN0KFB5T2JqZWN0ICp1bmljb2RlLCBQeV9zc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBQeV9zc2l6ZV90IGNoYXJfc2l6ZTsKKyAgICBQeV9zc2l6ZV90IHN0cnVjdF9zaXplOworICAgIFB5X3NzaXplX3QgbmV3X3NpemU7CisgICAgaW50IHNoYXJlX3dzdHI7CisgICAgUHlPYmplY3QgKm5ld191bmljb2RlOworICAgIGFzc2VydCh1bmljb2RlX21vZGlmaWFibGUodW5pY29kZSkpOworICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkodW5pY29kZSkpOworICAgIGFzc2VydChQeVVuaWNvZGVfSVNfQ09NUEFDVCh1bmljb2RlKSk7CiAKLSAgICBvbGRzdHIgPSB1bmljb2RlLT5zdHI7Ci0gICAgdW5pY29kZS0+c3RyID0gUHlPYmplY3RfUkVBTExPQyh1bmljb2RlLT5zdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoUHlfVU5JQ09ERSkgKiAobGVuZ3RoICsgMSkpOwotICAgIGlmICghdW5pY29kZS0+c3RyKSB7Ci0gICAgICAgIHVuaWNvZGUtPnN0ciA9IChQeV9VTklDT0RFICopb2xkc3RyOworICAgIGNoYXJfc2l6ZSA9IFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpOworICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkodW5pY29kZSkpCisgICAgICAgIHN0cnVjdF9zaXplID0gc2l6ZW9mKFB5QVNDSUlPYmplY3QpOworICAgIGVsc2UKKyAgICAgICAgc3RydWN0X3NpemUgPSBzaXplb2YoUHlDb21wYWN0VW5pY29kZU9iamVjdCk7CisgICAgc2hhcmVfd3N0ciA9IF9QeVVuaWNvZGVfU0hBUkVfV1NUUih1bmljb2RlKTsKKworICAgIGlmIChsZW5ndGggPiAoKFBZX1NTSVpFX1RfTUFYIC0gc3RydWN0X3NpemUpIC8gY2hhcl9zaXplIC0gMSkpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIG5ld19zaXplID0gKHN0cnVjdF9zaXplICsgKGxlbmd0aCArIDEpICogY2hhcl9zaXplKTsKKworICAgIF9QeV9ERUNfUkVGVE9UQUw7CisgICAgX1B5X0ZvcmdldFJlZmVyZW5jZSh1bmljb2RlKTsKKworICAgIG5ld191bmljb2RlID0gKFB5T2JqZWN0ICopUHlPYmplY3RfUkVBTExPQygoY2hhciAqKXVuaWNvZGUsIG5ld19zaXplKTsKKyAgICBpZiAobmV3X3VuaWNvZGUgPT0gTlVMTCkgeworICAgICAgICBfUHlfTmV3UmVmZXJlbmNlKHVuaWNvZGUpOworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgdW5pY29kZSA9IG5ld191bmljb2RlOworICAgIF9QeV9OZXdSZWZlcmVuY2UodW5pY29kZSk7CisKKyAgICBfUHlVbmljb2RlX0xFTkdUSCh1bmljb2RlKSA9IGxlbmd0aDsKKyAgICBpZiAoc2hhcmVfd3N0cikgeworICAgICAgICBfUHlVbmljb2RlX1dTVFIodW5pY29kZSkgPSBQeVVuaWNvZGVfREFUQSh1bmljb2RlKTsKKyAgICAgICAgaWYgKCFQeVVuaWNvZGVfSVNfQVNDSUkodW5pY29kZSkpCisgICAgICAgICAgICBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKHVuaWNvZGUpID0gbGVuZ3RoOworICAgIH0KKyAgICBQeVVuaWNvZGVfV1JJVEUoUHlVbmljb2RlX0tJTkQodW5pY29kZSksIFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpLAorICAgICAgICAgICAgICAgICAgICBsZW5ndGgsIDApOworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodW5pY29kZSwgMCkpOworICAgIHJldHVybiB1bmljb2RlOworfQorCitzdGF0aWMgaW50CityZXNpemVfaW5wbGFjZShQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCBsZW5ndGgpCit7CisgICAgd2NoYXJfdCAqd3N0cjsKKyAgICBQeV9zc2l6ZV90IG5ld19zaXplOworICAgIGFzc2VydCghUHlVbmljb2RlX0lTX0NPTVBBQ1QodW5pY29kZSkpOworICAgIGFzc2VydChQeV9SRUZDTlQodW5pY29kZSkgPT0gMSk7CisKKyAgICBpZiAoUHlVbmljb2RlX0lTX1JFQURZKHVuaWNvZGUpKSB7CisgICAgICAgIFB5X3NzaXplX3QgY2hhcl9zaXplOworICAgICAgICBpbnQgc2hhcmVfd3N0ciwgc2hhcmVfdXRmODsKKyAgICAgICAgdm9pZCAqZGF0YTsKKworICAgICAgICBkYXRhID0gX1B5VW5pY29kZV9EQVRBX0FOWSh1bmljb2RlKTsKKyAgICAgICAgY2hhcl9zaXplID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgICAgIHNoYXJlX3dzdHIgPSBfUHlVbmljb2RlX1NIQVJFX1dTVFIodW5pY29kZSk7CisgICAgICAgIHNoYXJlX3V0ZjggPSBfUHlVbmljb2RlX1NIQVJFX1VURjgodW5pY29kZSk7CisKKyAgICAgICAgaWYgKGxlbmd0aCA+IChQWV9TU0laRV9UX01BWCAvIGNoYXJfc2l6ZSAtIDEpKSB7CisgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIG5ld19zaXplID0gKGxlbmd0aCArIDEpICogY2hhcl9zaXplOworCisgICAgICAgIGlmICghc2hhcmVfdXRmOCAmJiBfUHlVbmljb2RlX0hBU19VVEY4X01FTU9SWSh1bmljb2RlKSkKKyAgICAgICAgeworICAgICAgICAgICAgUHlPYmplY3RfREVMKF9QeVVuaWNvZGVfVVRGOCh1bmljb2RlKSk7CisgICAgICAgICAgICBfUHlVbmljb2RlX1VURjgodW5pY29kZSkgPSBOVUxMOworICAgICAgICAgICAgX1B5VW5pY29kZV9VVEY4X0xFTkdUSCh1bmljb2RlKSA9IDA7CisgICAgICAgIH0KKworICAgICAgICBkYXRhID0gKFB5T2JqZWN0ICopUHlPYmplY3RfUkVBTExPQyhkYXRhLCBuZXdfc2l6ZSk7CisgICAgICAgIGlmIChkYXRhID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgX1B5VW5pY29kZV9EQVRBX0FOWSh1bmljb2RlKSA9IGRhdGE7CisgICAgICAgIGlmIChzaGFyZV93c3RyKSB7CisgICAgICAgICAgICBfUHlVbmljb2RlX1dTVFIodW5pY29kZSkgPSBkYXRhOworICAgICAgICAgICAgX1B5VW5pY29kZV9XU1RSX0xFTkdUSCh1bmljb2RlKSA9IGxlbmd0aDsKKyAgICAgICAgfQorICAgICAgICBpZiAoc2hhcmVfdXRmOCkgeworICAgICAgICAgICAgX1B5VW5pY29kZV9VVEY4KHVuaWNvZGUpID0gZGF0YTsKKyAgICAgICAgICAgIF9QeVVuaWNvZGVfVVRGOF9MRU5HVEgodW5pY29kZSkgPSBsZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgX1B5VW5pY29kZV9MRU5HVEgodW5pY29kZSkgPSBsZW5ndGg7CisgICAgICAgIFB5VW5pY29kZV9XUklURShQeVVuaWNvZGVfS0lORCh1bmljb2RlKSwgZGF0YSwgbGVuZ3RoLCAwKTsKKyAgICAgICAgaWYgKHNoYXJlX3dzdHIgfHwgX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpID09IE5VTEwpIHsKKyAgICAgICAgICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodW5pY29kZSwgMCkpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSAhPSBOVUxMKTsKKworICAgIC8qIGNoZWNrIGZvciBpbnRlZ2VyIG92ZXJmbG93ICovCisgICAgaWYgKGxlbmd0aCA+IFBZX1NTSVpFX1RfTUFYIC8gc2l6ZW9mKHdjaGFyX3QpIC0gMSkgewogICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQotICAgIHVuaWNvZGUtPnN0cltsZW5ndGhdID0gMDsKLSAgICB1bmljb2RlLT5sZW5ndGggPSBsZW5ndGg7Ci0KLSAgcmVzZXQ6Ci0gICAgLyogUmVzZXQgdGhlIG9iamVjdCBjYWNoZXMgKi8KLSAgICBpZiAodW5pY29kZS0+ZGVmZW5jKSB7Ci0gICAgICAgIFB5X0NMRUFSKHVuaWNvZGUtPmRlZmVuYyk7CisgICAgbmV3X3NpemUgPSBzaXplb2Yod2NoYXJfdCkgKiAobGVuZ3RoICsgMSk7CisgICAgd3N0ciA9ICBfUHlVbmljb2RlX1dTVFIodW5pY29kZSk7CisgICAgd3N0ciA9IFB5T2JqZWN0X1JFQUxMT0Mod3N0ciwgbmV3X3NpemUpOworICAgIGlmICghd3N0cikgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gLTE7CiAgICAgfQotICAgIHVuaWNvZGUtPmhhc2ggPSAtMTsKLQorICAgIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSA9IHdzdHI7CisgICAgX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpW2xlbmd0aF0gPSAwOworICAgIF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSkgPSBsZW5ndGg7CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeSh1bmljb2RlLCAwKSk7CiAgICAgcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCoKK3Jlc2l6ZV9jb3B5KFB5T2JqZWN0ICp1bmljb2RlLCBQeV9zc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBQeV9zc2l6ZV90IGNvcHlfbGVuZ3RoOworICAgIGlmIChfUHlVbmljb2RlX0tJTkQodW5pY29kZSkgIT0gUHlVbmljb2RlX1dDSEFSX0tJTkQpIHsKKyAgICAgICAgUHlPYmplY3QgKmNvcHk7CisKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworCisgICAgICAgIGNvcHkgPSBQeVVuaWNvZGVfTmV3KGxlbmd0aCwgUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHVuaWNvZGUpKTsKKyAgICAgICAgaWYgKGNvcHkgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworCisgICAgICAgIGNvcHlfbGVuZ3RoID0gUHlfTUlOKGxlbmd0aCwgUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSkpOworICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhjb3B5LCAwLCB1bmljb2RlLCAwLCBjb3B5X2xlbmd0aCk7CisgICAgICAgIHJldHVybiBjb3B5OworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgUHlPYmplY3QgKnc7CisKKyAgICAgICAgdyA9IChQeU9iamVjdCopX1B5VW5pY29kZV9OZXcobGVuZ3RoKTsKKyAgICAgICAgaWYgKHcgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBjb3B5X2xlbmd0aCA9IF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSk7CisgICAgICAgIGNvcHlfbGVuZ3RoID0gUHlfTUlOKGNvcHlfbGVuZ3RoLCBsZW5ndGgpOworICAgICAgICBQeV9VTklDT0RFX0NPUFkoX1B5VW5pY29kZV9XU1RSKHcpLCBfUHlVbmljb2RlX1dTVFIodW5pY29kZSksCisgICAgICAgICAgICAgICAgICAgICAgICBjb3B5X2xlbmd0aCk7CisgICAgICAgIHJldHVybiB3OworICAgIH0KK30KKwogLyogV2UgYWxsb2NhdGUgb25lIG1vcmUgYnl0ZSB0byBtYWtlIHN1cmUgdGhlIHN0cmluZyBpcwogICAgVXgwMDAwIHRlcm1pbmF0ZWQ7IHNvbWUgY29kZSAoZS5nLiBuZXdfaWRlbnRpZmllcikKICAgIHJlbGllcyBvbiB0aGF0LgpAQCAtMzExLDU1ICs4MDMsMzkgQEAKIAogKi8KIAotc3RhdGljCi1QeVVuaWNvZGVPYmplY3QgKl9QeVVuaWNvZGVfTmV3KFB5X3NzaXplX3QgbGVuZ3RoKQorc3RhdGljIFB5VW5pY29kZU9iamVjdCAqCitfUHlVbmljb2RlX05ldyhQeV9zc2l6ZV90IGxlbmd0aCkKIHsKICAgICByZWdpc3RlciBQeVVuaWNvZGVPYmplY3QgKnVuaWNvZGU7CisgICAgc2l6ZV90IG5ld19zaXplOwogCiAgICAgLyogT3B0aW1pemF0aW9uIGZvciBlbXB0eSBzdHJpbmdzICovCiAgICAgaWYgKGxlbmd0aCA9PSAwICYmIHVuaWNvZGVfZW1wdHkgIT0gTlVMTCkgewogICAgICAgICBQeV9JTkNSRUYodW5pY29kZV9lbXB0eSk7Ci0gICAgICAgIHJldHVybiB1bmljb2RlX2VtcHR5OworICAgICAgICByZXR1cm4gKFB5VW5pY29kZU9iamVjdCopdW5pY29kZV9lbXB0eTsKICAgICB9CiAKICAgICAvKiBFbnN1cmUgd2Ugd29uJ3Qgb3ZlcmZsb3cgdGhlIHNpemUuICovCiAgICAgaWYgKGxlbmd0aCA+ICgoUFlfU1NJWkVfVF9NQVggLyBzaXplb2YoUHlfVU5JQ09ERSkpIC0gMSkpIHsKICAgICAgICAgcmV0dXJuIChQeVVuaWNvZGVPYmplY3QgKilQeUVycl9Ob01lbW9yeSgpOwogICAgIH0KLQotICAgIC8qIFVuaWNvZGUgZnJlZWxpc3QgJiBtZW1vcnkgYWxsb2NhdGlvbiAqLwotICAgIGlmIChmcmVlX2xpc3QpIHsKLSAgICAgICAgdW5pY29kZSA9IGZyZWVfbGlzdDsKLSAgICAgICAgZnJlZV9saXN0ID0gKihQeVVuaWNvZGVPYmplY3QgKiopdW5pY29kZTsKLSAgICAgICAgbnVtZnJlZS0tOwotICAgICAgICBpZiAodW5pY29kZS0+c3RyKSB7Ci0gICAgICAgICAgICAvKiBLZWVwLUFsaXZlIG9wdGltaXphdGlvbjogd2Ugb25seSB1cHNpemUgdGhlIGJ1ZmZlciwKLSAgICAgICAgICAgICAgIG5ldmVyIGRvd25zaXplIGl0LiAqLwotICAgICAgICAgICAgaWYgKCh1bmljb2RlLT5sZW5ndGggPCBsZW5ndGgpICYmCi0gICAgICAgICAgICAgICAgdW5pY29kZV9yZXNpemUodW5pY29kZSwgbGVuZ3RoKSA8IDApIHsKLSAgICAgICAgICAgICAgICBQeU9iamVjdF9ERUwodW5pY29kZS0+c3RyKTsKLSAgICAgICAgICAgICAgICB1bmljb2RlLT5zdHIgPSBOVUxMOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgc2l6ZV90IG5ld19zaXplID0gc2l6ZW9mKFB5X1VOSUNPREUpICogKChzaXplX3QpbGVuZ3RoICsgMSk7Ci0gICAgICAgICAgICB1bmljb2RlLT5zdHIgPSAoUHlfVU5JQ09ERSopIFB5T2JqZWN0X01BTExPQyhuZXdfc2l6ZSk7Ci0gICAgICAgIH0KLSAgICAgICAgUHlPYmplY3RfSU5JVCh1bmljb2RlLCAmUHlVbmljb2RlX1R5cGUpOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgc2l6ZV90IG5ld19zaXplOwotICAgICAgICB1bmljb2RlID0gUHlPYmplY3RfTmV3KFB5VW5pY29kZU9iamVjdCwgJlB5VW5pY29kZV9UeXBlKTsKLSAgICAgICAgaWYgKHVuaWNvZGUgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBuZXdfc2l6ZSA9IHNpemVvZihQeV9VTklDT0RFKSAqICgoc2l6ZV90KWxlbmd0aCArIDEpOwotICAgICAgICB1bmljb2RlLT5zdHIgPSAoUHlfVU5JQ09ERSopIFB5T2JqZWN0X01BTExPQyhuZXdfc2l6ZSk7CisgICAgaWYgKGxlbmd0aCA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIk5lZ2F0aXZlIHNpemUgcGFzc2VkIHRvIF9QeVVuaWNvZGVfTmV3Iik7CisgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIGlmICghdW5pY29kZS0+c3RyKSB7CisgICAgdW5pY29kZSA9IFB5T2JqZWN0X05ldyhQeVVuaWNvZGVPYmplY3QsICZQeVVuaWNvZGVfVHlwZSk7CisgICAgaWYgKHVuaWNvZGUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbmV3X3NpemUgPSBzaXplb2YoUHlfVU5JQ09ERSkgKiAoKHNpemVfdClsZW5ndGggKyAxKTsKKyAgICBfUHlVbmljb2RlX1dTVFIodW5pY29kZSkgPSAoUHlfVU5JQ09ERSopIFB5T2JqZWN0X01BTExPQyhuZXdfc2l6ZSk7CisgICAgaWYgKCFfUHlVbmljb2RlX1dTVFIodW5pY29kZSkpIHsKKyAgICAgICAgUHlfREVDUkVGKHVuaWNvZGUpOwogICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KKwogICAgIC8qIEluaXRpYWxpemUgdGhlIGZpcnN0IGVsZW1lbnQgdG8gZ3VhcmQgYWdhaW5zdCBjYXNlcyB3aGVyZQogICAgICAqIHRoZSBjYWxsZXIgZmFpbHMgYmVmb3JlIGluaXRpYWxpemluZyBzdHIgLS0gdW5pY29kZV9yZXNpemUoKQogICAgICAqIHJlYWRzIHN0clswXSwgYW5kIHRoZSBLZWVwLUFsaXZlIG9wdGltaXphdGlvbiBjYW4ga2VlcCBtZW1vcnkKQEAgLTM2NywyNCArODQzLDY1OCBAQAogICAgICAqIFdlIGRvbid0IHdhbnQgdW5pY29kZV9yZXNpemUgdG8gcmVhZCB1bmluaXRpYWxpemVkIG1lbW9yeSBpbgogICAgICAqIHRoYXQgY2FzZS4KICAgICAgKi8KLSAgICB1bmljb2RlLT5zdHJbMF0gPSAwOwotICAgIHVuaWNvZGUtPnN0cltsZW5ndGhdID0gMDsKLSAgICB1bmljb2RlLT5sZW5ndGggPSBsZW5ndGg7Ci0gICAgdW5pY29kZS0+aGFzaCA9IC0xOwotICAgIHVuaWNvZGUtPnN0YXRlID0gMDsKLSAgICB1bmljb2RlLT5kZWZlbmMgPSBOVUxMOworICAgIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKVswXSA9IDA7CisgICAgX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpW2xlbmd0aF0gPSAwOworICAgIF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSkgPSBsZW5ndGg7CisgICAgX1B5VW5pY29kZV9IQVNIKHVuaWNvZGUpID0gLTE7CisgICAgX1B5VW5pY29kZV9TVEFURSh1bmljb2RlKS5pbnRlcm5lZCA9IDA7CisgICAgX1B5VW5pY29kZV9TVEFURSh1bmljb2RlKS5raW5kID0gMDsKKyAgICBfUHlVbmljb2RlX1NUQVRFKHVuaWNvZGUpLmNvbXBhY3QgPSAwOworICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkucmVhZHkgPSAwOworICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkuYXNjaWkgPSAwOworICAgIF9QeVVuaWNvZGVfREFUQV9BTlkodW5pY29kZSkgPSBOVUxMOworICAgIF9QeVVuaWNvZGVfTEVOR1RIKHVuaWNvZGUpID0gMDsKKyAgICBfUHlVbmljb2RlX1VURjgodW5pY29kZSkgPSBOVUxMOworICAgIF9QeVVuaWNvZGVfVVRGOF9MRU5HVEgodW5pY29kZSkgPSAwOworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3koKFB5T2JqZWN0ICopdW5pY29kZSwgMCkpOwogICAgIHJldHVybiB1bmljb2RlOwotCi0gIG9uRXJyb3I6Ci0gICAgLyogWFhYIFVOUkVGL05FV1JFRiBpbnRlcmZhY2Ugc2hvdWxkIGJlIG1vcmUgc3ltbWV0cmljYWwgKi8KLSAgICBfUHlfREVDX1JFRlRPVEFMOwotICAgIF9QeV9Gb3JnZXRSZWZlcmVuY2UoKFB5T2JqZWN0ICopdW5pY29kZSk7Ci0gICAgUHlPYmplY3RfRGVsKHVuaWNvZGUpOwotICAgIHJldHVybiBOVUxMOwogfQogCi1zdGF0aWMKLXZvaWQgdW5pY29kZV9kZWFsbG9jKHJlZ2lzdGVyIFB5VW5pY29kZU9iamVjdCAqdW5pY29kZSkKK3N0YXRpYyBjb25zdCBjaGFyKgordW5pY29kZV9raW5kX25hbWUoUHlPYmplY3QgKnVuaWNvZGUpCit7CisgICAgLyogZG9uJ3QgY2hlY2sgY29uc2lzdGVuY3k6IHVuaWNvZGVfa2luZF9uYW1lKCkgaXMgY2FsbGVkIGZyb20KKyAgICAgICBfUHlVbmljb2RlX0R1bXAoKSAqLworICAgIGlmICghUHlVbmljb2RlX0lTX0NPTVBBQ1QodW5pY29kZSkpCisgICAgeworICAgICAgICBpZiAoIVB5VW5pY29kZV9JU19SRUFEWSh1bmljb2RlKSkKKyAgICAgICAgICAgIHJldHVybiAid3N0ciI7CisgICAgICAgIHN3aXRjaCAoUHlVbmljb2RlX0tJTkQodW5pY29kZSkpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDoKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkodW5pY29kZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuICJsZWdhY3kgYXNjaWkiOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiAibGVnYWN5IGxhdGluMSI7CisgICAgICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgICAgICByZXR1cm4gImxlZ2FjeSBVQ1MyIjsKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgICAgIHJldHVybiAibGVnYWN5IFVDUzQiOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuICI8bGVnYWN5IGludmFsaWQga2luZD4iOworICAgICAgICB9CisgICAgfQorICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkodW5pY29kZSkpOworICAgIHN3aXRjaCAoUHlVbmljb2RlX0tJTkQodW5pY29kZSkpIHsKKyAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOgorICAgICAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHVuaWNvZGUpKQorICAgICAgICAgICAgcmV0dXJuICJhc2NpaSI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiAibGF0aW4xIjsKKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICByZXR1cm4gIlVDUzIiOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisgICAgICAgIHJldHVybiAiVUNTNCI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuICI8aW52YWxpZCBjb21wYWN0IGtpbmQ+IjsKKyAgICB9Cit9CisKKyNpZmRlZiBQeV9ERUJVRworLyogRnVuY3Rpb25zIHdyYXBwaW5nIG1hY3JvcyBmb3IgdXNlIGluIGRlYnVnZ2VyICovCitjaGFyICpfUHlVbmljb2RlX3V0Zjgodm9pZCAqdW5pY29kZSl7CisgICAgcmV0dXJuIFB5VW5pY29kZV9VVEY4KHVuaWNvZGUpOworfQorCit2b2lkICpfUHlVbmljb2RlX2NvbXBhY3RfZGF0YSh2b2lkICp1bmljb2RlKSB7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVfQ09NUEFDVF9EQVRBKHVuaWNvZGUpOworfQordm9pZCAqX1B5VW5pY29kZV9kYXRhKHZvaWQgKnVuaWNvZGUpeworICAgIHByaW50Zigib2JqICVwXG4iLCB1bmljb2RlKTsKKyAgICBwcmludGYoImNvbXBhY3QgJWRcbiIsIFB5VW5pY29kZV9JU19DT01QQUNUKHVuaWNvZGUpKTsKKyAgICBwcmludGYoImNvbXBhY3QgYXNjaWkgJWRcbiIsIFB5VW5pY29kZV9JU19DT01QQUNUX0FTQ0lJKHVuaWNvZGUpKTsKKyAgICBwcmludGYoImFzY2lpIG9wICVwXG4iLCAoKHZvaWQqKSgoUHlBU0NJSU9iamVjdCopKHVuaWNvZGUpICsgMSkpKTsKKyAgICBwcmludGYoImNvbXBhY3Qgb3AgJXBcbiIsICgodm9pZCopKChQeUNvbXBhY3RVbmljb2RlT2JqZWN0KikodW5pY29kZSkgKyAxKSkpOworICAgIHByaW50ZigiY29tcGFjdCBkYXRhICVwXG4iLCBfUHlVbmljb2RlX0NPTVBBQ1RfREFUQSh1bmljb2RlKSk7CisgICAgcmV0dXJuIFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpOworfQorCit2b2lkCitfUHlVbmljb2RlX0R1bXAoUHlPYmplY3QgKm9wKQoreworICAgIFB5QVNDSUlPYmplY3QgKmFzY2lpID0gKFB5QVNDSUlPYmplY3QgKilvcDsKKyAgICBQeUNvbXBhY3RVbmljb2RlT2JqZWN0ICpjb21wYWN0ID0gKFB5Q29tcGFjdFVuaWNvZGVPYmplY3QgKilvcDsKKyAgICBQeVVuaWNvZGVPYmplY3QgKnVuaWNvZGUgPSAoUHlVbmljb2RlT2JqZWN0ICopb3A7CisgICAgdm9pZCAqZGF0YTsKKworICAgIGlmIChhc2NpaS0+c3RhdGUuY29tcGFjdCkKKyAgICB7CisgICAgICAgIGlmIChhc2NpaS0+c3RhdGUuYXNjaWkpCisgICAgICAgICAgICBkYXRhID0gKGFzY2lpICsgMSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRhdGEgPSAoY29tcGFjdCArIDEpOworICAgIH0KKyAgICBlbHNlCisgICAgICAgIGRhdGEgPSB1bmljb2RlLT5kYXRhLmFueTsKKyAgICBwcmludGYoIiVzOiBsZW49JXp1LCAiLHVuaWNvZGVfa2luZF9uYW1lKG9wKSwgYXNjaWktPmxlbmd0aCk7CisKKyAgICBpZiAoYXNjaWktPndzdHIgPT0gZGF0YSkKKyAgICAgICAgcHJpbnRmKCJzaGFyZWQgIik7CisgICAgcHJpbnRmKCJ3c3RyPSVwIiwgYXNjaWktPndzdHIpOworCisgICAgaWYgKCEoYXNjaWktPnN0YXRlLmFzY2lpID09IDEgJiYgYXNjaWktPnN0YXRlLmNvbXBhY3QgPT0gMSkpIHsKKyAgICAgICAgcHJpbnRmKCIgKCV6dSksICIsIGNvbXBhY3QtPndzdHJfbGVuZ3RoKTsKKyAgICAgICAgaWYgKCFhc2NpaS0+c3RhdGUuY29tcGFjdCAmJiBjb21wYWN0LT51dGY4ID09IHVuaWNvZGUtPmRhdGEuYW55KQorICAgICAgICAgICAgcHJpbnRmKCJzaGFyZWQgIik7CisgICAgICAgIHByaW50ZigidXRmOD0lcCAoJXp1KSIsIGNvbXBhY3QtPnV0ZjgsIGNvbXBhY3QtPnV0ZjhfbGVuZ3RoKTsKKyAgICB9CisgICAgcHJpbnRmKCIsIGRhdGE9JXBcbiIsIGRhdGEpOworfQorI2VuZGlmCisKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9OZXcoUHlfc3NpemVfdCBzaXplLCBQeV9VQ1M0IG1heGNoYXIpCit7CisgICAgUHlPYmplY3QgKm9iajsKKyAgICBQeUNvbXBhY3RVbmljb2RlT2JqZWN0ICp1bmljb2RlOworICAgIHZvaWQgKmRhdGE7CisgICAgZW51bSBQeVVuaWNvZGVfS2luZCBraW5kOworICAgIGludCBpc19zaGFyaW5nLCBpc19hc2NpaTsKKyAgICBQeV9zc2l6ZV90IGNoYXJfc2l6ZTsKKyAgICBQeV9zc2l6ZV90IHN0cnVjdF9zaXplOworCisgICAgLyogT3B0aW1pemF0aW9uIGZvciBlbXB0eSBzdHJpbmdzICovCisgICAgaWYgKHNpemUgPT0gMCAmJiB1bmljb2RlX2VtcHR5ICE9IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGVfZW1wdHkpOworICAgICAgICByZXR1cm4gdW5pY29kZV9lbXB0eTsKKyAgICB9CisKKyAgICBpc19hc2NpaSA9IDA7CisgICAgaXNfc2hhcmluZyA9IDA7CisgICAgc3RydWN0X3NpemUgPSBzaXplb2YoUHlDb21wYWN0VW5pY29kZU9iamVjdCk7CisgICAgaWYgKG1heGNoYXIgPCAxMjgpIHsKKyAgICAgICAga2luZCA9IFB5VW5pY29kZV8xQllURV9LSU5EOworICAgICAgICBjaGFyX3NpemUgPSAxOworICAgICAgICBpc19hc2NpaSA9IDE7CisgICAgICAgIHN0cnVjdF9zaXplID0gc2l6ZW9mKFB5QVNDSUlPYmplY3QpOworICAgIH0KKyAgICBlbHNlIGlmIChtYXhjaGFyIDwgMjU2KSB7CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfMUJZVEVfS0lORDsKKyAgICAgICAgY2hhcl9zaXplID0gMTsKKyAgICB9CisgICAgZWxzZSBpZiAobWF4Y2hhciA8IDY1NTM2KSB7CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfMkJZVEVfS0lORDsKKyAgICAgICAgY2hhcl9zaXplID0gMjsKKyAgICAgICAgaWYgKHNpemVvZih3Y2hhcl90KSA9PSAyKQorICAgICAgICAgICAgaXNfc2hhcmluZyA9IDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBpZiAobWF4Y2hhciA+IE1BWF9VTklDT0RFKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludmFsaWQgbWF4aW11bSBjaGFyYWN0ZXIgcGFzc2VkIHRvIFB5VW5pY29kZV9OZXciKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfNEJZVEVfS0lORDsKKyAgICAgICAgY2hhcl9zaXplID0gNDsKKyAgICAgICAgaWYgKHNpemVvZih3Y2hhcl90KSA9PSA0KQorICAgICAgICAgICAgaXNfc2hhcmluZyA9IDE7CisgICAgfQorCisgICAgLyogRW5zdXJlIHdlIHdvbid0IG92ZXJmbG93IHRoZSBzaXplLiAqLworICAgIGlmIChzaXplIDwgMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiTmVnYXRpdmUgc2l6ZSBwYXNzZWQgdG8gUHlVbmljb2RlX05ldyIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKHNpemUgPiAoKFBZX1NTSVpFX1RfTUFYIC0gc3RydWN0X3NpemUpIC8gY2hhcl9zaXplIC0gMSkpCisgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworCisgICAgLyogRHVwbGljYXRlZCBhbGxvY2F0aW9uIGNvZGUgZnJvbSBfUHlPYmplY3RfTmV3KCkgaW5zdGVhZCBvZiBhIGNhbGwgdG8KKyAgICAgKiBQeU9iamVjdF9OZXcoKSBzbyB3ZSBhcmUgYWJsZSB0byBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIG9iamVjdCBhbmQKKyAgICAgKiBpdCdzIGRhdGEgYnVmZmVyLgorICAgICAqLworICAgIG9iaiA9IChQeU9iamVjdCAqKSBQeU9iamVjdF9NQUxMT0Moc3RydWN0X3NpemUgKyAoc2l6ZSArIDEpICogY2hhcl9zaXplKTsKKyAgICBpZiAob2JqID09IE5VTEwpCisgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworICAgIG9iaiA9IFB5T2JqZWN0X0lOSVQob2JqLCAmUHlVbmljb2RlX1R5cGUpOworICAgIGlmIChvYmogPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICB1bmljb2RlID0gKFB5Q29tcGFjdFVuaWNvZGVPYmplY3QgKilvYmo7CisgICAgaWYgKGlzX2FzY2lpKQorICAgICAgICBkYXRhID0gKChQeUFTQ0lJT2JqZWN0KilvYmopICsgMTsKKyAgICBlbHNlCisgICAgICAgIGRhdGEgPSB1bmljb2RlICsgMTsKKyAgICBfUHlVbmljb2RlX0xFTkdUSCh1bmljb2RlKSA9IHNpemU7CisgICAgX1B5VW5pY29kZV9IQVNIKHVuaWNvZGUpID0gLTE7CisgICAgX1B5VW5pY29kZV9TVEFURSh1bmljb2RlKS5pbnRlcm5lZCA9IDA7CisgICAgX1B5VW5pY29kZV9TVEFURSh1bmljb2RlKS5raW5kID0ga2luZDsKKyAgICBfUHlVbmljb2RlX1NUQVRFKHVuaWNvZGUpLmNvbXBhY3QgPSAxOworICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkucmVhZHkgPSAxOworICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkuYXNjaWkgPSBpc19hc2NpaTsKKyAgICBpZiAoaXNfYXNjaWkpIHsKKyAgICAgICAgKChjaGFyKilkYXRhKVtzaXplXSA9IDA7CisgICAgICAgIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSA9IE5VTEw7CisgICAgfQorICAgIGVsc2UgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQpIHsKKyAgICAgICAgKChjaGFyKilkYXRhKVtzaXplXSA9IDA7CisgICAgICAgIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSA9IE5VTEw7CisgICAgICAgIF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSkgPSAwOworICAgICAgICB1bmljb2RlLT51dGY4ID0gTlVMTDsKKyAgICAgICAgdW5pY29kZS0+dXRmOF9sZW5ndGggPSAwOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgdW5pY29kZS0+dXRmOCA9IE5VTEw7CisgICAgICAgIHVuaWNvZGUtPnV0ZjhfbGVuZ3RoID0gMDsKKyAgICAgICAgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQpCisgICAgICAgICAgICAoKFB5X1VDUzIqKWRhdGEpW3NpemVdID0gMDsKKyAgICAgICAgZWxzZSAvKiBraW5kID09IFB5VW5pY29kZV80QllURV9LSU5EICovCisgICAgICAgICAgICAoKFB5X1VDUzQqKWRhdGEpW3NpemVdID0gMDsKKyAgICAgICAgaWYgKGlzX3NoYXJpbmcpIHsKKyAgICAgICAgICAgIF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSkgPSBzaXplOworICAgICAgICAgICAgX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpID0gKHdjaGFyX3QgKilkYXRhOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgX1B5VW5pY29kZV9XU1RSX0xFTkdUSCh1bmljb2RlKSA9IDA7CisgICAgICAgICAgICBfUHlVbmljb2RlX1dTVFIodW5pY29kZSkgPSBOVUxMOworICAgICAgICB9CisgICAgfQorI2lmZGVmIFB5X0RFQlVHCisgICAgLyogRmlsbCB0aGUgZGF0YSB3aXRoIGludmFsaWQgY2hhcmFjdGVycyB0byBkZXRlY3QgYnVncyBlYXJsaWVyLgorICAgICAgIF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeShzdHIsIDEpIGRldGVjdHMgaW52YWxpZCBjaGFyYWN0ZXJzLAorICAgICAgIGF0IGxlYXN0IGZvciBBU0NJSSBhbmQgVUNTLTQgc3RyaW5ncy4gVSswMEZGIGlzIGludmFsaWQgaW4gQVNDSUkKKyAgICAgICBhbmQgVStGRkZGRkZGRiBpcyBhbiBpbnZhbGlkIGNoYXJhY3RlciBpbiBVbmljb2RlIDYuMC4gKi8KKyAgICBtZW1zZXQoZGF0YSwgMHhmZiwgc2l6ZSAqIGtpbmQpOworI2VuZGlmCisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeSgoUHlPYmplY3QqKXVuaWNvZGUsIDApKTsKKyAgICByZXR1cm4gb2JqOworfQorCisjaWYgU0laRU9GX1dDSEFSX1QgPT0gMgorLyogSGVscGVyIGZ1bmN0aW9uIHRvIGNvbnZlcnQgYSAxNi1iaXRzIHdjaGFyX3QgcmVwcmVzZW50YXRpb24gdG8gVUNTNCwgdGhpcworICAgd2lsbCBkZWNvZGUgc3Vycm9nYXRlIHBhaXJzLCB0aGUgb3RoZXIgY29udmVyc2lvbnMgYXJlIGltcGxlbWVudGVkIGFzIG1hY3JvcworICAgZm9yIGVmZmljaWVuY3kuCisKKyAgIFRoaXMgZnVuY3Rpb24gYXNzdW1lcyB0aGF0IHVuaWNvZGUgY2FuIGhvbGQgb25lIG1vcmUgY29kZSBwb2ludCB0aGFuIHdzdHIKKyAgIGNoYXJhY3RlcnMgZm9yIGEgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIuICovCitzdGF0aWMgdm9pZAordW5pY29kZV9jb252ZXJ0X3djaGFyX3RvX3VjczQoY29uc3Qgd2NoYXJfdCAqYmVnaW4sIGNvbnN0IHdjaGFyX3QgKmVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp1bmljb2RlKQoreworICAgIGNvbnN0IHdjaGFyX3QgKml0ZXI7CisgICAgUHlfVUNTNCAqdWNzNF9vdXQ7CisKKyAgICBhc3NlcnQodW5pY29kZSAhPSBOVUxMKTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyh1bmljb2RlKSk7CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfS0lORCh1bmljb2RlKSA9PSBQeVVuaWNvZGVfNEJZVEVfS0lORCk7CisgICAgdWNzNF9vdXQgPSBQeVVuaWNvZGVfNEJZVEVfREFUQSh1bmljb2RlKTsKKworICAgIGZvciAoaXRlciA9IGJlZ2luOyBpdGVyIDwgZW5kOyApIHsKKyAgICAgICAgYXNzZXJ0KHVjczRfb3V0IDwgKFB5VW5pY29kZV80QllURV9EQVRBKHVuaWNvZGUpICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmljb2RlKSkpOworICAgICAgICBpZiAoUHlfVU5JQ09ERV9JU19ISUdIX1NVUlJPR0FURShpdGVyWzBdKQorICAgICAgICAgICAgJiYgKGl0ZXIrMSkgPCBlbmQKKyAgICAgICAgICAgICYmIFB5X1VOSUNPREVfSVNfTE9XX1NVUlJPR0FURShpdGVyWzFdKSkKKyAgICAgICAgeworICAgICAgICAgICAgKnVjczRfb3V0KysgPSBQeV9VTklDT0RFX0pPSU5fU1VSUk9HQVRFUyhpdGVyWzBdLCBpdGVyWzFdKTsKKyAgICAgICAgICAgIGl0ZXIgKz0gMjsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICp1Y3M0X291dCsrID0gKml0ZXI7CisgICAgICAgICAgICBpdGVyKys7CisgICAgICAgIH0KKyAgICB9CisgICAgYXNzZXJ0KHVjczRfb3V0ID09IChQeVVuaWNvZGVfNEJZVEVfREFUQSh1bmljb2RlKSArCisgICAgICAgICAgICAgICAgICAgICAgICBfUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSkpKTsKKworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQKK3VuaWNvZGVfY2hlY2tfbW9kaWZpYWJsZShQeU9iamVjdCAqdW5pY29kZSkKK3sKKyAgICBpZiAoIXVuaWNvZGVfbW9kaWZpYWJsZSh1bmljb2RlKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiQ2Fubm90IG1vZGlmeSBhIHN0cmluZyBjdXJyZW50bHkgdXNlZCIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CitfY29weV9jaGFyYWN0ZXJzKFB5T2JqZWN0ICp0bywgUHlfc3NpemVfdCB0b19zdGFydCwKKyAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmZyb20sIFB5X3NzaXplX3QgZnJvbV9zdGFydCwKKyAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBob3dfbWFueSwgaW50IGNoZWNrX21heGNoYXIpCit7CisgICAgdW5zaWduZWQgaW50IGZyb21fa2luZCwgdG9fa2luZDsKKyAgICB2b2lkICpmcm9tX2RhdGEsICp0b19kYXRhOworCisgICAgYXNzZXJ0KDAgPD0gaG93X21hbnkpOworICAgIGFzc2VydCgwIDw9IGZyb21fc3RhcnQpOworICAgIGFzc2VydCgwIDw9IHRvX3N0YXJ0KTsKKyAgICBhc3NlcnQoUHlVbmljb2RlX0NoZWNrKGZyb20pKTsKKyAgICBhc3NlcnQoUHlVbmljb2RlX0lTX1JFQURZKGZyb20pKTsKKyAgICBhc3NlcnQoZnJvbV9zdGFydCArIGhvd19tYW55IDw9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGZyb20pKTsKKworICAgIGFzc2VydChQeVVuaWNvZGVfQ2hlY2sodG8pKTsKKyAgICBhc3NlcnQoUHlVbmljb2RlX0lTX1JFQURZKHRvKSk7CisgICAgYXNzZXJ0KHRvX3N0YXJ0ICsgaG93X21hbnkgPD0gUHlVbmljb2RlX0dFVF9MRU5HVEgodG8pKTsKKworICAgIGlmIChob3dfbWFueSA9PSAwKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGZyb21fa2luZCA9IFB5VW5pY29kZV9LSU5EKGZyb20pOworICAgIGZyb21fZGF0YSA9IFB5VW5pY29kZV9EQVRBKGZyb20pOworICAgIHRvX2tpbmQgPSBQeVVuaWNvZGVfS0lORCh0byk7CisgICAgdG9fZGF0YSA9IFB5VW5pY29kZV9EQVRBKHRvKTsKKworI2lmZGVmIFB5X0RFQlVHCisgICAgaWYgKCFjaGVja19tYXhjaGFyCisgICAgICAgICYmIFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShmcm9tKSA+IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh0bykpCisgICAgeworICAgICAgICBjb25zdCBQeV9VQ1M0IHRvX21heGNoYXIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUodG8pOworICAgICAgICBQeV9VQ1M0IGNoOworICAgICAgICBQeV9zc2l6ZV90IGk7CisgICAgICAgIGZvciAoaT0wOyBpIDwgaG93X21hbnk7IGkrKykgeworICAgICAgICAgICAgY2ggPSBQeVVuaWNvZGVfUkVBRChmcm9tX2tpbmQsIGZyb21fZGF0YSwgZnJvbV9zdGFydCArIGkpOworICAgICAgICAgICAgYXNzZXJ0KGNoIDw9IHRvX21heGNoYXIpOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoZnJvbV9raW5kID09IHRvX2tpbmQpIHsKKyAgICAgICAgaWYgKGNoZWNrX21heGNoYXIKKyAgICAgICAgICAgICYmICFQeVVuaWNvZGVfSVNfQVNDSUkoZnJvbSkgJiYgUHlVbmljb2RlX0lTX0FTQ0lJKHRvKSkKKyAgICAgICAgeworICAgICAgICAgICAgLyogV3JpdGluZyBMYXRpbi0xIGNoYXJhY3RlcnMgaW50byBhbiBBU0NJSSBzdHJpbmcgcmVxdWlyZXMgdG8KKyAgICAgICAgICAgICAgIGNoZWNrIHRoYXQgYWxsIHdyaXR0ZW4gY2hhcmFjdGVycyBhcmUgcHVyZSBBU0NJSSAqLworICAgICAgICAgICAgUHlfVUNTNCBtYXhfY2hhcjsKKyAgICAgICAgICAgIG1heF9jaGFyID0gdWNzMWxpYl9maW5kX21heF9jaGFyKGZyb21fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQeV9VQ1MxKilmcm9tX2RhdGEgKyBob3dfbWFueSk7CisgICAgICAgICAgICBpZiAobWF4X2NoYXIgPj0gMTI4KQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBQeV9NRU1DUFkoKGNoYXIqKXRvX2RhdGEgKyB0b19raW5kICogdG9fc3RhcnQsCisgICAgICAgICAgICAgICAgICAoY2hhciopZnJvbV9kYXRhICsgZnJvbV9raW5kICogZnJvbV9zdGFydCwKKyAgICAgICAgICAgICAgICAgIHRvX2tpbmQgKiBob3dfbWFueSk7CisgICAgfQorICAgIGVsc2UgaWYgKGZyb21fa2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORAorICAgICAgICAgICAgICYmIHRvX2tpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQpCisgICAgeworICAgICAgICBfUHlVbmljb2RlX0NPTlZFUlRfQllURVMoCisgICAgICAgICAgICBQeV9VQ1MxLCBQeV9VQ1MyLAorICAgICAgICAgICAgUHlVbmljb2RlXzFCWVRFX0RBVEEoZnJvbSkgKyBmcm9tX3N0YXJ0LAorICAgICAgICAgICAgUHlVbmljb2RlXzFCWVRFX0RBVEEoZnJvbSkgKyBmcm9tX3N0YXJ0ICsgaG93X21hbnksCisgICAgICAgICAgICBQeVVuaWNvZGVfMkJZVEVfREFUQSh0bykgKyB0b19zdGFydAorICAgICAgICAgICAgKTsKKyAgICB9CisgICAgZWxzZSBpZiAoZnJvbV9raW5kID09IFB5VW5pY29kZV8xQllURV9LSU5ECisgICAgICAgICAgICAgJiYgdG9fa2luZCA9PSBQeVVuaWNvZGVfNEJZVEVfS0lORCkKKyAgICB7CisgICAgICAgIF9QeVVuaWNvZGVfQ09OVkVSVF9CWVRFUygKKyAgICAgICAgICAgIFB5X1VDUzEsIFB5X1VDUzQsCisgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQShmcm9tKSArIGZyb21fc3RhcnQsCisgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQShmcm9tKSArIGZyb21fc3RhcnQgKyBob3dfbWFueSwKKyAgICAgICAgICAgIFB5VW5pY29kZV80QllURV9EQVRBKHRvKSArIHRvX3N0YXJ0CisgICAgICAgICAgICApOworICAgIH0KKyAgICBlbHNlIGlmIChmcm9tX2tpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQKKyAgICAgICAgICAgICAmJiB0b19raW5kID09IFB5VW5pY29kZV80QllURV9LSU5EKQorICAgIHsKKyAgICAgICAgX1B5VW5pY29kZV9DT05WRVJUX0JZVEVTKAorICAgICAgICAgICAgUHlfVUNTMiwgUHlfVUNTNCwKKyAgICAgICAgICAgIFB5VW5pY29kZV8yQllURV9EQVRBKGZyb20pICsgZnJvbV9zdGFydCwKKyAgICAgICAgICAgIFB5VW5pY29kZV8yQllURV9EQVRBKGZyb20pICsgZnJvbV9zdGFydCArIGhvd19tYW55LAorICAgICAgICAgICAgUHlVbmljb2RlXzRCWVRFX0RBVEEodG8pICsgdG9fc3RhcnQKKyAgICAgICAgICAgICk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBhc3NlcnQgKFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShmcm9tKSA+IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh0bykpOworCisgICAgICAgIGlmICghY2hlY2tfbWF4Y2hhcikgeworICAgICAgICAgICAgaWYgKGZyb21fa2luZCA9PSBQeVVuaWNvZGVfMkJZVEVfS0lORAorICAgICAgICAgICAgICAgICYmIHRvX2tpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgX1B5VW5pY29kZV9DT05WRVJUX0JZVEVTKAorICAgICAgICAgICAgICAgICAgICBQeV9VQ1MyLCBQeV9VQ1MxLAorICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfMkJZVEVfREFUQShmcm9tKSArIGZyb21fc3RhcnQsCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8yQllURV9EQVRBKGZyb20pICsgZnJvbV9zdGFydCArIGhvd19tYW55LAorICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQSh0bykgKyB0b19zdGFydAorICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoZnJvbV9raW5kID09IFB5VW5pY29kZV80QllURV9LSU5ECisgICAgICAgICAgICAgICAgICAgICAmJiB0b19raW5kID09IFB5VW5pY29kZV8xQllURV9LSU5EKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfQ09OVkVSVF9CWVRFUygKKyAgICAgICAgICAgICAgICAgICAgUHlfVUNTNCwgUHlfVUNTMSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlXzRCWVRFX0RBVEEoZnJvbSkgKyBmcm9tX3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfNEJZVEVfREFUQShmcm9tKSArIGZyb21fc3RhcnQgKyBob3dfbWFueSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlXzFCWVRFX0RBVEEodG8pICsgdG9fc3RhcnQKKyAgICAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGZyb21fa2luZCA9PSBQeVVuaWNvZGVfNEJZVEVfS0lORAorICAgICAgICAgICAgICAgICAgICAgJiYgdG9fa2luZCA9PSBQeVVuaWNvZGVfMkJZVEVfS0lORCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBfUHlVbmljb2RlX0NPTlZFUlRfQllURVMoCisgICAgICAgICAgICAgICAgICAgIFB5X1VDUzQsIFB5X1VDUzIsCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV80QllURV9EQVRBKGZyb20pICsgZnJvbV9zdGFydCwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlXzRCWVRFX0RBVEEoZnJvbSkgKyBmcm9tX3N0YXJ0ICsgaG93X21hbnksCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8yQllURV9EQVRBKHRvKSArIHRvX3N0YXJ0CisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQoMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY29uc3QgUHlfVUNTNCB0b19tYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHRvKTsKKyAgICAgICAgICAgIFB5X1VDUzQgY2g7CisgICAgICAgICAgICBQeV9zc2l6ZV90IGk7CisKKyAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgaG93X21hbnk7IGkrKykgeworICAgICAgICAgICAgICAgIGNoID0gUHlVbmljb2RlX1JFQUQoZnJvbV9raW5kLCBmcm9tX2RhdGEsIGZyb21fc3RhcnQgKyBpKTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPiB0b19tYXhjaGFyKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKHRvX2tpbmQsIHRvX2RhdGEsIHRvX3N0YXJ0ICsgaSwgY2gpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCit2b2lkCitfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycygKKyAgICBQeU9iamVjdCAqdG8sIFB5X3NzaXplX3QgdG9fc3RhcnQsCisgICAgUHlPYmplY3QgKmZyb20sIFB5X3NzaXplX3QgZnJvbV9zdGFydCwgUHlfc3NpemVfdCBob3dfbWFueSkKK3sKKyAgICAodm9pZClfY29weV9jaGFyYWN0ZXJzKHRvLCB0b19zdGFydCwgZnJvbSwgZnJvbV9zdGFydCwgaG93X21hbnksIDApOworfQorCitQeV9zc2l6ZV90CitQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnMoUHlPYmplY3QgKnRvLCBQeV9zc2l6ZV90IHRvX3N0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpmcm9tLCBQeV9zc2l6ZV90IGZyb21fc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBob3dfbWFueSkKK3sKKyAgICBpbnQgZXJyOworCisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2soZnJvbSkgfHwgIVB5VW5pY29kZV9DaGVjayh0bykpIHsKKyAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKGZyb20pID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh0bykgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlmIChmcm9tX3N0YXJ0IDwgMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSW5kZXhFcnJvciwgInN0cmluZyBpbmRleCBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpZiAodG9fc3RhcnQgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbmRleEVycm9yLCAic3RyaW5nIGluZGV4IG91dCBvZiByYW5nZSIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGhvd19tYW55ID0gUHlfTUlOKFB5VW5pY29kZV9HRVRfTEVOR1RIKGZyb20pLCBob3dfbWFueSk7CisgICAgaWYgKHRvX3N0YXJ0ICsgaG93X21hbnkgPiBQeVVuaWNvZGVfR0VUX0xFTkdUSCh0bykpIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1N5c3RlbUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCB3cml0ZSAlemkgY2hhcmFjdGVycyBhdCAlemkgIgorICAgICAgICAgICAgICAgICAgICAgImluIGEgc3RyaW5nIG9mICV6aSBjaGFyYWN0ZXJzIiwKKyAgICAgICAgICAgICAgICAgICAgIGhvd19tYW55LCB0b19zdGFydCwgUHlVbmljb2RlX0dFVF9MRU5HVEgodG8pKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChob3dfbWFueSA9PSAwKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICh1bmljb2RlX2NoZWNrX21vZGlmaWFibGUodG8pKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBlcnIgPSBfY29weV9jaGFyYWN0ZXJzKHRvLCB0b19zdGFydCwgZnJvbSwgZnJvbV9zdGFydCwgaG93X21hbnksIDEpOworICAgIGlmIChlcnIpIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1N5c3RlbUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBjb3B5ICVzIGNoYXJhY3RlcnMgIgorICAgICAgICAgICAgICAgICAgICAgImludG8gYSBzdHJpbmcgb2YgJXMgY2hhcmFjdGVycyIsCisgICAgICAgICAgICAgICAgICAgICB1bmljb2RlX2tpbmRfbmFtZShmcm9tKSwKKyAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGVfa2luZF9uYW1lKHRvKSk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcmV0dXJuIGhvd19tYW55OworfQorCisvKiBGaW5kIHRoZSBtYXhpbXVtIGNvZGUgcG9pbnQgYW5kIGNvdW50IHRoZSBudW1iZXIgb2Ygc3Vycm9nYXRlIHBhaXJzIHNvIGEKKyAgIGNvcnJlY3Qgc3RyaW5nIGxlbmd0aCBjYW4gYmUgY29tcHV0ZWQgYmVmb3JlIGNvbnZlcnRpbmcgYSBzdHJpbmcgdG8gVUNTNC4KKyAgIFRoaXMgZnVuY3Rpb24gY291bnRzIHNpbmdsZSBzdXJyb2dhdGVzIGFzIGEgY2hhcmFjdGVyIGFuZCBub3QgYXMgYSBwYWlyLgorCisgICBSZXR1cm4gMCBvbiBzdWNjZXNzLCBvciAtMSBvbiBlcnJvci4gKi8KK3N0YXRpYyBpbnQKK2ZpbmRfbWF4Y2hhcl9zdXJyb2dhdGVzKGNvbnN0IHdjaGFyX3QgKmJlZ2luLCBjb25zdCB3Y2hhcl90ICplbmQsCisgICAgICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0ICptYXhjaGFyLCBQeV9zc2l6ZV90ICpudW1fc3Vycm9nYXRlcykKK3sKKyAgICBjb25zdCB3Y2hhcl90ICppdGVyOworICAgIFB5X1VDUzQgY2g7CisKKyAgICBhc3NlcnQobnVtX3N1cnJvZ2F0ZXMgIT0gTlVMTCAmJiBtYXhjaGFyICE9IE5VTEwpOworICAgICpudW1fc3Vycm9nYXRlcyA9IDA7CisgICAgKm1heGNoYXIgPSAwOworCisgICAgZm9yIChpdGVyID0gYmVnaW47IGl0ZXIgPCBlbmQ7ICkgeworI2lmIFNJWkVPRl9XQ0hBUl9UID09IDIKKyAgICAgICAgaWYgKFB5X1VOSUNPREVfSVNfSElHSF9TVVJST0dBVEUoaXRlclswXSkKKyAgICAgICAgICAgICYmIChpdGVyKzEpIDwgZW5kCisgICAgICAgICAgICAmJiBQeV9VTklDT0RFX0lTX0xPV19TVVJST0dBVEUoaXRlclsxXSkpCisgICAgICAgIHsKKyAgICAgICAgICAgIGNoID0gUHlfVU5JQ09ERV9KT0lOX1NVUlJPR0FURVMoaXRlclswXSwgaXRlclsxXSk7CisgICAgICAgICAgICArKygqbnVtX3N1cnJvZ2F0ZXMpOworICAgICAgICAgICAgaXRlciArPSAyOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyNlbmRpZgorICAgICAgICB7CisgICAgICAgICAgICBjaCA9ICppdGVyOworICAgICAgICAgICAgaXRlcisrOworICAgICAgICB9CisgICAgICAgIGlmIChjaCA+ICptYXhjaGFyKSB7CisgICAgICAgICAgICAqbWF4Y2hhciA9IGNoOworICAgICAgICAgICAgaWYgKCptYXhjaGFyID4gTUFYX1VOSUNPREUpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNoYXJhY3RlciBVKyV4IGlzIG5vdCBpbiByYW5nZSBbVSswMDAwOyBVKzEwZmZmZl0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCitpbnQKK19QeVVuaWNvZGVfUmVhZHkoUHlPYmplY3QgKnVuaWNvZGUpCit7CisgICAgd2NoYXJfdCAqZW5kOworICAgIFB5X1VDUzQgbWF4Y2hhciA9IDA7CisgICAgUHlfc3NpemVfdCBudW1fc3Vycm9nYXRlczsKKyNpZiBTSVpFT0ZfV0NIQVJfVCA9PSAyCisgICAgUHlfc3NpemVfdCBsZW5ndGhfd29fc3Vycm9nYXRlczsKKyNlbmRpZgorCisgICAgLyogX1B5VW5pY29kZV9SZWFkeSgpIGlzIG9ubHkgaW50ZW5kZWQgZm9yIG9sZC1zdHlsZSBBUEkgdXNhZ2Ugd2hlcmUKKyAgICAgICBzdHJpbmdzIHdlcmUgY3JlYXRlZCB1c2luZyBfUHlPYmplY3RfTmV3KCkgYW5kIHdoZXJlIG5vIGNhbm9uaWNhbAorICAgICAgIHJlcHJlc2VudGF0aW9uICh0aGUgc3RyIGZpZWxkKSBoYXMgYmVlbiBzZXQgeWV0IGFrYSBzdHJpbmdzCisgICAgICAgd2hpY2ggYXJlIG5vdCB5ZXQgcmVhZHkuICovCisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ0hFQ0sodW5pY29kZSkpOworICAgIGFzc2VydChfUHlVbmljb2RlX0tJTkQodW5pY29kZSkgPT0gUHlVbmljb2RlX1dDSEFSX0tJTkQpOworICAgIGFzc2VydChfUHlVbmljb2RlX1dTVFIodW5pY29kZSkgIT0gTlVMTCk7CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfREFUQV9BTlkodW5pY29kZSkgPT0gTlVMTCk7CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfVVRGOCh1bmljb2RlKSA9PSBOVUxMKTsKKyAgICAvKiBBY3R1YWxseSwgaXQgc2hvdWxkIG5laXRoZXIgYmUgaW50ZXJuZWQgbm9yIGJlIGFueXRoaW5nIGVsc2U6ICovCisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkuaW50ZXJuZWQgPT0gU1NUQVRFX05PVF9JTlRFUk5FRCk7CisKKyAgICBlbmQgPSBfUHlVbmljb2RlX1dTVFIodW5pY29kZSkgKyBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKHVuaWNvZGUpOworICAgIGlmIChmaW5kX21heGNoYXJfc3Vycm9nYXRlcyhfUHlVbmljb2RlX1dTVFIodW5pY29kZSksIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1heGNoYXIsICZudW1fc3Vycm9nYXRlcykgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlmIChtYXhjaGFyIDwgMjU2KSB7CisgICAgICAgIF9QeVVuaWNvZGVfREFUQV9BTlkodW5pY29kZSkgPSBQeU9iamVjdF9NQUxMT0MoX1B5VW5pY29kZV9XU1RSX0xFTkdUSCh1bmljb2RlKSArIDEpOworICAgICAgICBpZiAoIV9QeVVuaWNvZGVfREFUQV9BTlkodW5pY29kZSkpIHsKKyAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgX1B5VW5pY29kZV9DT05WRVJUX0JZVEVTKHdjaGFyX3QsIHVuc2lnbmVkIGNoYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSwgZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQSh1bmljb2RlKSk7CisgICAgICAgIFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpW19QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSldID0gJ1wwJzsKKyAgICAgICAgX1B5VW5pY29kZV9MRU5HVEgodW5pY29kZSkgPSBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKHVuaWNvZGUpOworICAgICAgICBfUHlVbmljb2RlX1NUQVRFKHVuaWNvZGUpLmtpbmQgPSBQeVVuaWNvZGVfMUJZVEVfS0lORDsKKyAgICAgICAgaWYgKG1heGNoYXIgPCAxMjgpIHsKKyAgICAgICAgICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkuYXNjaWkgPSAxOworICAgICAgICAgICAgX1B5VW5pY29kZV9VVEY4KHVuaWNvZGUpID0gX1B5VW5pY29kZV9EQVRBX0FOWSh1bmljb2RlKTsKKyAgICAgICAgICAgIF9QeVVuaWNvZGVfVVRGOF9MRU5HVEgodW5pY29kZSkgPSBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKHVuaWNvZGUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgX1B5VW5pY29kZV9TVEFURSh1bmljb2RlKS5hc2NpaSA9IDA7CisgICAgICAgICAgICBfUHlVbmljb2RlX1VURjgodW5pY29kZSkgPSBOVUxMOworICAgICAgICAgICAgX1B5VW5pY29kZV9VVEY4X0xFTkdUSCh1bmljb2RlKSA9IDA7CisgICAgICAgIH0KKyAgICAgICAgUHlPYmplY3RfRlJFRShfUHlVbmljb2RlX1dTVFIodW5pY29kZSkpOworICAgICAgICBfUHlVbmljb2RlX1dTVFIodW5pY29kZSkgPSBOVUxMOworICAgICAgICBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKHVuaWNvZGUpID0gMDsKKyAgICB9CisgICAgLyogSW4gdGhpcyBjYXNlIHdlIG1pZ2h0IGhhdmUgdG8gY29udmVydCBkb3duIGZyb20gNC1ieXRlIG5hdGl2ZQorICAgICAgIHdjaGFyX3QgdG8gMi1ieXRlIHVuaWNvZGUuICovCisgICAgZWxzZSBpZiAobWF4Y2hhciA8IDY1NTM2KSB7CisgICAgICAgIGFzc2VydChudW1fc3Vycm9nYXRlcyA9PSAwICYmCisgICAgICAgICAgICAgICAiRmluZE1heENoYXJBbmROdW1TdXJyb2dhdGVQYWlycygpIG1lc3NlZCB1cCIpOworCisjaWYgU0laRU9GX1dDSEFSX1QgPT0gMgorICAgICAgICAvKiBXZSBjYW4gc2hhcmUgcmVwcmVzZW50YXRpb25zIGFuZCBhcmUgZG9uZS4gKi8KKyAgICAgICAgX1B5VW5pY29kZV9EQVRBX0FOWSh1bmljb2RlKSA9IF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKTsKKyAgICAgICAgUHlVbmljb2RlXzJCWVRFX0RBVEEodW5pY29kZSlbX1B5VW5pY29kZV9XU1RSX0xFTkdUSCh1bmljb2RlKV0gPSAnXDAnOworICAgICAgICBfUHlVbmljb2RlX0xFTkdUSCh1bmljb2RlKSA9IF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSk7CisgICAgICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkua2luZCA9IFB5VW5pY29kZV8yQllURV9LSU5EOworICAgICAgICBfUHlVbmljb2RlX1VURjgodW5pY29kZSkgPSBOVUxMOworICAgICAgICBfUHlVbmljb2RlX1VURjhfTEVOR1RIKHVuaWNvZGUpID0gMDsKKyNlbHNlCisgICAgICAgIC8qIHNpemVvZih3Y2hhcl90KSA9PSA0ICovCisgICAgICAgIF9QeVVuaWNvZGVfREFUQV9BTlkodW5pY29kZSkgPSBQeU9iamVjdF9NQUxMT0MoCisgICAgICAgICAgICAyICogKF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSkgKyAxKSk7CisgICAgICAgIGlmICghX1B5VW5pY29kZV9EQVRBX0FOWSh1bmljb2RlKSkgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBfUHlVbmljb2RlX0NPTlZFUlRfQllURVMod2NoYXJfdCwgUHlfVUNTMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpLCBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8yQllURV9EQVRBKHVuaWNvZGUpKTsKKyAgICAgICAgUHlVbmljb2RlXzJCWVRFX0RBVEEodW5pY29kZSlbX1B5VW5pY29kZV9XU1RSX0xFTkdUSCh1bmljb2RlKV0gPSAnXDAnOworICAgICAgICBfUHlVbmljb2RlX0xFTkdUSCh1bmljb2RlKSA9IF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSk7CisgICAgICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkua2luZCA9IFB5VW5pY29kZV8yQllURV9LSU5EOworICAgICAgICBfUHlVbmljb2RlX1VURjgodW5pY29kZSkgPSBOVUxMOworICAgICAgICBfUHlVbmljb2RlX1VURjhfTEVOR1RIKHVuaWNvZGUpID0gMDsKKyAgICAgICAgUHlPYmplY3RfRlJFRShfUHlVbmljb2RlX1dTVFIodW5pY29kZSkpOworICAgICAgICBfUHlVbmljb2RlX1dTVFIodW5pY29kZSkgPSBOVUxMOworICAgICAgICBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKHVuaWNvZGUpID0gMDsKKyNlbmRpZgorICAgIH0KKyAgICAvKiBtYXhjaGFyIGV4ZWVkcyAxNiBiaXQsIHdlZSBuZWVkIDQgYnl0ZXMgZm9yIHVuaWNvZGUgY2hhcmFjdGVycyAqLworICAgIGVsc2UgeworI2lmIFNJWkVPRl9XQ0hBUl9UID09IDIKKyAgICAgICAgLyogaW4gY2FzZSB0aGUgbmF0aXZlIHJlcHJlc2VudGF0aW9uIGlzIDItYnl0ZXMsIHdlIG5lZWQgdG8gYWxsb2NhdGUgYQorICAgICAgICAgICBuZXcgbm9ybWFsaXplZCA0LWJ5dGUgdmVyc2lvbi4gKi8KKyAgICAgICAgbGVuZ3RoX3dvX3N1cnJvZ2F0ZXMgPSBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKHVuaWNvZGUpIC0gbnVtX3N1cnJvZ2F0ZXM7CisgICAgICAgIF9QeVVuaWNvZGVfREFUQV9BTlkodW5pY29kZSkgPSBQeU9iamVjdF9NQUxMT0MoNCAqIChsZW5ndGhfd29fc3Vycm9nYXRlcyArIDEpKTsKKyAgICAgICAgaWYgKCFfUHlVbmljb2RlX0RBVEFfQU5ZKHVuaWNvZGUpKSB7CisgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIF9QeVVuaWNvZGVfTEVOR1RIKHVuaWNvZGUpID0gbGVuZ3RoX3dvX3N1cnJvZ2F0ZXM7CisgICAgICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkua2luZCA9IFB5VW5pY29kZV80QllURV9LSU5EOworICAgICAgICBfUHlVbmljb2RlX1VURjgodW5pY29kZSkgPSBOVUxMOworICAgICAgICBfUHlVbmljb2RlX1VURjhfTEVOR1RIKHVuaWNvZGUpID0gMDsKKyAgICAgICAgLyogdW5pY29kZV9jb252ZXJ0X3djaGFyX3RvX3VjczQoKSByZXF1aXJlcyBhIHJlYWR5IHN0cmluZyAqLworICAgICAgICBfUHlVbmljb2RlX1NUQVRFKHVuaWNvZGUpLnJlYWR5ID0gMTsKKyAgICAgICAgdW5pY29kZV9jb252ZXJ0X3djaGFyX3RvX3VjczQoX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpLCBlbmQsIHVuaWNvZGUpOworICAgICAgICBQeU9iamVjdF9GUkVFKF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSk7CisgICAgICAgIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSA9IE5VTEw7CisgICAgICAgIF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSkgPSAwOworI2Vsc2UKKyAgICAgICAgYXNzZXJ0KG51bV9zdXJyb2dhdGVzID09IDApOworCisgICAgICAgIF9QeVVuaWNvZGVfREFUQV9BTlkodW5pY29kZSkgPSBfUHlVbmljb2RlX1dTVFIodW5pY29kZSk7CisgICAgICAgIF9QeVVuaWNvZGVfTEVOR1RIKHVuaWNvZGUpID0gX1B5VW5pY29kZV9XU1RSX0xFTkdUSCh1bmljb2RlKTsKKyAgICAgICAgX1B5VW5pY29kZV9VVEY4KHVuaWNvZGUpID0gTlVMTDsKKyAgICAgICAgX1B5VW5pY29kZV9VVEY4X0xFTkdUSCh1bmljb2RlKSA9IDA7CisgICAgICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkua2luZCA9IFB5VW5pY29kZV80QllURV9LSU5EOworI2VuZGlmCisgICAgICAgIFB5VW5pY29kZV80QllURV9EQVRBKHVuaWNvZGUpW19QeVVuaWNvZGVfTEVOR1RIKHVuaWNvZGUpXSA9ICdcMCc7CisgICAgfQorICAgIF9QeVVuaWNvZGVfU1RBVEUodW5pY29kZSkucmVhZHkgPSAxOworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodW5pY29kZSwgMSkpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAordW5pY29kZV9kZWFsbG9jKHJlZ2lzdGVyIFB5T2JqZWN0ICp1bmljb2RlKQogewogICAgIHN3aXRjaCAoUHlVbmljb2RlX0NIRUNLX0lOVEVSTkVEKHVuaWNvZGUpKSB7CiAgICAgY2FzZSBTU1RBVEVfTk9UX0lOVEVSTkVEOgpAQCAtMzkzLDcgKzE1MDMsNyBAQAogICAgIGNhc2UgU1NUQVRFX0lOVEVSTkVEX01PUlRBTDoKICAgICAgICAgLyogcmV2aXZlIGRlYWQgb2JqZWN0IHRlbXBvcmFyaWx5IGZvciBEZWxJdGVtICovCiAgICAgICAgIFB5X1JFRkNOVCh1bmljb2RlKSA9IDM7Ci0gICAgICAgIGlmIChQeURpY3RfRGVsSXRlbShpbnRlcm5lZCwgKFB5T2JqZWN0ICopdW5pY29kZSkgIT0gMCkKKyAgICAgICAgaWYgKFB5RGljdF9EZWxJdGVtKGludGVybmVkLCB1bmljb2RlKSAhPSAwKQogICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigKICAgICAgICAgICAgICAgICAiZGVsZXRpb24gb2YgaW50ZXJuZWQgc3RyaW5nIGZhaWxlZCIpOwogICAgICAgICBicmVhazsKQEAgLTQwNSwyNDAgKzE1MTUsNzQxIEBACiAgICAgICAgIFB5X0ZhdGFsRXJyb3IoIkluY29uc2lzdGVudCBpbnRlcm5lZCBzdHJpbmcgc3RhdGUuIik7CiAgICAgfQogCi0gICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KHVuaWNvZGUpICYmCi0gICAgICAgIG51bWZyZWUgPCBQeVVuaWNvZGVfTUFYRlJFRUxJU1QpIHsKLSAgICAgICAgLyogS2VlcC1BbGl2ZSBvcHRpbWl6YXRpb24gKi8KLSAgICAgICAgaWYgKHVuaWNvZGUtPmxlbmd0aCA+PSBLRUVQQUxJVkVfU0laRV9MSU1JVCkgewotICAgICAgICAgICAgUHlPYmplY3RfREVMKHVuaWNvZGUtPnN0cik7Ci0gICAgICAgICAgICB1bmljb2RlLT5zdHIgPSBOVUxMOwotICAgICAgICAgICAgdW5pY29kZS0+bGVuZ3RoID0gMDsKLSAgICAgICAgfQotICAgICAgICBpZiAodW5pY29kZS0+ZGVmZW5jKSB7Ci0gICAgICAgICAgICBQeV9DTEVBUih1bmljb2RlLT5kZWZlbmMpOwotICAgICAgICB9Ci0gICAgICAgIC8qIEFkZCB0byBmcmVlIGxpc3QgKi8KLSAgICAgICAgKihQeVVuaWNvZGVPYmplY3QgKiopdW5pY29kZSA9IGZyZWVfbGlzdDsKLSAgICAgICAgZnJlZV9saXN0ID0gdW5pY29kZTsKLSAgICAgICAgbnVtZnJlZSsrOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgUHlPYmplY3RfREVMKHVuaWNvZGUtPnN0cik7Ci0gICAgICAgIFB5X1hERUNSRUYodW5pY29kZS0+ZGVmZW5jKTsKLSAgICAgICAgUHlfVFlQRSh1bmljb2RlKS0+dHBfZnJlZSgoUHlPYmplY3QgKil1bmljb2RlKTsKLSAgICB9CisgICAgaWYgKF9QeVVuaWNvZGVfSEFTX1dTVFJfTUVNT1JZKHVuaWNvZGUpKQorICAgICAgICBQeU9iamVjdF9ERUwoX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpKTsKKyAgICBpZiAoX1B5VW5pY29kZV9IQVNfVVRGOF9NRU1PUlkodW5pY29kZSkpCisgICAgICAgIFB5T2JqZWN0X0RFTChfUHlVbmljb2RlX1VURjgodW5pY29kZSkpOworICAgIGlmICghUHlVbmljb2RlX0lTX0NPTVBBQ1QodW5pY29kZSkgJiYgX1B5VW5pY29kZV9EQVRBX0FOWSh1bmljb2RlKSkKKyAgICAgICAgUHlPYmplY3RfREVMKF9QeVVuaWNvZGVfREFUQV9BTlkodW5pY29kZSkpOworCisgICAgUHlfVFlQRSh1bmljb2RlKS0+dHBfZnJlZSh1bmljb2RlKTsKIH0KIAotc3RhdGljCi1pbnQgX1B5VW5pY29kZV9SZXNpemUoUHlVbmljb2RlT2JqZWN0ICoqdW5pY29kZSwgUHlfc3NpemVfdCBsZW5ndGgpCisjaWZkZWYgUHlfREVCVUcKK3N0YXRpYyBpbnQKK3VuaWNvZGVfaXNfc2luZ2xldG9uKFB5T2JqZWN0ICp1bmljb2RlKQogewotICAgIHJlZ2lzdGVyIFB5VW5pY29kZU9iamVjdCAqdjsKLQotICAgIC8qIEFyZ3VtZW50IGNoZWNrcyAqLwotICAgIGlmICh1bmljb2RlID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7Ci0gICAgICAgIHJldHVybiAtMTsKKyAgICBQeUFTQ0lJT2JqZWN0ICphc2NpaSA9IChQeUFTQ0lJT2JqZWN0ICopdW5pY29kZTsKKyAgICBpZiAodW5pY29kZSA9PSB1bmljb2RlX2VtcHR5KQorICAgICAgICByZXR1cm4gMTsKKyAgICBpZiAoYXNjaWktPnN0YXRlLmtpbmQgIT0gUHlVbmljb2RlX1dDSEFSX0tJTkQgJiYgYXNjaWktPmxlbmd0aCA9PSAxKQorICAgIHsKKyAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEX0NIQVIodW5pY29kZSwgMCk7CisgICAgICAgIGlmIChjaCA8IDI1NiAmJiB1bmljb2RlX2xhdGluMVtjaF0gPT0gdW5pY29kZSkKKyAgICAgICAgICAgIHJldHVybiAxOwogICAgIH0KLSAgICB2ID0gKnVuaWNvZGU7Ci0gICAgaWYgKHYgPT0gTlVMTCB8fCAhUHlVbmljb2RlX0NoZWNrKHYpIHx8IFB5X1JFRkNOVCh2KSAhPSAxIHx8IGxlbmd0aCA8IDApIHsKLSAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9CisgICAgcmV0dXJuIDA7Cit9CisjZW5kaWYKIAotICAgIC8qIFJlc2l6aW5nIHVuaWNvZGVfZW1wdHkgYW5kIHNpbmdsZSBjaGFyYWN0ZXIgb2JqZWN0cyBpcyBub3QKLSAgICAgICBwb3NzaWJsZSBzaW5jZSB0aGVzZSBhcmUgYmVpbmcgc2hhcmVkLiBXZSBzaW1wbHkgcmV0dXJuIGEgZnJlc2gKLSAgICAgICBjb3B5IHdpdGggdGhlIHNhbWUgVW5pY29kZSBjb250ZW50LiAqLwotICAgIGlmICh2LT5sZW5ndGggIT0gbGVuZ3RoICYmCi0gICAgICAgICh2ID09IHVuaWNvZGVfZW1wdHkgfHwgdi0+bGVuZ3RoID09IDEpKSB7Ci0gICAgICAgIFB5VW5pY29kZU9iamVjdCAqdyA9IF9QeVVuaWNvZGVfTmV3KGxlbmd0aCk7Ci0gICAgICAgIGlmICh3ID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIFB5X1VOSUNPREVfQ09QWSh3LT5zdHIsIHYtPnN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCA8IHYtPmxlbmd0aCA/IGxlbmd0aCA6IHYtPmxlbmd0aCk7Ci0gICAgICAgIFB5X0RFQ1JFRigqdW5pY29kZSk7Ci0gICAgICAgICp1bmljb2RlID0gdzsKK3N0YXRpYyBpbnQKK3VuaWNvZGVfbW9kaWZpYWJsZShQeU9iamVjdCAqdW5pY29kZSkKK3sKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyh1bmljb2RlKSk7CisgICAgaWYgKFB5X1JFRkNOVCh1bmljb2RlKSAhPSAxKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoX1B5VW5pY29kZV9IQVNIKHVuaWNvZGUpICE9IC0xKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoUHlVbmljb2RlX0NIRUNLX0lOVEVSTkVEKHVuaWNvZGUpKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVja0V4YWN0KHVuaWNvZGUpKQorICAgICAgICByZXR1cm4gMDsKKyNpZmRlZiBQeV9ERUJVRworICAgIC8qIHNpbmdsZXRvbiByZWZjb3VudCBpcyBncmVhdGVyIHRoYW4gMSAqLworICAgIGFzc2VydCghdW5pY29kZV9pc19zaW5nbGV0b24odW5pY29kZSkpOworI2VuZGlmCisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK3VuaWNvZGVfcmVzaXplKFB5T2JqZWN0ICoqcF91bmljb2RlLCBQeV9zc2l6ZV90IGxlbmd0aCkKK3sKKyAgICBQeU9iamVjdCAqdW5pY29kZTsKKyAgICBQeV9zc2l6ZV90IG9sZF9sZW5ndGg7CisKKyAgICBhc3NlcnQocF91bmljb2RlICE9IE5VTEwpOworICAgIHVuaWNvZGUgPSAqcF91bmljb2RlOworCisgICAgYXNzZXJ0KHVuaWNvZGUgIT0gTlVMTCk7CisgICAgYXNzZXJ0KFB5VW5pY29kZV9DaGVjayh1bmljb2RlKSk7CisgICAgYXNzZXJ0KDAgPD0gbGVuZ3RoKTsKKworICAgIGlmIChfUHlVbmljb2RlX0tJTkQodW5pY29kZSkgPT0gUHlVbmljb2RlX1dDSEFSX0tJTkQpCisgICAgICAgIG9sZF9sZW5ndGggPSBQeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSk7CisgICAgZWxzZQorICAgICAgICBvbGRfbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSk7CisgICAgaWYgKG9sZF9sZW5ndGggPT0gbGVuZ3RoKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChsZW5ndGggPT0gMCkgeworICAgICAgICBQeV9ERUNSRUYoKnBfdW5pY29kZSk7CisgICAgICAgICpwX3VuaWNvZGUgPSB1bmljb2RlX2VtcHR5OworICAgICAgICBQeV9JTkNSRUYoKnBfdW5pY29kZSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIC8qIE5vdGUgdGhhdCB3ZSBkb24ndCBoYXZlIHRvIG1vZGlmeSAqdW5pY29kZSBmb3IgdW5zaGFyZWQgVW5pY29kZQotICAgICAgIG9iamVjdHMsIHNpbmNlIHdlIGNhbiBtb2RpZnkgdGhlbSBpbi1wbGFjZS4gKi8KLSAgICByZXR1cm4gdW5pY29kZV9yZXNpemUodiwgbGVuZ3RoKTsKKyAgICBpZiAoIXVuaWNvZGVfbW9kaWZpYWJsZSh1bmljb2RlKSkgeworICAgICAgICBQeU9iamVjdCAqY29weSA9IHJlc2l6ZV9jb3B5KHVuaWNvZGUsIGxlbmd0aCk7CisgICAgICAgIGlmIChjb3B5ID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIFB5X0RFQ1JFRigqcF91bmljb2RlKTsKKyAgICAgICAgKnBfdW5pY29kZSA9IGNvcHk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmIChQeVVuaWNvZGVfSVNfQ09NUEFDVCh1bmljb2RlKSkgeworICAgICAgICBQeU9iamVjdCAqbmV3X3VuaWNvZGUgPSByZXNpemVfY29tcGFjdCh1bmljb2RlLCBsZW5ndGgpOworICAgICAgICBpZiAobmV3X3VuaWNvZGUgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgKnBfdW5pY29kZSA9IG5ld191bmljb2RlOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIHJlc2l6ZV9pbnBsYWNlKHVuaWNvZGUsIGxlbmd0aCk7CiB9CiAKLWludCBQeVVuaWNvZGVfUmVzaXplKFB5T2JqZWN0ICoqdW5pY29kZSwgUHlfc3NpemVfdCBsZW5ndGgpCitpbnQKK1B5VW5pY29kZV9SZXNpemUoUHlPYmplY3QgKipwX3VuaWNvZGUsIFB5X3NzaXplX3QgbGVuZ3RoKQogewotICAgIHJldHVybiBfUHlVbmljb2RlX1Jlc2l6ZSgoUHlVbmljb2RlT2JqZWN0ICoqKXVuaWNvZGUsIGxlbmd0aCk7CisgICAgUHlPYmplY3QgKnVuaWNvZGU7CisgICAgaWYgKHBfdW5pY29kZSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHVuaWNvZGUgPSAqcF91bmljb2RlOworICAgIGlmICh1bmljb2RlID09IE5VTEwgfHwgIVB5VW5pY29kZV9DaGVjayh1bmljb2RlKSB8fCBsZW5ndGggPCAwKQorICAgIHsKKyAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcmV0dXJuIHVuaWNvZGVfcmVzaXplKHBfdW5pY29kZSwgbGVuZ3RoKTsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9Gcm9tVW5pY29kZShjb25zdCBQeV9VTklDT0RFICp1LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUpCitzdGF0aWMgaW50Cit1bmljb2RlX3dpZGVuKFB5T2JqZWN0ICoqcF91bmljb2RlLCBQeV9zc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1heGNoYXIpCiB7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICp1bmljb2RlOworICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgYXNzZXJ0KFB5VW5pY29kZV9JU19SRUFEWSgqcF91bmljb2RlKSk7CisgICAgYXNzZXJ0KGxlbmd0aCA8PSBQeVVuaWNvZGVfR0VUX0xFTkdUSCgqcF91bmljb2RlKSk7CisgICAgaWYgKG1heGNoYXIgPD0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKCpwX3VuaWNvZGUpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXN1bHQgPSBQeVVuaWNvZGVfTmV3KFB5VW5pY29kZV9HRVRfTEVOR1RIKCpwX3VuaWNvZGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Y2hhcik7CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMocmVzdWx0LCAwLCAqcF91bmljb2RlLCAwLCBsZW5ndGgpOworICAgIFB5X0RFQ1JFRigqcF91bmljb2RlKTsKKyAgICAqcF91bmljb2RlID0gcmVzdWx0OworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit1bmljb2RlX3B1dGNoYXIoUHlPYmplY3QgKipwX3VuaWNvZGUsIFB5X3NzaXplX3QgKnBvcywKKyAgICAgICAgICAgICAgICBQeV9VQ1M0IGNoKQoreworICAgIGFzc2VydChjaCA8PSBNQVhfVU5JQ09ERSk7CisgICAgaWYgKHVuaWNvZGVfd2lkZW4ocF91bmljb2RlLCAqcG9zLCBjaCkgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisgICAgUHlVbmljb2RlX1dSSVRFKFB5VW5pY29kZV9LSU5EKCpwX3VuaWNvZGUpLAorICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfREFUQSgqcF91bmljb2RlKSwKKyAgICAgICAgICAgICAgICAgICAgKCpwb3MpKyssIGNoKTsKKyAgICByZXR1cm4gMDsKK30KKworLyogQ29weSBhIEFTQ0lJIG9yIGxhdGluMSBjaGFyKiBzdHJpbmcgaW50byBhIFB5dGhvbiBVbmljb2RlIHN0cmluZy4KKworICAgV0FSTklORzogVGhlIGZ1bmN0aW9uIGRvZXNuJ3QgY29weSB0aGUgdGVybWluYXRpbmcgbnVsbCBjaGFyYWN0ZXIgYW5kCisgICBkb2Vzbid0IGNoZWNrIHRoZSBtYXhpbXVtIGNoYXJhY3RlciAobWF5IHdyaXRlIGEgbGF0aW4xIGNoYXJhY3RlciBpbiBhbgorICAgQVNDSUkgc3RyaW5nKS4gKi8KK3N0YXRpYyB2b2lkCit1bmljb2RlX3dyaXRlX2NzdHIoUHlPYmplY3QgKnVuaWNvZGUsIFB5X3NzaXplX3QgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqc3RyLCBQeV9zc2l6ZV90IGxlbikKK3sKKyAgICBlbnVtIFB5VW5pY29kZV9LaW5kIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh1bmljb2RlKTsKKyAgICB2b2lkICpkYXRhID0gUHlVbmljb2RlX0RBVEEodW5pY29kZSk7CisgICAgY29uc3QgY2hhciAqZW5kID0gc3RyICsgbGVuOworCisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDogeworICAgICAgICBhc3NlcnQoaW5kZXggKyBsZW4gPD0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSkpOworICAgICAgICBtZW1jcHkoKGNoYXIgKikgZGF0YSArIGluZGV4LCBzdHIsIGxlbik7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOiB7CisgICAgICAgIFB5X1VDUzIgKnN0YXJ0ID0gKFB5X1VDUzIgKilkYXRhICsgaW5kZXg7CisgICAgICAgIFB5X1VDUzIgKnVjczIgPSBzdGFydDsKKyAgICAgICAgYXNzZXJ0KGluZGV4IDw9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpKTsKKworICAgICAgICBmb3IgKDsgc3RyIDwgZW5kOyArK3VjczIsICsrc3RyKQorICAgICAgICAgICAgKnVjczIgPSAoUHlfVUNTMikqc3RyOworCisgICAgICAgIGFzc2VydCgodWNzMiAtIHN0YXJ0KSA8PSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmljb2RlKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OiB7CisgICAgICAgIFB5X1VDUzQgKnN0YXJ0ID0gKFB5X1VDUzQgKilkYXRhICsgaW5kZXg7CisgICAgICAgIFB5X1VDUzQgKnVjczQgPSBzdGFydDsKKyAgICAgICAgYXNzZXJ0KGtpbmQgPT0gUHlVbmljb2RlXzRCWVRFX0tJTkQpOworICAgICAgICBhc3NlcnQoaW5kZXggPD0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSkpOworCisgICAgICAgIGZvciAoOyBzdHIgPCBlbmQ7ICsrdWNzNCwgKytzdHIpCisgICAgICAgICAgICAqdWNzNCA9IChQeV9VQ1M0KSpzdHI7CisKKyAgICAgICAgYXNzZXJ0KCh1Y3M0IC0gc3RhcnQpIDw9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpKTsKKyAgICB9CisgICAgfQorfQorCisKK3N0YXRpYyBQeU9iamVjdCoKK2dldF9sYXRpbjFfY2hhcih1bnNpZ25lZCBjaGFyIGNoKQoreworICAgIFB5T2JqZWN0ICp1bmljb2RlID0gdW5pY29kZV9sYXRpbjFbY2hdOworICAgIGlmICghdW5pY29kZSkgeworICAgICAgICB1bmljb2RlID0gUHlVbmljb2RlX05ldygxLCBjaCk7CisgICAgICAgIGlmICghdW5pY29kZSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQSh1bmljb2RlKVswXSA9IGNoOworICAgICAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHVuaWNvZGUsIDEpKTsKKyAgICAgICAgdW5pY29kZV9sYXRpbjFbY2hdID0gdW5pY29kZTsKKyAgICB9CisgICAgUHlfSU5DUkVGKHVuaWNvZGUpOworICAgIHJldHVybiB1bmljb2RlOworfQorCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRnJvbVVuaWNvZGUoY29uc3QgUHlfVU5JQ09ERSAqdSwgUHlfc3NpemVfdCBzaXplKQoreworICAgIFB5T2JqZWN0ICp1bmljb2RlOworICAgIFB5X1VDUzQgbWF4Y2hhciA9IDA7CisgICAgUHlfc3NpemVfdCBudW1fc3Vycm9nYXRlczsKKworICAgIGlmICh1ID09IE5VTEwpCisgICAgICAgIHJldHVybiAoUHlPYmplY3QqKV9QeVVuaWNvZGVfTmV3KHNpemUpOwogCiAgICAgLyogSWYgdGhlIFVuaWNvZGUgZGF0YSBpcyBrbm93biBhdCBjb25zdHJ1Y3Rpb24gdGltZSwgd2UgY2FuIGFwcGx5CiAgICAgICAgc29tZSBvcHRpbWl6YXRpb25zIHdoaWNoIHNoYXJlIGNvbW1vbmx5IHVzZWQgb2JqZWN0cy4gKi8KLSAgICBpZiAodSAhPSBOVUxMKSB7CiAKLSAgICAgICAgLyogT3B0aW1pemF0aW9uIGZvciBlbXB0eSBzdHJpbmdzICovCi0gICAgICAgIGlmIChzaXplID09IDAgJiYgdW5pY29kZV9lbXB0eSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBQeV9JTkNSRUYodW5pY29kZV9lbXB0eSk7Ci0gICAgICAgICAgICByZXR1cm4gKFB5T2JqZWN0ICopdW5pY29kZV9lbXB0eTsKLSAgICAgICAgfQotCi0gICAgICAgIC8qIFNpbmdsZSBjaGFyYWN0ZXIgVW5pY29kZSBvYmplY3RzIGluIHRoZSBMYXRpbi0xIHJhbmdlIGFyZQotICAgICAgICAgICBzaGFyZWQgd2hlbiB1c2luZyB0aGlzIGNvbnN0cnVjdG9yICovCi0gICAgICAgIGlmIChzaXplID09IDEgJiYgKnUgPCAyNTYpIHsKLSAgICAgICAgICAgIHVuaWNvZGUgPSB1bmljb2RlX2xhdGluMVsqdV07Ci0gICAgICAgICAgICBpZiAoIXVuaWNvZGUpIHsKLSAgICAgICAgICAgICAgICB1bmljb2RlID0gX1B5VW5pY29kZV9OZXcoMSk7Ci0gICAgICAgICAgICAgICAgaWYgKCF1bmljb2RlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgICAgICB1bmljb2RlLT5zdHJbMF0gPSAqdTsKLSAgICAgICAgICAgICAgICB1bmljb2RlX2xhdGluMVsqdV0gPSB1bmljb2RlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGUpOwotICAgICAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXVuaWNvZGU7Ci0gICAgICAgIH0KKyAgICAvKiBPcHRpbWl6YXRpb24gZm9yIGVtcHR5IHN0cmluZ3MgKi8KKyAgICBpZiAoc2l6ZSA9PSAwICYmIHVuaWNvZGVfZW1wdHkgIT0gTlVMTCkgeworICAgICAgICBQeV9JTkNSRUYodW5pY29kZV9lbXB0eSk7CisgICAgICAgIHJldHVybiB1bmljb2RlX2VtcHR5OwogICAgIH0KIAotICAgIHVuaWNvZGUgPSBfUHlVbmljb2RlX05ldyhzaXplKTsKKyAgICAvKiBTaW5nbGUgY2hhcmFjdGVyIFVuaWNvZGUgb2JqZWN0cyBpbiB0aGUgTGF0aW4tMSByYW5nZSBhcmUKKyAgICAgICBzaGFyZWQgd2hlbiB1c2luZyB0aGlzIGNvbnN0cnVjdG9yICovCisgICAgaWYgKHNpemUgPT0gMSAmJiAqdSA8IDI1NikKKyAgICAgICAgcmV0dXJuIGdldF9sYXRpbjFfY2hhcigodW5zaWduZWQgY2hhcikqdSk7CisKKyAgICAvKiBJZiBub3QgZW1wdHkgYW5kIG5vdCBzaW5nbGUgY2hhcmFjdGVyLCBjb3B5IHRoZSBVbmljb2RlIGRhdGEKKyAgICAgICBpbnRvIHRoZSBuZXcgb2JqZWN0ICovCisgICAgaWYgKGZpbmRfbWF4Y2hhcl9zdXJyb2dhdGVzKHUsIHUgKyBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbWF4Y2hhciwgJm51bV9zdXJyb2dhdGVzKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICB1bmljb2RlID0gUHlVbmljb2RlX05ldyhzaXplIC0gbnVtX3N1cnJvZ2F0ZXMsIG1heGNoYXIpOwogICAgIGlmICghdW5pY29kZSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICAvKiBDb3B5IHRoZSBVbmljb2RlIGRhdGEgaW50byB0aGUgbmV3IG9iamVjdCAqLwotICAgIGlmICh1ICE9IE5VTEwpCi0gICAgICAgIFB5X1VOSUNPREVfQ09QWSh1bmljb2RlLT5zdHIsIHUsIHNpemUpOworICAgIHN3aXRjaCAoUHlVbmljb2RlX0tJTkQodW5pY29kZSkpIHsKKyAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOgorICAgICAgICBfUHlVbmljb2RlX0NPTlZFUlRfQllURVMoUHlfVU5JQ09ERSwgdW5zaWduZWQgY2hhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSwgdSArIHNpemUsIFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQeVVuaWNvZGVfMkJZVEVfS0lORDoKKyNpZiBQeV9VTklDT0RFX1NJWkUgPT0gMgorICAgICAgICBQeV9NRU1DUFkoUHlVbmljb2RlXzJCWVRFX0RBVEEodW5pY29kZSksIHUsIHNpemUgKiAyKTsKKyNlbHNlCisgICAgICAgIF9QeVVuaWNvZGVfQ09OVkVSVF9CWVRFUyhQeV9VTklDT0RFLCBQeV9VQ1MyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1LCB1ICsgc2l6ZSwgUHlVbmljb2RlXzJCWVRFX0RBVEEodW5pY29kZSkpOworI2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisjaWYgU0laRU9GX1dDSEFSX1QgPT0gMgorICAgICAgICAvKiBUaGlzIGlzIHRoZSBvbmx5IGNhc2Ugd2hpY2ggaGFzIHRvIHByb2Nlc3Mgc3Vycm9nYXRlcywgdGh1cworICAgICAgICAgICBhIHNpbXBsZSBjb3B5IGxvb3AgaXMgbm90IGVub3VnaCBhbmQgd2UgbmVlZCBhIGZ1bmN0aW9uLiAqLworICAgICAgICB1bmljb2RlX2NvbnZlcnRfd2NoYXJfdG9fdWNzNCh1LCB1ICsgc2l6ZSwgdW5pY29kZSk7CisjZWxzZQorICAgICAgICBhc3NlcnQobnVtX3N1cnJvZ2F0ZXMgPT0gMCk7CisgICAgICAgIFB5X01FTUNQWShQeVVuaWNvZGVfNEJZVEVfREFUQSh1bmljb2RlKSwgdSwgc2l6ZSAqIDQpOworI2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGFzc2VydCgwICYmICJJbXBvc3NpYmxlIHN0YXRlIik7CisgICAgfQogCi0gICAgcmV0dXJuIChQeU9iamVjdCAqKXVuaWNvZGU7CisgICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0KHVuaWNvZGUpOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKGNvbnN0IGNoYXIgKnUsIFB5X3NzaXplX3Qgc2l6ZSkKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZShjb25zdCBjaGFyICp1LCBQeV9zc2l6ZV90IHNpemUpCiB7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICp1bmljb2RlOwotCiAgICAgaWYgKHNpemUgPCAwKSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19TeXN0ZW1FcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJOZWdhdGl2ZSBzaXplIHBhc3NlZCB0byBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUiKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotCi0gICAgLyogSWYgdGhlIFVuaWNvZGUgZGF0YSBpcyBrbm93biBhdCBjb25zdHJ1Y3Rpb24gdGltZSwgd2UgY2FuIGFwcGx5Ci0gICAgICAgc29tZSBvcHRpbWl6YXRpb25zIHdoaWNoIHNoYXJlIGNvbW1vbmx5IHVzZWQgb2JqZWN0cy4KLSAgICAgICBBbHNvLCB0aGlzIG1lYW5zIHRoZSBpbnB1dCBtdXN0IGJlIFVURi04LCBzbyBmYWxsIGJhY2sgdG8gdGhlCi0gICAgICAgVVRGLTggZGVjb2RlciBhdCB0aGUgZW5kLiAqLwotICAgIGlmICh1ICE9IE5VTEwpIHsKLQotICAgICAgICAvKiBPcHRpbWl6YXRpb24gZm9yIGVtcHR5IHN0cmluZ3MgKi8KLSAgICAgICAgaWYgKHNpemUgPT0gMCAmJiB1bmljb2RlX2VtcHR5ICE9IE5VTEwpIHsKLSAgICAgICAgICAgIFB5X0lOQ1JFRih1bmljb2RlX2VtcHR5KTsKLSAgICAgICAgICAgIHJldHVybiAoUHlPYmplY3QgKil1bmljb2RlX2VtcHR5OwotICAgICAgICB9Ci0KLSAgICAgICAgLyogU2luZ2xlIGNoYXJhY3RlcnMgYXJlIHNoYXJlZCB3aGVuIHVzaW5nIHRoaXMgY29uc3RydWN0b3IuCi0gICAgICAgICAgIFJlc3RyaWN0IHRvIEFTQ0lJLCBzaW5jZSB0aGUgaW5wdXQgbXVzdCBiZSBVVEYtOC4gKi8KLSAgICAgICAgaWYgKHNpemUgPT0gMSAmJiBQeV9DSEFSTUFTSygqdSkgPCAxMjgpIHsKLSAgICAgICAgICAgIHVuaWNvZGUgPSB1bmljb2RlX2xhdGluMVtQeV9DSEFSTUFTSygqdSldOwotICAgICAgICAgICAgaWYgKCF1bmljb2RlKSB7Ci0gICAgICAgICAgICAgICAgdW5pY29kZSA9IF9QeVVuaWNvZGVfTmV3KDEpOwotICAgICAgICAgICAgICAgIGlmICghdW5pY29kZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgdW5pY29kZS0+c3RyWzBdID0gUHlfQ0hBUk1BU0soKnUpOwotICAgICAgICAgICAgICAgIHVuaWNvZGVfbGF0aW4xW1B5X0NIQVJNQVNLKCp1KV0gPSB1bmljb2RlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGUpOwotICAgICAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXVuaWNvZGU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gUHlVbmljb2RlX0RlY29kZVVURjgodSwgc2l6ZSwgTlVMTCk7Ci0gICAgfQotCi0gICAgdW5pY29kZSA9IF9QeVVuaWNvZGVfTmV3KHNpemUpOwotICAgIGlmICghdW5pY29kZSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICByZXR1cm4gKFB5T2JqZWN0ICopdW5pY29kZTsKKyAgICBpZiAodSAhPSBOVUxMKQorICAgICAgICByZXR1cm4gUHlVbmljb2RlX0RlY29kZVVURjhTdGF0ZWZ1bCh1LCBzaXplLCBOVUxMLCBOVUxMKTsKKyAgICBlbHNlCisgICAgICAgIHJldHVybiAoUHlPYmplY3QgKilfUHlVbmljb2RlX05ldyhzaXplKTsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9Gcm9tU3RyaW5nKGNvbnN0IGNoYXIgKnUpCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRnJvbVN0cmluZyhjb25zdCBjaGFyICp1KQogewogICAgIHNpemVfdCBzaXplID0gc3RybGVuKHUpOwogICAgIGlmIChzaXplID4gUFlfU1NJWkVfVF9NQVgpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsICJpbnB1dCB0b28gbG9uZyIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CisgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVVVEY4U3RhdGVmdWwodSwgKFB5X3NzaXplX3Qpc2l6ZSwgTlVMTCwgTlVMTCk7Cit9CiAKLSAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKHUsIHNpemUpOworUHlPYmplY3QgKgorX1B5VW5pY29kZV9Gcm9tSWQoX1B5X0lkZW50aWZpZXIgKmlkKQoreworICAgIGlmICghaWQtPm9iamVjdCkgeworICAgICAgICBpZC0+b2JqZWN0ID0gUHlVbmljb2RlX0RlY29kZVVURjhTdGF0ZWZ1bChpZC0+c3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJsZW4oaWQtPnN0cmluZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIE5VTEwpOworICAgICAgICBpZiAoIWlkLT5vYmplY3QpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgUHlVbmljb2RlX0ludGVybkluUGxhY2UoJmlkLT5vYmplY3QpOworICAgICAgICBhc3NlcnQoIWlkLT5uZXh0KTsKKyAgICAgICAgaWQtPm5leHQgPSBzdGF0aWNfc3RyaW5nczsKKyAgICAgICAgc3RhdGljX3N0cmluZ3MgPSBpZDsKKyAgICB9CisgICAgcmV0dXJuIGlkLT5vYmplY3Q7Cit9CisKK3ZvaWQKK19QeVVuaWNvZGVfQ2xlYXJTdGF0aWNTdHJpbmdzKCkKK3sKKyAgICBfUHlfSWRlbnRpZmllciAqaTsKKyAgICBmb3IgKGkgPSBzdGF0aWNfc3RyaW5nczsgaTsgaSA9IGktPm5leHQpIHsKKyAgICAgICAgUHlfREVDUkVGKGktPm9iamVjdCk7CisgICAgICAgIGktPm9iamVjdCA9IE5VTEw7CisgICAgICAgIGktPm5leHQgPSBOVUxMOworICAgIH0KK30KKworLyogSW50ZXJuYWwgZnVuY3Rpb24sIGRvZXNuJ3QgY2hlY2sgbWF4aW11bSBjaGFyYWN0ZXIgKi8KKworUHlPYmplY3QqCitfUHlVbmljb2RlX0Zyb21BU0NJSShjb25zdCBjaGFyICpidWZmZXIsIFB5X3NzaXplX3Qgc2l6ZSkKK3sKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpzID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIgKilidWZmZXI7CisgICAgUHlPYmplY3QgKnVuaWNvZGU7CisgICAgaWYgKHNpemUgPT0gMSkgeworI2lmZGVmIFB5X0RFQlVHCisgICAgICAgIGFzc2VydChzWzBdIDwgMTI4KTsKKyNlbmRpZgorICAgICAgICByZXR1cm4gZ2V0X2xhdGluMV9jaGFyKHNbMF0pOworICAgIH0KKyAgICB1bmljb2RlID0gUHlVbmljb2RlX05ldyhzaXplLCAxMjcpOworICAgIGlmICghdW5pY29kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbWVtY3B5KFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpLCBzLCBzaXplKTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHVuaWNvZGUsIDEpKTsKKyAgICByZXR1cm4gdW5pY29kZTsKK30KKworc3RhdGljIFB5X1VDUzQKK2tpbmRfbWF4Y2hhcl9saW1pdCh1bnNpZ25lZCBpbnQga2luZCkKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOgorICAgICAgICByZXR1cm4gMHg4MDsKKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICByZXR1cm4gMHgxMDA7CisgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgcmV0dXJuIDB4MTAwMDA7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYXNzZXJ0KDAgJiYgImludmFsaWQga2luZCIpOworICAgICAgICByZXR1cm4gTUFYX1VOSUNPREU7CisgICAgfQorfQorCitQeV9MT0NBTF9JTkxJTkUoUHlfVUNTNCkKK2FsaWduX21heGNoYXIoUHlfVUNTNCBtYXhjaGFyKQoreworICAgIGlmIChtYXhjaGFyIDw9IDEyNykKKyAgICAgICAgcmV0dXJuIDEyNzsKKyAgICBlbHNlIGlmIChtYXhjaGFyIDw9IDI1NSkKKyAgICAgICAgcmV0dXJuIDI1NTsKKyAgICBlbHNlIGlmIChtYXhjaGFyIDw9IDY1NTM1KQorICAgICAgICByZXR1cm4gNjU1MzU7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gTUFYX1VOSUNPREU7Cit9CisKK3N0YXRpYyBQeU9iamVjdCoKK19QeVVuaWNvZGVfRnJvbVVDUzEoY29uc3QgdW5zaWduZWQgY2hhciogdSwgUHlfc3NpemVfdCBzaXplKQoreworICAgIFB5T2JqZWN0ICpyZXM7CisgICAgdW5zaWduZWQgY2hhciBtYXhfY2hhcjsKKworICAgIGlmIChzaXplID09IDApIHsKKyAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGVfZW1wdHkpOworICAgICAgICByZXR1cm4gdW5pY29kZV9lbXB0eTsKKyAgICB9CisgICAgYXNzZXJ0KHNpemUgPiAwKTsKKyAgICBpZiAoc2l6ZSA9PSAxKQorICAgICAgICByZXR1cm4gZ2V0X2xhdGluMV9jaGFyKHVbMF0pOworCisgICAgbWF4X2NoYXIgPSB1Y3MxbGliX2ZpbmRfbWF4X2NoYXIodSwgdSArIHNpemUpOworICAgIHJlcyA9IFB5VW5pY29kZV9OZXcoc2l6ZSwgbWF4X2NoYXIpOworICAgIGlmICghcmVzKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBtZW1jcHkoUHlVbmljb2RlXzFCWVRFX0RBVEEocmVzKSwgdSwgc2l6ZSk7CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeShyZXMsIDEpKTsKKyAgICByZXR1cm4gcmVzOworfQorCitzdGF0aWMgUHlPYmplY3QqCitfUHlVbmljb2RlX0Zyb21VQ1MyKGNvbnN0IFB5X1VDUzIgKnUsIFB5X3NzaXplX3Qgc2l6ZSkKK3sKKyAgICBQeU9iamVjdCAqcmVzOworICAgIFB5X1VDUzIgbWF4X2NoYXI7CisKKyAgICBpZiAoc2l6ZSA9PSAwKSB7CisgICAgICAgIFB5X0lOQ1JFRih1bmljb2RlX2VtcHR5KTsKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfZW1wdHk7CisgICAgfQorICAgIGFzc2VydChzaXplID4gMCk7CisgICAgaWYgKHNpemUgPT0gMSkgeworICAgICAgICBQeV9VQ1M0IGNoID0gdVswXTsKKyAgICAgICAgaWYgKGNoIDwgMjU2KQorICAgICAgICAgICAgcmV0dXJuIGdldF9sYXRpbjFfY2hhcigodW5zaWduZWQgY2hhciljaCk7CisKKyAgICAgICAgcmVzID0gUHlVbmljb2RlX05ldygxLCBjaCk7CisgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBQeVVuaWNvZGVfV1JJVEUoUHlVbmljb2RlX0tJTkQocmVzKSwgUHlVbmljb2RlX0RBVEEocmVzKSwgMCwgY2gpOworICAgICAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJlcywgMSkpOworICAgICAgICByZXR1cm4gcmVzOworICAgIH0KKworICAgIG1heF9jaGFyID0gdWNzMmxpYl9maW5kX21heF9jaGFyKHUsIHUgKyBzaXplKTsKKyAgICByZXMgPSBQeVVuaWNvZGVfTmV3KHNpemUsIG1heF9jaGFyKTsKKyAgICBpZiAoIXJlcykKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKG1heF9jaGFyID49IDI1NikKKyAgICAgICAgbWVtY3B5KFB5VW5pY29kZV8yQllURV9EQVRBKHJlcyksIHUsIHNpemVvZihQeV9VQ1MyKSpzaXplKTsKKyAgICBlbHNlIHsKKyAgICAgICAgX1B5VW5pY29kZV9DT05WRVJUX0JZVEVTKAorICAgICAgICAgICAgUHlfVUNTMiwgUHlfVUNTMSwgdSwgdSArIHNpemUsIFB5VW5pY29kZV8xQllURV9EQVRBKHJlcykpOworICAgIH0KKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJlcywgMSkpOworICAgIHJldHVybiByZXM7Cit9CisKK3N0YXRpYyBQeU9iamVjdCoKK19QeVVuaWNvZGVfRnJvbVVDUzQoY29uc3QgUHlfVUNTNCAqdSwgUHlfc3NpemVfdCBzaXplKQoreworICAgIFB5T2JqZWN0ICpyZXM7CisgICAgUHlfVUNTNCBtYXhfY2hhcjsKKworICAgIGlmIChzaXplID09IDApIHsKKyAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGVfZW1wdHkpOworICAgICAgICByZXR1cm4gdW5pY29kZV9lbXB0eTsKKyAgICB9CisgICAgYXNzZXJ0KHNpemUgPiAwKTsKKyAgICBpZiAoc2l6ZSA9PSAxKSB7CisgICAgICAgIFB5X1VDUzQgY2ggPSB1WzBdOworICAgICAgICBpZiAoY2ggPCAyNTYpCisgICAgICAgICAgICByZXR1cm4gZ2V0X2xhdGluMV9jaGFyKCh1bnNpZ25lZCBjaGFyKWNoKTsKKworICAgICAgICByZXMgPSBQeVVuaWNvZGVfTmV3KDEsIGNoKTsKKyAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIFB5VW5pY29kZV9XUklURShQeVVuaWNvZGVfS0lORChyZXMpLCBQeVVuaWNvZGVfREFUQShyZXMpLCAwLCBjaCk7CisgICAgICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kocmVzLCAxKSk7CisgICAgICAgIHJldHVybiByZXM7CisgICAgfQorCisgICAgbWF4X2NoYXIgPSB1Y3M0bGliX2ZpbmRfbWF4X2NoYXIodSwgdSArIHNpemUpOworICAgIHJlcyA9IFB5VW5pY29kZV9OZXcoc2l6ZSwgbWF4X2NoYXIpOworICAgIGlmICghcmVzKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAobWF4X2NoYXIgPCAyNTYpCisgICAgICAgIF9QeVVuaWNvZGVfQ09OVkVSVF9CWVRFUyhQeV9VQ1M0LCBQeV9VQ1MxLCB1LCB1ICsgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8xQllURV9EQVRBKHJlcykpOworICAgIGVsc2UgaWYgKG1heF9jaGFyIDwgMHgxMDAwMCkKKyAgICAgICAgX1B5VW5pY29kZV9DT05WRVJUX0JZVEVTKFB5X1VDUzQsIFB5X1VDUzIsIHUsIHUgKyBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlXzJCWVRFX0RBVEEocmVzKSk7CisgICAgZWxzZQorICAgICAgICBtZW1jcHkoUHlVbmljb2RlXzRCWVRFX0RBVEEocmVzKSwgdSwgc2l6ZW9mKFB5X1VDUzQpKnNpemUpOworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kocmVzLCAxKSk7CisgICAgcmV0dXJuIHJlczsKK30KKworUHlPYmplY3QqCitQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKGludCBraW5kLCBjb25zdCB2b2lkICpidWZmZXIsIFB5X3NzaXplX3Qgc2l6ZSkKK3sKKyAgICBpZiAoc2l6ZSA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJzaXplIG11c3QgYmUgcG9zaXRpdmUiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIHJldHVybiBfUHlVbmljb2RlX0Zyb21VQ1MxKGJ1ZmZlciwgc2l6ZSk7CisgICAgY2FzZSBQeVVuaWNvZGVfMkJZVEVfS0lORDoKKyAgICAgICAgcmV0dXJuIF9QeVVuaWNvZGVfRnJvbVVDUzIoYnVmZmVyLCBzaXplKTsKKyAgICBjYXNlIFB5VW5pY29kZV80QllURV9LSU5EOgorICAgICAgICByZXR1cm4gX1B5VW5pY29kZV9Gcm9tVUNTNChidWZmZXIsIHNpemUpOworICAgIGRlZmF1bHQ6CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19TeXN0ZW1FcnJvciwgImludmFsaWQga2luZCIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9Cit9CisKK1B5X1VDUzQKK19QeVVuaWNvZGVfRmluZE1heENoYXIoUHlPYmplY3QgKnVuaWNvZGUsIFB5X3NzaXplX3Qgc3RhcnQsIFB5X3NzaXplX3QgZW5kKQoreworICAgIGVudW0gUHlVbmljb2RlX0tpbmQga2luZDsKKyAgICB2b2lkICpzdGFydHB0ciwgKmVuZHB0cjsKKworICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkodW5pY29kZSkpOworICAgIGFzc2VydCgwIDw9IHN0YXJ0KTsKKyAgICBhc3NlcnQoZW5kIDw9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpKTsKKyAgICBhc3NlcnQoc3RhcnQgPD0gZW5kKTsKKworICAgIGlmIChzdGFydCA9PSAwICYmIGVuZCA9PSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmljb2RlKSkKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh1bmljb2RlKTsKKworICAgIGlmIChzdGFydCA9PSBlbmQpCisgICAgICAgIHJldHVybiAxMjc7CisKKyAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHVuaWNvZGUpKQorICAgICAgICByZXR1cm4gMTI3OworCisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpOworICAgIHN0YXJ0cHRyID0gUHlVbmljb2RlX0RBVEEodW5pY29kZSk7CisgICAgZW5kcHRyID0gKGNoYXIgKilzdGFydHB0ciArIGVuZCAqIGtpbmQ7CisgICAgc3RhcnRwdHIgPSAoY2hhciAqKXN0YXJ0cHRyICsgc3RhcnQgKiBraW5kOworICAgIHN3aXRjaChraW5kKSB7CisgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDoKKyAgICAgICAgcmV0dXJuIHVjczFsaWJfZmluZF9tYXhfY2hhcihzdGFydHB0ciwgZW5kcHRyKTsKKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICByZXR1cm4gdWNzMmxpYl9maW5kX21heF9jaGFyKHN0YXJ0cHRyLCBlbmRwdHIpOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisgICAgICAgIHJldHVybiB1Y3M0bGliX2ZpbmRfbWF4X2NoYXIoc3RhcnRwdHIsIGVuZHB0cik7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYXNzZXJ0KDApOworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKKy8qIEVuc3VyZSB0aGF0IGEgc3RyaW5nIHVzZXMgdGhlIG1vc3QgZWZmaWNpZW50IHN0b3JhZ2UsIGlmIGl0IGlzIG5vdCB0aGUKKyAgIGNhc2U6IGNyZWF0ZSBhIG5ldyBzdHJpbmcgd2l0aCBvZiB0aGUgcmlnaHQga2luZC4gV3JpdGUgTlVMTCBpbnRvICpwX3VuaWNvZGUKKyAgIG9uIGVycm9yLiAqLworc3RhdGljIHZvaWQKK3VuaWNvZGVfYWRqdXN0X21heGNoYXIoUHlPYmplY3QgKipwX3VuaWNvZGUpCit7CisgICAgUHlPYmplY3QgKnVuaWNvZGUsICpjb3B5OworICAgIFB5X1VDUzQgbWF4X2NoYXI7CisgICAgUHlfc3NpemVfdCBsZW47CisgICAgdW5zaWduZWQgaW50IGtpbmQ7CisKKyAgICBhc3NlcnQocF91bmljb2RlICE9IE5VTEwpOworICAgIHVuaWNvZGUgPSAqcF91bmljb2RlOworICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkodW5pY29kZSkpOworICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkodW5pY29kZSkpCisgICAgICAgIHJldHVybjsKKworICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh1bmljb2RlKTsKKyAgICBpZiAoa2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCkgeworICAgICAgICBjb25zdCBQeV9VQ1MxICp1ID0gUHlVbmljb2RlXzFCWVRFX0RBVEEodW5pY29kZSk7CisgICAgICAgIG1heF9jaGFyID0gdWNzMWxpYl9maW5kX21heF9jaGFyKHUsIHUgKyBsZW4pOworICAgICAgICBpZiAobWF4X2NoYXIgPj0gMTI4KQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBlbHNlIGlmIChraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5EKSB7CisgICAgICAgIGNvbnN0IFB5X1VDUzIgKnUgPSBQeVVuaWNvZGVfMkJZVEVfREFUQSh1bmljb2RlKTsKKyAgICAgICAgbWF4X2NoYXIgPSB1Y3MybGliX2ZpbmRfbWF4X2NoYXIodSwgdSArIGxlbik7CisgICAgICAgIGlmIChtYXhfY2hhciA+PSAyNTYpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBjb25zdCBQeV9VQ1M0ICp1ID0gUHlVbmljb2RlXzRCWVRFX0RBVEEodW5pY29kZSk7CisgICAgICAgIGFzc2VydChraW5kID09IFB5VW5pY29kZV80QllURV9LSU5EKTsKKyAgICAgICAgbWF4X2NoYXIgPSB1Y3M0bGliX2ZpbmRfbWF4X2NoYXIodSwgdSArIGxlbik7CisgICAgICAgIGlmIChtYXhfY2hhciA+PSAweDEwMDAwKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjb3B5ID0gUHlVbmljb2RlX05ldyhsZW4sIG1heF9jaGFyKTsKKyAgICBpZiAoY29weSAhPSBOVUxMKQorICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhjb3B5LCAwLCB1bmljb2RlLCAwLCBsZW4pOworICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICAqcF91bmljb2RlID0gY29weTsKK30KKworUHlPYmplY3QqCitfUHlVbmljb2RlX0NvcHkoUHlPYmplY3QgKnVuaWNvZGUpCit7CisgICAgUHlfc3NpemVfdCBsZW5ndGg7CisgICAgUHlPYmplY3QgKmNvcHk7CisKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh1bmljb2RlKSkgeworICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodW5pY29kZSkgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSk7CisgICAgY29weSA9IFB5VW5pY29kZV9OZXcobGVuZ3RoLCBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUodW5pY29kZSkpOworICAgIGlmICghY29weSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgYXNzZXJ0KFB5VW5pY29kZV9LSU5EKGNvcHkpID09IFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpKTsKKworICAgIFB5X01FTUNQWShQeVVuaWNvZGVfREFUQShjb3B5KSwgUHlVbmljb2RlX0RBVEEodW5pY29kZSksCisgICAgICAgICAgICAgIGxlbmd0aCAqIFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpKTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KGNvcHksIDEpKTsKKyAgICByZXR1cm4gY29weTsKK30KKworCisvKiBXaWRlbiBVbmljb2RlIG9iamVjdHMgdG8gbGFyZ2VyIGJ1ZmZlcnMuIERvbid0IHdyaXRlIHRlcm1pbmF0aW5nIG51bGwKKyAgIGNoYXJhY3Rlci4gUmV0dXJuIE5VTEwgb24gZXJyb3IuICovCisKK3ZvaWQqCitfUHlVbmljb2RlX0FzS2luZChQeU9iamVjdCAqcywgdW5zaWduZWQgaW50IGtpbmQpCit7CisgICAgUHlfc3NpemVfdCBsZW47CisgICAgdm9pZCAqcmVzdWx0OworICAgIHVuc2lnbmVkIGludCBza2luZDsKKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkocykgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocyk7CisgICAgc2tpbmQgPSBQeVVuaWNvZGVfS0lORChzKTsKKyAgICBpZiAoc2tpbmQgPj0ga2luZCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsICJpbnZhbGlkIHdpZGVuaW5nIGF0dGVtcHQiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgIHJlc3VsdCA9IFB5TWVtX01hbGxvYyhsZW4gKiBzaXplb2YoUHlfVUNTMikpOworICAgICAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICBhc3NlcnQoc2tpbmQgPT0gUHlVbmljb2RlXzFCWVRFX0tJTkQpOworICAgICAgICBfUHlVbmljb2RlX0NPTlZFUlRfQllURVMoCisgICAgICAgICAgICBQeV9VQ1MxLCBQeV9VQ1MyLAorICAgICAgICAgICAgUHlVbmljb2RlXzFCWVRFX0RBVEEocyksCisgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQShzKSArIGxlbiwKKyAgICAgICAgICAgIHJlc3VsdCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgcmVzdWx0ID0gUHlNZW1fTWFsbG9jKGxlbiAqIHNpemVvZihQeV9VQ1M0KSk7CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIGlmIChza2luZCA9PSBQeVVuaWNvZGVfMkJZVEVfS0lORCkgeworICAgICAgICAgICAgX1B5VW5pY29kZV9DT05WRVJUX0JZVEVTKAorICAgICAgICAgICAgICAgIFB5X1VDUzIsIFB5X1VDUzQsCisgICAgICAgICAgICAgICAgUHlVbmljb2RlXzJCWVRFX0RBVEEocyksCisgICAgICAgICAgICAgICAgUHlVbmljb2RlXzJCWVRFX0RBVEEocykgKyBsZW4sCisgICAgICAgICAgICAgICAgcmVzdWx0KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChza2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCk7CisgICAgICAgICAgICBfUHlVbmljb2RlX0NPTlZFUlRfQllURVMoCisgICAgICAgICAgICAgICAgUHlfVUNTMSwgUHlfVUNTNCwKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQShzKSwKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfMUJZVEVfREFUQShzKSArIGxlbiwKKyAgICAgICAgICAgICAgICByZXN1bHQpOworICAgICAgICB9CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19TeXN0ZW1FcnJvciwgImludmFsaWQga2luZCIpOworICAgIHJldHVybiBOVUxMOworfQorCitzdGF0aWMgUHlfVUNTNCoKK2FzX3VjczQoUHlPYmplY3QgKnN0cmluZywgUHlfVUNTNCAqdGFyZ2V0LCBQeV9zc2l6ZV90IHRhcmdldHNpemUsCisgICAgICAgIGludCBjb3B5X251bGwpCit7CisgICAgaW50IGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKKyAgICBQeV9zc2l6ZV90IGxlbiwgdGFyZ2V0bGVuOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3RyaW5nKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHN0cmluZyk7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHN0cmluZyk7CisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyaW5nKTsKKyAgICB0YXJnZXRsZW4gPSBsZW47CisgICAgaWYgKGNvcHlfbnVsbCkKKyAgICAgICAgdGFyZ2V0bGVuKys7CisgICAgaWYgKCF0YXJnZXQpIHsKKyAgICAgICAgaWYgKFBZX1NTSVpFX1RfTUFYIC8gc2l6ZW9mKFB5X1VDUzQpIDwgdGFyZ2V0bGVuKSB7CisgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgdGFyZ2V0ID0gUHlNZW1fTWFsbG9jKHRhcmdldGxlbiAqIHNpemVvZihQeV9VQ1M0KSk7CisgICAgICAgIGlmICghdGFyZ2V0KSB7CisgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGlmICh0YXJnZXRzaXplIDwgdGFyZ2V0bGVuKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfU3lzdGVtRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZyBpcyBsb25nZXIgdGhhbiB0aGUgYnVmZmVyIik7CisgICAgICAgICAgICBpZiAoY29weV9udWxsICYmIDAgPCB0YXJnZXRzaXplKQorICAgICAgICAgICAgICAgIHRhcmdldFswXSA9IDA7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoa2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCkgeworICAgICAgICBQeV9VQ1MxICpzdGFydCA9IChQeV9VQ1MxICopIGRhdGE7CisgICAgICAgIF9QeVVuaWNvZGVfQ09OVkVSVF9CWVRFUyhQeV9VQ1MxLCBQeV9VQ1M0LCBzdGFydCwgc3RhcnQgKyBsZW4sIHRhcmdldCk7CisgICAgfQorICAgIGVsc2UgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQpIHsKKyAgICAgICAgUHlfVUNTMiAqc3RhcnQgPSAoUHlfVUNTMiAqKSBkYXRhOworICAgICAgICBfUHlVbmljb2RlX0NPTlZFUlRfQllURVMoUHlfVUNTMiwgUHlfVUNTNCwgc3RhcnQsIHN0YXJ0ICsgbGVuLCB0YXJnZXQpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgYXNzZXJ0KGtpbmQgPT0gUHlVbmljb2RlXzRCWVRFX0tJTkQpOworICAgICAgICBQeV9NRU1DUFkodGFyZ2V0LCBkYXRhLCBsZW4gKiBzaXplb2YoUHlfVUNTNCkpOworICAgIH0KKyAgICBpZiAoY29weV9udWxsKQorICAgICAgICB0YXJnZXRbbGVuXSA9IDA7CisgICAgcmV0dXJuIHRhcmdldDsKK30KKworUHlfVUNTNCoKK1B5VW5pY29kZV9Bc1VDUzQoUHlPYmplY3QgKnN0cmluZywgUHlfVUNTNCAqdGFyZ2V0LCBQeV9zc2l6ZV90IHRhcmdldHNpemUsCisgICAgICAgICAgICAgICAgIGludCBjb3B5X251bGwpCit7CisgICAgaWYgKHRhcmdldCA9PSBOVUxMIHx8IHRhcmdldHNpemUgPCAwKSB7CisgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgcmV0dXJuIGFzX3VjczQoc3RyaW5nLCB0YXJnZXQsIHRhcmdldHNpemUsIGNvcHlfbnVsbCk7Cit9CisKK1B5X1VDUzQqCitQeVVuaWNvZGVfQXNVQ1M0Q29weShQeU9iamVjdCAqc3RyaW5nKQoreworICAgIHJldHVybiBhc191Y3M0KHN0cmluZywgTlVMTCwgMCwgMSk7CiB9CiAKICNpZmRlZiBIQVZFX1dDSEFSX0gKIAotI2lmIChQeV9VTklDT0RFX1NJWkUgPT0gMikgJiYgZGVmaW5lZChTSVpFT0ZfV0NIQVJfVCkgJiYgKFNJWkVPRl9XQ0hBUl9UID09IDQpCi0jIGRlZmluZSBDT05WRVJUX1dDSEFSX1RPX1NVUlJPR0FURVMKLSNlbmRpZgotCi0jaWZkZWYgQ09OVkVSVF9XQ0hBUl9UT19TVVJST0dBVEVTCi0KLS8qIEhlcmUgc2l6ZW9mKHdjaGFyX3QpIGlzIDQgYnV0IFB5X1VOSUNPREVfU0laRSA9PSAyLCBzbyB3ZSBuZWVkCi0gICB0byBjb252ZXJ0IGZyb20gVVRGMzIgdG8gVVRGMTYuICovCi0KLVB5T2JqZWN0ICpQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHJlZ2lzdGVyIGNvbnN0IHdjaGFyX3QgKncsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUpCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHJlZ2lzdGVyIGNvbnN0IHdjaGFyX3QgKncsIFB5X3NzaXplX3Qgc2l6ZSkKIHsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnVuaWNvZGU7Ci0gICAgcmVnaXN0ZXIgUHlfc3NpemVfdCBpOwotICAgIFB5X3NzaXplX3QgYWxsb2M7Ci0gICAgY29uc3Qgd2NoYXJfdCAqb3JpZ193OwotCiAgICAgaWYgKHcgPT0gTlVMTCkgewotICAgICAgICBpZiAoc2l6ZSA9PSAwKQotICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCAwKTsKLSAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIGlmIChzaXplID09IC0xKSB7Ci0gICAgICAgIHNpemUgPSB3Y3NsZW4odyk7Ci0gICAgfQotCi0gICAgYWxsb2MgPSBzaXplOwotICAgIG9yaWdfdyA9IHc7Ci0gICAgZm9yIChpID0gc2l6ZTsgaSA+IDA7IGktLSkgewotICAgICAgICBpZiAoKncgPiAweEZGRkYpCi0gICAgICAgICAgICBhbGxvYysrOwotICAgICAgICB3Kys7Ci0gICAgfQotICAgIHcgPSBvcmlnX3c7Ci0gICAgdW5pY29kZSA9IF9QeVVuaWNvZGVfTmV3KGFsbG9jKTsKLSAgICBpZiAoIXVuaWNvZGUpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgLyogQ29weSB0aGUgd2NoYXJfdCBkYXRhIGludG8gdGhlIG5ldyBvYmplY3QgKi8KLSAgICB7Ci0gICAgICAgIHJlZ2lzdGVyIFB5X1VOSUNPREUgKnU7Ci0gICAgICAgIHUgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKTsKLSAgICAgICAgZm9yIChpID0gc2l6ZTsgaSA+IDA7IGktLSkgewotICAgICAgICAgICAgaWYgKCp3ID4gMHhGRkZGKSB7Ci0gICAgICAgICAgICAgICAgd2NoYXJfdCBvcmRpbmFsID0gKncrKzsKLSAgICAgICAgICAgICAgICBvcmRpbmFsIC09IDB4MTAwMDA7Ci0gICAgICAgICAgICAgICAgKnUrKyA9IDB4RDgwMCB8IChvcmRpbmFsID4+IDEwKTsKLSAgICAgICAgICAgICAgICAqdSsrID0gMHhEQzAwIHwgKG9yZGluYWwgJiAweDNGRik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgKnUrKyA9ICp3Kys7CisgICAgICAgIGlmIChzaXplID09IDApIHsKKyAgICAgICAgICAgIFB5X0lOQ1JFRih1bmljb2RlX2VtcHR5KTsKKyAgICAgICAgICAgIHJldHVybiB1bmljb2RlX2VtcHR5OwogICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiAoUHlPYmplY3QgKil1bmljb2RlOwotfQotCi0jZWxzZQotCi1QeU9iamVjdCAqUHlVbmljb2RlX0Zyb21XaWRlQ2hhcihyZWdpc3RlciBjb25zdCB3Y2hhcl90ICp3LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplKQotewotICAgIFB5VW5pY29kZU9iamVjdCAqdW5pY29kZTsKLQotICAgIGlmICh3ID09IE5VTEwpIHsKLSAgICAgICAgaWYgKHNpemUgPT0gMCkKLSAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgMCk7CiAgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC02NDcsMjkgKzIyNTgsMTAgQEAKICAgICAgICAgc2l6ZSA9IHdjc2xlbih3KTsKICAgICB9CiAKLSAgICB1bmljb2RlID0gX1B5VW5pY29kZV9OZXcoc2l6ZSk7Ci0gICAgaWYgKCF1bmljb2RlKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIC8qIENvcHkgdGhlIHdjaGFyX3QgZGF0YSBpbnRvIHRoZSBuZXcgb2JqZWN0ICovCi0jaWYgUHlfVU5JQ09ERV9TSVpFID09IFNJWkVPRl9XQ0hBUl9UCi0gICAgbWVtY3B5KHVuaWNvZGUtPnN0ciwgdywgc2l6ZSAqIHNpemVvZih3Y2hhcl90KSk7Ci0jZWxzZQotICAgIHsKLSAgICAgICAgcmVnaXN0ZXIgUHlfVU5JQ09ERSAqdTsKLSAgICAgICAgcmVnaXN0ZXIgUHlfc3NpemVfdCBpOwotICAgICAgICB1ID0gUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSk7Ci0gICAgICAgIGZvciAoaSA9IHNpemU7IGkgPiAwOyBpLS0pCi0gICAgICAgICAgICAqdSsrID0gKncrKzsKLSAgICB9Ci0jZW5kaWYKLQotICAgIHJldHVybiAoUHlPYmplY3QgKil1bmljb2RlOworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUodywgc2l6ZSk7CiB9CiAKLSNlbmRpZiAvKiBDT05WRVJUX1dDSEFSX1RPX1NVUlJPR0FURVMgKi8KLQotI3VuZGVmIENPTlZFUlRfV0NIQVJfVE9fU1VSUk9HQVRFUworI2VuZGlmIC8qIEhBVkVfV0NIQVJfSCAqLwogCiBzdGF0aWMgdm9pZAogbWFrZWZtdChjaGFyICpmbXQsIGludCBsb25nZmxhZywgaW50IGxvbmdsb25nZmxhZywgaW50IHNpemVfdGZsYWcsCkBAIC03MDcsMTAgKzIyOTksNzEgQEAKICAgICAqZm10ID0gJ1wwJzsKIH0KIAotI2RlZmluZSBhcHBlbmRzdHJpbmcoc3RyaW5nKSB7Zm9yIChjb3B5ID0gc3RyaW5nOypjb3B5OykgKnMrKyA9ICpjb3B5Kys7fQorLyogaGVscGVyIGZvciBQeVVuaWNvZGVfRnJvbUZvcm1hdFYoKSAqLwogCi0vKiBzaXplIG9mIGZpeGVkLXNpemUgYnVmZmVyIGZvciBmb3JtYXR0aW5nIHNpbmdsZSBhcmd1bWVudHMgKi8KLSNkZWZpbmUgSVRFTV9CVUZGRVJfTEVOIDIxCitzdGF0aWMgY29uc3QgY2hhcioKK3BhcnNlX2Zvcm1hdF9mbGFncyhjb25zdCBjaGFyICpmLAorICAgICAgICAgICAgICAgICAgIGludCAqcF93aWR0aCwgaW50ICpwX3ByZWNpc2lvbiwKKyAgICAgICAgICAgICAgICAgICBpbnQgKnBfbG9uZ2ZsYWcsIGludCAqcF9sb25nbG9uZ2ZsYWcsIGludCAqcF9zaXplX3RmbGFnKQoreworICAgIGludCB3aWR0aCwgcHJlY2lzaW9uLCBsb25nZmxhZywgbG9uZ2xvbmdmbGFnLCBzaXplX3RmbGFnOworCisgICAgLyogcGFyc2UgdGhlIHdpZHRoLnByZWNpc2lvbiBwYXJ0LCBlLmcuICIlMi41cyIgPT4gd2lkdGg9MiwgcHJlY2lzaW9uPTUgKi8KKyAgICBmKys7CisgICAgd2lkdGggPSAwOworICAgIHdoaWxlIChQeV9JU0RJR0lUKCh1bnNpZ25lZCkqZikpCisgICAgICAgIHdpZHRoID0gKHdpZHRoKjEwKSArICpmKysgLSAnMCc7CisgICAgcHJlY2lzaW9uID0gMDsKKyAgICBpZiAoKmYgPT0gJy4nKSB7CisgICAgICAgIGYrKzsKKyAgICAgICAgd2hpbGUgKFB5X0lTRElHSVQoKHVuc2lnbmVkKSpmKSkKKyAgICAgICAgICAgIHByZWNpc2lvbiA9IChwcmVjaXNpb24qMTApICsgKmYrKyAtICcwJzsKKyAgICAgICAgaWYgKCpmID09ICclJykgeworICAgICAgICAgICAgLyogIiUuMyVzIiA9PiBmIHBvaW50cyB0byAiMyIgKi8KKyAgICAgICAgICAgIGYtLTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoKmYgPT0gJ1wwJykgeworICAgICAgICAvKiBib2d1cyBmb3JtYXQgIiUuMSIgPT4gZ28gYmFja3dhcmQsIGYgcG9pbnRzIHRvICIxIiAqLworICAgICAgICBmLS07CisgICAgfQorICAgIGlmIChwX3dpZHRoICE9IE5VTEwpCisgICAgICAgICpwX3dpZHRoID0gd2lkdGg7CisgICAgaWYgKHBfcHJlY2lzaW9uICE9IE5VTEwpCisgICAgICAgICpwX3ByZWNpc2lvbiA9IHByZWNpc2lvbjsKKworICAgIC8qIEhhbmRsZSAlbGQsICVsdSwgJWxsZCBhbmQgJWxsdS4gKi8KKyAgICBsb25nZmxhZyA9IDA7CisgICAgbG9uZ2xvbmdmbGFnID0gMDsKKyAgICBzaXplX3RmbGFnID0gMDsKKworICAgIGlmICgqZiA9PSAnbCcpIHsKKyAgICAgICAgaWYgKGZbMV0gPT0gJ2QnIHx8IGZbMV0gPT0gJ3UnIHx8IGZbMV0gPT0gJ2knKSB7CisgICAgICAgICAgICBsb25nZmxhZyA9IDE7CisgICAgICAgICAgICArK2Y7CisgICAgICAgIH0KKyNpZmRlZiBIQVZFX0xPTkdfTE9ORworICAgICAgICBlbHNlIGlmIChmWzFdID09ICdsJyAmJgorICAgICAgICAgICAgICAgICAoZlsyXSA9PSAnZCcgfHwgZlsyXSA9PSAndScgfHwgZlsyXSA9PSAnaScpKSB7CisgICAgICAgICAgICBsb25nbG9uZ2ZsYWcgPSAxOworICAgICAgICAgICAgZiArPSAyOworICAgICAgICB9CisjZW5kaWYKKyAgICB9CisgICAgLyogaGFuZGxlIHRoZSBzaXplX3QgZmxhZy4gKi8KKyAgICBlbHNlIGlmICgqZiA9PSAneicgJiYgKGZbMV0gPT0gJ2QnIHx8IGZbMV0gPT0gJ3UnIHx8IGZbMV0gPT0gJ2knKSkgeworICAgICAgICBzaXplX3RmbGFnID0gMTsKKyAgICAgICAgKytmOworICAgIH0KKyAgICBpZiAocF9sb25nZmxhZyAhPSBOVUxMKQorICAgICAgICAqcF9sb25nZmxhZyA9IGxvbmdmbGFnOworICAgIGlmIChwX2xvbmdsb25nZmxhZyAhPSBOVUxMKQorICAgICAgICAqcF9sb25nbG9uZ2ZsYWcgPSBsb25nbG9uZ2ZsYWc7CisgICAgaWYgKHBfc2l6ZV90ZmxhZyAhPSBOVUxMKQorICAgICAgICAqcF9zaXplX3RmbGFnID0gc2l6ZV90ZmxhZzsKKyAgICByZXR1cm4gZjsKK30KKwogLyogbWF4aW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyByZXF1aXJlZCBmb3Igb3V0cHV0IG9mICVsZC4gIDIxIGNoYXJhY3RlcnMKICAgIGFsbG93cyBmb3IgNjQtYml0IGludGVnZXJzIChpbiBkZWNpbWFsKSBhbmQgYW4gb3B0aW9uYWwgc2lnbi4gKi8KICNkZWZpbmUgTUFYX0xPTkdfQ0hBUlMgMjEKQEAgLTczMSwxMDYgKzIzODQsMzUgQEAKICAgICBpbnQgcHJlY2lzaW9uID0gMDsKICAgICBpbnQgemVyb3BhZDsKICAgICBjb25zdCBjaGFyKiBmOwotICAgIFB5X1VOSUNPREUgKnM7CiAgICAgUHlPYmplY3QgKnN0cmluZzsKICAgICAvKiB1c2VkIGJ5IHNwcmludGYgKi8KLSAgICBjaGFyIGJ1ZmZlcltJVEVNX0JVRkZFUl9MRU4rMV07Ci0gICAgLyogdXNlIGFidWZmZXIgaW5zdGVhZCBvZiBidWZmZXIsIGlmIHdlIG5lZWQgbW9yZSBzcGFjZQotICAgICAqICh3aGljaCBjYW4gaGFwcGVuIGlmIHRoZXJlJ3MgYSBmb3JtYXQgc3BlY2lmaWVyIHdpdGggd2lkdGgpLiAqLwotICAgIGNoYXIgKmFidWZmZXIgPSBOVUxMOwotICAgIGNoYXIgKnJlYWxidWZmZXI7Ci0gICAgUHlfc3NpemVfdCBhYnVmZmVyc2l6ZSA9IDA7CiAgICAgY2hhciBmbXRbNjFdOyAvKiBzaG91bGQgYmUgZW5vdWdoIGZvciAlMHdpZHRoLnByZWNpc2lvbmxsZCAqLwotICAgIGNvbnN0IGNoYXIgKmNvcHk7CisgICAgUHlfVUNTNCBtYXhjaGFyID0gMTI3OyAvKiByZXN1bHQgaXMgQVNDSUkgYnkgZGVmYXVsdCAqLworICAgIFB5X1VDUzQgYXJnbWF4Y2hhcjsKKyAgICBQeV9zc2l6ZV90IG51bWJlcnNpemUgPSAwOworICAgIGNoYXIgKm51bWJlcnJlc3VsdHMgPSBOVUxMOworICAgIGNoYXIgKm51bWJlcnJlc3VsdCA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBpOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CiAKICAgICBQeV9WQV9DT1BZKGNvdW50LCB2YXJncyk7CiAgICAgLyogc3RlcCAxOiBjb3VudCB0aGUgbnVtYmVyIG9mICVTLyVSLyVBLyVzIGZvcm1hdCBzcGVjaWZpY2F0aW9ucwogICAgICAqICh3ZSBjYWxsIFB5T2JqZWN0X1N0cigpL1B5T2JqZWN0X1JlcHIoKS9QeU9iamVjdF9BU0NJSSgpLwogICAgICAqIFB5VW5pY29kZV9EZWNvZGVVVEY4KCkgZm9yIHRoZXNlIG9iamVjdHMgb25jZSBkdXJpbmcgc3RlcCAzIGFuZCBwdXQgdGhlCi0gICAgICogcmVzdWx0IGluIGFuIGFycmF5KSAqLwotICAgIGZvciAoZiA9IGZvcm1hdDsgKmY7IGYrKykgewotICAgICAgICAgaWYgKCpmID09ICclJykgewotICAgICAgICAgICAgIGlmICgqKGYrMSk9PSclJykKLSAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgaWYgKCooZisxKT09J1MnIHx8ICooZisxKT09J1InIHx8ICooZisxKT09J0EnIHx8ICooZisxKSA9PSAnVicpCi0gICAgICAgICAgICAgICAgICsrY2FsbGNvdW50OwotICAgICAgICAgICAgIHdoaWxlIChQeV9JU0RJR0lUKCh1bnNpZ25lZCkqZikpCi0gICAgICAgICAgICAgICAgIHdpZHRoID0gKHdpZHRoKjEwKSArICpmKysgLSAnMCc7Ci0gICAgICAgICAgICAgd2hpbGUgKCorK2YgJiYgKmYgIT0gJyUnICYmICFQeV9JU0FMUEhBKCh1bnNpZ25lZCkqZikpCi0gICAgICAgICAgICAgICAgIDsKLSAgICAgICAgICAgICBpZiAoKmYgPT0gJ3MnKQotICAgICAgICAgICAgICAgICArK2NhbGxjb3VudDsKLSAgICAgICAgIH0KLSAgICAgICAgIGVsc2UgaWYgKDEyOCA8PSAodW5zaWduZWQgY2hhcikqZikgewotICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICJQeVVuaWNvZGVfRnJvbUZvcm1hdFYoKSBleHBlY3RzIGFuIEFTQ0lJLWVuY29kZWQgZm9ybWF0ICIKLSAgICAgICAgICAgICAgICAic3RyaW5nLCBnb3QgYSBub24tQVNDSUkgYnl0ZTogMHglMDJ4IiwKLSAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhcikqZik7Ci0gICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICB9Ci0gICAgfQotICAgIC8qIHN0ZXAgMjogYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgcmVzdWx0cyBvZgotICAgICAqIFB5T2JqZWN0X1N0cigpL1B5T2JqZWN0X1JlcHIoKS9QeVVuaWNvZGVfRGVjb2RlVVRGOCgpIGNhbGxzICovCi0gICAgaWYgKGNhbGxjb3VudCkgewotICAgICAgICBjYWxscmVzdWx0cyA9IFB5T2JqZWN0X01hbGxvYyhzaXplb2YoUHlPYmplY3QgKikqY2FsbGNvdW50KTsKLSAgICAgICAgaWYgKCFjYWxscmVzdWx0cykgewotICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIGNhbGxyZXN1bHQgPSBjYWxscmVzdWx0czsKLSAgICB9Ci0gICAgLyogc3RlcCAzOiBmaWd1cmUgb3V0IGhvdyBsYXJnZSBhIGJ1ZmZlciB3ZSBuZWVkICovCisgICAgICogcmVzdWx0IGluIGFuIGFycmF5KQorICAgICAqIGFsc28gZXN0aW1hdGUgYSB1cHBlciBib3VuZCBmb3IgYWxsIHRoZSBudW1iZXIgZm9ybWF0cyBpbiB0aGUgc3RyaW5nLAorICAgICAqIG51bWJlcnMgd2lsbCBiZSBmb3JtYXR0ZWQgaW4gc3RlcCAzIGFuZCBiZSBrZXB0IGluIGEgJ1wwJy1zZXBhcmF0ZWQKKyAgICAgKiBidWZmZXIgYmVmb3JlIHB1dHRpbmcgZXZlcnl0aGluZyB0b2dldGhlci4gKi8KICAgICBmb3IgKGYgPSBmb3JtYXQ7ICpmOyBmKyspIHsKICAgICAgICAgaWYgKCpmID09ICclJykgewotI2lmZGVmIEhBVkVfTE9OR19MT05HCi0gICAgICAgICAgICBpbnQgbG9uZ2xvbmdmbGFnID0gMDsKLSNlbmRpZgotICAgICAgICAgICAgY29uc3QgY2hhciogcCA9IGY7Ci0gICAgICAgICAgICB3aWR0aCA9IDA7Ci0gICAgICAgICAgICB3aGlsZSAoUHlfSVNESUdJVCgodW5zaWduZWQpKmYpKQotICAgICAgICAgICAgICAgIHdpZHRoID0gKHdpZHRoKjEwKSArICpmKysgLSAnMCc7Ci0gICAgICAgICAgICB3aGlsZSAoKisrZiAmJiAqZiAhPSAnJScgJiYgIVB5X0lTQUxQSEEoKHVuc2lnbmVkKSpmKSkKLSAgICAgICAgICAgICAgICA7CisgICAgICAgICAgICBpbnQgbG9uZ2xvbmdmbGFnOworICAgICAgICAgICAgLyogc2tpcCB3aWR0aCBvciB3aWR0aC5wcmVjaXNpb24gKGVnLiAiMS4yIiBvZiAiJTEuMmYiKSAqLworICAgICAgICAgICAgZiA9IHBhcnNlX2Zvcm1hdF9mbGFncyhmLCAmd2lkdGgsIE5VTEwsIE5VTEwsICZsb25nbG9uZ2ZsYWcsIE5VTEwpOworICAgICAgICAgICAgaWYgKCpmID09ICdzJyB8fCAqZj09J1MnIHx8ICpmPT0nUicgfHwgKmY9PSdBJyB8fCAqZj09J1YnKQorICAgICAgICAgICAgICAgICsrY2FsbGNvdW50OwogCi0gICAgICAgICAgICAvKiBza2lwIHRoZSAnbCcgb3IgJ3onIGluIHslbGQsICV6ZCwgJWx1LCAlenV9IHNpbmNlCi0gICAgICAgICAgICAgKiB0aGV5IGRvbid0IGFmZmVjdCB0aGUgYW1vdW50IG9mIHNwYWNlIHdlIHJlc2VydmUuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmICgqZiA9PSAnbCcpIHsKLSAgICAgICAgICAgICAgICBpZiAoZlsxXSA9PSAnZCcgfHwgZlsxXSA9PSAndScpIHsKLSAgICAgICAgICAgICAgICAgICAgKytmOwotICAgICAgICAgICAgICAgIH0KLSNpZmRlZiBIQVZFX0xPTkdfTE9ORwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZbMV0gPT0gJ2wnICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGZbMl0gPT0gJ2QnIHx8IGZbMl0gPT0gJ3UnKSkgewotICAgICAgICAgICAgICAgICAgICBsb25nbG9uZ2ZsYWcgPSAxOwotICAgICAgICAgICAgICAgICAgICBmICs9IDI7Ci0gICAgICAgICAgICAgICAgfQotI2VuZGlmCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmICgqZiA9PSAneicgJiYgKGZbMV0gPT0gJ2QnIHx8IGZbMV0gPT0gJ3UnKSkgewotICAgICAgICAgICAgICAgICsrZjsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgc3dpdGNoICgqZikgewotICAgICAgICAgICAgY2FzZSAnYyc6Ci0gICAgICAgICAgICB7Ci0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotICAgICAgICAgICAgICAgIGludCBvcmRpbmFsID0gdmFfYXJnKGNvdW50LCBpbnQpOwotICAgICAgICAgICAgICAgIGlmIChvcmRpbmFsID4gMHhmZmZmKQotICAgICAgICAgICAgICAgICAgICBuICs9IDI7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBuKys7Ci0jZWxzZQotICAgICAgICAgICAgICAgICh2b2lkKXZhX2FyZyhjb3VudCwgaW50KTsKLSAgICAgICAgICAgICAgICBuKys7Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJyUnOgotICAgICAgICAgICAgICAgIG4rKzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgJ2QnOiBjYXNlICd1JzogY2FzZSAnaSc6IGNhc2UgJ3gnOgotICAgICAgICAgICAgICAgICh2b2lkKSB2YV9hcmcoY291bnQsIGludCk7CisgICAgICAgICAgICBlbHNlIGlmICgqZiA9PSAnZCcgfHwgKmY9PSd1JyB8fCAqZj09J2knIHx8ICpmPT0neCcgfHwgKmY9PSdwJykgewogI2lmZGVmIEhBVkVfTE9OR19MT05HCiAgICAgICAgICAgICAgICAgaWYgKGxvbmdsb25nZmxhZykgewogICAgICAgICAgICAgICAgICAgICBpZiAod2lkdGggPCBNQVhfTE9OR19MT05HX0NIQVJTKQpAQCAtODQ0LDE5ICsyNDI2LDE1NSBAQAogICAgICAgICAgICAgICAgICAgICAgICBuZWVkIG1vcmUgKHdoaWNoIHdlIGFsbG9jYXRlIGxhdGVyKS4gKi8KICAgICAgICAgICAgICAgICAgICAgaWYgKHdpZHRoIDwgTUFYX0xPTkdfQ0hBUlMpCiAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IE1BWF9MT05HX0NIQVJTOwotICAgICAgICAgICAgICAgIG4gKz0gd2lkdGg7Ci0gICAgICAgICAgICAgICAgLyogWFhYIHNob3VsZCBhbGxvdyBmb3IgbGFyZ2UgcHJlY2lzaW9uIGhlcmUgdG9vLiAqLwotICAgICAgICAgICAgICAgIGlmIChhYnVmZmVyc2l6ZSA8IHdpZHRoKQotICAgICAgICAgICAgICAgICAgICBhYnVmZmVyc2l6ZSA9IHdpZHRoOworCisgICAgICAgICAgICAgICAgLyogYWNjb3VudCBmb3IgdGhlIHNpemUgKyAnXDAnIHRvIHNlcGFyYXRlIG51bWJlcnMKKyAgICAgICAgICAgICAgICAgICBpbnNpZGUgb2YgdGhlIG51bWJlcnJlc3VsdHMgYnVmZmVyICovCisgICAgICAgICAgICAgICAgbnVtYmVyc2l6ZSArPSAod2lkdGggKyAxKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICgodW5zaWduZWQgY2hhcikqZiA+IDEyNykgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgIlB5VW5pY29kZV9Gcm9tRm9ybWF0VigpIGV4cGVjdHMgYW4gQVNDSUktZW5jb2RlZCBmb3JtYXQgIgorICAgICAgICAgICAgICAgICJzdHJpbmcsIGdvdCBhIG5vbi1BU0NJSSBieXRlOiAweCUwMngiLAorICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyKSpmKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgfQorICAgIC8qIHN0ZXAgMjogYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgcmVzdWx0cyBvZgorICAgICAqIFB5T2JqZWN0X1N0cigpL1B5T2JqZWN0X1JlcHIoKS9QeVVuaWNvZGVfRGVjb2RlVVRGOCgpIGNhbGxzICovCisgICAgaWYgKGNhbGxjb3VudCkgeworICAgICAgICBjYWxscmVzdWx0cyA9IFB5T2JqZWN0X01hbGxvYyhzaXplb2YoUHlPYmplY3QgKikgKiBjYWxsY291bnQpOworICAgICAgICBpZiAoIWNhbGxyZXN1bHRzKSB7CisgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKyAgICAgICAgY2FsbHJlc3VsdCA9IGNhbGxyZXN1bHRzOworICAgIH0KKyAgICAvKiBzdGVwIDIuNTogYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgcmVzdWx0cyBvZiBmb3JtYXRpbmcgbnVtYmVycyAqLworICAgIGlmIChudW1iZXJzaXplKSB7CisgICAgICAgIG51bWJlcnJlc3VsdHMgPSBQeU9iamVjdF9NYWxsb2MobnVtYmVyc2l6ZSk7CisgICAgICAgIGlmICghbnVtYmVycmVzdWx0cykgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgfQorICAgICAgICBudW1iZXJyZXN1bHQgPSBudW1iZXJyZXN1bHRzOworICAgIH0KKworICAgIC8qIHN0ZXAgMzogZm9ybWF0IG51bWJlcnMgYW5kIGZpZ3VyZSBvdXQgaG93IGxhcmdlIGEgYnVmZmVyIHdlIG5lZWQgKi8KKyAgICBmb3IgKGYgPSBmb3JtYXQ7ICpmOyBmKyspIHsKKyAgICAgICAgaWYgKCpmID09ICclJykgeworICAgICAgICAgICAgY29uc3QgY2hhciogcDsKKyAgICAgICAgICAgIGludCBsb25nZmxhZzsKKyAgICAgICAgICAgIGludCBsb25nbG9uZ2ZsYWc7CisgICAgICAgICAgICBpbnQgc2l6ZV90ZmxhZzsKKyAgICAgICAgICAgIGludCBudW1wcmludGVkOworCisgICAgICAgICAgICBwID0gZjsKKyAgICAgICAgICAgIHplcm9wYWQgPSAoZlsxXSA9PSAnMCcpOworICAgICAgICAgICAgZiA9IHBhcnNlX2Zvcm1hdF9mbGFncyhmLCAmd2lkdGgsICZwcmVjaXNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsb25nZmxhZywgJmxvbmdsb25nZmxhZywgJnNpemVfdGZsYWcpOworICAgICAgICAgICAgc3dpdGNoICgqZikgeworICAgICAgICAgICAgY2FzZSAnYyc6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgUHlfVUNTNCBvcmRpbmFsID0gdmFfYXJnKGNvdW50LCBpbnQpOworICAgICAgICAgICAgICAgIG1heGNoYXIgPSBNQVhfTUFYQ0hBUihtYXhjaGFyLCBvcmRpbmFsKTsKKyAgICAgICAgICAgICAgICBuKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjYXNlICclJzoKKyAgICAgICAgICAgICAgICBuKys7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgICAgIG1ha2VmbXQoZm10LCBsb25nZmxhZywgbG9uZ2xvbmdmbGFnLCBzaXplX3RmbGFnLCB6ZXJvcGFkLAorICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIHByZWNpc2lvbiwgKmYpOworICAgICAgICAgICAgICAgIGlmIChsb25nZmxhZykKKyAgICAgICAgICAgICAgICAgICAgbnVtcHJpbnRlZCA9IHNwcmludGYobnVtYmVycmVzdWx0LCBmbXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2FyZyhjb3VudCwgbG9uZykpOworI2lmZGVmIEhBVkVfTE9OR19MT05HCisgICAgICAgICAgICAgICAgZWxzZSBpZiAobG9uZ2xvbmdmbGFnKQorICAgICAgICAgICAgICAgICAgICBudW1wcmludGVkID0gc3ByaW50ZihudW1iZXJyZXN1bHQsIGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfYXJnKGNvdW50LCBQWV9MT05HX0xPTkcpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNpemVfdGZsYWcpCisgICAgICAgICAgICAgICAgICAgIG51bXByaW50ZWQgPSBzcHJpbnRmKG51bWJlcnJlc3VsdCwgZm10LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9hcmcoY291bnQsIFB5X3NzaXplX3QpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIG51bXByaW50ZWQgPSBzcHJpbnRmKG51bWJlcnJlc3VsdCwgZm10LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9hcmcoY291bnQsIGludCkpOworICAgICAgICAgICAgICAgIG4gKz0gbnVtcHJpbnRlZDsKKyAgICAgICAgICAgICAgICAvKiBhZHZhbmNlIGJ5ICsxIHRvIHNraXAgb3ZlciB0aGUgJ1wwJyAqLworICAgICAgICAgICAgICAgIG51bWJlcnJlc3VsdCArPSAobnVtcHJpbnRlZCArIDEpOworICAgICAgICAgICAgICAgIGFzc2VydCgqKG51bWJlcnJlc3VsdCAtIDEpID09ICdcMCcpOworICAgICAgICAgICAgICAgIGFzc2VydCgqKG51bWJlcnJlc3VsdCAtIDIpICE9ICdcMCcpOworICAgICAgICAgICAgICAgIGFzc2VydChudW1wcmludGVkID49IDApOworICAgICAgICAgICAgICAgIGFzc2VydChudW1iZXJyZXN1bHQgPD0gbnVtYmVycmVzdWx0cyArIG51bWJlcnNpemUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAndSc6CisgICAgICAgICAgICAgICAgbWFrZWZtdChmbXQsIGxvbmdmbGFnLCBsb25nbG9uZ2ZsYWcsIHNpemVfdGZsYWcsIHplcm9wYWQsCisgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aCwgcHJlY2lzaW9uLCAndScpOworICAgICAgICAgICAgICAgIGlmIChsb25nZmxhZykKKyAgICAgICAgICAgICAgICAgICAgbnVtcHJpbnRlZCA9IHNwcmludGYobnVtYmVycmVzdWx0LCBmbXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2FyZyhjb3VudCwgdW5zaWduZWQgbG9uZykpOworI2lmZGVmIEhBVkVfTE9OR19MT05HCisgICAgICAgICAgICAgICAgZWxzZSBpZiAobG9uZ2xvbmdmbGFnKQorICAgICAgICAgICAgICAgICAgICBudW1wcmludGVkID0gc3ByaW50ZihudW1iZXJyZXN1bHQsIGZtdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfYXJnKGNvdW50LCB1bnNpZ25lZCBQWV9MT05HX0xPTkcpKTsKKyNlbmRpZgorICAgICAgICAgICAgICAgIGVsc2UgaWYgKHNpemVfdGZsYWcpCisgICAgICAgICAgICAgICAgICAgIG51bXByaW50ZWQgPSBzcHJpbnRmKG51bWJlcnJlc3VsdCwgZm10LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9hcmcoY291bnQsIHNpemVfdCkpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbnVtcHJpbnRlZCA9IHNwcmludGYobnVtYmVycmVzdWx0LCBmbXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhX2FyZyhjb3VudCwgdW5zaWduZWQgaW50KSk7CisgICAgICAgICAgICAgICAgbiArPSBudW1wcmludGVkOworICAgICAgICAgICAgICAgIG51bWJlcnJlc3VsdCArPSAobnVtcHJpbnRlZCArIDEpOworICAgICAgICAgICAgICAgIGFzc2VydCgqKG51bWJlcnJlc3VsdCAtIDEpID09ICdcMCcpOworICAgICAgICAgICAgICAgIGFzc2VydCgqKG51bWJlcnJlc3VsdCAtIDIpICE9ICdcMCcpOworICAgICAgICAgICAgICAgIGFzc2VydChudW1wcmludGVkID49IDApOworICAgICAgICAgICAgICAgIGFzc2VydChudW1iZXJyZXN1bHQgPD0gbnVtYmVycmVzdWx0cyArIG51bWJlcnNpemUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAneCc6CisgICAgICAgICAgICAgICAgbWFrZWZtdChmbXQsIDAsIDAsIDAsIHplcm9wYWQsIHdpZHRoLCBwcmVjaXNpb24sICd4Jyk7CisgICAgICAgICAgICAgICAgbnVtcHJpbnRlZCA9IHNwcmludGYobnVtYmVycmVzdWx0LCBmbXQsIHZhX2FyZyhjb3VudCwgaW50KSk7CisgICAgICAgICAgICAgICAgbiArPSBudW1wcmludGVkOworICAgICAgICAgICAgICAgIG51bWJlcnJlc3VsdCArPSAobnVtcHJpbnRlZCArIDEpOworICAgICAgICAgICAgICAgIGFzc2VydCgqKG51bWJlcnJlc3VsdCAtIDEpID09ICdcMCcpOworICAgICAgICAgICAgICAgIGFzc2VydCgqKG51bWJlcnJlc3VsdCAtIDIpICE9ICdcMCcpOworICAgICAgICAgICAgICAgIGFzc2VydChudW1wcmludGVkID49IDApOworICAgICAgICAgICAgICAgIGFzc2VydChudW1iZXJyZXN1bHQgPD0gbnVtYmVycmVzdWx0cyArIG51bWJlcnNpemUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAncCc6CisgICAgICAgICAgICAgICAgbnVtcHJpbnRlZCA9IHNwcmludGYobnVtYmVycmVzdWx0LCAiJXAiLCB2YV9hcmcoY291bnQsIHZvaWQqKSk7CisgICAgICAgICAgICAgICAgLyogJXAgaXMgaWxsLWRlZmluZWQ6ICBlbnN1cmUgbGVhZGluZyAweC4gKi8KKyAgICAgICAgICAgICAgICBpZiAobnVtYmVycmVzdWx0WzFdID09ICdYJykKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVycmVzdWx0WzFdID0gJ3gnOworICAgICAgICAgICAgICAgIGVsc2UgaWYgKG51bWJlcnJlc3VsdFsxXSAhPSAneCcpIHsKKyAgICAgICAgICAgICAgICAgICAgbWVtbW92ZShudW1iZXJyZXN1bHQgKyAyLCBudW1iZXJyZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RybGVuKG51bWJlcnJlc3VsdCkgKyAxKTsKKyAgICAgICAgICAgICAgICAgICAgbnVtYmVycmVzdWx0WzBdID0gJzAnOworICAgICAgICAgICAgICAgICAgICBudW1iZXJyZXN1bHRbMV0gPSAneCc7CisgICAgICAgICAgICAgICAgICAgIG51bXByaW50ZWQgKz0gMjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbiArPSBudW1wcmludGVkOworICAgICAgICAgICAgICAgIG51bWJlcnJlc3VsdCArPSAobnVtcHJpbnRlZCArIDEpOworICAgICAgICAgICAgICAgIGFzc2VydCgqKG51bWJlcnJlc3VsdCAtIDEpID09ICdcMCcpOworICAgICAgICAgICAgICAgIGFzc2VydCgqKG51bWJlcnJlc3VsdCAtIDIpICE9ICdcMCcpOworICAgICAgICAgICAgICAgIGFzc2VydChudW1wcmludGVkID49IDApOworICAgICAgICAgICAgICAgIGFzc2VydChudW1iZXJyZXN1bHQgPD0gbnVtYmVycmVzdWx0cyArIG51bWJlcnNpemUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAncyc6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLyogVVRGLTggKi8KICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzID0gdmFfYXJnKGNvdW50LCBjb25zdCBjaGFyKik7Ci0gICAgICAgICAgICAgICAgUHlPYmplY3QgKnN0ciA9IFB5VW5pY29kZV9EZWNvZGVVVEY4KHMsIHN0cmxlbihzKSwgInJlcGxhY2UiKTsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqc3RyID0gUHlVbmljb2RlX0RlY29kZVVURjhTdGF0ZWZ1bChzLCBzdHJsZW4ocyksICJyZXBsYWNlIiwgTlVMTCk7CiAgICAgICAgICAgICAgICAgaWYgKCFzdHIpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICBuICs9IFB5VW5pY29kZV9HRVRfU0laRShzdHIpOworICAgICAgICAgICAgICAgIC8qIHNpbmNlIFB5VW5pY29kZV9EZWNvZGVVVEY4IHJldHVybnMgYWxyZWFkeSBmbGV4aWJsZQorICAgICAgICAgICAgICAgICAgIHVuaWNvZGUgb2JqZWN0cywgdGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIHJlYWR5IG9uIHRoZW0gKi8KKyAgICAgICAgICAgICAgICBhcmdtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHN0cik7CisgICAgICAgICAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIGFyZ21heGNoYXIpOworICAgICAgICAgICAgICAgIG4gKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKTsKICAgICAgICAgICAgICAgICAvKiBSZW1lbWJlciB0aGUgc3RyIGFuZCBzd2l0Y2ggdG8gdGhlIG5leHQgc2xvdCAqLwogICAgICAgICAgICAgICAgICpjYWxscmVzdWx0KysgPSBzdHI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC04NjQsOCArMjU4MiwxMiBAQAogICAgICAgICAgICAgY2FzZSAnVSc6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZyhjb3VudCwgUHlPYmplY3QgKik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KG9iaiAmJiBQeVVuaWNvZGVfQ2hlY2sob2JqKSk7Ci0gICAgICAgICAgICAgICAgbiArPSBQeVVuaWNvZGVfR0VUX1NJWkUob2JqKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQob2JqICYmIF9QeVVuaWNvZGVfQ0hFQ0sob2JqKSk7CisgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShvYmopID09IC0xKQorICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgICAgICAgYXJnbWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShvYmopOworICAgICAgICAgICAgICAgIG1heGNoYXIgPSBNQVhfTUFYQ0hBUihtYXhjaGFyLCBhcmdtYXhjaGFyKTsKKyAgICAgICAgICAgICAgICBuICs9IFB5VW5pY29kZV9HRVRfTEVOR1RIKG9iaik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlICdWJzoKQEAgLTg3NCwxNiArMjU5NiwyNiBAQAogICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnN0ciA9IHZhX2FyZyhjb3VudCwgY29uc3QgY2hhciAqKTsKICAgICAgICAgICAgICAgICBQeU9iamVjdCAqc3RyX29iajsKICAgICAgICAgICAgICAgICBhc3NlcnQob2JqIHx8IHN0cik7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0KCFvYmogfHwgUHlVbmljb2RlX0NoZWNrKG9iaikpOworICAgICAgICAgICAgICAgIGFzc2VydCghb2JqIHx8IF9QeVVuaWNvZGVfQ0hFQ0sob2JqKSk7CiAgICAgICAgICAgICAgICAgaWYgKG9iaikgewotICAgICAgICAgICAgICAgICAgICBuICs9IFB5VW5pY29kZV9HRVRfU0laRShvYmopOworICAgICAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKG9iaikgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgICAgICAgICAgICAgIGFyZ21heGNoYXIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUob2JqKTsKKyAgICAgICAgICAgICAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIGFyZ21heGNoYXIpOworICAgICAgICAgICAgICAgICAgICBuICs9IFB5VW5pY29kZV9HRVRfTEVOR1RIKG9iaik7CiAgICAgICAgICAgICAgICAgICAgICpjYWxscmVzdWx0KysgPSBOVUxMOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc3RyX29iaiA9IFB5VW5pY29kZV9EZWNvZGVVVEY4KHN0ciwgc3RybGVuKHN0ciksICJyZXBsYWNlIik7CisgICAgICAgICAgICAgICAgICAgIHN0cl9vYmogPSBQeVVuaWNvZGVfRGVjb2RlVVRGOFN0YXRlZnVsKHN0ciwgc3RybGVuKHN0ciksICJyZXBsYWNlIiwgTlVMTCk7CiAgICAgICAgICAgICAgICAgICAgIGlmICghc3RyX29iaikKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICAgICAgbiArPSBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyX29iaik7CisgICAgICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3RyX29iaikgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihzdHJfb2JqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhcmdtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHN0cl9vYmopOworICAgICAgICAgICAgICAgICAgICBtYXhjaGFyID0gTUFYX01BWENIQVIobWF4Y2hhciwgYXJnbWF4Y2hhcik7CisgICAgICAgICAgICAgICAgICAgIG4gKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyX29iaik7CiAgICAgICAgICAgICAgICAgICAgICpjYWxscmVzdWx0KysgPSBzdHJfb2JqOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTg5Niw3ICsyNjI4LDEzIEBACiAgICAgICAgICAgICAgICAgc3RyID0gUHlPYmplY3RfU3RyKG9iaik7CiAgICAgICAgICAgICAgICAgaWYgKCFzdHIpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICBuICs9IFB5VW5pY29kZV9HRVRfU0laRShzdHIpOworICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3RyKSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoc3RyKTsKKyAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBhcmdtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHN0cik7CisgICAgICAgICAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIGFyZ21heGNoYXIpOworICAgICAgICAgICAgICAgIG4gKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKTsKICAgICAgICAgICAgICAgICAvKiBSZW1lbWJlciB0aGUgc3RyIGFuZCBzd2l0Y2ggdG8gdGhlIG5leHQgc2xvdCAqLwogICAgICAgICAgICAgICAgICpjYWxscmVzdWx0KysgPSBzdHI7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC05MDksNyArMjY0NywxMyBAQAogICAgICAgICAgICAgICAgIHJlcHIgPSBQeU9iamVjdF9SZXByKG9iaik7CiAgICAgICAgICAgICAgICAgaWYgKCFyZXByKQogICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICAgICAgbiArPSBQeVVuaWNvZGVfR0VUX1NJWkUocmVwcik7CisgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShyZXByKSA9PSAtMSkgeworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYocmVwcik7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXJnbWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShyZXByKTsKKyAgICAgICAgICAgICAgICBtYXhjaGFyID0gTUFYX01BWENIQVIobWF4Y2hhciwgYXJnbWF4Y2hhcik7CisgICAgICAgICAgICAgICAgbiArPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChyZXByKTsKICAgICAgICAgICAgICAgICAvKiBSZW1lbWJlciB0aGUgcmVwciBhbmQgc3dpdGNoIHRvIHRoZSBuZXh0IHNsb3QgKi8KICAgICAgICAgICAgICAgICAqY2FsbHJlc3VsdCsrID0gcmVwcjsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTkyMiwyMCArMjY2NiwxNyBAQAogICAgICAgICAgICAgICAgIGFzY2lpID0gUHlPYmplY3RfQVNDSUkob2JqKTsKICAgICAgICAgICAgICAgICBpZiAoIWFzY2lpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICAgICAgbiArPSBQeVVuaWNvZGVfR0VUX1NJWkUoYXNjaWkpOworICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoYXNjaWkpID09IC0xKSB7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihhc2NpaSk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXJnbWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShhc2NpaSk7CisgICAgICAgICAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIGFyZ21heGNoYXIpOworICAgICAgICAgICAgICAgIG4gKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgoYXNjaWkpOwogICAgICAgICAgICAgICAgIC8qIFJlbWVtYmVyIHRoZSByZXByIGFuZCBzd2l0Y2ggdG8gdGhlIG5leHQgc2xvdCAqLwogICAgICAgICAgICAgICAgICpjYWxscmVzdWx0KysgPSBhc2NpaTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJ3AnOgotICAgICAgICAgICAgICAgICh2b2lkKSB2YV9hcmcoY291bnQsIGludCk7Ci0gICAgICAgICAgICAgICAgLyogbWF4aW11bSA2NC1iaXQgcG9pbnRlciByZXByZXNlbnRhdGlvbjoKLSAgICAgICAgICAgICAgICAgKiAweGZmZmZmZmZmZmZmZmZmZmYKLSAgICAgICAgICAgICAgICAgKiBzbyAxOSBjaGFyYWN0ZXJzIGlzIGVub3VnaC4KLSAgICAgICAgICAgICAgICAgKiBYWFggSSBjb3VudCAxOCAtLSB3aGF0J3MgdGhlIGV4dHJhIGZvcj8KLSAgICAgICAgICAgICAgICAgKi8KLSAgICAgICAgICAgICAgICBuICs9IDE5OwotICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAvKiBpZiB3ZSBzdHVtYmxlIHVwb24gYW4gdW5rbm93bgogICAgICAgICAgICAgICAgICAgIGZvcm1hdHRpbmcgY29kZSwgY29weSB0aGUgcmVzdCBvZgpAQCAtOTUwLDEyNyArMjY5MSw2OCBAQAogICAgICAgICAgICAgbisrOwogICAgIH0KICAgZXhwYW5kOgotICAgIGlmIChhYnVmZmVyc2l6ZSA+IElURU1fQlVGRkVSX0xFTikgewotICAgICAgICAvKiBhZGQgMSBmb3Igc3ByaW50ZidzIHRyYWlsaW5nIG51bGwgYnl0ZSAqLwotICAgICAgICBhYnVmZmVyID0gUHlPYmplY3RfTWFsbG9jKGFidWZmZXJzaXplICsgMSk7Ci0gICAgICAgIGlmICghYWJ1ZmZlcikgewotICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgfQotICAgICAgICByZWFsYnVmZmVyID0gYWJ1ZmZlcjsKLSAgICB9Ci0gICAgZWxzZQotICAgICAgICByZWFsYnVmZmVyID0gYnVmZmVyOwogICAgIC8qIHN0ZXAgNDogZmlsbCB0aGUgYnVmZmVyICovCi0gICAgLyogU2luY2Ugd2UndmUgYW5hbHl6ZWQgaG93IG11Y2ggc3BhY2Ugd2UgbmVlZCBmb3IgdGhlIHdvcnN0IGNhc2UsCisgICAgLyogU2luY2Ugd2UndmUgYW5hbHl6ZWQgaG93IG11Y2ggc3BhY2Ugd2UgbmVlZCwKICAgICAgICB3ZSBkb24ndCBoYXZlIHRvIHJlc2l6ZSB0aGUgc3RyaW5nLgogICAgICAgIFRoZXJlIGNhbiBiZSBubyBlcnJvcnMgYmV5b25kIHRoaXMgcG9pbnQuICovCi0gICAgc3RyaW5nID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIG4pOworICAgIHN0cmluZyA9IFB5VW5pY29kZV9OZXcobiwgbWF4Y2hhcik7CiAgICAgaWYgKCFzdHJpbmcpCiAgICAgICAgIGdvdG8gZmFpbDsKLQotICAgIHMgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdHJpbmcpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChzdHJpbmcpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzdHJpbmcpOwogICAgIGNhbGxyZXN1bHQgPSBjYWxscmVzdWx0czsKKyAgICBudW1iZXJyZXN1bHQgPSBudW1iZXJyZXN1bHRzOwogCi0gICAgZm9yIChmID0gZm9ybWF0OyAqZjsgZisrKSB7CisgICAgZm9yIChpID0gMCwgZiA9IGZvcm1hdDsgKmY7IGYrKykgewogICAgICAgICBpZiAoKmYgPT0gJyUnKSB7Ci0gICAgICAgICAgICBjb25zdCBjaGFyKiBwID0gZisrOwotICAgICAgICAgICAgaW50IGxvbmdmbGFnID0gMDsKLSAgICAgICAgICAgIGludCBsb25nbG9uZ2ZsYWcgPSAwOwotICAgICAgICAgICAgaW50IHNpemVfdGZsYWcgPSAwOwotICAgICAgICAgICAgemVyb3BhZCA9ICgqZiA9PSAnMCcpOwotICAgICAgICAgICAgLyogcGFyc2UgdGhlIHdpZHRoLnByZWNpc2lvbiBwYXJ0ICovCi0gICAgICAgICAgICB3aWR0aCA9IDA7Ci0gICAgICAgICAgICB3aGlsZSAoUHlfSVNESUdJVCgodW5zaWduZWQpKmYpKQotICAgICAgICAgICAgICAgIHdpZHRoID0gKHdpZHRoKjEwKSArICpmKysgLSAnMCc7Ci0gICAgICAgICAgICBwcmVjaXNpb24gPSAwOwotICAgICAgICAgICAgaWYgKCpmID09ICcuJykgewotICAgICAgICAgICAgICAgIGYrKzsKLSAgICAgICAgICAgICAgICB3aGlsZSAoUHlfSVNESUdJVCgodW5zaWduZWQpKmYpKQotICAgICAgICAgICAgICAgICAgICBwcmVjaXNpb24gPSAocHJlY2lzaW9uKjEwKSArICpmKysgLSAnMCc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvKiBIYW5kbGUgJWxkLCAlbHUsICVsbGQgYW5kICVsbHUuICovCi0gICAgICAgICAgICBpZiAoKmYgPT0gJ2wnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGZbMV0gPT0gJ2QnIHx8IGZbMV0gPT0gJ3UnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxvbmdmbGFnID0gMTsKLSAgICAgICAgICAgICAgICAgICAgKytmOwotICAgICAgICAgICAgICAgIH0KLSNpZmRlZiBIQVZFX0xPTkdfTE9ORwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZbMV0gPT0gJ2wnICYmCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGZbMl0gPT0gJ2QnIHx8IGZbMl0gPT0gJ3UnKSkgewotICAgICAgICAgICAgICAgICAgICBsb25nbG9uZ2ZsYWcgPSAxOwotICAgICAgICAgICAgICAgICAgICBmICs9IDI7Ci0gICAgICAgICAgICAgICAgfQotI2VuZGlmCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvKiBoYW5kbGUgdGhlIHNpemVfdCBmbGFnLiAqLwotICAgICAgICAgICAgaWYgKCpmID09ICd6JyAmJiAoZlsxXSA9PSAnZCcgfHwgZlsxXSA9PSAndScpKSB7Ci0gICAgICAgICAgICAgICAgc2l6ZV90ZmxhZyA9IDE7Ci0gICAgICAgICAgICAgICAgKytmOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgY29uc3QgY2hhciogcDsKKworICAgICAgICAgICAgcCA9IGY7CisgICAgICAgICAgICBmID0gcGFyc2VfZm9ybWF0X2ZsYWdzKGYsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgLyogY2hlY2tpbmcgZm9yID09IGJlY2F1c2UgdGhlIGxhc3QgYXJndW1lbnQgY291bGQgYmUgYSBlbXB0eQorICAgICAgICAgICAgICAgc3RyaW5nLCB3aGljaCBjYXVzZXMgaSB0byBwb2ludCB0byBlbmQsIHRoZSBhc3NlcnQgYXQgdGhlIGVuZCBvZgorICAgICAgICAgICAgICAgdGhlIGxvb3AgKi8KKyAgICAgICAgICAgIGFzc2VydChpIDw9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cmluZykpOwogCiAgICAgICAgICAgICBzd2l0Y2ggKCpmKSB7CiAgICAgICAgICAgICBjYXNlICdjJzoKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpbnQgb3JkaW5hbCA9IHZhX2FyZyh2YXJncywgaW50KTsKLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgICAgICAgICAgaWYgKG9yZGluYWwgPiAweGZmZmYpIHsKLSAgICAgICAgICAgICAgICAgICAgb3JkaW5hbCAtPSAweDEwMDAwOwotICAgICAgICAgICAgICAgICAgICAqcysrID0gMHhEODAwIHwgKG9yZGluYWwgPj4gMTApOwotICAgICAgICAgICAgICAgICAgICAqcysrID0gMHhEQzAwIHwgKG9yZGluYWwgJiAweDNGRik7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAqcysrID0gb3JkaW5hbDsKKyAgICAgICAgICAgICAgICBjb25zdCBpbnQgb3JkaW5hbCA9IHZhX2FyZyh2YXJncywgaW50KTsKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgaSsrLCBvcmRpbmFsKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNhc2UgJ2QnOgotICAgICAgICAgICAgICAgIG1ha2VmbXQoZm10LCBsb25nZmxhZywgbG9uZ2xvbmdmbGFnLCBzaXplX3RmbGFnLCB6ZXJvcGFkLAotICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsIHByZWNpc2lvbiwgJ2QnKTsKLSAgICAgICAgICAgICAgICBpZiAobG9uZ2ZsYWcpCi0gICAgICAgICAgICAgICAgICAgIHNwcmludGYocmVhbGJ1ZmZlciwgZm10LCB2YV9hcmcodmFyZ3MsIGxvbmcpKTsKLSNpZmRlZiBIQVZFX0xPTkdfTE9ORwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGxvbmdsb25nZmxhZykKLSAgICAgICAgICAgICAgICAgICAgc3ByaW50ZihyZWFsYnVmZmVyLCBmbXQsIHZhX2FyZyh2YXJncywgUFlfTE9OR19MT05HKSk7Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChzaXplX3RmbGFnKQotICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKHJlYWxidWZmZXIsIGZtdCwgdmFfYXJnKHZhcmdzLCBQeV9zc2l6ZV90KSk7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKHJlYWxidWZmZXIsIGZtdCwgdmFfYXJnKHZhcmdzLCBpbnQpKTsKLSAgICAgICAgICAgICAgICBhcHBlbmRzdHJpbmcocmVhbGJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlICd1JzoKLSAgICAgICAgICAgICAgICBtYWtlZm10KGZtdCwgbG9uZ2ZsYWcsIGxvbmdsb25nZmxhZywgc2l6ZV90ZmxhZywgemVyb3BhZCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoLCBwcmVjaXNpb24sICd1Jyk7Ci0gICAgICAgICAgICAgICAgaWYgKGxvbmdmbGFnKQotICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKHJlYWxidWZmZXIsIGZtdCwgdmFfYXJnKHZhcmdzLCB1bnNpZ25lZCBsb25nKSk7Ci0jaWZkZWYgSEFWRV9MT05HX0xPTkcKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChsb25nbG9uZ2ZsYWcpCi0gICAgICAgICAgICAgICAgICAgIHNwcmludGYocmVhbGJ1ZmZlciwgZm10LCB2YV9hcmcodmFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgUFlfTE9OR19MT05HKSk7Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICBlbHNlIGlmIChzaXplX3RmbGFnKQotICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKHJlYWxidWZmZXIsIGZtdCwgdmFfYXJnKHZhcmdzLCBzaXplX3QpKTsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIHNwcmludGYocmVhbGJ1ZmZlciwgZm10LCB2YV9hcmcodmFyZ3MsIHVuc2lnbmVkIGludCkpOwotICAgICAgICAgICAgICAgIGFwcGVuZHN0cmluZyhyZWFsYnVmZmVyKTsKLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2UgJ2knOgotICAgICAgICAgICAgICAgIG1ha2VmbXQoZm10LCAwLCAwLCAwLCB6ZXJvcGFkLCB3aWR0aCwgcHJlY2lzaW9uLCAnaScpOwotICAgICAgICAgICAgICAgIHNwcmludGYocmVhbGJ1ZmZlciwgZm10LCB2YV9hcmcodmFyZ3MsIGludCkpOwotICAgICAgICAgICAgICAgIGFwcGVuZHN0cmluZyhyZWFsYnVmZmVyKTsKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgY2FzZSAndSc6CiAgICAgICAgICAgICBjYXNlICd4JzoKLSAgICAgICAgICAgICAgICBtYWtlZm10KGZtdCwgMCwgMCwgMCwgemVyb3BhZCwgd2lkdGgsIHByZWNpc2lvbiwgJ3gnKTsKLSAgICAgICAgICAgICAgICBzcHJpbnRmKHJlYWxidWZmZXIsIGZtdCwgdmFfYXJnKHZhcmdzLCBpbnQpKTsKLSAgICAgICAgICAgICAgICBhcHBlbmRzdHJpbmcocmVhbGJ1ZmZlcik7CisgICAgICAgICAgICBjYXNlICdwJzoKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKKyAgICAgICAgICAgICAgICAvKiB1bnVzZWQsIHNpbmNlIHdlIGFscmVhZHkgaGF2ZSB0aGUgcmVzdWx0ICovCisgICAgICAgICAgICAgICAgaWYgKCpmID09ICdwJykKKyAgICAgICAgICAgICAgICAgICAgKHZvaWQpIHZhX2FyZyh2YXJncywgdm9pZCAqKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICh2b2lkKSB2YV9hcmcodmFyZ3MsIGludCk7CisgICAgICAgICAgICAgICAgLyogZXh0cmFjdCB0aGUgcmVzdWx0IGZyb20gbnVtYmVycmVzdWx0cyBhbmQgYXBwZW5kLiAqLworICAgICAgICAgICAgICAgIGxlbiA9IHN0cmxlbihudW1iZXJyZXN1bHQpOworICAgICAgICAgICAgICAgIHVuaWNvZGVfd3JpdGVfY3N0cihzdHJpbmcsIGksIG51bWJlcnJlc3VsdCwgbGVuKTsKKyAgICAgICAgICAgICAgICAvKiBza2lwIG92ZXIgdGhlIHNlcGFyYXRpbmcgJ1wwJyAqLworICAgICAgICAgICAgICAgIGkgKz0gbGVuOworICAgICAgICAgICAgICAgIG51bWJlcnJlc3VsdCArPSBsZW47CisgICAgICAgICAgICAgICAgYXNzZXJ0KCpudW1iZXJyZXN1bHQgPT0gJ1wwJyk7CisgICAgICAgICAgICAgICAgbnVtYmVycmVzdWx0Kys7CisgICAgICAgICAgICAgICAgYXNzZXJ0KG51bWJlcnJlc3VsdCA8PSBudW1iZXJyZXN1bHRzICsgbnVtYmVyc2l6ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlICdzJzoKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAvKiB1bnVzZWQsIHNpbmNlIHdlIGFscmVhZHkgaGF2ZSB0aGUgcmVzdWx0ICovCisgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplOwogICAgICAgICAgICAgICAgICh2b2lkKSB2YV9hcmcodmFyZ3MsIGNoYXIgKik7Ci0gICAgICAgICAgICAgICAgUHlfVU5JQ09ERV9DT1BZKHMsIFB5VW5pY29kZV9BU19VTklDT0RFKCpjYWxscmVzdWx0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKCpjYWxscmVzdWx0KSk7Ci0gICAgICAgICAgICAgICAgcyArPSBQeVVuaWNvZGVfR0VUX1NJWkUoKmNhbGxyZXN1bHQpOworICAgICAgICAgICAgICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCgqY2FsbHJlc3VsdCk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9LSU5EKCpjYWxscmVzdWx0KSA8PSBQeVVuaWNvZGVfS0lORChzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhzdHJpbmcsIGksICpjYWxscmVzdWx0LCAwLCBzaXplKTsKKyAgICAgICAgICAgICAgICBpICs9IHNpemU7CiAgICAgICAgICAgICAgICAgLyogV2UncmUgZG9uZSB3aXRoIHRoZSB1bmljb2RlKCkvcmVwcigpID0+IGZvcmdldCBpdCAqLwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRigqY2FsbHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgLyogc3dpdGNoIHRvIG5leHQgdW5pY29kZSgpL3JlcHIoKSByZXN1bHQgKi8KQEAgLTEwODAsMjMgKzI3NjIsMjkgQEAKICAgICAgICAgICAgIGNhc2UgJ1UnOgogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpvYmogPSB2YV9hcmcodmFyZ3MsIFB5T2JqZWN0ICopOwotICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShvYmopOwotICAgICAgICAgICAgICAgIFB5X1VOSUNPREVfQ09QWShzLCBQeVVuaWNvZGVfQVNfVU5JQ09ERShvYmopLCBzaXplKTsKLSAgICAgICAgICAgICAgICBzICs9IHNpemU7CisgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplOworICAgICAgICAgICAgICAgIGFzc2VydChQeVVuaWNvZGVfS0lORChvYmopIDw9IFB5VW5pY29kZV9LSU5EKHN0cmluZykpOworICAgICAgICAgICAgICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChvYmopOworICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHN0cmluZywgaSwgb2JqLCAwLCBzaXplKTsKKyAgICAgICAgICAgICAgICBpICs9IHNpemU7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXNlICdWJzoKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemU7CiAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm9iaiA9IHZhX2FyZyh2YXJncywgUHlPYmplY3QgKik7CiAgICAgICAgICAgICAgICAgdmFfYXJnKHZhcmdzLCBjb25zdCBjaGFyICopOwogICAgICAgICAgICAgICAgIGlmIChvYmopIHsKLSAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplID0gUHlVbmljb2RlX0dFVF9TSVpFKG9iaik7Ci0gICAgICAgICAgICAgICAgICAgIFB5X1VOSUNPREVfQ09QWShzLCBQeVVuaWNvZGVfQVNfVU5JQ09ERShvYmopLCBzaXplKTsKLSAgICAgICAgICAgICAgICAgICAgcyArPSBzaXplOworICAgICAgICAgICAgICAgICAgICBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgob2JqKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9LSU5EKG9iaikgPD0gUHlVbmljb2RlX0tJTkQoc3RyaW5nKSk7CisgICAgICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHN0cmluZywgaSwgb2JqLCAwLCBzaXplKTsKKyAgICAgICAgICAgICAgICAgICAgaSArPSBzaXplOwogICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X1VOSUNPREVfQ09QWShzLCBQeVVuaWNvZGVfQVNfVU5JQ09ERSgqY2FsbHJlc3VsdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoKmNhbGxyZXN1bHQpKTsKLSAgICAgICAgICAgICAgICAgICAgcyArPSBQeVVuaWNvZGVfR0VUX1NJWkUoKmNhbGxyZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoKmNhbGxyZXN1bHQpOworICAgICAgICAgICAgICAgICAgICBhc3NlcnQoUHlVbmljb2RlX0tJTkQoKmNhbGxyZXN1bHQpIDw9CisgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfS0lORChzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMoc3RyaW5nLCBpLCAqY2FsbHJlc3VsdCwgMCwgc2l6ZSk7CisgICAgICAgICAgICAgICAgICAgIGkgKz0gc2l6ZTsKICAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKCpjYWxscmVzdWx0KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgKytjYWxscmVzdWx0OwpAQCAtMTEwNiw1MiArMjc5NCw0NCBAQAogICAgICAgICAgICAgY2FzZSAnUic6CiAgICAgICAgICAgICBjYXNlICdBJzoKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBQeV9VTklDT0RFICp1Y29weTsKLSAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHVzaXplOwotICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgdXBvczsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCgqY2FsbHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgLyogdW51c2VkLCBzaW5jZSB3ZSBhbHJlYWR5IGhhdmUgdGhlIHJlc3VsdCAqLwogICAgICAgICAgICAgICAgICh2b2lkKSB2YV9hcmcodmFyZ3MsIFB5T2JqZWN0ICopOwotICAgICAgICAgICAgICAgIHVjb3B5ID0gUHlVbmljb2RlX0FTX1VOSUNPREUoKmNhbGxyZXN1bHQpOwotICAgICAgICAgICAgICAgIHVzaXplID0gUHlVbmljb2RlX0dFVF9TSVpFKCpjYWxscmVzdWx0KTsKLSAgICAgICAgICAgICAgICBmb3IgKHVwb3MgPSAwOyB1cG9zPHVzaXplOykKLSAgICAgICAgICAgICAgICAgICAgKnMrKyA9IHVjb3B5W3Vwb3MrK107CisgICAgICAgICAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9LSU5EKCpjYWxscmVzdWx0KSA8PSBQeVVuaWNvZGVfS0lORChzdHJpbmcpKTsKKyAgICAgICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhzdHJpbmcsIGksICpjYWxscmVzdWx0LCAwLCAgc2l6ZSk7CisgICAgICAgICAgICAgICAgaSArPSBzaXplOwogICAgICAgICAgICAgICAgIC8qIFdlJ3JlIGRvbmUgd2l0aCB0aGUgdW5pY29kZSgpL3JlcHIoKSA9PiBmb3JnZXQgaXQgKi8KICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoKmNhbGxyZXN1bHQpOwogICAgICAgICAgICAgICAgIC8qIHN3aXRjaCB0byBuZXh0IHVuaWNvZGUoKS9yZXByKCkgcmVzdWx0ICovCiAgICAgICAgICAgICAgICAgKytjYWxscmVzdWx0OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgY2FzZSAncCc6Ci0gICAgICAgICAgICAgICAgc3ByaW50ZihidWZmZXIsICIlcCIsIHZhX2FyZyh2YXJncywgdm9pZCopKTsKLSAgICAgICAgICAgICAgICAvKiAlcCBpcyBpbGwtZGVmaW5lZDogIGVuc3VyZSBsZWFkaW5nIDB4LiAqLwotICAgICAgICAgICAgICAgIGlmIChidWZmZXJbMV0gPT0gJ1gnKQotICAgICAgICAgICAgICAgICAgICBidWZmZXJbMV0gPSAneCc7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoYnVmZmVyWzFdICE9ICd4JykgewotICAgICAgICAgICAgICAgICAgICBtZW1tb3ZlKGJ1ZmZlcisyLCBidWZmZXIsIHN0cmxlbihidWZmZXIpKzEpOwotICAgICAgICAgICAgICAgICAgICBidWZmZXJbMF0gPSAnMCc7Ci0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlclsxXSA9ICd4JzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYXBwZW5kc3RyaW5nKGJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICclJzoKLSAgICAgICAgICAgICAgICAqcysrID0gJyUnOworICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShraW5kLCBkYXRhLCBpKyssICclJyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIGFwcGVuZHN0cmluZyhwKTsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbiA9IHN0cmxlbihwKTsKKyAgICAgICAgICAgICAgICB1bmljb2RlX3dyaXRlX2NzdHIoc3RyaW5nLCBpLCBwLCBsZW4pOworICAgICAgICAgICAgICAgIGkgKz0gbGVuOworICAgICAgICAgICAgICAgIGFzc2VydChpID09IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cmluZykpOwogICAgICAgICAgICAgICAgIGdvdG8gZW5kOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgICpzKysgPSAqZjsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhc3NlcnQoaSA8IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cmluZykpOworICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIGkrKywgKmYpOworICAgICAgICB9CiAgICAgfQorICAgIGFzc2VydChpID09IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cmluZykpOwogCiAgIGVuZDoKICAgICBpZiAoY2FsbHJlc3VsdHMpCiAgICAgICAgIFB5T2JqZWN0X0ZyZWUoY2FsbHJlc3VsdHMpOwotICAgIGlmIChhYnVmZmVyKQotICAgICAgICBQeU9iamVjdF9GcmVlKGFidWZmZXIpOwotICAgIFB5VW5pY29kZV9SZXNpemUoJnN0cmluZywgcyAtIFB5VW5pY29kZV9BU19VTklDT0RFKHN0cmluZykpOwotICAgIHJldHVybiBzdHJpbmc7CisgICAgaWYgKG51bWJlcnJlc3VsdHMpCisgICAgICAgIFB5T2JqZWN0X0ZyZWUobnVtYmVycmVzdWx0cyk7CisgICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0KHN0cmluZyk7CiAgIGZhaWw6CiAgICAgaWYgKGNhbGxyZXN1bHRzKSB7CiAgICAgICAgIFB5T2JqZWN0ICoqY2FsbHJlc3VsdDIgPSBjYWxscmVzdWx0czsKQEAgLTExNjEsMTMgKzI4NDEsMTEgQEAKICAgICAgICAgfQogICAgICAgICBQeU9iamVjdF9GcmVlKGNhbGxyZXN1bHRzKTsKICAgICB9Ci0gICAgaWYgKGFidWZmZXIpCi0gICAgICAgIFB5T2JqZWN0X0ZyZWUoYWJ1ZmZlcik7CisgICAgaWYgKG51bWJlcnJlc3VsdHMpCisgICAgICAgIFB5T2JqZWN0X0ZyZWUobnVtYmVycmVzdWx0cyk7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKLSN1bmRlZiBhcHBlbmRzdHJpbmcKLQogUHlPYmplY3QgKgogUHlVbmljb2RlX0Zyb21Gb3JtYXQoY29uc3QgY2hhciAqZm9ybWF0LCAuLi4pCiB7CkBAIC0xMTg0LDYgKzI4NjIsOCBAQAogICAgIHJldHVybiByZXQ7CiB9CiAKKyNpZmRlZiBIQVZFX1dDSEFSX0gKKwogLyogSGVscGVyIGZ1bmN0aW9uIGZvciBQeVVuaWNvZGVfQXNXaWRlQ2hhcigpIGFuZCBQeVVuaWNvZGVfQXNXaWRlQ2hhclN0cmluZygpOgogICAgY29udmVydCBhIFVuaWNvZGUgb2JqZWN0IHRvIGEgd2lkZSBjaGFyYWN0ZXIgc3RyaW5nLgogCkBAIC0xMTk0LDEwMyArMjg3NCwyNyBAQAogICAgICBjaGFyYWN0ZXIpIHdyaXR0ZW4gaW50byB3LiBXcml0ZSBhdCBtb3N0IHNpemUgd2lkZSBjaGFyYWN0ZXJzIChpbmNsdWRpbmcKICAgICAgdGhlIG51bGwgY2hhcmFjdGVyKS4gKi8KIHN0YXRpYyBQeV9zc2l6ZV90Ci11bmljb2RlX2Fzd2lkZWNoYXIoUHlVbmljb2RlT2JqZWN0ICp1bmljb2RlLAordW5pY29kZV9hc3dpZGVjaGFyKFB5T2JqZWN0ICp1bmljb2RlLAogICAgICAgICAgICAgICAgICAgIHdjaGFyX3QgKncsCiAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplKQogewotI2lmIFB5X1VOSUNPREVfU0laRSA9PSBTSVpFT0ZfV0NIQVJfVAogICAgIFB5X3NzaXplX3QgcmVzOworICAgIGNvbnN0IHdjaGFyX3QgKndzdHI7CisKKyAgICB3c3RyID0gUHlVbmljb2RlX0FzVW5pY29kZUFuZFNpemUodW5pY29kZSwgJnJlcyk7CisgICAgaWYgKHdzdHIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCiAgICAgaWYgKHcgIT0gTlVMTCkgewotICAgICAgICByZXMgPSBQeVVuaWNvZGVfR0VUX1NJWkUodW5pY29kZSk7CiAgICAgICAgIGlmIChzaXplID4gcmVzKQogICAgICAgICAgICAgc2l6ZSA9IHJlcyArIDE7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJlcyA9IHNpemU7Ci0gICAgICAgIG1lbWNweSh3LCB1bmljb2RlLT5zdHIsIHNpemUgKiBzaXplb2Yod2NoYXJfdCkpOworICAgICAgICBQeV9NRU1DUFkodywgd3N0ciwgc2l6ZSAqIHNpemVvZih3Y2hhcl90KSk7CiAgICAgICAgIHJldHVybiByZXM7CiAgICAgfQogICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9HRVRfU0laRSh1bmljb2RlKSArIDE7Ci0jZWxpZiBQeV9VTklDT0RFX1NJWkUgPT0gMiAmJiBTSVpFT0ZfV0NIQVJfVCA9PSA0Ci0gICAgcmVnaXN0ZXIgY29uc3QgUHlfVU5JQ09ERSAqdTsKLSAgICBjb25zdCBQeV9VTklDT0RFICp1ZW5kOwotICAgIGNvbnN0IHdjaGFyX3QgKndvcmlnLCAqd2VuZDsKLSAgICBQeV9zc2l6ZV90IG5jaGFyOwotCi0gICAgdSA9IFB5VW5pY29kZV9BU19VTklDT0RFKHVuaWNvZGUpOwotICAgIHVlbmQgPSB1ICsgUHlVbmljb2RlX0dFVF9TSVpFKHVuaWNvZGUpOwotICAgIGlmICh3ICE9IE5VTEwpIHsKLSAgICAgICAgd29yaWcgPSB3OwotICAgICAgICB3ZW5kID0gdyArIHNpemU7Ci0gICAgICAgIHdoaWxlICh1ICE9IHVlbmQgJiYgdyAhPSB3ZW5kKSB7Ci0gICAgICAgICAgICBpZiAoMHhEODAwIDw9IHVbMF0gJiYgdVswXSA8PSAweERCRkYKLSAgICAgICAgICAgICAgICAmJiAweERDMDAgPD0gdVsxXSAmJiB1WzFdIDw9IDB4REZGRikKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAqdyA9ICgoKHVbMF0gJiAweDNGRikgPDwgMTApIHwgKHVbMV0gJiAweDNGRikpICsgMHgxMDAwMDsKLSAgICAgICAgICAgICAgICB1ICs9IDI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAqdyA9ICp1OwotICAgICAgICAgICAgICAgIHUrKzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHcrKzsKLSAgICAgICAgfQotICAgICAgICBpZiAodyAhPSB3ZW5kKQotICAgICAgICAgICAgKncgPSBMJ1wwJzsKLSAgICAgICAgcmV0dXJuIHcgLSB3b3JpZzsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIG5jaGFyID0gMTsgLyogbnVsbCBjaGFyYWN0ZXIgYXQgdGhlIGVuZCAqLwotICAgICAgICB3aGlsZSAodSAhPSB1ZW5kKSB7Ci0gICAgICAgICAgICBpZiAoMHhEODAwIDw9IHVbMF0gJiYgdVswXSA8PSAweERCRkYKLSAgICAgICAgICAgICAgICAmJiAweERDMDAgPD0gdVsxXSAmJiB1WzFdIDw9IDB4REZGRikKLSAgICAgICAgICAgICAgICB1ICs9IDI7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgdSsrOwotICAgICAgICAgICAgbmNoYXIrKzsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gbmNoYXI7Ci0jZWxpZiBQeV9VTklDT0RFX1NJWkUgPT0gNCAmJiBTSVpFT0ZfV0NIQVJfVCA9PSAyCi0gICAgcmVnaXN0ZXIgUHlfVU5JQ09ERSAqdSwgKnVlbmQsIG9yZGluYWw7Ci0gICAgcmVnaXN0ZXIgUHlfc3NpemVfdCBpOwotICAgIHdjaGFyX3QgKndvcmlnLCAqd2VuZDsKLSAgICBQeV9zc2l6ZV90IG5jaGFyOwotCi0gICAgdSA9IFB5VW5pY29kZV9BU19VTklDT0RFKHVuaWNvZGUpOwotICAgIHVlbmQgPSB1ICsgUHlVbmljb2RlX0dFVF9TSVpFKHUpOwotICAgIGlmICh3ICE9IE5VTEwpIHsKLSAgICAgICAgd29yaWcgPSB3OwotICAgICAgICB3ZW5kID0gdyArIHNpemU7Ci0gICAgICAgIHdoaWxlICh1ICE9IHVlbmQgJiYgdyAhPSB3ZW5kKSB7Ci0gICAgICAgICAgICBvcmRpbmFsID0gKnU7Ci0gICAgICAgICAgICBpZiAob3JkaW5hbCA+IDB4ZmZmZikgewotICAgICAgICAgICAgICAgIG9yZGluYWwgLT0gMHgxMDAwMDsKLSAgICAgICAgICAgICAgICAqdysrID0gMHhEODAwIHwgKG9yZGluYWwgPj4gMTApOwotICAgICAgICAgICAgICAgICp3KysgPSAweERDMDAgfCAob3JkaW5hbCAmIDB4M0ZGKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAqdysrID0gb3JkaW5hbDsKLSAgICAgICAgICAgIHUrKzsKLSAgICAgICAgfQotICAgICAgICBpZiAodyAhPSB3ZW5kKQotICAgICAgICAgICAgKncgPSAwOwotICAgICAgICByZXR1cm4gdyAtIHdvcmlnOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgbmNoYXIgPSAxOyAvKiBudWxsIGNoYXJhY3RlciAqLwotICAgICAgICB3aGlsZSAodSAhPSB1ZW5kKSB7Ci0gICAgICAgICAgICBpZiAoKnUgPiAweGZmZmYpCi0gICAgICAgICAgICAgICAgbmNoYXIgKz0gMjsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBuY2hhcisrOwotICAgICAgICAgICAgdSsrOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBuY2hhcjsKLSAgICB9Ci0jZWxzZQotIyAgZXJyb3IgInVuc3VwcG9ydGVkIHdjaGFyX3QgYW5kIFB5X1VOSUNPREUgc2l6ZXMsIHNlZSBpc3N1ZSAjODY3MCIKLSNlbmRpZgorICAgICAgICByZXR1cm4gcmVzICsgMTsKIH0KIAogUHlfc3NpemVfdApAQCAtMTMwMiw3ICsyOTA2LDcgQEAKICAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9Ci0gICAgcmV0dXJuIHVuaWNvZGVfYXN3aWRlY2hhcigoUHlVbmljb2RlT2JqZWN0Kil1bmljb2RlLCB3LCBzaXplKTsKKyAgICByZXR1cm4gdW5pY29kZV9hc3dpZGVjaGFyKHVuaWNvZGUsIHcsIHNpemUpOwogfQogCiB3Y2hhcl90KgpAQCAtMTMxNyw3ICsyOTIxLDkgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgYnVmbGVuID0gdW5pY29kZV9hc3dpZGVjaGFyKChQeVVuaWNvZGVPYmplY3QgKil1bmljb2RlLCBOVUxMLCAwKTsKKyAgICBidWZsZW4gPSB1bmljb2RlX2Fzd2lkZWNoYXIodW5pY29kZSwgTlVMTCwgMCk7CisgICAgaWYgKGJ1ZmxlbiA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKFBZX1NTSVpFX1RfTUFYIC8gc2l6ZW9mKHdjaGFyX3QpIDwgYnVmbGVuKSB7CiAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTMyOCw1MCArMjkzNCw1MiBAQAogICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgYnVmbGVuID0gdW5pY29kZV9hc3dpZGVjaGFyKChQeVVuaWNvZGVPYmplY3QgKil1bmljb2RlLCBidWZmZXIsIGJ1Zmxlbik7CisgICAgYnVmbGVuID0gdW5pY29kZV9hc3dpZGVjaGFyKHVuaWNvZGUsIGJ1ZmZlciwgYnVmbGVuKTsKKyAgICBpZiAoYnVmbGVuID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAoc2l6ZSAhPSBOVUxMKQogICAgICAgICAqc2l6ZSA9IGJ1ZmxlbjsKICAgICByZXR1cm4gYnVmZmVyOwogfQogCi0jZW5kaWYKKyNlbmRpZiAvKiBIQVZFX1dDSEFSX0ggKi8KIAotUHlPYmplY3QgKlB5VW5pY29kZV9Gcm9tT3JkaW5hbChpbnQgb3JkaW5hbCkKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9Gcm9tT3JkaW5hbChpbnQgb3JkaW5hbCkKIHsKLSAgICBQeV9VTklDT0RFIHNbMl07Ci0KLSAgICBpZiAob3JkaW5hbCA8IDAgfHwgb3JkaW5hbCA+IDB4MTBmZmZmKSB7CisgICAgUHlPYmplY3QgKnY7CisgICAgaWYgKG9yZGluYWwgPCAwIHx8IG9yZGluYWwgPiBNQVhfVU5JQ09ERSkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJjaHIoKSBhcmcgbm90IGluIHJhbmdlKDB4MTEwMDAwKSIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgaWYgKG9yZGluYWwgPiAweGZmZmYpIHsKLSAgICAgICAgb3JkaW5hbCAtPSAweDEwMDAwOwotICAgICAgICBzWzBdID0gMHhEODAwIHwgKG9yZGluYWwgPj4gMTApOwotICAgICAgICBzWzFdID0gMHhEQzAwIHwgKG9yZGluYWwgJiAweDNGRik7Ci0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocywgMik7Ci0gICAgfQotI2VuZGlmCisgICAgaWYgKG9yZGluYWwgPCAyNTYpCisgICAgICAgIHJldHVybiBnZXRfbGF0aW4xX2NoYXIob3JkaW5hbCk7CiAKLSAgICBzWzBdID0gKFB5X1VOSUNPREUpb3JkaW5hbDsKLSAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHMsIDEpOworICAgIHYgPSBQeVVuaWNvZGVfTmV3KDEsIG9yZGluYWwpOworICAgIGlmICh2ID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIFB5VW5pY29kZV9XUklURShQeVVuaWNvZGVfS0lORCh2KSwgUHlVbmljb2RlX0RBVEEodiksIDAsIG9yZGluYWwpOworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodiwgMSkpOworICAgIHJldHVybiB2OwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0Zyb21PYmplY3QocmVnaXN0ZXIgUHlPYmplY3QgKm9iaikKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9Gcm9tT2JqZWN0KHJlZ2lzdGVyIFB5T2JqZWN0ICpvYmopCiB7CiAgICAgLyogWFhYIFBlcmhhcHMgd2Ugc2hvdWxkIG1ha2UgdGhpcyBBUEkgYW4gYWxpYXMgb2YKICAgICAgICBQeU9iamVjdF9TdHIoKSBpbnN0ZWFkID8hICovCiAgICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KG9iaikpIHsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShvYmopID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIFB5X0lOQ1JFRihvYmopOwogICAgICAgICByZXR1cm4gb2JqOwogICAgIH0KICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKG9iaikpIHsKICAgICAgICAgLyogRm9yIGEgVW5pY29kZSBzdWJ0eXBlIHRoYXQncyBub3QgYSBVbmljb2RlIG9iamVjdCwKICAgICAgICAgICAgcmV0dXJuIGEgdHJ1ZSBVbmljb2RlIG9iamVjdCB3aXRoIHRoZSBzYW1lIGRhdGEuICovCi0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoUHlVbmljb2RlX0FTX1VOSUNPREUob2JqKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUob2JqKSk7CisgICAgICAgIHJldHVybiBfUHlVbmljb2RlX0NvcHkob2JqKTsKICAgICB9CiAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAgIkNhbid0IGNvbnZlcnQgJyUuMTAwcycgb2JqZWN0IHRvIHN0ciBpbXBsaWNpdGx5IiwKQEAgLTEzNzksOSArMjk4NywxMCBAQAogICAgIHJldHVybiBOVUxMOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0Zyb21FbmNvZGVkT2JqZWN0KHJlZ2lzdGVyIFB5T2JqZWN0ICpvYmosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRnJvbUVuY29kZWRPYmplY3QocmVnaXN0ZXIgUHlPYmplY3QgKm9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7CiAgICAgUHlfYnVmZmVyIGJ1ZmZlcjsKICAgICBQeU9iamVjdCAqdjsKQEAgLTEzOTUsNyArMzAwNCw3IEBACiAgICAgaWYgKFB5Qnl0ZXNfQ2hlY2sob2JqKSkgewogICAgICAgICBpZiAoUHlCeXRlc19HRVRfU0laRShvYmopID09IDApIHsKICAgICAgICAgICAgIFB5X0lOQ1JFRih1bmljb2RlX2VtcHR5KTsKLSAgICAgICAgICAgIHYgPSAoUHlPYmplY3QgKikgdW5pY29kZV9lbXB0eTsKKyAgICAgICAgICAgIHYgPSB1bmljb2RlX2VtcHR5OwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgdiA9IFB5VW5pY29kZV9EZWNvZGUoCkBAIC0xNDIyLDcgKzMwMzEsNyBAQAogCiAgICAgaWYgKGJ1ZmZlci5sZW4gPT0gMCkgewogICAgICAgICBQeV9JTkNSRUYodW5pY29kZV9lbXB0eSk7Ci0gICAgICAgIHYgPSAoUHlPYmplY3QgKikgdW5pY29kZV9lbXB0eTsKKyAgICAgICAgdiA9IHVuaWNvZGVfZW1wdHk7CiAgICAgfQogICAgIGVsc2UKICAgICAgICAgdiA9IFB5VW5pY29kZV9EZWNvZGUoKGNoYXIqKSBidWZmZXIuYnVmLCBidWZmZXIubGVuLCBlbmNvZGluZywgZXJyb3JzKTsKQEAgLTE0NDMsNiArMzA1MiwxMCBAQAogICAgIGNoYXIgKmw7CiAgICAgY2hhciAqbF9lbmQ7CiAKKyAgICBpZiAoZW5jb2RpbmcgPT0gTlVMTCkgeworICAgICAgICBzdHJjcHkobG93ZXIsICJ1dGYtOCIpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CiAgICAgZSA9IGVuY29kaW5nOwogICAgIGwgPSBsb3dlcjsKICAgICBsX2VuZCA9ICZsb3dlcltsb3dlcl9sZW4gLSAxXTsKQEAgLTE0NjQsMjYgKzMwNzcsMjYgQEAKICAgICByZXR1cm4gMTsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9EZWNvZGUoY29uc3QgY2hhciAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQorUHlPYmplY3QgKgorUHlVbmljb2RlX0RlY29kZShjb25zdCBjaGFyICpzLAorICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAorICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7CiAgICAgUHlPYmplY3QgKmJ1ZmZlciA9IE5VTEwsICp1bmljb2RlOwogICAgIFB5X2J1ZmZlciBpbmZvOwogICAgIGNoYXIgbG93ZXJbMTFdOyAgLyogRW5vdWdoIGZvciBhbnkgZW5jb2Rpbmcgc2hvcnRjdXQgKi8KIAotICAgIGlmIChlbmNvZGluZyA9PSBOVUxMKQotICAgICAgICBlbmNvZGluZyA9IFB5VW5pY29kZV9HZXREZWZhdWx0RW5jb2RpbmcoKTsKLQogICAgIC8qIFNob3J0Y3V0cyBmb3IgY29tbW9uIGRlZmF1bHQgZW5jb2RpbmdzICovCiAgICAgaWYgKG5vcm1hbGl6ZV9lbmNvZGluZyhlbmNvZGluZywgbG93ZXIsIHNpemVvZihsb3dlcikpKSB7Ci0gICAgICAgIGlmIChzdHJjbXAobG93ZXIsICJ1dGYtOCIpID09IDApCi0gICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0RlY29kZVVURjgocywgc2l6ZSwgZXJyb3JzKTsKKyAgICAgICAgaWYgKChzdHJjbXAobG93ZXIsICJ1dGYtOCIpID09IDApIHx8CisgICAgICAgICAgICAoc3RyY21wKGxvd2VyLCAidXRmOCIpID09IDApKQorICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVVVEY4U3RhdGVmdWwocywgc2l6ZSwgZXJyb3JzLCBOVUxMKTsKICAgICAgICAgZWxzZSBpZiAoKHN0cmNtcChsb3dlciwgImxhdGluLTEiKSA9PSAwKSB8fAorICAgICAgICAgICAgICAgICAoc3RyY21wKGxvd2VyLCAibGF0aW4xIikgPT0gMCkgfHwKICAgICAgICAgICAgICAgICAgKHN0cmNtcChsb3dlciwgImlzby04ODU5LTEiKSA9PSAwKSkKICAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlTGF0aW4xKHMsIHNpemUsIGVycm9ycyk7Ci0jaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiBkZWZpbmVkKEhBVkVfVVNBQkxFX1dDSEFSX1QpCisjaWZkZWYgSEFWRV9NQkNTCiAgICAgICAgIGVsc2UgaWYgKHN0cmNtcChsb3dlciwgIm1iY3MiKSA9PSAwKQogICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVNQkNTKHMsIHNpemUsIGVycm9ycyk7CiAjZW5kaWYKQEAgLTE1MTMsMTYgKzMxMjYsMTcgQEAKICAgICAgICAgZ290byBvbkVycm9yOwogICAgIH0KICAgICBQeV9ERUNSRUYoYnVmZmVyKTsKLSAgICByZXR1cm4gdW5pY29kZTsKKyAgICByZXR1cm4gdW5pY29kZV9yZXN1bHQodW5pY29kZSk7CiAKICAgb25FcnJvcjoKICAgICBQeV9YREVDUkVGKGJ1ZmZlcik7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKLVB5T2JqZWN0ICpQeVVuaWNvZGVfQXNEZWNvZGVkT2JqZWN0KFB5T2JqZWN0ICp1bmljb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCitQeU9iamVjdCAqCitQeVVuaWNvZGVfQXNEZWNvZGVkT2JqZWN0KFB5T2JqZWN0ICp1bmljb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQogewogICAgIFB5T2JqZWN0ICp2OwogCkBAIC0xNTM4LDE1ICszMTUyLDE2IEBACiAgICAgdiA9IFB5Q29kZWNfRGVjb2RlKHVuaWNvZGUsIGVuY29kaW5nLCBlcnJvcnMpOwogICAgIGlmICh2ID09IE5VTEwpCiAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICByZXR1cm4gdjsKKyAgICByZXR1cm4gdW5pY29kZV9yZXN1bHQodik7CiAKICAgb25FcnJvcjoKICAgICByZXR1cm4gTlVMTDsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9Bc0RlY29kZWRVbmljb2RlKFB5T2JqZWN0ICp1bmljb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9Bc0RlY29kZWRVbmljb2RlKFB5T2JqZWN0ICp1bmljb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7CiAgICAgUHlPYmplY3QgKnY7CiAKQEAgLTE1NjksMTYgKzMxODQsMTcgQEAKICAgICAgICAgUHlfREVDUkVGKHYpOwogICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgfQotICAgIHJldHVybiB2OworICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdCh2KTsKIAogICBvbkVycm9yOgogICAgIHJldHVybiBOVUxMOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0VuY29kZShjb25zdCBQeV9VTklDT0RFICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRW5jb2RlKGNvbnN0IFB5X1VOSUNPREUgKnMsCisgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKICAgICBQeU9iamVjdCAqdiwgKnVuaWNvZGU7CiAKQEAgLTE1OTAsOSArMzIwNiwxMCBAQAogICAgIHJldHVybiB2OwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0FzRW5jb2RlZE9iamVjdChQeU9iamVjdCAqdW5pY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQorUHlPYmplY3QgKgorUHlVbmljb2RlX0FzRW5jb2RlZE9iamVjdChQeU9iamVjdCAqdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKICAgICBQeU9iamVjdCAqdjsKIApAQCAtMTYxNCwxNyArMzIzMSwxOTIgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIHNpemVfdAord2NzdG9tYnNfZXJyb3Jwb3MoY29uc3Qgd2NoYXJfdCAqd3N0cikKK3sKKyAgICBzaXplX3QgbGVuOworI2lmIFNJWkVPRl9XQ0hBUl9UID09IDIKKyAgICB3Y2hhcl90IGJ1ZlszXTsKKyNlbHNlCisgICAgd2NoYXJfdCBidWZbMl07CisjZW5kaWYKKyAgICBjaGFyIG91dGJ1ZltNQl9MRU5fTUFYXTsKKyAgICBjb25zdCB3Y2hhcl90ICpzdGFydCwgKnByZXZpb3VzOworCisjaWYgU0laRU9GX1dDSEFSX1QgPT0gMgorICAgIGJ1ZlsyXSA9IDA7CisjZWxzZQorICAgIGJ1ZlsxXSA9IDA7CisjZW5kaWYKKyAgICBzdGFydCA9IHdzdHI7CisgICAgd2hpbGUgKCp3c3RyICE9IEwnXDAnKQorICAgIHsKKyAgICAgICAgcHJldmlvdXMgPSB3c3RyOworI2lmIFNJWkVPRl9XQ0hBUl9UID09IDIKKyAgICAgICAgaWYgKFB5X1VOSUNPREVfSVNfSElHSF9TVVJST0dBVEUod3N0clswXSkKKyAgICAgICAgICAgICYmIFB5X1VOSUNPREVfSVNfTE9XX1NVUlJPR0FURSh3c3RyWzFdKSkKKyAgICAgICAgeworICAgICAgICAgICAgYnVmWzBdID0gd3N0clswXTsKKyAgICAgICAgICAgIGJ1ZlsxXSA9IHdzdHJbMV07CisgICAgICAgICAgICB3c3RyICs9IDI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBidWZbMF0gPSAqd3N0cjsKKyAgICAgICAgICAgIGJ1ZlsxXSA9IDA7CisgICAgICAgICAgICB3c3RyKys7CisgICAgICAgIH0KKyNlbHNlCisgICAgICAgIGJ1ZlswXSA9ICp3c3RyOworICAgICAgICB3c3RyKys7CisjZW5kaWYKKyAgICAgICAgbGVuID0gd2NzdG9tYnMob3V0YnVmLCBidWYsIHNpemVvZihvdXRidWYpKTsKKyAgICAgICAgaWYgKGxlbiA9PSAoc2l6ZV90KS0xKQorICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzIC0gc3RhcnQ7CisgICAgfQorCisgICAgLyogZmFpbGVkIHRvIGZpbmQgdGhlIHVuZW5jb2RhYmxlIGNoYXJhY3RlciAqLworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Citsb2NhbGVfZXJyb3JfaGFuZGxlcihjb25zdCBjaGFyICplcnJvcnMsIGludCAqc3Vycm9nYXRlZXNjYXBlKQoreworICAgIGlmIChlcnJvcnMgPT0gTlVMTCkgeworICAgICAgICAqc3Vycm9nYXRlZXNjYXBlID0gMDsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgaWYgKHN0cmNtcChlcnJvcnMsICJzdHJpY3QiKSA9PSAwKSB7CisgICAgICAgICpzdXJyb2dhdGVlc2NhcGUgPSAwOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKHN0cmNtcChlcnJvcnMsICJzdXJyb2dhdGVlc2NhcGUiKSA9PSAwKSB7CisgICAgICAgICpzdXJyb2dhdGVlc2NhcGUgPSAxOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICJvbmx5ICdzdHJpY3QnIGFuZCAnc3Vycm9nYXRlZXNjYXBlJyBlcnJvciBoYW5kbGVycyAiCisgICAgICAgICAgICAgICAgICJhcmUgc3VwcG9ydGVkLCBub3QgJyVzJyIsCisgICAgICAgICAgICAgICAgIGVycm9ycyk7CisgICAgcmV0dXJuIC0xOworfQorCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRW5jb2RlTG9jYWxlKFB5T2JqZWN0ICp1bmljb2RlLCBjb25zdCBjaGFyICplcnJvcnMpCit7CisgICAgUHlfc3NpemVfdCB3bGVuLCB3bGVuMjsKKyAgICB3Y2hhcl90ICp3c3RyOworICAgIFB5T2JqZWN0ICpieXRlcyA9IE5VTEw7CisgICAgY2hhciAqZXJybXNnOworICAgIFB5T2JqZWN0ICpyZWFzb247CisgICAgUHlPYmplY3QgKmV4YzsKKyAgICBzaXplX3QgZXJyb3JfcG9zOworICAgIGludCBzdXJyb2dhdGVlc2NhcGU7CisKKyAgICBpZiAobG9jYWxlX2Vycm9yX2hhbmRsZXIoZXJyb3JzLCAmc3Vycm9nYXRlZXNjYXBlKSA8IDApCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgd3N0ciA9IFB5VW5pY29kZV9Bc1dpZGVDaGFyU3RyaW5nKHVuaWNvZGUsICZ3bGVuKTsKKyAgICBpZiAod3N0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHdsZW4yID0gd2NzbGVuKHdzdHIpOworICAgIGlmICh3bGVuMiAhPSB3bGVuKSB7CisgICAgICAgIFB5TWVtX0ZyZWUod3N0cik7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJlbWJlZGRlZCBudWxsIGNoYXJhY3RlciIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoc3Vycm9nYXRlZXNjYXBlKSB7CisgICAgICAgIC8qIGxvY2FsZSBlbmNvZGluZyB3aXRoIHN1cnJvZ2F0ZWVzY2FwZSAqLworICAgICAgICBjaGFyICpzdHI7CisKKyAgICAgICAgc3RyID0gX1B5X3djaGFyMmNoYXIod3N0ciwgJmVycm9yX3Bvcyk7CisgICAgICAgIGlmIChzdHIgPT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKGVycm9yX3BvcyA9PSAoc2l6ZV90KS0xKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgICAgICBQeU1lbV9GcmVlKHdzdHIpOworICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgZ290byBlbmNvZGVfZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgUHlNZW1fRnJlZSh3c3RyKTsKKworICAgICAgICBieXRlcyA9IFB5Qnl0ZXNfRnJvbVN0cmluZyhzdHIpOworICAgICAgICBQeU1lbV9GcmVlKHN0cik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBzaXplX3QgbGVuLCBsZW4yOworCisgICAgICAgIGxlbiA9IHdjc3RvbWJzKE5VTEwsIHdzdHIsIDApOworICAgICAgICBpZiAobGVuID09IChzaXplX3QpLTEpIHsKKyAgICAgICAgICAgIGVycm9yX3BvcyA9IChzaXplX3QpLTE7CisgICAgICAgICAgICBnb3RvIGVuY29kZV9lcnJvcjsKKyAgICAgICAgfQorCisgICAgICAgIGJ5dGVzID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBsZW4pOworICAgICAgICBpZiAoYnl0ZXMgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlNZW1fRnJlZSh3c3RyKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisKKyAgICAgICAgbGVuMiA9IHdjc3RvbWJzKFB5Qnl0ZXNfQVNfU1RSSU5HKGJ5dGVzKSwgd3N0ciwgbGVuKzEpOworICAgICAgICBpZiAobGVuMiA9PSAoc2l6ZV90KS0xIHx8IGxlbjIgPiBsZW4pIHsKKyAgICAgICAgICAgIGVycm9yX3BvcyA9IChzaXplX3QpLTE7CisgICAgICAgICAgICBnb3RvIGVuY29kZV9lcnJvcjsKKyAgICAgICAgfQorICAgICAgICBQeU1lbV9GcmVlKHdzdHIpOworICAgIH0KKyAgICByZXR1cm4gYnl0ZXM7CisKK2VuY29kZV9lcnJvcjoKKyAgICBlcnJtc2cgPSBzdHJlcnJvcihlcnJubyk7CisgICAgYXNzZXJ0KGVycm1zZyAhPSBOVUxMKTsKKworICAgIGlmIChlcnJvcl9wb3MgPT0gKHNpemVfdCktMSkKKyAgICAgICAgZXJyb3JfcG9zID0gd2NzdG9tYnNfZXJyb3Jwb3Mod3N0cik7CisKKyAgICBQeU1lbV9GcmVlKHdzdHIpOworICAgIFB5X1hERUNSRUYoYnl0ZXMpOworCisgICAgaWYgKGVycm1zZyAhPSBOVUxMKSB7CisgICAgICAgIHNpemVfdCBlcnJsZW47CisgICAgICAgIHdzdHIgPSBfUHlfY2hhcjJ3Y2hhcihlcnJtc2csICZlcnJsZW4pOworICAgICAgICBpZiAod3N0ciAhPSBOVUxMKSB7CisgICAgICAgICAgICByZWFzb24gPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHdzdHIsIGVycmxlbik7CisgICAgICAgICAgICBQeU1lbV9GcmVlKHdzdHIpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGVycm1zZyA9IE5VTEw7CisgICAgfQorICAgIGlmIChlcnJtc2cgPT0gTlVMTCkKKyAgICAgICAgcmVhc29uID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoCisgICAgICAgICAgICAid2NzdG9tYnMoKSBlbmNvdW50ZXJlZCBhbiB1bmVuY29kYWJsZSAiCisgICAgICAgICAgICAid2lkZSBjaGFyYWN0ZXIiKTsKKyAgICBpZiAocmVhc29uID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgZXhjID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKFB5RXhjX1VuaWNvZGVFbmNvZGVFcnJvciwgInNPbm5PIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsZSIsIHVuaWNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQeV9zc2l6ZV90KWVycm9yX3BvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFB5X3NzaXplX3QpKGVycm9yX3BvcysxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uKTsKKyAgICBQeV9ERUNSRUYocmVhc29uKTsKKyAgICBpZiAoZXhjICE9IE5VTEwpIHsKKyAgICAgICAgUHlDb2RlY19TdHJpY3RFcnJvcnMoZXhjKTsKKyAgICAgICAgUHlfWERFQ1JFRihleGMpOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30KKwogUHlPYmplY3QgKgogUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdChQeU9iamVjdCAqdW5pY29kZSkKIHsKLSNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpICYmIGRlZmluZWQoSEFWRV9VU0FCTEVfV0NIQVJfVCkKLSAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZU1CQ1MoUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisjaWZkZWYgSEFWRV9NQkNTCisgICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVDb2RlUGFnZShDUF9BQ1AsIHVuaWNvZGUsIE5VTEwpOwogI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCi0gICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVVVEY4KFB5VW5pY29kZV9BU19VTklDT0RFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXJyb2dhdGVlc2NhcGUiKTsKKyAgICByZXR1cm4gX1B5VW5pY29kZV9Bc1VURjhTdHJpbmcodW5pY29kZSwgInN1cnJvZ2F0ZWVzY2FwZSIpOwogI2Vsc2UKICAgICBQeUludGVycHJldGVyU3RhdGUgKmludGVycCA9IFB5VGhyZWFkU3RhdGVfR0VUKCktPmludGVycDsKICAgICAvKiBCb290c3RyYXAgY2hlY2s6IGlmIHRoZSBmaWxlc3lzdGVtIGNvZGVjIGlzIGltcGxlbWVudGVkIGluIFB5dGhvbiwgd2UKQEAgLTE2NDIsNDYgKzM0MzQsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1cnJvZ2F0ZWVzY2FwZSIpOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAgLyogbG9jYWxlIGVuY29kaW5nIHdpdGggc3Vycm9nYXRlZXNjYXBlICovCi0gICAgICAgIHdjaGFyX3QgKndjaGFyOwotICAgICAgICBjaGFyICpieXRlczsKLSAgICAgICAgUHlPYmplY3QgKmJ5dGVzX29iajsKLSAgICAgICAgc2l6ZV90IGVycm9yX3BvczsKLQotICAgICAgICB3Y2hhciA9IFB5VW5pY29kZV9Bc1dpZGVDaGFyU3RyaW5nKHVuaWNvZGUsIE5VTEwpOwotICAgICAgICBpZiAod2NoYXIgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBieXRlcyA9IF9QeV93Y2hhcjJjaGFyKHdjaGFyLCAmZXJyb3JfcG9zKTsKLSAgICAgICAgaWYgKGJ5dGVzID09IE5VTEwpIHsKLSAgICAgICAgICAgIGlmIChlcnJvcl9wb3MgIT0gKHNpemVfdCktMSkgewotICAgICAgICAgICAgICAgIGNoYXIgKmVycm1zZyA9IHN0cmVycm9yKGVycm5vKTsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKLSAgICAgICAgICAgICAgICBpZiAoZXJybXNnID09IE5VTEwpCi0gICAgICAgICAgICAgICAgICAgIGVycm1zZyA9ICJQeV93Y2hhcjJjaGFyKCkgZmFpbGVkIjsKLSAgICAgICAgICAgICAgICByYWlzZV9lbmNvZGVfZXhjZXB0aW9uKCZleGMsCi0gICAgICAgICAgICAgICAgICAgICJmaWxlc3lzdGVtZW5jb2RpbmciLAotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKSwgUHlVbmljb2RlX0dFVF9TSVpFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICBlcnJvcl9wb3MsIGVycm9yX3BvcysxLAotICAgICAgICAgICAgICAgICAgICBlcnJtc2cpOwotICAgICAgICAgICAgICAgIFB5X1hERUNSRUYoZXhjKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICAgICAgUHlNZW1fRnJlZSh3Y2hhcik7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBQeU1lbV9GcmVlKHdjaGFyKTsKLQotICAgICAgICBieXRlc19vYmogPSBQeUJ5dGVzX0Zyb21TdHJpbmcoYnl0ZXMpOwotICAgICAgICBQeU1lbV9GcmVlKGJ5dGVzKTsKLSAgICAgICAgcmV0dXJuIGJ5dGVzX29iajsKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVMb2NhbGUodW5pY29kZSwgInN1cnJvZ2F0ZWVzY2FwZSIpOwogICAgIH0KICNlbmRpZgogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyhQeU9iamVjdCAqdW5pY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQorUHlPYmplY3QgKgorUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyhQeU9iamVjdCAqdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKICAgICBQeU9iamVjdCAqdjsKICAgICBjaGFyIGxvd2VyWzExXTsgIC8qIEVub3VnaCBmb3IgYW55IGVuY29kaW5nIHNob3J0Y3V0ICovCkBAIC0xNjkxLDQ2ICszNDUyLDI3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIGlmIChlbmNvZGluZyA9PSBOVUxMKQotICAgICAgICBlbmNvZGluZyA9IFB5VW5pY29kZV9HZXREZWZhdWx0RW5jb2RpbmcoKTsKLQogICAgIC8qIFNob3J0Y3V0cyBmb3IgY29tbW9uIGRlZmF1bHQgZW5jb2RpbmdzICovCiAgICAgaWYgKG5vcm1hbGl6ZV9lbmNvZGluZyhlbmNvZGluZywgbG93ZXIsIHNpemVvZihsb3dlcikpKSB7Ci0gICAgICAgIGlmIChzdHJjbXAobG93ZXIsICJ1dGYtOCIpID09IDApCi0gICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZVVURjgoUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyk7CisgICAgICAgIGlmICgoc3RyY21wKGxvd2VyLCAidXRmLTgiKSA9PSAwKSB8fAorICAgICAgICAgICAgKHN0cmNtcChsb3dlciwgInV0ZjgiKSA9PSAwKSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGVycm9ycyA9PSBOVUxMIHx8IHN0cmNtcChlcnJvcnMsICJzdHJpY3QiKSA9PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiBfUHlVbmljb2RlX0FzVVRGOFN0cmluZyh1bmljb2RlLCBOVUxMKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZXR1cm4gX1B5VW5pY29kZV9Bc1VURjhTdHJpbmcodW5pY29kZSwgZXJyb3JzKTsKKyAgICAgICAgfQogICAgICAgICBlbHNlIGlmICgoc3RyY21wKGxvd2VyLCAibGF0aW4tMSIpID09IDApIHx8CisgICAgICAgICAgICAgICAgIChzdHJjbXAobG93ZXIsICJsYXRpbjEiKSA9PSAwKSB8fAogICAgICAgICAgICAgICAgICAoc3RyY21wKGxvd2VyLCAiaXNvLTg4NTktMSIpID09IDApKQotICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVMYXRpbjEoUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMpOwotI2lmIGRlZmluZWQoTVNfV0lORE9XUykgJiYgZGVmaW5lZChIQVZFX1VTQUJMRV9XQ0hBUl9UKQorICAgICAgICAgICAgcmV0dXJuIF9QeVVuaWNvZGVfQXNMYXRpbjFTdHJpbmcodW5pY29kZSwgZXJyb3JzKTsKKyNpZmRlZiBIQVZFX01CQ1MKICAgICAgICAgZWxzZSBpZiAoc3RyY21wKGxvd2VyLCAibWJjcyIpID09IDApCi0gICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZU1CQ1MoUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyk7CisgICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZUNvZGVQYWdlKENQX0FDUCwgdW5pY29kZSwgZXJyb3JzKTsKICNlbmRpZgogICAgICAgICBlbHNlIGlmIChzdHJjbXAobG93ZXIsICJhc2NpaSIpID09IDApCi0gICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZUFTQ0lJKFB5VW5pY29kZV9BU19VTklDT0RFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyk7CisgICAgICAgICAgICByZXR1cm4gX1B5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nKHVuaWNvZGUsIGVycm9ycyk7CiAgICAgfQotICAgIC8qIER1cmluZyBib290c3RyYXAsIHdlIG1heSBuZWVkIHRvIGZpbmQgdGhlIGVuY29kaW5ncwotICAgICAgIHBhY2thZ2UsIHRvIGxvYWQgdGhlIGZpbGUgc3lzdGVtIGVuY29kaW5nLCBhbmQgcmVxdWlyZSB0aGUKLSAgICAgICBmaWxlIHN5c3RlbSBlbmNvZGluZyBpbiBvcmRlciB0byBsb2FkIHRoZSBlbmNvZGluZ3MKLSAgICAgICBwYWNrYWdlLgotCi0gICAgICAgQnJlYWsgb3V0IG9mIHRoaXMgZGVwZW5kZW5jeSBieSBhc3N1bWluZyB0aGF0IHRoZSBwYXRoIHRvCi0gICAgICAgdGhlIGVuY29kaW5ncyBtb2R1bGUgaXMgQVNDSUktb25seS4gIFhYWCBjb3VsZCB0cnkgd2NzdG9tYnMKLSAgICAgICBpbnN0ZWFkLCBpZiB0aGUgZmlsZSBzeXN0ZW0gZW5jb2RpbmcgaXMgdGhlIGxvY2FsZSdzCi0gICAgICAgZW5jb2RpbmcuICovCi0gICAgaWYgKFB5X0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcgJiYKLSAgICAgICAgICAgICBzdHJjbXAoZW5jb2RpbmcsIFB5X0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcpID09IDAgJiYKLSAgICAgICAgICAgICAhUHlUaHJlYWRTdGF0ZV9HRVQoKS0+aW50ZXJwLT5jb2RlY3NfaW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRW5jb2RlQVNDSUkoUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyk7CiAKICAgICAvKiBFbmNvZGUgdmlhIHRoZSBjb2RlYyByZWdpc3RyeSAqLwogICAgIHYgPSBQeUNvZGVjX0VuY29kZSh1bmljb2RlLCBlbmNvZGluZywgZXJyb3JzKTsKQEAgLTE3NjYsOSArMzUwOCwxMCBAQAogICAgIHJldHVybiBOVUxMOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0FzRW5jb2RlZFVuaWNvZGUoUHlPYmplY3QgKnVuaWNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQorUHlPYmplY3QgKgorUHlVbmljb2RlX0FzRW5jb2RlZFVuaWNvZGUoUHlPYmplY3QgKnVuaWNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKICAgICBQeU9iamVjdCAqdjsKIApAQCAtMTc5NywyNCArMzU0MCwxNTEgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAotUHlPYmplY3QgKl9QeVVuaWNvZGVfQXNEZWZhdWx0RW5jb2RlZFN0cmluZyhQeU9iamVjdCAqdW5pY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQorc3RhdGljIHNpemVfdAorbWJzdG93Y3NfZXJyb3Jwb3MoY29uc3QgY2hhciAqc3RyLCBzaXplX3QgbGVuKQogewotICAgIFB5T2JqZWN0ICp2ID0gKChQeVVuaWNvZGVPYmplY3QgKil1bmljb2RlKS0+ZGVmZW5jOwotICAgIGlmICh2KQotICAgICAgICByZXR1cm4gdjsKLSAgICBpZiAoZXJyb3JzICE9IE5VTEwpCi0gICAgICAgIFB5X0ZhdGFsRXJyb3IoIm5vbi1OVUxMIGVuY29kaW5nIGluIF9QeVVuaWNvZGVfQXNEZWZhdWx0RW5jb2RlZFN0cmluZyIpOwotICAgIHYgPSBQeVVuaWNvZGVfRW5jb2RlVVRGOChQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKLSAgICBpZiAoIXYpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgICgoUHlVbmljb2RlT2JqZWN0ICopdW5pY29kZSktPmRlZmVuYyA9IHY7Ci0gICAgcmV0dXJuIHY7CisjaWZkZWYgSEFWRV9NQlJUT1dDCisgICAgY29uc3QgY2hhciAqc3RhcnQgPSBzdHI7CisgICAgbWJzdGF0ZV90IG1iczsKKyAgICBzaXplX3QgY29udmVydGVkOworICAgIHdjaGFyX3QgY2g7CisKKyAgICBtZW1zZXQoJm1icywgMCwgc2l6ZW9mIG1icyk7CisgICAgd2hpbGUgKGxlbikKKyAgICB7CisgICAgICAgIGNvbnZlcnRlZCA9IG1icnRvd2MoJmNoLCAoY2hhciopc3RyLCBsZW4sICZtYnMpOworICAgICAgICBpZiAoY29udmVydGVkID09IDApCisgICAgICAgICAgICAvKiBSZWFjaGVkIGVuZCBvZiBzdHJpbmcgKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBpZiAoY29udmVydGVkID09IChzaXplX3QpLTEgfHwgY29udmVydGVkID09IChzaXplX3QpLTIpIHsKKyAgICAgICAgICAgIC8qIENvbnZlcnNpb24gZXJyb3Igb3IgaW5jb21wbGV0ZSBjaGFyYWN0ZXIgKi8KKyAgICAgICAgICAgIHJldHVybiBzdHIgLSBzdGFydDsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHN0ciArPSBjb252ZXJ0ZWQ7CisgICAgICAgICAgICBsZW4gLT0gY29udmVydGVkOworICAgICAgICB9CisgICAgfQorICAgIC8qIGZhaWxlZCB0byBmaW5kIHRoZSB1bmRlY29kYWJsZSBieXRlIHNlcXVlbmNlICovCisgICAgcmV0dXJuIDA7CisjZW5kaWYKKyAgICByZXR1cm4gMDsKIH0KIAogUHlPYmplY3QqCitQeVVuaWNvZGVfRGVjb2RlTG9jYWxlQW5kU2l6ZShjb25zdCBjaGFyICpzdHIsIFB5X3NzaXplX3QgbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQoreworICAgIHdjaGFyX3Qgc21hbGxidWZbMjU2XTsKKyAgICBzaXplX3Qgc21hbGxidWZfbGVuID0gUHlfQVJSQVlfTEVOR1RIKHNtYWxsYnVmKTsKKyAgICB3Y2hhcl90ICp3c3RyOworICAgIHNpemVfdCB3bGVuLCB3bGVuMjsKKyAgICBQeU9iamVjdCAqdW5pY29kZTsKKyAgICBpbnQgc3Vycm9nYXRlZXNjYXBlOworICAgIHNpemVfdCBlcnJvcl9wb3M7CisgICAgY2hhciAqZXJybXNnOworICAgIFB5T2JqZWN0ICpyZWFzb24sICpleGM7CisKKyAgICBpZiAobG9jYWxlX2Vycm9yX2hhbmRsZXIoZXJyb3JzLCAmc3Vycm9nYXRlZXNjYXBlKSA8IDApCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKHN0cltsZW5dICE9ICdcMCcgfHwgbGVuICE9IHN0cmxlbihzdHIpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJlbWJlZGRlZCBudWxsIGNoYXJhY3RlciIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBpZiAoc3Vycm9nYXRlZXNjYXBlKQorICAgIHsKKyAgICAgICAgd3N0ciA9IF9QeV9jaGFyMndjaGFyKHN0ciwgJndsZW4pOworICAgICAgICBpZiAod3N0ciA9PSBOVUxMKSB7CisgICAgICAgICAgICBpZiAod2xlbiA9PSAoc2l6ZV90KS0xKQorICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX09TRXJyb3IpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KKworICAgICAgICB1bmljb2RlID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcih3c3RyLCB3bGVuKTsKKyAgICAgICAgUHlNZW1fRnJlZSh3c3RyKTsKKyAgICB9CisgICAgZWxzZSB7CisjaWZuZGVmIEhBVkVfQlJPS0VOX01CU1RPV0NTCisgICAgICAgIHdsZW4gPSBtYnN0b3djcyhOVUxMLCBzdHIsIDApOworI2Vsc2UKKyAgICAgICAgd2xlbiA9IGxlbjsKKyNlbmRpZgorICAgICAgICBpZiAod2xlbiA9PSAoc2l6ZV90KS0xKQorICAgICAgICAgICAgZ290byBkZWNvZGVfZXJyb3I7CisgICAgICAgIGlmICh3bGVuKzEgPD0gc21hbGxidWZfbGVuKSB7CisgICAgICAgICAgICB3c3RyID0gc21hbGxidWY7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpZiAod2xlbiA+IFBZX1NTSVpFX1RfTUFYIC8gc2l6ZW9mKHdjaGFyX3QpIC0gMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKKworICAgICAgICAgICAgd3N0ciA9IFB5TWVtX01hbGxvYygod2xlbisxKSAqIHNpemVvZih3Y2hhcl90KSk7CisgICAgICAgICAgICBpZiAoIXdzdHIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIH0KKworICAgICAgICAvKiBUaGlzIHNob3VsZG4ndCBmYWlsIG5vdyAqLworICAgICAgICB3bGVuMiA9IG1ic3Rvd2NzKHdzdHIsIHN0ciwgd2xlbisxKTsKKyAgICAgICAgaWYgKHdsZW4yID09IChzaXplX3QpLTEpIHsKKyAgICAgICAgICAgIGlmICh3c3RyICE9IHNtYWxsYnVmKQorICAgICAgICAgICAgICAgIFB5TWVtX0ZyZWUod3N0cik7CisgICAgICAgICAgICBnb3RvIGRlY29kZV9lcnJvcjsKKyAgICAgICAgfQorI2lmZGVmIEhBVkVfQlJPS0VOX01CU1RPV0NTCisgICAgICAgIGFzc2VydCh3bGVuMiA9PSB3bGVuKTsKKyNlbmRpZgorICAgICAgICB1bmljb2RlID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcih3c3RyLCB3bGVuMik7CisgICAgICAgIGlmICh3c3RyICE9IHNtYWxsYnVmKQorICAgICAgICAgICAgUHlNZW1fRnJlZSh3c3RyKTsKKyAgICB9CisgICAgcmV0dXJuIHVuaWNvZGU7CisKK2RlY29kZV9lcnJvcjoKKyAgICBlcnJtc2cgPSBzdHJlcnJvcihlcnJubyk7CisgICAgYXNzZXJ0KGVycm1zZyAhPSBOVUxMKTsKKworICAgIGVycm9yX3BvcyA9IG1ic3Rvd2NzX2Vycm9ycG9zKHN0ciwgbGVuKTsKKyAgICBpZiAoZXJybXNnICE9IE5VTEwpIHsKKyAgICAgICAgc2l6ZV90IGVycmxlbjsKKyAgICAgICAgd3N0ciA9IF9QeV9jaGFyMndjaGFyKGVycm1zZywgJmVycmxlbik7CisgICAgICAgIGlmICh3c3RyICE9IE5VTEwpIHsKKyAgICAgICAgICAgIHJlYXNvbiA9IFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIod3N0ciwgZXJybGVuKTsKKyAgICAgICAgICAgIFB5TWVtX0ZyZWUod3N0cik7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgZXJybXNnID0gTlVMTDsKKyAgICB9CisgICAgaWYgKGVycm1zZyA9PSBOVUxMKQorICAgICAgICByZWFzb24gPSBQeVVuaWNvZGVfRnJvbVN0cmluZygKKyAgICAgICAgICAgICJtYnN0b3djcygpIGVuY291bnRlcmVkIGFuIGludmFsaWQgbXVsdGlieXRlIHNlcXVlbmNlIik7CisgICAgaWYgKHJlYXNvbiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGV4YyA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbihQeUV4Y19Vbmljb2RlRGVjb2RlRXJyb3IsICJzeSNubk8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYWxlIiwgc3RyLCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQeV9zc2l6ZV90KWVycm9yX3BvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFB5X3NzaXplX3QpKGVycm9yX3BvcysxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uKTsKKyAgICBQeV9ERUNSRUYocmVhc29uKTsKKyAgICBpZiAoZXhjICE9IE5VTEwpIHsKKyAgICAgICAgUHlDb2RlY19TdHJpY3RFcnJvcnMoZXhjKTsKKyAgICAgICAgUHlfWERFQ1JFRihleGMpOworICAgIH0KKyAgICByZXR1cm4gTlVMTDsKK30KKworUHlPYmplY3QqCitQeVVuaWNvZGVfRGVjb2RlTG9jYWxlKGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhciAqZXJyb3JzKQoreworICAgIFB5X3NzaXplX3Qgc2l6ZSA9IChQeV9zc2l6ZV90KXN0cmxlbihzdHIpOworICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlTG9jYWxlQW5kU2l6ZShzdHIsIHNpemUsIGVycm9ycyk7Cit9CisKKworUHlPYmplY3QqCiBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KGNvbnN0IGNoYXIgKnMpIHsKICAgICBQeV9zc2l6ZV90IHNpemUgPSAoUHlfc3NpemVfdClzdHJsZW4ocyk7CiAgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHRBbmRTaXplKHMsIHNpemUpOwpAQCAtMTgyMywxMCArMzY5MywxMCBAQAogUHlPYmplY3QqCiBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0QW5kU2l6ZShjb25zdCBjaGFyICpzLCBQeV9zc2l6ZV90IHNpemUpCiB7Ci0jaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiBkZWZpbmVkKEhBVkVfVVNBQkxFX1dDSEFSX1QpCisjaWZkZWYgSEFWRV9NQkNTCiAgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVNQkNTKHMsIHNpemUsIE5VTEwpOwogI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCi0gICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVVVEY4KHMsIHNpemUsICJzdXJyb2dhdGVlc2NhcGUiKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0RlY29kZVVURjhTdGF0ZWZ1bChzLCBzaXplLCAic3Vycm9nYXRlZXNjYXBlIiwgTlVMTCk7CiAjZWxzZQogICAgIFB5SW50ZXJwcmV0ZXJTdGF0ZSAqaW50ZXJwID0gUHlUaHJlYWRTdGF0ZV9HRVQoKS0+aW50ZXJwOwogICAgIC8qIEJvb3RzdHJhcCBjaGVjazogaWYgdGhlIGZpbGVzeXN0ZW0gY29kZWMgaXMgaW1wbGVtZW50ZWQgaW4gUHl0aG9uLCB3ZQpAQCAtMTg0NCwyMyArMzcxNCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXJyb2dhdGVlc2NhcGUiKTsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIC8qIGxvY2FsZSBlbmNvZGluZyB3aXRoIHN1cnJvZ2F0ZWVzY2FwZSAqLwotICAgICAgICB3Y2hhcl90ICp3Y2hhcjsKLSAgICAgICAgUHlPYmplY3QgKnVuaWNvZGU7Ci0gICAgICAgIHNpemVfdCBsZW47Ci0KLSAgICAgICAgaWYgKHNbc2l6ZV0gIT0gJ1wwJyB8fCBzaXplICE9IHN0cmxlbihzKSkgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImVtYmVkZGVkIE5VTCBjaGFyYWN0ZXIiKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0KLSAgICAgICAgd2NoYXIgPSBfUHlfY2hhcjJ3Y2hhcihzLCAmbGVuKTsKLSAgICAgICAgaWYgKHdjaGFyID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKLQotICAgICAgICB1bmljb2RlID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcih3Y2hhciwgbGVuKTsKLSAgICAgICAgUHlNZW1fRnJlZSh3Y2hhcik7Ci0gICAgICAgIHJldHVybiB1bmljb2RlOworICAgICAgICByZXR1cm4gUHlVbmljb2RlX0RlY29kZUxvY2FsZUFuZFNpemUocywgc2l6ZSwgInN1cnJvZ2F0ZWVzY2FwZSIpOwogICAgIH0KICNlbmRpZgogfQpAQCAtMTkyMywxMyArMzc3NywxMyBAQAogUHlVbmljb2RlX0ZTRGVjb2RlcihQeU9iamVjdCogYXJnLCB2b2lkKiBhZGRyKQogewogICAgIFB5T2JqZWN0ICpvdXRwdXQgPSBOVUxMOwotICAgIFB5X3NzaXplX3Qgc2l6ZTsKLSAgICB2b2lkICpkYXRhOwogICAgIGlmIChhcmcgPT0gTlVMTCkgewogICAgICAgICBQeV9ERUNSRUYoKihQeU9iamVjdCoqKWFkZHIpOwogICAgICAgICByZXR1cm4gMTsKICAgICB9CiAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhhcmcpKSB7CisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoYXJnKSA9PSAtMSkKKyAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBvdXRwdXQgPSBhcmc7CiAgICAgICAgIFB5X0lOQ1JFRihvdXRwdXQpOwogICAgIH0KQEAgLTE5NDgsOSArMzgwMiwxMiBAQAogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9Ci0gICAgc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShvdXRwdXQpOwotICAgIGRhdGEgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShvdXRwdXQpOwotICAgIGlmIChzaXplICE9IFB5X1VOSUNPREVfc3RybGVuKGRhdGEpKSB7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShvdXRwdXQpID09IC0xKSB7CisgICAgICAgIFB5X0RFQ1JFRihvdXRwdXQpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKGZpbmRjaGFyKFB5VW5pY29kZV9EQVRBKG91dHB1dCksIFB5VW5pY29kZV9LSU5EKG91dHB1dCksCisgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKG91dHB1dCksIDAsIDEpID49IDApIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImVtYmVkZGVkIE5VTCBjaGFyYWN0ZXIiKTsKICAgICAgICAgUHlfREVDUkVGKG91dHB1dCk7CiAgICAgICAgIHJldHVybiAwOwpAQCAtMTk2MSw0MCArMzgxOCwxNjYgQEAKIAogCiBjaGFyKgotX1B5VW5pY29kZV9Bc1N0cmluZ0FuZFNpemUoUHlPYmplY3QgKnVuaWNvZGUsIFB5X3NzaXplX3QgKnBzaXplKQorUHlVbmljb2RlX0FzVVRGOEFuZFNpemUoUHlPYmplY3QgKnVuaWNvZGUsIFB5X3NzaXplX3QgKnBzaXplKQogewogICAgIFB5T2JqZWN0ICpieXRlczsKKwogICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHVuaWNvZGUpKSB7CiAgICAgICAgIFB5RXJyX0JhZEFyZ3VtZW50KCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBieXRlcyA9IF9QeVVuaWNvZGVfQXNEZWZhdWx0RW5jb2RlZFN0cmluZyh1bmljb2RlLCBOVUxMKTsKLSAgICBpZiAoYnl0ZXMgPT0gTlVMTCkKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHVuaWNvZGUpID09IC0xKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAocHNpemUgIT0gTlVMTCkKLSAgICAgICAgKnBzaXplID0gUHlCeXRlc19HRVRfU0laRShieXRlcyk7Ci0gICAgcmV0dXJuIFB5Qnl0ZXNfQVNfU1RSSU5HKGJ5dGVzKTsKKworICAgIGlmIChQeVVuaWNvZGVfVVRGOCh1bmljb2RlKSA9PSBOVUxMKSB7CisgICAgICAgIGFzc2VydCghUHlVbmljb2RlX0lTX0NPTVBBQ1RfQVNDSUkodW5pY29kZSkpOworICAgICAgICBieXRlcyA9IF9QeVVuaWNvZGVfQXNVVEY4U3RyaW5nKHVuaWNvZGUsICJzdHJpY3QiKTsKKyAgICAgICAgaWYgKGJ5dGVzID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgX1B5VW5pY29kZV9VVEY4KHVuaWNvZGUpID0gUHlPYmplY3RfTUFMTE9DKFB5Qnl0ZXNfR0VUX1NJWkUoYnl0ZXMpICsgMSk7CisgICAgICAgIGlmIChfUHlVbmljb2RlX1VURjgodW5pY29kZSkgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfREVDUkVGKGJ5dGVzKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIF9QeVVuaWNvZGVfVVRGOF9MRU5HVEgodW5pY29kZSkgPSBQeUJ5dGVzX0dFVF9TSVpFKGJ5dGVzKTsKKyAgICAgICAgUHlfTUVNQ1BZKF9QeVVuaWNvZGVfVVRGOCh1bmljb2RlKSwKKyAgICAgICAgICAgICAgICAgIFB5Qnl0ZXNfQVNfU1RSSU5HKGJ5dGVzKSwKKyAgICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfVVRGOF9MRU5HVEgodW5pY29kZSkgKyAxKTsKKyAgICAgICAgUHlfREVDUkVGKGJ5dGVzKTsKKyAgICB9CisKKyAgICBpZiAocHNpemUpCisgICAgICAgICpwc2l6ZSA9IFB5VW5pY29kZV9VVEY4X0xFTkdUSCh1bmljb2RlKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX1VURjgodW5pY29kZSk7CiB9CiAKIGNoYXIqCi1fUHlVbmljb2RlX0FzU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlKQorUHlVbmljb2RlX0FzVVRGOChQeU9iamVjdCAqdW5pY29kZSkKIHsKLSAgICByZXR1cm4gX1B5VW5pY29kZV9Bc1N0cmluZ0FuZFNpemUodW5pY29kZSwgTlVMTCk7CisgICAgcmV0dXJuIFB5VW5pY29kZV9Bc1VURjhBbmRTaXplKHVuaWNvZGUsIE5VTEwpOwogfQogCi1QeV9VTklDT0RFICpQeVVuaWNvZGVfQXNVbmljb2RlKFB5T2JqZWN0ICp1bmljb2RlKQorUHlfVU5JQ09ERSAqCitQeVVuaWNvZGVfQXNVbmljb2RlQW5kU2l6ZShQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCAqc2l6ZSkKIHsKKyAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpvbmVfYnl0ZTsKKyNpZiBTSVpFT0ZfV0NIQVJfVCA9PSA0CisgICAgY29uc3QgUHlfVUNTMiAqdHdvX2J5dGVzOworI2Vsc2UKKyAgICBjb25zdCBQeV9VQ1M0ICpmb3VyX2J5dGVzOworICAgIGNvbnN0IFB5X1VDUzQgKnVjczRfZW5kOworICAgIFB5X3NzaXplX3QgbnVtX3N1cnJvZ2F0ZXM7CisjZW5kaWYKKyAgICB3Y2hhcl90ICp3OworICAgIHdjaGFyX3QgKndjaGFyX2VuZDsKKwogICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHVuaWNvZGUpKSB7CiAgICAgICAgIFB5RXJyX0JhZEFyZ3VtZW50KCk7Ci0gICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKTsKKyAgICBpZiAoX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpID09IE5VTEwpIHsKKyAgICAgICAgLyogTm9uLUFTQ0lJIGNvbXBhY3QgdW5pY29kZSBvYmplY3QgKi8KKyAgICAgICAgYXNzZXJ0KF9QeVVuaWNvZGVfS0lORCh1bmljb2RlKSAhPSAwKTsKKyAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9JU19SRUFEWSh1bmljb2RlKSk7CiAKLSAgb25FcnJvcjoKLSAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpID09IFB5VW5pY29kZV80QllURV9LSU5EKSB7CisjaWYgU0laRU9GX1dDSEFSX1QgPT0gMgorICAgICAgICAgICAgZm91cl9ieXRlcyA9IFB5VW5pY29kZV80QllURV9EQVRBKHVuaWNvZGUpOworICAgICAgICAgICAgdWNzNF9lbmQgPSBmb3VyX2J5dGVzICsgX1B5VW5pY29kZV9MRU5HVEgodW5pY29kZSk7CisgICAgICAgICAgICBudW1fc3Vycm9nYXRlcyA9IDA7CisKKyAgICAgICAgICAgIGZvciAoOyBmb3VyX2J5dGVzIDwgdWNzNF9lbmQ7ICsrZm91cl9ieXRlcykgeworICAgICAgICAgICAgICAgIGlmICgqZm91cl9ieXRlcyA+IDB4RkZGRikKKyAgICAgICAgICAgICAgICAgICAgKytudW1fc3Vycm9nYXRlczsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpID0gKHdjaGFyX3QgKikgUHlPYmplY3RfTUFMTE9DKAorICAgICAgICAgICAgICAgICAgICBzaXplb2Yod2NoYXJfdCkgKiAoX1B5VW5pY29kZV9MRU5HVEgodW5pY29kZSkgKyAxICsgbnVtX3N1cnJvZ2F0ZXMpKTsKKyAgICAgICAgICAgIGlmICghX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSkgPSBfUHlVbmljb2RlX0xFTkdUSCh1bmljb2RlKSArIG51bV9zdXJyb2dhdGVzOworCisgICAgICAgICAgICB3ID0gX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpOworICAgICAgICAgICAgd2NoYXJfZW5kID0gdyArIF9QeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSk7CisgICAgICAgICAgICBmb3VyX2J5dGVzID0gUHlVbmljb2RlXzRCWVRFX0RBVEEodW5pY29kZSk7CisgICAgICAgICAgICBmb3IgKDsgZm91cl9ieXRlcyA8IHVjczRfZW5kOyArK2ZvdXJfYnl0ZXMsICsrdykgeworICAgICAgICAgICAgICAgIGlmICgqZm91cl9ieXRlcyA+IDB4RkZGRikgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnQoKmZvdXJfYnl0ZXMgPD0gTUFYX1VOSUNPREUpOworICAgICAgICAgICAgICAgICAgICAvKiBlbmNvZGUgc3Vycm9nYXRlIHBhaXIgaW4gdGhpcyBjYXNlICovCisgICAgICAgICAgICAgICAgICAgICp3KysgPSBQeV9VTklDT0RFX0hJR0hfU1VSUk9HQVRFKCpmb3VyX2J5dGVzKTsKKyAgICAgICAgICAgICAgICAgICAgKncgICA9IFB5X1VOSUNPREVfTE9XX1NVUlJPR0FURSgqZm91cl9ieXRlcyk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgKncgPSAqZm91cl9ieXRlczsKKworICAgICAgICAgICAgICAgIGlmICh3ID4gd2NoYXJfZW5kKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCgwICYmICJNaXNjYWxjdWxhdGVkIHN0cmluZyBlbmQiKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAqdyA9IDA7CisjZWxzZQorICAgICAgICAgICAgLyogc2l6ZW9mKHdjaGFyX3QpID09IDQgKi8KKyAgICAgICAgICAgIFB5X0ZhdGFsRXJyb3IoIkltcG9zc2libGUgdW5pY29kZSBvYmplY3Qgc3RhdGUsIHdzdHIgYW5kIHN0ciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJzaG91bGQgc2hhcmUgbWVtb3J5IGFscmVhZHkuIik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyNlbmRpZgorICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpID0gKHdjaGFyX3QgKikgUHlPYmplY3RfTUFMTE9DKHNpemVvZih3Y2hhcl90KSAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChfUHlVbmljb2RlX0xFTkdUSCh1bmljb2RlKSArIDEpKTsKKyAgICAgICAgICAgIGlmICghX1B5VW5pY29kZV9XU1RSKHVuaWNvZGUpKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghUHlVbmljb2RlX0lTX0NPTVBBQ1RfQVNDSUkodW5pY29kZSkpCisgICAgICAgICAgICAgICAgX1B5VW5pY29kZV9XU1RSX0xFTkdUSCh1bmljb2RlKSA9IF9QeVVuaWNvZGVfTEVOR1RIKHVuaWNvZGUpOworICAgICAgICAgICAgdyA9IF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKTsKKyAgICAgICAgICAgIHdjaGFyX2VuZCA9IHcgKyBfUHlVbmljb2RlX0xFTkdUSCh1bmljb2RlKTsKKworICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpID09IFB5VW5pY29kZV8xQllURV9LSU5EKSB7CisgICAgICAgICAgICAgICAgb25lX2J5dGUgPSBQeVVuaWNvZGVfMUJZVEVfREFUQSh1bmljb2RlKTsKKyAgICAgICAgICAgICAgICBmb3IgKDsgdyA8IHdjaGFyX2VuZDsgKytvbmVfYnl0ZSwgKyt3KQorICAgICAgICAgICAgICAgICAgICAqdyA9ICpvbmVfYnl0ZTsKKyAgICAgICAgICAgICAgICAvKiBudWxsLXRlcm1pbmF0ZSB0aGUgd3N0ciAqLworICAgICAgICAgICAgICAgICp3ID0gMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpID09IFB5VW5pY29kZV8yQllURV9LSU5EKSB7CisjaWYgU0laRU9GX1dDSEFSX1QgPT0gNAorICAgICAgICAgICAgICAgIHR3b19ieXRlcyA9IFB5VW5pY29kZV8yQllURV9EQVRBKHVuaWNvZGUpOworICAgICAgICAgICAgICAgIGZvciAoOyB3IDwgd2NoYXJfZW5kOyArK3R3b19ieXRlcywgKyt3KQorICAgICAgICAgICAgICAgICAgICAqdyA9ICp0d29fYnl0ZXM7CisgICAgICAgICAgICAgICAgLyogbnVsbC10ZXJtaW5hdGUgdGhlIHdzdHIgKi8KKyAgICAgICAgICAgICAgICAqdyA9IDA7CisjZWxzZQorICAgICAgICAgICAgICAgIC8qIHNpemVvZih3Y2hhcl90KSA9PSAyICovCisgICAgICAgICAgICAgICAgUHlPYmplY3RfRlJFRShfUHlVbmljb2RlX1dTVFIodW5pY29kZSkpOworICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKSA9IE5VTEw7CisgICAgICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigiSW1wb3NzaWJsZSB1bmljb2RlIG9iamVjdCBzdGF0ZSwgd3N0ciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kIHN0ciBzaG91bGQgc2hhcmUgbWVtb3J5IGFscmVhZHkuIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisjZW5kaWYKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydCgwICYmICJUaGlzIHNob3VsZCBuZXZlciBoYXBwZW4uIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHNpemUgIT0gTlVMTCkKKyAgICAgICAgKnNpemUgPSBQeVVuaWNvZGVfV1NUUl9MRU5HVEgodW5pY29kZSk7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVfV1NUUih1bmljb2RlKTsKIH0KIAotUHlfc3NpemVfdCBQeVVuaWNvZGVfR2V0U2l6ZShQeU9iamVjdCAqdW5pY29kZSkKK1B5X1VOSUNPREUgKgorUHlVbmljb2RlX0FzVW5pY29kZShQeU9iamVjdCAqdW5pY29kZSkKK3sKKyAgICByZXR1cm4gUHlVbmljb2RlX0FzVW5pY29kZUFuZFNpemUodW5pY29kZSwgTlVMTCk7Cit9CisKKworUHlfc3NpemVfdAorUHlVbmljb2RlX0dldFNpemUoUHlPYmplY3QgKnVuaWNvZGUpCiB7CiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodW5pY29kZSkpIHsKICAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKQEAgLTIwMDYsNyArMzk4OSw1NyBAQAogICAgIHJldHVybiAtMTsKIH0KIAotY29uc3QgY2hhciAqUHlVbmljb2RlX0dldERlZmF1bHRFbmNvZGluZyh2b2lkKQorUHlfc3NpemVfdAorUHlVbmljb2RlX0dldExlbmd0aChQeU9iamVjdCAqdW5pY29kZSkKK3sKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh1bmljb2RlKSkgeworICAgICAgICBQeUVycl9CYWRBcmd1bWVudCgpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodW5pY29kZSkgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSk7Cit9CisKK1B5X1VDUzQKK1B5VW5pY29kZV9SZWFkQ2hhcihQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCBpbmRleCkKK3sKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh1bmljb2RlKSB8fCBQeVVuaWNvZGVfUkVBRFkodW5pY29kZSkgPT0gLTEpIHsKKyAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIChQeV9VQ1M0KS0xOworICAgIH0KKyAgICBpZiAoaW5kZXggPCAwIHx8IGluZGV4ID49IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbmRleEVycm9yLCAic3RyaW5nIGluZGV4IG91dCBvZiByYW5nZSIpOworICAgICAgICByZXR1cm4gKFB5X1VDUzQpLTE7CisgICAgfQorICAgIHJldHVybiBQeVVuaWNvZGVfUkVBRF9DSEFSKHVuaWNvZGUsIGluZGV4KTsKK30KKworaW50CitQeVVuaWNvZGVfV3JpdGVDaGFyKFB5T2JqZWN0ICp1bmljb2RlLCBQeV9zc2l6ZV90IGluZGV4LCBQeV9VQ1M0IGNoKQoreworICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHVuaWNvZGUpIHx8ICFQeVVuaWNvZGVfSVNfQ09NUEFDVCh1bmljb2RlKSkgeworICAgICAgICBQeUVycl9CYWRBcmd1bWVudCgpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkodW5pY29kZSkpOworICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0luZGV4RXJyb3IsICJzdHJpbmcgaW5kZXggb3V0IG9mIHJhbmdlIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKHVuaWNvZGVfY2hlY2tfbW9kaWZpYWJsZSh1bmljb2RlKSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmIChjaCA+IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh1bmljb2RlKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImNoYXJhY3RlciBvdXQgb2YgcmFuZ2UiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBQeVVuaWNvZGVfV1JJVEUoUHlVbmljb2RlX0tJTkQodW5pY29kZSksIFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpLAorICAgICAgICAgICAgICAgICAgICBpbmRleCwgY2gpOworICAgIHJldHVybiAwOworfQorCitjb25zdCBjaGFyICoKK1B5VW5pY29kZV9HZXREZWZhdWx0RW5jb2Rpbmcodm9pZCkKIHsKICAgICByZXR1cm4gInV0Zi04IjsKIH0KQEAgLTIwNDUsMjYgKzQwNzgsMjkgQEAKICAgIHJldHVybiAwIG9uIHN1Y2Nlc3MsIC0xIG9uIGVycm9yCiAqLwogCi1zdGF0aWMKLWludCB1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcihjb25zdCBjaGFyICplcnJvcnMsIFB5T2JqZWN0ICoqZXJyb3JIYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLCBjb25zdCBjaGFyICpyZWFzb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqKmlucHV0LCBjb25zdCBjaGFyICoqaW5lbmQsIFB5X3NzaXplX3QgKnN0YXJ0aW5wb3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqZW5kaW5wb3MsIFB5T2JqZWN0ICoqZXhjZXB0aW9uT2JqZWN0LCBjb25zdCBjaGFyICoqaW5wdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlT2JqZWN0ICoqb3V0cHV0LCBQeV9zc2l6ZV90ICpvdXRwb3MsIFB5X1VOSUNPREUgKipvdXRwdHIpCitzdGF0aWMgaW50Cit1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcihjb25zdCBjaGFyICplcnJvcnMsIFB5T2JqZWN0ICoqZXJyb3JIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGNvbnN0IGNoYXIgKnJlYXNvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKippbnB1dCwgY29uc3QgY2hhciAqKmluZW5kLCBQeV9zc2l6ZV90ICpzdGFydGlucG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqZW5kaW5wb3MsIFB5T2JqZWN0ICoqZXhjZXB0aW9uT2JqZWN0LCBjb25zdCBjaGFyICoqaW5wdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqKm91dHB1dCwgUHlfc3NpemVfdCAqb3V0cG9zKQogewogICAgIHN0YXRpYyBjaGFyICphcmdwYXJzZSA9ICJPIW47ZGVjb2RpbmcgZXJyb3IgaGFuZGxlciBtdXN0IHJldHVybiAoc3RyLCBpbnQpIHR1cGxlIjsKIAogICAgIFB5T2JqZWN0ICpyZXN0dXBsZSA9IE5VTEw7CiAgICAgUHlPYmplY3QgKnJlcHVuaWNvZGUgPSBOVUxMOwotICAgIFB5X3NzaXplX3Qgb3V0c2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRSgqb3V0cHV0KTsKKyAgICBQeV9zc2l6ZV90IG91dHNpemU7CiAgICAgUHlfc3NpemVfdCBpbnNpemU7CiAgICAgUHlfc3NpemVfdCByZXF1aXJlZHNpemU7CiAgICAgUHlfc3NpemVfdCBuZXdwb3M7Ci0gICAgUHlfVU5JQ09ERSAqcmVwcHRyOwogICAgIFB5T2JqZWN0ICppbnB1dG9iaiA9IE5VTEw7Ci0gICAgUHlfc3NpemVfdCByZXBzaXplOwogICAgIGludCByZXMgPSAtMTsKIAorICAgIGlmIChfUHlVbmljb2RlX0tJTkQoKm91dHB1dCkgIT0gUHlVbmljb2RlX1dDSEFSX0tJTkQpCisgICAgICAgIG91dHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCgqb3V0cHV0KTsKKyAgICBlbHNlCisgICAgICAgIG91dHNpemUgPSBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKCpvdXRwdXQpOworCiAgICAgaWYgKCplcnJvckhhbmRsZXIgPT0gTlVMTCkgewogICAgICAgICAqZXJyb3JIYW5kbGVyID0gUHlDb2RlY19Mb29rdXBFcnJvcihlcnJvcnMpOwogICAgICAgICBpZiAoKmVycm9ySGFuZGxlciA9PSBOVUxMKQpAQCAtMjA4OCw2ICs0MTI0LDggQEAKICAgICB9CiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKHJlc3R1cGxlLCBhcmdwYXJzZSwgJlB5VW5pY29kZV9UeXBlLCAmcmVwdW5pY29kZSwgJm5ld3BvcykpCiAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHJlcHVuaWNvZGUpID09IC0xKQorICAgICAgICBnb3RvIG9uRXJyb3I7CiAKICAgICAvKiBDb3B5IGJhY2sgdGhlIGJ5dGVzIHZhcmlhYmxlcywgd2hpY2ggbWlnaHQgaGF2ZSBiZWVuIG1vZGlmaWVkIGJ5IHRoZQogICAgICAgIGNhbGxiYWNrICovCkBAIC0yMTExLDI1ICs0MTQ5LDQ3IEBACiAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICB9CiAKLSAgICAvKiBuZWVkIG1vcmUgc3BhY2U/IChhdCBsZWFzdCBlbm91Z2ggZm9yIHdoYXQgd2UKLSAgICAgICBoYXZlK3RoZSByZXBsYWNlbWVudCt0aGUgcmVzdCBvZiB0aGUgc3RyaW5nIChzdGFydGluZwotICAgICAgIGF0IHRoZSBuZXcgaW5wdXQgcG9zaXRpb24pLCBzbyB3ZSB3b24ndCBoYXZlIHRvIGNoZWNrIHNwYWNlCi0gICAgICAgd2hlbiB0aGVyZSBhcmUgbm8gZXJyb3JzIGluIHRoZSByZXN0IG9mIHRoZSBzdHJpbmcpICovCi0gICAgcmVwcHRyID0gUHlVbmljb2RlX0FTX1VOSUNPREUocmVwdW5pY29kZSk7Ci0gICAgcmVwc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShyZXB1bmljb2RlKTsKLSAgICByZXF1aXJlZHNpemUgPSAqb3V0cG9zICsgcmVwc2l6ZSArIGluc2l6ZS1uZXdwb3M7Ci0gICAgaWYgKHJlcXVpcmVkc2l6ZSA+IG91dHNpemUpIHsKLSAgICAgICAgaWYgKHJlcXVpcmVkc2l6ZTwyKm91dHNpemUpCi0gICAgICAgICAgICByZXF1aXJlZHNpemUgPSAyKm91dHNpemU7Ci0gICAgICAgIGlmIChfUHlVbmljb2RlX1Jlc2l6ZShvdXRwdXQsIHJlcXVpcmVkc2l6ZSkgPCAwKQorICAgIGlmIChfUHlVbmljb2RlX0tJTkQoKm91dHB1dCkgIT0gUHlVbmljb2RlX1dDSEFSX0tJTkQpIHsKKyAgICAgICAgLyogbmVlZCBtb3JlIHNwYWNlPyAoYXQgbGVhc3QgZW5vdWdoIGZvciB3aGF0IHdlCisgICAgICAgICAgIGhhdmUrdGhlIHJlcGxhY2VtZW50K3RoZSByZXN0IG9mIHRoZSBzdHJpbmcgKHN0YXJ0aW5nCisgICAgICAgICAgIGF0IHRoZSBuZXcgaW5wdXQgcG9zaXRpb24pLCBzbyB3ZSB3b24ndCBoYXZlIHRvIGNoZWNrIHNwYWNlCisgICAgICAgICAgIHdoZW4gdGhlcmUgYXJlIG5vIGVycm9ycyBpbiB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nKSAqLworICAgICAgICBQeV9zc2l6ZV90IHJlcGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlcHVuaWNvZGUpOworICAgICAgICByZXF1aXJlZHNpemUgPSAqb3V0cG9zICsgcmVwbGVuICsgaW5zaXplLW5ld3BvczsKKyAgICAgICAgaWYgKHJlcXVpcmVkc2l6ZSA+IG91dHNpemUpIHsKKyAgICAgICAgICAgIGlmIChyZXF1aXJlZHNpemU8MipvdXRzaXplKQorICAgICAgICAgICAgICAgIHJlcXVpcmVkc2l6ZSA9IDIqb3V0c2l6ZTsKKyAgICAgICAgICAgIGlmICh1bmljb2RlX3Jlc2l6ZShvdXRwdXQsIHJlcXVpcmVkc2l6ZSkgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgfQorICAgICAgICBpZiAodW5pY29kZV93aWRlbihvdXRwdXQsICpvdXRwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShyZXB1bmljb2RlKSkgPCAwKQogICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAqb3V0cHRyID0gUHlVbmljb2RlX0FTX1VOSUNPREUoKm91dHB1dCkgKyAqb3V0cG9zOworICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycygqb3V0cHV0LCAqb3V0cG9zLCByZXB1bmljb2RlLCAwLCByZXBsZW4pOworICAgICAgICAqb3V0cG9zICs9IHJlcGxlbjsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHdjaGFyX3QgKnJlcHdzdHI7CisgICAgICAgIFB5X3NzaXplX3QgcmVwd2xlbjsKKyAgICAgICAgcmVwd3N0ciA9IFB5VW5pY29kZV9Bc1VuaWNvZGVBbmRTaXplKHJlcHVuaWNvZGUsICZyZXB3bGVuKTsKKyAgICAgICAgaWYgKHJlcHdzdHIgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgLyogbmVlZCBtb3JlIHNwYWNlPyAoYXQgbGVhc3QgZW5vdWdoIGZvciB3aGF0IHdlCisgICAgICAgICAgIGhhdmUrdGhlIHJlcGxhY2VtZW50K3RoZSByZXN0IG9mIHRoZSBzdHJpbmcgKHN0YXJ0aW5nCisgICAgICAgICAgIGF0IHRoZSBuZXcgaW5wdXQgcG9zaXRpb24pLCBzbyB3ZSB3b24ndCBoYXZlIHRvIGNoZWNrIHNwYWNlCisgICAgICAgICAgIHdoZW4gdGhlcmUgYXJlIG5vIGVycm9ycyBpbiB0aGUgcmVzdCBvZiB0aGUgc3RyaW5nKSAqLworICAgICAgICByZXF1aXJlZHNpemUgPSAqb3V0cG9zICsgcmVwd2xlbiArIGluc2l6ZS1uZXdwb3M7CisgICAgICAgIGlmIChyZXF1aXJlZHNpemUgPiBvdXRzaXplKSB7CisgICAgICAgICAgICBpZiAocmVxdWlyZWRzaXplIDwgMipvdXRzaXplKQorICAgICAgICAgICAgICAgIHJlcXVpcmVkc2l6ZSA9IDIqb3V0c2l6ZTsKKyAgICAgICAgICAgIGlmICh1bmljb2RlX3Jlc2l6ZShvdXRwdXQsIHJlcXVpcmVkc2l6ZSkgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgfQorICAgICAgICB3Y3NuY3B5KF9QeVVuaWNvZGVfV1NUUigqb3V0cHV0KSArICpvdXRwb3MsIHJlcHdzdHIsIHJlcHdsZW4pOworICAgICAgICAqb3V0cG9zICs9IHJlcHdsZW47CiAgICAgfQogICAgICplbmRpbnBvcyA9IG5ld3BvczsKICAgICAqaW5wdHIgPSAqaW5wdXQgKyBuZXdwb3M7Ci0gICAgUHlfVU5JQ09ERV9DT1BZKCpvdXRwdHIsIHJlcHB0ciwgcmVwc2l6ZSk7Ci0gICAgKm91dHB0ciArPSByZXBzaXplOwotICAgICpvdXRwb3MgKz0gcmVwc2l6ZTsKIAogICAgIC8qIHdlIG1hZGUgaXQhICovCiAgICAgcmVzID0gMDsKQEAgLTIyMjAsOSArNDI4MCwxMCBAQAogICAgICAgKGRpcmVjdFdTICYmICh1dGY3X2NhdGVnb3J5WyhjKV0gPT0gMikpIHx8ICAgICAgICBcCiAgICAgICAoZGlyZWN0TyAmJiAodXRmN19jYXRlZ29yeVsoYyldID09IDEpKSkpCiAKLVB5T2JqZWN0ICpQeVVuaWNvZGVfRGVjb2RlVVRGNyhjb25zdCBjaGFyICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRGVjb2RlVVRGNyhjb25zdCBjaGFyICpzLAorICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQogewogICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlVVRGN1N0YXRlZnVsKHMsIHNpemUsIGVycm9ycywgTlVMTCk7CiB9CkBAIC0yMjM0LDQyICs0Mjk1LDQyIEBACiAgKiBhbGwgdGhlIHNoaWZ0IHN0YXRlIChzZWVuIGJpdHMsIG51bWJlciBvZiBiaXRzIHNlZW4sIGhpZ2gKICAqIHN1cnJvZ2F0ZSkuICovCiAKLVB5T2JqZWN0ICpQeVVuaWNvZGVfRGVjb2RlVVRGN1N0YXRlZnVsKGNvbnN0IGNoYXIgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90ICpjb25zdW1lZCkKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9EZWNvZGVVVEY3U3RhdGVmdWwoY29uc3QgY2hhciAqcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKmNvbnN1bWVkKQogewogICAgIGNvbnN0IGNoYXIgKnN0YXJ0cyA9IHM7CiAgICAgUHlfc3NpemVfdCBzdGFydGlucG9zOwogICAgIFB5X3NzaXplX3QgZW5kaW5wb3M7CiAgICAgUHlfc3NpemVfdCBvdXRwb3M7CiAgICAgY29uc3QgY2hhciAqZTsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnVuaWNvZGU7Ci0gICAgUHlfVU5JQ09ERSAqcDsKKyAgICBQeU9iamVjdCAqdW5pY29kZTsKICAgICBjb25zdCBjaGFyICplcnJtc2cgPSAiIjsKICAgICBpbnQgaW5TaGlmdCA9IDA7Ci0gICAgUHlfVU5JQ09ERSAqc2hpZnRPdXRTdGFydDsKKyAgICBQeV9zc2l6ZV90IHNoaWZ0T3V0U3RhcnQ7CiAgICAgdW5zaWduZWQgaW50IGJhc2U2NGJpdHMgPSAwOwogICAgIHVuc2lnbmVkIGxvbmcgYmFzZTY0YnVmZmVyID0gMDsKLSAgICBQeV9VTklDT0RFIHN1cnJvZ2F0ZSA9IDA7CisgICAgUHlfVUNTNCBzdXJyb2dhdGUgPSAwOwogICAgIFB5T2JqZWN0ICplcnJvckhhbmRsZXIgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpleGMgPSBOVUxMOwogCi0gICAgdW5pY29kZSA9IF9QeVVuaWNvZGVfTmV3KHNpemUpOworICAgIC8qIFN0YXJ0IG9mZiBhc3N1bWluZyBpdCdzIGFsbCBBU0NJSS4gV2lkZW4gbGF0ZXIgYXMgbmVjZXNzYXJ5LiAqLworICAgIHVuaWNvZGUgPSBQeVVuaWNvZGVfTmV3KHNpemUsIDEyNyk7CiAgICAgaWYgKCF1bmljb2RlKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAoc2l6ZSA9PSAwKSB7CiAgICAgICAgIGlmIChjb25zdW1lZCkKICAgICAgICAgICAgICpjb25zdW1lZCA9IDA7Ci0gICAgICAgIHJldHVybiAoUHlPYmplY3QgKil1bmljb2RlOworICAgICAgICByZXR1cm4gdW5pY29kZTsKICAgICB9CiAKLSAgICBwID0gdW5pY29kZS0+c3RyOwotICAgIHNoaWZ0T3V0U3RhcnQgPSBwOworICAgIHNoaWZ0T3V0U3RhcnQgPSBvdXRwb3MgPSAwOwogICAgIGUgPSBzICsgc2l6ZTsKIAogICAgIHdoaWxlIChzIDwgZSkgewotICAgICAgICBQeV9VTklDT0RFIGNoOworICAgICAgICBQeV9VQ1M0IGNoOwogICAgICAgcmVzdGFydDoKICAgICAgICAgY2ggPSAodW5zaWduZWQgY2hhcikgKnM7CiAKQEAgLTIyODAsMzQgKzQzNDEsMzEgQEAKICAgICAgICAgICAgICAgICBzKys7CiAgICAgICAgICAgICAgICAgaWYgKGJhc2U2NGJpdHMgPj0gMTYpIHsKICAgICAgICAgICAgICAgICAgICAgLyogd2UgaGF2ZSBlbm91Z2ggYml0cyBmb3IgYSBVVEYtMTYgdmFsdWUgKi8KLSAgICAgICAgICAgICAgICAgICAgUHlfVU5JQ09ERSBvdXRDaCA9IChQeV9VTklDT0RFKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2U2NGJ1ZmZlciA+PiAoYmFzZTY0Yml0cy0xNikpOworICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IG91dENoID0gKFB5X1VDUzQpKGJhc2U2NGJ1ZmZlciA+PiAoYmFzZTY0Yml0cy0xNikpOwogICAgICAgICAgICAgICAgICAgICBiYXNlNjRiaXRzIC09IDE2OwogICAgICAgICAgICAgICAgICAgICBiYXNlNjRidWZmZXIgJj0gKDEgPDwgYmFzZTY0Yml0cykgLSAxOyAvKiBjbGVhciBoaWdoIGJpdHMgKi8KICAgICAgICAgICAgICAgICAgICAgaWYgKHN1cnJvZ2F0ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLyogZXhwZWN0aW5nIGEgc2Vjb25kIHN1cnJvZ2F0ZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG91dENoID49IDB4REMwMCAmJiBvdXRDaCA8PSAweERGRkYpIHsKLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcCsrID0gKCgoc3Vycm9nYXRlICYgMHgzRkYpPDwxMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKG91dENoICYgMHgzRkYpKSArIDB4MTAwMDA7Ci0jZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwKysgPSBzdXJyb2dhdGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKnArKyA9IG91dENoOwotI2VuZGlmCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoUHlfVU5JQ09ERV9JU19MT1dfU1VSUk9HQVRFKG91dENoKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1VDUzQgY2gyID0gUHlfVU5JQ09ERV9KT0lOX1NVUlJPR0FURVMoc3Vycm9nYXRlLCBvdXRDaCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdW5pY29kZSwgJm91dHBvcywgY2gyKSA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJyb2dhdGUgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKnArKyA9IHN1cnJvZ2F0ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ1bmljb2RlLCAmb3V0cG9zLCBzdXJyb2dhdGUpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cnJvZ2F0ZSA9IDA7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKG91dENoID49IDB4RDgwMCAmJiBvdXRDaCA8PSAweERCRkYpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKFB5X1VOSUNPREVfSVNfSElHSF9TVVJST0dBVEUob3V0Q2gpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBmaXJzdCBzdXJyb2dhdGUgKi8KICAgICAgICAgICAgICAgICAgICAgICAgIHN1cnJvZ2F0ZSA9IG91dENoOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgKnArKyA9IG91dENoOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdW5pY29kZSwgJm91dHBvcywgb3V0Q2gpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0yMzE1LDcgKzQzNzMsOCBAQAogICAgICAgICAgICAgICAgIGluU2hpZnQgPSAwOwogICAgICAgICAgICAgICAgIHMrKzsKICAgICAgICAgICAgICAgICBpZiAoc3Vycm9nYXRlKSB7Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSBzdXJyb2dhdGU7CisgICAgICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnVuaWNvZGUsICZvdXRwb3MsIHN1cnJvZ2F0ZSkgPCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgICAgICBzdXJyb2dhdGUgPSAwOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoYmFzZTY0Yml0cyA+IDApIHsgLyogbGVmdC1vdmVyIGJpdHMgKi8KQEAgLTIzMzUsNyArNDM5NCw4IEBACiAgICAgICAgICAgICAgICAgaWYgKGNoICE9ICctJykgewogICAgICAgICAgICAgICAgICAgICAvKiAnLScgaXMgYWJzb3JiZWQ7IG90aGVyIHRlcm1pbmF0aW5nCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMgYXJlIHByZXNlcnZlZCAqLwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gY2g7CisgICAgICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnVuaWNvZGUsICZvdXRwb3MsIGNoKSA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMzQ0LDE2ICs0NDA0LDE4IEBACiAgICAgICAgICAgICBzKys7IC8qIGNvbnN1bWUgJysnICovCiAgICAgICAgICAgICBpZiAocyA8IGUgJiYgKnMgPT0gJy0nKSB7IC8qICcrLScgZW5jb2RlcyAnKycgKi8KICAgICAgICAgICAgICAgICBzKys7Ci0gICAgICAgICAgICAgICAgKnArKyA9ICcrJzsKKyAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ1bmljb2RlLCAmb3V0cG9zLCAnKycpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7IC8qIGJlZ2luIGJhc2U2NC1lbmNvZGVkIHNlY3Rpb24gKi8KICAgICAgICAgICAgICAgICBpblNoaWZ0ID0gMTsKLSAgICAgICAgICAgICAgICBzaGlmdE91dFN0YXJ0ID0gcDsKKyAgICAgICAgICAgICAgICBzaGlmdE91dFN0YXJ0ID0gb3V0cG9zOwogICAgICAgICAgICAgICAgIGJhc2U2NGJpdHMgPSAwOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKERFQ09ERV9ESVJFQ1QoY2gpKSB7IC8qIGNoYXJhY3RlciBkZWNvZGVzIGFzIGl0c2VsZiAqLwotICAgICAgICAgICAgKnArKyA9IGNoOworICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdW5pY29kZSwgJm91dHBvcywgY2gpIDwgMCkKKyAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICBzKys7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CkBAIC0yMzY0LDEzICs0NDI2LDEyIEBACiAgICAgICAgIH0KICAgICAgICAgY29udGludWU7CiB1dGY3RXJyb3I6Ci0gICAgICAgIG91dHBvcyA9IHAtUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSk7CiAgICAgICAgIGVuZGlucG9zID0gcy1zdGFydHM7CiAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcigKICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgInV0ZjciLCBlcnJtc2csCiAgICAgICAgICAgICAgICAgJnN0YXJ0cywgJmUsICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZzLAotICAgICAgICAgICAgICAgICZ1bmljb2RlLCAmb3V0cG9zLCAmcCkpCisgICAgICAgICAgICAgICAgJnVuaWNvZGUsICZvdXRwb3MpKQogICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgIH0KIApAQCAtMjM4MSwxMyArNDQ0MiwxMiBAQAogICAgICAgICBpZiAoc3Vycm9nYXRlIHx8CiAgICAgICAgICAgICAgICAgKGJhc2U2NGJpdHMgPj0gNikgfHwKICAgICAgICAgICAgICAgICAoYmFzZTY0Yml0cyA+IDAgJiYgYmFzZTY0YnVmZmVyICE9IDApKSB7Ci0gICAgICAgICAgICBvdXRwb3MgPSBwLVB5VW5pY29kZV9BU19VTklDT0RFKHVuaWNvZGUpOwogICAgICAgICAgICAgZW5kaW5wb3MgPSBzaXplOwogICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAogICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICJ1dGY3IiwgInVudGVybWluYXRlZCBzaGlmdCBzZXF1ZW5jZSIsCiAgICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAgICAgJnVuaWNvZGUsICZvdXRwb3MsICZwKSkKKyAgICAgICAgICAgICAgICAgICAgJnVuaWNvZGUsICZvdXRwb3MpKQogICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgIGlmIChzIDwgZSkKICAgICAgICAgICAgICAgICBnb3RvIHJlc3RhcnQ7CkBAIC0yMzk3LDcgKzQ0NTcsNyBAQAogICAgIC8qIHJldHVybiBzdGF0ZSAqLwogICAgIGlmIChjb25zdW1lZCkgewogICAgICAgICBpZiAoaW5TaGlmdCkgewotICAgICAgICAgICAgcCA9IHNoaWZ0T3V0U3RhcnQ7IC8qIGJhY2sgb2ZmIG91dHB1dCAqLworICAgICAgICAgICAgb3V0cG9zID0gc2hpZnRPdXRTdGFydDsgLyogYmFjayBvZmYgb3V0cHV0ICovCiAgICAgICAgICAgICAqY29uc3VtZWQgPSBzdGFydGlucG9zOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewpAQCAtMjQwNSwxMiArNDQ2NSwxMiBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKF9QeVVuaWNvZGVfUmVzaXplKCZ1bmljb2RlLCBwIC0gUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSkpIDwgMCkKKyAgICBpZiAodW5pY29kZV9yZXNpemUoJnVuaWNvZGUsIG91dHBvcykgPCAwKQogICAgICAgICBnb3RvIG9uRXJyb3I7CiAKICAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CiAgICAgUHlfWERFQ1JFRihleGMpOwotICAgIHJldHVybiAoUHlPYmplY3QgKil1bmljb2RlOworICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdCh1bmljb2RlKTsKIAogICBvbkVycm9yOgogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKQEAgLTI0MjAsMjYgKzQ0ODAsMzYgQEAKIH0KIAogCi1QeU9iamVjdCAqUHlVbmljb2RlX0VuY29kZVVURjcoY29uc3QgUHlfVU5JQ09ERSAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2U2NFNldE8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2U2NFdoaXRlU3BhY2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQorUHlPYmplY3QgKgorX1B5VW5pY29kZV9FbmNvZGVVVEY3KFB5T2JqZWN0ICpzdHIsCisgICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2U2NFNldE8sCisgICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2U2NFdoaXRlU3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQogeworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CisgICAgUHlfc3NpemVfdCBsZW47CiAgICAgUHlPYmplY3QgKnY7Ci0gICAgLyogSXQgbWlnaHQgYmUgcG9zc2libGUgdG8gdGlnaHRlbiB0aGlzIHdvcnN0IGNhc2UgKi8KLSAgICBQeV9zc2l6ZV90IGFsbG9jYXRlZCA9IDggKiBzaXplOworICAgIFB5X3NzaXplX3QgYWxsb2NhdGVkOwogICAgIGludCBpblNoaWZ0ID0gMDsKLSAgICBQeV9zc2l6ZV90IGkgPSAwOworICAgIFB5X3NzaXplX3QgaTsKICAgICB1bnNpZ25lZCBpbnQgYmFzZTY0Yml0cyA9IDA7CiAgICAgdW5zaWduZWQgbG9uZyBiYXNlNjRidWZmZXIgPSAwOwogICAgIGNoYXIgKiBvdXQ7CiAgICAgY2hhciAqIHN0YXJ0OwogCi0gICAgaWYgKHNpemUgPT0gMCkKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN0cikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChzdHIpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzdHIpOworICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cik7CisKKyAgICBpZiAobGVuID09IDApCiAgICAgICAgIHJldHVybiBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIDApOwogCi0gICAgaWYgKGFsbG9jYXRlZCAvIDggIT0gc2l6ZSkKKyAgICAvKiBJdCBtaWdodCBiZSBwb3NzaWJsZSB0byB0aWdodGVuIHRoaXMgd29yc3QgY2FzZSAqLworICAgIGFsbG9jYXRlZCA9IDggKiBsZW47CisgICAgaWYgKGFsbG9jYXRlZCAvIDggIT0gbGVuKQogICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKIAogICAgIHYgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIGFsbG9jYXRlZCk7CkBAIC0yNDQ3LDggKzQ1MTcsOCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIHN0YXJ0ID0gb3V0ID0gUHlCeXRlc19BU19TVFJJTkcodik7Ci0gICAgZm9yICg7aSA8IHNpemU7ICsraSkgewotICAgICAgICBQeV9VTklDT0RFIGNoID0gc1tpXTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKKyAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpOwogCiAgICAgICAgIGlmIChpblNoaWZ0KSB7CiAgICAgICAgICAgICBpZiAoRU5DT0RFX0RJUkVDVChjaCwgIWJhc2U2NFNldE8sICFiYXNlNjRXaGl0ZVNwYWNlKSkgewpAQCAtMjQ4Niw4ICs0NTU2LDkgQEAKICAgICAgICAgfQogICAgICAgICBjb250aW51ZTsKIGVuY29kZV9jaGFyOgotI2lmZGVmIFB5X1VOSUNPREVfV0lERQogICAgICAgICBpZiAoY2ggPj0gMHgxMDAwMCkgeworICAgICAgICAgICAgYXNzZXJ0KGNoIDw9IE1BWF9VTklDT0RFKTsKKwogICAgICAgICAgICAgLyogY29kZSBmaXJzdCBzdXJyb2dhdGUgKi8KICAgICAgICAgICAgIGJhc2U2NGJpdHMgKz0gMTY7CiAgICAgICAgICAgICBiYXNlNjRidWZmZXIgPSAoYmFzZTY0YnVmZmVyIDw8IDE2KSB8IDB4ZDgwMCB8ICgoY2gtMHgxMDAwMCkgPj4gMTApOwpAQCAtMjQ5Niw5ICs0NTY3LDggQEAKICAgICAgICAgICAgICAgICBiYXNlNjRiaXRzIC09IDY7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAvKiBwcmVwYXJlIHNlY29uZCBzdXJyb2dhdGUgKi8KLSAgICAgICAgICAgIGNoID0gIDB4REMwMCB8ICgoY2gtMHgxMDAwMCkgJiAweDNGRik7CisgICAgICAgICAgICBjaCA9IFB5X1VOSUNPREVfTE9XX1NVUlJPR0FURShjaCk7CiAgICAgICAgIH0KLSNlbmRpZgogICAgICAgICBiYXNlNjRiaXRzICs9IDE2OwogICAgICAgICBiYXNlNjRidWZmZXIgPSAoYmFzZTY0YnVmZmVyIDw8IDE2KSB8IGNoOwogICAgICAgICB3aGlsZSAoYmFzZTY0Yml0cyA+PSA2KSB7CkBAIC0yNTE0LDYgKzQ1ODQsMjIgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgcmV0dXJuIHY7CiB9CitQeU9iamVjdCAqCitQeVVuaWNvZGVfRW5jb2RlVVRGNyhjb25zdCBQeV9VTklDT0RFICpzLAorICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgaW50IGJhc2U2NFNldE8sCisgICAgICAgICAgICAgICAgICAgICBpbnQgYmFzZTY0V2hpdGVTcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICp0bXAgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocywgc2l6ZSk7CisgICAgaWYgKHRtcCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXN1bHQgPSBfUHlVbmljb2RlX0VuY29kZVVURjcodG1wLCBiYXNlNjRTZXRPLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlNjRXaGl0ZVNwYWNlLCBlcnJvcnMpOworICAgIFB5X0RFQ1JFRih0bXApOworICAgIHJldHVybiByZXN1bHQ7Cit9CiAKICN1bmRlZiBJU19CQVNFNjQKICN1bmRlZiBGUk9NX0JBU0U2NApAQCAtMjUyMywyNzIgKzQ2MDksMjA5IEBACiAKIC8qIC0tLSBVVEYtOCBDb2RlYyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCi1zdGF0aWMKLWNoYXIgdXRmOF9jb2RlX2xlbmd0aFsyNTZdID0gewotICAgIC8qIE1hcCBVVEYtOCBlbmNvZGVkIHByZWZpeCBieXRlIHRvIHNlcXVlbmNlIGxlbmd0aC4gIFplcm8gbWVhbnMKLSAgICAgICBpbGxlZ2FsIHByZWZpeC4gIFNlZSBSRkMgMzYyOSBmb3IgZGV0YWlscyAqLwotICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIC8qIDAwLTBGICovCi0gICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKLSAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAotICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCi0gICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwKLSAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLAotICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsCi0gICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgLyogNzAtN0YgKi8KLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAvKiA4MC04RiAqLwotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAvKiBCMC1CRiAqLwotICAgIDAsIDAsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIDIsIC8qIEMwLUMxICsgQzItQ0YgKi8KLSAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAvKiBEMC1ERiAqLwotICAgIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIDMsIC8qIEUwLUVGICovCi0gICAgNCwgNCwgNCwgNCwgNCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCAgLyogRjAtRjQgKyBGNS1GRiAqLwotfTsKLQotUHlPYmplY3QgKlB5VW5pY29kZV9EZWNvZGVVVEY4KGNvbnN0IGNoYXIgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9EZWNvZGVVVEY4KGNvbnN0IGNoYXIgKnMsCisgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7CiAgICAgcmV0dXJuIFB5VW5pY29kZV9EZWNvZGVVVEY4U3RhdGVmdWwocywgc2l6ZSwgZXJyb3JzLCBOVUxMKTsKIH0KIAorI2luY2x1ZGUgInN0cmluZ2xpYi9hc2NpaWxpYi5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9jb2RlY3MuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvdW5kZWYuaCIKKworI2luY2x1ZGUgInN0cmluZ2xpYi91Y3MxbGliLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL2NvZGVjcy5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi91bmRlZi5oIgorCisjaW5jbHVkZSAic3RyaW5nbGliL3VjczJsaWIuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvY29kZWNzLmgiCisjaW5jbHVkZSAic3RyaW5nbGliL3VuZGVmLmgiCisKKyNpbmNsdWRlICJzdHJpbmdsaWIvdWNzNGxpYi5oIgorI2luY2x1ZGUgInN0cmluZ2xpYi9jb2RlY3MuaCIKKyNpbmNsdWRlICJzdHJpbmdsaWIvdW5kZWYuaCIKKwogLyogTWFzayB0byBjaGVjayBvciBmb3JjZSBhbGlnbm1lbnQgb2YgYSBwb2ludGVyIHRvIEMgJ2xvbmcnIGJvdW5kYXJpZXMgKi8KICNkZWZpbmUgTE9OR19QVFJfTUFTSyAoc2l6ZV90KSAoU0laRU9GX0xPTkcgLSAxKQogCiAvKiBNYXNrIHRvIHF1aWNrbHkgY2hlY2sgd2hldGhlciBhIEMgJ2xvbmcnIGNvbnRhaW5zIGEKICAgIG5vbi1BU0NJSSwgVVRGOC1lbmNvZGVkIGNoYXIuICovCiAjaWYgKFNJWkVPRl9MT05HID09IDgpCi0jIGRlZmluZSBBU0NJSV9DSEFSX01BU0sgMHg4MDgwODA4MDgwODA4MDgwTAorIyBkZWZpbmUgQVNDSUlfQ0hBUl9NQVNLIDB4ODA4MDgwODA4MDgwODA4MFVMCiAjZWxpZiAoU0laRU9GX0xPTkcgPT0gNCkKLSMgZGVmaW5lIEFTQ0lJX0NIQVJfTUFTSyAweDgwODA4MDgwTAorIyBkZWZpbmUgQVNDSUlfQ0hBUl9NQVNLIDB4ODA4MDgwODBVTAogI2Vsc2UKICMgZXJyb3IgQyAnbG9uZycgc2l6ZSBzaG91bGQgYmUgZWl0aGVyIDQgb3IgOCEKICNlbmRpZgogCi1QeU9iamVjdCAqUHlVbmljb2RlX0RlY29kZVVURjhTdGF0ZWZ1bChjb25zdCBjaGFyICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqY29uc3VtZWQpCitzdGF0aWMgUHlfc3NpemVfdAorYXNjaWlfZGVjb2RlKGNvbnN0IGNoYXIgKnN0YXJ0LCBjb25zdCBjaGFyICplbmQsIFB5X1VDUzEgKmRlc3QpCiB7CisgICAgY29uc3QgY2hhciAqcCA9IHN0YXJ0OworICAgIGNvbnN0IGNoYXIgKmFsaWduZWRfZW5kID0gKGNvbnN0IGNoYXIgKikgKChzaXplX3QpIGVuZCAmIH5MT05HX1BUUl9NQVNLKTsKKworI2lmIFNJWkVPRl9MT05HIDw9IFNJWkVPRl9WT0lEX1AKKyAgICBhc3NlcnQoISgoc2l6ZV90KSBkZXN0ICYgTE9OR19QVFJfTUFTSykpOworICAgIGlmICghKChzaXplX3QpIHAgJiBMT05HX1BUUl9NQVNLKSkgeworICAgICAgICAvKiBGYXN0IHBhdGgsIHNlZSBpbiBTVFJJTkdMSUIodXRmOF9kZWNvZGUpIGZvcgorICAgICAgICAgICBhbiBleHBsYW5hdGlvbi4gKi8KKyAgICAgICAgLyogSGVscCByZWdpc3RlciBhbGxvY2F0aW9uICovCisgICAgICAgIHJlZ2lzdGVyIGNvbnN0IGNoYXIgKl9wID0gcDsKKyAgICAgICAgcmVnaXN0ZXIgUHlfVUNTMSAqIHEgPSBkZXN0OworICAgICAgICB3aGlsZSAoX3AgPCBhbGlnbmVkX2VuZCkgeworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2YWx1ZSA9ICooY29uc3QgdW5zaWduZWQgbG9uZyAqKSBfcDsKKyAgICAgICAgICAgIGlmICh2YWx1ZSAmIEFTQ0lJX0NIQVJfTUFTSykKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICooKHVuc2lnbmVkIGxvbmcgKilxKSA9IHZhbHVlOworICAgICAgICAgICAgX3AgKz0gU0laRU9GX0xPTkc7CisgICAgICAgICAgICBxICs9IFNJWkVPRl9MT05HOworICAgICAgICB9CisgICAgICAgIHAgPSBfcDsKKyAgICAgICAgd2hpbGUgKHAgPCBlbmQpIHsKKyAgICAgICAgICAgIGlmICgodW5zaWduZWQgY2hhcikqcCAmIDB4ODApCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAqcSsrID0gKnArKzsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcCAtIHN0YXJ0OworICAgIH0KKyNlbmRpZgorICAgIHdoaWxlIChwIDwgZW5kKSB7CisgICAgICAgIC8qIEZhc3QgcGF0aCwgc2VlIGluIFNUUklOR0xJQih1dGY4X2RlY29kZSkgaW4gc3RyaW5nbGliL2NvZGVjcy5oCisgICAgICAgICAgIGZvciBhbiBleHBsYW5hdGlvbi4gKi8KKyAgICAgICAgaWYgKCEoKHNpemVfdCkgcCAmIExPTkdfUFRSX01BU0spKSB7CisgICAgICAgICAgICAvKiBIZWxwIHJlZ2lzdGVyIGFsbG9jYXRpb24gKi8KKyAgICAgICAgICAgIHJlZ2lzdGVyIGNvbnN0IGNoYXIgKl9wID0gcDsKKyAgICAgICAgICAgIHdoaWxlIChfcCA8IGFsaWduZWRfZW5kKSB7CisgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyB2YWx1ZSA9ICoodW5zaWduZWQgbG9uZyAqKSBfcDsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgJiBBU0NJSV9DSEFSX01BU0spCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIF9wICs9IFNJWkVPRl9MT05HOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcCA9IF9wOworICAgICAgICAgICAgaWYgKF9wID09IGVuZCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBpZiAoKHVuc2lnbmVkIGNoYXIpKnAgJiAweDgwKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICsrcDsKKyAgICB9CisgICAgbWVtY3B5KGRlc3QsIHN0YXJ0LCBwIC0gc3RhcnQpOworICAgIHJldHVybiBwIC0gc3RhcnQ7Cit9CisKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9EZWNvZGVVVEY4U3RhdGVmdWwoY29uc3QgY2hhciAqcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKmNvbnN1bWVkKQoreworICAgIFB5T2JqZWN0ICp1bmljb2RlOwogICAgIGNvbnN0IGNoYXIgKnN0YXJ0cyA9IHM7Ci0gICAgaW50IG47Ci0gICAgaW50IGs7CisgICAgY29uc3QgY2hhciAqZW5kID0gcyArIHNpemU7CisgICAgUHlfc3NpemVfdCBvdXRwb3M7CisKICAgICBQeV9zc2l6ZV90IHN0YXJ0aW5wb3M7CiAgICAgUHlfc3NpemVfdCBlbmRpbnBvczsKLSAgICBQeV9zc2l6ZV90IG91dHBvczsKLSAgICBjb25zdCBjaGFyICplLCAqYWxpZ25lZF9lbmQ7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICp1bmljb2RlOwotICAgIFB5X1VOSUNPREUgKnA7CiAgICAgY29uc3QgY2hhciAqZXJybXNnID0gIiI7CiAgICAgUHlPYmplY3QgKmVycm9ySGFuZGxlciA9IE5VTEw7CiAgICAgUHlPYmplY3QgKmV4YyA9IE5VTEw7CiAKLSAgICAvKiBOb3RlOiBzaXplIHdpbGwgYWx3YXlzIGJlIGxvbmdlciB0aGFuIHRoZSByZXN1bHRpbmcgVW5pY29kZQotICAgICAgIGNoYXJhY3RlciBjb3VudCAqLwotICAgIHVuaWNvZGUgPSBfUHlVbmljb2RlX05ldyhzaXplKTsKLSAgICBpZiAoIXVuaWNvZGUpCi0gICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmIChzaXplID09IDApIHsKICAgICAgICAgaWYgKGNvbnN1bWVkKQogICAgICAgICAgICAgKmNvbnN1bWVkID0gMDsKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXVuaWNvZGU7CisgICAgICAgIFB5X0lOQ1JFRih1bmljb2RlX2VtcHR5KTsKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfZW1wdHk7CiAgICAgfQogCi0gICAgLyogVW5wYWNrIFVURi04IGVuY29kZWQgZGF0YSAqLwotICAgIHAgPSB1bmljb2RlLT5zdHI7Ci0gICAgZSA9IHMgKyBzaXplOwotICAgIGFsaWduZWRfZW5kID0gKGNvbnN0IGNoYXIgKikgKChzaXplX3QpIGUgJiB+TE9OR19QVFJfTUFTSyk7CisgICAgLyogQVNDSUkgaXMgZXF1aXZhbGVudCB0byB0aGUgZmlyc3QgMTI4IG9yZGluYWxzIGluIFVuaWNvZGUuICovCisgICAgaWYgKHNpemUgPT0gMSAmJiAodW5zaWduZWQgY2hhcilzWzBdIDwgMTI4KSB7CisgICAgICAgIGlmIChjb25zdW1lZCkKKyAgICAgICAgICAgICpjb25zdW1lZCA9IDE7CisgICAgICAgIHJldHVybiBnZXRfbGF0aW4xX2NoYXIoKHVuc2lnbmVkIGNoYXIpc1swXSk7CisgICAgfQogCi0gICAgd2hpbGUgKHMgPCBlKSB7Ci0gICAgICAgIFB5X1VDUzQgY2ggPSAodW5zaWduZWQgY2hhcikqczsKKyAgICB1bmljb2RlID0gUHlVbmljb2RlX05ldyhzaXplLCAxMjcpOworICAgIGlmICghdW5pY29kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICAgICAgaWYgKGNoIDwgMHg4MCkgewotICAgICAgICAgICAgLyogRmFzdCBwYXRoIGZvciBydW5zIG9mIEFTQ0lJIGNoYXJhY3RlcnMuIEdpdmVuIHRoYXQgY29tbW9uIFVURi04Ci0gICAgICAgICAgICAgICBpbnB1dCB3aWxsIGNvbnNpc3Qgb2YgYW4gb3ZlcndoZWxtaW5nIG1ham9yaXR5IG9mIEFTQ0lJCi0gICAgICAgICAgICAgICBjaGFyYWN0ZXJzLCB3ZSB0cnkgdG8gb3B0aW1pemUgZm9yIHRoaXMgY2FzZSBieSBjaGVja2luZwotICAgICAgICAgICAgICAgYXMgbWFueSBjaGFyYWN0ZXJzIGFzIGEgQyAnbG9uZycgY2FuIGNvbnRhaW4uCi0gICAgICAgICAgICAgICBGaXJzdCwgY2hlY2sgaWYgd2UgY2FuIGRvIGFuIGFsaWduZWQgcmVhZCwgYXMgbW9zdCBDUFVzIGhhdmUKLSAgICAgICAgICAgICAgIGEgcGVuYWx0eSBmb3IgdW5hbGlnbmVkIHJlYWRzLgotICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmICghKChzaXplX3QpIHMgJiBMT05HX1BUUl9NQVNLKSkgewotICAgICAgICAgICAgICAgIC8qIEhlbHAgcmVnaXN0ZXIgYWxsb2NhdGlvbiAqLwotICAgICAgICAgICAgICAgIHJlZ2lzdGVyIGNvbnN0IGNoYXIgKl9zID0gczsKLSAgICAgICAgICAgICAgICByZWdpc3RlciBQeV9VTklDT0RFICpfcCA9IHA7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKF9zIDwgYWxpZ25lZF9lbmQpIHsKLSAgICAgICAgICAgICAgICAgICAgLyogUmVhZCBhIHdob2xlIGxvbmcgYXQgYSB0aW1lIChlaXRoZXIgNCBvciA4IGJ5dGVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgYW5kIGRvIGEgZmFzdCB1bnJvbGxlZCBjb3B5IGlmIGl0IG9ubHkgY29udGFpbnMgQVNDSUkKLSAgICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVycy4gKi8KLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBkYXRhID0gKih1bnNpZ25lZCBsb25nICopIF9zOwotICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSAmIEFTQ0lJX0NIQVJfTUFTSykKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBfcFswXSA9ICh1bnNpZ25lZCBjaGFyKSBfc1swXTsKLSAgICAgICAgICAgICAgICAgICAgX3BbMV0gPSAodW5zaWduZWQgY2hhcikgX3NbMV07Ci0gICAgICAgICAgICAgICAgICAgIF9wWzJdID0gKHVuc2lnbmVkIGNoYXIpIF9zWzJdOwotICAgICAgICAgICAgICAgICAgICBfcFszXSA9ICh1bnNpZ25lZCBjaGFyKSBfc1szXTsKLSNpZiAoU0laRU9GX0xPTkcgPT0gOCkKLSAgICAgICAgICAgICAgICAgICAgX3BbNF0gPSAodW5zaWduZWQgY2hhcikgX3NbNF07Ci0gICAgICAgICAgICAgICAgICAgIF9wWzVdID0gKHVuc2lnbmVkIGNoYXIpIF9zWzVdOwotICAgICAgICAgICAgICAgICAgICBfcFs2XSA9ICh1bnNpZ25lZCBjaGFyKSBfc1s2XTsKLSAgICAgICAgICAgICAgICAgICAgX3BbN10gPSAodW5zaWduZWQgY2hhcikgX3NbN107Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgX3MgKz0gU0laRU9GX0xPTkc7Ci0gICAgICAgICAgICAgICAgICAgIF9wICs9IFNJWkVPRl9MT05HOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBzID0gX3M7Ci0gICAgICAgICAgICAgICAgcCA9IF9wOwotICAgICAgICAgICAgICAgIGlmIChzID09IGUpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNoID0gKHVuc2lnbmVkIGNoYXIpKnM7Ci0gICAgICAgICAgICB9CisgICAgb3V0cG9zID0gYXNjaWlfZGVjb2RlKHMsIGVuZCwgUHlVbmljb2RlXzFCWVRFX0RBVEEodW5pY29kZSkpOworICAgIHMgKz0gb3V0cG9zOworICAgIHdoaWxlIChzIDwgZW5kKSB7CisgICAgICAgIFB5X1VDUzQgY2g7CisgICAgICAgIGludCBraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgICAgIGlmIChraW5kID09IFB5VW5pY29kZV8xQllURV9LSU5EKSB7CisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHVuaWNvZGUpKQorICAgICAgICAgICAgICAgIGNoID0gYXNjaWlsaWJfdXRmOF9kZWNvZGUoJnMsIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpLCAmb3V0cG9zKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjaCA9IHVjczFsaWJfdXRmOF9kZWNvZGUoJnMsIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpLCAmb3V0cG9zKTsKKyAgICAgICAgfSBlbHNlIGlmIChraW5kID09IFB5VW5pY29kZV8yQllURV9LSU5EKSB7CisgICAgICAgICAgICBjaCA9IHVjczJsaWJfdXRmOF9kZWNvZGUoJnMsIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlXzJCWVRFX0RBVEEodW5pY29kZSksICZvdXRwb3MpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0KGtpbmQgPT0gUHlVbmljb2RlXzRCWVRFX0tJTkQpOworICAgICAgICAgICAgY2ggPSB1Y3M0bGliX3V0ZjhfZGVjb2RlKCZzLCBlbmQsCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV80QllURV9EQVRBKHVuaWNvZGUpLCAmb3V0cG9zKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChjaCA8IDB4ODApIHsKLSAgICAgICAgICAgICpwKysgPSAoUHlfVU5JQ09ERSljaDsKLSAgICAgICAgICAgIHMrKzsKKyAgICAgICAgc3dpdGNoIChjaCkgeworICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICBpZiAocyA9PSBlbmQgfHwgY29uc3VtZWQpCisgICAgICAgICAgICAgICAgZ290byBFbmQ7CisgICAgICAgICAgICBlcnJtc2cgPSAidW5leHBlY3RlZCBlbmQgb2YgZGF0YSI7CisgICAgICAgICAgICBzdGFydGlucG9zID0gcyAtIHN0YXJ0czsKKyAgICAgICAgICAgIGVuZGlucG9zID0gc3RhcnRpbnBvcyArIDE7CisgICAgICAgICAgICB3aGlsZSAoZW5kaW5wb3MgPCBzaXplICYmIChzdGFydHNbZW5kaW5wb3NdICYgMHhDMCkgPT0gMHg4MCkKKyAgICAgICAgICAgICAgICBlbmRpbnBvcysrOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGVycm1zZyA9ICJpbnZhbGlkIHN0YXJ0IGJ5dGUiOworICAgICAgICAgICAgc3RhcnRpbnBvcyA9IHMgLSBzdGFydHM7CisgICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MgKyAxOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGVycm1zZyA9ICJpbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlIjsKKyAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSBzIC0gc3RhcnRzOworICAgICAgICAgICAgZW5kaW5wb3MgPSBzdGFydGlucG9zICsgMTsKKyAgICAgICAgICAgIHdoaWxlIChlbmRpbnBvcyA8IHNpemUgJiYgKHN0YXJ0c1tlbmRpbnBvc10gJiAweEMwKSA9PSAweDgwKQorICAgICAgICAgICAgICAgIGVuZGlucG9zKys7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnVuaWNvZGUsICZvdXRwb3MsIGNoKSA8IDApCisgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBuID0gdXRmOF9jb2RlX2xlbmd0aFtjaF07Ci0KLSAgICAgICAgaWYgKHMgKyBuID4gZSkgewotICAgICAgICAgICAgaWYgKGNvbnN1bWVkKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJybXNnID0gInVuZXhwZWN0ZWQgZW5kIG9mIGRhdGEiOwotICAgICAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSBzLXN0YXJ0czsKLSAgICAgICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MrMTsKLSAgICAgICAgICAgICAgICBmb3IgKGs9MTsgKGsgPCBzaXplLXN0YXJ0aW5wb3MpICYmICgoc1trXSYweEMwKSA9PSAweDgwKTsgaysrKQotICAgICAgICAgICAgICAgICAgICBlbmRpbnBvcysrOwotICAgICAgICAgICAgICAgIGdvdG8gdXRmOEVycm9yOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgc3dpdGNoIChuKSB7Ci0KLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgZXJybXNnID0gImludmFsaWQgc3RhcnQgYnl0ZSI7Ci0gICAgICAgICAgICBzdGFydGlucG9zID0gcy1zdGFydHM7Ci0gICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MrMTsKLSAgICAgICAgICAgIGdvdG8gdXRmOEVycm9yOwotCi0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAgIGVycm1zZyA9ICJpbnRlcm5hbCBlcnJvciI7Ci0gICAgICAgICAgICBzdGFydGlucG9zID0gcy1zdGFydHM7Ci0gICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MrMTsKLSAgICAgICAgICAgIGdvdG8gdXRmOEVycm9yOwotCi0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGlmICgoc1sxXSAmIDB4YzApICE9IDB4ODApIHsKLSAgICAgICAgICAgICAgICBlcnJtc2cgPSAiaW52YWxpZCBjb250aW51YXRpb24gYnl0ZSI7Ci0gICAgICAgICAgICAgICAgc3RhcnRpbnBvcyA9IHMtc3RhcnRzOwotICAgICAgICAgICAgICAgIGVuZGlucG9zID0gc3RhcnRpbnBvcyArIDE7Ci0gICAgICAgICAgICAgICAgZ290byB1dGY4RXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjaCA9ICgoc1swXSAmIDB4MWYpIDw8IDYpICsgKHNbMV0gJiAweDNmKTsKLSAgICAgICAgICAgIGFzc2VydCAoKGNoID4gMHgwMDdGKSAmJiAoY2ggPD0gMHgwN0ZGKSk7Ci0gICAgICAgICAgICAqcCsrID0gKFB5X1VOSUNPREUpY2g7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAgICAvKiBEZWNvZGluZyBVVEYtOCBzZXF1ZW5jZXMgaW4gcmFuZ2UgXHhlZFx4YTBceDgwLVx4ZWRceGJmXHhiZgotICAgICAgICAgICAgICAgd2lsbCByZXN1bHQgaW4gc3Vycm9nYXRlcyBpbiByYW5nZSBkODAwLWRmZmYuIFN1cnJvZ2F0ZXMgYXJlCi0gICAgICAgICAgICAgICBub3QgdmFsaWQgVVRGLTggc28gdGhleSBhcmUgcmVqZWN0ZWQuCi0gICAgICAgICAgICAgICBTZWUgaHR0cDovL3d3dy51bmljb2RlLm9yZy92ZXJzaW9ucy9Vbmljb2RlNS4yLjAvY2gwMy5wZGYKLSAgICAgICAgICAgICAgICh0YWJsZSAzLTcpIGFuZCBodHRwOi8vd3d3LnJmYy1lZGl0b3Iub3JnL3JmYy9yZmMzNjI5LnR4dCAqLwotICAgICAgICAgICAgaWYgKChzWzFdICYgMHhjMCkgIT0gMHg4MCB8fAotICAgICAgICAgICAgICAgIChzWzJdICYgMHhjMCkgIT0gMHg4MCB8fAotICAgICAgICAgICAgICAgICgodW5zaWduZWQgY2hhcilzWzBdID09IDB4RTAgJiYKLSAgICAgICAgICAgICAgICAgKHVuc2lnbmVkIGNoYXIpc1sxXSA8IDB4QTApIHx8Ci0gICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBjaGFyKXNbMF0gPT0gMHhFRCAmJgotICAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhcilzWzFdID4gMHg5RikpIHsKLSAgICAgICAgICAgICAgICBlcnJtc2cgPSAiaW52YWxpZCBjb250aW51YXRpb24gYnl0ZSI7Ci0gICAgICAgICAgICAgICAgc3RhcnRpbnBvcyA9IHMtc3RhcnRzOwotICAgICAgICAgICAgICAgIGVuZGlucG9zID0gc3RhcnRpbnBvcyArIDE7Ci0KLSAgICAgICAgICAgICAgICAvKiBpZiBzWzFdIGZpcnN0IHR3byBiaXRzIGFyZSAxIGFuZCAwLCB0aGVuIHRoZSBpbnZhbGlkCi0gICAgICAgICAgICAgICAgICAgY29udGludWF0aW9uIGJ5dGUgaXMgc1syXSwgc28gaW5jcmVtZW50IGVuZGlucG9zIGJ5IDEsCi0gICAgICAgICAgICAgICAgICAgaWYgbm90LCBzWzFdIGlzIGludmFsaWQgYW5kIGVuZGlucG9zIGRvZXNuJ3QgbmVlZCB0bwotICAgICAgICAgICAgICAgICAgIGJlIGluY3JlbWVudGVkLiAqLwotICAgICAgICAgICAgICAgIGlmICgoc1sxXSAmIDB4QzApID09IDB4ODApCi0gICAgICAgICAgICAgICAgICAgIGVuZGlucG9zKys7Ci0gICAgICAgICAgICAgICAgZ290byB1dGY4RXJyb3I7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjaCA9ICgoc1swXSAmIDB4MGYpIDw8IDEyKSArICgoc1sxXSAmIDB4M2YpIDw8IDYpICsgKHNbMl0gJiAweDNmKTsKLSAgICAgICAgICAgIGFzc2VydCAoKGNoID4gMHgwN0ZGKSAmJiAoY2ggPD0gMHhGRkZGKSk7Ci0gICAgICAgICAgICAqcCsrID0gKFB5X1VOSUNPREUpY2g7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgICBpZiAoKHNbMV0gJiAweGMwKSAhPSAweDgwIHx8Ci0gICAgICAgICAgICAgICAgKHNbMl0gJiAweGMwKSAhPSAweDgwIHx8Ci0gICAgICAgICAgICAgICAgKHNbM10gJiAweGMwKSAhPSAweDgwIHx8Ci0gICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBjaGFyKXNbMF0gPT0gMHhGMCAmJgotICAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhcilzWzFdIDwgMHg5MCkgfHwKLSAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIpc1swXSA9PSAweEY0ICYmCi0gICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyKXNbMV0gPiAweDhGKSkgewotICAgICAgICAgICAgICAgIGVycm1zZyA9ICJpbnZhbGlkIGNvbnRpbnVhdGlvbiBieXRlIjsKLSAgICAgICAgICAgICAgICBzdGFydGlucG9zID0gcy1zdGFydHM7Ci0gICAgICAgICAgICAgICAgZW5kaW5wb3MgPSBzdGFydGlucG9zICsgMTsKLSAgICAgICAgICAgICAgICBpZiAoKHNbMV0gJiAweEMwKSA9PSAweDgwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGVuZGlucG9zKys7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgoc1syXSAmIDB4QzApID09IDB4ODApCi0gICAgICAgICAgICAgICAgICAgICAgICBlbmRpbnBvcysrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBnb3RvIHV0ZjhFcnJvcjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGNoID0gKChzWzBdICYgMHg3KSA8PCAxOCkgKyAoKHNbMV0gJiAweDNmKSA8PCAxMikgKwotICAgICAgICAgICAgICAgICAoKHNbMl0gJiAweDNmKSA8PCA2KSArIChzWzNdICYgMHgzZik7Ci0gICAgICAgICAgICBhc3NlcnQgKChjaCA+IDB4RkZGRikgJiYgKGNoIDw9IDB4MTBmZmZmKSk7Ci0KLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgICAgICpwKysgPSAoUHlfVU5JQ09ERSljaDsKLSNlbHNlCi0gICAgICAgICAgICAvKiAgY29tcHV0ZSBhbmQgYXBwZW5kIHRoZSB0d28gc3Vycm9nYXRlczogKi8KLQotICAgICAgICAgICAgLyogIHRyYW5zbGF0ZSBmcm9tIDEwMDAwLi4xMEZGRkYgdG8gMC4uRkZGRiAqLwotICAgICAgICAgICAgY2ggLT0gMHgxMDAwMDsKLQotICAgICAgICAgICAgLyogIGhpZ2ggc3Vycm9nYXRlID0gdG9wIDEwIGJpdHMgYWRkZWQgdG8gRDgwMCAqLwotICAgICAgICAgICAgKnArKyA9IChQeV9VTklDT0RFKSgweEQ4MDAgKyAoY2ggPj4gMTApKTsKLQotICAgICAgICAgICAgLyogIGxvdyBzdXJyb2dhdGUgPSBib3R0b20gMTAgYml0cyBhZGRlZCB0byBEQzAwICovCi0gICAgICAgICAgICAqcCsrID0gKFB5X1VOSUNPREUpKDB4REMwMCArIChjaCAmIDB4MDNGRikpOwotI2VuZGlmCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBzICs9IG47Ci0gICAgICAgIGNvbnRpbnVlOwotCi0gICAgICB1dGY4RXJyb3I6Ci0gICAgICAgIG91dHBvcyA9IHAtUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSk7CiAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcigKICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgInV0Zi04IiwgZXJybXNnLAotICAgICAgICAgICAgICAgICZzdGFydHMsICZlLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAmdW5pY29kZSwgJm91dHBvcywgJnApKQorICAgICAgICAgICAgICAgICZzdGFydHMsICZlbmQsICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZzLAorICAgICAgICAgICAgICAgICZ1bmljb2RlLCAmb3V0cG9zKSkKICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgYWxpZ25lZF9lbmQgPSAoY29uc3QgY2hhciAqKSAoKHNpemVfdCkgZSAmIH5MT05HX1BUUl9NQVNLKTsKICAgICB9Ci0gICAgaWYgKGNvbnN1bWVkKQotICAgICAgICAqY29uc3VtZWQgPSBzLXN0YXJ0czsKIAotICAgIC8qIEFkanVzdCBsZW5ndGggKi8KLSAgICBpZiAoX1B5VW5pY29kZV9SZXNpemUoJnVuaWNvZGUsIHAgLSB1bmljb2RlLT5zdHIpIDwgMCkKK0VuZDoKKyAgICBpZiAodW5pY29kZV9yZXNpemUoJnVuaWNvZGUsIG91dHBvcykgPCAwKQogICAgICAgICBnb3RvIG9uRXJyb3I7CiAKLSAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7Ci0gICAgUHlfWERFQ1JFRihleGMpOwotICAgIHJldHVybiAoUHlPYmplY3QgKil1bmljb2RlOworICAgIGlmIChjb25zdW1lZCkKKyAgICAgICAgKmNvbnN1bWVkID0gcyAtIHN0YXJ0czsKIAotICBvbkVycm9yOgogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgUHlfREVDUkVGKHVuaWNvZGUpOworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodW5pY29kZSwgMSkpOworICAgIHJldHVybiB1bmljb2RlOworCitvbkVycm9yOgorICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKKyAgICBQeV9YREVDUkVGKGV4Yyk7CisgICAgUHlfWERFQ1JFRih1bmljb2RlKTsKICAgICByZXR1cm4gTlVMTDsKIH0KIAotI3VuZGVmIEFTQ0lJX0NIQVJfTUFTSwotCiAjaWZkZWYgX19BUFBMRV9fCiAKIC8qIFNpbXBsaWZpZWQgVVRGLTggZGVjb2RlciB1c2luZyBzdXJyb2dhdGVlc2NhcGUgZXJyb3IgaGFuZGxlciwKQEAgLTI3OTcsOSArNDgyMCw5IEBACiB3Y2hhcl90KgogX1B5X0RlY29kZVVURjhfc3Vycm9nYXRlZXNjYXBlKGNvbnN0IGNoYXIgKnMsIFB5X3NzaXplX3Qgc2l6ZSkKIHsKLSAgICBpbnQgbjsKICAgICBjb25zdCBjaGFyICplOwotICAgIHdjaGFyX3QgKnVuaWNvZGUsICpwOworICAgIHdjaGFyX3QgKnVuaWNvZGU7CisgICAgUHlfc3NpemVfdCBvdXRwb3M7CiAKICAgICAvKiBOb3RlOiBzaXplIHdpbGwgYWx3YXlzIGJlIGxvbmdlciB0aGFuIHRoZSByZXN1bHRpbmcgVW5pY29kZQogICAgICAgIGNoYXJhY3RlciBjb3VudCAqLwpAQCAtMjgxMiwyNzcgKzQ4MzUsMTAxIEBACiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgLyogVW5wYWNrIFVURi04IGVuY29kZWQgZGF0YSAqLwotICAgIHAgPSB1bmljb2RlOwogICAgIGUgPSBzICsgc2l6ZTsKKyAgICBvdXRwb3MgPSAwOwogICAgIHdoaWxlIChzIDwgZSkgewotICAgICAgICBQeV9VQ1M0IGNoID0gKHVuc2lnbmVkIGNoYXIpKnM7Ci0KLSAgICAgICAgaWYgKGNoIDwgMHg4MCkgewotICAgICAgICAgICAgKnArKyA9ICh3Y2hhcl90KWNoOwotICAgICAgICAgICAgcysrOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLQotICAgICAgICBuID0gdXRmOF9jb2RlX2xlbmd0aFtjaF07Ci0gICAgICAgIGlmIChzICsgbiA+IGUpIHsKLSAgICAgICAgICAgIGdvdG8gc3Vycm9nYXRlZXNjYXBlOwotICAgICAgICB9Ci0KLSAgICAgICAgc3dpdGNoIChuKSB7Ci0gICAgICAgIGNhc2UgMDoKLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgZ290byBzdXJyb2dhdGVlc2NhcGU7Ci0KLSAgICAgICAgY2FzZSAyOgotICAgICAgICAgICAgaWYgKChzWzFdICYgMHhjMCkgIT0gMHg4MCkKLSAgICAgICAgICAgICAgICBnb3RvIHN1cnJvZ2F0ZWVzY2FwZTsKLSAgICAgICAgICAgIGNoID0gKChzWzBdICYgMHgxZikgPDwgNikgKyAoc1sxXSAmIDB4M2YpOwotICAgICAgICAgICAgYXNzZXJ0ICgoY2ggPiAweDAwN0YpICYmIChjaCA8PSAweDA3RkYpKTsKLSAgICAgICAgICAgICpwKysgPSAod2NoYXJfdCljaDsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgIC8qIERlY29kaW5nIFVURi04IHNlcXVlbmNlcyBpbiByYW5nZSBceGVkXHhhMFx4ODAtXHhlZFx4YmZceGJmCi0gICAgICAgICAgICAgICB3aWxsIHJlc3VsdCBpbiBzdXJyb2dhdGVzIGluIHJhbmdlIGQ4MDAtZGZmZi4gU3Vycm9nYXRlcyBhcmUKLSAgICAgICAgICAgICAgIG5vdCB2YWxpZCBVVEYtOCBzbyB0aGV5IGFyZSByZWplY3RlZC4KLSAgICAgICAgICAgICAgIFNlZSBodHRwOi8vd3d3LnVuaWNvZGUub3JnL3ZlcnNpb25zL1VuaWNvZGU1LjIuMC9jaDAzLnBkZgotICAgICAgICAgICAgICAgKHRhYmxlIDMtNykgYW5kIGh0dHA6Ly93d3cucmZjLWVkaXRvci5vcmcvcmZjL3JmYzM2MjkudHh0ICovCi0gICAgICAgICAgICBpZiAoKHNbMV0gJiAweGMwKSAhPSAweDgwIHx8Ci0gICAgICAgICAgICAgICAgKHNbMl0gJiAweGMwKSAhPSAweDgwIHx8Ci0gICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBjaGFyKXNbMF0gPT0gMHhFMCAmJgotICAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhcilzWzFdIDwgMHhBMCkgfHwKLSAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIpc1swXSA9PSAweEVEICYmCi0gICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyKXNbMV0gPiAweDlGKSkgewotCi0gICAgICAgICAgICAgICAgZ290byBzdXJyb2dhdGVlc2NhcGU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjaCA9ICgoc1swXSAmIDB4MGYpIDw8IDEyKSArICgoc1sxXSAmIDB4M2YpIDw8IDYpICsgKHNbMl0gJiAweDNmKTsKLSAgICAgICAgICAgIGFzc2VydCAoKGNoID4gMHgwN0ZGKSAmJiAoY2ggPD0gMHhGRkZGKSk7Ci0gICAgICAgICAgICAqcCsrID0gKFB5X1VOSUNPREUpY2g7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIDQ6Ci0gICAgICAgICAgICBpZiAoKHNbMV0gJiAweGMwKSAhPSAweDgwIHx8Ci0gICAgICAgICAgICAgICAgKHNbMl0gJiAweGMwKSAhPSAweDgwIHx8Ci0gICAgICAgICAgICAgICAgKHNbM10gJiAweGMwKSAhPSAweDgwIHx8Ci0gICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBjaGFyKXNbMF0gPT0gMHhGMCAmJgotICAgICAgICAgICAgICAgICAodW5zaWduZWQgY2hhcilzWzFdIDwgMHg5MCkgfHwKLSAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIpc1swXSA9PSAweEY0ICYmCi0gICAgICAgICAgICAgICAgICh1bnNpZ25lZCBjaGFyKXNbMV0gPiAweDhGKSkgewotICAgICAgICAgICAgICAgIGdvdG8gc3Vycm9nYXRlZXNjYXBlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2ggPSAoKHNbMF0gJiAweDcpIDw8IDE4KSArICgoc1sxXSAmIDB4M2YpIDw8IDEyKSArCi0gICAgICAgICAgICAgICAgICgoc1syXSAmIDB4M2YpIDw8IDYpICsgKHNbM10gJiAweDNmKTsKLSAgICAgICAgICAgIGFzc2VydCAoKGNoID4gMHhGRkZGKSAmJiAoY2ggPD0gMHgxMGZmZmYpKTsKLQorICAgICAgICBQeV9VQ1M0IGNoOwogI2lmIFNJWkVPRl9XQ0hBUl9UID09IDQKLSAgICAgICAgICAgICpwKysgPSAod2NoYXJfdCljaDsKKyAgICAgICAgY2ggPSB1Y3M0bGliX3V0ZjhfZGVjb2RlKCZzLCBlLCAoUHlfVUNTNCAqKXVuaWNvZGUsICZvdXRwb3MpOwogI2Vsc2UKLSAgICAgICAgICAgIC8qICBjb21wdXRlIGFuZCBhcHBlbmQgdGhlIHR3byBzdXJyb2dhdGVzOiAqLwotCi0gICAgICAgICAgICAvKiAgdHJhbnNsYXRlIGZyb20gMTAwMDAuLjEwRkZGRiB0byAwLi5GRkZGICovCi0gICAgICAgICAgICBjaCAtPSAweDEwMDAwOwotCi0gICAgICAgICAgICAvKiAgaGlnaCBzdXJyb2dhdGUgPSB0b3AgMTAgYml0cyBhZGRlZCB0byBEODAwICovCi0gICAgICAgICAgICAqcCsrID0gKHdjaGFyX3QpKDB4RDgwMCArIChjaCA+PiAxMCkpOwotCi0gICAgICAgICAgICAvKiAgbG93IHN1cnJvZ2F0ZSA9IGJvdHRvbSAxMCBiaXRzIGFkZGVkIHRvIERDMDAgKi8KLSAgICAgICAgICAgICpwKysgPSAod2NoYXJfdCkoMHhEQzAwICsgKGNoICYgMHgwM0ZGKSk7CisgICAgICAgIGNoID0gdWNzMmxpYl91dGY4X2RlY29kZSgmcywgZSwgKFB5X1VDUzIgKil1bmljb2RlLCAmb3V0cG9zKTsKICNlbmRpZgotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGlmIChjaCA+IDB4RkYpIHsKKyNpZiBTSVpFT0ZfV0NIQVJfVCA9PSA0CisgICAgICAgICAgICBhc3NlcnQoMCk7CisjZWxzZQorICAgICAgICAgICAgYXNzZXJ0KFB5X1VOSUNPREVfSVNfU1VSUk9HQVRFKGNoKSk7CisgICAgICAgICAgICAvKiAgY29tcHV0ZSBhbmQgYXBwZW5kIHRoZSB0d28gc3Vycm9nYXRlczogKi8KKyAgICAgICAgICAgIHVuaWNvZGVbb3V0cG9zKytdID0gKHdjaGFyX3QpUHlfVU5JQ09ERV9ISUdIX1NVUlJPR0FURShjaCk7CisgICAgICAgICAgICB1bmljb2RlW291dHBvcysrXSA9ICh3Y2hhcl90KVB5X1VOSUNPREVfTE9XX1NVUlJPR0FURShjaCk7CisjZW5kaWYKICAgICAgICAgfQotICAgICAgICBzICs9IG47Ci0gICAgICAgIGNvbnRpbnVlOwotCi0gICAgICBzdXJyb2dhdGVlc2NhcGU6Ci0gICAgICAgICpwKysgPSAweERDMDAgKyBjaDsKLSAgICAgICAgcysrOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmICghY2ggJiYgcyA9PSBlKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgLyogc3Vycm9nYXRlZXNjYXBlICovCisgICAgICAgICAgICB1bmljb2RlW291dHBvcysrXSA9IDB4REMwMCArICh1bnNpZ25lZCBjaGFyKSpzKys7CisgICAgICAgIH0KICAgICB9Ci0gICAgKnAgPSBMJ1wwJzsKKyAgICB1bmljb2RlW291dHBvc10gPSBMJ1wwJzsKICAgICByZXR1cm4gdW5pY29kZTsKIH0KIAogI2VuZGlmIC8qIF9fQVBQTEVfXyAqLwogCi0vKiBBbGxvY2F0aW9uIHN0cmF0ZWd5OiAgaWYgdGhlIHN0cmluZyBpcyBzaG9ydCwgY29udmVydCBpbnRvIGEgc3RhY2sgYnVmZmVyCisvKiBQcmltYXJ5IGludGVybmFsIGZ1bmN0aW9uIHdoaWNoIGNyZWF0ZXMgdXRmOCBlbmNvZGVkIGJ5dGVzIG9iamVjdHMuCisKKyAgIEFsbG9jYXRpb24gc3RyYXRlZ3k6ICBpZiB0aGUgc3RyaW5nIGlzIHNob3J0LCBjb252ZXJ0IGludG8gYSBzdGFjayBidWZmZXIKICAgIGFuZCBhbGxvY2F0ZSBleGFjdGx5IGFzIG11Y2ggc3BhY2UgbmVlZGVkIGF0IHRoZSBlbmQuICBFbHNlIGFsbG9jYXRlIHRoZQogICAgbWF4aW11bSBwb3NzaWJsZSBuZWVkZWQgKDQgcmVzdWx0IGJ5dGVzIHBlciBVbmljb2RlIGNoYXJhY3RlciksIGFuZCByZXR1cm4KICAgIHRoZSBleGNlc3MgbWVtb3J5IGF0IHRoZSBlbmQuCiAqLwogUHlPYmplY3QgKgotUHlVbmljb2RlX0VuY29kZVVURjgoY29uc3QgUHlfVU5JQ09ERSAqcywKLSAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK19QeVVuaWNvZGVfQXNVVEY4U3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlLCBjb25zdCBjaGFyICplcnJvcnMpCiB7Ci0jZGVmaW5lIE1BWF9TSE9SVF9VTklDSEFSUyAzMDAgIC8qIGxhcmdlc3Qgc2l6ZSB3ZSdsbCBkbyBvbiB0aGUgc3RhY2sgKi8KKyAgICBlbnVtIFB5VW5pY29kZV9LaW5kIGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKKyAgICBQeV9zc2l6ZV90IHNpemU7CiAKLSAgICBQeV9zc2l6ZV90IGk7ICAgICAgICAgICAgICAgIC8qIGluZGV4IGludG8gcyBvZiBuZXh0IGlucHV0IGJ5dGUgKi8KLSAgICBQeU9iamVjdCAqcmVzdWx0OyAgICAgICAgICAgIC8qIHJlc3VsdCBzdHJpbmcgb2JqZWN0ICovCi0gICAgY2hhciAqcDsgICAgICAgICAgICAgICAgICAgICAvKiBuZXh0IGZyZWUgYnl0ZSBpbiBvdXRwdXQgYnVmZmVyICovCi0gICAgUHlfc3NpemVfdCBuYWxsb2NhdGVkOyAgICAgIC8qIG51bWJlciBvZiByZXN1bHQgYnl0ZXMgYWxsb2NhdGVkICovCi0gICAgUHlfc3NpemVfdCBubmVlZGVkOyAgICAgICAgICAgIC8qIG51bWJlciBvZiByZXN1bHQgYnl0ZXMgbmVlZGVkICovCi0gICAgY2hhciBzdGFja2J1ZltNQVhfU0hPUlRfVU5JQ0hBUlMgKiA0XTsKLSAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTDsKLSAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKLQotICAgIGFzc2VydChzICE9IE5VTEwpOwotICAgIGFzc2VydChzaXplID49IDApOwotCi0gICAgaWYgKHNpemUgPD0gTUFYX1NIT1JUX1VOSUNIQVJTKSB7Ci0gICAgICAgIC8qIFdyaXRlIGludG8gdGhlIHN0YWNrIGJ1ZmZlcjsgbmFsbG9jYXRlZCBjYW4ndCBvdmVyZmxvdy4KLSAgICAgICAgICogQXQgdGhlIGVuZCwgd2UnbGwgYWxsb2NhdGUgZXhhY3RseSBhcyBtdWNoIGhlYXAgc3BhY2UgYXMgaXQKLSAgICAgICAgICogdHVybnMgb3V0IHdlIG5lZWQuCi0gICAgICAgICAqLwotICAgICAgICBuYWxsb2NhdGVkID0gUHlfU0FGRV9ET1dOQ0FTVChzaXplb2Yoc3RhY2tidWYpLCBzaXplX3QsIGludCk7Ci0gICAgICAgIHJlc3VsdCA9IE5VTEw7ICAgLyogd2lsbCBhbGxvY2F0ZSBhZnRlciB3ZSdyZSBkb25lICovCi0gICAgICAgIHAgPSBzdGFja2J1ZjsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8qIE92ZXJhbGxvY2F0ZSBvbiB0aGUgaGVhcCwgYW5kIGdpdmUgdGhlIGV4Y2VzcyBiYWNrIGF0IHRoZSBlbmQuICovCi0gICAgICAgIG5hbGxvY2F0ZWQgPSBzaXplICogNDsKLSAgICAgICAgaWYgKG5hbGxvY2F0ZWQgLyA0ICE9IHNpemUpICAvKiBvdmVyZmxvdyEgKi8KLSAgICAgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICByZXN1bHQgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIG5hbGxvY2F0ZWQpOwotICAgICAgICBpZiAocmVzdWx0ID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgcCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCk7Ci0gICAgfQotCi0gICAgZm9yIChpID0gMDsgaSA8IHNpemU7KSB7Ci0gICAgICAgIFB5X1VDUzQgY2ggPSBzW2krK107Ci0KLSAgICAgICAgaWYgKGNoIDwgMHg4MCkKLSAgICAgICAgICAgIC8qIEVuY29kZSBBU0NJSSAqLwotICAgICAgICAgICAgKnArKyA9IChjaGFyKSBjaDsKLQotICAgICAgICBlbHNlIGlmIChjaCA8IDB4MDgwMCkgewotICAgICAgICAgICAgLyogRW5jb2RlIExhdGluLTEgKi8KLSAgICAgICAgICAgICpwKysgPSAoY2hhcikoMHhjMCB8IChjaCA+PiA2KSk7Ci0gICAgICAgICAgICAqcCsrID0gKGNoYXIpKDB4ODAgfCAoY2ggJiAweDNmKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoMHhEODAwIDw9IGNoICYmIGNoIDw9IDB4REZGRikgewotI2lmbmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgICAgIC8qIFNwZWNpYWwgY2FzZTogY2hlY2sgZm9yIGhpZ2ggYW5kIGxvdyBzdXJyb2dhdGUgKi8KLSAgICAgICAgICAgIGlmIChjaCA8PSAweERCRkYgJiYgaSAhPSBzaXplICYmIDB4REMwMCA8PSBzW2ldICYmIHNbaV0gPD0gMHhERkZGKSB7Ci0gICAgICAgICAgICAgICAgUHlfVUNTNCBjaDIgPSBzW2ldOwotICAgICAgICAgICAgICAgIC8qIENvbWJpbmUgdGhlIHR3byBzdXJyb2dhdGVzIHRvIGZvcm0gYSBVQ1M0IHZhbHVlICovCi0gICAgICAgICAgICAgICAgY2ggPSAoKGNoIC0gMHhEODAwKSA8PCAxMCB8IChjaDIgLSAweERDMDApKSArIDB4MTAwMDA7Ci0gICAgICAgICAgICAgICAgaSsrOwotCi0gICAgICAgICAgICAgICAgLyogRW5jb2RlIFVDUzQgVW5pY29kZSBvcmRpbmFscyAqLwotICAgICAgICAgICAgICAgICpwKysgPSAoY2hhcikoMHhmMCB8IChjaCA+PiAxOCkpOwotICAgICAgICAgICAgICAgICpwKysgPSAoY2hhcikoMHg4MCB8ICgoY2ggPj4gMTIpICYgMHgzZikpOwotICAgICAgICAgICAgICAgICpwKysgPSAoY2hhcikoMHg4MCB8ICgoY2ggPj4gNikgJiAweDNmKSk7Ci0gICAgICAgICAgICAgICAgKnArKyA9IChjaGFyKSgweDgwIHwgKGNoICYgMHgzZikpOwotICAgICAgICAgICAgfSBlbHNlIHsKLSNlbmRpZgotICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbmV3cG9zOwotICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpyZXA7Ci0gICAgICAgICAgICAgICAgUHlfc3NpemVfdCByZXBzaXplLCBrOwotICAgICAgICAgICAgICAgIHJlcCA9IHVuaWNvZGVfZW5jb2RlX2NhbGxfZXJyb3JoYW5kbGVyCi0gICAgICAgICAgICAgICAgICAgIChlcnJvcnMsICZlcnJvckhhbmRsZXIsICJ1dGYtOCIsICJzdXJyb2dhdGVzIG5vdCBhbGxvd2VkIiwKLSAgICAgICAgICAgICAgICAgICAgIHMsIHNpemUsICZleGMsIGktMSwgaSwgJm5ld3Bvcyk7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXApCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0KLSAgICAgICAgICAgICAgICBpZiAoUHlCeXRlc19DaGVjayhyZXApKQotICAgICAgICAgICAgICAgICAgICByZXBzaXplID0gUHlCeXRlc19HRVRfU0laRShyZXApOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcmVwc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShyZXApOwotCi0gICAgICAgICAgICAgICAgaWYgKHJlcHNpemUgPiA0KSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgb2Zmc2V0OwotCi0gICAgICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldCA9IHAgLSBzdGFja2J1ZjsKLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0ID0gcCAtIFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCk7Ci0KLSAgICAgICAgICAgICAgICAgICAgaWYgKG5hbGxvY2F0ZWQgPiBQWV9TU0laRV9UX01BWCAtIHJlcHNpemUgKyA0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBpbnRlZ2VyIG92ZXJmbG93ICovCi0gICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBuYWxsb2NhdGVkICs9IHJlcHNpemUgLSA0OwotICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfUHlCeXRlc19SZXNpemUoJnJlc3VsdCwgbmFsbG9jYXRlZCkgPCAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIG5hbGxvY2F0ZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQeV9NRU1DUFkoUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KSwgc3RhY2tidWYsIG9mZnNldCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgcCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlc3VsdCkgKyBvZmZzZXQ7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKFB5Qnl0ZXNfQ2hlY2socmVwKSkgewotICAgICAgICAgICAgICAgICAgICBjaGFyICpwcmVwID0gUHlCeXRlc19BU19TVFJJTkcocmVwKTsKLSAgICAgICAgICAgICAgICAgICAgZm9yKGsgPSByZXBzaXplOyBrID4gMDsgay0tKQotICAgICAgICAgICAgICAgICAgICAgICAgKnArKyA9ICpwcmVwKys7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIC8qIHJlcCBpcyB1bmljb2RlICovIHsKLSAgICAgICAgICAgICAgICAgICAgUHlfVU5JQ09ERSAqcHJlcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlcCk7Ci0gICAgICAgICAgICAgICAgICAgIFB5X1VOSUNPREUgYzsKLQotICAgICAgICAgICAgICAgICAgICBmb3Ioaz0wOyBrPHJlcHNpemU7IGsrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgYyA9IHByZXBba107Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoMHg4MCA8PSBjKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2VfZW5jb2RlX2V4Y2VwdGlvbigmZXhjLCAidXRmLTgiLCBzLCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaS0xLCBpLCAic3Vycm9nYXRlcyBub3QgYWxsb3dlZCIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAqcCsrID0gKGNoYXIpcHJlcFtrXTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYocmVwKTsKLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgfSBlbHNlIGlmIChjaCA8IDB4MTAwMDApIHsKLSAgICAgICAgICAgICpwKysgPSAoY2hhcikoMHhlMCB8IChjaCA+PiAxMikpOwotICAgICAgICAgICAgKnArKyA9IChjaGFyKSgweDgwIHwgKChjaCA+PiA2KSAmIDB4M2YpKTsKLSAgICAgICAgICAgICpwKysgPSAoY2hhcikoMHg4MCB8IChjaCAmIDB4M2YpKTsKLSAgICAgICAgfSBlbHNlIC8qIGNoID49IDB4MTAwMDAgKi8gewotICAgICAgICAgICAgLyogRW5jb2RlIFVDUzQgVW5pY29kZSBvcmRpbmFscyAqLwotICAgICAgICAgICAgKnArKyA9IChjaGFyKSgweGYwIHwgKGNoID4+IDE4KSk7Ci0gICAgICAgICAgICAqcCsrID0gKGNoYXIpKDB4ODAgfCAoKGNoID4+IDEyKSAmIDB4M2YpKTsKLSAgICAgICAgICAgICpwKysgPSAoY2hhcikoMHg4MCB8ICgoY2ggPj4gNikgJiAweDNmKSk7Ci0gICAgICAgICAgICAqcCsrID0gKGNoYXIpKDB4ODAgfCAoY2ggJiAweDNmKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAocmVzdWx0ID09IE5VTEwpIHsKLSAgICAgICAgLyogVGhpcyB3YXMgc3RhY2sgYWxsb2NhdGVkLiAqLwotICAgICAgICBubmVlZGVkID0gcCAtIHN0YWNrYnVmOwotICAgICAgICBhc3NlcnQobm5lZWRlZCA8PSBuYWxsb2NhdGVkKTsKLSAgICAgICAgcmVzdWx0ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShzdGFja2J1Ziwgbm5lZWRlZCk7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICAvKiBDdXQgYmFjayB0byBzaXplIGFjdHVhbGx5IG5lZWRlZC4gKi8KLSAgICAgICAgbm5lZWRlZCA9IHAgLSBQeUJ5dGVzX0FTX1NUUklORyhyZXN1bHQpOwotICAgICAgICBhc3NlcnQobm5lZWRlZCA8PSBuYWxsb2NhdGVkKTsKLSAgICAgICAgX1B5Qnl0ZXNfUmVzaXplKCZyZXN1bHQsIG5uZWVkZWQpOwotICAgIH0KLSAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7Ci0gICAgUHlfWERFQ1JFRihleGMpOwotICAgIHJldHVybiByZXN1bHQ7Ci0gZXJyb3I6Ci0gICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwotICAgIFB5X1hERUNSRUYoZXhjKTsKLSAgICBQeV9YREVDUkVGKHJlc3VsdCk7Ci0gICAgcmV0dXJuIE5VTEw7Ci0KLSN1bmRlZiBNQVhfU0hPUlRfVU5JQ0hBUlMKLX0KLQotUHlPYmplY3QgKlB5VW5pY29kZV9Bc1VURjhTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCi17CiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodW5pY29kZSkpIHsKICAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfRW5jb2RlVVRGOChQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodW5pY29kZSkgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKFB5VW5pY29kZV9VVEY4KHVuaWNvZGUpKQorICAgICAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShQeVVuaWNvZGVfVVRGOCh1bmljb2RlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1VURjhfTEVOR1RIKHVuaWNvZGUpKTsKKworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh1bmljb2RlKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEodW5pY29kZSk7CisgICAgc2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpOworCisgICAgc3dpdGNoIChraW5kKSB7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYXNzZXJ0KDApOworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIC8qIHRoZSBzdHJpbmcgY2Fubm90IGJlIEFTQ0lJLCBvciBQeVVuaWNvZGVfVVRGOCgpIHdvdWxkIGJlIHNldCAqLworICAgICAgICBhc3NlcnQoIVB5VW5pY29kZV9JU19BU0NJSSh1bmljb2RlKSk7CisgICAgICAgIHJldHVybiB1Y3MxbGliX3V0ZjhfZW5jb2Rlcih1bmljb2RlLCBkYXRhLCBzaXplLCBlcnJvcnMpOworICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgIHJldHVybiB1Y3MybGliX3V0ZjhfZW5jb2Rlcih1bmljb2RlLCBkYXRhLCBzaXplLCBlcnJvcnMpOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisgICAgICAgIHJldHVybiB1Y3M0bGliX3V0ZjhfZW5jb2Rlcih1bmljb2RlLCBkYXRhLCBzaXplLCBlcnJvcnMpOworICAgIH0KK30KKworUHlPYmplY3QgKgorUHlVbmljb2RlX0VuY29kZVVURjgoY29uc3QgUHlfVU5JQ09ERSAqcywKKyAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK3sKKyAgICBQeU9iamVjdCAqdiwgKnVuaWNvZGU7CisKKyAgICB1bmljb2RlID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHMsIHNpemUpOworICAgIGlmICh1bmljb2RlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHYgPSBfUHlVbmljb2RlX0FzVVRGOFN0cmluZyh1bmljb2RlLCBlcnJvcnMpOworICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICByZXR1cm4gdjsKK30KKworUHlPYmplY3QgKgorUHlVbmljb2RlX0FzVVRGOFN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKK3sKKyAgICByZXR1cm4gX1B5VW5pY29kZV9Bc1VURjhTdHJpbmcodW5pY29kZSwgTlVMTCk7CiB9CiAKIC8qIC0tLSBVVEYtMzIgQ29kZWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtMzEwNywxNCArNDk1NCw3IEBACiAgICAgUHlfc3NpemVfdCBzdGFydGlucG9zOwogICAgIFB5X3NzaXplX3QgZW5kaW5wb3M7CiAgICAgUHlfc3NpemVfdCBvdXRwb3M7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICp1bmljb2RlOwotICAgIFB5X1VOSUNPREUgKnA7Ci0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotICAgIGludCBwYWlycyA9IDA7Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciAqcXE7Ci0jZWxzZQotICAgIGNvbnN0IGludCBwYWlycyA9IDA7Ci0jZW5kaWYKKyAgICBQeU9iamVjdCAqdW5pY29kZTsKICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpxLCAqZTsKICAgICBpbnQgYm8gPSAwOyAgICAgICAvKiBhc3N1bWUgbmF0aXZlIG9yZGVyaW5nIGJ5IGRlZmF1bHQgKi8KICAgICBjb25zdCBjaGFyICplcnJtc2cgPSAiIjsKQEAgLTMxNzgsMjMgKzUwMTgsMTMgQEAKICAgICAgICAgaW9yZGVyWzNdID0gMDsKICAgICB9CiAKLSAgICAvKiBPbiBuYXJyb3cgYnVpbGRzIHdlIHNwbGl0IGNoYXJhY3RlcnMgb3V0c2lkZSB0aGUgQk1QIGludG8gdHdvCi0gICAgICAgY29kZXBvaW50cyA9PiBjb3VudCBob3cgbXVjaCBleHRyYSBzcGFjZSB3ZSBuZWVkLiAqLwotI2lmbmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICBmb3IgKHFxID0gcTsgcXEgPCBlOyBxcSArPSA0KQotICAgICAgICBpZiAocXFbaW9yZGVyWzJdXSAhPSAwIHx8IHFxW2lvcmRlclszXV0gIT0gMCkKLSAgICAgICAgICAgIHBhaXJzKys7Ci0jZW5kaWYKLQogICAgIC8qIFRoaXMgbWlnaHQgYmUgb25lIHRvIG11Y2gsIGJlY2F1c2Ugb2YgYSBCT00gKi8KLSAgICB1bmljb2RlID0gX1B5VW5pY29kZV9OZXcoKHNpemUrMykvNCtwYWlycyk7CisgICAgdW5pY29kZSA9IFB5VW5pY29kZV9OZXcoKHNpemUrMykvNCwgMTI3KTsKICAgICBpZiAoIXVuaWNvZGUpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmIChzaXplID09IDApCi0gICAgICAgIHJldHVybiAoUHlPYmplY3QgKil1bmljb2RlOwotCi0gICAgLyogVW5wYWNrIFVURi0zMiBlbmNvZGVkIGRhdGEgKi8KLSAgICBwID0gdW5pY29kZS0+c3RyOworICAgICAgICByZXR1cm4gdW5pY29kZTsKKyAgICBvdXRwb3MgPSAwOwogCiAgICAgd2hpbGUgKHEgPCBlKSB7CiAgICAgICAgIFB5X1VDUzQgY2g7CkBAIC0zMjE5LDI0ICs1MDQ5LDE2IEBACiAgICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MrNDsKICAgICAgICAgICAgIGdvdG8gdXRmMzJFcnJvcjsKICAgICAgICAgfQotI2lmbmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgaWYgKGNoID49IDB4MTAwMDApCi0gICAgICAgIHsKLSAgICAgICAgICAgICpwKysgPSAweEQ4MDAgfCAoKGNoLTB4MTAwMDApID4+IDEwKTsKLSAgICAgICAgICAgICpwKysgPSAweERDMDAgfCAoKGNoLTB4MTAwMDApICYgMHgzRkYpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgKnArKyA9IGNoOworICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ1bmljb2RlLCAmb3V0cG9zLCBjaCkgPCAwKQorICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICBxICs9IDQ7CiAgICAgICAgIGNvbnRpbnVlOwogICAgICAgdXRmMzJFcnJvcjoKLSAgICAgICAgb3V0cG9zID0gcC1QeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKTsKICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAogICAgICAgICAgICAgICAgIGVycm9ycywgJmVycm9ySGFuZGxlciwKICAgICAgICAgICAgICAgICAidXRmMzIiLCBlcnJtc2csCiAgICAgICAgICAgICAgICAgJnN0YXJ0cywgKGNvbnN0IGNoYXIgKiopJmUsICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsIChjb25zdCBjaGFyICoqKSZxLAotICAgICAgICAgICAgICAgICZ1bmljb2RlLCAmb3V0cG9zLCAmcCkpCisgICAgICAgICAgICAgICAgJnVuaWNvZGUsICZvdXRwb3MpKQogICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgIH0KIApAQCAtMzI0NywxMiArNTA2OSwxMiBAQAogICAgICAgICAqY29uc3VtZWQgPSAoY29uc3QgY2hhciAqKXEtc3RhcnRzOwogCiAgICAgLyogQWRqdXN0IGxlbmd0aCAqLwotICAgIGlmIChfUHlVbmljb2RlX1Jlc2l6ZSgmdW5pY29kZSwgcCAtIHVuaWNvZGUtPnN0cikgPCAwKQorICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdW5pY29kZSwgb3V0cG9zKSA8IDApCiAgICAgICAgIGdvdG8gb25FcnJvcjsKIAogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgcmV0dXJuIChQeU9iamVjdCAqKXVuaWNvZGU7CisgICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0KHVuaWNvZGUpOwogCiAgIG9uRXJyb3I6CiAgICAgUHlfREVDUkVGKHVuaWNvZGUpOwpAQCAtMzI2MiwxOSArNTA4NCwxNiBAQAogfQogCiBQeU9iamVjdCAqCi1QeVVuaWNvZGVfRW5jb2RlVVRGMzIoY29uc3QgUHlfVU5JQ09ERSAqcywKLSAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLAotICAgICAgICAgICAgICAgICAgICAgIGludCBieXRlb3JkZXIpCitfUHlVbmljb2RlX0VuY29kZVVURjMyKFB5T2JqZWN0ICpzdHIsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgaW50IGJ5dGVvcmRlcikKIHsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOworICAgIFB5X3NzaXplX3QgbGVuOwogICAgIFB5T2JqZWN0ICp2OwogICAgIHVuc2lnbmVkIGNoYXIgKnA7Ci0gICAgUHlfc3NpemVfdCBuc2l6ZSwgYnl0ZXNpemU7Ci0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotICAgIFB5X3NzaXplX3QgaSwgcGFpcnM7Ci0jZWxzZQotICAgIGNvbnN0IGludCBwYWlycyA9IDA7Ci0jZW5kaWYKKyAgICBQeV9zc2l6ZV90IG5zaXplLCBieXRlc2l6ZSwgaTsKICAgICAvKiBPZmZzZXRzIGZyb20gcCBmb3Igc3RvcmluZyBieXRlIHBhaXJzIGluIHRoZSByaWdodCBvcmRlci4gKi8KICNpZmRlZiBCWVRFT1JERVJfSVNfTElUVExFX0VORElBTgogICAgIGludCBpb3JkZXJbXSA9IHswLCAxLCAyLCAzfTsKQEAgLTMyOTEsMTUgKzUxMTAsMTcgQEAKICAgICAgICAgcCArPSA0OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICB9IHdoaWxlKDApCiAKLSAgICAvKiBJbiBuYXJyb3cgYnVpbGRzIHdlIGNhbiBvdXRwdXQgc3Vycm9nYXRlIHBhaXJzIGFzIG9uZSBjb2RlcG9pbnQsCi0gICAgICAgc28gd2UgbmVlZCBsZXNzIHNwYWNlLiAqLwotI2lmbmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICBmb3IgKGkgPSBwYWlycyA9IDA7IGkgPCBzaXplLTE7IGkrKykKLSAgICAgICAgaWYgKDB4RDgwMCA8PSBzW2ldICYmIHNbaV0gPD0gMHhEQkZGICYmCi0gICAgICAgICAgICAweERDMDAgPD0gc1tpKzFdICYmIHNbaSsxXSA8PSAweERGRkYpCi0gICAgICAgICAgICBwYWlycysrOwotI2VuZGlmCi0gICAgbnNpemUgPSAoc2l6ZSAtIHBhaXJzICsgKGJ5dGVvcmRlciA9PSAwKSk7CisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2soc3RyKSkgeworICAgICAgICBQeUVycl9CYWRBcmd1bWVudCgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzdHIpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoc3RyKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoc3RyKTsKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpOworCisgICAgbnNpemUgPSBsZW4gKyAoYnl0ZW9yZGVyID09IDApOwogICAgIGJ5dGVzaXplID0gbnNpemUgKiA0OwogICAgIGlmIChieXRlc2l6ZSAvIDQgIT0gbnNpemUpCiAgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwpAQCAtMzMxMCw3ICs1MTMxLDcgQEAKICAgICBwID0gKHVuc2lnbmVkIGNoYXIgKilQeUJ5dGVzX0FTX1NUUklORyh2KTsKICAgICBpZiAoYnl0ZW9yZGVyID09IDApCiAgICAgICAgIFNUT1JFQ0hBUigweEZFRkYpOwotICAgIGlmIChzaXplID09IDApCisgICAgaWYgKGxlbiA9PSAwKQogICAgICAgICBnb3RvIGRvbmU7CiAKICAgICBpZiAoYnl0ZW9yZGVyID09IC0xKSB7CkBAIC0zMzI4LDM2ICs1MTQ5LDMzIEBACiAgICAgICAgIGlvcmRlclszXSA9IDA7CiAgICAgfQogCi0gICAgd2hpbGUgKHNpemUtLSA+IDApIHsKLSAgICAgICAgUHlfVUNTNCBjaCA9ICpzKys7Ci0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotICAgICAgICBpZiAoMHhEODAwIDw9IGNoICYmIGNoIDw9IDB4REJGRiAmJiBzaXplID4gMCkgewotICAgICAgICAgICAgUHlfVUNTNCBjaDIgPSAqczsKLSAgICAgICAgICAgIGlmICgweERDMDAgPD0gY2gyICYmIGNoMiA8PSAweERGRkYpIHsKLSAgICAgICAgICAgICAgICBjaCA9ICgoKGNoICYgMHgzRkYpPDwxMCkgfCAoY2gyICYgMHgzRkYpKSArIDB4MTAwMDA7Ci0gICAgICAgICAgICAgICAgcysrOwotICAgICAgICAgICAgICAgIHNpemUtLTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2VuZGlmCi0gICAgICAgIFNUT1JFQ0hBUihjaCk7Ci0gICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKKyAgICAgICAgU1RPUkVDSEFSKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpKTsKIAogICBkb25lOgogICAgIHJldHVybiB2OwogI3VuZGVmIFNUT1JFQ0hBUgogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0FzVVRGMzJTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRW5jb2RlVVRGMzIoY29uc3QgUHlfVU5JQ09ERSAqcywKKyAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgIGludCBieXRlb3JkZXIpCiB7Ci0gICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodW5pY29kZSkpIHsKLSAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICp0bXAgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocywgc2l6ZSk7CisgICAgaWYgKHRtcCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVVVEYzMihQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICByZXN1bHQgPSBfUHlVbmljb2RlX0VuY29kZVVURjMyKHRtcCwgZXJyb3JzLCBieXRlb3JkZXIpOworICAgIFB5X0RFQ1JFRih0bXApOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9Bc1VURjMyU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlKQoreworICAgIHJldHVybiBfUHlVbmljb2RlX0VuY29kZVVURjMyKHVuaWNvZGUsIE5VTEwsIDApOwogfQogCiAvKiAtLS0gVVRGLTE2IENvZGVjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KQEAgLTMzNzEsMjMgKzUxODksNiBAQAogICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlVVRGMTZTdGF0ZWZ1bChzLCBzaXplLCBlcnJvcnMsIGJ5dGVvcmRlciwgTlVMTCk7CiB9CiAKLS8qIFR3byBtYXNrcyBmb3IgZmFzdCBjaGVja2luZyBvZiB3aGV0aGVyIGEgQyAnbG9uZycgbWF5IGNvbnRhaW4KLSAgIFVURjE2LWVuY29kZWQgc3Vycm9nYXRlIGNoYXJhY3RlcnMuIFRoaXMgaXMgYW4gZWZmaWNpZW50IGhldXJpc3RpYywKLSAgIGFzc3VtaW5nIHRoYXQgbm9uLXN1cnJvZ2F0ZSBjaGFyYWN0ZXJzIHdpdGggYSBjb2RlIHBvaW50ID49IDB4ODAwMCBhcmUKLSAgIHJhcmUgaW4gbW9zdCBpbnB1dC4KLSAgIEZBU1RfQ0hBUl9NQVNLIGlzIHVzZWQgd2hlbiB0aGUgaW5wdXQgaXMgaW4gbmF0aXZlIGJ5dGUgb3JkZXJpbmcsCi0gICBTV0FQUEVEX0ZBU1RfQ0hBUl9NQVNLIHdoZW4gdGhlIGlucHV0IGlzIGluIGJ5dGVzd2FwcGVkIG9yZGVyaW5nLgotKi8KLSNpZiAoU0laRU9GX0xPTkcgPT0gOCkKLSMgZGVmaW5lIEZBU1RfQ0hBUl9NQVNLICAgICAgICAgMHg4MDAwODAwMDgwMDA4MDAwTAotIyBkZWZpbmUgU1dBUFBFRF9GQVNUX0NIQVJfTUFTSyAweDAwODAwMDgwMDA4MDAwODBMCi0jZWxpZiAoU0laRU9GX0xPTkcgPT0gNCkKLSMgZGVmaW5lIEZBU1RfQ0hBUl9NQVNLICAgICAgICAgMHg4MDAwODAwMEwKLSMgZGVmaW5lIFNXQVBQRURfRkFTVF9DSEFSX01BU0sgMHgwMDgwMDA4MEwKLSNlbHNlCi0jIGVycm9yIEMgJ2xvbmcnIHNpemUgc2hvdWxkIGJlIGVpdGhlciA0IG9yIDghCi0jZW5kaWYKLQogUHlPYmplY3QgKgogUHlVbmljb2RlX0RlY29kZVVURjE2U3RhdGVmdWwoY29uc3QgY2hhciAqcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKQEAgLTMzOTksMzMgKzUyMDAsMTYgQEAKICAgICBQeV9zc2l6ZV90IHN0YXJ0aW5wb3M7CiAgICAgUHlfc3NpemVfdCBlbmRpbnBvczsKICAgICBQeV9zc2l6ZV90IG91dHBvczsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnVuaWNvZGU7Ci0gICAgUHlfVU5JQ09ERSAqcDsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyICpxLCAqZSwgKmFsaWduZWRfZW5kOworICAgIFB5T2JqZWN0ICp1bmljb2RlOworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnEsICplOwogICAgIGludCBibyA9IDA7ICAgICAgIC8qIGFzc3VtZSBuYXRpdmUgb3JkZXJpbmcgYnkgZGVmYXVsdCAqLwotICAgIGludCBuYXRpdmVfb3JkZXJpbmcgPSAwOworICAgIGludCBuYXRpdmVfb3JkZXJpbmc7CiAgICAgY29uc3QgY2hhciAqZXJybXNnID0gIiI7Ci0gICAgLyogT2Zmc2V0cyBmcm9tIHEgZm9yIHJldHJpZXZpbmcgYnl0ZSBwYWlycyBpbiB0aGUgcmlnaHQgb3JkZXIuICovCi0jaWZkZWYgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KLSAgICBpbnQgaWhpID0gMSwgaWxvID0gMDsKLSNlbHNlCi0gICAgaW50IGloaSA9IDAsIGlsbyA9IDE7Ci0jZW5kaWYKICAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTDsKICAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKIAotICAgIC8qIE5vdGU6IHNpemUgd2lsbCBhbHdheXMgYmUgbG9uZ2VyIHRoYW4gdGhlIHJlc3VsdGluZyBVbmljb2RlCi0gICAgICAgY2hhcmFjdGVyIGNvdW50ICovCi0gICAgdW5pY29kZSA9IF9QeVVuaWNvZGVfTmV3KHNpemUpOwotICAgIGlmICghdW5pY29kZSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKHNpemUgPT0gMCkKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXVuaWNvZGU7Ci0KLSAgICAvKiBVbnBhY2sgVVRGLTE2IGVuY29kZWQgZGF0YSAqLwotICAgIHAgPSB1bmljb2RlLT5zdHI7CiAgICAgcSA9ICh1bnNpZ25lZCBjaGFyICopczsKLSAgICBlID0gcSArIHNpemUgLSAxOworICAgIGUgPSBxICsgc2l6ZTsKIAogICAgIGlmIChieXRlb3JkZXIpCiAgICAgICAgIGJvID0gKmJ5dGVvcmRlcjsKQEAgLTM0MzQsMTY0ICs1MjE4LDk4IEBACiAgICAgICAgYnl0ZSBvcmRlciBzZXR0aW5nIGFjY29yZGluZ2x5LiBJbiBuYXRpdmUgbW9kZSwgdGhlIGxlYWRpbmcgQk9NCiAgICAgICAgbWFyayBpcyBza2lwcGVkLCBpbiBhbGwgb3RoZXIgbW9kZXMsIGl0IGlzIGNvcGllZCB0byB0aGUgb3V0cHV0CiAgICAgICAgc3RyZWFtIGFzLWlzIChnaXZpbmcgYSBaV05CU1AgY2hhcmFjdGVyKS4gKi8KLSAgICBpZiAoYm8gPT0gMCkgewotICAgICAgICBpZiAoc2l6ZSA+PSAyKSB7Ci0gICAgICAgICAgICBjb25zdCBQeV9VTklDT0RFIGJvbSA9IChxW2loaV0gPDwgOCkgfCBxW2lsb107Ci0jaWZkZWYgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KLSAgICAgICAgICAgIGlmIChib20gPT0gMHhGRUZGKSB7Ci0gICAgICAgICAgICAgICAgcSArPSAyOwotICAgICAgICAgICAgICAgIGJvID0gLTE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChib20gPT0gMHhGRkZFKSB7Ci0gICAgICAgICAgICAgICAgcSArPSAyOwotICAgICAgICAgICAgICAgIGJvID0gMTsKLSAgICAgICAgICAgIH0KLSNlbHNlCi0gICAgICAgICAgICBpZiAoYm9tID09IDB4RkVGRikgewotICAgICAgICAgICAgICAgIHEgKz0gMjsKLSAgICAgICAgICAgICAgICBibyA9IDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChib20gPT0gMHhGRkZFKSB7Ci0gICAgICAgICAgICAgICAgcSArPSAyOwotICAgICAgICAgICAgICAgIGJvID0gLTE7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKKyAgICBpZiAoYm8gPT0gMCAmJiBzaXplID49IDIpIHsKKyAgICAgICAgY29uc3QgUHlfVUNTNCBib20gPSAocVsxXSA8PCA4KSB8IHFbMF07CisgICAgICAgIGlmIChib20gPT0gMHhGRUZGKSB7CisgICAgICAgICAgICBxICs9IDI7CisgICAgICAgICAgICBibyA9IC0xOwogICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGJvID09IC0xKSB7Ci0gICAgICAgIC8qIGZvcmNlIExFICovCi0gICAgICAgIGloaSA9IDE7Ci0gICAgICAgIGlsbyA9IDA7Ci0gICAgfQotICAgIGVsc2UgaWYgKGJvID09IDEpIHsKLSAgICAgICAgLyogZm9yY2UgQkUgKi8KLSAgICAgICAgaWhpID0gMDsKLSAgICAgICAgaWxvID0gMTsKLSAgICB9Ci0jaWZkZWYgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KLSAgICBuYXRpdmVfb3JkZXJpbmcgPSBpbG8gPCBpaGk7Ci0jZWxzZQotICAgIG5hdGl2ZV9vcmRlcmluZyA9IGlsbyA+IGloaTsKLSNlbmRpZgotCi0gICAgYWxpZ25lZF9lbmQgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKSAoKHNpemVfdCkgZSAmIH5MT05HX1BUUl9NQVNLKTsKLSAgICB3aGlsZSAocSA8IGUpIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjaDsKLSAgICAgICAgLyogRmlyc3QgY2hlY2sgZm9yIHBvc3NpYmxlIGFsaWduZWQgcmVhZCBvZiBhIEMgJ2xvbmcnLiBVbmFsaWduZWQKLSAgICAgICAgICAgcmVhZHMgYXJlIG1vcmUgZXhwZW5zaXZlLCBiZXR0ZXIgdG8gZGVmZXIgdG8gYW5vdGhlciBpdGVyYXRpb24uICovCi0gICAgICAgIGlmICghKChzaXplX3QpIHEgJiBMT05HX1BUUl9NQVNLKSkgewotICAgICAgICAgICAgLyogRmFzdCBwYXRoIGZvciBydW5zIG9mIG5vbi1zdXJyb2dhdGUgY2hhcnMuICovCi0gICAgICAgICAgICByZWdpc3RlciBjb25zdCB1bnNpZ25lZCBjaGFyICpfcSA9IHE7Ci0gICAgICAgICAgICBQeV9VTklDT0RFICpfcCA9IHA7Ci0gICAgICAgICAgICBpZiAobmF0aXZlX29yZGVyaW5nKSB7Ci0gICAgICAgICAgICAgICAgLyogTmF0aXZlIG9yZGVyaW5nIGlzIHNpbXBsZTogYXMgbG9uZyBhcyB0aGUgaW5wdXQgY2Fubm90Ci0gICAgICAgICAgICAgICAgICAgcG9zc2libHkgY29udGFpbiBhIHN1cnJvZ2F0ZSBjaGFyLCBkbyBhbiB1bnJvbGxlZCBjb3B5Ci0gICAgICAgICAgICAgICAgICAgb2Ygc2V2ZXJhbCAxNi1iaXQgY29kZSBwb2ludHMgdG8gdGhlIHRhcmdldCBvYmplY3QuCi0gICAgICAgICAgICAgICAgICAgVGhlIG5vbi1zdXJyb2dhdGUgY2hlY2sgaXMgZG9uZSBvbiBzZXZlcmFsIGlucHV0IGJ5dGVzCi0gICAgICAgICAgICAgICAgICAgYXQgYSB0aW1lIChhcyBtYW55IGFzIGEgQyAnbG9uZycgY2FuIGNvbnRhaW4pLiAqLwotICAgICAgICAgICAgICAgIHdoaWxlIChfcSA8IGFsaWduZWRfZW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgZGF0YSA9ICogKHVuc2lnbmVkIGxvbmcgKikgX3E7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhICYgRkFTVF9DSEFSX01BU0spCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgX3BbMF0gPSAoKHVuc2lnbmVkIHNob3J0ICopIF9xKVswXTsKLSAgICAgICAgICAgICAgICAgICAgX3BbMV0gPSAoKHVuc2lnbmVkIHNob3J0ICopIF9xKVsxXTsKLSNpZiAoU0laRU9GX0xPTkcgPT0gOCkKLSAgICAgICAgICAgICAgICAgICAgX3BbMl0gPSAoKHVuc2lnbmVkIHNob3J0ICopIF9xKVsyXTsKLSAgICAgICAgICAgICAgICAgICAgX3BbM10gPSAoKHVuc2lnbmVkIHNob3J0ICopIF9xKVszXTsKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgICBfcSArPSBTSVpFT0ZfTE9ORzsKLSAgICAgICAgICAgICAgICAgICAgX3AgKz0gU0laRU9GX0xPTkcgLyAyOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIC8qIEJ5dGVzd2FwcGVkIG9yZGVyaW5nIGlzIHNpbWlsYXIsIGJ1dCB3ZSBtdXN0IGRlY29tcG9zZQotICAgICAgICAgICAgICAgICAgIHRoZSBjb3B5IGJ5dGV3aXNlLCBhbmQgdGFrZSBjYXJlIG9mIHplcm8naW5nIG91dCB0aGUKLSAgICAgICAgICAgICAgICAgICB1cHBlciBieXRlcyBpZiB0aGUgdGFyZ2V0IG9iamVjdCBpcyBpbiAzMi1iaXQgdW5pdHMKLSAgICAgICAgICAgICAgICAgICAodGhhdCBpcywgaW4gVUNTLTQgYnVpbGRzKS4gKi8KLSAgICAgICAgICAgICAgICB3aGlsZSAoX3EgPCBhbGlnbmVkX2VuZCkgewotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nIGRhdGEgPSAqICh1bnNpZ25lZCBsb25nICopIF9xOwotICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSAmIFNXQVBQRURfRkFTVF9DSEFSX01BU0spCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgLyogWmVybyB1cHBlciBieXRlcyBpbiBVQ1MtNCBidWlsZHMgKi8KLSNpZiAoUHlfVU5JQ09ERV9TSVpFID4gMikKLSAgICAgICAgICAgICAgICAgICAgX3BbMF0gPSAwOwotICAgICAgICAgICAgICAgICAgICBfcFsxXSA9IDA7Ci0jaWYgKFNJWkVPRl9MT05HID09IDgpCi0gICAgICAgICAgICAgICAgICAgIF9wWzJdID0gMDsKLSAgICAgICAgICAgICAgICAgICAgX3BbM10gPSAwOwotI2VuZGlmCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgLyogSXNzdWUgIzQ5MTY7IFVDUy00IGJ1aWxkcyBvbiBiaWcgZW5kaWFuIG1hY2hpbmVzIG11c3QKLSAgICAgICAgICAgICAgICAgICAgICAgZmlsbCB0aGUgdHdvIGxhc3QgYnl0ZXMgb2YgZWFjaCA0LWJ5dGUgdW5pdC4gKi8KLSNpZiAoIWRlZmluZWQoQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4pICYmIFB5X1VOSUNPREVfU0laRSA+IDIpCi0jIGRlZmluZSBPRkYgMgotI2Vsc2UKLSMgZGVmaW5lIE9GRiAwCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBjaGFyICopIF9wKVtPRkYgKyAxXSA9IF9xWzBdOwotICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIgKikgX3ApW09GRiArIDBdID0gX3FbMV07Ci0gICAgICAgICAgICAgICAgICAgICgodW5zaWduZWQgY2hhciAqKSBfcClbT0ZGICsgMSArIFB5X1VOSUNPREVfU0laRV0gPSBfcVsyXTsKLSAgICAgICAgICAgICAgICAgICAgKCh1bnNpZ25lZCBjaGFyICopIF9wKVtPRkYgKyAwICsgUHlfVU5JQ09ERV9TSVpFXSA9IF9xWzNdOwotI2lmIChTSVpFT0ZfTE9ORyA9PSA4KQotICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIgKikgX3ApW09GRiArIDEgKyAyICogUHlfVU5JQ09ERV9TSVpFXSA9IF9xWzRdOwotICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIgKikgX3ApW09GRiArIDAgKyAyICogUHlfVU5JQ09ERV9TSVpFXSA9IF9xWzVdOwotICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIgKikgX3ApW09GRiArIDEgKyAzICogUHlfVU5JQ09ERV9TSVpFXSA9IF9xWzZdOwotICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIgKikgX3ApW09GRiArIDAgKyAzICogUHlfVU5JQ09ERV9TSVpFXSA9IF9xWzddOwotI2VuZGlmCi0jdW5kZWYgT0ZGCi0gICAgICAgICAgICAgICAgICAgIF9xICs9IFNJWkVPRl9MT05HOwotICAgICAgICAgICAgICAgICAgICBfcCArPSBTSVpFT0ZfTE9ORyAvIDI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAgcCA9IF9wOwotICAgICAgICAgICAgcSA9IF9xOwotICAgICAgICAgICAgaWYgKHEgPj0gZSkKLSAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZWxzZSBpZiAoYm9tID09IDB4RkZGRSkgeworICAgICAgICAgICAgcSArPSAyOworICAgICAgICAgICAgYm8gPSAxOwogICAgICAgICB9Ci0gICAgICAgIGNoID0gKHFbaWhpXSA8PCA4KSB8IHFbaWxvXTsKKyAgICAgICAgaWYgKGJ5dGVvcmRlcikKKyAgICAgICAgICAgICpieXRlb3JkZXIgPSBibzsKKyAgICB9CiAKLSAgICAgICAgcSArPSAyOworICAgIGlmIChxID09IGUpIHsKKyAgICAgICAgaWYgKGNvbnN1bWVkKQorICAgICAgICAgICAgKmNvbnN1bWVkID0gc2l6ZTsKKyAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGVfZW1wdHkpOworICAgICAgICByZXR1cm4gdW5pY29kZV9lbXB0eTsKKyAgICB9CiAKLSAgICAgICAgaWYgKGNoIDwgMHhEODAwIHx8IGNoID4gMHhERkZGKSB7Ci0gICAgICAgICAgICAqcCsrID0gY2g7CisjaWZkZWYgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KKyAgICBuYXRpdmVfb3JkZXJpbmcgPSBibyA8PSAwOworI2Vsc2UKKyAgICBuYXRpdmVfb3JkZXJpbmcgPSBibyA+PSAwOworI2VuZGlmCisKKyAgICAvKiBOb3RlOiBzaXplIHdpbGwgYWx3YXlzIGJlIGxvbmdlciB0aGFuIHRoZSByZXN1bHRpbmcgVW5pY29kZQorICAgICAgIGNoYXJhY3RlciBjb3VudCAqLworICAgIHVuaWNvZGUgPSBQeVVuaWNvZGVfTmV3KChlIC0gcSArIDEpIC8gMiwgMTI3KTsKKyAgICBpZiAoIXVuaWNvZGUpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgb3V0cG9zID0gMDsKKyAgICB3aGlsZSAoMSkgeworICAgICAgICBQeV9VQ1M0IGNoID0gMDsKKyAgICAgICAgaWYgKGUgLSBxID49IDIpIHsKKyAgICAgICAgICAgIGludCBraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgICAgICAgICBpZiAoa2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCkgeworICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkodW5pY29kZSkpCisgICAgICAgICAgICAgICAgICAgIGNoID0gYXNjaWlsaWJfdXRmMTZfZGVjb2RlKCZxLCBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpLCAmb3V0cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZV9vcmRlcmluZyk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjaCA9IHVjczFsaWJfdXRmMTZfZGVjb2RlKCZxLCBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV8xQllURV9EQVRBKHVuaWNvZGUpLCAmb3V0cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hdGl2ZV9vcmRlcmluZyk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQpIHsKKyAgICAgICAgICAgICAgICBjaCA9IHVjczJsaWJfdXRmMTZfZGVjb2RlKCZxLCBlLAorICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlXzJCWVRFX0RBVEEodW5pY29kZSksICZvdXRwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICBuYXRpdmVfb3JkZXJpbmcpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQoa2luZCA9PSBQeVVuaWNvZGVfNEJZVEVfS0lORCk7CisgICAgICAgICAgICAgICAgY2ggPSB1Y3M0bGliX3V0ZjE2X2RlY29kZSgmcSwgZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV80QllURV9EQVRBKHVuaWNvZGUpLCAmb3V0cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgbmF0aXZlX29yZGVyaW5nKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAoY2gpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgLyogcmVtYWluaW5nIGJ5dGUgYXQgdGhlIGVuZD8gKHNpemUgc2hvdWxkIGJlIGV2ZW4pICovCisgICAgICAgICAgICBpZiAocSA9PSBlIHx8IGNvbnN1bWVkKQorICAgICAgICAgICAgICAgIGdvdG8gRW5kOworICAgICAgICAgICAgZXJybXNnID0gInRydW5jYXRlZCBkYXRhIjsKKyAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSAoKGNvbnN0IGNoYXIgKilxKSAtIHN0YXJ0czsKKyAgICAgICAgICAgIGVuZGlucG9zID0gKChjb25zdCBjaGFyICopZSkgLSBzdGFydHM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIC8qIFRoZSByZW1haW5pbmcgaW5wdXQgY2hhcnMgYXJlIGlnbm9yZWQgaWYgdGhlIGNhbGxiYWNrCisgICAgICAgICAgICAgICBjaG9vc2VzIHRvIHNraXAgdGhlIGlucHV0ICovCisgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGVycm1zZyA9ICJ1bmV4cGVjdGVkIGVuZCBvZiBkYXRhIjsKKyAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSAoKGNvbnN0IGNoYXIgKilxKSAtIDIgLSBzdGFydHM7CisgICAgICAgICAgICBlbmRpbnBvcyA9ICgoY29uc3QgY2hhciAqKWUpIC0gc3RhcnRzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGVycm1zZyA9ICJpbGxlZ2FsIGVuY29kaW5nIjsKKyAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSAoKGNvbnN0IGNoYXIgKilxKSAtIDIgLSBzdGFydHM7CisgICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MgKyAyOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgIGVycm1zZyA9ICJpbGxlZ2FsIFVURi0xNiBzdXJyb2dhdGUiOworICAgICAgICAgICAgc3RhcnRpbnBvcyA9ICgoY29uc3QgY2hhciAqKXEpIC0gNCAtIHN0YXJ0czsKKyAgICAgICAgICAgIGVuZGlucG9zID0gc3RhcnRpbnBvcyArIDI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnVuaWNvZGUsICZvdXRwb3MsIGNoKSA8IDApCisgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICAvKiBVVEYtMTYgY29kZSBwYWlyOiAqLwotICAgICAgICBpZiAocSA+IGUpIHsKLSAgICAgICAgICAgIGVycm1zZyA9ICJ1bmV4cGVjdGVkIGVuZCBvZiBkYXRhIjsKLSAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSAoKChjb25zdCBjaGFyICopcSkgLSAyKSAtIHN0YXJ0czsKLSAgICAgICAgICAgIGVuZGlucG9zID0gKChjb25zdCBjaGFyICopZSkgKyAxIC0gc3RhcnRzOwotICAgICAgICAgICAgZ290byB1dGYxNkVycm9yOwotICAgICAgICB9Ci0gICAgICAgIGlmICgweEQ4MDAgPD0gY2ggJiYgY2ggPD0gMHhEQkZGKSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFIGNoMiA9IChxW2loaV0gPDwgOCkgfCBxW2lsb107Ci0gICAgICAgICAgICBxICs9IDI7Ci0gICAgICAgICAgICBpZiAoMHhEQzAwIDw9IGNoMiAmJiBjaDIgPD0gMHhERkZGKSB7Ci0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotICAgICAgICAgICAgICAgICpwKysgPSBjaDsKLSAgICAgICAgICAgICAgICAqcCsrID0gY2gyOwotI2Vsc2UKLSAgICAgICAgICAgICAgICAqcCsrID0gKCgoY2ggJiAweDNGRik8PDEwKSB8IChjaDIgJiAweDNGRikpICsgMHgxMDAwMDsKLSNlbmRpZgotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZXJybXNnID0gImlsbGVnYWwgVVRGLTE2IHN1cnJvZ2F0ZSI7Ci0gICAgICAgICAgICAgICAgc3RhcnRpbnBvcyA9ICgoKGNvbnN0IGNoYXIgKilxKS00KS1zdGFydHM7Ci0gICAgICAgICAgICAgICAgZW5kaW5wb3MgPSBzdGFydGlucG9zKzI7Ci0gICAgICAgICAgICAgICAgZ290byB1dGYxNkVycm9yOwotICAgICAgICAgICAgfQotCi0gICAgICAgIH0KLSAgICAgICAgZXJybXNnID0gImlsbGVnYWwgZW5jb2RpbmciOwotICAgICAgICBzdGFydGlucG9zID0gKCgoY29uc3QgY2hhciAqKXEpLTIpLXN0YXJ0czsKLSAgICAgICAgZW5kaW5wb3MgPSBzdGFydGlucG9zKzI7Ci0gICAgICAgIC8qIEZhbGwgdGhyb3VnaCB0byByZXBvcnQgdGhlIGVycm9yICovCi0KLSAgICAgIHV0ZjE2RXJyb3I6Ci0gICAgICAgIG91dHBvcyA9IHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKTsKICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAogICAgICAgICAgICAgICAgIGVycm9ycywKICAgICAgICAgICAgICAgICAmZXJyb3JIYW5kbGVyLApAQCAtMzYwMyw0OSArNTMyMSwyMSBAQAogICAgICAgICAgICAgICAgICZleGMsCiAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKiopJnEsCiAgICAgICAgICAgICAgICAgJnVuaWNvZGUsCi0gICAgICAgICAgICAgICAgJm91dHBvcywKLSAgICAgICAgICAgICAgICAmcCkpCisgICAgICAgICAgICAgICAgJm91dHBvcykpCiAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgfQotICAgIC8qIHJlbWFpbmluZyBieXRlIGF0IHRoZSBlbmQ/IChzaXplIHNob3VsZCBiZSBldmVuKSAqLwotICAgIGlmIChlID09IHEpIHsKLSAgICAgICAgaWYgKCFjb25zdW1lZCkgewotICAgICAgICAgICAgZXJybXNnID0gInRydW5jYXRlZCBkYXRhIjsKLSAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSAoKGNvbnN0IGNoYXIgKilxKSAtIHN0YXJ0czsKLSAgICAgICAgICAgIGVuZGlucG9zID0gKChjb25zdCBjaGFyICopZSkgKyAxIC0gc3RhcnRzOwotICAgICAgICAgICAgb3V0cG9zID0gcCAtIFB5VW5pY29kZV9BU19VTklDT0RFKHVuaWNvZGUpOwotICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAotICAgICAgICAgICAgICAgICAgICBlcnJvcnMsCi0gICAgICAgICAgICAgICAgICAgICZlcnJvckhhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICJ1dGYxNiIsIGVycm1zZywKLSAgICAgICAgICAgICAgICAgICAgJnN0YXJ0cywKLSAgICAgICAgICAgICAgICAgICAgKGNvbnN0IGNoYXIgKiopJmUsCi0gICAgICAgICAgICAgICAgICAgICZzdGFydGlucG9zLAotICAgICAgICAgICAgICAgICAgICAmZW5kaW5wb3MsCi0gICAgICAgICAgICAgICAgICAgICZleGMsCi0gICAgICAgICAgICAgICAgICAgIChjb25zdCBjaGFyICoqKSZxLAotICAgICAgICAgICAgICAgICAgICAmdW5pY29kZSwKLSAgICAgICAgICAgICAgICAgICAgJm91dHBvcywKLSAgICAgICAgICAgICAgICAgICAgJnApKQotICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgIC8qIFRoZSByZW1haW5pbmcgaW5wdXQgY2hhcnMgYXJlIGlnbm9yZWQgaWYgdGhlIGNhbGxiYWNrCi0gICAgICAgICAgICAgICBjaG9vc2VzIHRvIHNraXAgdGhlIGlucHV0ICovCi0gICAgICAgIH0KLSAgICB9CiAKLSAgICBpZiAoYnl0ZW9yZGVyKQotICAgICAgICAqYnl0ZW9yZGVyID0gYm87Ci0KK0VuZDoKICAgICBpZiAoY29uc3VtZWQpCiAgICAgICAgICpjb25zdW1lZCA9IChjb25zdCBjaGFyICopcS1zdGFydHM7CiAKICAgICAvKiBBZGp1c3QgbGVuZ3RoICovCi0gICAgaWYgKF9QeVVuaWNvZGVfUmVzaXplKCZ1bmljb2RlLCBwIC0gdW5pY29kZS0+c3RyKSA8IDApCisgICAgaWYgKHVuaWNvZGVfcmVzaXplKCZ1bmljb2RlLCBvdXRwb3MpIDwgMCkKICAgICAgICAgZ290byBvbkVycm9yOwogCiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIFB5X1hERUNSRUYoZXhjKTsKLSAgICByZXR1cm4gKFB5T2JqZWN0ICopdW5pY29kZTsKKyAgICByZXR1cm4gdW5pY29kZV9yZXN1bHQodW5pY29kZSk7CiAKICAgb25FcnJvcjoKICAgICBQeV9ERUNSRUYodW5pY29kZSk7CkBAIC0zNjU0LDggKzUzNDQsNzcgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAotI3VuZGVmIEZBU1RfQ0hBUl9NQVNLCi0jdW5kZWYgU1dBUFBFRF9GQVNUX0NIQVJfTUFTSworUHlPYmplY3QgKgorX1B5VW5pY29kZV9FbmNvZGVVVEYxNihQeU9iamVjdCAqc3RyLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMsCisgICAgICAgICAgICAgICAgICAgICAgIGludCBieXRlb3JkZXIpCit7CisgICAgZW51bSBQeVVuaWNvZGVfS2luZCBraW5kOworICAgIGNvbnN0IHZvaWQgKmRhdGE7CisgICAgUHlfc3NpemVfdCBsZW47CisgICAgUHlPYmplY3QgKnY7CisgICAgdW5zaWduZWQgc2hvcnQgKm91dDsKKyAgICBQeV9zc2l6ZV90IGJ5dGVzaXplOworICAgIFB5X3NzaXplX3QgcGFpcnM7CisjaWZkZWYgV09SRFNfQklHRU5ESUFOCisgICAgaW50IG5hdGl2ZV9vcmRlcmluZyA9IGJ5dGVvcmRlciA+PSAwOworI2Vsc2UKKyAgICBpbnQgbmF0aXZlX29yZGVyaW5nID0gYnl0ZW9yZGVyIDw9IDA7CisjZW5kaWYKKworICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHN0cikpIHsKKyAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3RyKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHN0cik7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHN0cik7CisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKTsKKworICAgIHBhaXJzID0gMDsKKyAgICBpZiAoa2luZCA9PSBQeVVuaWNvZGVfNEJZVEVfS0lORCkgeworICAgICAgICBjb25zdCBQeV9VQ1M0ICppbiA9IChjb25zdCBQeV9VQ1M0ICopZGF0YTsKKyAgICAgICAgY29uc3QgUHlfVUNTNCAqZW5kID0gaW4gKyBsZW47CisgICAgICAgIHdoaWxlIChpbiA8IGVuZCkKKyAgICAgICAgICAgIGlmICgqaW4rKyA+PSAweDEwMDAwKQorICAgICAgICAgICAgICAgIHBhaXJzKys7CisgICAgfQorICAgIGlmIChsZW4gPiBQWV9TU0laRV9UX01BWCAvIDIgLSBwYWlycyAtIChieXRlb3JkZXIgPT0gMCkpCisgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworICAgIGJ5dGVzaXplID0gKGxlbiArIHBhaXJzICsgKGJ5dGVvcmRlciA9PSAwKSkgKiAyOworICAgIHYgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIGJ5dGVzaXplKTsKKyAgICBpZiAodiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8qIG91dHB1dCBidWZmZXIgaXMgMi1ieXRlcyBhbGlnbmVkICovCisgICAgYXNzZXJ0KCgoUHlfdWludHB0cl90KVB5Qnl0ZXNfQVNfU1RSSU5HKHYpICYgMSkgPT0gMCk7CisgICAgb3V0ID0gKHVuc2lnbmVkIHNob3J0ICopUHlCeXRlc19BU19TVFJJTkcodik7CisgICAgaWYgKGJ5dGVvcmRlciA9PSAwKQorICAgICAgICAqb3V0KysgPSAweEZFRkY7CisgICAgaWYgKGxlbiA9PSAwKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOiB7CisgICAgICAgIHVjczFsaWJfdXRmMTZfZW5jb2RlKG91dCwgKGNvbnN0IFB5X1VDUzEgKilkYXRhLCBsZW4sIG5hdGl2ZV9vcmRlcmluZyk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOiB7CisgICAgICAgIHVjczJsaWJfdXRmMTZfZW5jb2RlKG91dCwgKGNvbnN0IFB5X1VDUzIgKilkYXRhLCBsZW4sIG5hdGl2ZV9vcmRlcmluZyk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFB5VW5pY29kZV80QllURV9LSU5EOiB7CisgICAgICAgIHVjczRsaWJfdXRmMTZfZW5jb2RlKG91dCwgKGNvbnN0IFB5X1VDUzQgKilkYXRhLCBsZW4sIG5hdGl2ZV9vcmRlcmluZyk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICBhc3NlcnQoMCk7CisgICAgfQorCisgIGRvbmU6CisgICAgcmV0dXJuIHY7Cit9CiAKIFB5T2JqZWN0ICoKIFB5VW5pY29kZV9FbmNvZGVVVEYxNihjb25zdCBQeV9VTklDT0RFICpzLApAQCAtMzY2MywxMzYgKzU0MjIsMTQxIEBACiAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLAogICAgICAgICAgICAgICAgICAgICAgIGludCBieXRlb3JkZXIpCiB7Ci0gICAgUHlPYmplY3QgKnY7Ci0gICAgdW5zaWduZWQgY2hhciAqcDsKLSAgICBQeV9zc2l6ZV90IG5zaXplLCBieXRlc2l6ZTsKLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICBQeV9zc2l6ZV90IGksIHBhaXJzOwotI2Vsc2UKLSAgICBjb25zdCBpbnQgcGFpcnMgPSAwOwotI2VuZGlmCi0gICAgLyogT2Zmc2V0cyBmcm9tIHAgZm9yIHN0b3JpbmcgYnl0ZSBwYWlycyBpbiB0aGUgcmlnaHQgb3JkZXIuICovCi0jaWZkZWYgQllURU9SREVSX0lTX0xJVFRMRV9FTkRJQU4KLSAgICBpbnQgaWhpID0gMSwgaWxvID0gMDsKLSNlbHNlCi0gICAgaW50IGloaSA9IDAsIGlsbyA9IDE7Ci0jZW5kaWYKLQotI2RlZmluZSBTVE9SRUNIQVIoQ0gpICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBwW2loaV0gPSAoKENIKSA+PiA4KSAmIDB4ZmY7ICAgICAgICAgICAgXAotICAgICAgICBwW2lsb10gPSAoQ0gpICYgMHhmZjsgICAgICAgICAgICAgICAgICAgXAotICAgICAgICBwICs9IDI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgIH0gd2hpbGUoMCkKLQotI2lmZGVmIFB5X1VOSUNPREVfV0lERQotICAgIGZvciAoaSA9IHBhaXJzID0gMDsgaSA8IHNpemU7IGkrKykKLSAgICAgICAgaWYgKHNbaV0gPj0gMHgxMDAwMCkKLSAgICAgICAgICAgIHBhaXJzKys7Ci0jZW5kaWYKLSAgICAvKiAyICogKHNpemUgKyBwYWlycyArIChieXRlb3JkZXIgPT0gMCkpICovCi0gICAgaWYgKHNpemUgPiBQWV9TU0laRV9UX01BWCB8fAotICAgICAgICBzaXplID4gUFlfU1NJWkVfVF9NQVggLSBwYWlycyAtIChieXRlb3JkZXIgPT0gMCkpCi0gICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwotICAgIG5zaXplID0gc2l6ZSArIHBhaXJzICsgKGJ5dGVvcmRlciA9PSAwKTsKLSAgICBieXRlc2l6ZSA9IG5zaXplICogMjsKLSAgICBpZiAoYnl0ZXNpemUgLyAyICE9IG5zaXplKQotICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKLSAgICB2ID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBieXRlc2l6ZSk7Ci0gICAgaWYgKHYgPT0gTlVMTCkKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICp0bXAgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocywgc2l6ZSk7CisgICAgaWYgKHRtcCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIHAgPSAodW5zaWduZWQgY2hhciAqKVB5Qnl0ZXNfQVNfU1RSSU5HKHYpOwotICAgIGlmIChieXRlb3JkZXIgPT0gMCkKLSAgICAgICAgU1RPUkVDSEFSKDB4RkVGRik7Ci0gICAgaWYgKHNpemUgPT0gMCkKLSAgICAgICAgZ290byBkb25lOwotCi0gICAgaWYgKGJ5dGVvcmRlciA9PSAtMSkgewotICAgICAgICAvKiBmb3JjZSBMRSAqLwotICAgICAgICBpaGkgPSAxOwotICAgICAgICBpbG8gPSAwOwotICAgIH0KLSAgICBlbHNlIGlmIChieXRlb3JkZXIgPT0gMSkgewotICAgICAgICAvKiBmb3JjZSBCRSAqLwotICAgICAgICBpaGkgPSAwOwotICAgICAgICBpbG8gPSAxOwotICAgIH0KLQotICAgIHdoaWxlIChzaXplLS0gPiAwKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgY2ggPSAqcysrOwotICAgICAgICBQeV9VTklDT0RFIGNoMiA9IDA7Ci0jaWZkZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgIGlmIChjaCA+PSAweDEwMDAwKSB7Ci0gICAgICAgICAgICBjaDIgPSAweERDMDAgfCAoKGNoLTB4MTAwMDApICYgMHgzRkYpOwotICAgICAgICAgICAgY2ggID0gMHhEODAwIHwgKChjaC0weDEwMDAwKSA+PiAxMCk7Ci0gICAgICAgIH0KLSNlbmRpZgotICAgICAgICBTVE9SRUNIQVIoY2gpOwotICAgICAgICBpZiAoY2gyKQotICAgICAgICAgICAgU1RPUkVDSEFSKGNoMik7Ci0gICAgfQotCi0gIGRvbmU6Ci0gICAgcmV0dXJuIHY7Ci0jdW5kZWYgU1RPUkVDSEFSCisgICAgcmVzdWx0ID0gX1B5VW5pY29kZV9FbmNvZGVVVEYxNih0bXAsIGVycm9ycywgYnl0ZW9yZGVyKTsKKyAgICBQeV9ERUNSRUYodG1wKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0FzVVRGMTZTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCitQeU9iamVjdCAqCitQeVVuaWNvZGVfQXNVVEYxNlN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKIHsKLSAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh1bmljb2RlKSkgewotICAgICAgICBQeUVycl9CYWRBcmd1bWVudCgpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVVVEYxNihQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICByZXR1cm4gX1B5VW5pY29kZV9FbmNvZGVVVEYxNih1bmljb2RlLCBOVUxMLCAwKTsKIH0KIAogLyogLS0tIFVuaWNvZGUgRXNjYXBlIENvZGVjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCiAKKy8qIEhlbHBlciBmdW5jdGlvbiBmb3IgUHlVbmljb2RlX0RlY29kZVVuaWNvZGVFc2NhcGUsIGRldGVybWluZXMKKyAgIGlmIGFsbCB0aGUgZXNjYXBlcyBpbiB0aGUgc3RyaW5nIG1ha2UgaXQgc3RpbGwgYSB2YWxpZCBBU0NJSSBzdHJpbmcuCisgICBSZXR1cm5zIC0xIGlmIGFueSBlc2NhcGVzIHdlcmUgZm91bmQgd2hpY2ggY2F1c2UgdGhlIHN0cmluZyB0bworICAgcG9wIG91dCBvZiBBU0NJSSByYW5nZS4gIE90aGVyd2lzZSByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlCisgICByZXF1aXJlZCBidWZmZXIgdG8gaG9sZCB0aGUgc3RyaW5nLgorICAgKi8KK3N0YXRpYyBQeV9zc2l6ZV90CitsZW5ndGhfb2ZfZXNjYXBlZF9hc2NpaV9zdHJpbmcoY29uc3QgY2hhciAqcywgUHlfc3NpemVfdCBzaXplKQoreworICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnAgPSAoY29uc3QgdW5zaWduZWQgY2hhciAqKXM7CisgICAgY29uc3QgdW5zaWduZWQgY2hhciAqZW5kID0gcCArIHNpemU7CisgICAgUHlfc3NpemVfdCBsZW5ndGggPSAwOworCisgICAgaWYgKHNpemUgPCAwKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBmb3IgKDsgcCA8IGVuZDsgKytwKSB7CisgICAgICAgIGlmICgqcCA+IDEyNykgeworICAgICAgICAgICAgLyogTm9uLUFTQ0lJICovCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoKnAgIT0gJ1xcJykgeworICAgICAgICAgICAgLyogTm9ybWFsIGNoYXJhY3RlciAqLworICAgICAgICAgICAgKytsZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvKiBCYWNrc2xhc2gtZXNjYXBlLCBjaGVjayBuZXh0IGNoYXIgKi8KKyAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgIC8qIEVzY2FwZSBzZXF1ZW5jZSByZWFjaGVzIHRpbGwgZW5kIG9mIHN0cmluZyBvcgorICAgICAgICAgICAgICAgbm9uLUFTQ0lJIGZvbGxvdy11cC4gKi8KKyAgICAgICAgICAgIGlmIChwID49IGVuZCB8fCAqcCA+IDEyNykKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBzd2l0Y2ggKCpwKSB7CisgICAgICAgICAgICBjYXNlICdcbic6CisgICAgICAgICAgICAgICAgLyogYmFja3NsYXNoICsgXG4gcmVzdWx0IGluIHplcm8gY2hhcmFjdGVycyAqLworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSAnXFwnOiBjYXNlICdcJyc6IGNhc2UgJ1wiJzoKKyAgICAgICAgICAgIGNhc2UgJ2InOiBjYXNlICdmJzogY2FzZSAndCc6CisgICAgICAgICAgICBjYXNlICduJzogY2FzZSAncic6IGNhc2UgJ3YnOiBjYXNlICdhJzoKKyAgICAgICAgICAgICAgICArK2xlbmd0aDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOgorICAgICAgICAgICAgY2FzZSAnNCc6IGNhc2UgJzUnOiBjYXNlICc2JzogY2FzZSAnNyc6CisgICAgICAgICAgICBjYXNlICd4JzogY2FzZSAndSc6IGNhc2UgJ1UnOiBjYXNlICdOJzoKKyAgICAgICAgICAgICAgICAvKiB0aGVzZSBkbyBub3QgZ3VhcmFudGVlIEFTQ0lJIGNoYXJhY3RlcnMgKi8KKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIC8qIGNvdW50IHRoZSBiYWNrc2xhc2ggKyB0aGUgb3RoZXIgY2hhcmFjdGVyICovCisgICAgICAgICAgICAgICAgbGVuZ3RoICs9IDI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGxlbmd0aDsKK30KKwogc3RhdGljIF9QeVVuaWNvZGVfTmFtZV9DQVBJICp1Y25oYXNoX0NBUEkgPSBOVUxMOwogCi1QeU9iamVjdCAqUHlVbmljb2RlX0RlY29kZVVuaWNvZGVFc2NhcGUoY29uc3QgY2hhciAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQorUHlPYmplY3QgKgorUHlVbmljb2RlX0RlY29kZVVuaWNvZGVFc2NhcGUoY29uc3QgY2hhciAqcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKICAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOwogICAgIFB5X3NzaXplX3Qgc3RhcnRpbnBvczsKICAgICBQeV9zc2l6ZV90IGVuZGlucG9zOwotICAgIFB5X3NzaXplX3Qgb3V0cG9zOwotICAgIGludCBpOwotICAgIFB5VW5pY29kZU9iamVjdCAqdjsKLSAgICBQeV9VTklDT0RFICpwOworICAgIGludCBqOworICAgIFB5T2JqZWN0ICp2OwogICAgIGNvbnN0IGNoYXIgKmVuZDsKICAgICBjaGFyKiBtZXNzYWdlOwogICAgIFB5X1VDUzQgY2hyID0gMHhmZmZmZmZmZjsgLyogaW4gY2FzZSAnZ2V0Y29kZScgbWVzc2VzIHVwICovCiAgICAgUHlPYmplY3QgKmVycm9ySGFuZGxlciA9IE5VTEw7CiAgICAgUHlPYmplY3QgKmV4YyA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBsZW47CisgICAgUHlfc3NpemVfdCBpOwogCi0gICAgLyogRXNjYXBlZCBzdHJpbmdzIHdpbGwgYWx3YXlzIGJlIGxvbmdlciB0aGFuIHRoZSByZXN1bHRpbmcKLSAgICAgICBVbmljb2RlIHN0cmluZywgc28gd2Ugc3RhcnQgd2l0aCBzaXplIGhlcmUgYW5kIHRoZW4gcmVkdWNlIHRoZQotICAgICAgIGxlbmd0aCBhZnRlciBjb252ZXJzaW9uIHRvIHRoZSB0cnVlIHZhbHVlLgotICAgICAgIChidXQgaWYgdGhlIGVycm9yIGNhbGxiYWNrIHJldHVybnMgYSBsb25nIHJlcGxhY2VtZW50IHN0cmluZwotICAgICAgIHdlJ2xsIGhhdmUgdG8gYWxsb2NhdGUgbW9yZSBzcGFjZSkgKi8KLSAgICB2ID0gX1B5VW5pY29kZV9OZXcoc2l6ZSk7Ci0gICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgZ290byBvbkVycm9yOworICAgIGxlbiA9IGxlbmd0aF9vZl9lc2NhcGVkX2FzY2lpX3N0cmluZyhzLCBzaXplKTsKKworICAgIC8qIEFmdGVyIGxlbmd0aF9vZl9lc2NhcGVkX2FzY2lpX3N0cmluZygpIHRoZXJlIGFyZSB0d28gYWx0ZXJuYXRpdmVzLAorICAgICAgIGVpdGhlciB0aGUgc3RyaW5nIGlzIHB1cmUgQVNDSUkgd2l0aCBuYW1lZCBlc2NhcGVzIGxpa2UgXG4sIGV0Yy4KKyAgICAgICBhbmQgd2UgZGV0ZXJtaW5lZCBpdCdzIGV4YWN0IHNpemUgKGNvbW1vbiBjYXNlKQorICAgICAgIG9yIGl0IGNvbnRhaW5zIFx4LCBcdSwgLi4uIGVzY2FwZSBzZXF1ZW5jZXMuICB0aGVuIHdlIGNyZWF0ZSBhCisgICAgICAgbGVnYWN5IHdjaGFyIHN0cmluZyBhbmQgcmVzaXplIGl0IGF0IHRoZSBlbmQgb2YgdGhpcyBmdW5jdGlvbi4gKi8KKyAgICBpZiAobGVuID49IDApIHsKKyAgICAgICAgdiA9IFB5VW5pY29kZV9OZXcobGVuLCAxMjcpOworICAgICAgICBpZiAoIXYpCisgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgIGFzc2VydChQeVVuaWNvZGVfS0lORCh2KSA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvKiBFc2NhcGVkIHN0cmluZ3Mgd2lsbCBhbHdheXMgYmUgbG9uZ2VyIHRoYW4gdGhlIHJlc3VsdGluZworICAgICAgICAgICBVbmljb2RlIHN0cmluZywgc28gd2Ugc3RhcnQgd2l0aCBzaXplIGhlcmUgYW5kIHRoZW4gcmVkdWNlIHRoZQorICAgICAgICAgICBsZW5ndGggYWZ0ZXIgY29udmVyc2lvbiB0byB0aGUgdHJ1ZSB2YWx1ZS4KKyAgICAgICAgICAgKGJ1dCBpZiB0aGUgZXJyb3IgY2FsbGJhY2sgcmV0dXJucyBhIGxvbmcgcmVwbGFjZW1lbnQgc3RyaW5nCisgICAgICAgICAgIHdlJ2xsIGhhdmUgdG8gYWxsb2NhdGUgbW9yZSBzcGFjZSkgKi8KKyAgICAgICAgdiA9IFB5VW5pY29kZV9OZXcoc2l6ZSwgMTI3KTsKKyAgICAgICAgaWYgKCF2KQorICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICBsZW4gPSBzaXplOworICAgIH0KKwogICAgIGlmIChzaXplID09IDApCi0gICAgICAgIHJldHVybiAoUHlPYmplY3QgKil2OwotCi0gICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHYpOworICAgICAgICByZXR1cm4gdjsKKyAgICBpID0gMDsKICAgICBlbmQgPSBzICsgc2l6ZTsKIAogICAgIHdoaWxlIChzIDwgZW5kKSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzsKLSAgICAgICAgUHlfVU5JQ09ERSB4OworICAgICAgICBQeV9VQ1M0IHg7CiAgICAgICAgIGludCBkaWdpdHM7CiAKKyAgICAgICAgLyogVGhlIG9ubHkgY2FzZSBpbiB3aGljaCBpID09IGFzY2lpX2xlbmd0aCBpcyBhIGJhY2tzbGFzaAorICAgICAgICAgICBmb2xsb3dlZCBieSBhIG5ld2xpbmUuICovCisgICAgICAgIGFzc2VydChpIDw9IGxlbik7CisKICAgICAgICAgLyogTm9uLWVzY2FwZSBjaGFyYWN0ZXJzIGFyZSBpbnRlcnByZXRlZCBhcyBVbmljb2RlIG9yZGluYWxzICovCiAgICAgICAgIGlmICgqcyAhPSAnXFwnKSB7Ci0gICAgICAgICAgICAqcCsrID0gKHVuc2lnbmVkIGNoYXIpICpzKys7CisgICAgICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ2LCAmaSwgKHVuc2lnbmVkIGNoYXIpICpzKyspIDwgMCkKKyAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC0zODAyLDIwICs1NTY2LDM0IEBACiAgICAgICAgIGMgPSAqcysrOwogICAgICAgICBpZiAocyA+IGVuZCkKICAgICAgICAgICAgIGMgPSAnXDAnOyAvKiBJbnZhbGlkIGFmdGVyIFwgKi8KKworICAgICAgICAvKiBUaGUgb25seSBjYXNlIGluIHdoaWNoIGkgPT0gYXNjaWlfbGVuZ3RoIGlzIGEgYmFja3NsYXNoCisgICAgICAgICAgIGZvbGxvd2VkIGJ5IGEgbmV3bGluZS4gKi8KKyAgICAgICAgYXNzZXJ0KGkgPCBsZW4gfHwgKGkgPT0gbGVuICYmIGMgPT0gJ1xuJykpOworCiAgICAgICAgIHN3aXRjaCAoYykgewogCiAgICAgICAgICAgICAvKiBceCBlc2NhcGVzICovCisjZGVmaW5lIFdSSVRFQ0hBUihjaCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnYsICZpLCBjaCkgPCAwKSAgICBcCisgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgICAgICAgIH13aGlsZSgwKQorCiAgICAgICAgIGNhc2UgJ1xuJzogYnJlYWs7Ci0gICAgICAgIGNhc2UgJ1xcJzogKnArKyA9ICdcXCc7IGJyZWFrOwotICAgICAgICBjYXNlICdcJyc6ICpwKysgPSAnXCcnOyBicmVhazsKLSAgICAgICAgY2FzZSAnXCInOiAqcCsrID0gJ1wiJzsgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ2InOiAqcCsrID0gJ1xiJzsgYnJlYWs7Ci0gICAgICAgIGNhc2UgJ2YnOiAqcCsrID0gJ1wwMTQnOyBicmVhazsgLyogRkYgKi8KLSAgICAgICAgY2FzZSAndCc6ICpwKysgPSAnXHQnOyBicmVhazsKLSAgICAgICAgY2FzZSAnbic6ICpwKysgPSAnXG4nOyBicmVhazsKLSAgICAgICAgY2FzZSAncic6ICpwKysgPSAnXHInOyBicmVhazsKLSAgICAgICAgY2FzZSAndic6ICpwKysgPSAnXDAxMyc7IGJyZWFrOyAvKiBWVCAqLwotICAgICAgICBjYXNlICdhJzogKnArKyA9ICdcMDA3JzsgYnJlYWs7IC8qIEJFTCwgbm90IGNsYXNzaWMgQyAqLworICAgICAgICBjYXNlICdcXCc6IFdSSVRFQ0hBUignXFwnKTsgYnJlYWs7CisgICAgICAgIGNhc2UgJ1wnJzogV1JJVEVDSEFSKCdcJycpOyBicmVhazsKKyAgICAgICAgY2FzZSAnXCInOiBXUklURUNIQVIoJ1wiJyk7IGJyZWFrOworICAgICAgICBjYXNlICdiJzogV1JJVEVDSEFSKCdcYicpOyBicmVhazsKKyAgICAgICAgLyogRkYgKi8KKyAgICAgICAgY2FzZSAnZic6IFdSSVRFQ0hBUignXDAxNCcpOyBicmVhazsKKyAgICAgICAgY2FzZSAndCc6IFdSSVRFQ0hBUignXHQnKTsgYnJlYWs7CisgICAgICAgIGNhc2UgJ24nOiBXUklURUNIQVIoJ1xuJyk7IGJyZWFrOworICAgICAgICBjYXNlICdyJzogV1JJVEVDSEFSKCdccicpOyBicmVhazsKKyAgICAgICAgLyogVlQgKi8KKyAgICAgICAgY2FzZSAndic6IFdSSVRFQ0hBUignXDAxMycpOyBicmVhazsKKyAgICAgICAgLyogQkVMLCBub3QgY2xhc3NpYyBDICovCisgICAgICAgIGNhc2UgJ2EnOiBXUklURUNIQVIoJ1wwMDcnKTsgYnJlYWs7CiAKICAgICAgICAgICAgIC8qIFxPT08gKG9jdGFsKSBlc2NhcGVzICovCiAgICAgICAgIGNhc2UgJzAnOiBjYXNlICcxJzogY2FzZSAnMic6IGNhc2UgJzMnOgpAQCAtMzgyNiw3ICs1NjA0LDcgQEAKICAgICAgICAgICAgICAgICBpZiAocyA8IGVuZCAmJiAnMCcgPD0gKnMgJiYgKnMgPD0gJzcnKQogICAgICAgICAgICAgICAgICAgICB4ID0gKHg8PDMpICsgKnMrKyAtICcwJzsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICpwKysgPSB4OworICAgICAgICAgICAgV1JJVEVDSEFSKHgpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIC8qIGhleCBlc2NhcGVzICovCkBAIC0zODQ4LDI3ICs1NjI2LDI3IEBACiAgICAgICAgICAgICBtZXNzYWdlID0gInRydW5jYXRlZCBcXFVYWFhYWFhYWCBlc2NhcGUiOwogICAgICAgICBoZXhlc2NhcGU6CiAgICAgICAgICAgICBjaHIgPSAwOwotICAgICAgICAgICAgb3V0cG9zID0gcC1QeVVuaWNvZGVfQVNfVU5JQ09ERSh2KTsKICAgICAgICAgICAgIGlmIChzK2RpZ2l0cz5lbmQpIHsKICAgICAgICAgICAgICAgICBlbmRpbnBvcyA9IHNpemU7CiAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAogICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgInVuaWNvZGVlc2NhcGUiLCAiZW5kIG9mIHN0cmluZyBpbiBlc2NhcGUgc2VxdWVuY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0cywgJmVuZCwgJnN0YXJ0aW5wb3MsICZlbmRpbnBvcywgJmV4YywgJnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcywgJnApKQorICAgICAgICAgICAgICAgICAgICAgICAgJnYsICZpKSkKICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgIGdvdG8gbmV4dEJ5dGU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZGlnaXRzOyArK2kpIHsKLSAgICAgICAgICAgICAgICBjID0gKHVuc2lnbmVkIGNoYXIpIHNbaV07CisgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgZGlnaXRzOyArK2opIHsKKyAgICAgICAgICAgICAgICBjID0gKHVuc2lnbmVkIGNoYXIpIHNbal07CiAgICAgICAgICAgICAgICAgaWYgKCFQeV9JU1hESUdJVChjKSkgewotICAgICAgICAgICAgICAgICAgICBlbmRpbnBvcyA9IChzK2krMSktc3RhcnRzOworICAgICAgICAgICAgICAgICAgICBlbmRpbnBvcyA9IChzK2orMSktc3RhcnRzOwogICAgICAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmljb2RlZXNjYXBlIiwgbWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhcnRzLCAmZW5kLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcywgJnApKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2LCAmaSkpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgICAgICAgICAgICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHYpOwogICAgICAgICAgICAgICAgICAgICBnb3RvIG5leHRCeXRlOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBjaHIgPSAoY2hyPDw0KSAmIH4weEY7CkBAIC0zODc5LDM0ICs1NjU3LDIyIEBACiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBjaHIgKz0gMTAgKyBjIC0gJ0EnOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgcyArPSBpOworICAgICAgICAgICAgcyArPSBqOwogICAgICAgICAgICAgaWYgKGNociA9PSAweGZmZmZmZmZmICYmIFB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgICAgICAgICAgLyogX2RlY29kaW5nX2Vycm9yIHdpbGwgaGF2ZSBhbHJlYWR5IHdyaXR0ZW4gaW50byB0aGUKICAgICAgICAgICAgICAgICAgICB0YXJnZXQgYnVmZmVyLiAqLwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBzdG9yZToKICAgICAgICAgICAgIC8qIHdoZW4gd2UgZ2V0IGhlcmUsIGNociBpcyBhIDMyLWJpdCB1bmljb2RlIGNoYXJhY3RlciAqLwotICAgICAgICAgICAgaWYgKGNociA8PSAweGZmZmYpCi0gICAgICAgICAgICAgICAgLyogVUNTLTIgY2hhcmFjdGVyICovCi0gICAgICAgICAgICAgICAgKnArKyA9IChQeV9VTklDT0RFKSBjaHI7Ci0gICAgICAgICAgICBlbHNlIGlmIChjaHIgPD0gMHgxMGZmZmYpIHsKLSAgICAgICAgICAgICAgICAvKiBVQ1MtNCBjaGFyYWN0ZXIuIEVpdGhlciBzdG9yZSBkaXJlY3RseSwgb3IgYXMKLSAgICAgICAgICAgICAgICAgICBzdXJyb2dhdGUgcGFpci4gKi8KLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgICAgICAgICAqcCsrID0gY2hyOwotI2Vsc2UKLSAgICAgICAgICAgICAgICBjaHIgLT0gMHgxMDAwMEw7Ci0gICAgICAgICAgICAgICAgKnArKyA9IDB4RDgwMCArIChQeV9VTklDT0RFKSAoY2hyID4+IDEwKTsKLSAgICAgICAgICAgICAgICAqcCsrID0gMHhEQzAwICsgKFB5X1VOSUNPREUpIChjaHIgJiAweDAzRkYpOwotI2VuZGlmCisgICAgICAgICAgICBpZiAoY2hyIDw9IE1BWF9VTklDT0RFKSB7CisgICAgICAgICAgICAgICAgV1JJVEVDSEFSKGNocik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGVuZGlucG9zID0gcy1zdGFydHM7Ci0gICAgICAgICAgICAgICAgb3V0cG9zID0gcC1QeVVuaWNvZGVfQVNfVU5JQ09ERSh2KTsKICAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAidW5pY29kZWVzY2FwZSIsICJpbGxlZ2FsIFVuaWNvZGUgY2hhcmFjdGVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlbmQsICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZzLAotICAgICAgICAgICAgICAgICAgICAgICAgJnYsICZvdXRwb3MsICZwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICZ2LCAmaSkpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzkxNiw3ICs1NjgyLDggQEAKICAgICAgICAgICAgIG1lc3NhZ2UgPSAibWFsZm9ybWVkIFxcTiBjaGFyYWN0ZXIgZXNjYXBlIjsKICAgICAgICAgICAgIGlmICh1Y25oYXNoX0NBUEkgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgIC8qIGxvYWQgdGhlIHVuaWNvZGUgZGF0YSBtb2R1bGUgKi8KLSAgICAgICAgICAgICAgICB1Y25oYXNoX0NBUEkgPSAoX1B5VW5pY29kZV9OYW1lX0NBUEkgKilQeUNhcHN1bGVfSW1wb3J0KFB5VW5pY29kZURhdGFfQ0FQU1VMRV9OQU1FLCAxKTsKKyAgICAgICAgICAgICAgICB1Y25oYXNoX0NBUEkgPSAoX1B5VW5pY29kZV9OYW1lX0NBUEkgKilQeUNhcHN1bGVfSW1wb3J0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlRGF0YV9DQVBTVUxFX05BTUUsIDEpOwogICAgICAgICAgICAgICAgIGlmICh1Y25oYXNoX0NBUEkgPT0gTlVMTCkKICAgICAgICAgICAgICAgICAgICAgZ290byB1Y25oYXNoRXJyb3I7CiAgICAgICAgICAgICB9CkBAIC0zOTI5LDE3ICs1Njk2LDE3IEBACiAgICAgICAgICAgICAgICAgICAgIC8qIGZvdW5kIGEgbmFtZS4gIGxvb2sgaXQgdXAgaW4gdGhlIHVuaWNvZGUgZGF0YWJhc2UgKi8KICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJ1bmtub3duIFVuaWNvZGUgY2hhcmFjdGVyIG5hbWUiOwogICAgICAgICAgICAgICAgICAgICBzKys7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh1Y25oYXNoX0NBUEktPmdldGNvZGUoTlVMTCwgc3RhcnQsIChpbnQpKHMtc3RhcnQtMSksICZjaHIpKQorICAgICAgICAgICAgICAgICAgICBpZiAodWNuaGFzaF9DQVBJLT5nZXRjb2RlKE5VTEwsIHN0YXJ0LCAoaW50KShzLXN0YXJ0LTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjaHIsIDApKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBzdG9yZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbmRpbnBvcyA9IHMtc3RhcnRzOwotICAgICAgICAgICAgb3V0cG9zID0gcC1QeVVuaWNvZGVfQVNfVU5JQ09ERSh2KTsKICAgICAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcigKICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAidW5pY29kZWVzY2FwZSIsIG1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlbmQsICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZzLAotICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcywgJnApKQorICAgICAgICAgICAgICAgICAgICAmdiwgJmkpKQogICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgIGJyZWFrOwogCkBAIC0zOTQ4LDI4ICs1NzE1LDI5IEBACiAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJcXCBhdCBlbmQgb2Ygc3RyaW5nIjsKICAgICAgICAgICAgICAgICBzLS07CiAgICAgICAgICAgICAgICAgZW5kaW5wb3MgPSBzLXN0YXJ0czsKLSAgICAgICAgICAgICAgICBvdXRwb3MgPSBwLVB5VW5pY29kZV9BU19VTklDT0RFKHYpOwogICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcigKICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycywgJmVycm9ySGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmljb2RlZXNjYXBlIiwgbWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlbmQsICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZzLAotICAgICAgICAgICAgICAgICAgICAgICAgJnYsICZvdXRwb3MsICZwKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICZ2LCAmaSkpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICpwKysgPSAnXFwnOwotICAgICAgICAgICAgICAgICpwKysgPSAodW5zaWduZWQgY2hhcilzWy0xXTsKKyAgICAgICAgICAgICAgICBXUklURUNIQVIoJ1xcJyk7CisgICAgICAgICAgICAgICAgV1JJVEVDSEFSKHNbLTFdKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICBuZXh0Qnl0ZToKICAgICAgICAgOwogICAgIH0KLSAgICBpZiAoX1B5VW5pY29kZV9SZXNpemUoJnYsIHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSkgPCAwKQorI3VuZGVmIFdSSVRFQ0hBUgorCisgICAgaWYgKHVuaWNvZGVfcmVzaXplKCZ2LCBpKSA8IDApCiAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CiAgICAgUHlfWERFQ1JFRihleGMpOwotICAgIHJldHVybiAoUHlPYmplY3QgKil2OworICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdCh2KTsKIAogICB1Y25oYXNoRXJyb3I6CiAgICAgUHlFcnJfU2V0U3RyaW5nKApAQCAtMzk5NSwzOSArNTc2MywxNiBAQAogCiAqLwogCi1QeV9MT0NBTF9JTkxJTkUoY29uc3QgUHlfVU5JQ09ERSAqKSBmaW5kY2hhcihjb25zdCBQeV9VTklDT0RFICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfVU5JQ09ERSBjaCkKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9Bc1VuaWNvZGVFc2NhcGVTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCiB7Ci0gICAgLyogbGlrZSB3Y3NjaHIsIGJ1dCBkb2Vzbid0IHN0b3AgYXQgTlVMTCBjaGFyYWN0ZXJzICovCi0KLSAgICB3aGlsZSAoc2l6ZS0tID4gMCkgewotICAgICAgICBpZiAoKnMgPT0gY2gpCi0gICAgICAgICAgICByZXR1cm4gczsKLSAgICAgICAgcysrOwotICAgIH0KLQotICAgIHJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgY29uc3QgY2hhciAqaGV4ZGlnaXRzID0gIjAxMjM0NTY3ODlhYmNkZWYiOwotCi1QeU9iamVjdCAqUHlVbmljb2RlX0VuY29kZVVuaWNvZGVFc2NhcGUoY29uc3QgUHlfVU5JQ09ERSAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUpCi17CisgICAgUHlfc3NpemVfdCBpLCBsZW47CiAgICAgUHlPYmplY3QgKnJlcHI7CiAgICAgY2hhciAqcDsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOworICAgIFB5X3NzaXplX3QgZXhwYW5kc2l6ZSA9IDA7CiAKLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICBjb25zdCBQeV9zc2l6ZV90IGV4cGFuZHNpemUgPSAxMDsKLSNlbHNlCi0gICAgY29uc3QgUHlfc3NpemVfdCBleHBhbmRzaXplID0gNjsKLSNlbmRpZgotCi0gICAgLyogWFhYKG5ub3J3aXR6KTogcmF0aGVyIHRoYW4gb3Zlci1hbGxvY2F0aW5nLCBpdCB3b3VsZCBiZQotICAgICAgIGJldHRlciB0byBjaG9vc2UgYSBkaWZmZXJlbnQgc2NoZW1lLiAgUGVyaGFwcyBzY2FuIHRoZQotICAgICAgIGZpcnN0IE4tY2hhcnMgb2YgdGhlIHN0cmluZyBhbmQgYWxsb2NhdGUgYmFzZWQgb24gdGhhdCBzaXplLgotICAgICovCiAgICAgLyogSW5pdGlhbCBhbGxvY2F0aW9uIGlzIGJhc2VkIG9uIHRoZSBsb25nZXN0LXBvc3NpYmxlIHVuaWNocgogICAgICAgIGVzY2FwZS4KIApAQCAtNDA0MiwyMyArNTc4NywzOCBAQAogICAgICAgIGVzY2FwZS4KICAgICAqLwogCi0gICAgaWYgKHNpemUgPT0gMCkKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh1bmljb2RlKSkgeworICAgICAgICBQeUVycl9CYWRBcmd1bWVudCgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSk7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQSh1bmljb2RlKTsKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOiBleHBhbmRzaXplID0gNDsgYnJlYWs7CisgICAgY2FzZSBQeVVuaWNvZGVfMkJZVEVfS0lORDogZXhwYW5kc2l6ZSA9IDY7IGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6IGV4cGFuZHNpemUgPSAxMDsgYnJlYWs7CisgICAgfQorCisgICAgaWYgKGxlbiA9PSAwKQogICAgICAgICByZXR1cm4gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCAwKTsKIAotICAgIGlmIChzaXplID4gKFBZX1NTSVpFX1RfTUFYIC0gMiAtIDEpIC8gZXhwYW5kc2l6ZSkKKyAgICBpZiAobGVuID4gKFBZX1NTSVpFX1RfTUFYIC0gMiAtIDEpIC8gZXhwYW5kc2l6ZSkKICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CiAKICAgICByZXByID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIGV4cGFuZHNpemUqc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgZXhwYW5kc2l6ZSpsZW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIDEpOwogICAgIGlmIChyZXByID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgcCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlcHIpOwogCi0gICAgd2hpbGUgKHNpemUtLSA+IDApIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjaCA9ICpzKys7CisgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKIAogICAgICAgICAvKiBFc2NhcGUgYmFja3NsYXNoZXMgKi8KICAgICAgICAgaWYgKGNoID09ICdcXCcpIHsKQEAgLTQwNjcsNTcgKzU4MjcsMzAgQEAKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKICAgICAgICAgLyogTWFwIDIxLWJpdCBjaGFyYWN0ZXJzIHRvICdcVTAweHh4eHh4JyAqLwogICAgICAgICBlbHNlIGlmIChjaCA+PSAweDEwMDAwKSB7CisgICAgICAgICAgICBhc3NlcnQoY2ggPD0gTUFYX1VOSUNPREUpOwogICAgICAgICAgICAgKnArKyA9ICdcXCc7CiAgICAgICAgICAgICAqcCsrID0gJ1UnOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gMjgpICYgMHgwMDAwMDAwRl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiAyNCkgJiAweDAwMDAwMDBGXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDIwKSAmIDB4MDAwMDAwMEZdOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gMTYpICYgMHgwMDAwMDAwRl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiAxMikgJiAweDAwMDAwMDBGXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDgpICYgMHgwMDAwMDAwRl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiA0KSAmIDB4MDAwMDAwMEZdOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1tjaCAmIDB4MDAwMDAwMEZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gMjgpICYgMHgwMDAwMDAwRl07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjaCA+PiAyNCkgJiAweDAwMDAwMDBGXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDIwKSAmIDB4MDAwMDAwMEZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gMTYpICYgMHgwMDAwMDAwRl07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjaCA+PiAxMikgJiAweDAwMDAwMDBGXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDgpICYgMHgwMDAwMDAwRl07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjaCA+PiA0KSAmIDB4MDAwMDAwMEZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1tjaCAmIDB4MDAwMDAwMEZdOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSNlbHNlCi0gICAgICAgIC8qIE1hcCBVVEYtMTYgc3Vycm9nYXRlIHBhaXJzIHRvICdcVTAweHh4eHh4JyAqLwotICAgICAgICBlbHNlIGlmIChjaCA+PSAweEQ4MDAgJiYgY2ggPCAweERDMDApIHsKLSAgICAgICAgICAgIFB5X1VOSUNPREUgY2gyOwotICAgICAgICAgICAgUHlfVUNTNCB1Y3M7Ci0KLSAgICAgICAgICAgIGNoMiA9ICpzKys7Ci0gICAgICAgICAgICBzaXplLS07Ci0gICAgICAgICAgICBpZiAoY2gyID49IDB4REMwMCAmJiBjaDIgPD0gMHhERkZGKSB7Ci0gICAgICAgICAgICAgICAgdWNzID0gKCgoY2ggJiAweDAzRkYpIDw8IDEwKSB8IChjaDIgJiAweDAzRkYpKSArIDB4MDAwMTAwMDA7Ci0gICAgICAgICAgICAgICAgKnArKyA9ICdcXCc7Ci0gICAgICAgICAgICAgICAgKnArKyA9ICdVJzsKLSAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gMjgpICYgMHgwMDAwMDAwRl07Ci0gICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDI0KSAmIDB4MDAwMDAwMEZdOwotICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiAyMCkgJiAweDAwMDAwMDBGXTsKLSAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gMTYpICYgMHgwMDAwMDAwRl07Ci0gICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDEyKSAmIDB4MDAwMDAwMEZdOwotICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiA4KSAmIDB4MDAwMDAwMEZdOwotICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiA0KSAmIDB4MDAwMDAwMEZdOwotICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbdWNzICYgMHgwMDAwMDAwRl07Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvKiBGYWxsIHRocm91Z2g6IGlzb2xhdGVkIHN1cnJvZ2F0ZXMgYXJlIGNvcGllZCBhcy1pcyAqLwotICAgICAgICAgICAgcy0tOwotICAgICAgICAgICAgc2l6ZSsrOwotICAgICAgICB9Ci0jZW5kaWYKIAogICAgICAgICAvKiBNYXAgMTYtYml0IGNoYXJhY3RlcnMgdG8gJ1x1eHh4eCcgKi8KICAgICAgICAgaWYgKGNoID49IDI1NikgewogICAgICAgICAgICAgKnArKyA9ICdcXCc7CiAgICAgICAgICAgICAqcCsrID0gJ3UnOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gMTIpICYgMHgwMDBGXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDgpICYgMHgwMDBGXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDQpICYgMHgwMDBGXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbY2ggJiAweDAwMEZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gMTIpICYgMHgwMDBGXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDgpICYgMHgwMDBGXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDQpICYgMHgwMDBGXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbY2ggJiAweDAwMEZdOwogICAgICAgICB9CiAKICAgICAgICAgLyogTWFwIHNwZWNpYWwgd2hpdGVzcGFjZSB0byAnXHQnLCBcbicsICdccicgKi8KQEAgLTQxMzgsOCArNTg3MSw4IEBACiAgICAgICAgIGVsc2UgaWYgKGNoIDwgJyAnIHx8IGNoID49IDB4N0YpIHsKICAgICAgICAgICAgICpwKysgPSAnXFwnOwogICAgICAgICAgICAgKnArKyA9ICd4JzsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDQpICYgMHgwMDBGXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbY2ggJiAweDAwMEZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gNCkgJiAweDAwMEZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1tjaCAmIDB4MDAwRl07CiAgICAgICAgIH0KIAogICAgICAgICAvKiBDb3B5IGV2ZXJ5dGhpbmcgZWxzZSBhcy1pcyAqLwpAQCAtNDE1MywzMCArNTg4NiwzMSBAQAogICAgIHJldHVybiByZXByOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0FzVW5pY29kZUVzY2FwZVN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9FbmNvZGVVbmljb2RlRXNjYXBlKGNvbnN0IFB5X1VOSUNPREUgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUpCiB7Ci0gICAgUHlPYmplY3QgKnM7Ci0gICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodW5pY29kZSkpIHsKLSAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICp0bXAgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocywgc2l6ZSk7CisgICAgaWYgKHRtcCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcyA9IFB5VW5pY29kZV9FbmNvZGVVbmljb2RlRXNjYXBlKFB5VW5pY29kZV9BU19VTklDT0RFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodW5pY29kZSkpOwotICAgIHJldHVybiBzOworICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Bc1VuaWNvZGVFc2NhcGVTdHJpbmcodG1wKTsKKyAgICBQeV9ERUNSRUYodG1wKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiAvKiAtLS0gUmF3IFVuaWNvZGUgRXNjYXBlIENvZGVjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotUHlPYmplY3QgKlB5VW5pY29kZV9EZWNvZGVSYXdVbmljb2RlRXNjYXBlKGNvbnN0IGNoYXIgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9EZWNvZGVSYXdVbmljb2RlRXNjYXBlKGNvbnN0IGNoYXIgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7CiAgICAgY29uc3QgY2hhciAqc3RhcnRzID0gczsKICAgICBQeV9zc2l6ZV90IHN0YXJ0aW5wb3M7CiAgICAgUHlfc3NpemVfdCBlbmRpbnBvczsKICAgICBQeV9zc2l6ZV90IG91dHBvczsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnY7Ci0gICAgUHlfVU5JQ09ERSAqcDsKKyAgICBQeU9iamVjdCAqdjsKICAgICBjb25zdCBjaGFyICplbmQ7CiAgICAgY29uc3QgY2hhciAqYnM7CiAgICAgUHlPYmplY3QgKmVycm9ySGFuZGxlciA9IE5VTEw7CkBAIC00MTg2LDEyICs1OTIwLDEyIEBACiAgICAgICAgVW5pY29kZSBzdHJpbmcsIHNvIHdlIHN0YXJ0IHdpdGggc2l6ZSBoZXJlIGFuZCB0aGVuIHJlZHVjZSB0aGUKICAgICAgICBsZW5ndGggYWZ0ZXIgY29udmVyc2lvbiB0byB0aGUgdHJ1ZSB2YWx1ZS4gKEJ1dCBkZWNvZGluZyBlcnJvcgogICAgICAgIGhhbmRsZXIgbWlnaHQgaGF2ZSB0byByZXNpemUgdGhlIHN0cmluZykgKi8KLSAgICB2ID0gX1B5VW5pY29kZV9OZXcoc2l6ZSk7CisgICAgdiA9IFB5VW5pY29kZV9OZXcoc2l6ZSwgMTI3KTsKICAgICBpZiAodiA9PSBOVUxMKQogICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgaWYgKHNpemUgPT0gMCkKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXY7Ci0gICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHYpOworICAgICAgICByZXR1cm4gdjsKKyAgICBvdXRwb3MgPSAwOwogICAgIGVuZCA9IHMgKyBzaXplOwogICAgIHdoaWxlIChzIDwgZW5kKSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgYzsKQEAgLTQyMDEsNyArNTkzNSw4IEBACiAKICAgICAgICAgLyogTm9uLWVzY2FwZSBjaGFyYWN0ZXJzIGFyZSBpbnRlcnByZXRlZCBhcyBVbmljb2RlIG9yZGluYWxzICovCiAgICAgICAgIGlmICgqcyAhPSAnXFwnKSB7Ci0gICAgICAgICAgICAqcCsrID0gKHVuc2lnbmVkIGNoYXIpKnMrKzsKKyAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnYsICZvdXRwb3MsICh1bnNpZ25lZCBjaGFyKSpzKyspIDwgMCkKKyAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICBzdGFydGlucG9zID0gcy1zdGFydHM7CkBAIC00MjEyLDE5ICs1OTQ3LDE5IEBACiAgICAgICAgIGZvciAoO3MgPCBlbmQ7KSB7CiAgICAgICAgICAgICBpZiAoKnMgIT0gJ1xcJykKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICpwKysgPSAodW5zaWduZWQgY2hhcikqcysrOworICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdiwgJm91dHBvcywgKHVuc2lnbmVkIGNoYXIpKnMrKykgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgfQogICAgICAgICBpZiAoKChzIC0gYnMpICYgMSkgPT0gMCB8fAogICAgICAgICAgICAgcyA+PSBlbmQgfHwKICAgICAgICAgICAgICgqcyAhPSAndScgJiYgKnMgIT0gJ1UnKSkgewogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgcC0tOworICAgICAgICBvdXRwb3MtLTsKICAgICAgICAgY291bnQgPSAqcz09J3UnID8gNCA6IDg7CiAgICAgICAgIHMrKzsKIAogICAgICAgICAvKiBcdVhYWFggd2l0aCA0IGhleCBkaWdpdHMsIFxVeHh4eHh4eHggd2l0aCA4ICovCi0gICAgICAgIG91dHBvcyA9IHAtUHlVbmljb2RlX0FTX1VOSUNPREUodik7CiAgICAgICAgIGZvciAoeCA9IDAsIGkgPSAwOyBpIDwgY291bnQ7ICsraSwgKytzKSB7CiAgICAgICAgICAgICBjID0gKHVuc2lnbmVkIGNoYXIpKnM7CiAgICAgICAgICAgICBpZiAoIVB5X0lTWERJR0lUKGMpKSB7CkBAIC00MjMzLDcgKzU5NjgsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgInJhd3VuaWNvZGVlc2NhcGUiLCAidHJ1bmNhdGVkIFxcdVhYWFgiLAogICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0cywgJmVuZCwgJnN0YXJ0aW5wb3MsICZlbmRpbnBvcywgJmV4YywgJnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcywgJnApKQorICAgICAgICAgICAgICAgICAgICAgICAgJnYsICZvdXRwb3MpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICAgICAgZ290byBuZXh0Qnl0ZTsKICAgICAgICAgICAgIH0KQEAgLTQyNDUsMzcgKzU5ODAsMjYgQEAKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICB4ICs9IDEwICsgYyAtICdBJzsKICAgICAgICAgfQotICAgICAgICBpZiAoeCA8PSAweGZmZmYpCi0gICAgICAgICAgICAvKiBVQ1MtMiBjaGFyYWN0ZXIgKi8KLSAgICAgICAgICAgICpwKysgPSAoUHlfVU5JQ09ERSkgeDsKLSAgICAgICAgZWxzZSBpZiAoeCA8PSAweDEwZmZmZikgewotICAgICAgICAgICAgLyogVUNTLTQgY2hhcmFjdGVyLiBFaXRoZXIgc3RvcmUgZGlyZWN0bHksIG9yIGFzCi0gICAgICAgICAgICAgICBzdXJyb2dhdGUgcGFpci4gKi8KLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgICAgICpwKysgPSAoUHlfVU5JQ09ERSkgeDsKLSNlbHNlCi0gICAgICAgICAgICB4IC09IDB4MTAwMDBMOwotICAgICAgICAgICAgKnArKyA9IDB4RDgwMCArIChQeV9VTklDT0RFKSAoeCA+PiAxMCk7Ci0gICAgICAgICAgICAqcCsrID0gMHhEQzAwICsgKFB5X1VOSUNPREUpICh4ICYgMHgwM0ZGKTsKLSNlbmRpZgorICAgICAgICBpZiAoeCA8PSBNQVhfVU5JQ09ERSkgeworICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdiwgJm91dHBvcywgeCkgPCAwKQorICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGVuZGlucG9zID0gcy1zdGFydHM7Ci0gICAgICAgICAgICBvdXRwb3MgPSBwLVB5VW5pY29kZV9BU19VTklDT0RFKHYpOwogICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAogICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICJyYXd1bmljb2RlZXNjYXBlIiwgIlxcVXh4eHh4eHh4IG91dCBvZiByYW5nZSIsCiAgICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlbmQsICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZzLAotICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcywgJnApKQorICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcykpCiAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICB9CiAgICAgICBuZXh0Qnl0ZToKICAgICAgICAgOwogICAgIH0KLSAgICBpZiAoX1B5VW5pY29kZV9SZXNpemUoJnYsIHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSkgPCAwKQorICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdiwgb3V0cG9zKSA8IDApCiAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CiAgICAgUHlfWERFQ1JFRihleGMpOwotICAgIHJldHVybiAoUHlPYmplY3QgKil2OworICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdCh2KTsKIAogICBvbkVycm9yOgogICAgIFB5X1hERUNSRUYodik7CkBAIC00Mjg0LDE0NCArNjAwOCwxMzkgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9FbmNvZGVSYXdVbmljb2RlRXNjYXBlKGNvbnN0IFB5X1VOSUNPREUgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplKQorCitQeU9iamVjdCAqCitQeVVuaWNvZGVfQXNSYXdVbmljb2RlRXNjYXBlU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlKQogewogICAgIFB5T2JqZWN0ICpyZXByOwogICAgIGNoYXIgKnA7CiAgICAgY2hhciAqcTsKKyAgICBQeV9zc2l6ZV90IGV4cGFuZHNpemUsIHBvczsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOworICAgIFB5X3NzaXplX3QgbGVuOwogCi0jaWZkZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgY29uc3QgUHlfc3NpemVfdCBleHBhbmRzaXplID0gMTA7Ci0jZWxzZQotICAgIGNvbnN0IFB5X3NzaXplX3QgZXhwYW5kc2l6ZSA9IDY7Ci0jZW5kaWYKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh1bmljb2RlKSkgeworICAgICAgICBQeUVycl9CYWRBcmd1bWVudCgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQSh1bmljb2RlKTsKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmljb2RlKTsKKyAgICAvKiA0IGJ5dGUgY2hhcmFjdGVycyBjYW4gdGFrZSB1cCAxMCBieXRlcywgMiBieXRlIGNoYXJhY3RlcnMgY2FuIHRha2UgdXAgNgorICAgICAgIGJ5dGVzLCBhbmQgMSBieXRlIGNoYXJhY3RlcnMgNC4gKi8KKyAgICBleHBhbmRzaXplID0ga2luZCAqIDIgKyAyOwogCi0gICAgaWYgKHNpemUgPiBQWV9TU0laRV9UX01BWCAvIGV4cGFuZHNpemUpCisgICAgaWYgKGxlbiA+IFBZX1NTSVpFX1RfTUFYIC8gZXhwYW5kc2l6ZSkKICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CiAKLSAgICByZXByID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBleHBhbmRzaXplICogc2l6ZSk7CisgICAgcmVwciA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgZXhwYW5kc2l6ZSAqIGxlbik7CiAgICAgaWYgKHJlcHIgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKHNpemUgPT0gMCkKKyAgICBpZiAobGVuID09IDApCiAgICAgICAgIHJldHVybiByZXByOwogCiAgICAgcCA9IHEgPSBQeUJ5dGVzX0FTX1NUUklORyhyZXByKTsKLSAgICB3aGlsZSAoc2l6ZS0tID4gMCkgewotICAgICAgICBQeV9VTklDT0RFIGNoID0gKnMrKzsKLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKKyAgICBmb3IgKHBvcyA9IDA7IHBvcyA8IGxlbjsgcG9zKyspIHsKKyAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIHBvcyk7CiAgICAgICAgIC8qIE1hcCAzMi1iaXQgY2hhcmFjdGVycyB0byAnXFV4eHh4eHh4eCcgKi8KICAgICAgICAgaWYgKGNoID49IDB4MTAwMDApIHsKKyAgICAgICAgICAgIGFzc2VydChjaCA8PSBNQVhfVU5JQ09ERSk7CiAgICAgICAgICAgICAqcCsrID0gJ1xcJzsKICAgICAgICAgICAgICpwKysgPSAnVSc7Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiAyOCkgJiAweGZdOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gMjQpICYgMHhmXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDIwKSAmIDB4Zl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiAxNikgJiAweGZdOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gMTIpICYgMHhmXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDgpICYgMHhmXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDQpICYgMHhmXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbY2ggJiAxNV07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjaCA+PiAyOCkgJiAweGZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gMjQpICYgMHhmXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDIwKSAmIDB4Zl07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjaCA+PiAxNikgJiAweGZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gMTIpICYgMHhmXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDgpICYgMHhmXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbKGNoID4+IDQpICYgMHhmXTsKKyAgICAgICAgICAgICpwKysgPSBQeV9oZXhkaWdpdHNbY2ggJiAxNV07CiAgICAgICAgIH0KLSAgICAgICAgZWxzZQotI2Vsc2UKLSAgICAgICAgICAgIC8qIE1hcCBVVEYtMTYgc3Vycm9nYXRlIHBhaXJzIHRvICdcVTAweHh4eHh4JyAqLwotICAgICAgICAgICAgaWYgKGNoID49IDB4RDgwMCAmJiBjaCA8IDB4REMwMCkgewotICAgICAgICAgICAgICAgIFB5X1VOSUNPREUgY2gyOwotICAgICAgICAgICAgICAgIFB5X1VDUzQgdWNzOwotCi0gICAgICAgICAgICAgICAgY2gyID0gKnMrKzsKLSAgICAgICAgICAgICAgICBzaXplLS07Ci0gICAgICAgICAgICAgICAgaWYgKGNoMiA+PSAweERDMDAgJiYgY2gyIDw9IDB4REZGRikgewotICAgICAgICAgICAgICAgICAgICB1Y3MgPSAoKChjaCAmIDB4MDNGRikgPDwgMTApIHwgKGNoMiAmIDB4MDNGRikpICsgMHgwMDAxMDAwMDsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9ICdcXCc7Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSAnVSc7Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiAyOCkgJiAweGZdOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gMjQpICYgMHhmXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDIwKSAmIDB4Zl07Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiAxNikgJiAweGZdOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gMTIpICYgMHhmXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDgpICYgMHhmXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDQpICYgMHhmXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1t1Y3MgJiAweGZdOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgLyogRmFsbCB0aHJvdWdoOiBpc29sYXRlZCBzdXJyb2dhdGVzIGFyZSBjb3BpZWQgYXMtaXMgKi8KLSAgICAgICAgICAgICAgICBzLS07Ci0gICAgICAgICAgICAgICAgc2l6ZSsrOwotICAgICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIC8qIE1hcCAxNi1iaXQgY2hhcmFjdGVycyB0byAnXHV4eHh4JyAqLwotICAgICAgICBpZiAoY2ggPj0gMjU2KSB7CisgICAgICAgIGVsc2UgaWYgKGNoID49IDI1NikgewogICAgICAgICAgICAgKnArKyA9ICdcXCc7CiAgICAgICAgICAgICAqcCsrID0gJ3UnOwotICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gMTIpICYgMHhmXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDgpICYgMHhmXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKGNoID4+IDQpICYgMHhmXTsKLSAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbY2ggJiAxNV07CisgICAgICAgICAgICAqcCsrID0gUHlfaGV4ZGlnaXRzWyhjaCA+PiAxMikgJiAweGZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gOCkgJiAweGZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1soY2ggPj4gNCkgJiAweGZdOworICAgICAgICAgICAgKnArKyA9IFB5X2hleGRpZ2l0c1tjaCAmIDE1XTsKICAgICAgICAgfQogICAgICAgICAvKiBDb3B5IGV2ZXJ5dGhpbmcgZWxzZSBhcy1pcyAqLwogICAgICAgICBlbHNlCiAgICAgICAgICAgICAqcCsrID0gKGNoYXIpIGNoOwogICAgIH0KLSAgICBzaXplID0gcCAtIHE7CiAKLSAgICBhc3NlcnQoc2l6ZSA+IDApOwotICAgIGlmIChfUHlCeXRlc19SZXNpemUoJnJlcHIsIHNpemUpIDwgMCkKKyAgICBhc3NlcnQocCA+IHEpOworICAgIGlmIChfUHlCeXRlc19SZXNpemUoJnJlcHIsIHAgLSBxKSA8IDApCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIHJldHVybiByZXByOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9FbmNvZGVSYXdVbmljb2RlRXNjYXBlKGNvbnN0IFB5X1VOSUNPREUgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUpCiB7Ci0gICAgUHlPYmplY3QgKnM7Ci0gICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodW5pY29kZSkpIHsKLSAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICp0bXAgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocywgc2l6ZSk7CisgICAgaWYgKHRtcCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcyA9IFB5VW5pY29kZV9FbmNvZGVSYXdVbmljb2RlRXNjYXBlKFB5VW5pY29kZV9BU19VTklDT0RFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodW5pY29kZSkpOwotCi0gICAgcmV0dXJuIHM7CisgICAgcmVzdWx0ID0gUHlVbmljb2RlX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZyh0bXApOworICAgIFB5X0RFQ1JFRih0bXApOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIC8qIC0tLSBVbmljb2RlIEludGVybmFsIENvZGVjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotUHlPYmplY3QgKl9QeVVuaWNvZGVfRGVjb2RlVW5pY29kZUludGVybmFsKGNvbnN0IGNoYXIgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK1B5T2JqZWN0ICoKK19QeVVuaWNvZGVfRGVjb2RlVW5pY29kZUludGVybmFsKGNvbnN0IGNoYXIgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7CiAgICAgY29uc3QgY2hhciAqc3RhcnRzID0gczsKICAgICBQeV9zc2l6ZV90IHN0YXJ0aW5wb3M7CiAgICAgUHlfc3NpemVfdCBlbmRpbnBvczsKICAgICBQeV9zc2l6ZV90IG91dHBvczsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnY7Ci0gICAgUHlfVU5JQ09ERSAqcDsKKyAgICBQeU9iamVjdCAqdjsKICAgICBjb25zdCBjaGFyICplbmQ7CiAgICAgY29uc3QgY2hhciAqcmVhc29uOwogICAgIFB5T2JqZWN0ICplcnJvckhhbmRsZXIgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpleGMgPSBOVUxMOwogCi0jaWZkZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgUHlfVU5JQ09ERSB1bmltYXggPSBQeVVuaWNvZGVfR2V0TWF4KCk7Ci0jZW5kaWYKKyAgICBpZiAoUHlFcnJfV2FybkV4KFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZywKKyAgICAgICAgICAgICAgICAgICAgICJ1bmljb2RlX2ludGVybmFsIGNvZGVjIGhhcyBiZWVuIGRlcHJlY2F0ZWQiLAorICAgICAgICAgICAgICAgICAgICAgMSkpCisgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgLyogWFhYIG92ZXJmbG93IGRldGVjdGlvbiBtaXNzaW5nICovCi0gICAgdiA9IF9QeVVuaWNvZGVfTmV3KChzaXplK1B5X1VOSUNPREVfU0laRS0xKS8gUHlfVU5JQ09ERV9TSVpFKTsKKyAgICB2ID0gUHlVbmljb2RlX05ldygoc2l6ZStQeV9VTklDT0RFX1NJWkUtMSkvIFB5X1VOSUNPREVfU0laRSwgMTI3KTsKICAgICBpZiAodiA9PSBOVUxMKQogICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgaWYgKFB5VW5pY29kZV9HZXRTaXplKChQeU9iamVjdCAqKXYpID09IDApCi0gICAgICAgIHJldHVybiAoUHlPYmplY3QgKil2OwotICAgIHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KTsKKyAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgodikgPT0gMCkKKyAgICAgICAgcmV0dXJuIHY7CisgICAgb3V0cG9zID0gMDsKICAgICBlbmQgPSBzICsgc2l6ZTsKIAogICAgIHdoaWxlIChzIDwgZW5kKSB7Ci0gICAgICAgIG1lbWNweShwLCBzLCBzaXplb2YoUHlfVU5JQ09ERSkpOworICAgICAgICBQeV9VTklDT0RFIHVjaDsKKyAgICAgICAgUHlfVUNTNCBjaDsKKyAgICAgICAgLyogV2UgY29weSB0aGUgcmF3IHJlcHJlc2VudGF0aW9uIG9uZSBieXRlIGF0IGEgdGltZSBiZWNhdXNlIHRoZQorICAgICAgICAgICBwb2ludGVyIG1heSBiZSB1bmFsaWduZWQgKHNlZSB0ZXN0X2NvZGVjY2FsbGJhY2tzKS4gKi8KKyAgICAgICAgKChjaGFyICopICZ1Y2gpWzBdID0gc1swXTsKKyAgICAgICAgKChjaGFyICopICZ1Y2gpWzFdID0gc1sxXTsKKyNpZmRlZiBQeV9VTklDT0RFX1dJREUKKyAgICAgICAgKChjaGFyICopICZ1Y2gpWzJdID0gc1syXTsKKyAgICAgICAgKChjaGFyICopICZ1Y2gpWzNdID0gc1szXTsKKyNlbmRpZgorICAgICAgICBjaCA9IHVjaDsKKwogICAgICAgICAvKiBXZSBoYXZlIHRvIHNhbml0eSBjaGVjayB0aGUgcmF3IGRhdGEsIG90aGVyd2lzZSBkb29tIGxvb21zIGZvcgogICAgICAgICAgICBzb21lIG1hbGZvcm1lZCBVQ1MtNCBkYXRhLiAqLwogICAgICAgICBpZiAoCiAjaWZkZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgICAgICAqcCA+IHVuaW1heCB8fCAqcCA8IDAgfHwKKyAgICAgICAgICAgIGNoID4gMHgxMGZmZmYgfHwKICNlbmRpZgogICAgICAgICAgICAgZW5kLXMgPCBQeV9VTklDT0RFX1NJWkUKICAgICAgICAgICAgICkKQEAgLTQ0MzUsMjYgKzYxNTQsMzkgQEAKICAgICAgICAgICAgICAgICBlbmRpbnBvcyA9IHMgLSBzdGFydHMgKyBQeV9VTklDT0RFX1NJWkU7CiAgICAgICAgICAgICAgICAgcmVhc29uID0gImlsbGVnYWwgY29kZSBwb2ludCAoPiAweDEwRkZGRikiOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgb3V0cG9zID0gcCAtIFB5VW5pY29kZV9BU19VTklDT0RFKHYpOwogICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAogICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICJ1bmljb2RlX2ludGVybmFsIiwgcmVhc29uLAogICAgICAgICAgICAgICAgICAgICAmc3RhcnRzLCAmZW5kLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAgICAgJnYsICZvdXRwb3MsICZwKSkgeworICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcykpCiAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKworICAgICAgICBzICs9IFB5X1VOSUNPREVfU0laRTsKKyNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCisgICAgICAgIGlmIChQeV9VTklDT0RFX0lTX0hJR0hfU1VSUk9HQVRFKGNoKSAmJiBzIDwgZW5kKQorICAgICAgICB7CisgICAgICAgICAgICBQeV9VTklDT0RFIHVjaDI7CisgICAgICAgICAgICAoKGNoYXIgKikgJnVjaDIpWzBdID0gc1swXTsKKyAgICAgICAgICAgICgoY2hhciAqKSAmdWNoMilbMV0gPSBzWzFdOworICAgICAgICAgICAgaWYgKFB5X1VOSUNPREVfSVNfTE9XX1NVUlJPR0FURSh1Y2gyKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjaCA9IFB5X1VOSUNPREVfSk9JTl9TVVJST0dBVEVTKHVjaCwgdWNoMik7CisgICAgICAgICAgICAgICAgcyArPSBQeV9VTklDT0RFX1NJWkU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBwKys7Ci0gICAgICAgICAgICBzICs9IFB5X1VOSUNPREVfU0laRTsKLSAgICAgICAgfQorI2VuZGlmCisKKyAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdiwgJm91dHBvcywgY2gpIDwgMCkKKyAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICB9CiAKLSAgICBpZiAoX1B5VW5pY29kZV9SZXNpemUoJnYsIHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSkgPCAwKQorICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdiwgb3V0cG9zKSA8IDApCiAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CiAgICAgUHlfWERFQ1JFRihleGMpOwotICAgIHJldHVybiAoUHlPYmplY3QgKil2OworICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdCh2KTsKIAogICBvbkVycm9yOgogICAgIFB5X1hERUNSRUYodik7CkBAIC00NDY1LDU3ICs2MTk3LDI3IEBACiAKIC8qIC0tLSBMYXRpbi0xIENvZGVjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCi1QeU9iamVjdCAqUHlVbmljb2RlX0RlY29kZUxhdGluMShjb25zdCBjaGFyICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQorUHlPYmplY3QgKgorUHlVbmljb2RlX0RlY29kZUxhdGluMShjb25zdCBjaGFyICpzLAorICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnY7Ci0gICAgUHlfVU5JQ09ERSAqcDsKLSAgICBjb25zdCBjaGFyICplLCAqdW5yb2xsZWRfZW5kOwotCiAgICAgLyogTGF0aW4tMSBpcyBlcXVpdmFsZW50IHRvIHRoZSBmaXJzdCAyNTYgb3JkaW5hbHMgaW4gVW5pY29kZS4gKi8KLSAgICBpZiAoc2l6ZSA9PSAxKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgciA9ICoodW5zaWduZWQgY2hhciopczsKLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tVW5pY29kZSgmciwgMSk7Ci0gICAgfQotCi0gICAgdiA9IF9QeVVuaWNvZGVfTmV3KHNpemUpOwotICAgIGlmICh2ID09IE5VTEwpCi0gICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICBpZiAoc2l6ZSA9PSAwKQotICAgICAgICByZXR1cm4gKFB5T2JqZWN0ICopdjsKLSAgICBwID0gUHlVbmljb2RlX0FTX1VOSUNPREUodik7Ci0gICAgZSA9IHMgKyBzaXplOwotICAgIC8qIFVucm9sbGluZyB0aGUgY29weSBtYWtlcyBpdCBtdWNoIGZhc3RlciBieSByZWR1Y2luZyB0aGUgbG9vcGluZwotICAgICAgIG92ZXJoZWFkLiBUaGlzIGlzIHNpbWlsYXIgdG8gd2hhdCBtYW55IG1lbWNweSgpIGltcGxlbWVudGF0aW9ucyBkby4gKi8KLSAgICB1bnJvbGxlZF9lbmQgPSBlIC0gNDsKLSAgICB3aGlsZSAocyA8IHVucm9sbGVkX2VuZCkgewotICAgICAgICBwWzBdID0gKHVuc2lnbmVkIGNoYXIpIHNbMF07Ci0gICAgICAgIHBbMV0gPSAodW5zaWduZWQgY2hhcikgc1sxXTsKLSAgICAgICAgcFsyXSA9ICh1bnNpZ25lZCBjaGFyKSBzWzJdOwotICAgICAgICBwWzNdID0gKHVuc2lnbmVkIGNoYXIpIHNbM107Ci0gICAgICAgIHMgKz0gNDsKLSAgICAgICAgcCArPSA0OwotICAgIH0KLSAgICB3aGlsZSAocyA8IGUpCi0gICAgICAgICpwKysgPSAodW5zaWduZWQgY2hhcikgKnMrKzsKLSAgICByZXR1cm4gKFB5T2JqZWN0ICopdjsKLQotICBvbkVycm9yOgotICAgIFB5X1hERUNSRUYodik7Ci0gICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVfRnJvbVVDUzEoKHVuc2lnbmVkIGNoYXIqKXMsIHNpemUpOwogfQogCiAvKiBjcmVhdGUgb3IgYWRqdXN0IGEgVW5pY29kZUVuY29kZUVycm9yICovCi1zdGF0aWMgdm9pZCBtYWtlX2VuY29kZV9leGNlcHRpb24oUHlPYmplY3QgKipleGNlcHRpb25PYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHlfVU5JQ09ERSAqdW5pY29kZSwgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnRwb3MsIFB5X3NzaXplX3QgZW5kcG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnJlYXNvbikKK3N0YXRpYyB2b2lkCittYWtlX2VuY29kZV9leGNlcHRpb24oUHlPYmplY3QgKipleGNlcHRpb25PYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnVuaWNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydHBvcywgUHlfc3NpemVfdCBlbmRwb3MsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVhc29uKQogewogICAgIGlmICgqZXhjZXB0aW9uT2JqZWN0ID09IE5VTEwpIHsKLSAgICAgICAgKmV4Y2VwdGlvbk9iamVjdCA9IFB5VW5pY29kZUVuY29kZUVycm9yX0NyZWF0ZSgKLSAgICAgICAgICAgIGVuY29kaW5nLCB1bmljb2RlLCBzaXplLCBzdGFydHBvcywgZW5kcG9zLCByZWFzb24pOworICAgICAgICAqZXhjZXB0aW9uT2JqZWN0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKAorICAgICAgICAgICAgUHlFeGNfVW5pY29kZUVuY29kZUVycm9yLCAic09ubnMiLAorICAgICAgICAgICAgZW5jb2RpbmcsIHVuaWNvZGUsIHN0YXJ0cG9zLCBlbmRwb3MsIHJlYXNvbik7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICBpZiAoUHlVbmljb2RlRW5jb2RlRXJyb3JfU2V0U3RhcnQoKmV4Y2VwdGlvbk9iamVjdCwgc3RhcnRwb3MpKQpAQCAtNDUzMiwxNCArNjIzNCwxNSBAQAogfQogCiAvKiByYWlzZXMgYSBVbmljb2RlRW5jb2RlRXJyb3IgKi8KLXN0YXRpYyB2b2lkIHJhaXNlX2VuY29kZV9leGNlcHRpb24oUHlPYmplY3QgKipleGNlcHRpb25PYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVuY29kaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQeV9VTklDT0RFICp1bmljb2RlLCBQeV9zc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnRwb3MsIFB5X3NzaXplX3QgZW5kcG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpyZWFzb24pCitzdGF0aWMgdm9pZAorcmFpc2VfZW5jb2RlX2V4Y2VwdGlvbihQeU9iamVjdCAqKmV4Y2VwdGlvbk9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp1bmljb2RlLAorICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0cG9zLCBQeV9zc2l6ZV90IGVuZHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVhc29uKQogewogICAgIG1ha2VfZW5jb2RlX2V4Y2VwdGlvbihleGNlcHRpb25PYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nLCB1bmljb2RlLCBzaXplLCBzdGFydHBvcywgZW5kcG9zLCByZWFzb24pOworICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZywgdW5pY29kZSwgc3RhcnRwb3MsIGVuZHBvcywgcmVhc29uKTsKICAgICBpZiAoKmV4Y2VwdGlvbk9iamVjdCAhPSBOVUxMKQogICAgICAgICBQeUNvZGVjX1N0cmljdEVycm9ycygqZXhjZXB0aW9uT2JqZWN0KTsKIH0KQEAgLTQ1NDgsMTUgKzYyNTEsMTYgQEAKICAgIGJ1aWxkIGFyZ3VtZW50cywgY2FsbCB0aGUgY2FsbGJhY2sgYW5kIGNoZWNrIHRoZSBhcmd1bWVudHMsCiAgICBwdXQgdGhlIHJlc3VsdCBpbnRvIG5ld3BvcyBhbmQgcmV0dXJuIHRoZSByZXBsYWNlbWVudCBzdHJpbmcsIHdoaWNoCiAgICBoYXMgdG8gYmUgZnJlZWQgYnkgdGhlIGNhbGxlciAqLwotc3RhdGljIFB5T2JqZWN0ICp1bmljb2RlX2VuY29kZV9jYWxsX2Vycm9yaGFuZGxlcihjb25zdCBjaGFyICplcnJvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqZXJyb3JIYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplbmNvZGluZywgY29uc3QgY2hhciAqcmVhc29uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQeV9VTklDT0RFICp1bmljb2RlLCBQeV9zc2l6ZV90IHNpemUsIFB5T2JqZWN0ICoqZXhjZXB0aW9uT2JqZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0cG9zLCBQeV9zc2l6ZV90IGVuZHBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqbmV3cG9zKQorc3RhdGljIFB5T2JqZWN0ICoKK3VuaWNvZGVfZW5jb2RlX2NhbGxfZXJyb3JoYW5kbGVyKGNvbnN0IGNoYXIgKmVycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqZXJyb3JIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZW5jb2RpbmcsIGNvbnN0IGNoYXIgKnJlYXNvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp1bmljb2RlLCBQeU9iamVjdCAqKmV4Y2VwdGlvbk9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnRwb3MsIFB5X3NzaXplX3QgZW5kcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqbmV3cG9zKQogewogICAgIHN0YXRpYyBjaGFyICphcmdwYXJzZSA9ICJPbjtlbmNvZGluZyBlcnJvciBoYW5kbGVyIG11c3QgcmV0dXJuIChzdHIvYnl0ZXMsIGludCkgdHVwbGUiOwotCisgICAgUHlfc3NpemVfdCBsZW47CiAgICAgUHlPYmplY3QgKnJlc3R1cGxlOwogICAgIFB5T2JqZWN0ICpyZXN1bmljb2RlOwogCkBAIC00NTY2LDggKzYyNzAsMTIgQEAKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodW5pY29kZSkgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpOworCiAgICAgbWFrZV9lbmNvZGVfZXhjZXB0aW9uKGV4Y2VwdGlvbk9iamVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcsIHVuaWNvZGUsIHNpemUsIHN0YXJ0cG9zLCBlbmRwb3MsIHJlYXNvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nLCB1bmljb2RlLCBzdGFydHBvcywgZW5kcG9zLCByZWFzb24pOwogICAgIGlmICgqZXhjZXB0aW9uT2JqZWN0ID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC00NTkxLDggKzYyOTksOCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgaWYgKCpuZXdwb3M8MCkKLSAgICAgICAgKm5ld3BvcyA9IHNpemUrKm5ld3BvczsKLSAgICBpZiAoKm5ld3BvczwwIHx8ICpuZXdwb3M+c2l6ZSkgeworICAgICAgICAqbmV3cG9zID0gbGVuICsgKm5ld3BvczsKKyAgICBpZiAoKm5ld3BvczwwIHx8ICpuZXdwb3M+bGVuKSB7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19JbmRleEVycm9yLCAicG9zaXRpb24gJXpkIGZyb20gZXJyb3IgaGFuZGxlciBvdXQgb2YgYm91bmRzIiwgKm5ld3Bvcyk7CiAgICAgICAgIFB5X0RFQ1JFRihyZXN0dXBsZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNDYwMiwxOCArNjMxMCwxNyBAQAogICAgIHJldHVybiByZXN1bmljb2RlOwogfQogCi1zdGF0aWMgUHlPYmplY3QgKnVuaWNvZGVfZW5jb2RlX3VjczEoY29uc3QgUHlfVU5JQ09ERSAqcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBsaW1pdCkKK3N0YXRpYyBQeU9iamVjdCAqCit1bmljb2RlX2VuY29kZV91Y3MxKFB5T2JqZWN0ICp1bmljb2RlLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMsCisgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsaW1pdCkKIHsKKyAgICAvKiBpbnB1dCBzdGF0ZSAqLworICAgIFB5X3NzaXplX3QgcG9zPTAsIHNpemU7CisgICAgaW50IGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKICAgICAvKiBvdXRwdXQgb2JqZWN0ICovCiAgICAgUHlPYmplY3QgKnJlczsKLSAgICAvKiBwb2ludGVycyB0byB0aGUgYmVnaW5uaW5nIGFuZCBlbmQrMSBvZiBpbnB1dCAqLwotICAgIGNvbnN0IFB5X1VOSUNPREUgKnN0YXJ0cCA9IHA7Ci0gICAgY29uc3QgUHlfVU5JQ09ERSAqZW5kcCA9IHAgKyBzaXplOwotICAgIC8qIHBvaW50ZXIgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgdW5lbmNvZGFibGUgY2hhcmFjdGVycyAqLwotICAgIC8qIGNvbnN0IFB5X1VOSUNPREUgKmJhZHAgPSBOVUxMOyAqLwogICAgIC8qIHBvaW50ZXIgaW50byB0aGUgb3V0cHV0ICovCiAgICAgY2hhciAqc3RyOwogICAgIC8qIGN1cnJlbnQgb3V0cHV0IHBvc2l0aW9uICovCkBAIC00NjI2LDYgKzYzMzMsMTEgQEAKICAgICAgKiAtMT1ub3QgaW5pdGlhbGl6ZWQsIDA9dW5rbm93biwgMT1zdHJpY3QsIDI9cmVwbGFjZSwgMz1pZ25vcmUsIDQ9eG1sY2hhcnJlZnJlcGxhY2UgKi8KICAgICBpbnQga25vd25fZXJyb3JIYW5kbGVyID0gLTE7CiAKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHVuaWNvZGUpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSk7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHVuaWNvZGUpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQSh1bmljb2RlKTsKICAgICAvKiBhbGxvY2F0ZSBlbm91Z2ggZm9yIGEgc2ltcGxlIGVuY29kaW5nIHdpdGhvdXQKICAgICAgICByZXBsYWNlbWVudHMsIGlmIHdlIG5lZWQgbW9yZSwgd2UnbGwgcmVzaXplICovCiAgICAgaWYgKHNpemUgPT0gMCkKQEAgLTQ2MzYsMjggKzYzNDgsMjQgQEAKICAgICBzdHIgPSBQeUJ5dGVzX0FTX1NUUklORyhyZXMpOwogICAgIHJlc3NpemUgPSBzaXplOwogCi0gICAgd2hpbGUgKHA8ZW5kcCkgewotICAgICAgICBQeV9VTklDT0RFIGMgPSAqcDsKKyAgICB3aGlsZSAocG9zIDwgc2l6ZSkgeworICAgICAgICBQeV9VQ1M0IGMgPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBwb3MpOwogCiAgICAgICAgIC8qIGNhbiB3ZSBlbmNvZGUgdGhpcz8gKi8KICAgICAgICAgaWYgKGM8bGltaXQpIHsKICAgICAgICAgICAgIC8qIG5vIG92ZXJmbG93IGNoZWNrLCBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGUgc3BhY2UgaXMgZW5vdWdoICovCiAgICAgICAgICAgICAqc3RyKysgPSAoY2hhciljOwotICAgICAgICAgICAgKytwOworICAgICAgICAgICAgKytwb3M7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBQeV9zc2l6ZV90IHVuaWNvZGVwb3MgPSBwLXN0YXJ0cDsKICAgICAgICAgICAgIFB5X3NzaXplX3QgcmVxdWlyZWRzaXplOwogICAgICAgICAgICAgUHlPYmplY3QgKnJlcHVuaWNvZGU7Ci0gICAgICAgICAgICBQeV9zc2l6ZV90IHJlcHNpemU7Ci0gICAgICAgICAgICBQeV9zc2l6ZV90IG5ld3BvczsKLSAgICAgICAgICAgIFB5X3NzaXplX3QgcmVzcG9zOwotICAgICAgICAgICAgUHlfVU5JQ09ERSAqdW5pMjsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgcmVwc2l6ZSwgbmV3cG9zLCByZXNwb3MsIGk7CiAgICAgICAgICAgICAvKiBzdGFydHBvcyBmb3IgY29sbGVjdGluZyB1bmVuY29kYWJsZSBjaGFycyAqLwotICAgICAgICAgICAgY29uc3QgUHlfVU5JQ09ERSAqY29sbHN0YXJ0ID0gcDsKLSAgICAgICAgICAgIGNvbnN0IFB5X1VOSUNPREUgKmNvbGxlbmQgPSBwOworICAgICAgICAgICAgUHlfc3NpemVfdCBjb2xsc3RhcnQgPSBwb3M7CisgICAgICAgICAgICBQeV9zc2l6ZV90IGNvbGxlbmQgPSBwb3M7CiAgICAgICAgICAgICAvKiBmaW5kIGFsbCB1bmVjb2RhYmxlIGNoYXJhY3RlcnMgKi8KLSAgICAgICAgICAgIHdoaWxlICgoY29sbGVuZCA8IGVuZHApICYmICgoKmNvbGxlbmQpPj1saW1pdCkpCisgICAgICAgICAgICB3aGlsZSAoKGNvbGxlbmQgPCBzaXplKSAmJiAoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgY29sbGVuZCk+PWxpbWl0KSkKICAgICAgICAgICAgICAgICArK2NvbGxlbmQ7CiAgICAgICAgICAgICAvKiBjYWNoZSBjYWxsYmFjayBuYW1lIGxvb2t1cCAoaWYgbm90IGRvbmUgeWV0LCBpLmUuIGl0J3MgdGhlIGZpcnN0IGVycm9yKSAqLwogICAgICAgICAgICAgaWYgKGtub3duX2Vycm9ySGFuZGxlcj09LTEpIHsKQEAgLTQ2NzQsMzkgKzYzODIsMzcgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHN3aXRjaCAoa25vd25fZXJyb3JIYW5kbGVyKSB7CiAgICAgICAgICAgICBjYXNlIDE6IC8qIHN0cmljdCAqLwotICAgICAgICAgICAgICAgIHJhaXNlX2VuY29kZV9leGNlcHRpb24oJmV4YywgZW5jb2RpbmcsIHN0YXJ0cCwgc2l6ZSwgY29sbHN0YXJ0LXN0YXJ0cCwgY29sbGVuZC1zdGFydHAsIHJlYXNvbik7CisgICAgICAgICAgICAgICAgcmFpc2VfZW5jb2RlX2V4Y2VwdGlvbigmZXhjLCBlbmNvZGluZywgdW5pY29kZSwgY29sbHN0YXJ0LCBjb2xsZW5kLCByZWFzb24pOwogICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgIGNhc2UgMjogLyogcmVwbGFjZSAqLwogICAgICAgICAgICAgICAgIHdoaWxlIChjb2xsc3RhcnQrKzxjb2xsZW5kKQogICAgICAgICAgICAgICAgICAgICAqc3RyKysgPSAnPyc7IC8qIGZhbGwgdGhyb3VnaCAqLwogICAgICAgICAgICAgY2FzZSAzOiAvKiBpZ25vcmUgKi8KLSAgICAgICAgICAgICAgICBwID0gY29sbGVuZDsKKyAgICAgICAgICAgICAgICBwb3MgPSBjb2xsZW5kOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSA0OiAvKiB4bWxjaGFycmVmcmVwbGFjZSAqLwogICAgICAgICAgICAgICAgIHJlc3BvcyA9IHN0ciAtIFB5Qnl0ZXNfQVNfU1RSSU5HKHJlcyk7Ci0gICAgICAgICAgICAgICAgLyogZGV0ZXJtaW5lIHJlcGxhY2VtZW50IHNpemUgKHRlbXBvcmFyaWx5IChtaXMpdXNlcyBwKSAqLwotICAgICAgICAgICAgICAgIGZvciAocCA9IGNvbGxzdGFydCwgcmVwc2l6ZSA9IDA7IHAgPCBjb2xsZW5kOyArK3ApIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCpwPDEwKQorICAgICAgICAgICAgICAgIC8qIGRldGVybWluZSByZXBsYWNlbWVudCBzaXplICovCisgICAgICAgICAgICAgICAgZm9yIChpID0gY29sbHN0YXJ0LCByZXBzaXplID0gMDsgaSA8IGNvbGxlbmQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChjaCA8IDEwKQogICAgICAgICAgICAgICAgICAgICAgICAgcmVwc2l6ZSArPSAyKzErMTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKnA8MTAwKQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8IDEwMCkKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHNpemUgKz0gMisyKzE7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCpwPDEwMDApCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDwgMTAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHNpemUgKz0gMiszKzE7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCpwPDEwMDAwKQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChjaCA8IDEwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgcmVwc2l6ZSArPSAyKzQrMTsKLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPCAxMDAwMDApCiAgICAgICAgICAgICAgICAgICAgICAgICByZXBzaXplICs9IDIrNSsxOwotI2Vsc2UKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKnA8MTAwMDAwKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVwc2l6ZSArPSAyKzUrMTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKnA8MTAwMDAwMCkKKyAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoY2ggPCAxMDAwMDAwKQogICAgICAgICAgICAgICAgICAgICAgICAgcmVwc2l6ZSArPSAyKzYrMTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydChjaCA8PSBNQVhfVU5JQ09ERSk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXBzaXplICs9IDIrNysxOwotI2VuZGlmCisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmVxdWlyZWRzaXplID0gcmVzcG9zK3JlcHNpemUrKGVuZHAtY29sbGVuZCk7CisgICAgICAgICAgICAgICAgcmVxdWlyZWRzaXplID0gcmVzcG9zK3JlcHNpemUrKHNpemUtY29sbGVuZCk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcXVpcmVkc2l6ZSA+IHJlc3NpemUpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcXVpcmVkc2l6ZTwyKnJlc3NpemUpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZHNpemUgPSAyKnJlc3NpemU7CkBAIC00NzE1LDE3ICs2NDIxLDE4IEBACiAgICAgICAgICAgICAgICAgICAgIHN0ciA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHJlcykgKyByZXNwb3M7CiAgICAgICAgICAgICAgICAgICAgIHJlc3NpemUgPSByZXF1aXJlZHNpemU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8qIGdlbmVyYXRlIHJlcGxhY2VtZW50ICh0ZW1wb3JhcmlseSAobWlzKXVzZXMgcCkgKi8KLSAgICAgICAgICAgICAgICBmb3IgKHAgPSBjb2xsc3RhcnQ7IHAgPCBjb2xsZW5kOyArK3ApIHsKLSAgICAgICAgICAgICAgICAgICAgc3RyICs9IHNwcmludGYoc3RyLCAiJiMlZDsiLCAoaW50KSpwKTsKKyAgICAgICAgICAgICAgICAvKiBnZW5lcmF0ZSByZXBsYWNlbWVudCAqLworICAgICAgICAgICAgICAgIGZvciAoaSA9IGNvbGxzdGFydDsgaSA8IGNvbGxlbmQ7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBzdHIgKz0gc3ByaW50ZihzdHIsICImIyVkOyIsIFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcCA9IGNvbGxlbmQ7CisgICAgICAgICAgICAgICAgcG9zID0gY29sbGVuZDsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgcmVwdW5pY29kZSA9IHVuaWNvZGVfZW5jb2RlX2NhbGxfZXJyb3JoYW5kbGVyKGVycm9ycywgJmVycm9ySGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcsIHJlYXNvbiwgc3RhcnRwLCBzaXplLCAmZXhjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsc3RhcnQtc3RhcnRwLCBjb2xsZW5kLXN0YXJ0cCwgJm5ld3Bvcyk7Ci0gICAgICAgICAgICAgICAgaWYgKHJlcHVuaWNvZGUgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcsIHJlYXNvbiwgdW5pY29kZSwgJmV4YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbHN0YXJ0LCBjb2xsZW5kLCAmbmV3cG9zKTsKKyAgICAgICAgICAgICAgICBpZiAocmVwdW5pY29kZSA9PSBOVUxMIHx8IChQeVVuaWNvZGVfQ2hlY2socmVwdW5pY29kZSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRFkocmVwdW5pY29kZSkgPT0gLTEpKQogICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICAgICAgaWYgKFB5Qnl0ZXNfQ2hlY2socmVwdW5pY29kZSkpIHsKICAgICAgICAgICAgICAgICAgICAgLyogRGlyZWN0bHkgY29weSBieXRlcyByZXN1bHQgdG8gb3V0cHV0LiAqLwpAQCAtNDc0Miw3ICs2NDQ5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBtZW1jcHkoc3RyLCBQeUJ5dGVzX0FzU3RyaW5nKHJlcHVuaWNvZGUpLCByZXBzaXplKTsKICAgICAgICAgICAgICAgICAgICAgc3RyICs9IHJlcHNpemU7Ci0gICAgICAgICAgICAgICAgICAgIHAgPSBzdGFydHAgKyBuZXdwb3M7CisgICAgICAgICAgICAgICAgICAgIHBvcyA9IG5ld3BvczsKICAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHJlcHVuaWNvZGUpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC00NzUwLDggKzY0NTcsOCBAQAogICAgICAgICAgICAgICAgICAgIGhhdmUrdGhlIHJlcGxhY2VtZW50K3RoZSByZXN0IG9mIHRoZSBzdHJpbmcsIHNvCiAgICAgICAgICAgICAgICAgICAgd2Ugd29uJ3QgaGF2ZSB0byBjaGVjayBzcGFjZSBmb3IgZW5jb2RhYmxlIGNoYXJhY3RlcnMpICovCiAgICAgICAgICAgICAgICAgcmVzcG9zID0gc3RyIC0gUHlCeXRlc19BU19TVFJJTkcocmVzKTsKLSAgICAgICAgICAgICAgICByZXBzaXplID0gUHlVbmljb2RlX0dFVF9TSVpFKHJlcHVuaWNvZGUpOwotICAgICAgICAgICAgICAgIHJlcXVpcmVkc2l6ZSA9IHJlc3BvcytyZXBzaXplKyhlbmRwLWNvbGxlbmQpOworICAgICAgICAgICAgICAgIHJlcHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChyZXB1bmljb2RlKTsKKyAgICAgICAgICAgICAgICByZXF1aXJlZHNpemUgPSByZXNwb3MrcmVwc2l6ZSsoc2l6ZS1jb2xsZW5kKTsKICAgICAgICAgICAgICAgICBpZiAocmVxdWlyZWRzaXplID4gcmVzc2l6ZSkgewogICAgICAgICAgICAgICAgICAgICBpZiAocmVxdWlyZWRzaXplPDIqcmVzc2l6ZSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkc2l6ZSA9IDIqcmVzc2l6ZTsKQEAgLTQ3NjQsMTcgKzY0NzEsMTcgQEAKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLyogY2hlY2sgaWYgdGhlcmUgaXMgYW55dGhpbmcgdW5lbmNvZGFibGUgaW4gdGhlIHJlcGxhY2VtZW50CiAgICAgICAgICAgICAgICAgICAgYW5kIGNvcHkgaXQgdG8gdGhlIG91dHB1dCAqLwotICAgICAgICAgICAgICAgIGZvciAodW5pMiA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlcHVuaWNvZGUpO3JlcHNpemUtLT4wOyArK3VuaTIsICsrc3RyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGMgPSAqdW5pMjsKKyAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyByZXBzaXplLS0+MDsgKytpLCArK3N0cikgeworICAgICAgICAgICAgICAgICAgICBjID0gUHlVbmljb2RlX1JFQURfQ0hBUihyZXB1bmljb2RlLCBpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPj0gbGltaXQpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlX2VuY29kZV9leGNlcHRpb24oJmV4YywgZW5jb2RpbmcsIHN0YXJ0cCwgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZXBvcywgdW5pY29kZXBvcysxLCByZWFzb24pOworICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2VfZW5jb2RlX2V4Y2VwdGlvbigmZXhjLCBlbmNvZGluZywgdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zLCBwb3MrMSwgcmVhc29uKTsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXB1bmljb2RlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAqc3RyID0gKGNoYXIpYzsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcCA9IHN0YXJ0cCArIG5ld3BvczsKKyAgICAgICAgICAgICAgICBwb3MgPSBuZXdwb3M7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHJlcHVuaWNvZGUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC00Nzk4LDMzICs2NTA1LDU3IEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKLVB5T2JqZWN0ICpQeVVuaWNvZGVfRW5jb2RlTGF0aW4xKGNvbnN0IFB5X1VOSUNPREUgKnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCisvKiBEZXByZWNhdGVkICovCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRW5jb2RlTGF0aW4xKGNvbnN0IFB5X1VOSUNPREUgKnAsCisgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQogewotICAgIHJldHVybiB1bmljb2RlX2VuY29kZV91Y3MxKHAsIHNpemUsIGVycm9ycywgMjU2KTsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICp1bmljb2RlID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHAsIHNpemUpOworICAgIGlmICh1bmljb2RlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJlc3VsdCA9IHVuaWNvZGVfZW5jb2RlX3VjczEodW5pY29kZSwgZXJyb3JzLCAyNTYpOworICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0FzTGF0aW4xU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlKQorUHlPYmplY3QgKgorX1B5VW5pY29kZV9Bc0xhdGluMVN0cmluZyhQeU9iamVjdCAqdW5pY29kZSwgY29uc3QgY2hhciAqZXJyb3JzKQogewogICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHVuaWNvZGUpKSB7CiAgICAgICAgIFB5RXJyX0JhZEFyZ3VtZW50KCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZUxhdGluMShQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgLyogRmFzdCBwYXRoOiBpZiBpdCBpcyBhIG9uZS1ieXRlIHN0cmluZywgY29uc3RydWN0CisgICAgICAgYnl0ZXMgb2JqZWN0IGRpcmVjdGx5LiAqLworICAgIGlmIChQeVVuaWNvZGVfS0lORCh1bmljb2RlKSA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCkKKyAgICAgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoUHlVbmljb2RlX0RBVEEodW5pY29kZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpKTsKKyAgICAvKiBOb24tTGF0aW4tMSBjaGFyYWN0ZXJzIHByZXNlbnQuIERlZmVyIHRvIGFib3ZlIGZ1bmN0aW9uIHRvCisgICAgICAgcmFpc2UgdGhlIGV4Y2VwdGlvbi4gKi8KKyAgICByZXR1cm4gdW5pY29kZV9lbmNvZGVfdWNzMSh1bmljb2RlLCBlcnJvcnMsIDI1Nik7Cit9CisKK1B5T2JqZWN0KgorUHlVbmljb2RlX0FzTGF0aW4xU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlKQoreworICAgIHJldHVybiBfUHlVbmljb2RlX0FzTGF0aW4xU3RyaW5nKHVuaWNvZGUsIE5VTEwpOwogfQogCiAvKiAtLS0gNy1iaXQgQVNDSUkgQ29kZWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotUHlPYmplY3QgKlB5VW5pY29kZV9EZWNvZGVBU0NJSShjb25zdCBjaGFyICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9EZWNvZGVBU0NJSShjb25zdCBjaGFyICpzLAorICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7CiAgICAgY29uc3QgY2hhciAqc3RhcnRzID0gczsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnY7Ci0gICAgUHlfVU5JQ09ERSAqcDsKKyAgICBQeU9iamVjdCAqdW5pY29kZTsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOwogICAgIFB5X3NzaXplX3Qgc3RhcnRpbnBvczsKICAgICBQeV9zc2l6ZV90IGVuZGlucG9zOwogICAgIFB5X3NzaXplX3Qgb3V0cG9zOwpAQCAtNDgzMiw3MCArNjU2Myw5OSBAQAogICAgIFB5T2JqZWN0ICplcnJvckhhbmRsZXIgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpleGMgPSBOVUxMOwogCi0gICAgLyogQVNDSUkgaXMgZXF1aXZhbGVudCB0byB0aGUgZmlyc3QgMTI4IG9yZGluYWxzIGluIFVuaWNvZGUuICovCi0gICAgaWYgKHNpemUgPT0gMSAmJiAqKHVuc2lnbmVkIGNoYXIqKXMgPCAxMjgpIHsKLSAgICAgICAgUHlfVU5JQ09ERSByID0gKih1bnNpZ25lZCBjaGFyKilzOwotICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKCZyLCAxKTsKKyAgICBpZiAoc2l6ZSA9PSAwKSB7CisgICAgICAgIFB5X0lOQ1JFRih1bmljb2RlX2VtcHR5KTsKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfZW1wdHk7CiAgICAgfQogCi0gICAgdiA9IF9QeVVuaWNvZGVfTmV3KHNpemUpOwotICAgIGlmICh2ID09IE5VTEwpCisgICAgLyogQVNDSUkgaXMgZXF1aXZhbGVudCB0byB0aGUgZmlyc3QgMTI4IG9yZGluYWxzIGluIFVuaWNvZGUuICovCisgICAgaWYgKHNpemUgPT0gMSAmJiAodW5zaWduZWQgY2hhcilzWzBdIDwgMTI4KQorICAgICAgICByZXR1cm4gZ2V0X2xhdGluMV9jaGFyKCh1bnNpZ25lZCBjaGFyKXNbMF0pOworCisgICAgdW5pY29kZSA9IFB5VW5pY29kZV9OZXcoc2l6ZSwgMTI3KTsKKyAgICBpZiAodW5pY29kZSA9PSBOVUxMKQogICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgaWYgKHNpemUgPT0gMCkKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXY7Ci0gICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHYpOworCiAgICAgZSA9IHMgKyBzaXplOworICAgIGRhdGEgPSBQeVVuaWNvZGVfMUJZVEVfREFUQSh1bmljb2RlKTsKKyAgICBvdXRwb3MgPSBhc2NpaV9kZWNvZGUocywgZSwgKFB5X1VDUzEgKilkYXRhKTsKKyAgICBpZiAob3V0cG9zID09IHNpemUpCisgICAgICAgIHJldHVybiB1bmljb2RlOworCisgICAgcyArPSBvdXRwb3M7CisgICAga2luZCA9IFB5VW5pY29kZV8xQllURV9LSU5EOwogICAgIHdoaWxlIChzIDwgZSkgewogICAgICAgICByZWdpc3RlciB1bnNpZ25lZCBjaGFyIGMgPSAodW5zaWduZWQgY2hhcikqczsKICAgICAgICAgaWYgKGMgPCAxMjgpIHsKLSAgICAgICAgICAgICpwKysgPSBjOworICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIG91dHBvcysrLCBjKTsKICAgICAgICAgICAgICsrczsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSBzLXN0YXJ0czsKICAgICAgICAgICAgIGVuZGlucG9zID0gc3RhcnRpbnBvcyArIDE7Ci0gICAgICAgICAgICBvdXRwb3MgPSBwIC0gKFB5X1VOSUNPREUgKilQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KTsKICAgICAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcigKICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLCAmZXJyb3JIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgICAiYXNjaWkiLCAib3JkaW5hbCBub3QgaW4gcmFuZ2UoMTI4KSIsCiAgICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAgICAgJnYsICZvdXRwb3MsICZwKSkKKyAgICAgICAgICAgICAgICAgICAgJnVuaWNvZGUsICZvdXRwb3MpKQogICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh1bmljb2RlKTsKKyAgICAgICAgICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQSh1bmljb2RlKTsKICAgICAgICAgfQogICAgIH0KLSAgICBpZiAocCAtIFB5VW5pY29kZV9BU19VTklDT0RFKHYpIDwgUHlVbmljb2RlX0dFVF9TSVpFKHYpKQotICAgICAgICBpZiAoX1B5VW5pY29kZV9SZXNpemUoJnYsIHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSkgPCAwKQotICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgIGlmICh1bmljb2RlX3Jlc2l6ZSgmdW5pY29kZSwgb3V0cG9zKSA8IDApCisgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CiAgICAgUHlfWERFQ1JFRihleGMpOwotICAgIHJldHVybiAoUHlPYmplY3QgKil2OworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kodW5pY29kZSwgMSkpOworICAgIHJldHVybiB1bmljb2RlOwogCiAgIG9uRXJyb3I6Ci0gICAgUHlfWERFQ1JFRih2KTsKKyAgICBQeV9YREVDUkVGKHVuaWNvZGUpOwogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICBQeV9YREVDUkVGKGV4Yyk7CiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKLVB5T2JqZWN0ICpQeVVuaWNvZGVfRW5jb2RlQVNDSUkoY29uc3QgUHlfVU5JQ09ERSAqcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCisvKiBEZXByZWNhdGVkICovCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRW5jb2RlQVNDSUkoY29uc3QgUHlfVU5JQ09ERSAqcCwKKyAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQogewotICAgIHJldHVybiB1bmljb2RlX2VuY29kZV91Y3MxKHAsIHNpemUsIGVycm9ycywgMTI4KTsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICp1bmljb2RlID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHAsIHNpemUpOworICAgIGlmICh1bmljb2RlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJlc3VsdCA9IHVuaWNvZGVfZW5jb2RlX3VjczEodW5pY29kZSwgZXJyb3JzLCAxMjgpOworICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0FzQVNDSUlTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUpCitQeU9iamVjdCAqCitfUHlVbmljb2RlX0FzQVNDSUlTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUsIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKICAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh1bmljb2RlKSkgewogICAgICAgICBQeUVycl9CYWRBcmd1bWVudCgpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVBU0NJSShQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodW5pY29kZSkgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIC8qIEZhc3QgcGF0aDogaWYgaXQgaXMgYW4gQVNDSUktb25seSBzdHJpbmcsIGNvbnN0cnVjdCBieXRlcyBvYmplY3QKKyAgICAgICBkaXJlY3RseS4gRWxzZSBkZWZlciB0byBhYm92ZSBmdW5jdGlvbiB0byByYWlzZSB0aGUgZXhjZXB0aW9uLiAqLworICAgIGlmIChQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUodW5pY29kZSkgPCAxMjgpCisgICAgICAgIHJldHVybiBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmljb2RlKSk7CisgICAgcmV0dXJuIHVuaWNvZGVfZW5jb2RlX3VjczEodW5pY29kZSwgZXJyb3JzLCAxMjgpOwogfQogCi0jaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiBkZWZpbmVkKEhBVkVfVVNBQkxFX1dDSEFSX1QpCitQeU9iamVjdCAqCitQeVVuaWNvZGVfQXNBU0NJSVN0cmluZyhQeU9iamVjdCAqdW5pY29kZSkKK3sKKyAgICByZXR1cm4gX1B5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nKHVuaWNvZGUsIE5VTEwpOworfQorCisjaWZkZWYgSEFWRV9NQkNTCiAKIC8qIC0tLSBNQkNTIGNvZGVjcyBmb3IgV2luZG93cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwogCkBAIC00OTAzLDMzNiArNjY2Myw4NDIgQEAKICNkZWZpbmUgTkVFRF9SRVRSWQogI2VuZGlmCiAKLS8qIFhYWCBUaGlzIGNvZGUgaXMgbGltaXRlZCB0byAidHJ1ZSIgZG91YmxlLWJ5dGUgZW5jb2RpbmdzLCBhcwotICAgYSkgaXQgYXNzdW1lcyBhbiBpbmNvbXBsZXRlIGNoYXJhY3RlciBjb25zaXN0cyBvZiBhIHNpbmdsZSBieXRlLCBhbmQKLSAgIGIpIElzREJDU0xlYWRCeXRlIChwcm9iYWJseSkgZG9lcyBub3Qgd29yayBmb3Igbm9uLURCQ1MgbXVsdGktYnl0ZQotICAgZW5jb2RpbmdzLCBzZWUgSXNEQkNTTGVhZEJ5dGVFeCBkb2N1bWVudGF0aW9uLiAqLworI2lmbmRlZiBXQ19FUlJfSU5WQUxJRF9DSEFSUworIyAgZGVmaW5lIFdDX0VSUl9JTlZBTElEX0NIQVJTIDB4MDA4MAorI2VuZGlmCiAKLXN0YXRpYyBpbnQgaXNfZGJjc19sZWFkX2J5dGUoY29uc3QgY2hhciAqcywgaW50IG9mZnNldCkKK3N0YXRpYyBjaGFyKgorY29kZV9wYWdlX25hbWUoVUlOVCBjb2RlX3BhZ2UsIFB5T2JqZWN0ICoqb2JqKQoreworICAgICpvYmogPSBOVUxMOworICAgIGlmIChjb2RlX3BhZ2UgPT0gQ1BfQUNQKQorICAgICAgICByZXR1cm4gIm1iY3MiOworICAgIGlmIChjb2RlX3BhZ2UgPT0gQ1BfVVRGNykKKyAgICAgICAgcmV0dXJuICJDUF9VVEY3IjsKKyAgICBpZiAoY29kZV9wYWdlID09IENQX1VURjgpCisgICAgICAgIHJldHVybiAiQ1BfVVRGOCI7CisKKyAgICAqb2JqID0gUHlCeXRlc19Gcm9tRm9ybWF0KCJjcCV1IiwgY29kZV9wYWdlKTsKKyAgICBpZiAoKm9iaiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXR1cm4gUHlCeXRlc19BU19TVFJJTkcoKm9iaik7Cit9CisKK3N0YXRpYyBpbnQKK2lzX2RiY3NfbGVhZF9ieXRlKFVJTlQgY29kZV9wYWdlLCBjb25zdCBjaGFyICpzLCBpbnQgb2Zmc2V0KQogewogICAgIGNvbnN0IGNoYXIgKmN1cnIgPSBzICsgb2Zmc2V0OworICAgIGNvbnN0IGNoYXIgKnByZXY7CiAKLSAgICBpZiAoSXNEQkNTTGVhZEJ5dGUoKmN1cnIpKSB7Ci0gICAgICAgIGNvbnN0IGNoYXIgKnByZXYgPSBDaGFyUHJldihzLCBjdXJyKTsKLSAgICAgICAgcmV0dXJuIChwcmV2ID09IGN1cnIpIHx8ICFJc0RCQ1NMZWFkQnl0ZSgqcHJldikgfHwgKGN1cnIgLSBwcmV2ID09IDIpOwotICAgIH0KKyAgICBpZiAoIUlzREJDU0xlYWRCeXRlRXgoY29kZV9wYWdlLCAqY3VycikpCisgICAgICAgIHJldHVybiAwOworCisgICAgcHJldiA9IENoYXJQcmV2RXhBKGNvZGVfcGFnZSwgcywgY3VyciwgMCk7CisgICAgaWYgKHByZXYgPT0gY3VycikKKyAgICAgICAgcmV0dXJuIDE7CisgICAgLyogRklYTUU6IFRoaXMgY29kZSBpcyBsaW1pdGVkIHRvICJ0cnVlIiBkb3VibGUtYnl0ZSBlbmNvZGluZ3MsCisgICAgICAgYXMgaXQgYXNzdW1lcyBhbiBpbmNvbXBsZXRlIGNoYXJhY3RlciBjb25zaXN0cyBvZiBhIHNpbmdsZQorICAgICAgIGJ5dGUuICovCisgICAgaWYgKGN1cnIgLSBwcmV2ID09IDIpCisgICAgICAgIHJldHVybiAxOworICAgIGlmICghSXNEQkNTTGVhZEJ5dGVFeChjb2RlX3BhZ2UsICpwcmV2KSkKKyAgICAgICAgcmV0dXJuIDE7CiAgICAgcmV0dXJuIDA7CiB9CiAKLS8qCi0gKiBEZWNvZGUgTUJDUyBzdHJpbmcgaW50byB1bmljb2RlIG9iamVjdC4gSWYgJ2ZpbmFsJyBpcyBzZXQsIGNvbnZlcnRzCi0gKiB0cmFpbGluZyBsZWFkLWJ5dGUgdG9vLiBSZXR1cm5zIGNvbnN1bWVkIHNpemUgaWYgc3VjY2VlZCwgLTEgb3RoZXJ3aXNlLgotICovCi1zdGF0aWMgaW50IGRlY29kZV9tYmNzKFB5VW5pY29kZU9iamVjdCAqKnYsCi0gICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnMsIC8qIE1CQ1Mgc3RyaW5nICovCi0gICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplLCAvKiBzaXplb2YgTUJDUyBzdHJpbmcgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgaW50IGZpbmFsLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCitzdGF0aWMgRFdPUkQKK2RlY29kZV9jb2RlX3BhZ2VfZmxhZ3MoVUlOVCBjb2RlX3BhZ2UpCiB7Ci0gICAgUHlfVU5JQ09ERSAqcDsKLSAgICBQeV9zc2l6ZV90IG47Ci0gICAgRFdPUkQgdXNpemU7Ci0gICAgRFdPUkQgZmxhZ3M7Ci0KLSAgICBhc3NlcnQoc2l6ZSA+PSAwKTsKLQotICAgIC8qIGNoZWNrIGFuZCBoYW5kbGUgJ2Vycm9ycycgYXJnICovCi0gICAgaWYgKGVycm9ycz09TlVMTCB8fCBzdHJjbXAoZXJyb3JzLCAic3RyaWN0Iik9PTApCi0gICAgICAgIGZsYWdzID0gTUJfRVJSX0lOVkFMSURfQ0hBUlM7Ci0gICAgZWxzZSBpZiAoc3RyY21wKGVycm9ycywgImlnbm9yZSIpPT0wKQotICAgICAgICBmbGFncyA9IDA7Ci0gICAgZWxzZSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgIm1iY3MgZW5jb2RpbmcgZG9lcyBub3Qgc3VwcG9ydCBlcnJvcnM9JyVzJyIsCi0gICAgICAgICAgICAgICAgICAgICBlcnJvcnMpOwotICAgICAgICByZXR1cm4gLTE7CisgICAgaWYgKGNvZGVfcGFnZSA9PSBDUF9VVEY3KSB7CisgICAgICAgIC8qIFRoZSBDUF9VVEY3IGRlY29kZXIgb25seSBzdXBwb3J0cyBmbGFncz0wICovCisgICAgICAgIHJldHVybiAwOwogICAgIH0KKyAgICBlbHNlCisgICAgICAgIHJldHVybiBNQl9FUlJfSU5WQUxJRF9DSEFSUzsKK30KIAotICAgIC8qIFNraXAgdHJhaWxpbmcgbGVhZC1ieXRlIHVubGVzcyAnZmluYWwnIGlzIHNldCAqLwotICAgIGlmICghZmluYWwgJiYgc2l6ZSA+PSAxICYmIGlzX2RiY3NfbGVhZF9ieXRlKHMsIHNpemUgLSAxKSkKLSAgICAgICAgLS1zaXplOworLyoKKyAqIERlY29kZSBhIGJ5dGUgc3RyaW5nIGZyb20gYSBXaW5kb3dzIGNvZGUgcGFnZSBpbnRvIHVuaWNvZGUgb2JqZWN0IGluIHN0cmljdAorICogbW9kZS4KKyAqCisgKiBSZXR1cm5zIGNvbnN1bWVkIHNpemUgaWYgc3VjY2VlZCwgcmV0dXJucyAtMiBvbiBkZWNvZGUgZXJyb3IsIG9yIHJhaXNlIGEKKyAqIFdpbmRvd3NFcnJvciBhbmQgcmV0dXJucyAtMSBvbiBvdGhlciBlcnJvci4KKyAqLworc3RhdGljIGludAorZGVjb2RlX2NvZGVfcGFnZV9zdHJpY3QoVUlOVCBjb2RlX3BhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqKnYsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICppbiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbnNpemUpCit7CisgICAgY29uc3QgRFdPUkQgZmxhZ3MgPSBkZWNvZGVfY29kZV9wYWdlX2ZsYWdzKGNvZGVfcGFnZSk7CisgICAgd2NoYXJfdCAqb3V0OworICAgIERXT1JEIG91dHNpemU7CiAKICAgICAvKiBGaXJzdCBnZXQgdGhlIHNpemUgb2YgdGhlIHJlc3VsdCAqLwotICAgIGlmIChzaXplID4gMCkgewotICAgICAgICB1c2l6ZSA9IE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCBmbGFncywgcywgc2l6ZSwgTlVMTCwgMCk7Ci0gICAgICAgIGlmICh1c2l6ZT09MCkKLSAgICAgICAgICAgIGdvdG8gbWJjc19kZWNvZGVfZXJyb3I7Ci0gICAgfSBlbHNlCi0gICAgICAgIHVzaXplID0gMDsKKyAgICBhc3NlcnQoaW5zaXplID4gMCk7CisgICAgb3V0c2l6ZSA9IE11bHRpQnl0ZVRvV2lkZUNoYXIoY29kZV9wYWdlLCBmbGFncywgaW4sIGluc2l6ZSwgTlVMTCwgMCk7CisgICAgaWYgKG91dHNpemUgPD0gMCkKKyAgICAgICAgZ290byBlcnJvcjsKIAogICAgIGlmICgqdiA9PSBOVUxMKSB7CiAgICAgICAgIC8qIENyZWF0ZSB1bmljb2RlIG9iamVjdCAqLwotICAgICAgICAqdiA9IF9QeVVuaWNvZGVfTmV3KHVzaXplKTsKKyAgICAgICAgLyogRklYTUU6IGRvbid0IHVzZSBfUHlVbmljb2RlX05ldygpLCBidXQgYWxsb2NhdGUgYSB3Y2hhcl90KiBidWZmZXIgKi8KKyAgICAgICAgKnYgPSAoUHlPYmplY3QqKV9QeVVuaWNvZGVfTmV3KG91dHNpemUpOwogICAgICAgICBpZiAoKnYgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgbiA9IDA7CisgICAgICAgIG91dCA9IFB5VW5pY29kZV9BU19VTklDT0RFKCp2KTsKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIC8qIEV4dGVuZCB1bmljb2RlIG9iamVjdCAqLwotICAgICAgICBuID0gUHlVbmljb2RlX0dFVF9TSVpFKCp2KTsKLSAgICAgICAgaWYgKF9QeVVuaWNvZGVfUmVzaXplKHYsIG4gKyB1c2l6ZSkgPCAwKQorICAgICAgICBQeV9zc2l6ZV90IG4gPSBQeVVuaWNvZGVfR0VUX1NJWkUoKnYpOworICAgICAgICBpZiAodW5pY29kZV9yZXNpemUodiwgbiArIG91dHNpemUpIDwgMCkKICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgb3V0ID0gUHlVbmljb2RlX0FTX1VOSUNPREUoKnYpICsgbjsKICAgICB9CiAKICAgICAvKiBEbyB0aGUgY29udmVyc2lvbiAqLwotICAgIGlmICh1c2l6ZSA+IDApIHsKLSAgICAgICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKCp2KSArIG47Ci0gICAgICAgIGlmICgwID09IE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCBmbGFncywgcywgc2l6ZSwgcCwgdXNpemUpKSB7Ci0gICAgICAgICAgICBnb3RvIG1iY3NfZGVjb2RlX2Vycm9yOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBzaXplOworICAgIG91dHNpemUgPSBNdWx0aUJ5dGVUb1dpZGVDaGFyKGNvZGVfcGFnZSwgZmxhZ3MsIGluLCBpbnNpemUsIG91dCwgb3V0c2l6ZSk7CisgICAgaWYgKG91dHNpemUgPD0gMCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICByZXR1cm4gaW5zaXplOwogCi1tYmNzX2RlY29kZV9lcnJvcjoKLSAgICAvKiBJZiB0aGUgbGFzdCBlcnJvciB3YXMgRVJST1JfTk9fVU5JQ09ERV9UUkFOU0xBVElPTiwgdGhlbgotICAgICAgIHdlIHJhaXNlIGEgVW5pY29kZURlY29kZUVycm9yIC0gZWxzZSBpdCBpcyBhICdnZW5lcmljJwotICAgICAgIHdpbmRvd3MgZXJyb3IKLSAgICAgKi8KLSAgICBpZiAoR2V0TGFzdEVycm9yKCk9PUVSUk9SX05PX1VOSUNPREVfVFJBTlNMQVRJT04pIHsKLSAgICAgICAgLyogSWRlYWxseSwgd2Ugc2hvdWxkIGdldCByZWFzb24gZnJvbSBGb3JtYXRNZXNzYWdlIC0gdGhpcwotICAgICAgICAgICBpcyB0aGUgV2luZG93cyAyMDAwIEVuZ2xpc2ggdmVyc2lvbiBvZiB0aGUgbWVzc2FnZQotICAgICAgICAqLwotICAgICAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKLSAgICAgICAgY29uc3QgY2hhciAqcmVhc29uID0gIk5vIG1hcHBpbmcgZm9yIHRoZSBVbmljb2RlIGNoYXJhY3RlciBleGlzdHMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW4gdGhlIHRhcmdldCBtdWx0aS1ieXRlIGNvZGUgcGFnZS4iOwotICAgICAgICBtYWtlX2RlY29kZV9leGNlcHRpb24oJmV4YywgIm1iY3MiLCBzLCBzaXplLCAwLCAwLCByZWFzb24pOwotICAgICAgICBpZiAoZXhjICE9IE5VTEwpIHsKLSAgICAgICAgICAgIFB5Q29kZWNfU3RyaWN0RXJyb3JzKGV4Yyk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYoZXhjKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyV2l0aEZpbGVuYW1lKDAsIE5VTEwpOwotICAgIH0KK2Vycm9yOgorICAgIGlmIChHZXRMYXN0RXJyb3IoKSA9PSBFUlJPUl9OT19VTklDT0RFX1RSQU5TTEFUSU9OKQorICAgICAgICByZXR1cm4gLTI7CisgICAgUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7CiAgICAgcmV0dXJuIC0xOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX0RlY29kZU1CQ1NTdGF0ZWZ1bChjb25zdCBjaGFyICpzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqY29uc3VtZWQpCisvKgorICogRGVjb2RlIGEgYnl0ZSBzdHJpbmcgZnJvbSBhIGNvZGUgcGFnZSBpbnRvIHVuaWNvZGUgb2JqZWN0IHdpdGggYW4gZXJyb3IKKyAqIGhhbmRsZXIuCisgKgorICogUmV0dXJucyBjb25zdW1lZCBzaXplIGlmIHN1Y2NlZWQsIG9yIHJhaXNlIGEgV2luZG93c0Vycm9yIG9yCisgKiBVbmljb2RlRGVjb2RlRXJyb3IgZXhjZXB0aW9uIGFuZCByZXR1cm5zIC0xIG9uIGVycm9yLgorICovCitzdGF0aWMgaW50CitkZWNvZGVfY29kZV9wYWdlX2Vycm9ycyhVSU5UIGNvZGVfcGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqdiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmluLCBjb25zdCBpbnQgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnYgPSBOVUxMOwotICAgIGludCBkb25lOworICAgIGNvbnN0IGNoYXIgKnN0YXJ0aW4gPSBpbjsKKyAgICBjb25zdCBjaGFyICplbmRpbiA9IGluICsgc2l6ZTsKKyAgICBjb25zdCBEV09SRCBmbGFncyA9IGRlY29kZV9jb2RlX3BhZ2VfZmxhZ3MoY29kZV9wYWdlKTsKKyAgICAvKiBJZGVhbGx5LCB3ZSBzaG91bGQgZ2V0IHJlYXNvbiBmcm9tIEZvcm1hdE1lc3NhZ2UuIFRoaXMgaXMgdGhlIFdpbmRvd3MKKyAgICAgICAyMDAwIEVuZ2xpc2ggdmVyc2lvbiBvZiB0aGUgbWVzc2FnZS4gKi8KKyAgICBjb25zdCBjaGFyICpyZWFzb24gPSAiTm8gbWFwcGluZyBmb3IgdGhlIFVuaWNvZGUgY2hhcmFjdGVyIGV4aXN0cyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgImluIHRoZSB0YXJnZXQgY29kZSBwYWdlLiI7CisgICAgLyogZWFjaCBzdGVwIGNhbm5vdCBkZWNvZGUgbW9yZSB0aGFuIDEgY2hhcmFjdGVyLCBidXQgYSBjaGFyYWN0ZXIgY2FuIGJlCisgICAgICAgcmVwcmVzZW50ZWQgYXMgYSBzdXJyb2dhdGUgcGFpciAqLworICAgIHdjaGFyX3QgYnVmZmVyWzJdLCAqc3RhcnRvdXQsICpvdXQ7CisgICAgaW50IGluc2l6ZSwgb3V0c2l6ZTsKKyAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTDsKKyAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKKyAgICBQeU9iamVjdCAqZW5jb2Rpbmdfb2JqID0gTlVMTDsKKyAgICBjaGFyICplbmNvZGluZzsKKyAgICBEV09SRCBlcnI7CisgICAgaW50IHJldCA9IC0xOworCisgICAgYXNzZXJ0KHNpemUgPiAwKTsKKworICAgIGVuY29kaW5nID0gY29kZV9wYWdlX25hbWUoY29kZV9wYWdlLCAmZW5jb2Rpbmdfb2JqKTsKKyAgICBpZiAoZW5jb2RpbmcgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKGVycm9ycyA9PSBOVUxMIHx8IHN0cmNtcChlcnJvcnMsICJzdHJpY3QiKSA9PSAwKSB7CisgICAgICAgIC8qIFRoZSBsYXN0IGVycm9yIHdhcyBFUlJPUl9OT19VTklDT0RFX1RSQU5TTEFUSU9OLCB0aGVuIHdlIHJhaXNlIGEKKyAgICAgICAgICAgVW5pY29kZURlY29kZUVycm9yLiAqLworICAgICAgICBtYWtlX2RlY29kZV9leGNlcHRpb24oJmV4YywgZW5jb2RpbmcsIGluLCBzaXplLCAwLCAwLCByZWFzb24pOworICAgICAgICBpZiAoZXhjICE9IE5VTEwpIHsKKyAgICAgICAgICAgIFB5Q29kZWNfU3RyaWN0RXJyb3JzKGV4Yyk7CisgICAgICAgICAgICBQeV9DTEVBUihleGMpOworICAgICAgICB9CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorCisgICAgaWYgKCp2ID09IE5VTEwpIHsKKyAgICAgICAgLyogQ3JlYXRlIHVuaWNvZGUgb2JqZWN0ICovCisgICAgICAgIGlmIChzaXplID4gUFlfU1NJWkVfVF9NQVggLyAoUHlfc3NpemVfdClQeV9BUlJBWV9MRU5HVEgoYnVmZmVyKSkgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgLyogRklYTUU6IGRvbid0IHVzZSBfUHlVbmljb2RlX05ldygpLCBidXQgYWxsb2NhdGUgYSB3Y2hhcl90KiBidWZmZXIgKi8KKyAgICAgICAgKnYgPSAoUHlPYmplY3QqKV9QeVVuaWNvZGVfTmV3KHNpemUgKiBQeV9BUlJBWV9MRU5HVEgoYnVmZmVyKSk7CisgICAgICAgIGlmICgqdiA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgc3RhcnRvdXQgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSgqdik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvKiBFeHRlbmQgdW5pY29kZSBvYmplY3QgKi8KKyAgICAgICAgUHlfc3NpemVfdCBuID0gUHlVbmljb2RlX0dFVF9TSVpFKCp2KTsKKyAgICAgICAgaWYgKHNpemUgPiAoUFlfU1NJWkVfVF9NQVggLSBuKSAvIChQeV9zc2l6ZV90KVB5X0FSUkFZX0xFTkdUSChidWZmZXIpKSB7CisgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICBpZiAodW5pY29kZV9yZXNpemUodiwgbiArIHNpemUgKiBQeV9BUlJBWV9MRU5HVEgoYnVmZmVyKSkgPCAwKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgc3RhcnRvdXQgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSgqdikgKyBuOworICAgIH0KKworICAgIC8qIERlY29kZSB0aGUgYnl0ZSBzdHJpbmcgY2hhcmFjdGVyIHBlciBjaGFyYWN0ZXIgKi8KKyAgICBvdXQgPSBzdGFydG91dDsKKyAgICB3aGlsZSAoaW4gPCBlbmRpbikKKyAgICB7CisgICAgICAgIC8qIERlY29kZSBhIGNoYXJhY3RlciAqLworICAgICAgICBpbnNpemUgPSAxOworICAgICAgICBkbworICAgICAgICB7CisgICAgICAgICAgICBvdXRzaXplID0gTXVsdGlCeXRlVG9XaWRlQ2hhcihjb2RlX3BhZ2UsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4sIGluc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciwgUHlfQVJSQVlfTEVOR1RIKGJ1ZmZlcikpOworICAgICAgICAgICAgaWYgKG91dHNpemUgPiAwKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZXJyID0gR2V0TGFzdEVycm9yKCk7CisgICAgICAgICAgICBpZiAoZXJyICE9IEVSUk9SX05PX1VOSUNPREVfVFJBTlNMQVRJT04KKyAgICAgICAgICAgICAgICAmJiBlcnIgIT0gRVJST1JfSU5TVUZGSUNJRU5UX0JVRkZFUikKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRGcm9tV2luZG93c0VycigwKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5zaXplKys7CisgICAgICAgIH0KKyAgICAgICAgLyogND1tYXhpbXVtIGxlbmd0aCBvZiBhIFVURi04IHNlcXVlbmNlICovCisgICAgICAgIHdoaWxlIChpbnNpemUgPD0gNCAmJiAoaW4gKyBpbnNpemUpIDw9IGVuZGluKTsKKworICAgICAgICBpZiAob3V0c2l6ZSA8PSAwKSB7CisgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0aW5wb3MsIGVuZGlucG9zLCBvdXRwb3M7CisKKyAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSBpbiAtIHN0YXJ0aW47CisgICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MgKyAxOworICAgICAgICAgICAgb3V0cG9zID0gb3V0IC0gUHlVbmljb2RlX0FTX1VOSUNPREUoKnYpOworICAgICAgICAgICAgaWYgKHVuaWNvZGVfZGVjb2RlX2NhbGxfZXJyb3JoYW5kbGVyKAorICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nLCByZWFzb24sCisgICAgICAgICAgICAgICAgICAgICZzdGFydGluLCAmZW5kaW4sICZzdGFydGlucG9zLCAmZW5kaW5wb3MsICZleGMsICZpbiwKKyAgICAgICAgICAgICAgICAgICAgdiwgJm91dHBvcykpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG91dCA9IFB5VW5pY29kZV9BU19VTklDT0RFKCp2KSArIG91dHBvczsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGluICs9IGluc2l6ZTsKKyAgICAgICAgICAgIG1lbWNweShvdXQsIGJ1ZmZlciwgb3V0c2l6ZSAqIHNpemVvZih3Y2hhcl90KSk7CisgICAgICAgICAgICBvdXQgKz0gb3V0c2l6ZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8qIHdyaXRlIGEgTlVMIGNoYXJhY3RlciBhdCB0aGUgZW5kICovCisgICAgKm91dCA9IDA7CisKKyAgICAvKiBFeHRlbmQgdW5pY29kZSBvYmplY3QgKi8KKyAgICBvdXRzaXplID0gb3V0IC0gc3RhcnRvdXQ7CisgICAgYXNzZXJ0KG91dHNpemUgPD0gUHlVbmljb2RlX1dTVFJfTEVOR1RIKCp2KSk7CisgICAgaWYgKHVuaWNvZGVfcmVzaXplKHYsIG91dHNpemUpIDwgMCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICByZXQgPSBzaXplOworCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKGVuY29kaW5nX29iaik7CisgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOworICAgIFB5X1hERUNSRUYoZXhjKTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZGVjb2RlX2NvZGVfcGFnZV9zdGF0ZWZ1bChpbnQgY29kZV9wYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzLCBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycywgUHlfc3NpemVfdCAqY29uc3VtZWQpCit7CisgICAgUHlPYmplY3QgKnYgPSBOVUxMOworICAgIGludCBjaHVua19zaXplLCBmaW5hbCwgY29udmVydGVkLCBkb25lOworCisgICAgaWYgKGNvZGVfcGFnZSA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJpbnZhbGlkIGNvZGUgcGFnZSBudW1iZXIiKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQogCiAgICAgaWYgKGNvbnN1bWVkKQogICAgICAgICAqY29uc3VtZWQgPSAwOwogCisgICAgZG8KKyAgICB7CiAjaWZkZWYgTkVFRF9SRVRSWQotICByZXRyeToKLSAgICBpZiAoc2l6ZSA+IElOVF9NQVgpCi0gICAgICAgIGRvbmUgPSBkZWNvZGVfbWJjcygmdiwgcywgSU5UX01BWCwgMCwgZXJyb3JzKTsKLSAgICBlbHNlCisgICAgICAgIGlmIChzaXplID4gSU5UX01BWCkgeworICAgICAgICAgICAgY2h1bmtfc2l6ZSA9IElOVF9NQVg7CisgICAgICAgICAgICBmaW5hbCA9IDA7CisgICAgICAgICAgICBkb25lID0gMDsKKyAgICAgICAgfQorICAgICAgICBlbHNlCiAjZW5kaWYKLSAgICAgICAgZG9uZSA9IGRlY29kZV9tYmNzKCZ2LCBzLCAoaW50KXNpemUsICFjb25zdW1lZCwgZXJyb3JzKTsKKyAgICAgICAgeworICAgICAgICAgICAgY2h1bmtfc2l6ZSA9IChpbnQpc2l6ZTsKKyAgICAgICAgICAgIGZpbmFsID0gKGNvbnN1bWVkID09IE5VTEwpOworICAgICAgICAgICAgZG9uZSA9IDE7CisgICAgICAgIH0KIAotICAgIGlmIChkb25lIDwgMCkgewotICAgICAgICBQeV9YREVDUkVGKHYpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9CisgICAgICAgIC8qIFNraXAgdHJhaWxpbmcgbGVhZC1ieXRlIHVubGVzcyAnZmluYWwnIGlzIHNldCAqLworICAgICAgICBpZiAoIWZpbmFsICYmIGlzX2RiY3NfbGVhZF9ieXRlKGNvZGVfcGFnZSwgcywgY2h1bmtfc2l6ZSAtIDEpKQorICAgICAgICAgICAgLS1jaHVua19zaXplOwogCi0gICAgaWYgKGNvbnN1bWVkKQotICAgICAgICAqY29uc3VtZWQgKz0gZG9uZTsKKyAgICAgICAgaWYgKGNodW5rX3NpemUgPT0gMCAmJiBkb25lKSB7CisgICAgICAgICAgICBpZiAodiAhPSBOVUxMKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGVfZW1wdHkpOworICAgICAgICAgICAgcmV0dXJuIHVuaWNvZGVfZW1wdHk7CisgICAgICAgIH0KIAotI2lmZGVmIE5FRURfUkVUUlkKLSAgICBpZiAoc2l6ZSA+IElOVF9NQVgpIHsKLSAgICAgICAgcyArPSBkb25lOwotICAgICAgICBzaXplIC09IGRvbmU7Ci0gICAgICAgIGdvdG8gcmV0cnk7Ci0gICAgfQotI2VuZGlmCiAKLSAgICByZXR1cm4gKFB5T2JqZWN0ICopdjsKKyAgICAgICAgY29udmVydGVkID0gZGVjb2RlX2NvZGVfcGFnZV9zdHJpY3QoY29kZV9wYWdlLCAmdiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcywgY2h1bmtfc2l6ZSk7CisgICAgICAgIGlmIChjb252ZXJ0ZWQgPT0gLTIpCisgICAgICAgICAgICBjb252ZXJ0ZWQgPSBkZWNvZGVfY29kZV9wYWdlX2Vycm9ycyhjb2RlX3BhZ2UsICZ2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcywgY2h1bmtfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyk7CisgICAgICAgIGFzc2VydChjb252ZXJ0ZWQgIT0gMCk7CisKKyAgICAgICAgaWYgKGNvbnZlcnRlZCA8IDApIHsKKyAgICAgICAgICAgIFB5X1hERUNSRUYodik7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChjb25zdW1lZCkKKyAgICAgICAgICAgICpjb25zdW1lZCArPSBjb252ZXJ0ZWQ7CisKKyAgICAgICAgcyArPSBjb252ZXJ0ZWQ7CisgICAgICAgIHNpemUgLT0gY29udmVydGVkOworICAgIH0gd2hpbGUgKCFkb25lKTsKKworICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdCh2KTsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9EZWNvZGVNQkNTKGNvbnN0IGNoYXIgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9EZWNvZGVDb2RlUGFnZVN0YXRlZnVsKGludCBjb2RlX3BhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqY29uc3VtZWQpCit7CisgICAgcmV0dXJuIGRlY29kZV9jb2RlX3BhZ2Vfc3RhdGVmdWwoY29kZV9wYWdlLCBzLCBzaXplLCBlcnJvcnMsIGNvbnN1bWVkKTsKK30KKworUHlPYmplY3QgKgorUHlVbmljb2RlX0RlY29kZU1CQ1NTdGF0ZWZ1bChjb25zdCBjaGFyICpzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqY29uc3VtZWQpCit7CisgICAgcmV0dXJuIGRlY29kZV9jb2RlX3BhZ2Vfc3RhdGVmdWwoQ1BfQUNQLCBzLCBzaXplLCBlcnJvcnMsIGNvbnN1bWVkKTsKK30KKworUHlPYmplY3QgKgorUHlVbmljb2RlX0RlY29kZU1CQ1MoY29uc3QgY2hhciAqcywKKyAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKICAgICByZXR1cm4gUHlVbmljb2RlX0RlY29kZU1CQ1NTdGF0ZWZ1bChzLCBzaXplLCBlcnJvcnMsIE5VTEwpOwogfQogCitzdGF0aWMgRFdPUkQKK2VuY29kZV9jb2RlX3BhZ2VfZmxhZ3MoVUlOVCBjb2RlX3BhZ2UsIGNvbnN0IGNoYXIgKmVycm9ycykKK3sKKyAgICBpZiAoY29kZV9wYWdlID09IENQX1VURjgpIHsKKyAgICAgICAgaWYgKHdpbnZlci5kd01ham9yVmVyc2lvbiA+PSA2KQorICAgICAgICAgICAgLyogQ1BfVVRGOCBzdXBwb3J0cyBXQ19FUlJfSU5WQUxJRF9DSEFSUyBvbiBXaW5kb3dzIFZpc3RhCisgICAgICAgICAgICAgICBhbmQgbGF0ZXIgKi8KKyAgICAgICAgICAgIHJldHVybiBXQ19FUlJfSU5WQUxJRF9DSEFSUzsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgLyogQ1BfVVRGOCBvbmx5IHN1cHBvcnRzIGZsYWdzPTAgb24gV2luZG93cyBvbGRlciB0aGFuIFZpc3RhICovCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxzZSBpZiAoY29kZV9wYWdlID09IENQX1VURjcpIHsKKyAgICAgICAgLyogQ1BfVVRGNyBvbmx5IHN1cHBvcnRzIGZsYWdzPTAgKi8KKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBpZiAoZXJyb3JzICE9IE5VTEwgJiYgc3RyY21wKGVycm9ycywgInJlcGxhY2UiKSA9PSAwKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBXQ19OT19CRVNUX0ZJVF9DSEFSUzsKKyAgICB9Cit9CisKIC8qCi0gKiBDb252ZXJ0IHVuaWNvZGUgaW50byBzdHJpbmcgb2JqZWN0IChNQkNTKS4KLSAqIFJldHVybnMgMCBpZiBzdWNjZWVkLCAtMSBvdGhlcndpc2UuCisgKiBFbmNvZGUgYSBVbmljb2RlIHN0cmluZyB0byBhIFdpbmRvd3MgY29kZSBwYWdlIGludG8gYSBieXRlIHN0cmluZyBpbiBzdHJpY3QKKyAqIG1vZGUuCisgKgorICogUmV0dXJucyBjb25zdW1lZCBjaGFyYWN0ZXJzIGlmIHN1Y2NlZWQsIHJldHVybnMgLTIgb24gZW5jb2RlIGVycm9yLCBvciByYWlzZQorICogYSBXaW5kb3dzRXJyb3IgYW5kIHJldHVybnMgLTEgb24gb3RoZXIgZXJyb3IuCiAgKi8KLXN0YXRpYyBpbnQgZW5jb2RlX21iY3MoUHlPYmplY3QgKipyZXByLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQeV9VTklDT0RFICpwLCAvKiB1bmljb2RlICovCi0gICAgICAgICAgICAgICAgICAgICAgIGludCBzaXplLCAvKiBzaXplIG9mIHVuaWNvZGUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZXJyb3JzKQorc3RhdGljIGludAorZW5jb2RlX2NvZGVfcGFnZV9zdHJpY3QoVUlOVCBjb2RlX3BhZ2UsIFB5T2JqZWN0ICoqb3V0Ynl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdW5pY29kZSwgUHlfc3NpemVfdCBvZmZzZXQsIGludCBsZW4sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBlcnJvcnMpCiB7CiAgICAgQk9PTCB1c2VkRGVmYXVsdENoYXIgPSBGQUxTRTsKLSAgICBCT09MICpwdXNlZERlZmF1bHRDaGFyOwotICAgIGludCBtYmNzc2l6ZTsKLSAgICBQeV9zc2l6ZV90IG47CisgICAgQk9PTCAqcHVzZWREZWZhdWx0Q2hhciA9ICZ1c2VkRGVmYXVsdENoYXI7CisgICAgaW50IG91dHNpemU7CiAgICAgUHlPYmplY3QgKmV4YyA9IE5VTEw7Ci0gICAgRFdPUkQgZmxhZ3M7CisgICAgd2NoYXJfdCAqcDsKKyAgICBQeV9zc2l6ZV90IHNpemU7CisgICAgY29uc3QgRFdPUkQgZmxhZ3MgPSBlbmNvZGVfY29kZV9wYWdlX2ZsYWdzKGNvZGVfcGFnZSwgTlVMTCk7CisgICAgY2hhciAqb3V0OworICAgIC8qIENyZWF0ZSBhIHN1YnN0cmluZyBzbyB0aGF0IHdlIGNhbiBnZXQgdGhlIFVURi0xNiByZXByZXNlbnRhdGlvbgorICAgICAgIG9mIGp1c3QgdGhlIHNsaWNlIHVuZGVyIGNvbnNpZGVyYXRpb24uICovCisgICAgUHlPYmplY3QgKnN1YnN0cmluZzsKIAotICAgIGFzc2VydChzaXplID49IDApOworICAgIGFzc2VydChsZW4gPiAwKTsKIAotICAgIC8qIGNoZWNrIGFuZCBoYW5kbGUgJ2Vycm9ycycgYXJnICovCi0gICAgaWYgKGVycm9ycz09TlVMTCB8fCBzdHJjbXAoZXJyb3JzLCAic3RyaWN0Iik9PTApIHsKLSAgICAgICAgZmxhZ3MgPSBXQ19OT19CRVNUX0ZJVF9DSEFSUzsKKyAgICBpZiAoY29kZV9wYWdlICE9IENQX1VURjggJiYgY29kZV9wYWdlICE9IENQX1VURjcpCiAgICAgICAgIHB1c2VkRGVmYXVsdENoYXIgPSAmdXNlZERlZmF1bHRDaGFyOwotICAgIH0gZWxzZSBpZiAoc3RyY21wKGVycm9ycywgInJlcGxhY2UiKT09MCkgewotICAgICAgICBmbGFncyA9IDA7CisgICAgZWxzZQogICAgICAgICBwdXNlZERlZmF1bHRDaGFyID0gTlVMTDsKLSAgICB9IGVsc2UgewotICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgIm1iY3MgZW5jb2RpbmcgZG9lcyBub3Qgc3VwcG9ydCBlcnJvcnM9JyVzJyIsCi0gICAgICAgICAgICAgICAgICAgICAgZXJyb3JzKTsKLSAgICAgICAgIHJldHVybiAtMTsKKworICAgIHN1YnN0cmluZyA9IFB5VW5pY29kZV9TdWJzdHJpbmcodW5pY29kZSwgb2Zmc2V0LCBvZmZzZXQrbGVuKTsKKyAgICBpZiAoc3Vic3RyaW5nID09IE5VTEwpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBwID0gUHlVbmljb2RlX0FzVW5pY29kZUFuZFNpemUoc3Vic3RyaW5nLCAmc2l6ZSk7CisgICAgaWYgKHAgPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYoc3Vic3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAogICAgIC8qIEZpcnN0IGdldCB0aGUgc2l6ZSBvZiB0aGUgcmVzdWx0ICovCi0gICAgaWYgKHNpemUgPiAwKSB7Ci0gICAgICAgIG1iY3NzaXplID0gV2lkZUNoYXJUb011bHRpQnl0ZShDUF9BQ1AsIGZsYWdzLCBwLCBzaXplLCBOVUxMLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgcHVzZWREZWZhdWx0Q2hhcik7Ci0gICAgICAgIGlmIChtYmNzc2l6ZSA9PSAwKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRGcm9tV2luZG93c0VycldpdGhGaWxlbmFtZSgwLCBOVUxMKTsKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgfQotICAgICAgICAvKiBJZiB3ZSB1c2VkIGEgZGVmYXVsdCBjaGFyLCB0aGVuIHdlIGZhaWxlZCEgKi8KLSAgICAgICAgaWYgKHB1c2VkRGVmYXVsdENoYXIgJiYgKnB1c2VkRGVmYXVsdENoYXIpCi0gICAgICAgICAgICBnb3RvIG1iY3NfZW5jb2RlX2Vycm9yOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1iY3NzaXplID0gMDsKKyAgICBvdXRzaXplID0gV2lkZUNoYXJUb011bHRpQnl0ZShjb2RlX3BhZ2UsIGZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHAsIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBwdXNlZERlZmF1bHRDaGFyKTsKKyAgICBpZiAob3V0c2l6ZSA8PSAwKQorICAgICAgICBnb3RvIGVycm9yOworICAgIC8qIElmIHdlIHVzZWQgYSBkZWZhdWx0IGNoYXIsIHRoZW4gd2UgZmFpbGVkISAqLworICAgIGlmIChwdXNlZERlZmF1bHRDaGFyICYmICpwdXNlZERlZmF1bHRDaGFyKSB7CisgICAgICAgIFB5X0RFQ1JFRihzdWJzdHJpbmcpOworICAgICAgICByZXR1cm4gLTI7CiAgICAgfQogCi0gICAgaWYgKCpyZXByID09IE5VTEwpIHsKKyAgICBpZiAoKm91dGJ5dGVzID09IE5VTEwpIHsKICAgICAgICAgLyogQ3JlYXRlIHN0cmluZyBvYmplY3QgKi8KLSAgICAgICAgKnJlcHIgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIG1iY3NzaXplKTsKLSAgICAgICAgaWYgKCpyZXByID09IE5VTEwpCisgICAgICAgICpvdXRieXRlcyA9IFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgb3V0c2l6ZSk7CisgICAgICAgIGlmICgqb3V0Ynl0ZXMgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfREVDUkVGKHN1YnN0cmluZyk7CiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIG4gPSAwOworICAgICAgICB9CisgICAgICAgIG91dCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKCpvdXRieXRlcyk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICAvKiBFeHRlbmQgc3RyaW5nIG9iamVjdCAqLwotICAgICAgICBuID0gUHlCeXRlc19TaXplKCpyZXByKTsKLSAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZShyZXByLCBuICsgbWJjc3NpemUpIDwgMCkKKyAgICAgICAgY29uc3QgUHlfc3NpemVfdCBuID0gUHlCeXRlc19TaXplKCpvdXRieXRlcyk7CisgICAgICAgIGlmIChvdXRzaXplID4gUFlfU1NJWkVfVF9NQVggLSBuKSB7CisgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICAgICAgUHlfREVDUkVGKHN1YnN0cmluZyk7CiAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZShvdXRieXRlcywgbiArIG91dHNpemUpIDwgMCkgeworICAgICAgICAgICAgUHlfREVDUkVGKHN1YnN0cmluZyk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgb3V0ID0gUHlCeXRlc19BU19TVFJJTkcoKm91dGJ5dGVzKSArIG47CiAgICAgfQogCiAgICAgLyogRG8gdGhlIGNvbnZlcnNpb24gKi8KLSAgICBpZiAoc2l6ZSA+IDApIHsKLSAgICAgICAgY2hhciAqcyA9IFB5Qnl0ZXNfQVNfU1RSSU5HKCpyZXByKSArIG47Ci0gICAgICAgIGlmICgwID09IFdpZGVDaGFyVG9NdWx0aUJ5dGUoQ1BfQUNQLCBmbGFncywgcCwgc2l6ZSwgcywgbWJjc3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgcHVzZWREZWZhdWx0Q2hhcikpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyV2l0aEZpbGVuYW1lKDAsIE5VTEwpOwotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgICAgIGlmIChwdXNlZERlZmF1bHRDaGFyICYmICpwdXNlZERlZmF1bHRDaGFyKQotICAgICAgICAgICAgZ290byBtYmNzX2VuY29kZV9lcnJvcjsKLSAgICB9CisgICAgb3V0c2l6ZSA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoY29kZV9wYWdlLCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dCwgb3V0c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBwdXNlZERlZmF1bHRDaGFyKTsKKyAgICBQeV9DTEVBUihzdWJzdHJpbmcpOworICAgIGlmIChvdXRzaXplIDw9IDApCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgaWYgKHB1c2VkRGVmYXVsdENoYXIgJiYgKnB1c2VkRGVmYXVsdENoYXIpCisgICAgICAgIHJldHVybiAtMjsKICAgICByZXR1cm4gMDsKIAotbWJjc19lbmNvZGVfZXJyb3I6Ci0gICAgcmFpc2VfZW5jb2RlX2V4Y2VwdGlvbigmZXhjLCAibWJjcyIsIHAsIHNpemUsIDAsIDAsICJpbnZhbGlkIGNoYXJhY3RlciIpOwotICAgIFB5X1hERUNSRUYoZXhjKTsKK2Vycm9yOgorICAgIFB5X1hERUNSRUYoc3Vic3RyaW5nKTsKKyAgICBpZiAoR2V0TGFzdEVycm9yKCkgPT0gRVJST1JfTk9fVU5JQ09ERV9UUkFOU0xBVElPTikKKyAgICAgICAgcmV0dXJuIC0yOworICAgIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKDApOwogICAgIHJldHVybiAtMTsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9FbmNvZGVNQkNTKGNvbnN0IFB5X1VOSUNPREUgKnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKKy8qCisgKiBFbmNvZGUgYSBVbmljb2RlIHN0cmluZyB0byBhIFdpbmRvd3MgY29kZSBwYWdlIGludG8gYSBieXRlIHN0cmluZyB1c2luZyBhCisgKiBlcnJvciBoYW5kbGVyLgorICoKKyAqIFJldHVybnMgY29uc3VtZWQgY2hhcmFjdGVycyBpZiBzdWNjZWVkLCBvciByYWlzZSBhIFdpbmRvd3NFcnJvciBhbmQgcmV0dXJucworICogLTEgb24gb3RoZXIgZXJyb3IuCisgKi8KK3N0YXRpYyBpbnQKK2VuY29kZV9jb2RlX3BhZ2VfZXJyb3JzKFVJTlQgY29kZV9wYWdlLCBQeU9iamVjdCAqKm91dGJ5dGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnVuaWNvZGUsIFB5X3NzaXplX3QgdW5pY29kZV9vZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGluc2l6ZSwgY29uc3QgY2hhciogZXJyb3JzKQogewotICAgIFB5T2JqZWN0ICpyZXByID0gTlVMTDsKLSAgICBpbnQgcmV0OworICAgIGNvbnN0IERXT1JEIGZsYWdzID0gZW5jb2RlX2NvZGVfcGFnZV9mbGFncyhjb2RlX3BhZ2UsIGVycm9ycyk7CisgICAgUHlfc3NpemVfdCBwb3MgPSB1bmljb2RlX29mZnNldDsKKyAgICBQeV9zc2l6ZV90IGVuZGluID0gdW5pY29kZV9vZmZzZXQgKyBpbnNpemU7CisgICAgLyogSWRlYWxseSwgd2Ugc2hvdWxkIGdldCByZWFzb24gZnJvbSBGb3JtYXRNZXNzYWdlLiBUaGlzIGlzIHRoZSBXaW5kb3dzCisgICAgICAgMjAwMCBFbmdsaXNoIHZlcnNpb24gb2YgdGhlIG1lc3NhZ2UuICovCisgICAgY29uc3QgY2hhciAqcmVhc29uID0gImludmFsaWQgY2hhcmFjdGVyIjsKKyAgICAvKiA0PW1heGltdW0gbGVuZ3RoIG9mIGEgVVRGLTggc2VxdWVuY2UgKi8KKyAgICBjaGFyIGJ1ZmZlcls0XTsKKyAgICBCT09MIHVzZWREZWZhdWx0Q2hhciA9IEZBTFNFLCAqcHVzZWREZWZhdWx0Q2hhcjsKKyAgICBQeV9zc2l6ZV90IG91dHNpemU7CisgICAgY2hhciAqb3V0OworICAgIFB5T2JqZWN0ICplcnJvckhhbmRsZXIgPSBOVUxMOworICAgIFB5T2JqZWN0ICpleGMgPSBOVUxMOworICAgIFB5T2JqZWN0ICplbmNvZGluZ19vYmogPSBOVUxMOworICAgIGNoYXIgKmVuY29kaW5nOworICAgIFB5X3NzaXplX3QgbmV3cG9zLCBuZXdvdXRzaXplOworICAgIFB5T2JqZWN0ICpyZXA7CisgICAgaW50IHJldCA9IC0xOwogCi0jaWZkZWYgTkVFRF9SRVRSWQotICByZXRyeToKLSAgICBpZiAoc2l6ZSA+IElOVF9NQVgpCi0gICAgICAgIHJldCA9IGVuY29kZV9tYmNzKCZyZXByLCBwLCBJTlRfTUFYLCBlcnJvcnMpOworICAgIGFzc2VydChpbnNpemUgPiAwKTsKKworICAgIGVuY29kaW5nID0gY29kZV9wYWdlX25hbWUoY29kZV9wYWdlLCAmZW5jb2Rpbmdfb2JqKTsKKyAgICBpZiAoZW5jb2RpbmcgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaWYgKGVycm9ycyA9PSBOVUxMIHx8IHN0cmNtcChlcnJvcnMsICJzdHJpY3QiKSA9PSAwKSB7CisgICAgICAgIC8qIFRoZSBsYXN0IGVycm9yIHdhcyBFUlJPUl9OT19VTklDT0RFX1RSQU5TTEFUSU9OLAorICAgICAgICAgICB0aGVuIHdlIHJhaXNlIGEgVW5pY29kZUVuY29kZUVycm9yLiAqLworICAgICAgICBtYWtlX2VuY29kZV9leGNlcHRpb24oJmV4YywgZW5jb2RpbmcsIHVuaWNvZGUsIDAsIDAsIHJlYXNvbik7CisgICAgICAgIGlmIChleGMgIT0gTlVMTCkgeworICAgICAgICAgICAgUHlDb2RlY19TdHJpY3RFcnJvcnMoZXhjKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihleGMpOworICAgICAgICB9CisgICAgICAgIFB5X1hERUNSRUYoZW5jb2Rpbmdfb2JqKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGlmIChjb2RlX3BhZ2UgIT0gQ1BfVVRGOCAmJiBjb2RlX3BhZ2UgIT0gQ1BfVVRGNykKKyAgICAgICAgcHVzZWREZWZhdWx0Q2hhciA9ICZ1c2VkRGVmYXVsdENoYXI7CiAgICAgZWxzZQotI2VuZGlmCi0gICAgICAgIHJldCA9IGVuY29kZV9tYmNzKCZyZXByLCBwLCAoaW50KXNpemUsIGVycm9ycyk7CisgICAgICAgIHB1c2VkRGVmYXVsdENoYXIgPSBOVUxMOwogCi0gICAgaWYgKHJldCA8IDApIHsKLSAgICAgICAgUHlfWERFQ1JFRihyZXByKTsKKyAgICBpZiAoUHlfQVJSQVlfTEVOR1RIKGJ1ZmZlcikgPiBQWV9TU0laRV9UX01BWCAvIGluc2l6ZSkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyAgICBvdXRzaXplID0gaW5zaXplICogUHlfQVJSQVlfTEVOR1RIKGJ1ZmZlcik7CisKKyAgICBpZiAoKm91dGJ5dGVzID09IE5VTEwpIHsKKyAgICAgICAgLyogQ3JlYXRlIHN0cmluZyBvYmplY3QgKi8KKyAgICAgICAgKm91dGJ5dGVzID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBvdXRzaXplKTsKKyAgICAgICAgaWYgKCpvdXRieXRlcyA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgb3V0ID0gUHlCeXRlc19BU19TVFJJTkcoKm91dGJ5dGVzKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIC8qIEV4dGVuZCBzdHJpbmcgb2JqZWN0ICovCisgICAgICAgIFB5X3NzaXplX3QgbiA9IFB5Qnl0ZXNfU2l6ZSgqb3V0Ynl0ZXMpOworICAgICAgICBpZiAobiA+IFBZX1NTSVpFX1RfTUFYIC0gb3V0c2l6ZSkgeworICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZShvdXRieXRlcywgbiArIG91dHNpemUpIDwgMCkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIG91dCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKCpvdXRieXRlcykgKyBuOworICAgIH0KKworICAgIC8qIEVuY29kZSB0aGUgc3RyaW5nIGNoYXJhY3RlciBwZXIgY2hhcmFjdGVyICovCisgICAgd2hpbGUgKHBvcyA8IGVuZGluKQorICAgIHsKKyAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEX0NIQVIodW5pY29kZSwgcG9zKTsKKyAgICAgICAgd2NoYXJfdCBjaGFyc1syXTsKKyAgICAgICAgaW50IGNoYXJzaXplOworICAgICAgICBpZiAoY2ggPCAweDEwMDAwKSB7CisgICAgICAgICAgICBjaGFyc1swXSA9ICh3Y2hhcl90KWNoOworICAgICAgICAgICAgY2hhcnNpemUgPSAxOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgY2ggLT0gMHgxMDAwMDsKKyAgICAgICAgICAgIGNoYXJzWzBdID0gMHhkODAwICsgKGNoID4+IDEwKTsKKyAgICAgICAgICAgIGNoYXJzWzFdID0gMHhkYzAwICsgKGNoICYgMHgzZmYpOworICAgICAgICAgICAgY2hhcnNpemUgPSAyOworICAgICAgICB9CisKKyAgICAgICAgb3V0c2l6ZSA9IFdpZGVDaGFyVG9NdWx0aUJ5dGUoY29kZV9wYWdlLCBmbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhcnMsIGNoYXJzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXIsIFB5X0FSUkFZX0xFTkdUSChidWZmZXIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBwdXNlZERlZmF1bHRDaGFyKTsKKyAgICAgICAgaWYgKG91dHNpemUgPiAwKSB7CisgICAgICAgICAgICBpZiAocHVzZWREZWZhdWx0Q2hhciA9PSBOVUxMIHx8ICEoKnB1c2VkRGVmYXVsdENoYXIpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHBvcysrOworICAgICAgICAgICAgICAgIG1lbWNweShvdXQsIGJ1ZmZlciwgb3V0c2l6ZSk7CisgICAgICAgICAgICAgICAgb3V0ICs9IG91dHNpemU7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoR2V0TGFzdEVycm9yKCkgIT0gRVJST1JfTk9fVU5JQ09ERV9UUkFOU0xBVElPTikgeworICAgICAgICAgICAgUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoMCk7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisKKyAgICAgICAgcmVwID0gdW5pY29kZV9lbmNvZGVfY2FsbF9lcnJvcmhhbmRsZXIoCisgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsIGVuY29kaW5nLCByZWFzb24sCisgICAgICAgICAgICAgICAgICB1bmljb2RlLCAmZXhjLAorICAgICAgICAgICAgICAgICAgcG9zLCBwb3MgKyAxLCAmbmV3cG9zKTsKKyAgICAgICAgaWYgKHJlcCA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgcG9zID0gbmV3cG9zOworCisgICAgICAgIGlmIChQeUJ5dGVzX0NoZWNrKHJlcCkpIHsKKyAgICAgICAgICAgIG91dHNpemUgPSBQeUJ5dGVzX0dFVF9TSVpFKHJlcCk7CisgICAgICAgICAgICBpZiAob3V0c2l6ZSAhPSAxKSB7CisgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBvZmZzZXQgPSBvdXQgLSBQeUJ5dGVzX0FTX1NUUklORygqb3V0Ynl0ZXMpOworICAgICAgICAgICAgICAgIG5ld291dHNpemUgPSBQeUJ5dGVzX0dFVF9TSVpFKCpvdXRieXRlcykgKyAob3V0c2l6ZSAtIDEpOworICAgICAgICAgICAgICAgIGlmIChfUHlCeXRlc19SZXNpemUob3V0Ynl0ZXMsIG5ld291dHNpemUpIDwgMCkgeworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYocmVwKTsKKyAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb3V0ID0gUHlCeXRlc19BU19TVFJJTkcoKm91dGJ5dGVzKSArIG9mZnNldDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1lbWNweShvdXQsIFB5Qnl0ZXNfQVNfU1RSSU5HKHJlcCksIG91dHNpemUpOworICAgICAgICAgICAgb3V0ICs9IG91dHNpemU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBQeV9zc2l6ZV90IGk7CisgICAgICAgICAgICBlbnVtIFB5VW5pY29kZV9LaW5kIGtpbmQ7CisgICAgICAgICAgICB2b2lkICpkYXRhOworCisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHJlcCkgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYocmVwKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBvdXRzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocmVwKTsKKyAgICAgICAgICAgIGlmIChvdXRzaXplICE9IDEpIHsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG9mZnNldCA9IG91dCAtIFB5Qnl0ZXNfQVNfU1RSSU5HKCpvdXRieXRlcyk7CisgICAgICAgICAgICAgICAgbmV3b3V0c2l6ZSA9IFB5Qnl0ZXNfR0VUX1NJWkUoKm91dGJ5dGVzKSArIChvdXRzaXplIC0gMSk7CisgICAgICAgICAgICAgICAgaWYgKF9QeUJ5dGVzX1Jlc2l6ZShvdXRieXRlcywgbmV3b3V0c2l6ZSkgPCAwKSB7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXApOworICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBvdXQgPSBQeUJ5dGVzX0FTX1NUUklORygqb3V0Ynl0ZXMpICsgb2Zmc2V0OworICAgICAgICAgICAgfQorICAgICAgICAgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHJlcCk7CisgICAgICAgICAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEocmVwKTsKKyAgICAgICAgICAgIGZvciAoaT0wOyBpIDwgb3V0c2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpOworICAgICAgICAgICAgICAgIGlmIChjaCA+IDEyNykgeworICAgICAgICAgICAgICAgICAgICByYWlzZV9lbmNvZGVfZXhjZXB0aW9uKCZleGMsCisgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZywgdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcywgcG9zICsgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFibGUgdG8gZW5jb2RlIGVycm9yIGhhbmRsZXIgcmVzdWx0IHRvIEFTQ0lJIik7CisgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXApOworICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAqb3V0ID0gKHVuc2lnbmVkIGNoYXIpY2g7CisgICAgICAgICAgICAgICAgb3V0Kys7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgUHlfREVDUkVGKHJlcCk7CisgICAgfQorICAgIC8qIHdyaXRlIGEgTlVMIGJ5dGUgKi8KKyAgICAqb3V0ID0gMDsKKyAgICBvdXRzaXplID0gb3V0IC0gUHlCeXRlc19BU19TVFJJTkcoKm91dGJ5dGVzKTsKKyAgICBhc3NlcnQob3V0c2l6ZSA8PSBQeUJ5dGVzX0dFVF9TSVpFKCpvdXRieXRlcykpOworICAgIGlmIChfUHlCeXRlc19SZXNpemUob3V0Ynl0ZXMsIG91dHNpemUpIDwgMCkKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICByZXQgPSAwOworCitlcnJvcjoKKyAgICBQeV9YREVDUkVGKGVuY29kaW5nX29iaik7CisgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOworICAgIFB5X1hERUNSRUYoZXhjKTsKKyAgICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgUHlPYmplY3QgKgorZW5jb2RlX2NvZGVfcGFnZShpbnQgY29kZV9wYWdlLAorICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQoreworICAgIFB5X3NzaXplX3QgbGVuOworICAgIFB5T2JqZWN0ICpvdXRieXRlcyA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBvZmZzZXQ7CisgICAgaW50IGNodW5rX2xlbiwgcmV0LCBkb25lOworCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodW5pY29kZSk7CisKKyAgICBpZiAoY29kZV9wYWdlIDwgMCkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImludmFsaWQgY29kZSBwYWdlIG51bWJlciIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSNpZmRlZiBORUVEX1JFVFJZCi0gICAgaWYgKHNpemUgPiBJTlRfTUFYKSB7Ci0gICAgICAgIHAgKz0gSU5UX01BWDsKLSAgICAgICAgc2l6ZSAtPSBJTlRfTUFYOwotICAgICAgICBnb3RvIHJldHJ5OwotICAgIH0KLSNlbmRpZgorICAgIGlmIChsZW4gPT0gMCkKKyAgICAgICAgcmV0dXJuIFB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUoTlVMTCwgMCk7CiAKLSAgICByZXR1cm4gcmVwcjsKKyAgICBvZmZzZXQgPSAwOworICAgIGRvCisgICAgeworI2lmZGVmIE5FRURfUkVUUlkKKyAgICAgICAgLyogVVRGLTE2IGVuY29kaW5nIG1heSBkb3VibGUgdGhlIHNpemUsIHNvIHVzZSBvbmx5IElOVF9NQVgvMgorICAgICAgICAgICBjaHVua3MuICovCisgICAgICAgIGlmIChsZW4gPiBJTlRfTUFYLzIpIHsKKyAgICAgICAgICAgIGNodW5rX2xlbiA9IElOVF9NQVgvMjsKKyAgICAgICAgICAgIGRvbmUgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyNlbmRpZgorICAgICAgICB7CisgICAgICAgICAgICBjaHVua19sZW4gPSAoaW50KWxlbjsKKyAgICAgICAgICAgIGRvbmUgPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0ID0gZW5jb2RlX2NvZGVfcGFnZV9zdHJpY3QoY29kZV9wYWdlLCAmb3V0Ynl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGUsIG9mZnNldCwgY2h1bmtfbGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMpOworICAgICAgICBpZiAocmV0ID09IC0yKQorICAgICAgICAgICAgcmV0ID0gZW5jb2RlX2NvZGVfcGFnZV9lcnJvcnMoY29kZV9wYWdlLCAmb3V0Ynl0ZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmljb2RlLCBvZmZzZXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVua19sZW4sIGVycm9ycyk7CisgICAgICAgIGlmIChyZXQgPCAwKSB7CisgICAgICAgICAgICBQeV9YREVDUkVGKG91dGJ5dGVzKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisKKyAgICAgICAgb2Zmc2V0ICs9IGNodW5rX2xlbjsKKyAgICAgICAgbGVuIC09IGNodW5rX2xlbjsKKyAgICB9IHdoaWxlICghZG9uZSk7CisKKyAgICByZXR1cm4gb3V0Ynl0ZXM7CiB9CiAKLVB5T2JqZWN0ICpQeVVuaWNvZGVfQXNNQkNTU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlKQorUHlPYmplY3QgKgorUHlVbmljb2RlX0VuY29kZU1CQ1MoY29uc3QgUHlfVU5JQ09ERSAqcCwKKyAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK3sKKyAgICBQeU9iamVjdCAqdW5pY29kZSwgKnJlczsKKyAgICB1bmljb2RlID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHAsIHNpemUpOworICAgIGlmICh1bmljb2RlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJlcyA9IGVuY29kZV9jb2RlX3BhZ2UoQ1BfQUNQLCB1bmljb2RlLCBlcnJvcnMpOworICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICByZXR1cm4gcmVzOworfQorCitQeU9iamVjdCAqCitQeVVuaWNvZGVfRW5jb2RlQ29kZVBhZ2UoaW50IGNvZGVfcGFnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCit7CisgICAgcmV0dXJuIGVuY29kZV9jb2RlX3BhZ2UoY29kZV9wYWdlLCB1bmljb2RlLCBlcnJvcnMpOworfQorCitQeU9iamVjdCAqCitQeVVuaWNvZGVfQXNNQkNTU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlKQogewogICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHVuaWNvZGUpKSB7CiAgICAgICAgIFB5RXJyX0JhZEFyZ3VtZW50KCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICByZXR1cm4gUHlVbmljb2RlX0VuY29kZU1CQ1MoUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgcmV0dXJuIFB5VW5pY29kZV9FbmNvZGVDb2RlUGFnZShDUF9BQ1AsIHVuaWNvZGUsIE5VTEwpOwogfQogCiAjdW5kZWYgTkVFRF9SRVRSWQogCi0jZW5kaWYgLyogTVNfV0lORE9XUyAqLworI2VuZGlmIC8qIEhBVkVfTUJDUyAqLwogCiAvKiAtLS0gQ2hhcmFjdGVyIE1hcHBpbmcgQ29kZWMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotUHlPYmplY3QgKlB5VW5pY29kZV9EZWNvZGVDaGFybWFwKGNvbnN0IGNoYXIgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICptYXBwaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9EZWNvZGVDaGFybWFwKGNvbnN0IGNoYXIgKnMsCisgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKIHsKICAgICBjb25zdCBjaGFyICpzdGFydHMgPSBzOwogICAgIFB5X3NzaXplX3Qgc3RhcnRpbnBvczsKICAgICBQeV9zc2l6ZV90IGVuZGlucG9zOwogICAgIFB5X3NzaXplX3Qgb3V0cG9zOwogICAgIGNvbnN0IGNoYXIgKmU7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICp2OwotICAgIFB5X1VOSUNPREUgKnA7CisgICAgUHlPYmplY3QgKnY7CiAgICAgUHlfc3NpemVfdCBleHRyYWNoYXJzID0gMDsKICAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTDsKICAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKLSAgICBQeV9VTklDT0RFICptYXBzdHJpbmcgPSBOVUxMOwotICAgIFB5X3NzaXplX3QgbWFwbGVuID0gMDsKIAogICAgIC8qIERlZmF1bHQgdG8gTGF0aW4tMSAqLwogICAgIGlmIChtYXBwaW5nID09IE5VTEwpCiAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlTGF0aW4xKHMsIHNpemUsIGVycm9ycyk7CiAKLSAgICB2ID0gX1B5VW5pY29kZV9OZXcoc2l6ZSk7CisgICAgdiA9IFB5VW5pY29kZV9OZXcoc2l6ZSwgMTI3KTsKICAgICBpZiAodiA9PSBOVUxMKQogICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgaWYgKHNpemUgPT0gMCkKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXY7Ci0gICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHYpOworICAgICAgICByZXR1cm4gdjsKKyAgICBvdXRwb3MgPSAwOwogICAgIGUgPSBzICsgc2l6ZTsKICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QobWFwcGluZykpIHsKLSAgICAgICAgbWFwc3RyaW5nID0gUHlVbmljb2RlX0FTX1VOSUNPREUobWFwcGluZyk7Ci0gICAgICAgIG1hcGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRShtYXBwaW5nKTsKKyAgICAgICAgUHlfc3NpemVfdCBtYXBsZW47CisgICAgICAgIGVudW0gUHlVbmljb2RlX0tpbmQgbWFwa2luZDsKKyAgICAgICAgdm9pZCAqbWFwZGF0YTsKKyAgICAgICAgUHlfVUNTNCB4OworCisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkobWFwcGluZykgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKworICAgICAgICBtYXBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChtYXBwaW5nKTsKKyAgICAgICAgbWFwZGF0YSA9IFB5VW5pY29kZV9EQVRBKG1hcHBpbmcpOworICAgICAgICBtYXBraW5kID0gUHlVbmljb2RlX0tJTkQobWFwcGluZyk7CiAgICAgICAgIHdoaWxlIChzIDwgZSkgewotICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjaCA9ICpzOwotICAgICAgICAgICAgUHlfVU5JQ09ERSB4ID0gMHhmZmZlOyAvKiBpbGxlZ2FsIHZhbHVlICovCisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGNoOworICAgICAgICAgICAgaWYgKG1hcGtpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQgJiYgbWFwbGVuID49IDI1NikgeworICAgICAgICAgICAgICAgIGVudW0gUHlVbmljb2RlX0tpbmQgb3V0a2luZCA9IFB5VW5pY29kZV9LSU5EKHYpOworICAgICAgICAgICAgICAgIGlmIChvdXRraW5kID09IFB5VW5pY29kZV8xQllURV9LSU5EKSB7CisgICAgICAgICAgICAgICAgICAgIHZvaWQgKm91dGRhdGEgPSBQeVVuaWNvZGVfREFUQSh2KTsKKyAgICAgICAgICAgICAgICAgICAgUHlfVUNTNCBtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHYpOworICAgICAgICAgICAgICAgICAgICB3aGlsZSAocyA8IGUpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgY2ggPSAqczsKKyAgICAgICAgICAgICAgICAgICAgICAgIHggPSBQeVVuaWNvZGVfUkVBRChQeVVuaWNvZGVfMkJZVEVfS0lORCwgbWFwZGF0YSwgY2gpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHggPiBtYXhjaGFyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gRXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoUHlVbmljb2RlXzFCWVRFX0tJTkQsIG91dGRhdGEsIG91dHBvcysrLCB4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICsrczsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3V0a2luZCA9PSBQeVVuaWNvZGVfMkJZVEVfS0lORCkgeworICAgICAgICAgICAgICAgICAgICB2b2lkICpvdXRkYXRhID0gUHlVbmljb2RlX0RBVEEodik7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzIDwgZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjaCA9ICpzOworICAgICAgICAgICAgICAgICAgICAgICAgeCA9IFB5VW5pY29kZV9SRUFEKFB5VW5pY29kZV8yQllURV9LSU5ELCBtYXBkYXRhLCBjaCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeCA9PSAweEZGRkUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBFcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShQeVVuaWNvZGVfMkJZVEVfS0lORCwgb3V0ZGF0YSwgb3V0cG9zKyssIHgpOworICAgICAgICAgICAgICAgICAgICAgICAgKytzOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNoID0gKnM7CiAKICAgICAgICAgICAgIGlmIChjaCA8IG1hcGxlbikKLSAgICAgICAgICAgICAgICB4ID0gbWFwc3RyaW5nW2NoXTsKLQotICAgICAgICAgICAgaWYgKHggPT0gMHhmZmZlKSB7CisgICAgICAgICAgICAgICAgeCA9IFB5VW5pY29kZV9SRUFEKG1hcGtpbmQsIG1hcGRhdGEsIGNoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB4ID0gMHhmZmZlOyAvKiBpbnZhbGlkIHZhbHVlICovCitFcnJvcjoKKyAgICAgICAgICAgIGlmICh4ID09IDB4ZmZmZSkKKyAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAvKiB1bmRlZmluZWQgbWFwcGluZyAqLwotICAgICAgICAgICAgICAgIG91dHBvcyA9IHAtUHlVbmljb2RlX0FTX1VOSUNPREUodik7CiAgICAgICAgICAgICAgICAgc3RhcnRpbnBvcyA9IHMtc3RhcnRzOwogICAgICAgICAgICAgICAgIGVuZGlucG9zID0gc3RhcnRpbnBvcysxOwogICAgICAgICAgICAgICAgIGlmICh1bmljb2RlX2RlY29kZV9jYWxsX2Vycm9yaGFuZGxlcigKICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycywgJmVycm9ySGFuZGxlciwKICAgICAgICAgICAgICAgICAgICAgICAgICJjaGFybWFwIiwgImNoYXJhY3RlciBtYXBzIHRvIDx1bmRlZmluZWQ+IiwKICAgICAgICAgICAgICAgICAgICAgICAgICZzdGFydHMsICZlLCAmc3RhcnRpbnBvcywgJmVuZGlucG9zLCAmZXhjLCAmcywKLSAgICAgICAgICAgICAgICAgICAgICAgICZ2LCAmb3V0cG9zLCAmcCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICZ2LCAmb3V0cG9zKSkgewogICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgKnArKyA9IHg7CisKKyAgICAgICAgICAgIGlmICh1bmljb2RlX3B1dGNoYXIoJnYsICZvdXRwb3MsIHgpIDwgMCkKKyAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICArK3M7CiAgICAgICAgIH0KICAgICB9CkBAIC01MjY2LDE4ICs3NTMyLDE4IEBACiAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih4KTsKICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAqcCsrID0gKFB5X1VOSUNPREUpdmFsdWU7CisgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfcHV0Y2hhcigmdiwgJm91dHBvcywgdmFsdWUpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoeCA9PSBQeV9Ob25lKSB7CiAgICAgICAgICAgICAgICAgLyogdW5kZWZpbmVkIG1hcHBpbmcgKi8KLSAgICAgICAgICAgICAgICBvdXRwb3MgPSBwLVB5VW5pY29kZV9BU19VTklDT0RFKHYpOwogICAgICAgICAgICAgICAgIHN0YXJ0aW5wb3MgPSBzLXN0YXJ0czsKICAgICAgICAgICAgICAgICBlbmRpbnBvcyA9IHN0YXJ0aW5wb3MrMTsKICAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9kZWNvZGVfY2FsbF9lcnJvcmhhbmRsZXIoCiAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMsICZlcnJvckhhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAiY2hhcm1hcCIsICJjaGFyYWN0ZXIgbWFwcyB0byA8dW5kZWZpbmVkPiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhcnRzLCAmZSwgJnN0YXJ0aW5wb3MsICZlbmRpbnBvcywgJmV4YywgJnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcywgJnApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAmdiwgJm91dHBvcykpIHsKICAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHgpOwogICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICAgICAgfQpAQCAtNTI4NSwzMiArNzU1MSwzNyBAQAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoUHlVbmljb2RlX0NoZWNrKHgpKSB7Ci0gICAgICAgICAgICAgICAgUHlfc3NpemVfdCB0YXJnZXRzaXplID0gUHlVbmljb2RlX0dFVF9TSVpFKHgpOworICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgdGFyZ2V0c2l6ZTsKIAotICAgICAgICAgICAgICAgIGlmICh0YXJnZXRzaXplID09IDEpCisgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh4KSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgICAgIHRhcmdldHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh4KTsKKworICAgICAgICAgICAgICAgIGlmICh0YXJnZXRzaXplID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgLyogMS0xIG1hcHBpbmcgKi8KLSAgICAgICAgICAgICAgICAgICAgKnArKyA9ICpQeVVuaWNvZGVfQVNfVU5JQ09ERSh4KTsKLQorICAgICAgICAgICAgICAgICAgICBpZiAodW5pY29kZV9wdXRjaGFyKCZ2LCAmb3V0cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEX0NIQVIoeCwgMCkpIDwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAodGFyZ2V0c2l6ZSA+IDEpIHsKICAgICAgICAgICAgICAgICAgICAgLyogMS1uIG1hcHBpbmcgKi8KICAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldHNpemUgPiBleHRyYWNoYXJzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvKiByZXNpemUgZmlyc3QgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgb2xkcG9zID0gcCAtIFB5VW5pY29kZV9BU19VTklDT0RFKHYpOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuZWVkZWQgPSAodGFyZ2V0c2l6ZSAtIGV4dHJhY2hhcnMpICsgXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YXJnZXRzaXplIDw8IDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFjaGFycyArPSBuZWVkZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAvKiBYWFggb3ZlcmZsb3cgZGV0ZWN0aW9uIG1pc3NpbmcgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfUHlVbmljb2RlX1Jlc2l6ZSgmdiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUodikgKyBuZWVkZWQpIDwgMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfcmVzaXplKCZ2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHYpICsgbmVlZGVkKSA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHgpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSArIG9sZHBvczsKICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBQeV9VTklDT0RFX0NPUFkocCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0c2l6ZSk7Ci0gICAgICAgICAgICAgICAgICAgIHAgKz0gdGFyZ2V0c2l6ZTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHVuaWNvZGVfd2lkZW4oJnYsIG91dHBvcywgUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHgpKSA8IDApCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9Db3B5Q2hhcmFjdGVycyh2LCBvdXRwb3MsIHgsIDAsIHRhcmdldHNpemUpOworICAgICAgICAgICAgICAgICAgICBvdXRwb3MgKz0gdGFyZ2V0c2l6ZTsKICAgICAgICAgICAgICAgICAgICAgZXh0cmFjaGFycyAtPSB0YXJnZXRzaXplOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAvKiAxLTAgbWFwcGluZzogc2tpcCB0aGUgY2hhcmFjdGVyICovCkBAIC01MzI2LDEyICs3NTk3LDExIEBACiAgICAgICAgICAgICArK3M7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKHAgLSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSA8IFB5VW5pY29kZV9HRVRfU0laRSh2KSkKLSAgICAgICAgaWYgKF9QeVVuaWNvZGVfUmVzaXplKCZ2LCBwIC0gUHlVbmljb2RlX0FTX1VOSUNPREUodikpIDwgMCkKLSAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICBpZiAodW5pY29kZV9yZXNpemUoJnYsIG91dHBvcykgPCAwKQorICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIFB5X1hERUNSRUYoZXhjKTsKLSAgICByZXR1cm4gKFB5T2JqZWN0ICopdjsKKyAgICByZXR1cm4gdW5pY29kZV9yZXN1bHQodik7CiAKICAgb25FcnJvcjoKICAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7CkBAIC01MzQyLDcgKzc2MTIsNyBAQAogCiAvKiBDaGFybWFwIGVuY29kaW5nOiB0aGUgbG9va3VwIHRhYmxlICovCiAKLXN0cnVjdCBlbmNvZGluZ19tYXB7CitzdHJ1Y3QgZW5jb2RpbmdfbWFwIHsKICAgICBQeU9iamVjdF9IRUFECiAgICAgdW5zaWduZWQgY2hhciBsZXZlbDFbMzJdOwogICAgIGludCBjb3VudDIsIGNvdW50MzsKQEAgLTU0MTYsNyArNzY4Niw2IEBACiBQeU9iamVjdCoKIFB5VW5pY29kZV9CdWlsZEVuY29kaW5nTWFwKFB5T2JqZWN0KiBzdHJpbmcpCiB7Ci0gICAgUHlfVU5JQ09ERSAqZGVjb2RlOwogICAgIFB5T2JqZWN0ICpyZXN1bHQ7CiAgICAgc3RydWN0IGVuY29kaW5nX21hcCAqbXJlc3VsdDsKICAgICBpbnQgaTsKQEAgLTU0MjUsMzUgKzc2OTQsMzkgQEAKICAgICB1bnNpZ25lZCBjaGFyIGxldmVsMls1MTJdOwogICAgIHVuc2lnbmVkIGNoYXIgKm1sZXZlbDEsICptbGV2ZWwyLCAqbWxldmVsMzsKICAgICBpbnQgY291bnQyID0gMCwgY291bnQzID0gMDsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOworICAgIFB5X3NzaXplX3QgbGVuZ3RoOworICAgIFB5X1VDUzQgY2g7CiAKLSAgICBpZiAoIVB5VW5pY29kZV9DaGVjayhzdHJpbmcpIHx8IFB5VW5pY29kZV9HZXRTaXplKHN0cmluZykgIT0gMjU2KSB7CisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2soc3RyaW5nKSB8fCAhUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyaW5nKSkgewogICAgICAgICBQeUVycl9CYWRBcmd1bWVudCgpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgZGVjb2RlID0gUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyaW5nKTsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoc3RyaW5nKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoc3RyaW5nKTsKKyAgICBsZW5ndGggPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHJpbmcpOworICAgIGxlbmd0aCA9IFB5X01JTihsZW5ndGgsIDI1Nik7CiAgICAgbWVtc2V0KGxldmVsMSwgMHhGRiwgc2l6ZW9mIGxldmVsMSk7CiAgICAgbWVtc2V0KGxldmVsMiwgMHhGRiwgc2l6ZW9mIGxldmVsMik7CiAKICAgICAvKiBJZiB0aGVyZSBpc24ndCBhIG9uZS10by1vbmUgbWFwcGluZyBvZiBOVUxMIHRvIFwwLAogICAgICAgIG9yIGlmIHRoZXJlIGFyZSBub24tQk1QIGNoYXJhY3RlcnMsIHdlIG5lZWQgdG8gdXNlCiAgICAgICAgYSBtYXBwaW5nIGRpY3Rpb25hcnkuICovCi0gICAgaWYgKGRlY29kZVswXSAhPSAwKQorICAgIGlmIChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCAwKSAhPSAwKQogICAgICAgICBuZWVkX2RpY3QgPSAxOwotICAgIGZvciAoaSA9IDE7IGkgPCAyNTY7IGkrKykgeworICAgIGZvciAoaSA9IDE7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICBpbnQgbDEsIGwyOwotICAgICAgICBpZiAoZGVjb2RlW2ldID09IDAKLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgICAgIHx8IGRlY29kZVtpXSA+IDB4RkZGRgotI2VuZGlmCi0gICAgICAgICAgICApIHsKKyAgICAgICAgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKKyAgICAgICAgaWYgKGNoID09IDAgfHwgY2ggPiAweEZGRkYpIHsKICAgICAgICAgICAgIG5lZWRfZGljdCA9IDE7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotICAgICAgICBpZiAoZGVjb2RlW2ldID09IDB4RkZGRSkKKyAgICAgICAgaWYgKGNoID09IDB4RkZGRSkKICAgICAgICAgICAgIC8qIHVubWFwcGVkIGNoYXJhY3RlciAqLwogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGwxID0gZGVjb2RlW2ldID4+IDExOwotICAgICAgICBsMiA9IGRlY29kZVtpXSA+PiA3OworICAgICAgICBsMSA9IGNoID4+IDExOworICAgICAgICBsMiA9IGNoID4+IDc7CiAgICAgICAgIGlmIChsZXZlbDFbbDFdID09IDB4RkYpCiAgICAgICAgICAgICBsZXZlbDFbbDFdID0gY291bnQyKys7CiAgICAgICAgIGlmIChsZXZlbDJbbDJdID09IDB4RkYpCkBAIC01NDY4LDkgKzc3NDEsOCBAQAogICAgICAgICBQeU9iamVjdCAqa2V5LCAqdmFsdWU7CiAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykgewotICAgICAgICAgICAga2V5ID0gdmFsdWUgPSBOVUxMOwotICAgICAgICAgICAga2V5ID0gUHlMb25nX0Zyb21Mb25nKGRlY29kZVtpXSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICAgICAga2V5ID0gUHlMb25nX0Zyb21Mb25nKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpKTsKICAgICAgICAgICAgIHZhbHVlID0gUHlMb25nX0Zyb21Mb25nKGkpOwogICAgICAgICAgICAgaWYgKCFrZXkgfHwgIXZhbHVlKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkMTsKQEAgLTU1MDMsMTcgKzc3NzUsMTggQEAKICAgICBtZW1zZXQobWxldmVsMiwgMHhGRiwgMTYqY291bnQyKTsKICAgICBtZW1zZXQobWxldmVsMywgMCwgMTI4KmNvdW50Myk7CiAgICAgY291bnQzID0gMDsKLSAgICBmb3IgKGkgPSAxOyBpIDwgMjU2OyBpKyspIHsKKyAgICBmb3IgKGkgPSAxOyBpIDwgbGVuZ3RoOyBpKyspIHsKICAgICAgICAgaW50IG8xLCBvMiwgbzMsIGkyLCBpMzsKLSAgICAgICAgaWYgKGRlY29kZVtpXSA9PSAweEZGRkUpCisgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKKyAgICAgICAgaWYgKGNoID09IDB4RkZGRSkKICAgICAgICAgICAgIC8qIHVubWFwcGVkIGNoYXJhY3RlciAqLwogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIG8xID0gZGVjb2RlW2ldPj4xMTsKLSAgICAgICAgbzIgPSAoZGVjb2RlW2ldPj43KSAmIDB4RjsKKyAgICAgICAgbzEgPSBjaD4+MTE7CisgICAgICAgIG8yID0gKGNoPj43KSAmIDB4RjsKICAgICAgICAgaTIgPSAxNiptbGV2ZWwxW28xXSArIG8yOwogICAgICAgICBpZiAobWxldmVsMltpMl0gPT0gMHhGRikKICAgICAgICAgICAgIG1sZXZlbDJbaTJdID0gY291bnQzKys7Ci0gICAgICAgIG8zID0gZGVjb2RlW2ldICYgMHg3RjsKKyAgICAgICAgbzMgPSBjaCAmIDB4N0Y7CiAgICAgICAgIGkzID0gMTI4Km1sZXZlbDJbaTJdICsgbzM7CiAgICAgICAgIG1sZXZlbDNbaTNdID0gaTsKICAgICB9CkBAIC01NTIxLDcgKzc3OTQsNyBAQAogfQogCiBzdGF0aWMgaW50Ci1lbmNvZGluZ19tYXBfbG9va3VwKFB5X1VOSUNPREUgYywgUHlPYmplY3QgKm1hcHBpbmcpCitlbmNvZGluZ19tYXBfbG9va3VwKFB5X1VDUzQgYywgUHlPYmplY3QgKm1hcHBpbmcpCiB7CiAgICAgc3RydWN0IGVuY29kaW5nX21hcCAqbWFwID0gKHN0cnVjdCBlbmNvZGluZ19tYXAqKW1hcHBpbmc7CiAgICAgaW50IGwxID0gYz4+MTE7CkBAIC01NTI5LDExICs3ODAyLDggQEAKICAgICBpbnQgbDMgPSBjICYgMHg3RjsKICAgICBpbnQgaTsKIAotI2lmZGVmIFB5X1VOSUNPREVfV0lERQotICAgIGlmIChjID4gMHhGRkZGKSB7CisgICAgaWYgKGMgPiAweEZGRkYpCiAgICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0jZW5kaWYKICAgICBpZiAoYyA9PSAwKQogICAgICAgICByZXR1cm4gMDsKICAgICAvKiBsZXZlbCAxKi8KQEAgLTU1NTcsNyArNzgyNyw4IEBACiAvKiBMb29rdXAgdGhlIGNoYXJhY3RlciBjaCBpbiB0aGUgbWFwcGluZy4gSWYgdGhlIGNoYXJhY3RlcgogICAgY2FuJ3QgYmUgZm91bmQsIFB5X05vbmUgaXMgcmV0dXJuZWQgKG9yIE5VTEwsIGlmIGFub3RoZXIKICAgIGVycm9yIG9jY3VycmVkKS4gKi8KLXN0YXRpYyBQeU9iamVjdCAqY2hhcm1hcGVuY29kZV9sb29rdXAoUHlfVU5JQ09ERSBjLCBQeU9iamVjdCAqbWFwcGluZykKK3N0YXRpYyBQeU9iamVjdCAqCitjaGFybWFwZW5jb2RlX2xvb2t1cChQeV9VQ1M0IGMsIFB5T2JqZWN0ICptYXBwaW5nKQogewogICAgIFB5T2JqZWN0ICp3ID0gUHlMb25nX0Zyb21Mb25nKChsb25nKWMpOwogICAgIFB5T2JqZWN0ICp4OwpAQCAtNTYxNCwxNiArNzg4NSwxNiBAQAogCiB0eXBlZGVmIGVudW0gY2hhcm1hcGVuY29kZV9yZXN1bHQgewogICAgIGVuY19TVUNDRVNTLCBlbmNfRkFJTEVELCBlbmNfRVhDRVBUSU9OCi19Y2hhcm1hcGVuY29kZV9yZXN1bHQ7Cit9IGNoYXJtYXBlbmNvZGVfcmVzdWx0OwogLyogbG9va3VwIHRoZSBjaGFyYWN0ZXIsIHB1dCB0aGUgcmVzdWx0IGluIHRoZSBvdXRwdXQgc3RyaW5nIGFuZCBhZGp1c3QKICAgIHZhcmlvdXMgc3RhdGUgdmFyaWFibGVzLiBSZXNpemUgdGhlIG91dHB1dCBieXRlcyBvYmplY3QgaWYgbm90IGVub3VnaAogICAgc3BhY2UgaXMgYXZhaWxhYmxlLiBSZXR1cm4gYSBuZXcgcmVmZXJlbmNlIHRvIHRoZSBvYmplY3QgdGhhdAogICAgd2FzIHB1dCBpbiB0aGUgb3V0cHV0IGJ1ZmZlciwgb3IgUHlfTm9uZSwgaWYgdGhlIG1hcHBpbmcgd2FzIHVuZGVmaW5lZAogICAgKGluIHdoaWNoIGNhc2Ugbm8gY2hhcmFjdGVyIHdhcyB3cml0dGVuKSBvciBOVUxMLCBpZiBhCiAgICByZWFsbG9jYXRpb24gZXJyb3Igb2NjdXJyZWQuIFRoZSBjYWxsZXIgbXVzdCBkZWNyZWYgdGhlIHJlc3VsdCAqLwotc3RhdGljCi1jaGFybWFwZW5jb2RlX3Jlc3VsdCBjaGFybWFwZW5jb2RlX291dHB1dChQeV9VTklDT0RFIGMsIFB5T2JqZWN0ICptYXBwaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKipvdXRvYmosIFB5X3NzaXplX3QgKm91dHBvcykKK3N0YXRpYyBjaGFybWFwZW5jb2RlX3Jlc3VsdAorY2hhcm1hcGVuY29kZV9vdXRwdXQoUHlfVUNTNCBjLCBQeU9iamVjdCAqbWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqb3V0b2JqLCBQeV9zc2l6ZV90ICpvdXRwb3MpCiB7CiAgICAgUHlPYmplY3QgKnJlcDsKICAgICBjaGFyICpvdXRzdGFydDsKQEAgLTU2NzksMTcgKzc5NTAsMTkgQEAKIAogLyogaGFuZGxlIGFuIGVycm9yIGluIFB5VW5pY29kZV9FbmNvZGVDaGFybWFwCiAgICBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSBvbiBlcnJvciAqLwotc3RhdGljCi1pbnQgY2hhcm1hcF9lbmNvZGluZ19lcnJvcigKLSAgICBjb25zdCBQeV9VTklDT0RFICpwLCBQeV9zc2l6ZV90IHNpemUsIFB5X3NzaXplX3QgKmlucG9zLCBQeU9iamVjdCAqbWFwcGluZywKK3N0YXRpYyBpbnQKK2NoYXJtYXBfZW5jb2RpbmdfZXJyb3IoCisgICAgUHlPYmplY3QgKnVuaWNvZGUsIFB5X3NzaXplX3QgKmlucG9zLCBQeU9iamVjdCAqbWFwcGluZywKICAgICBQeU9iamVjdCAqKmV4Y2VwdGlvbk9iamVjdCwKICAgICBpbnQgKmtub3duX2Vycm9ySGFuZGxlciwgUHlPYmplY3QgKiplcnJvckhhbmRsZXIsIGNvbnN0IGNoYXIgKmVycm9ycywKICAgICBQeU9iamVjdCAqKnJlcywgUHlfc3NpemVfdCAqcmVzcG9zKQogewogICAgIFB5T2JqZWN0ICpyZXB1bmljb2RlID0gTlVMTDsgLyogaW5pdGlhbGl6ZSB0byBwcmV2ZW50IGdjYyB3YXJuaW5nICovCi0gICAgUHlfc3NpemVfdCByZXBzaXplOworICAgIFB5X3NzaXplX3Qgc2l6ZSwgcmVwc2l6ZTsKICAgICBQeV9zc2l6ZV90IG5ld3BvczsKLSAgICBQeV9VTklDT0RFICp1bmkyOworICAgIGVudW0gUHlVbmljb2RlX0tpbmQga2luZDsKKyAgICB2b2lkICpkYXRhOworICAgIFB5X3NzaXplX3QgaW5kZXg7CiAgICAgLyogc3RhcnRwb3MgZm9yIGNvbGxlY3RpbmcgdW5lbmNvZGFibGUgY2hhcnMgKi8KICAgICBQeV9zc2l6ZV90IGNvbGxzdGFydHBvcyA9ICppbnBvczsKICAgICBQeV9zc2l6ZV90IGNvbGxlbmRwb3MgPSAqaW5wb3MrMTsKQEAgLTU2OTcsMTkgKzc5NzAsMjYgQEAKICAgICBjaGFyICplbmNvZGluZyA9ICJjaGFybWFwIjsKICAgICBjaGFyICpyZWFzb24gPSAiY2hhcmFjdGVyIG1hcHMgdG8gPHVuZGVmaW5lZD4iOwogICAgIGNoYXJtYXBlbmNvZGVfcmVzdWx0IHg7CisgICAgUHlfVUNTNCBjaDsKKyAgICBpbnQgdmFsOwogCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmljb2RlKTsKICAgICAvKiBmaW5kIGFsbCB1bmVuY29kYWJsZSBjaGFyYWN0ZXJzICovCiAgICAgd2hpbGUgKGNvbGxlbmRwb3MgPCBzaXplKSB7CiAgICAgICAgIFB5T2JqZWN0ICpyZXA7CiAgICAgICAgIGlmIChQeV9UWVBFKG1hcHBpbmcpID09ICZFbmNvZGluZ01hcFR5cGUpIHsKLSAgICAgICAgICAgIGludCByZXMgPSBlbmNvZGluZ19tYXBfbG9va3VwKHBbY29sbGVuZHBvc10sIG1hcHBpbmcpOwotICAgICAgICAgICAgaWYgKHJlcyAhPSAtMSkKKyAgICAgICAgICAgIGNoID0gUHlVbmljb2RlX1JFQURfQ0hBUih1bmljb2RlLCBjb2xsZW5kcG9zKTsKKyAgICAgICAgICAgIHZhbCA9IGVuY29kaW5nX21hcF9sb29rdXAoY2gsIG1hcHBpbmcpOworICAgICAgICAgICAgaWYgKHZhbCAhPSAtMSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICsrY29sbGVuZHBvczsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgcmVwID0gY2hhcm1hcGVuY29kZV9sb29rdXAocFtjb2xsZW5kcG9zXSwgbWFwcGluZyk7CisgICAgICAgIGNoID0gUHlVbmljb2RlX1JFQURfQ0hBUih1bmljb2RlLCBjb2xsZW5kcG9zKTsKKyAgICAgICAgcmVwID0gY2hhcm1hcGVuY29kZV9sb29rdXAoY2gsIG1hcHBpbmcpOwogICAgICAgICBpZiAocmVwPT1OVUxMKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICBlbHNlIGlmIChyZXAhPVB5X05vbmUpIHsKQEAgLTU3MzUsNyArODAxNSw3IEBACiAgICAgfQogICAgIHN3aXRjaCAoKmtub3duX2Vycm9ySGFuZGxlcikgewogICAgIGNhc2UgMTogLyogc3RyaWN0ICovCi0gICAgICAgIHJhaXNlX2VuY29kZV9leGNlcHRpb24oZXhjZXB0aW9uT2JqZWN0LCBlbmNvZGluZywgcCwgc2l6ZSwgY29sbHN0YXJ0cG9zLCBjb2xsZW5kcG9zLCByZWFzb24pOworICAgICAgICByYWlzZV9lbmNvZGVfZXhjZXB0aW9uKGV4Y2VwdGlvbk9iamVjdCwgZW5jb2RpbmcsIHVuaWNvZGUsIGNvbGxzdGFydHBvcywgY29sbGVuZHBvcywgcmVhc29uKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIGNhc2UgMjogLyogcmVwbGFjZSAqLwogICAgICAgICBmb3IgKGNvbGxwb3MgPSBjb2xsc3RhcnRwb3M7IGNvbGxwb3M8Y29sbGVuZHBvczsgKytjb2xscG9zKSB7CkBAIC01NzQ0LDcgKzgwMjQsNyBAQAogICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgaWYgKHg9PWVuY19GQUlMRUQpIHsKLSAgICAgICAgICAgICAgICByYWlzZV9lbmNvZGVfZXhjZXB0aW9uKGV4Y2VwdGlvbk9iamVjdCwgZW5jb2RpbmcsIHAsIHNpemUsIGNvbGxzdGFydHBvcywgY29sbGVuZHBvcywgcmVhc29uKTsKKyAgICAgICAgICAgICAgICByYWlzZV9lbmNvZGVfZXhjZXB0aW9uKGV4Y2VwdGlvbk9iamVjdCwgZW5jb2RpbmcsIHVuaWNvZGUsIGNvbGxzdGFydHBvcywgY29sbGVuZHBvcywgcmVhc29uKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTU3NTcsMTMgKzgwMzcsMTMgQEAKICAgICAgICAgZm9yIChjb2xscG9zID0gY29sbHN0YXJ0cG9zOyBjb2xscG9zIDwgY29sbGVuZHBvczsgKytjb2xscG9zKSB7CiAgICAgICAgICAgICBjaGFyIGJ1ZmZlclsyKzI5KzErMV07CiAgICAgICAgICAgICBjaGFyICpjcDsKLSAgICAgICAgICAgIHNwcmludGYoYnVmZmVyLCAiJiMlZDsiLCAoaW50KXBbY29sbHBvc10pOworICAgICAgICAgICAgc3ByaW50ZihidWZmZXIsICImIyVkOyIsIChpbnQpUHlVbmljb2RlX1JFQURfQ0hBUih1bmljb2RlLCBjb2xscG9zKSk7CiAgICAgICAgICAgICBmb3IgKGNwID0gYnVmZmVyOyAqY3A7ICsrY3ApIHsKICAgICAgICAgICAgICAgICB4ID0gY2hhcm1hcGVuY29kZV9vdXRwdXQoKmNwLCBtYXBwaW5nLCByZXMsIHJlc3Bvcyk7CiAgICAgICAgICAgICAgICAgaWYgKHg9PWVuY19FWENFUFRJT04pCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgICAgICBlbHNlIGlmICh4PT1lbmNfRkFJTEVEKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlX2VuY29kZV9leGNlcHRpb24oZXhjZXB0aW9uT2JqZWN0LCBlbmNvZGluZywgcCwgc2l6ZSwgY29sbHN0YXJ0cG9zLCBjb2xsZW5kcG9zLCByZWFzb24pOworICAgICAgICAgICAgICAgICAgICByYWlzZV9lbmNvZGVfZXhjZXB0aW9uKGV4Y2VwdGlvbk9iamVjdCwgZW5jb2RpbmcsIHVuaWNvZGUsIGNvbGxzdGFydHBvcywgY29sbGVuZHBvcywgcmVhc29uKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTU3NzIsNyArODA1Miw3IEBACiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIHJlcHVuaWNvZGUgPSB1bmljb2RlX2VuY29kZV9jYWxsX2Vycm9yaGFuZGxlcihlcnJvcnMsIGVycm9ySGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nLCByZWFzb24sIHAsIHNpemUsIGV4Y2VwdGlvbk9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nLCByZWFzb24sIHVuaWNvZGUsIGV4Y2VwdGlvbk9iamVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxzdGFydHBvcywgY29sbGVuZHBvcywgJm5ld3Bvcyk7CiAgICAgICAgIGlmIChyZXB1bmljb2RlID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gLTE7CkBAIC01Nzk2LDE1ICs4MDc2LDIzIEBACiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICAvKiBnZW5lcmF0ZSByZXBsYWNlbWVudCAgKi8KLSAgICAgICAgcmVwc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShyZXB1bmljb2RlKTsKLSAgICAgICAgZm9yICh1bmkyID0gUHlVbmljb2RlX0FTX1VOSUNPREUocmVwdW5pY29kZSk7IHJlcHNpemUtLT4wOyArK3VuaTIpIHsKLSAgICAgICAgICAgIHggPSBjaGFybWFwZW5jb2RlX291dHB1dCgqdW5pMiwgbWFwcGluZywgcmVzLCByZXNwb3MpOworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHJlcHVuaWNvZGUpID09IC0xKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYocmVwdW5pY29kZSk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKyAgICAgICAgcmVwc2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlcHVuaWNvZGUpOworICAgICAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEocmVwdW5pY29kZSk7CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChyZXB1bmljb2RlKTsKKyAgICAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgcmVwc2l6ZTsgaW5kZXgrKykgeworICAgICAgICAgICAgUHlfVUNTNCByZXBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGluZGV4KTsKKyAgICAgICAgICAgIHggPSBjaGFybWFwZW5jb2RlX291dHB1dChyZXBjaCwgbWFwcGluZywgcmVzLCByZXNwb3MpOwogICAgICAgICAgICAgaWYgKHg9PWVuY19FWENFUFRJT04pIHsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYocmVwdW5pY29kZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoeD09ZW5jX0ZBSUxFRCkgewogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXB1bmljb2RlKTsKLSAgICAgICAgICAgICAgICByYWlzZV9lbmNvZGVfZXhjZXB0aW9uKGV4Y2VwdGlvbk9iamVjdCwgZW5jb2RpbmcsIHAsIHNpemUsIGNvbGxzdGFydHBvcywgY29sbGVuZHBvcywgcmVhc29uKTsKKyAgICAgICAgICAgICAgICByYWlzZV9lbmNvZGVfZXhjZXB0aW9uKGV4Y2VwdGlvbk9iamVjdCwgZW5jb2RpbmcsIHVuaWNvZGUsIGNvbGxzdGFydHBvcywgY29sbGVuZHBvcywgcmVhc29uKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTU4MTQsMTUgKzgxMDIsMTYgQEAKICAgICByZXR1cm4gMDsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9FbmNvZGVDaGFybWFwKGNvbnN0IFB5X1VOSUNPREUgKnAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICptYXBwaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK1B5T2JqZWN0ICoKK19QeVVuaWNvZGVfRW5jb2RlQ2hhcm1hcChQeU9iamVjdCAqdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7CiAgICAgLyogb3V0cHV0IG9iamVjdCAqLwogICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOwogICAgIC8qIGN1cnJlbnQgaW5wdXQgcG9zaXRpb24gKi8KICAgICBQeV9zc2l6ZV90IGlucG9zID0gMDsKKyAgICBQeV9zc2l6ZV90IHNpemU7CiAgICAgLyogY3VycmVudCBvdXRwdXQgcG9zaXRpb24gKi8KICAgICBQeV9zc2l6ZV90IHJlc3BvcyA9IDA7CiAgICAgUHlPYmplY3QgKmVycm9ySGFuZGxlciA9IE5VTEw7CkBAIC01ODMyLDkgKzgxMjEsMTMgQEAKICAgICAgKiAzPWlnbm9yZSwgND14bWxjaGFycmVmcmVwbGFjZSAqLwogICAgIGludCBrbm93bl9lcnJvckhhbmRsZXIgPSAtMTsKIAorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodW5pY29kZSkgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmljb2RlKTsKKwogICAgIC8qIERlZmF1bHQgdG8gTGF0aW4tMSAqLwogICAgIGlmIChtYXBwaW5nID09IE5VTEwpCi0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRW5jb2RlTGF0aW4xKHAsIHNpemUsIGVycm9ycyk7CisgICAgICAgIHJldHVybiB1bmljb2RlX2VuY29kZV91Y3MxKHVuaWNvZGUsIGVycm9ycywgMjU2KTsKIAogICAgIC8qIGFsbG9jYXRlIGVub3VnaCBmb3IgYSBzaW1wbGUgZW5jb2Rpbmcgd2l0aG91dAogICAgICAgIHJlcGxhY2VtZW50cywgaWYgd2UgbmVlZCBtb3JlLCB3ZSdsbCByZXNpemUgKi8KQEAgLTU4NDUsMTIgKzgxMzgsMTMgQEAKICAgICAgICAgcmV0dXJuIHJlczsKIAogICAgIHdoaWxlIChpbnBvczxzaXplKSB7CisgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHVuaWNvZGUsIGlucG9zKTsKICAgICAgICAgLyogdHJ5IHRvIGVuY29kZSBpdCAqLwotICAgICAgICBjaGFybWFwZW5jb2RlX3Jlc3VsdCB4ID0gY2hhcm1hcGVuY29kZV9vdXRwdXQocFtpbnBvc10sIG1hcHBpbmcsICZyZXMsICZyZXNwb3MpOworICAgICAgICBjaGFybWFwZW5jb2RlX3Jlc3VsdCB4ID0gY2hhcm1hcGVuY29kZV9vdXRwdXQoY2gsIG1hcHBpbmcsICZyZXMsICZyZXNwb3MpOwogICAgICAgICBpZiAoeD09ZW5jX0VYQ0VQVElPTikgLyogZXJyb3IgKi8KICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgaWYgKHg9PWVuY19GQUlMRUQpIHsgLyogdW5lbmNvZGFibGUgY2hhcmFjdGVyICovCi0gICAgICAgICAgICBpZiAoY2hhcm1hcF9lbmNvZGluZ19lcnJvcihwLCBzaXplLCAmaW5wb3MsIG1hcHBpbmcsCisgICAgICAgICAgICBpZiAoY2hhcm1hcF9lbmNvZGluZ19lcnJvcih1bmljb2RlLCAmaW5wb3MsIG1hcHBpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZXhjLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmtub3duX2Vycm9ySGFuZGxlciwgJmVycm9ySGFuZGxlciwgZXJyb3JzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJlcywgJnJlc3BvcykpIHsKQEAgLTU4NzgsMjggKzgxNzIsNDMgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9Bc0NoYXJtYXBTdHJpbmcoUHlPYmplY3QgKnVuaWNvZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWFwcGluZykKKy8qIERlcHJlY2F0ZWQgKi8KK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9FbmNvZGVDaGFybWFwKGNvbnN0IFB5X1VOSUNPREUgKnAsCisgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK3sKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5T2JqZWN0ICp1bmljb2RlID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHAsIHNpemUpOworICAgIGlmICh1bmljb2RlID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJlc3VsdCA9IF9QeVVuaWNvZGVfRW5jb2RlQ2hhcm1hcCh1bmljb2RlLCBtYXBwaW5nLCBlcnJvcnMpOworICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitQeU9iamVjdCAqCitQeVVuaWNvZGVfQXNDaGFybWFwU3RyaW5nKFB5T2JqZWN0ICp1bmljb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWFwcGluZykKIHsKICAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh1bmljb2RlKSB8fCBtYXBwaW5nID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfRW5jb2RlQ2hhcm1hcChQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmljb2RlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHVuaWNvZGUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICByZXR1cm4gX1B5VW5pY29kZV9FbmNvZGVDaGFybWFwKHVuaWNvZGUsIG1hcHBpbmcsIE5VTEwpOwogfQogCiAvKiBjcmVhdGUgb3IgYWRqdXN0IGEgVW5pY29kZVRyYW5zbGF0ZUVycm9yICovCi1zdGF0aWMgdm9pZCBtYWtlX3RyYW5zbGF0ZV9leGNlcHRpb24oUHlPYmplY3QgKipleGNlcHRpb25PYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHlfVU5JQ09ERSAqdW5pY29kZSwgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnRwb3MsIFB5X3NzaXplX3QgZW5kcG9zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnJlYXNvbikKK3N0YXRpYyB2b2lkCittYWtlX3RyYW5zbGF0ZV9leGNlcHRpb24oUHlPYmplY3QgKipleGNlcHRpb25PYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnVuaWNvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydHBvcywgUHlfc3NpemVfdCBlbmRwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVhc29uKQogewogICAgIGlmICgqZXhjZXB0aW9uT2JqZWN0ID09IE5VTEwpIHsKLSAgICAgICAgKmV4Y2VwdGlvbk9iamVjdCA9IFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0NyZWF0ZSgKLSAgICAgICAgICAgIHVuaWNvZGUsIHNpemUsIHN0YXJ0cG9zLCBlbmRwb3MsIHJlYXNvbik7CisgICAgICAgICpleGNlcHRpb25PYmplY3QgPSBfUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfQ3JlYXRlKAorICAgICAgICAgICAgdW5pY29kZSwgc3RhcnRwb3MsIGVuZHBvcywgcmVhc29uKTsKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIGlmIChQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9TZXRTdGFydCgqZXhjZXB0aW9uT2JqZWN0LCBzdGFydHBvcykpCkBAIC01OTE2LDEzICs4MjI1LDE0IEBACiB9CiAKIC8qIHJhaXNlcyBhIFVuaWNvZGVUcmFuc2xhdGVFcnJvciAqLwotc3RhdGljIHZvaWQgcmFpc2VfdHJhbnNsYXRlX2V4Y2VwdGlvbihQeU9iamVjdCAqKmV4Y2VwdGlvbk9iamVjdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUHlfVU5JQ09ERSAqdW5pY29kZSwgUHlfc3NpemVfdCBzaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0cG9zLCBQeV9zc2l6ZV90IGVuZHBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVhc29uKQorc3RhdGljIHZvaWQKK3JhaXNlX3RyYW5zbGF0ZV9leGNlcHRpb24oUHlPYmplY3QgKipleGNlcHRpb25PYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp1bmljb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0cG9zLCBQeV9zc2l6ZV90IGVuZHBvcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVhc29uKQogewogICAgIG1ha2VfdHJhbnNsYXRlX2V4Y2VwdGlvbihleGNlcHRpb25PYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGUsIHNpemUsIHN0YXJ0cG9zLCBlbmRwb3MsIHJlYXNvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGUsIHN0YXJ0cG9zLCBlbmRwb3MsIHJlYXNvbik7CiAgICAgaWYgKCpleGNlcHRpb25PYmplY3QgIT0gTlVMTCkKICAgICAgICAgUHlDb2RlY19TdHJpY3RFcnJvcnMoKmV4Y2VwdGlvbk9iamVjdCk7CiB9CkBAIC01OTMxLDEyICs4MjQxLDEzIEBACiAgICBidWlsZCBhcmd1bWVudHMsIGNhbGwgdGhlIGNhbGxiYWNrIGFuZCBjaGVjayB0aGUgYXJndW1lbnRzLAogICAgcHV0IHRoZSByZXN1bHQgaW50byBuZXdwb3MgYW5kIHJldHVybiB0aGUgcmVwbGFjZW1lbnQgc3RyaW5nLCB3aGljaAogICAgaGFzIHRvIGJlIGZyZWVkIGJ5IHRoZSBjYWxsZXIgKi8KLXN0YXRpYyBQeU9iamVjdCAqdW5pY29kZV90cmFuc2xhdGVfY2FsbF9lcnJvcmhhbmRsZXIoY29uc3QgY2hhciAqZXJyb3JzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqKmVycm9ySGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVhc29uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQeV9VTklDT0RFICp1bmljb2RlLCBQeV9zc2l6ZV90IHNpemUsIFB5T2JqZWN0ICoqZXhjZXB0aW9uT2JqZWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0cG9zLCBQeV9zc2l6ZV90IGVuZHBvcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCAqbmV3cG9zKQorc3RhdGljIFB5T2JqZWN0ICoKK3VuaWNvZGVfdHJhbnNsYXRlX2NhbGxfZXJyb3JoYW5kbGVyKGNvbnN0IGNoYXIgKmVycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqZXJyb3JIYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVhc29uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnVuaWNvZGUsIFB5T2JqZWN0ICoqZXhjZXB0aW9uT2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydHBvcywgUHlfc3NpemVfdCBlbmRwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90ICpuZXdwb3MpCiB7CiAgICAgc3RhdGljIGNoYXIgKmFyZ3BhcnNlID0gIk8hbjt0cmFuc2xhdGluZyBlcnJvciBoYW5kbGVyIG11c3QgcmV0dXJuIChzdHIsIGludCkgdHVwbGUiOwogCkBAIC01OTUxLDcgKzgyNjIsNyBAQAogICAgIH0KIAogICAgIG1ha2VfdHJhbnNsYXRlX2V4Y2VwdGlvbihleGNlcHRpb25PYmplY3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGUsIHNpemUsIHN0YXJ0cG9zLCBlbmRwb3MsIHJlYXNvbik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaWNvZGUsIHN0YXJ0cG9zLCBlbmRwb3MsIHJlYXNvbik7CiAgICAgaWYgKCpleGNlcHRpb25PYmplY3QgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKQEAgLTU5NzAsMTAgKzgyODEsMTAgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIGlmIChpX25ld3BvczwwKQotICAgICAgICAqbmV3cG9zID0gc2l6ZStpX25ld3BvczsKKyAgICAgICAgKm5ld3BvcyA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpK2lfbmV3cG9zOwogICAgIGVsc2UKICAgICAgICAgKm5ld3BvcyA9IGlfbmV3cG9zOwotICAgIGlmICgqbmV3cG9zPDAgfHwgKm5ld3Bvcz5zaXplKSB7CisgICAgaWYgKCpuZXdwb3M8MCB8fCAqbmV3cG9zPlB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpKSB7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19JbmRleEVycm9yLCAicG9zaXRpb24gJXpkIGZyb20gZXJyb3IgaGFuZGxlciBvdXQgb2YgYm91bmRzIiwgKm5ld3Bvcyk7CiAgICAgICAgIFB5X0RFQ1JFRihyZXN0dXBsZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNTk4Niw4ICs4Mjk3LDggQEAKIC8qIExvb2t1cCB0aGUgY2hhcmFjdGVyIGNoIGluIHRoZSBtYXBwaW5nIGFuZCBwdXQgdGhlIHJlc3VsdCBpbiByZXN1bHQsCiAgICB3aGljaCBtdXN0IGJlIGRlY3JlZmVkIGJ5IHRoZSBjYWxsZXIuCiAgICBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSBvbiBlcnJvciAqLwotc3RhdGljCi1pbnQgY2hhcm1hcHRyYW5zbGF0ZV9sb29rdXAoUHlfVU5JQ09ERSBjLCBQeU9iamVjdCAqbWFwcGluZywgUHlPYmplY3QgKipyZXN1bHQpCitzdGF0aWMgaW50CitjaGFybWFwdHJhbnNsYXRlX2xvb2t1cChQeV9VQ1M0IGMsIFB5T2JqZWN0ICptYXBwaW5nLCBQeU9iamVjdCAqKnJlc3VsdCkKIHsKICAgICBQeU9iamVjdCAqdyA9IFB5TG9uZ19Gcm9tTG9uZygobG9uZyljKTsKICAgICBQeU9iamVjdCAqeDsKQEAgLTYwMzYsMjAgKzgzNDcsMjEgQEAKIC8qIGVuc3VyZSB0aGF0ICpvdXRvYmogaXMgYXQgbGVhc3QgcmVxdWlyZWRzaXplIGNoYXJhY3RlcnMgbG9uZywKICAgIGlmIG5vdCByZWFsbG9jYXRlIGFuZCBhZGp1c3QgdmFyaW91cyBzdGF0ZSB2YXJpYWJsZXMuCiAgICBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSBvbiBlcnJvciAqLwotc3RhdGljCi1pbnQgY2hhcm1hcHRyYW5zbGF0ZV9tYWtlc3BhY2UoUHlPYmplY3QgKipvdXRvYmosIFB5X1VOSUNPREUgKipvdXRwLAorc3RhdGljIGludAorY2hhcm1hcHRyYW5zbGF0ZV9tYWtlc3BhY2UoUHlfVUNTNCAqKm91dG9iaiwgUHlfc3NpemVfdCAqcHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCByZXF1aXJlZHNpemUpCiB7Ci0gICAgUHlfc3NpemVfdCBvbGRzaXplID0gUHlVbmljb2RlX0dFVF9TSVpFKCpvdXRvYmopOworICAgIFB5X3NzaXplX3Qgb2xkc2l6ZSA9ICpwc2l6ZTsKKyAgICBQeV9VQ1M0ICpuZXdfb3V0b2JqOwogICAgIGlmIChyZXF1aXJlZHNpemUgPiBvbGRzaXplKSB7Ci0gICAgICAgIC8qIHJlbWVtYmVyIG9sZCBvdXRwdXQgcG9zaXRpb24gKi8KLSAgICAgICAgUHlfc3NpemVfdCBvdXRwb3MgPSAqb3V0cC1QeVVuaWNvZGVfQVNfVU5JQ09ERSgqb3V0b2JqKTsKICAgICAgICAgLyogZXhwb25lbnRpYWxseSBvdmVyYWxsb2NhdGUgdG8gbWluaW1pemUgcmVhbGxvY2F0aW9ucyAqLwogICAgICAgICBpZiAocmVxdWlyZWRzaXplIDwgMiAqIG9sZHNpemUpCiAgICAgICAgICAgICByZXF1aXJlZHNpemUgPSAyICogb2xkc2l6ZTsKLSAgICAgICAgaWYgKFB5VW5pY29kZV9SZXNpemUob3V0b2JqLCByZXF1aXJlZHNpemUpIDwgMCkKKyAgICAgICAgbmV3X291dG9iaiA9IFB5TWVtX1JlYWxsb2MoKm91dG9iaiwgcmVxdWlyZWRzaXplICogc2l6ZW9mKFB5X1VDUzQpKTsKKyAgICAgICAgaWYgKG5ld19vdXRvYmogPT0gMCkKICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgKm91dHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSgqb3V0b2JqKSArIG91dHBvczsKKyAgICAgICAgKm91dG9iaiA9IG5ld19vdXRvYmo7CisgICAgICAgICpwc2l6ZSA9IHJlcXVpcmVkc2l6ZTsKICAgICB9CiAgICAgcmV0dXJuIDA7CiB9CkBAIC02MDU5LDM4ICs4MzcxLDQ0IEBACiAgICB1bmRlZmluZWQgKGluIHdoaWNoIGNhc2Ugbm8gY2hhcmFjdGVyIHdhcyB3cml0dGVuKS4KICAgIFRoZSBjYWxsZWQgbXVzdCBkZWNyZWYgcmVzdWx0LgogICAgUmV0dXJuIDAgb24gc3VjY2VzcywgLTEgb24gZXJyb3IuICovCi1zdGF0aWMKLWludCBjaGFybWFwdHJhbnNsYXRlX291dHB1dChjb25zdCBQeV9VTklDT0RFICpzdGFydGlucCwgY29uc3QgUHlfVU5JQ09ERSAqY3VyaW5wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaW5zaXplLCBQeU9iamVjdCAqbWFwcGluZywgUHlPYmplY3QgKipvdXRvYmosIFB5X1VOSUNPREUgKipvdXRwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICoqcmVzKQorc3RhdGljIGludAorY2hhcm1hcHRyYW5zbGF0ZV9vdXRwdXQoUHlPYmplY3QgKmlucHV0LCBQeV9zc2l6ZV90IGlwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWFwcGluZywgUHlfVUNTNCAqKm91dHB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKm9zaXplLCBQeV9zc2l6ZV90ICpvcG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKipyZXMpCiB7Ci0gICAgaWYgKGNoYXJtYXB0cmFuc2xhdGVfbG9va3VwKCpjdXJpbnAsIG1hcHBpbmcsIHJlcykpCisgICAgUHlfVUNTNCBjdXJpbnAgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKGlucHV0LCBpcG9zKTsKKyAgICBpZiAoY2hhcm1hcHRyYW5zbGF0ZV9sb29rdXAoY3VyaW5wLCBtYXBwaW5nLCByZXMpKQogICAgICAgICByZXR1cm4gLTE7CiAgICAgaWYgKCpyZXM9PU5VTEwpIHsKICAgICAgICAgLyogbm90IGZvdW5kID0+IGRlZmF1bHQgdG8gMToxIG1hcHBpbmcgKi8KLSAgICAgICAgKigqb3V0cCkrKyA9ICpjdXJpbnA7CisgICAgICAgICgqb3V0cHV0KVsoKm9wb3MpKytdID0gY3VyaW5wOwogICAgIH0KICAgICBlbHNlIGlmICgqcmVzPT1QeV9Ob25lKQogICAgICAgICA7CiAgICAgZWxzZSBpZiAoUHlMb25nX0NoZWNrKCpyZXMpKSB7CiAgICAgICAgIC8qIG5vIG92ZXJmbG93IGNoZWNrLCBiZWNhdXNlIHdlIGtub3cgdGhhdCB0aGUgc3BhY2UgaXMgZW5vdWdoICovCi0gICAgICAgICooKm91dHApKysgPSAoUHlfVU5JQ09ERSlQeUxvbmdfQVNfTE9ORygqcmVzKTsKKyAgICAgICAgKCpvdXRwdXQpWygqb3BvcykrK10gPSAoUHlfVUNTNClQeUxvbmdfQVNfTE9ORygqcmVzKTsKICAgICB9CiAgICAgZWxzZSBpZiAoUHlVbmljb2RlX0NoZWNrKCpyZXMpKSB7Ci0gICAgICAgIFB5X3NzaXplX3QgcmVwc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRSgqcmVzKTsKKyAgICAgICAgUHlfc3NpemVfdCByZXBzaXplOworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKCpyZXMpID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICByZXBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoKnJlcyk7CiAgICAgICAgIGlmIChyZXBzaXplPT0xKSB7CiAgICAgICAgICAgICAvKiBubyBvdmVyZmxvdyBjaGVjaywgYmVjYXVzZSB3ZSBrbm93IHRoYXQgdGhlIHNwYWNlIGlzIGVub3VnaCAqLwotICAgICAgICAgICAgKigqb3V0cCkrKyA9ICpQeVVuaWNvZGVfQVNfVU5JQ09ERSgqcmVzKTsKKyAgICAgICAgICAgICgqb3V0cHV0KVsoKm9wb3MpKytdID0gUHlVbmljb2RlX1JFQURfQ0hBUigqcmVzLCAwKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChyZXBzaXplIT0wKSB7CiAgICAgICAgICAgICAvKiBtb3JlIHRoYW4gb25lIGNoYXJhY3RlciAqLwotICAgICAgICAgICAgUHlfc3NpemVfdCByZXF1aXJlZHNpemUgPSAoKm91dHAtUHlVbmljb2RlX0FTX1VOSUNPREUoKm91dG9iaikpICsKLSAgICAgICAgICAgICAgICAoaW5zaXplIC0gKGN1cmlucC1zdGFydGlucCkpICsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgcmVxdWlyZWRzaXplID0gKm9wb3MgKworICAgICAgICAgICAgICAgIChQeVVuaWNvZGVfR0VUX0xFTkdUSChpbnB1dCkgLSBpcG9zKSArCiAgICAgICAgICAgICAgICAgcmVwc2l6ZSAtIDE7Ci0gICAgICAgICAgICBpZiAoY2hhcm1hcHRyYW5zbGF0ZV9tYWtlc3BhY2Uob3V0b2JqLCBvdXRwLCByZXF1aXJlZHNpemUpKQorICAgICAgICAgICAgUHlfc3NpemVfdCBpOworICAgICAgICAgICAgaWYgKGNoYXJtYXB0cmFuc2xhdGVfbWFrZXNwYWNlKG91dHB1dCwgb3NpemUsIHJlcXVpcmVkc2l6ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgbWVtY3B5KCpvdXRwLCBQeVVuaWNvZGVfQVNfVU5JQ09ERSgqcmVzKSwgc2l6ZW9mKFB5X1VOSUNPREUpKnJlcHNpemUpOwotICAgICAgICAgICAgKm91dHAgKz0gcmVwc2l6ZTsKKyAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IHJlcHNpemU7IGkrKykKKyAgICAgICAgICAgICAgICAoKm91dHB1dClbKCpvcG9zKSsrXSA9IFB5VW5pY29kZV9SRUFEX0NIQVIoKnJlcywgaSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgZWxzZQpAQCAtNjA5OCwyMCArODQxNiwyMSBAQAogICAgIHJldHVybiAwOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX1RyYW5zbGF0ZUNoYXJtYXAoY29uc3QgUHlfVU5JQ09ERSAqcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm1hcHBpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQorUHlPYmplY3QgKgorX1B5VW5pY29kZV9UcmFuc2xhdGVDaGFybWFwKFB5T2JqZWN0ICppbnB1dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqbWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7Ci0gICAgLyogb3V0cHV0IG9iamVjdCAqLwotICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOwotICAgIC8qIHBvaW50ZXJzIHRvIHRoZSBiZWdpbm5pbmcgYW5kIGVuZCsxIG9mIGlucHV0ICovCi0gICAgY29uc3QgUHlfVU5JQ09ERSAqc3RhcnRwID0gcDsKLSAgICBjb25zdCBQeV9VTklDT0RFICplbmRwID0gcCArIHNpemU7Ci0gICAgLyogcG9pbnRlciBpbnRvIHRoZSBvdXRwdXQgKi8KLSAgICBQeV9VTklDT0RFICpzdHI7CisgICAgLyogaW5wdXQgb2JqZWN0ICovCisgICAgY2hhciAqaWRhdGE7CisgICAgUHlfc3NpemVfdCBzaXplLCBpOworICAgIGludCBraW5kOworICAgIC8qIG91dHB1dCBidWZmZXIgKi8KKyAgICBQeV9VQ1M0ICpvdXRwdXQgPSBOVUxMOworICAgIFB5X3NzaXplX3Qgb3NpemU7CisgICAgUHlPYmplY3QgKnJlczsKICAgICAvKiBjdXJyZW50IG91dHB1dCBwb3NpdGlvbiAqLwotICAgIFB5X3NzaXplX3QgcmVzcG9zID0gMDsKKyAgICBQeV9zc2l6ZV90IG9wb3M7CiAgICAgY2hhciAqcmVhc29uID0gImNoYXJhY3RlciBtYXBzIHRvIDx1bmRlZmluZWQ+IjsKICAgICBQeU9iamVjdCAqZXJyb3JIYW5kbGVyID0gTlVMTDsKICAgICBQeU9iamVjdCAqZXhjID0gTlVMTDsKQEAgLTYxMjUsMzggKzg0NDQsNTIgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShpbnB1dCkgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlkYXRhID0gKGNoYXIqKVB5VW5pY29kZV9EQVRBKGlucHV0KTsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoaW5wdXQpOworICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChpbnB1dCk7CisgICAgaSA9IDA7CisKKyAgICBpZiAoc2l6ZSA9PSAwKSB7CisgICAgICAgIFB5X0lOQ1JFRihpbnB1dCk7CisgICAgICAgIHJldHVybiBpbnB1dDsKKyAgICB9CisKICAgICAvKiBhbGxvY2F0ZSBlbm91Z2ggZm9yIGEgc2ltcGxlIDE6MSB0cmFuc2xhdGlvbiB3aXRob3V0CiAgICAgICAgcmVwbGFjZW1lbnRzLCBpZiB3ZSBuZWVkIG1vcmUsIHdlJ2xsIHJlc2l6ZSAqLwotICAgIHJlcyA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLCBzaXplKTsKLSAgICBpZiAocmVzID09IE5VTEwpCisgICAgb3NpemUgPSBzaXplOworICAgIG91dHB1dCA9IFB5TWVtX01hbGxvYyhvc2l6ZSAqIHNpemVvZihQeV9VQ1M0KSk7CisgICAgb3BvcyA9IDA7CisgICAgaWYgKG91dHB1dCA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICBpZiAoc2l6ZSA9PSAwKQotICAgICAgICByZXR1cm4gcmVzOwotICAgIHN0ciA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlcyk7CisgICAgfQogCi0gICAgd2hpbGUgKHA8ZW5kcCkgeworICAgIHdoaWxlIChpPHNpemUpIHsKICAgICAgICAgLyogdHJ5IHRvIGVuY29kZSBpdCAqLwogICAgICAgICBQeU9iamVjdCAqeCA9IE5VTEw7Ci0gICAgICAgIGlmIChjaGFybWFwdHJhbnNsYXRlX291dHB1dChzdGFydHAsIHAsIHNpemUsIG1hcHBpbmcsICZyZXMsICZzdHIsICZ4KSkgeworICAgICAgICBpZiAoY2hhcm1hcHRyYW5zbGF0ZV9vdXRwdXQoaW5wdXQsIGksIG1hcHBpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmb3V0cHV0LCAmb3NpemUsICZvcG9zLCAmeCkpIHsKICAgICAgICAgICAgIFB5X1hERUNSRUYoeCk7CiAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgIH0KICAgICAgICAgUHlfWERFQ1JFRih4KTsKICAgICAgICAgaWYgKHghPVB5X05vbmUpIC8qIGl0IHdvcmtlZCA9PiBhZGp1c3QgaW5wdXQgcG9pbnRlciAqLwotICAgICAgICAgICAgKytwOworICAgICAgICAgICAgKytpOwogICAgICAgICBlbHNlIHsgLyogdW50cmFuc2xhdGFibGUgY2hhcmFjdGVyICovCiAgICAgICAgICAgICBQeU9iamVjdCAqcmVwdW5pY29kZSA9IE5VTEw7IC8qIGluaXRpYWxpemUgdG8gcHJldmVudCBnY2Mgd2FybmluZyAqLwogICAgICAgICAgICAgUHlfc3NpemVfdCByZXBzaXplOwogICAgICAgICAgICAgUHlfc3NpemVfdCBuZXdwb3M7Ci0gICAgICAgICAgICBQeV9VTklDT0RFICp1bmkyOworICAgICAgICAgICAgUHlfc3NpemVfdCB1bmkyOwogICAgICAgICAgICAgLyogc3RhcnRwb3MgZm9yIGNvbGxlY3RpbmcgdW50cmFuc2xhdGFibGUgY2hhcnMgKi8KLSAgICAgICAgICAgIGNvbnN0IFB5X1VOSUNPREUgKmNvbGxzdGFydCA9IHA7Ci0gICAgICAgICAgICBjb25zdCBQeV9VTklDT0RFICpjb2xsZW5kID0gcCsxOwotICAgICAgICAgICAgY29uc3QgUHlfVU5JQ09ERSAqY29sbDsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgY29sbHN0YXJ0ID0gaTsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgY29sbGVuZCA9IGkrMTsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgY29sbDsKIAogICAgICAgICAgICAgLyogZmluZCBhbGwgdW50cmFuc2xhdGFibGUgY2hhcmFjdGVycyAqLwotICAgICAgICAgICAgd2hpbGUgKGNvbGxlbmQgPCBlbmRwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNoYXJtYXB0cmFuc2xhdGVfbG9va3VwKCpjb2xsZW5kLCBtYXBwaW5nLCAmeCkpCisgICAgICAgICAgICB3aGlsZSAoY29sbGVuZCA8IHNpemUpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2hhcm1hcHRyYW5zbGF0ZV9sb29rdXAoUHlVbmljb2RlX1JFQUQoa2luZCxpZGF0YSwgY29sbGVuZCksIG1hcHBpbmcsICZ4KSkKICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgIFB5X1hERUNSRUYoeCk7CiAgICAgICAgICAgICAgICAgaWYgKHghPVB5X05vbmUpCkBAIC02MTc5LDgwICs4NTEyLDk0IEBACiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzd2l0Y2ggKGtub3duX2Vycm9ySGFuZGxlcikgewogICAgICAgICAgICAgY2FzZSAxOiAvKiBzdHJpY3QgKi8KLSAgICAgICAgICAgICAgICByYWlzZV90cmFuc2xhdGVfZXhjZXB0aW9uKCZleGMsIHN0YXJ0cCwgc2l6ZSwgY29sbHN0YXJ0LXN0YXJ0cCwgY29sbGVuZC1zdGFydHAsIHJlYXNvbik7CisgICAgICAgICAgICAgICAgcmFpc2VfdHJhbnNsYXRlX2V4Y2VwdGlvbigmZXhjLCBpbnB1dCwgY29sbHN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVuZCwgcmVhc29uKTsKICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICBjYXNlIDI6IC8qIHJlcGxhY2UgKi8KICAgICAgICAgICAgICAgICAvKiBObyBuZWVkIHRvIGNoZWNrIGZvciBzcGFjZSwgdGhpcyBpcyBhIDE6MSByZXBsYWNlbWVudCAqLwotICAgICAgICAgICAgICAgIGZvciAoY29sbCA9IGNvbGxzdGFydDsgY29sbDxjb2xsZW5kOyArK2NvbGwpCi0gICAgICAgICAgICAgICAgICAgICpzdHIrKyA9ICc/JzsKKyAgICAgICAgICAgICAgICBmb3IgKGNvbGwgPSBjb2xsc3RhcnQ7IGNvbGw8Y29sbGVuZDsgY29sbCsrKQorICAgICAgICAgICAgICAgICAgICBvdXRwdXRbb3BvcysrXSA9ICc/JzsKICAgICAgICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KICAgICAgICAgICAgIGNhc2UgMzogLyogaWdub3JlICovCi0gICAgICAgICAgICAgICAgcCA9IGNvbGxlbmQ7CisgICAgICAgICAgICAgICAgaSA9IGNvbGxlbmQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIDQ6IC8qIHhtbGNoYXJyZWZyZXBsYWNlICovCi0gICAgICAgICAgICAgICAgLyogZ2VuZXJhdGUgcmVwbGFjZW1lbnQgKHRlbXBvcmFyaWx5IChtaXMpdXNlcyBwKSAqLwotICAgICAgICAgICAgICAgIGZvciAocCA9IGNvbGxzdGFydDsgcCA8IGNvbGxlbmQ7ICsrcCkgeworICAgICAgICAgICAgICAgIC8qIGdlbmVyYXRlIHJlcGxhY2VtZW50ICh0ZW1wb3JhcmlseSAobWlzKXVzZXMgaSkgKi8KKyAgICAgICAgICAgICAgICBmb3IgKGkgPSBjb2xsc3RhcnQ7IGkgPCBjb2xsZW5kOyArK2kpIHsKICAgICAgICAgICAgICAgICAgICAgY2hhciBidWZmZXJbMisyOSsxKzFdOwogICAgICAgICAgICAgICAgICAgICBjaGFyICpjcDsKLSAgICAgICAgICAgICAgICAgICAgc3ByaW50ZihidWZmZXIsICImIyVkOyIsIChpbnQpKnApOwotICAgICAgICAgICAgICAgICAgICBpZiAoY2hhcm1hcHRyYW5zbGF0ZV9tYWtlc3BhY2UoJnJlcywgJnN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHItUHlVbmljb2RlX0FTX1VOSUNPREUocmVzKSkrc3RybGVuKGJ1ZmZlcikrKGVuZHAtY29sbGVuZCkpKQorICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKGJ1ZmZlciwgIiYjJWQ7IiwgUHlVbmljb2RlX1JFQUQoa2luZCwgaWRhdGEsIGkpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoYXJtYXB0cmFuc2xhdGVfbWFrZXNwYWNlKCZvdXRwdXQsICZvc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wb3Mrc3RybGVuKGJ1ZmZlcikrKHNpemUtY29sbGVuZCkpKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgICAgICBmb3IgKGNwID0gYnVmZmVyOyAqY3A7ICsrY3ApCi0gICAgICAgICAgICAgICAgICAgICAgICAqc3RyKysgPSAqY3A7CisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXRbb3BvcysrXSA9ICpjcDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcCA9IGNvbGxlbmQ7CisgICAgICAgICAgICAgICAgaSA9IGNvbGxlbmQ7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIHJlcHVuaWNvZGUgPSB1bmljb2RlX3RyYW5zbGF0ZV9jYWxsX2Vycm9yaGFuZGxlcihlcnJvcnMsICZlcnJvckhhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbiwgc3RhcnRwLCBzaXplLCAmZXhjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsc3RhcnQtc3RhcnRwLCBjb2xsZW5kLXN0YXJ0cCwgJm5ld3Bvcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYXNvbiwgaW5wdXQsICZleGMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxzdGFydCwgY29sbGVuZCwgJm5ld3Bvcyk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcHVuaWNvZGUgPT0gTlVMTCkKICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgICAgIC8qIGdlbmVyYXRlIHJlcGxhY2VtZW50ICAqLwotICAgICAgICAgICAgICAgIHJlcHNpemUgPSBQeVVuaWNvZGVfR0VUX1NJWkUocmVwdW5pY29kZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGNoYXJtYXB0cmFuc2xhdGVfbWFrZXNwYWNlKCZyZXMsICZzdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHItUHlVbmljb2RlX0FTX1VOSUNPREUocmVzKSkrcmVwc2l6ZSsoZW5kcC1jb2xsZW5kKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHJlcHVuaWNvZGUpID09IC0xKSB7CiAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXB1bmljb2RlKTsKICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBmb3IgKHVuaTIgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXB1bmljb2RlKTsgcmVwc2l6ZS0tPjA7ICsrdW5pMikKLSAgICAgICAgICAgICAgICAgICAgKnN0cisrID0gKnVuaTI7Ci0gICAgICAgICAgICAgICAgcCA9IHN0YXJ0cCArIG5ld3BvczsKKyAgICAgICAgICAgICAgICAvKiBnZW5lcmF0ZSByZXBsYWNlbWVudCAgKi8KKyAgICAgICAgICAgICAgICByZXBzaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocmVwdW5pY29kZSk7CisgICAgICAgICAgICAgICAgaWYgKGNoYXJtYXB0cmFuc2xhdGVfbWFrZXNwYWNlKCZvdXRwdXQsICZvc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3BvcytyZXBzaXplKyhzaXplLWNvbGxlbmQpKSkgeworICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYocmVwdW5pY29kZSk7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZm9yICh1bmkyID0gMDsgcmVwc2l6ZS0tPjA7ICsrdW5pMikKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0W29wb3MrK10gPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHJlcHVuaWNvZGUsIHVuaTIpOworICAgICAgICAgICAgICAgIGkgPSBuZXdwb3M7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHJlcHVuaWNvZGUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIC8qIFJlc2l6ZSBpZiB3ZSBhbGxvY2F0ZWQgdG8gbXVjaCAqLwotICAgIHJlc3BvcyA9IHN0ci1QeVVuaWNvZGVfQVNfVU5JQ09ERShyZXMpOwotICAgIGlmIChyZXNwb3M8UHlVbmljb2RlX0dFVF9TSVpFKHJlcykpIHsKLSAgICAgICAgaWYgKFB5VW5pY29kZV9SZXNpemUoJnJlcywgcmVzcG9zKSA8IDApCi0gICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgfQorICAgIHJlcyA9IFB5VW5pY29kZV9Gcm9tS2luZEFuZERhdGEoUHlVbmljb2RlXzRCWVRFX0tJTkQsIG91dHB1dCwgb3Bvcyk7CisgICAgaWYgKCFyZXMpCisgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICBQeU1lbV9GcmVlKG91dHB1dCk7CiAgICAgUHlfWERFQ1JFRihleGMpOwogICAgIFB5X1hERUNSRUYoZXJyb3JIYW5kbGVyKTsKICAgICByZXR1cm4gcmVzOwogCiAgIG9uRXJyb3I6Ci0gICAgUHlfWERFQ1JFRihyZXMpOworICAgIFB5TWVtX0ZyZWUob3V0cHV0KTsKICAgICBQeV9YREVDUkVGKGV4Yyk7CiAgICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOwogICAgIHJldHVybiBOVUxMOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX1RyYW5zbGF0ZShQeU9iamVjdCAqc3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm1hcHBpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCisvKiBEZXByZWNhdGVkLiBVc2UgUHlVbmljb2RlX1RyYW5zbGF0ZSBpbnN0ZWFkLiAqLworUHlPYmplY3QgKgorUHlVbmljb2RlX1RyYW5zbGF0ZUNoYXJtYXAoY29uc3QgUHlfVU5JQ09ERSAqcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICptYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQoreworICAgIFB5T2JqZWN0ICp1bmljb2RlID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHAsIHNpemUpOworICAgIGlmICghdW5pY29kZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIF9QeVVuaWNvZGVfVHJhbnNsYXRlQ2hhcm1hcCh1bmljb2RlLCBtYXBwaW5nLCBlcnJvcnMpOworfQorCitQeU9iamVjdCAqCitQeVVuaWNvZGVfVHJhbnNsYXRlKFB5T2JqZWN0ICpzdHIsCisgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICptYXBwaW5nLAorICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICplcnJvcnMpCiB7CiAgICAgUHlPYmplY3QgKnJlc3VsdDsKIAogICAgIHN0ciA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cik7CiAgICAgaWYgKHN0ciA9PSBOVUxMKQogICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgcmVzdWx0ID0gUHlVbmljb2RlX1RyYW5zbGF0ZUNoYXJtYXAoUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBwaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycyk7CisgICAgcmVzdWx0ID0gX1B5VW5pY29kZV9UcmFuc2xhdGVDaGFybWFwKHN0ciwgbWFwcGluZywgZXJyb3JzKTsKICAgICBQeV9ERUNSRUYoc3RyKTsKICAgICByZXR1cm4gcmVzdWx0OwogCkBAIC02MjYxLDE3OSArODYwOCwzMjQgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIFB5X1VDUzQKK2ZpeF9kZWNpbWFsX2FuZF9zcGFjZV90b19hc2NpaShQeU9iamVjdCAqc2VsZikKK3sKKyAgICAvKiBObyBuZWVkIHRvIGNhbGwgUHlVbmljb2RlX1JFQURZKHNlbGYpIGJlY2F1c2UgdGhpcyBmdW5jdGlvbiBpcyBvbmx5CisgICAgICAgY2FsbGVkIGFzIGEgY2FsbGJhY2sgZnJvbSBmaXh1cCgpIHdoaWNoIGRvZXMgaXQgYWxyZWFkeS4gKi8KKyAgICBjb25zdCBQeV9zc2l6ZV90IGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpOworICAgIGNvbnN0IGludCBraW5kID0gUHlVbmljb2RlX0tJTkQoc2VsZik7CisgICAgdm9pZCAqZGF0YSA9IFB5VW5pY29kZV9EQVRBKHNlbGYpOworICAgIFB5X1VDUzQgbWF4Y2hhciA9IDEyNywgY2gsIGZpeGVkOworICAgIGludCBtb2RpZmllZCA9IDA7CisgICAgUHlfc3NpemVfdCBpOworCisgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgKytpKSB7CisgICAgICAgIGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSk7CisgICAgICAgIGZpeGVkID0gMDsKKyAgICAgICAgaWYgKGNoID4gMTI3KSB7CisgICAgICAgICAgICBpZiAoUHlfVU5JQ09ERV9JU1NQQUNFKGNoKSkKKyAgICAgICAgICAgICAgICBmaXhlZCA9ICcgJzsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGNvbnN0IGludCBkZWNpbWFsID0gUHlfVU5JQ09ERV9UT0RFQ0lNQUwoY2gpOworICAgICAgICAgICAgICAgIGlmIChkZWNpbWFsID49IDApCisgICAgICAgICAgICAgICAgICAgIGZpeGVkID0gJzAnICsgZGVjaW1hbDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChmaXhlZCAhPSAwKSB7CisgICAgICAgICAgICAgICAgbW9kaWZpZWQgPSAxOworICAgICAgICAgICAgICAgIG1heGNoYXIgPSBNQVhfTUFYQ0hBUihtYXhjaGFyLCBmaXhlZCk7CisgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIGksIGZpeGVkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtYXhjaGFyID0gTUFYX01BWENIQVIobWF4Y2hhciwgY2gpOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIChtb2RpZmllZCkgPyBtYXhjaGFyIDogMDsKK30KKworUHlPYmplY3QgKgorX1B5VW5pY29kZV9UcmFuc2Zvcm1EZWNpbWFsQW5kU3BhY2VUb0FTQ0lJKFB5T2JqZWN0ICp1bmljb2RlKQoreworICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHVuaWNvZGUpKSB7CisgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh1bmljb2RlKSA8PSAxMjcpIHsKKyAgICAgICAgLyogSWYgdGhlIHN0cmluZyBpcyBhbHJlYWR5IEFTQ0lJLCBqdXN0IHJldHVybiB0aGUgc2FtZSBzdHJpbmcgKi8KKyAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGUpOworICAgICAgICByZXR1cm4gdW5pY29kZTsKKyAgICB9CisgICAgcmV0dXJuIGZpeHVwKHVuaWNvZGUsIGZpeF9kZWNpbWFsX2FuZF9zcGFjZV90b19hc2NpaSk7Cit9CisKIFB5T2JqZWN0ICoKIFB5VW5pY29kZV9UcmFuc2Zvcm1EZWNpbWFsVG9BU0NJSShQeV9VTklDT0RFICpzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuZ3RoKQogewotICAgIFB5T2JqZWN0ICpyZXN1bHQ7Ci0gICAgUHlfVU5JQ09ERSAqcDsgLyogd3JpdGUgcG9pbnRlciBpbnRvIHJlc3VsdCAqLworICAgIFB5T2JqZWN0ICpkZWNpbWFsOwogICAgIFB5X3NzaXplX3QgaTsKLSAgICAvKiBDb3B5IHRvIGEgbmV3IHN0cmluZyAqLwotICAgIHJlc3VsdCA9IChQeU9iamVjdCAqKV9QeVVuaWNvZGVfTmV3KGxlbmd0aCk7Ci0gICAgUHlfVU5JQ09ERV9DT1BZKFB5VW5pY29kZV9BU19VTklDT0RFKHJlc3VsdCksIHMsIGxlbmd0aCk7Ci0gICAgaWYgKHJlc3VsdCA9PSBOVUxMKQotICAgICAgICByZXR1cm4gcmVzdWx0OwotICAgIHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXN1bHQpOwotICAgIC8qIEl0ZXJhdGUgb3ZlciBjb2RlIHBvaW50cyAqLworICAgIFB5X1VDUzQgbWF4Y2hhcjsKKyAgICBlbnVtIFB5VW5pY29kZV9LaW5kIGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKKworICAgIG1heGNoYXIgPSAxMjc7CiAgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgY2ggPXNbaV07CisgICAgICAgIFB5X1VOSUNPREUgY2ggPSBzW2ldOwogICAgICAgICBpZiAoY2ggPiAxMjcpIHsKICAgICAgICAgICAgIGludCBkZWNpbWFsID0gUHlfVU5JQ09ERV9UT0RFQ0lNQUwoY2gpOwogICAgICAgICAgICAgaWYgKGRlY2ltYWwgPj0gMCkKLSAgICAgICAgICAgICAgICBwW2ldID0gJzAnICsgZGVjaW1hbDsKKyAgICAgICAgICAgICAgICBjaCA9ICcwJyArIGRlY2ltYWw7CisgICAgICAgICAgICBtYXhjaGFyID0gTUFYX01BWENIQVIobWF4Y2hhciwgY2gpOwogICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiByZXN1bHQ7CisKKyAgICAvKiBDb3B5IHRvIGEgbmV3IHN0cmluZyAqLworICAgIGRlY2ltYWwgPSBQeVVuaWNvZGVfTmV3KGxlbmd0aCwgbWF4Y2hhcik7CisgICAgaWYgKGRlY2ltYWwgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIGRlY2ltYWw7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKGRlY2ltYWwpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShkZWNpbWFsKTsKKyAgICAvKiBJdGVyYXRlIG92ZXIgY29kZSBwb2ludHMgKi8KKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgUHlfVU5JQ09ERSBjaCA9IHNbaV07CisgICAgICAgIGlmIChjaCA+IDEyNykgeworICAgICAgICAgICAgaW50IGRlY2ltYWwgPSBQeV9VTklDT0RFX1RPREVDSU1BTChjaCk7CisgICAgICAgICAgICBpZiAoZGVjaW1hbCA+PSAwKQorICAgICAgICAgICAgICAgIGNoID0gJzAnICsgZGVjaW1hbDsKKyAgICAgICAgfQorICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgaSwgY2gpOworICAgIH0KKyAgICByZXR1cm4gdW5pY29kZV9yZXN1bHQoZGVjaW1hbCk7CiB9CiAvKiAtLS0gRGVjaW1hbCBFbmNvZGVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotaW50IFB5VW5pY29kZV9FbmNvZGVEZWNpbWFsKFB5X1VOSUNPREUgKnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqb3V0cHV0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVycm9ycykKK2ludAorUHlVbmljb2RlX0VuY29kZURlY2ltYWwoUHlfVU5JQ09ERSAqcywKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqb3V0cHV0LAorICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqZXJyb3JzKQogewotICAgIFB5X1VOSUNPREUgKnAsICplbmQ7Ci0gICAgUHlPYmplY3QgKmVycm9ySGFuZGxlciA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKmV4YyA9IE5VTEw7Ci0gICAgY29uc3QgY2hhciAqZW5jb2RpbmcgPSAiZGVjaW1hbCI7Ci0gICAgY29uc3QgY2hhciAqcmVhc29uID0gImludmFsaWQgZGVjaW1hbCBVbmljb2RlIHN0cmluZyI7Ci0gICAgLyogdGhlIGZvbGxvd2luZyB2YXJpYWJsZSBpcyB1c2VkIGZvciBjYWNoaW5nIHN0cmluZyBjb21wYXJpc29ucwotICAgICAqIC0xPW5vdCBpbml0aWFsaXplZCwgMD11bmtub3duLCAxPXN0cmljdCwgMj1yZXBsYWNlLCAzPWlnbm9yZSwgND14bWxjaGFycmVmcmVwbGFjZSAqLwotICAgIGludCBrbm93bl9lcnJvckhhbmRsZXIgPSAtMTsKKyAgICBQeU9iamVjdCAqdW5pY29kZTsKKyAgICBQeV9zc2l6ZV90IGk7CisgICAgZW51bSBQeVVuaWNvZGVfS2luZCBraW5kOworICAgIHZvaWQgKmRhdGE7CiAKICAgICBpZiAob3V0cHV0ID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KIAotICAgIHAgPSBzOwotICAgIGVuZCA9IHMgKyBsZW5ndGg7Ci0gICAgd2hpbGUgKHAgPCBlbmQpIHsKLSAgICAgICAgcmVnaXN0ZXIgUHlfVU5JQ09ERSBjaCA9ICpwOworICAgIHVuaWNvZGUgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocywgbGVuZ3RoKTsKKyAgICBpZiAodW5pY29kZSA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHVuaWNvZGUpID09IC0xKSB7CisgICAgICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpOworCisgICAgZm9yIChpPTA7IGkgPCBsZW5ndGg7ICkgeworICAgICAgICBQeU9iamVjdCAqZXhjOworICAgICAgICBQeV9VQ1M0IGNoOwogICAgICAgICBpbnQgZGVjaW1hbDsKLSAgICAgICAgUHlPYmplY3QgKnJlcHVuaWNvZGU7Ci0gICAgICAgIFB5X3NzaXplX3QgcmVwc2l6ZTsKLSAgICAgICAgUHlfc3NpemVfdCBuZXdwb3M7Ci0gICAgICAgIFB5X1VOSUNPREUgKnVuaTI7Ci0gICAgICAgIFB5X1VOSUNPREUgKmNvbGxzdGFydDsKLSAgICAgICAgUHlfVU5JQ09ERSAqY29sbGVuZDsKKyAgICAgICAgUHlfc3NpemVfdCBzdGFydHBvczsKKworICAgICAgICBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpOwogCiAgICAgICAgIGlmIChQeV9VTklDT0RFX0lTU1BBQ0UoY2gpKSB7CiAgICAgICAgICAgICAqb3V0cHV0KysgPSAnICc7Ci0gICAgICAgICAgICArK3A7CisgICAgICAgICAgICBpKys7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICBkZWNpbWFsID0gUHlfVU5JQ09ERV9UT0RFQ0lNQUwoY2gpOwogICAgICAgICBpZiAoZGVjaW1hbCA+PSAwKSB7CiAgICAgICAgICAgICAqb3V0cHV0KysgPSAnMCcgKyBkZWNpbWFsOwotICAgICAgICAgICAgKytwOworICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKDAgPCBjaCAmJiBjaCA8IDI1NikgewogICAgICAgICAgICAgKm91dHB1dCsrID0gKGNoYXIpY2g7Ci0gICAgICAgICAgICArK3A7CisgICAgICAgICAgICBpKys7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAgICAvKiBBbGwgb3RoZXIgY2hhcmFjdGVycyBhcmUgY29uc2lkZXJlZCB1bmVuY29kYWJsZSAqLwotICAgICAgICBjb2xsc3RhcnQgPSBwOwotICAgICAgICBmb3IgKGNvbGxlbmQgPSBwKzE7IGNvbGxlbmQgPCBlbmQ7IGNvbGxlbmQrKykgewotICAgICAgICAgICAgaWYgKCgwIDwgKmNvbGxlbmQgJiYgKmNvbGxlbmQgPCAyNTYpIHx8Ci0gICAgICAgICAgICAgICAgUHlfVU5JQ09ERV9JU1NQQUNFKCpjb2xsZW5kKSB8fAotICAgICAgICAgICAgICAgIDAgPD0gUHlfVU5JQ09ERV9UT0RFQ0lNQUwoKmNvbGxlbmQpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIC8qIGNhY2hlIGNhbGxiYWNrIG5hbWUgbG9va3VwCi0gICAgICAgICAqIChpZiBub3QgZG9uZSB5ZXQsIGkuZS4gaXQncyB0aGUgZmlyc3QgZXJyb3IpICovCi0gICAgICAgIGlmIChrbm93bl9lcnJvckhhbmRsZXI9PS0xKSB7Ci0gICAgICAgICAgICBpZiAoKGVycm9ycz09TlVMTCkgfHwgKCFzdHJjbXAoZXJyb3JzLCAic3RyaWN0IikpKQotICAgICAgICAgICAgICAgIGtub3duX2Vycm9ySGFuZGxlciA9IDE7Ci0gICAgICAgICAgICBlbHNlIGlmICghc3RyY21wKGVycm9ycywgInJlcGxhY2UiKSkKLSAgICAgICAgICAgICAgICBrbm93bl9lcnJvckhhbmRsZXIgPSAyOwotICAgICAgICAgICAgZWxzZSBpZiAoIXN0cmNtcChlcnJvcnMsICJpZ25vcmUiKSkKLSAgICAgICAgICAgICAgICBrbm93bl9lcnJvckhhbmRsZXIgPSAzOwotICAgICAgICAgICAgZWxzZSBpZiAoIXN0cmNtcChlcnJvcnMsICJ4bWxjaGFycmVmcmVwbGFjZSIpKQotICAgICAgICAgICAgICAgIGtub3duX2Vycm9ySGFuZGxlciA9IDQ7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAga25vd25fZXJyb3JIYW5kbGVyID0gMDsKLSAgICAgICAgfQotICAgICAgICBzd2l0Y2ggKGtub3duX2Vycm9ySGFuZGxlcikgewotICAgICAgICBjYXNlIDE6IC8qIHN0cmljdCAqLwotICAgICAgICAgICAgcmFpc2VfZW5jb2RlX2V4Y2VwdGlvbigmZXhjLCBlbmNvZGluZywgcywgbGVuZ3RoLCBjb2xsc3RhcnQtcywgY29sbGVuZC1zLCByZWFzb24pOwotICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICBjYXNlIDI6IC8qIHJlcGxhY2UgKi8KLSAgICAgICAgICAgIGZvciAocCA9IGNvbGxzdGFydDsgcCA8IGNvbGxlbmQ7ICsrcCkKLSAgICAgICAgICAgICAgICAqb3V0cHV0KysgPSAnPyc7Ci0gICAgICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8KLSAgICAgICAgY2FzZSAzOiAvKiBpZ25vcmUgKi8KLSAgICAgICAgICAgIHAgPSBjb2xsZW5kOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgNDogLyogeG1sY2hhcnJlZnJlcGxhY2UgKi8KLSAgICAgICAgICAgIC8qIGdlbmVyYXRlIHJlcGxhY2VtZW50ICh0ZW1wb3JhcmlseSAobWlzKXVzZXMgcCkgKi8KLSAgICAgICAgICAgIGZvciAocCA9IGNvbGxzdGFydDsgcCA8IGNvbGxlbmQ7ICsrcCkKLSAgICAgICAgICAgICAgICBvdXRwdXQgKz0gc3ByaW50ZihvdXRwdXQsICImIyVkOyIsIChpbnQpKnApOwotICAgICAgICAgICAgcCA9IGNvbGxlbmQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJlcHVuaWNvZGUgPSB1bmljb2RlX2VuY29kZV9jYWxsX2Vycm9yaGFuZGxlcihlcnJvcnMsICZlcnJvckhhbmRsZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RpbmcsIHJlYXNvbiwgcywgbGVuZ3RoLCAmZXhjLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxzdGFydC1zLCBjb2xsZW5kLXMsICZuZXdwb3MpOwotICAgICAgICAgICAgaWYgKHJlcHVuaWNvZGUgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICBpZiAoIVB5VW5pY29kZV9DaGVjayhyZXB1bmljb2RlKSkgewotICAgICAgICAgICAgICAgIC8qIEJ5dGUgcmVzdWx0cyBub3Qgc3VwcG9ydGVkLCBzaW5jZSB0aGV5IGhhdmUgbm8gZGVjaW1hbCBwcm9wZXJ0eS4gKi8KLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiZXJyb3IgaGFuZGxlciBzaG91bGQgcmV0dXJuIHVuaWNvZGUiKTsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYocmVwdW5pY29kZSk7Ci0gICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLyogZ2VuZXJhdGUgcmVwbGFjZW1lbnQgICovCi0gICAgICAgICAgICByZXBzaXplID0gUHlVbmljb2RlX0dFVF9TSVpFKHJlcHVuaWNvZGUpOwotICAgICAgICAgICAgZm9yICh1bmkyID0gUHlVbmljb2RlX0FTX1VOSUNPREUocmVwdW5pY29kZSk7IHJlcHNpemUtLT4wOyArK3VuaTIpIHsKLSAgICAgICAgICAgICAgICBQeV9VTklDT0RFIGNoID0gKnVuaTI7Ci0gICAgICAgICAgICAgICAgaWYgKFB5X1VOSUNPREVfSVNTUEFDRShjaCkpCi0gICAgICAgICAgICAgICAgICAgICpvdXRwdXQrKyA9ICcgJzsKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgZGVjaW1hbCA9IFB5X1VOSUNPREVfVE9ERUNJTUFMKGNoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGRlY2ltYWwgPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICpvdXRwdXQrKyA9ICcwJyArIGRlY2ltYWw7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKDAgPCBjaCAmJiBjaCA8IDI1NikKLSAgICAgICAgICAgICAgICAgICAgICAgICpvdXRwdXQrKyA9IChjaGFyKWNoOwotICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXB1bmljb2RlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlX2VuY29kZV9leGNlcHRpb24oJmV4YywgZW5jb2RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMsIGxlbmd0aCwgY29sbHN0YXJ0LXMsIGNvbGxlbmQtcywgcmVhc29uKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHAgPSBzICsgbmV3cG9zOwotICAgICAgICAgICAgUHlfREVDUkVGKHJlcHVuaWNvZGUpOwotICAgICAgICB9CisKKyAgICAgICAgc3RhcnRwb3MgPSBpOworICAgICAgICBleGMgPSBOVUxMOworICAgICAgICByYWlzZV9lbmNvZGVfZXhjZXB0aW9uKCZleGMsICJkZWNpbWFsIiwgdW5pY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydHBvcywgc3RhcnRwb3MrMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW52YWxpZCBkZWNpbWFsIFVuaWNvZGUgc3RyaW5nIik7CisgICAgICAgIFB5X1hERUNSRUYoZXhjKTsKKyAgICAgICAgUHlfREVDUkVGKHVuaWNvZGUpOworICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIC8qIDAtdGVybWluYXRlIHRoZSBvdXRwdXQgc3RyaW5nICovCiAgICAgKm91dHB1dCsrID0gJ1wwJzsKLSAgICBQeV9YREVDUkVGKGV4Yyk7Ci0gICAgUHlfWERFQ1JFRihlcnJvckhhbmRsZXIpOworICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKICAgICByZXR1cm4gMDsKLQotICBvbkVycm9yOgotICAgIFB5X1hERUNSRUYoZXhjKTsKLSAgICBQeV9YREVDUkVGKGVycm9ySGFuZGxlcik7Ci0gICAgcmV0dXJuIC0xOwogfQogCiAvKiAtLS0gSGVscGVycyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAotI2luY2x1ZGUgInN0cmluZ2xpYi91bmljb2RlZGVmcy5oIgotI2luY2x1ZGUgInN0cmluZ2xpYi9mYXN0c2VhcmNoLmgiCitzdGF0aWMgUHlfc3NpemVfdAorYW55X2ZpbmRfc2xpY2UoaW50IGRpcmVjdGlvbiwgUHlPYmplY3QqIHMxLCBQeU9iamVjdCogczIsCisgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LAorICAgICAgICAgICAgICAgUHlfc3NpemVfdCBlbmQpCit7CisgICAgaW50IGtpbmQxLCBraW5kMiwga2luZDsKKyAgICB2b2lkICpidWYxLCAqYnVmMjsKKyAgICBQeV9zc2l6ZV90IGxlbjEsIGxlbjIsIHJlc3VsdDsKIAotI2luY2x1ZGUgInN0cmluZ2xpYi9jb3VudC5oIgotI2luY2x1ZGUgInN0cmluZ2xpYi9maW5kLmgiCi0jaW5jbHVkZSAic3RyaW5nbGliL3BhcnRpdGlvbi5oIgotI2luY2x1ZGUgInN0cmluZ2xpYi9zcGxpdC5oIgorICAgIGtpbmQxID0gUHlVbmljb2RlX0tJTkQoczEpOworICAgIGtpbmQyID0gUHlVbmljb2RlX0tJTkQoczIpOworICAgIGtpbmQgPSBraW5kMSA+IGtpbmQyID8ga2luZDEgOiBraW5kMjsKKyAgICBidWYxID0gUHlVbmljb2RlX0RBVEEoczEpOworICAgIGJ1ZjIgPSBQeVVuaWNvZGVfREFUQShzMik7CisgICAgaWYgKGtpbmQxICE9IGtpbmQpCisgICAgICAgIGJ1ZjEgPSBfUHlVbmljb2RlX0FzS2luZChzMSwga2luZCk7CisgICAgaWYgKCFidWYxKQorICAgICAgICByZXR1cm4gLTI7CisgICAgaWYgKGtpbmQyICE9IGtpbmQpCisgICAgICAgIGJ1ZjIgPSBfUHlVbmljb2RlX0FzS2luZChzMiwga2luZCk7CisgICAgaWYgKCFidWYyKSB7CisgICAgICAgIGlmIChraW5kMSAhPSBraW5kKSBQeU1lbV9GcmVlKGJ1ZjEpOworICAgICAgICByZXR1cm4gLTI7CisgICAgfQorICAgIGxlbjEgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzMSk7CisgICAgbGVuMiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHMyKTsKIAotI2RlZmluZSBfUHlfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcgX1B5VW5pY29kZV9JbnNlcnRUaG91c2FuZHNHcm91cGluZwotI2RlZmluZSBfUHlfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmdMb2NhbGUgX1B5VW5pY29kZV9JbnNlcnRUaG91c2FuZHNHcm91cGluZ0xvY2FsZQotI2luY2x1ZGUgInN0cmluZ2xpYi9sb2NhbGV1dGlsLmgiCisgICAgaWYgKGRpcmVjdGlvbiA+IDApIHsKKyAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHMxKSAmJiBQeVVuaWNvZGVfSVNfQVNDSUkoczIpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGFzY2lpbGliX2ZpbmRfc2xpY2UoYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gdWNzMWxpYl9maW5kX3NsaWNlKGJ1ZjEsIGxlbjEsIGJ1ZjIsIGxlbjIsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgICAgICByZXN1bHQgPSB1Y3MybGliX2ZpbmRfc2xpY2UoYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgICAgIHJlc3VsdCA9IHVjczRsaWJfZmluZF9zbGljZShidWYxLCBsZW4xLCBidWYyLCBsZW4yLCBzdGFydCwgZW5kKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYXNzZXJ0KDApOyByZXN1bHQgPSAtMjsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgc3dpdGNoIChraW5kKSB7CisgICAgICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHMxKSAmJiBQeVVuaWNvZGVfSVNfQVNDSUkoczIpKQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGFzY2lpbGliX3JmaW5kX3NsaWNlKGJ1ZjEsIGxlbjEsIGJ1ZjIsIGxlbjIsIHN0YXJ0LCBlbmQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHVjczFsaWJfcmZpbmRfc2xpY2UoYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfMkJZVEVfS0lORDoKKyAgICAgICAgICAgIHJlc3VsdCA9IHVjczJsaWJfcmZpbmRfc2xpY2UoYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgICAgIHJlc3VsdCA9IHVjczRsaWJfcmZpbmRfc2xpY2UoYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgc3RhcnQsIGVuZCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGFzc2VydCgwKTsgcmVzdWx0ID0gLTI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoa2luZDEgIT0ga2luZCkKKyAgICAgICAgUHlNZW1fRnJlZShidWYxKTsKKyAgICBpZiAoa2luZDIgIT0ga2luZCkKKyAgICAgICAgUHlNZW1fRnJlZShidWYyKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1B5X3NzaXplX3QKK19QeVVuaWNvZGVfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcoCisgICAgUHlPYmplY3QgKnVuaWNvZGUsIFB5X3NzaXplX3QgaW5kZXgsCisgICAgUHlfc3NpemVfdCBuX2J1ZmZlciwKKyAgICB2b2lkICpkaWdpdHMsIFB5X3NzaXplX3Qgbl9kaWdpdHMsCisgICAgUHlfc3NpemVfdCBtaW5fd2lkdGgsCisgICAgY29uc3QgY2hhciAqZ3JvdXBpbmcsIFB5T2JqZWN0ICp0aG91c2FuZHNfc2VwLAorICAgIFB5X1VDUzQgKm1heGNoYXIpCit7CisgICAgdW5zaWduZWQgaW50IGtpbmQsIHRob3VzYW5kc19zZXBfa2luZDsKKyAgICBjaGFyICpkYXRhLCAqdGhvdXNhbmRzX3NlcF9kYXRhOworICAgIFB5X3NzaXplX3QgdGhvdXNhbmRzX3NlcF9sZW47CisgICAgUHlfc3NpemVfdCBsZW47CisKKyAgICBpZiAodW5pY29kZSAhPSBOVUxMKSB7CisgICAgICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh1bmljb2RlKTsKKyAgICAgICAgZGF0YSA9IChjaGFyICopIFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpICsgaW5kZXggKiBraW5kOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAga2luZCA9IFB5VW5pY29kZV8xQllURV9LSU5EOworICAgICAgICBkYXRhID0gTlVMTDsKKyAgICB9CisgICAgdGhvdXNhbmRzX3NlcF9raW5kID0gUHlVbmljb2RlX0tJTkQodGhvdXNhbmRzX3NlcCk7CisgICAgdGhvdXNhbmRzX3NlcF9kYXRhID0gUHlVbmljb2RlX0RBVEEodGhvdXNhbmRzX3NlcCk7CisgICAgdGhvdXNhbmRzX3NlcF9sZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh0aG91c2FuZHNfc2VwKTsKKyAgICBpZiAodW5pY29kZSAhPSBOVUxMICYmIHRob3VzYW5kc19zZXBfa2luZCAhPSBraW5kKSB7CisgICAgICAgIGlmICh0aG91c2FuZHNfc2VwX2tpbmQgPCBraW5kKSB7CisgICAgICAgICAgICB0aG91c2FuZHNfc2VwX2RhdGEgPSBfUHlVbmljb2RlX0FzS2luZCh0aG91c2FuZHNfc2VwLCBraW5kKTsKKyAgICAgICAgICAgIGlmICghdGhvdXNhbmRzX3NlcF9kYXRhKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRhdGEgPSBfUHlVbmljb2RlX0FzS2luZCh1bmljb2RlLCB0aG91c2FuZHNfc2VwX2tpbmQpOworICAgICAgICAgICAgaWYgKCFkYXRhKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIGlmICh1bmljb2RlICE9IE5VTEwgJiYgUHlVbmljb2RlX0lTX0FTQ0lJKHVuaWNvZGUpKQorICAgICAgICAgICAgbGVuID0gYXNjaWlsaWJfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcoCisgICAgICAgICAgICAgICAgKFB5X1VDUzEgKikgZGF0YSwgbl9idWZmZXIsIChQeV9VQ1MxICopIGRpZ2l0cywgbl9kaWdpdHMsCisgICAgICAgICAgICAgICAgbWluX3dpZHRoLCBncm91cGluZywKKyAgICAgICAgICAgICAgICAoUHlfVUNTMSAqKSB0aG91c2FuZHNfc2VwX2RhdGEsIHRob3VzYW5kc19zZXBfbGVuKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbGVuID0gdWNzMWxpYl9JbnNlcnRUaG91c2FuZHNHcm91cGluZygKKyAgICAgICAgICAgICAgICAoUHlfVUNTMSopZGF0YSwgbl9idWZmZXIsIChQeV9VQ1MxKilkaWdpdHMsIG5fZGlnaXRzLAorICAgICAgICAgICAgICAgIG1pbl93aWR0aCwgZ3JvdXBpbmcsCisgICAgICAgICAgICAgICAgKFB5X1VDUzEgKikgdGhvdXNhbmRzX3NlcF9kYXRhLCB0aG91c2FuZHNfc2VwX2xlbik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgIGxlbiA9IHVjczJsaWJfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcoCisgICAgICAgICAgICAoUHlfVUNTMiAqKSBkYXRhLCBuX2J1ZmZlciwgKFB5X1VDUzIgKikgZGlnaXRzLCBuX2RpZ2l0cywKKyAgICAgICAgICAgIG1pbl93aWR0aCwgZ3JvdXBpbmcsCisgICAgICAgICAgICAoUHlfVUNTMiAqKSB0aG91c2FuZHNfc2VwX2RhdGEsIHRob3VzYW5kc19zZXBfbGVuKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgbGVuID0gdWNzNGxpYl9JbnNlcnRUaG91c2FuZHNHcm91cGluZygKKyAgICAgICAgICAgIChQeV9VQ1M0ICopIGRhdGEsIG5fYnVmZmVyLCAoUHlfVUNTNCAqKSBkaWdpdHMsIG5fZGlnaXRzLAorICAgICAgICAgICAgbWluX3dpZHRoLCBncm91cGluZywKKyAgICAgICAgICAgIChQeV9VQ1M0ICopIHRob3VzYW5kc19zZXBfZGF0YSwgdGhvdXNhbmRzX3NlcF9sZW4pOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBhc3NlcnQoMCk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKHVuaWNvZGUgIT0gTlVMTCAmJiB0aG91c2FuZHNfc2VwX2tpbmQgIT0ga2luZCkgeworICAgICAgICBpZiAodGhvdXNhbmRzX3NlcF9raW5kIDwga2luZCkKKyAgICAgICAgICAgIFB5TWVtX0ZyZWUodGhvdXNhbmRzX3NlcF9kYXRhKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgUHlNZW1fRnJlZShkYXRhKTsKKyAgICB9CisgICAgaWYgKHVuaWNvZGUgPT0gTlVMTCkgeworICAgICAgICAqbWF4Y2hhciA9IDEyNzsKKyAgICAgICAgaWYgKGxlbiAhPSBuX2RpZ2l0cykgeworICAgICAgICAgICAgKm1heGNoYXIgPSBNQVhfTUFYQ0hBUigqbWF4Y2hhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHRob3VzYW5kc19zZXApKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gbGVuOworfQorCiAKIC8qIGhlbHBlciBtYWNybyB0byBmaXh1cCBzdGFydC9lbmQgc2xpY2UgdmFsdWVzICovCiAjZGVmaW5lIEFESlVTVF9JTkRJQ0VTKHN0YXJ0LCBlbmQsIGxlbikgICAgICAgICBcCkBAIC02NDUwLDcyICs4OTQyLDEwMiBAQAogICAgICAgICAgICAgc3RhcnQgPSAwOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIH0KIAotLyogX1B5X1VOSUNPREVfTkVYVCBpcyBhIHByaXZhdGUgbWFjcm8gdXNlZCB0byByZXRyaWV2ZSB0aGUgY2hhcmFjdGVyIHBvaW50ZWQKLSAqIGJ5ICdwdHInLCBwb3NzaWJseSBjb21iaW5pbmcgc3Vycm9nYXRlIHBhaXJzIG9uIG5hcnJvdyBidWlsZHMuCi0gKiAncHRyJyBhbmQgJ2VuZCcgbXVzdCBiZSBQeV9VTklDT0RFKiwgd2l0aCAncHRyJyBwb2ludGluZyBhdCB0aGUgY2hhcmFjdGVyCi0gKiB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCBhbmQgJ2VuZCcgcG9pbnRpbmcgdG8gdGhlIGVuZCBvZiB0aGUgYnVmZmVyLgotICogKCdlbmQnIGlzIHVzZWQgb24gbmFycm93IGJ1aWxkcyB0byBkZXRlY3QgYSBsb25lIHN1cnJvZ2F0ZSBhdCB0aGUKLSAqIGVuZCBvZiB0aGUgYnVmZmVyIHRoYXQgc2hvdWxkIGJlIHJldHVybmVkIHVuY2hhbmdlZC4pCi0gKiBUaGUgcHRyIGFuZCBlbmQgYXJndW1lbnRzIHNob3VsZCBiZSBzaWRlLWVmZmVjdCBmcmVlIGFuZCBwdHIgbXVzdCBhbiBsdmFsdWUuCi0gKiBUaGUgdHlwZSBvZiB0aGUgcmV0dXJuZWQgY2hhciBpcyBhbHdheXMgUHlfVUNTNC4KLSAqCi0gKiBOb3RlOiB0aGUgbWFjcm8gYWR2YW5jZXMgcHRyIHRvIG5leHQgY2hhciwgc28gaXQgbWlnaHQgaGF2ZSBzaWRlLWVmZmVjdHMKLSAqICAgICAgIChlc3BlY2lhbGx5IGlmIHVzZWQgd2l0aCBvdGhlciBtYWNyb3MpLgotICovCi0KLS8qIGhlbHBlciBtYWNyb3MgdXNlZCBieSBfUHlfVU5JQ09ERV9ORVhUICovCi0jZGVmaW5lIF9QeV9VTklDT0RFX0lTX0hJR0hfU1VSUk9HQVRFKGNoKSAoMHhEODAwIDw9IGNoICYmIGNoIDw9IDB4REJGRikKLSNkZWZpbmUgX1B5X1VOSUNPREVfSVNfTE9XX1NVUlJPR0FURShjaCkgKDB4REMwMCA8PSBjaCAmJiBjaCA8PSAweERGRkYpCi0vKiBKb2luIHR3byBzdXJyb2dhdGUgY2hhcmFjdGVycyBhbmQgcmV0dXJuIGEgc2luZ2xlIFB5X1VDUzQgdmFsdWUuICovCi0jZGVmaW5lIF9QeV9VTklDT0RFX0pPSU5fU1VSUk9HQVRFUyhoaWdoLCBsb3cpICBcCi0gICAgKCgoKChQeV9VQ1M0KShoaWdoKSAmIDB4MDNGRikgPDwgMTApIHwgICAgICBcCi0gICAgICAoKFB5X1VDUzQpKGxvdykgJiAweDAzRkYpKSArIDB4MTAwMDApCi0KLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKLSNkZWZpbmUgX1B5X1VOSUNPREVfTkVYVChwdHIsIGVuZCkgKihwdHIpKysKLSNlbHNlCi0jZGVmaW5lIF9QeV9VTklDT0RFX05FWFQocHRyLCBlbmQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICgoKF9QeV9VTklDT0RFX0lTX0hJR0hfU1VSUk9HQVRFKCoocHRyKSkgJiYgKHB0cikgPCAoZW5kKSkgJiYgICAgICBcCi0gICAgICAgIF9QeV9VTklDT0RFX0lTX0xPV19TVVJST0dBVEUoKHB0cilbMV0pKSA/ICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgKChwdHIpICs9IDIsX1B5X1VOSUNPREVfSk9JTl9TVVJST0dBVEVTKChwdHIpWy0yXSwgKHB0cilbLTFdKSkgOiBcCi0gICAgICAgKFB5X1VDUzQpKihwdHIpKyspCi0jZW5kaWYKLQotUHlfc3NpemVfdCBQeVVuaWNvZGVfQ291bnQoUHlPYmplY3QgKnN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpzdWJzdHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBlbmQpCitQeV9zc2l6ZV90CitQeVVuaWNvZGVfQ291bnQoUHlPYmplY3QgKnN0ciwKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqc3Vic3RyLAorICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQsCisgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBlbmQpCiB7CiAgICAgUHlfc3NpemVfdCByZXN1bHQ7Ci0gICAgUHlVbmljb2RlT2JqZWN0KiBzdHJfb2JqOwotICAgIFB5VW5pY29kZU9iamVjdCogc3ViX29iajsKKyAgICBQeU9iamVjdCogc3RyX29iajsKKyAgICBQeU9iamVjdCogc3ViX29iajsKKyAgICBpbnQga2luZDEsIGtpbmQyLCBraW5kOworICAgIHZvaWQgKmJ1ZjEgPSBOVUxMLCAqYnVmMiA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBsZW4xLCBsZW4yOwogCi0gICAgc3RyX29iaiA9IChQeVVuaWNvZGVPYmplY3QqKSBQeVVuaWNvZGVfRnJvbU9iamVjdChzdHIpOworICAgIHN0cl9vYmogPSBQeVVuaWNvZGVfRnJvbU9iamVjdChzdHIpOwogICAgIGlmICghc3RyX29iaikKICAgICAgICAgcmV0dXJuIC0xOwotICAgIHN1Yl9vYmogPSAoUHlVbmljb2RlT2JqZWN0KikgUHlVbmljb2RlX0Zyb21PYmplY3Qoc3Vic3RyKTsKKyAgICBzdWJfb2JqID0gUHlVbmljb2RlX0Zyb21PYmplY3Qoc3Vic3RyKTsKICAgICBpZiAoIXN1Yl9vYmopIHsKICAgICAgICAgUHlfREVDUkVGKHN0cl9vYmopOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3ViX29iaikgPT0gLTEgfHwgUHlVbmljb2RlX1JFQURZKHN0cl9vYmopID09IC0xKSB7CisgICAgICAgIFB5X0RFQ1JFRihzdWJfb2JqKTsKKyAgICAgICAgUHlfREVDUkVGKHN0cl9vYmopOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQogCi0gICAgQURKVVNUX0lORElDRVMoc3RhcnQsIGVuZCwgc3RyX29iai0+bGVuZ3RoKTsKLSAgICByZXN1bHQgPSBzdHJpbmdsaWJfY291bnQoCi0gICAgICAgIHN0cl9vYmotPnN0ciArIHN0YXJ0LCBlbmQgLSBzdGFydCwgc3ViX29iai0+c3RyLCBzdWJfb2JqLT5sZW5ndGgsCi0gICAgICAgIFBZX1NTSVpFX1RfTUFYCi0gICAgICAgICk7CisgICAga2luZDEgPSBQeVVuaWNvZGVfS0lORChzdHJfb2JqKTsKKyAgICBraW5kMiA9IFB5VW5pY29kZV9LSU5EKHN1Yl9vYmopOworICAgIGtpbmQgPSBraW5kMTsKKyAgICBidWYxID0gUHlVbmljb2RlX0RBVEEoc3RyX29iaik7CisgICAgYnVmMiA9IFB5VW5pY29kZV9EQVRBKHN1Yl9vYmopOworICAgIGlmIChraW5kMiAhPSBraW5kKSB7CisgICAgICAgIGlmIChraW5kMiA+IGtpbmQpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzdWJfb2JqKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzdHJfb2JqKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGJ1ZjIgPSBfUHlVbmljb2RlX0FzS2luZChzdWJfb2JqLCBraW5kKTsKKyAgICB9CisgICAgaWYgKCFidWYyKQorICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgbGVuMSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cl9vYmopOworICAgIGxlbjIgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdWJfb2JqKTsKKworICAgIEFESlVTVF9JTkRJQ0VTKHN0YXJ0LCBlbmQsIGxlbjEpOworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkoc3RyX29iaikgJiYgUHlVbmljb2RlX0lTX0FTQ0lJKHN1Yl9vYmopKQorICAgICAgICAgICAgcmVzdWx0ID0gYXNjaWlsaWJfY291bnQoCisgICAgICAgICAgICAgICAgKChQeV9VQ1MxKilidWYxKSArIHN0YXJ0LCBlbmQgLSBzdGFydCwKKyAgICAgICAgICAgICAgICBidWYyLCBsZW4yLCBQWV9TU0laRV9UX01BWAorICAgICAgICAgICAgICAgICk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJlc3VsdCA9IHVjczFsaWJfY291bnQoCisgICAgICAgICAgICAgICAgKChQeV9VQ1MxKilidWYxKSArIHN0YXJ0LCBlbmQgLSBzdGFydCwKKyAgICAgICAgICAgICAgICBidWYyLCBsZW4yLCBQWV9TU0laRV9UX01BWAorICAgICAgICAgICAgICAgICk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgIHJlc3VsdCA9IHVjczJsaWJfY291bnQoCisgICAgICAgICAgICAoKFB5X1VDUzIqKWJ1ZjEpICsgc3RhcnQsIGVuZCAtIHN0YXJ0LAorICAgICAgICAgICAgYnVmMiwgbGVuMiwgUFlfU1NJWkVfVF9NQVgKKyAgICAgICAgICAgICk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisgICAgICAgIHJlc3VsdCA9IHVjczRsaWJfY291bnQoCisgICAgICAgICAgICAoKFB5X1VDUzQqKWJ1ZjEpICsgc3RhcnQsIGVuZCAtIHN0YXJ0LAorICAgICAgICAgICAgYnVmMiwgbGVuMiwgUFlfU1NJWkVfVF9NQVgKKyAgICAgICAgICAgICk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGFzc2VydCgwKTsgcmVzdWx0ID0gMDsKKyAgICB9CiAKICAgICBQeV9ERUNSRUYoc3ViX29iaik7CiAgICAgUHlfREVDUkVGKHN0cl9vYmopOwogCisgICAgaWYgKGtpbmQyICE9IGtpbmQpCisgICAgICAgIFB5TWVtX0ZyZWUoYnVmMik7CisKICAgICByZXR1cm4gcmVzdWx0OworICBvbkVycm9yOgorICAgIFB5X0RFQ1JFRihzdWJfb2JqKTsKKyAgICBQeV9ERUNSRUYoc3RyX29iaik7CisgICAgaWYgKGtpbmQyICE9IGtpbmQgJiYgYnVmMikKKyAgICAgICAgUHlNZW1fRnJlZShidWYyKTsKKyAgICByZXR1cm4gLTE7CiB9CiAKLVB5X3NzaXplX3QgUHlVbmljb2RlX0ZpbmQoUHlPYmplY3QgKnN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnN1YiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24pCitQeV9zc2l6ZV90CitQeVVuaWNvZGVfRmluZChQeU9iamVjdCAqc3RyLAorICAgICAgICAgICAgICAgUHlPYmplY3QgKnN1YiwKKyAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQsCisgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGVuZCwKKyAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24pCiB7CiAgICAgUHlfc3NpemVfdCByZXN1bHQ7CiAKQEAgLTY1MjcsMTkgKzkwNDksMTUgQEAKICAgICAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgICAgIHJldHVybiAtMjsKICAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzdWIpID09IC0xIHx8IFB5VW5pY29kZV9SRUFEWShzdHIpID09IC0xKSB7CisgICAgICAgIFB5X0RFQ1JFRihzdWIpOworICAgICAgICBQeV9ERUNSRUYoc3RyKTsKKyAgICAgICAgcmV0dXJuIC0yOworICAgIH0KIAotICAgIGlmIChkaXJlY3Rpb24gPiAwKQotICAgICAgICByZXN1bHQgPSBzdHJpbmdsaWJfZmluZF9zbGljZSgKLSAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHN0ciksIFB5VW5pY29kZV9HRVRfU0laRShzdHIpLAotICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUoc3ViKSwgUHlVbmljb2RlX0dFVF9TSVpFKHN1YiksCi0gICAgICAgICAgICBzdGFydCwgZW5kCi0gICAgICAgICAgICApOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gc3RyaW5nbGliX3JmaW5kX3NsaWNlKAotICAgICAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyKSwgUHlVbmljb2RlX0dFVF9TSVpFKHN0ciksCi0gICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdWIpLCBQeVVuaWNvZGVfR0VUX1NJWkUoc3ViKSwKLSAgICAgICAgICAgIHN0YXJ0LCBlbmQKLSAgICAgICAgICAgICk7CisgICAgcmVzdWx0ID0gYW55X2ZpbmRfc2xpY2UoZGlyZWN0aW9uLAorICAgICAgICBzdHIsIHN1Yiwgc3RhcnQsIGVuZAorICAgICAgICApOwogCiAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgUHlfREVDUkVGKHN1Yik7CkBAIC02NTQ3LDM3ICs5MDY1LDEwNCBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYwotaW50IHRhaWxtYXRjaChQeVVuaWNvZGVPYmplY3QgKnNlbGYsCi0gICAgICAgICAgICAgIFB5VW5pY29kZU9iamVjdCAqc3Vic3RyaW5nLAotICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LAotICAgICAgICAgICAgICBQeV9zc2l6ZV90IGVuZCwKLSAgICAgICAgICAgICAgaW50IGRpcmVjdGlvbikKK1B5X3NzaXplX3QKK1B5VW5pY29kZV9GaW5kQ2hhcihQeU9iamVjdCAqc3RyLCBQeV9VQ1M0IGNoLAorICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQsIFB5X3NzaXplX3QgZW5kLAorICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24pCiB7Ci0gICAgaWYgKHN1YnN0cmluZy0+bGVuZ3RoID09IDApCisgICAgaW50IGtpbmQ7CisgICAgUHlfc3NpemVfdCByZXN1bHQ7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzdHIpID09IC0xKQorICAgICAgICByZXR1cm4gLTI7CisgICAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbmRleEVycm9yLCAic3RyaW5nIGluZGV4IG91dCBvZiByYW5nZSIpOworICAgICAgICByZXR1cm4gLTI7CisgICAgfQorICAgIGlmIChlbmQgPiBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpKQorICAgICAgICBlbmQgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChzdHIpOworICAgIHJlc3VsdCA9IGZpbmRjaGFyKFB5VW5pY29kZV8xQllURV9EQVRBKHN0cikgKyBraW5kKnN0YXJ0LAorICAgICAgICAgICAgICAgICAgICAgIGtpbmQsIGVuZC1zdGFydCwgY2gsIGRpcmVjdGlvbik7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIHN0YXJ0ICsgcmVzdWx0OworfQorCitzdGF0aWMgaW50Cit0YWlsbWF0Y2goUHlPYmplY3QgKnNlbGYsCisgICAgICAgICAgUHlPYmplY3QgKnN1YnN0cmluZywKKyAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LAorICAgICAgICAgIFB5X3NzaXplX3QgZW5kLAorICAgICAgICAgIGludCBkaXJlY3Rpb24pCit7CisgICAgaW50IGtpbmRfc2VsZjsKKyAgICBpbnQga2luZF9zdWI7CisgICAgdm9pZCAqZGF0YV9zZWxmOworICAgIHZvaWQgKmRhdGFfc3ViOworICAgIFB5X3NzaXplX3Qgb2Zmc2V0OworICAgIFB5X3NzaXplX3QgaTsKKyAgICBQeV9zc2l6ZV90IGVuZF9zdWI7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xIHx8CisgICAgICAgIFB5VW5pY29kZV9SRUFEWShzdWJzdHJpbmcpID09IC0xKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChzdWJzdHJpbmcpID09IDApCiAgICAgICAgIHJldHVybiAxOwogCi0gICAgQURKVVNUX0lORElDRVMoc3RhcnQsIGVuZCwgc2VsZi0+bGVuZ3RoKTsKLSAgICBlbmQgLT0gc3Vic3RyaW5nLT5sZW5ndGg7CisgICAgQURKVVNUX0lORElDRVMoc3RhcnQsIGVuZCwgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZikpOworICAgIGVuZCAtPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdWJzdHJpbmcpOwogICAgIGlmIChlbmQgPCBzdGFydCkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAoZGlyZWN0aW9uID4gMCkgewotICAgICAgICBpZiAoUHlfVU5JQ09ERV9NQVRDSChzZWxmLCBlbmQsIHN1YnN0cmluZykpCisgICAga2luZF9zZWxmID0gUHlVbmljb2RlX0tJTkQoc2VsZik7CisgICAgZGF0YV9zZWxmID0gUHlVbmljb2RlX0RBVEEoc2VsZik7CisgICAga2luZF9zdWIgPSBQeVVuaWNvZGVfS0lORChzdWJzdHJpbmcpOworICAgIGRhdGFfc3ViID0gUHlVbmljb2RlX0RBVEEoc3Vic3RyaW5nKTsKKyAgICBlbmRfc3ViID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3Vic3RyaW5nKSAtIDE7CisKKyAgICBpZiAoZGlyZWN0aW9uID4gMCkKKyAgICAgICAgb2Zmc2V0ID0gZW5kOworICAgIGVsc2UKKyAgICAgICAgb2Zmc2V0ID0gc3RhcnQ7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQUQoa2luZF9zZWxmLCBkYXRhX3NlbGYsIG9mZnNldCkgPT0KKyAgICAgICAgUHlVbmljb2RlX1JFQUQoa2luZF9zdWIsIGRhdGFfc3ViLCAwKSAmJgorICAgICAgICBQeVVuaWNvZGVfUkVBRChraW5kX3NlbGYsIGRhdGFfc2VsZiwgb2Zmc2V0ICsgZW5kX3N1YikgPT0KKyAgICAgICAgUHlVbmljb2RlX1JFQUQoa2luZF9zdWIsIGRhdGFfc3ViLCBlbmRfc3ViKSkgeworICAgICAgICAvKiBJZiBib3RoIGFyZSBvZiB0aGUgc2FtZSBraW5kLCBtZW1jbXAgaXMgc3VmZmljaWVudCAqLworICAgICAgICBpZiAoa2luZF9zZWxmID09IGtpbmRfc3ViKSB7CisgICAgICAgICAgICByZXR1cm4gISBtZW1jbXAoKGNoYXIgKilkYXRhX3NlbGYgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2Zmc2V0ICogUHlVbmljb2RlX0tJTkQoc3Vic3RyaW5nKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9zdWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3Vic3RyaW5nKSAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9LSU5EKHN1YnN0cmluZykpOworICAgICAgICB9CisgICAgICAgIC8qIG90aGVyd2lzZSB3ZSBoYXZlIHRvIGNvbXBhcmUgZWFjaCBjaGFyYWN0ZXIgYnkgZmlyc3QgYWNjZXNpbmcgaXQgKi8KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvKiBXZSBkbyBub3QgbmVlZCB0byBjb21wYXJlIDAgYW5kIGxlbihzdWJzdHJpbmcpLTEgYmVjYXVzZQorICAgICAgICAgICAgICAgdGhlIGlmIHN0YXRlbWVudCBhYm92ZSBlbnN1cmVkIGFscmVhZHkgdGhhdCB0aGV5IGFyZSBlcXVhbAorICAgICAgICAgICAgICAgd2hlbiB3ZSBlbmQgdXAgaGVyZS4gKi8KKyAgICAgICAgICAgIC8vIFRPRE86IGhvbm9yIGRpcmVjdGlvbiBhbmQgZG8gYSBmb3J3YXJkIG9yIGJhY2t3YXJkcyBzZWFyY2gKKyAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPCBlbmRfc3ViOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQUQoa2luZF9zZWxmLCBkYXRhX3NlbGYsIG9mZnNldCArIGkpICE9CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmRfc3ViLCBkYXRhX3N1YiwgaSkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKFB5X1VOSUNPREVfTUFUQ0goc2VsZiwgc3RhcnQsIHN1YnN0cmluZykpCi0gICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiAwOwogfQogCi1QeV9zc2l6ZV90IFB5VW5pY29kZV9UYWlsbWF0Y2goUHlPYmplY3QgKnN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqc3Vic3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBlbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGRpcmVjdGlvbikKK1B5X3NzaXplX3QKK1B5VW5pY29kZV9UYWlsbWF0Y2goUHlPYmplY3QgKnN0ciwKKyAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnN1YnN0ciwKKyAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBzdGFydCwKKyAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBlbmQsCisgICAgICAgICAgICAgICAgICAgIGludCBkaXJlY3Rpb24pCiB7CiAgICAgUHlfc3NpemVfdCByZXN1bHQ7CiAKQEAgLTY1OTAsOCArOTE3NSw3IEBACiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAKLSAgICByZXN1bHQgPSB0YWlsbWF0Y2goKFB5VW5pY29kZU9iamVjdCAqKXN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgKFB5VW5pY29kZU9iamVjdCAqKXN1YnN0ciwKKyAgICByZXN1bHQgPSB0YWlsbWF0Y2goc3RyLCBzdWJzdHIsCiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBlbmQsIGRpcmVjdGlvbik7CiAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgUHlfREVDUkVGKHN1YnN0cik7CkBAIC02NjAxLDE2OCArOTE4NSwzMTIgQEAKIC8qIEFwcGx5IGZpeGZjdCBmaWx0ZXIgdG8gdGhlIFVuaWNvZGUgb2JqZWN0IHNlbGYgYW5kIHJldHVybiBhCiAgICByZWZlcmVuY2UgdG8gdGhlIG1vZGlmaWVkIG9iamVjdCAqLwogCi1zdGF0aWMKLVB5T2JqZWN0ICpmaXh1cChQeVVuaWNvZGVPYmplY3QgKnNlbGYsCi0gICAgICAgICAgICAgICAgaW50ICgqZml4ZmN0KShQeVVuaWNvZGVPYmplY3QgKnMpKQorc3RhdGljIFB5T2JqZWN0ICoKK2ZpeHVwKFB5T2JqZWN0ICpzZWxmLAorICAgICAgUHlfVUNTNCAoKmZpeGZjdCkoUHlPYmplY3QgKnMpKQogeworICAgIFB5T2JqZWN0ICp1OworICAgIFB5X1VDUzQgbWF4Y2hhcl9vbGQsIG1heGNoYXJfbmV3ID0gMDsKKyAgICBQeU9iamVjdCAqdjsKIAotICAgIFB5VW5pY29kZU9iamVjdCAqdTsKLQotICAgIHUgPSAoUHlVbmljb2RlT2JqZWN0KikgUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIHNlbGYtPmxlbmd0aCk7CisgICAgdSA9IF9QeVVuaWNvZGVfQ29weShzZWxmKTsKICAgICBpZiAodSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBtYXhjaGFyX29sZCA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh1KTsKIAotICAgIFB5X1VOSUNPREVfQ09QWSh1LT5zdHIsIHNlbGYtPnN0ciwgc2VsZi0+bGVuZ3RoKTsKKyAgICAvKiBmaXggZnVuY3Rpb25zIHJldHVybiB0aGUgbmV3IG1heGltdW0gY2hhcmFjdGVyIGluIGEgc3RyaW5nLAorICAgICAgIGlmIHRoZSBraW5kIG9mIHRoZSByZXN1bHRpbmcgdW5pY29kZSBvYmplY3QgZG9lcyBub3QgY2hhbmdlLAorICAgICAgIGV2ZXJ5dGhpbmcgaXMgZmluZS4gIE90aGVyd2lzZSB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUgc3RyaW5nIGtpbmQKKyAgICAgICBhbmQgcmUtcnVuIHRoZSBmaXggZnVuY3Rpb24uICovCisgICAgbWF4Y2hhcl9uZXcgPSBmaXhmY3QodSk7CiAKLSAgICBpZiAoIWZpeGZjdCh1KSAmJiBQeVVuaWNvZGVfQ2hlY2tFeGFjdChzZWxmKSkgewotICAgICAgICAvKiBmaXhmY3Qgc2hvdWxkIHJldHVybiBUUlVFIGlmIGl0IG1vZGlmaWVkIHRoZSBidWZmZXIuIElmCi0gICAgICAgICAgIEZBTFNFLCByZXR1cm4gYSByZWZlcmVuY2UgdG8gdGhlIG9yaWdpbmFsIGJ1ZmZlciBpbnN0ZWFkCi0gICAgICAgICAgICh0byBzYXZlIHNwYWNlLCBub3QgdGltZSkgKi8KLSAgICAgICAgUHlfSU5DUkVGKHNlbGYpOworICAgIGlmIChtYXhjaGFyX25ldyA9PSAwKSB7CisgICAgICAgIC8qIG5vIGNoYW5nZXMgKi87CisgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2tFeGFjdChzZWxmKSkgeworICAgICAgICAgICAgUHlfREVDUkVGKHUpOworICAgICAgICAgICAgUHlfSU5DUkVGKHNlbGYpOworICAgICAgICAgICAgcmV0dXJuIHNlbGY7CisgICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIHU7CisgICAgfQorCisgICAgbWF4Y2hhcl9uZXcgPSBhbGlnbl9tYXhjaGFyKG1heGNoYXJfbmV3KTsKKworICAgIGlmIChtYXhjaGFyX25ldyA9PSBtYXhjaGFyX29sZCkKKyAgICAgICAgcmV0dXJuIHU7CisKKyAgICAvKiBJbiBjYXNlIHRoZSBtYXhpbXVtIGNoYXJhY3RlciBjaGFuZ2VkLCB3ZSBuZWVkIHRvCisgICAgICAgY29udmVydCB0aGUgc3RyaW5nIHRvIHRoZSBuZXcgY2F0ZWdvcnkuICovCisgICAgdiA9IFB5VW5pY29kZV9OZXcoUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZiksIG1heGNoYXJfbmV3KTsKKyAgICBpZiAodiA9PSBOVUxMKSB7CiAgICAgICAgIFB5X0RFQ1JFRih1KTsKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCopIHNlbGY7CisgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICByZXR1cm4gKFB5T2JqZWN0KikgdTsKKyAgICBpZiAobWF4Y2hhcl9uZXcgPiBtYXhjaGFyX29sZCkgeworICAgICAgICAvKiBJZiB0aGUgbWF4Y2hhciBpbmNyZWFzZWQgc28gdGhhdCB0aGUga2luZCBjaGFuZ2VkLCBub3QgYWxsCisgICAgICAgICAgIGNoYXJhY3RlcnMgYXJlIHJlcHJlc2VudGFibGUgYW55bW9yZSBhbmQgd2UgbmVlZCB0byBmaXggdGhlCisgICAgICAgICAgIHN0cmluZyBhZ2Fpbi4gVGhpcyBvbmx5IGhhcHBlbnMgaW4gdmVyeSBmZXcgY2FzZXMuICovCisgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHYsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIDAsIFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpKTsKKyAgICAgICAgbWF4Y2hhcl9vbGQgPSBmaXhmY3Qodik7CisgICAgICAgIGFzc2VydChtYXhjaGFyX29sZCA+IDAgJiYgbWF4Y2hhcl9vbGQgPD0gbWF4Y2hhcl9uZXcpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnModiwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSwgMCwgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZikpOworICAgIH0KKyAgICBQeV9ERUNSRUYodSk7CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeSh2LCAxKSk7CisgICAgcmV0dXJuIHY7CiB9CiAKLXN0YXRpYwotaW50IGZpeHVwcGVyKFB5VW5pY29kZU9iamVjdCAqc2VsZikKK3N0YXRpYyBQeU9iamVjdCAqCithc2NpaV91cHBlcl9vcl9sb3dlcihQeU9iamVjdCAqc2VsZiwgaW50IGxvd2VyKQogewotICAgIFB5X3NzaXplX3QgbGVuID0gc2VsZi0+bGVuZ3RoOwotICAgIFB5X1VOSUNPREUgKnMgPSBzZWxmLT5zdHI7Ci0gICAgaW50IHN0YXR1cyA9IDA7CisgICAgUHlfc3NpemVfdCBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKKyAgICBjaGFyICpyZXNkYXRhLCAqZGF0YSA9IFB5VW5pY29kZV9EQVRBKHNlbGYpOworICAgIFB5T2JqZWN0ICpyZXM7CiAKLSAgICB3aGlsZSAobGVuLS0gPiAwKSB7Ci0gICAgICAgIHJlZ2lzdGVyIFB5X1VOSUNPREUgY2g7CisgICAgcmVzID0gUHlVbmljb2RlX05ldyhsZW4sIDEyNyk7CisgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByZXNkYXRhID0gUHlVbmljb2RlX0RBVEEocmVzKTsKKyAgICBpZiAobG93ZXIpCisgICAgICAgIF9QeV9ieXRlc19sb3dlcihyZXNkYXRhLCBkYXRhLCBsZW4pOworICAgIGVsc2UKKyAgICAgICAgX1B5X2J5dGVzX3VwcGVyKHJlc2RhdGEsIGRhdGEsIGxlbik7CisgICAgcmV0dXJuIHJlczsKK30KIAotICAgICAgICBjaCA9IFB5X1VOSUNPREVfVE9VUFBFUigqcyk7Ci0gICAgICAgIGlmIChjaCAhPSAqcykgewotICAgICAgICAgICAgc3RhdHVzID0gMTsKLSAgICAgICAgICAgICpzID0gY2g7CitzdGF0aWMgUHlfVUNTNAoraGFuZGxlX2NhcGl0YWxfc2lnbWEoaW50IGtpbmQsIHZvaWQgKmRhdGEsIFB5X3NzaXplX3QgbGVuZ3RoLCBQeV9zc2l6ZV90IGkpCit7CisgICAgUHlfc3NpemVfdCBqOworICAgIGludCBmaW5hbF9zaWdtYTsKKyAgICBQeV9VQ1M0IGM7CisgICAgLyogVSswM0EzIGlzIGluIHRoZSBGaW5hbF9TaWdtYSBjb250ZXh0IHdoZW4sIGl0IGlzIGZvdW5kIGxpa2UgdGhpczoKKworICAgICBccHtjYXNlZH1ccHtjYXNlLWlnbm9yYWJsZX0qVSswM0EzIShccHtjYXNlLWlnbm9yYWJsZX0qXHB7Y2FzZWR9KQorCisgICAgd2hlcmUgISBpcyBhIG5lZ2F0aW9uIGFuZCBccHt4eHh9IGlzIGEgY2hhcmFjdGVyIHdpdGggcHJvcGVydHkgeHh4LgorICAgICovCisgICAgZm9yIChqID0gaSAtIDE7IGogPj0gMDsgai0tKSB7CisgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBqKTsKKyAgICAgICAgaWYgKCFfUHlVbmljb2RlX0lzQ2FzZUlnbm9yYWJsZShjKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBmaW5hbF9zaWdtYSA9IGogPj0gMCAmJiBfUHlVbmljb2RlX0lzQ2FzZWQoYyk7CisgICAgaWYgKGZpbmFsX3NpZ21hKSB7CisgICAgICAgIGZvciAoaiA9IGkgKyAxOyBqIDwgbGVuZ3RoOyBqKyspIHsKKyAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBqKTsKKyAgICAgICAgICAgIGlmICghX1B5VW5pY29kZV9Jc0Nhc2VJZ25vcmFibGUoYykpCisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgcysrOworICAgICAgICBmaW5hbF9zaWdtYSA9IGogPT0gbGVuZ3RoIHx8ICFfUHlVbmljb2RlX0lzQ2FzZWQoYyk7CiAgICAgfQotCi0gICAgcmV0dXJuIHN0YXR1czsKKyAgICByZXR1cm4gKGZpbmFsX3NpZ21hKSA/IDB4M0MyIDogMHgzQzM7CiB9CiAKLXN0YXRpYwotaW50IGZpeGxvd2VyKFB5VW5pY29kZU9iamVjdCAqc2VsZikKK3N0YXRpYyBpbnQKK2xvd2VyX3VjczQoaW50IGtpbmQsIHZvaWQgKmRhdGEsIFB5X3NzaXplX3QgbGVuZ3RoLCBQeV9zc2l6ZV90IGksCisgICAgICAgICAgIFB5X1VDUzQgYywgUHlfVUNTNCAqbWFwcGVkKQogewotICAgIFB5X3NzaXplX3QgbGVuID0gc2VsZi0+bGVuZ3RoOwotICAgIFB5X1VOSUNPREUgKnMgPSBzZWxmLT5zdHI7Ci0gICAgaW50IHN0YXR1cyA9IDA7CisgICAgLyogT2JzY3VyZSBzcGVjaWFsIGNhc2UuICovCisgICAgaWYgKGMgPT0gMHgzQTMpIHsKKyAgICAgICAgbWFwcGVkWzBdID0gaGFuZGxlX2NhcGl0YWxfc2lnbWEoa2luZCwgZGF0YSwgbGVuZ3RoLCBpKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiBfUHlVbmljb2RlX1RvTG93ZXJGdWxsKGMsIG1hcHBlZCk7Cit9CiAKLSAgICB3aGlsZSAobGVuLS0gPiAwKSB7Ci0gICAgICAgIHJlZ2lzdGVyIFB5X1VOSUNPREUgY2g7CitzdGF0aWMgUHlfc3NpemVfdAorZG9fY2FwaXRhbGl6ZShpbnQga2luZCwgdm9pZCAqZGF0YSwgUHlfc3NpemVfdCBsZW5ndGgsIFB5X1VDUzQgKnJlcywgUHlfVUNTNCAqbWF4Y2hhcikKK3sKKyAgICBQeV9zc2l6ZV90IGksIGsgPSAwOworICAgIGludCBuX3JlcywgajsKKyAgICBQeV9VQ1M0IGMsIG1hcHBlZFszXTsKIAotICAgICAgICBjaCA9IFB5X1VOSUNPREVfVE9MT1dFUigqcyk7Ci0gICAgICAgIGlmIChjaCAhPSAqcykgewotICAgICAgICAgICAgc3RhdHVzID0gMTsKLSAgICAgICAgICAgICpzID0gY2g7CisgICAgYyA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIDApOworICAgIG5fcmVzID0gX1B5VW5pY29kZV9Ub1VwcGVyRnVsbChjLCBtYXBwZWQpOworICAgIGZvciAoaiA9IDA7IGogPCBuX3JlczsgaisrKSB7CisgICAgICAgICptYXhjaGFyID0gTUFYX01BWENIQVIoKm1heGNoYXIsIG1hcHBlZFtqXSk7CisgICAgICAgIHJlc1trKytdID0gbWFwcGVkW2pdOworICAgIH0KKyAgICBmb3IgKGkgPSAxOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpOworICAgICAgICBuX3JlcyA9IGxvd2VyX3VjczQoa2luZCwgZGF0YSwgbGVuZ3RoLCBpLCBjLCBtYXBwZWQpOworICAgICAgICBmb3IgKGogPSAwOyBqIDwgbl9yZXM7IGorKykgeworICAgICAgICAgICAgKm1heGNoYXIgPSBNQVhfTUFYQ0hBUigqbWF4Y2hhciwgbWFwcGVkW2pdKTsKKyAgICAgICAgICAgIHJlc1trKytdID0gbWFwcGVkW2pdOwogICAgICAgICB9Ci0gICAgICAgIHMrKzsKICAgICB9Ci0KLSAgICByZXR1cm4gc3RhdHVzOworICAgIHJldHVybiBrOwogfQogCi1zdGF0aWMKLWludCBmaXhzd2FwY2FzZShQeVVuaWNvZGVPYmplY3QgKnNlbGYpCi17Ci0gICAgUHlfc3NpemVfdCBsZW4gPSBzZWxmLT5sZW5ndGg7Ci0gICAgUHlfVU5JQ09ERSAqcyA9IHNlbGYtPnN0cjsKLSAgICBpbnQgc3RhdHVzID0gMDsKK3N0YXRpYyBQeV9zc2l6ZV90Citkb19zd2FwY2FzZShpbnQga2luZCwgdm9pZCAqZGF0YSwgUHlfc3NpemVfdCBsZW5ndGgsIFB5X1VDUzQgKnJlcywgUHlfVUNTNCAqbWF4Y2hhcikgeworICAgIFB5X3NzaXplX3QgaSwgayA9IDA7CiAKLSAgICB3aGlsZSAobGVuLS0gPiAwKSB7Ci0gICAgICAgIGlmIChQeV9VTklDT0RFX0lTVVBQRVIoKnMpKSB7Ci0gICAgICAgICAgICAqcyA9IFB5X1VOSUNPREVfVE9MT1dFUigqcyk7Ci0gICAgICAgICAgICBzdGF0dXMgPSAxOwotICAgICAgICB9IGVsc2UgaWYgKFB5X1VOSUNPREVfSVNMT1dFUigqcykpIHsKLSAgICAgICAgICAgICpzID0gUHlfVU5JQ09ERV9UT1VQUEVSKCpzKTsKLSAgICAgICAgICAgIHN0YXR1cyA9IDE7CisgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIFB5X1VDUzQgYyA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpLCBtYXBwZWRbM107CisgICAgICAgIGludCBuX3JlcywgajsKKyAgICAgICAgaWYgKFB5X1VOSUNPREVfSVNVUFBFUihjKSkgeworICAgICAgICAgICAgbl9yZXMgPSBsb3dlcl91Y3M0KGtpbmQsIGRhdGEsIGxlbmd0aCwgaSwgYywgbWFwcGVkKTsKICAgICAgICAgfQotICAgICAgICBzKys7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0YXR1czsKLX0KLQotc3RhdGljCi1pbnQgZml4Y2FwaXRhbGl6ZShQeVVuaWNvZGVPYmplY3QgKnNlbGYpCi17Ci0gICAgUHlfc3NpemVfdCBsZW4gPSBzZWxmLT5sZW5ndGg7Ci0gICAgUHlfVU5JQ09ERSAqcyA9IHNlbGYtPnN0cjsKLSAgICBpbnQgc3RhdHVzID0gMDsKLQotICAgIGlmIChsZW4gPT0gMCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaWYgKCFQeV9VTklDT0RFX0lTVVBQRVIoKnMpKSB7Ci0gICAgICAgICpzID0gUHlfVU5JQ09ERV9UT1VQUEVSKCpzKTsKLSAgICAgICAgc3RhdHVzID0gMTsKLSAgICB9Ci0gICAgcysrOwotICAgIHdoaWxlICgtLWxlbiA+IDApIHsKLSAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTTE9XRVIoKnMpKSB7Ci0gICAgICAgICAgICAqcyA9IFB5X1VOSUNPREVfVE9MT1dFUigqcyk7Ci0gICAgICAgICAgICBzdGF0dXMgPSAxOworICAgICAgICBlbHNlIGlmIChQeV9VTklDT0RFX0lTTE9XRVIoYykpIHsKKyAgICAgICAgICAgIG5fcmVzID0gX1B5VW5pY29kZV9Ub1VwcGVyRnVsbChjLCBtYXBwZWQpOwogICAgICAgICB9Ci0gICAgICAgIHMrKzsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBuX3JlcyA9IDE7CisgICAgICAgICAgICBtYXBwZWRbMF0gPSBjOworICAgICAgICB9CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBuX3JlczsgaisrKSB7CisgICAgICAgICAgICAqbWF4Y2hhciA9IE1BWF9NQVhDSEFSKCptYXhjaGFyLCBtYXBwZWRbal0pOworICAgICAgICAgICAgcmVzW2srK10gPSBtYXBwZWRbal07CisgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIHN0YXR1czsKKyAgICByZXR1cm4gazsKIH0KIAotc3RhdGljCi1pbnQgZml4dGl0bGUoUHlVbmljb2RlT2JqZWN0ICpzZWxmKQorc3RhdGljIFB5X3NzaXplX3QKK2RvX3VwcGVyX29yX2xvd2VyKGludCBraW5kLCB2b2lkICpkYXRhLCBQeV9zc2l6ZV90IGxlbmd0aCwgUHlfVUNTNCAqcmVzLAorICAgICAgICAgICAgICAgICAgUHlfVUNTNCAqbWF4Y2hhciwgaW50IGxvd2VyKQogewotICAgIHJlZ2lzdGVyIFB5X1VOSUNPREUgKnAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShzZWxmKTsKLSAgICByZWdpc3RlciBQeV9VTklDT0RFICplOworICAgIFB5X3NzaXplX3QgaSwgayA9IDA7CisKKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgUHlfVUNTNCBjID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSksIG1hcHBlZFszXTsKKyAgICAgICAgaW50IG5fcmVzLCBqOworICAgICAgICBpZiAobG93ZXIpCisgICAgICAgICAgICBuX3JlcyA9IGxvd2VyX3VjczQoa2luZCwgZGF0YSwgbGVuZ3RoLCBpLCBjLCBtYXBwZWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBuX3JlcyA9IF9QeVVuaWNvZGVfVG9VcHBlckZ1bGwoYywgbWFwcGVkKTsKKyAgICAgICAgZm9yIChqID0gMDsgaiA8IG5fcmVzOyBqKyspIHsKKyAgICAgICAgICAgICptYXhjaGFyID0gTUFYX01BWENIQVIoKm1heGNoYXIsIG1hcHBlZFtqXSk7CisgICAgICAgICAgICByZXNbaysrXSA9IG1hcHBlZFtqXTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gazsKK30KKworc3RhdGljIFB5X3NzaXplX3QKK2RvX3VwcGVyKGludCBraW5kLCB2b2lkICpkYXRhLCBQeV9zc2l6ZV90IGxlbmd0aCwgUHlfVUNTNCAqcmVzLCBQeV9VQ1M0ICptYXhjaGFyKQoreworICAgIHJldHVybiBkb191cHBlcl9vcl9sb3dlcihraW5kLCBkYXRhLCBsZW5ndGgsIHJlcywgbWF4Y2hhciwgMCk7Cit9CisKK3N0YXRpYyBQeV9zc2l6ZV90Citkb19sb3dlcihpbnQga2luZCwgdm9pZCAqZGF0YSwgUHlfc3NpemVfdCBsZW5ndGgsIFB5X1VDUzQgKnJlcywgUHlfVUNTNCAqbWF4Y2hhcikKK3sKKyAgICByZXR1cm4gZG9fdXBwZXJfb3JfbG93ZXIoa2luZCwgZGF0YSwgbGVuZ3RoLCByZXMsIG1heGNoYXIsIDEpOworfQorCitzdGF0aWMgUHlfc3NpemVfdAorZG9fY2FzZWZvbGQoaW50IGtpbmQsIHZvaWQgKmRhdGEsIFB5X3NzaXplX3QgbGVuZ3RoLCBQeV9VQ1M0ICpyZXMsIFB5X1VDUzQgKm1heGNoYXIpCit7CisgICAgUHlfc3NpemVfdCBpLCBrID0gMDsKKworICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBQeV9VQ1M0IGMgPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKKyAgICAgICAgUHlfVUNTNCBtYXBwZWRbM107CisgICAgICAgIGludCBqLCBuX3JlcyA9IF9QeVVuaWNvZGVfVG9Gb2xkZWRGdWxsKGMsIG1hcHBlZCk7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBuX3JlczsgaisrKSB7CisgICAgICAgICAgICAqbWF4Y2hhciA9IE1BWF9NQVhDSEFSKCptYXhjaGFyLCBtYXBwZWRbal0pOworICAgICAgICAgICAgcmVzW2srK10gPSBtYXBwZWRbal07CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGs7Cit9CisKK3N0YXRpYyBQeV9zc2l6ZV90Citkb190aXRsZShpbnQga2luZCwgdm9pZCAqZGF0YSwgUHlfc3NpemVfdCBsZW5ndGgsIFB5X1VDUzQgKnJlcywgUHlfVUNTNCAqbWF4Y2hhcikKK3sKKyAgICBQeV9zc2l6ZV90IGksIGsgPSAwOwogICAgIGludCBwcmV2aW91c19pc19jYXNlZDsKIAotICAgIC8qIFNob3J0Y3V0IGZvciBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDEpIHsKLSAgICAgICAgUHlfVU5JQ09ERSBjaCA9IFB5X1VOSUNPREVfVE9USVRMRSgqcCk7Ci0gICAgICAgIGlmICgqcCAhPSBjaCkgewotICAgICAgICAgICAgKnAgPSBjaDsKLSAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIGUgPSBwICsgUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpOwogICAgIHByZXZpb3VzX2lzX2Nhc2VkID0gMDsKLSAgICBmb3IgKDsgcCA8IGU7IHArKykgewotICAgICAgICByZWdpc3RlciBjb25zdCBQeV9VTklDT0RFIGNoID0gKnA7CisgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIGNvbnN0IFB5X1VDUzQgYyA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpOworICAgICAgICBQeV9VQ1M0IG1hcHBlZFszXTsKKyAgICAgICAgaW50IG5fcmVzLCBqOwogCiAgICAgICAgIGlmIChwcmV2aW91c19pc19jYXNlZCkKLSAgICAgICAgICAgICpwID0gUHlfVU5JQ09ERV9UT0xPV0VSKGNoKTsKKyAgICAgICAgICAgIG5fcmVzID0gbG93ZXJfdWNzNChraW5kLCBkYXRhLCBsZW5ndGgsIGksIGMsIG1hcHBlZCk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICpwID0gUHlfVU5JQ09ERV9UT1RJVExFKGNoKTsKKyAgICAgICAgICAgIG5fcmVzID0gX1B5VW5pY29kZV9Ub1RpdGxlRnVsbChjLCBtYXBwZWQpOwogCi0gICAgICAgIGlmIChQeV9VTklDT0RFX0lTTE9XRVIoY2gpIHx8Ci0gICAgICAgICAgICBQeV9VTklDT0RFX0lTVVBQRVIoY2gpIHx8Ci0gICAgICAgICAgICBQeV9VTklDT0RFX0lTVElUTEUoY2gpKQotICAgICAgICAgICAgcHJldmlvdXNfaXNfY2FzZWQgPSAxOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBwcmV2aW91c19pc19jYXNlZCA9IDA7CisgICAgICAgIGZvciAoaiA9IDA7IGogPCBuX3JlczsgaisrKSB7CisgICAgICAgICAgICAqbWF4Y2hhciA9IE1BWF9NQVhDSEFSKCptYXhjaGFyLCBtYXBwZWRbal0pOworICAgICAgICAgICAgcmVzW2srK10gPSBtYXBwZWRbal07CisgICAgICAgIH0KKworICAgICAgICBwcmV2aW91c19pc19jYXNlZCA9IF9QeVVuaWNvZGVfSXNDYXNlZChjKTsKICAgICB9Ci0gICAgcmV0dXJuIDE7CisgICAgcmV0dXJuIGs7Cit9CisKK3N0YXRpYyBQeU9iamVjdCAqCitjYXNlX29wZXJhdGlvbihQeU9iamVjdCAqc2VsZiwKKyAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKCpwZXJmb3JtKShpbnQsIHZvaWQgKiwgUHlfc3NpemVfdCwgUHlfVUNTNCAqLCBQeV9VQ1M0ICopKQoreworICAgIFB5T2JqZWN0ICpyZXMgPSBOVUxMOworICAgIFB5X3NzaXplX3QgbGVuZ3RoLCBuZXdsZW5ndGggPSAwOworICAgIGludCBraW5kLCBvdXRraW5kOworICAgIHZvaWQgKmRhdGEsICpvdXRkYXRhOworICAgIFB5X1VDUzQgbWF4Y2hhciA9IDAsICp0bXAsICp0bXBlbmQ7CisKKyAgICBhc3NlcnQoUHlVbmljb2RlX0lTX1JFQURZKHNlbGYpKTsKKworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChzZWxmKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoc2VsZik7CisgICAgbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZik7CisgICAgdG1wID0gUHlNZW1fTUFMTE9DKHNpemVvZihQeV9VQ1M0KSAqIDMgKiBsZW5ndGgpOworICAgIGlmICh0bXAgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CisgICAgbmV3bGVuZ3RoID0gcGVyZm9ybShraW5kLCBkYXRhLCBsZW5ndGgsIHRtcCwgJm1heGNoYXIpOworICAgIHJlcyA9IFB5VW5pY29kZV9OZXcobmV3bGVuZ3RoLCBtYXhjaGFyKTsKKyAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgIGdvdG8gbGVhdmU7CisgICAgdG1wZW5kID0gdG1wICsgbmV3bGVuZ3RoOworICAgIG91dGRhdGEgPSBQeVVuaWNvZGVfREFUQShyZXMpOworICAgIG91dGtpbmQgPSBQeVVuaWNvZGVfS0lORChyZXMpOworICAgIHN3aXRjaCAob3V0a2luZCkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIF9QeVVuaWNvZGVfQ09OVkVSVF9CWVRFUyhQeV9VQ1M0LCBQeV9VQ1MxLCB0bXAsIHRtcGVuZCwgb3V0ZGF0YSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgIF9QeVVuaWNvZGVfQ09OVkVSVF9CWVRFUyhQeV9VQ1M0LCBQeV9VQ1MyLCB0bXAsIHRtcGVuZCwgb3V0ZGF0YSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisgICAgICAgIG1lbWNweShvdXRkYXRhLCB0bXAsIHNpemVvZihQeV9VQ1M0KSAqIG5ld2xlbmd0aCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGFzc2VydCgwKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICBsZWF2ZToKKyAgICBQeU1lbV9GUkVFKHRtcCk7CisgICAgcmV0dXJuIHJlczsKIH0KIAogUHlPYmplY3QgKgogUHlVbmljb2RlX0pvaW4oUHlPYmplY3QgKnNlcGFyYXRvciwgUHlPYmplY3QgKnNlcSkKIHsKLSAgICBjb25zdCBQeV9VTklDT0RFIGJsYW5rID0gJyAnOwotICAgIGNvbnN0IFB5X1VOSUNPREUgKnNlcCA9ICZibGFuazsKLSAgICBQeV9zc2l6ZV90IHNlcGxlbiA9IDE7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICpyZXMgPSBOVUxMOyAvKiB0aGUgcmVzdWx0ICovCi0gICAgUHlfVU5JQ09ERSAqcmVzX3A7ICAgICAgIC8qIHBvaW50ZXIgdG8gZnJlZSBieXRlIGluIHJlcydzIHN0cmluZyBhcmVhICovCisgICAgUHlPYmplY3QgKnNlcCA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBzZXBsZW47CisgICAgUHlPYmplY3QgKnJlcyA9IE5VTEw7IC8qIHRoZSByZXN1bHQgKi8KICAgICBQeU9iamVjdCAqZnNlcTsgICAgICAgICAgLyogUHlTZXF1ZW5jZV9GYXN0KHNlcSkgKi8KICAgICBQeV9zc2l6ZV90IHNlcWxlbjsgICAgICAgLyogbGVuKGZzZXEpIC0tIG51bWJlciBvZiBpdGVtcyBpbiBzZXF1ZW5jZSAqLwogICAgIFB5T2JqZWN0ICoqaXRlbXM7CiAgICAgUHlPYmplY3QgKml0ZW07Ci0gICAgUHlfc3NpemVfdCBzeiwgaTsKKyAgICBQeV9zc2l6ZV90IHN6LCBpLCByZXNfb2Zmc2V0OworICAgIFB5X1VDUzQgbWF4Y2hhcjsKKyAgICBQeV9VQ1M0IGl0ZW1fbWF4Y2hhcjsKKyAgICBpbnQgdXNlX21lbWNweTsKKyAgICB1bnNpZ25lZCBjaGFyICpyZXNfZGF0YSA9IE5VTEwsICpzZXBfZGF0YSA9IE5VTEw7CisgICAgUHlPYmplY3QgKmxhc3Rfb2JqOworICAgIHVuc2lnbmVkIGludCBraW5kID0gMDsKIAogICAgIGZzZXEgPSBQeVNlcXVlbmNlX0Zhc3Qoc2VxLCAiIik7CiAgICAgaWYgKGZzZXEgPT0gTlVMTCkgewpAQCAtNjc3NiwyNCArOTUwNCwzNCBAQAogICAgIHNlcWxlbiA9IFB5U2VxdWVuY2VfRmFzdF9HRVRfU0laRShmc2VxKTsKICAgICAvKiBJZiBlbXB0eSBzZXF1ZW5jZSwgcmV0dXJuIHUiIi4gKi8KICAgICBpZiAoc2VxbGVuID09IDApIHsKLSAgICAgICAgcmVzID0gX1B5VW5pY29kZV9OZXcoMCk7ICAvKiBlbXB0eSBzZXF1ZW5jZTsgcmV0dXJuIHUiIiAqLwotICAgICAgICBnb3RvIERvbmU7CisgICAgICAgIFB5X0RFQ1JFRihmc2VxKTsKKyAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGVfZW1wdHkpOworICAgICAgICByZXMgPSB1bmljb2RlX2VtcHR5OworICAgICAgICByZXR1cm4gcmVzOwogICAgIH0KLSAgICBpdGVtcyA9IFB5U2VxdWVuY2VfRmFzdF9JVEVNUyhmc2VxKTsKKwogICAgIC8qIElmIHNpbmdsZXRvbiBzZXF1ZW5jZSB3aXRoIGFuIGV4YWN0IFVuaWNvZGUsIHJldHVybiB0aGF0LiAqLworICAgIGxhc3Rfb2JqID0gTlVMTDsKKyAgICBpdGVtcyA9IFB5U2VxdWVuY2VfRmFzdF9JVEVNUyhmc2VxKTsKICAgICBpZiAoc2VxbGVuID09IDEpIHsKLSAgICAgICAgaXRlbSA9IGl0ZW1zWzBdOwotICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QoaXRlbSkpIHsKLSAgICAgICAgICAgIFB5X0lOQ1JFRihpdGVtKTsKLSAgICAgICAgICAgIHJlcyA9IChQeVVuaWNvZGVPYmplY3QgKilpdGVtOwotICAgICAgICAgICAgZ290byBEb25lOworICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QoaXRlbXNbMF0pKSB7CisgICAgICAgICAgICByZXMgPSBpdGVtc1swXTsKKyAgICAgICAgICAgIFB5X0lOQ1JFRihyZXMpOworICAgICAgICAgICAgUHlfREVDUkVGKGZzZXEpOworICAgICAgICAgICAgcmV0dXJuIHJlczsKICAgICAgICAgfQorICAgICAgICBzZXBsZW4gPSAwOworICAgICAgICBtYXhjaGFyID0gMDsKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIC8qIFNldCB1cCBzZXAgYW5kIHNlcGxlbiAqLwogICAgICAgICBpZiAoc2VwYXJhdG9yID09IE5VTEwpIHsKLSAgICAgICAgICAgIHNlcCA9ICZibGFuazsKKyAgICAgICAgICAgIC8qIGZhbGwgYmFjayB0byBhIGJsYW5rIHNwYWNlIHNlcGFyYXRvciAqLworICAgICAgICAgICAgc2VwID0gUHlVbmljb2RlX0Zyb21PcmRpbmFsKCcgJyk7CisgICAgICAgICAgICBpZiAoIXNlcCkKKyAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICBzZXBsZW4gPSAxOworICAgICAgICAgICAgbWF4Y2hhciA9IDMyOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2soc2VwYXJhdG9yKSkgewpAQCAtNjgwMyw5ICs5NTQxLDE2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1RZUEUoc2VwYXJhdG9yKS0+dHBfbmFtZSk7CiAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgc2VwID0gUHlVbmljb2RlX0FTX1VOSUNPREUoc2VwYXJhdG9yKTsKLSAgICAgICAgICAgIHNlcGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRShzZXBhcmF0b3IpOworICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZXBhcmF0b3IpKQorICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgICAgIHNlcCA9IHNlcGFyYXRvcjsKKyAgICAgICAgICAgIHNlcGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlcGFyYXRvcik7CisgICAgICAgICAgICBtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHNlcGFyYXRvcik7CisgICAgICAgICAgICAvKiBpbmMgcmVmY291bnQgdG8ga2VlcCB0aGlzIGNvZGUgcGF0aCBzeW1tZXRyaWMgd2l0aCB0aGUKKyAgICAgICAgICAgICAgIGFib3ZlIGNhc2Ugb2YgYSBibGFuayBzZXBhcmF0b3IgKi8KKyAgICAgICAgICAgIFB5X0lOQ1JFRihzZXApOwogICAgICAgICB9CisgICAgICAgIGxhc3Rfb2JqID0gc2VwOwogICAgIH0KIAogICAgIC8qIFRoZXJlIGFyZSBhdCBsZWFzdCB0d28gdGhpbmdzIHRvIGpvaW4sIG9yIGVsc2Ugd2UgaGF2ZSBhIHN1YmNsYXNzCkBAIC02ODE0LDYgKzk1NTksMTEgQEAKICAgICAgKiBuZWVkIChzeiksIGFuZCBzZWUgd2hldGhlciBhbGwgYXJndW1lbnQgYXJlIHN0cmluZ3MuCiAgICAgICovCiAgICAgc3ogPSAwOworI2lmZGVmIFB5X0RFQlVHCisgICAgdXNlX21lbWNweSA9IDA7CisjZWxzZQorICAgIHVzZV9tZW1jcHkgPSAxOworI2VuZGlmCiAgICAgZm9yIChpID0gMDsgaSA8IHNlcWxlbjsgaSsrKSB7CiAgICAgICAgIGNvbnN0IFB5X3NzaXplX3Qgb2xkX3N6ID0gc3o7CiAgICAgICAgIGl0ZW0gPSBpdGVtc1tpXTsKQEAgLTY4MjQsNyArOTU3NCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgIGksIFB5X1RZUEUoaXRlbSktPnRwX25hbWUpOwogICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICB9Ci0gICAgICAgIHN6ICs9IFB5VW5pY29kZV9HRVRfU0laRShpdGVtKTsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShpdGVtKSA9PSAtMSkKKyAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgc3ogKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgoaXRlbSk7CisgICAgICAgIGl0ZW1fbWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShpdGVtKTsKKyAgICAgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIGl0ZW1fbWF4Y2hhcik7CiAgICAgICAgIGlmIChpICE9IDApCiAgICAgICAgICAgICBzeiArPSBzZXBsZW47CiAgICAgICAgIGlmIChzeiA8IG9sZF9zeiB8fCBzeiA+IFBZX1NTSVpFX1RfTUFYKSB7CkBAIC02ODMyLDI2NiArOTU4Niw3MjYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiam9pbigpIHJlc3VsdCBpcyB0b28gbG9uZyBmb3IgYSBQeXRob24gc3RyaW5nIik7CiAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKHVzZV9tZW1jcHkgJiYgbGFzdF9vYmogIT0gTlVMTCkgeworICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9LSU5EKGxhc3Rfb2JqKSAhPSBQeVVuaWNvZGVfS0lORChpdGVtKSkKKyAgICAgICAgICAgICAgICB1c2VfbWVtY3B5ID0gMDsKKyAgICAgICAgfQorICAgICAgICBsYXN0X29iaiA9IGl0ZW07CiAgICAgfQogCi0gICAgcmVzID0gX1B5VW5pY29kZV9OZXcoc3opOworICAgIHJlcyA9IFB5VW5pY29kZV9OZXcoc3osIG1heGNoYXIpOwogICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgZ290byBvbkVycm9yOwogCiAgICAgLyogQ2F0ZW5hdGUgZXZlcnl0aGluZy4gKi8KLSAgICByZXNfcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlcyk7Ci0gICAgZm9yIChpID0gMDsgaSA8IHNlcWxlbjsgKytpKSB7CisjaWZkZWYgUHlfREVCVUcKKyAgICB1c2VfbWVtY3B5ID0gMDsKKyNlbHNlCisgICAgaWYgKHVzZV9tZW1jcHkpIHsKKyAgICAgICAgcmVzX2RhdGEgPSBQeVVuaWNvZGVfMUJZVEVfREFUQShyZXMpOworICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQocmVzKTsKKyAgICAgICAgaWYgKHNlcGxlbiAhPSAwKQorICAgICAgICAgICAgc2VwX2RhdGEgPSBQeVVuaWNvZGVfMUJZVEVfREFUQShzZXApOworICAgIH0KKyNlbmRpZgorICAgIGZvciAoaSA9IDAsIHJlc19vZmZzZXQgPSAwOyBpIDwgc2VxbGVuOyArK2kpIHsKICAgICAgICAgUHlfc3NpemVfdCBpdGVtbGVuOwogICAgICAgICBpdGVtID0gaXRlbXNbaV07Ci0gICAgICAgIGl0ZW1sZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUoaXRlbSk7CiAgICAgICAgIC8qIENvcHkgaXRlbSwgYW5kIG1heWJlIHRoZSBzZXBhcmF0b3IuICovCi0gICAgICAgIGlmIChpKSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFX0NPUFkocmVzX3AsIHNlcCwgc2VwbGVuKTsKLSAgICAgICAgICAgIHJlc19wICs9IHNlcGxlbjsKKyAgICAgICAgaWYgKGkgJiYgc2VwbGVuICE9IDApIHsKKyAgICAgICAgICAgIGlmICh1c2VfbWVtY3B5KSB7CisgICAgICAgICAgICAgICAgUHlfTUVNQ1BZKHJlc19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZXBfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga2luZCAqIHNlcGxlbik7CisgICAgICAgICAgICAgICAgcmVzX2RhdGEgKz0ga2luZCAqIHNlcGxlbjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHJlcywgcmVzX29mZnNldCwgc2VwLCAwLCBzZXBsZW4pOworICAgICAgICAgICAgICAgIHJlc19vZmZzZXQgKz0gc2VwbGVuOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIFB5X1VOSUNPREVfQ09QWShyZXNfcCwgUHlVbmljb2RlX0FTX1VOSUNPREUoaXRlbSksIGl0ZW1sZW4pOwotICAgICAgICByZXNfcCArPSBpdGVtbGVuOworICAgICAgICBpdGVtbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoaXRlbSk7CisgICAgICAgIGlmIChpdGVtbGVuICE9IDApIHsKKyAgICAgICAgICAgIGlmICh1c2VfbWVtY3B5KSB7CisgICAgICAgICAgICAgICAgUHlfTUVNQ1BZKHJlc19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfREFUQShpdGVtKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAga2luZCAqIGl0ZW1sZW4pOworICAgICAgICAgICAgICAgIHJlc19kYXRhICs9IGtpbmQgKiBpdGVtbGVuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMocmVzLCByZXNfb2Zmc2V0LCBpdGVtLCAwLCBpdGVtbGVuKTsKKyAgICAgICAgICAgICAgICByZXNfb2Zmc2V0ICs9IGl0ZW1sZW47CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CisgICAgaWYgKHVzZV9tZW1jcHkpCisgICAgICAgIGFzc2VydChyZXNfZGF0YSA9PSBQeVVuaWNvZGVfMUJZVEVfREFUQShyZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICArIGtpbmQgKiBQeVVuaWNvZGVfR0VUX0xFTkdUSChyZXMpKTsKKyAgICBlbHNlCisgICAgICAgIGFzc2VydChyZXNfb2Zmc2V0ID09IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlcykpOwogCi0gIERvbmU6CiAgICAgUHlfREVDUkVGKGZzZXEpOwotICAgIHJldHVybiAoUHlPYmplY3QgKilyZXM7CisgICAgUHlfWERFQ1JFRihzZXApOworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kocmVzLCAxKSk7CisgICAgcmV0dXJuIHJlczsKIAogICBvbkVycm9yOgogICAgIFB5X0RFQ1JFRihmc2VxKTsKKyAgICBQeV9YREVDUkVGKHNlcCk7CiAgICAgUHlfWERFQ1JFRihyZXMpOwogICAgIHJldHVybiBOVUxMOwogfQogCi1zdGF0aWMKLVB5VW5pY29kZU9iamVjdCAqcGFkKFB5VW5pY29kZU9iamVjdCAqc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVmdCwKLSAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgcmlnaHQsCi0gICAgICAgICAgICAgICAgICAgICBQeV9VTklDT0RFIGZpbGwpCisjZGVmaW5lIEZJTEwoa2luZCwgZGF0YSwgdmFsdWUsIHN0YXJ0LCBsZW5ndGgpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgUHlfc3NpemVfdCBpXyA9IDA7IFwKKyAgICAgICAgYXNzZXJ0KGtpbmQgIT0gUHlVbmljb2RlX1dDSEFSX0tJTkQpOyBcCisgICAgICAgIHN3aXRjaCAoKGtpbmQpKSB7IFwKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDogeyBcCisgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICogdG9fID0gKHVuc2lnbmVkIGNoYXIgKikoKGRhdGEpKSArIChzdGFydCk7IFwKKyAgICAgICAgICAgIG1lbXNldCh0b18sICh1bnNpZ25lZCBjaGFyKXZhbHVlLCAobGVuZ3RoKSk7IFwKKyAgICAgICAgICAgIGJyZWFrOyBcCisgICAgICAgIH0gXAorICAgICAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOiB7IFwKKyAgICAgICAgICAgIFB5X1VDUzIgKiB0b18gPSAoUHlfVUNTMiAqKSgoZGF0YSkpICsgKHN0YXJ0KTsgXAorICAgICAgICAgICAgZm9yICg7IGlfIDwgKGxlbmd0aCk7ICsraV8sICsrdG9fKSAqdG9fID0gKHZhbHVlKTsgXAorICAgICAgICAgICAgYnJlYWs7IFwKKyAgICAgICAgfSBcCisgICAgICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6IHsgXAorICAgICAgICAgICAgUHlfVUNTNCAqIHRvXyA9IChQeV9VQ1M0ICopKChkYXRhKSkgKyAoc3RhcnQpOyBcCisgICAgICAgICAgICBmb3IgKDsgaV8gPCAobGVuZ3RoKTsgKytpXywgKyt0b18pICp0b18gPSAodmFsdWUpOyBcCisgICAgICAgICAgICBicmVhazsgXAorICAgICAgICBkZWZhdWx0OiBhc3NlcnQoMCk7IFwKKyAgICAgICAgfSBcCisgICAgICAgIH0gXAorICAgIH0gd2hpbGUgKDApCisKK3ZvaWQKK19QeVVuaWNvZGVfRmFzdEZpbGwoUHlPYmplY3QgKnVuaWNvZGUsIFB5X3NzaXplX3Qgc3RhcnQsIFB5X3NzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IGZpbGxfY2hhcikKIHsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnU7CisgICAgY29uc3QgZW51bSBQeVVuaWNvZGVfS2luZCBraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgY29uc3Qgdm9pZCAqZGF0YSA9IFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpOworICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkodW5pY29kZSkpOworICAgIGFzc2VydCh1bmljb2RlX21vZGlmaWFibGUodW5pY29kZSkpOworICAgIGFzc2VydChmaWxsX2NoYXIgPD0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHVuaWNvZGUpKTsKKyAgICBhc3NlcnQoc3RhcnQgPj0gMCk7CisgICAgYXNzZXJ0KHN0YXJ0ICsgbGVuZ3RoIDw9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpKTsKKyAgICBGSUxMKGtpbmQsIGRhdGEsIGZpbGxfY2hhciwgc3RhcnQsIGxlbmd0aCk7Cit9CisKK1B5X3NzaXplX3QKK1B5VW5pY29kZV9GaWxsKFB5T2JqZWN0ICp1bmljb2RlLCBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGxlbmd0aCwKKyAgICAgICAgICAgICAgIFB5X1VDUzQgZmlsbF9jaGFyKQoreworICAgIFB5X3NzaXplX3QgbWF4bGVuOworCisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodW5pY29kZSkpIHsKKyAgICAgICAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsKCk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmICh1bmljb2RlX2NoZWNrX21vZGlmaWFibGUodW5pY29kZSkpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlmIChzdGFydCA8IDApIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0luZGV4RXJyb3IsICJzdHJpbmcgaW5kZXggb3V0IG9mIHJhbmdlIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKGZpbGxfY2hhciA+IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh1bmljb2RlKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZmlsbCBjaGFyYWN0ZXIgaXMgYmlnZ2VyIHRoYW4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgc3RyaW5nIG1heGltdW0gY2hhcmFjdGVyIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBtYXhsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmljb2RlKSAtIHN0YXJ0OworICAgIGxlbmd0aCA9IFB5X01JTihtYXhsZW4sIGxlbmd0aCk7CisgICAgaWYgKGxlbmd0aCA8PSAwKQorICAgICAgICByZXR1cm4gMDsKKworICAgIF9QeVVuaWNvZGVfRmFzdEZpbGwodW5pY29kZSwgc3RhcnQsIGxlbmd0aCwgZmlsbF9jaGFyKTsKKyAgICByZXR1cm4gbGVuZ3RoOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorcGFkKFB5T2JqZWN0ICpzZWxmLAorICAgIFB5X3NzaXplX3QgbGVmdCwKKyAgICBQeV9zc2l6ZV90IHJpZ2h0LAorICAgIFB5X1VDUzQgZmlsbCkKK3sKKyAgICBQeU9iamVjdCAqdTsKKyAgICBQeV9VQ1M0IG1heGNoYXI7CisgICAgaW50IGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKIAogICAgIGlmIChsZWZ0IDwgMCkKICAgICAgICAgbGVmdCA9IDA7CiAgICAgaWYgKHJpZ2h0IDwgMCkKICAgICAgICAgcmlnaHQgPSAwOwogCi0gICAgaWYgKGxlZnQgPT0gMCAmJiByaWdodCA9PSAwICYmIFB5VW5pY29kZV9DaGVja0V4YWN0KHNlbGYpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihzZWxmKTsKLSAgICAgICAgcmV0dXJuIHNlbGY7Ci0gICAgfQorICAgIGlmIChsZWZ0ID09IDAgJiYgcmlnaHQgPT0gMCkKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0X3VuY2hhbmdlZChzZWxmKTsKIAotICAgIGlmIChsZWZ0ID4gUFlfU1NJWkVfVF9NQVggLSBzZWxmLT5sZW5ndGggfHwKLSAgICAgICAgcmlnaHQgPiBQWV9TU0laRV9UX01BWCAtIChsZWZ0ICsgc2VsZi0+bGVuZ3RoKSkgeworICAgIGlmIChsZWZ0ID4gUFlfU1NJWkVfVF9NQVggLSBfUHlVbmljb2RlX0xFTkdUSChzZWxmKSB8fAorICAgICAgICByaWdodCA+IFBZX1NTSVpFX1RfTUFYIC0gKGxlZnQgKyBfUHlVbmljb2RlX0xFTkdUSChzZWxmKSkpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsICJwYWRkZWQgc3RyaW5nIGlzIHRvbyBsb25nIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICB1ID0gX1B5VW5pY29kZV9OZXcobGVmdCArIHNlbGYtPmxlbmd0aCArIHJpZ2h0KTsKLSAgICBpZiAodSkgewotICAgICAgICBpZiAobGVmdCkKLSAgICAgICAgICAgIFB5X1VOSUNPREVfRklMTCh1LT5zdHIsIGZpbGwsIGxlZnQpOwotICAgICAgICBQeV9VTklDT0RFX0NPUFkodS0+c3RyICsgbGVmdCwgc2VsZi0+c3RyLCBzZWxmLT5sZW5ndGgpOwotICAgICAgICBpZiAocmlnaHQpCi0gICAgICAgICAgICBQeV9VTklDT0RFX0ZJTEwodS0+c3RyICsgbGVmdCArIHNlbGYtPmxlbmd0aCwgZmlsbCwgcmlnaHQpOwotICAgIH0KKyAgICBtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHNlbGYpOworICAgIG1heGNoYXIgPSBNQVhfTUFYQ0hBUihtYXhjaGFyLCBmaWxsKTsKKyAgICB1ID0gUHlVbmljb2RlX05ldyhsZWZ0ICsgX1B5VW5pY29kZV9MRU5HVEgoc2VsZikgKyByaWdodCwgbWF4Y2hhcik7CisgICAgaWYgKCF1KQorICAgICAgICByZXR1cm4gTlVMTDsKIAorICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh1KTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEodSk7CisgICAgaWYgKGxlZnQpCisgICAgICAgIEZJTEwoa2luZCwgZGF0YSwgZmlsbCwgMCwgbGVmdCk7CisgICAgaWYgKHJpZ2h0KQorICAgICAgICBGSUxMKGtpbmQsIGRhdGEsIGZpbGwsIGxlZnQgKyBfUHlVbmljb2RlX0xFTkdUSChzZWxmKSwgcmlnaHQpOworICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHUsIGxlZnQsIHNlbGYsIDAsIF9QeVVuaWNvZGVfTEVOR1RIKHNlbGYpKTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHUsIDEpKTsKICAgICByZXR1cm4gdTsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9TcGxpdGxpbmVzKFB5T2JqZWN0ICpzdHJpbmcsIGludCBrZWVwZW5kcykKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9TcGxpdGxpbmVzKFB5T2JqZWN0ICpzdHJpbmcsIGludCBrZWVwZW5kcykKIHsKICAgICBQeU9iamVjdCAqbGlzdDsKIAogICAgIHN0cmluZyA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cmluZyk7CiAgICAgaWYgKHN0cmluZyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN0cmluZykgPT0gLTEpIHsKKyAgICAgICAgUHlfREVDUkVGKHN0cmluZyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KIAotICAgIGxpc3QgPSBzdHJpbmdsaWJfc3BsaXRsaW5lcygKLSAgICAgICAgKFB5T2JqZWN0Kikgc3RyaW5nLCBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdHJpbmcpLAotICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyaW5nKSwga2VlcGVuZHMpOwotCisgICAgc3dpdGNoIChQeVVuaWNvZGVfS0lORChzdHJpbmcpKSB7CisgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDoKKyAgICAgICAgaWYgKFB5VW5pY29kZV9JU19BU0NJSShzdHJpbmcpKQorICAgICAgICAgICAgbGlzdCA9IGFzY2lpbGliX3NwbGl0bGluZXMoCisgICAgICAgICAgICAgICAgc3RyaW5nLCBQeVVuaWNvZGVfMUJZVEVfREFUQShzdHJpbmcpLAorICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cmluZyksIGtlZXBlbmRzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbGlzdCA9IHVjczFsaWJfc3BsaXRsaW5lcygKKyAgICAgICAgICAgICAgICBzdHJpbmcsIFB5VW5pY29kZV8xQllURV9EQVRBKHN0cmluZyksCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyaW5nKSwga2VlcGVuZHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICBsaXN0ID0gdWNzMmxpYl9zcGxpdGxpbmVzKAorICAgICAgICAgICAgc3RyaW5nLCBQeVVuaWNvZGVfMkJZVEVfREFUQShzdHJpbmcpLAorICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyaW5nKSwga2VlcGVuZHMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5VW5pY29kZV80QllURV9LSU5EOgorICAgICAgICBsaXN0ID0gdWNzNGxpYl9zcGxpdGxpbmVzKAorICAgICAgICAgICAgc3RyaW5nLCBQeVVuaWNvZGVfNEJZVEVfREFUQShzdHJpbmcpLAorICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyaW5nKSwga2VlcGVuZHMpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBhc3NlcnQoMCk7CisgICAgICAgIGxpc3QgPSAwOworICAgIH0KICAgICBQeV9ERUNSRUYoc3RyaW5nKTsKICAgICByZXR1cm4gbGlzdDsKIH0KIAotc3RhdGljCi1QeU9iamVjdCAqc3BsaXQoUHlVbmljb2RlT2JqZWN0ICpzZWxmLAotICAgICAgICAgICAgICAgIFB5VW5pY29kZU9iamVjdCAqc3Vic3RyaW5nLAotICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbWF4Y291bnQpCitzdGF0aWMgUHlPYmplY3QgKgorc3BsaXQoUHlPYmplY3QgKnNlbGYsCisgICAgICBQeU9iamVjdCAqc3Vic3RyaW5nLAorICAgICAgUHlfc3NpemVfdCBtYXhjb3VudCkKIHsKKyAgICBpbnQga2luZDEsIGtpbmQyLCBraW5kOworICAgIHZvaWQgKmJ1ZjEsICpidWYyOworICAgIFB5X3NzaXplX3QgbGVuMSwgbGVuMjsKKyAgICBQeU9iamVjdCogb3V0OworCiAgICAgaWYgKG1heGNvdW50IDwgMCkKICAgICAgICAgbWF4Y291bnQgPSBQWV9TU0laRV9UX01BWDsKIAorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgaWYgKHN1YnN0cmluZyA9PSBOVUxMKQotICAgICAgICByZXR1cm4gc3RyaW5nbGliX3NwbGl0X3doaXRlc3BhY2UoCi0gICAgICAgICAgICAoUHlPYmplY3QqKSBzZWxmLCAgc2VsZi0+c3RyLCBzZWxmLT5sZW5ndGgsIG1heGNvdW50Ci0gICAgICAgICAgICApOworICAgICAgICBzd2l0Y2ggKFB5VW5pY29kZV9LSU5EKHNlbGYpKSB7CisgICAgICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHNlbGYpKQorICAgICAgICAgICAgICAgIHJldHVybiBhc2NpaWxpYl9zcGxpdF93aGl0ZXNwYWNlKAorICAgICAgICAgICAgICAgICAgICBzZWxmLCAgUHlVbmljb2RlXzFCWVRFX0RBVEEoc2VsZiksCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpLCBtYXhjb3VudAorICAgICAgICAgICAgICAgICAgICApOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJldHVybiB1Y3MxbGliX3NwbGl0X3doaXRlc3BhY2UoCisgICAgICAgICAgICAgICAgICAgIHNlbGYsICBQeVVuaWNvZGVfMUJZVEVfREFUQShzZWxmKSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZiksIG1heGNvdW50CisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgICAgICByZXR1cm4gdWNzMmxpYl9zcGxpdF93aGl0ZXNwYWNlKAorICAgICAgICAgICAgICAgIHNlbGYsICBQeVVuaWNvZGVfMkJZVEVfREFUQShzZWxmKSwKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKSwgbWF4Y291bnQKKyAgICAgICAgICAgICAgICApOworICAgICAgICBjYXNlIFB5VW5pY29kZV80QllURV9LSU5EOgorICAgICAgICAgICAgcmV0dXJuIHVjczRsaWJfc3BsaXRfd2hpdGVzcGFjZSgKKyAgICAgICAgICAgICAgICBzZWxmLCAgUHlVbmljb2RlXzRCWVRFX0RBVEEoc2VsZiksCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZiksIG1heGNvdW50CisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIGFzc2VydCgwKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CiAKLSAgICByZXR1cm4gc3RyaW5nbGliX3NwbGl0KAotICAgICAgICAoUHlPYmplY3QqKSBzZWxmLCAgc2VsZi0+c3RyLCBzZWxmLT5sZW5ndGgsCi0gICAgICAgIHN1YnN0cmluZy0+c3RyLCBzdWJzdHJpbmctPmxlbmd0aCwKLSAgICAgICAgbWF4Y291bnQKLSAgICAgICAgKTsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN1YnN0cmluZykgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAga2luZDEgPSBQeVVuaWNvZGVfS0lORChzZWxmKTsKKyAgICBraW5kMiA9IFB5VW5pY29kZV9LSU5EKHN1YnN0cmluZyk7CisgICAga2luZCA9IGtpbmQxID4ga2luZDIgPyBraW5kMSA6IGtpbmQyOworICAgIGJ1ZjEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKKyAgICBidWYyID0gUHlVbmljb2RlX0RBVEEoc3Vic3RyaW5nKTsKKyAgICBpZiAoa2luZDEgIT0ga2luZCkKKyAgICAgICAgYnVmMSA9IF9QeVVuaWNvZGVfQXNLaW5kKHNlbGYsIGtpbmQpOworICAgIGlmICghYnVmMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKGtpbmQyICE9IGtpbmQpCisgICAgICAgIGJ1ZjIgPSBfUHlVbmljb2RlX0FzS2luZChzdWJzdHJpbmcsIGtpbmQpOworICAgIGlmICghYnVmMikgeworICAgICAgICBpZiAoa2luZDEgIT0ga2luZCkgUHlNZW1fRnJlZShidWYxKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGxlbjEgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKKyAgICBsZW4yID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3Vic3RyaW5nKTsKKworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkoc2VsZikgJiYgUHlVbmljb2RlX0lTX0FTQ0lJKHN1YnN0cmluZykpCisgICAgICAgICAgICBvdXQgPSBhc2NpaWxpYl9zcGxpdCgKKyAgICAgICAgICAgICAgICBzZWxmLCAgYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgbWF4Y291bnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBvdXQgPSB1Y3MxbGliX3NwbGl0KAorICAgICAgICAgICAgICAgIHNlbGYsICBidWYxLCBsZW4xLCBidWYyLCBsZW4yLCBtYXhjb3VudCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgIG91dCA9IHVjczJsaWJfc3BsaXQoCisgICAgICAgICAgICBzZWxmLCAgYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgbWF4Y291bnQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5VW5pY29kZV80QllURV9LSU5EOgorICAgICAgICBvdXQgPSB1Y3M0bGliX3NwbGl0KAorICAgICAgICAgICAgc2VsZiwgIGJ1ZjEsIGxlbjEsIGJ1ZjIsIGxlbjIsIG1heGNvdW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgb3V0ID0gTlVMTDsKKyAgICB9CisgICAgaWYgKGtpbmQxICE9IGtpbmQpCisgICAgICAgIFB5TWVtX0ZyZWUoYnVmMSk7CisgICAgaWYgKGtpbmQyICE9IGtpbmQpCisgICAgICAgIFB5TWVtX0ZyZWUoYnVmMik7CisgICAgcmV0dXJuIG91dDsKIH0KIAotc3RhdGljCi1QeU9iamVjdCAqcnNwbGl0KFB5VW5pY29kZU9iamVjdCAqc2VsZiwKLSAgICAgICAgICAgICAgICAgUHlVbmljb2RlT2JqZWN0ICpzdWJzdHJpbmcsCi0gICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbWF4Y291bnQpCitzdGF0aWMgUHlPYmplY3QgKgorcnNwbGl0KFB5T2JqZWN0ICpzZWxmLAorICAgICAgIFB5T2JqZWN0ICpzdWJzdHJpbmcsCisgICAgICAgUHlfc3NpemVfdCBtYXhjb3VudCkKIHsKKyAgICBpbnQga2luZDEsIGtpbmQyLCBraW5kOworICAgIHZvaWQgKmJ1ZjEsICpidWYyOworICAgIFB5X3NzaXplX3QgbGVuMSwgbGVuMjsKKyAgICBQeU9iamVjdCogb3V0OworCiAgICAgaWYgKG1heGNvdW50IDwgMCkKICAgICAgICAgbWF4Y291bnQgPSBQWV9TU0laRV9UX01BWDsKIAorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgaWYgKHN1YnN0cmluZyA9PSBOVUxMKQotICAgICAgICByZXR1cm4gc3RyaW5nbGliX3JzcGxpdF93aGl0ZXNwYWNlKAotICAgICAgICAgICAgKFB5T2JqZWN0Kikgc2VsZiwgIHNlbGYtPnN0ciwgc2VsZi0+bGVuZ3RoLCBtYXhjb3VudAotICAgICAgICAgICAgKTsKKyAgICAgICAgc3dpdGNoIChQeVVuaWNvZGVfS0lORChzZWxmKSkgeworICAgICAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOgorICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9JU19BU0NJSShzZWxmKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gYXNjaWlsaWJfcnNwbGl0X3doaXRlc3BhY2UoCisgICAgICAgICAgICAgICAgICAgIHNlbGYsICBQeVVuaWNvZGVfMUJZVEVfREFUQShzZWxmKSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZiksIG1heGNvdW50CisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIHVjczFsaWJfcnNwbGl0X3doaXRlc3BhY2UoCisgICAgICAgICAgICAgICAgICAgIHNlbGYsICBQeVVuaWNvZGVfMUJZVEVfREFUQShzZWxmKSwKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZiksIG1heGNvdW50CisgICAgICAgICAgICAgICAgICAgICk7CisgICAgICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6CisgICAgICAgICAgICByZXR1cm4gdWNzMmxpYl9yc3BsaXRfd2hpdGVzcGFjZSgKKyAgICAgICAgICAgICAgICBzZWxmLCAgUHlVbmljb2RlXzJCWVRFX0RBVEEoc2VsZiksCisgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZiksIG1heGNvdW50CisgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgICAgIHJldHVybiB1Y3M0bGliX3JzcGxpdF93aGl0ZXNwYWNlKAorICAgICAgICAgICAgICAgIHNlbGYsICBQeVVuaWNvZGVfNEJZVEVfREFUQShzZWxmKSwKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKSwgbWF4Y291bnQKKyAgICAgICAgICAgICAgICApOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgYXNzZXJ0KDApOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KIAotICAgIHJldHVybiBzdHJpbmdsaWJfcnNwbGl0KAotICAgICAgICAoUHlPYmplY3QqKSBzZWxmLCAgc2VsZi0+c3RyLCBzZWxmLT5sZW5ndGgsCi0gICAgICAgIHN1YnN0cmluZy0+c3RyLCBzdWJzdHJpbmctPmxlbmd0aCwKLSAgICAgICAgbWF4Y291bnQKLSAgICAgICAgKTsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN1YnN0cmluZykgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAga2luZDEgPSBQeVVuaWNvZGVfS0lORChzZWxmKTsKKyAgICBraW5kMiA9IFB5VW5pY29kZV9LSU5EKHN1YnN0cmluZyk7CisgICAga2luZCA9IGtpbmQxID4ga2luZDIgPyBraW5kMSA6IGtpbmQyOworICAgIGJ1ZjEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKKyAgICBidWYyID0gUHlVbmljb2RlX0RBVEEoc3Vic3RyaW5nKTsKKyAgICBpZiAoa2luZDEgIT0ga2luZCkKKyAgICAgICAgYnVmMSA9IF9QeVVuaWNvZGVfQXNLaW5kKHNlbGYsIGtpbmQpOworICAgIGlmICghYnVmMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKGtpbmQyICE9IGtpbmQpCisgICAgICAgIGJ1ZjIgPSBfUHlVbmljb2RlX0FzS2luZChzdWJzdHJpbmcsIGtpbmQpOworICAgIGlmICghYnVmMikgeworICAgICAgICBpZiAoa2luZDEgIT0ga2luZCkgUHlNZW1fRnJlZShidWYxKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGxlbjEgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKKyAgICBsZW4yID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3Vic3RyaW5nKTsKKworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkoc2VsZikgJiYgUHlVbmljb2RlX0lTX0FTQ0lJKHN1YnN0cmluZykpCisgICAgICAgICAgICBvdXQgPSBhc2NpaWxpYl9yc3BsaXQoCisgICAgICAgICAgICAgICAgc2VsZiwgIGJ1ZjEsIGxlbjEsIGJ1ZjIsIGxlbjIsIG1heGNvdW50KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0ID0gdWNzMWxpYl9yc3BsaXQoCisgICAgICAgICAgICAgICAgc2VsZiwgIGJ1ZjEsIGxlbjEsIGJ1ZjIsIGxlbjIsIG1heGNvdW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQeVVuaWNvZGVfMkJZVEVfS0lORDoKKyAgICAgICAgb3V0ID0gdWNzMmxpYl9yc3BsaXQoCisgICAgICAgICAgICBzZWxmLCAgYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgbWF4Y291bnQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5VW5pY29kZV80QllURV9LSU5EOgorICAgICAgICBvdXQgPSB1Y3M0bGliX3JzcGxpdCgKKyAgICAgICAgICAgIHNlbGYsICBidWYxLCBsZW4xLCBidWYyLCBsZW4yLCBtYXhjb3VudCk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIG91dCA9IE5VTEw7CisgICAgfQorICAgIGlmIChraW5kMSAhPSBraW5kKQorICAgICAgICBQeU1lbV9GcmVlKGJ1ZjEpOworICAgIGlmIChraW5kMiAhPSBraW5kKQorICAgICAgICBQeU1lbV9GcmVlKGJ1ZjIpOworICAgIHJldHVybiBvdXQ7CiB9CiAKLXN0YXRpYwotUHlPYmplY3QgKnJlcGxhY2UoUHlVbmljb2RlT2JqZWN0ICpzZWxmLAotICAgICAgICAgICAgICAgICAgUHlVbmljb2RlT2JqZWN0ICpzdHIxLAotICAgICAgICAgICAgICAgICAgUHlVbmljb2RlT2JqZWN0ICpzdHIyLAotICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBtYXhjb3VudCkKK3N0YXRpYyBQeV9zc2l6ZV90CithbnlsaWJfZmluZChpbnQga2luZCwgUHlPYmplY3QgKnN0cjEsIHZvaWQgKmJ1ZjEsIFB5X3NzaXplX3QgbGVuMSwKKyAgICAgICAgICAgIFB5T2JqZWN0ICpzdHIyLCB2b2lkICpidWYyLCBQeV9zc2l6ZV90IGxlbjIsIFB5X3NzaXplX3Qgb2Zmc2V0KQogewotICAgIFB5VW5pY29kZU9iamVjdCAqdTsKKyAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOgorICAgICAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHN0cjEpICYmIFB5VW5pY29kZV9JU19BU0NJSShzdHIyKSkKKyAgICAgICAgICAgIHJldHVybiBhc2NpaWxpYl9maW5kKGJ1ZjEsIGxlbjEsIGJ1ZjIsIGxlbjIsIG9mZnNldCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiB1Y3MxbGliX2ZpbmQoYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgb2Zmc2V0KTsKKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICByZXR1cm4gdWNzMmxpYl9maW5kKGJ1ZjEsIGxlbjEsIGJ1ZjIsIGxlbjIsIG9mZnNldCk7CisgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgcmV0dXJuIHVjczRsaWJfZmluZChidWYxLCBsZW4xLCBidWYyLCBsZW4yLCBvZmZzZXQpOworICAgIH0KKyAgICBhc3NlcnQoMCk7CisgICAgcmV0dXJuIC0xOworfQorCitzdGF0aWMgUHlfc3NpemVfdAorYW55bGliX2NvdW50KGludCBraW5kLCBQeU9iamVjdCAqc3N0ciwgdm9pZCogc2J1ZiwgUHlfc3NpemVfdCBzbGVuLAorICAgICAgICAgICAgIFB5T2JqZWN0ICpzdHIxLCB2b2lkICpidWYxLCBQeV9zc2l6ZV90IGxlbjEsIFB5X3NzaXplX3QgbWF4Y291bnQpCit7CisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDoKKyAgICAgICAgaWYgKFB5VW5pY29kZV9JU19BU0NJSShzc3RyKSAmJiBQeVVuaWNvZGVfSVNfQVNDSUkoc3RyMSkpCisgICAgICAgICAgICByZXR1cm4gYXNjaWlsaWJfY291bnQoc2J1Ziwgc2xlbiwgYnVmMSwgbGVuMSwgbWF4Y291bnQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gdWNzMWxpYl9jb3VudChzYnVmLCBzbGVuLCBidWYxLCBsZW4xLCBtYXhjb3VudCk7CisgICAgY2FzZSBQeVVuaWNvZGVfMkJZVEVfS0lORDoKKyAgICAgICAgcmV0dXJuIHVjczJsaWJfY291bnQoc2J1Ziwgc2xlbiwgYnVmMSwgbGVuMSwgbWF4Y291bnQpOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisgICAgICAgIHJldHVybiB1Y3M0bGliX2NvdW50KHNidWYsIHNsZW4sIGJ1ZjEsIGxlbjEsIG1heGNvdW50KTsKKyAgICB9CisgICAgYXNzZXJ0KDApOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgUHlPYmplY3QgKgorcmVwbGFjZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnN0cjEsCisgICAgICAgIFB5T2JqZWN0ICpzdHIyLCBQeV9zc2l6ZV90IG1heGNvdW50KQoreworICAgIFB5T2JqZWN0ICp1OworICAgIGNoYXIgKnNidWYgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKKyAgICBjaGFyICpidWYxID0gUHlVbmljb2RlX0RBVEEoc3RyMSk7CisgICAgY2hhciAqYnVmMiA9IFB5VW5pY29kZV9EQVRBKHN0cjIpOworICAgIGludCBzcmVsZWFzZSA9IDAsIHJlbGVhc2UxID0gMCwgcmVsZWFzZTIgPSAwOworICAgIGludCBza2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgIGludCBraW5kMSA9IFB5VW5pY29kZV9LSU5EKHN0cjEpOworICAgIGludCBraW5kMiA9IFB5VW5pY29kZV9LSU5EKHN0cjIpOworICAgIFB5X3NzaXplX3Qgc2xlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpOworICAgIFB5X3NzaXplX3QgbGVuMSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cjEpOworICAgIFB5X3NzaXplX3QgbGVuMiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cjIpOworICAgIGludCBtYXlzaHJpbms7CisgICAgUHlfVUNTNCBtYXhjaGFyLCBtYXhjaGFyX3N0cjI7CiAKICAgICBpZiAobWF4Y291bnQgPCAwKQogICAgICAgICBtYXhjb3VudCA9IFBZX1NTSVpFX1RfTUFYOwotICAgIGVsc2UgaWYgKG1heGNvdW50ID09IDAgfHwgc2VsZi0+bGVuZ3RoID09IDApCisgICAgZWxzZSBpZiAobWF4Y291bnQgPT0gMCB8fCBzbGVuID09IDApCiAgICAgICAgIGdvdG8gbm90aGluZzsKIAotICAgIGlmIChzdHIxLT5sZW5ndGggPT0gc3RyMi0+bGVuZ3RoKSB7Ci0gICAgICAgIFB5X3NzaXplX3QgaTsKKyAgICBpZiAoc3RyMSA9PSBzdHIyKQorICAgICAgICBnb3RvIG5vdGhpbmc7CisgICAgaWYgKHNraW5kIDwga2luZDEpCisgICAgICAgIC8qIHN1YnN0cmluZyB0b28gd2lkZSB0byBiZSBwcmVzZW50ICovCisgICAgICAgIGdvdG8gbm90aGluZzsKKworICAgIG1heGNoYXIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUoc2VsZik7CisgICAgbWF4Y2hhcl9zdHIyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHN0cjIpOworICAgIC8qIFJlcGxhY2luZyBzdHIxIHdpdGggc3RyMiBtYXkgY2F1c2UgYSBtYXhjaGFyIHJlZHVjdGlvbiBpbiB0aGUKKyAgICAgICByZXN1bHQgc3RyaW5nLiAqLworICAgIG1heXNocmluayA9IChtYXhjaGFyX3N0cjIgPCBtYXhjaGFyKTsKKyAgICBtYXhjaGFyID0gTUFYX01BWENIQVIobWF4Y2hhciwgbWF4Y2hhcl9zdHIyKTsKKworICAgIGlmIChsZW4xID09IGxlbjIpIHsKICAgICAgICAgLyogc2FtZSBsZW5ndGggKi8KLSAgICAgICAgaWYgKHN0cjEtPmxlbmd0aCA9PSAwKQorICAgICAgICBpZiAobGVuMSA9PSAwKQogICAgICAgICAgICAgZ290byBub3RoaW5nOwotICAgICAgICBpZiAoc3RyMS0+bGVuZ3RoID09IDEpIHsKKyAgICAgICAgaWYgKGxlbjEgPT0gMSkgewogICAgICAgICAgICAgLyogcmVwbGFjZSBjaGFyYWN0ZXJzICovCi0gICAgICAgICAgICBQeV9VTklDT0RFIHUxLCB1MjsKLSAgICAgICAgICAgIGlmICghZmluZGNoYXIoc2VsZi0+c3RyLCBzZWxmLT5sZW5ndGgsIHN0cjEtPnN0clswXSkpCisgICAgICAgICAgICBQeV9VQ1M0IHUxLCB1MjsKKyAgICAgICAgICAgIGludCBya2luZDsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgaW5kZXgsIHBvczsKKyAgICAgICAgICAgIGNoYXIgKnNyYzsKKworICAgICAgICAgICAgdTEgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKHN0cjEsIDApOworICAgICAgICAgICAgcG9zID0gZmluZGNoYXIoc2J1ZiwgUHlVbmljb2RlX0tJTkQoc2VsZiksIHNsZW4sIHUxLCAxKTsKKyAgICAgICAgICAgIGlmIChwb3MgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gbm90aGluZzsKLSAgICAgICAgICAgIHUgPSAoUHlVbmljb2RlT2JqZWN0KikgUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIHNlbGYtPmxlbmd0aCk7CisgICAgICAgICAgICB1MiA9IFB5VW5pY29kZV9SRUFEX0NIQVIoc3RyMiwgMCk7CisgICAgICAgICAgICB1ID0gUHlVbmljb2RlX05ldyhzbGVuLCBtYXhjaGFyKTsKICAgICAgICAgICAgIGlmICghdSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIFB5X1VOSUNPREVfQ09QWSh1LT5zdHIsIHNlbGYtPnN0ciwgc2VsZi0+bGVuZ3RoKTsKLSAgICAgICAgICAgIHUxID0gc3RyMS0+c3RyWzBdOwotICAgICAgICAgICAgdTIgPSBzdHIyLT5zdHJbMF07Ci0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdS0+bGVuZ3RoOyBpKyspCi0gICAgICAgICAgICAgICAgaWYgKHUtPnN0cltpXSA9PSB1MSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoLS1tYXhjb3VudCA8IDApCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgdS0+c3RyW2ldID0gdTI7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaSA9IHN0cmluZ2xpYl9maW5kKAotICAgICAgICAgICAgICAgIHNlbGYtPnN0ciwgc2VsZi0+bGVuZ3RoLCBzdHIxLT5zdHIsIHN0cjEtPmxlbmd0aCwgMAotICAgICAgICAgICAgICAgICk7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHUsIDAsIHNlbGYsIDAsIHNsZW4pOworICAgICAgICAgICAgcmtpbmQgPSBQeVVuaWNvZGVfS0lORCh1KTsKKworICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKHJraW5kLCBQeVVuaWNvZGVfREFUQSh1KSwgcG9zLCB1Mik7CisgICAgICAgICAgICBpbmRleCA9IDA7CisgICAgICAgICAgICBzcmMgPSBzYnVmOworICAgICAgICAgICAgd2hpbGUgKC0tbWF4Y291bnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcG9zKys7CisgICAgICAgICAgICAgICAgc3JjICs9IHBvcyAqIFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgICAgICAgICAgICAgIHNsZW4gLT0gcG9zOworICAgICAgICAgICAgICAgIGluZGV4ICs9IHBvczsKKyAgICAgICAgICAgICAgICBwb3MgPSBmaW5kY2hhcihzcmMsIFB5VW5pY29kZV9LSU5EKHNlbGYpLCBzbGVuLCB1MSwgMSk7CisgICAgICAgICAgICAgICAgaWYgKHBvcyA8IDApCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShya2luZCwgUHlVbmljb2RlX0RBVEEodSksIGluZGV4ICsgcG9zLCB1Mik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbnQgcmtpbmQgPSBza2luZDsKKyAgICAgICAgICAgIGNoYXIgKnJlczsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKKworICAgICAgICAgICAgaWYgKGtpbmQxIDwgcmtpbmQpIHsKKyAgICAgICAgICAgICAgICAvKiB3aWRlbiBzdWJzdHJpbmcgKi8KKyAgICAgICAgICAgICAgICBidWYxID0gX1B5VW5pY29kZV9Bc0tpbmQoc3RyMSwgcmtpbmQpOworICAgICAgICAgICAgICAgIGlmICghYnVmMSkgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICByZWxlYXNlMSA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpID0gYW55bGliX2ZpbmQocmtpbmQsIHNlbGYsIHNidWYsIHNsZW4sIHN0cjEsIGJ1ZjEsIGxlbjEsIDApOwogICAgICAgICAgICAgaWYgKGkgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gbm90aGluZzsKLSAgICAgICAgICAgIHUgPSAoUHlVbmljb2RlT2JqZWN0KikgUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIHNlbGYtPmxlbmd0aCk7CisgICAgICAgICAgICBpZiAocmtpbmQgPiBraW5kMikgeworICAgICAgICAgICAgICAgIC8qIHdpZGVuIHJlcGxhY2VtZW50ICovCisgICAgICAgICAgICAgICAgYnVmMiA9IF9QeVVuaWNvZGVfQXNLaW5kKHN0cjIsIHJraW5kKTsKKyAgICAgICAgICAgICAgICBpZiAoIWJ1ZjIpIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgcmVsZWFzZTIgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAocmtpbmQgPCBraW5kMikgeworICAgICAgICAgICAgICAgIC8qIHdpZGVuIHNlbGYgYW5kIGJ1ZjEgKi8KKyAgICAgICAgICAgICAgICBya2luZCA9IGtpbmQyOworICAgICAgICAgICAgICAgIGlmIChyZWxlYXNlMSkgUHlNZW1fRnJlZShidWYxKTsKKyAgICAgICAgICAgICAgICBzYnVmID0gX1B5VW5pY29kZV9Bc0tpbmQoc2VsZiwgcmtpbmQpOworICAgICAgICAgICAgICAgIGlmICghc2J1ZikgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICBzcmVsZWFzZSA9IDE7CisgICAgICAgICAgICAgICAgYnVmMSA9IF9QeVVuaWNvZGVfQXNLaW5kKHN0cjEsIHJraW5kKTsKKyAgICAgICAgICAgICAgICBpZiAoIWJ1ZjEpIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgcmVsZWFzZTEgPSAxOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdSA9IFB5VW5pY29kZV9OZXcoc2xlbiwgbWF4Y2hhcik7CiAgICAgICAgICAgICBpZiAoIXUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICBQeV9VTklDT0RFX0NPUFkodS0+c3RyLCBzZWxmLT5zdHIsIHNlbGYtPmxlbmd0aCk7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIGFzc2VydChQeVVuaWNvZGVfS0lORCh1KSA9PSBya2luZCk7CisgICAgICAgICAgICByZXMgPSBQeVVuaWNvZGVfREFUQSh1KTsKIAorICAgICAgICAgICAgbWVtY3B5KHJlcywgc2J1ZiwgcmtpbmQgKiBzbGVuKTsKICAgICAgICAgICAgIC8qIGNoYW5nZSBldmVyeXRoaW5nIGluLXBsYWNlLCBzdGFydGluZyB3aXRoIHRoaXMgb25lICovCi0gICAgICAgICAgICBQeV9VTklDT0RFX0NPUFkodS0+c3RyK2ksIHN0cjItPnN0ciwgc3RyMi0+bGVuZ3RoKTsKLSAgICAgICAgICAgIGkgKz0gc3RyMS0+bGVuZ3RoOworICAgICAgICAgICAgbWVtY3B5KHJlcyArIHJraW5kICogaSwKKyAgICAgICAgICAgICAgICAgICBidWYyLAorICAgICAgICAgICAgICAgICAgIHJraW5kICogbGVuMik7CisgICAgICAgICAgICBpICs9IGxlbjE7CiAKICAgICAgICAgICAgIHdoaWxlICggLS1tYXhjb3VudCA+IDApIHsKLSAgICAgICAgICAgICAgICBpID0gc3RyaW5nbGliX2ZpbmQoc2VsZi0+c3RyK2ksIHNlbGYtPmxlbmd0aC1pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIxLT5zdHIsIHN0cjEtPmxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaSk7CisgICAgICAgICAgICAgICAgaSA9IGFueWxpYl9maW5kKHJraW5kLCBzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzYnVmK3JraW5kKmksIHNsZW4taSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyMSwgYnVmMSwgbGVuMSwgaSk7CiAgICAgICAgICAgICAgICAgaWYgKGkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIFB5X1VOSUNPREVfQ09QWSh1LT5zdHIraSwgc3RyMi0+c3RyLCBzdHIyLT5sZW5ndGgpOwotICAgICAgICAgICAgICAgIGkgKz0gc3RyMS0+bGVuZ3RoOworICAgICAgICAgICAgICAgIG1lbWNweShyZXMgKyBya2luZCAqIGksCisgICAgICAgICAgICAgICAgICAgICAgIGJ1ZjIsCisgICAgICAgICAgICAgICAgICAgICAgIHJraW5kICogbGVuMik7CisgICAgICAgICAgICAgICAgaSArPSBsZW4xOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgfSBlbHNlIHsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFB5X3NzaXplX3QgbiwgaSwgaiwgaXJlczsKKyAgICAgICAgUHlfc3NpemVfdCBwcm9kdWN0LCBuZXdfc2l6ZTsKKyAgICAgICAgaW50IHJraW5kID0gc2tpbmQ7CisgICAgICAgIGNoYXIgKnJlczsKIAotICAgICAgICBQeV9zc2l6ZV90IG4sIGksIGo7Ci0gICAgICAgIFB5X3NzaXplX3QgcHJvZHVjdCwgbmV3X3NpemUsIGRlbHRhOwotICAgICAgICBQeV9VTklDT0RFICpwOwotCi0gICAgICAgIC8qIHJlcGxhY2Ugc3RyaW5ncyAqLwotICAgICAgICBuID0gc3RyaW5nbGliX2NvdW50KHNlbGYtPnN0ciwgc2VsZi0+bGVuZ3RoLCBzdHIxLT5zdHIsIHN0cjEtPmxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhjb3VudCk7CisgICAgICAgIGlmIChraW5kMSA8IHJraW5kKSB7CisgICAgICAgICAgICAvKiB3aWRlbiBzdWJzdHJpbmcgKi8KKyAgICAgICAgICAgIGJ1ZjEgPSBfUHlVbmljb2RlX0FzS2luZChzdHIxLCBya2luZCk7CisgICAgICAgICAgICBpZiAoIWJ1ZjEpIGdvdG8gZXJyb3I7CisgICAgICAgICAgICByZWxlYXNlMSA9IDE7CisgICAgICAgIH0KKyAgICAgICAgbiA9IGFueWxpYl9jb3VudChya2luZCwgc2VsZiwgc2J1Ziwgc2xlbiwgc3RyMSwgYnVmMSwgbGVuMSwgbWF4Y291bnQpOwogICAgICAgICBpZiAobiA9PSAwKQogICAgICAgICAgICAgZ290byBub3RoaW5nOwotICAgICAgICAvKiBuZXdfc2l6ZSA9IHNlbGYtPmxlbmd0aCArIG4gKiAoc3RyMi0+bGVuZ3RoIC0gc3RyMS0+bGVuZ3RoKSk7ICovCi0gICAgICAgIGRlbHRhID0gKHN0cjItPmxlbmd0aCAtIHN0cjEtPmxlbmd0aCk7Ci0gICAgICAgIGlmIChkZWx0YSA9PSAwKSB7Ci0gICAgICAgICAgICBuZXdfc2l6ZSA9IHNlbGYtPmxlbmd0aDsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHByb2R1Y3QgPSBuICogKHN0cjItPmxlbmd0aCAtIHN0cjEtPmxlbmd0aCk7Ci0gICAgICAgICAgICBpZiAoKHByb2R1Y3QgLyAoc3RyMi0+bGVuZ3RoIC0gc3RyMS0+bGVuZ3RoKSkgIT0gbikgewotICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVwbGFjZSBzdHJpbmcgaXMgdG9vIGxvbmciKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG5ld19zaXplID0gc2VsZi0+bGVuZ3RoICsgcHJvZHVjdDsKLSAgICAgICAgICAgIGlmIChuZXdfc2l6ZSA8IDApIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlcGxhY2Ugc3RyaW5nIGlzIHRvbyBsb25nIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9CisgICAgICAgIGlmIChraW5kMiA8IHJraW5kKSB7CisgICAgICAgICAgICAvKiB3aWRlbiByZXBsYWNlbWVudCAqLworICAgICAgICAgICAgYnVmMiA9IF9QeVVuaWNvZGVfQXNLaW5kKHN0cjIsIHJraW5kKTsKKyAgICAgICAgICAgIGlmICghYnVmMikgZ290byBlcnJvcjsKKyAgICAgICAgICAgIHJlbGVhc2UyID0gMTsKICAgICAgICAgfQotICAgICAgICB1ID0gX1B5VW5pY29kZV9OZXcobmV3X3NpemUpOworICAgICAgICBlbHNlIGlmIChraW5kMiA+IHJraW5kKSB7CisgICAgICAgICAgICAvKiB3aWRlbiBzZWxmIGFuZCBidWYxICovCisgICAgICAgICAgICBya2luZCA9IGtpbmQyOworICAgICAgICAgICAgc2J1ZiA9IF9QeVVuaWNvZGVfQXNLaW5kKHNlbGYsIHJraW5kKTsKKyAgICAgICAgICAgIGlmICghc2J1ZikgZ290byBlcnJvcjsKKyAgICAgICAgICAgIHNyZWxlYXNlID0gMTsKKyAgICAgICAgICAgIGlmIChyZWxlYXNlMSkgUHlNZW1fRnJlZShidWYxKTsKKyAgICAgICAgICAgIGJ1ZjEgPSBfUHlVbmljb2RlX0FzS2luZChzdHIxLCBya2luZCk7CisgICAgICAgICAgICBpZiAoIWJ1ZjEpIGdvdG8gZXJyb3I7CisgICAgICAgICAgICByZWxlYXNlMSA9IDE7CisgICAgICAgIH0KKyAgICAgICAgLyogbmV3X3NpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKSArIG4gKiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyMikgLQorICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIxKSkpOyAqLworICAgICAgICBwcm9kdWN0ID0gbiAqIChsZW4yLWxlbjEpOworICAgICAgICBpZiAoKHByb2R1Y3QgLyAobGVuMi1sZW4xKSkgIT0gbikgeworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVwbGFjZSBzdHJpbmcgaXMgdG9vIGxvbmciKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIG5ld19zaXplID0gc2xlbiArIHByb2R1Y3Q7CisgICAgICAgIGlmIChuZXdfc2l6ZSA9PSAwKSB7CisgICAgICAgICAgICBQeV9JTkNSRUYodW5pY29kZV9lbXB0eSk7CisgICAgICAgICAgICB1ID0gdW5pY29kZV9lbXB0eTsKKyAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgfQorICAgICAgICBpZiAobmV3X3NpemUgPCAwIHx8IG5ld19zaXplID4gKFBZX1NTSVpFX1RfTUFYID4+IChya2luZC0xKSkpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXBsYWNlIHN0cmluZyBpcyB0b28gbG9uZyIpOworICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgfQorICAgICAgICB1ID0gUHlVbmljb2RlX05ldyhuZXdfc2l6ZSwgbWF4Y2hhcik7CiAgICAgICAgIGlmICghdSkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBpID0gMDsKLSAgICAgICAgcCA9IHUtPnN0cjsKLSAgICAgICAgaWYgKHN0cjEtPmxlbmd0aCA+IDApIHsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIGFzc2VydChQeVVuaWNvZGVfS0lORCh1KSA9PSBya2luZCk7CisgICAgICAgIHJlcyA9IFB5VW5pY29kZV9EQVRBKHUpOworICAgICAgICBpcmVzID0gaSA9IDA7CisgICAgICAgIGlmIChsZW4xID4gMCkgewogICAgICAgICAgICAgd2hpbGUgKG4tLSA+IDApIHsKICAgICAgICAgICAgICAgICAvKiBsb29rIGZvciBuZXh0IG1hdGNoICovCi0gICAgICAgICAgICAgICAgaiA9IHN0cmluZ2xpYl9maW5kKHNlbGYtPnN0citpLCBzZWxmLT5sZW5ndGgtaSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyMS0+c3RyLCBzdHIxLT5sZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkpOworICAgICAgICAgICAgICAgIGogPSBhbnlsaWJfZmluZChya2luZCwgc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2J1ZiArIHJraW5kICogaSwgc2xlbi1pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIxLCBidWYxLCBsZW4xLCBpKTsKICAgICAgICAgICAgICAgICBpZiAoaiA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoaiA+IGkpIHsKICAgICAgICAgICAgICAgICAgICAgLyogY29weSB1bmNoYW5nZWQgcGFydCBbaTpqXSAqLwotICAgICAgICAgICAgICAgICAgICBQeV9VTklDT0RFX0NPUFkocCwgc2VsZi0+c3RyK2ksIGotaSk7Ci0gICAgICAgICAgICAgICAgICAgIHAgKz0gaiAtIGk7CisgICAgICAgICAgICAgICAgICAgIG1lbWNweShyZXMgKyBya2luZCAqIGlyZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzYnVmICsgcmtpbmQgKiBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcmtpbmQgKiAoai1pKSk7CisgICAgICAgICAgICAgICAgICAgIGlyZXMgKz0gaiAtIGk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8qIGNvcHkgc3Vic3RpdHV0aW9uIHN0cmluZyAqLwotICAgICAgICAgICAgICAgIGlmIChzdHIyLT5sZW5ndGggPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5X1VOSUNPREVfQ09QWShwLCBzdHIyLT5zdHIsIHN0cjItPmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIHAgKz0gc3RyMi0+bGVuZ3RoOworICAgICAgICAgICAgICAgIGlmIChsZW4yID4gMCkgeworICAgICAgICAgICAgICAgICAgICBtZW1jcHkocmVzICsgcmtpbmQgKiBpcmVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJraW5kICogbGVuMik7CisgICAgICAgICAgICAgICAgICAgIGlyZXMgKz0gbGVuMjsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaSA9IGogKyBzdHIxLT5sZW5ndGg7CisgICAgICAgICAgICAgICAgaSA9IGogKyBsZW4xOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGkgPCBzZWxmLT5sZW5ndGgpCisgICAgICAgICAgICBpZiAoaSA8IHNsZW4pCiAgICAgICAgICAgICAgICAgLyogY29weSB0YWlsIFtpOl0gKi8KLSAgICAgICAgICAgICAgICBQeV9VTklDT0RFX0NPUFkocCwgc2VsZi0+c3RyK2ksIHNlbGYtPmxlbmd0aC1pKTsKLSAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBtZW1jcHkocmVzICsgcmtpbmQgKiBpcmVzLAorICAgICAgICAgICAgICAgICAgICAgICBzYnVmICsgcmtpbmQgKiBpLAorICAgICAgICAgICAgICAgICAgICAgICBya2luZCAqIChzbGVuLWkpKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8qIGludGVybGVhdmUgKi8KICAgICAgICAgICAgIHdoaWxlIChuID4gMCkgewotICAgICAgICAgICAgICAgIFB5X1VOSUNPREVfQ09QWShwLCBzdHIyLT5zdHIsIHN0cjItPmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgcCArPSBzdHIyLT5sZW5ndGg7CisgICAgICAgICAgICAgICAgbWVtY3B5KHJlcyArIHJraW5kICogaXJlcywKKyAgICAgICAgICAgICAgICAgICAgICAgYnVmMiwKKyAgICAgICAgICAgICAgICAgICAgICAgcmtpbmQgKiBsZW4yKTsKKyAgICAgICAgICAgICAgICBpcmVzICs9IGxlbjI7CiAgICAgICAgICAgICAgICAgaWYgKC0tbiA8PSAwKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAqcCsrID0gc2VsZi0+c3RyW2krK107CisgICAgICAgICAgICAgICAgbWVtY3B5KHJlcyArIHJraW5kICogaXJlcywKKyAgICAgICAgICAgICAgICAgICAgICAgc2J1ZiArIHJraW5kICogaSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmtpbmQpOworICAgICAgICAgICAgICAgIGlyZXMrKzsKKyAgICAgICAgICAgICAgICBpKys7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBQeV9VTklDT0RFX0NPUFkocCwgc2VsZi0+c3RyK2ksIHNlbGYtPmxlbmd0aC1pKTsKKyAgICAgICAgICAgIG1lbWNweShyZXMgKyBya2luZCAqIGlyZXMsCisgICAgICAgICAgICAgICAgICAgc2J1ZiArIHJraW5kICogaSwKKyAgICAgICAgICAgICAgICAgICBya2luZCAqIChzbGVuLWkpKTsKICAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gKFB5T2JqZWN0ICopIHU7CisKKyAgICBpZiAobWF5c2hyaW5rKSB7CisgICAgICAgIHVuaWNvZGVfYWRqdXN0X21heGNoYXIoJnUpOworICAgICAgICBpZiAodSA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisKKyAgZG9uZToKKyAgICBpZiAoc3JlbGVhc2UpCisgICAgICAgIFB5TWVtX0ZSRUUoc2J1Zik7CisgICAgaWYgKHJlbGVhc2UxKQorICAgICAgICBQeU1lbV9GUkVFKGJ1ZjEpOworICAgIGlmIChyZWxlYXNlMikKKyAgICAgICAgUHlNZW1fRlJFRShidWYyKTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHUsIDEpKTsKKyAgICByZXR1cm4gdTsKIAogICBub3RoaW5nOgogICAgIC8qIG5vdGhpbmcgdG8gcmVwbGFjZTsgcmV0dXJuIG9yaWdpbmFsIHN0cmluZyAod2hlbiBwb3NzaWJsZSkgKi8KLSAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3Qoc2VsZikpIHsKLSAgICAgICAgUHlfSU5DUkVGKHNlbGYpOwotICAgICAgICByZXR1cm4gKFB5T2JqZWN0ICopIHNlbGY7Ci0gICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoc2VsZi0+c3RyLCBzZWxmLT5sZW5ndGgpOworICAgIGlmIChzcmVsZWFzZSkKKyAgICAgICAgUHlNZW1fRlJFRShzYnVmKTsKKyAgICBpZiAocmVsZWFzZTEpCisgICAgICAgIFB5TWVtX0ZSRUUoYnVmMSk7CisgICAgaWYgKHJlbGVhc2UyKQorICAgICAgICBQeU1lbV9GUkVFKGJ1ZjIpOworICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdF91bmNoYW5nZWQoc2VsZik7CisKKyAgZXJyb3I6CisgICAgaWYgKHNyZWxlYXNlICYmIHNidWYpCisgICAgICAgIFB5TWVtX0ZSRUUoc2J1Zik7CisgICAgaWYgKHJlbGVhc2UxICYmIGJ1ZjEpCisgICAgICAgIFB5TWVtX0ZSRUUoYnVmMSk7CisgICAgaWYgKHJlbGVhc2UyICYmIGJ1ZjIpCisgICAgICAgIFB5TWVtX0ZSRUUoYnVmMik7CisgICAgcmV0dXJuIE5VTEw7CiB9CiAKIC8qIC0tLSBVbmljb2RlIE9iamVjdCBNZXRob2RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwpAQCAtNzEwMyw5ICsxMDMxNywxMSBAQAogY2hhcmFjdGVycywgYWxsIHJlbWFpbmluZyBjYXNlZCBjaGFyYWN0ZXJzIGhhdmUgbG93ZXIgY2FzZS4iKTsKIAogc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV90aXRsZShQeVVuaWNvZGVPYmplY3QgKnNlbGYpCit1bmljb2RlX3RpdGxlKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHJldHVybiBmaXh1cChzZWxmLCBmaXh0aXRsZSk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIGNhc2Vfb3BlcmF0aW9uKHNlbGYsIGRvX3RpdGxlKTsKIH0KIAogUHlEb2NfU1RSVkFSKGNhcGl0YWxpemVfX2RvY19fLApAQCAtNzExNSw1NyArMTAzMzEsMzggQEAKIGhhdmUgdXBwZXIgY2FzZSBhbmQgdGhlIHJlc3QgbG93ZXIgY2FzZS4iKTsKIAogc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV9jYXBpdGFsaXplKFB5VW5pY29kZU9iamVjdCAqc2VsZikKK3VuaWNvZGVfY2FwaXRhbGl6ZShQeU9iamVjdCAqc2VsZikKIHsKLSAgICByZXR1cm4gZml4dXAoc2VsZiwgZml4Y2FwaXRhbGl6ZSk7Ci19Ci0KLSNpZiAwCi1QeURvY19TVFJWQVIoY2Fwd29yZHNfX2RvY19fLAotICAgICAgICAgICAgICJTLmNhcHdvcmRzKCkgLT4gc3RyXG5cCi1cblwKLUFwcGx5IC5jYXBpdGFsaXplKCkgdG8gYWxsIHdvcmRzIGluIFMgYW5kIHJldHVybiB0aGUgcmVzdWx0IHdpdGhcblwKLW5vcm1hbGl6ZWQgd2hpdGVzcGFjZSAoYWxsIHdoaXRlc3BhY2Ugc3RyaW5ncyBhcmUgcmVwbGFjZWQgYnkgJyAnKS4iKTsKLQotc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV9jYXB3b3JkcyhQeVVuaWNvZGVPYmplY3QgKnNlbGYpCi17Ci0gICAgUHlPYmplY3QgKmxpc3Q7Ci0gICAgUHlPYmplY3QgKml0ZW07Ci0gICAgUHlfc3NpemVfdCBpOwotCi0gICAgLyogU3BsaXQgaW50byB3b3JkcyAqLwotICAgIGxpc3QgPSBzcGxpdChzZWxmLCBOVUxMLCAtMSk7Ci0gICAgaWYgKCFsaXN0KQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCiAgICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgLyogQ2FwaXRhbGl6ZSBlYWNoIHdvcmQgKi8KLSAgICBmb3IgKGkgPSAwOyBpIDwgUHlMaXN0X0dFVF9TSVpFKGxpc3QpOyBpKyspIHsKLSAgICAgICAgaXRlbSA9IGZpeHVwKChQeVVuaWNvZGVPYmplY3QgKilQeUxpc3RfR0VUX0lURU0obGlzdCwgaSksCi0gICAgICAgICAgICAgICAgICAgICBmaXhjYXBpdGFsaXplKTsKLSAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkKLSAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgUHlfREVDUkVGKFB5TGlzdF9HRVRfSVRFTShsaXN0LCBpKSk7Ci0gICAgICAgIFB5TGlzdF9TRVRfSVRFTShsaXN0LCBpLCBpdGVtKTsKLSAgICB9Ci0KLSAgICAvKiBKb2luIHRoZSB3b3JkcyB0byBmb3JtIGEgbmV3IHN0cmluZyAqLwotICAgIGl0ZW0gPSBQeVVuaWNvZGVfSm9pbihOVUxMLCBsaXN0KTsKLQotICBvbkVycm9yOgotICAgIFB5X0RFQ1JFRihsaXN0KTsKLSAgICByZXR1cm4gKFB5T2JqZWN0ICopaXRlbTsKKyAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZikgPT0gMCkKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0X3VuY2hhbmdlZChzZWxmKTsKKyAgICByZXR1cm4gY2FzZV9vcGVyYXRpb24oc2VsZiwgZG9fY2FwaXRhbGl6ZSk7CiB9Ci0jZW5kaWYKKworUHlEb2NfU1RSVkFSKGNhc2Vmb2xkX19kb2NfXywKKyAgICAgICAgICAgICAiUy5jYXNlZm9sZCgpIC0+IHN0clxuXAorXG5cCitSZXR1cm4gYSB2ZXJzaW9uIG9mIFMgc3VpdGFibGUgZm9yIGNhc2VsZXNzIGNvbXBhcmlzb25zLiIpOworCitzdGF0aWMgUHlPYmplY3QgKgordW5pY29kZV9jYXNlZm9sZChQeU9iamVjdCAqc2VsZikKK3sKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoUHlVbmljb2RlX0lTX0FTQ0lJKHNlbGYpKQorICAgICAgICByZXR1cm4gYXNjaWlfdXBwZXJfb3JfbG93ZXIoc2VsZiwgMSk7CisgICAgcmV0dXJuIGNhc2Vfb3BlcmF0aW9uKHNlbGYsIGRvX2Nhc2Vmb2xkKTsKK30KKwogCiAvKiBBcmd1bWVudCBjb252ZXJ0ZXIuICBDb2VyY2VzIHRvIGEgc2luZ2xlIHVuaWNvZGUgY2hhcmFjdGVyICovCiAKIHN0YXRpYyBpbnQKIGNvbnZlcnRfdWMoUHlPYmplY3QgKm9iaiwgdm9pZCAqYWRkcikKIHsKLSAgICBQeV9VTklDT0RFICpmaWxsY2hhcmxvYyA9IChQeV9VTklDT0RFICopYWRkcjsKKyAgICBQeV9VQ1M0ICpmaWxsY2hhcmxvYyA9IChQeV9VQ1M0ICopYWRkcjsKICAgICBQeU9iamVjdCAqdW5pb2JqOwotICAgIFB5X1VOSUNPREUgKnVuaXN0cjsKIAogICAgIHVuaW9iaiA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KG9iaik7CiAgICAgaWYgKHVuaW9iaiA9PSBOVUxMKSB7CkBAIC03MTczLDE0ICsxMDM3MCwxMyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWxsIGNoYXJhY3RlciBjYW5ub3QgYmUgY29udmVydGVkIHRvIFVuaWNvZGUiKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQotICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUodW5pb2JqKSAhPSAxKSB7CisgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaW9iaikgIT0gMSkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBmaWxsIGNoYXJhY3RlciBtdXN0IGJlIGV4YWN0bHkgb25lIGNoYXJhY3RlciBsb25nIik7CiAgICAgICAgIFB5X0RFQ1JFRih1bmlvYmopOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgdW5pc3RyID0gUHlVbmljb2RlX0FTX1VOSUNPREUodW5pb2JqKTsKLSAgICAqZmlsbGNoYXJsb2MgPSB1bmlzdHJbMF07CisgICAgKmZpbGxjaGFybG9jID0gUHlVbmljb2RlX1JFQURfQ0hBUih1bmlvYmosIDApOwogICAgIFB5X0RFQ1JFRih1bmlvYmopOwogICAgIHJldHVybiAxOwogfQpAQCAtNzE5MiwxMTIgKzEwMzg4LDY0IEBACiBkb25lIHVzaW5nIHRoZSBzcGVjaWZpZWQgZmlsbCBjaGFyYWN0ZXIgKGRlZmF1bHQgaXMgYSBzcGFjZSkiKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXVuaWNvZGVfY2VudGVyKFB5VW5pY29kZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit1bmljb2RlX2NlbnRlcihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlfc3NpemVfdCBtYXJnLCBsZWZ0OwogICAgIFB5X3NzaXplX3Qgd2lkdGg7Ci0gICAgUHlfVU5JQ09ERSBmaWxsY2hhciA9ICcgJzsKKyAgICBQeV9VQ1M0IGZpbGxjaGFyID0gJyAnOwogCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJufE8mOmNlbnRlciIsICZ3aWR0aCwgY29udmVydF91YywgJmZpbGxjaGFyKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAoc2VsZi0+bGVuZ3RoID49IHdpZHRoICYmIFB5VW5pY29kZV9DaGVja0V4YWN0KHNlbGYpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihzZWxmKTsKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCopIHNlbGY7Ci0gICAgfQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgbWFyZyA9IHdpZHRoIC0gc2VsZi0+bGVuZ3RoOworICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKSA+PSB3aWR0aCkKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0X3VuY2hhbmdlZChzZWxmKTsKKworICAgIG1hcmcgPSB3aWR0aCAtIFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpOwogICAgIGxlZnQgPSBtYXJnIC8gMiArIChtYXJnICYgd2lkdGggJiAxKTsKIAotICAgIHJldHVybiAoUHlPYmplY3QqKSBwYWQoc2VsZiwgbGVmdCwgbWFyZyAtIGxlZnQsIGZpbGxjaGFyKTsKKyAgICByZXR1cm4gcGFkKHNlbGYsIGxlZnQsIG1hcmcgLSBsZWZ0LCBmaWxsY2hhcik7CiB9CiAKLSNpZiAwCi0KLS8qIFRoaXMgY29kZSBzaG91bGQgZ28gaW50byBzb21lIGZ1dHVyZSBVbmljb2RlIGNvbGxhdGlvbiBzdXBwb3J0Ci0gICBtb2R1bGUuIFRoZSBiYXNpYyBjb21wYXJpc29uIHNob3VsZCBjb21wYXJlIG9yZGluYWxzIG9uIGEgbmFpdmUKLSAgIGJhc2lzICh0aGlzIGlzIHdoYXQgSmF2YSBkb2VzIGFuZCB0aHVzIEp5dGhvbiB0b28pLiAqLwotCi0vKiBzcGVlZHkgVVRGLTE2IGNvZGUgcG9pbnQgb3JkZXIgY29tcGFyaXNvbiAqLwotLyogZ2xlYW5lZCBmcm9tOiAqLwotLyogaHR0cDovL3d3dy00LmlibS5jb20vc29mdHdhcmUvZGV2ZWxvcGVyL2xpYnJhcnkvdXRmMTYuaHRtbD9kd3pvbmU9dW5pY29kZSAqLwotCi1zdGF0aWMgc2hvcnQgdXRmMTZGaXh1cFszMl0gPQotewotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLAotICAgIDAsIDAsIDAsIDB4MjAwMCwgLTB4ODAwLCAtMHg4MDAsIC0weDgwMCwgLTB4ODAwCi19OworLyogVGhpcyBmdW5jdGlvbiBhc3N1bWVzIHRoYXQgc3RyMSBhbmQgc3RyMiBhcmUgcmVhZGllZCBieSB0aGUgY2FsbGVyLiAqLwogCiBzdGF0aWMgaW50Ci11bmljb2RlX2NvbXBhcmUoUHlVbmljb2RlT2JqZWN0ICpzdHIxLCBQeVVuaWNvZGVPYmplY3QgKnN0cjIpCit1bmljb2RlX2NvbXBhcmUoUHlPYmplY3QgKnN0cjEsIFB5T2JqZWN0ICpzdHIyKQogewotICAgIFB5X3NzaXplX3QgbGVuMSwgbGVuMjsKKyAgICBpbnQga2luZDEsIGtpbmQyOworICAgIHZvaWQgKmRhdGExLCAqZGF0YTI7CisgICAgUHlfc3NpemVfdCBsZW4xLCBsZW4yLCBpOwogCi0gICAgUHlfVU5JQ09ERSAqczEgPSBzdHIxLT5zdHI7Ci0gICAgUHlfVU5JQ09ERSAqczIgPSBzdHIyLT5zdHI7CisgICAga2luZDEgPSBQeVVuaWNvZGVfS0lORChzdHIxKTsKKyAgICBraW5kMiA9IFB5VW5pY29kZV9LSU5EKHN0cjIpOworICAgIGRhdGExID0gUHlVbmljb2RlX0RBVEEoc3RyMSk7CisgICAgZGF0YTIgPSBQeVVuaWNvZGVfREFUQShzdHIyKTsKKyAgICBsZW4xID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyMSk7CisgICAgbGVuMiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cjIpOwogCi0gICAgbGVuMSA9IHN0cjEtPmxlbmd0aDsKLSAgICBsZW4yID0gc3RyMi0+bGVuZ3RoOwotCi0gICAgd2hpbGUgKGxlbjEgPiAwICYmIGxlbjIgPiAwKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgYzEsIGMyOwotCi0gICAgICAgIGMxID0gKnMxKys7Ci0gICAgICAgIGMyID0gKnMyKys7Ci0KLSAgICAgICAgaWYgKGMxID4gKDE8PDExKSAqIDI2KQotICAgICAgICAgICAgYzEgKz0gdXRmMTZGaXh1cFtjMT4+MTFdOwotICAgICAgICBpZiAoYzIgPiAoMTw8MTEpICogMjYpCi0gICAgICAgICAgICBjMiArPSB1dGYxNkZpeHVwW2MyPj4xMV07Ci0gICAgICAgIC8qIG5vdyBjMSBhbmQgYzIgYXJlIGluIFVURi0zMi1jb21wYXRpYmxlIG9yZGVyICovCisgICAgZm9yIChpID0gMDsgaSA8IGxlbjEgJiYgaSA8IGxlbjI7ICsraSkgeworICAgICAgICBQeV9VQ1M0IGMxLCBjMjsKKyAgICAgICAgYzEgPSBQeVVuaWNvZGVfUkVBRChraW5kMSwgZGF0YTEsIGkpOworICAgICAgICBjMiA9IFB5VW5pY29kZV9SRUFEKGtpbmQyLCBkYXRhMiwgaSk7CiAKICAgICAgICAgaWYgKGMxICE9IGMyKQogICAgICAgICAgICAgcmV0dXJuIChjMSA8IGMyKSA/IC0xIDogMTsKLQotICAgICAgICBsZW4xLS07IGxlbjItLTsKICAgICB9CiAKICAgICByZXR1cm4gKGxlbjEgPCBsZW4yKSA/IC0xIDogKGxlbjEgIT0gbGVuMik7CiB9CiAKLSNlbHNlCi0KLXN0YXRpYyBpbnQKLXVuaWNvZGVfY29tcGFyZShQeVVuaWNvZGVPYmplY3QgKnN0cjEsIFB5VW5pY29kZU9iamVjdCAqc3RyMikKK2ludAorUHlVbmljb2RlX0NvbXBhcmUoUHlPYmplY3QgKmxlZnQsIFB5T2JqZWN0ICpyaWdodCkKIHsKLSAgICByZWdpc3RlciBQeV9zc2l6ZV90IGxlbjEsIGxlbjI7Ci0KLSAgICBQeV9VTklDT0RFICpzMSA9IHN0cjEtPnN0cjsKLSAgICBQeV9VTklDT0RFICpzMiA9IHN0cjItPnN0cjsKLQotICAgIGxlbjEgPSBzdHIxLT5sZW5ndGg7Ci0gICAgbGVuMiA9IHN0cjItPmxlbmd0aDsKLQotICAgIHdoaWxlIChsZW4xID4gMCAmJiBsZW4yID4gMCkgewotICAgICAgICBQeV9VTklDT0RFIGMxLCBjMjsKLQotICAgICAgICBjMSA9ICpzMSsrOwotICAgICAgICBjMiA9ICpzMisrOwotCi0gICAgICAgIGlmIChjMSAhPSBjMikKLSAgICAgICAgICAgIHJldHVybiAoYzEgPCBjMikgPyAtMSA6IDE7Ci0KLSAgICAgICAgbGVuMS0tOyBsZW4yLS07CisgICAgaWYgKFB5VW5pY29kZV9DaGVjayhsZWZ0KSAmJiBQeVVuaWNvZGVfQ2hlY2socmlnaHQpKSB7CisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkobGVmdCkgPT0gLTEgfHwKKyAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEWShyaWdodCkgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHJldHVybiB1bmljb2RlX2NvbXBhcmUobGVmdCwgcmlnaHQpOwogICAgIH0KLQotICAgIHJldHVybiAobGVuMSA8IGxlbjIpID8gLTEgOiAobGVuMSAhPSBsZW4yKTsKLX0KLQotI2VuZGlmCi0KLWludCBQeVVuaWNvZGVfQ29tcGFyZShQeU9iamVjdCAqbGVmdCwKLSAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqcmlnaHQpCi17Ci0gICAgaWYgKFB5VW5pY29kZV9DaGVjayhsZWZ0KSAmJiBQeVVuaWNvZGVfQ2hlY2socmlnaHQpKQotICAgICAgICByZXR1cm4gdW5pY29kZV9jb21wYXJlKChQeVVuaWNvZGVPYmplY3QgKilsZWZ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQeVVuaWNvZGVPYmplY3QgKilyaWdodCk7CiAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAgIkNhbid0IGNvbXBhcmUgJS4xMDBzIGFuZCAlLjEwMHMiLAogICAgICAgICAgICAgICAgICBsZWZ0LT5vYl90eXBlLT50cF9uYW1lLApAQCAtNzMwOCwxNyArMTA0NTYsMjMgQEAKIGludAogUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcoUHlPYmplY3QqIHVuaSwgY29uc3QgY2hhciogc3RyKQogewotICAgIGludCBpOwotICAgIFB5X1VOSUNPREUgKmlkOwotICAgIGFzc2VydChQeVVuaWNvZGVfQ2hlY2sodW5pKSk7Ci0gICAgaWQgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh1bmkpOworICAgIFB5X3NzaXplX3QgaTsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOworICAgIFB5X1VDUzQgY2hyOworCisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ0hFQ0sodW5pKSk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmkpID09IC0xKQorICAgICAgICByZXR1cm4gLTE7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHVuaSk7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHVuaSk7CiAgICAgLyogQ29tcGFyZSBVbmljb2RlIHN0cmluZyBhbmQgc291cmNlIGNoYXJhY3RlciBzZXQgc3RyaW5nICovCi0gICAgZm9yIChpID0gMDsgaWRbaV0gJiYgc3RyW2ldOyBpKyspCi0gICAgICAgIGlmIChpZFtpXSAhPSBzdHJbaV0pCi0gICAgICAgICAgICByZXR1cm4gKChpbnQpaWRbaV0gPCAoaW50KXN0cltpXSkgPyAtMSA6IDE7CisgICAgZm9yIChpID0gMDsgKGNociA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpKSAmJiBzdHJbaV07IGkrKykKKyAgICAgICAgaWYgKGNociAhPSBzdHJbaV0pCisgICAgICAgICAgICByZXR1cm4gKGNociA8ICh1bnNpZ25lZCBjaGFyKShzdHJbaV0pKSA/IC0xIDogMTsKICAgICAvKiBUaGlzIGNoZWNrIGtlZXBzIFB5dGhvbiBzdHJpbmdzIHRoYXQgZW5kIGluICdcMCcgZnJvbSBjb21wYXJpbmcgZXF1YWwKICAgICAgdG8gQyBzdHJpbmdzIGlkZW50aWNhbCB1cCB0byB0aGF0IHBvaW50LiAqLwotICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUodW5pKSAhPSBpIHx8IGlkW2ldKQorICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmkpICE9IGkgfHwgY2hyKQogICAgICAgICByZXR1cm4gMTsgLyogdW5pIGlzIGxvbmdlciAqLwogICAgIGlmIChzdHJbaV0pCiAgICAgICAgIHJldHVybiAtMTsgLyogc3RyIGlzIGxvbmdlciAqLwpAQCAtNzMyOSwxNiArMTA0ODMsMTggQEAKICNkZWZpbmUgVEVTVF9DT05EKGNvbmQpICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAoKGNvbmQpID8gUHlfVHJ1ZSA6IFB5X0ZhbHNlKQogCi1QeU9iamVjdCAqUHlVbmljb2RlX1JpY2hDb21wYXJlKFB5T2JqZWN0ICpsZWZ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqcmlnaHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvcCkKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9SaWNoQ29tcGFyZShQeU9iamVjdCAqbGVmdCwgUHlPYmplY3QgKnJpZ2h0LCBpbnQgb3ApCiB7CiAgICAgaW50IHJlc3VsdDsKIAogICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sobGVmdCkgJiYgUHlVbmljb2RlX0NoZWNrKHJpZ2h0KSkgewogICAgICAgICBQeU9iamVjdCAqdjsKLSAgICAgICAgaWYgKCgoUHlVbmljb2RlT2JqZWN0ICopIGxlZnQpLT5sZW5ndGggIT0KLSAgICAgICAgICAgICgoUHlVbmljb2RlT2JqZWN0ICopIHJpZ2h0KS0+bGVuZ3RoKSB7CisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkobGVmdCkgPT0gLTEgfHwKKyAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEWShyaWdodCkgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKGxlZnQpICE9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJpZ2h0KSB8fAorICAgICAgICAgICAgUHlVbmljb2RlX0tJTkQobGVmdCkgIT0gUHlVbmljb2RlX0tJTkQocmlnaHQpKSB7CiAgICAgICAgICAgICBpZiAob3AgPT0gUHlfRVEpIHsKICAgICAgICAgICAgICAgICBQeV9JTkNSRUYoUHlfRmFsc2UpOwogICAgICAgICAgICAgICAgIHJldHVybiBQeV9GYWxzZTsKQEAgLTczNTEsOCArMTA1MDcsNyBAQAogICAgICAgICBpZiAobGVmdCA9PSByaWdodCkKICAgICAgICAgICAgIHJlc3VsdCA9IDA7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJlc3VsdCA9IHVuaWNvZGVfY29tcGFyZSgoUHlVbmljb2RlT2JqZWN0ICopbGVmdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlVbmljb2RlT2JqZWN0ICopcmlnaHQpOworICAgICAgICAgICAgcmVzdWx0ID0gdW5pY29kZV9jb21wYXJlKGxlZnQsIHJpZ2h0KTsKIAogICAgICAgICAvKiBDb252ZXJ0IHRoZSByZXR1cm4gdmFsdWUgdG8gYSBCb29sZWFuICovCiAgICAgICAgIHN3aXRjaCAob3ApIHsKQEAgLTczODIsMTQgKzEwNTM3LDE2IEBACiAgICAgICAgIHJldHVybiB2OwogICAgIH0KIAotICAgIFB5X0lOQ1JFRihQeV9Ob3RJbXBsZW1lbnRlZCk7Ci0gICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOworICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKIH0KIAotaW50IFB5VW5pY29kZV9Db250YWlucyhQeU9iamVjdCAqY29udGFpbmVyLAotICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqZWxlbWVudCkKK2ludAorUHlVbmljb2RlX0NvbnRhaW5zKFB5T2JqZWN0ICpjb250YWluZXIsIFB5T2JqZWN0ICplbGVtZW50KQogewogICAgIFB5T2JqZWN0ICpzdHIsICpzdWI7CisgICAgaW50IGtpbmQxLCBraW5kMiwga2luZDsKKyAgICB2b2lkICpidWYxLCAqYnVmMjsKKyAgICBQeV9zc2l6ZV90IGxlbjEsIGxlbjI7CiAgICAgaW50IHJlc3VsdDsKIAogICAgIC8qIENvZXJjZSB0aGUgdHdvIGFyZ3VtZW50cyAqLwpAQCAtNzQwNiw1MCArMTA1NjMsMTA2IEBACiAgICAgICAgIFB5X0RFQ1JFRihzdWIpOwogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3ViKSA9PSAtMSB8fCBQeVVuaWNvZGVfUkVBRFkoc3RyKSA9PSAtMSkgeworICAgICAgICBQeV9ERUNSRUYoc3ViKTsKKyAgICAgICAgUHlfREVDUkVGKHN0cik7CisgICAgfQogCi0gICAgcmVzdWx0ID0gc3RyaW5nbGliX2NvbnRhaW5zX29iaihzdHIsIHN1Yik7CisgICAga2luZDEgPSBQeVVuaWNvZGVfS0lORChzdHIpOworICAgIGtpbmQyID0gUHlVbmljb2RlX0tJTkQoc3ViKTsKKyAgICBraW5kID0ga2luZDE7CisgICAgYnVmMSA9IFB5VW5pY29kZV9EQVRBKHN0cik7CisgICAgYnVmMiA9IFB5VW5pY29kZV9EQVRBKHN1Yik7CisgICAgaWYgKGtpbmQyICE9IGtpbmQpIHsKKyAgICAgICAgaWYgKGtpbmQyID4ga2luZCkgeworICAgICAgICAgICAgUHlfREVDUkVGKHN1Yik7CisgICAgICAgICAgICBQeV9ERUNSRUYoc3RyKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGJ1ZjIgPSBfUHlVbmljb2RlX0FzS2luZChzdWIsIGtpbmQpOworICAgIH0KKyAgICBpZiAoIWJ1ZjIpIHsKKyAgICAgICAgUHlfREVDUkVGKHN1Yik7CisgICAgICAgIFB5X0RFQ1JFRihzdHIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGxlbjEgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpOworICAgIGxlbjIgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdWIpOworCisgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDoKKyAgICAgICAgcmVzdWx0ID0gdWNzMWxpYl9maW5kKGJ1ZjEsIGxlbjEsIGJ1ZjIsIGxlbjIsIDApICE9IC0xOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICByZXN1bHQgPSB1Y3MybGliX2ZpbmQoYnVmMSwgbGVuMSwgYnVmMiwgbGVuMiwgMCkgIT0gLTE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisgICAgICAgIHJlc3VsdCA9IHVjczRsaWJfZmluZChidWYxLCBsZW4xLCBidWYyLCBsZW4yLCAwKSAhPSAtMTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmVzdWx0ID0gLTE7CisgICAgICAgIGFzc2VydCgwKTsKKyAgICB9CiAKICAgICBQeV9ERUNSRUYoc3RyKTsKICAgICBQeV9ERUNSRUYoc3ViKTsKIAorICAgIGlmIChraW5kMiAhPSBraW5kKQorICAgICAgICBQeU1lbV9GcmVlKGJ1ZjIpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogLyogQ29uY2F0IHRvIHN0cmluZyBvciBVbmljb2RlIG9iamVjdCBnaXZpbmcgYSBuZXcgVW5pY29kZSBvYmplY3QuICovCiAKLVB5T2JqZWN0ICpQeVVuaWNvZGVfQ29uY2F0KFB5T2JqZWN0ICpsZWZ0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnJpZ2h0KQorUHlPYmplY3QgKgorUHlVbmljb2RlX0NvbmNhdChQeU9iamVjdCAqbGVmdCwgUHlPYmplY3QgKnJpZ2h0KQogewotICAgIFB5VW5pY29kZU9iamVjdCAqdSA9IE5VTEwsICp2ID0gTlVMTCwgKnc7CisgICAgUHlPYmplY3QgKnUgPSBOVUxMLCAqdiA9IE5VTEwsICp3OworICAgIFB5X1VDUzQgbWF4Y2hhciwgbWF4Y2hhcjI7CisgICAgUHlfc3NpemVfdCB1X2xlbiwgdl9sZW4sIG5ld19sZW47CiAKICAgICAvKiBDb2VyY2UgdGhlIHR3byBhcmd1bWVudHMgKi8KLSAgICB1ID0gKFB5VW5pY29kZU9iamVjdCAqKVB5VW5pY29kZV9Gcm9tT2JqZWN0KGxlZnQpOworICAgIHUgPSBQeVVuaWNvZGVfRnJvbU9iamVjdChsZWZ0KTsKICAgICBpZiAodSA9PSBOVUxMKQogICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgdiA9IChQeVVuaWNvZGVPYmplY3QgKilQeVVuaWNvZGVfRnJvbU9iamVjdChyaWdodCk7CisgICAgdiA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHJpZ2h0KTsKICAgICBpZiAodiA9PSBOVUxMKQogICAgICAgICBnb3RvIG9uRXJyb3I7CiAKICAgICAvKiBTaG9ydGN1dHMgKi8KICAgICBpZiAodiA9PSB1bmljb2RlX2VtcHR5KSB7CiAgICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXU7CisgICAgICAgIHJldHVybiB1OwogICAgIH0KICAgICBpZiAodSA9PSB1bmljb2RlX2VtcHR5KSB7CiAgICAgICAgIFB5X0RFQ1JFRih1KTsKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKXY7CisgICAgICAgIHJldHVybiB2OwogICAgIH0KIAorICAgIHVfbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodSk7CisgICAgdl9sZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh2KTsKKyAgICBpZiAodV9sZW4gPiBQWV9TU0laRV9UX01BWCAtIHZfbGVuKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgInN0cmluZ3MgYXJlIHRvbyBsYXJnZSB0byBjb25jYXQiKTsKKyAgICAgICAgZ290byBvbkVycm9yOworICAgIH0KKyAgICBuZXdfbGVuID0gdV9sZW4gKyB2X2xlbjsKKworICAgIG1heGNoYXIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUodSk7CisgICAgbWF4Y2hhcjIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUodik7CisgICAgbWF4Y2hhciA9IE1BWF9NQVhDSEFSKG1heGNoYXIsIG1heGNoYXIyKTsKKwogICAgIC8qIENvbmNhdCB0aGUgdHdvIFVuaWNvZGUgc3RyaW5ncyAqLwotICAgIHcgPSBfUHlVbmljb2RlX05ldyh1LT5sZW5ndGggKyB2LT5sZW5ndGgpOworICAgIHcgPSBQeVVuaWNvZGVfTmV3KG5ld19sZW4sIG1heGNoYXIpOwogICAgIGlmICh3ID09IE5VTEwpCiAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICBQeV9VTklDT0RFX0NPUFkody0+c3RyLCB1LT5zdHIsIHUtPmxlbmd0aCk7Ci0gICAgUHlfVU5JQ09ERV9DT1BZKHctPnN0ciArIHUtPmxlbmd0aCwgdi0+c3RyLCB2LT5sZW5ndGgpOwotCisgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnModywgMCwgdSwgMCwgdV9sZW4pOworICAgIF9QeVVuaWNvZGVfRmFzdENvcHlDaGFyYWN0ZXJzKHcsIHVfbGVuLCB2LCAwLCB2X2xlbik7CiAgICAgUHlfREVDUkVGKHUpOwogICAgIFB5X0RFQ1JFRih2KTsKLSAgICByZXR1cm4gKFB5T2JqZWN0ICopdzsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHcsIDEpKTsKKyAgICByZXR1cm4gdzsKIAogICBvbkVycm9yOgogICAgIFB5X1hERUNSRUYodSk7CkBAIC03NDU4LDE5ICsxMDY3MSw4OSBAQAogfQogCiB2b2lkCi1QeVVuaWNvZGVfQXBwZW5kKFB5T2JqZWN0ICoqcGxlZnQsIFB5T2JqZWN0ICpyaWdodCkKK1B5VW5pY29kZV9BcHBlbmQoUHlPYmplY3QgKipwX2xlZnQsIFB5T2JqZWN0ICpyaWdodCkKIHsKLSAgICBQeU9iamVjdCAqbmV3OwotICAgIGlmICgqcGxlZnQgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChyaWdodCA9PSBOVUxMIHx8ICFQeVVuaWNvZGVfQ2hlY2soKnBsZWZ0KSkgewotICAgICAgICBQeV9ERUNSRUYoKnBsZWZ0KTsKLSAgICAgICAgKnBsZWZ0ID0gTlVMTDsKKyAgICBQeU9iamVjdCAqbGVmdCwgKnJlczsKKyAgICBQeV9VQ1M0IG1heGNoYXIsIG1heGNoYXIyOworICAgIFB5X3NzaXplX3QgbGVmdF9sZW4sIHJpZ2h0X2xlbiwgbmV3X2xlbjsKKworICAgIGlmIChwX2xlZnQgPT0gTlVMTCkgeworICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBuZXcgPSBQeVVuaWNvZGVfQ29uY2F0KCpwbGVmdCwgcmlnaHQpOwotICAgIFB5X0RFQ1JFRigqcGxlZnQpOwotICAgICpwbGVmdCA9IG5ldzsKKyAgICBsZWZ0ID0gKnBfbGVmdDsKKyAgICBpZiAocmlnaHQgPT0gTlVMTCB8fCAhUHlVbmljb2RlX0NoZWNrKGxlZnQpKSB7CisgICAgICAgIGlmICghUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkobGVmdCkgPT0gLTEpCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShyaWdodCkgPT0gLTEpCisgICAgICAgIGdvdG8gZXJyb3I7CisKKyAgICAvKiBTaG9ydGN1dHMgKi8KKyAgICBpZiAobGVmdCA9PSB1bmljb2RlX2VtcHR5KSB7CisgICAgICAgIFB5X0RFQ1JFRihsZWZ0KTsKKyAgICAgICAgUHlfSU5DUkVGKHJpZ2h0KTsKKyAgICAgICAgKnBfbGVmdCA9IHJpZ2h0OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChyaWdodCA9PSB1bmljb2RlX2VtcHR5KQorICAgICAgICByZXR1cm47CisKKyAgICBsZWZ0X2xlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGxlZnQpOworICAgIHJpZ2h0X2xlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJpZ2h0KTsKKyAgICBpZiAobGVmdF9sZW4gPiBQWV9TU0laRV9UX01BWCAtIHJpZ2h0X2xlbikgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJzdHJpbmdzIGFyZSB0b28gbGFyZ2UgdG8gY29uY2F0Iik7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorICAgIG5ld19sZW4gPSBsZWZ0X2xlbiArIHJpZ2h0X2xlbjsKKworICAgIGlmICh1bmljb2RlX21vZGlmaWFibGUobGVmdCkKKyAgICAgICAgJiYgUHlVbmljb2RlX0NoZWNrRXhhY3QocmlnaHQpCisgICAgICAgICYmIFB5VW5pY29kZV9LSU5EKHJpZ2h0KSA8PSBQeVVuaWNvZGVfS0lORChsZWZ0KQorICAgICAgICAvKiBEb24ndCByZXNpemUgZm9yIGFzY2lpICs9IGxhdGluMS4gQ29udmVydCBhc2NpaSB0byBsYXRpbjEgcmVxdWlyZXMKKyAgICAgICAgICAgdG8gY2hhbmdlIHRoZSBzdHJ1Y3R1cmUgc2l6ZSwgYnV0IGNoYXJhY3RlcnMgYXJlIHN0b3JlZCBqdXN0IGFmdGVyCisgICAgICAgICAgIHRoZSBzdHJ1Y3R1cmUsIGFuZCBzbyBpdCByZXF1aXJlcyB0byBtb3ZlIGFsbCBjaGFyYWN0ZXJzIHdoaWNoIGlzCisgICAgICAgICAgIG5vdCBzbyBkaWZmZXJlbnQgdGhhbiBkdXBsaWNhdGluZyB0aGUgc3RyaW5nLiAqLworICAgICAgICAmJiAhKFB5VW5pY29kZV9JU19BU0NJSShsZWZ0KSAmJiAhUHlVbmljb2RlX0lTX0FTQ0lJKHJpZ2h0KSkpCisgICAgeworICAgICAgICAvKiBhcHBlbmQgaW5wbGFjZSAqLworICAgICAgICBpZiAodW5pY29kZV9yZXNpemUocF9sZWZ0LCBuZXdfbGVuKSAhPSAwKSB7CisgICAgICAgICAgICAvKiBYWFggaWYgX1B5VW5pY29kZV9SZXNpemUoKSBmYWlscywgJ2xlZnQnIGhhcyBiZWVuCisgICAgICAgICAgICAgKiBkZWFsbG9jYXRlZCBzbyBpdCBjYW5ub3QgYmUgcHV0IGJhY2sgaW50bworICAgICAgICAgICAgICogJ3ZhcmlhYmxlJy4gIFRoZSBNZW1vcnlFcnJvciBpcyByYWlzZWQgd2hlbiB0aGVyZQorICAgICAgICAgICAgICogaXMgbm8gdmFsdWUgaW4gJ3ZhcmlhYmxlJywgd2hpY2ggbWlnaHQgKHZlcnkKKyAgICAgICAgICAgICAqIHJlbW90ZWx5KSBiZSBhIGNhdXNlIG9mIGluY29tcGF0aWJpbGl0aWVzLgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIC8qIGNvcHkgJ3JpZ2h0JyBpbnRvIHRoZSBuZXdseSBhbGxvY2F0ZWQgYXJlYSBvZiAnbGVmdCcgKi8KKyAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMoKnBfbGVmdCwgbGVmdF9sZW4sIHJpZ2h0LCAwLCByaWdodF9sZW4pOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgbWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShsZWZ0KTsKKyAgICAgICAgbWF4Y2hhcjIgPSBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUocmlnaHQpOworICAgICAgICBtYXhjaGFyID0gTUFYX01BWENIQVIobWF4Y2hhciwgbWF4Y2hhcjIpOworCisgICAgICAgIC8qIENvbmNhdCB0aGUgdHdvIFVuaWNvZGUgc3RyaW5ncyAqLworICAgICAgICByZXMgPSBQeVVuaWNvZGVfTmV3KG5ld19sZW4sIG1heGNoYXIpOworICAgICAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhyZXMsIDAsIGxlZnQsIDAsIGxlZnRfbGVuKTsKKyAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMocmVzLCBsZWZ0X2xlbiwgcmlnaHQsIDAsIHJpZ2h0X2xlbik7CisgICAgICAgIFB5X0RFQ1JFRihsZWZ0KTsKKyAgICAgICAgKnBfbGVmdCA9IHJlczsKKyAgICB9CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeSgqcF9sZWZ0LCAxKSk7CisgICAgcmV0dXJuOworCitlcnJvcjoKKyAgICBQeV9DTEVBUigqcF9sZWZ0KTsKIH0KIAogdm9pZApAQCAtNzQ4OCwyMyArMTA3NzEsNjQgQEAKIGludGVycHJldGVkIGFzIGluIHNsaWNlIG5vdGF0aW9uLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotdW5pY29kZV9jb3VudChQeVVuaWNvZGVPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQordW5pY29kZV9jb3VudChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICpzdWJzdHJpbmc7CisgICAgUHlPYmplY3QgKnN1YnN0cmluZzsKICAgICBQeV9zc2l6ZV90IHN0YXJ0ID0gMDsKICAgICBQeV9zc2l6ZV90IGVuZCA9IFBZX1NTSVpFX1RfTUFYOwogICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgaW50IGtpbmQxLCBraW5kMiwga2luZDsKKyAgICB2b2lkICpidWYxLCAqYnVmMjsKKyAgICBQeV9zc2l6ZV90IGxlbjEsIGxlbjIsIGlyZXN1bHQ7CiAKICAgICBpZiAoIXN0cmluZ2xpYl9wYXJzZV9hcmdzX2ZpbmRzX3VuaWNvZGUoImNvdW50IiwgYXJncywgJnN1YnN0cmluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0LCAmZW5kKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBBREpVU1RfSU5ESUNFUyhzdGFydCwgZW5kLCBzZWxmLT5sZW5ndGgpOwotICAgIHJlc3VsdCA9IFB5TG9uZ19Gcm9tU3NpemVfdCgKLSAgICAgICAgc3RyaW5nbGliX2NvdW50KHNlbGYtPnN0ciArIHN0YXJ0LCBlbmQgLSBzdGFydCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHN1YnN0cmluZy0+c3RyLCBzdWJzdHJpbmctPmxlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgIFBZX1NTSVpFX1RfTUFYKQotICAgICAgICApOworICAgIGtpbmQxID0gUHlVbmljb2RlX0tJTkQoc2VsZik7CisgICAga2luZDIgPSBQeVVuaWNvZGVfS0lORChzdWJzdHJpbmcpOworICAgIGlmIChraW5kMiA+IGtpbmQxKQorICAgICAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKDApOworICAgIGtpbmQgPSBraW5kMTsKKyAgICBidWYxID0gUHlVbmljb2RlX0RBVEEoc2VsZik7CisgICAgYnVmMiA9IFB5VW5pY29kZV9EQVRBKHN1YnN0cmluZyk7CisgICAgaWYgKGtpbmQyICE9IGtpbmQpCisgICAgICAgIGJ1ZjIgPSBfUHlVbmljb2RlX0FzS2luZChzdWJzdHJpbmcsIGtpbmQpOworICAgIGlmICghYnVmMikgeworICAgICAgICBQeV9ERUNSRUYoc3Vic3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGxlbjEgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKKyAgICBsZW4yID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc3Vic3RyaW5nKTsKKworICAgIEFESlVTVF9JTkRJQ0VTKHN0YXJ0LCBlbmQsIGxlbjEpOworICAgIHN3aXRjaCAoa2luZCkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIGlyZXN1bHQgPSB1Y3MxbGliX2NvdW50KAorICAgICAgICAgICAgKChQeV9VQ1MxKilidWYxKSArIHN0YXJ0LCBlbmQgLSBzdGFydCwKKyAgICAgICAgICAgIGJ1ZjIsIGxlbjIsIFBZX1NTSVpFX1RfTUFYCisgICAgICAgICAgICApOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICBpcmVzdWx0ID0gdWNzMmxpYl9jb3VudCgKKyAgICAgICAgICAgICgoUHlfVUNTMiopYnVmMSkgKyBzdGFydCwgZW5kIC0gc3RhcnQsCisgICAgICAgICAgICBidWYyLCBsZW4yLCBQWV9TU0laRV9UX01BWAorICAgICAgICAgICAgKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgaXJlc3VsdCA9IHVjczRsaWJfY291bnQoCisgICAgICAgICAgICAoKFB5X1VDUzQqKWJ1ZjEpICsgc3RhcnQsIGVuZCAtIHN0YXJ0LAorICAgICAgICAgICAgYnVmMiwgbGVuMiwgUFlfU1NJWkVfVF9NQVgKKyAgICAgICAgICAgICk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGFzc2VydCgwKTsgaXJlc3VsdCA9IDA7CisgICAgfQorCisgICAgcmVzdWx0ID0gUHlMb25nX0Zyb21Tc2l6ZV90KGlyZXN1bHQpOworCisgICAgaWYgKGtpbmQyICE9IGtpbmQpCisgICAgICAgIFB5TWVtX0ZyZWUoYnVmMik7CiAKICAgICBQeV9ERUNSRUYoc3Vic3RyaW5nKTsKIApAQCAtNzUyMiw3ICsxMDg0Niw3IEBACiBjb2RlY3MucmVnaXN0ZXJfZXJyb3IgdGhhdCBjYW4gaGFuZGxlIFVuaWNvZGVFbmNvZGVFcnJvcnMuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi11bmljb2RlX2VuY29kZShQeVVuaWNvZGVPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQordW5pY29kZV9lbmNvZGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dhcmdzKQogewogICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsiZW5jb2RpbmciLCAiZXJyb3JzIiwgMH07CiAgICAgY2hhciAqZW5jb2RpbmcgPSBOVUxMOwpAQCAtNzUzMSw3ICsxMDg1NSw3IEBACiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dhcmdzLCAifHNzOmVuY29kZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmZW5jb2RpbmcsICZlcnJvcnMpKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICByZXR1cm4gUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZygoUHlPYmplY3QgKilzZWxmLCBlbmNvZGluZywgZXJyb3JzKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyhzZWxmLCBlbmNvZGluZywgZXJyb3JzKTsKIH0KIAogUHlEb2NfU1RSVkFSKGV4cGFuZHRhYnNfX2RvY19fLApAQCAtNzU0MSw4MiArMTA4NjUsODIgQEAKIElmIHRhYnNpemUgaXMgbm90IGdpdmVuLCBhIHRhYiBzaXplIG9mIDggY2hhcmFjdGVycyBpcyBhc3N1bWVkLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX2V4cGFuZHRhYnMoUHlVbmljb2RlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3VuaWNvZGVfZXhwYW5kdGFicyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgUHlfVU5JQ09ERSAqZTsKLSAgICBQeV9VTklDT0RFICpwOwotICAgIFB5X1VOSUNPREUgKnE7Ci0gICAgUHlfVU5JQ09ERSAqcWU7Ci0gICAgUHlfc3NpemVfdCBpLCBqLCBpbmNyOwotICAgIFB5VW5pY29kZU9iamVjdCAqdTsKKyAgICBQeV9zc2l6ZV90IGksIGosIGxpbmVfcG9zLCBzcmNfbGVuLCBpbmNyOworICAgIFB5X1VDUzQgY2g7CisgICAgUHlPYmplY3QgKnU7CisgICAgdm9pZCAqc3JjX2RhdGEsICpkZXN0X2RhdGE7CiAgICAgaW50IHRhYnNpemUgPSA4OworICAgIGludCBraW5kOworICAgIGludCBmb3VuZDsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifGk6ZXhwYW5kdGFicyIsICZ0YWJzaXplKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIC8qIEZpcnN0IHBhc3M6IGRldGVybWluZSBzaXplIG9mIG91dHB1dCBzdHJpbmcgKi8KLSAgICBpID0gMDsgLyogY2hhcnMgdXAgdG8gYW5kIGluY2x1ZGluZyBtb3N0IHJlY2VudCBcbiBvciBcciAqLwotICAgIGogPSAwOyAvKiBjaGFycyBzaW5jZSBtb3N0IHJlY2VudCBcbiBvciBcciAodXNlIGluIHRhYiBjYWxjdWxhdGlvbnMpICovCi0gICAgZSA9IHNlbGYtPnN0ciArIHNlbGYtPmxlbmd0aDsgLyogZW5kIG9mIGlucHV0ICovCi0gICAgZm9yIChwID0gc2VsZi0+c3RyOyBwIDwgZTsgcCsrKQotICAgICAgICBpZiAoKnAgPT0gJ1x0JykgeworICAgIHNyY19sZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKKyAgICBpID0gaiA9IGxpbmVfcG9zID0gMDsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoc2VsZik7CisgICAgc3JjX2RhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKKyAgICBmb3VuZCA9IDA7CisgICAgZm9yICg7IGkgPCBzcmNfbGVuOyBpKyspIHsKKyAgICAgICAgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBzcmNfZGF0YSwgaSk7CisgICAgICAgIGlmIChjaCA9PSAnXHQnKSB7CisgICAgICAgICAgICBmb3VuZCA9IDE7CiAgICAgICAgICAgICBpZiAodGFic2l6ZSA+IDApIHsKLSAgICAgICAgICAgICAgICBpbmNyID0gdGFic2l6ZSAtIChqICUgdGFic2l6ZSk7IC8qIGNhbm5vdCBvdmVyZmxvdyAqLworICAgICAgICAgICAgICAgIGluY3IgPSB0YWJzaXplIC0gKGxpbmVfcG9zICUgdGFic2l6ZSk7IC8qIGNhbm5vdCBvdmVyZmxvdyAqLwogICAgICAgICAgICAgICAgIGlmIChqID4gUFlfU1NJWkVfVF9NQVggLSBpbmNyKQotICAgICAgICAgICAgICAgICAgICBnb3RvIG92ZXJmbG93MTsKKyAgICAgICAgICAgICAgICAgICAgZ290byBvdmVyZmxvdzsKKyAgICAgICAgICAgICAgICBsaW5lX3BvcyArPSBpbmNyOwogICAgICAgICAgICAgICAgIGogKz0gaW5jcjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGlmIChqID4gUFlfU1NJWkVfVF9NQVggLSAxKQotICAgICAgICAgICAgICAgIGdvdG8gb3ZlcmZsb3cxOworICAgICAgICAgICAgICAgIGdvdG8gb3ZlcmZsb3c7CisgICAgICAgICAgICBsaW5lX3BvcysrOwogICAgICAgICAgICAgaisrOwotICAgICAgICAgICAgaWYgKCpwID09ICdcbicgfHwgKnAgPT0gJ1xyJykgewotICAgICAgICAgICAgICAgIGlmIChpID4gUFlfU1NJWkVfVF9NQVggLSBqKQotICAgICAgICAgICAgICAgICAgICBnb3RvIG92ZXJmbG93MTsKLSAgICAgICAgICAgICAgICBpICs9IGo7Ci0gICAgICAgICAgICAgICAgaiA9IDA7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHInKQorICAgICAgICAgICAgICAgIGxpbmVfcG9zID0gMDsKICAgICAgICAgfQotCi0gICAgaWYgKGkgPiBQWV9TU0laRV9UX01BWCAtIGopCi0gICAgICAgIGdvdG8gb3ZlcmZsb3cxOworICAgIH0KKyAgICBpZiAoIWZvdW5kKQorICAgICAgICByZXR1cm4gdW5pY29kZV9yZXN1bHRfdW5jaGFuZ2VkKHNlbGYpOwogCiAgICAgLyogU2Vjb25kIHBhc3M6IGNyZWF0ZSBvdXRwdXQgc3RyaW5nIGFuZCBmaWxsIGl0ICovCi0gICAgdSA9IF9QeVVuaWNvZGVfTmV3KGkgKyBqKTsKKyAgICB1ID0gUHlVbmljb2RlX05ldyhqLCBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUoc2VsZikpOwogICAgIGlmICghdSkKICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgZGVzdF9kYXRhID0gUHlVbmljb2RlX0RBVEEodSk7CiAKLSAgICBqID0gMDsgLyogc2FtZSBhcyBpbiBmaXJzdCBwYXNzICovCi0gICAgcSA9IHUtPnN0cjsgLyogbmV4dCBvdXRwdXQgY2hhciAqLwotICAgIHFlID0gdS0+c3RyICsgdS0+bGVuZ3RoOyAvKiBlbmQgb2Ygb3V0cHV0ICovCisgICAgaSA9IGogPSBsaW5lX3BvcyA9IDA7CiAKLSAgICBmb3IgKHAgPSBzZWxmLT5zdHI7IHAgPCBlOyBwKyspCi0gICAgICAgIGlmICgqcCA9PSAnXHQnKSB7CisgICAgZm9yICg7IGkgPCBzcmNfbGVuOyBpKyspIHsKKyAgICAgICAgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBzcmNfZGF0YSwgaSk7CisgICAgICAgIGlmIChjaCA9PSAnXHQnKSB7CiAgICAgICAgICAgICBpZiAodGFic2l6ZSA+IDApIHsKLSAgICAgICAgICAgICAgICBpID0gdGFic2l6ZSAtIChqICUgdGFic2l6ZSk7Ci0gICAgICAgICAgICAgICAgaiArPSBpOwotICAgICAgICAgICAgICAgIHdoaWxlIChpLS0pIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHEgPj0gcWUpCi0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG92ZXJmbG93MjsKLSAgICAgICAgICAgICAgICAgICAgKnErKyA9ICcgJzsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaW5jciA9IHRhYnNpemUgLSAobGluZV9wb3MgJSB0YWJzaXplKTsKKyAgICAgICAgICAgICAgICBsaW5lX3BvcyArPSBpbmNyOworICAgICAgICAgICAgICAgIEZJTEwoa2luZCwgZGVzdF9kYXRhLCAnICcsIGosIGluY3IpOworICAgICAgICAgICAgICAgIGogKz0gaW5jcjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmIChxID49IHFlKQotICAgICAgICAgICAgICAgIGdvdG8gb3ZlcmZsb3cyOwotICAgICAgICAgICAgKnErKyA9ICpwOworICAgICAgICAgICAgbGluZV9wb3MrKzsKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShraW5kLCBkZXN0X2RhdGEsIGosIGNoKTsKICAgICAgICAgICAgIGorKzsKLSAgICAgICAgICAgIGlmICgqcCA9PSAnXG4nIHx8ICpwID09ICdccicpCi0gICAgICAgICAgICAgICAgaiA9IDA7CisgICAgICAgICAgICBpZiAoY2ggPT0gJ1xuJyB8fCBjaCA9PSAnXHInKQorICAgICAgICAgICAgICAgIGxpbmVfcG9zID0gMDsKICAgICAgICAgfQorICAgIH0KKyAgICBhc3NlcnQgKGogPT0gUHlVbmljb2RlX0dFVF9MRU5HVEgodSkpOworICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdCh1KTsKIAotICAgIHJldHVybiAoUHlPYmplY3QqKSB1OwotCi0gIG92ZXJmbG93MjoKLSAgICBQeV9ERUNSRUYodSk7Ci0gIG92ZXJmbG93MToKKyAgb3ZlcmZsb3c6CiAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsICJuZXcgc3RyaW5nIGlzIHRvbyBsb25nIik7CiAgICAgcmV0dXJuIE5VTEw7CiB9CkBAIC03NjMxLDkgKzEwOTU1LDkgQEAKIFJldHVybiAtMSBvbiBmYWlsdXJlLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotdW5pY29kZV9maW5kKFB5VW5pY29kZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit1bmljb2RlX2ZpbmQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIFB5VW5pY29kZU9iamVjdCAqc3Vic3RyaW5nOworICAgIFB5T2JqZWN0ICpzdWJzdHJpbmc7CiAgICAgUHlfc3NpemVfdCBzdGFydDsKICAgICBQeV9zc2l6ZV90IGVuZDsKICAgICBQeV9zc2l6ZV90IHJlc3VsdDsKQEAgLTc2NDIsNjMgKzEwOTY2LDExNCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhcnQsICZlbmQpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJlc3VsdCA9IHN0cmluZ2xpYl9maW5kX3NsaWNlKAotICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShzZWxmKSwgUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpLAotICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdWJzdHJpbmcpLCBQeVVuaWNvZGVfR0VUX1NJWkUoc3Vic3RyaW5nKSwKLSAgICAgICAgc3RhcnQsIGVuZAotICAgICAgICApOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3Vic3RyaW5nKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICByZXN1bHQgPSBhbnlfZmluZF9zbGljZSgxLCBzZWxmLCBzdWJzdHJpbmcsIHN0YXJ0LCBlbmQpOwogCiAgICAgUHlfREVDUkVGKHN1YnN0cmluZyk7CiAKKyAgICBpZiAocmVzdWx0ID09IC0yKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3QocmVzdWx0KTsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLXVuaWNvZGVfZ2V0aXRlbShQeVVuaWNvZGVPYmplY3QgKnNlbGYsIFB5X3NzaXplX3QgaW5kZXgpCit1bmljb2RlX2dldGl0ZW0oUHlPYmplY3QgKnNlbGYsIFB5X3NzaXplX3QgaW5kZXgpCiB7Ci0gICAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBzZWxmLT5sZW5ndGgpIHsKKyAgICB2b2lkICpkYXRhOworICAgIGVudW0gUHlVbmljb2RlX0tpbmQga2luZDsKKyAgICBQeV9VQ1M0IGNoOworICAgIFB5T2JqZWN0ICpyZXM7CisKKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayhzZWxmKSB8fCBQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpIHsKKyAgICAgICAgUHlFcnJfQmFkQXJndW1lbnQoKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGlmIChpbmRleCA8IDAgfHwgaW5kZXggPj0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZikpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0luZGV4RXJyb3IsICJzdHJpbmcgaW5kZXggb3V0IG9mIHJhbmdlIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoc2VsZik7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHNlbGYpOworICAgIGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaW5kZXgpOworICAgIGlmIChjaCA8IDI1NikKKyAgICAgICAgcmV0dXJuIGdldF9sYXRpbjFfY2hhcihjaCk7CiAKLSAgICByZXR1cm4gKFB5T2JqZWN0KikgUHlVbmljb2RlX0Zyb21Vbmljb2RlKCZzZWxmLT5zdHJbaW5kZXhdLCAxKTsKKyAgICByZXMgPSBQeVVuaWNvZGVfTmV3KDEsIGNoKTsKKyAgICBpZiAocmVzID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChyZXMpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShyZXMpOworICAgIFB5VW5pY29kZV9XUklURShraW5kLCBkYXRhLCAwLCBjaCk7CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeShyZXMsIDEpKTsKKyAgICByZXR1cm4gcmVzOwogfQogCiAvKiBCZWxpZXZlIGl0IG9yIG5vdCwgdGhpcyBwcm9kdWNlcyB0aGUgc2FtZSB2YWx1ZSBmb3IgQVNDSUkgc3RyaW5ncwotICAgYXMgc3RyaW5nX2hhc2goKS4gKi8KKyAgIGFzIGJ5dGVzX2hhc2goKS4gKi8KIHN0YXRpYyBQeV9oYXNoX3QKLXVuaWNvZGVfaGFzaChQeVVuaWNvZGVPYmplY3QgKnNlbGYpCit1bmljb2RlX2hhc2goUHlPYmplY3QgKnNlbGYpCiB7CiAgICAgUHlfc3NpemVfdCBsZW47Ci0gICAgUHlfVU5JQ09ERSAqcDsKLSAgICBQeV9oYXNoX3QgeDsKKyAgICBQeV91aGFzaF90IHg7CiAKICNpZmRlZiBQeV9ERUJVRwogICAgIGFzc2VydChfUHlfSGFzaFNlY3JldF9Jbml0aWFsaXplZCk7CiAjZW5kaWYKLSAgICBpZiAoc2VsZi0+aGFzaCAhPSAtMSkKLSAgICAgICAgcmV0dXJuIHNlbGYtPmhhc2g7Ci0gICAgbGVuID0gUHlfU0laRShzZWxmKTsKKyAgICBpZiAoX1B5VW5pY29kZV9IQVNIKHNlbGYpICE9IC0xKQorICAgICAgICByZXR1cm4gX1B5VW5pY29kZV9IQVNIKHNlbGYpOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKICAgICAvKgogICAgICAgV2UgbWFrZSB0aGUgaGFzaCBvZiB0aGUgZW1wdHkgc3RyaW5nIGJlIDAsIHJhdGhlciB0aGFuIHVzaW5nCiAgICAgICAocHJlZml4IF4gc3VmZml4KSwgc2luY2UgdGhpcyBzbGlnaHRseSBvYmZ1c2NhdGVzIHRoZSBoYXNoIHNlY3JldAogICAgICovCiAgICAgaWYgKGxlbiA9PSAwKSB7Ci0gICAgICAgIHNlbGYtPmhhc2ggPSAwOworICAgICAgICBfUHlVbmljb2RlX0hBU0goc2VsZikgPSAwOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgcCA9IHNlbGYtPnN0cjsKLSAgICB4ID0gX1B5X0hhc2hTZWNyZXQucHJlZml4OwotICAgIHggXj0gKnAgPDwgNzsKLSAgICB3aGlsZSAoLS1sZW4gPj0gMCkKLSAgICAgICAgeCA9IChfUHlIQVNIX01VTFRJUExJRVIqeCkgXiAqcCsrOwotICAgIHggXj0gUHlfU0laRShzZWxmKTsKLSAgICB4IF49IF9QeV9IYXNoU2VjcmV0LnN1ZmZpeDsKKworICAgIC8qIFRoZSBoYXNoIGZ1bmN0aW9uIGFzIGEgbWFjcm8sIGdldHMgZXhwYW5kZWQgdGhyZWUgdGltZXMgYmVsb3cuICovCisjZGVmaW5lIEhBU0goUCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICB4IF49IChQeV91aGFzaF90KSAqUCA8PCA3OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIHdoaWxlICgtLWxlbiA+PSAwKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICAgIHggPSAoX1B5SEFTSF9NVUxUSVBMSUVSICogeCkgXiAoUHlfdWhhc2hfdCkgKlArKzsgIFwKKworICAgIHggPSAoUHlfdWhhc2hfdCkgX1B5X0hhc2hTZWNyZXQucHJlZml4OworICAgIHN3aXRjaCAoUHlVbmljb2RlX0tJTkQoc2VsZikpIHsKKyAgICBjYXNlIFB5VW5pY29kZV8xQllURV9LSU5EOiB7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmMgPSBQeVVuaWNvZGVfMUJZVEVfREFUQShzZWxmKTsKKyAgICAgICAgSEFTSChjKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgUHlVbmljb2RlXzJCWVRFX0tJTkQ6IHsKKyAgICAgICAgY29uc3QgUHlfVUNTMiAqcyA9IFB5VW5pY29kZV8yQllURV9EQVRBKHNlbGYpOworICAgICAgICBIQVNIKHMpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgZGVmYXVsdDogeworICAgICAgICBQeV9VQ1M0ICpsOworICAgICAgICBhc3NlcnQoUHlVbmljb2RlX0tJTkQoc2VsZikgPT0gUHlVbmljb2RlXzRCWVRFX0tJTkQgJiYKKyAgICAgICAgICAgICAgICJJbXBvc3NpYmxlIHN3aXRjaCBjYXNlIGluIHVuaWNvZGVfaGFzaCIpOworICAgICAgICBsID0gUHlVbmljb2RlXzRCWVRFX0RBVEEoc2VsZik7CisgICAgICAgIEhBU0gobCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9CisgICAgeCBePSAoUHlfdWhhc2hfdCkgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZik7CisgICAgeCBePSAoUHlfdWhhc2hfdCkgX1B5X0hhc2hTZWNyZXQuc3VmZml4OworCiAgICAgaWYgKHggPT0gLTEpCiAgICAgICAgIHggPSAtMjsKLSAgICBzZWxmLT5oYXNoID0geDsKKyAgICBfUHlVbmljb2RlX0hBU0goc2VsZikgPSB4OwogICAgIHJldHVybiB4OwogfQorI3VuZGVmIEhBU0gKIAogUHlEb2NfU1RSVkFSKGluZGV4X19kb2NfXywKICAgICAgICAgICAgICAiUy5pbmRleChzdWJbLCBzdGFydFssIGVuZF1dKSAtPiBpbnRcblwKQEAgLTc3MDYsMTAgKzExMDgxLDEwIEBACiBMaWtlIFMuZmluZCgpIGJ1dCByYWlzZSBWYWx1ZUVycm9yIHdoZW4gdGhlIHN1YnN0cmluZyBpcyBub3QgZm91bmQuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi11bmljb2RlX2luZGV4KFB5VW5pY29kZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit1bmljb2RlX2luZGV4KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKICAgICBQeV9zc2l6ZV90IHJlc3VsdDsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnN1YnN0cmluZzsKKyAgICBQeU9iamVjdCAqc3Vic3RyaW5nOwogICAgIFB5X3NzaXplX3Qgc3RhcnQ7CiAgICAgUHlfc3NpemVfdCBlbmQ7CiAKQEAgLTc3MTcsMTQgKzExMDkyLDE4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGFydCwgJmVuZCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgcmVzdWx0ID0gc3RyaW5nbGliX2ZpbmRfc2xpY2UoCi0gICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYpLCBQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZiksCi0gICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHN1YnN0cmluZyksIFB5VW5pY29kZV9HRVRfU0laRShzdWJzdHJpbmcpLAotICAgICAgICBzdGFydCwgZW5kCi0gICAgICAgICk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzdWJzdHJpbmcpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJlc3VsdCA9IGFueV9maW5kX3NsaWNlKDEsIHNlbGYsIHN1YnN0cmluZywgc3RhcnQsIGVuZCk7CiAKICAgICBQeV9ERUNSRUYoc3Vic3RyaW5nKTsKIAorICAgIGlmIChyZXN1bHQgPT0gLTIpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgaWYgKHJlc3VsdCA8IDApIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJzdWJzdHJpbmcgbm90IGZvdW5kIik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNzc0MCwyNCArMTExMTksMzEgQEAKIGF0IGxlYXN0IG9uZSBjYXNlZCBjaGFyYWN0ZXIgaW4gUywgRmFsc2Ugb3RoZXJ3aXNlLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX2lzbG93ZXIoUHlVbmljb2RlT2JqZWN0ICpzZWxmKQordW5pY29kZV9pc2xvd2VyKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHJlZ2lzdGVyIGNvbnN0IFB5X1VOSUNPREUgKnAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShzZWxmKTsKLSAgICByZWdpc3RlciBjb25zdCBQeV9VTklDT0RFICplOworICAgIFB5X3NzaXplX3QgaSwgbGVuZ3RoOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CiAgICAgaW50IGNhc2VkOwogCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZik7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKKwogICAgIC8qIFNob3J0Y3V0IGZvciBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDEpCi0gICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoUHlfVU5JQ09ERV9JU0xPV0VSKCpwKSk7CisgICAgaWYgKGxlbmd0aCA9PSAxKQorICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKAorICAgICAgICAgICAgUHlfVU5JQ09ERV9JU0xPV0VSKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIDApKSk7CiAKICAgICAvKiBTcGVjaWFsIGNhc2UgZm9yIGVtcHR5IHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDApCisgICAgaWYgKGxlbmd0aCA9PSAwKQogICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDApOwogCi0gICAgZSA9IHAgKyBQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZik7CiAgICAgY2FzZWQgPSAwOwotICAgIHdoaWxlIChwIDwgZSkgewotICAgICAgICBjb25zdCBQeV9VQ1M0IGNoID0gX1B5X1VOSUNPREVfTkVYVChwLCBlKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgY29uc3QgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpOwogCiAgICAgICAgIGlmIChQeV9VTklDT0RFX0lTVVBQRVIoY2gpIHx8IFB5X1VOSUNPREVfSVNUSVRMRShjaCkpCiAgICAgICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDApOwpAQCAtNzc3NCwyNCArMTExNjAsMzEgQEAKIGF0IGxlYXN0IG9uZSBjYXNlZCBjaGFyYWN0ZXIgaW4gUywgRmFsc2Ugb3RoZXJ3aXNlLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX2lzdXBwZXIoUHlVbmljb2RlT2JqZWN0ICpzZWxmKQordW5pY29kZV9pc3VwcGVyKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHJlZ2lzdGVyIGNvbnN0IFB5X1VOSUNPREUgKnAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShzZWxmKTsKLSAgICByZWdpc3RlciBjb25zdCBQeV9VTklDT0RFICplOworICAgIFB5X3NzaXplX3QgaSwgbGVuZ3RoOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CiAgICAgaW50IGNhc2VkOwogCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZik7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKKwogICAgIC8qIFNob3J0Y3V0IGZvciBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDEpCi0gICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoUHlfVU5JQ09ERV9JU1VQUEVSKCpwKSAhPSAwKTsKKyAgICBpZiAobGVuZ3RoID09IDEpCisgICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoCisgICAgICAgICAgICBQeV9VTklDT0RFX0lTVVBQRVIoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgMCkpICE9IDApOwogCiAgICAgLyogU3BlY2lhbCBjYXNlIGZvciBlbXB0eSBzdHJpbmdzICovCi0gICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRShzZWxmKSA9PSAwKQorICAgIGlmIChsZW5ndGggPT0gMCkKICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygwKTsKIAotICAgIGUgPSBwICsgUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpOwogICAgIGNhc2VkID0gMDsKLSAgICB3aGlsZSAocCA8IGUpIHsKLSAgICAgICAgY29uc3QgUHlfVUNTNCBjaCA9IF9QeV9VTklDT0RFX05FWFQocCwgZSk7CisgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIGNvbnN0IFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKIAogICAgICAgICBpZiAoUHlfVU5JQ09ERV9JU0xPV0VSKGNoKSB8fCBQeV9VTklDT0RFX0lTVElUTEUoY2gpKQogICAgICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygwKTsKQEAgLTc4MTAsMjYgKzExMjAzLDM0IEBACiBSZXR1cm4gRmFsc2Ugb3RoZXJ3aXNlLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX2lzdGl0bGUoUHlVbmljb2RlT2JqZWN0ICpzZWxmKQordW5pY29kZV9pc3RpdGxlKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHJlZ2lzdGVyIGNvbnN0IFB5X1VOSUNPREUgKnAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShzZWxmKTsKLSAgICByZWdpc3RlciBjb25zdCBQeV9VTklDT0RFICplOworICAgIFB5X3NzaXplX3QgaSwgbGVuZ3RoOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CiAgICAgaW50IGNhc2VkLCBwcmV2aW91c19pc19jYXNlZDsKIAorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGxlbmd0aCA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChzZWxmKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoc2VsZik7CisKICAgICAvKiBTaG9ydGN1dCBmb3Igc2luZ2xlIGNoYXJhY3RlciBzdHJpbmdzICovCi0gICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRShzZWxmKSA9PSAxKQotICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKChQeV9VTklDT0RFX0lTVElUTEUoKnApICE9IDApIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFB5X1VOSUNPREVfSVNVUFBFUigqcCkgIT0gMCkpOworICAgIGlmIChsZW5ndGggPT0gMSkgeworICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgMCk7CisgICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoKFB5X1VOSUNPREVfSVNUSVRMRShjaCkgIT0gMCkgfHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlfVU5JQ09ERV9JU1VQUEVSKGNoKSAhPSAwKSk7CisgICAgfQogCiAgICAgLyogU3BlY2lhbCBjYXNlIGZvciBlbXB0eSBzdHJpbmdzICovCi0gICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRShzZWxmKSA9PSAwKQorICAgIGlmIChsZW5ndGggPT0gMCkKICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygwKTsKIAotICAgIGUgPSBwICsgUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpOwogICAgIGNhc2VkID0gMDsKICAgICBwcmV2aW91c19pc19jYXNlZCA9IDA7Ci0gICAgd2hpbGUgKHAgPCBlKSB7Ci0gICAgICAgIGNvbnN0IFB5X1VDUzQgY2ggPSBfUHlfVU5JQ09ERV9ORVhUKHAsIGUpOworICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBjb25zdCBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSk7CiAKICAgICAgICAgaWYgKFB5X1VOSUNPREVfSVNVUFBFUihjaCkgfHwgUHlfVU5JQ09ERV9JU1RJVExFKGNoKSkgewogICAgICAgICAgICAgaWYgKHByZXZpb3VzX2lzX2Nhc2VkKQpAQCAtNzg1NiwyMyArMTEyNTcsMjkgQEAKIGFuZCB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIGluIFMsIEZhbHNlIG90aGVyd2lzZS4iKTsKIAogc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV9pc3NwYWNlKFB5VW5pY29kZU9iamVjdCAqc2VsZikKK3VuaWNvZGVfaXNzcGFjZShQeU9iamVjdCAqc2VsZikKIHsKLSAgICByZWdpc3RlciBjb25zdCBQeV9VTklDT0RFICpwID0gUHlVbmljb2RlX0FTX1VOSUNPREUoc2VsZik7Ci0gICAgcmVnaXN0ZXIgY29uc3QgUHlfVU5JQ09ERSAqZTsKKyAgICBQeV9zc2l6ZV90IGksIGxlbmd0aDsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOworCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZik7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKIAogICAgIC8qIFNob3J0Y3V0IGZvciBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDEgJiYKLSAgICAgICAgUHlfVU5JQ09ERV9JU1NQQUNFKCpwKSkKLSAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygxKTsKKyAgICBpZiAobGVuZ3RoID09IDEpCisgICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoCisgICAgICAgICAgICBQeV9VTklDT0RFX0lTU1BBQ0UoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgMCkpKTsKIAogICAgIC8qIFNwZWNpYWwgY2FzZSBmb3IgZW1wdHkgc3RyaW5ncyAqLwotICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZikgPT0gMCkKKyAgICBpZiAobGVuZ3RoID09IDApCiAgICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoMCk7CiAKLSAgICBlID0gcCArIFB5VW5pY29kZV9HRVRfU0laRShzZWxmKTsKLSAgICB3aGlsZSAocCA8IGUpIHsKLSAgICAgICAgY29uc3QgUHlfVUNTNCBjaCA9IF9QeV9VTklDT0RFX05FWFQocCwgZSk7CisgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIGNvbnN0IFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKICAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTU1BBQ0UoY2gpKQogICAgICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygwKTsKICAgICB9CkBAIC03ODg2LDIzICsxMTI5MywyOSBAQAogYW5kIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIgaW4gUywgRmFsc2Ugb3RoZXJ3aXNlLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX2lzYWxwaGEoUHlVbmljb2RlT2JqZWN0ICpzZWxmKQordW5pY29kZV9pc2FscGhhKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHJlZ2lzdGVyIGNvbnN0IFB5X1VOSUNPREUgKnAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShzZWxmKTsKLSAgICByZWdpc3RlciBjb25zdCBQeV9VTklDT0RFICplOworICAgIFB5X3NzaXplX3QgaSwgbGVuZ3RoOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBsZW5ndGggPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoc2VsZik7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHNlbGYpOwogCiAgICAgLyogU2hvcnRjdXQgZm9yIHNpbmdsZSBjaGFyYWN0ZXIgc3RyaW5ncyAqLwotICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZikgPT0gMSAmJgotICAgICAgICBQeV9VTklDT0RFX0lTQUxQSEEoKnApKQotICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDEpOworICAgIGlmIChsZW5ndGggPT0gMSkKKyAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygKKyAgICAgICAgICAgIFB5X1VOSUNPREVfSVNBTFBIQShQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCAwKSkpOwogCiAgICAgLyogU3BlY2lhbCBjYXNlIGZvciBlbXB0eSBzdHJpbmdzICovCi0gICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRShzZWxmKSA9PSAwKQorICAgIGlmIChsZW5ndGggPT0gMCkKICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygwKTsKIAotICAgIGUgPSBwICsgUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpOwotICAgIHdoaWxlIChwIDwgZSkgewotICAgICAgICBpZiAoIVB5X1VOSUNPREVfSVNBTFBIQShfUHlfVU5JQ09ERV9ORVhUKHAsIGUpKSkKKyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTQUxQSEEoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSkpKQogICAgICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygwKTsKICAgICB9CiAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygxKTsKQEAgLTc5MTUsMjMgKzExMzI4LDMxIEBACiBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciBpbiBTLCBGYWxzZSBvdGhlcndpc2UuIik7CiAKIHN0YXRpYyBQeU9iamVjdCoKLXVuaWNvZGVfaXNhbG51bShQeVVuaWNvZGVPYmplY3QgKnNlbGYpCit1bmljb2RlX2lzYWxudW0oUHlPYmplY3QgKnNlbGYpCiB7Ci0gICAgcmVnaXN0ZXIgY29uc3QgUHlfVU5JQ09ERSAqcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYpOwotICAgIHJlZ2lzdGVyIGNvbnN0IFB5X1VOSUNPREUgKmU7CisgICAgaW50IGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKKyAgICBQeV9zc2l6ZV90IGxlbiwgaTsKKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKIAogICAgIC8qIFNob3J0Y3V0IGZvciBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDEgJiYKLSAgICAgICAgUHlfVU5JQ09ERV9JU0FMTlVNKCpwKSkKLSAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygxKTsKKyAgICBpZiAobGVuID09IDEpIHsKKyAgICAgICAgY29uc3QgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIDApOworICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKFB5X1VOSUNPREVfSVNBTE5VTShjaCkpOworICAgIH0KIAogICAgIC8qIFNwZWNpYWwgY2FzZSBmb3IgZW1wdHkgc3RyaW5ncyAqLwotICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZikgPT0gMCkKKyAgICBpZiAobGVuID09IDApCiAgICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoMCk7CiAKLSAgICBlID0gcCArIFB5VW5pY29kZV9HRVRfU0laRShzZWxmKTsKLSAgICB3aGlsZSAocCA8IGUpIHsKLSAgICAgICAgY29uc3QgUHlfVUNTNCBjaCA9IF9QeV9VTklDT0RFX05FWFQocCwgZSk7CisgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgIGNvbnN0IFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKICAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTQUxOVU0oY2gpKQogICAgICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygwKTsKICAgICB9CkBAIC03OTQ1LDIzICsxMTM2NiwyOSBAQAogRmFsc2Ugb3RoZXJ3aXNlLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX2lzZGVjaW1hbChQeVVuaWNvZGVPYmplY3QgKnNlbGYpCit1bmljb2RlX2lzZGVjaW1hbChQeU9iamVjdCAqc2VsZikKIHsKLSAgICByZWdpc3RlciBjb25zdCBQeV9VTklDT0RFICpwID0gUHlVbmljb2RlX0FTX1VOSUNPREUoc2VsZik7Ci0gICAgcmVnaXN0ZXIgY29uc3QgUHlfVU5JQ09ERSAqZTsKKyAgICBQeV9zc2l6ZV90IGksIGxlbmd0aDsKKyAgICBpbnQga2luZDsKKyAgICB2b2lkICpkYXRhOworCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgbGVuZ3RoID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZik7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKIAogICAgIC8qIFNob3J0Y3V0IGZvciBzaW5nbGUgY2hhcmFjdGVyIHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDEgJiYKLSAgICAgICAgUHlfVU5JQ09ERV9JU0RFQ0lNQUwoKnApKQotICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDEpOworICAgIGlmIChsZW5ndGggPT0gMSkKKyAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygKKyAgICAgICAgICAgIFB5X1VOSUNPREVfSVNERUNJTUFMKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIDApKSk7CiAKICAgICAvKiBTcGVjaWFsIGNhc2UgZm9yIGVtcHR5IHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDApCisgICAgaWYgKGxlbmd0aCA9PSAwKQogICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDApOwogCi0gICAgZSA9IHAgKyBQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZik7Ci0gICAgd2hpbGUgKHAgPCBlKSB7Ci0gICAgICAgIGlmICghUHlfVU5JQ09ERV9JU0RFQ0lNQUwoX1B5X1VOSUNPREVfTkVYVChwLCBlKSkpCisgICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmICghUHlfVU5JQ09ERV9JU0RFQ0lNQUwoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSkpKQogICAgICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygwKTsKICAgICB9CiAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygxKTsKQEAgLTc5NzQsMjMgKzExNDAxLDMwIEBACiBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGNoYXJhY3RlciBpbiBTLCBGYWxzZSBvdGhlcndpc2UuIik7CiAKIHN0YXRpYyBQeU9iamVjdCoKLXVuaWNvZGVfaXNkaWdpdChQeVVuaWNvZGVPYmplY3QgKnNlbGYpCit1bmljb2RlX2lzZGlnaXQoUHlPYmplY3QgKnNlbGYpCiB7Ci0gICAgcmVnaXN0ZXIgY29uc3QgUHlfVU5JQ09ERSAqcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYpOwotICAgIHJlZ2lzdGVyIGNvbnN0IFB5X1VOSUNPREUgKmU7CisgICAgUHlfc3NpemVfdCBpLCBsZW5ndGg7CisgICAgaW50IGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGxlbmd0aCA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChzZWxmKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoc2VsZik7CiAKICAgICAvKiBTaG9ydGN1dCBmb3Igc2luZ2xlIGNoYXJhY3RlciBzdHJpbmdzICovCi0gICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRShzZWxmKSA9PSAxICYmCi0gICAgICAgIFB5X1VOSUNPREVfSVNESUdJVCgqcCkpCi0gICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoMSk7CisgICAgaWYgKGxlbmd0aCA9PSAxKSB7CisgICAgICAgIGNvbnN0IFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCAwKTsKKyAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZyhQeV9VTklDT0RFX0lTRElHSVQoY2gpKTsKKyAgICB9CiAKICAgICAvKiBTcGVjaWFsIGNhc2UgZm9yIGVtcHR5IHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDApCisgICAgaWYgKGxlbmd0aCA9PSAwKQogICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDApOwogCi0gICAgZSA9IHAgKyBQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZik7Ci0gICAgd2hpbGUgKHAgPCBlKSB7Ci0gICAgICAgIGlmICghUHlfVU5JQ09ERV9JU0RJR0lUKF9QeV9VTklDT0RFX05FWFQocCwgZSkpKQorICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoIVB5X1VOSUNPREVfSVNESUdJVChQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKSkpCiAgICAgICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDApOwogICAgIH0KICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKDEpOwpAQCAtODAwMywyMyArMTE0MzcsMjkgQEAKIEZhbHNlIG90aGVyd2lzZS4iKTsKIAogc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV9pc251bWVyaWMoUHlVbmljb2RlT2JqZWN0ICpzZWxmKQordW5pY29kZV9pc251bWVyaWMoUHlPYmplY3QgKnNlbGYpCiB7Ci0gICAgcmVnaXN0ZXIgY29uc3QgUHlfVU5JQ09ERSAqcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYpOwotICAgIHJlZ2lzdGVyIGNvbnN0IFB5X1VOSUNPREUgKmU7CisgICAgUHlfc3NpemVfdCBpLCBsZW5ndGg7CisgICAgaW50IGtpbmQ7CisgICAgdm9pZCAqZGF0YTsKKworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGxlbmd0aCA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChzZWxmKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoc2VsZik7CiAKICAgICAvKiBTaG9ydGN1dCBmb3Igc2luZ2xlIGNoYXJhY3RlciBzdHJpbmdzICovCi0gICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRShzZWxmKSA9PSAxICYmCi0gICAgICAgIFB5X1VOSUNPREVfSVNOVU1FUklDKCpwKSkKLSAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygxKTsKKyAgICBpZiAobGVuZ3RoID09IDEpCisgICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoCisgICAgICAgICAgICBQeV9VTklDT0RFX0lTTlVNRVJJQyhQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCAwKSkpOwogCiAgICAgLyogU3BlY2lhbCBjYXNlIGZvciBlbXB0eSBzdHJpbmdzICovCi0gICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRShzZWxmKSA9PSAwKQorICAgIGlmIChsZW5ndGggPT0gMCkKICAgICAgICAgcmV0dXJuIFB5Qm9vbF9Gcm9tTG9uZygwKTsKIAotICAgIGUgPSBwICsgUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpOwotICAgIHdoaWxlIChwIDwgZSkgewotICAgICAgICBpZiAoIVB5X1VOSUNPREVfSVNOVU1FUklDKF9QeV9VTklDT0RFX05FWFQocCwgZSkpKQorICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoIVB5X1VOSUNPREVfSVNOVU1FUklDKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpKSkKICAgICAgICAgICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoMCk7CiAgICAgfQogICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoMSk7CkBAIC04MDI4LDEzICsxMTQ2OCwyMSBAQAogaW50CiBQeVVuaWNvZGVfSXNJZGVudGlmaWVyKFB5T2JqZWN0ICpzZWxmKQogewotICAgIGNvbnN0IFB5X1VOSUNPREUgKnAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSgoUHlVbmljb2RlT2JqZWN0KilzZWxmKTsKLSAgICBjb25zdCBQeV9VTklDT0RFICplOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CisgICAgUHlfc3NpemVfdCBpOwogICAgIFB5X1VDUzQgZmlyc3Q7CiAKLSAgICAvKiBTcGVjaWFsIGNhc2UgZm9yIGVtcHR5IHN0cmluZ3MgKi8KLSAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpID09IDApCisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkgeworICAgICAgICBQeV9GYXRhbEVycm9yKCJpZGVudGlmaWVyIG5vdCByZWFkeSIpOwogICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICAvKiBTcGVjaWFsIGNhc2UgZm9yIGVtcHR5IHN0cmluZ3MgKi8KKyAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZikgPT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKIAogICAgIC8qIFBFUCAzMTMxIHNheXMgdGhhdCB0aGUgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgaW4KICAgICAgICBYSURfU3RhcnQgYW5kIHN1YnNlcXVlbnQgY2hhcmFjdGVycyBpbiBYSURfQ29udGludWUsCkBAIC04MDQ0LDEzICsxMTQ5MiwxMiBAQAogICAgICAgIGRlZmluaXRpb24gb2YgWElEX1N0YXJ0IGFuZCBYSURfQ29udGludWUsIGl0IGlzIHN1ZmZpY2llbnQKICAgICAgICB0byBjaGVjayBqdXN0IGZvciB0aGVzZSwgZXhjZXB0IHRoYXQgXyBtdXN0IGJlIGFsbG93ZWQKICAgICAgICBhcyBzdGFydGluZyBhbiBpZGVudGlmaWVyLiAgKi8KLSAgICBlID0gcCArIFB5VW5pY29kZV9HRVRfU0laRShzZWxmKTsKLSAgICBmaXJzdCA9IF9QeV9VTklDT0RFX05FWFQocCwgZSk7CisgICAgZmlyc3QgPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCAwKTsKICAgICBpZiAoIV9QeVVuaWNvZGVfSXNYaWRTdGFydChmaXJzdCkgJiYgZmlyc3QgIT0gMHg1RiAvKiBMT1cgTElORSAqLykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICB3aGlsZSAocCA8IGUpCi0gICAgICAgIGlmICghX1B5VW5pY29kZV9Jc1hpZENvbnRpbnVlKF9QeV9VTklDT0RFX05FWFQocCwgZSkpKQorICAgIGZvciAoaSA9IDE7IGkgPCBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsgaSsrKQorICAgICAgICBpZiAoIV9QeVVuaWNvZGVfSXNYaWRDb250aW51ZShQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKSkpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gMTsKIH0KQEAgLTgwNzYsMTcgKzExNTIzLDIzIEBACiBzdGF0aWMgUHlPYmplY3QqCiB1bmljb2RlX2lzcHJpbnRhYmxlKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHJlZ2lzdGVyIGNvbnN0IFB5X1VOSUNPREUgKnAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShzZWxmKTsKLSAgICByZWdpc3RlciBjb25zdCBQeV9VTklDT0RFICplOworICAgIFB5X3NzaXplX3QgaSwgbGVuZ3RoOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBsZW5ndGggPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoc2VsZik7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHNlbGYpOwogCiAgICAgLyogU2hvcnRjdXQgZm9yIHNpbmdsZSBjaGFyYWN0ZXIgc3RyaW5ncyAqLwotICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZikgPT0gMSAmJiBQeV9VTklDT0RFX0lTUFJJTlRBQkxFKCpwKSkgewotICAgICAgICBQeV9SRVRVUk5fVFJVRTsKLSAgICB9CisgICAgaWYgKGxlbmd0aCA9PSAxKQorICAgICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKAorICAgICAgICAgICAgUHlfVU5JQ09ERV9JU1BSSU5UQUJMRShQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCAwKSkpOwogCi0gICAgZSA9IHAgKyBQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZik7Ci0gICAgd2hpbGUgKHAgPCBlKSB7Ci0gICAgICAgIGlmICghUHlfVU5JQ09ERV9JU1BSSU5UQUJMRShfUHlfVU5JQ09ERV9ORVhUKHAsIGUpKSkgeworICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoIVB5X1VOSUNPREVfSVNQUklOVEFCTEUoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSkpKSB7CiAgICAgICAgICAgICBQeV9SRVRVUk5fRkFMU0U7CiAgICAgICAgIH0KICAgICB9CkBAIC04MTA2LDkgKzExNTU5LDExIEBACiB9CiAKIHN0YXRpYyBQeV9zc2l6ZV90Ci11bmljb2RlX2xlbmd0aChQeVVuaWNvZGVPYmplY3QgKnNlbGYpCit1bmljb2RlX2xlbmd0aChQeU9iamVjdCAqc2VsZikKIHsKLSAgICByZXR1cm4gc2VsZi0+bGVuZ3RoOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZik7CiB9CiAKIFB5RG9jX1NUUlZBUihsanVzdF9fZG9jX18sCkBAIC04MTE4LDIwICsxMTU3MywyMSBAQAogZG9uZSB1c2luZyB0aGUgc3BlY2lmaWVkIGZpbGwgY2hhcmFjdGVyIChkZWZhdWx0IGlzIGEgc3BhY2UpLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotdW5pY29kZV9sanVzdChQeVVuaWNvZGVPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQordW5pY29kZV9sanVzdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlfc3NpemVfdCB3aWR0aDsKLSAgICBQeV9VTklDT0RFIGZpbGxjaGFyID0gJyAnOworICAgIFB5X1VDUzQgZmlsbGNoYXIgPSAnICc7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIm58TyY6bGp1c3QiLCAmd2lkdGgsIGNvbnZlcnRfdWMsICZmaWxsY2hhcikpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgaWYgKHNlbGYtPmxlbmd0aCA+PSB3aWR0aCAmJiBQeVVuaWNvZGVfQ2hlY2tFeGFjdChzZWxmKSkgewotICAgICAgICBQeV9JTkNSRUYoc2VsZik7Ci0gICAgICAgIHJldHVybiAoUHlPYmplY3QqKSBzZWxmOwotICAgIH0KKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJldHVybiAoUHlPYmplY3QqKSBwYWQoc2VsZiwgMCwgd2lkdGggLSBzZWxmLT5sZW5ndGgsIGZpbGxjaGFyKTsKKyAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZikgPj0gd2lkdGgpCisgICAgICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdF91bmNoYW5nZWQoc2VsZik7CisKKyAgICByZXR1cm4gcGFkKHNlbGYsIDAsIHdpZHRoIC0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZiksIGZpbGxjaGFyKTsKIH0KIAogUHlEb2NfU1RSVkFSKGxvd2VyX19kb2NfXywKQEAgLTgxNDAsOSArMTE1OTYsMTMgQEAKIFJldHVybiBhIGNvcHkgb2YgdGhlIHN0cmluZyBTIGNvbnZlcnRlZCB0byBsb3dlcmNhc2UuIik7CiAKIHN0YXRpYyBQeU9iamVjdCoKLXVuaWNvZGVfbG93ZXIoUHlVbmljb2RlT2JqZWN0ICpzZWxmKQordW5pY29kZV9sb3dlcihQeU9iamVjdCAqc2VsZikKIHsKLSAgICByZXR1cm4gZml4dXAoc2VsZiwgZml4bG93ZXIpOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkoc2VsZikpCisgICAgICAgIHJldHVybiBhc2NpaV91cHBlcl9vcl9sb3dlcihzZWxmLCAxKTsKKyAgICByZXR1cm4gY2FzZV9vcGVyYXRpb24oc2VsZiwgZG9fbG93ZXIpOwogfQogCiAjZGVmaW5lIExFRlRTVFJJUCAwCkBAIC04MTU2LDE5ICsxMTYxNiwyNyBAQAogCiAvKiBleHRlcm5hbGx5IHZpc2libGUgZm9yIHN0ci5zdHJpcCh1bmljb2RlKSAqLwogUHlPYmplY3QgKgotX1B5VW5pY29kZV9YU3RyaXAoUHlVbmljb2RlT2JqZWN0ICpzZWxmLCBpbnQgc3RyaXB0eXBlLCBQeU9iamVjdCAqc2Vwb2JqKQorX1B5VW5pY29kZV9YU3RyaXAoUHlPYmplY3QgKnNlbGYsIGludCBzdHJpcHR5cGUsIFB5T2JqZWN0ICpzZXBvYmopCiB7Ci0gICAgUHlfVU5JQ09ERSAqcyA9IFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYpOwotICAgIFB5X3NzaXplX3QgbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpOwotICAgIFB5X1VOSUNPREUgKnNlcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHNlcG9iaik7Ci0gICAgUHlfc3NpemVfdCBzZXBsZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUoc2Vwb2JqKTsKLSAgICBQeV9zc2l6ZV90IGksIGo7CisgICAgdm9pZCAqZGF0YTsKKyAgICBpbnQga2luZDsKKyAgICBQeV9zc2l6ZV90IGksIGosIGxlbjsKKyAgICBCTE9PTV9NQVNLIHNlcG1hc2s7CiAKLSAgICBCTE9PTV9NQVNLIHNlcG1hc2sgPSBtYWtlX2Jsb29tX21hc2soc2VwLCBzZXBsZW4pOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEgfHwgUHlVbmljb2RlX1JFQURZKHNlcG9iaikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKTsKKyAgICBzZXBtYXNrID0gbWFrZV9ibG9vbV9tYXNrKFB5VW5pY29kZV9LSU5EKHNlcG9iaiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfREFUQShzZXBvYmopLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2Vwb2JqKSk7CiAKICAgICBpID0gMDsKICAgICBpZiAoc3RyaXB0eXBlICE9IFJJR0hUU1RSSVApIHsKLSAgICAgICAgd2hpbGUgKGkgPCBsZW4gJiYgQkxPT01fTUVNQkVSKHNlcG1hc2ssIHNbaV0sIHNlcCwgc2VwbGVuKSkgeworICAgICAgICB3aGlsZSAoaSA8IGxlbiAmJgorICAgICAgICAgICAgICAgQkxPT01fTUVNQkVSKHNlcG1hc2ssIFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpLCBzZXBvYmopKSB7CiAgICAgICAgICAgICBpKys7CiAgICAgICAgIH0KICAgICB9CkBAIC04MTc3LDI4ICsxMTY0NSw3MCBAQAogICAgIGlmIChzdHJpcHR5cGUgIT0gTEVGVFNUUklQKSB7CiAgICAgICAgIGRvIHsKICAgICAgICAgICAgIGotLTsKLSAgICAgICAgfSB3aGlsZSAoaiA+PSBpICYmIEJMT09NX01FTUJFUihzZXBtYXNrLCBzW2pdLCBzZXAsIHNlcGxlbikpOworICAgICAgICB9IHdoaWxlIChqID49IGkgJiYKKyAgICAgICAgICAgICAgICAgQkxPT01fTUVNQkVSKHNlcG1hc2ssIFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGopLCBzZXBvYmopKTsKICAgICAgICAgaisrOwogICAgIH0KIAotICAgIGlmIChpID09IDAgJiYgaiA9PSBsZW4gJiYgUHlVbmljb2RlX0NoZWNrRXhhY3Qoc2VsZikpIHsKLSAgICAgICAgUHlfSU5DUkVGKHNlbGYpOwotICAgICAgICByZXR1cm4gKFB5T2JqZWN0KilzZWxmOwotICAgIH0KLSAgICBlbHNlCi0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocytpLCBqLWkpOworICAgIHJldHVybiBQeVVuaWNvZGVfU3Vic3RyaW5nKHNlbGYsIGksIGopOwogfQogCitQeU9iamVjdCoKK1B5VW5pY29kZV9TdWJzdHJpbmcoUHlPYmplY3QgKnNlbGYsIFB5X3NzaXplX3Qgc3RhcnQsIFB5X3NzaXplX3QgZW5kKQoreworICAgIHVuc2lnbmVkIGNoYXIgKmRhdGE7CisgICAgaW50IGtpbmQ7CisgICAgUHlfc3NpemVfdCBsZW5ndGg7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGxlbmd0aCA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpOworICAgIGVuZCA9IFB5X01JTihlbmQsIGxlbmd0aCk7CisKKyAgICBpZiAoc3RhcnQgPT0gMCAmJiBlbmQgPT0gbGVuZ3RoKQorICAgICAgICByZXR1cm4gdW5pY29kZV9yZXN1bHRfdW5jaGFuZ2VkKHNlbGYpOworCisgICAgaWYgKHN0YXJ0IDwgMCB8fCBlbmQgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbmRleEVycm9yLCAic3RyaW5nIGluZGV4IG91dCBvZiByYW5nZSIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKHN0YXJ0ID49IGxlbmd0aCB8fCBlbmQgPCBzdGFydCkgeworICAgICAgICBQeV9JTkNSRUYodW5pY29kZV9lbXB0eSk7CisgICAgICAgIHJldHVybiB1bmljb2RlX2VtcHR5OworICAgIH0KKworICAgIGxlbmd0aCA9IGVuZCAtIHN0YXJ0OworICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkoc2VsZikpIHsKKyAgICAgICAgZGF0YSA9IFB5VW5pY29kZV8xQllURV9EQVRBKHNlbGYpOworICAgICAgICByZXR1cm4gX1B5VW5pY29kZV9Gcm9tQVNDSUkoKGNoYXIqKShkYXRhICsgc3RhcnQpLCBsZW5ndGgpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlbGYpOworICAgICAgICBkYXRhID0gUHlVbmljb2RlXzFCWVRFX0RBVEEoc2VsZik7CisgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUtpbmRBbmREYXRhKGtpbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgKyBraW5kICogc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCk7CisgICAgfQorfQogCiBzdGF0aWMgUHlPYmplY3QgKgotZG9fc3RyaXAoUHlVbmljb2RlT2JqZWN0ICpzZWxmLCBpbnQgc3RyaXB0eXBlKQorZG9fc3RyaXAoUHlPYmplY3QgKnNlbGYsIGludCBzdHJpcHR5cGUpCiB7Ci0gICAgUHlfVU5JQ09ERSAqcyA9IFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYpOwotICAgIFB5X3NzaXplX3QgbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpLCBpLCBqOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CisgICAgUHlfc3NpemVfdCBsZW4sIGksIGo7CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChzZWxmKTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoc2VsZik7CisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZik7CiAKICAgICBpID0gMDsKICAgICBpZiAoc3RyaXB0eXBlICE9IFJJR0hUU1RSSVApIHsKLSAgICAgICAgd2hpbGUgKGkgPCBsZW4gJiYgUHlfVU5JQ09ERV9JU1NQQUNFKHNbaV0pKSB7CisgICAgICAgIHdoaWxlIChpIDwgbGVuICYmIFB5X1VOSUNPREVfSVNTUEFDRShQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKSkpIHsKICAgICAgICAgICAgIGkrKzsKICAgICAgICAgfQogICAgIH0KQEAgLTgyMDcsMjEgKzExNzE3LDE2IEBACiAgICAgaWYgKHN0cmlwdHlwZSAhPSBMRUZUU1RSSVApIHsKICAgICAgICAgZG8gewogICAgICAgICAgICAgai0tOwotICAgICAgICB9IHdoaWxlIChqID49IGkgJiYgUHlfVU5JQ09ERV9JU1NQQUNFKHNbal0pKTsKKyAgICAgICAgfSB3aGlsZSAoaiA+PSBpICYmIFB5X1VOSUNPREVfSVNTUEFDRShQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBqKSkpOwogICAgICAgICBqKys7CiAgICAgfQogCi0gICAgaWYgKGkgPT0gMCAmJiBqID09IGxlbiAmJiBQeVVuaWNvZGVfQ2hlY2tFeGFjdChzZWxmKSkgewotICAgICAgICBQeV9JTkNSRUYoc2VsZik7Ci0gICAgICAgIHJldHVybiAoUHlPYmplY3QqKXNlbGY7Ci0gICAgfQotICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tVW5pY29kZShzK2ksIGotaSk7CisgICAgcmV0dXJuIFB5VW5pY29kZV9TdWJzdHJpbmcoc2VsZiwgaSwgaik7CiB9CiAKIAogc3RhdGljIFB5T2JqZWN0ICoKLWRvX2FyZ3N0cmlwKFB5VW5pY29kZU9iamVjdCAqc2VsZiwgaW50IHN0cmlwdHlwZSwgUHlPYmplY3QgKmFyZ3MpCitkb19hcmdzdHJpcChQeU9iamVjdCAqc2VsZiwgaW50IHN0cmlwdHlwZSwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlPYmplY3QgKnNlcCA9IE5VTEw7CiAKQEAgLTgyNTEsNyArMTE3NTYsNyBAQAogSWYgY2hhcnMgaXMgZ2l2ZW4gYW5kIG5vdCBOb25lLCByZW1vdmUgY2hhcmFjdGVycyBpbiBjaGFycyBpbnN0ZWFkLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotdW5pY29kZV9zdHJpcChQeVVuaWNvZGVPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQordW5pY29kZV9zdHJpcChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgaWYgKFB5VHVwbGVfR0VUX1NJWkUoYXJncykgPT0gMCkKICAgICAgICAgcmV0dXJuIGRvX3N0cmlwKHNlbGYsIEJPVEhTVFJJUCk7IC8qIENvbW1vbiBjYXNlICovCkBAIC04MjY3LDcgKzExNzcyLDcgQEAKIElmIGNoYXJzIGlzIGdpdmVuIGFuZCBub3QgTm9uZSwgcmVtb3ZlIGNoYXJhY3RlcnMgaW4gY2hhcnMgaW5zdGVhZC4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXVuaWNvZGVfbHN0cmlwKFB5VW5pY29kZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit1bmljb2RlX2xzdHJpcChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgaWYgKFB5VHVwbGVfR0VUX1NJWkUoYXJncykgPT0gMCkKICAgICAgICAgcmV0dXJuIGRvX3N0cmlwKHNlbGYsIExFRlRTVFJJUCk7IC8qIENvbW1vbiBjYXNlICovCkBAIC04MjgzLDcgKzExNzg4LDcgQEAKIElmIGNoYXJzIGlzIGdpdmVuIGFuZCBub3QgTm9uZSwgcmVtb3ZlIGNoYXJhY3RlcnMgaW4gY2hhcnMgaW5zdGVhZC4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXVuaWNvZGVfcnN0cmlwKFB5VW5pY29kZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit1bmljb2RlX3JzdHJpcChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgaWYgKFB5VHVwbGVfR0VUX1NJWkUoYXJncykgPT0gMCkKICAgICAgICAgcmV0dXJuIGRvX3N0cmlwKHNlbGYsIFJJR0hUU1RSSVApOyAvKiBDb21tb24gY2FzZSAqLwpAQCAtODI5Myw2NCArMTE3OTgsNzYgQEAKIAogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX3JlcGVhdChQeVVuaWNvZGVPYmplY3QgKnN0ciwgUHlfc3NpemVfdCBsZW4pCit1bmljb2RlX3JlcGVhdChQeU9iamVjdCAqc3RyLCBQeV9zc2l6ZV90IGxlbikKIHsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnU7Ci0gICAgUHlfVU5JQ09ERSAqcDsKLSAgICBQeV9zc2l6ZV90IG5jaGFyczsKLSAgICBzaXplX3QgbmJ5dGVzOworICAgIFB5T2JqZWN0ICp1OworICAgIFB5X3NzaXplX3QgbmNoYXJzLCBuOwogCiAgICAgaWYgKGxlbiA8IDEpIHsKICAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGVfZW1wdHkpOwotICAgICAgICByZXR1cm4gKFB5T2JqZWN0ICopdW5pY29kZV9lbXB0eTsKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfZW1wdHk7CiAgICAgfQogCi0gICAgaWYgKGxlbiA9PSAxICYmIFB5VW5pY29kZV9DaGVja0V4YWN0KHN0cikpIHsKLSAgICAgICAgLyogbm8gcmVwZWF0LCByZXR1cm4gb3JpZ2luYWwgc3RyaW5nICovCi0gICAgICAgIFB5X0lOQ1JFRihzdHIpOwotICAgICAgICByZXR1cm4gKFB5T2JqZWN0Kikgc3RyOwotICAgIH0KKyAgICAvKiBubyByZXBlYXQsIHJldHVybiBvcmlnaW5hbCBzdHJpbmcgKi8KKyAgICBpZiAobGVuID09IDEpCisgICAgICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdF91bmNoYW5nZWQoc3RyKTsKIAotICAgIC8qIGVuc3VyZSAjIG9mIGNoYXJzIG5lZWRlZCBkb2Vzbid0IG92ZXJmbG93IGludCBhbmQgIyBvZiBieXRlcwotICAgICAqIG5lZWRlZCBkb2Vzbid0IG92ZXJmbG93IHNpemVfdAotICAgICAqLwotICAgIG5jaGFycyA9IGxlbiAqIHN0ci0+bGVuZ3RoOwotICAgIGlmIChuY2hhcnMgLyBsZW4gIT0gc3RyLT5sZW5ndGgpIHsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN0cikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikgPiBQWV9TU0laRV9UX01BWCAvIGxlbikgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJyZXBlYXRlZCBzdHJpbmcgaXMgdG9vIGxvbmciKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIG5ieXRlcyA9IChuY2hhcnMgKyAxKSAqIHNpemVvZihQeV9VTklDT0RFKTsKLSAgICBpZiAobmJ5dGVzIC8gc2l6ZW9mKFB5X1VOSUNPREUpICE9IChzaXplX3QpKG5jaGFycyArIDEpKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgInJlcGVhdGVkIHN0cmluZyBpcyB0b28gbG9uZyIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgdSA9IF9QeVVuaWNvZGVfTmV3KG5jaGFycyk7CisgICAgbmNoYXJzID0gbGVuICogUHlVbmljb2RlX0dFVF9MRU5HVEgoc3RyKTsKKworICAgIHUgPSBQeVVuaWNvZGVfTmV3KG5jaGFycywgUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHN0cikpOwogICAgIGlmICghdSkKICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgYXNzZXJ0KFB5VW5pY29kZV9LSU5EKHUpID09IFB5VW5pY29kZV9LSU5EKHN0cikpOwogCi0gICAgcCA9IHUtPnN0cjsKLQotICAgIGlmIChzdHItPmxlbmd0aCA9PSAxKSB7Ci0gICAgICAgIFB5X1VOSUNPREVfRklMTChwLCBzdHItPnN0clswXSwgbGVuKTsKLSAgICB9IGVsc2UgewotICAgICAgICBQeV9zc2l6ZV90IGRvbmUgPSBzdHItPmxlbmd0aDsgLyogbnVtYmVyIG9mIGNoYXJhY3RlcnMgY29waWVkIHRoaXMgZmFyICovCi0gICAgICAgIFB5X1VOSUNPREVfQ09QWShwLCBzdHItPnN0ciwgc3RyLT5sZW5ndGgpOworICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpID09IDEpIHsKKyAgICAgICAgY29uc3QgaW50IGtpbmQgPSBQeVVuaWNvZGVfS0lORChzdHIpOworICAgICAgICBjb25zdCBQeV9VQ1M0IGZpbGxfY2hhciA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIFB5VW5pY29kZV9EQVRBKHN0ciksIDApOworICAgICAgICBpZiAoa2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCkgeworICAgICAgICAgICAgdm9pZCAqdG8gPSBQeVVuaWNvZGVfREFUQSh1KTsKKyAgICAgICAgICAgIG1lbXNldCh0bywgKHVuc2lnbmVkIGNoYXIpZmlsbF9jaGFyLCBsZW4pOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQpIHsKKyAgICAgICAgICAgIFB5X1VDUzIgKnVjczIgPSBQeVVuaWNvZGVfMkJZVEVfREFUQSh1KTsKKyAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBsZW47ICsrbikKKyAgICAgICAgICAgICAgICB1Y3MyW25dID0gZmlsbF9jaGFyOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgUHlfVUNTNCAqdWNzNCA9IFB5VW5pY29kZV80QllURV9EQVRBKHUpOworICAgICAgICAgICAgYXNzZXJ0KGtpbmQgPT0gUHlVbmljb2RlXzRCWVRFX0tJTkQpOworICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGxlbjsgKytuKQorICAgICAgICAgICAgICAgIHVjczRbbl0gPSBmaWxsX2NoYXI7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIC8qIG51bWJlciBvZiBjaGFyYWN0ZXJzIGNvcGllZCB0aGlzIGZhciAqLworICAgICAgICBQeV9zc2l6ZV90IGRvbmUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpOworICAgICAgICBjb25zdCBQeV9zc2l6ZV90IGNoYXJfc2l6ZSA9IFB5VW5pY29kZV9LSU5EKHN0cik7CisgICAgICAgIGNoYXIgKnRvID0gKGNoYXIgKikgUHlVbmljb2RlX0RBVEEodSk7CisgICAgICAgIFB5X01FTUNQWSh0bywgUHlVbmljb2RlX0RBVEEoc3RyKSwKKyAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cikgKiBjaGFyX3NpemUpOwogICAgICAgICB3aGlsZSAoZG9uZSA8IG5jaGFycykgewotICAgICAgICAgICAgUHlfc3NpemVfdCBuID0gKGRvbmUgPD0gbmNoYXJzLWRvbmUpID8gZG9uZSA6IG5jaGFycy1kb25lOwotICAgICAgICAgICAgUHlfVU5JQ09ERV9DT1BZKHArZG9uZSwgcCwgbik7CisgICAgICAgICAgICBuID0gKGRvbmUgPD0gbmNoYXJzLWRvbmUpID8gZG9uZSA6IG5jaGFycy1kb25lOworICAgICAgICAgICAgUHlfTUVNQ1BZKHRvICsgKGRvbmUgKiBjaGFyX3NpemUpLCB0bywgbiAqIGNoYXJfc2l6ZSk7CiAgICAgICAgICAgICBkb25lICs9IG47CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gKFB5T2JqZWN0KikgdTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHUsIDEpKTsKKyAgICByZXR1cm4gdTsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9SZXBsYWNlKFB5T2JqZWN0ICpvYmosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnN1Ym9iaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqcmVwbG9iaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG1heGNvdW50KQorUHlPYmplY3QgKgorUHlVbmljb2RlX1JlcGxhY2UoUHlPYmplY3QgKm9iaiwKKyAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpzdWJvYmosCisgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqcmVwbG9iaiwKKyAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbWF4Y291bnQpCiB7CiAgICAgUHlPYmplY3QgKnNlbGY7CiAgICAgUHlPYmplY3QgKnN0cjE7CkBAIC04MzcxLDEwICsxMTg4OCwxMiBAQAogICAgICAgICBQeV9ERUNSRUYoc3RyMSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICByZXN1bHQgPSByZXBsYWNlKChQeVVuaWNvZGVPYmplY3QgKilzZWxmLAotICAgICAgICAgICAgICAgICAgICAgKFB5VW5pY29kZU9iamVjdCAqKXN0cjEsCi0gICAgICAgICAgICAgICAgICAgICAoUHlVbmljb2RlT2JqZWN0ICopc3RyMiwKLSAgICAgICAgICAgICAgICAgICAgIG1heGNvdW50KTsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xIHx8CisgICAgICAgIFB5VW5pY29kZV9SRUFEWShzdHIxKSA9PSAtMSB8fAorICAgICAgICBQeVVuaWNvZGVfUkVBRFkoc3RyMikgPT0gLTEpCisgICAgICAgIHJlc3VsdCA9IE5VTEw7CisgICAgZWxzZQorICAgICAgICByZXN1bHQgPSByZXBsYWNlKHNlbGYsIHN0cjEsIHN0cjIsIG1heGNvdW50KTsKICAgICBQeV9ERUNSRUYoc2VsZik7CiAgICAgUHlfREVDUkVGKHN0cjEpOwogICAgIFB5X0RFQ1JFRihzdHIyKTsKQEAgLTgzODksMTc3ICsxMTkwOCwxODEgQEAKIGdpdmVuLCBvbmx5IHRoZSBmaXJzdCBjb3VudCBvY2N1cnJlbmNlcyBhcmUgcmVwbGFjZWQuIik7CiAKIHN0YXRpYyBQeU9iamVjdCoKLXVuaWNvZGVfcmVwbGFjZShQeVVuaWNvZGVPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQordW5pY29kZV9yZXBsYWNlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnN0cjE7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICpzdHIyOworICAgIFB5T2JqZWN0ICpzdHIxOworICAgIFB5T2JqZWN0ICpzdHIyOwogICAgIFB5X3NzaXplX3QgbWF4Y291bnQgPSAtMTsKICAgICBQeU9iamVjdCAqcmVzdWx0OwogCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPT3xuOnJlcGxhY2UiLCAmc3RyMSwgJnN0cjIsICZtYXhjb3VudCkpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHN0cjEgPSAoUHlVbmljb2RlT2JqZWN0ICopUHlVbmljb2RlX0Zyb21PYmplY3QoKFB5T2JqZWN0ICopc3RyMSk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgc3RyMSA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cjEpOwogICAgIGlmIChzdHIxID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHN0cjIgPSAoUHlVbmljb2RlT2JqZWN0ICopUHlVbmljb2RlX0Zyb21PYmplY3QoKFB5T2JqZWN0ICopc3RyMik7CisgICAgc3RyMiA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cjIpOwogICAgIGlmIChzdHIyID09IE5VTEwpIHsKICAgICAgICAgUHlfREVDUkVGKHN0cjEpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0KLSAgICByZXN1bHQgPSByZXBsYWNlKHNlbGYsIHN0cjEsIHN0cjIsIG1heGNvdW50KTsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN0cjEpID09IC0xIHx8IFB5VW5pY29kZV9SRUFEWShzdHIyKSA9PSAtMSkKKyAgICAgICAgcmVzdWx0ID0gTlVMTDsKKyAgICBlbHNlCisgICAgICAgIHJlc3VsdCA9IHJlcGxhY2Uoc2VsZiwgc3RyMSwgc3RyMiwgbWF4Y291bnQpOwogCiAgICAgUHlfREVDUkVGKHN0cjEpOwogICAgIFB5X0RFQ1JFRihzdHIyKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMKLVB5T2JqZWN0ICp1bmljb2RlX3JlcHIoUHlPYmplY3QgKnVuaWNvZGUpCitzdGF0aWMgUHlPYmplY3QgKgordW5pY29kZV9yZXByKFB5T2JqZWN0ICp1bmljb2RlKQogewogICAgIFB5T2JqZWN0ICpyZXByOwotICAgIFB5X1VOSUNPREUgKnA7Ci0gICAgUHlfVU5JQ09ERSAqcyA9IFB5VW5pY29kZV9BU19VTklDT0RFKHVuaWNvZGUpOwotICAgIFB5X3NzaXplX3Qgc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRSh1bmljb2RlKTsKKyAgICBQeV9zc2l6ZV90IGlzaXplOworICAgIFB5X3NzaXplX3Qgb3NpemUsIHNxdW90ZSwgZHF1b3RlLCBpLCBvOworICAgIFB5X1VDUzQgbWF4LCBxdW90ZTsKKyAgICBpbnQgaWtpbmQsIG9raW5kOworICAgIHZvaWQgKmlkYXRhLCAqb2RhdGE7CiAKLSAgICAvKiBYWFgobm5vcndpdHopOiByYXRoZXIgdGhhbiBvdmVyLWFsbG9jYXRpbmcsIGl0IHdvdWxkIGJlCi0gICAgICAgYmV0dGVyIHRvIGNob29zZSBhIGRpZmZlcmVudCBzY2hlbWUuICBQZXJoYXBzIHNjYW4gdGhlCi0gICAgICAgZmlyc3QgTi1jaGFycyBvZiB0aGUgc3RyaW5nIGFuZCBhbGxvY2F0ZSBiYXNlZCBvbiB0aGF0IHNpemUuCi0gICAgKi8KLSAgICAvKiBJbml0aWFsIGFsbG9jYXRpb24gaXMgYmFzZWQgb24gdGhlIGxvbmdlc3QtcG9zc2libGUgdW5pY2hyCi0gICAgICAgZXNjYXBlLgotCi0gICAgICAgSW4gd2lkZSAoVVRGLTMyKSBidWlsZHMgJ1xVMDB4eHh4eHgnIGlzIDEwIGNoYXJzIHBlciBzb3VyY2UKLSAgICAgICB1bmljaHIsIHNvIGluIHRoaXMgY2FzZSBpdCdzIHRoZSBsb25nZXN0IHVuaWNociBlc2NhcGUuIEluCi0gICAgICAgbmFycm93IChVVEYtMTYpIGJ1aWxkcyB0aGlzIGlzIGZpdmUgY2hhcnMgcGVyIHNvdXJjZSB1bmljaHIKLSAgICAgICBzaW5jZSB0aGVyZSBhcmUgdHdvIHVuaWNocnMgaW4gdGhlIHN1cnJvZ2F0ZSBwYWlyLCBzbyBpbiBuYXJyb3cKLSAgICAgICAoVVRGLTE2KSBidWlsZHMgaXQncyBub3QgdGhlIGxvbmdlc3QgdW5pY2hyIGVzY2FwZS4KLQotICAgICAgIEluIHdpZGUgb3IgbmFycm93IGJ1aWxkcyAnXHV4eHh4JyBpcyA2IGNoYXJzIHBlciBzb3VyY2UgdW5pY2hyLAotICAgICAgIHNvIGluIHRoZSBuYXJyb3cgKFVURi0xNikgYnVpbGQgY2FzZSBpdCdzIHRoZSBsb25nZXN0IHVuaWNocgotICAgICAgIGVzY2FwZS4KLSAgICAqLwotCi0gICAgcmVwciA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAvKiBxdW90ZXMgKi8KLSNpZmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMTAqc2l6ZQotI2Vsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgNipzaXplCi0jZW5kaWYKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgMSk7Ci0gICAgaWYgKHJlcHIgPT0gTlVMTCkKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHVuaWNvZGUpID09IC0xKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXByKTsKKyAgICBpc2l6ZSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVuaWNvZGUpOworICAgIGlkYXRhID0gUHlVbmljb2RlX0RBVEEodW5pY29kZSk7CiAKLSAgICAvKiBBZGQgcXVvdGUgKi8KLSAgICAqcCsrID0gKGZpbmRjaGFyKHMsIHNpemUsICdcJycpICYmCi0gICAgICAgICAgICAhZmluZGNoYXIocywgc2l6ZSwgJyInKSkgPyAnIicgOiAnXCcnOwotICAgIHdoaWxlIChzaXplLS0gPiAwKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgY2ggPSAqcysrOworICAgIC8qIENvbXB1dGUgbGVuZ3RoIG9mIG91dHB1dCwgcXVvdGUgY2hhcmFjdGVycywgYW5kCisgICAgICAgbWF4aW11bSBjaGFyYWN0ZXIgKi8KKyAgICBvc2l6ZSA9IDI7IC8qIHF1b3RlcyAqLworICAgIG1heCA9IDEyNzsKKyAgICBzcXVvdGUgPSBkcXVvdGUgPSAwOworICAgIGlraW5kID0gUHlVbmljb2RlX0tJTkQodW5pY29kZSk7CisgICAgZm9yIChpID0gMDsgaSA8IGlzaXplOyBpKyspIHsKKyAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEKGlraW5kLCBpZGF0YSwgaSk7CisgICAgICAgIHN3aXRjaCAoY2gpIHsKKyAgICAgICAgY2FzZSAnXCcnOiBzcXVvdGUrKzsgb3NpemUrKzsgYnJlYWs7CisgICAgICAgIGNhc2UgJyInOiAgZHF1b3RlKys7IG9zaXplKys7IGJyZWFrOworICAgICAgICBjYXNlICdcXCc6IGNhc2UgJ1x0JzogY2FzZSAnXHInOiBjYXNlICdcbic6CisgICAgICAgICAgICBvc2l6ZSArPSAyOyBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8qIEZhc3QtcGF0aCBBU0NJSSAqLworICAgICAgICAgICAgaWYgKGNoIDwgJyAnIHx8IGNoID09IDB4N2YpCisgICAgICAgICAgICAgICAgb3NpemUgKz0gNDsgLyogXHhISCAqLworICAgICAgICAgICAgZWxzZSBpZiAoY2ggPCAweDdmKQorICAgICAgICAgICAgICAgIG9zaXplKys7CisgICAgICAgICAgICBlbHNlIGlmIChQeV9VTklDT0RFX0lTUFJJTlRBQkxFKGNoKSkgeworICAgICAgICAgICAgICAgIG9zaXplKys7CisgICAgICAgICAgICAgICAgbWF4ID0gY2ggPiBtYXggPyBjaCA6IG1heDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGNoIDwgMHgxMDApCisgICAgICAgICAgICAgICAgb3NpemUgKz0gNDsgLyogXHhISCAqLworICAgICAgICAgICAgZWxzZSBpZiAoY2ggPCAweDEwMDAwKQorICAgICAgICAgICAgICAgIG9zaXplICs9IDY7IC8qIFx1SEhISCAqLworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9zaXplICs9IDEwOyAvKiBcdUhISEhISEhIICovCisgICAgICAgIH0KKyAgICB9CisKKyAgICBxdW90ZSA9ICdcJyc7CisgICAgaWYgKHNxdW90ZSkgeworICAgICAgICBpZiAoZHF1b3RlKQorICAgICAgICAgICAgLyogQm90aCBzcXVvdGUgYW5kIGRxdW90ZSBwcmVzZW50LiBVc2Ugc3F1b3RlLAorICAgICAgICAgICAgICAgYW5kIGVzY2FwZSB0aGVtICovCisgICAgICAgICAgICBvc2l6ZSArPSBzcXVvdGU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHF1b3RlID0gJyInOworICAgIH0KKworICAgIHJlcHIgPSBQeVVuaWNvZGVfTmV3KG9zaXplLCBtYXgpOworICAgIGlmIChyZXByID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIG9raW5kID0gUHlVbmljb2RlX0tJTkQocmVwcik7CisgICAgb2RhdGEgPSBQeVVuaWNvZGVfREFUQShyZXByKTsKKworICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIDAsIHF1b3RlKTsKKyAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvc2l6ZS0xLCBxdW90ZSk7CisKKyAgICBmb3IgKGkgPSAwLCBvID0gMTsgaSA8IGlzaXplOyBpKyspIHsKKyAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEKGlraW5kLCBpZGF0YSwgaSk7CiAKICAgICAgICAgLyogRXNjYXBlIHF1b3RlcyBhbmQgYmFja3NsYXNoZXMgKi8KLSAgICAgICAgaWYgKChjaCA9PSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXByKVswXSkgfHwgKGNoID09ICdcXCcpKSB7Ci0gICAgICAgICAgICAqcCsrID0gJ1xcJzsKLSAgICAgICAgICAgICpwKysgPSBjaDsKKyAgICAgICAgaWYgKChjaCA9PSBxdW90ZSkgfHwgKGNoID09ICdcXCcpKSB7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICdcXCcpOworICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBjaCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIE1hcCBzcGVjaWFsIHdoaXRlc3BhY2UgdG8gJ1x0JywgXG4nLCAnXHInICovCiAgICAgICAgIGlmIChjaCA9PSAnXHQnKSB7Ci0gICAgICAgICAgICAqcCsrID0gJ1xcJzsKLSAgICAgICAgICAgICpwKysgPSAndCc7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICdcXCcpOworICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAndCcpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKGNoID09ICdcbicpIHsKLSAgICAgICAgICAgICpwKysgPSAnXFwnOwotICAgICAgICAgICAgKnArKyA9ICduJzsKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ1xcJyk7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICduJyk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoY2ggPT0gJ1xyJykgewotICAgICAgICAgICAgKnArKyA9ICdcXCc7Ci0gICAgICAgICAgICAqcCsrID0gJ3InOworICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCAnXFwnKTsKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ3InKTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIE1hcCBub24tcHJpbnRhYmxlIFVTIEFTQ0lJIHRvICdceGhoJyAqLwogICAgICAgICBlbHNlIGlmIChjaCA8ICcgJyB8fCBjaCA9PSAweDdGKSB7Ci0gICAgICAgICAgICAqcCsrID0gJ1xcJzsKLSAgICAgICAgICAgICpwKysgPSAneCc7Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyhjaCA+PiA0KSAmIDB4MDAwRl07Ci0gICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzW2NoICYgMHgwMDBGXTsKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ1xcJyk7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICd4Jyk7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gNCkgJiAweDAwMEZdKTsKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzW2NoICYgMHgwMDBGXSk7CiAgICAgICAgIH0KIAogICAgICAgICAvKiBDb3B5IEFTQ0lJIGNoYXJhY3RlcnMgYXMtaXMgKi8KICAgICAgICAgZWxzZSBpZiAoY2ggPCAweDdGKSB7Ci0gICAgICAgICAgICAqcCsrID0gY2g7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIGNoKTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIE5vbi1BU0NJSSBjaGFyYWN0ZXJzICovCiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgUHlfVUNTNCB1Y3MgPSBjaDsKLQotI2lmbmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgICAgIFB5X1VOSUNPREUgY2gyID0gMDsKLSAgICAgICAgICAgIC8qIEdldCBjb2RlIHBvaW50IGZyb20gc3Vycm9nYXRlIHBhaXIgKi8KLSAgICAgICAgICAgIGlmIChzaXplID4gMCkgewotICAgICAgICAgICAgICAgIGNoMiA9ICpzOwotICAgICAgICAgICAgICAgIGlmIChjaCA+PSAweEQ4MDAgJiYgY2ggPCAweERDMDAgJiYgY2gyID49IDB4REMwMAotICAgICAgICAgICAgICAgICAgICAmJiBjaDIgPD0gMHhERkZGKSB7Ci0gICAgICAgICAgICAgICAgICAgIHVjcyA9ICgoKGNoICYgMHgwM0ZGKSA8PCAxMCkgfCAoY2gyICYgMHgwM0ZGKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICsgMHgwMDAxMDAwMDsKLSAgICAgICAgICAgICAgICAgICAgcysrOwotICAgICAgICAgICAgICAgICAgICBzaXplLS07Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotI2VuZGlmCiAgICAgICAgICAgICAvKiBNYXAgVW5pY29kZSB3aGl0ZXNwYWNlIGFuZCBjb250cm9sIGNoYXJhY3RlcnMKICAgICAgICAgICAgICAgIChjYXRlZ29yaWVzIFoqIGFuZCBDKiBleGNlcHQgQVNDSUkgc3BhY2UpCiAgICAgICAgICAgICAqLwotICAgICAgICAgICAgaWYgKCFQeV9VTklDT0RFX0lTUFJJTlRBQkxFKHVjcykpIHsKKyAgICAgICAgICAgIGlmICghUHlfVU5JQ09ERV9JU1BSSU5UQUJMRShjaCkpIHsKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICdcXCcpOwogICAgICAgICAgICAgICAgIC8qIE1hcCA4LWJpdCBjaGFyYWN0ZXJzIHRvICdceGhoJyAqLwotICAgICAgICAgICAgICAgIGlmICh1Y3MgPD0gMHhmZikgewotICAgICAgICAgICAgICAgICAgICAqcCsrID0gJ1xcJzsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9ICd4JzsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1soY2ggPj4gNCkgJiAweDAwMEZdOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzW2NoICYgMHgwMDBGXTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgLyogTWFwIDIxLWJpdCBjaGFyYWN0ZXJzIHRvICdcVTAweHh4eHh4JyAqLwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKHVjcyA+PSAweDEwMDAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSAnXFwnOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gJ1UnOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gMjgpICYgMHgwMDAwMDAwRl07Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiAyNCkgJiAweDAwMDAwMDBGXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDIwKSAmIDB4MDAwMDAwMEZdOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gMTYpICYgMHgwMDAwMDAwRl07Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiAxMikgJiAweDAwMDAwMDBGXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDgpICYgMHgwMDAwMDAwRl07Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSBoZXhkaWdpdHNbKHVjcyA+PiA0KSAmIDB4MDAwMDAwMEZdOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzW3VjcyAmIDB4MDAwMDAwMEZdOworICAgICAgICAgICAgICAgIGlmIChjaCA8PSAweGZmKSB7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgJ3gnKTsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDQpICYgMHgwMDBGXSk7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzW2NoICYgMHgwMDBGXSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIC8qIE1hcCAxNi1iaXQgY2hhcmFjdGVycyB0byAnXHV4eHh4JyAqLworICAgICAgICAgICAgICAgIGVsc2UgaWYgKGNoIDw9IDB4ZmZmZikgeworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICd1Jyk7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAxMikgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDgpICYgMHhGXSk7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiA0KSAmIDB4Rl0pOworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1tjaCAmIDB4Rl0pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvKiBNYXAgMjEtYml0IGNoYXJhY3RlcnMgdG8gJ1xVMDB4eHh4eHgnICovCiAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICpwKysgPSAnXFwnOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gJ3UnOwotICAgICAgICAgICAgICAgICAgICAqcCsrID0gaGV4ZGlnaXRzWyh1Y3MgPj4gMTIpICYgMHgwMDBGXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDgpICYgMHgwMDBGXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1sodWNzID4+IDQpICYgMHgwMDBGXTsKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGhleGRpZ2l0c1t1Y3MgJiAweDAwMEZdOworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssICdVJyk7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAyOCkgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDI0KSAmIDB4Rl0pOworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gMjApICYgMHhGXSk7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzWyhjaCA+PiAxNikgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDEyKSAmIDB4Rl0pOworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUob2tpbmQsIG9kYXRhLCBvKyssIFB5X2hleGRpZ2l0c1soY2ggPj4gOCkgJiAweEZdKTsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKG9raW5kLCBvZGF0YSwgbysrLCBQeV9oZXhkaWdpdHNbKGNoID4+IDQpICYgMHhGXSk7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgUHlfaGV4ZGlnaXRzW2NoICYgMHhGXSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICAgICAgLyogQ29weSBjaGFyYWN0ZXJzIGFzLWlzICovCiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAqcCsrID0gY2g7Ci0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotICAgICAgICAgICAgICAgIGlmICh1Y3MgPj0gMHgxMDAwMCkKLSAgICAgICAgICAgICAgICAgICAgKnArKyA9IGNoMjsKLSNlbmRpZgorICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShva2luZCwgb2RhdGEsIG8rKywgY2gpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQotICAgIC8qIEFkZCBxdW90ZSAqLwotICAgICpwKysgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXByKVswXTsKLQotICAgICpwID0gJ1wwJzsKLSAgICBQeVVuaWNvZGVfUmVzaXplKCZyZXByLCBwIC0gUHlVbmljb2RlX0FTX1VOSUNPREUocmVwcikpOworICAgIC8qIENsb3NpbmcgcXVvdGUgYWxyZWFkeSBhZGRlZCBhdCB0aGUgYmVnaW5uaW5nICovCisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeShyZXByLCAxKSk7CiAgICAgcmV0dXJuIHJlcHI7CiB9CiAKQEAgLTg1NzMsOSArMTIwOTYsOSBAQAogUmV0dXJuIC0xIG9uIGZhaWx1cmUuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi11bmljb2RlX3JmaW5kKFB5VW5pY29kZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit1bmljb2RlX3JmaW5kKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnN1YnN0cmluZzsKKyAgICBQeU9iamVjdCAqc3Vic3RyaW5nOwogICAgIFB5X3NzaXplX3Qgc3RhcnQ7CiAgICAgUHlfc3NpemVfdCBlbmQ7CiAgICAgUHlfc3NpemVfdCByZXN1bHQ7CkBAIC04NTg0LDE0ICsxMjEwNywxOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3RhcnQsICZlbmQpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJlc3VsdCA9IHN0cmluZ2xpYl9yZmluZF9zbGljZSgKLSAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUoc2VsZiksIFB5VW5pY29kZV9HRVRfU0laRShzZWxmKSwKLSAgICAgICAgUHlVbmljb2RlX0FTX1VOSUNPREUoc3Vic3RyaW5nKSwgUHlVbmljb2RlX0dFVF9TSVpFKHN1YnN0cmluZyksCi0gICAgICAgIHN0YXJ0LCBlbmQKLSAgICAgICAgKTsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN1YnN0cmluZykgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmVzdWx0ID0gYW55X2ZpbmRfc2xpY2UoLTEsIHNlbGYsIHN1YnN0cmluZywgc3RhcnQsIGVuZCk7CiAKICAgICBQeV9ERUNSRUYoc3Vic3RyaW5nKTsKIAorICAgIGlmIChyZXN1bHQgPT0gLTIpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChyZXN1bHQpOwogfQogCkBAIC04NjAxLDkgKzEyMTI4LDkgQEAKIExpa2UgUy5yZmluZCgpIGJ1dCByYWlzZSBWYWx1ZUVycm9yIHdoZW4gdGhlIHN1YnN0cmluZyBpcyBub3QgZm91bmQuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCi11bmljb2RlX3JpbmRleChQeVVuaWNvZGVPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQordW5pY29kZV9yaW5kZXgoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIFB5VW5pY29kZU9iamVjdCAqc3Vic3RyaW5nOworICAgIFB5T2JqZWN0ICpzdWJzdHJpbmc7CiAgICAgUHlfc3NpemVfdCBzdGFydDsKICAgICBQeV9zc2l6ZV90IGVuZDsKICAgICBQeV9zc2l6ZV90IHJlc3VsdDsKQEAgLTg2MTIsMTggKzEyMTM5LDIzIEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdGFydCwgJmVuZCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgcmVzdWx0ID0gc3RyaW5nbGliX3JmaW5kX3NsaWNlKAotICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShzZWxmKSwgUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpLAotICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShzdWJzdHJpbmcpLCBQeVVuaWNvZGVfR0VUX1NJWkUoc3Vic3RyaW5nKSwKLSAgICAgICAgc3RhcnQsIGVuZAotICAgICAgICApOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc3Vic3RyaW5nKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICByZXN1bHQgPSBhbnlfZmluZF9zbGljZSgtMSwgc2VsZiwgc3Vic3RyaW5nLCBzdGFydCwgZW5kKTsKIAogICAgIFB5X0RFQ1JFRihzdWJzdHJpbmcpOwogCisgICAgaWYgKHJlc3VsdCA9PSAtMikKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKICAgICBpZiAocmVzdWx0IDwgMCkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgInN1YnN0cmluZyBub3QgZm91bmQiKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQorCiAgICAgcmV0dXJuIFB5TG9uZ19Gcm9tU3NpemVfdChyZXN1bHQpOwogfQogCkBAIC04NjM0LDI1ICsxMjE2NiwyNSBAQAogZG9uZSB1c2luZyB0aGUgc3BlY2lmaWVkIGZpbGwgY2hhcmFjdGVyIChkZWZhdWx0IGlzIGEgc3BhY2UpLiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotdW5pY29kZV9yanVzdChQeVVuaWNvZGVPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQordW5pY29kZV9yanVzdChQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7CiAgICAgUHlfc3NpemVfdCB3aWR0aDsKLSAgICBQeV9VTklDT0RFIGZpbGxjaGFyID0gJyAnOworICAgIFB5X1VDUzQgZmlsbGNoYXIgPSAnICc7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIm58TyY6cmp1c3QiLCAmd2lkdGgsIGNvbnZlcnRfdWMsICZmaWxsY2hhcikpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgaWYgKHNlbGYtPmxlbmd0aCA+PSB3aWR0aCAmJiBQeVVuaWNvZGVfQ2hlY2tFeGFjdChzZWxmKSkgewotICAgICAgICBQeV9JTkNSRUYoc2VsZik7Ci0gICAgICAgIHJldHVybiAoUHlPYmplY3QqKSBzZWxmOwotICAgIH0KKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJldHVybiAoUHlPYmplY3QqKSBwYWQoc2VsZiwgd2lkdGggLSBzZWxmLT5sZW5ndGgsIDAsIGZpbGxjaGFyKTsKKyAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZikgPj0gd2lkdGgpCisgICAgICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdF91bmNoYW5nZWQoc2VsZik7CisKKyAgICByZXR1cm4gcGFkKHNlbGYsIHdpZHRoIC0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZiksIDAsIGZpbGxjaGFyKTsKIH0KIAotUHlPYmplY3QgKlB5VW5pY29kZV9TcGxpdChQeU9iamVjdCAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnNlcCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBtYXhzcGxpdCkKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9TcGxpdChQeU9iamVjdCAqcywgUHlPYmplY3QgKnNlcCwgUHlfc3NpemVfdCBtYXhzcGxpdCkKIHsKICAgICBQeU9iamVjdCAqcmVzdWx0OwogCkBAIC04NjY3LDcgKzEyMTk5LDcgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIHJlc3VsdCA9IHNwbGl0KChQeVVuaWNvZGVPYmplY3QgKilzLCAoUHlVbmljb2RlT2JqZWN0ICopc2VwLCBtYXhzcGxpdCk7CisgICAgcmVzdWx0ID0gc3BsaXQocywgc2VwLCBtYXhzcGxpdCk7CiAKICAgICBQeV9ERUNSRUYocyk7CiAgICAgUHlfWERFQ1JFRihzZXApOwpAQCAtODY3NSw3ICsxMjIwNyw3IEBACiB9CiAKIFB5RG9jX1NUUlZBUihzcGxpdF9fZG9jX18sCi0gICAgICAgICAgICAgIlMuc3BsaXQoW3NlcFssIG1heHNwbGl0XV0pIC0+IGxpc3Qgb2Ygc3RyaW5nc1xuXAorICAgICAgICAgICAgICJTLnNwbGl0KHNlcD1Ob25lLCBtYXhzcGxpdD0tMSkgLT4gbGlzdCBvZiBzdHJpbmdzXG5cCiBcblwKIFJldHVybiBhIGxpc3Qgb2YgdGhlIHdvcmRzIGluIFMsIHVzaW5nIHNlcCBhcyB0aGVcblwKIGRlbGltaXRlciBzdHJpbmcuICBJZiBtYXhzcGxpdCBpcyBnaXZlbiwgYXQgbW9zdCBtYXhzcGxpdFxuXApAQCAtODY4NCwyMCArMTIyMTYsMjIgQEAKIHJlbW92ZWQgZnJvbSB0aGUgcmVzdWx0LiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX3NwbGl0KFB5VW5pY29kZU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCit1bmljb2RlX3NwbGl0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7CisgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJzZXAiLCAibWF4c3BsaXQiLCAwfTsKICAgICBQeU9iamVjdCAqc3Vic3RyaW5nID0gUHlfTm9uZTsKICAgICBQeV9zc2l6ZV90IG1heGNvdW50ID0gLTE7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInxPbjpzcGxpdCIsICZzdWJzdHJpbmcsICZtYXhjb3VudCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgInxPbjpzcGxpdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmc3Vic3RyaW5nLCAmbWF4Y291bnQpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGlmIChzdWJzdHJpbmcgPT0gUHlfTm9uZSkKICAgICAgICAgcmV0dXJuIHNwbGl0KHNlbGYsIE5VTEwsIG1heGNvdW50KTsKICAgICBlbHNlIGlmIChQeVVuaWNvZGVfQ2hlY2soc3Vic3RyaW5nKSkKLSAgICAgICAgcmV0dXJuIHNwbGl0KHNlbGYsIChQeVVuaWNvZGVPYmplY3QgKilzdWJzdHJpbmcsIG1heGNvdW50KTsKKyAgICAgICAgcmV0dXJuIHNwbGl0KHNlbGYsIHN1YnN0cmluZywgbWF4Y291bnQpOwogICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9TcGxpdCgoUHlPYmplY3QgKilzZWxmLCBzdWJzdHJpbmcsIG1heGNvdW50KTsKKyAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9TcGxpdChzZWxmLCBzdWJzdHJpbmcsIG1heGNvdW50KTsKIH0KIAogUHlPYmplY3QgKgpAQCAtODcwNiw2ICsxMjI0MCw5IEBACiAgICAgUHlPYmplY3QqIHN0cl9vYmo7CiAgICAgUHlPYmplY3QqIHNlcF9vYmo7CiAgICAgUHlPYmplY3QqIG91dDsKKyAgICBpbnQga2luZDEsIGtpbmQyLCBraW5kOworICAgIHZvaWQgKmJ1ZjEgPSBOVUxMLCAqYnVmMiA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBsZW4xLCBsZW4yOwogCiAgICAgc3RyX29iaiA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN0cl9pbik7CiAgICAgaWYgKCFzdHJfb2JqKQpAQCAtODcxNSwxNiArMTIyNTIsNjIgQEAKICAgICAgICAgUHlfREVDUkVGKHN0cl9vYmopOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZXBfb2JqKSA9PSAtMSB8fCBQeVVuaWNvZGVfUkVBRFkoc3RyX29iaikgPT0gLTEpIHsKKyAgICAgICAgUHlfREVDUkVGKHNlcF9vYmopOworICAgICAgICBQeV9ERUNSRUYoc3RyX29iaik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KIAotICAgIG91dCA9IHN0cmluZ2xpYl9wYXJ0aXRpb24oCi0gICAgICAgIHN0cl9vYmosIFB5VW5pY29kZV9BU19VTklDT0RFKHN0cl9vYmopLCBQeVVuaWNvZGVfR0VUX1NJWkUoc3RyX29iaiksCi0gICAgICAgIHNlcF9vYmosIFB5VW5pY29kZV9BU19VTklDT0RFKHNlcF9vYmopLCBQeVVuaWNvZGVfR0VUX1NJWkUoc2VwX29iaikKLSAgICAgICAgKTsKKyAgICBraW5kMSA9IFB5VW5pY29kZV9LSU5EKHN0cl9vYmopOworICAgIGtpbmQyID0gUHlVbmljb2RlX0tJTkQoc2VwX29iaik7CisgICAga2luZCA9IFB5X01BWChraW5kMSwga2luZDIpOworICAgIGJ1ZjEgPSBQeVVuaWNvZGVfREFUQShzdHJfb2JqKTsKKyAgICBpZiAoa2luZDEgIT0ga2luZCkKKyAgICAgICAgYnVmMSA9IF9QeVVuaWNvZGVfQXNLaW5kKHN0cl9vYmosIGtpbmQpOworICAgIGlmICghYnVmMSkKKyAgICAgICAgZ290byBvbkVycm9yOworICAgIGJ1ZjIgPSBQeVVuaWNvZGVfREFUQShzZXBfb2JqKTsKKyAgICBpZiAoa2luZDIgIT0ga2luZCkKKyAgICAgICAgYnVmMiA9IF9QeVVuaWNvZGVfQXNLaW5kKHNlcF9vYmosIGtpbmQpOworICAgIGlmICghYnVmMikKKyAgICAgICAgZ290byBvbkVycm9yOworICAgIGxlbjEgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHJfb2JqKTsKKyAgICBsZW4yID0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VwX29iaik7CisKKyAgICBzd2l0Y2ggKFB5VW5pY29kZV9LSU5EKHN0cl9vYmopKSB7CisgICAgY2FzZSBQeVVuaWNvZGVfMUJZVEVfS0lORDoKKyAgICAgICAgaWYgKFB5VW5pY29kZV9JU19BU0NJSShzdHJfb2JqKSAmJiBQeVVuaWNvZGVfSVNfQVNDSUkoc2VwX29iaikpCisgICAgICAgICAgICBvdXQgPSBhc2NpaWxpYl9wYXJ0aXRpb24oc3RyX29iaiwgYnVmMSwgbGVuMSwgc2VwX29iaiwgYnVmMiwgbGVuMik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dCA9IHVjczFsaWJfcGFydGl0aW9uKHN0cl9vYmosIGJ1ZjEsIGxlbjEsIHNlcF9vYmosIGJ1ZjIsIGxlbjIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICBvdXQgPSB1Y3MybGliX3BhcnRpdGlvbihzdHJfb2JqLCBidWYxLCBsZW4xLCBzZXBfb2JqLCBidWYyLCBsZW4yKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQeVVuaWNvZGVfNEJZVEVfS0lORDoKKyAgICAgICAgb3V0ID0gdWNzNGxpYl9wYXJ0aXRpb24oc3RyX29iaiwgYnVmMSwgbGVuMSwgc2VwX29iaiwgYnVmMiwgbGVuMik7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGFzc2VydCgwKTsKKyAgICAgICAgb3V0ID0gMDsKKyAgICB9CiAKICAgICBQeV9ERUNSRUYoc2VwX29iaik7CiAgICAgUHlfREVDUkVGKHN0cl9vYmopOworICAgIGlmIChraW5kMSAhPSBraW5kKQorICAgICAgICBQeU1lbV9GcmVlKGJ1ZjEpOworICAgIGlmIChraW5kMiAhPSBraW5kKQorICAgICAgICBQeU1lbV9GcmVlKGJ1ZjIpOwogCiAgICAgcmV0dXJuIG91dDsKKyAgb25FcnJvcjoKKyAgICBQeV9ERUNSRUYoc2VwX29iaik7CisgICAgUHlfREVDUkVGKHN0cl9vYmopOworICAgIGlmIChraW5kMSAhPSBraW5kICYmIGJ1ZjEpCisgICAgICAgIFB5TWVtX0ZyZWUoYnVmMSk7CisgICAgaWYgKGtpbmQyICE9IGtpbmQgJiYgYnVmMikKKyAgICAgICAgUHlNZW1fRnJlZShidWYyKTsKKyAgICByZXR1cm4gTlVMTDsKIH0KIAogCkBAIC04NzM0LDYgKzEyMzE3LDkgQEAKICAgICBQeU9iamVjdCogc3RyX29iajsKICAgICBQeU9iamVjdCogc2VwX29iajsKICAgICBQeU9iamVjdCogb3V0OworICAgIGludCBraW5kMSwga2luZDIsIGtpbmQ7CisgICAgdm9pZCAqYnVmMSA9IE5VTEwsICpidWYyID0gTlVMTDsKKyAgICBQeV9zc2l6ZV90IGxlbjEsIGxlbjI7CiAKICAgICBzdHJfb2JqID0gUHlVbmljb2RlX0Zyb21PYmplY3Qoc3RyX2luKTsKICAgICBpZiAoIXN0cl9vYmopCkBAIC04NzQ0LDE1ICsxMjMzMCw1NiBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBvdXQgPSBzdHJpbmdsaWJfcnBhcnRpdGlvbigKLSAgICAgICAgc3RyX29iaiwgUHlVbmljb2RlX0FTX1VOSUNPREUoc3RyX29iaiksIFB5VW5pY29kZV9HRVRfU0laRShzdHJfb2JqKSwKLSAgICAgICAgc2VwX29iaiwgUHlVbmljb2RlX0FTX1VOSUNPREUoc2VwX29iaiksIFB5VW5pY29kZV9HRVRfU0laRShzZXBfb2JqKQotICAgICAgICApOworICAgIGtpbmQxID0gUHlVbmljb2RlX0tJTkQoc3RyX2luKTsKKyAgICBraW5kMiA9IFB5VW5pY29kZV9LSU5EKHNlcF9vYmopOworICAgIGtpbmQgPSBQeV9NQVgoa2luZDEsIGtpbmQyKTsKKyAgICBidWYxID0gUHlVbmljb2RlX0RBVEEoc3RyX2luKTsKKyAgICBpZiAoa2luZDEgIT0ga2luZCkKKyAgICAgICAgYnVmMSA9IF9QeVVuaWNvZGVfQXNLaW5kKHN0cl9pbiwga2luZCk7CisgICAgaWYgKCFidWYxKQorICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgYnVmMiA9IFB5VW5pY29kZV9EQVRBKHNlcF9vYmopOworICAgIGlmIChraW5kMiAhPSBraW5kKQorICAgICAgICBidWYyID0gX1B5VW5pY29kZV9Bc0tpbmQoc2VwX29iaiwga2luZCk7CisgICAgaWYgKCFidWYyKQorICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgbGVuMSA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHN0cl9vYmopOworICAgIGxlbjIgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzZXBfb2JqKTsKKworICAgIHN3aXRjaCAoUHlVbmljb2RlX0tJTkQoc3RyX2luKSkgeworICAgIGNhc2UgUHlVbmljb2RlXzFCWVRFX0tJTkQ6CisgICAgICAgIGlmIChQeVVuaWNvZGVfSVNfQVNDSUkoc3RyX29iaikgJiYgUHlVbmljb2RlX0lTX0FTQ0lJKHNlcF9vYmopKQorICAgICAgICAgICAgb3V0ID0gYXNjaWlsaWJfcnBhcnRpdGlvbihzdHJfb2JqLCBidWYxLCBsZW4xLCBzZXBfb2JqLCBidWYyLCBsZW4yKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgb3V0ID0gdWNzMWxpYl9ycGFydGl0aW9uKHN0cl9vYmosIGJ1ZjEsIGxlbjEsIHNlcF9vYmosIGJ1ZjIsIGxlbjIpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB5VW5pY29kZV8yQllURV9LSU5EOgorICAgICAgICBvdXQgPSB1Y3MybGliX3JwYXJ0aXRpb24oc3RyX29iaiwgYnVmMSwgbGVuMSwgc2VwX29iaiwgYnVmMiwgbGVuMik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHlVbmljb2RlXzRCWVRFX0tJTkQ6CisgICAgICAgIG91dCA9IHVjczRsaWJfcnBhcnRpdGlvbihzdHJfb2JqLCBidWYxLCBsZW4xLCBzZXBfb2JqLCBidWYyLCBsZW4yKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYXNzZXJ0KDApOworICAgICAgICBvdXQgPSAwOworICAgIH0KIAogICAgIFB5X0RFQ1JFRihzZXBfb2JqKTsKICAgICBQeV9ERUNSRUYoc3RyX29iaik7CisgICAgaWYgKGtpbmQxICE9IGtpbmQpCisgICAgICAgIFB5TWVtX0ZyZWUoYnVmMSk7CisgICAgaWYgKGtpbmQyICE9IGtpbmQpCisgICAgICAgIFB5TWVtX0ZyZWUoYnVmMik7CiAKICAgICByZXR1cm4gb3V0OworICBvbkVycm9yOgorICAgIFB5X0RFQ1JFRihzZXBfb2JqKTsKKyAgICBQeV9ERUNSRUYoc3RyX29iaik7CisgICAgaWYgKGtpbmQxICE9IGtpbmQgJiYgYnVmMSkKKyAgICAgICAgUHlNZW1fRnJlZShidWYxKTsKKyAgICBpZiAoa2luZDIgIT0ga2luZCAmJiBidWYyKQorICAgICAgICBQeU1lbV9GcmVlKGJ1ZjIpOworICAgIHJldHVybiBOVUxMOwogfQogCiBQeURvY19TVFJWQVIocGFydGl0aW9uX19kb2NfXywKQEAgLTg3NjMsOSArMTIzOTAsOSBAQAogZm91bmQsIHJldHVybiBTIGFuZCB0d28gZW1wdHkgc3RyaW5ncy4iKTsKIAogc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV9wYXJ0aXRpb24oUHlVbmljb2RlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqc2VwYXJhdG9yKQordW5pY29kZV9wYXJ0aXRpb24oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpzZXBhcmF0b3IpCiB7Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9QYXJ0aXRpb24oKFB5T2JqZWN0ICopc2VsZiwgc2VwYXJhdG9yKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX1BhcnRpdGlvbihzZWxmLCBzZXBhcmF0b3IpOwogfQogCiBQeURvY19TVFJWQVIocnBhcnRpdGlvbl9fZG9jX18sCkBAIC04Nzc2LDE0ICsxMjQwMywxMyBAQAogc2VwYXJhdG9yIGlzIG5vdCBmb3VuZCwgcmV0dXJuIHR3byBlbXB0eSBzdHJpbmdzIGFuZCBTLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX3JwYXJ0aXRpb24oUHlVbmljb2RlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqc2VwYXJhdG9yKQordW5pY29kZV9ycGFydGl0aW9uKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqc2VwYXJhdG9yKQogewotICAgIHJldHVybiBQeVVuaWNvZGVfUlBhcnRpdGlvbigoUHlPYmplY3QgKilzZWxmLCBzZXBhcmF0b3IpOworICAgIHJldHVybiBQeVVuaWNvZGVfUlBhcnRpdGlvbihzZWxmLCBzZXBhcmF0b3IpOwogfQogCi1QeU9iamVjdCAqUHlVbmljb2RlX1JTcGxpdChQeU9iamVjdCAqcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpzZXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IG1heHNwbGl0KQorUHlPYmplY3QgKgorUHlVbmljb2RlX1JTcGxpdChQeU9iamVjdCAqcywgUHlPYmplY3QgKnNlcCwgUHlfc3NpemVfdCBtYXhzcGxpdCkKIHsKICAgICBQeU9iamVjdCAqcmVzdWx0OwogCkBAIC04Nzk4LDcgKzEyNDI0LDcgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIHJlc3VsdCA9IHJzcGxpdCgoUHlVbmljb2RlT2JqZWN0ICopcywgKFB5VW5pY29kZU9iamVjdCAqKXNlcCwgbWF4c3BsaXQpOworICAgIHJlc3VsdCA9IHJzcGxpdChzLCBzZXAsIG1heHNwbGl0KTsKIAogICAgIFB5X0RFQ1JFRihzKTsKICAgICBQeV9YREVDUkVGKHNlcCk7CkBAIC04ODA2LDcgKzEyNDMyLDcgQEAKIH0KIAogUHlEb2NfU1RSVkFSKHJzcGxpdF9fZG9jX18sCi0gICAgICAgICAgICAgIlMucnNwbGl0KFtzZXBbLCBtYXhzcGxpdF1dKSAtPiBsaXN0IG9mIHN0cmluZ3NcblwKKyAgICAgICAgICAgICAiUy5yc3BsaXQoc2VwPU5vbmUsIG1heHNwbGl0PS0xKSAtPiBsaXN0IG9mIHN0cmluZ3NcblwKIFxuXAogUmV0dXJuIGEgbGlzdCBvZiB0aGUgd29yZHMgaW4gUywgdXNpbmcgc2VwIGFzIHRoZVxuXAogZGVsaW1pdGVyIHN0cmluZywgc3RhcnRpbmcgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nIGFuZFxuXApAQCAtODgxNSwyMCArMTI0NDEsMjIgQEAKIGlzIGEgc2VwYXJhdG9yLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX3JzcGxpdChQeVVuaWNvZGVPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQordW5pY29kZV9yc3BsaXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKKyAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7InNlcCIsICJtYXhzcGxpdCIsIDB9OwogICAgIFB5T2JqZWN0ICpzdWJzdHJpbmcgPSBQeV9Ob25lOwogICAgIFB5X3NzaXplX3QgbWF4Y291bnQgPSAtMTsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAifE9uOnJzcGxpdCIsICZzdWJzdHJpbmcsICZtYXhjb3VudCkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgInxPbjpyc3BsaXQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3bGlzdCwgJnN1YnN0cmluZywgJm1heGNvdW50KSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICBpZiAoc3Vic3RyaW5nID09IFB5X05vbmUpCiAgICAgICAgIHJldHVybiByc3BsaXQoc2VsZiwgTlVMTCwgbWF4Y291bnQpOwogICAgIGVsc2UgaWYgKFB5VW5pY29kZV9DaGVjayhzdWJzdHJpbmcpKQotICAgICAgICByZXR1cm4gcnNwbGl0KHNlbGYsIChQeVVuaWNvZGVPYmplY3QgKilzdWJzdHJpbmcsIG1heGNvdW50KTsKKyAgICAgICAgcmV0dXJuIHJzcGxpdChzZWxmLCBzdWJzdHJpbmcsIG1heGNvdW50KTsKICAgICBlbHNlCi0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfUlNwbGl0KChQeU9iamVjdCAqKXNlbGYsIHN1YnN0cmluZywgbWF4Y291bnQpOworICAgICAgICByZXR1cm4gUHlVbmljb2RlX1JTcGxpdChzZWxmLCBzdWJzdHJpbmcsIG1heGNvdW50KTsKIH0KIAogUHlEb2NfU1RSVkFSKHNwbGl0bGluZXNfX2RvY19fLApAQCAtODgzOSwyNiArMTI0NjcsMjIgQEAKIGlzIGdpdmVuIGFuZCB0cnVlLiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX3NwbGl0bGluZXMoUHlVbmljb2RlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3VuaWNvZGVfc3BsaXRsaW5lcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQogeworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsia2VlcGVuZHMiLCAwfTsKICAgICBpbnQga2VlcGVuZHMgPSAwOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJ8aTpzcGxpdGxpbmVzIiwgJmtlZXBlbmRzKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAifGk6c3BsaXRsaW5lcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAma2VlcGVuZHMpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJldHVybiBQeVVuaWNvZGVfU3BsaXRsaW5lcygoUHlPYmplY3QgKilzZWxmLCBrZWVwZW5kcyk7CisgICAgcmV0dXJuIFB5VW5pY29kZV9TcGxpdGxpbmVzKHNlbGYsIGtlZXBlbmRzKTsKIH0KIAogc3RhdGljCiBQeU9iamVjdCAqdW5pY29kZV9zdHIoUHlPYmplY3QgKnNlbGYpCiB7Ci0gICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KHNlbGYpKSB7Ci0gICAgICAgIFB5X0lOQ1JFRihzZWxmKTsKLSAgICAgICAgcmV0dXJuIHNlbGY7Ci0gICAgfSBlbHNlCi0gICAgICAgIC8qIFN1YnR5cGUgLS0gcmV0dXJuIGdlbnVpbmUgdW5pY29kZSBzdHJpbmcgd2l0aCB0aGUgc2FtZSB2YWx1ZS4gKi8KLSAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tVW5pY29kZShQeVVuaWNvZGVfQVNfVU5JQ09ERShzZWxmKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX1NJWkUoc2VsZikpOworICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdF91bmNoYW5nZWQoc2VsZik7CiB9CiAKIFB5RG9jX1NUUlZBUihzd2FwY2FzZV9fZG9jX18sCkBAIC04ODY4LDkgKzEyNDkyLDExIEBACiBhbmQgdmljZSB2ZXJzYS4iKTsKIAogc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV9zd2FwY2FzZShQeVVuaWNvZGVPYmplY3QgKnNlbGYpCit1bmljb2RlX3N3YXBjYXNlKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHJldHVybiBmaXh1cChzZWxmLCBmaXhzd2FwY2FzZSk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgcmV0dXJuIGNhc2Vfb3BlcmF0aW9uKHNlbGYsIGRvX3N3YXBjYXNlKTsKIH0KIAogUHlEb2NfU1RSVkFSKG1ha2V0cmFuc19fZG9jX18sCkBAIC04ODg2LDcgKzEyNTEyLDcgQEAKIG11c3QgYmUgYSBzdHJpbmcsIHdob3NlIGNoYXJhY3RlcnMgd2lsbCBiZSBtYXBwZWQgdG8gTm9uZSBpbiB0aGUgcmVzdWx0LiIpOwogCiBzdGF0aWMgUHlPYmplY3QqCi11bmljb2RlX21ha2V0cmFucyhQeVVuaWNvZGVPYmplY3QgKm51bGwsIFB5T2JqZWN0ICphcmdzKQordW5pY29kZV9tYWtldHJhbnMoUHlPYmplY3QgKm51bGwsIFB5T2JqZWN0ICphcmdzKQogewogICAgIFB5T2JqZWN0ICp4LCAqeSA9IE5VTEwsICp6ID0gTlVMTDsKICAgICBQeU9iamVjdCAqbmV3ID0gTlVMTCwgKmtleSwgKnZhbHVlOwpAQCAtODg5OSwyNCArMTI1MjUsMzAgQEAKICAgICBpZiAoIW5ldykKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaWYgKHkgIT0gTlVMTCkgeworICAgICAgICBpbnQgeF9raW5kLCB5X2tpbmQsIHpfa2luZDsKKyAgICAgICAgdm9pZCAqeF9kYXRhLCAqeV9kYXRhLCAqel9kYXRhOworCiAgICAgICAgIC8qIHggbXVzdCBiZSBhIHN0cmluZyB0b28sIG9mIGVxdWFsIGxlbmd0aCAqLwotICAgICAgICBQeV9zc2l6ZV90IHlsZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUoeSk7CiAgICAgICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHgpKSB7CiAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiZmlyc3QgbWFrZXRyYW5zIGFyZ3VtZW50IG11c3QgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJiZSBhIHN0cmluZyBpZiB0aGVyZSBpcyBhIHNlY29uZCBhcmd1bWVudCIpOwogICAgICAgICAgICAgZ290byBlcnI7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRSh4KSAhPSB5bGVuKSB7CisgICAgICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSCh4KSAhPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh5KSkgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJ0aGUgZmlyc3QgdHdvIG1ha2V0cmFucyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50cyBtdXN0IGhhdmUgZXF1YWwgbGVuZ3RoIik7CiAgICAgICAgICAgICBnb3RvIGVycjsKICAgICAgICAgfQogICAgICAgICAvKiBjcmVhdGUgZW50cmllcyBmb3IgdHJhbnNsYXRpbmcgY2hhcnMgaW4geCB0byB0aG9zZSBpbiB5ICovCi0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBQeVVuaWNvZGVfR0VUX1NJWkUoeCk7IGkrKykgewotICAgICAgICAgICAga2V5ID0gUHlMb25nX0Zyb21Mb25nKFB5VW5pY29kZV9BU19VTklDT0RFKHgpW2ldKTsKKyAgICAgICAgeF9raW5kID0gUHlVbmljb2RlX0tJTkQoeCk7CisgICAgICAgIHlfa2luZCA9IFB5VW5pY29kZV9LSU5EKHkpOworICAgICAgICB4X2RhdGEgPSBQeVVuaWNvZGVfREFUQSh4KTsKKyAgICAgICAgeV9kYXRhID0gUHlVbmljb2RlX0RBVEEoeSk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBQeVVuaWNvZGVfR0VUX0xFTkdUSCh4KTsgaSsrKSB7CisgICAgICAgICAgICBrZXkgPSBQeUxvbmdfRnJvbUxvbmcoUHlVbmljb2RlX1JFQUQoeF9raW5kLCB4X2RhdGEsIGkpKTsKICAgICAgICAgICAgIGlmICgha2V5KQogICAgICAgICAgICAgICAgIGdvdG8gZXJyOwotICAgICAgICAgICAgdmFsdWUgPSBQeUxvbmdfRnJvbUxvbmcoUHlVbmljb2RlX0FTX1VOSUNPREUoeSlbaV0pOworICAgICAgICAgICAgdmFsdWUgPSBQeUxvbmdfRnJvbUxvbmcoUHlVbmljb2RlX1JFQUQoeV9raW5kLCB5X2RhdGEsIGkpKTsKICAgICAgICAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoa2V5KTsKICAgICAgICAgICAgICAgICBnb3RvIGVycjsKQEAgLTg5MjksOCArMTI1NjEsMTAgQEAKICAgICAgICAgfQogICAgICAgICAvKiBjcmVhdGUgZW50cmllcyBmb3IgZGVsZXRpbmcgY2hhcnMgaW4geiAqLwogICAgICAgICBpZiAoeiAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgUHlVbmljb2RlX0dFVF9TSVpFKHopOyBpKyspIHsKLSAgICAgICAgICAgICAgICBrZXkgPSBQeUxvbmdfRnJvbUxvbmcoUHlVbmljb2RlX0FTX1VOSUNPREUoeilbaV0pOworICAgICAgICAgICAgel9raW5kID0gUHlVbmljb2RlX0tJTkQoeik7CisgICAgICAgICAgICB6X2RhdGEgPSBQeVVuaWNvZGVfREFUQSh6KTsKKyAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBQeVVuaWNvZGVfR0VUX0xFTkdUSCh6KTsgaSsrKSB7CisgICAgICAgICAgICAgICAga2V5ID0gUHlMb25nX0Zyb21Mb25nKFB5VW5pY29kZV9SRUFEKHpfa2luZCwgel9kYXRhLCBpKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFrZXkpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyOwogICAgICAgICAgICAgICAgIHJlcyA9IFB5RGljdF9TZXRJdGVtKG5ldywga2V5LCBQeV9Ob25lKTsKQEAgLTg5NDAsNiArMTI1NzQsOSBAQAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfSBlbHNlIHsKKyAgICAgICAgaW50IGtpbmQ7CisgICAgICAgIHZvaWQgKmRhdGE7CisKICAgICAgICAgLyogeCBtdXN0IGJlIGEgZGljdCAqLwogICAgICAgICBpZiAoIVB5RGljdF9DaGVja0V4YWN0KHgpKSB7CiAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAiaWYgeW91IGdpdmUgb25seSBvbmUgYXJndW1lbnQgIgpAQCAtODk1MSwxMiArMTI1ODgsMTQgQEAKICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soa2V5KSkgewogICAgICAgICAgICAgICAgIC8qIGNvbnZlcnQgc3RyaW5nIGtleXMgdG8gaW50ZWdlciBrZXlzICovCiAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm5ld2tleTsKLSAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKGtleSkgIT0gMSkgeworICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChrZXkpICE9IDEpIHsKICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJzdHJpbmcga2V5cyBpbiB0cmFuc2xhdGUgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRhYmxlIG11c3QgYmUgb2YgbGVuZ3RoIDEiKTsKICAgICAgICAgICAgICAgICAgICAgZ290byBlcnI7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIG5ld2tleSA9IFB5TG9uZ19Gcm9tTG9uZyhQeVVuaWNvZGVfQVNfVU5JQ09ERShrZXkpWzBdKTsKKyAgICAgICAgICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQoa2V5KTsKKyAgICAgICAgICAgICAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoa2V5KTsKKyAgICAgICAgICAgICAgICBuZXdrZXkgPSBQeUxvbmdfRnJvbUxvbmcoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgMCkpOwogICAgICAgICAgICAgICAgIGlmICghbmV3a2V5KQogICAgICAgICAgICAgICAgICAgICBnb3RvIGVycjsKICAgICAgICAgICAgICAgICByZXMgPSBQeURpY3RfU2V0SXRlbShuZXcsIG5ld2tleSwgdmFsdWUpOwpAQCAtODk5MCw5ICsxMjYyOSw5IEBACiBhcmUgZGVsZXRlZC4iKTsKIAogc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV90cmFuc2xhdGUoUHlVbmljb2RlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdGFibGUpCit1bmljb2RlX3RyYW5zbGF0ZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnRhYmxlKQogewotICAgIHJldHVybiBQeVVuaWNvZGVfVHJhbnNsYXRlQ2hhcm1hcChzZWxmLT5zdHIsIHNlbGYtPmxlbmd0aCwgdGFibGUsICJpZ25vcmUiKTsKKyAgICByZXR1cm4gX1B5VW5pY29kZV9UcmFuc2xhdGVDaGFybWFwKHNlbGYsIHRhYmxlLCAiaWdub3JlIik7CiB9CiAKIFB5RG9jX1NUUlZBUih1cHBlcl9fZG9jX18sCkBAIC05MDAxLDkgKzEyNjQwLDEzIEBACiBSZXR1cm4gYSBjb3B5IG9mIFMgY29udmVydGVkIHRvIHVwcGVyY2FzZS4iKTsKIAogc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV91cHBlcihQeVVuaWNvZGVPYmplY3QgKnNlbGYpCit1bmljb2RlX3VwcGVyKFB5T2JqZWN0ICpzZWxmKQogewotICAgIHJldHVybiBmaXh1cChzZWxmLCBmaXh1cHBlcik7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKFB5VW5pY29kZV9JU19BU0NJSShzZWxmKSkKKyAgICAgICAgcmV0dXJuIGFzY2lpX3VwcGVyX29yX2xvd2VyKHNlbGYsIDApOworICAgIHJldHVybiBjYXNlX29wZXJhdGlvbihzZWxmLCBkb191cHBlcik7CiB9CiAKIFB5RG9jX1NUUlZBUih6ZmlsbF9fZG9jX18sCkBAIC05MDEzLDU1ICsxMjY1Niw1MCBAQAogb2YgdGhlIHNwZWNpZmllZCB3aWR0aC4gVGhlIHN0cmluZyBTIGlzIG5ldmVyIHRydW5jYXRlZC4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXVuaWNvZGVfemZpbGwoUHlVbmljb2RlT2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3VuaWNvZGVfemZpbGwoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewogICAgIFB5X3NzaXplX3QgZmlsbDsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnU7Ci0KKyAgICBQeU9iamVjdCAqdTsKICAgICBQeV9zc2l6ZV90IHdpZHRoOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CisgICAgUHlfVUNTNCBjaHI7CisKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIm46emZpbGwiLCAmd2lkdGgpKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmIChzZWxmLT5sZW5ndGggPj0gd2lkdGgpIHsKLSAgICAgICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KHNlbGYpKSB7Ci0gICAgICAgICAgICBQeV9JTkNSRUYoc2VsZik7Ci0gICAgICAgICAgICByZXR1cm4gKFB5T2JqZWN0Kikgc2VsZjsKLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKAotICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYpLAotICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRShzZWxmKQotICAgICAgICAgICAgICAgICk7Ci0gICAgfQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VsZikgPT0gLTEpCisgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgZmlsbCA9IHdpZHRoIC0gc2VsZi0+bGVuZ3RoOworICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChzZWxmKSA+PSB3aWR0aCkKKyAgICAgICAgcmV0dXJuIHVuaWNvZGVfcmVzdWx0X3VuY2hhbmdlZChzZWxmKTsKKworICAgIGZpbGwgPSB3aWR0aCAtIFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpOwogCiAgICAgdSA9IHBhZChzZWxmLCBmaWxsLCAwLCAnMCcpOwogCiAgICAgaWYgKHUgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBpZiAodS0+c3RyW2ZpbGxdID09ICcrJyB8fCB1LT5zdHJbZmlsbF0gPT0gJy0nKSB7CisgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHUpOworICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQSh1KTsKKyAgICBjaHIgPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBmaWxsKTsKKworICAgIGlmIChjaHIgPT0gJysnIHx8IGNociA9PSAnLScpIHsKICAgICAgICAgLyogbW92ZSBzaWduIHRvIGJlZ2lubmluZyBvZiBzdHJpbmcgKi8KLSAgICAgICAgdS0+c3RyWzBdID0gdS0+c3RyW2ZpbGxdOwotICAgICAgICB1LT5zdHJbZmlsbF0gPSAnMCc7CisgICAgICAgIFB5VW5pY29kZV9XUklURShraW5kLCBkYXRhLCAwLCBjaHIpOworICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgZmlsbCwgJzAnKTsKICAgICB9CiAKLSAgICByZXR1cm4gKFB5T2JqZWN0KikgdTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHUsIDEpKTsKKyAgICByZXR1cm4gdTsKIH0KIAogI2lmIDAKLXN0YXRpYyBQeU9iamVjdCoKLXVuaWNvZGVfZnJlZWxpc3RzaXplKFB5VW5pY29kZU9iamVjdCAqc2VsZikKLXsKLSAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKG51bWZyZWUpOwotfQotCiBzdGF0aWMgUHlPYmplY3QgKgogdW5pY29kZV9fZGVjaW1hbDJhc2NpaShQeU9iamVjdCAqc2VsZikKIHsKLSAgICByZXR1cm4gUHlVbmljb2RlX1RyYW5zZm9ybURlY2ltYWxUb0FTQ0lJKFB5VW5pY29kZV9BU19VTklDT0RFKHNlbGYpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKHNlbGYpKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX1RyYW5zZm9ybURlY2ltYWxBbmRTcGFjZVRvQVNDSUkoc2VsZik7CiB9CiAjZW5kaWYKIApAQCAtOTA3NCwxMSArMTI3MTIsMTEgQEAKIHByZWZpeCBjYW4gYWxzbyBiZSBhIHR1cGxlIG9mIHN0cmluZ3MgdG8gdHJ5LiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotdW5pY29kZV9zdGFydHN3aXRoKFB5VW5pY29kZU9iamVjdCAqc2VsZiwKK3VuaWNvZGVfc3RhcnRzd2l0aChQeU9iamVjdCAqc2VsZiwKICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqYXJncykKIHsKICAgICBQeU9iamVjdCAqc3Vib2JqOwotICAgIFB5VW5pY29kZU9iamVjdCAqc3Vic3RyaW5nOworICAgIFB5T2JqZWN0ICpzdWJzdHJpbmc7CiAgICAgUHlfc3NpemVfdCBzdGFydCA9IDA7CiAgICAgUHlfc3NpemVfdCBlbmQgPSBQWV9TU0laRV9UX01BWDsKICAgICBpbnQgcmVzdWx0OwpAQCAtOTA4OCw4ICsxMjcyNiw3IEBACiAgICAgaWYgKFB5VHVwbGVfQ2hlY2soc3Vib2JqKSkgewogICAgICAgICBQeV9zc2l6ZV90IGk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBQeVR1cGxlX0dFVF9TSVpFKHN1Ym9iaik7IGkrKykgewotICAgICAgICAgICAgc3Vic3RyaW5nID0gKFB5VW5pY29kZU9iamVjdCAqKVB5VW5pY29kZV9Gcm9tT2JqZWN0KAotICAgICAgICAgICAgICAgIFB5VHVwbGVfR0VUX0lURU0oc3Vib2JqLCBpKSk7CisgICAgICAgICAgICBzdWJzdHJpbmcgPSBQeVVuaWNvZGVfRnJvbU9iamVjdChQeVR1cGxlX0dFVF9JVEVNKHN1Ym9iaiwgaSkpOwogICAgICAgICAgICAgaWYgKHN1YnN0cmluZyA9PSBOVUxMKQogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgcmVzdWx0ID0gdGFpbG1hdGNoKHNlbGYsIHN1YnN0cmluZywgc3RhcnQsIGVuZCwgLTEpOwpAQCAtOTEwMSw3ICsxMjczOCw3IEBACiAgICAgICAgIC8qIG5vdGhpbmcgbWF0Y2hlZCAqLwogICAgICAgICBQeV9SRVRVUk5fRkFMU0U7CiAgICAgfQotICAgIHN1YnN0cmluZyA9IChQeVVuaWNvZGVPYmplY3QgKilQeVVuaWNvZGVfRnJvbU9iamVjdChzdWJvYmopOworICAgIHN1YnN0cmluZyA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KHN1Ym9iaik7CiAgICAgaWYgKHN1YnN0cmluZyA9PSBOVUxMKSB7CiAgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX1R5cGVFcnJvcikpCiAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAic3RhcnRzd2l0aCBmaXJzdCBhcmcgbXVzdCBiZSBzdHIgb3IgIgpAQCAtOTEyMywxMSArMTI3NjAsMTEgQEAKIHN1ZmZpeCBjYW4gYWxzbyBiZSBhIHR1cGxlIG9mIHN0cmluZ3MgdG8gdHJ5LiIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotdW5pY29kZV9lbmRzd2l0aChQeVVuaWNvZGVPYmplY3QgKnNlbGYsCit1bmljb2RlX2VuZHN3aXRoKFB5T2JqZWN0ICpzZWxmLAogICAgICAgICAgICAgICAgICBQeU9iamVjdCAqYXJncykKIHsKICAgICBQeU9iamVjdCAqc3Vib2JqOwotICAgIFB5VW5pY29kZU9iamVjdCAqc3Vic3RyaW5nOworICAgIFB5T2JqZWN0ICpzdWJzdHJpbmc7CiAgICAgUHlfc3NpemVfdCBzdGFydCA9IDA7CiAgICAgUHlfc3NpemVfdCBlbmQgPSBQWV9TU0laRV9UX01BWDsKICAgICBpbnQgcmVzdWx0OwpAQCAtOTEzNyw3ICsxMjc3NCw3IEBACiAgICAgaWYgKFB5VHVwbGVfQ2hlY2soc3Vib2JqKSkgewogICAgICAgICBQeV9zc2l6ZV90IGk7CiAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBQeVR1cGxlX0dFVF9TSVpFKHN1Ym9iaik7IGkrKykgewotICAgICAgICAgICAgc3Vic3RyaW5nID0gKFB5VW5pY29kZU9iamVjdCAqKVB5VW5pY29kZV9Gcm9tT2JqZWN0KAorICAgICAgICAgICAgc3Vic3RyaW5nID0gUHlVbmljb2RlX0Zyb21PYmplY3QoCiAgICAgICAgICAgICAgICAgUHlUdXBsZV9HRVRfSVRFTShzdWJvYmosIGkpKTsKICAgICAgICAgICAgIGlmIChzdWJzdHJpbmcgPT0gTlVMTCkKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTkxNDksNyArMTI3ODYsNyBAQAogICAgICAgICB9CiAgICAgICAgIFB5X1JFVFVSTl9GQUxTRTsKICAgICB9Ci0gICAgc3Vic3RyaW5nID0gKFB5VW5pY29kZU9iamVjdCAqKVB5VW5pY29kZV9Gcm9tT2JqZWN0KHN1Ym9iaik7CisgICAgc3Vic3RyaW5nID0gUHlVbmljb2RlX0Zyb21PYmplY3Qoc3Vib2JqKTsKICAgICBpZiAoc3Vic3RyaW5nID09IE5VTEwpIHsKICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfVHlwZUVycm9yKSkKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJlbmRzd2l0aCBmaXJzdCBhcmcgbXVzdCBiZSBzdHIgb3IgIgpAQCAtOTE2MSw3ICsxMjc5OCwxNjAgQEAKICAgICByZXR1cm4gUHlCb29sX0Zyb21Mb25nKHJlc3VsdCk7CiB9CiAKLSNpbmNsdWRlICJzdHJpbmdsaWIvc3RyaW5nX2Zvcm1hdC5oIgorUHlfTE9DQUxfSU5MSU5FKHZvaWQpCitfUHlVbmljb2RlV3JpdGVyX1VwZGF0ZShfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpCit7CisgICAgd3JpdGVyLT5zaXplID0gUHlVbmljb2RlX0dFVF9MRU5HVEgod3JpdGVyLT5idWZmZXIpOworICAgIHdyaXRlci0+bWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRSh3cml0ZXItPmJ1ZmZlcik7CisgICAgd3JpdGVyLT5kYXRhID0gUHlVbmljb2RlX0RBVEEod3JpdGVyLT5idWZmZXIpOworICAgIHdyaXRlci0+a2luZCA9IFB5VW5pY29kZV9LSU5EKHdyaXRlci0+YnVmZmVyKTsKK30KKwordm9pZAorX1B5VW5pY29kZVdyaXRlcl9Jbml0KF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwgUHlfc3NpemVfdCBtaW5fbGVuZ3RoKQoreworICAgIG1lbXNldCh3cml0ZXIsIDAsIHNpemVvZigqd3JpdGVyKSk7CisjaWZkZWYgUHlfREVCVUcKKyAgICB3cml0ZXItPmtpbmQgPSA1OyAgICAvKiBpbnZhbGlkIGtpbmQgKi8KKyNlbmRpZgorICAgIHdyaXRlci0+bWluX2xlbmd0aCA9IFB5X01BWChtaW5fbGVuZ3RoLCAxMDApOworICAgIHdyaXRlci0+b3ZlcmFsbG9jYXRlID0gKG1pbl9sZW5ndGggPiAwKTsKK30KKworaW50CitfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmVJbnRlcm5hbChfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbmd0aCwgUHlfVUNTNCBtYXhjaGFyKQoreworICAgIFB5X3NzaXplX3QgbmV3bGVuOworICAgIFB5T2JqZWN0ICpuZXdidWZmZXI7CisKKyAgICBhc3NlcnQobGVuZ3RoID4gMCk7CisKKyAgICBpZiAobGVuZ3RoID4gUFlfU1NJWkVfVF9NQVggLSB3cml0ZXItPnBvcykgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIG5ld2xlbiA9IHdyaXRlci0+cG9zICsgbGVuZ3RoOworCisgICAgaWYgKHdyaXRlci0+YnVmZmVyID09IE5VTEwpIHsKKyAgICAgICAgaWYgKHdyaXRlci0+b3ZlcmFsbG9jYXRlKSB7CisgICAgICAgICAgICAvKiBvdmVyYWxsb2NhdGUgMjUlIHRvIGxpbWl0IHRoZSBudW1iZXIgb2YgcmVzaXplICovCisgICAgICAgICAgICBpZiAobmV3bGVuIDw9IChQWV9TU0laRV9UX01BWCAtIG5ld2xlbiAvIDQpKQorICAgICAgICAgICAgICAgIG5ld2xlbiArPSBuZXdsZW4gLyA0OworICAgICAgICAgICAgaWYgKG5ld2xlbiA8IHdyaXRlci0+bWluX2xlbmd0aCkKKyAgICAgICAgICAgICAgICBuZXdsZW4gPSB3cml0ZXItPm1pbl9sZW5ndGg7CisgICAgICAgIH0KKyAgICAgICAgd3JpdGVyLT5idWZmZXIgPSBQeVVuaWNvZGVfTmV3KG5ld2xlbiwgbWF4Y2hhcik7CisgICAgICAgIGlmICh3cml0ZXItPmJ1ZmZlciA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBfUHlVbmljb2RlV3JpdGVyX1VwZGF0ZSh3cml0ZXIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAobmV3bGVuID4gd3JpdGVyLT5zaXplKSB7CisgICAgICAgIGlmICh3cml0ZXItPm92ZXJhbGxvY2F0ZSkgeworICAgICAgICAgICAgLyogb3ZlcmFsbG9jYXRlIDI1JSB0byBsaW1pdCB0aGUgbnVtYmVyIG9mIHJlc2l6ZSAqLworICAgICAgICAgICAgaWYgKG5ld2xlbiA8PSAoUFlfU1NJWkVfVF9NQVggLSBuZXdsZW4gLyA0KSkKKyAgICAgICAgICAgICAgICBuZXdsZW4gKz0gbmV3bGVuIC8gNDsKKyAgICAgICAgICAgIGlmIChuZXdsZW4gPCB3cml0ZXItPm1pbl9sZW5ndGgpCisgICAgICAgICAgICAgICAgbmV3bGVuID0gd3JpdGVyLT5taW5fbGVuZ3RoOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1heGNoYXIgPiB3cml0ZXItPm1heGNoYXIgfHwgd3JpdGVyLT5yZWFkb25seSkgeworICAgICAgICAgICAgLyogcmVzaXplICsgd2lkZW4gKi8KKyAgICAgICAgICAgIG5ld2J1ZmZlciA9IFB5VW5pY29kZV9OZXcobmV3bGVuLCBtYXhjaGFyKTsKKyAgICAgICAgICAgIGlmIChuZXdidWZmZXIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhuZXdidWZmZXIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXItPmJ1ZmZlciwgMCwgd3JpdGVyLT5wb3MpOworICAgICAgICAgICAgUHlfREVDUkVGKHdyaXRlci0+YnVmZmVyKTsKKyAgICAgICAgICAgIHdyaXRlci0+cmVhZG9ubHkgPSAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbmV3YnVmZmVyID0gcmVzaXplX2NvbXBhY3Qod3JpdGVyLT5idWZmZXIsIG5ld2xlbik7CisgICAgICAgICAgICBpZiAobmV3YnVmZmVyID09IE5VTEwpCisgICAgICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIHdyaXRlci0+YnVmZmVyID0gbmV3YnVmZmVyOworICAgICAgICBfUHlVbmljb2RlV3JpdGVyX1VwZGF0ZSh3cml0ZXIpOworICAgIH0KKyAgICBlbHNlIGlmIChtYXhjaGFyID4gd3JpdGVyLT5tYXhjaGFyKSB7CisgICAgICAgIGFzc2VydCghd3JpdGVyLT5yZWFkb25seSk7CisgICAgICAgIG5ld2J1ZmZlciA9IFB5VW5pY29kZV9OZXcod3JpdGVyLT5zaXplLCBtYXhjaGFyKTsKKyAgICAgICAgaWYgKG5ld2J1ZmZlciA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyhuZXdidWZmZXIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlci0+YnVmZmVyLCAwLCB3cml0ZXItPnBvcyk7CisgICAgICAgIFB5X0RFQ1JFRih3cml0ZXItPmJ1ZmZlcik7CisgICAgICAgIHdyaXRlci0+YnVmZmVyID0gbmV3YnVmZmVyOworICAgICAgICBfUHlVbmljb2RlV3JpdGVyX1VwZGF0ZSh3cml0ZXIpOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworaW50CitfUHlVbmljb2RlV3JpdGVyX1dyaXRlU3RyKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwgUHlPYmplY3QgKnN0cikKK3sKKyAgICBQeV9VQ1M0IG1heGNoYXI7CisgICAgUHlfc3NpemVfdCBsZW47CisKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHN0cikgPT0gLTEpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzdHIpOworICAgIGlmIChsZW4gPT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgbWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShzdHIpOworICAgIGlmIChtYXhjaGFyID4gd3JpdGVyLT5tYXhjaGFyIHx8IGxlbiA+IHdyaXRlci0+c2l6ZSAtIHdyaXRlci0+cG9zKSB7CisgICAgICAgIGlmICh3cml0ZXItPmJ1ZmZlciA9PSBOVUxMICYmICF3cml0ZXItPm92ZXJhbGxvY2F0ZSkgeworICAgICAgICAgICAgUHlfSU5DUkVGKHN0cik7CisgICAgICAgICAgICB3cml0ZXItPmJ1ZmZlciA9IHN0cjsKKyAgICAgICAgICAgIF9QeVVuaWNvZGVXcml0ZXJfVXBkYXRlKHdyaXRlcik7CisgICAgICAgICAgICB3cml0ZXItPnJlYWRvbmx5ID0gMTsKKyAgICAgICAgICAgIHdyaXRlci0+c2l6ZSA9IDA7CisgICAgICAgICAgICB3cml0ZXItPnBvcyArPSBsZW47CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlSW50ZXJuYWwod3JpdGVyLCBsZW4sIG1heGNoYXIpID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyh3cml0ZXItPmJ1ZmZlciwgd3JpdGVyLT5wb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyLCAwLCBsZW4pOworICAgIHdyaXRlci0+cG9zICs9IGxlbjsKKyAgICByZXR1cm4gMDsKK30KKworUHlPYmplY3QgKgorX1B5VW5pY29kZVdyaXRlcl9GaW5pc2goX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyKQoreworICAgIGlmICh3cml0ZXItPnBvcyA9PSAwKSB7CisgICAgICAgIFB5X1hERUNSRUYod3JpdGVyLT5idWZmZXIpOworICAgICAgICBQeV9JTkNSRUYodW5pY29kZV9lbXB0eSk7CisgICAgICAgIHJldHVybiB1bmljb2RlX2VtcHR5OworICAgIH0KKyAgICBpZiAod3JpdGVyLT5yZWFkb25seSkgeworICAgICAgICBhc3NlcnQoUHlVbmljb2RlX0dFVF9MRU5HVEgod3JpdGVyLT5idWZmZXIpID09IHdyaXRlci0+cG9zKTsKKyAgICAgICAgcmV0dXJuIHdyaXRlci0+YnVmZmVyOworICAgIH0KKyAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgod3JpdGVyLT5idWZmZXIpICE9IHdyaXRlci0+cG9zKSB7CisgICAgICAgIFB5T2JqZWN0ICpuZXdidWZmZXI7CisgICAgICAgIG5ld2J1ZmZlciA9IHJlc2l6ZV9jb21wYWN0KHdyaXRlci0+YnVmZmVyLCB3cml0ZXItPnBvcyk7CisgICAgICAgIGlmIChuZXdidWZmZXIgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfREVDUkVGKHdyaXRlci0+YnVmZmVyKTsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICB9CisgICAgICAgIHdyaXRlci0+YnVmZmVyID0gbmV3YnVmZmVyOworICAgIH0KKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHdyaXRlci0+YnVmZmVyLCAxKSk7CisgICAgcmV0dXJuIHdyaXRlci0+YnVmZmVyOworfQorCit2b2lkCitfUHlVbmljb2RlV3JpdGVyX0RlYWxsb2MoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyKQoreworICAgIFB5X0NMRUFSKHdyaXRlci0+YnVmZmVyKTsKK30KKworI2luY2x1ZGUgInN0cmluZ2xpYi91bmljb2RlX2Zvcm1hdC5oIgogCiBQeURvY19TVFJWQVIoZm9ybWF0X19kb2NfXywKICAgICAgICAgICAgICAiUy5mb3JtYXQoKmFyZ3MsICoqa3dhcmdzKSAtPiBzdHJcblwKQEAgLTkxNzksMTMgKzEyOTY5LDIzIEBACiB1bmljb2RlX19mb3JtYXRfXyhQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCiB7CiAgICAgUHlPYmplY3QgKmZvcm1hdF9zcGVjOworICAgIF9QeVVuaWNvZGVXcml0ZXIgd3JpdGVyOworICAgIGludCByZXQ7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6X19mb3JtYXRfXyIsICZmb3JtYXRfc3BlYykpCiAgICAgICAgIHJldHVybiBOVUxMOwogCi0gICAgcmV0dXJuIF9QeVVuaWNvZGVfRm9ybWF0QWR2YW5jZWQoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERShmb3JtYXRfc3BlYyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKGZvcm1hdF9zcGVjKSk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWShzZWxmKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgX1B5VW5pY29kZVdyaXRlcl9Jbml0KCZ3cml0ZXIsIDApOworICAgIHJldCA9IF9QeVVuaWNvZGVfRm9ybWF0QWR2YW5jZWRXcml0ZXIoJndyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYsIGZvcm1hdF9zcGVjLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgoZm9ybWF0X3NwZWMpKTsKKyAgICBpZiAocmV0ID09IC0xKSB7CisgICAgICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmd3JpdGVyKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX0ZpbmlzaCgmd3JpdGVyKTsKIH0KIAogUHlEb2NfU1RSVkFSKHBfZm9ybWF0X19kb2NfXywKQEAgLTkxOTQsMjggKzEyOTk0LDU1IEBACiBSZXR1cm4gYSBmb3JtYXR0ZWQgdmVyc2lvbiBvZiBTIGFzIGRlc2NyaWJlZCBieSBmb3JtYXRfc3BlYy4iKTsKIAogc3RhdGljIFB5T2JqZWN0ICoKLXVuaWNvZGVfX3NpemVvZl9fKFB5VW5pY29kZU9iamVjdCAqdikKK3VuaWNvZGVfX3NpemVvZl9fKFB5T2JqZWN0ICp2KQogewotICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3Qoc2l6ZW9mKFB5VW5pY29kZU9iamVjdCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKFB5X1VOSUNPREUpICogKHYtPmxlbmd0aCArIDEpKTsKKyAgICBQeV9zc2l6ZV90IHNpemU7CisKKyAgICAvKiBJZiBpdCdzIGEgY29tcGFjdCBvYmplY3QsIGFjY291bnQgZm9yIGJhc2Ugc3RydWN0dXJlICsKKyAgICAgICBjaGFyYWN0ZXIgZGF0YS4gKi8KKyAgICBpZiAoUHlVbmljb2RlX0lTX0NPTVBBQ1RfQVNDSUkodikpCisgICAgICAgIHNpemUgPSBzaXplb2YoUHlBU0NJSU9iamVjdCkgKyBQeVVuaWNvZGVfR0VUX0xFTkdUSCh2KSArIDE7CisgICAgZWxzZSBpZiAoUHlVbmljb2RlX0lTX0NPTVBBQ1QodikpCisgICAgICAgIHNpemUgPSBzaXplb2YoUHlDb21wYWN0VW5pY29kZU9iamVjdCkgKworICAgICAgICAgICAgKFB5VW5pY29kZV9HRVRfTEVOR1RIKHYpICsgMSkgKiBQeVVuaWNvZGVfS0lORCh2KTsKKyAgICBlbHNlIHsKKyAgICAgICAgLyogSWYgaXQgaXMgYSB0d28tYmxvY2sgb2JqZWN0LCBhY2NvdW50IGZvciBiYXNlIG9iamVjdCwgYW5kCisgICAgICAgICAgIGZvciBjaGFyYWN0ZXIgYmxvY2sgaWYgcHJlc2VudC4gKi8KKyAgICAgICAgc2l6ZSA9IHNpemVvZihQeVVuaWNvZGVPYmplY3QpOworICAgICAgICBpZiAoX1B5VW5pY29kZV9EQVRBX0FOWSh2KSkKKyAgICAgICAgICAgIHNpemUgKz0gKFB5VW5pY29kZV9HRVRfTEVOR1RIKHYpICsgMSkgKgorICAgICAgICAgICAgICAgIFB5VW5pY29kZV9LSU5EKHYpOworICAgIH0KKyAgICAvKiBJZiB0aGUgd3N0ciBwb2ludGVyIGlzIHByZXNlbnQsIGFjY291bnQgZm9yIGl0IHVubGVzcyBpdCBpcyBzaGFyZWQKKyAgICAgICB3aXRoIHRoZSBkYXRhIHBvaW50ZXIuIENoZWNrIGlmIHRoZSBkYXRhIGlzIG5vdCBzaGFyZWQuICovCisgICAgaWYgKF9QeVVuaWNvZGVfSEFTX1dTVFJfTUVNT1JZKHYpKQorICAgICAgICBzaXplICs9IChQeVVuaWNvZGVfV1NUUl9MRU5HVEgodikgKyAxKSAqIHNpemVvZih3Y2hhcl90KTsKKyAgICBpZiAoX1B5VW5pY29kZV9IQVNfVVRGOF9NRU1PUlkodikpCisgICAgICAgIHNpemUgKz0gUHlVbmljb2RlX1VURjhfTEVOR1RIKHYpICsgMTsKKworICAgIHJldHVybiBQeUxvbmdfRnJvbVNzaXplX3Qoc2l6ZSk7CiB9CiAKIFB5RG9jX1NUUlZBUihzaXplb2ZfX2RvY19fLAogICAgICAgICAgICAgICJTLl9fc2l6ZW9mX18oKSAtPiBzaXplIG9mIFMgaW4gbWVtb3J5LCBpbiBieXRlcyIpOwogCiBzdGF0aWMgUHlPYmplY3QgKgotdW5pY29kZV9nZXRuZXdhcmdzKFB5VW5pY29kZU9iamVjdCAqdikKK3VuaWNvZGVfZ2V0bmV3YXJncyhQeU9iamVjdCAqdikKIHsKLSAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKHUjKSIsIHYtPnN0ciwgdi0+bGVuZ3RoKTsKKyAgICBQeU9iamVjdCAqY29weSA9IF9QeVVuaWNvZGVfQ29weSh2KTsKKyAgICBpZiAoIWNvcHkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoTikiLCBjb3B5KTsKIH0KIAogc3RhdGljIFB5TWV0aG9kRGVmIHVuaWNvZGVfbWV0aG9kc1tdID0gewogICAgIHsiZW5jb2RlIiwgKFB5Q0Z1bmN0aW9uKSB1bmljb2RlX2VuY29kZSwgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgZW5jb2RlX19kb2NfX30sCiAgICAgeyJyZXBsYWNlIiwgKFB5Q0Z1bmN0aW9uKSB1bmljb2RlX3JlcGxhY2UsIE1FVEhfVkFSQVJHUywgcmVwbGFjZV9fZG9jX199LAotICAgIHsic3BsaXQiLCAoUHlDRnVuY3Rpb24pIHVuaWNvZGVfc3BsaXQsIE1FVEhfVkFSQVJHUywgc3BsaXRfX2RvY19ffSwKLSAgICB7InJzcGxpdCIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9yc3BsaXQsIE1FVEhfVkFSQVJHUywgcnNwbGl0X19kb2NfX30sCisgICAgeyJzcGxpdCIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9zcGxpdCwgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgc3BsaXRfX2RvY19ffSwKKyAgICB7InJzcGxpdCIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9yc3BsaXQsIE1FVEhfVkFSQVJHUyB8IE1FVEhfS0VZV09SRFMsIHJzcGxpdF9fZG9jX199LAogICAgIHsiam9pbiIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9qb2luLCBNRVRIX08sIGpvaW5fX2RvY19ffSwKICAgICB7ImNhcGl0YWxpemUiLCAoUHlDRnVuY3Rpb24pIHVuaWNvZGVfY2FwaXRhbGl6ZSwgTUVUSF9OT0FSR1MsIGNhcGl0YWxpemVfX2RvY19ffSwKKyAgICB7ImNhc2Vmb2xkIiwgKFB5Q0Z1bmN0aW9uKSB1bmljb2RlX2Nhc2Vmb2xkLCBNRVRIX05PQVJHUywgY2FzZWZvbGRfX2RvY19ffSwKICAgICB7InRpdGxlIiwgKFB5Q0Z1bmN0aW9uKSB1bmljb2RlX3RpdGxlLCBNRVRIX05PQVJHUywgdGl0bGVfX2RvY19ffSwKICAgICB7ImNlbnRlciIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9jZW50ZXIsIE1FVEhfVkFSQVJHUywgY2VudGVyX19kb2NfX30sCiAgICAgeyJjb3VudCIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9jb3VudCwgTUVUSF9WQVJBUkdTLCBjb3VudF9fZG9jX199LApAQCAtOTIzMSw3ICsxMzA1OCw3IEBACiAgICAgeyJyanVzdCIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9yanVzdCwgTUVUSF9WQVJBUkdTLCByanVzdF9fZG9jX199LAogICAgIHsicnN0cmlwIiwgKFB5Q0Z1bmN0aW9uKSB1bmljb2RlX3JzdHJpcCwgTUVUSF9WQVJBUkdTLCByc3RyaXBfX2RvY19ffSwKICAgICB7InJwYXJ0aXRpb24iLCAoUHlDRnVuY3Rpb24pIHVuaWNvZGVfcnBhcnRpdGlvbiwgTUVUSF9PLCBycGFydGl0aW9uX19kb2NfX30sCi0gICAgeyJzcGxpdGxpbmVzIiwgKFB5Q0Z1bmN0aW9uKSB1bmljb2RlX3NwbGl0bGluZXMsIE1FVEhfVkFSQVJHUywgc3BsaXRsaW5lc19fZG9jX199LAorICAgIHsic3BsaXRsaW5lcyIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9zcGxpdGxpbmVzLCBNRVRIX1ZBUkFSR1MgfCBNRVRIX0tFWVdPUkRTLCBzcGxpdGxpbmVzX19kb2NfX30sCiAgICAgeyJzdHJpcCIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9zdHJpcCwgTUVUSF9WQVJBUkdTLCBzdHJpcF9fZG9jX199LAogICAgIHsic3dhcGNhc2UiLCAoUHlDRnVuY3Rpb24pIHVuaWNvZGVfc3dhcGNhc2UsIE1FVEhfTk9BUkdTLCBzd2FwY2FzZV9fZG9jX199LAogICAgIHsidHJhbnNsYXRlIiwgKFB5Q0Z1bmN0aW9uKSB1bmljb2RlX3RyYW5zbGF0ZSwgTUVUSF9PLCB0cmFuc2xhdGVfX2RvY19ffSwKQEAgLTkyNTcsMTIgKzEzMDg0LDcgQEAKICAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9TVEFUSUMsIG1ha2V0cmFuc19fZG9jX199LAogICAgIHsiX19zaXplb2ZfXyIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9fc2l6ZW9mX18sIE1FVEhfTk9BUkdTLCBzaXplb2ZfX2RvY19ffSwKICNpZiAwCi0gICAgeyJjYXB3b3JkcyIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9jYXB3b3JkcywgTUVUSF9OT0FSR1MsIGNhcHdvcmRzX19kb2NfX30sCi0jZW5kaWYKLQotI2lmIDAKICAgICAvKiBUaGVzZSBtZXRob2RzIGFyZSBqdXN0IHVzZWQgZm9yIGRlYnVnZ2luZyB0aGUgaW1wbGVtZW50YXRpb24uICovCi0gICAgeyJmcmVlbGlzdHNpemUiLCAoUHlDRnVuY3Rpb24pIHVuaWNvZGVfZnJlZWxpc3RzaXplLCBNRVRIX05PQVJHU30sCiAgICAgeyJfZGVjaW1hbDJhc2NpaSIsIChQeUNGdW5jdGlvbikgdW5pY29kZV9fZGVjaW1hbDJhc2NpaSwgTUVUSF9OT0FSR1N9LAogI2VuZGlmCiAKQEAgLTkyNzMsMTAgKzEzMDk1LDggQEAKIHN0YXRpYyBQeU9iamVjdCAqCiB1bmljb2RlX21vZChQeU9iamVjdCAqdiwgUHlPYmplY3QgKncpCiB7Ci0gICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodikpIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vdEltcGxlbWVudGVkKTsKLSAgICAgICAgcmV0dXJuIFB5X05vdEltcGxlbWVudGVkOwotICAgIH0KKyAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh2KSkKKyAgICAgICAgUHlfUkVUVVJOX05PVElNUExFTUVOVEVEOwogICAgIHJldHVybiBQeVVuaWNvZGVfRm9ybWF0KHYsIHcpOwogfQogCkBAIC05Mjk5LDUwICsxMzExOSw2OSBAQAogfTsKIAogc3RhdGljIFB5T2JqZWN0KgotdW5pY29kZV9zdWJzY3JpcHQoUHlVbmljb2RlT2JqZWN0KiBzZWxmLCBQeU9iamVjdCogaXRlbSkKK3VuaWNvZGVfc3Vic2NyaXB0KFB5T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogaXRlbSkKIHsKKyAgICBpZiAoUHlVbmljb2RlX1JFQURZKHNlbGYpID09IC0xKQorICAgICAgICByZXR1cm4gTlVMTDsKKwogICAgIGlmIChQeUluZGV4X0NoZWNrKGl0ZW0pKSB7CiAgICAgICAgIFB5X3NzaXplX3QgaSA9IFB5TnVtYmVyX0FzU3NpemVfdChpdGVtLCBQeUV4Y19JbmRleEVycm9yKTsKICAgICAgICAgaWYgKGkgPT0gLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBpZiAoaSA8IDApCi0gICAgICAgICAgICBpICs9IFB5VW5pY29kZV9HRVRfU0laRShzZWxmKTsKKyAgICAgICAgICAgIGkgKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZik7CiAgICAgICAgIHJldHVybiB1bmljb2RlX2dldGl0ZW0oc2VsZiwgaSk7CiAgICAgfSBlbHNlIGlmIChQeVNsaWNlX0NoZWNrKGl0ZW0pKSB7CiAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQsIHN0b3AsIHN0ZXAsIHNsaWNlbGVuZ3RoLCBjdXIsIGk7Ci0gICAgICAgIFB5X1VOSUNPREUqIHNvdXJjZV9idWY7Ci0gICAgICAgIFB5X1VOSUNPREUqIHJlc3VsdF9idWY7Ci0gICAgICAgIFB5T2JqZWN0KiByZXN1bHQ7CisgICAgICAgIFB5T2JqZWN0ICpyZXN1bHQ7CisgICAgICAgIHZvaWQgKnNyY19kYXRhLCAqZGVzdF9kYXRhOworICAgICAgICBpbnQgc3JjX2tpbmQsIGRlc3Rfa2luZDsKKyAgICAgICAgUHlfVUNTNCBjaCwgbWF4X2NoYXIsIGtpbmRfbGltaXQ7CiAKLSAgICAgICAgaWYgKFB5U2xpY2VfR2V0SW5kaWNlc0V4KGl0ZW0sIFB5VW5pY29kZV9HRVRfU0laRShzZWxmKSwKKyAgICAgICAgaWYgKFB5U2xpY2VfR2V0SW5kaWNlc0V4KGl0ZW0sIFB5VW5pY29kZV9HRVRfTEVOR1RIKHNlbGYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0LCAmc3RvcCwgJnN0ZXAsICZzbGljZWxlbmd0aCkgPCAwKSB7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChzbGljZWxlbmd0aCA8PSAwKSB7Ci0gICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIDApOwotICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0ID09IDAgJiYgc3RlcCA9PSAxICYmIHNsaWNlbGVuZ3RoID09IHNlbGYtPmxlbmd0aCAmJgotICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9DaGVja0V4YWN0KHNlbGYpKSB7Ci0gICAgICAgICAgICBQeV9JTkNSRUYoc2VsZik7Ci0gICAgICAgICAgICByZXR1cm4gKFB5T2JqZWN0ICopc2VsZjsKKyAgICAgICAgICAgIFB5X0lOQ1JFRih1bmljb2RlX2VtcHR5KTsKKyAgICAgICAgICAgIHJldHVybiB1bmljb2RlX2VtcHR5OworICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0ID09IDAgJiYgc3RlcCA9PSAxICYmCisgICAgICAgICAgICAgICAgICAgc2xpY2VsZW5ndGggPT0gUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VsZikpIHsKKyAgICAgICAgICAgIHJldHVybiB1bmljb2RlX3Jlc3VsdF91bmNoYW5nZWQoc2VsZik7CiAgICAgICAgIH0gZWxzZSBpZiAoc3RlcCA9PSAxKSB7Ci0gICAgICAgICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHNlbGYtPnN0ciArIHN0YXJ0LCBzbGljZWxlbmd0aCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBzb3VyY2VfYnVmID0gUHlVbmljb2RlX0FTX1VOSUNPREUoKFB5T2JqZWN0KilzZWxmKTsKLSAgICAgICAgICAgIHJlc3VsdF9idWYgPSAoUHlfVU5JQ09ERSAqKVB5T2JqZWN0X01BTExPQyhzbGljZWxlbmd0aCoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YoUHlfVU5JQ09ERSkpOwotCi0gICAgICAgICAgICBpZiAocmVzdWx0X2J1ZiA9PSBOVUxMKQotICAgICAgICAgICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwotCi0gICAgICAgICAgICBmb3IgKGN1ciA9IHN0YXJ0LCBpID0gMDsgaSA8IHNsaWNlbGVuZ3RoOyBjdXIgKz0gc3RlcCwgaSsrKSB7Ci0gICAgICAgICAgICAgICAgcmVzdWx0X2J1ZltpXSA9IHNvdXJjZV9idWZbY3VyXTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHJlc3VsdF9idWYsIHNsaWNlbGVuZ3RoKTsKLSAgICAgICAgICAgIFB5T2JqZWN0X0ZSRUUocmVzdWx0X2J1Zik7Ci0gICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9TdWJzdHJpbmcoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0LCBzdGFydCArIHNsaWNlbGVuZ3RoKTsKICAgICAgICAgfQorICAgICAgICAvKiBHZW5lcmFsIGNhc2UgKi8KKyAgICAgICAgc3JjX2tpbmQgPSBQeVVuaWNvZGVfS0lORChzZWxmKTsKKyAgICAgICAgc3JjX2RhdGEgPSBQeVVuaWNvZGVfREFUQShzZWxmKTsKKyAgICAgICAgaWYgKCFQeVVuaWNvZGVfSVNfQVNDSUkoc2VsZikpIHsKKyAgICAgICAgICAgIGtpbmRfbGltaXQgPSBraW5kX21heGNoYXJfbGltaXQoc3JjX2tpbmQpOworICAgICAgICAgICAgbWF4X2NoYXIgPSAwOworICAgICAgICAgICAgZm9yIChjdXIgPSBzdGFydCwgaSA9IDA7IGkgPCBzbGljZWxlbmd0aDsgY3VyICs9IHN0ZXAsIGkrKykgeworICAgICAgICAgICAgICAgIGNoID0gUHlVbmljb2RlX1JFQUQoc3JjX2tpbmQsIHNyY19kYXRhLCBjdXIpOworICAgICAgICAgICAgICAgIGlmIChjaCA+IG1heF9jaGFyKSB7CisgICAgICAgICAgICAgICAgICAgIG1heF9jaGFyID0gY2g7CisgICAgICAgICAgICAgICAgICAgIGlmIChtYXhfY2hhciA+PSBraW5kX2xpbWl0KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1heF9jaGFyID0gMTI3OworICAgICAgICByZXN1bHQgPSBQeVVuaWNvZGVfTmV3KHNsaWNlbGVuZ3RoLCBtYXhfY2hhcik7CisgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBkZXN0X2tpbmQgPSBQeVVuaWNvZGVfS0lORChyZXN1bHQpOworICAgICAgICBkZXN0X2RhdGEgPSBQeVVuaWNvZGVfREFUQShyZXN1bHQpOworCisgICAgICAgIGZvciAoY3VyID0gc3RhcnQsIGkgPSAwOyBpIDwgc2xpY2VsZW5ndGg7IGN1ciArPSBzdGVwLCBpKyspIHsKKyAgICAgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRChzcmNfa2luZCwgc3JjX2RhdGEsIGN1cik7CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoZGVzdF9raW5kLCBkZXN0X2RhdGEsIGksIGNoKTsKKyAgICAgICAgfQorICAgICAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJlc3VsdCwgMSkpOworICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0gZWxzZSB7CiAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJzdHJpbmcgaW5kaWNlcyBtdXN0IGJlIGludGVnZXJzIik7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtOTM3NiwxNiArMTMyMTUsMTcgQEAKIAogLyogUmV0dXJucyBhIG5ldyByZWZlcmVuY2UgdG8gYSBQeVVuaWNvZGUgb2JqZWN0LCBvciBOVUxMIG9uIGZhaWx1cmUuICovCiAKLXN0YXRpYyBQeU9iamVjdCAqCi1mb3JtYXRmbG9hdChQeU9iamVjdCAqdiwgaW50IGZsYWdzLCBpbnQgcHJlYywgaW50IHR5cGUpCitzdGF0aWMgaW50Citmb3JtYXRmbG9hdChQeU9iamVjdCAqdiwgaW50IGZsYWdzLCBpbnQgcHJlYywgaW50IHR5cGUsCisgICAgICAgICAgICBQeU9iamVjdCAqKnBfb3V0cHV0LCBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpCiB7CiAgICAgY2hhciAqcDsKLSAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIGRvdWJsZSB4OworICAgIFB5X3NzaXplX3QgbGVuOwogCiAgICAgeCA9IFB5RmxvYXRfQXNEb3VibGUodik7CiAgICAgaWYgKHggPT0gLTEuMCAmJiBQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgcmV0dXJuIC0xOwogCiAgICAgaWYgKHByZWMgPCAwKQogICAgICAgICBwcmVjID0gNjsKQEAgLTkzOTMsNTQgKzEzMjMzLDE2OCBAQAogICAgIHAgPSBQeU9TX2RvdWJsZV90b19zdHJpbmcoeCwgdHlwZSwgcHJlYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmbGFncyAmIEZfQUxUKSA/IFB5X0RUU0ZfQUxUIDogMCwgTlVMTCk7CiAgICAgaWYgKHAgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKHAsIHN0cmxlbihwKSk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICBsZW4gPSBzdHJsZW4ocCk7CisgICAgaWYgKHdyaXRlcikgeworICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKHdyaXRlciwgbGVuLCAxMjcpID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB1bmljb2RlX3dyaXRlX2NzdHIod3JpdGVyLT5idWZmZXIsIHdyaXRlci0+cG9zLCBwLCBsZW4pOworICAgICAgICB3cml0ZXItPnBvcyArPSBsZW47CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgKnBfb3V0cHV0ID0gX1B5VW5pY29kZV9Gcm9tQVNDSUkocCwgbGVuKTsKICAgICBQeU1lbV9GcmVlKHApOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIDA7CiB9CiAKKy8qIGZvcm1hdGxvbmcoKSBlbXVsYXRlcyB0aGUgZm9ybWF0IGNvZGVzIGQsIHUsIG8sIHggYW5kIFgsIGFuZAorICogdGhlIEZfQUxUIGZsYWcsIGZvciBQeXRob24ncyBsb25nICh1bmJvdW5kZWQpIGludHMuICBJdCdzIG5vdCB1c2VkIGZvcgorICogUHl0aG9uJ3MgcmVndWxhciBpbnRzLgorICogUmV0dXJuIHZhbHVlOiAgYSBuZXcgUHlVbmljb2RlT2JqZWN0Kiwgb3IgTlVMTCBpZiBlcnJvci4KKyAqICAgICBUaGUgb3V0cHV0IHN0cmluZyBpcyBvZiB0aGUgZm9ybQorICogICAgICAgICAiLSI/ICgiMHgiIHwgIjBYIik/IGRpZ2l0KworICogICAgICIweCIvIjBYIiBhcmUgcHJlc2VudCBvbmx5IGZvciB4IGFuZCBYIGNvbnZlcnNpb25zLCB3aXRoIEZfQUxUCisgKiAgICAgICAgIHNldCBpbiBmbGFncy4gIFRoZSBjYXNlIG9mIGhleCBkaWdpdHMgd2lsbCBiZSBjb3JyZWN0LAorICogICAgIFRoZXJlIHdpbGwgYmUgYXQgbGVhc3QgcHJlYyBkaWdpdHMsIHplcm8tZmlsbGVkIG9uIHRoZSBsZWZ0IGlmCisgKiAgICAgICAgIG5lY2Vzc2FyeSB0byBnZXQgdGhhdCBtYW55LgorICogdmFsICAgICAgICAgIG9iamVjdCB0byBiZSBjb252ZXJ0ZWQKKyAqIGZsYWdzICAgICAgICBiaXRtYXNrIG9mIGZvcm1hdCBmbGFnczsgb25seSBGX0FMVCBpcyBsb29rZWQgYXQKKyAqIHByZWMgICAgICAgICBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHM7IDAtZmlsbCBvbiBsZWZ0IGlmIG5lZWRlZAorICogdHlwZSAgICAgICAgIGEgY2hhcmFjdGVyIGluIFtkdW94WF07IHUgYWN0cyB0aGUgc2FtZSBhcyBkCisgKgorICogQ0FVVElPTjogIG8sIHggYW5kIFggY29udmVyc2lvbnMgb24gcmVndWxhciBpbnRzIGNhbiBuZXZlcgorICogcHJvZHVjZSBhICctJyBzaWduLCBidXQgY2FuIGZvciBQeXRob24ncyB1bmJvdW5kZWQgaW50cy4KKyAqLwogc3RhdGljIFB5T2JqZWN0KgogZm9ybWF0bG9uZyhQeU9iamVjdCAqdmFsLCBpbnQgZmxhZ3MsIGludCBwcmVjLCBpbnQgdHlwZSkKIHsKKyAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKICAgICBjaGFyICpidWY7Ci0gICAgaW50IGxlbjsKLSAgICBQeU9iamVjdCAqc3RyOyAvKiB0ZW1wb3Jhcnkgc3RyaW5nIG9iamVjdC4gKi8KLSAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIFB5X3NzaXplX3QgaTsKKyAgICBpbnQgc2lnbjsgICAgICAgICAgIC8qIDEgaWYgJy0nLCBlbHNlIDAgKi8KKyAgICBpbnQgbGVuOyAgICAgICAgICAgIC8qIG51bWJlciBvZiBjaGFyYWN0ZXJzICovCisgICAgUHlfc3NpemVfdCBsbGVuOworICAgIGludCBudW1kaWdpdHM7ICAgICAgLyogbGVuID09IG51bW5vbmRpZ2l0cyArIG51bWRpZ2l0cyAqLworICAgIGludCBudW1ub25kaWdpdHMgPSAwOwogCi0gICAgc3RyID0gX1B5Qnl0ZXNfRm9ybWF0TG9uZyh2YWwsIGZsYWdzLCBwcmVjLCB0eXBlLCAmYnVmLCAmbGVuKTsKLSAgICBpZiAoIXN0cikKKyAgICAvKiBBdm9pZCBleGNlZWRpbmcgU1NJWkVfVF9NQVggKi8KKyAgICBpZiAocHJlYyA+IElOVF9NQVgtMykgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJwcmVjaXNpb24gdG9vIGxhcmdlIik7CiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHJlc3VsdCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZShidWYsIGxlbik7Ci0gICAgUHlfREVDUkVGKHN0cik7CisgICAgfQorCisgICAgYXNzZXJ0KFB5TG9uZ19DaGVjayh2YWwpKTsKKworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgJ2QnOgorICAgIGNhc2UgJ3UnOgorICAgICAgICAvKiBTcGVjaWFsLWNhc2UgYm9vbGVhbjogd2Ugd2FudCAwLzEgKi8KKyAgICAgICAgaWYgKFB5Qm9vbF9DaGVjayh2YWwpKQorICAgICAgICAgICAgcmVzdWx0ID0gUHlOdW1iZXJfVG9CYXNlKHZhbCwgMTApOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXN1bHQgPSBQeV9UWVBFKHZhbCktPnRwX3N0cih2YWwpOworICAgICAgICBicmVhazsKKyAgICBjYXNlICdvJzoKKyAgICAgICAgbnVtbm9uZGlnaXRzID0gMjsKKyAgICAgICAgcmVzdWx0ID0gUHlOdW1iZXJfVG9CYXNlKHZhbCwgOCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgJ3gnOgorICAgIGNhc2UgJ1gnOgorICAgICAgICBudW1ub25kaWdpdHMgPSAyOworICAgICAgICByZXN1bHQgPSBQeU51bWJlcl9Ub0Jhc2UodmFsLCAxNik7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGFzc2VydCghIid0eXBlJyBub3QgaW4gW2R1b3hYXSIpOworICAgIH0KKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBhc3NlcnQodW5pY29kZV9tb2RpZmlhYmxlKHJlc3VsdCkpOworICAgIGFzc2VydChQeVVuaWNvZGVfSVNfUkVBRFkocmVzdWx0KSk7CisgICAgYXNzZXJ0KFB5VW5pY29kZV9JU19BU0NJSShyZXN1bHQpKTsKKworICAgIC8qIFRvIG1vZGlmeSB0aGUgc3RyaW5nIGluLXBsYWNlLCB0aGVyZSBjYW4gb25seSBiZSBvbmUgcmVmZXJlbmNlLiAqLworICAgIGlmIChQeV9SRUZDTlQocmVzdWx0KSAhPSAxKSB7CisgICAgICAgIFB5RXJyX0JhZEludGVybmFsQ2FsbCgpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgYnVmID0gUHlVbmljb2RlX0RBVEEocmVzdWx0KTsKKyAgICBsbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocmVzdWx0KTsKKyAgICBpZiAobGxlbiA+IElOVF9NQVgpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5nIHRvbyBsYXJnZSBpbiBfUHlCeXRlc19Gb3JtYXRMb25nIik7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBsZW4gPSAoaW50KWxsZW47CisgICAgc2lnbiA9IGJ1ZlswXSA9PSAnLSc7CisgICAgbnVtbm9uZGlnaXRzICs9IHNpZ247CisgICAgbnVtZGlnaXRzID0gbGVuIC0gbnVtbm9uZGlnaXRzOworICAgIGFzc2VydChudW1kaWdpdHMgPiAwKTsKKworICAgIC8qIEdldCByaWQgb2YgYmFzZSBtYXJrZXIgdW5sZXNzIEZfQUxUICovCisgICAgaWYgKCgoZmxhZ3MgJiBGX0FMVCkgPT0gMCAmJgorICAgICAgICAodHlwZSA9PSAnbycgfHwgdHlwZSA9PSAneCcgfHwgdHlwZSA9PSAnWCcpKSkgeworICAgICAgICBhc3NlcnQoYnVmW3NpZ25dID09ICcwJyk7CisgICAgICAgIGFzc2VydChidWZbc2lnbisxXSA9PSAneCcgfHwgYnVmW3NpZ24rMV0gPT0gJ1gnIHx8CisgICAgICAgICAgICAgICBidWZbc2lnbisxXSA9PSAnbycpOworICAgICAgICBudW1ub25kaWdpdHMgLT0gMjsKKyAgICAgICAgYnVmICs9IDI7CisgICAgICAgIGxlbiAtPSAyOworICAgICAgICBpZiAoc2lnbikKKyAgICAgICAgICAgIGJ1ZlswXSA9ICctJzsKKyAgICAgICAgYXNzZXJ0KGxlbiA9PSBudW1ub25kaWdpdHMgKyBudW1kaWdpdHMpOworICAgICAgICBhc3NlcnQobnVtZGlnaXRzID4gMCk7CisgICAgfQorCisgICAgLyogRmlsbCB3aXRoIGxlYWRpbmcgemVyb2VzIHRvIG1lZXQgbWluaW11bSB3aWR0aC4gKi8KKyAgICBpZiAocHJlYyA+IG51bWRpZ2l0cykgeworICAgICAgICBQeU9iamVjdCAqcjEgPSBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bW5vbmRpZ2l0cyArIHByZWMpOworICAgICAgICBjaGFyICpiMTsKKyAgICAgICAgaWYgKCFyMSkgeworICAgICAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7CisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBiMSA9IFB5Qnl0ZXNfQVNfU1RSSU5HKHIxKTsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bW5vbmRpZ2l0czsgKytpKQorICAgICAgICAgICAgKmIxKysgPSAqYnVmKys7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBwcmVjIC0gbnVtZGlnaXRzOyBpKyspCisgICAgICAgICAgICAqYjErKyA9ICcwJzsKKyAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bWRpZ2l0czsgaSsrKQorICAgICAgICAgICAgKmIxKysgPSAqYnVmKys7CisgICAgICAgICpiMSA9ICdcMCc7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXN1bHQgPSByMTsKKyAgICAgICAgYnVmID0gUHlCeXRlc19BU19TVFJJTkcocmVzdWx0KTsKKyAgICAgICAgbGVuID0gbnVtbm9uZGlnaXRzICsgcHJlYzsKKyAgICB9CisKKyAgICAvKiBGaXggdXAgY2FzZSBmb3IgaGV4IGNvbnZlcnNpb25zLiAqLworICAgIGlmICh0eXBlID09ICdYJykgeworICAgICAgICAvKiBOZWVkIHRvIGNvbnZlcnQgYWxsIGxvd2VyIGNhc2UgbGV0dGVycyB0byB1cHBlciBjYXNlLgorICAgICAgICAgICBhbmQgbmVlZCB0byBjb252ZXJ0IDB4IHRvIDBYIChhbmQgLTB4IHRvIC0wWCkuICovCisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykKKyAgICAgICAgICAgIGlmIChidWZbaV0gPj0gJ2EnICYmIGJ1ZltpXSA8PSAneCcpCisgICAgICAgICAgICAgICAgYnVmW2ldIC09ICdhJy0nQSc7CisgICAgfQorICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHJlc3VsdCkgfHwgbGVuICE9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHJlc3VsdCkpIHsKKyAgICAgICAgUHlPYmplY3QgKnVuaWNvZGU7CisgICAgICAgIHVuaWNvZGUgPSBfUHlVbmljb2RlX0Zyb21BU0NJSShidWYsIGxlbik7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXN1bHQgPSB1bmljb2RlOworICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW50Ci1mb3JtYXRjaGFyKFB5X1VOSUNPREUgKmJ1ZiwKLSAgICAgICAgICAgc2l6ZV90IGJ1ZmxlbiwKLSAgICAgICAgICAgUHlPYmplY3QgKnYpCitzdGF0aWMgUHlfVUNTNAorZm9ybWF0Y2hhcihQeU9iamVjdCAqdikKIHsKICAgICAvKiBwcmVzdW1lIHRoYXQgdGhlIGJ1ZmZlciBpcyBhdCBsZWFzdCAzIGNoYXJhY3RlcnMgbG9uZyAqLwogICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sodikpIHsKLSAgICAgICAgaWYgKFB5VW5pY29kZV9HRVRfU0laRSh2KSA9PSAxKSB7Ci0gICAgICAgICAgICBidWZbMF0gPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KVswXTsKLSAgICAgICAgICAgIGJ1ZlsxXSA9ICdcMCc7Ci0gICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9HRVRfTEVOR1RIKHYpID09IDEpIHsKKyAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfUkVBRF9DSEFSKHYsIDApOwogICAgICAgICB9Ci0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotICAgICAgICBpZiAoUHlVbmljb2RlX0dFVF9TSVpFKHYpID09IDIpIHsKLSAgICAgICAgICAgIC8qIERlY29kZSBhIHZhbGlkIHN1cnJvZ2F0ZSBwYWlyICovCi0gICAgICAgICAgICBpbnQgYzAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KVswXTsKLSAgICAgICAgICAgIGludCBjMSA9IFB5VW5pY29kZV9BU19VTklDT0RFKHYpWzFdOwotICAgICAgICAgICAgaWYgKDB4RDgwMCA8PSBjMCAmJiBjMCA8PSAweERCRkYgJiYKLSAgICAgICAgICAgICAgICAweERDMDAgPD0gYzEgJiYgYzEgPD0gMHhERkZGKSB7Ci0gICAgICAgICAgICAgICAgYnVmWzBdID0gYzA7Ci0gICAgICAgICAgICAgICAgYnVmWzFdID0gYzE7Ci0gICAgICAgICAgICAgICAgYnVmWzJdID0gJ1wwJzsKLSAgICAgICAgICAgICAgICByZXR1cm4gMjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2VuZGlmCiAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICB9CiAgICAgZWxzZSB7CkBAIC05NDUwLDQ1ICsxMzQwNCwzNSBAQAogICAgICAgICBpZiAoeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQogICAgICAgICAgICAgZ290byBvbkVycm9yOwogCi0gICAgICAgIGlmICh4IDwgMCB8fCB4ID4gMHgxMGZmZmYpIHsKKyAgICAgICAgaWYgKHggPCAwIHx8IHggPiBNQVhfVU5JQ09ERSkgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVjIGFyZyBub3QgaW4gcmFuZ2UoMHgxMTAwMDApIik7Ci0gICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICByZXR1cm4gKFB5X1VDUzQpIC0xOwogICAgICAgICB9CiAKLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgIGlmICh4ID4gMHhmZmZmKSB7Ci0gICAgICAgICAgICB4IC09IDB4MTAwMDA7Ci0gICAgICAgICAgICBidWZbMF0gPSAoUHlfVU5JQ09ERSkoMHhEODAwIHwgKHggPj4gMTApKTsKLSAgICAgICAgICAgIGJ1ZlsxXSA9IChQeV9VTklDT0RFKSgweERDMDAgfCAoeCAmIDB4M0ZGKSk7Ci0gICAgICAgICAgICByZXR1cm4gMjsKLSAgICAgICAgfQotI2VuZGlmCi0gICAgICAgIGJ1ZlswXSA9IChQeV9VTklDT0RFKSB4OwotICAgICAgICBidWZbMV0gPSAnXDAnOwotICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgcmV0dXJuIChQeV9VQ1M0KSB4OwogICAgIH0KIAogICBvbkVycm9yOgogICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICIlYyByZXF1aXJlcyBpbnQgb3IgY2hhciIpOwotICAgIHJldHVybiAtMTsKKyAgICByZXR1cm4gKFB5X1VDUzQpIC0xOwogfQogCi0vKiBmbXQlKHYxLHYyLC4uLikgaXMgcm91Z2hseSBlcXVpdmFsZW50IHRvIHNwcmludGYoZm10LCB2MSwgdjIsIC4uLikKLSAgIEZPUk1BVEJVRkxFTiBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBidWZmZXIgaW4gd2hpY2ggY2hhcnMgYXJlIGZvcm1hdHRlZC4KLSovCi0jZGVmaW5lIEZPUk1BVEJVRkxFTiAoc2l6ZV90KTEwCi0KLVB5T2JqZWN0ICpQeVVuaWNvZGVfRm9ybWF0KFB5T2JqZWN0ICpmb3JtYXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqYXJncykKK1B5T2JqZWN0ICoKK1B5VW5pY29kZV9Gb3JtYXQoUHlPYmplY3QgKmZvcm1hdCwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgUHlfVU5JQ09ERSAqZm10LCAqcmVzOwotICAgIFB5X3NzaXplX3QgZm10Y250LCByZXNjbnQsIHJlc2xlbiwgYXJnbGVuLCBhcmdpZHg7CisgICAgUHlfc3NpemVfdCBmbXRjbnQsIGZtdHBvcywgYXJnbGVuLCBhcmdpZHg7CiAgICAgaW50IGFyZ3Nfb3duZWQgPSAwOwotICAgIFB5VW5pY29kZU9iamVjdCAqcmVzdWx0ID0gTlVMTDsKICAgICBQeU9iamVjdCAqZGljdCA9IE5VTEw7CisgICAgUHlPYmplY3QgKnRlbXAgPSBOVUxMOworICAgIFB5T2JqZWN0ICpzZWNvbmQgPSBOVUxMOwogICAgIFB5T2JqZWN0ICp1Zm9ybWF0OworICAgIHZvaWQgKmZtdDsKKyAgICBlbnVtIFB5VW5pY29kZV9LaW5kIGtpbmQsIGZtdGtpbmQ7CisgICAgX1B5VW5pY29kZVdyaXRlciB3cml0ZXI7CisgICAgUHlfc3NpemVfdCBzdWJsZW47CisgICAgUHlfVUNTNCBtYXhjaGFyOwogCiAgICAgaWYgKGZvcm1hdCA9PSBOVUxMIHx8IGFyZ3MgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKQEAgLTk0OTcsMTQgKzEzNDQxLDE1IEBACiAgICAgdWZvcm1hdCA9IFB5VW5pY29kZV9Gcm9tT2JqZWN0KGZvcm1hdCk7CiAgICAgaWYgKHVmb3JtYXQgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgZm10ID0gUHlVbmljb2RlX0FTX1VOSUNPREUodWZvcm1hdCk7Ci0gICAgZm10Y250ID0gUHlVbmljb2RlX0dFVF9TSVpFKHVmb3JtYXQpOworICAgIGlmIChQeVVuaWNvZGVfUkVBRFkodWZvcm1hdCkgPT0gLTEpCisgICAgICAgIFB5X0RFQ1JFRih1Zm9ybWF0KTsKIAotICAgIHJlc2xlbiA9IHJlc2NudCA9IGZtdGNudCArIDEwMDsKLSAgICByZXN1bHQgPSBfUHlVbmljb2RlX05ldyhyZXNsZW4pOwotICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKLSAgICAgICAgZ290byBvbkVycm9yOwotICAgIHJlcyA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlc3VsdCk7CisgICAgZm10ID0gUHlVbmljb2RlX0RBVEEodWZvcm1hdCk7CisgICAgZm10a2luZCA9IFB5VW5pY29kZV9LSU5EKHVmb3JtYXQpOworICAgIGZtdGNudCA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHVmb3JtYXQpOworICAgIGZtdHBvcyA9IDA7CisKKyAgICBfUHlVbmljb2RlV3JpdGVyX0luaXQoJndyaXRlciwgZm10Y250ICsgMTAwKTsKIAogICAgIGlmIChQeVR1cGxlX0NoZWNrKGFyZ3MpKSB7CiAgICAgICAgIGFyZ2xlbiA9IFB5VHVwbGVfU2l6ZShhcmdzKTsKQEAgLTk1MTksMzUgKzEzNDY0LDQ2IEBACiAgICAgICAgIGRpY3QgPSBhcmdzOwogCiAgICAgd2hpbGUgKC0tZm10Y250ID49IDApIHsKLSAgICAgICAgaWYgKCpmbXQgIT0gJyUnKSB7Ci0gICAgICAgICAgICBpZiAoLS1yZXNjbnQgPCAwKSB7Ci0gICAgICAgICAgICAgICAgcmVzY250ID0gZm10Y250ICsgMTAwOwotICAgICAgICAgICAgICAgIHJlc2xlbiArPSByZXNjbnQ7Ci0gICAgICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVfUmVzaXplKCZyZXN1bHQsIHJlc2xlbikgPCAwKQotICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgcmVzID0gUHlVbmljb2RlX0FTX1VOSUNPREUocmVzdWx0KSArIHJlc2xlbiAtIHJlc2NudDsKLSAgICAgICAgICAgICAgICAtLXJlc2NudDsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEKGZtdGtpbmQsIGZtdCwgZm10cG9zKSAhPSAnJScpIHsKKyAgICAgICAgICAgIFB5X3NzaXplX3Qgbm9uZm10cG9zOworICAgICAgICAgICAgbm9uZm10cG9zID0gZm10cG9zKys7CisgICAgICAgICAgICB3aGlsZSAoZm10Y250ID49IDAgJiYKKyAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfUkVBRChmbXRraW5kLCBmbXQsIGZtdHBvcykgIT0gJyUnKSB7CisgICAgICAgICAgICAgICAgZm10cG9zKys7CisgICAgICAgICAgICAgICAgZm10Y250LS07CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAqcmVzKysgPSAqZm10Kys7CisgICAgICAgICAgICBpZiAoZm10Y250IDwgMCkKKyAgICAgICAgICAgICAgICBmbXRwb3MtLTsKKyAgICAgICAgICAgIHN1YmxlbiA9IGZtdHBvcyAtIG5vbmZtdHBvczsKKyAgICAgICAgICAgIG1heGNoYXIgPSBfUHlVbmljb2RlX0ZpbmRNYXhDaGFyKHVmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25mbXRwb3MsIG5vbmZtdHBvcyArIHN1Ymxlbik7CisgICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKCZ3cml0ZXIsIHN1YmxlbiwgbWF4Y2hhcikgPT0gLTEpCisgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworCisgICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyh3cml0ZXIuYnVmZmVyLCB3cml0ZXIucG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWZvcm1hdCwgbm9uZm10cG9zLCBzdWJsZW4pOworICAgICAgICAgICAgd3JpdGVyLnBvcyArPSBzdWJsZW47CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvKiBHb3QgYSBmb3JtYXQgc3BlY2lmaWVyICovCiAgICAgICAgICAgICBpbnQgZmxhZ3MgPSAwOwogICAgICAgICAgICAgUHlfc3NpemVfdCB3aWR0aCA9IC0xOwogICAgICAgICAgICAgaW50IHByZWMgPSAtMTsKLSAgICAgICAgICAgIFB5X1VOSUNPREUgYyA9ICdcMCc7Ci0gICAgICAgICAgICBQeV9VTklDT0RFIGZpbGw7CisgICAgICAgICAgICBQeV9VQ1M0IGMgPSAnXDAnOworICAgICAgICAgICAgUHlfVUNTNCBmaWxsOworICAgICAgICAgICAgaW50IHNpZ247CisgICAgICAgICAgICBQeV9VQ1M0IHNpZ25jaGFyOwogICAgICAgICAgICAgaW50IGlzbnVtb2s7CiAgICAgICAgICAgICBQeU9iamVjdCAqdiA9IE5VTEw7Ci0gICAgICAgICAgICBQeU9iamVjdCAqdGVtcCA9IE5VTEw7Ci0gICAgICAgICAgICBQeV9VTklDT0RFICpwYnVmOwotICAgICAgICAgICAgUHlfVU5JQ09ERSBzaWduOwotICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47Ci0gICAgICAgICAgICBQeV9VTklDT0RFIGZvcm1hdGJ1ZltGT1JNQVRCVUZMRU5dOyAvKiBGb3IgZm9ybWF0Y2hhcigpICovCisgICAgICAgICAgICB2b2lkICpwYnVmID0gTlVMTDsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgcGluZGV4LCBsZW47CisgICAgICAgICAgICBQeV9VQ1M0IGJ1Zm1heGNoYXI7CisgICAgICAgICAgICBQeV9zc2l6ZV90IGJ1ZmxlbjsKIAotICAgICAgICAgICAgZm10Kys7Ci0gICAgICAgICAgICBpZiAoKmZtdCA9PSAnKCcpIHsKLSAgICAgICAgICAgICAgICBQeV9VTklDT0RFICprZXlzdGFydDsKKyAgICAgICAgICAgIGZtdHBvcysrOworICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGZtdGtpbmQsIGZtdCwgZm10cG9zKTsKKyAgICAgICAgICAgIGlmIChjID09ICcoJykgeworICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qga2V5c3RhcnQ7CiAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBrZXlsZW47CiAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmtleTsKICAgICAgICAgICAgICAgICBpbnQgcGNvdW50ID0gMTsKQEAgLTk1NTcsMzQgKzEzNTEzLDI2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9ybWF0IHJlcXVpcmVzIGEgbWFwcGluZyIpOwogICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICsrZm10OworICAgICAgICAgICAgICAgICsrZm10cG9zOwogICAgICAgICAgICAgICAgIC0tZm10Y250OwotICAgICAgICAgICAgICAgIGtleXN0YXJ0ID0gZm10OworICAgICAgICAgICAgICAgIGtleXN0YXJ0ID0gZm10cG9zOwogICAgICAgICAgICAgICAgIC8qIFNraXAgb3ZlciBiYWxhbmNlZCBwYXJlbnRoZXNlcyAqLwogICAgICAgICAgICAgICAgIHdoaWxlIChwY291bnQgPiAwICYmIC0tZm10Y250ID49IDApIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCpmbXQgPT0gJyknKQorICAgICAgICAgICAgICAgICAgICBjID0gUHlVbmljb2RlX1JFQUQoZm10a2luZCwgZm10LCBmbXRwb3MpOworICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnKScpCiAgICAgICAgICAgICAgICAgICAgICAgICAtLXBjb3VudDsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKmZtdCA9PSAnKCcpCisgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGMgPT0gJygnKQogICAgICAgICAgICAgICAgICAgICAgICAgKytwY291bnQ7Ci0gICAgICAgICAgICAgICAgICAgIGZtdCsrOworICAgICAgICAgICAgICAgICAgICBmbXRwb3MrKzsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAga2V5bGVuID0gZm10IC0ga2V5c3RhcnQgLSAxOworICAgICAgICAgICAgICAgIGtleWxlbiA9IGZtdHBvcyAtIGtleXN0YXJ0IC0gMTsKICAgICAgICAgICAgICAgICBpZiAoZm10Y250IDwgMCB8fCBwY291bnQgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImluY29tcGxldGUgZm9ybWF0IGtleSIpOwogICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICAgICAgfQotI2lmIDAKLSAgICAgICAgICAgICAgICAvKiBrZXlzIGFyZSBjb252ZXJ0ZWQgdG8gc3RyaW5ncyB1c2luZyBVVEYtOCBhbmQKLSAgICAgICAgICAgICAgICAgICB0aGVuIGxvb2tlZCB1cCBzaW5jZSBQeXRob24gdXNlcyBzdHJpbmdzIHRvIGhvbGQKLSAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXMgbmFtZXMgZXRjLiBpbiBpdHMgbmFtZXNwYWNlcyBhbmQgd2UKLSAgICAgICAgICAgICAgICAgICB3b3VsZG4ndCB3YW50IHRvIGJyZWFrIGNvbW1vbiBpZGlvbXMuICovCi0gICAgICAgICAgICAgICAga2V5ID0gUHlVbmljb2RlX0VuY29kZVVURjgoa2V5c3RhcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5bGVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOwotI2Vsc2UKLSAgICAgICAgICAgICAgICBrZXkgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoa2V5c3RhcnQsIGtleWxlbik7Ci0jZW5kaWYKKyAgICAgICAgICAgICAgICBrZXkgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKHVmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzdGFydCwga2V5c3RhcnQgKyBrZXlsZW4pOwogICAgICAgICAgICAgICAgIGlmIChrZXkgPT0gTlVMTCkKICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgICAgIGlmIChhcmdzX293bmVkKSB7CkBAIC05NjAxLDcgKzEzNTQ5LDggQEAKICAgICAgICAgICAgICAgICBhcmdpZHggPSAtMjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHdoaWxlICgtLWZtdGNudCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgc3dpdGNoIChjID0gKmZtdCsrKSB7CisgICAgICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGZtdGtpbmQsIGZtdCwgZm10cG9zKyspOworICAgICAgICAgICAgICAgIHN3aXRjaCAoYykgewogICAgICAgICAgICAgICAgIGNhc2UgJy0nOiBmbGFncyB8PSBGX0xKVVNUOyBjb250aW51ZTsKICAgICAgICAgICAgICAgICBjYXNlICcrJzogZmxhZ3MgfD0gRl9TSUdOOyBjb250aW51ZTsKICAgICAgICAgICAgICAgICBjYXNlICcgJzogZmxhZ3MgfD0gRl9CTEFOSzsgY29udGludWU7CkBAIC05NjI3LDE1ICsxMzU3NiwxOCBAQAogICAgICAgICAgICAgICAgICAgICB3aWR0aCA9IC13aWR0aDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKC0tZm10Y250ID49IDApCi0gICAgICAgICAgICAgICAgICAgIGMgPSAqZm10Kys7CisgICAgICAgICAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChmbXRraW5kLCBmbXQsIGZtdHBvcysrKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgaWYgKGMgPj0gJzAnICYmIGMgPD0gJzknKSB7CiAgICAgICAgICAgICAgICAgd2lkdGggPSBjIC0gJzAnOwogICAgICAgICAgICAgICAgIHdoaWxlICgtLWZtdGNudCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGMgPSAqZm10Kys7CisgICAgICAgICAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChmbXRraW5kLCBmbXQsIGZtdHBvcysrKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykKICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBpZiAoKHdpZHRoKjEwKSAvIDEwICE9IHdpZHRoKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIFNpbmNlIGMgaXMgdW5zaWduZWQsIHRoZSBSSFMgd291bGQgZW5kIHVwIGFzIHVuc2lnbmVkLAorICAgICAgICAgICAgICAgICAgICAgICBtaXhpbmcgc2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uLiBTaW5jZSBjIGlzIGJldHdlZW4KKyAgICAgICAgICAgICAgICAgICAgICAgJzAnIGFuZCAnOScsIGNhc3RpbmcgdG8gaW50IGlzIHNhZmUuICovCisgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+IChQWV9TU0laRV9UX01BWCAtICgoaW50KWMgLSAnMCcpKSAvIDEwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkdGggdG9vIGJpZyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwpAQCAtOTY0Niw3ICsxMzU5OCw3IEBACiAgICAgICAgICAgICBpZiAoYyA9PSAnLicpIHsKICAgICAgICAgICAgICAgICBwcmVjID0gMDsKICAgICAgICAgICAgICAgICBpZiAoLS1mbXRjbnQgPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgYyA9ICpmbXQrKzsKKyAgICAgICAgICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGZtdGtpbmQsIGZtdCwgZm10cG9zKyspOwogICAgICAgICAgICAgICAgIGlmIChjID09ICcqJykgewogICAgICAgICAgICAgICAgICAgICB2ID0gZ2V0bmV4dGFyZyhhcmdzLCBhcmdsZW4sICZhcmdpZHgpOwogICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKQpAQCAtOTY2MiwxNSArMTM2MTQsMTUgQEAKICAgICAgICAgICAgICAgICAgICAgaWYgKHByZWMgPCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgcHJlYyA9IDA7CiAgICAgICAgICAgICAgICAgICAgIGlmICgtLWZtdGNudCA+PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgYyA9ICpmbXQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChmbXRraW5kLCBmbXQsIGZtdHBvcysrKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHsKICAgICAgICAgICAgICAgICAgICAgcHJlYyA9IGMgLSAnMCc7CiAgICAgICAgICAgICAgICAgICAgIHdoaWxlICgtLWZtdGNudCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjID0gKmZtdCsrOworICAgICAgICAgICAgICAgICAgICAgICAgYyA9IFB5VW5pY29kZV9SRUFEKGZtdGtpbmQsIGZtdCwgZm10cG9zKyspOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPCAnMCcgfHwgYyA+ICc5JykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocHJlYyoxMCkgLyAxMCAhPSBwcmVjKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlYyA+IChJTlRfTUFYIC0gKChpbnQpYyAtICcwJykpIC8gMTApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByZWMgdG9vIGJpZyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKQEAgLTk2ODIsNyArMTM2MzQsNyBAQAogICAgICAgICAgICAgaWYgKGZtdGNudCA+PSAwKSB7CiAgICAgICAgICAgICAgICAgaWYgKGMgPT0gJ2gnIHx8IGMgPT0gJ2wnIHx8IGMgPT0gJ0wnKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICgtLWZtdGNudCA+PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgYyA9ICpmbXQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRChmbXRraW5kLCBmbXQsIGZtdHBvcysrKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoZm10Y250IDwgMCkgewpAQCAtOTY5MCwyNSArMTM2NDIsMzYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImluY29tcGxldGUgZm9ybWF0Iik7CiAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGMgIT0gJyUnKSB7Ci0gICAgICAgICAgICAgICAgdiA9IGdldG5leHRhcmcoYXJncywgYXJnbGVuLCAmYXJnaWR4KTsKLSAgICAgICAgICAgICAgICBpZiAodiA9PSBOVUxMKQorICAgICAgICAgICAgaWYgKGZtdGNudCA9PSAwKQorICAgICAgICAgICAgICAgIHdyaXRlci5vdmVyYWxsb2NhdGUgPSAwOworCisgICAgICAgICAgICBpZiAoYyA9PSAnJScpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKCZ3cml0ZXIsIDEsICclJykgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUod3JpdGVyLmtpbmQsIHdyaXRlci5kYXRhLCB3cml0ZXIucG9zLCAnJScpOworICAgICAgICAgICAgICAgIHdyaXRlci5wb3MgKz0gMTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdiA9IGdldG5leHRhcmcoYXJncywgYXJnbGVuLCAmYXJnaWR4KTsKKyAgICAgICAgICAgIGlmICh2ID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworCiAgICAgICAgICAgICBzaWduID0gMDsKKyAgICAgICAgICAgIHNpZ25jaGFyID0gJ1wwJzsKICAgICAgICAgICAgIGZpbGwgPSAnICc7CiAgICAgICAgICAgICBzd2l0Y2ggKGMpIHsKIAotICAgICAgICAgICAgY2FzZSAnJSc6Ci0gICAgICAgICAgICAgICAgcGJ1ZiA9IGZvcm1hdGJ1ZjsKLSAgICAgICAgICAgICAgICAvKiBwcmVzdW1lIHRoYXQgYnVmZmVyIGxlbmd0aCBpcyBhdCBsZWFzdCAxICovCi0gICAgICAgICAgICAgICAgcGJ1ZlswXSA9ICclJzsKLSAgICAgICAgICAgICAgICBsZW4gPSAxOwotICAgICAgICAgICAgICAgIGJyZWFrOwotCiAgICAgICAgICAgICBjYXNlICdzJzoKICAgICAgICAgICAgIGNhc2UgJ3InOgogICAgICAgICAgICAgY2FzZSAnYSc6CisgICAgICAgICAgICAgICAgaWYgKFB5TG9uZ19DaGVja0V4YWN0KHYpICYmIHdpZHRoID09IC0xICYmIHByZWMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogRmFzdCBwYXRoICovCisgICAgICAgICAgICAgICAgICAgIGlmIChfUHlMb25nX0Zvcm1hdFdyaXRlcigmd3JpdGVyLCB2LCAxMCwgZmxhZ3MgJiBGX0FMVCkgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dGFyZzsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QodikgJiYgYyA9PSAncycpIHsKICAgICAgICAgICAgICAgICAgICAgdGVtcCA9IHY7CiAgICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih0ZW1wKTsKQEAgLTk3MjAsMjEgKzEzNjgzLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBQeU9iamVjdF9SZXByKHYpOwogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wID0gUHlPYmplY3RfQVNDSUkodik7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wID09IE5VTEwpCi0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sodGVtcCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAvKiBub3RoaW5nIHRvIGRvICovOwotICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih0ZW1wKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGFyZ3VtZW50IGhhcyBub24tc3RyaW5nIHN0cigpIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcGJ1ZiA9IFB5VW5pY29kZV9BU19VTklDT0RFKHRlbXApOwotICAgICAgICAgICAgICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRSh0ZW1wKTsKLSAgICAgICAgICAgICAgICBpZiAocHJlYyA+PSAwICYmIGxlbiA+IHByZWMpCi0gICAgICAgICAgICAgICAgICAgIGxlbiA9IHByZWM7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgIGNhc2UgJ2knOgpAQCAtOTc0Myw2ICsxMzY5MiwzMiBAQAogICAgICAgICAgICAgY2FzZSAnbyc6CiAgICAgICAgICAgICBjYXNlICd4JzoKICAgICAgICAgICAgIGNhc2UgJ1gnOgorICAgICAgICAgICAgICAgIGlmIChQeUxvbmdfQ2hlY2tFeGFjdCh2KQorICAgICAgICAgICAgICAgICAgICAmJiB3aWR0aCA9PSAtMSAmJiBwcmVjID09IC0xCisgICAgICAgICAgICAgICAgICAgICYmICEoZmxhZ3MgJiAoRl9TSUdOIHwgRl9CTEFOSykpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLyogRmFzdCBwYXRoICovCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaChjKQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICAgICAgICAgICAgICBjYXNlICdpJzoKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAndSc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX1B5TG9uZ19Gb3JtYXRXcml0ZXIoJndyaXRlciwgdiwgMTAsIGZsYWdzICYgRl9BTFQpID09IC0xKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dGFyZzsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAneCc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX1B5TG9uZ19Gb3JtYXRXcml0ZXIoJndyaXRlciwgdiwgMTYsIGZsYWdzICYgRl9BTFQpID09IC0xKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dGFyZzsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAnbyc6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX1B5TG9uZ19Gb3JtYXRXcml0ZXIoJndyaXRlciwgdiwgOCwgZmxhZ3MgJiBGX0FMVCkgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBuZXh0YXJnOworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICBpc251bW9rID0gMDsKICAgICAgICAgICAgICAgICBpZiAoUHlOdW1iZXJfQ2hlY2sodikpIHsKICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmlvYmo9TlVMTDsKQEAgLTk3NTcsMTMgKzEzNzMyLDkgQEAKICAgICAgICAgICAgICAgICAgICAgaWYgKGlvYmohPU5VTEwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChQeUxvbmdfQ2hlY2soaW9iaikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc251bW9rID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wID0gZm9ybWF0bG9uZyhpb2JqLCBmbGFncywgcHJlYywgKGMgPT0gJ2knPyAnZCc6IGMpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoaW9iaik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0ZW1wKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGJ1ZiA9IFB5VW5pY29kZV9BU19VTklDT0RFKHRlbXApOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRSh0ZW1wKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduID0gMTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihpb2JqKTsKQEAgLTk3ODYsMjIgKzEzNzU3LDM4IEBACiAgICAgICAgICAgICBjYXNlICdGJzoKICAgICAgICAgICAgIGNhc2UgJ2cnOgogICAgICAgICAgICAgY2FzZSAnRyc6Ci0gICAgICAgICAgICAgICAgdGVtcCA9IGZvcm1hdGZsb2F0KHYsIGZsYWdzLCBwcmVjLCBjKTsKLSAgICAgICAgICAgICAgICBpZiAoIXRlbXApCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKLSAgICAgICAgICAgICAgICBwYnVmID0gUHlVbmljb2RlX0FTX1VOSUNPREUodGVtcCk7Ci0gICAgICAgICAgICAgICAgbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKHRlbXApOworICAgICAgICAgICAgICAgIGlmICh3aWR0aCA9PSAtMSAmJiBwcmVjID09IC0xCisgICAgICAgICAgICAgICAgICAgICYmICEoZmxhZ3MgJiAoRl9TSUdOIHwgRl9CTEFOSykpKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgLyogRmFzdCBwYXRoICovCisgICAgICAgICAgICAgICAgICAgIGlmIChmb3JtYXRmbG9hdCh2LCBmbGFncywgcHJlYywgYywgTlVMTCwgJndyaXRlcikgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gbmV4dGFyZzsKKyAgICAgICAgICAgICAgICB9CisKICAgICAgICAgICAgICAgICBzaWduID0gMTsKICAgICAgICAgICAgICAgICBpZiAoZmxhZ3MgJiBGX1pFUk8pCiAgICAgICAgICAgICAgICAgICAgIGZpbGwgPSAnMCc7CisgICAgICAgICAgICAgICAgaWYgKGZvcm1hdGZsb2F0KHYsIGZsYWdzLCBwcmVjLCBjLCAmdGVtcCwgTlVMTCkgPT0gLTEpCisgICAgICAgICAgICAgICAgICAgIHRlbXAgPSBOVUxMOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICBjYXNlICdjJzoKLSAgICAgICAgICAgICAgICBwYnVmID0gZm9ybWF0YnVmOwotICAgICAgICAgICAgICAgIGxlbiA9IGZvcm1hdGNoYXIocGJ1Ziwgc2l6ZW9mKGZvcm1hdGJ1Zikvc2l6ZW9mKFB5X1VOSUNPREUpLCB2KTsKLSAgICAgICAgICAgICAgICBpZiAobGVuIDwgMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBQeV9VQ1M0IGNoID0gZm9ybWF0Y2hhcih2KTsKKyAgICAgICAgICAgICAgICBpZiAoY2ggPT0gKFB5X1VDUzQpIC0xKQogICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgICAgICAgICAgaWYgKHdpZHRoID09IC0xICYmIHByZWMgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICAgICAgLyogRmFzdCBwYXRoICovCisgICAgICAgICAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUoJndyaXRlciwgMSwgY2gpID09IC0xKQorICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUod3JpdGVyLmtpbmQsIHdyaXRlci5kYXRhLCB3cml0ZXIucG9zLCBjaCk7CisgICAgICAgICAgICAgICAgICAgIHdyaXRlci5wb3MgKz0gMTsKKyAgICAgICAgICAgICAgICAgICAgZ290byBuZXh0YXJnOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZW1wID0gUHlVbmljb2RlX0Zyb21PcmRpbmFsKGNoKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKQEAgLTk4MDksOTAgKzEzNzk2LDEzOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXQgaW5kZXggJXpkIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDMxPD1jICYmIGM8PTEyNikgPyAoY2hhciljIDogJz8nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50KWMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChQeV9zc2l6ZV90KShmbXQgLSAxIC0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHVmb3JtYXQpKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZtdHBvcyAtIDEpOwogICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh0ZW1wID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgYXNzZXJ0IChQeVVuaWNvZGVfQ2hlY2sodGVtcCkpOworCisgICAgICAgICAgICBpZiAod2lkdGggPT0gLTEgJiYgcHJlYyA9PSAtMQorICAgICAgICAgICAgICAgICYmICEoZmxhZ3MgJiAoRl9TSUdOIHwgRl9CTEFOSykpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8qIEZhc3QgcGF0aCAqLworICAgICAgICAgICAgICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1dyaXRlU3RyKCZ3cml0ZXIsIHRlbXApID09IC0xKQorICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgICAgICAgICAgZ290byBuZXh0YXJnOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHRlbXApID09IC0xKSB7CisgICAgICAgICAgICAgICAgUHlfQ0xFQVIodGVtcCk7CisgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworICAgICAgICAgICAgfQorICAgICAgICAgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHRlbXApOworICAgICAgICAgICAgcGJ1ZiA9IFB5VW5pY29kZV9EQVRBKHRlbXApOworICAgICAgICAgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodGVtcCk7CisKKyAgICAgICAgICAgIGlmIChjID09ICdzJyB8fCBjID09ICdyJyB8fCBjID09ICdhJykgeworICAgICAgICAgICAgICAgIGlmIChwcmVjID49IDAgJiYgbGVuID4gcHJlYykKKyAgICAgICAgICAgICAgICAgICAgbGVuID0gcHJlYzsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyogcGJ1ZiBpcyBpbml0aWFsaXplZCBoZXJlLiAqLworICAgICAgICAgICAgcGluZGV4ID0gMDsKICAgICAgICAgICAgIGlmIChzaWduKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCpwYnVmID09ICctJyB8fCAqcGJ1ZiA9PSAnKycpIHsKLSAgICAgICAgICAgICAgICAgICAgc2lnbiA9ICpwYnVmKys7CisgICAgICAgICAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIHBidWYsIHBpbmRleCk7CisgICAgICAgICAgICAgICAgaWYgKGNoID09ICctJyB8fCBjaCA9PSAnKycpIHsKKyAgICAgICAgICAgICAgICAgICAgc2lnbmNoYXIgPSBjaDsKICAgICAgICAgICAgICAgICAgICAgbGVuLS07CisgICAgICAgICAgICAgICAgICAgIHBpbmRleCsrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlIGlmIChmbGFncyAmIEZfU0lHTikKLSAgICAgICAgICAgICAgICAgICAgc2lnbiA9ICcrJzsKKyAgICAgICAgICAgICAgICAgICAgc2lnbmNoYXIgPSAnKyc7CiAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZmxhZ3MgJiBGX0JMQU5LKQotICAgICAgICAgICAgICAgICAgICBzaWduID0gJyAnOworICAgICAgICAgICAgICAgICAgICBzaWduY2hhciA9ICcgJzsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAwOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHdpZHRoIDwgbGVuKQogICAgICAgICAgICAgICAgIHdpZHRoID0gbGVuOwotICAgICAgICAgICAgaWYgKHJlc2NudCAtIChzaWduICE9IDApIDwgd2lkdGgpIHsKLSAgICAgICAgICAgICAgICByZXNsZW4gLT0gcmVzY250OwotICAgICAgICAgICAgICAgIHJlc2NudCA9IHdpZHRoICsgZm10Y250ICsgMTAwOwotICAgICAgICAgICAgICAgIHJlc2xlbiArPSByZXNjbnQ7Ci0gICAgICAgICAgICAgICAgaWYgKHJlc2xlbiA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgUHlfWERFQ1JFRih0ZW1wKTsKLSAgICAgICAgICAgICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgICAgICAgICAgICAgZ290byBvbkVycm9yOworCisgICAgICAgICAgICAvKiBDb21wdXRlIHRoZSBsZW5ndGggYW5kIG1heGltdW0gY2hhcmFjdGVyIG9mIHRoZQorICAgICAgICAgICAgICAgd3JpdHRlbiBjaGFyYWN0ZXJzICovCisgICAgICAgICAgICBidWZtYXhjaGFyID0gMTI3OworICAgICAgICAgICAgaWYgKCEoZmxhZ3MgJiBGX0xKVVNUKSkgeworICAgICAgICAgICAgICAgIGlmIChzaWduKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgod2lkdGgtMSkgPiBsZW4pCisgICAgICAgICAgICAgICAgICAgICAgICBidWZtYXhjaGFyID0gTUFYX01BWENIQVIoYnVmbWF4Y2hhciwgZmlsbCk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChfUHlVbmljb2RlX1Jlc2l6ZSgmcmVzdWx0LCByZXNsZW4pIDwgMCkgewotICAgICAgICAgICAgICAgICAgICBQeV9YREVDUkVGKHRlbXApOwotICAgICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aCA+IGxlbikKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zm1heGNoYXIgPSBNQVhfTUFYQ0hBUihidWZtYXhjaGFyLCBmaWxsKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmVzID0gUHlVbmljb2RlX0FTX1VOSUNPREUocmVzdWx0KQotICAgICAgICAgICAgICAgICAgICArIHJlc2xlbiAtIHJlc2NudDsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG1heGNoYXIgPSBfUHlVbmljb2RlX0ZpbmRNYXhDaGFyKHRlbXAsIDAsIHBpbmRleCtsZW4pOworICAgICAgICAgICAgYnVmbWF4Y2hhciA9IE1BWF9NQVhDSEFSKGJ1Zm1heGNoYXIsIG1heGNoYXIpOworCisgICAgICAgICAgICBidWZsZW4gPSB3aWR0aDsKKyAgICAgICAgICAgIGlmIChzaWduICYmIGxlbiA9PSB3aWR0aCkKKyAgICAgICAgICAgICAgICBidWZsZW4rKzsKKworICAgICAgICAgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSgmd3JpdGVyLCBidWZsZW4sIGJ1Zm1heGNoYXIpID09IC0xKQorICAgICAgICAgICAgICAgIGdvdG8gb25FcnJvcjsKKworICAgICAgICAgICAgLyogV3JpdGUgY2hhcmFjdGVycyAqLwogICAgICAgICAgICAgaWYgKHNpZ24pIHsKLSAgICAgICAgICAgICAgICBpZiAoZmlsbCAhPSAnICcpCi0gICAgICAgICAgICAgICAgICAgICpyZXMrKyA9IHNpZ247Ci0gICAgICAgICAgICAgICAgcmVzY250LS07CisgICAgICAgICAgICAgICAgaWYgKGZpbGwgIT0gJyAnKSB7CisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9XUklURSh3cml0ZXIua2luZCwgd3JpdGVyLmRhdGEsIHdyaXRlci5wb3MsIHNpZ25jaGFyKTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVyLnBvcyArPSAxOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAod2lkdGggPiBsZW4pCiAgICAgICAgICAgICAgICAgICAgIHdpZHRoLS07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoKGZsYWdzICYgRl9BTFQpICYmIChjID09ICd4JyB8fCBjID09ICdYJyB8fCBjID09ICdvJykpIHsKLSAgICAgICAgICAgICAgICBhc3NlcnQocGJ1ZlswXSA9PSAnMCcpOwotICAgICAgICAgICAgICAgIGFzc2VydChwYnVmWzFdID09IGMpOworICAgICAgICAgICAgICAgIGFzc2VydChQeVVuaWNvZGVfUkVBRChraW5kLCBwYnVmLCBwaW5kZXgpID09ICcwJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9SRUFEKGtpbmQsIHBidWYsIHBpbmRleCArIDEpID09IGMpOwogICAgICAgICAgICAgICAgIGlmIChmaWxsICE9ICcgJykgewotICAgICAgICAgICAgICAgICAgICAqcmVzKysgPSAqcGJ1ZisrOwotICAgICAgICAgICAgICAgICAgICAqcmVzKysgPSAqcGJ1ZisrOworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUod3JpdGVyLmtpbmQsIHdyaXRlci5kYXRhLCB3cml0ZXIucG9zLCAnMCcpOworICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUod3JpdGVyLmtpbmQsIHdyaXRlci5kYXRhLCB3cml0ZXIucG9zKzEsIGMpOworICAgICAgICAgICAgICAgICAgICB3cml0ZXIucG9zICs9IDI7CisgICAgICAgICAgICAgICAgICAgIHBpbmRleCArPSAyOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXNjbnQgLT0gMjsKICAgICAgICAgICAgICAgICB3aWR0aCAtPSAyOwogICAgICAgICAgICAgICAgIGlmICh3aWR0aCA8IDApCiAgICAgICAgICAgICAgICAgICAgIHdpZHRoID0gMDsKICAgICAgICAgICAgICAgICBsZW4gLT0gMjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICh3aWR0aCA+IGxlbiAmJiAhKGZsYWdzICYgRl9MSlVTVCkpIHsKLSAgICAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgIC0tcmVzY250OwotICAgICAgICAgICAgICAgICAgICAqcmVzKysgPSBmaWxsOwotICAgICAgICAgICAgICAgIH0gd2hpbGUgKC0td2lkdGggPiBsZW4pOworICAgICAgICAgICAgICAgIHN1YmxlbiA9IHdpZHRoIC0gbGVuOworICAgICAgICAgICAgICAgIEZJTEwod3JpdGVyLmtpbmQsIHdyaXRlci5kYXRhLCBmaWxsLCB3cml0ZXIucG9zLCBzdWJsZW4pOworICAgICAgICAgICAgICAgIHdyaXRlci5wb3MgKz0gc3VibGVuOworICAgICAgICAgICAgICAgIHdpZHRoID0gbGVuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGZpbGwgPT0gJyAnKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNpZ24pCi0gICAgICAgICAgICAgICAgICAgICpyZXMrKyA9IHNpZ247CisgICAgICAgICAgICAgICAgaWYgKHNpZ24pIHsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKHdyaXRlci5raW5kLCB3cml0ZXIuZGF0YSwgd3JpdGVyLnBvcywgc2lnbmNoYXIpOworICAgICAgICAgICAgICAgICAgICB3cml0ZXIucG9zICs9IDE7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICgoZmxhZ3MgJiBGX0FMVCkgJiYgKGMgPT0gJ3gnIHx8IGMgPT0gJ1gnIHx8IGMgPT0gJ28nKSkgewotICAgICAgICAgICAgICAgICAgICBhc3NlcnQocGJ1ZlswXSA9PSAnMCcpOwotICAgICAgICAgICAgICAgICAgICBhc3NlcnQocGJ1ZlsxXSA9PSBjKTsKLSAgICAgICAgICAgICAgICAgICAgKnJlcysrID0gKnBidWYrKzsKLSAgICAgICAgICAgICAgICAgICAgKnJlcysrID0gKnBidWYrKzsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9SRUFEKGtpbmQsIHBidWYsIHBpbmRleCkgPT0gJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0KFB5VW5pY29kZV9SRUFEKGtpbmQsIHBidWYsIHBpbmRleCsxKSA9PSBjKTsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKHdyaXRlci5raW5kLCB3cml0ZXIuZGF0YSwgd3JpdGVyLnBvcywgJzAnKTsKKyAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKHdyaXRlci5raW5kLCB3cml0ZXIuZGF0YSwgd3JpdGVyLnBvcysxLCBjKTsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVyLnBvcyArPSAyOworICAgICAgICAgICAgICAgICAgICBwaW5kZXggKz0gMjsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBQeV9VTklDT0RFX0NPUFkocmVzLCBwYnVmLCBsZW4pOwotICAgICAgICAgICAgcmVzICs9IGxlbjsKLSAgICAgICAgICAgIHJlc2NudCAtPSBsZW47Ci0gICAgICAgICAgICB3aGlsZSAoLS13aWR0aCA+PSBsZW4pIHsKLSAgICAgICAgICAgICAgICAtLXJlc2NudDsKLSAgICAgICAgICAgICAgICAqcmVzKysgPSAnICc7CisKKyAgICAgICAgICAgIGlmIChsZW4pIHsKKyAgICAgICAgICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycyh3cml0ZXIuYnVmZmVyLCB3cml0ZXIucG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAsIHBpbmRleCwgbGVuKTsKKyAgICAgICAgICAgICAgICB3cml0ZXIucG9zICs9IGxlbjsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICh3aWR0aCA+IGxlbikgeworICAgICAgICAgICAgICAgIHN1YmxlbiA9IHdpZHRoIC0gbGVuOworICAgICAgICAgICAgICAgIEZJTEwod3JpdGVyLmtpbmQsIHdyaXRlci5kYXRhLCAnICcsIHdyaXRlci5wb3MsIHN1Ymxlbik7CisgICAgICAgICAgICAgICAgd3JpdGVyLnBvcyArPSBzdWJsZW47CisgICAgICAgICAgICB9CisKK25leHRhcmc6CiAgICAgICAgICAgICBpZiAoZGljdCAmJiAoYXJnaWR4IDwgYXJnbGVuKSAmJiBjICE9ICclJykgewogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3QgYWxsIGFyZ3VtZW50cyBjb252ZXJ0ZWQgZHVyaW5nIHN0cmluZyBmb3JtYXR0aW5nIik7Ci0gICAgICAgICAgICAgICAgUHlfWERFQ1JFRih0ZW1wKTsKICAgICAgICAgICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBQeV9YREVDUkVGKHRlbXApOworICAgICAgICAgICAgUHlfQ0xFQVIodGVtcCk7CiAgICAgICAgIH0gLyogJyUnICovCiAgICAgfSAvKiB1bnRpbCBlbmQgKi8KICAgICBpZiAoYXJnaWR4IDwgYXJnbGVuICYmICFkaWN0KSB7CkBAIC05OTAxLDE3ICsxMzkzNywxOSBAQAogICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgfQogCi0gICAgaWYgKF9QeVVuaWNvZGVfUmVzaXplKCZyZXN1bHQsIHJlc2xlbiAtIHJlc2NudCkgPCAwKQotICAgICAgICBnb3RvIG9uRXJyb3I7CiAgICAgaWYgKGFyZ3Nfb3duZWQpIHsKICAgICAgICAgUHlfREVDUkVGKGFyZ3MpOwogICAgIH0KICAgICBQeV9ERUNSRUYodWZvcm1hdCk7Ci0gICAgcmV0dXJuIChQeU9iamVjdCAqKXJlc3VsdDsKKyAgICBQeV9YREVDUkVGKHRlbXApOworICAgIFB5X1hERUNSRUYoc2Vjb25kKTsKKyAgICByZXR1cm4gX1B5VW5pY29kZVdyaXRlcl9GaW5pc2goJndyaXRlcik7CiAKICAgb25FcnJvcjoKLSAgICBQeV9YREVDUkVGKHJlc3VsdCk7CiAgICAgUHlfREVDUkVGKHVmb3JtYXQpOworICAgIFB5X1hERUNSRUYodGVtcCk7CisgICAgUHlfWERFQ1JFRihzZWNvbmQpOworICAgIF9QeVVuaWNvZGVXcml0ZXJfRGVhbGxvYygmd3JpdGVyKTsKICAgICBpZiAoYXJnc19vd25lZCkgewogICAgICAgICBQeV9ERUNSRUYoYXJncyk7CiAgICAgfQpAQCAtOTkzNCw4ICsxMzk3MiwxMCBAQAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJ8T3NzOnN0ciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmeCwgJmVuY29kaW5nLCAmZXJyb3JzKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKHggPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIChQeU9iamVjdCAqKV9QeVVuaWNvZGVfTmV3KDApOworICAgIGlmICh4ID09IE5VTEwpIHsKKyAgICAgICAgUHlfSU5DUkVGKHVuaWNvZGVfZW1wdHkpOworICAgICAgICByZXR1cm4gdW5pY29kZV9lbXB0eTsKKyAgICB9CiAgICAgaWYgKGVuY29kaW5nID09IE5VTEwgJiYgZXJyb3JzID09IE5VTEwpCiAgICAgICAgIHJldHVybiBQeU9iamVjdF9TdHIoeCk7CiAgICAgZWxzZQpAQCAtOTk0NSwzMSArMTM5ODUsMTAxIEBACiBzdGF0aWMgUHlPYmplY3QgKgogdW5pY29kZV9zdWJ0eXBlX25ldyhQeVR5cGVPYmplY3QgKnR5cGUsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnRtcCwgKnBuZXc7Ci0gICAgUHlfc3NpemVfdCBuOworICAgIFB5T2JqZWN0ICp1bmljb2RlLCAqc2VsZjsKKyAgICBQeV9zc2l6ZV90IGxlbmd0aCwgY2hhcl9zaXplOworICAgIGludCBzaGFyZV93c3RyLCBzaGFyZV91dGY4OworICAgIHVuc2lnbmVkIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CiAKICAgICBhc3NlcnQoUHlUeXBlX0lzU3VidHlwZSh0eXBlLCAmUHlVbmljb2RlX1R5cGUpKTsKLSAgICB0bXAgPSAoUHlVbmljb2RlT2JqZWN0ICopdW5pY29kZV9uZXcoJlB5VW5pY29kZV9UeXBlLCBhcmdzLCBrd2RzKTsKLSAgICBpZiAodG1wID09IE5VTEwpCisKKyAgICB1bmljb2RlID0gdW5pY29kZV9uZXcoJlB5VW5pY29kZV9UeXBlLCBhcmdzLCBrd2RzKTsKKyAgICBpZiAodW5pY29kZSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBhc3NlcnQoUHlVbmljb2RlX0NoZWNrKHRtcCkpOwotICAgIHBuZXcgPSAoUHlVbmljb2RlT2JqZWN0ICopIHR5cGUtPnRwX2FsbG9jKHR5cGUsIG4gPSB0bXAtPmxlbmd0aCk7Ci0gICAgaWYgKHBuZXcgPT0gTlVMTCkgewotICAgICAgICBQeV9ERUNSRUYodG1wKTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DSEVDSyh1bmljb2RlKSk7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEWSh1bmljb2RlKSA9PSAtMSkgeworICAgICAgICBQeV9ERUNSRUYodW5pY29kZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBwbmV3LT5zdHIgPSAoUHlfVU5JQ09ERSopIFB5T2JqZWN0X01BTExPQyhzaXplb2YoUHlfVU5JQ09ERSkgKiAobisxKSk7Ci0gICAgaWYgKHBuZXctPnN0ciA9PSBOVUxMKSB7Ci0gICAgICAgIF9QeV9Gb3JnZXRSZWZlcmVuY2UoKFB5T2JqZWN0ICopcG5ldyk7Ci0gICAgICAgIFB5T2JqZWN0X0RlbChwbmV3KTsKLSAgICAgICAgUHlfREVDUkVGKHRtcCk7Ci0gICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOworCisgICAgc2VsZiA9IHR5cGUtPnRwX2FsbG9jKHR5cGUsIDApOworICAgIGlmIChzZWxmID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKHVuaWNvZGUpOworICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgUHlfVU5JQ09ERV9DT1BZKHBuZXctPnN0ciwgdG1wLT5zdHIsIG4rMSk7Ci0gICAgcG5ldy0+bGVuZ3RoID0gbjsKLSAgICBwbmV3LT5oYXNoID0gdG1wLT5oYXNoOwotICAgIFB5X0RFQ1JFRih0bXApOwotICAgIHJldHVybiAoUHlPYmplY3QgKilwbmV3OworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORCh1bmljb2RlKTsKKyAgICBsZW5ndGggPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh1bmljb2RlKTsKKworICAgIF9QeVVuaWNvZGVfTEVOR1RIKHNlbGYpID0gbGVuZ3RoOworI2lmZGVmIFB5X0RFQlVHCisgICAgX1B5VW5pY29kZV9IQVNIKHNlbGYpID0gLTE7CisjZWxzZQorICAgIF9QeVVuaWNvZGVfSEFTSChzZWxmKSA9IF9QeVVuaWNvZGVfSEFTSCh1bmljb2RlKTsKKyNlbmRpZgorICAgIF9QeVVuaWNvZGVfU1RBVEUoc2VsZikuaW50ZXJuZWQgPSAwOworICAgIF9QeVVuaWNvZGVfU1RBVEUoc2VsZikua2luZCA9IGtpbmQ7CisgICAgX1B5VW5pY29kZV9TVEFURShzZWxmKS5jb21wYWN0ID0gMDsKKyAgICBfUHlVbmljb2RlX1NUQVRFKHNlbGYpLmFzY2lpID0gX1B5VW5pY29kZV9TVEFURSh1bmljb2RlKS5hc2NpaTsKKyAgICBfUHlVbmljb2RlX1NUQVRFKHNlbGYpLnJlYWR5ID0gMTsKKyAgICBfUHlVbmljb2RlX1dTVFIoc2VsZikgPSBOVUxMOworICAgIF9QeVVuaWNvZGVfVVRGOF9MRU5HVEgoc2VsZikgPSAwOworICAgIF9QeVVuaWNvZGVfVVRGOChzZWxmKSA9IE5VTEw7CisgICAgX1B5VW5pY29kZV9XU1RSX0xFTkdUSChzZWxmKSA9IDA7CisgICAgX1B5VW5pY29kZV9EQVRBX0FOWShzZWxmKSA9IE5VTEw7CisKKyAgICBzaGFyZV91dGY4ID0gMDsKKyAgICBzaGFyZV93c3RyID0gMDsKKyAgICBpZiAoa2luZCA9PSBQeVVuaWNvZGVfMUJZVEVfS0lORCkgeworICAgICAgICBjaGFyX3NpemUgPSAxOworICAgICAgICBpZiAoUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHVuaWNvZGUpIDwgMTI4KQorICAgICAgICAgICAgc2hhcmVfdXRmOCA9IDE7CisgICAgfQorICAgIGVsc2UgaWYgKGtpbmQgPT0gUHlVbmljb2RlXzJCWVRFX0tJTkQpIHsKKyAgICAgICAgY2hhcl9zaXplID0gMjsKKyAgICAgICAgaWYgKHNpemVvZih3Y2hhcl90KSA9PSAyKQorICAgICAgICAgICAgc2hhcmVfd3N0ciA9IDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBhc3NlcnQoa2luZCA9PSBQeVVuaWNvZGVfNEJZVEVfS0lORCk7CisgICAgICAgIGNoYXJfc2l6ZSA9IDQ7CisgICAgICAgIGlmIChzaXplb2Yod2NoYXJfdCkgPT0gNCkKKyAgICAgICAgICAgIHNoYXJlX3dzdHIgPSAxOworICAgIH0KKworICAgIC8qIEVuc3VyZSB3ZSB3b24ndCBvdmVyZmxvdyB0aGUgbGVuZ3RoLiAqLworICAgIGlmIChsZW5ndGggPiAoUFlfU1NJWkVfVF9NQVggLyBjaGFyX3NpemUgLSAxKSkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICBnb3RvIG9uRXJyb3I7CisgICAgfQorICAgIGRhdGEgPSBQeU9iamVjdF9NQUxMT0MoKGxlbmd0aCArIDEpICogY2hhcl9zaXplKTsKKyAgICBpZiAoZGF0YSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgIGdvdG8gb25FcnJvcjsKKyAgICB9CisKKyAgICBfUHlVbmljb2RlX0RBVEFfQU5ZKHNlbGYpID0gZGF0YTsKKyAgICBpZiAoc2hhcmVfdXRmOCkgeworICAgICAgICBfUHlVbmljb2RlX1VURjhfTEVOR1RIKHNlbGYpID0gbGVuZ3RoOworICAgICAgICBfUHlVbmljb2RlX1VURjgoc2VsZikgPSBkYXRhOworICAgIH0KKyAgICBpZiAoc2hhcmVfd3N0cikgeworICAgICAgICBfUHlVbmljb2RlX1dTVFJfTEVOR1RIKHNlbGYpID0gbGVuZ3RoOworICAgICAgICBfUHlVbmljb2RlX1dTVFIoc2VsZikgPSAod2NoYXJfdCAqKWRhdGE7CisgICAgfQorCisgICAgUHlfTUVNQ1BZKGRhdGEsIFB5VW5pY29kZV9EQVRBKHVuaWNvZGUpLAorICAgICAgICAgICAgICBraW5kICogKGxlbmd0aCArIDEpKTsKKyAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHNlbGYsIDEpKTsKKyNpZmRlZiBQeV9ERUJVRworICAgIF9QeVVuaWNvZGVfSEFTSChzZWxmKSA9IF9QeVVuaWNvZGVfSEFTSCh1bmljb2RlKTsKKyNlbmRpZgorICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKKyAgICByZXR1cm4gc2VsZjsKKworb25FcnJvcjoKKyAgICBQeV9ERUNSRUYodW5pY29kZSk7CisgICAgUHlfREVDUkVGKHNlbGYpOworICAgIHJldHVybiBOVUxMOwogfQogCiBQeURvY19TVFJWQVIodW5pY29kZV9kb2MsCkBAIC0xMDAyNywxMiArMTQxMzcsMTIgQEAKIAogLyogSW5pdGlhbGl6ZSB0aGUgVW5pY29kZSBpbXBsZW1lbnRhdGlvbiAqLwogCi12b2lkIF9QeVVuaWNvZGVfSW5pdCh2b2lkKQoraW50IF9QeVVuaWNvZGVfSW5pdCh2b2lkKQogewogICAgIGludCBpOwogCiAgICAgLyogWFhYIC0gbW92ZSB0aGlzIGFycmF5IHRvIHVuaWNvZGVjdHlwZS5jID8gKi8KLSAgICBQeV9VTklDT0RFIGxpbmVicmVha1tdID0geworICAgIFB5X1VDUzIgbGluZWJyZWFrW10gPSB7CiAgICAgICAgIDB4MDAwQSwgLyogTElORSBGRUVEICovCiAgICAgICAgIDB4MDAwRCwgLyogQ0FSUklBR0UgUkVUVVJOICovCiAgICAgICAgIDB4MDAxQywgLyogRklMRSBTRVBBUkFUT1IgKi8KQEAgLTEwMDQ0LDExICsxNDE1NCwxMCBAQAogICAgIH07CiAKICAgICAvKiBJbml0IHRoZSBpbXBsZW1lbnRhdGlvbiAqLwotICAgIGZyZWVfbGlzdCA9IE5VTEw7Ci0gICAgbnVtZnJlZSA9IDA7Ci0gICAgdW5pY29kZV9lbXB0eSA9IF9QeVVuaWNvZGVfTmV3KDApOworICAgIHVuaWNvZGVfZW1wdHkgPSBQeVVuaWNvZGVfTmV3KDAsIDApOwogICAgIGlmICghdW5pY29kZV9lbXB0eSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICBQeV9GYXRhbEVycm9yKCJDYW4ndCBjcmVhdGUgZW1wdHkgc3RyaW5nIik7CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeSh1bmljb2RlX2VtcHR5LCAxKSk7CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCiAgICAgICAgIHVuaWNvZGVfbGF0aW4xW2ldID0gTlVMTDsKQEAgLTEwMDU3LDEwICsxNDE2NiwxOSBAQAogCiAgICAgLyogaW5pdGlhbGl6ZSB0aGUgbGluZWJyZWFrIGJsb29tIGZpbHRlciAqLwogICAgIGJsb29tX2xpbmVicmVhayA9IG1ha2VfYmxvb21fbWFzaygKLSAgICAgICAgbGluZWJyZWFrLCBzaXplb2YobGluZWJyZWFrKSAvIHNpemVvZihsaW5lYnJlYWtbMF0pCi0gICAgICAgICk7CisgICAgICAgIFB5VW5pY29kZV8yQllURV9LSU5ELCBsaW5lYnJlYWssCisgICAgICAgIFB5X0FSUkFZX0xFTkdUSChsaW5lYnJlYWspKTsKIAogICAgIFB5VHlwZV9SZWFkeSgmRW5jb2RpbmdNYXBUeXBlKTsKKworI2lmZGVmIEhBVkVfTUJDUworICAgIHdpbnZlci5kd09TVmVyc2lvbkluZm9TaXplID0gc2l6ZW9mKHdpbnZlcik7CisgICAgaWYgKCFHZXRWZXJzaW9uRXgoKE9TVkVSU0lPTklORk8qKSZ3aW52ZXIpKSB7CisgICAgICAgIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKDApOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJuIDA7CiB9CiAKIC8qIEZpbmFsaXplIHRoZSBVbmljb2RlIGltcGxlbWVudGF0aW9uICovCkBAIC0xMDA2OCwyMSArMTQxODYsNyBAQAogaW50CiBQeVVuaWNvZGVfQ2xlYXJGcmVlTGlzdCh2b2lkKQogewotICAgIGludCBmcmVlbGlzdF9zaXplID0gbnVtZnJlZTsKLSAgICBQeVVuaWNvZGVPYmplY3QgKnU7Ci0KLSAgICBmb3IgKHUgPSBmcmVlX2xpc3Q7IHUgIT0gTlVMTDspIHsKLSAgICAgICAgUHlVbmljb2RlT2JqZWN0ICp2ID0gdTsKLSAgICAgICAgdSA9ICooUHlVbmljb2RlT2JqZWN0ICoqKXU7Ci0gICAgICAgIGlmICh2LT5zdHIpCi0gICAgICAgICAgICBQeU9iamVjdF9ERUwodi0+c3RyKTsKLSAgICAgICAgUHlfWERFQ1JFRih2LT5kZWZlbmMpOwotICAgICAgICBQeU9iamVjdF9EZWwodik7Ci0gICAgICAgIG51bWZyZWUtLTsKLSAgICB9Ci0gICAgZnJlZV9saXN0ID0gTlVMTDsKLSAgICBhc3NlcnQobnVtZnJlZSA9PSAwKTsKLSAgICByZXR1cm4gZnJlZWxpc3Rfc2l6ZTsKKyAgICByZXR1cm4gMDsKIH0KIAogdm9pZApAQCAtMTAwOTksMTcgKzE0MjAzLDIyIEBACiAgICAgICAgICAgICB1bmljb2RlX2xhdGluMVtpXSA9IE5VTEw7CiAgICAgICAgIH0KICAgICB9CisgICAgX1B5VW5pY29kZV9DbGVhclN0YXRpY1N0cmluZ3MoKTsKICAgICAodm9pZClQeVVuaWNvZGVfQ2xlYXJGcmVlTGlzdCgpOwogfQogCiB2b2lkCiBQeVVuaWNvZGVfSW50ZXJuSW5QbGFjZShQeU9iamVjdCAqKnApCiB7Ci0gICAgcmVnaXN0ZXIgUHlVbmljb2RlT2JqZWN0ICpzID0gKFB5VW5pY29kZU9iamVjdCAqKSgqcCk7CisgICAgcmVnaXN0ZXIgUHlPYmplY3QgKnMgPSAqcDsKICAgICBQeU9iamVjdCAqdDsKKyNpZmRlZiBQeV9ERUJVRworICAgIGFzc2VydChzICE9IE5VTEwpOworICAgIGFzc2VydChfUHlVbmljb2RlX0NIRUNLKHMpKTsKKyNlbHNlCiAgICAgaWYgKHMgPT0gTlVMTCB8fCAhUHlVbmljb2RlX0NoZWNrKHMpKQotICAgICAgICBQeV9GYXRhbEVycm9yKAotICAgICAgICAgICAgIlB5VW5pY29kZV9JbnRlcm5JblBsYWNlOiB1bmljb2RlIHN0cmluZ3Mgb25seSBwbGVhc2UhIik7CisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIC8qIElmIGl0J3MgYSBzdWJjbGFzcywgd2UgZG9uJ3QgcmVhbGx5IGtub3cgd2hhdCBwdXR0aW5nCiAgICAgICAgaXQgaW4gdGhlIGludGVybmVkIGRpY3QgbWlnaHQgZG8uICovCiAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2tFeGFjdChzKSkKQEAgLTEwMTI3LDcgKzE0MjM2LDcgQEAKICAgICAgICB0aG91Z2ggdGhlIGtleSBpcyBwcmVzZW50IGluIHRoZSBkaWN0aW9uYXJ5LAogICAgICAgIG5hbWVseSB3aGVuIHRoaXMgaGFwcGVucyBkdXJpbmcgYSBzdGFjayBvdmVyZmxvdy4gKi8KICAgICBQeV9BTExPV19SRUNVUlNJT04KLSAgICAgICAgdCA9IFB5RGljdF9HZXRJdGVtKGludGVybmVkLCAoUHlPYmplY3QgKilzKTsKKyAgICB0ID0gUHlEaWN0X0dldEl0ZW0oaW50ZXJuZWQsIHMpOwogICAgIFB5X0VORF9BTExPV19SRUNVUlNJT04KIAogICAgICAgICBpZiAodCkgewpAQCAtMTAxMzgsNyArMTQyNDcsNyBAQAogICAgICAgICB9CiAKICAgICBQeVRocmVhZFN0YXRlX0dFVCgpLT5yZWN1cnNpb25fY3JpdGljYWwgPSAxOwotICAgIGlmIChQeURpY3RfU2V0SXRlbShpbnRlcm5lZCwgKFB5T2JqZWN0ICopcywgKFB5T2JqZWN0ICopcykgPCAwKSB7CisgICAgaWYgKFB5RGljdF9TZXRJdGVtKGludGVybmVkLCBzLCBzKSA8IDApIHsKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgUHlUaHJlYWRTdGF0ZV9HRVQoKS0+cmVjdXJzaW9uX2NyaXRpY2FsID0gMDsKICAgICAgICAgcmV0dXJuOwpAQCAtMTAxNDcsNyArMTQyNTYsNyBAQAogICAgIC8qIFRoZSB0d28gcmVmZXJlbmNlcyBpbiBpbnRlcm5lZCBhcmUgbm90IGNvdW50ZWQgYnkgcmVmY250LgogICAgICAgIFRoZSBkZWFsbG9jYXRvciB3aWxsIHRha2UgY2FyZSBvZiB0aGlzICovCiAgICAgUHlfUkVGQ05UKHMpIC09IDI7Ci0gICAgUHlVbmljb2RlX0NIRUNLX0lOVEVSTkVEKHMpID0gU1NUQVRFX0lOVEVSTkVEX01PUlRBTDsKKyAgICBfUHlVbmljb2RlX1NUQVRFKHMpLmludGVybmVkID0gU1NUQVRFX0lOVEVSTkVEX01PUlRBTDsKIH0KIAogdm9pZApAQCAtMTAxNTUsNyArMTQyNjQsNyBAQAogewogICAgIFB5VW5pY29kZV9JbnRlcm5JblBsYWNlKHApOwogICAgIGlmIChQeVVuaWNvZGVfQ0hFQ0tfSU5URVJORUQoKnApICE9IFNTVEFURV9JTlRFUk5FRF9JTU1PUlRBTCkgewotICAgICAgICBQeVVuaWNvZGVfQ0hFQ0tfSU5URVJORUQoKnApID0gU1NUQVRFX0lOVEVSTkVEX0lNTU9SVEFMOworICAgICAgICBfUHlVbmljb2RlX1NUQVRFKCpwKS5pbnRlcm5lZCA9IFNTVEFURV9JTlRFUk5FRF9JTU1PUlRBTDsKICAgICAgICAgUHlfSU5DUkVGKCpwKTsKICAgICB9CiB9CkBAIC0xMDE3MCwxMCArMTQyNzksMTEgQEAKICAgICByZXR1cm4gczsKIH0KIAotdm9pZCBfUHlfUmVsZWFzZUludGVybmVkVW5pY29kZVN0cmluZ3Modm9pZCkKK3ZvaWQKK19QeV9SZWxlYXNlSW50ZXJuZWRVbmljb2RlU3RyaW5ncyh2b2lkKQogewogICAgIFB5T2JqZWN0ICprZXlzOwotICAgIFB5VW5pY29kZU9iamVjdCAqczsKKyAgICBQeU9iamVjdCAqczsKICAgICBQeV9zc2l6ZV90IGksIG47CiAgICAgUHlfc3NpemVfdCBpbW1vcnRhbF9zaXplID0gMCwgbW9ydGFsX3NpemUgPSAwOwogCkBAIC0xMDE5NCwyMyArMTQzMDQsMjcgQEAKICAgICBmcHJpbnRmKHN0ZGVyciwgInJlbGVhc2luZyAlIiBQWV9GT1JNQVRfU0laRV9UICJkIGludGVybmVkIHN0cmluZ3NcbiIsCiAgICAgICAgICAgICBuKTsKICAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7Ci0gICAgICAgIHMgPSAoUHlVbmljb2RlT2JqZWN0ICopIFB5TGlzdF9HRVRfSVRFTShrZXlzLCBpKTsKLSAgICAgICAgc3dpdGNoIChzLT5zdGF0ZSkgeworICAgICAgICBzID0gUHlMaXN0X0dFVF9JVEVNKGtleXMsIGkpOworICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKHMpID09IC0xKSB7CisgICAgICAgICAgICBhc3NlcnQoMCAmJiAiY291bGQgbm90IHJlYWR5IHN0cmluZyIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJjb3VsZCBub3QgcmVhZHkgc3RyaW5nXG4iKTsKKyAgICAgICAgfQorICAgICAgICBzd2l0Y2ggKFB5VW5pY29kZV9DSEVDS19JTlRFUk5FRChzKSkgewogICAgICAgICBjYXNlIFNTVEFURV9OT1RfSU5URVJORUQ6CiAgICAgICAgICAgICAvKiBYWFggU2hvdWxkbid0IGhhcHBlbiAqLwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU1NUQVRFX0lOVEVSTkVEX0lNTU9SVEFMOgogICAgICAgICAgICAgUHlfUkVGQ05UKHMpICs9IDE7Ci0gICAgICAgICAgICBpbW1vcnRhbF9zaXplICs9IHMtPmxlbmd0aDsKKyAgICAgICAgICAgIGltbW9ydGFsX3NpemUgKz0gUHlVbmljb2RlX0dFVF9MRU5HVEgocyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBTU1RBVEVfSU5URVJORURfTU9SVEFMOgogICAgICAgICAgICAgUHlfUkVGQ05UKHMpICs9IDI7Ci0gICAgICAgICAgICBtb3J0YWxfc2l6ZSArPSBzLT5sZW5ndGg7CisgICAgICAgICAgICBtb3J0YWxfc2l6ZSArPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChzKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigiSW5jb25zaXN0ZW50IGludGVybmVkIHN0cmluZyBzdGF0ZS4iKTsKICAgICAgICAgfQotICAgICAgICBzLT5zdGF0ZSA9IFNTVEFURV9OT1RfSU5URVJORUQ7CisgICAgICAgIF9QeVVuaWNvZGVfU1RBVEUocykuaW50ZXJuZWQgPSBTU1RBVEVfTk9UX0lOVEVSTkVEOwogICAgIH0KICAgICBmcHJpbnRmKHN0ZGVyciwgInRvdGFsIHNpemUgb2YgYWxsIGludGVybmVkIHN0cmluZ3M6ICIKICAgICAgICAgICAgICIlIiBQWV9GT1JNQVRfU0laRV9UICJkLyUiIFBZX0ZPUk1BVF9TSVpFX1QgImQgIgpAQCAtMTAyMjcsNyArMTQzNDEsNyBAQAogdHlwZWRlZiBzdHJ1Y3QgewogICAgIFB5T2JqZWN0X0hFQUQKICAgICBQeV9zc2l6ZV90IGl0X2luZGV4OwotICAgIFB5VW5pY29kZU9iamVjdCAqaXRfc2VxOyAvKiBTZXQgdG8gTlVMTCB3aGVuIGl0ZXJhdG9yIGlzIGV4aGF1c3RlZCAqLworICAgIFB5T2JqZWN0ICppdF9zZXE7ICAgIC8qIFNldCB0byBOVUxMIHdoZW4gaXRlcmF0b3IgaXMgZXhoYXVzdGVkICovCiB9IHVuaWNvZGVpdGVyb2JqZWN0OwogCiBzdGF0aWMgdm9pZApAQCAtMTAyNDgsMTggKzE0MzYyLDE5IEBACiBzdGF0aWMgUHlPYmplY3QgKgogdW5pY29kZWl0ZXJfbmV4dCh1bmljb2RlaXRlcm9iamVjdCAqaXQpCiB7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICpzZXE7Ci0gICAgUHlPYmplY3QgKml0ZW07CisgICAgUHlPYmplY3QgKnNlcSwgKml0ZW07CiAKICAgICBhc3NlcnQoaXQgIT0gTlVMTCk7CiAgICAgc2VxID0gaXQtPml0X3NlcTsKICAgICBpZiAoc2VxID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGFzc2VydChQeVVuaWNvZGVfQ2hlY2soc2VxKSk7CisgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ0hFQ0soc2VxKSk7CiAKLSAgICBpZiAoaXQtPml0X2luZGV4IDwgUHlVbmljb2RlX0dFVF9TSVpFKHNlcSkpIHsKLSAgICAgICAgaXRlbSA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZSgKLSAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHNlcSkraXQtPml0X2luZGV4LCAxKTsKKyAgICBpZiAoaXQtPml0X2luZGV4IDwgUHlVbmljb2RlX0dFVF9MRU5HVEgoc2VxKSkgeworICAgICAgICBpbnQga2luZCA9IFB5VW5pY29kZV9LSU5EKHNlcSk7CisgICAgICAgIHZvaWQgKmRhdGEgPSBQeVVuaWNvZGVfREFUQShzZXEpOworICAgICAgICBQeV9VQ1M0IGNociA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGl0LT5pdF9pbmRleCk7CisgICAgICAgIGl0ZW0gPSBQeVVuaWNvZGVfRnJvbU9yZGluYWwoY2hyKTsKICAgICAgICAgaWYgKGl0ZW0gIT0gTlVMTCkKICAgICAgICAgICAgICsraXQtPml0X2luZGV4OwogICAgICAgICByZXR1cm4gaXRlbTsKQEAgLTEwMjc1LDE1ICsxNDM5MCw0OSBAQAogewogICAgIFB5X3NzaXplX3QgbGVuID0gMDsKICAgICBpZiAoaXQtPml0X3NlcSkKLSAgICAgICAgbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKGl0LT5pdF9zZXEpIC0gaXQtPml0X2luZGV4OworICAgICAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChpdC0+aXRfc2VxKSAtIGl0LT5pdF9pbmRleDsKICAgICByZXR1cm4gUHlMb25nX0Zyb21Tc2l6ZV90KGxlbik7CiB9CiAKIFB5RG9jX1NUUlZBUihsZW5ndGhfaGludF9kb2MsICJQcml2YXRlIG1ldGhvZCByZXR1cm5pbmcgYW4gZXN0aW1hdGUgb2YgbGVuKGxpc3QoaXQpKS4iKTsKIAorc3RhdGljIFB5T2JqZWN0ICoKK3VuaWNvZGVpdGVyX3JlZHVjZSh1bmljb2RlaXRlcm9iamVjdCAqaXQpCit7CisgICAgaWYgKGl0LT5pdF9zZXEgIT0gTlVMTCkgeworICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiTihPKW4iLCBfUHlPYmplY3RfR2V0QnVpbHRpbigiaXRlciIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC0+aXRfc2VxLCBpdC0+aXRfaW5kZXgpOworICAgIH0gZWxzZSB7CisgICAgICAgIFB5T2JqZWN0ICp1ID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIDApOworICAgICAgICBpZiAodSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJOKE4pIiwgX1B5T2JqZWN0X0dldEJ1aWx0aW4oIml0ZXIiKSwgdSk7CisgICAgfQorfQorCitQeURvY19TVFJWQVIocmVkdWNlX2RvYywgIlJldHVybiBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgcGlja2xpbmcuIik7CisKK3N0YXRpYyBQeU9iamVjdCAqCit1bmljb2RlaXRlcl9zZXRzdGF0ZSh1bmljb2RlaXRlcm9iamVjdCAqaXQsIFB5T2JqZWN0ICpzdGF0ZSkKK3sKKyAgICBQeV9zc2l6ZV90IGluZGV4ID0gUHlMb25nX0FzU3NpemVfdChzdGF0ZSk7CisgICAgaWYgKGluZGV4ID09IC0xICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIHJldHVybiBOVUxMOworICAgIGlmIChpbmRleCA8IDApCisgICAgICAgIGluZGV4ID0gMDsKKyAgICBpdC0+aXRfaW5kZXggPSBpbmRleDsKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKworUHlEb2NfU1RSVkFSKHNldHN0YXRlX2RvYywgIlNldCBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgdW5waWNrbGluZy4iKTsKKwogc3RhdGljIFB5TWV0aG9kRGVmIHVuaWNvZGVpdGVyX21ldGhvZHNbXSA9IHsKICAgICB7Il9fbGVuZ3RoX2hpbnRfXyIsIChQeUNGdW5jdGlvbil1bmljb2RlaXRlcl9sZW4sIE1FVEhfTk9BUkdTLAogICAgICBsZW5ndGhfaGludF9kb2N9LAorICAgIHsiX19yZWR1Y2VfXyIsICAgICAgKFB5Q0Z1bmN0aW9uKXVuaWNvZGVpdGVyX3JlZHVjZSwgTUVUSF9OT0FSR1MsCisgICAgIHJlZHVjZV9kb2N9LAorICAgIHsiX19zZXRzdGF0ZV9fIiwgICAgKFB5Q0Z1bmN0aW9uKXVuaWNvZGVpdGVyX3NldHN0YXRlLCBNRVRIX08sCisgICAgIHNldHN0YXRlX2RvY30sCiAgICAge05VTEwsICAgICAgTlVMTH0gICAgICAgLyogc2VudGluZWwgKi8KIH07CiAKQEAgLTEwMzI5LDE2ICsxNDQ3OCwxOSBAQAogICAgICAgICBQeUVycl9CYWRJbnRlcm5hbENhbGwoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQorICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoc2VxKSA9PSAtMSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgaXQgPSBQeU9iamVjdF9HQ19OZXcodW5pY29kZWl0ZXJvYmplY3QsICZQeVVuaWNvZGVJdGVyX1R5cGUpOwogICAgIGlmIChpdCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpdC0+aXRfaW5kZXggPSAwOwogICAgIFB5X0lOQ1JFRihzZXEpOwotICAgIGl0LT5pdF9zZXEgPSAoUHlVbmljb2RlT2JqZWN0ICopc2VxOworICAgIGl0LT5pdF9zZXEgPSBzZXE7CiAgICAgX1B5T2JqZWN0X0dDX1RSQUNLKGl0KTsKICAgICByZXR1cm4gKFB5T2JqZWN0ICopaXQ7CiB9CiAKKwogc2l6ZV90CiBQeV9VTklDT0RFX3N0cmxlbihjb25zdCBQeV9VTklDT0RFICp1KQogewpAQCAtMTA0MzAsMjUgKzE0NTgyLDMxIEBACiB9CiAKIFB5X1VOSUNPREUqCi1QeVVuaWNvZGVfQXNVbmljb2RlQ29weShQeU9iamVjdCAqb2JqZWN0KQorUHlVbmljb2RlX0FzVW5pY29kZUNvcHkoUHlPYmplY3QgKnVuaWNvZGUpCiB7Ci0gICAgUHlVbmljb2RlT2JqZWN0ICp1bmljb2RlID0gKFB5VW5pY29kZU9iamVjdCAqKW9iamVjdDsKLSAgICBQeV9VTklDT0RFICpjb3B5OwotICAgIFB5X3NzaXplX3Qgc2l6ZTsKKyAgICBQeV9VTklDT0RFICp1LCAqY29weTsKKyAgICBQeV9zc2l6ZV90IGxlbiwgc2l6ZTsKIAorICAgIGlmICghUHlVbmljb2RlX0NoZWNrKHVuaWNvZGUpKSB7CisgICAgICAgIFB5RXJyX0JhZEFyZ3VtZW50KCk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICB1ID0gUHlVbmljb2RlX0FzVW5pY29kZUFuZFNpemUodW5pY29kZSwgJmxlbik7CisgICAgaWYgKHUgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgLyogRW5zdXJlIHdlIHdvbid0IG92ZXJmbG93IHRoZSBzaXplLiAqLwotICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUodW5pY29kZSkgPiAoKFBZX1NTSVpFX1RfTUFYIC8gc2l6ZW9mKFB5X1VOSUNPREUpKSAtIDEpKSB7CisgICAgaWYgKGxlbiA+ICgoUFlfU1NJWkVfVF9NQVggLyBzaXplb2YoUHlfVU5JQ09ERSkpIC0gMSkpIHsKICAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQotICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX1NJWkUodW5pY29kZSkgKyAxOyAvKiBjb3B5IHRoZSBudWwgY2hhcmFjdGVyICovCisgICAgc2l6ZSA9IGxlbiArIDE7IC8qIGNvcHkgdGhlIG51bGwgY2hhcmFjdGVyICovCiAgICAgc2l6ZSAqPSBzaXplb2YoUHlfVU5JQ09ERSk7CiAgICAgY29weSA9IFB5TWVtX01hbGxvYyhzaXplKTsKICAgICBpZiAoY29weSA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBtZW1jcHkoY29weSwgUHlVbmljb2RlX0FTX1VOSUNPREUodW5pY29kZSksIHNpemUpOworICAgIG1lbWNweShjb3B5LCB1LCBzaXplKTsKICAgICByZXR1cm4gY29weTsKIH0KIApkaWZmIC0tZ2l0IGEvT2JqZWN0cy91bmljb2RldHlwZV9kYi5oIGIvT2JqZWN0cy91bmljb2RldHlwZV9kYi5oCmluZGV4IDg4YTc5MTIuLjQ2YTkyYmIgMTAwNjQ0Ci0tLSBhL09iamVjdHMvdW5pY29kZXR5cGVfZGIuaAorKysgYi9PYmplY3RzL3VuaWNvZGV0eXBlX2RiLmgKQEAgLTgsMTg0ICs4LDk5MiBAQAogICAgIHswLCAwLCAwLCAwLCAwLCA0OH0sCiAgICAgezAsIDAsIDAsIDAsIDAsIDEwNTZ9LAogICAgIHswLCAwLCAwLCAwLCAwLCAxMDI0fSwKLSAgICB7MCwgMCwgMCwgMCwgMCwgNTYzOH0sCi0gICAgezAsIDAsIDAsIDEsIDEsIDU2Mzh9LAotICAgIHswLCAwLCAwLCAyLCAyLCA1NjM4fSwKLSAgICB7MCwgMCwgMCwgMywgMywgNTYzOH0sCi0gICAgezAsIDAsIDAsIDQsIDQsIDU2Mzh9LAotICAgIHswLCAwLCAwLCA1LCA1LCA1NjM4fSwKLSAgICB7MCwgMCwgMCwgNiwgNiwgNTYzOH0sCi0gICAgezAsIDAsIDAsIDcsIDcsIDU2Mzh9LAotICAgIHswLCAwLCAwLCA4LCA4LCA1NjM4fSwKLSAgICB7MCwgMCwgMCwgOSwgOSwgNTYzOH0sCi0gICAgezAsIDMyLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgMCwgMCwgMCwgMCwgMTUzNn0sCi0gICAgezY1NTA0LCAwLCA2NTUwNCwgMCwgMCwgMTgwMX0sCi0gICAgezAsIDAsIDAsIDAsIDAsIDE4MDF9LAotICAgIHswLCAwLCAwLCAwLCAyLCA1MTI0fSwKLSAgICB7MCwgMCwgMCwgMCwgMywgNTEyNH0sCi0gICAgezc0MywgMCwgNzQzLCAwLCAwLCAxODAxfSwKLSAgICB7MCwgMCwgMCwgMCwgMSwgNTEyNH0sCiAgICAgezAsIDAsIDAsIDAsIDAsIDUxMjB9LAotICAgIHsxMjEsIDAsIDEyMSwgMCwgMCwgMTgwMX0sCi0gICAgezAsIDEsIDAsIDAsIDAsIDE5MjF9LAotICAgIHs2NTUzNSwgMCwgNjU1MzUsIDAsIDAsIDE4MDF9LAotICAgIHswLCA2NTMzNywgMCwgMCwgMCwgMTkyMX0sCi0gICAgezY1MzA0LCAwLCA2NTMwNCwgMCwgMCwgMTgwMX0sCi0gICAgezAsIDY1NDE1LCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7NjUyMzYsIDAsIDY1MjM2LCAwLCAwLCAxODAxfSwKLSAgICB7MTk1LCAwLCAxOTUsIDAsIDAsIDE4MDF9LAotICAgIHswLCAyMTAsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCAyMDYsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCAyMDUsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCA3OSwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDIwMiwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDIwMywgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDIwNywgMCwgMCwgMCwgMTkyMX0sCi0gICAgezk3LCAwLCA5NywgMCwgMCwgMTgwMX0sCi0gICAgezAsIDIxMSwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDIwOSwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezE2MywgMCwgMTYzLCAwLCAwLCAxODAxfSwKLSAgICB7MCwgMjEzLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MTMwLCAwLCAxMzAsIDAsIDAsIDE4MDF9LAotICAgIHswLCAyMTQsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCAyMTgsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCAyMTcsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCAyMTksIDAsIDAsIDAsIDE5MjF9LAorICAgIHswLCAwLCAwLCAwLCAwLCAzNTkwfSwKKyAgICB7MCwgMCwgMCwgMSwgMSwgMzU5MH0sCisgICAgezAsIDAsIDAsIDIsIDIsIDM1OTB9LAorICAgIHswLCAwLCAwLCAzLCAzLCAzNTkwfSwKKyAgICB7MCwgMCwgMCwgNCwgNCwgMzU5MH0sCisgICAgezAsIDAsIDAsIDUsIDUsIDM1OTB9LAorICAgIHswLCAwLCAwLCA2LCA2LCAzNTkwfSwKKyAgICB7MCwgMCwgMCwgNywgNywgMzU5MH0sCisgICAgezAsIDAsIDAsIDgsIDgsIDM1OTB9LAorICAgIHswLCAwLCAwLCA5LCA5LCAzNTkwfSwKKyAgICB7MCwgMzIsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgMCwgMCwgMCwgMCwgMTUzNn0sCisgICAgey0zMiwgMCwgLTMyLCAwLCAwLCA5OTkzfSwKKyAgICB7MCwgMCwgMCwgMCwgMCwgOTk5M30sCisgICAgezAsIDAsIDAsIDAsIDAsIDQwOTZ9LAorICAgIHswLCAwLCAwLCAwLCAyLCAzMDc2fSwKKyAgICB7MCwgMCwgMCwgMCwgMywgMzA3Nn0sCisgICAgezE2Nzc3MjE4LCAxNzgyNTc5MiwgMTY3NzcyMTgsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MCwgMCwgMCwgMCwgMCwgNTYzMn0sCisgICAgezAsIDAsIDAsIDAsIDEsIDMwNzZ9LAorICAgIHswLCAwLCAwLCAwLCAwLCAzMDcyfSwKKyAgICB7MzM1NTQ0MzgsIDE4ODc0MzcxLCAzMzU1NDQ0MCwgMCwgMCwgMjYzNzd9LAorICAgIHsxMjEsIDAsIDEyMSwgMCwgMCwgOTk5M30sCisgICAgezAsIDEsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7LTEsIDAsIC0xLCAwLCAwLCA5OTkzfSwKKyAgICB7MTY3NzcyMjgsIDMzNTU0NDQyLCAxNjc3NzIyOCwgMCwgMCwgMjY0OTd9LAorICAgIHstMjMyLCAwLCAtMjMyLCAwLCAwLCA5OTkzfSwKKyAgICB7MzM1NTQ0NDgsIDE4ODc0MzgxLCAzMzU1NDQ0OCwgMCwgMCwgMjYzNzd9LAorICAgIHswLCAtMTIxLCAwLCAwLCAwLCAxMDExM30sCisgICAgezE2Nzc3MjM2LCAxNzgyNTgxMCwgMTY3NzcyMzYsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MTk1LCAwLCAxOTUsIDAsIDAsIDk5OTN9LAorICAgIHswLCAyMTAsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgMjA2LCAwLCAwLCAwLCAxMDExM30sCisgICAgezAsIDIwNSwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCA3OSwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCAyMDIsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgMjAzLCAwLCAwLCAwLCAxMDExM30sCisgICAgezAsIDIwNywgMCwgMCwgMCwgMTAxMTN9LAorICAgIHs5NywgMCwgOTcsIDAsIDAsIDk5OTN9LAorICAgIHswLCAyMTEsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgMjA5LCAwLCAwLCAwLCAxMDExM30sCisgICAgezE2MywgMCwgMTYzLCAwLCAwLCA5OTkzfSwKKyAgICB7MCwgMjEzLCAwLCAwLCAwLCAxMDExM30sCisgICAgezEzMCwgMCwgMTMwLCAwLCAwLCA5OTkzfSwKKyAgICB7MCwgMjE0LCAwLCAwLCAwLCAxMDExM30sCisgICAgezAsIDIxOCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCAyMTcsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgMjE5LCAwLCAwLCAwLCAxMDExM30sCiAgICAgezAsIDAsIDAsIDAsIDAsIDE3OTN9LAotICAgIHs1NiwgMCwgNTYsIDAsIDAsIDE4MDF9LAotICAgIHswLCAyLCAxLCAwLCAwLCAxOTIxfSwKLSAgICB7NjU1MzUsIDEsIDAsIDAsIDAsIDE4NTd9LAotICAgIHs2NTUzNCwgMCwgNjU1MzUsIDAsIDAsIDE4MDF9LAotICAgIHs2NTQ1NywgMCwgNjU0NTcsIDAsIDAsIDE4MDF9LAotICAgIHswLCA2NTQzOSwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDY1NDgwLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgNjU0MDYsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCAxMDc5NSwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDY1MzczLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgMTA3OTIsIDAsIDAsIDAsIDE5MjF9LAotICAgIHsxMDgxNSwgMCwgMTA4MTUsIDAsIDAsIDE4MDF9LAotICAgIHswLCA2NTM0MSwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDY5LCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgNzEsIDAsIDAsIDAsIDE5MjF9LAotICAgIHsxMDc4MywgMCwgMTA3ODMsIDAsIDAsIDE4MDF9LAotICAgIHsxMDc4MCwgMCwgMTA3ODAsIDAsIDAsIDE4MDF9LAotICAgIHsxMDc4MiwgMCwgMTA3ODIsIDAsIDAsIDE4MDF9LAotICAgIHs2NTMyNiwgMCwgNjUzMjYsIDAsIDAsIDE4MDF9LAotICAgIHs2NTMzMCwgMCwgNjUzMzAsIDAsIDAsIDE4MDF9LAotICAgIHs2NTMzMSwgMCwgNjUzMzEsIDAsIDAsIDE4MDF9LAotICAgIHs2NTMzNCwgMCwgNjUzMzQsIDAsIDAsIDE4MDF9LAotICAgIHs2NTMzMywgMCwgNjUzMzMsIDAsIDAsIDE4MDF9LAotICAgIHs2NTMyOSwgMCwgNjUzMjksIDAsIDAsIDE4MDF9LAotICAgIHs0Mjg5MywgNjEzLCA0Mjg5MywgMCwgMCwgMzg0OX0sCi0gICAgezY1MzI3LCAwLCA2NTMyNywgMCwgMCwgMTgwMX0sCi0gICAgezY1MzI1LCAwLCA2NTMyNSwgMCwgMCwgMTgwMX0sCi0gICAgezEwNzQzLCAwLCAxMDc0MywgMCwgMCwgMTgwMX0sCi0gICAgezEwNzQ5LCAwLCAxMDc0OSwgMCwgMCwgMTgwMX0sCi0gICAgezY1MzIzLCAwLCA2NTMyMywgMCwgMCwgMTgwMX0sCi0gICAgezY1MzIyLCAwLCA2NTMyMiwgMCwgMCwgMTgwMX0sCi0gICAgezEwNzI3LCAwLCAxMDcyNywgMCwgMCwgMTgwMX0sCi0gICAgezY1MzE4LCAwLCA2NTMxOCwgMCwgMCwgMTgwMX0sCi0gICAgezY1NDY3LCAwLCA2NTQ2NywgMCwgMCwgMTgwMX0sCi0gICAgezY1MzE5LCAwLCA2NTMxOSwgMCwgMCwgMTgwMX0sCi0gICAgezY1NDY1LCAwLCA2NTQ2NSwgMCwgMCwgMTgwMX0sCi0gICAgezY1MzE3LCAwLCA2NTMxNywgMCwgMCwgMTgwMX0sCi0gICAgezg0LCAwLCA4NCwgMCwgMCwgMTUzNn0sCi0gICAgezAsIDAsIDAsIDAsIDAsIDEwMjV9LAotICAgIHswLCAzOCwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDM3LCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgNjQsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCA2MywgMCwgMCwgMCwgMTkyMX0sCi0gICAgezY1NDk4LCAwLCA2NTQ5OCwgMCwgMCwgMTgwMX0sCi0gICAgezY1NDk5LCAwLCA2NTQ5OSwgMCwgMCwgMTgwMX0sCi0gICAgezY1NTA1LCAwLCA2NTUwNSwgMCwgMCwgMTgwMX0sCi0gICAgezY1NDcyLCAwLCA2NTQ3MiwgMCwgMCwgMTgwMX0sCi0gICAgezY1NDczLCAwLCA2NTQ3MywgMCwgMCwgMTgwMX0sCi0gICAgezAsIDgsIDAsIDAsIDAsIDE5MjF9LAotICAgIHs2NTQ3NCwgMCwgNjU0NzQsIDAsIDAsIDE4MDF9LAotICAgIHs2NTQ3OSwgMCwgNjU0NzksIDAsIDAsIDE4MDF9LAotICAgIHswLCAwLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7NjU0ODksIDAsIDY1NDg5LCAwLCAwLCAxODAxfSwKLSAgICB7NjU0ODIsIDAsIDY1NDgyLCAwLCAwLCAxODAxfSwKLSAgICB7NjU1MjgsIDAsIDY1NTI4LCAwLCAwLCAxODAxfSwKLSAgICB7NjU0NTAsIDAsIDY1NDUwLCAwLCAwLCAxODAxfSwKLSAgICB7NjU0NTYsIDAsIDY1NDU2LCAwLCAwLCAxODAxfSwKLSAgICB7NywgMCwgNywgMCwgMCwgMTgwMX0sCi0gICAgezAsIDY1NDc2LCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7NjU0NDAsIDAsIDY1NDQwLCAwLCAwLCAxODAxfSwKLSAgICB7MCwgNjU1MjksIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCA4MCwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDE1LCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7NjU1MjEsIDAsIDY1NTIxLCAwLCAwLCAxODAxfSwKLSAgICB7MCwgNDgsIDAsIDAsIDAsIDE5MjF9LAotICAgIHs2NTQ4OCwgMCwgNjU0ODgsIDAsIDAsIDE4MDF9LAotICAgIHswLCAwLCAwLCAwLCAwLCAxNTM3fSwKLSAgICB7MCwgNzI2NCwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDAsIDAsIDAsIDEsIDU2MzZ9LAotICAgIHswLCAwLCAwLCAwLCAyLCA1NjM2fSwKLSAgICB7MCwgMCwgMCwgMCwgMywgNTYzNn0sCi0gICAgezAsIDAsIDAsIDAsIDQsIDU2MzZ9LAotICAgIHswLCAwLCAwLCAwLCA1LCA1NjM2fSwKLSAgICB7MCwgMCwgMCwgMCwgNiwgNTYzNn0sCi0gICAgezAsIDAsIDAsIDAsIDcsIDU2MzZ9LAotICAgIHswLCAwLCAwLCAwLCA4LCA1NjM2fSwKLSAgICB7MCwgMCwgMCwgMCwgOSwgNTYzNn0sCi0gICAgezAsIDAsIDAsIDAsIDAsIDU4ODh9LAotICAgIHs0Mjg3NywgNzU0NSwgNDI4NzcsIDAsIDAsIDM4NDl9LAotICAgIHszODE0LCAwLCAzODE0LCAwLCAwLCAxODAxfSwKLSAgICB7NjU0NzcsIDAsIDY1NDc3LCAwLCAwLCAxODAxfSwKLSAgICB7MCwgNTc5MjEsIDAsIDAsIDAsIDE5MjF9LAotICAgIHs4LCAwLCA4LCAwLCAwLCAxODAxfSwKLSAgICB7MCwgNjU1MjgsIDAsIDAsIDAsIDE5MjF9LAotICAgIHs3NCwgMCwgNzQsIDAsIDAsIDE4MDF9LAotICAgIHs4NiwgMCwgODYsIDAsIDAsIDE4MDF9LAotICAgIHsxMDAsIDAsIDEwMCwgMCwgMCwgMTgwMX0sCi0gICAgezEyOCwgMCwgMTI4LCAwLCAwLCAxODAxfSwKLSAgICB7MTEyLCAwLCAxMTIsIDAsIDAsIDE4MDF9LAotICAgIHsxMjYsIDAsIDEyNiwgMCwgMCwgMTgwMX0sCi0gICAgezAsIDY1NTI4LCAwLCAwLCAwLCAxODU3fSwKLSAgICB7OSwgMCwgOSwgMCwgMCwgMTgwMX0sCi0gICAgezAsIDY1NDYyLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgNjU1MjcsIDAsIDAsIDAsIDE4NTd9LAotICAgIHs1ODMzMSwgMCwgNTgzMzEsIDAsIDAsIDE4MDF9LAotICAgIHswLCA2NTQ1MCwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDY1NDM2LCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgNjU0MjQsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCA2NTQwOCwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDY1NDEwLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgMCwgMCwgMCwgMCwgNTEyNH0sCi0gICAgezAsIDAsIDAsIDAsIDQsIDUxMjR9LAotICAgIHswLCAwLCAwLCAwLCA1LCA1MTI0fSwKLSAgICB7MCwgMCwgMCwgMCwgNiwgNTEyNH0sCi0gICAgezAsIDAsIDAsIDAsIDcsIDUxMjR9LAotICAgIHswLCAwLCAwLCAwLCA4LCA1MTI0fSwKLSAgICB7MCwgMCwgMCwgMCwgOSwgNTEyNH0sCi0gICAgezAsIDAsIDAsIDAsIDAsIDE3OTJ9LAotICAgIHswLCA1ODAxOSwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDU3MTUzLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgNTcyNzQsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCAyOCwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezY1NTA4LCAwLCA2NTUwOCwgMCwgMCwgMTgwMX0sCi0gICAgezAsIDE2LCAwLCAwLCAwLCA1ODg4fSwKLSAgICB7NjU1MjAsIDAsIDY1NTIwLCAwLCAwLCA1ODg4fSwKLSAgICB7MCwgMjYsIDAsIDAsIDAsIDEwMjR9LAotICAgIHs2NTUxMCwgMCwgNjU1MTAsIDAsIDAsIDEwMjR9LAotICAgIHswLCA1NDc5MywgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDYxNzIyLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgNTQ4MDksIDAsIDAsIDAsIDE5MjF9LAotICAgIHs1NDc0MSwgMCwgNTQ3NDEsIDAsIDAsIDE4MDF9LAotICAgIHs1NDc0NCwgMCwgNTQ3NDQsIDAsIDAsIDE4MDF9LAotICAgIHswLCA1NDc1NiwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDU0Nzg3LCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7MCwgNTQ3NTMsIDAsIDAsIDAsIDE5MjF9LAotICAgIHswLCA1NDc1NCwgMCwgMCwgMCwgMTkyMX0sCi0gICAgezAsIDU0NzIxLCAwLCAwLCAwLCAxOTIxfSwKLSAgICB7NTgyNzIsIDAsIDU4MjcyLCAwLCAwLCAxODAxfSwKKyAgICB7NTYsIDAsIDU2LCAwLCAwLCA5OTkzfSwKKyAgICB7MCwgMiwgMSwgMCwgMCwgMTAxMTN9LAorICAgIHstMSwgMSwgMCwgMCwgMCwgMTAwNDl9LAorICAgIHstMiwgMCwgLTEsIDAsIDAsIDk5OTN9LAorICAgIHstNzksIDAsIC03OSwgMCwgMCwgOTk5M30sCisgICAgezMzNTU0NDU2LCAxODg3NDM4OSwgMzM1NTQ0NTYsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MCwgLTk3LCAwLCAwLCAwLCAxMDExM30sCisgICAgezAsIC01NiwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCAtMTMwLCAwLCAwLCAwLCAxMDExM30sCisgICAgezAsIDEwNzk1LCAwLCAwLCAwLCAxMDExM30sCisgICAgezAsIC0xNjMsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgMTA3OTIsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MTA4MTUsIDAsIDEwODE1LCAwLCAwLCA5OTkzfSwKKyAgICB7MCwgLTE5NSwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCA2OSwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCA3MSwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHsxMDc4MywgMCwgMTA3ODMsIDAsIDAsIDk5OTN9LAorICAgIHsxMDc4MCwgMCwgMTA3ODAsIDAsIDAsIDk5OTN9LAorICAgIHsxMDc4MiwgMCwgMTA3ODIsIDAsIDAsIDk5OTN9LAorICAgIHstMjEwLCAwLCAtMjEwLCAwLCAwLCA5OTkzfSwKKyAgICB7LTIwNiwgMCwgLTIwNiwgMCwgMCwgOTk5M30sCisgICAgey0yMDUsIDAsIC0yMDUsIDAsIDAsIDk5OTN9LAorICAgIHstMjAyLCAwLCAtMjAyLCAwLCAwLCA5OTkzfSwKKyAgICB7LTIwMywgMCwgLTIwMywgMCwgMCwgOTk5M30sCisgICAgey0yMDcsIDAsIC0yMDcsIDAsIDAsIDk5OTN9LAorICAgIHs0MjI4MCwgMCwgNDIyODAsIDAsIDAsIDk5OTN9LAorICAgIHs0MjMwOCwgMCwgNDIzMDgsIDAsIDAsIDk5OTN9LAorICAgIHstMjA5LCAwLCAtMjA5LCAwLCAwLCA5OTkzfSwKKyAgICB7LTIxMSwgMCwgLTIxMSwgMCwgMCwgOTk5M30sCisgICAgezEwNzQzLCAwLCAxMDc0MywgMCwgMCwgOTk5M30sCisgICAgezEwNzQ5LCAwLCAxMDc0OSwgMCwgMCwgOTk5M30sCisgICAgey0yMTMsIDAsIC0yMTMsIDAsIDAsIDk5OTN9LAorICAgIHstMjE0LCAwLCAtMjE0LCAwLCAwLCA5OTkzfSwKKyAgICB7MTA3MjcsIDAsIDEwNzI3LCAwLCAwLCA5OTkzfSwKKyAgICB7LTIxOCwgMCwgLTIxOCwgMCwgMCwgOTk5M30sCisgICAgey02OSwgMCwgLTY5LCAwLCAwLCA5OTkzfSwKKyAgICB7LTIxNywgMCwgLTIxNywgMCwgMCwgOTk5M30sCisgICAgey03MSwgMCwgLTcxLCAwLCAwLCA5OTkzfSwKKyAgICB7LTIxOSwgMCwgLTIxOSwgMCwgMCwgOTk5M30sCisgICAgezAsIDAsIDAsIDAsIDAsIDE0MDg5fSwKICAgICB7MCwgMCwgMCwgMCwgMCwgNTg4OX0sCi0gICAgezQyODc3LCA3NTQ1LCA0Mjg3NywgMCwgMCwgMzk2OX0sCi0gICAgezQyODkzLCA2MTMsIDQyODkzLCAwLCAwLCAzOTY5fSwKLSAgICB7MCwgNDAsIDAsIDAsIDAsIDE5MjF9LAotICAgIHs2NTQ5NiwgMCwgNjU0OTYsIDAsIDAsIDE4MDF9LAorICAgIHsxNjc3NzI0NCwgMTc4MjU4MTgsIDE2Nzc3MjQ0LCAwLCAwLCAzMDIxNn0sCisgICAgezAsIDAsIDAsIDAsIDAsIDEzMzIxfSwKKyAgICB7MCwgMzgsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgMzcsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgNjQsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgNjMsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7NTAzMzE2ODEsIDE5OTIyOTczLCA1MDMzMTY4MSwgMCwgMCwgMjYzNzd9LAorICAgIHstMzgsIDAsIC0zOCwgMCwgMCwgOTk5M30sCisgICAgey0zNywgMCwgLTM3LCAwLCAwLCA5OTkzfSwKKyAgICB7NTAzMzE2ODgsIDE5OTIyOTgwLCA1MDMzMTY4OCwgMCwgMCwgMjYzNzd9LAorICAgIHsxNjc3NzI2MSwgMTc4MjU4MzUsIDE2Nzc3MjYxLCAwLCAwLCAyNjM3N30sCisgICAgey02NCwgMCwgLTY0LCAwLCAwLCA5OTkzfSwKKyAgICB7LTYzLCAwLCAtNjMsIDAsIDAsIDk5OTN9LAorICAgIHswLCA4LCAwLCAwLCAwLCAxMDExM30sCisgICAgezE2Nzc3MjY0LCAxNzgyNTgzOCwgMTY3NzcyNjQsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MTY3NzcyNjcsIDE3ODI1ODQxLCAxNjc3NzI2NywgMCwgMCwgMjYzNzd9LAorICAgIHswLCAwLCAwLCAwLCAwLCAxMDExM30sCisgICAgezE2Nzc3MjcwLCAxNzgyNTg0NCwgMTY3NzcyNzAsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MTY3NzcyNzMsIDE3ODI1ODQ3LCAxNjc3NzI3MywgMCwgMCwgMjYzNzd9LAorICAgIHstOCwgMCwgLTgsIDAsIDAsIDk5OTN9LAorICAgIHsxNjc3NzI3NiwgMTc4MjU4NTAsIDE2Nzc3Mjc2LCAwLCAwLCAyNjM3N30sCisgICAgezE2Nzc3Mjc5LCAxNzgyNTg1MywgMTY3NzcyNzksIDAsIDAsIDI2Mzc3fSwKKyAgICB7NywgMCwgNywgMCwgMCwgOTk5M30sCisgICAgezAsIC02MCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHsxNjc3NzI4MiwgMTc4MjU4NTYsIDE2Nzc3MjgyLCAwLCAwLCAyNjM3N30sCisgICAgezAsIC03LCAwLCAwLCAwLCAxMDExM30sCisgICAgezAsIDgwLCAwLCAwLCAwLCAxMDExM30sCisgICAgey04MCwgMCwgLTgwLCAwLCAwLCA5OTkzfSwKKyAgICB7MCwgMTUsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7LTE1LCAwLCAtMTUsIDAsIDAsIDk5OTN9LAorICAgIHswLCA0OCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHstNDgsIDAsIC00OCwgMCwgMCwgOTk5M30sCisgICAgezMzNTU0NTAyLCAxODg3NDQzNSwgMzM1NTQ1MDQsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MCwgMCwgMCwgMCwgMCwgMTUzN30sCisgICAgezAsIDcyNjQsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgMCwgMCwgMCwgMSwgMzU4OH0sCisgICAgezAsIDAsIDAsIDAsIDIsIDM1ODh9LAorICAgIHswLCAwLCAwLCAwLCAzLCAzNTg4fSwKKyAgICB7MCwgMCwgMCwgMCwgNCwgMzU4OH0sCisgICAgezAsIDAsIDAsIDAsIDUsIDM1ODh9LAorICAgIHswLCAwLCAwLCAwLCA2LCAzNTg4fSwKKyAgICB7MCwgMCwgMCwgMCwgNywgMzU4OH0sCisgICAgezAsIDAsIDAsIDAsIDgsIDM1ODh9LAorICAgIHswLCAwLCAwLCAwLCA5LCAzNTg4fSwKKyAgICB7MCwgMCwgMCwgMCwgMCwgMzg0MH0sCisgICAgezM1MzMyLCAwLCAzNTMzMiwgMCwgMCwgOTk5M30sCisgICAgezM4MTQsIDAsIDM4MTQsIDAsIDAsIDk5OTN9LAorICAgIHszMzU1NDUwOSwgMTg4NzQ0NDIsIDMzNTU0NTA5LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0NTE0LCAxODg3NDQ0NywgMzM1NTQ1MTQsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ1MTksIDE4ODc0NDUyLCAzMzU1NDUxOSwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDUyNCwgMTg4NzQ0NTcsIDMzNTU0NTI0LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0NTI5LCAxODg3NDQ2MiwgMzM1NTQ1MjksIDAsIDAsIDI2Mzc3fSwKKyAgICB7MTY3NzczMTcsIDE3ODI1ODkxLCAxNjc3NzMxNywgMCwgMCwgMjYzNzd9LAorICAgIHsxNjc3NzMyMSwgMTg4NzQ0NzAsIDE2Nzc3MzIxLCAwLCAwLCAyNjQ5N30sCisgICAgezgsIDAsIDgsIDAsIDAsIDk5OTN9LAorICAgIHswLCAtOCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHszMzU1NDU0MSwgMTg4NzQ0NzQsIDMzNTU0NTQxLCAwLCAwLCAyNjM3N30sCisgICAgezUwMzMxNzYzLCAxOTkyMzA1NSwgNTAzMzE3NjMsIDAsIDAsIDI2Mzc3fSwKKyAgICB7NTAzMzE3NzAsIDE5OTIzMDYyLCA1MDMzMTc3MCwgMCwgMCwgMjYzNzd9LAorICAgIHs1MDMzMTc3NywgMTk5MjMwNjksIDUwMzMxNzc3LCAwLCAwLCAyNjM3N30sCisgICAgezc0LCAwLCA3NCwgMCwgMCwgOTk5M30sCisgICAgezg2LCAwLCA4NiwgMCwgMCwgOTk5M30sCisgICAgezEwMCwgMCwgMTAwLCAwLCAwLCA5OTkzfSwKKyAgICB7MTI4LCAwLCAxMjgsIDAsIDAsIDk5OTN9LAorICAgIHsxMTIsIDAsIDExMiwgMCwgMCwgOTk5M30sCisgICAgezEyNiwgMCwgMTI2LCAwLCAwLCA5OTkzfSwKKyAgICB7MzM1NTQ1NjcsIDE4ODc0NTAwLCAxNjc3NzM1MywgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDU3MywgMTg4NzQ1MDYsIDE2Nzc3MzU5LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0NTc5LCAxODg3NDUxMiwgMTY3NzczNjUsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ1ODUsIDE4ODc0NTE4LCAxNjc3NzM3MSwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDU5MSwgMTg4NzQ1MjQsIDE2Nzc3Mzc3LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0NTk3LCAxODg3NDUzMCwgMTY3NzczODMsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ2MDMsIDE4ODc0NTM2LCAxNjc3NzM4OSwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDYwOSwgMTg4NzQ1NDIsIDE2Nzc3Mzk1LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0NjE1LCAxODg3NDU0OCwgMTY3Nzc0MDEsIDAsIDAsIDI2NDMzfSwKKyAgICB7MzM1NTQ2MjEsIDE4ODc0NTU0LCAxNjc3NzQwNywgMCwgMCwgMjY0MzN9LAorICAgIHszMzU1NDYyNywgMTg4NzQ1NjAsIDE2Nzc3NDEzLCAwLCAwLCAyNjQzM30sCisgICAgezMzNTU0NjMzLCAxODg3NDU2NiwgMTY3Nzc0MTksIDAsIDAsIDI2NDMzfSwKKyAgICB7MzM1NTQ2MzksIDE4ODc0NTcyLCAxNjc3NzQyNSwgMCwgMCwgMjY0MzN9LAorICAgIHszMzU1NDY0NSwgMTg4NzQ1NzgsIDE2Nzc3NDMxLCAwLCAwLCAyNjQzM30sCisgICAgezMzNTU0NjUxLCAxODg3NDU4NCwgMTY3Nzc0MzcsIDAsIDAsIDI2NDMzfSwKKyAgICB7MzM1NTQ2NTcsIDE4ODc0NTkwLCAxNjc3NzQ0MywgMCwgMCwgMjY0MzN9LAorICAgIHszMzU1NDY2MywgMTg4NzQ1OTYsIDE2Nzc3NDQ5LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0NjY5LCAxODg3NDYwMiwgMTY3Nzc0NTUsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ2NzUsIDE4ODc0NjA4LCAxNjc3NzQ2MSwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDY4MSwgMTg4NzQ2MTQsIDE2Nzc3NDY3LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0Njg3LCAxODg3NDYyMCwgMTY3Nzc0NzMsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ2OTMsIDE4ODc0NjI2LCAxNjc3NzQ3OSwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDY5OSwgMTg4NzQ2MzIsIDE2Nzc3NDg1LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0NzA1LCAxODg3NDYzOCwgMTY3Nzc0OTEsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ3MTEsIDE4ODc0NjQ0LCAxNjc3NzQ5NywgMCwgMCwgMjY0MzN9LAorICAgIHszMzU1NDcxNywgMTg4NzQ2NTAsIDE2Nzc3NTAzLCAwLCAwLCAyNjQzM30sCisgICAgezMzNTU0NzIzLCAxODg3NDY1NiwgMTY3Nzc1MDksIDAsIDAsIDI2NDMzfSwKKyAgICB7MzM1NTQ3MjksIDE4ODc0NjYyLCAxNjc3NzUxNSwgMCwgMCwgMjY0MzN9LAorICAgIHszMzU1NDczNSwgMTg4NzQ2NjgsIDE2Nzc3NTIxLCAwLCAwLCAyNjQzM30sCisgICAgezMzNTU0NzQxLCAxODg3NDY3NCwgMTY3Nzc1MjcsIDAsIDAsIDI2NDMzfSwKKyAgICB7MzM1NTQ3NDcsIDE4ODc0NjgwLCAxNjc3NzUzMywgMCwgMCwgMjY0MzN9LAorICAgIHszMzU1NDc1MywgMTg4NzQ2ODYsIDE2Nzc3NTM5LCAwLCAwLCAyNjQzM30sCisgICAgezMzNTU0NzU5LCAxODg3NDY5MiwgMTY3Nzc1NDUsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ3NjUsIDE4ODc0Njk4LCAxNjc3NzU1MSwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDc3MSwgMTg4NzQ3MDQsIDE2Nzc3NTU3LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0Nzc3LCAxODg3NDcxMCwgMTY3Nzc1NjMsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ3ODMsIDE4ODc0NzE2LCAxNjc3NzU2OSwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDc4OSwgMTg4NzQ3MjIsIDE2Nzc3NTc1LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0Nzk1LCAxODg3NDcyOCwgMTY3Nzc1ODEsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ4MDEsIDE4ODc0NzM0LCAxNjc3NzU4NywgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDgwNywgMTg4NzQ3NDAsIDE2Nzc3NTkzLCAwLCAwLCAyNjQzM30sCisgICAgezMzNTU0ODEzLCAxODg3NDc0NiwgMTY3Nzc1OTksIDAsIDAsIDI2NDMzfSwKKyAgICB7MzM1NTQ4MTksIDE4ODc0NzUyLCAxNjc3NzYwNSwgMCwgMCwgMjY0MzN9LAorICAgIHszMzU1NDgyNSwgMTg4NzQ3NTgsIDE2Nzc3NjExLCAwLCAwLCAyNjQzM30sCisgICAgezMzNTU0ODMxLCAxODg3NDc2NCwgMTY3Nzc2MTcsIDAsIDAsIDI2NDMzfSwKKyAgICB7MzM1NTQ4MzcsIDE4ODc0NzcwLCAxNjc3NzYyMywgMCwgMCwgMjY0MzN9LAorICAgIHszMzU1NDg0MywgMTg4NzQ3NzYsIDE2Nzc3NjI5LCAwLCAwLCAyNjQzM30sCisgICAgezMzNTU0ODQ5LCAxODg3NDc4MiwgMTY3Nzc2MzUsIDAsIDAsIDI2NDMzfSwKKyAgICB7MzM1NTQ4NTUsIDE4ODc0Nzg4LCAzMzU1NDg1NywgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDg2MiwgMTg4NzQ3OTUsIDE2Nzc3NjQ4LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0ODY4LCAxODg3NDgwMSwgMzM1NTQ4NzAsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ4NzUsIDE4ODc0ODA4LCAzMzU1NDg3NSwgMCwgMCwgMjYzNzd9LAorICAgIHs1MDMzMjA5NywgMTk5MjMzODksIDUwMzMyMTAwLCAwLCAwLCAyNjM3N30sCisgICAgezAsIC03NCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHszMzU1NDg5MCwgMTg4NzQ4MjMsIDE2Nzc3Njc2LCAwLCAwLCAyNjQzM30sCisgICAgezE2Nzc3Njc5LCAxNzgyNjI1MywgMTY3Nzc2NzksIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ4OTksIDE4ODc0ODMyLCAzMzU1NDkwMSwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDkwNiwgMTg4NzQ4MzksIDE2Nzc3NjkyLCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU0OTEyLCAxODg3NDg0NSwgMzM1NTQ5MTQsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ5MTksIDE4ODc0ODUyLCAzMzU1NDkxOSwgMCwgMCwgMjYzNzd9LAorICAgIHs1MDMzMjE0MSwgMTk5MjM0MzMsIDUwMzMyMTQ0LCAwLCAwLCAyNjM3N30sCisgICAgezAsIC04NiwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHszMzU1NDkzNCwgMTg4NzQ4NjcsIDE2Nzc3NzIwLCAwLCAwLCAyNjQzM30sCisgICAgezUwMzMyMTU3LCAxOTkyMzQ0OSwgNTAzMzIxNTcsIDAsIDAsIDI2Mzc3fSwKKyAgICB7NTAzMzIxNjQsIDE5OTIzNDU2LCA1MDMzMjE2NCwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDk1NCwgMTg4NzQ4ODcsIDMzNTU0OTU0LCAwLCAwLCAyNjM3N30sCisgICAgezUwMzMyMTc2LCAxOTkyMzQ2OCwgNTAzMzIxNzYsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MCwgLTEwMCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHs1MDMzMjE4MywgMTk5MjM0NzUsIDUwMzMyMTgzLCAwLCAwLCAyNjM3N30sCisgICAgezUwMzMyMTkwLCAxOTkyMzQ4MiwgNTAzMzIxOTAsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTQ5ODAsIDE4ODc0OTEzLCAzMzU1NDk4MCwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NDk4NSwgMTg4NzQ5MTgsIDMzNTU0OTg1LCAwLCAwLCAyNjM3N30sCisgICAgezUwMzMyMjA3LCAxOTkyMzQ5OSwgNTAzMzIyMDcsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MCwgLTExMiwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHszMzU1NDk5NywgMTg4NzQ5MzAsIDMzNTU0OTk5LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU1MDA0LCAxODg3NDkzNywgMTY3Nzc3OTAsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTUwMTAsIDE4ODc0OTQzLCAzMzU1NTAxMiwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NTAxNywgMTg4NzQ5NTAsIDMzNTU1MDE3LCAwLCAwLCAyNjM3N30sCisgICAgezUwMzMyMjM5LCAxOTkyMzUzMSwgNTAzMzIyNDIsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MCwgLTEyOCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCAtMTI2LCAwLCAwLCAwLCAxMDExM30sCisgICAgezMzNTU1MDMyLCAxODg3NDk2NSwgMTY3Nzc4MTgsIDAsIDAsIDI2NDMzfSwKKyAgICB7MCwgMCwgMCwgMCwgMCwgMzA3Nn0sCisgICAgezAsIDAsIDAsIDAsIDQsIDMwNzZ9LAorICAgIHswLCAwLCAwLCAwLCA1LCAzMDc2fSwKKyAgICB7MCwgMCwgMCwgMCwgNiwgMzA3Nn0sCisgICAgezAsIDAsIDAsIDAsIDcsIDMwNzZ9LAorICAgIHswLCAwLCAwLCAwLCA4LCAzMDc2fSwKKyAgICB7MCwgMCwgMCwgMCwgOSwgMzA3Nn0sCisgICAgezAsIDAsIDAsIDAsIDAsIDE3OTJ9LAorICAgIHswLCAtNzUxNywgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCAtODM4MywgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCAtODI2MiwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCAyOCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHstMjgsIDAsIC0yOCwgMCwgMCwgOTk5M30sCisgICAgezAsIDE2LCAwLCAwLCAwLCAxMjE2MH0sCisgICAgey0xNiwgMCwgLTE2LCAwLCAwLCAxMjA0MH0sCisgICAgezAsIDI2LCAwLCAwLCAwLCA5MzQ0fSwKKyAgICB7LTI2LCAwLCAtMjYsIDAsIDAsIDkyMjR9LAorICAgIHswLCAtMTA3NDMsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgLTM4MTQsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgLTEwNzI3LCAwLCAwLCAwLCAxMDExM30sCisgICAgey0xMDc5NSwgMCwgLTEwNzk1LCAwLCAwLCA5OTkzfSwKKyAgICB7LTEwNzkyLCAwLCAtMTA3OTIsIDAsIDAsIDk5OTN9LAorICAgIHswLCAtMTA3ODAsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgLTEwNzQ5LCAwLCAwLCAwLCAxMDExM30sCisgICAgezAsIC0xMDc4MywgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCAtMTA3ODIsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MCwgLTEwODE1LCAwLCAwLCAwLCAxMDExM30sCisgICAgey03MjY0LCAwLCAtNzI2NCwgMCwgMCwgOTk5M30sCisgICAgezAsIDAsIDAsIDAsIDAsIDUxMjF9LAorICAgIHswLCAwLCAwLCAwLCAwLCAzODQxfSwKKyAgICB7MCwgLTM1MzMyLCAwLCAwLCAwLCAxMDExM30sCisgICAgezAsIC00MjI4MCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHswLCAtNDIzMDgsIDAsIDAsIDAsIDEwMTEzfSwKKyAgICB7MzM1NTUwMzgsIDE4ODc0OTcxLCAzMzU1NTA0MCwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NTA0NSwgMTg4NzQ5NzgsIDMzNTU1MDQ3LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU1MDUyLCAxODg3NDk4NSwgMzM1NTUwNTQsIDAsIDAsIDI2Mzc3fSwKKyAgICB7NTAzMzIyNzYsIDE5OTIzNTY4LCA1MDMzMjI3OSwgMCwgMCwgMjYzNzd9LAorICAgIHs1MDMzMjI4NiwgMTk5MjM1NzgsIDUwMzMyMjg5LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU1MDc5LCAxODg3NTAxMiwgMzM1NTUwODEsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTUwODYsIDE4ODc1MDE5LCAzMzU1NTA4OCwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NTA5MywgMTg4NzUwMjYsIDMzNTU1MDk1LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU1MTAwLCAxODg3NTAzMywgMzM1NTUxMDIsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MzM1NTUxMDcsIDE4ODc1MDQwLCAzMzU1NTEwOSwgMCwgMCwgMjYzNzd9LAorICAgIHszMzU1NTExNCwgMTg4NzUwNDcsIDMzNTU1MTE2LCAwLCAwLCAyNjM3N30sCisgICAgezMzNTU1MTIxLCAxODg3NTA1NCwgMzM1NTUxMjMsIDAsIDAsIDI2Mzc3fSwKKyAgICB7MCwgMCwgMCwgMCwgMCwgMTAyNX0sCisgICAgezAsIDAsIDAsIDAsIDAsIDU2MzN9LAorICAgIHswLCA0MCwgMCwgMCwgMCwgMTAxMTN9LAorICAgIHstNDAsIDAsIC00MCwgMCwgMCwgOTk5M30sCit9OworCisvKiBleHRlbmRlZCBjYXNlIG1hcHBpbmdzICovCisKK2NvbnN0IFB5X1VDUzQgX1B5VW5pY29kZV9FeHRlbmRlZENhc2VbXSA9IHsKKyAgICAxODEsCisgICAgOTU2LAorICAgIDkyNCwKKyAgICAyMjMsCisgICAgMTE1LAorICAgIDExNSwKKyAgICA4MywKKyAgICA4MywKKyAgICA4MywKKyAgICAxMTUsCisgICAgMTA1LAorICAgIDc3NSwKKyAgICAzMDQsCisgICAgMzI5LAorICAgIDcwMCwKKyAgICAxMTAsCisgICAgNzAwLAorICAgIDc4LAorICAgIDM4MywKKyAgICAxMTUsCisgICAgODMsCisgICAgNDk2LAorICAgIDEwNiwKKyAgICA3ODAsCisgICAgNzQsCisgICAgNzgwLAorICAgIDgzNywKKyAgICA5NTMsCisgICAgOTIxLAorICAgIDkxMiwKKyAgICA5NTMsCisgICAgNzc2LAorICAgIDc2OSwKKyAgICA5MjEsCisgICAgNzc2LAorICAgIDc2OSwKKyAgICA5NDQsCisgICAgOTY1LAorICAgIDc3NiwKKyAgICA3NjksCisgICAgOTMzLAorICAgIDc3NiwKKyAgICA3NjksCisgICAgOTYyLAorICAgIDk2MywKKyAgICA5MzEsCisgICAgOTc2LAorICAgIDk0NiwKKyAgICA5MTQsCisgICAgOTc3LAorICAgIDk1MiwKKyAgICA5MjAsCisgICAgOTgxLAorICAgIDk2NiwKKyAgICA5MzQsCisgICAgOTgyLAorICAgIDk2MCwKKyAgICA5MjgsCisgICAgMTAwOCwKKyAgICA5NTQsCisgICAgOTIyLAorICAgIDEwMDksCisgICAgOTYxLAorICAgIDkyOSwKKyAgICAxMDEzLAorICAgIDk0OSwKKyAgICA5MTcsCisgICAgMTQxNSwKKyAgICAxMzgxLAorICAgIDE0MTAsCisgICAgMTMzMywKKyAgICAxMzYyLAorICAgIDEzMzMsCisgICAgMTQxMCwKKyAgICA3ODMwLAorICAgIDEwNCwKKyAgICA4MTcsCisgICAgNzIsCisgICAgODE3LAorICAgIDc4MzEsCisgICAgMTE2LAorICAgIDc3NiwKKyAgICA4NCwKKyAgICA3NzYsCisgICAgNzgzMiwKKyAgICAxMTksCisgICAgNzc4LAorICAgIDg3LAorICAgIDc3OCwKKyAgICA3ODMzLAorICAgIDEyMSwKKyAgICA3NzgsCisgICAgODksCisgICAgNzc4LAorICAgIDc4MzQsCisgICAgOTcsCisgICAgNzAyLAorICAgIDY1LAorICAgIDcwMiwKKyAgICA3ODM1LAorICAgIDc3NzcsCisgICAgNzc3NiwKKyAgICAyMjMsCisgICAgMTE1LAorICAgIDExNSwKKyAgICA3ODM4LAorICAgIDgwMTYsCisgICAgOTY1LAorICAgIDc4NywKKyAgICA5MzMsCisgICAgNzg3LAorICAgIDgwMTgsCisgICAgOTY1LAorICAgIDc4NywKKyAgICA3NjgsCisgICAgOTMzLAorICAgIDc4NywKKyAgICA3NjgsCisgICAgODAyMCwKKyAgICA5NjUsCisgICAgNzg3LAorICAgIDc2OSwKKyAgICA5MzMsCisgICAgNzg3LAorICAgIDc2OSwKKyAgICA4MDIyLAorICAgIDk2NSwKKyAgICA3ODcsCisgICAgODM0LAorICAgIDkzMywKKyAgICA3ODcsCisgICAgODM0LAorICAgIDgwNjQsCisgICAgNzkzNiwKKyAgICA5NTMsCisgICAgNzk0NCwKKyAgICA5MjEsCisgICAgODA3MiwKKyAgICA4MDY1LAorICAgIDc5MzcsCisgICAgOTUzLAorICAgIDc5NDUsCisgICAgOTIxLAorICAgIDgwNzMsCisgICAgODA2NiwKKyAgICA3OTM4LAorICAgIDk1MywKKyAgICA3OTQ2LAorICAgIDkyMSwKKyAgICA4MDc0LAorICAgIDgwNjcsCisgICAgNzkzOSwKKyAgICA5NTMsCisgICAgNzk0NywKKyAgICA5MjEsCisgICAgODA3NSwKKyAgICA4MDY4LAorICAgIDc5NDAsCisgICAgOTUzLAorICAgIDc5NDgsCisgICAgOTIxLAorICAgIDgwNzYsCisgICAgODA2OSwKKyAgICA3OTQxLAorICAgIDk1MywKKyAgICA3OTQ5LAorICAgIDkyMSwKKyAgICA4MDc3LAorICAgIDgwNzAsCisgICAgNzk0MiwKKyAgICA5NTMsCisgICAgNzk1MCwKKyAgICA5MjEsCisgICAgODA3OCwKKyAgICA4MDcxLAorICAgIDc5NDMsCisgICAgOTUzLAorICAgIDc5NTEsCisgICAgOTIxLAorICAgIDgwNzksCisgICAgODA2NCwKKyAgICA3OTM2LAorICAgIDk1MywKKyAgICA3OTQ0LAorICAgIDkyMSwKKyAgICA4MDcyLAorICAgIDgwNjUsCisgICAgNzkzNywKKyAgICA5NTMsCisgICAgNzk0NSwKKyAgICA5MjEsCisgICAgODA3MywKKyAgICA4MDY2LAorICAgIDc5MzgsCisgICAgOTUzLAorICAgIDc5NDYsCisgICAgOTIxLAorICAgIDgwNzQsCisgICAgODA2NywKKyAgICA3OTM5LAorICAgIDk1MywKKyAgICA3OTQ3LAorICAgIDkyMSwKKyAgICA4MDc1LAorICAgIDgwNjgsCisgICAgNzk0MCwKKyAgICA5NTMsCisgICAgNzk0OCwKKyAgICA5MjEsCisgICAgODA3NiwKKyAgICA4MDY5LAorICAgIDc5NDEsCisgICAgOTUzLAorICAgIDc5NDksCisgICAgOTIxLAorICAgIDgwNzcsCisgICAgODA3MCwKKyAgICA3OTQyLAorICAgIDk1MywKKyAgICA3OTUwLAorICAgIDkyMSwKKyAgICA4MDc4LAorICAgIDgwNzEsCisgICAgNzk0MywKKyAgICA5NTMsCisgICAgNzk1MSwKKyAgICA5MjEsCisgICAgODA3OSwKKyAgICA4MDgwLAorICAgIDc5NjgsCisgICAgOTUzLAorICAgIDc5NzYsCisgICAgOTIxLAorICAgIDgwODgsCisgICAgODA4MSwKKyAgICA3OTY5LAorICAgIDk1MywKKyAgICA3OTc3LAorICAgIDkyMSwKKyAgICA4MDg5LAorICAgIDgwODIsCisgICAgNzk3MCwKKyAgICA5NTMsCisgICAgNzk3OCwKKyAgICA5MjEsCisgICAgODA5MCwKKyAgICA4MDgzLAorICAgIDc5NzEsCisgICAgOTUzLAorICAgIDc5NzksCisgICAgOTIxLAorICAgIDgwOTEsCisgICAgODA4NCwKKyAgICA3OTcyLAorICAgIDk1MywKKyAgICA3OTgwLAorICAgIDkyMSwKKyAgICA4MDkyLAorICAgIDgwODUsCisgICAgNzk3MywKKyAgICA5NTMsCisgICAgNzk4MSwKKyAgICA5MjEsCisgICAgODA5MywKKyAgICA4MDg2LAorICAgIDc5NzQsCisgICAgOTUzLAorICAgIDc5ODIsCisgICAgOTIxLAorICAgIDgwOTQsCisgICAgODA4NywKKyAgICA3OTc1LAorICAgIDk1MywKKyAgICA3OTgzLAorICAgIDkyMSwKKyAgICA4MDk1LAorICAgIDgwODAsCisgICAgNzk2OCwKKyAgICA5NTMsCisgICAgNzk3NiwKKyAgICA5MjEsCisgICAgODA4OCwKKyAgICA4MDgxLAorICAgIDc5NjksCisgICAgOTUzLAorICAgIDc5NzcsCisgICAgOTIxLAorICAgIDgwODksCisgICAgODA4MiwKKyAgICA3OTcwLAorICAgIDk1MywKKyAgICA3OTc4LAorICAgIDkyMSwKKyAgICA4MDkwLAorICAgIDgwODMsCisgICAgNzk3MSwKKyAgICA5NTMsCisgICAgNzk3OSwKKyAgICA5MjEsCisgICAgODA5MSwKKyAgICA4MDg0LAorICAgIDc5NzIsCisgICAgOTUzLAorICAgIDc5ODAsCisgICAgOTIxLAorICAgIDgwOTIsCisgICAgODA4NSwKKyAgICA3OTczLAorICAgIDk1MywKKyAgICA3OTgxLAorICAgIDkyMSwKKyAgICA4MDkzLAorICAgIDgwODYsCisgICAgNzk3NCwKKyAgICA5NTMsCisgICAgNzk4MiwKKyAgICA5MjEsCisgICAgODA5NCwKKyAgICA4MDg3LAorICAgIDc5NzUsCisgICAgOTUzLAorICAgIDc5ODMsCisgICAgOTIxLAorICAgIDgwOTUsCisgICAgODA5NiwKKyAgICA4MDMyLAorICAgIDk1MywKKyAgICA4MDQwLAorICAgIDkyMSwKKyAgICA4MTA0LAorICAgIDgwOTcsCisgICAgODAzMywKKyAgICA5NTMsCisgICAgODA0MSwKKyAgICA5MjEsCisgICAgODEwNSwKKyAgICA4MDk4LAorICAgIDgwMzQsCisgICAgOTUzLAorICAgIDgwNDIsCisgICAgOTIxLAorICAgIDgxMDYsCisgICAgODA5OSwKKyAgICA4MDM1LAorICAgIDk1MywKKyAgICA4MDQzLAorICAgIDkyMSwKKyAgICA4MTA3LAorICAgIDgxMDAsCisgICAgODAzNiwKKyAgICA5NTMsCisgICAgODA0NCwKKyAgICA5MjEsCisgICAgODEwOCwKKyAgICA4MTAxLAorICAgIDgwMzcsCisgICAgOTUzLAorICAgIDgwNDUsCisgICAgOTIxLAorICAgIDgxMDksCisgICAgODEwMiwKKyAgICA4MDM4LAorICAgIDk1MywKKyAgICA4MDQ2LAorICAgIDkyMSwKKyAgICA4MTEwLAorICAgIDgxMDMsCisgICAgODAzOSwKKyAgICA5NTMsCisgICAgODA0NywKKyAgICA5MjEsCisgICAgODExMSwKKyAgICA4MDk2LAorICAgIDgwMzIsCisgICAgOTUzLAorICAgIDgwNDAsCisgICAgOTIxLAorICAgIDgxMDQsCisgICAgODA5NywKKyAgICA4MDMzLAorICAgIDk1MywKKyAgICA4MDQxLAorICAgIDkyMSwKKyAgICA4MTA1LAorICAgIDgwOTgsCisgICAgODAzNCwKKyAgICA5NTMsCisgICAgODA0MiwKKyAgICA5MjEsCisgICAgODEwNiwKKyAgICA4MDk5LAorICAgIDgwMzUsCisgICAgOTUzLAorICAgIDgwNDMsCisgICAgOTIxLAorICAgIDgxMDcsCisgICAgODEwMCwKKyAgICA4MDM2LAorICAgIDk1MywKKyAgICA4MDQ0LAorICAgIDkyMSwKKyAgICA4MTA4LAorICAgIDgxMDEsCisgICAgODAzNywKKyAgICA5NTMsCisgICAgODA0NSwKKyAgICA5MjEsCisgICAgODEwOSwKKyAgICA4MTAyLAorICAgIDgwMzgsCisgICAgOTUzLAorICAgIDgwNDYsCisgICAgOTIxLAorICAgIDgxMTAsCisgICAgODEwMywKKyAgICA4MDM5LAorICAgIDk1MywKKyAgICA4MDQ3LAorICAgIDkyMSwKKyAgICA4MTExLAorICAgIDgxMTQsCisgICAgODA0OCwKKyAgICA5NTMsCisgICAgODEyMiwKKyAgICA5MjEsCisgICAgODEyMiwKKyAgICA4MzcsCisgICAgODExNSwKKyAgICA5NDUsCisgICAgOTUzLAorICAgIDkxMywKKyAgICA5MjEsCisgICAgODEyNCwKKyAgICA4MTE2LAorICAgIDk0MCwKKyAgICA5NTMsCisgICAgOTAyLAorICAgIDkyMSwKKyAgICA5MDIsCisgICAgODM3LAorICAgIDgxMTgsCisgICAgOTQ1LAorICAgIDgzNCwKKyAgICA5MTMsCisgICAgODM0LAorICAgIDgxMTksCisgICAgOTQ1LAorICAgIDgzNCwKKyAgICA5NTMsCisgICAgOTEzLAorICAgIDgzNCwKKyAgICA5MjEsCisgICAgOTEzLAorICAgIDgzNCwKKyAgICA4MzcsCisgICAgODExNSwKKyAgICA5NDUsCisgICAgOTUzLAorICAgIDkxMywKKyAgICA5MjEsCisgICAgODEyNCwKKyAgICA4MTI2LAorICAgIDk1MywKKyAgICA5MjEsCisgICAgODEzMCwKKyAgICA4MDUyLAorICAgIDk1MywKKyAgICA4MTM4LAorICAgIDkyMSwKKyAgICA4MTM4LAorICAgIDgzNywKKyAgICA4MTMxLAorICAgIDk1MSwKKyAgICA5NTMsCisgICAgOTE5LAorICAgIDkyMSwKKyAgICA4MTQwLAorICAgIDgxMzIsCisgICAgOTQyLAorICAgIDk1MywKKyAgICA5MDUsCisgICAgOTIxLAorICAgIDkwNSwKKyAgICA4MzcsCisgICAgODEzNCwKKyAgICA5NTEsCisgICAgODM0LAorICAgIDkxOSwKKyAgICA4MzQsCisgICAgODEzNSwKKyAgICA5NTEsCisgICAgODM0LAorICAgIDk1MywKKyAgICA5MTksCisgICAgODM0LAorICAgIDkyMSwKKyAgICA5MTksCisgICAgODM0LAorICAgIDgzNywKKyAgICA4MTMxLAorICAgIDk1MSwKKyAgICA5NTMsCisgICAgOTE5LAorICAgIDkyMSwKKyAgICA4MTQwLAorICAgIDgxNDYsCisgICAgOTUzLAorICAgIDc3NiwKKyAgICA3NjgsCisgICAgOTIxLAorICAgIDc3NiwKKyAgICA3NjgsCisgICAgODE0NywKKyAgICA5NTMsCisgICAgNzc2LAorICAgIDc2OSwKKyAgICA5MjEsCisgICAgNzc2LAorICAgIDc2OSwKKyAgICA4MTUwLAorICAgIDk1MywKKyAgICA4MzQsCisgICAgOTIxLAorICAgIDgzNCwKKyAgICA4MTUxLAorICAgIDk1MywKKyAgICA3NzYsCisgICAgODM0LAorICAgIDkyMSwKKyAgICA3NzYsCisgICAgODM0LAorICAgIDgxNjIsCisgICAgOTY1LAorICAgIDc3NiwKKyAgICA3NjgsCisgICAgOTMzLAorICAgIDc3NiwKKyAgICA3NjgsCisgICAgODE2MywKKyAgICA5NjUsCisgICAgNzc2LAorICAgIDc2OSwKKyAgICA5MzMsCisgICAgNzc2LAorICAgIDc2OSwKKyAgICA4MTY0LAorICAgIDk2MSwKKyAgICA3ODcsCisgICAgOTI5LAorICAgIDc4NywKKyAgICA4MTY2LAorICAgIDk2NSwKKyAgICA4MzQsCisgICAgOTMzLAorICAgIDgzNCwKKyAgICA4MTY3LAorICAgIDk2NSwKKyAgICA3NzYsCisgICAgODM0LAorICAgIDkzMywKKyAgICA3NzYsCisgICAgODM0LAorICAgIDgxNzgsCisgICAgODA2MCwKKyAgICA5NTMsCisgICAgODE4NiwKKyAgICA5MjEsCisgICAgODE4NiwKKyAgICA4MzcsCisgICAgODE3OSwKKyAgICA5NjksCisgICAgOTUzLAorICAgIDkzNywKKyAgICA5MjEsCisgICAgODE4OCwKKyAgICA4MTgwLAorICAgIDk3NCwKKyAgICA5NTMsCisgICAgOTExLAorICAgIDkyMSwKKyAgICA5MTEsCisgICAgODM3LAorICAgIDgxODIsCisgICAgOTY5LAorICAgIDgzNCwKKyAgICA5MzcsCisgICAgODM0LAorICAgIDgxODMsCisgICAgOTY5LAorICAgIDgzNCwKKyAgICA5NTMsCisgICAgOTM3LAorICAgIDgzNCwKKyAgICA5MjEsCisgICAgOTM3LAorICAgIDgzNCwKKyAgICA4MzcsCisgICAgODE3OSwKKyAgICA5NjksCisgICAgOTUzLAorICAgIDkzNywKKyAgICA5MjEsCisgICAgODE4OCwKKyAgICA2NDI1NiwKKyAgICAxMDIsCisgICAgMTAyLAorICAgIDcwLAorICAgIDcwLAorICAgIDcwLAorICAgIDEwMiwKKyAgICA2NDI1NywKKyAgICAxMDIsCisgICAgMTA1LAorICAgIDcwLAorICAgIDczLAorICAgIDcwLAorICAgIDEwNSwKKyAgICA2NDI1OCwKKyAgICAxMDIsCisgICAgMTA4LAorICAgIDcwLAorICAgIDc2LAorICAgIDcwLAorICAgIDEwOCwKKyAgICA2NDI1OSwKKyAgICAxMDIsCisgICAgMTAyLAorICAgIDEwNSwKKyAgICA3MCwKKyAgICA3MCwKKyAgICA3MywKKyAgICA3MCwKKyAgICAxMDIsCisgICAgMTA1LAorICAgIDY0MjYwLAorICAgIDEwMiwKKyAgICAxMDIsCisgICAgMTA4LAorICAgIDcwLAorICAgIDcwLAorICAgIDc2LAorICAgIDcwLAorICAgIDEwMiwKKyAgICAxMDgsCisgICAgNjQyNjEsCisgICAgMTE1LAorICAgIDExNiwKKyAgICA4MywKKyAgICA4NCwKKyAgICA4MywKKyAgICAxMTYsCisgICAgNjQyNjIsCisgICAgMTE1LAorICAgIDExNiwKKyAgICA4MywKKyAgICA4NCwKKyAgICA4MywKKyAgICAxMTYsCisgICAgNjQyNzUsCisgICAgMTM5NiwKKyAgICAxMzk4LAorICAgIDEzNDgsCisgICAgMTM1MCwKKyAgICAxMzQ4LAorICAgIDEzOTgsCisgICAgNjQyNzYsCisgICAgMTM5NiwKKyAgICAxMzgxLAorICAgIDEzNDgsCisgICAgMTMzMywKKyAgICAxMzQ4LAorICAgIDEzODEsCisgICAgNjQyNzcsCisgICAgMTM5NiwKKyAgICAxMzg3LAorICAgIDEzNDgsCisgICAgMTMzOSwKKyAgICAxMzQ4LAorICAgIDEzODcsCisgICAgNjQyNzgsCisgICAgMTQwNiwKKyAgICAxMzk4LAorICAgIDEzNTgsCisgICAgMTM1MCwKKyAgICAxMzU4LAorICAgIDEzOTgsCisgICAgNjQyNzksCisgICAgMTM5NiwKKyAgICAxMzg5LAorICAgIDEzNDgsCisgICAgMTM0MSwKKyAgICAxMzQ4LAorICAgIDEzODksCiB9OwogCiAvKiB0eXBlIGluZGV4ZXMgKi8KQEAgLTE5NSw3MiArMTAwMyw3MiBAQAogICAgIDIxLCAyMiwgMjMsIDI0LCAyNSwgMjYsIDI3LCAyOCwgMjksIDMwLCAzMSwgMzIsIDMzLCAzNCwgMzQsIDM1LCAzNiwgMzcsIAogICAgIDM4LCAzOSwgMzQsIDM0LCAzNCwgNDAsIDQxLCA0MiwgNDMsIDQ0LCA0NSwgNDYsIDQ3LCA0OCwgNDksIDUwLCA1MSwgNTIsIAogICAgIDUzLCA1NCwgNTUsIDU2LCA1NywgNTgsIDU5LCA2MCwgNjEsIDYyLCA2MywgNjQsIDY0LCA2NCwgNjUsIDY2LCA2NywgNjQsIAotICAgIDY0LCA2NCwgNjQsIDY4LCA2OSwgNjQsIDY0LCA2NCwgNjQsIDY0LCA2NCwgNzAsIDE3LCA3MSwgNzIsIDczLCA3NCwgNzUsIAotICAgIDc2LCA2NCwgNzcsIDc4LCA3OSwgODAsIDgxLCA4MiwgODMsIDY0LCA2NCwgODQsIDg1LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAotICAgIDM0LCA4NiwgMzQsIDM0LCAzNCwgMzQsIDM0LCA4NywgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDY0LCA2NCwgNjQsIDY4LCA2OSwgNjQsIDY0LCA2NCwgNjQsIDY0LCA2NCwgNzAsIDcxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIAorICAgIDc3LCA2NCwgNzgsIDc5LCA4MCwgODEsIDgyLCA4MywgODQsIDY0LCA2NCwgODUsIDg2LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDM0LCA4NywgMzQsIDM0LCAzNCwgMzQsIDM0LCA4OCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAogICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAotICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgODgsIDg5LCA5MCwgOTEsIDM0LCAzNCwgMzQsIDkyLCAzNCwgMzQsIAotICAgIDM0LCA5MywgOTQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgOTUsIDM0LCAzNCwgMzQsIDk2LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAotICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgOTcsIDk4LCA5OSwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTAwLCAxMDEsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTAyLCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAotICAgIDM0LCAzNCwgMzQsIDEwMywgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAxMDQsIDM0LCAzNCwgMzQsIDM0LCAKLSAgICAxMDAsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMTAzLCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAxMDUsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAKLSAgICAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAxMDYsIDEwNywgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAotICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAxMDgsIDEwOSwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAxMTAsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAotICAgIDM0LCAzNCwgMzQsIDExMSwgMzQsIDM0LCAxMTIsIDExMywgMTE0LCAxMTUsIDExNiwgMTE3LCAxMTgsIDExOSwgMTIwLCAKLSAgICAxMjEsIDEyMiwgMTIzLCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgODksIDkwLCA5MSwgOTIsIDM0LCAzNCwgMzQsIDkzLCAzNCwgMzQsIAorICAgIDM0LCA5NCwgOTUsIDM0LCAzNCwgMzQsIDM0LCAzNCwgOTYsIDM0LCAzNCwgMzQsIDk3LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgOTgsIDk5LCAxMDAsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDEwMSwgMTAyLCAzNCwgCisgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDEwMywgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDM0LCAzNCwgMzQsIDM0LCAxMDQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTA1LCAzNCwgMzQsIDM0LCAzNCwgCisgICAgMTAxLCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDM0LCAzNCwgMzQsIDEwNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTA2LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCisgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTA3LCAxMDgsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAKKyAgICAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTA5LCAxMTAsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTExLCAxMTIsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCisgICAgMzQsIDM0LCAzNCwgMTEzLCAzNCwgMzQsIDExNCwgMTE1LCAxMTYsIDExNywgMTE4LCAxMTksIDEyMCwgMTIxLCAxMjIsIAorICAgIDEyMywgMTI0LCAxMjUsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDEyNCwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI2LCAxMjcsIDEyOCwgCi0gICAgMTI5LCAxMzAsIDEzMSwgMTMyLCAzNCwgMTMzLCAxMzQsIDEzNSwgMTM2LCAxMzcsIDEzOCwgMTM5LCAxNDAsIDE0MSwgMTQyLCAKLSAgICAxNywgMTQzLCAxNDQsIDE0NSwgMTQ2LCAxNDcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE0OCwgMTcsIDE0OSwgMTcsIAotICAgIDE1MCwgMTcsIDE1MSwgMTcsIDE1MiwgMTcsIDE3LCAxNywgMTUzLCAxNywgMTcsIDE3LCAxNTQsIDE1NSwgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTU2LCAxNywgMTU3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTU4LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMzQsIDM0LCAzNCwgMzQsIDE1OSwgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE2MCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgNjQsIDE2MSwgMTYyLCAxNjMsIDE2NCwgMTcsIDE2NSwgMTcsIDE2NiwgMTY3LCAxNjgsIDE2OSwgMTcwLCAxNzEsIAotICAgIDE3MiwgMTczLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNzQsIDE3NSwgMTc2LCAKLSAgICAxNzcsIDE3OCwgMTcsIDE3OSwgMTgwLCAxODEsIDE4MiwgMTgzLCAxODQsIDE4NSwgMTg2LCA2NSwgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxODcsIDE4OCwgMTg5LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCA4NiwgMTkwLCAzNCwgMTkxLCAKLSAgICAxOTIsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCisgICAgMzQsIDEyNiwgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI4LCAxMjksIDEzMCwgCisgICAgMTMxLCAxMzIsIDEzMywgMTM0LCAzNCwgMTM1LCAxMzYsIDEzNywgMTM4LCAxMzksIDE0MCwgMTQxLCAxNDIsIDE0MywgMTQ0LCAKKyAgICA3MSwgMTQ1LCAxNDYsIDE0NywgMTQ4LCAxNDksIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDE1MCwgNzEsIDE1MSwgMTUyLCAKKyAgICAxNTMsIDcxLCAxNTQsIDcxLCAxNTUsIDcxLCA3MSwgNzEsIDE1NiwgNzEsIDcxLCA3MSwgMTU3LCAxNTgsIDE1OSwgMTYwLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAxNjEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDE2MiwgNzEsIAorICAgIDE2MywgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDE2NCwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDM0LCAzNCwgMzQsIDM0LCAxNjUsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDE2NiwgMTY3LCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDE2OCwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNjQsIDE2OSwgMTcwLCAxNzEsIDE3MiwgNzEsIDE3MywgNzEsIDE3NCwgMTc1LCAxNzYsIDE3NywgMTc4LCAKKyAgICAxNzksIDE4MCwgMTgxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDE4MiwgMTgzLCA3MSwgNzEsIDE4NCwgCisgICAgMTg1LCAxODYsIDE4NywgMTg4LCA3MSwgMTg5LCAxOTAsIDE5MSwgMTkyLCAxOTMsIDE5NCwgMTk1LCAxOTYsIDY1LCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDE5NywgMTk4LCAKKyAgICAxOTksIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDg3LCAyMDAsIAorICAgIDM0LCAyMDEsIDIwMiwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDE5MywgMzQsIDM0LCAzNCwgMzQsIAotICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAxOTQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAKKyAgICAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAyMDMsIDM0LCAzNCwgCisgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMjA0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAogICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAotICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDE5NSwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAKKyAgICAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDIwNSwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMTk2LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMjA2LCAzNCwgMzQsIDM0LCAKICAgICAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAKICAgICAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAKICAgICAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAKQEAgLTI2OCw4NjAgKzEwNzYsODYyIEBACiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCiAgICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgCi0gICAgMzQsIDM0LCAzNCwgMzQsIDM0LCAxOTcsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIAorICAgIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAyMDcsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAKICAgICAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAzNCwgMzQsIDM0LCAKLSAgICAzNCwgMzQsIDE5OCwgMzQsIDE5OSwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDM0LCAxOTMsIDM0LCAzNCwgMTk5LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAyMDAsIDE3LCAyMDEsIDIwMiwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMjAzLCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAKLSAgICAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgCi0gICAgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIAotICAgIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDEyNSwgMTI1LCAxMjUsIDIwMywgCisgICAgMzQsIDM0LCAzNCwgMzQsIDIwOCwgMzQsIDIwOSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCAKKyAgICA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDM0LCAyMDMsIDM0LCAzNCwgMjA5LCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIAorICAgIDcxLCA3MSwgNzEsIDcxLCAyMTAsIDcxLCAyMTEsIDIxMiwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgCisgICAgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDcxLCA3MSwgNzEsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMjEzLCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDIxMywgCiB9OwogCi1zdGF0aWMgdW5zaWduZWQgY2hhciBpbmRleDJbXSA9IHsKK3N0YXRpYyB1bnNpZ25lZCBzaG9ydCBpbmRleDJbXSA9IHsKICAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAyLCAzLCAzLCAzLCAzLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAKLSAgICAxLCAxLCAxLCAxLCAzLCAzLCAzLCAyLCA0LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAxNiwgMTYsIDE2LCAxNiwgCi0gICAgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgCi0gICAgMTYsIDE2LCAxNiwgMTYsIDUsIDUsIDUsIDUsIDE3LCA1LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAKLSAgICAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDUsIDUsIAorICAgIDEsIDEsIDEsIDEsIDMsIDMsIDMsIDIsIDQsIDUsIDUsIDUsIDUsIDUsIDUsIDYsIDUsIDUsIDUsIDUsIDUsIDUsIDYsIDUsIAorICAgIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCA2LCA1LCA1LCA1LCA1LCA1LCA1LCAxNywgMTcsIDE3LCAxNywgCisgICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCisgICAgMTcsIDE3LCAxNywgMTcsIDUsIDUsIDUsIDYsIDE4LCA2LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAKKyAgICAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDUsIDUsIAogICAgIDUsIDUsIDEsIDEsIDEsIDEsIDEsIDEsIDMsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIAotICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDIsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDE5LCA1LCA1LCAKLSAgICAxLCA1LCA1LCA1LCA1LCAyMCwgMjEsIDUsIDIyLCA1LCAxNywgNSwgMjMsIDE5LCA1LCAyNCwgMjQsIDI0LCA1LCAxNiwgMTYsIAotICAgIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIAotICAgIDE2LCAxNiwgMTYsIDUsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxOSwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgCi0gICAgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCA1LCAKLSAgICAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMjUsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI4LCAyOSwgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMTksIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAxOSwgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDMwLCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAzMSwgMzIsIDMzLCAyNiwgMjcsIDI2LCAyNywgMzQsIDI2LCAKLSAgICAyNywgMzUsIDM1LCAyNiwgMjcsIDE5LCAzNiwgMzcsIDM4LCAyNiwgMjcsIDM1LCAzOSwgNDAsIDQxLCA0MiwgMjYsIDI3LCAKLSAgICA0MywgMTksIDQxLCA0NCwgNDUsIDQ2LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCA0NywgMjYsIDI3LCA0NywgMTksIDE5LCAKLSAgICAyNiwgMjcsIDQ3LCAyNiwgMjcsIDQ4LCA0OCwgMjYsIDI3LCAyNiwgMjcsIDQ5LCAyNiwgMjcsIDE5LCA1MCwgMjYsIDI3LCAKLSAgICAxOSwgNTEsIDUwLCA1MCwgNTAsIDUwLCA1MiwgNTMsIDU0LCA1MiwgNTMsIDU0LCA1MiwgNTMsIDU0LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgNTUsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDE5LCA1MiwgNTMsIDU0LCAKLSAgICAyNiwgMjcsIDU2LCA1NywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDU4LCAxOSwgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgNTksIDI2LCAKLSAgICAyNywgNjAsIDYxLCA2MiwgNjIsIDI2LCAyNywgNjMsIDY0LCA2NSwgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDY2LCA2NywgNjgsIDY5LCA3MCwgMTksIDcxLCA3MSwgMTksIDcyLCAxOSwgNzMsIDE5LCAxOSwgMTksIDE5LCAKLSAgICA3MSwgMTksIDE5LCA3NCwgMTksIDc1LCAxOSwgMTksIDc2LCA3NywgMTksIDc4LCAxOSwgMTksIDE5LCA3NywgMTksIDc5LCAKLSAgICA4MCwgMTksIDE5LCA4MSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDgyLCAxOSwgMTksIDgzLCAxOSwgMTksIDgzLCAKLSAgICAxOSwgMTksIDE5LCAxOSwgODMsIDg0LCA4NSwgODUsIDg2LCAxOSwgMTksIDE5LCAxOSwgMTksIDg3LCAxOSwgNTAsIDE5LCAKKyAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAyLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA2LCA1LCAyMCwgNSwgNSwgCisgICAgMjEsIDUsIDYsIDUsIDUsIDIyLCAyMywgNiwgMjQsIDUsIDI1LCA2LCAyNiwgMjAsIDUsIDI3LCAyNywgMjcsIDUsIDE3LCAKKyAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKKyAgICAxNywgMTcsIDE3LCAxNywgNSwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDI4LCAxOSwgMTksIDE5LCAxOSwgMTksIAogICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNSwgNSwgNSwgNSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1MCwgNSwgNTAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCisgICAgNSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDI5LCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzMiwgMzMsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDIwLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAKKyAgICAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzQsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzNSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzYsIDM3LCAzOCwgMzAsIDMxLCAzMCwgMzEsIDM5LCAKKyAgICAzMCwgMzEsIDQwLCA0MCwgMzAsIDMxLCAyMCwgNDEsIDQyLCA0MywgMzAsIDMxLCA0MCwgNDQsIDQ1LCA0NiwgNDcsIDMwLCAKKyAgICAzMSwgNDgsIDIwLCA0NiwgNDksIDUwLCA1MSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgNTIsIDMwLCAzMSwgNTIsIDIwLCAKKyAgICAyMCwgMzAsIDMxLCA1MiwgMzAsIDMxLCA1MywgNTMsIDMwLCAzMSwgMzAsIDMxLCA1NCwgMzAsIDMxLCAyMCwgNTUsIDMwLCAKKyAgICAzMSwgMjAsIDU2LCA1NSwgNTUsIDU1LCA1NSwgNTcsIDU4LCA1OSwgNTcsIDU4LCA1OSwgNTcsIDU4LCA1OSwgMzAsIDMxLCAKKyAgICAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDYwLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCA2MSwgNTcsIDU4LCAKKyAgICA1OSwgMzAsIDMxLCA2MiwgNjMsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCA2NCwgMjAsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDY1LCAKKyAgICAzMCwgMzEsIDY2LCA2NywgNjgsIDY4LCAzMCwgMzEsIDY5LCA3MCwgNzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAKKyAgICAzMSwgMzAsIDMxLCA3MiwgNzMsIDc0LCA3NSwgNzYsIDIwLCA3NywgNzcsIDIwLCA3OCwgMjAsIDc5LCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgNzcsIDIwLCAyMCwgODAsIDIwLCA4MSwgODIsIDIwLCA4MywgODQsIDIwLCA4NSwgMjAsIDIwLCAyMCwgODQsIDIwLCAKKyAgICA4NiwgODcsIDIwLCAyMCwgODgsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCA4OSwgMjAsIDIwLCA5MCwgMjAsIDIwLCAKKyAgICA5MCwgMjAsIDIwLCAyMCwgMjAsIDkwLCA5MSwgOTIsIDkyLCA5MywgMjAsIDIwLCAyMCwgMjAsIDIwLCA5NCwgMjAsIDU1LCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCAKKyAgICA5NiwgOTYsIDk2LCA5NiwgOTYsIDk2LCA5NiwgOTUsIDk1LCA2LCA2LCA2LCA2LCA5NiwgOTYsIDk2LCA5NiwgOTYsIDk2LCAKKyAgICA5NiwgOTYsIDk2LCA5NiwgOTYsIDk2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA5NSwgOTUsIAorICAgIDk1LCA5NSwgOTUsIDYsIDYsIDYsIDYsIDYsIDYsIDYsIDk2LCA2LCA5NiwgNiwgNiwgNiwgNiwgNiwgNiwgNiwgNiwgNiwgNiwgCisgICAgNiwgNiwgNiwgNiwgNiwgNiwgNiwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgOTcsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDMwLCAzMSwgMzAsIDMxLCA5NiwgNiwgMzAsIDMxLCAwLCAwLCAKKyAgICA5OCwgNTAsIDUwLCA1MCwgNSwgMCwgMCwgMCwgMCwgMCwgNiwgNiwgOTksIDI1LCAxMDAsIDEwMCwgMTAwLCAwLCAxMDEsIDAsIAorICAgIDEwMiwgMTAyLCAxMDMsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCisgICAgMTcsIDE3LCAxNywgMCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTA0LCAxMDUsIDEwNSwgMTA1LCAKKyAgICAxMDYsIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCisgICAgMTA3LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxMDgsIDEwOSwgMTA5LCAxMTAsIDExMSwgMTEyLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTQsIDExNSwgMTE2LCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAxMTcsIDExOCwgMTE5LCAyMCwgCisgICAgMTIwLCAxMjEsIDUsIDMwLCAzMSwgMTIyLCAzMCwgMzEsIDIwLCA2NCwgNjQsIDY0LCAxMjMsIDEyMywgMTIzLCAxMjMsIAorICAgIDEyMywgMTIzLCAxMjMsIDEyMywgMTIzLCAxMjMsIDEyMywgMTIzLCAxMjMsIDEyMywgMTIzLCAxMjMsIDE3LCAxNywgMTcsIAogICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCA4OCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMjYsIDI3LCAyNiwgMjcsIDUwLCA1LCAyNiwgMjcsIDAsIDAsIDg5LCAKLSAgICA0NSwgNDUsIDQ1LCA1LCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA5MCwgMTcsIDkxLCA5MSwgOTEsIDAsIDkyLCAwLCA5MywgOTMsIAotICAgIDE5LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIAotICAgIDAsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDk0LCA5NSwgOTUsIDk1LCAxOSwgMTgsIDE4LCAxOCwgCi0gICAgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCA5NiwgMTgsIDE4LCAxOCwgCi0gICAgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgOTcsIDk4LCA5OCwgOTksIDEwMCwgMTAxLCAxMDIsIDEwMiwgMTAyLCAxMDMsIAotICAgIDEwNCwgMTA1LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgCi0gICAgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAxMDYsIDEwNywgMTA4LCAxOSwgMTA5LCAxMTAsIDUsIDI2LCAyNywgCi0gICAgMTExLCAyNiwgMjcsIDE5LCA1OCwgNTgsIDU4LCAxMTIsIDExMiwgMTEyLCAxMTIsIDExMiwgMTEyLCAxMTIsIDExMiwgMTEyLCAKLSAgICAxMTIsIDExMiwgMTEyLCAxMTIsIDExMiwgMTEyLCAxMTIsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIAotICAgIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIAotICAgIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIAotICAgIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIAotICAgIDE4LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgMTA3LCAxMDcsIDEwNywgCi0gICAgMTA3LCAxMDcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICA1LCAxNywgMTcsIDE3LCAxNywgMTcsIDUsIDUsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgCi0gICAgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgCi0gICAgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgCi0gICAgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDExMywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIAotICAgIDI2LCAyNywgMjYsIDI3LCAxMTQsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIAotICAgIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAKLSAgICAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgCi0gICAgMTE1LCAxMTUsIDExNSwgMCwgMCwgNTAsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAKLSAgICAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgCi0gICAgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIAotICAgIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxOSwgMCwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgNSwgMTcsIDUsIDE3LCAxNywgNSwgMTcsIDE3LCA1LCAxNywgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgNTAsIDUwLCA1MCwgNSwgNSwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMSwgMSwgMSwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1LCAwLCAwLCA1LCA1LCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgCi0gICAgNSwgNSwgNSwgNSwgNTAsIDUwLCAxNywgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNSwgNTAsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxLCA1LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1MCwgNTAsIDE3LCAxNywgNSwgCi0gICAgMTcsIDE3LCAxNywgMTcsIDUwLCA1MCwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgNTAsIDUwLCA1MCwgCi0gICAgNSwgNSwgNTAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDEsIDUwLCAxNywgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCA1MCwgNTAsIDUsIDUsIDUsIDUsIDUwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDE3LCAKLSAgICAxNywgMTcsIDUwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1MCwgMTcsIDE3LCAxNywgNTAsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCAxNywgMTcsIDAsIDAsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAorICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAorICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxMjQsIDEyNCwgMTI0LCAxMjQsIDEyNCwgMTI0LCAxMjQsIDEyNCwgMTI0LCAKKyAgICAxMjQsIDEyNCwgMTI0LCAxMjQsIDEyNCwgMTI0LCAxMjQsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCA1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDYsIDYsIDMwLCAzMSwgMzAsIDMxLCAKKyAgICAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAKKyAgICAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAKKyAgICAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDEyNSwgMzAsIDMxLCAzMCwgCisgICAgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAxMjYsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMCwgMCwgOTYsIDUsIDUsIDUsIDUsIDUsIDUsIAorICAgIDAsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKKyAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCisgICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjksIDAsIDUsIDUsIDAsIDAsIDAsIAorICAgIDAsIDUsIDAsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDUsIDI1LCA1LCAyNSwgMjUsIDUsIDI1LCAyNSwgCisgICAgNSwgMjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIAorICAgIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDUsIDYsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIxLCAyMSwgMjEsIAorICAgIDIxLCAyMSwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCA1LCAwLCAwLCA1LCA1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDk2LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgNywgOCwgCisgICAgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDUsIDUsIDUsIDUsIDU1LCA1NSwgMjUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDUsIDU1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjEsIDUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDk2LCA5NiwgMjUsIDI1LCA1LCAyNSwgMjUsIDI1LCAyNSwgNTUsIDU1LCA3LCA4LCA5LCAxMCwgMTEsIAorICAgIDEyLCAxMywgMTQsIDE1LCAxNiwgNTUsIDU1LCA1NSwgNSwgNSwgNTUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAorICAgIDUsIDUsIDUsIDUsIDAsIDIxLCA1NSwgMjUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgOCwgOSwgMTAsIAorICAgIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDk2LCA5NiwgNSwgNSwgNSwgNSwgOTYsIAorICAgIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgMjUsIDI1LCAyNSwgOTYsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDk2LCAyNSwgMjUsIDI1LCA5NiwgMjUsIDI1LCAyNSwgMjUsIDI1LCAwLCAwLCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjUsIDI1LCAKKyAgICAyNSwgMCwgMCwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDAsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMCwgMjUsIDI1LCAyNSwgMTgsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAxOCwgMjUsIDU1LCAxOCwgMTgsIDE4LCAKKyAgICAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDE4LCAxOCwgMTgsIDE4LCAyNSwgMTgsIDE4LCA1NSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCAyNSwgMjUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgMjUsIDUsIDUsIAorICAgIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCA1LCA5NiwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDI1LCAxOCwgMTgsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgMCwgMCwgNTUsIDU1LCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIAorICAgIDU1LCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMjUsIDU1LCAxOCwgMTgsIDE4LCAyNSwgMjUsIDI1LCAyNSwgMCwgCisgICAgMCwgMTgsIDE4LCAwLCAwLCAxOCwgMTgsIDI1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIDAsIAorICAgIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgMjUsIDI1LCAwLCAwLCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgCisgICAgNTUsIDU1LCA1LCA1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAyNSwgMjUsIDE4LCAwLCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCA1NSwgNTUsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCAwLCA1NSwgNTUsIDAsIDU1LCA1NSwgMCwgMCwgMjUsIDAsIDE4LCAKKyAgICAxOCwgMTgsIDI1LCAyNSwgMCwgMCwgMCwgMCwgMjUsIDI1LCAwLCAwLCAyNSwgMjUsIDI1LCAwLCAwLCAwLCAyNSwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA4LCA5LCAxMCwgCisgICAgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMjUsIDI1LCA1NSwgNTUsIDU1LCAyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMjUsIDI1LCAxOCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCAKKyAgICA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDAsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMjUsIDU1LCAxOCwgMTgsIDE4LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDAsIDI1LCAyNSwgCisgICAgMTgsIDAsIDE4LCAxOCwgMjUsIDAsIDAsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICA1NSwgNTUsIDI1LCAyNSwgMCwgMCwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDUsIDUsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI1LCAxOCwgMTgsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgMCwgMCwgNTUsIDU1LCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDAsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAyNSwgNTUsIDE4LCAyNSwgMTgsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCAwLCAwLCAxOCwgMTgsIDAsIDAsIDE4LCAxOCwgMjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI1LCAKKyAgICAxOCwgMCwgMCwgMCwgMCwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCAyNSwgMjUsIDAsIDAsIDcsIDgsIDksIDEwLCAxMSwgMTIsIAorICAgIDEzLCAxNCwgMTUsIDE2LCA1LCA1NSwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMjUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgMCwgMCwgMCwgNTUsIDU1LCAwLCA1NSwgMCwgNTUsIDU1LCAwLCAwLCAwLCA1NSwgNTUsIDAsIDAsIDAsIDU1LCA1NSwgCisgICAgNTUsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIAorICAgIDE4LCAxOCwgMjUsIDE4LCAxOCwgMCwgMCwgMCwgMTgsIDE4LCAxOCwgMCwgMTgsIDE4LCAxOCwgMjUsIDAsIDAsIDU1LCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgOCwgOSwgMTAsIAorICAgIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDI3LCAyNywgMjcsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDE4LCAxOCwgMTgsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgMCwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCAwLCAwLCAwLCA1NSwgMjUsIDI1LCAyNSwgMTgsIDE4LCAxOCwgMTgsIDAsIDI1LCAyNSwgMjUsIDAsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNSwgMjUsIDAsIDU1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNTUsIDU1LCAyNSwgMjUsIDAsIDAsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgNSwgMCwgMCwgMTgsIDE4LCAwLCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMjUsIDU1LCAxOCwgMjUsIDE4LCAKKyAgICAxOCwgMTgsIDE4LCAxOCwgMCwgMjUsIDE4LCAxOCwgMCwgMTgsIDE4LCAyNSwgMjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDE4LCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDAsIDU1LCA1NSwgMjUsIDI1LCAwLCAwLCA3LCA4LCA5LCAxMCwgCisgICAgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMCwgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAxOCwgMTgsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgMCwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCA1NSwgMTgsIDE4LCAxOCwgMjUsIDI1LCAyNSwgMjUsIDAsIDE4LCAxOCwgMTgsIDAsIAorICAgIDE4LCAxOCwgMTgsIDI1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDU1LCA1NSwgMjUsIDI1LCAwLCAwLCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMjcsIDI3LCAyNywgCisgICAgMjcsIDI3LCAyNywgMCwgMCwgMCwgNSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMTgsIDE4LCAwLCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgMCwgCisgICAgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDI1LCAwLCAwLCAwLCAwLCAxOCwgMTgsIDE4LCAyNSwgCisgICAgMjUsIDI1LCAwLCAyNSwgMCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMTgsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCA1NSwgMTMwLCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMCwgMCwgMCwgMCwgNSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgOTYsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgNSwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDUsIDUsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgMCwgNTUsIDAsIDAsIDU1LCA1NSwgMCwgNTUsIAorICAgIDAsIDAsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDAsIDU1LCA1NSwgNTUsIDAsIDU1LCAwLCA1NSwgMCwgMCwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgMjUsIDU1LCAKKyAgICAxMzAsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDAsIDI1LCAyNSwgNTUsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgCisgICAgOTYsIDAsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDAsIDAsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAKKyAgICAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDI1LCAyNSwgNSwgNSwgNSwgNSwgNSwgNSwgNywgCisgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKKyAgICA1LCAyNSwgNSwgMjUsIDUsIDI1LCA1LCA1LCA1LCA1LCAxOCwgMTgsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgMCwgMCwgMCwgMCwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAxOCwgMjUsIDI1LCAyNSwgMjUsIDI1LCA1LCAyNSwgMjUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAwLCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDE4LCAxOCwgMjUsIDI1LCAyNSwgMjUsIDE4LCAKKyAgICAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAxOCwgMjUsIDI1LCAxOCwgMTgsIDI1LCAyNSwgNTUsIDcsIDgsIDksIDEwLCAxMSwgCisgICAgMTIsIDEzLCAxNCwgMTUsIDE2LCA1LCA1LCA1LCA1LCA1LCA1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAxOCwgMTgsIDI1LCAKKyAgICAyNSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAyNSwgMjUsIDU1LCAxOCwgMTgsIDE4LCA1NSwgNTUsIDE4LCAxOCwgMTgsIDE4LCAKKyAgICAxOCwgMTgsIDE4LCA1NSwgNTUsIDU1LCAyNSwgMjUsIDI1LCAyNSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAxOCwgMTgsIDI1LCAyNSwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMjUsIDU1LCAKKyAgICAxOCwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE4LCAxOCwgMTgsIDI1LCA1LCA1LCAxMzEsIDEzMSwgCisgICAgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIAorICAgIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAKKyAgICAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMTMxLCAxMzEsIDEzMSwgMCwgMTMxLCAwLCAwLCAwLCAwLCAwLCAxMzEsIDAsIDAsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1LCA5NiwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgMCwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDI1LCAyNSwgMjUsIDUsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDEzMiwgMTMzLCAxMzQsIDEzNSwgMTM2LCAxMzcsIDEzOCwgMTM5LCAxNDAsIDI3LCAKKyAgICAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDUsIDUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMiwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1LCA1LCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1LCA1LCA1LCAxNDEsIDE0MSwgMTQxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDI1LCAyNSwgMjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAKKyAgICAyNSwgMjUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCAKKyAgICA1NSwgNTUsIDAsIDI1LCAyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAyNSwgMTgsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDI1LCAxOCwgMTgsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgNSwgNSwgNSwgOTYsIDUsIDUsIDUsIDUsIDU1LCAyNSwgMCwgMCwgNywgCisgICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDAsIDAsIDAsIDAsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgCisgICAgMjcsIDI3LCAyNywgMjcsIDI3LCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICAyNSwgMjUsIDI1LCAyLCAwLCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA5NiwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjUsIDU1LCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAyNSwgMjUsIDI1LCAKKyAgICAxOCwgMTgsIDE4LCAxOCwgMjUsIDI1LCAxOCwgMTgsIDE4LCAwLCAwLCAwLCAwLCAxOCwgMTgsIDI1LCAxOCwgMTgsIDE4LCAKKyAgICAxOCwgMTgsIDE4LCAyNSwgMjUsIDI1LCAwLCAwLCAwLCAwLCA1LCAwLCAwLCAwLCA1LCA1LCA3LCA4LCA5LCAxMCwgMTEsIAorICAgIDEyLCAxMywgMTQsIDE1LCAxNiwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIAorICAgIDE4LCAxOCwgMTgsIDE4LCAxOCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDE4LCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDEzMiwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgMjUsIDE4LCAxOCwgMTgsIDAsIDAsIDUsIDUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMTgsIDI1LCAxOCwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDAsIDI1LCAxOCwgMjUsIDE4LCAxOCwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMCwgMCwgMjUsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAwLCAwLCAwLCAwLCAwLCAwLCA3LCA4LCA5LCAKKyAgICAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgOTYsIDUsIAorICAgIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI1LCAyNSwgMjUsIDI1LCAxOCwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgMTgsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMTgsIDI1LCAKKyAgICAxOCwgMTgsIDE4LCAxOCwgMTgsIDI1LCAxOCwgMTgsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAKKyAgICA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgMCwgMCwgMCwgMjUsIDI1LCAxOCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgMTgsIDI1LCAyNSwgMjUsIDI1LCAxOCwgMTgsIDI1LCAyNSwgMTgsIDI1LCAxOCwgMTgsIDU1LCA1NSwgNywgOCwgOSwgCisgICAgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjUsIDE4LCAyNSwgCisgICAgMjUsIDE4LCAxOCwgMTgsIDI1LCAxOCwgMjUsIDI1LCAyNSwgMTgsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCAKKyAgICA1LCA1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMTgsIAorICAgIDE4LCAyNSwgMjUsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAKKyAgICAwLCAwLCAwLCA1NSwgNTUsIDU1LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgOTYsIDk2LCA5NiwgOTYsIDk2LCA5NiwgNSwgNSwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcsIDE3LCAxNywgMTcsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCAxNywgMTcsIDUwLCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1MCwgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNywgMTcsIDUsIDUsIDYsIAotICAgIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMTcsIDE3LCAxNywgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICAwLCAwLCA1MCwgNTAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIAotICAgIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAxNywgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAwLCAwLCAKLSAgICAxNywgMTcsIDAsIDAsIDE3LCAxNywgMTcsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNywgMCwgMCwgMCwgMCwgNTAsIAotICAgIDUwLCAwLCA1MCwgNTAsIDUwLCAxNywgMTcsIDAsIDAsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDUwLCAKLSAgICA1MCwgNSwgNSwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMTcsIDE3LCAxNywgMCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCA1MCwgMCwgNTAsIDUwLCAwLCA1MCwgNTAsIDAsIDAsIDE3LCAwLCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDAsIDAsIDAsIDAsIDE3LCAxNywgMCwgMCwgMTcsIDE3LCAxNywgMCwgMCwgMCwgMTcsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNiwgNywgOCwgOSwgMTAsIAotICAgIDExLCAxMiwgMTMsIDE0LCAxNSwgMTcsIDE3LCA1MCwgNTAsIDUwLCAxNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMTcsIDE3LCAxNywgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgMCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgMCwgMCwgMTcsIDUwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDAsIDE3LCAxNywgMTcsIDAsIAotICAgIDE3LCAxNywgMTcsIDAsIDAsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgCi0gICAgNTAsIDE3LCAxNywgMCwgMCwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMCwgNSwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcsIDE3LCAxNywgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgMCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDE3LCA1MCwgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDAsIDAsIDE3LCAxNywgMCwgMCwgMTcsIDE3LCAxNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcsIDE3LCAKLSAgICAwLCAwLCAwLCAwLCA1MCwgNTAsIDAsIDUwLCA1MCwgNTAsIDE3LCAxNywgMCwgMCwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgCi0gICAgMTMsIDE0LCAxNSwgNSwgNTAsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDE3LCA1MCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDAsIDAsIDAsIDUwLCA1MCwgMCwgNTAsIDAsIDUwLCA1MCwgMCwgMCwgMCwgNTAsIDUwLCAwLCAwLCAwLCA1MCwgNTAsIAotICAgIDUwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCAwLCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDAsIDAsIDAsIDE3LCAxNywgMTcsIDAsIDE3LCAxNywgMTcsIDE3LCAwLCAwLCA1MCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDYsIDcsIDgsIDksIAotICAgIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDI0LCAyNCwgMjQsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDE3LCAxNywgMTcsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgMCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCAwLCAwLCAwLCA1MCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDAsIDE3LCAxNywgMTcsIDAsIAotICAgIDE3LCAxNywgMTcsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNywgMTcsIDAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgNTAsIDUwLCAxNywgMTcsIDAsIDAsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCA1LCAwLCAwLCAxNywgMTcsIDAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAxNywgNTAsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAwLCAxNywgMTcsIDE3LCAwLCAxNywgMTcsIDE3LCAxNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMTcsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgMCwgNTAsIDUwLCAxNywgMTcsIDAsIDAsIDYsIDcsIDgsIDksIDEwLCAKLSAgICAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMTcsIDE3LCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCA1MCwgNTAsIDAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgMCwgMCwgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAwLCAxNywgMTcsIDE3LCAwLCAxNywgCi0gICAgMTcsIDE3LCAxNywgNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgCi0gICAgNTAsIDE3LCAxNywgMCwgMCwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMjQsIDI0LCAyNCwgMjQsIDI0LCAKLSAgICAyNCwgMCwgMCwgMCwgNSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMTcsIDE3LCAwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgMCwgMCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIDE3LCAwLCAwLCAwLCAwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAwLCAxNywgMCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxNywgMTcsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCA1MCwgMTE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMCwgMCwgMCwgMCwgNSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgNSwgNSwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTAsIDUwLCAwLCA1MCwgMCwgMCwgNTAsIDUwLCAwLCA1MCwgMCwgMCwgCi0gICAgNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgCi0gICAgNTAsIDUwLCA1MCwgMCwgNTAsIDAsIDUwLCAwLCAwLCA1MCwgNTAsIDAsIDUwLCA1MCwgNTAsIDUwLCAxNywgNTAsIDExNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMCwgMTcsIDE3LCA1MCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgCi0gICAgMCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMCwgMCwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMCwgCi0gICAgMCwgNTAsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMTcsIDE3LCA1LCA1LCA1LCA1LCA1LCA1LCA2LCA3LCA4LCAKLSAgICA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgNSwgMTcsIAotICAgIDUsIDE3LCA1LCAxNywgNSwgNSwgNSwgNSwgMTcsIDE3LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIAotICAgIDAsIDAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgNSwgMTcsIDE3LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMTcsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDI1LCAyNSwgMjUsIDUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAxOCwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDE4LCAxOCwgMjUsIDU1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCAKKyAgICA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCAKKyAgICA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCAKKyAgICA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgOTUsIDE0MiwgMjAsIDIwLCAyMCwgMTQzLCAyMCwgMjAsIDIwLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIAorICAgIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIAorICAgIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDk1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNSwgMjUsIDI1LCAyNSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIAorICAgIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMTQ0LCAKKyAgICAxNDUsIDE0NiwgMTQ3LCAxNDgsIDE0OSwgMjAsIDIwLCAxNTAsIDIwLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAxNTEsIDE1MSwgCisgICAgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUyLCAxNTIsIDE1MiwgMTUyLCAxNTIsIDE1MiwgMTUyLCAxNTIsIAorICAgIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDAsIDAsIDE1MiwgMTUyLCAxNTIsIDE1MiwgMTUyLCAxNTIsIDAsIDAsIAorICAgIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTIsIDE1MiwgMTUyLCAxNTIsIDE1MiwgMTUyLCAKKyAgICAxNTIsIDE1MiwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MiwgMTUyLCAxNTIsIDE1MiwgCisgICAgMTUyLCAxNTIsIDE1MiwgMTUyLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAwLCAwLCAxNTIsIDE1MiwgMTUyLCAKKyAgICAxNTIsIDE1MiwgMTUyLCAwLCAwLCAxNTMsIDE1MSwgMTU0LCAxNTEsIDE1NSwgMTUxLCAxNTYsIDE1MSwgMCwgMTUyLCAwLCAKKyAgICAxNTIsIDAsIDE1MiwgMCwgMTUyLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUxLCAxNTEsIDE1MSwgMTUyLCAxNTIsIAorICAgIDE1MiwgMTUyLCAxNTIsIDE1MiwgMTUyLCAxNTIsIDE1NywgMTU3LCAxNTgsIDE1OCwgMTU4LCAxNTgsIDE1OSwgMTU5LCAKKyAgICAxNjAsIDE2MCwgMTYxLCAxNjEsIDE2MiwgMTYyLCAwLCAwLCAxNjMsIDE2NCwgMTY1LCAxNjYsIDE2NywgMTY4LCAxNjksIAorICAgIDE3MCwgMTcxLCAxNzIsIDE3MywgMTc0LCAxNzUsIDE3NiwgMTc3LCAxNzgsIDE3OSwgMTgwLCAxODEsIDE4MiwgMTgzLCAKKyAgICAxODQsIDE4NSwgMTg2LCAxODcsIDE4OCwgMTg5LCAxOTAsIDE5MSwgMTkyLCAxOTMsIDE5NCwgMTk1LCAxOTYsIDE5NywgCisgICAgMTk4LCAxOTksIDIwMCwgMjAxLCAyMDIsIDIwMywgMjA0LCAyMDUsIDIwNiwgMjA3LCAyMDgsIDIwOSwgMjEwLCAxNTEsIAorICAgIDE1MSwgMjExLCAyMTIsIDIxMywgMCwgMjE0LCAyMTUsIDE1MiwgMTUyLCAyMTYsIDIxNiwgMjE3LCA2LCAyMTgsIDYsIDYsIAorICAgIDYsIDIxOSwgMjIwLCAyMjEsIDAsIDIyMiwgMjIzLCAyMjQsIDIyNCwgMjI0LCAyMjQsIDIyNSwgNiwgNiwgNiwgMTUxLCAKKyAgICAxNTEsIDIyNiwgMjI3LCAwLCAwLCAyMjgsIDIyOSwgMTUyLCAxNTIsIDIzMCwgMjMwLCAwLCA2LCA2LCA2LCAxNTEsIDE1MSwgCisgICAgMjMxLCAyMzIsIDIzMywgMTE5LCAyMzQsIDIzNSwgMTUyLCAxNTIsIDIzNiwgMjM2LCAxMjIsIDYsIDYsIDYsIDAsIDAsIAorICAgIDIzNywgMjM4LCAyMzksIDAsIDI0MCwgMjQxLCAyNDIsIDI0MiwgMjQzLCAyNDMsIDI0NCwgNiwgNiwgMCwgMiwgMiwgMiwgMiwgCisgICAgMiwgMiwgMiwgMiwgMiwgMiwgMiwgMjEsIDIxLCAyMSwgMjEsIDIxLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA2LCA2LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA2LCA1LCA1LCA2LCAzLCAzLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIsIDUsIDUsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDE4LCAxOCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMTgsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDIsIDIxLCAKKyAgICAyMSwgMjEsIDIxLCAyMSwgMCwgMCwgMCwgMCwgMCwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjQ1LCA5NSwgMCwgMCwgCisgICAgMjQ2LCAyNDcsIDI0OCwgMjQ5LCAyNTAsIDI1MSwgNSwgNSwgNSwgNSwgNSwgOTUsIDI0NSwgMjYsIDIyLCAyMywgMjQ2LCAKKyAgICAyNDcsIDI0OCwgMjQ5LCAyNTAsIDI1MSwgNSwgNSwgNSwgNSwgNSwgMCwgOTUsIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIAorICAgIDk1LCA5NSwgOTUsIDk1LCA5NSwgOTUsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAogICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDUwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgCi0gICAgMTQsIDE1LCA1LCA1LCA1LCA1LCA1LCA1LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNywgMTcsIDE3LCAxNywgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDE3LCAxNywgMTcsIDUwLCAxNywgMTcsIDE3LCA1MCwgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICA1MCwgNTAsIDUwLCAxNywgMTcsIDE3LCAxNywgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDUwLCAxNywgNiwgNywgOCwgCi0gICAgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTcsIDE3LCAxNywgMTcsIDUsIDUsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAKLSAgICAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgCi0gICAgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAxMTgsIAotICAgIDExOCwgMTE4LCAxMTgsIDExOCwgMTE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNSwgNTAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCAKLSAgICAwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAxNywgMTcsIDE3LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCAxMTksIDEyMCwgMTIxLCAxMjIsIDEyMywgMTI0LCAxMjUsIDEyNiwgMTI3LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAKLSAgICAyNCwgMjQsIDI0LCAyNCwgMjQsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1LCA1LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDIsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNSwgNSwgMCwgMCwgMCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNSwgNSwgNSwgMTI4LCAxMjgsIDEyOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCAxNywgMTcsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNywgMTcsIDE3LCA1LCA1LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNywgMTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCAwLCAxNywgMTcsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxLCAxLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCA1LCA1LCA1LCA1MCwgNSwgNSwgNSwgNSwgNTAsIDE3LCAwLCAwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAKLSAgICAxMywgMTQsIDE1LCAwLCAwLCAwLCAwLCAwLCAwLCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMTcsIDE3LCAxNywgMiwgMCwgNiwgNywgCi0gICAgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMCwgMCwgMCwgMCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgMTcsIDUwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAwLCAwLCAwLCAwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAwLCAwLCAwLCAwLCA1LCAwLCAwLCAwLCA1LCA1LCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAKLSAgICAxMywgMTQsIDE1LCAxMTksIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAwLCAwLCA1LCA1LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAwLCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDAsIDAsIDE3LCA2LCA3LCA4LCA5LCAxMCwgMTEsIAotICAgIDEyLCAxMywgMTQsIDE1LCAwLCAwLCAwLCAwLCAwLCAwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1MCwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMTcsIDE3LCAxNywgMTcsIDE3LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIDAsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAKLSAgICAxNCwgMTUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDE3LCAxNywgMTcsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAwLCAwLCAwLCA1MCwgNTAsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIAotICAgIDUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDYsIDcsIDgsIDksIAotICAgIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE3LCAxNywgMTcsIDUsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDUwLCA1MCwgNTAsIDUwLCAxNywgNTAsIDUwLCA1MCwgNTAsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCA1MCwgMTI5LCAKLSAgICAxOSwgMTksIDE5LCAxMzAsIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCi0gICAgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAxOSwgMTksIDE5LCAxOSwgMTksIDEzMSwgMTksIDE5LCAxMzIsIAotICAgIDE5LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIAotICAgIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIAotICAgIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIAotICAgIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIAotICAgIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIAotICAgIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAxMzMsIDEzMywgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIDEzMywgMTM0LCAKLSAgICAxMzQsIDEzNCwgMTM0LCAxMzQsIDEzNCwgMTM0LCAxMzQsIDEzMywgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIDAsIDAsIAotICAgIDEzNCwgMTM0LCAxMzQsIDEzNCwgMTM0LCAxMzQsIDAsIDAsIDEzMywgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIDEzMywgCi0gICAgMTMzLCAxMzQsIDEzNCwgMTM0LCAxMzQsIDEzNCwgMTM0LCAxMzQsIDEzNCwgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIAotICAgIDEzMywgMTMzLCAxMzMsIDEzNCwgMTM0LCAxMzQsIDEzNCwgMTM0LCAxMzQsIDEzNCwgMTM0LCAxMzMsIDEzMywgMTMzLCAKLSAgICAxMzMsIDEzMywgMTMzLCAwLCAwLCAxMzQsIDEzNCwgMTM0LCAxMzQsIDEzNCwgMTM0LCAwLCAwLCAxOSwgMTMzLCAxOSwgCi0gICAgMTMzLCAxOSwgMTMzLCAxOSwgMTMzLCAwLCAxMzQsIDAsIDEzNCwgMCwgMTM0LCAwLCAxMzQsIDEzMywgMTMzLCAxMzMsIAotICAgIDEzMywgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzQsIDEzNCwgMTM0LCAxMzQsIDEzNCwgMTM0LCAxMzQsIDEzNCwgMTM1LCAKLSAgICAxMzUsIDEzNiwgMTM2LCAxMzYsIDEzNiwgMTM3LCAxMzcsIDEzOCwgMTM4LCAxMzksIDEzOSwgMTQwLCAxNDAsIDAsIDAsIAotICAgIDEzMywgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIDEzMywgMTMzLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKLSAgICAxNDEsIDE0MSwgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCi0gICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxMzMsIDEzMywgMTMzLCAxMzMsIDEzMywgMTMzLCAxMzMsIDEzMywgMTQxLCAxNDEsIAotICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDEzMywgMTMzLCAxOSwgMTQyLCAxOSwgMCwgMTksIDE5LCAxMzQsIDEzNCwgCi0gICAgMTQzLCAxNDMsIDE0NCwgNSwgMTQ1LCA1LCA1LCA1LCAxOSwgMTQyLCAxOSwgMCwgMTksIDE5LCAxNDYsIDE0NiwgMTQ2LCAKLSAgICAxNDYsIDE0NCwgNSwgNSwgNSwgMTMzLCAxMzMsIDE5LCAxOSwgMCwgMCwgMTksIDE5LCAxMzQsIDEzNCwgMTQ3LCAxNDcsIDAsIAotICAgIDUsIDUsIDUsIDEzMywgMTMzLCAxOSwgMTksIDE5LCAxMDgsIDE5LCAxOSwgMTM0LCAxMzQsIDE0OCwgMTQ4LCAxMTEsIDUsIAotICAgIDUsIDUsIDAsIDAsIDE5LCAxNDIsIDE5LCAwLCAxOSwgMTksIDE0OSwgMTQ5LCAxNTAsIDE1MCwgMTQ0LCA1LCA1LCAwLCAyLCAKLSAgICAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAyLCAxLCAxLCAxLCAxLCAxLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAzLCAzLCAxLCAxLCAxLCAxLCAxLCAyLCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAxNywgMTcsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDE3LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyLCAxLCAKLSAgICAxLCAxLCAxLCAxLCAwLCAwLCAwLCAwLCAwLCAxLCAxLCAxLCAxLCAxLCAxLCAxNTEsIDUwLCAwLCAwLCAxNTIsIDE1MywgCi0gICAgMTU0LCAxNTUsIDE1NiwgMTU3LCA1LCA1LCA1LCA1LCA1LCA1MCwgMTUxLCAyMywgMjAsIDIxLCAxNTIsIDE1MywgMTU0LCAKLSAgICAxNTUsIDE1NiwgMTU3LCA1LCA1LCA1LCA1LCA1LCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDUsIDUsIDUsIDUsIDE3LCA1LCA1LCA1LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCAxMDIsIDUsIDUsIDUsIDUsIDEwMiwgCi0gICAgNSwgNSwgMTksIDEwMiwgMTAyLCAxMDIsIDE5LCAxOSwgMTAyLCAxMDIsIDEwMiwgMTksIDUsIDEwMiwgNSwgNSwgMTU4LCAKLSAgICAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgNSwgNSwgNSwgNSwgNSwgNSwgMTAyLCA1LCAxNTksIDUsIDEwMiwgNSwgMTYwLCAKLSAgICAxNjEsIDEwMiwgMTAyLCAxNTgsIDE5LCAxMDIsIDEwMiwgMTYyLCAxMDIsIDE5LCA1MCwgNTAsIDUwLCA1MCwgMTksIDUsIDUsIAotICAgIDE5LCAxOSwgMTAyLCAxMDIsIDUsIDUsIDUsIDUsIDUsIDEwMiwgMTksIDE5LCAxOSwgMTksIDUsIDUsIDUsIDUsIDE2MywgNSwgCi0gICAgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDE2NCwgMTY0LCAKLSAgICAxNjQsIDE2NCwgMTY0LCAxNjQsIDE2NCwgMTY0LCAxNjQsIDE2NCwgMTY0LCAxNjQsIDE2NCwgMTY0LCAxNjQsIDE2NCwgCi0gICAgMTY1LCAxNjUsIDE2NSwgMTY1LCAxNjUsIDE2NSwgMTY1LCAxNjUsIDE2NSwgMTY1LCAxNjUsIDE2NSwgMTY1LCAxNjUsIAotICAgIDE2NSwgMTY1LCAxMjgsIDEyOCwgMTI4LCAyNiwgMjcsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMjQsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCA2LCA2LCA2LCA2LCAyNSwgNiwgNiwgNiwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgMTEzLCA1LCA1LCAKKyAgICA1LCA1LCAxMTMsIDUsIDUsIDIwLCAxMTMsIDExMywgMTEzLCAyMCwgMjAsIDExMywgMTEzLCAxMTMsIDIwLCA1LCAxMTMsIDUsIAorICAgIDUsIDI1MiwgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDUsIDUsIDUsIDUsIDUsIDUsIDExMywgNSwgMjUzLCA1LCAxMTMsIAorICAgIDUsIDI1NCwgMjU1LCAxMTMsIDExMywgMjUyLCAyMCwgMTEzLCAxMTMsIDI1NiwgMTEzLCAyMCwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDIwLCA1LCA1LCAyMCwgMjAsIDExMywgMTEzLCA1LCA1LCA1LCA1LCA1LCAxMTMsIDIwLCAyMCwgMjAsIDIwLCA1LCA1LCA1LCAKKyAgICA1LCAyNTcsIDUsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIAorICAgIDI3LCAyNTgsIDI1OCwgMjU4LCAyNTgsIDI1OCwgMjU4LCAyNTgsIDI1OCwgMjU4LCAyNTgsIDI1OCwgMjU4LCAyNTgsIDI1OCwgCisgICAgMjU4LCAyNTgsIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIDI1OSwgMjU5LCAyNTksIAorICAgIDI1OSwgMjU5LCAyNTksIDI1OSwgMTQxLCAxNDEsIDE0MSwgMzAsIDMxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDI3LCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKQEAgLTExMzUsNjMyICsxOTQ1LDY4NCBAQAogICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAogICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAogICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAogICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDIzLCAyMCwgMjEsIDE1MiwgMTUzLCAxNTQsIDE1NSwgMTU2LCAxNTcsIDI0LCAKLSAgICAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjMsIDIwLCAyMSwgMTUyLCAxNTMsIDE1NCwgMTU1LCAKLSAgICAxNTYsIDE1NywgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyMywgMjAsIDIxLCAxNTIsIAotICAgIDE1MywgMTU0LCAxNTUsIDE1NiwgMTU3LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDUsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAogICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDE2NiwgMTY2LCAxNjYsIDE2NiwgMTY2LCAxNjYsIDE2NiwgMTY2LCAxNjYsIDE2NiwgMTY2LCAxNjYsIDE2NiwgMTY2LCAKLSAgICAxNjYsIDE2NiwgMTY2LCAxNjYsIDE2NiwgMTY2LCAxNjYsIDE2NiwgMTY2LCAxNjYsIDE2NiwgMTY2LCAxNjcsIDE2NywgCi0gICAgMTY3LCAxNjcsIDE2NywgMTY3LCAxNjcsIDE2NywgMTY3LCAxNjcsIDE2NywgMTY3LCAxNjcsIDE2NywgMTY3LCAxNjcsIAotICAgIDE2NywgMTY3LCAxNjcsIDE2NywgMTY3LCAxNjcsIDE2NywgMTY3LCAxNjcsIDE2NywgMTUxLCAyNCwgMjQsIDI0LCAyNCwgCi0gICAgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjMsIDIwLCAyMSwgMTUyLCAxNTMsIDE1NCwgMTU1LCAxNTYsIDE1NywgMjQsIAotICAgIDE1MSwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDIyLCAyMywgMjQ2LCAyNDcsIDI0OCwgMjQ5LCAyNTAsIAorICAgIDI1MSwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNiwgMjIsIDIzLCAyNDYsIDI0NywgCisgICAgMjQ4LCAyNDksIDI1MCwgMjUxLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI2LCAyMiwgCisgICAgMjMsIDI0NiwgMjQ3LCAyNDgsIDI0OSwgMjUwLCAyNTEsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKKyAgICAyNywgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgMjYwLCAyNjAsIDI2MCwgMjYwLCAyNjAsIDI2MCwgMjYwLCAyNjAsIDI2MCwgMjYwLCAyNjAsIDI2MCwgMjYwLCAKKyAgICAyNjAsIDI2MCwgMjYwLCAyNjAsIDI2MCwgMjYwLCAyNjAsIDI2MCwgMjYwLCAyNjAsIDI2MCwgMjYwLCAyNjAsIDI2MSwgCisgICAgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIAorICAgIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNjEsIDI2MSwgMjYxLCAyNDUsIDI3LCAyNywgMjcsIAorICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNiwgMjIsIDIzLCAyNDYsIDI0NywgMjQ4LCAyNDksIDI1MCwgMjUxLCAyNywgCisgICAgMjQ1LCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyMywgCi0gICAgMjAsIDIxLCAxNTIsIDE1MywgMTU0LCAxNTUsIDE1NiwgMTU3LCAyNCwgMjMsIDIwLCAyMSwgMTUyLCAxNTMsIDE1NCwgMTU1LCAKLSAgICAxNTYsIDE1NywgMjQsIDIzLCAyMCwgMjEsIDE1MiwgMTUzLCAxNTQsIDE1NSwgMTU2LCAxNTcsIDI0LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyNiwgCisgICAgMjIsIDIzLCAyNDYsIDI0NywgMjQ4LCAyNDksIDI1MCwgMjUxLCAyNywgMjYsIDIyLCAyMywgMjQ2LCAyNDcsIDI0OCwgMjQ5LCAKKyAgICAyNTAsIDI1MSwgMjcsIDI2LCAyMiwgMjMsIDI0NiwgMjQ3LCAyNDgsIDI0OSwgMjUwLCAyNTEsIDI3LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCAwLCA1LCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgCi0gICAgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIAotICAgIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAKLSAgICAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMTE1LCAxMTUsIDExNSwgMCwgCi0gICAgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIAotICAgIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAKLSAgICAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDExNiwgCi0gICAgMTE2LCAxMTYsIDExNiwgMTE2LCAxMTYsIDAsIDI2LCAyNywgMTY4LCAxNjksIDE3MCwgMTcxLCAxNzIsIDI2LCAyNywgMjYsIAotICAgIDI3LCAyNiwgMjcsIDE3MywgMTc0LCAxNzUsIDE3NiwgMTksIDI2LCAyNywgMTksIDI2LCAyNywgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgNTAsIDE3NywgMTc3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgCi0gICAgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgCi0gICAgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgCi0gICAgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgCi0gICAgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgCi0gICAgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMTksIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDI2LCAyNywgMjYsIDI3LCAxNywgMTcsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCAyNCwgCi0gICAgNSwgNSwgMTc4LCAxNzgsIDE3OCwgMTc4LCAxNzgsIDE3OCwgMTc4LCAxNzgsIDE3OCwgMTc4LCAxNzgsIDE3OCwgMTc4LCAKLSAgICAxNzgsIDE3OCwgMTc4LCAxNzgsIDE3OCwgMTc4LCAxNzgsIDE3OCwgMTc4LCAxNzgsIDE3OCwgMTc4LCAxNzgsIDE3OCwgCi0gICAgMTc4LCAxNzgsIDE3OCwgMTc4LCAxNzgsIDE3OCwgMTc4LCAxNzgsIDE3OCwgMTc4LCAxNzgsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAxNywgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgODksIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIAotICAgIDAsIDAsIDIsIDUsIDUsIDUsIDUsIDUwLCA1MCwgMTI4LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUsIDUsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDUwLCA1MCwgNSwgNSwgNSwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCAwLCAwLCAxNywgMTcsIDUsIDUsIDUwLCA1MCwgNTAsIDUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1LCA1LCAyNCwgMjQsIDI0LCAyNCwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgCi0gICAgMjQsIDI0LCAyNCwgMjQsIDI0LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIAotICAgIDI0LCAyNCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMjQsIDI0LCAyNCwgMjQsIDI0LCAKLSAgICAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMTc5LCA1MCwgNTAsIDE3OSwgCi0gICAgNTAsIDUwLCA1MCwgMTc5LCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDE3OSwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgCi0gICAgNTAsIDE3OSwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCAxNzksIAotICAgIDE3OSwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgMTc5LCAxNzksIDE3OSwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDE3OSwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCAxNzksIDE3OSwgNTAsIDE3OSwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIAorICAgIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAKKyAgICAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDEyNywgCisgICAgMTI3LCAxMjcsIDEyNywgMTI3LCAxMjcsIDAsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAorICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKKyAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCisgICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAwLCAzMCwgMzEsIDI2MiwgMjYzLCAKKyAgICAyNjQsIDI2NSwgMjY2LCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAyNjcsIDI2OCwgMjY5LCAyNzAsIDIwLCAzMCwgMzEsIAorICAgIDIwLCAzMCwgMzEsIDIwLCAyMCwgMjAsIDIwLCAyMCwgOTUsIDk1LCAyNzEsIDI3MSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDIwLCA1LCA1LCA1LCA1LCA1LCA1LCAzMCwgMzEsIDMwLCAzMSwgMjUsIDI1LCAyNSwgMzAsIDMxLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCAyNywgNSwgNSwgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAKKyAgICAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgCisgICAgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIDI3MiwgMjcyLCAyNzIsIAorICAgIDI3MiwgMjcyLCAyNzIsIDAsIDI3MiwgMCwgMCwgMCwgMCwgMCwgMjcyLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDk2LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMjczLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNSwgNSwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUsIDUsIDUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAKLSAgICA1MCwgNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCA1MCwgMTcsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDE3LCAxNywgNSwgNTAsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAKLSAgICAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDE3LCAxNywgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNSwgNSwgMjYsIDI3LCAyNiwgMjcsIAotICAgIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAxOSwgMTksIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIAotICAgIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIAotICAgIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIAotICAgIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIAotICAgIDI2LCAyNywgNTAsIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMjYsIDI3LCAyNiwgMjcsIDE4MCwgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAyNiwgMjcsIDUwLCA1LCA1LCAyNiwgMjcsIDE4MSwgMTksIDAsIDI2LCAyNywgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjYsIDI3LCAyNiwgMjcsIDI2LCAyNywgMjYsIDI3LCAKLSAgICAyNiwgMjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDUwLCA1MCwgCi0gICAgNTAsIDE3LCA1MCwgNTAsIDUwLCA1MCwgMTcsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDE3LCAxNywgMTcsIDE3LCA1LCA1LCAKLSAgICA1LCA1LCAwLCAwLCAwLCAwLCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNSwgNSwgNSwgCi0gICAgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTcsIDE3LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgCi0gICAgMTMsIDE0LCAxNSwgMCwgMCwgMCwgMCwgMCwgMCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNSwgNSwgNSwgNTAsIDAsIDAsIDAsIAotICAgIDAsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDUsIDUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDE3LCAKLSAgICAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMTcsIDE3LCAxNywgMTcsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCA1MCwgCi0gICAgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMCwgMCwgMCwgMCwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICAxNywgMTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDE3LCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDE3LCAxNywgMCwgMCwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMCwgMCwgNSwgNSwgCi0gICAgNSwgNSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1LCA1LCA1LCA1MCwgMTcsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3LCA1MCwgMTcsIDE3LCAxNywgNTAsIDUwLCAxNywgMTcsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgMTcsIDE3LCA1MCwgMTcsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1LCAxNywgMTcsIDAsIDAsIAotICAgIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIDAsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIAotICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIAotICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIAotICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIAotICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIAotICAgIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDEsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOSwgMTksIDE5LCAxOSwgMTksIDAsIDAsIDAsIDAsIAotICAgIDAsIDUwLCAxNywgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCAwLCA1MCwgNTAsIAotICAgIDAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDg5LCA4OSwgODksIDg5LCA4OSwgODksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgODksIDg5LCA1LCA1LCAwLCAwLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDE3LCAxNywgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMTcsIDE3LCAKLSAgICAxNywgNSwgNSwgNSwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgMCwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgODksIDUwLCA4OSwgNTAsIDg5LCAwLCA4OSwgNTAsIDg5LCA1MCwgODksIDUwLCAKLSAgICA4OSwgNTAsIDg5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCAwLCAwLCAxLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA2LCAKLSAgICA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAxNiwgMTYsIDE2LCAxNiwgMTYsIAotICAgIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIDE2LCAxNiwgMTYsIAotICAgIDE2LCAxNiwgMTYsIDUsIDUsIDUsIDUsIDE3LCA1LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgCi0gICAgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTE3LCAxMTcsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAxLCAxLCAxLCA1LCA1LCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1MCwgNTAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgMCwgMCwgCi0gICAgMCwgMCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAKLSAgICAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAKLSAgICAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDI0LCAyNCwgMjQsIDI0LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyNCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMiwgNSwgNSwgNSwgNSwgOTYsIDU1LCAxNDEsIDUsIDUsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDE0MSwgCisgICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDI1LCAyNSwgMjUsIDI1LCAxOCwgMTgsIDUsIDk2LCAKKyAgICA5NiwgOTYsIDk2LCA5NiwgNSwgNSwgMTQxLCAxNDEsIDE0MSwgOTYsIDU1LCA1LCA1LCA1LCAwLCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDI1LCAyNSwgNiwgNiwgOTYsIDk2LCA1NSwgCisgICAgNSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNSwgOTYsIDk2LCA5NiwgNTUsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDAsIDUsIDUsIDI3LCAyNywgMjcsIDI3LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAxNywgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgCisgICAgMjcsIDI3LCAyNywgMjcsIDI3LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDUsIAorICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDUsIDUsIDUsIDUsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAorICAgIDUsIDUsIDUsIDUsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKKyAgICAyNywgMjcsIDI3LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAyNzQsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCAyNzQsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgMjc0LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgMjc0LCA1NSwgMjc0LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDI3NCwgMjc0LCAyNzQsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDI3NCwgMjc0LCAyNzQsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDI3NCwgMjc0LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMjQsIDI0LCAyNCwgMjQsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTI4LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDEyOCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgOTYsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDk2LCA5NiwgOTYsIDk2LCA5NiwgOTYsIDUsIDUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDk2LCA1LCA1LCA1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDU1LCA1NSwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDU1LCAyNSwgNiwgNiwgNiwgNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDUsIDk2LCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgCisgICAgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDE0MSwgMTQxLCAKKyAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMjUsIDI1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCAKKyAgICA2LCA2LCA2LCA2LCA2LCA5NiwgOTYsIDk2LCA5NiwgOTYsIDk2LCA5NiwgOTYsIDk2LCA2LCA2LCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDIwLCAyMCwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCA5NSwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAzMCwgMzEsIDMwLCAzMSwgMjc1LCAzMCwgMzEsIAorICAgIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgOTYsIDYsIDYsIDMwLCAzMSwgMjc2LCAyMCwgMCwgMzAsIDMxLCAzMCwgCisgICAgMzEsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDMwLCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMwLCAzMSwgCisgICAgMzAsIDMxLCAyNzcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDUsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIAotICAgIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNSwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDk1LCA5NSwgMjAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgCisgICAgNTUsIDU1LCA1NSwgMjUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAxOCwgMTgsIDI1LCAyNSwgCisgICAgMTgsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxOCwgMTgsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAKKyAgICAxOCwgMTgsIDE4LCAxOCwgMTgsIDI1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA3LCA4LCA5LCAxMCwgMTEsIAorICAgIDEyLCAxMywgMTQsIDE1LCAxNiwgMCwgMCwgMCwgMCwgMCwgMCwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNSwgNSwgNSwgNTUsIAorICAgIDAsIDAsIDAsIDAsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCA1LCA1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMTgsIDE4LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDI1LCAKKyAgICAyNSwgMjUsIDE4LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAxOCwgMTgsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCAxOCwgMTgsIDI1LCAxOCwgMTgsIDE4LCAxOCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgMCwgOTYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAwLCAwLCAwLCAwLCA1LCA1LCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxODIsIDE4MiwgMTgyLCAxODIsIDE4MiwgCi0gICAgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIAotICAgIDE4MiwgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDE4MiwgMTgyLCAKLSAgICAxODIsIDE4MiwgMTgyLCAxODIsIDE4MiwgMTgyLCAxODIsIDE4MywgMTgzLCAxODMsIDE4MywgMTgzLCAxODMsIDE4MywgCi0gICAgMTgzLCAxODMsIDE4MywgMTgzLCAxODMsIDE4MywgMTgzLCAxODMsIDE4MywgMTgzLCAxODMsIDE4MywgMTgzLCAxODMsIAotICAgIDE4MywgMTgzLCAxODMsIDE4MywgMTgzLCAxODMsIDE4MywgMTgzLCAxODMsIDE4MywgMTgzLCAxODMsIDE4MywgMTgzLCAKLSAgICAxODMsIDE4MywgMTgzLCAxODMsIDE4MywgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgNiwgNywgOCwgOSwgMTAsIDExLCAKLSAgICAxMiwgMTMsIDE0LCAxNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgMCwgMCwgNTAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCAwLCAwLCAwLCAKLSAgICA1MCwgMCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCA1LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAwLCAwLCAwLCA1LCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIDAsIDAsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCAxNywgMTcsIDE3LCAwLCAxNywgMTcsIDAsIDAsIDAsIDAsIDAsIDE3LCAxNywgCi0gICAgMTcsIDE3LCA1MCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgMCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgMCwgMCwgMCwgMCwgMTcsIDE3LCAxNywgMCwgMCwgMCwgMCwgMTcsIDIzLCAyMCwgMjEsIDE1MiwgMjQsIDI0LCAyNCwgCi0gICAgMjQsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMjQsIDI0LCA1LCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAxOCwgMTgsIDI1LCAKKyAgICAyNSwgMTgsIDE4LCAyNSwgMjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDI1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAxOCwgMCwgMCwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgCisgICAgMTYsIDAsIDAsIDUsIDUsIDUsIDUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA5NiwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNSwgNSwgNSwgNTUsIDE4LCAwLCAwLCAwLCAwLCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgNTUsIDI1LCAyNSwgMjUsIDU1LCA1NSwgCisgICAgMjUsIDI1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAyNSwgNTUsIDI1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA5NiwgNSwgNSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAxOCwgMjUsIDI1LCAxOCwgMTgsIDUsIDUsIDU1LCA5NiwgOTYsIAorICAgIDE4LCAyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDE4LCAxOCwgMjUsIAorICAgIDE4LCAxOCwgMjUsIDE4LCAxOCwgNSwgMTgsIDI1LCAwLCAwLCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgCisgICAgMCwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIAorICAgIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgMjc0LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAyMywgMjAsIDIxLCAxNTIsIDE1MywgMTU0LCAxNTUsIDE1NiwgMTU3LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIAotICAgIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMCwgMTcsIDE3LCAxNywgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCAwLCAwLCAwLCAwLCAyMywgMjAsIDIxLCAxNTIsIDE1MywgMTU0LCAxNTUsIDE1NiwgMTU3LCAyNCwgMjQsIDI0LCAyNCwgCi0gICAgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE3LCAxNywgMTcsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgNSwgNSwgMSwgNSwgCi0gICAgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMjc4LCAyNzksIDI4MCwgMjgxLCAyODIsIDI4MywgMjg0LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAyODUsIDI4NiwgMjg3LCAyODgsIDI4OSwgMCwgMCwgMCwgMCwgMCwgNTUsIDI1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDAsIDU1LCA1NSwgMCwgNTUsIDU1LCAwLCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCA2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgMjkwLCAyOTAsIDI5MCwgMjkwLCAyOTAsIDI5MCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxNTgsIDE1OCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAKLSAgICAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgCi0gICAgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxNTgsIDE1OCwgMTI4LCAxMjgsIAotICAgIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDEyOCwgMTI4LCAxMjgsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDI5MCwgMjkwLCA1LCA1LCAwLCAwLCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCAyNSwgNSwgNSwgNSwgNiwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCAyNSwgMjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDE4LCAxOCwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMTgsIDE4LCAKKyAgICAxOCwgNSwgNSwgNiwgMCwgNSwgNiwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgMCwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMjkwLCA1NSwgMjkwLCA1NSwgMjkwLCAwLCAyOTAsIDU1LCAyOTAsIDU1LCAKKyAgICAyOTAsIDU1LCAyOTAsIDU1LCAyOTAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDIxLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA2LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA2LCA1LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1LCAxNiwgNiwgNSwgNSwgNSwgNSwgNSwgNSwgMTcsIAorICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAorICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1LCA1LCA1LCA2LCAxOCwgNiwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCisgICAgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCisgICAgMTksIDE5LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgOTYsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI5MSwgMjkxLCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgCisgICAgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgNTUsIDU1LCAKKyAgICA1NSwgMCwgMCwgMCwgNSwgNSwgNSwgNiwgNSwgNSwgNSwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMjEsIDIxLCAyMSwgNSwgNSwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCAwLCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIAorICAgIDAsIDAsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCisgICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCisgICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDAsIDAsIDAsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIAorICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKKyAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCisgICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIAorICAgIDE0MSwgMTQxLCAyNywgMjcsIDI3LCAyNywgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgMjcsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAorICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDI1LCAwLCAwLCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgMCwgMjcsIDI3LCAyNywgMjcsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMTQxLCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDE0MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgMCwgNSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1LCAxNDEsIAorICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTIsIAorICAgIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAKKyAgICAyOTIsIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTIsIDI5MiwgMjkyLCAyOTMsIDI5MywgCisgICAgMjkzLCAyOTMsIDI5MywgMjkzLCAyOTMsIDI5MywgMjkzLCAyOTMsIDI5MywgMjkzLCAyOTMsIDI5MywgMjkzLCAyOTMsIAorICAgIDI5MywgMjkzLCAyOTMsIDI5MywgMjkzLCAyOTMsIDI5MywgMjkzLCAyOTMsIDI5MywgMjkzLCAyOTMsIDI5MywgMjkzLCAKKyAgICAyOTMsIDI5MywgMjkzLCAyOTMsIDI5MywgMjkzLCAyOTMsIDI5MywgMjkzLCAyOTMsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDAsIDAsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKICAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCAwLCA1NSwgNTUsIDAsIDAsIDAsIDU1LCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDUsIDI3LCAyNywgMjcsIAorICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3LCAyNywgMjcsIDI3LCAKKyAgICAyNywgMjcsIDAsIDAsIDAsIDUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgMCwgMCwgNSwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTAsIDUwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCAKKyAgICA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDI1LCAyNSwgMjUsIDAsIDI1LCAKKyAgICAyNSwgMCwgMCwgMCwgMCwgMCwgMjUsIDI1LCAyNSwgMjUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCAwLCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAyNSwgMjUsIDI1LCAwLCAwLCAwLCAwLCAyNSwgCisgICAgMjYsIDIyLCAyMywgMjQ2LCAyNywgMjcsIDI3LCAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCAyNywgMjcsIDUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAyNywgMjcsIAorICAgIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCisgICAgMjcsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNiwgMjIsIDIzLCAyNDYsIDI0NywgMjQ4LCAyNDksIDI1MCwgMjUxLCAyNywgCisgICAgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgCisgICAgMjcsIDI3LCAyNywgMCwgMTgsIDI1LCAxOCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMjUsIDI1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAyNiwgMjIsIDIzLCAyNDYsIDI0NywgMjQ4LCAKKyAgICAyNDksIDI1MCwgMjUxLCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDcsIDgsIDksIDEwLCAKKyAgICAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAyNSwgMjUsIDE4LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAxOCwgMTgsIDE4LCAyNSwgMjUsIDI1LCAKKyAgICAyNSwgMTgsIDE4LCAyNSwgMjUsIDUsIDUsIDIxLCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNywgOCwgOSwgMTAsIAorICAgIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDAsIDAsIDAsIDAsIDAsIDAsIDI1LCAyNSwgMjUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMTgsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMCwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgCisgICAgMTYsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI1LCAyNSwgMTgsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDE4LCAxOCwgMTgsIDI1LCAyNSwgMjUsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDE4LCAxOCwgNTUsIDU1LCA1NSwgNTUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjUsIDE4LCAyNSwgMTgsIDE4LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAxOCwgMjUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIAorICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKKyAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCisgICAgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMjUyLCAyNTIsIDE0MSwgMTQxLCAxNDEsIAorICAgIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAKKyAgICAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgCisgICAgMTQxLCAxNDEsIDE0MSwgMjUyLCAyNTIsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIDE0MSwgMTQxLCAxNDEsIAorICAgIDE0MSwgMTQxLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCAxOCwgMTgsIDE4LCAxOCwgMTgsIAorICAgIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIAorICAgIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAxOCwgMTgsIAorICAgIDE4LCAxOCwgMTgsIDE4LCAxOCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDk2LCA5NiwgOTYsIDk2LCA5NiwgOTYsIDk2LCA5NiwgOTYsIDk2LCA5NiwgOTYsIDk2LCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgNTUsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIApAQCAtMTc3NSwyNzIgKzI2MzcsMjg2IEBACiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMTcsIDE3LCAxNywgMTcsIDE3LCAKLSAgICA1LCA1LCA1LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxNywgMTcsIDE3LCAxNywgCi0gICAgMTcsIDE3LCAxNywgMTcsIDUsIDUsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAxNywgMTcsIAotICAgIDE3LCAxNywgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMTgsIDE4LCAyNSwgMjUsIDI1LCAKKyAgICA1LCA1LCA1LCAxOCwgMTgsIDE4LCAxOCwgMTgsIDE4LCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDI1LCAyNSwgCisgICAgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgNSwgNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDUsIDUsIDUsIDUsIDUsIAogICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDE3LCAxNywgMTcsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDI0LCAyNCwgCi0gICAgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDI0LCAyNCwgMjQsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCi0gICAgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIAotICAgIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMCwgCi0gICAgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIAotICAgIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTAyLCAwLCAxMDIsIDEwMiwgMCwgMCwgMTAyLCAwLCAwLCAxMDIsIDEwMiwgMCwgMCwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAwLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTksIDE5LCAKLSAgICAxOSwgMTksIDAsIDE5LCAwLCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMCwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCi0gICAgMTksIDE5LCAxOSwgMTksIDE5LCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIAotICAgIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDEwMiwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxMDIsIDEwMiwgMCwgMTAyLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAwLCAwLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMCwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIAotICAgIDEwMiwgMTAyLCAwLCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAKLSAgICAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDEwMiwgMTAyLCAwLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDAsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAwLCAxMDIsIDAsIDAsIDAsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMCwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAKLSAgICAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIAotICAgIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCi0gICAgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxMDIsIAotICAgIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIAotICAgIDEwMiwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAKLSAgICAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIAotICAgIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCi0gICAgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTksIDE5LCAxOSwgCi0gICAgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCi0gICAgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDAsIDAsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgNSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAKLSAgICAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDUsIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgNSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDUsIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIAotICAgIDEwMiwgMTAyLCAxMDIsIDEwMiwgNSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgCi0gICAgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDUsIDE5LCAxOSwgMTksIDE5LCAKLSAgICAxOSwgMTksIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgNSwgMTksIDE5LCAKLSAgICAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAKLSAgICAxOSwgMTksIDE5LCAxOSwgMTksIDUsIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAKLSAgICAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgCi0gICAgMTAyLCAxMDIsIDEwMiwgMTAyLCAxMDIsIDEwMiwgNSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIAotICAgIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDE5LCAxOSwgMTksIDUsIDE5LCAxOSwgCi0gICAgMTksIDE5LCAxOSwgMTksIDEwMiwgMTksIDAsIDAsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDYsIDcsIAotICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDYsIDcsIAotICAgIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDE1MSwgMTUxLCAyMywgMjAsIDIxLCAxNTIsIDE1MywgCi0gICAgMTU0LCAxNTUsIDE1NiwgMTU3LCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKLSAgICA1LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCAyNSwgMjUsIDI1LCAyNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMjUsIDI1LCAyNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAyNywgMjcsIDI3LCAKKyAgICAyNywgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIAorICAgIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIAorICAgIDExMywgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAxMTMsIDAsIDExMywgMTEzLCAwLCAwLCAxMTMsIDAsIDAsIAorICAgIDExMywgMTEzLCAwLCAwLCAxMTMsIDExMywgMTEzLCAxMTMsIDAsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAyMCwgMjAsIDIwLCAyMCwgMCwgMjAsIDAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgCisgICAgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDExMywgMTEzLCAwLCAxMTMsIAorICAgIDExMywgMTEzLCAxMTMsIDAsIDAsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAwLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgCisgICAgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMTEzLCAxMTMsIDAsIAorICAgIDExMywgMTEzLCAxMTMsIDExMywgMCwgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDAsIDExMywgMCwgMCwgMCwgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgCisgICAgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDExMywgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIAorICAgIDExMywgMTEzLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgCisgICAgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIAorICAgIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDExMywgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMCwgMCwgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCA1LCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgNSwgMjAsIDIwLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCA1LCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIAorICAgIDIwLCAyMCwgMjAsIDIwLCAyMCwgNSwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIAorICAgIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAKKyAgICAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCA1LCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgCisgICAgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgNSwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIAorICAgIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCA1LCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAKKyAgICAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgNSwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMTEzLCAxMTMsIDExMywgCisgICAgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIAorICAgIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCAxMTMsIDExMywgMTEzLCA1LCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgCisgICAgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgCisgICAgNSwgMjAsIDIwLCAyMCwgMjAsIDIwLCAyMCwgMTEzLCAyMCwgMCwgMCwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAKKyAgICAxNSwgMTYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgMTUsIDE2LCA3LCA4LCA5LCAxMCwgMTEsIDEyLCAxMywgMTQsIAorICAgIDE1LCAxNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDcsIDgsIDksIDEwLCAxMSwgMTIsIDEzLCAxNCwgCisgICAgMTUsIDE2LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIAorICAgIDU1LCAwLCA1NSwgMCwgMCwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgCisgICAgNTUsIDU1LCA1NSwgMCwgNTUsIDAsIDU1LCAwLCAwLCAwLCAwLCAwLCAwLCA1NSwgMCwgMCwgMCwgMCwgNTUsIDAsIDU1LCAwLCAKKyAgICA1NSwgMCwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCAwLCA1NSwgMCwgMCwgNTUsIDAsIDU1LCAwLCA1NSwgMCwgNTUsIDAsIAorICAgIDU1LCAwLCA1NSwgNTUsIDAsIDU1LCAwLCAwLCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgMCwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIDAsIDU1LCA1NSwgNTUsIDAsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKICAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAKLSAgICAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCAwLCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCAwLCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAwLCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCA1LCAKKyAgICA1LCA1LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyNDUsIDI0NSwgMjYsIDIyLCAyMywgMjQ2LCAyNDcsIDI0OCwgMjQ5LCAKKyAgICAyNTAsIDI1MSwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgNSwgNSwgCisgICAgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgCiAgICAgNSwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgMCwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgMCwgNSwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCiAgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgNSwgNSwgNSwgNSwgCi0gICAgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCi0gICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgCi0gICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgNSwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMjc0LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDI3NCwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIAorICAgIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAyNzQsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAorICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCAKKyAgICA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgCisgICAgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDU1LCA1NSwgNTUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAogICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDAsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDUsIDUsIDUsIDAsIDUsIDAsIDUsIDAsIDUsIDAsIDUsIAotICAgIDUsIDUsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDUsIDUsIDUsIDUsIDAsIDUsIDAsIDAsIDUsIDUsIDUsIDUsIDAsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIDUsIAotICAgIDUsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDE3OSwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDE3OSwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAxNzksIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgCi0gICAgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgMTc5LCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIAotICAgIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAKLSAgICA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCA1MCwgNTAsIDUwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAKLSAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAKLSAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAKLSAgICAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAKLSAgICAxLCAxLCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIAotICAgIDE3LCAxNywgMTcsIDE3LCAxNywgMTcsIDE3LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAxLCAKKyAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAyMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMjEsIAorICAgIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIAorICAgIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIAorICAgIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIAorICAgIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIAorICAgIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjEsIAorICAgIDIxLCAyMSwgMjEsIDIxLCAyMSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIAorICAgIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMjUsIDI1LCAyNSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgCisgICAgMCwgMCwgMCwgMCwgMCwgMCwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCiAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCiAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCiAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCiAgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgCi0gICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMCwgMCwgCisgICAgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMSwgMCwgMCwgCiB9OwogCiAvKiBSZXR1cm5zIHRoZSBudW1lcmljIHZhbHVlIGFzIGRvdWJsZSBmb3IgVW5pY29kZSBjaGFyYWN0ZXJzCkBAIC0yMTAwLDYgKzI5NzYsMTAgQEAKICAgICBjYXNlIDB4MTAxOEE6CiAgICAgY2FzZSAweDEwNEEwOgogICAgIGNhc2UgMHgxMTA2NjoKKyAgICBjYXNlIDB4MTEwRjA6CisgICAgY2FzZSAweDExMTM2OgorICAgIGNhc2UgMHgxMTFEMDoKKyAgICBjYXNlIDB4MTE2QzA6CiAgICAgY2FzZSAweDFEN0NFOgogICAgIGNhc2UgMHgxRDdEODoKICAgICBjYXNlIDB4MUQ3RTI6CkBAIC0yMTg3LDYgKzMwNjcsMTAgQEAKICAgICBjYXNlIDB4MTBFNjA6CiAgICAgY2FzZSAweDExMDUyOgogICAgIGNhc2UgMHgxMTA2NzoKKyAgICBjYXNlIDB4MTEwRjE6CisgICAgY2FzZSAweDExMTM3OgorICAgIGNhc2UgMHgxMTFEMToKKyAgICBjYXNlIDB4MTE2QzE6CiAgICAgY2FzZSAweDEyNDE1OgogICAgIGNhc2UgMHgxMjQxRToKICAgICBjYXNlIDB4MTI0MkM6CkBAIC0yMjYzLDYgKzMxNDcsNyBAQAogICAgIGNhc2UgMHgyNzkzOgogICAgIGNhc2UgMHgzMDM4OgogICAgIGNhc2UgMHgzMjI5OgorICAgIGNhc2UgMHgzMjQ4OgogICAgIGNhc2UgMHgzMjg5OgogICAgIGNhc2UgMHg0RUMwOgogICAgIGNhc2UgMHg1MzQxOgpAQCAtMjQ4Myw2ICszMzY4LDEwIEBACiAgICAgY2FzZSAweDEwRTYxOgogICAgIGNhc2UgMHgxMTA1MzoKICAgICBjYXNlIDB4MTEwNjg6CisgICAgY2FzZSAweDExMEYyOgorICAgIGNhc2UgMHgxMTEzODoKKyAgICBjYXNlIDB4MTExRDI6CisgICAgY2FzZSAweDExNkMyOgogICAgIGNhc2UgMHgxMjQwMDoKICAgICBjYXNlIDB4MTI0MTY6CiAgICAgY2FzZSAweDEyNDFGOgpAQCAtMjUxNSw2ICszNDA0LDcgQEAKICAgICBjYXNlIDB4MjQ5QjoKICAgICBjYXNlIDB4MjRGNDoKICAgICBjYXNlIDB4MzAzOToKKyAgICBjYXNlIDB4MzI0OToKICAgICBjYXNlIDB4NTM0NDoKICAgICBjYXNlIDB4NUVGRjoKICAgICBjYXNlIDB4MTAxMTE6CkBAIC0yNjI2LDYgKzM1MTYsMTAgQEAKICAgICBjYXNlIDB4MTBFNjI6CiAgICAgY2FzZSAweDExMDU0OgogICAgIGNhc2UgMHgxMTA2OToKKyAgICBjYXNlIDB4MTEwRjM6CisgICAgY2FzZSAweDExMTM5OgorICAgIGNhc2UgMHgxMTFEMzoKKyAgICBjYXNlIDB4MTE2QzM6CiAgICAgY2FzZSAweDEyNDAxOgogICAgIGNhc2UgMHgxMjQwODoKICAgICBjYXNlIDB4MTI0MTc6CkBAIC0yNjcxLDYgKzM1NjUsNyBAQAogICAgICAgICByZXR1cm4gKGRvdWJsZSkgMy4wLzguMDsKICAgICBjYXNlIDB4MTM3NDoKICAgICBjYXNlIDB4MzAzQToKKyAgICBjYXNlIDB4MzI0QToKICAgICBjYXNlIDB4MzI1QToKICAgICBjYXNlIDB4NTM0NToKICAgICBjYXNlIDB4MTAxMTI6CkBAIC0yNzcwLDYgKzM2NjUsMTAgQEAKICAgICBjYXNlIDB4MTBFNjM6CiAgICAgY2FzZSAweDExMDU1OgogICAgIGNhc2UgMHgxMTA2QToKKyAgICBjYXNlIDB4MTEwRjQ6CisgICAgY2FzZSAweDExMTNBOgorICAgIGNhc2UgMHgxMTFENDoKKyAgICBjYXNlIDB4MTE2QzQ6CiAgICAgY2FzZSAweDEyNDAyOgogICAgIGNhc2UgMHgxMjQwOToKICAgICBjYXNlIDB4MTI0MEY6CkBAIC0yNzk5LDYgKzM2OTgsNyBAQAogICAgIGNhc2UgMHgyMTU4OgogICAgICAgICByZXR1cm4gKGRvdWJsZSkgNC4wLzUuMDsKICAgICBjYXNlIDB4MTM3NToKKyAgICBjYXNlIDB4MzI0QjoKICAgICBjYXNlIDB4MzJCNToKICAgICBjYXNlIDB4NTM0QzoKICAgICBjYXNlIDB4MTAxMTM6CkBAIC0yOTAwLDYgKzM4MDAsMTAgQEAKICAgICBjYXNlIDB4MTBFNjQ6CiAgICAgY2FzZSAweDExMDU2OgogICAgIGNhc2UgMHgxMTA2QjoKKyAgICBjYXNlIDB4MTEwRjU6CisgICAgY2FzZSAweDExMTNCOgorICAgIGNhc2UgMHgxMTFENToKKyAgICBjYXNlIDB4MTE2QzU6CiAgICAgY2FzZSAweDEyNDAzOgogICAgIGNhc2UgMHgxMjQwQToKICAgICBjYXNlIDB4MTI0MTA6CkBAIC0yOTMxLDYgKzM4MzUsNyBAQAogICAgIGNhc2UgMHgyMTZDOgogICAgIGNhc2UgMHgyMTdDOgogICAgIGNhc2UgMHgyMTg2OgorICAgIGNhc2UgMHgzMjRDOgogICAgIGNhc2UgMHgzMkJGOgogICAgIGNhc2UgMHgxMDExNDoKICAgICBjYXNlIDB4MTAxNDQ6CkBAIC0zMDM0LDYgKzM5MzksMTAgQEAKICAgICBjYXNlIDB4MTBFNjU6CiAgICAgY2FzZSAweDExMDU3OgogICAgIGNhc2UgMHgxMTA2QzoKKyAgICBjYXNlIDB4MTEwRjY6CisgICAgY2FzZSAweDExMTNDOgorICAgIGNhc2UgMHgxMTFENjoKKyAgICBjYXNlIDB4MTE2QzY6CiAgICAgY2FzZSAweDEyNDA0OgogICAgIGNhc2UgMHgxMjQwQjoKICAgICBjYXNlIDB4MTI0MTE6CkBAIC0zMDUxLDYgKzM5NjAsNyBAQAogICAgIGNhc2UgMHgyMEFFQToKICAgICAgICAgcmV0dXJuIChkb3VibGUpIDYuMDsKICAgICBjYXNlIDB4MTM3NzoKKyAgICBjYXNlIDB4MzI0RDoKICAgICBjYXNlIDB4MTAxMTU6CiAgICAgY2FzZSAweDEwRTZFOgogICAgIGNhc2UgMHgxMTA2MDoKQEAgLTMxMjQsNiArNDAzNCwxMCBAQAogICAgIGNhc2UgMHgxMEU2NjoKICAgICBjYXNlIDB4MTEwNTg6CiAgICAgY2FzZSAweDExMDZEOgorICAgIGNhc2UgMHgxMTBGNzoKKyAgICBjYXNlIDB4MTExM0Q6CisgICAgY2FzZSAweDExMUQ3OgorICAgIGNhc2UgMHgxMTZDNzoKICAgICBjYXNlIDB4MTI0MDU6CiAgICAgY2FzZSAweDEyNDBDOgogICAgIGNhc2UgMHgxMjQxMjoKQEAgLTMxNDYsNiArNDA2MCw3IEBACiAgICAgY2FzZSAweDIxNUU6CiAgICAgICAgIHJldHVybiAoZG91YmxlKSA3LjAvOC4wOwogICAgIGNhc2UgMHgxMzc4OgorICAgIGNhc2UgMHgzMjRFOgogICAgIGNhc2UgMHgxMDExNjoKICAgICBjYXNlIDB4MTBFNkY6CiAgICAgY2FzZSAweDExMDYxOgpAQCAtMzIxNyw2ICs0MTMyLDEwIEBACiAgICAgY2FzZSAweDEwRTY3OgogICAgIGNhc2UgMHgxMTA1OToKICAgICBjYXNlIDB4MTEwNkU6CisgICAgY2FzZSAweDExMEY4OgorICAgIGNhc2UgMHgxMTEzRToKKyAgICBjYXNlIDB4MTExRDg6CisgICAgY2FzZSAweDExNkM4OgogICAgIGNhc2UgMHgxMjQwNjoKICAgICBjYXNlIDB4MTI0MEQ6CiAgICAgY2FzZSAweDEyNDEzOgpAQCAtMzIzMyw2ICs0MTUyLDcgQEAKICAgICBjYXNlIDB4MUYxMDk6CiAgICAgICAgIHJldHVybiAoZG91YmxlKSA4LjA7CiAgICAgY2FzZSAweDEzNzk6CisgICAgY2FzZSAweDMyNEY6CiAgICAgY2FzZSAweDEwMTE3OgogICAgIGNhc2UgMHgxMEU3MDoKICAgICBjYXNlIDB4MTEwNjI6CkBAIC0zMzA1LDYgKzQyMjUsMTAgQEAKICAgICBjYXNlIDB4MTBFNjg6CiAgICAgY2FzZSAweDExMDVBOgogICAgIGNhc2UgMHgxMTA2RjoKKyAgICBjYXNlIDB4MTEwRjk6CisgICAgY2FzZSAweDExMTNGOgorICAgIGNhc2UgMHgxMTFEOToKKyAgICBjYXNlIDB4MTE2Qzk6CiAgICAgY2FzZSAweDEyNDA3OgogICAgIGNhc2UgMHgxMjQwRToKICAgICBjYXNlIDB4MTI0MTQ6CmRpZmYgLS1naXQgYS9PYmplY3RzL3dlYWtyZWZvYmplY3QuYyBiL09iamVjdHMvd2Vha3JlZm9iamVjdC5jCmluZGV4IDEzMzIzY2YuLmUwN2FkYjIgMTAwNjQ0Ci0tLSBhL09iamVjdHMvd2Vha3JlZm9iamVjdC5jCisrKyBiL09iamVjdHMvd2Vha3JlZm9iamVjdC5jCkBAIC0xNTYsMjggKzE1NiwzMiBAQAogc3RhdGljIFB5T2JqZWN0ICoKIHdlYWtyZWZfcmVwcihQeVdlYWtSZWZlcmVuY2UgKnNlbGYpCiB7Ci0gICAgY2hhciBidWZmZXJbMjU2XTsKLSAgICBpZiAoUHlXZWFrcmVmX0dFVF9PQkpFQ1Qoc2VsZikgPT0gUHlfTm9uZSkgewotICAgICAgICBQeU9TX3NucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksICI8d2Vha3JlZiBhdCAlcDsgZGVhZD4iLCBzZWxmKTsKKyAgICBQeU9iamVjdCAqbmFtZSwgKnJlcHI7CisgICAgX1B5X0lERU5USUZJRVIoX19uYW1lX18pOworCisgICAgaWYgKFB5V2Vha3JlZl9HRVRfT0JKRUNUKHNlbGYpID09IFB5X05vbmUpCisgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiPHdlYWtyZWYgYXQgJXA7IGRlYWQ+Iiwgc2VsZik7CisKKyAgICBuYW1lID0gX1B5T2JqZWN0X0dldEF0dHJJZChQeVdlYWtyZWZfR0VUX09CSkVDVChzZWxmKSwgJlB5SWRfX19uYW1lX18pOworICAgIGlmIChuYW1lID09IE5VTEwgfHwgIVB5VW5pY29kZV9DaGVjayhuYW1lKSkgeworICAgICAgICBpZiAobmFtZSA9PSBOVUxMKQorICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgcmVwciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KAorICAgICAgICAgICAgIjx3ZWFrcmVmIGF0ICVwOyB0byAnJXMnIGF0ICVwPiIsCisgICAgICAgICAgICBzZWxmLAorICAgICAgICAgICAgUHlfVFlQRShQeVdlYWtyZWZfR0VUX09CSkVDVChzZWxmKSktPnRwX25hbWUsCisgICAgICAgICAgICBQeVdlYWtyZWZfR0VUX09CSkVDVChzZWxmKSk7CiAgICAgfQogICAgIGVsc2UgewotICAgICAgICBjaGFyICpuYW1lID0gTlVMTDsKLSAgICAgICAgUHlPYmplY3QgKm5hbWVvYmogPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKFB5V2Vha3JlZl9HRVRfT0JKRUNUKHNlbGYpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIl9fbmFtZV9fIik7Ci0gICAgICAgIGlmIChuYW1lb2JqID09IE5VTEwpCi0gICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICAgICAgZWxzZSBpZiAoUHlVbmljb2RlX0NoZWNrKG5hbWVvYmopKQotICAgICAgICAgICAgICAgIG5hbWUgPSBfUHlVbmljb2RlX0FzU3RyaW5nKG5hbWVvYmopOwotICAgICAgICBQeU9TX3NucHJpbnRmKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksCi0gICAgICAgICAgICAgICAgICAgICAgbmFtZSA/ICI8d2Vha3JlZiBhdCAlcDsgdG8gJyUuNTBzJyBhdCAlcCAoJXMpPiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIjx3ZWFrcmVmIGF0ICVwOyB0byAnJS41MHMnIGF0ICVwPiIsCi0gICAgICAgICAgICAgICAgICAgICAgc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICBQeV9UWVBFKFB5V2Vha3JlZl9HRVRfT0JKRUNUKHNlbGYpKS0+dHBfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICBQeVdlYWtyZWZfR0VUX09CSkVDVChzZWxmKSwKLSAgICAgICAgICAgICAgICAgICAgICBuYW1lKTsKLSAgICAgICAgUHlfWERFQ1JFRihuYW1lb2JqKTsKKyAgICAgICAgcmVwciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KAorICAgICAgICAgICAgIjx3ZWFrcmVmIGF0ICVwOyB0byAnJXMnIGF0ICVwICglVSk+IiwKKyAgICAgICAgICAgIHNlbGYsCisgICAgICAgICAgICBQeV9UWVBFKFB5V2Vha3JlZl9HRVRfT0JKRUNUKHNlbGYpKS0+dHBfbmFtZSwKKyAgICAgICAgICAgIFB5V2Vha3JlZl9HRVRfT0JKRUNUKHNlbGYpLAorICAgICAgICAgICAgbmFtZSk7CiAgICAgfQotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhidWZmZXIpOworICAgIFB5X1hERUNSRUYobmFtZSk7CisgICAgcmV0dXJuIHJlcHI7CiB9CiAKIC8qIFdlYWsgcmVmZXJlbmNlcyBvbmx5IHN1cHBvcnQgZXF1YWxpdHksIG5vdCBvcmRlcmluZy4gVHdvIHdlYWsgcmVmZXJlbmNlcwpAQCAtMTkwLDggKzE5NCw3IEBACiAgICAgaWYgKChvcCAhPSBQeV9FUSAmJiBvcCAhPSBQeV9ORSkgfHwKICAgICAgICAgIVB5V2Vha3JlZl9DaGVjayhzZWxmKSB8fAogICAgICAgICAhUHlXZWFrcmVmX0NoZWNrKG90aGVyKSkgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm90SW1wbGVtZW50ZWQpOwotICAgICAgICByZXR1cm4gUHlfTm90SW1wbGVtZW50ZWQ7CisgICAgICAgIFB5X1JFVFVSTl9OT1RJTVBMRU1FTlRFRDsKICAgICB9CiAgICAgaWYgKFB5V2Vha3JlZl9HRVRfT0JKRUNUKHNlbGYpID09IFB5X05vbmUKICAgICAgICAgfHwgUHlXZWFrcmVmX0dFVF9PQkpFQ1Qob3RoZXIpID09IFB5X05vbmUpIHsKQEAgLTQzOCw4ICs0NDEsOSBAQAogI2RlZmluZSBXUkFQX01FVEhPRChtZXRob2QsIHNwZWNpYWwpIFwKICAgICBzdGF0aWMgUHlPYmplY3QgKiBcCiAgICAgbWV0aG9kKFB5T2JqZWN0ICpwcm94eSkgeyBcCisgICAgICAgICAgICBfUHlfSURFTlRJRklFUihzcGVjaWFsKTsgXAogICAgICAgICAgICAgVU5XUkFQKHByb3h5KTsgXAotICAgICAgICAgICAgICAgIHJldHVybiBQeU9iamVjdF9DYWxsTWV0aG9kKHByb3h5LCBzcGVjaWFsLCAiIik7IFwKKyAgICAgICAgICAgICAgICByZXR1cm4gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChwcm94eSwgJlB5SWRfIyNzcGVjaWFsLCAiIik7IFwKICAgICAgICAgfQogCiAKQEAgLTQ1MiwxMiArNDU2LDExIEBACiBzdGF0aWMgUHlPYmplY3QgKgogcHJveHlfcmVwcihQeVdlYWtSZWZlcmVuY2UgKnByb3h5KQogewotICAgIGNoYXIgYnVmWzE2MF07Ci0gICAgUHlPU19zbnByaW50ZihidWYsIHNpemVvZihidWYpLAotICAgICAgICAgICAgICAgICAgIjx3ZWFrcHJveHkgYXQgJXAgdG8gJS4xMDBzIGF0ICVwPiIsIHByb3h5LAotICAgICAgICAgICAgICAgICAgUHlfVFlQRShQeVdlYWtyZWZfR0VUX09CSkVDVChwcm94eSkpLT50cF9uYW1lLAotICAgICAgICAgICAgICAgICAgUHlXZWFrcmVmX0dFVF9PQkpFQ1QocHJveHkpKTsKLSAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21TdHJpbmcoYnVmKTsKKyAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Gb3JtYXQoCisgICAgICAgICI8d2Vha3Byb3h5IGF0ICVwIHRvICVzIGF0ICVwPiIsCisgICAgICAgIHByb3h5LAorICAgICAgICBQeV9UWVBFKFB5V2Vha3JlZl9HRVRfT0JKRUNUKHByb3h5KSktPnRwX25hbWUsCisgICAgICAgIFB5V2Vha3JlZl9HRVRfT0JKRUNUKHByb3h5KSk7CiB9CiAKIApAQCAtNTgzLDcgKzU4Niw3IEBACiB9CiAKIAotV1JBUF9NRVRIT0QocHJveHlfYnl0ZXMsICJfX2J5dGVzX18iKQorV1JBUF9NRVRIT0QocHJveHlfYnl0ZXMsIF9fYnl0ZXNfXykKIAogCiBzdGF0aWMgUHlNZXRob2REZWYgcHJveHlfbWV0aG9kc1tdID0gewpkaWZmIC0tZ2l0IGEvUEMvVkM2L19tdWx0aXByb2Nlc3NpbmcuZHNwIGIvUEMvVkM2L19tdWx0aXByb2Nlc3NpbmcuZHNwCmluZGV4IDJkY2FmODMuLmUxYjg0NzAgMTAwNjQ0Ci0tLSBhL1BDL1ZDNi9fbXVsdGlwcm9jZXNzaW5nLmRzcAorKysgYi9QQy9WQzYvX211bHRpcHJvY2Vzc2luZy5kc3AKQEAgLTk3LDE4ICs5NywxMCBAQAogIyBFbmQgU291cmNlIEZpbGUNCiAjIEJlZ2luIFNvdXJjZSBGaWxlDQogDQotU09VUkNFPS4uXC4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1xwaXBlX2Nvbm5lY3Rpb24uYw0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KIFNPVVJDRT0uLlwuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3Npbmdcc2VtYXBob3JlLmMNCiAjIEVuZCBTb3VyY2UgRmlsZQ0KICMgQmVnaW4gU291cmNlIEZpbGUNCiANCi1TT1VSQ0U9Li5cLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXHNvY2tldF9jb25uZWN0aW9uLmMNCi0jIEVuZCBTb3VyY2UgRmlsZQ0KLSMgQmVnaW4gU291cmNlIEZpbGUNCi0NCiBTT1VSQ0U9Li5cLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXHdpbjMyX2Z1bmN0aW9ucy5jDQogIyBFbmQgU291cmNlIEZpbGUNCiAjIEVuZCBUYXJnZXQNCmRpZmYgLS1naXQgYS9QQy9WQzYvcHl0aG9uY29yZS5kc3AgYi9QQy9WQzYvcHl0aG9uY29yZS5kc3AKaW5kZXggOTI2MjU2ZC4uMGNlOThkMSAxMDA2NDQKLS0tIGEvUEMvVkM2L3B5dGhvbmNvcmUuZHNwCisrKyBiL1BDL1ZDNi9weXRob25jb3JlLmRzcApAQCAtNTQsNyArNTQsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL21hY2hpbmU6STM4Ng0KLSMgQUREIExJTkszMiBsYXJnZWludC5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWUwMDAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6ImxpYmMiIC9vdXQ6Ii4vcHl0aG9uMzIuZGxsIg0KKyMgQUREIExJTkszMiBsYXJnZWludC5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWUwMDAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6ImxpYmMiIC9vdXQ6Ii4vcHl0aG9uMzMuZGxsIg0KICMgU1VCVFJBQ1QgTElOSzMyIC9wZGI6bm9uZQ0KIA0KICFFTFNFSUYgICIkKENGRykiID09ICJweXRob25jb3JlIC0gV2luMzIgRGVidWciDQpAQCAtODIsNyArODIsNyBAQAogIyBBREQgQlNDMzIgL25vbG9nbw0KIExJTkszMj1saW5rLmV4ZQ0KICMgQUREIEJBU0UgTElOSzMyIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGdkaTMyLmxpYiB3aW5zcG9vbC5saWIgY29tZGxnMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiBvbGUzMi5saWIgb2xlYXV0MzIubGliIHV1aWQubGliIG9kYmMzMi5saWIgb2RiY2NwMzIubGliIC9ub2xvZ28gL3N1YnN5c3RlbTp3aW5kb3dzIC9kbGwgL2RlYnVnIC9tYWNoaW5lOkkzODYgL3BkYnR5cGU6c2VwdA0KLSMgQUREIExJTkszMiBsYXJnZWludC5saWIga2VybmVsMzIubGliIHVzZXIzMi5saWIgYWR2YXBpMzIubGliIHNoZWxsMzIubGliIC9ub2xvZ28gL2Jhc2U6IjB4MWUwMDAwMDAiIC9zdWJzeXN0ZW06d2luZG93cyAvZGxsIC9kZWJ1ZyAvbWFjaGluZTpJMzg2IC9ub2RlZmF1bHRsaWI6ImxpYmMiIC9vdXQ6Ii4vcHl0aG9uMzJfZC5kbGwiIC9wZGJ0eXBlOnNlcHQNCisjIEFERCBMSU5LMzIgbGFyZ2VpbnQubGliIGtlcm5lbDMyLmxpYiB1c2VyMzIubGliIGFkdmFwaTMyLmxpYiBzaGVsbDMyLmxpYiAvbm9sb2dvIC9iYXNlOiIweDFlMDAwMDAwIiAvc3Vic3lzdGVtOndpbmRvd3MgL2RsbCAvZGVidWcgL21hY2hpbmU6STM4NiAvbm9kZWZhdWx0bGliOiJsaWJjIiAvb3V0OiIuL3B5dGhvbjMzX2QuZGxsIiAvcGRidHlwZTpzZXB0DQogIyBTVUJUUkFDVCBMSU5LMzIgL3BkYjpub25lDQogDQogIUVORElGIA0KQEAgLTQ2NiwxMSArNDY2LDYgQEAKICMgRW5kIFNvdXJjZSBGaWxlDQogIyBCZWdpbiBTb3VyY2UgRmlsZQ0KIA0KLVNPVVJDRT0uLlxpbXBvcnRfbnQuYw0KLSMgQUREIENQUCAvSSAiLi5cLi5cUHl0aG9uIg0KLSMgRW5kIFNvdXJjZSBGaWxlDQotIyBCZWdpbiBTb3VyY2UgRmlsZQ0KLQ0KIFNPVVJDRT0uLlwuLlxQeXRob25caW1wb3J0ZGwuYw0KICMgRW5kIFNvdXJjZSBGaWxlDQogIyBCZWdpbiBTb3VyY2UgRmlsZQ0KZGlmZiAtLWdpdCBhL1BDL1ZDNi9yZWFkbWUudHh0IGIvUEMvVkM2L3JlYWRtZS50eHQKaW5kZXggZmExYWU3ZC4uZDZlYzZlNiAxMDA2NDQKLS0tIGEvUEMvVkM2L3JlYWRtZS50eHQKKysrIGIvUEMvVkM2L3JlYWRtZS50eHQKQEAgLTEyLDcgKzEyLDcgQEAKIFRoZSBwcm9wZXIgb3JkZXIgdG8gYnVpbGQgc3VicHJvamVjdHM6CiAKIDEpIHB5dGhvbmNvcmUgKHRoaXMgYnVpbGRzIHRoZSBtYWluIFB5dGhvbiBETEwgYW5kIGxpYnJhcnkgZmlsZXMsCi0gICAgICAgICAgICAgICBweXRob24zMi57ZGxsLCBsaWJ9IGluIFJlbGVhc2UgbW9kZSkKKyAgICAgICAgICAgICAgIHB5dGhvbjMzLntkbGwsIGxpYn0gaW4gUmVsZWFzZSBtb2RlKQogCiAyKSBweXRob24gKHRoaXMgYnVpbGRzIHRoZSBtYWluIFB5dGhvbiBleGVjdXRhYmxlLAogICAgICAgICAgICBweXRob24uZXhlIGluIFJlbGVhc2UgbW9kZSkKQEAgLTIzLDcgKzIzLDcgQEAKICAgIHRvIHRoZSBzdWJzeXN0ZW1zIHRoZXkgaW1wbGVtZW50OyBzZWUgU1VCUFJPSkVDVFMgYmVsb3cpCiAKIFdoZW4gdXNpbmcgdGhlIERlYnVnIHNldHRpbmcsIHRoZSBvdXRwdXQgZmlsZXMgaGF2ZSBhIF9kIGFkZGVkIHRvCi10aGVpciBuYW1lOiAgcHl0aG9uMzJfZC5kbGwsIHB5dGhvbl9kLmV4ZSwgcHlleHBhdF9kLnB5ZCwgYW5kIHNvIG9uLgordGhlaXIgbmFtZTogIHB5dGhvbjMzX2QuZGxsLCBweXRob25fZC5leGUsIHB5ZXhwYXRfZC5weWQsIGFuZCBzbyBvbi4KIAogU1VCUFJPSkVDVFMKIC0tLS0tLS0tLS0tCkBAIC0xNTMsOSArMTUzLDkgQEAKIAogICAgIFVucGFjayBpbnRvIHRoZSAiZGlzdCIgZGlyZWN0b3J5LCByZXRhaW5pbmcgdGhlIGZvbGRlciBuYW1lIGZyb20KICAgICB0aGUgYXJjaGl2ZSAtIGZvciBleGFtcGxlLCB0aGUgbGF0ZXN0IHN0YWJsZSBPcGVuU1NMIHdpbGwgaW5zdGFsbCBhcwotICAgICAgICBkaXN0L29wZW5zc2wtMS4wLjBqCisgICAgICAgIGRpc3Qvb3BlbnNzbC0xLjAuMWMKIAotICAgIFlvdSBuZWVkIHRvIHVzZSB2ZXJzaW9uIDEuMC4waiBvZiBPcGVuU1NMLgorICAgIFlvdSBuZWVkIHRvIHVzZSB2ZXJzaW9uIDEuMC4xYyBvZiBPcGVuU1NMLgogCiAgICAgWW91IGNhbiBpbnN0YWxsIHRoZSBOQVNNIGFzc2VtYmxlciBmcm9tCiAgICAgICAgIGh0dHA6Ly93d3cubmFzbS51cy8KZGlmZiAtLWdpdCBhL1BDL1ZTNy4xL3B5dGhvbmNvcmUudmNwcm9qIGIvUEMvVlM3LjEvcHl0aG9uY29yZS52Y3Byb2oKaW5kZXggNzdmN2Q5ZC4uMDVjNDE4NCAxMDA2NDQKLS0tIGEvUEMvVlM3LjEvcHl0aG9uY29yZS52Y3Byb2oKKysrIGIvUEMvVlM3LjEvcHl0aG9uY29yZS52Y3Byb2oKQEAgLTM5LDE1ICszOSwxNSBAQAogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KIAkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJnZXRidWlsZGluZm8ubyINCi0JCQkJT3V0cHV0RmlsZT0iLi9weXRob24zMi5kbGwiDQorCQkJCU91dHB1dEZpbGU9Ii4vcHl0aG9uMzMuZGxsIg0KIAkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQogCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCiAJCQkJSWdub3JlRGVmYXVsdExpYnJhcnlOYW1lcz0ibGliYyINCiAJCQkJR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPSJUUlVFIg0KLQkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vcHl0aG9uMzIucGRiIg0KKwkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vcHl0aG9uMzMucGRiIg0KIAkJCQlTdWJTeXN0ZW09IjIiDQogCQkJCUJhc2VBZGRyZXNzPSIweDFlMDAwMDAwIg0KLQkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vcHl0aG9uMzIubGliIg0KKwkJCQlJbXBvcnRMaWJyYXJ5PSIuXC4vcHl0aG9uMzMubGliIg0KIAkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KQEAgLTk5LDE1ICs5OSwxNSBAQAogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KIAkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJnZXRidWlsZGluZm8ubyINCi0JCQkJT3V0cHV0RmlsZT0iLi9weXRob24zMl9kLmRsbCINCisJCQkJT3V0cHV0RmlsZT0iLi9weXRob24zM19kLmRsbCINCiAJCQkJTGlua0luY3JlbWVudGFsPSIxIg0KIAkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9IlRSVUUiDQogCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQogCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3B5dGhvbjMyX2QucGRiIg0KKwkJCQlQcm9ncmFtRGF0YWJhc2VGaWxlPSIuXC4vcHl0aG9uMzNfZC5wZGIiDQogCQkJCVN1YlN5c3RlbT0iMiINCiAJCQkJQmFzZUFkZHJlc3M9IjB4MWUwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9weXRob24zMl9kLmxpYiINCisJCQkJSW1wb3J0TGlicmFyeT0iLlwuL3B5dGhvbjMzX2QubGliIg0KIAkJCQlUYXJnZXRNYWNoaW5lPSIxIi8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNNSURMVG9vbCIvPg0KQEAgLTE2NiwxNSArMTY2LDE1IEBACiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KIAkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iIC9NQUNISU5FOklBNjQgL1VTRUxJTks6TVNfU0RLIg0KIAkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJnZXRidWlsZGluZm8ubyINCi0JCQkJT3V0cHV0RmlsZT0iLi9weXRob24zMi5kbGwiDQorCQkJCU91dHB1dEZpbGU9Ii4vcHl0aG9uMzMuZGxsIg0KIAkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQogCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iRkFMU0UiDQogCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9ImxpYmMiDQogCQkJCUdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj0iVFJVRSINCi0JCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3B5dGhvbjMyLnBkYiINCisJCQkJUHJvZ3JhbURhdGFiYXNlRmlsZT0iLlwuL3B5dGhvbjMzLnBkYiINCiAJCQkJU3ViU3lzdGVtPSIyIg0KIAkJCQlCYXNlQWRkcmVzcz0iMHgxZTAwMDAwMCINCi0JCQkJSW1wb3J0TGlicmFyeT0iLlwuL3B5dGhvbjMyLmxpYiINCisJCQkJSW1wb3J0TGlicmFyeT0iLlwuL3B5dGhvbjMzLmxpYiINCiAJCQkJVGFyZ2V0TWFjaGluZT0iMCIvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTUlETFRvb2wiLz4NCkBAIC0yMzMsMTUgKzIzMywxNSBAQAogCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCiAJCQkJQWRkaXRpb25hbE9wdGlvbnM9IiAvTUFDSElORTpBTUQ2NCAvVVNFTElOSzpNU19TREsiDQogCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9ImdldGJ1aWxkaW5mby5vIg0KLQkJCQlPdXRwdXRGaWxlPSIuL3B5dGhvbjMyLmRsbCINCisJCQkJT3V0cHV0RmlsZT0iLi9weXRob24zMy5kbGwiDQogCQkJCUxpbmtJbmNyZW1lbnRhbD0iMSINCiAJCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJUUlVFIg0KIAkJCQlJZ25vcmVEZWZhdWx0TGlicmFyeU5hbWVzPSJsaWJjIg0KIAkJCQlHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb249IlRSVUUiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9weXRob24zMi5wZGIiDQorCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii5cLi9weXRob24zMy5wZGIiDQogCQkJCVN1YlN5c3RlbT0iMiINCiAJCQkJQmFzZUFkZHJlc3M9IjB4MWUwMDAwMDAiDQotCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9weXRob24zMi5saWIiDQorCQkJCUltcG9ydExpYnJhcnk9Ii5cLi9weXRob24zMy5saWIiDQogCQkJCVRhcmdldE1hY2hpbmU9IjAiLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ01JRExUb29sIi8+DQpAQCAtNjE2LDMzICs2MTYsNiBAQAogCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25caW1wb3J0LmMiPg0KIAkJPC9GaWxlPg0KIAkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXGltcG9ydF9udC5jIj4NCi0JCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiI+DQotCQkJCTxUb29sDQotCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cUHl0aG9uIi8+DQotCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJTmFtZT0iRGVidWd8V2luMzIiPg0KLQkJCQk8VG9vbA0KLQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFB5dGhvbiIvPg0KLQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCU5hbWU9IlJlbGVhc2VJdGFuaXVtfFdpbjMyIj4NCi0JCQkJPFRvb2wNCi0JCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQeXRob24iLz4NCi0JCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQlOYW1lPSJSZWxlYXNlQU1ENjR8V2luMzIiPg0KLQkJCQk8VG9vbA0KLQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFB5dGhvbiIvPg0KLQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQotCQk8L0ZpbGU+DQotCQk8RmlsZQ0KIAkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGltcG9ydGRsLmMiPg0KIAkJPC9GaWxlPg0KIAkJPEZpbGUNCmRpZmYgLS1naXQgYS9QQy9WUzcuMS9yZWFkbWUudHh0IGIvUEMvVlM3LjEvcmVhZG1lLnR4dAppbmRleCA4ZmIwNjlmLi5iZmQ4YTcwIDEwMDY0NAotLS0gYS9QQy9WUzcuMS9yZWFkbWUudHh0CisrKyBiL1BDL1ZTNy4xL3JlYWRtZS50eHQKQEAgLTEyLDcgKzEyLDcgQEAKIFRoZSBwcm9wZXIgb3JkZXIgdG8gYnVpbGQgc3VicHJvamVjdHM6CiAKIDEpIHB5dGhvbmNvcmUgKHRoaXMgYnVpbGRzIHRoZSBtYWluIFB5dGhvbiBETEwgYW5kIGxpYnJhcnkgZmlsZXMsCi0gICAgICAgICAgICAgICBweXRob24yNi57ZGxsLCBsaWJ9IGluIFJlbGVhc2UgbW9kZSkKKyAgICAgICAgICAgICAgIHB5dGhvbjMzLntkbGwsIGxpYn0gaW4gUmVsZWFzZSBtb2RlKQogICAgICAgICAgICAgICBOT1RFOiAgaW4gcHJldmlvdXMgcmVsZWFzZXMsIHRoaXMgc3VicHJvamVjdCB3YXMKICAgICAgICAgICAgICAgbmFtZWQgYWZ0ZXIgdGhlIHJlbGVhc2UgbnVtYmVyLCBlLmcuIHB5dGhvbjIwLgogCkBAIC0yNiw3ICsyNiw3IEBACiAgICB0ZXN0IHNsYXZlOyBzZWUgU1VCUFJPSkVDVFMgYmVsb3cpCiAKIFdoZW4gdXNpbmcgdGhlIERlYnVnIHNldHRpbmcsIHRoZSBvdXRwdXQgZmlsZXMgaGF2ZSBhIF9kIGFkZGVkIHRvCi10aGVpciBuYW1lOiAgcHl0aG9uMjZfZC5kbGwsIHB5dGhvbl9kLmV4ZSwgcGFyc2VyX2QucHlkLCBhbmQgc28gb24uCit0aGVpciBuYW1lOiAgcHl0aG9uMzNfZC5kbGwsIHB5dGhvbl9kLmV4ZSwgcGFyc2VyX2QucHlkLCBhbmQgc28gb24uCiAKIFNVQlBST0pFQ1RTCiAtLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvX211bHRpcHJvY2Vzc2luZy52Y3Byb2ogYi9QQy9WUzguMC9fbXVsdGlwcm9jZXNzaW5nLnZjcHJvagppbmRleCBjMmJiZWM0Li44ZjFjYWZjIDEwMDY0NAotLS0gYS9QQy9WUzguMC9fbXVsdGlwcm9jZXNzaW5nLnZjcHJvagorKysgYi9QQy9WUzguMC9fbXVsdGlwcm9jZXNzaW5nLnZjcHJvagpAQCAtNTIyLDEwICs1MjIsNiBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXG11bHRpcHJvY2Vzc2luZy5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXGNvbm5lY3Rpb24uaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KIAkJPEZpbHRlcg0KIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCkBAIC01MzUsMTggKzUzMSwxMCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3NpbmdccGlwZV9jb25uZWN0aW9uLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3Npbmdcc2VtYXBob3JlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3Npbmdcc29ja2V0X2Nvbm5lY3Rpb24uYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1x3aW4zMl9mdW5jdGlvbnMuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9QQy9WUzguMC9idWlsZF9zc2wuYmF0IGIvUEMvVlM4LjAvYnVpbGRfc3NsLmJhdAppbmRleCAzOWMxZmYwLi4zNTdiMDhiIDEwMDY0NAotLS0gYS9QQy9WUzguMC9idWlsZF9zc2wuYmF0CisrKyBiL1BDL1ZTOC4wL2J1aWxkX3NzbC5iYXQKQEAgLTIsMTAgKzIsMTAgQEAKIGlmIG5vdCBkZWZpbmVkIEhPU1RfUFlUSE9OICgKICAgaWYgJTEgRVFVIERlYnVnICgKICAgICBzZXQgSE9TVF9QWVRIT049cHl0aG9uX2QuZXhlCi0gICAgaWYgbm90IGV4aXN0IHB5dGhvbjMyX2QuZGxsIGV4aXQgMQorICAgIGlmIG5vdCBleGlzdCBweXRob24zM19kLmRsbCBleGl0IDEKICAgKSBFTFNFICgKICAgICBzZXQgSE9TVF9QWVRIT049cHl0aG9uLmV4ZQotICAgIGlmIG5vdCBleGlzdCBweXRob24zMi5kbGwgZXhpdCAxCisgICAgaWYgbm90IGV4aXN0IHB5dGhvbjMzLmRsbCBleGl0IDEKICAgKQogKQogJUhPU1RfUFlUSE9OJSBidWlsZF9zc2wucHkgJTEgJTIgJTMKZGlmZiAtLWdpdCBhL1BDL1ZTOC4wL2tpbGxfcHl0aG9uLmMgYi9QQy9WUzguMC9raWxsX3B5dGhvbi5jCmluZGV4IDZiOTE2NzguLmJiMzIzZDMgMTAwNjQ0Ci0tLSBhL1BDL1ZTOC4wL2tpbGxfcHl0aG9uLmMKKysrIGIvUEMvVlM4LjAva2lsbF9weXRob24uYwpAQCAtMTA2LDcgKzEwNiw3IEBACiAgICAgICAgIC8qCiAgICAgICAgICAqIFhYWCBUT0RPOiBpZiB3ZSByZWFsbHkgd2FudGVkIHRvIGJlIGZhbmN5LCB3ZSBjb3VsZCBjaGVjayB0aGUgCiAgICAgICAgICAqIG1vZHVsZXMgZm9yIGFsbCBwcm9jZXNzZXMgKG5vdCBqdXN0IHRoZSBweXRob25bX2RdLmV4ZSBvbmVzKQotICAgICAgICAgKiBhbmQgc2VlIGlmIGFueSBvZiBvdXIgRExMcyBhcmUgbG9hZGVkIChpLmUuIHB5dGhvbjMyW19kXS5kbGwpLAorICAgICAgICAgKiBhbmQgc2VlIGlmIGFueSBvZiBvdXIgRExMcyBhcmUgbG9hZGVkIChpLmUuIHB5dGhvbjMzW19kXS5kbGwpLAogICAgICAgICAgKiBhcyB0aGF0IHdvdWxkIGFsc28gaW5oaWJpdCBvdXIgYWJpbGl0eSB0byByZWJ1aWxkIHRoZSBzb2x1dGlvbi4KICAgICAgICAgICogTm90IHdvcnRoIGxvb3Npbmcgc2xlZXAgb3ZlciB0aG91Z2g7IGZvciBub3csIGEgc2ltcGxlIGNoZWNrIAogICAgICAgICAgKiBmb3IganVzdCB0aGUgcHl0aG9uIGV4ZWN1dGFibGUgc2hvdWxkIGJlIHN1ZmZpY2llbnQuCmRpZmYgLS1naXQgYS9QQy9WUzguMC9weXByb2plY3QudnNwcm9wcyBiL1BDL1ZTOC4wL3B5cHJvamVjdC52c3Byb3BzCmluZGV4IDJhODJlNDkuLmY4NmNkZWMgMTAwNjQ0Ci0tLSBhL1BDL1ZTOC4wL3B5cHJvamVjdC52c3Byb3BzCisrKyBiL1BDL1ZTOC4wL3B5cHJvamVjdC52c3Byb3BzCkBAIC0zOCw3ICszOCw3IEBACiAJLz4NCiAJPFVzZXJNYWNybw0KIAkJTmFtZT0iUHlEbGxOYW1lIg0KLQkJVmFsdWU9InB5dGhvbjMyIg0KKwkJVmFsdWU9InB5dGhvbjMzIg0KIAkvPg0KIAk8VXNlck1hY3JvDQogCQlOYW1lPSJQeXRob25FeGUiDQpAQCAtNTgsNyArNTgsNyBAQAogCS8+DQogCTxVc2VyTWFjcm8NCiAJCU5hbWU9Im9wZW5zc2xEaXIiDQotCQlWYWx1ZT0iJChleHRlcm5hbHNEaXIpXG9wZW5zc2wtMS4wLjBqIg0KKwkJVmFsdWU9IiQoZXh0ZXJuYWxzRGlyKVxvcGVuc3NsLTEuMC4xYyINCiAJLz4NCiAJPFVzZXJNYWNybw0KIAkJTmFtZT0idGNsdGtEaXIiDQpkaWZmIC0tZ2l0IGEvUEMvVlM4LjAvcHl0aG9uY29yZS52Y3Byb2ogYi9QQy9WUzguMC9weXRob25jb3JlLnZjcHJvagppbmRleCBlODE1NTllLi5hNzViYjlkIDEwMDY0NAotLS0gYS9QQy9WUzguMC9weXRob25jb3JlLnZjcHJvagorKysgYi9QQy9WUzguMC9weXRob25jb3JlLnZjcHJvagpAQCAtMTcwNywxMCArMTcwNyw2IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXGltcG9ydF9udC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcbXN2Y3J0bW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvUENidWlsZC9iejIudmNwcm9qIGIvUEMvVlM5LjAvX2J6Mi52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZyb20gUENidWlsZC9iejIudmNwcm9qCnJlbmFtZSB0byBQQy9WUzkuMC9fYnoyLnZjcHJvagppbmRleCBlMmIzNTNiLi43Y2ViOGM3IDEwMDY0NAotLS0gYS9QQ2J1aWxkL2J6Mi52Y3Byb2oKKysrIGIvUEMvVlM5LjAvX2J6Mi52Y3Byb2oKQEAgLTEsOCArMSw4IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCi0JTmFtZT0iYnoyIg0KKwlWZXJzaW9uPSI5LjAwIg0KKwlOYW1lPSJfYnoyIg0KIAlQcm9qZWN0R1VJRD0iezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0iDQogCVJvb3ROYW1lc3BhY2U9ImJ6MiINCiAJS2V5d29yZD0iV2luMzJQcm9qIg0KQEAgLTUyNyw3ICs1MjcsNyBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcYnoybW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfYnoybW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19jdHlwZXMudmNwcm9qIGIvUEMvVlM5LjAvX2N0eXBlcy52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA4OCUKcmVuYW1lIGZyb20gUENidWlsZC9fY3R5cGVzLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvX2N0eXBlcy52Y3Byb2oKaW5kZXggMWViOGI1Ny4uOGU1Y2JhMSAxMDA2NDQKLS0tIGEvUENidWlsZC9fY3R5cGVzLnZjcHJvagorKysgYi9QQy9WUzkuMC9fY3R5cGVzLnZjcHJvagpAQCAtNDIsNyArNDIsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTEwMyw3ICsxMDMsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTE2NCw3ICsxNjQsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTIyOCw3ICsyMjgsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTI5MSw3ICsyOTEsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTM1NSw3ICszNTUsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTQxOSw3ICs0MTksNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTQ4Myw3ICs0ODMsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTUzMSwyNyArNTMxLDI3IEBACiAJCQlOYW1lPSJIZWFkZXIgRmlsZXMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGN0eXBlcy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xjdHlwZXMuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xjdHlwZXNfZGxmY24uaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY3R5cGVzX2RsZmNuLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaV9jb21tb24uaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpX2NvbW1vbi5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaWNvbmZpZy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1xmZmljb25maWcuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1xmZml0YXJnZXQuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpdGFyZ2V0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCkBAIC01NTksMzkgKzU1OSwzOSBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXF9jdHlwZXMuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xjYWxsYmFja3MuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbGJhY2tzLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbHByb2MuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbHByb2MuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xjZmllbGQuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcY2ZpZWxkLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXG1hbGxvY19jbG9zdXJlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXG1hbGxvY19jbG9zdXJlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNccHJlcF9jaWYuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNccHJlcF9jaWYuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xzdGdkaWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXHN0Z2RpY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1x3aW4zMi5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1x3aW4zMi5jIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVidWd8eDY0Ig0KQEAgLTYyNyw3ICs2MjcsNyBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHdpbjY0LmFzbSINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcd2luNjQuYXNtIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fY3R5cGVzX3Rlc3QudmNwcm9qIGIvUEMvVlM5LjAvX2N0eXBlc190ZXN0LnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL19jdHlwZXNfdGVzdC52Y3Byb2oKcmVuYW1lIHRvIFBDL1ZTOS4wL19jdHlwZXNfdGVzdC52Y3Byb2oKaW5kZXggMGM3YWJiZS4uNzAzMzU0NiAxMDA2NDQKLS0tIGEvUENidWlsZC9fY3R5cGVzX3Rlc3QudmNwcm9qCisrKyBiL1BDL1ZTOS4wL19jdHlwZXNfdGVzdC52Y3Byb2oKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCisJVmVyc2lvbj0iOS4wMCINCiAJTmFtZT0iX2N0eXBlc190ZXN0Ig0KIAlQcm9qZWN0R1VJRD0iezlFQzcxOTBBLTI0OUYtNDE4MC1BOTAwLTU0OEZEQ0YzMDU1Rn0iDQogCVJvb3ROYW1lc3BhY2U9Il9jdHlwZXNfdGVzdCINCkBAIC01MDMsNyArNTAzLDcgQEAKIAkJCU5hbWU9IkhlYWRlciBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcX2N0eXBlc190ZXN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY3R5cGVzXF9jdHlwZXNfdGVzdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpAQCAtNTExLDcgKzUxMSw3IEBACiAJCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXF9jdHlwZXNfdGVzdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzX3Rlc3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KZGlmZiAtLWdpdCBhL1BDYnVpbGQvX2N0eXBlcy52Y3Byb2ogYi9QQy9WUzkuMC9fZGVjaW1hbC52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA2OSUKY29weSBmcm9tIFBDYnVpbGQvX2N0eXBlcy52Y3Byb2oKY29weSB0byBQQy9WUzkuMC9fZGVjaW1hbC52Y3Byb2oKaW5kZXggMWViOGI1Ny4uYjlmYWJiMCAxMDA2NDQKLS0tIGEvUENidWlsZC9fY3R5cGVzLnZjcHJvagorKysgYi9QQy9WUzkuMC9fZGVjaW1hbC52Y3Byb2oKQEAgLTIsOSArMiw5IEBACiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCiAJVmVyc2lvbj0iOS4wMCINCi0JTmFtZT0iX2N0eXBlcyINCi0JUHJvamVjdEdVSUQ9InswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9Ig0KLQlSb290TmFtZXNwYWNlPSJfY3R5cGVzIg0KKwlOYW1lPSJfZGVjaW1hbCINCisJUHJvamVjdEdVSUQ9InswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9Ig0KKwlSb290TmFtZXNwYWNlPSJfZGVjaW1hbCINCiAJS2V5d29yZD0iV2luMzJQcm9qIg0KIAlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQogCT4NCkBAIC00Miw3ICs0Miw4IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCisJCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MgL0RDT05GSUdfMzIgL0RQUFJPIC9ETUFTTSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbDsuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQpAQCAtMTAzLDcgKzEwNCw4IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YyINCisJCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MgL0RDT05GSUdfNjQgL0RNQVNNIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsOy4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWMiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCkBAIC0xNjQsNyArMTY2LDggQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjIg0KKwkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0RfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAvRENPTkZJR18zMiAvRFBQUk8gL0RNQVNNIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsOy4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWMiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCkBAIC0xNzcsNyArMTgwLDYgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUiDQogCQkJCVN1YlN5c3RlbT0iMCINCiAJCQkJQmFzZUFkZHJlc3M9IjB4MUQxQTAwMDAiDQogCQkJLz4NCkBAIC0yMjgsNyArMjMwLDggQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjIg0KKwkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0RfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAvRENPTkZJR182NCAvRE1BU00iDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWw7Li5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlYyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTI0MSw3ICsyNDQsNiBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvRVhQT1JUOkRsbEdldENsYXNzT2JqZWN0LFBSSVZBVEUgL0VYUE9SVDpEbGxDYW5VbmxvYWROb3csUFJJVkFURSINCiAJCQkJU3ViU3lzdGVtPSIwIg0KIAkJCQlCYXNlQWRkcmVzcz0iMHgxRDFBMDAwMCINCiAJCQkvPg0KQEAgLTI5MSw3ICsyOTMsOCBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIC9EQ09ORklHXzMyIC9EUFBSTyAvRE1BU00iDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWw7Li5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlYyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTMwNCw3ICszMDcsNiBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvRVhQT1JUOkRsbEdldENsYXNzT2JqZWN0LFBSSVZBVEUgL0VYUE9SVDpEbGxDYW5VbmxvYWROb3csUFJJVkFURSINCiAJCQkJU3ViU3lzdGVtPSIwIg0KIAkJCQlCYXNlQWRkcmVzcz0iMHgxRDFBMDAwMCINCiAJCQkvPg0KQEAgLTM1NSw3ICszNTcsOCBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmMiDQorCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIC9EQ09ORklHXzY0IC9ETUFTTSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbDsuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQpAQCAtMzY4LDcgKzM3MSw2IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9FWFBPUlQ6RGxsR2V0Q2xhc3NPYmplY3QsUFJJVkFURSAvRVhQT1JUOkRsbENhblVubG9hZE5vdyxQUklWQVRFIg0KIAkJCQlTdWJTeXN0ZW09IjAiDQogCQkJCUJhc2VBZGRyZXNzPSIweDFEMUEwMDAwIg0KIAkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCkBAIC00MTksNyArNDIxLDggQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjIg0KKwkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0RfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAvRENPTkZJR18zMiAvRFBQUk8gL0RNQVNNIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsOy4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWMiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCkBAIC00MzIsNyArNDM1LDYgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUiDQogCQkJCVN1YlN5c3RlbT0iMCINCiAJCQkJQmFzZUFkZHJlc3M9IjB4MUQxQTAwMDAiDQogCQkJLz4NCkBAIC00ODMsNyArNDg1LDggQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjIg0KKwkJCQlBZGRpdGlvbmFsT3B0aW9ucz0iL0RfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAvRENPTkZJR182NCAvRE1BU00iDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWw7Li5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlYyINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KQEAgLTQ5Niw3ICs0OTksNiBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvRVhQT1JUOkRsbEdldENsYXNzT2JqZWN0LFBSSVZBVEUgL0VYUE9SVDpEbGxDYW5VbmxvYWROb3csUFJJVkFURSINCiAJCQkJU3ViU3lzdGVtPSIwIg0KIAkJCQlCYXNlQWRkcmVzcz0iMHgxRDFBMDAwMCINCiAJCQkJVGFyZ2V0TWFjaGluZT0iMTciDQpAQCAtNTMxLDI3ICs1MzMsNzEgQEAKIAkJCU5hbWU9IkhlYWRlciBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcY3R5cGVzLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xiYXNlYXJpdGguaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xjdHlwZXNfZGxmY24uaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGJpdHMuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1xmZmkuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGNvbnN0YW50cy5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaV9jb21tb24uaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGNvbnZvbHV0ZS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaWNvbmZpZy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcY3J0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpdGFyZ2V0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xkaWZyYWRpeDIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcZG9jc3RyaW5ncy5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xmbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcZm91cnN0ZXAuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcbXBkZWNpbWFsLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXG51bWJlcnRoZW9yeS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xzaXhzdGVwLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHRyYW5zcG9zZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1x0eXBlYXJpdGguaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcdW1vZGFyaXRoLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHZjY29tcGF0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHZjc3RkaW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCkBAIC01NTksNzUgKzYwNSw2NyBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxfZGVjaW1hbC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGNhbGxiYWNrcy5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcYmFzZWFyaXRoLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbHByb2MuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGNvbnN0YW50cy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGNmaWVsZC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcY29udGV4dC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcY29udm9sdXRlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcbWFsbG9jX2Nsb3N1cmUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGNydC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHByZXBfY2lmLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xkaWZyYWRpeDIuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xzdGdkaWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xmbnQuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1x3aW4zMi5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcZm91cnN0ZXAuYyINCiAJCQkJPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJSZWxlYXNlfHg2NCINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQlOYW1lPSJQR0luc3RydW1lbnR8eDY0Ig0KLQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQk+DQotCQkJCQk8VG9vbA0KLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkvPg0KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCU5hbWU9IlBHVXBkYXRlfHg2NCINCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJCQkJPg0KLQkJCQkJPFRvb2wNCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQkJLz4NCi0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcd2luNjQuYXNtIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcaW8uYyINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcbWVtb3J5LmMiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXG1wZGVjaW1hbC5jIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xudW1iZXJ0aGVvcnkuYyINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcc2l4c3RlcC5jIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1x0cmFuc3Bvc2UuYyINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcdmNkaXY2NC5hc20iDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCkBAIC02NDIsOCArNjgwLDggQEAKIAkJCQkJPg0KIAkJCQkJPFRvb2wNCiAJCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkJCQlDb21tYW5kTGluZT0ibWw2NCAvbm9sb2dvIC9jIC9aaSAvRm8gJnF1b3Q7JChJbnREaXIpXHdpbjY0Lm9iaiZxdW90OyAmcXVvdDskKElucHV0UGF0aCkmcXVvdDsmI3gwRDsmI3gwQTsiDQotCQkJCQkJT3V0cHV0cz0iJChJbnREaXIpXHdpbjY0Lm9iaiINCisJCQkJCQlDb21tYW5kTGluZT0ibWw2NCAvbm9sb2dvIC9jIC9aaSAvRm8gJnF1b3Q7JChJbnREaXIpXHZjZGl2NjQub2JqJnF1b3Q7ICZxdW90OyQoSW5wdXRQYXRoKSZxdW90OyYjeDBEOyYjeDBBOyINCisJCQkJCQlPdXRwdXRzPSIkKEludERpcilcdmNkaXY2NC5vYmoiDQogCQkJCQkvPg0KIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC02NTksOCArNjk3LDggQEAKIAkJCQkJPg0KIAkJCQkJPFRvb2wNCiAJCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkJCQlDb21tYW5kTGluZT0ibWw2NCAvbm9sb2dvIC9jIC9GbyAmcXVvdDskKEludERpcilcd2luNjQub2JqJnF1b3Q7ICZxdW90OyQoSW5wdXRQYXRoKSZxdW90OyYjeDBEOyYjeDBBOyINCi0JCQkJCQlPdXRwdXRzPSIkKEludERpcilcd2luNjQub2JqIg0KKwkJCQkJCUNvbW1hbmRMaW5lPSJtbDY0IC9ub2xvZ28gL2MgL1ppIC9GbyAmcXVvdDskKEludERpcilcdmNkaXY2NC5vYmomcXVvdDsgJnF1b3Q7JChJbnB1dFBhdGgpJnF1b3Q7JiN4MEQ7JiN4MEE7Ig0KKwkJCQkJCU91dHB1dHM9IiQoSW50RGlyKVx2Y2RpdjY0Lm9iaiINCiAJCQkJCS8+DQogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAgLTY3Niw4ICs3MTQsOCBAQAogCQkJCQk+DQogCQkJCQk8VG9vbA0KIAkJCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCQkJCUNvbW1hbmRMaW5lPSJtbDY0IC9ub2xvZ28gL2MgL0ZvICZxdW90OyQoSW50RGlyKVx3aW42NC5vYmomcXVvdDsgJnF1b3Q7JChJbnB1dFBhdGgpJnF1b3Q7JiN4MEQ7JiN4MEE7Ig0KLQkJCQkJCU91dHB1dHM9IiQoSW50RGlyKVx3aW42NC5vYmoiDQorCQkJCQkJQ29tbWFuZExpbmU9Im1sNjQgL25vbG9nbyAvYyAvRm8gJnF1b3Q7JChJbnREaXIpXHZjZGl2NjQub2JqJnF1b3Q7ICZxdW90OyQoSW5wdXRQYXRoKSZxdW90OyYjeDBEOyYjeDBBOyINCisJCQkJCQlPdXRwdXRzPSIkKEludERpcilcdmNkaXY2NC5vYmoiDQogCQkJCQkvPg0KIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC02OTMsOCArNzMxLDggQEAKIAkJCQkJPg0KIAkJCQkJPFRvb2wNCiAJCQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkJCQlDb21tYW5kTGluZT0ibWw2NCAvbm9sb2dvIC9jIC9GbyAmcXVvdDskKEludERpcilcd2luNjQub2JqJnF1b3Q7ICZxdW90OyQoSW5wdXRQYXRoKSZxdW90OyYjeDBEOyYjeDBBOyINCi0JCQkJCQlPdXRwdXRzPSIkKEludERpcilcd2luNjQub2JqIg0KKwkJCQkJCUNvbW1hbmRMaW5lPSJtbDY0IC9ub2xvZ28gL2MgL0ZvICZxdW90OyQoSW50RGlyKVx2Y2RpdjY0Lm9iaiZxdW90OyAmcXVvdDskKElucHV0UGF0aCkmcXVvdDsmI3gwRDsmI3gwQTsiDQorCQkJCQkJT3V0cHV0cz0iJChJbnREaXIpXHZjZGl2NjQub2JqIg0KIAkJCQkJLz4NCiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fZWxlbWVudHRyZWUudmNwcm9qIGIvUEMvVlM5LjAvX2VsZW1lbnR0cmVlLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDg3JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL19lbGVtZW50dHJlZS52Y3Byb2oKcmVuYW1lIHRvIFBDL1ZTOS4wL19lbGVtZW50dHJlZS52Y3Byb2oKaW5kZXggM2U5NjMxZi4uZjlkNzM3NSAxMDA2NDQKLS0tIGEvUENidWlsZC9fZWxlbWVudHRyZWUudmNwcm9qCisrKyBiL1BDL1ZTOS4wL19lbGVtZW50dHJlZS52Y3Byb2oKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCisJVmVyc2lvbj0iOS4wMCINCiAJTmFtZT0iX2VsZW1lbnR0cmVlIg0KIAlQcm9qZWN0R1VJRD0iezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0iDQogCVJvb3ROYW1lc3BhY2U9Il9lbGVtZW50dHJlZSINCkBAIC00Miw3ICs0Miw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXE1vZHVsZXNcZXhwYXQiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcZXhwYXQiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1VTRV9QWUVYUEFUX0NBUEk7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQogCQkJLz4NCiAJCQk8VG9vbA0KQEAgLTEwNCw3ICsxMDQsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXGV4cGF0Ig0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iWE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtVU0VfUFlFWFBBVF9DQVBJO1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KIAkJCS8+DQogCQkJPFRvb2wNCkBAIC0xNjYsNyArMTY2LDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cTW9kdWxlc1xleHBhdCINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1xleHBhdCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlhNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCiAJCQkvPg0KIAkJCTxUb29sDQpAQCAtMjI5LDcgKzIyOSw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXE1vZHVsZXNcZXhwYXQiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcZXhwYXQiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1VTRV9QWUVYUEFUX0NBUEk7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQogCQkJLz4NCiAJCQk8VG9vbA0KQEAgLTI5MSw3ICsyOTEsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXGV4cGF0Ig0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iWE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtVU0VfUFlFWFBBVF9DQVBJO1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KIAkJCS8+DQogCQkJPFRvb2wNCkBAIC0zNTQsNyArMzU0LDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cTW9kdWxlc1xleHBhdCINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cTW9kdWxlc1xleHBhdCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlhNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCiAJCQkvPg0KIAkJCTxUb29sDQpAQCAtNDE3LDcgKzQxNyw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXE1vZHVsZXNcZXhwYXQiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXE1vZHVsZXNcZXhwYXQiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1VTRV9QWUVYUEFUX0NBUEk7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQogCQkJLz4NCiAJCQk8VG9vbA0KQEAgLTQ4MCw3ICs0ODAsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxNb2R1bGVzXGV4cGF0Ig0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iWE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtVU0VfUFlFWFBBVF9DQVBJO1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KIAkJCS8+DQogCQkJPFRvb2wNCkBAIC01MjcsNjMgKzUyNyw2MyBAQAogCQkJTmFtZT0iSGVhZGVyIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZXhwYXRcYXNjaWkuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XGFzY2lpLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGV4cGF0XGFzY2lpdGFiLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFxhc2NpaXRhYi5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHBhdFxleHBhdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRcZXhwYXQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZXhwYXRcZXhwYXRfY29uZmlnLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFxleHBhdF9jb25maWcuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZXhwYXRcZXhwYXRfZXh0ZXJuYWwuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XGV4cGF0X2V4dGVybmFsLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGV4cGF0XGlhc2NpaXRhYi5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRcaWFzY2lpdGFiLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGV4cGF0XGludGVybmFsLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFxpbnRlcm5hbC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHBhdFxsYXRpbjF0YWIuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XGxhdGluMXRhYi5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHBhdFxtYWNjb25maWcuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XG1hY2NvbmZpZy5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHBhdFxuYW1ldGFiLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFxuYW1ldGFiLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGV4cGF0XHB5ZXhwYXRucy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRccHlleHBhdG5zLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGV4cGF0XHV0Zjh0YWIuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XHV0Zjh0YWIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZXhwYXRcd2luY29uZmlnLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx3aW5jb25maWcuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XHhtbHRvay5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpAQCAtNTkxLDE5ICs1OTEsMTkgQEAKIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9lbGVtZW50dHJlZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2VsZW1lbnR0cmVlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGV4cGF0XHhtbHBhcnNlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx4bWxwYXJzZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHBhdFx4bWxyb2xlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx4bWxyb2xlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGV4cGF0XHhtbHRvay5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1sdG9rLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19oYXNobGliLnZjcHJvaiBiL1BDL1ZTOS4wL19oYXNobGliLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL19oYXNobGliLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvX2hhc2hsaWIudmNwcm9qCmluZGV4IGUwNWQ5N2UuLjc3NDE3ZWMgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvX2hhc2hsaWIudmNwcm9qCisrKyBiL1BDL1ZTOS4wL19oYXNobGliLnZjcHJvagpAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KKwlWZXJzaW9uPSI5LjAwIg0KIAlOYW1lPSJfaGFzaGxpYiINCiAJUHJvamVjdEdVSUQ9Ins0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9Ig0KIAlSb290TmFtZXNwYWNlPSJfaGFzaGxpYiINCkBAIC01MjcsNyArNTI3LDcgQEAKIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9oYXNob3BlbnNzbC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2hhc2hvcGVuc3NsLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL2J6Mi52Y3Byb2ogYi9QQy9WUzkuMC9fbHptYS52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA4MiUKY29weSBmcm9tIFBDYnVpbGQvYnoyLnZjcHJvagpjb3B5IHRvIFBDL1ZTOS4wL19sem1hLnZjcHJvagppbmRleCBlMmIzNTNiLi43YzYwMDNmIDEwMDY0NAotLS0gYS9QQ2J1aWxkL2J6Mi52Y3Byb2oKKysrIGIvUEMvVlM5LjAvX2x6bWEudmNwcm9qCkBAIC0xLDEwICsxLDEwIEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCi0JTmFtZT0iYnoyIg0KLQlQcm9qZWN0R1VJRD0iezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0iDQotCVJvb3ROYW1lc3BhY2U9ImJ6MiINCisJVmVyc2lvbj0iOS4wMCINCisJTmFtZT0iX2x6bWEiDQorCVByb2plY3RHVUlEPSJ7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fSINCisJUm9vdE5hbWVzcGFjZT0ibHptYSINCiAJS2V5d29yZD0iV2luMzJQcm9qIg0KIAlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQogCT4NCkBAIC00Miw4ICs0Miw4IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQoYnoyRGlyKSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGx6bWFEaXIpXGluY2x1ZGUiDQorCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURTtMWk1BX0FQSV9TVEFUSUMiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCkBAIC01Niw3ICs1Niw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNzAwMDAiDQorCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQobHptYURpcilcYmluX2k0ODZcbGlibHptYS5hIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQpAQCAtMTA0LDggKzEwNCw4IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQoYnoyRGlyKSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGx6bWFEaXIpXGluY2x1ZGUiDQorCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURTtMWk1BX0FQSV9TVEFUSUMiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCkBAIC0xMTgsNyArMTE4LDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE3MDAwMCINCisJCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iJChsem1hRGlyKVxiaW5feDg2LTY0XGxpYmx6bWEuYSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KQEAgLTE2Niw4ICsxNjYsOCBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGJ6MkRpcikiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChsem1hRGlyKVxpbmNsdWRlIg0KKwkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7TFpNQV9BUElfU1RBVElDIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQpAQCAtMTgwLDcgKzE4MCw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNzAwMDAiDQorCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQobHptYURpcilcYmluX2k0ODZcbGlibHptYS5hIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQpAQCAtMjI5LDggKzIyOSw4IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQoYnoyRGlyKSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGx6bWFEaXIpXGluY2x1ZGUiDQorCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURTtMWk1BX0FQSV9TVEFUSUMiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCkBAIC0yNDMsNyArMjQzLDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE3MDAwMCINCisJCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iJChsem1hRGlyKVxiaW5feDg2LTY0XGxpYmx6bWEuYSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KQEAgLTI5MSw4ICsyOTEsOCBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGJ6MkRpcikiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChsem1hRGlyKVxpbmNsdWRlIg0KKwkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7TFpNQV9BUElfU1RBVElDIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQpAQCAtMzA1LDcgKzMwNSw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNzAwMDAiDQorCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQobHptYURpcilcYmluX2k0ODZcbGlibHptYS5hIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQpAQCAtMzU0LDggKzM1NCw4IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQoYnoyRGlyKSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGx6bWFEaXIpXGluY2x1ZGUiDQorCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURTtMWk1BX0FQSV9TVEFUSUMiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCkBAIC0zNjgsNyArMzY4LDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE3MDAwMCINCisJCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iJChsem1hRGlyKVxiaW5feDg2LTY0XGxpYmx6bWEuYSINCiAJCQkJVGFyZ2V0TWFjaGluZT0iMTciDQogCQkJLz4NCiAJCQk8VG9vbA0KQEAgLTQxNyw4ICs0MTcsOCBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGJ6MkRpcikiDQotCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJChsem1hRGlyKVxpbmNsdWRlIg0KKwkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iV0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7TFpNQV9BUElfU1RBVElDIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQpAQCAtNDMxLDcgKzQzMSw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MUQxNzAwMDAiDQorCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IiQobHptYURpcilcYmluX2k0ODZcbGlibHptYS5hIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQpAQCAtNDgwLDggKzQ4MCw4IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiQoYnoyRGlyKSINCi0JCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIkKGx6bWFEaXIpXGluY2x1ZGUiDQorCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJXSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURTtMWk1BX0FQSV9TVEFUSUMiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCkBAIC00OTQsNyArNDk0LDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxRDE3MDAwMCINCisJCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iJChsem1hRGlyKVxiaW5feDg2LTY0XGxpYmx6bWEuYSINCiAJCQkJVGFyZ2V0TWFjaGluZT0iMTciDQogCQkJLz4NCiAJCQk8VG9vbA0KQEAgLTUyNyw1MSArNTI3LDcgQEAKIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGJ6Mm1vZHVsZS5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJPC9GaWx0ZXI+DQotCQk8RmlsdGVyDQotCQkJTmFtZT0iYnppcDIgMS4wLjYgSGVhZGVyIEZpbGVzIg0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9IiQoYnoyRGlyKVxiemxpYi5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChiejJEaXIpXGJ6bGliX3ByaXZhdGUuaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9ImJ6aXAyIDEuMC42IFNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIkKGJ6MkRpcilcYmxvY2tzb3J0LmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIkKGJ6MkRpcilcYnpsaWIuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9IiQoYnoyRGlyKVxjb21wcmVzcy5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChiejJEaXIpXGNyY3RhYmxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIkKGJ6MkRpcilcZGVjb21wcmVzcy5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChiejJEaXIpXGh1ZmZtYW4uYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9IiQoYnoyRGlyKVxyYW5kdGFibGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9sem1hbW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19tc2kudmNwcm9qIGIvUEMvVlM5LjAvX21zaS52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA5OSUKcmVuYW1lIGZyb20gUENidWlsZC9fbXNpLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvX21zaS52Y3Byb2oKaW5kZXggMDg0ZWZkZi4uY2IyMzBlMSAxMDA2NDQKLS0tIGEvUENidWlsZC9fbXNpLnZjcHJvagorKysgYi9QQy9WUzkuMC9fbXNpLnZjcHJvagpAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KKwlWZXJzaW9uPSI5LjAwIg0KIAlOYW1lPSJfbXNpIg0KIAlQcm9qZWN0R1VJRD0iezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30iDQogCVJvb3ROYW1lc3BhY2U9Il9tc2kiDQpAQCAtNTE5LDcgKzUxOSw3IEBACiAJCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENcX21zaS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXF9tc2kuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KZGlmZiAtLWdpdCBhL1BDYnVpbGQvX3NvY2tldC52Y3Byb2ogYi9QQy9WUzkuMC9fbXVsdGlwcm9jZXNzaW5nLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk1JQpjb3B5IGZyb20gUENidWlsZC9fc29ja2V0LnZjcHJvagpjb3B5IHRvIFBDL1ZTOS4wL19tdWx0aXByb2Nlc3NpbmcudmNwcm9qCmluZGV4IGVlNzJjMTAuLmZiM2QxZTcgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvX3NvY2tldC52Y3Byb2oKKysrIGIvUEMvVlM5LjAvX211bHRpcHJvY2Vzc2luZy52Y3Byb2oKQEAgLTEsMTAgKzEsMTAgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KLQlOYW1lPSJfc29ja2V0Ig0KLQlQcm9qZWN0R1VJRD0iezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0iDQotCVJvb3ROYW1lc3BhY2U9Il9zb2NrZXQiDQorCVZlcnNpb249IjkuMDAiDQorCU5hbWU9Il9tdWx0aXByb2Nlc3NpbmciDQorCVByb2plY3RHVUlEPSJ7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fSINCisJUm9vdE5hbWVzcGFjZT0iX211bHRpcHJvY2Vzc2luZyINCiAJS2V5d29yZD0iV2luMzJQcm9qIg0KIAlUYXJnZXRGcmFtZXdvcmtWZXJzaW9uPSIxOTY2MTMiDQogCT4NCkBAIC01MTksNyArNTE5LDcgQEAKIAkJCU5hbWU9IkhlYWRlciBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHNvY2tldG1vZHVsZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1xtdWx0aXByb2Nlc3NpbmcuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KQEAgLTUyNyw3ICs1MjcsMTEgQEAKIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHNvY2tldG1vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1xtdWx0aXByb2Nlc3NpbmcuYyINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1xzZW1hcGhvcmUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KZGlmZiAtLWdpdCBhL1BDYnVpbGQvX3NvY2tldC52Y3Byb2ogYi9QQy9WUzkuMC9fc29ja2V0LnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL19zb2NrZXQudmNwcm9qCnJlbmFtZSB0byBQQy9WUzkuMC9fc29ja2V0LnZjcHJvagppbmRleCBlZTcyYzEwLi5mZjFmNmQ0IDEwMDY0NAotLS0gYS9QQ2J1aWxkL19zb2NrZXQudmNwcm9qCisrKyBiL1BDL1ZTOS4wL19zb2NrZXQudmNwcm9qCkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQogPFZpc3VhbFN0dWRpb1Byb2plY3QNCiAJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjksMDAiDQorCVZlcnNpb249IjkuMDAiDQogCU5hbWU9Il9zb2NrZXQiDQogCVByb2plY3RHVUlEPSJ7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfSINCiAJUm9vdE5hbWVzcGFjZT0iX3NvY2tldCINCkBAIC01MTksNyArNTE5LDcgQEAKIAkJCU5hbWU9IkhlYWRlciBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHNvY2tldG1vZHVsZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcc29ja2V0bW9kdWxlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCkBAIC01MjcsNyArNTI3LDcgQEAKIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHNvY2tldG1vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcc29ja2V0bW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19zcWxpdGUzLnZjcHJvaiBiL1BDL1ZTOS4wL19zcWxpdGUzLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDkwJQpyZW5hbWUgZnJvbSBQQ2J1aWxkL19zcWxpdGUzLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvX3NxbGl0ZTMudmNwcm9qCmluZGV4IGIzMWY5YjYuLmY3MTAwZjEgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvX3NxbGl0ZTMudmNwcm9qCisrKyBiL1BDL1ZTOS4wL19zcWxpdGUzLnZjcHJvagpAQCAtNTI3LDQzICs1MjcsNDMgQEAKIAkJCU5hbWU9IkhlYWRlciBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9zcWxpdGVcY2FjaGUuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcY2FjaGUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxjb25uZWN0aW9uLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXGNvbm5lY3Rpb24uaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxjdXJzb3IuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcY3Vyc29yLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9zcWxpdGVcbWljcm9wcm90b2NvbHMuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcbWljcm9wcm90b2NvbHMuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxtb2R1bGUuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcbW9kdWxlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9zcWxpdGVccHJlcGFyZV9wcm90b2NvbC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxwcmVwYXJlX3Byb3RvY29sLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9zcWxpdGVccm93LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXHJvdy5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfc3FsaXRlXHNxbGl0ZWNvbXBhdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxzcWxpdGVjb21wYXQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxzdGF0ZW1lbnQuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcc3RhdGVtZW50LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9zcWxpdGVcdXRpbC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVx1dGlsLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCkBAIC01NzEsMzkgKzU3MSwzOSBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxjYWNoZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxjYWNoZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfc3FsaXRlXGNvbm5lY3Rpb24uYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcY29ubmVjdGlvbi5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfc3FsaXRlXGN1cnNvci5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxjdXJzb3IuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxtaWNyb3Byb3RvY29scy5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxtaWNyb3Byb3RvY29scy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfc3FsaXRlXG1vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NxbGl0ZVxtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxwcmVwYXJlX3Byb3RvY29sLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXHByZXBhcmVfcHJvdG9jb2wuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxyb3cuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVccm93LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9zcWxpdGVcc3RhdGVtZW50LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3FsaXRlXHN0YXRlbWVudC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfc3FsaXRlXHV0aWwuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9zcWxpdGVcdXRpbC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fc3NsLnZjcHJvaiBiL1BDL1ZTOS4wL19zc2wudmNwcm9qCnNpbWlsYXJpdHkgaW5kZXggOTklCnJlbmFtZSBmcm9tIFBDYnVpbGQvX3NzbC52Y3Byb2oKcmVuYW1lIHRvIFBDL1ZTOS4wL19zc2wudmNwcm9qCmluZGV4IDU3MjhjODQuLjk3YWEyOTQgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvX3NzbC52Y3Byb2oKKysrIGIvUEMvVlM5LjAvX3NzbC52Y3Byb2oKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCisJVmVyc2lvbj0iOS4wMCINCiAJTmFtZT0iX3NzbCINCiAJUHJvamVjdEdVSUQ9IntDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9Ig0KIAlSb290TmFtZXNwYWNlPSJfc3NsIg0KQEAgLTUyNyw3ICs1MjcsNyBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NzbC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NzbC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fdGVzdGNhcGkudmNwcm9qIGIvUEMvVlM5LjAvX3Rlc3RidWZmZXIudmNwcm9qCnNpbWlsYXJpdHkgaW5kZXggOTclCmNvcHkgZnJvbSBQQ2J1aWxkL190ZXN0Y2FwaS52Y3Byb2oKY29weSB0byBQQy9WUzkuMC9fdGVzdGJ1ZmZlci52Y3Byb2oKaW5kZXggNTVmMjQzZi4uMDMzNzdlMSAxMDA2NDQKLS0tIGEvUENidWlsZC9fdGVzdGNhcGkudmNwcm9qCisrKyBiL1BDL1ZTOS4wL190ZXN0YnVmZmVyLnZjcHJvagpAQCAtMSwxMCArMSwxMCBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQogPFZpc3VhbFN0dWRpb1Byb2plY3QNCiAJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjksMDAiDQotCU5hbWU9Il90ZXN0Y2FwaSINCi0JUHJvamVjdEdVSUQ9Ins2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9Ig0KLQlSb290TmFtZXNwYWNlPSJfdGVzdGNhcGkiDQorCVZlcnNpb249IjkuMDAiDQorCU5hbWU9Il90ZXN0YnVmZmVyIg0KKwlQcm9qZWN0R1VJRD0ie0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0iDQorCVJvb3ROYW1lc3BhY2U9Il90ZXN0YnVmZmVyIg0KIAlLZXl3b3JkPSJXaW4zMlByb2oiDQogCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjE5NjYxMyINCiAJPg0KQEAgLTUxMSw3ICs1MTEsNyBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3Rlc3RjYXBpbW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfdGVzdGJ1ZmZlci5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fdGVzdGNhcGkudmNwcm9qIGIvUEMvVlM5LjAvX3Rlc3RjYXBpLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL190ZXN0Y2FwaS52Y3Byb2oKcmVuYW1lIHRvIFBDL1ZTOS4wL190ZXN0Y2FwaS52Y3Byb2oKaW5kZXggNTVmMjQzZi4uNDUzMzAwYSAxMDA2NDQKLS0tIGEvUENidWlsZC9fdGVzdGNhcGkudmNwcm9qCisrKyBiL1BDL1ZTOS4wL190ZXN0Y2FwaS52Y3Byb2oKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCisJVmVyc2lvbj0iOS4wMCINCiAJTmFtZT0iX3Rlc3RjYXBpIg0KIAlQcm9qZWN0R1VJRD0iezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0iDQogCVJvb3ROYW1lc3BhY2U9Il90ZXN0Y2FwaSINCkBAIC01MTEsNyArNTExLDcgQEAKIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF90ZXN0Y2FwaW1vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3Rlc3RjYXBpbW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL190a2ludGVyLnZjcHJvaiBiL1BDL1ZTOS4wL190a2ludGVyLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL190a2ludGVyLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvX3RraW50ZXIudmNwcm9qCmluZGV4IDFjNWYwY2IuLjUxNjMzMTcgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvX3RraW50ZXIudmNwcm9qCisrKyBiL1BDL1ZTOS4wL190a2ludGVyLnZjcHJvagpAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KKwlWZXJzaW9uPSI5LjAwIg0KIAlOYW1lPSJfdGtpbnRlciINCiAJUHJvamVjdEdVSUQ9Ins0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9Ig0KIAlSb290TmFtZXNwYWNlPSJfdGtpbnRlciINCkBAIC01MjcsMTEgKzUyNywxMSBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3RraW50ZXIuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF90a2ludGVyLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHRrYXBwaW5pdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcdGthcHBpbml0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL2JkaXN0X3dpbmluc3QudmNwcm9qIGIvUEMvVlM5LjAvYmRpc3Rfd2luaW5zdC52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA3NyUKcmVuYW1lIGZyb20gUENidWlsZC9iZGlzdF93aW5pbnN0LnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvYmRpc3Rfd2luaW5zdC52Y3Byb2oKaW5kZXggNjhiMzkzMS4uYjhjYzdhZCAxMDA2NDQKLS0tIGEvUENidWlsZC9iZGlzdF93aW5pbnN0LnZjcHJvagorKysgYi9QQy9WUzkuMC9iZGlzdF93aW5pbnN0LnZjcHJvagpAQCAtMjAsNyArMjAsNyBAQAogCTxDb25maWd1cmF0aW9ucz4NCiAJCTxDb25maWd1cmF0aW9uDQogCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCi0JCQlPdXRwdXREaXJlY3Rvcnk9Ii4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZCINCisJCQlPdXRwdXREaXJlY3Rvcnk9Ii4uXC4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZCINCiAJCQlDb25maWd1cmF0aW9uVHlwZT0iMSINCiAJCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweXByb2plY3QudnNwcm9wczsuXHJlbGVhc2UudnNwcm9wcyINCiAJCQlVc2VPZk1GQz0iMCINCkBAIC00NSwxNCArNDUsMTQgQEAKIAkJCQlNa1R5cExpYkNvbXBhdGlibGU9InRydWUiDQogCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0idHJ1ZSINCiAJCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjEiDQotCQkJCVR5cGVMaWJyYXJ5TmFtZT0iLlwuLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmRcd2luaW5zdC50bGIiDQorCQkJCVR5cGVMaWJyYXJ5TmFtZT0iLlwuLlwuLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmRcd2luaW5zdC50bGIiDQogCQkJCUhlYWRlckZpbGVOYW1lPSIiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KIAkJCQlPcHRpbWl6YXRpb249IjEiDQogCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIxIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxQQ1xiZGlzdF93aW5pbnN0Oy4uXEluY2x1ZGU7Li5cTW9kdWxlc1x6bGliIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQQ1xiZGlzdF93aW5pbnN0Oy4uXC4uXEluY2x1ZGU7Li5cLi5cTW9kdWxlc1x6bGliIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEUiDQogCQkJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQogCQkJCVJ1bnRpbWVMaWJyYXJ5PSIwIg0KQEAgLTY3LDcgKzY3LDcgQEAKIAkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iTkRFQlVHIg0KIAkJCQlDdWx0dXJlPSIwIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxQQzsuLlxQQ1xiZGlzdF93aW5pbnN0Oy4uXEluY2x1ZGUiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFBDOy4uXC4uXFBDXGJkaXN0X3dpbmluc3Q7Li5cLi5cSW5jbHVkZSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCkBAIC03NSwxMSArNzUsMTEgQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCiAJCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iY29tY3RsMzIubGliIGltYWdlaGxwLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi5cbGliXGRpc3R1dGlsc1xjb21tYW5kXHdpbmluc3QtOS4wLmV4ZSINCisJCQkJT3V0cHV0RmlsZT0iLi5cLi5cbGliXGRpc3R1dGlsc1xjb21tYW5kXHdpbmluc3QtOS4wLmV4ZSINCiAJCQkJTGlua0luY3JlbWVudGFsPSIxIg0KIAkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9InRydWUiDQogCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9IkxJQkMiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LTkuMC5wZGIiDQorCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii4uXC4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LTkuMC5wZGIiDQogCQkJCVN1YlN5c3RlbT0iMiINCiAJCQkJUmFuZG9taXplZEJhc2VBZGRyZXNzPSIxIg0KIAkJCQlEYXRhRXhlY3V0aW9uUHJldmVudGlvbj0iMCINCkBAIC0xMzUsMTQgKzEzNSwxNCBAQAogCQkJCU1rVHlwTGliQ29tcGF0aWJsZT0idHJ1ZSINCiAJCQkJU3VwcHJlc3NTdGFydHVwQmFubmVyPSJ0cnVlIg0KIAkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkJVHlwZUxpYnJhcnlOYW1lPSIuXC4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LnRsYiINCisJCQkJVHlwZUxpYnJhcnlOYW1lPSIuXC4uXC4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LnRsYiINCiAJCQkJSGVhZGVyRmlsZU5hbWU9IiINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQogCQkJCU9wdGltaXphdGlvbj0iMSINCiAJCQkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXFBDXGJkaXN0X3dpbmluc3Q7Li5cSW5jbHVkZTsuLlxNb2R1bGVzXHpsaWIiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFBDXGJkaXN0X3dpbmluc3Q7Li5cLi5cSW5jbHVkZTsuLlwuLlxNb2R1bGVzXHpsaWIiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSINCiAJCQkJU3RyaW5nUG9vbGluZz0idHJ1ZSINCiAJCQkJUnVudGltZUxpYnJhcnk9IjAiDQpAQCAtMTU3LDcgKzE1Nyw3IEBACiAJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCiAJCQkJQ3VsdHVyZT0iMCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cUEM7Li5cUENcYmRpc3Rfd2luaW5zdDsuLlxJbmNsdWRlIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQQzsuLlwuLlxQQ1xiZGlzdF93aW5pbnN0Oy4uXC4uXEluY2x1ZGUiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQpAQCAtMTY1LDExICsxNjUsMTEgQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCiAJCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0iY29tY3RsMzIubGliIGltYWdlaGxwLmxpYiINCi0JCQkJT3V0cHV0RmlsZT0iLi5cbGliXGRpc3R1dGlsc1xjb21tYW5kXHdpbmluc3QtOS4wLWFtZDY0LmV4ZSINCisJCQkJT3V0cHV0RmlsZT0iLi5cLi5cbGliXGRpc3R1dGlsc1xjb21tYW5kXHdpbmluc3QtOS4wLWFtZDY0LmV4ZSINCiAJCQkJTGlua0luY3JlbWVudGFsPSIxIg0KIAkJCQlTdXBwcmVzc1N0YXJ0dXBCYW5uZXI9InRydWUiDQogCQkJCUlnbm9yZURlZmF1bHRMaWJyYXJ5TmFtZXM9IkxJQkMiDQotCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LTkuMC1hbWQ2NC5wZGIiDQorCQkJCVByb2dyYW1EYXRhYmFzZUZpbGU9Ii4uXC4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LTkuMC1hbWQ2NC5wZGIiDQogCQkJCVN1YlN5c3RlbT0iMiINCiAJCQkJUmFuZG9taXplZEJhc2VBZGRyZXNzPSIxIg0KIAkJCQlEYXRhRXhlY3V0aW9uUHJldmVudGlvbj0iMCINCkBAIC0yMDYsMzggKzIwNiwzOCBAQAogCQkJRmlsdGVyPSJjcHA7YztjeHg7cmM7ZGVmO3I7b2RsO2lkbDtocGo7YmF0Ig0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXGJkaXN0X3dpbmluc3RcZXh0cmFjdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXGJkaXN0X3dpbmluc3RcZXh0cmFjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENcYmRpc3Rfd2luaW5zdFxpbnN0YWxsLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcYmRpc3Rfd2luaW5zdFxpbnN0YWxsLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbHRlcg0KIAkJCQlOYW1lPSJ6bGliIg0KIAkJCQk+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlxhZGxlcjMyLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxhZGxlcjMyLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXGNyYzMyLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxjcmMzMi5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlxpbmZmYXN0LmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZmYXN0LmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXGluZmxhdGUuYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGluZmxhdGUuYyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHpsaWJcaW5mdHJlZXMuYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGluZnRyZWVzLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXHp1dGlsLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlx6dXRpbC5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJPC9GaWx0ZXI+DQpAQCAtMjQ3LDcgKzI0Nyw3IEBACiAJCQlGaWx0ZXI9Img7aHBwO2h4eDtobTtpbmwiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENcYmRpc3Rfd2luaW5zdFxhcmNoaXZlLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcYmRpc3Rfd2luaW5zdFxhcmNoaXZlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCkBAIC0yNTYsMTEgKzI1NiwxMSBAQAogCQkJRmlsdGVyPSJpY287Y3VyO2JtcDtkbGc7cmMyO3JjdDtiaW47cmdzO2dpZjtqcGc7anBlZztqcGUiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENcYmRpc3Rfd2luaW5zdFxpbnN0YWxsLnJjIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXGJkaXN0X3dpbmluc3RcaW5zdGFsbC5yYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXGJkaXN0X3dpbmluc3RcUHl0aG9uUG93ZXJlZC5ibXAiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcYmRpc3Rfd2luaW5zdFxQeXRob25Qb3dlcmVkLmJtcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KZGlmZiAtLWdpdCBhL1BDYnVpbGQvZGVidWcudnNwcm9wcyBiL1BDL1ZTOS4wL2RlYnVnLnZzcHJvcHMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIFBDYnVpbGQvZGVidWcudnNwcm9wcwpyZW5hbWUgdG8gUEMvVlM5LjAvZGVidWcudnNwcm9wcwpkaWZmIC0tZ2l0IGEvUEMvVlM5LjAva2lsbF9weXRob24uYyBiL1BDL1ZTOS4wL2tpbGxfcHl0aG9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmIzMjNkMwotLS0gL2Rldi9udWxsCisrKyBiL1BDL1ZTOS4wL2tpbGxfcHl0aG9uLmMKQEAgLTAsMCArMSwxNzggQEAKKy8qCisgKiBIZWxwZXIgcHJvZ3JhbSBmb3Iga2lsbGluZyBsaW5nZXJpbmcgcHl0aG9uW19kXS5leGUgcHJvY2Vzc2VzIGJlZm9yZQorICogYnVpbGRpbmcsIHRodXMgYXR0ZW1wdGluZyB0byBhdm9pZCBidWlsZCBmYWlsdXJlcyBkdWUgdG8gZmlsZXMgYmVpbmcKKyAqIGxvY2tlZC4KKyAqLworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHdjaGFyLmg+CisjaW5jbHVkZSA8dGxoZWxwMzIuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorCisjcHJhZ21hIGNvbW1lbnQobGliLCAicHNhcGkiKQorCisjaWZkZWYgX0RFQlVHCisjZGVmaW5lIFBZVEhPTl9FWEUgICAgICAgICAgKEwicHl0aG9uX2QuZXhlIikKKyNkZWZpbmUgUFlUSE9OX0VYRV9MRU4gICAgICAoMTIpCisjZGVmaW5lIEtJTExfUFlUSE9OX0VYRSAgICAgKEwia2lsbF9weXRob25fZC5leGUiKQorI2RlZmluZSBLSUxMX1BZVEhPTl9FWEVfTEVOICgxNykKKyNlbHNlCisjZGVmaW5lIFBZVEhPTl9FWEUgICAgICAgICAgKEwicHl0aG9uLmV4ZSIpCisjZGVmaW5lIFBZVEhPTl9FWEVfTEVOICAgICAgKDEwKQorI2RlZmluZSBLSUxMX1BZVEhPTl9FWEUgICAgIChMImtpbGxfcHl0aG9uLmV4ZSIpCisjZGVmaW5lIEtJTExfUFlUSE9OX0VYRV9MRU4gKDE1KQorI2VuZGlmCisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisgICAgSEFORExFICAgaHAsIGhzcCwgaHNtOyAvKiBwcm9jZXNzLCBzbmFwc2hvdCBwcm9jZXNzZXMsIHNuYXBzaG90IG1vZHVsZXMgKi8KKyAgICBEV09SRCAgICBkYWMsIG91cl9waWQ7CisgICAgc2l6ZV90ICAgbGVuOworICAgIHdjaGFyX3QgIHBhdGhbTUFYX1BBVEgrMV07CisKKyAgICBNT0RVTEVFTlRSWTMyVyAgbWU7CisgICAgUFJPQ0VTU0VOVFJZMzJXIHBlOworCisgICAgbWUuZHdTaXplID0gc2l6ZW9mKE1PRFVMRUVOVFJZMzJXKTsKKyAgICBwZS5kd1NpemUgPSBzaXplb2YoUFJPQ0VTU0VOVFJZMzJXKTsKKworICAgIG1lbXNldChwYXRoLCAwLCBNQVhfUEFUSCsxKTsKKworICAgIG91cl9waWQgPSBHZXRDdXJyZW50UHJvY2Vzc0lkKCk7CisKKyAgICBoc20gPSBDcmVhdGVUb29saGVscDMyU25hcHNob3QoVEgzMkNTX1NOQVBNT0RVTEUsIG91cl9waWQpOworICAgIGlmIChoc20gPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKKyAgICAgICAgcHJpbnRmKCJDcmVhdGVUb29saGVscDMyU25hcHNob3RbMV0gZmFpbGVkOiAlZFxuIiwgR2V0TGFzdEVycm9yKCkpOworICAgICAgICByZXR1cm4gMTsKKyAgICB9CisKKyAgICBpZiAoIU1vZHVsZTMyRmlyc3RXKGhzbSwgJm1lKSkgeworICAgICAgICBwcmludGYoIk1vZHVsZTMyRmlyc3RXWzFdIGZhaWxlZDogJWRcbiIsIEdldExhc3RFcnJvcigpKTsKKyAgICAgICAgQ2xvc2VIYW5kbGUoaHNtKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorCisgICAgLyoKKyAgICAgKiBFbnVtZXJhdGUgb3ZlciB0aGUgbW9kdWxlcyBmb3IgdGhlIGN1cnJlbnQgcHJvY2VzcyBpbiBvcmRlciB0byBmaW5kCisgICAgICoga2lsbF9wcm9jZXNzW19kXS5leGUsIHRoZW4gdGFrZSBhIG5vdGUgb2YgdGhlIGRpcmVjdG9yeSBpdCBsaXZlcyBpbi4KKyAgICAgKi8KKyAgICBkbyB7CisgICAgICAgIGlmIChfd2NzbmljbXAobWUuc3pNb2R1bGUsIEtJTExfUFlUSE9OX0VYRSwgS0lMTF9QWVRIT05fRVhFX0xFTikpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBsZW4gPSB3Y3NubGVuX3MobWUuc3pFeGVQYXRoLCBNQVhfUEFUSCkgLSBLSUxMX1BZVEhPTl9FWEVfTEVOOworICAgICAgICB3Y3NuY3B5X3MocGF0aCwgTUFYX1BBVEgrMSwgbWUuc3pFeGVQYXRoLCBsZW4pOyAKKworICAgICAgICBicmVhazsKKworICAgIH0gd2hpbGUgKE1vZHVsZTMyTmV4dFcoaHNtLCAmbWUpKTsKKworICAgIENsb3NlSGFuZGxlKGhzbSk7CisKKyAgICBpZiAocGF0aCA9PSBOVUxMKSB7CisgICAgICAgIHByaW50ZigiZmFpbGVkIHRvIGRpc2Nlcm4gZGlyZWN0b3J5IG9mIHJ1bm5pbmcgcHJvY2Vzc1xuIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIC8qCisgICAgICogVGFrZSBhIHNuYXBzaG90IG9mIHN5c3RlbSBwcm9jZXNzZXMuICBFbnVtZXJhdGUgb3ZlciB0aGUgc25hcHNob3QsCisgICAgICogbG9va2luZyBmb3IgcHl0aG9uIHByb2Nlc3Nlcy4gIFdoZW4gd2UgZmluZCBvbmUsIHZlcmlmeSBpdCBsaXZlcworICAgICAqIGluIHRoZSBzYW1lIGRpcmVjdG9yeSB3ZSBsaXZlIGluLiAgSWYgaXQgZG9lcywga2lsbCBpdC4gIElmIHdlJ3JlCisgICAgICogdW5hYmxlIHRvIGtpbGwgaXQsIHRyZWF0IHRoaXMgYXMgYSBmYXRhbCBlcnJvciBhbmQgcmV0dXJuIDEuCisgICAgICogCisgICAgICogVGhlIHJhdGlvbmFsZSBiZWhpbmQgdGhpcyBpcyB0aGF0IHdlJ3JlIGNhbGxlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIAorICAgICAqIGJ1aWxkIHByb2Nlc3Mgb24gdGhlIGJhc2lzIHRoYXQgd2UnbGwgdGFrZSBjYXJlIG9mIGtpbGxpbmcgYW55CisgICAgICogcnVubmluZyBpbnN0YW5jZXMsIHN1Y2ggdGhhdCB0aGUgYnVpbGQgd29uJ3QgZW5jb3VudGVyIHBlcm1pc3Npb24KKyAgICAgKiBkZW5pZWQgZXJyb3JzIGR1cmluZyBsaW5raW5nLiBJZiB3ZSBjYW4ndCBraWxsIG9uZSBvZiB0aGUgcHJvY2Vzc2VzLAorICAgICAqIHdlIGNhbid0IHByb3ZpZGUgdGhpcyBhc3N1cmFuY2UsIGFuZCB0aGUgYnVpbGQgc2hvdWxkbid0IHN0YXJ0LgorICAgICAqLworCisgICAgaHNwID0gQ3JlYXRlVG9vbGhlbHAzMlNuYXBzaG90KFRIMzJDU19TTkFQUFJPQ0VTUywgMCk7CisgICAgaWYgKGhzcCA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkgeworICAgICAgICBwcmludGYoIkNyZWF0ZVRvb2xoZWxwMzJTbmFwc2hvdFsyXSBmYWlsZWQ6ICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGlmICghUHJvY2VzczMyRmlyc3RXKGhzcCwgJnBlKSkgeworICAgICAgICBwcmludGYoIlByb2Nlc3MzMkZpcnN0VyBmYWlsZWQ6ICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAgICAgIENsb3NlSGFuZGxlKGhzcCk7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKworICAgIGRhYyA9IFBST0NFU1NfUVVFUllfSU5GT1JNQVRJT04gfCBQUk9DRVNTX1ZNX1JFQUQgfCBQUk9DRVNTX1RFUk1JTkFURTsKKyAgICBkbyB7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogWFhYIFRPRE86IGlmIHdlIHJlYWxseSB3YW50ZWQgdG8gYmUgZmFuY3ksIHdlIGNvdWxkIGNoZWNrIHRoZSAKKyAgICAgICAgICogbW9kdWxlcyBmb3IgYWxsIHByb2Nlc3NlcyAobm90IGp1c3QgdGhlIHB5dGhvbltfZF0uZXhlIG9uZXMpCisgICAgICAgICAqIGFuZCBzZWUgaWYgYW55IG9mIG91ciBETExzIGFyZSBsb2FkZWQgKGkuZS4gcHl0aG9uMzNbX2RdLmRsbCksCisgICAgICAgICAqIGFzIHRoYXQgd291bGQgYWxzbyBpbmhpYml0IG91ciBhYmlsaXR5IHRvIHJlYnVpbGQgdGhlIHNvbHV0aW9uLgorICAgICAgICAgKiBOb3Qgd29ydGggbG9vc2luZyBzbGVlcCBvdmVyIHRob3VnaDsgZm9yIG5vdywgYSBzaW1wbGUgY2hlY2sgCisgICAgICAgICAqIGZvciBqdXN0IHRoZSBweXRob24gZXhlY3V0YWJsZSBzaG91bGQgYmUgc3VmZmljaWVudC4KKyAgICAgICAgICovCisKKyAgICAgICAgaWYgKF93Y3NuaWNtcChwZS5zekV4ZUZpbGUsIFBZVEhPTl9FWEUsIFBZVEhPTl9FWEVfTEVOKSkKKyAgICAgICAgICAgIC8qIFRoaXMgaXNuJ3QgYSBweXRob24gcHJvY2Vzcy4gKi8KKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8qIEl0J3MgYSBweXRob24gcHJvY2Vzcywgc28gZmlndXJlIG91dCB3aGljaCBkaXJlY3RvcnkgaXQncyBpbi4uLiAqLworICAgICAgICBoc20gPSBDcmVhdGVUb29saGVscDMyU25hcHNob3QoVEgzMkNTX1NOQVBNT0RVTEUsIHBlLnRoMzJQcm9jZXNzSUQpOworICAgICAgICBpZiAoaHNtID09IElOVkFMSURfSEFORExFX1ZBTFVFKQorICAgICAgICAgICAgLyogCisgICAgICAgICAgICAgKiBJZiBvdXIgbW9kdWxlIHNuYXBzaG90IGZhaWxzICh3aGljaCB3aWxsIGhhcHBlbiBpZiB3ZSBkb24ndCBvd24KKyAgICAgICAgICAgICAqIHRoZSBwcm9jZXNzKSwganVzdCBpZ25vcmUgaXQgYW5kIGNvbnRpbnVlLiAgKEl0IHNlZW1zIGRpZmZlcmVudAorICAgICAgICAgICAgICogdmVyc2lvbnMgb2YgV2luZG93cyByZXR1cm4gZGlmZmVyZW50IHZhbHVlcyBmb3IgR2V0TGFzdEVycm9yKCkKKyAgICAgICAgICAgICAqIGluIHRoaXMgc2l0dWF0aW9uOyBpdCdzIGVhc2llciB0byBqdXN0IGlnbm9yZSBpdCBhbmQgbW92ZSBvbiB2cy4KKyAgICAgICAgICAgICAqIHN0b3BwaW5nIHRoZSBidWlsZCBmb3Igd2hhdCBjb3VsZCBiZSBhIGZhbHNlIHBvc2l0aXZlLikKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmICghTW9kdWxlMzJGaXJzdFcoaHNtLCAmbWUpKSB7CisgICAgICAgICAgICBwcmludGYoIk1vZHVsZTMyRmlyc3RXWzJdIGZhaWxlZDogJWRcbiIsIEdldExhc3RFcnJvcigpKTsKKyAgICAgICAgICAgIENsb3NlSGFuZGxlKGhzcCk7CisgICAgICAgICAgICBDbG9zZUhhbmRsZShoc20pOworICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKworICAgICAgICBkbyB7CisgICAgICAgICAgICBpZiAoX3djc25pY21wKG1lLnN6TW9kdWxlLCBQWVRIT05fRVhFLCBQWVRIT05fRVhFX0xFTikpCisgICAgICAgICAgICAgICAgLyogV3JvbmcgbW9kdWxlLCB3ZSdyZSBsb29raW5nIGZvciBweXRob25bX2RdLmV4ZS4uLiAqLworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoX3djc25pY21wKHBhdGgsIG1lLnN6RXhlUGF0aCwgbGVuKSkKKyAgICAgICAgICAgICAgICAvKiBQcm9jZXNzIGRvZXNuJ3QgbGl2ZSBpbiBvdXIgZGlyZWN0b3J5LiAqLworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAvKiBQeXRob24gcHJvY2VzcyByZXNpZGluZyBpbiB0aGUgcmlnaHQgZGlyZWN0b3J5LCBraWxsIGl0ISAgKi8KKyAgICAgICAgICAgIGhwID0gT3BlblByb2Nlc3MoZGFjLCBGQUxTRSwgcGUudGgzMlByb2Nlc3NJRCk7CisgICAgICAgICAgICBpZiAoIWhwKSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJPcGVuUHJvY2VzcyBmYWlsZWQ6ICVkXG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAgICAgICAgICAgICAgQ2xvc2VIYW5kbGUoaHNwKTsKKyAgICAgICAgICAgICAgICBDbG9zZUhhbmRsZShoc20pOworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIVRlcm1pbmF0ZVByb2Nlc3MoaHAsIDEpKSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJUZXJtaW5hdGVQcm9jZXNzIGZhaWxlZDogJWRcbiIsIEdldExhc3RFcnJvcigpKTsKKyAgICAgICAgICAgICAgICBDbG9zZUhhbmRsZShoc3ApOworICAgICAgICAgICAgICAgIENsb3NlSGFuZGxlKGhzbSk7CisgICAgICAgICAgICAgICAgQ2xvc2VIYW5kbGUoaHApOworICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBDbG9zZUhhbmRsZShocCk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICB9IHdoaWxlIChNb2R1bGUzMk5leHRXKGhzbSwgJm1lKSk7CisKKyAgICAgICAgQ2xvc2VIYW5kbGUoaHNtKTsKKworICAgIH0gd2hpbGUgKFByb2Nlc3MzMk5leHRXKGhzcCwgJnBlKSk7CisKKyAgICBDbG9zZUhhbmRsZShoc3ApOworCisgICAgcmV0dXJuIDA7Cit9CisKKy8qIHZpOiBzZXQgdHM9OCBzdz00IHN0cz00IGV4cGFuZHRhYiAqLwpkaWZmIC0tZ2l0IGEvUENidWlsZC9raWxsX3B5dGhvbi52Y3Byb2ogYi9QQy9WUzkuMC9raWxsX3B5dGhvbi52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIFBDYnVpbGQva2lsbF9weXRob24udmNwcm9qCnJlbmFtZSB0byBQQy9WUzkuMC9raWxsX3B5dGhvbi52Y3Byb2oKZGlmZiAtLWdpdCBhL1BDL1ZTOS4wL21ha2VfYnVpbGRpbmZvLmMgYi9QQy9WUzkuMC9tYWtlX2J1aWxkaW5mby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiNGE2NGEKLS0tIC9kZXYvbnVsbAorKysgYi9QQy9WUzkuMC9tYWtlX2J1aWxkaW5mby5jCkBAIC0wLDAgKzEsMTk1IEBACisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxpby5oPgorCisjZGVmaW5lIENNRF9TSVpFIDUwMAorCisvKiBUaGlzIGZpbGUgY3JlYXRlcyB0aGUgZ2V0YnVpbGRpbmZvLm8gb2JqZWN0LCBieSBmaXJzdAorICAgaW52b2tpbmcgc3Vid2NyZXYuZXhlIChpZiBmb3VuZCksIGFuZCB0aGVuIGludm9raW5nIGNsLmV4ZS4KKyAgIEFzIGEgc2lkZSBlZmZlY3QsIGl0IG1pZ2h0IGdlbmVyYXRlIFBDQnVpbGRcZ2V0YnVpbGRpbmZvMi5jCisgICBhbHNvLiBJZiB0aGlzIGlzbid0IGEgc3VidmVyc2lvbiBjaGVja291dCwgb3Igc3Vid2NyZXYgaXNuJ3QKKyAgIGZvdW5kLCBpdCBjb21waWxlcyAuLlxcLi5cXE1vZHVsZXNcXGdldGJ1aWxkaW5mby5jIGluc3RlYWQuCisKKyAgIEN1cnJlbnRseSwgc3Vid2NyZXYuZXhlIGlzIGZvdW5kIGZyb20gdGhlIHJlZ2lzdHJ5IGVudHJpZXMKKyAgIG9mIFRvcnRvaXNlU1ZOLgorCisgICBObyBhdHRlbXB0IGlzIG1hZGUgdG8gcGxhY2UgZ2V0YnVpbGRpbmZvLm8gaW50byB0aGUgcHJvcGVyCisgICBiaW5hcnkgZGlyZWN0b3J5LiBUaGlzIGlzbid0IG5lY2Vzc2FyeSwgYXMgdGhpcyB0b29sIGlzCisgICBpbnZva2VkIGFzIGEgcHJlLWxpbmsgc3RlcCBmb3IgcHl0aG9uY29yZSwgc28gdGhhdCBvdmVyd3JpdGVzCisgICBhbnkgcHJldmlvdXMgZ2V0YnVpbGRpbmZvLm8uCisKKyAgIEhvd2V2ZXIsIGlmIGEgc2Vjb25kIGFyZ3VtZW50IGlzIHByb3ZpZGVkLCB0aGlzIHdpbGwgYmUgdXNlZAorICAgYXMgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHdoZXJlIGFueSBnZXRidWlsZGluZm8yLmMgYW5kCisgICBnZXRidWlsZGluZm8ubyBmaWxlcyBhcmUgcHV0LiAgVGhpcyBpcyB1c2VmdWwgaWYgbXVsdGlwbGUKKyAgIGNvbmZpZ3VyYXRpb25zIGFyZSBiZWluZyBidWlsdCBpbiBwYXJhbGxlbCwgdG8gYXZvaWQgdGhlbQorICAgdHJhbXBsaW5nIGVhY2ggb3RoZXIncyBmaWxlcy4KKworKi8KKworaW50IG1ha2VfYnVpbGRpbmZvMihjb25zdCBjaGFyICp0bXBwYXRoKQoreworICAgIHN0cnVjdCBfc3RhdCBzdDsKKyAgICBIS0VZIGhUb3J0b2lzZTsKKyAgICBjaGFyIGNvbW1hbmRbQ01EX1NJWkUrMV07CisgICAgRFdPUkQgdHlwZSwgc2l6ZTsKKyAgICBpZiAoX3N0YXQoIi5zdm4iLCAmc3QpIDwgMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgLyogQWxsb3cgc3VwcHJlc3Npb24gb2Ygc3Vid2NyZXYuZXhlIGludm9jYXRpb24gaWYgYSBub19zdWJ3Y3JldiBmaWxlIGlzIHByZXNlbnQuICovCisgICAgaWYgKF9zdGF0KCJub19zdWJ3Y3JldiIsICZzdCkgPT0gMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKFJlZ09wZW5LZXkoSEtFWV9MT0NBTF9NQUNISU5FLCAiU29mdHdhcmVcXFRvcnRvaXNlU1ZOIiwgJmhUb3J0b2lzZSkgIT0gRVJST1JfU1VDQ0VTUyAmJgorICAgICAgICBSZWdPcGVuS2V5KEhLRVlfQ1VSUkVOVF9VU0VSLCAiU29mdHdhcmVcXFRvcnRvaXNlU1ZOIiwgJmhUb3J0b2lzZSkgIT0gRVJST1JfU1VDQ0VTUykKKyAgICAgICAgLyogVG9ydG9pc2Ugbm90IGluc3RhbGxlZCAqLworICAgICAgICByZXR1cm4gMDsKKyAgICBjb21tYW5kWzBdID0gJyInOyAgLyogcXVvdGUgdGhlIHBhdGggdG8gdGhlIGV4ZWN1dGFibGUgKi8KKyAgICBzaXplID0gc2l6ZW9mKGNvbW1hbmQpIC0gMTsKKyAgICBpZiAoUmVnUXVlcnlWYWx1ZUV4KGhUb3J0b2lzZSwgIkRpcmVjdG9yeSIsIDAsICZ0eXBlLCBjb21tYW5kKzEsICZzaXplKSAhPSBFUlJPUl9TVUNDRVNTIHx8CisgICAgICAgIHR5cGUgIT0gUkVHX1NaKQorICAgICAgICAvKiBSZWdpc3RyeSBjb3JydXB0ZWQgKi8KKyAgICAgICAgcmV0dXJuIDA7CisgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICJiaW5cXHN1YndjcmV2LmV4ZSIpOworICAgIGlmIChfc3RhdChjb21tYW5kKzEsICZzdCkgPCAwKQorICAgICAgICAvKiBzdWJ3Y3Jldi5leGUgbm90IHBhcnQgb2YgdGhlIHJlbGVhc2UgKi8KKyAgICAgICAgcmV0dXJuIDA7CisgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICJcIiAuLlxcLi4gLi5cXC4uXFxNb2R1bGVzXFxnZXRidWlsZGluZm8uYyBcIiIpOworICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCB0bXBwYXRoKTsgLyogcXVvdGVkIHRtcHBhdGggKi8KKyAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgImdldGJ1aWxkaW5mbzIuY1wiIik7CisKKyAgICBwdXRzKGNvbW1hbmQpOyBmZmx1c2goc3Rkb3V0KTsKKyAgICBpZiAoc3lzdGVtKGNvbW1hbmQpIDwgMCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7Cit9CisKK2NvbnN0IGNoYXIgREVMSU1TW10gPSB7ICIgXG4iIH07CisKK2ludCBnZXRfbWVyY3VyaWFsX2luZm8oY2hhciAqIGhnYnJhbmNoLCBjaGFyICogaGd0YWcsIGNoYXIgKiBoZ3JldiwgaW50IHNpemUpCit7CisgICAgaW50IHJlc3VsdCA9IDA7CisgICAgY2hhciBmaWxlbmFtZVtDTURfU0laRV07CisgICAgY2hhciBjbWRsaW5lW0NNRF9TSVpFXTsKKworICAgIHN0cmNweV9zKGZpbGVuYW1lLCBDTURfU0laRSwgInRtcFhYWFhYWCIpOworICAgIGlmIChfbWt0ZW1wX3MoZmlsZW5hbWUsIENNRF9TSVpFKSA9PSAwKSB7CisgICAgICAgIGludCByYzsKKworICAgICAgICBzdHJjcHlfcyhjbWRsaW5lLCBDTURfU0laRSwgImhnIGlkIC1iaXQgPiAiKTsKKyAgICAgICAgc3RyY2F0X3MoY21kbGluZSwgQ01EX1NJWkUsIGZpbGVuYW1lKTsKKyAgICAgICAgcmMgPSBzeXN0ZW0oY21kbGluZSk7CisgICAgICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgICAgICBGSUxFICogZnA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChmb3Blbl9zKCZmcCwgZmlsZW5hbWUsICJyIikgPT0gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgKiBjcCA9IGZnZXRzKGNtZGxpbmUsIENNRF9TSVpFLCBmcCk7CisKKyAgICAgICAgICAgICAgICBpZiAoY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciAqIGNvbnRleHQgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICBjaGFyICogdHAgPSBzdHJ0b2tfcyhjcCwgREVMSU1TLCAmY29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0cCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RyY3B5X3MoaGdyZXYsIHNpemUsIHRwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRwID0gc3RydG9rX3MoTlVMTCwgREVMSU1TLCAmY29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJjcHlfcyhoZ2JyYW5jaCwgc2l6ZSwgdHApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRwID0gc3RydG9rX3MoTlVMTCwgREVMSU1TLCAmY29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNweV9zKGhndGFnLCBzaXplLCB0cCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZjbG9zZShmcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgX3VubGluayhmaWxlbmFtZSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKmFyZ3ZbXSkKK3sKKyAgICBjaGFyIGNvbW1hbmRbQ01EX1NJWkVdID0gImNsLmV4ZSAtYyAtRF9XSU4zMiAtRFVTRV9ETF9FWFBPUlQgLURfV0lORE9XUyAtRFdJTjMyIC1EX1dJTkRMTCAiOworICAgIGNoYXIgdG1wcGF0aFtDTURfU0laRV0gPSAiIjsKKyAgICBpbnQgZG9fdW5saW5rLCByZXN1bHQ7CisgICAgY2hhciAqdG1wZGlyID0gTlVMTDsKKyAgICBpZiAoYXJnYyA8PSAyIHx8IGFyZ2MgPiAzKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAibWFrZV9idWlsZGluZm8gJChDb25maWd1cmF0aW9uTmFtZSkgW3RtcGRpcl1cbiIpOworICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworICAgIH0KKyAgICBpZiAoc3RyY21wKGFyZ3ZbMV0sICJSZWxlYXNlIikgPT0gMCkgeworICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIi1NRCAiKTsKKyAgICB9CisgICAgZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJEZWJ1ZyIpID09IDApIHsKKyAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICItRF9ERUJVRyAtTURkICIpOworICAgIH0KKyAgICBlbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgIlJlbGVhc2VJdGFuaXVtIikgPT0gMCkgeworICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIi1NRCAvVVNFQ0w6TVNfSVRBTklVTSAiKTsKKyAgICB9CisgICAgZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJSZWxlYXNlQU1ENjQiKSA9PSAwKSB7CisgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCAiLU1EICIpOworICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIi1NRCAvVVNFQ0w6TVNfT1BURVJPTiAiKTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAidW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbiAlc1xuIiwgYXJndlsxXSk7CisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisgICAgfQorICAgIGlmIChhcmdjID4gMikgeworICAgICAgICB0bXBkaXIgPSBhcmd2WzJdOworICAgICAgICBzdHJjYXRfcyh0bXBwYXRoLCBfY291bnRvZih0bXBwYXRoKSwgdG1wZGlyKTsKKyAgICAgICAgLyogSGFjayBmaXggZm9yIGJhZCBjb21tYW5kIGxpbmU6ICBJZiB0aGUgY29tbWFuZCBpcyBpc3N1ZWQgbGlrZSB0aGlzOgorICAgICAgICAgKiAkKFNvbHV0aW9uRGlyKW1ha2VfYnVpbGRpbmZvLmV4ZSIgRGVidWcgIiQoSW50RGlyKSIKKyAgICAgICAgICogd2Ugd2lsbCBnZXQgYSB0cmFpbGluZyBxdW90ZSBiZWNhdXNlIEludERpciBlbmRzIHdpdGggYSBiYWNrc2xhc2ggdGhhdCB0aGVuCisgICAgICAgICAqIGVzY2FwZXMgdGhlIGZpbmFsICIuICBUbyBzaW1wbGlmeSB0aGUgbGlmZSBmb3IgZGV2ZWxvcGVycywgY2F0Y2ggdGhhdCBwcm9ibGVtCisgICAgICAgICAqIGhlcmUgYnkgY3V0dGluZyBpdCBvZmYuCisgICAgICAgICAqIFRoZSBwcm9wZXIgY29tbWFuZCBsaW5lLCBidHcgaXM6CisgICAgICAgICAqICQoU29sdXRpb25EaXIpbWFrZV9idWlsZGluZm8uZXhlIiBEZWJ1ZyAiJChJbnREaXIpXCIKKyAgICAgICAgICogSG9vcmF5IGZvciBjb21tYW5kIGxpbmUgcGFyc2luZyBvbiB3aW5kb3dzLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKHN0cmxlbih0bXBwYXRoKSA+IDAgJiYgdG1wcGF0aFtzdHJsZW4odG1wcGF0aCktMV0gPT0gJyInKQorICAgICAgICAgICAgdG1wcGF0aFtzdHJsZW4odG1wcGF0aCktMV0gPSAnXDAnOworICAgICAgICBzdHJjYXRfcyh0bXBwYXRoLCBfY291bnRvZih0bXBwYXRoKSwgIlxcIik7CisgICAgfQorCisgICAgaWYgKChkb191bmxpbmsgPSBtYWtlX2J1aWxkaW5mbzIodG1wcGF0aCkpKSB7CisgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCAiXCIiKTsKKyAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsIHRtcHBhdGgpOworICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgImdldGJ1aWxkaW5mbzIuY1wiIC1EU1VCV0NSRVYgIik7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBjaGFyIGhndGFnW0NNRF9TSVpFXTsKKyAgICAgICAgY2hhciBoZ2JyYW5jaFtDTURfU0laRV07CisgICAgICAgIGNoYXIgaGdyZXZbQ01EX1NJWkVdOworCisgICAgICAgIGlmIChnZXRfbWVyY3VyaWFsX2luZm8oaGdicmFuY2gsIGhndGFnLCBoZ3JldiwgQ01EX1NJWkUpKSB7CisgICAgICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIi1ESEdCUkFOQ0g9XFxcIiIpOworICAgICAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsIGhnYnJhbmNoKTsKKyAgICAgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCAiXFxcIiIpOworCisgICAgICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIiAtREhHVEFHPVxcXCIiKTsKKyAgICAgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCBoZ3RhZyk7CisgICAgICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIlxcXCIiKTsKKworICAgICAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICIgLURIR1ZFUlNJT049XFxcIiIpOworICAgICAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsIGhncmV2KTsKKyAgICAgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCAiXFxcIiAiKTsKKyAgICAgICAgfQorICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIi4uXFwuLlxcTW9kdWxlc1xcZ2V0YnVpbGRpbmZvLmMiKTsKKyAgICB9CisgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICIgLUZvXCIiKTsKKyAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgdG1wcGF0aCk7CisgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICJnZXRidWlsZGluZm8ub1wiIC1JLi5cXC4uXFxJbmNsdWRlIC1JLi5cXC4uXFxQQyIpOworICAgIHB1dHMoY29tbWFuZCk7IGZmbHVzaChzdGRvdXQpOworICAgIHJlc3VsdCA9IHN5c3RlbShjb21tYW5kKTsKKyAgICBpZiAoZG9fdW5saW5rKSB7CisgICAgICAgIGNvbW1hbmRbMF0gPSAnXDAnOworICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIlwiIik7CisgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCB0bXBwYXRoKTsKKyAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICJnZXRidWlsZGluZm8yLmNcIiIpOworICAgICAgICBfdW5saW5rKGNvbW1hbmQpOworICAgIH0KKyAgICBpZiAocmVzdWx0IDwgMCkKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL1BDYnVpbGQvbWFrZV9idWlsZGluZm8udmNwcm9qIGIvUEMvVlM5LjAvbWFrZV9idWlsZGluZm8udmNwcm9qCnNpbWlsYXJpdHkgaW5kZXggOTglCnJlbmFtZSBmcm9tIFBDYnVpbGQvbWFrZV9idWlsZGluZm8udmNwcm9qCnJlbmFtZSB0byBQQy9WUzkuMC9tYWtlX2J1aWxkaW5mby52Y3Byb2oKaW5kZXggMTkxMGI5ZS4uOTI0MDY1ZCAxMDA2NDQKLS0tIGEvUENidWlsZC9tYWtlX2J1aWxkaW5mby52Y3Byb2oKKysrIGIvUEMvVlM5LjAvbWFrZV9idWlsZGluZm8udmNwcm9qCkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0id2luZG93cy0xMjUwIj8+DQogPFZpc3VhbFN0dWRpb1Byb2plY3QNCiAJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjksMDAiDQorCVZlcnNpb249IjkuMDAiDQogCU5hbWU9Im1ha2VfYnVpbGRpbmZvIg0KIAlQcm9qZWN0R1VJRD0ie0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0iDQogCVJvb3ROYW1lc3BhY2U9Im1ha2VfYnVpbGRpbmZvIg0KZGlmZiAtLWdpdCBhL1BDYnVpbGQvbWFrZV92ZXJzaW9uaW5mby52Y3Byb2ogYi9QQy9WUzkuMC9tYWtlX3ZlcnNpb25pbmZvLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDkwJQpyZW5hbWUgZnJvbSBQQ2J1aWxkL21ha2VfdmVyc2lvbmluZm8udmNwcm9qCnJlbmFtZSB0byBQQy9WUzkuMC9tYWtlX3ZlcnNpb25pbmZvLnZjcHJvagppbmRleCA4ODFmNDRiLi4wYTFmZDI4IDEwMDY0NAotLS0gYS9QQ2J1aWxkL21ha2VfdmVyc2lvbmluZm8udmNwcm9qCisrKyBiL1BDL1ZTOS4wL21ha2VfdmVyc2lvbmluZm8udmNwcm9qCkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQogPFZpc3VhbFN0dWRpb1Byb2plY3QNCiAJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjksMDAiDQorCVZlcnNpb249IjkuMDAiDQogCU5hbWU9Im1ha2VfdmVyc2lvbmluZm8iDQogCVByb2plY3RHVUlEPSJ7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfSINCiAJUm9vdE5hbWVzcGFjZT0ibWFrZV92ZXJzaW9uaW5mbyINCkBAIC0zMiw4ICszMiw4IEBACiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCiAJCQkJRGVzY3JpcHRpb249IkJ1aWxkIFBDL3B5dGhvbm50X3JjKF9kKS5oIg0KLQkJCQlDb21tYW5kTGluZT0iY2QgJChTb2x1dGlvbkRpcikmI3gwRDsmI3gwQTttYWtlX3ZlcnNpb25pbmZvLmV4ZSAmZ3Q7IC4uXFBDXHB5dGhvbm50X3JjLmgmI3gwRDsmI3gwQTsiDQotCQkJCU91dHB1dHM9IiQoU29sdXRpb25EaXIpLi5cUENccHl0aG9ubnRfcmMuaCINCisJCQkJQ29tbWFuZExpbmU9ImNkICQoU29sdXRpb25EaXIpJiN4MEQ7JiN4MEE7bWFrZV92ZXJzaW9uaW5mby5leGUgJmd0OyAuLlwuLlxQQ1xweXRob25udF9yYy5oJiN4MEQ7JiN4MEE7Ig0KKwkJCQlPdXRwdXRzPSIkKFNvbHV0aW9uRGlyKS4uXC4uXFBDXHB5dGhvbm50X3JjLmgiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KQEAgLTkyLDcgKzkyLDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm8uZXhlICZndDsgLi5cUENccHl0aG9uX250LmgmI3gwRDsmI3gwQTsiDQorCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm8uZXhlICZndDsgLi5cLi5cUENccHl0aG9uX250LmgmI3gwRDsmI3gwQTsiDQogCQkJLz4NCiAJCTwvQ29uZmlndXJhdGlvbj4NCiAJCTxDb25maWd1cmF0aW9uDQpAQCAtMTA2LDggKzEwNiw4IEBACiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCiAJCQkJRGVzY3JpcHRpb249IkJ1aWxkIFBDL3B5dGhvbm50X3JjKF9kKS5oIg0KLQkJCQlDb21tYW5kTGluZT0iY2QgJChTb2x1dGlvbkRpcikmI3gwRDsmI3gwQTttYWtlX3ZlcnNpb25pbmZvLmV4ZSAmZ3Q7IC4uXFBDXHB5dGhvbm50X3JjLmgmI3gwRDsmI3gwQTsiDQotCQkJCU91dHB1dHM9IiQoU29sdXRpb25EaXIpLi5cUENccHl0aG9ubnRfcmMuaCINCisJCQkJQ29tbWFuZExpbmU9ImNkICQoU29sdXRpb25EaXIpJiN4MEQ7JiN4MEE7bWFrZV92ZXJzaW9uaW5mby5leGUgJmd0OyAuLlwuLlxQQ1xweXRob25udF9yYy5oJiN4MEQ7JiN4MEE7Ig0KKwkJCQlPdXRwdXRzPSIkKFNvbHV0aW9uRGlyKS4uXC4uXFBDXHB5dGhvbm50X3JjLmgiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KQEAgLTE1OCw3ICsxNTgsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9ImNkICQoU29sdXRpb25EaXIpJiN4MEQ7JiN4MEE7bWFrZV92ZXJzaW9uaW5mby5leGUgJmd0OyAuLlxQQ1xweXRob25fbnQuaCYjeDBEOyYjeDBBOyINCisJCQkJQ29tbWFuZExpbmU9ImNkICQoU29sdXRpb25EaXIpJiN4MEQ7JiN4MEE7bWFrZV92ZXJzaW9uaW5mby5leGUgJmd0OyAuLlwuLlxQQ1xweXRob25fbnQuaCYjeDBEOyYjeDBBOyINCiAJCQkvPg0KIAkJPC9Db25maWd1cmF0aW9uPg0KIAkJPENvbmZpZ3VyYXRpb24NCkBAIC0xNzUsOCArMTc1LDggQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KIAkJCQlEZXNjcmlwdGlvbj0iQnVpbGQgUEMvcHl0aG9ubnRfcmMoX2QpLmgiDQotCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm9fZC5leGUgJmd0OyAuLlxQQ1xweXRob25udF9yY19kLmgmI3gwRDsmI3gwQTsiDQotCQkJCU91dHB1dHM9IiQoU29sdXRpb25EaXIpLi5cUENccHl0aG9ubnRfcmNfZC5oIg0KKwkJCQlDb21tYW5kTGluZT0iY2QgJChTb2x1dGlvbkRpcikmI3gwRDsmI3gwQTttYWtlX3ZlcnNpb25pbmZvX2QuZXhlICZndDsgLi5cLi5cUENccHl0aG9ubnRfcmNfZC5oJiN4MEQ7JiN4MEE7Ig0KKwkJCQlPdXRwdXRzPSIkKFNvbHV0aW9uRGlyKS4uXC4uXFBDXHB5dGhvbm50X3JjX2QuaCINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQpAQCAtMjM1LDcgKzIzNSw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCQlDb21tYW5kTGluZT0iY2QgJChTb2x1dGlvbkRpcikmI3gwRDsmI3gwQTttYWtlX3ZlcnNpb25pbmZvX2QuZXhlICZndDsgLi5cUENccHl0aG9uX250X2QuaCYjeDBEOyYjeDBBOyINCisJCQkJQ29tbWFuZExpbmU9ImNkICQoU29sdXRpb25EaXIpJiN4MEQ7JiN4MEE7bWFrZV92ZXJzaW9uaW5mb19kLmV4ZSAmZ3Q7IC4uXC4uXFBDXHB5dGhvbl9udF9kLmgmI3gwRDsmI3gwQTsiDQogCQkJLz4NCiAJCTwvQ29uZmlndXJhdGlvbj4NCiAJCTxDb25maWd1cmF0aW9uDQpAQCAtMjQ5LDggKzI0OSw4IEBACiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCiAJCQkJRGVzY3JpcHRpb249IkJ1aWxkIFBDL3B5dGhvbm50X3JjKF9kKS5oIg0KLQkJCQlDb21tYW5kTGluZT0iY2QgJChTb2x1dGlvbkRpcikmI3gwRDsmI3gwQTttYWtlX3ZlcnNpb25pbmZvX2QuZXhlICZndDsgLi5cUENccHl0aG9ubnRfcmNfZC5oJiN4MEQ7JiN4MEE7Ig0KLQkJCQlPdXRwdXRzPSIkKFNvbHV0aW9uRGlyKS4uXFBDXHB5dGhvbm50X3JjX2QuaCINCisJCQkJQ29tbWFuZExpbmU9ImNkICQoU29sdXRpb25EaXIpJiN4MEQ7JiN4MEE7bWFrZV92ZXJzaW9uaW5mb19kLmV4ZSAmZ3Q7IC4uXC4uXFBDXHB5dGhvbm50X3JjX2QuaCYjeDBEOyYjeDBBOyINCisJCQkJT3V0cHV0cz0iJChTb2x1dGlvbkRpcikuLlwuLlxQQ1xweXRob25udF9yY19kLmgiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KQEAgLTMwMyw3ICszMDMsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkJQ29tbWFuZExpbmU9ImNkICQoU29sdXRpb25EaXIpJiN4MEQ7JiN4MEE7bWFrZV92ZXJzaW9uaW5mb19kLmV4ZSAmZ3Q7IC4uXFBDXHB5dGhvbl9udF9kLmgmI3gwRDsmI3gwQTsiDQorCQkJCUNvbW1hbmRMaW5lPSJjZCAkKFNvbHV0aW9uRGlyKSYjeDBEOyYjeDBBO21ha2VfdmVyc2lvbmluZm9fZC5leGUgJmd0OyAuLlwuLlxQQ1xweXRob25fbnRfZC5oJiN4MEQ7JiN4MEE7Ig0KIAkJCS8+DQogCQk8L0NvbmZpZ3VyYXRpb24+DQogCTwvQ29uZmlndXJhdGlvbnM+DQpAQCAtMzE0LDcgKzMxNCw3IEBACiAJCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENcbWFrZV92ZXJzaW9uaW5mby5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXG1ha2VfdmVyc2lvbmluZm8uYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KZGlmZiAtLWdpdCBhL1BDL1ZTOS4wL3BjYnVpbGQuc2xuIGIvUEMvVlM5LjAvcGNidWlsZC5zbG4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGY4Y2JiNgotLS0gL2Rldi9udWxsCisrKyBiL1BDL1ZTOS4wL3BjYnVpbGQuc2xuCkBAIC0wLDAgKzEsNjU4IEBACitNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMC4wMA0KKyMgVmlzdWFsIFN0dWRpbyAyMDA4DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJweXRob24iLCAicHl0aG9uLnZjcHJvaiIsICJ7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0gPSB7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIm1ha2VfdmVyc2lvbmluZm8iLCAibWFrZV92ZXJzaW9uaW5mby52Y3Byb2oiLCAie0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHl0aG9uY29yZSIsICJweXRob25jb3JlLnZjcHJvaiIsICJ7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0gPSB7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfQ0KKwkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0gPSB7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfQ0KKwkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0gPSB7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInB5dGhvbnciLCAicHl0aG9udy52Y3Byb2oiLCAie0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ3OXhwb3BlbiIsICJ3OXhwb3Blbi52Y3Byb2oiLCAie0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9ID0gezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJtYWtlX2J1aWxkaW5mbyIsICJtYWtlX2J1aWxkaW5mby52Y3Byb2oiLCAie0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoInsyMTUwRTMzMy04RkRDLTQyQTMtOTQ3NC0xQTM5NTZENDZERTh9IikgPSAiU29sdXRpb24gSXRlbXMiLCAiU29sdXRpb24gSXRlbXMiLCAiezU1M0VDMzNFLTk4MTYtNDk5Ni1BNjYwLTVENjE4NkEwQjBCM30iDQorCVByb2plY3RTZWN0aW9uKFNvbHV0aW9uSXRlbXMpID0gcHJlUHJvamVjdA0KKwkJLi5cLi5cTW9kdWxlc1xnZXRidWlsZGluZm8uYyA9IC4uXC4uXE1vZHVsZXNcZ2V0YnVpbGRpbmZvLmMNCisJCXJlYWRtZS50eHQgPSByZWFkbWUudHh0DQorCUVuZFByb2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAid2luc291bmQiLCAid2luc291bmQudmNwcm9qIiwgInsyOEI1RDc3Ny1EREYyLTRCNkItQjM0Ri0zMUQ5Mzg4MTM4NTZ9Ig0KKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQorCUVuZFByb2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX2RlY2ltYWwiLCAiX2RlY2ltYWwudmNwcm9qIiwgInswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9Ig0KKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQorCUVuZFByb2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX2N0eXBlcyIsICJfY3R5cGVzLnZjcHJvaiIsICJ7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE4fSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9jdHlwZXNfdGVzdCIsICJfY3R5cGVzX3Rlc3QudmNwcm9qIiwgIns5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9Ig0KKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQorCUVuZFByb2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX2VsZW1lbnR0cmVlIiwgIl9lbGVtZW50dHJlZS52Y3Byb2oiLCAiezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfbXNpIiwgIl9tc2kudmNwcm9qIiwgInszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9Ig0KKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQorCUVuZFByb2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3NvY2tldCIsICJfc29ja2V0LnZjcHJvaiIsICJ7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9zcWxpdGUzIiwgIl9zcWxpdGUzLnZjcHJvaiIsICJ7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0gPSB7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9zc2wiLCAiX3NzbC52Y3Byb2oiLCAie0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9ID0ge0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0NCisJCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9ID0gezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0NCisJCXtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9ID0ge0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0NCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfdGVzdGNhcGkiLCAiX3Rlc3RjYXBpLnZjcHJvaiIsICJ7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl90a2ludGVyIiwgIl90a2ludGVyLnZjcHJvaiIsICJ7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9iejIiLCAiX2J6Mi52Y3Byb2oiLCAiezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfbHptYSIsICJfbHptYS52Y3Byb2oiLCAie0Y5RDcxNzgwLUYzOTMtMTFFMC1CRTUwLTA4MDAyMDBDOUE2Nn0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJzZWxlY3QiLCAic2VsZWN0LnZjcHJvaiIsICJ7MThDQUUyOEMtQjQ1NC00NkMxLTg3QTAtNDkzRDkxRDk3RjAzfSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInVuaWNvZGVkYXRhIiwgInVuaWNvZGVkYXRhLnZjcHJvaiIsICJ7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInB5ZXhwYXQiLCAicHlleHBhdC52Y3Byb2oiLCAie0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJiZGlzdF93aW5pbnN0IiwgImJkaXN0X3dpbmluc3QudmNwcm9qIiwgIntFQjFDMTlDMS0xRjE4LTQyMUUtOTczNS1DQUVFNjlEQzZBM0N9Ig0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9oYXNobGliIiwgIl9oYXNobGliLnZjcHJvaiIsICJ7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfSINCisJUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KKwkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0gPSB7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fQ0KKwkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0gPSB7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfQ0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KKwlFbmRQcm9qZWN0U2VjdGlvbg0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInNxbGl0ZTMiLCAic3FsaXRlMy52Y3Byb2oiLCAie0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9ID0gezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfbXVsdGlwcm9jZXNzaW5nIiwgIl9tdWx0aXByb2Nlc3NpbmcudmNwcm9qIiwgIns5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9Ig0KKwlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQorCUVuZFByb2plY3RTZWN0aW9uDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAic3NsIiwgInNzbC52Y3Byb2oiLCAie0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9ID0ge0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJraWxsX3B5dGhvbiIsICJraWxsX3B5dGhvbi52Y3Byb2oiLCAiezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHl0aG9uM2RsbCIsICJweXRob24zZGxsLnZjcHJvaiIsICJ7ODg1RDQ4OTgtRDA4RC00MDkxLTlDNDAtQzcwMENGRTNGQzVBfSINCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4eGxpbWl0ZWQiLCAieHhsaW1pdGVkLnZjcHJvaiIsICJ7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfSINCitFbmRQcm9qZWN0DQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfdGVzdGJ1ZmZlciIsICJfdGVzdGJ1ZmZlci52Y3Byb2oiLCAie0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0iDQorCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCisJRW5kUHJvamVjdFNlY3Rpb24NCitFbmRQcm9qZWN0DQorR2xvYmFsDQorCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uDQorCQlEZWJ1Z3xXaW4zMiA9IERlYnVnfFdpbjMyDQorCQlEZWJ1Z3x4NjQgPSBEZWJ1Z3x4NjQNCisJCVBHSW5zdHJ1bWVudHxXaW4zMiA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJUEdJbnN0cnVtZW50fHg2NCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCVBHVXBkYXRlfFdpbjMyID0gUEdVcGRhdGV8V2luMzINCisJCVBHVXBkYXRlfHg2NCA9IFBHVXBkYXRlfHg2NA0KKwkJUmVsZWFzZXxXaW4zMiA9IFJlbGVhc2V8V2luMzINCisJCVJlbGVhc2V8eDY0ID0gUmVsZWFzZXx4NjQNCisJRW5kR2xvYmFsU2VjdGlvbg0KKwlHbG9iYWxTZWN0aW9uKFByb2plY3RDb25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHBvc3RTb2x1dGlvbg0KKwkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXtGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXtGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXtGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJe0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7RTlFMEExRjYtMDAwOS00RThDLUI4RjgtMUI4RjVENDlBMDU4fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJe0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXsyOEI1RDc3Ny1EREYyLTRCNkItQjM0Ri0zMUQ5Mzg4MTM4NTZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXsyOEI1RDc3Ny1EREYyLTRCNkItQjM0Ri0zMUQ5Mzg4MTM4NTZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXsyOEI1RDc3Ny1EREYyLTRCNkItQjM0Ri0zMUQ5Mzg4MTM4NTZ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE3fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE3fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE3fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE4fS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE4fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE4fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE4fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXs5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezlFQzcxOTBBLTI0OUYtNDE4MC1BOTAwLTU0OEZEQ0YzMDU1Rn0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezlFQzcxOTBBLTI0OUYtNDE4MC1BOTAwLTU0OEZEQ0YzMDU1Rn0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJezlFQzcxOTBBLTI0OUYtNDE4MC1BOTAwLTU0OEZEQ0YzMDU1Rn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJezlFQzcxOTBBLTI0OUYtNDE4MC1BOTAwLTU0OEZEQ0YzMDU1Rn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXsxN0UxRTA0OS1DMzA5LTRENzktODQzRi1BRTQ4M0MyNjRBRUF9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXsxN0UxRTA0OS1DMzA5LTRENzktODQzRi1BRTQ4M0MyNjRBRUF9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXsxN0UxRTA0OS1DMzA5LTRENzktODQzRi1BRTQ4M0MyNjRBRUF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXsxN0UxRTA0OS1DMzA5LTRENzktODQzRi1BRTQ4M0MyNjRBRUF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7MzFGRkM0NzgtN0I0QS00M0U4LTk5NTQtOEQwM0UyMTg3RTlDfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7MzFGRkM0NzgtN0I0QS00M0U4LTk5NTQtOEQwM0UyMTg3RTlDfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7MzFGRkM0NzgtN0I0QS00M0U4LTk5NTQtOEQwM0UyMTg3RTlDfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7MzFGRkM0NzgtN0I0QS00M0U4LTk5NTQtOEQwM0UyMTg3RTlDfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXs4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7MTNDRUNCOTctNDExOS00MzE2LTlENDItODUzNDAxOUE1QTQ0fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXsxM0NFQ0I5Ny00MTE5LTQzMTYtOUQ0Mi04NTM0MDE5QTVBNDR9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXsxM0NFQ0I5Ny00MTE5LTQzMTYtOUQ0Mi04NTM0MDE5QTVBNDR9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXsxM0NFQ0I5Ny00MTE5LTQzMTYtOUQ0Mi04NTM0MDE5QTVBNDR9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXsxM0NFQ0I5Ny00MTE5LTQzMTYtOUQ0Mi04NTM0MDE5QTVBNDR9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJe0M2RTIwRjg0LTMyNDctNEFENi1CMDUxLUIwNzMyNjhGNzNCQX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtDNkUyMEY4NC0zMjQ3LTRBRDYtQjA1MS1CMDczMjY4RjczQkF9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXs2OTAxRDkxQy02RTQ4LTRCQjctOUZFQy03MDBDODEzMURGMUR9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezQ5NDZFQ0FDLTJFNjktNEJGOC1BOTBBLUY1MTM2RjUwOTRERn0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXs0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXs3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJe0Y5RDcxNzgwLUYzOTMtMTFFMC1CRTUwLTA4MDAyMDBDOUE2Nn0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJe0Y5RDcxNzgwLUYzOTMtMTFFMC1CRTUwLTA4MDAyMDBDOUE2Nn0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJe0Y5RDcxNzgwLUYzOTMtMTFFMC1CRTUwLTA4MDAyMDBDOUE2Nn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJe0Y5RDcxNzgwLUYzOTMtMTFFMC1CRTUwLTA4MDAyMDBDOUE2Nn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7MThDQUUyOEMtQjQ1NC00NkMxLTg3QTAtNDkzRDkxRDk3RjAzfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7MThDQUUyOEMtQjQ1NC00NkMxLTg3QTAtNDkzRDkxRDk3RjAzfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7MThDQUUyOEMtQjQ1NC00NkMxLTg3QTAtNDkzRDkxRDk3RjAzfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJe0VDQzdDRUFDLUE1RTUtNDU4RS1CQjlFLTI0MTNDQzg0Nzg4MX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0VDQzdDRUFDLUE1RTUtNDU4RS1CQjlFLTI0MTNDQzg0Nzg4MX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJe0VDQzdDRUFDLUE1RTUtNDU4RS1CQjlFLTI0MTNDQzg0Nzg4MX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXtEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXtEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXtEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJe0QwNkI2NDI2LTQ3NjItNDRDQy04QkFELUQ3OTA1MjUwN0YyRn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7RUIxQzE5QzEtMUYxOC00MjFFLTk3MzUtQ0FFRTY5REM2QTNDfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RUIxQzE5QzEtMUYxOC00MjFFLTk3MzUtQ0FFRTY5REM2QTNDfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXtFQjFDMTlDMS0xRjE4LTQyMUUtOTczNS1DQUVFNjlEQzZBM0N9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RUIxQzE5QzEtMUYxOC00MjFFLTk3MzUtQ0FFRTY5REM2QTNDfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7RUIxQzE5QzEtMUYxOC00MjFFLTk3MzUtQ0FFRTY5REM2QTNDfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RUIxQzE5QzEtMUYxOC00MjFFLTk3MzUtQ0FFRTY5REM2QTNDfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXtFQjFDMTlDMS0xRjE4LTQyMUUtOTczNS1DQUVFNjlEQzZBM0N9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJe0VCMUMxOUMxLTFGMTgtNDIxRS05NzM1LUNBRUU2OURDNkEzQ30uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXs0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXs0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXs0NDdGMDVBOC1GNTgxLTRDQUMtQTQ2Ni01QUM3OTM2RTIwN0V9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7NDQ3RjA1QTgtRjU4MS00Q0FDLUE0NjYtNUFDNzkzNkUyMDdFfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7QTFBMjk1RTUtNDYzQy00MzdGLTgxQ0EtMUYzMjM2NzY4NURBfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXs5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7OUU0OEIzMDAtMzdEMS0xMURELThDNDEtMDA1MDU2QzAwMDA4fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7ODg1RDQ4OTgtRDA4RC00MDkxLTlDNDAtQzcwMENGRTNGQzVBfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7ODg1RDQ4OTgtRDA4RC00MDkxLTlDNDAtQzcwMENGRTNGQzVBfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJe0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJe0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5QR1VwZGF0ZXx4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KKwkJe0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KKwkJe0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCUVuZEdsb2JhbFNlY3Rpb24NCisJR2xvYmFsU2VjdGlvbihTb2x1dGlvblByb3BlcnRpZXMpID0gcHJlU29sdXRpb24NCisJCUhpZGVTb2x1dGlvbk5vZGUgPSBGQUxTRQ0KKwlFbmRHbG9iYWxTZWN0aW9uDQorRW5kR2xvYmFsDQpkaWZmIC0tZ2l0IGEvUENidWlsZC9wZ2luc3RydW1lbnQudnNwcm9wcyBiL1BDL1ZTOS4wL3BnaW5zdHJ1bWVudC52c3Byb3BzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBQQ2J1aWxkL3BnaW5zdHJ1bWVudC52c3Byb3BzCnJlbmFtZSB0byBQQy9WUzkuMC9wZ2luc3RydW1lbnQudnNwcm9wcwpkaWZmIC0tZ2l0IGEvUENidWlsZC9wZ3VwZGF0ZS52c3Byb3BzIGIvUEMvVlM5LjAvcGd1cGRhdGUudnNwcm9wcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gUENidWlsZC9wZ3VwZGF0ZS52c3Byb3BzCnJlbmFtZSB0byBQQy9WUzkuMC9wZ3VwZGF0ZS52c3Byb3BzCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5ZC52c3Byb3BzIGIvUEMvVlM5LjAvcHlkLnZzcHJvcHMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIFBDYnVpbGQvcHlkLnZzcHJvcHMKcmVuYW1lIHRvIFBDL1ZTOS4wL3B5ZC52c3Byb3BzCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5ZF9kLnZzcHJvcHMgYi9QQy9WUzkuMC9weWRfZC52c3Byb3BzCnNpbWlsYXJpdHkgaW5kZXggMTAwJQpyZW5hbWUgZnJvbSBQQ2J1aWxkL3B5ZF9kLnZzcHJvcHMKcmVuYW1lIHRvIFBDL1ZTOS4wL3B5ZF9kLnZzcHJvcHMKZGlmZiAtLWdpdCBhL1BDYnVpbGQvcHlleHBhdC52Y3Byb2ogYi9QQy9WUzkuMC9weWV4cGF0LnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDkyJQpyZW5hbWUgZnJvbSBQQ2J1aWxkL3B5ZXhwYXQudmNwcm9qCnJlbmFtZSB0byBQQy9WUzkuMC9weWV4cGF0LnZjcHJvagppbmRleCA1YTIwYTUxLi5hOGQyY2Q3IDEwMDY0NAotLS0gYS9QQ2J1aWxkL3B5ZXhwYXQudmNwcm9qCisrKyBiL1BDL1ZTOS4wL3B5ZXhwYXQudmNwcm9qCkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQogPFZpc3VhbFN0dWRpb1Byb2plY3QNCiAJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjksMDAiDQorCVZlcnNpb249IjkuMDAiDQogCU5hbWU9InB5ZXhwYXQiDQogCVByb2plY3RHVUlEPSJ7RDA2QjY0MjYtNDc2Mi00NENDLThCQUQtRDc5MDUyNTA3RjJGfSINCiAJUm9vdE5hbWVzcGFjZT0icHlleHBhdCINCkBAIC00Miw3ICs0Miw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii5cLi5cTW9kdWxlc1xleHBhdCINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLlwuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KIAkJCS8+DQogCQkJPFRvb2wNCkBAIC0xMDMsNyArMTAzLDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLlwuLlxNb2R1bGVzXGV4cGF0Ig0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuXC4uXC4uXE1vZHVsZXNcZXhwYXQiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQWUVYUEFUX0VYUE9SVFM7SEFWRV9FWFBBVF9IO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQogCQkJLz4NCiAJCQk8VG9vbA0KQEAgLTE2NCw3ICsxNjQsNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuXC4uXE1vZHVsZXNcZXhwYXQiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii5cLi5cLi5cTW9kdWxlc1xleHBhdCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlBZRVhQQVRfRVhQT1JUUztIQVZFX0VYUEFUX0g7WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCiAJCQkvPg0KIAkJCTxUb29sDQpAQCAtMjI2LDcgKzIyNiw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii5cLi5cTW9kdWxlc1xleHBhdCINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLlwuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KIAkJCS8+DQogCQkJPFRvb2wNCkBAIC0yODcsNyArMjg3LDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLlwuLlxNb2R1bGVzXGV4cGF0Ig0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuXC4uXC4uXE1vZHVsZXNcZXhwYXQiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQWUVYUEFUX0VYUE9SVFM7SEFWRV9FWFBBVF9IO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQogCQkJLz4NCiAJCQk8VG9vbA0KQEAgLTM0OSw3ICszNDksNyBAQAogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuXC4uXE1vZHVsZXNcZXhwYXQiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii5cLi5cLi5cTW9kdWxlc1xleHBhdCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IlBZRVhQQVRfRVhQT1JUUztIQVZFX0VYUEFUX0g7WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRSINCiAJCQkvPg0KIAkJCTxUb29sDQpAQCAtNDExLDcgKzQxMSw3IEBACiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii5cLi5cTW9kdWxlc1xleHBhdCINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLlwuLlwuLlxNb2R1bGVzXGV4cGF0Ig0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iUFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFIg0KIAkJCS8+DQogCQkJPFRvb2wNCkBAIC00NzMsNyArNDczLDcgQEAKIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLlwuLlxNb2R1bGVzXGV4cGF0Ig0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuXC4uXC4uXE1vZHVsZXNcZXhwYXQiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJQWUVYUEFUX0VYUE9SVFM7SEFWRV9FWFBBVF9IO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7WE1MX1NUQVRJQztIQVZFX01FTU1PVkUiDQogCQkJLz4NCiAJCQk8VG9vbA0KQEAgLTUxOSwxMSArNTE5LDExIEBACiAJCQlOYW1lPSJIZWFkZXIgRmlsZXMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHBhdFx4bWxyb2xlLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xleHBhdFx4bWxyb2xlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGV4cGF0XHhtbHRvay5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1sdG9rLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCkBAIC01MzEsMTkgKzUzMSwxOSBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNccHlleHBhdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNccHlleHBhdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHBhdFx4bWxwYXJzZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1scGFyc2UuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGV4cGF0XHhtbHRvay5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpkaWZmIC0tZ2l0IGEvUENidWlsZC9weXByb2plY3QudnNwcm9wcyBiL1BDL1ZTOS4wL3B5cHJvamVjdC52c3Byb3BzCnNpbWlsYXJpdHkgaW5kZXggODUlCnJlbmFtZSBmcm9tIFBDYnVpbGQvcHlwcm9qZWN0LnZzcHJvcHMKcmVuYW1lIHRvIFBDL1ZTOS4wL3B5cHJvamVjdC52c3Byb3BzCmluZGV4IDZhOTRhNjguLjAxYzdjYTcgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvcHlwcm9qZWN0LnZzcHJvcHMKKysrIGIvUEMvVlM5LjAvcHlwcm9qZWN0LnZzcHJvcHMKQEAgLTExLDcgKzExLDcgQEAKIAkJT3B0aW1pemF0aW9uPSIyIg0KIAkJSW5saW5lRnVuY3Rpb25FeHBhbnNpb249IjEiDQogCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9InRydWUiDQotCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxJbmNsdWRlOyAuLlxQQyINCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGU7IC4uXC4uXFBDIg0KIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9XSU4zMiINCiAJCVN0cmluZ1Bvb2xpbmc9InRydWUiDQogCQlFeGNlcHRpb25IYW5kbGluZz0iMCINCkBAIC0zNCwxMSArMzQsMTEgQEAKIAkvPg0KIAk8VG9vbA0KIAkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXFBDOy4uXEluY2x1ZGUiDQorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQQzsuLlwuLlxJbmNsdWRlIg0KIAkvPg0KIAk8VXNlck1hY3JvDQogCQlOYW1lPSJQeURsbE5hbWUiDQotCQlWYWx1ZT0icHl0aG9uMzIiDQorCQlWYWx1ZT0icHl0aG9uMzMiDQogCS8+DQogCTxVc2VyTWFjcm8NCiAJCU5hbWU9IlB5dGhvbkV4ZSINCkBAIC00NiwxOSArNDYsMjMgQEAKIAkvPg0KIAk8VXNlck1hY3JvDQogCQlOYW1lPSJleHRlcm5hbHNEaXIiDQotCQlWYWx1ZT0iLi5cLi4iDQorCQlWYWx1ZT0iLi5cLi5cLi4iDQogCS8+DQogCTxVc2VyTWFjcm8NCiAJCU5hbWU9InNxbGl0ZTNEaXIiDQotCQlWYWx1ZT0iJChleHRlcm5hbHNEaXIpXHNxbGl0ZS0zLjcuNCINCisJCVZhbHVlPSIkKGV4dGVybmFsc0Rpcilcc3FsaXRlLTMuNy4xMiINCiAJLz4NCiAJPFVzZXJNYWNybw0KIAkJTmFtZT0iYnoyRGlyIg0KIAkJVmFsdWU9IiQoZXh0ZXJuYWxzRGlyKVxiemlwMi0xLjAuNiINCiAJLz4NCiAJPFVzZXJNYWNybw0KKwkJTmFtZT0ibHptYURpciINCisJCVZhbHVlPSIkKGV4dGVybmFsc0RpcilceHotNS4wLjMiDQorCS8+DQorCTxVc2VyTWFjcm8NCiAJCU5hbWU9Im9wZW5zc2xEaXIiDQotCQlWYWx1ZT0iJChleHRlcm5hbHNEaXIpXG9wZW5zc2wtMS4wLjBqIg0KKwkJVmFsdWU9IiQoZXh0ZXJuYWxzRGlyKVxvcGVuc3NsLTEuMC4xYyINCiAJLz4NCiAJPFVzZXJNYWNybw0KIAkJTmFtZT0idGNsdGtEaXIiDQpkaWZmIC0tZ2l0IGEvUENidWlsZC9weXRob24udmNwcm9qIGIvUEMvVlM5LjAvcHl0aG9uLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk3JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL3B5dGhvbi52Y3Byb2oKcmVuYW1lIHRvIFBDL1ZTOS4wL3B5dGhvbi52Y3Byb2oKaW5kZXggNDdiMjg5ZS4uYjA3ZGUyMSAxMDA2NDQKLS0tIGEvUENidWlsZC9weXRob24udmNwcm9qCisrKyBiL1BDL1ZTOS4wL3B5dGhvbi52Y3Byb2oKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCisJVmVyc2lvbj0iOS4wMCINCiAJTmFtZT0icHl0aG9uIg0KIAlQcm9qZWN0R1VJRD0ie0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0iDQogCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjEzMTA3MiINCkBAIC0yMDIsNyArMjAyLDcgQEAKIAkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX0RFQlVHIg0KIAkJCQlDdWx0dXJlPSIxMDMzIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxJbmNsdWRlIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxJbmNsdWRlIg0KIAkJCS8+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KQEAgLTI3Nyw3ICsyNzcsNyBAQAogCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfREVCVUciDQogCQkJCUN1bHR1cmU9IjEwMzMiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXEluY2x1ZGUiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXEluY2x1ZGUiDQogCQkJLz4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQpAQCAtNjE1LDExICs2MTUsMTEgQEAKIAkJCU5hbWU9IlJlc291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXHB5Y29uLmljbyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xweWNvbi5pY28iDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQQ1xweXRob25fZXhlLnJjIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXHB5dGhvbl9leGUucmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCkBAIC02MjcsNyArNjI3LDcgQEAKIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHB5dGhvbi5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNccHl0aG9uLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5dGhvbjNkbGwudmNwcm9qIGIvUEMvVlM5LjAvcHl0aG9uM2RsbC52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA2OSUKcmVuYW1lIGZyb20gUENidWlsZC9weXRob24zZGxsLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvcHl0aG9uM2RsbC52Y3Byb2oKaW5kZXggNTJjNjc1Mi4uZWQ3MzMzYiAxMDA2NDQKLS0tIGEvUENidWlsZC9weXRob24zZGxsLnZjcHJvagorKysgYi9QQy9WUzkuMC9weXRob24zZGxsLnZjcHJvagpAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KKwlWZXJzaW9uPSI5LjAwIg0KIAlOYW1lPSJweXRob24zZGxsIg0KIAlQcm9qZWN0R1VJRD0iezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0iDQogCVJvb3ROYW1lc3BhY2U9InB5dGhvbjNkbGwiDQpAQCAtMjcsOSArMjcsOSBAQAogCQkJPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTk1ha2VUb29sIg0KLQkJCQlCdWlsZENvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDg2IE91dERpcj0kKE91dERpcikiDQotCQkJCVJlQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIHJlYnVpbGQiDQotCQkJCUNsZWFuQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14ODYgT3V0RGlyPSQoT3V0RGlyKSBjbGVhbiINCisJCQkJQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIg0KKwkJCQlSZUJ1aWxkQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14ODYgT3V0RGlyPSQoT3V0RGlyKSByZWJ1aWxkIg0KKwkJCQlDbGVhbkNvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDg2IE91dERpcj0kKE91dERpcikgY2xlYW4iDQogCQkJCU91dHB1dD0iJChPdXREaXIpXHB5dGhvbjMuZGxsIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iIg0KIAkJCQlJbmNsdWRlU2VhcmNoUGF0aD0iIg0KQEAgLTQ2LDkgKzQ2LDkgQEAKIAkJCT4NCiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ05NYWtlVG9vbCINCi0JCQkJQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIg0KLQkJCQlSZUJ1aWxkQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14NjQgT3V0RGlyPSQoT3V0RGlyKSByZWJ1aWxkIg0KLQkJCQlDbGVhbkNvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDY0IE91dERpcj0kKE91dERpcikgY2xlYW4iDQorCQkJCUJ1aWxkQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14NjQgT3V0RGlyPSQoT3V0RGlyKSINCisJCQkJUmVCdWlsZENvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDY0IE91dERpcj0kKE91dERpcikgcmVidWlsZCINCisJCQkJQ2xlYW5Db21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIGNsZWFuIg0KIAkJCQlPdXRwdXQ9IiQoT3V0RGlyKVxweXRob24zLmRsbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9IiINCiAJCQkJSW5jbHVkZVNlYXJjaFBhdGg9IiINCkBAIC02NSw5ICs2NSw5IEBACiAJCQk+DQogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNOTWFrZVRvb2wiDQotCQkJCUJ1aWxkQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14ODYgT3V0RGlyPSQoT3V0RGlyKSINCi0JCQkJUmVCdWlsZENvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDg2IE91dERpcj0kKE91dERpcikgcmVidWlsZCINCi0JCQkJQ2xlYW5Db21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIGNsZWFuIg0KKwkJCQlCdWlsZENvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDg2IE91dERpcj0kKE91dERpcikiDQorCQkJCVJlQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIHJlYnVpbGQiDQorCQkJCUNsZWFuQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14ODYgT3V0RGlyPSQoT3V0RGlyKSBjbGVhbiINCiAJCQkJT3V0cHV0PSIkKE91dERpcilccHl0aG9uMy5kbGwiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSIiDQogCQkJCUluY2x1ZGVTZWFyY2hQYXRoPSIiDQpAQCAtODQsOSArODQsOSBAQAogCQkJPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTk1ha2VUb29sIg0KLQkJCQlCdWlsZENvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDY0IE91dERpcj0kKE91dERpcikiDQotCQkJCVJlQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIHJlYnVpbGQiDQotCQkJCUNsZWFuQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14NjQgT3V0RGlyPSQoT3V0RGlyKSBjbGVhbiINCisJCQkJQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIg0KKwkJCQlSZUJ1aWxkQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14NjQgT3V0RGlyPSQoT3V0RGlyKSByZWJ1aWxkIg0KKwkJCQlDbGVhbkNvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDY0IE91dERpcj0kKE91dERpcikgY2xlYW4iDQogCQkJCU91dHB1dD0iJChPdXREaXIpXHB5dGhvbjMuZGxsIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iIg0KIAkJCQlJbmNsdWRlU2VhcmNoUGF0aD0iIg0KQEAgLTEwMyw5ICsxMDMsOSBAQAogCQkJPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTk1ha2VUb29sIg0KLQkJCQlCdWlsZENvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDg2IE91dERpcj0kKE91dERpcikiDQotCQkJCVJlQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIHJlYnVpbGQiDQotCQkJCUNsZWFuQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14ODYgT3V0RGlyPSQoT3V0RGlyKSBjbGVhbiINCisJCQkJQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIg0KKwkJCQlSZUJ1aWxkQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14ODYgT3V0RGlyPSQoT3V0RGlyKSByZWJ1aWxkIg0KKwkJCQlDbGVhbkNvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDg2IE91dERpcj0kKE91dERpcikgY2xlYW4iDQogCQkJCU91dHB1dD0iJChPdXREaXIpXHB5dGhvbjMuZGxsIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iIg0KIAkJCQlJbmNsdWRlU2VhcmNoUGF0aD0iIg0KQEAgLTEyMiw5ICsxMjIsOSBAQAogCQkJPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTk1ha2VUb29sIg0KLQkJCQlCdWlsZENvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDY0IE91dERpcj0kKE91dERpcikiDQotCQkJCVJlQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIHJlYnVpbGQiDQotCQkJCUNsZWFuQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14NjQgT3V0RGlyPSQoT3V0RGlyKSBjbGVhbiINCisJCQkJQnVpbGRDb21tYW5kTGluZT0iY2QgJChJbnB1dERpcilcLi5cLi5cUEMmI3gwRDsmI3gwQTtubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIg0KKwkJCQlSZUJ1aWxkQ29tbWFuZExpbmU9ImNkICQoSW5wdXREaXIpXC4uXC4uXFBDJiN4MEQ7JiN4MEE7bm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14NjQgT3V0RGlyPSQoT3V0RGlyKSByZWJ1aWxkIg0KKwkJCQlDbGVhbkNvbW1hbmRMaW5lPSJjZCAkKElucHV0RGlyKVwuLlwuLlxQQyYjeDBEOyYjeDBBO25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDY0IE91dERpcj0kKE91dERpcikgY2xlYW4iDQogCQkJCU91dHB1dD0iJChPdXREaXIpXHB5dGhvbjMuZGxsIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iIg0KIAkJCQlJbmNsdWRlU2VhcmNoUGF0aD0iIg0KQEAgLTE0NCw3ICsxNDQsNyBAQAogCQkJVW5pcXVlSWRlbnRpZmllcj0iezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn0iDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENccHl0aG9uMy5kZWYiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENccHl0aG9uMy5kZWYiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQogCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KQEAgLTE3Miw3ICsxNzIsNyBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENccHl0aG9uM2RsbC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXHB5dGhvbjNkbGwuYyINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCiAJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQpAQCAtMjEyLDcgKzIxMiw3IEBACiAJCQlVbmlxdWVJZGVudGlmaWVyPSJ7NjdEQTZBQjYtRjgwMC00YzA4LThCN0EtODNCQjEyMUFBRDAxfSINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQQ1xweXRob25fbnQucmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENccHl0aG9uX250LnJjIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5dGhvbmNvcmUudmNwcm9qIGIvUEMvVlM5LjAvcHl0aG9uY29yZS52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA2MSUKcmVuYW1lIGZyb20gUENidWlsZC9weXRob25jb3JlLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvcHl0aG9uY29yZS52Y3Byb2oKaW5kZXggNWU2MTMwOC4uOWZiNjNmZiAxMDA2NDQKLS0tIGEvUENidWlsZC9weXRob25jb3JlLnZjcHJvagorKysgYi9QQy9WUzkuMC9weXRob25jb3JlLnZjcHJvagpAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KKwlWZXJzaW9uPSI5LjAwIg0KIAlOYW1lPSJweXRob25jb3JlIg0KIAlQcm9qZWN0R1VJRD0ie0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0iDQogCVJvb3ROYW1lc3BhY2U9InB5dGhvbmNvcmUiDQpAQCAtNDMsNyArNDMsNyBAQAogCQkJPFRvb2wNCiAJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCiAJCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9abTIwMCAiDQotCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXFB5dGhvbjsuLlxNb2R1bGVzXHpsaWIiDQorCQkJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9Ii4uXC4uXFB5dGhvbjsuLlwuLlxNb2R1bGVzXHpsaWIiDQogCQkJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfVVNSRExMO1B5X0JVSUxEX0NPUkU7UHlfRU5BQkxFX1NIQVJFRDtXSU4zMiINCiAJCQkJUnVudGltZUxpYnJhcnk9IjIiDQogCQkJLz4NCkBAIC01NCw3ICs1NCw3IEBACiAJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCiAJCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cSW5jbHVkZSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCkBAIC0xMTgsNyArMTE4LDcgQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQogCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvWm0yMDAgIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxQeXRob247Li5cTW9kdWxlc1x6bGliIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQeXRob247Li5cLi5cTW9kdWxlc1x6bGliIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzIiDQogCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KIAkJCS8+DQpAQCAtMTI5LDcgKzEyOSw3IEBACiAJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCiAJCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cSW5jbHVkZSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCkBAIC0xOTYsNyArMTk2LDcgQEAKIAkJCQlPcHRpbWl6YXRpb249IjAiDQogCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIwIg0KIAkJCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9ImZhbHNlIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxQeXRob247Li5cTW9kdWxlc1x6bGliIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQeXRob247Li5cLi5cTW9kdWxlc1x6bGliIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzIiDQogCQkJCVJ1bnRpbWVMaWJyYXJ5PSIzIg0KIAkJCS8+DQpAQCAtMjA3LDcgKzIwNyw3IEBACiAJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9ERUJVRyINCiAJCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cSW5jbHVkZSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCkBAIC0yNzQsNyArMjc0LDcgQEAKIAkJCQlPcHRpbWl6YXRpb249IjAiDQogCQkJCUlubGluZUZ1bmN0aW9uRXhwYW5zaW9uPSIwIg0KIAkJCQlFbmFibGVJbnRyaW5zaWNGdW5jdGlvbnM9ImZhbHNlIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxQeXRob247Li5cTW9kdWxlc1x6bGliIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQeXRob247Li5cLi5cTW9kdWxlc1x6bGliIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzIiDQogCQkJCVJ1bnRpbWVMaWJyYXJ5PSIzIg0KIAkJCS8+DQpAQCAtMjg1LDcgKzI4NSw3IEBACiAJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9ERUJVRyINCiAJCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cSW5jbHVkZSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCkBAIC0zNDgsNyArMzQ4LDcgQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQogCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvWm0yMDAgIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxQeXRob247Li5cTW9kdWxlc1x6bGliIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQeXRob247Li5cLi5cTW9kdWxlc1x6bGliIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzIiDQogCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KIAkJCS8+DQpAQCAtMzU5LDcgKzM1OSw3IEBACiAJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCiAJCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cSW5jbHVkZSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCkBAIC00MjMsNyArNDIzLDcgQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQogCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvWm0yMDAgIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxQeXRob247Li5cTW9kdWxlc1x6bGliIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQeXRob247Li5cLi5cTW9kdWxlc1x6bGliIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzIiDQogCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KIAkJCS8+DQpAQCAtNDM0LDcgKzQzNCw3IEBACiAJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCiAJCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cSW5jbHVkZSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCkBAIC00OTgsNyArNDk4LDcgQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQogCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvWm0yMDAgIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxQeXRob247Li5cTW9kdWxlc1x6bGliIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQeXRob247Li5cLi5cTW9kdWxlc1x6bGliIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzIiDQogCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KIAkJCS8+DQpAQCAtNTA5LDcgKzUwOSw3IEBACiAJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCiAJCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cSW5jbHVkZSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCkBAIC01NzMsNyArNTczLDcgQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQogCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvWm0yMDAgIg0KLQkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlxQeXRob247Li5cTW9kdWxlc1x6bGliIg0KKwkJCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIuLlwuLlxQeXRob247Li5cLi5cTW9kdWxlc1x6bGliIg0KIAkJCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzIiDQogCQkJCVJ1bnRpbWVMaWJyYXJ5PSIyIg0KIAkJCS8+DQpAQCAtNTg0LDcgKzU4NCw3IEBACiAJCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCiAJCQkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Ik5ERUJVRyINCiAJCQkJQ3VsdHVyZT0iMTAzMyINCi0JCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cSW5jbHVkZSINCisJCQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iLi5cLi5cSW5jbHVkZSINCiAJCQkvPg0KIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCkBAIC02MzEsMzU5ICs2MzEsMzYzIEBACiAJCQlOYW1lPSJJbmNsdWRlIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcYWJzdHJhY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGFic3RyYWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGFjY3UuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGFjY3UuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcYXNkbC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcYXNkbC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxhc3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGFzdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxiaXRzZXQuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGJpdHNldC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxib29sb2JqZWN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxib29sb2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGJ5dGVzX21ldGhvZHMuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGJ5dGVzX21ldGhvZHMuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcYnl0ZWFycmF5b2JqZWN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxieXRlYXJyYXlvYmplY3QuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcYnl0ZXNvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGJ5dGVzb2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGNlbGxvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGNlbGxvYmplY3QuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcY2V2YWwuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGNldmFsLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGNsYXNzb2JqZWN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxjbGFzc29iamVjdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxjb2RlLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxjb2RlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGNvZGVjcy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcY29kZWNzLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGNvbXBpbGUuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGNvbXBpbGUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcY29tcGxleG9iamVjdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcY29tcGxleG9iamVjdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxkYXRldGltZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZGF0ZXRpbWUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcZGVzY3JvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGRlc2Nyb2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGRpY3RvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGRpY3RvYmplY3QuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcZHluYW1pY19hbm5vdGF0aW9ucy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZHluYW1pY19hbm5vdGF0aW9ucy5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxlbnVtb2JqZWN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxlbnVtb2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGVycmNvZGUuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGVycmNvZGUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcZXZhbC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZXZhbC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxmaWxlb2JqZWN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxmaWxlb2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGZpbGV1dGlscy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZmlsZXV0aWxzLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGZsb2F0b2JqZWN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxmbG9hdG9iamVjdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxmb3JtYXR0ZXJfdW5pY29kZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZnJhbWVvYmplY3QuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcZnJhbWVvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGZ1bmNvYmplY3QuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcZnVuY29iamVjdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZ2Vub2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGdlbm9iamVjdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcZ3JhbWluaXQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcZ3JhbWluaXQuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGdyYW1tYXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcZ3JhbW1hci5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcaW1wb3J0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGltcG9ydC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcaW50cmNoZWNrLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGludHJjaGVjay5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcaXRlcm9iamVjdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxpdGVyb2JqZWN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxsaXN0b2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGxpc3RvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXGxvbmdpbnRyZXByLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGxvbmdpbnRyZXByLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxsb25nb2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXGxvbmdvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXG1hcnNoYWwuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcbWFyc2hhbC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcbWVtb3J5b2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXG1lbW9yeW9iamVjdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcbWV0YWdyYW1tYXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcbWV0YWdyYW1tYXIuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXG1ldGhvZG9iamVjdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxtZXRob2RvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXG1vZHN1cHBvcnQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcbW9kc3VwcG9ydC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcbW9kdWxlb2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXG1vZHVsZW9iamVjdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcbmFtZXNwYWNlb2JqZWN0LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXG5vZGUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcbm9kZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcb2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXG9iamVjdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcb2JqaW1wbC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxvYmppbXBsLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxvcGNvZGUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcb3Bjb2RlLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxvc2RlZnMuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcb3NkZWZzLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxwYXJzZXRvay5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxwYXJzZXRvay5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccGF0Y2hsZXZlbC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxwYXRjaGxldmVsLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxwZ2VuLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHBnZW4uaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHBnZW5oZWFkZXJzLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHBnZW5oZWFkZXJzLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweV9jdXJzZXMuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVccHlfY3Vyc2VzLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweWFyZW5hLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHB5YXJlbmEuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5Y2Fwc3VsZS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxweWNhcHN1bGUuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5Y3R5cGUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVccHljdHlwZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlkZWJ1Zy5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxweWRlYnVnLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweWVycm9ycy5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxweWVycm9ycy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlleHBhdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxweWV4cGF0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweWZwZS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxweWZwZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlnZXRvcHQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVccHlnZXRvcHQuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5bWFjdG9vbGJveC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxweW1hY3Rvb2xib3guaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5bWF0aC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxweW1hdGguaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5dGltZS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxweXRpbWUuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5bWFjcm8uaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVccHltZW0uaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5bWVtLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHB5cG9ydC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVccHlwb3J0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHB5c3RhdGUuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5c3RhdGUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVccHlzdHJjbXAuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5c3RyY21wLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHB5c3RydG9kLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweXN0cnRvZC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxkdG9hLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxkdG9hLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXFB5dGhvbi1hc3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXFB5dGhvbi1hc3QuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcUHl0aG9uLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxQeXRob24uaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVccHl0aG9ucnVuLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxweXRob25ydW4uaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVccHl0aHJlYWQuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHB5dGhyZWFkLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHJhbmdlb2JqZWN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxyYW5nZW9iamVjdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxzZXRvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHNldG9iamVjdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVxzbGljZW9iamVjdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcc2xpY2VvYmplY3QuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcc3RydWN0bWVtYmVyLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxzdHJ1Y3RtZW1iZXIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcc3RydWN0c2VxLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVxzdHJ1Y3RzZXEuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcc3ltdGFibGUuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHN5bXRhYmxlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHN5c21vZHVsZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcc3lzbW9kdWxlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHRpbWVmdW5jcy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcdGltZWZ1bmNzLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHRva2VuLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVx0b2tlbi5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVx0cmFjZWJhY2suaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHRyYWNlYmFjay5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVx0dXBsZW9iamVjdC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcdHVwbGVvYmplY3QuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXEluY2x1ZGVcdWNuaGFzaC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXEluY2x1ZGVcdWNuaGFzaC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cSW5jbHVkZVx1bmljb2Rlb2JqZWN0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cSW5jbHVkZVx1bmljb2Rlb2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxJbmNsdWRlXHdlYWtyZWZvYmplY3QuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxJbmNsdWRlXHdlYWtyZWZvYmplY3QuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KQEAgLTk5MSwyMjIgKzk5NSwyMjIgQEAKIAkJCU5hbWU9Ik1vZHVsZXMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfYmlzZWN0bW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfYmlzZWN0bW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9jb2RlY3Ntb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9jb2RlY3Ntb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2NvbGxlY3Rpb25zbW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfY29sbGVjdGlvbnNtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2Nzdi5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2Nzdi5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfZnVuY3Rvb2xzbW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZnVuY3Rvb2xzbW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9oZWFwcW1vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2hlYXBxbW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9qc29uLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfanNvbi5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfbG9jYWxlbW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfbG9jYWxlbW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9sc3Byb2YuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9sc3Byb2YuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX21hdGguYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9tYXRoLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9tYXRoLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfbWF0aC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfcGlja2xlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfcGlja2xlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9yYW5kb21tb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9yYW5kb21tb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX3NyZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3NyZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfc3RydWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfc3RydWN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF90aW1lLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfd2Vha3JlZi5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfdGltZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX3dpbmFwaS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfd2Vha3JlZi5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcYXJyYXltb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcYXJyYXltb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGF0ZXhpdG1vZHVsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xhdGV4aXRtb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGF1ZGlvb3AuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcYXVkaW9vcC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcYmluYXNjaWkuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcYmluYXNjaWkuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNtYXRobW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGNtYXRobW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfZGF0ZXRpbWVtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2RhdGV0aW1lbW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xlcnJub21vZHVsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xlcnJub21vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcZmF1bHRoYW5kbGVyLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGdjbW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xnY21vZHVsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xpdGVydG9vbHNtb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGl0ZXJ0b29sc21vZHVsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xtYWluLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xtYWluLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXG1hdGhtb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXG1hdGhtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcbWQ1bW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xtZDVtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcbW1hcG1vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcbW1hcG1vZHVsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xvcGVyYXRvci5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcb3BlcmF0b3IuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNccGFyc2VybW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xwYXJzZXJtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNccG9zaXhtb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHBvc2l4bW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHJvdGF0aW5ndHJlZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNccm90YXRpbmd0cmVlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHJvdGF0aW5ndHJlZS5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNccm90YXRpbmd0cmVlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHNoYTFtb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHNoYTFtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcc2hhMjU2bW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xzaGEyNTZtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcc2hhNTEybW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xzaGE1MTJtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcc2lnbmFsbW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xzaWduYWxtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcc3ltdGFibGVtb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHN5bXRhYmxlbW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF90aHJlYWRtb2R1bGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF90aHJlYWRtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcdGltZW1vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcdGltZW1vZHVsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x4eHN1YnR5cGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHh4c3VidHlwZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6aXBpbXBvcnQuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHppcGltcG9ydC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGlibW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGlibW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbHRlcg0KIAkJCQlOYW1lPSJfaW8iDQogCQkJCT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfaW9cZmlsZWlvLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXGZpbGVpby5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2lvXGJ5dGVzaW8uYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfaW9cYnl0ZXNpby5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2lvXHN0cmluZ2lvLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXHN0cmluZ2lvLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfaW9cYnVmZmVyZWRpby5jIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9pb1xidWZmZXJlZGlvLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfaW9caW9iYXNlLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXGlvYmFzZS5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX2lvXHRleHRpby5jIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXF9pb1x0ZXh0aW8uYyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9pb1xfaW9tb2R1bGUuYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xfaW9cX2lvbW9kdWxlLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfaW9cX2lvbW9kdWxlLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcX2lvXF9pb21vZHVsZS5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJPC9GaWx0ZXI+DQpAQCAtMTIxNCwzMSArMTIxOCwzMSBAQAogCQkJCU5hbWU9InpsaWIiDQogCQkJCT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXGFkbGVyMzIuYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGFkbGVyMzIuYyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHpsaWJcY29tcHJlc3MuYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGNvbXByZXNzLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXGNyYzMyLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxjcmMzMi5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlxjcmMzMi5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcY3JjMzIuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHpsaWJcZGVmbGF0ZS5jIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcZGVmbGF0ZS5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlxkZWZsYXRlLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxkZWZsYXRlLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXGd6aW8uYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGd6aW8uYyINCiAJCQkJCT4NCiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KIAkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQpAQCAtMTMwNiw2NyArMTMxMCw2NyBAQAogCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlxpbmZiYWNrLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZiYWNrLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXGluZmZhc3QuYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXGluZmZhc3QuYyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHpsaWJcaW5mZmFzdC5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcaW5mZmFzdC5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlxpbmZmaXhlZC5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcaW5mZml4ZWQuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHpsaWJcaW5mbGF0ZS5jIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcaW5mbGF0ZS5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlxpbmZsYXRlLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZsYXRlLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXGluZnRyZWVzLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlxpbmZ0cmVlcy5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlxpbmZ0cmVlcy5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcaW5mdHJlZXMuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHpsaWJcdHJlZXMuYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXHRyZWVzLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXHRyZWVzLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlx0cmVlcy5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlx1bmNvbXByLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlx1bmNvbXByLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x6bGliXHpjb25mLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcemxpYlx6Y29uZi5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlx6Y29uZi5pbi5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcemNvbmYuaW4uaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHpsaWJcemxpYi5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcemxpYi5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcemxpYlx6dXRpbC5jIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHpsaWJcenV0aWwuYyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHpsaWJcenV0aWwuaCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x6bGliXHp1dGlsLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQk8L0ZpbHRlcj4NCkBAIC0xMzc0LDcxICsxMzc4LDcxIEBACiAJCQkJTmFtZT0iY2prY29kZWNzIg0KIAkJCQk+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfY24uYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19jbi5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfaGsuYyINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19oay5jIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfaXNvMjAyMi5jIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2lzbzIwMjIuYyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2pwLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfanAuYyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2tyLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3Nfa3IuYyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX3R3LmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfdHcuYyINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xhbGdfamlzeDAyMDEuaCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcYWxnX2ppc3gwMjAxLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xjamtjb2RlY3NcY2prY29kZWNzLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXGNqa2NvZGVjcy5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcY2prY29kZWNzXGVtdV9qaXN4MDIxM18yMDAwLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXGVtdV9qaXN4MDIxM18yMDAwLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3NfY24uaCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3NfY24uaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc19oay5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc19oay5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcY2prY29kZWNzXG1hcHBpbmdzX2ppc3gwMjEzX3BhaXIuaCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3NfamlzeDAyMTNfcGFpci5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcY2prY29kZWNzXG1hcHBpbmdzX2pwLmgiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXG1hcHBpbmdzX2pwLmgiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3Nfa3IuaCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3Nfa3IuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCQk8RmlsZQ0KLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc190dy5oIg0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc190dy5oIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQogCQkJCTxGaWxlDQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcY2prY29kZWNzXG11bHRpYnl0ZWNvZGVjLmMiDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcY2prY29kZWNzXG11bHRpYnl0ZWNvZGVjLmMiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xjamtjb2RlY3NcbXVsdGlieXRlY29kZWMuaCINCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1xjamtjb2RlY3NcbXVsdGlieXRlY29kZWMuaCINCiAJCQkJCT4NCiAJCQkJPC9GaWxlPg0KIAkJCTwvRmlsdGVyPg0KQEAgLTE0NDcsMTc1ICsxNDUxLDE3OSBAQAogCQkJTmFtZT0iT2JqZWN0cyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXGFic3RyYWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xhYnN0cmFjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xhY2N1LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xhY2N1LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXGJvb2xvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGJvb2xvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcYnl0ZXNfbWV0aG9kcy5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcYnl0ZXNfbWV0aG9kcy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xieXRlYXJyYXlvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGJ5dGVhcnJheW9iamVjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xieXRlc29iamVjdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcYnl0ZXNvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcY2Fwc3VsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcY2Fwc3VsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xjZWxsb2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xjZWxsb2JqZWN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXGNsYXNzb2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xjbGFzc29iamVjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xjb2Rlb2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xjb2Rlb2JqZWN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXGNvbXBsZXhvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGNvbXBsZXhvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcc3RyaW5nbGliXGNvdW50LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xzdHJpbmdsaWJcY291bnQuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcZGVzY3JvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGRlc2Nyb2JqZWN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXGRpY3RvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGRpY3RvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcZW51bW9iamVjdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcZW51bW9iamVjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xleGNlcHRpb25zLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xleGNlcHRpb25zLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXHN0cmluZ2xpYlxmYXN0c2VhcmNoLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xzdHJpbmdsaWJcZmFzdHNlYXJjaC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xmaWxlb2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xmaWxlb2JqZWN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXHN0cmluZ2xpYlxmaW5kLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xzdHJpbmdsaWJcZmluZC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xmbG9hdG9iamVjdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcZmxvYXRvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcZnJhbWVvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGZyYW1lb2JqZWN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXGZ1bmNvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGZ1bmNvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcZ2Vub2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xnZW5vYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcaXRlcm9iamVjdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcaXRlcm9iamVjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xsaXN0b2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xsaXN0b2JqZWN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXGxvbmdvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXGxvbmdvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcbWVtb3J5b2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xtZW1vcnlvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcbWV0aG9kb2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xtZXRob2RvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcbW9kdWxlb2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xtb2R1bGVvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcb2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xuYW1lc3BhY2VvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcb2JtYWxsb2MuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXG9iamVjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xzdHJpbmdsaWJccGFydGl0aW9uLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xvYm1hbGxvYy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xyYW5nZW9iamVjdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcc3RyaW5nbGliXHBhcnRpdGlvbi5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xzZXRvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHJhbmdlb2JqZWN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXHNsaWNlb2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xzZXRvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcc3RyaW5nbGliXHNwbGl0LmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1xzbGljZW9iamVjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1xzdHJ1Y3RzZXEuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHN0cmluZ2xpYlxzcGxpdC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1x0dXBsZW9iamVjdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcc3RydWN0c2VxLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXHR5cGVvYmplY3QuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHR1cGxlb2JqZWN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxPYmplY3RzXHVuaWNvZGVjdHlwZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcdHlwZW9iamVjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cT2JqZWN0c1x1bmljb2Rlb2JqZWN0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cT2JqZWN0c1x1bmljb2RlY3R5cGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcdW5pY29kZXR5cGVfZGIuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxPYmplY3RzXHVuaWNvZGVvYmplY3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE9iamVjdHNcd2Vha3JlZm9iamVjdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcdW5pY29kZXR5cGVfZGIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE9iamVjdHNcd2Vha3JlZm9iamVjdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpAQCAtMTYyMyw1OSArMTYzMSw1OSBAQAogCQkJTmFtZT0iUGFyc2VyIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBhcnNlclxhY2NlbGVyLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXGFjY2VsZXIuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBhcnNlclxiaXRzZXQuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcYml0c2V0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQYXJzZXJcZmlyc3RzZXRzLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXGZpcnN0c2V0cy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGFyc2VyXGdyYW1tYXIuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcZ3JhbW1hci5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGFyc2VyXGdyYW1tYXIxLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXGdyYW1tYXIxLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQYXJzZXJcbGlzdG5vZGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcbGlzdG5vZGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBhcnNlclxtZXRhZ3JhbW1hci5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxtZXRhZ3JhbW1hci5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGFyc2VyXG15cmVhZGxpbmUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcbXlyZWFkbGluZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGFyc2VyXG5vZGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcbm9kZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUGFyc2VyXHBhcnNlci5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBhcnNlclxwYXJzZXIuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBhcnNlclxwYXJzZXIuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJccGFyc2VyLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQYXJzZXJccGFyc2V0b2suYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJccGFyc2V0b2suYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBhcnNlclx0b2tlbml6ZXIuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQYXJzZXJcdG9rZW5pemVyLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQYXJzZXJcdG9rZW5pemVyLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUGFyc2VyXHRva2VuaXplci5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpAQCAtMTY4MywzOSArMTY5MSwzMSBAQAogCQkJTmFtZT0iUEMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENcX3N1YnByb2Nlc3MuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1x3aW5yZWcuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXHdpbnJlZy5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXGNvbmZpZy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENcY29uZmlnLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcZGxfbnQuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXGRsX250LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcZXJybWFwLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQQ1xlcnJtYXAuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xnZXRwYXRocC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENcZ2V0cGF0aHAuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xtc3ZjcnRtb2R1bGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXGltcG9ydF9udC5jIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUENcbXN2Y3J0bW9kdWxlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQQ1xweWNvbmZpZy5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXHB5Y29uZmlnLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCkBAIC0xNzIzLDE5MSArMTcyMywxOTEgQEAKIAkJCU5hbWU9IlB5dGhvbiINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cX3dhcm5pbmdzLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXF93YXJuaW5ncy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXGFzZGwuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cYXNkbC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXGFzdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxhc3QuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxibHRpbm1vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxibHRpbm1vZHVsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXGNldmFsLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGNldmFsLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cY29kZWNzLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGNvZGVjcy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXGNvbXBpbGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cY29tcGlsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXGR5bmFtaWNfYW5ub3RhdGlvbnMuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZHluYW1pY19hbm5vdGF0aW9ucy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXGR5bmxvYWRfd2luLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGR5bmxvYWRfd2luLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cZXJyb3JzLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGVycm9ycy5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXGZpbGV1dGlscy5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxmaWxldXRpbHMuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxmb3JtYXR0ZXJfdW5pY29kZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxmb3JtYXR0ZXJfdW5pY29kZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXGZyb3plbi5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxmcm96ZW4uYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxmdXR1cmUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZnV0dXJlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cZ2V0YXJncy5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxnZXRhcmdzLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cZ2V0Y29tcGlsZXIuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZ2V0Y29tcGlsZXIuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxnZXRjb3B5cmlnaHQuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZ2V0Y29weXJpZ2h0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cZ2V0b3B0LmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGdldG9wdC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXGdldHBsYXRmb3JtLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXGdldHBsYXRmb3JtLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cZ2V0dmVyc2lvbi5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxnZXR2ZXJzaW9uLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cZ3JhbWluaXQuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cZ3JhbWluaXQuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxpbXBvcnQuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25caW1wb3J0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25caW1wb3J0ZGwuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25caW1wb3J0ZGwuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxpbXBvcnRkbC5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxpbXBvcnRkbC5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXG1hcnNoYWwuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cbWFyc2hhbC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXG1vZHN1cHBvcnQuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cbW9kc3VwcG9ydC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXG15c25wcmludGYuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cbXlzbnByaW50Zi5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXG15c3RydG91bC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxteXN0cnRvdWwuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxwZWVwaG9sZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxwZWVwaG9sZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXHB5YXJlbmEuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccHlhcmVuYS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXHB5Y3R5cGUuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccHljdHlwZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXHB5ZnBlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHB5ZnBlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25ccHltYXRoLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHB5bWF0aC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXHB5dGltZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxweXRpbWUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxweXN0YXRlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHB5c3RhdGUuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxweXN0cmNtcC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxweXN0cmNtcC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXHB5c3RydG9kLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHB5c3RydG9kLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cZHRvYS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxkdG9hLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cUHl0aG9uLWFzdC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblxQeXRob24tYXN0LmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25ccHl0aG9ucnVuLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHB5dGhvbnJ1bi5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KICAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblxyYW5kb20uYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25ccmFuZG9tLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cc3RydWN0bWVtYmVyLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHN0cnVjdG1lbWJlci5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXHN5bXRhYmxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHN5bXRhYmxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cc3lzbW9kdWxlLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHN5c21vZHVsZS5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cUHl0aG9uXHRocmVhZC5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFB5dGhvblx0aHJlYWQuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFB5dGhvblx0aHJlYWRfbnQuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQeXRob25cdGhyZWFkX250LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQeXRob25cdHJhY2ViYWNrLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUHl0aG9uXHRyYWNlYmFjay5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpAQCAtMTkxNSw3ICsxOTE1LDcgQEAKIAkJCU5hbWU9IlJlc291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXHB5dGhvbl9udC5yYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xweXRob25fbnQucmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5dGhvbncudmNwcm9qIGIvUEMvVlM5LjAvcHl0aG9udy52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZyb20gUENidWlsZC9weXRob253LnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvcHl0aG9udy52Y3Byb2oKaW5kZXggN2FlNTYyYS4uN2Y1YzA0YiAxMDA2NDQKLS0tIGEvUENidWlsZC9weXRob253LnZjcHJvagorKysgYi9QQy9WUzkuMC9weXRob253LnZjcHJvagpAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KKwlWZXJzaW9uPSI5LjAwIg0KIAlOYW1lPSJweXRob253Ig0KIAlQcm9qZWN0R1VJRD0ie0Y0MjI5Q0MzLTg3M0MtNDlBRS05NzI5LUREMzA4RUQ0Q0Q0QX0iDQogCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjEzMTA3MiINCkBAIC02MDAsNyArNjAwLDcgQEAKIAkJCU5hbWU9IlJlc291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXHB5dGhvbl9leGUucmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENccHl0aG9uX2V4ZS5yYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KQEAgLTYwOCw3ICs2MDgsNyBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXFdpbk1haW4uYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxQQ1xXaW5NYWluLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3JlbGVhc2UudnNwcm9wcyBiL1BDL1ZTOS4wL3JlbGVhc2UudnNwcm9wcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gUENidWlsZC9yZWxlYXNlLnZzcHJvcHMKcmVuYW1lIHRvIFBDL1ZTOS4wL3JlbGVhc2UudnNwcm9wcwpkaWZmIC0tZ2l0IGEvUENidWlsZC9zZWxlY3QudmNwcm9qIGIvUEMvVlM5LjAvc2VsZWN0LnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL3NlbGVjdC52Y3Byb2oKcmVuYW1lIHRvIFBDL1ZTOS4wL3NlbGVjdC52Y3Byb2oKaW5kZXggMDJlMGEyZi4uNjM3ZmQ5NyAxMDA2NDQKLS0tIGEvUENidWlsZC9zZWxlY3QudmNwcm9qCisrKyBiL1BDL1ZTOS4wL3NlbGVjdC52Y3Byb2oKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCisJVmVyc2lvbj0iOS4wMCINCiAJTmFtZT0ic2VsZWN0Ig0KIAlQcm9qZWN0R1VJRD0iezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30iDQogCVJvb3ROYW1lc3BhY2U9InNlbGVjdCINCkBAIC01MjcsNyArNTI3LDcgQEAKIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHNlbGVjdG1vZHVsZS5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcc2VsZWN0bW9kdWxlLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3NxbGl0ZTMudmNwcm9qIGIvUEMvVlM5LjAvc3FsaXRlMy52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA5OSUKcmVuYW1lIGZyb20gUENidWlsZC9zcWxpdGUzLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvc3FsaXRlMy52Y3Byb2oKaW5kZXggZTE3NzFmNC4uZWY4YzMyOCAxMDA2NDQKLS0tIGEvUENidWlsZC9zcWxpdGUzLnZjcHJvagorKysgYi9QQy9WUzkuMC9zcWxpdGUzLnZjcHJvagpAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KKwlWZXJzaW9uPSI5LjAwIg0KIAlOYW1lPSJzcWxpdGUzIg0KIAlQcm9qZWN0R1VJRD0ie0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0iDQogCVJvb3ROYW1lc3BhY2U9InNxbGl0ZTMiDQpkaWZmIC0tZ2l0IGEvUENidWlsZC9zcWxpdGUzLnZzcHJvcHMgYi9QQy9WUzkuMC9zcWxpdGUzLnZzcHJvcHMKc2ltaWxhcml0eSBpbmRleCAxMDAlCnJlbmFtZSBmcm9tIFBDYnVpbGQvc3FsaXRlMy52c3Byb3BzCnJlbmFtZSB0byBQQy9WUzkuMC9zcWxpdGUzLnZzcHJvcHMKZGlmZiAtLWdpdCBhL1BDYnVpbGQvc3NsLnZjcHJvaiBiL1BDL1ZTOS4wL3NzbC52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA5OSUKcmVuYW1lIGZyb20gUENidWlsZC9zc2wudmNwcm9qCnJlbmFtZSB0byBQQy9WUzkuMC9zc2wudmNwcm9qCmluZGV4IGVjMmJlMzAuLmQzMGU4NzcgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvc3NsLnZjcHJvagorKysgYi9QQy9WUzkuMC9zc2wudmNwcm9qCkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQogPFZpc3VhbFN0dWRpb1Byb2plY3QNCiAJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjksMDAiDQorCVZlcnNpb249IjkuMDAiDQogCU5hbWU9InNzbCINCiAJUHJvamVjdEdVSUQ9IntFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9Ig0KIAlSb290TmFtZXNwYWNlPSJzc2wiDQpkaWZmIC0tZ2l0IGEvUENidWlsZC91bmljb2RlZGF0YS52Y3Byb2ogYi9QQy9WUzkuMC91bmljb2RlZGF0YS52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVuYW1lIGZyb20gUENidWlsZC91bmljb2RlZGF0YS52Y3Byb2oKcmVuYW1lIHRvIFBDL1ZTOS4wL3VuaWNvZGVkYXRhLnZjcHJvagppbmRleCA1OTY4MmExLi5iNjZmZjcyIDEwMDY0NAotLS0gYS9QQ2J1aWxkL3VuaWNvZGVkYXRhLnZjcHJvagorKysgYi9QQy9WUzkuMC91bmljb2RlZGF0YS52Y3Byb2oKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCiA8VmlzdWFsU3R1ZGlvUHJvamVjdA0KIAlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCisJVmVyc2lvbj0iOS4wMCINCiAJTmFtZT0idW5pY29kZWRhdGEiDQogCVByb2plY3RHVUlEPSJ7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfSINCiAJUm9vdE5hbWVzcGFjZT0idW5pY29kZWRhdGEiDQpAQCAtNTExLDExICs1MTEsMTEgQEAKIAkJCU5hbWU9IkhlYWRlciBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHVuaWNvZGVkYXRhX2RiLmgiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cTW9kdWxlc1x1bmljb2RlZGF0YV9kYi5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x1bmljb2RlbmFtZV9kYi5oIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXE1vZHVsZXNcdW5pY29kZW5hbWVfZGIuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KQEAgLTUyMyw3ICs1MjMsNyBAQAogCQkJTmFtZT0iU291cmNlIEZpbGVzIg0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcdW5pY29kZWRhdGEuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHVuaWNvZGVkYXRhLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3c5eHBvcGVuLnZjcHJvaiBiL1BDL1ZTOS4wL3c5eHBvcGVuLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk5JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL3c5eHBvcGVuLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvdzl4cG9wZW4udmNwcm9qCmluZGV4IDA1ZDhmODEuLjdhODViMDAgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvdzl4cG9wZW4udmNwcm9qCisrKyBiL1BDL1ZTOS4wL3c5eHBvcGVuLnZjcHJvagpAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KKwlWZXJzaW9uPSI5LjAwIg0KIAlOYW1lPSJ3OXhwb3BlbiINCiAJUHJvamVjdEdVSUQ9IntFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9Ig0KIAlSb290TmFtZXNwYWNlPSJ3OXhwb3BlbiINCkBAIC01NjYsNyArNTY2LDcgQEAKIAkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCiAJCQk+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxQQ1x3OXhwb3Blbi5jIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXFBDXHc5eHBvcGVuLmMiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQk8L0ZpbHRlcj4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3dpbnNvdW5kLnZjcHJvaiBiL1BDL1ZTOS4wL3dpbnNvdW5kLnZjcHJvagpzaW1pbGFyaXR5IGluZGV4IDk4JQpyZW5hbWUgZnJvbSBQQ2J1aWxkL3dpbnNvdW5kLnZjcHJvagpyZW5hbWUgdG8gUEMvVlM5LjAvd2luc291bmQudmNwcm9qCmluZGV4IDY5NDcwY2MuLjQ3ZGJmMjkgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvd2luc291bmQudmNwcm9qCisrKyBiL1BDL1ZTOS4wL3dpbnNvdW5kLnZjcHJvagpAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IldpbmRvd3MtMTI1MiI/Pg0KIDxWaXN1YWxTdHVkaW9Qcm9qZWN0DQogCVByb2plY3RUeXBlPSJWaXN1YWwgQysrIg0KLQlWZXJzaW9uPSI5LDAwIg0KKwlWZXJzaW9uPSI5LjAwIg0KIAlOYW1lPSJ3aW5zb3VuZCINCiAJUHJvamVjdEdVSUQ9InsyOEI1RDc3Ny1EREYyLTRCNkItQjM0Ri0zMUQ5Mzg4MTM4NTZ9Ig0KIAlSb290TmFtZXNwYWNlPSJ3aW5zb3VuZCINCkBAIC01MTMsNyArNTEzLDcgQEAKIAkJCVVuaXF1ZUlkZW50aWZpZXI9Ins0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9Ig0KIAkJCT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFBDXHdpbnNvdW5kLmMiDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5cUENcd2luc291bmQuYyINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCTwvRmlsdGVyPg0KZGlmZiAtLWdpdCBhL1BDYnVpbGQveDY0LnZzcHJvcHMgYi9QQy9WUzkuMC94NjQudnNwcm9wcwpzaW1pbGFyaXR5IGluZGV4IDEwMCUKcmVuYW1lIGZyb20gUENidWlsZC94NjQudnNwcm9wcwpyZW5hbWUgdG8gUEMvVlM5LjAveDY0LnZzcHJvcHMKZGlmZiAtLWdpdCBhL1BDYnVpbGQveHhsaW1pdGVkLnZjcHJvaiBiL1BDL1ZTOS4wL3h4bGltaXRlZC52Y3Byb2oKc2ltaWxhcml0eSBpbmRleCA5OCUKcmVuYW1lIGZyb20gUENidWlsZC94eGxpbWl0ZWQudmNwcm9qCnJlbmFtZSB0byBQQy9WUzkuMC94eGxpbWl0ZWQudmNwcm9qCmluZGV4IDZkYTIwMTYuLmEzYWFhZDYgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQveHhsaW1pdGVkLnZjcHJvagorKysgYi9QQy9WUzkuMC94eGxpbWl0ZWQudmNwcm9qCkBAIC0xLDcgKzEsNyBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iV2luZG93cy0xMjUyIj8+DQogPFZpc3VhbFN0dWRpb1Byb2plY3QNCiAJUHJvamVjdFR5cGU9IlZpc3VhbCBDKysiDQotCVZlcnNpb249IjksMDAiDQorCVZlcnNpb249IjkuMDAiDQogCU5hbWU9Inh4bGltaXRlZCINCiAJUHJvamVjdEdVSUQ9IntGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9Ig0KIAlSb290TmFtZXNwYWNlPSJ4eGxpbWl0ZWQiDQpAQCAtNDA3LDcgKzQwNyw3IEBACiAJCQlOYW1lPSJTb3VyY2UgRmlsZXMiDQogCQkJPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1x4eGxpbWl0ZWQuYyINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxNb2R1bGVzXHh4bGltaXRlZC5jIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJPC9GaWx0ZXI+DQpkaWZmIC0tZ2l0IGEvUEMvX21zaS5jIGIvUEMvX21zaS5jCmluZGV4IGQ0ZDg0ODMuLjBiNWI5NGUgMTAwNjQ0Ci0tLSBhL1BDL19tc2kuYworKysgYi9QQy9fbXNpLmMKQEAgLTE4LDcgKzE4LDcgQEAKIHV1aWRjcmVhdGUoUHlPYmplY3QqIG9iaiwgUHlPYmplY3QqYXJncykKIHsKICAgICBVVUlEIHJlc3VsdDsKLSAgICB1bnNpZ25lZCBzaG9ydCAqY3Jlc3VsdDsKKyAgICB3Y2hhcl90ICpjcmVzdWx0OwogICAgIFB5T2JqZWN0ICpvcmVzdWx0OwogCiAgICAgLyogTWF5IHJldHVybiBvaywgbG9jYWwgb25seSwgYW5kIG5vIGFkZHJlc3MuCkBAIC0zNSw3ICszNSw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KIAotICAgIG9yZXN1bHQgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoY3Jlc3VsdCwgd2NzbGVuKGNyZXN1bHQpKTsKKyAgICBvcmVzdWx0ID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcihjcmVzdWx0LCB3Y3NsZW4oY3Jlc3VsdCkpOwogICAgIFJwY1N0cmluZ0ZyZWVXKCZjcmVzdWx0KTsKICAgICByZXR1cm4gb3Jlc3VsdDsKIApAQCAtMTIyLDcgKzEyMiw5IEBACiBzdGF0aWMgRk5GQ0lTVEFUVVMoY2Jfc3RhdHVzKQogewogICAgIGlmIChwdikgewotICAgICAgICBQeU9iamVjdCAqcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChwdiwgInN0YXR1cyIsICJpaWkiLCB0eXBlU3RhdHVzLCBjYjEsIGNiMik7CisgICAgICAgIF9QeV9JREVOVElGSUVSKHN0YXR1cyk7CisKKyAgICAgICAgUHlPYmplY3QgKnJlc3VsdCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQocHYsICZQeUlkX3N0YXR1cywgImlpaSIsIHR5cGVTdGF0dXMsIGNiMSwgY2IyKTsKICAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKQEAgLTEzMyw3ICsxMzUsOSBAQAogc3RhdGljIEZORkNJR0VUTkVYVENBQklORVQoY2JfZ2V0bmV4dGNhYmluZXQpCiB7CiAgICAgaWYgKHB2KSB7Ci0gICAgICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHB2LCAiZ2V0bmV4dGNhYmluZXQiLCAiaSIsIHBjY2FiLT5pQ2FiKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoZ2V0bmV4dGNhYmluZXQpOworCisgICAgICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHB2LCAmUHlJZF9nZXRuZXh0Y2FiaW5ldCwgImkiLCBwY2NhYi0+aUNhYik7CiAgICAgICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgaWYgKCFQeUJ5dGVzX0NoZWNrKHJlc3VsdCkpIHsKQEAgLTM3NSw3ICszNzksNyBAQAogICAgIH0KICAgICBpZiAoc3RhdHVzICE9IEVSUk9SX1NVQ0NFU1MpCiAgICAgICAgIHJldHVybiBtc2llcnJvcigoaW50KSBzdGF0dXMpOwotICAgIHN0cmluZyA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShyZXMsIHNpemUpOworICAgIHN0cmluZyA9IFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIocmVzLCBzaXplKTsKICAgICBpZiAoYnVmICE9IHJlcykKICAgICAgICAgZnJlZShyZXMpOwogICAgIHJldHVybiBzdHJpbmc7CkBAIC0zOTcsNyArNDAxLDcgQEAKIHsKICAgICBpbnQgc3RhdHVzOwogICAgIGludCBmaWVsZDsKLSAgICBQeV9VTklDT0RFICpkYXRhOworICAgIHdjaGFyX3QgKmRhdGE7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIml1OlNldFN0cmluZyIsICZmaWVsZCwgJmRhdGEpKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTQxNCw3ICs0MTgsNyBAQAogewogICAgIGludCBzdGF0dXM7CiAgICAgaW50IGZpZWxkOwotICAgIFB5X1VOSUNPREUgKmRhdGE7CisgICAgd2NoYXJfdCAqZGF0YTsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiaXU6U2V0U3RyZWFtIiwgJmZpZWxkLCAmZGF0YSkpCiAgICAgICAgIHJldHVybiBOVUxMOwpkaWZmIC0tZ2l0IGEvUEMvX3N1YnByb2Nlc3MuYyBiL1BDL19zdWJwcm9jZXNzLmMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5YTc5YTcuLjAwMDAwMDAKLS0tIGEvUEMvX3N1YnByb2Nlc3MuYworKysgL2Rldi9udWxsCkBAIC0xLDY5MCArMCwwIEBACi0vKgotICogc3VwcG9ydCByb3V0aW5lcyBmb3Igc3VicHJvY2VzcyBtb2R1bGUKLSAqCi0gKiBDdXJyZW50bHksIHRoaXMgZXh0ZW5zaW9uIG1vZHVsZSBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgdGhlCi0gKiBzdWJwcm9jZXNzIG1vZHVsZSBvbiBXaW5kb3dzLCBidXQgaW4gdGhlIGZ1dHVyZSwgc3R1YnMgZm9yIG90aGVyCi0gKiBwbGF0Zm9ybXMgbWlnaHQgYmUgYWRkZWQgaGVyZSBhcyB3ZWxsLgotICoKLSAqIENvcHlyaWdodCAoYykgMjAwNCBieSBGcmVkcmlrIEx1bmRoIDxmcmVkcmlrQHB5dGhvbndhcmUuY29tPgotICogQ29weXJpZ2h0IChjKSAyMDA0IGJ5IFNlY3JldCBMYWJzIEFCLCBodHRwOi8vd3d3LnB5dGhvbndhcmUuY29tCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDQgYnkgUGV0ZXIgQXN0cmFuZCA8YXN0cmFuZEBseXNhdG9yLmxpdS5zZT4KLSAqCi0gKiBCeSBvYnRhaW5pbmcsIHVzaW5nLCBhbmQvb3IgY29weWluZyB0aGlzIHNvZnR3YXJlIGFuZC9vciBpdHMKLSAqIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiwgeW91IGFncmVlIHRoYXQgeW91IGhhdmUgcmVhZCwgdW5kZXJzdG9vZCwKLSAqIGFuZCB3aWxsIGNvbXBseSB3aXRoIHRoZSBmb2xsb3dpbmcgdGVybXMgYW5kIGNvbmRpdGlvbnM6Ci0gKgotICogUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBhbmQKLSAqIGl0cyBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZm9yIGFueSBwdXJwb3NlIGFuZCB3aXRob3V0IGZlZSBpcwotICogaGVyZWJ5IGdyYW50ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYXBwZWFycyBpbgotICogYWxsIGNvcGllcywgYW5kIHRoYXQgYm90aCB0aGF0IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbgotICogbm90aWNlIGFwcGVhciBpbiBzdXBwb3J0aW5nIGRvY3VtZW50YXRpb24sIGFuZCB0aGF0IHRoZSBuYW1lIG9mIHRoZQotICogYXV0aG9ycyBub3QgYmUgdXNlZCBpbiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0bwotICogZGlzdHJpYnV0aW9uIG9mIHRoZSBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yCi0gKiBwZXJtaXNzaW9uLgotICoKLSAqIFRIRSBBVVRIT1JTIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFLAotICogSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTLgotICogSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgSU5ESVJFQ1QgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NIExPU1MKLSAqIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwKLSAqIE5FR0xJR0VOQ0UgT1IgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OCi0gKiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotLyogTGljZW5zZWQgdG8gUFNGIHVuZGVyIGEgQ29udHJpYnV0b3IgQWdyZWVtZW50LiAqLwotLyogU2VlIGh0dHA6Ly93d3cucHl0aG9uLm9yZy8yLjQvbGljZW5zZSBmb3IgbGljZW5zaW5nIGRldGFpbHMuICovCi0KLSNpbmNsdWRlICJQeXRob24uaCIKLQotI2RlZmluZSBXSU5ET1dTX0xFQU5fQU5EX01FQU4KLSNpbmNsdWRlICJ3aW5kb3dzLmgiCi0KLS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0vKiBoYW5kbGUgd3JhcHBlci4gIG5vdGUgdGhhdCB0aGlzIGxpYnJhcnkgdXNlcyBpbnRlZ2VycyB3aGVuIHBhc3NpbmcKLSAgIGhhbmRsZXMgdG8gYSBmdW5jdGlvbiwgYW5kIGhhbmRsZSB3cmFwcGVycyB3aGVuIHJldHVybmluZyBoYW5kbGVzLgotICAgdGhlIHdyYXBwZXIgaXMgdXNlZCB0byBwcm92aWRlIERldGFjaCBhbmQgQ2xvc2UgbWV0aG9kcyAqLwotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgUHlPYmplY3RfSEVBRAotICAgIEhBTkRMRSBoYW5kbGU7Ci19IHNwX2hhbmRsZV9vYmplY3Q7Ci0KLXN0YXRpYyBQeVR5cGVPYmplY3Qgc3BfaGFuZGxlX3R5cGU7Ci0KLXN0YXRpYyBQeU9iamVjdCoKLXNwX2hhbmRsZV9uZXcoSEFORExFIGhhbmRsZSkKLXsKLSAgICBzcF9oYW5kbGVfb2JqZWN0KiBzZWxmOwotCi0gICAgc2VsZiA9IFB5T2JqZWN0X05FVyhzcF9oYW5kbGVfb2JqZWN0LCAmc3BfaGFuZGxlX3R5cGUpOwotICAgIGlmIChzZWxmID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgc2VsZi0+aGFuZGxlID0gaGFuZGxlOwotCi0gICAgcmV0dXJuIChQeU9iamVjdCopIHNlbGY7Ci19Ci0KLSNpZiBkZWZpbmVkKE1TX1dJTjMyKSAmJiAhZGVmaW5lZChNU19XSU42NCkKLSNkZWZpbmUgSEFORExFX1RPX1BZTlVNKGhhbmRsZSkgUHlMb25nX0Zyb21Mb25nKChsb25nKSBoYW5kbGUpCi0jZGVmaW5lIFBZX0hBTkRMRV9QQVJBTSAibCIKLSNlbHNlCi0jZGVmaW5lIEhBTkRMRV9UT19QWU5VTShoYW5kbGUpIFB5TG9uZ19Gcm9tTG9uZ0xvbmcoKGxvbmcgbG9uZykgaGFuZGxlKQotI2RlZmluZSBQWV9IQU5ETEVfUEFSQU0gIkwiCi0jZW5kaWYKLQotc3RhdGljIFB5T2JqZWN0Kgotc3BfaGFuZGxlX2RldGFjaChzcF9oYW5kbGVfb2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKLXsKLSAgICBIQU5ETEUgaGFuZGxlOwotCi0gICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiOkRldGFjaCIpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGhhbmRsZSA9IHNlbGYtPmhhbmRsZTsKLQotICAgIHNlbGYtPmhhbmRsZSA9IElOVkFMSURfSEFORExFX1ZBTFVFOwotCi0gICAgLyogbm90ZTogcmV0dXJuIHRoZSBjdXJyZW50IGhhbmRsZSwgYXMgYW4gaW50ZWdlciAqLwotICAgIHJldHVybiBIQU5ETEVfVE9fUFlOVU0oaGFuZGxlKTsKLX0KLQotc3RhdGljIFB5T2JqZWN0Kgotc3BfaGFuZGxlX2Nsb3NlKHNwX2hhbmRsZV9vYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQotewotICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoYXJncywgIjpDbG9zZSIpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmIChzZWxmLT5oYW5kbGUgIT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKLSAgICAgICAgQ2xvc2VIYW5kbGUoc2VsZi0+aGFuZGxlKTsKLSAgICAgICAgc2VsZi0+aGFuZGxlID0gSU5WQUxJRF9IQU5ETEVfVkFMVUU7Ci0gICAgfQotICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKLSAgICByZXR1cm4gUHlfTm9uZTsKLX0KLQotc3RhdGljIHZvaWQKLXNwX2hhbmRsZV9kZWFsbG9jKHNwX2hhbmRsZV9vYmplY3QqIHNlbGYpCi17Ci0gICAgaWYgKHNlbGYtPmhhbmRsZSAhPSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKLSAgICAgICAgQ2xvc2VIYW5kbGUoc2VsZi0+aGFuZGxlKTsKLSAgICBQeU9iamVjdF9GUkVFKHNlbGYpOwotfQotCi1zdGF0aWMgUHlNZXRob2REZWYgc3BfaGFuZGxlX21ldGhvZHNbXSA9IHsKLSAgICB7IkRldGFjaCIsIChQeUNGdW5jdGlvbikgc3BfaGFuZGxlX2RldGFjaCwgTUVUSF9WQVJBUkdTfSwKLSAgICB7IkNsb3NlIiwgIChQeUNGdW5jdGlvbikgc3BfaGFuZGxlX2Nsb3NlLCAgTUVUSF9WQVJBUkdTfSwKLSAgICB7TlVMTCwgTlVMTH0KLX07Ci0KLXN0YXRpYyBQeU9iamVjdCoKLXNwX2hhbmRsZV9hc19pbnQoc3BfaGFuZGxlX29iamVjdCogc2VsZikKLXsKLSAgICByZXR1cm4gSEFORExFX1RPX1BZTlVNKHNlbGYtPmhhbmRsZSk7Ci19Ci0KLXN0YXRpYyBQeU51bWJlck1ldGhvZHMgc3BfaGFuZGxlX2FzX251bWJlcjsKLQotc3RhdGljIFB5VHlwZU9iamVjdCBzcF9oYW5kbGVfdHlwZSA9IHsKLSAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoTlVMTCwgMCkKLSAgICAiX3N1YnByb2Nlc3NfaGFuZGxlIiwgc2l6ZW9mKHNwX2hhbmRsZV9vYmplY3QpLCAwLAotICAgIChkZXN0cnVjdG9yKSBzcF9oYW5kbGVfZGVhbGxvYywgLyp0cF9kZWFsbG9jKi8KLSAgICAwLCAvKnRwX3ByaW50Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2dldGF0dHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfc2V0YXR0ciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yZXNlcnZlZCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yZXByKi8KLSAgICAmc3BfaGFuZGxlX2FzX251bWJlciwgICAgICAgICAgICAgICAvKnRwX2FzX251bWJlciAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfc2VxdWVuY2UgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX21hcHBpbmcgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2hhc2gqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfY2FsbCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9zdHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfZ2V0YXR0cm8qLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfc2V0YXR0cm8qLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfYXNfYnVmZmVyKi8KLSAgICBQeV9UUEZMQUdTX0RFRkFVTFQsICAgICAgICAgICAgICAgICAvKnRwX2ZsYWdzKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2RvYyovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF90cmF2ZXJzZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9jbGVhciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yaWNoY29tcGFyZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF93ZWFrbGlzdG9mZnNldCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2l0ZXJuZXh0Ki8KLSAgICBzcF9oYW5kbGVfbWV0aG9kcywgICAgICAgICAgICAgICAgICAvKnRwX21ldGhvZHMqLwotfTsKLQotLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLS8qIHdpbmRvd3MgQVBJIGZ1bmN0aW9ucyAqLwotCi1QeURvY19TVFJWQVIoR2V0U3RkSGFuZGxlX2RvYywKLSJHZXRTdGRIYW5kbGUoaGFuZGxlKSAtPiBpbnRlZ2VyXG5cCi1cblwKLVJldHVybiBhIGhhbmRsZSB0byB0aGUgc3BlY2lmaWVkIHN0YW5kYXJkIGRldmljZVxuXAotKFNURF9JTlBVVF9IQU5ETEUsIFNURF9PVVRQVVRfSEFORExFLCBTVERfRVJST1JfSEFORExFKS5cblwKLVRoZSBpbnRlZ2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgaGFuZGxlIG9iamVjdCBpcyByZXR1cm5lZC4iKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLXNwX0dldFN0ZEhhbmRsZShQeU9iamVjdCogc2VsZiwgUHlPYmplY3QqIGFyZ3MpCi17Ci0gICAgSEFORExFIGhhbmRsZTsKLSAgICBpbnQgc3RkX2hhbmRsZTsKLQotICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoYXJncywgImk6R2V0U3RkSGFuZGxlIiwgJnN0ZF9oYW5kbGUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICBoYW5kbGUgPSBHZXRTdGRIYW5kbGUoKERXT1JEKSBzdGRfaGFuZGxlKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotCi0gICAgaWYgKGhhbmRsZSA9PSBJTlZBTElEX0hBTkRMRV9WQUxVRSkKLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKEdldExhc3RFcnJvcigpKTsKLQotICAgIGlmICghIGhhbmRsZSkgewotICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgICAgIHJldHVybiBQeV9Ob25lOwotICAgIH0KLQotICAgIC8qIG5vdGU6IHJldHVybnMgaW50ZWdlciwgbm90IGhhbmRsZSBvYmplY3QgKi8KLSAgICByZXR1cm4gSEFORExFX1RPX1BZTlVNKGhhbmRsZSk7Ci19Ci0KLVB5RG9jX1NUUlZBUihHZXRDdXJyZW50UHJvY2Vzc19kb2MsCi0iR2V0Q3VycmVudFByb2Nlc3MoKSAtPiBoYW5kbGVcblwKLVxuXAotUmV0dXJuIGEgaGFuZGxlIG9iamVjdCBmb3IgdGhlIGN1cnJlbnQgcHJvY2Vzcy4iKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLXNwX0dldEN1cnJlbnRQcm9jZXNzKFB5T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKLXsKLSAgICBpZiAoISBQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICI6R2V0Q3VycmVudFByb2Nlc3MiKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICByZXR1cm4gc3BfaGFuZGxlX25ldyhHZXRDdXJyZW50UHJvY2VzcygpKTsKLX0KLQotUHlEb2NfU1RSVkFSKER1cGxpY2F0ZUhhbmRsZV9kb2MsCi0iRHVwbGljYXRlSGFuZGxlKHNvdXJjZV9wcm9jX2hhbmRsZSwgc291cmNlX2hhbmRsZSxcblwKLSAgICAgICAgICAgICAgICAgdGFyZ2V0X3Byb2NfaGFuZGxlLCB0YXJnZXRfaGFuZGxlLCBhY2Nlc3MsXG5cCi0gICAgICAgICAgICAgICAgIGluaGVyaXRbLCBvcHRpb25zXSkgLT4gaGFuZGxlXG5cCi1cblwKLVJldHVybiBhIGR1cGxpY2F0ZSBoYW5kbGUgb2JqZWN0LlxuXAotXG5cCi1UaGUgZHVwbGljYXRlIGhhbmRsZSByZWZlcnMgdG8gdGhlIHNhbWUgb2JqZWN0IGFzIHRoZSBvcmlnaW5hbFxuXAotaGFuZGxlLiBUaGVyZWZvcmUsIGFueSBjaGFuZ2VzIHRvIHRoZSBvYmplY3QgYXJlIHJlZmxlY3RlZFxuXAotdGhyb3VnaCBib3RoIGhhbmRsZXMuIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1zcF9EdXBsaWNhdGVIYW5kbGUoUHlPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQotewotICAgIEhBTkRMRSB0YXJnZXRfaGFuZGxlOwotICAgIEJPT0wgcmVzdWx0OwotCi0gICAgSEFORExFIHNvdXJjZV9wcm9jZXNzX2hhbmRsZTsKLSAgICBIQU5ETEUgc291cmNlX2hhbmRsZTsKLSAgICBIQU5ETEUgdGFyZ2V0X3Byb2Nlc3NfaGFuZGxlOwotICAgIGludCBkZXNpcmVkX2FjY2VzczsKLSAgICBpbnQgaW5oZXJpdF9oYW5kbGU7Ci0gICAgaW50IG9wdGlvbnMgPSAwOwotCi0gICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZShhcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgUFlfSEFORExFX1BBUkFNIFBZX0hBTkRMRV9QQVJBTSBQWV9IQU5ETEVfUEFSQU0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJpaXxpOkR1cGxpY2F0ZUhhbmRsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmc291cmNlX3Byb2Nlc3NfaGFuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNvdXJjZV9oYW5kbGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmdGFyZ2V0X3Byb2Nlc3NfaGFuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJmRlc2lyZWRfYWNjZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJmluaGVyaXRfaGFuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJm9wdGlvbnMpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXN1bHQgPSBEdXBsaWNhdGVIYW5kbGUoCi0gICAgICAgIHNvdXJjZV9wcm9jZXNzX2hhbmRsZSwKLSAgICAgICAgc291cmNlX2hhbmRsZSwKLSAgICAgICAgdGFyZ2V0X3Byb2Nlc3NfaGFuZGxlLAotICAgICAgICAmdGFyZ2V0X2hhbmRsZSwKLSAgICAgICAgZGVzaXJlZF9hY2Nlc3MsCi0gICAgICAgIGluaGVyaXRfaGFuZGxlLAotICAgICAgICBvcHRpb25zCi0gICAgKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotCi0gICAgaWYgKCEgcmVzdWx0KQotICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoR2V0TGFzdEVycm9yKCkpOwotCi0gICAgcmV0dXJuIHNwX2hhbmRsZV9uZXcodGFyZ2V0X2hhbmRsZSk7Ci19Ci0KLVB5RG9jX1NUUlZBUihDcmVhdGVQaXBlX2RvYywKLSJDcmVhdGVQaXBlKHBpcGVfYXR0cnMsIHNpemUpIC0+IChyZWFkX2hhbmRsZSwgd3JpdGVfaGFuZGxlKVxuXAotXG5cCi1DcmVhdGUgYW4gYW5vbnltb3VzIHBpcGUsIGFuZCByZXR1cm4gaGFuZGxlcyB0byB0aGUgcmVhZCBhbmRcblwKLXdyaXRlIGVuZHMgb2YgdGhlIHBpcGUuXG5cCi1cblwKLXBpcGVfYXR0cnMgaXMgaWdub3JlZCBpbnRlcm5hbGx5IGFuZCBjYW4gYmUgTm9uZS4iKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLXNwX0NyZWF0ZVBpcGUoUHlPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQotewotICAgIEhBTkRMRSByZWFkX3BpcGU7Ci0gICAgSEFORExFIHdyaXRlX3BpcGU7Ci0gICAgQk9PTCByZXN1bHQ7Ci0KLSAgICBQeU9iamVjdCogcGlwZV9hdHRyaWJ1dGVzOyAvKiBpZ25vcmVkICovCi0gICAgaW50IHNpemU7Ci0KLSAgICBpZiAoISBQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPaTpDcmVhdGVQaXBlIiwgJnBpcGVfYXR0cmlidXRlcywgJnNpemUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXN1bHQgPSBDcmVhdGVQaXBlKCZyZWFkX3BpcGUsICZ3cml0ZV9waXBlLCBOVUxMLCBzaXplKTsKLSAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotCi0gICAgaWYgKCEgcmVzdWx0KQotICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoR2V0TGFzdEVycm9yKCkpOwotCi0gICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoCi0gICAgICAgICJOTiIsIHNwX2hhbmRsZV9uZXcocmVhZF9waXBlKSwgc3BfaGFuZGxlX25ldyh3cml0ZV9waXBlKSk7Ci19Ci0KLS8qIGhlbHBlcnMgZm9yIGNyZWF0ZXByb2Nlc3MgKi8KLQotc3RhdGljIGludAotZ2V0aW50KFB5T2JqZWN0KiBvYmosIGNoYXIqIG5hbWUpCi17Ci0gICAgUHlPYmplY3QqIHZhbHVlOwotICAgIGludCByZXQ7Ci0KLSAgICB2YWx1ZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCBuYW1lKTsKLSAgICBpZiAoISB2YWx1ZSkgewotICAgICAgICBQeUVycl9DbGVhcigpOyAvKiBGSVhNRTogcHJvcGFnYXRlIGVycm9yPyAqLwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgcmV0ID0gKGludCkgUHlMb25nX0FzTG9uZyh2YWx1ZSk7Ci0gICAgUHlfREVDUkVGKHZhbHVlKTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgSEFORExFCi1nZXRoYW5kbGUoUHlPYmplY3QqIG9iaiwgY2hhciogbmFtZSkKLXsKLSAgICBzcF9oYW5kbGVfb2JqZWN0KiB2YWx1ZTsKLSAgICBIQU5ETEUgcmV0OwotCi0gICAgdmFsdWUgPSAoc3BfaGFuZGxlX29iamVjdCopIFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCBuYW1lKTsKLSAgICBpZiAoISB2YWx1ZSkgewotICAgICAgICBQeUVycl9DbGVhcigpOyAvKiBGSVhNRTogcHJvcGFnYXRlIGVycm9yPyAqLwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgaWYgKFB5X1RZUEUodmFsdWUpICE9ICZzcF9oYW5kbGVfdHlwZSkKLSAgICAgICAgcmV0ID0gTlVMTDsKLSAgICBlbHNlCi0gICAgICAgIHJldCA9IHZhbHVlLT5oYW5kbGU7Ci0gICAgUHlfREVDUkVGKHZhbHVlKTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgUHlPYmplY3QqCi1nZXRlbnZpcm9ubWVudChQeU9iamVjdCogZW52aXJvbm1lbnQpCi17Ci0gICAgaW50IGk7Ci0gICAgUHlfc3NpemVfdCBlbnZzaXplOwotICAgIFB5T2JqZWN0KiBvdXQgPSBOVUxMOwotICAgIFB5T2JqZWN0KiBrZXlzOwotICAgIFB5T2JqZWN0KiB2YWx1ZXM7Ci0gICAgUHlfVU5JQ09ERSogcDsKLQotICAgIC8qIGNvbnZlcnQgZW52aXJvbm1lbnQgZGljdGlvbmFyeSB0byB3aW5kb3dzIGVudmlyb21lbnQgc3RyaW5nICovCi0gICAgaWYgKCEgUHlNYXBwaW5nX0NoZWNrKGVudmlyb25tZW50KSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoCi0gICAgICAgICAgICBQeUV4Y19UeXBlRXJyb3IsICJlbnZpcm9ubWVudCBtdXN0IGJlIGRpY3Rpb25hcnkgb3IgTm9uZSIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KLSAgICBlbnZzaXplID0gUHlNYXBwaW5nX0xlbmd0aChlbnZpcm9ubWVudCk7Ci0KLSAgICBrZXlzID0gUHlNYXBwaW5nX0tleXMoZW52aXJvbm1lbnQpOwotICAgIHZhbHVlcyA9IFB5TWFwcGluZ19WYWx1ZXMoZW52aXJvbm1lbnQpOwotICAgIGlmICgha2V5cyB8fCAhdmFsdWVzKQotICAgICAgICBnb3RvIGVycm9yOwotCi0gICAgb3V0ID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKE5VTEwsIDIwNDgpOwotICAgIGlmICghIG91dCkKLSAgICAgICAgZ290byBlcnJvcjsKLQotICAgIHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShvdXQpOwotCi0gICAgZm9yIChpID0gMDsgaSA8IGVudnNpemU7IGkrKykgewotICAgICAgICBQeV9zc2l6ZV90IGtzaXplLCB2c2l6ZSwgdG90YWxzaXplOwotICAgICAgICBQeU9iamVjdCoga2V5ID0gUHlMaXN0X0dFVF9JVEVNKGtleXMsIGkpOwotICAgICAgICBQeU9iamVjdCogdmFsdWUgPSBQeUxpc3RfR0VUX0lURU0odmFsdWVzLCBpKTsKLQotICAgICAgICBpZiAoISBQeVVuaWNvZGVfQ2hlY2soa2V5KSB8fCAhIFB5VW5pY29kZV9DaGVjayh2YWx1ZSkpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgImVudmlyb25tZW50IGNhbiBvbmx5IGNvbnRhaW4gc3RyaW5ncyIpOwotICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgfQotICAgICAgICBrc2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRShrZXkpOwotICAgICAgICB2c2l6ZSA9IFB5VW5pY29kZV9HRVRfU0laRSh2YWx1ZSk7Ci0gICAgICAgIHRvdGFsc2l6ZSA9IChwIC0gUHlVbmljb2RlX0FTX1VOSUNPREUob3V0KSkgKyBrc2l6ZSArIDEgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2c2l6ZSArIDEgKyAxOwotICAgICAgICBpZiAodG90YWxzaXplID4gUHlVbmljb2RlX0dFVF9TSVpFKG91dCkpIHsKLSAgICAgICAgICAgIFB5X3NzaXplX3Qgb2Zmc2V0ID0gcCAtIFB5VW5pY29kZV9BU19VTklDT0RFKG91dCk7Ci0gICAgICAgICAgICBQeVVuaWNvZGVfUmVzaXplKCZvdXQsIHRvdGFsc2l6ZSArIDEwMjQpOwotICAgICAgICAgICAgcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKG91dCkgKyBvZmZzZXQ7Ci0gICAgICAgIH0KLSAgICAgICAgUHlfVU5JQ09ERV9DT1BZKHAsIFB5VW5pY29kZV9BU19VTklDT0RFKGtleSksIGtzaXplKTsKLSAgICAgICAgcCArPSBrc2l6ZTsKLSAgICAgICAgKnArKyA9ICc9JzsKLSAgICAgICAgUHlfVU5JQ09ERV9DT1BZKHAsIFB5VW5pY29kZV9BU19VTklDT0RFKHZhbHVlKSwgdnNpemUpOwotICAgICAgICBwICs9IHZzaXplOwotICAgICAgICAqcCsrID0gJ1wwJzsKLSAgICB9Ci0KLSAgICAvKiBhZGQgdHJhaWxpbmcgbnVsbCBieXRlICovCi0gICAgKnArKyA9ICdcMCc7Ci0gICAgUHlVbmljb2RlX1Jlc2l6ZSgmb3V0LCBwIC0gUHlVbmljb2RlX0FTX1VOSUNPREUob3V0KSk7Ci0KLSAgICAvKiBQeU9iamVjdF9QcmludChvdXQsIHN0ZG91dCwgMCk7ICovCi0KLSAgICBQeV9YREVDUkVGKGtleXMpOwotICAgIFB5X1hERUNSRUYodmFsdWVzKTsKLQotICAgIHJldHVybiBvdXQ7Ci0KLSBlcnJvcjoKLSAgICBQeV9YREVDUkVGKG91dCk7Ci0gICAgUHlfWERFQ1JFRihrZXlzKTsKLSAgICBQeV9YREVDUkVGKHZhbHVlcyk7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLVB5RG9jX1NUUlZBUihDcmVhdGVQcm9jZXNzX2RvYywKLSJDcmVhdGVQcm9jZXNzKGFwcF9uYW1lLCBjbWRfbGluZSwgcHJvY19hdHRycywgdGhyZWFkX2F0dHJzLFxuXAotICAgICAgICAgICAgICAgaW5oZXJpdCwgZmxhZ3MsIGVudl9tYXBwaW5nLCBjdXJkaXIsXG5cCi0gICAgICAgICAgICAgICBzdGFydHVwX2luZm8pIC0+IChwcm9jX2hhbmRsZSwgdGhyZWFkX2hhbmRsZSxcblwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpZCwgdGlkKVxuXAotXG5cCi1DcmVhdGUgYSBuZXcgcHJvY2VzcyBhbmQgaXRzIHByaW1hcnkgdGhyZWFkLiBUaGUgcmV0dXJuXG5cCi12YWx1ZSBpcyBhIHR1cGxlIG9mIHRoZSBwcm9jZXNzIGhhbmRsZSwgdGhyZWFkIGhhbmRsZSxcblwKLXByb2Nlc3MgSUQsIGFuZCB0aHJlYWQgSUQuXG5cCi1cblwKLXByb2NfYXR0cnMgYW5kIHRocmVhZF9hdHRycyBhcmUgaWdub3JlZCBpbnRlcm5hbGx5IGFuZCBjYW4gYmUgTm9uZS4iKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLXNwX0NyZWF0ZVByb2Nlc3MoUHlPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQotewotICAgIEJPT0wgcmVzdWx0OwotICAgIFBST0NFU1NfSU5GT1JNQVRJT04gcGk7Ci0gICAgU1RBUlRVUElORk9XIHNpOwotICAgIFB5T2JqZWN0KiBlbnZpcm9ubWVudDsKLQotICAgIFB5X1VOSUNPREUqIGFwcGxpY2F0aW9uX25hbWU7Ci0gICAgUHlfVU5JQ09ERSogY29tbWFuZF9saW5lOwotICAgIFB5T2JqZWN0KiBwcm9jZXNzX2F0dHJpYnV0ZXM7IC8qIGlnbm9yZWQgKi8KLSAgICBQeU9iamVjdCogdGhyZWFkX2F0dHJpYnV0ZXM7IC8qIGlnbm9yZWQgKi8KLSAgICBpbnQgaW5oZXJpdF9oYW5kbGVzOwotICAgIGludCBjcmVhdGlvbl9mbGFnczsKLSAgICBQeU9iamVjdCogZW52X21hcHBpbmc7Ci0gICAgUHlfVU5JQ09ERSogY3VycmVudF9kaXJlY3Rvcnk7Ci0gICAgUHlPYmplY3QqIHN0YXJ0dXBfaW5mbzsKLQotICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlpaT09paU9aTzpDcmVhdGVQcm9jZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZhcHBsaWNhdGlvbl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbW1hbmRfbGluZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZwcm9jZXNzX2F0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmdGhyZWFkX2F0dHJpYnV0ZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5oZXJpdF9oYW5kbGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNyZWF0aW9uX2ZsYWdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJmVudl9tYXBwaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJmN1cnJlbnRfZGlyZWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0YXJ0dXBfaW5mbykpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgWmVyb01lbW9yeSgmc2ksIHNpemVvZihzaSkpOwotICAgIHNpLmNiID0gc2l6ZW9mKHNpKTsKLQotICAgIC8qIG5vdGU6IHdlIG9ubHkgc3VwcG9ydCBhIHNtYWxsIHN1YnNldCBvZiBhbGwgU0kgYXR0cmlidXRlcyAqLwotICAgIHNpLmR3RmxhZ3MgPSBnZXRpbnQoc3RhcnR1cF9pbmZvLCAiZHdGbGFncyIpOwotICAgIHNpLndTaG93V2luZG93ID0gZ2V0aW50KHN0YXJ0dXBfaW5mbywgIndTaG93V2luZG93Iik7Ci0gICAgc2kuaFN0ZElucHV0ID0gZ2V0aGFuZGxlKHN0YXJ0dXBfaW5mbywgImhTdGRJbnB1dCIpOwotICAgIHNpLmhTdGRPdXRwdXQgPSBnZXRoYW5kbGUoc3RhcnR1cF9pbmZvLCAiaFN0ZE91dHB1dCIpOwotICAgIHNpLmhTdGRFcnJvciA9IGdldGhhbmRsZShzdGFydHVwX2luZm8sICJoU3RkRXJyb3IiKTsKLQotICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmIChlbnZfbWFwcGluZyA9PSBQeV9Ob25lKQotICAgICAgICBlbnZpcm9ubWVudCA9IE5VTEw7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGVudmlyb25tZW50ID0gZ2V0ZW52aXJvbm1lbnQoZW52X21hcHBpbmcpOwotICAgICAgICBpZiAoISBlbnZpcm9ubWVudCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIFB5X0JFR0lOX0FMTE9XX1RIUkVBRFMKLSAgICByZXN1bHQgPSBDcmVhdGVQcm9jZXNzVyhhcHBsaWNhdGlvbl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZF9saW5lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0X2hhbmRsZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGlvbl9mbGFncyB8IENSRUFURV9VTklDT0RFX0VOVklST05NRU5ULAotICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQgPyBQeVVuaWNvZGVfQVNfVU5JQ09ERShlbnZpcm9ubWVudCkgOiBOVUxMLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9kaXJlY3RvcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmc2ksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmcGkpOwotICAgIFB5X0VORF9BTExPV19USFJFQURTCi0KLSAgICBQeV9YREVDUkVGKGVudmlyb25tZW50KTsKLQotICAgIGlmICghIHJlc3VsdCkKLSAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyKEdldExhc3RFcnJvcigpKTsKLQotICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJOTmlpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzcF9oYW5kbGVfbmV3KHBpLmhQcm9jZXNzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBzcF9oYW5kbGVfbmV3KHBpLmhUaHJlYWQpLAotICAgICAgICAgICAgICAgICAgICAgICAgIHBpLmR3UHJvY2Vzc0lkLAotICAgICAgICAgICAgICAgICAgICAgICAgIHBpLmR3VGhyZWFkSWQpOwotfQotCi1QeURvY19TVFJWQVIoVGVybWluYXRlUHJvY2Vzc19kb2MsCi0iVGVybWluYXRlUHJvY2VzcyhoYW5kbGUsIGV4aXRfY29kZSkgLT4gTm9uZVxuXAotXG5cCi1UZXJtaW5hdGUgdGhlIHNwZWNpZmllZCBwcm9jZXNzIGFuZCBhbGwgb2YgaXRzIHRocmVhZHMuIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1zcF9UZXJtaW5hdGVQcm9jZXNzKFB5T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKLXsKLSAgICBCT09MIHJlc3VsdDsKLQotICAgIEhBTkRMRSBwcm9jZXNzOwotICAgIGludCBleGl0X2NvZGU7Ci0gICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBQWV9IQU5ETEVfUEFSQU0gImk6VGVybWluYXRlUHJvY2VzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJvY2VzcywgJmV4aXRfY29kZSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcmVzdWx0ID0gVGVybWluYXRlUHJvY2Vzcyhwcm9jZXNzLCBleGl0X2NvZGUpOwotCi0gICAgaWYgKCEgcmVzdWx0KQotICAgICAgICByZXR1cm4gUHlFcnJfU2V0RnJvbVdpbmRvd3NFcnIoR2V0TGFzdEVycm9yKCkpOwotCi0gICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgIHJldHVybiBQeV9Ob25lOwotfQotCi1QeURvY19TVFJWQVIoR2V0RXhpdENvZGVQcm9jZXNzX2RvYywKLSJHZXRFeGl0Q29kZVByb2Nlc3MoaGFuZGxlKSAtPiBFeGl0IGNvZGVcblwKLVxuXAotUmV0dXJuIHRoZSB0ZXJtaW5hdGlvbiBzdGF0dXMgb2YgdGhlIHNwZWNpZmllZCBwcm9jZXNzLiIpOwotCi1zdGF0aWMgUHlPYmplY3QgKgotc3BfR2V0RXhpdENvZGVQcm9jZXNzKFB5T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKLXsKLSAgICBEV09SRCBleGl0X2NvZGU7Ci0gICAgQk9PTCByZXN1bHQ7Ci0KLSAgICBIQU5ETEUgcHJvY2VzczsKLSAgICBpZiAoISBQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsIFBZX0hBTkRMRV9QQVJBTSAiOkdldEV4aXRDb2RlUHJvY2VzcyIsICZwcm9jZXNzKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICByZXN1bHQgPSBHZXRFeGl0Q29kZVByb2Nlc3MocHJvY2VzcywgJmV4aXRfY29kZSk7Ci0KLSAgICBpZiAoISByZXN1bHQpCi0gICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycihHZXRMYXN0RXJyb3IoKSk7Ci0KLSAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKGV4aXRfY29kZSk7Ci19Ci0KLVB5RG9jX1NUUlZBUihXYWl0Rm9yU2luZ2xlT2JqZWN0X2RvYywKLSJXYWl0Rm9yU2luZ2xlT2JqZWN0KGhhbmRsZSwgdGltZW91dCkgLT4gcmVzdWx0XG5cCi1cblwKLVdhaXQgdW50aWwgdGhlIHNwZWNpZmllZCBvYmplY3QgaXMgaW4gdGhlIHNpZ25hbGVkIHN0YXRlIG9yXG5cCi10aGUgdGltZS1vdXQgaW50ZXJ2YWwgZWxhcHNlcy4gVGhlIHRpbWVvdXQgdmFsdWUgaXMgc3BlY2lmaWVkXG5cCi1pbiBtaWxsaXNlY29uZHMuIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1zcF9XYWl0Rm9yU2luZ2xlT2JqZWN0KFB5T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKLXsKLSAgICBEV09SRCByZXN1bHQ7Ci0KLSAgICBIQU5ETEUgaGFuZGxlOwotICAgIGludCBtaWxsaXNlY29uZHM7Ci0gICAgaWYgKCEgUHlBcmdfUGFyc2VUdXBsZShhcmdzLCBQWV9IQU5ETEVfUEFSQU0gImk6V2FpdEZvclNpbmdsZU9iamVjdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaGFuZGxlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1pbGxpc2Vjb25kcykpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwotICAgIHJlc3VsdCA9IFdhaXRGb3JTaW5nbGVPYmplY3QoaGFuZGxlLCAoRFdPUkQpIG1pbGxpc2Vjb25kcyk7Ci0gICAgUHlfRU5EX0FMTE9XX1RIUkVBRFMKLQotICAgIGlmIChyZXN1bHQgPT0gV0FJVF9GQUlMRUQpCi0gICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycihHZXRMYXN0RXJyb3IoKSk7Ci0KLSAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKChpbnQpIHJlc3VsdCk7Ci19Ci0KLVB5RG9jX1NUUlZBUihHZXRWZXJzaW9uX2RvYywKLSJHZXRWZXJzaW9uKCkgLT4gdmVyc2lvblxuXAotXG5cCi1SZXR1cm4gdGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBjdXJyZW50IG9wZXJhdGluZyBzeXN0ZW0uIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1zcF9HZXRWZXJzaW9uKFB5T2JqZWN0KiBzZWxmLCBQeU9iamVjdCogYXJncykKLXsKLSAgICBpZiAoISBQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICI6R2V0VmVyc2lvbiIpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcoKGludCkgR2V0VmVyc2lvbigpKTsKLX0KLQotUHlEb2NfU1RSVkFSKEdldE1vZHVsZUZpbGVOYW1lX2RvYywKLSJHZXRNb2R1bGVGaWxlTmFtZShtb2R1bGUpIC0+IHBhdGhcblwKLVxuXAotUmV0dXJuIHRoZSBmdWxseS1xdWFsaWZpZWQgcGF0aCBmb3IgdGhlIGZpbGUgdGhhdCBjb250YWluc1xuXAotdGhlIHNwZWNpZmllZCBtb2R1bGUuIFRoZSBtb2R1bGUgbXVzdCBoYXZlIGJlZW4gbG9hZGVkIGJ5IHRoZVxuXAotY3VycmVudCBwcm9jZXNzLlxuXAotXG5cCi1UaGUgbW9kdWxlIHBhcmFtZXRlciBzaG91bGQgYmUgYSBoYW5kbGUgdG8gdGhlIGxvYWRlZCBtb2R1bGVcblwKLXdob3NlIHBhdGggaXMgYmVpbmcgcmVxdWVzdGVkLiBJZiB0aGlzIHBhcmFtZXRlciBpcyAwLCBcblwKLUdldE1vZHVsZUZpbGVOYW1lIHJldHJpZXZlcyB0aGUgcGF0aCBvZiB0aGUgZXhlY3V0YWJsZSBmaWxlXG5cCi1vZiB0aGUgY3VycmVudCBwcm9jZXNzLiIpOwotCi1zdGF0aWMgUHlPYmplY3QgKgotc3BfR2V0TW9kdWxlRmlsZU5hbWUoUHlPYmplY3QqIHNlbGYsIFB5T2JqZWN0KiBhcmdzKQotewotICAgIEJPT0wgcmVzdWx0OwotICAgIEhNT0RVTEUgbW9kdWxlOwotICAgIFdDSEFSIGZpbGVuYW1lW01BWF9QQVRIXTsKLQotICAgIGlmICghIFB5QXJnX1BhcnNlVHVwbGUoYXJncywgUFlfSEFORExFX1BBUkFNICI6R2V0TW9kdWxlRmlsZU5hbWUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1vZHVsZSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcmVzdWx0ID0gR2V0TW9kdWxlRmlsZU5hbWVXKG1vZHVsZSwgZmlsZW5hbWUsIE1BWF9QQVRIKTsKLSAgICBmaWxlbmFtZVtNQVhfUEFUSC0xXSA9ICdcMCc7Ci0KLSAgICBpZiAoISByZXN1bHQpCi0gICAgICAgIHJldHVybiBQeUVycl9TZXRGcm9tV2luZG93c0VycihHZXRMYXN0RXJyb3IoKSk7Ci0KLSAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKGZpbGVuYW1lLCBQeV9VTklDT0RFX3N0cmxlbihmaWxlbmFtZSkpOwotfQotCi1zdGF0aWMgUHlNZXRob2REZWYgc3BfZnVuY3Rpb25zW10gPSB7Ci0gICAgeyJHZXRTdGRIYW5kbGUiLCBzcF9HZXRTdGRIYW5kbGUsIE1FVEhfVkFSQVJHUywgR2V0U3RkSGFuZGxlX2RvY30sCi0gICAgeyJHZXRDdXJyZW50UHJvY2VzcyIsIHNwX0dldEN1cnJlbnRQcm9jZXNzLCAgICAgICAgIE1FVEhfVkFSQVJHUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRDdXJyZW50UHJvY2Vzc19kb2N9LAotICAgIHsiRHVwbGljYXRlSGFuZGxlIiwgICAgICAgICBzcF9EdXBsaWNhdGVIYW5kbGUsICAgICBNRVRIX1ZBUkFSR1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIER1cGxpY2F0ZUhhbmRsZV9kb2N9LAotICAgIHsiQ3JlYXRlUGlwZSIsIHNwX0NyZWF0ZVBpcGUsIE1FVEhfVkFSQVJHUywgQ3JlYXRlUGlwZV9kb2N9LAotICAgIHsiQ3JlYXRlUHJvY2VzcyIsIHNwX0NyZWF0ZVByb2Nlc3MsIE1FVEhfVkFSQVJHUywgQ3JlYXRlUHJvY2Vzc19kb2N9LAotICAgIHsiVGVybWluYXRlUHJvY2VzcyIsIHNwX1Rlcm1pbmF0ZVByb2Nlc3MsIE1FVEhfVkFSQVJHUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRlcm1pbmF0ZVByb2Nlc3NfZG9jfSwKLSAgICB7IkdldEV4aXRDb2RlUHJvY2VzcyIsIHNwX0dldEV4aXRDb2RlUHJvY2VzcywgTUVUSF9WQVJBUkdTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRFeGl0Q29kZVByb2Nlc3NfZG9jfSwKLSAgICB7IldhaXRGb3JTaW5nbGVPYmplY3QiLCBzcF9XYWl0Rm9yU2luZ2xlT2JqZWN0LCBNRVRIX1ZBUkFSR1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2FpdEZvclNpbmdsZU9iamVjdF9kb2N9LAotICAgIHsiR2V0VmVyc2lvbiIsIHNwX0dldFZlcnNpb24sIE1FVEhfVkFSQVJHUywgR2V0VmVyc2lvbl9kb2N9LAotICAgIHsiR2V0TW9kdWxlRmlsZU5hbWUiLCBzcF9HZXRNb2R1bGVGaWxlTmFtZSwgTUVUSF9WQVJBUkdTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldE1vZHVsZUZpbGVOYW1lX2RvY30sCi0gICAge05VTEwsIE5VTEx9Ci19OwotCi0vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi1zdGF0aWMgdm9pZAotZGVmaW50KFB5T2JqZWN0KiBkLCBjb25zdCBjaGFyKiBuYW1lLCBpbnQgdmFsdWUpCi17Ci0gICAgUHlPYmplY3QqIHYgPSBQeUxvbmdfRnJvbUxvbmcoKGxvbmcpIHZhbHVlKTsKLSAgICBpZiAodikgewotICAgICAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAoY2hhciopIG5hbWUsIHYpOwotICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgfQotfQotCi1zdGF0aWMgc3RydWN0IFB5TW9kdWxlRGVmIF9zdWJwcm9jZXNzbW9kdWxlID0gewotICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKLSAgICAiX3N1YnByb2Nlc3MiLAotICAgIE5VTEwsCi0gICAgLTEsCi0gICAgc3BfZnVuY3Rpb25zLAotICAgIE5VTEwsCi0gICAgTlVMTCwKLSAgICBOVUxMLAotICAgIE5VTEwKLX07Ci0KLVB5TU9ESU5JVF9GVU5DCi1QeUluaXRfX3N1YnByb2Nlc3MoKQotewotICAgIFB5T2JqZWN0ICpkOwotICAgIFB5T2JqZWN0ICptOwotCi0gICAgLyogcGF0Y2ggdXAgb2JqZWN0IGRlc2NyaXB0b3JzICovCi0gICAgc3BfaGFuZGxlX2FzX251bWJlci5uYl9pbnQgPSAodW5hcnlmdW5jKSBzcF9oYW5kbGVfYXNfaW50OwotICAgIGlmIChQeVR5cGVfUmVhZHkoJnNwX2hhbmRsZV90eXBlKSA8IDApCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgbSA9IFB5TW9kdWxlX0NyZWF0ZSgmX3N1YnByb2Nlc3Ntb2R1bGUpOwotICAgIGlmIChtID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGQgPSBQeU1vZHVsZV9HZXREaWN0KG0pOwotCi0gICAgLyogY29uc3RhbnRzICovCi0gICAgZGVmaW50KGQsICJTVERfSU5QVVRfSEFORExFIiwgU1REX0lOUFVUX0hBTkRMRSk7Ci0gICAgZGVmaW50KGQsICJTVERfT1VUUFVUX0hBTkRMRSIsIFNURF9PVVRQVVRfSEFORExFKTsKLSAgICBkZWZpbnQoZCwgIlNURF9FUlJPUl9IQU5ETEUiLCBTVERfRVJST1JfSEFORExFKTsKLSAgICBkZWZpbnQoZCwgIkRVUExJQ0FURV9TQU1FX0FDQ0VTUyIsIERVUExJQ0FURV9TQU1FX0FDQ0VTUyk7Ci0gICAgZGVmaW50KGQsICJTVEFSVEZfVVNFU1RESEFORExFUyIsIFNUQVJURl9VU0VTVERIQU5ETEVTKTsKLSAgICBkZWZpbnQoZCwgIlNUQVJURl9VU0VTSE9XV0lORE9XIiwgU1RBUlRGX1VTRVNIT1dXSU5ET1cpOwotICAgIGRlZmludChkLCAiU1dfSElERSIsIFNXX0hJREUpOwotICAgIGRlZmludChkLCAiSU5GSU5JVEUiLCBJTkZJTklURSk7Ci0gICAgZGVmaW50KGQsICJXQUlUX09CSkVDVF8wIiwgV0FJVF9PQkpFQ1RfMCk7Ci0gICAgZGVmaW50KGQsICJDUkVBVEVfTkVXX0NPTlNPTEUiLCBDUkVBVEVfTkVXX0NPTlNPTEUpOwotICAgIGRlZmludChkLCAiQ1JFQVRFX05FV19QUk9DRVNTX0dST1VQIiwgQ1JFQVRFX05FV19QUk9DRVNTX0dST1VQKTsKLSAgICBkZWZpbnQoZCwgIlNUSUxMX0FDVElWRSIsIFNUSUxMX0FDVElWRSk7Ci0KLSAgICByZXR1cm4gbTsKLX0KZGlmZiAtLWdpdCBhL1BDL2NvbmZpZy5jIGIvUEMvY29uZmlnLmMKaW5kZXggMWZjMmI0MC4uNTdiNTA3MyAxMDA2NDQKLS0tIGEvUEMvY29uZmlnLmMKKysrIGIvUEMvY29uZmlnLmMKQEAgLTEyLDYgKzEyLDcgQEAKIGV4dGVybiBQeU9iamVjdCogUHlJbml0X2JpbmFzY2lpKHZvaWQpOwogZXh0ZXJuIFB5T2JqZWN0KiBQeUluaXRfY21hdGgodm9pZCk7CiBleHRlcm4gUHlPYmplY3QqIFB5SW5pdF9lcnJubyh2b2lkKTsKK2V4dGVybiBQeU9iamVjdCogUHlJbml0X2ZhdWx0aGFuZGxlcih2b2lkKTsKIGV4dGVybiBQeU9iamVjdCogUHlJbml0X2djKHZvaWQpOwogZXh0ZXJuIFB5T2JqZWN0KiBQeUluaXRfbWF0aCh2b2lkKTsKIGV4dGVybiBQeU9iamVjdCogUHlJbml0X19tZDUodm9pZCk7CkBAIC01NSw3ICs1Niw3IEBACiBleHRlcm4gUHlPYmplY3QqIFB5SW5pdF9fY29kZWNzX2pwKHZvaWQpOwogZXh0ZXJuIFB5T2JqZWN0KiBQeUluaXRfX2NvZGVjc19rcih2b2lkKTsKIGV4dGVybiBQeU9iamVjdCogUHlJbml0X19jb2RlY3NfdHcodm9pZCk7Ci1leHRlcm4gUHlPYmplY3QqIFB5SW5pdF9fc3VicHJvY2Vzcyh2b2lkKTsKK2V4dGVybiBQeU9iamVjdCogUHlJbml0X193aW5hcGkodm9pZCk7CiBleHRlcm4gUHlPYmplY3QqIFB5SW5pdF9fbHNwcm9mKHZvaWQpOwogZXh0ZXJuIFB5T2JqZWN0KiBQeUluaXRfX2FzdCh2b2lkKTsKIGV4dGVybiBQeU9iamVjdCogUHlJbml0X19pbyh2b2lkKTsKQEAgLTgyLDYgKzgzLDcgQEAKICAgICB7ImJpbmFzY2lpIiwgUHlJbml0X2JpbmFzY2lpfSwKICAgICB7ImNtYXRoIiwgUHlJbml0X2NtYXRofSwKICAgICB7ImVycm5vIiwgUHlJbml0X2Vycm5vfSwKKyAgICB7ImZhdWx0aGFuZGxlciIsIFB5SW5pdF9mYXVsdGhhbmRsZXJ9LAogICAgIHsiZ2MiLCBQeUluaXRfZ2N9LAogICAgIHsibWF0aCIsIFB5SW5pdF9tYXRofSwKICAgICB7Im50IiwgUHlJbml0X250fSwgLyogVXNlIHRoZSBOVCBvcyBmdW5jdGlvbnMsIG5vdCBwb3NpeCAqLwpAQCAtOTksOCArMTAxLDggQEAKICAgICB7Im1zdmNydCIsIFB5SW5pdF9tc3ZjcnR9LAogICAgIHsiX2xvY2FsZSIsIFB5SW5pdF9fbG9jYWxlfSwKICNlbmRpZgotICAgIC8qIFhYWCBTaG91bGQgX3N1YnByb2Nlc3MgZ28gaW4gYSBXSU4zMiBibG9jaz8gIG5vdCBXSU42ND8gKi8KLSAgICB7Il9zdWJwcm9jZXNzIiwgUHlJbml0X19zdWJwcm9jZXNzfSwKKyAgICAvKiBYWFggU2hvdWxkIF93aW5hcGkgZ28gaW4gYSBXSU4zMiBibG9jaz8gIG5vdCBXSU42ND8gKi8KKyAgICB7Il93aW5hcGkiLCBQeUluaXRfX3dpbmFwaX0sCiAKICAgICB7Il9jb2RlY3MiLCBQeUluaXRfX2NvZGVjc30sCiAgICAgeyJfd2Vha3JlZiIsIFB5SW5pdF9fd2Vha3JlZn0sCkBAIC0xNDEsMTAgKzE0Myw5IEBACiAgICAgeyJtYXJzaGFsIiwgUHlNYXJzaGFsX0luaXR9LAogCiAgICAgLyogVGhpcyBsaXZlcyBpdCB3aXRoIGltcG9ydC5jICovCi0gICAgeyJpbXAiLCBQeUluaXRfaW1wfSwKKyAgICB7Il9pbXAiLCBQeUluaXRfaW1wfSwKIAogICAgIC8qIFRoZXNlIGVudHJpZXMgYXJlIGhlcmUgZm9yIHN5cy5idWlsdGluX21vZHVsZV9uYW1lcyAqLwotICAgIHsiX19tYWluX18iLCBOVUxMfSwKICAgICB7ImJ1aWx0aW5zIiwgTlVMTH0sCiAgICAgeyJzeXMiLCBOVUxMfSwKICAgICB7Il93YXJuaW5ncyIsIF9QeVdhcm5pbmdzX0luaXR9LApkaWZmIC0tZ2l0IGEvUEMvZGxfbnQuYyBiL1BDL2RsX250LmMKaW5kZXggZWYxY2UwOS4uYWUxMGZiNSAxMDA2NDQKLS0tIGEvUEMvZGxfbnQuYworKysgYi9QQy9kbF9udC5jCkBAIC0xOCw3ICsxOCw4IEBACiBITU9EVUxFIFB5V2luX0RMTGhNb2R1bGUgPSBOVUxMOwogY29uc3QgY2hhciAqUHlXaW5fRExMVmVyc2lvblN0cmluZyA9IGRsbFZlcnNpb25CdWZmZXI7CiAKLS8vIFdpbmRvd3MgIkFjdGl2YXRpb24gQ29udGV4dCIgd29yazoKKyNpZiBIQVZFX1NYUworLy8gV2luZG93cyAiQWN0aXZhdGlvbiBDb250ZXh0IiB3b3JrLgogLy8gT3VyIC5weWQgZXh0ZW5zaW9uIG1vZHVsZXMgYXJlIGdlbmVyYWxseSBidWlsdCB3aXRob3V0IGEgbWFuaWZlc3QgKGllLAogLy8gdGhvc2UgaW5jbHVkZWQgd2l0aCBQeXRob24gYW5kIHRob3NlIGJ1aWx0IHdpdGggYSBkZWZhdWx0IGRpc3R1dGlscy4KIC8vIFRoaXMgcmVxdWlyZXMgd2UgcGVyZm9ybSBzb21lICJhY3RpdmF0aW9uIGNvbnRleHQiIG1hZ2ljIHdoZW4gbG9hZGluZyBvdXIKQEAgLTI5LDYgKzMwLDggQEAKIC8vIEFzIGFuIGFkZGVkIGNvbXBsaWNhdGlvbiwgdGhpcyBtYWdpYyBvbmx5IHdvcmtzIG9uIFhQIG9yIGxhdGVyIC0gd2Ugc2ltcGx5CiAvLyB1c2UgdGhlIGV4aXN0ZW5jZSAob3Igbm90KSBvZiB0aGUgcmVsZXZhbnQgZnVuY3Rpb24gcG9pbnRlcnMgZnJvbSBrZXJuZWwzMi4KIC8vIFNlZSBidWcgNDU2NiAoaHR0cDovL3B5dGhvbi5vcmcvc2YvNDU2NikgZm9yIG1vcmUgZGV0YWlscy4KKy8vIEluIFZpc3VhbCBTdHVkaW8gMjAxMCwgc2lkZSBieSBzaWRlIGFzc2VtYmxpZXMgYXJlIG5vIGxvbmdlciB1c2VkIGJ5CisvLyBkZWZhdWx0LgogCiB0eXBlZGVmIEJPT0wgKFdJTkFQSSAqIFBGTl9HRVRDVVJSRU5UQUNUQ1RYKShIQU5ETEUgKik7CiB0eXBlZGVmIEJPT0wgKFdJTkFQSSAqIFBGTl9BQ1RJVkFURUFDVENUWCkoSEFORExFLCBVTE9OR19QVFIgKik7CkBAIC03NSw2ICs3OCw3IEBACiAgICAgICAgIGlmICghKCpwZm5EZWFjdGl2YXRlQWN0Q3R4KSgwLCBjb29raWUpKQogICAgICAgICAgICAgT3V0cHV0RGVidWdTdHJpbmcoIlB5dGhvbiBmYWlsZWQgdG8gZGUtYWN0aXZhdGUgdGhlIGFjdGl2YXRpb24gY29udGV4dFxuIik7CiB9CisjZW5kaWYgLyogSEFWRV9TWFMgKi8KIAogQk9PTCAgICBXSU5BUEkgIERsbE1haW4gKEhBTkRMRSBoSW5zdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVMT05HIHVsX3JlYXNvbl9mb3JfY2FsbCwKQEAgLTg3LDE3ICs5MSwyMSBAQAogICAgICAgICAgICAgLy8gMTAwMCBpcyBhIG1hZ2ljIG51bWJlciBJIHBpY2tlZCBvdXQgb2YgdGhlIGFpci4gIENvdWxkIGRvIHdpdGggYSAjZGVmaW5lLCBJIHNwb3NlLi4uCiAgICAgICAgICAgICBMb2FkU3RyaW5nKGhJbnN0LCAxMDAwLCBkbGxWZXJzaW9uQnVmZmVyLCBzaXplb2YoZGxsVmVyc2lvbkJ1ZmZlcikpOwogCisjaWYgSEFWRV9TWFMKICAgICAgICAgICAgIC8vIGFuZCBjYXB0dXJlIG91ciBhY3RpdmF0aW9uIGNvbnRleHQgZm9yIHVzZSB3aGVuIGxvYWRpbmcgZXh0ZW5zaW9ucy4KICAgICAgICAgICAgIF9Mb2FkQWN0Q3R4UG9pbnRlcnMoKTsKICAgICAgICAgICAgIGlmIChwZm5HZXRDdXJyZW50QWN0Q3R4ICYmIHBmbkFkZFJlZkFjdEN0eCkKICAgICAgICAgICAgICAgICBpZiAoKCpwZm5HZXRDdXJyZW50QWN0Q3R4KSgmUHlXaW5fRExMaEFjdGl2YXRpb25Db250ZXh0KSkKICAgICAgICAgICAgICAgICAgICAgaWYgKCEoKnBmbkFkZFJlZkFjdEN0eCkoUHlXaW5fRExMaEFjdGl2YXRpb25Db250ZXh0KSkKICAgICAgICAgICAgICAgICAgICAgICAgIE91dHB1dERlYnVnU3RyaW5nKCJQeXRob24gZmFpbGVkIHRvIGxvYWQgdGhlIGRlZmF1bHQgYWN0aXZhdGlvbiBjb250ZXh0XG4iKTsKKyNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBETExfUFJPQ0VTU19ERVRBQ0g6CisjaWYgSEFWRV9TWFMKICAgICAgICAgICAgIGlmIChwZm5SZWxlYXNlQWN0Q3R4KQogICAgICAgICAgICAgICAgICgqcGZuUmVsZWFzZUFjdEN0eCkoUHlXaW5fRExMaEFjdGl2YXRpb25Db250ZXh0KTsKKyNlbmRpZgogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBUUlVFOwpkaWZmIC0tZ2l0IGEvUEMvZXhhbXBsZV9udC9leGFtcGxlLnZjcHJvaiBiL1BDL2V4YW1wbGVfbnQvZXhhbXBsZS52Y3Byb2oKaW5kZXggZjkyNGM3ZC4uZmJhMDBiNiAxMDA2NDQKLS0tIGEvUEMvZXhhbXBsZV9udC9leGFtcGxlLnZjcHJvagorKysgYi9QQy9leGFtcGxlX250L2V4YW1wbGUudmNwcm9qCkBAIC0zOSw3ICszOSw3IEBACiAJCQk8VG9vbA0KIAkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQogCQkJCUFkZGl0aW9uYWxPcHRpb25zPSIvZXhwb3J0OmluaXRleGFtcGxlIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJvZGJjMzIubGliIG9kYmNjcDMyLmxpYiBweXRob24yNi5saWIiDQorCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Im9kYmMzMi5saWIgb2RiY2NwMzIubGliIHB5dGhvbjMzLmxpYiINCiAJCQkJT3V0cHV0RmlsZT0iLlxSZWxlYXNlL2V4YW1wbGUucHlkIg0KIAkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQogCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCkBAIC0xMDUsNyArMTA1LDcgQEAKIAkJCTxUb29sDQogCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCiAJCQkJQWRkaXRpb25hbE9wdGlvbnM9Ii9leHBvcnQ6aW5pdGV4YW1wbGUiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9Im9kYmMzMi5saWIgb2RiY2NwMzIubGliIHB5dGhvbjI2X2QubGliIg0KKwkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJvZGJjMzIubGliIG9kYmNjcDMyLmxpYiBweXRob24zM19kLmxpYiINCiAJCQkJT3V0cHV0RmlsZT0iLlxEZWJ1Zy9leGFtcGxlX2QucHlkIg0KIAkJCQlMaW5rSW5jcmVtZW50YWw9IjEiDQogCQkJCVN1cHByZXNzU3RhcnR1cEJhbm5lcj0iVFJVRSINCmRpZmYgLS1naXQgYS9QQy9mcm96ZW5fZGxsbWFpbi5jIGIvUEMvZnJvemVuX2RsbG1haW4uYwppbmRleCBhOGNjODg1Li4wMTU2YzUwIDEwMDY0NAotLS0gYS9QQy9mcm96ZW5fZGxsbWFpbi5jCisrKyBiL1BDL2Zyb3plbl9kbGxtYWluLmMKQEAgLTc3LDcgKzc3LDcgQEAKIHsKICAgICAvLyBNdXN0IGdvIGJhY2t3YXJkcwogICAgIGNoYXIgKiptb2ROYW1lOwotICAgIGZvciAobW9kTmFtZSA9IHBvc3NpYmxlTW9kdWxlcysoc2l6ZW9mKHBvc3NpYmxlTW9kdWxlcykgLyBzaXplb2YoY2hhciAqKSktMjsKKyAgICBmb3IgKG1vZE5hbWUgPSBwb3NzaWJsZU1vZHVsZXMrUHlfQVJSQVlfTEVOR1RIKHBvc3NpYmxlTW9kdWxlcyktMjsKICAgICAgICAgIG1vZE5hbWUgPj0gcG9zc2libGVNb2R1bGVzOwogICAgICAgICAgKm1vZE5hbWUtLSkgewogLyogICAgICAgICAgICAgIHByaW50ZigiVGVybWluYXRpbmcgJyVzJ1xuIiwgKm1vZE5hbWUpOyovCkBAIC0xMDMsNyArMTAzLDcgQEAKICAgICAgICAgewogICAgICAgICAgICAgLy8gTXVzdCBnbyBiYWNrd2FyZHMKICAgICAgICAgICAgIGNoYXIgKiptb2ROYW1lOwotICAgICAgICAgICAgZm9yIChtb2ROYW1lID0gcG9zc2libGVNb2R1bGVzKyhzaXplb2YocG9zc2libGVNb2R1bGVzKSAvIHNpemVvZihjaGFyICopKS0yOworICAgICAgICAgICAgZm9yIChtb2ROYW1lID0gcG9zc2libGVNb2R1bGVzK1B5X0FSUkFZX0xFTkdUSChwb3NzaWJsZU1vZHVsZXMpLTI7CiAgICAgICAgICAgICAgICAgIG1vZE5hbWUgPj0gcG9zc2libGVNb2R1bGVzOwogICAgICAgICAgICAgICAgICAqbW9kTmFtZS0tKQogICAgICAgICAgICAgICAgIENhbGxNb2R1bGVEbGxNYWluKCptb2ROYW1lLCBETExfUFJPQ0VTU19ERVRBQ0gpOwpAQCAtMTE4LDcgKzExOCw3IEBACiAgICAgQk9PTCAoV0lOQVBJICogcGZuZGxsbWFpbikoSElOU1RBTkNFLCBEV09SRCwgTFBWT0lEKTsKIAogICAgIGNoYXIgZnVuY05hbWVbMjU1XTsKLSAgICBITU9EVUxFIGhtb2QgPSBHZXRNb2R1bGVIYW5kbGUoTlVMTCk7CisgICAgSE1PRFVMRSBobW9kID0gR2V0TW9kdWxlSGFuZGxlVyhOVUxMKTsKICAgICBzdHJjcHkoZnVuY05hbWUsICJfRGxsTWFpbiIpOwogICAgIHN0cmNhdChmdW5jTmFtZSwgbW9kTmFtZSk7CiAgICAgc3RyY2F0KGZ1bmNOYW1lLCAiQDEyIik7IC8vIHN0ZGNhbGwgY29udmVudGlvbi4KZGlmZiAtLWdpdCBhL1BDL2dldHBhdGhwLmMgYi9QQy9nZXRwYXRocC5jCmluZGV4IGNkM2E0YjIuLmI1YmYzMjUgMTAwNjQ0Ci0tLSBhL1BDL2dldHBhdGhwLmMKKysrIGIvUEMvZ2V0cGF0aHAuYwpAQCAtMjUxLDcgKzI1MSw3IEBACiAgICAgaWYgKGtleUJ1Zj09TlVMTCkgZ290byBkb25lOwogCiAgICAgbWVtY3B5KGtleUJ1ZlB0ciwga2V5UHJlZml4LCBzaXplb2Yoa2V5UHJlZml4KS1zaXplb2YoV0NIQVIpKTsKLSAgICBrZXlCdWZQdHIgKz0gc2l6ZW9mKGtleVByZWZpeCkvc2l6ZW9mKFdDSEFSKSAtIDE7CisgICAga2V5QnVmUHRyICs9IFB5X0FSUkFZX0xFTkdUSChrZXlQcmVmaXgpIC0gMTsKICAgICBtYnN0b3djcyhrZXlCdWZQdHIsIFB5V2luX0RMTFZlcnNpb25TdHJpbmcsIHZlcnNpb25MZW4pOwogICAgIGtleUJ1ZlB0ciArPSB2ZXJzaW9uTGVuOwogICAgIC8qIE5VTEwgY29tZXMgd2l0aCB0aGlzIG9uZSEgKi8KQEAgLTQyMyw2ICs0MjMsNTMgQEAKICAgICAgICAgcHJvZ3BhdGhbMF0gPSAnXDAnOwogfQogCitzdGF0aWMgaW50CitmaW5kX2Vudl9jb25maWdfdmFsdWUoRklMRSAqIGVudl9maWxlLCBjb25zdCB3Y2hhcl90ICoga2V5LCB3Y2hhcl90ICogdmFsdWUpCit7CisgICAgaW50IHJlc3VsdCA9IDA7IC8qIG1lYW5pbmcgbm90IGZvdW5kICovCisgICAgY2hhciBidWZmZXJbTUFYUEFUSExFTioyKzFdOyAgLyogYWxsb3cgZXh0cmEgZm9yIGtleSwgJz0nLCBldGMuICovCisKKyAgICBmc2VlayhlbnZfZmlsZSwgMCwgU0VFS19TRVQpOworICAgIHdoaWxlICghZmVvZihlbnZfZmlsZSkpIHsKKyAgICAgICAgY2hhciAqIHAgPSBmZ2V0cyhidWZmZXIsIE1BWFBBVEhMRU4qMiwgZW52X2ZpbGUpOworICAgICAgICB3Y2hhcl90IHRtcGJ1ZmZlcltNQVhQQVRITEVOKjIrMV07CisgICAgICAgIFB5T2JqZWN0ICogZGVjb2RlZDsKKyAgICAgICAgaW50IG47CisKKyAgICAgICAgaWYgKHAgPT0gTlVMTCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBuID0gc3RybGVuKHApOworICAgICAgICBpZiAocFtuIC0gMV0gIT0gJ1xuJykgeworICAgICAgICAgICAgLyogbGluZSBoYXMgb3ZlcmZsb3dlZCAtIGJhaWwgKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmIChwWzBdID09ICcjJykgICAgLyogQ29tbWVudCAtIHNraXAgKi8KKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBkZWNvZGVkID0gUHlVbmljb2RlX0RlY29kZVVURjgoYnVmZmVyLCBuLCAic3Vycm9nYXRlZXNjYXBlIik7CisgICAgICAgIGlmIChkZWNvZGVkICE9IE5VTEwpIHsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgazsKKyAgICAgICAgICAgIGsgPSBQeVVuaWNvZGVfQXNXaWRlQ2hhcihkZWNvZGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcGJ1ZmZlciwgTUFYUEFUSExFTiAqIDIpOworICAgICAgICAgICAgUHlfREVDUkVGKGRlY29kZWQpOworICAgICAgICAgICAgaWYgKGsgPj0gMCkgeworICAgICAgICAgICAgICAgIHdjaGFyX3QgKiB0b2sgPSB3Y3N0b2sodG1wYnVmZmVyLCBMIiBcdFxyXG4iKTsKKyAgICAgICAgICAgICAgICBpZiAoKHRvayAhPSBOVUxMKSAmJiAhd2NzY21wKHRvaywga2V5KSkgeworICAgICAgICAgICAgICAgICAgICB0b2sgPSB3Y3N0b2soTlVMTCwgTCIgXHQiKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCh0b2sgIT0gTlVMTCkgJiYgIXdjc2NtcCh0b2ssIEwiPSIpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB0b2sgPSB3Y3N0b2soTlVMTCwgTCJcclxuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG9rICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3Y3NuY3B5KHZhbHVlLCB0b2ssIE1BWFBBVEhMRU4pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIHZvaWQKIGNhbGN1bGF0ZV9wYXRoKHZvaWQpCiB7CkBAIC00NTcsNiArNTA0LDQwIEBACiAgICAgLyogcHJvZ3BhdGggZ3VhcmFudGVlZCBcMCB0ZXJtaW5hdGVkIGluIE1BWFBBVEgrMSBieXRlcy4gKi8KICAgICB3Y3NjcHkoYXJndjBfcGF0aCwgcHJvZ3BhdGgpOwogICAgIHJlZHVjZShhcmd2MF9wYXRoKTsKKworICAgIC8qIFNlYXJjaCBmb3IgYW4gZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbiBmaWxlLCBmaXJzdCBpbiB0aGUKKyAgICAgICBleGVjdXRhYmxlJ3MgZGlyZWN0b3J5IGFuZCB0aGVuIGluIHRoZSBwYXJlbnQgZGlyZWN0b3J5LgorICAgICAgIElmIGZvdW5kLCBvcGVuIGl0IGZvciB1c2Ugd2hlbiBzZWFyY2hpbmcgZm9yIHByZWZpeGVzLgorICAgICovCisKKyAgICB7CisgICAgICAgIHdjaGFyX3QgdG1wYnVmZmVyW01BWFBBVEhMRU4rMV07CisgICAgICAgIHdjaGFyX3QgKmVudl9jZmcgPSBMInB5dmVudi5jZmciOworICAgICAgICBGSUxFICogZW52X2ZpbGUgPSBOVUxMOworCisgICAgICAgIHdjc2NweSh0bXBidWZmZXIsIGFyZ3YwX3BhdGgpOworICAgICAgICBqb2luKHRtcGJ1ZmZlciwgZW52X2NmZyk7CisgICAgICAgIGVudl9maWxlID0gX1B5X3dmb3Blbih0bXBidWZmZXIsIEwiciIpOworICAgICAgICBpZiAoZW52X2ZpbGUgPT0gTlVMTCkgeworICAgICAgICAgICAgZXJybm8gPSAwOworICAgICAgICAgICAgcmVkdWNlKHRtcGJ1ZmZlcik7CisgICAgICAgICAgICByZWR1Y2UodG1wYnVmZmVyKTsKKyAgICAgICAgICAgIGpvaW4odG1wYnVmZmVyLCBlbnZfY2ZnKTsKKyAgICAgICAgICAgIGVudl9maWxlID0gX1B5X3dmb3Blbih0bXBidWZmZXIsIEwiciIpOworICAgICAgICAgICAgaWYgKGVudl9maWxlID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBlcnJubyA9IDA7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgaWYgKGVudl9maWxlICE9IE5VTEwpIHsKKyAgICAgICAgICAgIC8qIExvb2sgZm9yIGEgJ2hvbWUnIHZhcmlhYmxlIGFuZCBzZXQgYXJndjBfcGF0aCB0byBpdCwgaWYgZm91bmQgKi8KKyAgICAgICAgICAgIGlmIChmaW5kX2Vudl9jb25maWdfdmFsdWUoZW52X2ZpbGUsIEwiaG9tZSIsIHRtcGJ1ZmZlcikpIHsKKyAgICAgICAgICAgICAgICB3Y3NjcHkoYXJndjBfcGF0aCwgdG1wYnVmZmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZjbG9zZShlbnZfZmlsZSk7CisgICAgICAgICAgICBlbnZfZmlsZSA9IE5VTEw7CisgICAgICAgIH0KKyAgICB9CisKICAgICBpZiAocHl0aG9uaG9tZSA9PSBOVUxMIHx8ICpweXRob25ob21lID09ICdcMCcpIHsKICAgICAgICAgaWYgKHNlYXJjaF9mb3JfcHJlZml4KGFyZ3YwX3BhdGgsIExBTkRNQVJLKSkKICAgICAgICAgICAgIHB5dGhvbmhvbWUgPSBwcmVmaXg7CkBAIC03MDgsOCArNzg5LDggQEAKICAgICByZXR1cm4gcHJvZ3BhdGg7CiB9CiAKLS8qIExvYWQgcHl0aG9uMy5kbGwgYmVmb3JlIGxvYWRpbmcgYW55IGV4dGVuc2lvbiBtb2R1bGUgdGhhdCBtaWdodCByZWZlciAKLSAgIHRvIGl0LiBUaGF0IHdheSwgd2UgY2FuIGJlIHN1cmUgdGhhdCBhbHdheXMgdGhlIHB5dGhvbjMuZGxsIGNvcnJlc3BvbmRpbmcgCisvKiBMb2FkIHB5dGhvbjMuZGxsIGJlZm9yZSBsb2FkaW5nIGFueSBleHRlbnNpb24gbW9kdWxlIHRoYXQgbWlnaHQgcmVmZXIKKyAgIHRvIGl0LiBUaGF0IHdheSwgd2UgY2FuIGJlIHN1cmUgdGhhdCBhbHdheXMgdGhlIHB5dGhvbjMuZGxsIGNvcnJlc3BvbmRpbmcKICAgIHRvIHRoaXMgcHl0aG9uIERMTCBpcyBsb2FkZWQsIG5vdCBhIHB5dGhvbjMuZGxsIHRoYXQgbWlnaHQgYmUgb24gdGhlIHBhdGgKICAgIGJ5IGNoYW5jZS4KICAgIFJldHVybiB3aGV0aGVyIHRoZSBETEwgd2FzIGZvdW5kLgpkaWZmIC0tZ2l0IGEvUEMvaW1wb3J0X250LmMgYi9QQy9pbXBvcnRfbnQuYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTk2YTc3NC4uMDAwMDAwMAotLS0gYS9QQy9pbXBvcnRfbnQuYworKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotCi0gaW1wb3J0X250LmMKLQotICBXaW4zMiBzcGVjaWZpYyBpbXBvcnQgY29kZS4KLQotKi8KLQotI2luY2x1ZGUgIlB5dGhvbi5oIgotI2luY2x1ZGUgIm9zZGVmcy5oIgotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLSNpbmNsdWRlICJpbXBvcnRkbC5oIgotI2luY2x1ZGUgIm1hbGxvYy5oIiAvKiBmb3IgYWxsb2NhICovCi0KLS8qIGEgc3RyaW5nIGxvYWRlZCBmcm9tIHRoZSBETEwgYXQgc3RhcnR1cCAqLwotZXh0ZXJuIGNvbnN0IGNoYXIgKlB5V2luX0RMTFZlcnNpb25TdHJpbmc7Ci0KLUZJTEUgKlB5V2luX0ZpbmRSZWdpc3RlcmVkTW9kdWxlKGNvbnN0IGNoYXIgKm1vZHVsZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZmlsZWRlc2NyICoqcHBGaWxlRGVzYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKnBhdGhCdWYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHBhdGhMZW4pCi17Ci0gICAgY2hhciAqbW9kdWxlS2V5OwotICAgIGNvbnN0IGNoYXIga2V5UHJlZml4W10gPSAiU29mdHdhcmVcXFB5dGhvblxcUHl0aG9uQ29yZVxcIjsKLSAgICBjb25zdCBjaGFyIGtleVN1ZmZpeFtdID0gIlxcTW9kdWxlc1xcIjsKLSNpZmRlZiBfREVCVUcKLSAgICAvKiBJbiBkZWJ1Z2dpbmcgYnVpbGRzLCB3ZSBfbXVzdF8gaGF2ZSB0aGUgZGVidWcgdmVyc2lvbgotICAgICAqIHJlZ2lzdGVyZWQuCi0gICAgICovCi0gICAgY29uc3QgY2hhciBkZWJ1Z1N0cmluZ1tdID0gIlxcRGVidWciOwotI2Vsc2UKLSAgICBjb25zdCBjaGFyIGRlYnVnU3RyaW5nW10gPSAiIjsKLSNlbmRpZgotICAgIHN0cnVjdCBmaWxlZGVzY3IgKmZkcCA9IE5VTEw7Ci0gICAgRklMRSAqZnA7Ci0gICAgSEtFWSBrZXlCYXNlID0gSEtFWV9DVVJSRU5UX1VTRVI7Ci0gICAgaW50IG1vZE5hbWVTaXplOwotICAgIGxvbmcgcmVnU3RhdDsKLQotICAgIC8qIENhbGN1bGF0ZSB0aGUgc2l6ZSBmb3IgdGhlIHNwcmludGYgYnVmZmVyLgotICAgICAqIEdldCB0aGUgc2l6ZSBvZiB0aGUgY2hhcnMgb25seSwgcGx1cyAxIE5VTEwuCi0gICAgICovCi0gICAgc2l6ZV90IGJ1ZlNpemUgPSBzaXplb2Yoa2V5UHJlZml4KS0xICsKLSAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihQeVdpbl9ETExWZXJzaW9uU3RyaW5nKSArCi0gICAgICAgICAgICAgICAgICAgICBzaXplb2Yoa2V5U3VmZml4KSArCi0gICAgICAgICAgICAgICAgICAgICBzdHJsZW4obW9kdWxlTmFtZSkgKwotICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGRlYnVnU3RyaW5nKSAtIDE7Ci0gICAgLyogYWxsb2NhID09IG5vIGZyZWUgcmVxdWlyZWQsIGJ1dCBtZW1vcnkgb25seSBsb2NhbCB0byBmbiwKLSAgICAgKiBhbHNvIG5vIGhlYXAgZnJhZ21lbnRhdGlvbiEKLSAgICAgKi8KLSAgICBtb2R1bGVLZXkgPSBhbGxvY2EoYnVmU2l6ZSk7Ci0gICAgUHlPU19zbnByaW50Zihtb2R1bGVLZXksIGJ1ZlNpemUsCi0gICAgICAgICAgICAgICAgICAiU29mdHdhcmVcXFB5dGhvblxcUHl0aG9uQ29yZVxcJXNcXE1vZHVsZXNcXCVzJXMiLAotICAgICAgICAgICAgICAgICAgUHlXaW5fRExMVmVyc2lvblN0cmluZywgbW9kdWxlTmFtZSwgZGVidWdTdHJpbmcpOwotCi0gICAgYXNzZXJ0KHBhdGhMZW4gPCBJTlRfTUFYKTsKLSAgICBtb2ROYW1lU2l6ZSA9IChpbnQpcGF0aExlbjsKLSAgICByZWdTdGF0ID0gUmVnUXVlcnlWYWx1ZShrZXlCYXNlLCBtb2R1bGVLZXksIHBhdGhCdWYsICZtb2ROYW1lU2l6ZSk7Ci0gICAgaWYgKHJlZ1N0YXQgIT0gRVJST1JfU1VDQ0VTUykgewotICAgICAgICAvKiBObyB1c2VyIHNldHRpbmcgLSBsb29rdXAgaW4gbWFjaGluZSBzZXR0aW5ncyAqLwotICAgICAgICBrZXlCYXNlID0gSEtFWV9MT0NBTF9NQUNISU5FOwotICAgICAgICAvKiBiZSBhbmFsIC0gZmFpbHVyZSBtYXkgaGF2ZSByZXNldCBzaXplIHBhcmFtICovCi0gICAgICAgIG1vZE5hbWVTaXplID0gKGludClwYXRoTGVuOwotICAgICAgICByZWdTdGF0ID0gUmVnUXVlcnlWYWx1ZShrZXlCYXNlLCBtb2R1bGVLZXksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhCdWYsICZtb2ROYW1lU2l6ZSk7Ci0KLSAgICAgICAgaWYgKHJlZ1N0YXQgIT0gRVJST1JfU1VDQ0VTUykKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICAvKiB1c2UgdGhlIGZpbGUgZXh0ZW5zaW9uIHRvIGxvY2F0ZSB0aGUgdHlwZSBlbnRyeS4gKi8KLSAgICBmb3IgKGZkcCA9IF9QeUltcG9ydF9GaWxldGFiOyBmZHAtPnN1ZmZpeCAhPSBOVUxMOyBmZHArKykgewotICAgICAgICBzaXplX3QgZXh0TGVuID0gc3RybGVuKGZkcC0+c3VmZml4KTsKLSAgICAgICAgYXNzZXJ0KG1vZE5hbWVTaXplID49IDApOyAvKiBlbHNlIGNhc3QgdG8gc2l6ZV90IGlzIHdyb25nICovCi0gICAgICAgIGlmICgoc2l6ZV90KW1vZE5hbWVTaXplID4gZXh0TGVuICYmCi0gICAgICAgICAgICBzdHJuaWNtcChwYXRoQnVmICsgKChzaXplX3QpbW9kTmFtZVNpemUtZXh0TGVuLTEpLAotICAgICAgICAgICAgICAgICAgICAgZmRwLT5zdWZmaXgsCi0gICAgICAgICAgICAgICAgICAgICBleHRMZW4pID09IDApCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgaWYgKGZkcC0+c3VmZml4ID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGZwID0gZm9wZW4ocGF0aEJ1ZiwgZmRwLT5tb2RlKTsKLSAgICBpZiAoZnAgIT0gTlVMTCkKLSAgICAgICAgKnBwRmlsZURlc2MgPSBmZHA7Ci0gICAgcmV0dXJuIGZwOwotfQpkaWZmIC0tZ2l0IGEvUEMvbGF1bmNoZXIuYyBiL1BDL2xhdW5jaGVyLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZhZDQ0YQotLS0gL2Rldi9udWxsCisrKyBiL1BDL2xhdW5jaGVyLmMKQEAgLTAsMCArMSwxMzY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTIgVmluYXkgU2FqaXAuCisgKiBMaWNlbnNlZCB0byBQU0YgdW5kZXIgYSBjb250cmlidXRvciBhZ3JlZW1lbnQuCisgKgorICogQmFzZWQgb24gdGhlIHdvcmsgb2Y6CisgKgorICogTWFyayBIYW1tb25kIChvcmlnaW5hbCBhdXRob3Igb2YgUHl0aG9uIHZlcnNpb24pCisgKiBDdXJ0IEhhZ2VubG9jaGVyIChqb2IgbWFuYWdlbWVudCkKKyAqLworCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2luY2x1ZGUgPHNobG9iai5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8dGNoYXIuaD4KKworI2RlZmluZSBCVUZTSVpFIDI1NgorI2RlZmluZSBNU0dTSVpFIDEwMjQKKworLyogQnVpbGQgb3B0aW9ucy4gKi8KKyNkZWZpbmUgU0tJUF9QUkVGSVgKKy8qICNkZWZpbmUgU0VBUkNIX1BBVEggKi8KKworLyogSnVzdCBmb3Igbm93IC0gc3RhdGljIGRlZmluaXRpb24gKi8KKworc3RhdGljIEZJTEUgKiBsb2dfZnAgPSBOVUxMOworCitzdGF0aWMgd2NoYXJfdCAqCitza2lwX3doaXRlc3BhY2Uod2NoYXJfdCAqIHApCit7CisgICAgd2hpbGUgKCpwICYmIGlzc3BhY2UoKnApKQorICAgICAgICArK3A7CisgICAgcmV0dXJuIHA7Cit9CisKKy8qCisgKiBUaGlzIGZ1bmN0aW9uIGlzIGhlcmUgdG8gc2ltcGxpZnkgbWVtb3J5IG1hbmFnZW1lbnQKKyAqIGFuZCB0byB0cmVhdCBibGFuayB2YWx1ZXMgYXMgaWYgdGhleSBhcmUgYWJzZW50LgorICovCitzdGF0aWMgd2NoYXJfdCAqIGdldF9lbnYod2NoYXJfdCAqIGtleSkKK3sKKyAgICAvKiBUaGlzIGlzIG5vdCB0aHJlYWQtc2FmZSwganVzdCBsaWtlIGdldGVudiAqLworICAgIHN0YXRpYyB3Y2hhcl90IGJ1ZlsyNTZdOworICAgIERXT1JEIHJlc3VsdCA9IEdldEVudmlyb25tZW50VmFyaWFibGVXKGtleSwgYnVmLCAyNTYpOworCisgICAgaWYgKHJlc3VsdCA+IDI1NSkgeworICAgICAgICAvKiBMYXJnZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4gQWNjZXB0IHNvbWUgbGVha2FnZSAqLworICAgICAgICB3Y2hhcl90ICpidWYyID0gKHdjaGFyX3QqKW1hbGxvYyhzaXplb2Yod2NoYXJfdCkgKiAocmVzdWx0KzEpKTsKKyAgICAgICAgR2V0RW52aXJvbm1lbnRWYXJpYWJsZVcoa2V5LCBidWYyLCByZXN1bHQpOworICAgICAgICByZXR1cm4gYnVmMjsKKyAgICB9CisKKyAgICBpZiAocmVzdWx0ID09IDApCisgICAgICAgIC8qIEVpdGhlciBzb21lIGVycm9yLCBlLmcuIEVSUk9SX0VOVlZBUl9OT1RfRk9VTkQsCisgICAgICAgICAgIG9yIGFuIGVtcHR5IGVudmlyb25tZW50IHZhcmlhYmxlLiAqLworICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIHJldHVybiBidWY7Cit9CisKKworc3RhdGljIHZvaWQKK2RlYnVnKHdjaGFyX3QgKiBmb3JtYXQsIC4uLikKK3sKKyAgICB2YV9saXN0IHZhOworCisgICAgaWYgKGxvZ19mcCAhPSBOVUxMKSB7CisgICAgICAgIHZhX3N0YXJ0KHZhLCBmb3JtYXQpOworICAgICAgICB2ZndwcmludGZfcyhsb2dfZnAsIGZvcm1hdCwgdmEpOworICAgIH0KK30KKworc3RhdGljIHZvaWQKK3dpbmVycm9yKGludCByYywgd2NoYXJfdCAqIG1lc3NhZ2UsIGludCBzaXplKQoreworICAgIEZvcm1hdE1lc3NhZ2VXKAorICAgICAgICBGT1JNQVRfTUVTU0FHRV9GUk9NX1NZU1RFTSB8IEZPUk1BVF9NRVNTQUdFX0lHTk9SRV9JTlNFUlRTLAorICAgICAgICBOVUxMLCByYywgTUFLRUxBTkdJRChMQU5HX05FVVRSQUwsIFNVQkxBTkdfREVGQVVMVCksCisgICAgICAgIG1lc3NhZ2UsIHNpemUsIE5VTEwpOworfQorCitzdGF0aWMgdm9pZAorZXJyb3IoaW50IHJjLCB3Y2hhcl90ICogZm9ybWF0LCAuLi4gKQoreworICAgIHZhX2xpc3QgdmE7CisgICAgd2NoYXJfdCBtZXNzYWdlW01TR1NJWkVdOworICAgIHdjaGFyX3Qgd2luX21lc3NhZ2VbTVNHU0laRV07CisgICAgaW50IGxlbjsKKworICAgIHZhX3N0YXJ0KHZhLCBmb3JtYXQpOworICAgIGxlbiA9IF92c253cHJpbnRmX3MobWVzc2FnZSwgTVNHU0laRSwgX1RSVU5DQVRFLCBmb3JtYXQsIHZhKTsKKworICAgIGlmIChyYyA9PSAwKSB7ICAvKiBhIFdpbmRvd3MgZXJyb3IgKi8KKyAgICAgICAgd2luZXJyb3IoR2V0TGFzdEVycm9yKCksIHdpbl9tZXNzYWdlLCBNU0dTSVpFKTsKKyAgICAgICAgaWYgKGxlbiA+PSAwKSB7CisgICAgICAgICAgICBfc253cHJpbnRmX3MoJm1lc3NhZ2VbbGVuXSwgTVNHU0laRSAtIGxlbiwgX1RSVU5DQVRFLCBMIjogJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgIHdpbl9tZXNzYWdlKTsKKyAgICAgICAgfQorICAgIH0KKworI2lmICFkZWZpbmVkKF9XSU5ET1dTKQorICAgIGZ3cHJpbnRmKHN0ZGVyciwgTCIlc1xuIiwgbWVzc2FnZSk7CisjZWxzZQorICAgIE1lc3NhZ2VCb3goTlVMTCwgbWVzc2FnZSwgVEVYVCgiUHl0aG9uIExhdW5jaGVyIGlzIHNvcnJ5IHRvIHNheSAuLi4iKSwgTUJfT0spOyAKKyNlbmRpZgorICAgIEV4aXRQcm9jZXNzKHJjKTsKK30KKworI2lmIGRlZmluZWQoX1dJTkRPV1MpCisKKyNkZWZpbmUgUFlUSE9OX0VYRUNVVEFCTEUgTCJweXRob253LmV4ZSIKKworI2Vsc2UKKworI2RlZmluZSBQWVRIT05fRVhFQ1VUQUJMRSBMInB5dGhvbi5leGUiCisKKyNlbmRpZgorCisjZGVmaW5lIFJDX05PX1NURF9IQU5ETEVTICAgMTAwCisjZGVmaW5lIFJDX0NSRUFURV9QUk9DRVNTICAgMTAxCisjZGVmaW5lIFJDX0JBRF9WSVJUVUFMX1BBVEggMTAyCisjZGVmaW5lIFJDX05PX1BZVEhPTiAgICAgICAgMTAzCisKKyNkZWZpbmUgTUFYX1ZFUlNJT05fU0laRSAgICA0CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB3Y2hhcl90IHZlcnNpb25bTUFYX1ZFUlNJT05fU0laRV07IC8qIG0ubiAqLworICAgIGludCBiaXRzOyAgIC8qIDMyIG9yIDY0ICovCisgICAgd2NoYXJfdCBleGVjdXRhYmxlW01BWF9QQVRIXTsKK30gSU5TVEFMTEVEX1BZVEhPTjsKKworLyoKKyAqIFRvIGF2b2lkIG1lc3NpbmcgYWJvdXQgd2l0aCBoZWFwIGFsbG9jYXRpb25zLCBqdXN0IGFzc3VtZSB3ZSBjYW4gYWxsb2NhdGUKKyAqIHN0YXRpY2FsbHkgYW5kIG5ldmVyIGhhdmUgdG8gZGVhbCB3aXRoIG1vcmUgdmVyc2lvbnMgdGhhbiB0aGlzLgorICovCisjZGVmaW5lIE1BWF9JTlNUQUxMRURfUFlUSE9OUyAgIDEwMAorCitzdGF0aWMgSU5TVEFMTEVEX1BZVEhPTiBpbnN0YWxsZWRfcHl0aG9uc1tNQVhfSU5TVEFMTEVEX1BZVEhPTlNdOworCitzdGF0aWMgc2l6ZV90IG51bV9pbnN0YWxsZWRfcHl0aG9ucyA9IDA7CisKKy8qIHRvIGhvbGQgU09GVFdBUkVcUHl0aG9uXFB5dGhvbkNvcmVcWC5ZXEluc3RhbGxQYXRoICovCisjZGVmaW5lIElQX0JBU0VfU0laRSA0MAorI2RlZmluZSBJUF9TSVpFIChJUF9CQVNFX1NJWkUgKyBNQVhfVkVSU0lPTl9TSVpFKQorI2RlZmluZSBDT1JFX1BBVEggTCJTT0ZUV0FSRVxcUHl0aG9uXFxQeXRob25Db3JlIgorCitzdGF0aWMgd2NoYXJfdCAqIGxvY2F0aW9uX2NoZWNrc1tdID0geworICAgIEwiXFwiLAorICAgIEwiXFxQQ0J1aWxkXFwiLAorICAgIEwiXFxQQ0J1aWxkXFxhbWQ2NFxcIiwKKyAgICBOVUxMCit9OworCitzdGF0aWMgSU5TVEFMTEVEX1BZVEhPTiAqCitmaW5kX2V4aXN0aW5nX3B5dGhvbih3Y2hhcl90ICogcGF0aCkKK3sKKyAgICBJTlNUQUxMRURfUFlUSE9OICogcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgaTsKKyAgICBJTlNUQUxMRURfUFlUSE9OICogaXA7CisKKyAgICBmb3IgKGkgPSAwLCBpcCA9IGluc3RhbGxlZF9weXRob25zOyBpIDwgbnVtX2luc3RhbGxlZF9weXRob25zOyBpKyssIGlwKyspIHsKKyAgICAgICAgaWYgKF93Y3NpY21wKHBhdGgsIGlwLT5leGVjdXRhYmxlKSA9PSAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBpcDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyB2b2lkCitsb2NhdGVfcHl0aG9uc19mb3Jfa2V5KEhLRVkgcm9vdCwgUkVHU0FNIGZsYWdzKQoreworICAgIEhLRVkgY29yZV9yb290LCBpcF9rZXk7CisgICAgTFNUQVRVUyBzdGF0dXMgPSBSZWdPcGVuS2V5RXhXKHJvb3QsIENPUkVfUEFUSCwgMCwgZmxhZ3MsICZjb3JlX3Jvb3QpOworICAgIHdjaGFyX3QgbWVzc2FnZVtNU0dTSVpFXTsKKyAgICBEV09SRCBpOworICAgIHNpemVfdCBuOworICAgIEJPT0wgb2s7CisgICAgRFdPUkQgdHlwZSwgZGF0YV9zaXplLCBhdHRyczsKKyAgICBJTlNUQUxMRURfUFlUSE9OICogaXAsICogcGlwOworICAgIHdjaGFyX3QgaXBfcGF0aFtJUF9TSVpFXTsKKyAgICB3Y2hhcl90ICogY2hlY2s7CisgICAgd2NoYXJfdCAqKiBjaGVja3A7CisgICAgd2NoYXJfdCAqa2V5X25hbWUgPSAocm9vdCA9PSBIS0VZX0xPQ0FMX01BQ0hJTkUpID8gTCJIS0xNIiA6IEwiSEtDVSI7CisKKyAgICBpZiAoc3RhdHVzICE9IEVSUk9SX1NVQ0NFU1MpCisgICAgICAgIGRlYnVnKEwibG9jYXRlX3B5dGhvbnNfZm9yX2tleTogdW5hYmxlIHRvIG9wZW4gUHl0aG9uQ29yZSBrZXkgaW4gJXNcbiIsCisgICAgICAgICAgICAgIGtleV9uYW1lKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaXAgPSAmaW5zdGFsbGVkX3B5dGhvbnNbbnVtX2luc3RhbGxlZF9weXRob25zXTsKKyAgICAgICAgZm9yIChpID0gMDsgbnVtX2luc3RhbGxlZF9weXRob25zIDwgTUFYX0lOU1RBTExFRF9QWVRIT05TOyBpKyspIHsKKyAgICAgICAgICAgIHN0YXR1cyA9IFJlZ0VudW1LZXlXKGNvcmVfcm9vdCwgaSwgaXAtPnZlcnNpb24sIE1BWF9WRVJTSU9OX1NJWkUpOworICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBFUlJPUl9TVUNDRVNTKSB7CisgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBFUlJPUl9OT19NT1JFX0lURU1TKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIHVuZXhwZWN0ZWQgZXJyb3IgKi8KKyAgICAgICAgICAgICAgICAgICAgd2luZXJyb3Ioc3RhdHVzLCBtZXNzYWdlLCBNU0dTSVpFKTsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoTCJDYW4ndCBlbnVtZXJhdGUgcmVnaXN0cnkga2V5IGZvciB2ZXJzaW9uICVzOiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaXAtPnZlcnNpb24sIG1lc3NhZ2UpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIF9zbndwcmludGZfcyhpcF9wYXRoLCBJUF9TSVpFLCBfVFJVTkNBVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwiJXNcXCVzXFxJbnN0YWxsUGF0aCIsIENPUkVfUEFUSCwgaXAtPnZlcnNpb24pOworICAgICAgICAgICAgICAgIHN0YXR1cyA9IFJlZ09wZW5LZXlFeFcocm9vdCwgaXBfcGF0aCwgMCwgZmxhZ3MsICZpcF9rZXkpOworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gRVJST1JfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgICAgICB3aW5lcnJvcihzdGF0dXMsIG1lc3NhZ2UsIE1TR1NJWkUpOworICAgICAgICAgICAgICAgICAgICAvLyBOb3RlOiAnbWVzc2FnZScgYWxyZWFkeSBoYXMgYSB0cmFpbGluZyBcbgorICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhMIiVzXFwlczogJXMiLCBrZXlfbmFtZSwgaXBfcGF0aCwgbWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkYXRhX3NpemUgPSBzaXplb2YoaXAtPmV4ZWN1dGFibGUpIC0gMTsKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSBSZWdRdWVyeVZhbHVlRXhXKGlwX2tleSwgTlVMTCwgTlVMTCwgJnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoTFBCWVRFKWlwLT5leGVjdXRhYmxlLCAmZGF0YV9zaXplKTsKKyAgICAgICAgICAgICAgICBSZWdDbG9zZUtleShpcF9rZXkpOworICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gRVJST1JfU1VDQ0VTUykgeworICAgICAgICAgICAgICAgICAgICB3aW5lcnJvcihzdGF0dXMsIG1lc3NhZ2UsIE1TR1NJWkUpOworICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhMIiVzXFwlczogJXNcbiIsIGtleV9uYW1lLCBpcF9wYXRoLCBtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFJFR19TWikgeworICAgICAgICAgICAgICAgICAgICBkYXRhX3NpemUgPSBkYXRhX3NpemUgLyBzaXplb2Yod2NoYXJfdCkgLSAxOyAgLyogZm9yIE5VTCAqLworICAgICAgICAgICAgICAgICAgICBpZiAoaXAtPmV4ZWN1dGFibGVbZGF0YV9zaXplIC0gMV0gPT0gTCdcXCcpCisgICAgICAgICAgICAgICAgICAgICAgICAtLWRhdGFfc2l6ZTsgLyogcmVnIHZhbHVlIGVuZGVkIGluIGEgYmFja3NsYXNoICovCisgICAgICAgICAgICAgICAgICAgIC8qIGlwLT5leGVjdXRhYmxlIGlzIGRhdGFfc2l6ZSBsb25nICovCisgICAgICAgICAgICAgICAgICAgIGZvciAoY2hlY2twID0gbG9jYXRpb25fY2hlY2tzOyAqY2hlY2twOyArK2NoZWNrcCkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2sgPSAqY2hlY2twOworICAgICAgICAgICAgICAgICAgICAgICAgX3Nud3ByaW50Zl9zKCZpcC0+ZXhlY3V0YWJsZVtkYXRhX3NpemVdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9QQVRIIC0gZGF0YV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1BWF9QQVRIIC0gZGF0YV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwiJXMlcyIsIGNoZWNrLCBQWVRIT05fRVhFQ1VUQUJMRSk7CisgICAgICAgICAgICAgICAgICAgICAgICBhdHRycyA9IEdldEZpbGVBdHRyaWJ1dGVzVyhpcC0+ZXhlY3V0YWJsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cnMgPT0gSU5WQUxJRF9GSUxFX0FUVFJJQlVURVMpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5lcnJvcihHZXRMYXN0RXJyb3IoKSwgbWVzc2FnZSwgTVNHU0laRSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoTCJsb2NhdGVfcHl0aG9uc19mb3Jfa2V5OiAlczogJXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwLT5leGVjdXRhYmxlLCBtZXNzYWdlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJzICYgRklMRV9BVFRSSUJVVEVfRElSRUNUT1JZKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoTCJsb2NhdGVfcHl0aG9uc19mb3Jfa2V5OiAnJXMnIGlzIGEgXAorZGlyZWN0b3J5XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwLT5leGVjdXRhYmxlLCBhdHRycyk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChmaW5kX2V4aXN0aW5nX3B5dGhvbihpcC0+ZXhlY3V0YWJsZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhMImxvY2F0ZV9weXRob25zX2Zvcl9rZXk6ICVzOiBhbHJlYWR5IFwKK2ZvdW5kOiAlc1xuIiwgaXAtPmV4ZWN1dGFibGUpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogY2hlY2sgdGhlIGV4ZWN1dGFibGUgdHlwZS4gKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvayA9IEdldEJpbmFyeVR5cGVXKGlwLT5leGVjdXRhYmxlLCAmYXR0cnMpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoTCJGYWlsdXJlIGdldHRpbmcgYmluYXJ5IHR5cGU6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcC0+ZXhlY3V0YWJsZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXR0cnMgPT0gU0NTXzY0QklUX0JJTkFSWSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwLT5iaXRzID0gNjQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGF0dHJzID09IFNDU18zMkJJVF9CSU5BUlkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcC0+Yml0cyA9IDMyOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcC0+Yml0cyA9IDA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpcC0+Yml0cyA9PSAwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhMImxvY2F0ZV9weXRob25zX2Zvcl9rZXk6ICVzOiBcCitpbnZhbGlkIGJpbmFyeSB0eXBlOiAlWFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwLT5leGVjdXRhYmxlLCBhdHRycyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAod2NzY2hyKGlwLT5leGVjdXRhYmxlLCBMJyAnKSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogaGFzIHNwYWNlcywgc28gcXVvdGUgKi8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuID0gd2NzbGVuKGlwLT5leGVjdXRhYmxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1tb3ZlKCZpcC0+ZXhlY3V0YWJsZVsxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwLT5leGVjdXRhYmxlLCBuICogc2l6ZW9mKHdjaGFyX3QpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcC0+ZXhlY3V0YWJsZVswXSA9IEwnXCInOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwLT5leGVjdXRhYmxlW24gKyAxXSA9IEwnXCInOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwLT5leGVjdXRhYmxlW24gKyAyXSA9IEwnXDAnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcoTCJsb2NhdGVfcHl0aG9uc19mb3Jfa2V5OiAlcyBcCitpcyBhICVkYml0IGV4ZWN1dGFibGVcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXAtPmV4ZWN1dGFibGUsIGlwLT5iaXRzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrbnVtX2luc3RhbGxlZF9weXRob25zOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGlwID0gaXArKzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChudW1faW5zdGFsbGVkX3B5dGhvbnMgPj0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNQVhfSU5TVEFMTEVEX1BZVEhPTlMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBDb3B5IG92ZXIgdGhlIGF0dHJpYnV0ZXMgZm9yIHRoZSBuZXh0ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqaXAgPSAqcGlwOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFJlZ0Nsb3NlS2V5KGNvcmVfcm9vdCk7CisgICAgfQorfQorCitzdGF0aWMgaW50Citjb21wYXJlX3B5dGhvbnMoY29uc3Qgdm9pZCAqIHAxLCBjb25zdCB2b2lkICogcDIpCit7CisgICAgSU5TVEFMTEVEX1BZVEhPTiAqIGlwMSA9IChJTlNUQUxMRURfUFlUSE9OICopIHAxOworICAgIElOU1RBTExFRF9QWVRIT04gKiBpcDIgPSAoSU5TVEFMTEVEX1BZVEhPTiAqKSBwMjsKKyAgICAvKiBub3RlIHJldmVyc2Ugc29ydGluZyBvbiB2ZXJzaW9uICovCisgICAgaW50IHJlc3VsdCA9IHdjc2NtcChpcDItPnZlcnNpb24sIGlwMS0+dmVyc2lvbik7CisKKyAgICBpZiAocmVzdWx0ID09IDApCisgICAgICAgIHJlc3VsdCA9IGlwMi0+Yml0cyAtIGlwMS0+Yml0czsgLyogNjQgYmVmb3JlIDMyICovCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIHZvaWQKK2xvY2F0ZV9hbGxfcHl0aG9ucygpCit7CisjaWYgZGVmaW5lZChfTV9YNjQpCisgICAgLy8gSWYgd2UgYXJlIGEgNjRiaXQgcHJvY2VzcywgZmlyc3QgaGl0IHRoZSAzMmJpdCBrZXlzLgorICAgIGRlYnVnKEwibG9jYXRpbmcgUHl0aG9ucyBpbiAzMmJpdCByZWdpc3RyeVxuIik7CisgICAgbG9jYXRlX3B5dGhvbnNfZm9yX2tleShIS0VZX0NVUlJFTlRfVVNFUiwgS0VZX1JFQUQgfCBLRVlfV09XNjRfMzJLRVkpOworICAgIGxvY2F0ZV9weXRob25zX2Zvcl9rZXkoSEtFWV9MT0NBTF9NQUNISU5FLCBLRVlfUkVBRCB8IEtFWV9XT1c2NF8zMktFWSk7CisjZWxzZQorICAgIC8vIElmIHdlIGFyZSBhIDMyYml0IHByb2Nlc3Mgb24gYSA2NGJpdCBXaW5kb3dzLCBmaXJzdCBoaXQgdGhlIDY0Yml0IGtleXMuCisgICAgQk9PTCBmNjQgPSBGQUxTRTsKKyAgICBpZiAoSXNXb3c2NFByb2Nlc3MoR2V0Q3VycmVudFByb2Nlc3MoKSwgJmY2NCkgJiYgZjY0KSB7CisgICAgICAgIGRlYnVnKEwibG9jYXRpbmcgUHl0aG9ucyBpbiA2NGJpdCByZWdpc3RyeVxuIik7CisgICAgICAgIGxvY2F0ZV9weXRob25zX2Zvcl9rZXkoSEtFWV9DVVJSRU5UX1VTRVIsIEtFWV9SRUFEIHwgS0VZX1dPVzY0XzY0S0VZKTsKKyAgICAgICAgbG9jYXRlX3B5dGhvbnNfZm9yX2tleShIS0VZX0xPQ0FMX01BQ0hJTkUsIEtFWV9SRUFEIHwgS0VZX1dPVzY0XzY0S0VZKTsKKyAgICB9CisjZW5kaWYgICAgCisgICAgLy8gbm93IGhpdCB0aGUgIm5hdGl2ZSIga2V5IGZvciB0aGlzIHByb2Nlc3MgYml0dGVkbmVzcy4KKyAgICBkZWJ1ZyhMImxvY2F0aW5nIFB5dGhvbnMgaW4gbmF0aXZlIHJlZ2lzdHJ5XG4iKTsKKyAgICBsb2NhdGVfcHl0aG9uc19mb3Jfa2V5KEhLRVlfQ1VSUkVOVF9VU0VSLCBLRVlfUkVBRCk7CisgICAgbG9jYXRlX3B5dGhvbnNfZm9yX2tleShIS0VZX0xPQ0FMX01BQ0hJTkUsIEtFWV9SRUFEKTsKKyAgICBxc29ydChpbnN0YWxsZWRfcHl0aG9ucywgbnVtX2luc3RhbGxlZF9weXRob25zLCBzaXplb2YoSU5TVEFMTEVEX1BZVEhPTiksCisgICAgICAgICAgY29tcGFyZV9weXRob25zKTsKK30KKworc3RhdGljIElOU1RBTExFRF9QWVRIT04gKgorZmluZF9weXRob25fYnlfdmVyc2lvbih3Y2hhcl90IGNvbnN0ICogd2FudGVkX3ZlcikKK3sKKyAgICBJTlNUQUxMRURfUFlUSE9OICogcmVzdWx0ID0gTlVMTDsKKyAgICBJTlNUQUxMRURfUFlUSE9OICogaXAgPSBpbnN0YWxsZWRfcHl0aG9uczsKKyAgICBzaXplX3QgaSwgbjsKKyAgICBzaXplX3Qgd2xlbiA9IHdjc2xlbih3YW50ZWRfdmVyKTsKKyAgICBpbnQgYml0cyA9IDA7CisKKyAgICBpZiAod2Nzc3RyKHdhbnRlZF92ZXIsIEwiLTMyIikpCisgICAgICAgIGJpdHMgPSAzMjsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX2luc3RhbGxlZF9weXRob25zOyBpKyssIGlwKyspIHsKKyAgICAgICAgbiA9IHdjc2xlbihpcC0+dmVyc2lvbik7CisgICAgICAgIGlmIChuID4gd2xlbikKKyAgICAgICAgICAgIG4gPSB3bGVuOworICAgICAgICBpZiAoKHdjc25jbXAoaXAtPnZlcnNpb24sIHdhbnRlZF92ZXIsIG4pID09IDApICYmCisgICAgICAgICAgICAvKiBiaXRzID09IDAgPT4gZG9uJ3QgY2FyZSAqLworICAgICAgICAgICAgKChiaXRzID09IDApIHx8IChpcC0+Yml0cyA9PSBiaXRzKSkpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGlwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCitzdGF0aWMgd2NoYXJfdCBhcHBkYXRhX2luaV9wYXRoW01BWF9QQVRIXTsKK3N0YXRpYyB3Y2hhcl90IGxhdW5jaGVyX2luaV9wYXRoW01BWF9QQVRIXTsKKworLyoKKyAqIEdldCBhIHZhbHVlIGVpdGhlciBmcm9tIHRoZSBlbnZpcm9ubWVudCBvciBhIGNvbmZpZ3VyYXRpb24gZmlsZS4KKyAqIFRoZSBrZXkgcGFzc2VkIGluIHdpbGwgZWl0aGVyIGJlICJweXRob24iLCAicHl0aG9uMiIgb3IgInB5dGhvbjMiLgorICovCitzdGF0aWMgd2NoYXJfdCAqCitnZXRfY29uZmlndXJlZF92YWx1ZSh3Y2hhcl90ICoga2V5KQoreworLyoKKyAqIE5vdGU6IHRoaXMgc3RhdGljIHZhbHVlIGlzIHVzZWQgdG8gcmV0dXJuIGEgY29uZmlndXJlZCB2YWx1ZQorICogb2J0YWluZWQgZWl0aGVyIGZyb20gdGhlIGVudmlyb25tZW50IG9yIGNvbmZpZ3VyYXRpb24gZmlsZS4KKyAqIFRoaXMgc2hvdWxkIGJlIE9LIHNpbmNlIHRoZXJlIHdvdWxkbid0IGJlIGFueSBjb25jdXJyZW50IGNhbGxzLgorICovCisgICAgc3RhdGljIHdjaGFyX3QgY29uZmlndXJlZF92YWx1ZVtNU0dTSVpFXTsKKyAgICB3Y2hhcl90ICogcmVzdWx0ID0gTlVMTDsKKyAgICB3Y2hhcl90ICogZm91bmRfaW4gPSBMImVudmlyb25tZW50IjsKKyAgICBEV09SRCBzaXplOworCisgICAgLyogRmlyc3QsIHNlYXJjaCB0aGUgZW52aXJvbm1lbnQuICovCisgICAgX3Nud3ByaW50Zl9zKGNvbmZpZ3VyZWRfdmFsdWUsIE1TR1NJWkUsIF9UUlVOQ0FURSwgTCJweV8lcyIsIGtleSk7CisgICAgcmVzdWx0ID0gZ2V0X2Vudihjb25maWd1cmVkX3ZhbHVlKTsKKyAgICBpZiAocmVzdWx0ID09IE5VTEwgJiYgYXBwZGF0YV9pbmlfcGF0aFswXSkgeworICAgICAgICAvKiBOb3QgaW4gZW52aXJvbm1lbnQ6IGNoZWNrIGxvY2FsIGNvbmZpZ3VyYXRpb24uICovCisgICAgICAgIHNpemUgPSBHZXRQcml2YXRlUHJvZmlsZVN0cmluZ1coTCJkZWZhdWx0cyIsIGtleSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmVkX3ZhbHVlLCBNU0dTSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGRhdGFfaW5pX3BhdGgpOworICAgICAgICBpZiAoc2l6ZSA+IDApIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGNvbmZpZ3VyZWRfdmFsdWU7CisgICAgICAgICAgICBmb3VuZF9pbiA9IGFwcGRhdGFfaW5pX3BhdGg7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKHJlc3VsdCA9PSBOVUxMICYmIGxhdW5jaGVyX2luaV9wYXRoWzBdKSB7CisgICAgICAgIC8qIE5vdCBpbiBlbnZpcm9ubWVudCBvciBsb2NhbDogY2hlY2sgZ2xvYmFsIGNvbmZpZ3VyYXRpb24uICovCisgICAgICAgIHNpemUgPSBHZXRQcml2YXRlUHJvZmlsZVN0cmluZ1coTCJkZWZhdWx0cyIsIGtleSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmVkX3ZhbHVlLCBNU0dTSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhdW5jaGVyX2luaV9wYXRoKTsKKyAgICAgICAgaWYgKHNpemUgPiAwKSB7CisgICAgICAgICAgICByZXN1bHQgPSBjb25maWd1cmVkX3ZhbHVlOworICAgICAgICAgICAgZm91bmRfaW4gPSBsYXVuY2hlcl9pbmlfcGF0aDsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIGRlYnVnKEwiZm91bmQgY29uZmlndXJlZCB2YWx1ZSAnJXM9JXMnIGluICVzXG4iLAorICAgICAgICAgICAgICBrZXksIHJlc3VsdCwgZm91bmRfaW4gPyBmb3VuZF9pbiA6IEwiKHVua25vd24pIik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZGVidWcoTCJmb3VuZCBubyBjb25maWd1cmVkIHZhbHVlIGZvciAnJXMnXG4iLCBrZXkpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgSU5TVEFMTEVEX1BZVEhPTiAqCitsb2NhdGVfcHl0aG9uKHdjaGFyX3QgKiB3YW50ZWRfdmVyKQoreworICAgIHN0YXRpYyB3Y2hhcl90IGNvbmZpZ19rZXkgW10gPSB7IEwicHl0aG9uWCIgfTsKKyAgICBzdGF0aWMgd2NoYXJfdCAqIGxhc3RfY2hhciA9ICZjb25maWdfa2V5W3NpemVvZihjb25maWdfa2V5KSAvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yod2NoYXJfdCkgLSAyXTsKKyAgICBJTlNUQUxMRURfUFlUSE9OICogcmVzdWx0ID0gTlVMTDsKKyAgICBzaXplX3QgbiA9IHdjc2xlbih3YW50ZWRfdmVyKTsKKyAgICB3Y2hhcl90ICogY29uZmlndXJlZF92YWx1ZTsKKworICAgIGlmIChudW1faW5zdGFsbGVkX3B5dGhvbnMgPT0gMCkKKyAgICAgICAgbG9jYXRlX2FsbF9weXRob25zKCk7CisKKyAgICBpZiAobiA9PSAxKSB7ICAgLyoganVzdCBtYWpvciB2ZXJzaW9uIHNwZWNpZmllZCAqLworICAgICAgICAqbGFzdF9jaGFyID0gKndhbnRlZF92ZXI7CisgICAgICAgIGNvbmZpZ3VyZWRfdmFsdWUgPSBnZXRfY29uZmlndXJlZF92YWx1ZShjb25maWdfa2V5KTsKKyAgICAgICAgaWYgKGNvbmZpZ3VyZWRfdmFsdWUgIT0gTlVMTCkKKyAgICAgICAgICAgIHdhbnRlZF92ZXIgPSBjb25maWd1cmVkX3ZhbHVlOworICAgIH0KKyAgICBpZiAoKndhbnRlZF92ZXIpIHsKKyAgICAgICAgcmVzdWx0ID0gZmluZF9weXRob25fYnlfdmVyc2lvbih3YW50ZWRfdmVyKTsKKyAgICAgICAgZGVidWcoTCJzZWFyY2ggZm9yIFB5dGhvbiB2ZXJzaW9uICclcycgZm91bmQgIiwgd2FudGVkX3Zlcik7CisgICAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgICAgIGRlYnVnKEwiJyVzJ1xuIiwgcmVzdWx0LT5leGVjdXRhYmxlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlYnVnKEwibm8gaW50ZXJwcmV0ZXJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAqbGFzdF9jaGFyID0gTCdcMCc7IC8qIGxvb2sgZm9yIGFuIG92ZXJhbGwgZGVmYXVsdCAqLworICAgICAgICBjb25maWd1cmVkX3ZhbHVlID0gZ2V0X2NvbmZpZ3VyZWRfdmFsdWUoY29uZmlnX2tleSk7CisgICAgICAgIGlmIChjb25maWd1cmVkX3ZhbHVlKQorICAgICAgICAgICAgcmVzdWx0ID0gZmluZF9weXRob25fYnlfdmVyc2lvbihjb25maWd1cmVkX3ZhbHVlKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICAgICAgcmVzdWx0ID0gZmluZF9weXRob25fYnlfdmVyc2lvbihMIjIiKTsKKyAgICAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQorICAgICAgICAgICAgcmVzdWx0ID0gZmluZF9weXRob25fYnlfdmVyc2lvbihMIjMiKTsKKyAgICAgICAgZGVidWcoTCJzZWFyY2ggZm9yIGRlZmF1bHQgUHl0aG9uIGZvdW5kICIpOworICAgICAgICBpZiAocmVzdWx0KSB7CisgICAgICAgICAgICBkZWJ1ZyhMInZlcnNpb24gJXMgYXQgJyVzJ1xuIiwKKyAgICAgICAgICAgICAgICAgIHJlc3VsdC0+dmVyc2lvbiwgcmVzdWx0LT5leGVjdXRhYmxlKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlYnVnKEwibm8gaW50ZXJwcmV0ZXJcbiIpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBQcm9jZXNzIGNyZWF0aW9uIGNvZGUKKyAqLworCitzdGF0aWMgQk9PTAorc2FmZV9kdXBsaWNhdGVfaGFuZGxlKEhBTkRMRSBpbiwgSEFORExFICogcG91dCkKK3sKKyAgICBCT09MIG9rOworICAgIEhBTkRMRSBwcm9jZXNzID0gR2V0Q3VycmVudFByb2Nlc3MoKTsKKyAgICBEV09SRCByYzsKKworICAgICpwb3V0ID0gTlVMTDsKKyAgICBvayA9IER1cGxpY2F0ZUhhbmRsZShwcm9jZXNzLCBpbiwgcHJvY2VzcywgcG91dCwgMCwgVFJVRSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBEVVBMSUNBVEVfU0FNRV9BQ0NFU1MpOworICAgIGlmICghb2spIHsKKyAgICAgICAgcmMgPSBHZXRMYXN0RXJyb3IoKTsKKyAgICAgICAgaWYgKHJjID09IEVSUk9SX0lOVkFMSURfSEFORExFKSB7CisgICAgICAgICAgICBkZWJ1ZyhMIkR1cGxpY2F0ZUhhbmRsZSByZXR1cm5lZCBFUlJPUl9JTlZBTElEX0hBTkRMRVxuIik7CisgICAgICAgICAgICBvayA9IFRSVUU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkZWJ1ZyhMIkR1cGxpY2F0ZUhhbmRsZSByZXR1cm5lZCAlZFxuIiwgcmMpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiBvazsKK30KKworc3RhdGljIEJPT0wgV0lOQVBJCitjdHJsX2NfaGFuZGxlcihEV09SRCBjb2RlKQoreworICAgIHJldHVybiBUUlVFOyAgICAvKiBXZSBqdXN0IGlnbm9yZSBhbGwgY29udHJvbCBldmVudHMuICovCit9CisKK3N0YXRpYyB2b2lkCitydW5fY2hpbGQod2NoYXJfdCAqIGNtZGxpbmUpCit7CisgICAgSEFORExFIGpvYjsKKyAgICBKT0JPQkpFQ1RfRVhURU5ERURfTElNSVRfSU5GT1JNQVRJT04gaW5mbzsKKyAgICBEV09SRCByYzsKKyAgICBCT09MIG9rOworICAgIFNUQVJUVVBJTkZPVyBzaTsKKyAgICBQUk9DRVNTX0lORk9STUFUSU9OIHBpOworCisgICAgZGVidWcoTCJydW5fY2hpbGQ6IGFib3V0IHRvIHJ1biAnJXMnXG4iLCBjbWRsaW5lKTsKKyAgICBqb2IgPSBDcmVhdGVKb2JPYmplY3QoTlVMTCwgTlVMTCk7CisgICAgb2sgPSBRdWVyeUluZm9ybWF0aW9uSm9iT2JqZWN0KGpvYiwgSm9iT2JqZWN0RXh0ZW5kZWRMaW1pdEluZm9ybWF0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbmZvLCBzaXplb2YoaW5mbyksICZyYyk7CisgICAgaWYgKCFvayB8fCAocmMgIT0gc2l6ZW9mKGluZm8pKSB8fCAham9iKQorICAgICAgICBlcnJvcihSQ19DUkVBVEVfUFJPQ0VTUywgTCJKb2IgaW5mb3JtYXRpb24gcXVlcnlpbmcgZmFpbGVkIik7CisgICAgaW5mby5CYXNpY0xpbWl0SW5mb3JtYXRpb24uTGltaXRGbGFncyB8PSBKT0JfT0JKRUNUX0xJTUlUX0tJTExfT05fSk9CX0NMT1NFIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpPQl9PQkpFQ1RfTElNSVRfU0lMRU5UX0JSRUFLQVdBWV9PSzsKKyAgICBvayA9IFNldEluZm9ybWF0aW9uSm9iT2JqZWN0KGpvYiwgSm9iT2JqZWN0RXh0ZW5kZWRMaW1pdEluZm9ybWF0aW9uLCAmaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihpbmZvKSk7CisgICAgaWYgKCFvaykKKyAgICAgICAgZXJyb3IoUkNfQ1JFQVRFX1BST0NFU1MsIEwiSm9iIGluZm9ybWF0aW9uIHNldHRpbmcgZmFpbGVkIik7CisgICAgbWVtc2V0KCZzaSwgMCwgc2l6ZW9mKHNpKSk7CisgICAgc2kuY2IgPSBzaXplb2Yoc2kpOworICAgIG9rID0gc2FmZV9kdXBsaWNhdGVfaGFuZGxlKEdldFN0ZEhhbmRsZShTVERfSU5QVVRfSEFORExFKSwgJnNpLmhTdGRJbnB1dCk7CisgICAgaWYgKCFvaykKKyAgICAgICAgZXJyb3IoUkNfTk9fU1REX0hBTkRMRVMsIEwic3RkaW4gZHVwbGljYXRpb24gZmFpbGVkIik7CisgICAgb2sgPSBzYWZlX2R1cGxpY2F0ZV9oYW5kbGUoR2V0U3RkSGFuZGxlKFNURF9PVVRQVVRfSEFORExFKSwgJnNpLmhTdGRPdXRwdXQpOworICAgIGlmICghb2spCisgICAgICAgIGVycm9yKFJDX05PX1NURF9IQU5ETEVTLCBMInN0ZG91dCBkdXBsaWNhdGlvbiBmYWlsZWQiKTsKKyAgICBvayA9IHNhZmVfZHVwbGljYXRlX2hhbmRsZShHZXRTdGRIYW5kbGUoU1REX0VSUk9SX0hBTkRMRSksICZzaS5oU3RkRXJyb3IpOworICAgIGlmICghb2spCisgICAgICAgIGVycm9yKFJDX05PX1NURF9IQU5ETEVTLCBMInN0ZGVyciBkdXBsaWNhdGlvbiBmYWlsZWQiKTsKKworICAgIG9rID0gU2V0Q29uc29sZUN0cmxIYW5kbGVyKGN0cmxfY19oYW5kbGVyLCBUUlVFKTsKKyAgICBpZiAoIW9rKQorICAgICAgICBlcnJvcihSQ19DUkVBVEVfUFJPQ0VTUywgTCJjb250cm9sIGhhbmRsZXIgc2V0dGluZyBmYWlsZWQiKTsKKworICAgIHNpLmR3RmxhZ3MgPSBTVEFSVEZfVVNFU1RESEFORExFUzsKKyAgICBvayA9IENyZWF0ZVByb2Nlc3NXKE5VTEwsIGNtZGxpbmUsIE5VTEwsIE5VTEwsIFRSVUUsCisgICAgICAgICAgICAgICAgICAgICAgICAwLCBOVUxMLCBOVUxMLCAmc2ksICZwaSk7CisgICAgaWYgKCFvaykKKyAgICAgICAgZXJyb3IoUkNfQ1JFQVRFX1BST0NFU1MsIEwiVW5hYmxlIHRvIGNyZWF0ZSBwcm9jZXNzIHVzaW5nICclcyciLCBjbWRsaW5lKTsKKyAgICBBc3NpZ25Qcm9jZXNzVG9Kb2JPYmplY3Qoam9iLCBwaS5oUHJvY2Vzcyk7CisgICAgQ2xvc2VIYW5kbGUocGkuaFRocmVhZCk7CisgICAgV2FpdEZvclNpbmdsZU9iamVjdChwaS5oUHJvY2VzcywgSU5GSU5JVEUpOworICAgIG9rID0gR2V0RXhpdENvZGVQcm9jZXNzKHBpLmhQcm9jZXNzLCAmcmMpOworICAgIGlmICghb2spCisgICAgICAgIGVycm9yKFJDX0NSRUFURV9QUk9DRVNTLCBMIkZhaWxlZCB0byBnZXQgZXhpdCBjb2RlIG9mIHByb2Nlc3MiKTsKKyAgICBkZWJ1ZyhMImNoaWxkIHByb2Nlc3MgZXhpdCBjb2RlOiAlZFxuIiwgcmMpOworICAgIEV4aXRQcm9jZXNzKHJjKTsKK30KKworc3RhdGljIHZvaWQKK2ludm9rZV9jaGlsZCh3Y2hhcl90ICogZXhlY3V0YWJsZSwgd2NoYXJfdCAqIHN1ZmZpeCwgd2NoYXJfdCAqIGNtZGxpbmUpCit7CisgICAgd2NoYXJfdCAqIGNoaWxkX2NvbW1hbmQ7CisgICAgc2l6ZV90IGNoaWxkX2NvbW1hbmRfc2l6ZTsKKyAgICBCT09MIG5vX3N1ZmZpeCA9IChzdWZmaXggPT0gTlVMTCkgfHwgKCpzdWZmaXggPT0gTCdcMCcpOworICAgIEJPT0wgbm9fY21kbGluZSA9ICgqY21kbGluZSA9PSBMJ1wwJyk7CisKKyAgICBpZiAobm9fc3VmZml4ICYmIG5vX2NtZGxpbmUpCisgICAgICAgIHJ1bl9jaGlsZChleGVjdXRhYmxlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgaWYgKG5vX3N1ZmZpeCkgeworICAgICAgICAgICAgLyogYWRkIDIgZm9yIHNwYWNlIHNlcGFyYXRvciArIHRlcm1pbmF0aW5nIE5VTC4gKi8KKyAgICAgICAgICAgIGNoaWxkX2NvbW1hbmRfc2l6ZSA9IHdjc2xlbihleGVjdXRhYmxlKSArIHdjc2xlbihjbWRsaW5lKSArIDI7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvKiBhZGQgMyBmb3IgMiBzcGFjZSBzZXBhcmF0b3JzICsgdGVybWluYXRpbmcgTlVMLiAqLworICAgICAgICAgICAgY2hpbGRfY29tbWFuZF9zaXplID0gd2NzbGVuKGV4ZWN1dGFibGUpICsgd2NzbGVuKHN1ZmZpeCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2NzbGVuKGNtZGxpbmUpICsgMzsKKyAgICAgICAgfQorICAgICAgICBjaGlsZF9jb21tYW5kID0gY2FsbG9jKGNoaWxkX2NvbW1hbmRfc2l6ZSwgc2l6ZW9mKHdjaGFyX3QpKTsKKyAgICAgICAgaWYgKGNoaWxkX2NvbW1hbmQgPT0gTlVMTCkKKyAgICAgICAgICAgIGVycm9yKFJDX0NSRUFURV9QUk9DRVNTLCBMInVuYWJsZSB0byBhbGxvY2F0ZSAlZCBieXRlcyBmb3IgY2hpbGQgY29tbWFuZC4iLAorICAgICAgICAgICAgICAgICAgY2hpbGRfY29tbWFuZF9zaXplKTsKKyAgICAgICAgaWYgKG5vX3N1ZmZpeCkKKyAgICAgICAgICAgIF9zbndwcmludGZfcyhjaGlsZF9jb21tYW5kLCBjaGlsZF9jb21tYW5kX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRfY29tbWFuZF9zaXplIC0gMSwgTCIlcyAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSwgY21kbGluZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIF9zbndwcmludGZfcyhjaGlsZF9jb21tYW5kLCBjaGlsZF9jb21tYW5kX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRfY29tbWFuZF9zaXplIC0gMSwgTCIlcyAlcyAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSwgc3VmZml4LCBjbWRsaW5lKTsKKyAgICAgICAgcnVuX2NoaWxkKGNoaWxkX2NvbW1hbmQpOworICAgICAgICBmcmVlKGNoaWxkX2NvbW1hbmQpOworICAgIH0KK30KKworc3RhdGljIHdjaGFyX3QgKiBidWlsdGluX3ZpcnR1YWxfcGF0aHMgW10gPSB7CisgICAgTCIvdXNyL2Jpbi9lbnYgcHl0aG9uIiwKKyAgICBMIi91c3IvYmluL3B5dGhvbiIsCisgICAgTCIvdXNyL2xvY2FsL2Jpbi9weXRob24iLAorICAgIEwicHl0aG9uIiwKKyAgICBOVUxMCit9OworCisvKiBGb3Igbm93LCBhIHN0YXRpYyBhcnJheSBvZiBjb21tYW5kcy4gKi8KKworI2RlZmluZSBNQVhfQ09NTUFORFMgMTAwCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICB3Y2hhcl90IGtleVtNQVhfUEFUSF07CisgICAgd2NoYXJfdCB2YWx1ZVtNU0dTSVpFXTsKK30gQ09NTUFORDsKKworc3RhdGljIENPTU1BTkQgY29tbWFuZHNbTUFYX0NPTU1BTkRTXTsKK3N0YXRpYyBpbnQgbnVtX2NvbW1hbmRzID0gMDsKKworI2lmIGRlZmluZWQoU0tJUF9QUkVGSVgpCisKK3N0YXRpYyB3Y2hhcl90ICogYnVpbHRpbl9wcmVmaXhlcyBbXSA9IHsKKyAgICAvKiBUaGVzZSBtdXN0IGJlIGluIGFuIG9yZGVyIHRoYXQgdGhlIGxvbmdlc3QgbWF0Y2hlcyBzaG91bGQgYmUgZm91bmQsCisgICAgICogaS5lLiBpZiB0aGUgcHJlZml4IGlzICIvdXNyL2Jpbi9lbnYgIiwgaXQgc2hvdWxkIG1hdGNoIHRoYXQgZW50cnkKKyAgICAgKiAqYmVmb3JlKiBtYXRjaGluZyAiL3Vzci9iaW4vIi4KKyAgICAgKi8KKyAgICBMIi91c3IvYmluL2VudiAiLAorICAgIEwiL3Vzci9iaW4vIiwKKyAgICBMIi91c3IvbG9jYWwvYmluLyIsCisgICAgTlVMTAorfTsKKworc3RhdGljIHdjaGFyX3QgKiBza2lwX3ByZWZpeCh3Y2hhcl90ICogbmFtZSkKK3sKKyAgICB3Y2hhcl90ICoqIHBwID0gYnVpbHRpbl9wcmVmaXhlczsKKyAgICB3Y2hhcl90ICogcmVzdWx0ID0gbmFtZTsKKyAgICB3Y2hhcl90ICogcDsKKyAgICBzaXplX3QgbjsKKworICAgIGZvciAoOyBwID0gKnBwOyBwcCsrKSB7CisgICAgICAgIG4gPSB3Y3NsZW4ocCk7CisgICAgICAgIGlmIChfd2NzbmljbXAocCwgbmFtZSwgbikgPT0gMCkgeworICAgICAgICAgICAgcmVzdWx0ICs9IG47ICAgLyogc2tpcCB0aGUgcHJlZml4ICovCisgICAgICAgICAgICBpZiAocFtuIC0gMV0gPT0gTCcgJykgLyogTm8gZW1wdHkgc3RyaW5ncyBpbiB0YWJsZSwgc28gbiA+IDEgKi8KKyAgICAgICAgICAgICAgICByZXN1bHQgPSBza2lwX3doaXRlc3BhY2UocmVzdWx0KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNlbmRpZgorCisjaWYgZGVmaW5lZChTRUFSQ0hfUEFUSCkKKworc3RhdGljIENPTU1BTkQgcGF0aF9jb21tYW5kOworCitzdGF0aWMgQ09NTUFORCAqIGZpbmRfb25fcGF0aCh3Y2hhcl90ICogbmFtZSkKK3sKKyAgICB3Y2hhcl90ICogcGF0aGV4dDsKKyAgICBzaXplX3QgICAgdmFyc2l6ZTsKKyAgICB3Y2hhcl90ICogY29udGV4dCA9IE5VTEw7CisgICAgd2NoYXJfdCAqIGV4dGVuc2lvbjsKKyAgICBDT01NQU5EICogcmVzdWx0ID0gTlVMTDsKKyAgICBEV09SRCAgICAgbGVuOworICAgIGVycm5vX3QgICByYzsKKworICAgIHdjc2NweV9zKHBhdGhfY29tbWFuZC5rZXksIE1BWF9QQVRILCBuYW1lKTsKKyAgICBpZiAod2NzY2hyKG5hbWUsIEwnLicpICE9IE5VTEwpIHsKKyAgICAgICAgLyogYXNzdW1lIGl0IGhhcyBhbiBleHRlbnNpb24uICovCisgICAgICAgIGxlbiA9IFNlYXJjaFBhdGhXKE5VTEwsIG5hbWUsIE5VTEwsIE1TR1NJWkUsIHBhdGhfY29tbWFuZC52YWx1ZSwgTlVMTCk7CisgICAgICAgIGlmIChsZW4pIHsKKyAgICAgICAgICAgIHJlc3VsdCA9ICZwYXRoX2NvbW1hbmQ7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIC8qIE5vIGV4dGVuc2lvbiAtIHNlYXJjaCB1c2luZyByZWdpc3RlcmVkIGV4dGVuc2lvbnMuICovCisgICAgICAgIHJjID0gX3dkdXBlbnZfcygmcGF0aGV4dCwgJnZhcnNpemUsIEwiUEFUSEVYVCIpOworICAgICAgICBpZiAocmMgPT0gMCkgeworICAgICAgICAgICAgZXh0ZW5zaW9uID0gd2NzdG9rX3MocGF0aGV4dCwgTCI7IiwgJmNvbnRleHQpOworICAgICAgICAgICAgd2hpbGUgKGV4dGVuc2lvbikgeworICAgICAgICAgICAgICAgIGxlbiA9IFNlYXJjaFBhdGhXKE5VTEwsIG5hbWUsIGV4dGVuc2lvbiwgTVNHU0laRSwgcGF0aF9jb21tYW5kLnZhbHVlLCBOVUxMKTsKKyAgICAgICAgICAgICAgICBpZiAobGVuKSB7CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9ICZwYXRoX2NvbW1hbmQ7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBleHRlbnNpb24gPSB3Y3N0b2tfcyhOVUxMLCBMIjsiLCAmY29udGV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmcmVlKHBhdGhleHQpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNlbmRpZgorCitzdGF0aWMgQ09NTUFORCAqIGZpbmRfY29tbWFuZCh3Y2hhcl90ICogbmFtZSkKK3sKKyAgICBDT01NQU5EICogcmVzdWx0ID0gTlVMTDsKKyAgICBDT01NQU5EICogY3AgPSBjb21tYW5kczsKKyAgICBpbnQgaTsKKworICAgIGZvciAoaSA9IDA7IGkgPCBudW1fY29tbWFuZHM7IGkrKywgY3ArKykgeworICAgICAgICBpZiAoX3djc2ljbXAoY3AtPmtleSwgbmFtZSkgPT0gMCkgeworICAgICAgICAgICAgcmVzdWx0ID0gY3A7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyNpZiBkZWZpbmVkKFNFQVJDSF9QQVRIKQorICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKKyAgICAgICAgcmVzdWx0ID0gZmluZF9vbl9wYXRoKG5hbWUpOworI2VuZGlmCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIHZvaWQKK3VwZGF0ZV9jb21tYW5kKENPTU1BTkQgKiBjcCwgd2NoYXJfdCAqIG5hbWUsIHdjaGFyX3QgKiBjbWRsaW5lKQoreworICAgIHdjc25jcHlfcyhjcC0+a2V5LCBNQVhfUEFUSCwgbmFtZSwgX1RSVU5DQVRFKTsKKyAgICB3Y3NuY3B5X3MoY3AtPnZhbHVlLCBNU0dTSVpFLCBjbWRsaW5lLCBfVFJVTkNBVEUpOworfQorCitzdGF0aWMgdm9pZAorYWRkX2NvbW1hbmQod2NoYXJfdCAqIG5hbWUsIHdjaGFyX3QgKiBjbWRsaW5lKQoreworICAgIGlmIChudW1fY29tbWFuZHMgPj0gTUFYX0NPTU1BTkRTKSB7CisgICAgICAgIGRlYnVnKEwiY2FuJ3QgYWRkICVzID0gJyVzJzogbm8gcm9vbVxuIiwgbmFtZSwgY21kbGluZSk7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBDT01NQU5EICogY3AgPSAmY29tbWFuZHNbbnVtX2NvbW1hbmRzKytdOworCisgICAgICAgIHVwZGF0ZV9jb21tYW5kKGNwLCBuYW1lLCBjbWRsaW5lKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkCityZWFkX2NvbmZpZ19maWxlKHdjaGFyX3QgKiBjb25maWdfcGF0aCkKK3sKKyAgICB3Y2hhcl90IGtleW5hbWVzW01TR1NJWkVdOworICAgIHdjaGFyX3QgdmFsdWVbTVNHU0laRV07CisgICAgRFdPUkQgcmVhZDsKKyAgICB3Y2hhcl90ICoga2V5OworICAgIENPTU1BTkQgKiBjcDsKKyAgICB3Y2hhcl90ICogY21kcDsKKworICAgIHJlYWQgPSBHZXRQcml2YXRlUHJvZmlsZVN0cmluZ1coTCJjb21tYW5kcyIsIE5VTEwsIE5VTEwsIGtleW5hbWVzLCBNU0dTSVpFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnX3BhdGgpOworICAgIGlmIChyZWFkID09IE1TR1NJWkUgLSAxKSB7CisgICAgICAgIGRlYnVnKEwicmVhZF9jb21tYW5kczogJXM6IG5vdCBlbm91Z2ggc3BhY2UgZm9yIG5hbWVzXG4iLCBjb25maWdfcGF0aCk7CisgICAgfQorICAgIGtleSA9IGtleW5hbWVzOworICAgIHdoaWxlICgqa2V5KSB7CisgICAgICAgIHJlYWQgPSBHZXRQcml2YXRlUHJvZmlsZVN0cmluZ1coTCJjb21tYW5kcyIsIGtleSwgTlVMTCwgdmFsdWUsIE1TR1NJWkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWdfcGF0aCk7CisgICAgICAgIGlmIChyZWFkID09IE1TR1NJWkUgLSAxKSB7CisgICAgICAgICAgICBkZWJ1ZyhMInJlYWRfY29tbWFuZHM6ICVzOiBub3QgZW5vdWdoIHNwYWNlIGZvciAlc1xuIiwKKyAgICAgICAgICAgICAgICAgIGNvbmZpZ19wYXRoLCBrZXkpOworICAgICAgICB9CisgICAgICAgIGNtZHAgPSBza2lwX3doaXRlc3BhY2UodmFsdWUpOworICAgICAgICBpZiAoKmNtZHApIHsKKyAgICAgICAgICAgIGNwID0gZmluZF9jb21tYW5kKGtleSk7CisgICAgICAgICAgICBpZiAoY3AgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBhZGRfY29tbWFuZChrZXksIHZhbHVlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB1cGRhdGVfY29tbWFuZChjcCwga2V5LCB2YWx1ZSk7CisgICAgICAgIH0KKyAgICAgICAga2V5ICs9IHdjc2xlbihrZXkpICsgMTsKKyAgICB9Cit9CisKK3N0YXRpYyB2b2lkIHJlYWRfY29tbWFuZHMoKQoreworICAgIGlmIChsYXVuY2hlcl9pbmlfcGF0aFswXSkKKyAgICAgICAgcmVhZF9jb25maWdfZmlsZShsYXVuY2hlcl9pbmlfcGF0aCk7CisgICAgaWYgKGFwcGRhdGFfaW5pX3BhdGhbMF0pCisgICAgICAgIHJlYWRfY29uZmlnX2ZpbGUoYXBwZGF0YV9pbmlfcGF0aCk7Cit9CisKK3N0YXRpYyBCT09MCitwYXJzZV9zaGViYW5nKHdjaGFyX3QgKiBzaGViYW5nX2xpbmUsIGludCBuY2hhcnMsIHdjaGFyX3QgKiogY29tbWFuZCwKKyAgICAgICAgICAgICAgd2NoYXJfdCAqKiBzdWZmaXgpCit7CisgICAgQk9PTCByYyA9IEZBTFNFOworICAgIHdjaGFyX3QgKiogdnBwOworICAgIHNpemVfdCBwbGVuOworICAgIHdjaGFyX3QgKiBwOworICAgIHdjaGFyX3QgemFwcGVkOworICAgIHdjaGFyX3QgKiBlbmRwID0gc2hlYmFuZ19saW5lICsgbmNoYXJzIC0gMTsKKyAgICBDT01NQU5EICogY3A7CisgICAgd2NoYXJfdCAqIHNraXBwZWQ7CisKKyAgICAqY29tbWFuZCA9IE5VTEw7ICAgIC8qIGZhaWx1cmUgcmV0dXJuICovCisgICAgKnN1ZmZpeCA9IE5VTEw7CisKKyAgICBpZiAoKCpzaGViYW5nX2xpbmUrKyA9PSBMJyMnKSAmJiAoKnNoZWJhbmdfbGluZSsrID09IEwnIScpKSB7CisgICAgICAgIHNoZWJhbmdfbGluZSA9IHNraXBfd2hpdGVzcGFjZShzaGViYW5nX2xpbmUpOworICAgICAgICBpZiAoKnNoZWJhbmdfbGluZSkgeworICAgICAgICAgICAgKmNvbW1hbmQgPSBzaGViYW5nX2xpbmU7CisgICAgICAgICAgICBmb3IgKHZwcCA9IGJ1aWx0aW5fdmlydHVhbF9wYXRoczsgKnZwcDsgKyt2cHApIHsKKyAgICAgICAgICAgICAgICBwbGVuID0gd2NzbGVuKCp2cHApOworICAgICAgICAgICAgICAgIGlmICh3Y3NuY21wKHNoZWJhbmdfbGluZSwgKnZwcCwgcGxlbikgPT0gMCkgeworICAgICAgICAgICAgICAgICAgICByYyA9IFRSVUU7CisgICAgICAgICAgICAgICAgICAgIC8qIFdlIGNhbiBkbyB0aGlzIGJlY2F1c2UgYWxsIGJ1aWx0aW4gY29tbWFuZHMgY29udGFpbgorICAgICAgICAgICAgICAgICAgICAgKiAicHl0aG9uIi4KKyAgICAgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgICAgICpjb21tYW5kID0gd2Nzc3RyKHNoZWJhbmdfbGluZSwgTCJweXRob24iKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCp2cHAgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogTm90IGZvdW5kIGluIGJ1aWx0aW5zIC0gbG9vayBpbiBjdXN0b21pc2VkIGNvbW1hbmRzLgorICAgICAgICAgICAgICAgICAqCisgICAgICAgICAgICAgICAgICogV2UgY2FuJ3QgcGVybWFuZW50bHkgbW9kaWZ5IHRoZSBzaGViYW5nIGxpbmUgaW4gY2FzZQorICAgICAgICAgICAgICAgICAqIGl0J3Mgbm90IGEgY3VzdG9taXNlZCBjb21tYW5kLCBidXQgd2UgY2FuIHRlbXBvcmFyaWx5CisgICAgICAgICAgICAgICAgICogc3RpY2sgYSBOVUwgYWZ0ZXIgdGhlIGNvbW1hbmQgd2hpbGUgc2VhcmNoaW5nIGZvciBpdCwKKyAgICAgICAgICAgICAgICAgKiB0aGVuIHB1dCBiYWNrIHRoZSBjaGFyIHdlIHphcHBlZC4KKyAgICAgICAgICAgICAgICAgKi8KKyNpZiBkZWZpbmVkKFNLSVBfUFJFRklYKQorICAgICAgICAgICAgICAgIHNraXBwZWQgPSBza2lwX3ByZWZpeChzaGViYW5nX2xpbmUpOworI2Vsc2UKKyAgICAgICAgICAgICAgICBza2lwcGVkID0gc2hlYmFuZ19saW5lOworI2VuZGlmCisgICAgICAgICAgICAgICAgcCA9IHdjc3Bicmsoc2tpcHBlZCwgTCIgXHRcclxuIik7CisgICAgICAgICAgICAgICAgaWYgKHAgIT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB6YXBwZWQgPSAqcDsKKyAgICAgICAgICAgICAgICAgICAgKnAgPSBMJ1wwJzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY3AgPSBmaW5kX2NvbW1hbmQoc2tpcHBlZCk7CisgICAgICAgICAgICAgICAgaWYgKHAgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgKnAgPSB6YXBwZWQ7CisgICAgICAgICAgICAgICAgaWYgKGNwICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgKmNvbW1hbmQgPSBjcC0+dmFsdWU7CisgICAgICAgICAgICAgICAgICAgIGlmIChwICE9IE5VTEwpCisgICAgICAgICAgICAgICAgICAgICAgICAqc3VmZml4ID0gc2tpcF93aGl0ZXNwYWNlKHApOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlICovCisgICAgICAgICAgICB3aGlsZSAoKGVuZHAgPiBzaGViYW5nX2xpbmUpICYmIGlzc3BhY2UoKmVuZHApKQorICAgICAgICAgICAgICAgIC0tZW5kcDsKKyAgICAgICAgICAgIGlmIChlbmRwID4gc2hlYmFuZ19saW5lKQorICAgICAgICAgICAgICAgIGVuZHBbMV0gPSBMJ1wwJzsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmM7Cit9CisKKy8qICNkZWZpbmUgQ1BfVVRGOCAgICAgICAgICAgICA2NTAwMSBkZWZpbmVkIGluIHdpbm5scy5oICovCisjZGVmaW5lIENQX1VURjE2TEUgICAgICAgICAgMTIwMAorI2RlZmluZSBDUF9VVEYxNkJFICAgICAgICAgIDEyMDEKKyNkZWZpbmUgQ1BfVVRGMzJMRSAgICAgICAgICAxMjAwMAorI2RlZmluZSBDUF9VVEYzMkJFICAgICAgICAgIDEyMDAxCisKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBpbnQgbGVuZ3RoOworICAgIGNoYXIgc2VxdWVuY2VbNF07CisgICAgVUlOVCBjb2RlX3BhZ2U7Cit9IEJPTTsKKworLyoKKyAqIFN0cmljdGx5LCB3ZSBkb24ndCBuZWVkIHRvIGhhbmRsZSBVVEYtMTYgYW5mIFVURi0zMiwgc2luY2UgUHl0aG9uIGl0c2VsZgorICogZG9lc24ndC4gTmV2ZXIgbWluZCwgb25lIGRheSBpdCBtaWdodCAtIHRoZXJlJ3Mgbm8gaGFybSBsZWF2aW5nIGl0IGluLgorICovCitzdGF0aWMgQk9NIEJPTXNbXSA9IHsKKyAgICB7IDMsIHsgMHhFRiwgMHhCQiwgMHhCRiB9LCBDUF9VVEY4IH0sICAgICAgICAgICAvKiBVVEYtOCAtIGtlZXAgZmlyc3QgKi8KKyAgICB7IDIsIHsgMHhGRiwgMHhGRSB9LCBDUF9VVEYxNkxFIH0sICAgICAgICAgICAgICAvKiBVVEYtMTZMRSAqLworICAgIHsgMiwgeyAweEZFLCAweEZGIH0sIENQX1VURjE2QkUgfSwgICAgICAgICAgICAgIC8qIFVURi0xNkJFICovCisgICAgeyA0LCB7IDB4RkYsIDB4RkUsIDB4MDAsIDB4MDAgfSwgQ1BfVVRGMzJMRSB9LCAgLyogVVRGLTMyTEUgKi8KKyAgICB7IDQsIHsgMHgwMCwgMHgwMCwgMHhGRSwgMHhGRiB9LCBDUF9VVEYzMkJFIH0sICAvKiBVVEYtMzJCRSAqLworICAgIHsgMCB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNlbnRpbmVsICovCit9OworCitzdGF0aWMgQk9NICoKK2ZpbmRfQk9NKGNoYXIgKiBidWZmZXIpCit7CisvKgorICogTG9vayBmb3IgYSBCT00gaW4gdGhlIGlucHV0IGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIHRoZQorICogY29ycmVzcG9uZGluZyBzdHJ1Y3R1cmUsIG9yIE5VTEwgaWYgbm90IGZvdW5kLgorICovCisgICAgQk9NICogcmVzdWx0ID0gTlVMTDsKKyAgICBCT00gKmJvbTsKKworICAgIGZvciAoYm9tID0gQk9NczsgYm9tLT5sZW5ndGg7IGJvbSsrKSB7CisgICAgICAgIGlmIChzdHJuY21wKGJvbS0+c2VxdWVuY2UsIGJ1ZmZlciwgYm9tLT5sZW5ndGgpID09IDApIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IGJvbTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBjaGFyICoKK2ZpbmRfdGVybWluYXRvcihjaGFyICogYnVmZmVyLCBpbnQgbGVuLCBCT00gKmJvbSkKK3sKKyAgICBjaGFyICogcmVzdWx0ID0gTlVMTDsKKyAgICBjaGFyICogZW5kID0gYnVmZmVyICsgbGVuOworICAgIGNoYXIgICogcDsKKyAgICBjaGFyIGM7CisgICAgaW50IGNwOworCisgICAgZm9yIChwID0gYnVmZmVyOyBwIDwgZW5kOyBwKyspIHsKKyAgICAgICAgYyA9ICpwOworICAgICAgICBpZiAoYyA9PSAnXHInKSB7CisgICAgICAgICAgICByZXN1bHQgPSBwOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGMgPT0gJ1xuJykgeworICAgICAgICAgICAgcmVzdWx0ID0gcDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIGlmIChyZXN1bHQgIT0gTlVMTCkgeworICAgICAgICBjcCA9IGJvbS0+Y29kZV9wYWdlOworCisgICAgICAgIC8qIGFkanVzdG1lbnRzIHRvIGluY2x1ZGUgYWxsIGJ5dGVzIG9mIHRoZSBjaGFyICovCisgICAgICAgIC8qIG5vIGFkanVzdG1lbnQgbmVlZGVkIGZvciBVVEYtOCBvciBiaWcgZW5kaWFuICovCisgICAgICAgIGlmIChjcCA9PSBDUF9VVEYxNkxFKQorICAgICAgICAgICAgKytyZXN1bHQ7CisgICAgICAgIGVsc2UgaWYgKGNwID09IENQX1VURjMyTEUpCisgICAgICAgICAgICByZXN1bHQgKz0gMzsKKyAgICAgICAgKytyZXN1bHQ7IC8qIHBvaW50IGp1c3QgcGFzdCB0ZXJtaW5hdG9yICovCisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBCT09MCit2YWxpZGF0ZV92ZXJzaW9uKHdjaGFyX3QgKiBwKQoreworICAgIEJPT0wgcmVzdWx0ID0gVFJVRTsKKworICAgIGlmICghaXNkaWdpdCgqcCkpICAgICAgICAgICAgICAgLyogZXhwZWN0IG1ham9yIHZlcnNpb24gKi8KKyAgICAgICAgcmVzdWx0ID0gRkFMU0U7CisgICAgZWxzZSBpZiAoKisrcCkgeyAgICAgICAgICAgICAgICAvKiBtb3JlIHRvIGRvICovCisgICAgICAgIGlmICgqcCAhPSBMJy4nKSAgICAgICAgICAgICAvKiBtYWpvci9taW5vciBzZXBhcmF0b3IgKi8KKyAgICAgICAgICAgIHJlc3VsdCA9IEZBTFNFOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICsrcDsKKyAgICAgICAgICAgIGlmICghaXNkaWdpdCgqcCkpICAgICAgIC8qIGV4cGVjdCBtaW5vciB2ZXJzaW9uICovCisgICAgICAgICAgICAgICAgcmVzdWx0ID0gRkFMU0U7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICArK3A7CisgICAgICAgICAgICAgICAgaWYgKCpwKSB7ICAgICAgICAgICAvKiBtb3JlIHRvIGRvICovCisgICAgICAgICAgICAgICAgICAgIGlmICgqcCAhPSBMJy0nKQorICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gRkFMU0U7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgKytwOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgqcCAhPSAnMycpICYmICgqKytwICE9ICcyJykgJiYgISorK3ApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gRkFMU0U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordHlwZWRlZiBzdHJ1Y3QgeworICAgIHVuc2lnbmVkIHNob3J0IG1pbjsKKyAgICB1bnNpZ25lZCBzaG9ydCBtYXg7CisgICAgd2NoYXJfdCB2ZXJzaW9uW01BWF9WRVJTSU9OX1NJWkVdOworfSBQWUNfTUFHSUM7CisKK3N0YXRpYyBQWUNfTUFHSUMgbWFnaWNfdmFsdWVzW10gPSB7CisgICAgeyAweGM2ODcsIDB4YzY4NywgTCIyLjAiIH0sCisgICAgeyAweGViMmEsIDB4ZWIyYSwgTCIyLjEiIH0sCisgICAgeyAweGVkMmQsIDB4ZWQyZCwgTCIyLjIiIH0sCisgICAgeyAweGYyM2IsIDB4ZjI0NSwgTCIyLjMiIH0sCisgICAgeyAweGYyNTksIDB4ZjI2ZCwgTCIyLjQiIH0sCisgICAgeyAweGYyNzcsIDB4ZjJiMywgTCIyLjUiIH0sCisgICAgeyAweGYyYzcsIDB4ZjJkMSwgTCIyLjYiIH0sCisgICAgeyAweGYyZGIsIDB4ZjMwMywgTCIyLjciIH0sCisgICAgeyAweDBiYjgsIDB4MGMzYiwgTCIzLjAiIH0sCisgICAgeyAweDBjNDUsIDB4MGM0ZiwgTCIzLjEiIH0sCisgICAgeyAweDBjNTgsIDB4MGM2YywgTCIzLjIiIH0sCisgICAgeyAweDBjNzYsIDB4MGM3NiwgTCIzLjMiIH0sCisgICAgeyAwIH0KK307CisKK3N0YXRpYyBJTlNUQUxMRURfUFlUSE9OICoKK2ZpbmRfYnlfbWFnaWModW5zaWduZWQgc2hvcnQgbWFnaWMpCit7CisgICAgSU5TVEFMTEVEX1BZVEhPTiAqIHJlc3VsdCA9IE5VTEw7CisgICAgUFlDX01BR0lDICogbXA7CisKKyAgICBmb3IgKG1wID0gbWFnaWNfdmFsdWVzOyBtcC0+bWluOyBtcCsrKSB7CisgICAgICAgIGlmICgobWFnaWMgPj0gbXAtPm1pbikgJiYgKG1hZ2ljIDw9IG1wLT5tYXgpKSB7CisgICAgICAgICAgICByZXN1bHQgPSBsb2NhdGVfcHl0aG9uKG1wLT52ZXJzaW9uKTsKKyAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgdm9pZAorbWF5YmVfaGFuZGxlX3NoZWJhbmcod2NoYXJfdCAqKiBhcmd2LCB3Y2hhcl90ICogY21kbGluZSkKK3sKKy8qCisgKiBMb29rIGZvciBhIHNoZWJhbmcgbGluZSBpbiB0aGUgZmlyc3QgYXJndW1lbnQuICBJZiBmb3VuZAorICogYW5kIHdlIHNwYXduIGEgY2hpbGQgcHJvY2VzcywgdGhpcyBuZXZlciByZXR1cm5zLiAgSWYgaXQKKyAqIGRvZXMgcmV0dXJuIHRoZW4gd2UgcHJvY2VzcyB0aGUgYXJncyAibm9ybWFsbHkiLgorICoKKyAqIGFyZ3ZbMF0gbWlnaHQgYmUgYSBmaWxlbmFtZSB3aXRoIGEgc2hlYmFuZy4KKyAqLworICAgIEZJTEUgKiBmcDsKKyAgICBlcnJub190IHJjID0gX3dmb3Blbl9zKCZmcCwgKmFyZ3YsIEwicmIiKTsKKyAgICB1bnNpZ25lZCBjaGFyIGJ1ZmZlcltCVUZTSVpFXTsKKyAgICB3Y2hhcl90IHNoZWJhbmdfbGluZVtCVUZTSVpFICsgMV07CisgICAgc2l6ZV90IHJlYWQ7CisgICAgY2hhciAqcDsKKyAgICBjaGFyICogc3RhcnQ7CisgICAgY2hhciAqIHNoZWJhbmdfYWxpYXMgPSAoY2hhciAqKSBzaGViYW5nX2xpbmU7CisgICAgQk9NKiBib207CisgICAgaW50IGksIGosIG5jaGFycyA9IDA7CisgICAgaW50IGhlYWRlcl9sZW47CisgICAgQk9PTCBpc192aXJ0OworICAgIHdjaGFyX3QgKiBjb21tYW5kOworICAgIHdjaGFyX3QgKiBzdWZmaXg7CisgICAgSU5TVEFMTEVEX1BZVEhPTiAqIGlwOworCisgICAgaWYgKHJjID09IDApIHsKKyAgICAgICAgcmVhZCA9IGZyZWFkKGJ1ZmZlciwgc2l6ZW9mKGNoYXIpLCBCVUZTSVpFLCBmcCk7CisgICAgICAgIGRlYnVnKEwibWF5YmVfaGFuZGxlX3NoZWJhbmc6IHJlYWQgJWQgYnl0ZXNcbiIsIHJlYWQpOworICAgICAgICBmY2xvc2UoZnApOworCisgICAgICAgIGlmICgocmVhZCA+PSA0KSAmJiAoYnVmZmVyWzNdID09ICdcbicpICYmIChidWZmZXJbMl0gPT0gJ1xyJykpIHsKKyAgICAgICAgICAgIGlwID0gZmluZF9ieV9tYWdpYygoYnVmZmVyWzFdIDw8IDggfCBidWZmZXJbMF0pICYgMHhGRkZGKTsKKyAgICAgICAgICAgIGlmIChpcCAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZGVidWcoTCJzY3JpcHQgZmlsZSBpcyBjb21waWxlZCBhZ2FpbnN0IFB5dGhvbiAlc1xuIiwKKyAgICAgICAgICAgICAgICAgICAgICBpcC0+dmVyc2lvbik7CisgICAgICAgICAgICAgICAgaW52b2tlX2NoaWxkKGlwLT5leGVjdXRhYmxlLCBOVUxMLCBjbWRsaW5lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAvKiBMb29rIGZvciBCT00gKi8KKyAgICAgICAgYm9tID0gZmluZF9CT00oYnVmZmVyKTsKKyAgICAgICAgaWYgKGJvbSA9PSBOVUxMKSB7CisgICAgICAgICAgICBzdGFydCA9IGJ1ZmZlcjsKKyAgICAgICAgICAgIGRlYnVnKEwibWF5YmVfaGFuZGxlX3NoZWJhbmc6IEJPTSBub3QgZm91bmQsIHVzaW5nIFVURi04XG4iKTsKKyAgICAgICAgICAgIGJvbSA9IEJPTXM7IC8qIHBvaW50cyB0byBVVEYtOCBlbnRyeSAtIHRoZSBkZWZhdWx0ICovCisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkZWJ1ZyhMIm1heWJlX2hhbmRsZV9zaGViYW5nOiBCT00gZm91bmQsIGNvZGUgcGFnZSAlZFxuIiwKKyAgICAgICAgICAgICAgICAgIGJvbS0+Y29kZV9wYWdlKTsKKyAgICAgICAgICAgIHN0YXJ0ID0gJmJ1ZmZlcltib20tPmxlbmd0aF07CisgICAgICAgIH0KKyAgICAgICAgcCA9IGZpbmRfdGVybWluYXRvcihzdGFydCwgQlVGU0laRSwgYm9tKTsKKyAgICAgICAgLyoKKyAgICAgICAgICogSWYgbm8gQ1Igb3IgTEYgd2FzIGZvdW5kIGluIHRoZSBoZWFkaW5nLAorICAgICAgICAgKiB3ZSBhc3N1bWUgaXQncyBub3QgYSBzaGViYW5nIGZpbGUuCisgICAgICAgICAqLworICAgICAgICBpZiAocCA9PSBOVUxMKSB7CisgICAgICAgICAgICBkZWJ1ZyhMIm1heWJlX2hhbmRsZV9zaGViYW5nOiBObyBsaW5lIHRlcm1pbmF0b3IgZm91bmRcbiIpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIEZvdW5kIGxpbmUgdGVybWluYXRvciAtIHBhcnNlIHRoZSBzaGViYW5nLgorICAgICAgICAgICAgICoKKyAgICAgICAgICAgICAqIFN0cmljdGx5LCB3ZSBkb24ndCBuZWVkIHRvIGhhbmRsZSBVVEYtMTYgYW5mIFVURi0zMiwKKyAgICAgICAgICAgICAqIHNpbmNlIFB5dGhvbiBpdHNlbGYgZG9lc24ndC4KKyAgICAgICAgICAgICAqIE5ldmVyIG1pbmQsIG9uZSBkYXkgaXQgbWlnaHQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIGhlYWRlcl9sZW4gPSAoaW50KSAocCAtIHN0YXJ0KTsKKyAgICAgICAgICAgIHN3aXRjaChib20tPmNvZGVfcGFnZSkgeworICAgICAgICAgICAgY2FzZSBDUF9VVEY4OgorICAgICAgICAgICAgICAgIG5jaGFycyA9IE11bHRpQnl0ZVRvV2lkZUNoYXIoYm9tLT5jb2RlX3BhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQsIGhlYWRlcl9sZW4sIHNoZWJhbmdfbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJVRlNJWkUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDUF9VVEYxNkJFOgorICAgICAgICAgICAgICAgIGlmIChoZWFkZXJfbGVuICUgMiAhPSAwKSB7CisgICAgICAgICAgICAgICAgICAgIGRlYnVnKEwibWF5YmVfaGFuZGxlX3NoZWJhbmc6IFVURi0xNkJFLCBidXQgYW4gb2RkIG51bWJlciBcCitvZiBieXRlczogJWRcbiIsIGhlYWRlcl9sZW4pOworICAgICAgICAgICAgICAgICAgICAvKiBuY2hhcnMgPSAwOyBOb3QgbmVlZGVkIC0gaW5pdGlhbGlzZWQgdG8gMC4gKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IGhlYWRlcl9sZW47IGkgPiAwOyBpIC09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoZWJhbmdfYWxpYXNbaSAtIDFdID0gc3RhcnRbaSAtIDJdOworICAgICAgICAgICAgICAgICAgICAgICAgc2hlYmFuZ19hbGlhc1tpIC0gMl0gPSBzdGFydFtpIC0gMV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbmNoYXJzID0gaGVhZGVyX2xlbiAvIHNpemVvZih3Y2hhcl90KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENQX1VURjE2TEU6CisgICAgICAgICAgICAgICAgaWYgKChoZWFkZXJfbGVuICUgMikgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhMIlVURi0xNkxFLCBidXQgYW4gb2RkIG51bWJlciBvZiBieXRlczogJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcl9sZW4pOworICAgICAgICAgICAgICAgICAgICAvKiBuY2hhcnMgPSAwOyBOb3QgbmVlZGVkIC0gaW5pdGlhbGlzZWQgdG8gMC4gKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIC8qIG5vIGFjdHVhbCBjb252ZXJzaW9uIG5lZWRlZC4gKi8KKyAgICAgICAgICAgICAgICAgICAgbWVtY3B5KHNoZWJhbmdfbGluZSwgc3RhcnQsIGhlYWRlcl9sZW4pOworICAgICAgICAgICAgICAgICAgICBuY2hhcnMgPSBoZWFkZXJfbGVuIC8gc2l6ZW9mKHdjaGFyX3QpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1BfVVRGMzJCRToKKyAgICAgICAgICAgICAgICBpZiAoaGVhZGVyX2xlbiAlIDQgIT0gMCkgeworICAgICAgICAgICAgICAgICAgICBkZWJ1ZyhMIlVURi0zMkJFLCBidXQgbm90IGRpdmlzaWJsZSBieSA0OiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyX2xlbik7CisgICAgICAgICAgICAgICAgICAgIC8qIG5jaGFycyA9IDA7IE5vdCBuZWVkZWQgLSBpbml0aWFsaXNlZCB0byAwLiAqLworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gaGVhZGVyX2xlbiwgaiA9IGhlYWRlcl9sZW4gLyAyOyBpID4gMDsgaSAtPSA0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqIC09IDIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoZWJhbmdfYWxpYXNbaiAtIDFdID0gc3RhcnRbaSAtIDJdOworICAgICAgICAgICAgICAgICAgICAgICAgc2hlYmFuZ19hbGlhc1tqIC0gMl0gPSBzdGFydFtpIC0gMV07CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgbmNoYXJzID0gaGVhZGVyX2xlbiAvIHNpemVvZih3Y2hhcl90KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENQX1VURjMyTEU6CisgICAgICAgICAgICAgICAgaWYgKGhlYWRlcl9sZW4gJSA0ICE9IDApIHsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoTCJVVEYtMzJMRSwgYnV0IG5vdCBkaXZpc2libGUgYnkgNDogJWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcl9sZW4pOworICAgICAgICAgICAgICAgICAgICAvKiBuY2hhcnMgPSAwOyBOb3QgbmVlZGVkIC0gaW5pdGlhbGlzZWQgdG8gMC4gKi8KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IGhlYWRlcl9sZW4sIGogPSBoZWFkZXJfbGVuIC8gMjsgaSA+IDA7IGkgLT0gNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaiAtPSAyKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzaGViYW5nX2FsaWFzW2ogLSAxXSA9IHN0YXJ0W2kgLSAzXTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHNoZWJhbmdfYWxpYXNbaiAtIDJdID0gc3RhcnRbaSAtIDRdOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIG5jaGFycyA9IGhlYWRlcl9sZW4gLyBzaXplb2Yod2NoYXJfdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKG5jaGFycyA+IDApIHsKKyAgICAgICAgICAgICAgICBzaGViYW5nX2xpbmVbLS1uY2hhcnNdID0gTCdcMCc7CisgICAgICAgICAgICAgICAgaXNfdmlydCA9IHBhcnNlX3NoZWJhbmcoc2hlYmFuZ19saW5lLCBuY2hhcnMsICZjb21tYW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzdWZmaXgpOworICAgICAgICAgICAgICAgIGlmIChjb21tYW5kICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgZGVidWcoTCJwYXJzZV9zaGViYW5nOiBmb3VuZCBjb21tYW5kOiAlc1xuIiwgY29tbWFuZCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghaXNfdmlydCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW52b2tlX2NoaWxkKGNvbW1hbmQsIHN1ZmZpeCwgY21kbGluZSk7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXggPSB3Y3NjaHIoY29tbWFuZCwgTCcgJyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VmZml4ICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAqc3VmZml4KysgPSBMJ1wwJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWZmaXggPSBza2lwX3doaXRlc3BhY2Uoc3VmZml4KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3Y3NuY21wKGNvbW1hbmQsIEwicHl0aG9uIiwgNikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoUkNfQkFEX1ZJUlRVQUxfUEFUSCwgTCJVbmtub3duIHZpcnR1YWwgXAorcGF0aCAnJXMnIiwgY29tbWFuZCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kICs9IDY7ICAgLyogc2tpcCBwYXN0ICJweXRob24iICovCisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKmNvbW1hbmQgJiYgIXZhbGlkYXRlX3ZlcnNpb24oY29tbWFuZCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IoUkNfQkFEX1ZJUlRVQUxfUEFUSCwgTCJJbnZhbGlkIHZlcnNpb24gXAorc3BlY2lmaWNhdGlvbjogJyVzJy5cbkluIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBzY3JpcHQsICdweXRob24nIG5lZWRzIHRvIGJlIFwKK2ZvbGxvd2VkIGJ5IGEgdmFsaWQgdmVyc2lvbiBzcGVjaWZpZXIuXG5QbGVhc2UgY2hlY2sgdGhlIGRvY3VtZW50YXRpb24uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRPRE8gY291bGQgY2FsbCB2YWxpZGF0ZV92ZXJzaW9uKGNvbW1hbmQpICovCisgICAgICAgICAgICAgICAgICAgICAgICBpcCA9IGxvY2F0ZV9weXRob24oY29tbWFuZCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXAgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yKFJDX05PX1BZVEhPTiwgTCJSZXF1ZXN0ZWQgUHl0aG9uIHZlcnNpb24gXAorKCVzKSBpcyBub3QgaW5zdGFsbGVkIiwgY29tbWFuZCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnZva2VfY2hpbGQoaXAtPmV4ZWN1dGFibGUsIHN1ZmZpeCwgY21kbGluZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0YXRpYyB3Y2hhcl90ICoKK3NraXBfbWUod2NoYXJfdCAqIGNtZGxpbmUpCit7CisgICAgQk9PTCBxdW90ZWQ7CisgICAgd2NoYXJfdCBjOworICAgIHdjaGFyX3QgKiByZXN1bHQgPSBjbWRsaW5lOworCisgICAgcXVvdGVkID0gY21kbGluZVswXSA9PSBMJ1wiJzsKKyAgICBpZiAoIXF1b3RlZCkKKyAgICAgICAgYyA9IEwnICc7CisgICAgZWxzZSB7CisgICAgICAgIGMgPSBMJ1wiJzsKKyAgICAgICAgKytyZXN1bHQ7CisgICAgfQorICAgIHJlc3VsdCA9IHdjc2NocihyZXN1bHQsIGMpOworICAgIGlmIChyZXN1bHQgPT0gTlVMTCkgLyogd2hlbiwgZm9yIGV4YW1wbGUsIGp1c3QgZXhlIG5hbWUgb24gY29tbWFuZCBsaW5lICovCisgICAgICAgIHJlc3VsdCA9IEwiIjsKKyAgICBlbHNlIHsKKyAgICAgICAgKytyZXN1bHQ7IC8qIHNraXAgcGFzdCBzcGFjZSBvciBjbG9zaW5nIHF1b3RlICovCisgICAgICAgIHJlc3VsdCA9IHNraXBfd2hpdGVzcGFjZShyZXN1bHQpOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzdGF0aWMgRFdPUkQgdmVyc2lvbl9oaWdoID0gMDsKK3N0YXRpYyBEV09SRCB2ZXJzaW9uX2xvdyA9IDA7CisKK3N0YXRpYyB2b2lkCitnZXRfdmVyc2lvbl9pbmZvKHdjaGFyX3QgKiB2ZXJzaW9uX3RleHQsIHNpemVfdCBzaXplKQoreworICAgIFdPUkQgbWFqLCBtaW4sIHJlbCwgYmxkOworCisgICAgaWYgKCF2ZXJzaW9uX2hpZ2ggJiYgIXZlcnNpb25fbG93KQorICAgICAgICB3Y3NuY3B5X3ModmVyc2lvbl90ZXh0LCBzaXplLCBMIjAuMSIsIF9UUlVOQ0FURSk7ICAgLyogZmFsbGJhY2sgKi8KKyAgICBlbHNlIHsKKyAgICAgICAgbWFqID0gSElXT1JEKHZlcnNpb25faGlnaCk7CisgICAgICAgIG1pbiA9IExPV09SRCh2ZXJzaW9uX2hpZ2gpOworICAgICAgICByZWwgPSBISVdPUkQodmVyc2lvbl9sb3cpOworICAgICAgICBibGQgPSBMT1dPUkQodmVyc2lvbl9sb3cpOworICAgICAgICBfc253cHJpbnRmX3ModmVyc2lvbl90ZXh0LCBzaXplLCBfVFJVTkNBVEUsIEwiJWQuJWQuJWQuJWQiLCBtYWosCisgICAgICAgICAgICAgICAgICAgICBtaW4sIHJlbCwgYmxkKTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbnQKK3Byb2Nlc3MoaW50IGFyZ2MsIHdjaGFyX3QgKiogYXJndikKK3sKKyAgICB3Y2hhcl90ICogd3A7CisgICAgd2NoYXJfdCAqIGNvbW1hbmQ7CisgICAgd2NoYXJfdCAqIHA7CisgICAgaW50IHJjID0gMDsKKyAgICBzaXplX3QgcGxlbjsKKyAgICBJTlNUQUxMRURfUFlUSE9OICogaXA7CisgICAgQk9PTCB2YWxpZDsKKyAgICBEV09SRCBzaXplLCBhdHRyczsKKyAgICBIUkVTVUxUIGhyOworICAgIHdjaGFyX3QgbWVzc2FnZVtNU0dTSVpFXTsKKyAgICB3Y2hhcl90IHZlcnNpb25fdGV4dCBbTUFYX1BBVEhdOworICAgIHZvaWQgKiB2ZXJzaW9uX2RhdGE7CisgICAgVlNfRklYRURGSUxFSU5GTyAqIGZpbGVfaW5mbzsKKyAgICBVSU5UIGJsb2NrX3NpemU7CisKKyAgICB3cCA9IGdldF9lbnYoTCJQWUxBVU5DSF9ERUJVRyIpOworICAgIGlmICgod3AgIT0gTlVMTCkgJiYgKCp3cCAhPSBMJ1wwJykpCisgICAgICAgIGxvZ19mcCA9IHN0ZGVycjsKKworI2lmIGRlZmluZWQoX01fWDY0KQorICAgIGRlYnVnKEwibGF1bmNoZXIgYnVpbGQ6IDY0Yml0XG4iKTsKKyNlbHNlCisgICAgZGVidWcoTCJsYXVuY2hlciBidWlsZDogMzJiaXRcbiIpOworI2VuZGlmCisjaWYgZGVmaW5lZChfV0lORE9XUykKKyAgICBkZWJ1ZyhMImxhdW5jaGVyIGV4ZWN1dGFibGU6IFdpbmRvd3NcbiIpOworI2Vsc2UKKyAgICBkZWJ1ZyhMImxhdW5jaGVyIGV4ZWN1dGFibGU6IENvbnNvbGVcbiIpOworI2VuZGlmCisgICAgLyogR2V0IHRoZSBsb2NhbCBhcHBkYXRhIGZvbGRlciAobm9uLXJvYW1pbmcpICovCisgICAgaHIgPSBTSEdldEZvbGRlclBhdGhXKE5VTEwsIENTSURMX0xPQ0FMX0FQUERBVEEsCisgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsIGFwcGRhdGFfaW5pX3BhdGgpOworICAgIGlmIChociAhPSBTX09LKSB7CisgICAgICAgIGRlYnVnKEwiU0hHZXRGb2xkZXJQYXRoIGZhaWxlZDogJVhcbiIsIGhyKTsKKyAgICAgICAgYXBwZGF0YV9pbmlfcGF0aFswXSA9IEwnXDAnOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcGxlbiA9IHdjc2xlbihhcHBkYXRhX2luaV9wYXRoKTsKKyAgICAgICAgcCA9ICZhcHBkYXRhX2luaV9wYXRoW3BsZW5dOworICAgICAgICB3Y3NuY3B5X3MocCwgTUFYX1BBVEggLSBwbGVuLCBMIlxccHkuaW5pIiwgX1RSVU5DQVRFKTsKKyAgICAgICAgYXR0cnMgPSBHZXRGaWxlQXR0cmlidXRlc1coYXBwZGF0YV9pbmlfcGF0aCk7CisgICAgICAgIGlmIChhdHRycyA9PSBJTlZBTElEX0ZJTEVfQVRUUklCVVRFUykgeworICAgICAgICAgICAgZGVidWcoTCJGaWxlICclcycgbm9uLWV4aXN0ZW50XG4iLCBhcHBkYXRhX2luaV9wYXRoKTsKKyAgICAgICAgICAgIGFwcGRhdGFfaW5pX3BhdGhbMF0gPSBMJ1wwJzsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGRlYnVnKEwiVXNpbmcgbG9jYWwgY29uZmlndXJhdGlvbiBmaWxlICclcydcbiIsIGFwcGRhdGFfaW5pX3BhdGgpOworICAgICAgICB9CisgICAgfQorICAgIHBsZW4gPSBHZXRNb2R1bGVGaWxlTmFtZVcoTlVMTCwgbGF1bmNoZXJfaW5pX3BhdGgsIE1BWF9QQVRIKTsKKyAgICBzaXplID0gR2V0RmlsZVZlcnNpb25JbmZvU2l6ZVcobGF1bmNoZXJfaW5pX3BhdGgsICZzaXplKTsKKyAgICBpZiAoc2l6ZSA9PSAwKSB7CisgICAgICAgIHdpbmVycm9yKEdldExhc3RFcnJvcigpLCBtZXNzYWdlLCBNU0dTSVpFKTsKKyAgICAgICAgZGVidWcoTCJHZXRGaWxlVmVyc2lvbkluZm9TaXplIGZhaWxlZDogJXNcbiIsIG1lc3NhZ2UpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgdmVyc2lvbl9kYXRhID0gbWFsbG9jKHNpemUpOworICAgICAgICBpZiAodmVyc2lvbl9kYXRhKSB7CisgICAgICAgICAgICB2YWxpZCA9IEdldEZpbGVWZXJzaW9uSW5mb1cobGF1bmNoZXJfaW5pX3BhdGgsIDAsIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbl9kYXRhKTsKKyAgICAgICAgICAgIGlmICghdmFsaWQpCisgICAgICAgICAgICAgICAgZGVidWcoTCJHZXRGaWxlVmVyc2lvbkluZm8gZmFpbGVkOiAlWFxuIiwgR2V0TGFzdEVycm9yKCkpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgdmFsaWQgPSBWZXJRdWVyeVZhbHVlVyh2ZXJzaW9uX2RhdGEsIEwiXFwiLCAmZmlsZV9pbmZvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJsb2NrX3NpemUpOworICAgICAgICAgICAgICAgIGlmICghdmFsaWQpCisgICAgICAgICAgICAgICAgICAgIGRlYnVnKEwiVmVyUXVlcnlWYWx1ZSBmYWlsZWQ6ICVYXG4iLCBHZXRMYXN0RXJyb3IoKSk7CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHZlcnNpb25faGlnaCA9IGZpbGVfaW5mby0+ZHdGaWxlVmVyc2lvbk1TOworICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uX2xvdyA9IGZpbGVfaW5mby0+ZHdGaWxlVmVyc2lvbkxTOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZyZWUodmVyc2lvbl9kYXRhKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBwID0gd2NzcmNocihsYXVuY2hlcl9pbmlfcGF0aCwgTCdcXCcpOworICAgIGlmIChwID09IE5VTEwpIHsKKyAgICAgICAgZGVidWcoTCJHZXRNb2R1bGVGaWxlTmFtZVcgcmV0dXJuZWQgdmFsdWUgaGFzIG5vIGJhY2tzbGFzaDogJXNcbiIsCisgICAgICAgICAgICAgIGxhdW5jaGVyX2luaV9wYXRoKTsKKyAgICAgICAgbGF1bmNoZXJfaW5pX3BhdGhbMF0gPSBMJ1wwJzsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHdjc25jcHlfcyhwLCBNQVhfUEFUSCAtIChwIC0gbGF1bmNoZXJfaW5pX3BhdGgpLCBMIlxccHkuaW5pIiwKKyAgICAgICAgICAgICAgICAgIF9UUlVOQ0FURSk7CisgICAgICAgIGF0dHJzID0gR2V0RmlsZUF0dHJpYnV0ZXNXKGxhdW5jaGVyX2luaV9wYXRoKTsKKyAgICAgICAgaWYgKGF0dHJzID09IElOVkFMSURfRklMRV9BVFRSSUJVVEVTKSB7CisgICAgICAgICAgICBkZWJ1ZyhMIkZpbGUgJyVzJyBub24tZXhpc3RlbnRcbiIsIGxhdW5jaGVyX2luaV9wYXRoKTsKKyAgICAgICAgICAgIGxhdW5jaGVyX2luaV9wYXRoWzBdID0gTCdcMCc7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBkZWJ1ZyhMIlVzaW5nIGdsb2JhbCBjb25maWd1cmF0aW9uIGZpbGUgJyVzJ1xuIiwgbGF1bmNoZXJfaW5pX3BhdGgpOworICAgICAgICB9CisgICAgfQorCisgICAgY29tbWFuZCA9IHNraXBfbWUoR2V0Q29tbWFuZExpbmVXKCkpOworICAgIGRlYnVnKEwiQ2FsbGVkIHdpdGggY29tbWFuZCBsaW5lOiAlcyIsIGNvbW1hbmQpOworICAgIGlmIChhcmdjIDw9IDEpIHsKKyAgICAgICAgdmFsaWQgPSBGQUxTRTsKKyAgICAgICAgcCA9IE5VTEw7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBwID0gYXJndlsxXTsKKyAgICAgICAgcGxlbiA9IHdjc2xlbihwKTsKKyAgICAgICAgaWYgKHBbMF0gIT0gTCctJykgeworICAgICAgICAgICAgcmVhZF9jb21tYW5kcygpOworICAgICAgICAgICAgbWF5YmVfaGFuZGxlX3NoZWJhbmcoJmFyZ3ZbMV0sIGNvbW1hbmQpOworICAgICAgICB9CisgICAgICAgIC8qIE5vIGZpbGUgd2l0aCBzaGViYW5nLCBvciBhbiB1bnJlY29nbmlzZWQgc2hlYmFuZy4KKyAgICAgICAgICogSXMgdGhlIGZpcnN0IGFyZyBhIHNwZWNpYWwgdmVyc2lvbiBxdWFsaWZpZXI/CisgICAgICAgICAqLworICAgICAgICB2YWxpZCA9ICgqcCA9PSBMJy0nKSAmJiB2YWxpZGF0ZV92ZXJzaW9uKCZwWzFdKTsKKyAgICAgICAgaWYgKHZhbGlkKSB7CisgICAgICAgICAgICBpcCA9IGxvY2F0ZV9weXRob24oJnBbMV0pOworICAgICAgICAgICAgaWYgKGlwID09IE5VTEwpCisgICAgICAgICAgICAgICAgZXJyb3IoUkNfTk9fUFlUSE9OLCBMIlJlcXVlc3RlZCBQeXRob24gdmVyc2lvbiAoJXMpIG5vdCBcCitpbnN0YWxsZWQiLCAmcFsxXSk7CisgICAgICAgICAgICBjb21tYW5kICs9IHdjc2xlbihwKTsKKyAgICAgICAgICAgIGNvbW1hbmQgPSBza2lwX3doaXRlc3BhY2UoY29tbWFuZCk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCF2YWxpZCkgeworICAgICAgICBpcCA9IGxvY2F0ZV9weXRob24oTCIiKTsKKyAgICAgICAgaWYgKGlwID09IE5VTEwpCisgICAgICAgICAgICBlcnJvcihSQ19OT19QWVRIT04sIEwiQ2FuJ3QgZmluZCBhIGRlZmF1bHQgUHl0aG9uLiIpOworICAgICAgICBpZiAoKGFyZ2MgPT0gMikgJiYgKCFfd2NzaWNtcChwLCBMIi1oIikgfHwgIV93Y3NpY21wKHAsIEwiLS1oZWxwIikpKSB7CisjaWYgZGVmaW5lZChfTV9YNjQpCisgICAgICAgICAgICBCT09MIGNhbkRvNjRiaXQgPSBUUlVFOworI2Vsc2UKKyAgICAvLyBJZiB3ZSBhcmUgYSAzMmJpdCBwcm9jZXNzIG9uIGEgNjRiaXQgV2luZG93cywgZmlyc3QgaGl0IHRoZSA2NGJpdCBrZXlzLgorICAgICAgICAgICAgQk9PTCBjYW5EbzY0Yml0ID0gRkFMU0U7CisgICAgICAgICAgICBJc1dvdzY0UHJvY2VzcyhHZXRDdXJyZW50UHJvY2VzcygpLCAmY2FuRG82NGJpdCk7CisjZW5kaWYKKworICAgICAgICAgICAgZ2V0X3ZlcnNpb25faW5mbyh2ZXJzaW9uX3RleHQsIE1BWF9QQVRIKTsKKyAgICAgICAgICAgIGZ3cHJpbnRmKHN0ZG91dCwgTCJcCitQeXRob24gTGF1bmNoZXIgZm9yIFdpbmRvd3MgVmVyc2lvbiAlc1xuXG4iLCB2ZXJzaW9uX3RleHQpOworICAgICAgICAgICAgZndwcmludGYoc3Rkb3V0LCBMIlwKK3VzYWdlOiAlcyBbIGxhdW5jaGVyLWFyZ3VtZW50cyBdIHNjcmlwdCBbIHNjcmlwdC1hcmd1bWVudHMgXVxuXG4iLCBhcmd2WzBdKTsKKyAgICAgICAgICAgIGZwdXR3cyhMIlwKK0xhdW5jaGVyIGFyZ3VtZW50czpcblxuXAorLTIgICAgIDogTGF1bmNoIHRoZSBsYXRlc3QgUHl0aG9uIDIueCB2ZXJzaW9uXG5cCistMyAgICAgOiBMYXVuY2ggdGhlIGxhdGVzdCBQeXRob24gMy54IHZlcnNpb25cblwKKy1YLlkgICA6IExhdW5jaCB0aGUgc3BlY2lmaWVkIFB5dGhvbiB2ZXJzaW9uXG4iLCBzdGRvdXQpOworICAgICAgICAgICAgaWYgKGNhbkRvNjRiaXQpIHsKKyAgICAgICAgICAgICAgICBmcHV0d3MoTCJcCistWC5ZLTMyOiBMYXVuY2ggdGhlIHNwZWNpZmllZCAzMmJpdCBQeXRob24gdmVyc2lvbiIsIHN0ZG91dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBmcHV0d3MoTCJcblxuVGhlIGZvbGxvd2luZyBoZWxwIHRleHQgaXMgZnJvbSBQeXRob246XG5cbiIsIHN0ZG91dCk7CisgICAgICAgICAgICBmZmx1c2goc3Rkb3V0KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBpbnZva2VfY2hpbGQoaXAtPmV4ZWN1dGFibGUsIE5VTEwsIGNvbW1hbmQpOworICAgIHJldHVybiByYzsKK30KKworI2lmIGRlZmluZWQoX1dJTkRPV1MpCisKK2ludCBXSU5BUEkgd1dpbk1haW4oSElOU1RBTkNFIGhJbnN0YW5jZSwgSElOU1RBTkNFIGhQcmV2SW5zdGFuY2UsCisgICAgICAgICAgICAgICAgICAgTFBXU1RSIGxwc3RyQ21kLCBpbnQgblNob3cpCit7CisgICAgcmV0dXJuIHByb2Nlc3MoX19hcmdjLCBfX3dhcmd2KTsKK30KKworI2Vsc2UKKworaW50IGNkZWNsIHdtYWluKGludCBhcmdjLCB3Y2hhcl90ICoqIGFyZ3YpCit7CisgICAgcmV0dXJuIHByb2Nlc3MoYXJnYywgYXJndik7Cit9CisKKyNlbmRpZgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDL2xhdW5jaGVyLmljbyBiL1BDL2xhdW5jaGVyLmljbwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYWQ3ZDU3Ci0tLSAvZGV2L251bGwKKysrIGIvUEMvbGF1bmNoZXIuaWNvCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL1BDL21zdmNydG1vZHVsZS5jIGIvUEMvbXN2Y3J0bW9kdWxlLmMKaW5kZXggMTY2ZGYwMy4uMDRkMjA4OCAxMDA3NTUKLS0tIGEvUEMvbXN2Y3J0bW9kdWxlLmMKKysrIGIvUEMvbXN2Y3J0bW9kdWxlLmMKQEAgLTI3LDYgKzI3LDggQEAKICNpZmRlZiBfTVNDX1ZFUgogI2lmIF9NU0NfVkVSID49IDE1MDAgJiYgX01TQ19WRVIgPCAxNjAwCiAjaW5jbHVkZSA8Y3J0YXNzZW0uaD4KKyNlbGlmIF9NU0NfVkVSID49IDE2MDAKKyNpbmNsdWRlIDxjcnR2ZXJzaW9uLmg+CiAjZW5kaWYKICNlbmRpZgogCkBAIC0yMTEsOCArMjEzLDcgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBtc3ZjcnRfZ2V0d2NoKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeV9VTklDT0RFIGNoOwotICAgIFB5X1VOSUNPREUgdVsxXTsKKyAgICB3Y2hhcl90IGNoOwogCiAgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICI6Z2V0d2NoIikpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMjIwLDggKzIyMSw3IEBACiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgIGNoID0gX2dldHdjaCgpOwogICAgIFB5X0VORF9BTExPV19USFJFQURTCi0gICAgdVswXSA9IGNoOwotICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVVuaWNvZGUodSwgMSk7CisgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tT3JkaW5hbChjaCk7CiB9CiAKIFB5RG9jX1NUUlZBUihnZXR3Y2hfZG9jLApAQCAtMjU2LDggKzI1Niw3IEBACiBzdGF0aWMgUHlPYmplY3QgKgogbXN2Y3J0X2dldHdjaGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIFB5X1VOSUNPREUgY2g7Ci0gICAgUHlfVU5JQ09ERSBzWzFdOworICAgIHdjaGFyX3QgY2g7CiAKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIjpnZXR3Y2hlIikpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMjY1LDggKzI2NCw3IEBACiAgICAgUHlfQkVHSU5fQUxMT1dfVEhSRUFEUwogICAgIGNoID0gX2dldHdjaGUoKTsKICAgICBQeV9FTkRfQUxMT1dfVEhSRUFEUwotICAgIHNbMF0gPSBjaDsKLSAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHMsIDEpOworICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbU9yZGluYWwoY2gpOwogfQogCiBQeURvY19TVFJWQVIoZ2V0d2NoZV9kb2MsCkBAIC00NjgsNyArNDY2LDcgQEAKIFB5SW5pdF9tc3ZjcnQodm9pZCkKIHsKICAgICBpbnQgc3Q7Ci0gICAgUHlPYmplY3QgKmQ7CisgICAgUHlPYmplY3QgKmQsICp2ZXJzaW9uOwogICAgIFB5T2JqZWN0ICptID0gUHlNb2R1bGVfQ3JlYXRlKCZtc3ZjcnRtb2R1bGUpOwogICAgIGlmIChtID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNDk4LDYgKzQ5Niw3IEBACiAjZW5kaWYKIAogICAgIC8qIGNvbnN0YW50cyBmb3IgdGhlIGNydCB2ZXJzaW9ucyAqLworICAgICh2b2lkKXN0OwogI2lmZGVmIF9WQ19BU1NFTUJMWV9QVUJMSUNLRVlUT0tFTgogICAgIHN0ID0gUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQobSwgIlZDX0FTU0VNQkxZX1BVQkxJQ0tFWVRPS0VOIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9WQ19BU1NFTUJMWV9QVUJMSUNLRVlUT0tFTik7CkBAIC01MTQsNSArNTEzLDE1IEBACiAgICAgaWYgKHN0IDwgMCkgcmV0dXJuIE5VTEw7CiAjZW5kaWYKIAorICAgIC8qIGNvbnN0YW50cyBmb3IgdGhlIDIwMTAgY3J0IHZlcnNpb25zICovCisjaWYgZGVmaW5lZChfVkNfQ1JUX01BSk9SX1ZFUlNJT04pICYmIGRlZmluZWQgKF9WQ19DUlRfTUlOT1JfVkVSU0lPTikgJiYgZGVmaW5lZChfVkNfQ1JUX0JVSUxEX1ZFUlNJT04pICYmIGRlZmluZWQoX1ZDX0NSVF9SQlVJTERfVkVSU0lPTikKKyAgICB2ZXJzaW9uID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoIiVkLiVkLiVkLiVkIiwgX1ZDX0NSVF9NQUpPUl9WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfVkNfQ1JUX01JTk9SX1ZFUlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9WQ19DUlRfQlVJTERfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1ZDX0NSVF9SQlVJTERfVkVSU0lPTik7CisgICAgc3QgPSBQeU1vZHVsZV9BZGRPYmplY3QobSwgIkNSVF9BU1NFTUJMWV9WRVJTSU9OIiwgdmVyc2lvbik7CisgICAgaWYgKHN0IDwgMCkgcmV0dXJuIE5VTEw7CisjZW5kaWYKKwogICAgIHJldHVybiBtOwogfQpkaWZmIC0tZ2l0IGEvUEMvb3MyZW14L01ha2VmaWxlIGIvUEMvb3MyZW14L01ha2VmaWxlCmluZGV4IGQ5Y2RlZDcuLjgwMDYxMGUgMTAwNjQ0Ci0tLSBhL1BDL29zMmVteC9NYWtlZmlsZQorKysgYi9QQy9vczJlbXgvTWFrZWZpbGUKQEAgLTIzNyw3ICsyMzcsNyBAQAogCiAjIE91dHB1dCBmaWxlIG5hbWVzCiBQWVRIT05fVkVSPQkyLjYKLVBZVEhPTl9MSUI9CXB5dGhvbjI2CitQWVRIT05fTElCPQlweXRob24zMwogUFlUSE9OLkxJQj0JJChQWVRIT05fTElCKV9zJEEKIFBZVEhPTi5JTVBMSUI9CSQoUFlUSE9OX0xJQikkQQogaWZlcSAoJChFWEVPTUYpLHllcykKZGlmZiAtLWdpdCBhL1BDL29zMmVteC9SRUFETUUub3MyZW14IGIvUEMvb3MyZW14L1JFQURNRS5vczJlbXgKaW5kZXggZmNmNTVkMi4uNjFjZjZkZiAxMDA2NDQKLS0tIGEvUEMvb3MyZW14L1JFQURNRS5vczJlbXgKKysrIGIvUEMvb3MyZW14L1JFQURNRS5vczJlbXgKQEAgLTMwNSw3ICszMDUsNyBAQAogICAgdG8gYmUgaW5zdGFsbGVkIGluIGEgZGlyZWN0b3J5IG90aGVyIHRoYW4gdGhlIFBZVEhPTkhPTUUgZGlyZWN0b3J5LCBzZXQgCiAgICB0aGUgdmFsdWUgb2YgdGhlIE1ha2VmaWxlIHZhcmlhYmxlIEVYRV9ESVIgdG8gdGhlIGFwcHJvcHJpYXRlIGRpcmVjdG9yeS4KIAotMy4gSWYgeW91IHdpc2ggdGhlIFB5dGhvbiBjb3JlIERMTCAocHl0aG9uMjYuZGxsKSB0byBiZSBpbnN0YWxsZWQgaW4gYSAKKzMuIElmIHlvdSB3aXNoIHRoZSBQeXRob24gY29yZSBETEwgKHB5dGhvbjMzLmRsbCkgdG8gYmUgaW5zdGFsbGVkIGluIGEgCiAgICBkaXJlY3Rvcnkgb3RoZXIgdGhhbiB0aGUgZGlyZWN0b3J5IGluIHdoaWNoIHRoZSBQeXRob24gZXhlY3V0YWJsZXMgYXJlIAogICAgaW5zdGFsbGVkIChieSBkZWZhdWx0LCB0aGUgUFlUSE9OSE9NRSBkaXJlY3RvcnkpLCBzZXQgdGhlIHZhbHVlIG9mIHRoZSAKICAgIE1ha2VmaWxlIHZhcmlhYmxlIERMTF9ESVIgdG8gdGhlIGFwcHJvcHJpYXRlIGRpcmVjdG9yeS4gIFRoaXMgRExMIG11c3QgCmRpZmYgLS1naXQgYS9QQy9vczJlbXgvY29uZmlnLmMgYi9QQy9vczJlbXgvY29uZmlnLmMKaW5kZXggMjE4YWE2OC4uNTg3OTExMCAxMDA2NDQKLS0tIGEvUEMvb3MyZW14L2NvbmZpZy5jCisrKyBiL1BDL29zMmVteC9jb25maWcuYwpAQCAtMTUwLDEwICsxNTAsOSBAQAogICAgIHsibWFyc2hhbCIsIFB5TWFyc2hhbF9Jbml0fSwKIAogICAgIC8qIFRoaXMgbGl2ZXMgaXQgd2l0aCBpbXBvcnQuYyAqLwotICAgIHsiaW1wIiwgaW5pdGltcH0sCisgICAgeyJfaW1wIiwgaW5pdGltcH0sCiAKICAgICAvKiBUaGVzZSBlbnRyaWVzIGFyZSBoZXJlIGZvciBzeXMuYnVpbHRpbl9tb2R1bGVfbmFtZXMgKi8KLSAgICB7Il9fbWFpbl9fIiwgTlVMTH0sCiAgICAgeyJidWlsdGlucyIsIE5VTEx9LAogICAgIHsic3lzIiwgTlVMTH0sCiAKZGlmZiAtLWdpdCBhL1BDL29zMmVteC9weWNvbmZpZy5oIGIvUEMvb3MyZW14L3B5Y29uZmlnLmgKaW5kZXggMzgwZTE5Yy4uZTU2MTA1YSAxMDA2NDQKLS0tIGEvUEMvb3MyZW14L3B5Y29uZmlnLmgKKysrIGIvUEMvb3MyZW14L3B5Y29uZmlnLmgKQEAgLTEsNiArMSw4IEBACiAjaWZuZGVmIFB5X0NPTkZJR19ICiAjZGVmaW5lIFB5X0NPTkZJR19ICiAKKyNlcnJvciAiUEVQIDExOiBPUy8yIGlzIG5vdyB1bnN1cHBvcnRlZCwgY29kZSB3aWxsIGJlIHJlbW92ZWQgaW4gUHl0aG9uIDMuNCIKKwogLyogY29uZmlnLmguCiAgKiBBdCBzb21lIHRpbWUgaW4gdGhlIHBhc3QsIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5L2Zyb20gY29uZmlndXJlLgogICogbm93IG1haW50YWluZWQgbWFudWFsbHkuCmRpZmYgLS1naXQgYS9QQy9vczJlbXgvcHl0aG9uMjcuZGVmIGIvUEMvb3MyZW14L3B5dGhvbjMzLmRlZgpzaW1pbGFyaXR5IGluZGV4IDg1JQpyZW5hbWUgZnJvbSBQQy9vczJlbXgvcHl0aG9uMjcuZGVmCnJlbmFtZSB0byBQQy9vczJlbXgvcHl0aG9uMzMuZGVmCmluZGV4IGQ4N2RkNzYuLjI1NjcyNmIgMTAwNjQ0Ci0tLSBhL1BDL29zMmVteC9weXRob24yNy5kZWYKKysrIGIvUEMvb3MyZW14L3B5dGhvbjMzLmRlZgpAQCAtMSw3MiArMSw3MiBAQAotTElCUkFSWSBweXRob24yNiBJTklUSU5TVEFOQ0UgVEVSTUlOU1RBTkNFIAorTElCUkFSWSBweXRob24zMyBJTklUSU5TVEFOQ0UgVEVSTUlOU1RBTkNFIAogREVTQ1JJUFRJT04gIlB5dGhvbiAyLjYgQ29yZSBETEwiIAogUFJPVE1PREUgCiBEQVRBIE1VTFRJUExFIE5PTlNIQVJFRCAKIEVYUE9SVFMgCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihjb25maWcpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoY29uZmlnKQogICAiX1B5SW1wb3J0X0luaXR0YWIiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihkbGZjbikKKzsgRnJvbSBweXRob24zM19zLmxpYihkbGZjbikKIDsgICJkbG9wZW4iCiA7ICAiZGxzeW0iCiA7ICAiZGxjbG9zZSIKIDsgICJkbGVycm9yIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZ2V0cGF0aHApCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZ2V0cGF0aHApCiAgICJQeV9HZXRQcm9ncmFtRnVsbFBhdGgiCiAgICJQeV9HZXRQcmVmaXgiCiAgICJQeV9HZXRFeGVjUHJlZml4IgogICAiUHlfR2V0UGF0aCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGdldGJ1aWxkaW5mbykKKzsgRnJvbSBweXRob24zM19zLmxpYihnZXRidWlsZGluZm8pCiAgICJQeV9HZXRCdWlsZEluZm8iCiAgICJfUHlfc3ZudmVyc2lvbiIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKG1haW4pCis7IEZyb20gcHl0aG9uMzNfcy5saWIobWFpbikKICAgIlB5X01haW4iCiAgICJQeV9HZXRBcmdjQXJndiIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGFjY2VsZXIpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoYWNjZWxlcikKICAgIlB5R3JhbW1hcl9BZGRBY2NlbGVyYXRvcnMiCiAgICJQeUdyYW1tYXJfUmVtb3ZlQWNjZWxlcmF0b3JzIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZ3JhbW1hcjEpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZ3JhbW1hcjEpCiAgICJQeUdyYW1tYXJfRmluZERGQSIKICAgIlB5R3JhbW1hcl9MYWJlbFJlcHIiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihsaXN0bm9kZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihsaXN0bm9kZSkKICAgIlB5Tm9kZV9MaXN0VHJlZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKG5vZGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIobm9kZSkKICAgIlB5Tm9kZV9OZXciCiAgICJQeU5vZGVfQWRkQ2hpbGQiCiAgICJQeU5vZGVfRnJlZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHBhcnNlcikKKzsgRnJvbSBweXRob24zM19zLmxpYihwYXJzZXIpCiAgICJQeVBhcnNlcl9BZGRUb2tlbiIKICAgIlB5UGFyc2VyX05ldyIKICAgIlB5UGFyc2VyX0RlbGV0ZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHBhcnNldG9rKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHBhcnNldG9rKQogICAiUHlQYXJzZXJfUGFyc2VTdHJpbmciCiAgICJQeVBhcnNlcl9QYXJzZVN0cmluZ0ZsYWdzRmlsZW5hbWUiCiAgICJQeVBhcnNlcl9QYXJzZUZpbGUiCiAgICJQeVBhcnNlcl9QYXJzZUZpbGVGbGFncyIKICAgIlB5UGFyc2VyX1BhcnNlU3RyaW5nRmxhZ3MiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihiaXRzZXQpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoYml0c2V0KQogICAiX1B5X25ld2JpdHNldCIKICAgIl9QeV9kZWxiaXRzZXQiCiAgICJfUHlfYWRkYml0IgogICAiX1B5X3NhbWViaXRzZXQiCiAgICJfUHlfbWVyZ2ViaXRzZXQiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihtZXRhZ3JhbW1hcikKKzsgRnJvbSBweXRob24zM19zLmxpYihtZXRhZ3JhbW1hcikKICAgIl9QeV9tZXRhX2dyYW1tYXIiCiAgICJQeV9tZXRhX2dyYW1tYXIiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYih0b2tlbml6ZXIpCis7IEZyb20gcHl0aG9uMzNfcy5saWIodG9rZW5pemVyKQogICAiUHlUb2tlbl9PbmVDaGFyIgogICAiUHlUb2tlbl9Ud29DaGFycyIKICAgIlB5VG9rZW5fVGhyZWVDaGFycyIKQEAgLTc2LDE0ICs3NiwxNCBAQAogICAiUHlUb2tlbml6ZXJfR2V0IgogICAiX1B5UGFyc2VyX1Rva2VuTmFtZXMiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihteXJlYWRsaW5lKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKG15cmVhZGxpbmUpCiAgICJfUHlPU19SZWFkbGluZVRTdGF0ZSIKICAgIlB5T1NfUmVhZGxpbmVGdW5jdGlvblBvaW50ZXIiCiAgICJQeU9TX1N0ZGlvUmVhZGxpbmUiCiAgICJQeU9TX1JlYWRsaW5lIgogICAiUHlPU19JbnB1dEhvb2siCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihhYnN0cmFjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihhYnN0cmFjdCkKICAgIl9QeU9iamVjdF9MZW5ndGhIaW50IgogICAiUHlNYXBwaW5nX1NpemUiCiAgICJQeU9iamVjdF9DYWxsTWV0aG9kIgpAQCAtMTc0LDEzICsxNzQsMTMgQEAKICAgIlB5T2JqZWN0X0lzSW5zdGFuY2UiCiAgICJQeU9iamVjdF9Jc1N1YmNsYXNzIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoYm9vbG9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihib29sb2JqZWN0KQogICAiUHlCb29sX0Zyb21Mb25nIgogICAiUHlCb29sX1R5cGUiCiAgICJfUHlfWmVyb1N0cnVjdCIKICAgIl9QeV9UcnVlU3RydWN0IgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoYnVmZmVyb2JqZWN0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGJ1ZmZlcm9iamVjdCkKICAgIlB5QnVmZmVyX0Zyb21PYmplY3QiCiAgICJQeUJ1ZmZlcl9Gcm9tUmVhZFdyaXRlT2JqZWN0IgogICAiUHlCdWZmZXJfRnJvbU1lbW9yeSIKQEAgLTE4OCwxMyArMTg4LDEzIEBACiAgICJQeUJ1ZmZlcl9OZXciCiAgICJQeUJ1ZmZlcl9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoY2VsbG9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihjZWxsb2JqZWN0KQogICAiUHlDZWxsX05ldyIKICAgIlB5Q2VsbF9HZXQiCiAgICJQeUNlbGxfU2V0IgogICAiUHlDZWxsX1R5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihjbGFzc29iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihjbGFzc29iamVjdCkKICAgIlB5Q2xhc3NfTmV3IgogICAiUHlDbGFzc19Jc1N1YmNsYXNzIgogICAiUHlJbnN0YW5jZV9OZXciCkBAIC0yMDksNyArMjA5LDcgQEAKICAgIlB5SW5zdGFuY2VfVHlwZSIKICAgIlB5TWV0aG9kX1R5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihjYXBzdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGNhcHN1bGUpCiAgICJQeUNhcHN1bGVfR2V0Q29udGV4dCIKICAgIlB5Q2Fwc3VsZV9HZXREZXN0cnVjdG9yIgogICAiUHlDYXBzdWxlX0dldE5hbWUiCkBAIC0yMjIsNyArMjIyLDcgQEAKICAgIlB5Q2Fwc3VsZV9TZXROYW1lIgogICAiUHlDYXBzdWxlX1NldFBvaW50ZXIiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihjb2JqZWN0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGNvYmplY3QpCiAgICJQeUNPYmplY3RfRnJvbVZvaWRQdHIiCiAgICJQeUNPYmplY3RfRnJvbVZvaWRQdHJBbmREZXNjIgogICAiUHlDT2JqZWN0X0FzVm9pZFB0ciIKQEAgLTIzMSwxMyArMjMxLDEzIEBACiAgICJQeUNPYmplY3RfU2V0Vm9pZFB0ciIKICAgIlB5Q09iamVjdF9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoY29kZW9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihjb2Rlb2JqZWN0KQogICAiUHlDb2RlX05ldyIKICAgIlB5Q29kZV9BZGRyMkxpbmUiCiAgICJQeUNvZGVfQ2hlY2tMaW5lTnVtYmVyIgogICAiUHlDb2RlX1R5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihjb21wbGV4b2JqZWN0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGNvbXBsZXhvYmplY3QpCiAgICJfUHlfY19wb3ciCiAgICJfUHlfY19zdW0iCiAgICJfUHlfY19kaWZmIgpAQCAtMjUxLDcgKzI1MSw3IEBACiAgICJQeUNvbXBsZXhfQXNDQ29tcGxleCIKICAgIlB5Q29tcGxleF9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZGVzY3JvYmplY3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZGVzY3JvYmplY3QpCiAgICJQeVdyYXBwZXJfTmV3IgogICAiUHlEZXNjcl9OZXdNZXRob2QiCiAgICJQeURlc2NyX05ld0NsYXNzTWV0aG9kIgpAQCAtMjYyLDcgKzI2Miw3IEBACiAgICJQeVdyYXBwZXJEZXNjcl9UeXBlIgogICAiUHlQcm9wZXJ0eV9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZGljdG9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihkaWN0b2JqZWN0KQogICAiUHlEaWN0X05ldyIKICAgIlB5RGljdF9HZXRJdGVtIgogICAiUHlEaWN0X1NldEl0ZW0iCkBAIC0yODYsMTEgKzI4NiwxMSBAQAogICAiUHlEaWN0SXRlclZhbHVlX1R5cGUiCiAgICJQeURpY3RJdGVySXRlbV9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZW51bW9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihlbnVtb2JqZWN0KQogICAiUHlFbnVtX1R5cGUiCiAgICJQeVJldmVyc2VkX1R5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihmaWxlb2JqZWN0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGZpbGVvYmplY3QpCiAgICJQeUZpbGVfRnJvbVN0cmluZyIKICAgIlB5X1VuaXZlcnNhbE5ld2xpbmVGcmVhZCIKICAgIlB5RmlsZV9HZXRMaW5lIgpAQCAtMzA2LDcgKzMwNiw3IEBACiAgICJQeUZpbGVfTmFtZSIKICAgIlB5RmlsZV9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZmxvYXRvYmplY3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZmxvYXRvYmplY3QpCiAgICJQeUZsb2F0X0Zyb21TdHJpbmciCiAgICJQeUZsb2F0X0FzRG91YmxlIgogICAiUHlGbG9hdF9GaW5pIgpAQCAtMzIxLDcgKzMyMSw3IEBACiAgICJQeUZsb2F0X0FzU3RyaW5nRXgiCiAgICJQeUZsb2F0X1R5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihmcmFtZW9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihmcmFtZW9iamVjdCkKICAgIlB5RnJhbWVfTmV3IgogICAiUHlGcmFtZV9GYXN0VG9Mb2NhbHMiCiAgICJQeUZyYW1lX0xvY2Fsc1RvRmFzdCIKQEAgLTMzMSw3ICszMzEsNyBAQAogICAiUHlGcmFtZV9CbG9ja1BvcCIKICAgIlB5RnJhbWVfVHlwZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGZ1bmNvYmplY3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZnVuY29iamVjdCkKICAgIlB5RnVuY3Rpb25fTmV3IgogICAiUHlGdW5jdGlvbl9HZXRDb2RlIgogICAiUHlGdW5jdGlvbl9HZXRHbG9iYWxzIgpAQCAtMzQ2LDEyICszNDYsMTIgQEAKICAgIlB5Q2xhc3NNZXRob2RfVHlwZSIKICAgIlB5U3RhdGljTWV0aG9kX1R5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihnZW5vYmplY3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZ2Vub2JqZWN0KQogICAiUHlHZW5fTmV3IgogICAiUHlHZW5fTmVlZHNGaW5hbGl6aW5nIgogICAiUHlHZW5fVHlwZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGludG9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihpbnRvYmplY3QpCiAgICJQeUludF9Bc0xvbmciCiAgICJQeUludF9Bc1Vuc2lnbmVkTG9uZ01hc2siCiAgICJQeUludF9Bc1Vuc2lnbmVkTG9uZ0xvbmdNYXNrIgpAQCAtMzY2LDEzICszNjYsMTMgQEAKICAgIl9QeUludF9Jbml0IgogICAiUHlJbnRfVHlwZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGl0ZXJvYmplY3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoaXRlcm9iamVjdCkKICAgIlB5U2VxSXRlcl9OZXciCiAgICJQeUNhbGxJdGVyX05ldyIKICAgIlB5U2VxSXRlcl9UeXBlIgogICAiUHlDYWxsSXRlcl9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIobGlzdG9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihsaXN0b2JqZWN0KQogICAiUHlMaXN0X05ldyIKICAgIlB5TGlzdF9BcHBlbmQiCiAgICJQeUxpc3RfU2l6ZSIKQEAgLTM5MCw3ICszOTAsNyBAQAogICAiUHlMaXN0SXRlcl9UeXBlIgogICAiUHlMaXN0UmV2SXRlcl9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIobG9uZ29iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihsb25nb2JqZWN0KQogICAiUHlMb25nX0Zyb21Eb3VibGUiCiAgICJQeUxvbmdfQXNMb25nIgogICAiX1B5TG9uZ19Bc1NzaXplX3QiCkBAIC00MjAsNyArNDIwLDcgQEAKICAgIlB5TG9uZ19UeXBlIgogICAiX1B5TG9uZ19EaWdpdFZhbHVlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIobWV0aG9kb2JqZWN0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKG1ldGhvZG9iamVjdCkKICAgIlB5Q0Z1bmN0aW9uX0NhbGwiCiAgICJQeV9GaW5kTWV0aG9kSW5DaGFpbiIKICAgIlB5Q0Z1bmN0aW9uX0dldEZ1bmN0aW9uIgpAQCAtNDMyLDcgKzQzMiw3IEBACiAgICJQeUNGdW5jdGlvbl9OZXciCiAgICJQeUNGdW5jdGlvbl9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIobW9kdWxlb2JqZWN0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKG1vZHVsZW9iamVjdCkKICAgIlB5TW9kdWxlX05ldyIKICAgIl9QeU1vZHVsZV9DbGVhciIKICAgIlB5TW9kdWxlX0dldERpY3QiCkBAIC00NDAsNyArNDQwLDcgQEAKICAgIlB5TW9kdWxlX0dldEZpbGVuYW1lIgogICAiUHlNb2R1bGVfVHlwZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKG9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihvYmplY3QpCiAgICJQeV9EaXZpc2lvbldhcm5pbmdGbGFnIgogICAiUHlPYmplY3RfU3RyIgogICAiUHlPYmplY3RfUmVwciIKQEAgLTQ5MywxNSArNDkzLDE1IEBACiAgICJfUHlUcmFzaF9kZWxldGVfbmVzdGluZyIKICAgIl9QeVRyYXNoX2RlbGV0ZV9sYXRlciIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKG9ibWFsbG9jKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKG9ibWFsbG9jKQogICAiUHlPYmplY3RfTWFsbG9jIgogICAiUHlPYmplY3RfRnJlZSIKICAgIlB5T2JqZWN0X1JlYWxsb2MiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihyYW5nZW9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihyYW5nZW9iamVjdCkKICAgIlB5UmFuZ2VfVHlwZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHNldG9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihzZXRvYmplY3QpCiAgICJQeVNldF9Qb3AiCiAgICJQeVNldF9OZXciCiAgICJQeUZyb3plblNldF9OZXciCkBAIC01MTYsNyArNTE2LDcgQEAKICAgIlB5U2V0X1R5cGUiCiAgICJQeUZyb3plblNldF9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoc2xpY2VvYmplY3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoc2xpY2VvYmplY3QpCiAgICJfUHlTbGljZV9Gcm9tSW5kaWNlcyIKICAgIlB5U2xpY2VfR2V0SW5kaWNlcyIKICAgIlB5U2xpY2VfR2V0SW5kaWNlc0V4IgpAQCAtNTI0LDcgKzUyNCw3IEBACiAgICJfUHlfRWxsaXBzaXNPYmplY3QiCiAgICJQeVNsaWNlX1R5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihzdHJpbmdvYmplY3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoc3RyaW5nb2JqZWN0KQogICAiUHlTdHJpbmdfRnJvbVN0cmluZ0FuZFNpemUiCiAgICJQeVN0cmluZ19JbnRlcm5JblBsYWNlIgogICAiUHlTdHJpbmdfRnJvbVN0cmluZyIKQEAgLTU1NSwxMiArNTU1LDEyIEBACiAgICJQeVN0cmluZ19UeXBlIgogICAiUHlCYXNlU3RyaW5nX1R5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihzdHJ1Y3RzZXEpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoc3RydWN0c2VxKQogICAiUHlTdHJ1Y3RTZXF1ZW5jZV9Jbml0VHlwZSIKICAgIlB5U3RydWN0U2VxdWVuY2VfTmV3IgogICAiUHlTdHJ1Y3RTZXF1ZW5jZV9Vbm5hbWVkRmllbGQiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYih0dXBsZW9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYih0dXBsZW9iamVjdCkKICAgIlB5VHVwbGVfTmV3IgogICAiUHlUdXBsZV9QYWNrIgogICAiX1B5VHVwbGVfUmVzaXplIgpAQCAtNTcyLDcgKzU3Miw3IEBACiAgICJQeVR1cGxlX1R5cGUiCiAgICJQeVR1cGxlSXRlcl9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIodHlwZW9iamVjdCkKKzsgRnJvbSBweXRob24zM19zLmxpYih0eXBlb2JqZWN0KQogICAiUHlUeXBlX0lzU3VidHlwZSIKICAgIl9QeVR5cGVfTG9va3VwIgogICAiUHlUeXBlX1JlYWR5IgpAQCAtNTgzLDcgKzU4Myw3IEBACiAgICJQeUJhc2VPYmplY3RfVHlwZSIKICAgIlB5U3VwZXJfVHlwZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHVuaWNvZGVvYmplY3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIodW5pY29kZW9iamVjdCkKICAgIlB5VW5pY29kZVVDUzJfUmVzaXplIgogICAiUHlVbmljb2RlVUNTMl9Gcm9tT3JkaW5hbCIKICAgIlB5VW5pY29kZVVDUzJfRnJvbU9iamVjdCIKQEAgLTY0OSw3ICs2NDksNyBAQAogICAiUHlVbmljb2RlX0FzRGVjb2RlZE9iamVjdCIKICAgIlB5VW5pY29kZV9UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIodW5pY29kZWN0eXBlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHVuaWNvZGVjdHlwZSkKICAgIl9QeVVuaWNvZGVfVHlwZVJlY29yZHMiCiAgICJfUHlVbmljb2RlVUNTMl9Ub051bWVyaWMiCiAgICJfUHlVbmljb2RlVUNTMl9Jc0xvd2VyY2FzZSIKQEAgLTY2Nyw3ICs2NjcsNyBAQAogICAiX1B5VW5pY29kZVVDUzJfSXNOdW1lcmljIgogICAiX1B5VW5pY29kZVVDUzJfSXNBbHBoYSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHdlYWtyZWZvYmplY3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIod2Vha3JlZm9iamVjdCkKICAgIlB5V2Vha3JlZl9OZXdSZWYiCiAgICJQeVdlYWtyZWZfTmV3UHJveHkiCiAgICJQeU9iamVjdF9DbGVhcldlYWtSZWZzIgpAQCAtNjc4LDcgKzY3OCw3IEBACiAgICJfUHlXZWFrcmVmX1Byb3h5VHlwZSIKICAgIl9QeVdlYWtyZWZfQ2FsbGFibGVQcm94eVR5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihQeXRob24tYXN0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKFB5dGhvbi1hc3QpCiA7ICAiaW5pdF9hc3QiCiAgICJNb2R1bGUiCiAgICJJbnRlcmFjdGl2ZSIKQEAgLTczNywxOCArNzM3LDE4IEBACiAgICJhbGlhcyIKICAgIlB5QVNUX21vZDJvYmoiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihhc2RsKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGFzZGwpCiAgICJhc2RsX3NlcV9uZXciCiAgICJhc2RsX2ludF9zZXFfbmV3IgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoYXN0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGFzdCkKICAgIlB5QVNUX0Zyb21Ob2RlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoYmx0aW5tb2R1bGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoYmx0aW5tb2R1bGUpCiAgICJfUHlCdWlsdGluX0luaXQiCiAgICJQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZXhjZXB0aW9ucykKKzsgRnJvbSBweXRob24zM19zLmxpYihleGNlcHRpb25zKQogICAiUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0U3RhcnQiCiAgICJQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRTdGFydCIKICAgIlB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuZCIKQEAgLTgyNCw3ICs4MjQsNyBAQAogICAiUHlFeGNfSW1wb3J0V2FybmluZyIKICAgIlB5RXhjX01lbW9yeUVycm9ySW5zdCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGNldmFsKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGNldmFsKQogICAiUHlFdmFsX0V2YWxGcmFtZUV4IgogICAiUHlFdmFsX0NhbGxPYmplY3RXaXRoS2V5d29yZHMiCiAgICJQeUV2YWxfRXZhbENvZGVFeCIKQEAgLTg2MywxMyArODYzLDEzIEBACiAgICJfUHlfQ2hlY2tJbnRlcnZhbCIKICAgIl9QeV9UaWNrZXIiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihjb21waWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGNvbXBpbGUpCiAgICJfUHlfTWFuZ2xlIgogICAiUHlBU1RfQ29tcGlsZSIKICAgIlB5Tm9kZV9Db21waWxlIgogICAiUHlfT3B0aW1pemVGbGFnIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoY29kZWNzKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGNvZGVjcykKICAgIl9QeUNvZGVjX0xvb2t1cCIKICAgIlB5Q29kZWNfRW5jb2RlIgogICAiUHlDb2RlY19EZWNvZGUiCkBAIC04ODgsNyArODg4LDcgQEAKICAgIlB5Q29kZWNfTG9va3VwRXJyb3IiCiAgICJQeUNvZGVjX1N0cmljdEVycm9ycyIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGVycm9ycykKKzsgRnJvbSBweXRob24zM19zLmxpYihlcnJvcnMpCiAgICJQeUVycl9TZXROb25lIgogICAiUHlFcnJfU2V0U3RyaW5nIgogICAiUHlFcnJfR2l2ZW5FeGNlcHRpb25NYXRjaGVzIgpAQCAtOTE0LDE2ICs5MTQsMTYgQEAKICAgIlB5RXJyX1dhcm4iCiAgICJQeUVycl9XYXJuRXhwbGljaXQiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihmcm96ZW4pCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZnJvemVuKQogICAiUHlJbXBvcnRfRnJvemVuTW9kdWxlcyIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGZyb3plbm1haW4pCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZnJvemVubWFpbikKICAgIlB5X0Zyb3plbk1haW4iCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihmdXR1cmUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZnV0dXJlKQogICAiUHlGdXR1cmVfRnJvbUFTVCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGdldGFyZ3MpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZ2V0YXJncykKICAgIlB5QXJnX1BhcnNlIgogICAiX1B5QXJnX1BhcnNlX1NpemVUIgogICAiUHlBcmdfUGFyc2VUdXBsZSIKQEAgLTkzNywyMiArOTM3LDIyIEBACiAgICJfUHlBcmdfVmFQYXJzZV9TaXplVCIKICAgIl9QeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3Jkc19TaXplVCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGdldGNvbXBpbGVyKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGdldGNvbXBpbGVyKQogICAiUHlfR2V0Q29tcGlsZXIiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihnZXRjb3B5cmlnaHQpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZ2V0Y29weXJpZ2h0KQogICAiUHlfR2V0Q29weXJpZ2h0IgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZ2V0cGxhdGZvcm0pCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZ2V0cGxhdGZvcm0pCiAgICJQeV9HZXRQbGF0Zm9ybSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGdldHZlcnNpb24pCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZ2V0dmVyc2lvbikKICAgIlB5X0dldFZlcnNpb24iCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihncmFtaW5pdCkKKzsgRnJvbSBweXRob24zM19zLmxpYihncmFtaW5pdCkKICAgIl9QeVBhcnNlcl9HcmFtbWFyIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoaW1wb3J0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGltcG9ydCkKICAgIl9QeUltcG9ydF9Jbml0IgogICAiX1B5SW1wb3J0SG9va3NfSW5pdCIKICAgIlB5SW1wb3J0X0ltcG9ydE1vZHVsZSIKQEAgLTk3OSwxMCArOTc5LDEwIEBACiAgICJQeUltcG9ydF9Jbml0dGFiIgogICAiX1B5SW1wb3J0X0ZpbGV0YWIiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihpbXBvcnRkbCkKKzsgRnJvbSBweXRob24zM19zLmxpYihpbXBvcnRkbCkKICAgIl9QeUltcG9ydF9Mb2FkRHluYW1pY01vZHVsZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKG1hcnNoYWwpCis7IEZyb20gcHl0aG9uMzNfcy5saWIobWFyc2hhbCkKICAgIlB5TWFyc2hhbF9SZWFkTG9uZ0Zyb21GaWxlIgogICAiUHlNYXJzaGFsX1dyaXRlT2JqZWN0VG9TdHJpbmciCiAgICJQeU1hcnNoYWxfV3JpdGVMb25nVG9GaWxlIgpAQCAtOTkzLDcgKzk5Myw3IEBACiAgICJQeU1hcnNoYWxfUmVhZE9iamVjdEZyb21TdHJpbmciCiAgICJQeU1hcnNoYWxfSW5pdCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKG1vZHN1cHBvcnQpCis7IEZyb20gcHl0aG9uMzNfcy5saWIobW9kc3VwcG9ydCkKICAgIlB5X0luaXRNb2R1bGU0IgogICAiUHlfQnVpbGRWYWx1ZSIKICAgIl9QeV9CdWlsZFZhbHVlX1NpemVUIgpAQCAtMTAwNiwyNCArMTAwNiwyNCBAQAogICAiUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQiCiAgICJfUHlfUGFja2FnZUNvbnRleHQiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihteXNucHJpbnRmKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKG15c25wcmludGYpCiAgICJQeU9TX3NucHJpbnRmIgogICAiUHlPU192c25wcmludGYiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihteXN0cnRvdWwpCis7IEZyb20gcHl0aG9uMzNfcy5saWIobXlzdHJ0b3VsKQogICAiUHlPU19zdHJ0b3VsIgogICAiUHlPU19zdHJ0b2wiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihweWFyZW5hKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHB5YXJlbmEpCiAgICJQeUFyZW5hX05ldyIKICAgIlB5QXJlbmFfRnJlZSIKICAgIlB5QXJlbmFfTWFsbG9jIgogICAiUHlBcmVuYV9BZGRQeU9iamVjdCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHB5ZnBlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHB5ZnBlKQogICAiUHlGUEVfZHVtbXkiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihweXN0YXRlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHB5c3RhdGUpCiAgICJQeUludGVycHJldGVyU3RhdGVfQ2xlYXIiCiAgICJQeVRocmVhZFN0YXRlX0NsZWFyIgogICAiX1B5VGhyZWFkX0N1cnJlbnRGcmFtZXMiCkBAIC0xMDQ4LDcgKzEwNDgsNyBAQAogICAiX1B5VGhyZWFkU3RhdGVfQ3VycmVudCIKICAgIl9QeVRocmVhZFN0YXRlX0dldEZyYW1lIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIocHl0aG9ucnVuKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHB5dGhvbnJ1bikKICAgIlB5X0lnbm9yZUVudmlyb25tZW50RmxhZyIKICAgIlB5X0RlYnVnRmxhZyIKICAgIlB5X1ZlcmJvc2VGbGFnIgpAQCAtMTExMCwyMCArMTExMCwyMCBAQAogICAiUHlfVW5pY29kZUZsYWciCiAgICJfUHlfUW5ld0ZsYWciCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihzdHJ1Y3RtZW1iZXIpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoc3RydWN0bWVtYmVyKQogICAiUHlNZW1iZXJfR2V0IgogICAiUHlNZW1iZXJfR2V0T25lIgogICAiUHlNZW1iZXJfU2V0T25lIgogICAiUHlNZW1iZXJfU2V0IgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoc3ltdGFibGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoc3ltdGFibGUpCiAgICJQeVN5bXRhYmxlX0J1aWxkIgogICAiUHlTeW10YWJsZV9GcmVlIgogICAiUHlTVF9HZXRTY29wZSIKICAgIlB5U3ltdGFibGVfTG9va3VwIgogICAiUHlTVEVudHJ5X1R5cGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihzeXNtb2R1bGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoc3lzbW9kdWxlKQogICAiX1B5U3lzX0luaXQiCiAgICJQeVN5c19Xcml0ZVN0ZGVyciIKICAgIlB5U3lzX1NldFBhdGgiCkBAIC0xMTM3LDIyICsxMTM3LDIyIEBACiAgICJQeVN5c19SZXNldFdhcm5PcHRpb25zIgogICAiUHlTeXNfQWRkV2Fybk9wdGlvbiIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHRyYWNlYmFjaykKKzsgRnJvbSBweXRob24zM19zLmxpYih0cmFjZWJhY2spCiAgICJQeVRyYWNlQmFja19IZXJlIgogICAiUHlUcmFjZUJhY2tfUHJpbnQiCiAgICJQeVRyYWNlQmFja19UeXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZ2V0b3B0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGdldG9wdCkKICAgIl9QeU9TX0dldE9wdCIKICAgIl9QeU9TX29wdGVyciIKICAgIl9QeU9TX29wdGluZCIKICAgIl9QeU9TX29wdGFyZyIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGR5bmxvYWRfc2hsaWIpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZHlubG9hZF9zaGxpYikKICAgIl9QeUltcG9ydF9EeW5Mb2FkRmlsZXRhYiIKICAgIl9QeUltcG9ydF9HZXREeW5Mb2FkRnVuYyIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHRocmVhZCkKKzsgRnJvbSBweXRob24zM19zLmxpYih0aHJlYWQpCiAgICJQeVRocmVhZF9kZWxldGVfa2V5X3ZhbHVlIgogICAiUHlUaHJlYWRfaW5pdF90aHJlYWQiCiAgICJQeVRocmVhZF9zdGFydF9uZXdfdGhyZWFkIgpAQCAtMTE2OSw3ICsxMTY5LDcgQEAKICAgIlB5VGhyZWFkX3NldF9rZXlfdmFsdWUiCiAgICJQeVRocmVhZF9nZXRfa2V5X3ZhbHVlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoZ2Ntb2R1bGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoZ2Ntb2R1bGUpCiA7ICAiaW5pdGdjIgogICAiX1B5T2JqZWN0X0dDX05ldyIKICAgIl9QeU9iamVjdF9HQ19OZXdWYXIiCkBAIC0xMTg1LDcgKzExODUsNyBAQAogICAiX1B5T2JqZWN0X0dDX0RlbCIKICAgIl9QeUdDX2dlbmVyYXRpb24wIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoc2lnbmFsbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHNpZ25hbG1vZHVsZSkKIDsgICJpbml0c2lnbmFsIgogICAiUHlFcnJfQ2hlY2tTaWduYWxzIgogICAiUHlFcnJfU2V0SW50ZXJydXB0IgpAQCAtMTE5NCwxMjEgKzExOTQsMTIxIEBACiAgICJQeU9TX0luaXRJbnRlcnJ1cHRzIgogICAiUHlPU19BZnRlckZvcmsiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihwb3NpeG1vZHVsZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihwb3NpeG1vZHVsZSkKIDsgICJpbml0b3MyIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoX3RocmVhZG1vZHVsZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihfdGhyZWFkbW9kdWxlKQogOyAgImluaXRfdGhyZWFkIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoYXJyYXltb2R1bGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoYXJyYXltb2R1bGUpCiA7ICAiaW5pdGFycmF5IgogOyAgImFycmF5X21ldGhvZHMiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihiaW5hc2NpaSkKKzsgRnJvbSBweXRob24zM19zLmxpYihiaW5hc2NpaSkKIDsgICJpbml0YmluYXNjaWkiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihjbWF0aG1vZHVsZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihjbWF0aG1vZHVsZSkKIDsgICJpbml0Y21hdGgiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihfY29kZWNzbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKF9jb2RlY3Ntb2R1bGUpCiA7ICAiaW5pdF9jb2RlY3MiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihjb2xsZWN0aW9uc21vZHVsZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihjb2xsZWN0aW9uc21vZHVsZSkKIDsgICJpbml0Y29sbGVjdGlvbnMiCiAgICJkZXF1ZWl0ZXJfdHlwZSIKICAgImRlcXVlcmV2aXRlcl90eXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoY1BpY2tsZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihjUGlja2xlKQogOyAgImluaXRjUGlja2xlIgogOyAgImZhc3Rfc2F2ZV9sZWF2ZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKF9jc3YpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoX2NzdikKIDsgICJpbml0X2NzdiIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGRhdGV0aW1lbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGRhdGV0aW1lbW9kdWxlKQogOyAgImluaXRkYXRldGltZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGRsbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGRsbW9kdWxlKQogOyAgImluaXRkbCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGVycm5vbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGVycm5vbW9kdWxlKQogOyAgImluaXRlcnJubyIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGZjbnRsbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKGZjbnRsbW9kdWxlKQogOyAgImluaXRmY250bCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKF9mdW5jdG9vbHNtb2R1bGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoX2Z1bmN0b29sc21vZHVsZSkKIDsgICJpbml0X2Z1bmN0b29scyIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKF9oZWFwcW1vZHVsZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihfaGVhcHFtb2R1bGUpCiA7ICAiaW5pdF9oZWFwcSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGltYWdlb3ApCis7IEZyb20gcHl0aG9uMzNfcy5saWIoaW1hZ2VvcCkKIDsgICJpbml0aW1hZ2VvcCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKGl0ZXJ0b29sc21vZHVsZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihpdGVydG9vbHNtb2R1bGUpCiA7ICAiaW5pdGl0ZXJ0b29scyIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKF9sb2NhbGVtb2R1bGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoX2xvY2FsZW1vZHVsZSkKIDsgICJpbml0X2xvY2FsZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKG1hdGhtb2R1bGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIobWF0aG1vZHVsZSkKIDsgICJpbml0bWF0aCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKG1kNSkKKzsgRnJvbSBweXRob24zM19zLmxpYihtZDUpCiAgICJtZDVfZmluaXNoIgogICAibWQ1X2luaXQiCiAgICJtZDVfYXBwZW5kIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIobWQ1bW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKG1kNW1vZHVsZSkKIDsgICJpbml0X21kNSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKG9wZXJhdG9yKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKG9wZXJhdG9yKQogOyAgImluaXRvcGVyYXRvciIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKF9yYW5kb21tb2R1bGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoX3JhbmRvbW1vZHVsZSkKIDsgICJpbml0X3JhbmRvbSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHJnYmltZ21vZHVsZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihyZ2JpbWdtb2R1bGUpCiA7ICAiaW5pdHJnYmltZyIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHNoYW1vZHVsZSkKKzsgRnJvbSBweXRob24zM19zLmxpYihzaGFtb2R1bGUpCiA7ICAiaW5pdF9zaGEiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYihzaGEyNTZtb2R1bGUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoc2hhMjU2bW9kdWxlKQogOyAgImluaXRfc2hhMjU2IgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoc2hhNTEybW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHNoYTUxMm1vZHVsZSkKIDsgICJpbml0X3NoYTUxMiIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKF9zcmUpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoX3NyZSkKIDsgICJpbml0X3NyZSIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHN0cm9wbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHN0cm9wbW9kdWxlKQogOyAgImluaXRzdHJvcCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKF9zdHJ1Y3QpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoX3N0cnVjdCkKIDsgICJpbml0X3N0cnVjdCIKIAotOyBGcm9tIHB5dGhvbjI2X3MubGliKHN5bXRhYmxlbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHN5bXRhYmxlbW9kdWxlKQogOyAgImluaXRfc3ltdGFibGUiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYih0ZXJtaW9zKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHRlcm1pb3MpCiA7ICAiaW5pdHRlcm1pb3MiCiAKLTsgRnJvbSBweXRob24yNl9zLmxpYih0aW1lbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHRpbWVtb2R1bGUpCiA7ICAiaW5pdHRpbWUiCiAgICJfUHlUaW1lX0RvdWJsZVRvVGltZXQiCiA7ICAiaW5pdHRpbWV6b25lIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIodGltaW5nbW9kdWxlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHRpbWluZ21vZHVsZSkKIDsgICJpbml0dGltaW5nIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoX3dlYWtyZWYpCis7IEZyb20gcHl0aG9uMzNfcy5saWIoX3dlYWtyZWYpCiA7ICAiaW5pdF93ZWFrcmVmIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoeHhzdWJ0eXBlKQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHh4c3VidHlwZSkKIDsgICJpbml0eHhzdWJ0eXBlIgogCi07IEZyb20gcHl0aG9uMjZfcy5saWIoemlwaW1wb3J0KQorOyBGcm9tIHB5dGhvbjMzX3MubGliKHppcGltcG9ydCkKIDsgICJpbml0emlwaW1wb3J0IgpkaWZmIC0tZ2l0IGEvUEMvb3MydmFjcHAvY29uZmlnLmMgYi9QQy9vczJ2YWNwcC9jb25maWcuYwppbmRleCBiYmRmNmYzLi5iMjZiNTIxIDEwMDY0NAotLS0gYS9QQy9vczJ2YWNwcC9jb25maWcuYworKysgYi9QQy9vczJ2YWNwcC9jb25maWcuYwpAQCAtODgsMTAgKzg4LDkgQEAKICAgICAgICAgeyJtYXJzaGFsIiwgUHlNYXJzaGFsX0luaXR9LAogCiAgICAgICAgIC8qIFRoaXMgbGl2ZXMgaXQgd2l0aCBpbXBvcnQuYyAqLwotICAgICAgICB7ImltcCIsIGluaXRpbXB9LAorICAgICAgICB7Il9pbXAiLCBpbml0aW1wfSwKIAogICAgICAgICAvKiBUaGVzZSBlbnRyaWVzIGFyZSBoZXJlIGZvciBzeXMuYnVpbHRpbl9tb2R1bGVfbmFtZXMgKi8KLSAgICAgICAgeyJfX21haW5fXyIsIE5VTEx9LAogICAgICAgICB7ImJ1aWx0aW5zIiwgTlVMTH0sCiAgICAgICAgIHsic3lzIiwgTlVMTH0sCiAKZGlmZiAtLWdpdCBhL1BDL3B5Y29uZmlnLmggYi9QQy9weWNvbmZpZy5oCmluZGV4IGJhODA4MDAuLmQ2ZGU1ZjAgMTAwNjQ0Ci0tLSBhL1BDL3B5Y29uZmlnLmgKKysrIGIvUEMvcHljb25maWcuaApAQCAtMjE1LDE0ICsyMTUsMTkgQEAKICNkZWZpbmUgY29weXNpZ24gX2NvcHlzaWduCiAjZGVmaW5lIGh5cG90IF9oeXBvdAogCi0jZW5kaWYgLyogX01TQ19WRVIgKi8KKy8qIFNpZGUgYnkgU2lkZSBhc3NlbWJsaWVzIHN1cHBvcnRlZCBpbiBWUyAyMDA1IGFuZCBWUyAyMDA4IGJ1dCBub3QgMjAxMCovCisjaWYgX01TQ19WRVIgPj0gMTQwMCAmJiBfTVNDX1ZFUiA8IDE2MDAKKyNkZWZpbmUgSEFWRV9TWFMgMQorI2VuZGlmCiAKIC8qIGRlZmluZSBzb21lIEFOU0kgdHlwZXMgdGhhdCBhcmUgbm90IGRlZmluZWQgaW4gZWFybGllciBXaW4gaGVhZGVycyAqLwotI2lmIGRlZmluZWQoX01TQ19WRVIpICYmIF9NU0NfVkVSID49IDEyMDAKKyNpZiBfTVNDX1ZFUiA+PSAxMjAwCiAvKiBUaGlzIGZpbGUgb25seSBleGlzdHMgaW4gVkMgNi4wIG9yIGhpZ2hlciAqLwogI2luY2x1ZGUgPGJhc2V0c2QuaD4KICNlbmRpZgogCisjZW5kaWYgLyogX01TQ19WRVIgKi8KKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KIC8qIFRoZSBCb3JsYW5kIGNvbXBpbGVyIGRlZmluZXMgX19CT1JMQU5EQ19fICovCiAvKiBYWFggVGhlc2UgZGVmaW5lcyBhcmUgbGlrZWx5IGluY29tcGxldGUsIGJ1dCBzaG91bGQgYmUgZWFzeSB0byBmaXguICovCkBAIC0zMTksMTEgKzMyNCwxMSBAQAogCQkJdGhlaXIgTWFrZWZpbGUgKG90aGVyIGNvbXBpbGVycyBhcmUgZ2VuZXJhbGx5CiAJCQl0YWtlbiBjYXJlIG9mIGJ5IGRpc3R1dGlscy4pICovCiAjCQkJaWYgZGVmaW5lZChfREVCVUcpCi0jCQkJCXByYWdtYSBjb21tZW50KGxpYiwicHl0aG9uMzJfZC5saWIiKQorIwkJCQlwcmFnbWEgY29tbWVudChsaWIsInB5dGhvbjMzX2QubGliIikKICMJCQllbGlmIGRlZmluZWQoUHlfTElNSVRFRF9BUEkpCiAjCQkJCXByYWdtYSBjb21tZW50KGxpYiwicHl0aG9uMy5saWIiKQogIwkJCWVsc2UKLSMJCQkJcHJhZ21hIGNvbW1lbnQobGliLCJweXRob24zMi5saWIiKQorIwkJCQlwcmFnbWEgY29tbWVudChsaWIsInB5dGhvbjMzLmxpYiIpCiAjCQkJZW5kaWYgLyogX0RFQlVHICovCiAjCQllbmRpZiAvKiBfTVNDX1ZFUiAqLwogIwllbmRpZiAvKiBQeV9CVUlMRF9DT1JFICovCkBAIC01NTAsMTAgKzU1NSw2IEBACiAvKiBEZWZpbmUgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBHTlUgcmVhZGxpbmUgbGlicmFyeSAqLwogLyogI2RlZmluZSBXSVRIX1JFQURMSU5FIDEgKi8KIAotLyogRGVmaW5lIGFzIHRoZSBzaXplIG9mIHRoZSB1bmljb2RlIHR5cGUuICovCi0vKiBUaGlzIGlzIGVub3VnaCBmb3IgdW5pY29kZW9iamVjdC5oIHRvIGRvIHRoZSAicmlnaHQgdGhpbmciIG9uIFdpbmRvd3MuICovCi0jZGVmaW5lIFB5X1VOSUNPREVfU0laRSAyCi0KIC8qIFVzZSBQeXRob24ncyBvd24gc21hbGwtYmxvY2sgbWVtb3J5LWFsbG9jYXRvci4gKi8KICNkZWZpbmUgV0lUSF9QWU1BTExPQyAxCiAKQEAgLTcxNCw5ICs3MTUsNiBAQAogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3V0c25hbWUuaD4gaGVhZGVyIGZpbGUuICAqLwogLyogI2RlZmluZSBIQVZFX1NZU19VVFNOQU1FX0ggMSAqLwogCi0vKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIDx0aHJlYWQuaD4gaGVhZGVyIGZpbGUuICAqLwotLyogI3VuZGVmIEhBVkVfVEhSRUFEX0ggKi8KLQogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSA8dW5pc3RkLmg+IGhlYWRlciBmaWxlLiAgKi8KIC8qICNkZWZpbmUgSEFWRV9VTklTVERfSCAxICovCiAKZGlmZiAtLWdpdCBhL1BDL3B5bGF1bmNoZXIucmMgYi9QQy9weWxhdW5jaGVyLnJjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmNTgyNGEKLS0tIC9kZXYvbnVsbAorKysgYi9QQy9weWxhdW5jaGVyLnJjCkBAIC0wLDAgKzEsNTEgQEAKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisKKyNkZWZpbmUgTVNfV0lORE9XUworI2luY2x1ZGUgIi4uXEluY2x1ZGVcbW9kc3VwcG9ydC5oIgorI2luY2x1ZGUgIi4uXEluY2x1ZGVccGF0Y2hsZXZlbC5oIgorI2lmZGVmIF9ERUJVRworIyAgIGluY2x1ZGUgInB5dGhvbm50X3JjX2QuaCIKKyNlbHNlCisjICAgaW5jbHVkZSAicHl0aG9ubnRfcmMuaCIKKyNlbmRpZgorCisjZGVmaW5lIFBZVEhPTl9WRVJTSU9OIFBZX1ZFUlNJT04gIlwwIgorI2RlZmluZSBQWVZFUlNJT042NCBQWV9NQUpPUl9WRVJTSU9OLCBQWV9NSU5PUl9WRVJTSU9OLCBGSUVMRDMsIFBZVEhPTl9BUElfVkVSU0lPTgorCitWU19WRVJTSU9OX0lORk8gVkVSU0lPTklORk8KKyBGSUxFVkVSU0lPTiBQWVZFUlNJT042NAorIFBST0RVQ1RWRVJTSU9OIFBZVkVSU0lPTjY0CisgRklMRUZMQUdTTUFTSyAweDE3TAorI2lmZGVmIF9ERUJVRworIEZJTEVGTEFHUyAweDFMCisjZWxzZQorIEZJTEVGTEFHUyAweDBMCisjZW5kaWYKKyBGSUxFT1MgMHg0TAorIEZJTEVUWVBFIDB4MUwKKyBGSUxFU1VCVFlQRSAweDBMCitCRUdJTgorICAgIEJMT0NLICJTdHJpbmdGaWxlSW5mbyIKKyAgICBCRUdJTgorICAgICAgICBCTE9DSyAiMDgwOTA0YjAiCisgICAgICAgIEJFR0lOCisgICAgICAgICAgICBWQUxVRSAiQ29tbWVudHMiLCAiUHl0aG9uIExhdW5jaGVyIGZvciBXaW5kb3dzIgorICAgICAgICAgICAgVkFMVUUgIkNvbXBhbnlOYW1lIiwgIlB5dGhvbiBTb2Z0d2FyZSBGb3VuZGF0aW9uIgorICAgICAgICAgICAgVkFMVUUgIkZpbGVEZXNjcmlwdGlvbiIsICJQeXRob24gTGF1bmNoZXIgZm9yIFdpbmRvd3MgKENvbnNvbGUpIgorICAgICAgICAgICAgVkFMVUUgIkZpbGVWZXJzaW9uIiwgUFlUSE9OX1ZFUlNJT04KKyAgICAgICAgICAgIFZBTFVFICJJbnRlcm5hbE5hbWUiLCAicHkiCisgICAgICAgICAgICBWQUxVRSAiTGVnYWxDb3B5cmlnaHQiLCAiQ29weXJpZ2h0IChDKSAyMDExLTIwMTIgUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24iCisgICAgICAgICAgICBWQUxVRSAiT3JpZ2luYWxGaWxlbmFtZSIsICJweSIKKyAgICAgICAgICAgIFZBTFVFICJQcm9kdWN0TmFtZSIsICJQeXRob24gTGF1bmNoZXIgZm9yIFdpbmRvd3MiCisgICAgICAgICAgICBWQUxVRSAiUHJvZHVjdFZlcnNpb24iLCBQWVRIT05fVkVSU0lPTgorICAgICAgICBFTkQKKyAgICBFTkQKKyAgICBCTE9DSyAiVmFyRmlsZUluZm8iCisgICAgQkVHSU4KKyAgICAgICAgVkFMVUUgIlRyYW5zbGF0aW9uIiwgMHg4MDksIDEyMDAKKyAgICBFTkQKK0VORAorCitJRElfSUNPTjEgICAgICAgICAgICAgICBJQ09OICAgICAgICAgICAgICAgICAgICAibGF1bmNoZXIuaWNvIgorCisKZGlmZiAtLWdpdCBhL1BDL3B5dGhvbjMuZGVmIGIvUEMvcHl0aG9uMy5kZWYKaW5kZXggYTg0NTMzNS4uZDcyNjUyNSAxMDA2NDQKLS0tIGEvUEMvcHl0aG9uMy5kZWYKKysrIGIvUEMvcHl0aG9uMy5kZWYKQEAgLTEsNjg5ICsxLDY5OSBAQAorOyBXaGVuIGNoYW5naW5nIHRoaXMgZmlsZSwgcnVuIHB5dGhvbjMzZ2VuLnB5CiBMSUJSQVJZCSJweXRob24zIgogRVhQT1JUUwotICBQeUFyZ19QYXJzZT1weXRob24zMi5QeUFyZ19QYXJzZQotICBQeUFyZ19QYXJzZVR1cGxlPXB5dGhvbjMyLlB5QXJnX1BhcnNlVHVwbGUKLSAgUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzPXB5dGhvbjMyLlB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcwotICBQeUFyZ19VbnBhY2tUdXBsZT1weXRob24zMi5QeUFyZ19VbnBhY2tUdXBsZQotICBQeUFyZ19WYVBhcnNlPXB5dGhvbjMyLlB5QXJnX1ZhUGFyc2UKLSAgUHlBcmdfVmFQYXJzZVR1cGxlQW5kS2V5d29yZHM9cHl0aG9uMzIuUHlBcmdfVmFQYXJzZVR1cGxlQW5kS2V5d29yZHMKLSAgUHlBcmdfVmFsaWRhdGVLZXl3b3JkQXJndW1lbnRzPXB5dGhvbjMyLlB5QXJnX1ZhbGlkYXRlS2V5d29yZEFyZ3VtZW50cwotICBQeUJhc2VPYmplY3RfVHlwZT1weXRob24zMi5QeUJhc2VPYmplY3RfVHlwZSBEQVRBCi0gIFB5Qm9vbF9Gcm9tTG9uZz1weXRob24zMi5QeUJvb2xfRnJvbUxvbmcKLSAgUHlCb29sX1R5cGU9cHl0aG9uMzIuUHlCb29sX1R5cGUgREFUQQotICBQeUJ5dGVBcnJheUl0ZXJfVHlwZT1weXRob24zMi5QeUJ5dGVBcnJheUl0ZXJfVHlwZSBEQVRBCi0gIFB5Qnl0ZUFycmF5X0FzU3RyaW5nPXB5dGhvbjMyLlB5Qnl0ZUFycmF5X0FzU3RyaW5nCi0gIFB5Qnl0ZUFycmF5X0NvbmNhdD1weXRob24zMi5QeUJ5dGVBcnJheV9Db25jYXQKLSAgUHlCeXRlQXJyYXlfRnJvbU9iamVjdD1weXRob24zMi5QeUJ5dGVBcnJheV9Gcm9tT2JqZWN0Ci0gIFB5Qnl0ZUFycmF5X0Zyb21TdHJpbmdBbmRTaXplPXB5dGhvbjMyLlB5Qnl0ZUFycmF5X0Zyb21TdHJpbmdBbmRTaXplCi0gIFB5Qnl0ZUFycmF5X1Jlc2l6ZT1weXRob24zMi5QeUJ5dGVBcnJheV9SZXNpemUKLSAgUHlCeXRlQXJyYXlfU2l6ZT1weXRob24zMi5QeUJ5dGVBcnJheV9TaXplCi0gIFB5Qnl0ZUFycmF5X1R5cGU9cHl0aG9uMzIuUHlCeXRlQXJyYXlfVHlwZSBEQVRBCi0gIFB5Qnl0ZXNJdGVyX1R5cGU9cHl0aG9uMzIuUHlCeXRlc0l0ZXJfVHlwZSBEQVRBCi0gIFB5Qnl0ZXNfQXNTdHJpbmc9cHl0aG9uMzIuUHlCeXRlc19Bc1N0cmluZwotICBQeUJ5dGVzX0FzU3RyaW5nQW5kU2l6ZT1weXRob24zMi5QeUJ5dGVzX0FzU3RyaW5nQW5kU2l6ZQotICBQeUJ5dGVzX0NvbmNhdD1weXRob24zMi5QeUJ5dGVzX0NvbmNhdAotICBQeUJ5dGVzX0NvbmNhdEFuZERlbD1weXRob24zMi5QeUJ5dGVzX0NvbmNhdEFuZERlbAotICBQeUJ5dGVzX0RlY29kZUVzY2FwZT1weXRob24zMi5QeUJ5dGVzX0RlY29kZUVzY2FwZQotICBQeUJ5dGVzX0Zyb21Gb3JtYXQ9cHl0aG9uMzIuUHlCeXRlc19Gcm9tRm9ybWF0Ci0gIFB5Qnl0ZXNfRnJvbUZvcm1hdFY9cHl0aG9uMzIuUHlCeXRlc19Gcm9tRm9ybWF0VgotICBQeUJ5dGVzX0Zyb21PYmplY3Q9cHl0aG9uMzIuUHlCeXRlc19Gcm9tT2JqZWN0Ci0gIFB5Qnl0ZXNfRnJvbVN0cmluZz1weXRob24zMi5QeUJ5dGVzX0Zyb21TdHJpbmcKLSAgUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZT1weXRob24zMi5QeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplCi0gIFB5Qnl0ZXNfUmVwcj1weXRob24zMi5QeUJ5dGVzX1JlcHIKLSAgUHlCeXRlc19TaXplPXB5dGhvbjMyLlB5Qnl0ZXNfU2l6ZQotICBQeUJ5dGVzX1R5cGU9cHl0aG9uMzIuUHlCeXRlc19UeXBlIERBVEEKLSAgUHlDRnVuY3Rpb25fQ2FsbD1weXRob24zMi5QeUNGdW5jdGlvbl9DYWxsCi0gIFB5Q0Z1bmN0aW9uX0NsZWFyRnJlZUxpc3Q9cHl0aG9uMzIuUHlDRnVuY3Rpb25fQ2xlYXJGcmVlTGlzdAotICBQeUNGdW5jdGlvbl9HZXRGbGFncz1weXRob24zMi5QeUNGdW5jdGlvbl9HZXRGbGFncwotICBQeUNGdW5jdGlvbl9HZXRGdW5jdGlvbj1weXRob24zMi5QeUNGdW5jdGlvbl9HZXRGdW5jdGlvbgotICBQeUNGdW5jdGlvbl9HZXRTZWxmPXB5dGhvbjMyLlB5Q0Z1bmN0aW9uX0dldFNlbGYKLSAgUHlDRnVuY3Rpb25fTmV3RXg9cHl0aG9uMzIuUHlDRnVuY3Rpb25fTmV3RXgKLSAgUHlDRnVuY3Rpb25fVHlwZT1weXRob24zMi5QeUNGdW5jdGlvbl9UeXBlIERBVEEKLSAgUHlDYWxsSXRlcl9OZXc9cHl0aG9uMzIuUHlDYWxsSXRlcl9OZXcKLSAgUHlDYWxsSXRlcl9UeXBlPXB5dGhvbjMyLlB5Q2FsbEl0ZXJfVHlwZSBEQVRBCi0gIFB5Q2FsbGFibGVfQ2hlY2s9cHl0aG9uMzIuUHlDYWxsYWJsZV9DaGVjawotICBQeUNhcHN1bGVfR2V0Q29udGV4dD1weXRob24zMi5QeUNhcHN1bGVfR2V0Q29udGV4dAotICBQeUNhcHN1bGVfR2V0RGVzdHJ1Y3Rvcj1weXRob24zMi5QeUNhcHN1bGVfR2V0RGVzdHJ1Y3RvcgotICBQeUNhcHN1bGVfR2V0TmFtZT1weXRob24zMi5QeUNhcHN1bGVfR2V0TmFtZQotICBQeUNhcHN1bGVfR2V0UG9pbnRlcj1weXRob24zMi5QeUNhcHN1bGVfR2V0UG9pbnRlcgotICBQeUNhcHN1bGVfSW1wb3J0PXB5dGhvbjMyLlB5Q2Fwc3VsZV9JbXBvcnQKLSAgUHlDYXBzdWxlX0lzVmFsaWQ9cHl0aG9uMzIuUHlDYXBzdWxlX0lzVmFsaWQKLSAgUHlDYXBzdWxlX05ldz1weXRob24zMi5QeUNhcHN1bGVfTmV3Ci0gIFB5Q2Fwc3VsZV9TZXRDb250ZXh0PXB5dGhvbjMyLlB5Q2Fwc3VsZV9TZXRDb250ZXh0Ci0gIFB5Q2Fwc3VsZV9TZXREZXN0cnVjdG9yPXB5dGhvbjMyLlB5Q2Fwc3VsZV9TZXREZXN0cnVjdG9yCi0gIFB5Q2Fwc3VsZV9TZXROYW1lPXB5dGhvbjMyLlB5Q2Fwc3VsZV9TZXROYW1lCi0gIFB5Q2Fwc3VsZV9TZXRQb2ludGVyPXB5dGhvbjMyLlB5Q2Fwc3VsZV9TZXRQb2ludGVyCi0gIFB5Q2Fwc3VsZV9UeXBlPXB5dGhvbjMyLlB5Q2Fwc3VsZV9UeXBlIERBVEEKLSAgUHlDbGFzc01ldGhvZERlc2NyX1R5cGU9cHl0aG9uMzIuUHlDbGFzc01ldGhvZERlc2NyX1R5cGUgREFUQQotICBQeUNvZGVjX0JhY2tzbGFzaFJlcGxhY2VFcnJvcnM9cHl0aG9uMzIuUHlDb2RlY19CYWNrc2xhc2hSZXBsYWNlRXJyb3JzCi0gIFB5Q29kZWNfRGVjb2RlPXB5dGhvbjMyLlB5Q29kZWNfRGVjb2RlCi0gIFB5Q29kZWNfRGVjb2Rlcj1weXRob24zMi5QeUNvZGVjX0RlY29kZXIKLSAgUHlDb2RlY19FbmNvZGU9cHl0aG9uMzIuUHlDb2RlY19FbmNvZGUKLSAgUHlDb2RlY19FbmNvZGVyPXB5dGhvbjMyLlB5Q29kZWNfRW5jb2RlcgotICBQeUNvZGVjX0lnbm9yZUVycm9ycz1weXRob24zMi5QeUNvZGVjX0lnbm9yZUVycm9ycwotICBQeUNvZGVjX0luY3JlbWVudGFsRGVjb2Rlcj1weXRob24zMi5QeUNvZGVjX0luY3JlbWVudGFsRGVjb2RlcgotICBQeUNvZGVjX0luY3JlbWVudGFsRW5jb2Rlcj1weXRob24zMi5QeUNvZGVjX0luY3JlbWVudGFsRW5jb2RlcgotICBQeUNvZGVjX0tub3duRW5jb2Rpbmc9cHl0aG9uMzIuUHlDb2RlY19Lbm93bkVuY29kaW5nCi0gIFB5Q29kZWNfTG9va3VwRXJyb3I9cHl0aG9uMzIuUHlDb2RlY19Mb29rdXBFcnJvcgotICBQeUNvZGVjX1JlZ2lzdGVyPXB5dGhvbjMyLlB5Q29kZWNfUmVnaXN0ZXIKLSAgUHlDb2RlY19SZWdpc3RlckVycm9yPXB5dGhvbjMyLlB5Q29kZWNfUmVnaXN0ZXJFcnJvcgotICBQeUNvZGVjX1JlcGxhY2VFcnJvcnM9cHl0aG9uMzIuUHlDb2RlY19SZXBsYWNlRXJyb3JzCi0gIFB5Q29kZWNfU3RyZWFtUmVhZGVyPXB5dGhvbjMyLlB5Q29kZWNfU3RyZWFtUmVhZGVyCi0gIFB5Q29kZWNfU3RyZWFtV3JpdGVyPXB5dGhvbjMyLlB5Q29kZWNfU3RyZWFtV3JpdGVyCi0gIFB5Q29kZWNfU3RyaWN0RXJyb3JzPXB5dGhvbjMyLlB5Q29kZWNfU3RyaWN0RXJyb3JzCi0gIFB5Q29kZWNfWE1MQ2hhclJlZlJlcGxhY2VFcnJvcnM9cHl0aG9uMzIuUHlDb2RlY19YTUxDaGFyUmVmUmVwbGFjZUVycm9ycwotICBQeUNvbXBsZXhfRnJvbURvdWJsZXM9cHl0aG9uMzIuUHlDb21wbGV4X0Zyb21Eb3VibGVzCi0gIFB5Q29tcGxleF9JbWFnQXNEb3VibGU9cHl0aG9uMzIuUHlDb21wbGV4X0ltYWdBc0RvdWJsZQotICBQeUNvbXBsZXhfUmVhbEFzRG91YmxlPXB5dGhvbjMyLlB5Q29tcGxleF9SZWFsQXNEb3VibGUKLSAgUHlDb21wbGV4X1R5cGU9cHl0aG9uMzIuUHlDb21wbGV4X1R5cGUgREFUQQotICBQeURlc2NyX05ld0NsYXNzTWV0aG9kPXB5dGhvbjMyLlB5RGVzY3JfTmV3Q2xhc3NNZXRob2QKLSAgUHlEZXNjcl9OZXdHZXRTZXQ9cHl0aG9uMzIuUHlEZXNjcl9OZXdHZXRTZXQKLSAgUHlEZXNjcl9OZXdNZW1iZXI9cHl0aG9uMzIuUHlEZXNjcl9OZXdNZW1iZXIKLSAgUHlEZXNjcl9OZXdNZXRob2Q9cHl0aG9uMzIuUHlEZXNjcl9OZXdNZXRob2QKLSAgUHlEaWN0SXRlbXNfVHlwZT1weXRob24zMi5QeURpY3RJdGVtc19UeXBlIERBVEEKLSAgUHlEaWN0SXRlckl0ZW1fVHlwZT1weXRob24zMi5QeURpY3RJdGVySXRlbV9UeXBlIERBVEEKLSAgUHlEaWN0SXRlcktleV9UeXBlPXB5dGhvbjMyLlB5RGljdEl0ZXJLZXlfVHlwZSBEQVRBCi0gIFB5RGljdEl0ZXJWYWx1ZV9UeXBlPXB5dGhvbjMyLlB5RGljdEl0ZXJWYWx1ZV9UeXBlIERBVEEKLSAgUHlEaWN0S2V5c19UeXBlPXB5dGhvbjMyLlB5RGljdEtleXNfVHlwZSBEQVRBCi0gIFB5RGljdFByb3h5X05ldz1weXRob24zMi5QeURpY3RQcm94eV9OZXcKLSAgUHlEaWN0UHJveHlfVHlwZT1weXRob24zMi5QeURpY3RQcm94eV9UeXBlIERBVEEKLSAgUHlEaWN0VmFsdWVzX1R5cGU9cHl0aG9uMzIuUHlEaWN0VmFsdWVzX1R5cGUgREFUQQotICBQeURpY3RfQ2xlYXI9cHl0aG9uMzIuUHlEaWN0X0NsZWFyCi0gIFB5RGljdF9Db250YWlucz1weXRob24zMi5QeURpY3RfQ29udGFpbnMKLSAgUHlEaWN0X0NvcHk9cHl0aG9uMzIuUHlEaWN0X0NvcHkKLSAgUHlEaWN0X0RlbEl0ZW09cHl0aG9uMzIuUHlEaWN0X0RlbEl0ZW0KLSAgUHlEaWN0X0RlbEl0ZW1TdHJpbmc9cHl0aG9uMzIuUHlEaWN0X0RlbEl0ZW1TdHJpbmcKLSAgUHlEaWN0X0dldEl0ZW09cHl0aG9uMzIuUHlEaWN0X0dldEl0ZW0KLSAgUHlEaWN0X0dldEl0ZW1TdHJpbmc9cHl0aG9uMzIuUHlEaWN0X0dldEl0ZW1TdHJpbmcKLSAgUHlEaWN0X0dldEl0ZW1XaXRoRXJyb3I9cHl0aG9uMzIuUHlEaWN0X0dldEl0ZW1XaXRoRXJyb3IKLSAgUHlEaWN0X0l0ZW1zPXB5dGhvbjMyLlB5RGljdF9JdGVtcwotICBQeURpY3RfS2V5cz1weXRob24zMi5QeURpY3RfS2V5cwotICBQeURpY3RfTWVyZ2U9cHl0aG9uMzIuUHlEaWN0X01lcmdlCi0gIFB5RGljdF9NZXJnZUZyb21TZXEyPXB5dGhvbjMyLlB5RGljdF9NZXJnZUZyb21TZXEyCi0gIFB5RGljdF9OZXc9cHl0aG9uMzIuUHlEaWN0X05ldwotICBQeURpY3RfTmV4dD1weXRob24zMi5QeURpY3RfTmV4dAotICBQeURpY3RfU2V0SXRlbT1weXRob24zMi5QeURpY3RfU2V0SXRlbQotICBQeURpY3RfU2V0SXRlbVN0cmluZz1weXRob24zMi5QeURpY3RfU2V0SXRlbVN0cmluZwotICBQeURpY3RfU2l6ZT1weXRob24zMi5QeURpY3RfU2l6ZQotICBQeURpY3RfVHlwZT1weXRob24zMi5QeURpY3RfVHlwZSBEQVRBCi0gIFB5RGljdF9VcGRhdGU9cHl0aG9uMzIuUHlEaWN0X1VwZGF0ZQotICBQeURpY3RfVmFsdWVzPXB5dGhvbjMyLlB5RGljdF9WYWx1ZXMKLSAgUHlFbGxpcHNpc19UeXBlPXB5dGhvbjMyLlB5RWxsaXBzaXNfVHlwZSBEQVRBCi0gIFB5RW51bV9UeXBlPXB5dGhvbjMyLlB5RW51bV9UeXBlIERBVEEKLSAgUHlFcnJfQmFkQXJndW1lbnQ9cHl0aG9uMzIuUHlFcnJfQmFkQXJndW1lbnQKLSAgUHlFcnJfQmFkSW50ZXJuYWxDYWxsPXB5dGhvbjMyLlB5RXJyX0JhZEludGVybmFsQ2FsbAotICBQeUVycl9DaGVja1NpZ25hbHM9cHl0aG9uMzIuUHlFcnJfQ2hlY2tTaWduYWxzCi0gIFB5RXJyX0NsZWFyPXB5dGhvbjMyLlB5RXJyX0NsZWFyCi0gIFB5RXJyX0Rpc3BsYXk9cHl0aG9uMzIuUHlFcnJfRGlzcGxheQotICBQeUVycl9FeGNlcHRpb25NYXRjaGVzPXB5dGhvbjMyLlB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMKLSAgUHlFcnJfRmV0Y2g9cHl0aG9uMzIuUHlFcnJfRmV0Y2gKLSAgUHlFcnJfRm9ybWF0PXB5dGhvbjMyLlB5RXJyX0Zvcm1hdAotICBQeUVycl9HaXZlbkV4Y2VwdGlvbk1hdGNoZXM9cHl0aG9uMzIuUHlFcnJfR2l2ZW5FeGNlcHRpb25NYXRjaGVzCi0gIFB5RXJyX05ld0V4Y2VwdGlvbj1weXRob24zMi5QeUVycl9OZXdFeGNlcHRpb24KLSAgUHlFcnJfTmV3RXhjZXB0aW9uV2l0aERvYz1weXRob24zMi5QeUVycl9OZXdFeGNlcHRpb25XaXRoRG9jCi0gIFB5RXJyX05vTWVtb3J5PXB5dGhvbjMyLlB5RXJyX05vTWVtb3J5Ci0gIFB5RXJyX05vcm1hbGl6ZUV4Y2VwdGlvbj1weXRob24zMi5QeUVycl9Ob3JtYWxpemVFeGNlcHRpb24KLSAgUHlFcnJfT2NjdXJyZWQ9cHl0aG9uMzIuUHlFcnJfT2NjdXJyZWQKLSAgUHlFcnJfUHJpbnQ9cHl0aG9uMzIuUHlFcnJfUHJpbnQKLSAgUHlFcnJfUHJpbnRFeD1weXRob24zMi5QeUVycl9QcmludEV4Ci0gIFB5RXJyX1Byb2dyYW1UZXh0PXB5dGhvbjMyLlB5RXJyX1Byb2dyYW1UZXh0Ci0gIFB5RXJyX1Jlc3RvcmU9cHl0aG9uMzIuUHlFcnJfUmVzdG9yZQotICBQeUVycl9TZXRGcm9tRXJybm89cHl0aG9uMzIuUHlFcnJfU2V0RnJvbUVycm5vCi0gIFB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZT1weXRob24zMi5QeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWUKLSAgUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lT2JqZWN0PXB5dGhvbjMyLlB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZU9iamVjdAotICBQeUVycl9TZXRJbnRlcnJ1cHQ9cHl0aG9uMzIuUHlFcnJfU2V0SW50ZXJydXB0Ci0gIFB5RXJyX1NldE5vbmU9cHl0aG9uMzIuUHlFcnJfU2V0Tm9uZQotICBQeUVycl9TZXRPYmplY3Q9cHl0aG9uMzIuUHlFcnJfU2V0T2JqZWN0Ci0gIFB5RXJyX1NldFN0cmluZz1weXRob24zMi5QeUVycl9TZXRTdHJpbmcKLSAgUHlFcnJfU3ludGF4TG9jYXRpb249cHl0aG9uMzIuUHlFcnJfU3ludGF4TG9jYXRpb24KLSAgUHlFcnJfV2FybkV4PXB5dGhvbjMyLlB5RXJyX1dhcm5FeAotICBQeUVycl9XYXJuRXhwbGljaXQ9cHl0aG9uMzIuUHlFcnJfV2FybkV4cGxpY2l0Ci0gIFB5RXJyX1dhcm5Gb3JtYXQ9cHl0aG9uMzIuUHlFcnJfV2FybkZvcm1hdAotICBQeUVycl9Xcml0ZVVucmFpc2FibGU9cHl0aG9uMzIuUHlFcnJfV3JpdGVVbnJhaXNhYmxlCi0gIFB5RXZhbF9BY3F1aXJlTG9jaz1weXRob24zMi5QeUV2YWxfQWNxdWlyZUxvY2sKLSAgUHlFdmFsX0FjcXVpcmVUaHJlYWQ9cHl0aG9uMzIuUHlFdmFsX0FjcXVpcmVUaHJlYWQKLSAgUHlFdmFsX0NhbGxGdW5jdGlvbj1weXRob24zMi5QeUV2YWxfQ2FsbEZ1bmN0aW9uCi0gIFB5RXZhbF9DYWxsTWV0aG9kPXB5dGhvbjMyLlB5RXZhbF9DYWxsTWV0aG9kCi0gIFB5RXZhbF9DYWxsT2JqZWN0V2l0aEtleXdvcmRzPXB5dGhvbjMyLlB5RXZhbF9DYWxsT2JqZWN0V2l0aEtleXdvcmRzCi0gIFB5RXZhbF9FdmFsQ29kZT1weXRob24zMi5QeUV2YWxfRXZhbENvZGUKLSAgUHlFdmFsX0V2YWxDb2RlRXg9cHl0aG9uMzIuUHlFdmFsX0V2YWxDb2RlRXgKLSAgUHlFdmFsX0V2YWxGcmFtZT1weXRob24zMi5QeUV2YWxfRXZhbEZyYW1lCi0gIFB5RXZhbF9FdmFsRnJhbWVFeD1weXRob24zMi5QeUV2YWxfRXZhbEZyYW1lRXgKLSAgUHlFdmFsX0dldEJ1aWx0aW5zPXB5dGhvbjMyLlB5RXZhbF9HZXRCdWlsdGlucwotICBQeUV2YWxfR2V0Q2FsbFN0YXRzPXB5dGhvbjMyLlB5RXZhbF9HZXRDYWxsU3RhdHMKLSAgUHlFdmFsX0dldEZyYW1lPXB5dGhvbjMyLlB5RXZhbF9HZXRGcmFtZQotICBQeUV2YWxfR2V0RnVuY0Rlc2M9cHl0aG9uMzIuUHlFdmFsX0dldEZ1bmNEZXNjCi0gIFB5RXZhbF9HZXRGdW5jTmFtZT1weXRob24zMi5QeUV2YWxfR2V0RnVuY05hbWUKLSAgUHlFdmFsX0dldEdsb2JhbHM9cHl0aG9uMzIuUHlFdmFsX0dldEdsb2JhbHMKLSAgUHlFdmFsX0dldExvY2Fscz1weXRob24zMi5QeUV2YWxfR2V0TG9jYWxzCi0gIFB5RXZhbF9Jbml0VGhyZWFkcz1weXRob24zMi5QeUV2YWxfSW5pdFRocmVhZHMKLSAgUHlFdmFsX1JlSW5pdFRocmVhZHM9cHl0aG9uMzIuUHlFdmFsX1JlSW5pdFRocmVhZHMKLSAgUHlFdmFsX1JlbGVhc2VMb2NrPXB5dGhvbjMyLlB5RXZhbF9SZWxlYXNlTG9jawotICBQeUV2YWxfUmVsZWFzZVRocmVhZD1weXRob24zMi5QeUV2YWxfUmVsZWFzZVRocmVhZAotICBQeUV2YWxfUmVzdG9yZVRocmVhZD1weXRob24zMi5QeUV2YWxfUmVzdG9yZVRocmVhZAotICBQeUV2YWxfU2F2ZVRocmVhZD1weXRob24zMi5QeUV2YWxfU2F2ZVRocmVhZAotICBQeUV2YWxfVGhyZWFkc0luaXRpYWxpemVkPXB5dGhvbjMyLlB5RXZhbF9UaHJlYWRzSW5pdGlhbGl6ZWQKLSAgUHlFeGNfQXJpdGhtZXRpY0Vycm9yPXB5dGhvbjMyLlB5RXhjX0FyaXRobWV0aWNFcnJvciBEQVRBCi0gIFB5RXhjX0Fzc2VydGlvbkVycm9yPXB5dGhvbjMyLlB5RXhjX0Fzc2VydGlvbkVycm9yIERBVEEKLSAgUHlFeGNfQXR0cmlidXRlRXJyb3I9cHl0aG9uMzIuUHlFeGNfQXR0cmlidXRlRXJyb3IgREFUQQotICBQeUV4Y19CYXNlRXhjZXB0aW9uPXB5dGhvbjMyLlB5RXhjX0Jhc2VFeGNlcHRpb24gREFUQQotICBQeUV4Y19CdWZmZXJFcnJvcj1weXRob24zMi5QeUV4Y19CdWZmZXJFcnJvciBEQVRBCi0gIFB5RXhjX0J5dGVzV2FybmluZz1weXRob24zMi5QeUV4Y19CeXRlc1dhcm5pbmcgREFUQQotICBQeUV4Y19EZXByZWNhdGlvbldhcm5pbmc9cHl0aG9uMzIuUHlFeGNfRGVwcmVjYXRpb25XYXJuaW5nIERBVEEKLSAgUHlFeGNfRU9GRXJyb3I9cHl0aG9uMzIuUHlFeGNfRU9GRXJyb3IgREFUQQotICBQeUV4Y19FbnZpcm9ubWVudEVycm9yPXB5dGhvbjMyLlB5RXhjX0Vudmlyb25tZW50RXJyb3IgREFUQQotICBQeUV4Y19FeGNlcHRpb249cHl0aG9uMzIuUHlFeGNfRXhjZXB0aW9uIERBVEEKLSAgUHlFeGNfRmxvYXRpbmdQb2ludEVycm9yPXB5dGhvbjMyLlB5RXhjX0Zsb2F0aW5nUG9pbnRFcnJvciBEQVRBCi0gIFB5RXhjX0Z1dHVyZVdhcm5pbmc9cHl0aG9uMzIuUHlFeGNfRnV0dXJlV2FybmluZyBEQVRBCi0gIFB5RXhjX0dlbmVyYXRvckV4aXQ9cHl0aG9uMzIuUHlFeGNfR2VuZXJhdG9yRXhpdCBEQVRBCi0gIFB5RXhjX0lPRXJyb3I9cHl0aG9uMzIuUHlFeGNfSU9FcnJvciBEQVRBCi0gIFB5RXhjX0ltcG9ydEVycm9yPXB5dGhvbjMyLlB5RXhjX0ltcG9ydEVycm9yIERBVEEKLSAgUHlFeGNfSW1wb3J0V2FybmluZz1weXRob24zMi5QeUV4Y19JbXBvcnRXYXJuaW5nIERBVEEKLSAgUHlFeGNfSW5kZW50YXRpb25FcnJvcj1weXRob24zMi5QeUV4Y19JbmRlbnRhdGlvbkVycm9yIERBVEEKLSAgUHlFeGNfSW5kZXhFcnJvcj1weXRob24zMi5QeUV4Y19JbmRleEVycm9yIERBVEEKLSAgUHlFeGNfS2V5RXJyb3I9cHl0aG9uMzIuUHlFeGNfS2V5RXJyb3IgREFUQQotICBQeUV4Y19LZXlib2FyZEludGVycnVwdD1weXRob24zMi5QeUV4Y19LZXlib2FyZEludGVycnVwdCBEQVRBCi0gIFB5RXhjX0xvb2t1cEVycm9yPXB5dGhvbjMyLlB5RXhjX0xvb2t1cEVycm9yIERBVEEKLSAgUHlFeGNfTWVtb3J5RXJyb3I9cHl0aG9uMzIuUHlFeGNfTWVtb3J5RXJyb3IgREFUQQotICBQeUV4Y19NZW1vcnlFcnJvckluc3Q9cHl0aG9uMzIuUHlFeGNfTWVtb3J5RXJyb3JJbnN0IERBVEEKLSAgUHlFeGNfTmFtZUVycm9yPXB5dGhvbjMyLlB5RXhjX05hbWVFcnJvciBEQVRBCi0gIFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3I9cHl0aG9uMzIuUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvciBEQVRBCi0gIFB5RXhjX09TRXJyb3I9cHl0aG9uMzIuUHlFeGNfT1NFcnJvciBEQVRBCi0gIFB5RXhjX092ZXJmbG93RXJyb3I9cHl0aG9uMzIuUHlFeGNfT3ZlcmZsb3dFcnJvciBEQVRBCi0gIFB5RXhjX1BlbmRpbmdEZXByZWNhdGlvbldhcm5pbmc9cHl0aG9uMzIuUHlFeGNfUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZyBEQVRBCi0gIFB5RXhjX1JlY3Vyc2lvbkVycm9ySW5zdD1weXRob24zMi5QeUV4Y19SZWN1cnNpb25FcnJvckluc3QgREFUQQotICBQeUV4Y19SZWZlcmVuY2VFcnJvcj1weXRob24zMi5QeUV4Y19SZWZlcmVuY2VFcnJvciBEQVRBCi0gIFB5RXhjX1J1bnRpbWVFcnJvcj1weXRob24zMi5QeUV4Y19SdW50aW1lRXJyb3IgREFUQQotICBQeUV4Y19SdW50aW1lV2FybmluZz1weXRob24zMi5QeUV4Y19SdW50aW1lV2FybmluZyBEQVRBCi0gIFB5RXhjX1N0b3BJdGVyYXRpb249cHl0aG9uMzIuUHlFeGNfU3RvcEl0ZXJhdGlvbiBEQVRBCi0gIFB5RXhjX1N5bnRheEVycm9yPXB5dGhvbjMyLlB5RXhjX1N5bnRheEVycm9yIERBVEEKLSAgUHlFeGNfU3ludGF4V2FybmluZz1weXRob24zMi5QeUV4Y19TeW50YXhXYXJuaW5nIERBVEEKLSAgUHlFeGNfU3lzdGVtRXJyb3I9cHl0aG9uMzIuUHlFeGNfU3lzdGVtRXJyb3IgREFUQQotICBQeUV4Y19TeXN0ZW1FeGl0PXB5dGhvbjMyLlB5RXhjX1N5c3RlbUV4aXQgREFUQQotICBQeUV4Y19UYWJFcnJvcj1weXRob24zMi5QeUV4Y19UYWJFcnJvciBEQVRBCi0gIFB5RXhjX1R5cGVFcnJvcj1weXRob24zMi5QeUV4Y19UeXBlRXJyb3IgREFUQQotICBQeUV4Y19VbmJvdW5kTG9jYWxFcnJvcj1weXRob24zMi5QeUV4Y19VbmJvdW5kTG9jYWxFcnJvciBEQVRBCi0gIFB5RXhjX1VuaWNvZGVEZWNvZGVFcnJvcj1weXRob24zMi5QeUV4Y19Vbmljb2RlRGVjb2RlRXJyb3IgREFUQQotICBQeUV4Y19Vbmljb2RlRW5jb2RlRXJyb3I9cHl0aG9uMzIuUHlFeGNfVW5pY29kZUVuY29kZUVycm9yIERBVEEKLSAgUHlFeGNfVW5pY29kZUVycm9yPXB5dGhvbjMyLlB5RXhjX1VuaWNvZGVFcnJvciBEQVRBCi0gIFB5RXhjX1VuaWNvZGVUcmFuc2xhdGVFcnJvcj1weXRob24zMi5QeUV4Y19Vbmljb2RlVHJhbnNsYXRlRXJyb3IgREFUQQotICBQeUV4Y19Vbmljb2RlV2FybmluZz1weXRob24zMi5QeUV4Y19Vbmljb2RlV2FybmluZyBEQVRBCi0gIFB5RXhjX1VzZXJXYXJuaW5nPXB5dGhvbjMyLlB5RXhjX1VzZXJXYXJuaW5nIERBVEEKLSAgUHlFeGNfVmFsdWVFcnJvcj1weXRob24zMi5QeUV4Y19WYWx1ZUVycm9yIERBVEEKLSAgUHlFeGNfV2FybmluZz1weXRob24zMi5QeUV4Y19XYXJuaW5nIERBVEEKLSAgUHlFeGNfWmVyb0RpdmlzaW9uRXJyb3I9cHl0aG9uMzIuUHlFeGNfWmVyb0RpdmlzaW9uRXJyb3IgREFUQQotICBQeUV4Y2VwdGlvbl9HZXRDYXVzZT1weXRob24zMi5QeUV4Y2VwdGlvbl9HZXRDYXVzZQotICBQeUV4Y2VwdGlvbl9HZXRDb250ZXh0PXB5dGhvbjMyLlB5RXhjZXB0aW9uX0dldENvbnRleHQKLSAgUHlFeGNlcHRpb25fR2V0VHJhY2ViYWNrPXB5dGhvbjMyLlB5RXhjZXB0aW9uX0dldFRyYWNlYmFjawotICBQeUV4Y2VwdGlvbl9TZXRDYXVzZT1weXRob24zMi5QeUV4Y2VwdGlvbl9TZXRDYXVzZQotICBQeUV4Y2VwdGlvbl9TZXRDb250ZXh0PXB5dGhvbjMyLlB5RXhjZXB0aW9uX1NldENvbnRleHQKLSAgUHlFeGNlcHRpb25fU2V0VHJhY2ViYWNrPXB5dGhvbjMyLlB5RXhjZXB0aW9uX1NldFRyYWNlYmFjawotICBQeUZpbGVfRnJvbUZkPXB5dGhvbjMyLlB5RmlsZV9Gcm9tRmQKLSAgUHlGaWxlX0dldExpbmU9cHl0aG9uMzIuUHlGaWxlX0dldExpbmUKLSAgUHlGaWxlX1dyaXRlT2JqZWN0PXB5dGhvbjMyLlB5RmlsZV9Xcml0ZU9iamVjdAotICBQeUZpbGVfV3JpdGVTdHJpbmc9cHl0aG9uMzIuUHlGaWxlX1dyaXRlU3RyaW5nCi0gIFB5RmlsdGVyX1R5cGU9cHl0aG9uMzIuUHlGaWx0ZXJfVHlwZSBEQVRBCi0gIFB5RmxvYXRfQXNEb3VibGU9cHl0aG9uMzIuUHlGbG9hdF9Bc0RvdWJsZQotICBQeUZsb2F0X0Zyb21Eb3VibGU9cHl0aG9uMzIuUHlGbG9hdF9Gcm9tRG91YmxlCi0gIFB5RmxvYXRfRnJvbVN0cmluZz1weXRob24zMi5QeUZsb2F0X0Zyb21TdHJpbmcKLSAgUHlGbG9hdF9HZXRJbmZvPXB5dGhvbjMyLlB5RmxvYXRfR2V0SW5mbwotICBQeUZsb2F0X0dldE1heD1weXRob24zMi5QeUZsb2F0X0dldE1heAotICBQeUZsb2F0X0dldE1pbj1weXRob24zMi5QeUZsb2F0X0dldE1pbgotICBQeUZsb2F0X1R5cGU9cHl0aG9uMzIuUHlGbG9hdF9UeXBlIERBVEEKLSAgUHlGcm96ZW5TZXRfTmV3PXB5dGhvbjMyLlB5RnJvemVuU2V0X05ldwotICBQeUZyb3plblNldF9UeXBlPXB5dGhvbjMyLlB5RnJvemVuU2V0X1R5cGUgREFUQQotICBQeUdDX0NvbGxlY3Q9cHl0aG9uMzIuUHlHQ19Db2xsZWN0Ci0gIFB5R0lMU3RhdGVfRW5zdXJlPXB5dGhvbjMyLlB5R0lMU3RhdGVfRW5zdXJlCi0gIFB5R0lMU3RhdGVfR2V0VGhpc1RocmVhZFN0YXRlPXB5dGhvbjMyLlB5R0lMU3RhdGVfR2V0VGhpc1RocmVhZFN0YXRlCi0gIFB5R0lMU3RhdGVfUmVsZWFzZT1weXRob24zMi5QeUdJTFN0YXRlX1JlbGVhc2UKLSAgUHlHZXRTZXREZXNjcl9UeXBlPXB5dGhvbjMyLlB5R2V0U2V0RGVzY3JfVHlwZSBEQVRBCi0gIFB5SW1wb3J0X0FkZE1vZHVsZT1weXRob24zMi5QeUltcG9ydF9BZGRNb2R1bGUKLSAgUHlJbXBvcnRfQXBwZW5kSW5pdHRhYj1weXRob24zMi5QeUltcG9ydF9BcHBlbmRJbml0dGFiCi0gIFB5SW1wb3J0X0NsZWFudXA9cHl0aG9uMzIuUHlJbXBvcnRfQ2xlYW51cAotICBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZT1weXRob24zMi5QeUltcG9ydF9FeGVjQ29kZU1vZHVsZQotICBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZUV4PXB5dGhvbjMyLlB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlRXgKLSAgUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVXaXRoUGF0aG5hbWVzPXB5dGhvbjMyLlB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlV2l0aFBhdGhuYW1lcwotICBQeUltcG9ydF9HZXRJbXBvcnRlcj1weXRob24zMi5QeUltcG9ydF9HZXRJbXBvcnRlcgotICBQeUltcG9ydF9HZXRNYWdpY051bWJlcj1weXRob24zMi5QeUltcG9ydF9HZXRNYWdpY051bWJlcgotICBQeUltcG9ydF9HZXRNYWdpY1RhZz1weXRob24zMi5QeUltcG9ydF9HZXRNYWdpY1RhZwotICBQeUltcG9ydF9HZXRNb2R1bGVEaWN0PXB5dGhvbjMyLlB5SW1wb3J0X0dldE1vZHVsZURpY3QKLSAgUHlJbXBvcnRfSW1wb3J0PXB5dGhvbjMyLlB5SW1wb3J0X0ltcG9ydAotICBQeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGU9cHl0aG9uMzIuUHlJbXBvcnRfSW1wb3J0RnJvemVuTW9kdWxlCi0gIFB5SW1wb3J0X0ltcG9ydE1vZHVsZT1weXRob24zMi5QeUltcG9ydF9JbXBvcnRNb2R1bGUKLSAgUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWw9cHl0aG9uMzIuUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWwKLSAgUHlJbXBvcnRfSW1wb3J0TW9kdWxlTm9CbG9jaz1weXRob24zMi5QeUltcG9ydF9JbXBvcnRNb2R1bGVOb0Jsb2NrCi0gIFB5SW1wb3J0X1JlbG9hZE1vZHVsZT1weXRob24zMi5QeUltcG9ydF9SZWxvYWRNb2R1bGUKLSAgUHlJbnRlcnByZXRlclN0YXRlX0NsZWFyPXB5dGhvbjMyLlB5SW50ZXJwcmV0ZXJTdGF0ZV9DbGVhcgotICBQeUludGVycHJldGVyU3RhdGVfRGVsZXRlPXB5dGhvbjMyLlB5SW50ZXJwcmV0ZXJTdGF0ZV9EZWxldGUKLSAgUHlJbnRlcnByZXRlclN0YXRlX05ldz1weXRob24zMi5QeUludGVycHJldGVyU3RhdGVfTmV3Ci0gIFB5SXRlcl9OZXh0PXB5dGhvbjMyLlB5SXRlcl9OZXh0Ci0gIFB5TGlzdEl0ZXJfVHlwZT1weXRob24zMi5QeUxpc3RJdGVyX1R5cGUgREFUQQotICBQeUxpc3RSZXZJdGVyX1R5cGU9cHl0aG9uMzIuUHlMaXN0UmV2SXRlcl9UeXBlIERBVEEKLSAgUHlMaXN0X0FwcGVuZD1weXRob24zMi5QeUxpc3RfQXBwZW5kCi0gIFB5TGlzdF9Bc1R1cGxlPXB5dGhvbjMyLlB5TGlzdF9Bc1R1cGxlCi0gIFB5TGlzdF9HZXRJdGVtPXB5dGhvbjMyLlB5TGlzdF9HZXRJdGVtCi0gIFB5TGlzdF9HZXRTbGljZT1weXRob24zMi5QeUxpc3RfR2V0U2xpY2UKLSAgUHlMaXN0X0luc2VydD1weXRob24zMi5QeUxpc3RfSW5zZXJ0Ci0gIFB5TGlzdF9OZXc9cHl0aG9uMzIuUHlMaXN0X05ldwotICBQeUxpc3RfUmV2ZXJzZT1weXRob24zMi5QeUxpc3RfUmV2ZXJzZQotICBQeUxpc3RfU2V0SXRlbT1weXRob24zMi5QeUxpc3RfU2V0SXRlbQotICBQeUxpc3RfU2V0U2xpY2U9cHl0aG9uMzIuUHlMaXN0X1NldFNsaWNlCi0gIFB5TGlzdF9TaXplPXB5dGhvbjMyLlB5TGlzdF9TaXplCi0gIFB5TGlzdF9Tb3J0PXB5dGhvbjMyLlB5TGlzdF9Tb3J0Ci0gIFB5TGlzdF9UeXBlPXB5dGhvbjMyLlB5TGlzdF9UeXBlIERBVEEKLSAgUHlMb25nUmFuZ2VJdGVyX1R5cGU9cHl0aG9uMzIuUHlMb25nUmFuZ2VJdGVyX1R5cGUgREFUQQotICBQeUxvbmdfQXNEb3VibGU9cHl0aG9uMzIuUHlMb25nX0FzRG91YmxlCi0gIFB5TG9uZ19Bc0xvbmc9cHl0aG9uMzIuUHlMb25nX0FzTG9uZwotICBQeUxvbmdfQXNMb25nQW5kT3ZlcmZsb3c9cHl0aG9uMzIuUHlMb25nX0FzTG9uZ0FuZE92ZXJmbG93Ci0gIFB5TG9uZ19Bc0xvbmdMb25nPXB5dGhvbjMyLlB5TG9uZ19Bc0xvbmdMb25nCi0gIFB5TG9uZ19Bc0xvbmdMb25nQW5kT3ZlcmZsb3c9cHl0aG9uMzIuUHlMb25nX0FzTG9uZ0xvbmdBbmRPdmVyZmxvdwotICBQeUxvbmdfQXNTaXplX3Q9cHl0aG9uMzIuUHlMb25nX0FzU2l6ZV90Ci0gIFB5TG9uZ19Bc1NzaXplX3Q9cHl0aG9uMzIuUHlMb25nX0FzU3NpemVfdAotICBQeUxvbmdfQXNVbnNpZ25lZExvbmc9cHl0aG9uMzIuUHlMb25nX0FzVW5zaWduZWRMb25nCi0gIFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ0xvbmc9cHl0aG9uMzIuUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZwotICBQeUxvbmdfQXNVbnNpZ25lZExvbmdMb25nTWFzaz1weXRob24zMi5QeUxvbmdfQXNVbnNpZ25lZExvbmdMb25nTWFzawotICBQeUxvbmdfQXNVbnNpZ25lZExvbmdNYXNrPXB5dGhvbjMyLlB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ01hc2sKLSAgUHlMb25nX0FzVm9pZFB0cj1weXRob24zMi5QeUxvbmdfQXNWb2lkUHRyCi0gIFB5TG9uZ19Gcm9tRG91YmxlPXB5dGhvbjMyLlB5TG9uZ19Gcm9tRG91YmxlCi0gIFB5TG9uZ19Gcm9tTG9uZz1weXRob24zMi5QeUxvbmdfRnJvbUxvbmcKLSAgUHlMb25nX0Zyb21Mb25nTG9uZz1weXRob24zMi5QeUxvbmdfRnJvbUxvbmdMb25nCi0gIFB5TG9uZ19Gcm9tU2l6ZV90PXB5dGhvbjMyLlB5TG9uZ19Gcm9tU2l6ZV90Ci0gIFB5TG9uZ19Gcm9tU3NpemVfdD1weXRob24zMi5QeUxvbmdfRnJvbVNzaXplX3QKLSAgUHlMb25nX0Zyb21TdHJpbmc9cHl0aG9uMzIuUHlMb25nX0Zyb21TdHJpbmcKLSAgUHlMb25nX0Zyb21VbnNpZ25lZExvbmc9cHl0aG9uMzIuUHlMb25nX0Zyb21VbnNpZ25lZExvbmcKLSAgUHlMb25nX0Zyb21VbnNpZ25lZExvbmdMb25nPXB5dGhvbjMyLlB5TG9uZ19Gcm9tVW5zaWduZWRMb25nTG9uZwotICBQeUxvbmdfRnJvbVZvaWRQdHI9cHl0aG9uMzIuUHlMb25nX0Zyb21Wb2lkUHRyCi0gIFB5TG9uZ19HZXRJbmZvPXB5dGhvbjMyLlB5TG9uZ19HZXRJbmZvCi0gIFB5TG9uZ19UeXBlPXB5dGhvbjMyLlB5TG9uZ19UeXBlIERBVEEKLSAgUHlNYXBfVHlwZT1weXRob24zMi5QeU1hcF9UeXBlIERBVEEKLSAgUHlNYXBwaW5nX0NoZWNrPXB5dGhvbjMyLlB5TWFwcGluZ19DaGVjawotICBQeU1hcHBpbmdfR2V0SXRlbVN0cmluZz1weXRob24zMi5QeU1hcHBpbmdfR2V0SXRlbVN0cmluZwotICBQeU1hcHBpbmdfSGFzS2V5PXB5dGhvbjMyLlB5TWFwcGluZ19IYXNLZXkKLSAgUHlNYXBwaW5nX0hhc0tleVN0cmluZz1weXRob24zMi5QeU1hcHBpbmdfSGFzS2V5U3RyaW5nCi0gIFB5TWFwcGluZ19JdGVtcz1weXRob24zMi5QeU1hcHBpbmdfSXRlbXMKLSAgUHlNYXBwaW5nX0tleXM9cHl0aG9uMzIuUHlNYXBwaW5nX0tleXMKLSAgUHlNYXBwaW5nX0xlbmd0aD1weXRob24zMi5QeU1hcHBpbmdfTGVuZ3RoCi0gIFB5TWFwcGluZ19TZXRJdGVtU3RyaW5nPXB5dGhvbjMyLlB5TWFwcGluZ19TZXRJdGVtU3RyaW5nCi0gIFB5TWFwcGluZ19TaXplPXB5dGhvbjMyLlB5TWFwcGluZ19TaXplCi0gIFB5TWFwcGluZ19WYWx1ZXM9cHl0aG9uMzIuUHlNYXBwaW5nX1ZhbHVlcwotICBQeU1lbV9GcmVlPXB5dGhvbjMyLlB5TWVtX0ZyZWUKLSAgUHlNZW1fTWFsbG9jPXB5dGhvbjMyLlB5TWVtX01hbGxvYwotICBQeU1lbV9SZWFsbG9jPXB5dGhvbjMyLlB5TWVtX1JlYWxsb2MKLSAgUHlNZW1iZXJEZXNjcl9UeXBlPXB5dGhvbjMyLlB5TWVtYmVyRGVzY3JfVHlwZSBEQVRBCi0gIFB5TWVtb3J5Vmlld19Gcm9tT2JqZWN0PXB5dGhvbjMyLlB5TWVtb3J5Vmlld19Gcm9tT2JqZWN0Ci0gIFB5TWVtb3J5Vmlld19HZXRDb250aWd1b3VzPXB5dGhvbjMyLlB5TWVtb3J5Vmlld19HZXRDb250aWd1b3VzCi0gIFB5TWVtb3J5Vmlld19UeXBlPXB5dGhvbjMyLlB5TWVtb3J5Vmlld19UeXBlIERBVEEKLSAgUHlNZXRob2REZXNjcl9UeXBlPXB5dGhvbjMyLlB5TWV0aG9kRGVzY3JfVHlwZSBEQVRBCi0gIFB5TW9kdWxlX0FkZEludENvbnN0YW50PXB5dGhvbjMyLlB5TW9kdWxlX0FkZEludENvbnN0YW50Ci0gIFB5TW9kdWxlX0FkZE9iamVjdD1weXRob24zMi5QeU1vZHVsZV9BZGRPYmplY3QKLSAgUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQ9cHl0aG9uMzIuUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQKLSAgUHlNb2R1bGVfQ3JlYXRlMj1weXRob24zMi5QeU1vZHVsZV9DcmVhdGUyCi0gIFB5TW9kdWxlX0dldERlZj1weXRob24zMi5QeU1vZHVsZV9HZXREZWYKLSAgUHlNb2R1bGVfR2V0RGljdD1weXRob24zMi5QeU1vZHVsZV9HZXREaWN0Ci0gIFB5TW9kdWxlX0dldEZpbGVuYW1lPXB5dGhvbjMyLlB5TW9kdWxlX0dldEZpbGVuYW1lCi0gIFB5TW9kdWxlX0dldEZpbGVuYW1lT2JqZWN0PXB5dGhvbjMyLlB5TW9kdWxlX0dldEZpbGVuYW1lT2JqZWN0Ci0gIFB5TW9kdWxlX0dldE5hbWU9cHl0aG9uMzIuUHlNb2R1bGVfR2V0TmFtZQotICBQeU1vZHVsZV9HZXRTdGF0ZT1weXRob24zMi5QeU1vZHVsZV9HZXRTdGF0ZQotICBQeU1vZHVsZV9OZXc9cHl0aG9uMzIuUHlNb2R1bGVfTmV3Ci0gIFB5TW9kdWxlX1R5cGU9cHl0aG9uMzIuUHlNb2R1bGVfVHlwZSBEQVRBCi0gIFB5TnVsbEltcG9ydGVyX1R5cGU9cHl0aG9uMzIuUHlOdWxsSW1wb3J0ZXJfVHlwZSBEQVRBCi0gIFB5TnVtYmVyX0Fic29sdXRlPXB5dGhvbjMyLlB5TnVtYmVyX0Fic29sdXRlCi0gIFB5TnVtYmVyX0FkZD1weXRob24zMi5QeU51bWJlcl9BZGQKLSAgUHlOdW1iZXJfQW5kPXB5dGhvbjMyLlB5TnVtYmVyX0FuZAotICBQeU51bWJlcl9Bc1NzaXplX3Q9cHl0aG9uMzIuUHlOdW1iZXJfQXNTc2l6ZV90Ci0gIFB5TnVtYmVyX0NoZWNrPXB5dGhvbjMyLlB5TnVtYmVyX0NoZWNrCi0gIFB5TnVtYmVyX0Rpdm1vZD1weXRob24zMi5QeU51bWJlcl9EaXZtb2QKLSAgUHlOdW1iZXJfRmxvYXQ9cHl0aG9uMzIuUHlOdW1iZXJfRmxvYXQKLSAgUHlOdW1iZXJfRmxvb3JEaXZpZGU9cHl0aG9uMzIuUHlOdW1iZXJfRmxvb3JEaXZpZGUKLSAgUHlOdW1iZXJfSW5QbGFjZUFkZD1weXRob24zMi5QeU51bWJlcl9JblBsYWNlQWRkCi0gIFB5TnVtYmVyX0luUGxhY2VBbmQ9cHl0aG9uMzIuUHlOdW1iZXJfSW5QbGFjZUFuZAotICBQeU51bWJlcl9JblBsYWNlRmxvb3JEaXZpZGU9cHl0aG9uMzIuUHlOdW1iZXJfSW5QbGFjZUZsb29yRGl2aWRlCi0gIFB5TnVtYmVyX0luUGxhY2VMc2hpZnQ9cHl0aG9uMzIuUHlOdW1iZXJfSW5QbGFjZUxzaGlmdAotICBQeU51bWJlcl9JblBsYWNlTXVsdGlwbHk9cHl0aG9uMzIuUHlOdW1iZXJfSW5QbGFjZU11bHRpcGx5Ci0gIFB5TnVtYmVyX0luUGxhY2VPcj1weXRob24zMi5QeU51bWJlcl9JblBsYWNlT3IKLSAgUHlOdW1iZXJfSW5QbGFjZVBvd2VyPXB5dGhvbjMyLlB5TnVtYmVyX0luUGxhY2VQb3dlcgotICBQeU51bWJlcl9JblBsYWNlUmVtYWluZGVyPXB5dGhvbjMyLlB5TnVtYmVyX0luUGxhY2VSZW1haW5kZXIKLSAgUHlOdW1iZXJfSW5QbGFjZVJzaGlmdD1weXRob24zMi5QeU51bWJlcl9JblBsYWNlUnNoaWZ0Ci0gIFB5TnVtYmVyX0luUGxhY2VTdWJ0cmFjdD1weXRob24zMi5QeU51bWJlcl9JblBsYWNlU3VidHJhY3QKLSAgUHlOdW1iZXJfSW5QbGFjZVRydWVEaXZpZGU9cHl0aG9uMzIuUHlOdW1iZXJfSW5QbGFjZVRydWVEaXZpZGUKLSAgUHlOdW1iZXJfSW5QbGFjZVhvcj1weXRob24zMi5QeU51bWJlcl9JblBsYWNlWG9yCi0gIFB5TnVtYmVyX0luZGV4PXB5dGhvbjMyLlB5TnVtYmVyX0luZGV4Ci0gIFB5TnVtYmVyX0ludmVydD1weXRob24zMi5QeU51bWJlcl9JbnZlcnQKLSAgUHlOdW1iZXJfTG9uZz1weXRob24zMi5QeU51bWJlcl9Mb25nCi0gIFB5TnVtYmVyX0xzaGlmdD1weXRob24zMi5QeU51bWJlcl9Mc2hpZnQKLSAgUHlOdW1iZXJfTXVsdGlwbHk9cHl0aG9uMzIuUHlOdW1iZXJfTXVsdGlwbHkKLSAgUHlOdW1iZXJfTmVnYXRpdmU9cHl0aG9uMzIuUHlOdW1iZXJfTmVnYXRpdmUKLSAgUHlOdW1iZXJfT3I9cHl0aG9uMzIuUHlOdW1iZXJfT3IKLSAgUHlOdW1iZXJfUG9zaXRpdmU9cHl0aG9uMzIuUHlOdW1iZXJfUG9zaXRpdmUKLSAgUHlOdW1iZXJfUG93ZXI9cHl0aG9uMzIuUHlOdW1iZXJfUG93ZXIKLSAgUHlOdW1iZXJfUmVtYWluZGVyPXB5dGhvbjMyLlB5TnVtYmVyX1JlbWFpbmRlcgotICBQeU51bWJlcl9Sc2hpZnQ9cHl0aG9uMzIuUHlOdW1iZXJfUnNoaWZ0Ci0gIFB5TnVtYmVyX1N1YnRyYWN0PXB5dGhvbjMyLlB5TnVtYmVyX1N1YnRyYWN0Ci0gIFB5TnVtYmVyX1RvQmFzZT1weXRob24zMi5QeU51bWJlcl9Ub0Jhc2UKLSAgUHlOdW1iZXJfVHJ1ZURpdmlkZT1weXRob24zMi5QeU51bWJlcl9UcnVlRGl2aWRlCi0gIFB5TnVtYmVyX1hvcj1weXRob24zMi5QeU51bWJlcl9Yb3IKLSAgUHlPU19BZnRlckZvcms9cHl0aG9uMzIuUHlPU19BZnRlckZvcmsKLSAgUHlPU19Jbml0SW50ZXJydXB0cz1weXRob24zMi5QeU9TX0luaXRJbnRlcnJ1cHRzCi0gIFB5T1NfSW5wdXRIb29rPXB5dGhvbjMyLlB5T1NfSW5wdXRIb29rIERBVEEKLSAgUHlPU19JbnRlcnJ1cHRPY2N1cnJlZD1weXRob24zMi5QeU9TX0ludGVycnVwdE9jY3VycmVkCi0gIFB5T1NfUmVhZGxpbmVGdW5jdGlvblBvaW50ZXI9cHl0aG9uMzIuUHlPU19SZWFkbGluZUZ1bmN0aW9uUG9pbnRlciBEQVRBCi0gIFB5T1NfZG91YmxlX3RvX3N0cmluZz1weXRob24zMi5QeU9TX2RvdWJsZV90b19zdHJpbmcKLSAgUHlPU19nZXRzaWc9cHl0aG9uMzIuUHlPU19nZXRzaWcKLSAgUHlPU19teXN0cmljbXA9cHl0aG9uMzIuUHlPU19teXN0cmljbXAKLSAgUHlPU19teXN0cm5pY21wPXB5dGhvbjMyLlB5T1NfbXlzdHJuaWNtcAotICBQeU9TX3NldHNpZz1weXRob24zMi5QeU9TX3NldHNpZwotICBQeU9TX3NucHJpbnRmPXB5dGhvbjMyLlB5T1Nfc25wcmludGYKLSAgUHlPU19zdHJpbmdfdG9fZG91YmxlPXB5dGhvbjMyLlB5T1Nfc3RyaW5nX3RvX2RvdWJsZQotICBQeU9TX3N0cnRvbD1weXRob24zMi5QeU9TX3N0cnRvbAotICBQeU9TX3N0cnRvdWw9cHl0aG9uMzIuUHlPU19zdHJ0b3VsCi0gIFB5T1NfdnNucHJpbnRmPXB5dGhvbjMyLlB5T1NfdnNucHJpbnRmCi0gIFB5T2JqZWN0X0FTQ0lJPXB5dGhvbjMyLlB5T2JqZWN0X0FTQ0lJCi0gIFB5T2JqZWN0X0FzQ2hhckJ1ZmZlcj1weXRob24zMi5QeU9iamVjdF9Bc0NoYXJCdWZmZXIKLSAgUHlPYmplY3RfQXNGaWxlRGVzY3JpcHRvcj1weXRob24zMi5QeU9iamVjdF9Bc0ZpbGVEZXNjcmlwdG9yCi0gIFB5T2JqZWN0X0FzUmVhZEJ1ZmZlcj1weXRob24zMi5QeU9iamVjdF9Bc1JlYWRCdWZmZXIKLSAgUHlPYmplY3RfQXNXcml0ZUJ1ZmZlcj1weXRob24zMi5QeU9iamVjdF9Bc1dyaXRlQnVmZmVyCi0gIFB5T2JqZWN0X0J5dGVzPXB5dGhvbjMyLlB5T2JqZWN0X0J5dGVzCi0gIFB5T2JqZWN0X0NhbGw9cHl0aG9uMzIuUHlPYmplY3RfQ2FsbAotICBQeU9iamVjdF9DYWxsRnVuY3Rpb249cHl0aG9uMzIuUHlPYmplY3RfQ2FsbEZ1bmN0aW9uCi0gIFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3M9cHl0aG9uMzIuUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncwotICBQeU9iamVjdF9DYWxsTWV0aG9kPXB5dGhvbjMyLlB5T2JqZWN0X0NhbGxNZXRob2QKLSAgUHlPYmplY3RfQ2FsbE1ldGhvZE9iakFyZ3M9cHl0aG9uMzIuUHlPYmplY3RfQ2FsbE1ldGhvZE9iakFyZ3MKLSAgUHlPYmplY3RfQ2FsbE9iamVjdD1weXRob24zMi5QeU9iamVjdF9DYWxsT2JqZWN0Ci0gIFB5T2JqZWN0X0NoZWNrUmVhZEJ1ZmZlcj1weXRob24zMi5QeU9iamVjdF9DaGVja1JlYWRCdWZmZXIKLSAgUHlPYmplY3RfQ2xlYXJXZWFrUmVmcz1weXRob24zMi5QeU9iamVjdF9DbGVhcldlYWtSZWZzCi0gIFB5T2JqZWN0X0RlbEl0ZW09cHl0aG9uMzIuUHlPYmplY3RfRGVsSXRlbQotICBQeU9iamVjdF9EZWxJdGVtU3RyaW5nPXB5dGhvbjMyLlB5T2JqZWN0X0RlbEl0ZW1TdHJpbmcKLSAgUHlPYmplY3RfRGlyPXB5dGhvbjMyLlB5T2JqZWN0X0RpcgotICBQeU9iamVjdF9Gb3JtYXQ9cHl0aG9uMzIuUHlPYmplY3RfRm9ybWF0Ci0gIFB5T2JqZWN0X0ZyZWU9cHl0aG9uMzIuUHlPYmplY3RfRnJlZQotICBQeU9iamVjdF9HQ19EZWw9cHl0aG9uMzIuUHlPYmplY3RfR0NfRGVsCi0gIFB5T2JqZWN0X0dDX1RyYWNrPXB5dGhvbjMyLlB5T2JqZWN0X0dDX1RyYWNrCi0gIFB5T2JqZWN0X0dDX1VuVHJhY2s9cHl0aG9uMzIuUHlPYmplY3RfR0NfVW5UcmFjawotICBQeU9iamVjdF9HZW5lcmljR2V0QXR0cj1weXRob24zMi5QeU9iamVjdF9HZW5lcmljR2V0QXR0cgotICBQeU9iamVjdF9HZW5lcmljU2V0QXR0cj1weXRob24zMi5QeU9iamVjdF9HZW5lcmljU2V0QXR0cgotICBQeU9iamVjdF9HZXRBdHRyPXB5dGhvbjMyLlB5T2JqZWN0X0dldEF0dHIKLSAgUHlPYmplY3RfR2V0QXR0clN0cmluZz1weXRob24zMi5QeU9iamVjdF9HZXRBdHRyU3RyaW5nCi0gIFB5T2JqZWN0X0dldEl0ZW09cHl0aG9uMzIuUHlPYmplY3RfR2V0SXRlbQotICBQeU9iamVjdF9HZXRJdGVyPXB5dGhvbjMyLlB5T2JqZWN0X0dldEl0ZXIKLSAgUHlPYmplY3RfSGFzQXR0cj1weXRob24zMi5QeU9iamVjdF9IYXNBdHRyCi0gIFB5T2JqZWN0X0hhc0F0dHJTdHJpbmc9cHl0aG9uMzIuUHlPYmplY3RfSGFzQXR0clN0cmluZwotICBQeU9iamVjdF9IYXNoPXB5dGhvbjMyLlB5T2JqZWN0X0hhc2gKLSAgUHlPYmplY3RfSGFzaE5vdEltcGxlbWVudGVkPXB5dGhvbjMyLlB5T2JqZWN0X0hhc2hOb3RJbXBsZW1lbnRlZAotICBQeU9iamVjdF9Jbml0PXB5dGhvbjMyLlB5T2JqZWN0X0luaXQKLSAgUHlPYmplY3RfSW5pdFZhcj1weXRob24zMi5QeU9iamVjdF9Jbml0VmFyCi0gIFB5T2JqZWN0X0lzSW5zdGFuY2U9cHl0aG9uMzIuUHlPYmplY3RfSXNJbnN0YW5jZQotICBQeU9iamVjdF9Jc1N1YmNsYXNzPXB5dGhvbjMyLlB5T2JqZWN0X0lzU3ViY2xhc3MKLSAgUHlPYmplY3RfSXNUcnVlPXB5dGhvbjMyLlB5T2JqZWN0X0lzVHJ1ZQotICBQeU9iamVjdF9MZW5ndGg9cHl0aG9uMzIuUHlPYmplY3RfTGVuZ3RoCi0gIFB5T2JqZWN0X01hbGxvYz1weXRob24zMi5QeU9iamVjdF9NYWxsb2MKLSAgUHlPYmplY3RfTm90PXB5dGhvbjMyLlB5T2JqZWN0X05vdAotICBQeU9iamVjdF9SZWFsbG9jPXB5dGhvbjMyLlB5T2JqZWN0X1JlYWxsb2MKLSAgUHlPYmplY3RfUmVwcj1weXRob24zMi5QeU9iamVjdF9SZXByCi0gIFB5T2JqZWN0X1JpY2hDb21wYXJlPXB5dGhvbjMyLlB5T2JqZWN0X1JpY2hDb21wYXJlCi0gIFB5T2JqZWN0X1JpY2hDb21wYXJlQm9vbD1weXRob24zMi5QeU9iamVjdF9SaWNoQ29tcGFyZUJvb2wKLSAgUHlPYmplY3RfU2VsZkl0ZXI9cHl0aG9uMzIuUHlPYmplY3RfU2VsZkl0ZXIKLSAgUHlPYmplY3RfU2V0QXR0cj1weXRob24zMi5QeU9iamVjdF9TZXRBdHRyCi0gIFB5T2JqZWN0X1NldEF0dHJTdHJpbmc9cHl0aG9uMzIuUHlPYmplY3RfU2V0QXR0clN0cmluZwotICBQeU9iamVjdF9TZXRJdGVtPXB5dGhvbjMyLlB5T2JqZWN0X1NldEl0ZW0KLSAgUHlPYmplY3RfU2l6ZT1weXRob24zMi5QeU9iamVjdF9TaXplCi0gIFB5T2JqZWN0X1N0cj1weXRob24zMi5QeU9iamVjdF9TdHIKLSAgUHlPYmplY3RfVHlwZT1weXRob24zMi5QeU9iamVjdF9UeXBlIERBVEEKLSAgUHlQYXJzZXJfU2ltcGxlUGFyc2VGaWxlRmxhZ3M9cHl0aG9uMzIuUHlQYXJzZXJfU2ltcGxlUGFyc2VGaWxlRmxhZ3MKLSAgUHlQYXJzZXJfU2ltcGxlUGFyc2VTdHJpbmdGbGFncz1weXRob24zMi5QeVBhcnNlcl9TaW1wbGVQYXJzZVN0cmluZ0ZsYWdzCi0gIFB5UHJvcGVydHlfVHlwZT1weXRob24zMi5QeVByb3BlcnR5X1R5cGUgREFUQQotICBQeVJhbmdlSXRlcl9UeXBlPXB5dGhvbjMyLlB5UmFuZ2VJdGVyX1R5cGUgREFUQQotICBQeVJhbmdlX1R5cGU9cHl0aG9uMzIuUHlSYW5nZV9UeXBlIERBVEEKLSAgUHlSZXZlcnNlZF9UeXBlPXB5dGhvbjMyLlB5UmV2ZXJzZWRfVHlwZSBEQVRBCi0gIFB5U2VxSXRlcl9OZXc9cHl0aG9uMzIuUHlTZXFJdGVyX05ldwotICBQeVNlcUl0ZXJfVHlwZT1weXRob24zMi5QeVNlcUl0ZXJfVHlwZSBEQVRBCi0gIFB5U2VxdWVuY2VfQ2hlY2s9cHl0aG9uMzIuUHlTZXF1ZW5jZV9DaGVjawotICBQeVNlcXVlbmNlX0NvbmNhdD1weXRob24zMi5QeVNlcXVlbmNlX0NvbmNhdAotICBQeVNlcXVlbmNlX0NvbnRhaW5zPXB5dGhvbjMyLlB5U2VxdWVuY2VfQ29udGFpbnMKLSAgUHlTZXF1ZW5jZV9Db3VudD1weXRob24zMi5QeVNlcXVlbmNlX0NvdW50Ci0gIFB5U2VxdWVuY2VfRGVsSXRlbT1weXRob24zMi5QeVNlcXVlbmNlX0RlbEl0ZW0KLSAgUHlTZXF1ZW5jZV9EZWxTbGljZT1weXRob24zMi5QeVNlcXVlbmNlX0RlbFNsaWNlCi0gIFB5U2VxdWVuY2VfRmFzdD1weXRob24zMi5QeVNlcXVlbmNlX0Zhc3QKLSAgUHlTZXF1ZW5jZV9HZXRJdGVtPXB5dGhvbjMyLlB5U2VxdWVuY2VfR2V0SXRlbQotICBQeVNlcXVlbmNlX0dldFNsaWNlPXB5dGhvbjMyLlB5U2VxdWVuY2VfR2V0U2xpY2UKLSAgUHlTZXF1ZW5jZV9Jbj1weXRob24zMi5QeVNlcXVlbmNlX0luCi0gIFB5U2VxdWVuY2VfSW5QbGFjZUNvbmNhdD1weXRob24zMi5QeVNlcXVlbmNlX0luUGxhY2VDb25jYXQKLSAgUHlTZXF1ZW5jZV9JblBsYWNlUmVwZWF0PXB5dGhvbjMyLlB5U2VxdWVuY2VfSW5QbGFjZVJlcGVhdAotICBQeVNlcXVlbmNlX0luZGV4PXB5dGhvbjMyLlB5U2VxdWVuY2VfSW5kZXgKLSAgUHlTZXF1ZW5jZV9MZW5ndGg9cHl0aG9uMzIuUHlTZXF1ZW5jZV9MZW5ndGgKLSAgUHlTZXF1ZW5jZV9MaXN0PXB5dGhvbjMyLlB5U2VxdWVuY2VfTGlzdAotICBQeVNlcXVlbmNlX1JlcGVhdD1weXRob24zMi5QeVNlcXVlbmNlX1JlcGVhdAotICBQeVNlcXVlbmNlX1NldEl0ZW09cHl0aG9uMzIuUHlTZXF1ZW5jZV9TZXRJdGVtCi0gIFB5U2VxdWVuY2VfU2V0U2xpY2U9cHl0aG9uMzIuUHlTZXF1ZW5jZV9TZXRTbGljZQotICBQeVNlcXVlbmNlX1NpemU9cHl0aG9uMzIuUHlTZXF1ZW5jZV9TaXplCi0gIFB5U2VxdWVuY2VfVHVwbGU9cHl0aG9uMzIuUHlTZXF1ZW5jZV9UdXBsZQotICBQeVNldEl0ZXJfVHlwZT1weXRob24zMi5QeVNldEl0ZXJfVHlwZSBEQVRBCi0gIFB5U2V0X0FkZD1weXRob24zMi5QeVNldF9BZGQKLSAgUHlTZXRfQ2xlYXI9cHl0aG9uMzIuUHlTZXRfQ2xlYXIKLSAgUHlTZXRfQ29udGFpbnM9cHl0aG9uMzIuUHlTZXRfQ29udGFpbnMKLSAgUHlTZXRfRGlzY2FyZD1weXRob24zMi5QeVNldF9EaXNjYXJkCi0gIFB5U2V0X05ldz1weXRob24zMi5QeVNldF9OZXcKLSAgUHlTZXRfUG9wPXB5dGhvbjMyLlB5U2V0X1BvcAotICBQeVNldF9TaXplPXB5dGhvbjMyLlB5U2V0X1NpemUKLSAgUHlTZXRfVHlwZT1weXRob24zMi5QeVNldF9UeXBlIERBVEEKLSAgUHlTbGljZV9HZXRJbmRpY2VzPXB5dGhvbjMyLlB5U2xpY2VfR2V0SW5kaWNlcwotICBQeVNsaWNlX0dldEluZGljZXNFeD1weXRob24zMi5QeVNsaWNlX0dldEluZGljZXNFeAotICBQeVNsaWNlX05ldz1weXRob24zMi5QeVNsaWNlX05ldwotICBQeVNsaWNlX1R5cGU9cHl0aG9uMzIuUHlTbGljZV9UeXBlIERBVEEKLSAgUHlTb3J0V3JhcHBlcl9UeXBlPXB5dGhvbjMyLlB5U29ydFdyYXBwZXJfVHlwZSBEQVRBCi0gIFB5U3RhdGVfRmluZE1vZHVsZT1weXRob24zMi5QeVN0YXRlX0ZpbmRNb2R1bGUKLSAgUHlTdHJ1Y3RTZXF1ZW5jZV9HZXRJdGVtPXB5dGhvbjMyLlB5U3RydWN0U2VxdWVuY2VfR2V0SXRlbQotICBQeVN0cnVjdFNlcXVlbmNlX05ldz1weXRob24zMi5QeVN0cnVjdFNlcXVlbmNlX05ldwotICBQeVN0cnVjdFNlcXVlbmNlX05ld1R5cGU9cHl0aG9uMzIuUHlTdHJ1Y3RTZXF1ZW5jZV9OZXdUeXBlCi0gIFB5U3RydWN0U2VxdWVuY2VfU2V0SXRlbT1weXRob24zMi5QeVN0cnVjdFNlcXVlbmNlX1NldEl0ZW0KLSAgUHlTdXBlcl9UeXBlPXB5dGhvbjMyLlB5U3VwZXJfVHlwZSBEQVRBCi0gIFB5U3lzX0FkZFdhcm5PcHRpb249cHl0aG9uMzIuUHlTeXNfQWRkV2Fybk9wdGlvbgotICBQeVN5c19BZGRXYXJuT3B0aW9uVW5pY29kZT1weXRob24zMi5QeVN5c19BZGRXYXJuT3B0aW9uVW5pY29kZQotICBQeVN5c19Gb3JtYXRTdGRlcnI9cHl0aG9uMzIuUHlTeXNfRm9ybWF0U3RkZXJyCi0gIFB5U3lzX0Zvcm1hdFN0ZG91dD1weXRob24zMi5QeVN5c19Gb3JtYXRTdGRvdXQKLSAgUHlTeXNfR2V0T2JqZWN0PXB5dGhvbjMyLlB5U3lzX0dldE9iamVjdAotICBQeVN5c19IYXNXYXJuT3B0aW9ucz1weXRob24zMi5QeVN5c19IYXNXYXJuT3B0aW9ucwotICBQeVN5c19SZXNldFdhcm5PcHRpb25zPXB5dGhvbjMyLlB5U3lzX1Jlc2V0V2Fybk9wdGlvbnMKLSAgUHlTeXNfU2V0QXJndj1weXRob24zMi5QeVN5c19TZXRBcmd2Ci0gIFB5U3lzX1NldEFyZ3ZFeD1weXRob24zMi5QeVN5c19TZXRBcmd2RXgKLSAgUHlTeXNfU2V0T2JqZWN0PXB5dGhvbjMyLlB5U3lzX1NldE9iamVjdAotICBQeVN5c19TZXRQYXRoPXB5dGhvbjMyLlB5U3lzX1NldFBhdGgKLSAgUHlTeXNfV3JpdGVTdGRlcnI9cHl0aG9uMzIuUHlTeXNfV3JpdGVTdGRlcnIKLSAgUHlTeXNfV3JpdGVTdGRvdXQ9cHl0aG9uMzIuUHlTeXNfV3JpdGVTdGRvdXQKLSAgUHlUaHJlYWRTdGF0ZV9DbGVhcj1weXRob24zMi5QeVRocmVhZFN0YXRlX0NsZWFyCi0gIFB5VGhyZWFkU3RhdGVfRGVsZXRlPXB5dGhvbjMyLlB5VGhyZWFkU3RhdGVfRGVsZXRlCi0gIFB5VGhyZWFkU3RhdGVfRGVsZXRlQ3VycmVudD1weXRob24zMi5QeVRocmVhZFN0YXRlX0RlbGV0ZUN1cnJlbnQKLSAgUHlUaHJlYWRTdGF0ZV9HZXQ9cHl0aG9uMzIuUHlUaHJlYWRTdGF0ZV9HZXQKLSAgUHlUaHJlYWRTdGF0ZV9HZXREaWN0PXB5dGhvbjMyLlB5VGhyZWFkU3RhdGVfR2V0RGljdAotICBQeVRocmVhZFN0YXRlX05ldz1weXRob24zMi5QeVRocmVhZFN0YXRlX05ldwotICBQeVRocmVhZFN0YXRlX1NldEFzeW5jRXhjPXB5dGhvbjMyLlB5VGhyZWFkU3RhdGVfU2V0QXN5bmNFeGMKLSAgUHlUaHJlYWRTdGF0ZV9Td2FwPXB5dGhvbjMyLlB5VGhyZWFkU3RhdGVfU3dhcAotICBQeVRyYWNlQmFja19IZXJlPXB5dGhvbjMyLlB5VHJhY2VCYWNrX0hlcmUKLSAgUHlUcmFjZUJhY2tfUHJpbnQ9cHl0aG9uMzIuUHlUcmFjZUJhY2tfUHJpbnQKLSAgUHlUcmFjZUJhY2tfVHlwZT1weXRob24zMi5QeVRyYWNlQmFja19UeXBlIERBVEEKLSAgUHlUdXBsZUl0ZXJfVHlwZT1weXRob24zMi5QeVR1cGxlSXRlcl9UeXBlIERBVEEKLSAgUHlUdXBsZV9DbGVhckZyZWVMaXN0PXB5dGhvbjMyLlB5VHVwbGVfQ2xlYXJGcmVlTGlzdAotICBQeVR1cGxlX0dldEl0ZW09cHl0aG9uMzIuUHlUdXBsZV9HZXRJdGVtCi0gIFB5VHVwbGVfR2V0U2xpY2U9cHl0aG9uMzIuUHlUdXBsZV9HZXRTbGljZQotICBQeVR1cGxlX05ldz1weXRob24zMi5QeVR1cGxlX05ldwotICBQeVR1cGxlX1BhY2s9cHl0aG9uMzIuUHlUdXBsZV9QYWNrCi0gIFB5VHVwbGVfU2V0SXRlbT1weXRob24zMi5QeVR1cGxlX1NldEl0ZW0KLSAgUHlUdXBsZV9TaXplPXB5dGhvbjMyLlB5VHVwbGVfU2l6ZQotICBQeVR1cGxlX1R5cGU9cHl0aG9uMzIuUHlUdXBsZV9UeXBlIERBVEEKLSAgUHlUeXBlX0NsZWFyQ2FjaGU9cHl0aG9uMzIuUHlUeXBlX0NsZWFyQ2FjaGUKLSAgUHlUeXBlX0Zyb21TcGVjPXB5dGhvbjMyLlB5VHlwZV9Gcm9tU3BlYwotICBQeVR5cGVfR2VuZXJpY0FsbG9jPXB5dGhvbjMyLlB5VHlwZV9HZW5lcmljQWxsb2MKLSAgUHlUeXBlX0dlbmVyaWNOZXc9cHl0aG9uMzIuUHlUeXBlX0dlbmVyaWNOZXcKLSAgUHlUeXBlX0dldEZsYWdzPXB5dGhvbjMyLlB5VHlwZV9HZXRGbGFncwotICBQeVR5cGVfSXNTdWJ0eXBlPXB5dGhvbjMyLlB5VHlwZV9Jc1N1YnR5cGUKLSAgUHlUeXBlX01vZGlmaWVkPXB5dGhvbjMyLlB5VHlwZV9Nb2RpZmllZAotICBQeVR5cGVfUmVhZHk9cHl0aG9uMzIuUHlUeXBlX1JlYWR5Ci0gIFB5VHlwZV9UeXBlPXB5dGhvbjMyLlB5VHlwZV9UeXBlIERBVEEKLSAgUHlVbmljb2RlRGVjb2RlRXJyb3JfQ3JlYXRlPXB5dGhvbjMyLlB5VW5pY29kZURlY29kZUVycm9yX0NyZWF0ZQotICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRFbmNvZGluZz1weXRob24zMi5QeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRFbmNvZGluZwotICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRFbmQ9cHl0aG9uMzIuUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0RW5kCi0gIFB5VW5pY29kZURlY29kZUVycm9yX0dldE9iamVjdD1weXRob24zMi5QeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRPYmplY3QKLSAgUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0UmVhc29uPXB5dGhvbjMyLlB5VW5pY29kZURlY29kZUVycm9yX0dldFJlYXNvbgotICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRTdGFydD1weXRob24zMi5QeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRTdGFydAotICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9TZXRFbmQ9cHl0aG9uMzIuUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0RW5kCi0gIFB5VW5pY29kZURlY29kZUVycm9yX1NldFJlYXNvbj1weXRob24zMi5QeVVuaWNvZGVEZWNvZGVFcnJvcl9TZXRSZWFzb24KLSAgUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0U3RhcnQ9cHl0aG9uMzIuUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0U3RhcnQKLSAgUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0RW5jb2Rpbmc9cHl0aG9uMzIuUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0RW5jb2RpbmcKLSAgUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0RW5kPXB5dGhvbjMyLlB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuZAotICBQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRPYmplY3Q9cHl0aG9uMzIuUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0T2JqZWN0Ci0gIFB5VW5pY29kZUVuY29kZUVycm9yX0dldFJlYXNvbj1weXRob24zMi5QeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRSZWFzb24KLSAgUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0U3RhcnQ9cHl0aG9uMzIuUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0U3RhcnQKLSAgUHlVbmljb2RlRW5jb2RlRXJyb3JfU2V0RW5kPXB5dGhvbjMyLlB5VW5pY29kZUVuY29kZUVycm9yX1NldEVuZAotICBQeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRSZWFzb249cHl0aG9uMzIuUHlVbmljb2RlRW5jb2RlRXJyb3JfU2V0UmVhc29uCi0gIFB5VW5pY29kZUVuY29kZUVycm9yX1NldFN0YXJ0PXB5dGhvbjMyLlB5VW5pY29kZUVuY29kZUVycm9yX1NldFN0YXJ0Ci0gIFB5VW5pY29kZUl0ZXJfVHlwZT1weXRob24zMi5QeVVuaWNvZGVJdGVyX1R5cGUgREFUQQotICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRFbmQ9cHl0aG9uMzIuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0RW5kCi0gIFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0dldE9iamVjdD1weXRob24zMi5QeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRPYmplY3QKLSAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0UmVhc29uPXB5dGhvbjMyLlB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0dldFJlYXNvbgotICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRTdGFydD1weXRob24zMi5QeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRTdGFydAotICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9TZXRFbmQ9cHl0aG9uMzIuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0RW5kCi0gIFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX1NldFJlYXNvbj1weXRob24zMi5QeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9TZXRSZWFzb24KLSAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0U3RhcnQ9cHl0aG9uMzIuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0U3RhcnQKLSAgUHlVbmljb2RlX0FwcGVuZD1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0FwcGVuZAotICBQeVVuaWNvZGVfQXBwZW5kQW5kRGVsPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfQXBwZW5kQW5kRGVsCi0gIFB5VW5pY29kZV9Bc0FTQ0lJU3RyaW5nPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfQXNBU0NJSVN0cmluZwotICBQeVVuaWNvZGVfQXNDaGFybWFwU3RyaW5nPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfQXNDaGFybWFwU3RyaW5nCi0gIFB5VW5pY29kZV9Bc0RlY29kZWRPYmplY3Q9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9Bc0RlY29kZWRPYmplY3QKLSAgUHlVbmljb2RlX0FzRGVjb2RlZFVuaWNvZGU9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9Bc0RlY29kZWRVbmljb2RlCi0gIFB5VW5pY29kZV9Bc0VuY29kZWRPYmplY3Q9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9Bc0VuY29kZWRPYmplY3QKLSAgUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZz1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0FzRW5jb2RlZFN0cmluZwotICBQeVVuaWNvZGVfQXNFbmNvZGVkVW5pY29kZT1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0FzRW5jb2RlZFVuaWNvZGUKLSAgUHlVbmljb2RlX0FzTGF0aW4xU3RyaW5nPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfQXNMYXRpbjFTdHJpbmcKLSAgUHlVbmljb2RlX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZz1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0FzUmF3VW5pY29kZUVzY2FwZVN0cmluZwotICBQeVVuaWNvZGVfQXNVVEYxNlN0cmluZz1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0FzVVRGMTZTdHJpbmcKLSAgUHlVbmljb2RlX0FzVVRGMzJTdHJpbmc9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9Bc1VURjMyU3RyaW5nCi0gIFB5VW5pY29kZV9Bc1VURjhTdHJpbmc9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9Bc1VURjhTdHJpbmcKLSAgUHlVbmljb2RlX0FzVW5pY29kZUVzY2FwZVN0cmluZz1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0FzVW5pY29kZUVzY2FwZVN0cmluZwotICBQeVVuaWNvZGVfQXNXaWRlQ2hhcj1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0FzV2lkZUNoYXIKLSAgUHlVbmljb2RlX0NsZWFyRnJlZWxpc3Q9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9DbGVhckZyZWVsaXN0Ci0gIFB5VW5pY29kZV9Db21wYXJlPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfQ29tcGFyZQotICBQeVVuaWNvZGVfQ29uY2F0PXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfQ29uY2F0Ci0gIFB5VW5pY29kZV9Db250YWlucz1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0NvbnRhaW5zCi0gIFB5VW5pY29kZV9Db3VudD1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0NvdW50Ci0gIFB5VW5pY29kZV9EZWNvZGU9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGUKLSAgUHlVbmljb2RlX0RlY29kZUFTQ0lJPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfRGVjb2RlQVNDSUkKLSAgUHlVbmljb2RlX0RlY29kZUNoYXJtYXA9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGVDaGFybWFwCi0gIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQ9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGVGU0RlZmF1bHQKLSAgUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdEFuZFNpemU9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGVGU0RlZmF1bHRBbmRTaXplCi0gIFB5VW5pY29kZV9EZWNvZGVMYXRpbjE9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGVMYXRpbjEKLSAgUHlVbmljb2RlX0RlY29kZVJhd1VuaWNvZGVFc2NhcGU9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGVSYXdVbmljb2RlRXNjYXBlCi0gIFB5VW5pY29kZV9EZWNvZGVVVEYxNj1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0RlY29kZVVURjE2Ci0gIFB5VW5pY29kZV9EZWNvZGVVVEYxNlN0YXRlZnVsPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfRGVjb2RlVVRGMTZTdGF0ZWZ1bAotICBQeVVuaWNvZGVfRGVjb2RlVVRGMzI9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYzMgotICBQeVVuaWNvZGVfRGVjb2RlVVRGMzJTdGF0ZWZ1bD1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0RlY29kZVVURjMyU3RhdGVmdWwKLSAgUHlVbmljb2RlX0RlY29kZVVURjg9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEY4Ci0gIFB5VW5pY29kZV9EZWNvZGVVVEY4U3RhdGVmdWw9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEY4U3RhdGVmdWwKLSAgUHlVbmljb2RlX0RlY29kZVVuaWNvZGVFc2NhcGU9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9EZWNvZGVVbmljb2RlRXNjYXBlCi0gIFB5VW5pY29kZV9GU0NvbnZlcnRlcj1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0ZTQ29udmVydGVyCi0gIFB5VW5pY29kZV9GU0RlY29kZXI9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9GU0RlY29kZXIKLSAgUHlVbmljb2RlX0ZpbmQ9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9GaW5kCi0gIFB5VW5pY29kZV9Gb3JtYXQ9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9Gb3JtYXQKLSAgUHlVbmljb2RlX0Zyb21FbmNvZGVkT2JqZWN0PXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfRnJvbUVuY29kZWRPYmplY3QKLSAgUHlVbmljb2RlX0Zyb21Gb3JtYXQ9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9Gcm9tRm9ybWF0Ci0gIFB5VW5pY29kZV9Gcm9tRm9ybWF0Vj1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0Zyb21Gb3JtYXRWCi0gIFB5VW5pY29kZV9Gcm9tT2JqZWN0PXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfRnJvbU9iamVjdAotICBQeVVuaWNvZGVfRnJvbU9yZGluYWw9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9Gcm9tT3JkaW5hbAotICBQeVVuaWNvZGVfRnJvbVN0cmluZz1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0Zyb21TdHJpbmcKLSAgUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfRnJvbVN0cmluZ0FuZFNpemUKLSAgUHlVbmljb2RlX0Zyb21XaWRlQ2hhcj1weXRob24zMi5QeVVuaWNvZGVVQ1MyX0Zyb21XaWRlQ2hhcgotICBQeVVuaWNvZGVfR2V0RGVmYXVsdEVuY29kaW5nPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfR2V0RGVmYXVsdEVuY29kaW5nCi0gIFB5VW5pY29kZV9HZXRTaXplPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfR2V0U2l6ZQotICBQeVVuaWNvZGVfSXNJZGVudGlmaWVyPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfSXNJZGVudGlmaWVyCi0gIFB5VW5pY29kZV9Kb2luPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfSm9pbgotICBQeVVuaWNvZGVfUGFydGl0aW9uPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfUGFydGl0aW9uCi0gIFB5VW5pY29kZV9SUGFydGl0aW9uPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfUlBhcnRpdGlvbgotICBQeVVuaWNvZGVfUlNwbGl0PXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfUlNwbGl0Ci0gIFB5VW5pY29kZV9SZXBsYWNlPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfUmVwbGFjZQotICBQeVVuaWNvZGVfUmVzaXplPXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfUmVzaXplCi0gIFB5VW5pY29kZV9SaWNoQ29tcGFyZT1weXRob24zMi5QeVVuaWNvZGVVQ1MyX1JpY2hDb21wYXJlCi0gIFB5VW5pY29kZV9TZXREZWZhdWx0RW5jb2Rpbmc9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9TZXREZWZhdWx0RW5jb2RpbmcKLSAgUHlVbmljb2RlX1NwbGl0PXB5dGhvbjMyLlB5VW5pY29kZVVDUzJfU3BsaXQKLSAgUHlVbmljb2RlX1NwbGl0bGluZXM9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9TcGxpdGxpbmVzCi0gIFB5VW5pY29kZV9UYWlsbWF0Y2g9cHl0aG9uMzIuUHlVbmljb2RlVUNTMl9UYWlsbWF0Y2gKLSAgUHlVbmljb2RlX1RyYW5zbGF0ZT1weXRob24zMi5QeVVuaWNvZGVVQ1MyX1RyYW5zbGF0ZQotICBQeVVuaWNvZGVfQnVpbGRFbmNvZGluZ01hcD1weXRob24zMi5QeVVuaWNvZGVfQnVpbGRFbmNvZGluZ01hcAotICBQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZz1weXRob24zMi5QeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZwotICBQeVVuaWNvZGVfRGVjb2RlVVRGNz1weXRob24zMi5QeVVuaWNvZGVfRGVjb2RlVVRGNwotICBQeVVuaWNvZGVfRGVjb2RlVVRGN1N0YXRlZnVsPXB5dGhvbjMyLlB5VW5pY29kZV9EZWNvZGVVVEY3U3RhdGVmdWwKLSAgUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdD1weXRob24zMi5QeVVuaWNvZGVfRW5jb2RlRlNEZWZhdWx0Ci0gIFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nPXB5dGhvbjMyLlB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nCi0gIFB5VW5pY29kZV9JbnRlcm5JbW1vcnRhbD1weXRob24zMi5QeVVuaWNvZGVfSW50ZXJuSW1tb3J0YWwKLSAgUHlVbmljb2RlX0ludGVybkluUGxhY2U9cHl0aG9uMzIuUHlVbmljb2RlX0ludGVybkluUGxhY2UKLSAgUHlVbmljb2RlX1R5cGU9cHl0aG9uMzIuUHlVbmljb2RlX1R5cGUgREFUQQotICBQeVdlYWtyZWZfR2V0T2JqZWN0PXB5dGhvbjMyLlB5V2Vha3JlZl9HZXRPYmplY3QgREFUQQotICBQeVdlYWtyZWZfTmV3UHJveHk9cHl0aG9uMzIuUHlXZWFrcmVmX05ld1Byb3h5Ci0gIFB5V2Vha3JlZl9OZXdSZWY9cHl0aG9uMzIuUHlXZWFrcmVmX05ld1JlZgotICBQeVdyYXBwZXJEZXNjcl9UeXBlPXB5dGhvbjMyLlB5V3JhcHBlckRlc2NyX1R5cGUgREFUQQotICBQeVdyYXBwZXJfTmV3PXB5dGhvbjMyLlB5V3JhcHBlcl9OZXcKLSAgUHlaaXBfVHlwZT1weXRob24zMi5QeVppcF9UeXBlIERBVEEKLSAgUHlfQWRkUGVuZGluZ0NhbGw9cHl0aG9uMzIuUHlfQWRkUGVuZGluZ0NhbGwKLSAgUHlfQXRFeGl0PXB5dGhvbjMyLlB5X0F0RXhpdAotICBQeV9CdWlsZFZhbHVlPXB5dGhvbjMyLlB5X0J1aWxkVmFsdWUKLSAgUHlfQ29tcGlsZVN0cmluZz1weXRob24zMi5QeV9Db21waWxlU3RyaW5nCi0gIFB5X0RlY1JlZj1weXRob24zMi5QeV9EZWNSZWYKLSAgUHlfRW5kSW50ZXJwcmV0ZXI9cHl0aG9uMzIuUHlfRW5kSW50ZXJwcmV0ZXIKLSAgUHlfRXhpdD1weXRob24zMi5QeV9FeGl0Ci0gIFB5X0ZhdGFsRXJyb3I9cHl0aG9uMzIuUHlfRmF0YWxFcnJvcgotICBQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nPXB5dGhvbjMyLlB5X0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcgREFUQQotICBQeV9GaW5hbGl6ZT1weXRob24zMi5QeV9GaW5hbGl6ZQotICBQeV9HZXRCdWlsZEluZm89cHl0aG9uMzIuUHlfR2V0QnVpbGRJbmZvCi0gIFB5X0dldENvbXBpbGVyPXB5dGhvbjMyLlB5X0dldENvbXBpbGVyCi0gIFB5X0dldENvcHlyaWdodD1weXRob24zMi5QeV9HZXRDb3B5cmlnaHQKLSAgUHlfR2V0RXhlY1ByZWZpeD1weXRob24zMi5QeV9HZXRFeGVjUHJlZml4Ci0gIFB5X0dldFBhdGg9cHl0aG9uMzIuUHlfR2V0UGF0aAotICBQeV9HZXRQbGF0Zm9ybT1weXRob24zMi5QeV9HZXRQbGF0Zm9ybQotICBQeV9HZXRQcmVmaXg9cHl0aG9uMzIuUHlfR2V0UHJlZml4Ci0gIFB5X0dldFByb2dyYW1GdWxsUGF0aD1weXRob24zMi5QeV9HZXRQcm9ncmFtRnVsbFBhdGgKLSAgUHlfR2V0UHJvZ3JhbU5hbWU9cHl0aG9uMzIuUHlfR2V0UHJvZ3JhbU5hbWUKLSAgUHlfR2V0UHl0aG9uSG9tZT1weXRob24zMi5QeV9HZXRQeXRob25Ib21lCi0gIFB5X0dldFJlY3Vyc2lvbkxpbWl0PXB5dGhvbjMyLlB5X0dldFJlY3Vyc2lvbkxpbWl0Ci0gIFB5X0dldFZlcnNpb249cHl0aG9uMzIuUHlfR2V0VmVyc2lvbgotICBQeV9IYXNGaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nPXB5dGhvbjMyLlB5X0hhc0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcgREFUQQotICBQeV9JbmNSZWY9cHl0aG9uMzIuUHlfSW5jUmVmCi0gIFB5X0luaXRpYWxpemU9cHl0aG9uMzIuUHlfSW5pdGlhbGl6ZQotICBQeV9Jbml0aWFsaXplRXg9cHl0aG9uMzIuUHlfSW5pdGlhbGl6ZUV4Ci0gIFB5X0lzSW5pdGlhbGl6ZWQ9cHl0aG9uMzIuUHlfSXNJbml0aWFsaXplZAotICBQeV9NYWluPXB5dGhvbjMyLlB5X01haW4KLSAgUHlfTWFrZVBlbmRpbmdDYWxscz1weXRob24zMi5QeV9NYWtlUGVuZGluZ0NhbGxzCi0gIFB5X05ld0ludGVycHJldGVyPXB5dGhvbjMyLlB5X05ld0ludGVycHJldGVyCi0gIFB5X1JlcHJFbnRlcj1weXRob24zMi5QeV9SZXByRW50ZXIKLSAgUHlfUmVwckxlYXZlPXB5dGhvbjMyLlB5X1JlcHJMZWF2ZQotICBQeV9TZXRQcm9ncmFtTmFtZT1weXRob24zMi5QeV9TZXRQcm9ncmFtTmFtZQotICBQeV9TZXRQeXRob25Ib21lPXB5dGhvbjMyLlB5X1NldFB5dGhvbkhvbWUKLSAgUHlfU2V0UmVjdXJzaW9uTGltaXQ9cHl0aG9uMzIuUHlfU2V0UmVjdXJzaW9uTGltaXQKLSAgUHlfU3ltdGFibGVTdHJpbmc9cHl0aG9uMzIuUHlfU3ltdGFibGVTdHJpbmcKLSAgUHlfVmFCdWlsZFZhbHVlPXB5dGhvbjMyLlB5X1ZhQnVpbGRWYWx1ZQotICBfUHlFcnJfQmFkSW50ZXJuYWxDYWxsPXB5dGhvbjMyLl9QeUVycl9CYWRJbnRlcm5hbENhbGwKLSAgX1B5T2JqZWN0X0NhbGxGdW5jdGlvbl9TaXplVD1weXRob24zMi5fUHlPYmplY3RfQ2FsbEZ1bmN0aW9uX1NpemVUCi0gIF9QeU9iamVjdF9DYWxsTWV0aG9kX1NpemVUPXB5dGhvbjMyLl9QeU9iamVjdF9DYWxsTWV0aG9kX1NpemVUCi0gIF9QeU9iamVjdF9HQ19NYWxsb2M9cHl0aG9uMzIuX1B5T2JqZWN0X0dDX01hbGxvYwotICBfUHlPYmplY3RfR0NfTmV3PXB5dGhvbjMyLl9QeU9iamVjdF9HQ19OZXcKLSAgX1B5T2JqZWN0X0dDX05ld1Zhcj1weXRob24zMi5fUHlPYmplY3RfR0NfTmV3VmFyCi0gIF9QeU9iamVjdF9HQ19SZXNpemU9cHl0aG9uMzIuX1B5T2JqZWN0X0dDX1Jlc2l6ZQotICBfUHlPYmplY3RfTmV3PXB5dGhvbjMyLl9QeU9iamVjdF9OZXcKLSAgX1B5T2JqZWN0X05ld1Zhcj1weXRob24zMi5fUHlPYmplY3RfTmV3VmFyCi0gIF9QeVN0YXRlX0FkZE1vZHVsZT1weXRob24zMi5fUHlTdGF0ZV9BZGRNb2R1bGUKLSAgX1B5VGhyZWFkU3RhdGVfSW5pdD1weXRob24zMi5fUHlUaHJlYWRTdGF0ZV9Jbml0Ci0gIF9QeVRocmVhZFN0YXRlX1ByZWFsbG9jPXB5dGhvbjMyLl9QeVRocmVhZFN0YXRlX1ByZWFsbG9jCi0gIF9QeVRyYXNoX2RlbGV0ZV9sYXRlcj1weXRob24zMi5fUHlUcmFzaF9kZWxldGVfbGF0ZXIgREFUQQotICBfUHlUcmFzaF9kZWxldGVfbmVzdGluZz1weXRob24zMi5fUHlUcmFzaF9kZWxldGVfbmVzdGluZyBEQVRBCi0gIF9QeVRyYXNoX2RlcG9zaXRfb2JqZWN0PXB5dGhvbjMyLl9QeVRyYXNoX2RlcG9zaXRfb2JqZWN0Ci0gIF9QeVRyYXNoX2Rlc3Ryb3lfY2hhaW49cHl0aG9uMzIuX1B5VHJhc2hfZGVzdHJveV9jaGFpbgotICBfUHlXZWFrcmVmX0NhbGxhYmxlUHJveHlUeXBlPXB5dGhvbjMyLl9QeVdlYWtyZWZfQ2FsbGFibGVQcm94eVR5cGUgREFUQQotICBfUHlXZWFrcmVmX1Byb3h5VHlwZT1weXRob24zMi5fUHlXZWFrcmVmX1Byb3h5VHlwZSBEQVRBCi0gIF9QeVdlYWtyZWZfUmVmVHlwZT1weXRob24zMi5fUHlXZWFrcmVmX1JlZlR5cGUgREFUQQotICBfUHlfQnVpbGRWYWx1ZV9TaXplVD1weXRob24zMi5fUHlfQnVpbGRWYWx1ZV9TaXplVAotICBfUHlfQ2hlY2tSZWN1cnNpb25MaW1pdD1weXRob24zMi5fUHlfQ2hlY2tSZWN1cnNpb25MaW1pdCBEQVRBCi0gIF9QeV9DaGVja1JlY3Vyc2l2ZUNhbGw9cHl0aG9uMzIuX1B5X0NoZWNrUmVjdXJzaXZlQ2FsbAotICBfUHlfRGVhbGxvYz1weXRob24zMi5fUHlfRGVhbGxvYwotICBfUHlfRWxsaXBzaXNPYmplY3Q9cHl0aG9uMzIuX1B5X0VsbGlwc2lzT2JqZWN0IERBVEEKLSAgX1B5X0ZhbHNlU3RydWN0PXB5dGhvbjMyLl9QeV9GYWxzZVN0cnVjdCBEQVRBCi0gIF9QeV9Ob25lU3RydWN0PXB5dGhvbjMyLl9QeV9Ob25lU3RydWN0IERBVEEKLSAgX1B5X05vdEltcGxlbWVudGVkU3RydWN0PXB5dGhvbjMyLl9QeV9Ob3RJbXBsZW1lbnRlZFN0cnVjdCBEQVRBCi0gIF9QeV9Td2FwcGVkT3A9cHl0aG9uMzIuX1B5X1N3YXBwZWRPcCBEQVRBCi0gIF9QeV9UcnVlU3RydWN0PXB5dGhvbjMyLl9QeV9UcnVlU3RydWN0IERBVEEKLSAgX1B5X1ZhQnVpbGRWYWx1ZV9TaXplVD1weXRob24zMi5fUHlfVmFCdWlsZFZhbHVlX1NpemVUCisgIFB5QXJnX1BhcnNlPXB5dGhvbjMzLlB5QXJnX1BhcnNlCisgIFB5QXJnX1BhcnNlVHVwbGU9cHl0aG9uMzMuUHlBcmdfUGFyc2VUdXBsZQorICBQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHM9cHl0aG9uMzMuUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzCisgIFB5QXJnX1VucGFja1R1cGxlPXB5dGhvbjMzLlB5QXJnX1VucGFja1R1cGxlCisgIFB5QXJnX1ZhUGFyc2U9cHl0aG9uMzMuUHlBcmdfVmFQYXJzZQorICBQeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3Jkcz1weXRob24zMy5QeUFyZ19WYVBhcnNlVHVwbGVBbmRLZXl3b3JkcworICBQeUFyZ19WYWxpZGF0ZUtleXdvcmRBcmd1bWVudHM9cHl0aG9uMzMuUHlBcmdfVmFsaWRhdGVLZXl3b3JkQXJndW1lbnRzCisgIFB5QmFzZU9iamVjdF9UeXBlPXB5dGhvbjMzLlB5QmFzZU9iamVjdF9UeXBlIERBVEEKKyAgUHlCb29sX0Zyb21Mb25nPXB5dGhvbjMzLlB5Qm9vbF9Gcm9tTG9uZworICBQeUJvb2xfVHlwZT1weXRob24zMy5QeUJvb2xfVHlwZSBEQVRBCisgIFB5Qnl0ZUFycmF5SXRlcl9UeXBlPXB5dGhvbjMzLlB5Qnl0ZUFycmF5SXRlcl9UeXBlIERBVEEKKyAgUHlCeXRlQXJyYXlfQXNTdHJpbmc9cHl0aG9uMzMuUHlCeXRlQXJyYXlfQXNTdHJpbmcKKyAgUHlCeXRlQXJyYXlfQ29uY2F0PXB5dGhvbjMzLlB5Qnl0ZUFycmF5X0NvbmNhdAorICBQeUJ5dGVBcnJheV9Gcm9tT2JqZWN0PXB5dGhvbjMzLlB5Qnl0ZUFycmF5X0Zyb21PYmplY3QKKyAgUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemU9cHl0aG9uMzMuUHlCeXRlQXJyYXlfRnJvbVN0cmluZ0FuZFNpemUKKyAgUHlCeXRlQXJyYXlfUmVzaXplPXB5dGhvbjMzLlB5Qnl0ZUFycmF5X1Jlc2l6ZQorICBQeUJ5dGVBcnJheV9TaXplPXB5dGhvbjMzLlB5Qnl0ZUFycmF5X1NpemUKKyAgUHlCeXRlQXJyYXlfVHlwZT1weXRob24zMy5QeUJ5dGVBcnJheV9UeXBlIERBVEEKKyAgUHlCeXRlc0l0ZXJfVHlwZT1weXRob24zMy5QeUJ5dGVzSXRlcl9UeXBlIERBVEEKKyAgUHlCeXRlc19Bc1N0cmluZz1weXRob24zMy5QeUJ5dGVzX0FzU3RyaW5nCisgIFB5Qnl0ZXNfQXNTdHJpbmdBbmRTaXplPXB5dGhvbjMzLlB5Qnl0ZXNfQXNTdHJpbmdBbmRTaXplCisgIFB5Qnl0ZXNfQ29uY2F0PXB5dGhvbjMzLlB5Qnl0ZXNfQ29uY2F0CisgIFB5Qnl0ZXNfQ29uY2F0QW5kRGVsPXB5dGhvbjMzLlB5Qnl0ZXNfQ29uY2F0QW5kRGVsCisgIFB5Qnl0ZXNfRGVjb2RlRXNjYXBlPXB5dGhvbjMzLlB5Qnl0ZXNfRGVjb2RlRXNjYXBlCisgIFB5Qnl0ZXNfRnJvbUZvcm1hdD1weXRob24zMy5QeUJ5dGVzX0Zyb21Gb3JtYXQKKyAgUHlCeXRlc19Gcm9tRm9ybWF0Vj1weXRob24zMy5QeUJ5dGVzX0Zyb21Gb3JtYXRWCisgIFB5Qnl0ZXNfRnJvbU9iamVjdD1weXRob24zMy5QeUJ5dGVzX0Zyb21PYmplY3QKKyAgUHlCeXRlc19Gcm9tU3RyaW5nPXB5dGhvbjMzLlB5Qnl0ZXNfRnJvbVN0cmluZworICBQeUJ5dGVzX0Zyb21TdHJpbmdBbmRTaXplPXB5dGhvbjMzLlB5Qnl0ZXNfRnJvbVN0cmluZ0FuZFNpemUKKyAgUHlCeXRlc19SZXByPXB5dGhvbjMzLlB5Qnl0ZXNfUmVwcgorICBQeUJ5dGVzX1NpemU9cHl0aG9uMzMuUHlCeXRlc19TaXplCisgIFB5Qnl0ZXNfVHlwZT1weXRob24zMy5QeUJ5dGVzX1R5cGUgREFUQQorICBQeUNGdW5jdGlvbl9DYWxsPXB5dGhvbjMzLlB5Q0Z1bmN0aW9uX0NhbGwKKyAgUHlDRnVuY3Rpb25fQ2xlYXJGcmVlTGlzdD1weXRob24zMy5QeUNGdW5jdGlvbl9DbGVhckZyZWVMaXN0CisgIFB5Q0Z1bmN0aW9uX0dldEZsYWdzPXB5dGhvbjMzLlB5Q0Z1bmN0aW9uX0dldEZsYWdzCisgIFB5Q0Z1bmN0aW9uX0dldEZ1bmN0aW9uPXB5dGhvbjMzLlB5Q0Z1bmN0aW9uX0dldEZ1bmN0aW9uCisgIFB5Q0Z1bmN0aW9uX0dldFNlbGY9cHl0aG9uMzMuUHlDRnVuY3Rpb25fR2V0U2VsZgorICBQeUNGdW5jdGlvbl9OZXdFeD1weXRob24zMy5QeUNGdW5jdGlvbl9OZXdFeAorICBQeUNGdW5jdGlvbl9UeXBlPXB5dGhvbjMzLlB5Q0Z1bmN0aW9uX1R5cGUgREFUQQorICBQeUNhbGxJdGVyX05ldz1weXRob24zMy5QeUNhbGxJdGVyX05ldworICBQeUNhbGxJdGVyX1R5cGU9cHl0aG9uMzMuUHlDYWxsSXRlcl9UeXBlIERBVEEKKyAgUHlDYWxsYWJsZV9DaGVjaz1weXRob24zMy5QeUNhbGxhYmxlX0NoZWNrCisgIFB5Q2Fwc3VsZV9HZXRDb250ZXh0PXB5dGhvbjMzLlB5Q2Fwc3VsZV9HZXRDb250ZXh0CisgIFB5Q2Fwc3VsZV9HZXREZXN0cnVjdG9yPXB5dGhvbjMzLlB5Q2Fwc3VsZV9HZXREZXN0cnVjdG9yCisgIFB5Q2Fwc3VsZV9HZXROYW1lPXB5dGhvbjMzLlB5Q2Fwc3VsZV9HZXROYW1lCisgIFB5Q2Fwc3VsZV9HZXRQb2ludGVyPXB5dGhvbjMzLlB5Q2Fwc3VsZV9HZXRQb2ludGVyCisgIFB5Q2Fwc3VsZV9JbXBvcnQ9cHl0aG9uMzMuUHlDYXBzdWxlX0ltcG9ydAorICBQeUNhcHN1bGVfSXNWYWxpZD1weXRob24zMy5QeUNhcHN1bGVfSXNWYWxpZAorICBQeUNhcHN1bGVfTmV3PXB5dGhvbjMzLlB5Q2Fwc3VsZV9OZXcKKyAgUHlDYXBzdWxlX1NldENvbnRleHQ9cHl0aG9uMzMuUHlDYXBzdWxlX1NldENvbnRleHQKKyAgUHlDYXBzdWxlX1NldERlc3RydWN0b3I9cHl0aG9uMzMuUHlDYXBzdWxlX1NldERlc3RydWN0b3IKKyAgUHlDYXBzdWxlX1NldE5hbWU9cHl0aG9uMzMuUHlDYXBzdWxlX1NldE5hbWUKKyAgUHlDYXBzdWxlX1NldFBvaW50ZXI9cHl0aG9uMzMuUHlDYXBzdWxlX1NldFBvaW50ZXIKKyAgUHlDYXBzdWxlX1R5cGU9cHl0aG9uMzMuUHlDYXBzdWxlX1R5cGUgREFUQQorICBQeUNsYXNzTWV0aG9kRGVzY3JfVHlwZT1weXRob24zMy5QeUNsYXNzTWV0aG9kRGVzY3JfVHlwZSBEQVRBCisgIFB5Q29kZWNfQmFja3NsYXNoUmVwbGFjZUVycm9ycz1weXRob24zMy5QeUNvZGVjX0JhY2tzbGFzaFJlcGxhY2VFcnJvcnMKKyAgUHlDb2RlY19EZWNvZGU9cHl0aG9uMzMuUHlDb2RlY19EZWNvZGUKKyAgUHlDb2RlY19EZWNvZGVyPXB5dGhvbjMzLlB5Q29kZWNfRGVjb2RlcgorICBQeUNvZGVjX0VuY29kZT1weXRob24zMy5QeUNvZGVjX0VuY29kZQorICBQeUNvZGVjX0VuY29kZXI9cHl0aG9uMzMuUHlDb2RlY19FbmNvZGVyCisgIFB5Q29kZWNfSWdub3JlRXJyb3JzPXB5dGhvbjMzLlB5Q29kZWNfSWdub3JlRXJyb3JzCisgIFB5Q29kZWNfSW5jcmVtZW50YWxEZWNvZGVyPXB5dGhvbjMzLlB5Q29kZWNfSW5jcmVtZW50YWxEZWNvZGVyCisgIFB5Q29kZWNfSW5jcmVtZW50YWxFbmNvZGVyPXB5dGhvbjMzLlB5Q29kZWNfSW5jcmVtZW50YWxFbmNvZGVyCisgIFB5Q29kZWNfS25vd25FbmNvZGluZz1weXRob24zMy5QeUNvZGVjX0tub3duRW5jb2RpbmcKKyAgUHlDb2RlY19Mb29rdXBFcnJvcj1weXRob24zMy5QeUNvZGVjX0xvb2t1cEVycm9yCisgIFB5Q29kZWNfUmVnaXN0ZXI9cHl0aG9uMzMuUHlDb2RlY19SZWdpc3RlcgorICBQeUNvZGVjX1JlZ2lzdGVyRXJyb3I9cHl0aG9uMzMuUHlDb2RlY19SZWdpc3RlckVycm9yCisgIFB5Q29kZWNfUmVwbGFjZUVycm9ycz1weXRob24zMy5QeUNvZGVjX1JlcGxhY2VFcnJvcnMKKyAgUHlDb2RlY19TdHJlYW1SZWFkZXI9cHl0aG9uMzMuUHlDb2RlY19TdHJlYW1SZWFkZXIKKyAgUHlDb2RlY19TdHJlYW1Xcml0ZXI9cHl0aG9uMzMuUHlDb2RlY19TdHJlYW1Xcml0ZXIKKyAgUHlDb2RlY19TdHJpY3RFcnJvcnM9cHl0aG9uMzMuUHlDb2RlY19TdHJpY3RFcnJvcnMKKyAgUHlDb2RlY19YTUxDaGFyUmVmUmVwbGFjZUVycm9ycz1weXRob24zMy5QeUNvZGVjX1hNTENoYXJSZWZSZXBsYWNlRXJyb3JzCisgIFB5Q29tcGxleF9Gcm9tRG91Ymxlcz1weXRob24zMy5QeUNvbXBsZXhfRnJvbURvdWJsZXMKKyAgUHlDb21wbGV4X0ltYWdBc0RvdWJsZT1weXRob24zMy5QeUNvbXBsZXhfSW1hZ0FzRG91YmxlCisgIFB5Q29tcGxleF9SZWFsQXNEb3VibGU9cHl0aG9uMzMuUHlDb21wbGV4X1JlYWxBc0RvdWJsZQorICBQeUNvbXBsZXhfVHlwZT1weXRob24zMy5QeUNvbXBsZXhfVHlwZSBEQVRBCisgIFB5RGVzY3JfTmV3Q2xhc3NNZXRob2Q9cHl0aG9uMzMuUHlEZXNjcl9OZXdDbGFzc01ldGhvZAorICBQeURlc2NyX05ld0dldFNldD1weXRob24zMy5QeURlc2NyX05ld0dldFNldAorICBQeURlc2NyX05ld01lbWJlcj1weXRob24zMy5QeURlc2NyX05ld01lbWJlcgorICBQeURlc2NyX05ld01ldGhvZD1weXRob24zMy5QeURlc2NyX05ld01ldGhvZAorICBQeURpY3RJdGVtc19UeXBlPXB5dGhvbjMzLlB5RGljdEl0ZW1zX1R5cGUgREFUQQorICBQeURpY3RJdGVySXRlbV9UeXBlPXB5dGhvbjMzLlB5RGljdEl0ZXJJdGVtX1R5cGUgREFUQQorICBQeURpY3RJdGVyS2V5X1R5cGU9cHl0aG9uMzMuUHlEaWN0SXRlcktleV9UeXBlIERBVEEKKyAgUHlEaWN0SXRlclZhbHVlX1R5cGU9cHl0aG9uMzMuUHlEaWN0SXRlclZhbHVlX1R5cGUgREFUQQorICBQeURpY3RLZXlzX1R5cGU9cHl0aG9uMzMuUHlEaWN0S2V5c19UeXBlIERBVEEKKyAgUHlEaWN0UHJveHlfTmV3PXB5dGhvbjMzLlB5RGljdFByb3h5X05ldworICBQeURpY3RQcm94eV9UeXBlPXB5dGhvbjMzLlB5RGljdFByb3h5X1R5cGUgREFUQQorICBQeURpY3RWYWx1ZXNfVHlwZT1weXRob24zMy5QeURpY3RWYWx1ZXNfVHlwZSBEQVRBCisgIFB5RGljdF9DbGVhcj1weXRob24zMy5QeURpY3RfQ2xlYXIKKyAgUHlEaWN0X0NvbnRhaW5zPXB5dGhvbjMzLlB5RGljdF9Db250YWlucworICBQeURpY3RfQ29weT1weXRob24zMy5QeURpY3RfQ29weQorICBQeURpY3RfRGVsSXRlbT1weXRob24zMy5QeURpY3RfRGVsSXRlbQorICBQeURpY3RfRGVsSXRlbVN0cmluZz1weXRob24zMy5QeURpY3RfRGVsSXRlbVN0cmluZworICBQeURpY3RfR2V0SXRlbT1weXRob24zMy5QeURpY3RfR2V0SXRlbQorICBQeURpY3RfR2V0SXRlbVN0cmluZz1weXRob24zMy5QeURpY3RfR2V0SXRlbVN0cmluZworICBQeURpY3RfR2V0SXRlbVdpdGhFcnJvcj1weXRob24zMy5QeURpY3RfR2V0SXRlbVdpdGhFcnJvcgorICBQeURpY3RfSXRlbXM9cHl0aG9uMzMuUHlEaWN0X0l0ZW1zCisgIFB5RGljdF9LZXlzPXB5dGhvbjMzLlB5RGljdF9LZXlzCisgIFB5RGljdF9NZXJnZT1weXRob24zMy5QeURpY3RfTWVyZ2UKKyAgUHlEaWN0X01lcmdlRnJvbVNlcTI9cHl0aG9uMzMuUHlEaWN0X01lcmdlRnJvbVNlcTIKKyAgUHlEaWN0X05ldz1weXRob24zMy5QeURpY3RfTmV3CisgIFB5RGljdF9OZXh0PXB5dGhvbjMzLlB5RGljdF9OZXh0CisgIFB5RGljdF9TZXRJdGVtPXB5dGhvbjMzLlB5RGljdF9TZXRJdGVtCisgIFB5RGljdF9TZXRJdGVtU3RyaW5nPXB5dGhvbjMzLlB5RGljdF9TZXRJdGVtU3RyaW5nCisgIFB5RGljdF9TaXplPXB5dGhvbjMzLlB5RGljdF9TaXplCisgIFB5RGljdF9UeXBlPXB5dGhvbjMzLlB5RGljdF9UeXBlIERBVEEKKyAgUHlEaWN0X1VwZGF0ZT1weXRob24zMy5QeURpY3RfVXBkYXRlCisgIFB5RGljdF9WYWx1ZXM9cHl0aG9uMzMuUHlEaWN0X1ZhbHVlcworICBQeUVsbGlwc2lzX1R5cGU9cHl0aG9uMzMuUHlFbGxpcHNpc19UeXBlIERBVEEKKyAgUHlFbnVtX1R5cGU9cHl0aG9uMzMuUHlFbnVtX1R5cGUgREFUQQorICBQeUVycl9CYWRBcmd1bWVudD1weXRob24zMy5QeUVycl9CYWRBcmd1bWVudAorICBQeUVycl9CYWRJbnRlcm5hbENhbGw9cHl0aG9uMzMuUHlFcnJfQmFkSW50ZXJuYWxDYWxsCisgIFB5RXJyX0NoZWNrU2lnbmFscz1weXRob24zMy5QeUVycl9DaGVja1NpZ25hbHMKKyAgUHlFcnJfQ2xlYXI9cHl0aG9uMzMuUHlFcnJfQ2xlYXIKKyAgUHlFcnJfRGlzcGxheT1weXRob24zMy5QeUVycl9EaXNwbGF5CisgIFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXM9cHl0aG9uMzMuUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcworICBQeUVycl9GZXRjaD1weXRob24zMy5QeUVycl9GZXRjaAorICBQeUVycl9Gb3JtYXQ9cHl0aG9uMzMuUHlFcnJfRm9ybWF0CisgIFB5RXJyX0dpdmVuRXhjZXB0aW9uTWF0Y2hlcz1weXRob24zMy5QeUVycl9HaXZlbkV4Y2VwdGlvbk1hdGNoZXMKKyAgUHlFcnJfTmV3RXhjZXB0aW9uPXB5dGhvbjMzLlB5RXJyX05ld0V4Y2VwdGlvbgorICBQeUVycl9OZXdFeGNlcHRpb25XaXRoRG9jPXB5dGhvbjMzLlB5RXJyX05ld0V4Y2VwdGlvbldpdGhEb2MKKyAgUHlFcnJfTm9NZW1vcnk9cHl0aG9uMzMuUHlFcnJfTm9NZW1vcnkKKyAgUHlFcnJfTm9ybWFsaXplRXhjZXB0aW9uPXB5dGhvbjMzLlB5RXJyX05vcm1hbGl6ZUV4Y2VwdGlvbgorICBQeUVycl9PY2N1cnJlZD1weXRob24zMy5QeUVycl9PY2N1cnJlZAorICBQeUVycl9QcmludD1weXRob24zMy5QeUVycl9QcmludAorICBQeUVycl9QcmludEV4PXB5dGhvbjMzLlB5RXJyX1ByaW50RXgKKyAgUHlFcnJfUHJvZ3JhbVRleHQ9cHl0aG9uMzMuUHlFcnJfUHJvZ3JhbVRleHQKKyAgUHlFcnJfUmVzdG9yZT1weXRob24zMy5QeUVycl9SZXN0b3JlCisgIFB5RXJyX1NldEZyb21FcnJubz1weXRob24zMy5QeUVycl9TZXRGcm9tRXJybm8KKyAgUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lPXB5dGhvbjMzLlB5RXJyX1NldEZyb21FcnJub1dpdGhGaWxlbmFtZQorICBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWVPYmplY3Q9cHl0aG9uMzMuUHlFcnJfU2V0RnJvbUVycm5vV2l0aEZpbGVuYW1lT2JqZWN0CisgIFB5RXJyX1NldEludGVycnVwdD1weXRob24zMy5QeUVycl9TZXRJbnRlcnJ1cHQKKyAgUHlFcnJfU2V0Tm9uZT1weXRob24zMy5QeUVycl9TZXROb25lCisgIFB5RXJyX1NldE9iamVjdD1weXRob24zMy5QeUVycl9TZXRPYmplY3QKKyAgUHlFcnJfU2V0U3RyaW5nPXB5dGhvbjMzLlB5RXJyX1NldFN0cmluZworICBQeUVycl9TeW50YXhMb2NhdGlvbj1weXRob24zMy5QeUVycl9TeW50YXhMb2NhdGlvbgorICBQeUVycl9XYXJuRXg9cHl0aG9uMzMuUHlFcnJfV2FybkV4CisgIFB5RXJyX1dhcm5FeHBsaWNpdD1weXRob24zMy5QeUVycl9XYXJuRXhwbGljaXQKKyAgUHlFcnJfV2FybkZvcm1hdD1weXRob24zMy5QeUVycl9XYXJuRm9ybWF0CisgIFB5RXJyX1dyaXRlVW5yYWlzYWJsZT1weXRob24zMy5QeUVycl9Xcml0ZVVucmFpc2FibGUKKyAgUHlFdmFsX0FjcXVpcmVMb2NrPXB5dGhvbjMzLlB5RXZhbF9BY3F1aXJlTG9jaworICBQeUV2YWxfQWNxdWlyZVRocmVhZD1weXRob24zMy5QeUV2YWxfQWNxdWlyZVRocmVhZAorICBQeUV2YWxfQ2FsbEZ1bmN0aW9uPXB5dGhvbjMzLlB5RXZhbF9DYWxsRnVuY3Rpb24KKyAgUHlFdmFsX0NhbGxNZXRob2Q9cHl0aG9uMzMuUHlFdmFsX0NhbGxNZXRob2QKKyAgUHlFdmFsX0NhbGxPYmplY3RXaXRoS2V5d29yZHM9cHl0aG9uMzMuUHlFdmFsX0NhbGxPYmplY3RXaXRoS2V5d29yZHMKKyAgUHlFdmFsX0V2YWxDb2RlPXB5dGhvbjMzLlB5RXZhbF9FdmFsQ29kZQorICBQeUV2YWxfRXZhbENvZGVFeD1weXRob24zMy5QeUV2YWxfRXZhbENvZGVFeAorICBQeUV2YWxfRXZhbEZyYW1lPXB5dGhvbjMzLlB5RXZhbF9FdmFsRnJhbWUKKyAgUHlFdmFsX0V2YWxGcmFtZUV4PXB5dGhvbjMzLlB5RXZhbF9FdmFsRnJhbWVFeAorICBQeUV2YWxfR2V0QnVpbHRpbnM9cHl0aG9uMzMuUHlFdmFsX0dldEJ1aWx0aW5zCisgIFB5RXZhbF9HZXRDYWxsU3RhdHM9cHl0aG9uMzMuUHlFdmFsX0dldENhbGxTdGF0cworICBQeUV2YWxfR2V0RnJhbWU9cHl0aG9uMzMuUHlFdmFsX0dldEZyYW1lCisgIFB5RXZhbF9HZXRGdW5jRGVzYz1weXRob24zMy5QeUV2YWxfR2V0RnVuY0Rlc2MKKyAgUHlFdmFsX0dldEZ1bmNOYW1lPXB5dGhvbjMzLlB5RXZhbF9HZXRGdW5jTmFtZQorICBQeUV2YWxfR2V0R2xvYmFscz1weXRob24zMy5QeUV2YWxfR2V0R2xvYmFscworICBQeUV2YWxfR2V0TG9jYWxzPXB5dGhvbjMzLlB5RXZhbF9HZXRMb2NhbHMKKyAgUHlFdmFsX0luaXRUaHJlYWRzPXB5dGhvbjMzLlB5RXZhbF9Jbml0VGhyZWFkcworICBQeUV2YWxfUmVJbml0VGhyZWFkcz1weXRob24zMy5QeUV2YWxfUmVJbml0VGhyZWFkcworICBQeUV2YWxfUmVsZWFzZUxvY2s9cHl0aG9uMzMuUHlFdmFsX1JlbGVhc2VMb2NrCisgIFB5RXZhbF9SZWxlYXNlVGhyZWFkPXB5dGhvbjMzLlB5RXZhbF9SZWxlYXNlVGhyZWFkCisgIFB5RXZhbF9SZXN0b3JlVGhyZWFkPXB5dGhvbjMzLlB5RXZhbF9SZXN0b3JlVGhyZWFkCisgIFB5RXZhbF9TYXZlVGhyZWFkPXB5dGhvbjMzLlB5RXZhbF9TYXZlVGhyZWFkCisgIFB5RXZhbF9UaHJlYWRzSW5pdGlhbGl6ZWQ9cHl0aG9uMzMuUHlFdmFsX1RocmVhZHNJbml0aWFsaXplZAorICBQeUV4Y19Bcml0aG1ldGljRXJyb3I9cHl0aG9uMzMuUHlFeGNfQXJpdGhtZXRpY0Vycm9yIERBVEEKKyAgUHlFeGNfQXNzZXJ0aW9uRXJyb3I9cHl0aG9uMzMuUHlFeGNfQXNzZXJ0aW9uRXJyb3IgREFUQQorICBQeUV4Y19BdHRyaWJ1dGVFcnJvcj1weXRob24zMy5QeUV4Y19BdHRyaWJ1dGVFcnJvciBEQVRBCisgIFB5RXhjX0Jhc2VFeGNlcHRpb249cHl0aG9uMzMuUHlFeGNfQmFzZUV4Y2VwdGlvbiBEQVRBCisgIFB5RXhjX0J1ZmZlckVycm9yPXB5dGhvbjMzLlB5RXhjX0J1ZmZlckVycm9yIERBVEEKKyAgUHlFeGNfQnl0ZXNXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX0J5dGVzV2FybmluZyBEQVRBCisgIFB5RXhjX0RlcHJlY2F0aW9uV2FybmluZz1weXRob24zMy5QeUV4Y19EZXByZWNhdGlvbldhcm5pbmcgREFUQQorICBQeUV4Y19FT0ZFcnJvcj1weXRob24zMy5QeUV4Y19FT0ZFcnJvciBEQVRBCisgIFB5RXhjX0Vudmlyb25tZW50RXJyb3I9cHl0aG9uMzMuUHlFeGNfRW52aXJvbm1lbnRFcnJvciBEQVRBCisgIFB5RXhjX0V4Y2VwdGlvbj1weXRob24zMy5QeUV4Y19FeGNlcHRpb24gREFUQQorICBQeUV4Y19GbG9hdGluZ1BvaW50RXJyb3I9cHl0aG9uMzMuUHlFeGNfRmxvYXRpbmdQb2ludEVycm9yIERBVEEKKyAgUHlFeGNfRnV0dXJlV2FybmluZz1weXRob24zMy5QeUV4Y19GdXR1cmVXYXJuaW5nIERBVEEKKyAgUHlFeGNfR2VuZXJhdG9yRXhpdD1weXRob24zMy5QeUV4Y19HZW5lcmF0b3JFeGl0IERBVEEKKyAgUHlFeGNfSU9FcnJvcj1weXRob24zMy5QeUV4Y19JT0Vycm9yIERBVEEKKyAgUHlFeGNfSW1wb3J0RXJyb3I9cHl0aG9uMzMuUHlFeGNfSW1wb3J0RXJyb3IgREFUQQorICBQeUV4Y19JbXBvcnRXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX0ltcG9ydFdhcm5pbmcgREFUQQorICBQeUV4Y19JbmRlbnRhdGlvbkVycm9yPXB5dGhvbjMzLlB5RXhjX0luZGVudGF0aW9uRXJyb3IgREFUQQorICBQeUV4Y19JbmRleEVycm9yPXB5dGhvbjMzLlB5RXhjX0luZGV4RXJyb3IgREFUQQorICBQeUV4Y19LZXlFcnJvcj1weXRob24zMy5QeUV4Y19LZXlFcnJvciBEQVRBCisgIFB5RXhjX0tleWJvYXJkSW50ZXJydXB0PXB5dGhvbjMzLlB5RXhjX0tleWJvYXJkSW50ZXJydXB0IERBVEEKKyAgUHlFeGNfTG9va3VwRXJyb3I9cHl0aG9uMzMuUHlFeGNfTG9va3VwRXJyb3IgREFUQQorICBQeUV4Y19NZW1vcnlFcnJvcj1weXRob24zMy5QeUV4Y19NZW1vcnlFcnJvciBEQVRBCisgIFB5RXhjX01lbW9yeUVycm9ySW5zdD1weXRob24zMy5QeUV4Y19NZW1vcnlFcnJvckluc3QgREFUQQorICBQeUV4Y19OYW1lRXJyb3I9cHl0aG9uMzMuUHlFeGNfTmFtZUVycm9yIERBVEEKKyAgUHlFeGNfTm90SW1wbGVtZW50ZWRFcnJvcj1weXRob24zMy5QeUV4Y19Ob3RJbXBsZW1lbnRlZEVycm9yIERBVEEKKyAgUHlFeGNfT1NFcnJvcj1weXRob24zMy5QeUV4Y19PU0Vycm9yIERBVEEKKyAgUHlFeGNfT3ZlcmZsb3dFcnJvcj1weXRob24zMy5QeUV4Y19PdmVyZmxvd0Vycm9yIERBVEEKKyAgUHlFeGNfUGVuZGluZ0RlcHJlY2F0aW9uV2FybmluZz1weXRob24zMy5QeUV4Y19QZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nIERBVEEKKyAgUHlFeGNfUmVjdXJzaW9uRXJyb3JJbnN0PXB5dGhvbjMzLlB5RXhjX1JlY3Vyc2lvbkVycm9ySW5zdCBEQVRBCisgIFB5RXhjX1JlZmVyZW5jZUVycm9yPXB5dGhvbjMzLlB5RXhjX1JlZmVyZW5jZUVycm9yIERBVEEKKyAgUHlFeGNfUnVudGltZUVycm9yPXB5dGhvbjMzLlB5RXhjX1J1bnRpbWVFcnJvciBEQVRBCisgIFB5RXhjX1J1bnRpbWVXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX1J1bnRpbWVXYXJuaW5nIERBVEEKKyAgUHlFeGNfU3RvcEl0ZXJhdGlvbj1weXRob24zMy5QeUV4Y19TdG9wSXRlcmF0aW9uIERBVEEKKyAgUHlFeGNfU3ludGF4RXJyb3I9cHl0aG9uMzMuUHlFeGNfU3ludGF4RXJyb3IgREFUQQorICBQeUV4Y19TeW50YXhXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX1N5bnRheFdhcm5pbmcgREFUQQorICBQeUV4Y19TeXN0ZW1FcnJvcj1weXRob24zMy5QeUV4Y19TeXN0ZW1FcnJvciBEQVRBCisgIFB5RXhjX1N5c3RlbUV4aXQ9cHl0aG9uMzMuUHlFeGNfU3lzdGVtRXhpdCBEQVRBCisgIFB5RXhjX1RhYkVycm9yPXB5dGhvbjMzLlB5RXhjX1RhYkVycm9yIERBVEEKKyAgUHlFeGNfVHlwZUVycm9yPXB5dGhvbjMzLlB5RXhjX1R5cGVFcnJvciBEQVRBCisgIFB5RXhjX1VuYm91bmRMb2NhbEVycm9yPXB5dGhvbjMzLlB5RXhjX1VuYm91bmRMb2NhbEVycm9yIERBVEEKKyAgUHlFeGNfVW5pY29kZURlY29kZUVycm9yPXB5dGhvbjMzLlB5RXhjX1VuaWNvZGVEZWNvZGVFcnJvciBEQVRBCisgIFB5RXhjX1VuaWNvZGVFbmNvZGVFcnJvcj1weXRob24zMy5QeUV4Y19Vbmljb2RlRW5jb2RlRXJyb3IgREFUQQorICBQeUV4Y19Vbmljb2RlRXJyb3I9cHl0aG9uMzMuUHlFeGNfVW5pY29kZUVycm9yIERBVEEKKyAgUHlFeGNfVW5pY29kZVRyYW5zbGF0ZUVycm9yPXB5dGhvbjMzLlB5RXhjX1VuaWNvZGVUcmFuc2xhdGVFcnJvciBEQVRBCisgIFB5RXhjX1VuaWNvZGVXYXJuaW5nPXB5dGhvbjMzLlB5RXhjX1VuaWNvZGVXYXJuaW5nIERBVEEKKyAgUHlFeGNfVXNlcldhcm5pbmc9cHl0aG9uMzMuUHlFeGNfVXNlcldhcm5pbmcgREFUQQorICBQeUV4Y19WYWx1ZUVycm9yPXB5dGhvbjMzLlB5RXhjX1ZhbHVlRXJyb3IgREFUQQorICBQeUV4Y19XYXJuaW5nPXB5dGhvbjMzLlB5RXhjX1dhcm5pbmcgREFUQQorICBQeUV4Y19aZXJvRGl2aXNpb25FcnJvcj1weXRob24zMy5QeUV4Y19aZXJvRGl2aXNpb25FcnJvciBEQVRBCisgIFB5RXhjZXB0aW9uX0dldENhdXNlPXB5dGhvbjMzLlB5RXhjZXB0aW9uX0dldENhdXNlCisgIFB5RXhjZXB0aW9uX0dldENvbnRleHQ9cHl0aG9uMzMuUHlFeGNlcHRpb25fR2V0Q29udGV4dAorICBQeUV4Y2VwdGlvbl9HZXRUcmFjZWJhY2s9cHl0aG9uMzMuUHlFeGNlcHRpb25fR2V0VHJhY2ViYWNrCisgIFB5RXhjZXB0aW9uX1NldENhdXNlPXB5dGhvbjMzLlB5RXhjZXB0aW9uX1NldENhdXNlCisgIFB5RXhjZXB0aW9uX1NldENvbnRleHQ9cHl0aG9uMzMuUHlFeGNlcHRpb25fU2V0Q29udGV4dAorICBQeUV4Y2VwdGlvbl9TZXRUcmFjZWJhY2s9cHl0aG9uMzMuUHlFeGNlcHRpb25fU2V0VHJhY2ViYWNrCisgIFB5RmlsZV9Gcm9tRmQ9cHl0aG9uMzMuUHlGaWxlX0Zyb21GZAorICBQeUZpbGVfR2V0TGluZT1weXRob24zMy5QeUZpbGVfR2V0TGluZQorICBQeUZpbGVfV3JpdGVPYmplY3Q9cHl0aG9uMzMuUHlGaWxlX1dyaXRlT2JqZWN0CisgIFB5RmlsZV9Xcml0ZVN0cmluZz1weXRob24zMy5QeUZpbGVfV3JpdGVTdHJpbmcKKyAgUHlGaWx0ZXJfVHlwZT1weXRob24zMy5QeUZpbHRlcl9UeXBlIERBVEEKKyAgUHlGbG9hdF9Bc0RvdWJsZT1weXRob24zMy5QeUZsb2F0X0FzRG91YmxlCisgIFB5RmxvYXRfRnJvbURvdWJsZT1weXRob24zMy5QeUZsb2F0X0Zyb21Eb3VibGUKKyAgUHlGbG9hdF9Gcm9tU3RyaW5nPXB5dGhvbjMzLlB5RmxvYXRfRnJvbVN0cmluZworICBQeUZsb2F0X0dldEluZm89cHl0aG9uMzMuUHlGbG9hdF9HZXRJbmZvCisgIFB5RmxvYXRfR2V0TWF4PXB5dGhvbjMzLlB5RmxvYXRfR2V0TWF4CisgIFB5RmxvYXRfR2V0TWluPXB5dGhvbjMzLlB5RmxvYXRfR2V0TWluCisgIFB5RmxvYXRfVHlwZT1weXRob24zMy5QeUZsb2F0X1R5cGUgREFUQQorICBQeUZyb3plblNldF9OZXc9cHl0aG9uMzMuUHlGcm96ZW5TZXRfTmV3CisgIFB5RnJvemVuU2V0X1R5cGU9cHl0aG9uMzMuUHlGcm96ZW5TZXRfVHlwZSBEQVRBCisgIFB5R0NfQ29sbGVjdD1weXRob24zMy5QeUdDX0NvbGxlY3QKKyAgUHlHSUxTdGF0ZV9FbnN1cmU9cHl0aG9uMzMuUHlHSUxTdGF0ZV9FbnN1cmUKKyAgUHlHSUxTdGF0ZV9HZXRUaGlzVGhyZWFkU3RhdGU9cHl0aG9uMzMuUHlHSUxTdGF0ZV9HZXRUaGlzVGhyZWFkU3RhdGUKKyAgUHlHSUxTdGF0ZV9SZWxlYXNlPXB5dGhvbjMzLlB5R0lMU3RhdGVfUmVsZWFzZQorICBQeUdldFNldERlc2NyX1R5cGU9cHl0aG9uMzMuUHlHZXRTZXREZXNjcl9UeXBlIERBVEEKKyAgUHlJbXBvcnRfQWRkTW9kdWxlPXB5dGhvbjMzLlB5SW1wb3J0X0FkZE1vZHVsZQorICBQeUltcG9ydF9BcHBlbmRJbml0dGFiPXB5dGhvbjMzLlB5SW1wb3J0X0FwcGVuZEluaXR0YWIKKyAgUHlJbXBvcnRfQ2xlYW51cD1weXRob24zMy5QeUltcG9ydF9DbGVhbnVwCisgIFB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlPXB5dGhvbjMzLlB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlCisgIFB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlRXg9cHl0aG9uMzMuUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVFeAorICBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZVdpdGhQYXRobmFtZXM9cHl0aG9uMzMuUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVXaXRoUGF0aG5hbWVzCisgIFB5SW1wb3J0X0dldEltcG9ydGVyPXB5dGhvbjMzLlB5SW1wb3J0X0dldEltcG9ydGVyCisgIFB5SW1wb3J0X0dldE1hZ2ljTnVtYmVyPXB5dGhvbjMzLlB5SW1wb3J0X0dldE1hZ2ljTnVtYmVyCisgIFB5SW1wb3J0X0dldE1hZ2ljVGFnPXB5dGhvbjMzLlB5SW1wb3J0X0dldE1hZ2ljVGFnCisgIFB5SW1wb3J0X0dldE1vZHVsZURpY3Q9cHl0aG9uMzMuUHlJbXBvcnRfR2V0TW9kdWxlRGljdAorICBQeUltcG9ydF9JbXBvcnQ9cHl0aG9uMzMuUHlJbXBvcnRfSW1wb3J0CisgIFB5SW1wb3J0X0ltcG9ydEZyb3plbk1vZHVsZT1weXRob24zMy5QeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGUKKyAgUHlJbXBvcnRfSW1wb3J0TW9kdWxlPXB5dGhvbjMzLlB5SW1wb3J0X0ltcG9ydE1vZHVsZQorICBQeUltcG9ydF9JbXBvcnRNb2R1bGVMZXZlbD1weXRob24zMy5QeUltcG9ydF9JbXBvcnRNb2R1bGVMZXZlbAorICBQeUltcG9ydF9JbXBvcnRNb2R1bGVOb0Jsb2NrPXB5dGhvbjMzLlB5SW1wb3J0X0ltcG9ydE1vZHVsZU5vQmxvY2sKKyAgUHlJbXBvcnRfUmVsb2FkTW9kdWxlPXB5dGhvbjMzLlB5SW1wb3J0X1JlbG9hZE1vZHVsZQorICBQeUludGVycHJldGVyU3RhdGVfQ2xlYXI9cHl0aG9uMzMuUHlJbnRlcnByZXRlclN0YXRlX0NsZWFyCisgIFB5SW50ZXJwcmV0ZXJTdGF0ZV9EZWxldGU9cHl0aG9uMzMuUHlJbnRlcnByZXRlclN0YXRlX0RlbGV0ZQorICBQeUludGVycHJldGVyU3RhdGVfTmV3PXB5dGhvbjMzLlB5SW50ZXJwcmV0ZXJTdGF0ZV9OZXcKKyAgUHlJdGVyX05leHQ9cHl0aG9uMzMuUHlJdGVyX05leHQKKyAgUHlMaXN0SXRlcl9UeXBlPXB5dGhvbjMzLlB5TGlzdEl0ZXJfVHlwZSBEQVRBCisgIFB5TGlzdFJldkl0ZXJfVHlwZT1weXRob24zMy5QeUxpc3RSZXZJdGVyX1R5cGUgREFUQQorICBQeUxpc3RfQXBwZW5kPXB5dGhvbjMzLlB5TGlzdF9BcHBlbmQKKyAgUHlMaXN0X0FzVHVwbGU9cHl0aG9uMzMuUHlMaXN0X0FzVHVwbGUKKyAgUHlMaXN0X0dldEl0ZW09cHl0aG9uMzMuUHlMaXN0X0dldEl0ZW0KKyAgUHlMaXN0X0dldFNsaWNlPXB5dGhvbjMzLlB5TGlzdF9HZXRTbGljZQorICBQeUxpc3RfSW5zZXJ0PXB5dGhvbjMzLlB5TGlzdF9JbnNlcnQKKyAgUHlMaXN0X05ldz1weXRob24zMy5QeUxpc3RfTmV3CisgIFB5TGlzdF9SZXZlcnNlPXB5dGhvbjMzLlB5TGlzdF9SZXZlcnNlCisgIFB5TGlzdF9TZXRJdGVtPXB5dGhvbjMzLlB5TGlzdF9TZXRJdGVtCisgIFB5TGlzdF9TZXRTbGljZT1weXRob24zMy5QeUxpc3RfU2V0U2xpY2UKKyAgUHlMaXN0X1NpemU9cHl0aG9uMzMuUHlMaXN0X1NpemUKKyAgUHlMaXN0X1NvcnQ9cHl0aG9uMzMuUHlMaXN0X1NvcnQKKyAgUHlMaXN0X1R5cGU9cHl0aG9uMzMuUHlMaXN0X1R5cGUgREFUQQorICBQeUxvbmdSYW5nZUl0ZXJfVHlwZT1weXRob24zMy5QeUxvbmdSYW5nZUl0ZXJfVHlwZSBEQVRBCisgIFB5TG9uZ19Bc0RvdWJsZT1weXRob24zMy5QeUxvbmdfQXNEb3VibGUKKyAgUHlMb25nX0FzTG9uZz1weXRob24zMy5QeUxvbmdfQXNMb25nCisgIFB5TG9uZ19Bc0xvbmdBbmRPdmVyZmxvdz1weXRob24zMy5QeUxvbmdfQXNMb25nQW5kT3ZlcmZsb3cKKyAgUHlMb25nX0FzTG9uZ0xvbmc9cHl0aG9uMzMuUHlMb25nX0FzTG9uZ0xvbmcKKyAgUHlMb25nX0FzTG9uZ0xvbmdBbmRPdmVyZmxvdz1weXRob24zMy5QeUxvbmdfQXNMb25nTG9uZ0FuZE92ZXJmbG93CisgIFB5TG9uZ19Bc1NpemVfdD1weXRob24zMy5QeUxvbmdfQXNTaXplX3QKKyAgUHlMb25nX0FzU3NpemVfdD1weXRob24zMy5QeUxvbmdfQXNTc2l6ZV90CisgIFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZz1weXRob24zMy5QeUxvbmdfQXNVbnNpZ25lZExvbmcKKyAgUHlMb25nX0FzVW5zaWduZWRMb25nTG9uZz1weXRob24zMy5QeUxvbmdfQXNVbnNpZ25lZExvbmdMb25nCisgIFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ0xvbmdNYXNrPXB5dGhvbjMzLlB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ0xvbmdNYXNrCisgIFB5TG9uZ19Bc1Vuc2lnbmVkTG9uZ01hc2s9cHl0aG9uMzMuUHlMb25nX0FzVW5zaWduZWRMb25nTWFzaworICBQeUxvbmdfQXNWb2lkUHRyPXB5dGhvbjMzLlB5TG9uZ19Bc1ZvaWRQdHIKKyAgUHlMb25nX0Zyb21Eb3VibGU9cHl0aG9uMzMuUHlMb25nX0Zyb21Eb3VibGUKKyAgUHlMb25nX0Zyb21Mb25nPXB5dGhvbjMzLlB5TG9uZ19Gcm9tTG9uZworICBQeUxvbmdfRnJvbUxvbmdMb25nPXB5dGhvbjMzLlB5TG9uZ19Gcm9tTG9uZ0xvbmcKKyAgUHlMb25nX0Zyb21TaXplX3Q9cHl0aG9uMzMuUHlMb25nX0Zyb21TaXplX3QKKyAgUHlMb25nX0Zyb21Tc2l6ZV90PXB5dGhvbjMzLlB5TG9uZ19Gcm9tU3NpemVfdAorICBQeUxvbmdfRnJvbVN0cmluZz1weXRob24zMy5QeUxvbmdfRnJvbVN0cmluZworICBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZz1weXRob24zMy5QeUxvbmdfRnJvbVVuc2lnbmVkTG9uZworICBQeUxvbmdfRnJvbVVuc2lnbmVkTG9uZ0xvbmc9cHl0aG9uMzMuUHlMb25nX0Zyb21VbnNpZ25lZExvbmdMb25nCisgIFB5TG9uZ19Gcm9tVm9pZFB0cj1weXRob24zMy5QeUxvbmdfRnJvbVZvaWRQdHIKKyAgUHlMb25nX0dldEluZm89cHl0aG9uMzMuUHlMb25nX0dldEluZm8KKyAgUHlMb25nX1R5cGU9cHl0aG9uMzMuUHlMb25nX1R5cGUgREFUQQorICBQeU1hcF9UeXBlPXB5dGhvbjMzLlB5TWFwX1R5cGUgREFUQQorICBQeU1hcHBpbmdfQ2hlY2s9cHl0aG9uMzMuUHlNYXBwaW5nX0NoZWNrCisgIFB5TWFwcGluZ19HZXRJdGVtU3RyaW5nPXB5dGhvbjMzLlB5TWFwcGluZ19HZXRJdGVtU3RyaW5nCisgIFB5TWFwcGluZ19IYXNLZXk9cHl0aG9uMzMuUHlNYXBwaW5nX0hhc0tleQorICBQeU1hcHBpbmdfSGFzS2V5U3RyaW5nPXB5dGhvbjMzLlB5TWFwcGluZ19IYXNLZXlTdHJpbmcKKyAgUHlNYXBwaW5nX0l0ZW1zPXB5dGhvbjMzLlB5TWFwcGluZ19JdGVtcworICBQeU1hcHBpbmdfS2V5cz1weXRob24zMy5QeU1hcHBpbmdfS2V5cworICBQeU1hcHBpbmdfTGVuZ3RoPXB5dGhvbjMzLlB5TWFwcGluZ19MZW5ndGgKKyAgUHlNYXBwaW5nX1NldEl0ZW1TdHJpbmc9cHl0aG9uMzMuUHlNYXBwaW5nX1NldEl0ZW1TdHJpbmcKKyAgUHlNYXBwaW5nX1NpemU9cHl0aG9uMzMuUHlNYXBwaW5nX1NpemUKKyAgUHlNYXBwaW5nX1ZhbHVlcz1weXRob24zMy5QeU1hcHBpbmdfVmFsdWVzCisgIFB5TWVtX0ZyZWU9cHl0aG9uMzMuUHlNZW1fRnJlZQorICBQeU1lbV9NYWxsb2M9cHl0aG9uMzMuUHlNZW1fTWFsbG9jCisgIFB5TWVtX1JlYWxsb2M9cHl0aG9uMzMuUHlNZW1fUmVhbGxvYworICBQeU1lbWJlckRlc2NyX1R5cGU9cHl0aG9uMzMuUHlNZW1iZXJEZXNjcl9UeXBlIERBVEEKKyAgUHlNZW1vcnlWaWV3X0Zyb21PYmplY3Q9cHl0aG9uMzMuUHlNZW1vcnlWaWV3X0Zyb21PYmplY3QKKyAgUHlNZW1vcnlWaWV3X0dldENvbnRpZ3VvdXM9cHl0aG9uMzMuUHlNZW1vcnlWaWV3X0dldENvbnRpZ3VvdXMKKyAgUHlNZW1vcnlWaWV3X1R5cGU9cHl0aG9uMzMuUHlNZW1vcnlWaWV3X1R5cGUgREFUQQorICBQeU1ldGhvZERlc2NyX1R5cGU9cHl0aG9uMzMuUHlNZXRob2REZXNjcl9UeXBlIERBVEEKKyAgUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQ9cHl0aG9uMzMuUHlNb2R1bGVfQWRkSW50Q29uc3RhbnQKKyAgUHlNb2R1bGVfQWRkT2JqZWN0PXB5dGhvbjMzLlB5TW9kdWxlX0FkZE9iamVjdAorICBQeU1vZHVsZV9BZGRTdHJpbmdDb25zdGFudD1weXRob24zMy5QeU1vZHVsZV9BZGRTdHJpbmdDb25zdGFudAorICBQeU1vZHVsZV9DcmVhdGUyPXB5dGhvbjMzLlB5TW9kdWxlX0NyZWF0ZTIKKyAgUHlNb2R1bGVfR2V0RGVmPXB5dGhvbjMzLlB5TW9kdWxlX0dldERlZgorICBQeU1vZHVsZV9HZXREaWN0PXB5dGhvbjMzLlB5TW9kdWxlX0dldERpY3QKKyAgUHlNb2R1bGVfR2V0RmlsZW5hbWU9cHl0aG9uMzMuUHlNb2R1bGVfR2V0RmlsZW5hbWUKKyAgUHlNb2R1bGVfR2V0RmlsZW5hbWVPYmplY3Q9cHl0aG9uMzMuUHlNb2R1bGVfR2V0RmlsZW5hbWVPYmplY3QKKyAgUHlNb2R1bGVfR2V0TmFtZT1weXRob24zMy5QeU1vZHVsZV9HZXROYW1lCisgIFB5TW9kdWxlX0dldFN0YXRlPXB5dGhvbjMzLlB5TW9kdWxlX0dldFN0YXRlCisgIFB5TW9kdWxlX05ldz1weXRob24zMy5QeU1vZHVsZV9OZXcKKyAgUHlNb2R1bGVfVHlwZT1weXRob24zMy5QeU1vZHVsZV9UeXBlIERBVEEKKyAgUHlOdWxsSW1wb3J0ZXJfVHlwZT1weXRob24zMy5QeU51bGxJbXBvcnRlcl9UeXBlIERBVEEKKyAgUHlOdW1iZXJfQWJzb2x1dGU9cHl0aG9uMzMuUHlOdW1iZXJfQWJzb2x1dGUKKyAgUHlOdW1iZXJfQWRkPXB5dGhvbjMzLlB5TnVtYmVyX0FkZAorICBQeU51bWJlcl9BbmQ9cHl0aG9uMzMuUHlOdW1iZXJfQW5kCisgIFB5TnVtYmVyX0FzU3NpemVfdD1weXRob24zMy5QeU51bWJlcl9Bc1NzaXplX3QKKyAgUHlOdW1iZXJfQ2hlY2s9cHl0aG9uMzMuUHlOdW1iZXJfQ2hlY2sKKyAgUHlOdW1iZXJfRGl2bW9kPXB5dGhvbjMzLlB5TnVtYmVyX0Rpdm1vZAorICBQeU51bWJlcl9GbG9hdD1weXRob24zMy5QeU51bWJlcl9GbG9hdAorICBQeU51bWJlcl9GbG9vckRpdmlkZT1weXRob24zMy5QeU51bWJlcl9GbG9vckRpdmlkZQorICBQeU51bWJlcl9JblBsYWNlQWRkPXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VBZGQKKyAgUHlOdW1iZXJfSW5QbGFjZUFuZD1weXRob24zMy5QeU51bWJlcl9JblBsYWNlQW5kCisgIFB5TnVtYmVyX0luUGxhY2VGbG9vckRpdmlkZT1weXRob24zMy5QeU51bWJlcl9JblBsYWNlRmxvb3JEaXZpZGUKKyAgUHlOdW1iZXJfSW5QbGFjZUxzaGlmdD1weXRob24zMy5QeU51bWJlcl9JblBsYWNlTHNoaWZ0CisgIFB5TnVtYmVyX0luUGxhY2VNdWx0aXBseT1weXRob24zMy5QeU51bWJlcl9JblBsYWNlTXVsdGlwbHkKKyAgUHlOdW1iZXJfSW5QbGFjZU9yPXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VPcgorICBQeU51bWJlcl9JblBsYWNlUG93ZXI9cHl0aG9uMzMuUHlOdW1iZXJfSW5QbGFjZVBvd2VyCisgIFB5TnVtYmVyX0luUGxhY2VSZW1haW5kZXI9cHl0aG9uMzMuUHlOdW1iZXJfSW5QbGFjZVJlbWFpbmRlcgorICBQeU51bWJlcl9JblBsYWNlUnNoaWZ0PXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VSc2hpZnQKKyAgUHlOdW1iZXJfSW5QbGFjZVN1YnRyYWN0PXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VTdWJ0cmFjdAorICBQeU51bWJlcl9JblBsYWNlVHJ1ZURpdmlkZT1weXRob24zMy5QeU51bWJlcl9JblBsYWNlVHJ1ZURpdmlkZQorICBQeU51bWJlcl9JblBsYWNlWG9yPXB5dGhvbjMzLlB5TnVtYmVyX0luUGxhY2VYb3IKKyAgUHlOdW1iZXJfSW5kZXg9cHl0aG9uMzMuUHlOdW1iZXJfSW5kZXgKKyAgUHlOdW1iZXJfSW52ZXJ0PXB5dGhvbjMzLlB5TnVtYmVyX0ludmVydAorICBQeU51bWJlcl9Mb25nPXB5dGhvbjMzLlB5TnVtYmVyX0xvbmcKKyAgUHlOdW1iZXJfTHNoaWZ0PXB5dGhvbjMzLlB5TnVtYmVyX0xzaGlmdAorICBQeU51bWJlcl9NdWx0aXBseT1weXRob24zMy5QeU51bWJlcl9NdWx0aXBseQorICBQeU51bWJlcl9OZWdhdGl2ZT1weXRob24zMy5QeU51bWJlcl9OZWdhdGl2ZQorICBQeU51bWJlcl9Pcj1weXRob24zMy5QeU51bWJlcl9PcgorICBQeU51bWJlcl9Qb3NpdGl2ZT1weXRob24zMy5QeU51bWJlcl9Qb3NpdGl2ZQorICBQeU51bWJlcl9Qb3dlcj1weXRob24zMy5QeU51bWJlcl9Qb3dlcgorICBQeU51bWJlcl9SZW1haW5kZXI9cHl0aG9uMzMuUHlOdW1iZXJfUmVtYWluZGVyCisgIFB5TnVtYmVyX1JzaGlmdD1weXRob24zMy5QeU51bWJlcl9Sc2hpZnQKKyAgUHlOdW1iZXJfU3VidHJhY3Q9cHl0aG9uMzMuUHlOdW1iZXJfU3VidHJhY3QKKyAgUHlOdW1iZXJfVG9CYXNlPXB5dGhvbjMzLlB5TnVtYmVyX1RvQmFzZQorICBQeU51bWJlcl9UcnVlRGl2aWRlPXB5dGhvbjMzLlB5TnVtYmVyX1RydWVEaXZpZGUKKyAgUHlOdW1iZXJfWG9yPXB5dGhvbjMzLlB5TnVtYmVyX1hvcgorICBQeU9TX0FmdGVyRm9yaz1weXRob24zMy5QeU9TX0FmdGVyRm9yaworICBQeU9TX0luaXRJbnRlcnJ1cHRzPXB5dGhvbjMzLlB5T1NfSW5pdEludGVycnVwdHMKKyAgUHlPU19JbnB1dEhvb2s9cHl0aG9uMzMuUHlPU19JbnB1dEhvb2sgREFUQQorICBQeU9TX0ludGVycnVwdE9jY3VycmVkPXB5dGhvbjMzLlB5T1NfSW50ZXJydXB0T2NjdXJyZWQKKyAgUHlPU19SZWFkbGluZUZ1bmN0aW9uUG9pbnRlcj1weXRob24zMy5QeU9TX1JlYWRsaW5lRnVuY3Rpb25Qb2ludGVyIERBVEEKKyAgUHlPU19kb3VibGVfdG9fc3RyaW5nPXB5dGhvbjMzLlB5T1NfZG91YmxlX3RvX3N0cmluZworICBQeU9TX2dldHNpZz1weXRob24zMy5QeU9TX2dldHNpZworICBQeU9TX215c3RyaWNtcD1weXRob24zMy5QeU9TX215c3RyaWNtcAorICBQeU9TX215c3RybmljbXA9cHl0aG9uMzMuUHlPU19teXN0cm5pY21wCisgIFB5T1Nfc2V0c2lnPXB5dGhvbjMzLlB5T1Nfc2V0c2lnCisgIFB5T1Nfc25wcmludGY9cHl0aG9uMzMuUHlPU19zbnByaW50ZgorICBQeU9TX3N0cmluZ190b19kb3VibGU9cHl0aG9uMzMuUHlPU19zdHJpbmdfdG9fZG91YmxlCisgIFB5T1Nfc3RydG9sPXB5dGhvbjMzLlB5T1Nfc3RydG9sCisgIFB5T1Nfc3RydG91bD1weXRob24zMy5QeU9TX3N0cnRvdWwKKyAgUHlPU192c25wcmludGY9cHl0aG9uMzMuUHlPU192c25wcmludGYKKyAgUHlPYmplY3RfQVNDSUk9cHl0aG9uMzMuUHlPYmplY3RfQVNDSUkKKyAgUHlPYmplY3RfQXNDaGFyQnVmZmVyPXB5dGhvbjMzLlB5T2JqZWN0X0FzQ2hhckJ1ZmZlcgorICBQeU9iamVjdF9Bc0ZpbGVEZXNjcmlwdG9yPXB5dGhvbjMzLlB5T2JqZWN0X0FzRmlsZURlc2NyaXB0b3IKKyAgUHlPYmplY3RfQXNSZWFkQnVmZmVyPXB5dGhvbjMzLlB5T2JqZWN0X0FzUmVhZEJ1ZmZlcgorICBQeU9iamVjdF9Bc1dyaXRlQnVmZmVyPXB5dGhvbjMzLlB5T2JqZWN0X0FzV3JpdGVCdWZmZXIKKyAgUHlPYmplY3RfQnl0ZXM9cHl0aG9uMzMuUHlPYmplY3RfQnl0ZXMKKyAgUHlPYmplY3RfQ2FsbD1weXRob24zMy5QeU9iamVjdF9DYWxsCisgIFB5T2JqZWN0X0NhbGxGdW5jdGlvbj1weXRob24zMy5QeU9iamVjdF9DYWxsRnVuY3Rpb24KKyAgUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncz1weXRob24zMy5QeU9iamVjdF9DYWxsRnVuY3Rpb25PYmpBcmdzCisgIFB5T2JqZWN0X0NhbGxNZXRob2Q9cHl0aG9uMzMuUHlPYmplY3RfQ2FsbE1ldGhvZAorICBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncz1weXRob24zMy5QeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncworICBQeU9iamVjdF9DYWxsT2JqZWN0PXB5dGhvbjMzLlB5T2JqZWN0X0NhbGxPYmplY3QKKyAgUHlPYmplY3RfQ2hlY2tSZWFkQnVmZmVyPXB5dGhvbjMzLlB5T2JqZWN0X0NoZWNrUmVhZEJ1ZmZlcgorICBQeU9iamVjdF9DbGVhcldlYWtSZWZzPXB5dGhvbjMzLlB5T2JqZWN0X0NsZWFyV2Vha1JlZnMKKyAgUHlPYmplY3RfRGVsSXRlbT1weXRob24zMy5QeU9iamVjdF9EZWxJdGVtCisgIFB5T2JqZWN0X0RlbEl0ZW1TdHJpbmc9cHl0aG9uMzMuUHlPYmplY3RfRGVsSXRlbVN0cmluZworICBQeU9iamVjdF9EaXI9cHl0aG9uMzMuUHlPYmplY3RfRGlyCisgIFB5T2JqZWN0X0Zvcm1hdD1weXRob24zMy5QeU9iamVjdF9Gb3JtYXQKKyAgUHlPYmplY3RfRnJlZT1weXRob24zMy5QeU9iamVjdF9GcmVlCisgIFB5T2JqZWN0X0dDX0RlbD1weXRob24zMy5QeU9iamVjdF9HQ19EZWwKKyAgUHlPYmplY3RfR0NfVHJhY2s9cHl0aG9uMzMuUHlPYmplY3RfR0NfVHJhY2sKKyAgUHlPYmplY3RfR0NfVW5UcmFjaz1weXRob24zMy5QeU9iamVjdF9HQ19VblRyYWNrCisgIFB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyPXB5dGhvbjMzLlB5T2JqZWN0X0dlbmVyaWNHZXRBdHRyCisgIFB5T2JqZWN0X0dlbmVyaWNTZXRBdHRyPXB5dGhvbjMzLlB5T2JqZWN0X0dlbmVyaWNTZXRBdHRyCisgIFB5T2JqZWN0X0dldEF0dHI9cHl0aG9uMzMuUHlPYmplY3RfR2V0QXR0cgorICBQeU9iamVjdF9HZXRBdHRyU3RyaW5nPXB5dGhvbjMzLlB5T2JqZWN0X0dldEF0dHJTdHJpbmcKKyAgUHlPYmplY3RfR2V0SXRlbT1weXRob24zMy5QeU9iamVjdF9HZXRJdGVtCisgIFB5T2JqZWN0X0dldEl0ZXI9cHl0aG9uMzMuUHlPYmplY3RfR2V0SXRlcgorICBQeU9iamVjdF9IYXNBdHRyPXB5dGhvbjMzLlB5T2JqZWN0X0hhc0F0dHIKKyAgUHlPYmplY3RfSGFzQXR0clN0cmluZz1weXRob24zMy5QeU9iamVjdF9IYXNBdHRyU3RyaW5nCisgIFB5T2JqZWN0X0hhc2g9cHl0aG9uMzMuUHlPYmplY3RfSGFzaAorICBQeU9iamVjdF9IYXNoTm90SW1wbGVtZW50ZWQ9cHl0aG9uMzMuUHlPYmplY3RfSGFzaE5vdEltcGxlbWVudGVkCisgIFB5T2JqZWN0X0luaXQ9cHl0aG9uMzMuUHlPYmplY3RfSW5pdAorICBQeU9iamVjdF9Jbml0VmFyPXB5dGhvbjMzLlB5T2JqZWN0X0luaXRWYXIKKyAgUHlPYmplY3RfSXNJbnN0YW5jZT1weXRob24zMy5QeU9iamVjdF9Jc0luc3RhbmNlCisgIFB5T2JqZWN0X0lzU3ViY2xhc3M9cHl0aG9uMzMuUHlPYmplY3RfSXNTdWJjbGFzcworICBQeU9iamVjdF9Jc1RydWU9cHl0aG9uMzMuUHlPYmplY3RfSXNUcnVlCisgIFB5T2JqZWN0X0xlbmd0aD1weXRob24zMy5QeU9iamVjdF9MZW5ndGgKKyAgUHlPYmplY3RfTWFsbG9jPXB5dGhvbjMzLlB5T2JqZWN0X01hbGxvYworICBQeU9iamVjdF9Ob3Q9cHl0aG9uMzMuUHlPYmplY3RfTm90CisgIFB5T2JqZWN0X1JlYWxsb2M9cHl0aG9uMzMuUHlPYmplY3RfUmVhbGxvYworICBQeU9iamVjdF9SZXByPXB5dGhvbjMzLlB5T2JqZWN0X1JlcHIKKyAgUHlPYmplY3RfUmljaENvbXBhcmU9cHl0aG9uMzMuUHlPYmplY3RfUmljaENvbXBhcmUKKyAgUHlPYmplY3RfUmljaENvbXBhcmVCb29sPXB5dGhvbjMzLlB5T2JqZWN0X1JpY2hDb21wYXJlQm9vbAorICBQeU9iamVjdF9TZWxmSXRlcj1weXRob24zMy5QeU9iamVjdF9TZWxmSXRlcgorICBQeU9iamVjdF9TZXRBdHRyPXB5dGhvbjMzLlB5T2JqZWN0X1NldEF0dHIKKyAgUHlPYmplY3RfU2V0QXR0clN0cmluZz1weXRob24zMy5QeU9iamVjdF9TZXRBdHRyU3RyaW5nCisgIFB5T2JqZWN0X1NldEl0ZW09cHl0aG9uMzMuUHlPYmplY3RfU2V0SXRlbQorICBQeU9iamVjdF9TaXplPXB5dGhvbjMzLlB5T2JqZWN0X1NpemUKKyAgUHlPYmplY3RfU3RyPXB5dGhvbjMzLlB5T2JqZWN0X1N0cgorICBQeU9iamVjdF9UeXBlPXB5dGhvbjMzLlB5T2JqZWN0X1R5cGUgREFUQQorICBQeVBhcnNlcl9TaW1wbGVQYXJzZUZpbGVGbGFncz1weXRob24zMy5QeVBhcnNlcl9TaW1wbGVQYXJzZUZpbGVGbGFncworICBQeVBhcnNlcl9TaW1wbGVQYXJzZVN0cmluZ0ZsYWdzPXB5dGhvbjMzLlB5UGFyc2VyX1NpbXBsZVBhcnNlU3RyaW5nRmxhZ3MKKyAgUHlQcm9wZXJ0eV9UeXBlPXB5dGhvbjMzLlB5UHJvcGVydHlfVHlwZSBEQVRBCisgIFB5UmFuZ2VJdGVyX1R5cGU9cHl0aG9uMzMuUHlSYW5nZUl0ZXJfVHlwZSBEQVRBCisgIFB5UmFuZ2VfVHlwZT1weXRob24zMy5QeVJhbmdlX1R5cGUgREFUQQorICBQeVJldmVyc2VkX1R5cGU9cHl0aG9uMzMuUHlSZXZlcnNlZF9UeXBlIERBVEEKKyAgUHlTZXFJdGVyX05ldz1weXRob24zMy5QeVNlcUl0ZXJfTmV3CisgIFB5U2VxSXRlcl9UeXBlPXB5dGhvbjMzLlB5U2VxSXRlcl9UeXBlIERBVEEKKyAgUHlTZXF1ZW5jZV9DaGVjaz1weXRob24zMy5QeVNlcXVlbmNlX0NoZWNrCisgIFB5U2VxdWVuY2VfQ29uY2F0PXB5dGhvbjMzLlB5U2VxdWVuY2VfQ29uY2F0CisgIFB5U2VxdWVuY2VfQ29udGFpbnM9cHl0aG9uMzMuUHlTZXF1ZW5jZV9Db250YWlucworICBQeVNlcXVlbmNlX0NvdW50PXB5dGhvbjMzLlB5U2VxdWVuY2VfQ291bnQKKyAgUHlTZXF1ZW5jZV9EZWxJdGVtPXB5dGhvbjMzLlB5U2VxdWVuY2VfRGVsSXRlbQorICBQeVNlcXVlbmNlX0RlbFNsaWNlPXB5dGhvbjMzLlB5U2VxdWVuY2VfRGVsU2xpY2UKKyAgUHlTZXF1ZW5jZV9GYXN0PXB5dGhvbjMzLlB5U2VxdWVuY2VfRmFzdAorICBQeVNlcXVlbmNlX0dldEl0ZW09cHl0aG9uMzMuUHlTZXF1ZW5jZV9HZXRJdGVtCisgIFB5U2VxdWVuY2VfR2V0U2xpY2U9cHl0aG9uMzMuUHlTZXF1ZW5jZV9HZXRTbGljZQorICBQeVNlcXVlbmNlX0luPXB5dGhvbjMzLlB5U2VxdWVuY2VfSW4KKyAgUHlTZXF1ZW5jZV9JblBsYWNlQ29uY2F0PXB5dGhvbjMzLlB5U2VxdWVuY2VfSW5QbGFjZUNvbmNhdAorICBQeVNlcXVlbmNlX0luUGxhY2VSZXBlYXQ9cHl0aG9uMzMuUHlTZXF1ZW5jZV9JblBsYWNlUmVwZWF0CisgIFB5U2VxdWVuY2VfSW5kZXg9cHl0aG9uMzMuUHlTZXF1ZW5jZV9JbmRleAorICBQeVNlcXVlbmNlX0xlbmd0aD1weXRob24zMy5QeVNlcXVlbmNlX0xlbmd0aAorICBQeVNlcXVlbmNlX0xpc3Q9cHl0aG9uMzMuUHlTZXF1ZW5jZV9MaXN0CisgIFB5U2VxdWVuY2VfUmVwZWF0PXB5dGhvbjMzLlB5U2VxdWVuY2VfUmVwZWF0CisgIFB5U2VxdWVuY2VfU2V0SXRlbT1weXRob24zMy5QeVNlcXVlbmNlX1NldEl0ZW0KKyAgUHlTZXF1ZW5jZV9TZXRTbGljZT1weXRob24zMy5QeVNlcXVlbmNlX1NldFNsaWNlCisgIFB5U2VxdWVuY2VfU2l6ZT1weXRob24zMy5QeVNlcXVlbmNlX1NpemUKKyAgUHlTZXF1ZW5jZV9UdXBsZT1weXRob24zMy5QeVNlcXVlbmNlX1R1cGxlCisgIFB5U2V0SXRlcl9UeXBlPXB5dGhvbjMzLlB5U2V0SXRlcl9UeXBlIERBVEEKKyAgUHlTZXRfQWRkPXB5dGhvbjMzLlB5U2V0X0FkZAorICBQeVNldF9DbGVhcj1weXRob24zMy5QeVNldF9DbGVhcgorICBQeVNldF9Db250YWlucz1weXRob24zMy5QeVNldF9Db250YWlucworICBQeVNldF9EaXNjYXJkPXB5dGhvbjMzLlB5U2V0X0Rpc2NhcmQKKyAgUHlTZXRfTmV3PXB5dGhvbjMzLlB5U2V0X05ldworICBQeVNldF9Qb3A9cHl0aG9uMzMuUHlTZXRfUG9wCisgIFB5U2V0X1NpemU9cHl0aG9uMzMuUHlTZXRfU2l6ZQorICBQeVNldF9UeXBlPXB5dGhvbjMzLlB5U2V0X1R5cGUgREFUQQorICBQeVNsaWNlX0dldEluZGljZXM9cHl0aG9uMzMuUHlTbGljZV9HZXRJbmRpY2VzCisgIFB5U2xpY2VfR2V0SW5kaWNlc0V4PXB5dGhvbjMzLlB5U2xpY2VfR2V0SW5kaWNlc0V4CisgIFB5U2xpY2VfTmV3PXB5dGhvbjMzLlB5U2xpY2VfTmV3CisgIFB5U2xpY2VfVHlwZT1weXRob24zMy5QeVNsaWNlX1R5cGUgREFUQQorICBQeVNvcnRXcmFwcGVyX1R5cGU9cHl0aG9uMzMuUHlTb3J0V3JhcHBlcl9UeXBlIERBVEEKKyAgUHlTdGF0ZV9GaW5kTW9kdWxlPXB5dGhvbjMzLlB5U3RhdGVfRmluZE1vZHVsZQorICBQeVN0YXRlX0FkZE1vZHVsZT1weXRob24zMy5QeVN0YXRlX0FkZE1vZHVsZQorICBQeVN0YXRlX1JlbW92ZU1vZHVsZT1weXRob24zMy5QeVN0YXRlX1JlbW92ZU1vZHVsZQorICBQeVN0cnVjdFNlcXVlbmNlX0dldEl0ZW09cHl0aG9uMzMuUHlTdHJ1Y3RTZXF1ZW5jZV9HZXRJdGVtCisgIFB5U3RydWN0U2VxdWVuY2VfTmV3PXB5dGhvbjMzLlB5U3RydWN0U2VxdWVuY2VfTmV3CisgIFB5U3RydWN0U2VxdWVuY2VfTmV3VHlwZT1weXRob24zMy5QeVN0cnVjdFNlcXVlbmNlX05ld1R5cGUKKyAgUHlTdHJ1Y3RTZXF1ZW5jZV9TZXRJdGVtPXB5dGhvbjMzLlB5U3RydWN0U2VxdWVuY2VfU2V0SXRlbQorICBQeVN1cGVyX1R5cGU9cHl0aG9uMzMuUHlTdXBlcl9UeXBlIERBVEEKKyAgUHlTeXNfQWRkV2Fybk9wdGlvbj1weXRob24zMy5QeVN5c19BZGRXYXJuT3B0aW9uCisgIFB5U3lzX0FkZFdhcm5PcHRpb25Vbmljb2RlPXB5dGhvbjMzLlB5U3lzX0FkZFdhcm5PcHRpb25Vbmljb2RlCisgIFB5U3lzX0Zvcm1hdFN0ZGVycj1weXRob24zMy5QeVN5c19Gb3JtYXRTdGRlcnIKKyAgUHlTeXNfRm9ybWF0U3Rkb3V0PXB5dGhvbjMzLlB5U3lzX0Zvcm1hdFN0ZG91dAorICBQeVN5c19HZXRPYmplY3Q9cHl0aG9uMzMuUHlTeXNfR2V0T2JqZWN0CisgIFB5U3lzX0hhc1dhcm5PcHRpb25zPXB5dGhvbjMzLlB5U3lzX0hhc1dhcm5PcHRpb25zCisgIFB5U3lzX1Jlc2V0V2Fybk9wdGlvbnM9cHl0aG9uMzMuUHlTeXNfUmVzZXRXYXJuT3B0aW9ucworICBQeVN5c19TZXRBcmd2PXB5dGhvbjMzLlB5U3lzX1NldEFyZ3YKKyAgUHlTeXNfU2V0QXJndkV4PXB5dGhvbjMzLlB5U3lzX1NldEFyZ3ZFeAorICBQeVN5c19TZXRPYmplY3Q9cHl0aG9uMzMuUHlTeXNfU2V0T2JqZWN0CisgIFB5U3lzX1NldFBhdGg9cHl0aG9uMzMuUHlTeXNfU2V0UGF0aAorICBQeVN5c19Xcml0ZVN0ZGVycj1weXRob24zMy5QeVN5c19Xcml0ZVN0ZGVycgorICBQeVN5c19Xcml0ZVN0ZG91dD1weXRob24zMy5QeVN5c19Xcml0ZVN0ZG91dAorICBQeVRocmVhZFN0YXRlX0NsZWFyPXB5dGhvbjMzLlB5VGhyZWFkU3RhdGVfQ2xlYXIKKyAgUHlUaHJlYWRTdGF0ZV9EZWxldGU9cHl0aG9uMzMuUHlUaHJlYWRTdGF0ZV9EZWxldGUKKyAgUHlUaHJlYWRTdGF0ZV9EZWxldGVDdXJyZW50PXB5dGhvbjMzLlB5VGhyZWFkU3RhdGVfRGVsZXRlQ3VycmVudAorICBQeVRocmVhZFN0YXRlX0dldD1weXRob24zMy5QeVRocmVhZFN0YXRlX0dldAorICBQeVRocmVhZFN0YXRlX0dldERpY3Q9cHl0aG9uMzMuUHlUaHJlYWRTdGF0ZV9HZXREaWN0CisgIFB5VGhyZWFkU3RhdGVfTmV3PXB5dGhvbjMzLlB5VGhyZWFkU3RhdGVfTmV3CisgIFB5VGhyZWFkU3RhdGVfU2V0QXN5bmNFeGM9cHl0aG9uMzMuUHlUaHJlYWRTdGF0ZV9TZXRBc3luY0V4YworICBQeVRocmVhZFN0YXRlX1N3YXA9cHl0aG9uMzMuUHlUaHJlYWRTdGF0ZV9Td2FwCisgIFB5VHJhY2VCYWNrX0hlcmU9cHl0aG9uMzMuUHlUcmFjZUJhY2tfSGVyZQorICBQeVRyYWNlQmFja19QcmludD1weXRob24zMy5QeVRyYWNlQmFja19QcmludAorICBQeVRyYWNlQmFja19UeXBlPXB5dGhvbjMzLlB5VHJhY2VCYWNrX1R5cGUgREFUQQorICBQeVR1cGxlSXRlcl9UeXBlPXB5dGhvbjMzLlB5VHVwbGVJdGVyX1R5cGUgREFUQQorICBQeVR1cGxlX0NsZWFyRnJlZUxpc3Q9cHl0aG9uMzMuUHlUdXBsZV9DbGVhckZyZWVMaXN0CisgIFB5VHVwbGVfR2V0SXRlbT1weXRob24zMy5QeVR1cGxlX0dldEl0ZW0KKyAgUHlUdXBsZV9HZXRTbGljZT1weXRob24zMy5QeVR1cGxlX0dldFNsaWNlCisgIFB5VHVwbGVfTmV3PXB5dGhvbjMzLlB5VHVwbGVfTmV3CisgIFB5VHVwbGVfUGFjaz1weXRob24zMy5QeVR1cGxlX1BhY2sKKyAgUHlUdXBsZV9TZXRJdGVtPXB5dGhvbjMzLlB5VHVwbGVfU2V0SXRlbQorICBQeVR1cGxlX1NpemU9cHl0aG9uMzMuUHlUdXBsZV9TaXplCisgIFB5VHVwbGVfVHlwZT1weXRob24zMy5QeVR1cGxlX1R5cGUgREFUQQorICBQeVR5cGVfQ2xlYXJDYWNoZT1weXRob24zMy5QeVR5cGVfQ2xlYXJDYWNoZQorICBQeVR5cGVfRnJvbVNwZWM9cHl0aG9uMzMuUHlUeXBlX0Zyb21TcGVjCisgIFB5VHlwZV9Gcm9tU3BlY1dpdGhCYXNlcz1weXRob24zMy5QeVR5cGVfRnJvbVNwZWNXaXRoQmFzZXMKKyAgUHlUeXBlX0dlbmVyaWNBbGxvYz1weXRob24zMy5QeVR5cGVfR2VuZXJpY0FsbG9jCisgIFB5VHlwZV9HZW5lcmljTmV3PXB5dGhvbjMzLlB5VHlwZV9HZW5lcmljTmV3CisgIFB5VHlwZV9HZXRGbGFncz1weXRob24zMy5QeVR5cGVfR2V0RmxhZ3MKKyAgUHlUeXBlX0lzU3VidHlwZT1weXRob24zMy5QeVR5cGVfSXNTdWJ0eXBlCisgIFB5VHlwZV9Nb2RpZmllZD1weXRob24zMy5QeVR5cGVfTW9kaWZpZWQKKyAgUHlUeXBlX1JlYWR5PXB5dGhvbjMzLlB5VHlwZV9SZWFkeQorICBQeVR5cGVfVHlwZT1weXRob24zMy5QeVR5cGVfVHlwZSBEQVRBCisgIFB5VW5pY29kZURlY29kZUVycm9yX0NyZWF0ZT1weXRob24zMy5QeVVuaWNvZGVEZWNvZGVFcnJvcl9DcmVhdGUKKyAgUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0RW5jb2Rpbmc9cHl0aG9uMzMuUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0RW5jb2RpbmcKKyAgUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0RW5kPXB5dGhvbjMzLlB5VW5pY29kZURlY29kZUVycm9yX0dldEVuZAorICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRPYmplY3Q9cHl0aG9uMzMuUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0T2JqZWN0CisgIFB5VW5pY29kZURlY29kZUVycm9yX0dldFJlYXNvbj1weXRob24zMy5QeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRSZWFzb24KKyAgUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0U3RhcnQ9cHl0aG9uMzMuUHlVbmljb2RlRGVjb2RlRXJyb3JfR2V0U3RhcnQKKyAgUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0RW5kPXB5dGhvbjMzLlB5VW5pY29kZURlY29kZUVycm9yX1NldEVuZAorICBQeVVuaWNvZGVEZWNvZGVFcnJvcl9TZXRSZWFzb249cHl0aG9uMzMuUHlVbmljb2RlRGVjb2RlRXJyb3JfU2V0UmVhc29uCisgIFB5VW5pY29kZURlY29kZUVycm9yX1NldFN0YXJ0PXB5dGhvbjMzLlB5VW5pY29kZURlY29kZUVycm9yX1NldFN0YXJ0CisgIFB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuY29kaW5nPXB5dGhvbjMzLlB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuY29kaW5nCisgIFB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuZD1weXRob24zMy5QeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRFbmQKKyAgUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0T2JqZWN0PXB5dGhvbjMzLlB5VW5pY29kZUVuY29kZUVycm9yX0dldE9iamVjdAorICBQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRSZWFzb249cHl0aG9uMzMuUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0UmVhc29uCisgIFB5VW5pY29kZUVuY29kZUVycm9yX0dldFN0YXJ0PXB5dGhvbjMzLlB5VW5pY29kZUVuY29kZUVycm9yX0dldFN0YXJ0CisgIFB5VW5pY29kZUVuY29kZUVycm9yX1NldEVuZD1weXRob24zMy5QeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRFbmQKKyAgUHlVbmljb2RlRW5jb2RlRXJyb3JfU2V0UmVhc29uPXB5dGhvbjMzLlB5VW5pY29kZUVuY29kZUVycm9yX1NldFJlYXNvbgorICBQeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRTdGFydD1weXRob24zMy5QeVVuaWNvZGVFbmNvZGVFcnJvcl9TZXRTdGFydAorICBQeVVuaWNvZGVJdGVyX1R5cGU9cHl0aG9uMzMuUHlVbmljb2RlSXRlcl9UeXBlIERBVEEKKyAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0RW5kPXB5dGhvbjMzLlB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0dldEVuZAorICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRPYmplY3Q9cHl0aG9uMzMuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0T2JqZWN0CisgIFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0dldFJlYXNvbj1weXRob24zMy5QeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRSZWFzb24KKyAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0U3RhcnQ9cHl0aG9uMzMuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfR2V0U3RhcnQKKyAgUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0RW5kPXB5dGhvbjMzLlB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX1NldEVuZAorICBQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9TZXRSZWFzb249cHl0aG9uMzMuUHlVbmljb2RlVHJhbnNsYXRlRXJyb3JfU2V0UmVhc29uCisgIFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX1NldFN0YXJ0PXB5dGhvbjMzLlB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX1NldFN0YXJ0CisgIFB5VW5pY29kZV9BcHBlbmQ9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9BcHBlbmQKKyAgUHlVbmljb2RlX0FwcGVuZEFuZERlbD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0FwcGVuZEFuZERlbAorICBQeVVuaWNvZGVfQXNBU0NJSVN0cmluZz1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0FzQVNDSUlTdHJpbmcKKyAgUHlVbmljb2RlX0FzQ2hhcm1hcFN0cmluZz1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0FzQ2hhcm1hcFN0cmluZworICBQeVVuaWNvZGVfQXNEZWNvZGVkT2JqZWN0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNEZWNvZGVkT2JqZWN0CisgIFB5VW5pY29kZV9Bc0RlY29kZWRVbmljb2RlPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNEZWNvZGVkVW5pY29kZQorICBQeVVuaWNvZGVfQXNFbmNvZGVkT2JqZWN0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNFbmNvZGVkT2JqZWN0CisgIFB5VW5pY29kZV9Bc0VuY29kZWRTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc0VuY29kZWRTdHJpbmcKKyAgUHlVbmljb2RlX0FzRW5jb2RlZFVuaWNvZGU9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc0VuY29kZWRVbmljb2RlCisgIFB5VW5pY29kZV9Bc0xhdGluMVN0cmluZz1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0FzTGF0aW4xU3RyaW5nCisgIFB5VW5pY29kZV9Bc1Jhd1VuaWNvZGVFc2NhcGVTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc1Jhd1VuaWNvZGVFc2NhcGVTdHJpbmcKKyAgUHlVbmljb2RlX0FzVVRGMTZTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc1VURjE2U3RyaW5nCisgIFB5VW5pY29kZV9Bc1VURjMyU3RyaW5nPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNVVEYzMlN0cmluZworICBQeVVuaWNvZGVfQXNVVEY4U3RyaW5nPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQXNVVEY4U3RyaW5nCisgIFB5VW5pY29kZV9Bc1VuaWNvZGVFc2NhcGVTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc1VuaWNvZGVFc2NhcGVTdHJpbmcKKyAgUHlVbmljb2RlX0FzV2lkZUNoYXI9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Bc1dpZGVDaGFyCisgIFB5VW5pY29kZV9DbGVhckZyZWVsaXN0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfQ2xlYXJGcmVlbGlzdAorICBQeVVuaWNvZGVfQ29tcGFyZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0NvbXBhcmUKKyAgUHlVbmljb2RlX0NvbmNhdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0NvbmNhdAorICBQeVVuaWNvZGVfQ29udGFpbnM9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Db250YWlucworICBQeVVuaWNvZGVfQ291bnQ9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Db3VudAorICBQeVVuaWNvZGVfRGVjb2RlPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlCisgIFB5VW5pY29kZV9EZWNvZGVBU0NJST1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0RlY29kZUFTQ0lJCisgIFB5VW5pY29kZV9EZWNvZGVDaGFybWFwPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlQ2hhcm1hcAorICBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlRlNEZWZhdWx0CisgIFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHRBbmRTaXplPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlRlNEZWZhdWx0QW5kU2l6ZQorICBQeVVuaWNvZGVfRGVjb2RlTGF0aW4xPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlTGF0aW4xCisgIFB5VW5pY29kZV9EZWNvZGVSYXdVbmljb2RlRXNjYXBlPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlUmF3VW5pY29kZUVzY2FwZQorICBQeVVuaWNvZGVfRGVjb2RlVVRGMTY9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYxNgorICBQeVVuaWNvZGVfRGVjb2RlVVRGMTZTdGF0ZWZ1bD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0RlY29kZVVURjE2U3RhdGVmdWwKKyAgUHlVbmljb2RlX0RlY29kZVVURjMyPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlVVRGMzIKKyAgUHlVbmljb2RlX0RlY29kZVVURjMyU3RhdGVmdWw9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9EZWNvZGVVVEYzMlN0YXRlZnVsCisgIFB5VW5pY29kZV9EZWNvZGVVVEY4PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlVVRGOAorICBQeVVuaWNvZGVfRGVjb2RlVVRGOFN0YXRlZnVsPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlVVRGOFN0YXRlZnVsCisgIFB5VW5pY29kZV9EZWNvZGVVbmljb2RlRXNjYXBlPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRGVjb2RlVW5pY29kZUVzY2FwZQorICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXI9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9GU0NvbnZlcnRlcgorICBQeVVuaWNvZGVfRlNEZWNvZGVyPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRlNEZWNvZGVyCisgIFB5VW5pY29kZV9GaW5kPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRmluZAorICBQeVVuaWNvZGVfRm9ybWF0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRm9ybWF0CisgIFB5VW5pY29kZV9Gcm9tRW5jb2RlZE9iamVjdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0Zyb21FbmNvZGVkT2JqZWN0CisgIFB5VW5pY29kZV9Gcm9tRm9ybWF0PXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRnJvbUZvcm1hdAorICBQeVVuaWNvZGVfRnJvbUZvcm1hdFY9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Gcm9tRm9ybWF0VgorICBQeVVuaWNvZGVfRnJvbU9iamVjdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0Zyb21PYmplY3QKKyAgUHlVbmljb2RlX0Zyb21PcmRpbmFsPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfRnJvbU9yZGluYWwKKyAgUHlVbmljb2RlX0Zyb21TdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Gcm9tU3RyaW5nCisgIFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0Zyb21TdHJpbmdBbmRTaXplCisgIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXI9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9Gcm9tV2lkZUNoYXIKKyAgUHlVbmljb2RlX0dldERlZmF1bHRFbmNvZGluZz1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0dldERlZmF1bHRFbmNvZGluZworICBQeVVuaWNvZGVfR2V0U2l6ZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0dldFNpemUKKyAgUHlVbmljb2RlX0lzSWRlbnRpZmllcj1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0lzSWRlbnRpZmllcgorICBQeVVuaWNvZGVfSm9pbj1weXRob24zMy5QeVVuaWNvZGVVQ1MyX0pvaW4KKyAgUHlVbmljb2RlX1BhcnRpdGlvbj1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1BhcnRpdGlvbgorICBQeVVuaWNvZGVfUlBhcnRpdGlvbj1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1JQYXJ0aXRpb24KKyAgUHlVbmljb2RlX1JTcGxpdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1JTcGxpdAorICBQeVVuaWNvZGVfUmVwbGFjZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1JlcGxhY2UKKyAgUHlVbmljb2RlX1Jlc2l6ZT1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1Jlc2l6ZQorICBQeVVuaWNvZGVfUmljaENvbXBhcmU9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9SaWNoQ29tcGFyZQorICBQeVVuaWNvZGVfU2V0RGVmYXVsdEVuY29kaW5nPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfU2V0RGVmYXVsdEVuY29kaW5nCisgIFB5VW5pY29kZV9TcGxpdD1weXRob24zMy5QeVVuaWNvZGVVQ1MyX1NwbGl0CisgIFB5VW5pY29kZV9TcGxpdGxpbmVzPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfU3BsaXRsaW5lcworICBQeVVuaWNvZGVfVGFpbG1hdGNoPXB5dGhvbjMzLlB5VW5pY29kZVVDUzJfVGFpbG1hdGNoCisgIFB5VW5pY29kZV9UcmFuc2xhdGU9cHl0aG9uMzMuUHlVbmljb2RlVUNTMl9UcmFuc2xhdGUKKyAgUHlVbmljb2RlX0J1aWxkRW5jb2RpbmdNYXA9cHl0aG9uMzMuUHlVbmljb2RlX0J1aWxkRW5jb2RpbmdNYXAKKyAgUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmc9cHl0aG9uMzMuUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcKKyAgUHlVbmljb2RlX0RlY29kZVVURjc9cHl0aG9uMzMuUHlVbmljb2RlX0RlY29kZVVURjcKKyAgUHlVbmljb2RlX0RlY29kZVVURjdTdGF0ZWZ1bD1weXRob24zMy5QeVVuaWNvZGVfRGVjb2RlVVRGN1N0YXRlZnVsCisgIFB5VW5pY29kZV9FbmNvZGVGU0RlZmF1bHQ9cHl0aG9uMzMuUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdAorICBQeVVuaWNvZGVfSW50ZXJuRnJvbVN0cmluZz1weXRob24zMy5QeVVuaWNvZGVfSW50ZXJuRnJvbVN0cmluZworICBQeVVuaWNvZGVfSW50ZXJuSW1tb3J0YWw9cHl0aG9uMzMuUHlVbmljb2RlX0ludGVybkltbW9ydGFsCisgIFB5VW5pY29kZV9JbnRlcm5JblBsYWNlPXB5dGhvbjMzLlB5VW5pY29kZV9JbnRlcm5JblBsYWNlCisgIFB5VW5pY29kZV9UeXBlPXB5dGhvbjMzLlB5VW5pY29kZV9UeXBlIERBVEEKKyAgUHlXZWFrcmVmX0dldE9iamVjdD1weXRob24zMy5QeVdlYWtyZWZfR2V0T2JqZWN0IERBVEEKKyAgUHlXZWFrcmVmX05ld1Byb3h5PXB5dGhvbjMzLlB5V2Vha3JlZl9OZXdQcm94eQorICBQeVdlYWtyZWZfTmV3UmVmPXB5dGhvbjMzLlB5V2Vha3JlZl9OZXdSZWYKKyAgUHlXcmFwcGVyRGVzY3JfVHlwZT1weXRob24zMy5QeVdyYXBwZXJEZXNjcl9UeXBlIERBVEEKKyAgUHlXcmFwcGVyX05ldz1weXRob24zMy5QeVdyYXBwZXJfTmV3CisgIFB5WmlwX1R5cGU9cHl0aG9uMzMuUHlaaXBfVHlwZSBEQVRBCisgIFB5X0FkZFBlbmRpbmdDYWxsPXB5dGhvbjMzLlB5X0FkZFBlbmRpbmdDYWxsCisgIFB5X0F0RXhpdD1weXRob24zMy5QeV9BdEV4aXQKKyAgUHlfQnVpbGRWYWx1ZT1weXRob24zMy5QeV9CdWlsZFZhbHVlCisgIFB5X0NvbXBpbGVTdHJpbmc9cHl0aG9uMzMuUHlfQ29tcGlsZVN0cmluZworICBQeV9EZWNSZWY9cHl0aG9uMzMuUHlfRGVjUmVmCisgIFB5X0VuZEludGVycHJldGVyPXB5dGhvbjMzLlB5X0VuZEludGVycHJldGVyCisgIFB5X0V4aXQ9cHl0aG9uMzMuUHlfRXhpdAorICBQeV9GYXRhbEVycm9yPXB5dGhvbjMzLlB5X0ZhdGFsRXJyb3IKKyAgUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZz1weXRob24zMy5QeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nIERBVEEKKyAgUHlfRmluYWxpemU9cHl0aG9uMzMuUHlfRmluYWxpemUKKyAgUHlfR2V0QnVpbGRJbmZvPXB5dGhvbjMzLlB5X0dldEJ1aWxkSW5mbworICBQeV9HZXRDb21waWxlcj1weXRob24zMy5QeV9HZXRDb21waWxlcgorICBQeV9HZXRDb3B5cmlnaHQ9cHl0aG9uMzMuUHlfR2V0Q29weXJpZ2h0CisgIFB5X0dldEV4ZWNQcmVmaXg9cHl0aG9uMzMuUHlfR2V0RXhlY1ByZWZpeAorICBQeV9HZXRQYXRoPXB5dGhvbjMzLlB5X0dldFBhdGgKKyAgUHlfR2V0UGxhdGZvcm09cHl0aG9uMzMuUHlfR2V0UGxhdGZvcm0KKyAgUHlfR2V0UHJlZml4PXB5dGhvbjMzLlB5X0dldFByZWZpeAorICBQeV9HZXRQcm9ncmFtRnVsbFBhdGg9cHl0aG9uMzMuUHlfR2V0UHJvZ3JhbUZ1bGxQYXRoCisgIFB5X0dldFByb2dyYW1OYW1lPXB5dGhvbjMzLlB5X0dldFByb2dyYW1OYW1lCisgIFB5X0dldFB5dGhvbkhvbWU9cHl0aG9uMzMuUHlfR2V0UHl0aG9uSG9tZQorICBQeV9HZXRSZWN1cnNpb25MaW1pdD1weXRob24zMy5QeV9HZXRSZWN1cnNpb25MaW1pdAorICBQeV9HZXRWZXJzaW9uPXB5dGhvbjMzLlB5X0dldFZlcnNpb24KKyAgUHlfSGFzRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZz1weXRob24zMy5QeV9IYXNGaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nIERBVEEKKyAgUHlfSW5jUmVmPXB5dGhvbjMzLlB5X0luY1JlZgorICBQeV9Jbml0aWFsaXplPXB5dGhvbjMzLlB5X0luaXRpYWxpemUKKyAgUHlfSW5pdGlhbGl6ZUV4PXB5dGhvbjMzLlB5X0luaXRpYWxpemVFeAorICBQeV9Jc0luaXRpYWxpemVkPXB5dGhvbjMzLlB5X0lzSW5pdGlhbGl6ZWQKKyAgUHlfTWFpbj1weXRob24zMy5QeV9NYWluCisgIFB5X01ha2VQZW5kaW5nQ2FsbHM9cHl0aG9uMzMuUHlfTWFrZVBlbmRpbmdDYWxscworICBQeV9OZXdJbnRlcnByZXRlcj1weXRob24zMy5QeV9OZXdJbnRlcnByZXRlcgorICBQeV9SZXByRW50ZXI9cHl0aG9uMzMuUHlfUmVwckVudGVyCisgIFB5X1JlcHJMZWF2ZT1weXRob24zMy5QeV9SZXByTGVhdmUKKyAgUHlfU2V0UHJvZ3JhbU5hbWU9cHl0aG9uMzMuUHlfU2V0UHJvZ3JhbU5hbWUKKyAgUHlfU2V0UHl0aG9uSG9tZT1weXRob24zMy5QeV9TZXRQeXRob25Ib21lCisgIFB5X1NldFJlY3Vyc2lvbkxpbWl0PXB5dGhvbjMzLlB5X1NldFJlY3Vyc2lvbkxpbWl0CisgIFB5X1N5bXRhYmxlU3RyaW5nPXB5dGhvbjMzLlB5X1N5bXRhYmxlU3RyaW5nCisgIFB5X1ZhQnVpbGRWYWx1ZT1weXRob24zMy5QeV9WYUJ1aWxkVmFsdWUKKyAgX1B5RXJyX0JhZEludGVybmFsQ2FsbD1weXRob24zMy5fUHlFcnJfQmFkSW50ZXJuYWxDYWxsCisgIF9QeU9iamVjdF9DYWxsRnVuY3Rpb25fU2l6ZVQ9cHl0aG9uMzMuX1B5T2JqZWN0X0NhbGxGdW5jdGlvbl9TaXplVAorICBfUHlPYmplY3RfQ2FsbE1ldGhvZF9TaXplVD1weXRob24zMy5fUHlPYmplY3RfQ2FsbE1ldGhvZF9TaXplVAorICBfUHlPYmplY3RfR0NfTWFsbG9jPXB5dGhvbjMzLl9QeU9iamVjdF9HQ19NYWxsb2MKKyAgX1B5T2JqZWN0X0dDX05ldz1weXRob24zMy5fUHlPYmplY3RfR0NfTmV3CisgIF9QeU9iamVjdF9HQ19OZXdWYXI9cHl0aG9uMzMuX1B5T2JqZWN0X0dDX05ld1ZhcgorICBfUHlPYmplY3RfR0NfUmVzaXplPXB5dGhvbjMzLl9QeU9iamVjdF9HQ19SZXNpemUKKyAgX1B5T2JqZWN0X05ldz1weXRob24zMy5fUHlPYmplY3RfTmV3CisgIF9QeU9iamVjdF9OZXdWYXI9cHl0aG9uMzMuX1B5T2JqZWN0X05ld1ZhcgorICBfUHlTdGF0ZV9BZGRNb2R1bGU9cHl0aG9uMzMuX1B5U3RhdGVfQWRkTW9kdWxlCisgIF9QeVRocmVhZFN0YXRlX0luaXQ9cHl0aG9uMzMuX1B5VGhyZWFkU3RhdGVfSW5pdAorICBfUHlUaHJlYWRTdGF0ZV9QcmVhbGxvYz1weXRob24zMy5fUHlUaHJlYWRTdGF0ZV9QcmVhbGxvYworICBfUHlUcmFzaF9kZWxldGVfbGF0ZXI9cHl0aG9uMzMuX1B5VHJhc2hfZGVsZXRlX2xhdGVyIERBVEEKKyAgX1B5VHJhc2hfZGVsZXRlX25lc3Rpbmc9cHl0aG9uMzMuX1B5VHJhc2hfZGVsZXRlX25lc3RpbmcgREFUQQorICBfUHlUcmFzaF9kZXBvc2l0X29iamVjdD1weXRob24zMy5fUHlUcmFzaF9kZXBvc2l0X29iamVjdAorICBfUHlUcmFzaF9kZXN0cm95X2NoYWluPXB5dGhvbjMzLl9QeVRyYXNoX2Rlc3Ryb3lfY2hhaW4KKyAgX1B5V2Vha3JlZl9DYWxsYWJsZVByb3h5VHlwZT1weXRob24zMy5fUHlXZWFrcmVmX0NhbGxhYmxlUHJveHlUeXBlIERBVEEKKyAgX1B5V2Vha3JlZl9Qcm94eVR5cGU9cHl0aG9uMzMuX1B5V2Vha3JlZl9Qcm94eVR5cGUgREFUQQorICBfUHlXZWFrcmVmX1JlZlR5cGU9cHl0aG9uMzMuX1B5V2Vha3JlZl9SZWZUeXBlIERBVEEKKyAgX1B5X0J1aWxkVmFsdWVfU2l6ZVQ9cHl0aG9uMzMuX1B5X0J1aWxkVmFsdWVfU2l6ZVQKKyAgX1B5X0NoZWNrUmVjdXJzaW9uTGltaXQ9cHl0aG9uMzMuX1B5X0NoZWNrUmVjdXJzaW9uTGltaXQgREFUQQorICBfUHlfQ2hlY2tSZWN1cnNpdmVDYWxsPXB5dGhvbjMzLl9QeV9DaGVja1JlY3Vyc2l2ZUNhbGwKKyAgX1B5X0RlYWxsb2M9cHl0aG9uMzMuX1B5X0RlYWxsb2MKKyAgX1B5X0VsbGlwc2lzT2JqZWN0PXB5dGhvbjMzLl9QeV9FbGxpcHNpc09iamVjdCBEQVRBCisgIF9QeV9GYWxzZVN0cnVjdD1weXRob24zMy5fUHlfRmFsc2VTdHJ1Y3QgREFUQQorICBfUHlfTm9uZVN0cnVjdD1weXRob24zMy5fUHlfTm9uZVN0cnVjdCBEQVRBCisgIF9QeV9Ob3RJbXBsZW1lbnRlZFN0cnVjdD1weXRob24zMy5fUHlfTm90SW1wbGVtZW50ZWRTdHJ1Y3QgREFUQQorICBfUHlfU3dhcHBlZE9wPXB5dGhvbjMzLl9QeV9Td2FwcGVkT3AgREFUQQorICBfUHlfVHJ1ZVN0cnVjdD1weXRob24zMy5fUHlfVHJ1ZVN0cnVjdCBEQVRBCisgIF9QeV9WYUJ1aWxkVmFsdWVfU2l6ZVQ9cHl0aG9uMzMuX1B5X1ZhQnVpbGRWYWx1ZV9TaXplVAorICBfUHlBcmdfUGFyc2VfU2l6ZVQ9cHl0aG9uMzMuX1B5QXJnX1BhcnNlX1NpemVUCisgIF9QeUFyZ19QYXJzZVR1cGxlX1NpemVUPXB5dGhvbjMzLl9QeUFyZ19QYXJzZVR1cGxlX1NpemVUCisgIF9QeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHNfU2l6ZVQ9cHl0aG9uMzMuX1B5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3Jkc19TaXplVAorICBfUHlBcmdfVmFQYXJzZV9TaXplVD1weXRob24zMy5fUHlBcmdfVmFQYXJzZV9TaXplVAorICBfUHlBcmdfVmFQYXJzZVR1cGxlQW5kS2V5d29yZHNfU2l6ZVQ9cHl0aG9uMzMuX1B5QXJnX1ZhUGFyc2VUdXBsZUFuZEtleXdvcmRzX1NpemVUCisgIF9QeV9CdWlsZFZhbHVlX1NpemVUPXB5dGhvbjMzLl9QeV9CdWlsZFZhbHVlX1NpemVUCmRpZmYgLS1naXQgYS9QQy9weXRob24zLm1hayBiL1BDL3B5dGhvbjMubWFrCmluZGV4IGE3ZjAxY2IuLjJlYzkxODUgMTAwNjQ0Ci0tLSBhL1BDL3B5dGhvbjMubWFrCisrKyBiL1BDL3B5dGhvbjMubWFrCkBAIC0xLDEwICsxLDEwIEBACi0kKE91dERpcilweXRob24zLmRsbDoJcHl0aG9uMy5kZWYgJChPdXREaXIpcHl0aG9uMzJzdHViLmxpYgotCWNsIC9MRCAvRmUkKE91dERpcilweXRob24zLmRsbCBweXRob24zZGxsLmMgcHl0aG9uMy5kZWYgJChPdXREaXIpcHl0aG9uMzJzdHViLmxpYgorJChPdXREaXIpcHl0aG9uMy5kbGw6CXB5dGhvbjMuZGVmICQoT3V0RGlyKXB5dGhvbjMzc3R1Yi5saWIKKwljbCAvTEQgL0ZlJChPdXREaXIpcHl0aG9uMy5kbGwgcHl0aG9uM2RsbC5jIHB5dGhvbjMuZGVmICQoT3V0RGlyKXB5dGhvbjMzc3R1Yi5saWIKIAotJChPdXREaXIpcHl0aG9uMzJzdHViLmxpYjoJcHl0aG9uMzJzdHViLmRlZgotCWxpYiAvZGVmOnB5dGhvbjMyc3R1Yi5kZWYgL291dDokKE91dERpcilweXRob24zMnN0dWIubGliIC9NQUNISU5FOiQoTUFDSElORSkKKyQoT3V0RGlyKXB5dGhvbjMzc3R1Yi5saWI6CXB5dGhvbjMzc3R1Yi5kZWYKKwlsaWIgL2RlZjpweXRob24zM3N0dWIuZGVmIC9vdXQ6JChPdXREaXIpcHl0aG9uMzNzdHViLmxpYiAvTUFDSElORTokKE1BQ0hJTkUpCiAKIGNsZWFuOgotCWRlbCAkKE91dERpcilweXRob24zLmRsbCAkKE91dERpcilweXRob24zLmxpYiAkKE91dERpcilweXRob24zMnN0dWIubGliICQoT3V0RGlyKXB5dGhvbjMuZXhwICQoT3V0RGlyKXB5dGhvbjMyc3R1Yi5leHAKKwlkZWwgJChPdXREaXIpcHl0aG9uMy5kbGwgJChPdXREaXIpcHl0aG9uMy5saWIgJChPdXREaXIpcHl0aG9uMzNzdHViLmxpYiAkKE91dERpcilweXRob24zLmV4cCAkKE91dERpcilweXRob24zM3N0dWIuZXhwCiAKIHJlYnVpbGQ6IGNsZWFuICQoT3V0RGlyKXB5dGhvbjMuZGxsCmRpZmYgLS1naXQgYS9QQy9weXRob24zMmdlbi5weSBiL1BDL3B5dGhvbjMzZ2VuLnB5CnNpbWlsYXJpdHkgaW5kZXggNjMlCnJlbmFtZSBmcm9tIFBDL3B5dGhvbjMyZ2VuLnB5CnJlbmFtZSB0byBQQy9weXRob24zM2dlbi5weQppbmRleCA5MTgyZDU0Li4yMWI5ZjU2IDEwMDY0NAotLS0gYS9QQy9weXRob24zMmdlbi5weQorKysgYi9QQy9weXRob24zM2dlbi5weQpAQCAtMSwxOCArMSwyMCBAQAotIyBHZW5lcmF0ZSBweXRob24zMnN0dWIuZGVmIG91dCBvZiBweXRob24zLmRlZgorIyBHZW5lcmF0ZSBweXRob24zM3N0dWIuZGVmIG91dCBvZiBweXRob24zLmRlZgogIyBUaGUgcmVndWxhciBpbXBvcnQgbGlicmFyeSBjYW5ub3QgYmUgdXNlZCwKICMgc2luY2UgaXQgZG9lc24ndCBwcm92aWRlIHRoZSByaWdodCBzeW1ib2xzIGZvcgogIyBkYXRhIGZvcndhcmRpbmcKLW91dCA9IG9wZW4oInB5dGhvbjMyc3R1Yi5kZWYiLCAidyIpCi1vdXQud3JpdGUoJ0xJQlJBUlkgInB5dGhvbjMyIlxuJykKK291dCA9IG9wZW4oInB5dGhvbjMzc3R1Yi5kZWYiLCAidyIpCitvdXQud3JpdGUoJ0xJQlJBUlkgInB5dGhvbjMzIlxuJykKIG91dC53cml0ZSgnRVhQT1JUU1xuJykKIAogaW5wID0gb3BlbigicHl0aG9uMy5kZWYiKQotaW5wLnJlYWRsaW5lKCkKIGxpbmUgPSBpbnAucmVhZGxpbmUoKQord2hpbGUgbGluZS5zdHJpcCgpLnN0YXJ0c3dpdGgoJzsnKToKKyAgICBsaW5lID0gaW5wLnJlYWRsaW5lKCkKK2xpbmUgPSBpbnAucmVhZGxpbmUoKSAjIExJQlJBUlkKIGFzc2VydCBsaW5lLnN0cmlwKCk9PSdFWFBPUlRTJwogCiBmb3IgbGluZSBpbiBpbnA6Ci0gICAgIyBTWU0xPXB5dGhvbjMyLlNZTTJbIERBVEFdCisgICAgIyBTWU0xPXB5dGhvbjMzLlNZTTJbIERBVEFdCiAgICAgaGVhZCwgdGFpbCA9IGxpbmUuc3BsaXQoJy4nKQogICAgIGlmICdEQVRBJyBpbiB0YWlsOgogICAgICAgICBzeW1ib2wsIHRhaWwgPSB0YWlsLnNwbGl0KCcgJykKQEAgLTIyLDQgKzI0LDMgQEAKIAogaW5wLmNsb3NlKCkKIG91dC5jbG9zZSgpCi0KZGlmZiAtLWdpdCBhL1BDL3B5dGhvbjMyc3R1Yi5kZWYgYi9QQy9weXRob24zM3N0dWIuZGVmCnNpbWlsYXJpdHkgaW5kZXggOTglCnJlbmFtZSBmcm9tIFBDL3B5dGhvbjMyc3R1Yi5kZWYKcmVuYW1lIHRvIFBDL3B5dGhvbjMzc3R1Yi5kZWYKaW5kZXggMDk0M2VmMC4uNWI4Y2NmNiAxMDA2NDQKLS0tIGEvUEMvcHl0aG9uMzJzdHViLmRlZgorKysgYi9QQy9weXRob24zM3N0dWIuZGVmCkBAIC0xLDQgKzEsNCBAQAotTElCUkFSWSAicHl0aG9uMzIiCitMSUJSQVJZICJweXRob24zMyIKIEVYUE9SVFMKIFB5QXJnX1BhcnNlCiBQeUFyZ19QYXJzZVR1cGxlCkBAIC00NzEsNiArNDcxLDggQEAKIFB5U2xpY2VfVHlwZQogUHlTb3J0V3JhcHBlcl9UeXBlCiBQeVN0YXRlX0ZpbmRNb2R1bGUKK1B5U3RhdGVfQWRkTW9kdWxlCitQeVN0YXRlX1JlbW92ZU1vZHVsZQogUHlTdHJ1Y3RTZXF1ZW5jZV9HZXRJdGVtCiBQeVN0cnVjdFNlcXVlbmNlX05ldwogUHlTdHJ1Y3RTZXF1ZW5jZV9OZXdUeXBlCkBAIC01MTEsNiArNTEzLDcgQEAKIFB5VHVwbGVfVHlwZQogUHlUeXBlX0NsZWFyQ2FjaGUKIFB5VHlwZV9Gcm9tU3BlYworUHlUeXBlX0Zyb21TcGVjV2l0aEJhc2VzCiBQeVR5cGVfR2VuZXJpY0FsbG9jCiBQeVR5cGVfR2VuZXJpY05ldwogUHlUeXBlX0dldEZsYWdzCkBAIC02ODcsMyArNjkwLDkgQEAKIF9QeV9Td2FwcGVkT3AKIF9QeV9UcnVlU3RydWN0CiBfUHlfVmFCdWlsZFZhbHVlX1NpemVUCitfUHlBcmdfUGFyc2VfU2l6ZVQKK19QeUFyZ19QYXJzZVR1cGxlX1NpemVUCitfUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzX1NpemVUCitfUHlBcmdfVmFQYXJzZV9TaXplVAorX1B5QXJnX1ZhUGFyc2VUdXBsZUFuZEtleXdvcmRzX1NpemVUCitfUHlfQnVpbGRWYWx1ZV9TaXplVApkaWZmIC0tZ2l0IGEvUEMvcHl0aG9uX250LnJjIGIvUEMvcHl0aG9uX250LnJjCmluZGV4IDUyOTU2MTAuLjUwMTBiYWEgMTAwNjQ0Ci0tLSBhL1BDL3B5dGhvbl9udC5yYworKysgYi9QQy9weXRob25fbnQucmMKQEAgLTEyLDcgKzEyLDcgQEAKICMgICBpbmNsdWRlICJweXRob25udF9yYy5oIgogI2VuZGlmCiAKLS8qIGUuZy4sIDIuMWEyCisvKiBlLmcuLCAzLjMuMGExCiAgKiBQWV9WRVJTSU9OIGNvbWVzIGZyb20gcGF0Y2hldmVsLmgKICAqLwogI2RlZmluZSBQWVRIT05fVkVSU0lPTiBQWV9WRVJTSU9OICJcMCIKZGlmZiAtLWdpdCBhL1BDL3JlYWRtZS50eHQgYi9QQy9yZWFkbWUudHh0CmluZGV4IGI1YTVhODcuLmZkYzA5YWIgMTAwNjQ0Ci0tLSBhL1BDL3JlYWRtZS50eHQKKysrIGIvUEMvcmVhZG1lLnR4dApAQCAtNjMsNyArNjMsNyBAQAogCiBweXRob25fbnQucmMgICBSZXNvdXJjZSBjb21waWxlciBpbnB1dCBmb3IgcHl0aG9uMTUuZGxsLgogCi1kbF9udC5jLCBpbXBvcnRfbnQuYworZGxfbnQuYwogICAgICAgICAgICAgICAgQWRkaXRpb25hbCBzb3VyY2VzIHVzZWQgZm9yIDMyLWJpdCBXaW5kb3dzIGZlYXR1cmVzLgogCiBnZXRwYXRocC5jICAgICBEZWZhdWx0IHN5cy5wYXRoIGNhbGN1bGF0aW9ucyAoZm9yIGFsbCBQQyBwbGF0Zm9ybXMpLgpkaWZmIC0tZ2l0IGEvUEMvd2lucmVnLmMgYi9QQy93aW5yZWcuYwppbmRleCAyNDBjYTY5Li4zYTVjOGE2IDEwMDY0NAotLS0gYS9QQy93aW5yZWcuYworKysgYi9QQy93aW5yZWcuYwpAQCAtNzYwLDI2ICs3NjAsMjcgQEAKICAgICAgICAgY2FzZSBSRUdfU1o6CiAgICAgICAgIGNhc2UgUkVHX0VYUEFORF9TWjoKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBQeV9Ob25lKQotICAgICAgICAgICAgICAgICpyZXREYXRhU2l6ZSA9IDE7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAoIVB5VW5pY29kZV9DaGVjayh2YWx1ZSkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKLSAgICAgICAgICAgICAgICAqcmV0RGF0YVNpemUgPSBQeV9TQUZFX0RPV05DQVNUKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICsgUHlVbmljb2RlX0dFVF9EQVRBX1NJWkUodmFsdWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QsIERXT1JEKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICpyZXREYXRhQnVmID0gKEJZVEUgKilQeU1lbV9ORVcoRFdPUkQsICpyZXREYXRhU2l6ZSk7Ci0gICAgICAgICAgICBpZiAoKnJldERhdGFCdWY9PU5VTEwpewotICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKHZhbHVlID09IFB5X05vbmUpCi0gICAgICAgICAgICAgICAgd2NzY3B5KCh3Y2hhcl90ICopKnJldERhdGFCdWYsIEwiIik7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgd2NzY3B5KCh3Y2hhcl90ICopKnJldERhdGFCdWYsCi0gICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHZhbHVlKSk7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUgIT0gUHlfTm9uZSkgeworICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodmFsdWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICAgICAgICAgICAgICAqcmV0RGF0YUJ1ZiA9IChCWVRFKilQeVVuaWNvZGVfQXNXaWRlQ2hhclN0cmluZyh2YWx1ZSwgJmxlbik7CisgICAgICAgICAgICAgICAgICAgIGlmICgqcmV0RGF0YUJ1ZiA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICAgICAgICAgICAgICAqcmV0RGF0YVNpemUgPSBQeV9TQUZFX0RPV05DQVNUKAorICAgICAgICAgICAgICAgICAgICAgICAgKGxlbiArIDEpICogc2l6ZW9mKHdjaGFyX3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCwgRFdPUkQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgKnJldERhdGFCdWYgPSAoQllURSAqKVB5TWVtX05FVyh3Y2hhcl90LCAxKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCpyZXREYXRhQnVmID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgKCh3Y2hhcl90ICopKnJldERhdGFCdWYpWzBdID0gTCdcMCc7CisgICAgICAgICAgICAgICAgICAgICpyZXREYXRhU2l6ZSA9IDEgKiBzaXplb2Yod2NoYXJfdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICBjYXNlIFJFR19NVUxUSV9TWjoKICAgICAgICAgICAgIHsKQEAgLTc5NiwxMCArNzk3LDE2IEBACiAgICAgICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IGk7IGorKykKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp0OworICAgICAgICAgICAgICAgICAgICB3Y2hhcl90ICp3c3RyOworICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKKwogICAgICAgICAgICAgICAgICAgICB0ID0gUHlMaXN0X0dFVF9JVEVNKHZhbHVlLCBqKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sodCkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7Ci0gICAgICAgICAgICAgICAgICAgIHNpemUgKz0gUHlfU0FGRV9ET1dOQ0FTVCgyICsgUHlVbmljb2RlX0dFVF9EQVRBX1NJWkUodCksCisgICAgICAgICAgICAgICAgICAgIHdzdHIgPSBQeVVuaWNvZGVfQXNVbmljb2RlQW5kU2l6ZSh0LCAmbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdzdHIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICAgICAgICAgICAgICAgICAgc2l6ZSArPSBQeV9TQUZFX0RPV05DQVNUKChsZW4gKyAxKSAqIHNpemVvZih3Y2hhcl90KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCwgRFdPUkQpOwogICAgICAgICAgICAgICAgIH0KIApAQCAtODE1LDEwICs4MjIsMTUgQEAKICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgaTsgaisrKQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnQ7CisgICAgICAgICAgICAgICAgICAgIHdjaGFyX3QgKndzdHI7CisgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOworCiAgICAgICAgICAgICAgICAgICAgIHQgPSBQeUxpc3RfR0VUX0lURU0odmFsdWUsIGopOwotICAgICAgICAgICAgICAgICAgICB3Y3NjcHkoUCwgUHlVbmljb2RlX0FTX1VOSUNPREUodCkpOwotICAgICAgICAgICAgICAgICAgICBQICs9IDEgKyB3Y3NsZW4oCi0gICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQVNfVU5JQ09ERSh0KSk7CisgICAgICAgICAgICAgICAgICAgIHdzdHIgPSBQeVVuaWNvZGVfQXNVbmljb2RlQW5kU2l6ZSh0LCAmbGVuKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdzdHIgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICAgICAgICAgICAgICAgICAgd2NzY3B5KFAsIHdzdHIpOworICAgICAgICAgICAgICAgICAgICBQICs9IChsZW4gKyAxKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLyogQW5kIGRvdWJseS10ZXJtaW5hdGUgdGhlIGxpc3QuLi4gKi8KICAgICAgICAgICAgICAgICAqUCA9ICdcMCc7CkBAIC04ODIsNyArODk0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgcmV0RGF0YVNpemUgLT0gMjsKICAgICAgICAgICAgICAgICBpZiAocmV0RGF0YVNpemUgPD0gMCkKICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IEwiIjsKLSAgICAgICAgICAgICAgICBvYkRhdGEgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoZGF0YSwgcmV0RGF0YVNpemUvMik7CisgICAgICAgICAgICAgICAgb2JEYXRhID0gUHlVbmljb2RlX0Zyb21XaWRlQ2hhcihkYXRhLCByZXREYXRhU2l6ZS8yKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgY2FzZSBSRUdfTVVMVElfU1o6CkBAIC05MTMsNyArOTI1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBQeUxpc3RfU2V0SXRlbShvYkRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoc3RyW2luZGV4XSwgbGVuKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIoc3RyW2luZGV4XSwgbGVuKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGZyZWUoc3RyKTsKIApAQCAtMTA1NCw3ICsxMDY2LDcgQEAKIAogICAgIC8qIE9ubHkgYXZhaWxhYmxlIG9uIDY0Yml0IHBsYXRmb3Jtcywgc28gd2UgbXVzdCBsb2FkIGl0CiAgICAgICAgZHluYW1pY2FsbHkuICovCi0gICAgaE1vZCA9IEdldE1vZHVsZUhhbmRsZSgiYWR2YXBpMzIuZGxsIik7CisgICAgaE1vZCA9IEdldE1vZHVsZUhhbmRsZVcoTCJhZHZhcGkzMi5kbGwiKTsKICAgICBpZiAoaE1vZCkKICAgICAgICAgcGZuID0gKFJES0VGdW5jKUdldFByb2NBZGRyZXNzKGhNb2QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlZ0RlbGV0ZUtleUV4VyIpOwpAQCAtMTEyMyw3ICsxMTM1LDcgQEAKICAgICBpZiAocmMgIT0gRVJST1JfU1VDQ0VTUykKICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyV2l0aEZ1bmN0aW9uKHJjLCAiUmVnRW51bUtleUV4Iik7CiAKLSAgICByZXRTdHIgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUodG1wYnVmLCBsZW4pOworICAgIHJldFN0ciA9IFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIodG1wYnVmLCBsZW4pOwogICAgIHJldHVybiByZXRTdHI7ICAvKiBjYW4gYmUgTlVMTCAqLwogfQogCkBAIC0xMjE1LDggKzEyMjcsOCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIFB5RXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeV9VTklDT0RFICpyZXRWYWx1ZSA9IE5VTEw7Ci0gICAgUHlfVU5JQ09ERSAqc3JjOworICAgIHdjaGFyX3QgKnJldFZhbHVlID0gTlVMTDsKKyAgICB3Y2hhcl90ICpzcmM7CiAgICAgRFdPUkQgcmV0VmFsdWVTaXplOwogICAgIERXT1JEIHJjOwogICAgIFB5T2JqZWN0ICpvOwpAQCAtMTIyOSw3ICsxMjQxLDcgQEAKICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyV2l0aEZ1bmN0aW9uKHJldFZhbHVlU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzIik7CiAgICAgfQotICAgIHJldFZhbHVlID0gKFB5X1VOSUNPREUgKilQeU1lbV9NYWxsb2MocmV0VmFsdWVTaXplICogc2l6ZW9mKFB5X1VOSUNPREUpKTsKKyAgICByZXRWYWx1ZSA9ICh3Y2hhcl90ICopUHlNZW1fTWFsbG9jKHJldFZhbHVlU2l6ZSAqIHNpemVvZih3Y2hhcl90KSk7CiAgICAgaWYgKHJldFZhbHVlID09IE5VTEwpIHsKICAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgfQpAQCAtMTI0MCw3ICsxMjUyLDcgQEAKICAgICAgICAgcmV0dXJuIFB5RXJyX1NldEZyb21XaW5kb3dzRXJyV2l0aEZ1bmN0aW9uKHJldFZhbHVlU2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwYW5kRW52aXJvbm1lbnRTdHJpbmdzIik7CiAgICAgfQotICAgIG8gPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUocmV0VmFsdWUsIHdjc2xlbihyZXRWYWx1ZSkpOworICAgIG8gPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHJldFZhbHVlLCB3Y3NsZW4ocmV0VmFsdWUpKTsKICAgICBQeU1lbV9GcmVlKHJldFZhbHVlKTsKICAgICByZXR1cm4gbzsKIH0KQEAgLTEzOTQsNyArMTQwNiw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVnUXVlcnlWYWx1ZSIpOwogICAgIH0KIAotICAgIHJldFN0ciA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShyZXRCdWYsIHdjc2xlbihyZXRCdWYpKTsKKyAgICByZXRTdHIgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHJldEJ1Ziwgd2NzbGVuKHJldEJ1ZikpOwogICAgIFB5TWVtX0ZyZWUocmV0QnVmKTsKICAgICByZXR1cm4gcmV0U3RyOwogfQpAQCAtMTUyNSw3ICsxNTM3LDcgQEAKIHsKICAgICBIS0VZIGhLZXk7CiAgICAgUHlPYmplY3QgKm9iS2V5OwotICAgIFB5X1VOSUNPREUgKnZhbHVlTmFtZTsKKyAgICB3Y2hhcl90ICp2YWx1ZU5hbWU7CiAgICAgUHlPYmplY3QgKm9iUmVzOwogICAgIFB5T2JqZWN0ICp2YWx1ZTsKICAgICBCWVRFICpkYXRhOwpAQCAtMTU3OCw3ICsxNTkwLDcgQEAKIAogICAgIC8qIE9ubHkgYXZhaWxhYmxlIG9uIDY0Yml0IHBsYXRmb3Jtcywgc28gd2UgbXVzdCBsb2FkIGl0CiAgICAgICAgZHluYW1pY2FsbHkuKi8KLSAgICBoTW9kID0gR2V0TW9kdWxlSGFuZGxlKCJhZHZhcGkzMi5kbGwiKTsKKyAgICBoTW9kID0gR2V0TW9kdWxlSGFuZGxlVyhMImFkdmFwaTMyLmRsbCIpOwogICAgIGlmIChoTW9kKQogICAgICAgICBwZm4gPSAoUkRSS0Z1bmMpR2V0UHJvY0FkZHJlc3MoaE1vZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWdEaXNhYmxlUmVmbGVjdGlvbktleSIpOwpAQCAtMTYxNCw3ICsxNjI2LDcgQEAKIAogICAgIC8qIE9ubHkgYXZhaWxhYmxlIG9uIDY0Yml0IHBsYXRmb3Jtcywgc28gd2UgbXVzdCBsb2FkIGl0CiAgICAgICAgZHluYW1pY2FsbHkuKi8KLSAgICBoTW9kID0gR2V0TW9kdWxlSGFuZGxlKCJhZHZhcGkzMi5kbGwiKTsKKyAgICBoTW9kID0gR2V0TW9kdWxlSGFuZGxlVyhMImFkdmFwaTMyLmRsbCIpOwogICAgIGlmIChoTW9kKQogICAgICAgICBwZm4gPSAoUkVSS0Z1bmMpR2V0UHJvY0FkZHJlc3MoaE1vZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJSZWdFbmFibGVSZWZsZWN0aW9uS2V5Iik7CkBAIC0xNjUxLDcgKzE2NjMsNyBAQAogCiAgICAgLyogT25seSBhdmFpbGFibGUgb24gNjRiaXQgcGxhdGZvcm1zLCBzbyB3ZSBtdXN0IGxvYWQgaXQKICAgICAgICBkeW5hbWljYWxseS4qLwotICAgIGhNb2QgPSBHZXRNb2R1bGVIYW5kbGUoImFkdmFwaTMyLmRsbCIpOworICAgIGhNb2QgPSBHZXRNb2R1bGVIYW5kbGVXKEwiYWR2YXBpMzIuZGxsIik7CiAgICAgaWYgKGhNb2QpCiAgICAgICAgIHBmbiA9IChSUVJLRnVuYylHZXRQcm9jQWRkcmVzcyhoTW9kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJlZ1F1ZXJ5UmVmbGVjdGlvbktleSIpOwpkaWZmIC0tZ2l0IGEvUEMvd2luc291bmQuYyBiL1BDL3dpbnNvdW5kLmMKaW5kZXggMWVkOTViYS4uYjU2NGVhYiAxMDA2NDQKLS0tIGEvUEMvd2luc291bmQuYworKysgYi9QQy93aW5zb3VuZC5jCkBAIC03Miw3ICs3Miw3IEBACiBzdGF0aWMgUHlPYmplY3QgKgogc291bmRfcGxheXNvdW5kKFB5T2JqZWN0ICpzLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBQeV9VTklDT0RFICp3c291bmQ7CisgICAgd2NoYXJfdCAqd3NvdW5kOwogICAgIGludCBmbGFnczsKICAgICBpbnQgb2s7CiAKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX2J6Mi52Y3hwcm9qIGIvUENidWlsZC9fYnoyLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTM4N2U1NAotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX2J6Mi52Y3hwcm9qCkBAIC0wLDAgKzEsMjYxIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57NzNGQ0QyQkQtRjEzMy00NkI3LThFQzEtMTQ0Q0Q4MkE1OUQ1fTwvUHJvamVjdEd1aWQ+CisgICAgPFJvb3ROYW1lc3BhY2U+YnoyPC9Sb290TmFtZXNwYWNlPgorICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoYnoyRGlyKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTcwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChiejJEaXIpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxNzAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChiejJEaXIpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxNzAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoYnoyRGlyKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTcwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChiejJEaXIpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxNzAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChiejJEaXIpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxNzAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKGJ6MkRpcik7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDE3MDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoYnoyRGlyKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTcwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9iejJtb2R1bGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoYnoyRGlyKVxibG9ja3NvcnQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoYnoyRGlyKVxiemxpYi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChiejJEaXIpXGNvbXByZXNzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKGJ6MkRpcilcY3JjdGFibGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoYnoyRGlyKVxkZWNvbXByZXNzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKGJ6MkRpcilcaHVmZm1hbi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChiejJEaXIpXHJhbmR0YWJsZS5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoYnoyRGlyKVxiemxpYi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChiejJEaXIpXGJ6bGliX3ByaXZhdGUuaCIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX2J6Mi52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL19iejIudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhYzY0ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL19iejIudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsNDggQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2Y1M2E4NTlkLWRhZDItNGQ1Yi1hZTQxLWYyOGQ4YjU3MWY1YX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJiemlwMiAxLjAuNiBIZWFkZXIgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezdlMGJlZDA1LWFlMzMtNDNiNy04Nzk3LTY1NjQ1NWJiYjdmM308L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJiemlwMiAxLjAuNiBTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2VkNTc0Yjg5LTY5ODMtNGNkZi05Zjk4LWZlNzA0OGQ5ZTg5Y308L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfYnoybW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoYnoyRGlyKVxibG9ja3NvcnQuYyI+CisgICAgICA8RmlsdGVyPmJ6aXAyIDEuMC42IFNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChiejJEaXIpXGJ6bGliLmMiPgorICAgICAgPEZpbHRlcj5iemlwMiAxLjAuNiBTb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoYnoyRGlyKVxjb21wcmVzcy5jIj4KKyAgICAgIDxGaWx0ZXI+YnppcDIgMS4wLjYgU291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKGJ6MkRpcilcY3JjdGFibGUuYyI+CisgICAgICA8RmlsdGVyPmJ6aXAyIDEuMC42IFNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChiejJEaXIpXGRlY29tcHJlc3MuYyI+CisgICAgICA8RmlsdGVyPmJ6aXAyIDEuMC42IFNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChiejJEaXIpXGh1ZmZtYW4uYyI+CisgICAgICA8RmlsdGVyPmJ6aXAyIDEuMC42IFNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChiejJEaXIpXHJhbmR0YWJsZS5jIj4KKyAgICAgIDxGaWx0ZXI+YnppcDIgMS4wLjYgU291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChiejJEaXIpXGJ6bGliLmgiPgorICAgICAgPEZpbHRlcj5iemlwMiAxLjAuNiBIZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoYnoyRGlyKVxiemxpYl9wcml2YXRlLmgiPgorICAgICAgPEZpbHRlcj5iemlwMiAxLjAuNiBIZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9QQ2J1aWxkL19jdHlwZXMudmN4cHJvaiBiL1BDYnVpbGQvX2N0eXBlcy52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwMmNiMWYKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL19jdHlwZXMudmN4cHJvagpAQCAtMCwwICsxLDI5NCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+ezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPl9jdHlwZXM8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDFBMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2YzslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxQTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUgJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPFN1YlN5c3RlbT5Ob3RTZXQ8L1N1YlN5c3RlbT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMUEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmM7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4vRVhQT1JUOkRsbEdldENsYXNzT2JqZWN0LFBSSVZBVEUgL0VYUE9SVDpEbGxDYW5VbmxvYWROb3csUFJJVkFURSAlKEFkZGl0aW9uYWxPcHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8U3ViU3lzdGVtPk5vdFNldDwvU3ViU3lzdGVtPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxQTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmM7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4vRVhQT1JUOkRsbEdldENsYXNzT2JqZWN0LFBSSVZBVEUgL0VYUE9SVDpEbGxDYW5VbmxvYWROb3csUFJJVkFURSAlKEFkZGl0aW9uYWxPcHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8U3ViU3lzdGVtPk5vdFNldDwvU3ViU3lzdGVtPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxQTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUgJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPFN1YlN5c3RlbT5Ob3RTZXQ8L1N1YlN5c3RlbT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMUEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUgJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPFN1YlN5c3RlbT5Ob3RTZXQ8L1N1YlN5c3RlbT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMUEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L0VYUE9SVDpEbGxHZXRDbGFzc09iamVjdCxQUklWQVRFIC9FWFBPUlQ6RGxsQ2FuVW5sb2FkTm93LFBSSVZBVEUgJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPFN1YlN5c3RlbT5Ob3RTZXQ8L1N1YlN5c3RlbT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMUEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcY3R5cGVzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcY3R5cGVzX2RsZmNuLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpX2NvbW1vbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaWNvbmZpZy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaXRhcmdldC5oIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbGJhY2tzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcY2FsbHByb2MuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xjZmllbGQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1xmZmkuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xtYWxsb2NfY2xvc3VyZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHByZXBfY2lmLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcc3RnZGljdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHdpbjMyLmMiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcd2luNjQuYXNtIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPm1sNjQgL25vbG9nbyAvYyAvWmkgL0ZvICIkKEludERpcil3aW42NC5vYmoiICIlKEZ1bGxQYXRoKSIKKzwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+JChJbnREaXIpd2luNjQub2JqOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxDb21tYW5kIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPm1sNjQgL25vbG9nbyAvYyAvRm8gIiQoSW50RGlyKXdpbjY0Lm9iaiIgIiUoRnVsbFBhdGgpIgorPC9Db21tYW5kPgorICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+JChJbnREaXIpd2luNjQub2JqOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPENvbW1hbmQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5tbDY0IC9ub2xvZ28gL2MgL0ZvICIkKEludERpcil3aW42NC5vYmoiICIlKEZ1bGxQYXRoKSIKKzwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+JChJbnREaXIpd2luNjQub2JqOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+bWw2NCAvbm9sb2dvIC9jIC9GbyAiJChJbnREaXIpd2luNjQub2JqIiAiJShGdWxsUGF0aCkiCis8L0NvbW1hbmQ+CisgICAgICA8T3V0cHV0cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+JChJbnREaXIpd2luNjQub2JqOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgPC9DdXN0b21CdWlsZD4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fY3R5cGVzLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQvX2N0eXBlcy52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODNkN2E3YgotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX2N0eXBlcy52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSw2NSBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ODA2MDgxZWUtMmFmMC00OGQwLWE4M2UtZWUwMmE3NGJhYTBmfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZGJkZWExZjItYWQ4Yi00NGNhLWI3ODItZmNmNjVkOTE1NTlifTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcY3R5cGVzLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xjdHlwZXNfZGxmY24uaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaS5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpX2NvbW1vbi5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcZmZpY29uZmlnLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1xmZml0YXJnZXQuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xjYWxsYmFja3MuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3R5cGVzXGNhbGxwcm9jLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xjZmllbGQuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXGZmaS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcbWFsbG9jX2Nsb3N1cmUuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3R5cGVzXGxpYmZmaV9tc3ZjXHByZXBfY2lmLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xzdGdkaWN0LmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xsaWJmZmlfbXN2Y1x3aW4zMi5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcbGliZmZpX21zdmNcd2luNjQuYXNtIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DdXN0b21CdWlsZD4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fY3R5cGVzX3Rlc3QudmN4cHJvaiBiL1BDYnVpbGQvX2N0eXBlc190ZXN0LnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzVlMjk5YgotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX2N0eXBlc190ZXN0LnZjeHByb2oKQEAgLTAsMCArMSwxOTIgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPns5RUM3MTkwQS0yNDlGLTQxODAtQTkwMC01NDhGRENGMzA1NUZ9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5fY3R5cGVzX3Rlc3Q8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jdHlwZXNcX2N0eXBlc190ZXN0LmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3R5cGVzXF9jdHlwZXNfdGVzdC5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJweXRob25jb3JlLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2NmN2FjM2QxLWUyZGYtNDFkMi1iZWE2LTFlMjU1NmNkZWEyNn08L1Byb2plY3Q+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19jdHlwZXNfdGVzdC52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL19jdHlwZXNfdGVzdC52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzFlOTRjZQotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX2N0eXBlc190ZXN0LnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDIxIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns4ZmQ3MDExOS01NDgxLTRlNWQtYjE4Ny1kMGIxNGViMjdlMzh9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnszOGFiYzQ4Ni1lMTQzLTQ5ZGMtOGNmMC04YWVmYWIwZTBkM2R9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzX3Rlc3QuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2N0eXBlc1xfY3R5cGVzX3Rlc3QuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19kZWNpbWFsLnZjeHByb2ogYi9QQ2J1aWxkL19kZWNpbWFsLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTdiNzM3YQotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX2RlY2ltYWwudmN4cHJvagpAQCAtMCwwICsxLDMxMiBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+ezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN308L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPl9kZWNpbWFsPC9Sb290TmFtZXNwYWNlPgorICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4vRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIC9EQ09ORklHXzMyIC9EUFBSTyAvRE1BU00gJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfZGVjaW1hbDsuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDFBMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4vRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIC9EQ09ORklHXzY0IC9ETUFTTSAlKEFkZGl0aW9uYWxPcHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxNb2R1bGVzXF9kZWNpbWFsOy4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWM7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMUEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQoT3V0RGlyKXB5dGhvbjMzX2QubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L0RfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAvRENPTkZJR18zMiAvRFBQUk8gL0RNQVNNICUoQWRkaXRpb25hbE9wdGlvbnMpPC9BZGRpdGlvbmFsT3B0aW9ucz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXE1vZHVsZXNcX2RlY2ltYWw7Li5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlYzslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPFN1YlN5c3RlbT5Ob3RTZXQ8L1N1YlN5c3RlbT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMUEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L0RfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAvRENPTkZJR182NCAvRE1BU00gJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfZGVjaW1hbDsuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjOy4uXEluY2x1ZGU7Li5cUEM7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxTdWJTeXN0ZW0+Tm90U2V0PC9TdWJTeXN0ZW0+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDFBMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKE91dERpcilweXRob24zMy5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPi9EX0NSVF9TRUNVUkVfTk9fV0FSTklOR1MgL0RDT05GSUdfMzIgL0RQUFJPIC9ETUFTTSAlKEFkZGl0aW9uYWxPcHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxNb2R1bGVzXF9kZWNpbWFsOy4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWM7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxTdWJTeXN0ZW0+Tm90U2V0PC9TdWJTeXN0ZW0+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDFBMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L0RfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAvRENPTkZJR182NCAvRE1BU00gJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfZGVjaW1hbDsuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPk5vdFNldDwvU3ViU3lzdGVtPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxQTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQoT3V0RGlyKXB5dGhvbjMzLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4vRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIC9EQ09ORklHXzMyIC9EUFBSTyAvRE1BU00gJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfZGVjaW1hbDsuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPk5vdFNldDwvU3ViU3lzdGVtPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxQTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L0RfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyAvRENPTkZJR182NCAvRE1BU00gJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xfZGVjaW1hbDsuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPk5vdFNldDwvU3ViU3lzdGVtPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxQTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQoU29sdXRpb25EaXIpXCQoUGxhdGZvcm1TaG9ydE5hbWUpXHB5dGhvbjMzLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xiYXNlYXJpdGguaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcYml0cy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xjb25zdGFudHMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcY29udm9sdXRlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGNydC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xkaWZyYWRpeDIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcZG9jc3RyaW5ncy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xmbnQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcZm91cnN0ZXAuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcbXBkZWNpbWFsLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXG51bWJlcnRoZW9yeS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xzaXhzdGVwLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHRyYW5zcG9zZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1x0eXBlYXJpdGguaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcdW1vZGFyaXRoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHZjY29tcGF0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHZjc3RkaW50LmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxfZGVjaW1hbC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xiYXNlYXJpdGguYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcY29uc3RhbnRzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGNvbnRleHQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcY29udm9sdXRlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGNydC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xkaWZyYWRpeDIuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcZm50LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGZvdXJzdGVwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGlvLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXG1lbW9yeS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xtcGRlY2ltYWwuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcbnVtYmVydGhlb3J5LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHNpeHN0ZXAuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcdHJhbnNwb3NlLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHZjZGl2NjQuYXNtIj4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPm1sNjQgL25vbG9nbyAvYyAvWmkgL0ZvICIkKEludERpcil2Y2RpdjY0Lm9iaiIgIiUoRnVsbFBhdGgpIgorPC9Db21tYW5kPgorICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4kKEludERpcil2Y2RpdjY0Lm9iajslKE91dHB1dHMpPC9PdXRwdXRzPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5tbDY0IC9ub2xvZ28gL2MgL0ZvICIkKEludERpcil2Y2RpdjY0Lm9iaiIgIiUoRnVsbFBhdGgpIgorPC9Db21tYW5kPgorICAgICAgPE91dHB1dHMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+JChJbnREaXIpdmNkaXY2NC5vYmo7JShPdXRwdXRzKTwvT3V0cHV0cz4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPm1sNjQgL25vbG9nbyAvYyAvRm8gIiQoSW50RGlyKXZjZGl2NjQub2JqIiAiJShGdWxsUGF0aCkiCis8L0NvbW1hbmQ+CisgICAgICA8T3V0cHV0cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPiQoSW50RGlyKXZjZGl2NjQub2JqOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CisgICAgICA8Q29tbWFuZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+bWw2NCAvbm9sb2dvIC9jIC9aaSAvRm8gIiQoSW50RGlyKXZjZGl2NjQub2JqIiAiJShGdWxsUGF0aCkiCis8L0NvbW1hbmQ+CisgICAgICA8T3V0cHV0cyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+JChJbnREaXIpdmNkaXY2NC5vYmo7JShPdXRwdXRzKTwvT3V0cHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJweXRob25jb3JlLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2NmN2FjM2QxLWUyZGYtNDFkMi1iZWE2LTFlMjU1NmNkZWEyNn08L1Byb2plY3Q+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19kZWNpbWFsLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQvX2RlY2ltYWwudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlMTlhYTIKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL19kZWNpbWFsLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDExNiBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZjM1YTc4YTYtM2VmMC00ZTM2LWJkOGItYWZhZWYyMmZiYjdjfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MTM4MDg5ZjgtZmFiYS00OTRmLWI2ZWQtMDUxZjMxZmJhZjJkfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGJhc2Vhcml0aC5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGJpdHMuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xjb25zdGFudHMuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xjb252b2x1dGUuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xjcnQuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xkaWZyYWRpeDIuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxkb2NzdHJpbmdzLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcZm50LmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcZm91cnN0ZXAuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xtcGRlY2ltYWwuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xudW1iZXJ0aGVvcnkuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xzaXhzdGVwLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcdHJhbnNwb3NlLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcdHlwZWFyaXRoLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcdW1vZGFyaXRoLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcdmNjb21wYXQuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1x2Y3N0ZGludC5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxfZGVjaW1hbC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGJhc2Vhcml0aC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGNvbnN0YW50cy5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGNvbnRleHQuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xjb252b2x1dGUuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xjcnQuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xkaWZyYWRpeDIuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xmbnQuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZGVjaW1hbFxsaWJtcGRlY1xmb3Vyc3RlcC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXGlvLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcbWVtb3J5LmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcbXBkZWNpbWFsLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcbnVtYmVydGhlb3J5LmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RlY2ltYWxcbGlibXBkZWNcc2l4c3RlcC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHRyYW5zcG9zZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDdXN0b21CdWlsZCBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kZWNpbWFsXGxpYm1wZGVjXHZjZGl2NjQuYXNtIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DdXN0b21CdWlsZD4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fZWxlbWVudHRyZWUudmN4cHJvaiBiL1BDYnVpbGQvX2VsZW1lbnR0cmVlLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzgwMmFiMwotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX2VsZW1lbnR0cmVlLnZjeHByb2oKQEAgLTAsMCArMSwyNzAgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsxN0UxRTA0OS1DMzA5LTRENzktODQzRi1BRTQ4M0MyNjRBRUF9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5fZWxlbWVudHRyZWU8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xleHBhdDslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlhNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDEwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXE1vZHVsZXNcZXhwYXQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5YTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1VTRV9QWUVYUEFUX0NBUEk7WE1MX1NUQVRJQztIQVZFX01FTU1PVkU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xleHBhdDslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlhNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDEwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xleHBhdDslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlhNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDEwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXE1vZHVsZXNcZXhwYXQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5YTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1VTRV9QWUVYUEFUX0NBUEk7WE1MX1NUQVRJQztIQVZFX01FTU1PVkU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cTW9kdWxlc1xleHBhdDslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlhNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7VVNFX1BZRVhQQVRfQ0FQSTtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDEwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXE1vZHVsZXNcZXhwYXQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5YTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1VTRV9QWUVYUEFUX0NBUEk7WE1MX1NUQVRJQztIQVZFX01FTU1PVkU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxNb2R1bGVzXGV4cGF0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtVU0VfUFlFWFBBVF9DQVBJO1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XGFzY2lpLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XGFzY2lpdGFiLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XGV4cGF0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XGV4cGF0X2NvbmZpZy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFxleHBhdF9leHRlcm5hbC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFxpYXNjaWl0YWIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRcaW50ZXJuYWwuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRcbGF0aW4xdGFiLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XG1hY2NvbmZpZy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFxuYW1ldGFiLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XHB5ZXhwYXRucy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx1dGY4dGFiLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XHdpbmNvbmZpZy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx4bWxyb2xlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XHhtbHRvay5oIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2VsZW1lbnR0cmVlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XHhtbHBhcnNlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XHhtbHJvbGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRceG1sdG9rLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9InB5dGhvbmNvcmUudmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57Y2Y3YWMzZDEtZTJkZi00MWQyLWJlYTYtMWUyNTU2Y2RlYTI2fTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19lbGVtZW50dHJlZS52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL19lbGVtZW50dHJlZS52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWU3ODI5NQotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX2VsZW1lbnR0cmVlLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDcyIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns2NDNkODYwNy1kMDI0LTQwZmUtODU4My0xODIzYzk2NDMwZjB9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns3YjUzMzVhZC0wNTlmLTQ4NmYtODVlNC1mNDc1N2UyNmE5YmZ9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRcYXNjaWkuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFxhc2NpaXRhYi5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XGV4cGF0LmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRcZXhwYXRfY29uZmlnLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRcZXhwYXRfZXh0ZXJuYWwuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFxpYXNjaWl0YWIuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFxpbnRlcm5hbC5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XGxhdGluMXRhYi5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XG1hY2NvbmZpZy5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XG5hbWV0YWIuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFxweWV4cGF0bnMuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx1dGY4dGFiLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRcd2luY29uZmlnLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XHhtbHRvay5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfZWxlbWVudHRyZWUuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx4bWxwYXJzZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XHhtbHJvbGUuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19oYXNobGliLnZjeHByb2ogYi9QQ2J1aWxkL19oYXNobGliLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTI0MzNlZAotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX2hhc2hsaWIudmN4cHJvagpAQCAtMCwwICsxLDI4MiBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+ezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPl9oYXNobGliPC9Sb290TmFtZXNwYWNlPgorICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQob3BlbnNzbERpcilcaW5jMzI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UHJlTGlua0V2ZW50PgorICAgICAgPENvbW1hbmQ+CisgICAgICA8L0NvbW1hbmQ+CisgICAgPC9QcmVMaW5rRXZlbnQ+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyQob3BlbnNzbERpcilcb3V0MzJcbGliZWF5MzIubGliOyQob3BlbnNzbERpcilcb3V0MzJcc3NsZWF5MzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQob3BlbnNzbERpcilcaW5jNjQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UHJlTGlua0V2ZW50PgorICAgICAgPENvbW1hbmQ+CisgICAgICA8L0NvbW1hbmQ+CisgICAgPC9QcmVMaW5rRXZlbnQ+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyQob3BlbnNzbERpcilcb3V0NjRcbGliZWF5MzIubGliOyQob3BlbnNzbERpcilcb3V0NjRcc3NsZWF5MzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKG9wZW5zc2xEaXIpXGluYzMyOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxDb21tYW5kPgorICAgICAgPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDMyXGxpYmVheTMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDMyXHNzbGVheTMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQob3BlbnNzbERpcilcaW5jNjQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UHJlTGlua0V2ZW50PgorICAgICAgPENvbW1hbmQ+CisgICAgICA8L0NvbW1hbmQ+CisgICAgPC9QcmVMaW5rRXZlbnQ+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyQob3BlbnNzbERpcilcb3V0NjRcbGliZWF5MzIubGliOyQob3BlbnNzbERpcilcb3V0NjRcc3NsZWF5MzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQob3BlbnNzbERpcilcaW5jMzI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UHJlTGlua0V2ZW50PgorICAgICAgPENvbW1hbmQ+CisgICAgICA8L0NvbW1hbmQ+CisgICAgPC9QcmVMaW5rRXZlbnQ+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyQob3BlbnNzbERpcilcb3V0MzJcbGliZWF5MzIubGliOyQob3BlbnNzbERpcilcb3V0MzJcc3NsZWF5MzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKG9wZW5zc2xEaXIpXGluYzY0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxDb21tYW5kPgorICAgICAgPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKG9wZW5zc2xEaXIpXGluYzMyOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxDb21tYW5kPgorICAgICAgPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDMyXGxpYmVheTMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDMyXHNzbGVheTMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKG9wZW5zc2xEaXIpXGluYzY0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxDb21tYW5kPgorICAgICAgPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2hhc2hvcGVuc3NsLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9InB5dGhvbi52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntiMTFkNzUwZi1jZDFmLTRhOTYtODVjZS1lNjlhNWM1MjU5Zjl9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0ic3NsLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2U1YjA0Y2MwLWViNGMtNDJhYi1iNGRjLTE4ZWY5NWY4NjRiMH08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9faGFzaGxpYi52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL19oYXNobGliLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWQ5OTNlCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9faGFzaGxpYi52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwxMyBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57Y2M0NTk2M2QtYmQyNS00ZWI4LWJkYmEtYTU1MDcwOTBiY2E0fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9oYXNob3BlbnNzbC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX2x6bWEudmN4cHJvaiBiL1BDYnVpbGQvX2x6bWEudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYzI1YzgwCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9fbHptYS52Y3hwcm9qCkBAIC0wLDAgKzEsMjUwIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fTwvUHJvamVjdEd1aWQ+CisgICAgPFJvb3ROYW1lc3BhY2U+bHptYTwvUm9vdE5hbWVzcGFjZT4KKyAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKGx6bWFEaXIpXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSU4zMjtfRklMRV9PRkZTRVRfQklUUz02NDtfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURTtMWk1BX0FQSV9TVEFUSUM7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JChsem1hRGlyKVxiaW5faTQ4NlxsaWJsem1hLmE7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChsem1hRGlyKVxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7TFpNQV9BUElfU1RBVElDOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQobHptYURpcilcYmluX3g4Ni02NFxsaWJsem1hLmE7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQobHptYURpcilcaW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFO0xaTUFfQVBJX1NUQVRJQzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKGx6bWFEaXIpXGJpbl9pNDg2XGxpYmx6bWEuYTslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQobHptYURpcilcaW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFO0xaTUFfQVBJX1NUQVRJQzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKGx6bWFEaXIpXGJpbl94ODYtNjRcbGlibHptYS5hOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQobHptYURpcilcaW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFO0xaTUFfQVBJX1NUQVRJQzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKGx6bWFEaXIpXGJpbl9pNDg2XGxpYmx6bWEuYTslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChsem1hRGlyKVxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7TFpNQV9BUElfU1RBVElDOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQobHptYURpcilcYmluX3g4Ni02NFxsaWJsem1hLmE7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChsem1hRGlyKVxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lOMzI7X0ZJTEVfT0ZGU0VUX0JJVFM9NjQ7X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7TFpNQV9BUElfU1RBVElDOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQobHptYURpcilcYmluX2k0ODZcbGlibHptYS5hOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQobHptYURpcilcaW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJTjMyO19GSUxFX09GRlNFVF9CSVRTPTY0O19DUlRfU0VDVVJFX05PX0RFUFJFQ0FURTtfQ1JUX05PTlNURENfTk9fREVQUkVDQVRFO0xaTUFfQVBJX1NUQVRJQzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKGx6bWFEaXIpXGJpbl94ODYtNjRcbGlibHptYS5hOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfbHptYW1vZHVsZS5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJweXRob25jb3JlLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2NmN2FjM2QxLWUyZGYtNDFkMi1iZWE2LTFlMjU1NmNkZWEyNn08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fbHptYS52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL19sem1hLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzVlZDc0Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9fbHptYS52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwxMyBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NTNlNjhlZGEtMzlmYy00MzM2LWE2NTgtZGM1ZjVkNTk4NzYwfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9sem1hbW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fbXNpLnZjeHByb2ogYi9QQ2J1aWxkL19tc2kudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMzIzZDE2Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9fbXNpLnZjeHByb2oKQEAgLTAsMCArMSwyMjYgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnszMUZGQzQ3OC03QjRBLTQzRTgtOTk1NC04RDAzRTIxODdFOUN9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5fbXNpPC9Sb290TmFtZXNwYWNlPgorICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5mY2kubGliO21zaS5saWI7cnBjcnQ0LmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxNjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+ZmNpLmxpYjttc2kubGliO3JwY3J0NC5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5mY2kubGliO21zaS5saWI7cnBjcnQ0LmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxNjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5mY2kubGliO21zaS5saWI7cnBjcnQ0LmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxNjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+ZmNpLmxpYjttc2kubGliO3JwY3J0NC5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz5mY2kubGliO21zaS5saWI7cnBjcnQ0LmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxNjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+ZmNpLmxpYjttc2kubGliO3JwY3J0NC5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPmZjaS5saWI7bXNpLmxpYjtycGNydDQubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDE2MDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUENcX21zaS5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJweXRob25jb3JlLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2NmN2FjM2QxLWUyZGYtNDFkMi1iZWE2LTFlMjU1NmNkZWEyNn08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fbXNpLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQvX21zaS52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2RlYzUyZAotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX21zaS52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwxMyBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57YmRlZjc3MTAtZTQzMy00YWMwLTg0ZTAtMTRmMzQ0NTRiZDNlfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xfbXNpLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fbXVsdGlwcm9jZXNzaW5nLnZjcHJvaiBiL1BDYnVpbGQvX211bHRpcHJvY2Vzc2luZy52Y3Byb2oKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVkNjMzN2QuLjAwMDAwMDAKLS0tIGEvUENidWlsZC9fbXVsdGlwcm9jZXNzaW5nLnZjcHJvagorKysgL2Rldi9udWxsCkBAIC0xLDU1NyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJXaW5kb3dzLTEyNTIiPz4NCi08VmlzdWFsU3R1ZGlvUHJvamVjdA0KLQlQcm9qZWN0VHlwZT0iVmlzdWFsIEMrKyINCi0JVmVyc2lvbj0iOSwwMCINCi0JTmFtZT0iX211bHRpcHJvY2Vzc2luZyINCi0JUHJvamVjdEdVSUQ9Ins5RTQ4QjMwMC0zN0QxLTExREQtOEM0MS0wMDUwNTZDMDAwMDh9Ig0KLQlSb290TmFtZXNwYWNlPSJfbXVsdGlwcm9jZXNzaW5nIg0KLQlLZXl3b3JkPSJXaW4zMlByb2oiDQotCVRhcmdldEZyYW1ld29ya1ZlcnNpb249IjE5NjYxMyINCi0JPg0KLQk8UGxhdGZvcm1zPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0iV2luMzIiDQotCQkvPg0KLQkJPFBsYXRmb3JtDQotCQkJTmFtZT0ieDY0Ig0KLQkJLz4NCi0JPC9QbGF0Zm9ybXM+DQotCTxUb29sRmlsZXM+DQotCTwvVG9vbEZpbGVzPg0KLQk8Q29uZmlndXJhdGlvbnM+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZF9kLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUQwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IkRlYnVnfHg2NCINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWRfZC52c3Byb3BzOy5ceDY0LnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCUNvbmZpZ3VyYXRpb25UeXBlPSIyIg0KLQkJCUluaGVyaXRlZFByb3BlcnR5U2hlZXRzPSIuXHB5ZC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRDAwMDAiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FMaW5rVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuaWZlc3RUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYRENNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQnNjTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0Z4Q29wVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQXBwVmVyaWZpZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQb3N0QnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCTwvQ29uZmlndXJhdGlvbj4NCi0JCTxDb25maWd1cmF0aW9uDQotCQkJTmFtZT0iUmVsZWFzZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJVGFyZ2V0RW52aXJvbm1lbnQ9IjMiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR0luc3RydW1lbnR8V2luMzIiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7LlxwZ2luc3RydW1lbnQudnNwcm9wcyINCi0JCQlDaGFyYWN0ZXJTZXQ9IjAiDQotCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPSIxIg0KLQkJCT4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDdXN0b21CdWlsZFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hNTERhdGFHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNXZWJTZXJ2aWNlUHJveHlHZW5lcmF0b3JUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUQwMDAwIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCQk8Q29uZmlndXJhdGlvbg0KLQkJCU5hbWU9IlBHSW5zdHJ1bWVudHx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBnaW5zdHJ1bWVudC52c3Byb3BzIg0KLQkJCUNoYXJhY3RlclNldD0iMCINCi0JCQlXaG9sZVByb2dyYW1PcHRpbWl6YXRpb249IjEiDQotCQkJPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlQnVpbGRFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0N1c3RvbUJ1aWxkVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWE1MRGF0YUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1dlYlNlcnZpY2VQcm94eUdlbmVyYXRvclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01JRExUb29sIg0KLQkJCQlUYXJnZXRFbnZpcm9ubWVudD0iMyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmFnZWRSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1ByZUxpbmtFdmVudFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0xpbmtlclRvb2wiDQotCQkJCUFkZGl0aW9uYWxEZXBlbmRlbmNpZXM9IndzMl8zMi5saWIiDQotCQkJCUJhc2VBZGRyZXNzPSIweDFlMUQwMDAwIg0KLQkJCQlUYXJnZXRNYWNoaW5lPSIxNyINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXxXaW4zMiINCi0JCQlDb25maWd1cmF0aW9uVHlwZT0iMiINCi0JCQlJbmhlcml0ZWRQcm9wZXJ0eVNoZWV0cz0iLlxweWQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5hZ2VkUmVzb3VyY2VDb21waWxlclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Jlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVMaW5rRXZlbnRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNMaW5rZXJUb29sIg0KLQkJCQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJ3czJfMzIubGliIg0KLQkJCQlCYXNlQWRkcmVzcz0iMHgxZTFEMDAwMCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQUxpbmtUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNNYW5pZmVzdFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1hEQ01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNCc2NNYWtlVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDRnhDb3BUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBcHBWZXJpZmllclRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ1Bvc3RCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJPC9Db25maWd1cmF0aW9uPg0KLQkJPENvbmZpZ3VyYXRpb24NCi0JCQlOYW1lPSJQR1VwZGF0ZXx4NjQiDQotCQkJQ29uZmlndXJhdGlvblR5cGU9IjIiDQotCQkJSW5oZXJpdGVkUHJvcGVydHlTaGVldHM9Ii5ccHlkLnZzcHJvcHM7Llx4NjQudnNwcm9wczsuXHBndXBkYXRlLnZzcHJvcHMiDQotCQkJQ2hhcmFjdGVyU2V0PSIwIg0KLQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0iMSINCi0JCQk+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNQcmVCdWlsZEV2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDQ3VzdG9tQnVpbGRUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNYTUxEYXRhR2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDV2ViU2VydmljZVByb3h5R2VuZXJhdG9yVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCVRhcmdldEVudmlyb25tZW50PSIzIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTWFuYWdlZFJlc291cmNlQ29tcGlsZXJUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNSZXNvdXJjZUNvbXBpbGVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUHJlTGlua0V2ZW50VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDTGlua2VyVG9vbCINCi0JCQkJQWRkaXRpb25hbERlcGVuZGVuY2llcz0id3MyXzMyLmxpYiINCi0JCQkJQmFzZUFkZHJlc3M9IjB4MWUxRDAwMDAiDQotCQkJCVRhcmdldE1hY2hpbmU9IjE3Ig0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNBTGlua1Rvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ01hbmlmZXN0VG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDWERDTWFrZVRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0JzY01ha2VUb29sIg0KLQkJCS8+DQotCQkJPFRvb2wNCi0JCQkJTmFtZT0iVkNGeENvcFRvb2wiDQotCQkJLz4NCi0JCQk8VG9vbA0KLQkJCQlOYW1lPSJWQ0FwcFZlcmlmaWVyVG9vbCINCi0JCQkvPg0KLQkJCTxUb29sDQotCQkJCU5hbWU9IlZDUG9zdEJ1aWxkRXZlbnRUb29sIg0KLQkJCS8+DQotCQk8L0NvbmZpZ3VyYXRpb24+DQotCTwvQ29uZmlndXJhdGlvbnM+DQotCTxSZWZlcmVuY2VzPg0KLQk8L1JlZmVyZW5jZXM+DQotCTxGaWxlcz4NCi0JCTxGaWx0ZXINCi0JCQlOYW1lPSJIZWFkZXIgRmlsZXMiDQotCQkJPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXG11bHRpcHJvY2Vzc2luZy5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXGNvbm5lY3Rpb24uaCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KLQkJCU5hbWU9IlNvdXJjZSBGaWxlcyINCi0JCQk+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3NpbmdcbXVsdGlwcm9jZXNzaW5nLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3NpbmdccGlwZV9jb25uZWN0aW9uLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3Npbmdcc2VtYXBob3JlLmMiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3Npbmdcc29ja2V0X2Nvbm5lY3Rpb24uYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1x3aW4zMl9mdW5jdGlvbnMuYyINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCTwvRmlsdGVyPg0KLQk8L0ZpbGVzPg0KLQk8R2xvYmFscz4NCi0JPC9HbG9iYWxzPg0KLTwvVmlzdWFsU3R1ZGlvUHJvamVjdD4NCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19tdWx0aXByb2Nlc3NpbmcudmN4cHJvaiBiL1BDYnVpbGQvX211bHRpcHJvY2Vzc2luZy52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0YmI1NjgKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL19tdWx0aXByb2Nlc3NpbmcudmN4cHJvagpAQCAtMCwwICsxLDIzMCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+ezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPl9tdWx0aXByb2Nlc3Npbmc8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzMl8zMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUQwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzMl8zMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUQwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFEMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzMl8zMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUQwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzMl8zMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUQwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFEMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFEMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFEMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXG11bHRpcHJvY2Vzc2luZy5oIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1xtdWx0aXByb2Nlc3NpbmcuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX211bHRpcHJvY2Vzc2luZ1xzZW1hcGhvcmUuYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX211bHRpcHJvY2Vzc2luZy52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL19tdWx0aXByb2Nlc3NpbmcudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc4MTMzZWMKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL19tdWx0aXByb2Nlc3NpbmcudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsMjQgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezYyM2M5NTZjLTE4OTMtNDNkOS1hN2RjLTk2ZTRmZWYyMGY5M308L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezM0NjE1YTYyLWY5OTktNDY1OS04M2Y1LTE5ZDE3YTY0NDUzMH08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXG11bHRpcHJvY2Vzc2luZy5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfbXVsdGlwcm9jZXNzaW5nXG11bHRpcHJvY2Vzc2luZy5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9tdWx0aXByb2Nlc3Npbmdcc2VtYXBob3JlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fc29ja2V0LnZjeHByb2ogYi9QQ2J1aWxkL19zb2NrZXQudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzgzNmU5Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9fc29ja2V0LnZjeHByb2oKQEAgLTAsMCArMSwyMjkgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPns4NjkzN0Y1My1DMTg5LTQwRUYtOENFOC04NzU5RDhFN0Q0ODB9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5fc29ja2V0PC9Sb290TmFtZXNwYWNlPgorICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFEMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFEMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFEMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53czJfMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFEMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcc29ja2V0bW9kdWxlLmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xzb2NrZXRtb2R1bGUuYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX3NvY2tldC52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL19zb2NrZXQudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5MGZmYTgKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL19zb2NrZXQudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsMjEgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezE0NTIyMDdmLTcwN2MtNGU4NC1iNTMyLTMwNzE5M2EwZmQ4NX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezFlZGZlMGQwLTdiOWQtNGRjOC1hMzM1LWIyMWZlZjdjYzc3YX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xzb2NrZXRtb2R1bGUuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcc29ja2V0bW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fc3FsaXRlMy52Y3hwcm9qIGIvUENidWlsZC9fc3FsaXRlMy52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM5MmRhZDEKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL19zcWxpdGUzLnZjeHByb2oKQEAgLTAsMCArMSwyNzQgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsxM0NFQ0I5Ny00MTE5LTQzMTYtOUQ0Mi04NTM0MDE5QTVBNDR9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5fc3FsaXRlMzwvUm9vdE5hbWVzcGFjZT4KKyAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKHNxbGl0ZTNEaXIpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TU9EVUxFX05BTUU9InNxbGl0ZTMiOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMTgwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChzcWxpdGUzRGlyKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk1PRFVMRV9OQU1FPSJzcWxpdGUzIjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTE4MDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKHNxbGl0ZTNEaXIpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TU9EVUxFX05BTUU9InNxbGl0ZTMiOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMTgwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKHNxbGl0ZTNEaXIpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TU9EVUxFX05BTUU9InNxbGl0ZTMiOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMTgwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChzcWxpdGUzRGlyKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk1PRFVMRV9OQU1FPSJzcWxpdGUzIjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTE4MDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKHNxbGl0ZTNEaXIpOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TU9EVUxFX05BTUU9InNxbGl0ZTMiOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMTgwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChzcWxpdGUzRGlyKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk1PRFVMRV9OQU1FPSJzcWxpdGUzIjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTE4MDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQoc3FsaXRlM0Rpcik7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5NT0RVTEVfTkFNRT0ic3FsaXRlMyI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxODAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxjYWNoZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXGNvbm5lY3Rpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxjdXJzb3IuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxtaWNyb3Byb3RvY29scy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXG1vZHVsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXHByZXBhcmVfcHJvdG9jb2wuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxyb3cuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxzcWxpdGVjb21wYXQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxzdGF0ZW1lbnQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVx1dGlsLmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXGNhY2hlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zcWxpdGVcY29ubmVjdGlvbi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXGN1cnNvci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXG1pY3JvcHJvdG9jb2xzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zcWxpdGVcbW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zcWxpdGVccHJlcGFyZV9wcm90b2NvbC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXHJvdy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXHN0YXRlbWVudC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXHV0aWwuYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0ic3FsaXRlMy52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PnthMWEyOTVlNS00NjNjLTQzN2YtODFjYS0xZjMyMzY3Njg1ZGF9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX3NxbGl0ZTMudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9fc3FsaXRlMy52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhlNWZkYgotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX3NxbGl0ZTMudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsNzIgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2RhYzhhYjNiLWNlMTYtNGJlZi1iZWY5LTc2NDYzYTAxZjVjNH08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezgxNGIxODdkLTQ0YWQtNGYyYi1iYWE3LTE4Y2E4YThhNmE3N308L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXGNhY2hlLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxjb25uZWN0aW9uLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxjdXJzb3IuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXG1pY3JvcHJvdG9jb2xzLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxtb2R1bGUuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXHByZXBhcmVfcHJvdG9jb2wuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXHJvdy5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zcWxpdGVcc3FsaXRlY29tcGF0LmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxzdGF0ZW1lbnQuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXHV0aWwuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxjYWNoZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zcWxpdGVcY29ubmVjdGlvbi5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zcWxpdGVcY3Vyc29yLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxtaWNyb3Byb3RvY29scy5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zcWxpdGVcbW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxwcmVwYXJlX3Byb3RvY29sLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NxbGl0ZVxyb3cuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3FsaXRlXHN0YXRlbWVudC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zcWxpdGVcdXRpbC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX3NzbC52Y3hwcm9qIGIvUENidWlsZC9fc3NsLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWU3MWQxOQotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX3NzbC52Y3hwcm9qCkBAIC0wLDAgKzEsMjg2IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfTwvUHJvamVjdEd1aWQ+CisgICAgPFJvb3ROYW1lc3BhY2U+X3NzbDwvUm9vdE5hbWVzcGFjZT4KKyAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKG9wZW5zc2xEaXIpXGluYzMyOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxDb21tYW5kPgorICAgICAgPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDMyXGxpYmVheTMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDMyXHNzbGVheTMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKG9wZW5zc2xEaXIpXGluYzY0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxDb21tYW5kPgorICAgICAgPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChvcGVuc3NsRGlyKVxpbmMzMjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxQcmVMaW5rRXZlbnQ+CisgICAgICA8Q29tbWFuZD4KKyAgICAgIDwvQ29tbWFuZD4KKyAgICA8L1ByZUxpbmtFdmVudD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzMl8zMi5saWI7JChvcGVuc3NsRGlyKVxvdXQzMlxsaWJlYXkzMi5saWI7JChvcGVuc3NsRGlyKVxvdXQzMlxzc2xlYXkzMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKG9wZW5zc2xEaXIpXGluYzY0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxDb21tYW5kPgorICAgICAgPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDY0XGxpYmVheTMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDY0XHNzbGVheTMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKG9wZW5zc2xEaXIpXGluYzMyOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxDb21tYW5kPgorICAgICAgPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3MyXzMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDMyXGxpYmVheTMyLmxpYjskKG9wZW5zc2xEaXIpXG91dDMyXHNzbGVheTMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChvcGVuc3NsRGlyKVxpbmM2NDslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxQcmVMaW5rRXZlbnQ+CisgICAgICA8Q29tbWFuZD4KKyAgICAgIDwvQ29tbWFuZD4KKyAgICA8L1ByZUxpbmtFdmVudD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzMl8zMi5saWI7JChvcGVuc3NsRGlyKVxvdXQ2NFxsaWJlYXkzMi5saWI7JChvcGVuc3NsRGlyKVxvdXQ2NFxzc2xlYXkzMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChvcGVuc3NsRGlyKVxpbmMzMjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxQcmVMaW5rRXZlbnQ+CisgICAgICA8Q29tbWFuZD4KKyAgICAgIDwvQ29tbWFuZD4KKyAgICA8L1ByZUxpbmtFdmVudD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzMl8zMi5saWI7JChvcGVuc3NsRGlyKVxvdXQzMlxsaWJlYXkzMi5saWI7JChvcGVuc3NsRGlyKVxvdXQzMlxzc2xlYXkzMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChvcGVuc3NsRGlyKVxpbmM2NDslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxQcmVMaW5rRXZlbnQ+CisgICAgICA8Q29tbWFuZD4KKyAgICAgIDwvQ29tbWFuZD4KKyAgICA8L1ByZUxpbmtFdmVudD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzMl8zMi5saWI7JChvcGVuc3NsRGlyKVxvdXQ2NFxsaWJlYXkzMi5saWI7JChvcGVuc3NsRGlyKVxvdXQ2NFxzc2xlYXkzMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zc2wuYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2IxMWQ3NTBmLWNkMWYtNGE5Ni04NWNlLWU2OWE1YzUyNTlmOX08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJweXRob25jb3JlLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2NmN2FjM2QxLWUyZGYtNDFkMi1iZWE2LTFlMjU1NmNkZWEyNn08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJzc2wudmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57ZTViMDRjYzAtZWI0Yy00MmFiLWI0ZGMtMThlZjk1Zjg2NGIwfTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Il9zb2NrZXQudmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57ODY5MzdmNTMtYzE4OS00MGVmLThjZTgtODc1OWQ4ZTdkNDgwfTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL19zc2wudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9fc3NsLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OGIxNDU5Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9fc3NsLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDEzIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns2OTUzNDhmNy1lOWY2LTRmZTEtYmMwMy01ZjA4ZmZjODA5NWJ9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NzbC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX3Rlc3RidWZmZXIudmN4cHJvaiBiL1BDYnVpbGQvX3Rlc3RidWZmZXIudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMTI2NWY2Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9fdGVzdGJ1ZmZlci52Y3hwcm9qCkBAIC0wLDAgKzEsMjE3IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fTwvUHJvamVjdEd1aWQ+CisgICAgPFJvb3ROYW1lc3BhY2U+X3Rlc3RidWZmZXI8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjQwMjE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFGMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFGMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFGMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTFGMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfdGVzdGJ1ZmZlci5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJweXRob25jb3JlLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2NmN2FjM2QxLWUyZGYtNDFkMi1iZWE2LTFlMjU1NmNkZWEyNn08L1Byb2plY3Q+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL190ZXN0YnVmZmVyLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQvX3Rlc3RidWZmZXIudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhZGYyODIKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL190ZXN0YnVmZmVyLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDEzIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns4ZDIzMjI0MC05MjFhLTRiYzItODdjMy05M2ZmZDM0NjJmMGF9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3Rlc3RidWZmZXIuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL190ZXN0Y2FwaS52Y3hwcm9qIGIvUENidWlsZC9fdGVzdGNhcGkudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lOTlhN2U0Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9fdGVzdGNhcGkudmN4cHJvagpAQCAtMCwwICsxLDIxOCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+ezY5MDFEOTFDLTZFNDgtNEJCNy05RkVDLTcwMEM4MTMxREYxRH08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPl90ZXN0Y2FwaTwvUm9vdE5hbWVzcGFjZT4KKyAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUxRjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMUYwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF90ZXN0Y2FwaW1vZHVsZS5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJweXRob25jb3JlLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2NmN2FjM2QxLWUyZGYtNDFkMi1iZWE2LTFlMjU1NmNkZWEyNn08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9fdGVzdGNhcGkudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9fdGVzdGNhcGkudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhNmFkMWEKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL190ZXN0Y2FwaS52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwxMyBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57YTc2YTkwZDgtOGU4Yi00YzM2LThmNTgtOGJkNDZhYmU5ZjVlfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF90ZXN0Y2FwaW1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX3RraW50ZXIudmN4cHJvaiBiL1BDYnVpbGQvX3RraW50ZXIudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42N2Y3MmZlCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9fdGtpbnRlci52Y3hwcm9qCkBAIC0wLDAgKzEsMjUxIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57NDk0NkVDQUMtMkU2OS00QkY4LUE5MEEtRjUxMzZGNTA5NERGfTwvUHJvamVjdEd1aWQ+CisgICAgPFJvb3ROYW1lc3BhY2U+X3RraW50ZXI8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JCh0Y2x0a0RpcilcaW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJVEhfQVBQSU5JVDslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKHRjbHRrTGliRGVidWcpOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQodGNsdGs2NERpcilcaW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJVEhfQVBQSU5JVDslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKHRjbHRrNjRMaWJEZWJ1Zyk7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQodGNsdGtEaXIpXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSVRIX0FQUElOSVQ7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JCh0Y2x0a0xpYik7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKHRjbHRrNjREaXIpXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSVRIX0FQUElOSVQ7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JCh0Y2x0azY0TGliKTslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKHRjbHRrRGlyKVxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lUSF9BUFBJTklUOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQodGNsdGtMaWIpOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKHRjbHRrNjREaXIpXGluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5XSVRIX0FQUElOSVQ7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JCh0Y2x0azY0TGliKTslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4kKHRjbHRrRGlyKVxpbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+V0lUSF9BUFBJTklUOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQodGNsdGtMaWIpOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiQodGNsdGs2NERpcilcaW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPldJVEhfQVBQSU5JVDslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKHRjbHRrNjRMaWIpOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfdGtpbnRlci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x0a2FwcGluaXQuYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvX3RraW50ZXIudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9fdGtpbnRlci52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU1Y2Q0NwotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvX3RraW50ZXIudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsMTYgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2I5Y2U2NGRkLWNiOTUtNDcyZC1iYmU4LTU1ODNiMmNkMzc1Yn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfdGtpbnRlci5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHRrYXBwaW5pdC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvYmRpc3Rfd2luaW5zdC52Y3hwcm9qIGIvUENidWlsZC9iZGlzdF93aW5pbnN0LnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkyNzZhMgotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvYmRpc3Rfd2luaW5zdC52Y3hwcm9qCkBAIC0wLDAgKzEsMTU4IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPntFQjFDMTlDMS0xRjE4LTQyMUUtOTczNS1DQUVFNjlEQzZBM0N9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT53aW5pbnN0PC9Sb290TmFtZXNwYWNlPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPE91dERpciBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmRcPC9PdXREaXI+CisgICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5mYWxzZTwvTGlua0luY3JlbWVudGFsPgorICAgIDxPdXREaXIgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPi4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFw8L091dERpcj4KKyAgICA8SW50RGlyIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4kKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm1OYW1lKS10ZW1wLSQoQ29uZmlndXJhdGlvbilcJChQcm9qZWN0TmFtZSlcPC9JbnREaXI+CisgICAgPExpbmtJbmNyZW1lbnRhbCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+ZmFsc2U8L0xpbmtJbmNyZW1lbnRhbD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPFRhcmdldEV4dCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4uZXhlPC9UYXJnZXRFeHQ+CisgICAgPFRhcmdldEV4dCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+LmV4ZTwvVGFyZ2V0RXh0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxNaWRsPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8TWtUeXBMaWJDb21wYXRpYmxlPnRydWU8L01rVHlwTGliQ29tcGF0aWJsZT4KKyAgICAgIDxTdXBwcmVzc1N0YXJ0dXBCYW5uZXI+dHJ1ZTwvU3VwcHJlc3NTdGFydHVwQmFubmVyPgorICAgICAgPFRhcmdldEVudmlyb25tZW50PldpbjMyPC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICAgIDxUeXBlTGlicmFyeU5hbWU+LlwuLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmRcd2luaW5zdC50bGI8L1R5cGVMaWJyYXJ5TmFtZT4KKyAgICAgIDxIZWFkZXJGaWxlTmFtZT4KKyAgICAgIDwvSGVhZGVyRmlsZU5hbWU+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8T3B0aW1pemF0aW9uPk1pblNwYWNlPC9PcHRpbWl6YXRpb24+CisgICAgICA8SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+T25seUV4cGxpY2l0SW5saW5lPC9JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXFBDXGJkaXN0X3dpbmluc3Q7Li5cSW5jbHVkZTsuLlxNb2R1bGVzXHpsaWI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEU7X0NSVF9OT05TVERDX05PX0RFUFJFQ0FURTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxTdXBwcmVzc1N0YXJ0dXBCYW5uZXI+dHJ1ZTwvU3VwcHJlc3NTdGFydHVwQmFubmVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDAwMDwvQ3VsdHVyZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXFBDOy4uXFBDXGJkaXN0X3dpbmluc3Q7Li5cSW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+Y29tY3RsMzIubGliO2ltYWdlaGxwLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPE91dHB1dEZpbGU+Li5cbGliXGRpc3R1dGlsc1xjb21tYW5kXHdpbmluc3QtMTAuMC5leGU8L091dHB1dEZpbGU+CisgICAgICA8U3VwcHJlc3NTdGFydHVwQmFubmVyPnRydWU8L1N1cHByZXNzU3RhcnR1cEJhbm5lcj4KKyAgICAgIDxJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+TElCQzslKElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcyk8L0lnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxQcm9ncmFtRGF0YWJhc2VGaWxlPi4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LTEwLjAucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgorICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+CisgICAgICA8UmFuZG9taXplZEJhc2VBZGRyZXNzPmZhbHNlPC9SYW5kb21pemVkQmFzZUFkZHJlc3M+CisgICAgICA8RGF0YUV4ZWN1dGlvblByZXZlbnRpb24+CisgICAgICA8L0RhdGFFeGVjdXRpb25QcmV2ZW50aW9uPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg4NjwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8TWtUeXBMaWJDb21wYXRpYmxlPnRydWU8L01rVHlwTGliQ29tcGF0aWJsZT4KKyAgICAgIDxTdXBwcmVzc1N0YXJ0dXBCYW5uZXI+dHJ1ZTwvU3VwcHJlc3NTdGFydHVwQmFubmVyPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgICA8VHlwZUxpYnJhcnlOYW1lPi5cLi5cbGliXGRpc3R1dGlsc1xjb21tYW5kXHdpbmluc3QudGxiPC9UeXBlTGlicmFyeU5hbWU+CisgICAgICA8SGVhZGVyRmlsZU5hbWU+CisgICAgICA8L0hlYWRlckZpbGVOYW1lPgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5NaW5TcGFjZTwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxQQ1xiZGlzdF93aW5pbnN0Oy4uXEluY2x1ZGU7Li5cTW9kdWxlc1x6bGliOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0NSVF9TRUNVUkVfTk9fREVQUkVDQVRFO19DUlRfTk9OU1REQ19OT19ERVBSRUNBVEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8U3VwcHJlc3NTdGFydHVwQmFubmVyPnRydWU8L1N1cHByZXNzU3RhcnR1cEJhbm5lcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDAwMDA8L0N1bHR1cmU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxQQzsuLlxQQ1xiZGlzdF93aW5pbnN0Oy4uXEluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPmNvbWN0bDMyLmxpYjtpbWFnZWhscC5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxPdXRwdXRGaWxlPi4uXGxpYlxkaXN0dXRpbHNcY29tbWFuZFx3aW5pbnN0LTEwLjAtYW1kNjQuZXhlPC9PdXRwdXRGaWxlPgorICAgICAgPFN1cHByZXNzU3RhcnR1cEJhbm5lcj50cnVlPC9TdXBwcmVzc1N0YXJ0dXBCYW5uZXI+CisgICAgICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPkxJQkM7JShJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXMpPC9JZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4uLlxsaWJcZGlzdHV0aWxzXGNvbW1hbmRcd2luaW5zdC05LjAtYW1kNjQucGRiPC9Qcm9ncmFtRGF0YWJhc2VGaWxlPgorICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+CisgICAgICA8UmFuZG9taXplZEJhc2VBZGRyZXNzPmZhbHNlPC9SYW5kb21pemVkQmFzZUFkZHJlc3M+CisgICAgICA8RGF0YUV4ZWN1dGlvblByZXZlbnRpb24+CisgICAgICA8L0RhdGFFeGVjdXRpb25QcmV2ZW50aW9uPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXGJkaXN0X3dpbmluc3RcZXh0cmFjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUENcYmRpc3Rfd2luaW5zdFxpbnN0YWxsLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcYWRsZXIzMi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGNyYzMyLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcaW5mZmFzdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZmxhdGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlxpbmZ0cmVlcy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXHp1dGlsLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cUENcYmRpc3Rfd2luaW5zdFxhcmNoaXZlLmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cUENcYmRpc3Rfd2luaW5zdFxpbnN0YWxsLnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlxQQ1xiZGlzdF93aW5pbnN0XFB5dGhvblBvd2VyZWQuYm1wIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL2JkaXN0X3dpbmluc3QudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9iZGlzdF93aW5pbnN0LnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNGI2YTRkCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9iZGlzdF93aW5pbnN0LnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDYxIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnsyOTNiMTA5Mi0wM2FkLTRiN2MtYWNiOS1jNGFiNjJlNTJmNTV9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y3h4O3JjO2RlZjtyO29kbDtpZGw7aHBqO2JhdDwvRXh0ZW5zaW9ucz4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlc1x6bGliIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnswZWRjMDQwNi0yODJmLTRkYmMtYjYwZS1hODY3YzM0YTJhMzF9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPntlYTBjMGYwZS0zYjczLTQ3NGUtYTk5OS1lOTY4OWQwMzJjY2N9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgICAgPEV4dGVuc2lvbnM+aDtocHA7aHh4O2htO2lubDwvRXh0ZW5zaW9ucz4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlJlc291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnswYzc3YzFjZi0zZjg3LTRmODctYmQ4Ni1iNDI1MjExYzIxODF9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgICAgPEV4dGVuc2lvbnM+aWNvO2N1cjtibXA7ZGxnO3JjMjtyY3Q7YmluO3JncztnaWY7anBnO2pwZWc7anBlPC9FeHRlbnNpb25zPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXGJkaXN0X3dpbmluc3RcZXh0cmFjdC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xiZGlzdF93aW5pbnN0XGluc3RhbGwuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGFkbGVyMzIuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcY3JjMzIuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcaW5mZmFzdC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzXHpsaWI8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlxpbmZsYXRlLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZnRyZWVzLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXHp1dGlsLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFBDXGJkaXN0X3dpbmluc3RcYXJjaGl2ZS5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cUENcYmRpc3Rfd2luaW5zdFxpbnN0YWxsLnJjIj4KKyAgICAgIDxGaWx0ZXI+UmVzb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cUENcYmRpc3Rfd2luaW5zdFxQeXRob25Qb3dlcmVkLmJtcCI+CisgICAgICA8RmlsdGVyPlJlc291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9Ob25lPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL2J1aWxkLmJhdCBiL1BDYnVpbGQvYnVpbGQuYmF0CmluZGV4IGE3MzU2MGUuLmZhMGQ5NWIgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvYnVpbGQuYmF0CisrKyBiL1BDYnVpbGQvYnVpbGQuYmF0CkBAIC01LDE0ICs1LDE1IEBACiBzZXRsb2NhbAogc2V0IHBsYXRmPVdpbjMyCiBzZXQgY29uZj1SZWxlYXNlCi1zZXQgYnVpbGQ9CitzZXQgdGFyZ2V0PWJ1aWxkCitzZXQgZGlyPSV+ZHAwCiAKIDpDaGVja09wdHMKIGlmICIlMSI9PSItYyIgKHNldCBjb25mPSUyKSAmIHNoaWZ0ICYgc2hpZnQgJiBnb3RvIENoZWNrT3B0cwogaWYgIiUxIj09Ii1wIiAoc2V0IHBsYXRmPSUyKSAmIHNoaWZ0ICYgc2hpZnQgJiBnb3RvIENoZWNrT3B0cwotaWYgIiUxIj09Ii1yIiAoc2V0IGJ1aWxkPS9yZWJ1aWxkKSAmIHNoaWZ0ICYgZ290byBDaGVja09wdHMKK2lmICIlMSI9PSItciIgKHNldCB0YXJnZXQ9cmVidWlsZCkgJiBzaGlmdCAmIGdvdG8gQ2hlY2tPcHRzCiBpZiAiJTEiPT0iLWQiIChzZXQgY29uZj1EZWJ1ZykgJiBzaGlmdCAmIGdvdG8gQ2hlY2tPcHRzCiAKLXNldCBjbWQ9dmNidWlsZCAvdXNlZW52IHBjYnVpbGQuc2xuICVidWlsZCUgIiVjb25mJXwlcGxhdGYlIgorc2V0IGNtZD1tc2J1aWxkIC9wOnVzZWVudj10cnVlICVkaXIlcGNidWlsZC5zbG4gL3Q6JXRhcmdldCUgL3A6Q29uZmlndXJhdGlvbj0lY29uZiUgL3A6UGxhdGZvcm09JXBsYXRmJQogZWNobyAlY21kJQogJWNtZCUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvYnVpbGRfc3NsLmJhdCBiL1BDYnVpbGQvYnVpbGRfc3NsLmJhdAppbmRleCBjZWU2NGE4Li4zNTdiMDhiIDEwMDY0NAotLS0gYS9QQ2J1aWxkL2J1aWxkX3NzbC5iYXQKKysrIGIvUENidWlsZC9idWlsZF9zc2wuYmF0CkBAIC0yLDEwICsyLDEwIEBACiBpZiBub3QgZGVmaW5lZCBIT1NUX1BZVEhPTiAoCiAgIGlmICUxIEVRVSBEZWJ1ZyAoCiAgICAgc2V0IEhPU1RfUFlUSE9OPXB5dGhvbl9kLmV4ZQotICAgIGlmIG5vdCBleGlzdCBweXRob24zMV9kLmRsbCBleGl0IDEKKyAgICBpZiBub3QgZXhpc3QgcHl0aG9uMzNfZC5kbGwgZXhpdCAxCiAgICkgRUxTRSAoCiAgICAgc2V0IEhPU1RfUFlUSE9OPXB5dGhvbi5leGUKLSAgICBpZiBub3QgZXhpc3QgcHl0aG9uMzEuZGxsIGV4aXQgMQorICAgIGlmIG5vdCBleGlzdCBweXRob24zMy5kbGwgZXhpdCAxCiAgICkKICkKICVIT1NUX1BZVEhPTiUgYnVpbGRfc3NsLnB5ICUxICUyICUzCmRpZmYgLS1naXQgYS9QQ2J1aWxkL2J1aWxkX3NzbC5weSBiL1BDYnVpbGQvYnVpbGRfc3NsLnB5CmluZGV4IDkzODgxMjQuLjVhN2E4OWUgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvYnVpbGRfc3NsLnB5CisrKyBiL1BDYnVpbGQvYnVpbGRfc3NsLnB5CkBAIC02NSw5ICs2NSw5IEBACiAKICMgRmV0Y2ggU1NMIGRpcmVjdG9yeSBmcm9tIFZDIHByb3BlcnRpZXMKIGRlZiBnZXRfc3NsX2RpcigpOgotICAgIHByb3BmaWxlID0gKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAncHlwcm9qZWN0LnZzcHJvcHMnKSkKKyAgICBwcm9wZmlsZSA9IChvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ3B5cHJvamVjdC5wcm9wcycpKQogICAgIHdpdGggb3Blbihwcm9wZmlsZSkgYXMgZjoKLSAgICAgICAgbSA9IHJlLnNlYXJjaCgnb3BlbnNzbC0oW14iXSspIicsIGYucmVhZCgpKQorICAgICAgICBtID0gcmUuc2VhcmNoKCdvcGVuc3NsLShbXjxdKyk8JywgZi5yZWFkKCkpCiAgICAgICAgIHJldHVybiAiLi5cLi5cb3BlbnNzbC0iK20uZ3JvdXAoMSkKIAogCkBAIC0yMjgsOSArMjI4LDkgQEAKIAogICAgICAgICAjIE5vdyBydW4gbWFrZS4KICAgICAgICAgaWYgYXJjaCA9PSAiYW1kNjQiOgotICAgICAgICAgICAgcmMgPSBvcy5zeXN0ZW0oIm1sNjQgLWMgLUZvbXNcXHVwdGFibGUub2JqIG1zXFx1cHRhYmxlLmFzbSIpCisgICAgICAgICAgICByYyA9IG9zLnN5c3RlbSgibmFzbSAtZiB3aW42NCAtRE5FQVIgLU94IC1nIG1zXFx1cHRhYmxlLmFzbSIpCiAgICAgICAgICAgICBpZiByYzoKLSAgICAgICAgICAgICAgICBwcmludCgibWw2NCBhc3NlbWJsZXIgaGFzIGZhaWxlZC4iKQorICAgICAgICAgICAgICAgIHByaW50KCJuYXNtIGFzc2VtYmxlciBoYXMgZmFpbGVkLiIpCiAgICAgICAgICAgICAgICAgc3lzLmV4aXQocmMpCiAKICAgICAgICAgY29weShyImNyeXB0b1xidWlsZGluZl8lcy5oIiAlIGFyY2gsIHIiY3J5cHRvXGJ1aWxkaW5mLmgiKQpkaWZmIC0tZ2l0IGEvUENidWlsZC9idWlsZF90a2ludGVyLnB5IGIvUENidWlsZC9idWlsZF90a2ludGVyLnB5CmluZGV4IGViMWQwOTIuLjQxOTZjZjMgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvYnVpbGRfdGtpbnRlci5weQorKysgYi9QQ2J1aWxkL2J1aWxkX3RraW50ZXIucHkKQEAgLTExLDggKzExLDggQEAKIGhlcmUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKIHBhciA9IG9zLnBhdGgucGFyZGlyCiAKLVRDTCA9ICJ0Y2w4LjUuOSIKLVRLID0gInRrOC41LjkiCitUQ0wgPSAidGNsOC41LjExIgorVEsgPSAidGs4LjUuMTEiCiBUSVggPSAidGl4LTguNC4zLngiCiAKIFJPT1QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIHBhciwgcGFyKSkKQEAgLTMyLDcgKzMyLDcgQEAKIGRlZiBidWlsZChwbGF0Zm9ybSwgY2xlYW4pOgogICAgIGlmIHBsYXRmb3JtID09ICJXaW4zMiI6CiAgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oUk9PVCwgInRjbHRrIikKLSAgICAgICAgbWFjaGluZSA9ICJYODYiCisgICAgICAgIG1hY2hpbmUgPSAiSVg4NiIKICAgICBlbGlmIHBsYXRmb3JtID09ICJBTUQ2NCI6CiAgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oUk9PVCwgInRjbHRrNjQiKQogICAgICAgICBtYWNoaW5lID0gIkFNRDY0IgpkaWZmIC0tZ2l0IGEvUENidWlsZC9kZWJ1Zy5wcm9wcyBiL1BDYnVpbGQvZGVidWcucHJvcHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWI3YTY1YQotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvZGVidWcucHJvcHMKQEAgLTAsMCArMSwyNyBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyI+CisgICAgPFB5RGVidWdFeHQ+X2Q8L1B5RGVidWdFeHQ+CisgICAgPEtpbGxQeXRob25FeGU+JChPdXREaXIpa2lsbF9weXRob25fZC5leGU8L0tpbGxQeXRob25FeGU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxUYXJnZXROYW1lPiQoUHJvamVjdE5hbWUpX2Q8L1RhcmdldE5hbWU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0RFQlVHPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxCdWlsZE1hY3JvIEluY2x1ZGU9IlB5RGVidWdFeHQiPgorICAgICAgPFZhbHVlPiQoUHlEZWJ1Z0V4dCk8L1ZhbHVlPgorICAgIDwvQnVpbGRNYWNybz4KKyAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJLaWxsUHl0aG9uRXhlIj4KKyAgICAgIDxWYWx1ZT4kKEtpbGxQeXRob25FeGUpPC9WYWx1ZT4KKyAgICA8L0J1aWxkTWFjcm8+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvZW52LmJhdCBiL1BDYnVpbGQvZW52LmJhdAppbmRleCA2MzhiMTZjLi4wOGRjOGVmIDEwMDY0NAotLS0gYS9QQ2J1aWxkL2Vudi5iYXQKKysrIGIvUENidWlsZC9lbnYuYmF0CkBAIC0xLDUgKzEsOSBAQAogQGVjaG8gb2ZmCi1zZXQgVlM5PSVQcm9ncmFtRmlsZXMlXE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDkuMAorc2V0IFZTMTA9JVByb2dyYW1GaWxlcyh4ODYpJVxNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAxMC4wCitJRiBFWElTVCAiJVZTMTAlIiBHT1RPIG9rCitzZXQgVlMxMD0lUHJvZ3JhbUZpbGVzJVxNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyAxMC4wCis6b2sKKwogZWNobyBCdWlsZCBlbnZpcm9ubWVudHM6IHg4NiwgaWE2NCwgYW1kNjQsIHg4Nl9hbWQ2NCwgeDg2X2lhNjQKIGVjaG8uCi1jYWxsICIlVlM5JVxWQ1x2Y3ZhcnNhbGwuYmF0IiAlMQorY2FsbCAiJVZTMTAlXFZDXHZjdmFyc2FsbC5iYXQiICUxCmRpZmYgLS1naXQgYS9QQ2J1aWxkL2tpbGxfcHl0aG9uLmMgYi9QQ2J1aWxkL2tpbGxfcHl0aG9uLmMKaW5kZXggNmI5MTY3OC4uYmIzMjNkMyAxMDA2NDQKLS0tIGEvUENidWlsZC9raWxsX3B5dGhvbi5jCisrKyBiL1BDYnVpbGQva2lsbF9weXRob24uYwpAQCAtMTA2LDcgKzEwNiw3IEBACiAgICAgICAgIC8qCiAgICAgICAgICAqIFhYWCBUT0RPOiBpZiB3ZSByZWFsbHkgd2FudGVkIHRvIGJlIGZhbmN5LCB3ZSBjb3VsZCBjaGVjayB0aGUgCiAgICAgICAgICAqIG1vZHVsZXMgZm9yIGFsbCBwcm9jZXNzZXMgKG5vdCBqdXN0IHRoZSBweXRob25bX2RdLmV4ZSBvbmVzKQotICAgICAgICAgKiBhbmQgc2VlIGlmIGFueSBvZiBvdXIgRExMcyBhcmUgbG9hZGVkIChpLmUuIHB5dGhvbjMyW19kXS5kbGwpLAorICAgICAgICAgKiBhbmQgc2VlIGlmIGFueSBvZiBvdXIgRExMcyBhcmUgbG9hZGVkIChpLmUuIHB5dGhvbjMzW19kXS5kbGwpLAogICAgICAgICAgKiBhcyB0aGF0IHdvdWxkIGFsc28gaW5oaWJpdCBvdXIgYWJpbGl0eSB0byByZWJ1aWxkIHRoZSBzb2x1dGlvbi4KICAgICAgICAgICogTm90IHdvcnRoIGxvb3Npbmcgc2xlZXAgb3ZlciB0aG91Z2g7IGZvciBub3csIGEgc2ltcGxlIGNoZWNrIAogICAgICAgICAgKiBmb3IganVzdCB0aGUgcHl0aG9uIGV4ZWN1dGFibGUgc2hvdWxkIGJlIHN1ZmZpY2llbnQuCmRpZmYgLS1naXQgYS9QQ2J1aWxkL2tpbGxfcHl0aG9uLnZjeHByb2ogYi9QQ2J1aWxkL2tpbGxfcHl0aG9uLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWY2N2M0MAotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQva2lsbF9weXRob24udmN4cHJvagpAQCAtMCwwICsxLDEyMCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+ezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPmtpbGxfcHl0aG9uPC9Sb290TmFtZXNwYWNlPgorICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0iZGVidWcucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKV9kLmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpJChQcm9qZWN0TmFtZSlfZC5leGU8L091dHB1dEZpbGU+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSJraWxsX3B5dGhvbi5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL2tpbGxfcHl0aG9uLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQva2lsbF9weXRob24udmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQzM2Q3NTEKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL2tpbGxfcHl0aG9uLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDEzIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns0ODYwNjU5MS1jOGI2LTQxYTUtOTVjNS05YTA4OTBjNTUwNGZ9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9ImtpbGxfcHl0aG9uLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9tYWtlX2J1aWxkaW5mby5jIGIvUENidWlsZC9tYWtlX2J1aWxkaW5mby5jCmluZGV4IGZkM2EyZTIuLmY5YWFkZWUgMTAwNjQ0Ci0tLSBhL1BDYnVpbGQvbWFrZV9idWlsZGluZm8uYworKysgYi9QQ2J1aWxkL21ha2VfYnVpbGRpbmZvLmMKQEAgLTIsNiArMiw3IEBACiAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPGlvLmg+CiAKICNkZWZpbmUgQ01EX1NJWkUgNTAwCiAKQEAgLTYxLDYgKzYyLDUxIEBACiAgICAgcmV0dXJuIDE7CiB9CiAKK2NvbnN0IGNoYXIgREVMSU1TW10gPSB7ICIgXG4iIH07CisKK2ludCBnZXRfbWVyY3VyaWFsX2luZm8oY2hhciAqIGhnYnJhbmNoLCBjaGFyICogaGd0YWcsIGNoYXIgKiBoZ3JldiwgaW50IHNpemUpCit7CisgICAgaW50IHJlc3VsdCA9IDA7CisgICAgY2hhciBmaWxlbmFtZVtDTURfU0laRV07CisgICAgY2hhciBjbWRsaW5lW0NNRF9TSVpFXTsKKworICAgIHN0cmNweV9zKGZpbGVuYW1lLCBDTURfU0laRSwgInRtcFhYWFhYWCIpOworICAgIGlmIChfbWt0ZW1wX3MoZmlsZW5hbWUsIENNRF9TSVpFKSA9PSAwKSB7CisgICAgICAgIGludCByYzsKKworICAgICAgICBzdHJjcHlfcyhjbWRsaW5lLCBDTURfU0laRSwgImhnIGlkIC1iaXQgPiAiKTsKKyAgICAgICAgc3RyY2F0X3MoY21kbGluZSwgQ01EX1NJWkUsIGZpbGVuYW1lKTsKKyAgICAgICAgcmMgPSBzeXN0ZW0oY21kbGluZSk7CisgICAgICAgIGlmIChyYyA9PSAwKSB7CisgICAgICAgICAgICBGSUxFICogZnA7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChmb3Blbl9zKCZmcCwgZmlsZW5hbWUsICJyIikgPT0gMCkgeworICAgICAgICAgICAgICAgIGNoYXIgKiBjcCA9IGZnZXRzKGNtZGxpbmUsIENNRF9TSVpFLCBmcCk7CisKKyAgICAgICAgICAgICAgICBpZiAoY3ApIHsKKyAgICAgICAgICAgICAgICAgICAgY2hhciAqIGNvbnRleHQgPSBOVUxMOworICAgICAgICAgICAgICAgICAgICBjaGFyICogdHAgPSBzdHJ0b2tfcyhjcCwgREVMSU1TLCAmY29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgIGlmICh0cCkgeworICAgICAgICAgICAgICAgICAgICAgICAgc3RyY3B5X3MoaGdyZXYsIHNpemUsIHRwKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRwID0gc3RydG9rX3MoTlVMTCwgREVMSU1TLCAmY29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHApIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJjcHlfcyhoZ2JyYW5jaCwgc2l6ZSwgdHApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRwID0gc3RydG9rX3MoTlVMTCwgREVMSU1TLCAmY29udGV4dCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRwKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNweV9zKGhndGFnLCBzaXplLCB0cCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZjbG9zZShmcCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgX3VubGluayhmaWxlbmFtZSk7CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKmFyZ3ZbXSkKIHsKICAgICBjaGFyIGNvbW1hbmRbQ01EX1NJWkVdID0gImNsLmV4ZSAtYyAtRF9XSU4zMiAtRFVTRV9ETF9FWFBPUlQgLURfV0lORE9XUyAtRFdJTjMyIC1EX1dJTkRMTCAiOwpAQCAtMTA5LDggKzE1NSwyNyBAQAogICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIlwiIik7CiAgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCB0bXBwYXRoKTsKICAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICJnZXRidWlsZGluZm8yLmNcIiAtRFNVQldDUkVWICIpOwotICAgIH0gZWxzZQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgY2hhciBoZ3RhZ1tDTURfU0laRV07CisgICAgICAgIGNoYXIgaGdicmFuY2hbQ01EX1NJWkVdOworICAgICAgICBjaGFyIGhncmV2W0NNRF9TSVpFXTsKKworICAgICAgICBpZiAoZ2V0X21lcmN1cmlhbF9pbmZvKGhnYnJhbmNoLCBoZ3RhZywgaGdyZXYsIENNRF9TSVpFKSkgeworICAgICAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICItREhHQlJBTkNIPVxcXCIiKTsKKyAgICAgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCBoZ2JyYW5jaCk7CisgICAgICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIlxcXCIiKTsKKworICAgICAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICIgLURIR1RBRz1cXFwiIik7CisgICAgICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgaGd0YWcpOworICAgICAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICJcXFwiIik7CisKKyAgICAgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCAiIC1ESEdWRVJTSU9OPVxcXCIiKTsKKyAgICAgICAgICAgIHN0cmNhdF9zKGNvbW1hbmQsIENNRF9TSVpFLCBoZ3Jldik7CisgICAgICAgICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgIlxcXCIgIik7CisgICAgICAgIH0KICAgICAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICIuLlxcTW9kdWxlc1xcZ2V0YnVpbGRpbmZvLmMiKTsKKyAgICB9CiAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICIgLUZvXCIiKTsKICAgICBzdHJjYXRfcyhjb21tYW5kLCBDTURfU0laRSwgdG1wcGF0aCk7CiAgICAgc3RyY2F0X3MoY29tbWFuZCwgQ01EX1NJWkUsICJnZXRidWlsZGluZm8ub1wiIC1JLi5cXEluY2x1ZGUgLUkuLlxcUEMiKTsKZGlmZiAtLWdpdCBhL1BDYnVpbGQvbWFrZV9idWlsZGluZm8udmN4cHJvaiBiL1BDYnVpbGQvbWFrZV9idWlsZGluZm8udmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lZWU3ZjkxCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9tYWtlX2J1aWxkaW5mby52Y3hwcm9qCkBAIC0wLDAgKzEsNTIgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfTwvUHJvamVjdEd1aWQ+CisgICAgPFJvb3ROYW1lc3BhY2U+bWFrZV9idWlsZGluZm88L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC40MDIxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKW1ha2VfYnVpbGRpbmZvLmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0ibWFrZV9idWlsZGluZm8uYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9tYWtlX2J1aWxkaW5mby52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL21ha2VfYnVpbGRpbmZvLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjI3ZjhjCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9tYWtlX2J1aWxkaW5mby52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwxNCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NEZDNzM3RjEtQzdBNS00Mzc2LUEwNjYtMkEzMkQ3NTJBMkZGfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICAgIDxFeHRlbnNpb25zPmNwcDtjO2N4eDtkZWY7b2RsO2lkbDtocGo7YmF0O2FzbTthc214PC9FeHRlbnNpb25zPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Im1ha2VfYnVpbGRpbmZvLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9tYWtlX3ZlcnNpb25pbmZvLnZjeHByb2ogYi9QQ2J1aWxkL21ha2VfdmVyc2lvbmluZm8udmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODU1Mjg3Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9tYWtlX3ZlcnNpb25pbmZvLnZjeHByb2oKQEAgLTAsMCArMSwxOTkgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPntGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5tYWtlX3ZlcnNpb25pbmZvPC9Sb290TmFtZXNwYWNlPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9ImRlYnVnLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9ImRlYnVnLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxDdXN0b21CdWlsZFN0ZXA+CisgICAgICA8TWVzc2FnZT5CdWlsZCBQQy9weXRob25udF9yYyhfZCkuaDwvTWVzc2FnZT4KKyAgICAgIDxDb21tYW5kPmNkICQoU29sdXRpb25EaXIpCittYWtlX3ZlcnNpb25pbmZvLmV4ZSAmZ3Q7IC4uXFBDXHB5dGhvbm50X3JjLmgKKzwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpLi5cUENccHl0aG9ubnRfcmMuaDslKE91dHB1dHMpPC9PdXRwdXRzPgorICAgIDwvQ3VzdG9tQnVpbGRTdGVwPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+T25seUV4cGxpY2l0SW5saW5lPC9JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4KKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPENvbXBpbGVBcz5EZWZhdWx0PC9Db21waWxlQXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKFNvbHV0aW9uRGlyKW1ha2VfdmVyc2lvbmluZm8uZXhlPC9PdXRwdXRGaWxlPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZDAwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICAgIDxQb3N0QnVpbGRFdmVudD4KKyAgICAgIDxDb21tYW5kPmNkICQoU29sdXRpb25EaXIpCittYWtlX3ZlcnNpb25pbmZvLmV4ZSAmZ3Q7IC4uXFBDXHB5dGhvbl9udC5oCis8L0NvbW1hbmQ+CisgICAgPC9Qb3N0QnVpbGRFdmVudD4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxNZXNzYWdlPkJ1aWxkIFBDL3B5dGhvbm50X3JjKF9kKS5oPC9NZXNzYWdlPgorICAgICAgPENvbW1hbmQ+Y2QgJChTb2x1dGlvbkRpcikKK21ha2VfdmVyc2lvbmluZm8uZXhlICZndDsgLi5cUENccHl0aG9ubnRfcmMuaAorPC9Db21tYW5kPgorICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcikuLlxQQ1xweXRob25udF9yYy5oOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPE91dHB1dEZpbGU+JChTb2x1dGlvbkRpciltYWtlX3ZlcnNpb25pbmZvLmV4ZTwvT3V0cHV0RmlsZT4KKyAgICA8L0xpbms+CisgICAgPFBvc3RCdWlsZEV2ZW50PgorICAgICAgPENvbW1hbmQ+Y2QgJChTb2x1dGlvbkRpcikKK21ha2VfdmVyc2lvbmluZm8uZXhlICZndDsgLi5cUENccHl0aG9uX250LmgKKzwvQ29tbWFuZD4KKyAgICA8L1Bvc3RCdWlsZEV2ZW50PgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8Q3VzdG9tQnVpbGRTdGVwPgorICAgICAgPE1lc3NhZ2U+QnVpbGQgUEMvcHl0aG9ubnRfcmMoX2QpLmg8L01lc3NhZ2U+CisgICAgICA8Q29tbWFuZD5jZCAkKFNvbHV0aW9uRGlyKQorbWFrZV92ZXJzaW9uaW5mb19kLmV4ZSAmZ3Q7IC4uXFBDXHB5dGhvbm50X3JjX2QuaAorPC9Db21tYW5kPgorICAgICAgPE91dHB1dHM+JChTb2x1dGlvbkRpcikuLlxQQ1xweXRob25udF9yY19kLmg7JShPdXRwdXRzKTwvT3V0cHV0cz4KKyAgICA8L0N1c3RvbUJ1aWxkU3RlcD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+CisgICAgICA8SW50cmluc2ljRnVuY3Rpb25zPmZhbHNlPC9JbnRyaW5zaWNGdW5jdGlvbnM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4lKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoU29sdXRpb25EaXIpbWFrZV92ZXJzaW9uaW5mb19kLmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWQwMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgICA8UG9zdEJ1aWxkRXZlbnQ+CisgICAgICA8Q29tbWFuZD5jZCAkKFNvbHV0aW9uRGlyKQorbWFrZV92ZXJzaW9uaW5mb19kLmV4ZSAmZ3Q7IC4uXFBDXHB5dGhvbl9udF9kLmgKKzwvQ29tbWFuZD4KKyAgICA8L1Bvc3RCdWlsZEV2ZW50PgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPEN1c3RvbUJ1aWxkU3RlcD4KKyAgICAgIDxNZXNzYWdlPkJ1aWxkIFBDL3B5dGhvbm50X3JjKF9kKS5oPC9NZXNzYWdlPgorICAgICAgPENvbW1hbmQ+Y2QgJChTb2x1dGlvbkRpcikKK21ha2VfdmVyc2lvbmluZm9fZC5leGUgJmd0OyAuLlxQQ1xweXRob25udF9yY19kLmgKKzwvQ29tbWFuZD4KKyAgICAgIDxPdXRwdXRzPiQoU29sdXRpb25EaXIpLi5cUENccHl0aG9ubnRfcmNfZC5oOyUoT3V0cHV0cyk8L091dHB1dHM+CisgICAgPC9DdXN0b21CdWlsZFN0ZXA+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz5mYWxzZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoU29sdXRpb25EaXIpbWFrZV92ZXJzaW9uaW5mb19kLmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICAgIDxQb3N0QnVpbGRFdmVudD4KKyAgICAgIDxDb21tYW5kPmNkICQoU29sdXRpb25EaXIpCittYWtlX3ZlcnNpb25pbmZvX2QuZXhlICZndDsgLi5cUENccHl0aG9uX250X2QuaAorPC9Db21tYW5kPgorICAgIDwvUG9zdEJ1aWxkRXZlbnQ+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXG1ha2VfdmVyc2lvbmluZm8uYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9tYWtlX3ZlcnNpb25pbmZvLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQvbWFrZV92ZXJzaW9uaW5mby52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZjMDQzNAotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvbWFrZV92ZXJzaW9uaW5mby52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwxMyBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZTQxODA5NTQtYzNhNS00NzQ5LWI5YTQtMzFiODA0ZWU0ZmE4fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xtYWtlX3ZlcnNpb25pbmZvLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9wY2J1aWxkLnNsbiBiL1BDYnVpbGQvcGNidWlsZC5zbG4KaW5kZXggMWRlNGVhMS4uMzI3NzU3ZSAxMDA2NDQKLS0tIGEvUENidWlsZC9wY2J1aWxkLnNsbgorKysgYi9QQ2J1aWxkL3BjYnVpbGQuc2xuCkBAIC0xLDE0MSArMSw3NiBAQAotTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gU29sdXRpb24gRmlsZSwgRm9ybWF0IFZlcnNpb24gMTAuMDANCi0jIFZpc3VhbCBTdHVkaW8gMjAwOA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHl0aG9uIiwgInB5dGhvbi52Y3Byb2oiLCAie0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JCXtFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9ID0ge0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJtYWtlX3ZlcnNpb25pbmZvIiwgIm1ha2VfdmVyc2lvbmluZm8udmNwcm9qIiwgIntGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9Ig0KLUVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInB5dGhvbmNvcmUiLCAicHl0aG9uY29yZS52Y3Byb2oiLCAie0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtGMEUwNTQxRS1GMTdELTQzMEItOTdDNC05M0FERjBERDI4NEV9ID0ge0YwRTA1NDFFLUYxN0QtNDMwQi05N0M0LTkzQURGMEREMjg0RX0NCi0JCXs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9ID0gezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0NCi0JCXtDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9ID0ge0M3M0YwRUMxLTM1OEItNDE3Ny05NDBGLTA4NDZBQzhCMDRDRH0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCi1FbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJweXRob253IiwgInB5dGhvbncudmNwcm9qIiwgIntGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAidzl4cG9wZW4iLCAidzl4cG9wZW4udmNwcm9qIiwgIntFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfSA9IHs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9DQotCUVuZFByb2plY3RTZWN0aW9uDQotRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAibWFrZV9idWlsZGluZm8iLCAibWFrZV9idWlsZGluZm8udmNwcm9qIiwgIntDNzNGMEVDMS0zNThCLTQxNzctOTQwRi0wODQ2QUM4QjA0Q0R9Ig0KLUVuZFByb2plY3QNCitNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyBTb2x1dGlvbiBGaWxlLCBGb3JtYXQgVmVyc2lvbiAxMS4wMA0KKyMgVmlzdWFsIFN0dWRpbyAyMDEwDQogUHJvamVjdCgiezIxNTBFMzMzLThGREMtNDJBMy05NDc0LTFBMzk1NkQ0NkRFOH0iKSA9ICJTb2x1dGlvbiBJdGVtcyIsICJTb2x1dGlvbiBJdGVtcyIsICJ7NTUzRUMzM0UtOTgxNi00OTk2LUE2NjAtNUQ2MTg2QTBCMEIzfSINCiAJUHJvamVjdFNlY3Rpb24oU29sdXRpb25JdGVtcykgPSBwcmVQcm9qZWN0DQogCQkuLlxNb2R1bGVzXGdldGJ1aWxkaW5mby5jID0gLi5cTW9kdWxlc1xnZXRidWlsZGluZm8uYw0KIAkJcmVhZG1lLnR4dCA9IHJlYWRtZS50eHQNCiAJRW5kUHJvamVjdFNlY3Rpb24NCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ3aW5zb3VuZCIsICJ3aW5zb3VuZC52Y3Byb2oiLCAiezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInB5dGhvbiIsICJweXRob24udmN4cHJvaiIsICJ7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfY3R5cGVzIiwgIl9jdHlwZXMudmNwcm9qIiwgInswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJtYWtlX3ZlcnNpb25pbmZvIiwgIm1ha2VfdmVyc2lvbmluZm8udmN4cHJvaiIsICJ7RjBFMDU0MUUtRjE3RC00MzBCLTk3QzQtOTNBREYwREQyODRFfSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfY3R5cGVzX3Rlc3QiLCAiX2N0eXBlc190ZXN0LnZjcHJvaiIsICJ7OUVDNzE5MEEtMjQ5Ri00MTgwLUE5MDAtNTQ4RkRDRjMwNTVGfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHl0aG9uY29yZSIsICJweXRob25jb3JlLnZjeHByb2oiLCAie0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0iDQogRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX2VsZW1lbnR0cmVlIiwgIl9lbGVtZW50dHJlZS52Y3Byb2oiLCAiezE3RTFFMDQ5LUMzMDktNEQ3OS04NDNGLUFFNDgzQzI2NEFFQX0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInB5dGhvbnciLCAicHl0aG9udy52Y3hwcm9qIiwgIntGNDIyOUNDMy04NzNDLTQ5QUUtOTcyOS1ERDMwOEVENENENEF9Ig0KIEVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9tc2kiLCAiX21zaS52Y3Byb2oiLCAiezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInc5eHBvcGVuIiwgInc5eHBvcGVuLnZjeHByb2oiLCAie0U5RTBBMUY2LTAwMDktNEU4Qy1COEY4LTFCOEY1RDQ5QTA1OH0iDQogRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3NvY2tldCIsICJfc29ja2V0LnZjcHJvaiIsICJ7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAibWFrZV9idWlsZGluZm8iLCAibWFrZV9idWlsZGluZm8udmN4cHJvaiIsICJ7QzczRjBFQzEtMzU4Qi00MTc3LTk0MEYtMDg0NkFDOEIwNENEfSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfc3FsaXRlMyIsICJfc3FsaXRlMy52Y3Byb2oiLCAiezEzQ0VDQjk3LTQxMTktNDMxNi05RDQyLTg1MzQwMTlBNUE0NH0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JCXtBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9ID0ge0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIndpbnNvdW5kIiwgIndpbnNvdW5kLnZjeHByb2oiLCAiezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0iDQogRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3NzbCIsICJfc3NsLnZjcHJvaiIsICJ7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0gPSB7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fQ0KLQkJezg2OTM3RjUzLUMxODktNDBFRi04Q0U4LTg3NTlEOEU3RDQ4MH0gPSB7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfQ0KLQkJe0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0gPSB7RTVCMDRDQzAtRUI0Qy00MkFCLUI0REMtMThFRjk1Rjg2NEIwfQ0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX2RlY2ltYWwiLCAiX2RlY2ltYWwudmN4cHJvaiIsICJ7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE3fSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfdGVzdGNhcGkiLCAiX3Rlc3RjYXBpLnZjcHJvaiIsICJ7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX2N0eXBlcyIsICJfY3R5cGVzLnZjeHByb2oiLCAiezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0iDQogRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX3RraW50ZXIiLCAiX3RraW50ZXIudmNwcm9qIiwgIns0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfY3R5cGVzX3Rlc3QiLCAiX2N0eXBlc190ZXN0LnZjeHByb2oiLCAiezlFQzcxOTBBLTI0OUYtNDE4MC1BOTAwLTU0OEZEQ0YzMDU1Rn0iDQogRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiYnoyIiwgImJ6Mi52Y3Byb2oiLCAiezczRkNEMkJELUYxMzMtNDZCNy04RUMxLTE0NENEODJBNTlENX0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9lbGVtZW50dHJlZSIsICJfZWxlbWVudHRyZWUudmN4cHJvaiIsICJ7MTdFMUUwNDktQzMwOS00RDc5LTg0M0YtQUU0ODNDMjY0QUVBfSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJzZWxlY3QiLCAic2VsZWN0LnZjcHJvaiIsICJ7MThDQUUyOEMtQjQ1NC00NkMxLTg3QTAtNDkzRDkxRDk3RjAzfSINCi0JUHJvamVjdFNlY3Rpb24oUHJvamVjdERlcGVuZGVuY2llcykgPSBwb3N0UHJvamVjdA0KLQkJe0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0gPSB7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fQ0KLQlFbmRQcm9qZWN0U2VjdGlvbg0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX21zaSIsICJfbXNpLnZjeHByb2oiLCAiezMxRkZDNDc4LTdCNEEtNDNFOC05OTU0LThEMDNFMjE4N0U5Q30iDQogRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAidW5pY29kZWRhdGEiLCAidW5pY29kZWRhdGEudmNwcm9qIiwgIntFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfc29ja2V0IiwgIl9zb2NrZXQudmN4cHJvaiIsICJ7ODY5MzdGNTMtQzE4OS00MEVGLThDRTgtODc1OUQ4RTdENDgwfSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJweWV4cGF0IiwgInB5ZXhwYXQudmNwcm9qIiwgIntEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fSA9IHtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9DQotCUVuZFByb2plY3RTZWN0aW9uDQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfc3FsaXRlMyIsICJfc3FsaXRlMy52Y3hwcm9qIiwgInsxM0NFQ0I5Ny00MTE5LTQzMTYtOUQ0Mi04NTM0MDE5QTVBNDR9Ig0KIEVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImJkaXN0X3dpbmluc3QiLCAiYmRpc3Rfd2luaW5zdC52Y3Byb2oiLCAie0VCMUMxOUMxLTFGMTgtNDIxRS05NzM1LUNBRUU2OURDNkEzQ30iDQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfc3NsIiwgIl9zc2wudmN4cHJvaiIsICJ7QzZFMjBGODQtMzI0Ny00QUQ2LUIwNTEtQjA3MzI2OEY3M0JBfSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfaGFzaGxpYiIsICJfaGFzaGxpYi52Y3Byb2oiLCAiezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9ID0ge0IxMUQ3NTBGLUNEMUYtNEE5Ni04NUNFLUU2OUE1QzUyNTlGOX0NCi0JCXtFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9ID0ge0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH0NCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl90ZXN0Y2FwaSIsICJfdGVzdGNhcGkudmN4cHJvaiIsICJ7NjkwMUQ5MUMtNkU0OC00QkI3LTlGRUMtNzAwQzgxMzFERjFEfSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJzcWxpdGUzIiwgInNxbGl0ZTMudmNwcm9qIiwgIntBMUEyOTVFNS00NjNDLTQzN0YtODFDQS0xRjMyMzY3Njg1REF9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfSA9IHs2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9DQotCUVuZFByb2plY3RTZWN0aW9uDQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJfdGtpbnRlciIsICJfdGtpbnRlci52Y3hwcm9qIiwgIns0OTQ2RUNBQy0yRTY5LTRCRjgtQTkwQS1GNTEzNkY1MDk0REZ9Ig0KIEVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9tdWx0aXByb2Nlc3NpbmciLCAiX211bHRpcHJvY2Vzc2luZy52Y3Byb2oiLCAiezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0iDQotCVByb2plY3RTZWN0aW9uKFByb2plY3REZXBlbmRlbmNpZXMpID0gcG9zdFByb2plY3QNCi0JCXtDRjdBQzNEMS1FMkRGLTQxRDItQkVBNi0xRTI1NTZDREVBMjZ9ID0ge0NGN0FDM0QxLUUyREYtNDFEMi1CRUE2LTFFMjU1NkNERUEyNn0NCi0JRW5kUHJvamVjdFNlY3Rpb24NCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9iejIiLCAiX2J6Mi52Y3hwcm9qIiwgIns3M0ZDRDJCRC1GMTMzLTQ2QjctOEVDMS0xNDRDRDgyQTU5RDV9Ig0KIEVuZFByb2plY3QNCi1Qcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInNzbCIsICJzc2wudmNwcm9qIiwgIntFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9Ig0KLQlQcm9qZWN0U2VjdGlvbihQcm9qZWN0RGVwZW5kZW5jaWVzKSA9IHBvc3RQcm9qZWN0DQotCQl7QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fSA9IHtCMTFENzUwRi1DRDFGLTRBOTYtODVDRS1FNjlBNUM1MjU5Rjl9DQotCUVuZFByb2plY3RTZWN0aW9uDQorUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJzZWxlY3QiLCAic2VsZWN0LnZjeHByb2oiLCAiezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30iDQogRW5kUHJvamVjdA0KLVByb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAia2lsbF9weXRob24iLCAia2lsbF9weXRob24udmNwcm9qIiwgIns2REUxMDc0NC1FMzk2LTQwQTUtQjRFMi0xQjY5QUE3QzhEMzF9Ig0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX2x6bWEiLCAiX2x6bWEudmN4cHJvaiIsICJ7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJweXRob24zZGxsIiwgInB5dGhvbjNkbGwudmNwcm9qIiwgIns4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9Ig0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAidW5pY29kZWRhdGEiLCAidW5pY29kZWRhdGEudmN4cHJvaiIsICJ7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfSINCiBFbmRQcm9qZWN0DQotUHJvamVjdCgiezhCQzlDRUI4LThCNEEtMTFEMC04RDExLTAwQTBDOTFCQzk0Mn0iKSA9ICJ4eGxpbWl0ZWQiLCAieHhsaW1pdGVkLnZjcHJvaiIsICJ7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfSINCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gInB5ZXhwYXQiLCAicHlleHBhdC52Y3hwcm9qIiwgIntEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9Ig0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImJkaXN0X3dpbmluc3QiLCAiYmRpc3Rfd2luaW5zdC52Y3hwcm9qIiwgIntFQjFDMTlDMS0xRjE4LTQyMUUtOTczNS1DQUVFNjlEQzZBM0N9Ig0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl9oYXNobGliIiwgIl9oYXNobGliLnZjeHByb2oiLCAiezQ0N0YwNUE4LUY1ODEtNENBQy1BNDY2LTVBQzc5MzZFMjA3RX0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAic3FsaXRlMyIsICJzcWxpdGUzLnZjeHByb2oiLCAie0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAiX211bHRpcHJvY2Vzc2luZyIsICJfbXVsdGlwcm9jZXNzaW5nLnZjeHByb2oiLCAiezlFNDhCMzAwLTM3RDEtMTFERC04QzQxLTAwNTA1NkMwMDAwOH0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAic3NsIiwgInNzbC52Y3hwcm9qIiwgIntFNUIwNENDMC1FQjRDLTQyQUItQjREQy0xOEVGOTVGODY0QjB9Ig0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gImtpbGxfcHl0aG9uIiwgImtpbGxfcHl0aG9uLnZjeHByb2oiLCAiezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHl0aG9uM2RsbCIsICJweXRob24zZGxsLnZjeHByb2oiLCAiezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAieHhsaW1pdGVkIiwgInh4bGltaXRlZC52Y3hwcm9qIiwgIntGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9Ig0KK0VuZFByb2plY3QNCitQcm9qZWN0KCJ7OEJDOUNFQjgtOEI0QS0xMUQwLThEMTEtMDBBMEM5MUJDOTQyfSIpID0gIl90ZXN0YnVmZmVyIiwgIl90ZXN0YnVmZmVyLnZjeHByb2oiLCAie0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHlsYXVuY2hlciIsICJweWxhdW5jaGVyLnZjeHByb2oiLCAiezdCMjcyN0I1LTVBM0YtNDBFRS1BODY2LTQzQTEzQ0QzMTQ0Nn0iDQorRW5kUHJvamVjdA0KK1Byb2plY3QoIns4QkM5Q0VCOC04QjRBLTExRDAtOEQxMS0wMEEwQzkxQkM5NDJ9IikgPSAicHl3bGF1bmNoZXIiLCAicHl3bGF1bmNoZXIudmN4cHJvaiIsICJ7MUQ0QjE4RDMtN0MxMi00RUNCLTkxNzktODUzMUZGODc2Q0U2fSINCiBFbmRQcm9qZWN0DQogR2xvYmFsDQogCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Db25maWd1cmF0aW9uUGxhdGZvcm1zKSA9IHByZVNvbHV0aW9uDQpAQCAtMjYxLDYgKzE5NiwyMiBAQAogCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQogCQl7MjhCNUQ3NzctRERGMi00QjZCLUIzNEYtMzFEOTM4ODEzODU2fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KIAkJezI4QjVENzc3LURERjItNEI2Qi1CMzRGLTMxRDkzODgxMzg1Nn0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE3fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE3fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7MEU5NzkxREItNTkzQS00NjVGLTk4QkMtNjgxMDExMzExNjE3fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdJbnN0cnVtZW50fHg2NC5CdWlsZC4wID0gUEdJbnN0cnVtZW50fHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxN30uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCisJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTd9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KIAkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCiAJCXswRTk3OTFEQi01OTNBLTQ2NUYtOThCQy02ODEwMTEzMTE2MTh9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KIAkJezBFOTc5MURCLTU5M0EtNDY1Ri05OEJDLTY4MTAxMTMxMTYxOH0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KQEAgLTQzNyw2ICszODgsMjIgQEAKIAkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KIAkJezE4Q0FFMjhDLUI0NTQtNDZDMS04N0EwLTQ5M0Q5MUQ5N0YwM30uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCiAJCXsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJe0Y5RDcxNzgwLUYzOTMtMTFFMC1CRTUwLTA4MDAyMDBDOUE2Nn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0Y5RDcxNzgwLUYzOTMtMTFFMC1CRTUwLTA4MDAyMDBDOUE2Nn0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJe0Y5RDcxNzgwLUYzOTMtMTFFMC1CRTUwLTA4MDAyMDBDOUE2Nn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtGOUQ3MTc4MC1GMzkzLTExRTAtQkU1MC0wODAwMjAwQzlBNjZ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7RjlENzE3ODAtRjM5My0xMUUwLUJFNTAtMDgwMDIwMEM5QTY2fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCiAJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQogCQl7RUNDN0NFQUMtQTVFNS00NThFLUJCOUUtMjQxM0NDODQ3ODgxfS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCiAJCXtFQ0M3Q0VBQy1BNUU1LTQ1OEUtQkI5RS0yNDEzQ0M4NDc4ODF9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCkBAIC01NTgsMzYgKzUyNSw4MSBAQAogCQl7NkRFMTA3NDQtRTM5Ni00MEE1LUI0RTItMUI2OUFBN0M4RDMxfS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KIAkJezZERTEwNzQ0LUUzOTYtNDBBNS1CNEUyLTFCNjlBQTdDOEQzMX0uUmVsZWFzZXx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQogCQl7ODg1RDQ4OTgtRDA4RC00MDkxLTlDNDAtQzcwMENGRTNGQzVBfS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCi0JCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7ODg1RDQ4OTgtRDA4RC00MDkxLTlDNDAtQzcwMENGRTNGQzVBfS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8eDY0DQorCQl7ODg1RDQ4OTgtRDA4RC00MDkxLTlDNDAtQzcwMENGRTNGQzVBfS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IFBHVXBkYXRlfHg2NA0KIAkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KIAkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCi0JCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQorCQl7ODg1RDQ4OTgtRDA4RC00MDkxLTlDNDAtQzcwMENGRTNGQzVBfS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCiAJCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQogCQl7ODg1RDQ4OTgtRDA4RC00MDkxLTlDNDAtQzcwMENGRTNGQzVBfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCi0JCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfHg2NA0KLQkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfHg2NA0KKwkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXx4NjQNCiAJCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KIAkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KIAkJezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCiAJCXs4ODVENDg5OC1EMDhELTQwOTEtOUM0MC1DNzAwQ0ZFM0ZDNUF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KLQkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCi0JCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KLQkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KLQkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCi0JCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCi0JCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCi0JCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFJlbGVhc2V8eDY0DQotCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQotCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KKwkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KKwkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8eDY0DQorCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR1VwZGF0ZXxXaW4zMi5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uUEdVcGRhdGV8V2luMzIuQnVpbGQuMCA9IFBHVXBkYXRlfFdpbjMyDQogCQl7Rjc0OUI4MjItQjQ4OS00Q0E1LUEzQUQtQ0UwNzhGNUYzMzhBfS5QR1VwZGF0ZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCiAJCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCiAJCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlJlbGVhc2V8V2luMzIuQWN0aXZlQ2ZnID0gUmVsZWFzZXxXaW4zMg0KIAkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uUmVsZWFzZXxXaW4zMi5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KIAkJe0Y3NDlCODIyLUI0ODktNENBNS1BM0FELUNFMDc4RjVGMzM4QX0uUmVsZWFzZXx4NjQuQWN0aXZlQ2ZnID0gUmVsZWFzZXx4NjQNCiAJCXtGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfHg2NA0KKwkJe0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0uRGVidWd8V2luMzIuQWN0aXZlQ2ZnID0gRGVidWd8V2luMzINCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LkRlYnVnfFdpbjMyLkJ1aWxkLjAgPSBEZWJ1Z3xXaW4zMg0KKwkJe0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0uRGVidWd8eDY0LkFjdGl2ZUNmZyA9IERlYnVnfHg2NA0KKwkJe0EyNjk3QkQzLTI4QzEtNEFFQy05MTA2LThCNzQ4NjM5RkQxNn0uRGVidWd8eDY0LkJ1aWxkLjAgPSBEZWJ1Z3x4NjQNCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlBHSW5zdHJ1bWVudHxXaW4zMi5CdWlsZC4wID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5QR0luc3RydW1lbnR8eDY0LkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHx4NjQNCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXx4NjQNCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlBHVXBkYXRlfHg2NC5CdWlsZC4wID0gUEdVcGRhdGV8eDY0DQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXtBMjY5N0JEMy0yOEMxLTRBRUMtOTEwNi04Qjc0ODYzOUZEMTZ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8eDY0DQorCQl7QTI2OTdCRDMtMjhDMS00QUVDLTkxMDYtOEI3NDg2MzlGRDE2fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXx4NjQNCisJCXs3QjI3MjdCNS01QTNGLTQwRUUtQTg2Ni00M0ExM0NEMzE0NDZ9LkRlYnVnfFdpbjMyLkFjdGl2ZUNmZyA9IERlYnVnfFdpbjMyDQorCQl7N0IyNzI3QjUtNUEzRi00MEVFLUE4NjYtNDNBMTNDRDMxNDQ2fS5EZWJ1Z3xXaW4zMi5CdWlsZC4wID0gRGVidWd8V2luMzINCisJCXs3QjI3MjdCNS01QTNGLTQwRUUtQTg2Ni00M0ExM0NEMzE0NDZ9LkRlYnVnfHg2NC5BY3RpdmVDZmcgPSBEZWJ1Z3x4NjQNCisJCXs3QjI3MjdCNS01QTNGLTQwRUUtQTg2Ni00M0ExM0NEMzE0NDZ9LkRlYnVnfHg2NC5CdWlsZC4wID0gRGVidWd8eDY0DQorCQl7N0IyNzI3QjUtNUEzRi00MEVFLUE4NjYtNDNBMTNDRDMxNDQ2fS5QR0luc3RydW1lbnR8V2luMzIuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7N0IyNzI3QjUtNUEzRi00MEVFLUE4NjYtNDNBMTNDRDMxNDQ2fS5QR0luc3RydW1lbnR8V2luMzIuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezdCMjcyN0I1LTVBM0YtNDBFRS1BODY2LTQzQTEzQ0QzMTQ0Nn0uUEdJbnN0cnVtZW50fHg2NC5BY3RpdmVDZmcgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXs3QjI3MjdCNS01QTNGLTQwRUUtQTg2Ni00M0ExM0NEMzE0NDZ9LlBHSW5zdHJ1bWVudHx4NjQuQnVpbGQuMCA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezdCMjcyN0I1LTVBM0YtNDBFRS1BODY2LTQzQTEzQ0QzMTQ0Nn0uUEdVcGRhdGV8V2luMzIuQWN0aXZlQ2ZnID0gUEdVcGRhdGV8V2luMzINCisJCXs3QjI3MjdCNS01QTNGLTQwRUUtQTg2Ni00M0ExM0NEMzE0NDZ9LlBHVXBkYXRlfFdpbjMyLkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezdCMjcyN0I1LTVBM0YtNDBFRS1BODY2LTQzQTEzQ0QzMTQ0Nn0uUEdVcGRhdGV8eDY0LkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7N0IyNzI3QjUtNUEzRi00MEVFLUE4NjYtNDNBMTNDRDMxNDQ2fS5SZWxlYXNlfFdpbjMyLkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXs3QjI3MjdCNS01QTNGLTQwRUUtQTg2Ni00M0ExM0NEMzE0NDZ9LlJlbGVhc2V8V2luMzIuQnVpbGQuMCA9IFJlbGVhc2V8V2luMzINCisJCXs3QjI3MjdCNS01QTNGLTQwRUUtQTg2Ni00M0ExM0NEMzE0NDZ9LlJlbGVhc2V8eDY0LkFjdGl2ZUNmZyA9IFJlbGVhc2V8V2luMzINCisJCXs3QjI3MjdCNS01QTNGLTQwRUUtQTg2Ni00M0ExM0NEMzE0NDZ9LlJlbGVhc2V8eDY0LkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7MUQ0QjE4RDMtN0MxMi00RUNCLTkxNzktODUzMUZGODc2Q0U2fS5EZWJ1Z3xXaW4zMi5BY3RpdmVDZmcgPSBEZWJ1Z3xXaW4zMg0KKwkJezFENEIxOEQzLTdDMTItNEVDQi05MTc5LTg1MzFGRjg3NkNFNn0uRGVidWd8V2luMzIuQnVpbGQuMCA9IERlYnVnfFdpbjMyDQorCQl7MUQ0QjE4RDMtN0MxMi00RUNCLTkxNzktODUzMUZGODc2Q0U2fS5EZWJ1Z3x4NjQuQWN0aXZlQ2ZnID0gRGVidWd8eDY0DQorCQl7MUQ0QjE4RDMtN0MxMi00RUNCLTkxNzktODUzMUZGODc2Q0U2fS5EZWJ1Z3x4NjQuQnVpbGQuMCA9IERlYnVnfHg2NA0KKwkJezFENEIxOEQzLTdDMTItNEVDQi05MTc5LTg1MzFGRjg3NkNFNn0uUEdJbnN0cnVtZW50fFdpbjMyLkFjdGl2ZUNmZyA9IFBHSW5zdHJ1bWVudHxXaW4zMg0KKwkJezFENEIxOEQzLTdDMTItNEVDQi05MTc5LTg1MzFGRjg3NkNFNn0uUEdJbnN0cnVtZW50fFdpbjMyLkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXsxRDRCMThEMy03QzEyLTRFQ0ItOTE3OS04NTMxRkY4NzZDRTZ9LlBHSW5zdHJ1bWVudHx4NjQuQWN0aXZlQ2ZnID0gUEdJbnN0cnVtZW50fFdpbjMyDQorCQl7MUQ0QjE4RDMtN0MxMi00RUNCLTkxNzktODUzMUZGODc2Q0U2fS5QR0luc3RydW1lbnR8eDY0LkJ1aWxkLjAgPSBQR0luc3RydW1lbnR8V2luMzINCisJCXsxRDRCMThEMy03QzEyLTRFQ0ItOTE3OS04NTMxRkY4NzZDRTZ9LlBHVXBkYXRlfFdpbjMyLkFjdGl2ZUNmZyA9IFBHVXBkYXRlfFdpbjMyDQorCQl7MUQ0QjE4RDMtN0MxMi00RUNCLTkxNzktODUzMUZGODc2Q0U2fS5QR1VwZGF0ZXxXaW4zMi5CdWlsZC4wID0gUEdVcGRhdGV8V2luMzINCisJCXsxRDRCMThEMy03QzEyLTRFQ0ItOTE3OS04NTMxRkY4NzZDRTZ9LlBHVXBkYXRlfHg2NC5BY3RpdmVDZmcgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezFENEIxOEQzLTdDMTItNEVDQi05MTc5LTg1MzFGRjg3NkNFNn0uUEdVcGRhdGV8eDY0LkJ1aWxkLjAgPSBQR1VwZGF0ZXxXaW4zMg0KKwkJezFENEIxOEQzLTdDMTItNEVDQi05MTc5LTg1MzFGRjg3NkNFNn0uUmVsZWFzZXxXaW4zMi5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7MUQ0QjE4RDMtN0MxMi00RUNCLTkxNzktODUzMUZGODc2Q0U2fS5SZWxlYXNlfFdpbjMyLkJ1aWxkLjAgPSBSZWxlYXNlfFdpbjMyDQorCQl7MUQ0QjE4RDMtN0MxMi00RUNCLTkxNzktODUzMUZGODc2Q0U2fS5SZWxlYXNlfHg2NC5BY3RpdmVDZmcgPSBSZWxlYXNlfFdpbjMyDQorCQl7MUQ0QjE4RDMtN0MxMi00RUNCLTkxNzktODUzMUZGODc2Q0U2fS5SZWxlYXNlfHg2NC5CdWlsZC4wID0gUmVsZWFzZXxXaW4zMg0KIAlFbmRHbG9iYWxTZWN0aW9uDQogCUdsb2JhbFNlY3Rpb24oU29sdXRpb25Qcm9wZXJ0aWVzKSA9IHByZVNvbHV0aW9uDQogCQlIaWRlU29sdXRpb25Ob2RlID0gRkFMU0UNCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3BnaW5zdHJ1bWVudC5wcm9wcyBiL1BDYnVpbGQvcGdpbnN0cnVtZW50LnByb3BzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkYTI3NDIKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3BnaW5zdHJ1bWVudC5wcm9wcwpAQCAtMCwwICsxLDM4IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIj4KKyAgICA8T3V0RGlyUEdJPiQoU29sdXRpb25EaXIpJChQbGF0Zm9ybSktcGdpXDwvT3V0RGlyUEdJPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8T3V0RGlyPiQoT3V0RGlyUEdJKVw8L091dERpcj4KKyAgICA8SW50RGlyPiQoU29sdXRpb25EaXIpJChQbGF0Zm9ybU5hbWUpLXRlbXAtcGdpXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+T25seUV4cGxpY2l0SW5saW5lPC9JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4KKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+ZmFsc2U8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxGYXZvclNpemVPclNwZWVkPlNpemU8L0Zhdm9yU2l6ZU9yU3BlZWQ+CisgICAgICA8T21pdEZyYW1lUG9pbnRlcnM+dHJ1ZTwvT21pdEZyYW1lUG9pbnRlcnM+CisgICAgICA8RW5hYmxlRmliZXJTYWZlT3B0aW1pemF0aW9ucz5mYWxzZTwvRW5hYmxlRmliZXJTYWZlT3B0aW1pemF0aW9ucz4KKyAgICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KKyAgICAgIDxFeGNlcHRpb25IYW5kbGluZz4KKyAgICAgIDwvRXhjZXB0aW9uSGFuZGxpbmc+CisgICAgICA8QnVmZmVyU2VjdXJpdHlDaGVjaz5mYWxzZTwvQnVmZmVyU2VjdXJpdHlDaGVjaz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgorICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KKyAgICAgIDxMaW5rVGltZUNvZGVHZW5lcmF0aW9uPlBHSW5zdHJ1bWVudDwvTGlua1RpbWVDb2RlR2VuZXJhdGlvbj4KKyAgICAgIDxQcm9maWxlR3VpZGVkRGF0YWJhc2U+JChTb2x1dGlvbkRpcikkKFBsYXRmb3JtKS1wZ2lcJChUYXJnZXROYW1lKS5wZ2Q8L1Byb2ZpbGVHdWlkZWREYXRhYmFzZT4KKyAgICAgIDxJbXBvcnRMaWJyYXJ5PiQoT3V0RGlyUEdJKVwkKFRhcmdldE5hbWUpLmxpYjwvSW1wb3J0TGlicmFyeT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJPdXREaXJQR0kiPgorICAgICAgPFZhbHVlPiQoT3V0RGlyUEdJKTwvVmFsdWU+CisgICAgPC9CdWlsZE1hY3JvPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3BndXBkYXRlLnByb3BzIGIvUENidWlsZC9wZ3VwZGF0ZS5wcm9wcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MGVlOTBiCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9wZ3VwZGF0ZS5wcm9wcwpAQCAtMCwwICsxLDE2IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChTb2x1dGlvbkRpcilccGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKSQoUGxhdGZvcm1OYW1lKS1wZ29cPC9PdXREaXI+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbE1hbmlmZXN0RGVwZW5kZW5jaWVzPiUoQWRkaXRpb25hbE1hbmlmZXN0RGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbE1hbmlmZXN0RGVwZW5kZW5jaWVzPgorICAgICAgPExpbmtUaW1lQ29kZUdlbmVyYXRpb24+UEdVcGRhdGU8L0xpbmtUaW1lQ29kZUdlbmVyYXRpb24+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9weWQucHJvcHMgYi9QQ2J1aWxkL3B5ZC5wcm9wcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Njk5NjZlCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9weWQucHJvcHMKQEAgLTAsMCArMSwyNSBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8R2VuZXJhdGVNYW5pZmVzdD5mYWxzZTwvR2VuZXJhdGVNYW5pZmVzdD4KKyAgICA8RW1iZWRNYW5pZmVzdD5mYWxzZTwvRW1iZWRNYW5pZmVzdD4KKyAgICA8VGFyZ2V0RXh0Pi5weWQ8L1RhcmdldEV4dD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlB5X0JVSUxEX0NPUkVfTU9EVUxFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICA8L0xpbms+CisgICAgPFBvc3RCdWlsZEV2ZW50PgorICAgICAgPENvbW1hbmQ+CisgICAgICA8L0NvbW1hbmQ+CisgICAgPC9Qb3N0QnVpbGRFdmVudD4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvcHlkX2QucHJvcHMgYi9QQ2J1aWxkL3B5ZF9kLnByb3BzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIwMjMyODgKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3B5ZF9kLnByb3BzCkBAIC0wLDAgKzEsMzEgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+CisgICAgPEdlbmVyYXRlTWFuaWZlc3Q+ZmFsc2U8L0dlbmVyYXRlTWFuaWZlc3Q+CisgICAgPEVtYmVkTWFuaWZlc3Q+ZmFsc2U8L0VtYmVkTWFuaWZlc3Q+CisgICAgPFRhcmdldEV4dD4ucHlkPC9UYXJnZXRFeHQ+CisgICAgPFRhcmdldE5hbWU+JChQcm9qZWN0TmFtZSlfZDwvVGFyZ2V0TmFtZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPkRlZmF1bHQ8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz5mYWxzZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlB5X0JVSUxEX0NPUkVfTU9EVUxFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rIC8+CisgICAgPFBvc3RCdWlsZEV2ZW50PgorICAgICAgPENvbW1hbmQ+CisgICAgICA8L0NvbW1hbmQ+CisgICAgPC9Qb3N0QnVpbGRFdmVudD4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwIC8+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9weWV4cGF0LnZjeHByb2ogYi9QQ2J1aWxkL3B5ZXhwYXQudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NzRmZDNkCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9weWV4cGF0LnZjeHByb2oKQEAgLTAsMCArMSwyMzcgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPntEMDZCNjQyNi00NzYyLTQ0Q0MtOEJBRC1ENzkwNTI1MDdGMkZ9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5weWV4cGF0PC9Sb290TmFtZXNwYWNlPgorICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi5cLi5cTW9kdWxlc1xleHBhdDslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlBZRVhQQVRfRVhQT1JUUztIQVZFX0VYUEFUX0g7WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+LlwuLlxNb2R1bGVzXGV4cGF0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+UFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+LlwuLlxNb2R1bGVzXGV4cGF0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+UFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi5cLi5cTW9kdWxlc1xleHBhdDslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlBZRVhQQVRfRVhQT1JUUztIQVZFX0VYUEFUX0g7WE1MX05TO1hNTF9EVEQ7QllURU9SREVSPTEyMzQ7WE1MX0NPTlRFWFRfQllURVM9MTAyNDtYTUxfU1RBVElDO0hBVkVfTUVNTU9WRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+LlwuLlxNb2R1bGVzXGV4cGF0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+UFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+LlwuLlxNb2R1bGVzXGV4cGF0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+UFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+LlwuLlxNb2R1bGVzXGV4cGF0OyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+UFlFWFBBVF9FWFBPUlRTO0hBVkVfRVhQQVRfSDtYTUxfTlM7WE1MX0RURDtCWVRFT1JERVI9MTIzNDtYTUxfQ09OVEVYVF9CWVRFUz0xMDI0O1hNTF9TVEFUSUM7SEFWRV9NRU1NT1ZFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uXC4uXE1vZHVsZXNcZXhwYXQ7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5QWUVYUEFUX0VYUE9SVFM7SEFWRV9FWFBBVF9IO1hNTF9OUztYTUxfRFREO0JZVEVPUkRFUj0xMjM0O1hNTF9DT05URVhUX0JZVEVTPTEwMjQ7WE1MX1NUQVRJQztIQVZFX01FTU1PVkU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suaCIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHB5ZXhwYXQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRceG1scGFyc2UuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRceG1scm9sZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvcHlleHBhdC52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL3B5ZXhwYXQudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFiZjM2MmYKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3B5ZXhwYXQudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsMzMgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2RkYWU3N2E2LTdjYTAtNGExYi1iNzFjLWRlZWE1ZjQwMjVkZX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezVhZjlkNDBjLWZjNDYtNDY0MC1hZDg0LTNkMWRkMzRhNzFkN308L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx4bWxyb2xlLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZXhwYXRceG1sdG9rLmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHB5ZXhwYXQuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx4bWxwYXJzZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGV4cGF0XHhtbHJvbGUuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xleHBhdFx4bWx0b2suYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5bGF1bmNoZXIudmN4cHJvaiBiL1BDYnVpbGQvcHlsYXVuY2hlci52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxZWNkZjAKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3B5bGF1bmNoZXIudmN4cHJvagpAQCAtMCwwICsxLDMxMSBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+ezdCMjcyN0I1LTVBM0YtNDBFRS1BODY2LTQzQTEzQ0QzMTQ0Nn08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPnB5bGF1bmNoZXI8L1Jvb3ROYW1lc3BhY2U+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz50cnVlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZURlYnVnTGlicmFyaWVzPmZhbHNlPC9Vc2VEZWJ1Z0xpYnJhcmllcz4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlRGVidWdMaWJyYXJpZXM+ZmFsc2U8L1VzZURlYnVnTGlicmFyaWVzPgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0iZGVidWcucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0iZGVidWcucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxUYXJnZXROYW1lPnB5X2Q8L1RhcmdldE5hbWU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8VGFyZ2V0TmFtZT5weV9kPC9UYXJnZXROYW1lPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxUYXJnZXROYW1lPnB5PC9UYXJnZXROYW1lPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8VGFyZ2V0TmFtZT5weTwvVGFyZ2V0TmFtZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPgorICAgIDxUYXJnZXROYW1lPnB5PC9UYXJnZXROYW1lPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8VGFyZ2V0TmFtZT5weTwvVGFyZ2V0TmFtZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxUYXJnZXROYW1lPnB5PC9UYXJnZXROYW1lPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxUYXJnZXROYW1lPnB5PC9UYXJnZXROYW1lPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPnZlcnNpb24ubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8SWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz5mYWxzZTwvSWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpJChUYXJnZXROYW1lKSQoVGFyZ2V0RXh0KTwvT3V0cHV0RmlsZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPnZlcnNpb24ubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8SWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz5mYWxzZTwvSWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpJChUYXJnZXROYW1lKSQoVGFyZ2V0RXh0KTwvT3V0cHV0RmlsZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTtOREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgorICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+CisgICAgICA8SWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz5mYWxzZTwvSWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPnZlcnNpb24ubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0NPTlNPTEU7TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KKyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgorICAgICAgPElnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+ZmFsc2U8L0lnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz52ZXJzaW9uLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTtOREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgorICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+CisgICAgICA8SWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz5mYWxzZTwvSWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPnZlcnNpb24ubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0NPTlNPTEU7TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KKyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgorICAgICAgPElnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+ZmFsc2U8L0lnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz52ZXJzaW9uLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTtOREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgorICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+CisgICAgICA8SWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz5mYWxzZTwvSWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPnZlcnNpb24ubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8SW50cmluc2ljRnVuY3Rpb25zPnRydWU8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTtOREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8RW5hYmxlQ09NREFURm9sZGluZz50cnVlPC9FbmFibGVDT01EQVRGb2xkaW5nPgorICAgICAgPE9wdGltaXplUmVmZXJlbmNlcz50cnVlPC9PcHRpbWl6ZVJlZmVyZW5jZXM+CisgICAgICA8SWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz5mYWxzZTwvSWdub3JlQWxsRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPnZlcnNpb24ubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXGxhdW5jaGVyLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXFBDXGxhdW5jaGVyLmljbyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xweWxhdW5jaGVyLnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJtYWtlX3ZlcnNpb25pbmZvLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2YwZTA1NDFlLWYxN2QtNDMwYi05N2M0LTkzYWRmMGRkMjg0ZX08L1Byb2plY3Q+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5bGF1bmNoZXIudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9weWxhdW5jaGVyLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGIyM2QyCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9weWxhdW5jaGVyLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDMyIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y2M7Y3h4O2RlZjtvZGw7aWRsO2hwajtiYXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezkzOTk1MzgwLTg5QkQtNGIwNC04OEVCLTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgICA8RXh0ZW5zaW9ucz5oO2hwcDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4dGVuc2lvbnM+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJSZXNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NjdEQTZBQjYtRjgwMC00YzA4LThCN0EtODNCQjEyMUFBRDAxfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICAgIDxFeHRlbnNpb25zPnJjO2ljbztjdXI7Ym1wO2RsZztyYzI7cmN0O2JpbjtyZ3M7Z2lmO2pwZztqcGVnO2pwZTtyZXN4O3RpZmY7dGlmO3BuZzt3YXY7bWZjcmliYm9uLW1zPC9FeHRlbnNpb25zPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXGxhdW5jaGVyLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cUENcbGF1bmNoZXIuaWNvIj4KKyAgICAgIDxGaWx0ZXI+UmVzb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L05vbmU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cUENccHlsYXVuY2hlci5yYyI+CisgICAgICA8RmlsdGVyPlJlc291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvcHlwcm9qZWN0LnByb3BzIGIvUENidWlsZC9weXByb2plY3QucHJvcHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGFmYmUzYwotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvcHlwcm9qZWN0LnByb3BzCkBAIC0wLDAgKzEsMTA1IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoUGxhdGZvcm0pJz09J1dpbjMyJyI+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxPdXREaXI+JChTb2x1dGlvbkRpcik8L091dERpcj4KKyAgICA8SW50RGlyPiQoU29sdXRpb25EaXIpJChQbGF0Zm9ybU5hbWUpLXRlbXAtJChDb25maWd1cmF0aW9uKVwkKFByb2plY3ROYW1lKVw8L0ludERpcj4KKyAgICA8TGlua0luY3JlbWVudGFsPmZhbHNlPC9MaW5rSW5jcmVtZW50YWw+CisgIDwvUHJvcGVydHlHcm91cD4gIAorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKFBsYXRmb3JtKSc9PSd4NjQnIj4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPF9Qcm9wZXJ0eVNoZWV0RGlzcGxheU5hbWU+YW1kNjQ8L19Qcm9wZXJ0eVNoZWV0RGlzcGxheU5hbWU+CisgICAgPE91dERpcj4kKFNvbHV0aW9uRGlyKWFtZDY0XDwvT3V0RGlyPgorICAgIDxJbnREaXI+JChTb2x1dGlvbkRpcikkKFBsYXRmb3JtTmFtZSktdGVtcC0kKENvbmZpZ3VyYXRpb24pXCQoUHJvamVjdE5hbWUpXDwvSW50RGlyPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIj4KKyAgICA8UHlEbGxOYW1lPnB5dGhvbjMzJChQeURlYnVnRXh0KTwvUHlEbGxOYW1lPgorICAgIDxQeXRob25FeGU+JChPdXREaXIpcHl0aG9uJChQeURlYnVnRXh0KS5leGU8L1B5dGhvbkV4ZT4KKyAgICA8S2lsbFB5dGhvbkV4ZT4kKE91dERpcilraWxsX3B5dGhvbiQoUHlEZWJ1Z0V4dCkuZXhlPC9LaWxsUHl0aG9uRXhlPgorICAgIDxleHRlcm5hbHNEaXI+Li5cLi48L2V4dGVybmFsc0Rpcj4KKyAgICA8c3FsaXRlM0Rpcj4kKGV4dGVybmFsc0Rpcilcc3FsaXRlLTMuNy4xMjwvc3FsaXRlM0Rpcj4KKyAgICA8YnoyRGlyPiQoZXh0ZXJuYWxzRGlyKVxiemlwMi0xLjAuNjwvYnoyRGlyPgorICAgIDxsem1hRGlyPiQoZXh0ZXJuYWxzRGlyKVx4ei01LjAuMzwvbHptYURpcj4KKyAgICA8b3BlbnNzbERpcj4kKGV4dGVybmFsc0Rpcilcb3BlbnNzbC0xLjAuMWM8L29wZW5zc2xEaXI+CisgICAgPHRjbHRrRGlyPiQoZXh0ZXJuYWxzRGlyKVx0Y2x0azwvdGNsdGtEaXI+CisgICAgPHRjbHRrNjREaXI+JChleHRlcm5hbHNEaXIpXHRjbHRrNjQ8L3RjbHRrNjREaXI+CisgICAgPHRjbHRrTGliPiQodGNsdGtEaXIpXGxpYlx0Y2w4NS5saWI7JCh0Y2x0a0RpcilcbGliXHRrODUubGliPC90Y2x0a0xpYj4KKyAgICA8dGNsdGtMaWJEZWJ1Zz4kKHRjbHRrRGlyKVxsaWJcdGNsODVnLmxpYjskKHRjbHRrRGlyKVxsaWJcdGs4NWcubGliPC90Y2x0a0xpYkRlYnVnPgorICAgIDx0Y2x0azY0TGliPiQodGNsdGs2NERpcilcbGliXHRjbDg1LmxpYjskKHRjbHRrNjREaXIpXGxpYlx0azg1LmxpYjwvdGNsdGs2NExpYj4KKyAgICA8dGNsdGs2NExpYkRlYnVnPiQodGNsdGs2NERpcilcbGliXHRjbDg1Zy5saWI7JCh0Y2x0azY0RGlyKVxsaWJcdGs4NWcubGliPC90Y2x0azY0TGliRGVidWc+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxJbmNsdWRlOyAuLlxQQzslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9XSU4zMjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPEV4Y2VwdGlvbkhhbmRsaW5nPgorICAgICAgPC9FeGNlcHRpb25IYW5kbGluZz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8RGVidWdJbmZvcm1hdGlvbkZvcm1hdD5Qcm9ncmFtRGF0YWJhc2U8L0RlYnVnSW5mb3JtYXRpb25Gb3JtYXQ+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsTGlicmFyeURpcmVjdG9yaWVzPiQoT3V0RGlyKTslKEFkZGl0aW9uYWxMaWJyYXJ5RGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsTGlicmFyeURpcmVjdG9yaWVzPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8UHJvZ3JhbURhdGFiYXNlRmlsZT4kKE91dERpcikkKFRhcmdldE5hbWUpLnBkYjwvUHJvZ3JhbURhdGFiYXNlRmlsZT4KKyAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgorICAgICAgPFJhbmRvbWl6ZWRCYXNlQWRkcmVzcz5mYWxzZTwvUmFuZG9taXplZEJhc2VBZGRyZXNzPgorICAgICAgPERhdGFFeGVjdXRpb25QcmV2ZW50aW9uPgorICAgICAgPC9EYXRhRXhlY3V0aW9uUHJldmVudGlvbj4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxQQzsuLlxJbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJQeURsbE5hbWUiPgorICAgICAgPFZhbHVlPiQoUHlEbGxOYW1lKTwvVmFsdWU+CisgICAgPC9CdWlsZE1hY3JvPgorICAgIDxCdWlsZE1hY3JvIEluY2x1ZGU9IlB5dGhvbkV4ZSI+CisgICAgICA8VmFsdWU+JChQeXRob25FeGUpPC9WYWx1ZT4KKyAgICA8L0J1aWxkTWFjcm8+CisgICAgPEJ1aWxkTWFjcm8gSW5jbHVkZT0iS2lsbFB5dGhvbkV4ZSI+CisgICAgICA8VmFsdWU+JChLaWxsUHl0aG9uRXhlKTwvVmFsdWU+CisgICAgPC9CdWlsZE1hY3JvPgorICAgIDxCdWlsZE1hY3JvIEluY2x1ZGU9ImV4dGVybmFsc0RpciI+CisgICAgICA8VmFsdWU+JChleHRlcm5hbHNEaXIpPC9WYWx1ZT4KKyAgICA8L0J1aWxkTWFjcm8+CisgICAgPEJ1aWxkTWFjcm8gSW5jbHVkZT0ic3FsaXRlM0RpciI+CisgICAgICA8VmFsdWU+JChzcWxpdGUzRGlyKTwvVmFsdWU+CisgICAgPC9CdWlsZE1hY3JvPgorICAgIDxCdWlsZE1hY3JvIEluY2x1ZGU9ImJ6MkRpciI+CisgICAgICA8VmFsdWU+JChiejJEaXIpPC9WYWx1ZT4KKyAgICA8L0J1aWxkTWFjcm8+CisgICAgPEJ1aWxkTWFjcm8gSW5jbHVkZT0ibHptYURpciI+CisgICAgICA8VmFsdWU+JChsem1hRGlyKTwvVmFsdWU+CisgICAgPC9CdWlsZE1hY3JvPgorICAgIDxCdWlsZE1hY3JvIEluY2x1ZGU9Im9wZW5zc2xEaXIiPgorICAgICAgPFZhbHVlPiQob3BlbnNzbERpcik8L1ZhbHVlPgorICAgIDwvQnVpbGRNYWNybz4KKyAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJ0Y2x0a0RpciI+CisgICAgICA8VmFsdWU+JCh0Y2x0a0Rpcik8L1ZhbHVlPgorICAgIDwvQnVpbGRNYWNybz4KKyAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJ0Y2x0azY0RGlyIj4KKyAgICAgIDxWYWx1ZT4kKHRjbHRrNjREaXIpPC9WYWx1ZT4KKyAgICA8L0J1aWxkTWFjcm8+CisgICAgPEJ1aWxkTWFjcm8gSW5jbHVkZT0idGNsdGtMaWIiPgorICAgICAgPFZhbHVlPiQodGNsdGtMaWIpPC9WYWx1ZT4KKyAgICA8L0J1aWxkTWFjcm8+CisgICAgPEJ1aWxkTWFjcm8gSW5jbHVkZT0idGNsdGtMaWJEZWJ1ZyI+CisgICAgICA8VmFsdWU+JCh0Y2x0a0xpYkRlYnVnKTwvVmFsdWU+CisgICAgPC9CdWlsZE1hY3JvPgorICAgIDxCdWlsZE1hY3JvIEluY2x1ZGU9InRjbHRrNjRMaWIiPgorICAgICAgPFZhbHVlPiQodGNsdGs2NExpYik8L1ZhbHVlPgorICAgIDwvQnVpbGRNYWNybz4KKyAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJ0Y2x0azY0TGliRGVidWciPgorICAgICAgPFZhbHVlPiQodGNsdGs2NExpYkRlYnVnKTwvVmFsdWU+CisgICAgPC9CdWlsZE1hY3JvPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1BDYnVpbGQvcHl0aG9uLnZjeHByb2ogYi9QQ2J1aWxkL3B5dGhvbi52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQwYTlkZTAKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3B5dGhvbi52Y3hwcm9qCkBAIC0wLDAgKzEsMzY4IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57QjExRDc1MEYtQ0QxRi00QTk2LTg1Q0UtRTY5QTVDNTI1OUY5fTwvUHJvamVjdEd1aWQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICAgIDxDaGFyYWN0ZXJTZXQ+TXVsdGlCeXRlPC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9ImRlYnVnLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4lKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDk8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcilweXRob24uZXhlPC9PdXRwdXRGaWxlPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8U3RhY2tSZXNlcnZlU2l6ZT4yMDAwMDAwPC9TdGFja1Jlc2VydmVTaXplPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWQwMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxDb21waWxlQXM+RGVmYXVsdDwvQ29tcGlsZUFzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwOTwvQ3VsdHVyZT4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKXB5dGhvbi5leGU8L091dHB1dEZpbGU+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICAgIDxTdGFja1Jlc2VydmVTaXplPjIwMDAwMDA8L1N0YWNrUmVzZXJ2ZVNpemU+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZDAwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz5mYWxzZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnRExMPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KKyAgICAgIDxDb21waWxlQXM+RGVmYXVsdDwvQ29tcGlsZUFzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0RFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwOTwvQ3VsdHVyZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXEluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKXB5dGhvbl9kLmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgICAgPFN0YWNrUmVzZXJ2ZVNpemU+MjAwMDAwMDwvU3RhY2tSZXNlcnZlU2l6ZT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFkMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz5mYWxzZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERlYnVnRExMPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxCcm93c2VJbmZvcm1hdGlvbj50cnVlPC9Ccm93c2VJbmZvcm1hdGlvbj4KKyAgICAgIDxDb21waWxlQXM+RGVmYXVsdDwvQ29tcGlsZUFzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0RFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwOTwvQ3VsdHVyZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXEluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKXB5dGhvbl9kLmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgICAgPFN0YWNrUmVzZXJ2ZVNpemU+MjEwMDAwMDwvU3RhY2tSZXNlcnZlU2l6ZT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFkMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPENvbXBpbGVBcz5EZWZhdWx0PC9Db21waWxlQXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5OREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEN1bHR1cmU+MHgwNDA5PC9DdWx0dXJlPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpcHl0aG9uLmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgICAgPFN0YWNrUmVzZXJ2ZVNpemU+MjAwMDAwMDwvU3RhY2tSZXNlcnZlU2l6ZT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFkMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxJbXBvcnRMaWJyYXJ5PgorICAgICAgPC9JbXBvcnRMaWJyYXJ5PgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fQ09OU09MRTslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPENvbXBpbGVBcz5EZWZhdWx0PC9Db21waWxlQXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5OREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEN1bHR1cmU+MHgwNDA5PC9DdWx0dXJlPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpcHl0aG9uLmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgICAgPFN0YWNrUmVzZXJ2ZVNpemU+MjAwMDAwMDwvU3RhY2tSZXNlcnZlU2l6ZT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFkMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxJbXBvcnRMaWJyYXJ5PgorICAgICAgPC9JbXBvcnRMaWJyYXJ5PgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4lKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9DT05TT0xFOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDk8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcilweXRob24uZXhlPC9PdXRwdXRGaWxlPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8U3RhY2tSZXNlcnZlU2l6ZT4yMDAwMDAwPC9TdGFja1Jlc2VydmVTaXplPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWQwMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPEltcG9ydExpYnJhcnk+CisgICAgICA8L0ltcG9ydExpYnJhcnk+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0NPTlNPTEU7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxDb21waWxlQXM+RGVmYXVsdDwvQ29tcGlsZUFzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwOTwvQ3VsdHVyZT4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKXB5dGhvbi5leGU8L091dHB1dEZpbGU+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICAgIDxTdGFja1Jlc2VydmVTaXplPjIwMDAwMDA8L1N0YWNrUmVzZXJ2ZVNpemU+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZDAwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8SW1wb3J0TGlicmFyeT4KKyAgICAgIDwvSW1wb3J0TGlicmFyeT4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cUENccHljb24uaWNvIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVzb3VyY2VDb21waWxlIEluY2x1ZGU9Ii4uXFBDXHB5dGhvbl9leGUucmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xweXRob24uYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0idzl4cG9wZW4udmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57ZTllMGExZjYtMDAwOS00ZThjLWI4ZjgtMWI4ZjVkNDlhMDU4fTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5dGhvbi52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL3B5dGhvbi52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ5MDZhNAotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvcHl0aG9uLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDI2IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iUmVzb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezJkNjkwNzk1LWRlODMtNGEzMy04MjM1LTNjNWRhZmU0NWVmYX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezhiMDEwYTE5LTViMjktNDVmMS1hOGEwLWY2NzJlMmJiYjExYX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXFBDXHB5Y29uLmljbyI+CisgICAgICA8RmlsdGVyPlJlc291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9Ob25lPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVzb3VyY2VDb21waWxlIEluY2x1ZGU9Ii4uXFBDXHB5dGhvbl9leGUucmMiPgorICAgICAgPEZpbHRlcj5SZXNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNccHl0aG9uLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9weXRob24zZGxsLnZjeHByb2ogYi9QQ2J1aWxkL3B5dGhvbjNkbGwudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzQ1OWI1Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9weXRob24zZGxsLnZjeHByb2oKQEAgLTAsMCArMSwxODQgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+ezg4NUQ0ODk4LUQwOEQtNDA5MS05QzQwLUM3MDBDRkUzRkM1QX08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPnB5dGhvbjNkbGw8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPk1ha2VmaWxlPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+TWFrZWZpbGU8L0NvbmZpZ3VyYXRpb25UeXBlPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+TWFrZWZpbGU8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5NYWtlZmlsZTwvQ29uZmlndXJhdGlvblR5cGU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5NYWtlZmlsZTwvQ29uZmlndXJhdGlvblR5cGU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+TWFrZWZpbGU8L0NvbmZpZ3VyYXRpb25UeXBlPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPE5NYWtlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPmNkICQoUHJvamVjdERpcilcLi5cUEMKK25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDg2IE91dERpcj0kKE91dERpcikgcmVidWlsZDwvTk1ha2VSZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlQ2xlYW5Db21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIGNsZWFuPC9OTWFrZUNsZWFuQ29tbWFuZExpbmU+CisgICAgPE5NYWtlT3V0cHV0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoT3V0RGlyKXB5dGhvbjMuZGxsPC9OTWFrZU91dHB1dD4KKyAgICA8Tk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE5NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9OTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDxOTWFrZUluY2x1ZGVTZWFyY2hQYXRoIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoTk1ha2VJbmNsdWRlU2VhcmNoUGF0aCk8L05NYWtlSW5jbHVkZVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkSW5jbHVkZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChOTWFrZUZvcmNlZEluY2x1ZGVzKTwvTk1ha2VGb3JjZWRJbmNsdWRlcz4KKyAgICA8Tk1ha2VBc3NlbWJseVNlYXJjaFBhdGggQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCk8L05NYWtlQXNzZW1ibHlTZWFyY2hQYXRoPgorICAgIDxOTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzKTwvTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXM+CisgICAgPE5NYWtlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Y2QgJChQcm9qZWN0RGlyKVwuLlxQQworbm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14NjQgT3V0RGlyPSQoT3V0RGlyKTwvTk1ha2VCdWlsZENvbW1hbmRMaW5lPgorICAgIDxOTWFrZVJlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+Y2QgJChQcm9qZWN0RGlyKVwuLlxQQworbm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14NjQgT3V0RGlyPSQoT3V0RGlyKSByZWJ1aWxkPC9OTWFrZVJlQnVpbGRDb21tYW5kTGluZT4KKyAgICA8Tk1ha2VDbGVhbkNvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIGNsZWFuPC9OTWFrZUNsZWFuQ29tbWFuZExpbmU+CisgICAgPE5NYWtlT3V0cHV0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4kKE91dERpcilweXRob24zLmRsbDwvTk1ha2VPdXRwdXQ+CisgICAgPE5NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPiQoTk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L05NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPE5NYWtlSW5jbHVkZVNlYXJjaFBhdGggQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPiQoTk1ha2VJbmNsdWRlU2VhcmNoUGF0aCk8L05NYWtlSW5jbHVkZVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkSW5jbHVkZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPiQoTk1ha2VGb3JjZWRJbmNsdWRlcyk8L05NYWtlRm9yY2VkSW5jbHVkZXM+CisgICAgPE5NYWtlQXNzZW1ibHlTZWFyY2hQYXRoIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4kKE5NYWtlQXNzZW1ibHlTZWFyY2hQYXRoKTwvTk1ha2VBc3NlbWJseVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4kKE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzKTwvTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXM+CisgICAgPE5NYWtlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPmNkICQoUHJvamVjdERpcilcLi5cUEMKK25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDg2IE91dERpcj0kKE91dERpcik8L05NYWtlQnVpbGRDb21tYW5kTGluZT4KKyAgICA8Tk1ha2VSZUJ1aWxkQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIHJlYnVpbGQ8L05NYWtlUmVCdWlsZENvbW1hbmRMaW5lPgorICAgIDxOTWFrZUNsZWFuQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIGNsZWFuPC9OTWFrZUNsZWFuQ29tbWFuZExpbmU+CisgICAgPE5NYWtlT3V0cHV0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+JChPdXREaXIpcHl0aG9uMy5kbGw8L05NYWtlT3V0cHV0PgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+JChOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvTk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8Tk1ha2VJbmNsdWRlU2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPiQoTk1ha2VJbmNsdWRlU2VhcmNoUGF0aCk8L05NYWtlSW5jbHVkZVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkSW5jbHVkZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPiQoTk1ha2VBc3NlbWJseVNlYXJjaFBhdGgpPC9OTWFrZUFzc2VtYmx5U2VhcmNoUGF0aD4KKyAgICA8Tk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4kKE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzKTwvTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXM+CisgICAgPE5NYWtlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPmNkICQoUHJvamVjdERpcilcLi5cUEMKK25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDY0IE91dERpcj0kKE91dERpcikgcmVidWlsZDwvTk1ha2VSZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlQ2xlYW5Db21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIGNsZWFuPC9OTWFrZUNsZWFuQ29tbWFuZExpbmU+CisgICAgPE5NYWtlT3V0cHV0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPiQoT3V0RGlyKXB5dGhvbjMuZGxsPC9OTWFrZU91dHB1dD4KKyAgICA8Tk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4kKE5NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9OTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDxOTWFrZUluY2x1ZGVTZWFyY2hQYXRoIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPiQoTk1ha2VJbmNsdWRlU2VhcmNoUGF0aCk8L05NYWtlSW5jbHVkZVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkSW5jbHVkZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+JChOTWFrZUZvcmNlZEluY2x1ZGVzKTwvTk1ha2VGb3JjZWRJbmNsdWRlcz4KKyAgICA8Tk1ha2VBc3NlbWJseVNlYXJjaFBhdGggQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+JChOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCk8L05NYWtlQXNzZW1ibHlTZWFyY2hQYXRoPgorICAgIDxOTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4kKE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzKTwvTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXM+CisgICAgPE5NYWtlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+Y2QgJChQcm9qZWN0RGlyKVwuLlxQQworbm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14ODYgT3V0RGlyPSQoT3V0RGlyKTwvTk1ha2VCdWlsZENvbW1hbmRMaW5lPgorICAgIDxOTWFrZVJlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+Y2QgJChQcm9qZWN0RGlyKVwuLlxQQworbm1ha2UgL2YgcHl0aG9uMy5tYWsgTUFDSElORT14ODYgT3V0RGlyPSQoT3V0RGlyKSByZWJ1aWxkPC9OTWFrZVJlQnVpbGRDb21tYW5kTGluZT4KKyAgICA8Tk1ha2VDbGVhbkNvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg4NiBPdXREaXI9JChPdXREaXIpIGNsZWFuPC9OTWFrZUNsZWFuQ29tbWFuZExpbmU+CisgICAgPE5NYWtlT3V0cHV0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4kKE91dERpcilweXRob24zLmRsbDwvTk1ha2VPdXRwdXQ+CisgICAgPE5NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPiQoTk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L05NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPE5NYWtlSW5jbHVkZVNlYXJjaFBhdGggQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPiQoTk1ha2VJbmNsdWRlU2VhcmNoUGF0aCk8L05NYWtlSW5jbHVkZVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkSW5jbHVkZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPiQoTk1ha2VGb3JjZWRJbmNsdWRlcyk8L05NYWtlRm9yY2VkSW5jbHVkZXM+CisgICAgPE5NYWtlQXNzZW1ibHlTZWFyY2hQYXRoIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4kKE5NYWtlQXNzZW1ibHlTZWFyY2hQYXRoKTwvTk1ha2VBc3NlbWJseVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4kKE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzKTwvTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXM+CisgICAgPE5NYWtlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPmNkICQoUHJvamVjdERpcilcLi5cUEMKK25tYWtlIC9mIHB5dGhvbjMubWFrIE1BQ0hJTkU9eDY0IE91dERpcj0kKE91dERpcik8L05NYWtlQnVpbGRDb21tYW5kTGluZT4KKyAgICA8Tk1ha2VSZUJ1aWxkQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIHJlYnVpbGQ8L05NYWtlUmVCdWlsZENvbW1hbmRMaW5lPgorICAgIDxOTWFrZUNsZWFuQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5jZCAkKFByb2plY3REaXIpXC4uXFBDCitubWFrZSAvZiBweXRob24zLm1hayBNQUNISU5FPXg2NCBPdXREaXI9JChPdXREaXIpIGNsZWFuPC9OTWFrZUNsZWFuQ29tbWFuZExpbmU+CisgICAgPE5NYWtlT3V0cHV0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+JChPdXREaXIpcHl0aG9uMy5kbGw8L05NYWtlT3V0cHV0PgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+JChOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvTk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8Tk1ha2VJbmNsdWRlU2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPiQoTk1ha2VJbmNsdWRlU2VhcmNoUGF0aCk8L05NYWtlSW5jbHVkZVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkSW5jbHVkZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPiQoTk1ha2VBc3NlbWJseVNlYXJjaFBhdGgpPC9OTWFrZUFzc2VtYmx5U2VhcmNoUGF0aD4KKyAgICA8Tk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4kKE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzKTwvTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXM+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Tm9uZSBJbmNsdWRlPSIuLlxQQ1xweXRob24zLmRlZiIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xweXRob24zZGxsLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cUENccHl0aG9uX250LnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5dGhvbjNkbGwudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9weXRob24zZGxsLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjUwYzQ1Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9weXRob24zZGxsLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDMyIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y2M7Y3h4O2RlZjtvZGw7aWRsO2hwajtiYXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezkzOTk1MzgwLTg5QkQtNGIwNC04OEVCLTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgICA8RXh0ZW5zaW9ucz5oO2hwcDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4dGVuc2lvbnM+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJSZXNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NjdEQTZBQjYtRjgwMC00YzA4LThCN0EtODNCQjEyMUFBRDAxfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICAgIDxFeHRlbnNpb25zPnJjO2ljbztjdXI7Ym1wO2RsZztyYzI7cmN0O2JpbjtyZ3M7Z2lmO2pwZztqcGVnO2pwZTtyZXN4O3RpZmY7dGlmO3BuZzt3YXY8L0V4dGVuc2lvbnM+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXFBDXHB5dGhvbjMuZGVmIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9Ob25lPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXHB5dGhvbjNkbGwuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVzb3VyY2VDb21waWxlIEluY2x1ZGU9Ii4uXFBDXHB5dGhvbl9udC5yYyI+CisgICAgICA8RmlsdGVyPlJlc291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvcHl0aG9uY29yZS52Y3hwcm9qIGIvUENidWlsZC9weXRob25jb3JlLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjk0OTNlMwotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvcHl0aG9uY29yZS52Y3hwcm9qCkBAIC0wLDAgKzEsNjgwIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57Q0Y3QUMzRDEtRTJERi00MUQyLUJFQTYtMUUyNTU2Q0RFQTI2fTwvUHJvamVjdEd1aWQ+CisgICAgPFJvb3ROYW1lc3BhY2U+cHl0aG9uY29yZTwvUm9vdE5hbWVzcGFjZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9ImRlYnVnLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxUYXJnZXROYW1lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKFB5RGxsTmFtZSk8L1RhcmdldE5hbWU+CisgICAgPFRhcmdldE5hbWUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4kKFB5RGxsTmFtZSk8L1RhcmdldE5hbWU+CisgICAgPFRhcmdldE5hbWUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPiQoUHlEbGxOYW1lKTwvVGFyZ2V0TmFtZT4KKyAgICA8VGFyZ2V0TmFtZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKFB5RGxsTmFtZSk8L1RhcmdldE5hbWU+CisgICAgPFRhcmdldE5hbWUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4kKFB5RGxsTmFtZSk8L1RhcmdldE5hbWU+CisgICAgPFRhcmdldE5hbWUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+JChQeURsbE5hbWUpPC9UYXJnZXROYW1lPgorICAgIDxUYXJnZXROYW1lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+JChQeURsbE5hbWUpPC9UYXJnZXROYW1lPgorICAgIDxUYXJnZXROYW1lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4kKFB5RGxsTmFtZSk8L1RhcmdldE5hbWU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4vWm0yMDAgICUoQWRkaXRpb25hbE9wdGlvbnMpPC9BZGRpdGlvbmFsT3B0aW9ucz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXFB5dGhvbjsuLlxNb2R1bGVzXHpsaWI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fVVNSRExMO1B5X0JVSUxEX0NPUkU7UHlfRU5BQkxFX1NIQVJFRDtXSU4zMjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5OREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEN1bHR1cmU+MHgwNDA5PC9DdWx0dXJlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cSW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICAgIDxQcmVMaW5rRXZlbnQ+CisgICAgICA8TWVzc2FnZT5HZW5lcmF0ZSBidWlsZCBpbmZvcm1hdGlvbi4uLjwvTWVzc2FnZT4KKyAgICAgIDxDb21tYW5kPiIkKFNvbHV0aW9uRGlyKW1ha2VfYnVpbGRpbmZvLmV4ZSIgUmVsZWFzZSAiJChJbnREaXIpIjwvQ29tbWFuZD4KKyAgICA8L1ByZUxpbmtFdmVudD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQoSW50RGlyKWdldGJ1aWxkaW5mby5vOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcikkKFB5RGxsTmFtZSkuZGxsPC9PdXRwdXRGaWxlPgorICAgICAgPElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz5saWJjOyUoSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzKTwvSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUwMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsT3B0aW9ucz4vWm0yMDAgICUoQWRkaXRpb25hbE9wdGlvbnMpPC9BZGRpdGlvbmFsT3B0aW9ucz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXFB5dGhvbjsuLlxNb2R1bGVzXHpsaWI7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fVVNSRExMO1B5X0JVSUxEX0NPUkU7UHlfRU5BQkxFX1NIQVJFRDtXSU4zMjslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5OREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEN1bHR1cmU+MHgwNDA5PC9DdWx0dXJlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cSW5jbHVkZTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICAgIDxQcmVMaW5rRXZlbnQ+CisgICAgICA8TWVzc2FnZT5HZW5lcmF0ZSBidWlsZCBpbmZvcm1hdGlvbi4uLjwvTWVzc2FnZT4KKyAgICAgIDxDb21tYW5kPiIkKFNvbHV0aW9uRGlyKW1ha2VfYnVpbGRpbmZvLmV4ZSIgUmVsZWFzZSAiJChJbnREaXIpIjwvQ29tbWFuZD4KKyAgICA8L1ByZUxpbmtFdmVudD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPiQoSW50RGlyKWdldGJ1aWxkaW5mby5vOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPmxpYmM7JShJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXMpPC9JZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTAwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPi9abTIwMCAgJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPkRlZmF1bHQ8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz5mYWxzZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cUHl0aG9uOy4uXE1vZHVsZXNcemxpYjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9VU1JETEw7UHlfQlVJTERfQ09SRTtQeV9FTkFCTEVfU0hBUkVEO1dJTjMyOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0RFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwOTwvQ3VsdHVyZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXEluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8UHJlTGlua0V2ZW50PgorICAgICAgPE1lc3NhZ2U+R2VuZXJhdGUgYnVpbGQgaW5mb3JtYXRpb24uLi48L01lc3NhZ2U+CisgICAgICA8Q29tbWFuZD4iJChTb2x1dGlvbkRpciltYWtlX2J1aWxkaW5mby5leGUiIERlYnVnICIkKEludERpcikiPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JChJbnREaXIpZ2V0YnVpbGRpbmZvLm87JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+bGliYzslKElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcyk8L0lnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPi9abTIwMCAgJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPE9wdGltaXphdGlvbj5EaXNhYmxlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPkRlZmF1bHQ8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz5mYWxzZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cUHl0aG9uOy4uXE1vZHVsZXNcemxpYjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9VU1JETEw7UHlfQlVJTERfQ09SRTtQeV9FTkFCTEVfU0hBUkVEO1dJTjMyOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWdETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X0RFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwOTwvQ3VsdHVyZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXEluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8UHJlTGlua0V2ZW50PgorICAgICAgPE1lc3NhZ2U+R2VuZXJhdGUgYnVpbGQgaW5mb3JtYXRpb24uLi48L01lc3NhZ2U+CisgICAgICA8Q29tbWFuZD4iJChTb2x1dGlvbkRpciltYWtlX2J1aWxkaW5mby5leGUiIERlYnVnICIkKEludERpcikiPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JChJbnREaXIpZ2V0YnVpbGRpbmZvLm87JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+bGliYzslKElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcyk8L0lnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPi9abTIwMCAgJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cUHl0aG9uOy4uXE1vZHVsZXNcemxpYjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9VU1JETEw7UHlfQlVJTERfQ09SRTtQeV9FTkFCTEVfU0hBUkVEO1dJTjMyOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDk8L0N1bHR1cmU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxJbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxNZXNzYWdlPkdlbmVyYXRlIGJ1aWxkIGluZm9ybWF0aW9uLi4uPC9NZXNzYWdlPgorICAgICAgPENvbW1hbmQ+IiQoU29sdXRpb25EaXIpbWFrZV9idWlsZGluZm8uZXhlIiBSZWxlYXNlICIkKEludERpcikiPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JChJbnREaXIpZ2V0YnVpbGRpbmZvLm87JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKSQoUHlEbGxOYW1lKS5kbGw8L091dHB1dEZpbGU+CisgICAgICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPmxpYmM7JShJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXMpPC9JZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZTAwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L1ptMjAwICAlKEFkZGl0aW9uYWxPcHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxQeXRob247Li5cTW9kdWxlc1x6bGliOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwOTwvQ3VsdHVyZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXEluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8UHJlTGlua0V2ZW50PgorICAgICAgPE1lc3NhZ2U+R2VuZXJhdGUgYnVpbGQgaW5mb3JtYXRpb24uLi48L01lc3NhZ2U+CisgICAgICA8Q29tbWFuZD4iJChTb2x1dGlvbkRpciltYWtlX2J1aWxkaW5mby5leGUiIFJlbGVhc2UgIiQoSW50RGlyKSI8L0NvbW1hbmQ+CisgICAgPC9QcmVMaW5rRXZlbnQ+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKEludERpcilnZXRidWlsZGluZm8ubzslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz5saWJjOyUoSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzKTwvSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWUwMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbE9wdGlvbnM+L1ptMjAwICAlKEFkZGl0aW9uYWxPcHRpb25zKTwvQWRkaXRpb25hbE9wdGlvbnM+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxQeXRob247Li5cTW9kdWxlc1x6bGliOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X1VTUkRMTDtQeV9CVUlMRF9DT1JFO1B5X0VOQUJMRV9TSEFSRUQ7V0lOMzI7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwOTwvQ3VsdHVyZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPi4uXEluY2x1ZGU7JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8UHJlTGlua0V2ZW50PgorICAgICAgPE1lc3NhZ2U+R2VuZXJhdGUgYnVpbGQgaW5mb3JtYXRpb24uLi48L01lc3NhZ2U+CisgICAgICA8Q29tbWFuZD4iJChTb2x1dGlvbkRpciltYWtlX2J1aWxkaW5mby5leGUiIFJlbGVhc2UgIiQoSW50RGlyKSI8L0NvbW1hbmQ+CisgICAgPC9QcmVMaW5rRXZlbnQ+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz4kKEludERpcilnZXRidWlsZGluZm8ubzslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpJChQeURsbE5hbWUpLmRsbDwvT3V0cHV0RmlsZT4KKyAgICAgIDxJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+bGliYzslKElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcyk8L0lnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPi9abTIwMCAgJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+Li5cUHl0aG9uOy4uXE1vZHVsZXNcemxpYjslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9VU1JETEw7UHlfQlVJTERfQ09SRTtQeV9FTkFCTEVfU0hBUkVEO1dJTjMyOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDk8L0N1bHR1cmU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4uLlxJbmNsdWRlOyUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPFByZUxpbmtFdmVudD4KKyAgICAgIDxNZXNzYWdlPkdlbmVyYXRlIGJ1aWxkIGluZm9ybWF0aW9uLi4uPC9NZXNzYWdlPgorICAgICAgPENvbW1hbmQ+IiQoU29sdXRpb25EaXIpbWFrZV9idWlsZGluZm8uZXhlIiBSZWxlYXNlICIkKEludERpcikiPC9Db21tYW5kPgorICAgIDwvUHJlTGlua0V2ZW50PgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+JChJbnREaXIpZ2V0YnVpbGRpbmZvLm87JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+bGliYzslKElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcyk8L0lnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFlMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGFic3RyYWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGFjY3UuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcYXNkbC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxhc3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcYml0c2V0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGJvb2xvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcYnl0ZXNfbWV0aG9kcy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxieXRlYXJyYXlvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcYnl0ZXNvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcY2VsbG9iamVjdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxjZXZhbC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxjbGFzc29iamVjdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxjb2RlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGNvZGVjcy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxjb21waWxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGNvbXBsZXhvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZGF0ZXRpbWUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZGVzY3JvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZGljdG9iamVjdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxkeW5hbWljX2Fubm90YXRpb25zLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGVudW1vYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZXJyY29kZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxldmFsLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGZpbGVvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZmlsZXV0aWxzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGZsb2F0b2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGZyYW1lb2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGZ1bmNvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZ2Vub2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGdyYW1pbml0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGdyYW1tYXIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcaW1wb3J0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGludHJjaGVjay5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxpdGVyb2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGxpc3RvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcbG9uZ2ludHJlcHIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcbG9uZ29iamVjdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxtYXJzaGFsLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG1lbW9yeW9iamVjdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxtZXRhZ3JhbW1hci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxtZXRob2RvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcbW9kc3VwcG9ydC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxtb2R1bGVvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcbmFtZXNwYWNlb2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG5vZGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcb2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG9iamltcGwuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcb3Bjb2RlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG9zZGVmcy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxwYXJzZXRvay5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxwYXRjaGxldmVsLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHBnZW4uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccGdlbmhlYWRlcnMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHlfY3Vyc2VzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5YXJlbmEuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHljYXBzdWxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5Y3R5cGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHlkZWJ1Zy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweWVycm9ycy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweWV4cGF0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5ZnBlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5Z2V0b3B0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5bWF0aC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweXRpbWUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHltYWNyby5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweW1lbS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweXBvcnQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHlzdGF0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweXN0cmNtcC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweXN0cnRvZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxkdG9hLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXFB5dGhvbi1hc3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcUHl0aG9uLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5dGhvbnJ1bi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweXRocmVhZC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxyYW5nZW9iamVjdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxzZXRvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcc2xpY2VvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcc3RydWN0bWVtYmVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHN0cnVjdHNlcS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxzeW10YWJsZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxzeXNtb2R1bGUuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcdG9rZW4uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcdHJhY2ViYWNrLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHR1cGxlb2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHVjbmhhc2guaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcdW5pY29kZW9iamVjdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVx3ZWFrcmVmb2JqZWN0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9tYXRoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHJvdGF0aW5ndHJlZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfaW9cX2lvbW9kdWxlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcY3JjMzIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlxkZWZsYXRlLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcaW5mZmFzdC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZmZpeGVkLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcaW5mbGF0ZS5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZnRyZWVzLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcdHJlZXMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlx6Y29uZi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXHpjb25mLmluLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcemxpYi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXHp1dGlsLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xhbGdfamlzeDAyMDEuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcY2prY29kZWNzXGNqa2NvZGVjcy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcZW11X2ppc3gwMjEzXzIwMDAuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcY2prY29kZWNzXG1hcHBpbmdzX2NuLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc19oay5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3NfamlzeDAyMTNfcGFpci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3NfanAuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcY2prY29kZWNzXG1hcHBpbmdzX2tyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc190dy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcbXVsdGlieXRlY29kZWMuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE9iamVjdHNcc3RyaW5nbGliXGNvdW50LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxPYmplY3RzXHN0cmluZ2xpYlxmYXN0c2VhcmNoLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxPYmplY3RzXHN0cmluZ2xpYlxmaW5kLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxPYmplY3RzXHN0cmluZ2xpYlxwYXJ0aXRpb24uaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE9iamVjdHNcc3RyaW5nbGliXHNwbGl0LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxPYmplY3RzXHVuaWNvZGV0eXBlX2RiLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxQYXJzZXJccGFyc2VyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxQYXJzZXJcdG9rZW5pemVyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxQQ1xlcnJtYXAuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFBDXHB5Y29uZmlnLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxQeXRob25cY2V2YWxfZ2lsLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxQeXRob25cY29uZHZhci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cUHl0aG9uXGltcG9ydGRsLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxQeXRob25cdGhyZWFkX250LmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfYmlzZWN0bW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jb2RlY3Ntb2R1bGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2NvbGxlY3Rpb25zbW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jc3YuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2Z1bmN0b29sc21vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfaGVhcHFtb2R1bGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2pzb24uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2xvY2FsZW1vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfbHNwcm9mLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9tYXRoLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9waWNrbGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3JhbmRvbW1vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3JlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9zdHJ1Y3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3dlYWtyZWYuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcYXJyYXltb2R1bGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcYXRleGl0bW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGF1ZGlvb3AuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcYmluYXNjaWkuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcY21hdGhtb2R1bGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2RhdGV0aW1lbW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGVycm5vbW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGZhdWx0aGFuZGxlci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xnY21vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xpdGVydG9vbHNtb2R1bGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcbWFpbi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xtYXRobW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXG1kNW1vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xtbWFwbW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXG9wZXJhdG9yLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHBhcnNlcm1vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xwb3NpeG1vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xyb3RhdGluZ3RyZWUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcc2hhMW1vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xzaGEyNTZtb2R1bGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcc2hhNTEybW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHNpZ25hbG1vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xzeW10YWJsZW1vZHVsZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfdGhyZWFkbW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHRpbWVtb2R1bGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNceHhzdWJ0eXBlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHppcGltcG9ydC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGlibW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9pb1xmaWxlaW8uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2lvXGJ5dGVzaW8uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2lvXHN0cmluZ2lvLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9pb1xidWZmZXJlZGlvLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9pb1xpb2Jhc2UuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2lvXHRleHRpby5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfaW9cX2lvbW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcYWRsZXIzMi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGNvbXByZXNzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcY3JjMzIuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlxkZWZsYXRlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcaW5mYmFjay5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZmZhc3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlxpbmZsYXRlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcaW5mdHJlZXMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlx0cmVlcy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXHVuY29tcHIuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlx6dXRpbC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19jbi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19oay5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19pc28yMDIyLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2pwLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2tyLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX3R3LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xtdWx0aWJ5dGVjb2RlYy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfd2luYXBpLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGFic3RyYWN0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGFjY3UuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcYm9vbG9iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xieXRlc19tZXRob2RzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGJ5dGVhcnJheW9iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xieXRlc29iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xjYXBzdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGNlbGxvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcY2xhc3NvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcY29kZW9iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xjb21wbGV4b2JqZWN0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGRlc2Nyb2JqZWN0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGRpY3RvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcZW51bW9iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xleGNlcHRpb25zLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGZpbGVvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcZmxvYXRvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcZnJhbWVvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcZnVuY29iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xnZW5vYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcaXRlcm9iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xsaXN0b2JqZWN0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGxvbmdvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcbWVtb3J5b2JqZWN0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXG1ldGhvZG9iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xtb2R1bGVvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcbmFtZXNwYWNlb2JqZWN0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXG9iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xvYm1hbGxvYy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xyYW5nZW9iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xzZXRvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcc2xpY2VvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcc3RydWN0c2VxLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXHR1cGxlb2JqZWN0LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXHR5cGVvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcdW5pY29kZWN0eXBlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXHVuaWNvZGVvYmplY3QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcd2Vha3JlZm9iamVjdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUGFyc2VyXGFjY2VsZXIuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxiaXRzZXQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxmaXJzdHNldHMuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxncmFtbWFyLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYXJzZXJcZ3JhbW1hcjEuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxsaXN0bm9kZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUGFyc2VyXG1ldGFncmFtbWFyLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYXJzZXJcbXlyZWFkbGluZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUGFyc2VyXG5vZGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxwYXJzZXIuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxwYXJzZXRvay5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUGFyc2VyXHRva2VuaXplci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUENcd2lucmVnLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xjb25maWcuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXGRsX250LmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xnZXRwYXRocC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUENcbXN2Y3J0bW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccmFuZG9tLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cX3dhcm5pbmdzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cYXNkbC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGFzdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGJsdGlubW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cY2V2YWwuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxjb2RlY3MuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxjb21waWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZHluYW1pY19hbm5vdGF0aW9ucy5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGR5bmxvYWRfd2luLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZXJyb3JzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZmlsZXV0aWxzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZm9ybWF0dGVyX3VuaWNvZGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxmcm96ZW4uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxmdXR1cmUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxnZXRhcmdzLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZ2V0Y29tcGlsZXIuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxnZXRjb3B5cmlnaHQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxnZXRvcHQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxnZXRwbGF0Zm9ybS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGdldHZlcnNpb24uYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxncmFtaW5pdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGltcG9ydC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGltcG9ydGRsLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cbWFyc2hhbC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXG1vZHN1cHBvcnQuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxteXNucHJpbnRmLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cbXlzdHJ0b3VsLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccGVlcGhvbGUuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxweWFyZW5hLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccHljdHlwZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHB5ZnBlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccHltYXRoLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccHl0aW1lLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccHlzdGF0ZS5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHB5c3RyY21wLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccHlzdHJ0b2QuYyIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxkdG9hLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cUHl0aG9uLWFzdC5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHB5dGhvbnJ1bi5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHN0cnVjdG1lbWJlci5jIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHN5bXRhYmxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cc3lzbW9kdWxlLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cdGhyZWFkLmMiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cdHJhY2ViYWNrLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cUENccHl0aG9uX250LnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJraWxsX3B5dGhvbi52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0Pns2ZGUxMDc0NC1lMzk2LTQwYTUtYjRlMi0xYjY5YWE3YzhkMzF9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0ibWFrZV9idWlsZGluZm8udmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57YzczZjBlYzEtMzU4Yi00MTc3LTk0MGYtMDg0NmFjOGIwNGNkfTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9Im1ha2VfdmVyc2lvbmluZm8udmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57ZjBlMDU0MWUtZjE3ZC00MzBiLTk3YzQtOTNhZGYwZGQyODRlfTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5dGhvbmNvcmUudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9weXRob25jb3JlLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWI0YmI0Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9weXRob25jb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDkyNSBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IkluY2x1ZGUiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezA4NmIwYWZiLTI3MGMtNDYwMy1hMDJhLTYzZDQ2ZjBiMmI5Mn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJNb2R1bGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns4ZTgxNjA5Zi0xM2NhLTRlYWUtOWZkYi1mOGFmMjBjNzEwYzd9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iTW9kdWxlc1xfaW8iPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezg3ODdjNWJiLWJhYjYtNDU4Ni1hNDJlLTRhMjdjN2IzZmZiNn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJNb2R1bGVzXHpsaWIiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezVkNmQyZDZjLTllNjEtNGExZC1iMGIyLTVjYzJmNDQ2ZDY5ZX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJNb2R1bGVzXGNqa2NvZGVjcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57OWYxMmM0YjEtMzIyZS00MzFlLWFiZjEtZTAyNTUwZjUwMDMyfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9Ik9iamVjdHMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2FiMjlhNTU4LTE0M2QtNGZlNy1hMDM5LWI0MzFmYjQyOTg1Nn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJQYXJzZXIiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezk3MzQ5ZmVlLTBhYmYtNDhiMC1hOGY1LTc3MWJmMzliOGFlZX08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJQQyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZWEyMWZjOTgtZGU4OS00NzQ2LWE5NzktYzU2MTY5NjQzMjlhfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlB5dGhvbiI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZjI2OTY0MDYtMTRiYy00OGJkLTkwYzUtZTkzYWI4MmEyMWFjfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlJlc291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPntjM2UwM2E1Yy01NmM3LTQ1ZmQtODU0My1lNWQyMzI2YjkwN2R9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcYWJzdHJhY3QuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcYWNjdS5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxhc2RsLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGFzdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxiaXRzZXQuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcYm9vbG9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxieXRlc19tZXRob2RzLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGJ5dGVhcnJheW9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxieXRlc29iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxjZWxsb2JqZWN0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGNldmFsLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGNsYXNzb2JqZWN0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGNvZGUuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcY29kZWNzLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGNvbXBpbGUuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcY29tcGxleG9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxkYXRldGltZS5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxkZXNjcm9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxkaWN0b2JqZWN0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGR5bmFtaWNfYW5ub3RhdGlvbnMuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZW51bW9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxlcnJjb2RlLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGV2YWwuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZmlsZW9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxmaWxldXRpbHMuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZmxvYXRvYmplY3QuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZnJhbWVvYmplY3QuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZnVuY29iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxnZW5vYmplY3QuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZ3JhbWluaXQuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZ3JhbW1hci5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxpbXBvcnQuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcaW50cmNoZWNrLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXGl0ZXJvYmplY3QuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcbGlzdG9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxsb25naW50cmVwci5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxsb25nb2JqZWN0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG1hcnNoYWwuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcbWVtb3J5b2JqZWN0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG1ldGFncmFtbWFyLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG1ldGhvZG9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxtb2RzdXBwb3J0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG1vZHVsZW9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxub2RlLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxvYmppbXBsLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXG9wY29kZS5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxvc2RlZnMuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccGFyc2V0b2suaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccGF0Y2hsZXZlbC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxwZ2VuLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHBnZW5oZWFkZXJzLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5X2N1cnNlcy5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweWFyZW5hLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5Y2Fwc3VsZS5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweWN0eXBlLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5ZGVidWcuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHllcnJvcnMuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHlleHBhdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweWZwZS5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweWdldG9wdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweW1hdGguaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHl0aW1lLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5bWFjcm8uaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHltZW0uaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHlwb3J0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHB5c3RhdGUuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHlzdHJjbXAuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHlzdHJ0b2QuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcZHRvYS5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxQeXRob24tYXN0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXFB5dGhvbi5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxweXRob25ydW4uaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccHl0aHJlYWQuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVccmFuZ2VvYmplY3QuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcc2V0b2JqZWN0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHNsaWNlb2JqZWN0LmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHN0cnVjdG1lbWJlci5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxzdHJ1Y3RzZXEuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcc3ltdGFibGUuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcc3lzbW9kdWxlLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHRva2VuLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHRyYWNlYmFjay5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVx0dXBsZW9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVx1Y25oYXNoLmgiPgorICAgICAgPEZpbHRlcj5JbmNsdWRlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxJbmNsdWRlXHVuaWNvZGVvYmplY3QuaCI+CisgICAgICA8RmlsdGVyPkluY2x1ZGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEluY2x1ZGVcd2Vha3JlZm9iamVjdC5oIj4KKyAgICAgIDxGaWx0ZXI+SW5jbHVkZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfbWF0aC5oIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xyb3RhdGluZ3RyZWUuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2lvXF9pb21vZHVsZS5oIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xfaW88L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlxjcmMzMi5oIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcZGVmbGF0ZS5oIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcaW5mZmFzdC5oIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcaW5mZml4ZWQuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZmxhdGUuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZnRyZWVzLmgiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXHpsaWI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlx0cmVlcy5oIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcemNvbmYuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXHpjb25mLmluLmgiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXHpsaWI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlx6bGliLmgiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXHpsaWI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlx6dXRpbC5oIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xhbGdfamlzeDAyMDEuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcY2prY29kZWNzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xjamtjb2RlY3MuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcY2prY29kZWNzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xlbXVfamlzeDAyMTNfMjAwMC5oIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xjamtjb2RlY3M8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcY2prY29kZWNzXG1hcHBpbmdzX2NuLmgiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXGNqa2NvZGVjczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3NfaGsuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcY2prY29kZWNzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc19qaXN4MDIxM19wYWlyLmgiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXGNqa2NvZGVjczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcbWFwcGluZ3NfanAuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcY2prY29kZWNzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xtYXBwaW5nc19rci5oIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xjamtjb2RlY3M8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcY2prY29kZWNzXG1hcHBpbmdzX3R3LmgiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXGNqa2NvZGVjczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcbXVsdGlieXRlY29kZWMuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcY2prY29kZWNzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxPYmplY3RzXHN0cmluZ2xpYlxjb3VudC5oIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xzdHJpbmdsaWJcZmFzdHNlYXJjaC5oIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xzdHJpbmdsaWJcZmluZC5oIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xzdHJpbmdsaWJccGFydGl0aW9uLmgiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxPYmplY3RzXHN0cmluZ2xpYlxzcGxpdC5oIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cT2JqZWN0c1x1bmljb2RldHlwZV9kYi5oIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cUGFyc2VyXHBhcnNlci5oIj4KKyAgICAgIDxGaWx0ZXI+UGFyc2VyPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxQYXJzZXJcdG9rZW5pemVyLmgiPgorICAgICAgPEZpbHRlcj5QYXJzZXI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFBDXGVycm1hcC5oIj4KKyAgICAgIDxGaWx0ZXI+UEM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFBDXHB5Y29uZmlnLmgiPgorICAgICAgPEZpbHRlcj5QQzwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cUHl0aG9uXGltcG9ydGRsLmgiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFB5dGhvblx0aHJlYWRfbnQuaCI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cSW5jbHVkZVxuYW1lc3BhY2VvYmplY3QuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFB5dGhvblxjb25kdmFyLmgiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXFB5dGhvblxjZXZhbF9naWwuaCI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2Jpc2VjdG1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY29kZWNzbW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9jb2xsZWN0aW9uc21vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfY3N2LmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9mdW5jdG9vbHNtb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2hlYXBxbW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9qc29uLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9sb2NhbGVtb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2xzcHJvZi5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfbWF0aC5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfcGlja2xlLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9yYW5kb21tb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3NyZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfc3RydWN0LmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF93ZWFrcmVmLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGFycmF5bW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGF0ZXhpdG1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xhdWRpb29wLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGJpbmFzY2lpLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNtYXRobW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF9kYXRldGltZW1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xlcnJub21vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xmYXVsdGhhbmRsZXIuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcZ2Ntb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcaXRlcnRvb2xzbW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXG1haW4uYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcbWF0aG1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xtZDVtb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcbW1hcG1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xvcGVyYXRvci5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xwYXJzZXJtb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNccG9zaXhtb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNccm90YXRpbmd0cmVlLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHNoYTFtb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcc2hhMjU2bW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHNoYTUxMm1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xzaWduYWxtb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcc3ltdGFibGVtb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX3RocmVhZG1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x0aW1lbW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHh4c3VidHlwZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6aXBpbXBvcnQuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYm1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfaW9cZmlsZWlvLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXF9pbzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfaW9cYnl0ZXNpby5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xfaW88L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2lvXHN0cmluZ2lvLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXF9pbzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xfaW9cYnVmZmVyZWRpby5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xfaW88L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2lvXGlvYmFzZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xfaW88L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2lvXHRleHRpby5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xfaW88L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcX2lvXF9pb21vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xfaW88L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlxhZGxlcjMyLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXHpsaWI8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlxjb21wcmVzcy5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcY3JjMzIuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGRlZmxhdGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZmJhY2suYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZmZhc3QuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZmxhdGUuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x6bGliXGluZnRyZWVzLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXHpsaWI8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcemxpYlx0cmVlcy5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcdW5jb21wci5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1x6bGliPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHpsaWJcenV0aWwuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcemxpYjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19jbi5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xjamtjb2RlY3M8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfaGsuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcY2prY29kZWNzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2lzbzIwMjIuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcY2prY29kZWNzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xfY29kZWNzX2pwLmMiPgorICAgICAgPEZpbHRlcj5Nb2R1bGVzXGNqa2NvZGVjczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1xjamtjb2RlY3NcX2NvZGVjc19rci5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xjamtjb2RlY3M8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcY2prY29kZWNzXF9jb2RlY3NfdHcuYyI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcY2prY29kZWNzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXGNqa2NvZGVjc1xtdWx0aWJ5dGVjb2RlYy5jIj4KKyAgICAgIDxGaWx0ZXI+TW9kdWxlc1xjamtjb2RlY3M8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcYWJzdHJhY3QuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcYWNjdS5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xib29sb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGJ5dGVzX21ldGhvZHMuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcYnl0ZWFycmF5b2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGJ5dGVzb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGNhcHN1bGUuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcY2VsbG9iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xjbGFzc29iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xjb2Rlb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGNvbXBsZXhvYmplY3QuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcZGVzY3JvYmplY3QuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcZGljdG9iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xlbnVtb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGV4Y2VwdGlvbnMuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcZmlsZW9iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xmbG9hdG9iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xmcmFtZW9iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xmdW5jb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGdlbm9iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xpdGVyb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXGxpc3RvYmplY3QuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcbG9uZ29iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xtZW1vcnlvYmplY3QuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcbWV0aG9kb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXG1vZHVsZW9iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1xvYmplY3QuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcb2JtYWxsb2MuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNccmFuZ2VvYmplY3QuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE9iamVjdHNcc2V0b2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXHNsaWNlb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXHN0cnVjdHNlcS5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1x0dXBsZW9iamVjdC5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1x0eXBlb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXHVuaWNvZGVjdHlwZS5jIj4KKyAgICAgIDxGaWx0ZXI+T2JqZWN0czwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cT2JqZWN0c1x1bmljb2Rlb2JqZWN0LmMiPgorICAgICAgPEZpbHRlcj5PYmplY3RzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXHdlYWtyZWZvYmplY3QuYyI+CisgICAgICA8RmlsdGVyPk9iamVjdHM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxhY2NlbGVyLmMiPgorICAgICAgPEZpbHRlcj5QYXJzZXI8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxiaXRzZXQuYyI+CisgICAgICA8RmlsdGVyPlBhcnNlcjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUGFyc2VyXGZpcnN0c2V0cy5jIj4KKyAgICAgIDxGaWx0ZXI+UGFyc2VyPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYXJzZXJcZ3JhbW1hci5jIj4KKyAgICAgIDxGaWx0ZXI+UGFyc2VyPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYXJzZXJcZ3JhbW1hcjEuYyI+CisgICAgICA8RmlsdGVyPlBhcnNlcjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUGFyc2VyXGxpc3Rub2RlLmMiPgorICAgICAgPEZpbHRlcj5QYXJzZXI8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxtZXRhZ3JhbW1hci5jIj4KKyAgICAgIDxGaWx0ZXI+UGFyc2VyPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYXJzZXJcbXlyZWFkbGluZS5jIj4KKyAgICAgIDxGaWx0ZXI+UGFyc2VyPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYXJzZXJcbm9kZS5jIj4KKyAgICAgIDxGaWx0ZXI+UGFyc2VyPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYXJzZXJccGFyc2VyLmMiPgorICAgICAgPEZpbHRlcj5QYXJzZXI8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBhcnNlclxwYXJzZXRvay5jIj4KKyAgICAgIDxGaWx0ZXI+UGFyc2VyPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQYXJzZXJcdG9rZW5pemVyLmMiPgorICAgICAgPEZpbHRlcj5QYXJzZXI8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXHdpbnJlZy5jIj4KKyAgICAgIDxGaWx0ZXI+UEM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXGNvbmZpZy5jIj4KKyAgICAgIDxGaWx0ZXI+UEM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXGRsX250LmMiPgorICAgICAgPEZpbHRlcj5QQzwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUENcZ2V0cGF0aHAuYyI+CisgICAgICA8RmlsdGVyPlBDPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xtc3ZjcnRtb2R1bGUuYyI+CisgICAgICA8RmlsdGVyPlBDPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cX3dhcm5pbmdzLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxhc2RsLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxhc3QuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGJsdGlubW9kdWxlLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxjZXZhbC5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cY29kZWNzLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxjb21waWxlLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxkeW5hbWljX2Fubm90YXRpb25zLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxkeW5sb2FkX3dpbi5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZXJyb3JzLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxmaWxldXRpbHMuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGZvcm1hdHRlcl91bmljb2RlLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxmcm96ZW4uYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGZ1dHVyZS5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZ2V0YXJncy5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZ2V0Y29tcGlsZXIuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGdldGNvcHlyaWdodC5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZ2V0b3B0LmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxnZXRwbGF0Zm9ybS5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZ2V0dmVyc2lvbi5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cZ3JhbWluaXQuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXGltcG9ydC5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25caW1wb3J0ZGwuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXG1hcnNoYWwuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXG1vZHN1cHBvcnQuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXG15c25wcmludGYuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXG15c3RydG91bC5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccGVlcGhvbGUuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHB5YXJlbmEuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHB5Y3R5cGUuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHB5ZnBlLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxweW1hdGguYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHB5dGltZS5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccHlzdGF0ZS5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25ccHlzdHJjbXAuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHB5c3RydG9kLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxkdG9hLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxQeXRob24tYXN0LmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblxweXRob25ydW4uYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHN0cnVjdG1lbWJlci5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cc3ltdGFibGUuYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHN5c21vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQeXRob25cdGhyZWFkLmMiPgorICAgICAgPEZpbHRlcj5QeXRob248L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFB5dGhvblx0cmFjZWJhY2suYyI+CisgICAgICA8RmlsdGVyPlB5dGhvbjwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUHl0aG9uXHJhbmRvbS5jIj4KKyAgICAgIDxGaWx0ZXI+UHl0aG9uPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXF93aW5hcGkuYyI+CisgICAgICA8RmlsdGVyPlBDPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxPYmplY3RzXG5hbWVzcGFjZW9iamVjdC5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UmVzb3VyY2VDb21waWxlIEluY2x1ZGU9Ii4uXFBDXHB5dGhvbl9udC5yYyI+CisgICAgICA8RmlsdGVyPlJlc291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvcHl0aG9udy52Y3hwcm9qIGIvUENidWlsZC9weXRob253LnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTIxNDU2OQotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvcHl0aG9udy52Y3hwcm9qCkBAIC0wLDAgKzEsMzQ2IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3x4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR0luc3RydW1lbnR8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlJlbGVhc2U8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICA8L0l0ZW1Hcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9Ikdsb2JhbHMiPgorICAgIDxQcm9qZWN0R3VpZD57RjQyMjlDQzMtODczQy00OUFFLTk3MjktREQzMDhFRDRDRDRBfTwvUHJvamVjdEd1aWQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkFwcGxpY2F0aW9uPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8VXNlT2ZNZmM+ZmFsc2U8L1VzZU9mTWZjPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9ImRlYnVnLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+ZmFsc2U8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1Z0RMTDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDk8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcilweXRob253X2QuZXhlPC9PdXRwdXRGaWxlPgorICAgICAgPFN0YWNrUmVzZXJ2ZVNpemU+MjAwMDAwMDwvU3RhY2tSZXNlcnZlU2l6ZT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFkMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+ZmFsc2U8L0ludHJpbnNpY0Z1bmN0aW9ucz4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1Z0RMTDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDk8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcilweXRob253X2QuZXhlPC9PdXRwdXRGaWxlPgorICAgICAgPFN0YWNrUmVzZXJ2ZVNpemU+MjAwMDAwMDwvU3RhY2tSZXNlcnZlU2l6ZT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFkMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRExMPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxDb21waWxlQXM+RGVmYXVsdDwvQ29tcGlsZUFzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxSZXNvdXJjZUNvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxDdWx0dXJlPjB4MDQwOTwvQ3VsdHVyZT4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKXB5dGhvbncuZXhlPC9PdXRwdXRGaWxlPgorICAgICAgPFN0YWNrUmVzZXJ2ZVNpemU+MjAwMDAwMDwvU3RhY2tSZXNlcnZlU2l6ZT4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFkMDAwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fV0lORE9XUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPENvbXBpbGVBcz5EZWZhdWx0PC9Db21waWxlQXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5OREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEN1bHR1cmU+MHgwNDA5PC9DdWx0dXJlPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpcHl0aG9udy5leGU8L091dHB1dEZpbGU+CisgICAgICA8U3RhY2tSZXNlcnZlU2l6ZT4yMDAwMDAwPC9TdGFja1Jlc2VydmVTaXplPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWQwMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4lKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9XSU5ET1dTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDk8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcilweXRob253LmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdGFja1Jlc2VydmVTaXplPjIwMDAwMDA8L1N0YWNrUmVzZXJ2ZVNpemU+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZDAwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8SW1wb3J0TGlicmFyeT4KKyAgICAgIDwvSW1wb3J0TGlicmFyeT4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYODY8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4lKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9XSU5ET1dTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDk8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcilweXRob253LmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdGFja1Jlc2VydmVTaXplPjIwMDAwMDA8L1N0YWNrUmVzZXJ2ZVNpemU+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZDAwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8SW1wb3J0TGlicmFyeT4KKyAgICAgIDwvSW1wb3J0TGlicmFyeT4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5fV0lORE9XUzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWRETEw8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPENvbXBpbGVBcz5EZWZhdWx0PC9Db21waWxlQXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPFJlc291cmNlQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5OREVCVUc7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgICAgPEN1bHR1cmU+MHgwNDA5PC9DdWx0dXJlPgorICAgIDwvUmVzb3VyY2VDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpcHl0aG9udy5leGU8L091dHB1dEZpbGU+CisgICAgICA8U3RhY2tSZXNlcnZlU2l6ZT4yMDAwMDAwPC9TdGFja1Jlc2VydmVTaXplPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MWQwMDAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPEltcG9ydExpYnJhcnk+CisgICAgICA8L0ltcG9ydExpYnJhcnk+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDg2PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4lKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9XSU5ET1dTOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZERMTDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgICA8Q29tcGlsZUFzPkRlZmF1bHQ8L0NvbXBpbGVBcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8UmVzb3VyY2VDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPk5ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgICA8Q3VsdHVyZT4weDA0MDk8L0N1bHR1cmU+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcilweXRob253LmV4ZTwvT3V0cHV0RmlsZT4KKyAgICAgIDxTdGFja1Jlc2VydmVTaXplPjIwMDAwMDA8L1N0YWNrUmVzZXJ2ZVNpemU+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxZDAwMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8SW1wb3J0TGlicmFyeT4KKyAgICAgIDwvSW1wb3J0TGlicmFyeT4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xweXRob25fZXhlLnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXFdpbk1haW4uYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvcHl0aG9udy52Y3hwcm9qLmZpbHRlcnMgYi9QQ2J1aWxkL3B5dGhvbncudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI1OTg2NmYKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3B5dGhvbncudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsMjEgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJSZXNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MDQzNGNmMTEtYTMxMS00YTkyLThhNmMtNDE2NGFhNzlhN2YyfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57ZTFkOGVhNmItYzY1ZC00MmY0LTllZWQtNjAxMDg0NmVkMzc4fTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xweXRob25fZXhlLnJjIj4KKyAgICAgIDxGaWx0ZXI+UmVzb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L1Jlc291cmNlQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xXaW5NYWluLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9weXdsYXVuY2hlci52Y3hwcm9qIGIvUENidWlsZC9weXdsYXVuY2hlci52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNhNTE3ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3B5d2xhdW5jaGVyLnZjeHByb2oKQEAgLTAsMCArMSwyMDIgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsxRDRCMThEMy03QzEyLTRFQ0ItOTE3OS04NTMxRkY4NzZDRTZ9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5weXdsYXVuY2hlcjwvUm9vdE5hbWVzcGFjZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPgorICAgIDxDaGFyYWN0ZXJTZXQ+VW5pY29kZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZURlYnVnTGlicmFyaWVzPnRydWU8L1VzZURlYnVnTGlicmFyaWVzPgorICAgIDxDaGFyYWN0ZXJTZXQ+VW5pY29kZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPENoYXJhY3RlclNldD5Vbmljb2RlPC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VEZWJ1Z0xpYnJhcmllcz5mYWxzZTwvVXNlRGVidWdMaWJyYXJpZXM+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgICAgPENoYXJhY3RlclNldD5Vbmljb2RlPC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IlByb3BlcnR5U2hlZXRzIiBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0iZGVidWcucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0iZGVidWcucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iUHJvcGVydHlTaGVldHMiIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxUYXJnZXROYW1lPnB5d19kPC9UYXJnZXROYW1lPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPFRhcmdldE5hbWU+cHl3X2Q8L1RhcmdldE5hbWU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPFRhcmdldE5hbWU+cHl3PC9UYXJnZXROYW1lPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8VGFyZ2V0TmFtZT5weXc8L1RhcmdldE5hbWU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8VGFyZ2V0TmFtZT5weXc8L1RhcmdldE5hbWU+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxUYXJnZXROYW1lPnB5dzwvVGFyZ2V0TmFtZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz52ZXJzaW9uLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPElnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+ZmFsc2U8L0lnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKSQoVGFyZ2V0TmFtZSkkKFRhcmdldEV4dCk8L091dHB1dEZpbGU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwzPC9XYXJuaW5nTGV2ZWw+CisgICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X1dJTkRPV1M7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj50cnVlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz52ZXJzaW9uLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPElnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+ZmFsc2U8L0lnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8U3ViU3lzdGVtPldpbmRvd3M8L1N1YlN5c3RlbT4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKSQoVGFyZ2V0TmFtZSkkKFRhcmdldEV4dCk8L091dHB1dEZpbGU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8V2FybmluZ0xldmVsPkxldmVsMzwvV2FybmluZ0xldmVsPgorICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgICAgPEludHJpbnNpY0Z1bmN0aW9ucz50cnVlPC9JbnRyaW5zaWNGdW5jdGlvbnM+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+X1dJTkRPV1M7TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+dHJ1ZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPEVuYWJsZUNPTURBVEZvbGRpbmc+dHJ1ZTwvRW5hYmxlQ09NREFURm9sZGluZz4KKyAgICAgIDxPcHRpbWl6ZVJlZmVyZW5jZXM+dHJ1ZTwvT3B0aW1pemVSZWZlcmVuY2VzPgorICAgICAgPElnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+ZmFsc2U8L0lnbm9yZUFsbERlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz52ZXJzaW9uLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPFN1YlN5c3RlbT5XaW5kb3dzPC9TdWJTeXN0ZW0+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFdhcm5pbmdMZXZlbD5MZXZlbDM8L1dhcm5pbmdMZXZlbD4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICAgIDxJbnRyaW5zaWNGdW5jdGlvbnM+dHJ1ZTwvSW50cmluc2ljRnVuY3Rpb25zPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9XSU5ET1dTO05ERUJVRzslKFByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPnRydWU8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxFbmFibGVDT01EQVRGb2xkaW5nPnRydWU8L0VuYWJsZUNPTURBVEZvbGRpbmc+CisgICAgICA8T3B0aW1pemVSZWZlcmVuY2VzPnRydWU8L09wdGltaXplUmVmZXJlbmNlcz4KKyAgICAgIDxJZ25vcmVBbGxEZWZhdWx0TGlicmFyaWVzPmZhbHNlPC9JZ25vcmVBbGxEZWZhdWx0TGlicmFyaWVzPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+dmVyc2lvbi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxTdWJTeXN0ZW0+V2luZG93czwvU3ViU3lzdGVtPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+dmVyc2lvbi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+dmVyc2lvbi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz52ZXJzaW9uLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+dmVyc2lvbi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXGxhdW5jaGVyLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxOb25lIEluY2x1ZGU9Ii4uXFBDXGxhdW5jaGVyLmljbyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFJlc291cmNlQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1xweWxhdW5jaGVyLnJjIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3B5d2xhdW5jaGVyLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQvcHl3bGF1bmNoZXIudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YjIzZDIKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3B5d2xhdW5jaGVyLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDMyIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPns0RkM3MzdGMS1DN0E1LTQzNzYtQTA2Ni0yQTMyRDc1MkEyRkZ9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgICAgPEV4dGVuc2lvbnM+Y3BwO2M7Y2M7Y3h4O2RlZjtvZGw7aWRsO2hwajtiYXQ7YXNtO2FzbXg8L0V4dGVuc2lvbnM+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJIZWFkZXIgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezkzOTk1MzgwLTg5QkQtNGIwNC04OEVCLTYyNUZCRTUyRUJGQn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgICA8RXh0ZW5zaW9ucz5oO2hwcDtoeHg7aG07aW5sO2luYzt4c2Q8L0V4dGVuc2lvbnM+CisgICAgPC9GaWx0ZXI+CisgICAgPEZpbHRlciBJbmNsdWRlPSJSZXNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57NjdEQTZBQjYtRjgwMC00YzA4LThCN0EtODNCQjEyMUFBRDAxfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICAgIDxFeHRlbnNpb25zPnJjO2ljbztjdXI7Ym1wO2RsZztyYzI7cmN0O2JpbjtyZ3M7Z2lmO2pwZztqcGVnO2pwZTtyZXN4O3RpZmY7dGlmO3BuZzt3YXY7bWZjcmliYm9uLW1zPC9FeHRlbnNpb25zPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXGxhdW5jaGVyLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPE5vbmUgSW5jbHVkZT0iLi5cUENcbGF1bmNoZXIuaWNvIj4KKyAgICAgIDxGaWx0ZXI+UmVzb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L05vbmU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxSZXNvdXJjZUNvbXBpbGUgSW5jbHVkZT0iLi5cUENccHlsYXVuY2hlci5yYyI+CisgICAgICA8RmlsdGVyPlJlc291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9SZXNvdXJjZUNvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvcmVhZG1lLnR4dCBiL1BDYnVpbGQvcmVhZG1lLnR4dAppbmRleCBjN2UzYzcyLi5lNzQ5NDI5IDEwMDY0NAotLS0gYS9QQ2J1aWxkL3JlYWRtZS50eHQKKysrIGIvUENidWlsZC9yZWFkbWUudHh0CkBAIC0xLDQgKzEsNCBAQAotQnVpbGRpbmcgUHl0aG9uIHVzaW5nIFZDKysgOS4wCitCdWlsZGluZyBQeXRob24gdXNpbmcgVkMrKyAxMC4wCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogVGhpcyBkaXJlY3RvcnkgaXMgdXNlZCB0byBidWlsZCBQeXRob24gZm9yIFdpbjMyIGFuZCB4NjQgcGxhdGZvcm1zLCBlLmcuIApAQCAtMzcsNyArMzcsNyBAQAogICAgcnVubmluZyBhIFB5dGhvbiBjb3JlIGJ1aWxkYm90IHRlc3Qgc2xhdmU7IHNlZSBTVUJQUk9KRUNUUyBiZWxvdykKIAogV2hlbiB1c2luZyB0aGUgRGVidWcgc2V0dGluZywgdGhlIG91dHB1dCBmaWxlcyBoYXZlIGEgX2QgYWRkZWQgdG8KLXRoZWlyIG5hbWU6ICBweXRob24zMl9kLmRsbCwgcHl0aG9uX2QuZXhlLCBwYXJzZXJfZC5weWQsIGFuZCBzbyBvbi4gQm90aAordGhlaXIgbmFtZTogIHB5dGhvbjMzX2QuZGxsLCBweXRob25fZC5leGUsIHBhcnNlcl9kLnB5ZCwgYW5kIHNvIG9uLiBCb3RoCiB0aGUgYnVpbGQgYW5kIHJ0IGJhdGNoIGZpbGVzIGFjY2VwdCBhIC1kIG9wdGlvbiBmb3IgZGVidWcgYnVpbGRzLgogCiBUaGUgMzJiaXQgYnVpbGRzIGVuZCB1cCBpbiB0aGUgc29sdXRpb24gZm9sZGVyIFBDYnVpbGQgd2hpbGUgdGhlIHg2NCBidWlsZHMKQEAgLTYyLDE3ICs2MiwxMSBAQAogQyBSVU5USU1FCiAtLS0tLS0tLS0KIAotVmlzdWFsIFN0dWRpbyAyMDA4IHVzZXMgdmVyc2lvbiA5IG9mIHRoZSBDIHJ1bnRpbWUgKE1TVkNSVDkpLiAgVGhlIGV4ZWN1dGFibGVzCi1hcmUgbGlua2VkIHRvIGEgQ1JUICJzaWRlIGJ5IHNpZGUiIGFzc2VtYmx5IHdoaWNoIG11c3QgYmUgcHJlc2VudCBvbiB0aGUgdGFyZ2V0Ci1tYWNoaW5lLiAgVGhpcyBpcyBhdmFsaWJsZSB1bmRlciB0aGUgVkMvUmVkaXN0IGZvbGRlciBvZiB5b3VyIHZpc3VhbCBzdHVkaW8KLWRpc3RyaWJ1dGlvbi4gT24gWFAgYW5kIGxhdGVyIG9wZXJhdGluZyBzeXN0ZW1zIHRoYXQgc3VwcG9ydAotc2lkZS1ieS1zaWRlIGFzc2VtYmxpZXMgaXQgaXMgbm90IGVub3VnaCB0byBoYXZlIHRoZSBtc3ZjcnQ5MC5kbGwgcHJlc2VudCwKLWl0IGhhcyB0byBiZSB0aGVyZSBhcyBhIHdob2xlIGFzc2VtYmx5LCB0aGF0IGlzLCBhIGZvbGRlciB3aXRoIHRoZSAuZGxsCi1hbmQgYSAubWFuaWZlc3QuICBBbHNvLCBhIGNoZWNrIGlzIG1hZGUgZm9yIHRoZSBjb3JyZWN0IHZlcnNpb24uCi1UaGVyZWZvcmUsIG9uZSBzaG91bGQgZGlzdHJpYnV0ZSB0aGlzIGFzc2VtYmx5IHdpdGggdGhlIGRsbHMsIGFuZCBrZWVwCi1pdCBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuICBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHN5c3RlbXMsIG9uZSBzaG91bGQKLWFsc28gc2V0IHRoZSBQQVRIIHRvIHRoaXMgZGlyZWN0b3J5IHNvIHRoYXQgdGhlIGRsbCBjYW4gYmUgZm91bmQuCi1Gb3IgbW9yZSBpbmZvLCBzZWUgdGhlIFJlYWRtZSBpbiB0aGUgVkMvUmVkaXN0IGZvbGRlci4KK1Zpc3VhbCBTdHVkaW8gMjAxMCB1c2VzIHZlcnNpb24gMTAgb2YgdGhlIEMgcnVudGltZSAoTVNWQ1JUOSkuICBUaGUgZXhlY3V0YWJsZXMKK25vIGxvbmdlciB1c2UgdGhlICJTaWRlIGJ5IFNpZGUiIGFzc2VtYmxpZXMgdXNlZCBpbiBwcmV2aW91cyB2ZXJzaW9ucyBvZiB0aGUKK2NvbXBpbGVyLiAgVGhpcyBzaW1wbGlmaWVzIGRpc3RyaWJ1dGlvbiBvZiBhcHBsaWNhdGlvbnMuCitUaGUgcnVuIHRpbWUgbGlicmFyaWVzIGFyZSBhdmFsaWJsZSB1bmRlciB0aGUgVkMvUmVkaXN0IGZvbGRlciBvZiB5b3VyIHZpc3VhbCBzdHVkaW8KK2Rpc3RyaWJ1dGlvbi4gRm9yIG1vcmUgaW5mbywgc2VlIHRoZSBSZWFkbWUgaW4gdGhlIFZDL1JlZGlzdCBmb2xkZXIuCiAKIFNVQlBST0pFQ1RTCiAtLS0tLS0tLS0tLQpAQCAtOTIsNiArODYsOSBAQAogX3Rlc3RjYXBpCiAgICAgdGVzdHMgb2YgdGhlIFB5dGhvbiBDIEFQSSwgcnVuIHZpYSBMaWIvdGVzdC90ZXN0X2NhcGkucHksIGFuZAogICAgIGltcGxlbWVudGVkIGJ5IG1vZHVsZSBNb2R1bGVzL190ZXN0Y2FwaW1vZHVsZS5jCitfdGVzdGJ1ZmZlcgorICAgIGJ1ZmZlciBwcm90b2NvbCB0ZXN0cywgcnVuIHZpYSBMaWIvdGVzdC90ZXN0X2J1ZmZlci5weSwgYW5kCisgICAgaW1wbGVtZW50ZWQgYnkgbW9kdWxlIE1vZHVsZXMvX3Rlc3RidWZmZXIuYwogcHlleHBhdAogICAgIFB5dGhvbiB3cmFwcGVyIGZvciBhY2NlbGVyYXRlZCBYTUwgcGFyc2luZywgd2hpY2ggaW5jb3Jwb3JhdGVzIHN0YWJsZQogICAgIGNvZGUgZnJvbSB0aGUgRXhwYXQgcHJvamVjdDogIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcHJvamVjdHMvZXhwYXQvCkBAIC0xMTIsOSArMTA5LDkgQEAKICAgICBwcmUtYnVpbHQgVGNsL1RrIGluIGVpdGhlciAuLlwuLlx0Y2x0ayBmb3IgMzItYml0IG9yIC4uXC4uXHRjbHRrNjQgZm9yCiAgICAgNjQtYml0IChyZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeSkuICBTZWUgYmVsb3cgZm9yIGluc3RydWN0aW9ucyB0byBidWlsZAogICAgIFRjbC9Uay4gCi1iejIKLSAgICBQeXRob24gd3JhcHBlciBmb3IgdGhlIGxpYmJ6MiBjb21wcmVzc2lvbiBsaWJyYXJ5LiAgSG9tZXBhZ2UKLSAgICAgICAgaHR0cDovL3NvdXJjZXMucmVkaGF0LmNvbS9iemlwMi8KK19iejIKKyAgICBQeXRob24gd3JhcHBlciBmb3IgdGhlIGxpYmJ6aXAyIGNvbXByZXNzaW9uIGxpYnJhcnkuICBIb21lcGFnZQorICAgICAgICBodHRwOi8vd3d3LmJ6aXAub3JnLwogICAgIERvd25sb2FkIHRoZSBzb3VyY2UgZnJvbSB0aGUgcHl0aG9uLm9yZyBjb3B5IGludG8gdGhlIGRpc3QKICAgICBkaXJlY3Rvcnk6CiAKQEAgLTEzMywxMyArMTMwLDE5IEBACiAKICAgICBBbGwgb2YgdGhpcyBtYW5hZ2VkIHRvIGJ1aWxkIGxpYmJ6Mi5saWIgaW4gCiAgICAgYnppcDItMS4wLjZcJHBsYXRmb3JtLSRjb25maWd1cmF0aW9uXCwgd2hpY2ggdGhlIFB5dGhvbiBwcm9qZWN0IGxpbmtzIGluLgorX2x6bWEKKyAgICBQeXRob24gd3JhcHBlciBmb3IgdGhlIGxpYmx6bWEgY29tcHJlc3Npb24gbGlicmFyeS4KKworICAgIERvd25sb2FkIHRoZSBwcmUtYnVpbHQgV2luZG93cyBiaW5hcmllcyBmcm9tIGh0dHA6Ly90dWthYW5pLm9yZy94ei8sIGFuZAorICAgIGV4dHJhY3QgdG8gLi5ceHotNS4wLjMuIElmIHlvdSBhcmUgdXNpbmcgYSBtb3JlIHJlY2VudCB2ZXJzaW9uIG9mIGxpYmx6bWEsCisgICAgaXQgd2lsbCBiZSBuZWNlc3NhcnkgdG8gcmVuYW1lIHRoZSBkaXJlY3RvcnkgZnJvbSB4ei08VkVSU0lPTj4gdG8geHotNS4wLjMuCiAKIF9zc2wKICAgICBQeXRob24gd3JhcHBlciBmb3IgdGhlIHNlY3VyZSBzb2NrZXRzIGxpYnJhcnkuCiAKICAgICBHZXQgdGhlIHNvdXJjZSBjb2RlIHRocm91Z2gKIAotICAgIHN2biBleHBvcnQgaHR0cDovL3N2bi5weXRob24ub3JnL3Byb2plY3RzL2V4dGVybmFsL29wZW5zc2wtMS4wLjBqCisgICAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvb3BlbnNzbC0xLjAuMWMKIAogICAgICoqIE5PVEU6IGlmIHlvdSB1c2UgdGhlIFRvb2xzXGJ1aWxkYm90XGV4dGVybmFsKC1hbWQ2NCkuYmF0IGFwcHJvYWNoIGZvcgogICAgIG9idGFpbmluZyBleHRlcm5hbCBzb3VyY2VzIHRoZW4geW91IGRvbid0IG5lZWQgdG8gbWFudWFsbHkgZ2V0IHRoZSBzb3VyY2UKZGlmZiAtLWdpdCBhL1BDYnVpbGQvcmVsZWFzZS5wcm9wcyBiL1BDYnVpbGQvcmVsZWFzZS5wcm9wcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hY2ZlM2U0Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9yZWxlYXNlLnByb3BzCkBAIC0wLDAgKzEsMTkgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiPgorICAgIDxQeURlYnVnRXh0IC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8UHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+TkRFQlVHOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxCdWlsZE1hY3JvIEluY2x1ZGU9IlB5RGVidWdFeHQiPgorICAgICAgPFZhbHVlPiQoUHlEZWJ1Z0V4dCk8L1ZhbHVlPgorICAgIDwvQnVpbGRNYWNybz4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9zZWxlY3QudmN4cHJvaiBiL1BDYnVpbGQvc2VsZWN0LnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE0OTIzYwotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvc2VsZWN0LnZjeHByb2oKQEAgLTAsMCArMSwyMzQgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsxOENBRTI4Qy1CNDU0LTQ2QzEtODdBMC00OTNEOTFEOTdGMDN9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT5zZWxlY3Q8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzb2NrMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPmxpYmM7JShJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXMpPC9JZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDExMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53c29jazMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz5saWJjOyUoSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzKTwvSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzb2NrMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPmxpYmM7JShJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXMpPC9JZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDExMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzb2NrMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPmxpYmM7JShJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXMpPC9JZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDExMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53c29jazMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz5saWJjOyUoSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzKTwvSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzb2NrMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPmxpYmM7JShJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXMpPC9JZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDExMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53c29jazMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz5saWJjOyUoSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzKTwvSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3NvY2szMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+bGliYzslKElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcyk8L0lnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHNlbGVjdG1vZHVsZS5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJweXRob25jb3JlLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+e2NmN2FjM2QxLWUyZGYtNDFkMi1iZWE2LTFlMjU1NmNkZWEyNn08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9zZWxlY3QudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC9zZWxlY3QudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1YTJmYzgKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3NlbGVjdC52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwxMyBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57OTgzNDYwNzctOTAwYy00YzdhLTg1MmYtYTIzNDcwZTM3YjQwfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHNlbGVjdG1vZHVsZS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvc3FsaXRlMy5wcm9wcyBiL1BDYnVpbGQvc3FsaXRlMy5wcm9wcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2VlMDJjCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9zcWxpdGUzLnByb3BzCkBAIC0wLDAgKzEsMTYgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChzcWxpdGUzRGlyKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlNRTElURV9BUEk9X19kZWNsc3BlYyhkbGxleHBvcnQpOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICAgIDxXYXJuaW5nTGV2ZWw+TGV2ZWwxPC9XYXJuaW5nTGV2ZWw+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3NxbGl0ZTMudmN4cHJvaiBiL1BDYnVpbGQvc3FsaXRlMy52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhZjAxMGQKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3NxbGl0ZTMudmN4cHJvagpAQCAtMCwwICsxLDI0MCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+e0ExQTI5NUU1LTQ2M0MtNDM3Ri04MUNBLTFGMzIzNjc2ODVEQX08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPnNxbGl0ZTM8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5wcm9wcyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25TZXR0aW5ncyI+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJzcWxpdGUzLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ic3FsaXRlMy5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ic3FsaXRlMy5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InNxbGl0ZTMucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJzcWxpdGUzLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InNxbGl0ZTMucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJzcWxpdGUzLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InNxbGl0ZTMucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8QWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4lKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpJChQcm9qZWN0TmFtZSlfZC5kbGw8L091dHB1dEZpbGU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKV9kLmRsbDwvT3V0cHV0RmlsZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKS5kbGw8L091dHB1dEZpbGU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxPdXRwdXRGaWxlPiQoT3V0RGlyKSQoUHJvamVjdE5hbWUpLmRsbDwvT3V0cHV0RmlsZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JChzcWxpdGUzRGlyKTslKEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXMpPC9BZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPE91dHB1dEZpbGU+JChPdXREaXIpJChQcm9qZWN0TmFtZSkuZGxsPC9PdXRwdXRGaWxlPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+JShBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzKTwvQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8T3V0cHV0RmlsZT4kKE91dERpcikkKFByb2plY3ROYW1lKS5kbGw8L091dHB1dEZpbGU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPiUoQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcyk8L0FkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9IiQoc3FsaXRlM0Rpcilcc3FsaXRlMy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChzcWxpdGUzRGlyKVxzcWxpdGUzZXh0LmgiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChzcWxpdGUzRGlyKVxzcWxpdGUzLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9ImtpbGxfcHl0aG9uLnZjeHByb2oiPgorICAgICAgPFByb2plY3Q+ezZkZTEwNzQ0LWUzOTYtNDBhNS1iNGUyLTFiNjlhYTdjOGQzMX08L1Byb2plY3Q+CisgICAgICA8UmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+ZmFsc2U8L1JlZmVyZW5jZU91dHB1dEFzc2VtYmx5PgorICAgIDwvUHJvamVjdFJlZmVyZW5jZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnRhcmdldHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uVGFyZ2V0cyI+CisgIDwvSW1wb3J0R3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC9zcWxpdGUzLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQvc3FsaXRlMy52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY2ODBjMQotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvc3FsaXRlMy52Y3hwcm9qLmZpbHRlcnMKQEAgLTAsMCArMSwyNCBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IkhlYWRlciBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57Y2U1YjY0OWQtYTZmNy00NDU5LTk0MjUtYzg4Mzc5NWQ3OWRmfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgICA8RmlsdGVyIEluY2x1ZGU9IlNvdXJjZSBGaWxlcyI+CisgICAgICA8VW5pcXVlSWRlbnRpZmllcj57MGU4NDJmZTItMTc2Yi00ZTgzLTlkMWYtMGFkMTNhODU5ZWZkfTwvVW5pcXVlSWRlbnRpZmllcj4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIkKHNxbGl0ZTNEaXIpXHNxbGl0ZTMuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChzcWxpdGUzRGlyKVxzcWxpdGUzZXh0LmgiPgorICAgICAgPEZpbHRlcj5IZWFkZXIgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKHNxbGl0ZTNEaXIpXHNxbGl0ZTMuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3NzbC52Y3hwcm9qIGIvUENidWlsZC9zc2wudmN4cHJvagpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MWZkNzgwCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC9zc2wudmN4cHJvagpAQCAtMCwwICsxLDIyMSBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+e0U1QjA0Q0MwLUVCNEMtNDJBQi1CNERDLTE4RUY5NUY4NjRCMH08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPnNzbDwvUm9vdE5hbWVzcGFjZT4KKyAgICA8S2V5d29yZD5NYWtlRmlsZVByb2o8L0tleXdvcmQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+TWFrZWZpbGU8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPk1ha2VmaWxlPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+TWFrZWZpbGU8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+TWFrZWZpbGU8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPk1ha2VmaWxlPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+TWFrZWZpbGU8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+TWFrZWZpbGU8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPk1ha2VmaWxlPC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8Tk1ha2VCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5jZCAiJChTb2x1dGlvbkRpcikiCisiJChQeXRob25FeGUpIiBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtKSAtYQorPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxOTWFrZUNsZWFuQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPE5NYWtlT3V0cHV0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE5NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9OTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDxOTWFrZUluY2x1ZGVTZWFyY2hQYXRoIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE5NYWtlSW5jbHVkZVNlYXJjaFBhdGgpPC9OTWFrZUluY2x1ZGVTZWFyY2hQYXRoPgorICAgIDxOTWFrZUZvcmNlZEluY2x1ZGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCk8L05NYWtlQXNzZW1ibHlTZWFyY2hQYXRoPgorICAgIDxOTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+JChOTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcyk8L05NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzPgorICAgIDxOTWFrZUJ1aWxkQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5jZCAiJChTb2x1dGlvbkRpcikiCisiJChQeXRob25FeGUpIiBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtKSAtYQorPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Tk1ha2VDbGVhbkNvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Tk1ha2VPdXRwdXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+JChOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvTk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8Tk1ha2VJbmNsdWRlU2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPiQoTk1ha2VJbmNsdWRlU2VhcmNoUGF0aCk8L05NYWtlSW5jbHVkZVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkSW5jbHVkZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPiQoTk1ha2VBc3NlbWJseVNlYXJjaFBhdGgpPC9OTWFrZUFzc2VtYmx5U2VhcmNoUGF0aD4KKyAgICA8Tk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj4kKE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzKTwvTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXM+CisgICAgPE5NYWtlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5jZCAiJChTb2x1dGlvbkRpcikiCisiJChQeXRob25FeGUpIiBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtKSAtYQorPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPE5NYWtlQ2xlYW5Db21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxOTWFrZU91dHB1dCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoTk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L05NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPE5NYWtlSW5jbHVkZVNlYXJjaFBhdGggQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+JChOTWFrZUluY2x1ZGVTZWFyY2hQYXRoKTwvTk1ha2VJbmNsdWRlU2VhcmNoUGF0aD4KKyAgICA8Tk1ha2VGb3JjZWRJbmNsdWRlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj4kKE5NYWtlQXNzZW1ibHlTZWFyY2hQYXRoKTwvTk1ha2VBc3NlbWJseVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPiQoTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXMpPC9OTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcz4KKyAgICA8Tk1ha2VCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5jZCAiJChTb2x1dGlvbkRpcikiCisiJChQeXRob25FeGUpIiBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtKSAtYQorPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxOTWFrZUNsZWFuQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgICAgPE5NYWtlT3V0cHV0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4kKE5NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9OTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDxOTWFrZUluY2x1ZGVTZWFyY2hQYXRoIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4kKE5NYWtlSW5jbHVkZVNlYXJjaFBhdGgpPC9OTWFrZUluY2x1ZGVTZWFyY2hQYXRoPgorICAgIDxOTWFrZUZvcmNlZEluY2x1ZGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+JChOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCk8L05NYWtlQXNzZW1ibHlTZWFyY2hQYXRoPgorICAgIDxOTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+JChOTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcyk8L05NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzPgorICAgIDxOTWFrZUJ1aWxkQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5jZCAiJChTb2x1dGlvbkRpcikiCisiJChQeXRob25FeGUpIiBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtKSAtYQorPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Tk1ha2VDbGVhbkNvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Tk1ha2VPdXRwdXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+JChOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvTk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8Tk1ha2VJbmNsdWRlU2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPiQoTk1ha2VJbmNsdWRlU2VhcmNoUGF0aCk8L05NYWtlSW5jbHVkZVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkSW5jbHVkZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPiQoTk1ha2VBc3NlbWJseVNlYXJjaFBhdGgpPC9OTWFrZUFzc2VtYmx5U2VhcmNoUGF0aD4KKyAgICA8Tk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4kKE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzKTwvTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXM+CisgICAgPE5NYWtlQnVpbGRDb21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5jZCAiJChTb2x1dGlvbkRpcikiCisiJChQeXRob25FeGUpIiBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtKSAtYQorPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPE5NYWtlQ2xlYW5Db21tYW5kTGluZSBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxOTWFrZU91dHB1dCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPiQoTk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L05NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM+CisgICAgPE5NYWtlSW5jbHVkZVNlYXJjaFBhdGggQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+JChOTWFrZUluY2x1ZGVTZWFyY2hQYXRoKTwvTk1ha2VJbmNsdWRlU2VhcmNoUGF0aD4KKyAgICA8Tk1ha2VGb3JjZWRJbmNsdWRlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4kKE5NYWtlQXNzZW1ibHlTZWFyY2hQYXRoKTwvTk1ha2VBc3NlbWJseVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPiQoTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXMpPC9OTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcz4KKyAgICA8Tk1ha2VCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5jZCAiJChTb2x1dGlvbkRpcikiCisiJChQeXRob25FeGUpIiBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtKSAtYQorPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxOTWFrZUNsZWFuQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPE5NYWtlT3V0cHV0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4kKE5NYWtlUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9OTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDxOTWFrZUluY2x1ZGVTZWFyY2hQYXRoIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4kKE5NYWtlSW5jbHVkZVNlYXJjaFBhdGgpPC9OTWFrZUluY2x1ZGVTZWFyY2hQYXRoPgorICAgIDxOTWFrZUZvcmNlZEluY2x1ZGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+JChOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCk8L05NYWtlQXNzZW1ibHlTZWFyY2hQYXRoPgorICAgIDxOTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyI+JChOTWFrZUZvcmNlZFVzaW5nQXNzZW1ibGllcyk8L05NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzPgorICAgIDxOTWFrZUJ1aWxkQ29tbWFuZExpbmUgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5jZCAiJChTb2x1dGlvbkRpcikiCisiJChQeXRob25FeGUpIiBidWlsZF9zc2wucHkgUmVsZWFzZSAkKFBsYXRmb3JtKSAtYQorPC9OTWFrZUJ1aWxkQ29tbWFuZExpbmU+CisgICAgPE5NYWtlUmVCdWlsZENvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Tk1ha2VDbGVhbkNvbW1hbmRMaW5lIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Tk1ha2VPdXRwdXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+JChOTWFrZVByZXByb2Nlc3NvckRlZmluaXRpb25zKTwvTk1ha2VQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8Tk1ha2VJbmNsdWRlU2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPiQoTk1ha2VJbmNsdWRlU2VhcmNoUGF0aCk8L05NYWtlSW5jbHVkZVNlYXJjaFBhdGg+CisgICAgPE5NYWtlRm9yY2VkSW5jbHVkZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4kKE5NYWtlRm9yY2VkSW5jbHVkZXMpPC9OTWFrZUZvcmNlZEluY2x1ZGVzPgorICAgIDxOTWFrZUFzc2VtYmx5U2VhcmNoUGF0aCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPiQoTk1ha2VBc3NlbWJseVNlYXJjaFBhdGgpPC9OTWFrZUFzc2VtYmx5U2VhcmNoUGF0aD4KKyAgICA8Tk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4kKE5NYWtlRm9yY2VkVXNpbmdBc3NlbWJsaWVzKTwvTk1ha2VGb3JjZWRVc2luZ0Fzc2VtYmxpZXM+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8UHJvamVjdFJlZmVyZW5jZSBJbmNsdWRlPSJweXRob24udmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57YjExZDc1MGYtY2QxZi00YTk2LTg1Y2UtZTY5YTVjNTI1OWY5fTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3VuaWNvZGVkYXRhLnZjeHByb2ogYi9QQ2J1aWxkL3VuaWNvZGVkYXRhLnZjeHByb2oKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzlkNTI3OAotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvdW5pY29kZWRhdGEudmN4cHJvagpAQCAtMCwwICsxLDIyMiBAQAor77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzxQcm9qZWN0IERlZmF1bHRUYXJnZXRzPSJCdWlsZCIgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwIExhYmVsPSJQcm9qZWN0Q29uZmlndXJhdGlvbnMiPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJEZWJ1Z3xXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPkRlYnVnPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fFdpbjMyIj4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHSW5zdHJ1bWVudDwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdJbnN0cnVtZW50fHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+eDY0PC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJQR1VwZGF0ZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8eDY0Ij4KKyAgICAgIDxDb25maWd1cmF0aW9uPlBHVXBkYXRlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPldpbjMyPC9QbGF0Zm9ybT4KKyAgICA8L1Byb2plY3RDb25maWd1cmF0aW9uPgorICAgIDxQcm9qZWN0Q29uZmlndXJhdGlvbiBJbmNsdWRlPSJSZWxlYXNlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5SZWxlYXNlPC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgPC9JdGVtR3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJHbG9iYWxzIj4KKyAgICA8UHJvamVjdEd1aWQ+e0VDQzdDRUFDLUE1RTUtNDU4RS1CQjlFLTI0MTNDQzg0Nzg4MX08L1Byb2plY3RHdWlkPgorICAgIDxSb290TmFtZXNwYWNlPnVuaWNvZGVkYXRhPC9Sb290TmFtZXNwYWNlPgorICAgIDxLZXl3b3JkPldpbjMyUHJvajwvS2V5d29yZD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAucHJvcHMiIC8+CisgIDxJbXBvcnRHcm91cCBMYWJlbD0iRXh0ZW5zaW9uU2V0dGluZ3MiPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZF9kLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iVXNlck1hY3JvcyIgLz4KKyAgPFByb3BlcnR5R3JvdXA+CisgICAgPF9Qcm9qZWN0RmlsZVZlcnNpb24+MTAuMC4zMDMxOS4xPC9fUHJvamVjdEZpbGVWZXJzaW9uPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPkFsbFJ1bGVzLnJ1bGVzZXQ8L0NvZGVBbmFseXNpc1J1bGVTZXQ+CisgICAgPENvZGVBbmFseXNpc1J1bGVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDEyMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDEyMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDEyMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDEyMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMjAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcdW5pY29kZWRhdGFfZGIuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcdW5pY29kZW5hbWVfZGIuaCIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHVuaWNvZGVkYXRhLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9InB5dGhvbmNvcmUudmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57Y2Y3YWMzZDEtZTJkZi00MWQyLWJlYTYtMWUyNTU2Y2RlYTI2fTwvUHJvamVjdD4KKyAgICAgIDxSZWZlcmVuY2VPdXRwdXRBc3NlbWJseT5mYWxzZTwvUmVmZXJlbmNlT3V0cHV0QXNzZW1ibHk+CisgICAgPC9Qcm9qZWN0UmVmZXJlbmNlPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3VuaWNvZGVkYXRhLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQvdW5pY29kZWRhdGEudmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwZTY0MGUKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3VuaWNvZGVkYXRhLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDI0IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iSGVhZGVyIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPntiOTM5YThmMS1jY2Q3LTQyMGEtOTc0YS0yNDM2MDZkY2NkNzR9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPntlMmMwNTViYi1lYzYyLTRiYmMtYWExYy1kODhkYTRkNGFkMWN9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcdW5pY29kZWRhdGFfZGIuaCI+CisgICAgICA8RmlsdGVyPkhlYWRlciBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x1bmljb2RlbmFtZV9kYi5oIj4KKyAgICAgIDxGaWx0ZXI+SGVhZGVyIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x1bmljb2RlZGF0YS5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvdnM5dG8xMC5weSBiL1BDYnVpbGQvdnM5dG8xMC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmY4MzJhCi0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC92czl0bzEwLnB5CkBAIC0wLDAgKzEsNTYgQEAKKyNSdW4gdGhpcyBmaWxlIGFmdGVyIGF1dG9tYXRpYyBjb252ZXJ0c2lvbiBvZiB0aGUgVmlzdWFsU3R1ZGlvIDIwMDggc29sdXRpb24gYnkgVmlzdWFsU3R1ZGlvIDIwMTAuCisjVGhpcyBjYW4gYmUgZG9uZSB3aGVuZXZlciB0aGUgMjAwOCBzb2x1dGlvbiBjaGFuZ2VzLgorI0l0IHdpbGwgbWFrZSB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgYW5kIHVwZGF0ZXMgdG8gdGhlIHZjeHByb2ogZmlsZXMKKyN0aGUgLnByb3BzIGZpbGVzIG5lZWQgdG8gYmUgbWFpbnRhaW5lZCBieSBoYW5kIGlmIHRoZSAudnNwcm9wcyBmaWxlcyBjaGFuZ2UKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRlbWVudAoraW1wb3J0IHN5cworaW1wb3J0IG9zCitpbXBvcnQgb3MucGF0aAorCitkZWYgdnM5dG8xMChzcmMsIGRlc3QpOgorICAgIGZvciBuYW1lIGluIG9zLmxpc3RkaXIoc3JjKToKKyAgICAgICAgcGF0aCwgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChuYW1lKQorICAgICAgICBpZiBleHQubG93ZXIoKSBub3QgaW4gKCcudmN4cHJvaicsKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbihzcmMsIG5hbWUpKQorICAgICAgICBkZXN0bmFtZSA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5qb2luKGRlc3QsIG5hbWUpKQorICAgICAgICBwcmludCgiJXMgLT4gJXMiICUgKGZpbGVuYW1lLCBkZXN0bmFtZSkpCisKKyAgICAgICAgbGluZXMgPSBbXQorICAgICAgICBsYXN0bGluZSA9IGIiIgorICAgICAgICBpbXBvcnRncm91cCA9IEZhbHNlCisgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgJ3JiJykgYXMgZmluOgorICAgICAgICAgICAgZm9yIGxpbmUgaW4gZmluOgorICAgICAgICAgICAgICAgICNyZW1vdmUgcmVkdW5kYW50IGxpbmtlciBvdXRwdXQgaW5mbworICAgICAgICAgICAgICAgIGlmIGIiPE91dHB1dExpbmU+IiBpbiBsaW5lOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIGIiPFByb2dyYW1EYXRhYmFzZUZpbGU+IiBpbiBsaW5lOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIGIiPEltcG9ydExpYnJhcnk+IiBpbiBsaW5lIGFuZCBiIjwvSW1wb3J0TGlicmFyeT4iIGluIGxpbmU6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICAjYWRkIG5ldyBwcm9wZXJ0eSBzaGVldCB0byB0aGUgcHl0aG9uY29yZQorICAgICAgICAgICAgICAgIGlmIGltcG9ydGdyb3VwIGFuZCAicHl0aG9uY29yZSIgaW4gbmFtZS5sb3dlcigpOgorICAgICAgICAgICAgICAgICAgICBpZiBiIjwvSW1wb3J0R3JvdXA+IiBpbiBsaW5lOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgYiJkZWJ1Zy5wcm9wcyIgaW4gbGFzdGxpbmU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGInICAgIDxJbXBvcnQgUHJvamVjdD0icHl0aG9uY29yZV9kLnByb3BzIiAvPlxyXG4nKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiBiInB5dGhvbmNvcmUiIG5vdCBpbiBsYXN0bGluZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoYicgICAgPEltcG9ydCBQcm9qZWN0PSJweXRob25jb3JlLnByb3BzIiAvPlxyXG4nKQorICAgICAgICAgICAgICAgIGlmIGIiPEltcG9ydEdyb3VwIENvbmRpdGlvbiIgaW4gbGluZToKKyAgICAgICAgICAgICAgICAgICAgaW1wb3J0Z3JvdXAgPSBUcnVlCisgICAgICAgICAgICAgICAgZWxpZiBiIjwvSW1wb3J0R3JvdXA+IiBpbiBsaW5lOgorICAgICAgICAgICAgICAgICAgICBpbXBvcnRncm91cCA9IEZhbHNlCisgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKGxpbmUpCisgICAgICAgICAgICAgICAgbGFzdGxpbmUgPSBsaW5lCisgICAgICAgIHdpdGggb3BlbihkZXN0bmFtZSwgJ3diJykgYXMgZm91dDoKKyAgICAgICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgorICAgICAgICAgICAgICAgIGZvdXQud3JpdGUobGluZSkKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBzcmMgPSAiLiIgaWYgbGVuKHN5cy5hcmd2KSA8IDIgZWxzZSBzeXMuYXJndlsxXQorICAgIG5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguYWJzcGF0aChzcmMpKQorICAgIGRlc3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHNyYywgIi4uIiwgbmFtZSArICJVcGQiKSkKKyAgICBvcy5tYWtlZGlycyhkZXN0KQorICAgIHZzOXRvMTAoc3JjLCBkZXN0KQpkaWZmIC0tZ2l0IGEvUENidWlsZC93OXhwb3Blbi52Y3hwcm9qIGIvUENidWlsZC93OXhwb3Blbi52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQxYWZlMjIKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3c5eHBvcGVuLnZjeHByb2oKQEAgLTAsMCArMSwyODcgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPntFOUUwQTFGNi0wMDA5LTRFOEMtQjhGOC0xQjhGNUQ0OUEwNTh9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT53OXhwb3BlbjwvUm9vdE5hbWVzcGFjZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC5EZWZhdWx0LnByb3BzIiAvPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+QXBwbGljYXRpb248L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxVc2VPZk1mYz5mYWxzZTwvVXNlT2ZNZmM+CisgICAgPENoYXJhY3RlclNldD5NdWx0aUJ5dGU8L0NoYXJhY3RlclNldD4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5BcHBsaWNhdGlvbjwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPFVzZU9mTWZjPmZhbHNlPC9Vc2VPZk1mYz4KKyAgICA8Q2hhcmFjdGVyU2V0Pk11bHRpQnl0ZTwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5cHJvamVjdC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InJlbGVhc2UucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ3VwZGF0ZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0iZGVidWcucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJyZWxlYXNlLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGdpbnN0cnVtZW50LnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlwcm9qZWN0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icmVsZWFzZS5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweXByb2plY3QucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJkZWJ1Zy5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuNDAyMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8T3B0aW1pemF0aW9uPkRpc2FibGVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8QmFzaWNSdW50aW1lQ2hlY2tzPkVuYWJsZUZhc3RDaGVja3M8L0Jhc2ljUnVudGltZUNoZWNrcz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkRGVidWc8L1J1bnRpbWVMaWJyYXJ5PgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+RGlzYWJsZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxCYXNpY1J1bnRpbWVDaGVja3M+RW5hYmxlRmFzdENoZWNrczwvQmFzaWNSdW50aW1lQ2hlY2tzPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWREZWJ1ZzwvUnVudGltZUxpYnJhcnk+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+ZmFsc2U8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxPcHRpbWl6YXRpb24+TWF4U3BlZWQ8L09wdGltaXphdGlvbj4KKyAgICAgIDxJbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj5Pbmx5RXhwbGljaXRJbmxpbmU8L0lubGluZUZ1bmN0aW9uRXhwYW5zaW9uPgorICAgICAgPFN0cmluZ1Bvb2xpbmc+dHJ1ZTwvU3RyaW5nUG9vbGluZz4KKyAgICAgIDxSdW50aW1lTGlicmFyeT5NdWx0aVRocmVhZGVkPC9SdW50aW1lTGlicmFyeT4KKyAgICAgIDxGdW5jdGlvbkxldmVsTGlua2luZz50cnVlPC9GdW5jdGlvbkxldmVsTGlua2luZz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxHZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+ZmFsc2U8L0dlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj4KKyAgICAgIDxTdWJTeXN0ZW0+Q29uc29sZTwvU3ViU3lzdGVtPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciPgorICAgIDxDbENvbXBpbGU+CisgICAgICA8T3B0aW1pemF0aW9uPk1heFNwZWVkPC9PcHRpbWl6YXRpb24+CisgICAgICA8SW5saW5lRnVuY3Rpb25FeHBhbnNpb24+T25seUV4cGxpY2l0SW5saW5lPC9JbmxpbmVGdW5jdGlvbkV4cGFuc2lvbj4KKyAgICAgIDxTdHJpbmdQb29saW5nPnRydWU8L1N0cmluZ1Bvb2xpbmc+CisgICAgICA8UnVudGltZUxpYnJhcnk+TXVsdGlUaHJlYWRlZDwvUnVudGltZUxpYnJhcnk+CisgICAgICA8RnVuY3Rpb25MZXZlbExpbmtpbmc+dHJ1ZTwvRnVuY3Rpb25MZXZlbExpbmtpbmc+CisgICAgPC9DbENvbXBpbGU+CisgICAgPExpbms+CisgICAgICA8R2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPmZhbHNlPC9HZW5lcmF0ZURlYnVnSW5mb3JtYXRpb24+CisgICAgICA8U3ViU3lzdGVtPkNvbnNvbGU8L1N1YlN5c3RlbT4KKyAgICAgIDxJbXBvcnRMaWJyYXJ5PgorICAgICAgPC9JbXBvcnRMaWJyYXJ5PgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj5mYWxzZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8SW1wb3J0TGlicmFyeT4KKyAgICAgIDwvSW1wb3J0TGlicmFyeT4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj5mYWxzZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8SW1wb3J0TGlicmFyeT4KKyAgICAgIDwvSW1wb3J0TGlicmFyeT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj4KKyAgICA8TWlkbD4KKyAgICAgIDxUYXJnZXRFbnZpcm9ubWVudD5YNjQ8L1RhcmdldEVudmlyb25tZW50PgorICAgIDwvTWlkbD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPE9wdGltaXphdGlvbj5NYXhTcGVlZDwvT3B0aW1pemF0aW9uPgorICAgICAgPElubGluZUZ1bmN0aW9uRXhwYW5zaW9uPk9ubHlFeHBsaWNpdElubGluZTwvSW5saW5lRnVuY3Rpb25FeHBhbnNpb24+CisgICAgICA8U3RyaW5nUG9vbGluZz50cnVlPC9TdHJpbmdQb29saW5nPgorICAgICAgPFJ1bnRpbWVMaWJyYXJ5Pk11bHRpVGhyZWFkZWQ8L1J1bnRpbWVMaWJyYXJ5PgorICAgICAgPEZ1bmN0aW9uTGV2ZWxMaW5raW5nPnRydWU8L0Z1bmN0aW9uTGV2ZWxMaW5raW5nPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEdlbmVyYXRlRGVidWdJbmZvcm1hdGlvbj5mYWxzZTwvR2VuZXJhdGVEZWJ1Z0luZm9ybWF0aW9uPgorICAgICAgPFN1YlN5c3RlbT5Db25zb2xlPC9TdWJTeXN0ZW0+CisgICAgICA8SW1wb3J0TGlicmFyeT4KKyAgICAgIDwvSW1wb3J0TGlicmFyeT4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1x3OXhwb3Blbi5jIiAvPgorICA8L0l0ZW1Hcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KKyAgPEltcG9ydEdyb3VwIExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KKyAgPC9JbXBvcnRHcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QQ2J1aWxkL3c5eHBvcGVuLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQvdzl4cG9wZW4udmN4cHJvai5maWx0ZXJzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRlYzY3YWQKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3c5eHBvcGVuLnZjeHByb2ouZmlsdGVycwpAQCAtMCwwICsxLDEzIEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgVG9vbHNWZXJzaW9uPSI0LjAiIHhtbG5zPSJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL2RldmVsb3Blci9tc2J1aWxkLzIwMDMiPgorICA8SXRlbUdyb3VwPgorICAgIDxGaWx0ZXIgSW5jbHVkZT0iU291cmNlIEZpbGVzIj4KKyAgICAgIDxVbmlxdWVJZGVudGlmaWVyPnthYmMyZGZmZC0zZjJhLTQ3YmQtYjg5Yi0wMzE0Yzk5ZWYyMWV9PC9VbmlxdWVJZGVudGlmaWVyPgorICAgIDwvRmlsdGVyPgorICA8L0l0ZW1Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXFBDXHc5eHBvcGVuLmMiPgorICAgICAgPEZpbHRlcj5Tb3VyY2UgRmlsZXM8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KKyAgPC9JdGVtR3JvdXA+Cis8L1Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvUENidWlsZC93aW5zb3VuZC52Y3hwcm9qIGIvUENidWlsZC93aW5zb3VuZC52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmNTE4ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3dpbnNvdW5kLnZjeHByb2oKQEAgLTAsMCArMSwyMTggQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPEl0ZW1Hcm91cCBMYWJlbD0iUHJvamVjdENvbmZpZ3VyYXRpb25zIj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iRGVidWd8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+RGVidWc8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IkRlYnVnfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5EZWJ1ZzwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPnsyOEI1RDc3Ny1EREYyLTRCNkItQjM0Ri0zMUQ5Mzg4MTM4NTZ9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT53aW5zb3VuZDwvUm9vdE5hbWVzcGFjZT4KKyAgICA8S2V5d29yZD5XaW4zMlByb2o8L0tleXdvcmQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEltcG9ydCBQcm9qZWN0PSIkKFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAuRGVmYXVsdC5wcm9wcyIgLz4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIExhYmVsPSJDb25maWd1cmF0aW9uIj4KKyAgICA8Q29uZmlndXJhdGlvblR5cGU+RHluYW1pY0xpYnJhcnk8L0NvbmZpZ3VyYXRpb25UeXBlPgorICAgIDxDaGFyYWN0ZXJTZXQ+Tm90U2V0PC9DaGFyYWN0ZXJTZXQ+CisgICAgPFdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj50cnVlPC9XaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkX2QucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0ieDY0LnByb3BzIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icGd1cGRhdGUucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWRfZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIC8+CisgIDxQcm9wZXJ0eUdyb3VwPgorICAgIDxfUHJvamVjdEZpbGVWZXJzaW9uPjEwLjAuMzAzMTkuMTwvX1Byb2plY3RGaWxlVmVyc2lvbj4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+QWxsUnVsZXMucnVsZXNldDwvQ29kZUFuYWx5c2lzUnVsZVNldD4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d2lubW0ubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53aW5tbS5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53aW5tbS5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d2lubW0ubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyI+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53aW5tbS5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53aW5tbS5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndpbm1tLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d2lubW0ubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8VGFyZ2V0TWFjaGluZT5NYWNoaW5lWDY0PC9UYXJnZXRNYWNoaW5lPgorICAgIDwvTGluaz4KKyAgPC9JdGVtRGVmaW5pdGlvbkdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cUENcd2luc291bmQuYyIgLz4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPFByb2plY3RSZWZlcmVuY2UgSW5jbHVkZT0icHl0aG9uY29yZS52Y3hwcm9qIj4KKyAgICAgIDxQcm9qZWN0PntjZjdhYzNkMS1lMmRmLTQxZDItYmVhNi0xZTI1NTZjZGVhMjZ9PC9Qcm9qZWN0PgorICAgICAgPFJlZmVyZW5jZU91dHB1dEFzc2VtYmx5PmZhbHNlPC9SZWZlcmVuY2VPdXRwdXRBc3NlbWJseT4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQvd2luc291bmQudmN4cHJvai5maWx0ZXJzIGIvUENidWlsZC93aW5zb3VuZC52Y3hwcm9qLmZpbHRlcnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2QwODkzMQotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQvd2luc291bmQudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsMTQgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+ezRGQzczN0YxLUM3QTUtNDM3Ni1BMDY2LTJBMzJENzUyQTJGRn08L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgICA8RXh0ZW5zaW9ucz5jcHA7YztjYztjeHg7ZGVmO29kbDtpZGw7aHBqO2JhdDthc207YXNteDwvRXh0ZW5zaW9ucz4KKyAgICA8L0ZpbHRlcj4KKyAgPC9JdGVtR3JvdXA+CisgIDxJdGVtR3JvdXA+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxQQ1x3aW5zb3VuZC5jIj4KKyAgICAgIDxGaWx0ZXI+U291cmNlIEZpbGVzPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CisgIDwvSXRlbUdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQveDY0LnByb3BzIGIvUENidWlsZC94NjQucHJvcHMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjg5ZDk1YgotLS0gL2Rldi9udWxsCisrKyBiL1BDYnVpbGQveDY0LnByb3BzCkBAIC0wLDAgKzEsMjAgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBEZWZhdWx0VGFyZ2V0cz0iQnVpbGQiIFRvb2xzVmVyc2lvbj0iNC4wIiB4bWxucz0iaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9kZXZlbG9wZXIvbXNidWlsZC8yMDAzIj4KKyAgPFByb3BlcnR5R3JvdXAgTGFiZWw9IlVzZXJNYWNyb3MiIENvbmRpdGlvbj0iJyQoSE9TVF9QWVRIT04pJyE9JyciPgorICAgIDxQeXRob25FeGU+JChIT1NUX1BZVEhPTik8L1B5dGhvbkV4ZT4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8SXRlbURlZmluaXRpb25Hcm91cD4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPEFkZGl0aW9uYWxPcHRpb25zPi9VU0VDTDpNU19PUFRFUk9OIC9HUy0gJShBZGRpdGlvbmFsT3B0aW9ucyk8L0FkZGl0aW9uYWxPcHRpb25zPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPl9XSU42NDtfTV9YNjQ7JShQcmVwcm9jZXNzb3JEZWZpbml0aW9ucyk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8QnVpbGRNYWNybyBJbmNsdWRlPSJQeXRob25FeGUiPgorICAgICAgPFZhbHVlPiQoUHl0aG9uRXhlKTwvVmFsdWU+CisgICAgPC9CdWlsZE1hY3JvPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1BDYnVpbGQveHhsaW1pdGVkLnZjeHByb2ogYi9QQ2J1aWxkL3h4bGltaXRlZC52Y3hwcm9qCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2YmMyMGQKLS0tIC9kZXYvbnVsbAorKysgYi9QQ2J1aWxkL3h4bGltaXRlZC52Y3hwcm9qCkBAIC0wLDAgKzEsMTk0IEBACivvu788P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPFByb2plY3QgRGVmYXVsdFRhcmdldHM9IkJ1aWxkIiBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXAgTGFiZWw9IlByb2plY3RDb25maWd1cmF0aW9ucyI+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHxXaW4zMiI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR0luc3RydW1lbnQ8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHSW5zdHJ1bWVudHx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdJbnN0cnVtZW50PC9Db25maWd1cmF0aW9uPgorICAgICAgPFBsYXRmb3JtPng2NDwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUEdVcGRhdGV8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UEdVcGRhdGU8L0NvbmZpZ3VyYXRpb24+CisgICAgICA8UGxhdGZvcm0+V2luMzI8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlBHVXBkYXRlfHg2NCI+CisgICAgICA8Q29uZmlndXJhdGlvbj5QR1VwZGF0ZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgICAgPFByb2plY3RDb25maWd1cmF0aW9uIEluY2x1ZGU9IlJlbGVhc2V8V2luMzIiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT5XaW4zMjwvUGxhdGZvcm0+CisgICAgPC9Qcm9qZWN0Q29uZmlndXJhdGlvbj4KKyAgICA8UHJvamVjdENvbmZpZ3VyYXRpb24gSW5jbHVkZT0iUmVsZWFzZXx4NjQiPgorICAgICAgPENvbmZpZ3VyYXRpb24+UmVsZWFzZTwvQ29uZmlndXJhdGlvbj4KKyAgICAgIDxQbGF0Zm9ybT54NjQ8L1BsYXRmb3JtPgorICAgIDwvUHJvamVjdENvbmZpZ3VyYXRpb24+CisgIDwvSXRlbUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBMYWJlbD0iR2xvYmFscyI+CisgICAgPFByb2plY3RHdWlkPntGNzQ5QjgyMi1CNDg5LTRDQTUtQTNBRC1DRTA3OEY1RjMzOEF9PC9Qcm9qZWN0R3VpZD4KKyAgICA8Um9vdE5hbWVzcGFjZT54eGxpbWl0ZWQ8L1Jvb3ROYW1lc3BhY2U+CisgICAgPEtleXdvcmQ+V2luMzJQcm9qPC9LZXl3b3JkPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLkRlZmF1bHQucHJvcHMiIC8+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgTGFiZWw9IkNvbmZpZ3VyYXRpb24iPgorICAgIDxDb25maWd1cmF0aW9uVHlwZT5EeW5hbWljTGlicmFyeTwvQ29uZmlndXJhdGlvblR5cGU+CisgICAgPENoYXJhY3RlclNldD5Ob3RTZXQ8L0NoYXJhY3RlclNldD4KKyAgICA8V2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPnRydWU8L1dob2xlUHJvZ3JhbU9wdGltaXphdGlvbj4KKyAgPC9Qcm9wZXJ0eUdyb3VwPgorICA8UHJvcGVydHlHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIiBMYWJlbD0iQ29uZmlndXJhdGlvbiI+CisgICAgPENvbmZpZ3VyYXRpb25UeXBlPkR5bmFtaWNMaWJyYXJ5PC9Db25maWd1cmF0aW9uVHlwZT4KKyAgICA8Q2hhcmFjdGVyU2V0Pk5vdFNldDwvQ2hhcmFjdGVyU2V0PgorICAgIDxXaG9sZVByb2dyYW1PcHRpbWl6YXRpb24+dHJ1ZTwvV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9uPgorICA8L1Byb3BlcnR5R3JvdXA+CisgIDxJbXBvcnQgUHJvamVjdD0iJChWQ1RhcmdldHNQYXRoKVxNaWNyb3NvZnQuQ3BwLnByb3BzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblNldHRpbmdzIj4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBnaW5zdHJ1bWVudC5wcm9wcyIgLz4KKyAgPC9JbXBvcnRHcm91cD4KKyAgPEltcG9ydEdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciIExhYmVsPSJQcm9wZXJ0eVNoZWV0cyI+CisgICAgPEltcG9ydCBQcm9qZWN0PSIkKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMiIENvbmRpdGlvbj0iZXhpc3RzKCckKFVzZXJSb290RGlyKVxNaWNyb3NvZnQuQ3BwLiQoUGxhdGZvcm0pLnVzZXIucHJvcHMnKSIgTGFiZWw9IkxvY2FsQXBwRGF0YVBsYXRmb3JtIiAvPgorICAgIDxJbXBvcnQgUHJvamVjdD0icHlkLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIiBMYWJlbD0iUHJvcGVydHlTaGVldHMiPgorICAgIDxJbXBvcnQgUHJvamVjdD0iJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzIiBDb25kaXRpb249ImV4aXN0cygnJChVc2VyUm9vdERpcilcTWljcm9zb2Z0LkNwcC4kKFBsYXRmb3JtKS51c2VyLnByb3BzJykiIExhYmVsPSJMb2NhbEFwcERhdGFQbGF0Zm9ybSIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InB5ZC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9Ing2NC5wcm9wcyIgLz4KKyAgICA8SW1wb3J0IFByb2plY3Q9InBndXBkYXRlLnByb3BzIiAvPgorICA8L0ltcG9ydEdyb3VwPgorICA8SW1wb3J0R3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJwZ2luc3RydW1lbnQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxJbXBvcnRHcm91cCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgTGFiZWw9IlByb3BlcnR5U2hlZXRzIj4KKyAgICA8SW1wb3J0IFByb2plY3Q9IiQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcyIgQ29uZGl0aW9uPSJleGlzdHMoJyQoVXNlclJvb3REaXIpXE1pY3Jvc29mdC5DcHAuJChQbGF0Zm9ybSkudXNlci5wcm9wcycpIiBMYWJlbD0iTG9jYWxBcHBEYXRhUGxhdGZvcm0iIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJweWQucHJvcHMiIC8+CisgICAgPEltcG9ydCBQcm9qZWN0PSJ4NjQucHJvcHMiIC8+CisgIDwvSW1wb3J0R3JvdXA+CisgIDxQcm9wZXJ0eUdyb3VwIExhYmVsPSJVc2VyTWFjcm9zIiAvPgorICA8UHJvcGVydHlHcm91cD4KKyAgICA8X1Byb2plY3RGaWxlVmVyc2lvbj4xMC4wLjMwMzE5LjE8L19Qcm9qZWN0RmlsZVZlcnNpb24+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHSW5zdHJ1bWVudHx4NjQnIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfFdpbjMyJyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXxXaW4zMiciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVTZXQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR1VwZGF0ZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1BHVXBkYXRlfHg2NCciIC8+CisgICAgPENvZGVBbmFseXNpc1J1bGVBc3NlbWJsaWVzIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZVNldCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlQXNzZW1ibGllcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIiAvPgorICAgIDxDb2RlQW5hbHlzaXNSdWxlU2V0IENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj5BbGxSdWxlcy5ydWxlc2V0PC9Db2RlQW5hbHlzaXNSdWxlU2V0PgorICAgIDxDb2RlQW5hbHlzaXNSdWxlcyBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyIgLz4KKyAgICA8Q29kZUFuYWx5c2lzUnVsZUFzc2VtYmxpZXMgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciIC8+CisgIDwvUHJvcGVydHlHcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+CisgICAgPENsQ29tcGlsZT4KKyAgICAgIDxQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz5OREVCVUc7X1dJTjMyO19XSU5ETEw7UHlfTElNSVRFRF9BUEk8L1ByZXByb2Nlc3NvckRlZmluaXRpb25zPgorICAgIDwvQ2xDb21waWxlPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3NvY2szMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+bGliYzslKElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcyk8L0lnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3NvY2szMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+bGliYzslKElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcyk8L0lnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1EZWZpbml0aW9uR3JvdXAgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQR0luc3RydW1lbnR8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlB5X0xJTUlURURfQVBJOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzb2NrMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPmxpYmM7JShJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXMpPC9JZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDExMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdJbnN0cnVtZW50fHg2NCciPgorICAgIDxNaWRsPgorICAgICAgPFRhcmdldEVudmlyb25tZW50Plg2NDwvVGFyZ2V0RW52aXJvbm1lbnQ+CisgICAgPC9NaWRsPgorICAgIDxMaW5rPgorICAgICAgPEFkZGl0aW9uYWxEZXBlbmRlbmNpZXM+d3NvY2szMi5saWI7JShBZGRpdGlvbmFsRGVwZW5kZW5jaWVzKTwvQWRkaXRpb25hbERlcGVuZGVuY2llcz4KKyAgICAgIDxJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+bGliYzslKElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcyk8L0lnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz4KKyAgICAgIDxCYXNlQWRkcmVzcz4weDFEMTEwMDAwPC9CYXNlQWRkcmVzcz4KKyAgICAgIDxUYXJnZXRNYWNoaW5lPk1hY2hpbmVYNjQ8L1RhcmdldE1hY2hpbmU+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8V2luMzInIj4KKyAgICA8Q2xDb21waWxlPgorICAgICAgPFByZXByb2Nlc3NvckRlZmluaXRpb25zPlB5X0xJTUlURURfQVBJOyUoUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnMpPC9QcmVwcm9jZXNzb3JEZWZpbml0aW9ucz4KKyAgICA8L0NsQ29tcGlsZT4KKyAgICA8TGluaz4KKyAgICAgIDxBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPndzb2NrMzIubGliOyUoQWRkaXRpb25hbERlcGVuZGVuY2llcyk8L0FkZGl0aW9uYWxEZXBlbmRlbmNpZXM+CisgICAgICA8SWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPmxpYmM7JShJZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXMpPC9JZ25vcmVTcGVjaWZpY0RlZmF1bHRMaWJyYXJpZXM+CisgICAgICA8QmFzZUFkZHJlc3M+MHgxRDExMDAwMDwvQmFzZUFkZHJlc3M+CisgICAgPC9MaW5rPgorICA8L0l0ZW1EZWZpbml0aW9uR3JvdXA+CisgIDxJdGVtRGVmaW5pdGlvbkdyb3VwIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUEdVcGRhdGV8eDY0JyI+CisgICAgPE1pZGw+CisgICAgICA8VGFyZ2V0RW52aXJvbm1lbnQ+WDY0PC9UYXJnZXRFbnZpcm9ubWVudD4KKyAgICA8L01pZGw+CisgICAgPExpbms+CisgICAgICA8QWRkaXRpb25hbERlcGVuZGVuY2llcz53c29jazMyLmxpYjslKEFkZGl0aW9uYWxEZXBlbmRlbmNpZXMpPC9BZGRpdGlvbmFsRGVwZW5kZW5jaWVzPgorICAgICAgPElnbm9yZVNwZWNpZmljRGVmYXVsdExpYnJhcmllcz5saWJjOyUoSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzKTwvSWdub3JlU3BlY2lmaWNEZWZhdWx0TGlicmFyaWVzPgorICAgICAgPEJhc2VBZGRyZXNzPjB4MUQxMTAwMDA8L0Jhc2VBZGRyZXNzPgorICAgICAgPFRhcmdldE1hY2hpbmU+TWFjaGluZVg2NDwvVGFyZ2V0TWFjaGluZT4KKyAgICA8L0xpbms+CisgIDwvSXRlbURlZmluaXRpb25Hcm91cD4KKyAgPEl0ZW1Hcm91cD4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXE1vZHVsZXNceHhsaW1pdGVkLmMiIC8+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxQcm9qZWN0UmVmZXJlbmNlIEluY2x1ZGU9InB5dGhvbmNvcmUudmN4cHJvaiI+CisgICAgICA8UHJvamVjdD57Y2Y3YWMzZDEtZTJkZi00MWQyLWJlYTYtMWUyNTU2Y2RlYTI2fTwvUHJvamVjdD4KKyAgICA8L1Byb2plY3RSZWZlcmVuY2U+CisgIDwvSXRlbUdyb3VwPgorICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0LkNwcC50YXJnZXRzIiAvPgorICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMiPgorICA8L0ltcG9ydEdyb3VwPgorPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1BDYnVpbGQveHhsaW1pdGVkLnZjeHByb2ouZmlsdGVycyBiL1BDYnVpbGQveHhsaW1pdGVkLnZjeHByb2ouZmlsdGVycwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMWRiNDY4Ci0tLSAvZGV2L251bGwKKysrIGIvUENidWlsZC94eGxpbWl0ZWQudmN4cHJvai5maWx0ZXJzCkBAIC0wLDAgKzEsMTMgQEAKK++7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+Cis8UHJvamVjdCBUb29sc1ZlcnNpb249IjQuMCIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vZGV2ZWxvcGVyL21zYnVpbGQvMjAwMyI+CisgIDxJdGVtR3JvdXA+CisgICAgPEZpbHRlciBJbmNsdWRlPSJTb3VyY2UgRmlsZXMiPgorICAgICAgPFVuaXF1ZUlkZW50aWZpZXI+e2ViNWVlYmM3LTM3ODctNGY4Zi1iMjgyLTIwNGRiMjk2MmNjM308L1VuaXF1ZUlkZW50aWZpZXI+CisgICAgPC9GaWx0ZXI+CisgIDwvSXRlbUdyb3VwPgorICA8SXRlbUdyb3VwPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x4eGxpbWl0ZWQuYyI+CisgICAgICA8RmlsdGVyPlNvdXJjZSBGaWxlczwvRmlsdGVyPgorICAgIDwvQ2xDb21waWxlPgorICA8L0l0ZW1Hcm91cD4KKzwvUHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9QYXJzZXIvUHl0aG9uLmFzZGwgYi9QYXJzZXIvUHl0aG9uLmFzZGwKaW5kZXggOTQwN2IyZi4uNmIwNmRlYyAxMDA2NDQKLS0tIGEvUGFyc2VyL1B5dGhvbi5hc2RsCisrKyBiL1BhcnNlci9QeXRob24uYXNkbApAQCAtMSwxMTkgKzEsMTIwIEBACi0tLSBBU0RMJ3MgZm91ciBidWlsdGluIHR5cGVzIGFyZSBpZGVudGlmaWVyLCBpbnQsIHN0cmluZywgb2JqZWN0CistLSBBU0RMJ3MgZml2ZSBidWlsdGluIHR5cGVzIGFyZSBpZGVudGlmaWVyLCBpbnQsIHN0cmluZywgYnl0ZXMsIG9iamVjdAogCi1tb2R1bGUgUHl0aG9uIHZlcnNpb24gIiRSZXZpc2lvbiQiCittb2R1bGUgUHl0aG9uCiB7Ci0JbW9kID0gTW9kdWxlKHN0bXQqIGJvZHkpCi0JICAgIHwgSW50ZXJhY3RpdmUoc3RtdCogYm9keSkKLQkgICAgfCBFeHByZXNzaW9uKGV4cHIgYm9keSkKKyAgICBtb2QgPSBNb2R1bGUoc3RtdCogYm9keSkKKyAgICAgICAgfCBJbnRlcmFjdGl2ZShzdG10KiBib2R5KQorICAgICAgICB8IEV4cHJlc3Npb24oZXhwciBib2R5KQogCi0JICAgIC0tIG5vdCByZWFsbHkgYW4gYWN0dWFsIG5vZGUgYnV0IHVzZWZ1bCBpbiBKeXRob24ncyB0eXBlc3lzdGVtLgotCSAgICB8IFN1aXRlKHN0bXQqIGJvZHkpCisgICAgICAgIC0tIG5vdCByZWFsbHkgYW4gYWN0dWFsIG5vZGUgYnV0IHVzZWZ1bCBpbiBKeXRob24ncyB0eXBlc3lzdGVtLgorICAgICAgICB8IFN1aXRlKHN0bXQqIGJvZHkpCiAKLQlzdG10ID0gRnVuY3Rpb25EZWYoaWRlbnRpZmllciBuYW1lLCBhcmd1bWVudHMgYXJncywgCisgICAgc3RtdCA9IEZ1bmN0aW9uRGVmKGlkZW50aWZpZXIgbmFtZSwgYXJndW1lbnRzIGFyZ3MsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RtdCogYm9keSwgZXhwciogZGVjb3JhdG9yX2xpc3QsIGV4cHI/IHJldHVybnMpCi0JICAgICAgfCBDbGFzc0RlZihpZGVudGlmaWVyIG5hbWUsIAotCQkJIGV4cHIqIGJhc2VzLAotCQkJIGtleXdvcmQqIGtleXdvcmRzLAotCQkJIGV4cHI/IHN0YXJhcmdzLAotCQkJIGV4cHI/IGt3YXJncywKLQkJCSBzdG10KiBib2R5LAotCQkJIGV4cHIqIGRlY29yYXRvcl9saXN0KQotCSAgICAgIHwgUmV0dXJuKGV4cHI/IHZhbHVlKQorICAgICAgICAgIHwgQ2xhc3NEZWYoaWRlbnRpZmllciBuYW1lLCAKKyAgICAgICAgICAgICBleHByKiBiYXNlcywKKyAgICAgICAgICAgICBrZXl3b3JkKiBrZXl3b3JkcywKKyAgICAgICAgICAgICBleHByPyBzdGFyYXJncywKKyAgICAgICAgICAgICBleHByPyBrd2FyZ3MsCisgICAgICAgICAgICAgc3RtdCogYm9keSwKKyAgICAgICAgICAgICBleHByKiBkZWNvcmF0b3JfbGlzdCkKKyAgICAgICAgICB8IFJldHVybihleHByPyB2YWx1ZSkKIAotCSAgICAgIHwgRGVsZXRlKGV4cHIqIHRhcmdldHMpCi0JICAgICAgfCBBc3NpZ24oZXhwciogdGFyZ2V0cywgZXhwciB2YWx1ZSkKLQkgICAgICB8IEF1Z0Fzc2lnbihleHByIHRhcmdldCwgb3BlcmF0b3Igb3AsIGV4cHIgdmFsdWUpCisgICAgICAgICAgfCBEZWxldGUoZXhwciogdGFyZ2V0cykKKyAgICAgICAgICB8IEFzc2lnbihleHByKiB0YXJnZXRzLCBleHByIHZhbHVlKQorICAgICAgICAgIHwgQXVnQXNzaWduKGV4cHIgdGFyZ2V0LCBvcGVyYXRvciBvcCwgZXhwciB2YWx1ZSkKIAotCSAgICAgIC0tIHVzZSAnb3JlbHNlJyBiZWNhdXNlIGVsc2UgaXMgYSBrZXl3b3JkIGluIHRhcmdldCBsYW5ndWFnZXMKLQkgICAgICB8IEZvcihleHByIHRhcmdldCwgZXhwciBpdGVyLCBzdG10KiBib2R5LCBzdG10KiBvcmVsc2UpCi0JICAgICAgfCBXaGlsZShleHByIHRlc3QsIHN0bXQqIGJvZHksIHN0bXQqIG9yZWxzZSkKLQkgICAgICB8IElmKGV4cHIgdGVzdCwgc3RtdCogYm9keSwgc3RtdCogb3JlbHNlKQotCSAgICAgIHwgV2l0aChleHByIGNvbnRleHRfZXhwciwgZXhwcj8gb3B0aW9uYWxfdmFycywgc3RtdCogYm9keSkKKyAgICAgICAgICAtLSB1c2UgJ29yZWxzZScgYmVjYXVzZSBlbHNlIGlzIGEga2V5d29yZCBpbiB0YXJnZXQgbGFuZ3VhZ2VzCisgICAgICAgICAgfCBGb3IoZXhwciB0YXJnZXQsIGV4cHIgaXRlciwgc3RtdCogYm9keSwgc3RtdCogb3JlbHNlKQorICAgICAgICAgIHwgV2hpbGUoZXhwciB0ZXN0LCBzdG10KiBib2R5LCBzdG10KiBvcmVsc2UpCisgICAgICAgICAgfCBJZihleHByIHRlc3QsIHN0bXQqIGJvZHksIHN0bXQqIG9yZWxzZSkKKyAgICAgICAgICB8IFdpdGgod2l0aGl0ZW0qIGl0ZW1zLCBzdG10KiBib2R5KQogCi0JICAgICAgfCBSYWlzZShleHByPyBleGMsIGV4cHI/IGNhdXNlKQotCSAgICAgIHwgVHJ5RXhjZXB0KHN0bXQqIGJvZHksIGV4Y2VwdGhhbmRsZXIqIGhhbmRsZXJzLCBzdG10KiBvcmVsc2UpCi0JICAgICAgfCBUcnlGaW5hbGx5KHN0bXQqIGJvZHksIHN0bXQqIGZpbmFsYm9keSkKLQkgICAgICB8IEFzc2VydChleHByIHRlc3QsIGV4cHI/IG1zZykKKyAgICAgICAgICB8IFJhaXNlKGV4cHI/IGV4YywgZXhwcj8gY2F1c2UpCisgICAgICAgICAgfCBUcnkoc3RtdCogYm9keSwgZXhjZXB0aGFuZGxlciogaGFuZGxlcnMsIHN0bXQqIG9yZWxzZSwgc3RtdCogZmluYWxib2R5KQorICAgICAgICAgIHwgQXNzZXJ0KGV4cHIgdGVzdCwgZXhwcj8gbXNnKQogCi0JICAgICAgfCBJbXBvcnQoYWxpYXMqIG5hbWVzKQotCSAgICAgIHwgSW1wb3J0RnJvbShpZGVudGlmaWVyPyBtb2R1bGUsIGFsaWFzKiBuYW1lcywgaW50PyBsZXZlbCkKKyAgICAgICAgICB8IEltcG9ydChhbGlhcyogbmFtZXMpCisgICAgICAgICAgfCBJbXBvcnRGcm9tKGlkZW50aWZpZXI/IG1vZHVsZSwgYWxpYXMqIG5hbWVzLCBpbnQ/IGxldmVsKQogCi0JICAgICAgfCBHbG9iYWwoaWRlbnRpZmllciogbmFtZXMpCi0JICAgICAgfCBOb25sb2NhbChpZGVudGlmaWVyKiBuYW1lcykKLQkgICAgICB8IEV4cHIoZXhwciB2YWx1ZSkKLQkgICAgICB8IFBhc3MgfCBCcmVhayB8IENvbnRpbnVlCisgICAgICAgICAgfCBHbG9iYWwoaWRlbnRpZmllciogbmFtZXMpCisgICAgICAgICAgfCBOb25sb2NhbChpZGVudGlmaWVyKiBuYW1lcykKKyAgICAgICAgICB8IEV4cHIoZXhwciB2YWx1ZSkKKyAgICAgICAgICB8IFBhc3MgfCBCcmVhayB8IENvbnRpbnVlCiAKLQkgICAgICAtLSBYWFggSnl0aG9uIHdpbGwgYmUgZGlmZmVyZW50Ci0JICAgICAgLS0gY29sX29mZnNldCBpcyB0aGUgYnl0ZSBvZmZzZXQgaW4gdGhlIHV0Zjggc3RyaW5nIHRoZSBwYXJzZXIgdXNlcwotCSAgICAgIGF0dHJpYnV0ZXMgKGludCBsaW5lbm8sIGludCBjb2xfb2Zmc2V0KQorICAgICAgICAgIC0tIFhYWCBKeXRob24gd2lsbCBiZSBkaWZmZXJlbnQKKyAgICAgICAgICAtLSBjb2xfb2Zmc2V0IGlzIHRoZSBieXRlIG9mZnNldCBpbiB0aGUgdXRmOCBzdHJpbmcgdGhlIHBhcnNlciB1c2VzCisgICAgICAgICAgYXR0cmlidXRlcyAoaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQpCiAKLQkgICAgICAtLSBCb29sT3AoKSBjYW4gdXNlIGxlZnQgJiByaWdodD8KLQlleHByID0gQm9vbE9wKGJvb2xvcCBvcCwgZXhwciogdmFsdWVzKQotCSAgICAgfCBCaW5PcChleHByIGxlZnQsIG9wZXJhdG9yIG9wLCBleHByIHJpZ2h0KQotCSAgICAgfCBVbmFyeU9wKHVuYXJ5b3Agb3AsIGV4cHIgb3BlcmFuZCkKLQkgICAgIHwgTGFtYmRhKGFyZ3VtZW50cyBhcmdzLCBleHByIGJvZHkpCi0JICAgICB8IElmRXhwKGV4cHIgdGVzdCwgZXhwciBib2R5LCBleHByIG9yZWxzZSkKLQkgICAgIHwgRGljdChleHByKiBrZXlzLCBleHByKiB2YWx1ZXMpCi0JICAgICB8IFNldChleHByKiBlbHRzKQotCSAgICAgfCBMaXN0Q29tcChleHByIGVsdCwgY29tcHJlaGVuc2lvbiogZ2VuZXJhdG9ycykKLQkgICAgIHwgU2V0Q29tcChleHByIGVsdCwgY29tcHJlaGVuc2lvbiogZ2VuZXJhdG9ycykKLQkgICAgIHwgRGljdENvbXAoZXhwciBrZXksIGV4cHIgdmFsdWUsIGNvbXByZWhlbnNpb24qIGdlbmVyYXRvcnMpCi0JICAgICB8IEdlbmVyYXRvckV4cChleHByIGVsdCwgY29tcHJlaGVuc2lvbiogZ2VuZXJhdG9ycykKLQkgICAgIC0tIHRoZSBncmFtbWFyIGNvbnN0cmFpbnMgd2hlcmUgeWllbGQgZXhwcmVzc2lvbnMgY2FuIG9jY3VyCi0JICAgICB8IFlpZWxkKGV4cHI/IHZhbHVlKQotCSAgICAgLS0gbmVlZCBzZXF1ZW5jZXMgZm9yIGNvbXBhcmUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbgotCSAgICAgLS0geCA8IDQgPCAzIGFuZCAoeCA8IDQpIDwgMwotCSAgICAgfCBDb21wYXJlKGV4cHIgbGVmdCwgY21wb3AqIG9wcywgZXhwciogY29tcGFyYXRvcnMpCi0JICAgICB8IENhbGwoZXhwciBmdW5jLCBleHByKiBhcmdzLCBrZXl3b3JkKiBrZXl3b3JkcywKLQkJCSBleHByPyBzdGFyYXJncywgZXhwcj8ga3dhcmdzKQotCSAgICAgfCBOdW0ob2JqZWN0IG4pIC0tIGEgbnVtYmVyIGFzIGEgUHlPYmplY3QuCi0JICAgICB8IFN0cihzdHJpbmcgcykgLS0gbmVlZCB0byBzcGVjaWZ5IHJhdywgdW5pY29kZSwgZXRjPwotCSAgICAgfCBCeXRlcyhzdHJpbmcgcykKLQkgICAgIHwgRWxsaXBzaXMKLQkgICAgIC0tIG90aGVyIGxpdGVyYWxzPyBib29scz8KKyAgICAgICAgICAtLSBCb29sT3AoKSBjYW4gdXNlIGxlZnQgJiByaWdodD8KKyAgICBleHByID0gQm9vbE9wKGJvb2xvcCBvcCwgZXhwciogdmFsdWVzKQorICAgICAgICAgfCBCaW5PcChleHByIGxlZnQsIG9wZXJhdG9yIG9wLCBleHByIHJpZ2h0KQorICAgICAgICAgfCBVbmFyeU9wKHVuYXJ5b3Agb3AsIGV4cHIgb3BlcmFuZCkKKyAgICAgICAgIHwgTGFtYmRhKGFyZ3VtZW50cyBhcmdzLCBleHByIGJvZHkpCisgICAgICAgICB8IElmRXhwKGV4cHIgdGVzdCwgZXhwciBib2R5LCBleHByIG9yZWxzZSkKKyAgICAgICAgIHwgRGljdChleHByKiBrZXlzLCBleHByKiB2YWx1ZXMpCisgICAgICAgICB8IFNldChleHByKiBlbHRzKQorICAgICAgICAgfCBMaXN0Q29tcChleHByIGVsdCwgY29tcHJlaGVuc2lvbiogZ2VuZXJhdG9ycykKKyAgICAgICAgIHwgU2V0Q29tcChleHByIGVsdCwgY29tcHJlaGVuc2lvbiogZ2VuZXJhdG9ycykKKyAgICAgICAgIHwgRGljdENvbXAoZXhwciBrZXksIGV4cHIgdmFsdWUsIGNvbXByZWhlbnNpb24qIGdlbmVyYXRvcnMpCisgICAgICAgICB8IEdlbmVyYXRvckV4cChleHByIGVsdCwgY29tcHJlaGVuc2lvbiogZ2VuZXJhdG9ycykKKyAgICAgICAgIC0tIHRoZSBncmFtbWFyIGNvbnN0cmFpbnMgd2hlcmUgeWllbGQgZXhwcmVzc2lvbnMgY2FuIG9jY3VyCisgICAgICAgICB8IFlpZWxkKGV4cHI/IHZhbHVlKQorICAgICAgICAgICAgIHwgWWllbGRGcm9tKGV4cHI/IHZhbHVlKQorICAgICAgICAgLS0gbmVlZCBzZXF1ZW5jZXMgZm9yIGNvbXBhcmUgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbgorICAgICAgICAgLS0geCA8IDQgPCAzIGFuZCAoeCA8IDQpIDwgMworICAgICAgICAgfCBDb21wYXJlKGV4cHIgbGVmdCwgY21wb3AqIG9wcywgZXhwciogY29tcGFyYXRvcnMpCisgICAgICAgICB8IENhbGwoZXhwciBmdW5jLCBleHByKiBhcmdzLCBrZXl3b3JkKiBrZXl3b3JkcywKKyAgICAgICAgICAgICBleHByPyBzdGFyYXJncywgZXhwcj8ga3dhcmdzKQorICAgICAgICAgfCBOdW0ob2JqZWN0IG4pIC0tIGEgbnVtYmVyIGFzIGEgUHlPYmplY3QuCisgICAgICAgICB8IFN0cihzdHJpbmcgcykgLS0gbmVlZCB0byBzcGVjaWZ5IHJhdywgdW5pY29kZSwgZXRjPworICAgICAgICAgfCBCeXRlcyhieXRlcyBzKQorICAgICAgICAgfCBFbGxpcHNpcworICAgICAgICAgLS0gb3RoZXIgbGl0ZXJhbHM/IGJvb2xzPwogCi0JICAgICAtLSB0aGUgZm9sbG93aW5nIGV4cHJlc3Npb24gY2FuIGFwcGVhciBpbiBhc3NpZ25tZW50IGNvbnRleHQKLQkgICAgIHwgQXR0cmlidXRlKGV4cHIgdmFsdWUsIGlkZW50aWZpZXIgYXR0ciwgZXhwcl9jb250ZXh0IGN0eCkKLQkgICAgIHwgU3Vic2NyaXB0KGV4cHIgdmFsdWUsIHNsaWNlIHNsaWNlLCBleHByX2NvbnRleHQgY3R4KQotCSAgICAgfCBTdGFycmVkKGV4cHIgdmFsdWUsIGV4cHJfY29udGV4dCBjdHgpCi0JICAgICB8IE5hbWUoaWRlbnRpZmllciBpZCwgZXhwcl9jb250ZXh0IGN0eCkKLQkgICAgIHwgTGlzdChleHByKiBlbHRzLCBleHByX2NvbnRleHQgY3R4KSAKLQkgICAgIHwgVHVwbGUoZXhwciogZWx0cywgZXhwcl9jb250ZXh0IGN0eCkKKyAgICAgICAgIC0tIHRoZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBjYW4gYXBwZWFyIGluIGFzc2lnbm1lbnQgY29udGV4dAorICAgICAgICAgfCBBdHRyaWJ1dGUoZXhwciB2YWx1ZSwgaWRlbnRpZmllciBhdHRyLCBleHByX2NvbnRleHQgY3R4KQorICAgICAgICAgfCBTdWJzY3JpcHQoZXhwciB2YWx1ZSwgc2xpY2Ugc2xpY2UsIGV4cHJfY29udGV4dCBjdHgpCisgICAgICAgICB8IFN0YXJyZWQoZXhwciB2YWx1ZSwgZXhwcl9jb250ZXh0IGN0eCkKKyAgICAgICAgIHwgTmFtZShpZGVudGlmaWVyIGlkLCBleHByX2NvbnRleHQgY3R4KQorICAgICAgICAgfCBMaXN0KGV4cHIqIGVsdHMsIGV4cHJfY29udGV4dCBjdHgpIAorICAgICAgICAgfCBUdXBsZShleHByKiBlbHRzLCBleHByX2NvbnRleHQgY3R4KQogCi0JICAgICAgLS0gY29sX29mZnNldCBpcyB0aGUgYnl0ZSBvZmZzZXQgaW4gdGhlIHV0Zjggc3RyaW5nIHRoZSBwYXJzZXIgdXNlcwotCSAgICAgIGF0dHJpYnV0ZXMgKGludCBsaW5lbm8sIGludCBjb2xfb2Zmc2V0KQorICAgICAgICAgIC0tIGNvbF9vZmZzZXQgaXMgdGhlIGJ5dGUgb2Zmc2V0IGluIHRoZSB1dGY4IHN0cmluZyB0aGUgcGFyc2VyIHVzZXMKKyAgICAgICAgICBhdHRyaWJ1dGVzIChpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCkKIAotCWV4cHJfY29udGV4dCA9IExvYWQgfCBTdG9yZSB8IERlbCB8IEF1Z0xvYWQgfCBBdWdTdG9yZSB8IFBhcmFtCisgICAgZXhwcl9jb250ZXh0ID0gTG9hZCB8IFN0b3JlIHwgRGVsIHwgQXVnTG9hZCB8IEF1Z1N0b3JlIHwgUGFyYW0KIAotCXNsaWNlID0gU2xpY2UoZXhwcj8gbG93ZXIsIGV4cHI/IHVwcGVyLCBleHByPyBzdGVwKSAKLQkgICAgICB8IEV4dFNsaWNlKHNsaWNlKiBkaW1zKSAKLQkgICAgICB8IEluZGV4KGV4cHIgdmFsdWUpIAorICAgIHNsaWNlID0gU2xpY2UoZXhwcj8gbG93ZXIsIGV4cHI/IHVwcGVyLCBleHByPyBzdGVwKSAKKyAgICAgICAgICB8IEV4dFNsaWNlKHNsaWNlKiBkaW1zKSAKKyAgICAgICAgICB8IEluZGV4KGV4cHIgdmFsdWUpIAogCi0JYm9vbG9wID0gQW5kIHwgT3IgCisgICAgYm9vbG9wID0gQW5kIHwgT3IgCiAKLQlvcGVyYXRvciA9IEFkZCB8IFN1YiB8IE11bHQgfCBEaXYgfCBNb2QgfCBQb3cgfCBMU2hpZnQgCisgICAgb3BlcmF0b3IgPSBBZGQgfCBTdWIgfCBNdWx0IHwgRGl2IHwgTW9kIHwgUG93IHwgTFNoaWZ0IAogICAgICAgICAgICAgICAgICB8IFJTaGlmdCB8IEJpdE9yIHwgQml0WG9yIHwgQml0QW5kIHwgRmxvb3JEaXYKIAotCXVuYXJ5b3AgPSBJbnZlcnQgfCBOb3QgfCBVQWRkIHwgVVN1YgorICAgIHVuYXJ5b3AgPSBJbnZlcnQgfCBOb3QgfCBVQWRkIHwgVVN1YgogCi0JY21wb3AgPSBFcSB8IE5vdEVxIHwgTHQgfCBMdEUgfCBHdCB8IEd0RSB8IElzIHwgSXNOb3QgfCBJbiB8IE5vdEluCisgICAgY21wb3AgPSBFcSB8IE5vdEVxIHwgTHQgfCBMdEUgfCBHdCB8IEd0RSB8IElzIHwgSXNOb3QgfCBJbiB8IE5vdEluCiAKLQljb21wcmVoZW5zaW9uID0gKGV4cHIgdGFyZ2V0LCBleHByIGl0ZXIsIGV4cHIqIGlmcykKKyAgICBjb21wcmVoZW5zaW9uID0gKGV4cHIgdGFyZ2V0LCBleHByIGl0ZXIsIGV4cHIqIGlmcykKIAotCS0tIG5vdCBzdXJlIHdoYXQgdG8gY2FsbCB0aGUgZmlyc3QgYXJndW1lbnQgZm9yIHJhaXNlIGFuZCBleGNlcHQKLQlleGNlcHRoYW5kbGVyID0gRXhjZXB0SGFuZGxlcihleHByPyB0eXBlLCBpZGVudGlmaWVyPyBuYW1lLCBzdG10KiBib2R5KQotCSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIChpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCkKKyAgICBleGNlcHRoYW5kbGVyID0gRXhjZXB0SGFuZGxlcihleHByPyB0eXBlLCBpZGVudGlmaWVyPyBuYW1lLCBzdG10KiBib2R5KQorICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzIChpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCkKIAotCWFyZ3VtZW50cyA9IChhcmcqIGFyZ3MsIGlkZW50aWZpZXI/IHZhcmFyZywgZXhwcj8gdmFyYXJnYW5ub3RhdGlvbiwKKyAgICBhcmd1bWVudHMgPSAoYXJnKiBhcmdzLCBpZGVudGlmaWVyPyB2YXJhcmcsIGV4cHI/IHZhcmFyZ2Fubm90YXRpb24sCiAgICAgICAgICAgICAgICAgICAgICBhcmcqIGt3b25seWFyZ3MsIGlkZW50aWZpZXI/IGt3YXJnLAogICAgICAgICAgICAgICAgICAgICAgZXhwcj8ga3dhcmdhbm5vdGF0aW9uLCBleHByKiBkZWZhdWx0cywKICAgICAgICAgICAgICAgICAgICAgIGV4cHIqIGt3X2RlZmF1bHRzKQotCWFyZyA9IChpZGVudGlmaWVyIGFyZywgZXhwcj8gYW5ub3RhdGlvbikKKyAgICBhcmcgPSAoaWRlbnRpZmllciBhcmcsIGV4cHI/IGFubm90YXRpb24pCiAKLSAgICAgICAgLS0ga2V5d29yZCBhcmd1bWVudHMgc3VwcGxpZWQgdG8gY2FsbAotICAgICAgICBrZXl3b3JkID0gKGlkZW50aWZpZXIgYXJnLCBleHByIHZhbHVlKQorICAgIC0tIGtleXdvcmQgYXJndW1lbnRzIHN1cHBsaWVkIHRvIGNhbGwKKyAgICBrZXl3b3JkID0gKGlkZW50aWZpZXIgYXJnLCBleHByIHZhbHVlKQogCi0gICAgICAgIC0tIGltcG9ydCBuYW1lIHdpdGggb3B0aW9uYWwgJ2FzJyBhbGlhcy4KLSAgICAgICAgYWxpYXMgPSAoaWRlbnRpZmllciBuYW1lLCBpZGVudGlmaWVyPyBhc25hbWUpCisgICAgLS0gaW1wb3J0IG5hbWUgd2l0aCBvcHRpb25hbCAnYXMnIGFsaWFzLgorICAgIGFsaWFzID0gKGlkZW50aWZpZXIgbmFtZSwgaWRlbnRpZmllcj8gYXNuYW1lKQorCisgICAgd2l0aGl0ZW0gPSAoZXhwciBjb250ZXh0X2V4cHIsIGV4cHI/IG9wdGlvbmFsX3ZhcnMpCiB9CiAKZGlmZiAtLWdpdCBhL1BhcnNlci9hc2RsLnB5IGIvUGFyc2VyL2FzZGwucHkKaW5kZXggN2I0ZTJkYy4uMDFhOGI1ZSAxMDA2NDQKLS0tIGEvUGFyc2VyL2FzZGwucHkKKysrIGIvUGFyc2VyL2FzZGwucHkKQEAgLTExNCwyOCArMTE0LDIwIEBACiAgICAgICAgIHJhaXNlIEFTRExTeW50YXhFcnJvcih0b2subGluZW5vLCB0b2spCiAKICAgICBkZWYgcF9tb2R1bGVfMChzZWxmLCBpbmZvKToKLSAgICAgICAgIiBtb2R1bGUgOjo9IElkIElkIHZlcnNpb24geyB9ICIKLSAgICAgICAgbW9kdWxlLCBuYW1lLCB2ZXJzaW9uLCBfMCwgXzEgPSBpbmZvCisgICAgICAgICIgbW9kdWxlIDo6PSBJZCBJZCB7IH0gIgorICAgICAgICBtb2R1bGUsIG5hbWUsIF8wLCBfMSA9IGluZm8KICAgICAgICAgaWYgbW9kdWxlLnZhbHVlICE9ICJtb2R1bGUiOgogICAgICAgICAgICAgcmFpc2UgQVNETFN5bnRheEVycm9yKG1vZHVsZS5saW5lbm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnPSJleHBlY3RlZCAnbW9kdWxlJywgZm91bmQgJXMiICUgbW9kdWxlKQotICAgICAgICByZXR1cm4gTW9kdWxlKG5hbWUsIE5vbmUsIHZlcnNpb24pCisgICAgICAgIHJldHVybiBNb2R1bGUobmFtZSwgTm9uZSkKIAogICAgIGRlZiBwX21vZHVsZShzZWxmLCBpbmZvKToKLSAgICAgICAgIiBtb2R1bGUgOjo9IElkIElkIHZlcnNpb24geyBkZWZpbml0aW9ucyB9ICIKLSAgICAgICAgbW9kdWxlLCBuYW1lLCB2ZXJzaW9uLCBfMCwgZGVmaW5pdGlvbnMsIF8xID0gaW5mbworICAgICAgICAiIG1vZHVsZSA6Oj0gSWQgSWQgeyBkZWZpbml0aW9ucyB9ICIKKyAgICAgICAgbW9kdWxlLCBuYW1lLCBfMCwgZGVmaW5pdGlvbnMsIF8xID0gaW5mbwogICAgICAgICBpZiBtb2R1bGUudmFsdWUgIT0gIm1vZHVsZSI6CiAgICAgICAgICAgICByYWlzZSBBU0RMU3ludGF4RXJyb3IobW9kdWxlLmxpbmVubywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2c9ImV4cGVjdGVkICdtb2R1bGUnLCBmb3VuZCAlcyIgJSBtb2R1bGUpCi0gICAgICAgIHJldHVybiBNb2R1bGUobmFtZSwgZGVmaW5pdGlvbnMsIHZlcnNpb24pCi0KLSAgICBkZWYgcF92ZXJzaW9uKHNlbGYsIGluZm8pOgotICAgICAgICAidmVyc2lvbiA6Oj0gSWQgU3RyaW5nIgotICAgICAgICB2ZXJzaW9uLCBWID0gaW5mbwotICAgICAgICBpZiB2ZXJzaW9uLnZhbHVlICE9ICJ2ZXJzaW9uIjoKLSAgICAgICAgICAgIHJhaXNlIEFTRExTeW50YXhFcnJvcih2ZXJzaW9uLmxpbmVubywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2c9ImV4cGVjdGVkICd2ZXJzaW9uJywgZm91bmQgJSIgJSB2ZXJzaW9uKQotICAgICAgICByZXR1cm4gVgorICAgICAgICByZXR1cm4gTW9kdWxlKG5hbWUsIGRlZmluaXRpb25zKQogCiAgICAgZGVmIHBfZGVmaW5pdGlvbl8wKHNlbGYsIGRlZmluaXRpb24pOgogICAgICAgICAiIGRlZmluaXRpb25zIDo6PSBkZWZpbml0aW9uICIKQEAgLTIzNiw3ICsyMjgsNyBAQAogICAgICAgICAiIGZpZWxkIDo6PSBJZCA/ICIKICAgICAgICAgcmV0dXJuIEZpZWxkKHR5cGVbMF0sIG9wdD1UcnVlKQogCi1idWlsdGluX3R5cGVzID0gKCJpZGVudGlmaWVyIiwgInN0cmluZyIsICJpbnQiLCAiYm9vbCIsICJvYmplY3QiKQorYnVpbHRpbl90eXBlcyA9ICgiaWRlbnRpZmllciIsICJzdHJpbmciLCAiYnl0ZXMiLCAiaW50IiwgIm9iamVjdCIpCiAKICMgYmVsb3cgaXMgYSBjb2xsZWN0aW9uIG9mIGNsYXNzZXMgdG8gY2FwdHVyZSB0aGUgQVNUIG9mIGFuIEFTVCA6LSkKICMgbm90IHN1cmUgaWYgYW55IG9mIHRoZSBtZXRob2RzIGFyZSB1c2VmdWwgeWV0LCBidXQgSSdtIGFkZGluZyB0aGVtCkBAIC0yNDYsMTAgKzIzOCw5IEBACiAgICAgcGFzcyAjIGEgbWFya2VyIGNsYXNzCiAKIGNsYXNzIE1vZHVsZShBU1QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBkZm5zLCB2ZXJzaW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgZGZucyk6CiAgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICAgc2VsZi5kZm5zID0gZGZucwotICAgICAgICBzZWxmLnZlcnNpb24gPSB2ZXJzaW9uCiAgICAgICAgIHNlbGYudHlwZXMgPSB7fSAjIG1hcHMgdHlwZSBuYW1lIHRvIHZhbHVlIChmcm9tIGRmbnMpCiAgICAgICAgIGZvciB0eXBlIGluIGRmbnM6CiAgICAgICAgICAgICBzZWxmLnR5cGVzW3R5cGUubmFtZS52YWx1ZV0gPSB0eXBlLnZhbHVlCmRpZmYgLS1naXQgYS9QYXJzZXIvYXNkbF9jLnB5IGIvUGFyc2VyL2FzZGxfYy5weQppbmRleCBiODVjMDdlLi42OThhZmFjIDEwMDc1NQotLS0gYS9QYXJzZXIvYXNkbF9jLnB5CisrKyBiL1BhcnNlci9hc2RsX2MucHkKQEAgLTUsNiArNSw3IEBACiAjIGhhbmRsZSBmaWVsZHMgdGhhdCBoYXZlIGEgdHlwZSBidXQgbm8gbmFtZQogCiBpbXBvcnQgb3MsIHN5cworaW1wb3J0IHN1YnByb2Nlc3MKIAogaW1wb3J0IGFzZGwKIApAQCAtODQsOCArODUsMTYgQEAKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlKToKICAgICAgICAgc2VsZi5maWxlID0gZmlsZQorICAgICAgICBzZWxmLmlkZW50aWZpZXJzID0gc2V0KCkKICAgICAgICAgc3VwZXIoRW1pdFZpc2l0b3IsIHNlbGYpLl9faW5pdF9fKCkKIAorICAgIGRlZiBlbWl0X2lkZW50aWZpZXIoc2VsZiwgbmFtZSk6CisgICAgICAgIG5hbWUgPSBzdHIobmFtZSkKKyAgICAgICAgaWYgbmFtZSBpbiBzZWxmLmlkZW50aWZpZXJzOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNlbGYuZW1pdCgiX1B5X0lERU5USUZJRVIoJXMpOyIgJSBuYW1lLCAwKQorICAgICAgICBzZWxmLmlkZW50aWZpZXJzLmFkZChuYW1lKQorCiAgICAgZGVmIGVtaXQoc2VsZiwgcywgZGVwdGgsIHJlZmxvdz1UcnVlKToKICAgICAgICAgIyBYWFggcmVmbG93IGxvbmcgbGluZXM/CiAgICAgICAgIGlmIHJlZmxvdzoKQEAgLTQ4NSwxMiArNDk0LDEyIEBACiAKICAgICBkZWYgdmlzaXRGaWVsZChzZWxmLCBmaWVsZCwgbmFtZSwgc3VtPU5vbmUsIHByb2Q9Tm9uZSwgZGVwdGg9MCk6CiAgICAgICAgIGN0eXBlID0gZ2V0X2NfdHlwZShmaWVsZC50eXBlKQotICAgICAgICBzZWxmLmVtaXQoImlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgXCIlc1wiKSkgeyIgJSBmaWVsZC5uYW1lLCBkZXB0aCkKKyAgICAgICAgc2VsZi5lbWl0KCJpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkXyVzKSkgeyIgJSBmaWVsZC5uYW1lLCBkZXB0aCkKICAgICAgICAgc2VsZi5lbWl0KCJpbnQgcmVzOyIsIGRlcHRoKzEpCiAgICAgICAgIGlmIGZpZWxkLnNlcToKICAgICAgICAgICAgIHNlbGYuZW1pdCgiUHlfc3NpemVfdCBsZW47IiwgZGVwdGgrMSkKICAgICAgICAgICAgIHNlbGYuZW1pdCgiUHlfc3NpemVfdCBpOyIsIGRlcHRoKzEpCi0gICAgICAgIHNlbGYuZW1pdCgidG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosIFwiJXNcIik7IiAlIGZpZWxkLm5hbWUsIGRlcHRoKzEpCisgICAgICAgIHNlbGYuZW1pdCgidG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkXyVzKTsiICUgZmllbGQubmFtZSwgZGVwdGgrMSkKICAgICAgICAgc2VsZi5lbWl0KCJpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOyIsIGRlcHRoKzEpCiAgICAgICAgIGlmIGZpZWxkLnNlcToKICAgICAgICAgICAgIHNlbGYuZW1pdCgiaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgeyIsIGRlcHRoKzEpCkBAIC01NTIsNiArNTYxLDggQEAKICAgICAgICAgc2VsZi5lbWl0KCJzdGF0aWMgUHlUeXBlT2JqZWN0IColc190eXBlOyIgJSBuYW1lLCAwKQogICAgICAgICBzZWxmLmVtaXQoInN0YXRpYyBQeU9iamVjdCogYXN0Mm9ial8lcyh2b2lkKik7IiAlIG5hbWUsIDApCiAgICAgICAgIGlmIHByb2QuZmllbGRzOgorICAgICAgICAgICAgZm9yIGYgaW4gcHJvZC5maWVsZHM6CisgICAgICAgICAgICAgICAgc2VsZi5lbWl0X2lkZW50aWZpZXIoZi5uYW1lKQogICAgICAgICAgICAgc2VsZi5lbWl0KCJzdGF0aWMgY2hhciAqJXNfZmllbGRzW109eyIgJSBuYW1lLDApCiAgICAgICAgICAgICBmb3IgZiBpbiBwcm9kLmZpZWxkczoKICAgICAgICAgICAgICAgICBzZWxmLmVtaXQoJyIlcyIsJyAlIGYubmFtZSwgMSkKQEAgLTU2MCw2ICs1NzEsOCBAQAogICAgIGRlZiB2aXNpdFN1bShzZWxmLCBzdW0sIG5hbWUpOgogICAgICAgICBzZWxmLmVtaXQoInN0YXRpYyBQeVR5cGVPYmplY3QgKiVzX3R5cGU7IiAlIG5hbWUsIDApCiAgICAgICAgIGlmIHN1bS5hdHRyaWJ1dGVzOgorICAgICAgICAgICAgZm9yIGEgaW4gc3VtLmF0dHJpYnV0ZXM6CisgICAgICAgICAgICAgICAgc2VsZi5lbWl0X2lkZW50aWZpZXIoYS5uYW1lKQogICAgICAgICAgICAgc2VsZi5lbWl0KCJzdGF0aWMgY2hhciAqJXNfYXR0cmlidXRlc1tdID0geyIgJSBuYW1lLCAwKQogICAgICAgICAgICAgZm9yIGEgaW4gc3VtLmF0dHJpYnV0ZXM6CiAgICAgICAgICAgICAgICAgc2VsZi5lbWl0KCciJXMiLCcgJSBhLm5hbWUsIDEpCkBAIC01NzksNiArNTkyLDggQEAKICAgICBkZWYgdmlzaXRDb25zdHJ1Y3RvcihzZWxmLCBjb25zLCBuYW1lKToKICAgICAgICAgc2VsZi5lbWl0KCJzdGF0aWMgUHlUeXBlT2JqZWN0IColc190eXBlOyIgJSBjb25zLm5hbWUsIDApCiAgICAgICAgIGlmIGNvbnMuZmllbGRzOgorICAgICAgICAgICAgZm9yIHQgaW4gY29ucy5maWVsZHM6CisgICAgICAgICAgICAgICAgc2VsZi5lbWl0X2lkZW50aWZpZXIodC5uYW1lKQogICAgICAgICAgICAgc2VsZi5lbWl0KCJzdGF0aWMgY2hhciAqJXNfZmllbGRzW109eyIgJSBjb25zLm5hbWUsIDApCiAgICAgICAgICAgICBmb3IgdCBpbiBjb25zLmZpZWxkczoKICAgICAgICAgICAgICAgICBzZWxmLmVtaXQoJyIlcyIsJyAlIHQubmFtZSwgMSkKQEAgLTU4OCwxMyArNjAzLDM5IEBACiAKICAgICBkZWYgdmlzaXRNb2R1bGUoc2VsZiwgbW9kKToKICAgICAgICAgc2VsZi5lbWl0KCIiIgordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0X0hFQUQKKyAgICBQeU9iamVjdCAqZGljdDsKK30gQVNUX29iamVjdDsKKworc3RhdGljIHZvaWQKK2FzdF9kZWFsbG9jKEFTVF9vYmplY3QgKnNlbGYpCit7CisgICAgUHlfQ0xFQVIoc2VsZi0+ZGljdCk7CisgICAgUHlfVFlQRShzZWxmKS0+dHBfZnJlZShzZWxmKTsKK30KKworc3RhdGljIGludAorYXN0X3RyYXZlcnNlKEFTVF9vYmplY3QgKnNlbGYsIHZpc2l0cHJvYyB2aXNpdCwgdm9pZCAqYXJnKQoreworICAgIFB5X1ZJU0lUKHNlbGYtPmRpY3QpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgdm9pZAorYXN0X2NsZWFyKEFTVF9vYmplY3QgKnNlbGYpCit7CisgICAgUHlfQ0xFQVIoc2VsZi0+ZGljdCk7Cit9CisKIHN0YXRpYyBpbnQKIGFzdF90eXBlX2luaXQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3cpCiB7CisgICAgX1B5X0lERU5USUZJRVIoX2ZpZWxkcyk7CiAgICAgUHlfc3NpemVfdCBpLCBudW1maWVsZHMgPSAwOwogICAgIGludCByZXMgPSAtMTsKICAgICBQeU9iamVjdCAqa2V5LCAqdmFsdWUsICpmaWVsZHM7Ci0gICAgZmllbGRzID0gUHlPYmplY3RfR2V0QXR0clN0cmluZygoUHlPYmplY3QqKVB5X1RZUEUoc2VsZiksICJfZmllbGRzIik7CisgICAgZmllbGRzID0gX1B5T2JqZWN0X0dldEF0dHJJZCgoUHlPYmplY3QqKVB5X1RZUEUoc2VsZiksICZQeUlkX19maWVsZHMpOwogICAgIGlmICghZmllbGRzKQogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgIGlmIChmaWVsZHMpIHsKQEAgLTY0NCw3ICs2ODUsOCBAQAogYXN0X3R5cGVfcmVkdWNlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdW51c2VkKQogewogICAgIFB5T2JqZWN0ICpyZXM7Ci0gICAgUHlPYmplY3QgKmRpY3QgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHNlbGYsICJfX2RpY3RfXyIpOworICAgIF9QeV9JREVOVElGSUVSKF9fZGljdF9fKTsKKyAgICBQeU9iamVjdCAqZGljdCA9IF9QeU9iamVjdF9HZXRBdHRySWQoc2VsZiwgJlB5SWRfX19kaWN0X18pOwogICAgIGlmIChkaWN0ID09IE5VTEwpIHsKICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKQEAgLTY2NCwxMiArNzA2LDE3IEBACiAgICAge05VTEx9CiB9OwogCitzdGF0aWMgUHlHZXRTZXREZWYgYXN0X3R5cGVfZ2V0c2V0c1tdID0geworICAgIHsiX19kaWN0X18iLCBQeU9iamVjdF9HZW5lcmljR2V0RGljdCwgUHlPYmplY3RfR2VuZXJpY1NldERpY3R9LAorICAgIHtOVUxMfQorfTsKKwogc3RhdGljIFB5VHlwZU9iamVjdCBBU1RfdHlwZSA9IHsKICAgICBQeVZhck9iamVjdF9IRUFEX0lOSVQoJlB5VHlwZV9UeXBlLCAwKQogICAgICJfYXN0LkFTVCIsCi0gICAgc2l6ZW9mKFB5T2JqZWN0KSwKKyAgICBzaXplb2YoQVNUX29iamVjdCksCiAgICAgMCwKLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVhbGxvYyAqLworICAgIChkZXN0cnVjdG9yKWFzdF9kZWFsbG9jLCAvKiB0cF9kZWFsbG9jICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3ByaW50ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldGF0dHIgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfc2V0YXR0ciAqLwpAQCAtNjg0LDI2ICs3MzEsMjYgQEAKICAgICBQeU9iamVjdF9HZW5lcmljR2V0QXR0ciwgLyogdHBfZ2V0YXR0cm8gKi8KICAgICBQeU9iamVjdF9HZW5lcmljU2V0QXR0ciwgLyogdHBfc2V0YXR0cm8gKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYXNfYnVmZmVyICovCi0gICAgUHlfVFBGTEFHU19ERUZBVUxUIHwgUHlfVFBGTEFHU19CQVNFVFlQRSwgLyogdHBfZmxhZ3MgKi8KKyAgICBQeV9UUEZMQUdTX0RFRkFVTFQgfCBQeV9UUEZMQUdTX0JBU0VUWVBFIHwgUHlfVFBGTEFHU19IQVZFX0dDLCAvKiB0cF9mbGFncyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kb2MgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfdHJhdmVyc2UgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfY2xlYXIgKi8KKyAgICAodHJhdmVyc2Vwcm9jKWFzdF90cmF2ZXJzZSwgLyogdHBfdHJhdmVyc2UgKi8KKyAgICAoaW5xdWlyeSlhc3RfY2xlYXIsICAgICAgLyogdHBfY2xlYXIgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfcmljaGNvbXBhcmUgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVybmV4dCAqLwogICAgIGFzdF90eXBlX21ldGhvZHMsICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21lbWJlcnMgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCisgICAgYXN0X3R5cGVfZ2V0c2V0cywgICAgICAgIC8qIHRwX2dldHNldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9iYXNlICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RpY3QgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX3NldCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0b2Zmc2V0ICovCisgICAgb2Zmc2V0b2YoQVNUX29iamVjdCwgZGljdCksLyogdHBfZGljdG9mZnNldCAqLwogICAgIChpbml0cHJvYylhc3RfdHlwZV9pbml0LCAvKiB0cF9pbml0ICovCiAgICAgUHlUeXBlX0dlbmVyaWNBbGxvYywgICAgIC8qIHRwX2FsbG9jICovCiAgICAgUHlUeXBlX0dlbmVyaWNOZXcsICAgICAgIC8qIHRwX25ldyAqLwotICAgIFB5T2JqZWN0X0RlbCwgICAgICAgICAgICAvKiB0cF9mcmVlICovCisgICAgUHlPYmplY3RfR0NfRGVsLCAgICAgICAgIC8qIHRwX2ZyZWUgKi8KIH07CiAKIApAQCAtNzMwLDYgKzc3Nyw3IEBACiBzdGF0aWMgaW50IGFkZF9hdHRyaWJ1dGVzKFB5VHlwZU9iamVjdCogdHlwZSwgY2hhcioqYXR0cnMsIGludCBudW1fZmllbGRzKQogewogICAgIGludCBpLCByZXN1bHQ7CisgICAgX1B5X0lERU5USUZJRVIoX2F0dHJpYnV0ZXMpOwogICAgIFB5T2JqZWN0ICpzLCAqbCA9IFB5VHVwbGVfTmV3KG51bV9maWVsZHMpOwogICAgIGlmICghbCkKICAgICAgICAgcmV0dXJuIDA7CkBAIC03NDEsNyArNzg5LDcgQEAKICAgICAgICAgfQogICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGwsIGksIHMpOwogICAgIH0KLSAgICByZXN1bHQgPSBQeU9iamVjdF9TZXRBdHRyU3RyaW5nKChQeU9iamVjdCopdHlwZSwgIl9hdHRyaWJ1dGVzIiwgbCkgPj0gMDsKKyAgICByZXN1bHQgPSBfUHlPYmplY3RfU2V0QXR0cklkKChQeU9iamVjdCopdHlwZSwgJlB5SWRfX2F0dHJpYnV0ZXMsIGwpID49IDA7CiAgICAgUHlfREVDUkVGKGwpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC03NTAsNyArNzk4LDcgQEAKIAogc3RhdGljIFB5T2JqZWN0KiBhc3Qyb2JqX2xpc3QoYXNkbF9zZXEgKnNlcSwgUHlPYmplY3QqICgqZnVuYykodm9pZCopKQogewotICAgIGludCBpLCBuID0gYXNkbF9zZXFfTEVOKHNlcSk7CisgICAgUHlfc3NpemVfdCBpLCBuID0gYXNkbF9zZXFfTEVOKHNlcSk7CiAgICAgUHlPYmplY3QgKnJlc3VsdCA9IFB5TGlzdF9OZXcobik7CiAgICAgUHlPYmplY3QgKnZhbHVlOwogICAgIGlmICghcmVzdWx0KQpAQCAtNzc1LDYgKzgyMyw3IEBACiB9CiAjZGVmaW5lIGFzdDJvYmpfaWRlbnRpZmllciBhc3Qyb2JqX29iamVjdAogI2RlZmluZSBhc3Qyb2JqX3N0cmluZyBhc3Qyb2JqX29iamVjdAorI2RlZmluZSBhc3Qyb2JqX2J5dGVzIGFzdDJvYmpfb2JqZWN0CiAKIHN0YXRpYyBQeU9iamVjdCogYXN0Mm9ial9pbnQobG9uZyBiKQogewpAQCAtODEyLDYgKzg2MSwxNSBAQAogICAgIHJldHVybiBvYmoyYXN0X29iamVjdChvYmosIG91dCwgYXJlbmEpOwogfQogCitzdGF0aWMgaW50IG9iajJhc3RfYnl0ZXMoUHlPYmplY3QqIG9iaiwgUHlPYmplY3QqKiBvdXQsIFB5QXJlbmEqIGFyZW5hKQoreworICAgIGlmICghUHlCeXRlc19DaGVja0V4YWN0KG9iaikpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIkFTVCBieXRlcyBtdXN0IGJlIG9mIHR5cGUgYnl0ZXMiKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIHJldHVybiBvYmoyYXN0X29iamVjdChvYmosIG91dCwgYXJlbmEpOworfQorCiBzdGF0aWMgaW50IG9iajJhc3RfaW50KFB5T2JqZWN0KiBvYmosIGludCogb3V0LCBQeUFyZW5hKiBhcmVuYSkKIHsKICAgICBpbnQgaTsKQEAgLTkxMCwxMCArOTY4LDYgQEAKICAgICAgICAgc2VsZi5lbWl0KCdpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIkFTVCIsIChQeU9iamVjdCopJkFTVF90eXBlKSA8IDApIHJldHVybiBOVUxMOycsIDEpCiAgICAgICAgIHNlbGYuZW1pdCgnaWYgKFB5TW9kdWxlX0FkZEludENvbnN0YW50KG0sICJQeUNGX09OTFlfQVNUIiwgUHlDRl9PTkxZX0FTVCkgPCAwKScsIDEpCiAgICAgICAgIHNlbGYuZW1pdCgicmV0dXJuIE5VTEw7IiwgMikKLSAgICAgICAgIyBWYWx1ZSBvZiB2ZXJzaW9uOiAiJFJldmlzaW9uJCIKLSAgICAgICAgc2VsZi5lbWl0KCdpZiAoUHlNb2R1bGVfQWRkU3RyaW5nQ29uc3RhbnQobSwgIl9fdmVyc2lvbl9fIiwgIiVzIikgPCAwKScKLSAgICAgICAgICAgICAgICAlIG1vZC52ZXJzaW9uLCAxKQotICAgICAgICBzZWxmLmVtaXQoInJldHVybiBOVUxMOyIsIDIpCiAgICAgICAgIGZvciBkZm4gaW4gbW9kLmRmbnM6CiAgICAgICAgICAgICBzZWxmLnZpc2l0KGRmbikKICAgICAgICAgc2VsZi5lbWl0KCJyZXR1cm4gbTsiLCAxKQpAQCAtOTk3LDcgKzEwNTEsNyBAQAogICAgICAgICBmb3IgYSBpbiBzdW0uYXR0cmlidXRlczoKICAgICAgICAgICAgIHNlbGYuZW1pdCgidmFsdWUgPSBhc3Qyb2JqXyVzKG8tPiVzKTsiICUgKGEudHlwZSwgYS5uYW1lKSwgMSkKICAgICAgICAgICAgIHNlbGYuZW1pdCgiaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7IiwgMSkKLSAgICAgICAgICAgIHNlbGYuZW1pdCgnaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiJXMiLCB2YWx1ZSkgPCAwKScgJSBhLm5hbWUsIDEpCisgICAgICAgICAgICBzZWxmLmVtaXQoJ2lmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfJXMsIHZhbHVlKSA8IDApJyAlIGEubmFtZSwgMSkKICAgICAgICAgICAgIHNlbGYuZW1pdCgnZ290byBmYWlsZWQ7JywgMikKICAgICAgICAgICAgIHNlbGYuZW1pdCgnUHlfREVDUkVGKHZhbHVlKTsnLCAxKQogICAgICAgICBzZWxmLmZ1bmNfZW5kKCkKQEAgLTEwNDMsNyArMTA5Nyw3IEBACiAgICAgICAgICAgICB2YWx1ZSA9ICJvLT52LiVzLiVzIiAlIChuYW1lLCBmaWVsZC5uYW1lKQogICAgICAgICBzZWxmLnNldChmaWVsZCwgdmFsdWUsIGRlcHRoKQogICAgICAgICBlbWl0KCJpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsiLCAwKQotICAgICAgICBlbWl0KCdpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICIlcyIsIHZhbHVlKSA9PSAtMSknICUgZmllbGQubmFtZSwgMCkKKyAgICAgICAgZW1pdCgnaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF8lcywgdmFsdWUpID09IC0xKScgJSBmaWVsZC5uYW1lLCAwKQogICAgICAgICBlbWl0KCJnb3RvIGZhaWxlZDsiLCAxKQogICAgICAgICBlbWl0KCJQeV9ERUNSRUYodmFsdWUpOyIsIDApCiAKQEAgLTEwNjYsNyArMTEyMCw3IEBACiAgICAgICAgICAgICAgICAgIyBXaGlsZSB0aGUgc2VxdWVuY2UgZWxlbWVudHMgYXJlIHN0b3JlZCBhcyB2b2lkKiwKICAgICAgICAgICAgICAgICAjIGFzdDJvYmpfY21wb3AgZXhwZWN0cyBhbiBlbnVtCiAgICAgICAgICAgICAgICAgc2VsZi5lbWl0KCJ7IiwgZGVwdGgpCi0gICAgICAgICAgICAgICAgc2VsZi5lbWl0KCJpbnQgaSwgbiA9IGFzZGxfc2VxX0xFTiglcyk7IiAlIHZhbHVlLCBkZXB0aCsxKQorICAgICAgICAgICAgICAgIHNlbGYuZW1pdCgiUHlfc3NpemVfdCBpLCBuID0gYXNkbF9zZXFfTEVOKCVzKTsiICUgdmFsdWUsIGRlcHRoKzEpCiAgICAgICAgICAgICAgICAgc2VsZi5lbWl0KCJ2YWx1ZSA9IFB5TGlzdF9OZXcobik7IiwgZGVwdGgrMSkKICAgICAgICAgICAgICAgICBzZWxmLmVtaXQoImlmICghdmFsdWUpIGdvdG8gZmFpbGVkOyIsIGRlcHRoKzEpCiAgICAgICAgICAgICAgICAgc2VsZi5lbWl0KCJmb3IoaSA9IDA7IGkgPCBuOyBpKyspIiwgZGVwdGgrMSkKQEAgLTExMzQsMjQgKzExODgsMTIgQEAKIAogY29tbW9uX21zZyA9ICIvKiBGaWxlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5ICVzLiAqL1xuXG4iCiAKLWNfZmlsZV9tc2cgPSAiIiIKLS8qCi0gICBfX3ZlcnNpb25fXyAlcy4KLQotICAgVGhpcyBtb2R1bGUgbXVzdCBiZSBjb21taXR0ZWQgc2VwYXJhdGVseSBhZnRlciBlYWNoIEFTVCBncmFtbWFyIGNoYW5nZTsKLSAgIFRoZSBfX3ZlcnNpb25fXyBudW1iZXIgaXMgc2V0IHRvIHRoZSByZXZpc2lvbiBudW1iZXIgb2YgdGhlIGNvbW1pdAotICAgY29udGFpbmluZyB0aGUgZ3JhbW1hciBjaGFuZ2UuCi0qLwotCi0iIiIKLQogZGVmIG1haW4oc3JjZmlsZSk6CiAgICAgYXJndjAgPSBzeXMuYXJndlswXQogICAgIGNvbXBvbmVudHMgPSBhcmd2MC5zcGxpdChvcy5zZXApCiAgICAgYXJndjAgPSBvcy5zZXAuam9pbihjb21wb25lbnRzWy0yOl0pCiAgICAgYXV0b19nZW5fbXNnID0gY29tbW9uX21zZyAlIGFyZ3YwCiAgICAgbW9kID0gYXNkbC5wYXJzZShzcmNmaWxlKQotICAgIG1vZC52ZXJzaW9uID0gIjgyMTYzIgogICAgIGlmIG5vdCBhc2RsLmNoZWNrKG1vZCk6CiAgICAgICAgIHN5cy5leGl0KDEpCiAgICAgaWYgSU5DX0RJUjoKQEAgLTExNzMsNyArMTIxNSw4IEBACiAgICAgICAgIHAgPSBvcy5wYXRoLmpvaW4oU1JDX0RJUiwgc3RyKG1vZC5uYW1lKSArICItYXN0LmMiKQogICAgICAgICBmID0gb3BlbihwLCAidyIpCiAgICAgICAgIGYud3JpdGUoYXV0b19nZW5fbXNnKQotICAgICAgICBmLndyaXRlKGNfZmlsZV9tc2cgJSBtb2QudmVyc2lvbikKKyAgICAgICAgZi53cml0ZSgnI2luY2x1ZGUgPHN0ZGRlZi5oPlxuJykKKyAgICAgICAgZi53cml0ZSgnXG4nKQogICAgICAgICBmLndyaXRlKCcjaW5jbHVkZSAiUHl0aG9uLmgiXG4nKQogICAgICAgICBmLndyaXRlKCcjaW5jbHVkZSAiJXMtYXN0LmgiXG4nICUgbW9kLm5hbWUpCiAgICAgICAgIGYud3JpdGUoJ1xuJykKZGlmZiAtLWdpdCBhL1BhcnNlci9pbnRyY2hlY2suYyBiL1BhcnNlci9pbnRyY2hlY2suYwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQzOTg2NC4uMDAwMDAwMAotLS0gYS9QYXJzZXIvaW50cmNoZWNrLmMKKysrIC9kZXYvbnVsbApAQCAtMSwxNzQgKzAsMCBAQAotCi0vKiBDaGVjayBmb3IgaW50ZXJydXB0cyAqLwotCi0jaW5jbHVkZSAiUHl0aG9uLmgiCi0jaW5jbHVkZSAicHl0aHJlYWQuaCIKLQotI2lmZGVmIFFVSUNLV0lOCi0KLSNpbmNsdWRlIDxpby5oPgotCi12b2lkCi1QeU9TX0luaXRJbnRlcnJ1cHRzKHZvaWQpCi17Ci19Ci0KLXZvaWQKLVB5T1NfRmluaUludGVycnVwdHModm9pZCkKLXsKLX0KLQotaW50Ci1QeU9TX0ludGVycnVwdE9jY3VycmVkKHZvaWQpCi17Ci0gICAgX3d5aWVsZCgpOwotfQotCi0jZGVmaW5lIE9LCi0KLSNlbmRpZiAvKiBRVUlDS1dJTiAqLwotCi0jaWYgZGVmaW5lZChfTV9JWDg2KSAmJiAhZGVmaW5lZChfX1FOWF9fKQotI2luY2x1ZGUgPGlvLmg+Ci0jZW5kaWYKLQotI2lmIGRlZmluZWQoTVNET1MpICYmICFkZWZpbmVkKFFVSUNLV0lOKQotCi0jaWZkZWYgX19HTlVDX18KLQotLyogVGhpcyBpcyBmb3IgREpHUFAncyBHTzMyIGV4dGVuZGVyLiAgSSBkb24ndCBrbm93IGhvdyB0byB0cmFwCi0gKiBjb250cm9sLUMgIChUaGVyZSdzIG5vIEFQSSBmb3IgY3RybC1DLCBhbmQgSSBkb24ndCB3YW50IHRvIG1lc3Mgd2l0aAotICogdGhlIGludGVycnVwdCB2ZWN0b3JzLikgIEhvd2V2ZXIsIHRoaXMgRE9FUyBjYXRjaCBjb250cm9sLWJyZWFrLgotICogLS1BbXJpdAotICovCi0KLSNpbmNsdWRlIDxnbzMyLmg+Ci0KLXZvaWQKLVB5T1NfSW5pdEludGVycnVwdHModm9pZCkKLXsKLSAgICBfZ28zMl93YW50X2N0cmxfYnJlYWsoMSAvKiBUUlVFICovKTsKLX0KLQotdm9pZAotUHlPU19GaW5pSW50ZXJydXB0cyh2b2lkKQotewotfQotCi1pbnQKLVB5T1NfSW50ZXJydXB0T2NjdXJyZWQodm9pZCkKLXsKLSAgICByZXR1cm4gX2dvMzJfd2FzX2N0cmxfYnJlYWtfaGl0KCk7Ci19Ci0KLSNlbHNlIC8qICFfX0dOVUNfXyAqLwotCi0vKiBUaGlzIG1pZ2h0IHdvcmsgZm9yIE1TLURPUyAodW50ZXN0ZWQgdGhvdWdoKTogKi8KLQotdm9pZAotUHlPU19Jbml0SW50ZXJydXB0cyh2b2lkKQotewotfQotCi12b2lkCi1QeU9TX0ZpbmlJbnRlcnJ1cHRzKHZvaWQpCi17Ci19Ci0KLWludAotUHlPU19JbnRlcnJ1cHRPY2N1cnJlZCh2b2lkKQotewotICAgIGludCBpbnRlcnJ1cHRlZCA9IDA7Ci0gICAgd2hpbGUgKGtiaGl0KCkpIHsKLSAgICAgICAgaWYgKGdldGNoKCkgPT0gJ1wwMDMnKQotICAgICAgICAgICAgaW50ZXJydXB0ZWQgPSAxOwotICAgIH0KLSAgICByZXR1cm4gaW50ZXJydXB0ZWQ7Ci19Ci0KLSNlbmRpZiAvKiBfX0dOVUNfXyAqLwotCi0jZGVmaW5lIE9LCi0KLSNlbmRpZiAvKiBNU0RPUyAmJiAhUVVJQ0tXSU4gKi8KLQotCi0jaWZuZGVmIE9LCi0KLS8qIERlZmF1bHQgdmVyc2lvbiAtLSBmb3IgcmVhbCBvcGVyYXRpbmcgc3lzdGVtcyBhbmQgZm9yIFN0YW5kYXJkIEMgKi8KLQotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0KLXN0YXRpYyBpbnQgaW50ZXJydXB0ZWQ7Ci0KLXZvaWQKLVB5RXJyX1NldEludGVycnVwdCh2b2lkKQotewotICAgIGludGVycnVwdGVkID0gMTsKLX0KLQotZXh0ZXJuIGludCBQeUVycl9DaGVja1NpZ25hbHModm9pZCk7Ci0KLXN0YXRpYyBpbnQKLWNoZWNrc2lnbmFsc193aXRoYXJnKHZvaWQgKiBhcmcpCi17Ci0gICAgcmV0dXJuIFB5RXJyX0NoZWNrU2lnbmFscygpOwotfQotCi1zdGF0aWMgdm9pZAotaW50Y2F0Y2hlcihpbnQgc2lnKQotewotICAgIGV4dGVybiB2b2lkIFB5X0V4aXQoaW50KTsKLSAgICBzdGF0aWMgY2hhciBtZXNzYWdlW10gPQotInB5dGhvbjogdG8gaW50ZXJydXB0IGEgdHJ1bHkgaGFuZ2luZyBQeXRob24gcHJvZ3JhbSwgaW50ZXJydXB0IG9uY2UgbW9yZS5cbiI7Ci0gICAgc3dpdGNoIChpbnRlcnJ1cHRlZCsrKSB7Ci0gICAgY2FzZSAwOgotICAgICAgICBicmVhazsKLSAgICBjYXNlIDE6Ci0gICAgICAgIHdyaXRlKDIsIG1lc3NhZ2UsIHN0cmxlbihtZXNzYWdlKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgMjoKLSAgICAgICAgaW50ZXJydXB0ZWQgPSAwOwotICAgICAgICBQeV9FeGl0KDEpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgUHlPU19zZXRzaWcoU0lHSU5ULCBpbnRjYXRjaGVyKTsKLSAgICBQeV9BZGRQZW5kaW5nQ2FsbChjaGVja3NpZ25hbHNfd2l0aGFyZywgTlVMTCk7Ci19Ci0KLXN0YXRpYyB2b2lkICgqb2xkX3NpZ2ludGhhbmRsZXIpKGludCkgPSBTSUdfREZMOwotCi12b2lkCi1QeU9TX0luaXRJbnRlcnJ1cHRzKHZvaWQpCi17Ci0gICAgaWYgKChvbGRfc2lnaW50aGFuZGxlciA9IFB5T1Nfc2V0c2lnKFNJR0lOVCwgU0lHX0lHTikpICE9IFNJR19JR04pCi0gICAgICAgIFB5T1Nfc2V0c2lnKFNJR0lOVCwgaW50Y2F0Y2hlcik7Ci19Ci0KLXZvaWQKLVB5T1NfRmluaUludGVycnVwdHModm9pZCkKLXsKLSAgICBQeU9TX3NldHNpZyhTSUdJTlQsIG9sZF9zaWdpbnRoYW5kbGVyKTsKLX0KLQotaW50Ci1QeU9TX0ludGVycnVwdE9jY3VycmVkKHZvaWQpCi17Ci0gICAgaWYgKCFpbnRlcnJ1cHRlZCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgaW50ZXJydXB0ZWQgPSAwOwotICAgIHJldHVybiAxOwotfQotCi0jZW5kaWYgLyogIU9LICovCi0KLXZvaWQKLVB5T1NfQWZ0ZXJGb3JrKHZvaWQpCi17Ci0jaWZkZWYgV0lUSF9USFJFQUQKLSAgICBQeUV2YWxfUmVJbml0VGhyZWFkcygpOwotICAgIFB5VGhyZWFkX1JlSW5pdFRMUygpOwotI2VuZGlmCi19CmRpZmYgLS1naXQgYS9QYXJzZXIvbXlyZWFkbGluZS5jIGIvUGFyc2VyL215cmVhZGxpbmUuYwppbmRleCA5M2VkZDdmLi5kODY0NjIzIDEwMDY0NAotLS0gYS9QYXJzZXIvbXlyZWFkbGluZS5jCisrKyBiL1BhcnNlci9teXJlYWRsaW5lLmMKQEAgLTM1LDEyICszNSwxMSBAQAogc3RhdGljIGludAogbXlfZmdldHMoY2hhciAqYnVmLCBpbnQgbGVuLCBGSUxFICpmcCkKIHsKKyNpZmRlZiBNU19XSU5ET1dTCisgICAgSEFORExFIGhJbnRlcnJ1cHRFdmVudDsKKyNlbmRpZgogICAgIGNoYXIgKnA7CiAgICAgaW50IGVycjsKLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgaW50IGk7Ci0jZW5kaWYKLQogICAgIHdoaWxlICgxKSB7CiAgICAgICAgIGlmIChQeU9TX0lucHV0SG9vayAhPSBOVUxMKQogICAgICAgICAgICAgKHZvaWQpKFB5T1NfSW5wdXRIb29rKSgpOwpAQCAtNTcsMjAgKzU2LDI0IEBACiAgICAgICAgIC8qIEN0cmwtQyBhbnl3aGVyZSBvbiB0aGUgbGluZSBvciBDdHJsLVogaWYgdGhlIG9ubHkgY2hhcmFjdGVyCiAgICAgICAgICAgIG9uIGEgbGluZSB3aWxsIHNldCBFUlJPUl9PUEVSQVRJT05fQUJPUlRFRC4gVW5kZXIgbm9ybWFsCiAgICAgICAgICAgIGNpcmN1bXN0YW5jZXMgQ3RybC1DIHdpbGwgYWxzbyBoYXZlIGNhdXNlZCB0aGUgU0lHSU5UIGhhbmRsZXIKLSAgICAgICAgICAgdG8gZmlyZS4gVGhpcyBzaWduYWwgZmlyZXMgaW4gYW5vdGhlciB0aHJlYWQgYW5kIGlzIG5vdAotICAgICAgICAgICBndWFyYW50ZWVkIHRvIGhhdmUgb2NjdXJyZWQgYmVmb3JlIHRoaXMgcG9pbnQgaW4gdGhlIGNvZGUuCisgICAgICAgICAgIHRvIGZpcmUgd2hpY2ggd2lsbCBoYXZlIHNldCB0aGUgZXZlbnQgb2JqZWN0IHJldHVybmVkIGJ5CisgICAgICAgICAgIF9QeU9TX1NpZ2ludEV2ZW50LiBUaGlzIHNpZ25hbCBmaXJlcyBpbiBhbm90aGVyIHRocmVhZCBhbmQKKyAgICAgICAgICAgaXMgbm90IGd1YXJhbnRlZWQgdG8gaGF2ZSBvY2N1cnJlZCBiZWZvcmUgdGhpcyBwb2ludCBpbiB0aGUKKyAgICAgICAgICAgY29kZS4KIAotICAgICAgICAgICBUaGVyZWZvcmU6IGNoZWNrIGluIGEgc21hbGwgbG9vcCB0byBzZWUgaWYgdGhlIHRyaWdnZXIgaGFzCi0gICAgICAgICAgIGZpcmVkLCBpbiB3aGljaCBjYXNlIGFzc3VtZSB0aGlzIGlzIGEgQ3RybC1DIGV2ZW50LiBJZiBpdAotICAgICAgICAgICBoYXNuJ3QgZmlyZWQgd2l0aGluIDEwbXMgYXNzdW1lIHRoYXQgdGhpcyBpcyBhIEN0cmwtWiBvbiBpdHMKLSAgICAgICAgICAgb3duIG9yIHRoYXQgdGhlIHNpZ25hbCBpc24ndCBnb2luZyB0byBmaXJlIGZvciBzb21lIG90aGVyCi0gICAgICAgICAgIHJlYXNvbiBhbmQgZHJvcCB0aHJvdWdoIHRvIGNoZWNrIGZvciBFT0YuCisgICAgICAgICAgIFRoZXJlZm9yZTogY2hlY2sgd2hldGhlciB0aGUgZXZlbnQgaXMgc2V0IHdpdGggYSBzbWFsbCB0aW1lb3V0LgorICAgICAgICAgICBJZiBpdCBpcywgYXNzdW1lIHRoaXMgaXMgYSBDdHJsLUMgYW5kIHJlc2V0IHRoZSBldmVudC4gSWYgaXQKKyAgICAgICAgICAgaXNuJ3Qgc2V0IGFzc3VtZSB0aGF0IHRoaXMgaXMgYSBDdHJsLVogb24gaXRzIG93biBhbmQgZHJvcAorICAgICAgICAgICB0aHJvdWdoIHRvIGNoZWNrIGZvciBFT0YuCiAgICAgICAgICovCiAgICAgICAgIGlmIChHZXRMYXN0RXJyb3IoKT09RVJST1JfT1BFUkFUSU9OX0FCT1JURUQpIHsKLSAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T1NfSW50ZXJydXB0T2NjdXJyZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICBTbGVlcCgxKTsKKyAgICAgICAgICAgIGhJbnRlcnJ1cHRFdmVudCA9IF9QeU9TX1NpZ2ludEV2ZW50KCk7CisgICAgICAgICAgICBzd2l0Y2ggKFdhaXRGb3JTaW5nbGVPYmplY3QoaEludGVycnVwdEV2ZW50LCAxMCkpIHsKKyAgICAgICAgICAgIGNhc2UgV0FJVF9PQkpFQ1RfMDoKKyAgICAgICAgICAgICAgICBSZXNldEV2ZW50KGhJbnRlcnJ1cHRFdmVudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7IC8qIEludGVycnVwdCAqLworICAgICAgICAgICAgY2FzZSBXQUlUX0ZBSUxFRDoKKyAgICAgICAgICAgICAgICByZXR1cm4gLTI7IC8qIEVycm9yICovCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRpZiAvKiBNU19XSU5ET1dTICovCkBAIC05MCw3ICs5Myw3IEBACiAjZW5kaWYKICAgICAgICAgICAgIGlmIChzIDwgMCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0JICAgIC8qIHRyeSBhZ2FpbiAqLworICAgICAgICAvKiB0cnkgYWdhaW4gKi8KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1BhcnNlci9wYXJzZXRvay5jIGIvUGFyc2VyL3BhcnNldG9rLmMKaW5kZXggNzNlN2UzYy4uN2JlYjczNSAxMDA2NDQKLS0tIGEvUGFyc2VyL3BhcnNldG9rLmMKKysrIGIvUGFyc2VyL3BhcnNldG9rLmMKQEAgLTEzLDcgKzEzLDcgQEAKIAogLyogRm9yd2FyZCAqLwogc3RhdGljIG5vZGUgKnBhcnNldG9rKHN0cnVjdCB0b2tfc3RhdGUgKiwgZ3JhbW1hciAqLCBpbnQsIHBlcnJkZXRhaWwgKiwgaW50ICopOwotc3RhdGljIHZvaWQgaW5pdGVycihwZXJyZGV0YWlsICplcnJfcmV0LCBjb25zdCBjaGFyKiBmaWxlbmFtZSk7CitzdGF0aWMgaW50IGluaXRlcnIocGVycmRldGFpbCAqZXJyX3JldCwgY29uc3QgY2hhciogZmlsZW5hbWUpOwogCiAvKiBQYXJzZSBpbnB1dCBjb21pbmcgZnJvbSBhIHN0cmluZy4gIFJldHVybiBlcnJvciBjb2RlLCBwcmludCBzb21lIGVycm9ycy4gKi8KIG5vZGUgKgpAQCAtNDgsNyArNDgsOCBAQAogICAgIHN0cnVjdCB0b2tfc3RhdGUgKnRvazsKICAgICBpbnQgZXhlY19pbnB1dCA9IHN0YXJ0ID09IGZpbGVfaW5wdXQ7CiAKLSAgICBpbml0ZXJyKGVycl9yZXQsIGZpbGVuYW1lKTsKKyAgICBpZiAoaW5pdGVycihlcnJfcmV0LCBmaWxlbmFtZSkgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGlmICgqZmxhZ3MgJiBQeVBBUlNFX0lHTk9SRV9DT09LSUUpCiAgICAgICAgIHRvayA9IFB5VG9rZW5pemVyX0Zyb21VVEY4KHMsIGV4ZWNfaW5wdXQpOwpAQCAtNTksNyArNjAsMTAgQEAKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogCi0gICAgdG9rLT5maWxlbmFtZSA9IGZpbGVuYW1lID8gZmlsZW5hbWUgOiAiPHN0cmluZz4iOworI2lmbmRlZiBQR0VOCisgICAgUHlfSU5DUkVGKGVycl9yZXQtPmZpbGVuYW1lKTsKKyAgICB0b2stPmZpbGVuYW1lID0gZXJyX3JldC0+ZmlsZW5hbWU7CisjZW5kaWYKICAgICByZXR1cm4gcGFyc2V0b2sodG9rLCBnLCBzdGFydCwgZXJyX3JldCwgZmxhZ3MpOwogfQogCkBAIC05MCwxMyArOTQsMTcgQEAKIHsKICAgICBzdHJ1Y3QgdG9rX3N0YXRlICp0b2s7CiAKLSAgICBpbml0ZXJyKGVycl9yZXQsIGZpbGVuYW1lKTsKKyAgICBpZiAoaW5pdGVycihlcnJfcmV0LCBmaWxlbmFtZSkgPCAwKQorICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGlmICgodG9rID0gUHlUb2tlbml6ZXJfRnJvbUZpbGUoZnAsIChjaGFyICopZW5jLCBwczEsIHBzMikpID09IE5VTEwpIHsKICAgICAgICAgZXJyX3JldC0+ZXJyb3IgPSBFX05PTUVNOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgdG9rLT5maWxlbmFtZSA9IGZpbGVuYW1lOworI2lmbmRlZiBQR0VOCisgICAgUHlfSU5DUkVGKGVycl9yZXQtPmZpbGVuYW1lKTsKKyAgICB0b2stPmZpbGVuYW1lID0gZXJyX3JldC0+ZmlsZW5hbWU7CisjZW5kaWYKICAgICByZXR1cm4gcGFyc2V0b2sodG9rLCBnLCBzdGFydCwgZXJyX3JldCwgZmxhZ3MpOwogfQogCkBAIC0xMjcsNyArMTM1LDcgQEAKIHsKICAgICBwYXJzZXJfc3RhdGUgKnBzOwogICAgIG5vZGUgKm47Ci0gICAgaW50IHN0YXJ0ZWQgPSAwLCBoYW5kbGluZ19pbXBvcnQgPSAwLCBoYW5kbGluZ193aXRoID0gMDsKKyAgICBpbnQgc3RhcnRlZCA9IDA7CiAKICAgICBpZiAoKHBzID0gUHlQYXJzZXJfTmV3KGcsIHN0YXJ0KSkgPT0gTlVMTCkgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIm5vIG1lbSBmb3IgbmV3IHBhcnNlclxuIik7CkBAIC0xNTQsNyArMTYyLDYgQEAKICAgICAgICAgfQogICAgICAgICBpZiAodHlwZSA9PSBFTkRNQVJLRVIgJiYgc3RhcnRlZCkgewogICAgICAgICAgICAgdHlwZSA9IE5FV0xJTkU7IC8qIEFkZCBhbiBleHRyYSBuZXdsaW5lICovCi0gICAgICAgICAgICBoYW5kbGluZ193aXRoID0gaGFuZGxpbmdfaW1wb3J0ID0gMDsKICAgICAgICAgICAgIHN0YXJ0ZWQgPSAwOwogICAgICAgICAgICAgLyogQWRkIHRoZSByaWdodCBudW1iZXIgb2YgZGVkZW50IHRva2VucywKICAgICAgICAgICAgICAgIGV4Y2VwdCBpZiBhIGNlcnRhaW4gZmxhZyBpcyBnaXZlbiAtLQpAQCAtMjE3LDYgKzIyNCwzNiBAQAogICAgIGlmIChlcnJfcmV0LT5lcnJvciA9PSBFX0RPTkUpIHsKICAgICAgICAgbiA9IHBzLT5wX3RyZWU7CiAgICAgICAgIHBzLT5wX3RyZWUgPSBOVUxMOworCisjaWZuZGVmIFBHRU4KKyAgICAgICAgLyogQ2hlY2sgdGhhdCB0aGUgc291cmNlIGZvciBhIHNpbmdsZSBpbnB1dCBzdGF0ZW1lbnQgcmVhbGx5CisgICAgICAgICAgIGlzIGEgc2luZ2xlIHN0YXRlbWVudCBieSBsb29raW5nIGF0IHdoYXQgaXMgbGVmdCBpbiB0aGUKKyAgICAgICAgICAgYnVmZmVyIGFmdGVyIHBhcnNpbmcuICBUcmFpbGluZyB3aGl0ZXNwYWNlIGFuZCBjb21tZW50cworICAgICAgICAgICBhcmUgT0suICAqLworICAgICAgICBpZiAoc3RhcnQgPT0gc2luZ2xlX2lucHV0KSB7CisgICAgICAgICAgICBjaGFyICpjdXIgPSB0b2stPmN1cjsKKyAgICAgICAgICAgIGNoYXIgYyA9ICp0b2stPmN1cjsKKworICAgICAgICAgICAgZm9yICg7OykgeworICAgICAgICAgICAgICAgIHdoaWxlIChjID09ICcgJyB8fCBjID09ICdcdCcgfHwgYyA9PSAnXG4nIHx8IGMgPT0gJ1wwMTQnKQorICAgICAgICAgICAgICAgICAgICBjID0gKisrY3VyOworCisgICAgICAgICAgICAgICAgaWYgKCFjKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGlmIChjICE9ICcjJykgeworICAgICAgICAgICAgICAgICAgICBlcnJfcmV0LT5lcnJvciA9IEVfQkFEU0lOR0xFOworICAgICAgICAgICAgICAgICAgICBQeU5vZGVfRnJlZShuKTsKKyAgICAgICAgICAgICAgICAgICAgbiA9IE5VTEw7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIC8qIFN1Y2sgdXAgY29tbWVudC4gKi8KKyAgICAgICAgICAgICAgICB3aGlsZSAoYyAmJiBjICE9ICdcbicpCisgICAgICAgICAgICAgICAgICAgIGMgPSAqKytjdXI7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KICAgICBlbHNlCiAgICAgICAgIG4gPSBOVUxMOwpAQCAtMjI3LDcgKzI2NCw3IEBACiAgICAgUHlQYXJzZXJfRGVsZXRlKHBzKTsKIAogICAgIGlmIChuID09IE5VTEwpIHsKLSAgICAgICAgaWYgKHRvay0+bGluZW5vIDw9IDEgJiYgdG9rLT5kb25lID09IEVfRU9GKQorICAgICAgICBpZiAodG9rLT5kb25lID09IEVfRU9GKQogICAgICAgICAgICAgZXJyX3JldC0+ZXJyb3IgPSBFX0VPRjsKICAgICAgICAgZXJyX3JldC0+bGluZW5vID0gdG9rLT5saW5lbm87CiAgICAgICAgIGlmICh0b2stPmJ1ZiAhPSBOVUxMKSB7CkBAIC0yNzAsMTQgKzMwNywyNCBAQAogICAgIHJldHVybiBuOwogfQogCi1zdGF0aWMgdm9pZAorc3RhdGljIGludAogaW5pdGVycihwZXJyZGV0YWlsICplcnJfcmV0LCBjb25zdCBjaGFyICpmaWxlbmFtZSkKIHsKICAgICBlcnJfcmV0LT5lcnJvciA9IEVfT0s7Ci0gICAgZXJyX3JldC0+ZmlsZW5hbWUgPSBmaWxlbmFtZTsKICAgICBlcnJfcmV0LT5saW5lbm8gPSAwOwogICAgIGVycl9yZXQtPm9mZnNldCA9IDA7CiAgICAgZXJyX3JldC0+dGV4dCA9IE5VTEw7CiAgICAgZXJyX3JldC0+dG9rZW4gPSAtMTsKICAgICBlcnJfcmV0LT5leHBlY3RlZCA9IC0xOworI2lmbmRlZiBQR0VOCisgICAgaWYgKGZpbGVuYW1lKQorICAgICAgICBlcnJfcmV0LT5maWxlbmFtZSA9IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQoZmlsZW5hbWUpOworICAgIGVsc2UKKyAgICAgICAgZXJyX3JldC0+ZmlsZW5hbWUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiPHN0cmluZz4iKTsKKyAgICBpZiAoZXJyX3JldC0+ZmlsZW5hbWUgPT0gTlVMTCkgeworICAgICAgICBlcnJfcmV0LT5lcnJvciA9IEVfRVJST1I7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisjZW5kaWYKKyAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1BhcnNlci9wYXJzZXRva19wZ2VuLmMgYi9QYXJzZXIvcGFyc2V0b2tfcGdlbi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk3YjkyODgKLS0tIC9kZXYvbnVsbAorKysgYi9QYXJzZXIvcGFyc2V0b2tfcGdlbi5jCkBAIC0wLDAgKzEsMiBAQAorI2RlZmluZSBQR0VOCisjaW5jbHVkZSAicGFyc2V0b2suYyIKZGlmZiAtLWdpdCBhL1BhcnNlci9wZ2VubWFpbi5jIGIvUGFyc2VyL3BnZW5tYWluLmMKaW5kZXggNGI3YjU1YS4uNTJiODM4MCAxMDA2NDQKLS0tIGEvUGFyc2VyL3BnZW5tYWluLmMKKysrIGIvUGFyc2VyL3BnZW5tYWluLmMKQEAgLTI5LDYgKzI5LDggQEAKIC8qIEZvcndhcmQgKi8KIGdyYW1tYXIgKmdldGdyYW1tYXIoY2hhciAqZmlsZW5hbWUpOwogCit2b2lkIFB5X0V4aXQoaW50KSBfUHlfTk9fUkVUVVJOOworCiB2b2lkCiBQeV9FeGl0KGludCBzdHMpCiB7CmRpZmYgLS1naXQgYS9QYXJzZXIvdG9rZW5pemVyLmMgYi9QYXJzZXIvdG9rZW5pemVyLmMKaW5kZXggNWJhMTJhNC4uOTNhNGE1YyAxMDA2NDQKLS0tIGEvUGFyc2VyL3Rva2VuaXplci5jCisrKyBiL1BhcnNlci90b2tlbml6ZXIuYwpAQCAtMTI4LDcgKzEyOCw2IEBACiAgICAgdG9rLT5wcm9tcHQgPSB0b2stPm5leHRwcm9tcHQgPSBOVUxMOwogICAgIHRvay0+bGluZW5vID0gMDsKICAgICB0b2stPmxldmVsID0gMDsKLSAgICB0b2stPmZpbGVuYW1lID0gTlVMTDsKICAgICB0b2stPmFsdHdhcm5pbmcgPSAxOwogICAgIHRvay0+YWx0ZXJyb3IgPSAxOwogICAgIHRvay0+YWx0dGFic2l6ZSA9IDE7CkBAIC0xNDAsNiArMTM5LDcgQEAKICAgICB0b2stPmVuY29kaW5nID0gTlVMTDsKICAgICB0b2stPmNvbnRfbGluZSA9IDA7CiAjaWZuZGVmIFBHRU4KKyAgICB0b2stPmZpbGVuYW1lID0gTlVMTDsKICAgICB0b2stPmRlY29kaW5nX3JlYWRsaW5lID0gTlVMTDsKICAgICB0b2stPmRlY29kaW5nX2J1ZmZlciA9IE5VTEw7CiAjZW5kaWYKQEAgLTQ2Miw2ICs0NjIsOCBAQAogZnBfc2V0cmVhZGwoc3RydWN0IHRva19zdGF0ZSAqdG9rLCBjb25zdCBjaGFyKiBlbmMpCiB7CiAgICAgUHlPYmplY3QgKnJlYWRsaW5lID0gTlVMTCwgKnN0cmVhbSA9IE5VTEwsICppbyA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIob3Blbik7CisgICAgX1B5X0lERU5USUZJRVIocmVhZGxpbmUpOwogICAgIGludCBmZDsKIAogICAgIGlvID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlTm9CbG9jaygiaW8iKTsKQEAgLTQ3NCwxMyArNDc2LDEzIEBACiAgICAgICAgIGdvdG8gY2xlYW51cDsKICAgICB9CiAKLSAgICBzdHJlYW0gPSBQeU9iamVjdF9DYWxsTWV0aG9kKGlvLCAib3BlbiIsICJpc2lzT09PIiwKKyAgICBzdHJlYW0gPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKGlvLCAmUHlJZF9vcGVuLCAiaXNpc09PTyIsCiAgICAgICAgICAgICAgICAgICAgIGZkLCAiciIsIC0xLCBlbmMsIFB5X05vbmUsIFB5X05vbmUsIFB5X0ZhbHNlKTsKICAgICBpZiAoc3RyZWFtID09IE5VTEwpCiAgICAgICAgIGdvdG8gY2xlYW51cDsKIAogICAgIFB5X1hERUNSRUYodG9rLT5kZWNvZGluZ19yZWFkbGluZSk7Ci0gICAgcmVhZGxpbmUgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHN0cmVhbSwgInJlYWRsaW5lIik7CisgICAgcmVhZGxpbmUgPSBfUHlPYmplY3RfR2V0QXR0cklkKHN0cmVhbSwgJlB5SWRfcmVhZGxpbmUpOwogICAgIHRvay0+ZGVjb2RpbmdfcmVhZGxpbmUgPSByZWFkbGluZTsKIAogICAgIC8qIFRoZSBmaWxlIGhhcyBiZWVuIHJlb3BlbmVkOyBwYXJzaW5nIHdpbGwgcmVzdGFydCBmcm9tCkBAIC01NDUsNyArNTQ3LDYgQEAKIHsKICAgICBjaGFyICpsaW5lID0gTlVMTDsKICAgICBpbnQgYmFkY2hhciA9IDA7Ci0gICAgUHlPYmplY3QgKmZpbGVuYW1lOwogICAgIGZvciAoOzspIHsKICAgICAgICAgaWYgKHRvay0+ZGVjb2Rpbmdfc3RhdGUgPT0gU1RBVEVfTk9STUFMKSB7CiAgICAgICAgICAgICAvKiBXZSBhbHJlYWR5IGhhdmUgYSBjb2RlYyBhc3NvY2lhdGVkIHdpdGgKQEAgLTU4NiwxOSArNTg3LDEyIEBACiAgICAgaWYgKGJhZGNoYXIpIHsKICAgICAgICAgLyogTmVlZCB0byBhZGQgMSB0byB0aGUgbGluZSBudW1iZXIsIHNpbmNlIHRoaXMgbGluZQogICAgICAgICAgICBoYXMgbm90IGJlZW4gY291bnRlZCwgeWV0LiAgKi8KLSAgICAgICAgaWYgKHRvay0+ZmlsZW5hbWUgIT0gTlVMTCkKLSAgICAgICAgICAgIGZpbGVuYW1lID0gUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdCh0b2stPmZpbGVuYW1lKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZmlsZW5hbWUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiPGZpbGU+Iik7Ci0gICAgICAgIGlmIChmaWxlbmFtZSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfU3ludGF4RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICJOb24tVVRGLTggY29kZSBzdGFydGluZyB3aXRoICdcXHglLjJ4JyAiCi0gICAgICAgICAgICAgICAgICAgICJpbiBmaWxlICVVIG9uIGxpbmUgJWksICIKLSAgICAgICAgICAgICAgICAgICAgImJ1dCBubyBlbmNvZGluZyBkZWNsYXJlZDsgIgotICAgICAgICAgICAgICAgICAgICAic2VlIGh0dHA6Ly9weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMjYzLyBmb3IgZGV0YWlscyIsCi0gICAgICAgICAgICAgICAgICAgIGJhZGNoYXIsIGZpbGVuYW1lLCB0b2stPmxpbmVubyArIDEpOwotICAgICAgICAgICAgUHlfREVDUkVGKGZpbGVuYW1lKTsKLSAgICAgICAgfQorICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfU3ludGF4RXJyb3IsCisgICAgICAgICAgICAgICAgIk5vbi1VVEYtOCBjb2RlIHN0YXJ0aW5nIHdpdGggJ1xceCUuMngnICIKKyAgICAgICAgICAgICAgICAiaW4gZmlsZSAlVSBvbiBsaW5lICVpLCAiCisgICAgICAgICAgICAgICAgImJ1dCBubyBlbmNvZGluZyBkZWNsYXJlZDsgIgorICAgICAgICAgICAgICAgICJzZWUgaHR0cDovL3B5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAyNjMvIGZvciBkZXRhaWxzIiwKKyAgICAgICAgICAgICAgICBiYWRjaGFyLCB0b2stPmZpbGVuYW1lLCB0b2stPmxpbmVubyArIDEpOwogICAgICAgICByZXR1cm4gZXJyb3JfcmV0KHRvayk7CiAgICAgfQogI2VuZGlmCkBAIC04NTYsNiArODUwLDcgQEAKICNpZm5kZWYgUEdFTgogICAgIFB5X1hERUNSRUYodG9rLT5kZWNvZGluZ19yZWFkbGluZSk7CiAgICAgUHlfWERFQ1JFRih0b2stPmRlY29kaW5nX2J1ZmZlcik7CisgICAgUHlfWERFQ1JFRih0b2stPmZpbGVuYW1lKTsKICNlbmRpZgogICAgIGlmICh0b2stPmZwICE9IE5VTEwgJiYgdG9rLT5idWYgIT0gTlVMTCkKICAgICAgICAgUHlNZW1fRlJFRSh0b2stPmJ1Zik7CkBAIC0xMjUwLDggKzEyNDUsMTMgQEAKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQogICAgIGlmICh0b2stPmFsdHdhcm5pbmcpIHsKLSAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoIiVzOiBpbmNvbnNpc3RlbnQgdXNlIG9mIHRhYnMgYW5kIHNwYWNlcyAiCisjaWZkZWYgUEdFTgorICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigiaW5jb25zaXN0ZW50IHVzZSBvZiB0YWJzIGFuZCBzcGFjZXMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAiaW4gaW5kZW50YXRpb25cbiIpOworI2Vsc2UKKyAgICAgICAgUHlTeXNfRm9ybWF0U3RkZXJyKCIlVTogaW5jb25zaXN0ZW50IHVzZSBvZiB0YWJzIGFuZCBzcGFjZXMgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAiaW4gaW5kZW50YXRpb25cbiIsIHRvay0+ZmlsZW5hbWUpOworI2VuZGlmCiAgICAgICAgIHRvay0+YWx0d2FybmluZyA9IDA7CiAgICAgfQogICAgIHJldHVybiAwOwpAQCAtMTI2MCwxNCArMTI2MCwxNiBAQAogI2lmZGVmIFBHRU4KICNkZWZpbmUgdmVyaWZ5X2lkZW50aWZpZXIodG9rKSAxCiAjZWxzZQotLyogVmVyaWZ5IHRoYXQgdGhlIGlkZW50aWZpZXIgZm9sbG93cyBQRVAgMzEzMS4gKi8KKy8qIFZlcmlmeSB0aGF0IHRoZSBpZGVudGlmaWVyIGZvbGxvd3MgUEVQIDMxMzEuCisgICBBbGwgaWRlbnRpZmllciBzdHJpbmdzIGFyZSBndWFyYW50ZWVkIHRvIGJlICJyZWFkeSIgdW5pY29kZSBvYmplY3RzLgorICovCiBzdGF0aWMgaW50CiB2ZXJpZnlfaWRlbnRpZmllcihzdHJ1Y3QgdG9rX3N0YXRlICp0b2spCiB7CiAgICAgUHlPYmplY3QgKnM7CiAgICAgaW50IHJlc3VsdDsKICAgICBzID0gUHlVbmljb2RlX0RlY29kZVVURjgodG9rLT5zdGFydCwgdG9rLT5jdXIgLSB0b2stPnN0YXJ0LCBOVUxMKTsKLSAgICBpZiAocyA9PSBOVUxMKSB7CisgICAgaWYgKHMgPT0gTlVMTCB8fCBQeVVuaWNvZGVfUkVBRFkocykgPT0gLTEpIHsKICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfVW5pY29kZURlY29kZUVycm9yKSkgewogICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgICAgIHRvay0+ZG9uZSA9IEVfSURFTlRJRklFUjsKQEAgLTE0MTAsMTMgKzE0MTIsMjAgQEAKICAgICAvKiBJZGVudGlmaWVyIChtb3N0IGZyZXF1ZW50IHRva2VuISkgKi8KICAgICBub25hc2NpaSA9IDA7CiAgICAgaWYgKGlzX3BvdGVudGlhbF9pZGVudGlmaWVyX3N0YXJ0KGMpKSB7Ci0gICAgICAgIC8qIFByb2Nlc3MgYiIiLCByIiIgYW5kIGJyIiIgKi8KLSAgICAgICAgaWYgKGMgPT0gJ2InIHx8IGMgPT0gJ0InKSB7Ci0gICAgICAgICAgICBjID0gdG9rX25leHRjKHRvayk7Ci0gICAgICAgICAgICBpZiAoYyA9PSAnIicgfHwgYyA9PSAnXCcnKQotICAgICAgICAgICAgICAgIGdvdG8gbGV0dGVyX3F1b3RlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChjID09ICdyJyB8fCBjID09ICdSJykgeworICAgICAgICAvKiBQcm9jZXNzIGIiIiwgciIiLCB1IiIsIGJyIiIgYW5kIHJiIiIgKi8KKyAgICAgICAgaW50IHNhd19iID0gMCwgc2F3X3IgPSAwLCBzYXdfdSA9IDA7CisgICAgICAgIHdoaWxlICgxKSB7CisgICAgICAgICAgICBpZiAoIShzYXdfYiB8fCBzYXdfdSkgJiYgKGMgPT0gJ2InIHx8IGMgPT0gJ0InKSkKKyAgICAgICAgICAgICAgICBzYXdfYiA9IDE7CisgICAgICAgICAgICAvKiBTaW5jZSB0aGlzIGlzIGEgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgc3VwcG9ydCBsaXRlcmFsIHdlIGRvbid0CisgICAgICAgICAgICAgICB3YW50IHRvIHN1cHBvcnQgaXQgaW4gYXJiaXRyYXJ5IG9yZGVyIGxpa2UgYnl0ZSBsaXRlcmFscy4gKi8KKyAgICAgICAgICAgIGVsc2UgaWYgKCEoc2F3X2IgfHwgc2F3X3UgfHwgc2F3X3IpICYmIChjID09ICd1JyB8fCBjID09ICdVJykpCisgICAgICAgICAgICAgICAgc2F3X3UgPSAxOworICAgICAgICAgICAgLyogdXIiIiBhbmQgcnUiIiBhcmUgbm90IHN1cHBvcnRlZCAqLworICAgICAgICAgICAgZWxzZSBpZiAoIShzYXdfciB8fCBzYXdfdSkgJiYgKGMgPT0gJ3InIHx8IGMgPT0gJ1InKSkKKyAgICAgICAgICAgICAgICBzYXdfciA9IDE7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjID0gdG9rX25leHRjKHRvayk7CiAgICAgICAgICAgICBpZiAoYyA9PSAnIicgfHwgYyA9PSAnXCcnKQogICAgICAgICAgICAgICAgIGdvdG8gbGV0dGVyX3F1b3RlOwpAQCAtMTY5MiwxNyArMTcwMSwxOCBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLS8qIEdldCAtKi0gZW5jb2RpbmcgLSotIGZyb20gYSBQeXRob24gZmlsZS4KKy8qIEdldCB0aGUgZW5jb2Rpbmcgb2YgYSBQeXRob24gZmlsZS4gQ2hlY2sgZm9yIHRoZSBjb2RpbmcgY29va2llIGFuZCBjaGVjayBpZgorICAgdGhlIGZpbGUgc3RhcnRzIHdpdGggYSBCT00uCiAKLSAgIFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZyByZXR1cm5zIE5VTEwgd2hlbiBpdCBjYW4ndCBmaW5kIHRoZSBlbmNvZGluZyBpbgotICAgdGhlIGZpcnN0IG9yIHNlY29uZCBsaW5lIG9mIHRoZSBmaWxlIChpbiB3aGljaCBjYXNlIHRoZSBlbmNvZGluZwotICAgc2hvdWxkIGJlIGFzc3VtZWQgdG8gYmUgUHlVbmljb2RlX0dldERlZmF1bHRFbmNvZGluZygpKS4KKyAgIFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZ0ZpbGVuYW1lKCkgcmV0dXJucyBOVUxMIHdoZW4gaXQgY2FuJ3QgZmluZCB0aGUKKyAgIGVuY29kaW5nIGluIHRoZSBmaXJzdCBvciBzZWNvbmQgbGluZSBvZiB0aGUgZmlsZSAoaW4gd2hpY2ggY2FzZSB0aGUgZW5jb2RpbmcKKyAgIHNob3VsZCBiZSBhc3N1bWVkIHRvIGJlIFVURi04KS4KIAotICAgVGhlIGNoYXIgKiByZXR1cm5lZCBpcyBtYWxsb2MnZWQgdmlhIFB5TWVtX01BTExPQygpIGFuZCB0aHVzIG11c3QgYmUgZnJlZWQKLSAgIGJ5IHRoZSBjYWxsZXIuCi0qLworICAgVGhlIGNoYXIqIHJldHVybmVkIGlzIG1hbGxvYydlZCB2aWEgUHlNZW1fTUFMTE9DKCkgYW5kIHRodXMgbXVzdCBiZSBmcmVlZAorICAgYnkgdGhlIGNhbGxlci4gKi8KKwogY2hhciAqCi1QeVRva2VuaXplcl9GaW5kRW5jb2RpbmcoaW50IGZkKQorUHlUb2tlbml6ZXJfRmluZEVuY29kaW5nRmlsZW5hbWUoaW50IGZkLCBQeU9iamVjdCAqZmlsZW5hbWUpCiB7CiAgICAgc3RydWN0IHRva19zdGF0ZSAqdG9rOwogICAgIEZJTEUgKmZwOwpAQCAtMTcyMSw2ICsxNzMxLDIwIEBACiAgICAgICAgIGZjbG9zZShmcCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KKyNpZm5kZWYgUEdFTgorICAgIGlmIChmaWxlbmFtZSAhPSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihmaWxlbmFtZSk7CisgICAgICAgIHRvay0+ZmlsZW5hbWUgPSBmaWxlbmFtZTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHRvay0+ZmlsZW5hbWUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiPHN0cmluZz4iKTsKKyAgICAgICAgaWYgKHRvay0+ZmlsZW5hbWUgPT0gTlVMTCkgeworICAgICAgICAgICAgZmNsb3NlKGZwKTsKKyAgICAgICAgICAgIFB5VG9rZW5pemVyX0ZyZWUodG9rKTsKKyAgICAgICAgICAgIHJldHVybiBlbmNvZGluZzsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgogICAgIHdoaWxlICh0b2stPmxpbmVubyA8IDIgJiYgdG9rLT5kb25lID09IEVfT0spIHsKICAgICAgICAgUHlUb2tlbml6ZXJfR2V0KHRvaywgJnBfc3RhcnQsICZwX2VuZCk7CiAgICAgfQpAQCAtMTczNCw2ICsxNzU4LDEyIEBACiAgICAgcmV0dXJuIGVuY29kaW5nOwogfQogCitjaGFyICoKK1B5VG9rZW5pemVyX0ZpbmRFbmNvZGluZyhpbnQgZmQpCit7CisgICAgcmV0dXJuIFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZ0ZpbGVuYW1lKGZkLCBOVUxMKTsKK30KKwogI2lmZGVmIFB5X0RFQlVHCiAKIHZvaWQKZGlmZiAtLWdpdCBhL1BhcnNlci90b2tlbml6ZXIuaCBiL1BhcnNlci90b2tlbml6ZXIuaAppbmRleCAyYmUzYmYyLi5lZDFmM2FhIDEwMDY0NAotLS0gYS9QYXJzZXIvdG9rZW5pemVyLmgKKysrIGIvUGFyc2VyL3Rva2VuaXplci5oCkBAIC00MCw3ICs0MCwxMyBAQAogICAgIGludCBsZXZlbDsgICAgICAgICAgLyogKCkgW10ge30gUGFyZW50aGVzZXMgbmVzdGluZyBsZXZlbCAqLwogICAgICAgICAgICAgLyogVXNlZCB0byBhbGxvdyBmcmVlIGNvbnRpbnVhdGlvbnMgaW5zaWRlIHRoZW0gKi8KICAgICAvKiBTdHVmZiBmb3IgY2hlY2tpbmcgb24gZGlmZmVyZW50IHRhYiBzaXplcyAqLwotICAgIGNvbnN0IGNoYXIgKmZpbGVuYW1lOyAgIC8qIGVuY29kZWQgdG8gdGhlIGZpbGVzeXN0ZW0gZW5jb2RpbmcgKi8KKyNpZm5kZWYgUEdFTgorICAgIC8qIHBnZW4gZG9lc24ndCBoYXZlIGFjY2VzcyB0byBQeXRob24gY29kZWNzLCBpdCBjYW5ub3QgZGVjb2RlIHRoZSBpbnB1dAorICAgICAgIGZpbGVuYW1lLiBUaGUgYnl0ZXMgZmlsZW5hbWUgbWlnaHQgYmUga2VwdCwgYnV0IGl0IGlzIG9ubHkgdXNlZCBieQorICAgICAgIGluZGVudGVycm9yKCkgYW5kIGl0IGlzIG5vdCByZWFsbHkgbmVlZGVkOiBwZ2VuIG9ubHkgY29tcGlsZXMgb25lIGZpbGUKKyAgICAgICAoR3JhbW1hci9HcmFtbWFyKS4gKi8KKyAgICBQeU9iamVjdCAqZmlsZW5hbWU7CisjZW5kaWYKICAgICBpbnQgYWx0d2FybmluZzsgICAgIC8qIElzc3VlIHdhcm5pbmcgaWYgYWx0ZXJuYXRlIHRhYnMgZG9uJ3QgbWF0Y2ggKi8KICAgICBpbnQgYWx0ZXJyb3I7ICAgICAgIC8qIElzc3VlIGVycm9yIGlmIGFsdGVybmF0ZSB0YWJzIGRvbid0IG1hdGNoICovCiAgICAgaW50IGFsdHRhYnNpemU7ICAgICAvKiBBbHRlcm5hdGUgdGFiIHNwYWNpbmcgKi8KQEAgLTY5LDcgKzc1LDYgQEAKIGV4dGVybiBpbnQgUHlUb2tlbml6ZXJfR2V0KHN0cnVjdCB0b2tfc3RhdGUgKiwgY2hhciAqKiwgY2hhciAqKik7CiBleHRlcm4gY2hhciAqIFB5VG9rZW5pemVyX1Jlc3RvcmVFbmNvZGluZyhzdHJ1Y3QgdG9rX3N0YXRlKiB0b2ssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuLCBpbnQgKm9mZnNldCk7Ci1leHRlcm4gY2hhciAqIFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZyhpbnQpOwogCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KZGlmZiAtLWdpdCBhL1B5dGhvbi9QeXRob24tYXN0LmMgYi9QeXRob24vUHl0aG9uLWFzdC5jCmluZGV4IGEyNzZiNmMuLjgwNWYyYjggMTAwNjQ0Ci0tLSBhL1B5dGhvbi9QeXRob24tYXN0LmMKKysrIGIvUHl0aG9uL1B5dGhvbi1hc3QuYwpAQCAtMSwxMyArMSw2IEBACiAvKiBGaWxlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IFBhcnNlci9hc2RsX2MucHkuICovCiAKLQotLyoKLSAgIF9fdmVyc2lvbl9fIDgyMTYzLgotCi0gICBUaGlzIG1vZHVsZSBtdXN0IGJlIGNvbW1pdHRlZCBzZXBhcmF0ZWx5IGFmdGVyIGVhY2ggQVNUIGdyYW1tYXIgY2hhbmdlOwotICAgVGhlIF9fdmVyc2lvbl9fIG51bWJlciBpcyBzZXQgdG8gdGhlIHJldmlzaW9uIG51bWJlciBvZiB0aGUgY29tbWl0Ci0gICBjb250YWluaW5nIHRoZSBncmFtbWFyIGNoYW5nZS4KLSovCisjaW5jbHVkZSA8c3RkZGVmLmg+CiAKICNpbmNsdWRlICJQeXRob24uaCIKICNpbmNsdWRlICJQeXRob24tYXN0LmgiCkBAIC0xNiw2ICs5LDcgQEAKIHN0YXRpYyBQeVR5cGVPYmplY3QgKm1vZF90eXBlOwogc3RhdGljIFB5T2JqZWN0KiBhc3Qyb2JqX21vZCh2b2lkKik7CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpNb2R1bGVfdHlwZTsKK19QeV9JREVOVElGSUVSKGJvZHkpOwogc3RhdGljIGNoYXIgKk1vZHVsZV9maWVsZHNbXT17CiAgICAgICAgICJib2R5IiwKIH07CkBAIC0zMiwxMiArMjYsMTggQEAKICAgICAgICAgImJvZHkiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKnN0bXRfdHlwZTsKK19QeV9JREVOVElGSUVSKGxpbmVubyk7CitfUHlfSURFTlRJRklFUihjb2xfb2Zmc2V0KTsKIHN0YXRpYyBjaGFyICpzdG10X2F0dHJpYnV0ZXNbXSA9IHsKICAgICAgICAgImxpbmVubyIsCiAgICAgICAgICJjb2xfb2Zmc2V0IiwKIH07CiBzdGF0aWMgUHlPYmplY3QqIGFzdDJvYmpfc3RtdCh2b2lkKik7CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpGdW5jdGlvbkRlZl90eXBlOworX1B5X0lERU5USUZJRVIobmFtZSk7CitfUHlfSURFTlRJRklFUihhcmdzKTsKK19QeV9JREVOVElGSUVSKGRlY29yYXRvcl9saXN0KTsKK19QeV9JREVOVElGSUVSKHJldHVybnMpOwogc3RhdGljIGNoYXIgKkZ1bmN0aW9uRGVmX2ZpZWxkc1tdPXsKICAgICAgICAgIm5hbWUiLAogICAgICAgICAiYXJncyIsCkBAIC00Niw2ICs0NiwxMCBAQAogICAgICAgICAicmV0dXJucyIsCiB9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqQ2xhc3NEZWZfdHlwZTsKK19QeV9JREVOVElGSUVSKGJhc2VzKTsKK19QeV9JREVOVElGSUVSKGtleXdvcmRzKTsKK19QeV9JREVOVElGSUVSKHN0YXJhcmdzKTsKK19QeV9JREVOVElGSUVSKGt3YXJncyk7CiBzdGF0aWMgY2hhciAqQ2xhc3NEZWZfZmllbGRzW109ewogICAgICAgICAibmFtZSIsCiAgICAgICAgICJiYXNlcyIsCkBAIC01NiwxMCArNjAsMTIgQEAKICAgICAgICAgImRlY29yYXRvcl9saXN0IiwKIH07CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpSZXR1cm5fdHlwZTsKK19QeV9JREVOVElGSUVSKHZhbHVlKTsKIHN0YXRpYyBjaGFyICpSZXR1cm5fZmllbGRzW109ewogICAgICAgICAidmFsdWUiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkRlbGV0ZV90eXBlOworX1B5X0lERU5USUZJRVIodGFyZ2V0cyk7CiBzdGF0aWMgY2hhciAqRGVsZXRlX2ZpZWxkc1tdPXsKICAgICAgICAgInRhcmdldHMiLAogfTsKQEAgLTY5LDEyICs3NSwxNiBAQAogICAgICAgICAidmFsdWUiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkF1Z0Fzc2lnbl90eXBlOworX1B5X0lERU5USUZJRVIodGFyZ2V0KTsKK19QeV9JREVOVElGSUVSKG9wKTsKIHN0YXRpYyBjaGFyICpBdWdBc3NpZ25fZmllbGRzW109ewogICAgICAgICAidGFyZ2V0IiwKICAgICAgICAgIm9wIiwKICAgICAgICAgInZhbHVlIiwKIH07CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpGb3JfdHlwZTsKK19QeV9JREVOVElGSUVSKGl0ZXIpOworX1B5X0lERU5USUZJRVIob3JlbHNlKTsKIHN0YXRpYyBjaGFyICpGb3JfZmllbGRzW109ewogICAgICAgICAidGFyZ2V0IiwKICAgICAgICAgIml0ZXIiLApAQCAtODIsNiArOTIsNyBAQAogICAgICAgICAib3JlbHNlIiwKIH07CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpXaGlsZV90eXBlOworX1B5X0lERU5USUZJRVIodGVzdCk7CiBzdGF0aWMgY2hhciAqV2hpbGVfZmllbGRzW109ewogICAgICAgICAidGVzdCIsCiAgICAgICAgICJib2R5IiwKQEAgLTk0LDM3ICsxMDUsNDEgQEAKICAgICAgICAgIm9yZWxzZSIsCiB9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqV2l0aF90eXBlOworX1B5X0lERU5USUZJRVIoaXRlbXMpOwogc3RhdGljIGNoYXIgKldpdGhfZmllbGRzW109ewotICAgICAgICAiY29udGV4dF9leHByIiwKLSAgICAgICAgIm9wdGlvbmFsX3ZhcnMiLAorICAgICAgICAiaXRlbXMiLAogICAgICAgICAiYm9keSIsCiB9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqUmFpc2VfdHlwZTsKK19QeV9JREVOVElGSUVSKGV4Yyk7CitfUHlfSURFTlRJRklFUihjYXVzZSk7CiBzdGF0aWMgY2hhciAqUmFpc2VfZmllbGRzW109ewogICAgICAgICAiZXhjIiwKICAgICAgICAgImNhdXNlIiwKIH07Ci1zdGF0aWMgUHlUeXBlT2JqZWN0ICpUcnlFeGNlcHRfdHlwZTsKLXN0YXRpYyBjaGFyICpUcnlFeGNlcHRfZmllbGRzW109eworc3RhdGljIFB5VHlwZU9iamVjdCAqVHJ5X3R5cGU7CitfUHlfSURFTlRJRklFUihoYW5kbGVycyk7CitfUHlfSURFTlRJRklFUihmaW5hbGJvZHkpOworc3RhdGljIGNoYXIgKlRyeV9maWVsZHNbXT17CiAgICAgICAgICJib2R5IiwKICAgICAgICAgImhhbmRsZXJzIiwKICAgICAgICAgIm9yZWxzZSIsCi19Owotc3RhdGljIFB5VHlwZU9iamVjdCAqVHJ5RmluYWxseV90eXBlOwotc3RhdGljIGNoYXIgKlRyeUZpbmFsbHlfZmllbGRzW109ewotICAgICAgICAiYm9keSIsCiAgICAgICAgICJmaW5hbGJvZHkiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkFzc2VydF90eXBlOworX1B5X0lERU5USUZJRVIobXNnKTsKIHN0YXRpYyBjaGFyICpBc3NlcnRfZmllbGRzW109ewogICAgICAgICAidGVzdCIsCiAgICAgICAgICJtc2ciLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkltcG9ydF90eXBlOworX1B5X0lERU5USUZJRVIobmFtZXMpOwogc3RhdGljIGNoYXIgKkltcG9ydF9maWVsZHNbXT17CiAgICAgICAgICJuYW1lcyIsCiB9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqSW1wb3J0RnJvbV90eXBlOworX1B5X0lERU5USUZJRVIobW9kdWxlKTsKK19QeV9JREVOVElGSUVSKGxldmVsKTsKIHN0YXRpYyBjaGFyICpJbXBvcnRGcm9tX2ZpZWxkc1tdPXsKICAgICAgICAgIm1vZHVsZSIsCiAgICAgICAgICJuYW1lcyIsCkBAIC0xNTIsMTcgKzE2NywyMSBAQAogfTsKIHN0YXRpYyBQeU9iamVjdCogYXN0Mm9ial9leHByKHZvaWQqKTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkJvb2xPcF90eXBlOworX1B5X0lERU5USUZJRVIodmFsdWVzKTsKIHN0YXRpYyBjaGFyICpCb29sT3BfZmllbGRzW109ewogICAgICAgICAib3AiLAogICAgICAgICAidmFsdWVzIiwKIH07CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpCaW5PcF90eXBlOworX1B5X0lERU5USUZJRVIobGVmdCk7CitfUHlfSURFTlRJRklFUihyaWdodCk7CiBzdGF0aWMgY2hhciAqQmluT3BfZmllbGRzW109ewogICAgICAgICAibGVmdCIsCiAgICAgICAgICJvcCIsCiAgICAgICAgICJyaWdodCIsCiB9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqVW5hcnlPcF90eXBlOworX1B5X0lERU5USUZJRVIob3BlcmFuZCk7CiBzdGF0aWMgY2hhciAqVW5hcnlPcF9maWVsZHNbXT17CiAgICAgICAgICJvcCIsCiAgICAgICAgICJvcGVyYW5kIiwKQEAgLTE3OSwxNSArMTk4LDE5IEBACiAgICAgICAgICJvcmVsc2UiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkRpY3RfdHlwZTsKK19QeV9JREVOVElGSUVSKGtleXMpOwogc3RhdGljIGNoYXIgKkRpY3RfZmllbGRzW109ewogICAgICAgICAia2V5cyIsCiAgICAgICAgICJ2YWx1ZXMiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKlNldF90eXBlOworX1B5X0lERU5USUZJRVIoZWx0cyk7CiBzdGF0aWMgY2hhciAqU2V0X2ZpZWxkc1tdPXsKICAgICAgICAgImVsdHMiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkxpc3RDb21wX3R5cGU7CitfUHlfSURFTlRJRklFUihlbHQpOworX1B5X0lERU5USUZJRVIoZ2VuZXJhdG9ycyk7CiBzdGF0aWMgY2hhciAqTGlzdENvbXBfZmllbGRzW109ewogICAgICAgICAiZWx0IiwKICAgICAgICAgImdlbmVyYXRvcnMiLApAQCAtMTk4LDYgKzIyMSw3IEBACiAgICAgICAgICJnZW5lcmF0b3JzIiwKIH07CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpEaWN0Q29tcF90eXBlOworX1B5X0lERU5USUZJRVIoa2V5KTsKIHN0YXRpYyBjaGFyICpEaWN0Q29tcF9maWVsZHNbXT17CiAgICAgICAgICJrZXkiLAogICAgICAgICAidmFsdWUiLApAQCAtMjEyLDEzICsyMzYsMjAgQEAKIHN0YXRpYyBjaGFyICpZaWVsZF9maWVsZHNbXT17CiAgICAgICAgICJ2YWx1ZSIsCiB9Oworc3RhdGljIFB5VHlwZU9iamVjdCAqWWllbGRGcm9tX3R5cGU7CitzdGF0aWMgY2hhciAqWWllbGRGcm9tX2ZpZWxkc1tdPXsKKyAgICAgICAgInZhbHVlIiwKK307CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpDb21wYXJlX3R5cGU7CitfUHlfSURFTlRJRklFUihvcHMpOworX1B5X0lERU5USUZJRVIoY29tcGFyYXRvcnMpOwogc3RhdGljIGNoYXIgKkNvbXBhcmVfZmllbGRzW109ewogICAgICAgICAibGVmdCIsCiAgICAgICAgICJvcHMiLAogICAgICAgICAiY29tcGFyYXRvcnMiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkNhbGxfdHlwZTsKK19QeV9JREVOVElGSUVSKGZ1bmMpOwogc3RhdGljIGNoYXIgKkNhbGxfZmllbGRzW109ewogICAgICAgICAiZnVuYyIsCiAgICAgICAgICJhcmdzIiwKQEAgLTIyNywxMCArMjU4LDEyIEBACiAgICAgICAgICJrd2FyZ3MiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKk51bV90eXBlOworX1B5X0lERU5USUZJRVIobik7CiBzdGF0aWMgY2hhciAqTnVtX2ZpZWxkc1tdPXsKICAgICAgICAgIm4iLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKlN0cl90eXBlOworX1B5X0lERU5USUZJRVIocyk7CiBzdGF0aWMgY2hhciAqU3RyX2ZpZWxkc1tdPXsKICAgICAgICAgInMiLAogfTsKQEAgLTI0MCwxMiArMjczLDE1IEBACiB9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqRWxsaXBzaXNfdHlwZTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkF0dHJpYnV0ZV90eXBlOworX1B5X0lERU5USUZJRVIoYXR0cik7CitfUHlfSURFTlRJRklFUihjdHgpOwogc3RhdGljIGNoYXIgKkF0dHJpYnV0ZV9maWVsZHNbXT17CiAgICAgICAgICJ2YWx1ZSIsCiAgICAgICAgICJhdHRyIiwKICAgICAgICAgImN0eCIsCiB9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqU3Vic2NyaXB0X3R5cGU7CitfUHlfSURFTlRJRklFUihzbGljZSk7CiBzdGF0aWMgY2hhciAqU3Vic2NyaXB0X2ZpZWxkc1tdPXsKICAgICAgICAgInZhbHVlIiwKICAgICAgICAgInNsaWNlIiwKQEAgLTI1Nyw2ICsyOTMsNyBAQAogICAgICAgICAiY3R4IiwKIH07CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpOYW1lX3R5cGU7CitfUHlfSURFTlRJRklFUihpZCk7CiBzdGF0aWMgY2hhciAqTmFtZV9maWVsZHNbXT17CiAgICAgICAgICJpZCIsCiAgICAgICAgICJjdHgiLApAQCAtMjg0LDEyICszMjEsMTYgQEAKIHN0YXRpYyBQeVR5cGVPYmplY3QgKnNsaWNlX3R5cGU7CiBzdGF0aWMgUHlPYmplY3QqIGFzdDJvYmpfc2xpY2Uodm9pZCopOwogc3RhdGljIFB5VHlwZU9iamVjdCAqU2xpY2VfdHlwZTsKK19QeV9JREVOVElGSUVSKGxvd2VyKTsKK19QeV9JREVOVElGSUVSKHVwcGVyKTsKK19QeV9JREVOVElGSUVSKHN0ZXApOwogc3RhdGljIGNoYXIgKlNsaWNlX2ZpZWxkc1tdPXsKICAgICAgICAgImxvd2VyIiwKICAgICAgICAgInVwcGVyIiwKICAgICAgICAgInN0ZXAiLAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKkV4dFNsaWNlX3R5cGU7CitfUHlfSURFTlRJRklFUihkaW1zKTsKIHN0YXRpYyBjaGFyICpFeHRTbGljZV9maWVsZHNbXT17CiAgICAgICAgICJkaW1zIiwKIH07CkBAIC0zNDUsNiArMzg2LDcgQEAKIHN0YXRpYyBQeVR5cGVPYmplY3QgKk5vdEluX3R5cGU7CiBzdGF0aWMgUHlUeXBlT2JqZWN0ICpjb21wcmVoZW5zaW9uX3R5cGU7CiBzdGF0aWMgUHlPYmplY3QqIGFzdDJvYmpfY29tcHJlaGVuc2lvbih2b2lkKik7CitfUHlfSURFTlRJRklFUihpZnMpOwogc3RhdGljIGNoYXIgKmNvbXByZWhlbnNpb25fZmllbGRzW109ewogICAgICAgICAidGFyZ2V0IiwKICAgICAgICAgIml0ZXIiLApAQCAtMzU3LDYgKzM5OSw3IEBACiB9Owogc3RhdGljIFB5T2JqZWN0KiBhc3Qyb2JqX2V4Y2VwdGhhbmRsZXIodm9pZCopOwogc3RhdGljIFB5VHlwZU9iamVjdCAqRXhjZXB0SGFuZGxlcl90eXBlOworX1B5X0lERU5USUZJRVIodHlwZSk7CiBzdGF0aWMgY2hhciAqRXhjZXB0SGFuZGxlcl9maWVsZHNbXT17CiAgICAgICAgICJ0eXBlIiwKICAgICAgICAgIm5hbWUiLApAQCAtMzY0LDYgKzQwNywxMyBAQAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKmFyZ3VtZW50c190eXBlOwogc3RhdGljIFB5T2JqZWN0KiBhc3Qyb2JqX2FyZ3VtZW50cyh2b2lkKik7CitfUHlfSURFTlRJRklFUih2YXJhcmcpOworX1B5X0lERU5USUZJRVIodmFyYXJnYW5ub3RhdGlvbik7CitfUHlfSURFTlRJRklFUihrd29ubHlhcmdzKTsKK19QeV9JREVOVElGSUVSKGt3YXJnKTsKK19QeV9JREVOVElGSUVSKGt3YXJnYW5ub3RhdGlvbik7CitfUHlfSURFTlRJRklFUihkZWZhdWx0cyk7CitfUHlfSURFTlRJRklFUihrd19kZWZhdWx0cyk7CiBzdGF0aWMgY2hhciAqYXJndW1lbnRzX2ZpZWxkc1tdPXsKICAgICAgICAgImFyZ3MiLAogICAgICAgICAidmFyYXJnIiwKQEAgLTM3Niw2ICs0MjYsOCBAQAogfTsKIHN0YXRpYyBQeVR5cGVPYmplY3QgKmFyZ190eXBlOwogc3RhdGljIFB5T2JqZWN0KiBhc3Qyb2JqX2FyZyh2b2lkKik7CitfUHlfSURFTlRJRklFUihhcmcpOworX1B5X0lERU5USUZJRVIoYW5ub3RhdGlvbik7CiBzdGF0aWMgY2hhciAqYXJnX2ZpZWxkc1tdPXsKICAgICAgICAgImFyZyIsCiAgICAgICAgICJhbm5vdGF0aW9uIiwKQEAgLTM4OCwxOSArNDQwLDU0IEBACiB9Owogc3RhdGljIFB5VHlwZU9iamVjdCAqYWxpYXNfdHlwZTsKIHN0YXRpYyBQeU9iamVjdCogYXN0Mm9ial9hbGlhcyh2b2lkKik7CitfUHlfSURFTlRJRklFUihhc25hbWUpOwogc3RhdGljIGNoYXIgKmFsaWFzX2ZpZWxkc1tdPXsKICAgICAgICAgIm5hbWUiLAogICAgICAgICAiYXNuYW1lIiwKIH07CitzdGF0aWMgUHlUeXBlT2JqZWN0ICp3aXRoaXRlbV90eXBlOworc3RhdGljIFB5T2JqZWN0KiBhc3Qyb2JqX3dpdGhpdGVtKHZvaWQqKTsKK19QeV9JREVOVElGSUVSKGNvbnRleHRfZXhwcik7CitfUHlfSURFTlRJRklFUihvcHRpb25hbF92YXJzKTsKK3N0YXRpYyBjaGFyICp3aXRoaXRlbV9maWVsZHNbXT17CisgICAgICAgICJjb250ZXh0X2V4cHIiLAorICAgICAgICAib3B0aW9uYWxfdmFycyIsCit9OwogCiAKK3R5cGVkZWYgc3RydWN0IHsKKyAgICBQeU9iamVjdF9IRUFECisgICAgUHlPYmplY3QgKmRpY3Q7Cit9IEFTVF9vYmplY3Q7CisKK3N0YXRpYyB2b2lkCithc3RfZGVhbGxvYyhBU1Rfb2JqZWN0ICpzZWxmKQoreworICAgIFB5X0NMRUFSKHNlbGYtPmRpY3QpOworICAgIFB5X1RZUEUoc2VsZiktPnRwX2ZyZWUoc2VsZik7Cit9CisKK3N0YXRpYyBpbnQKK2FzdF90cmF2ZXJzZShBU1Rfb2JqZWN0ICpzZWxmLCB2aXNpdHByb2MgdmlzaXQsIHZvaWQgKmFyZykKK3sKKyAgICBQeV9WSVNJVChzZWxmLT5kaWN0KTsKKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2FzdF9jbGVhcihBU1Rfb2JqZWN0ICpzZWxmKQoreworICAgIFB5X0NMRUFSKHNlbGYtPmRpY3QpOworfQorCiBzdGF0aWMgaW50CiBhc3RfdHlwZV9pbml0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3KQogeworICAgIF9QeV9JREVOVElGSUVSKF9maWVsZHMpOwogICAgIFB5X3NzaXplX3QgaSwgbnVtZmllbGRzID0gMDsKICAgICBpbnQgcmVzID0gLTE7CiAgICAgUHlPYmplY3QgKmtleSwgKnZhbHVlLCAqZmllbGRzOwotICAgIGZpZWxkcyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoKFB5T2JqZWN0KilQeV9UWVBFKHNlbGYpLCAiX2ZpZWxkcyIpOworICAgIGZpZWxkcyA9IF9QeU9iamVjdF9HZXRBdHRySWQoKFB5T2JqZWN0KilQeV9UWVBFKHNlbGYpLCAmUHlJZF9fZmllbGRzKTsKICAgICBpZiAoIWZpZWxkcykKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICBpZiAoZmllbGRzKSB7CkBAIC00NTAsNyArNTM3LDggQEAKIGFzdF90eXBlX3JlZHVjZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKnVudXNlZCkKIHsKICAgICBQeU9iamVjdCAqcmVzOwotICAgIFB5T2JqZWN0ICpkaWN0ID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhzZWxmLCAiX19kaWN0X18iKTsKKyAgICBfUHlfSURFTlRJRklFUihfX2RpY3RfXyk7CisgICAgUHlPYmplY3QgKmRpY3QgPSBfUHlPYmplY3RfR2V0QXR0cklkKHNlbGYsICZQeUlkX19fZGljdF9fKTsKICAgICBpZiAoZGljdCA9PSBOVUxMKSB7CiAgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0F0dHJpYnV0ZUVycm9yKSkKICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CkBAIC00NzAsMTIgKzU1OCwxNyBAQAogICAgIHtOVUxMfQogfTsKIAorc3RhdGljIFB5R2V0U2V0RGVmIGFzdF90eXBlX2dldHNldHNbXSA9IHsKKyAgICB7Il9fZGljdF9fIiwgUHlPYmplY3RfR2VuZXJpY0dldERpY3QsIFB5T2JqZWN0X0dlbmVyaWNTZXREaWN0fSwKKyAgICB7TlVMTH0KK307CisKIHN0YXRpYyBQeVR5cGVPYmplY3QgQVNUX3R5cGUgPSB7CiAgICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKCZQeVR5cGVfVHlwZSwgMCkKICAgICAiX2FzdC5BU1QiLAotICAgIHNpemVvZihQeU9iamVjdCksCisgICAgc2l6ZW9mKEFTVF9vYmplY3QpLAogICAgIDAsCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2RlYWxsb2MgKi8KKyAgICAoZGVzdHJ1Y3Rvcilhc3RfZGVhbGxvYywgLyogdHBfZGVhbGxvYyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9wcmludCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9nZXRhdHRyICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3NldGF0dHIgKi8KQEAgLTQ5MCwyNiArNTgzLDI2IEBACiAgICAgUHlPYmplY3RfR2VuZXJpY0dldEF0dHIsIC8qIHRwX2dldGF0dHJvICovCiAgICAgUHlPYmplY3RfR2VuZXJpY1NldEF0dHIsIC8qIHRwX3NldGF0dHJvICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2FzX2J1ZmZlciAqLwotICAgIFB5X1RQRkxBR1NfREVGQVVMVCB8IFB5X1RQRkxBR1NfQkFTRVRZUEUsIC8qIHRwX2ZsYWdzICovCisgICAgUHlfVFBGTEFHU19ERUZBVUxUIHwgUHlfVFBGTEFHU19CQVNFVFlQRSB8IFB5X1RQRkxBR1NfSEFWRV9HQywgLyogdHBfZmxhZ3MgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZG9jICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCisgICAgKHRyYXZlcnNlcHJvYylhc3RfdHJhdmVyc2UsIC8qIHRwX3RyYXZlcnNlICovCisgICAgKGlucXVpcnkpYXN0X2NsZWFyLCAgICAgIC8qIHRwX2NsZWFyICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KICAgICBhc3RfdHlwZV9tZXRob2RzLCAgICAgICAgLyogdHBfbWV0aG9kcyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLworICAgIGFzdF90eXBlX2dldHNldHMsICAgICAgICAvKiB0cF9nZXRzZXQgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Rlc2NyX2dldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kZXNjcl9zZXQgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLworICAgIG9mZnNldG9mKEFTVF9vYmplY3QsIGRpY3QpLC8qIHRwX2RpY3RvZmZzZXQgKi8KICAgICAoaW5pdHByb2MpYXN0X3R5cGVfaW5pdCwgLyogdHBfaW5pdCAqLwogICAgIFB5VHlwZV9HZW5lcmljQWxsb2MsICAgICAvKiB0cF9hbGxvYyAqLwogICAgIFB5VHlwZV9HZW5lcmljTmV3LCAgICAgICAvKiB0cF9uZXcgKi8KLSAgICBQeU9iamVjdF9EZWwsICAgICAgICAgICAgLyogdHBfZnJlZSAqLworICAgIFB5T2JqZWN0X0dDX0RlbCwgICAgICAgICAvKiB0cF9mcmVlICovCiB9OwogCiAKQEAgLTUzNiw2ICs2MjksNyBAQAogc3RhdGljIGludCBhZGRfYXR0cmlidXRlcyhQeVR5cGVPYmplY3QqIHR5cGUsIGNoYXIqKmF0dHJzLCBpbnQgbnVtX2ZpZWxkcykKIHsKICAgICBpbnQgaSwgcmVzdWx0OworICAgIF9QeV9JREVOVElGSUVSKF9hdHRyaWJ1dGVzKTsKICAgICBQeU9iamVjdCAqcywgKmwgPSBQeVR1cGxlX05ldyhudW1fZmllbGRzKTsKICAgICBpZiAoIWwpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNTQ3LDcgKzY0MSw3IEBACiAgICAgICAgIH0KICAgICAgICAgUHlUdXBsZV9TRVRfSVRFTShsLCBpLCBzKTsKICAgICB9Ci0gICAgcmVzdWx0ID0gUHlPYmplY3RfU2V0QXR0clN0cmluZygoUHlPYmplY3QqKXR5cGUsICJfYXR0cmlidXRlcyIsIGwpID49IDA7CisgICAgcmVzdWx0ID0gX1B5T2JqZWN0X1NldEF0dHJJZCgoUHlPYmplY3QqKXR5cGUsICZQeUlkX19hdHRyaWJ1dGVzLCBsKSA+PSAwOwogICAgIFB5X0RFQ1JFRihsKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNTU2LDcgKzY1MCw3IEBACiAKIHN0YXRpYyBQeU9iamVjdCogYXN0Mm9ial9saXN0KGFzZGxfc2VxICpzZXEsIFB5T2JqZWN0KiAoKmZ1bmMpKHZvaWQqKSkKIHsKLSAgICBpbnQgaSwgbiA9IGFzZGxfc2VxX0xFTihzZXEpOworICAgIFB5X3NzaXplX3QgaSwgbiA9IGFzZGxfc2VxX0xFTihzZXEpOwogICAgIFB5T2JqZWN0ICpyZXN1bHQgPSBQeUxpc3RfTmV3KG4pOwogICAgIFB5T2JqZWN0ICp2YWx1ZTsKICAgICBpZiAoIXJlc3VsdCkKQEAgLTU4MSw2ICs2NzUsNyBAQAogfQogI2RlZmluZSBhc3Qyb2JqX2lkZW50aWZpZXIgYXN0Mm9ial9vYmplY3QKICNkZWZpbmUgYXN0Mm9ial9zdHJpbmcgYXN0Mm9ial9vYmplY3QKKyNkZWZpbmUgYXN0Mm9ial9ieXRlcyBhc3Qyb2JqX29iamVjdAogCiBzdGF0aWMgUHlPYmplY3QqIGFzdDJvYmpfaW50KGxvbmcgYikKIHsKQEAgLTYxOCw2ICs3MTMsMTUgQEAKICAgICByZXR1cm4gb2JqMmFzdF9vYmplY3Qob2JqLCBvdXQsIGFyZW5hKTsKIH0KIAorc3RhdGljIGludCBvYmoyYXN0X2J5dGVzKFB5T2JqZWN0KiBvYmosIFB5T2JqZWN0Kiogb3V0LCBQeUFyZW5hKiBhcmVuYSkKK3sKKyAgICBpZiAoIVB5Qnl0ZXNfQ2hlY2tFeGFjdChvYmopKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJBU1QgYnl0ZXMgbXVzdCBiZSBvZiB0eXBlIGJ5dGVzIik7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICByZXR1cm4gb2JqMmFzdF9vYmplY3Qob2JqLCBvdXQsIGFyZW5hKTsKK30KKwogc3RhdGljIGludCBvYmoyYXN0X2ludChQeU9iamVjdCogb2JqLCBpbnQqIG91dCwgUHlBcmVuYSogYXJlbmEpCiB7CiAgICAgaW50IGk7CkBAIC02OTEsMTUgKzc5NSwxMiBAQAogICAgICAgICBpZiAoIVdoaWxlX3R5cGUpIHJldHVybiAwOwogICAgICAgICBJZl90eXBlID0gbWFrZV90eXBlKCJJZiIsIHN0bXRfdHlwZSwgSWZfZmllbGRzLCAzKTsKICAgICAgICAgaWYgKCFJZl90eXBlKSByZXR1cm4gMDsKLSAgICAgICAgV2l0aF90eXBlID0gbWFrZV90eXBlKCJXaXRoIiwgc3RtdF90eXBlLCBXaXRoX2ZpZWxkcywgMyk7CisgICAgICAgIFdpdGhfdHlwZSA9IG1ha2VfdHlwZSgiV2l0aCIsIHN0bXRfdHlwZSwgV2l0aF9maWVsZHMsIDIpOwogICAgICAgICBpZiAoIVdpdGhfdHlwZSkgcmV0dXJuIDA7CiAgICAgICAgIFJhaXNlX3R5cGUgPSBtYWtlX3R5cGUoIlJhaXNlIiwgc3RtdF90eXBlLCBSYWlzZV9maWVsZHMsIDIpOwogICAgICAgICBpZiAoIVJhaXNlX3R5cGUpIHJldHVybiAwOwotICAgICAgICBUcnlFeGNlcHRfdHlwZSA9IG1ha2VfdHlwZSgiVHJ5RXhjZXB0Iiwgc3RtdF90eXBlLCBUcnlFeGNlcHRfZmllbGRzLCAzKTsKLSAgICAgICAgaWYgKCFUcnlFeGNlcHRfdHlwZSkgcmV0dXJuIDA7Ci0gICAgICAgIFRyeUZpbmFsbHlfdHlwZSA9IG1ha2VfdHlwZSgiVHJ5RmluYWxseSIsIHN0bXRfdHlwZSwgVHJ5RmluYWxseV9maWVsZHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyKTsKLSAgICAgICAgaWYgKCFUcnlGaW5hbGx5X3R5cGUpIHJldHVybiAwOworICAgICAgICBUcnlfdHlwZSA9IG1ha2VfdHlwZSgiVHJ5Iiwgc3RtdF90eXBlLCBUcnlfZmllbGRzLCA0KTsKKyAgICAgICAgaWYgKCFUcnlfdHlwZSkgcmV0dXJuIDA7CiAgICAgICAgIEFzc2VydF90eXBlID0gbWFrZV90eXBlKCJBc3NlcnQiLCBzdG10X3R5cGUsIEFzc2VydF9maWVsZHMsIDIpOwogICAgICAgICBpZiAoIUFzc2VydF90eXBlKSByZXR1cm4gMDsKICAgICAgICAgSW1wb3J0X3R5cGUgPSBtYWtlX3R5cGUoIkltcG9ydCIsIHN0bXRfdHlwZSwgSW1wb3J0X2ZpZWxkcywgMSk7CkBAIC03NDcsNiArODQ4LDggQEAKICAgICAgICAgaWYgKCFHZW5lcmF0b3JFeHBfdHlwZSkgcmV0dXJuIDA7CiAgICAgICAgIFlpZWxkX3R5cGUgPSBtYWtlX3R5cGUoIllpZWxkIiwgZXhwcl90eXBlLCBZaWVsZF9maWVsZHMsIDEpOwogICAgICAgICBpZiAoIVlpZWxkX3R5cGUpIHJldHVybiAwOworICAgICAgICBZaWVsZEZyb21fdHlwZSA9IG1ha2VfdHlwZSgiWWllbGRGcm9tIiwgZXhwcl90eXBlLCBZaWVsZEZyb21fZmllbGRzLCAxKTsKKyAgICAgICAgaWYgKCFZaWVsZEZyb21fdHlwZSkgcmV0dXJuIDA7CiAgICAgICAgIENvbXBhcmVfdHlwZSA9IG1ha2VfdHlwZSgiQ29tcGFyZSIsIGV4cHJfdHlwZSwgQ29tcGFyZV9maWVsZHMsIDMpOwogICAgICAgICBpZiAoIUNvbXBhcmVfdHlwZSkgcmV0dXJuIDA7CiAgICAgICAgIENhbGxfdHlwZSA9IG1ha2VfdHlwZSgiQ2FsbCIsIGV4cHJfdHlwZSwgQ2FsbF9maWVsZHMsIDUpOwpAQCAtOTQ5LDYgKzEwNTIsOCBAQAogICAgICAgICBpZiAoIWtleXdvcmRfdHlwZSkgcmV0dXJuIDA7CiAgICAgICAgIGFsaWFzX3R5cGUgPSBtYWtlX3R5cGUoImFsaWFzIiwgJkFTVF90eXBlLCBhbGlhc19maWVsZHMsIDIpOwogICAgICAgICBpZiAoIWFsaWFzX3R5cGUpIHJldHVybiAwOworICAgICAgICB3aXRoaXRlbV90eXBlID0gbWFrZV90eXBlKCJ3aXRoaXRlbSIsICZBU1RfdHlwZSwgd2l0aGl0ZW1fZmllbGRzLCAyKTsKKyAgICAgICAgaWYgKCF3aXRoaXRlbV90eXBlKSByZXR1cm4gMDsKICAgICAgICAgaW5pdGlhbGl6ZWQgPSAxOwogICAgICAgICByZXR1cm4gMTsKIH0KQEAgLTk3MSw2ICsxMDc2LDcgQEAKIHN0YXRpYyBpbnQgb2JqMmFzdF9hcmcoUHlPYmplY3QqIG9iaiwgYXJnX3R5KiBvdXQsIFB5QXJlbmEqIGFyZW5hKTsKIHN0YXRpYyBpbnQgb2JqMmFzdF9rZXl3b3JkKFB5T2JqZWN0KiBvYmosIGtleXdvcmRfdHkqIG91dCwgUHlBcmVuYSogYXJlbmEpOwogc3RhdGljIGludCBvYmoyYXN0X2FsaWFzKFB5T2JqZWN0KiBvYmosIGFsaWFzX3R5KiBvdXQsIFB5QXJlbmEqIGFyZW5hKTsKK3N0YXRpYyBpbnQgb2JqMmFzdF93aXRoaXRlbShQeU9iamVjdCogb2JqLCB3aXRoaXRlbV90eSogb3V0LCBQeUFyZW5hKiBhcmVuYSk7CiAKIG1vZF90eQogTW9kdWxlKGFzZGxfc2VxICogYm9keSwgUHlBcmVuYSAqYXJlbmEpCkBAIC0xMjM2LDIxICsxMzQyLDE1IEBACiB9CiAKIHN0bXRfdHkKLVdpdGgoZXhwcl90eSBjb250ZXh0X2V4cHIsIGV4cHJfdHkgb3B0aW9uYWxfdmFycywgYXNkbF9zZXEgKiBib2R5LCBpbnQgbGluZW5vLAotICAgICBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpCitXaXRoKGFzZGxfc2VxICogaXRlbXMsIGFzZGxfc2VxICogYm9keSwgaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsIFB5QXJlbmEKKyAgICAgKmFyZW5hKQogewogICAgICAgICBzdG10X3R5IHA7Ci0gICAgICAgIGlmICghY29udGV4dF9leHByKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaWVsZCBjb250ZXh0X2V4cHIgaXMgcmVxdWlyZWQgZm9yIFdpdGgiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQogICAgICAgICBwID0gKHN0bXRfdHkpUHlBcmVuYV9NYWxsb2MoYXJlbmEsIHNpemVvZigqcCkpOwogICAgICAgICBpZiAoIXApCiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIHAtPmtpbmQgPSBXaXRoX2tpbmQ7Ci0gICAgICAgIHAtPnYuV2l0aC5jb250ZXh0X2V4cHIgPSBjb250ZXh0X2V4cHI7Ci0gICAgICAgIHAtPnYuV2l0aC5vcHRpb25hbF92YXJzID0gb3B0aW9uYWxfdmFyczsKKyAgICAgICAgcC0+di5XaXRoLml0ZW1zID0gaXRlbXM7CiAgICAgICAgIHAtPnYuV2l0aC5ib2R5ID0gYm9keTsKICAgICAgICAgcC0+bGluZW5vID0gbGluZW5vOwogICAgICAgICBwLT5jb2xfb2Zmc2V0ID0gY29sX29mZnNldDsKQEAgLTEyNzMsMzMgKzEzNzMsMTggQEAKIH0KIAogc3RtdF90eQotVHJ5RXhjZXB0KGFzZGxfc2VxICogYm9keSwgYXNkbF9zZXEgKiBoYW5kbGVycywgYXNkbF9zZXEgKiBvcmVsc2UsIGludCBsaW5lbm8sCi0gICAgICAgICAgaW50IGNvbF9vZmZzZXQsIFB5QXJlbmEgKmFyZW5hKQorVHJ5KGFzZGxfc2VxICogYm9keSwgYXNkbF9zZXEgKiBoYW5kbGVycywgYXNkbF9zZXEgKiBvcmVsc2UsIGFzZGxfc2VxICoKKyAgICBmaW5hbGJvZHksIGludCBsaW5lbm8sIGludCBjb2xfb2Zmc2V0LCBQeUFyZW5hICphcmVuYSkKIHsKICAgICAgICAgc3RtdF90eSBwOwogICAgICAgICBwID0gKHN0bXRfdHkpUHlBcmVuYV9NYWxsb2MoYXJlbmEsIHNpemVvZigqcCkpOwogICAgICAgICBpZiAoIXApCiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIHAtPmtpbmQgPSBUcnlFeGNlcHRfa2luZDsKLSAgICAgICAgcC0+di5UcnlFeGNlcHQuYm9keSA9IGJvZHk7Ci0gICAgICAgIHAtPnYuVHJ5RXhjZXB0LmhhbmRsZXJzID0gaGFuZGxlcnM7Ci0gICAgICAgIHAtPnYuVHJ5RXhjZXB0Lm9yZWxzZSA9IG9yZWxzZTsKLSAgICAgICAgcC0+bGluZW5vID0gbGluZW5vOwotICAgICAgICBwLT5jb2xfb2Zmc2V0ID0gY29sX29mZnNldDsKLSAgICAgICAgcmV0dXJuIHA7Ci19Ci0KLXN0bXRfdHkKLVRyeUZpbmFsbHkoYXNkbF9zZXEgKiBib2R5LCBhc2RsX3NlcSAqIGZpbmFsYm9keSwgaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQsCi0gICAgICAgICAgIFB5QXJlbmEgKmFyZW5hKQotewotICAgICAgICBzdG10X3R5IHA7Ci0gICAgICAgIHAgPSAoc3RtdF90eSlQeUFyZW5hX01hbGxvYyhhcmVuYSwgc2l6ZW9mKCpwKSk7Ci0gICAgICAgIGlmICghcCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgcC0+a2luZCA9IFRyeUZpbmFsbHlfa2luZDsKLSAgICAgICAgcC0+di5UcnlGaW5hbGx5LmJvZHkgPSBib2R5OwotICAgICAgICBwLT52LlRyeUZpbmFsbHkuZmluYWxib2R5ID0gZmluYWxib2R5OworICAgICAgICBwLT5raW5kID0gVHJ5X2tpbmQ7CisgICAgICAgIHAtPnYuVHJ5LmJvZHkgPSBib2R5OworICAgICAgICBwLT52LlRyeS5oYW5kbGVycyA9IGhhbmRsZXJzOworICAgICAgICBwLT52LlRyeS5vcmVsc2UgPSBvcmVsc2U7CisgICAgICAgIHAtPnYuVHJ5LmZpbmFsYm9keSA9IGZpbmFsYm9keTsKICAgICAgICAgcC0+bGluZW5vID0gbGluZW5vOwogICAgICAgICBwLT5jb2xfb2Zmc2V0ID0gY29sX29mZnNldDsKICAgICAgICAgcmV0dXJuIHA7CkBAIC0xNzE0LDYgKzE3OTksMjAgQEAKIH0KIAogZXhwcl90eQorWWllbGRGcm9tKGV4cHJfdHkgdmFsdWUsIGludCBsaW5lbm8sIGludCBjb2xfb2Zmc2V0LCBQeUFyZW5hICphcmVuYSkKK3sKKyAgICAgICAgZXhwcl90eSBwOworICAgICAgICBwID0gKGV4cHJfdHkpUHlBcmVuYV9NYWxsb2MoYXJlbmEsIHNpemVvZigqcCkpOworICAgICAgICBpZiAoIXApCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHAtPmtpbmQgPSBZaWVsZEZyb21fa2luZDsKKyAgICAgICAgcC0+di5ZaWVsZEZyb20udmFsdWUgPSB2YWx1ZTsKKyAgICAgICAgcC0+bGluZW5vID0gbGluZW5vOworICAgICAgICBwLT5jb2xfb2Zmc2V0ID0gY29sX29mZnNldDsKKyAgICAgICAgcmV0dXJuIHA7Cit9CisKK2V4cHJfdHkKIENvbXBhcmUoZXhwcl90eSBsZWZ0LCBhc2RsX2ludF9zZXEgKiBvcHMsIGFzZGxfc2VxICogY29tcGFyYXRvcnMsIGludCBsaW5lbm8sCiAgICAgICAgIGludCBjb2xfb2Zmc2V0LCBQeUFyZW5hICphcmVuYSkKIHsKQEAgLTE3OTgsNyArMTg5Nyw3IEBACiB9CiAKIGV4cHJfdHkKLUJ5dGVzKHN0cmluZyBzLCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpCitCeXRlcyhieXRlcyBzLCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCwgUHlBcmVuYSAqYXJlbmEpCiB7CiAgICAgICAgIGV4cHJfdHkgcDsKICAgICAgICAgaWYgKCFzKSB7CkBAIC0yMTQ2LDYgKzIyNDUsMjMgQEAKICAgICAgICAgcmV0dXJuIHA7CiB9CiAKK3dpdGhpdGVtX3R5Cit3aXRoaXRlbShleHByX3R5IGNvbnRleHRfZXhwciwgZXhwcl90eSBvcHRpb25hbF92YXJzLCBQeUFyZW5hICphcmVuYSkKK3sKKyAgICAgICAgd2l0aGl0ZW1fdHkgcDsKKyAgICAgICAgaWYgKCFjb250ZXh0X2V4cHIpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpZWxkIGNvbnRleHRfZXhwciBpcyByZXF1aXJlZCBmb3Igd2l0aGl0ZW0iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgfQorICAgICAgICBwID0gKHdpdGhpdGVtX3R5KVB5QXJlbmFfTWFsbG9jKGFyZW5hLCBzaXplb2YoKnApKTsKKyAgICAgICAgaWYgKCFwKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICBwLT5jb250ZXh0X2V4cHIgPSBjb250ZXh0X2V4cHI7CisgICAgICAgIHAtPm9wdGlvbmFsX3ZhcnMgPSBvcHRpb25hbF92YXJzOworICAgICAgICByZXR1cm4gcDsKK30KKwogCiBQeU9iamVjdCoKIGFzdDJvYmpfbW9kKHZvaWQqIF9vKQpAQCAtMjE2Myw3ICsyMjc5LDcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5Nb2R1bGUuYm9keSwgYXN0Mm9ial9zdG10KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJib2R5IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYm9keSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIxNzIsNyArMjI4OCw3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuSW50ZXJhY3RpdmUuYm9keSwgYXN0Mm9ial9zdG10KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJib2R5IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYm9keSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIxODEsNyArMjI5Nyw3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuRXhwcmVzc2lvbi5ib2R5KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJib2R5IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYm9keSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIxOTAsNyArMjMwNiw3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuU3VpdGUuYm9keSwgYXN0Mm9ial9zdG10KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJib2R5IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYm9keSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIyMTgsMjkgKzIzMzQsMjkgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2lkZW50aWZpZXIoby0+di5GdW5jdGlvbkRlZi5uYW1lKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJuYW1lIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfbmFtZSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfYXJndW1lbnRzKG8tPnYuRnVuY3Rpb25EZWYuYXJncyk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiYXJncyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2FyZ3MsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5GdW5jdGlvbkRlZi5ib2R5LCBhc3Qyb2JqX3N0bXQpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImJvZHkiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9ib2R5LCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuRnVuY3Rpb25EZWYuZGVjb3JhdG9yX2xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0Mm9ial9leHByKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJkZWNvcmF0b3JfbGlzdCIsIHZhbHVlKSA9PQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfZGVjb3JhdG9yX2xpc3QsIHZhbHVlKSA9PQogICAgICAgICAgICAgICAgICAgICAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5GdW5jdGlvbkRlZi5yZXR1cm5zKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJyZXR1cm5zIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfcmV0dXJucywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIyNDksMzggKzIzNjUsMzggQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2lkZW50aWZpZXIoby0+di5DbGFzc0RlZi5uYW1lKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJuYW1lIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfbmFtZSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LkNsYXNzRGVmLmJhc2VzLCBhc3Qyb2JqX2V4cHIpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImJhc2VzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYmFzZXMsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5DbGFzc0RlZi5rZXl3b3JkcywgYXN0Mm9ial9rZXl3b3JkKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJrZXl3b3JkcyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2tleXdvcmRzLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuQ2xhc3NEZWYuc3RhcmFyZ3MpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInN0YXJhcmdzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfc3RhcmFyZ3MsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5DbGFzc0RlZi5rd2FyZ3MpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImt3YXJncyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2t3YXJncywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LkNsYXNzRGVmLmJvZHksIGFzdDJvYmpfc3RtdCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiYm9keSIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2JvZHksIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5DbGFzc0RlZi5kZWNvcmF0b3JfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Qyb2JqX2V4cHIpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImRlY29yYXRvcl9saXN0IiwgdmFsdWUpID09CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9kZWNvcmF0b3JfbGlzdCwgdmFsdWUpID09CiAgICAgICAgICAgICAgICAgICAgIC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKQEAgLTIyOTAsNyArMjQwNiw3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuUmV0dXJuLnZhbHVlKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJ2YWx1ZSIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX3ZhbHVlLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjI5OSw3ICsyNDE1LDcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5EZWxldGUudGFyZ2V0cywgYXN0Mm9ial9leHByKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJ0YXJnZXRzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdGFyZ2V0cywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIzMDgsMTIgKzI0MjQsMTIgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5Bc3NpZ24udGFyZ2V0cywgYXN0Mm9ial9leHByKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJ0YXJnZXRzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdGFyZ2V0cywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LkFzc2lnbi52YWx1ZSk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAidmFsdWUiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF92YWx1ZSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIzMjIsMTcgKzI0MzgsMTcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5BdWdBc3NpZ24udGFyZ2V0KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJ0YXJnZXQiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF90YXJnZXQsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX29wZXJhdG9yKG8tPnYuQXVnQXNzaWduLm9wKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJvcCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX29wLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuQXVnQXNzaWduLnZhbHVlKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJ2YWx1ZSIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX3ZhbHVlLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjM0MSwyMiArMjQ1NywyMiBAQAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LkZvci50YXJnZXQpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInRhcmdldCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX3RhcmdldCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LkZvci5pdGVyKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJpdGVyIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfaXRlciwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LkZvci5ib2R5LCBhc3Qyb2JqX3N0bXQpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImJvZHkiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9ib2R5LCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuRm9yLm9yZWxzZSwgYXN0Mm9ial9zdG10KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJvcmVsc2UiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9vcmVsc2UsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yMzY1LDE3ICsyNDgxLDE3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuV2hpbGUudGVzdCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAidGVzdCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX3Rlc3QsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5XaGlsZS5ib2R5LCBhc3Qyb2JqX3N0bXQpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImJvZHkiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9ib2R5LCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuV2hpbGUub3JlbHNlLCBhc3Qyb2JqX3N0bXQpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgIm9yZWxzZSIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX29yZWxzZSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTIzODQsMzcgKzI1MDAsMzEgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5JZi50ZXN0KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJ0ZXN0IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdGVzdCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LklmLmJvZHksIGFzdDJvYmpfc3RtdCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiYm9keSIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2JvZHksIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5JZi5vcmVsc2UsIGFzdDJvYmpfc3RtdCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAib3JlbHNlIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfb3JlbHNlLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFdpdGhfa2luZDoKICAgICAgICAgICAgICAgICByZXN1bHQgPSBQeVR5cGVfR2VuZXJpY05ldyhXaXRoX3R5cGUsIE5VTEwsIE5VTEwpOwogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LldpdGguY29udGV4dF9leHByKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LldpdGguaXRlbXMsIGFzdDJvYmpfd2l0aGl0ZW0pOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImNvbnRleHRfZXhwciIsIHZhbHVlKSA9PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5XaXRoLm9wdGlvbmFsX3ZhcnMpOwotICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgIm9wdGlvbmFsX3ZhcnMiLCB2YWx1ZSkgPT0KLSAgICAgICAgICAgICAgICAgICAgLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9pdGVtcywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LldpdGguYm9keSwgYXN0Mm9ial9zdG10KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJib2R5IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYm9keSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI0MjMsNDYgKzI1MzMsMzYgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5SYWlzZS5leGMpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImV4YyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2V4YywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LlJhaXNlLmNhdXNlKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJjYXVzZSIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2NhdXNlLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFRyeUV4Y2VwdF9raW5kOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IFB5VHlwZV9HZW5lcmljTmV3KFRyeUV4Y2VwdF90eXBlLCBOVUxMLCBOVUxMKTsKKyAgICAgICAgY2FzZSBUcnlfa2luZDoKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBQeVR5cGVfR2VuZXJpY05ldyhUcnlfdHlwZSwgTlVMTCwgTlVMTCk7CiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuVHJ5RXhjZXB0LmJvZHksIGFzdDJvYmpfc3RtdCk7CisgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5UcnkuYm9keSwgYXN0Mm9ial9zdG10KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJib2R5IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYm9keSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LlRyeUV4Y2VwdC5oYW5kbGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Qyb2JqX2V4Y2VwdGhhbmRsZXIpOworICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuVHJ5LmhhbmRsZXJzLCBhc3Qyb2JqX2V4Y2VwdGhhbmRsZXIpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImhhbmRsZXJzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfaGFuZGxlcnMsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5UcnlFeGNlcHQub3JlbHNlLCBhc3Qyb2JqX3N0bXQpOworICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuVHJ5Lm9yZWxzZSwgYXN0Mm9ial9zdG10KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJvcmVsc2UiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9vcmVsc2UsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgVHJ5RmluYWxseV9raW5kOgotICAgICAgICAgICAgICAgIHJlc3VsdCA9IFB5VHlwZV9HZW5lcmljTmV3KFRyeUZpbmFsbHlfdHlwZSwgTlVMTCwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuVHJ5RmluYWxseS5ib2R5LCBhc3Qyb2JqX3N0bXQpOworICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuVHJ5LmZpbmFsYm9keSwgYXN0Mm9ial9zdG10KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJib2R5IiwgdmFsdWUpID09IC0xKQotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LlRyeUZpbmFsbHkuZmluYWxib2R5LCBhc3Qyb2JqX3N0bXQpOwotICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImZpbmFsYm9keSIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2ZpbmFsYm9keSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI0NzEsMTIgKzI1NzEsMTIgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5Bc3NlcnQudGVzdCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAidGVzdCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX3Rlc3QsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5Bc3NlcnQubXNnKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJtc2ciLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9tc2csIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNDg1LDcgKzI1ODUsNyBAQAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LkltcG9ydC5uYW1lcywgYXN0Mm9ial9hbGlhcyk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAibmFtZXMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9uYW1lcywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI0OTQsMTcgKzI1OTQsMTcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2lkZW50aWZpZXIoby0+di5JbXBvcnRGcm9tLm1vZHVsZSk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAibW9kdWxlIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfbW9kdWxlLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuSW1wb3J0RnJvbS5uYW1lcywgYXN0Mm9ial9hbGlhcyk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAibmFtZXMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9uYW1lcywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfaW50KG8tPnYuSW1wb3J0RnJvbS5sZXZlbCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAibGV2ZWwiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9sZXZlbCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI1MTMsNyArMjYxMyw3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuR2xvYmFsLm5hbWVzLCBhc3Qyb2JqX2lkZW50aWZpZXIpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgIm5hbWVzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfbmFtZXMsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNTIyLDcgKzI2MjIsNyBAQAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52Lk5vbmxvY2FsLm5hbWVzLCBhc3Qyb2JqX2lkZW50aWZpZXIpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgIm5hbWVzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfbmFtZXMsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNTMxLDcgKzI2MzEsNyBAQAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LkV4cHIudmFsdWUpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInZhbHVlIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdmFsdWUsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNTUwLDEyICsyNjUwLDEyIEBACiAgICAgICAgIH0KICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2ludChvLT5saW5lbm8pOwogICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAibGluZW5vIiwgdmFsdWUpIDwgMCkKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9saW5lbm8sIHZhbHVlKSA8IDApCiAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9pbnQoby0+Y29sX29mZnNldCk7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJjb2xfb2Zmc2V0IiwgdmFsdWUpIDwgMCkKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9jb2xfb2Zmc2V0LCB2YWx1ZSkgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMjU4MSwxMiArMjY4MSwxMiBAQAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfYm9vbG9wKG8tPnYuQm9vbE9wLm9wKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJvcCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX29wLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuQm9vbE9wLnZhbHVlcywgYXN0Mm9ial9leHByKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJ2YWx1ZXMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF92YWx1ZXMsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNTk1LDE3ICsyNjk1LDE3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuQmluT3AubGVmdCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAibGVmdCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2xlZnQsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX29wZXJhdG9yKG8tPnYuQmluT3Aub3ApOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgIm9wIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfb3AsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5CaW5PcC5yaWdodCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAicmlnaHQiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9yaWdodCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI2MTQsMTIgKzI3MTQsMTIgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX3VuYXJ5b3Aoby0+di5VbmFyeU9wLm9wKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJvcCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX29wLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuVW5hcnlPcC5vcGVyYW5kKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJvcGVyYW5kIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfb3BlcmFuZCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI2MjgsMTIgKzI3MjgsMTIgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2FyZ3VtZW50cyhvLT52LkxhbWJkYS5hcmdzKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJhcmdzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYXJncywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LkxhbWJkYS5ib2R5KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJib2R5IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYm9keSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI2NDIsMTcgKzI3NDIsMTcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5JZkV4cC50ZXN0KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJ0ZXN0IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdGVzdCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LklmRXhwLmJvZHkpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImJvZHkiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9ib2R5LCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuSWZFeHAub3JlbHNlKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJvcmVsc2UiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9vcmVsc2UsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNjYxLDEyICsyNzYxLDEyIEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuRGljdC5rZXlzLCBhc3Qyb2JqX2V4cHIpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImtleXMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9rZXlzLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuRGljdC52YWx1ZXMsIGFzdDJvYmpfZXhwcik7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAidmFsdWVzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdmFsdWVzLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjY3NSw3ICsyNzc1LDcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5TZXQuZWx0cywgYXN0Mm9ial9leHByKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJlbHRzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfZWx0cywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI2ODQsMTMgKzI3ODQsMTMgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5MaXN0Q29tcC5lbHQpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImVsdCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2VsdCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52Lkxpc3RDb21wLmdlbmVyYXRvcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0Mm9ial9jb21wcmVoZW5zaW9uKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJnZW5lcmF0b3JzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfZ2VuZXJhdG9ycywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI2OTksMTMgKzI3OTksMTMgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5TZXRDb21wLmVsdCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiZWx0IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfZWx0LCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuU2V0Q29tcC5nZW5lcmF0b3JzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdDJvYmpfY29tcHJlaGVuc2lvbik7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiZ2VuZXJhdG9ycyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2dlbmVyYXRvcnMsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yNzE0LDE4ICsyODE0LDE4IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuRGljdENvbXAua2V5KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJrZXkiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9rZXksIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5EaWN0Q29tcC52YWx1ZSk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAidmFsdWUiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF92YWx1ZSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LkRpY3RDb21wLmdlbmVyYXRvcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0Mm9ial9jb21wcmVoZW5zaW9uKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJnZW5lcmF0b3JzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfZ2VuZXJhdG9ycywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI3MzQsMTMgKzI4MzQsMTMgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5HZW5lcmF0b3JFeHAuZWx0KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJlbHQiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9lbHQsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5HZW5lcmF0b3JFeHAuZ2VuZXJhdG9ycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Qyb2JqX2NvbXByZWhlbnNpb24pOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImdlbmVyYXRvcnMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9nZW5lcmF0b3JzLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjc0OSw3ICsyODQ5LDE2IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuWWllbGQudmFsdWUpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInZhbHVlIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdmFsdWUsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgWWllbGRGcm9tX2tpbmQ6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gUHlUeXBlX0dlbmVyaWNOZXcoWWllbGRGcm9tX3R5cGUsIE5VTEwsIE5VTEwpOworICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LllpZWxkRnJvbS52YWx1ZSk7CisgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF92YWx1ZSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI3NTgsMjMgKzI4NjcsMjMgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5Db21wYXJlLmxlZnQpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImxlZnQiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9sZWZ0LCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBpLCBuID0gYXNkbF9zZXFfTEVOKG8tPnYuQ29tcGFyZS5vcHMpOworICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpLCBuID0gYXNkbF9zZXFfTEVOKG8tPnYuQ29tcGFyZS5vcHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBQeUxpc3RfTmV3KG4pOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBmb3IoaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5TGlzdF9TRVRfSVRFTSh2YWx1ZSwgaSwgYXN0Mm9ial9jbXBvcCgoY21wb3BfdHkpYXNkbF9zZXFfR0VUKG8tPnYuQ29tcGFyZS5vcHMsIGkpKSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgIm9wcyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX29wcywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52LkNvbXBhcmUuY29tcGFyYXRvcnMsIGFzdDJvYmpfZXhwcik7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiY29tcGFyYXRvcnMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9jb21wYXJhdG9ycywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI3ODMsMjcgKzI4OTIsMjcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5DYWxsLmZ1bmMpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImZ1bmMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9mdW5jLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuQ2FsbC5hcmdzLCBhc3Qyb2JqX2V4cHIpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImFyZ3MiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9hcmdzLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuQ2FsbC5rZXl3b3JkcywgYXN0Mm9ial9rZXl3b3JkKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJrZXl3b3JkcyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2tleXdvcmRzLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuQ2FsbC5zdGFyYXJncyk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAic3RhcmFyZ3MiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9zdGFyYXJncywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LkNhbGwua3dhcmdzKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJrd2FyZ3MiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9rd2FyZ3MsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yODEyLDcgKzI5MjEsNyBAQAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfb2JqZWN0KG8tPnYuTnVtLm4pOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgIm4iLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9uLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjgyMSwxNiArMjkzMCwxNiBAQAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfc3RyaW5nKG8tPnYuU3RyLnMpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9zLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEJ5dGVzX2tpbmQ6CiAgICAgICAgICAgICAgICAgcmVzdWx0ID0gUHlUeXBlX0dlbmVyaWNOZXcoQnl0ZXNfdHlwZSwgTlVMTCwgTlVMTCk7CiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9zdHJpbmcoby0+di5CeXRlcy5zKTsKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfYnl0ZXMoby0+di5CeXRlcy5zKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfcywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI4NDMsMTcgKzI5NTIsMTcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5BdHRyaWJ1dGUudmFsdWUpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInZhbHVlIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdmFsdWUsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2lkZW50aWZpZXIoby0+di5BdHRyaWJ1dGUuYXR0cik7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiYXR0ciIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2F0dHIsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHJfY29udGV4dChvLT52LkF0dHJpYnV0ZS5jdHgpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImN0eCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2N0eCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI4NjIsMTcgKzI5NzEsMTcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5TdWJzY3JpcHQudmFsdWUpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInZhbHVlIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdmFsdWUsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX3NsaWNlKG8tPnYuU3Vic2NyaXB0LnNsaWNlKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJzbGljZSIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX3NsaWNlLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByX2NvbnRleHQoby0+di5TdWJzY3JpcHQuY3R4KTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJjdHgiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9jdHgsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yODgxLDEyICsyOTkwLDEyIEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuU3RhcnJlZC52YWx1ZSk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAidmFsdWUiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF92YWx1ZSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcl9jb250ZXh0KG8tPnYuU3RhcnJlZC5jdHgpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImN0eCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2N0eCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI4OTUsMTIgKzMwMDQsMTIgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2lkZW50aWZpZXIoby0+di5OYW1lLmlkKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJpZCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2lkLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByX2NvbnRleHQoby0+di5OYW1lLmN0eCk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiY3R4IiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfY3R4LCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjkwOSwxMiArMzAxOCwxMiBAQAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT52Lkxpc3QuZWx0cywgYXN0Mm9ial9leHByKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJlbHRzIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfZWx0cywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcl9jb250ZXh0KG8tPnYuTGlzdC5jdHgpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImN0eCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2N0eCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTI5MjMsMjQgKzMwMzIsMjQgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5UdXBsZS5lbHRzLCBhc3Qyb2JqX2V4cHIpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImVsdHMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9lbHRzLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByX2NvbnRleHQoby0+di5UdXBsZS5jdHgpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImN0eCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2N0eCwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfaW50KG8tPmxpbmVubyk7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJsaW5lbm8iLCB2YWx1ZSkgPCAwKQorICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2xpbmVubywgdmFsdWUpIDwgMCkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2ludChvLT5jb2xfb2Zmc2V0KTsKICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImNvbF9vZmZzZXQiLCB2YWx1ZSkgPCAwKQorICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2NvbF9vZmZzZXQsIHZhbHVlKSA8IDApCiAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0yOTkzLDE3ICszMTAyLDE3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuU2xpY2UubG93ZXIpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImxvd2VyIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfbG93ZXIsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+di5TbGljZS51cHBlcik7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAidXBwZXIiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF91cHBlciwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LlNsaWNlLnN0ZXApOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInN0ZXAiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9zdGVwLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzAxMiw3ICszMTIxLDcgQEAKICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+di5FeHRTbGljZS5kaW1zLCBhc3Qyb2JqX3NsaWNlKTsKICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJkaW1zIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfZGltcywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTMwMjEsNyArMzEzMCw3IEBACiAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPnYuSW5kZXgudmFsdWUpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInZhbHVlIiwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdmFsdWUsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zMTY3LDE3ICszMjc2LDE3IEBACiAgICAgICAgIGlmICghcmVzdWx0KSByZXR1cm4gTlVMTDsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+dGFyZ2V0KTsKICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInRhcmdldCIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF90YXJnZXQsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+aXRlcik7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJpdGVyIiwgdmFsdWUpID09IC0xKQorICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2l0ZXIsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+aWZzLCBhc3Qyb2JqX2V4cHIpOwogICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiaWZzIiwgdmFsdWUpID09IC0xKQorICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2lmcywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMzIwMywyOSArMzMxMiwyOSBAQAogICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfZXhwcihvLT52LkV4Y2VwdEhhbmRsZXIudHlwZSk7CiAgICAgICAgICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAidHlwZSIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX3R5cGUsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2lkZW50aWZpZXIoby0+di5FeGNlcHRIYW5kbGVyLm5hbWUpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgIm5hbWUiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9uYW1lLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPnYuRXhjZXB0SGFuZGxlci5ib2R5LCBhc3Qyb2JqX3N0bXQpOwogICAgICAgICAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImJvZHkiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9ib2R5LCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9pbnQoby0+bGluZW5vKTsKICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImxpbmVubyIsIHZhbHVlKSA8IDApCisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfbGluZW5vLCB2YWx1ZSkgPCAwKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfaW50KG8tPmNvbF9vZmZzZXQpOwogICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiY29sX29mZnNldCIsIHZhbHVlKSA8IDApCisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfY29sX29mZnNldCwgdmFsdWUpIDwgMCkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTMyNDksNDIgKzMzNTgsNDIgQEAKICAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybiBOVUxMOwogICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfbGlzdChvLT5hcmdzLCBhc3Qyb2JqX2FyZyk7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJhcmdzIiwgdmFsdWUpID09IC0xKQorICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2FyZ3MsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2lkZW50aWZpZXIoby0+dmFyYXJnKTsKICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgInZhcmFyZyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF92YXJhcmcsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+dmFyYXJnYW5ub3RhdGlvbik7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJ2YXJhcmdhbm5vdGF0aW9uIiwgdmFsdWUpID09IC0xKQorICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX3ZhcmFyZ2Fubm90YXRpb24sIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+a3dvbmx5YXJncywgYXN0Mm9ial9hcmcpOwogICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAia3dvbmx5YXJncyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9rd29ubHlhcmdzLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9pZGVudGlmaWVyKG8tPmt3YXJnKTsKICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImt3YXJnIiwgdmFsdWUpID09IC0xKQorICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2t3YXJnLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPmt3YXJnYW5ub3RhdGlvbik7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJrd2FyZ2Fubm90YXRpb24iLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfa3dhcmdhbm5vdGF0aW9uLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9saXN0KG8tPmRlZmF1bHRzLCBhc3Qyb2JqX2V4cHIpOwogICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiZGVmYXVsdHMiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfZGVmYXVsdHMsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2xpc3Qoby0+a3dfZGVmYXVsdHMsIGFzdDJvYmpfZXhwcik7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJrd19kZWZhdWx0cyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9rd19kZWZhdWx0cywgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMzMwOCwxMiArMzQxNywxMiBAQAogICAgICAgICBpZiAoIXJlc3VsdCkgcmV0dXJuIE5VTEw7CiAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9pZGVudGlmaWVyKG8tPmFyZyk7CiAgICAgICAgIGlmICghdmFsdWUpIGdvdG8gZmFpbGVkOwotICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhyZXN1bHQsICJhcmciLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfYXJnLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPmFubm90YXRpb24pOwogICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiYW5ub3RhdGlvbiIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9hbm5vdGF0aW9uLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0zMzM3LDEyICszNDQ2LDEyIEBACiAgICAgICAgIGlmICghcmVzdWx0KSByZXR1cm4gTlVMTDsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2lkZW50aWZpZXIoby0+YXJnKTsKICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgImFyZyIsIHZhbHVlKSA9PSAtMSkKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9hcmcsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+dmFsdWUpOwogICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAidmFsdWUiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfdmFsdWUsIHZhbHVlKSA9PSAtMSkKICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTMzNjYsMTIgKzM0NzUsNDEgQEAKICAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybiBOVUxMOwogICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfaWRlbnRpZmllcihvLT5uYW1lKTsKICAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7Ci0gICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHJlc3VsdCwgIm5hbWUiLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfbmFtZSwgdmFsdWUpID09IC0xKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOwogICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICB2YWx1ZSA9IGFzdDJvYmpfaWRlbnRpZmllcihvLT5hc25hbWUpOwogICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcocmVzdWx0LCAiYXNuYW1lIiwgdmFsdWUpID09IC0xKQorICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChyZXN1bHQsICZQeUlkX2FzbmFtZSwgdmFsdWUpID09IC0xKQorICAgICAgICAgICAgICAgIGdvdG8gZmFpbGVkOworICAgICAgICBQeV9ERUNSRUYodmFsdWUpOworICAgICAgICByZXR1cm4gcmVzdWx0OworZmFpbGVkOgorICAgICAgICBQeV9YREVDUkVGKHZhbHVlKTsKKyAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOworICAgICAgICByZXR1cm4gTlVMTDsKK30KKworUHlPYmplY3QqCithc3Qyb2JqX3dpdGhpdGVtKHZvaWQqIF9vKQoreworICAgICAgICB3aXRoaXRlbV90eSBvID0gKHdpdGhpdGVtX3R5KV9vOworICAgICAgICBQeU9iamVjdCAqcmVzdWx0ID0gTlVMTCwgKnZhbHVlID0gTlVMTDsKKyAgICAgICAgaWYgKCFvKSB7CisgICAgICAgICAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOworICAgICAgICAgICAgICAgIHJldHVybiBQeV9Ob25lOworICAgICAgICB9CisKKyAgICAgICAgcmVzdWx0ID0gUHlUeXBlX0dlbmVyaWNOZXcod2l0aGl0ZW1fdHlwZSwgTlVMTCwgTlVMTCk7CisgICAgICAgIGlmICghcmVzdWx0KSByZXR1cm4gTlVMTDsKKyAgICAgICAgdmFsdWUgPSBhc3Qyb2JqX2V4cHIoby0+Y29udGV4dF9leHByKTsKKyAgICAgICAgaWYgKCF2YWx1ZSkgZ290byBmYWlsZWQ7CisgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHJlc3VsdCwgJlB5SWRfY29udGV4dF9leHByLCB2YWx1ZSkgPT0gLTEpCisgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CisgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CisgICAgICAgIHZhbHVlID0gYXN0Mm9ial9leHByKG8tPm9wdGlvbmFsX3ZhcnMpOworICAgICAgICBpZiAoIXZhbHVlKSBnb3RvIGZhaWxlZDsKKyAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQocmVzdWx0LCAmUHlJZF9vcHRpb25hbF92YXJzLCB2YWx1ZSkgPT0gLTEpCiAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgIFB5X0RFQ1JFRih2YWx1ZSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CkBAIC0zNDAwLDExICszNTM4LDExIEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGJvZHk7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJib2R5IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2JvZHkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImJvZHkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9ib2R5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJNb2R1bGUgZmllbGQgXCJib2R5XCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC0zNDM2LDExICszNTc0LDExIEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGJvZHk7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJib2R5IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2JvZHkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImJvZHkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9ib2R5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJJbnRlcmFjdGl2ZSBmaWVsZCBcImJvZHlcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTM0NzIsOSArMzYxMCw5IEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgZXhwcl90eSBib2R5OwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiYm9keSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9ib2R5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYm9keSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2JvZHkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZib2R5LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtMzQ5NSwxMSArMzYzMywxMSBAQAogICAgICAgICBpZiAoaXNpbnN0YW5jZSkgewogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBib2R5OwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiYm9keSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9ib2R5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJib2R5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfYm9keSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiU3VpdGUgZmllbGQgXCJib2R5XCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC0zNTQ0LDkgKzM2ODIsOSBAQAogICAgICAgICAgICAgICAgICpvdXQgPSBOVUxMOwogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImxpbmVubyIpKSB7CisgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfbGluZW5vKSkgewogICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJsaW5lbm8iKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfbGluZW5vKTsKICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfaW50KHRtcCwgJmxpbmVubywgYXJlbmEpOwogICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC0zNTU2LDkgKzM2OTQsOSBAQAogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImxpbmVub1wiIG1pc3NpbmcgZnJvbSBzdG10Iik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiY29sX29mZnNldCIpKSB7CisgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfY29sX29mZnNldCkpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiY29sX29mZnNldCIpOworICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9jb2xfb2Zmc2V0KTsKICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfaW50KHRtcCwgJmNvbF9vZmZzZXQsIGFyZW5hKTsKICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtMzU3OSw5ICszNzE3LDkgQEAKICAgICAgICAgICAgICAgICBhc2RsX3NlcSogZGVjb3JhdG9yX2xpc3Q7CiAgICAgICAgICAgICAgICAgZXhwcl90eSByZXR1cm5zOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAibmFtZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9uYW1lKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAibmFtZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX25hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfaWRlbnRpZmllcih0bXAsICZuYW1lLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtMzU5MSw5ICszNzI5LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcIm5hbWVcIiBtaXNzaW5nIGZyb20gRnVuY3Rpb25EZWYiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJhcmdzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2FyZ3MpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJhcmdzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfYXJncyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9hcmd1bWVudHModG1wLCAmYXJncywgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTM2MDMsMTEgKzM3NDEsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImFyZ3NcIiBtaXNzaW5nIGZyb20gRnVuY3Rpb25EZWYiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJib2R5IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2JvZHkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImJvZHkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9ib2R5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJGdW5jdGlvbkRlZiBmaWVsZCBcImJvZHlcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTM2MjgsMTEgKzM3NjYsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImJvZHlcIiBtaXNzaW5nIGZyb20gRnVuY3Rpb25EZWYiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJkZWNvcmF0b3JfbGlzdCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9kZWNvcmF0b3JfbGlzdCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiZGVjb3JhdG9yX2xpc3QiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9kZWNvcmF0b3JfbGlzdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiRnVuY3Rpb25EZWYgZmllbGQgXCJkZWNvcmF0b3JfbGlzdFwiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtMzY1Myw5ICszNzkxLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImRlY29yYXRvcl9saXN0XCIgbWlzc2luZyBmcm9tIEZ1bmN0aW9uRGVmIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAicmV0dXJucyIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9yZXR1cm5zKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAicmV0dXJucyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3JldHVybnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZyZXR1cm5zLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtMzY4Miw5ICszODIwLDkgQEAKICAgICAgICAgICAgICAgICBhc2RsX3NlcSogYm9keTsKICAgICAgICAgICAgICAgICBhc2RsX3NlcSogZGVjb3JhdG9yX2xpc3Q7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJuYW1lIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX25hbWUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJuYW1lIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfbmFtZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9pZGVudGlmaWVyKHRtcCwgJm5hbWUsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC0zNjk0LDExICszODMyLDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJuYW1lXCIgbWlzc2luZyBmcm9tIENsYXNzRGVmIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiYmFzZXMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfYmFzZXMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImJhc2VzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfYmFzZXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkNsYXNzRGVmIGZpZWxkIFwiYmFzZXNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTM3MTksMTEgKzM4NTcsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImJhc2VzXCIgbWlzc2luZyBmcm9tIENsYXNzRGVmIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAia2V5d29yZHMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfa2V5d29yZHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImtleXdvcmRzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfa2V5d29yZHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkNsYXNzRGVmIGZpZWxkIFwia2V5d29yZHNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTM3NDQsOSArMzg4Miw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJrZXl3b3Jkc1wiIG1pc3NpbmcgZnJvbSBDbGFzc0RlZiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInN0YXJhcmdzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3N0YXJhcmdzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAic3RhcmFyZ3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9zdGFyYXJncyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnN0YXJhcmdzLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtMzc1NSw5ICszODkzLDkgQEAKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcmFyZ3MgPSBOVUxMOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJrd2FyZ3MiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfa3dhcmdzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAia3dhcmdzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfa3dhcmdzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAma3dhcmdzLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtMzc2NiwxMSArMzkwNCwxMSBAQAogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3MgPSBOVUxMOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJib2R5IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2JvZHkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImJvZHkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9ib2R5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJDbGFzc0RlZiBmaWVsZCBcImJvZHlcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTM3OTEsMTEgKzM5MjksMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImJvZHlcIiBtaXNzaW5nIGZyb20gQ2xhc3NEZWYiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJkZWNvcmF0b3JfbGlzdCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9kZWNvcmF0b3JfbGlzdCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiZGVjb3JhdG9yX2xpc3QiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9kZWNvcmF0b3JfbGlzdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiQ2xhc3NEZWYgZmllbGQgXCJkZWNvcmF0b3JfbGlzdFwiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtMzgyOCw5ICszOTY2LDkgQEAKICAgICAgICAgaWYgKGlzaW5zdGFuY2UpIHsKICAgICAgICAgICAgICAgICBleHByX3R5IHZhbHVlOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAidmFsdWUiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJ2YWx1ZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3ZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmdmFsdWUsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC0zODUwLDExICszOTg4LDExIEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIHRhcmdldHM7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJ0YXJnZXRzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3RhcmdldHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInRhcmdldHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF90YXJnZXRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJEZWxldGUgZmllbGQgXCJ0YXJnZXRzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC0zODg3LDExICs0MDI1LDExIEBACiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIHRhcmdldHM7CiAgICAgICAgICAgICAgICAgZXhwcl90eSB2YWx1ZTsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInRhcmdldHMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfdGFyZ2V0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidGFyZ2V0cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3RhcmdldHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkFzc2lnbiBmaWVsZCBcInRhcmdldHNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTM5MTIsOSArNDA1MCw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJ0YXJnZXRzXCIgbWlzc2luZyBmcm9tIEFzc2lnbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInZhbHVlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhbHVlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtMzkzNyw5ICs0MDc1LDkgQEAKICAgICAgICAgICAgICAgICBvcGVyYXRvcl90eSBvcDsKICAgICAgICAgICAgICAgICBleHByX3R5IHZhbHVlOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAidGFyZ2V0IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3RhcmdldCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInRhcmdldCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3RhcmdldCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnRhcmdldCwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTM5NDksOSArNDA4Nyw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJ0YXJnZXRcIiBtaXNzaW5nIGZyb20gQXVnQXNzaWduIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAib3AiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfb3ApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJvcCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX29wKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X29wZXJhdG9yKHRtcCwgJm9wLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtMzk2MSw5ICs0MDk5LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcIm9wXCIgbWlzc2luZyBmcm9tIEF1Z0Fzc2lnbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInZhbHVlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhbHVlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtMzk4Nyw5ICs0MTI1LDkgQEAKICAgICAgICAgICAgICAgICBhc2RsX3NlcSogYm9keTsKICAgICAgICAgICAgICAgICBhc2RsX3NlcSogb3JlbHNlOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAidGFyZ2V0IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3RhcmdldCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInRhcmdldCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3RhcmdldCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnRhcmdldCwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTM5OTksOSArNDEzNyw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJ0YXJnZXRcIiBtaXNzaW5nIGZyb20gRm9yIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiaXRlciIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9pdGVyKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiaXRlciIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2l0ZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZpdGVyLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDAxMSwxMSArNDE0OSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiaXRlclwiIG1pc3NpbmcgZnJvbSBGb3IiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJib2R5IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2JvZHkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImJvZHkiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9ib2R5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJGb3IgZmllbGQgXCJib2R5XCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC00MDM2LDExICs0MTc0LDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJib2R5XCIgbWlzc2luZyBmcm9tIEZvciIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgIm9yZWxzZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9vcmVsc2UpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm9yZWxzZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX29yZWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiRm9yIGZpZWxkIFwib3JlbHNlXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC00MDc1LDkgKzQyMTMsOSBAQAogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBib2R5OwogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBvcmVsc2U7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJ0ZXN0IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3Rlc3QpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJ0ZXN0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfdGVzdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnRlc3QsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC00MDg3LDExICs0MjI1LDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJ0ZXN0XCIgbWlzc2luZyBmcm9tIFdoaWxlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiYm9keSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9ib2R5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJib2R5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfYm9keSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiV2hpbGUgZmllbGQgXCJib2R5XCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC00MTEyLDExICs0MjUwLDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJib2R5XCIgbWlzc2luZyBmcm9tIFdoaWxlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAib3JlbHNlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX29yZWxzZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAib3JlbHNlIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfb3JlbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJXaGlsZSBmaWVsZCBcIm9yZWxzZVwiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtNDE1MCw5ICs0Mjg4LDkgQEAKICAgICAgICAgICAgICAgICBhc2RsX3NlcSogYm9keTsKICAgICAgICAgICAgICAgICBhc2RsX3NlcSogb3JlbHNlOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAidGVzdCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF90ZXN0KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidGVzdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3Rlc3QpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZ0ZXN0LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDE2MiwxMSArNDMwMCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwidGVzdFwiIG1pc3NpbmcgZnJvbSBJZiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImJvZHkiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfYm9keSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYm9keSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2JvZHkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIklmIGZpZWxkIFwiYm9keVwiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtNDE4NywxMSArNDMyNSwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiYm9keVwiIG1pc3NpbmcgZnJvbSBJZiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgIm9yZWxzZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9vcmVsc2UpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm9yZWxzZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX29yZWxzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiSWYgZmllbGQgXCJvcmVsc2VcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTQyMjEsMzggKzQzNTksMzkgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQogICAgICAgICBpZiAoaXNpbnN0YW5jZSkgewotICAgICAgICAgICAgICAgIGV4cHJfdHkgY29udGV4dF9leHByOwotICAgICAgICAgICAgICAgIGV4cHJfdHkgb3B0aW9uYWxfdmFyczsKKyAgICAgICAgICAgICAgICBhc2RsX3NlcSogaXRlbXM7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGJvZHk7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJjb250ZXh0X2V4cHIiKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiY29udGV4dF9leHByIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJmNvbnRleHRfZXhwciwgYXJlbmEpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodG1wKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImNvbnRleHRfZXhwclwiIG1pc3NpbmcgZnJvbSBXaXRoIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAib3B0aW9uYWxfdmFycyIpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJvcHRpb25hbF92YXJzIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJm9wdGlvbmFsX3ZhcnMsIGFyZW5hKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQeV9YREVDUkVGKHRtcCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBOVUxMOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbF92YXJzID0gTlVMTDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiYm9keSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9pdGVtcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYm9keSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2l0ZW1zKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJXaXRoIGZpZWxkIFwiaXRlbXNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSBQeUxpc3RfR0VUX1NJWkUodG1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zID0gYXNkbF9zZXFfbmV3KGxlbiwgYXJlbmEpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1zID09IE5VTEwpIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpdGVtX3R5IHZhbHVlOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X3dpdGhpdGVtKFB5TGlzdF9HRVRfSVRFTSh0bXAsIGkpLCAmdmFsdWUsIGFyZW5hKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNkbF9zZXFfU0VUKGl0ZW1zLCBpLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBQeV9YREVDUkVGKHRtcCk7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBOVUxMOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJpdGVtc1wiIG1pc3NpbmcgZnJvbSBXaXRoIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9ib2R5KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOworICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2JvZHkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIldpdGggZmllbGQgXCJib2R5XCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC00MjczLDggKzQ0MTIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiYm9keVwiIG1pc3NpbmcgZnJvbSBXaXRoIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgKm91dCA9IFdpdGgoY29udGV4dF9leHByLCBvcHRpb25hbF92YXJzLCBib2R5LCBsaW5lbm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX29mZnNldCwgYXJlbmEpOworICAgICAgICAgICAgICAgICpvdXQgPSBXaXRoKGl0ZW1zLCBib2R5LCBsaW5lbm8sIGNvbF9vZmZzZXQsIGFyZW5hKTsKICAgICAgICAgICAgICAgICBpZiAoKm91dCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQpAQCAtNDI4Niw5ICs0NDI0LDkgQEAKICAgICAgICAgICAgICAgICBleHByX3R5IGV4YzsKICAgICAgICAgICAgICAgICBleHByX3R5IGNhdXNlOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiZXhjIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2V4YykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImV4YyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2V4Yyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJmV4YywgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTQyOTcsOSArNDQzNSw5IEBACiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGV4YyA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImNhdXNlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2NhdXNlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiY2F1c2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9jYXVzZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJmNhdXNlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDMxMiw3ICs0NDUwLDcgQEAKICAgICAgICAgICAgICAgICBpZiAoKm91dCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQotICAgICAgICBpc2luc3RhbmNlID0gUHlPYmplY3RfSXNJbnN0YW5jZShvYmosIChQeU9iamVjdCopVHJ5RXhjZXB0X3R5cGUpOworICAgICAgICBpc2luc3RhbmNlID0gUHlPYmplY3RfSXNJbnN0YW5jZShvYmosIChQeU9iamVjdCopVHJ5X3R5cGUpOwogICAgICAgICBpZiAoaXNpbnN0YW5jZSA9PSAtMSkgewogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9CkBAIC00MzIwLDE1ICs0NDU4LDE2IEBACiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGJvZHk7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGhhbmRsZXJzOwogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBvcmVsc2U7CisgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGZpbmFsYm9keTsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImJvZHkiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfYm9keSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYm9keSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2JvZHkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIlRyeUV4Y2VwdCBmaWVsZCBcImJvZHlcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIlRyeSBmaWVsZCBcImJvZHlcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSBQeUxpc3RfR0VUX1NJWkUodG1wKTsKQEAgLTQzNDMsMTcgKzQ0ODIsMTcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodG1wKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImJvZHlcIiBtaXNzaW5nIGZyb20gVHJ5RXhjZXB0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJib2R5XCIgbWlzc2luZyBmcm9tIFRyeSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImhhbmRsZXJzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2hhbmRsZXJzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJoYW5kbGVycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2hhbmRsZXJzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJUcnlFeGNlcHQgZmllbGQgXCJoYW5kbGVyc1wiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiVHJ5IGZpZWxkIFwiaGFuZGxlcnNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSBQeUxpc3RfR0VUX1NJWkUodG1wKTsKQEAgLTQzNjgsMTcgKzQ1MDcsMTcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodG1wKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImhhbmRsZXJzXCIgbWlzc2luZyBmcm9tIFRyeUV4Y2VwdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiaGFuZGxlcnNcIiBtaXNzaW5nIGZyb20gVHJ5Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAib3JlbHNlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX29yZWxzZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAib3JlbHNlIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfb3JlbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJUcnlFeGNlcHQgZmllbGQgXCJvcmVsc2VcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIlRyeSBmaWVsZCBcIm9yZWxzZVwiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IFB5TGlzdF9HRVRfU0laRSh0bXApOwpAQCAtNDM5Myw1NSArNDUzMiwxNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlfWERFQ1JFRih0bXApOwogICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gTlVMTDsKICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwib3JlbHNlXCIgbWlzc2luZyBmcm9tIFRyeUV4Y2VwdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwib3JlbHNlXCIgbWlzc2luZyBmcm9tIFRyeSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICpvdXQgPSBUcnlFeGNlcHQoYm9keSwgaGFuZGxlcnMsIG9yZWxzZSwgbGluZW5vLCBjb2xfb2Zmc2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJlbmEpOwotICAgICAgICAgICAgICAgIGlmICgqb3V0ID09IE5VTEwpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgICAgIGlzaW5zdGFuY2UgPSBQeU9iamVjdF9Jc0luc3RhbmNlKG9iaiwgKFB5T2JqZWN0KilUcnlGaW5hbGx5X3R5cGUpOwotICAgICAgICBpZiAoaXNpbnN0YW5jZSA9PSAtMSkgewotICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICB9Ci0gICAgICAgIGlmIChpc2luc3RhbmNlKSB7Ci0gICAgICAgICAgICAgICAgYXNkbF9zZXEqIGJvZHk7Ci0gICAgICAgICAgICAgICAgYXNkbF9zZXEqIGZpbmFsYm9keTsKLQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImJvZHkiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfZmluYWxib2R5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJib2R5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfZmluYWxib2R5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJUcnlGaW5hbGx5IGZpZWxkIFwiYm9keVwiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWxlZDsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IFB5TGlzdF9HRVRfU0laRSh0bXApOwotICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA9IGFzZGxfc2VxX25ldyhsZW4sIGFyZW5hKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChib2R5ID09IE5VTEwpIGdvdG8gZmFpbGVkOwotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0bXRfdHkgdmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3Rfc3RtdChQeUxpc3RfR0VUX0lURU0odG1wLCBpKSwgJnZhbHVlLCBhcmVuYSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzZGxfc2VxX1NFVChib2R5LCBpLCB2YWx1ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBQeV9YREVDUkVGKHRtcCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBOVUxMOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJib2R5XCIgbWlzc2luZyBmcm9tIFRyeUZpbmFsbHkiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJmaW5hbGJvZHkiKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwotICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJmaW5hbGJvZHkiKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJUcnlGaW5hbGx5IGZpZWxkIFwiZmluYWxib2R5XCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJUcnkgZmllbGQgXCJmaW5hbGJvZHlcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSBQeUxpc3RfR0VUX1NJWkUodG1wKTsKQEAgLTQ0NTYsMTAgKzQ1NTcsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodG1wKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImZpbmFsYm9keVwiIG1pc3NpbmcgZnJvbSBUcnlGaW5hbGx5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJmaW5hbGJvZHlcIiBtaXNzaW5nIGZyb20gVHJ5Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgKm91dCA9IFRyeUZpbmFsbHkoYm9keSwgZmluYWxib2R5LCBsaW5lbm8sIGNvbF9vZmZzZXQsIGFyZW5hKTsKKyAgICAgICAgICAgICAgICAqb3V0ID0gVHJ5KGJvZHksIGhhbmRsZXJzLCBvcmVsc2UsIGZpbmFsYm9keSwgbGluZW5vLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX29mZnNldCwgYXJlbmEpOwogICAgICAgICAgICAgICAgIGlmICgqb3V0ID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CkBAIC00NDcxLDkgKzQ1NzMsOSBAQAogICAgICAgICAgICAgICAgIGV4cHJfdHkgdGVzdDsKICAgICAgICAgICAgICAgICBleHByX3R5IG1zZzsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInRlc3QiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfdGVzdCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInRlc3QiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF90ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmdGVzdCwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTQ0ODMsOSArNDU4NSw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJ0ZXN0XCIgbWlzc2luZyBmcm9tIEFzc2VydCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgIm1zZyIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9tc2cpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJtc2ciKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9tc2cpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZtc2csIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC00NTA1LDExICs0NjA3LDExIEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIG5hbWVzOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAibmFtZXMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfbmFtZXMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm5hbWVzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfbmFtZXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkltcG9ydCBmaWVsZCBcIm5hbWVzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC00NTQzLDkgKzQ2NDUsOSBAQAogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBuYW1lczsKICAgICAgICAgICAgICAgICBpbnQgbGV2ZWw7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJtb2R1bGUiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfbW9kdWxlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAibW9kdWxlIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfbW9kdWxlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAmbW9kdWxlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDU1NCwxMSArNDY1NiwxMSBAQAogICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGUgPSBOVUxMOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJuYW1lcyIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9uYW1lcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAibmFtZXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9uYW1lcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiSW1wb3J0RnJvbSBmaWVsZCBcIm5hbWVzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC00NTc5LDkgKzQ2ODEsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwibmFtZXNcIiBtaXNzaW5nIGZyb20gSW1wb3J0RnJvbSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImxldmVsIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2xldmVsKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAibGV2ZWwiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9sZXZlbCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9pbnQodG1wLCAmbGV2ZWwsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC00NjAyLDExICs0NzA0LDExIEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIG5hbWVzOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAibmFtZXMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfbmFtZXMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm5hbWVzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfbmFtZXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkdsb2JhbCBmaWVsZCBcIm5hbWVzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC00NjM4LDExICs0NzQwLDExIEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIG5hbWVzOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAibmFtZXMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfbmFtZXMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm5hbWVzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfbmFtZXMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIk5vbmxvY2FsIGZpZWxkIFwibmFtZXNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTQ2NzQsOSArNDc3Niw5IEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgZXhwcl90eSB2YWx1ZTsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInZhbHVlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhbHVlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDc0MCw5ICs0ODQyLDkgQEAKICAgICAgICAgICAgICAgICAqb3V0ID0gTlVMTDsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJsaW5lbm8iKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2xpbmVubykpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAibGluZW5vIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2xpbmVubyk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2ludCh0bXAsICZsaW5lbm8sIGFyZW5hKTsKICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDc1Miw5ICs0ODU0LDkgQEAKICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJsaW5lbm9cIiBtaXNzaW5nIGZyb20gZXhwciIpOwogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImNvbF9vZmZzZXQiKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2NvbF9vZmZzZXQpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImNvbF9vZmZzZXQiKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfY29sX29mZnNldCk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2ludCh0bXAsICZjb2xfb2Zmc2V0LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTQ3NzIsOSArNDg3NCw5IEBACiAgICAgICAgICAgICAgICAgYm9vbG9wX3R5IG9wOwogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiB2YWx1ZXM7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJvcCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9vcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm9wIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfb3ApOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfYm9vbG9wKHRtcCwgJm9wLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDc4NCwxMSArNDg4NiwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwib3BcIiBtaXNzaW5nIGZyb20gQm9vbE9wIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAidmFsdWVzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWVzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfdmFsdWVzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJCb29sT3AgZmllbGQgXCJ2YWx1ZXNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTQ4MjIsOSArNDkyNCw5IEBACiAgICAgICAgICAgICAgICAgb3BlcmF0b3JfdHkgb3A7CiAgICAgICAgICAgICAgICAgZXhwcl90eSByaWdodDsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImxlZnQiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfbGVmdCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImxlZnQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9sZWZ0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmbGVmdCwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTQ4MzQsOSArNDkzNiw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJsZWZ0XCIgbWlzc2luZyBmcm9tIEJpbk9wIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAib3AiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfb3ApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJvcCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX29wKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X29wZXJhdG9yKHRtcCwgJm9wLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDg0Niw5ICs0OTQ4LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcIm9wXCIgbWlzc2luZyBmcm9tIEJpbk9wIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAicmlnaHQiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfcmlnaHQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJyaWdodCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3JpZ2h0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmcmlnaHQsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC00ODcwLDkgKzQ5NzIsOSBAQAogICAgICAgICAgICAgICAgIHVuYXJ5b3BfdHkgb3A7CiAgICAgICAgICAgICAgICAgZXhwcl90eSBvcGVyYW5kOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAib3AiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfb3ApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJvcCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX29wKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X3VuYXJ5b3AodG1wLCAmb3AsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC00ODgyLDkgKzQ5ODQsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwib3BcIiBtaXNzaW5nIGZyb20gVW5hcnlPcCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgIm9wZXJhbmQiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfb3BlcmFuZCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm9wZXJhbmQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9vcGVyYW5kKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmb3BlcmFuZCwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTQ5MDYsOSArNTAwOCw5IEBACiAgICAgICAgICAgICAgICAgYXJndW1lbnRzX3R5IGFyZ3M7CiAgICAgICAgICAgICAgICAgZXhwcl90eSBib2R5OwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiYXJncyIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9hcmdzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYXJncyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2FyZ3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfYXJndW1lbnRzKHRtcCwgJmFyZ3MsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC00OTE4LDkgKzUwMjAsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiYXJnc1wiIG1pc3NpbmcgZnJvbSBMYW1iZGEiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJib2R5IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2JvZHkpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJib2R5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfYm9keSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJmJvZHksIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC00OTQzLDkgKzUwNDUsOSBAQAogICAgICAgICAgICAgICAgIGV4cHJfdHkgYm9keTsKICAgICAgICAgICAgICAgICBleHByX3R5IG9yZWxzZTsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInRlc3QiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfdGVzdCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInRlc3QiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF90ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmdGVzdCwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTQ5NTUsOSArNTA1Nyw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJ0ZXN0XCIgbWlzc2luZyBmcm9tIElmRXhwIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiYm9keSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9ib2R5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYm9keSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2JvZHkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZib2R5LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDk2Nyw5ICs1MDY5LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImJvZHlcIiBtaXNzaW5nIGZyb20gSWZFeHAiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJvcmVsc2UiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfb3JlbHNlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAib3JlbHNlIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfb3JlbHNlKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmb3JlbHNlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNDk5MSwxMSArNTA5MywxMSBAQAogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBrZXlzOwogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiB2YWx1ZXM7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJrZXlzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2tleXMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImtleXMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9rZXlzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJEaWN0IGZpZWxkIFwia2V5c1wiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtNTAxNiwxMSArNTExOCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwia2V5c1wiIG1pc3NpbmcgZnJvbSBEaWN0Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAidmFsdWVzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWVzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfdmFsdWVzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJEaWN0IGZpZWxkIFwidmFsdWVzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC01MDUyLDExICs1MTU0LDExIEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGVsdHM7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJlbHRzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2VsdHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImVsdHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9lbHRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJTZXQgZmllbGQgXCJlbHRzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC01MDg5LDkgKzUxOTEsOSBAQAogICAgICAgICAgICAgICAgIGV4cHJfdHkgZWx0OwogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBnZW5lcmF0b3JzOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiZWx0IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2VsdCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImVsdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2VsdCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJmVsdCwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTUxMDEsMTEgKzUyMDMsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImVsdFwiIG1pc3NpbmcgZnJvbSBMaXN0Q29tcCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImdlbmVyYXRvcnMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfZ2VuZXJhdG9ycykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiZ2VuZXJhdG9ycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2dlbmVyYXRvcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkxpc3RDb21wIGZpZWxkIFwiZ2VuZXJhdG9yc1wiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtNTEzOCw5ICs1MjQwLDkgQEAKICAgICAgICAgICAgICAgICBleHByX3R5IGVsdDsKICAgICAgICAgICAgICAgICBhc2RsX3NlcSogZ2VuZXJhdG9yczsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImVsdCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9lbHQpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJlbHQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9lbHQpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZlbHQsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC01MTUwLDExICs1MjUyLDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJlbHRcIiBtaXNzaW5nIGZyb20gU2V0Q29tcCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImdlbmVyYXRvcnMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfZ2VuZXJhdG9ycykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiZ2VuZXJhdG9ycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2dlbmVyYXRvcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIlNldENvbXAgZmllbGQgXCJnZW5lcmF0b3JzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC01MTg4LDkgKzUyOTAsOSBAQAogICAgICAgICAgICAgICAgIGV4cHJfdHkgdmFsdWU7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGdlbmVyYXRvcnM7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJrZXkiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfa2V5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAia2V5Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfa2V5KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAma2V5LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTIwMCw5ICs1MzAyLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImtleVwiIG1pc3NpbmcgZnJvbSBEaWN0Q29tcCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInZhbHVlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhbHVlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTIxMiwxMSArNTMxNCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwidmFsdWVcIiBtaXNzaW5nIGZyb20gRGljdENvbXAiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJnZW5lcmF0b3JzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2dlbmVyYXRvcnMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImdlbmVyYXRvcnMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9nZW5lcmF0b3JzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJEaWN0Q29tcCBmaWVsZCBcImdlbmVyYXRvcnNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTUyNTAsOSArNTM1Miw5IEBACiAgICAgICAgICAgICAgICAgZXhwcl90eSBlbHQ7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGdlbmVyYXRvcnM7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJlbHQiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfZWx0KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiZWx0Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfZWx0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmZWx0LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTI2MiwxMSArNTM2NCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiZWx0XCIgbWlzc2luZyBmcm9tIEdlbmVyYXRvckV4cCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImdlbmVyYXRvcnMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfZ2VuZXJhdG9ycykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiZ2VuZXJhdG9ycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2dlbmVyYXRvcnMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkdlbmVyYXRvckV4cCBmaWVsZCBcImdlbmVyYXRvcnNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTUyOTgsOSArNTQwMCw5IEBACiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7CiAgICAgICAgICAgICAgICAgZXhwcl90eSB2YWx1ZTsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInZhbHVlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhbHVlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTMxMyw2ICs1NDE1LDI4IEBACiAgICAgICAgICAgICAgICAgaWYgKCpvdXQgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KKyAgICAgICAgaXNpbnN0YW5jZSA9IFB5T2JqZWN0X0lzSW5zdGFuY2Uob2JqLCAoUHlPYmplY3QqKVlpZWxkRnJvbV90eXBlKTsKKyAgICAgICAgaWYgKGlzaW5zdGFuY2UgPT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaXNpbnN0YW5jZSkgeworICAgICAgICAgICAgICAgIGV4cHJfdHkgdmFsdWU7CisKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhbHVlLCBhcmVuYSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgICAgICAgICAgUHlfWERFQ1JFRih0bXApOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gTlVMTDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAqb3V0ID0gWWllbGRGcm9tKHZhbHVlLCBsaW5lbm8sIGNvbF9vZmZzZXQsIGFyZW5hKTsKKyAgICAgICAgICAgICAgICBpZiAoKm91dCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQogICAgICAgICBpc2luc3RhbmNlID0gUHlPYmplY3RfSXNJbnN0YW5jZShvYmosIChQeU9iamVjdCopQ29tcGFyZV90eXBlKTsKICAgICAgICAgaWYgKGlzaW5zdGFuY2UgPT0gLTEpIHsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKQEAgLTUzMjIsOSArNTQ0Niw5IEBACiAgICAgICAgICAgICAgICAgYXNkbF9pbnRfc2VxKiBvcHM7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGNvbXBhcmF0b3JzOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAibGVmdCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9sZWZ0KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAibGVmdCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2xlZnQpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZsZWZ0LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTMzNCwxMSArNTQ1OCwxMSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwibGVmdFwiIG1pc3NpbmcgZnJvbSBDb21wYXJlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAib3BzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX29wcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAib3BzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfb3BzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJDb21wYXJlIGZpZWxkIFwib3BzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC01MzU5LDExICs1NDgzLDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJvcHNcIiBtaXNzaW5nIGZyb20gQ29tcGFyZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImNvbXBhcmF0b3JzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2NvbXBhcmF0b3JzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJjb21wYXJhdG9ycyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2NvbXBhcmF0b3JzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJDb21wYXJlIGZpZWxkIFwiY29tcGFyYXRvcnNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTU0MDAsOSArNTUyNCw5IEBACiAgICAgICAgICAgICAgICAgZXhwcl90eSBzdGFyYXJnczsKICAgICAgICAgICAgICAgICBleHByX3R5IGt3YXJnczsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImZ1bmMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfZnVuYykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImZ1bmMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9mdW5jKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmZnVuYywgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTU0MTIsMTEgKzU1MzYsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImZ1bmNcIiBtaXNzaW5nIGZyb20gQ2FsbCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImFyZ3MiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfYXJncykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYXJncyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2FyZ3MpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkNhbGwgZmllbGQgXCJhcmdzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC01NDM3LDExICs1NTYxLDExIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJhcmdzXCIgbWlzc2luZyBmcm9tIENhbGwiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJrZXl3b3JkcyIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9rZXl3b3JkcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAia2V5d29yZHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9rZXl3b3Jkcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiQ2FsbCBmaWVsZCBcImtleXdvcmRzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC01NDYyLDkgKzU1ODYsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwia2V5d29yZHNcIiBtaXNzaW5nIGZyb20gQ2FsbCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInN0YXJhcmdzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3N0YXJhcmdzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAic3RhcmFyZ3MiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9zdGFyYXJncyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnN0YXJhcmdzLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTQ3Myw5ICs1NTk3LDkgQEAKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgc3RhcmFyZ3MgPSBOVUxMOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJrd2FyZ3MiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfa3dhcmdzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAia3dhcmdzIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfa3dhcmdzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAma3dhcmdzLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTQ5Niw5ICs1NjIwLDkgQEAKICAgICAgICAgaWYgKGlzaW5zdGFuY2UpIHsKICAgICAgICAgICAgICAgICBvYmplY3QgbjsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgIm4iKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfbikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9uKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X29iamVjdCh0bXAsICZuLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTUxOSw5ICs1NjQzLDkgQEAKICAgICAgICAgaWYgKGlzaW5zdGFuY2UpIHsKICAgICAgICAgICAgICAgICBzdHJpbmcgczsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X3N0cmluZyh0bXAsICZzLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTU0MCwxMyArNTY2NCwxMyBAQAogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9CiAgICAgICAgIGlmIChpc2luc3RhbmNlKSB7Ci0gICAgICAgICAgICAgICAgc3RyaW5nIHM7CisgICAgICAgICAgICAgICAgYnl0ZXMgczsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9zKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X3N0cmluZyh0bXAsICZzLCBhcmVuYSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2J5dGVzKHRtcCwgJnMsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9YREVDUkVGKHRtcCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBOVUxMOwpAQCAtNTU3Nyw5ICs1NzAxLDkgQEAKICAgICAgICAgICAgICAgICBpZGVudGlmaWVyIGF0dHI7CiAgICAgICAgICAgICAgICAgZXhwcl9jb250ZXh0X3R5IGN0eDsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInZhbHVlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhbHVlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTU4OSw5ICs1NzEzLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcInZhbHVlXCIgbWlzc2luZyBmcm9tIEF0dHJpYnV0ZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImF0dHIiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfYXR0cikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImF0dHIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9hdHRyKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAmYXR0ciwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTU2MDEsOSArNTcyNSw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJhdHRyXCIgbWlzc2luZyBmcm9tIEF0dHJpYnV0ZSIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImN0eCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9jdHgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJjdHgiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9jdHgpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcl9jb250ZXh0KHRtcCwgJmN0eCwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTU2MjYsOSArNTc1MCw5IEBACiAgICAgICAgICAgICAgICAgc2xpY2VfdHkgc2xpY2U7CiAgICAgICAgICAgICAgICAgZXhwcl9jb250ZXh0X3R5IGN0eDsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInZhbHVlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhbHVlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTYzOCw5ICs1NzYyLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcInZhbHVlXCIgbWlzc2luZyBmcm9tIFN1YnNjcmlwdCIpOwogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInNsaWNlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3NsaWNlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAic2xpY2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9zbGljZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9zbGljZSh0bXAsICZzbGljZSwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTU2NTAsOSArNTc3NCw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJzbGljZVwiIG1pc3NpbmcgZnJvbSBTdWJzY3JpcHQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJjdHgiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfY3R4KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiY3R4Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfY3R4KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHJfY29udGV4dCh0bXAsICZjdHgsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC01Njc0LDkgKzU3OTgsOSBAQAogICAgICAgICAgICAgICAgIGV4cHJfdHkgdmFsdWU7CiAgICAgICAgICAgICAgICAgZXhwcl9jb250ZXh0X3R5IGN0eDsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgInZhbHVlIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhbHVlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFsdWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF92YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhbHVlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTY4Niw5ICs1ODEwLDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcInZhbHVlXCIgbWlzc2luZyBmcm9tIFN0YXJyZWQiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJjdHgiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfY3R4KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiY3R4Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfY3R4KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHJfY29udGV4dCh0bXAsICZjdHgsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC01NzEwLDkgKzU4MzQsOSBAQAogICAgICAgICAgICAgICAgIGlkZW50aWZpZXIgaWQ7CiAgICAgICAgICAgICAgICAgZXhwcl9jb250ZXh0X3R5IGN0eDsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImlkIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2lkKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiaWQiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9pZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9pZGVudGlmaWVyKHRtcCwgJmlkLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTcyMiw5ICs1ODQ2LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImlkXCIgbWlzc2luZyBmcm9tIE5hbWUiKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJjdHgiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfY3R4KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiY3R4Iik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfY3R4KTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHJfY29udGV4dCh0bXAsICZjdHgsIGFyZW5hKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC01NzQ2LDExICs1ODcwLDExIEBACiAgICAgICAgICAgICAgICAgYXNkbF9zZXEqIGVsdHM7CiAgICAgICAgICAgICAgICAgZXhwcl9jb250ZXh0X3R5IGN0eDsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImVsdHMiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfZWx0cykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiZWx0cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2VsdHMpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkxpc3QgZmllbGQgXCJlbHRzXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC01NzcxLDkgKzU4OTUsOSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiZWx0c1wiIG1pc3NpbmcgZnJvbSBMaXN0Iik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiY3R4IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2N0eCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImN0eCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2N0eCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByX2NvbnRleHQodG1wLCAmY3R4LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTc5NSwxMSArNTkxOSwxMSBAQAogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBlbHRzOwogICAgICAgICAgICAgICAgIGV4cHJfY29udGV4dF90eSBjdHg7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJlbHRzIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2VsdHMpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImVsdHMiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9lbHRzKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJUdXBsZSBmaWVsZCBcImVsdHNcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTU4MjAsOSArNTk0NCw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJlbHRzXCIgbWlzc2luZyBmcm9tIFR1cGxlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiY3R4IikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2N0eCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImN0eCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2N0eCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByX2NvbnRleHQodG1wLCAmY3R4LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTkyMSw5ICs2MDQ1LDkgQEAKICAgICAgICAgICAgICAgICBleHByX3R5IHVwcGVyOwogICAgICAgICAgICAgICAgIGV4cHJfdHkgc3RlcDsKIAotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImxvd2VyIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2xvd2VyKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAibG93ZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9sb3dlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJmxvd2VyLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTkzMiw5ICs2MDU2LDkgQEAKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgbG93ZXIgPSBOVUxMOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJ1cHBlciIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF91cHBlcikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInVwcGVyIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfdXBwZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZ1cHBlciwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTU5NDMsOSArNjA2Nyw5IEBACiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHVwcGVyID0gTlVMTDsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAic3RlcCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9zdGVwKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAic3RlcCIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3N0ZXApOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZzdGVwLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNTk2NSwxMSArNjA4OSwxMSBAQAogICAgICAgICBpZiAoaXNpbnN0YW5jZSkgewogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBkaW1zOwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAiZGltcyIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9kaW1zKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJkaW1zIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfZGltcyk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiRXh0U2xpY2UgZmllbGQgXCJkaW1zXCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC02MDAxLDkgKzYxMjUsOSBAQAogICAgICAgICBpZiAoaXNpbnN0YW5jZSkgewogICAgICAgICAgICAgICAgIGV4cHJfdHkgdmFsdWU7CiAKLSAgICAgICAgICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJ2YWx1ZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF92YWx1ZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInZhbHVlIik7CisgICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfdmFsdWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZ2YWx1ZSwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTYyOTYsOSArNjQyMCw5IEBACiAgICAgICAgIGV4cHJfdHkgaXRlcjsKICAgICAgICAgYXNkbF9zZXEqIGlmczsKIAotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJ0YXJnZXQiKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3RhcmdldCkpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidGFyZ2V0Iik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3RhcmdldCk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmdGFyZ2V0LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTYzMDgsOSArNjQzMiw5IEBACiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwidGFyZ2V0XCIgbWlzc2luZyBmcm9tIGNvbXByZWhlbnNpb24iKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJpdGVyIikpIHsKKyAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9pdGVyKSkgewogICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJpdGVyIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2l0ZXIpOwogICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJml0ZXIsIGFyZW5hKTsKICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNjMyMCwxMSArNjQ0NCwxMSBAQAogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcIml0ZXJcIiBtaXNzaW5nIGZyb20gY29tcHJlaGVuc2lvbiIpOwogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImlmcyIpKSB7CisgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfaWZzKSkgewogICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CiAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBpOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiaWZzIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2lmcyk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICBpZiAoIVB5TGlzdF9DaGVjayh0bXApKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLCAiY29tcHJlaGVuc2lvbiBmaWVsZCBcImlmc1wiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtNjM2NSw5ICs2NDg5LDkgQEAKICAgICAgICAgICAgICAgICAqb3V0ID0gTlVMTDsKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJsaW5lbm8iKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2xpbmVubykpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAibGluZW5vIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2xpbmVubyk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2ludCh0bXAsICZsaW5lbm8sIGFyZW5hKTsKICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNjM3Nyw5ICs2NTAxLDkgQEAKICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicmVxdWlyZWQgZmllbGQgXCJsaW5lbm9cIiBtaXNzaW5nIGZyb20gZXhjZXB0aGFuZGxlciIpOwogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImNvbF9vZmZzZXQiKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2NvbF9vZmZzZXQpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImNvbF9vZmZzZXQiKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfY29sX29mZnNldCk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2ludCh0bXAsICZjb2xfb2Zmc2V0LCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTYzOTgsOSArNjUyMiw5IEBACiAgICAgICAgICAgICAgICAgaWRlbnRpZmllciBuYW1lOwogICAgICAgICAgICAgICAgIGFzZGxfc2VxKiBib2R5OwogCi0gICAgICAgICAgICAgICAgaWYgKFB5T2JqZWN0X0hhc0F0dHJTdHJpbmcob2JqLCAidHlwZSIpKSB7CisgICAgICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF90eXBlKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidHlwZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3R5cGUpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZ0eXBlLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNjQwOSw5ICs2NTMzLDkgQEAKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgIm5hbWUiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfbmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9uYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAmbmFtZSwgYXJlbmEpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTY0MjAsMTEgKzY1NDQsMTEgQEAKICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImJvZHkiKSkgeworICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfYm9keSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXM7CiAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYm9keSIpOworICAgICAgICAgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2JvZHkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIkV4Y2VwdEhhbmRsZXIgZmllbGQgXCJib2R5XCIgbXVzdCBiZSBhIGxpc3QsIG5vdCBhICUuMjAwcyIsIHRtcC0+b2JfdHlwZS0+dHBfbmFtZSk7CkBAIC02NDcwLDExICs2NTk0LDExIEBACiAgICAgICAgIGFzZGxfc2VxKiBkZWZhdWx0czsKICAgICAgICAgYXNkbF9zZXEqIGt3X2RlZmF1bHRzOwogCi0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImFyZ3MiKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2FyZ3MpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJhcmdzIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2FyZ3MpOwogICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgImFyZ3VtZW50cyBmaWVsZCBcImFyZ3NcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTY0OTUsOSArNjYxOSw5IEBACiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiYXJnc1wiIG1pc3NpbmcgZnJvbSBhcmd1bWVudHMiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJ2YXJhcmciKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX3ZhcmFyZykpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAidmFyYXJnIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3ZhcmFyZyk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAmdmFyYXJnLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTY1MDYsOSArNjYzMCw5IEBACiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgdmFyYXJnID0gTlVMTDsKICAgICAgICAgfQotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJ2YXJhcmdhbm5vdGF0aW9uIikpIHsKKyAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF92YXJhcmdhbm5vdGF0aW9uKSkgewogICAgICAgICAgICAgICAgIGludCByZXM7Ci0gICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJ2YXJhcmdhbm5vdGF0aW9uIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3ZhcmFyZ2Fubm90YXRpb24pOwogICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJnZhcmFyZ2Fubm90YXRpb24sIGFyZW5hKTsKICAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOwpAQCAtNjUxNywxMSArNjY0MSwxMSBAQAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHZhcmFyZ2Fubm90YXRpb24gPSBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImt3b25seWFyZ3MiKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2t3b25seWFyZ3MpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGk7Ci0gICAgICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhvYmosICJrd29ubHlhcmdzIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2t3b25seWFyZ3MpOwogICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CiAgICAgICAgICAgICAgICAgaWYgKCFQeUxpc3RfQ2hlY2sodG1wKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgImFyZ3VtZW50cyBmaWVsZCBcImt3b25seWFyZ3NcIiBtdXN0IGJlIGEgbGlzdCwgbm90IGEgJS4yMDBzIiwgdG1wLT5vYl90eXBlLT50cF9uYW1lKTsKQEAgLTY1NDIsOSArNjY2Niw5IEBACiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwia3dvbmx5YXJnc1wiIG1pc3NpbmcgZnJvbSBhcmd1bWVudHMiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJrd2FyZyIpKSB7CisgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfa3dhcmcpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImt3YXJnIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2t3YXJnKTsKICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfaWRlbnRpZmllcih0bXAsICZrd2FyZywgYXJlbmEpOwogICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC02NTUzLDkgKzY2NzcsOSBAQAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIGt3YXJnID0gTlVMTDsKICAgICAgICAgfQotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJrd2FyZ2Fubm90YXRpb24iKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2t3YXJnYW5ub3RhdGlvbikpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAia3dhcmdhbm5vdGF0aW9uIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2t3YXJnYW5ub3RhdGlvbik7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAma3dhcmdhbm5vdGF0aW9uLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTY1NjQsMTEgKzY2ODgsMTEgQEAKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBrd2FyZ2Fubm90YXRpb24gPSBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImRlZmF1bHRzIikpIHsKKyAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9kZWZhdWx0cykpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImRlZmF1bHRzIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2RlZmF1bHRzKTsKICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJhcmd1bWVudHMgZmllbGQgXCJkZWZhdWx0c1wiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtNjU4OSwxMSArNjcxMywxMSBAQAogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcImRlZmF1bHRzXCIgbWlzc2luZyBmcm9tIGFyZ3VtZW50cyIpOwogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImt3X2RlZmF1bHRzIikpIHsKKyAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9rd19kZWZhdWx0cykpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOwogICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgaTsKLSAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImt3X2RlZmF1bHRzIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2t3X2RlZmF1bHRzKTsKICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIGlmICghUHlMaXN0X0NoZWNrKHRtcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJhcmd1bWVudHMgZmllbGQgXCJrd19kZWZhdWx0c1wiIG11c3QgYmUgYSBsaXN0LCBub3QgYSAlLjIwMHMiLCB0bXAtPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtNjYyOSw5ICs2NzUzLDkgQEAKICAgICAgICAgaWRlbnRpZmllciBhcmc7CiAgICAgICAgIGV4cHJfdHkgYW5ub3RhdGlvbjsKIAotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJhcmciKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2FyZykpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYXJnIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2FyZyk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAmYXJnLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTY2NDEsOSArNjc2NSw5IEBACiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiYXJnXCIgbWlzc2luZyBmcm9tIGFyZyIpOwogICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgImFubm90YXRpb24iKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2Fubm90YXRpb24pKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgImFubm90YXRpb24iKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfYW5ub3RhdGlvbik7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2V4cHIodG1wLCAmYW5ub3RhdGlvbiwgYXJlbmEpOwogICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC02NjY2LDkgKzY3OTAsOSBAQAogICAgICAgICBpZGVudGlmaWVyIGFyZzsKICAgICAgICAgZXhwcl90eSB2YWx1ZTsKIAotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJhcmciKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2FyZykpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYXJnIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2FyZyk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAmYXJnLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTY2NzgsOSArNjgwMiw5IEBACiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiYXJnXCIgbWlzc2luZyBmcm9tIGtleXdvcmQiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJ2YWx1ZSIpKSB7CisgICAgICAgIGlmIChfUHlPYmplY3RfSGFzQXR0cklkKG9iaiwgJlB5SWRfdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgInZhbHVlIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX3ZhbHVlKTsKICAgICAgICAgICAgICAgICBpZiAodG1wID09IE5VTEwpIGdvdG8gZmFpbGVkOwogICAgICAgICAgICAgICAgIHJlcyA9IG9iajJhc3RfZXhwcih0bXAsICZ2YWx1ZSwgYXJlbmEpOwogICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC02NzA0LDkgKzY4MjgsOSBAQAogICAgICAgICBpZGVudGlmaWVyIG5hbWU7CiAgICAgICAgIGlkZW50aWZpZXIgYXNuYW1lOwogCi0gICAgICAgIGlmIChQeU9iamVjdF9IYXNBdHRyU3RyaW5nKG9iaiwgIm5hbWUiKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX25hbWUpKSB7CiAgICAgICAgICAgICAgICAgaW50IHJlczsKLSAgICAgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG9iaiwgIm5hbWUiKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBfUHlPYmplY3RfR2V0QXR0cklkKG9iaiwgJlB5SWRfbmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAmbmFtZSwgYXJlbmEpOwogICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CkBAIC02NzE2LDkgKzY4NDAsOSBAQAogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsICJyZXF1aXJlZCBmaWVsZCBcIm5hbWVcIiBtaXNzaW5nIGZyb20gYWxpYXMiKTsKICAgICAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgICAgICBpZiAoUHlPYmplY3RfSGFzQXR0clN0cmluZyhvYmosICJhc25hbWUiKSkgeworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2FzbmFtZSkpIHsKICAgICAgICAgICAgICAgICBpbnQgcmVzOwotICAgICAgICAgICAgICAgIHRtcCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob2JqLCAiYXNuYW1lIik7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX2FzbmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSBnb3RvIGZhaWxlZDsKICAgICAgICAgICAgICAgICByZXMgPSBvYmoyYXN0X2lkZW50aWZpZXIodG1wLCAmYXNuYW1lLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyAhPSAwKSBnb3RvIGZhaWxlZDsKQEAgLTY3MzQsNiArNjg1OCw0MyBAQAogICAgICAgICByZXR1cm4gMTsKIH0KIAoraW50CitvYmoyYXN0X3dpdGhpdGVtKFB5T2JqZWN0KiBvYmosIHdpdGhpdGVtX3R5KiBvdXQsIFB5QXJlbmEqIGFyZW5hKQoreworICAgICAgICBQeU9iamVjdCogdG1wID0gTlVMTDsKKyAgICAgICAgZXhwcl90eSBjb250ZXh0X2V4cHI7CisgICAgICAgIGV4cHJfdHkgb3B0aW9uYWxfdmFyczsKKworICAgICAgICBpZiAoX1B5T2JqZWN0X0hhc0F0dHJJZChvYmosICZQeUlkX2NvbnRleHRfZXhwcikpIHsKKyAgICAgICAgICAgICAgICBpbnQgcmVzOworICAgICAgICAgICAgICAgIHRtcCA9IF9QeU9iamVjdF9HZXRBdHRySWQob2JqLCAmUHlJZF9jb250ZXh0X2V4cHIpOworICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CisgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJmNvbnRleHRfZXhwciwgYXJlbmEpOworICAgICAgICAgICAgICAgIGlmIChyZXMgIT0gMCkgZ290byBmYWlsZWQ7CisgICAgICAgICAgICAgICAgUHlfWERFQ1JFRih0bXApOworICAgICAgICAgICAgICAgIHRtcCA9IE5VTEw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgInJlcXVpcmVkIGZpZWxkIFwiY29udGV4dF9leHByXCIgbWlzc2luZyBmcm9tIHdpdGhpdGVtIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIH0KKyAgICAgICAgaWYgKF9QeU9iamVjdF9IYXNBdHRySWQob2JqLCAmUHlJZF9vcHRpb25hbF92YXJzKSkgeworICAgICAgICAgICAgICAgIGludCByZXM7CisgICAgICAgICAgICAgICAgdG1wID0gX1B5T2JqZWN0X0dldEF0dHJJZChvYmosICZQeUlkX29wdGlvbmFsX3ZhcnMpOworICAgICAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkgZ290byBmYWlsZWQ7CisgICAgICAgICAgICAgICAgcmVzID0gb2JqMmFzdF9leHByKHRtcCwgJm9wdGlvbmFsX3ZhcnMsIGFyZW5hKTsKKyAgICAgICAgICAgICAgICBpZiAocmVzICE9IDApIGdvdG8gZmFpbGVkOworICAgICAgICAgICAgICAgIFB5X1hERUNSRUYodG1wKTsKKyAgICAgICAgICAgICAgICB0bXAgPSBOVUxMOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIG9wdGlvbmFsX3ZhcnMgPSBOVUxMOworICAgICAgICB9CisgICAgICAgICpvdXQgPSB3aXRoaXRlbShjb250ZXh0X2V4cHIsIG9wdGlvbmFsX3ZhcnMsIGFyZW5hKTsKKyAgICAgICAgcmV0dXJuIDA7CitmYWlsZWQ6CisgICAgICAgIFB5X1hERUNSRUYodG1wKTsKKyAgICAgICAgcmV0dXJuIDE7Cit9CisKIAogc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiBfYXN0bW9kdWxlID0gewogICBQeU1vZHVsZURlZl9IRUFEX0lOSVQsICJfYXN0IgpAQCAtNjc1MCw4ICs2OTExLDYgQEAKICAgICAgICAgICAgIE5VTEw7CiAgICAgICAgIGlmIChQeU1vZHVsZV9BZGRJbnRDb25zdGFudChtLCAiUHlDRl9PTkxZX0FTVCIsIFB5Q0ZfT05MWV9BU1QpIDwgMCkKICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgaWYgKFB5TW9kdWxlX0FkZFN0cmluZ0NvbnN0YW50KG0sICJfX3ZlcnNpb25fXyIsICI4MjE2MyIpIDwgMCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJtb2QiLCAoUHlPYmplY3QqKW1vZF90eXBlKSA8IDApIHJldHVybgogICAgICAgICAgICAgTlVMTDsKICAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJNb2R1bGUiLCAoUHlPYmplY3QqKU1vZHVsZV90eXBlKSA8IDApCkBAIC02Nzg1LDEwICs2OTQ0LDggQEAKICAgICAgICAgICAgIE5VTEw7CiAgICAgICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiUmFpc2UiLCAoUHlPYmplY3QqKVJhaXNlX3R5cGUpIDwgMCkgcmV0dXJuCiAgICAgICAgICAgICBOVUxMOwotICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIlRyeUV4Y2VwdCIsIChQeU9iamVjdCopVHJ5RXhjZXB0X3R5cGUpIDwKLSAgICAgICAgICAgIDApIHJldHVybiBOVUxMOwotICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIlRyeUZpbmFsbHkiLCAoUHlPYmplY3QqKVRyeUZpbmFsbHlfdHlwZSkgPAotICAgICAgICAgICAgMCkgcmV0dXJuIE5VTEw7CisgICAgICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiVHJ5IiwgKFB5T2JqZWN0KilUcnlfdHlwZSkgPCAwKSByZXR1cm4KKyAgICAgICAgICAgIE5VTEw7CiAgICAgICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiQXNzZXJ0IiwgKFB5T2JqZWN0KilBc3NlcnRfdHlwZSkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiSW1wb3J0IiwgKFB5T2JqZWN0KilJbXBvcnRfdHlwZSkgPCAwKQpAQCAtNjgzMyw2ICs2OTkwLDggQEAKICAgICAgICAgICAgIChQeU9iamVjdCopR2VuZXJhdG9yRXhwX3R5cGUpIDwgMCkgcmV0dXJuIE5VTEw7CiAgICAgICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiWWllbGQiLCAoUHlPYmplY3QqKVlpZWxkX3R5cGUpIDwgMCkgcmV0dXJuCiAgICAgICAgICAgICBOVUxMOworICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIllpZWxkRnJvbSIsIChQeU9iamVjdCopWWllbGRGcm9tX3R5cGUpIDwKKyAgICAgICAgICAgIDApIHJldHVybiBOVUxMOwogICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgIkNvbXBhcmUiLCAoUHlPYmplY3QqKUNvbXBhcmVfdHlwZSkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiQ2FsbCIsIChQeU9iamVjdCopQ2FsbF90eXBlKSA8IDApIHJldHVybgpAQCAtNjk1MSw2ICs3MTEwLDggQEAKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgImFsaWFzIiwgKFB5T2JqZWN0KilhbGlhc190eXBlKSA8IDApIHJldHVybgogICAgICAgICAgICAgTlVMTDsKKyAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJ3aXRoaXRlbSIsIChQeU9iamVjdCopd2l0aGl0ZW1fdHlwZSkgPCAwKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIHJldHVybiBtOwogfQogCmRpZmYgLS1naXQgYS9QeXRob24vX3dhcm5pbmdzLmMgYi9QeXRob24vX3dhcm5pbmdzLmMKaW5kZXggYzEyZGI0NC4uZjMzZTQ3NyAxMDA2NDQKLS0tIGEvUHl0aG9uL193YXJuaW5ncy5jCisrKyBiL1B5dGhvbi9fd2FybmluZ3MuYwpAQCAtMTgsMTEgKzE4LDEyIEBACiBjaGVja19tYXRjaGVkKFB5T2JqZWN0ICpvYmosIFB5T2JqZWN0ICphcmcpCiB7CiAgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICBfUHlfSURFTlRJRklFUihtYXRjaCk7CiAgICAgaW50IHJjOwogCiAgICAgaWYgKG9iaiA9PSBQeV9Ob25lKQogICAgICAgICByZXR1cm4gMTsKLSAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKG9iaiwgIm1hdGNoIiwgIk8iLCBhcmcpOworICAgIHJlc3VsdCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQob2JqLCAmUHlJZF9tYXRjaCwgIk8iLCBhcmcpOwogICAgIGlmIChyZXN1bHQgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIC0xOwogCkBAIC0yMDIsMTMgKzIwMywxMyBAQAogCiAgICAgbW9kX3N0ciA9IF9QeVVuaWNvZGVfQXNTdHJpbmcoZmlsZW5hbWUpOwogICAgIGlmIChtb2Rfc3RyID09IE5VTEwpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBsZW4gPSBQeVVuaWNvZGVfR2V0U2l6ZShmaWxlbmFtZSk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIGxlbiA9IFB5VW5pY29kZV9HZXRMZW5ndGgoZmlsZW5hbWUpOwogICAgIGlmIChsZW4gPCAwKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAobGVuID49IDMgJiYKICAgICAgICAgc3RybmNtcChtb2Rfc3RyICsgKGxlbiAtIDMpLCAiLnB5IiwgMykgPT0gMCkgewotICAgICAgICBtb2R1bGUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNpemUobW9kX3N0ciwgbGVuLTMpOworICAgICAgICBtb2R1bGUgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKGZpbGVuYW1lLCAwLCBsZW4tMyk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICBtb2R1bGUgPSBmaWxlbmFtZTsKQEAgLTI0NiwxMCArMjQ3LDExIEBACiAgICAgUHlPYmplY3QgKmZfc3RkZXJyOwogICAgIFB5T2JqZWN0ICpuYW1lOwogICAgIGNoYXIgbGluZW5vX3N0clsxMjhdOworICAgIF9QeV9JREVOVElGSUVSKF9fbmFtZV9fKTsKIAogICAgIFB5T1Nfc25wcmludGYobGluZW5vX3N0ciwgc2l6ZW9mKGxpbmVub19zdHIpLCAiOiVkOiAiLCBsaW5lbm8pOwogCi0gICAgbmFtZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoY2F0ZWdvcnksICJfX25hbWVfXyIpOworICAgIG5hbWUgPSBfUHlPYmplY3RfR2V0QXR0cklkKGNhdGVnb3J5LCAmUHlJZF9fX25hbWVfXyk7CiAgICAgaWYgKG5hbWUgPT0gTlVMTCkgIC8qIFhYWCBDYW4gYW4gb2JqZWN0IGxhY2sgYSAnX19uYW1lX18nIGF0dHJpYnV0ZT8gKi8KICAgICAgICAgcmV0dXJuOwogCkBAIC00MDksMTAgKzQxMSwxMCBAQAogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIFB5T2JqZWN0ICpyZXM7CiAKLSAgICAgICAgICAgIGlmICghUHlNZXRob2RfQ2hlY2soc2hvd19meG4pICYmICFQeUZ1bmN0aW9uX0NoZWNrKHNob3dfZnhuKSkgeworICAgICAgICAgICAgaWYgKCFQeUNhbGxhYmxlX0NoZWNrKHNob3dfZnhuKSkgewogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3YXJuaW5ncy5zaG93d2FybmluZygpIG11c3QgYmUgc2V0IHRvIGEgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnVuY3Rpb24gb3IgbWV0aG9kIik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYWxsYWJsZSIpOwogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihzaG93X2Z4bik7CiAgICAgICAgICAgICAgICAgZ290byBjbGVhbnVwOwogICAgICAgICAgICAgfQpAQCAtNDk3LDE4ICs0OTksMjggQEAKICAgICAvKiBTZXR1cCBmaWxlbmFtZS4gKi8KICAgICAqZmlsZW5hbWUgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhnbG9iYWxzLCAiX19maWxlX18iKTsKICAgICBpZiAoKmZpbGVuYW1lICE9IE5VTEwgJiYgUHlVbmljb2RlX0NoZWNrKCpmaWxlbmFtZSkpIHsKLSAgICAgICAgUHlfc3NpemVfdCBsZW4gPSBQeVVuaWNvZGVfR2V0U2l6ZSgqZmlsZW5hbWUpOwotICAgICAgICBQeV9VTklDT0RFICp1bmljb2RlID0gUHlVbmljb2RlX0FTX1VOSUNPREUoKmZpbGVuYW1lKTsKKyAgICAgICAgUHlfc3NpemVfdCBsZW47CisgICAgICAgIGludCBraW5kOworICAgICAgICB2b2lkICpkYXRhOwogCisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoKmZpbGVuYW1lKSkKKyAgICAgICAgICAgIGdvdG8gaGFuZGxlX2Vycm9yOworCisgICAgICAgIGxlbiA9IFB5VW5pY29kZV9HZXRMZW5ndGgoKmZpbGVuYW1lKTsKKyAgICAgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKCpmaWxlbmFtZSk7CisgICAgICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQSgqZmlsZW5hbWUpOworCisjZGVmaW5lIGFzY2lpX2xvd2VyKGMpICgoYyA8PSAxMjcpID8gUHlfVE9MT1dFUihjKSA6IDApCiAgICAgICAgIC8qIGlmIGZpbGVuYW1lLmxvd2VyKCkuZW5kc3dpdGgoKCIucHljIiwgIi5weW8iKSk6ICovCiAgICAgICAgIGlmIChsZW4gPj0gNCAmJgotICAgICAgICAgICAgdW5pY29kZVtsZW4tNF0gPT0gJy4nICYmCi0gICAgICAgICAgICBQeV9VTklDT0RFX1RPTE9XRVIodW5pY29kZVtsZW4tM10pID09ICdwJyAmJgotICAgICAgICAgICAgUHlfVU5JQ09ERV9UT0xPV0VSKHVuaWNvZGVbbGVuLTJdKSA9PSAneScgJiYKLSAgICAgICAgICAgIChQeV9VTklDT0RFX1RPTE9XRVIodW5pY29kZVtsZW4tMV0pID09ICdjJyB8fAotICAgICAgICAgICAgICAgIFB5X1VOSUNPREVfVE9MT1dFUih1bmljb2RlW2xlbi0xXSkgPT0gJ28nKSkKKyAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGxlbi00KSA9PSAnLicgJiYKKyAgICAgICAgICAgIGFzY2lpX2xvd2VyKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGxlbi0zKSkgPT0gJ3AnICYmCisgICAgICAgICAgICBhc2NpaV9sb3dlcihQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBsZW4tMikpID09ICd5JyAmJgorICAgICAgICAgICAgKGFzY2lpX2xvd2VyKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGxlbi0xKSkgPT0gJ2MnIHx8CisgICAgICAgICAgICAgICAgYXNjaWlfbG93ZXIoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgbGVuLTEpKSA9PSAnbycpKQogICAgICAgICB7Ci0gICAgICAgICAgICAqZmlsZW5hbWUgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUodW5pY29kZSwgbGVuLTEpOworICAgICAgICAgICAgKmZpbGVuYW1lID0gUHlVbmljb2RlX1N1YnN0cmluZygqZmlsZW5hbWUsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfTEVOR1RIKCpmaWxlbmFtZSktMSk7CiAgICAgICAgICAgICBpZiAoKmZpbGVuYW1lID09IE5VTEwpCiAgICAgICAgICAgICAgICAgZ290byBoYW5kbGVfZXJyb3I7CiAgICAgICAgIH0KQEAgLTY0Myw4ICs2NTUsOSBAQAogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGlmIChtb2R1bGVfZ2xvYmFscykgewotICAgICAgICBzdGF0aWMgUHlPYmplY3QgKmdldF9zb3VyY2VfbmFtZSA9IE5VTEw7Ci0gICAgICAgIHN0YXRpYyBQeU9iamVjdCAqc3BsaXRsaW5lc19uYW1lID0gTlVMTDsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoZ2V0X3NvdXJjZSk7CisgICAgICAgIF9QeV9JREVOVElGSUVSKHNwbGl0bGluZXMpOworICAgICAgICBQeU9iamVjdCAqdG1wOwogICAgICAgICBQeU9iamVjdCAqbG9hZGVyOwogICAgICAgICBQeU9iamVjdCAqbW9kdWxlX25hbWU7CiAgICAgICAgIFB5T2JqZWN0ICpzb3VyY2U7CkBAIC02NTIsMTYgKzY2NSwxMCBAQAogICAgICAgICBQeU9iamVjdCAqc291cmNlX2xpbmU7CiAgICAgICAgIFB5T2JqZWN0ICpyZXR1cm5lZDsKIAotICAgICAgICBpZiAoZ2V0X3NvdXJjZV9uYW1lID09IE5VTEwpIHsKLSAgICAgICAgICAgIGdldF9zb3VyY2VfbmFtZSA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCJnZXRfc291cmNlIik7Ci0gICAgICAgICAgICBpZiAoIWdldF9zb3VyY2VfbmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBpZiAoc3BsaXRsaW5lc19uYW1lID09IE5VTEwpIHsKLSAgICAgICAgICAgIHNwbGl0bGluZXNfbmFtZSA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCJzcGxpdGxpbmVzIik7Ci0gICAgICAgICAgICBpZiAoIXNwbGl0bGluZXNfbmFtZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQorICAgICAgICBpZiAoKHRtcCA9IF9QeVVuaWNvZGVfRnJvbUlkKCZQeUlkX2dldF9zb3VyY2UpKSA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGlmICgodG1wID0gX1B5VW5pY29kZV9Gcm9tSWQoJlB5SWRfc3BsaXRsaW5lcykpID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgICAgICAvKiBDaGVjay9nZXQgdGhlIHJlcXVpc2l0ZSBwaWVjZXMgbmVlZGVkIGZvciB0aGUgbG9hZGVyLiAqLwogICAgICAgICBsb2FkZXIgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVfZ2xvYmFscywgIl9fbG9hZGVyX18iKTsKQEAgLTY3MSwxMSArNjc4LDExIEBACiAgICAgICAgICAgICBnb3RvIHN0YW5kYXJkX2NhbGw7CiAKICAgICAgICAgLyogTWFrZSBzdXJlIHRoZSBsb2FkZXIgaW1wbGVtZW50cyB0aGUgb3B0aW9uYWwgZ2V0X3NvdXJjZSgpIG1ldGhvZC4gKi8KLSAgICAgICAgaWYgKCFQeU9iamVjdF9IYXNBdHRyU3RyaW5nKGxvYWRlciwgImdldF9zb3VyY2UiKSkKKyAgICAgICAgaWYgKCFfUHlPYmplY3RfSGFzQXR0cklkKGxvYWRlciwgJlB5SWRfZ2V0X3NvdXJjZSkpCiAgICAgICAgICAgICAgICAgZ290byBzdGFuZGFyZF9jYWxsOwogICAgICAgICAvKiBDYWxsIGdldF9zb3VyY2UoKSB0byBnZXQgdGhlIHNvdXJjZSBjb2RlLiAqLwotICAgICAgICBzb3VyY2UgPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyhsb2FkZXIsIGdldF9zb3VyY2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZV9uYW1lLCBOVUxMKTsKKyAgICAgICAgc291cmNlID0gUHlPYmplY3RfQ2FsbE1ldGhvZE9iakFyZ3MobG9hZGVyLCBQeUlkX2dldF9zb3VyY2Uub2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVfbmFtZSwgTlVMTCk7CiAgICAgICAgIGlmICghc291cmNlKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGVsc2UgaWYgKHNvdXJjZSA9PSBQeV9Ob25lKSB7CkBAIC02ODQsOCArNjkxLDkgQEAKICAgICAgICAgfQogCiAgICAgICAgIC8qIFNwbGl0IHRoZSBzb3VyY2UgaW50byBsaW5lcy4gKi8KLSAgICAgICAgc291cmNlX2xpc3QgPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyhzb3VyY2UsIHNwbGl0bGluZXNfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgc291cmNlX2xpc3QgPSBQeU9iamVjdF9DYWxsTWV0aG9kT2JqQXJncyhzb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlJZF9zcGxpdGxpbmVzLm9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKICAgICAgICAgUHlfREVDUkVGKHNvdXJjZSk7CiAgICAgICAgIGlmICghc291cmNlX2xpc3QpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTk1MCwyMyArOTU4LDMwIEBACiAgICAgaWYgKG0gPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBfZmlsdGVycyA9IGluaXRfZmlsdGVycygpOwotICAgIGlmIChfZmlsdGVycyA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoX2ZpbHRlcnMgPT0gTlVMTCkgeworICAgICAgICBfZmlsdGVycyA9IGluaXRfZmlsdGVycygpOworICAgICAgICBpZiAoX2ZpbHRlcnMgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KICAgICBQeV9JTkNSRUYoX2ZpbHRlcnMpOwogICAgIGlmIChQeU1vZHVsZV9BZGRPYmplY3QobSwgImZpbHRlcnMiLCBfZmlsdGVycykgPCAwKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIF9vbmNlX3JlZ2lzdHJ5ID0gUHlEaWN0X05ldygpOwotICAgIGlmIChfb25jZV9yZWdpc3RyeSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoX29uY2VfcmVnaXN0cnkgPT0gTlVMTCkgeworICAgICAgICBfb25jZV9yZWdpc3RyeSA9IFB5RGljdF9OZXcoKTsKKyAgICAgICAgaWYgKF9vbmNlX3JlZ2lzdHJ5ID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAgICAgUHlfSU5DUkVGKF9vbmNlX3JlZ2lzdHJ5KTsKICAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJfb25jZXJlZ2lzdHJ5IiwgX29uY2VfcmVnaXN0cnkpIDwgMCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBfZGVmYXVsdF9hY3Rpb24gPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiZGVmYXVsdCIpOwotICAgIGlmIChfZGVmYXVsdF9hY3Rpb24gPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKF9kZWZhdWx0X2FjdGlvbiA9PSBOVUxMKSB7CisgICAgICAgIF9kZWZhdWx0X2FjdGlvbiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKCJkZWZhdWx0Iik7CisgICAgICAgIGlmIChfZGVmYXVsdF9hY3Rpb24gPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBQeV9JTkNSRUYoX2RlZmF1bHRfYWN0aW9uKTsKICAgICBpZiAoUHlNb2R1bGVfQWRkT2JqZWN0KG0sICJfZGVmYXVsdGFjdGlvbiIsIF9kZWZhdWx0X2FjdGlvbikgPCAwKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICByZXR1cm4gbTsKZGlmZiAtLWdpdCBhL1B5dGhvbi9hc2RsLmMgYi9QeXRob24vYXNkbC5jCmluZGV4IGMzMGQ3ZDIwLi5lN2UzMjgwIDEwMDY0NAotLS0gYS9QeXRob24vYXNkbC5jCisrKyBiL1B5dGhvbi9hc2RsLmMKQEAgLTIsNyArMiw3IEBACiAjaW5jbHVkZSAiYXNkbC5oIgogCiBhc2RsX3NlcSAqCi1hc2RsX3NlcV9uZXcoaW50IHNpemUsIFB5QXJlbmEgKmFyZW5hKQorYXNkbF9zZXFfbmV3KFB5X3NzaXplX3Qgc2l6ZSwgUHlBcmVuYSAqYXJlbmEpCiB7CiAgICAgYXNkbF9zZXEgKnNlcSA9IE5VTEw7CiAgICAgc2l6ZV90IG4gPSAoc2l6ZSA/IChzaXplb2Yodm9pZCAqKSAqIChzaXplIC0gMSkpIDogMCk7CkBAIC0zMyw3ICszMyw3IEBACiB9CiAKIGFzZGxfaW50X3NlcSAqCi1hc2RsX2ludF9zZXFfbmV3KGludCBzaXplLCBQeUFyZW5hICphcmVuYSkKK2FzZGxfaW50X3NlcV9uZXcoUHlfc3NpemVfdCBzaXplLCBQeUFyZW5hICphcmVuYSkKIHsKICAgICBhc2RsX2ludF9zZXEgKnNlcSA9IE5VTEw7CiAgICAgc2l6ZV90IG4gPSAoc2l6ZSA/IChzaXplb2Yodm9pZCAqKSAqIChzaXplIC0gMSkpIDogMCk7CmRpZmYgLS1naXQgYS9QeXRob24vYXN0LmMgYi9QeXRob24vYXN0LmMKaW5kZXggNmZhZjViMi4uZWI4YWVkMiAxMDA2NDQKLS0tIGEvUHl0aG9uL2FzdC5jCisrKyBiL1B5dGhvbi9hc3QuYwpAQCAtMSwyNCArMSw1MDcgQEAKIC8qCiAgKiBUaGlzIGZpbGUgaW5jbHVkZXMgZnVuY3Rpb25zIHRvIHRyYW5zZm9ybSBhIGNvbmNyZXRlIHN5bnRheCB0cmVlIChDU1QpIHRvCi0gKiBhbiBhYnN0cmFjdCBzeW50YXggdHJlZSAoQVNUKS4gIFRoZSBtYWluIGZ1bmN0aW9uIGlzIFB5QVNUX0Zyb21Ob2RlKCkuCisgKiBhbiBhYnN0cmFjdCBzeW50YXggdHJlZSAoQVNUKS4gVGhlIG1haW4gZnVuY3Rpb24gaXMgUHlBU1RfRnJvbU5vZGUoKS4KICAqCiAgKi8KICNpbmNsdWRlICJQeXRob24uaCIKICNpbmNsdWRlICJQeXRob24tYXN0LmgiCi0jaW5jbHVkZSAiZ3JhbW1hci5oIgogI2luY2x1ZGUgIm5vZGUuaCIKICNpbmNsdWRlICJhc3QuaCIKICNpbmNsdWRlICJ0b2tlbi5oIgotI2luY2x1ZGUgInBhcnNldG9rLmgiCi0jaW5jbHVkZSAiZ3JhbWluaXQuaCIKIAogI2luY2x1ZGUgPGFzc2VydC5oPgogCitzdGF0aWMgaW50IHZhbGlkYXRlX3N0bXRzKGFzZGxfc2VxICopOworc3RhdGljIGludCB2YWxpZGF0ZV9leHBycyhhc2RsX3NlcSAqLCBleHByX2NvbnRleHRfdHksIGludCk7CitzdGF0aWMgaW50IHZhbGlkYXRlX25vbmVtcHR5X3NlcShhc2RsX3NlcSAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CitzdGF0aWMgaW50IHZhbGlkYXRlX3N0bXQoc3RtdF90eSk7CitzdGF0aWMgaW50IHZhbGlkYXRlX2V4cHIoZXhwcl90eSwgZXhwcl9jb250ZXh0X3R5KTsKKworc3RhdGljIGludAordmFsaWRhdGVfY29tcHJlaGVuc2lvbihhc2RsX3NlcSAqZ2VucykKK3sKKyAgICBpbnQgaTsKKyAgICBpZiAoIWFzZGxfc2VxX0xFTihnZW5zKSkgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgImNvbXByZWhlbnNpb24gd2l0aCBubyBnZW5lcmF0b3JzIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBmb3IgKGkgPSAwOyBpIDwgYXNkbF9zZXFfTEVOKGdlbnMpOyBpKyspIHsKKyAgICAgICAgY29tcHJlaGVuc2lvbl90eSBjb21wID0gYXNkbF9zZXFfR0VUKGdlbnMsIGkpOworICAgICAgICBpZiAoIXZhbGlkYXRlX2V4cHIoY29tcC0+dGFyZ2V0LCBTdG9yZSkgfHwKKyAgICAgICAgICAgICF2YWxpZGF0ZV9leHByKGNvbXAtPml0ZXIsIExvYWQpIHx8CisgICAgICAgICAgICAhdmFsaWRhdGVfZXhwcnMoY29tcC0+aWZzLCBMb2FkLCAwKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGludAordmFsaWRhdGVfc2xpY2Uoc2xpY2VfdHkgc2xpY2UpCit7CisgICAgc3dpdGNoIChzbGljZS0+a2luZCkgeworICAgIGNhc2UgU2xpY2Vfa2luZDoKKyAgICAgICAgcmV0dXJuICghc2xpY2UtPnYuU2xpY2UubG93ZXIgfHwgdmFsaWRhdGVfZXhwcihzbGljZS0+di5TbGljZS5sb3dlciwgTG9hZCkpICYmCisgICAgICAgICAgICAoIXNsaWNlLT52LlNsaWNlLnVwcGVyIHx8IHZhbGlkYXRlX2V4cHIoc2xpY2UtPnYuU2xpY2UudXBwZXIsIExvYWQpKSAmJgorICAgICAgICAgICAgKCFzbGljZS0+di5TbGljZS5zdGVwIHx8IHZhbGlkYXRlX2V4cHIoc2xpY2UtPnYuU2xpY2Uuc3RlcCwgTG9hZCkpOworICAgIGNhc2UgRXh0U2xpY2Vfa2luZDogeworICAgICAgICBpbnQgaTsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZV9ub25lbXB0eV9zZXEoc2xpY2UtPnYuRXh0U2xpY2UuZGltcywgImRpbXMiLCAiRXh0U2xpY2UiKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgYXNkbF9zZXFfTEVOKHNsaWNlLT52LkV4dFNsaWNlLmRpbXMpOyBpKyspCisgICAgICAgICAgICBpZiAoIXZhbGlkYXRlX3NsaWNlKGFzZGxfc2VxX0dFVChzbGljZS0+di5FeHRTbGljZS5kaW1zLCBpKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBjYXNlIEluZGV4X2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9leHByKHNsaWNlLT52LkluZGV4LnZhbHVlLCBMb2FkKTsKKyAgICBkZWZhdWx0OgorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsICJ1bmtub3duIHNsaWNlIG5vZGUiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCitzdGF0aWMgaW50Cit2YWxpZGF0ZV9rZXl3b3Jkcyhhc2RsX3NlcSAqa2V5d29yZHMpCit7CisgICAgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGFzZGxfc2VxX0xFTihrZXl3b3Jkcyk7IGkrKykKKyAgICAgICAgaWYgKCF2YWxpZGF0ZV9leHByKCgoa2V5d29yZF90eSlhc2RsX3NlcV9HRVQoa2V5d29yZHMsIGkpKS0+dmFsdWUsIExvYWQpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK3ZhbGlkYXRlX2FyZ3MoYXNkbF9zZXEgKmFyZ3MpCit7CisgICAgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGFzZGxfc2VxX0xFTihhcmdzKTsgaSsrKSB7CisgICAgICAgIGFyZ190eSBhcmcgPSBhc2RsX3NlcV9HRVQoYXJncywgaSk7CisgICAgICAgIGlmIChhcmctPmFubm90YXRpb24gJiYgIXZhbGlkYXRlX2V4cHIoYXJnLT5hbm5vdGF0aW9uLCBMb2FkKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKgorZXhwcl9jb250ZXh0X25hbWUoZXhwcl9jb250ZXh0X3R5IGN0eCkKK3sKKyAgICBzd2l0Y2ggKGN0eCkgeworICAgIGNhc2UgTG9hZDoKKyAgICAgICAgcmV0dXJuICJMb2FkIjsKKyAgICBjYXNlIFN0b3JlOgorICAgICAgICByZXR1cm4gIlN0b3JlIjsKKyAgICBjYXNlIERlbDoKKyAgICAgICAgcmV0dXJuICJEZWwiOworICAgIGNhc2UgQXVnTG9hZDoKKyAgICAgICAgcmV0dXJuICJBdWdMb2FkIjsKKyAgICBjYXNlIEF1Z1N0b3JlOgorICAgICAgICByZXR1cm4gIkF1Z1N0b3JlIjsKKyAgICBjYXNlIFBhcmFtOgorICAgICAgICByZXR1cm4gIlBhcmFtIjsKKyAgICBkZWZhdWx0OgorICAgICAgICBhc3NlcnQoMCk7CisgICAgICAgIHJldHVybiAiKHVua25vd24pIjsKKyAgICB9Cit9CisKK3N0YXRpYyBpbnQKK3ZhbGlkYXRlX2FyZ3VtZW50cyhhcmd1bWVudHNfdHkgYXJncykKK3sKKyAgICBpZiAoIXZhbGlkYXRlX2FyZ3MoYXJncy0+YXJncykpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChhcmdzLT52YXJhcmdhbm5vdGF0aW9uKSB7CisgICAgICAgIGlmICghYXJncy0+dmFyYXJnKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgInZhcmFyZ2Fubm90YXRpb24gYnV0IG5vIHZhcmFyZyBvbiBhcmd1bWVudHMiKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGlmICghdmFsaWRhdGVfZXhwcihhcmdzLT52YXJhcmdhbm5vdGF0aW9uLCBMb2FkKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBpZiAoIXZhbGlkYXRlX2FyZ3MoYXJncy0+a3dvbmx5YXJncykpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChhcmdzLT5rd2FyZ2Fubm90YXRpb24pIHsKKyAgICAgICAgaWYgKCFhcmdzLT5rd2FyZykgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJrd2FyZ2Fubm90YXRpb24gYnV0IG5vIGt3YXJnIG9uIGFyZ3VtZW50cyIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF2YWxpZGF0ZV9leHByKGFyZ3MtPmt3YXJnYW5ub3RhdGlvbiwgTG9hZCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKGFzZGxfc2VxX0xFTihhcmdzLT5kZWZhdWx0cykgPiBhc2RsX3NlcV9MRU4oYXJncy0+YXJncykpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJtb3JlIHBvc2l0aW9uYWwgZGVmYXVsdHMgdGhhbiBhcmdzIG9uIGFyZ3VtZW50cyIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgaWYgKGFzZGxfc2VxX0xFTihhcmdzLT5rd19kZWZhdWx0cykgIT0gYXNkbF9zZXFfTEVOKGFyZ3MtPmt3b25seWFyZ3MpKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAibGVuZ3RoIG9mIGt3b25seWFyZ3MgaXMgbm90IHRoZSBzYW1lIGFzICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJrd19kZWZhdWx0cyBvbiBhcmd1bWVudHMiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHJldHVybiB2YWxpZGF0ZV9leHBycyhhcmdzLT5kZWZhdWx0cywgTG9hZCwgMCkgJiYgdmFsaWRhdGVfZXhwcnMoYXJncy0+a3dfZGVmYXVsdHMsIExvYWQsIDEpOworfQorCitzdGF0aWMgaW50Cit2YWxpZGF0ZV9leHByKGV4cHJfdHkgZXhwLCBleHByX2NvbnRleHRfdHkgY3R4KQoreworICAgIGludCBjaGVja19jdHggPSAxOworICAgIGV4cHJfY29udGV4dF90eSBhY3R1YWxfY3R4OworCisgICAgLyogRmlyc3QgY2hlY2sgZXhwcmVzc2lvbiBjb250ZXh0LiAqLworICAgIHN3aXRjaCAoZXhwLT5raW5kKSB7CisgICAgY2FzZSBBdHRyaWJ1dGVfa2luZDoKKyAgICAgICAgYWN0dWFsX2N0eCA9IGV4cC0+di5BdHRyaWJ1dGUuY3R4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFN1YnNjcmlwdF9raW5kOgorICAgICAgICBhY3R1YWxfY3R4ID0gZXhwLT52LlN1YnNjcmlwdC5jdHg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RhcnJlZF9raW5kOgorICAgICAgICBhY3R1YWxfY3R4ID0gZXhwLT52LlN0YXJyZWQuY3R4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5hbWVfa2luZDoKKyAgICAgICAgYWN0dWFsX2N0eCA9IGV4cC0+di5OYW1lLmN0eDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaXN0X2tpbmQ6CisgICAgICAgIGFjdHVhbF9jdHggPSBleHAtPnYuTGlzdC5jdHg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHVwbGVfa2luZDoKKyAgICAgICAgYWN0dWFsX2N0eCA9IGV4cC0+di5UdXBsZS5jdHg7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGlmIChjdHggIT0gTG9hZCkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsICJleHByZXNzaW9uIHdoaWNoIGNhbid0IGJlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiYXNzaWduZWQgdG8gaW4gJXMgY29udGV4dCIsIGV4cHJfY29udGV4dF9uYW1lKGN0eCkpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgY2hlY2tfY3R4ID0gMDsKKyAgICB9CisgICAgaWYgKGNoZWNrX2N0eCAmJiBhY3R1YWxfY3R4ICE9IGN0eCkgeworICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwgImV4cHJlc3Npb24gbXVzdCBoYXZlICVzIGNvbnRleHQgYnV0IGhhcyAlcyBpbnN0ZWFkIiwKKyAgICAgICAgICAgICAgICAgICAgIGV4cHJfY29udGV4dF9uYW1lKGN0eCksIGV4cHJfY29udGV4dF9uYW1lKGFjdHVhbF9jdHgpKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgLyogTm93IHZhbGlkYXRlIGV4cHJlc3Npb24uICovCisgICAgc3dpdGNoIChleHAtPmtpbmQpIHsKKyAgICBjYXNlIEJvb2xPcF9raW5kOgorICAgICAgICBpZiAoYXNkbF9zZXFfTEVOKGV4cC0+di5Cb29sT3AudmFsdWVzKSA8IDIpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiQm9vbE9wIHdpdGggbGVzcyB0aGFuIDIgdmFsdWVzIik7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdmFsaWRhdGVfZXhwcnMoZXhwLT52LkJvb2xPcC52YWx1ZXMsIExvYWQsIDApOworICAgIGNhc2UgQmluT3Bfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHIoZXhwLT52LkJpbk9wLmxlZnQsIExvYWQpICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9leHByKGV4cC0+di5CaW5PcC5yaWdodCwgTG9hZCk7CisgICAgY2FzZSBVbmFyeU9wX2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9leHByKGV4cC0+di5VbmFyeU9wLm9wZXJhbmQsIExvYWQpOworICAgIGNhc2UgTGFtYmRhX2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9hcmd1bWVudHMoZXhwLT52LkxhbWJkYS5hcmdzKSAmJgorICAgICAgICAgICAgdmFsaWRhdGVfZXhwcihleHAtPnYuTGFtYmRhLmJvZHksIExvYWQpOworICAgIGNhc2UgSWZFeHBfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHIoZXhwLT52LklmRXhwLnRlc3QsIExvYWQpICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9leHByKGV4cC0+di5JZkV4cC5ib2R5LCBMb2FkKSAmJgorICAgICAgICAgICAgdmFsaWRhdGVfZXhwcihleHAtPnYuSWZFeHAub3JlbHNlLCBMb2FkKTsKKyAgICBjYXNlIERpY3Rfa2luZDoKKyAgICAgICAgaWYgKGFzZGxfc2VxX0xFTihleHAtPnYuRGljdC5rZXlzKSAhPSBhc2RsX3NlcV9MRU4oZXhwLT52LkRpY3QudmFsdWVzKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkRpY3QgZG9lc24ndCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBrZXlzIGFzIHZhbHVlcyIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHJzKGV4cC0+di5EaWN0LmtleXMsIExvYWQsIDApICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9leHBycyhleHAtPnYuRGljdC52YWx1ZXMsIExvYWQsIDApOworICAgIGNhc2UgU2V0X2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9leHBycyhleHAtPnYuU2V0LmVsdHMsIExvYWQsIDApOworI2RlZmluZSBDT01QKE5BTUUpIFwKKyAgICAgICAgY2FzZSBOQU1FICMjIF9raW5kOiBcCisgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGVfY29tcHJlaGVuc2lvbihleHAtPnYuTkFNRS5nZW5lcmF0b3JzKSAmJiBcCisgICAgICAgICAgICAgICAgdmFsaWRhdGVfZXhwcihleHAtPnYuTkFNRS5lbHQsIExvYWQpOworICAgIENPTVAoTGlzdENvbXApCisgICAgQ09NUChTZXRDb21wKQorICAgIENPTVAoR2VuZXJhdG9yRXhwKQorI3VuZGVmIENPTVAKKyAgICBjYXNlIERpY3RDb21wX2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9jb21wcmVoZW5zaW9uKGV4cC0+di5EaWN0Q29tcC5nZW5lcmF0b3JzKSAmJgorICAgICAgICAgICAgdmFsaWRhdGVfZXhwcihleHAtPnYuRGljdENvbXAua2V5LCBMb2FkKSAmJgorICAgICAgICAgICAgdmFsaWRhdGVfZXhwcihleHAtPnYuRGljdENvbXAudmFsdWUsIExvYWQpOworICAgIGNhc2UgWWllbGRfa2luZDoKKyAgICAgICAgcmV0dXJuICFleHAtPnYuWWllbGQudmFsdWUgfHwgdmFsaWRhdGVfZXhwcihleHAtPnYuWWllbGQudmFsdWUsIExvYWQpOworICAgIGNhc2UgWWllbGRGcm9tX2tpbmQ6CisgICAgICAgIHJldHVybiAhZXhwLT52LllpZWxkRnJvbS52YWx1ZSB8fAorICAgICAgICAgICAgdmFsaWRhdGVfZXhwcihleHAtPnYuWWllbGRGcm9tLnZhbHVlLCBMb2FkKTsKKyAgICBjYXNlIENvbXBhcmVfa2luZDoKKyAgICAgICAgaWYgKCFhc2RsX3NlcV9MRU4oZXhwLT52LkNvbXBhcmUuY29tcGFyYXRvcnMpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIkNvbXBhcmUgd2l0aCBubyBjb21wYXJhdG9ycyIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFzZGxfc2VxX0xFTihleHAtPnYuQ29tcGFyZS5jb21wYXJhdG9ycykgIT0KKyAgICAgICAgICAgIGFzZGxfc2VxX0xFTihleHAtPnYuQ29tcGFyZS5vcHMpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIkNvbXBhcmUgaGFzIGEgZGlmZmVyZW50IG51bWJlciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9mIGNvbXBhcmF0b3JzIGFuZCBvcGVyYW5kcyIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHJzKGV4cC0+di5Db21wYXJlLmNvbXBhcmF0b3JzLCBMb2FkLCAwKSAmJgorICAgICAgICAgICAgdmFsaWRhdGVfZXhwcihleHAtPnYuQ29tcGFyZS5sZWZ0LCBMb2FkKTsKKyAgICBjYXNlIENhbGxfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHIoZXhwLT52LkNhbGwuZnVuYywgTG9hZCkgJiYKKyAgICAgICAgICAgIHZhbGlkYXRlX2V4cHJzKGV4cC0+di5DYWxsLmFyZ3MsIExvYWQsIDApICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9rZXl3b3JkcyhleHAtPnYuQ2FsbC5rZXl3b3JkcykgJiYKKyAgICAgICAgICAgICghZXhwLT52LkNhbGwuc3RhcmFyZ3MgfHwgdmFsaWRhdGVfZXhwcihleHAtPnYuQ2FsbC5zdGFyYXJncywgTG9hZCkpICYmCisgICAgICAgICAgICAoIWV4cC0+di5DYWxsLmt3YXJncyB8fCB2YWxpZGF0ZV9leHByKGV4cC0+di5DYWxsLmt3YXJncywgTG9hZCkpOworICAgIGNhc2UgTnVtX2tpbmQ6IHsKKyAgICAgICAgUHlPYmplY3QgKm4gPSBleHAtPnYuTnVtLm47CisgICAgICAgIGlmICghUHlMb25nX0NoZWNrRXhhY3QobikgJiYgIVB5RmxvYXRfQ2hlY2tFeGFjdChuKSAmJgorICAgICAgICAgICAgIVB5Q29tcGxleF9DaGVja0V4YWN0KG4pKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAibm9uLW51bWVyaWMgdHlwZSBpbiBOdW0iKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIH0KKyAgICBjYXNlIFN0cl9raW5kOiB7CisgICAgICAgIFB5T2JqZWN0ICpzID0gZXhwLT52LlN0ci5zOworICAgICAgICBpZiAoIVB5VW5pY29kZV9DaGVja0V4YWN0KHMpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAibm9uLXN0cmluZyB0eXBlIGluIFN0ciIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQorICAgIGNhc2UgQnl0ZXNfa2luZDogeworICAgICAgICBQeU9iamVjdCAqYiA9IGV4cC0+di5CeXRlcy5zOworICAgICAgICBpZiAoIVB5Qnl0ZXNfQ2hlY2tFeGFjdChiKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIm5vbi1ieXRlcyB0eXBlIGluIEJ5dGVzIik7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMTsKKyAgICB9CisgICAgY2FzZSBBdHRyaWJ1dGVfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHIoZXhwLT52LkF0dHJpYnV0ZS52YWx1ZSwgTG9hZCk7CisgICAgY2FzZSBTdWJzY3JpcHRfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX3NsaWNlKGV4cC0+di5TdWJzY3JpcHQuc2xpY2UpICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9leHByKGV4cC0+di5TdWJzY3JpcHQudmFsdWUsIExvYWQpOworICAgIGNhc2UgU3RhcnJlZF9raW5kOgorICAgICAgICByZXR1cm4gdmFsaWRhdGVfZXhwcihleHAtPnYuU3RhcnJlZC52YWx1ZSwgY3R4KTsKKyAgICBjYXNlIExpc3Rfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHJzKGV4cC0+di5MaXN0LmVsdHMsIGN0eCwgMCk7CisgICAgY2FzZSBUdXBsZV9raW5kOgorICAgICAgICByZXR1cm4gdmFsaWRhdGVfZXhwcnMoZXhwLT52LlR1cGxlLmVsdHMsIGN0eCwgMCk7CisgICAgLyogVGhlc2UgbGFzdCBjYXNlcyBkb24ndCBoYXZlIGFueSBjaGVja2luZy4gKi8KKyAgICBjYXNlIE5hbWVfa2luZDoKKyAgICBjYXNlIEVsbGlwc2lzX2tpbmQ6CisgICAgICAgIHJldHVybiAxOworICAgIGRlZmF1bHQ6CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19TeXN0ZW1FcnJvciwgInVuZXhwZWN0ZWQgZXhwcmVzc2lvbiIpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKK3N0YXRpYyBpbnQKK3ZhbGlkYXRlX25vbmVtcHR5X3NlcShhc2RsX3NlcSAqc2VxLCBjb25zdCBjaGFyICp3aGF0LCBjb25zdCBjaGFyICpvd25lcikKK3sKKyAgICBpZiAoYXNkbF9zZXFfTEVOKHNlcSkpCisgICAgICAgIHJldHVybiAxOworICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLCAiZW1wdHkgJXMgb24gJXMiLCB3aGF0LCBvd25lcik7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3ZhbGlkYXRlX2Fzc2lnbmxpc3QoYXNkbF9zZXEgKnRhcmdldHMsIGV4cHJfY29udGV4dF90eSBjdHgpCit7CisgICAgcmV0dXJuIHZhbGlkYXRlX25vbmVtcHR5X3NlcSh0YXJnZXRzLCAidGFyZ2V0cyIsIGN0eCA9PSBEZWwgPyAiRGVsZXRlIiA6ICJBc3NpZ24iKSAmJgorICAgICAgICB2YWxpZGF0ZV9leHBycyh0YXJnZXRzLCBjdHgsIDApOworfQorCitzdGF0aWMgaW50Cit2YWxpZGF0ZV9ib2R5KGFzZGxfc2VxICpib2R5LCBjb25zdCBjaGFyICpvd25lcikKK3sKKyAgICByZXR1cm4gdmFsaWRhdGVfbm9uZW1wdHlfc2VxKGJvZHksICJib2R5Iiwgb3duZXIpICYmIHZhbGlkYXRlX3N0bXRzKGJvZHkpOworfQorCitzdGF0aWMgaW50Cit2YWxpZGF0ZV9zdG10KHN0bXRfdHkgc3RtdCkKK3sKKyAgICBpbnQgaTsKKyAgICBzd2l0Y2ggKHN0bXQtPmtpbmQpIHsKKyAgICBjYXNlIEZ1bmN0aW9uRGVmX2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9ib2R5KHN0bXQtPnYuRnVuY3Rpb25EZWYuYm9keSwgIkZ1bmN0aW9uRGVmIikgJiYKKyAgICAgICAgICAgIHZhbGlkYXRlX2FyZ3VtZW50cyhzdG10LT52LkZ1bmN0aW9uRGVmLmFyZ3MpICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9leHBycyhzdG10LT52LkZ1bmN0aW9uRGVmLmRlY29yYXRvcl9saXN0LCBMb2FkLCAwKSAmJgorICAgICAgICAgICAgKCFzdG10LT52LkZ1bmN0aW9uRGVmLnJldHVybnMgfHwKKyAgICAgICAgICAgICB2YWxpZGF0ZV9leHByKHN0bXQtPnYuRnVuY3Rpb25EZWYucmV0dXJucywgTG9hZCkpOworICAgIGNhc2UgQ2xhc3NEZWZfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2JvZHkoc3RtdC0+di5DbGFzc0RlZi5ib2R5LCAiQ2xhc3NEZWYiKSAmJgorICAgICAgICAgICAgdmFsaWRhdGVfZXhwcnMoc3RtdC0+di5DbGFzc0RlZi5iYXNlcywgTG9hZCwgMCkgJiYKKyAgICAgICAgICAgIHZhbGlkYXRlX2tleXdvcmRzKHN0bXQtPnYuQ2xhc3NEZWYua2V5d29yZHMpICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9leHBycyhzdG10LT52LkNsYXNzRGVmLmRlY29yYXRvcl9saXN0LCBMb2FkLCAwKSAmJgorICAgICAgICAgICAgKCFzdG10LT52LkNsYXNzRGVmLnN0YXJhcmdzIHx8IHZhbGlkYXRlX2V4cHIoc3RtdC0+di5DbGFzc0RlZi5zdGFyYXJncywgTG9hZCkpICYmCisgICAgICAgICAgICAoIXN0bXQtPnYuQ2xhc3NEZWYua3dhcmdzIHx8IHZhbGlkYXRlX2V4cHIoc3RtdC0+di5DbGFzc0RlZi5rd2FyZ3MsIExvYWQpKTsKKyAgICBjYXNlIFJldHVybl9raW5kOgorICAgICAgICByZXR1cm4gIXN0bXQtPnYuUmV0dXJuLnZhbHVlIHx8IHZhbGlkYXRlX2V4cHIoc3RtdC0+di5SZXR1cm4udmFsdWUsIExvYWQpOworICAgIGNhc2UgRGVsZXRlX2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9hc3NpZ25saXN0KHN0bXQtPnYuRGVsZXRlLnRhcmdldHMsIERlbCk7CisgICAgY2FzZSBBc3NpZ25fa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2Fzc2lnbmxpc3Qoc3RtdC0+di5Bc3NpZ24udGFyZ2V0cywgU3RvcmUpICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9leHByKHN0bXQtPnYuQXNzaWduLnZhbHVlLCBMb2FkKTsKKyAgICBjYXNlIEF1Z0Fzc2lnbl9raW5kOgorICAgICAgICByZXR1cm4gdmFsaWRhdGVfZXhwcihzdG10LT52LkF1Z0Fzc2lnbi50YXJnZXQsIFN0b3JlKSAmJgorICAgICAgICAgICAgdmFsaWRhdGVfZXhwcihzdG10LT52LkF1Z0Fzc2lnbi52YWx1ZSwgTG9hZCk7CisgICAgY2FzZSBGb3Jfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHIoc3RtdC0+di5Gb3IudGFyZ2V0LCBTdG9yZSkgJiYKKyAgICAgICAgICAgIHZhbGlkYXRlX2V4cHIoc3RtdC0+di5Gb3IuaXRlciwgTG9hZCkgJiYKKyAgICAgICAgICAgIHZhbGlkYXRlX2JvZHkoc3RtdC0+di5Gb3IuYm9keSwgIkZvciIpICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9zdG10cyhzdG10LT52LkZvci5vcmVsc2UpOworICAgIGNhc2UgV2hpbGVfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHIoc3RtdC0+di5XaGlsZS50ZXN0LCBMb2FkKSAmJgorICAgICAgICAgICAgdmFsaWRhdGVfYm9keShzdG10LT52LldoaWxlLmJvZHksICJXaGlsZSIpICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9zdG10cyhzdG10LT52LldoaWxlLm9yZWxzZSk7CisgICAgY2FzZSBJZl9raW5kOgorICAgICAgICByZXR1cm4gdmFsaWRhdGVfZXhwcihzdG10LT52LklmLnRlc3QsIExvYWQpICYmCisgICAgICAgICAgICB2YWxpZGF0ZV9ib2R5KHN0bXQtPnYuSWYuYm9keSwgIklmIikgJiYKKyAgICAgICAgICAgIHZhbGlkYXRlX3N0bXRzKHN0bXQtPnYuSWYub3JlbHNlKTsKKyAgICBjYXNlIFdpdGhfa2luZDoKKyAgICAgICAgaWYgKCF2YWxpZGF0ZV9ub25lbXB0eV9zZXEoc3RtdC0+di5XaXRoLml0ZW1zLCAiaXRlbXMiLCAiV2l0aCIpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhc2RsX3NlcV9MRU4oc3RtdC0+di5XaXRoLml0ZW1zKTsgaSsrKSB7CisgICAgICAgICAgICB3aXRoaXRlbV90eSBpdGVtID0gYXNkbF9zZXFfR0VUKHN0bXQtPnYuV2l0aC5pdGVtcywgaSk7CisgICAgICAgICAgICBpZiAoIXZhbGlkYXRlX2V4cHIoaXRlbS0+Y29udGV4dF9leHByLCBMb2FkKSB8fAorICAgICAgICAgICAgICAgIChpdGVtLT5vcHRpb25hbF92YXJzICYmICF2YWxpZGF0ZV9leHByKGl0ZW0tPm9wdGlvbmFsX3ZhcnMsIFN0b3JlKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2JvZHkoc3RtdC0+di5XaXRoLmJvZHksICJXaXRoIik7CisgICAgY2FzZSBSYWlzZV9raW5kOgorICAgICAgICBpZiAoc3RtdC0+di5SYWlzZS5leGMpIHsKKyAgICAgICAgICAgIHJldHVybiB2YWxpZGF0ZV9leHByKHN0bXQtPnYuUmFpc2UuZXhjLCBMb2FkKSAmJgorICAgICAgICAgICAgICAgICghc3RtdC0+di5SYWlzZS5jYXVzZSB8fCB2YWxpZGF0ZV9leHByKHN0bXQtPnYuUmFpc2UuY2F1c2UsIExvYWQpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoc3RtdC0+di5SYWlzZS5jYXVzZSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsICJSYWlzZSB3aXRoIGNhdXNlIGJ1dCBubyBleGNlcHRpb24iKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgVHJ5X2tpbmQ6CisgICAgICAgIGlmICghdmFsaWRhdGVfYm9keShzdG10LT52LlRyeS5ib2R5LCAiVHJ5IikpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKCFhc2RsX3NlcV9MRU4oc3RtdC0+di5UcnkuaGFuZGxlcnMpICYmCisgICAgICAgICAgICAhYXNkbF9zZXFfTEVOKHN0bXQtPnYuVHJ5LmZpbmFsYm9keSkpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiVHJ5IGhhcyBuZWl0aGVyIGV4Y2VwdCBoYW5kbGVycyBub3IgZmluYWxib2R5Iik7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICBpZiAoIWFzZGxfc2VxX0xFTihzdG10LT52LlRyeS5oYW5kbGVycykgJiYKKyAgICAgICAgICAgIGFzZGxfc2VxX0xFTihzdG10LT52LlRyeS5vcmVsc2UpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIlRyeSBoYXMgb3JlbHNlIGJ1dCBubyBleGNlcHQgaGFuZGxlcnMiKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBhc2RsX3NlcV9MRU4oc3RtdC0+di5UcnkuaGFuZGxlcnMpOyBpKyspIHsKKyAgICAgICAgICAgIGV4Y2VwdGhhbmRsZXJfdHkgaGFuZGxlciA9IGFzZGxfc2VxX0dFVChzdG10LT52LlRyeS5oYW5kbGVycywgaSk7CisgICAgICAgICAgICBpZiAoKGhhbmRsZXItPnYuRXhjZXB0SGFuZGxlci50eXBlICYmCisgICAgICAgICAgICAgICAgICF2YWxpZGF0ZV9leHByKGhhbmRsZXItPnYuRXhjZXB0SGFuZGxlci50eXBlLCBMb2FkKSkgfHwKKyAgICAgICAgICAgICAgICAhdmFsaWRhdGVfYm9keShoYW5kbGVyLT52LkV4Y2VwdEhhbmRsZXIuYm9keSwgIkV4Y2VwdEhhbmRsZXIiKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gKCFhc2RsX3NlcV9MRU4oc3RtdC0+di5UcnkuZmluYWxib2R5KSB8fAorICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N0bXRzKHN0bXQtPnYuVHJ5LmZpbmFsYm9keSkpICYmCisgICAgICAgICAgICAoIWFzZGxfc2VxX0xFTihzdG10LT52LlRyeS5vcmVsc2UpIHx8CisgICAgICAgICAgICAgdmFsaWRhdGVfc3RtdHMoc3RtdC0+di5Ucnkub3JlbHNlKSk7CisgICAgY2FzZSBBc3NlcnRfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX2V4cHIoc3RtdC0+di5Bc3NlcnQudGVzdCwgTG9hZCkgJiYKKyAgICAgICAgICAgICghc3RtdC0+di5Bc3NlcnQubXNnIHx8IHZhbGlkYXRlX2V4cHIoc3RtdC0+di5Bc3NlcnQubXNnLCBMb2FkKSk7CisgICAgY2FzZSBJbXBvcnRfa2luZDoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX25vbmVtcHR5X3NlcShzdG10LT52LkltcG9ydC5uYW1lcywgIm5hbWVzIiwgIkltcG9ydCIpOworICAgIGNhc2UgSW1wb3J0RnJvbV9raW5kOgorICAgICAgICBpZiAoc3RtdC0+di5JbXBvcnRGcm9tLmxldmVsIDwgLTEpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiSW1wb3J0RnJvbSBsZXZlbCBsZXNzIHRoYW4gLTEiKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9ub25lbXB0eV9zZXEoc3RtdC0+di5JbXBvcnRGcm9tLm5hbWVzLCAibmFtZXMiLCAiSW1wb3J0RnJvbSIpOworICAgIGNhc2UgR2xvYmFsX2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9ub25lbXB0eV9zZXEoc3RtdC0+di5HbG9iYWwubmFtZXMsICJuYW1lcyIsICJHbG9iYWwiKTsKKyAgICBjYXNlIE5vbmxvY2FsX2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9ub25lbXB0eV9zZXEoc3RtdC0+di5Ob25sb2NhbC5uYW1lcywgIm5hbWVzIiwgIk5vbmxvY2FsIik7CisgICAgY2FzZSBFeHByX2tpbmQ6CisgICAgICAgIHJldHVybiB2YWxpZGF0ZV9leHByKHN0bXQtPnYuRXhwci52YWx1ZSwgTG9hZCk7CisgICAgY2FzZSBQYXNzX2tpbmQ6CisgICAgY2FzZSBCcmVha19raW5kOgorICAgIGNhc2UgQ29udGludWVfa2luZDoKKyAgICAgICAgcmV0dXJuIDE7CisgICAgZGVmYXVsdDoKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLCAidW5leHBlY3RlZCBzdGF0ZW1lbnQiKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCitzdGF0aWMgaW50Cit2YWxpZGF0ZV9zdG10cyhhc2RsX3NlcSAqc2VxKQoreworICAgIGludCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBhc2RsX3NlcV9MRU4oc2VxKTsgaSsrKSB7CisgICAgICAgIHN0bXRfdHkgc3RtdCA9IGFzZGxfc2VxX0dFVChzZXEsIGkpOworICAgICAgICBpZiAoc3RtdCkgeworICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZV9zdG10KHN0bXQpKQorICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vbmUgZGlzYWxsb3dlZCBpbiBzdGF0ZW1lbnQgbGlzdCIpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbnQKK3ZhbGlkYXRlX2V4cHJzKGFzZGxfc2VxICpleHBycywgZXhwcl9jb250ZXh0X3R5IGN0eCwgaW50IG51bGxfb2spCit7CisgICAgaW50IGk7CisgICAgZm9yIChpID0gMDsgaSA8IGFzZGxfc2VxX0xFTihleHBycyk7IGkrKykgeworICAgICAgICBleHByX3R5IGV4cHIgPSBhc2RsX3NlcV9HRVQoZXhwcnMsIGkpOworICAgICAgICBpZiAoZXhwcikgeworICAgICAgICAgICAgaWYgKCF2YWxpZGF0ZV9leHByKGV4cHIsIGN0eCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIW51bGxfb2spIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb25lIGRpc2FsbG93ZWQgaW4gZXhwcmVzc2lvbiBsaXN0Iik7CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgfQorICAgICAgICAgICAgCisgICAgfQorICAgIHJldHVybiAxOworfQorCitpbnQKK1B5QVNUX1ZhbGlkYXRlKG1vZF90eSBtb2QpCit7CisgICAgaW50IHJlcyA9IDA7CisKKyAgICBzd2l0Y2ggKG1vZC0+a2luZCkgeworICAgIGNhc2UgTW9kdWxlX2tpbmQ6CisgICAgICAgIHJlcyA9IHZhbGlkYXRlX3N0bXRzKG1vZC0+di5Nb2R1bGUuYm9keSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW50ZXJhY3RpdmVfa2luZDoKKyAgICAgICAgcmVzID0gdmFsaWRhdGVfc3RtdHMobW9kLT52LkludGVyYWN0aXZlLmJvZHkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEV4cHJlc3Npb25fa2luZDoKKyAgICAgICAgcmVzID0gdmFsaWRhdGVfZXhwcihtb2QtPnYuRXhwcmVzc2lvbi5ib2R5LCBMb2FkKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdWl0ZV9raW5kOgorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIlN1aXRlIGlzIG5vdCB2YWxpZCBpbiB0aGUgQ1B5dGhvbiBjb21waWxlciIpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsICJpbXBvc3NpYmxlIG1vZHVsZSBub2RlIik7CisgICAgICAgIHJlcyA9IDA7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICByZXR1cm4gcmVzOworfQorCisvKiBUaGlzIGlzIGRvbmUgaGVyZSwgc28gZGVmaW5lcyBsaWtlICJ0ZXN0IiBkb24ndCBpbnRlcmZlcmUgd2l0aCBBU1QgdXNlIGFib3ZlLiAqLworI2luY2x1ZGUgImdyYW1tYXIuaCIKKyNpbmNsdWRlICJwYXJzZXRvay5oIgorI2luY2x1ZGUgImdyYW1pbml0LmgiCisKIC8qIERhdGEgc3RydWN0dXJlIHVzZWQgaW50ZXJuYWxseSAqLwogc3RydWN0IGNvbXBpbGluZyB7CiAgICAgY2hhciAqY19lbmNvZGluZzsgLyogc291cmNlIGVuY29kaW5nICovCiAgICAgUHlBcmVuYSAqY19hcmVuYTsgLyogYXJlbmEgZm9yIGFsbG9jYXRpbmcgbWVtZW9yeSAqLwogICAgIGNvbnN0IGNoYXIgKmNfZmlsZW5hbWU7IC8qIGZpbGVuYW1lICovCisgICAgUHlPYmplY3QgKmNfbm9ybWFsaXplOyAvKiBOb3JtYWxpemF0aW9uIGZ1bmN0aW9uIGZyb20gdW5pY29kZWRhdGEuICovCisgICAgUHlPYmplY3QgKmNfbm9ybWFsaXplX2FyZ3M7IC8qIE5vcm1hbGl6YXRpb24gYXJndW1lbnQgdHVwbGUuICovCiB9OwogCiBzdGF0aWMgYXNkbF9zZXEgKnNlcV9mb3JfdGVzdGxpc3Qoc3RydWN0IGNvbXBpbGluZyAqLCBjb25zdCBub2RlICopOwpAQCAtMzgsNDUgKzUyMSw1OCBAQAogc3RhdGljIFB5T2JqZWN0ICpwYXJzZXN0cnBsdXMoc3RydWN0IGNvbXBpbGluZyAqLCBjb25zdCBub2RlICpuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICpieXRlc21vZGUpOwogCi0jaWZuZGVmIExJTkVOTwotI2RlZmluZSBMSU5FTk8obikgICAgICAgKChuKS0+bl9saW5lbm8pCi0jZW5kaWYKLQogI2RlZmluZSBDT01QX0dFTkVYUCAgIDAKICNkZWZpbmUgQ09NUF9MSVNUQ09NUCAxCiAjZGVmaW5lIENPTVBfU0VUQ09NUCAgMgogCitzdGF0aWMgaW50Citpbml0X25vcm1hbGl6YXRpb24oc3RydWN0IGNvbXBpbGluZyAqYykKK3sKKyAgICBQeU9iamVjdCAqbSA9IFB5SW1wb3J0X0ltcG9ydE1vZHVsZU5vQmxvY2soInVuaWNvZGVkYXRhIik7CisgICAgaWYgKCFtKQorICAgICAgICByZXR1cm4gMDsKKyAgICBjLT5jX25vcm1hbGl6ZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcobSwgIm5vcm1hbGl6ZSIpOworICAgIFB5X0RFQ1JFRihtKTsKKyAgICBpZiAoIWMtPmNfbm9ybWFsaXplKQorICAgICAgICByZXR1cm4gMDsKKyAgICBjLT5jX25vcm1hbGl6ZV9hcmdzID0gUHlfQnVpbGRWYWx1ZSgiKHNOKSIsICJORktDIiwgUHlfTm9uZSk7CisgICAgUHlUdXBsZV9TRVRfSVRFTShjLT5jX25vcm1hbGl6ZV9hcmdzLCAxLCBOVUxMKTsKKyAgICBpZiAoIWMtPmNfbm9ybWFsaXplX2FyZ3MpIHsKKyAgICAgICAgUHlfQ0xFQVIoYy0+Y19ub3JtYWxpemUpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisKIHN0YXRpYyBpZGVudGlmaWVyCi1uZXdfaWRlbnRpZmllcihjb25zdCBjaGFyKiBuLCBQeUFyZW5hICphcmVuYSkKK25ld19pZGVudGlmaWVyKGNvbnN0IGNoYXIqIG4sIHN0cnVjdCBjb21waWxpbmcgKmMpCiB7CiAgICAgUHlPYmplY3QqIGlkID0gUHlVbmljb2RlX0RlY29kZVVURjgobiwgc3RybGVuKG4pLCBOVUxMKTsKLSAgICBQeV9VTklDT0RFICp1OwogICAgIGlmICghaWQpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHUgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShpZCk7CisgICAgLyogUHlVbmljb2RlX0RlY29kZVVURjggc2hvdWxkIGFsd2F5cyByZXR1cm4gYSByZWFkeSBzdHJpbmcuICovCisgICAgYXNzZXJ0KFB5VW5pY29kZV9JU19SRUFEWShpZCkpOwogICAgIC8qIENoZWNrIHdoZXRoZXIgdGhlcmUgYXJlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGluIHRoZQogICAgICAgIGlkZW50aWZpZXI7IGlmIHNvLCBub3JtYWxpemUgdG8gTkZLQy4gKi8KLSAgICBmb3IgKDsgKnU7IHUrKykgewotICAgICAgICBpZiAoKnUgPj0gMTI4KSB7Ci0gICAgICAgICAgICBQeU9iamVjdCAqbSA9IFB5SW1wb3J0X0ltcG9ydE1vZHVsZU5vQmxvY2soInVuaWNvZGVkYXRhIik7Ci0gICAgICAgICAgICBQeU9iamVjdCAqaWQyOwotICAgICAgICAgICAgaWYgKCFtKQotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgaWQyID0gUHlPYmplY3RfQ2FsbE1ldGhvZChtLCAibm9ybWFsaXplIiwgInNPIiwgIk5GS0MiLCBpZCk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYobSk7Ci0gICAgICAgICAgICBpZiAoIWlkMikKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoIVB5VW5pY29kZV9JU19BU0NJSShpZCkpIHsKKyAgICAgICAgUHlPYmplY3QgKmlkMjsKKyAgICAgICAgaWYgKCFjLT5jX25vcm1hbGl6ZSAmJiAhaW5pdF9ub3JtYWxpemF0aW9uKGMpKSB7CiAgICAgICAgICAgICBQeV9ERUNSRUYoaWQpOwotICAgICAgICAgICAgaWQgPSBpZDI7Ci0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CisgICAgICAgIFB5VHVwbGVfU0VUX0lURU0oYy0+Y19ub3JtYWxpemVfYXJncywgMSwgaWQpOworICAgICAgICBpZDIgPSBQeU9iamVjdF9DYWxsKGMtPmNfbm9ybWFsaXplLCBjLT5jX25vcm1hbGl6ZV9hcmdzLCBOVUxMKTsKKyAgICAgICAgUHlfREVDUkVGKGlkKTsKKyAgICAgICAgaWYgKCFpZDIpCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWQgPSBpZDI7CiAgICAgfQogICAgIFB5VW5pY29kZV9JbnRlcm5JblBsYWNlKCZpZCk7Ci0gICAgUHlBcmVuYV9BZGRQeU9iamVjdChhcmVuYSwgaWQpOworICAgIFB5QXJlbmFfQWRkUHlPYmplY3QoYy0+Y19hcmVuYSwgaWQpOwogICAgIHJldHVybiBpZDsKIH0KIAotI2RlZmluZSBORVdfSURFTlRJRklFUihuKSBuZXdfaWRlbnRpZmllcihTVFIobiksIGMtPmNfYXJlbmEpCisjZGVmaW5lIE5FV19JREVOVElGSUVSKG4pIG5ld19pZGVudGlmaWVyKFNUUihuKSwgYykKIAogLyogVGhpcyByb3V0aW5lIHByb3ZpZGVzIGFuIGludmFsaWQgb2JqZWN0IGZvciB0aGUgc3ludGF4IGVycm9yLgogICAgVGhlIG91dGVybW9zdCByb3V0aW5lIG11c3QgdW5wYWNrIHRoaXMgZXJyb3IgYW5kIGNyZWF0ZSB0aGUKQEAgLTIyNiwxMyArNzIyLDE0IEBACiAgICAgc3RtdF90eSBzOwogICAgIG5vZGUgKmNoOwogICAgIHN0cnVjdCBjb21waWxpbmcgYzsKKyAgICBtb2RfdHkgcmVzID0gTlVMTDsKIAogICAgIGlmIChmbGFncyAmJiBmbGFncy0+Y2ZfZmxhZ3MgJiBQeUNGX1NPVVJDRV9JU19VVEY4KSB7CiAgICAgICAgIGMuY19lbmNvZGluZyA9ICJ1dGYtOCI7CiAgICAgICAgIGlmIChUWVBFKG4pID09IGVuY29kaW5nX2RlY2wpIHsKICNpZiAwCiAgICAgICAgICAgICBhc3RfZXJyb3IobiwgImVuY29kaW5nIGRlY2xhcmF0aW9uIGluIFVuaWNvZGUgc3RyaW5nIik7Ci0gICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgZ290byBvdXQ7CiAjZW5kaWYKICAgICAgICAgICAgIG4gPSBDSElMRChuLCAwKTsKICAgICAgICAgfQpAQCAtMjQ1LDEzICs3NDIsMTQgQEAKICAgICB9CiAgICAgYy5jX2FyZW5hID0gYXJlbmE7CiAgICAgYy5jX2ZpbGVuYW1lID0gZmlsZW5hbWU7CisgICAgYy5jX25vcm1hbGl6ZSA9IGMuY19ub3JtYWxpemVfYXJncyA9IE5VTEw7CiAKICAgICBrID0gMDsKICAgICBzd2l0Y2ggKFRZUEUobikpIHsKICAgICAgICAgY2FzZSBmaWxlX2lucHV0OgogICAgICAgICAgICAgc3RtdHMgPSBhc2RsX3NlcV9uZXcobnVtX3N0bXRzKG4pLCBhcmVuYSk7CiAgICAgICAgICAgICBpZiAoIXN0bXRzKQotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOworICAgICAgICAgICAgICAgIGdvdG8gb3V0OwogICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IE5DSChuKSAtIDE7IGkrKykgewogICAgICAgICAgICAgICAgIGNoID0gQ0hJTEQobiwgaSk7CiAgICAgICAgICAgICAgICAgaWYgKFRZUEUoY2gpID09IE5FV0xJTkUpCkBAIC0yNjEsNyArNzU5LDcgQEAKICAgICAgICAgICAgICAgICBpZiAobnVtID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgcyA9IGFzdF9mb3Jfc3RtdCgmYywgY2gpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIXMpCi0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgICAgICAgICAgICAgIGFzZGxfc2VxX1NFVChzdG10cywgaysrLCBzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxzZSB7CkBAIC0yNzAsNDIgKzc2OCw0NCBAQAogICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbnVtOyBqKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHMgPSBhc3RfZm9yX3N0bXQoJmMsIENISUxEKGNoLCBqICogMikpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBhc2RsX3NlcV9TRVQoc3RtdHMsIGsrKywgcyk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gTW9kdWxlKHN0bXRzLCBhcmVuYSk7CisgICAgICAgICAgICByZXMgPSBNb2R1bGUoc3RtdHMsIGFyZW5hKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIGV2YWxfaW5wdXQ6IHsKICAgICAgICAgICAgIGV4cHJfdHkgdGVzdGxpc3RfYXN0OwogCiAgICAgICAgICAgICAvKiBYWFggV2h5IG5vdCBjb21wX2ZvciBoZXJlPyAqLwogICAgICAgICAgICAgdGVzdGxpc3RfYXN0ID0gYXN0X2Zvcl90ZXN0bGlzdCgmYywgQ0hJTEQobiwgMCkpOwogICAgICAgICAgICAgaWYgKCF0ZXN0bGlzdF9hc3QpCi0gICAgICAgICAgICAgICAgZ290byBlcnJvcjsKLSAgICAgICAgICAgIHJldHVybiBFeHByZXNzaW9uKHRlc3RsaXN0X2FzdCwgYXJlbmEpOworICAgICAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICAgICAgcmVzID0gRXhwcmVzc2lvbih0ZXN0bGlzdF9hc3QsIGFyZW5hKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ugc2luZ2xlX2lucHV0OgogICAgICAgICAgICAgaWYgKFRZUEUoQ0hJTEQobiwgMCkpID09IE5FV0xJTkUpIHsKICAgICAgICAgICAgICAgICBzdG10cyA9IGFzZGxfc2VxX25ldygxLCBhcmVuYSk7CiAgICAgICAgICAgICAgICAgaWYgKCFzdG10cykKLSAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgICAgICAgICAgYXNkbF9zZXFfU0VUKHN0bXRzLCAwLCBQYXNzKG4tPm5fbGluZW5vLCBuLT5uX2NvbF9vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZW5hKSk7CiAgICAgICAgICAgICAgICAgaWYgKCFhc2RsX3NlcV9HRVQoc3RtdHMsIDApKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICAgICAgICAgIHJldHVybiBJbnRlcmFjdGl2ZShzdG10cywgYXJlbmEpOworICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgICAgICAgICByZXMgPSBJbnRlcmFjdGl2ZShzdG10cywgYXJlbmEpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgbiA9IENISUxEKG4sIDApOwogICAgICAgICAgICAgICAgIG51bSA9IG51bV9zdG10cyhuKTsKICAgICAgICAgICAgICAgICBzdG10cyA9IGFzZGxfc2VxX25ldyhudW0sIGFyZW5hKTsKICAgICAgICAgICAgICAgICBpZiAoIXN0bXRzKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgICAgICAgICBpZiAobnVtID09IDEpIHsKICAgICAgICAgICAgICAgICAgICAgcyA9IGFzdF9mb3Jfc3RtdCgmYywgbik7CiAgICAgICAgICAgICAgICAgICAgIGlmICghcykKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIG91dDsKICAgICAgICAgICAgICAgICAgICAgYXNkbF9zZXFfU0VUKHN0bXRzLCAwLCBzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxzZSB7CkBAIC0zMTYsMjEgKzgxNiwyOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgcyA9IGFzdF9mb3Jfc3RtdCgmYywgQ0hJTEQobiwgaSkpOwogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBvdXQ7CiAgICAgICAgICAgICAgICAgICAgICAgICBhc2RsX3NlcV9TRVQoc3RtdHMsIGkgLyAyLCBzKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIHJldHVybiBJbnRlcmFjdGl2ZShzdG10cywgYXJlbmEpOworICAgICAgICAgICAgICAgIHJlcyA9IEludGVyYWN0aXZlKHN0bXRzLCBhcmVuYSk7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19TeXN0ZW1FcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAiaW52YWxpZCBub2RlICVkIGZvciBQeUFTVF9Gcm9tTm9kZSIsIFRZUEUobikpOwotICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIGdvdG8gb3V0OwogICAgIH0KLSBlcnJvcjoKLSAgICBhc3RfZXJyb3JfZmluaXNoKGZpbGVuYW1lKTsKLSAgICByZXR1cm4gTlVMTDsKKyBvdXQ6CisgICAgaWYgKGMuY19ub3JtYWxpemUpIHsKKyAgICAgICAgUHlfREVDUkVGKGMuY19ub3JtYWxpemUpOworICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKGMuY19ub3JtYWxpemVfYXJncywgMSwgTlVMTCk7CisgICAgICAgIFB5X0RFQ1JFRihjLmNfbm9ybWFsaXplX2FyZ3MpOworICAgIH0KKyAgICBpZiAoIXJlcykKKyAgICAgICAgYXN0X2Vycm9yX2ZpbmlzaChmaWxlbmFtZSk7CisgICAgcmV0dXJuIHJlczsKIH0KIAogLyogUmV0dXJuIHRoZSBBU1QgcmVwci4gb2YgdGhlIG9wZXJhdG9yIHJlcHJlc2VudGVkIGFzIHN5bnRheCAofCwgXiwgZXRjLikKQEAgLTQ2OCw2ICs5NzUsNyBAQAogICAgICAgICAgICAgZXhwcl9uYW1lID0gImdlbmVyYXRvciBleHByZXNzaW9uIjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFlpZWxkX2tpbmQ6CisgICAgICAgIGNhc2UgWWllbGRGcm9tX2tpbmQ6CiAgICAgICAgICAgICBleHByX25hbWUgPSAieWllbGQgZXhwcmVzc2lvbiI7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMaXN0Q29tcF9raW5kOgpAQCAtMTg4OSwxMiArMjM5NywyNSBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGFzdF9mb3JfYmlub3AoYywgbik7CiAgICAgICAgIGNhc2UgeWllbGRfZXhwcjogeworICAgICAgICAgICAgbm9kZSAqYW4gPSBOVUxMOworICAgICAgICAgICAgbm9kZSAqZW4gPSBOVUxMOworICAgICAgICAgICAgaW50IGlzX2Zyb20gPSAwOwogICAgICAgICAgICAgZXhwcl90eSBleHAgPSBOVUxMOwotICAgICAgICAgICAgaWYgKE5DSChuKSA9PSAyKSB7Ci0gICAgICAgICAgICAgICAgZXhwID0gYXN0X2Zvcl90ZXN0bGlzdChjLCBDSElMRChuLCAxKSk7CisgICAgICAgICAgICBpZiAoTkNIKG4pID4gMSkKKyAgICAgICAgICAgICAgICBhbiA9IENISUxEKG4sIDEpOyAvKiB5aWVsZF9hcmcgKi8KKyAgICAgICAgICAgIGlmIChhbikgeworICAgICAgICAgICAgICAgIGVuID0gQ0hJTEQoYW4sIE5DSChhbikgLSAxKTsKKyAgICAgICAgICAgICAgICBpZiAoTkNIKGFuKSA9PSAyKSB7CisgICAgICAgICAgICAgICAgICAgIGlzX2Zyb20gPSAxOworICAgICAgICAgICAgICAgICAgICBleHAgPSBhc3RfZm9yX2V4cHIoYywgZW4pOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGV4cCA9IGFzdF9mb3JfdGVzdGxpc3QoYywgZW4pOwogICAgICAgICAgICAgICAgIGlmICghZXhwKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpc19mcm9tKQorICAgICAgICAgICAgICAgIHJldHVybiBZaWVsZEZyb20oZXhwLCBMSU5FTk8obiksIG4tPm5fY29sX29mZnNldCwgYy0+Y19hcmVuYSk7CiAgICAgICAgICAgICByZXR1cm4gWWllbGQoZXhwLCBMSU5FTk8obiksIG4tPm5fY29sX29mZnNldCwgYy0+Y19hcmVuYSk7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBmYWN0b3I6CkBAIC0xOTE5LDcgKzI0NDAsNyBAQAogICAgIC8qCiAgICAgICBhcmdsaXN0OiAoYXJndW1lbnQgJywnKSogKGFyZ3VtZW50IFsnLCddfCAnKicgdGVzdCBbJywnICcqKicgdGVzdF0KICAgICAgICAgICAgICAgIHwgJyoqJyB0ZXN0KQotICAgICAgYXJndW1lbnQ6IFt0ZXN0ICc9J10gdGVzdCBbY29tcF9mb3JdICAgICAgICAjIFJlYWxseSBba2V5d29yZCAnPSddIHRlc3QKKyAgICAgIGFyZ3VtZW50OiBbdGVzdCAnPSddICh0ZXN0KSBbY29tcF9mb3JdICAgICAgICAjIFJlYWxseSBba2V5d29yZCAnPSddIHRlc3QKICAgICAqLwogCiAgICAgaW50IGksIG5hcmdzLCBua2V5d29yZHMsIG5nZW5zOwpAQCAtMjAwMywxMyArMjUyNCwxMyBAQAogICAgICAgICAgICAgICAgICAqIHRoZW4gaXMgdmVyeSBjb25mdXNpbmcuCiAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgaWYgKGUtPmtpbmQgPT0gTGFtYmRhX2tpbmQpIHsKLSAgICAgICAgICAgICAgICAgIGFzdF9lcnJvcihDSElMRChjaCwgMCksICJsYW1iZGEgY2Fubm90IGNvbnRhaW4gYXNzaWdubWVudCIpOwotICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgICAgICAgICAgICAgIGFzdF9lcnJvcihDSElMRChjaCwgMCksICJsYW1iZGEgY2Fubm90IGNvbnRhaW4gYXNzaWdubWVudCIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGUtPmtpbmQgIT0gTmFtZV9raW5kKSB7Ci0gICAgICAgICAgICAgICAgICBhc3RfZXJyb3IoQ0hJTEQoY2gsIDApLCAia2V5d29yZCBjYW4ndCBiZSBhbiBleHByZXNzaW9uIik7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgYXN0X2Vycm9yKENISUxEKGNoLCAwKSwgImtleXdvcmQgY2FuJ3QgYmUgYW4gZXhwcmVzc2lvbiIpOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvcmJpZGRlbl9uYW1lKGUtPnYuTmFtZS5pZCwgY2gsIDEpKSB7Ci0gICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGtleSA9IGUtPnYuTmFtZS5pZDsKICAgICAgICAgICAgICAgICBmb3IgKGsgPSAwOyBrIDwgbmtleXdvcmRzOyBrKyspIHsKQEAgLTIyMTMsNyArMjczNCw3IEBACiAgICAgICBjb250aW51ZV9zdG10OiAnY29udGludWUnCiAgICAgICByZXR1cm5fc3RtdDogJ3JldHVybicgW3Rlc3RsaXN0XQogICAgICAgeWllbGRfc3RtdDogeWllbGRfZXhwcgotICAgICAgeWllbGRfZXhwcjogJ3lpZWxkJyB0ZXN0bGlzdAorICAgICAgeWllbGRfZXhwcjogJ3lpZWxkJyB0ZXN0bGlzdCB8ICd5aWVsZCcgJ2Zyb20nIHRlc3QKICAgICAgIHJhaXNlX3N0bXQ6ICdyYWlzZScgW3Rlc3QgWycsJyB0ZXN0IFsnLCcgdGVzdF1dXQogICAgICovCiAgICAgbm9kZSAqY2g7CkBAIC0yODg3LDcgKzM0MDgsNyBAQAogewogICAgIGNvbnN0IGludCBuY2ggPSBOQ0gobik7CiAgICAgaW50IG5fZXhjZXB0ID0gKG5jaCAtIDMpLzM7Ci0gICAgYXNkbF9zZXEgKmJvZHksICpvcmVsc2UgPSBOVUxMLCAqZmluYWxseSA9IE5VTEw7CisgICAgYXNkbF9zZXEgKmJvZHksICpoYW5kbGVycyA9IE5VTEwsICpvcmVsc2UgPSBOVUxMLCAqZmluYWxseSA9IE5VTEw7CiAKICAgICBSRVEobiwgdHJ5X3N0bXQpOwogCkBAIC0yOTI4LDkgKzM0NDksOCBAQAogCiAgICAgaWYgKG5fZXhjZXB0ID4gMCkgewogICAgICAgICBpbnQgaTsKLSAgICAgICAgc3RtdF90eSBleGNlcHRfc3Q7CiAgICAgICAgIC8qIHByb2Nlc3MgZXhjZXB0IHN0YXRlbWVudHMgdG8gY3JlYXRlIGEgdHJ5IC4uLiBleGNlcHQgKi8KLSAgICAgICAgYXNkbF9zZXEgKmhhbmRsZXJzID0gYXNkbF9zZXFfbmV3KG5fZXhjZXB0LCBjLT5jX2FyZW5hKTsKKyAgICAgICAgaGFuZGxlcnMgPSBhc2RsX3NlcV9uZXcobl9leGNlcHQsIGMtPmNfYXJlbmEpOwogICAgICAgICBpZiAoaGFuZGxlcnMgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogCkBAIC0yOTQxLDI4ICszNDYxLDE1IEBACiAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgICAgICBhc2RsX3NlcV9TRVQoaGFuZGxlcnMsIGksIGUpOwogICAgICAgICB9Ci0KLSAgICAgICAgZXhjZXB0X3N0ID0gVHJ5RXhjZXB0KGJvZHksIGhhbmRsZXJzLCBvcmVsc2UsIExJTkVOTyhuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG4tPm5fY29sX29mZnNldCwgYy0+Y19hcmVuYSk7Ci0gICAgICAgIGlmICghZmluYWxseSkKLSAgICAgICAgICAgIHJldHVybiBleGNlcHRfc3Q7Ci0KLSAgICAgICAgLyogaWYgYSAnZmluYWxseScgaXMgcHJlc2VudCB0b28sIHdlIG5lc3QgdGhlIFRyeUV4Y2VwdCB3aXRoaW4gYQotICAgICAgICAgICBUcnlGaW5hbGx5IHRvIGVtdWxhdGUgdHJ5IC4uLiBleGNlcHQgLi4uIGZpbmFsbHkgKi8KLSAgICAgICAgYm9keSA9IGFzZGxfc2VxX25ldygxLCBjLT5jX2FyZW5hKTsKLSAgICAgICAgaWYgKGJvZHkgPT0gTlVMTCkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBhc2RsX3NlcV9TRVQoYm9keSwgMCwgZXhjZXB0X3N0KTsKICAgICB9CiAKLSAgICAvKiBtdXN0IGJlIGEgdHJ5IC4uLiBmaW5hbGx5IChleGNlcHQgY2xhdXNlcyBhcmUgaW4gYm9keSwgaWYgYW55IGV4aXN0KSAqLwotICAgIGFzc2VydChmaW5hbGx5ICE9IE5VTEwpOwotICAgIHJldHVybiBUcnlGaW5hbGx5KGJvZHksIGZpbmFsbHksIExJTkVOTyhuKSwgbi0+bl9jb2xfb2Zmc2V0LCBjLT5jX2FyZW5hKTsKKyAgICBhc3NlcnQoZmluYWxseSAhPSBOVUxMIHx8IGFzZGxfc2VxX0xFTihoYW5kbGVycykpOworICAgIHJldHVybiBUcnkoYm9keSwgaGFuZGxlcnMsIG9yZWxzZSwgZmluYWxseSwgTElORU5PKG4pLCBuLT5uX2NvbF9vZmZzZXQsIGMtPmNfYXJlbmEpOwogfQogCiAvKiB3aXRoX2l0ZW06IHRlc3QgWydhcycgZXhwcl0gKi8KLXN0YXRpYyBzdG10X3R5Ci1hc3RfZm9yX3dpdGhfaXRlbShzdHJ1Y3QgY29tcGlsaW5nICpjLCBjb25zdCBub2RlICpuLCBhc2RsX3NlcSAqY29udGVudCkKK3N0YXRpYyB3aXRoaXRlbV90eQorYXN0X2Zvcl93aXRoX2l0ZW0oc3RydWN0IGNvbXBpbGluZyAqYywgY29uc3Qgbm9kZSAqbikKIHsKICAgICBleHByX3R5IGNvbnRleHRfZXhwciwgb3B0aW9uYWxfdmFycyA9IE5VTEw7CiAKQEAgLTI5ODEsNDMgKzM0ODgsMzIgQEAKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBXaXRoKGNvbnRleHRfZXhwciwgb3B0aW9uYWxfdmFycywgY29udGVudCwgTElORU5PKG4pLAotICAgICAgICAgICAgICAgIG4tPm5fY29sX29mZnNldCwgYy0+Y19hcmVuYSk7CisgICAgcmV0dXJuIHdpdGhpdGVtKGNvbnRleHRfZXhwciwgb3B0aW9uYWxfdmFycywgYy0+Y19hcmVuYSk7CiB9CiAKIC8qIHdpdGhfc3RtdDogJ3dpdGgnIHdpdGhfaXRlbSAoJywnIHdpdGhfaXRlbSkqICc6JyBzdWl0ZSAqLwogc3RhdGljIHN0bXRfdHkKIGFzdF9mb3Jfd2l0aF9zdG10KHN0cnVjdCBjb21waWxpbmcgKmMsIGNvbnN0IG5vZGUgKm4pCiB7Ci0gICAgaW50IGk7Ci0gICAgc3RtdF90eSByZXQ7Ci0gICAgYXNkbF9zZXEgKmlubmVyOworICAgIGludCBpLCBuX2l0ZW1zOworICAgIGFzZGxfc2VxICppdGVtcywgKmJvZHk7CiAKICAgICBSRVEobiwgd2l0aF9zdG10KTsKIAotICAgIC8qIHByb2Nlc3MgdGhlIHdpdGggaXRlbXMgaW5zaWRlLW91dCAqLwotICAgIGkgPSBOQ0gobikgLSAxOwotICAgIC8qIHRoZSBzdWl0ZSBvZiB0aGUgaW5uZXJtb3N0IHdpdGggaXRlbSBpcyB0aGUgc3VpdGUgb2YgdGhlIHdpdGggc3RtdCAqLwotICAgIGlubmVyID0gYXN0X2Zvcl9zdWl0ZShjLCBDSElMRChuLCBpKSk7Ci0gICAgaWYgKCFpbm5lcikKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBmb3IgKDs7KSB7Ci0gICAgICAgIGkgLT0gMjsKLSAgICAgICAgcmV0ID0gYXN0X2Zvcl93aXRoX2l0ZW0oYywgQ0hJTEQobiwgaSksIGlubmVyKTsKLSAgICAgICAgaWYgKCFyZXQpCisgICAgbl9pdGVtcyA9IChOQ0gobikgLSAyKSAvIDI7CisgICAgaXRlbXMgPSBhc2RsX3NlcV9uZXcobl9pdGVtcywgYy0+Y19hcmVuYSk7CisgICAgZm9yIChpID0gMTsgaSA8IE5DSChuKSAtIDI7IGkgKz0gMikgeworICAgICAgICB3aXRoaXRlbV90eSBpdGVtID0gYXN0X2Zvcl93aXRoX2l0ZW0oYywgQ0hJTEQobiwgaSkpOworICAgICAgICBpZiAoIWl0ZW0pCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgLyogd2FzIHRoaXMgdGhlIGxhc3QgaXRlbT8gKi8KLSAgICAgICAgaWYgKGkgPT0gMSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAvKiBpZiBub3QsIHdyYXAgdGhlIHJlc3VsdCBzbyBmYXIgaW4gYSBuZXcgc2VxdWVuY2UgKi8KLSAgICAgICAgaW5uZXIgPSBhc2RsX3NlcV9uZXcoMSwgYy0+Y19hcmVuYSk7Ci0gICAgICAgIGlmICghaW5uZXIpCi0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgYXNkbF9zZXFfU0VUKGlubmVyLCAwLCByZXQpOworICAgICAgICBhc2RsX3NlcV9TRVQoaXRlbXMsIChpIC0gMSkgLyAyLCBpdGVtKTsKICAgICB9CiAKLSAgICByZXR1cm4gcmV0OworICAgIGJvZHkgPSBhc3RfZm9yX3N1aXRlKGMsIENISUxEKG4sIE5DSChuKSAtIDEpKTsKKyAgICBpZiAoIWJvZHkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgcmV0dXJuIFdpdGgoaXRlbXMsIGJvZHksIExJTkVOTyhuKSwgbi0+bl9jb2xfb2Zmc2V0LCBjLT5jX2FyZW5hKTsKIH0KIAogc3RhdGljIHN0bXRfdHkKQEAgLTMyMDEsMjAgKzM2OTcsMTQgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLWRlY29kZV91dGY4KHN0cnVjdCBjb21waWxpbmcgKmMsIGNvbnN0IGNoYXIgKipzUHRyLCBjb25zdCBjaGFyICplbmQsIGNoYXIqIGVuY29kaW5nKQorZGVjb2RlX3V0Zjgoc3RydWN0IGNvbXBpbGluZyAqYywgY29uc3QgY2hhciAqKnNQdHIsIGNvbnN0IGNoYXIgKmVuZCkKIHsKLSAgICBQeU9iamVjdCAqdSwgKnY7CiAgICAgY2hhciAqcywgKnQ7CiAgICAgdCA9IHMgPSAoY2hhciAqKSpzUHRyOwogICAgIC8qIHdoaWxlIChzIDwgZW5kICYmICpzICE9ICdcXCcpIHMrKzsgKi8gLyogaW5lZmZpY2llbnQgZm9yIHUiLi4iICovCiAgICAgd2hpbGUgKHMgPCBlbmQgJiYgKCpzICYgMHg4MCkpIHMrKzsKICAgICAqc1B0ciA9IHM7Ci0gICAgdSA9IFB5VW5pY29kZV9EZWNvZGVVVEY4KHQsIHMgLSB0LCBOVUxMKTsKLSAgICBpZiAodSA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB2ID0gUHlVbmljb2RlX0FzRW5jb2RlZFN0cmluZyh1LCBlbmNvZGluZywgTlVMTCk7Ci0gICAgUHlfREVDUkVGKHUpOwotICAgIHJldHVybiB2OworICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlVVRGOCh0LCBzIC0gdCwgTlVMTCk7CiB9CiAKIHN0YXRpYyBQeU9iamVjdCAqCkBAIC0zMjI2LDcgKzM3MTYsNiBAQAogICAgIGNvbnN0IGNoYXIgKmVuZDsKIAogICAgIGlmIChlbmNvZGluZyA9PSBOVUxMKSB7Ci0gICAgICAgIGJ1ZiA9IChjaGFyICopczsKICAgICAgICAgdSA9IE5VTEw7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLyogY2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgKi8KQEAgLTMyNDksMjIgKzM3MzgsMjAgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICgqcyAmIDB4ODApIHsgLyogWFhYIGluZWZmaWNpZW50ICovCiAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnc7Ci0gICAgICAgICAgICAgICAgY2hhciAqcjsKLSAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHJuLCBpOwotICAgICAgICAgICAgICAgIHcgPSBkZWNvZGVfdXRmOChjLCAmcywgZW5kLCAidXRmLTMyLWJlIik7CisgICAgICAgICAgICAgICAgaW50IGtpbmQ7CisgICAgICAgICAgICAgICAgdm9pZCAqZGF0YTsKKyAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IGxlbiwgaTsKKyAgICAgICAgICAgICAgICB3ID0gZGVjb2RlX3V0ZjgoYywgJnMsIGVuZCk7CiAgICAgICAgICAgICAgICAgaWYgKHcgPT0gTlVMTCkgewogICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByID0gUHlCeXRlc19BU19TVFJJTkcodyk7Ci0gICAgICAgICAgICAgICAgcm4gPSBQeV9TSVpFKHcpOwotICAgICAgICAgICAgICAgIGFzc2VydChybiAlIDQgPT0gMCk7Ci0gICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHJuOyBpICs9IDQpIHsKLSAgICAgICAgICAgICAgICAgICAgc3ByaW50ZihwLCAiXFxVJTAyeCUwMnglMDJ4JTAyeCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcltpICsgMF0gJiAweEZGLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJbaSArIDFdICYgMHhGRiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByW2kgKyAyXSAmIDB4RkYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcltpICsgM10gJiAweEZGKTsKKyAgICAgICAgICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQodyk7CisgICAgICAgICAgICAgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHcpOworICAgICAgICAgICAgICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKHcpOworICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47IGkrKykgeworICAgICAgICAgICAgICAgICAgICBQeV9VQ1M0IGNociA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGkpOworICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKHAsICJcXFUlMDh4IiwgY2hyKTsKICAgICAgICAgICAgICAgICAgICAgcCArPSAxMDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgLyogU2hvdWxkIGJlIGltcG9zc2libGUgdG8gb3ZlcmZsb3cgKi8KQEAgLTMyOTgsMTMgKzM3ODUsMjEgQEAKICAgICBpbnQgcmF3bW9kZSA9IDA7CiAgICAgaW50IG5lZWRfZW5jb2Rpbmc7CiAgICAgaWYgKGlzYWxwaGEocXVvdGUpKSB7Ci0gICAgICAgIGlmIChxdW90ZSA9PSAnYicgfHwgcXVvdGUgPT0gJ0InKSB7Ci0gICAgICAgICAgICBxdW90ZSA9ICorK3M7Ci0gICAgICAgICAgICAqYnl0ZXNtb2RlID0gMTsKLSAgICAgICAgfQotICAgICAgICBpZiAocXVvdGUgPT0gJ3InIHx8IHF1b3RlID09ICdSJykgewotICAgICAgICAgICAgcXVvdGUgPSAqKytzOwotICAgICAgICAgICAgcmF3bW9kZSA9IDE7CisgICAgICAgIHdoaWxlICghKmJ5dGVzbW9kZSB8fCAhcmF3bW9kZSkgeworICAgICAgICAgICAgaWYgKHF1b3RlID09ICdiJyB8fCBxdW90ZSA9PSAnQicpIHsKKyAgICAgICAgICAgICAgICBxdW90ZSA9ICorK3M7CisgICAgICAgICAgICAgICAgKmJ5dGVzbW9kZSA9IDE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmIChxdW90ZSA9PSAndScgfHwgcXVvdGUgPT0gJ1UnKSB7CisgICAgICAgICAgICAgICAgcXVvdGUgPSAqKytzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAocXVvdGUgPT0gJ3InIHx8IHF1b3RlID09ICdSJykgeworICAgICAgICAgICAgICAgIHF1b3RlID0gKisrczsKKyAgICAgICAgICAgICAgICByYXdtb2RlID0gMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogICAgIGlmIChxdW90ZSAhPSAnXCcnICYmIHF1b3RlICE9ICdcIicpIHsKZGlmZiAtLWdpdCBhL1B5dGhvbi9ibHRpbm1vZHVsZS5jIGIvUHl0aG9uL2JsdGlubW9kdWxlLmMKaW5kZXggMjMyZTNkYy4uODBhYzdmMSAxMDA2NDQKLS0tIGEvUHl0aG9uL2JsdGlubW9kdWxlLmMKKysrIGIvUHl0aG9uL2JsdGlubW9kdWxlLmMKQEAgLTYsNiArNiw5IEBACiAjaW5jbHVkZSAibm9kZS5oIgogI2luY2x1ZGUgImNvZGUuaCIKIAorI2luY2x1ZGUgImFzZGwuaCIKKyNpbmNsdWRlICJhc3QuaCIKKwogI2luY2x1ZGUgPGN0eXBlLmg+CiAKICNpZmRlZiBIQVZFX0xBTkdJTkZPX0gKQEAgLTE4LDIwICsyMSwyMCBAQAogICAgRG9uJ3QgZm9yZ2V0IHRvIG1vZGlmeSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KCkgaWYgeW91IHRvdWNoIGFueSBvZiB0aGUKICAgIHZhbHVlcyBmb3IgUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZyEKICovCi0jaWYgZGVmaW5lZChNU19XSU5ET1dTKSAmJiBkZWZpbmVkKEhBVkVfVVNBQkxFX1dDSEFSX1QpCisjaWZkZWYgSEFWRV9NQkNTCiBjb25zdCBjaGFyICpQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nID0gIm1iY3MiOwogaW50IFB5X0hhc0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcgPSAxOwogI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCiBjb25zdCBjaGFyICpQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nID0gInV0Zi04IjsKIGludCBQeV9IYXNGaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nID0gMTsKLSNlbGlmIGRlZmluZWQoSEFWRV9MQU5HSU5GT19IKSAmJiBkZWZpbmVkKENPREVTRVQpCisjZWxzZQogY29uc3QgY2hhciAqUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZyA9IE5VTEw7IC8qIHNldCBieSBpbml0ZnNlbmNvZGluZygpICovCiBpbnQgUHlfSGFzRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZyA9IDA7Ci0jZWxzZQotY29uc3QgY2hhciAqUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZyA9ICJ1dGYtOCI7Ci1pbnQgUHlfSGFzRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZyA9IDE7CiAjZW5kaWYKIAorX1B5X0lERU5USUZJRVIoZmlsZW5vKTsKK19QeV9JREVOVElGSUVSKGZsdXNoKTsKKwogc3RhdGljIFB5T2JqZWN0ICoKIGJ1aWx0aW5fX19idWlsZF9jbGFzc19fKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncywgUHlPYmplY3QgKmt3ZHMpCiB7CkBAIC0zOSw2ICs0Miw3IEBACiAgICAgUHlPYmplY3QgKmNscyA9IE5VTEw7CiAgICAgUHlfc3NpemVfdCBuYXJnczsKICAgICBpbnQgaXNjbGFzczsKKyAgICBfUHlfSURFTlRJRklFUihfX3ByZXBhcmVfXyk7CiAKICAgICBhc3NlcnQoYXJncyAhPSBOVUxMKTsKICAgICBpZiAoIVB5VHVwbGVfQ2hlY2soYXJncykpIHsKQEAgLTk5LDYgKzEwMyw3IEBACiAgICAgICAgIFB5X0lOQ1JFRihtZXRhKTsKICAgICAgICAgaXNjbGFzcyA9IDE7ICAvKiBtZXRhIGlzIHJlYWxseSBhIGNsYXNzICovCiAgICAgfQorCiAgICAgaWYgKGlzY2xhc3MpIHsKICAgICAgICAgLyogbWV0YSBpcyByZWFsbHkgYSBjbGFzcywgc28gY2hlY2sgZm9yIGEgbW9yZSBkZXJpdmVkCiAgICAgICAgICAgIG1ldGFjbGFzcywgb3IgcG9zc2libGUgbWV0YWNsYXNzIGNvbmZsaWN0czogKi8KQEAgLTExOCw3ICsxMjMsNyBAQAogICAgIH0KICAgICAvKiBlbHNlOiBtZXRhIGlzIG5vdCBhIGNsYXNzLCBzbyB3ZSBjYW5ub3QgZG8gdGhlIG1ldGFjbGFzcwogICAgICAgIGNhbGN1bGF0aW9uLCBzbyB3ZSB3aWxsIHVzZSB0aGUgZXhwbGljaXRseSBnaXZlbiBvYmplY3QgYXMgaXQgaXMgKi8KLSAgICBwcmVwID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhtZXRhLCAiX19wcmVwYXJlX18iKTsKKyAgICBwcmVwID0gX1B5T2JqZWN0X0dldEF0dHJJZChtZXRhLCAmUHlJZF9fX3ByZXBhcmVfXyk7CiAgICAgaWYgKHByZXAgPT0gTlVMTCkgewogICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19BdHRyaWJ1dGVFcnJvcikpIHsKICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CkBAIC0xNzksMTcgKzE4NCwxNCBAQAogewogICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsibmFtZSIsICJnbG9iYWxzIiwgImxvY2FscyIsICJmcm9tbGlzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsZXZlbCIsIDB9OwotICAgIGNoYXIgKm5hbWU7Ci0gICAgUHlPYmplY3QgKmdsb2JhbHMgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpsb2NhbHMgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpmcm9tbGlzdCA9IE5VTEw7Ci0gICAgaW50IGxldmVsID0gLTE7CisgICAgUHlPYmplY3QgKm5hbWUsICpnbG9iYWxzID0gTlVMTCwgKmxvY2FscyA9IE5VTEwsICpmcm9tbGlzdCA9IE5VTEw7CisgICAgaW50IGxldmVsID0gMDsKIAotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJzfE9PT2k6X19pbXBvcnRfXyIsCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoYXJncywga3dkcywgIlV8T09PaTpfX2ltcG9ydF9fIiwKICAgICAgICAgICAgICAgICAgICAga3dsaXN0LCAmbmFtZSwgJmdsb2JhbHMsICZsb2NhbHMsICZmcm9tbGlzdCwgJmxldmVsKSkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcmV0dXJuIFB5SW1wb3J0X0ltcG9ydE1vZHVsZUxldmVsKG5hbWUsIGdsb2JhbHMsIGxvY2FscywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbWxpc3QsIGxldmVsKTsKKyAgICByZXR1cm4gUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWxPYmplY3QobmFtZSwgZ2xvYmFscywgbG9jYWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tbGlzdCwgbGV2ZWwpOwogfQogCiBQeURvY19TVFJWQVIoaW1wb3J0X2RvYywKQEAgLTQzNCw2ICs0MzYsMTkgQEAKICAgICB9CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCitmaWx0ZXJfcmVkdWNlKGZpbHRlcm9iamVjdCAqbHopCit7CisgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIk8oT08pIiwgUHlfVFlQRShseiksIGx6LT5mdW5jLCBsei0+aXQpOworfQorCitQeURvY19TVFJWQVIocmVkdWNlX2RvYywgIlJldHVybiBzdGF0ZSBpbmZvcm1hdGlvbiBmb3IgcGlja2xpbmcuIik7CisKK3N0YXRpYyBQeU1ldGhvZERlZiBmaWx0ZXJfbWV0aG9kc1tdID0geworICAgIHsiX19yZWR1Y2VfXyIsICAgKFB5Q0Z1bmN0aW9uKWZpbHRlcl9yZWR1Y2UsICAgTUVUSF9OT0FSR1MsIHJlZHVjZV9kb2N9LAorICAgIHtOVUxMLCAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCit9OworCiBQeURvY19TVFJWQVIoZmlsdGVyX2RvYywKICJmaWx0ZXIoZnVuY3Rpb24gb3IgTm9uZSwgaXRlcmFibGUpIC0tPiBmaWx0ZXIgb2JqZWN0XG5cCiBcblwKQEAgLTQ3MCw3ICs0ODUsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgIChpdGVybmV4dGZ1bmMpZmlsdGVyX25leHQsICAgICAgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIGZpbHRlcl9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwpAQCAtNTE0LDE3ICs1MjksMTAgQEAKICAgICByZXR1cm4gUHlVbmljb2RlX0Zyb21PcmRpbmFsKHgpOwogfQogCi1QeURvY19WQVIoY2hyX2RvYykgPSBQeURvY19TVFIoCitQeURvY19TVFJWQVIoY2hyX2RvYywKICJjaHIoaSkgLT4gVW5pY29kZSBjaGFyYWN0ZXJcblwKIFxuXAotUmV0dXJuIGEgVW5pY29kZSBzdHJpbmcgb2Ygb25lIGNoYXJhY3RlciB3aXRoIG9yZGluYWwgaTsgMCA8PSBpIDw9IDB4MTBmZmZmLiIKLSkKLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi1QeURvY19TVFIoCi0iXG5JZiAweDEwMDAwIDw9IGksIGEgc3Vycm9nYXRlIHBhaXIgaXMgcmV0dXJuZWQuIgotKQotI2VuZGlmCi07CitSZXR1cm4gYSBVbmljb2RlIHN0cmluZyBvZiBvbmUgY2hhcmFjdGVyIHdpdGggb3JkaW5hbCBpOyAwIDw9IGkgPD0gMHgxMGZmZmYuIik7CiAKIAogc3RhdGljIGNoYXIgKgpAQCAtNTM1LDggKzU0Myw4IEBACiAKICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKGNtZCkpIHsKICAgICAgICAgY2YtPmNmX2ZsYWdzIHw9IFB5Q0ZfSUdOT1JFX0NPT0tJRTsKLSAgICAgICAgY21kID0gX1B5VW5pY29kZV9Bc0RlZmF1bHRFbmNvZGVkU3RyaW5nKGNtZCwgTlVMTCk7Ci0gICAgICAgIGlmIChjbWQgPT0gTlVMTCkKKyAgICAgICAgc3RyID0gUHlVbmljb2RlX0FzVVRGOEFuZFNpemUoY21kLCAmc2l6ZSk7CisgICAgICAgIGlmIChzdHIgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBlbHNlIGlmICghUHlPYmplY3RfQ2hlY2tSZWFkQnVmZmVyKGNtZCkpIHsKQEAgLTU0NSw5ICs1NTMsMTAgQEAKICAgICAgICAgICBmdW5jbmFtZSwgd2hhdCk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBpZiAoUHlPYmplY3RfQXNSZWFkQnVmZmVyKGNtZCwgKGNvbnN0IHZvaWQgKiopJnN0ciwgJnNpemUpIDwgMCkgeworICAgIGVsc2UgaWYgKFB5T2JqZWN0X0FzUmVhZEJ1ZmZlcihjbWQsIChjb25zdCB2b2lkICoqKSZzdHIsICZzaXplKSA8IDApIHsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQorCiAgICAgaWYgKHN0cmxlbihzdHIpICE9IHNpemUpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICJzb3VyY2UgY29kZSBzdHJpbmcgY2Fubm90IGNvbnRhaW4gbnVsbCBieXRlcyIpOwpAQCAtNjM0LDYgKzY0MywxMCBAQAogICAgICAgICAgICAgICAgIFB5QXJlbmFfRnJlZShhcmVuYSk7CiAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghUHlBU1RfVmFsaWRhdGUobW9kKSkgeworICAgICAgICAgICAgICAgIFB5QXJlbmFfRnJlZShhcmVuYSk7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJlc3VsdCA9IChQeU9iamVjdCopUHlBU1RfQ29tcGlsZUV4KG1vZCwgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY2YsIG9wdGltaXplLCBhcmVuYSk7CiAgICAgICAgICAgICBQeUFyZW5hX0ZyZWUoYXJlbmEpOwpAQCAtNzg5LDcgKzgwMiw2IEBACiB7CiAgICAgUHlPYmplY3QgKnY7CiAgICAgUHlPYmplY3QgKnByb2csICpnbG9iYWxzID0gUHlfTm9uZSwgKmxvY2FscyA9IFB5X05vbmU7Ci0gICAgaW50IHBsYWluID0gMDsKIAogICAgIGlmICghUHlBcmdfVW5wYWNrVHVwbGUoYXJncywgImV4ZWMiLCAxLCAzLCAmcHJvZywgJmdsb2JhbHMsICZsb2NhbHMpKQogICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTc5OCw3ICs4MTAsNiBAQAogICAgICAgICBnbG9iYWxzID0gUHlFdmFsX0dldEdsb2JhbHMoKTsKICAgICAgICAgaWYgKGxvY2FscyA9PSBQeV9Ob25lKSB7CiAgICAgICAgICAgICBsb2NhbHMgPSBQeUV2YWxfR2V0TG9jYWxzKCk7Ci0gICAgICAgICAgICBwbGFpbiA9IDE7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCFnbG9iYWxzIHx8ICFsb2NhbHMpIHsKICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19TeXN0ZW1FcnJvciwKQEAgLTEwNTQsNiArMTA2NSwzMSBAQAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCittYXBfcmVkdWNlKG1hcG9iamVjdCAqbHopCit7CisgICAgUHlfc3NpemVfdCBudW1hcmdzID0gUHlUdXBsZV9HRVRfU0laRShsei0+aXRlcnMpOworICAgIFB5T2JqZWN0ICphcmdzID0gUHlUdXBsZV9OZXcobnVtYXJncysxKTsKKyAgICBQeV9zc2l6ZV90IGk7CisgICAgaWYgKGFyZ3MgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgUHlfSU5DUkVGKGx6LT5mdW5jKTsKKyAgICBQeVR1cGxlX1NFVF9JVEVNKGFyZ3MsIDAsIGx6LT5mdW5jKTsKKyAgICBmb3IgKGkgPSAwOyBpPG51bWFyZ3M7IGkrKyl7CisgICAgICAgIFB5T2JqZWN0ICppdCA9IFB5VHVwbGVfR0VUX0lURU0obHotPml0ZXJzLCBpKTsKKyAgICAgICAgUHlfSU5DUkVGKGl0KTsKKyAgICAgICAgUHlUdXBsZV9TRVRfSVRFTShhcmdzLCBpKzEsIGl0KTsKKyAgICB9CisKKyAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiT04iLCBQeV9UWVBFKGx6KSwgYXJncyk7Cit9CisKK3N0YXRpYyBQeU1ldGhvZERlZiBtYXBfbWV0aG9kc1tdID0geworICAgIHsiX19yZWR1Y2VfXyIsICAgKFB5Q0Z1bmN0aW9uKW1hcF9yZWR1Y2UsICAgTUVUSF9OT0FSR1MsIHJlZHVjZV9kb2N9LAorICAgIHtOVUxMLCAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCit9OworCisKIFB5RG9jX1NUUlZBUihtYXBfZG9jLAogIm1hcChmdW5jLCAqaXRlcmFibGVzKSAtLT4gbWFwIG9iamVjdFxuXAogXG5cCkBAIC0xMDkwLDcgKzExMjYsNyBAQAogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCiAgICAgUHlPYmplY3RfU2VsZkl0ZXIsICAgICAgICAgICAgICAgICAgLyogdHBfaXRlciAqLwogICAgIChpdGVybmV4dGZ1bmMpbWFwX25leHQsICAgICAvKiB0cF9pdGVybmV4dCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KKyAgICBtYXBfbWV0aG9kcywgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZXRob2RzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KQEAgLTExMTQsNyArMTE1MCw3IEBACiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmICghUHlJdGVyX0NoZWNrKGl0KSkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgIiUuMjAwcyBvYmplY3QgaXMgbm90IGFuIGl0ZXJhdG9yIiwKKyAgICAgICAgICAgICInJS4yMDBzJyBvYmplY3QgaXMgbm90IGFuIGl0ZXJhdG9yIiwKICAgICAgICAgICAgIGl0LT5vYl90eXBlLT50cF9uYW1lKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQpAQCAtMTQyMCwyNCArMTQ1NiwxMyBAQAogICAgICAgICB9CiAgICAgfQogICAgIGVsc2UgaWYgKFB5VW5pY29kZV9DaGVjayhvYmopKSB7Ci0gICAgICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX1NJWkUob2JqKTsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShvYmopID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHNpemUgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChvYmopOwogICAgICAgICBpZiAoc2l6ZSA9PSAxKSB7Ci0gICAgICAgICAgICBvcmQgPSAobG9uZykqUHlVbmljb2RlX0FTX1VOSUNPREUob2JqKTsKKyAgICAgICAgICAgIG9yZCA9IChsb25nKVB5VW5pY29kZV9SRUFEX0NIQVIob2JqLCAwKTsKICAgICAgICAgICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcob3JkKTsKICAgICAgICAgfQotI2lmbmRlZiBQeV9VTklDT0RFX1dJREUKLSAgICAgICAgaWYgKHNpemUgPT0gMikgewotICAgICAgICAgICAgLyogRGVjb2RlIGEgdmFsaWQgc3Vycm9nYXRlIHBhaXIgKi8KLSAgICAgICAgICAgIGludCBjMCA9IFB5VW5pY29kZV9BU19VTklDT0RFKG9iailbMF07Ci0gICAgICAgICAgICBpbnQgYzEgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShvYmopWzFdOwotICAgICAgICAgICAgaWYgKDB4RDgwMCA8PSBjMCAmJiBjMCA8PSAweERCRkYgJiYKLSAgICAgICAgICAgICAgICAweERDMDAgPD0gYzEgJiYgYzEgPD0gMHhERkZGKSB7Ci0gICAgICAgICAgICAgICAgb3JkID0gKCgoKGMwICYgMHgwM0ZGKSA8PCAxMCkgfCAoYzEgJiAweDAzRkYpKSArCi0gICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMTAwMDApOwotICAgICAgICAgICAgICAgIHJldHVybiBQeUxvbmdfRnJvbUxvbmcob3JkKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotI2VuZGlmCiAgICAgfQogICAgIGVsc2UgaWYgKFB5Qnl0ZUFycmF5X0NoZWNrKG9iaikpIHsKICAgICAgICAgLyogWFhYIEhvcGVmdWxseSB0aGlzIGlzIHRlbXBvcmFyeSAqLwpAQCAtMTQ2NSwxMyArMTQ5MCw3IEBACiAib3JkKGMpIC0+IGludGVnZXJcblwKIFxuXAogUmV0dXJuIHRoZSBpbnRlZ2VyIG9yZGluYWwgb2YgYSBvbmUtY2hhcmFjdGVyIHN0cmluZy4iCi0pCi0jaWZuZGVmIFB5X1VOSUNPREVfV0lERQotUHlEb2NfU1RSKAotIlxuQSB2YWxpZCBzdXJyb2dhdGUgcGFpciBpcyBhbHNvIGFjY2VwdGVkLiIKLSkKLSNlbmRpZgotOworKTsKIAogCiBzdGF0aWMgUHlPYmplY3QgKgpAQCAtMTQ5NSwxNSArMTUxNCwxNSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGJ1aWx0aW5fcHJpbnQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKLSAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7InNlcCIsICJlbmQiLCAiZmlsZSIsIDB9OworICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsic2VwIiwgImVuZCIsICJmaWxlIiwgImZsdXNoIiwgMH07CiAgICAgc3RhdGljIFB5T2JqZWN0ICpkdW1teV9hcmdzOwotICAgIFB5T2JqZWN0ICpzZXAgPSBOVUxMLCAqZW5kID0gTlVMTCwgKmZpbGUgPSBOVUxMOworICAgIFB5T2JqZWN0ICpzZXAgPSBOVUxMLCAqZW5kID0gTlVMTCwgKmZpbGUgPSBOVUxMLCAqZmx1c2ggPSBOVUxMOwogICAgIGludCBpLCBlcnI7CiAKICAgICBpZiAoZHVtbXlfYXJncyA9PSBOVUxMICYmICEoZHVtbXlfYXJncyA9IFB5VHVwbGVfTmV3KDApKSkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGR1bW15X2FyZ3MsIGt3ZHMsICJ8T09POnByaW50IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2xpc3QsICZzZXAsICZlbmQsICZmaWxlKSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlQW5kS2V5d29yZHMoZHVtbXlfYXJncywga3dkcywgInxPT09POnByaW50IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2xpc3QsICZzZXAsICZlbmQsICZmaWxlLCAmZmx1c2gpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBpZiAoZmlsZSA9PSBOVUxMIHx8IGZpbGUgPT0gUHlfTm9uZSkgewogICAgICAgICBmaWxlID0gUHlTeXNfR2V0T2JqZWN0KCJzdGRvdXQiKTsKQEAgLTE1NTQsNiArMTU3MywyMCBAQAogICAgIGlmIChlcnIpCiAgICAgICAgIHJldHVybiBOVUxMOwogCisgICAgaWYgKGZsdXNoICE9IE5VTEwpIHsKKyAgICAgICAgUHlPYmplY3QgKnRtcDsKKyAgICAgICAgaW50IGRvX2ZsdXNoID0gUHlPYmplY3RfSXNUcnVlKGZsdXNoKTsKKyAgICAgICAgaWYgKGRvX2ZsdXNoID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGVsc2UgaWYgKGRvX2ZsdXNoKSB7CisgICAgICAgICAgICB0bXAgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGZpbGUsICJmbHVzaCIsICIiKTsKKyAgICAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYodG1wKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIFB5X1JFVFVSTl9OT05FOwogfQogCkBAIC0xNjAwLDcgKzE2MzMsNyBAQAogICAgIH0KIAogICAgIC8qIEZpcnN0IG9mIGFsbCwgZmx1c2ggc3RkZXJyICovCi0gICAgdG1wID0gUHlPYmplY3RfQ2FsbE1ldGhvZChmZXJyLCAiZmx1c2giLCAiIik7CisgICAgdG1wID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmZXJyLCAmUHlJZF9mbHVzaCwgIiIpOwogICAgIGlmICh0bXAgPT0gTlVMTCkKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICBlbHNlCkBAIC0xNjA5LDcgKzE2NDIsNyBAQAogICAgIC8qIFdlIHNob3VsZCBvbmx5IHVzZSAoR05VKSByZWFkbGluZSBpZiBQeXRob24ncyBzeXMuc3RkaW4gYW5kCiAgICAgICAgc3lzLnN0ZG91dCBhcmUgdGhlIHNhbWUgYXMgQydzIHN0ZGluIGFuZCBzdGRvdXQsIGJlY2F1c2Ugd2UKICAgICAgICBuZWVkIHRvIHBhc3MgaXQgdGhvc2UuICovCi0gICAgdG1wID0gUHlPYmplY3RfQ2FsbE1ldGhvZChmaW4sICJmaWxlbm8iLCAiIik7CisgICAgdG1wID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmaW4sICZQeUlkX2ZpbGVubywgIiIpOwogICAgIGlmICh0bXAgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICB0dHkgPSAwOwpAQCAtMTYyMiw3ICsxNjU1LDcgQEAKICAgICAgICAgdHR5ID0gZmQgPT0gZmlsZW5vKHN0ZGluKSAmJiBpc2F0dHkoZmQpOwogICAgIH0KICAgICBpZiAodHR5KSB7Ci0gICAgICAgIHRtcCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoZm91dCwgImZpbGVubyIsICIiKTsKKyAgICAgICAgdG1wID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmb3V0LCAmUHlJZF9maWxlbm8sICIiKTsKICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQogICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgZWxzZSB7CkBAIC0xNjQ0LDkgKzE2NzcsMTEgQEAKICAgICAgICAgY2hhciAqc3RkaW5fZW5jb2Rpbmdfc3RyLCAqc3RkaW5fZXJyb3JzX3N0cjsKICAgICAgICAgUHlPYmplY3QgKnJlc3VsdDsKICAgICAgICAgc2l6ZV90IGxlbjsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoZW5jb2RpbmcpOworICAgICAgICBfUHlfSURFTlRJRklFUihlcnJvcnMpOwogCi0gICAgICAgIHN0ZGluX2VuY29kaW5nID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhmaW4sICJlbmNvZGluZyIpOwotICAgICAgICBzdGRpbl9lcnJvcnMgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGZpbiwgImVycm9ycyIpOworICAgICAgICBzdGRpbl9lbmNvZGluZyA9IF9QeU9iamVjdF9HZXRBdHRySWQoZmluLCAmUHlJZF9lbmNvZGluZyk7CisgICAgICAgIHN0ZGluX2Vycm9ycyA9IF9QeU9iamVjdF9HZXRBdHRySWQoZmluLCAmUHlJZF9lcnJvcnMpOwogICAgICAgICBpZiAoIXN0ZGluX2VuY29kaW5nIHx8ICFzdGRpbl9lcnJvcnMpCiAgICAgICAgICAgICAvKiBzdGRpbiBpcyBhIHRleHQgc3RyZWFtLCBzbyBpdCBtdXN0IGhhdmUgYW4KICAgICAgICAgICAgICAgIGVuY29kaW5nLiAqLwpAQCAtMTY1NSw3ICsxNjkwLDcgQEAKICAgICAgICAgc3RkaW5fZXJyb3JzX3N0ciA9IF9QeVVuaWNvZGVfQXNTdHJpbmcoc3RkaW5fZXJyb3JzKTsKICAgICAgICAgaWYgKCFzdGRpbl9lbmNvZGluZ19zdHIgfHwgIXN0ZGluX2Vycm9yc19zdHIpCiAgICAgICAgICAgICBnb3RvIF9yZWFkbGluZV9lcnJvcnM7Ci0gICAgICAgIHRtcCA9IFB5T2JqZWN0X0NhbGxNZXRob2QoZm91dCwgImZsdXNoIiwgIiIpOworICAgICAgICB0bXAgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKGZvdXQsICZQeUlkX2ZsdXNoLCAiIik7CiAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkKICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgIGVsc2UKQEAgLTE2NjQsOCArMTY5OSw4IEBACiAgICAgICAgICAgICAvKiBXZSBoYXZlIGEgcHJvbXB0LCBlbmNvZGUgaXQgYXMgc3Rkb3V0IHdvdWxkICovCiAgICAgICAgICAgICBjaGFyICpzdGRvdXRfZW5jb2Rpbmdfc3RyLCAqc3Rkb3V0X2Vycm9yc19zdHI7CiAgICAgICAgICAgICBQeU9iamVjdCAqc3RyaW5ncG87Ci0gICAgICAgICAgICBzdGRvdXRfZW5jb2RpbmcgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGZvdXQsICJlbmNvZGluZyIpOwotICAgICAgICAgICAgc3Rkb3V0X2Vycm9ycyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoZm91dCwgImVycm9ycyIpOworICAgICAgICAgICAgc3Rkb3V0X2VuY29kaW5nID0gX1B5T2JqZWN0X0dldEF0dHJJZChmb3V0LCAmUHlJZF9lbmNvZGluZyk7CisgICAgICAgICAgICBzdGRvdXRfZXJyb3JzID0gX1B5T2JqZWN0X0dldEF0dHJJZChmb3V0LCAmUHlJZF9lcnJvcnMpOwogICAgICAgICAgICAgaWYgKCFzdGRvdXRfZW5jb2RpbmcgfHwgIXN0ZG91dF9lcnJvcnMpCiAgICAgICAgICAgICAgICAgZ290byBfcmVhZGxpbmVfZXJyb3JzOwogICAgICAgICAgICAgc3Rkb3V0X2VuY29kaW5nX3N0ciA9IF9QeVVuaWNvZGVfQXNTdHJpbmcoc3Rkb3V0X2VuY29kaW5nKTsKQEAgLTE3MzUsNyArMTc3MCw3IEBACiAgICAgICAgIGlmIChQeUZpbGVfV3JpdGVPYmplY3QocHJvbXB0YXJnLCBmb3V0LCBQeV9QUklOVF9SQVcpICE9IDApCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgdG1wID0gUHlPYmplY3RfQ2FsbE1ldGhvZChmb3V0LCAiZmx1c2giLCAiIik7CisgICAgdG1wID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmb3V0LCAmUHlJZF9mbHVzaCwgIiIpOwogICAgIGlmICh0bXAgPT0gTlVMTCkKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICBlbHNlCkBAIC0xODE3LDYgKzE4NTIsNyBAQAogICAgIFB5T2JqZWN0ICpjYWxsYWJsZTsKICAgICBzdGF0aWMgY2hhciAqa3dsaXN0W10gPSB7Iml0ZXJhYmxlIiwgImtleSIsICJyZXZlcnNlIiwgMH07CiAgICAgaW50IHJldmVyc2U7CisgICAgX1B5X0lERU5USUZJRVIoc29ydCk7CiAKICAgICAvKiBhcmdzIDEtMyBzaG91bGQgbWF0Y2ggbGlzdHNvcnQgaW4gT2JqZWN0cy9saXN0b2JqZWN0LmMgKi8KICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGVBbmRLZXl3b3JkcyhhcmdzLCBrd2RzLCAiT3xPaTpzb3J0ZWQiLApAQCAtMTgyNyw3ICsxODYzLDcgQEAKICAgICBpZiAobmV3bGlzdCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGNhbGxhYmxlID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhuZXdsaXN0LCAic29ydCIpOworICAgIGNhbGxhYmxlID0gX1B5T2JqZWN0X0dldEF0dHJJZChuZXdsaXN0LCAmUHlJZF9zb3J0KTsKICAgICBpZiAoY2FsbGFibGUgPT0gTlVMTCkgewogICAgICAgICBQeV9ERUNSRUYobmV3bGlzdCk7CiAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtMTg3Myw3ICsxOTA5LDggQEAKICAgICAgICAgICAgIFB5X0lOQ1JFRihkKTsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIGQgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHYsICJfX2RpY3RfXyIpOworICAgICAgICBfUHlfSURFTlRJRklFUihfX2RpY3RfXyk7CisgICAgICAgIGQgPSBfUHlPYmplY3RfR2V0QXR0cklkKHYsICZQeUlkX19fZGljdF9fKTsKICAgICAgICAgaWYgKGQgPT0gTlVMTCkgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAidmFycygpIGFyZ3VtZW50IG11c3QgaGF2ZSBfX2RpY3RfXyBhdHRyaWJ1dGUiKTsKQEAgLTE5MTcsMTIgKzE5NTQsMTggQEAKICAgICAgICAgICAgIFB5X0RFQ1JFRihpdGVyKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9Ci0gICAgICAgIGlmIChQeUJ5dGVBcnJheV9DaGVjayhyZXN1bHQpKSB7CisgICAgICAgIGlmIChQeUJ5dGVzX0NoZWNrKHJlc3VsdCkpIHsKICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgInN1bSgpIGNhbid0IHN1bSBieXRlcyBbdXNlIGInJy5qb2luKHNlcSkgaW5zdGVhZF0iKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRihpdGVyKTsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CisgICAgICAgIGlmIChQeUJ5dGVBcnJheV9DaGVjayhyZXN1bHQpKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICJzdW0oKSBjYW4ndCBzdW0gYnl0ZWFycmF5IFt1c2UgYicnLmpvaW4oc2VxKSBpbnN0ZWFkXSIpOworICAgICAgICAgICAgUHlfREVDUkVGKGl0ZXIpOworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KIAogICAgICAgICBQeV9JTkNSRUYocmVzdWx0KTsKICAgICB9CkBAIC0yMjI1LDYgKzIyNjgsMTggQEAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgUHlPYmplY3QgKgoremlwX3JlZHVjZSh6aXBvYmplY3QgKmx6KQoreworICAgIC8qIEp1c3QgcmVjcmVhdGUgdGhlIHppcCB3aXRoIHRoZSBpbnRlcm5hbCBpdGVyYXRvciB0dXBsZSAqLworICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCJPTyIsIFB5X1RZUEUobHopLCBsei0+aXR0dXBsZSk7Cit9CisKK3N0YXRpYyBQeU1ldGhvZERlZiB6aXBfbWV0aG9kc1tdID0geworICAgIHsiX19yZWR1Y2VfXyIsICAgKFB5Q0Z1bmN0aW9uKXppcF9yZWR1Y2UsICAgTUVUSF9OT0FSR1MsIHJlZHVjZV9kb2N9LAorICAgIHtOVUxMLCAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCit9OworCiBQeURvY19TVFJWQVIoemlwX2RvYywKICJ6aXAoaXRlcjEgWyxpdGVyMiBbLi4uXV0pIC0tPiB6aXAgb2JqZWN0XG5cCiBcblwKQEAgLTIyNjMsNyArMjMxOCw3IEBACiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfd2Vha2xpc3RvZmZzZXQgKi8KICAgICBQeU9iamVjdF9TZWxmSXRlciwgICAgICAgICAgICAgICAgICAvKiB0cF9pdGVyICovCiAgICAgKGl0ZXJuZXh0ZnVuYyl6aXBfbmV4dCwgICAgIC8qIHRwX2l0ZXJuZXh0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWV0aG9kcyAqLworICAgIHppcF9tZXRob2RzLCAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX21ldGhvZHMgKi8KICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9tZW1iZXJzICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZ2V0c2V0ICovCiAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYmFzZSAqLwpkaWZmIC0tZ2l0IGEvUHl0aG9uL2NldmFsLmMgYi9QeXRob24vY2V2YWwuYwppbmRleCBmMGVhN2M5Li43ZTkzMThiIDEwMDY0NAotLS0gYS9QeXRob24vY2V2YWwuYworKysgYi9QeXRob24vY2V2YWwuYwpAQCAtMTM4LDcgKzEzOCw3IEBACiBzdGF0aWMgdm9pZCBmb3JtYXRfZXhjX3VuYm91bmQoUHlDb2RlT2JqZWN0ICpjbywgaW50IG9wYXJnKTsKIHN0YXRpYyBQeU9iamVjdCAqIHVuaWNvZGVfY29uY2F0ZW5hdGUoUHlPYmplY3QgKiwgUHlPYmplY3QgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlGcmFtZU9iamVjdCAqLCB1bnNpZ25lZCBjaGFyICopOwotc3RhdGljIFB5T2JqZWN0ICogc3BlY2lhbF9sb29rdXAoUHlPYmplY3QgKiwgY2hhciAqLCBQeU9iamVjdCAqKik7CitzdGF0aWMgUHlPYmplY3QgKiBzcGVjaWFsX2xvb2t1cChQeU9iamVjdCAqLCBfUHlfSWRlbnRpZmllciAqKTsKIAogI2RlZmluZSBOQU1FX0VSUk9SX01TRyBcCiAgICAgIm5hbWUgJyUuMjAwcycgaXMgbm90IGRlZmluZWQiCkBAIC0zNzIsNiArMzcyLDcgQEAKIHZvaWQKIFB5RXZhbF9SZUluaXRUaHJlYWRzKHZvaWQpCiB7CisgICAgX1B5X0lERU5USUZJRVIoX2FmdGVyX2ZvcmspOwogICAgIFB5T2JqZWN0ICp0aHJlYWRpbmcsICpyZXN1bHQ7CiAgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlID0gUHlUaHJlYWRTdGF0ZV9HRVQoKTsKIApAQCAtMzkyLDcgKzM5Myw3IEBACiAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbE1ldGhvZCh0aHJlYWRpbmcsICJfYWZ0ZXJfZm9yayIsIE5VTEwpOworICAgIHJlc3VsdCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQodGhyZWFkaW5nLCAmUHlJZF9fYWZ0ZXJfZm9yaywgTlVMTCk7CiAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKQogICAgICAgICBQeUVycl9Xcml0ZVVucmFpc2FibGUodGhyZWFkaW5nKTsKICAgICBlbHNlCkBAIC00OTEsNyArNDkyLDYgQEAKIH0gcGVuZGluZ2NhbGxzW05QRU5ESU5HQ0FMTFNdOwogc3RhdGljIGludCBwZW5kaW5nZmlyc3QgPSAwOwogc3RhdGljIGludCBwZW5kaW5nbGFzdCA9IDA7Ci1zdGF0aWMgY2hhciBwZW5kaW5nYnVzeSA9IDA7CiAKIGludAogUHlfQWRkUGVuZGluZ0NhbGwoaW50ICgqZnVuYykodm9pZCAqKSwgdm9pZCAqYXJnKQpAQCAtNTM4LDYgKzUzOCw3IEBACiBpbnQKIFB5X01ha2VQZW5kaW5nQ2FsbHModm9pZCkKIHsKKyAgICBzdGF0aWMgaW50IGJ1c3kgPSAwOwogICAgIGludCBpOwogICAgIGludCByID0gMDsKIApAQCAtNTUyLDkgKzU1Myw5IEBACiAgICAgaWYgKG1haW5fdGhyZWFkICYmIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKSAhPSBtYWluX3RocmVhZCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgLyogZG9uJ3QgcGVyZm9ybSByZWN1cnNpdmUgcGVuZGluZyBjYWxscyAqLwotICAgIGlmIChwZW5kaW5nYnVzeSkKKyAgICBpZiAoYnVzeSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcGVuZGluZ2J1c3kgPSAxOworICAgIGJ1c3kgPSAxOwogICAgIC8qIHBlcmZvcm0gYSBib3VuZGVkIG51bWJlciBvZiBjYWxscywgaW4gY2FzZSBvZiByZWN1cnNpb24gKi8KICAgICBmb3IgKGk9MDsgaTxOUEVORElOR0NBTExTOyBpKyspIHsKICAgICAgICAgaW50IGo7CkBAIC01ODMsNyArNTg0LDcgQEAKICAgICAgICAgaWYgKHIpCiAgICAgICAgICAgICBicmVhazsKICAgICB9Ci0gICAgcGVuZGluZ2J1c3kgPSAwOworICAgIGJ1c3kgPSAwOwogICAgIHJldHVybiByOwogfQogCkBAIC03NDksNiArNzUwLDkgQEAKICAgICAgICAgV0hZX1NJTEVOQ0VEID0gIDB4MDA4MCAgLyogRXhjZXB0aW9uIHNpbGVuY2VkIGJ5ICd3aXRoJyAqLwogfTsKIAorc3RhdGljIHZvaWQgc2F2ZV9leGNfc3RhdGUoUHlUaHJlYWRTdGF0ZSAqLCBQeUZyYW1lT2JqZWN0ICopOworc3RhdGljIHZvaWQgc3dhcF9leGNfc3RhdGUoUHlUaHJlYWRTdGF0ZSAqLCBQeUZyYW1lT2JqZWN0ICopOworc3RhdGljIHZvaWQgcmVzdG9yZV9hbmRfY2xlYXJfZXhjX3N0YXRlKFB5VGhyZWFkU3RhdGUgKiwgUHlGcmFtZU9iamVjdCAqKTsKIHN0YXRpYyBlbnVtIHdoeV9jb2RlIGRvX3JhaXNlKFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwogc3RhdGljIGludCB1bnBhY2tfaXRlcmFibGUoUHlPYmplY3QgKiwgaW50LCBpbnQsIFB5T2JqZWN0ICoqKTsKIApAQCAtODE3LDkgKzgyMSw5IEBACiAgICAgdW5zaWduZWQgY2hhciAqZmlyc3RfaW5zdHI7CiAgICAgUHlPYmplY3QgKm5hbWVzOwogICAgIFB5T2JqZWN0ICpjb25zdHM7Ci0jaWYgZGVmaW5lZChQeV9ERUJVRykgfHwgZGVmaW5lZChMTFRSQUNFKQotICAgIC8qIE1ha2UgaXQgZWFzaWVyIHRvIGZpbmQgb3V0IHdoZXJlIHdlIGFyZSB3aXRoIGEgZGVidWdnZXIgKi8KLSAgICBjaGFyICpmaWxlbmFtZTsKKworI2lmZGVmIExMVFJBQ0UKKyAgICBfUHlfSURFTlRJRklFUihfX2x0cmFjZV9fKTsKICNlbmRpZgogCiAvKiBDb21wdXRlZCBHT1RPcywgb3IKQEAgLTExMTQsNTkgKzExMTgsOCBAQAogICAgICAgICBQeV9YREVDUkVGKHRyYWNlYmFjayk7IFwKICAgICB9CiAKLSNkZWZpbmUgU0FWRV9FWENfU1RBVEUoKSBcCi0gICAgeyBcCi0gICAgICAgIFB5T2JqZWN0ICp0eXBlLCAqdmFsdWUsICp0cmFjZWJhY2s7IFwKLSAgICAgICAgUHlfWElOQ1JFRih0c3RhdGUtPmV4Y190eXBlKTsgXAotICAgICAgICBQeV9YSU5DUkVGKHRzdGF0ZS0+ZXhjX3ZhbHVlKTsgXAotICAgICAgICBQeV9YSU5DUkVGKHRzdGF0ZS0+ZXhjX3RyYWNlYmFjayk7IFwKLSAgICAgICAgdHlwZSA9IGYtPmZfZXhjX3R5cGU7IFwKLSAgICAgICAgdmFsdWUgPSBmLT5mX2V4Y192YWx1ZTsgXAotICAgICAgICB0cmFjZWJhY2sgPSBmLT5mX2V4Y190cmFjZWJhY2s7IFwKLSAgICAgICAgZi0+Zl9leGNfdHlwZSA9IHRzdGF0ZS0+ZXhjX3R5cGU7IFwKLSAgICAgICAgZi0+Zl9leGNfdmFsdWUgPSB0c3RhdGUtPmV4Y192YWx1ZTsgXAotICAgICAgICBmLT5mX2V4Y190cmFjZWJhY2sgPSB0c3RhdGUtPmV4Y190cmFjZWJhY2s7IFwKLSAgICAgICAgUHlfWERFQ1JFRih0eXBlKTsgXAotICAgICAgICBQeV9YREVDUkVGKHZhbHVlKTsgXAotICAgICAgICBQeV9YREVDUkVGKHRyYWNlYmFjayk7IFwKLSAgICB9Ci0KLSNkZWZpbmUgU1dBUF9FWENfU1RBVEUoKSBcCi0gICAgeyBcCi0gICAgICAgIFB5T2JqZWN0ICp0bXA7IFwKLSAgICAgICAgdG1wID0gdHN0YXRlLT5leGNfdHlwZTsgXAotICAgICAgICB0c3RhdGUtPmV4Y190eXBlID0gZi0+Zl9leGNfdHlwZTsgXAotICAgICAgICBmLT5mX2V4Y190eXBlID0gdG1wOyBcCi0gICAgICAgIHRtcCA9IHRzdGF0ZS0+ZXhjX3ZhbHVlOyBcCi0gICAgICAgIHRzdGF0ZS0+ZXhjX3ZhbHVlID0gZi0+Zl9leGNfdmFsdWU7IFwKLSAgICAgICAgZi0+Zl9leGNfdmFsdWUgPSB0bXA7IFwKLSAgICAgICAgdG1wID0gdHN0YXRlLT5leGNfdHJhY2ViYWNrOyBcCi0gICAgICAgIHRzdGF0ZS0+ZXhjX3RyYWNlYmFjayA9IGYtPmZfZXhjX3RyYWNlYmFjazsgXAotICAgICAgICBmLT5mX2V4Y190cmFjZWJhY2sgPSB0bXA7IFwKLSAgICB9Ci0KLSNkZWZpbmUgUkVTVE9SRV9BTkRfQ0xFQVJfRVhDX1NUQVRFKCkgXAotICAgIHsgXAotICAgICAgICBQeU9iamVjdCAqdHlwZSwgKnZhbHVlLCAqdGI7IFwKLSAgICAgICAgdHlwZSA9IHRzdGF0ZS0+ZXhjX3R5cGU7IFwKLSAgICAgICAgdmFsdWUgPSB0c3RhdGUtPmV4Y192YWx1ZTsgXAotICAgICAgICB0YiA9IHRzdGF0ZS0+ZXhjX3RyYWNlYmFjazsgXAotICAgICAgICB0c3RhdGUtPmV4Y190eXBlID0gZi0+Zl9leGNfdHlwZTsgXAotICAgICAgICB0c3RhdGUtPmV4Y192YWx1ZSA9IGYtPmZfZXhjX3ZhbHVlOyBcCi0gICAgICAgIHRzdGF0ZS0+ZXhjX3RyYWNlYmFjayA9IGYtPmZfZXhjX3RyYWNlYmFjazsgXAotICAgICAgICBmLT5mX2V4Y190eXBlID0gTlVMTDsgXAotICAgICAgICBmLT5mX2V4Y192YWx1ZSA9IE5VTEw7IFwKLSAgICAgICAgZi0+Zl9leGNfdHJhY2ViYWNrID0gTlVMTDsgXAotICAgICAgICBQeV9YREVDUkVGKHR5cGUpOyBcCi0gICAgICAgIFB5X1hERUNSRUYodmFsdWUpOyBcCi0gICAgICAgIFB5X1hERUNSRUYodGIpOyBcCi0gICAgfQotCiAvKiBTdGFydCBvZiBjb2RlICovCiAKLSAgICBpZiAoZiA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQogICAgIC8qIHB1c2ggZnJhbWUgKi8KICAgICBpZiAoUHlfRW50ZXJSZWN1cnNpdmVDYWxsKCIiKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0xMjIxLDYgKzExNzQsOCBAQAogICAgICAgIGYtPmZfbGFzdGkgdG8gLTEgKGkuZS4gdGhlIGluZGV4ICpiZWZvcmUqIHRoZSBmaXJzdCBpbnN0cnVjdGlvbikKICAgICAgICBhbmQgWUlFTERfVkFMVUUgZG9lc24ndCBmaWRkbGUgd2l0aCBmX2xhc3RpIGFueSBtb3JlLiAgU28gdGhpcwogICAgICAgIGRvZXMgd29yay4gIFByb21pc2UuCisgICAgICAgWUlFTERfRlJPTSBzZXRzIGZfbGFzdGkgdG8gaXRzZWxmLCBpbiBvcmRlciB0byByZXBlYXRlZCB5aWVsZAorICAgICAgIG11bHRpcGxlIHZhbHVlcy4KIAogICAgICAgIFdoZW4gdGhlIFBSRURJQ1QoKSBtYWNyb3MgYXJlIGVuYWJsZWQsIHNvbWUgb3Bjb2RlIHBhaXJzIGZvbGxvdyBpbgogICAgICAgIGRpcmVjdCBzdWNjZXNzaW9uIHdpdGhvdXQgdXBkYXRpbmcgZi0+Zl9sYXN0aS4gIEEgc3VjY2Vzc2Z1bApAQCAtMTI0MCwyNyArMTE5NSwxNCBAQAogICAgICAgICAgICAgLyogV2Ugd2VyZSBpbiBhbiBleGNlcHQgaGFuZGxlciB3aGVuIHdlIGxlZnQsCiAgICAgICAgICAgICAgICByZXN0b3JlIHRoZSBleGNlcHRpb24gc3RhdGUgd2hpY2ggd2FzIHB1dCBhc2lkZQogICAgICAgICAgICAgICAgKHNlZSBZSUVMRF9WQUxVRSkuICovCi0gICAgICAgICAgICBTV0FQX0VYQ19TVEFURSgpOworICAgICAgICAgICAgc3dhcF9leGNfc3RhdGUodHN0YXRlLCBmKTsKICAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIFNBVkVfRVhDX1NUQVRFKCk7Ci0gICAgICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2F2ZV9leGNfc3RhdGUodHN0YXRlLCBmKTsKICAgICB9CiAKICNpZmRlZiBMTFRSQUNFCi0gICAgbGx0cmFjZSA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKGYtPmZfZ2xvYmFscywgIl9fbGx0cmFjZV9fIikgIT0gTlVMTDsKLSNlbmRpZgotI2lmIGRlZmluZWQoUHlfREVCVUcpIHx8IGRlZmluZWQoTExUUkFDRSkKLSAgICB7Ci0gICAgICAgIFB5T2JqZWN0ICplcnJvcl90eXBlLCAqZXJyb3JfdmFsdWUsICplcnJvcl90cmFjZWJhY2s7Ci0gICAgICAgIFB5RXJyX0ZldGNoKCZlcnJvcl90eXBlLCAmZXJyb3JfdmFsdWUsICZlcnJvcl90cmFjZWJhY2spOwotICAgICAgICBmaWxlbmFtZSA9IF9QeVVuaWNvZGVfQXNTdHJpbmcoY28tPmNvX2ZpbGVuYW1lKTsKLSAgICAgICAgaWYgKGZpbGVuYW1lID09IE5VTEwgJiYgdHN0YXRlLT5vdmVyZmxvd2VkKSB7Ci0gICAgICAgICAgICAvKiBtYXhpbXVtIHJlY3Vyc2lvbiBkZXB0aCBleGNlZWRlZCAqLwotICAgICAgICAgICAgZ290byBleGl0X2V2YWxfZnJhbWU7Ci0gICAgICAgIH0KLSAgICAgICAgUHlFcnJfUmVzdG9yZShlcnJvcl90eXBlLCBlcnJvcl92YWx1ZSwgZXJyb3JfdHJhY2ViYWNrKTsKLSAgICB9CisgICAgbGx0cmFjZSA9IF9QeURpY3RfR2V0SXRlbUlkKGYtPmZfZ2xvYmFscywgJlB5SWRfX19sdHJhY2VfXykgIT0gTlVMTDsKICNlbmRpZgogCiAgICAgd2h5ID0gV0hZX05PVDsKQEAgLTE0MTIsOCArMTM1NCw2IEBACiAgICAgICAgICAgIHggdG8gTlVMTCwgZXJyIHRvIG5vbnplcm8sIG9yIHdoeSB0byBhbnl0aGluZyBidXQgV0hZX05PVCwKICAgICAgICAgICAgYW5kIHRoYXQgbm8gb3BlcmF0aW9uIHRoYXQgc3VjY2VlZHMgZG9lcyB0aGlzISAqLwogCi0gICAgICAgIC8qIGNhc2UgU1RPUF9DT0RFOiB0aGlzIGlzIGFuIGVycm9yISAqLwotCiAgICAgICAgIFRBUkdFVChOT1ApCiAgICAgICAgICAgICBGQVNUX0RJU1BBVENIKCk7CiAKQEAgLTE4OTQsNiArMTgzNCw0MCBAQAogICAgICAgICAgICAgd2h5ID0gV0hZX1JFVFVSTjsKICAgICAgICAgICAgIGdvdG8gZmFzdF9ibG9ja19lbmQ7CiAKKyAgICAgICAgVEFSR0VUKFlJRUxEX0ZST00pCisgICAgICAgICAgICB1ID0gUE9QKCk7CisgICAgICAgICAgICB4ID0gVE9QKCk7CisgICAgICAgICAgICAvKiBzZW5kIHUgdG8geCAqLworICAgICAgICAgICAgaWYgKFB5R2VuX0NoZWNrRXhhY3QoeCkpIHsKKyAgICAgICAgICAgICAgICByZXR2YWwgPSBfUHlHZW5fU2VuZCgoUHlHZW5PYmplY3QgKil4LCB1KTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgX1B5X0lERU5USUZJRVIoc2VuZCk7CisgICAgICAgICAgICAgICAgaWYgKHUgPT0gUHlfTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dmFsID0gUHlJdGVyX05leHQoeCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICByZXR2YWwgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHgsICZQeUlkX3NlbmQsICJPIiwgdSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBQeV9ERUNSRUYodSk7CisgICAgICAgICAgICBpZiAoIXJldHZhbCkgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICp2YWw7CisgICAgICAgICAgICAgICAgeCA9IFBPUCgpOyAvKiBSZW1vdmUgaXRlciBmcm9tIHN0YWNrICovCisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHgpOworICAgICAgICAgICAgICAgIGVyciA9IF9QeUdlbl9GZXRjaFN0b3BJdGVyYXRpb25WYWx1ZSgmdmFsKTsKKyAgICAgICAgICAgICAgICBpZiAoZXJyIDwgMCkgeworICAgICAgICAgICAgICAgICAgICB4ID0gTlVMTDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHggPSB2YWw7CisgICAgICAgICAgICAgICAgUFVTSCh4KTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC8qIHggcmVtYWlucyBvbiBzdGFjaywgcmV0dmFsIGlzIHZhbHVlIHRvIGJlIHlpZWxkZWQgKi8KKyAgICAgICAgICAgIGYtPmZfc3RhY2t0b3AgPSBzdGFja19wb2ludGVyOworICAgICAgICAgICAgd2h5ID0gV0hZX1lJRUxEOworICAgICAgICAgICAgLyogYW5kIHJlcGVhdC4uLiAqLworICAgICAgICAgICAgZi0+Zl9sYXN0aS0tOworICAgICAgICAgICAgZ290byBmYXN0X3lpZWxkOworCiAgICAgICAgIFRBUkdFVChZSUVMRF9WQUxVRSkKICAgICAgICAgICAgIHJldHZhbCA9IFBPUCgpOwogICAgICAgICAgICAgZi0+Zl9zdGFja3RvcCA9IHN0YWNrX3BvaW50ZXI7CkBAIC0xOTU2LDE2ICsxOTMwLDMzIEBACiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBUQVJHRVQoTE9BRF9CVUlMRF9DTEFTUykKLSAgICAgICAgICAgIHggPSBQeURpY3RfR2V0SXRlbVN0cmluZyhmLT5mX2J1aWx0aW5zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2J1aWxkX2NsYXNzX18iKTsKLSAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSW1wb3J0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2J1aWxkX2NsYXNzX18gbm90IGZvdW5kIik7Ci0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHsKKyAgICAgICAgICAgIF9QeV9JREVOVElGSUVSKF9fYnVpbGRfY2xhc3NfXyk7CisKKyAgICAgICAgICAgIGlmIChQeURpY3RfQ2hlY2tFeGFjdChmLT5mX2J1aWx0aW5zKSkgeworICAgICAgICAgICAgICAgIHggPSBfUHlEaWN0X0dldEl0ZW1JZChmLT5mX2J1aWx0aW5zLCAmUHlJZF9fX2J1aWxkX2NsYXNzX18pOworICAgICAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX05hbWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2J1aWxkX2NsYXNzX18gbm90IGZvdW5kIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBQeV9JTkNSRUYoeCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBQeV9JTkNSRUYoeCk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqYnVpbGRfY2xhc3Nfc3RyID0gX1B5VW5pY29kZV9Gcm9tSWQoJlB5SWRfX19idWlsZF9jbGFzc19fKTsKKyAgICAgICAgICAgICAgICBpZiAoYnVpbGRfY2xhc3Nfc3RyID09IE5VTEwpCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIHggPSBQeU9iamVjdF9HZXRJdGVtKGYtPmZfYnVpbHRpbnMsIGJ1aWxkX2NsYXNzX3N0cik7CisgICAgICAgICAgICAgICAgaWYgKHggPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19LZXlFcnJvcikpCisgICAgICAgICAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfTmFtZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX2J1aWxkX2NsYXNzX18gbm90IGZvdW5kIik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIFBVU0goeCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogCiAgICAgICAgIFRBUkdFVChTVE9SRV9OQU1FKQogICAgICAgICAgICAgdyA9IEdFVElURU0obmFtZXMsIG9wYXJnKTsKQEAgLTIxMDEsNzAgKzIwOTIsNjIgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKICAgICAgICAgICAgICAgICB4ID0gUHlEaWN0X0dldEl0ZW0oZi0+Zl9nbG9iYWxzLCB3KTsKKyAgICAgICAgICAgICAgICBQeV9YSU5DUkVGKHgpOwogICAgICAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgeCA9IFB5RGljdF9HZXRJdGVtKGYtPmZfYnVpbHRpbnMsIHcpOwotICAgICAgICAgICAgICAgICAgICBpZiAoeCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfZXhjX2NoZWNrX2FyZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXhjX05hbWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BTUVfRVJST1JfTVNHLCB3KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBpZiAoUHlEaWN0X0NoZWNrRXhhY3QoZi0+Zl9idWlsdGlucykpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHggPSBQeURpY3RfR2V0SXRlbShmLT5mX2J1aWx0aW5zLCB3KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfZXhjX2NoZWNrX2FyZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUV4Y19OYW1lRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTkFNRV9FUlJPUl9NU0csIHcpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKHgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgeCA9IFB5T2JqZWN0X0dldEl0ZW0oZi0+Zl9idWlsdGlucywgdyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoeCA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfS2V5RXJyb3IpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfZXhjX2NoZWNrX2FyZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfTmFtZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQU1FX0VSUk9SX01TRywgdyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUHlfSU5DUkVGKHgpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgUFVTSCh4KTsKICAgICAgICAgICAgIERJU1BBVENIKCk7CiAKICAgICAgICAgVEFSR0VUKExPQURfR0xPQkFMKQogICAgICAgICAgICAgdyA9IEdFVElURU0obmFtZXMsIG9wYXJnKTsKLSAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2tFeGFjdCh3KSkgewotICAgICAgICAgICAgICAgIC8qIElubGluZSB0aGUgUHlEaWN0X0dldEl0ZW0oKSBjYWxscy4KLSAgICAgICAgICAgICAgICAgICBXQVJOSU5HOiB0aGlzIGlzIGFuIGV4dHJlbWUgc3BlZWQgaGFjay4KLSAgICAgICAgICAgICAgICAgICBEbyBub3QgdHJ5IHRoaXMgYXQgaG9tZS4gKi8KLSAgICAgICAgICAgICAgICBQeV9oYXNoX3QgaGFzaCA9ICgoUHlVbmljb2RlT2JqZWN0ICopdyktPmhhc2g7Ci0gICAgICAgICAgICAgICAgaWYgKGhhc2ggIT0gLTEpIHsKLSAgICAgICAgICAgICAgICAgICAgUHlEaWN0T2JqZWN0ICpkOwotICAgICAgICAgICAgICAgICAgICBQeURpY3RFbnRyeSAqZTsKLSAgICAgICAgICAgICAgICAgICAgZCA9IChQeURpY3RPYmplY3QgKikoZi0+Zl9nbG9iYWxzKTsKLSAgICAgICAgICAgICAgICAgICAgZSA9IGQtPm1hX2xvb2t1cChkLCB3LCBoYXNoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGUgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgeCA9IE5VTEw7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB4ID0gZS0+bWVfdmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh4ICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFBVU0goeCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBESVNQQVRDSCgpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGQgPSAoUHlEaWN0T2JqZWN0ICopKGYtPmZfYnVpbHRpbnMpOwotICAgICAgICAgICAgICAgICAgICBlID0gZC0+bWFfbG9va3VwKGQsIHcsIGhhc2gpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB4ID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHggPSBlLT5tZV92YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKHgpOwotICAgICAgICAgICAgICAgICAgICAgICAgUFVTSCh4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIERJU1BBVENIKCk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZ290byBsb2FkX2dsb2JhbF9lcnJvcjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvKiBUaGlzIGlzIHRoZSB1bi1pbmxpbmVkIHZlcnNpb24gb2YgdGhlIGNvZGUgYWJvdmUgKi8KLSAgICAgICAgICAgIHggPSBQeURpY3RfR2V0SXRlbShmLT5mX2dsb2JhbHMsIHcpOwotICAgICAgICAgICAgaWYgKHggPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIHggPSBQeURpY3RfR2V0SXRlbShmLT5mX2J1aWx0aW5zLCB3KTsKKyAgICAgICAgICAgIGlmIChQeURpY3RfQ2hlY2tFeGFjdChmLT5mX2dsb2JhbHMpCisgICAgICAgICAgICAgICAgJiYgUHlEaWN0X0NoZWNrRXhhY3QoZi0+Zl9idWlsdGlucykpIHsKKyAgICAgICAgICAgICAgICB4ID0gX1B5RGljdF9Mb2FkR2xvYmFsKChQeURpY3RPYmplY3QgKilmLT5mX2dsb2JhbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlEaWN0T2JqZWN0ICopZi0+Zl9idWlsdGlucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHcpOwogICAgICAgICAgICAgICAgIGlmICh4ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICAgIGxvYWRfZ2xvYmFsX2Vycm9yOgotICAgICAgICAgICAgICAgICAgICBmb3JtYXRfZXhjX2NoZWNrX2FyZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlFeGNfTmFtZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTE9CQUxfTkFNRV9FUlJPUl9NU0csIHcpOworICAgICAgICAgICAgICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRfZXhjX2NoZWNrX2FyZyhQeUV4Y19OYW1lRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTE9CQUxfTkFNRV9FUlJPUl9NU0csIHcpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgUHlfSU5DUkVGKHgpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgUHlfSU5DUkVGKHgpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLyogU2xvdy1wYXRoIGlmIGdsb2JhbHMgb3IgYnVpbHRpbnMgaXMgbm90IGEgZGljdCAqLworICAgICAgICAgICAgICAgIHggPSBQeU9iamVjdF9HZXRJdGVtKGYtPmZfZ2xvYmFscywgdyk7CisgICAgICAgICAgICAgICAgaWYgKHggPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICB4ID0gUHlPYmplY3RfR2V0SXRlbShmLT5mX2J1aWx0aW5zLCB3KTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHggPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfS2V5RXJyb3IpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdF9leGNfY2hlY2tfYXJnKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXhjX05hbWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTE9CQUxfTkFNRV9FUlJPUl9NU0csIHcpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBQVVNIKHgpOwogICAgICAgICAgICAgRElTUEFUQ0goKTsKIApAQCAtMjMxMyw4ICsyMjk2LDEwIEBACiAgICAgICAgICAgICBESVNQQVRDSCgpOwogCiAgICAgICAgIFRBUkdFVChJTVBPUlRfTkFNRSkKKyAgICAgICAgeworICAgICAgICAgICAgX1B5X0lERU5USUZJRVIoX19pbXBvcnRfXyk7CiAgICAgICAgICAgICB3ID0gR0VUSVRFTShuYW1lcywgb3BhcmcpOwotICAgICAgICAgICAgeCA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKGYtPmZfYnVpbHRpbnMsICJfX2ltcG9ydF9fIik7CisgICAgICAgICAgICB4ID0gX1B5RGljdF9HZXRJdGVtSWQoZi0+Zl9idWlsdGlucywgJlB5SWRfX19pbXBvcnRfXyk7CiAgICAgICAgICAgICBpZiAoeCA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0ltcG9ydEVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiX19pbXBvcnRfXyBub3QgZm91bmQiKTsKQEAgLTIzNTUsNiArMjM0MCw3IEBACiAgICAgICAgICAgICBTRVRfVE9QKHgpOwogICAgICAgICAgICAgaWYgKHggIT0gTlVMTCkgRElTUEFUQ0goKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAKICAgICAgICAgVEFSR0VUKElNUE9SVF9TVEFSKQogICAgICAgICAgICAgdiA9IFBPUCgpOwpAQCAtMjU1OSwxMyArMjU0NSwxNCBAQAogCiAgICAgICAgIFRBUkdFVChTRVRVUF9XSVRIKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdGF0aWMgUHlPYmplY3QgKmV4aXQsICplbnRlcjsKKyAgICAgICAgICAgIF9QeV9JREVOVElGSUVSKF9fZXhpdF9fKTsKKyAgICAgICAgICAgIF9QeV9JREVOVElGSUVSKF9fZW50ZXJfXyk7CiAgICAgICAgICAgICB3ID0gVE9QKCk7Ci0gICAgICAgICAgICB4ID0gc3BlY2lhbF9sb29rdXAodywgIl9fZXhpdF9fIiwgJmV4aXQpOworICAgICAgICAgICAgeCA9IHNwZWNpYWxfbG9va3VwKHcsICZQeUlkX19fZXhpdF9fKTsKICAgICAgICAgICAgIGlmICgheCkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIFNFVF9UT1AoeCk7Ci0gICAgICAgICAgICB1ID0gc3BlY2lhbF9sb29rdXAodywgIl9fZW50ZXJfXyIsICZlbnRlcik7CisgICAgICAgICAgICB1ID0gc3BlY2lhbF9sb29rdXAodywgJlB5SWRfX19lbnRlcl9fKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRih3KTsKICAgICAgICAgICAgIGlmICghdSkgewogICAgICAgICAgICAgICAgIHggPSBOVUxMOwpAQCAtMjcyNSw3ICsyNzEyLDcgQEAKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoKnBmdW5jKTsKICAgICAgICAgICAgICAgICAqcGZ1bmMgPSBzZWxmOwogICAgICAgICAgICAgICAgIG5hKys7Ci0gICAgICAgICAgICAgICAgbisrOworICAgICAgICAgICAgICAgIC8qIG4rKzsgKi8KICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihmdW5jKTsKICAgICAgICAgICAgIHNwID0gc3RhY2tfcG9pbnRlcjsKQEAgLTI3NTMsOSArMjc0MCwxMSBAQAogICAgICAgICAgICAgaW50IGt3ZGVmYXVsdHMgPSAob3Bhcmc+PjgpICYgMHhmZjsKICAgICAgICAgICAgIGludCBudW1fYW5ub3RhdGlvbnMgPSAob3BhcmcgPj4gMTYpICYgMHg3ZmZmOwogCisgICAgICAgICAgICB3ID0gUE9QKCk7IC8qIHF1YWxuYW1lICovCiAgICAgICAgICAgICB2ID0gUE9QKCk7IC8qIGNvZGUgb2JqZWN0ICovCi0gICAgICAgICAgICB4ID0gUHlGdW5jdGlvbl9OZXcodiwgZi0+Zl9nbG9iYWxzKTsKKyAgICAgICAgICAgIHggPSBQeUZ1bmN0aW9uX05ld1dpdGhRdWFsTmFtZSh2LCBmLT5mX2dsb2JhbHMsIHcpOwogICAgICAgICAgICAgUHlfREVDUkVGKHYpOworICAgICAgICAgICAgUHlfREVDUkVGKHcpOwogCiAgICAgICAgICAgICBpZiAoeCAhPSBOVUxMICYmIG9wY29kZSA9PSBNQUtFX0NMT1NVUkUpIHsKICAgICAgICAgICAgICAgICB2ID0gUE9QKCk7CkBAIC0zMDQ5LDkgKzMwMzgsOSBAQAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBpZiAoaSA9PSBmLT5mX2libG9jaykKICAgICAgICAgICAgIC8qIFdlIGRpZCBub3QgY3JlYXRlIHRoaXMgZXhjZXB0aW9uLiAqLwotICAgICAgICAgICAgUkVTVE9SRV9BTkRfQ0xFQVJfRVhDX1NUQVRFKCkKKyAgICAgICAgICAgIHJlc3RvcmVfYW5kX2NsZWFyX2V4Y19zdGF0ZSh0c3RhdGUsIGYpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBTV0FQX0VYQ19TVEFURSgpCisgICAgICAgICAgICBzd2FwX2V4Y19zdGF0ZSh0c3RhdGUsIGYpOwogICAgIH0KIAogICAgIGlmICh0c3RhdGUtPnVzZV90cmFjaW5nKSB7CkBAIC0zMDgxLDcgKzMwNzAsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVRyYWNlX1JFVFVSTiwgcmV0dmFsKSkgewogICAgICAgICAgICAgICAgIFB5X1hERUNSRUYocmV0dmFsKTsKICAgICAgICAgICAgICAgICByZXR2YWwgPSBOVUxMOwotICAgICAgICAgICAgICAgIHdoeSA9IFdIWV9FWENFUFRJT047CisgICAgICAgICAgICAgICAgLyogd2h5ID0gV0hZX0VYQ0VQVElPTjsgKi8KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTMwOTQsNiArMzA4MywxNTYgQEAKICAgICByZXR1cm4gcmV0dmFsOwogfQogCitzdGF0aWMgdm9pZAorZm9ybWF0X21pc3NpbmcoY29uc3QgY2hhciAqa2luZCwgUHlDb2RlT2JqZWN0ICpjbywgUHlPYmplY3QgKm5hbWVzKQoreworICAgIGludCBlcnI7CisgICAgUHlfc3NpemVfdCBsZW4gPSBQeUxpc3RfR0VUX1NJWkUobmFtZXMpOworICAgIFB5T2JqZWN0ICpuYW1lX3N0ciwgKmNvbW1hLCAqdGFpbCwgKnRtcDsKKworICAgIGFzc2VydChQeUxpc3RfQ2hlY2tFeGFjdChuYW1lcykpOworICAgIGFzc2VydChsZW4gPj0gMSk7CisgICAgLyogRGVhbCB3aXRoIHRoZSBqb3lzIG9mIG5hdHVyYWwgbGFuZ3VhZ2UuICovCisgICAgc3dpdGNoIChsZW4pIHsKKyAgICBjYXNlIDE6CisgICAgICAgIG5hbWVfc3RyID0gUHlMaXN0X0dFVF9JVEVNKG5hbWVzLCAwKTsKKyAgICAgICAgUHlfSU5DUkVGKG5hbWVfc3RyKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAyOgorICAgICAgICBuYW1lX3N0ciA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCIlVSBhbmQgJVUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5TGlzdF9HRVRfSVRFTShuYW1lcywgbGVuIC0gMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlMaXN0X0dFVF9JVEVNKG5hbWVzLCBsZW4gLSAxKSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHRhaWwgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiLCAlVSwgYW5kICVVIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5TGlzdF9HRVRfSVRFTShuYW1lcywgbGVuIC0gMiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUxpc3RfR0VUX0lURU0obmFtZXMsIGxlbiAtIDEpKTsKKyAgICAgICAgaWYgKHRhaWwgPT0gTlVMTCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgLyogQ2hvcCBvZmYgdGhlIGxhc3QgdHdvIG9iamVjdHMgaW4gdGhlIGxpc3QuIFRoaXMgc2hvdWxkbid0IGFjdHVhbGx5CisgICAgICAgICAgIGZhaWwsIGJ1dCB3ZSBjYW4ndCBiZSB0b28gY2FyZWZ1bC4gKi8KKyAgICAgICAgZXJyID0gUHlMaXN0X1NldFNsaWNlKG5hbWVzLCBsZW4gLSAyLCBsZW4sIE5VTEwpOworICAgICAgICBpZiAoZXJyID09IC0xKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYodGFpbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLyogU3RpdGNoIGV2ZXJ5dGhpbmcgdXAgaW50byBhIG5pY2UgY29tbWEtc2VwYXJhdGVkIGxpc3QuICovCisgICAgICAgIGNvbW1hID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIiwgIik7CisgICAgICAgIGlmIChjb21tYSA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYodGFpbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdG1wID0gUHlVbmljb2RlX0pvaW4oY29tbWEsIG5hbWVzKTsKKyAgICAgICAgUHlfREVDUkVGKGNvbW1hKTsKKyAgICAgICAgaWYgKHRtcCA9PSBOVUxMKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYodGFpbCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbmFtZV9zdHIgPSBQeVVuaWNvZGVfQ29uY2F0KHRtcCwgdGFpbCk7CisgICAgICAgIFB5X0RFQ1JFRih0bXApOworICAgICAgICBQeV9ERUNSRUYodGFpbCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAobmFtZV9zdHIgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuOworICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICIlVSgpIG1pc3NpbmcgJWkgcmVxdWlyZWQgJXMgYXJndW1lbnQlczogJVUiLAorICAgICAgICAgICAgICAgICBjby0+Y29fbmFtZSwKKyAgICAgICAgICAgICAgICAgbGVuLAorICAgICAgICAgICAgICAgICBraW5kLAorICAgICAgICAgICAgICAgICBsZW4gPT0gMSA/ICIiIDogInMiLAorICAgICAgICAgICAgICAgICBuYW1lX3N0cik7CisgICAgUHlfREVDUkVGKG5hbWVfc3RyKTsKK30KKworc3RhdGljIHZvaWQKK21pc3NpbmdfYXJndW1lbnRzKFB5Q29kZU9iamVjdCAqY28sIGludCBtaXNzaW5nLCBpbnQgZGVmY291bnQsCisgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqKmZhc3Rsb2NhbHMpCit7CisgICAgaW50IGksIGogPSAwOworICAgIGludCBzdGFydCwgZW5kOworICAgIGludCBwb3NpdGlvbmFsID0gZGVmY291bnQgIT0gLTE7CisgICAgY29uc3QgY2hhciAqa2luZCA9IHBvc2l0aW9uYWwgPyAicG9zaXRpb25hbCIgOiAia2V5d29yZC1vbmx5IjsKKyAgICBQeU9iamVjdCAqbWlzc2luZ19uYW1lczsKKworICAgIC8qIENvbXB1dGUgdGhlIG5hbWVzIG9mIHRoZSBhcmd1bWVudHMgdGhhdCBhcmUgbWlzc2luZy4gKi8KKyAgICBtaXNzaW5nX25hbWVzID0gUHlMaXN0X05ldyhtaXNzaW5nKTsKKyAgICBpZiAobWlzc2luZ19uYW1lcyA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisgICAgaWYgKHBvc2l0aW9uYWwpIHsKKyAgICAgICAgc3RhcnQgPSAwOworICAgICAgICBlbmQgPSBjby0+Y29fYXJnY291bnQgLSBkZWZjb3VudDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHN0YXJ0ID0gY28tPmNvX2FyZ2NvdW50OworICAgICAgICBlbmQgPSBzdGFydCArIGNvLT5jb19rd29ubHlhcmdjb3VudDsKKyAgICB9CisgICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykgeworICAgICAgICBpZiAoR0VUTE9DQUwoaSkgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlPYmplY3QgKnJhdyA9IFB5VHVwbGVfR0VUX0lURU0oY28tPmNvX3Zhcm5hbWVzLCBpKTsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpuYW1lID0gUHlPYmplY3RfUmVwcihyYXcpOworICAgICAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihtaXNzaW5nX25hbWVzKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBQeUxpc3RfU0VUX0lURU0obWlzc2luZ19uYW1lcywgaisrLCBuYW1lKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBhc3NlcnQoaiA9PSBtaXNzaW5nKTsKKyAgICBmb3JtYXRfbWlzc2luZyhraW5kLCBjbywgbWlzc2luZ19uYW1lcyk7CisgICAgUHlfREVDUkVGKG1pc3NpbmdfbmFtZXMpOworfQorCitzdGF0aWMgdm9pZAordG9vX21hbnlfcG9zaXRpb25hbChQeUNvZGVPYmplY3QgKmNvLCBpbnQgZ2l2ZW4sIGludCBkZWZjb3VudCwgUHlPYmplY3QgKipmYXN0bG9jYWxzKQoreworICAgIGludCBwbHVyYWw7CisgICAgaW50IGt3b25seV9naXZlbiA9IDA7CisgICAgaW50IGk7CisgICAgUHlPYmplY3QgKnNpZywgKmt3b25seV9zaWc7CisKKyAgICBhc3NlcnQoKGNvLT5jb19mbGFncyAmIENPX1ZBUkFSR1MpID09IDApOworICAgIC8qIENvdW50IG1pc3Npbmcga2V5d29yZC1vbmx5IGFyZ3MuICovCisgICAgZm9yIChpID0gY28tPmNvX2FyZ2NvdW50OyBpIDwgY28tPmNvX2FyZ2NvdW50ICsgY28tPmNvX2t3b25seWFyZ2NvdW50OyBpKyspCisgICAgICAgIGlmIChHRVRMT0NBTChpKSAhPSBOVUxMKQorICAgICAgICAgICAga3dvbmx5X2dpdmVuKys7CisgICAgaWYgKGRlZmNvdW50KSB7CisgICAgICAgIGludCBhdGxlYXN0ID0gY28tPmNvX2FyZ2NvdW50IC0gZGVmY291bnQ7CisgICAgICAgIHBsdXJhbCA9IDE7CisgICAgICAgIHNpZyA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KCJmcm9tICVkIHRvICVkIiwgYXRsZWFzdCwgY28tPmNvX2FyZ2NvdW50KTsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHBsdXJhbCA9IGNvLT5jb19hcmdjb3VudCAhPSAxOworICAgICAgICBzaWcgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiJWQiLCBjby0+Y29fYXJnY291bnQpOworICAgIH0KKyAgICBpZiAoc2lnID09IE5VTEwpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoa3dvbmx5X2dpdmVuKSB7CisgICAgICAgIGNvbnN0IGNoYXIgKmZvcm1hdCA9ICIgcG9zaXRpb25hbCBhcmd1bWVudCVzIChhbmQgJWQga2V5d29yZC1vbmx5IGFyZ3VtZW50JXMpIjsKKyAgICAgICAga3dvbmx5X3NpZyA9IFB5VW5pY29kZV9Gcm9tRm9ybWF0KGZvcm1hdCwgZ2l2ZW4gIT0gMSA/ICJzIiA6ICIiLCBrd29ubHlfZ2l2ZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dvbmx5X2dpdmVuICE9IDEgPyAicyIgOiAiIik7CisgICAgICAgIGlmIChrd29ubHlfc2lnID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihzaWcpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvKiBUaGlzIHdpbGwgbm90IGZhaWwuICovCisgICAgICAgIGt3b25seV9zaWcgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiIik7CisgICAgICAgIGFzc2VydChrd29ubHlfc2lnICE9IE5VTEwpOworICAgIH0KKyAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAiJVUoKSB0YWtlcyAlVSBwb3NpdGlvbmFsIGFyZ3VtZW50JXMgYnV0ICVkJVUgJXMgZ2l2ZW4iLAorICAgICAgICAgICAgICAgICBjby0+Y29fbmFtZSwKKyAgICAgICAgICAgICAgICAgc2lnLAorICAgICAgICAgICAgICAgICBwbHVyYWwgPyAicyIgOiAiIiwKKyAgICAgICAgICAgICAgICAgZ2l2ZW4sCisgICAgICAgICAgICAgICAgIGt3b25seV9zaWcsCisgICAgICAgICAgICAgICAgIGdpdmVuID09IDEgJiYgIWt3b25seV9naXZlbiA/ICJ3YXMiIDogIndlcmUiKTsKKyAgICBQeV9ERUNSRUYoc2lnKTsKKyAgICBQeV9ERUNSRUYoa3dvbmx5X3NpZyk7Cit9CisKIC8qIFRoaXMgaXMgZ29ubmEgc2VlbSAqcmVhbCB3ZWlyZCosIGJ1dCBpZiB5b3UgcHV0IHNvbWUgb3RoZXIgY29kZSBiZXR3ZWVuCiAgICBQeUV2YWxfRXZhbEZyYW1lKCkgYW5kIFB5RXZhbF9FdmFsQ29kZUV4KCkgeW91IHdpbGwgbmVlZCB0byBhZGp1c3QKICAgIHRoZSB0ZXN0IGluIHRoZSBpZiBzdGF0ZW1lbnRzIGluIE1pc2MvZ2RiaW5pdCAocHlzdGFjayBhbmQgcHlzdGFja3YpLiAqLwpAQCAtMzExMCw2ICszMjQ5LDkgQEAKICAgICBQeVRocmVhZFN0YXRlICp0c3RhdGUgPSBQeVRocmVhZFN0YXRlX0dFVCgpOwogICAgIFB5T2JqZWN0ICp4LCAqdTsKICAgICBpbnQgdG90YWxfYXJncyA9IGNvLT5jb19hcmdjb3VudCArIGNvLT5jb19rd29ubHlhcmdjb3VudDsKKyAgICBpbnQgaTsKKyAgICBpbnQgbiA9IGFyZ2NvdW50OworICAgIFB5T2JqZWN0ICprd2RpY3QgPSBOVUxMOwogCiAgICAgaWYgKGdsb2JhbHMgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfU3lzdGVtRXJyb3IsCkBAIC0zMTI2LDIxMiArMzI2OCwxNTMgQEAKICAgICBmYXN0bG9jYWxzID0gZi0+Zl9sb2NhbHNwbHVzOwogICAgIGZyZWV2YXJzID0gZi0+Zl9sb2NhbHNwbHVzICsgY28tPmNvX25sb2NhbHM7CiAKLSAgICBpZiAodG90YWxfYXJncyB8fCBjby0+Y29fZmxhZ3MgJiAoQ09fVkFSQVJHUyB8IENPX1ZBUktFWVdPUkRTKSkgewotICAgICAgICBpbnQgaTsKLSAgICAgICAgaW50IG4gPSBhcmdjb3VudDsKLSAgICAgICAgUHlPYmplY3QgKmt3ZGljdCA9IE5VTEw7Ci0gICAgICAgIGlmIChjby0+Y29fZmxhZ3MgJiBDT19WQVJLRVlXT1JEUykgewotICAgICAgICAgICAga3dkaWN0ID0gUHlEaWN0X05ldygpOwotICAgICAgICAgICAgaWYgKGt3ZGljdCA9PSBOVUxMKQotICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgIGkgPSB0b3RhbF9hcmdzOwotICAgICAgICAgICAgaWYgKGNvLT5jb19mbGFncyAmIENPX1ZBUkFSR1MpCi0gICAgICAgICAgICAgICAgaSsrOwotICAgICAgICAgICAgU0VUTE9DQUwoaSwga3dkaWN0KTsKLSAgICAgICAgfQotICAgICAgICBpZiAoYXJnY291bnQgPiBjby0+Y29fYXJnY291bnQpIHsKLSAgICAgICAgICAgIGlmICghKGNvLT5jb19mbGFncyAmIENPX1ZBUkFSR1MpKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgIiVVKCkgdGFrZXMgJXMgJWQgIgotICAgICAgICAgICAgICAgICAgICAicG9zaXRpb25hbCBhcmd1bWVudCVzICglZCBnaXZlbikiLAotICAgICAgICAgICAgICAgICAgICBjby0+Y29fbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgZGVmY291bnQgPyAiYXQgbW9zdCIgOiAiZXhhY3RseSIsCi0gICAgICAgICAgICAgICAgICAgIGNvLT5jb19hcmdjb3VudCwKLSAgICAgICAgICAgICAgICAgICAgY28tPmNvX2FyZ2NvdW50ID09IDEgPyAiIiA6ICJzIiwKLSAgICAgICAgICAgICAgICAgICAgYXJnY291bnQgKyBrd2NvdW50KTsKLSAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBuID0gY28tPmNvX2FyZ2NvdW50OwotICAgICAgICB9Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKKyAgICAvKiBQYXJzZSBhcmd1bWVudHMuICovCisgICAgaWYgKGNvLT5jb19mbGFncyAmIENPX1ZBUktFWVdPUkRTKSB7CisgICAgICAgIGt3ZGljdCA9IFB5RGljdF9OZXcoKTsKKyAgICAgICAgaWYgKGt3ZGljdCA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICBpID0gdG90YWxfYXJnczsKKyAgICAgICAgaWYgKGNvLT5jb19mbGFncyAmIENPX1ZBUkFSR1MpCisgICAgICAgICAgICBpKys7CisgICAgICAgIFNFVExPQ0FMKGksIGt3ZGljdCk7CisgICAgfQorICAgIGlmIChhcmdjb3VudCA+IGNvLT5jb19hcmdjb3VudCkKKyAgICAgICAgbiA9IGNvLT5jb19hcmdjb3VudDsKKyAgICBmb3IgKGkgPSAwOyBpIDwgbjsgaSsrKSB7CisgICAgICAgIHggPSBhcmdzW2ldOworICAgICAgICBQeV9JTkNSRUYoeCk7CisgICAgICAgIFNFVExPQ0FMKGksIHgpOworICAgIH0KKyAgICBpZiAoY28tPmNvX2ZsYWdzICYgQ09fVkFSQVJHUykgeworICAgICAgICB1ID0gUHlUdXBsZV9OZXcoYXJnY291bnQgLSBuKTsKKyAgICAgICAgaWYgKHUgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZmFpbDsKKyAgICAgICAgU0VUTE9DQUwodG90YWxfYXJncywgdSk7CisgICAgICAgIGZvciAoaSA9IG47IGkgPCBhcmdjb3VudDsgaSsrKSB7CiAgICAgICAgICAgICB4ID0gYXJnc1tpXTsKICAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKLSAgICAgICAgICAgIFNFVExPQ0FMKGksIHgpOworICAgICAgICAgICAgUHlUdXBsZV9TRVRfSVRFTSh1LCBpLW4sIHgpOwogICAgICAgICB9Ci0gICAgICAgIGlmIChjby0+Y29fZmxhZ3MgJiBDT19WQVJBUkdTKSB7Ci0gICAgICAgICAgICB1ID0gUHlUdXBsZV9OZXcoYXJnY291bnQgLSBuKTsKLSAgICAgICAgICAgIGlmICh1ID09IE5VTEwpCi0gICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgU0VUTE9DQUwodG90YWxfYXJncywgdSk7Ci0gICAgICAgICAgICBmb3IgKGkgPSBuOyBpIDwgYXJnY291bnQ7IGkrKykgewotICAgICAgICAgICAgICAgIHggPSBhcmdzW2ldOwotICAgICAgICAgICAgICAgIFB5X0lOQ1JFRih4KTsKLSAgICAgICAgICAgICAgICBQeVR1cGxlX1NFVF9JVEVNKHUsIGktbiwgeCk7Ci0gICAgICAgICAgICB9CisgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCBrd2NvdW50OyBpKyspIHsKKyAgICAgICAgUHlPYmplY3QgKipjb192YXJuYW1lczsKKyAgICAgICAgUHlPYmplY3QgKmtleXdvcmQgPSBrd3NbMippXTsKKyAgICAgICAgUHlPYmplY3QgKnZhbHVlID0ga3dzWzIqaSArIDFdOworICAgICAgICBpbnQgajsKKyAgICAgICAgaWYgKGtleXdvcmQgPT0gTlVMTCB8fCAhUHlVbmljb2RlX0NoZWNrKGtleXdvcmQpKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICIlVSgpIGtleXdvcmRzIG11c3QgYmUgc3RyaW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgY28tPmNvX25hbWUpOworICAgICAgICAgICAgZ290byBmYWlsOwogICAgICAgICB9Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCBrd2NvdW50OyBpKyspIHsKLSAgICAgICAgICAgIFB5T2JqZWN0ICoqY29fdmFybmFtZXM7Ci0gICAgICAgICAgICBQeU9iamVjdCAqa2V5d29yZCA9IGt3c1syKmldOwotICAgICAgICAgICAgUHlPYmplY3QgKnZhbHVlID0ga3dzWzIqaSArIDFdOwotICAgICAgICAgICAgaW50IGo7Ci0gICAgICAgICAgICBpZiAoa2V5d29yZCA9PSBOVUxMIHx8ICFQeVVuaWNvZGVfQ2hlY2soa2V5d29yZCkpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAiJVUoKSBrZXl3b3JkcyBtdXN0IGJlIHN0cmluZ3MiLAotICAgICAgICAgICAgICAgICAgICBjby0+Y29fbmFtZSk7CisgICAgICAgIC8qIFNwZWVkIGhhY2s6IGRvIHJhdyBwb2ludGVyIGNvbXBhcmVzLiBBcyBuYW1lcyBhcmUKKyAgICAgICAgICAgbm9ybWFsbHkgaW50ZXJuZWQgdGhpcyBzaG91bGQgYWxtb3N0IGFsd2F5cyBoaXQuICovCisgICAgICAgIGNvX3Zhcm5hbWVzID0gKChQeVR1cGxlT2JqZWN0ICopKGNvLT5jb192YXJuYW1lcykpLT5vYl9pdGVtOworICAgICAgICBmb3IgKGogPSAwOyBqIDwgdG90YWxfYXJnczsgaisrKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqbm0gPSBjb192YXJuYW1lc1tqXTsKKyAgICAgICAgICAgIGlmIChubSA9PSBrZXl3b3JkKQorICAgICAgICAgICAgICAgIGdvdG8ga3dfZm91bmQ7CisgICAgICAgIH0KKyAgICAgICAgLyogU2xvdyBmYWxsYmFjaywganVzdCBpbiBjYXNlICovCisgICAgICAgIGZvciAoaiA9IDA7IGogPCB0b3RhbF9hcmdzOyBqKyspIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpubSA9IGNvX3Zhcm5hbWVzW2pdOworICAgICAgICAgICAgaW50IGNtcCA9IFB5T2JqZWN0X1JpY2hDb21wYXJlQm9vbCgKKyAgICAgICAgICAgICAgICBrZXl3b3JkLCBubSwgUHlfRVEpOworICAgICAgICAgICAgaWYgKGNtcCA+IDApCisgICAgICAgICAgICAgICAgZ290byBrd19mb3VuZDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNtcCA8IDApCiAgICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgLyogU3BlZWQgaGFjazogZG8gcmF3IHBvaW50ZXIgY29tcGFyZXMuIEFzIG5hbWVzIGFyZQotICAgICAgICAgICAgICAgbm9ybWFsbHkgaW50ZXJuZWQgdGhpcyBzaG91bGQgYWxtb3N0IGFsd2F5cyBoaXQuICovCi0gICAgICAgICAgICBjb192YXJuYW1lcyA9ICgoUHlUdXBsZU9iamVjdCAqKShjby0+Y29fdmFybmFtZXMpKS0+b2JfaXRlbTsKLSAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCB0b3RhbF9hcmdzOyBqKyspIHsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqbm0gPSBjb192YXJuYW1lc1tqXTsKLSAgICAgICAgICAgICAgICBpZiAobm0gPT0ga2V5d29yZCkKLSAgICAgICAgICAgICAgICAgICAgZ290byBrd19mb3VuZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8qIFNsb3cgZmFsbGJhY2ssIGp1c3QgaW4gY2FzZSAqLwotICAgICAgICAgICAgZm9yIChqID0gMDsgaiA8IHRvdGFsX2FyZ3M7IGorKykgewotICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpubSA9IGNvX3Zhcm5hbWVzW2pdOwotICAgICAgICAgICAgICAgIGludCBjbXAgPSBQeU9iamVjdF9SaWNoQ29tcGFyZUJvb2woCi0gICAgICAgICAgICAgICAgICAgIGtleXdvcmQsIG5tLCBQeV9FUSk7Ci0gICAgICAgICAgICAgICAgaWYgKGNtcCA+IDApCi0gICAgICAgICAgICAgICAgICAgIGdvdG8ga3dfZm91bmQ7Ci0gICAgICAgICAgICAgICAgZWxzZSBpZiAoY21wIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGogPj0gdG90YWxfYXJncyAmJiBrd2RpY3QgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlVSgpIGdvdCBhbiB1bmV4cGVjdGVkICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtleXdvcmQgYXJndW1lbnQgJyVTJyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvLT5jb19uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkKTsKLSAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBQeURpY3RfU2V0SXRlbShrd2RpY3QsIGtleXdvcmQsIHZhbHVlKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgIGt3X2ZvdW5kOgotICAgICAgICAgICAgaWYgKEdFVExPQ0FMKGopICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICIlVSgpIGdvdCBtdWx0aXBsZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlcyBmb3Iga2V5d29yZCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50ICclUyciLAorICAgICAgICB9CisgICAgICAgIGlmIChqID49IHRvdGFsX2FyZ3MgJiYga3dkaWN0ID09IE5VTEwpIHsKKyAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIiVVKCkgZ290IGFuIHVuZXhwZWN0ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJrZXl3b3JkIGFyZ3VtZW50ICclUyciLAogICAgICAgICAgICAgICAgICAgICAgICAgIGNvLT5jb19uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmQpOwotICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFB5X0lOQ1JFRih2YWx1ZSk7Ci0gICAgICAgICAgICBTRVRMT0NBTChqLCB2YWx1ZSk7CisgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGNvLT5jb19rd29ubHlhcmdjb3VudCA+IDApIHsKLSAgICAgICAgICAgIGZvciAoaSA9IGNvLT5jb19hcmdjb3VudDsgaSA8IHRvdGFsX2FyZ3M7IGkrKykgewotICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpuYW1lOwotICAgICAgICAgICAgICAgIGlmIChHRVRMT0NBTChpKSAhPSBOVUxMKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBuYW1lID0gUHlUdXBsZV9HRVRfSVRFTShjby0+Y29fdmFybmFtZXMsIGkpOwotICAgICAgICAgICAgICAgIGlmIChrd2RlZnMgIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqZGVmID0gUHlEaWN0X0dldEl0ZW0oa3dkZWZzLCBuYW1lKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGRlZikgewotICAgICAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKGRlZik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBTRVRMT0NBTChpLCBkZWYpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgIiVVKCkgbmVlZHMga2V5d29yZC1vbmx5IGFyZ3VtZW50ICVTIiwKLSAgICAgICAgICAgICAgICAgICAgY28tPmNvX25hbWUsIG5hbWUpOwotICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgIH0KKyAgICAgICAgUHlEaWN0X1NldEl0ZW0oa3dkaWN0LCBrZXl3b3JkLCB2YWx1ZSk7CisgICAgICAgIGNvbnRpbnVlOworICAgICAga3dfZm91bmQ6CisgICAgICAgIGlmIChHRVRMT0NBTChqKSAhPSBOVUxMKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICIlVSgpIGdvdCBtdWx0aXBsZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlcyBmb3IgYXJndW1lbnQgJyVTJyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgY28tPmNvX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZCk7CisgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKGFyZ2NvdW50IDwgY28tPmNvX2FyZ2NvdW50KSB7Ci0gICAgICAgICAgICBpbnQgbSA9IGNvLT5jb19hcmdjb3VudCAtIGRlZmNvdW50OwotICAgICAgICAgICAgZm9yIChpID0gYXJnY291bnQ7IGkgPCBtOyBpKyspIHsKLSAgICAgICAgICAgICAgICBpZiAoR0VUTE9DQUwoaSkgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBpbnQgaiwgZ2l2ZW4gPSAwOwotICAgICAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgY28tPmNvX2FyZ2NvdW50OyBqKyspCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoR0VUTE9DQUwoaikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2l2ZW4rKzsKLSAgICAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICIlVSgpIHRha2VzICVzICVkICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJhcmd1bWVudCVzICIKLSAgICAgICAgICAgICAgICAgICAgICAgICIoJWQgZ2l2ZW4pIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvLT5jb19uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgKChjby0+Y29fZmxhZ3MgJiBDT19WQVJBUkdTKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmNvdW50KSA/ICJhdCBsZWFzdCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiZXhhY3RseSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG0sIG0gPT0gMSA/ICIiIDogInMiLCBnaXZlbik7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobiA+IG0pCi0gICAgICAgICAgICAgICAgaSA9IG4gLSBtOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGkgPSAwOwotICAgICAgICAgICAgZm9yICg7IGkgPCBkZWZjb3VudDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKEdFVExPQ0FMKG0raSkgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqZGVmID0gZGVmc1tpXTsKLSAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKGRlZik7Ci0gICAgICAgICAgICAgICAgICAgIFNFVExPQ0FMKG0raSwgZGVmKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgUHlfSU5DUkVGKHZhbHVlKTsKKyAgICAgICAgU0VUTE9DQUwoaiwgdmFsdWUpOwogICAgIH0KLSAgICBlbHNlIGlmIChhcmdjb3VudCA+IDAgfHwga3djb3VudCA+IDApIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICIlVSgpIHRha2VzIG5vIGFyZ3VtZW50cyAoJWQgZ2l2ZW4pIiwKLSAgICAgICAgICAgICAgICAgICAgIGNvLT5jb19uYW1lLAotICAgICAgICAgICAgICAgICAgICAgYXJnY291bnQgKyBrd2NvdW50KTsKKyAgICBpZiAoYXJnY291bnQgPiBjby0+Y29fYXJnY291bnQgJiYgIShjby0+Y29fZmxhZ3MgJiBDT19WQVJBUkdTKSkgeworICAgICAgICB0b29fbWFueV9wb3NpdGlvbmFsKGNvLCBhcmdjb3VudCwgZGVmY291bnQsIGZhc3Rsb2NhbHMpOwogICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICAgIC8qIEFsbG9jYXRlIGFuZCBpbml0aWFsaXplIHN0b3JhZ2UgZm9yIGNlbGwgdmFycywgYW5kIGNvcHkgZnJlZQotICAgICAgIHZhcnMgaW50byBmcmFtZS4gIFRoaXMgaXNuJ3QgdG9vIGVmZmljaWVudCByaWdodCBub3cuICovCi0gICAgaWYgKFB5VHVwbGVfR0VUX1NJWkUoY28tPmNvX2NlbGx2YXJzKSkgewotICAgICAgICBpbnQgaSwgaiwgbmFyZ3MsIGZvdW5kOwotICAgICAgICBQeV9VTklDT0RFICpjZWxsbmFtZSwgKmFyZ25hbWU7Ci0gICAgICAgIFB5T2JqZWN0ICpjOwotCi0gICAgICAgIG5hcmdzID0gdG90YWxfYXJnczsKLSAgICAgICAgaWYgKGNvLT5jb19mbGFncyAmIENPX1ZBUkFSR1MpCi0gICAgICAgICAgICBuYXJncysrOwotICAgICAgICBpZiAoY28tPmNvX2ZsYWdzICYgQ09fVkFSS0VZV09SRFMpCi0gICAgICAgICAgICBuYXJncysrOwotCi0gICAgICAgIC8qIEluaXRpYWxpemUgZWFjaCBjZWxsIHZhciwgdGFraW5nIGludG8gYWNjb3VudAotICAgICAgICAgICBjZWxsIHZhcnMgdGhhdCBhcmUgaW5pdGlhbGl6ZWQgZnJvbSBhcmd1bWVudHMuCi0KLSAgICAgICAgICAgU2hvdWxkIGFycmFuZ2UgZm9yIHRoZSBjb21waWxlciB0byBwdXQgY2VsbHZhcnMKLSAgICAgICAgICAgdGhhdCBhcmUgYXJndW1lbnRzIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGNlbGx2YXJzCi0gICAgICAgICAgIGxpc3Qgc28gdGhhdCB3ZSBjYW4gbWFyY2ggb3ZlciBpdCBtb3JlIGVmZmljaWVudGx5PwotICAgICAgICAqLwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgUHlUdXBsZV9HRVRfU0laRShjby0+Y29fY2VsbHZhcnMpOyArK2kpIHsKLSAgICAgICAgICAgIGNlbGxuYW1lID0gUHlVbmljb2RlX0FTX1VOSUNPREUoCi0gICAgICAgICAgICAgICAgUHlUdXBsZV9HRVRfSVRFTShjby0+Y29fY2VsbHZhcnMsIGkpKTsKLSAgICAgICAgICAgIGZvdW5kID0gMDsKLSAgICAgICAgICAgIGZvciAoaiA9IDA7IGogPCBuYXJnczsgaisrKSB7Ci0gICAgICAgICAgICAgICAgYXJnbmFtZSA9IFB5VW5pY29kZV9BU19VTklDT0RFKAotICAgICAgICAgICAgICAgICAgICBQeVR1cGxlX0dFVF9JVEVNKGNvLT5jb192YXJuYW1lcywgaikpOwotICAgICAgICAgICAgICAgIGlmIChQeV9VTklDT0RFX3N0cmNtcChjZWxsbmFtZSwgYXJnbmFtZSkgPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBjID0gUHlDZWxsX05ldyhHRVRMT0NBTChqKSk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjID09IE5VTEwpCi0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGZhaWw7Ci0gICAgICAgICAgICAgICAgICAgIEdFVExPQ0FMKGNvLT5jb19ubG9jYWxzICsgaSkgPSBjOwotICAgICAgICAgICAgICAgICAgICBmb3VuZCA9IDE7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChmb3VuZCA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgYyA9IFB5Q2VsbF9OZXcoTlVMTCk7Ci0gICAgICAgICAgICAgICAgaWYgKGMgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICAgICAgZ290byBmYWlsOwotICAgICAgICAgICAgICAgIFNFVExPQ0FMKGNvLT5jb19ubG9jYWxzICsgaSwgYyk7CisgICAgaWYgKGFyZ2NvdW50IDwgY28tPmNvX2FyZ2NvdW50KSB7CisgICAgICAgIGludCBtID0gY28tPmNvX2FyZ2NvdW50IC0gZGVmY291bnQ7CisgICAgICAgIGludCBtaXNzaW5nID0gMDsKKyAgICAgICAgZm9yIChpID0gYXJnY291bnQ7IGkgPCBtOyBpKyspCisgICAgICAgICAgICBpZiAoR0VUTE9DQUwoaSkgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBtaXNzaW5nKys7CisgICAgICAgIGlmIChtaXNzaW5nKSB7CisgICAgICAgICAgICBtaXNzaW5nX2FyZ3VtZW50cyhjbywgbWlzc2luZywgZGVmY291bnQsIGZhc3Rsb2NhbHMpOworICAgICAgICAgICAgZ290byBmYWlsOworICAgICAgICB9CisgICAgICAgIGlmIChuID4gbSkKKyAgICAgICAgICAgIGkgPSBuIC0gbTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaSA9IDA7CisgICAgICAgIGZvciAoOyBpIDwgZGVmY291bnQ7IGkrKykgeworICAgICAgICAgICAgaWYgKEdFVExPQ0FMKG0raSkgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpkZWYgPSBkZWZzW2ldOworICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihkZWYpOworICAgICAgICAgICAgICAgIFNFVExPQ0FMKG0raSwgZGVmKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLSAgICBpZiAoUHlUdXBsZV9HRVRfU0laRShjby0+Y29fZnJlZXZhcnMpKSB7Ci0gICAgICAgIGludCBpOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgUHlUdXBsZV9HRVRfU0laRShjby0+Y29fZnJlZXZhcnMpOyArK2kpIHsKLSAgICAgICAgICAgIFB5T2JqZWN0ICpvID0gUHlUdXBsZV9HRVRfSVRFTShjbG9zdXJlLCBpKTsKLSAgICAgICAgICAgIFB5X0lOQ1JFRihvKTsKLSAgICAgICAgICAgIGZyZWV2YXJzW1B5VHVwbGVfR0VUX1NJWkUoY28tPmNvX2NlbGx2YXJzKSArIGldID0gbzsKKyAgICBpZiAoY28tPmNvX2t3b25seWFyZ2NvdW50ID4gMCkgeworICAgICAgICBpbnQgbWlzc2luZyA9IDA7CisgICAgICAgIGZvciAoaSA9IGNvLT5jb19hcmdjb3VudDsgaSA8IHRvdGFsX2FyZ3M7IGkrKykgeworICAgICAgICAgICAgUHlPYmplY3QgKm5hbWU7CisgICAgICAgICAgICBpZiAoR0VUTE9DQUwoaSkgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIG5hbWUgPSBQeVR1cGxlX0dFVF9JVEVNKGNvLT5jb192YXJuYW1lcywgaSk7CisgICAgICAgICAgICBpZiAoa3dkZWZzICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBQeU9iamVjdCAqZGVmID0gUHlEaWN0X0dldEl0ZW0oa3dkZWZzLCBuYW1lKTsKKyAgICAgICAgICAgICAgICBpZiAoZGVmKSB7CisgICAgICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihkZWYpOworICAgICAgICAgICAgICAgICAgICBTRVRMT0NBTChpLCBkZWYpOworICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtaXNzaW5nKys7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKG1pc3NpbmcpIHsKKyAgICAgICAgICAgIG1pc3NpbmdfYXJndW1lbnRzKGNvLCBtaXNzaW5nLCAtMSwgZmFzdGxvY2Fscyk7CisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6ZSBzdG9yYWdlIGZvciBjZWxsIHZhcnMsIGFuZCBjb3B5IGZyZWUKKyAgICAgICB2YXJzIGludG8gZnJhbWUuICovCisgICAgZm9yIChpID0gMDsgaSA8IFB5VHVwbGVfR0VUX1NJWkUoY28tPmNvX2NlbGx2YXJzKTsgKytpKSB7CisgICAgICAgIFB5T2JqZWN0ICpjOworICAgICAgICBpbnQgYXJnOworICAgICAgICAvKiBQb3NzaWJseSBhY2NvdW50IGZvciB0aGUgY2VsbCB2YXJpYWJsZSBiZWluZyBhbiBhcmd1bWVudC4gKi8KKyAgICAgICAgaWYgKGNvLT5jb19jZWxsMmFyZyAhPSBOVUxMICYmCisgICAgICAgICAgICAoYXJnID0gY28tPmNvX2NlbGwyYXJnW2ldKSAhPSBDT19DRUxMX05PVF9BTl9BUkcpCisgICAgICAgICAgICBjID0gUHlDZWxsX05ldyhHRVRMT0NBTChhcmcpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYyA9IFB5Q2VsbF9OZXcoTlVMTCk7CisgICAgICAgIGlmIChjID09IE5VTEwpCisgICAgICAgICAgICBnb3RvIGZhaWw7CisgICAgICAgIFNFVExPQ0FMKGNvLT5jb19ubG9jYWxzICsgaSwgYyk7CisgICAgfQorICAgIGZvciAoaSA9IDA7IGkgPCBQeVR1cGxlX0dFVF9TSVpFKGNvLT5jb19mcmVldmFycyk7ICsraSkgeworICAgICAgICBQeU9iamVjdCAqbyA9IFB5VHVwbGVfR0VUX0lURU0oY2xvc3VyZSwgaSk7CisgICAgICAgIFB5X0lOQ1JFRihvKTsKKyAgICAgICAgZnJlZXZhcnNbUHlUdXBsZV9HRVRfU0laRShjby0+Y29fY2VsbHZhcnMpICsgaV0gPSBvOwogICAgIH0KIAogICAgIGlmIChjby0+Y29fZmxhZ3MgJiBDT19HRU5FUkFUT1IpIHsKQEAgLTMzNjUsMTggKzM0NDgsNzIgQEAKIAogCiBzdGF0aWMgUHlPYmplY3QgKgotc3BlY2lhbF9sb29rdXAoUHlPYmplY3QgKm8sIGNoYXIgKm1ldGgsIFB5T2JqZWN0ICoqY2FjaGUpCitzcGVjaWFsX2xvb2t1cChQeU9iamVjdCAqbywgX1B5X0lkZW50aWZpZXIgKmlkKQogewogICAgIFB5T2JqZWN0ICpyZXM7Ci0gICAgcmVzID0gX1B5T2JqZWN0X0xvb2t1cFNwZWNpYWwobywgbWV0aCwgY2FjaGUpOworICAgIHJlcyA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKG8sIGlkKTsKICAgICBpZiAocmVzID09IE5VTEwgJiYgIVB5RXJyX09jY3VycmVkKCkpIHsKLSAgICAgICAgUHlFcnJfU2V0T2JqZWN0KFB5RXhjX0F0dHJpYnV0ZUVycm9yLCAqY2FjaGUpOworICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNfQXR0cmlidXRlRXJyb3IsIGlkLT5vYmplY3QpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgcmV0dXJuIHJlczsKIH0KIAogCisvKiBUaGVzZSAzIGZ1bmN0aW9ucyBkZWFsIHdpdGggdGhlIGV4Y2VwdGlvbiBzdGF0ZSBvZiBnZW5lcmF0b3JzLiAqLworCitzdGF0aWMgdm9pZAorc2F2ZV9leGNfc3RhdGUoUHlUaHJlYWRTdGF0ZSAqdHN0YXRlLCBQeUZyYW1lT2JqZWN0ICpmKQoreworICAgIFB5T2JqZWN0ICp0eXBlLCAqdmFsdWUsICp0cmFjZWJhY2s7CisgICAgUHlfWElOQ1JFRih0c3RhdGUtPmV4Y190eXBlKTsKKyAgICBQeV9YSU5DUkVGKHRzdGF0ZS0+ZXhjX3ZhbHVlKTsKKyAgICBQeV9YSU5DUkVGKHRzdGF0ZS0+ZXhjX3RyYWNlYmFjayk7CisgICAgdHlwZSA9IGYtPmZfZXhjX3R5cGU7CisgICAgdmFsdWUgPSBmLT5mX2V4Y192YWx1ZTsKKyAgICB0cmFjZWJhY2sgPSBmLT5mX2V4Y190cmFjZWJhY2s7CisgICAgZi0+Zl9leGNfdHlwZSA9IHRzdGF0ZS0+ZXhjX3R5cGU7CisgICAgZi0+Zl9leGNfdmFsdWUgPSB0c3RhdGUtPmV4Y192YWx1ZTsKKyAgICBmLT5mX2V4Y190cmFjZWJhY2sgPSB0c3RhdGUtPmV4Y190cmFjZWJhY2s7CisgICAgUHlfWERFQ1JFRih0eXBlKTsKKyAgICBQeV9YREVDUkVGKHZhbHVlKTsKKyAgICBQeV9YREVDUkVGKHRyYWNlYmFjayk7Cit9CisKK3N0YXRpYyB2b2lkCitzd2FwX2V4Y19zdGF0ZShQeVRocmVhZFN0YXRlICp0c3RhdGUsIFB5RnJhbWVPYmplY3QgKmYpCit7CisgICAgUHlPYmplY3QgKnRtcDsKKyAgICB0bXAgPSB0c3RhdGUtPmV4Y190eXBlOworICAgIHRzdGF0ZS0+ZXhjX3R5cGUgPSBmLT5mX2V4Y190eXBlOworICAgIGYtPmZfZXhjX3R5cGUgPSB0bXA7CisgICAgdG1wID0gdHN0YXRlLT5leGNfdmFsdWU7CisgICAgdHN0YXRlLT5leGNfdmFsdWUgPSBmLT5mX2V4Y192YWx1ZTsKKyAgICBmLT5mX2V4Y192YWx1ZSA9IHRtcDsKKyAgICB0bXAgPSB0c3RhdGUtPmV4Y190cmFjZWJhY2s7CisgICAgdHN0YXRlLT5leGNfdHJhY2ViYWNrID0gZi0+Zl9leGNfdHJhY2ViYWNrOworICAgIGYtPmZfZXhjX3RyYWNlYmFjayA9IHRtcDsKK30KKworc3RhdGljIHZvaWQKK3Jlc3RvcmVfYW5kX2NsZWFyX2V4Y19zdGF0ZShQeVRocmVhZFN0YXRlICp0c3RhdGUsIFB5RnJhbWVPYmplY3QgKmYpCit7CisgICAgUHlPYmplY3QgKnR5cGUsICp2YWx1ZSwgKnRiOworICAgIHR5cGUgPSB0c3RhdGUtPmV4Y190eXBlOworICAgIHZhbHVlID0gdHN0YXRlLT5leGNfdmFsdWU7CisgICAgdGIgPSB0c3RhdGUtPmV4Y190cmFjZWJhY2s7CisgICAgdHN0YXRlLT5leGNfdHlwZSA9IGYtPmZfZXhjX3R5cGU7CisgICAgdHN0YXRlLT5leGNfdmFsdWUgPSBmLT5mX2V4Y192YWx1ZTsKKyAgICB0c3RhdGUtPmV4Y190cmFjZWJhY2sgPSBmLT5mX2V4Y190cmFjZWJhY2s7CisgICAgZi0+Zl9leGNfdHlwZSA9IE5VTEw7CisgICAgZi0+Zl9leGNfdmFsdWUgPSBOVUxMOworICAgIGYtPmZfZXhjX3RyYWNlYmFjayA9IE5VTEw7CisgICAgUHlfWERFQ1JFRih0eXBlKTsKKyAgICBQeV9YREVDUkVGKHZhbHVlKTsKKyAgICBQeV9YREVDUkVGKHRiKTsKK30KKworCiAvKiBMb2dpYyBmb3IgdGhlIHJhaXNlIHN0YXRlbWVudCAodG9vIGNvbXBsaWNhdGVkIGZvciBpbmxpbmluZykuCiAgICBUaGlzICpjb25zdW1lcyogYSByZWZlcmVuY2UgY291bnQgdG8gZWFjaCBvZiBpdHMgYXJndW1lbnRzLiAqLwogc3RhdGljIGVudW0gd2h5X2NvZGUKQEAgLTM0NDYsNiArMzU4MywxMCBAQAogICAgICAgICBlbHNlIGlmIChQeUV4Y2VwdGlvbkluc3RhbmNlX0NoZWNrKGNhdXNlKSkgewogICAgICAgICAgICAgZml4ZWRfY2F1c2UgPSBjYXVzZTsKICAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChjYXVzZSA9PSBQeV9Ob25lKSB7CisgICAgICAgICAgICBQeV9ERUNSRUYoY2F1c2UpOworICAgICAgICAgICAgZml4ZWRfY2F1c2UgPSBOVUxMOworICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhjZXB0aW9uIGNhdXNlcyBtdXN0IGRlcml2ZSBmcm9tICIKQEAgLTQxOTIsNyArNDMzMyw3IEBACiAgICAgICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfVHlwZUVycm9yKSkgewogICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiUuMjAwcyUuMjAwcyBhcmd1bWVudCBhZnRlciAqICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGJlIGEgc2VxdWVuY2UsIG5vdCAlMjAwcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVzdCBiZSBhIHNlcXVlbmNlLCBub3QgJS4yMDBzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXZhbF9HZXRGdW5jTmFtZShmdW5jKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5RXZhbF9HZXRGdW5jRGVzYyhmdW5jKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJhcmctPm9iX3R5cGUtPnRwX25hbWUpOwpAQCAtNDM0Miw3ICs0NDgzLDkgQEAKIHN0YXRpYyBpbnQKIGltcG9ydF9hbGxfZnJvbShQeU9iamVjdCAqbG9jYWxzLCBQeU9iamVjdCAqdikKIHsKLSAgICBQeU9iamVjdCAqYWxsID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh2LCAiX19hbGxfXyIpOworICAgIF9QeV9JREVOVElGSUVSKF9fYWxsX18pOworICAgIF9QeV9JREVOVElGSUVSKF9fZGljdF9fKTsKKyAgICBQeU9iamVjdCAqYWxsID0gX1B5T2JqZWN0X0dldEF0dHJJZCh2LCAmUHlJZF9fX2FsbF9fKTsKICAgICBQeU9iamVjdCAqZGljdCwgKm5hbWUsICp2YWx1ZTsKICAgICBpbnQgc2tpcF9sZWFkaW5nX3VuZGVyc2NvcmVzID0gMDsKICAgICBpbnQgcG9zLCBlcnI7CkBAIC00MzUxLDcgKzQ0OTQsNyBAQAogICAgICAgICBpZiAoIVB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfQXR0cmlidXRlRXJyb3IpKQogICAgICAgICAgICAgcmV0dXJuIC0xOyAvKiBVbmV4cGVjdGVkIGVycm9yICovCiAgICAgICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgICAgIGRpY3QgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHYsICJfX2RpY3RfXyIpOworICAgICAgICBkaWN0ID0gX1B5T2JqZWN0X0dldEF0dHJJZCh2LCAmUHlJZF9fX2RpY3RfXyk7CiAgICAgICAgIGlmIChkaWN0ID09IE5VTEwpIHsKICAgICAgICAgICAgIGlmICghUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19BdHRyaWJ1dGVFcnJvcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwpAQCAtNDM3Nyw3ICs0NTIwLDggQEAKICAgICAgICAgfQogICAgICAgICBpZiAoc2tpcF9sZWFkaW5nX3VuZGVyc2NvcmVzICYmCiAgICAgICAgICAgICBQeVVuaWNvZGVfQ2hlY2sobmFtZSkgJiYKLSAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKG5hbWUpWzBdID09ICdfJykKKyAgICAgICAgICAgIFB5VW5pY29kZV9SRUFEWShuYW1lKSAhPSAtMSAmJgorICAgICAgICAgICAgUHlVbmljb2RlX1JFQURfQ0hBUihuYW1lLCAwKSA9PSAnXycpCiAgICAgICAgIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihuYW1lKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNDQzNywxOSArNDU4MSw5IEBACiAKIHN0YXRpYyBQeU9iamVjdCAqCiB1bmljb2RlX2NvbmNhdGVuYXRlKFB5T2JqZWN0ICp2LCBQeU9iamVjdCAqdywKLSAgICAgICAgICAgICAgICAgICBQeUZyYW1lT2JqZWN0ICpmLCB1bnNpZ25lZCBjaGFyICpuZXh0X2luc3RyKQorICAgICAgICAgICAgICAgICAgICBQeUZyYW1lT2JqZWN0ICpmLCB1bnNpZ25lZCBjaGFyICpuZXh0X2luc3RyKQogewotICAgIC8qIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyAndmFyaWFibGUgKz0gZXhwcicgd2hlbiBib3RoIGFyZ3VtZW50cwotICAgICAgIGFyZSAoVW5pY29kZSkgc3RyaW5ncy4gKi8KLSAgICBQeV9zc2l6ZV90IHZfbGVuID0gUHlVbmljb2RlX0dFVF9TSVpFKHYpOwotICAgIFB5X3NzaXplX3Qgd19sZW4gPSBQeVVuaWNvZGVfR0VUX1NJWkUodyk7Ci0gICAgUHlfc3NpemVfdCBuZXdfbGVuID0gdl9sZW4gKyB3X2xlbjsKLSAgICBpZiAobmV3X2xlbiA8IDApIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAic3RyaW5ncyBhcmUgdG9vIGxhcmdlIHRvIGNvbmNhdCIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0KKyAgICBQeU9iamVjdCAqcmVzOwogICAgIGlmIChQeV9SRUZDTlQodikgPT0gMikgewogICAgICAgICAvKiBJbiB0aGUgY29tbW9uIGNhc2UsIHRoZXJlIGFyZSAyIHJlZmVyZW5jZXMgdG8gdGhlIHZhbHVlCiAgICAgICAgICAqIHN0b3JlZCBpbiAndmFyaWFibGUnIHdoZW4gdGhlICs9IGlzIHBlcmZvcm1lZDogb25lIG9uIHRoZQpAQCAtNDQ5MCwzMSArNDYyNCw5IEBACiAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLQotICAgIGlmIChQeV9SRUZDTlQodikgPT0gMSAmJiAhUHlVbmljb2RlX0NIRUNLX0lOVEVSTkVEKHYpKSB7Ci0gICAgICAgIC8qIE5vdyB3ZSBvd24gdGhlIGxhc3QgcmVmZXJlbmNlIHRvICd2Jywgc28gd2UgY2FuIHJlc2l6ZSBpdAotICAgICAgICAgKiBpbi1wbGFjZS4KLSAgICAgICAgICovCi0gICAgICAgIGlmIChQeVVuaWNvZGVfUmVzaXplKCZ2LCBuZXdfbGVuKSAhPSAwKSB7Ci0gICAgICAgICAgICAvKiBYWFggaWYgUHlVbmljb2RlX1Jlc2l6ZSgpIGZhaWxzLCAndicgaGFzIGJlZW4KLSAgICAgICAgICAgICAqIGRlYWxsb2NhdGVkIHNvIGl0IGNhbm5vdCBiZSBwdXQgYmFjayBpbnRvCi0gICAgICAgICAgICAgKiAndmFyaWFibGUnLiAgVGhlIE1lbW9yeUVycm9yIGlzIHJhaXNlZCB3aGVuIHRoZXJlCi0gICAgICAgICAgICAgKiBpcyBubyB2YWx1ZSBpbiAndmFyaWFibGUnLCB3aGljaCBtaWdodCAodmVyeQotICAgICAgICAgICAgICogcmVtb3RlbHkpIGJlIGEgY2F1c2Ugb2YgaW5jb21wYXRpYmlsaXRpZXMuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIC8qIGNvcHkgJ3cnIGludG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBhcmVhIG9mICd2JyAqLwotICAgICAgICBtZW1jcHkoUHlVbmljb2RlX0FTX1VOSUNPREUodikgKyB2X2xlbiwKLSAgICAgICAgICAgICAgIFB5VW5pY29kZV9BU19VTklDT0RFKHcpLCB3X2xlbipzaXplb2YoUHlfVU5JQ09ERSkpOwotICAgICAgICByZXR1cm4gdjsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIC8qIFdoZW4gaW4tcGxhY2UgcmVzaXppbmcgaXMgbm90IGFuIG9wdGlvbi4gKi8KLSAgICAgICAgdyA9IFB5VW5pY29kZV9Db25jYXQodiwgdyk7Ci0gICAgICAgIFB5X0RFQ1JFRih2KTsKLSAgICAgICAgcmV0dXJuIHc7Ci0gICAgfQorICAgIHJlcyA9IHY7CisgICAgUHlVbmljb2RlX0FwcGVuZCgmcmVzLCB3KTsKKyAgICByZXR1cm4gcmVzOwogfQogCiAjaWZkZWYgRFlOQU1JQ19FWEVDVVRJT05fUFJPRklMRQpkaWZmIC0tZ2l0IGEvUHl0aG9uL2NldmFsX2dpbC5oIGIvUHl0aG9uL2NldmFsX2dpbC5oCmluZGV4IGJmN2EzNTAuLjI3MDJkNWMgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9jZXZhbF9naWwuaAorKysgYi9QeXRob24vY2V2YWxfZ2lsLmgKQEAgLTU5LDIxMyArNTksNDkgQEAKICAgICAgKE5vdGU6IHRoaXMgbWVjaGFuaXNtIGlzIGVuYWJsZWQgd2l0aCBGT1JDRV9TV0lUQ0hJTkcgYWJvdmUpCiAqLwogCi0jaWZuZGVmIF9QT1NJWF9USFJFQURTCi0vKiBUaGlzIG1lYW5zIHB0aHJlYWRzIGFyZSBub3QgaW1wbGVtZW50ZWQgaW4gbGliYyBoZWFkZXJzLCBoZW5jZSB0aGUgbWFjcm8KLSAgIG5vdCBwcmVzZW50IGluIHVuaXN0ZC5oLiBCdXQgdGhleSBzdGlsbCBjYW4gYmUgaW1wbGVtZW50ZWQgYXMgYW4gZXh0ZXJuYWwKLSAgIGxpYnJhcnkgKGUuZy4gZ251IHB0aCBpbiBwdGhyZWFkIGVtdWxhdGlvbikgKi8KLSMgaWZkZWYgSEFWRV9QVEhSRUFEX0gKLSMgIGluY2x1ZGUgPHB0aHJlYWQuaD4gLyogX1BPU0lYX1RIUkVBRFMgKi8KLSMgZW5kaWYKKyNpbmNsdWRlICJjb25kdmFyLmgiCisjaWZuZGVmIFB5X0hBVkVfQ09ORFZBUgorI2Vycm9yIFlvdSBuZWVkIGVpdGhlciBhIFBPU0lYLWNvbXBhdGlibGUgb3IgYSBXaW5kb3dzIHN5c3RlbSEKICNlbmRpZgogCi0KLSNpZmRlZiBfUE9TSVhfVEhSRUFEUwotCi0vKgotICogUE9TSVggc3VwcG9ydAotICovCi0KLSNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0KLSNkZWZpbmUgQUREX01JQ1JPU0VDT05EUyh0diwgaW50ZXJ2YWwpIFwKLWRvIHsgXAotICAgIHR2LnR2X3VzZWMgKz0gKGxvbmcpIGludGVydmFsOyBcCi0gICAgdHYudHZfc2VjICs9IHR2LnR2X3VzZWMgLyAxMDAwMDAwOyBcCi0gICAgdHYudHZfdXNlYyAlPSAxMDAwMDAwOyBcCi19IHdoaWxlICgwKQotCi0vKiBXZSBhc3N1bWUgYWxsIG1vZGVybiBQT1NJWCBzeXN0ZW1zIGhhdmUgZ2V0dGltZW9mZGF5KCkgKi8KLSNpZmRlZiBHRVRUSU1FT0ZEQVlfTk9fVFoKLSNkZWZpbmUgR0VUVElNRU9GREFZKHB0dikgZ2V0dGltZW9mZGF5KHB0dikKLSNlbHNlCi0jZGVmaW5lIEdFVFRJTUVPRkRBWShwdHYpIGdldHRpbWVvZmRheShwdHYsIChzdHJ1Y3QgdGltZXpvbmUgKilOVUxMKQotI2VuZGlmCi0KLSNkZWZpbmUgTVVURVhfVCBwdGhyZWFkX211dGV4X3QKKyNkZWZpbmUgTVVURVhfVCBQeU1VVEVYX1QKICNkZWZpbmUgTVVURVhfSU5JVChtdXQpIFwKLSAgICBpZiAocHRocmVhZF9tdXRleF9pbml0KCZtdXQsIE5VTEwpKSB7IFwKLSAgICAgICAgUHlfRmF0YWxFcnJvcigicHRocmVhZF9tdXRleF9pbml0KCIgI211dCAiKSBmYWlsZWQiKTsgfTsKKyAgICBpZiAoUHlNVVRFWF9JTklUKCYobXV0KSkpIHsgXAorICAgICAgICBQeV9GYXRhbEVycm9yKCJQeU1VVEVYX0lOSVQoIiAjbXV0ICIpIGZhaWxlZCIpOyB9OwogI2RlZmluZSBNVVRFWF9GSU5JKG11dCkgXAotICAgIGlmIChwdGhyZWFkX211dGV4X2Rlc3Ryb3koJm11dCkpIHsgXAotICAgICAgICBQeV9GYXRhbEVycm9yKCJwdGhyZWFkX211dGV4X2Rlc3Ryb3koIiAjbXV0ICIpIGZhaWxlZCIpOyB9OworICAgIGlmIChQeU1VVEVYX0ZJTkkoJihtdXQpKSkgeyBcCisgICAgICAgIFB5X0ZhdGFsRXJyb3IoIlB5TVVURVhfRklOSSgiICNtdXQgIikgZmFpbGVkIik7IH07CiAjZGVmaW5lIE1VVEVYX0xPQ0sobXV0KSBcCi0gICAgaWYgKHB0aHJlYWRfbXV0ZXhfbG9jaygmbXV0KSkgeyBcCi0gICAgICAgIFB5X0ZhdGFsRXJyb3IoInB0aHJlYWRfbXV0ZXhfbG9jaygiICNtdXQgIikgZmFpbGVkIik7IH07CisgICAgaWYgKFB5TVVURVhfTE9DSygmKG11dCkpKSB7IFwKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlNVVRFWF9MT0NLKCIgI211dCAiKSBmYWlsZWQiKTsgfTsKICNkZWZpbmUgTVVURVhfVU5MT0NLKG11dCkgXAotICAgIGlmIChwdGhyZWFkX211dGV4X3VubG9jaygmbXV0KSkgeyBcCi0gICAgICAgIFB5X0ZhdGFsRXJyb3IoInB0aHJlYWRfbXV0ZXhfdW5sb2NrKCIgI211dCAiKSBmYWlsZWQiKTsgfTsKKyAgICBpZiAoUHlNVVRFWF9VTkxPQ0soJihtdXQpKSkgeyBcCisgICAgICAgIFB5X0ZhdGFsRXJyb3IoIlB5TVVURVhfVU5MT0NLKCIgI211dCAiKSBmYWlsZWQiKTsgfTsKIAotI2RlZmluZSBDT05EX1QgcHRocmVhZF9jb25kX3QKKyNkZWZpbmUgQ09ORF9UIFB5Q09ORF9UCiAjZGVmaW5lIENPTkRfSU5JVChjb25kKSBcCi0gICAgaWYgKHB0aHJlYWRfY29uZF9pbml0KCZjb25kLCBOVUxMKSkgeyBcCi0gICAgICAgIFB5X0ZhdGFsRXJyb3IoInB0aHJlYWRfY29uZF9pbml0KCIgI2NvbmQgIikgZmFpbGVkIik7IH07CisgICAgaWYgKFB5Q09ORF9JTklUKCYoY29uZCkpKSB7IFwKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlDT05EX0lOSVQoIiAjY29uZCAiKSBmYWlsZWQiKTsgfTsKICNkZWZpbmUgQ09ORF9GSU5JKGNvbmQpIFwKLSAgICBpZiAocHRocmVhZF9jb25kX2Rlc3Ryb3koJmNvbmQpKSB7IFwKLSAgICAgICAgUHlfRmF0YWxFcnJvcigicHRocmVhZF9jb25kX2Rlc3Ryb3koIiAjY29uZCAiKSBmYWlsZWQiKTsgfTsKKyAgICBpZiAoUHlDT05EX0ZJTkkoJihjb25kKSkpIHsgXAorICAgICAgICBQeV9GYXRhbEVycm9yKCJQeUNPTkRfRklOSSgiICNjb25kICIpIGZhaWxlZCIpOyB9OwogI2RlZmluZSBDT05EX1NJR05BTChjb25kKSBcCi0gICAgaWYgKHB0aHJlYWRfY29uZF9zaWduYWwoJmNvbmQpKSB7IFwKLSAgICAgICAgUHlfRmF0YWxFcnJvcigicHRocmVhZF9jb25kX3NpZ25hbCgiICNjb25kICIpIGZhaWxlZCIpOyB9OworICAgIGlmIChQeUNPTkRfU0lHTkFMKCYoY29uZCkpKSB7IFwKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlDT05EX1NJR05BTCgiICNjb25kICIpIGZhaWxlZCIpOyB9OwogI2RlZmluZSBDT05EX1dBSVQoY29uZCwgbXV0KSBcCi0gICAgaWYgKHB0aHJlYWRfY29uZF93YWl0KCZjb25kLCAmbXV0KSkgeyBcCi0gICAgICAgIFB5X0ZhdGFsRXJyb3IoInB0aHJlYWRfY29uZF93YWl0KCIgI2NvbmQgIikgZmFpbGVkIik7IH07CisgICAgaWYgKFB5Q09ORF9XQUlUKCYoY29uZCksICYobXV0KSkpIHsgXAorICAgICAgICBQeV9GYXRhbEVycm9yKCJQeUNPTkRfV0FJVCgiICNjb25kICIpIGZhaWxlZCIpOyB9OwogI2RlZmluZSBDT05EX1RJTUVEX1dBSVQoY29uZCwgbXV0LCBtaWNyb3NlY29uZHMsIHRpbWVvdXRfcmVzdWx0KSBcCiAgICAgeyBcCi0gICAgICAgIGludCByOyBcCi0gICAgICAgIHN0cnVjdCB0aW1lc3BlYyB0czsgXAotICAgICAgICBzdHJ1Y3QgdGltZXZhbCBkZWFkbGluZTsgXAotICAgICAgICBcCi0gICAgICAgIEdFVFRJTUVPRkRBWSgmZGVhZGxpbmUpOyBcCi0gICAgICAgIEFERF9NSUNST1NFQ09ORFMoZGVhZGxpbmUsIG1pY3Jvc2Vjb25kcyk7IFwKLSAgICAgICAgdHMudHZfc2VjID0gZGVhZGxpbmUudHZfc2VjOyBcCi0gICAgICAgIHRzLnR2X25zZWMgPSBkZWFkbGluZS50dl91c2VjICogMTAwMDsgXAotICAgICAgICBcCi0gICAgICAgIHIgPSBwdGhyZWFkX2NvbmRfdGltZWR3YWl0KCZjb25kLCAmbXV0LCAmdHMpOyBcCi0gICAgICAgIGlmIChyID09IEVUSU1FRE9VVCkgXAorICAgICAgICBpbnQgciA9IFB5Q09ORF9USU1FRFdBSVQoJihjb25kKSwgJihtdXQpLCAobWljcm9zZWNvbmRzKSk7IFwKKyAgICAgICAgaWYgKHIgPCAwKSBcCisgICAgICAgICAgICBQeV9GYXRhbEVycm9yKCJQeUNPTkRfV0FJVCgiICNjb25kICIpIGZhaWxlZCIpOyBcCisgICAgICAgIGlmIChyKSAvKiAxID09IHRpbWVvdXQsIDIgPT0gaW1wbC4gY2FuJ3Qgc2F5LCBzbyBhc3N1bWUgdGltZW91dCAqLyBcCiAgICAgICAgICAgICB0aW1lb3V0X3Jlc3VsdCA9IDE7IFwKLSAgICAgICAgZWxzZSBpZiAocikgXAotICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigicHRocmVhZF9jb25kX3RpbWVkd2FpdCgiICNjb25kICIpIGZhaWxlZCIpOyBcCiAgICAgICAgIGVsc2UgXAogICAgICAgICAgICAgdGltZW91dF9yZXN1bHQgPSAwOyBcCiAgICAgfSBcCiAKLSNlbGlmIGRlZmluZWQoTlRfVEhSRUFEUykKLQotLyoKLSAqIFdpbmRvd3MgKDIwMDAgYW5kIGxhdGVyLCBhcyB3ZWxsIGFzIChob3BlZnVsbHkpIENFKSBzdXBwb3J0Ci0gKi8KLQotI2luY2x1ZGUgPHdpbmRvd3MuaD4KLQotI2RlZmluZSBNVVRFWF9UIENSSVRJQ0FMX1NFQ1RJT04KLSNkZWZpbmUgTVVURVhfSU5JVChtdXQpIGRvIHsgXAotICAgIGlmICghKEluaXRpYWxpemVDcml0aWNhbFNlY3Rpb25BbmRTcGluQ291bnQoJihtdXQpLCA0MDAwKSkpIFwKLSAgICAgICAgUHlfRmF0YWxFcnJvcigiQ3JlYXRlTXV0ZXgoIiAjbXV0ICIpIGZhaWxlZCIpOyBcCi19IHdoaWxlICgwKQotI2RlZmluZSBNVVRFWF9GSU5JKG11dCkgXAotICAgIERlbGV0ZUNyaXRpY2FsU2VjdGlvbigmKG11dCkpCi0jZGVmaW5lIE1VVEVYX0xPQ0sobXV0KSBcCi0gICAgRW50ZXJDcml0aWNhbFNlY3Rpb24oJihtdXQpKQotI2RlZmluZSBNVVRFWF9VTkxPQ0sobXV0KSBcCi0gICAgTGVhdmVDcml0aWNhbFNlY3Rpb24oJihtdXQpKQotCi0vKiBXZSBlbXVsYXRlIGNvbmRpdGlvbiB2YXJpYWJsZXMgd2l0aCBhIHNlbWFwaG9yZS4KLSAgIFdlIHVzZSBhIFNlbWFwaG9yZSByYXRoZXIgdGhhbiBhbiBhdXRvLXJlc2V0IGV2ZW50LCBiZWNhdXNlIGFsdGhvdWdoCi0gICBhbiBhdXRvLXJlc2VudCBldmVudCBtaWdodCBhcHBlYXIgdG8gc29sdmUgdGhlIGxvc3Qtd2FrZXVwIGJ1ZyAocmFjZQotICAgY29uZGl0aW9uIGJldHdlZW4gcmVsZWFzaW5nIHRoZSBvdXRlciBsb2NrIGFuZCB3YWl0aW5nKSBiZWNhdXNlIGl0Ci0gICBtYWludGFpbnMgc3RhdGUgZXZlbiB0aG91Z2ggYSB3YWl0IGhhc24ndCBoYXBwZW5lZCwgdGhlcmUgaXMgc3RpbGwKLSAgIGEgbG9zdCB3YWtldXAgcHJvYmxlbSBpZiBtb3JlIHRoYW4gb25lIHRocmVhZCBhcmUgaW50ZXJydXB0ZWQgaW4gdGhlCi0gICBjcml0aWNhbCBwbGFjZS4gIEEgc2VtYXBob3JlIHNvbHZlcyB0aGF0LgotICAgQmVjYXVzZSBpdCBpcyBvayB0byBzaWduYWwgYSBjb25kaXRpb24gdmFyaWFibGUgd2l0aCBubyBvbmUKLSAgIHdhaXRpbmcsIHdlIG5lZWQgdG8ga2VlcCB0cmFjayBvZiB0aGUgbnVtYmVyIG9mCi0gICB3YWl0aW5nIHRocmVhZHMuICBPdGhlcndpc2UsIHRoZSBzZW1hcGhvcmUncyBzdGF0ZSBjb3VsZCByaXNlCi0gICB3aXRob3V0IGJvdW5kLgotCi0gICBHZW5lcmljIGVtdWxhdGlvbnMgb2YgdGhlIHB0aHJlYWRfY29uZF8qIEFQSSB1c2luZwotICAgV2luMzIgZnVuY3Rpb25zIGNhbiBiZSBmb3VuZCBvbiB0aGUgV2ViLgotICAgVGhlIGZvbGxvd2luZyByZWFkIGNhbiBiZSBlZGlmaWNhdGluZyAob3Igbm90KToKLSAgIGh0dHA6Ly93d3cuY3NlLnd1c3RsLmVkdS9+c2NobWlkdC93aW4zMi1jdi0xLmh0bWwKLSovCi10eXBlZGVmIHN0cnVjdCBDT05EX1QKLXsKLSAgICBIQU5ETEUgc2VtOyAgICAvKiB0aGUgc2VtYXBob3JlICovCi0gICAgaW50IG5fd2FpdGluZzsgLyogaG93IG1hbnkgYXJlIHVucmVsZWFzZWQgKi8KLX0gQ09ORF9UOwotCi1fX2lubGluZSBzdGF0aWMgdm9pZCBfY29uZF9pbml0KENPTkRfVCAqY29uZCkKLXsKLSAgICAvKiBBIHNlbWFwaG9yZSB3aXRoIGEgbGFyZ2UgbWF4IHZhbHVlLCAgVGhlIHBvc2l0aXZlIHZhbHVlCi0gICAgICogaXMgb25seSBuZWVkZWQgdG8gY2F0Y2ggdGhvc2UgImxvc3Qgd2FrZXVwIiBldmVudHMgYW5kCi0gICAgICogcmFjZSBjb25kaXRpb25zIHdoZW4gYSB0aW1lZCB3YWl0IGVsYXBzZXMuCi0gICAgICovCi0gICAgaWYgKCEoY29uZC0+c2VtID0gQ3JlYXRlU2VtYXBob3JlKE5VTEwsIDAsIDEwMDAsIE5VTEwpKSkKLSAgICAgICAgUHlfRmF0YWxFcnJvcigiQ3JlYXRlU2VtYXBob3JlKCkgZmFpbGVkIik7Ci0gICAgY29uZC0+bl93YWl0aW5nID0gMDsKLX0KLQotX19pbmxpbmUgc3RhdGljIHZvaWQgX2NvbmRfZmluaShDT05EX1QgKmNvbmQpCi17Ci0gICAgQk9PTCBvayA9IENsb3NlSGFuZGxlKGNvbmQtPnNlbSk7Ci0gICAgaWYgKCFvaykKLSAgICAgICAgUHlfRmF0YWxFcnJvcigiQ2xvc2VIYW5kbGUoKSBmYWlsZWQiKTsKLX0KLQotX19pbmxpbmUgc3RhdGljIHZvaWQgX2NvbmRfd2FpdChDT05EX1QgKmNvbmQsIE1VVEVYX1QgKm11dCkKLXsKLSAgICArK2NvbmQtPm5fd2FpdGluZzsKLSAgICBNVVRFWF9VTkxPQ0soKm11dCk7Ci0gICAgLyogImxvc3Qgd2FrZXVwIGJ1ZyIgd291bGQgb2NjdXIgaWYgdGhlIGNhbGxlciB3ZXJlIGludGVycnVwdGVkIGhlcmUsCi0gICAgICogYnV0IHdlIGFyZSBzYWZlIGJlY2F1c2Ugd2UgYXJlIHVzaW5nIGEgc2VtYXBob3JlIHdpY2ggaGFzIGFuIGludGVybmFsCi0gICAgICogY291bnQuCi0gICAgICovCi0gICAgaWYgKFdhaXRGb3JTaW5nbGVPYmplY3QoY29uZC0+c2VtLCBJTkZJTklURSkgPT0gV0FJVF9GQUlMRUQpCi0gICAgICAgIFB5X0ZhdGFsRXJyb3IoIldhaXRGb3JTaW5nbGVPYmplY3QoKSBmYWlsZWQiKTsKLSAgICBNVVRFWF9MT0NLKCptdXQpOwotfQotCi1fX2lubGluZSBzdGF0aWMgaW50IF9jb25kX3RpbWVkX3dhaXQoQ09ORF9UICpjb25kLCBNVVRFWF9UICptdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdXMpCi17Ci0gICAgRFdPUkQgcjsKLSAgICArK2NvbmQtPm5fd2FpdGluZzsKLSAgICBNVVRFWF9VTkxPQ0soKm11dCk7Ci0gICAgciA9IFdhaXRGb3JTaW5nbGVPYmplY3QoY29uZC0+c2VtLCB1cyAvIDEwMDApOwotICAgIGlmIChyID09IFdBSVRfRkFJTEVEKQotICAgICAgICBQeV9GYXRhbEVycm9yKCJXYWl0Rm9yU2luZ2xlT2JqZWN0KCkgZmFpbGVkIik7Ci0gICAgTVVURVhfTE9DSygqbXV0KTsKLSAgICBpZiAociA9PSBXQUlUX1RJTUVPVVQpCi0gICAgICAgIC0tY29uZC0+bl93YWl0aW5nOwotICAgICAgICAvKiBIZXJlIHdlIGhhdmUgYSBiZW5pZ24gcmFjZSBjb25kaXRpb24gd2l0aCBfY29uZF9zaWduYWwuICBJZiB0aGUKLSAgICAgICAgICogd2FpdCBvcGVyYXRpb24gaGFzIHRpbWVkIG91dCwgYnV0IGJlZm9yZSB3ZSBjYW4gYWNxdWlyZSB0aGUKLSAgICAgICAgICogbXV0ZXggYWdhaW4gdG8gZGVjcmVtZW50IG5fd2FpdGluZywgYSB0aHJlYWQgaG9sZGluZyB0aGUgbXV0ZXgKLSAgICAgICAgICogc3RpbGwgc2VlcyBhIHBvc2l0aXZlIG5fd2FpdGluZyB2YWx1ZSBhbmQgbWF5IGNhbGwKLSAgICAgICAgICogUmVsZWFzZVNlbWFwaG9yZSBhbmQgZGVjcmVtZW50IG5fd2FpdGluZy4KLSAgICAgICAgICogVGhpcyB3aWxsIGNhdXNlIG5fd2FpdGluZyB0byBiZSBkZWNyZW1lbnRlZCB0d2ljZS4KLSAgICAgICAgICogVGhpcyBpcyBiZW5pZ24sIHRob3VnaCwgYmVjYXVzZSBSZWxlYXNlU2VtYXBob3JlIHdpbGwgYWxzbyBoYXZlCi0gICAgICAgICAqIGJlZW4gY2FsbGVkLCBsZWF2aW5nIHRoZSBzZW1hcGhvcmUgc3RhdGUgcG9zaXRpdmUuICBXZSBtYXkKLSAgICAgICAgICogdGh1cyBlbmQgdXAgd2l0aCBzZW1hcGhvcmUgaW4gc3RhdGUgMSwgYW5kIG5fd2FpdGluZyA9PSAtMSwgYW5kCi0gICAgICAgICAqIHRoZSBuZXh0IHRpbWUgc29tZW9uZSBjYWxscyBfY29uZF93YWl0KCksIHRoYXQgdGhyZWFkIHdpbGwKLSAgICAgICAgICogcGFzcyByaWdodCB0aHJvdWdoLCBkZWNyZW1lbnRpbmcgdGhlIHNlbWFwaG9yZSBzdGF0ZSBhbmQKLSAgICAgICAgICogaW5jcmVtZW50aW5nIG5fd2FpdGluZywgdGh1cyBjb3JyZWN0aW5nIHRoZSBleHRyYSBfY29uZF9zaWduYWwuCi0gICAgICAgICAqLwotICAgIHJldHVybiByID09IFdBSVRfVElNRU9VVDsKLX0KLQotX19pbmxpbmUgc3RhdGljIHZvaWQgX2NvbmRfc2lnbmFsKENPTkRfVCAgKmNvbmQpIHsKLSAgICAvKiBOT1RFOiBUaGlzIG11c3QgYmUgY2FsbGVkIHdpdGggdGhlIG11dGV4IGhlbGQgKi8KLSAgICBpZiAoY29uZC0+bl93YWl0aW5nID4gMCkgewotICAgICAgICBpZiAoIVJlbGVhc2VTZW1hcGhvcmUoY29uZC0+c2VtLCAxLCBOVUxMKSkKLSAgICAgICAgICAgIFB5X0ZhdGFsRXJyb3IoIlJlbGVhc2VTZW1hcGhvcmUoKSBmYWlsZWQiKTsKLSAgICAgICAgLS1jb25kLT5uX3dhaXRpbmc7Ci0gICAgfQotfQotCi0jZGVmaW5lIENPTkRfSU5JVChjb25kKSBcCi0gICAgX2NvbmRfaW5pdCgmKGNvbmQpKQotI2RlZmluZSBDT05EX0ZJTkkoY29uZCkgXAotICAgIF9jb25kX2ZpbmkoJihjb25kKSkKLSNkZWZpbmUgQ09ORF9TSUdOQUwoY29uZCkgXAotICAgIF9jb25kX3NpZ25hbCgmKGNvbmQpKQotI2RlZmluZSBDT05EX1dBSVQoY29uZCwgbXV0KSBcCi0gICAgX2NvbmRfd2FpdCgmKGNvbmQpLCAmKG11dCkpCi0jZGVmaW5lIENPTkRfVElNRURfV0FJVChjb25kLCBtdXQsIHVzLCB0aW1lb3V0X3Jlc3VsdCkgZG8geyBcCi0gICAgKHRpbWVvdXRfcmVzdWx0KSA9IF9jb25kX3RpbWVkX3dhaXQoJihjb25kKSwgJihtdXQpLCB1cyk7IFwKLX0gd2hpbGUgKDApCi0KLSNlbHNlCi0KLSNlcnJvciBZb3UgbmVlZCBlaXRoZXIgYSBQT1NJWC1jb21wYXRpYmxlIG9yIGEgV2luZG93cyBzeXN0ZW0hCi0KLSNlbmRpZiAvKiBfUE9TSVhfVEhSRUFEUywgTlRfVEhSRUFEUyAqLwogCiAKIC8qIFdoZXRoZXIgdGhlIEdJTCBpcyBhbHJlYWR5IHRha2VuICgtMSBpZiB1bmluaXRpYWxpemVkKS4gVGhpcyBpcyBhdG9taWMKQEAgLTMxMywxMyArMTQ5LDE0IEBACiAKIHN0YXRpYyB2b2lkIGRlc3Ryb3lfZ2lsKHZvaWQpCiB7CisgICAgLyogc29tZSBwdGhyZWFkLWxpa2UgaW1wbGVtZW50YXRpb25zIHRpZSB0aGUgbXV0ZXggdG8gdGhlIGNvbmQKKyAgICAgKiBhbmQgbXVzdCBoYXZlIHRoZSBjb25kIGRlc3Ryb3llZCBmaXJzdC4KKyAgICAgKi8KKyAgICBDT05EX0ZJTkkoZ2lsX2NvbmQpOwogICAgIE1VVEVYX0ZJTkkoZ2lsX211dGV4KTsKICNpZmRlZiBGT1JDRV9TV0lUQ0hJTkcKLSAgICBNVVRFWF9GSU5JKHN3aXRjaF9tdXRleCk7Ci0jZW5kaWYKLSAgICBDT05EX0ZJTkkoZ2lsX2NvbmQpOwotI2lmZGVmIEZPUkNFX1NXSVRDSElORwogICAgIENPTkRfRklOSShzd2l0Y2hfY29uZCk7CisgICAgTVVURVhfRklOSShzd2l0Y2hfbXV0ZXgpOwogI2VuZGlmCiAgICAgX1B5X2F0b21pY19zdG9yZV9leHBsaWNpdCgmZ2lsX2xvY2tlZCwgLTEsIF9QeV9tZW1vcnlfb3JkZXJfcmVsZWFzZSk7CiAgICAgX1B5X0FOTk9UQVRFX1JXTE9DS19ERVNUUk9ZKCZnaWxfbG9ja2VkKTsKQEAgLTM1NSwxMyArMTkyLDEzIEBACiAgICAgICAgIE1VVEVYX0xPQ0soc3dpdGNoX211dGV4KTsKICAgICAgICAgLyogTm90IHN3aXRjaGVkIHlldCA9PiB3YWl0ICovCiAgICAgICAgIGlmIChfUHlfYXRvbWljX2xvYWRfcmVsYXhlZCgmZ2lsX2xhc3RfaG9sZGVyKSA9PSB0c3RhdGUpIHsKLQkgICAgUkVTRVRfR0lMX0RST1BfUkVRVUVTVCgpOworICAgICAgICBSRVNFVF9HSUxfRFJPUF9SRVFVRVNUKCk7CiAgICAgICAgICAgICAvKiBOT1RFOiBpZiBDT05EX1dBSVQgZG9lcyBub3QgYXRvbWljYWxseSBzdGFydCB3YWl0aW5nIHdoZW4KICAgICAgICAgICAgICAgIHJlbGVhc2luZyB0aGUgbXV0ZXgsIGFub3RoZXIgdGhyZWFkIGNhbiBydW4gdGhyb3VnaCwgdGFrZQogICAgICAgICAgICAgICAgdGhlIEdJTCBhbmQgZHJvcCBpdCBhZ2FpbiwgYW5kIHJlc2V0IHRoZSBjb25kaXRpb24KICAgICAgICAgICAgICAgIGJlZm9yZSB3ZSBldmVuIGhhZCBhIGNoYW5jZSB0byB3YWl0IGZvciBpdC4gKi8KICAgICAgICAgICAgIENPTkRfV0FJVChzd2l0Y2hfY29uZCwgc3dpdGNoX211dGV4KTsKLQl9CisgICAgfQogICAgICAgICBNVVRFWF9VTkxPQ0soc3dpdGNoX211dGV4KTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1B5dGhvbi9jb2RlY3MuYyBiL1B5dGhvbi9jb2RlY3MuYwppbmRleCBjN2Y0YTljLi43OTdhNDVmIDEwMDY0NAotLS0gYS9QeXRob24vY29kZWNzLmMKKysrIGIvUHl0aG9uL2NvZGVjcy5jCkBAIC0xMSw2ICsxMSw4IEBACiAjaW5jbHVkZSAiUHl0aG9uLmgiCiAjaW5jbHVkZSA8Y3R5cGUuaD4KIAorY29uc3QgY2hhciAqUHlfaGV4ZGlnaXRzID0gIjAxMjM0NTY3ODlhYmNkZWYiOworCiAvKiAtLS0gQ29kZWMgUmVnaXN0cnkgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KIAogLyogSW1wb3J0IHRoZSBzdGFuZGFyZCBlbmNvZGluZ3MgcGFja2FnZSB3aGljaCB3aWxsIHJlZ2lzdGVyIHRoZSBmaXJzdApAQCAtNDY1LDkgKzQ2NywxMSBAQAogCiBzdGF0aWMgdm9pZCB3cm9uZ19leGNlcHRpb25fdHlwZShQeU9iamVjdCAqZXhjKQogewotICAgIFB5T2JqZWN0ICp0eXBlID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhleGMsICJfX2NsYXNzX18iKTsKKyAgICBfUHlfSURFTlRJRklFUihfX2NsYXNzX18pOworICAgIF9QeV9JREVOVElGSUVSKF9fbmFtZV9fKTsKKyAgICBQeU9iamVjdCAqdHlwZSA9IF9QeU9iamVjdF9HZXRBdHRySWQoZXhjLCAmUHlJZF9fX2NsYXNzX18pOwogICAgIGlmICh0eXBlICE9IE5VTEwpIHsKLSAgICAgICAgUHlPYmplY3QgKm5hbWUgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHR5cGUsICJfX25hbWVfXyIpOworICAgICAgICBQeU9iamVjdCAqbmFtZSA9IF9QeU9iamVjdF9HZXRBdHRySWQodHlwZSwgJlB5SWRfX19uYW1lX18pOwogICAgICAgICBQeV9ERUNSRUYodHlwZSk7CiAgICAgICAgIGlmIChuYW1lICE9IE5VTEwpIHsKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCkBAIC01MDYsNTcgKzUxMCw1OCBAQAogICAgICAgICB3cm9uZ19leGNlcHRpb25fdHlwZShleGMpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgLyogb3VjaDogcGFzc2luZyBOVUxMLCAwLCBwb3MgZ2l2ZXMgTm9uZSBpbnN0ZWFkIG9mIHUnJyAqLwotICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIodSNuKSIsICZlbmQsIDAsIGVuZCk7CisgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihObikiLCBQeVVuaWNvZGVfTmV3KDAsIDApLCBlbmQpOwogfQogCiAKIFB5T2JqZWN0ICpQeUNvZGVjX1JlcGxhY2VFcnJvcnMoUHlPYmplY3QgKmV4YykKIHsKLSAgICBQeU9iamVjdCAqcmVzdHVwbGU7Ci0gICAgUHlfc3NpemVfdCBzdGFydDsKLSAgICBQeV9zc2l6ZV90IGVuZDsKLSAgICBQeV9zc2l6ZV90IGk7CisgICAgUHlfc3NpemVfdCBzdGFydCwgZW5kLCBpLCBsZW47CiAKICAgICBpZiAoUHlPYmplY3RfSXNJbnN0YW5jZShleGMsIFB5RXhjX1VuaWNvZGVFbmNvZGVFcnJvcikpIHsKICAgICAgICAgUHlPYmplY3QgKnJlczsKLSAgICAgICAgUHlfVU5JQ09ERSAqcDsKKyAgICAgICAgaW50IGtpbmQ7CisgICAgICAgIHZvaWQgKmRhdGE7CiAgICAgICAgIGlmIChQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRTdGFydChleGMsICZzdGFydCkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKFB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuZChleGMsICZlbmQpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIHJlcyA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLCBlbmQtc3RhcnQpOworICAgICAgICBsZW4gPSBlbmQgLSBzdGFydDsKKyAgICAgICAgcmVzID0gUHlVbmljb2RlX05ldyhsZW4sICc/Jyk7CiAgICAgICAgIGlmIChyZXMgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBmb3IgKHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXMpLCBpID0gc3RhcnQ7Ci0gICAgICAgICAgICBpPGVuZDsgKytwLCArK2kpCi0gICAgICAgICAgICAqcCA9ICc/JzsKLSAgICAgICAgcmVzdHVwbGUgPSBQeV9CdWlsZFZhbHVlKCIoT24pIiwgcmVzLCBlbmQpOwotICAgICAgICBQeV9ERUNSRUYocmVzKTsKLSAgICAgICAgcmV0dXJuIHJlc3R1cGxlOworICAgICAgICBraW5kID0gUHlVbmljb2RlX0tJTkQocmVzKTsKKyAgICAgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKHJlcyk7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCBsZW47ICsraSkKKyAgICAgICAgICAgIFB5VW5pY29kZV9XUklURShraW5kLCBkYXRhLCBpLCAnPycpOworICAgICAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJlcywgMSkpOworICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKE5uKSIsIHJlcywgZW5kKTsKICAgICB9CiAgICAgZWxzZSBpZiAoUHlPYmplY3RfSXNJbnN0YW5jZShleGMsIFB5RXhjX1VuaWNvZGVEZWNvZGVFcnJvcikpIHsKLSAgICAgICAgUHlfVU5JQ09ERSByZXMgPSBQeV9VTklDT0RFX1JFUExBQ0VNRU5UX0NIQVJBQ1RFUjsKICAgICAgICAgaWYgKFB5VW5pY29kZURlY29kZUVycm9yX0dldEVuZChleGMsICZlbmQpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIodSNuKSIsICZyZXMsIDEsIGVuZCk7CisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoQ24pIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludClQeV9VTklDT0RFX1JFUExBQ0VNRU5UX0NIQVJBQ1RFUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kKTsKICAgICB9CiAgICAgZWxzZSBpZiAoUHlPYmplY3RfSXNJbnN0YW5jZShleGMsIFB5RXhjX1VuaWNvZGVUcmFuc2xhdGVFcnJvcikpIHsKICAgICAgICAgUHlPYmplY3QgKnJlczsKLSAgICAgICAgUHlfVU5JQ09ERSAqcDsKKyAgICAgICAgaW50IGtpbmQ7CisgICAgICAgIHZvaWQgKmRhdGE7CiAgICAgICAgIGlmIChQeVVuaWNvZGVUcmFuc2xhdGVFcnJvcl9HZXRTdGFydChleGMsICZzdGFydCkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKFB5VW5pY29kZVRyYW5zbGF0ZUVycm9yX0dldEVuZChleGMsICZlbmQpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIHJlcyA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLCBlbmQtc3RhcnQpOworICAgICAgICBsZW4gPSBlbmQgLSBzdGFydDsKKyAgICAgICAgcmVzID0gUHlVbmljb2RlX05ldyhsZW4sIFB5X1VOSUNPREVfUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKICAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIGZvciAocCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlcyksIGkgPSBzdGFydDsKLSAgICAgICAgICAgIGk8ZW5kOyArK3AsICsraSkKLSAgICAgICAgICAgICpwID0gUHlfVU5JQ09ERV9SRVBMQUNFTUVOVF9DSEFSQUNURVI7Ci0gICAgICAgIHJlc3R1cGxlID0gUHlfQnVpbGRWYWx1ZSgiKE9uKSIsIHJlcywgZW5kKTsKLSAgICAgICAgUHlfREVDUkVGKHJlcyk7Ci0gICAgICAgIHJldHVybiByZXN0dXBsZTsKKyAgICAgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKHJlcyk7CisgICAgICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShyZXMpOworICAgICAgICBmb3IgKGk9MDsgaSA8IGxlbjsgaSsrKQorICAgICAgICAgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIGksIFB5X1VOSUNPREVfUkVQTEFDRU1FTlRfQ0hBUkFDVEVSKTsKKyAgICAgICAgYXNzZXJ0KF9QeVVuaWNvZGVfQ2hlY2tDb25zaXN0ZW5jeShyZXMsIDEpKTsKKyAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIihObikiLCByZXMsIGVuZCk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICB3cm9uZ19leGNlcHRpb25fdHlwZShleGMpOwpAQCAtNTY5LDgyICs1NzQsNzIgQEAKICAgICBpZiAoUHlPYmplY3RfSXNJbnN0YW5jZShleGMsIFB5RXhjX1VuaWNvZGVFbmNvZGVFcnJvcikpIHsKICAgICAgICAgUHlPYmplY3QgKnJlc3R1cGxlOwogICAgICAgICBQeU9iamVjdCAqb2JqZWN0OworICAgICAgICBQeV9zc2l6ZV90IGk7CiAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQ7CiAgICAgICAgIFB5X3NzaXplX3QgZW5kOwogICAgICAgICBQeU9iamVjdCAqcmVzOwotICAgICAgICBQeV9VTklDT0RFICpwOwotICAgICAgICBQeV9VTklDT0RFICpzdGFydHA7Ci0gICAgICAgIFB5X1VOSUNPREUgKm91dHA7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHA7CiAgICAgICAgIGludCByZXNzaXplOworICAgICAgICBQeV9VQ1M0IGNoOwogICAgICAgICBpZiAoUHlVbmljb2RlRW5jb2RlRXJyb3JfR2V0U3RhcnQoZXhjLCAmc3RhcnQpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGlmIChQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRFbmQoZXhjLCAmZW5kKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBpZiAoIShvYmplY3QgPSBQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRPYmplY3QoZXhjKSkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgc3RhcnRwID0gUHlVbmljb2RlX0FTX1VOSUNPREUob2JqZWN0KTsKLSAgICAgICAgZm9yIChwID0gc3RhcnRwK3N0YXJ0LCByZXNzaXplID0gMDsgcCA8IHN0YXJ0cCtlbmQ7ICsrcCkgewotICAgICAgICAgICAgaWYgKCpwPDEwKQorICAgICAgICBmb3IgKGkgPSBzdGFydCwgcmVzc2l6ZSA9IDA7IGkgPCBlbmQ7ICsraSkgeworICAgICAgICAgICAgLyogb2JqZWN0IGlzIGd1YXJhbnRlZWQgdG8gYmUgInJlYWR5IiAqLworICAgICAgICAgICAgY2ggPSBQeVVuaWNvZGVfUkVBRF9DSEFSKG9iamVjdCwgaSk7CisgICAgICAgICAgICBpZiAoY2g8MTApCiAgICAgICAgICAgICAgICAgcmVzc2l6ZSArPSAyKzErMTsKLSAgICAgICAgICAgIGVsc2UgaWYgKCpwPDEwMCkKKyAgICAgICAgICAgIGVsc2UgaWYgKGNoPDEwMCkKICAgICAgICAgICAgICAgICByZXNzaXplICs9IDIrMisxOwotICAgICAgICAgICAgZWxzZSBpZiAoKnA8MTAwMCkKKyAgICAgICAgICAgIGVsc2UgaWYgKGNoPDEwMDApCiAgICAgICAgICAgICAgICAgcmVzc2l6ZSArPSAyKzMrMTsKLSAgICAgICAgICAgIGVsc2UgaWYgKCpwPDEwMDAwKQorICAgICAgICAgICAgZWxzZSBpZiAoY2g8MTAwMDApCiAgICAgICAgICAgICAgICAgcmVzc2l6ZSArPSAyKzQrMTsKLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgICAgICBlbHNlCisgICAgICAgICAgICBlbHNlIGlmIChjaDwxMDAwMDApCiAgICAgICAgICAgICAgICAgcmVzc2l6ZSArPSAyKzUrMTsKLSNlbHNlCi0gICAgICAgICAgICBlbHNlIGlmICgqcDwxMDAwMDApCi0gICAgICAgICAgICAgICAgcmVzc2l6ZSArPSAyKzUrMTsKLSAgICAgICAgICAgIGVsc2UgaWYgKCpwPDEwMDAwMDApCisgICAgICAgICAgICBlbHNlIGlmIChjaDwxMDAwMDAwKQogICAgICAgICAgICAgICAgIHJlc3NpemUgKz0gMis2KzE7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmVzc2l6ZSArPSAyKzcrMTsKLSNlbmRpZgogICAgICAgICB9CiAgICAgICAgIC8qIGFsbG9jYXRlIHJlcGxhY2VtZW50ICovCi0gICAgICAgIHJlcyA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShOVUxMLCByZXNzaXplKTsKKyAgICAgICAgcmVzID0gUHlVbmljb2RlX05ldyhyZXNzaXplLCAxMjcpOwogICAgICAgICBpZiAocmVzID09IE5VTEwpIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihvYmplY3QpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KKyAgICAgICAgb3V0cCA9IFB5VW5pY29kZV8xQllURV9EQVRBKHJlcyk7CiAgICAgICAgIC8qIGdlbmVyYXRlIHJlcGxhY2VtZW50ICovCi0gICAgICAgIGZvciAocCA9IHN0YXJ0cCtzdGFydCwgb3V0cCA9IFB5VW5pY29kZV9BU19VTklDT0RFKHJlcyk7Ci0gICAgICAgICAgICBwIDwgc3RhcnRwK2VuZDsgKytwKSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFIGMgPSAqcDsKKyAgICAgICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7ICsraSkgewogICAgICAgICAgICAgaW50IGRpZ2l0czsKICAgICAgICAgICAgIGludCBiYXNlOworICAgICAgICAgICAgY2ggPSBQeVVuaWNvZGVfUkVBRF9DSEFSKG9iamVjdCwgaSk7CiAgICAgICAgICAgICAqb3V0cCsrID0gJyYnOwogICAgICAgICAgICAgKm91dHArKyA9ICcjJzsKLSAgICAgICAgICAgIGlmICgqcDwxMCkgeworICAgICAgICAgICAgaWYgKGNoPDEwKSB7CiAgICAgICAgICAgICAgICAgZGlnaXRzID0gMTsKICAgICAgICAgICAgICAgICBiYXNlID0gMTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKCpwPDEwMCkgeworICAgICAgICAgICAgZWxzZSBpZiAoY2g8MTAwKSB7CiAgICAgICAgICAgICAgICAgZGlnaXRzID0gMjsKICAgICAgICAgICAgICAgICBiYXNlID0gMTA7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmICgqcDwxMDAwKSB7CisgICAgICAgICAgICBlbHNlIGlmIChjaDwxMDAwKSB7CiAgICAgICAgICAgICAgICAgZGlnaXRzID0gMzsKICAgICAgICAgICAgICAgICBiYXNlID0gMTAwOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAoKnA8MTAwMDApIHsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNoPDEwMDAwKSB7CiAgICAgICAgICAgICAgICAgZGlnaXRzID0gNDsKICAgICAgICAgICAgICAgICBiYXNlID0gMTAwMDsKICAgICAgICAgICAgIH0KLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGVsc2UgaWYgKGNoPDEwMDAwMCkgewogICAgICAgICAgICAgICAgIGRpZ2l0cyA9IDU7CiAgICAgICAgICAgICAgICAgYmFzZSA9IDEwMDAwOwogICAgICAgICAgICAgfQotI2Vsc2UKLSAgICAgICAgICAgIGVsc2UgaWYgKCpwPDEwMDAwMCkgewotICAgICAgICAgICAgICAgIGRpZ2l0cyA9IDU7Ci0gICAgICAgICAgICAgICAgYmFzZSA9IDEwMDAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSBpZiAoKnA8MTAwMDAwMCkgeworICAgICAgICAgICAgZWxzZSBpZiAoY2g8MTAwMDAwMCkgewogICAgICAgICAgICAgICAgIGRpZ2l0cyA9IDY7CiAgICAgICAgICAgICAgICAgYmFzZSA9IDEwMDAwMDsKICAgICAgICAgICAgIH0KQEAgLTY1MiwxNiArNjQ3LDE1IEBACiAgICAgICAgICAgICAgICAgZGlnaXRzID0gNzsKICAgICAgICAgICAgICAgICBiYXNlID0gMTAwMDAwMDsKICAgICAgICAgICAgIH0KLSNlbmRpZgogICAgICAgICAgICAgd2hpbGUgKGRpZ2l0cy0tPjApIHsKLSAgICAgICAgICAgICAgICAqb3V0cCsrID0gJzAnICsgYy9iYXNlOwotICAgICAgICAgICAgICAgIGMgJT0gYmFzZTsKKyAgICAgICAgICAgICAgICAqb3V0cCsrID0gJzAnICsgY2gvYmFzZTsKKyAgICAgICAgICAgICAgICBjaCAlPSBiYXNlOwogICAgICAgICAgICAgICAgIGJhc2UgLz0gMTA7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAqb3V0cCsrID0gJzsnOwogICAgICAgICB9Ci0gICAgICAgIHJlc3R1cGxlID0gUHlfQnVpbGRWYWx1ZSgiKE9uKSIsIHJlcywgZW5kKTsKLSAgICAgICAgUHlfREVDUkVGKHJlcyk7CisgICAgICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kocmVzLCAxKSk7CisgICAgICAgIHJlc3R1cGxlID0gUHlfQnVpbGRWYWx1ZSgiKE5uKSIsIHJlcywgZW5kKTsKICAgICAgICAgUHlfREVDUkVGKG9iamVjdCk7CiAgICAgICAgIHJldHVybiByZXN0dXBsZTsKICAgICB9CkBAIC02NzEsODcgKzY2NSw2NSBAQAogICAgIH0KIH0KIAotc3RhdGljIFB5X1VOSUNPREUgaGV4ZGlnaXRzW10gPSB7Ci0gICAgJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsCi0gICAgJzgnLCAnOScsICdhJywgJ2InLCAnYycsICdkJywgJ2UnLCAnZicKLX07Ci0KIFB5T2JqZWN0ICpQeUNvZGVjX0JhY2tzbGFzaFJlcGxhY2VFcnJvcnMoUHlPYmplY3QgKmV4YykKIHsKLSNpZm5kZWYgUHlfVU5JQ09ERV9XSURFCi0jZGVmaW5lIElTX1NVUlJPR0FURV9QQUlSKHAsIGVuZCkgXAotICAgICgqcCA+PSAweEQ4MDAgJiYgKnAgPD0gMHhEQkZGICYmIChwICsgMSkgPCBlbmQgJiYgXAotICAgICAqKHAgKyAxKSA+PSAweERDMDAgJiYgKihwICsgMSkgPD0gMHhERkZGKQotI2Vsc2UKLSNkZWZpbmUgSVNfU1VSUk9HQVRFX1BBSVIocCwgZW5kKSAwCi0jZW5kaWYKICAgICBpZiAoUHlPYmplY3RfSXNJbnN0YW5jZShleGMsIFB5RXhjX1VuaWNvZGVFbmNvZGVFcnJvcikpIHsKICAgICAgICAgUHlPYmplY3QgKnJlc3R1cGxlOwogICAgICAgICBQeU9iamVjdCAqb2JqZWN0OworICAgICAgICBQeV9zc2l6ZV90IGk7CiAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQ7CiAgICAgICAgIFB5X3NzaXplX3QgZW5kOwogICAgICAgICBQeU9iamVjdCAqcmVzOwotICAgICAgICBQeV9VTklDT0RFICpwOwotICAgICAgICBQeV9VTklDT0RFICpzdGFydHA7Ci0gICAgICAgIFB5X1VOSUNPREUgKm91dHA7CisgICAgICAgIHVuc2lnbmVkIGNoYXIgKm91dHA7CiAgICAgICAgIGludCByZXNzaXplOworICAgICAgICBQeV9VQ1M0IGM7CiAgICAgICAgIGlmIChQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRTdGFydChleGMsICZzdGFydCkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgaWYgKFB5VW5pY29kZUVuY29kZUVycm9yX0dldEVuZChleGMsICZlbmQpKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIGlmICghKG9iamVjdCA9IFB5VW5pY29kZUVuY29kZUVycm9yX0dldE9iamVjdChleGMpKSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBzdGFydHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShvYmplY3QpOwotICAgICAgICBmb3IgKHAgPSBzdGFydHArc3RhcnQsIHJlc3NpemUgPSAwOyBwIDwgc3RhcnRwK2VuZDsgKytwKSB7Ci0jaWZkZWYgUHlfVU5JQ09ERV9XSURFCi0gICAgICAgICAgICBpZiAoKnAgPj0gMHgwMDAxMDAwMCkKKyAgICAgICAgZm9yIChpID0gc3RhcnQsIHJlc3NpemUgPSAwOyBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgIC8qIG9iamVjdCBpcyBndWFyYW50ZWVkIHRvIGJlICJyZWFkeSIgKi8KKyAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKG9iamVjdCwgaSk7CisgICAgICAgICAgICBpZiAoYyA+PSAweDEwMDAwKSB7CiAgICAgICAgICAgICAgICAgcmVzc2l6ZSArPSAxKzErODsKLSAgICAgICAgICAgIGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgaWYgKCpwID49IDB4MTAwKSB7Ci0gICAgICAgICAgICAgICAgaWYgKElTX1NVUlJPR0FURV9QQUlSKHAsIHN0YXJ0cCtlbmQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHJlc3NpemUgKz0gMSsxKzg7Ci0gICAgICAgICAgICAgICAgICAgICsrcDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICByZXNzaXplICs9IDErMSs0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAoYyA+PSAweDEwMCkgeworICAgICAgICAgICAgICAgIHJlc3NpemUgKz0gMSsxKzQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmVzc2l6ZSArPSAxKzErMjsKICAgICAgICAgfQotICAgICAgICByZXMgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoTlVMTCwgcmVzc2l6ZSk7CisgICAgICAgIHJlcyA9IFB5VW5pY29kZV9OZXcocmVzc2l6ZSwgMTI3KTsKICAgICAgICAgaWYgKHJlcz09TlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBmb3IgKHAgPSBzdGFydHArc3RhcnQsIG91dHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShyZXMpOwotICAgICAgICAgICAgcCA8IHN0YXJ0cCtlbmQ7ICsrcCkgewotICAgICAgICAgICAgUHlfVUNTNCBjID0gKFB5X1VDUzQpICpwOworICAgICAgICBmb3IgKGkgPSBzdGFydCwgb3V0cCA9IFB5VW5pY29kZV8xQllURV9EQVRBKHJlcyk7CisgICAgICAgICAgICBpIDwgZW5kOyArK2kpIHsKKyAgICAgICAgICAgIGMgPSBQeVVuaWNvZGVfUkVBRF9DSEFSKG9iamVjdCwgaSk7CiAgICAgICAgICAgICAqb3V0cCsrID0gJ1xcJzsKLSAgICAgICAgICAgIGlmIChJU19TVVJST0dBVEVfUEFJUihwLCBzdGFydHArZW5kKSkgewotICAgICAgICAgICAgICAgIGMgPSAoKCpwICYgMHgzRkYpIDw8IDEwKSArICgqKHAgKyAxKSAmIDB4M0ZGKSArIDB4MTAwMDA7Ci0gICAgICAgICAgICAgICAgKytwOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKGMgPj0gMHgwMDAxMDAwMCkgewogICAgICAgICAgICAgICAgICpvdXRwKysgPSAnVSc7Ci0gICAgICAgICAgICAgICAgKm91dHArKyA9IGhleGRpZ2l0c1soYz4+MjgpJjB4Zl07Ci0gICAgICAgICAgICAgICAgKm91dHArKyA9IGhleGRpZ2l0c1soYz4+MjQpJjB4Zl07Ci0gICAgICAgICAgICAgICAgKm91dHArKyA9IGhleGRpZ2l0c1soYz4+MjApJjB4Zl07Ci0gICAgICAgICAgICAgICAgKm91dHArKyA9IGhleGRpZ2l0c1soYz4+MTYpJjB4Zl07Ci0gICAgICAgICAgICAgICAgKm91dHArKyA9IGhleGRpZ2l0c1soYz4+MTIpJjB4Zl07Ci0gICAgICAgICAgICAgICAgKm91dHArKyA9IGhleGRpZ2l0c1soYz4+OCkmMHhmXTsKKyAgICAgICAgICAgICAgICAqb3V0cCsrID0gUHlfaGV4ZGlnaXRzWyhjPj4yOCkmMHhmXTsKKyAgICAgICAgICAgICAgICAqb3V0cCsrID0gUHlfaGV4ZGlnaXRzWyhjPj4yNCkmMHhmXTsKKyAgICAgICAgICAgICAgICAqb3V0cCsrID0gUHlfaGV4ZGlnaXRzWyhjPj4yMCkmMHhmXTsKKyAgICAgICAgICAgICAgICAqb3V0cCsrID0gUHlfaGV4ZGlnaXRzWyhjPj4xNikmMHhmXTsKKyAgICAgICAgICAgICAgICAqb3V0cCsrID0gUHlfaGV4ZGlnaXRzWyhjPj4xMikmMHhmXTsKKyAgICAgICAgICAgICAgICAqb3V0cCsrID0gUHlfaGV4ZGlnaXRzWyhjPj44KSYweGZdOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoYyA+PSAweDEwMCkgewogICAgICAgICAgICAgICAgICpvdXRwKysgPSAndSc7Ci0gICAgICAgICAgICAgICAgKm91dHArKyA9IGhleGRpZ2l0c1soYz4+MTIpJjB4Zl07Ci0gICAgICAgICAgICAgICAgKm91dHArKyA9IGhleGRpZ2l0c1soYz4+OCkmMHhmXTsKKyAgICAgICAgICAgICAgICAqb3V0cCsrID0gUHlfaGV4ZGlnaXRzWyhjPj4xMikmMHhmXTsKKyAgICAgICAgICAgICAgICAqb3V0cCsrID0gUHlfaGV4ZGlnaXRzWyhjPj44KSYweGZdOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICpvdXRwKysgPSAneCc7Ci0gICAgICAgICAgICAqb3V0cCsrID0gaGV4ZGlnaXRzWyhjPj40KSYweGZdOwotICAgICAgICAgICAgKm91dHArKyA9IGhleGRpZ2l0c1tjJjB4Zl07CisgICAgICAgICAgICAqb3V0cCsrID0gUHlfaGV4ZGlnaXRzWyhjPj40KSYweGZdOworICAgICAgICAgICAgKm91dHArKyA9IFB5X2hleGRpZ2l0c1tjJjB4Zl07CiAgICAgICAgIH0KIAotICAgICAgICByZXN0dXBsZSA9IFB5X0J1aWxkVmFsdWUoIihPbikiLCByZXMsIGVuZCk7Ci0gICAgICAgIFB5X0RFQ1JFRihyZXMpOworICAgICAgICBhc3NlcnQoX1B5VW5pY29kZV9DaGVja0NvbnNpc3RlbmN5KHJlcywgMSkpOworICAgICAgICByZXN0dXBsZSA9IFB5X0J1aWxkVmFsdWUoIihObikiLCByZXMsIGVuZCk7CiAgICAgICAgIFB5X0RFQ1JFRihvYmplY3QpOwogICAgICAgICByZXR1cm4gcmVzdHVwbGU7CiAgICAgfQpAQCAtNzU5LDcgKzczMSw2IEBACiAgICAgICAgIHdyb25nX2V4Y2VwdGlvbl90eXBlKGV4Yyk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSN1bmRlZiBJU19TVVJST0dBVEVfUEFJUgogfQogCiAvKiBUaGlzIGhhbmRsZXIgaXMgZGVjbGFyZWQgc3RhdGljIHVudGlsIHNvbWVvbmUgZGVtb25zdHJhdGVzCkBAIC03NjksMTIgKzc0MCwxMSBAQAogewogICAgIFB5T2JqZWN0ICpyZXN0dXBsZTsKICAgICBQeU9iamVjdCAqb2JqZWN0OworICAgIFB5X3NzaXplX3QgaTsKICAgICBQeV9zc2l6ZV90IHN0YXJ0OwogICAgIFB5X3NzaXplX3QgZW5kOwogICAgIFB5T2JqZWN0ICpyZXM7CiAgICAgaWYgKFB5T2JqZWN0X0lzSW5zdGFuY2UoZXhjLCBQeUV4Y19Vbmljb2RlRW5jb2RlRXJyb3IpKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgKnA7Ci0gICAgICAgIFB5X1VOSUNPREUgKnN0YXJ0cDsKICAgICAgICAgY2hhciAqb3V0cDsKICAgICAgICAgaWYgKFB5VW5pY29kZUVuY29kZUVycm9yX0dldFN0YXJ0KGV4YywgJnN0YXJ0KSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtNzgyLDE1ICs3NTIsMTUgQEAKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBpZiAoIShvYmplY3QgPSBQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRPYmplY3QoZXhjKSkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgc3RhcnRwID0gUHlVbmljb2RlX0FTX1VOSUNPREUob2JqZWN0KTsKICAgICAgICAgcmVzID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCAzKihlbmQtc3RhcnQpKTsKICAgICAgICAgaWYgKCFyZXMpIHsKICAgICAgICAgICAgIFB5X0RFQ1JFRihvYmplY3QpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICAgICAgb3V0cCA9IFB5Qnl0ZXNfQXNTdHJpbmcocmVzKTsKLSAgICAgICAgZm9yIChwID0gc3RhcnRwK3N0YXJ0OyBwIDwgc3RhcnRwK2VuZDsgcCsrKSB7Ci0gICAgICAgICAgICBQeV9VTklDT0RFIGNoID0gKnA7CisgICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHsKKyAgICAgICAgICAgIC8qIG9iamVjdCBpcyBndWFyYW50ZWVkIHRvIGJlICJyZWFkeSIgKi8KKyAgICAgICAgICAgIFB5X1VDUzQgY2ggPSBQeVVuaWNvZGVfUkVBRF9DSEFSKG9iamVjdCwgaSk7CiAgICAgICAgICAgICBpZiAoY2ggPCAweGQ4MDAgfHwgY2ggPiAweGRmZmYpIHsKICAgICAgICAgICAgICAgICAvKiBOb3QgYSBzdXJyb2dhdGUsIGZhaWwgd2l0aCBvcmlnaW5hbCBleGNlcHRpb24gKi8KICAgICAgICAgICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNlcHRpb25JbnN0YW5jZV9DbGFzcyhleGMpLCBleGMpOwpAQCAtODA5LDcgKzc3OSw3IEBACiAgICAgfQogICAgIGVsc2UgaWYgKFB5T2JqZWN0X0lzSW5zdGFuY2UoZXhjLCBQeUV4Y19Vbmljb2RlRGVjb2RlRXJyb3IpKSB7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIgKnA7Ci0gICAgICAgIFB5X1VOSUNPREUgY2ggPSAwOworICAgICAgICBQeV9VQ1M0IGNoID0gMDsKICAgICAgICAgaWYgKFB5VW5pY29kZURlY29kZUVycm9yX0dldFN0YXJ0KGV4YywgJnN0YXJ0KSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBpZiAoIShvYmplY3QgPSBQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRPYmplY3QoZXhjKSkpCkBAIC04MzUsNyArODA1LDEwIEBACiAgICAgICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNlcHRpb25JbnN0YW5jZV9DbGFzcyhleGMpLCBleGMpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIFB5X0J1aWxkVmFsdWUoIih1I24pIiwgJmNoLCAxLCBzdGFydCszKTsKKyAgICAgICAgcmVzID0gUHlVbmljb2RlX0Zyb21PcmRpbmFsKGNoKTsKKyAgICAgICAgaWYgKHJlcyA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoTm4pIiwgcmVzLCBzdGFydCszKTsKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIHdyb25nX2V4Y2VwdGlvbl90eXBlKGV4Yyk7CkBAIC04NDgsMTIgKzgyMSwxMSBAQAogewogICAgIFB5T2JqZWN0ICpyZXN0dXBsZTsKICAgICBQeU9iamVjdCAqb2JqZWN0OworICAgIFB5X3NzaXplX3QgaTsKICAgICBQeV9zc2l6ZV90IHN0YXJ0OwogICAgIFB5X3NzaXplX3QgZW5kOwogICAgIFB5T2JqZWN0ICpyZXM7CiAgICAgaWYgKFB5T2JqZWN0X0lzSW5zdGFuY2UoZXhjLCBQeUV4Y19Vbmljb2RlRW5jb2RlRXJyb3IpKSB7Ci0gICAgICAgIFB5X1VOSUNPREUgKnA7Ci0gICAgICAgIFB5X1VOSUNPREUgKnN0YXJ0cDsKICAgICAgICAgY2hhciAqb3V0cDsKICAgICAgICAgaWYgKFB5VW5pY29kZUVuY29kZUVycm9yX0dldFN0YXJ0KGV4YywgJnN0YXJ0KSkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwpAQCAtODYxLDE1ICs4MzMsMTUgQEAKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICBpZiAoIShvYmplY3QgPSBQeVVuaWNvZGVFbmNvZGVFcnJvcl9HZXRPYmplY3QoZXhjKSkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgc3RhcnRwID0gUHlVbmljb2RlX0FTX1VOSUNPREUob2JqZWN0KTsKICAgICAgICAgcmVzID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZShOVUxMLCBlbmQtc3RhcnQpOwogICAgICAgICBpZiAoIXJlcykgewogICAgICAgICAgICAgUHlfREVDUkVGKG9iamVjdCk7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogICAgICAgICBvdXRwID0gUHlCeXRlc19Bc1N0cmluZyhyZXMpOwotICAgICAgICBmb3IgKHAgPSBzdGFydHArc3RhcnQ7IHAgPCBzdGFydHArZW5kOyBwKyspIHsKLSAgICAgICAgICAgIFB5X1VOSUNPREUgY2ggPSAqcDsKKyAgICAgICAgZm9yIChpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykgeworICAgICAgICAgICAgLyogb2JqZWN0IGlzIGd1YXJhbnRlZWQgdG8gYmUgInJlYWR5IiAqLworICAgICAgICAgICAgUHlfVUNTNCBjaCA9IFB5VW5pY29kZV9SRUFEX0NIQVIob2JqZWN0LCBpKTsKICAgICAgICAgICAgIGlmIChjaCA8IDB4ZGM4MCB8fCBjaCA+IDB4ZGNmZikgewogICAgICAgICAgICAgICAgIC8qIE5vdCBhIFVURi04YiBzdXJyb2dhdGUsIGZhaWwgd2l0aCBvcmlnaW5hbCBleGNlcHRpb24gKi8KICAgICAgICAgICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNlcHRpb25JbnN0YW5jZV9DbGFzcyhleGMpLCBleGMpOwpAQCAtODg1LDggKzg1Nyw5IEBACiAgICAgICAgIHJldHVybiByZXN0dXBsZTsKICAgICB9CiAgICAgZWxzZSBpZiAoUHlPYmplY3RfSXNJbnN0YW5jZShleGMsIFB5RXhjX1VuaWNvZGVEZWNvZGVFcnJvcikpIHsKKyAgICAgICAgUHlPYmplY3QgKnN0cjsKICAgICAgICAgdW5zaWduZWQgY2hhciAqcDsKLSAgICAgICAgUHlfVU5JQ09ERSBjaFs0XTsgLyogZGVjb2RlIHVwIHRvIDQgYmFkIGJ5dGVzLiAqLworICAgICAgICBQeV9VQ1MyIGNoWzRdOyAvKiBkZWNvZGUgdXAgdG8gNCBiYWQgYnl0ZXMuICovCiAgICAgICAgIGludCBjb25zdW1lZCA9IDA7CiAgICAgICAgIGlmIChQeVVuaWNvZGVEZWNvZGVFcnJvcl9HZXRTdGFydChleGMsICZzdGFydCkpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKQEAgLTkxMSw3ICs4ODQsMTAgQEAKICAgICAgICAgICAgIFB5RXJyX1NldE9iamVjdChQeUV4Y2VwdGlvbkluc3RhbmNlX0NsYXNzKGV4YyksIGV4Yyk7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gUHlfQnVpbGRWYWx1ZSgiKHUjbikiLCBjaCwgY29uc3VtZWQsIHN0YXJ0K2NvbnN1bWVkKTsKKyAgICAgICAgc3RyID0gUHlVbmljb2RlX0Zyb21LaW5kQW5kRGF0YShQeVVuaWNvZGVfMkJZVEVfS0lORCwgY2gsIGNvbnN1bWVkKTsKKyAgICAgICAgaWYgKHN0ciA9PSBOVUxMKQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIHJldHVybiBQeV9CdWlsZFZhbHVlKCIoTm4pIiwgc3RyLCBzdGFydCtjb25zdW1lZCk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICB3cm9uZ19leGNlcHRpb25fdHlwZShleGMpOwpAQCAtMTA0OCw3ICsxMDI0LDcgQEAKICAgICBpbnRlcnAtPmNvZGVjX2Vycm9yX3JlZ2lzdHJ5ID0gUHlEaWN0X05ldygpOwogCiAgICAgaWYgKGludGVycC0+Y29kZWNfZXJyb3JfcmVnaXN0cnkpIHsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IHNpemVvZihtZXRob2RzKS9zaXplb2YobWV0aG9kc1swXSk7ICsraSkgeworICAgICAgICBmb3IgKGkgPSAwOyBpIDwgUHlfQVJSQVlfTEVOR1RIKG1ldGhvZHMpOyArK2kpIHsKICAgICAgICAgICAgIFB5T2JqZWN0ICpmdW5jID0gUHlDRnVuY3Rpb25fTmV3KCZtZXRob2RzW2ldLmRlZiwgTlVMTCk7CiAgICAgICAgICAgICBpbnQgcmVzOwogICAgICAgICAgICAgaWYgKCFmdW5jKQpkaWZmIC0tZ2l0IGEvUHl0aG9uL2NvbXBpbGUuYyBiL1B5dGhvbi9jb21waWxlLmMKaW5kZXggMTllN2NiMi4uMmExYjc1NCAxMDA2NDQKLS0tIGEvUHl0aG9uL2NvbXBpbGUuYworKysgYi9QeXRob24vY29tcGlsZS5jCkBAIC05MCw2ICs5MCwxMyBAQAogICAgIGJhc2ljYmxvY2sgKmZiX2Jsb2NrOwogfTsKIAorZW51bSB7CisgICAgQ09NUElMRVJfU0NPUEVfTU9EVUxFLAorICAgIENPTVBJTEVSX1NDT1BFX0NMQVNTLAorICAgIENPTVBJTEVSX1NDT1BFX0ZVTkNUSU9OLAorICAgIENPTVBJTEVSX1NDT1BFX0NPTVBSRUhFTlNJT04sCit9OworCiAvKiBUaGUgZm9sbG93aW5nIGl0ZW1zIGNoYW5nZSBvbiBlbnRyeSBhbmQgZXhpdCBvZiBjb2RlIGJsb2Nrcy4KICAgIFRoZXkgbXVzdCBiZSBzYXZlZCBhbmQgcmVzdG9yZWQgd2hlbiByZXR1cm5pbmcgdG8gYSBibG9jay4KICovCkBAIC05Nyw2ICsxMDQsOSBAQAogICAgIFB5U1RFbnRyeU9iamVjdCAqdV9zdGU7CiAKICAgICBQeU9iamVjdCAqdV9uYW1lOworICAgIFB5T2JqZWN0ICp1X3F1YWxuYW1lOyAgLyogZG90LXNlcGFyYXRlZCBxdWFsaWZpZWQgbmFtZSAobGF6eSkgKi8KKyAgICBpbnQgdV9zY29wZV90eXBlOworCiAgICAgLyogVGhlIGZvbGxvd2luZyBmaWVsZHMgYXJlIGRpY3RzIHRoYXQgbWFwIG9iamVjdHMgdG8KICAgICAgICB0aGUgaW5kZXggb2YgdGhlbSBpbiBjb19YWFguICAgICAgVGhlIGluZGV4IGlzIHVzZWQgYXMKICAgICAgICB0aGUgYXJndW1lbnQgZm9yIG9wY29kZXMgdGhhdCByZWZlciB0byB0aG9zZSBjb2xsZWN0aW9ucy4KQEAgLTEzNSw2ICsxNDUsNyBAQAogCiBzdHJ1Y3QgY29tcGlsZXIgewogICAgIGNvbnN0IGNoYXIgKmNfZmlsZW5hbWU7CisgICAgUHlPYmplY3QgKmNfZmlsZW5hbWVfb2JqOwogICAgIHN0cnVjdCBzeW10YWJsZSAqY19zdDsKICAgICBQeUZ1dHVyZUZlYXR1cmVzICpjX2Z1dHVyZTsgLyogcG9pbnRlciB0byBtb2R1bGUncyBfX2Z1dHVyZV9fICovCiAgICAgUHlDb21waWxlckZsYWdzICpjX2ZsYWdzOwpAQCAtMTQ4LDcgKzE1OSw3IEBACiAgICAgUHlBcmVuYSAqY19hcmVuYTsgICAgICAgICAgICAvKiBwb2ludGVyIHRvIG1lbW9yeSBhbGxvY2F0aW9uIGFyZW5hICovCiB9OwogCi1zdGF0aWMgaW50IGNvbXBpbGVyX2VudGVyX3Njb3BlKHN0cnVjdCBjb21waWxlciAqLCBpZGVudGlmaWVyLCB2b2lkICosIGludCk7CitzdGF0aWMgaW50IGNvbXBpbGVyX2VudGVyX3Njb3BlKHN0cnVjdCBjb21waWxlciAqLCBpZGVudGlmaWVyLCBpbnQsIHZvaWQgKiwgaW50KTsKIHN0YXRpYyB2b2lkIGNvbXBpbGVyX2ZyZWUoc3RydWN0IGNvbXBpbGVyICopOwogc3RhdGljIGJhc2ljYmxvY2sgKmNvbXBpbGVyX25ld19ibG9jayhzdHJ1Y3QgY29tcGlsZXIgKik7CiBzdGF0aWMgaW50IGNvbXBpbGVyX25leHRfaW5zdHIoc3RydWN0IGNvbXBpbGVyICosIGJhc2ljYmxvY2sgKik7CkBAIC0xNzgsMTIgKzE4OSwxMyBAQAogc3RhdGljIGludCBpbnBsYWNlX2Jpbm9wKHN0cnVjdCBjb21waWxlciAqLCBvcGVyYXRvcl90eSk7CiBzdGF0aWMgaW50IGV4cHJfY29uc3RhbnQoc3RydWN0IGNvbXBpbGVyICosIGV4cHJfdHkpOwogCi1zdGF0aWMgaW50IGNvbXBpbGVyX3dpdGgoc3RydWN0IGNvbXBpbGVyICosIHN0bXRfdHkpOworc3RhdGljIGludCBjb21waWxlcl93aXRoKHN0cnVjdCBjb21waWxlciAqLCBzdG10X3R5LCBpbnQpOwogc3RhdGljIGludCBjb21waWxlcl9jYWxsX2hlbHBlcihzdHJ1Y3QgY29tcGlsZXIgKmMsIGludCBuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc2RsX3NlcSAqYXJncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNkbF9zZXEgKmtleXdvcmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByX3R5IHN0YXJhcmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByX3R5IGt3YXJncyk7CitzdGF0aWMgaW50IGNvbXBpbGVyX3RyeV9leGNlcHQoc3RydWN0IGNvbXBpbGVyICosIHN0bXRfdHkpOwogCiBzdGF0aWMgUHlDb2RlT2JqZWN0ICphc3NlbWJsZShzdHJ1Y3QgY29tcGlsZXIgKiwgaW50IGFkZE5vbmUpOwogc3RhdGljIFB5T2JqZWN0ICpfX2RvY19fOwpAQCAtMTk1LDE2ICsyMDcsMTcgQEAKIHsKICAgICAvKiBOYW1lIG1hbmdsaW5nOiBfX3ByaXZhdGUgYmVjb21lcyBfY2xhc3NuYW1lX19wcml2YXRlLgogICAgICAgIFRoaXMgaXMgaW5kZXBlbmRlbnQgZnJvbSBob3cgdGhlIG5hbWUgaXMgdXNlZC4gKi8KLSAgICBjb25zdCBQeV9VTklDT0RFICpwLCAqbmFtZSA9IFB5VW5pY29kZV9BU19VTklDT0RFKGlkZW50KTsKLSAgICBQeV9VTklDT0RFICpidWZmZXI7Ci0gICAgc2l6ZV90IG5sZW4sIHBsZW47CisgICAgUHlPYmplY3QgKnJlc3VsdDsKKyAgICBzaXplX3QgbmxlbiwgcGxlbiwgaXByaXY7CisgICAgUHlfVUNTNCBtYXhjaGFyOwogICAgIGlmIChwcml2YXRlb2JqID09IE5VTEwgfHwgIVB5VW5pY29kZV9DaGVjayhwcml2YXRlb2JqKSB8fAotICAgICAgICBuYW1lID09IE5VTEwgfHwgbmFtZVswXSAhPSAnXycgfHwgbmFtZVsxXSAhPSAnXycpIHsKKyAgICAgICAgUHlVbmljb2RlX1JFQURfQ0hBUihpZGVudCwgMCkgIT0gJ18nIHx8CisgICAgICAgIFB5VW5pY29kZV9SRUFEX0NIQVIoaWRlbnQsIDEpICE9ICdfJykgewogICAgICAgICBQeV9JTkNSRUYoaWRlbnQpOwogICAgICAgICByZXR1cm4gaWRlbnQ7CiAgICAgfQotICAgIHAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShwcml2YXRlb2JqKTsKLSAgICBubGVuID0gUHlfVU5JQ09ERV9zdHJsZW4obmFtZSk7CisgICAgbmxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGlkZW50KTsKKyAgICBwbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocHJpdmF0ZW9iaik7CiAgICAgLyogRG9uJ3QgbWFuZ2xlIF9faWRfXyBvciBuYW1lcyB3aXRoIGRvdHMuCiAKICAgICAgICBUaGUgb25seSB0aW1lIGEgbmFtZSB3aXRoIGEgZG90IGNhbiBvY2N1ciBpcyB3aGVuCkBAIC0yMTQsMzIgKzIyNyw0NCBAQAogICAgICAgIFRPRE8oamh5bHRvbik6IERlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gc3VwcG9ydAogICAgICAgIG1hbmdsaW5nIG9mIHRoZSBtb2R1bGUgbmFtZSwgZS5nLiBfX00uWC4KICAgICAqLwotICAgIGlmICgobmFtZVtubGVuLTFdID09ICdfJyAmJiBuYW1lW25sZW4tMl0gPT0gJ18nKQotICAgICAgICB8fCBQeV9VTklDT0RFX3N0cmNocihuYW1lLCAnLicpKSB7CisgICAgaWYgKChQeVVuaWNvZGVfUkVBRF9DSEFSKGlkZW50LCBubGVuLTEpID09ICdfJyAmJgorICAgICAgICAgUHlVbmljb2RlX1JFQURfQ0hBUihpZGVudCwgbmxlbi0yKSA9PSAnXycpIHx8CisgICAgICAgIFB5VW5pY29kZV9GaW5kQ2hhcihpZGVudCwgJy4nLCAwLCBubGVuLCAxKSAhPSAtMSkgewogICAgICAgICBQeV9JTkNSRUYoaWRlbnQpOwogICAgICAgICByZXR1cm4gaWRlbnQ7IC8qIERvbid0IG1hbmdsZSBfX3doYXRldmVyX18gKi8KICAgICB9CiAgICAgLyogU3RyaXAgbGVhZGluZyB1bmRlcnNjb3JlcyBmcm9tIGNsYXNzIG5hbWUgKi8KLSAgICB3aGlsZSAoKnAgPT0gJ18nKQotICAgICAgICBwKys7Ci0gICAgaWYgKCpwID09IDApIHsKKyAgICBpcHJpdiA9IDA7CisgICAgd2hpbGUgKFB5VW5pY29kZV9SRUFEX0NIQVIocHJpdmF0ZW9iaiwgaXByaXYpID09ICdfJykKKyAgICAgICAgaXByaXYrKzsKKyAgICBpZiAoaXByaXYgPT0gcGxlbikgewogICAgICAgICBQeV9JTkNSRUYoaWRlbnQpOwogICAgICAgICByZXR1cm4gaWRlbnQ7IC8qIERvbid0IG1hbmdsZSBpZiBjbGFzcyBpcyBqdXN0IHVuZGVyc2NvcmVzICovCiAgICAgfQotICAgIHBsZW4gPSBQeV9VTklDT0RFX3N0cmxlbihwKTsKKyAgICBwbGVuIC09IGlwcml2OwogCiAgICAgYXNzZXJ0KDEgPD0gUFlfU1NJWkVfVF9NQVggLSBubGVuKTsKICAgICBhc3NlcnQoMSArIG5sZW4gPD0gUFlfU1NJWkVfVF9NQVggLSBwbGVuKTsKIAotICAgIGlkZW50ID0gUHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKE5VTEwsIDEgKyBubGVuICsgcGxlbik7Ci0gICAgaWYgKCFpZGVudCkKKyAgICBtYXhjaGFyID0gUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKGlkZW50KTsKKyAgICBpZiAoUHlVbmljb2RlX01BWF9DSEFSX1ZBTFVFKHByaXZhdGVvYmopID4gbWF4Y2hhcikKKyAgICAgICAgbWF4Y2hhciA9IFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShwcml2YXRlb2JqKTsKKworICAgIHJlc3VsdCA9IFB5VW5pY29kZV9OZXcoMSArIG5sZW4gKyBwbGVuLCBtYXhjaGFyKTsKKyAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgLyogaWRlbnQgPSAiXyIgKyBwWzpwbGVuXSArIG5hbWUgIyBpLmUuIDErcGxlbitubGVuIGJ5dGVzICovCi0gICAgYnVmZmVyID0gUHlVbmljb2RlX0FTX1VOSUNPREUoaWRlbnQpOwotICAgIGJ1ZmZlclswXSA9ICdfJzsKLSAgICBQeV9VTklDT0RFX3N0cm5jcHkoYnVmZmVyKzEsIHAsIHBsZW4pOwotICAgIFB5X1VOSUNPREVfc3RyY3B5KGJ1ZmZlcisxK3BsZW4sIG5hbWUpOwotICAgIHJldHVybiBpZGVudDsKKyAgICAvKiBpZGVudCA9ICJfIiArIHByaXZbaXByaXY6XSArIGlkZW50ICMgaS5lLiAxK3BsZW4rbmxlbiBieXRlcyAqLworICAgIFB5VW5pY29kZV9XUklURShQeVVuaWNvZGVfS0lORChyZXN1bHQpLCBQeVVuaWNvZGVfREFUQShyZXN1bHQpLCAwLCAnXycpOworICAgIGlmIChQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnMocmVzdWx0LCAxLCBwcml2YXRlb2JqLCBpcHJpdiwgcGxlbikgPCAwKSB7CisgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisgICAgaWYgKFB5VW5pY29kZV9Db3B5Q2hhcmFjdGVycyhyZXN1bHQsIHBsZW4rMSwgaWRlbnQsIDAsIG5sZW4pIDwgMCkgeworICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kocmVzdWx0LCAxKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIGludApAQCAtMjcyLDYgKzI5Nyw5IEBACiAgICAgaWYgKCFjb21waWxlcl9pbml0KCZjKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgYy5jX2ZpbGVuYW1lID0gZmlsZW5hbWU7CisgICAgYy5jX2ZpbGVuYW1lX29iaiA9IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQoZmlsZW5hbWUpOworICAgIGlmICghYy5jX2ZpbGVuYW1lX29iaikKKyAgICAgICAgZ290byBmaW5hbGx5OwogICAgIGMuY19hcmVuYSA9IGFyZW5hOwogICAgIGMuY19mdXR1cmUgPSBQeUZ1dHVyZV9Gcm9tQVNUKG1vZCwgZmlsZW5hbWUpOwogICAgIGlmIChjLmNfZnV0dXJlID09IE5VTEwpCkBAIC0zMjQsNiArMzUyLDggQEAKICAgICAgICAgUHlTeW10YWJsZV9GcmVlKGMtPmNfc3QpOwogICAgIGlmIChjLT5jX2Z1dHVyZSkKICAgICAgICAgUHlPYmplY3RfRnJlZShjLT5jX2Z1dHVyZSk7CisgICAgaWYgKGMtPmNfZmlsZW5hbWVfb2JqKQorICAgICAgICBQeV9ERUNSRUYoYy0+Y19maWxlbmFtZV9vYmopOwogICAgIFB5X0RFQ1JFRihjLT5jX3N0YWNrKTsKIH0KIApAQCAtNDM4LDYgKzQ2OCw3IEBACiAgICAgfQogICAgIFB5X0NMRUFSKHUtPnVfc3RlKTsKICAgICBQeV9DTEVBUih1LT51X25hbWUpOworICAgIFB5X0NMRUFSKHUtPnVfcXVhbG5hbWUpOwogICAgIFB5X0NMRUFSKHUtPnVfY29uc3RzKTsKICAgICBQeV9DTEVBUih1LT51X25hbWVzKTsKICAgICBQeV9DTEVBUih1LT51X3Zhcm5hbWVzKTsKQEAgLTQ0OCw4ICs0NzksOCBAQAogfQogCiBzdGF0aWMgaW50Ci1jb21waWxlcl9lbnRlcl9zY29wZShzdHJ1Y3QgY29tcGlsZXIgKmMsIGlkZW50aWZpZXIgbmFtZSwgdm9pZCAqa2V5LAotICAgICAgICAgICAgICAgICAgICAgaW50IGxpbmVubykKK2NvbXBpbGVyX2VudGVyX3Njb3BlKHN0cnVjdCBjb21waWxlciAqYywgaWRlbnRpZmllciBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgaW50IHNjb3BlX3R5cGUsIHZvaWQgKmtleSwgaW50IGxpbmVubykKIHsKICAgICBzdHJ1Y3QgY29tcGlsZXJfdW5pdCAqdTsKIApAQCAtNDYwLDYgKzQ5MSw3IEBACiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICAgICBtZW1zZXQodSwgMCwgc2l6ZW9mKHN0cnVjdCBjb21waWxlcl91bml0KSk7CisgICAgdS0+dV9zY29wZV90eXBlID0gc2NvcGVfdHlwZTsKICAgICB1LT51X2FyZ2NvdW50ID0gMDsKICAgICB1LT51X2t3b25seWFyZ2NvdW50ID0gMDsKICAgICB1LT51X3N0ZSA9IFB5U3ltdGFibGVfTG9va3VwKGMtPmNfc3QsIGtleSk7CkBAIC01NDcsNiArNTc5LDU5IEBACiAKIH0KIAorc3RhdGljIFB5T2JqZWN0ICoKK2NvbXBpbGVyX3Njb3BlX3F1YWxuYW1lKHN0cnVjdCBjb21waWxlciAqYykKK3sKKyAgICBQeV9zc2l6ZV90IHN0YWNrX3NpemUsIGk7CisgICAgX1B5X3N0YXRpY19zdHJpbmcoZG90LCAiLiIpOworICAgIF9QeV9zdGF0aWNfc3RyaW5nKGxvY2FscywgIjxsb2NhbHM+Iik7CisgICAgc3RydWN0IGNvbXBpbGVyX3VuaXQgKnU7CisgICAgUHlPYmplY3QgKmNhcHN1bGUsICpuYW1lLCAqc2VxLCAqZG90X3N0ciwgKmxvY2Fsc19zdHI7CisKKyAgICB1ID0gYy0+dTsKKyAgICBpZiAodS0+dV9xdWFsbmFtZSAhPSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRih1LT51X3F1YWxuYW1lKTsKKyAgICAgICAgcmV0dXJuIHUtPnVfcXVhbG5hbWU7CisgICAgfQorCisgICAgc2VxID0gUHlMaXN0X05ldygwKTsKKyAgICBpZiAoc2VxID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgc3RhY2tfc2l6ZSA9IFB5TGlzdF9HRVRfU0laRShjLT5jX3N0YWNrKTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgc3RhY2tfc2l6ZTsgaSsrKSB7CisgICAgICAgIGNhcHN1bGUgPSBQeUxpc3RfR0VUX0lURU0oYy0+Y19zdGFjaywgaSk7CisgICAgICAgIHUgPSAoc3RydWN0IGNvbXBpbGVyX3VuaXQgKilQeUNhcHN1bGVfR2V0UG9pbnRlcihjYXBzdWxlLCBDT01QSUxFUl9DQVBTVUxFX05BTUVfQ09NUElMRVJfVU5JVCk7CisgICAgICAgIGFzc2VydCh1KTsKKyAgICAgICAgaWYgKHUtPnVfc2NvcGVfdHlwZSA9PSBDT01QSUxFUl9TQ09QRV9NT0RVTEUpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQoc2VxLCB1LT51X25hbWUpKQorICAgICAgICAgICAgZ290byBfZXJyb3I7CisgICAgICAgIGlmICh1LT51X3Njb3BlX3R5cGUgPT0gQ09NUElMRVJfU0NPUEVfRlVOQ1RJT04pIHsKKyAgICAgICAgICAgIGxvY2Fsc19zdHIgPSBfUHlVbmljb2RlX0Zyb21JZCgmbG9jYWxzKTsKKyAgICAgICAgICAgIGlmIChsb2NhbHNfc3RyID09IE5VTEwpCisgICAgICAgICAgICAgICAgZ290byBfZXJyb3I7CisgICAgICAgICAgICBpZiAoUHlMaXN0X0FwcGVuZChzZXEsIGxvY2Fsc19zdHIpKQorICAgICAgICAgICAgICAgIGdvdG8gX2Vycm9yOworICAgICAgICB9CisgICAgfQorICAgIHUgPSBjLT51OworICAgIGlmIChQeUxpc3RfQXBwZW5kKHNlcSwgdS0+dV9uYW1lKSkKKyAgICAgICAgZ290byBfZXJyb3I7CisgICAgZG90X3N0ciA9IF9QeVVuaWNvZGVfRnJvbUlkKCZkb3QpOworICAgIGlmIChkb3Rfc3RyID09IE5VTEwpCisgICAgICAgIGdvdG8gX2Vycm9yOworICAgIG5hbWUgPSBQeVVuaWNvZGVfSm9pbihkb3Rfc3RyLCBzZXEpOworICAgIFB5X0RFQ1JFRihzZXEpOworICAgIHUtPnVfcXVhbG5hbWUgPSBuYW1lOworICAgIFB5X1hJTkNSRUYobmFtZSk7CisgICAgcmV0dXJuIG5hbWU7CisKK19lcnJvcjoKKyAgICBQeV9YREVDUkVGKHNlcSk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKIC8qIEFsbG9jYXRlIGEgbmV3IGJsb2NrIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIGl0LgogICAgUmV0dXJucyBOVUxMIG9uIGVycm9yLgogKi8KQEAgLTc1Nyw3ICs4NDIsOCBAQAogICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICBjYXNlIFlJRUxEX1ZBTFVFOgogICAgICAgICAgICAgcmV0dXJuIDA7Ci0KKyAgICAgICAgY2FzZSBZSUVMRF9GUk9NOgorICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICBjYXNlIFBPUF9CTE9DSzoKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICBjYXNlIFBPUF9FWENFUFQ6CkBAIC04NDMsOSArOTI5LDkgQEAKICAgICAgICAgY2FzZSBDQUxMX0ZVTkNUSU9OX1ZBUl9LVzoKICAgICAgICAgICAgIHJldHVybiAtTkFSR1Mob3BhcmcpLTI7CiAgICAgICAgIGNhc2UgTUFLRV9GVU5DVElPTjoKLSAgICAgICAgICAgIHJldHVybiAtTkFSR1Mob3BhcmcpIC0gKChvcGFyZyA+PiAxNikgJiAweGZmZmYpOworICAgICAgICAgICAgcmV0dXJuIC0xIC1OQVJHUyhvcGFyZykgLSAoKG9wYXJnID4+IDE2KSAmIDB4ZmZmZik7CiAgICAgICAgIGNhc2UgTUFLRV9DTE9TVVJFOgotICAgICAgICAgICAgcmV0dXJuIC0xIC0gTkFSR1Mob3BhcmcpIC0gKChvcGFyZyA+PiAxNikgJiAweGZmZmYpOworICAgICAgICAgICAgcmV0dXJuIC0yIC0gTkFSR1Mob3BhcmcpIC0gKChvcGFyZyA+PiAxNikgJiAweGZmZmYpOwogI3VuZGVmIE5BUkdTCiAgICAgICAgIGNhc2UgQlVJTERfU0xJQ0U6CiAgICAgICAgICAgICBpZiAob3BhcmcgPT0gMykKQEAgLTExNzUsNyArMTI2MSw3IEBACiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgLyogVXNlIDAgZm9yIGZpcnN0bGluZW5vIGluaXRpYWxseSwgd2lsbCBmaXh1cCBpbiBhc3NlbWJsZSgpLiAqLwotICAgIGlmICghY29tcGlsZXJfZW50ZXJfc2NvcGUoYywgbW9kdWxlLCBtb2QsIDApKQorICAgIGlmICghY29tcGlsZXJfZW50ZXJfc2NvcGUoYywgbW9kdWxlLCBDT01QSUxFUl9TQ09QRV9NT0RVTEUsIG1vZCwgMCkpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIHN3aXRjaCAobW9kLT5raW5kKSB7CiAgICAgY2FzZSBNb2R1bGVfa2luZDoKQEAgLTEyNTEsMTEgKzEzMzcsMTUgQEAKIH0KIAogc3RhdGljIGludAotY29tcGlsZXJfbWFrZV9jbG9zdXJlKHN0cnVjdCBjb21waWxlciAqYywgUHlDb2RlT2JqZWN0ICpjbywgaW50IGFyZ3MpCitjb21waWxlcl9tYWtlX2Nsb3N1cmUoc3RydWN0IGNvbXBpbGVyICpjLCBQeUNvZGVPYmplY3QgKmNvLCBpbnQgYXJncywgUHlPYmplY3QgKnF1YWxuYW1lKQogewogICAgIGludCBpLCBmcmVlID0gUHlDb2RlX0dldE51bUZyZWUoY28pOworICAgIGlmIChxdWFsbmFtZSA9PSBOVUxMKQorICAgICAgICBxdWFsbmFtZSA9IGNvLT5jb19uYW1lOworCiAgICAgaWYgKGZyZWUgPT0gMCkgewogICAgICAgICBBRERPUF9PKGMsIExPQURfQ09OU1QsIChQeU9iamVjdCopY28sIGNvbnN0cyk7CisgICAgICAgIEFERE9QX08oYywgTE9BRF9DT05TVCwgcXVhbG5hbWUsIGNvbnN0cyk7CiAgICAgICAgIEFERE9QX0koYywgTUFLRV9GVU5DVElPTiwgYXJncyk7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KQEAgLTEyOTIsNiArMTM4Miw3IEBACiAgICAgfQogICAgIEFERE9QX0koYywgQlVJTERfVFVQTEUsIGZyZWUpOwogICAgIEFERE9QX08oYywgTE9BRF9DT05TVCwgKFB5T2JqZWN0KiljbywgY29uc3RzKTsKKyAgICBBRERPUF9PKGMsIExPQURfQ09OU1QsIHF1YWxuYW1lLCBjb25zdHMpOwogICAgIEFERE9QX0koYywgTUFLRV9DTE9TVVJFLCBhcmdzKTsKICAgICByZXR1cm4gMTsKIH0KQEAgLTE0MzcsNyArMTUyOCw3IEBACiBjb21waWxlcl9mdW5jdGlvbihzdHJ1Y3QgY29tcGlsZXIgKmMsIHN0bXRfdHkgcykKIHsKICAgICBQeUNvZGVPYmplY3QgKmNvOwotICAgIFB5T2JqZWN0ICpmaXJzdF9jb25zdCA9IFB5X05vbmU7CisgICAgUHlPYmplY3QgKnF1YWxuYW1lLCAqZmlyc3RfY29uc3QgPSBQeV9Ob25lOwogICAgIGFyZ3VtZW50c190eSBhcmdzID0gcy0+di5GdW5jdGlvbkRlZi5hcmdzOwogICAgIGV4cHJfdHkgcmV0dXJucyA9IHMtPnYuRnVuY3Rpb25EZWYucmV0dXJuczsKICAgICBhc2RsX3NlcSogZGVjb3MgPSBzLT52LkZ1bmN0aW9uRGVmLmRlY29yYXRvcl9saXN0OwpAQCAtMTQ2Myw3ICsxNTU0LDggQEAKICAgICAgICAgcmV0dXJuIDA7CiAgICAgYXNzZXJ0KChudW1fYW5ub3RhdGlvbnMgJiAweEZGRkYpID09IG51bV9hbm5vdGF0aW9ucyk7CiAKLSAgICBpZiAoIWNvbXBpbGVyX2VudGVyX3Njb3BlKGMsIHMtPnYuRnVuY3Rpb25EZWYubmFtZSwgKHZvaWQgKilzLAorICAgIGlmICghY29tcGlsZXJfZW50ZXJfc2NvcGUoYywgcy0+di5GdW5jdGlvbkRlZi5uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ09NUElMRVJfU0NPUEVfRlVOQ1RJT04sICh2b2lkICopcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPmxpbmVubykpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xNDg1LDE0ICsxNTc3LDE5IEBACiAgICAgICAgIFZJU0lUX0lOX1NDT1BFKGMsIHN0bXQsIHN0KTsKICAgICB9CiAgICAgY28gPSBhc3NlbWJsZShjLCAxKTsKKyAgICBxdWFsbmFtZSA9IGNvbXBpbGVyX3Njb3BlX3F1YWxuYW1lKGMpOwogICAgIGNvbXBpbGVyX2V4aXRfc2NvcGUoYyk7Ci0gICAgaWYgKGNvID09IE5VTEwpCisgICAgaWYgKHF1YWxuYW1lID09IE5VTEwgfHwgY28gPT0gTlVMTCkgeworICAgICAgICBQeV9YREVDUkVGKHF1YWxuYW1lKTsKKyAgICAgICAgUHlfWERFQ1JFRihjbyk7CiAgICAgICAgIHJldHVybiAwOworICAgIH0KIAogICAgIGFyZ2xlbmd0aCA9IGFzZGxfc2VxX0xFTihhcmdzLT5kZWZhdWx0cyk7CiAgICAgYXJnbGVuZ3RoIHw9IGt3X2RlZmF1bHRfY291bnQgPDwgODsKICAgICBhcmdsZW5ndGggfD0gbnVtX2Fubm90YXRpb25zIDw8IDE2OwotICAgIGNvbXBpbGVyX21ha2VfY2xvc3VyZShjLCBjbywgYXJnbGVuZ3RoKTsKKyAgICBjb21waWxlcl9tYWtlX2Nsb3N1cmUoYywgY28sIGFyZ2xlbmd0aCwgcXVhbG5hbWUpOworICAgIFB5X0RFQ1JFRihxdWFsbmFtZSk7CiAgICAgUHlfREVDUkVGKGNvKTsKIAogICAgIC8qIGRlY29yYXRvcnMgKi8KQEAgLTE1MjcsNyArMTYyNCw4IEBACiAgICAgKi8KIAogICAgIC8qIDEuIGNvbXBpbGUgdGhlIGNsYXNzIGJvZHkgaW50byBhIGNvZGUgb2JqZWN0ICovCi0gICAgaWYgKCFjb21waWxlcl9lbnRlcl9zY29wZShjLCBzLT52LkNsYXNzRGVmLm5hbWUsICh2b2lkICopcywgcy0+bGluZW5vKSkKKyAgICBpZiAoIWNvbXBpbGVyX2VudGVyX3Njb3BlKGMsIHMtPnYuQ2xhc3NEZWYubmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENPTVBJTEVSX1NDT1BFX0NMQVNTLCAodm9pZCAqKXMsIHMtPmxpbmVubykpCiAgICAgICAgIHJldHVybiAwOwogICAgIC8qIHRoaXMgYmxvY2sgcmVwcmVzZW50cyB3aGF0IHdlIGRvIGluIHRoZSBuZXcgc2NvcGUgKi8KICAgICB7CkBAIC0xNTU3LDYgKzE2NTUsMjEgQEAKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgICAgIFB5X0RFQ1JFRihzdHIpOworICAgICAgICAvKiBzdG9yZSB0aGUgX19xdWFsbmFtZV9fICovCisgICAgICAgIHN0ciA9IGNvbXBpbGVyX3Njb3BlX3F1YWxuYW1lKGMpOworICAgICAgICBpZiAoIXN0cikgeworICAgICAgICAgICAgY29tcGlsZXJfZXhpdF9zY29wZShjKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgICAgIEFERE9QX08oYywgTE9BRF9DT05TVCwgc3RyLCBjb25zdHMpOworICAgICAgICBQeV9ERUNSRUYoc3RyKTsKKyAgICAgICAgc3RyID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9fcXVhbG5hbWVfXyIpOworICAgICAgICBpZiAoIXN0ciB8fCAhY29tcGlsZXJfbmFtZW9wKGMsIHN0ciwgU3RvcmUpKSB7CisgICAgICAgICAgICBQeV9YREVDUkVGKHN0cik7CisgICAgICAgICAgICBjb21waWxlcl9leGl0X3Njb3BlKGMpOworICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKyAgICAgICAgUHlfREVDUkVGKHN0cik7CiAgICAgICAgIC8qIGNvbXBpbGUgdGhlIGJvZHkgcHJvcGVyICovCiAgICAgICAgIGlmICghY29tcGlsZXJfYm9keShjLCBzLT52LkNsYXNzRGVmLmJvZHkpKSB7CiAgICAgICAgICAgICBjb21waWxlcl9leGl0X3Njb3BlKGMpOwpAQCAtMTU5Myw3ICsxNzA2LDcgQEAKICAgICBBRERPUChjLCBMT0FEX0JVSUxEX0NMQVNTKTsKIAogICAgIC8qIDMuIGxvYWQgYSBmdW5jdGlvbiAob3IgY2xvc3VyZSkgbWFkZSBmcm9tIHRoZSBjb2RlIG9iamVjdCAqLwotICAgIGNvbXBpbGVyX21ha2VfY2xvc3VyZShjLCBjbywgMCk7CisgICAgY29tcGlsZXJfbWFrZV9jbG9zdXJlKGMsIGNvLCAwLCBOVUxMKTsKICAgICBQeV9ERUNSRUYoY28pOwogCiAgICAgLyogNC4gbG9hZCBjbGFzcyBuYW1lICovCkBAIC0xNjQ0LDYgKzE3NTcsNyBAQAogY29tcGlsZXJfbGFtYmRhKHN0cnVjdCBjb21waWxlciAqYywgZXhwcl90eSBlKQogewogICAgIFB5Q29kZU9iamVjdCAqY287CisgICAgUHlPYmplY3QgKnF1YWxuYW1lOwogICAgIHN0YXRpYyBpZGVudGlmaWVyIG5hbWU7CiAgICAgaW50IGt3X2RlZmF1bHRfY291bnQgPSAwLCBhcmdsZW5ndGg7CiAgICAgYXJndW1lbnRzX3R5IGFyZ3MgPSBlLT52LkxhbWJkYS5hcmdzOwpAQCAtMTY2Myw3ICsxNzc3LDggQEAKICAgICB9CiAgICAgaWYgKGFyZ3MtPmRlZmF1bHRzKQogICAgICAgICBWSVNJVF9TRVEoYywgZXhwciwgYXJncy0+ZGVmYXVsdHMpOwotICAgIGlmICghY29tcGlsZXJfZW50ZXJfc2NvcGUoYywgbmFtZSwgKHZvaWQgKillLCBlLT5saW5lbm8pKQorICAgIGlmICghY29tcGlsZXJfZW50ZXJfc2NvcGUoYywgbmFtZSwgQ09NUElMRVJfU0NPUEVfRlVOQ1RJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKWUsIGUtPmxpbmVubykpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgLyogTWFrZSBOb25lIHRoZSBmaXJzdCBjb25zdGFudCwgc28gdGhlIGxhbWJkYSBjYW4ndCBoYXZlIGEKQEAgLTE2ODEsMTMgKzE3OTYsMTUgQEAKICAgICAgICAgQURET1BfSU5fU0NPUEUoYywgUkVUVVJOX1ZBTFVFKTsKICAgICB9CiAgICAgY28gPSBhc3NlbWJsZShjLCAxKTsKKyAgICBxdWFsbmFtZSA9IGNvbXBpbGVyX3Njb3BlX3F1YWxuYW1lKGMpOwogICAgIGNvbXBpbGVyX2V4aXRfc2NvcGUoYyk7Ci0gICAgaWYgKGNvID09IE5VTEwpCisgICAgaWYgKHF1YWxuYW1lID09IE5VTEwgfHwgY28gPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBhcmdsZW5ndGggPSBhc2RsX3NlcV9MRU4oYXJncy0+ZGVmYXVsdHMpOwogICAgIGFyZ2xlbmd0aCB8PSBrd19kZWZhdWx0X2NvdW50IDw8IDg7Ci0gICAgY29tcGlsZXJfbWFrZV9jbG9zdXJlKGMsIGNvLCBhcmdsZW5ndGgpOworICAgIGNvbXBpbGVyX21ha2VfY2xvc3VyZShjLCBjbywgYXJnbGVuZ3RoLCBxdWFsbmFtZSk7CisgICAgUHlfREVDUkVGKHF1YWxuYW1lKTsKICAgICBQeV9ERUNSRUYoY28pOwogCiAgICAgcmV0dXJuIDE7CkBAIC0xODk2LDcgKzIwMTMsMTMgQEAKICAgICBjb21waWxlcl91c2VfbmV4dF9ibG9jayhjLCBib2R5KTsKICAgICBpZiAoIWNvbXBpbGVyX3B1c2hfZmJsb2NrKGMsIEZJTkFMTFlfVFJZLCBib2R5KSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgVklTSVRfU0VRKGMsIHN0bXQsIHMtPnYuVHJ5RmluYWxseS5ib2R5KTsKKyAgICBpZiAocy0+di5UcnkuaGFuZGxlcnMgJiYgYXNkbF9zZXFfTEVOKHMtPnYuVHJ5LmhhbmRsZXJzKSkgeworICAgICAgICBpZiAoIWNvbXBpbGVyX3RyeV9leGNlcHQoYywgcykpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIFZJU0lUX1NFUShjLCBzdG10LCBzLT52LlRyeS5ib2R5KTsKKyAgICB9CiAgICAgQURET1AoYywgUE9QX0JMT0NLKTsKICAgICBjb21waWxlcl9wb3BfZmJsb2NrKGMsIEZJTkFMTFlfVFJZLCBib2R5KTsKIApAQCAtMTkwNCw3ICsyMDI3LDcgQEAKICAgICBjb21waWxlcl91c2VfbmV4dF9ibG9jayhjLCBlbmQpOwogICAgIGlmICghY29tcGlsZXJfcHVzaF9mYmxvY2soYywgRklOQUxMWV9FTkQsIGVuZCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIFZJU0lUX1NFUShjLCBzdG10LCBzLT52LlRyeUZpbmFsbHkuZmluYWxib2R5KTsKKyAgICBWSVNJVF9TRVEoYywgc3RtdCwgcy0+di5UcnkuZmluYWxib2R5KTsKICAgICBBRERPUChjLCBFTkRfRklOQUxMWSk7CiAgICAgY29tcGlsZXJfcG9wX2ZibG9jayhjLCBGSU5BTExZX0VORCwgZW5kKTsKIApAQCAtMTk1OCwxNSArMjA4MSwxNSBAQAogICAgIGNvbXBpbGVyX3VzZV9uZXh0X2Jsb2NrKGMsIGJvZHkpOwogICAgIGlmICghY29tcGlsZXJfcHVzaF9mYmxvY2soYywgRVhDRVBULCBib2R5KSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgVklTSVRfU0VRKGMsIHN0bXQsIHMtPnYuVHJ5RXhjZXB0LmJvZHkpOworICAgIFZJU0lUX1NFUShjLCBzdG10LCBzLT52LlRyeS5ib2R5KTsKICAgICBBRERPUChjLCBQT1BfQkxPQ0spOwogICAgIGNvbXBpbGVyX3BvcF9mYmxvY2soYywgRVhDRVBULCBib2R5KTsKICAgICBBRERPUF9KUkVMKGMsIEpVTVBfRk9SV0FSRCwgb3JlbHNlKTsKLSAgICBuID0gYXNkbF9zZXFfTEVOKHMtPnYuVHJ5RXhjZXB0LmhhbmRsZXJzKTsKKyAgICBuID0gYXNkbF9zZXFfTEVOKHMtPnYuVHJ5LmhhbmRsZXJzKTsKICAgICBjb21waWxlcl91c2VfbmV4dF9ibG9jayhjLCBleGNlcHQpOwogICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICAgZXhjZXB0aGFuZGxlcl90eSBoYW5kbGVyID0gKGV4Y2VwdGhhbmRsZXJfdHkpYXNkbF9zZXFfR0VUKAotICAgICAgICAgICAgcy0+di5UcnlFeGNlcHQuaGFuZGxlcnMsIGkpOworICAgICAgICAgICAgcy0+di5UcnkuaGFuZGxlcnMsIGkpOwogICAgICAgICBpZiAoIWhhbmRsZXItPnYuRXhjZXB0SGFuZGxlci50eXBlICYmIGkgPCBuLTEpCiAgICAgICAgICAgICByZXR1cm4gY29tcGlsZXJfZXJyb3IoYywgImRlZmF1bHQgJ2V4Y2VwdDonIG11c3QgYmUgbGFzdCIpOwogICAgICAgICBjLT51LT51X2xpbmVub19zZXQgPSAwOwpAQCAtMjA1MywxMiArMjE3NiwyMSBAQAogICAgIH0KICAgICBBRERPUChjLCBFTkRfRklOQUxMWSk7CiAgICAgY29tcGlsZXJfdXNlX25leHRfYmxvY2soYywgb3JlbHNlKTsKLSAgICBWSVNJVF9TRVEoYywgc3RtdCwgcy0+di5UcnlFeGNlcHQub3JlbHNlKTsKKyAgICBWSVNJVF9TRVEoYywgc3RtdCwgcy0+di5Ucnkub3JlbHNlKTsKICAgICBjb21waWxlcl91c2VfbmV4dF9ibG9jayhjLCBlbmQpOwogICAgIHJldHVybiAxOwogfQogCiBzdGF0aWMgaW50Citjb21waWxlcl90cnkoc3RydWN0IGNvbXBpbGVyICpjLCBzdG10X3R5IHMpIHsKKyAgICBpZiAocy0+di5UcnkuZmluYWxib2R5ICYmIGFzZGxfc2VxX0xFTihzLT52LlRyeS5maW5hbGJvZHkpKQorICAgICAgICByZXR1cm4gY29tcGlsZXJfdHJ5X2ZpbmFsbHkoYywgcyk7CisgICAgZWxzZQorICAgICAgICByZXR1cm4gY29tcGlsZXJfdHJ5X2V4Y2VwdChjLCBzKTsKK30KKworCitzdGF0aWMgaW50CiBjb21waWxlcl9pbXBvcnRfYXMoc3RydWN0IGNvbXBpbGVyICpjLCBpZGVudGlmaWVyIG5hbWUsIGlkZW50aWZpZXIgYXNuYW1lKQogewogICAgIC8qIFRoZSBJTVBPUlRfTkFNRSBvcGNvZGUgd2FzIGFscmVhZHkgZ2VuZXJhdGVkLiAgVGhpcyBmdW5jdGlvbgpAQCAtMjA2NywyMiArMjE5OSwyNyBAQAogICAgICAgIElmIHRoZXJlIGlzIGEgZG90IGluIG5hbWUsIHdlIG5lZWQgdG8gc3BsaXQgaXQgYW5kIGVtaXQgYQogICAgICAgIExPQURfQVRUUiBmb3IgZWFjaCBuYW1lLgogICAgICovCi0gICAgY29uc3QgUHlfVU5JQ09ERSAqc3JjID0gUHlVbmljb2RlX0FTX1VOSUNPREUobmFtZSk7Ci0gICAgY29uc3QgUHlfVU5JQ09ERSAqZG90ID0gUHlfVU5JQ09ERV9zdHJjaHIoc3JjLCAnLicpOwotICAgIGlmIChkb3QpIHsKKyAgICBQeV9zc2l6ZV90IGRvdCA9IFB5VW5pY29kZV9GaW5kQ2hhcihuYW1lLCAnLicsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgobmFtZSksIDEpOworICAgIGlmIChkb3QgPT0gLTIpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAoZG90ICE9IC0xKSB7CiAgICAgICAgIC8qIENvbnN1bWUgdGhlIGJhc2UgbW9kdWxlIG5hbWUgdG8gZ2V0IHRoZSBmaXJzdCBhdHRyaWJ1dGUgKi8KLSAgICAgICAgc3JjID0gZG90ICsgMTsKLSAgICAgICAgd2hpbGUgKGRvdCkgewotICAgICAgICAgICAgLyogTkIgc3JjIGlzIG9ubHkgZGVmaW5lZCB3aGVuIGRvdCAhPSBOVUxMICovCisgICAgICAgIFB5X3NzaXplX3QgcG9zID0gZG90ICsgMTsKKyAgICAgICAgd2hpbGUgKGRvdCAhPSAtMSkgewogICAgICAgICAgICAgUHlPYmplY3QgKmF0dHI7Ci0gICAgICAgICAgICBkb3QgPSBQeV9VTklDT0RFX3N0cmNocihzcmMsICcuJyk7Ci0gICAgICAgICAgICBhdHRyID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHNyYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG90ID8gZG90IC0gc3JjIDogUHlfVU5JQ09ERV9zdHJsZW4oc3JjKSk7CisgICAgICAgICAgICBkb3QgPSBQeVVuaWNvZGVfRmluZENoYXIobmFtZSwgJy4nLCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgobmFtZSksIDEpOworICAgICAgICAgICAgaWYgKGRvdCA9PSAtMikKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICBhdHRyID0gUHlVbmljb2RlX1N1YnN0cmluZyhuYW1lLCBwb3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZG90ICE9IC0xKSA/IGRvdCA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChuYW1lKSk7CiAgICAgICAgICAgICBpZiAoIWF0dHIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgQURET1BfTyhjLCBMT0FEX0FUVFIsIGF0dHIsIG5hbWVzKTsKICAgICAgICAgICAgIFB5X0RFQ1JFRihhdHRyKTsKLSAgICAgICAgICAgIHNyYyA9IGRvdCArIDE7CisgICAgICAgICAgICBwb3MgPSBkb3QgKyAxOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVybiBjb21waWxlcl9uYW1lb3AoYywgYXNuYW1lLCBTdG9yZSk7CkBAIC0yMTIxLDEzICsyMjU4LDEyIEBACiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBpZGVudGlmaWVyIHRtcCA9IGFsaWFzLT5uYW1lOwotICAgICAgICAgICAgY29uc3QgUHlfVU5JQ09ERSAqYmFzZSA9IFB5VW5pY29kZV9BU19VTklDT0RFKGFsaWFzLT5uYW1lKTsKLSAgICAgICAgICAgIFB5X1VOSUNPREUgKmRvdCA9IFB5X1VOSUNPREVfc3RyY2hyKGJhc2UsICcuJyk7Ci0gICAgICAgICAgICBpZiAoZG90KQotICAgICAgICAgICAgICAgIHRtcCA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShiYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3QgLSBiYXNlKTsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgZG90ID0gUHlVbmljb2RlX0ZpbmRDaGFyKAorICAgICAgICAgICAgICAgIGFsaWFzLT5uYW1lLCAnLicsIDAsIFB5VW5pY29kZV9HRVRfTEVOR1RIKGFsaWFzLT5uYW1lKSwgMSk7CisgICAgICAgICAgICBpZiAoZG90ICE9IC0xKQorICAgICAgICAgICAgICAgIHRtcCA9IFB5VW5pY29kZV9TdWJzdHJpbmcoYWxpYXMtPm5hbWUsIDAsIGRvdCk7CiAgICAgICAgICAgICByID0gY29tcGlsZXJfbmFtZW9wKGMsIHRtcCwgU3RvcmUpOwotICAgICAgICAgICAgaWYgKGRvdCkgeworICAgICAgICAgICAgaWYgKGRvdCAhPSAtMSkgewogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih0bXApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCFyKQpAQCAtMjE5MCw3ICsyMzI2LDcgQEAKICAgICAgICAgYWxpYXNfdHkgYWxpYXMgPSAoYWxpYXNfdHkpYXNkbF9zZXFfR0VUKHMtPnYuSW1wb3J0RnJvbS5uYW1lcywgaSk7CiAgICAgICAgIGlkZW50aWZpZXIgc3RvcmVfbmFtZTsKIAotICAgICAgICBpZiAoaSA9PSAwICYmICpQeVVuaWNvZGVfQVNfVU5JQ09ERShhbGlhcy0+bmFtZSkgPT0gJyonKSB7CisgICAgICAgIGlmIChpID09IDAgJiYgUHlVbmljb2RlX1JFQURfQ0hBUihhbGlhcy0+bmFtZSwgMCkgPT0gJyonKSB7CiAgICAgICAgICAgICBhc3NlcnQobiA9PSAxKTsKICAgICAgICAgICAgIEFERE9QKGMsIElNUE9SVF9TVEFSKTsKICAgICAgICAgICAgIHJldHVybiAxOwpAQCAtMjMwNSwxMCArMjQ0MSw4IEBACiAgICAgICAgIH0KICAgICAgICAgQURET1BfSShjLCBSQUlTRV9WQVJBUkdTLCBuKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBUcnlFeGNlcHRfa2luZDoKLSAgICAgICAgcmV0dXJuIGNvbXBpbGVyX3RyeV9leGNlcHQoYywgcyk7Ci0gICAgY2FzZSBUcnlGaW5hbGx5X2tpbmQ6Ci0gICAgICAgIHJldHVybiBjb21waWxlcl90cnlfZmluYWxseShjLCBzKTsKKyAgICBjYXNlIFRyeV9raW5kOgorICAgICAgICByZXR1cm4gY29tcGlsZXJfdHJ5KGMsIHMpOwogICAgIGNhc2UgQXNzZXJ0X2tpbmQ6CiAgICAgICAgIHJldHVybiBjb21waWxlcl9hc3NlcnQoYywgcyk7CiAgICAgY2FzZSBJbXBvcnRfa2luZDoKQEAgLTIzMzksNyArMjQ3Myw3IEBACiAgICAgY2FzZSBDb250aW51ZV9raW5kOgogICAgICAgICByZXR1cm4gY29tcGlsZXJfY29udGludWUoYyk7CiAgICAgY2FzZSBXaXRoX2tpbmQ6Ci0gICAgICAgIHJldHVybiBjb21waWxlcl93aXRoKGMsIHMpOworICAgICAgICByZXR1cm4gY29tcGlsZXJfd2l0aChjLCBzLCAwKTsKICAgICB9CiAgICAgcmV0dXJuIDE7CiB9CkBAIC0yNTA2LDcgKzI2NDAsNyBAQAogICAgIH0KIAogICAgIC8qIFhYWCBMZWF2ZSBhc3NlcnQgaGVyZSwgYnV0IGhhbmRsZSBfX2RvY19fIGFuZCB0aGUgbGlrZSBiZXR0ZXIgKi8KLSAgICBhc3NlcnQoc2NvcGUgfHwgUHlVbmljb2RlX0FTX1VOSUNPREUobmFtZSlbMF0gPT0gJ18nKTsKKyAgICBhc3NlcnQoc2NvcGUgfHwgUHlVbmljb2RlX1JFQURfQ0hBUihuYW1lLCAwKSA9PSAnXycpOwogCiAgICAgc3dpdGNoIChvcHR5cGUpIHsKICAgICBjYXNlIE9QX0RFUkVGOgpAQCAtMjg4NCwxMSArMzAxOCwxMyBAQAogewogICAgIFB5Q29kZU9iamVjdCAqY28gPSBOVUxMOwogICAgIGV4cHJfdHkgb3V0ZXJtb3N0X2l0ZXI7CisgICAgUHlPYmplY3QgKnF1YWxuYW1lID0gTlVMTDsKIAogICAgIG91dGVybW9zdF9pdGVyID0gKChjb21wcmVoZW5zaW9uX3R5KQogICAgICAgICAgICAgICAgICAgICAgIGFzZGxfc2VxX0dFVChnZW5lcmF0b3JzLCAwKSktPml0ZXI7CiAKLSAgICBpZiAoIWNvbXBpbGVyX2VudGVyX3Njb3BlKGMsIG5hbWUsICh2b2lkICopZSwgZS0+bGluZW5vKSkKKyAgICBpZiAoIWNvbXBpbGVyX2VudGVyX3Njb3BlKGMsIG5hbWUsIENPTVBJTEVSX1NDT1BFX0NPTVBSRUhFTlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKWUsIGUtPmxpbmVubykpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAKICAgICBpZiAodHlwZSAhPSBDT01QX0dFTkVYUCkgewpAQCAtMjkyMSwxMiArMzA1NywxNCBAQAogICAgIH0KIAogICAgIGNvID0gYXNzZW1ibGUoYywgMSk7CisgICAgcXVhbG5hbWUgPSBjb21waWxlcl9zY29wZV9xdWFsbmFtZShjKTsKICAgICBjb21waWxlcl9leGl0X3Njb3BlKGMpOwotICAgIGlmIChjbyA9PSBOVUxMKQorICAgIGlmIChxdWFsbmFtZSA9PSBOVUxMIHx8IGNvID09IE5VTEwpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAKLSAgICBpZiAoIWNvbXBpbGVyX21ha2VfY2xvc3VyZShjLCBjbywgMCkpCisgICAgaWYgKCFjb21waWxlcl9tYWtlX2Nsb3N1cmUoYywgY28sIDAsIHF1YWxuYW1lKSkKICAgICAgICAgZ290byBlcnJvcjsKKyAgICBQeV9ERUNSRUYocXVhbG5hbWUpOwogICAgIFB5X0RFQ1JFRihjbyk7CiAKICAgICBWSVNJVChjLCBleHByLCBvdXRlcm1vc3RfaXRlcik7CkBAIC0yOTM2LDYgKzMwNzQsNyBAQAogZXJyb3JfaW5fc2NvcGU6CiAgICAgY29tcGlsZXJfZXhpdF9zY29wZShjKTsKIGVycm9yOgorICAgIFB5X1hERUNSRUYocXVhbG5hbWUpOwogICAgIFB5X1hERUNSRUYoY28pOwogICAgIHJldHVybiAwOwogfQpAQCAtMzAyOSw4ICszMTY4LDcgQEAKICAgICAgICAgcmV0dXJuIFB5T2JqZWN0X0lzVHJ1ZShlLT52LlN0ci5zKTsKICAgICBjYXNlIE5hbWVfa2luZDoKICAgICAgICAgLyogb3B0aW1pemUgYXdheSBuYW1lcyB0aGF0IGNhbid0IGJlIHJlYXNzaWduZWQgKi8KLSAgICAgICAgaWQgPSBQeUJ5dGVzX0FTX1NUUklORygKLSAgICAgICAgICAgIF9QeVVuaWNvZGVfQXNEZWZhdWx0RW5jb2RlZFN0cmluZyhlLT52Lk5hbWUuaWQsIE5VTEwpKTsKKyAgICAgICAgaWQgPSBQeVVuaWNvZGVfQXNVVEY4KGUtPnYuTmFtZS5pZCk7CiAgICAgICAgIGlmIChzdHJjbXAoaWQsICJUcnVlIikgPT0gMCkgcmV0dXJuIDE7CiAgICAgICAgIGlmIChzdHJjbXAoaWQsICJGYWxzZSIpID09IDApIHJldHVybiAwOwogICAgICAgICBpZiAoc3RyY21wKGlkLCAiTm9uZSIpID09IDApIHJldHVybiAwOwpAQCAtMzA2Niw5ICszMjA0LDEwIEBACiAgICAgICAgZXhpdCgqZXhjKQogICovCiBzdGF0aWMgaW50Ci1jb21waWxlcl93aXRoKHN0cnVjdCBjb21waWxlciAqYywgc3RtdF90eSBzKQorY29tcGlsZXJfd2l0aChzdHJ1Y3QgY29tcGlsZXIgKmMsIHN0bXRfdHkgcywgaW50IHBvcykKIHsKICAgICBiYXNpY2Jsb2NrICpibG9jaywgKmZpbmFsbHk7CisgICAgd2l0aGl0ZW1fdHkgaXRlbSA9IGFzZGxfc2VxX0dFVChzLT52LldpdGguaXRlbXMsIHBvcyk7CiAKICAgICBhc3NlcnQocy0+a2luZCA9PSBXaXRoX2tpbmQpOwogCkBAIC0zMDc4LDcgKzMyMTcsNyBAQAogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8qIEV2YWx1YXRlIEVYUFIgKi8KLSAgICBWSVNJVChjLCBleHByLCBzLT52LldpdGguY29udGV4dF9leHByKTsKKyAgICBWSVNJVChjLCBleHByLCBpdGVtLT5jb250ZXh0X2V4cHIpOwogICAgIEFERE9QX0pSRUwoYywgU0VUVVBfV0lUSCwgZmluYWxseSk7CiAKICAgICAvKiBTRVRVUF9XSVRIIHB1c2hlcyBhIGZpbmFsbHkgYmxvY2suICovCkBAIC0zMDg3LDE2ICszMjI2LDIwIEBACiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlmIChzLT52LldpdGgub3B0aW9uYWxfdmFycykgewotICAgICAgICBWSVNJVChjLCBleHByLCBzLT52LldpdGgub3B0aW9uYWxfdmFycyk7CisgICAgaWYgKGl0ZW0tPm9wdGlvbmFsX3ZhcnMpIHsKKyAgICAgICAgVklTSVQoYywgZXhwciwgaXRlbS0+b3B0aW9uYWxfdmFycyk7CiAgICAgfQogICAgIGVsc2UgewogICAgIC8qIERpc2NhcmQgcmVzdWx0IGZyb20gY29udGV4dC5fX2VudGVyX18oKSAqLwogICAgICAgICBBRERPUChjLCBQT1BfVE9QKTsKICAgICB9CiAKLSAgICAvKiBCTE9DSyBjb2RlICovCi0gICAgVklTSVRfU0VRKGMsIHN0bXQsIHMtPnYuV2l0aC5ib2R5KTsKKyAgICBwb3MrKzsKKyAgICBpZiAocG9zID09IGFzZGxfc2VxX0xFTihzLT52LldpdGguaXRlbXMpKQorICAgICAgICAvKiBCTE9DSyBjb2RlICovCisgICAgICAgIFZJU0lUX1NFUShjLCBzdG10LCBzLT52LldpdGguYm9keSkKKyAgICBlbHNlIGlmICghY29tcGlsZXJfd2l0aChjLCBzLCBwb3MpKQorICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvKiBFbmQgb2YgdHJ5IGJsb2NrOyBzdGFydCB0aGUgZmluYWxseSBibG9jayAqLwogICAgIEFERE9QKGMsIFBPUF9CTE9DSyk7CkBAIC0zMTczLDE2ICszMzE2LDI3IEBACiAgICAgY2FzZSBEaWN0Q29tcF9raW5kOgogICAgICAgICByZXR1cm4gY29tcGlsZXJfZGljdGNvbXAoYywgZSk7CiAgICAgY2FzZSBZaWVsZF9raW5kOgorICAgIGNhc2UgWWllbGRGcm9tX2tpbmQ6IHsKKyAgICAgICAgZXhwcl90eSB2YWx1ZTsKICAgICAgICAgaWYgKGMtPnUtPnVfc3RlLT5zdGVfdHlwZSAhPSBGdW5jdGlvbkJsb2NrKQogICAgICAgICAgICAgcmV0dXJuIGNvbXBpbGVyX2Vycm9yKGMsICIneWllbGQnIG91dHNpZGUgZnVuY3Rpb24iKTsKLSAgICAgICAgaWYgKGUtPnYuWWllbGQudmFsdWUpIHsKLSAgICAgICAgICAgIFZJU0lUKGMsIGV4cHIsIGUtPnYuWWllbGQudmFsdWUpOworICAgICAgICB2YWx1ZSA9IChlLT5raW5kID09IFlpZWxkRnJvbV9raW5kKSA/IGUtPnYuWWllbGRGcm9tLnZhbHVlIDogZS0+di5ZaWVsZC52YWx1ZTsKKyAgICAgICAgaWYgKHZhbHVlKSB7CisgICAgICAgICAgICBWSVNJVChjLCBleHByLCB2YWx1ZSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBBRERPUF9PKGMsIExPQURfQ09OU1QsIFB5X05vbmUsIGNvbnN0cyk7CiAgICAgICAgIH0KLSAgICAgICAgQURET1AoYywgWUlFTERfVkFMVUUpOworICAgICAgICBpZiAoZS0+a2luZCA9PSBZaWVsZEZyb21fa2luZCkgeworICAgICAgICAgICAgQURET1AoYywgR0VUX0lURVIpOworICAgICAgICAgICAgQURET1BfTyhjLCBMT0FEX0NPTlNULCBQeV9Ob25lLCBjb25zdHMpOworICAgICAgICAgICAgQURET1AoYywgWUlFTERfRlJPTSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBBRERPUChjLCBZSUVMRF9WQUxVRSk7CisgICAgICAgIH0KICAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgQ29tcGFyZV9raW5kOgogICAgICAgICByZXR1cm4gY29tcGlsZXJfY29tcGFyZShjLCBlKTsKICAgICBjYXNlIENhbGxfa2luZDoKQEAgLTMzNjUsNyArMzUxOSw3IEBACiBzdGF0aWMgaW50CiBjb21waWxlcl9lcnJvcihzdHJ1Y3QgY29tcGlsZXIgKmMsIGNvbnN0IGNoYXIgKmVycnN0cikKIHsKLSAgICBQeU9iamVjdCAqbG9jLCAqZmlsZW5hbWU7CisgICAgUHlPYmplY3QgKmxvYzsKICAgICBQeU9iamVjdCAqdSA9IE5VTEwsICp2ID0gTlVMTDsKIAogICAgIGxvYyA9IFB5RXJyX1Byb2dyYW1UZXh0KGMtPmNfZmlsZW5hbWUsIGMtPnUtPnVfbGluZW5vKTsKQEAgLTMzNzMsMTYgKzM1MjcsNyBAQAogICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgICAgIGxvYyA9IFB5X05vbmU7CiAgICAgfQotICAgIGlmIChjLT5jX2ZpbGVuYW1lICE9IE5VTEwpIHsKLSAgICAgICAgZmlsZW5hbWUgPSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KGMtPmNfZmlsZW5hbWUpOwotICAgICAgICBpZiAoIWZpbGVuYW1lKQotICAgICAgICAgICAgZ290byBleGl0OwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgICAgICBmaWxlbmFtZSA9IFB5X05vbmU7Ci0gICAgfQotICAgIHUgPSBQeV9CdWlsZFZhbHVlKCIoTmlpTykiLCBmaWxlbmFtZSwgYy0+dS0+dV9saW5lbm8sCisgICAgdSA9IFB5X0J1aWxkVmFsdWUoIihPaWlPKSIsIGMtPmNfZmlsZW5hbWVfb2JqLCBjLT51LT51X2xpbmVubywKICAgICAgICAgICAgICAgICAgICAgICBjLT51LT51X2NvbF9vZmZzZXQsIGxvYyk7CiAgICAgaWYgKCF1KQogICAgICAgICBnb3RvIGV4aXQ7CkBAIC0zOTMxLDcgKzQwNzYsNiBAQAogICAgIFB5T2JqZWN0ICpjb25zdHMgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpuYW1lcyA9IE5VTEw7CiAgICAgUHlPYmplY3QgKnZhcm5hbWVzID0gTlVMTDsKLSAgICBQeU9iamVjdCAqZmlsZW5hbWUgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpuYW1lID0gTlVMTDsKICAgICBQeU9iamVjdCAqZnJlZXZhcnMgPSBOVUxMOwogICAgIFB5T2JqZWN0ICpjZWxsdmFycyA9IE5VTEw7CkBAIC0zOTU1LDEwICs0MDk5LDYgQEAKICAgICBmcmVldmFycyA9IGRpY3Rfa2V5c19pbm9yZGVyKGMtPnUtPnVfZnJlZXZhcnMsIFB5VHVwbGVfU2l6ZShjZWxsdmFycykpOwogICAgIGlmICghZnJlZXZhcnMpCiAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgZmlsZW5hbWUgPSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KGMtPmNfZmlsZW5hbWUpOwotICAgIGlmICghZmlsZW5hbWUpCi0gICAgICAgIGdvdG8gZXJyb3I7Ci0KICAgICBubG9jYWxzID0gUHlEaWN0X1NpemUoYy0+dS0+dV92YXJuYW1lcyk7CiAgICAgZmxhZ3MgPSBjb21wdXRlX2NvZGVfZmxhZ3MoYyk7CiAgICAgaWYgKGZsYWdzIDwgMCkKQEAgLTM5NzgsMTQgKzQxMTgsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgbmxvY2Fscywgc3RhY2tkZXB0aChjKSwgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgIGJ5dGVjb2RlLCBjb25zdHMsIG5hbWVzLCB2YXJuYW1lcywKICAgICAgICAgICAgICAgICAgICAgZnJlZXZhcnMsIGNlbGx2YXJzLAotICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwgYy0+dS0+dV9uYW1lLAorICAgICAgICAgICAgICAgICAgICBjLT5jX2ZpbGVuYW1lX29iaiwgYy0+dS0+dV9uYW1lLAogICAgICAgICAgICAgICAgICAgICBjLT51LT51X2ZpcnN0bGluZW5vLAogICAgICAgICAgICAgICAgICAgICBhLT5hX2xub3RhYik7CiAgZXJyb3I6CiAgICAgUHlfWERFQ1JFRihjb25zdHMpOwogICAgIFB5X1hERUNSRUYobmFtZXMpOwogICAgIFB5X1hERUNSRUYodmFybmFtZXMpOwotICAgIFB5X1hERUNSRUYoZmlsZW5hbWUpOwogICAgIFB5X1hERUNSRUYobmFtZSk7CiAgICAgUHlfWERFQ1JFRihmcmVldmFycyk7CiAgICAgUHlfWERFQ1JFRihjZWxsdmFycyk7CmRpZmYgLS1naXQgYS9QeXRob24vY29uZHZhci5oIGIvUHl0aG9uL2NvbmR2YXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZTZiZDc0Ci0tLSAvZGV2L251bGwKKysrIGIvUHl0aG9uL2NvbmR2YXIuaApAQCAtMCwwICsxLDM5MCBAQAorLyogCisgKiBQb3J0YWJsZSBjb25kaXRpb24gdmFyaWFibGUgc3VwcG9ydCBmb3Igd2luZG93cyBhbmQgcHRocmVhZHMuCisgKiBFdmVyeXRoaW5nIGlzIGlubGluZSwgdGhpcyBoZWFkZXIgY2FuIGJlIGluY2x1ZGVkIHdoZXJlIG5lZWRlZC4KKyAqCisgKiBBUElzIGdlbmVyYWxseSByZXR1cm4gMCBvbiBzdWNjZXNzIGFuZCBub24temVybyBvbiBlcnJvciwKKyAqIGFuZCB0aGUgY2FsbGVyIG5lZWRzIHRvIHVzZSBpdHMgcGxhdGZvcm0ncyBlcnJvciBtZWNoYW5pc20gdG8KKyAqIGRpc2NvdmVyIHRoZSBlcnJvciAoZXJybm8sIG9yIEdldExhc3RFcnJvcigpKQorICoKKyAqIE5vdGUgdGhhdCBzb21lIGltcGxlbWVudGF0aW9ucyBjYW5ub3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiBhCisgKiBjb25kaXRpb24gdmFyaWFibGUgd2FpdCB0aW1lLW91dCBhbmQgc3VjY2Vzc2Z1bCB3YWl0LiBNb3N0IG9mdGVuCisgKiB0aGUgZGlmZmVyZW5jZSBpcyBtb290IGFueXdheSBzaW5jZSB0aGUgd2FpdCBjb25kaXRpb24gbXVzdCBiZQorICogcmUtY2hlY2tlZC4KKyAqIFB5Q09ORF9USU1FRFdBSVQsIGluIGFkZGl0aW9uIHRvIHJldHVybmluZyBuZWdhdGl2ZSBvbiBlcnJvciwKKyAqIHRodXMgcmV0dXJucyAwIG9uIHJlZ3VsYXIgc3VjY2VzcywgMSBvbiB0aW1lb3V0CisgKiBvciAyIGlmIGl0IGNhbid0IHRlbGwuCisgKgorICogVGhlcmUgYXJlIGF0IGxlYXN0IHR3byBjYXZlYXRzIHdpdGggdXNpbmcgdGhlc2UgY29uZGl0aW9uIHZhcmlhYmxlcywKKyAqIGR1ZSB0byB0aGUgZmFjdCB0aGF0IHRoZXkgbWF5IGJlIGVtdWxhdGVkIHdpdGggU2VtYXBob3JlcyBvbgorICogV2luZG93czoKKyAqIDEpIFdoaWxlIFB5Q09ORF9TSUdOQUwoKSB3aWxsIHdha2UgdXAgYXQgbGVhc3Qgb25lIHRocmVhZCwgd2UKKyAqICAgIGNhbm5vdCBjdXJyZW50bHkgZ3VhcmFudGVlIHRoYXQgaXQgd2lsbCBiZSBvbmUgb2YgdGhlIHRocmVhZHMKKyAqICAgIGFscmVhZHkgd2FpdGluZyBpbiBhIFB5Q09ORF9XQUlUKCkgY2FsbC4gIEl0IF9jb3VsZF8gY2F1c2UKKyAqICAgIHRoZSB3YWtldXAgb2YgYSBzdWJzZXF1ZW50IHRocmVhZCB0byB0cnkgYSBQeUNPTkRfV0FJVCgpLAorICogICAgaW5jbHVkaW5nIHRoZSB0aHJlYWQgZG9pbmcgdGhlIFB5Q09ORF9TSUdOQUwoKSBpdHNlbGYuCisgKiAgICBUaGUgc2FtZSBhcHBsaWVzIHRvIFB5Q09ORF9CUk9BRENBU1QoKSwgaWYgTiB0aHJlYWRzIGFyZSB3YWl0aW5nCisgKiAgICB0aGVuIGF0IGxlYXN0IE4gdGhyZWFkcyB3aWxsIGJlIHdva2VuIHVwLCBidXQgbm90IG5lY2Vzc2FyaWx5CisgKiAgICB0aG9zZSBhbHJlYWR5IHdhaXRpbmcuCisgKiAgICBGb3IgdGhpcyByZWFzb24sIGRvbid0IG1ha2UgdGhlIHNjaGVkdWxpbmcgYXNzdW1wdGlvbiB0aGF0IGEKKyAqICAgIHNwZWNpZmljIG90aGVyIHRocmVhZCB3aWxsIGdldCB0aGUgd2FrZXVwIHNpZ25hbAorICogMikgVGhlIF9tdXRleF8gbXVzdCBiZSBoZWxkIHdoZW4gY2FsbGluZyBQeUNPTkRfU0lHTkFMKCkgYW5kCisgKiAgICBQeUNPTkRfQlJPQURDQVNUKCkuCisgKiAgICBXaGlsZSBlLmcuIHRoZSBwb3NpeCBzdGFuZGFyZCBzdHJvbmdseSByZWNvbW1lbmRzIHRoYXQgdGhlIG11dGV4CisgKiAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGNvbmRpdGlvbiB2YXJpYWJsZSBpcyBoZWxkIHdoZW4gYQorICogICAgcHRocmVhZF9jb25kX3NpZ25hbCgpIGNhbGwgaXMgbWFkZSwgdGhpcyBpcyBub3QgYSBoYXJkIHJlcXVpcmVtZW50LAorICogICAgYWx0aG91Z2ggc2NoZWR1bGluZyB3aWxsIG5vdCBiZSAicmVsaWFibGUiIGlmIGl0IGlzbid0LiAgSGVyZQorICogICAgdGhlIG11dGV4IGlzIHVzZWQgZm9yIGludGVybmFsIHN5bmNocm9uaXphdGlvbiBvZiB0aGUgZW11bGF0ZWQKKyAqICAgIENvbmRpdGlvbiBWYXJpYWJsZS4KKyAqLworCisjaWZuZGVmIF9DT05EVkFSX0hfCisjZGVmaW5lIF9DT05EVkFSX0hfCisKKyNpbmNsdWRlICJQeXRob24uaCIKKworI2lmbmRlZiBfUE9TSVhfVEhSRUFEUworLyogVGhpcyBtZWFucyBwdGhyZWFkcyBhcmUgbm90IGltcGxlbWVudGVkIGluIGxpYmMgaGVhZGVycywgaGVuY2UgdGhlIG1hY3JvCisgICBub3QgcHJlc2VudCBpbiB1bmlzdGQuaC4gQnV0IHRoZXkgc3RpbGwgY2FuIGJlIGltcGxlbWVudGVkIGFzIGFuIGV4dGVybmFsCisgICBsaWJyYXJ5IChlLmcuIGdudSBwdGggaW4gcHRocmVhZCBlbXVsYXRpb24pICovCisjIGlmZGVmIEhBVkVfUFRIUkVBRF9ICisjICBpbmNsdWRlIDxwdGhyZWFkLmg+IC8qIF9QT1NJWF9USFJFQURTICovCisjIGVuZGlmCisjZW5kaWYKKworI2lmZGVmIF9QT1NJWF9USFJFQURTCisvKgorICogUE9TSVggc3VwcG9ydAorICovCisjZGVmaW5lIFB5X0hBVkVfQ09ORFZBUgorCisjaW5jbHVkZSA8cHRocmVhZC5oPgorCisjZGVmaW5lIFB5Q09ORF9BRERfTUlDUk9TRUNPTkRTKHR2LCBpbnRlcnZhbCkgXAorZG8geyBcCisgICAgdHYudHZfdXNlYyArPSAobG9uZykgaW50ZXJ2YWw7IFwKKyAgICB0di50dl9zZWMgKz0gdHYudHZfdXNlYyAvIDEwMDAwMDA7IFwKKyAgICB0di50dl91c2VjICU9IDEwMDAwMDA7IFwKK30gd2hpbGUgKDApCisKKy8qIFdlIGFzc3VtZSBhbGwgbW9kZXJuIFBPU0lYIHN5c3RlbXMgaGF2ZSBnZXR0aW1lb2ZkYXkoKSAqLworI2lmZGVmIEdFVFRJTUVPRkRBWV9OT19UWgorI2RlZmluZSBQeUNPTkRfR0VUVElNRU9GREFZKHB0dikgZ2V0dGltZW9mZGF5KHB0dikKKyNlbHNlCisjZGVmaW5lIFB5Q09ORF9HRVRUSU1FT0ZEQVkocHR2KSBnZXR0aW1lb2ZkYXkocHR2LCAoc3RydWN0IHRpbWV6b25lICopTlVMTCkKKyNlbmRpZgorCisvKiBUaGUgZm9sbG93aW5nIGZ1bmN0aW9ucyByZXR1cm4gMCBvbiBzdWNjZXNzLCBub256ZXJvIG9uIGVycm9yICovCisjZGVmaW5lIFB5TVVURVhfVCBwdGhyZWFkX211dGV4X3QKKyNkZWZpbmUgUHlNVVRFWF9JTklUKG11dCkgICAgICAgcHRocmVhZF9tdXRleF9pbml0KChtdXQpLCBOVUxMKQorI2RlZmluZSBQeU1VVEVYX0ZJTkkobXV0KSAgICAgICBwdGhyZWFkX211dGV4X2Rlc3Ryb3kobXV0KQorI2RlZmluZSBQeU1VVEVYX0xPQ0sobXV0KSAgICAgICBwdGhyZWFkX211dGV4X2xvY2sobXV0KQorI2RlZmluZSBQeU1VVEVYX1VOTE9DSyhtdXQpICAgICBwdGhyZWFkX211dGV4X3VubG9jayhtdXQpCisKKyNkZWZpbmUgUHlDT05EX1QgcHRocmVhZF9jb25kX3QKKyNkZWZpbmUgUHlDT05EX0lOSVQoY29uZCkgICAgICAgcHRocmVhZF9jb25kX2luaXQoKGNvbmQpLCBOVUxMKQorI2RlZmluZSBQeUNPTkRfRklOSShjb25kKSAgICAgICBwdGhyZWFkX2NvbmRfZGVzdHJveShjb25kKQorI2RlZmluZSBQeUNPTkRfU0lHTkFMKGNvbmQpICAgICBwdGhyZWFkX2NvbmRfc2lnbmFsKGNvbmQpCisjZGVmaW5lIFB5Q09ORF9CUk9BRENBU1QoY29uZCkgIHB0aHJlYWRfY29uZF9icm9hZGNhc3QoY29uZCkKKyNkZWZpbmUgUHlDT05EX1dBSVQoY29uZCwgbXV0KSAgcHRocmVhZF9jb25kX3dhaXQoKGNvbmQpLCAobXV0KSkKKworLyogcmV0dXJuIDAgZm9yIHN1Y2Nlc3MsIDEgb24gdGltZW91dCwgLTEgb24gZXJyb3IgKi8KK1B5X0xPQ0FMX0lOTElORShpbnQpCitQeUNPTkRfVElNRURXQUlUKFB5Q09ORF9UICpjb25kLCBQeU1VVEVYX1QgKm11dCwgbG9uZyB1cykKK3sKKyAgICBpbnQgcjsKKyAgICBzdHJ1Y3QgdGltZXNwZWMgdHM7CisgICAgc3RydWN0IHRpbWV2YWwgZGVhZGxpbmU7CisKKyAgICBQeUNPTkRfR0VUVElNRU9GREFZKCZkZWFkbGluZSk7CisgICAgUHlDT05EX0FERF9NSUNST1NFQ09ORFMoZGVhZGxpbmUsIHVzKTsKKyAgICB0cy50dl9zZWMgPSBkZWFkbGluZS50dl9zZWM7CisgICAgdHMudHZfbnNlYyA9IGRlYWRsaW5lLnR2X3VzZWMgKiAxMDAwOworCisgICAgciA9IHB0aHJlYWRfY29uZF90aW1lZHdhaXQoKGNvbmQpLCAobXV0KSwgJnRzKTsKKyAgICBpZiAociA9PSBFVElNRURPVVQpCisgICAgICAgIHJldHVybiAxOworICAgIGVsc2UgaWYgKHIpCisgICAgICAgIHJldHVybiAtMTsKKyAgICBlbHNlIAorICAgICAgICByZXR1cm4gMDsKK30KKworI2VsaWYgZGVmaW5lZChOVF9USFJFQURTKQorLyoKKyAqIFdpbmRvd3MgKFhQLCAyMDAzIHNlcnZlciBhbmQgbGF0ZXIsIGFzIHdlbGwgYXMgKGhvcGVmdWxseSkgQ0UpIHN1cHBvcnQKKyAqCisgKiBFbXVsYXRlZCBjb25kaXRpb24gdmFyaWFibGVzIG9uZXMgdGhhdCB3b3JrIHdpdGggWFAgYW5kIGxhdGVyLCBwbHVzCisgKiBleGFtcGxlIG5hdGl2ZSBzdXBwb3J0IG9uIFZJU1RBIGFuZCBvbndhcmRzLgorICovCisjZGVmaW5lIFB5X0hBVkVfQ09ORFZBUgorCisKKy8qIGluY2x1ZGUgd2luZG93cyBpZiBpdCBoYXNuJ3QgYmVlbiBkb25lIGJlZm9yZSAqLworI2RlZmluZSBXSU4zMl9MRUFOX0FORF9NRUFOCisjaW5jbHVkZSA8d2luZG93cy5oPgorCisvKiBvcHRpb25zICovCisvKiBub24tZW11bGF0ZWQgY29uZGl0aW9uIHZhcmlhYmxlcyBhcmUgcHJvdmlkZWQgZm9yIHRob3NlIHRoYXQgd2FudAorICogdG8gdGFyZ2V0IFdpbmRvd3MgVmlzdGEuICBNb2RpZnkgdGhpcyBtYWNybyB0byBlbmFibGUgdGhlbS4KKyAqLworI2lmbmRlZiBfUFlfRU1VTEFURURfV0lOX0NWCisjZGVmaW5lIF9QWV9FTVVMQVRFRF9XSU5fQ1YgMSAgLyogdXNlIGVtdWxhdGVkIGNvbmRpdGlvbiB2YXJpYWJsZXMgKi8KKyNlbmRpZgorCisvKiBmYWxsIGJhY2sgdG8gZW11bGF0aW9uIGlmIG5vdCB0YXJnZXRpbmcgVmlzdGEgKi8KKyNpZiAhZGVmaW5lZCBOVERESV9WSVNUQSB8fCBOVERESV9WRVJTSU9OIDwgTlRERElfVklTVEEKKyN1bmRlZiBfUFlfRU1VTEFURURfV0lOX0NWCisjZGVmaW5lIF9QWV9FTVVMQVRFRF9XSU5fQ1YgMQorI2VuZGlmCisKKworI2lmIF9QWV9FTVVMQVRFRF9XSU5fQ1YKKworLyogVGhlIG11dGV4IGlzIGEgQ3JpdGljYWxTZWN0aW9uIG9iamVjdCBhbmQKKyAgIFRoZSBjb25kaXRpb24gdmFyaWFibGVzIGlzIGVtdWxhdGVkIHdpdGggdGhlIGhlbHAgb2YgYSBzZW1hcGhvcmUuCisgICBTZW1hcGhvcmVzIGFyZSBhdmFpbGFibGUgb24gV2luZG93cyBYUCAoMjAwMyBzZXJ2ZXIpIGFuZCBsYXRlci4KKyAgIFdlIHVzZSBhIFNlbWFwaG9yZSByYXRoZXIgdGhhbiBhbiBhdXRvLXJlc2V0IGV2ZW50LCBiZWNhdXNlIGFsdGhvdWdoCisgICBhbiBhdXRvLXJlc2VudCBldmVudCBtaWdodCBhcHBlYXIgdG8gc29sdmUgdGhlIGxvc3Qtd2FrZXVwIGJ1ZyAocmFjZQorICAgY29uZGl0aW9uIGJldHdlZW4gcmVsZWFzaW5nIHRoZSBvdXRlciBsb2NrIGFuZCB3YWl0aW5nKSBiZWNhdXNlIGl0CisgICBtYWludGFpbnMgc3RhdGUgZXZlbiB0aG91Z2ggYSB3YWl0IGhhc24ndCBoYXBwZW5lZCwgdGhlcmUgaXMgc3RpbGwKKyAgIGEgbG9zdCB3YWtldXAgcHJvYmxlbSBpZiBtb3JlIHRoYW4gb25lIHRocmVhZCBhcmUgaW50ZXJydXB0ZWQgaW4gdGhlCisgICBjcml0aWNhbCBwbGFjZS4gIEEgc2VtYXBob3JlIHNvbHZlcyB0aGF0LCBiZWNhdXNlIGl0cyBzdGF0ZSBpcyBjb3VudGVkLAorICAgbm90IEJvb2xlYW4uCisgICBCZWNhdXNlIGl0IGlzIG9rIHRvIHNpZ25hbCBhIGNvbmRpdGlvbiB2YXJpYWJsZSB3aXRoIG5vIG9uZQorICAgd2FpdGluZywgd2UgbmVlZCB0byBrZWVwIHRyYWNrIG9mIHRoZSBudW1iZXIgb2YKKyAgIHdhaXRpbmcgdGhyZWFkcy4gIE90aGVyd2lzZSwgdGhlIHNlbWFwaG9yZSdzIHN0YXRlIGNvdWxkIHJpc2UKKyAgIHdpdGhvdXQgYm91bmQuICBUaGlzIGFsc28gaGVscHMgcmVkdWNlIHRoZSBudW1iZXIgb2YgInNwdXJpb3VzIHdha2V1cHMiCisgICB0aGF0IHdvdWxkIG90aGVyd2lzZSBoYXBwZW4uCisKKyAgIFRoaXMgaW1wbGVtZW50YXRpb24gc3RpbGwgaGFzIHRoZSBwcm9ibGVtIHRoYXQgdGhlIHRocmVhZHMgd29rZW4KKyAgIHdpdGggYSAic2lnbmFsIiBhcmVuJ3QgbmVjZXNzYXJpbHkgdGhvc2UgdGhhdCBhcmUgYWxyZWFkeQorICAgd2FpdGluZy4gIEl0IGNvcnJlc3BvbmRzIHRvIGxpc3RpbmcgMiBpbjoKKyAgIGh0dHA6Ly9iaXJyZWxsLm9yZy9hbmRyZXcvcGFwZXJzL0ltcGxlbWVudGluZ0NWcy5wZGYKKworICAgR2VuZXJpYyBlbXVsYXRpb25zIG9mIHRoZSBwdGhyZWFkX2NvbmRfKiBBUEkgdXNpbmcKKyAgIGVhcmxpZXIgV2luMzIgZnVuY3Rpb25zIGNhbiBiZSBmb3VuZCBvbiB0aGUgV2ViLgorICAgVGhlIGZvbGxvd2luZyByZWFkIGNhbiBiZSBlZGlmaWNhdGluZyAob3Igbm90KToKKyAgIGh0dHA6Ly93d3cuY3NlLnd1c3RsLmVkdS9+c2NobWlkdC93aW4zMi1jdi0xLmh0bWwKKworICAgU2VlIGFsc28gCisqLworCit0eXBlZGVmIENSSVRJQ0FMX1NFQ1RJT04gUHlNVVRFWF9UOworCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlNVVRFWF9JTklUKFB5TVVURVhfVCAqY3MpCit7CisgICAgSW5pdGlhbGl6ZUNyaXRpY2FsU2VjdGlvbihjcyk7CisgICAgcmV0dXJuIDA7Cit9CisKK1B5X0xPQ0FMX0lOTElORShpbnQpCitQeU1VVEVYX0ZJTkkoUHlNVVRFWF9UICpjcykKK3sKKyAgICBEZWxldGVDcml0aWNhbFNlY3Rpb24oY3MpOworICAgIHJldHVybiAwOworfQorCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlNVVRFWF9MT0NLKFB5TVVURVhfVCAqY3MpCit7CisgICAgRW50ZXJDcml0aWNhbFNlY3Rpb24oY3MpOworICAgIHJldHVybiAwOworfQorCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlNVVRFWF9VTkxPQ0soUHlNVVRFWF9UICpjcykKK3sKKyAgICBMZWF2ZUNyaXRpY2FsU2VjdGlvbihjcyk7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qIFRoZSBDb25kaXRpb25WYXJpYWJsZSBvYmplY3QuICBGcm9tIFhQIG9ud2FyZHMgaXQgaXMgZWFzaWx5IGVtdWxhdGVkIHdpdGgKKyAqIGEgU2VtYXBob3JlCisgKi8KKwordHlwZWRlZiBzdHJ1Y3QgX1B5Q09ORF9UCit7CisgICAgSEFORExFIHNlbTsKKyAgICBpbnQgd2FpdGluZzsgLyogdG8gYWxsb3cgUHlDT05EX1NJR05BTCB0byBiZSBhIG5vLW9wICovCit9IFB5Q09ORF9UOworCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlDT05EX0lOSVQoUHlDT05EX1QgKmN2KQoreworICAgIC8qIEEgc2VtYXBob3JlIHdpdGggYSAibGFyZ2UiIG1heCB2YWx1ZSwgIFRoZSBwb3NpdGl2ZSB2YWx1ZQorICAgICAqIGlzIG9ubHkgbmVlZGVkIHRvIGNhdGNoIHRob3NlICJsb3N0IHdha2V1cCIgZXZlbnRzIGFuZAorICAgICAqIHJhY2UgY29uZGl0aW9ucyB3aGVuIGEgdGltZWQgd2FpdCBlbGFwc2VzLgorICAgICAqLworICAgIGN2LT5zZW0gPSBDcmVhdGVTZW1hcGhvcmUoTlVMTCwgMCwgMTAwMDAwLCBOVUxMKTsKKyAgICBpZiAoY3YtPnNlbT09TlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGN2LT53YWl0aW5nID0gMDsKKyAgICByZXR1cm4gMDsKK30KKworUHlfTE9DQUxfSU5MSU5FKGludCkKK1B5Q09ORF9GSU5JKFB5Q09ORF9UICpjdikKK3sKKyAgICByZXR1cm4gQ2xvc2VIYW5kbGUoY3YtPnNlbSkgPyAwIDogLTE7Cit9CisKKy8qIHRoaXMgaW1wbGVtZW50YXRpb24gY2FuIGRldGVjdCBhIHRpbWVvdXQuICBSZXR1cm5zIDEgb24gdGltZW91dCwKKyAqIDAgb3RoZXJ3aXNlIChhbmQgLTEgb24gZXJyb3IpCisgKi8KK1B5X0xPQ0FMX0lOTElORShpbnQpCitfUHlDT05EX1dBSVRfTVMoUHlDT05EX1QgKmN2LCBQeU1VVEVYX1QgKmNzLCBEV09SRCBtcykKK3sKKyAgICBEV09SRCB3YWl0OworICAgIGN2LT53YWl0aW5nKys7CisgICAgUHlNVVRFWF9VTkxPQ0soY3MpOworICAgIC8qICJsb3N0IHdha2V1cCBidWciIHdvdWxkIG9jY3VyIGlmIHRoZSBjYWxsZXIgd2VyZSBpbnRlcnJ1cHRlZCBoZXJlLAorICAgICAqIGJ1dCB3ZSBhcmUgc2FmZSBiZWNhdXNlIHdlIGFyZSB1c2luZyBhIHNlbWFwaG9yZSB3aWNoIGhhcyBhbiBpbnRlcm5hbAorICAgICAqIGNvdW50LgorICAgICAqLworICAgIHdhaXQgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KGN2LT5zZW0sIG1zKTsKKyAgICBQeU1VVEVYX0xPQ0soY3MpOworICAgIGlmICh3YWl0ICE9IFdBSVRfT0JKRUNUXzApCisgICAgICAgIC0tY3YtPndhaXRpbmc7CisgICAgICAgIC8qIEhlcmUgd2UgaGF2ZSBhIGJlbmlnbiByYWNlIGNvbmRpdGlvbiB3aXRoIFB5Q09ORF9TSUdOQUwuCisgICAgICAgICAqIFdoZW4gZmFpbHVyZSBvY2N1cnMgb3IgdGltZW91dCwgaXQgaXMgcG9zc2libGUgdGhhdAorICAgICAgICAgKiBQeUNPTkRfU0lHTkFMIGFsc28gZGVjcmVtZW50cyB0aGlzIHZhbHVlCisgICAgICAgICAqIGFuZCBzaWduYWxzIHJlbGVhc2VzIHRoZSBtdXRleC4gIFRoaXMgaXMgYmVuaWduIGJlY2F1c2UgaXQKKyAgICAgICAgICoganVzdCBtZWFucyBhbiBleHRyYSBzcHVyaW91cyB3YWtldXAgZm9yIGEgd2FpdGluZyB0aHJlYWQuCisgICAgICAgICAqICgnd2FpdGluZycgY29ycmVzcG9uZHMgdG8gdGhlIHNlbWFwaG9yZSdzICJuZWdhdGl2ZSIgY291bnQgYW5kCisgICAgICAgICAqIHdlIG1heSBlbmQgdXAgd2l0aCBlLmcuICh3YWl0aW5nID09IC0xICYmIHNlbS5jb3VudCA9PSAxKS4gIFdoZW4KKyAgICAgICAgICogYSBuZXcgdGhyZWFkIGNvbWVzIGFsb25nLCBpdCB3aWxsIHBhc3MgcmlnaHQgdGhyb3VoZ2gsIGhhdmluZworICAgICAgICAgKiBhZGp1c3RlZCBpdCB0byAod2FpdGluZyA9PSAwICYmIHNlbS5jb3VudCA9PSAwKS4KKyAgICAgICAgICovCisgICAgICAgICAKKyAgICBpZiAod2FpdCA9PSBXQUlUX0ZBSUxFRCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIC8qIHJldHVybiAwIG9uIHN1Y2Nlc3MsIDEgb24gdGltZW91dCAqLworICAgIHJldHVybiB3YWl0ICE9IFdBSVRfT0JKRUNUXzA7Cit9CisKK1B5X0xPQ0FMX0lOTElORShpbnQpCitQeUNPTkRfV0FJVChQeUNPTkRfVCAqY3YsIFB5TVVURVhfVCAqY3MpCit7CisgICAgaW50IHJlc3VsdCA9IF9QeUNPTkRfV0FJVF9NUyhjdiwgY3MsIElORklOSVRFKTsKKyAgICByZXR1cm4gcmVzdWx0ID49IDAgPyAwIDogcmVzdWx0OworfQorCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlDT05EX1RJTUVEV0FJVChQeUNPTkRfVCAqY3YsIFB5TVVURVhfVCAqY3MsIGxvbmcgdXMpCit7CisgICAgcmV0dXJuIF9QeUNPTkRfV0FJVF9NUyhjdiwgY3MsIHVzLzEwMDApOworfQorCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlDT05EX1NJR05BTChQeUNPTkRfVCAqY3YpCit7CisgICAgLyogdGhpcyB0ZXN0IGFsbG93cyBQeUNPTkRfU0lHTkFMIHRvIGJlIGEgbm8tb3AgdW5sZXNzIHJlcXVpcmVkCisgICAgICogdG8gd2FrZSBzb21lb25lIHVwLCB0aHVzIHByZXZlbnRpbmcgYW4gdW5ib3VuZGVkIGluY3JlYXNlIG9mCisgICAgICogdGhlIHNlbWFwaG9yZSdzIGludGVybmFsIGNvdW50ZXIuCisgICAgICovCisgICAgaWYgKGN2LT53YWl0aW5nID4gMCkgeworICAgICAgICAvKiBub3RpZnlpbmcgdGhyZWFkIGRlY3JlYXNlcyB0aGUgY3YtPndhaXRpbmcgY291bnQgc28gdGhhdAorICAgICAgICAgKiBhIGRlbGF5IGJldHdlZW4gbm90aWZ5IGFuZCBhY3R1YWwgd2FrZXVwIG9mIHRoZSB0YXJnZXQgdGhyZWFkCisgICAgICAgICAqIGRvZXNuJ3QgY2F1c2UgYSBudW1iZXIgb2YgZXh0cmEgUmVsZWFzZVNlbWFwaG9yZSBjYWxscy4KKyAgICAgICAgICovCisgICAgICAgIGN2LT53YWl0aW5nLS07CisgICAgICAgIHJldHVybiBSZWxlYXNlU2VtYXBob3JlKGN2LT5zZW0sIDEsIE5VTEwpID8gMCA6IC0xOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworUHlfTE9DQUxfSU5MSU5FKGludCkKK1B5Q09ORF9CUk9BRENBU1QoUHlDT05EX1QgKmN2KQoreworICAgIGlmIChjdi0+d2FpdGluZyA+IDApIHsKKyAgICAgICAgcmV0dXJuIFJlbGVhc2VTZW1hcGhvcmUoY3YtPnNlbSwgY3YtPndhaXRpbmcsIE5VTEwpID8gMCA6IC0xOworCQljdi0+d2FpdGluZyA9IDA7CisgICAgfQorICAgIHJldHVybiAwOworfQorCisjZWxzZQorCisvKiBVc2UgbmF0aXZlIFdpbjcgcHJpbWl0aXZlcyBpZiBidWlsZCB0YXJnZXQgaXMgV2luNyBvciBoaWdoZXIgKi8KKworLyogU1JXTE9DSyBpcyBmYXN0ZXIgYW5kIGJldHRlciB0aGFuIENyaXRpY2FsU2VjdGlvbiAqLwordHlwZWRlZiBTUldMT0NLIFB5TVVURVhfVDsKKworUHlfTE9DQUxfSU5MSU5FKGludCkKK1B5TVVURVhfSU5JVChQeU1VVEVYX1QgKmNzKQoreworICAgIEluaXRpYWxpemVTUldMb2NrKGNzKTsKKyAgICByZXR1cm4gMDsKK30KKworUHlfTE9DQUxfSU5MSU5FKGludCkKK1B5TVVURVhfRklOSShQeU1VVEVYX1QgKmNzKQoreworICAgIHJldHVybiAwOworfQorCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlNVVRFWF9MT0NLKFB5TVVURVhfVCAqY3MpCit7CisgICAgQWNxdWlyZVNSV0xvY2tFeGNsdXNpdmUoY3MpOworICAgIHJldHVybiAwOworfQorCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlNVVRFWF9VTkxPQ0soUHlNVVRFWF9UICpjcykKK3sKKyAgICBSZWxlYXNlU1JXTG9ja0V4Y2x1c2l2ZShjcyk7CisgICAgcmV0dXJuIDA7Cit9CisKKwordHlwZWRlZiBDT05ESVRJT05fVkFSSUFCTEUgIFB5Q09ORF9UOworCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlDT05EX0lOSVQoUHlDT05EX1QgKmN2KQoreworICAgIEluaXRpYWxpemVDb25kaXRpb25WYXJpYWJsZShjdik7CisgICAgcmV0dXJuIDA7Cit9CitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlDT05EX0ZJTkkoUHlDT05EX1QgKmN2KQoreworICAgIHJldHVybiAwOworfQorCitQeV9MT0NBTF9JTkxJTkUoaW50KQorUHlDT05EX1dBSVQoUHlDT05EX1QgKmN2LCBQeU1VVEVYX1QgKmNzKQoreworICAgIHJldHVybiBTbGVlcENvbmRpdGlvblZhcmlhYmxlU1JXKGN2LCBjcywgSU5GSU5JVEUsIDApID8gMCA6IC0xOworfQorCisvKiBUaGlzIGltcGxlbWVudGF0aW9uIG1ha2VzIG5vIGRpc3RpbmN0aW9uIGFib3V0IHRpbWVvdXRzLiAgU2lnbmFsCisgKiAyIHRvIGluZGljYXRlIHRoYXQgd2UgZG9uJ3Qga25vdy4KKyAqLworUHlfTE9DQUxfSU5MSU5FKGludCkKK1B5Q09ORF9USU1FRFdBSVQoUHlDT05EX1QgKmN2LCBQeU1VVEVYX1QgKmNzLCBsb25nIHVzKQoreworICAgIHJldHVybiBTbGVlcENvbmRpdGlvblZhcmlhYmxlU1JXKGN2LCBjcywgdXMvMTAwMCwgMCkgPyAyIDogLTE7Cit9CisKK1B5X0xPQ0FMX0lOTElORShpbnQpCitQeUNPTkRfU0lHTkFMKFB5Q09ORF9UICpjdikKK3sKKyAgICAgV2FrZUNvbmRpdGlvblZhcmlhYmxlKGN2KTsKKyAgICAgcmV0dXJuIDA7Cit9CisKK1B5X0xPQ0FMX0lOTElORShpbnQpCitQeUNPTkRfQlJPQURDQVNUKFB5Q09ORF9UICpjdikKK3sKKyAgICAgV2FrZUFsbENvbmRpdGlvblZhcmlhYmxlKGN2KTsKKyAgICAgcmV0dXJuIDA7Cit9CisKKworI2VuZGlmIC8qIF9QWV9FTVVMQVRFRF9XSU5fQ1YgKi8KKworI2VuZGlmIC8qIF9QT1NJWF9USFJFQURTLCBOVF9USFJFQURTICovCisKKyNlbmRpZiAvKiBfQ09ORFZBUl9IXyAqLwpkaWZmIC0tZ2l0IGEvUHl0aG9uL2R0b2EuYyBiL1B5dGhvbi9kdG9hLmMKaW5kZXggNDRkYzAxZi4uODM4NjFhYyAxMDA2NDQKLS0tIGEvUHl0aG9uL2R0b2EuYworKysgYi9QeXRob24vZHRvYS5jCkBAIC0yNjUsNiArMjY1LDE2IEBACiAjZGVmaW5lIEJpZzAgKEZyYWNfbWFzazEgfCBFeHBfbXNrMSooREJMX01BWF9FWFArQmlhcy0xKSkKICNkZWZpbmUgQmlnMSAweGZmZmZmZmZmCiAKKy8qIFN0YW5kYXJkIE5hTiB1c2VkIGJ5IF9QeV9kZ19zdGRuYW4uICovCisKKyNkZWZpbmUgTkFOX1dPUkQwIDB4N2ZmODAwMDAKKyNkZWZpbmUgTkFOX1dPUkQxIDAKKworLyogQml0cyBvZiB0aGUgcmVwcmVzZW50YXRpb24gb2YgcG9zaXRpdmUgaW5maW5pdHkuICovCisKKyNkZWZpbmUgUE9TSU5GX1dPUkQwIDB4N2ZmMDAwMDAKKyNkZWZpbmUgUE9TSU5GX1dPUkQxIDAKKwogLyogc3RydWN0IEJDaW5mbyBpcyB1c2VkIHRvIHBhc3MgaW5mb3JtYXRpb24gZnJvbSBfUHlfZGdfc3RydG9kIHRvIGJpZ2NvbXAgKi8KIAogdHlwZWRlZiBzdHJ1Y3QgQkNpbmZvIEJDaW5mbzsKQEAgLTE0ODYsNiArMTQ5NiwzNiBAQAogICAgIHJldHVybiAwOwogfQogCisvKiBSZXR1cm4gYSAnc3RhbmRhcmQnIE5hTiB2YWx1ZS4KKworICAgVGhlcmUgYXJlIGV4YWN0bHkgdHdvIHF1aWV0IE5hTnMgdGhhdCBkb24ndCBhcmlzZSBieSAncXVpZXRpbmcnIHNpZ25hbGluZworICAgTmFOcyAoc2VlIElFRUUgNzU0LTIwMDgsIHNlY3Rpb24gNi4yLjEpLiAgSWYgc2lnbiA9PSAwLCByZXR1cm4gdGhlIG9uZSB3aG9zZQorICAgc2lnbiBiaXQgaXMgY2xlYXJlZC4gIE90aGVyd2lzZSwgcmV0dXJuIHRoZSBvbmUgd2hvc2Ugc2lnbiBiaXQgaXMgc2V0LgorKi8KKworZG91YmxlCitfUHlfZGdfc3RkbmFuKGludCBzaWduKQoreworICAgIFUgcnY7CisgICAgd29yZDAoJnJ2KSA9IE5BTl9XT1JEMDsKKyAgICB3b3JkMSgmcnYpID0gTkFOX1dPUkQxOworICAgIGlmIChzaWduKQorICAgICAgICB3b3JkMCgmcnYpIHw9IFNpZ25fYml0OworICAgIHJldHVybiBkdmFsKCZydik7Cit9CisKKy8qIFJldHVybiBwb3NpdGl2ZSBvciBuZWdhdGl2ZSBpbmZpbml0eSwgYWNjb3JkaW5nIHRvIHRoZSBnaXZlbiBzaWduICgwIGZvcgorICogcG9zaXRpdmUgaW5maW5pdHksIDEgZm9yIG5lZ2F0aXZlIGluZmluaXR5KS4gKi8KKworZG91YmxlCitfUHlfZGdfaW5maW5pdHkoaW50IHNpZ24pCit7CisgICAgVSBydjsKKyAgICB3b3JkMCgmcnYpID0gUE9TSU5GX1dPUkQwOworICAgIHdvcmQxKCZydikgPSBQT1NJTkZfV09SRDE7CisgICAgcmV0dXJuIHNpZ24gPyAtZHZhbCgmcnYpIDogZHZhbCgmcnYpOworfQorCiBkb3VibGUKIF9QeV9kZ19zdHJ0b2QoY29uc3QgY2hhciAqczAwLCBjaGFyICoqc2UpCiB7CkBAIC0xODg2LDIwICsxOTI2LDIwIEBACiAgICAgICAgIGJkMisrOwogCiAgICAgICAgIC8qIEF0IHRoaXMgc3RhZ2UgYmQ1IC0gYmI1ID09IGUgPT0gYmQyIC0gYmIyICsgYmJlLCBiYjIgLSBiczIgPT0gMSwKLQkgICBhbmQgYnMgPT0gMSwgc286CisgICAgICAgICAgIGFuZCBicyA9PSAxLCBzbzoKIAogICAgICAgICAgICAgICB0ZHYgPT0gYmQgKiAxMCoqZSA9IGJkICogMioqKGJiZSAtIGJiMiArIGJkMikgKiA1KiooYmQ1IC0gYmI1KQogICAgICAgICAgICAgICBzcnYgPT0gYmIgKiAyKipiYmUgPSBiYiAqIDIqKihiYmUgLSBiYjIgKyBiYjIpCi0JICAgICAgMC41IHVscChzcnYpID09IDIqKihiYmUtMSkgPSBicyAqIDIqKihiYmUgLSBiYjIgKyBiczIpCisgICAgICAgICAgICAgIDAuNSB1bHAoc3J2KSA9PSAyKiooYmJlLTEpID0gYnMgKiAyKiooYmJlIC0gYmIyICsgYnMyKQogCi0JICAgSXQgZm9sbG93cyB0aGF0OgorICAgICAgICAgICBJdCBmb2xsb3dzIHRoYXQ6CiAKICAgICAgICAgICAgICAgTSAqIHRkdiA9IGJkICogMioqYmQyICogNSoqYmQ1CiAgICAgICAgICAgICAgIE0gKiBzcnYgPSBiYiAqIDIqKmJiMiAqIDUqKmJiNQogICAgICAgICAgICAgICBNICogMC41IHVscChzcnYpID0gYnMgKiAyKipiczIgKiA1KipiYjUKIAotCSAgIGZvciBzb21lIGNvbnN0YW50IE0uICAoQWN0dWFsbHksIE0gPT0gMioqKGJiMiAtIGJiZSkgKiA1KipiYjUsIGJ1dAotCSAgIHRoaXMgZmFjdCBpcyBub3QgbmVlZGVkIGJlbG93LikKKyAgICAgICAgICAgZm9yIHNvbWUgY29uc3RhbnQgTS4gIChBY3R1YWxseSwgTSA9PSAyKiooYmIyIC0gYmJlKSAqIDUqKmJiNSwgYnV0CisgICAgICAgICAgIHRoaXMgZmFjdCBpcyBub3QgbmVlZGVkIGJlbG93LikKICAgICAgICAgKi8KIAogICAgICAgICAvKiBSZW1vdmUgZmFjdG9yIG9mIDIqKmksIHdoZXJlIGkgPSBtaW4oYmIyLCBiZDIsIGJzMikuICovCkBAIC0yMDU1LDcgKzIwOTUsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgKyBFeHBfbXNrMQogICAgICAgICAgICAgICAgICAgICAgICAgOwogICAgICAgICAgICAgICAgICAgICB3b3JkMSgmcnYpID0gMDsKLSAgICAgICAgICAgICAgICAgICAgZHNpZ24gPSAwOworICAgICAgICAgICAgICAgICAgICAvKiBkc2lnbiA9IDA7ICovCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTIwOTIsNyArMjEzMiw3IEBACiAgICAgICAgICAgICAgICAgICAgIGdvdG8gdW5kZmw7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgZHNpZ24gPSAxIC0gZHNpZ247CisgICAgICAgICAgICAvKiBkc2lnbiA9IDEgLSBkc2lnbjsgKi8KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGlmICgoYWFkaiA9IHJhdGlvKGRlbHRhLCBicykpIDw9IDIuKSB7CmRpZmYgLS1naXQgYS9QeXRob24vZHlubG9hZF9haXguYyBiL1B5dGhvbi9keW5sb2FkX2FpeC5jCmluZGV4IDE0OTk5MGQuLmI0ZjcxZjIgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9keW5sb2FkX2FpeC5jCisrKyBiL1B5dGhvbi9keW5sb2FkX2FpeC5jCkBAIC0yNiwxMSArMjYsNyBAQAogICAgIHZvaWQgICAgICAgICAgKmVudHJ5OwogfSBNb2R1bGUsICpNb2R1bGVQdHI7CiAKLWNvbnN0IHN0cnVjdCBmaWxlZGVzY3IgX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiW10gPSB7Ci0gICAgeyIuc28iLCAicmIiLCBDX0VYVEVOU0lPTn0sCi0gICAgeyJtb2R1bGUuc28iLCAicmIiLCBDX0VYVEVOU0lPTn0sCi0gICAgezAsIDB9Ci19OworY29uc3QgY2hhciAqX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiW10gPSB7Ii5zbyIsIE5VTEx9OwogCiBzdGF0aWMgaW50CiBhaXhfZ2V0b2xkbW9kdWxlcyh2b2lkICoqbW9kbGlzdHB0cikKQEAgLTEwOSw2ICsxMDUsOCBAQAogewogCiAgICAgY2hhciAqbWVzc2FnZVsxMDI0XSwgZXJyYnVmWzEwMjRdOworICAgIFB5T2JqZWN0ICpwYXRobmFtZV9vYiA9IE5VTEw7CisgICAgUHlPYmplY3QgKmVycmJ1Zl9vYiA9IE5VTEw7CiAgICAgcmVnaXN0ZXIgaW50IGksajsKIAogICAgIHN0cnVjdCBlcnJ0YWIgewpAQCAtMTI5LDcgKzEyNyw2IEBACiAgICAgICAgIHtMX0VSUk9SX0VSUk5PLCAgICAgICAgICAgICAgICAgTlVMTH0KICAgICB9OwogCi0jZGVmaW5lIExPQURfRVJSVEFCX0xFTiAoc2l6ZW9mKGxvYWRfZXJydGFiKS9zaXplb2YobG9hZF9lcnJ0YWJbMF0pKQogI2RlZmluZSBFUlJCVUZfQVBQRU5EKHMpIHN0cm5jYXQoZXJyYnVmLCBzLCBzaXplb2YoZXJyYnVmKS1zdHJsZW4oZXJyYnVmKS0xKQogCiAgICAgUHlPU19zbnByaW50ZihlcnJidWYsIHNpemVvZihlcnJidWYpLCAiZnJvbSBtb2R1bGUgJS4yMDBzICIsIHBhdGhuYW1lKTsKQEAgLTE0MCw3ICsxMzcsNyBAQAogICAgIH0KICAgICBmb3IoaSA9IDA7IG1lc3NhZ2VbaV0gJiYgKm1lc3NhZ2VbaV07IGkrKykgewogICAgICAgICBpbnQgbmVyciA9IGF0b2kobWVzc2FnZVtpXSk7Ci0gICAgICAgIGZvciAoaj0wOyBqPExPQURfRVJSVEFCX0xFTiA7IGorKykgeworICAgICAgICBmb3IgKGo9MDsgaiA8IFB5X0FSUkFZX0xFTkdUSChsb2FkX2VycnRhYik7IGorKykgewogICAgICAgICAgICAgaWYgKG5lcnIgPT0gbG9hZF9lcnJ0YWJbal0uZXJyTm8gJiYgbG9hZF9lcnJ0YWJbal0uZXJyc3RyKQogICAgICAgICAgICAgRVJSQlVGX0FQUEVORChsb2FkX2VycnRhYltqXS5lcnJzdHIpOwogICAgICAgICB9CkBAIC0xNDksMTIgKzE0NiwxNiBAQAogICAgICAgICBFUlJCVUZfQVBQRU5EKCJcbiIpOwogICAgIH0KICAgICBlcnJidWZbc3RybGVuKGVycmJ1ZiktMV0gPSAnXDAnOyAgICAgICAgICAgIC8qIHRyaW0gb2ZmIGxhc3QgbmV3bGluZSAqLwotICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbXBvcnRFcnJvciwgZXJyYnVmKTsKKyAgICBwYXRobmFtZV9vYiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKHBhdGhuYW1lKTsKKyAgICBlcnJidWZfb2IgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhlcnJidWYpOworICAgIFB5RXJyX1NldEltcG9ydEVycm9yKGVycmJ1Zl9vYiwgTlVMTCwgcGF0aG5hbWUpOworICAgIFB5X0RFQ1JFRihwYXRobmFtZV9vYik7CisgICAgUHlfREVDUkVGKGVycmJ1Zl9vYik7CiAgICAgcmV0dXJuOwogfQogCiAKLWRsX2Z1bmNwdHIgX1B5SW1wb3J0X0dldER5bkxvYWRGdW5jKGNvbnN0IGNoYXIgKmZxbmFtZSwgY29uc3QgY2hhciAqc2hvcnRuYW1lLAorZGxfZnVuY3B0ciBfUHlJbXBvcnRfR2V0RHluTG9hZEZ1bmMoY29uc3QgY2hhciAqc2hvcnRuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGF0aG5hbWUsIEZJTEUgKmZwKQogewogICAgIGRsX2Z1bmNwdHIgcDsKZGlmZiAtLWdpdCBhL1B5dGhvbi9keW5sb2FkX2RsLmMgYi9QeXRob24vZHlubG9hZF9kbC5jCmluZGV4IDI2MDZlMWUuLjU4MzZjYjMgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9keW5sb2FkX2RsLmMKKysrIGIvUHl0aG9uL2R5bmxvYWRfZGwuYwpAQCAtOSwxOCArOSwxNCBAQAogCiBleHRlcm4gY2hhciAqUHlfR2V0UHJvZ3JhbU5hbWUodm9pZCk7CiAKLWNvbnN0IHN0cnVjdCBmaWxlZGVzY3IgX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiW10gPSB7Ci0JeyIubyIsICJyYiIsIENfRVhURU5TSU9OfSwKLQl7Im1vZHVsZS5vIiwgInJiIiwgQ19FWFRFTlNJT059LAotCXswLCAwfQotfTsKK2NvbnN0IGNoYXIgKl9QeUltcG9ydF9EeW5Mb2FkRmlsZXRhYltdID0geyIubyIsIE5VTEx9OwogCiAKLWRsX2Z1bmNwdHIgX1B5SW1wb3J0X0dldER5bkxvYWRGdW5jKGNvbnN0IGNoYXIgKmZxbmFtZSwgY29uc3QgY2hhciAqc2hvcnRuYW1lLAotCQkJCSAgICBjb25zdCBjaGFyICpwYXRobmFtZSwgRklMRSAqZnApCitkbF9mdW5jcHRyIF9QeUltcG9ydF9HZXREeW5Mb2FkRnVuYyhjb25zdCBjaGFyICpzaG9ydG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwYXRobmFtZSwgRklMRSAqZnApCiB7Ci0JY2hhciBmdW5jbmFtZVsyNThdOworICAgIGNoYXIgZnVuY25hbWVbMjU4XTsKIAotCVB5T1Nfc25wcmludGYoZnVuY25hbWUsIHNpemVvZihmdW5jbmFtZSksICJQeUluaXRfJS4yMDBzIiwgc2hvcnRuYW1lKTsKLQlyZXR1cm4gZGxfbG9hZG1vZChQeV9HZXRQcm9ncmFtTmFtZSgpLCBwYXRobmFtZSwgZnVuY25hbWUpOworICAgIFB5T1Nfc25wcmludGYoZnVuY25hbWUsIHNpemVvZihmdW5jbmFtZSksICJQeUluaXRfJS4yMDBzIiwgc2hvcnRuYW1lKTsKKyAgICByZXR1cm4gZGxfbG9hZG1vZChQeV9HZXRQcm9ncmFtTmFtZSgpLCBwYXRobmFtZSwgZnVuY25hbWUpOwogfQpkaWZmIC0tZ2l0IGEvUHl0aG9uL2R5bmxvYWRfaHB1eC5jIGIvUHl0aG9uL2R5bmxvYWRfaHB1eC5jCmluZGV4IDE4YTgxMzcuLmM5NTU0MTQgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9keW5sb2FkX2hwdXguYworKysgYi9QeXRob24vZHlubG9hZF9ocHV4LmMKQEAgLTEzLDEzICsxMyw5IEBACiAjZGVmaW5lIEZVTkNOQU1FX1BBVFRFUk4gIlB5SW5pdF8lLjIwMHMiCiAjZW5kaWYKIAotY29uc3Qgc3RydWN0IGZpbGVkZXNjciBfUHlJbXBvcnRfRHluTG9hZEZpbGV0YWJbXSA9IHsKLSAgICB7U0hMSUJfRVhULCAicmIiLCBDX0VYVEVOU0lPTn0sCi0gICAgeyJtb2R1bGUiU0hMSUJfRVhULCAicmIiLCBDX0VYVEVOU0lPTn0sCi0gICAgezAsIDB9Ci19OworY29uc3QgY2hhciAqX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiW10gPSB7U0hMSUJfRVhULCBOVUxMfTsKIAotZGxfZnVuY3B0ciBfUHlJbXBvcnRfR2V0RHluTG9hZEZ1bmMoY29uc3QgY2hhciAqZnFuYW1lLCBjb25zdCBjaGFyICpzaG9ydG5hbWUsCitkbF9mdW5jcHRyIF9QeUltcG9ydF9HZXREeW5Mb2FkRnVuYyhjb25zdCBjaGFyICpzaG9ydG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwYXRobmFtZSwgRklMRSAqZnApCiB7CiAgICAgZGxfZnVuY3B0ciBwOwpAQCAtMzcsMTEgKzMzLDIxIEBACiAgICAgLyogWFhYIENodWNrIEJsYWtlIG9uY2Ugd3JvdGUgdGhhdCAwIHNob3VsZCBiZSBCSU5EX05PU1RBUlQ/ICovCiAgICAgaWYgKGxpYiA9PSBOVUxMKSB7CiAgICAgICAgIGNoYXIgYnVmWzI1Nl07CisgICAgICAgIFB5T2JqZWN0ICpwYXRobmFtZV9vYiA9IE5VTEw7CisgICAgICAgIFB5T2JqZWN0ICpidWZfb2IgPSBOVUxMOworICAgICAgICBQeU9iamVjdCAqc2hvcnRuYW1lX29iID0gTlVMTDsKKwogICAgICAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCiAgICAgICAgICAgICBwZXJyb3IocGF0aG5hbWUpOwogICAgICAgICBQeU9TX3NucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICJGYWlsZWQgdG8gbG9hZCAlLjIwMHMiLAogICAgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lKTsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0ltcG9ydEVycm9yLCBidWYpOworICAgICAgICBidWZfb2IgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhidWYpOworICAgICAgICBzaG9ydG5hbWVfb2IgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhzaG9ydG5hbWUpOworICAgICAgICBwYXRobmFtZV9vYiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKHBhdGhuYW1lKTsKKyAgICAgICAgUHlFcnJfU2V0SW1wb3J0RXJyb3IoYnVmX29iLCBzaG9ydG5hbWVfb2IsIHBhdGhuYW1lX29iKTsKKyAgICAgICAgUHlfREVDUkVGKGJ1Zl9vYik7CisgICAgICAgIFB5X0RFQ1JFRihzaG9ydG5hbWVfb2IpOworICAgICAgICBQeV9ERUNSRUYocGF0aG5hbWVfb2IpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgUHlPU19zbnByaW50ZihmdW5jbmFtZSwgc2l6ZW9mKGZ1bmNuYW1lKSwgRlVOQ05BTUVfUEFUVEVSTiwgc2hvcnRuYW1lKTsKZGlmZiAtLWdpdCBhL1B5dGhvbi9keW5sb2FkX25leHQuYyBiL1B5dGhvbi9keW5sb2FkX25leHQuYwppbmRleCBjYWJmOWI5Li44NWM5NWI0IDEwMDY0NAotLS0gYS9QeXRob24vZHlubG9hZF9uZXh0LmMKKysrIGIvUHl0aG9uL2R5bmxvYWRfbmV4dC5jCkBAIC04LDExICs4LDcgQEAKIAogI2luY2x1ZGUgPG1hY2gtby9keWxkLmg+CiAKLWNvbnN0IHN0cnVjdCBmaWxlZGVzY3IgX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiW10gPSB7Ci0gICAgeyIuc28iLCAicmIiLCBDX0VYVEVOU0lPTn0sCi0gICAgeyJtb2R1bGUuc28iLCAicmIiLCBDX0VYVEVOU0lPTn0sCi0gICAgezAsIDB9Ci19OworY29uc3QgY2hhciAqX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiW10gPSB7Ii5zbyIsIE5VTEx9OwogCiAvKgogKiogUHl0aG9uIG1vZHVsZXMgYXJlIE1hY2gtTyBNSF9CVU5ETEUgZmlsZXMuIFRoZSBiZXN0IHdheSB0byBsb2FkIHRoZXNlCkBAIC0zMSw4ICsyNyw4IEBACiAjZGVmaW5lIExJTktPUFRJT05TIE5TTElOS01PRFVMRV9PUFRJT05fQklORE5PV3wgXAogICAgIE5TTElOS01PRFVMRV9PUFRJT05fUkVUVVJOX09OX0VSUk9SfE5TTElOS01PRFVMRV9PUFRJT05fUFJJVkFURQogI2VuZGlmCi1kbF9mdW5jcHRyIF9QeUltcG9ydF9HZXREeW5Mb2FkRnVuYyhjb25zdCBjaGFyICpmcW5hbWUsIGNvbnN0IGNoYXIgKnNob3J0bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwYXRobmFtZSwgRklMRSAqZnApCitkbF9mdW5jcHRyIF9QeUltcG9ydF9HZXREeW5Mb2FkRnVuYyhjb25zdCBjaGFyICpzaG9ydG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpwYXRobmFtZSwgRklMRSAqZnApCiB7CiAgICAgZGxfZnVuY3B0ciBwID0gTlVMTDsKICAgICBjaGFyIGZ1bmNuYW1lWzI1OF07CmRpZmYgLS1naXQgYS9QeXRob24vZHlubG9hZF9vczIuYyBiL1B5dGhvbi9keW5sb2FkX29zMi5jCmluZGV4IDEwMWMwMjQuLjBlMWI5MDcgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9keW5sb2FkX29zMi5jCisrKyBiL1B5dGhvbi9keW5sb2FkX29zMi5jCkBAIC05LDEzICs5LDkgQEAKICNpbmNsdWRlICJpbXBvcnRkbC5oIgogCiAKLWNvbnN0IHN0cnVjdCBmaWxlZGVzY3IgX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiW10gPSB7Ci0gICAgeyIucHlkIiwgInJiIiwgQ19FWFRFTlNJT059LAotICAgIHsiLmRsbCIsICJyYiIsIENfRVhURU5TSU9OfSwKLSAgICB7MCwgMH0KLX07Citjb25zdCBjaGFyICpfUHlJbXBvcnRfRHluTG9hZEZpbGV0YWJbXSA9IHsiLnB5ZCIsICIuZGxsIiwgTlVMTH07CiAKLWRsX2Z1bmNwdHIgX1B5SW1wb3J0X0dldER5bkxvYWRGdW5jKGNvbnN0IGNoYXIgKmZxbmFtZSwgY29uc3QgY2hhciAqc2hvcnRuYW1lLAorZGxfZnVuY3B0ciBfUHlJbXBvcnRfR2V0RHluTG9hZEZ1bmMoY29uc3QgY2hhciAqc2hvcnRuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGF0aG5hbWUsIEZJTEUgKmZwKQogewogICAgIGRsX2Z1bmNwdHIgcDsKZGlmZiAtLWdpdCBhL1B5dGhvbi9keW5sb2FkX3NobGliLmMgYi9QeXRob24vZHlubG9hZF9zaGxpYi5jCmluZGV4IDdlYTUxMGUuLjI0ZTRlZGUgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9keW5sb2FkX3NobGliLmMKKysrIGIvUHl0aG9uL2R5bmxvYWRfc2hsaWIuYwpAQCAtMzYsMzEgKzM2LDI1IEBACiAgICBsaXZlIGluIHRoZSBzYW1lIGRpcmVjdG9yeS4gIEUuZy4gZm9vbW9kdWxlLmNweXRob24tMzIuc28KICovCiAKLWNvbnN0IHN0cnVjdCBmaWxlZGVzY3IgX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiW10gPSB7Citjb25zdCBjaGFyICpfUHlJbXBvcnRfRHluTG9hZEZpbGV0YWJbXSA9IHsKICNpZmRlZiBfX0NZR1dJTl9fCi0gICAgeyIuZGxsIiwgInJiIiwgQ19FWFRFTlNJT059LAotICAgIHsibW9kdWxlLmRsbCIsICJyYiIsIENfRVhURU5TSU9OfSwKKyAgICAiLmRsbCIsCiAjZWxzZSAgLyogIV9fQ1lHV0lOX18gKi8KICNpZiBkZWZpbmVkKFBZT1NfT1MyKSAmJiBkZWZpbmVkKFBZQ0NfR0NDKQotICAgIHsiLnB5ZCIsICJyYiIsIENfRVhURU5TSU9OfSwKLSAgICB7Ii5kbGwiLCAicmIiLCBDX0VYVEVOU0lPTn0sCisgICAgIi5weWQiLAorICAgICIuZGxsIiwKICNlbHNlICAvKiAhKGRlZmluZWQoUFlPU19PUzIpICYmIGRlZmluZWQoUFlDQ19HQ0MpKSAqLwogI2lmZGVmIF9fVk1TCi0gICAgeyIuZXhlIiwgInJiIiwgQ19FWFRFTlNJT059LAotICAgIHsiLkVYRSIsICJyYiIsIENfRVhURU5TSU9OfSwKLSAgICB7Im1vZHVsZS5leGUiLCAicmIiLCBDX0VYVEVOU0lPTn0sCi0gICAgeyJNT0RVTEUuRVhFIiwgInJiIiwgQ19FWFRFTlNJT059LAorICAgICIuZXhlIiwKKyAgICAiLkVYRSIsCiAjZWxzZSAgLyogIV9fVk1TICovCi0gICAgeyIuIiBTT0FCSSAiLnNvIiwgInJiIiwgQ19FWFRFTlNJT059LAotICAgIHsibW9kdWxlLiIgU09BQkkgIi5zbyIsICJyYiIsIENfRVhURU5TSU9OfSwKLSAgICB7Ii5hYmkiIFBZVEhPTl9BQklfU1RSSU5HICIuc28iLCAicmIiLCBDX0VYVEVOU0lPTn0sCi0gICAgeyJtb2R1bGUuYWJpIiBQWVRIT05fQUJJX1NUUklORyAiLnNvIiwgInJiIiwgQ19FWFRFTlNJT059LAotICAgIHsiLnNvIiwgInJiIiwgQ19FWFRFTlNJT059LAotICAgIHsibW9kdWxlLnNvIiwgInJiIiwgQ19FWFRFTlNJT059LAorICAgICIuIiBTT0FCSSAiLnNvIiwKKyAgICAiLmFiaSIgUFlUSE9OX0FCSV9TVFJJTkcgIi5zbyIsCisgICAgIi5zbyIsCiAjZW5kaWYgIC8qIF9fVk1TICovCiAjZW5kaWYgIC8qIGRlZmluZWQoUFlPU19PUzIpICYmIGRlZmluZWQoUFlDQ19HQ0MpICovCiAjZW5kaWYgIC8qIF9fQ1lHV0lOX18gKi8KLSAgICB7MCwgMH0KKyAgICBOVUxMLAogfTsKIAogc3RhdGljIHN0cnVjdCB7CkBAIC03NSw3ICs2OSw3IEBACiBzdGF0aWMgaW50IG5oYW5kbGVzID0gMDsKIAogCi1kbF9mdW5jcHRyIF9QeUltcG9ydF9HZXREeW5Mb2FkRnVuYyhjb25zdCBjaGFyICpmcW5hbWUsIGNvbnN0IGNoYXIgKnNob3J0bmFtZSwKK2RsX2Z1bmNwdHIgX1B5SW1wb3J0X0dldER5bkxvYWRGdW5jKGNvbnN0IGNoYXIgKnNob3J0bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBGSUxFICpmcCkKIHsKICAgICBkbF9mdW5jcHRyIHA7CkBAIC0xMjEsMTAgKzExNSw2IEBACiAgICAgZGxvcGVuZmxhZ3MgPSBQeVRocmVhZFN0YXRlX0dFVCgpLT5pbnRlcnAtPmRsb3BlbmZsYWdzOwogI2VuZGlmCiAKLSAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgIFB5U3lzX1dyaXRlU3RkZXJyKCJkbG9wZW4oXCIlc1wiLCAleCk7XG4iLCBwYXRobmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZGxvcGVuZmxhZ3MpOwotCiAjaWZkZWYgX19WTVMKICAgICAvKiBWTVMgY3VycmVudGx5IGRvbid0IGFsbG93IGEgcGF0aG5hbWUsIHVzZSBhIGxvZ2ljYWwgbmFtZSBpbnN0ZWFkICovCiAgICAgLyogQ29uY2F0ZW5hdGUgJ3B5dGhvbl9tb2R1bGVfJyBhbmQgc2hvcnRuYW1lICovCkBAIC0xMzksMTAgKzEyOSwxOSBAQAogICAgIGhhbmRsZSA9IGRsb3BlbihwYXRobmFtZSwgZGxvcGVuZmxhZ3MpOwogCiAgICAgaWYgKGhhbmRsZSA9PSBOVUxMKSB7CisgICAgICAgIFB5T2JqZWN0ICptb2RfbmFtZSA9IE5VTEw7CisgICAgICAgIFB5T2JqZWN0ICpwYXRoID0gTlVMTDsKKyAgICAgICAgUHlPYmplY3QgKmVycm9yX29iID0gTlVMTDsKICAgICAgICAgY29uc3QgY2hhciAqZXJyb3IgPSBkbGVycm9yKCk7CiAgICAgICAgIGlmIChlcnJvciA9PSBOVUxMKQogICAgICAgICAgICAgZXJyb3IgPSAidW5rbm93biBkbG9wZW4oKSBlcnJvciI7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbXBvcnRFcnJvciwgZXJyb3IpOworICAgICAgICBlcnJvcl9vYiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKGVycm9yKTsKKyAgICAgICAgcGF0aCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKHBhdGhuYW1lKTsKKyAgICAgICAgbW9kX25hbWUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhzaG9ydG5hbWUpOworICAgICAgICBQeUVycl9TZXRJbXBvcnRFcnJvcihlcnJvcl9vYiwgbW9kX25hbWUsIHBhdGgpOworICAgICAgICBQeV9ERUNSRUYoZXJyb3Jfb2IpOworICAgICAgICBQeV9ERUNSRUYocGF0aCk7CisgICAgICAgIFB5X0RFQ1JFRihtb2RfbmFtZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KICAgICBpZiAoZnAgIT0gTlVMTCAmJiBuaGFuZGxlcyA8IDEyOCkKZGlmZiAtLWdpdCBhL1B5dGhvbi9keW5sb2FkX3N0dWIuYyBiL1B5dGhvbi9keW5sb2FkX3N0dWIuYwppbmRleCA2OWY4YjQ1Li41OTE2MDQ4IDEwMDY0NAotLS0gYS9QeXRob24vZHlubG9hZF9zdHViLmMKKysrIGIvUHl0aG9uL2R5bmxvYWRfc3R1Yi5jCkBAIC02LDYgKzYsNCBAQAogI2luY2x1ZGUgImltcG9ydGRsLmgiCiAKIAotY29uc3Qgc3RydWN0IGZpbGVkZXNjciBfUHlJbXBvcnRfRHluTG9hZEZpbGV0YWJbXSA9IHsKLQl7MCwgMH0KLX07Citjb25zdCBjaGFyICpfUHlJbXBvcnRfRHluTG9hZEZpbGV0YWJbXSA9IHtOVUxMfTsKZGlmZiAtLWdpdCBhL1B5dGhvbi9keW5sb2FkX3dpbi5jIGIvUHl0aG9uL2R5bmxvYWRfd2luLmMKaW5kZXggNzNhMWRjZi4uMjViNjY4MCAxMDA2NDQKLS0tIGEvUHl0aG9uL2R5bmxvYWRfd2luLmMKKysrIGIvUHl0aG9uL2R5bmxvYWRfd2luLmMKQEAgLTEyLDE2ICsxMiwxOCBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KIAogLy8gImFjdGl2YXRpb24gY29udGV4dCIgbWFnaWMgLSBzZWUgZGxfbnQuYy4uLgorI2lmIEhBVkVfU1hTCiBleHRlcm4gVUxPTkdfUFRSIF9QeV9BY3RpdmF0ZUFjdEN0eCgpOwogdm9pZCBfUHlfRGVhY3RpdmF0ZUFjdEN0eChVTE9OR19QVFIgY29va2llKTsKLQotY29uc3Qgc3RydWN0IGZpbGVkZXNjciBfUHlJbXBvcnRfRHluTG9hZEZpbGV0YWJbXSA9IHsKLSNpZmRlZiBfREVCVUcKLSAgICB7Il9kLnB5ZCIsICJyYiIsIENfRVhURU5TSU9OfSwKLSNlbHNlCi0gICAgeyIucHlkIiwgInJiIiwgQ19FWFRFTlNJT059LAogI2VuZGlmCi0gICAgezAsIDB9CisKK2NvbnN0IGNoYXIgKl9QeUltcG9ydF9EeW5Mb2FkRmlsZXRhYltdID0geworI2lmZGVmIF9ERUJVRworICAgICJfZC5weWQiLAorI2Vsc2UKKyAgICAiLnB5ZCIsCisjZW5kaWYKKyAgICBOVUxMCiB9OwogCiAKQEAgLTE3MSw0MyArMTczLDQ0IEBACiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKLWRsX2Z1bmNwdHIgX1B5SW1wb3J0X0dldER5bkxvYWRGdW5jKGNvbnN0IGNoYXIgKmZxbmFtZSwgY29uc3QgY2hhciAqc2hvcnRuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGF0aG5hbWUsIEZJTEUgKmZwKQorZGxfZnVuY3B0ciBfUHlJbXBvcnRfR2V0RHluTG9hZFdpbmRvd3MoY29uc3QgY2hhciAqc2hvcnRuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKnBhdGhuYW1lLCBGSUxFICpmcCkKIHsKICAgICBkbF9mdW5jcHRyIHA7CiAgICAgY2hhciBmdW5jbmFtZVsyNThdLCAqaW1wb3J0X3B5dGhvbjsKKyAgICB3Y2hhcl90ICp3cGF0aG5hbWU7CiAKICNpZm5kZWYgX0RFQlVHCiAgICAgX1B5X0NoZWNrUHl0aG9uMygpOwogI2VuZGlmCiAKKyAgICB3cGF0aG5hbWUgPSBQeVVuaWNvZGVfQXNVbmljb2RlKHBhdGhuYW1lKTsKKyAgICBpZiAod3BhdGhuYW1lID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCiAgICAgUHlPU19zbnByaW50ZihmdW5jbmFtZSwgc2l6ZW9mKGZ1bmNuYW1lKSwgIlB5SW5pdF8lLjIwMHMiLCBzaG9ydG5hbWUpOwogCiAgICAgewogICAgICAgICBISU5TVEFOQ0UgaERMTCA9IE5VTEw7Ci0gICAgICAgIGNoYXIgcGF0aGJ1ZlsyNjBdOwotICAgICAgICBMUFRTVFIgZHVtbXk7CiAgICAgICAgIHVuc2lnbmVkIGludCBvbGRfbW9kZTsKKyNpZiBIQVZFX1NYUwogICAgICAgICBVTE9OR19QVFIgY29va2llID0gMDsKLSAgICAgICAgLyogV2UgdXNlIExvYWRMaWJyYXJ5RXggc28gV2luZG93cyBsb29rcyBmb3IgZGVwZW5kZW50IERMTHMKLSAgICAgICAgICAgIGluIGRpcmVjdG9yeSBvZiBwYXRobmFtZSBmaXJzdC4gIEhvd2V2ZXIsIFdpbmRvd3M5NQotICAgICAgICAgICAgY2FuIHNvbWV0aW1lcyBub3Qgd29yayBjb3JyZWN0bHkgdW5sZXNzIHRoZSBhYnNvbHV0ZQotICAgICAgICAgICAgcGF0aCBpcyB1c2VkLiAgSWYgR2V0RnVsbFBhdGhOYW1lKCkgZmFpbHMsIHRoZSBMb2FkTGlicmFyeQotICAgICAgICAgICAgd2lsbCBjZXJ0YWlubHkgZmFpbCB0b28sIHNvIHVzZSBpdHMgZXJyb3IgY29kZSAqLworI2VuZGlmCiAKICAgICAgICAgLyogRG9uJ3QgZGlzcGxheSBhIG1lc3NhZ2UgYm94IHdoZW4gUHl0aG9uIGNhbid0IGxvYWQgYSBETEwgKi8KICAgICAgICAgb2xkX21vZGUgPSBTZXRFcnJvck1vZGUoU0VNX0ZBSUxDUklUSUNBTEVSUk9SUyk7CiAKLSAgICAgICAgaWYgKEdldEZ1bGxQYXRoTmFtZShwYXRobmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YocGF0aGJ1ZiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aGJ1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZHVtbXkpKSB7Ci0gICAgICAgICAgICBVTE9OR19QVFIgY29va2llID0gX1B5X0FjdGl2YXRlQWN0Q3R4KCk7Ci0gICAgICAgICAgICAvKiBYWFggVGhpcyBjYWxsIGRvZXNuJ3QgZXhpc3QgaW4gV2luZG93cyBDRSAqLwotICAgICAgICAgICAgaERMTCA9IExvYWRMaWJyYXJ5RXgocGF0aG5hbWUsIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMT0FEX1dJVEhfQUxURVJFRF9TRUFSQ0hfUEFUSCk7Ci0gICAgICAgICAgICBfUHlfRGVhY3RpdmF0ZUFjdEN0eChjb29raWUpOwotICAgICAgICB9CisjaWYgSEFWRV9TWFMKKyAgICAgICAgY29va2llID0gX1B5X0FjdGl2YXRlQWN0Q3R4KCk7CisjZW5kaWYKKyAgICAgICAgLyogV2UgdXNlIExvYWRMaWJyYXJ5RXggc28gV2luZG93cyBsb29rcyBmb3IgZGVwZW5kZW50IERMTHMKKyAgICAgICAgICAgIGluIGRpcmVjdG9yeSBvZiBwYXRobmFtZSBmaXJzdC4gKi8KKyAgICAgICAgLyogWFhYIFRoaXMgY2FsbCBkb2Vzbid0IGV4aXN0IGluIFdpbmRvd3MgQ0UgKi8KKyAgICAgICAgaERMTCA9IExvYWRMaWJyYXJ5RXhXKHdwYXRobmFtZSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPQURfV0lUSF9BTFRFUkVEX1NFQVJDSF9QQVRIKTsKKyNpZiBIQVZFX1NYUworICAgICAgICBfUHlfRGVhY3RpdmF0ZUFjdEN0eChjb29raWUpOworI2VuZGlmCiAKICAgICAgICAgLyogcmVzdG9yZSBvbGQgZXJyb3IgbW9kZSBzZXR0aW5ncyAqLwogICAgICAgICBTZXRFcnJvck1vZGUob2xkX21vZGUpOwpAQCAtMjU0LDMxICsyNTcsMzQgQEAKICAgICAgICAgICAgICAgICAgICAgIkRMTCBsb2FkIGZhaWxlZDogIik7CiAKICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfQXBwZW5kQW5kRGVsKCZtZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoCisgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIoCiAgICAgICAgICAgICAgICAgICAgICAgICB0aGVJbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgdGhlTGVuZ3RoKSk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBQeUVycl9TZXRPYmplY3QoUHlFeGNfSW1wb3J0RXJyb3IsIG1lc3NhZ2UpOwotICAgICAgICAgICAgUHlfWERFQ1JFRihtZXNzYWdlKTsKKyAgICAgICAgICAgIGlmIChtZXNzYWdlICE9IE5VTEwpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRJbXBvcnRFcnJvcihtZXNzYWdlLCBQeVVuaWNvZGVfRnJvbVN0cmluZyhzaG9ydG5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGhuYW1lKTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYobWVzc2FnZSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNoYXIgYnVmZmVyWzI1Nl07CiAKKyAgICAgICAgICAgIFB5T1Nfc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwKICNpZmRlZiBfREVCVUcKLSAgICAgICAgICAgIFB5T1Nfc25wcmludGYoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgInB5dGhvbiVkJWRfZC5kbGwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAicHl0aG9uJWQlZF9kLmRsbCIsCiAjZWxzZQotICAgICAgICAgICAgUHlPU19zbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLCAicHl0aG9uJWQlZC5kbGwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAicHl0aG9uJWQlZC5kbGwiLAogI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgICAgICAgIFBZX01BSk9SX1ZFUlNJT04sUFlfTUlOT1JfVkVSU0lPTik7CiAgICAgICAgICAgICBpbXBvcnRfcHl0aG9uID0gR2V0UHl0aG9uSW1wb3J0KGhETEwpOwogCiAgICAgICAgICAgICBpZiAoaW1wb3J0X3B5dGhvbiAmJgogICAgICAgICAgICAgICAgIHN0cmNhc2VjbXAoYnVmZmVyLGltcG9ydF9weXRob24pKSB7Ci0gICAgICAgICAgICAgICAgUHlPU19zbnByaW50ZihidWZmZXIsIHNpemVvZihidWZmZXIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vZHVsZSB1c2Ugb2YgJS4xNTBzIGNvbmZsaWN0cyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aCB0aGlzIHZlcnNpb24gb2YgUHl0aG9uLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRfcHl0aG9uKTsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSW1wb3J0RXJyb3IsYnVmZmVyKTsKKyAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSW1wb3J0RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb2R1bGUgdXNlIG9mICUuMTUwcyBjb25mbGljdHMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2l0aCB0aGlzIHZlcnNpb24gb2YgUHl0aG9uLiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcG9ydF9weXRob24pOwogICAgICAgICAgICAgICAgIEZyZWVMaWJyYXJ5KGhETEwpOwogICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvUHl0aG9uL2Vycm9ycy5jIGIvUHl0aG9uL2Vycm9ycy5jCmluZGV4IDVhOWE2MjQuLjYyNmIxNmUgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9lcnJvcnMuYworKysgYi9QeXRob24vZXJyb3JzLmMKQEAgLTMyMCw2ICszMjAsMzkgQEAKICAgICBQeUVycl9SZXN0b3JlKE5VTEwsIE5VTEwsIE5VTEwpOwogfQogCit2b2lkCitQeUVycl9HZXRFeGNJbmZvKFB5T2JqZWN0ICoqcF90eXBlLCBQeU9iamVjdCAqKnBfdmFsdWUsIFB5T2JqZWN0ICoqcF90cmFjZWJhY2spCit7CisgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlID0gUHlUaHJlYWRTdGF0ZV9HRVQoKTsKKworICAgICpwX3R5cGUgPSB0c3RhdGUtPmV4Y190eXBlOworICAgICpwX3ZhbHVlID0gdHN0YXRlLT5leGNfdmFsdWU7CisgICAgKnBfdHJhY2ViYWNrID0gdHN0YXRlLT5leGNfdHJhY2ViYWNrOworCisgICAgUHlfWElOQ1JFRigqcF90eXBlKTsKKyAgICBQeV9YSU5DUkVGKCpwX3ZhbHVlKTsKKyAgICBQeV9YSU5DUkVGKCpwX3RyYWNlYmFjayk7Cit9CisKK3ZvaWQKK1B5RXJyX1NldEV4Y0luZm8oUHlPYmplY3QgKnBfdHlwZSwgUHlPYmplY3QgKnBfdmFsdWUsIFB5T2JqZWN0ICpwX3RyYWNlYmFjaykKK3sKKyAgICBQeU9iamVjdCAqb2xkdHlwZSwgKm9sZHZhbHVlLCAqb2xkdHJhY2ViYWNrOworICAgIFB5VGhyZWFkU3RhdGUgKnRzdGF0ZSA9IFB5VGhyZWFkU3RhdGVfR0VUKCk7CisKKyAgICBvbGR0eXBlID0gdHN0YXRlLT5leGNfdHlwZTsKKyAgICBvbGR2YWx1ZSA9IHRzdGF0ZS0+ZXhjX3ZhbHVlOworICAgIG9sZHRyYWNlYmFjayA9IHRzdGF0ZS0+ZXhjX3RyYWNlYmFjazsKKworICAgIHRzdGF0ZS0+ZXhjX3R5cGUgPSBwX3R5cGU7CisgICAgdHN0YXRlLT5leGNfdmFsdWUgPSBwX3ZhbHVlOworICAgIHRzdGF0ZS0+ZXhjX3RyYWNlYmFjayA9IHBfdHJhY2ViYWNrOworCisgICAgUHlfWERFQ1JFRihvbGR0eXBlKTsKKyAgICBQeV9YREVDUkVGKG9sZHZhbHVlKTsKKyAgICBQeV9YREVDUkVGKG9sZHRyYWNlYmFjayk7Cit9CisKIC8qIENvbnZlbmllbmNlIGZ1bmN0aW9ucyB0byBzZXQgYSB0eXBlIGVycm9yIGV4Y2VwdGlvbiBhbmQgcmV0dXJuIDAgKi8KIAogaW50CkBAIC0zNDEsMTEgKzM3NCw5IEBACiBQeUVycl9TZXRGcm9tRXJybm9XaXRoRmlsZW5hbWVPYmplY3QoUHlPYmplY3QgKmV4YywgUHlPYmplY3QgKmZpbGVuYW1lT2JqZWN0KQogewogICAgIFB5T2JqZWN0ICptZXNzYWdlOwotICAgIFB5T2JqZWN0ICp2OworICAgIFB5T2JqZWN0ICp2LCAqYXJnczsKICAgICBpbnQgaSA9IGVycm5vOwotI2lmbmRlZiBNU19XSU5ET1dTCi0gICAgY2hhciAqczsKLSNlbHNlCisjaWZkZWYgTVNfV0lORE9XUwogICAgIFdDSEFSICpzX2J1ZiA9IE5VTEw7CiAjZW5kaWYgLyogVW5peC9XaW5kb3dzICovCiAKQEAgLTM1NSwxMSArMzg2LDE0IEBACiAjZW5kaWYKIAogI2lmbmRlZiBNU19XSU5ET1dTCi0gICAgaWYgKGkgPT0gMCkKLSAgICAgICAgcyA9ICJFcnJvciI7IC8qIFNvbWV0aW1lcyBlcnJubyBkaWRuJ3QgZ2V0IHNldCAqLwotICAgIGVsc2UKLSAgICAgICAgcyA9IHN0cmVycm9yKGkpOwotICAgIG1lc3NhZ2UgPSBQeVVuaWNvZGVfRGVjb2RlVVRGOChzLCBzdHJsZW4ocyksICJpZ25vcmUiKTsKKyAgICBpZiAoaSAhPSAwKSB7CisgICAgICAgIGNoYXIgKnMgPSBzdHJlcnJvcihpKTsKKyAgICAgICAgbWVzc2FnZSA9IFB5VW5pY29kZV9EZWNvZGVMb2NhbGUocywgInN1cnJvZ2F0ZWVzY2FwZSIpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLyogU29tZXRpbWVzIGVycm5vIGRpZG4ndCBnZXQgc2V0ICovCisgICAgICAgIG1lc3NhZ2UgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiRXJyb3IiKTsKKyAgICB9CiAjZWxzZQogICAgIGlmIChpID09IDApCiAgICAgICAgIG1lc3NhZ2UgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiRXJyb3IiKTsgLyogU29tZXRpbWVzIGVycm5vIGRpZG4ndCBnZXQgc2V0ICovCkBAIC0zOTUsNyArNDI5LDcgQEAKICAgICAgICAgICAgICAgICAvKiByZW1vdmUgdHJhaWxpbmcgY3IvbGYgYW5kIGRvdHMgKi8KICAgICAgICAgICAgICAgICB3aGlsZSAobGVuID4gMCAmJiAoc19idWZbbGVuLTFdIDw9IEwnICcgfHwgc19idWZbbGVuLTFdID09IEwnLicpKQogICAgICAgICAgICAgICAgICAgICBzX2J1ZlstLWxlbl0gPSBMJ1wwJzsKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHNfYnVmLCBsZW4pOworICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHNfYnVmLCBsZW4pOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtNDEwLDE0ICs0NDQsMTggQEAKICAgICB9CiAKICAgICBpZiAoZmlsZW5hbWVPYmplY3QgIT0gTlVMTCkKLSAgICAgICAgdiA9IFB5X0J1aWxkVmFsdWUoIihpT08pIiwgaSwgbWVzc2FnZSwgZmlsZW5hbWVPYmplY3QpOworICAgICAgICBhcmdzID0gUHlfQnVpbGRWYWx1ZSgiKGlPTykiLCBpLCBtZXNzYWdlLCBmaWxlbmFtZU9iamVjdCk7CiAgICAgZWxzZQotICAgICAgICB2ID0gUHlfQnVpbGRWYWx1ZSgiKGlPKSIsIGksIG1lc3NhZ2UpOworICAgICAgICBhcmdzID0gUHlfQnVpbGRWYWx1ZSgiKGlPKSIsIGksIG1lc3NhZ2UpOwogICAgIFB5X0RFQ1JFRihtZXNzYWdlKTsKIAotICAgIGlmICh2ICE9IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfU2V0T2JqZWN0KGV4Yywgdik7Ci0gICAgICAgIFB5X0RFQ1JFRih2KTsKKyAgICBpZiAoYXJncyAhPSBOVUxMKSB7CisgICAgICAgIHYgPSBQeU9iamVjdF9DYWxsKGV4YywgYXJncywgTlVMTCk7CisgICAgICAgIFB5X0RFQ1JFRihhcmdzKTsKKyAgICAgICAgaWYgKHYgIT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfU2V0T2JqZWN0KChQeU9iamVjdCAqKSBQeV9UWVBFKHYpLCB2KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRih2KTsKKyAgICAgICAgfQogICAgIH0KICNpZmRlZiBNU19XSU5ET1dTCiAgICAgTG9jYWxGcmVlKHNfYnVmKTsKQEAgLTQ2NCw3ICs1MDIsNyBAQAogICAgIGludCBsZW47CiAgICAgV0NIQVIgKnNfYnVmID0gTlVMTDsgLyogRnJlZSB2aWEgTG9jYWxGcmVlICovCiAgICAgUHlPYmplY3QgKm1lc3NhZ2U7Ci0gICAgUHlPYmplY3QgKnY7CisgICAgUHlPYmplY3QgKmFyZ3MsICp2OwogICAgIERXT1JEIGVyciA9IChEV09SRClpZXJyOwogICAgIGlmIChlcnI9PTApIGVyciA9IEdldExhc3RFcnJvcigpOwogICAgIGxlbiA9IEZvcm1hdE1lc3NhZ2VXKApAQCAtNDg3LDcgKzUyNSw3IEBACiAgICAgICAgIC8qIHJlbW92ZSB0cmFpbGluZyBjci9sZiBhbmQgZG90cyAqLwogICAgICAgICB3aGlsZSAobGVuID4gMCAmJiAoc19idWZbbGVuLTFdIDw9IEwnICcgfHwgc19idWZbbGVuLTFdID09IEwnLicpKQogICAgICAgICAgICAgc19idWZbLS1sZW5dID0gTCdcMCc7Ci0gICAgICAgIG1lc3NhZ2UgPSBQeVVuaWNvZGVfRnJvbVVuaWNvZGUoc19idWYsIGxlbik7CisgICAgICAgIG1lc3NhZ2UgPSBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKHNfYnVmLCBsZW4pOwogICAgIH0KIAogICAgIGlmIChtZXNzYWdlID09IE5VTEwpCkBAIC00OTYsMTUgKzUzNCwyMCBAQAogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAKLSAgICBpZiAoZmlsZW5hbWVPYmplY3QgIT0gTlVMTCkKLSAgICAgICAgdiA9IFB5X0J1aWxkVmFsdWUoIihpT08pIiwgZXJyLCBtZXNzYWdlLCBmaWxlbmFtZU9iamVjdCk7Ci0gICAgZWxzZQotICAgICAgICB2ID0gUHlfQnVpbGRWYWx1ZSgiKGlPKSIsIGVyciwgbWVzc2FnZSk7CisgICAgaWYgKGZpbGVuYW1lT2JqZWN0ID09IE5VTEwpCisgICAgICAgIGZpbGVuYW1lT2JqZWN0ID0gUHlfTm9uZTsKKyAgICAvKiBUaGlzIGlzIHRoZSBjb25zdHJ1Y3RvciBzaWduYXR1cmUgZm9yIHBhc3NpbmcgYSBXaW5kb3dzIGVycm9yIGNvZGUuCisgICAgICAgVGhlIFBPU0lYIHRyYW5zbGF0aW9uIHdpbGwgYmUgZmlndXJlZCBvdXQgYnkgdGhlIGNvbnN0cnVjdG9yLiAqLworICAgIGFyZ3MgPSBQeV9CdWlsZFZhbHVlKCIoaU9PaSkiLCAwLCBtZXNzYWdlLCBmaWxlbmFtZU9iamVjdCwgZXJyKTsKICAgICBQeV9ERUNSRUYobWVzc2FnZSk7CiAKLSAgICBpZiAodiAhPSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX1NldE9iamVjdChleGMsIHYpOwotICAgICAgICBQeV9ERUNSRUYodik7CisgICAgaWYgKGFyZ3MgIT0gTlVMTCkgeworICAgICAgICB2ID0gUHlPYmplY3RfQ2FsbChleGMsIGFyZ3MsIE5VTEwpOworICAgICAgICBQeV9ERUNSRUYoYXJncyk7CisgICAgICAgIGlmICh2ICE9IE5VTEwpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldE9iamVjdCgoUHlPYmplY3QgKikgUHlfVFlQRSh2KSwgdik7CisgICAgICAgICAgICBQeV9ERUNSRUYodik7CisgICAgICAgIH0KICAgICB9CiAgICAgTG9jYWxGcmVlKHNfYnVmKTsKICAgICByZXR1cm4gTlVMTDsKQEAgLTU3NSw2ICs2MTgsNDkgQEAKIH0KICNlbmRpZiAvKiBNU19XSU5ET1dTICovCiAKK1B5T2JqZWN0ICoKK1B5RXJyX1NldEltcG9ydEVycm9yKFB5T2JqZWN0ICptc2csIFB5T2JqZWN0ICpuYW1lLCBQeU9iamVjdCAqcGF0aCkKK3sKKyAgICBQeU9iamVjdCAqYXJncywgKmt3YXJncywgKmVycm9yOworCisgICAgaWYgKG1zZyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGFyZ3MgPSBQeVR1cGxlX05ldygxKTsKKyAgICBpZiAoYXJncyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIGt3YXJncyA9IFB5RGljdF9OZXcoKTsKKyAgICBpZiAoa3dhcmdzID09IE5VTEwpIHsKKyAgICAgICAgUHlfREVDUkVGKGFyZ3MpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CisKKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisgICAgICAgIG5hbWUgPSBQeV9Ob25lOworICAgIH0KKworICAgIGlmIChwYXRoID09IE5VTEwpIHsKKyAgICAgICAgcGF0aCA9IFB5X05vbmU7CisgICAgfQorCisgICAgUHlfSU5DUkVGKG1zZyk7CisgICAgUHlUdXBsZV9TRVRfSVRFTShhcmdzLCAwLCBtc2cpOworICAgIFB5RGljdF9TZXRJdGVtU3RyaW5nKGt3YXJncywgIm5hbWUiLCBuYW1lKTsKKyAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhrd2FyZ3MsICJwYXRoIiwgcGF0aCk7CisKKyAgICBlcnJvciA9IFB5T2JqZWN0X0NhbGwoUHlFeGNfSW1wb3J0RXJyb3IsIGFyZ3MsIGt3YXJncyk7CisgICAgaWYgKGVycm9yICE9IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfU2V0T2JqZWN0KChQeU9iamVjdCAqKVB5X1RZUEUoZXJyb3IpLCBlcnJvcik7CisgICAgICAgIFB5X0RFQ1JFRihlcnJvcik7CisgICAgfQorCisgICAgUHlfREVDUkVGKGFyZ3MpOworICAgIFB5X0RFQ1JFRihrd2FyZ3MpOworCisgICAgcmV0dXJuIE5VTEw7Cit9CisKIHZvaWQKIF9QeUVycl9CYWRJbnRlcm5hbENhbGwoY29uc3QgY2hhciAqZmlsZW5hbWUsIGludCBsaW5lbm8pCiB7CkBAIC02NTYsNyArNzQyLDcgQEAKICAgICAgICAgaWYgKGJhc2VzID09IE5VTEwpCiAgICAgICAgICAgICBnb3RvIGZhaWx1cmU7CiAgICAgfQotICAgIC8qIENyZWF0ZSBhIHJlYWwgbmV3LXN0eWxlIGNsYXNzLiAqLworICAgIC8qIENyZWF0ZSBhIHJlYWwgY2xhc3MuICovCiAgICAgcmVzdWx0ID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uKChQeU9iamVjdCAqKSZQeVR5cGVfVHlwZSwgInNPTyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvdCsxLCBiYXNlcywgZGljdCk7CiAgIGZhaWx1cmU6CkBAIC03MDcsNiArNzkzLDcgQEAKIHZvaWQKIFB5RXJyX1dyaXRlVW5yYWlzYWJsZShQeU9iamVjdCAqb2JqKQogeworICAgIF9QeV9JREVOVElGSUVSKF9fbW9kdWxlX18pOwogICAgIFB5T2JqZWN0ICpmLCAqdCwgKnYsICp0YjsKICAgICBQeUVycl9GZXRjaCgmdCwgJnYsICZ0Yik7CiAgICAgZiA9IFB5U3lzX0dldE9iamVjdCgic3RkZXJyIik7CkBAIC03MjMsNyArODEwLDcgQEAKICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lID0gZG90KzE7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIG1vZHVsZU5hbWUgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHQsICJfX21vZHVsZV9fIik7CisgICAgICAgICAgICBtb2R1bGVOYW1lID0gX1B5T2JqZWN0X0dldEF0dHJJZCh0LCAmUHlJZF9fX21vZHVsZV9fKTsKICAgICAgICAgICAgIGlmIChtb2R1bGVOYW1lID09IE5VTEwpCiAgICAgICAgICAgICAgICAgUHlGaWxlX1dyaXRlU3RyaW5nKCI8dW5rbm93bj4iLCBmKTsKICAgICAgICAgICAgIGVsc2UgewpAQCAtNzc0LDYgKzg2MSwxMiBAQAogUHlFcnJfU3ludGF4TG9jYXRpb25FeChjb25zdCBjaGFyICpmaWxlbmFtZSwgaW50IGxpbmVubywgaW50IGNvbF9vZmZzZXQpCiB7CiAgICAgUHlPYmplY3QgKmV4YywgKnYsICp0YiwgKnRtcDsKKyAgICBfUHlfSURFTlRJRklFUihmaWxlbmFtZSk7CisgICAgX1B5X0lERU5USUZJRVIobGluZW5vKTsKKyAgICBfUHlfSURFTlRJRklFUihtc2cpOworICAgIF9QeV9JREVOVElGSUVSKG9mZnNldCk7CisgICAgX1B5X0lERU5USUZJRVIocHJpbnRfZmlsZV9hbmRfbGluZSk7CisgICAgX1B5X0lERU5USUZJRVIodGV4dCk7CiAKICAgICAvKiBhZGQgYXR0cmlidXRlcyBmb3IgdGhlIGxpbmUgbnVtYmVyIGFuZCBmaWxlbmFtZSBmb3IgdGhlIGVycm9yICovCiAgICAgUHlFcnJfRmV0Y2goJmV4YywgJnYsICZ0Yik7CkBAIC03ODQsNyArODc3LDcgQEAKICAgICBpZiAodG1wID09IE5VTEwpCiAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHYsICJsaW5lbm8iLCB0bXApKQorICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZCh2LCAmUHlJZF9saW5lbm8sIHRtcCkpCiAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICBQeV9ERUNSRUYodG1wKTsKICAgICB9CkBAIC03OTMsNyArODg2LDcgQEAKICAgICAgICAgaWYgKHRtcCA9PSBOVUxMKQogICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyh2LCAib2Zmc2V0IiwgdG1wKSkKKyAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHYsICZQeUlkX29mZnNldCwgdG1wKSkKICAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICAgICAgUHlfREVDUkVGKHRtcCk7CiAgICAgICAgIH0KQEAgLTgwMywzNSArODk2LDM1IEBACiAgICAgICAgIGlmICh0bXAgPT0gTlVMTCkKICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcodiwgImZpbGVuYW1lIiwgdG1wKSkKKyAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHYsICZQeUlkX2ZpbGVuYW1lLCB0bXApKQogICAgICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgICAgICBQeV9ERUNSRUYodG1wKTsKICAgICAgICAgfQogCiAgICAgICAgIHRtcCA9IFB5RXJyX1Byb2dyYW1UZXh0KGZpbGVuYW1lLCBsaW5lbm8pOwogICAgICAgICBpZiAodG1wKSB7Ci0gICAgICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyh2LCAidGV4dCIsIHRtcCkpCisgICAgICAgICAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZCh2LCAmUHlJZF90ZXh0LCB0bXApKQogICAgICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgICAgICBQeV9ERUNSRUYodG1wKTsKICAgICAgICAgfQogICAgIH0KLSAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyh2LCAib2Zmc2V0IiwgUHlfTm9uZSkpIHsKKyAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZCh2LCAmUHlJZF9vZmZzZXQsIFB5X05vbmUpKSB7CiAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgfQogICAgIGlmIChleGMgIT0gUHlFeGNfU3ludGF4RXJyb3IpIHsKLSAgICAgICAgaWYgKCFQeU9iamVjdF9IYXNBdHRyU3RyaW5nKHYsICJtc2ciKSkgeworICAgICAgICBpZiAoIV9QeU9iamVjdF9IYXNBdHRySWQodiwgJlB5SWRfbXNnKSkgewogICAgICAgICAgICAgdG1wID0gUHlPYmplY3RfU3RyKHYpOwogICAgICAgICAgICAgaWYgKHRtcCkgewotICAgICAgICAgICAgICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKHYsICJtc2ciLCB0bXApKQorICAgICAgICAgICAgICAgIGlmIChfUHlPYmplY3RfU2V0QXR0cklkKHYsICZQeUlkX21zZywgdG1wKSkKICAgICAgICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgICAgICAgICBQeV9ERUNSRUYodG1wKTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQotICAgICAgICBpZiAoIVB5T2JqZWN0X0hhc0F0dHJTdHJpbmcodiwgInByaW50X2ZpbGVfYW5kX2xpbmUiKSkgewotICAgICAgICAgICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcodiwgInByaW50X2ZpbGVfYW5kX2xpbmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfTm9uZSkpCisgICAgICAgIGlmICghX1B5T2JqZWN0X0hhc0F0dHJJZCh2LCAmUHlJZF9wcmludF9maWxlX2FuZF9saW5lKSkgeworICAgICAgICAgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQodiwgJlB5SWRfcHJpbnRfZmlsZV9hbmRfbGluZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X05vbmUpKQogICAgICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9QeXRob24vZmlsZXV0aWxzLmMgYi9QeXRob24vZmlsZXV0aWxzLmMKaW5kZXggYzU2M2VhYS4uNTAxY2I4YyAxMDA2NDQKLS0tIGEvUHl0aG9uL2ZpbGV1dGlscy5jCisrKyBiL1B5dGhvbi9maWxldXRpbHMuYwpAQCAtMyw2ICszLDQwIEBACiAjICBpbmNsdWRlIDx3aW5kb3dzLmg+CiAjZW5kaWYKIAorI2lmZGVmIEhBVkVfTEFOR0lORk9fSAorI2luY2x1ZGUgPGxhbmdpbmZvLmg+CisjZW5kaWYKKworUHlPYmplY3QgKgorX1B5X2RldmljZV9lbmNvZGluZyhpbnQgZmQpCit7CisjaWYgZGVmaW5lZChNU19XSU5ET1dTKSB8fCBkZWZpbmVkKE1TX1dJTjY0KQorICAgIFVJTlQgY3A7CisjZW5kaWYKKyAgICBpZiAoIV9QeVZlcmlmeV9mZChmZCkgfHwgIWlzYXR0eShmZCkpIHsKKyAgICAgICAgUHlfUkVUVVJOX05PTkU7CisgICAgfQorI2lmIGRlZmluZWQoTVNfV0lORE9XUykgfHwgZGVmaW5lZChNU19XSU42NCkKKyAgICBpZiAoZmQgPT0gMCkKKyAgICAgICAgY3AgPSBHZXRDb25zb2xlQ1AoKTsKKyAgICBlbHNlIGlmIChmZCA9PSAxIHx8IGZkID09IDIpCisgICAgICAgIGNwID0gR2V0Q29uc29sZU91dHB1dENQKCk7CisgICAgZWxzZQorICAgICAgICBjcCA9IDA7CisgICAgLyogR2V0Q29uc29sZUNQKCkgYW5kIEdldENvbnNvbGVPdXRwdXRDUCgpIHJldHVybiAwIGlmIHRoZSBhcHBsaWNhdGlvbgorICAgICAgIGhhcyBubyBjb25zb2xlICovCisgICAgaWYgKGNwICE9IDApCisgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiY3AldSIsICh1bnNpZ25lZCBpbnQpY3ApOworI2VsaWYgZGVmaW5lZChDT0RFU0VUKQorICAgIHsKKyAgICAgICAgY2hhciAqY29kZXNldCA9IG5sX2xhbmdpbmZvKENPREVTRVQpOworICAgICAgICBpZiAoY29kZXNldCAhPSBOVUxMICYmIGNvZGVzZXRbMF0gIT0gMCkKKyAgICAgICAgICAgIHJldHVybiBQeVVuaWNvZGVfRnJvbVN0cmluZyhjb2Rlc2V0KTsKKyAgICB9CisjZW5kaWYKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KKwogI2lmZGVmIEhBVkVfU1RBVAogCiAvKiBEZWNvZGUgYSBieXRlIHN0cmluZyBmcm9tIHRoZSBsb2NhbGUgZW5jb2Rpbmcgd2l0aCB0aGUKQEAgLTE2LDcgKzUwLDkgQEAKICAgIFJldHVybiBhIHBvaW50ZXIgdG8gYSBuZXdseSBhbGxvY2F0ZWQgd2lkZSBjaGFyYWN0ZXIgc3RyaW5nICh1c2UKICAgIFB5TWVtX0ZyZWUoKSB0byBmcmVlIHRoZSBtZW1vcnkpIGFuZCB3cml0ZSB0aGUgbnVtYmVyIG9mIHdyaXR0ZW4gd2lkZQogICAgY2hhcmFjdGVycyBleGNsdWRpbmcgdGhlIG51bGwgY2hhcmFjdGVyIGludG8gKnNpemUgaWYgc2l6ZSBpcyBub3QgTlVMTCwgb3IKLSAgIE5VTEwgb24gZXJyb3IgKGNvbnZlcnNpb24gb3IgbWVtb3J5IGFsbG9jYXRpb24gZXJyb3IpLgorICAgTlVMTCBvbiBlcnJvciAoZGVjb2Rpbmcgb3IgbWVtb3J5IGFsbG9jYXRpb24gZXJyb3IpLiBJZiBzaXplIGlzIG5vdCBOVUxMLAorICAgKnNpemUgaXMgc2V0IHRvIChzaXplX3QpLTEgb24gbWVtb3J5IGVycm9yIGFuZCAoc2l6ZV90KS0yIG9uIGRlY29kaW5nCisgICBlcnJvci4KIAogICAgQ29udmVyc2lvbiBlcnJvcnMgc2hvdWxkIG5ldmVyIGhhcHBlbiwgdW5sZXNzIHRoZXJlIGlzIGEgYnVnIGluIHRoZSBDCiAgICBsaWJyYXJ5LiAqLwpAQCAtODIsOCArMTE4LDkgQEAKICAgICAgICAgICAgICAgIHNpbmNlIHdlIHByb3ZpZGUgZXZlcnl0aGluZyB0aGF0IHdlIGhhdmUgLQogICAgICAgICAgICAgICAgdW5sZXNzIHRoZXJlIGlzIGEgYnVnIGluIHRoZSBDIGxpYnJhcnksIG9yIEkKICAgICAgICAgICAgICAgIG1pc3VuZGVyc3Rvb2QgaG93IG1icnRvd2Mgd29ya3MuICovCi0gICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgInVuZXhwZWN0ZWQgbWJydG93YyByZXN1bHQgLTJcbiIpOwogICAgICAgICAgICAgUHlNZW1fRnJlZShyZXMpOworICAgICAgICAgICAgaWYgKHNpemUgIT0gTlVMTCkKKyAgICAgICAgICAgICAgICAqc2l6ZSA9IChzaXplX3QpLTI7CiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQogICAgICAgICBpZiAoY29udmVydGVkID09IChzaXplX3QpLTEpIHsKQEAgLTExMiw3ICsxNDksOCBAQAogICAgICAgIGlzIEFTQ0lJIChpLmUuIGVzY2FwZSBhbGwgYnl0ZXMgPiAxMjguIFRoaXMgd2lsbCBzdGlsbCByb3VuZHRyaXAKICAgICAgICBjb3JyZWN0bHkgaW4gdGhlIGxvY2FsZSdzIGNoYXJzZXQsIHdoaWNoIG11c3QgYmUgYW4gQVNDSUkgc3VwZXJzZXQuICovCiAgICAgcmVzID0gUHlNZW1fTWFsbG9jKChzdHJsZW4oYXJnKSsxKSpzaXplb2Yod2NoYXJfdCkpOwotICAgIGlmICghcmVzKSBnb3RvIG9vbTsKKyAgICBpZiAoIXJlcykKKyAgICAgICAgZ290byBvb207CiAgICAgaW4gPSAodW5zaWduZWQgY2hhciopYXJnOwogICAgIG91dCA9IHJlczsKICAgICB3aGlsZSgqaW4pCkBAIC0xMjYsNyArMTY0LDggQEAKICAgICAgICAgKnNpemUgPSBvdXQgLSByZXM7CiAgICAgcmV0dXJuIHJlczsKIG9vbToKLSAgICBmcHJpbnRmKHN0ZGVyciwgIm91dCBvZiBtZW1vcnlcbiIpOworICAgIGlmIChzaXplICE9IE5VTEwpCisgICAgICAgICpzaXplID0gKHNpemVfdCktMTsKICAgICByZXR1cm4gTlVMTDsKIH0KIApAQCAtMTM3LDEwICsxNzYsMTAgQEAKICAgIFRoaXMgZnVuY3Rpb24gaXMgdGhlIHJldmVyc2Ugb2YgX1B5X2NoYXIyd2NoYXIoKS4KIAogICAgUmV0dXJuIGEgcG9pbnRlciB0byBhIG5ld2x5IGFsbG9jYXRlZCBieXRlIHN0cmluZyAodXNlIFB5TWVtX0ZyZWUoKSB0byBmcmVlCi0gICB0aGUgbWVtb3J5KSwgb3IgTlVMTCBvbiBjb252ZXJzaW9uIG9yIG1lbW9yeSBhbGxvY2F0aW9uIGVycm9yLgorICAgdGhlIG1lbW9yeSksIG9yIE5VTEwgb24gZW5jb2Rpbmcgb3IgbWVtb3J5IGFsbG9jYXRpb24gZXJyb3IuCiAKICAgIElmIGVycm9yX3BvcyBpcyBub3QgTlVMTDogKmVycm9yX3BvcyBpcyB0aGUgaW5kZXggb2YgdGhlIGludmFsaWQgY2hhcmFjdGVyCi0gICBvbiBjb252ZXJzaW9uIGVycm9yLCBvciAoc2l6ZV90KS0xIG90aGVyd2lzZS4gKi8KKyAgIG9uIGVuY29kaW5nIGVycm9yLCBvciAoc2l6ZV90KS0xIG90aGVyd2lzZS4gKi8KIGNoYXIqCiBfUHlfd2NoYXIyY2hhcihjb25zdCB3Y2hhcl90ICp0ZXh0LCBzaXplX3QgKmVycm9yX3BvcykKIHsKQEAgLTIzNSw4ICsyNzQsOCBAQAogLyogQ2FsbCBfd3N0YXQoKSBvbiBXaW5kb3dzLCBvciBlbmNvZGUgdGhlIHBhdGggdG8gdGhlIGZpbGVzeXN0ZW0gZW5jb2RpbmcgYW5kCiAgICBjYWxsIHN0YXQoKSBvdGhlcndpc2UuIE9ubHkgZmlsbCBzdF9tb2RlIGF0dHJpYnV0ZSBvbiBXaW5kb3dzLgogCi0gICBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSBvbiBfd3N0YXQoKSAvIHN0YXQoKSBlcnJvciBvciAoaWYgUHlFcnJfT2NjdXJyZWQoKSkKLSAgIHVuaWNvZGUgZXJyb3IuICovCisgICBSZXR1cm4gMCBvbiBzdWNjZXNzLCAtMSBvbiBfd3N0YXQoKSAvIHN0YXQoKSBlcnJvciwgLTIgaWYgYW4gZXhjZXB0aW9uIHdhcworICAgcmFpc2VkLiAqLwogCiBpbnQKIF9QeV9zdGF0KFB5T2JqZWN0ICpwYXRoLCBzdHJ1Y3Qgc3RhdCAqc3RhdGJ1ZikKQEAgLTI0NCw4ICsyODMsMTIgQEAKICNpZmRlZiBNU19XSU5ET1dTCiAgICAgaW50IGVycjsKICAgICBzdHJ1Y3QgX3N0YXQgd3N0YXRidWY7CisgICAgd2NoYXJfdCAqd3BhdGg7CiAKLSAgICBlcnIgPSBfd3N0YXQoUHlVbmljb2RlX0FTX1VOSUNPREUocGF0aCksICZ3c3RhdGJ1Zik7CisgICAgd3BhdGggPSBQeVVuaWNvZGVfQXNVbmljb2RlKHBhdGgpOworICAgIGlmICh3cGF0aCA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTI7CisgICAgZXJyID0gX3dzdGF0KHdwYXRoLCAmd3N0YXRidWYpOwogICAgIGlmICghZXJyKQogICAgICAgICBzdGF0YnVmLT5zdF9tb2RlID0gd3N0YXRidWYuc3RfbW9kZTsKICAgICByZXR1cm4gZXJyOwpAQCAtMjUzLDcgKzI5Niw3IEBACiAgICAgaW50IHJldDsKICAgICBQeU9iamVjdCAqYnl0ZXMgPSBQeVVuaWNvZGVfRW5jb2RlRlNEZWZhdWx0KHBhdGgpOwogICAgIGlmIChieXRlcyA9PSBOVUxMKQotICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIHJldHVybiAtMjsKICAgICByZXQgPSBzdGF0KFB5Qnl0ZXNfQVNfU1RSSU5HKGJ5dGVzKSwgc3RhdGJ1Zik7CiAgICAgUHlfREVDUkVGKGJ5dGVzKTsKICAgICByZXR1cm4gcmV0OwpAQCAtMjk3LDE4ICszNDAsMjkgQEAKIF9QeV9mb3BlbihQeU9iamVjdCAqcGF0aCwgY29uc3QgY2hhciAqbW9kZSkKIHsKICNpZmRlZiBNU19XSU5ET1dTCisgICAgd2NoYXJfdCAqd3BhdGg7CiAgICAgd2NoYXJfdCB3bW9kZVsxMF07CiAgICAgaW50IHVzaXplOwogCisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2socGF0aCkpIHsKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICJzdHIgZmlsZSBwYXRoIGV4cGVjdGVkIHVuZGVyIFdpbmRvd3MsIGdvdCAlUiIsCisgICAgICAgICAgICAgICAgICAgICBQeV9UWVBFKHBhdGgpKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorICAgIHdwYXRoID0gUHlVbmljb2RlX0FzVW5pY29kZShwYXRoKTsKKyAgICBpZiAod3BhdGggPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKICAgICB1c2l6ZSA9IE11bHRpQnl0ZVRvV2lkZUNoYXIoQ1BfQUNQLCAwLCBtb2RlLCAtMSwgd21vZGUsIHNpemVvZih3bW9kZSkpOwogICAgIGlmICh1c2l6ZSA9PSAwKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIHJldHVybiBfd2ZvcGVuKFB5VW5pY29kZV9BU19VTklDT0RFKHBhdGgpLCB3bW9kZSk7CisgICAgcmV0dXJuIF93Zm9wZW4od3BhdGgsIHdtb2RlKTsKICNlbHNlCiAgICAgRklMRSAqZjsKLSAgICBQeU9iamVjdCAqYnl0ZXMgPSBQeVVuaWNvZGVfRW5jb2RlRlNEZWZhdWx0KHBhdGgpOwotICAgIGlmIChieXRlcyA9PSBOVUxMKQorICAgIFB5T2JqZWN0ICpieXRlczsKKyAgICBpZiAoIVB5VW5pY29kZV9GU0NvbnZlcnRlcihwYXRoLCAmYnl0ZXMpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBmID0gZm9wZW4oUHlCeXRlc19BU19TVFJJTkcoYnl0ZXMpLCBtb2RlKTsKICAgICBQeV9ERUNSRUYoYnl0ZXMpOwpAQCAtMzE5LDcgKzM3Myw3IEBACiAjaWZkZWYgSEFWRV9SRUFETElOSwogCiAvKiBSZWFkIHZhbHVlIG9mIHN5bWJvbGljIGxpbmsuIEVuY29kZSB0aGUgcGF0aCB0byB0aGUgbG9jYWxlIGVuY29kaW5nLCBkZWNvZGUKLSAgIHRoZSByZXN1bHQgZnJvbSB0aGUgbG9jYWxlIGVuY29kaW5nLiAqLworICAgdGhlIHJlc3VsdCBmcm9tIHRoZSBsb2NhbGUgZW5jb2RpbmcuIFJldHVybiAtMSBvbiBlcnJvci4gKi8KIAogaW50CiBfUHlfd3JlYWRsaW5rKGNvbnN0IHdjaGFyX3QgKnBhdGgsIHdjaGFyX3QgKmJ1Ziwgc2l6ZV90IGJ1ZnNpeikKQEAgLTM2Myw3ICs0MTcsOCBAQAogI2lmZGVmIEhBVkVfUkVBTFBBVEgKIAogLyogUmV0dXJuIHRoZSBjYW5vbmljYWxpemVkIGFic29sdXRlIHBhdGhuYW1lLiBFbmNvZGUgcGF0aCB0byB0aGUgbG9jYWxlCi0gICBlbmNvZGluZywgZGVjb2RlIHRoZSByZXN1bHQgZnJvbSB0aGUgbG9jYWxlIGVuY29kaW5nLiAqLworICAgZW5jb2RpbmcsIGRlY29kZSB0aGUgcmVzdWx0IGZyb20gdGhlIGxvY2FsZSBlbmNvZGluZy4KKyAgIFJldHVybiBOVUxMIG9uIGVycm9yLiAqLwogCiB3Y2hhcl90KgogX1B5X3dyZWFscGF0aChjb25zdCB3Y2hhcl90ICpwYXRoLApAQCAtNDAxLDcgKzQ1Niw4IEBACiAjZW5kaWYKIAogLyogR2V0IHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gc2l6ZSBpcyB0aGUgYnVmZmVyIHNpemUgaW4gd2lkZSBjaGFyYWN0ZXJzCi0gICBpbmNsdWRpbmcgdGhlIG51bGwgY2hhcmFjdGVyLiBEZWNvZGUgdGhlIHBhdGggZnJvbSB0aGUgbG9jYWxlIGVuY29kaW5nLiAqLworICAgaW5jbHVkaW5nIHRoZSBudWxsIGNoYXJhY3Rlci4gRGVjb2RlIHRoZSBwYXRoIGZyb20gdGhlIGxvY2FsZSBlbmNvZGluZy4KKyAgIFJldHVybiBOVUxMIG9uIGVycm9yLiAqLwogCiB3Y2hhcl90KgogX1B5X3dnZXRjd2Qod2NoYXJfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKZGlmZiAtLWdpdCBhL1B5dGhvbi9mb3JtYXR0ZXJfdW5pY29kZS5jIGIvUHl0aG9uL2Zvcm1hdHRlcl91bmljb2RlLmMKaW5kZXggYzM1MDkwNy4uNjYxYmYxOSAxMDA2NDQKLS0tIGEvUHl0aG9uL2Zvcm1hdHRlcl91bmljb2RlLmMKKysrIGIvUHl0aG9uL2Zvcm1hdHRlcl91bmljb2RlLmMKQEAgLTMsMTIgKzMsMTUzNyBAQAogICAgb2YgaW50Ll9fZmxvYXRfXywgZXRjLiwgdGhhdCB0YWtlIGFuZCByZXR1cm4gdW5pY29kZSBvYmplY3RzICovCiAKICNpbmNsdWRlICJQeXRob24uaCIKLSNpbmNsdWRlICIuLi9PYmplY3RzL3N0cmluZ2xpYi91bmljb2RlZGVmcy5oIgorI2luY2x1ZGUgPGxvY2FsZS5oPgorCisvKiBSYWlzZXMgYW4gZXhjZXB0aW9uIGFib3V0IGFuIHVua25vd24gcHJlc2VudGF0aW9uIHR5cGUgZm9yIHRoaXMKKyAqIHR5cGUuICovCisKK3N0YXRpYyB2b2lkCit1bmtub3duX3ByZXNlbnRhdGlvbl90eXBlKFB5X1VDUzQgcHJlc2VudGF0aW9uX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHR5cGVfbmFtZSkKK3sKKyAgICAvKiAlYyBtaWdodCBiZSBvdXQtb2YtcmFuZ2UsIGhlbmNlIHRoZSB0d28gY2FzZXMuICovCisgICAgaWYgKHByZXNlbnRhdGlvbl90eXBlID4gMzIgJiYgcHJlc2VudGF0aW9uX3R5cGUgPCAxMjgpCisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIlVua25vd24gZm9ybWF0IGNvZGUgJyVjJyAiCisgICAgICAgICAgICAgICAgICAgICAiZm9yIG9iamVjdCBvZiB0eXBlICclLjIwMHMnIiwKKyAgICAgICAgICAgICAgICAgICAgIChjaGFyKXByZXNlbnRhdGlvbl90eXBlLAorICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lKTsKKyAgICBlbHNlCisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIlVua25vd24gZm9ybWF0IGNvZGUgJ1xceCV4JyAiCisgICAgICAgICAgICAgICAgICAgICAiZm9yIG9iamVjdCBvZiB0eXBlICclLjIwMHMnIiwKKyAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpcHJlc2VudGF0aW9uX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICB0eXBlX25hbWUpOworfQorCitzdGF0aWMgdm9pZAoraW52YWxpZF9jb21tYV90eXBlKFB5X1VDUzQgcHJlc2VudGF0aW9uX3R5cGUpCit7CisgICAgaWYgKHByZXNlbnRhdGlvbl90eXBlID4gMzIgJiYgcHJlc2VudGF0aW9uX3R5cGUgPCAxMjgpCisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBzcGVjaWZ5ICcsJyB3aXRoICclYycuIiwKKyAgICAgICAgICAgICAgICAgICAgIChjaGFyKXByZXNlbnRhdGlvbl90eXBlKTsKKyAgICBlbHNlCisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgIkNhbm5vdCBzcGVjaWZ5ICcsJyB3aXRoICdcXHgleCcuIiwKKyAgICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZCBpbnQpcHJlc2VudGF0aW9uX3R5cGUpOworfQorCisvKgorICAgIGdldF9pbnRlZ2VyIGNvbnN1bWVzIDAgb3IgbW9yZSBkZWNpbWFsIGRpZ2l0IGNoYXJhY3RlcnMgZnJvbSBhbgorICAgIGlucHV0IHN0cmluZywgdXBkYXRlcyAqcmVzdWx0IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcG9zaXRpdmUKKyAgICBpbnRlZ2VyLCBhbmQgcmV0dXJucyB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBjb25zdW1lZC4KKworICAgIHJldHVybnMgLTEgb24gZXJyb3IuCisqLworc3RhdGljIGludAorZ2V0X2ludGVnZXIoUHlPYmplY3QgKnN0ciwgUHlfc3NpemVfdCAqcG9zLCBQeV9zc2l6ZV90IGVuZCwKKyAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKnJlc3VsdCkKK3sKKyAgICBQeV9zc2l6ZV90IGFjY3VtdWxhdG9yLCBkaWdpdHZhbDsKKyAgICBpbnQgbnVtZGlnaXRzOworICAgIGFjY3VtdWxhdG9yID0gbnVtZGlnaXRzID0gMDsKKyAgICBmb3IgKDs7KCpwb3MpKyssIG51bWRpZ2l0cysrKSB7CisgICAgICAgIGlmICgqcG9zID49IGVuZCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkaWdpdHZhbCA9IFB5X1VOSUNPREVfVE9ERUNJTUFMKFB5VW5pY29kZV9SRUFEX0NIQVIoc3RyLCAqcG9zKSk7CisgICAgICAgIGlmIChkaWdpdHZhbCA8IDApCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgLyoKKyAgICAgICAgICAgRGV0ZWN0IHBvc3NpYmxlIG92ZXJmbG93IGJlZm9yZSBpdCBoYXBwZW5zOgorCisgICAgICAgICAgICAgIGFjY3VtdWxhdG9yICogMTAgKyBkaWdpdHZhbCA+IFBZX1NTSVpFX1RfTUFYIGlmIGFuZCBvbmx5IGlmCisgICAgICAgICAgICAgIGFjY3VtdWxhdG9yID4gKFBZX1NTSVpFX1RfTUFYIC0gZGlnaXR2YWwpIC8gMTAuCisgICAgICAgICovCisgICAgICAgIGlmIChhY2N1bXVsYXRvciA+IChQWV9TU0laRV9UX01BWCAtIGRpZ2l0dmFsKSAvIDEwKSB7CisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiVG9vIG1hbnkgZGVjaW1hbCBkaWdpdHMgaW4gZm9ybWF0IHN0cmluZyIpOworICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICB9CisgICAgICAgIGFjY3VtdWxhdG9yID0gYWNjdW11bGF0b3IgKiAxMCArIGRpZ2l0dmFsOworICAgIH0KKyAgICAqcmVzdWx0ID0gYWNjdW11bGF0b3I7CisgICAgcmV0dXJuIG51bWRpZ2l0czsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKiBzdGFuZGFyZCBmb3JtYXQgc3BlY2lmaWVyIHBhcnNpbmcgKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiByZXR1cm5zIHRydWUgaWYgdGhpcyBjaGFyYWN0ZXIgaXMgYSBzcGVjaWZpZXIgYWxpZ25tZW50IHRva2VuICovCitQeV9MT0NBTF9JTkxJTkUoaW50KQoraXNfYWxpZ25tZW50X3Rva2VuKFB5X1VDUzQgYykKK3sKKyAgICBzd2l0Y2ggKGMpIHsKKyAgICBjYXNlICc8JzogY2FzZSAnPic6IGNhc2UgJz0nOiBjYXNlICdeJzoKKyAgICAgICAgcmV0dXJuIDE7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCisvKiByZXR1cm5zIHRydWUgaWYgdGhpcyBjaGFyYWN0ZXIgaXMgYSBzaWduIGVsZW1lbnQgKi8KK1B5X0xPQ0FMX0lOTElORShpbnQpCitpc19zaWduX2VsZW1lbnQoUHlfVUNTNCBjKQoreworICAgIHN3aXRjaCAoYykgeworICAgIGNhc2UgJyAnOiBjYXNlICcrJzogY2FzZSAnLSc6CisgICAgICAgIHJldHVybiAxOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KIAogCi0jZGVmaW5lIEZPUk1BVF9TVFJJTkcgIF9QeVVuaWNvZGVfRm9ybWF0QWR2YW5jZWQKLSNkZWZpbmUgRk9STUFUX0xPTkcgICAgX1B5TG9uZ19Gb3JtYXRBZHZhbmNlZAotI2RlZmluZSBGT1JNQVRfRkxPQVQgICBfUHlGbG9hdF9Gb3JtYXRBZHZhbmNlZAotI2RlZmluZSBGT1JNQVRfQ09NUExFWCBfUHlDb21wbGV4X0Zvcm1hdEFkdmFuY2VkCit0eXBlZGVmIHN0cnVjdCB7CisgICAgUHlfVUNTNCBmaWxsX2NoYXI7CisgICAgUHlfVUNTNCBhbGlnbjsKKyAgICBpbnQgYWx0ZXJuYXRlOworICAgIFB5X1VDUzQgc2lnbjsKKyAgICBQeV9zc2l6ZV90IHdpZHRoOworICAgIGludCB0aG91c2FuZHNfc2VwYXJhdG9yczsKKyAgICBQeV9zc2l6ZV90IHByZWNpc2lvbjsKKyAgICBQeV9VQ1M0IHR5cGU7Cit9IEludGVybmFsRm9ybWF0U3BlYzsKIAotI2luY2x1ZGUgIi4uL09iamVjdHMvc3RyaW5nbGliL2Zvcm1hdHRlci5oIgorI2lmIDAKKy8qIE9jY2Fzc2lvbmFsbHkgdXNlZnVsIGZvciBkZWJ1Z2dpbmcuIFNob3VsZCBub3JtYWxseSBiZSBjb21tZW50ZWQgb3V0LiAqLworc3RhdGljIHZvaWQKK0RFQlVHX1BSSU5UX0ZPUk1BVF9TUEVDKEludGVybmFsRm9ybWF0U3BlYyAqZm9ybWF0KQoreworICAgIHByaW50ZigiaW50ZXJuYWwgZm9ybWF0IHNwZWM6IGZpbGxfY2hhciAlZFxuIiwgZm9ybWF0LT5maWxsX2NoYXIpOworICAgIHByaW50ZigiaW50ZXJuYWwgZm9ybWF0IHNwZWM6IGFsaWduICVkXG4iLCBmb3JtYXQtPmFsaWduKTsKKyAgICBwcmludGYoImludGVybmFsIGZvcm1hdCBzcGVjOiBhbHRlcm5hdGUgJWRcbiIsIGZvcm1hdC0+YWx0ZXJuYXRlKTsKKyAgICBwcmludGYoImludGVybmFsIGZvcm1hdCBzcGVjOiBzaWduICVkXG4iLCBmb3JtYXQtPnNpZ24pOworICAgIHByaW50ZigiaW50ZXJuYWwgZm9ybWF0IHNwZWM6IHdpZHRoICV6ZFxuIiwgZm9ybWF0LT53aWR0aCk7CisgICAgcHJpbnRmKCJpbnRlcm5hbCBmb3JtYXQgc3BlYzogdGhvdXNhbmRzX3NlcGFyYXRvcnMgJWRcbiIsCisgICAgICAgICAgIGZvcm1hdC0+dGhvdXNhbmRzX3NlcGFyYXRvcnMpOworICAgIHByaW50ZigiaW50ZXJuYWwgZm9ybWF0IHNwZWM6IHByZWNpc2lvbiAlemRcbiIsIGZvcm1hdC0+cHJlY2lzaW9uKTsKKyAgICBwcmludGYoImludGVybmFsIGZvcm1hdCBzcGVjOiB0eXBlICVjXG4iLCBmb3JtYXQtPnR5cGUpOworICAgIHByaW50ZigiXG4iKTsKK30KKyNlbmRpZgorCisKKy8qCisgIHB0ciBwb2ludHMgdG8gdGhlIHN0YXJ0IG9mIHRoZSBmb3JtYXRfc3BlYywgZW5kIHBvaW50cyBqdXN0IHBhc3QgaXRzIGVuZC4KKyAgZmlsbHMgaW4gZm9ybWF0IHdpdGggdGhlIHBhcnNlZCBpbmZvcm1hdGlvbi4KKyAgcmV0dXJucyAxIG9uIHN1Y2Nlc3MsIDAgb24gZmFpbHVyZS4KKyAgaWYgZmFpbHVyZSwgc2V0cyB0aGUgZXhjZXB0aW9uCisqLworc3RhdGljIGludAorcGFyc2VfaW50ZXJuYWxfcmVuZGVyX2Zvcm1hdF9zcGVjKFB5T2JqZWN0ICpmb3JtYXRfc3BlYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcm5hbEZvcm1hdFNwZWMgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGRlZmF1bHRfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyIGRlZmF1bHRfYWxpZ24pCit7CisgICAgUHlfc3NpemVfdCBwb3MgPSBzdGFydDsKKyAgICAvKiBlbmQtcG9zIGlzIHVzZWQgdGhyb3VnaG91dCB0aGlzIGNvZGUgdG8gc3BlY2lmeSB0aGUgbGVuZ3RoIG9mCisgICAgICAgdGhlIGlucHV0IHN0cmluZyAqLworI2RlZmluZSBSRUFEX3NwZWMoaW5kZXgpIFB5VW5pY29kZV9SRUFEX0NIQVIoZm9ybWF0X3NwZWMsIGluZGV4KQorCisgICAgUHlfc3NpemVfdCBjb25zdW1lZDsKKyAgICBpbnQgYWxpZ25fc3BlY2lmaWVkID0gMDsKKworICAgIGZvcm1hdC0+ZmlsbF9jaGFyID0gJ1wwJzsKKyAgICBmb3JtYXQtPmFsaWduID0gZGVmYXVsdF9hbGlnbjsKKyAgICBmb3JtYXQtPmFsdGVybmF0ZSA9IDA7CisgICAgZm9ybWF0LT5zaWduID0gJ1wwJzsKKyAgICBmb3JtYXQtPndpZHRoID0gLTE7CisgICAgZm9ybWF0LT50aG91c2FuZHNfc2VwYXJhdG9ycyA9IDA7CisgICAgZm9ybWF0LT5wcmVjaXNpb24gPSAtMTsKKyAgICBmb3JtYXQtPnR5cGUgPSBkZWZhdWx0X3R5cGU7CisKKyAgICAvKiBJZiB0aGUgc2Vjb25kIGNoYXIgaXMgYW4gYWxpZ25tZW50IHRva2VuLAorICAgICAgIHRoZW4gcGFyc2UgdGhlIGZpbGwgY2hhciAqLworICAgIGlmIChlbmQtcG9zID49IDIgJiYgaXNfYWxpZ25tZW50X3Rva2VuKFJFQURfc3BlYyhwb3MrMSkpKSB7CisgICAgICAgIGZvcm1hdC0+YWxpZ24gPSBSRUFEX3NwZWMocG9zKzEpOworICAgICAgICBmb3JtYXQtPmZpbGxfY2hhciA9IFJFQURfc3BlYyhwb3MpOworICAgICAgICBhbGlnbl9zcGVjaWZpZWQgPSAxOworICAgICAgICBwb3MgKz0gMjsKKyAgICB9CisgICAgZWxzZSBpZiAoZW5kLXBvcyA+PSAxICYmIGlzX2FsaWdubWVudF90b2tlbihSRUFEX3NwZWMocG9zKSkpIHsKKyAgICAgICAgZm9ybWF0LT5hbGlnbiA9IFJFQURfc3BlYyhwb3MpOworICAgICAgICBhbGlnbl9zcGVjaWZpZWQgPSAxOworICAgICAgICArK3BvczsKKyAgICB9CisKKyAgICAvKiBQYXJzZSB0aGUgdmFyaW91cyBzaWduIG9wdGlvbnMgKi8KKyAgICBpZiAoZW5kLXBvcyA+PSAxICYmIGlzX3NpZ25fZWxlbWVudChSRUFEX3NwZWMocG9zKSkpIHsKKyAgICAgICAgZm9ybWF0LT5zaWduID0gUkVBRF9zcGVjKHBvcyk7CisgICAgICAgICsrcG9zOworICAgIH0KKworICAgIC8qIElmIHRoZSBuZXh0IGNoYXJhY3RlciBpcyAjLCB3ZSdyZSBpbiBhbHRlcm5hdGUgbW9kZS4gIFRoaXMgb25seQorICAgICAgIGFwcGxpZXMgdG8gaW50ZWdlcnMuICovCisgICAgaWYgKGVuZC1wb3MgPj0gMSAmJiBSRUFEX3NwZWMocG9zKSA9PSAnIycpIHsKKyAgICAgICAgZm9ybWF0LT5hbHRlcm5hdGUgPSAxOworICAgICAgICArK3BvczsKKyAgICB9CisKKyAgICAvKiBUaGUgc3BlY2lhbCBjYXNlIGZvciAwLXBhZGRpbmcgKGJhY2t3YXJkcyBjb21wYXQpICovCisgICAgaWYgKGZvcm1hdC0+ZmlsbF9jaGFyID09ICdcMCcgJiYgZW5kLXBvcyA+PSAxICYmIFJFQURfc3BlYyhwb3MpID09ICcwJykgeworICAgICAgICBmb3JtYXQtPmZpbGxfY2hhciA9ICcwJzsKKyAgICAgICAgaWYgKCFhbGlnbl9zcGVjaWZpZWQpIHsKKyAgICAgICAgICAgIGZvcm1hdC0+YWxpZ24gPSAnPSc7CisgICAgICAgIH0KKyAgICAgICAgKytwb3M7CisgICAgfQorCisgICAgY29uc3VtZWQgPSBnZXRfaW50ZWdlcihmb3JtYXRfc3BlYywgJnBvcywgZW5kLCAmZm9ybWF0LT53aWR0aCk7CisgICAgaWYgKGNvbnN1bWVkID09IC0xKQorICAgICAgICAvKiBPdmVyZmxvdyBlcnJvci4gRXhjZXB0aW9uIGFscmVhZHkgc2V0LiAqLworICAgICAgICByZXR1cm4gMDsKKworICAgIC8qIElmIGNvbnN1bWVkIGlzIDAsIHdlIGRpZG4ndCBjb25zdW1lIGFueSBjaGFyYWN0ZXJzIGZvciB0aGUKKyAgICAgICB3aWR0aC4gSW4gdGhhdCBjYXNlLCByZXNldCB0aGUgd2lkdGggdG8gLTEsIGJlY2F1c2UKKyAgICAgICBnZXRfaW50ZWdlcigpIHdpbGwgaGF2ZSBzZXQgaXQgdG8gemVyby4gLTEgaXMgaG93IHdlIHJlY29yZAorICAgICAgIHRoYXQgdGhlIHdpZHRoIHdhc24ndCBzcGVjaWZpZWQuICovCisgICAgaWYgKGNvbnN1bWVkID09IDApCisgICAgICAgIGZvcm1hdC0+d2lkdGggPSAtMTsKKworICAgIC8qIENvbW1hIHNpZ25pZmllcyBhZGQgdGhvdXNhbmRzIHNlcGFyYXRvcnMgKi8KKyAgICBpZiAoZW5kLXBvcyAmJiBSRUFEX3NwZWMocG9zKSA9PSAnLCcpIHsKKyAgICAgICAgZm9ybWF0LT50aG91c2FuZHNfc2VwYXJhdG9ycyA9IDE7CisgICAgICAgICsrcG9zOworICAgIH0KKworICAgIC8qIFBhcnNlIGZpZWxkIHByZWNpc2lvbiAqLworICAgIGlmIChlbmQtcG9zICYmIFJFQURfc3BlYyhwb3MpID09ICcuJykgeworICAgICAgICArK3BvczsKKworICAgICAgICBjb25zdW1lZCA9IGdldF9pbnRlZ2VyKGZvcm1hdF9zcGVjLCAmcG9zLCBlbmQsICZmb3JtYXQtPnByZWNpc2lvbik7CisgICAgICAgIGlmIChjb25zdW1lZCA9PSAtMSkKKyAgICAgICAgICAgIC8qIE92ZXJmbG93IGVycm9yLiBFeGNlcHRpb24gYWxyZWFkeSBzZXQuICovCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICAvKiBOb3QgaGF2aW5nIGEgcHJlY2lzaW9uIGFmdGVyIGEgZG90IGlzIGFuIGVycm9yLiAqLworICAgICAgICBpZiAoY29uc3VtZWQgPT0gMCkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgIkZvcm1hdCBzcGVjaWZpZXIgbWlzc2luZyBwcmVjaXNpb24iKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisKKyAgICB9CisKKyAgICAvKiBGaW5hbGx5LCBwYXJzZSB0aGUgdHlwZSBmaWVsZC4gKi8KKworICAgIGlmIChlbmQtcG9zID4gMSkgeworICAgICAgICAvKiBNb3JlIHRoYW4gb25lIGNoYXIgcmVtYWluLCBpbnZhbGlkIGZvcm1hdCBzcGVjaWZpZXIuICovCisgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19WYWx1ZUVycm9yLCAiSW52YWxpZCBmb3JtYXQgc3BlY2lmaWVyIik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmIChlbmQtcG9zID09IDEpIHsKKyAgICAgICAgZm9ybWF0LT50eXBlID0gUkVBRF9zcGVjKHBvcyk7CisgICAgICAgICsrcG9zOworICAgIH0KKworICAgIC8qIERvIGFzIG11Y2ggdmFsaWRhdGluZyBhcyB3ZSBjYW4sIGp1c3QgYnkgbG9va2luZyBhdCB0aGUgZm9ybWF0CisgICAgICAgc3BlY2lmaWVyLiAgRG8gbm90IHRha2UgaW50byBhY2NvdW50IHdoYXQgdHlwZSBvZiBmb3JtYXR0aW5nCisgICAgICAgd2UncmUgZG9pbmcgKGludCwgZmxvYXQsIHN0cmluZykuICovCisKKyAgICBpZiAoZm9ybWF0LT50aG91c2FuZHNfc2VwYXJhdG9ycykgeworICAgICAgICBzd2l0Y2ggKGZvcm1hdC0+dHlwZSkgeworICAgICAgICBjYXNlICdkJzoKKyAgICAgICAgY2FzZSAnZSc6CisgICAgICAgIGNhc2UgJ2YnOgorICAgICAgICBjYXNlICdnJzoKKyAgICAgICAgY2FzZSAnRSc6CisgICAgICAgIGNhc2UgJ0cnOgorICAgICAgICBjYXNlICclJzoKKyAgICAgICAgY2FzZSAnRic6CisgICAgICAgIGNhc2UgJ1wwJzoKKyAgICAgICAgICAgIC8qIFRoZXNlIGFyZSBhbGxvd2VkLiBTZWUgUEVQIDM3OC4qLworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpbnZhbGlkX2NvbW1hX3R5cGUoZm9ybWF0LT50eXBlKTsKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICB9CisgICAgfQorCisgICAgYXNzZXJ0IChmb3JtYXQtPmFsaWduIDw9IDEyNyk7CisgICAgYXNzZXJ0IChmb3JtYXQtPnNpZ24gPD0gMTI3KTsKKyAgICByZXR1cm4gMTsKK30KKworLyogQ2FsY3VsYXRlIHRoZSBwYWRkaW5nIG5lZWRlZC4gKi8KK3N0YXRpYyB2b2lkCitjYWxjX3BhZGRpbmcoUHlfc3NpemVfdCBuY2hhcnMsIFB5X3NzaXplX3Qgd2lkdGgsIFB5X1VDUzQgYWxpZ24sCisgICAgICAgICAgICAgUHlfc3NpemVfdCAqbl9scGFkZGluZywgUHlfc3NpemVfdCAqbl9ycGFkZGluZywKKyAgICAgICAgICAgICBQeV9zc2l6ZV90ICpuX3RvdGFsKQoreworICAgIGlmICh3aWR0aCA+PSAwKSB7CisgICAgICAgIGlmIChuY2hhcnMgPiB3aWR0aCkKKyAgICAgICAgICAgICpuX3RvdGFsID0gbmNoYXJzOworICAgICAgICBlbHNlCisgICAgICAgICAgICAqbl90b3RhbCA9IHdpZHRoOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgLyogbm90IHNwZWNpZmllZCwgdXNlIGFsbCBvZiB0aGUgY2hhcnMgYW5kIG5vIG1vcmUgKi8KKyAgICAgICAgKm5fdG90YWwgPSBuY2hhcnM7CisgICAgfQorCisgICAgLyogRmlndXJlIG91dCBob3cgbXVjaCBsZWFkaW5nIHNwYWNlIHdlIG5lZWQsIGJhc2VkIG9uIHRoZQorICAgICAgIGFsaWduaW5nICovCisgICAgaWYgKGFsaWduID09ICc+JykKKyAgICAgICAgKm5fbHBhZGRpbmcgPSAqbl90b3RhbCAtIG5jaGFyczsKKyAgICBlbHNlIGlmIChhbGlnbiA9PSAnXicpCisgICAgICAgICpuX2xwYWRkaW5nID0gKCpuX3RvdGFsIC0gbmNoYXJzKSAvIDI7CisgICAgZWxzZSBpZiAoYWxpZ24gPT0gJzwnIHx8IGFsaWduID09ICc9JykKKyAgICAgICAgKm5fbHBhZGRpbmcgPSAwOworICAgIGVsc2UgeworICAgICAgICAvKiBXZSBzaG91bGQgbmV2ZXIgaGF2ZSBhbiB1bnNwZWNpZmllZCBhbGlnbm1lbnQuICovCisgICAgICAgICpuX2xwYWRkaW5nID0gMDsKKyAgICAgICAgYXNzZXJ0KDApOworICAgIH0KKworICAgICpuX3JwYWRkaW5nID0gKm5fdG90YWwgLSBuY2hhcnMgLSAqbl9scGFkZGluZzsKK30KKworLyogRG8gdGhlIHBhZGRpbmcsIGFuZCByZXR1cm4gYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBjYWxsZXItc3VwcGxpZWQKKyAgIGNvbnRlbnQgZ29lcy4gKi8KK3N0YXRpYyBQeV9zc2l6ZV90CitmaWxsX3BhZGRpbmcoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLAorICAgICAgICAgICAgIFB5X3NzaXplX3QgbmNoYXJzLAorICAgICAgICAgICAgIFB5X1VDUzQgZmlsbF9jaGFyLCBQeV9zc2l6ZV90IG5fbHBhZGRpbmcsCisgICAgICAgICAgICAgUHlfc3NpemVfdCBuX3JwYWRkaW5nKQoreworICAgIFB5X3NzaXplX3QgcG9zOworCisgICAgLyogUGFkIG9uIGxlZnQuICovCisgICAgaWYgKG5fbHBhZGRpbmcpIHsKKyAgICAgICAgcG9zID0gd3JpdGVyLT5wb3M7CisgICAgICAgIF9QeVVuaWNvZGVfRmFzdEZpbGwod3JpdGVyLT5idWZmZXIsIHBvcywgbl9scGFkZGluZywgZmlsbF9jaGFyKTsKKyAgICB9CisKKyAgICAvKiBQYWQgb24gcmlnaHQuICovCisgICAgaWYgKG5fcnBhZGRpbmcpIHsKKyAgICAgICAgcG9zID0gd3JpdGVyLT5wb3MgKyBuY2hhcnMgKyBuX2xwYWRkaW5nOworICAgICAgICBfUHlVbmljb2RlX0Zhc3RGaWxsKHdyaXRlci0+YnVmZmVyLCBwb3MsIG5fcnBhZGRpbmcsIGZpbGxfY2hhcik7CisgICAgfQorCisgICAgLyogUG9pbnRlciB0byB0aGUgdXNlciBjb250ZW50LiAqLworICAgIHdyaXRlci0+cG9zICs9IG5fbHBhZGRpbmc7CisgICAgcmV0dXJuIDA7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKiogY29tbW9uIHJvdXRpbmVzIGZvciBudW1lcmljIGZvcm1hdHRpbmcgKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworLyogTG9jYWxlIHR5cGUgY29kZXMuICovCisjZGVmaW5lIExUX0NVUlJFTlRfTE9DQUxFIDAKKyNkZWZpbmUgTFRfREVGQVVMVF9MT0NBTEUgMQorI2RlZmluZSBMVF9OT19MT0NBTEUgMgorCisvKiBMb2NhbGUgaW5mbyBuZWVkZWQgZm9yIGZvcm1hdHRpbmcgaW50ZWdlcnMgYW5kIHRoZSBwYXJ0IG9mIGZsb2F0cworICAgYmVmb3JlIGFuZCBpbmNsdWRpbmcgdGhlIGRlY2ltYWwuIE5vdGUgdGhhdCBsb2NhbGVzIG9ubHkgc3VwcG9ydAorICAgOC1iaXQgY2hhcnMsIG5vdCB1bmljb2RlLiAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5T2JqZWN0ICpkZWNpbWFsX3BvaW50OworICAgIFB5T2JqZWN0ICp0aG91c2FuZHNfc2VwOworICAgIGNvbnN0IGNoYXIgKmdyb3VwaW5nOworfSBMb2NhbGVJbmZvOworCisjZGVmaW5lIFNUQVRJQ19MT0NBTEVfSU5GT19JTklUIHswLCAwLCAwfQorCisvKiBkZXNjcmliZXMgdGhlIGxheW91dCBmb3IgYW4gaW50ZWdlciwgc2VlIHRoZSBjb21tZW50IGluCisgICBjYWxjX251bWJlcl93aWR0aHMoKSBmb3IgZGV0YWlscyAqLwordHlwZWRlZiBzdHJ1Y3QgeworICAgIFB5X3NzaXplX3Qgbl9scGFkZGluZzsKKyAgICBQeV9zc2l6ZV90IG5fcHJlZml4OworICAgIFB5X3NzaXplX3Qgbl9zcGFkZGluZzsKKyAgICBQeV9zc2l6ZV90IG5fcnBhZGRpbmc7CisgICAgY2hhciBzaWduOworICAgIFB5X3NzaXplX3Qgbl9zaWduOyAgICAgIC8qIG51bWJlciBvZiBkaWdpdHMgbmVlZGVkIGZvciBzaWduICgwLzEpICovCisgICAgUHlfc3NpemVfdCBuX2dyb3VwZWRfZGlnaXRzOyAvKiBTcGFjZSB0YWtlbiB1cCBieSB0aGUgZGlnaXRzLCBpbmNsdWRpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFueSBncm91cGluZyBjaGFycy4gKi8KKyAgICBQeV9zc2l6ZV90IG5fZGVjaW1hbDsgICAvKiAwIGlmIG9ubHkgYW4gaW50ZWdlciAqLworICAgIFB5X3NzaXplX3Qgbl9yZW1haW5kZXI7IC8qIERpZ2l0cyBpbiBkZWNpbWFsIGFuZC9vciBleHBvbmVudCBwYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGluZyB0aGUgZGVjaW1hbCBpdHNlbGYsIGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlc2VudC4gKi8KKworICAgIC8qIFRoZXNlIDIgYXJlIG5vdCB0aGUgd2lkdGhzIG9mIGZpZWxkcywgYnV0IGFyZSBuZWVkZWQgYnkKKyAgICAgICBTVFJJTkdMSUJfR1JPVVBJTkcuICovCisgICAgUHlfc3NpemVfdCBuX2RpZ2l0czsgICAgLyogVGhlIG51bWJlciBvZiBkaWdpdHMgYmVmb3JlIGEgZGVjaW1hbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIGV4cG9uZW50LiAqLworICAgIFB5X3NzaXplX3Qgbl9taW5fd2lkdGg7IC8qIFRoZSBtaW5fd2lkdGggd2UgdXNlZCB3aGVuIHdlIGNvbXB1dGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG5fZ3JvdXBlZF9kaWdpdHMgd2lkdGguICovCit9IE51bWJlckZpZWxkV2lkdGhzOworCisKKy8qIEdpdmVuIGEgbnVtYmVyIG9mIHRoZSBmb3JtOgorICAgZGlnaXRzW3JlbWFpbmRlcl0KKyAgIHdoZXJlIHB0ciBwb2ludHMgdG8gdGhlIHN0YXJ0IGFuZCBlbmQgcG9pbnRzIHRvIHRoZSBlbmQsIGZpbmQgd2hlcmUKKyAgICB0aGUgaW50ZWdlciBwYXJ0IGVuZHMuIFRoaXMgY291bGQgYmUgYSBkZWNpbWFsLCBhbiBleHBvbmVudCwgYm90aCwKKyAgICBvciBuZWl0aGVyLgorICAgSWYgYSBkZWNpbWFsIHBvaW50IGlzIHByZXNlbnQsIHNldCAqaGFzX2RlY2ltYWwgYW5kIGluY3JlbWVudAorICAgIHJlbWFpbmRlciBiZXlvbmQgaXQuCisgICBSZXN1bHRzIGFyZSB1bmRlZmluZWQgKGJ1dCBzaG91bGRuJ3QgY3Jhc2gpIGZvciBpbXByb3Blcmx5CisgICAgZm9ybWF0dGVkIHN0cmluZ3MuCisqLworc3RhdGljIHZvaWQKK3BhcnNlX251bWJlcihQeU9iamVjdCAqcywgUHlfc3NpemVfdCBwb3MsIFB5X3NzaXplX3QgZW5kLAorICAgICAgICAgICAgIFB5X3NzaXplX3QgKm5fcmVtYWluZGVyLCBpbnQgKmhhc19kZWNpbWFsKQoreworICAgIFB5X3NzaXplX3QgcmVtYWluZGVyOworCisgICAgd2hpbGUgKHBvczxlbmQgJiYgaXNkaWdpdChQeVVuaWNvZGVfUkVBRF9DSEFSKHMsIHBvcykpKQorICAgICAgICArK3BvczsKKyAgICByZW1haW5kZXIgPSBwb3M7CisKKyAgICAvKiBEb2VzIHJlbWFpbmRlciBzdGFydCB3aXRoIGEgZGVjaW1hbCBwb2ludD8gKi8KKyAgICAqaGFzX2RlY2ltYWwgPSBwb3M8ZW5kICYmIFB5VW5pY29kZV9SRUFEX0NIQVIocywgcmVtYWluZGVyKSA9PSAnLic7CisKKyAgICAvKiBTa2lwIHRoZSBkZWNpbWFsIHBvaW50LiAqLworICAgIGlmICgqaGFzX2RlY2ltYWwpCisgICAgICAgIHJlbWFpbmRlcisrOworCisgICAgKm5fcmVtYWluZGVyID0gZW5kIC0gcmVtYWluZGVyOworfQorCisvKiBub3QgYWxsIGZpZWxkcyBvZiBmb3JtYXQgYXJlIHVzZWQuICBmb3IgZXhhbXBsZSwgcHJlY2lzaW9uIGlzCisgICB1bnVzZWQuICBzaG91bGQgdGhpcyB0YWtlIGRpc2NyZXRlIHBhcmFtcyBpbiBvcmRlciB0byBiZSBtb3JlIGNsZWFyCisgICBhYm91dCB3aGF0IGl0IGRvZXM/ICBvciBpcyBwYXNzaW5nIGEgc2luZ2xlIGZvcm1hdCBwYXJhbWV0ZXIgZWFzaWVyCisgICBhbmQgbW9yZSBlZmZpY2llbnQgZW5vdWdoIHRvIGp1c3RpZnkgYSBsaXR0bGUgb2JmdXNjYXRpb24/ICovCitzdGF0aWMgUHlfc3NpemVfdAorY2FsY19udW1iZXJfd2lkdGhzKE51bWJlckZpZWxkV2lkdGhzICpzcGVjLCBQeV9zc2l6ZV90IG5fcHJlZml4LAorICAgICAgICAgICAgICAgICAgIFB5X1VDUzQgc2lnbl9jaGFyLCBQeU9iamVjdCAqbnVtYmVyLCBQeV9zc2l6ZV90IG5fc3RhcnQsCisgICAgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBuX2VuZCwgUHlfc3NpemVfdCBuX3JlbWFpbmRlciwKKyAgICAgICAgICAgICAgICAgICBpbnQgaGFzX2RlY2ltYWwsIGNvbnN0IExvY2FsZUluZm8gKmxvY2FsZSwKKyAgICAgICAgICAgICAgICAgICBjb25zdCBJbnRlcm5hbEZvcm1hdFNwZWMgKmZvcm1hdCwgUHlfVUNTNCAqbWF4Y2hhcikKK3sKKyAgICBQeV9zc2l6ZV90IG5fbm9uX2RpZ2l0X25vbl9wYWRkaW5nOworICAgIFB5X3NzaXplX3Qgbl9wYWRkaW5nOworCisgICAgc3BlYy0+bl9kaWdpdHMgPSBuX2VuZCAtIG5fc3RhcnQgLSBuX3JlbWFpbmRlciAtIChoYXNfZGVjaW1hbD8xOjApOworICAgIHNwZWMtPm5fbHBhZGRpbmcgPSAwOworICAgIHNwZWMtPm5fcHJlZml4ID0gbl9wcmVmaXg7CisgICAgc3BlYy0+bl9kZWNpbWFsID0gaGFzX2RlY2ltYWwgPyBQeVVuaWNvZGVfR0VUX0xFTkdUSChsb2NhbGUtPmRlY2ltYWxfcG9pbnQpIDogMDsKKyAgICBzcGVjLT5uX3JlbWFpbmRlciA9IG5fcmVtYWluZGVyOworICAgIHNwZWMtPm5fc3BhZGRpbmcgPSAwOworICAgIHNwZWMtPm5fcnBhZGRpbmcgPSAwOworICAgIHNwZWMtPnNpZ24gPSAnXDAnOworICAgIHNwZWMtPm5fc2lnbiA9IDA7CisKKyAgICAvKiB0aGUgb3V0cHV0IHdpbGwgbG9vayBsaWtlOgorICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKyAgICAgICB8IDxscGFkZGluZz4gPHNpZ24+IDxwcmVmaXg+IDxzcGFkZGluZz4gPGdyb3VwZWRfZGlnaXRzPiA8ZGVjaW1hbD4gPHJlbWFpbmRlcj4gPHJwYWRkaW5nPiB8CisgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorCisgICAgICAgc2lnbiBpcyBjb21wdXRlZCBmcm9tIGZvcm1hdC0+c2lnbiBhbmQgdGhlIGFjdHVhbAorICAgICAgIHNpZ24gb2YgdGhlIG51bWJlcgorCisgICAgICAgcHJlZml4IGlzIGdpdmVuIChpdCdzIGZvciB0aGUgJzB4JyBwcmVmaXgpCisKKyAgICAgICBkaWdpdHMgaXMgYWxyZWFkeSBrbm93bgorCisgICAgICAgdGhlIHRvdGFsIHdpZHRoIGlzIGVpdGhlciBnaXZlbiwgb3IgY29tcHV0ZWQgZnJvbSB0aGUKKyAgICAgICBhY3R1YWwgZGlnaXRzCisKKyAgICAgICBvbmx5IG9uZSBvZiBscGFkZGluZywgc3BhZGRpbmcsIGFuZCBycGFkZGluZyBjYW4gYmUgbm9uLXplcm8sCisgICAgICAgYW5kIGl0J3MgY2FsY3VsYXRlZCBmcm9tIHRoZSB3aWR0aCBhbmQgb3RoZXIgZmllbGRzCisgICAgKi8KKworICAgIC8qIGNvbXB1dGUgdGhlIHZhcmlvdXMgcGFydHMgd2UncmUgZ29pbmcgdG8gd3JpdGUgKi8KKyAgICBzd2l0Y2ggKGZvcm1hdC0+c2lnbikgeworICAgIGNhc2UgJysnOgorICAgICAgICAvKiBhbHdheXMgcHV0IGEgKyBvciAtICovCisgICAgICAgIHNwZWMtPm5fc2lnbiA9IDE7CisgICAgICAgIHNwZWMtPnNpZ24gPSAoc2lnbl9jaGFyID09ICctJyA/ICctJyA6ICcrJyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgJyAnOgorICAgICAgICBzcGVjLT5uX3NpZ24gPSAxOworICAgICAgICBzcGVjLT5zaWduID0gKHNpZ25fY2hhciA9PSAnLScgPyAnLScgOiAnICcpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICAvKiBOb3Qgc3BlY2lmaWVkLCBvciB0aGUgZGVmYXVsdCAoLSkgKi8KKyAgICAgICAgaWYgKHNpZ25fY2hhciA9PSAnLScpIHsKKyAgICAgICAgICAgIHNwZWMtPm5fc2lnbiA9IDE7CisgICAgICAgICAgICBzcGVjLT5zaWduID0gJy0nOworICAgICAgICB9CisgICAgfQorCisgICAgLyogVGhlIG51bWJlciBvZiBjaGFycyB1c2VkIGZvciBub24tZGlnaXRzIGFuZCBub24tcGFkZGluZy4gKi8KKyAgICBuX25vbl9kaWdpdF9ub25fcGFkZGluZyA9IHNwZWMtPm5fc2lnbiArIHNwZWMtPm5fcHJlZml4ICsgc3BlYy0+bl9kZWNpbWFsICsKKyAgICAgICAgc3BlYy0+bl9yZW1haW5kZXI7CisKKyAgICAvKiBtaW5fd2lkdGggY2FuIGdvIG5lZ2F0aXZlLCB0aGF0J3Mgb2theS4gZm9ybWF0LT53aWR0aCA9PSAtMSBtZWFucworICAgICAgIHdlIGRvbid0IGNhcmUuICovCisgICAgaWYgKGZvcm1hdC0+ZmlsbF9jaGFyID09ICcwJyAmJiBmb3JtYXQtPmFsaWduID09ICc9JykKKyAgICAgICAgc3BlYy0+bl9taW5fd2lkdGggPSBmb3JtYXQtPndpZHRoIC0gbl9ub25fZGlnaXRfbm9uX3BhZGRpbmc7CisgICAgZWxzZQorICAgICAgICBzcGVjLT5uX21pbl93aWR0aCA9IDA7CisKKyAgICBpZiAoc3BlYy0+bl9kaWdpdHMgPT0gMCkKKyAgICAgICAgLyogVGhpcyBjYXNlIG9ubHkgb2NjdXJzIHdoZW4gdXNpbmcgJ2MnIGZvcm1hdHRpbmcsIHdlIG5lZWQKKyAgICAgICAgICAgdG8gc3BlY2lhbCBjYXNlIGl0IGJlY2F1c2UgdGhlIGdyb3VwaW5nIGNvZGUgYWx3YXlzIHdhbnRzCisgICAgICAgICAgIHRvIGhhdmUgYXQgbGVhc3Qgb25lIGNoYXJhY3Rlci4gKi8KKyAgICAgICAgc3BlYy0+bl9ncm91cGVkX2RpZ2l0cyA9IDA7CisgICAgZWxzZSB7CisgICAgICAgIFB5X1VDUzQgZ3JvdXBpbmdfbWF4Y2hhcjsKKyAgICAgICAgc3BlYy0+bl9ncm91cGVkX2RpZ2l0cyA9IF9QeVVuaWNvZGVfSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcoCisgICAgICAgICAgICBOVUxMLCAwLAorICAgICAgICAgICAgMCwgTlVMTCwKKyAgICAgICAgICAgIHNwZWMtPm5fZGlnaXRzLCBzcGVjLT5uX21pbl93aWR0aCwKKyAgICAgICAgICAgIGxvY2FsZS0+Z3JvdXBpbmcsIGxvY2FsZS0+dGhvdXNhbmRzX3NlcCwgJmdyb3VwaW5nX21heGNoYXIpOworICAgICAgICAqbWF4Y2hhciA9IFB5X01BWCgqbWF4Y2hhciwgZ3JvdXBpbmdfbWF4Y2hhcik7CisgICAgfQorCisgICAgLyogR2l2ZW4gdGhlIGRlc2lyZWQgd2lkdGggYW5kIHRoZSB0b3RhbCBvZiBkaWdpdCBhbmQgbm9uLWRpZ2l0CisgICAgICAgc3BhY2Ugd2UgY29uc3VtZSwgc2VlIGlmIHdlIG5lZWQgYW55IHBhZGRpbmcuIGZvcm1hdC0+d2lkdGggY2FuCisgICAgICAgYmUgbmVnYXRpdmUgKG1lYW5pbmcgbm8gcGFkZGluZyksIGJ1dCB0aGlzIGNvZGUgc3RpbGwgd29ya3MgaW4KKyAgICAgICB0aGF0IGNhc2UuICovCisgICAgbl9wYWRkaW5nID0gZm9ybWF0LT53aWR0aCAtCisgICAgICAgICAgICAgICAgICAgICAgICAobl9ub25fZGlnaXRfbm9uX3BhZGRpbmcgKyBzcGVjLT5uX2dyb3VwZWRfZGlnaXRzKTsKKyAgICBpZiAobl9wYWRkaW5nID4gMCkgeworICAgICAgICAvKiBTb21lIHBhZGRpbmcgaXMgbmVlZGVkLiBEZXRlcm1pbmUgaWYgaXQncyBsZWZ0LCBzcGFjZSwgb3IgcmlnaHQuICovCisgICAgICAgIHN3aXRjaCAoZm9ybWF0LT5hbGlnbikgeworICAgICAgICBjYXNlICc8JzoKKyAgICAgICAgICAgIHNwZWMtPm5fcnBhZGRpbmcgPSBuX3BhZGRpbmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAnXic6CisgICAgICAgICAgICBzcGVjLT5uX2xwYWRkaW5nID0gbl9wYWRkaW5nIC8gMjsKKyAgICAgICAgICAgIHNwZWMtPm5fcnBhZGRpbmcgPSBuX3BhZGRpbmcgLSBzcGVjLT5uX2xwYWRkaW5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgJz0nOgorICAgICAgICAgICAgc3BlYy0+bl9zcGFkZGluZyA9IG5fcGFkZGluZzsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICc+JzoKKyAgICAgICAgICAgIHNwZWMtPm5fbHBhZGRpbmcgPSBuX3BhZGRpbmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIC8qIFNob3VsZG4ndCBnZXQgaGVyZSwgYnV0IHRyZWF0IGl0IGFzICc+JyAqLworICAgICAgICAgICAgc3BlYy0+bl9scGFkZGluZyA9IG5fcGFkZGluZzsKKyAgICAgICAgICAgIGFzc2VydCgwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHNwZWMtPm5fbHBhZGRpbmcgfHwgc3BlYy0+bl9zcGFkZGluZyB8fCBzcGVjLT5uX3JwYWRkaW5nKQorICAgICAgICAqbWF4Y2hhciA9IFB5X01BWCgqbWF4Y2hhciwgZm9ybWF0LT5maWxsX2NoYXIpOworCisgICAgaWYgKHNwZWMtPm5fZGVjaW1hbCkKKyAgICAgICAgKm1heGNoYXIgPSBQeV9NQVgoKm1heGNoYXIsIFB5VW5pY29kZV9NQVhfQ0hBUl9WQUxVRShsb2NhbGUtPmRlY2ltYWxfcG9pbnQpKTsKKworICAgIHJldHVybiBzcGVjLT5uX2xwYWRkaW5nICsgc3BlYy0+bl9zaWduICsgc3BlYy0+bl9wcmVmaXggKworICAgICAgICBzcGVjLT5uX3NwYWRkaW5nICsgc3BlYy0+bl9ncm91cGVkX2RpZ2l0cyArIHNwZWMtPm5fZGVjaW1hbCArCisgICAgICAgIHNwZWMtPm5fcmVtYWluZGVyICsgc3BlYy0+bl9ycGFkZGluZzsKK30KKworLyogRmlsbCBpbiB0aGUgZGlnaXQgcGFydHMgb2YgYSBudW1iZXJzJ3Mgc3RyaW5nIHJlcHJlc2VudGF0aW9uLAorICAgYXMgZGV0ZXJtaW5lZCBpbiBjYWxjX251bWJlcl93aWR0aHMoKS4KKyAgIFJldHVybiAtMSBvbiBlcnJvciwgb3IgMCBvbiBzdWNjZXNzLiAqLworc3RhdGljIGludAorZmlsbF9udW1iZXIoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLCBjb25zdCBOdW1iZXJGaWVsZFdpZHRocyAqc3BlYywKKyAgICAgICAgICAgIFB5T2JqZWN0ICpkaWdpdHMsIFB5X3NzaXplX3QgZF9zdGFydCwgUHlfc3NpemVfdCBkX2VuZCwKKyAgICAgICAgICAgIFB5T2JqZWN0ICpwcmVmaXgsIFB5X3NzaXplX3QgcF9zdGFydCwKKyAgICAgICAgICAgIFB5X1VDUzQgZmlsbF9jaGFyLAorICAgICAgICAgICAgTG9jYWxlSW5mbyAqbG9jYWxlLCBpbnQgdG91cHBlcikKK3sKKyAgICAvKiBVc2VkIHRvIGtlZXAgdHJhY2sgb2YgZGlnaXRzLCBkZWNpbWFsLCBhbmQgcmVtYWluZGVyLiAqLworICAgIFB5X3NzaXplX3QgZF9wb3MgPSBkX3N0YXJ0OworICAgIGNvbnN0IGVudW0gUHlVbmljb2RlX0tpbmQga2luZCA9IHdyaXRlci0+a2luZDsKKyAgICBjb25zdCB2b2lkICpkYXRhID0gd3JpdGVyLT5kYXRhOworICAgIFB5X3NzaXplX3QgcjsKKworICAgIGlmIChzcGVjLT5uX2xwYWRkaW5nKSB7CisgICAgICAgIF9QeVVuaWNvZGVfRmFzdEZpbGwod3JpdGVyLT5idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLT5wb3MsIHNwZWMtPm5fbHBhZGRpbmcsIGZpbGxfY2hhcik7CisgICAgICAgIHdyaXRlci0+cG9zICs9IHNwZWMtPm5fbHBhZGRpbmc7CisgICAgfQorICAgIGlmIChzcGVjLT5uX3NpZ24gPT0gMSkgeworICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgd3JpdGVyLT5wb3MsIHNwZWMtPnNpZ24pOworICAgICAgICB3cml0ZXItPnBvcysrOworICAgIH0KKyAgICBpZiAoc3BlYy0+bl9wcmVmaXgpIHsKKyAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMod3JpdGVyLT5idWZmZXIsIHdyaXRlci0+cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXgsIHBfc3RhcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWMtPm5fcHJlZml4KTsKKyAgICAgICAgaWYgKHRvdXBwZXIpIHsKKyAgICAgICAgICAgIFB5X3NzaXplX3QgdDsKKyAgICAgICAgICAgIGZvciAodCA9IDA7IHQgPCBzcGVjLT5uX3ByZWZpeDsgdCsrKSB7CisgICAgICAgICAgICAgICAgUHlfVUNTNCBjID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgd3JpdGVyLT5wb3MgKyB0KTsKKyAgICAgICAgICAgICAgICBjID0gUHlfVE9VUFBFUihjKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQgKGMgPD0gMTI3KTsKKyAgICAgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgd3JpdGVyLT5wb3MgKyB0LCBjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICB3cml0ZXItPnBvcyArPSBzcGVjLT5uX3ByZWZpeDsKKyAgICB9CisgICAgaWYgKHNwZWMtPm5fc3BhZGRpbmcpIHsKKyAgICAgICAgX1B5VW5pY29kZV9GYXN0RmlsbCh3cml0ZXItPmJ1ZmZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZXItPnBvcywgc3BlYy0+bl9zcGFkZGluZywgZmlsbF9jaGFyKTsKKyAgICAgICAgd3JpdGVyLT5wb3MgKz0gc3BlYy0+bl9zcGFkZGluZzsKKyAgICB9CisKKyAgICAvKiBPbmx5IGZvciB0eXBlICdjJyBzcGVjaWFsIGNhc2UsIGl0IGhhcyBubyBkaWdpdHMuICovCisgICAgaWYgKHNwZWMtPm5fZGlnaXRzICE9IDApIHsKKyAgICAgICAgLyogRmlsbCB0aGUgZGlnaXRzIHdpdGggSW5zZXJ0VGhvdXNhbmRzR3JvdXBpbmcuICovCisgICAgICAgIGNoYXIgKnBkaWdpdHM7CisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRFkoZGlnaXRzKSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgcGRpZ2l0cyA9IFB5VW5pY29kZV9EQVRBKGRpZ2l0cyk7CisgICAgICAgIGlmIChQeVVuaWNvZGVfS0lORChkaWdpdHMpIDwga2luZCkgeworICAgICAgICAgICAgcGRpZ2l0cyA9IF9QeVVuaWNvZGVfQXNLaW5kKGRpZ2l0cywga2luZCk7CisgICAgICAgICAgICBpZiAocGRpZ2l0cyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByID0gX1B5VW5pY29kZV9JbnNlcnRUaG91c2FuZHNHcm91cGluZygKKyAgICAgICAgICAgICAgICB3cml0ZXItPmJ1ZmZlciwgd3JpdGVyLT5wb3MsCisgICAgICAgICAgICAgICAgc3BlYy0+bl9ncm91cGVkX2RpZ2l0cywKKyAgICAgICAgICAgICAgICBwZGlnaXRzICsga2luZCAqIGRfcG9zLAorICAgICAgICAgICAgICAgIHNwZWMtPm5fZGlnaXRzLCBzcGVjLT5uX21pbl93aWR0aCwKKyAgICAgICAgICAgICAgICBsb2NhbGUtPmdyb3VwaW5nLCBsb2NhbGUtPnRob3VzYW5kc19zZXAsIE5VTEwpOworICAgICAgICBpZiAociA9PSAtMSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgYXNzZXJ0KHIgPT0gc3BlYy0+bl9ncm91cGVkX2RpZ2l0cyk7CisgICAgICAgIGlmIChQeVVuaWNvZGVfS0lORChkaWdpdHMpIDwga2luZCkKKyAgICAgICAgICAgIFB5TWVtX0ZyZWUocGRpZ2l0cyk7CisgICAgICAgIGRfcG9zICs9IHNwZWMtPm5fZGlnaXRzOworICAgIH0KKyAgICBpZiAodG91cHBlcikgeworICAgICAgICBQeV9zc2l6ZV90IHQ7CisgICAgICAgIGZvciAodCA9IDA7IHQgPCBzcGVjLT5uX2dyb3VwZWRfZGlnaXRzOyB0KyspIHsKKyAgICAgICAgICAgIFB5X1VDUzQgYyA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIHdyaXRlci0+cG9zICsgdCk7CisgICAgICAgICAgICBjID0gUHlfVE9VUFBFUihjKTsKKyAgICAgICAgICAgIGlmIChjID4gMTI3KSB7CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLCAibm9uLWFzY2lpIGdyb3VwZWQgZGlnaXQiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgd3JpdGVyLT5wb3MgKyB0LCBjKTsKKyAgICAgICAgfQorICAgIH0KKyAgICB3cml0ZXItPnBvcyArPSBzcGVjLT5uX2dyb3VwZWRfZGlnaXRzOworCisgICAgaWYgKHNwZWMtPm5fZGVjaW1hbCkgeworICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycygKKyAgICAgICAgICAgIHdyaXRlci0+YnVmZmVyLCB3cml0ZXItPnBvcywKKyAgICAgICAgICAgIGxvY2FsZS0+ZGVjaW1hbF9wb2ludCwgMCwgc3BlYy0+bl9kZWNpbWFsKTsKKyAgICAgICAgd3JpdGVyLT5wb3MgKz0gc3BlYy0+bl9kZWNpbWFsOworICAgICAgICBkX3BvcyArPSAxOworICAgIH0KKworICAgIGlmIChzcGVjLT5uX3JlbWFpbmRlcikgeworICAgICAgICBfUHlVbmljb2RlX0Zhc3RDb3B5Q2hhcmFjdGVycygKKyAgICAgICAgICAgIHdyaXRlci0+YnVmZmVyLCB3cml0ZXItPnBvcywKKyAgICAgICAgICAgIGRpZ2l0cywgZF9wb3MsIHNwZWMtPm5fcmVtYWluZGVyKTsKKyAgICAgICAgd3JpdGVyLT5wb3MgKz0gc3BlYy0+bl9yZW1haW5kZXI7CisgICAgICAgIC8qIGRfcG9zICs9IHNwZWMtPm5fcmVtYWluZGVyOyAqLworICAgIH0KKworICAgIGlmIChzcGVjLT5uX3JwYWRkaW5nKSB7CisgICAgICAgIF9QeVVuaWNvZGVfRmFzdEZpbGwod3JpdGVyLT5idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVyLT5wb3MsIHNwZWMtPm5fcnBhZGRpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbF9jaGFyKTsKKyAgICAgICAgd3JpdGVyLT5wb3MgKz0gc3BlYy0+bl9ycGFkZGluZzsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjaGFyIG5vX2dyb3VwaW5nWzFdID0ge0NIQVJfTUFYfTsKKworLyogRmluZCB0aGUgZGVjaW1hbCBwb2ludCBjaGFyYWN0ZXIocz8pLCB0aG91c2FuZHNfc2VwYXJhdG9yKHM/KSwgYW5kCisgICBncm91cGluZyBkZXNjcmlwdGlvbiwgZWl0aGVyIGZvciB0aGUgY3VycmVudCBsb2NhbGUgaWYgdHlwZSBpcworICAgTFRfQ1VSUkVOVF9MT0NBTEUsIGEgaGFyZC1jb2RlZCBsb2NhbGUgaWYgTFRfREVGQVVMVF9MT0NBTEUsIG9yCisgICBub25lIGlmIExUX05PX0xPQ0FMRS4gKi8KK3N0YXRpYyBpbnQKK2dldF9sb2NhbGVfaW5mbyhpbnQgdHlwZSwgTG9jYWxlSW5mbyAqbG9jYWxlX2luZm8pCit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBMVF9DVVJSRU5UX0xPQ0FMRTogeworICAgICAgICBzdHJ1Y3QgbGNvbnYgKmxvY2FsZV9kYXRhID0gbG9jYWxlY29udigpOworICAgICAgICBsb2NhbGVfaW5mby0+ZGVjaW1hbF9wb2ludCA9IFB5VW5pY29kZV9EZWNvZGVMb2NhbGUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZV9kYXRhLT5kZWNpbWFsX3BvaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgaWYgKGxvY2FsZV9pbmZvLT5kZWNpbWFsX3BvaW50ID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIGxvY2FsZV9pbmZvLT50aG91c2FuZHNfc2VwID0gUHlVbmljb2RlX0RlY29kZUxvY2FsZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlX2RhdGEtPnRob3VzYW5kc19zZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICBpZiAobG9jYWxlX2luZm8tPnRob3VzYW5kc19zZXAgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfREVDUkVGKGxvY2FsZV9pbmZvLT5kZWNpbWFsX3BvaW50KTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBsb2NhbGVfaW5mby0+Z3JvdXBpbmcgPSBsb2NhbGVfZGF0YS0+Z3JvdXBpbmc7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIExUX0RFRkFVTFRfTE9DQUxFOgorICAgICAgICBsb2NhbGVfaW5mby0+ZGVjaW1hbF9wb2ludCA9IFB5VW5pY29kZV9Gcm9tT3JkaW5hbCgnLicpOworICAgICAgICBsb2NhbGVfaW5mby0+dGhvdXNhbmRzX3NlcCA9IFB5VW5pY29kZV9Gcm9tT3JkaW5hbCgnLCcpOworICAgICAgICBpZiAoIWxvY2FsZV9pbmZvLT5kZWNpbWFsX3BvaW50IHx8ICFsb2NhbGVfaW5mby0+dGhvdXNhbmRzX3NlcCkgeworICAgICAgICAgICAgUHlfWERFQ1JFRihsb2NhbGVfaW5mby0+ZGVjaW1hbF9wb2ludCk7CisgICAgICAgICAgICBQeV9YREVDUkVGKGxvY2FsZV9pbmZvLT50aG91c2FuZHNfc2VwKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBsb2NhbGVfaW5mby0+Z3JvdXBpbmcgPSAiXDMiOyAvKiBHcm91cCBldmVyeSAzIGNoYXJhY3RlcnMuICBUaGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGltcGxpY2l0KSB0cmFpbGluZyAwIG1lYW5zIHJlcGVhdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZpbml0ZWx5LiAqLworICAgICAgICBicmVhazsKKyAgICBjYXNlIExUX05PX0xPQ0FMRToKKyAgICAgICAgbG9jYWxlX2luZm8tPmRlY2ltYWxfcG9pbnQgPSBQeVVuaWNvZGVfRnJvbU9yZGluYWwoJy4nKTsKKyAgICAgICAgbG9jYWxlX2luZm8tPnRob3VzYW5kc19zZXAgPSBQeVVuaWNvZGVfTmV3KDAsIDApOworICAgICAgICBpZiAoIWxvY2FsZV9pbmZvLT5kZWNpbWFsX3BvaW50IHx8ICFsb2NhbGVfaW5mby0+dGhvdXNhbmRzX3NlcCkgeworICAgICAgICAgICAgUHlfWERFQ1JFRihsb2NhbGVfaW5mby0+ZGVjaW1hbF9wb2ludCk7CisgICAgICAgICAgICBQeV9YREVDUkVGKGxvY2FsZV9pbmZvLT50aG91c2FuZHNfc2VwKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICBsb2NhbGVfaW5mby0+Z3JvdXBpbmcgPSBub19ncm91cGluZzsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYXNzZXJ0KDApOworICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK2ZyZWVfbG9jYWxlX2luZm8oTG9jYWxlSW5mbyAqbG9jYWxlX2luZm8pCit7CisgICAgUHlfWERFQ1JFRihsb2NhbGVfaW5mby0+ZGVjaW1hbF9wb2ludCk7CisgICAgUHlfWERFQ1JFRihsb2NhbGVfaW5mby0+dGhvdXNhbmRzX3NlcCk7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKiogc3RyaW5nIGZvcm1hdHRpbmcgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludAorZm9ybWF0X3N0cmluZ19pbnRlcm5hbChQeU9iamVjdCAqdmFsdWUsIGNvbnN0IEludGVybmFsRm9ybWF0U3BlYyAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpCit7CisgICAgUHlfc3NpemVfdCBscGFkOworICAgIFB5X3NzaXplX3QgcnBhZDsKKyAgICBQeV9zc2l6ZV90IHRvdGFsOworICAgIFB5X3NzaXplX3QgbGVuOworICAgIGludCByZXN1bHQgPSAtMTsKKyAgICBQeV9VQ1M0IG1heGNoYXI7CisKKyAgICBhc3NlcnQoUHlVbmljb2RlX0lTX1JFQURZKHZhbHVlKSk7CisgICAgbGVuID0gUHlVbmljb2RlX0dFVF9MRU5HVEgodmFsdWUpOworCisgICAgLyogc2lnbiBpcyBub3QgYWxsb3dlZCBvbiBzdHJpbmdzICovCisgICAgaWYgKGZvcm1hdC0+c2lnbiAhPSAnXDAnKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIlNpZ24gbm90IGFsbG93ZWQgaW4gc3RyaW5nIGZvcm1hdCBzcGVjaWZpZXIiKTsKKyAgICAgICAgZ290byBkb25lOworICAgIH0KKworICAgIC8qIGFsdGVybmF0ZSBpcyBub3QgYWxsb3dlZCBvbiBzdHJpbmdzICovCisgICAgaWYgKGZvcm1hdC0+YWx0ZXJuYXRlKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIkFsdGVybmF0ZSBmb3JtICgjKSBub3QgYWxsb3dlZCBpbiBzdHJpbmcgZm9ybWF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZXIiKTsKKyAgICAgICAgZ290byBkb25lOworICAgIH0KKworICAgIC8qICc9JyBhbGlnbm1lbnQgbm90IGFsbG93ZWQgb24gc3RyaW5ncyAqLworICAgIGlmIChmb3JtYXQtPmFsaWduID09ICc9JykgeworICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICInPScgYWxpZ25tZW50IG5vdCBhbGxvd2VkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJpbiBzdHJpbmcgZm9ybWF0IHNwZWNpZmllciIpOworICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorCisgICAgaWYgKGZvcm1hdC0+d2lkdGggPT0gLTEgJiYgZm9ybWF0LT5wcmVjaXNpb24gPT0gLTEpIHsKKyAgICAgICAgLyogRmFzdCBwYXRoICovCisgICAgICAgIHJldHVybiBfUHlVbmljb2RlV3JpdGVyX1dyaXRlU3RyKHdyaXRlciwgdmFsdWUpOworICAgIH0KKworICAgIC8qIGlmIHByZWNpc2lvbiBpcyBzcGVjaWZpZWQsIG91dHB1dCBubyBtb3JlIHRoYXQgZm9ybWF0LnByZWNpc2lvbgorICAgICAgIGNoYXJhY3RlcnMgKi8KKyAgICBpZiAoZm9ybWF0LT5wcmVjaXNpb24gPj0gMCAmJiBsZW4gPj0gZm9ybWF0LT5wcmVjaXNpb24pIHsKKyAgICAgICAgbGVuID0gZm9ybWF0LT5wcmVjaXNpb247CisgICAgfQorCisgICAgY2FsY19wYWRkaW5nKGxlbiwgZm9ybWF0LT53aWR0aCwgZm9ybWF0LT5hbGlnbiwgJmxwYWQsICZycGFkLCAmdG90YWwpOworCisgICAgbWF4Y2hhciA9IF9QeVVuaWNvZGVfRmluZE1heENoYXIodmFsdWUsIDAsIGxlbik7CisgICAgaWYgKGxwYWQgIT0gMCB8fCBycGFkICE9IDApCisgICAgICAgIG1heGNoYXIgPSBQeV9NQVgobWF4Y2hhciwgZm9ybWF0LT5maWxsX2NoYXIpOworCisgICAgLyogYWxsb2NhdGUgdGhlIHJlc3VsdGluZyBzdHJpbmcgKi8KKyAgICBpZiAoX1B5VW5pY29kZVdyaXRlcl9QcmVwYXJlKHdyaXRlciwgdG90YWwsIG1heGNoYXIpID09IC0xKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAvKiBXcml0ZSBpbnRvIHRoYXQgc3BhY2UuIEZpcnN0IHRoZSBwYWRkaW5nLiAqLworICAgIHJlc3VsdCA9IGZpbGxfcGFkZGluZyh3cml0ZXIsIGxlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LT5maWxsX2NoYXI9PSdcMCc/JyAnOmZvcm1hdC0+ZmlsbF9jaGFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBscGFkLCBycGFkKTsKKyAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAvKiBUaGVuIHRoZSBzb3VyY2Ugc3RyaW5nLiAqLworICAgIGlmIChsZW4pIHsKKyAgICAgICAgX1B5VW5pY29kZV9GYXN0Q29weUNoYXJhY3RlcnMod3JpdGVyLT5idWZmZXIsIHdyaXRlci0+cG9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgMCwgbGVuKTsKKyAgICB9CisgICAgd3JpdGVyLT5wb3MgKz0gKGxlbiArIHJwYWQpOworICAgIHJlc3VsdCA9IDA7CisKK2RvbmU6CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqIGxvbmcgZm9ybWF0dGluZyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3R5cGVkZWYgUHlPYmplY3QqCisoKkludE9yTG9uZ1RvU3RyaW5nKShQeU9iamVjdCAqdmFsdWUsIGludCBiYXNlKTsKKworc3RhdGljIGludAorZm9ybWF0X2xvbmdfaW50ZXJuYWwoUHlPYmplY3QgKnZhbHVlLCBjb25zdCBJbnRlcm5hbEZvcm1hdFNwZWMgKmZvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgIF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlcikKK3sKKyAgICBpbnQgcmVzdWx0ID0gLTE7CisgICAgUHlfVUNTNCBtYXhjaGFyID0gMTI3OworICAgIFB5T2JqZWN0ICp0bXAgPSBOVUxMOworICAgIFB5X3NzaXplX3QgaW51bWVyaWNfY2hhcnM7CisgICAgUHlfVUNTNCBzaWduX2NoYXIgPSAnXDAnOworICAgIFB5X3NzaXplX3Qgbl9kaWdpdHM7ICAgICAgIC8qIGNvdW50IG9mIGRpZ2l0cyBuZWVkIGZyb20gdGhlIGNvbXB1dGVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nICovCisgICAgUHlfc3NpemVfdCBuX3JlbWFpbmRlciA9IDA7IC8qIFVzZWQgb25seSBmb3IgJ2MnIGZvcm1hdHRpbmcsIHdoaWNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y2VzIG5vbi1kaWdpdHMgKi8KKyAgICBQeV9zc2l6ZV90IG5fcHJlZml4ID0gMDsgICAvKiBDb3VudCBvZiBwcmVmaXggY2hhcnMsIChlLmcuLCAnMHgnKSAqLworICAgIFB5X3NzaXplX3Qgbl90b3RhbDsKKyAgICBQeV9zc2l6ZV90IHByZWZpeCA9IDA7CisgICAgTnVtYmVyRmllbGRXaWR0aHMgc3BlYzsKKyAgICBsb25nIHg7CisKKyAgICAvKiBMb2NhbGUgc2V0dGluZ3MsIGVpdGhlciBmcm9tIHRoZSBhY3R1YWwgbG9jYWxlIG9yCisgICAgICAgZnJvbSBhIGhhcmQtY29kZSBwc2V1ZG8tbG9jYWxlICovCisgICAgTG9jYWxlSW5mbyBsb2NhbGUgPSBTVEFUSUNfTE9DQUxFX0lORk9fSU5JVDsKKworICAgIC8qIG5vIHByZWNpc2lvbiBhbGxvd2VkIG9uIGludGVnZXJzICovCisgICAgaWYgKGZvcm1hdC0+cHJlY2lzaW9uICE9IC0xKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIlByZWNpc2lvbiBub3QgYWxsb3dlZCBpbiBpbnRlZ2VyIGZvcm1hdCBzcGVjaWZpZXIiKTsKKyAgICAgICAgZ290byBkb25lOworICAgIH0KKworICAgIC8qIHNwZWNpYWwgY2FzZSBmb3IgY2hhcmFjdGVyIGZvcm1hdHRpbmcgKi8KKyAgICBpZiAoZm9ybWF0LT50eXBlID09ICdjJykgeworICAgICAgICAvKiBlcnJvciB0byBzcGVjaWZ5IGEgc2lnbiAqLworICAgICAgICBpZiAoZm9ybWF0LT5zaWduICE9ICdcMCcpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaWduIG5vdCBhbGxvd2VkIHdpdGggaW50ZWdlciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGZvcm1hdCBzcGVjaWZpZXIgJ2MnIik7CisgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgIH0KKworICAgICAgICAvKiB0YWtlbiBmcm9tIHVuaWNvZGVvYmplY3QuYyBmb3JtYXRjaGFyKCkgKi8KKyAgICAgICAgLyogSW50ZWdlciBpbnB1dCB0cnVuY2F0ZWQgdG8gYSBjaGFyYWN0ZXIgKi8KKyAgICAgICAgeCA9IFB5TG9uZ19Bc0xvbmcodmFsdWUpOworICAgICAgICBpZiAoeCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgZ290byBkb25lOworICAgICAgICBpZiAoeCA8IDAgfHwgeCA+IDB4MTBmZmZmKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfT3ZlcmZsb3dFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJWMgYXJnIG5vdCBpbiByYW5nZSgweDExMDAwMCkiKTsKKyAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgfQorICAgICAgICB0bXAgPSBQeVVuaWNvZGVfRnJvbU9yZGluYWwoeCk7CisgICAgICAgIGludW1lcmljX2NoYXJzID0gMDsKKyAgICAgICAgbl9kaWdpdHMgPSAxOworICAgICAgICBtYXhjaGFyID0gUHlfTUFYKG1heGNoYXIsIChQeV9VQ1M0KXgpOworCisgICAgICAgIC8qIEFzIGEgc29ydC1vZiBoYWNrLCB3ZSB0ZWxsIGNhbGNfbnVtYmVyX3dpZHRocyB0aGF0IHdlIG9ubHkKKyAgICAgICAgICAgaGF2ZSAicmVtYWluZGVyIiBjaGFyYWN0ZXJzLiBjYWxjX251bWJlcl93aWR0aHMgdGhpbmtzCisgICAgICAgICAgIHRoZXNlIGFyZSBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3QgZ2V0IGZvcm1hdHRlZCwgb25seSBjb3BpZWQKKyAgICAgICAgICAgaW50byB0aGUgb3V0cHV0IHN0cmluZy4gV2UgZG8gdGhpcyBmb3IgJ2MnIGZvcm1hdHRpbmcsCisgICAgICAgICAgIGJlY2F1c2UgdGhlIGNoYXJhY3RlcnMgYXJlIGxpa2VseSB0byBiZSBub24tZGlnaXRzLiAqLworICAgICAgICBuX3JlbWFpbmRlciA9IDE7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBpbnQgYmFzZTsKKyAgICAgICAgaW50IGxlYWRpbmdfY2hhcnNfdG9fc2tpcCA9IDA7ICAvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBhZGRlZCBieQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5TnVtYmVyX1RvQmFzZSB0aGF0IHdlIHdhbnQgdG8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwIG92ZXIuICovCisKKyAgICAgICAgLyogQ29tcHV0ZSB0aGUgYmFzZSBhbmQgaG93IG1hbnkgY2hhcmFjdGVycyB3aWxsIGJlIGFkZGVkIGJ5CisgICAgICAgICAgIFB5TnVtYmVyX1RvQmFzZSAqLworICAgICAgICBzd2l0Y2ggKGZvcm1hdC0+dHlwZSkgeworICAgICAgICBjYXNlICdiJzoKKyAgICAgICAgICAgIGJhc2UgPSAyOworICAgICAgICAgICAgbGVhZGluZ19jaGFyc190b19za2lwID0gMjsgLyogMGIgKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICdvJzoKKyAgICAgICAgICAgIGJhc2UgPSA4OworICAgICAgICAgICAgbGVhZGluZ19jaGFyc190b19za2lwID0gMjsgLyogMG8gKi8KKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICd4JzoKKyAgICAgICAgY2FzZSAnWCc6CisgICAgICAgICAgICBiYXNlID0gMTY7CisgICAgICAgICAgICBsZWFkaW5nX2NoYXJzX3RvX3NraXAgPSAyOyAvKiAweCAqLworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6ICAvKiBzaG91bGRuJ3QgYmUgbmVlZGVkLCBidXQgc3RvcHMgYSBjb21waWxlciB3YXJuaW5nICovCisgICAgICAgIGNhc2UgJ2QnOgorICAgICAgICBjYXNlICduJzoKKyAgICAgICAgICAgIGJhc2UgPSAxMDsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGZvcm1hdC0+c2lnbiAhPSAnKycgJiYgZm9ybWF0LT5zaWduICE9ICcgJworICAgICAgICAgICAgJiYgZm9ybWF0LT53aWR0aCA9PSAtMQorICAgICAgICAgICAgJiYgZm9ybWF0LT50eXBlICE9ICdYJyAmJiBmb3JtYXQtPnR5cGUgIT0gJ24nCisgICAgICAgICAgICAmJiAhZm9ybWF0LT50aG91c2FuZHNfc2VwYXJhdG9ycworICAgICAgICAgICAgJiYgUHlMb25nX0NoZWNrRXhhY3QodmFsdWUpKQorICAgICAgICB7CisgICAgICAgICAgICAvKiBGYXN0IHBhdGggKi8KKyAgICAgICAgICAgIHJldHVybiBfUHlMb25nX0Zvcm1hdFdyaXRlcih3cml0ZXIsIHZhbHVlLCBiYXNlLCBmb3JtYXQtPmFsdGVybmF0ZSk7CisgICAgICAgIH0KKworICAgICAgICAvKiBUaGUgbnVtYmVyIG9mIHByZWZpeCBjaGFycyBpcyB0aGUgc2FtZSBhcyB0aGUgbGVhZGluZworICAgICAgICAgICBjaGFycyB0byBza2lwICovCisgICAgICAgIGlmIChmb3JtYXQtPmFsdGVybmF0ZSkKKyAgICAgICAgICAgIG5fcHJlZml4ID0gbGVhZGluZ19jaGFyc190b19za2lwOworCisgICAgICAgIC8qIERvIHRoZSBoYXJkIHBhcnQsIGNvbnZlcnRpbmcgdG8gYSBzdHJpbmcgaW4gYSBnaXZlbiBiYXNlICovCisgICAgICAgIHRtcCA9IF9QeUxvbmdfRm9ybWF0KHZhbHVlLCBiYXNlKTsKKyAgICAgICAgaWYgKHRtcCA9PSBOVUxMIHx8IFB5VW5pY29kZV9SRUFEWSh0bXApID09IC0xKQorICAgICAgICAgICAgZ290byBkb25lOworCisgICAgICAgIGludW1lcmljX2NoYXJzID0gMDsKKyAgICAgICAgbl9kaWdpdHMgPSBQeVVuaWNvZGVfR0VUX0xFTkdUSCh0bXApOworCisgICAgICAgIHByZWZpeCA9IGludW1lcmljX2NoYXJzOworCisgICAgICAgIC8qIElzIGEgc2lnbiBjaGFyYWN0ZXIgcHJlc2VudCBpbiB0aGUgb3V0cHV0PyAgSWYgc28sIHJlbWVtYmVyIGl0CisgICAgICAgICAgIGFuZCBza2lwIGl0ICovCisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRF9DSEFSKHRtcCwgaW51bWVyaWNfY2hhcnMpID09ICctJykgeworICAgICAgICAgICAgc2lnbl9jaGFyID0gJy0nOworICAgICAgICAgICAgKytwcmVmaXg7CisgICAgICAgICAgICArK2xlYWRpbmdfY2hhcnNfdG9fc2tpcDsKKyAgICAgICAgfQorCisgICAgICAgIC8qIFNraXAgb3ZlciB0aGUgbGVhZGluZyBjaGFycyAoMHgsIDBiLCBldGMuKSAqLworICAgICAgICBuX2RpZ2l0cyAtPSBsZWFkaW5nX2NoYXJzX3RvX3NraXA7CisgICAgICAgIGludW1lcmljX2NoYXJzICs9IGxlYWRpbmdfY2hhcnNfdG9fc2tpcDsKKyAgICB9CisKKyAgICAvKiBEZXRlcm1pbmUgdGhlIGdyb3VwaW5nLCBzZXBhcmF0b3IsIGFuZCBkZWNpbWFsIHBvaW50LCBpZiBhbnkuICovCisgICAgaWYgKGdldF9sb2NhbGVfaW5mbyhmb3JtYXQtPnR5cGUgPT0gJ24nID8gTFRfQ1VSUkVOVF9MT0NBTEUgOgorICAgICAgICAgICAgICAgICAgICAgICAgKGZvcm1hdC0+dGhvdXNhbmRzX3NlcGFyYXRvcnMgPworICAgICAgICAgICAgICAgICAgICAgICAgIExUX0RFRkFVTFRfTE9DQUxFIDoKKyAgICAgICAgICAgICAgICAgICAgICAgICBMVF9OT19MT0NBTEUpLAorICAgICAgICAgICAgICAgICAgICAgICAgJmxvY2FsZSkgPT0gLTEpCisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIC8qIENhbGN1bGF0ZSBob3cgbXVjaCBtZW1vcnkgd2UnbGwgbmVlZC4gKi8KKyAgICBuX3RvdGFsID0gY2FsY19udW1iZXJfd2lkdGhzKCZzcGVjLCBuX3ByZWZpeCwgc2lnbl9jaGFyLCB0bXAsIGludW1lcmljX2NoYXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW51bWVyaWNfY2hhcnMgKyBuX2RpZ2l0cywgbl9yZW1haW5kZXIsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbG9jYWxlLCBmb3JtYXQsICZtYXhjaGFyKTsKKworICAgIC8qIEFsbG9jYXRlIHRoZSBtZW1vcnkuICovCisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSh3cml0ZXIsIG5fdG90YWwsIG1heGNoYXIpID09IC0xKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAvKiBQb3B1bGF0ZSB0aGUgbWVtb3J5LiAqLworICAgIHJlc3VsdCA9IGZpbGxfbnVtYmVyKHdyaXRlciwgJnNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgdG1wLCBpbnVtZXJpY19jaGFycywgaW51bWVyaWNfY2hhcnMgKyBuX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICB0bXAsIHByZWZpeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQtPmZpbGxfY2hhciA9PSAnXDAnID8gJyAnIDogZm9ybWF0LT5maWxsX2NoYXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgJmxvY2FsZSwgZm9ybWF0LT50eXBlID09ICdYJyk7CisKK2RvbmU6CisgICAgUHlfWERFQ1JFRih0bXApOworICAgIGZyZWVfbG9jYWxlX2luZm8oJmxvY2FsZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKiBmbG9hdCBmb3JtYXR0aW5nICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBtdWNoIG9mIHRoaXMgaXMgdGFrZW4gZnJvbSB1bmljb2Rlb2JqZWN0LmMgKi8KK3N0YXRpYyBpbnQKK2Zvcm1hdF9mbG9hdF9pbnRlcm5hbChQeU9iamVjdCAqdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgY29uc3QgSW50ZXJuYWxGb3JtYXRTcGVjICpmb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyKQoreworICAgIGNoYXIgKmJ1ZiA9IE5VTEw7ICAgICAgIC8qIGJ1ZmZlciByZXR1cm5lZCBmcm9tIFB5T1NfZG91YmxlX3RvX3N0cmluZyAqLworICAgIFB5X3NzaXplX3Qgbl9kaWdpdHM7CisgICAgUHlfc3NpemVfdCBuX3JlbWFpbmRlcjsKKyAgICBQeV9zc2l6ZV90IG5fdG90YWw7CisgICAgaW50IGhhc19kZWNpbWFsOworICAgIGRvdWJsZSB2YWw7CisgICAgUHlfc3NpemVfdCBwcmVjaXNpb24gPSBmb3JtYXQtPnByZWNpc2lvbjsKKyAgICBQeV9zc2l6ZV90IGRlZmF1bHRfcHJlY2lzaW9uID0gNjsKKyAgICBQeV9VQ1M0IHR5cGUgPSBmb3JtYXQtPnR5cGU7CisgICAgaW50IGFkZF9wY3QgPSAwOworICAgIFB5X3NzaXplX3QgaW5kZXg7CisgICAgTnVtYmVyRmllbGRXaWR0aHMgc3BlYzsKKyAgICBpbnQgZmxhZ3MgPSAwOworICAgIGludCByZXN1bHQgPSAtMTsKKyAgICBQeV9VQ1M0IG1heGNoYXIgPSAxMjc7CisgICAgUHlfVUNTNCBzaWduX2NoYXIgPSAnXDAnOworICAgIGludCBmbG9hdF90eXBlOyAvKiBVc2VkIHRvIHNlZSBpZiB3ZSBoYXZlIGEgbmFuLCBpbmYsIG9yIHJlZ3VsYXIgZmxvYXQuICovCisgICAgUHlPYmplY3QgKnVuaWNvZGVfdG1wID0gTlVMTDsKKworICAgIC8qIExvY2FsZSBzZXR0aW5ncywgZWl0aGVyIGZyb20gdGhlIGFjdHVhbCBsb2NhbGUgb3IKKyAgICAgICBmcm9tIGEgaGFyZC1jb2RlIHBzZXVkby1sb2NhbGUgKi8KKyAgICBMb2NhbGVJbmZvIGxvY2FsZSA9IFNUQVRJQ19MT0NBTEVfSU5GT19JTklUOworCisgICAgaWYgKGZvcm1hdC0+YWx0ZXJuYXRlKQorICAgICAgICBmbGFncyB8PSBQeV9EVFNGX0FMVDsKKworICAgIGlmICh0eXBlID09ICdcMCcpIHsKKyAgICAgICAgLyogT21pdHRlZCB0eXBlIHNwZWNpZmllci4gIEJlaGF2ZXMgaW4gdGhlIHNhbWUgd2F5IGFzIHJlcHIoeCkKKyAgICAgICAgICAgYW5kIHN0cih4KSBpZiBubyBwcmVjaXNpb24gaXMgZ2l2ZW4sIGVsc2UgbGlrZSAnZycsIGJ1dCB3aXRoCisgICAgICAgICAgIGF0IGxlYXN0IG9uZSBkaWdpdCBhZnRlciB0aGUgZGVjaW1hbCBwb2ludC4gKi8KKyAgICAgICAgZmxhZ3MgfD0gUHlfRFRTRl9BRERfRE9UXzA7CisgICAgICAgIHR5cGUgPSAncic7CisgICAgICAgIGRlZmF1bHRfcHJlY2lzaW9uID0gMDsKKyAgICB9CisKKyAgICBpZiAodHlwZSA9PSAnbicpCisgICAgICAgIC8qICduJyBpcyB0aGUgc2FtZSBhcyAnZycsIGV4Y2VwdCBmb3IgdGhlIGxvY2FsZSB1c2VkIHRvCisgICAgICAgICAgIGZvcm1hdCB0aGUgcmVzdWx0LiBXZSB0YWtlIGNhcmUgb2YgdGhhdCBsYXRlci4gKi8KKyAgICAgICAgdHlwZSA9ICdnJzsKKworICAgIHZhbCA9IFB5RmxvYXRfQXNEb3VibGUodmFsdWUpOworICAgIGlmICh2YWwgPT0gLTEuMCAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBpZiAodHlwZSA9PSAnJScpIHsKKyAgICAgICAgdHlwZSA9ICdmJzsKKyAgICAgICAgdmFsICo9IDEwMDsKKyAgICAgICAgYWRkX3BjdCA9IDE7CisgICAgfQorCisgICAgaWYgKHByZWNpc2lvbiA8IDApCisgICAgICAgIHByZWNpc2lvbiA9IGRlZmF1bHRfcHJlY2lzaW9uOworICAgIGVsc2UgaWYgKHR5cGUgPT0gJ3InKQorICAgICAgICB0eXBlID0gJ2cnOworCisgICAgLyogQ2FzdCAidHlwZSIsIGJlY2F1c2UgaWYgd2UncmUgaW4gdW5pY29kZSB3ZSBuZWVkIHRvIHBhc3MgYQorICAgICAgIDgtYml0IGNoYXIuIFRoaXMgaXMgc2FmZSwgYmVjYXVzZSB3ZSd2ZSByZXN0cmljdGVkIHdoYXQgInR5cGUiCisgICAgICAgY2FuIGJlLiAqLworICAgIGJ1ZiA9IFB5T1NfZG91YmxlX3RvX3N0cmluZyh2YWwsIChjaGFyKXR5cGUsIHByZWNpc2lvbiwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmbG9hdF90eXBlKTsKKyAgICBpZiAoYnVmID09IE5VTEwpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBuX2RpZ2l0cyA9IHN0cmxlbihidWYpOworCisgICAgaWYgKGFkZF9wY3QpIHsKKyAgICAgICAgLyogV2Uga25vdyB0aGF0IGJ1ZiBoYXMgYSB0cmFpbGluZyB6ZXJvIChzaW5jZSB3ZSBqdXN0IGNhbGxlZAorICAgICAgICAgICBzdHJsZW4oKSBvbiBpdCksIGFuZCB3ZSBkb24ndCB1c2UgdGhhdCBmYWN0IGFueSBtb3JlLiBTbyB3ZQorICAgICAgICAgICBjYW4ganVzdCB3cml0ZSBvdmVyIHRoZSB0cmFpbGluZyB6ZXJvLiAqLworICAgICAgICBidWZbbl9kaWdpdHNdID0gJyUnOworICAgICAgICBuX2RpZ2l0cyArPSAxOworICAgIH0KKworICAgIC8qIFNpbmNlIHRoZXJlIGlzIG5vIHVuaWNvZGUgdmVyc2lvbiBvZiBQeU9TX2RvdWJsZV90b19zdHJpbmcsCisgICAgICAganVzdCB1c2UgdGhlIDggYml0IHZlcnNpb24gYW5kIHRoZW4gY29udmVydCB0byB1bmljb2RlLiAqLworICAgIHVuaWNvZGVfdG1wID0gX1B5VW5pY29kZV9Gcm9tQVNDSUkoYnVmLCBuX2RpZ2l0cyk7CisgICAgUHlNZW1fRnJlZShidWYpOworICAgIGlmICh1bmljb2RlX3RtcCA9PSBOVUxMKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICBpZiAoZm9ybWF0LT5zaWduICE9ICcrJyAmJiBmb3JtYXQtPnNpZ24gIT0gJyAnCisgICAgICAgICYmIGZvcm1hdC0+d2lkdGggPT0gLTEKKyAgICAgICAgJiYgZm9ybWF0LT50eXBlICE9ICduJworICAgICAgICAmJiAhZm9ybWF0LT50aG91c2FuZHNfc2VwYXJhdG9ycykKKyAgICB7CisgICAgICAgIC8qIEZhc3QgcGF0aCAqLworICAgICAgICByZXN1bHQgPSBfUHlVbmljb2RlV3JpdGVyX1dyaXRlU3RyKHdyaXRlciwgdW5pY29kZV90bXApOworICAgICAgICBQeV9ERUNSRUYodW5pY29kZV90bXApOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIC8qIElzIGEgc2lnbiBjaGFyYWN0ZXIgcHJlc2VudCBpbiB0aGUgb3V0cHV0PyAgSWYgc28sIHJlbWVtYmVyIGl0CisgICAgICAgYW5kIHNraXAgaXQgKi8KKyAgICBpbmRleCA9IDA7CisgICAgaWYgKFB5VW5pY29kZV9SRUFEX0NIQVIodW5pY29kZV90bXAsIGluZGV4KSA9PSAnLScpIHsKKyAgICAgICAgc2lnbl9jaGFyID0gJy0nOworICAgICAgICArK2luZGV4OworICAgICAgICAtLW5fZGlnaXRzOworICAgIH0KKworICAgIC8qIERldGVybWluZSBpZiB3ZSBoYXZlIGFueSAicmVtYWluZGVyIiAoYWZ0ZXIgdGhlIGRpZ2l0cywgbWlnaHQgaW5jbHVkZQorICAgICAgIGRlY2ltYWwgb3IgZXhwb25lbnQgb3IgYm90aCAob3IgbmVpdGhlcikpICovCisgICAgcGFyc2VfbnVtYmVyKHVuaWNvZGVfdG1wLCBpbmRleCwgaW5kZXggKyBuX2RpZ2l0cywgJm5fcmVtYWluZGVyLCAmaGFzX2RlY2ltYWwpOworCisgICAgLyogRGV0ZXJtaW5lIHRoZSBncm91cGluZywgc2VwYXJhdG9yLCBhbmQgZGVjaW1hbCBwb2ludCwgaWYgYW55LiAqLworICAgIGlmIChnZXRfbG9jYWxlX2luZm8oZm9ybWF0LT50eXBlID09ICduJyA/IExUX0NVUlJFTlRfTE9DQUxFIDoKKyAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQtPnRob3VzYW5kc19zZXBhcmF0b3JzID8KKyAgICAgICAgICAgICAgICAgICAgICAgICBMVF9ERUZBVUxUX0xPQ0FMRSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgTFRfTk9fTE9DQUxFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICZsb2NhbGUpID09IC0xKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAvKiBDYWxjdWxhdGUgaG93IG11Y2ggbWVtb3J5IHdlJ2xsIG5lZWQuICovCisgICAgbl90b3RhbCA9IGNhbGNfbnVtYmVyX3dpZHRocygmc3BlYywgMCwgc2lnbl9jaGFyLCB1bmljb2RlX3RtcCwgaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCArIG5fZGlnaXRzLCBuX3JlbWFpbmRlciwgaGFzX2RlY2ltYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbG9jYWxlLCBmb3JtYXQsICZtYXhjaGFyKTsKKworICAgIC8qIEFsbG9jYXRlIHRoZSBtZW1vcnkuICovCisgICAgaWYgKF9QeVVuaWNvZGVXcml0ZXJfUHJlcGFyZSh3cml0ZXIsIG5fdG90YWwsIG1heGNoYXIpID09IC0xKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAvKiBQb3B1bGF0ZSB0aGUgbWVtb3J5LiAqLworICAgIHJlc3VsdCA9IGZpbGxfbnVtYmVyKHdyaXRlciwgJnNwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgdW5pY29kZV90bXAsIGluZGV4LCBpbmRleCArIG5fZGlnaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LT5maWxsX2NoYXIgPT0gJ1wwJyA/ICcgJyA6IGZvcm1hdC0+ZmlsbF9jaGFyLAorICAgICAgICAgICAgICAgICAgICAgICAgICZsb2NhbGUsIDApOworCitkb25lOgorICAgIFB5X0RFQ1JFRih1bmljb2RlX3RtcCk7CisgICAgZnJlZV9sb2NhbGVfaW5mbygmbG9jYWxlKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqKioqKioqKioqIGNvbXBsZXggZm9ybWF0dGluZyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK3N0YXRpYyBpbnQKK2Zvcm1hdF9jb21wbGV4X2ludGVybmFsKFB5T2JqZWN0ICp2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEludGVybmFsRm9ybWF0U3BlYyAqZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyKQoreworICAgIGRvdWJsZSByZTsKKyAgICBkb3VibGUgaW07CisgICAgY2hhciAqcmVfYnVmID0gTlVMTDsgICAgICAgLyogYnVmZmVyIHJldHVybmVkIGZyb20gUHlPU19kb3VibGVfdG9fc3RyaW5nICovCisgICAgY2hhciAqaW1fYnVmID0gTlVMTDsgICAgICAgLyogYnVmZmVyIHJldHVybmVkIGZyb20gUHlPU19kb3VibGVfdG9fc3RyaW5nICovCisKKyAgICBJbnRlcm5hbEZvcm1hdFNwZWMgdG1wX2Zvcm1hdCA9ICpmb3JtYXQ7CisgICAgUHlfc3NpemVfdCBuX3JlX2RpZ2l0czsKKyAgICBQeV9zc2l6ZV90IG5faW1fZGlnaXRzOworICAgIFB5X3NzaXplX3Qgbl9yZV9yZW1haW5kZXI7CisgICAgUHlfc3NpemVfdCBuX2ltX3JlbWFpbmRlcjsKKyAgICBQeV9zc2l6ZV90IG5fcmVfdG90YWw7CisgICAgUHlfc3NpemVfdCBuX2ltX3RvdGFsOworICAgIGludCByZV9oYXNfZGVjaW1hbDsKKyAgICBpbnQgaW1faGFzX2RlY2ltYWw7CisgICAgUHlfc3NpemVfdCBwcmVjaXNpb24gPSBmb3JtYXQtPnByZWNpc2lvbjsKKyAgICBQeV9zc2l6ZV90IGRlZmF1bHRfcHJlY2lzaW9uID0gNjsKKyAgICBQeV9VQ1M0IHR5cGUgPSBmb3JtYXQtPnR5cGU7CisgICAgUHlfc3NpemVfdCBpX3JlOworICAgIFB5X3NzaXplX3QgaV9pbTsKKyAgICBOdW1iZXJGaWVsZFdpZHRocyByZV9zcGVjOworICAgIE51bWJlckZpZWxkV2lkdGhzIGltX3NwZWM7CisgICAgaW50IGZsYWdzID0gMDsKKyAgICBpbnQgcmVzdWx0ID0gLTE7CisgICAgUHlfVUNTNCBtYXhjaGFyID0gMTI3OworICAgIGVudW0gUHlVbmljb2RlX0tpbmQgcmtpbmQ7CisgICAgdm9pZCAqcmRhdGE7CisgICAgUHlfVUNTNCByZV9zaWduX2NoYXIgPSAnXDAnOworICAgIFB5X1VDUzQgaW1fc2lnbl9jaGFyID0gJ1wwJzsKKyAgICBpbnQgcmVfZmxvYXRfdHlwZTsgLyogVXNlZCB0byBzZWUgaWYgd2UgaGF2ZSBhIG5hbiwgaW5mLCBvciByZWd1bGFyIGZsb2F0LiAqLworICAgIGludCBpbV9mbG9hdF90eXBlOworICAgIGludCBhZGRfcGFyZW5zID0gMDsKKyAgICBpbnQgc2tpcF9yZSA9IDA7CisgICAgUHlfc3NpemVfdCBscGFkOworICAgIFB5X3NzaXplX3QgcnBhZDsKKyAgICBQeV9zc2l6ZV90IHRvdGFsOworICAgIFB5T2JqZWN0ICpyZV91bmljb2RlX3RtcCA9IE5VTEw7CisgICAgUHlPYmplY3QgKmltX3VuaWNvZGVfdG1wID0gTlVMTDsKKworICAgIC8qIExvY2FsZSBzZXR0aW5ncywgZWl0aGVyIGZyb20gdGhlIGFjdHVhbCBsb2NhbGUgb3IKKyAgICAgICBmcm9tIGEgaGFyZC1jb2RlIHBzZXVkby1sb2NhbGUgKi8KKyAgICBMb2NhbGVJbmZvIGxvY2FsZSA9IFNUQVRJQ19MT0NBTEVfSU5GT19JTklUOworCisgICAgLyogWmVybyBwYWRkaW5nIGlzIG5vdCBhbGxvd2VkLiAqLworICAgIGlmIChmb3JtYXQtPmZpbGxfY2hhciA9PSAnMCcpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiWmVybyBwYWRkaW5nIGlzIG5vdCBhbGxvd2VkIGluIGNvbXBsZXggZm9ybWF0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJzcGVjaWZpZXIiKTsKKyAgICAgICAgZ290byBkb25lOworICAgIH0KKworICAgIC8qIE5laXRoZXIgaXMgJz0nIGFsaWdubWVudCAuICovCisgICAgaWYgKGZvcm1hdC0+YWxpZ24gPT0gJz0nKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgIic9JyBhbGlnbm1lbnQgZmxhZyBpcyBub3QgYWxsb3dlZCBpbiBjb21wbGV4IGZvcm1hdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAic3BlY2lmaWVyIik7CisgICAgICAgIGdvdG8gZG9uZTsKKyAgICB9CisKKyAgICByZSA9IFB5Q29tcGxleF9SZWFsQXNEb3VibGUodmFsdWUpOworICAgIGlmIChyZSA9PSAtMS4wICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBpbSA9IFB5Q29tcGxleF9JbWFnQXNEb3VibGUodmFsdWUpOworICAgIGlmIChpbSA9PSAtMS4wICYmIFB5RXJyX09jY3VycmVkKCkpCisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIGlmIChmb3JtYXQtPmFsdGVybmF0ZSkKKyAgICAgICAgZmxhZ3MgfD0gUHlfRFRTRl9BTFQ7CisKKyAgICBpZiAodHlwZSA9PSAnXDAnKSB7CisgICAgICAgIC8qIE9taXR0ZWQgdHlwZSBzcGVjaWZpZXIuIFNob3VsZCBiZSBsaWtlIHN0cihzZWxmKS4gKi8KKyAgICAgICAgdHlwZSA9ICdyJzsKKyAgICAgICAgZGVmYXVsdF9wcmVjaXNpb24gPSAwOworICAgICAgICBpZiAocmUgPT0gMC4wICYmIGNvcHlzaWduKDEuMCwgcmUpID09IDEuMCkKKyAgICAgICAgICAgIHNraXBfcmUgPSAxOworICAgICAgICBlbHNlCisgICAgICAgICAgICBhZGRfcGFyZW5zID0gMTsKKyAgICB9CisKKyAgICBpZiAodHlwZSA9PSAnbicpCisgICAgICAgIC8qICduJyBpcyB0aGUgc2FtZSBhcyAnZycsIGV4Y2VwdCBmb3IgdGhlIGxvY2FsZSB1c2VkIHRvCisgICAgICAgICAgIGZvcm1hdCB0aGUgcmVzdWx0LiBXZSB0YWtlIGNhcmUgb2YgdGhhdCBsYXRlci4gKi8KKyAgICAgICAgdHlwZSA9ICdnJzsKKworICAgIGlmIChwcmVjaXNpb24gPCAwKQorICAgICAgICBwcmVjaXNpb24gPSBkZWZhdWx0X3ByZWNpc2lvbjsKKyAgICBlbHNlIGlmICh0eXBlID09ICdyJykKKyAgICAgICAgdHlwZSA9ICdnJzsKKworICAgIC8qIENhc3QgInR5cGUiLCBiZWNhdXNlIGlmIHdlJ3JlIGluIHVuaWNvZGUgd2UgbmVlZCB0byBwYXNzIGEKKyAgICAgICA4LWJpdCBjaGFyLiBUaGlzIGlzIHNhZmUsIGJlY2F1c2Ugd2UndmUgcmVzdHJpY3RlZCB3aGF0ICJ0eXBlIgorICAgICAgIGNhbiBiZS4gKi8KKyAgICByZV9idWYgPSBQeU9TX2RvdWJsZV90b19zdHJpbmcocmUsIChjaGFyKXR5cGUsIHByZWNpc2lvbiwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZV9mbG9hdF90eXBlKTsKKyAgICBpZiAocmVfYnVmID09IE5VTEwpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBpbV9idWYgPSBQeU9TX2RvdWJsZV90b19zdHJpbmcoaW0sIChjaGFyKXR5cGUsIHByZWNpc2lvbiwgZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbV9mbG9hdF90eXBlKTsKKyAgICBpZiAoaW1fYnVmID09IE5VTEwpCisgICAgICAgIGdvdG8gZG9uZTsKKworICAgIG5fcmVfZGlnaXRzID0gc3RybGVuKHJlX2J1Zik7CisgICAgbl9pbV9kaWdpdHMgPSBzdHJsZW4oaW1fYnVmKTsKKworICAgIC8qIFNpbmNlIHRoZXJlIGlzIG5vIHVuaWNvZGUgdmVyc2lvbiBvZiBQeU9TX2RvdWJsZV90b19zdHJpbmcsCisgICAgICAganVzdCB1c2UgdGhlIDggYml0IHZlcnNpb24gYW5kIHRoZW4gY29udmVydCB0byB1bmljb2RlLiAqLworICAgIHJlX3VuaWNvZGVfdG1wID0gX1B5VW5pY29kZV9Gcm9tQVNDSUkocmVfYnVmLCBuX3JlX2RpZ2l0cyk7CisgICAgaWYgKHJlX3VuaWNvZGVfdG1wID09IE5VTEwpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBpX3JlID0gMDsKKworICAgIGltX3VuaWNvZGVfdG1wID0gX1B5VW5pY29kZV9Gcm9tQVNDSUkoaW1fYnVmLCBuX2ltX2RpZ2l0cyk7CisgICAgaWYgKGltX3VuaWNvZGVfdG1wID09IE5VTEwpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBpX2ltID0gMDsKKworICAgIC8qIElzIGEgc2lnbiBjaGFyYWN0ZXIgcHJlc2VudCBpbiB0aGUgb3V0cHV0PyAgSWYgc28sIHJlbWVtYmVyIGl0CisgICAgICAgYW5kIHNraXAgaXQgKi8KKyAgICBpZiAoUHlVbmljb2RlX1JFQURfQ0hBUihyZV91bmljb2RlX3RtcCwgaV9yZSkgPT0gJy0nKSB7CisgICAgICAgIHJlX3NpZ25fY2hhciA9ICctJzsKKyAgICAgICAgKytpX3JlOworICAgICAgICAtLW5fcmVfZGlnaXRzOworICAgIH0KKyAgICBpZiAoUHlVbmljb2RlX1JFQURfQ0hBUihpbV91bmljb2RlX3RtcCwgaV9pbSkgPT0gJy0nKSB7CisgICAgICAgIGltX3NpZ25fY2hhciA9ICctJzsKKyAgICAgICAgKytpX2ltOworICAgICAgICAtLW5faW1fZGlnaXRzOworICAgIH0KKworICAgIC8qIERldGVybWluZSBpZiB3ZSBoYXZlIGFueSAicmVtYWluZGVyIiAoYWZ0ZXIgdGhlIGRpZ2l0cywgbWlnaHQgaW5jbHVkZQorICAgICAgIGRlY2ltYWwgb3IgZXhwb25lbnQgb3IgYm90aCAob3IgbmVpdGhlcikpICovCisgICAgcGFyc2VfbnVtYmVyKHJlX3VuaWNvZGVfdG1wLCBpX3JlLCBpX3JlICsgbl9yZV9kaWdpdHMsCisgICAgICAgICAgICAgICAgICZuX3JlX3JlbWFpbmRlciwgJnJlX2hhc19kZWNpbWFsKTsKKyAgICBwYXJzZV9udW1iZXIoaW1fdW5pY29kZV90bXAsIGlfaW0sIGlfaW0gKyBuX2ltX2RpZ2l0cywKKyAgICAgICAgICAgICAgICAgJm5faW1fcmVtYWluZGVyLCAmaW1faGFzX2RlY2ltYWwpOworCisgICAgLyogRGV0ZXJtaW5lIHRoZSBncm91cGluZywgc2VwYXJhdG9yLCBhbmQgZGVjaW1hbCBwb2ludCwgaWYgYW55LiAqLworICAgIGlmIChnZXRfbG9jYWxlX2luZm8oZm9ybWF0LT50eXBlID09ICduJyA/IExUX0NVUlJFTlRfTE9DQUxFIDoKKyAgICAgICAgICAgICAgICAgICAgICAgIChmb3JtYXQtPnRob3VzYW5kc19zZXBhcmF0b3JzID8KKyAgICAgICAgICAgICAgICAgICAgICAgICBMVF9ERUZBVUxUX0xPQ0FMRSA6CisgICAgICAgICAgICAgICAgICAgICAgICAgTFRfTk9fTE9DQUxFKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICZsb2NhbGUpID09IC0xKQorICAgICAgICBnb3RvIGRvbmU7CisKKyAgICAvKiBUdXJuIG9mZiBhbnkgcGFkZGluZy4gV2UnbGwgZG8gaXQgbGF0ZXIgYWZ0ZXIgd2UndmUgY29tcG9zZWQKKyAgICAgICB0aGUgbnVtYmVycyB3aXRob3V0IHBhZGRpbmcuICovCisgICAgdG1wX2Zvcm1hdC5maWxsX2NoYXIgPSAnXDAnOworICAgIHRtcF9mb3JtYXQuYWxpZ24gPSAnPCc7CisgICAgdG1wX2Zvcm1hdC53aWR0aCA9IC0xOworCisgICAgLyogQ2FsY3VsYXRlIGhvdyBtdWNoIG1lbW9yeSB3ZSdsbCBuZWVkLiAqLworICAgIG5fcmVfdG90YWwgPSBjYWxjX251bWJlcl93aWR0aHMoJnJlX3NwZWMsIDAsIHJlX3NpZ25fY2hhciwgcmVfdW5pY29kZV90bXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpX3JlLCBpX3JlICsgbl9yZV9kaWdpdHMsIG5fcmVfcmVtYWluZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVfaGFzX2RlY2ltYWwsICZsb2NhbGUsICZ0bXBfZm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1heGNoYXIpOworCisgICAgLyogU2FtZSBmb3JtYXR0aW5nLCBidXQgYWx3YXlzIGluY2x1ZGUgYSBzaWduLCB1bmxlc3MgdGhlIHJlYWwgcGFydCBpcworICAgICAqIGdvaW5nIHRvIGJlIG9taXR0ZWQsIGluIHdoaWNoIGNhc2Ugd2UgdXNlIHdoYXRldmVyIHNpZ24gY29udmVudGlvbiB3YXMKKyAgICAgKiByZXF1ZXN0ZWQgYnkgdGhlIG9yaWdpbmFsIGZvcm1hdC4gKi8KKyAgICBpZiAoIXNraXBfcmUpCisgICAgICAgIHRtcF9mb3JtYXQuc2lnbiA9ICcrJzsKKyAgICBuX2ltX3RvdGFsID0gY2FsY19udW1iZXJfd2lkdGhzKCZpbV9zcGVjLCAwLCBpbV9zaWduX2NoYXIsIGltX3VuaWNvZGVfdG1wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaV9pbSwgaV9pbSArIG5faW1fZGlnaXRzLCBuX2ltX3JlbWFpbmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltX2hhc19kZWNpbWFsLCAmbG9jYWxlLCAmdG1wX2Zvcm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtYXhjaGFyKTsKKworICAgIGlmIChza2lwX3JlKQorICAgICAgICBuX3JlX3RvdGFsID0gMDsKKworICAgIC8qIEFkZCAxIGZvciB0aGUgJ2onLCBhbmQgb3B0aW9uYWxseSAyIGZvciBwYXJlbnMuICovCisgICAgY2FsY19wYWRkaW5nKG5fcmVfdG90YWwgKyBuX2ltX3RvdGFsICsgMSArIGFkZF9wYXJlbnMgKiAyLAorICAgICAgICAgICAgICAgICBmb3JtYXQtPndpZHRoLCBmb3JtYXQtPmFsaWduLCAmbHBhZCwgJnJwYWQsICZ0b3RhbCk7CisKKyAgICBpZiAobHBhZCB8fCBycGFkKQorICAgICAgICBtYXhjaGFyID0gUHlfTUFYKG1heGNoYXIsIGZvcm1hdC0+ZmlsbF9jaGFyKTsKKworICAgIGlmIChfUHlVbmljb2RlV3JpdGVyX1ByZXBhcmUod3JpdGVyLCB0b3RhbCwgbWF4Y2hhcikgPT0gLTEpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBya2luZCA9IHdyaXRlci0+a2luZDsKKyAgICByZGF0YSA9IHdyaXRlci0+ZGF0YTsKKworICAgIC8qIFBvcHVsYXRlIHRoZSBtZW1vcnkuIEZpcnN0LCB0aGUgcGFkZGluZy4gKi8KKyAgICByZXN1bHQgPSBmaWxsX3BhZGRpbmcod3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICBuX3JlX3RvdGFsICsgbl9pbV90b3RhbCArIDEgKyBhZGRfcGFyZW5zICogMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0LT5maWxsX2NoYXI9PSdcMCcgPyAnICcgOiBmb3JtYXQtPmZpbGxfY2hhciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbHBhZCwgcnBhZCk7CisgICAgaWYgKHJlc3VsdCA9PSAtMSkKKyAgICAgICAgZ290byBkb25lOworCisgICAgaWYgKGFkZF9wYXJlbnMpIHsKKyAgICAgICAgUHlVbmljb2RlX1dSSVRFKHJraW5kLCByZGF0YSwgd3JpdGVyLT5wb3MsICcoJyk7CisgICAgICAgIHdyaXRlci0+cG9zKys7CisgICAgfQorCisgICAgaWYgKCFza2lwX3JlKSB7CisgICAgICAgIHJlc3VsdCA9IGZpbGxfbnVtYmVyKHdyaXRlciwgJnJlX3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlX3VuaWNvZGVfdG1wLCBpX3JlLCBpX3JlICsgbl9yZV9kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsb2NhbGUsIDApOworICAgICAgICBpZiAocmVzdWx0ID09IC0xKQorICAgICAgICAgICAgZ290byBkb25lOworICAgIH0KKyAgICByZXN1bHQgPSBmaWxsX251bWJlcih3cml0ZXIsICZpbV9zcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgIGltX3VuaWNvZGVfdG1wLCBpX2ltLCBpX2ltICsgbl9pbV9kaWdpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICZsb2NhbGUsIDApOworICAgIGlmIChyZXN1bHQgPT0gLTEpCisgICAgICAgIGdvdG8gZG9uZTsKKyAgICBQeVVuaWNvZGVfV1JJVEUocmtpbmQsIHJkYXRhLCB3cml0ZXItPnBvcywgJ2onKTsKKyAgICB3cml0ZXItPnBvcysrOworCisgICAgaWYgKGFkZF9wYXJlbnMpIHsKKyAgICAgICAgUHlVbmljb2RlX1dSSVRFKHJraW5kLCByZGF0YSwgd3JpdGVyLT5wb3MsICcpJyk7CisgICAgICAgIHdyaXRlci0+cG9zKys7CisgICAgfQorCisgICAgd3JpdGVyLT5wb3MgKz0gcnBhZDsKKworZG9uZToKKyAgICBQeU1lbV9GcmVlKHJlX2J1Zik7CisgICAgUHlNZW1fRnJlZShpbV9idWYpOworICAgIFB5X1hERUNSRUYocmVfdW5pY29kZV90bXApOworICAgIFB5X1hERUNSRUYoaW1fdW5pY29kZV90bXApOworICAgIGZyZWVfbG9jYWxlX2luZm8oJmxvY2FsZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qKioqKioqKioqKiBidWlsdCBpbiBmb3JtYXR0ZXJzICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGludAorZm9ybWF0X29iaihQeU9iamVjdCAqb2JqLCBfUHlVbmljb2RlV3JpdGVyICp3cml0ZXIpCit7CisgICAgUHlPYmplY3QgKnN0cjsKKyAgICBpbnQgZXJyOworCisgICAgc3RyID0gUHlPYmplY3RfU3RyKG9iaik7CisgICAgaWYgKHN0ciA9PSBOVUxMKQorICAgICAgICByZXR1cm4gLTE7CisgICAgZXJyID0gX1B5VW5pY29kZVdyaXRlcl9Xcml0ZVN0cih3cml0ZXIsIHN0cik7CisgICAgUHlfREVDUkVGKHN0cik7CisgICAgcmV0dXJuIGVycjsKK30KKworaW50CitfUHlVbmljb2RlX0Zvcm1hdEFkdmFuY2VkV3JpdGVyKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKm9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmZvcm1hdF9zcGVjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCkKK3sKKyAgICBJbnRlcm5hbEZvcm1hdFNwZWMgZm9ybWF0OworCisgICAgYXNzZXJ0KFB5VW5pY29kZV9DaGVjayhvYmopKTsKKworICAgIC8qIGNoZWNrIGZvciB0aGUgc3BlY2lhbCBjYXNlIG9mIHplcm8gbGVuZ3RoIGZvcm1hdCBzcGVjLCBtYWtlCisgICAgICAgaXQgZXF1aXZhbGVudCB0byBzdHIob2JqKSAqLworICAgIGlmIChzdGFydCA9PSBlbmQpIHsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9DaGVja0V4YWN0KG9iaikpCisgICAgICAgICAgICByZXR1cm4gX1B5VW5pY29kZVdyaXRlcl9Xcml0ZVN0cih3cml0ZXIsIG9iaik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXRfb2JqKG9iaiwgd3JpdGVyKTsKKyAgICB9CisKKyAgICAvKiBwYXJzZSB0aGUgZm9ybWF0X3NwZWMgKi8KKyAgICBpZiAoIXBhcnNlX2ludGVybmFsX3JlbmRlcl9mb3JtYXRfc3BlYyhmb3JtYXRfc3BlYywgc3RhcnQsIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0LCAncycsICc8JykpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIC8qIHR5cGUgY29udmVyc2lvbj8gKi8KKyAgICBzd2l0Y2ggKGZvcm1hdC50eXBlKSB7CisgICAgY2FzZSAncyc6CisgICAgICAgIC8qIG5vIHR5cGUgY29udmVyc2lvbiBuZWVkZWQsIGFscmVhZHkgYSBzdHJpbmcuICBkbyB0aGUgZm9ybWF0dGluZyAqLworICAgICAgICByZXR1cm4gZm9ybWF0X3N0cmluZ19pbnRlcm5hbChvYmosICZmb3JtYXQsIHdyaXRlcik7CisgICAgZGVmYXVsdDoKKyAgICAgICAgLyogdW5rbm93biAqLworICAgICAgICB1bmtub3duX3ByZXNlbnRhdGlvbl90eXBlKGZvcm1hdC50eXBlLCBvYmotPm9iX3R5cGUtPnRwX25hbWUpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorfQorCitpbnQKK19QeUxvbmdfRm9ybWF0QWR2YW5jZWRXcml0ZXIoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqb2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqZm9ybWF0X3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQsIFB5X3NzaXplX3QgZW5kKQoreworICAgIFB5T2JqZWN0ICp0bXAgPSBOVUxMLCAqc3RyID0gTlVMTDsKKyAgICBJbnRlcm5hbEZvcm1hdFNwZWMgZm9ybWF0OworICAgIGludCByZXN1bHQgPSAtMTsKKworICAgIC8qIGNoZWNrIGZvciB0aGUgc3BlY2lhbCBjYXNlIG9mIHplcm8gbGVuZ3RoIGZvcm1hdCBzcGVjLCBtYWtlCisgICAgICAgaXQgZXF1aXZhbGVudCB0byBzdHIob2JqKSAqLworICAgIGlmIChzdGFydCA9PSBlbmQpIHsKKyAgICAgICAgaWYgKFB5TG9uZ19DaGVja0V4YWN0KG9iaikpCisgICAgICAgICAgICByZXR1cm4gX1B5TG9uZ19Gb3JtYXRXcml0ZXIod3JpdGVyLCBvYmosIDEwLCAwKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIGZvcm1hdF9vYmoob2JqLCB3cml0ZXIpOworICAgIH0KKworICAgIC8qIHBhcnNlIHRoZSBmb3JtYXRfc3BlYyAqLworICAgIGlmICghcGFyc2VfaW50ZXJuYWxfcmVuZGVyX2Zvcm1hdF9zcGVjKGZvcm1hdF9zcGVjLCBzdGFydCwgZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZmb3JtYXQsICdkJywgJz4nKSkKKyAgICAgICAgZ290byBkb25lOworCisgICAgLyogdHlwZSBjb252ZXJzaW9uPyAqLworICAgIHN3aXRjaCAoZm9ybWF0LnR5cGUpIHsKKyAgICBjYXNlICdiJzoKKyAgICBjYXNlICdjJzoKKyAgICBjYXNlICdkJzoKKyAgICBjYXNlICdvJzoKKyAgICBjYXNlICd4JzoKKyAgICBjYXNlICdYJzoKKyAgICBjYXNlICduJzoKKyAgICAgICAgLyogbm8gdHlwZSBjb252ZXJzaW9uIG5lZWRlZCwgYWxyZWFkeSBhbiBpbnQgKG9yIGxvbmcpLiAgZG8KKyAgICAgICAgICAgdGhlIGZvcm1hdHRpbmcgKi8KKyAgICAgICAgcmVzdWx0ID0gZm9ybWF0X2xvbmdfaW50ZXJuYWwob2JqLCAmZm9ybWF0LCB3cml0ZXIpOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgJ2UnOgorICAgIGNhc2UgJ0UnOgorICAgIGNhc2UgJ2YnOgorICAgIGNhc2UgJ0YnOgorICAgIGNhc2UgJ2cnOgorICAgIGNhc2UgJ0cnOgorICAgIGNhc2UgJyUnOgorICAgICAgICAvKiBjb252ZXJ0IHRvIGZsb2F0ICovCisgICAgICAgIHRtcCA9IFB5TnVtYmVyX0Zsb2F0KG9iaik7CisgICAgICAgIGlmICh0bXAgPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAgICAgICAgcmVzdWx0ID0gZm9ybWF0X2Zsb2F0X2ludGVybmFsKHRtcCwgJmZvcm1hdCwgd3JpdGVyKTsKKyAgICAgICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICAvKiB1bmtub3duICovCisgICAgICAgIHVua25vd25fcHJlc2VudGF0aW9uX3R5cGUoZm9ybWF0LnR5cGUsIG9iai0+b2JfdHlwZS0+dHBfbmFtZSk7CisgICAgICAgIGdvdG8gZG9uZTsKKyAgICB9CisKK2RvbmU6CisgICAgUHlfWERFQ1JFRih0bXApOworICAgIFB5X1hERUNSRUYoc3RyKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitpbnQKK19QeUZsb2F0X0Zvcm1hdEFkdmFuY2VkV3JpdGVyKF9QeVVuaWNvZGVXcml0ZXIgKndyaXRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpvYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqZm9ybWF0X3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9zc2l6ZV90IHN0YXJ0LCBQeV9zc2l6ZV90IGVuZCkKK3sKKyAgICBJbnRlcm5hbEZvcm1hdFNwZWMgZm9ybWF0OworCisgICAgLyogY2hlY2sgZm9yIHRoZSBzcGVjaWFsIGNhc2Ugb2YgemVybyBsZW5ndGggZm9ybWF0IHNwZWMsIG1ha2UKKyAgICAgICBpdCBlcXVpdmFsZW50IHRvIHN0cihvYmopICovCisgICAgaWYgKHN0YXJ0ID09IGVuZCkKKyAgICAgICAgcmV0dXJuIGZvcm1hdF9vYmoob2JqLCB3cml0ZXIpOworCisgICAgLyogcGFyc2UgdGhlIGZvcm1hdF9zcGVjICovCisgICAgaWYgKCFwYXJzZV9pbnRlcm5hbF9yZW5kZXJfZm9ybWF0X3NwZWMoZm9ybWF0X3NwZWMsIHN0YXJ0LCBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvcm1hdCwgJ1wwJywgJz4nKSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgLyogdHlwZSBjb252ZXJzaW9uPyAqLworICAgIHN3aXRjaCAoZm9ybWF0LnR5cGUpIHsKKyAgICBjYXNlICdcMCc6IC8qIE5vIGZvcm1hdCBjb2RlOiBsaWtlICdnJywgYnV0IHdpdGggYXQgbGVhc3Qgb25lIGRlY2ltYWwuICovCisgICAgY2FzZSAnZSc6CisgICAgY2FzZSAnRSc6CisgICAgY2FzZSAnZic6CisgICAgY2FzZSAnRic6CisgICAgY2FzZSAnZyc6CisgICAgY2FzZSAnRyc6CisgICAgY2FzZSAnbic6CisgICAgY2FzZSAnJSc6CisgICAgICAgIC8qIG5vIGNvbnZlcnNpb24sIGFscmVhZHkgYSBmbG9hdC4gIGRvIHRoZSBmb3JtYXR0aW5nICovCisgICAgICAgIHJldHVybiBmb3JtYXRfZmxvYXRfaW50ZXJuYWwob2JqLCAmZm9ybWF0LCB3cml0ZXIpOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgLyogdW5rbm93biAqLworICAgICAgICB1bmtub3duX3ByZXNlbnRhdGlvbl90eXBlKGZvcm1hdC50eXBlLCBvYmotPm9iX3R5cGUtPnRwX25hbWUpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorfQorCitpbnQKK19QeUNvbXBsZXhfRm9ybWF0QWR2YW5jZWRXcml0ZXIoX1B5VW5pY29kZVdyaXRlciAqd3JpdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqb2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqZm9ybWF0X3NwZWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3Qgc3RhcnQsIFB5X3NzaXplX3QgZW5kKQoreworICAgIEludGVybmFsRm9ybWF0U3BlYyBmb3JtYXQ7CisKKyAgICAvKiBjaGVjayBmb3IgdGhlIHNwZWNpYWwgY2FzZSBvZiB6ZXJvIGxlbmd0aCBmb3JtYXQgc3BlYywgbWFrZQorICAgICAgIGl0IGVxdWl2YWxlbnQgdG8gc3RyKG9iaikgKi8KKyAgICBpZiAoc3RhcnQgPT0gZW5kKQorICAgICAgICByZXR1cm4gZm9ybWF0X29iaihvYmosIHdyaXRlcik7CisKKyAgICAvKiBwYXJzZSB0aGUgZm9ybWF0X3NwZWMgKi8KKyAgICBpZiAoIXBhcnNlX2ludGVybmFsX3JlbmRlcl9mb3JtYXRfc3BlYyhmb3JtYXRfc3BlYywgc3RhcnQsIGVuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9ybWF0LCAnXDAnLCAnPicpKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICAvKiB0eXBlIGNvbnZlcnNpb24/ICovCisgICAgc3dpdGNoIChmb3JtYXQudHlwZSkgeworICAgIGNhc2UgJ1wwJzogLyogTm8gZm9ybWF0IGNvZGU6IGxpa2UgJ2cnLCBidXQgd2l0aCBhdCBsZWFzdCBvbmUgZGVjaW1hbC4gKi8KKyAgICBjYXNlICdlJzoKKyAgICBjYXNlICdFJzoKKyAgICBjYXNlICdmJzoKKyAgICBjYXNlICdGJzoKKyAgICBjYXNlICdnJzoKKyAgICBjYXNlICdHJzoKKyAgICBjYXNlICduJzoKKyAgICAgICAgLyogbm8gY29udmVyc2lvbiwgYWxyZWFkeSBhIGNvbXBsZXguICBkbyB0aGUgZm9ybWF0dGluZyAqLworICAgICAgICByZXR1cm4gZm9ybWF0X2NvbXBsZXhfaW50ZXJuYWwob2JqLCAmZm9ybWF0LCB3cml0ZXIpOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgLyogdW5rbm93biAqLworICAgICAgICB1bmtub3duX3ByZXNlbnRhdGlvbl90eXBlKGZvcm1hdC50eXBlLCBvYmotPm9iX3R5cGUtPnRwX25hbWUpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvUHl0aG9uL2Zyb3plbi5jIGIvUHl0aG9uL2Zyb3plbi5jCmluZGV4IGRkZjYyMjQuLjI1ZmRjMTcgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9mcm96ZW4uYworKysgYi9QeXRob24vZnJvemVuLmMKQEAgLTIsNiArMiw3IEBACiAvKiBEdW1teSBmcm96ZW4gbW9kdWxlcyBpbml0aWFsaXplciAqLwogCiAjaW5jbHVkZSAiUHl0aG9uLmgiCisjaW5jbHVkZSAiaW1wb3J0bGliLmgiCiAKIC8qIEluIG9yZGVyIHRvIHRlc3QgdGhlIHN1cHBvcnQgZm9yIGZyb3plbiBtb2R1bGVzLCBieSBkZWZhdWx0IHdlCiAgICBkZWZpbmUgYSBzaW5nbGUgZnJvemVuIG1vZHVsZSwgX19oZWxsb19fLiAgTG9hZGluZyBpdCB3aWxsIHByaW50CkBAIC0yOCw2ICsyOSw4IEBACiAjZGVmaW5lIFNJWkUgKGludClzaXplb2YoTV9fX2hlbGxvX18pCiAKIHN0YXRpYyBzdHJ1Y3QgX2Zyb3plbiBfUHlJbXBvcnRfRnJvemVuTW9kdWxlc1tdID0geworICAgIC8qIGltcG9ydGxpYiAqLworICAgIHsiX2Zyb3plbl9pbXBvcnRsaWIiLCBfUHlfTV9faW1wb3J0bGliLCAoaW50KXNpemVvZihfUHlfTV9faW1wb3J0bGliKX0sCiAgICAgLyogVGVzdCBtb2R1bGUgKi8KICAgICB7Il9faGVsbG9fXyIsIE1fX19oZWxsb19fLCBTSVpFfSwKICAgICAvKiBUZXN0IHBhY2thZ2UgKG5lZ2F0aXZlIHNpemUgaW5kaWNhdGVzIHBhY2thZ2UtbmVzcykgKi8KZGlmZiAtLWdpdCBhL1B5dGhvbi9nZXRhcmdzLmMgYi9QeXRob24vZ2V0YXJncy5jCmluZGV4IDAwNjk2NzEuLjlmNzJmYTQgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9nZXRhcmdzLmMKKysrIGIvUHl0aG9uL2dldGFyZ3MuYwpAQCAtMzMsMTYgKzMzLDMzIEBACiAjZGVmaW5lIEZMQUdfQ09NUEFUIDEKICNkZWZpbmUgRkxBR19TSVpFX1QgMgogCit0eXBlZGVmIGludCAoKmRlc3RyX3QpKFB5T2JqZWN0ICosIHZvaWQgKik7CisKKworLyogS2VlcCB0cmFjayBvZiAib2JqZWN0cyIgdGhhdCBoYXZlIGJlZW4gYWxsb2NhdGVkIG9yIGluaXRpYWxpemVkIGFuZAorICAgd2hpY2ggd2lsbCBuZWVkIHRvIGJlIGRlYWxsb2NhdGVkIG9yIGNsZWFuZWQgdXAgc29tZWhvdyBpZiBvdmVyYWxsCisgICBwYXJzaW5nIGZhaWxzLgorKi8KK3R5cGVkZWYgc3RydWN0IHsKKyAgdm9pZCAqaXRlbTsKKyAgZGVzdHJfdCBkZXN0cnVjdG9yOworfSBmcmVlbGlzdGVudHJ5X3Q7CisKK3R5cGVkZWYgc3RydWN0IHsKKyAgaW50IGZpcnN0X2F2YWlsYWJsZTsKKyAgZnJlZWxpc3RlbnRyeV90ICplbnRyaWVzOworfSBmcmVlbGlzdF90OworCiAKIC8qIEZvcndhcmQgKi8KIHN0YXRpYyBpbnQgdmdldGFyZ3MxKFB5T2JqZWN0ICosIGNvbnN0IGNoYXIgKiwgdmFfbGlzdCAqLCBpbnQpOwogc3RhdGljIHZvaWQgc2V0ZXJyb3IoaW50LCBjb25zdCBjaGFyICosIGludCAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CiBzdGF0aWMgY2hhciAqY29udmVydGl0ZW0oUHlPYmplY3QgKiwgY29uc3QgY2hhciAqKiwgdmFfbGlzdCAqLCBpbnQsIGludCAqLAotICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKiwgc2l6ZV90LCBQeU9iamVjdCAqKik7CisgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqLCBzaXplX3QsIGZyZWVsaXN0X3QgKik7CiBzdGF0aWMgY2hhciAqY29udmVydHR1cGxlKFB5T2JqZWN0ICosIGNvbnN0IGNoYXIgKiosIHZhX2xpc3QgKiwgaW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKiwgY2hhciAqLCBzaXplX3QsIGludCwgUHlPYmplY3QgKiopOworICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKiwgY2hhciAqLCBzaXplX3QsIGludCwgZnJlZWxpc3RfdCAqKTsKIHN0YXRpYyBjaGFyICpjb252ZXJ0c2ltcGxlKFB5T2JqZWN0ICosIGNvbnN0IGNoYXIgKiosIHZhX2xpc3QgKiwgaW50LCBjaGFyICosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QsIFB5T2JqZWN0ICoqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCwgZnJlZWxpc3RfdCAqKTsKIHN0YXRpYyBQeV9zc2l6ZV90IGNvbnZlcnRidWZmZXIoUHlPYmplY3QgKiwgdm9pZCAqKnAsIGNoYXIgKiopOwogc3RhdGljIGludCBnZXRidWZmZXIoUHlPYmplY3QgKiwgUHlfYnVmZmVyICosIGNoYXIqKik7CiAKQEAgLTEyMywxMTUgKzE0MCw1NCBAQAogCiAvKiBIYW5kbGUgY2xlYW51cCBvZiBhbGxvY2F0ZWQgbWVtb3J5IGluIGNhc2Ugb2YgZXhjZXB0aW9uICovCiAKLSNkZWZpbmUgR0VUQVJHU19DQVBTVUxFX05BTUVfQ0xFQU5VUF9QVFIgImdldGFyZ3MuY2xlYW51cF9wdHIiCi0jZGVmaW5lIEdFVEFSR1NfQ0FQU1VMRV9OQU1FX0NMRUFOVVBfQlVGRkVSICJnZXRhcmdzLmNsZWFudXBfYnVmZmVyIgotI2RlZmluZSBHRVRBUkdTX0NBUFNVTEVfTkFNRV9DTEVBTlVQX0NPTlZFUlQgImdldGFyZ3MuY2xlYW51cF9jb252ZXJ0IgotCi1zdGF0aWMgdm9pZAotY2xlYW51cF9wdHIoUHlPYmplY3QgKnNlbGYpCitzdGF0aWMgaW50CitjbGVhbnVwX3B0cihQeU9iamVjdCAqc2VsZiwgdm9pZCAqcHRyKQogewotICAgIHZvaWQgKnB0ciA9IFB5Q2Fwc3VsZV9HZXRQb2ludGVyKHNlbGYsIEdFVEFSR1NfQ0FQU1VMRV9OQU1FX0NMRUFOVVBfUFRSKTsKICAgICBpZiAocHRyKSB7CiAgICAgICAgIFB5TWVtX0ZSRUUocHRyKTsKICAgICB9Ci19Ci0KLXN0YXRpYyB2b2lkCi1jbGVhbnVwX2J1ZmZlcihQeU9iamVjdCAqc2VsZikKLXsKLSAgICBQeV9idWZmZXIgKnB0ciA9IChQeV9idWZmZXIgKilQeUNhcHN1bGVfR2V0UG9pbnRlcihzZWxmLCBHRVRBUkdTX0NBUFNVTEVfTkFNRV9DTEVBTlVQX0JVRkZFUik7Ci0gICAgaWYgKHB0cikgewotICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKHB0cik7Ci0gICAgfQotfQotCi1zdGF0aWMgaW50Ci1hZGRjbGVhbnVwKHZvaWQgKnB0ciwgUHlPYmplY3QgKipmcmVlbGlzdCwgaW50IGlzX2J1ZmZlcikKLXsKLSAgICBQeU9iamVjdCAqY29iajsKLSAgICBjb25zdCBjaGFyICpuYW1lOwotICAgIFB5Q2Fwc3VsZV9EZXN0cnVjdG9yIGRlc3RyOwotCi0gICAgaWYgKGlzX2J1ZmZlcikgewotICAgICAgICBkZXN0ciA9IGNsZWFudXBfYnVmZmVyOwotICAgICAgICBuYW1lID0gR0VUQVJHU19DQVBTVUxFX05BTUVfQ0xFQU5VUF9CVUZGRVI7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZGVzdHIgPSBjbGVhbnVwX3B0cjsKLSAgICAgICAgbmFtZSA9IEdFVEFSR1NfQ0FQU1VMRV9OQU1FX0NMRUFOVVBfUFRSOwotICAgIH0KLQotICAgIGlmICghKmZyZWVsaXN0KSB7Ci0gICAgICAgICpmcmVlbGlzdCA9IFB5TGlzdF9OZXcoMCk7Ci0gICAgICAgIGlmICghKmZyZWVsaXN0KSB7Ci0gICAgICAgICAgICBkZXN0cihwdHIpOwotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY29iaiA9IFB5Q2Fwc3VsZV9OZXcocHRyLCBuYW1lLCBkZXN0cik7Ci0gICAgaWYgKCFjb2JqKSB7Ci0gICAgICAgIGRlc3RyKHB0cik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgaWYgKFB5TGlzdF9BcHBlbmQoKmZyZWVsaXN0LCBjb2JqKSkgewotICAgICAgICBQeV9ERUNSRUYoY29iaik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgUHlfREVDUkVGKGNvYmopOwotICAgIHJldHVybiAwOwotfQotCi1zdGF0aWMgdm9pZAotY2xlYW51cF9jb252ZXJ0KFB5T2JqZWN0ICpzZWxmKQotewotICAgIHR5cGVkZWYgaW50ICgqZGVzdHJfdCkoUHlPYmplY3QgKiwgdm9pZCAqKTsKLSAgICBkZXN0cl90IGRlc3RyID0gKGRlc3RyX3QpUHlDYXBzdWxlX0dldENvbnRleHQoc2VsZik7Ci0gICAgdm9pZCAqcHRyID0gUHlDYXBzdWxlX0dldFBvaW50ZXIoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRVRBUkdTX0NBUFNVTEVfTkFNRV9DTEVBTlVQX0NPTlZFUlQpOwotICAgIGlmIChwdHIgJiYgZGVzdHIpCi0gICAgICAgIGRlc3RyKE5VTEwsIHB0cik7Ci19Ci0KLXN0YXRpYyBpbnQKLWFkZGNsZWFudXBfY29udmVydCh2b2lkICpwdHIsIFB5T2JqZWN0ICoqZnJlZWxpc3QsIGludCAoKmRlc3RyKShQeU9iamVjdCosdm9pZCopKQotewotICAgIFB5T2JqZWN0ICpjb2JqOwotICAgIGlmICghKmZyZWVsaXN0KSB7Ci0gICAgICAgICpmcmVlbGlzdCA9IFB5TGlzdF9OZXcoMCk7Ci0gICAgICAgIGlmICghKmZyZWVsaXN0KSB7Ci0gICAgICAgICAgICBkZXN0cihOVUxMLCBwdHIpOwotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgfQotICAgIGNvYmogPSBQeUNhcHN1bGVfTmV3KHB0ciwgR0VUQVJHU19DQVBTVUxFX05BTUVfQ0xFQU5VUF9DT05WRVJULAotICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXBfY29udmVydCk7Ci0gICAgaWYgKCFjb2JqKSB7Ci0gICAgICAgIGRlc3RyKE5VTEwsIHB0cik7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgaWYgKFB5Q2Fwc3VsZV9TZXRDb250ZXh0KGNvYmosIGRlc3RyKSA9PSAtMSkgewotICAgICAgICAvKiBUaGlzIHJlYWxseSBzaG91bGQgbm90IGhhcHBlbi4gKi8KLSAgICAgICAgUHlfRmF0YWxFcnJvcigiY2Fwc3VsZSByZWZ1c2VkIHNldHRpbmcgb2YgY29udGV4dC4iKTsKLSAgICB9Ci0gICAgaWYgKFB5TGlzdF9BcHBlbmQoKmZyZWVsaXN0LCBjb2JqKSkgewotICAgICAgICBQeV9ERUNSRUYoY29iaik7IC8qIFRoaXMgd2lsbCBhbHNvIGNhbGwgZGVzdHIuICovCi0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0gICAgUHlfREVDUkVGKGNvYmopOwogICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgaW50Ci1jbGVhbnJldHVybihpbnQgcmV0dmFsLCBQeU9iamVjdCAqZnJlZWxpc3QpCitjbGVhbnVwX2J1ZmZlcihQeU9iamVjdCAqc2VsZiwgdm9pZCAqcHRyKQogewotICAgIGlmIChmcmVlbGlzdCAmJiByZXR2YWwgIT0gMCkgewotICAgICAgICAvKiBXZSB3ZXJlIHN1Y2Nlc3NmdWwsIHJlc2V0IHRoZSBkZXN0cnVjdG9ycyBzbyB0aGF0IHRoZXkKLSAgICAgICAgICAgZG9uJ3QgZ2V0IGNhbGxlZC4gKi8KLSAgICAgICAgUHlfc3NpemVfdCBsZW4gPSBQeUxpc3RfR0VUX1NJWkUoZnJlZWxpc3QpLCBpOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspCi0gICAgICAgICAgICBQeUNhcHN1bGVfU2V0RGVzdHJ1Y3RvcihQeUxpc3RfR0VUX0lURU0oZnJlZWxpc3QsIGkpLCBOVUxMKTsKKyAgICBQeV9idWZmZXIgKmJ1ZiA9IChQeV9idWZmZXIgKilwdHI7CisgICAgaWYgKGJ1ZikgeworICAgICAgICBQeUJ1ZmZlcl9SZWxlYXNlKGJ1Zik7CiAgICAgfQotICAgIFB5X1hERUNSRUYoZnJlZWxpc3QpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50CithZGRjbGVhbnVwKHZvaWQgKnB0ciwgZnJlZWxpc3RfdCAqZnJlZWxpc3QsIGRlc3RyX3QgZGVzdHJ1Y3RvcikKK3sKKyAgICBpbnQgaW5kZXg7CisKKyAgICBpbmRleCA9IGZyZWVsaXN0LT5maXJzdF9hdmFpbGFibGU7CisgICAgZnJlZWxpc3QtPmZpcnN0X2F2YWlsYWJsZSArPSAxOworCisgICAgZnJlZWxpc3QtPmVudHJpZXNbaW5kZXhdLml0ZW0gPSBwdHI7CisgICAgZnJlZWxpc3QtPmVudHJpZXNbaW5kZXhdLmRlc3RydWN0b3IgPSBkZXN0cnVjdG9yOworCisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK2NsZWFucmV0dXJuKGludCByZXR2YWwsIGZyZWVsaXN0X3QgKmZyZWVsaXN0KQoreworICAgIGludCBpbmRleDsKKworICAgIGlmIChyZXR2YWwgPT0gMCkgeworICAgICAgLyogQSBmYWlsdXJlIG9jY3VycmVkLCB0aGVyZWZvcmUgZXhlY3V0ZSBhbGwgb2YgdGhlIGNsZWFudXAKKyAgICAgICAgIGZ1bmN0aW9ucy4KKyAgICAgICovCisgICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBmcmVlbGlzdC0+Zmlyc3RfYXZhaWxhYmxlOyArK2luZGV4KSB7CisgICAgICAgICAgZnJlZWxpc3QtPmVudHJpZXNbaW5kZXhdLmRlc3RydWN0b3IoTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlbGlzdC0+ZW50cmllc1tpbmRleF0uaXRlbSk7CisgICAgICB9CisgICAgfQorICAgIFB5TWVtX0ZSRUUoZnJlZWxpc3QtPmVudHJpZXMpOwogICAgIHJldHVybiByZXR2YWw7CiB9CiAKQEAgLTI1MCw3ICsyMDYsNyBAQAogICAgIGNvbnN0IGNoYXIgKmZvcm1hdHNhdmUgPSBmb3JtYXQ7CiAgICAgUHlfc3NpemVfdCBpLCBsZW47CiAgICAgY2hhciAqbXNnOwotICAgIFB5T2JqZWN0ICpmcmVlbGlzdCA9IE5VTEw7CisgICAgZnJlZWxpc3RfdCBmcmVlbGlzdCA9IHswLCBOVUxMfTsKICAgICBpbnQgY29tcGF0ID0gZmxhZ3MgJiBGTEFHX0NPTVBBVDsKIAogICAgIGFzc2VydChjb21wYXQgfHwgKGFyZ3MgIT0gKFB5T2JqZWN0KilOVUxMKSk7CkBAIC0zMDYsNjQgKzI2Miw2NiBAQAogCiAgICAgZm9ybWF0ID0gZm9ybWF0c2F2ZTsKIAorICAgIGZyZWVsaXN0LmVudHJpZXMgPSBQeU1lbV9ORVcoZnJlZWxpc3RlbnRyeV90LCBtYXgpOworICAgIGlmIChmcmVlbGlzdC5lbnRyaWVzID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCiAgICAgaWYgKGNvbXBhdCkgewogICAgICAgICBpZiAobWF4ID09IDApIHsKICAgICAgICAgICAgIGlmIChhcmdzID09IE5VTEwpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICBQeU9TX3NucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIlLjIwMHMlcyB0YWtlcyBubyBhcmd1bWVudHMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBmbmFtZT09TlVMTCA/ICJmdW5jdGlvbiIgOiBmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZm5hbWU9PU5VTEwgPyAiIiA6ICIoKSIpOwotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgbXNnYnVmKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJS4yMDBzJXMgdGFrZXMgbm8gYXJndW1lbnRzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmbmFtZT09TlVMTCA/ICJmdW5jdGlvbiIgOiBmbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmbmFtZT09TlVMTCA/ICIiIDogIigpIik7CisgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgJmZyZWVsaXN0KTsKICAgICAgICAgfQogICAgICAgICBlbHNlIGlmIChtaW4gPT0gMSAmJiBtYXggPT0gMSkgewogICAgICAgICAgICAgaWYgKGFyZ3MgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5T1Nfc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKLSAgICAgICAgICAgICAgICAgICAgICAiJS4yMDBzJXMgdGFrZXMgYXQgbGVhc3Qgb25lIGFyZ3VtZW50IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZm5hbWU9PU5VTEwgPyAiZnVuY3Rpb24iIDogZm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZuYW1lPT1OVUxMID8gIiIgOiAiKCkiKTsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCBtc2didWYpOwotICAgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlLjIwMHMlcyB0YWtlcyBhdCBsZWFzdCBvbmUgYXJndW1lbnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbmFtZT09TlVMTCA/ICJmdW5jdGlvbiIgOiBmbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm5hbWU9PU5VTEwgPyAiIiA6ICIoKSIpOworICAgICAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgbXNnID0gY29udmVydGl0ZW0oYXJncywgJmZvcm1hdCwgcF92YSwgZmxhZ3MsIGxldmVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksICZmcmVlbGlzdCk7CiAgICAgICAgICAgICBpZiAobXNnID09IE5VTEwpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDEsIGZyZWVsaXN0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMSwgJmZyZWVsaXN0KTsKICAgICAgICAgICAgIHNldGVycm9yKGxldmVsc1swXSwgbXNnLCBsZXZlbHMrMSwgZm5hbWUsIG1lc3NhZ2UpOwotICAgICAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDAsIGZyZWVsaXN0KTsKKyAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLAogICAgICAgICAgICAgICAgICJvbGQgc3R5bGUgZ2V0YXJncyBmb3JtYXQgdXNlcyBuZXcgZmVhdHVyZXMiKTsKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDAsICZmcmVlbGlzdCk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIVB5VHVwbGVfQ2hlY2soYXJncykpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5c3RlbUVycm9yLAogICAgICAgICAgICAgIm5ldyBzdHlsZSBnZXRhcmdzIGZvcm1hdCBidXQgYXJndW1lbnQgaXMgbm90IGEgdHVwbGUiKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgIH0KIAogICAgIGxlbiA9IFB5VHVwbGVfR0VUX1NJWkUoYXJncyk7CiAKICAgICBpZiAobGVuIDwgbWluIHx8IG1heCA8IGxlbikgewotICAgICAgICBpZiAobWVzc2FnZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBQeU9TX3NucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIlLjE1MHMlcyB0YWtlcyAlcyAlZCBhcmd1bWVudCVzICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIiglbGQgZ2l2ZW4pIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZm5hbWU9PU5VTEwgPyAiZnVuY3Rpb24iIDogZm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZuYW1lPT1OVUxMID8gIiIgOiAiKCkiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49PW1heCA/ICJleGFjdGx5IgotICAgICAgICAgICAgICAgICAgICAgICAgICA6IGxlbiA8IG1pbiA/ICJhdCBsZWFzdCIgOiAiYXQgbW9zdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA8IG1pbiA/IG1pbiA6IG1heCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbiA8IG1pbiA/IG1pbiA6IG1heCkgPT0gMSA/ICIiIDogInMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9TQUZFX0RPV05DQVNUKGxlbiwgUHlfc3NpemVfdCwgbG9uZykpOwotICAgICAgICAgICAgbWVzc2FnZSA9IG1zZ2J1ZjsKLSAgICAgICAgfQotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCBtZXNzYWdlKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGlmIChtZXNzYWdlID09IE5VTEwpCisgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICIlLjE1MHMlcyB0YWtlcyAlcyAlZCBhcmd1bWVudCVzICglbGQgZ2l2ZW4pIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmbmFtZT09TlVMTCA/ICJmdW5jdGlvbiIgOiBmbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBmbmFtZT09TlVMTCA/ICIiIDogIigpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBtaW49PW1heCA/ICJleGFjdGx5IgorICAgICAgICAgICAgICAgICAgICAgICAgIDogbGVuIDwgbWluID8gImF0IGxlYXN0IiA6ICJhdCBtb3N0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPCBtaW4gPyBtaW4gOiBtYXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxlbiA8IG1pbiA/IG1pbiA6IG1heCkgPT0gMSA/ICIiIDogInMiLAorICAgICAgICAgICAgICAgICAgICAgICAgIFB5X1NBRkVfRE9XTkNBU1QobGVuLCBQeV9zc2l6ZV90LCBsb25nKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsIG1lc3NhZ2UpOworICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgJmZyZWVsaXN0KTsKICAgICB9CiAKICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKQEAgLTM3NCw3ICszMzIsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2YobXNnYnVmKSwgJmZyZWVsaXN0KTsKICAgICAgICAgaWYgKG1zZykgewogICAgICAgICAgICAgc2V0ZXJyb3IoaSsxLCBtc2csIGxldmVscywgZm5hbWUsIG1zZyk7Ci0gICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgZnJlZWxpc3QpOworICAgICAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDAsICZmcmVlbGlzdCk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTM4MywxMCArMzQxLDEwIEBACiAgICAgICAgICpmb3JtYXQgIT0gJ3wnICYmICpmb3JtYXQgIT0gJzonICYmICpmb3JtYXQgIT0gJzsnKSB7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19TeXN0ZW1FcnJvciwKICAgICAgICAgICAgICAgICAgICAgICJiYWQgZm9ybWF0IHN0cmluZzogJS4yMDBzIiwgZm9ybWF0c2F2ZSk7Ci0gICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCBmcmVlbGlzdCk7CisgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgIH0KIAotICAgIHJldHVybiBjbGVhbnJldHVybigxLCBmcmVlbGlzdCk7CisgICAgcmV0dXJuIGNsZWFucmV0dXJuKDEsICZmcmVlbGlzdCk7CiB9CiAKIApAQCAtNDUwLDcgKzQwOCw3IEBACiBzdGF0aWMgY2hhciAqCiBjb252ZXJ0dHVwbGUoUHlPYmplY3QgKmFyZywgY29uc3QgY2hhciAqKnBfZm9ybWF0LCB2YV9saXN0ICpwX3ZhLCBpbnQgZmxhZ3MsCiAgICAgICAgICAgICAgaW50ICpsZXZlbHMsIGNoYXIgKm1zZ2J1Ziwgc2l6ZV90IGJ1ZnNpemUsIGludCB0b3BsZXZlbCwKLSAgICAgICAgICAgICBQeU9iamVjdCAqKmZyZWVsaXN0KQorICAgICAgICAgICAgIGZyZWVsaXN0X3QgKmZyZWVsaXN0KQogewogICAgIGludCBsZXZlbCA9IDA7CiAgICAgaW50IG4gPSAwOwpAQCAtNTI1LDcgKzQ4Myw3IEBACiAKIHN0YXRpYyBjaGFyICoKIGNvbnZlcnRpdGVtKFB5T2JqZWN0ICphcmcsIGNvbnN0IGNoYXIgKipwX2Zvcm1hdCwgdmFfbGlzdCAqcF92YSwgaW50IGZsYWdzLAotICAgICAgICAgICAgaW50ICpsZXZlbHMsIGNoYXIgKm1zZ2J1Ziwgc2l6ZV90IGJ1ZnNpemUsIFB5T2JqZWN0ICoqZnJlZWxpc3QpCisgICAgICAgICAgICBpbnQgKmxldmVscywgY2hhciAqbXNnYnVmLCBzaXplX3QgYnVmc2l6ZSwgZnJlZWxpc3RfdCAqZnJlZWxpc3QpCiB7CiAgICAgY2hhciAqbXNnOwogICAgIGNvbnN0IGNoYXIgKmZvcm1hdCA9ICpwX2Zvcm1hdDsKQEAgLTU1MCw5ICs1MDgsNiBAQAogCiAKIAotI2RlZmluZSBVTklDT0RFX0RFRkFVTFRfRU5DT0RJTkcoYXJnKSBcCi0gICAgX1B5VW5pY29kZV9Bc0RlZmF1bHRFbmNvZGVkU3RyaW5nKGFyZywgTlVMTCkKLQogLyogRm9ybWF0IGFuIGVycm9yIG1lc3NhZ2UgZ2VuZXJhdGVkIGJ5IGNvbnZlcnRzaW1wbGUoKS4gKi8KIAogc3RhdGljIGNoYXIgKgpAQCAtNTkzLDcgKzU0OCw3IEBACiAKIHN0YXRpYyBjaGFyICoKIGNvbnZlcnRzaW1wbGUoUHlPYmplY3QgKmFyZywgY29uc3QgY2hhciAqKnBfZm9ybWF0LCB2YV9saXN0ICpwX3ZhLCBpbnQgZmxhZ3MsCi0gICAgICAgICAgICAgIGNoYXIgKm1zZ2J1Ziwgc2l6ZV90IGJ1ZnNpemUsIFB5T2JqZWN0ICoqZnJlZWxpc3QpCisgICAgICAgICAgICAgIGNoYXIgKm1zZ2J1Ziwgc2l6ZV90IGJ1ZnNpemUsIGZyZWVsaXN0X3QgKmZyZWVsaXN0KQogewogICAgIC8qIEZvciAjIGNvZGVzICovCiAjZGVmaW5lIEZFVENIX1NJWkUgICAgICBpbnQgKnE9TlVMTDtQeV9zc2l6ZV90ICpxMj1OVUxMO1wKQEAgLTYxNSw3ICs1NzAsNyBAQAogCiAgICAgY29uc3QgY2hhciAqZm9ybWF0ID0gKnBfZm9ybWF0OwogICAgIGNoYXIgYyA9ICpmb3JtYXQrKzsKLSAgICBQeU9iamVjdCAqdWFyZzsKKyAgICBjaGFyICpzYXJnOwogCiAgICAgc3dpdGNoIChjKSB7CiAKQEAgLTgzMiw2ICs3ODcsOCBAQAogICAgICAgICBjaGFyICpwID0gdmFfYXJnKCpwX3ZhLCBjaGFyICopOwogICAgICAgICBpZiAoUHlCeXRlc19DaGVjayhhcmcpICYmIFB5Qnl0ZXNfU2l6ZShhcmcpID09IDEpCiAgICAgICAgICAgICAqcCA9IFB5Qnl0ZXNfQVNfU1RSSU5HKGFyZylbMF07CisgICAgICAgIGVsc2UgaWYgKFB5Qnl0ZUFycmF5X0NoZWNrKGFyZykgJiYgUHlCeXRlQXJyYXlfU2l6ZShhcmcpID09IDEpCisgICAgICAgICAgICAqcCA9IFB5Qnl0ZUFycmF5X0FTX1NUUklORyhhcmcpWzBdOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycigiYSBieXRlIHN0cmluZyBvZiBsZW5ndGggMSIsIGFyZywgbXNnYnVmLCBidWZzaXplKTsKICAgICAgICAgYnJlYWs7CkBAIC04MzksMTEgKzc5NiwzMyBAQAogCiAgICAgY2FzZSAnQyc6IHsvKiB1bmljb2RlIGNoYXIgKi8KICAgICAgICAgaW50ICpwID0gdmFfYXJnKCpwX3ZhLCBpbnQgKik7Ci0gICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soYXJnKSAmJgotICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9TSVpFKGFyZykgPT0gMSkKLSAgICAgICAgICAgICpwID0gUHlVbmljb2RlX0FTX1VOSUNPREUoYXJnKVswXTsKLSAgICAgICAgZWxzZQorICAgICAgICBpbnQga2luZDsKKyAgICAgICAgdm9pZCAqZGF0YTsKKworICAgICAgICBpZiAoIVB5VW5pY29kZV9DaGVjayhhcmcpKQogICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlcnIoImEgdW5pY29kZSBjaGFyYWN0ZXIiLCBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7CisKKyAgICAgICAgaWYgKFB5VW5pY29kZV9SRUFEWShhcmcpKQorICAgICAgICAgICAgUkVUVVJOX0VSUl9PQ0NVUlJFRDsKKworICAgICAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgoYXJnKSAhPSAxKQorICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlcnIoImEgdW5pY29kZSBjaGFyYWN0ZXIiLCBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7CisKKyAgICAgICAga2luZCA9IFB5VW5pY29kZV9LSU5EKGFyZyk7CisgICAgICAgIGRhdGEgPSBQeVVuaWNvZGVfREFUQShhcmcpOworICAgICAgICAqcCA9IFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIDApOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBjYXNlICdwJzogey8qIGJvb2xlYW4gKnAqcmVkaWNhdGUgKi8KKyAgICAgICAgaW50ICpwID0gdmFfYXJnKCpwX3ZhLCBpbnQgKik7CisgICAgICAgIGludCB2YWwgPSBQeU9iamVjdF9Jc1RydWUoYXJnKTsKKyAgICAgICAgaWYgKHZhbCA+IDApCisgICAgICAgICAgICAqcCA9IDE7CisgICAgICAgIGVsc2UgaWYgKHZhbCA9PSAwKQorICAgICAgICAgICAgKnAgPSAwOworICAgICAgICBlbHNlCisgICAgICAgICAgICBSRVRVUk5fRVJSX09DQ1VSUkVEOwogICAgICAgICBicmVhazsKICAgICB9CiAKQEAgLTg1OCw3ICs4MzcsNyBAQAogICAgICAgICAgICAgaWYgKGdldGJ1ZmZlcihhcmcsIChQeV9idWZmZXIqKXAsICZidWYpIDwgMCkKICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycihidWYsIGFyZywgbXNnYnVmLCBidWZzaXplKTsKICAgICAgICAgICAgIGZvcm1hdCsrOwotICAgICAgICAgICAgaWYgKGFkZGNsZWFudXAocCwgZnJlZWxpc3QsIDEpKSB7CisgICAgICAgICAgICBpZiAoYWRkY2xlYW51cChwLCBmcmVlbGlzdCwgY2xlYW51cF9idWZmZXIpKSB7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlcnIoCiAgICAgICAgICAgICAgICAgICAgICIoY2xlYW51cCBwcm9ibGVtKSIsCiAgICAgICAgICAgICAgICAgICAgIGFyZywgbXNnYnVmLCBidWZzaXplKTsKQEAgLTg5MSwyMCArODcwLDE5IEBACiAgICAgICAgICAgICBpZiAoYyA9PSAneicgJiYgYXJnID09IFB5X05vbmUpCiAgICAgICAgICAgICAgICAgUHlCdWZmZXJfRmlsbEluZm8ocCwgTlVMTCwgTlVMTCwgMCwgMSwgMCk7CiAgICAgICAgICAgICBlbHNlIGlmIChQeVVuaWNvZGVfQ2hlY2soYXJnKSkgewotICAgICAgICAgICAgICAgIHVhcmcgPSBVTklDT0RFX0RFRkFVTFRfRU5DT0RJTkcoYXJnKTsKLSAgICAgICAgICAgICAgICBpZiAodWFyZyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOworICAgICAgICAgICAgICAgIHNhcmcgPSBQeVVuaWNvZGVfQXNVVEY4QW5kU2l6ZShhcmcsICZsZW4pOworICAgICAgICAgICAgICAgIGlmIChzYXJnID09IE5VTEwpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZXJyKENPTlZfVU5JQ09ERSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnLCBtc2didWYsIGJ1ZnNpemUpOwotICAgICAgICAgICAgICAgIFB5QnVmZmVyX0ZpbGxJbmZvKHAsIGFyZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUJ5dGVzX0FTX1NUUklORyh1YXJnKSwgUHlCeXRlc19HRVRfU0laRSh1YXJnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLCAwKTsKKyAgICAgICAgICAgICAgICBQeUJ1ZmZlcl9GaWxsSW5mbyhwLCBhcmcsIHNhcmcsIGxlbiwgMSwgMCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIHsgLyogYW55IGJ1ZmZlci1saWtlIG9iamVjdCAqLwogICAgICAgICAgICAgICAgIGNoYXIgKmJ1ZjsKICAgICAgICAgICAgICAgICBpZiAoZ2V0YnVmZmVyKGFyZywgcCwgJmJ1ZikgPCAwKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycihidWYsIGFyZywgbXNnYnVmLCBidWZzaXplKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChhZGRjbGVhbnVwKHAsIGZyZWVsaXN0LCAxKSkgeworICAgICAgICAgICAgaWYgKGFkZGNsZWFudXAocCwgZnJlZWxpc3QsIGNsZWFudXBfYnVmZmVyKSkgewogICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZXJyKAogICAgICAgICAgICAgICAgICAgICAiKGNsZWFudXAgcHJvYmxlbSkiLAogICAgICAgICAgICAgICAgICAgICBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7CkBAIC05MjAsMTIgKzg5OCwxMyBAQAogICAgICAgICAgICAgICAgIFNUT1JFX1NJWkUoMCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlIGlmIChQeVVuaWNvZGVfQ2hlY2soYXJnKSkgewotICAgICAgICAgICAgICAgIHVhcmcgPSBVTklDT0RFX0RFRkFVTFRfRU5DT0RJTkcoYXJnKTsKLSAgICAgICAgICAgICAgICBpZiAodWFyZyA9PSBOVUxMKQorICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgbGVuOworICAgICAgICAgICAgICAgIHNhcmcgPSBQeVVuaWNvZGVfQXNVVEY4QW5kU2l6ZShhcmcsICZsZW4pOworICAgICAgICAgICAgICAgIGlmIChzYXJnID09IE5VTEwpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZXJyKENPTlZfVU5JQ09ERSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnLCBtc2didWYsIGJ1ZnNpemUpOwotICAgICAgICAgICAgICAgICpwID0gUHlCeXRlc19BU19TVFJJTkcodWFyZyk7Ci0gICAgICAgICAgICAgICAgU1RPUkVfU0laRShQeUJ5dGVzX0dFVF9TSVpFKHVhcmcpKTsKKyAgICAgICAgICAgICAgICAqcCA9IHNhcmc7CisgICAgICAgICAgICAgICAgU1RPUkVfU0laRShsZW4pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7IC8qIGFueSBidWZmZXItbGlrZSBvYmplY3QgKi8KICAgICAgICAgICAgICAgICAvKiBYWFggUmVhbGx5PyAqLwpAQCAtOTM5LDI1ICs5MTgsMjUgQEAKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8qICJzIiBvciAieiIgKi8KICAgICAgICAgICAgIGNoYXIgKipwID0gdmFfYXJnKCpwX3ZhLCBjaGFyICoqKTsKLSAgICAgICAgICAgIHVhcmcgPSBOVUxMOworICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CisgICAgICAgICAgICBzYXJnID0gTlVMTDsKIAogICAgICAgICAgICAgaWYgKGMgPT0gJ3onICYmIGFyZyA9PSBQeV9Ob25lKQogICAgICAgICAgICAgICAgICpwID0gTlVMTDsKICAgICAgICAgICAgIGVsc2UgaWYgKFB5VW5pY29kZV9DaGVjayhhcmcpKSB7Ci0gICAgICAgICAgICAgICAgdWFyZyA9IFVOSUNPREVfREVGQVVMVF9FTkNPRElORyhhcmcpOwotICAgICAgICAgICAgICAgIGlmICh1YXJnID09IE5VTEwpCisgICAgICAgICAgICAgICAgc2FyZyA9IFB5VW5pY29kZV9Bc1VURjhBbmRTaXplKGFyZywgJmxlbik7CisgICAgICAgICAgICAgICAgaWYgKHNhcmcgPT0gTlVMTCkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlcnIoQ09OVl9VTklDT0RFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7Ci0gICAgICAgICAgICAgICAgKnAgPSBQeUJ5dGVzX0FTX1NUUklORyh1YXJnKTsKKyAgICAgICAgICAgICAgICAqcCA9IHNhcmc7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlcnIoYyA9PSAneicgPyAic3RyIG9yIE5vbmUiIDogInN0ciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnLCBtc2didWYsIGJ1ZnNpemUpOwotICAgICAgICAgICAgaWYgKCpwICE9IE5VTEwgJiYgdWFyZyAhPSBOVUxMICYmCi0gICAgICAgICAgICAgICAgKFB5X3NzaXplX3QpIHN0cmxlbigqcCkgIT0gUHlCeXRlc19HRVRfU0laRSh1YXJnKSkKKyAgICAgICAgICAgIGlmICgqcCAhPSBOVUxMICYmIHNhcmcgIT0gTlVMTCAmJiAoUHlfc3NpemVfdCkgc3RybGVuKCpwKSAhPSBsZW4pCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlcnIoCi0gICAgICAgICAgICAgICAgICAgIGMgPT0gJ3onID8gInN0ciB3aXRob3V0IG51bGwgYnl0ZXMgb3IgTm9uZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAic3RyIHdpdGhvdXQgbnVsbCBieXRlcyIsCisgICAgICAgICAgICAgICAgICAgIGMgPT0gJ3onID8gInN0ciB3aXRob3V0IG51bGwgY2hhcmFjdGVycyBvciBOb25lIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICJzdHIgd2l0aG91dCBudWxsIGNoYXJhY3RlcnMiLAogICAgICAgICAgICAgICAgICAgICBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CkBAIC05NjYsOSArOTQ1LDEwIEBACiAgICAgY2FzZSAndSc6IC8qIHJhdyB1bmljb2RlIGJ1ZmZlciAoUHlfVU5JQ09ERSAqKSAqLwogICAgIGNhc2UgJ1onOiAvKiByYXcgdW5pY29kZSBidWZmZXIgb3IgTm9uZSAqLwogICAgIHsKKyAgICAgICAgUHlfVU5JQ09ERSAqKnAgPSB2YV9hcmcoKnBfdmEsIFB5X1VOSUNPREUgKiopOworCiAgICAgICAgIGlmICgqZm9ybWF0ID09ICcjJykgeyAvKiBhbnkgYnVmZmVyLWxpa2Ugb2JqZWN0ICovCiAgICAgICAgICAgICAvKiAicyMiIG9yICJaIyIgKi8KLSAgICAgICAgICAgIFB5X1VOSUNPREUgKipwID0gdmFfYXJnKCpwX3ZhLCBQeV9VTklDT0RFICoqKTsKICAgICAgICAgICAgIEZFVENIX1NJWkU7CiAKICAgICAgICAgICAgIGlmIChjID09ICdaJyAmJiBhcmcgPT0gUHlfTm9uZSkgewpAQCAtOTc2LDIzICs5NTYsMjcgQEAKICAgICAgICAgICAgICAgICBTVE9SRV9TSVpFKDApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSBpZiAoUHlVbmljb2RlX0NoZWNrKGFyZykpIHsKLSAgICAgICAgICAgICAgICAqcCA9IFB5VW5pY29kZV9BU19VTklDT0RFKGFyZyk7Ci0gICAgICAgICAgICAgICAgU1RPUkVfU0laRShQeVVuaWNvZGVfR0VUX1NJWkUoYXJnKSk7CisgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CisgICAgICAgICAgICAgICAgKnAgPSBQeVVuaWNvZGVfQXNVbmljb2RlQW5kU2l6ZShhcmcsICZsZW4pOworICAgICAgICAgICAgICAgIGlmICgqcCA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICBSRVRVUk5fRVJSX09DQ1VSUkVEOworICAgICAgICAgICAgICAgIFNUT1JFX1NJWkUobGVuKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycigic3RyIG9yIE5vbmUiLCBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7CiAgICAgICAgICAgICBmb3JtYXQrKzsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8qICJzIiBvciAiWiIgKi8KLSAgICAgICAgICAgIFB5X1VOSUNPREUgKipwID0gdmFfYXJnKCpwX3ZhLCBQeV9VTklDT0RFICoqKTsKLQogICAgICAgICAgICAgaWYgKGMgPT0gJ1onICYmIGFyZyA9PSBQeV9Ob25lKQogICAgICAgICAgICAgICAgICpwID0gTlVMTDsKICAgICAgICAgICAgIGVsc2UgaWYgKFB5VW5pY29kZV9DaGVjayhhcmcpKSB7Ci0gICAgICAgICAgICAgICAgKnAgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShhcmcpOwotICAgICAgICAgICAgICAgIGlmIChQeV9VTklDT0RFX3N0cmxlbigqcCkgIT0gUHlVbmljb2RlX0dFVF9TSVpFKGFyZykpCisgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBsZW47CisgICAgICAgICAgICAgICAgKnAgPSBQeVVuaWNvZGVfQXNVbmljb2RlQW5kU2l6ZShhcmcsICZsZW4pOworICAgICAgICAgICAgICAgIGlmICgqcCA9PSBOVUxMKQorICAgICAgICAgICAgICAgICAgICBSRVRVUk5fRVJSX09DQ1VSUkVEOworICAgICAgICAgICAgICAgIGlmIChQeV9VTklDT0RFX3N0cmxlbigqcCkgIT0gbGVuKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycigKLSAgICAgICAgICAgICAgICAgICAgICAgICJzdHIgd2l0aG91dCBudWxsIGNoYXJhY3RlciBvciBOb25lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJzdHIgd2l0aG91dCBudWxsIGNoYXJhY3RlcnMgb3IgTm9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7CiAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycihjID09ICdaJyA/ICJzdHIgb3IgTm9uZSIgOiAic3RyIiwKQEAgLTExMTAsNyArMTA5NCw3IEBACiAgICAgICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgICAgICAgICAgICAgIFJFVFVSTl9FUlJfT0NDVVJSRUQ7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChhZGRjbGVhbnVwKCpidWZmZXIsIGZyZWVsaXN0LCAwKSkgeworICAgICAgICAgICAgICAgIGlmIChhZGRjbGVhbnVwKCpidWZmZXIsIGZyZWVsaXN0LCBjbGVhbnVwX3B0cikpIHsKICAgICAgICAgICAgICAgICAgICAgUHlfREVDUkVGKHMpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycigKICAgICAgICAgICAgICAgICAgICAgICAgICIoY2xlYW51cCBwcm9ibGVtKSIsCkBAIC0xMTUyLDcgKzExMzYsNyBAQAogICAgICAgICAgICAgICAgIFB5RXJyX05vTWVtb3J5KCk7CiAgICAgICAgICAgICAgICAgUkVUVVJOX0VSUl9PQ0NVUlJFRDsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChhZGRjbGVhbnVwKCpidWZmZXIsIGZyZWVsaXN0LCAwKSkgeworICAgICAgICAgICAgaWYgKGFkZGNsZWFudXAoKmJ1ZmZlciwgZnJlZWxpc3QsIGNsZWFudXBfcHRyKSkgewogICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihzKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycigiKGNsZWFudXAgcHJvYmxlbSkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7CkBAIC0xMTgzLDggKzExNjcsMTEgQEAKIAogICAgIGNhc2UgJ1UnOiB7IC8qIFB5VW5pY29kZSBvYmplY3QgKi8KICAgICAgICAgUHlPYmplY3QgKipwID0gdmFfYXJnKCpwX3ZhLCBQeU9iamVjdCAqKik7Ci0gICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soYXJnKSkKKyAgICAgICAgaWYgKFB5VW5pY29kZV9DaGVjayhhcmcpKSB7CisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX1JFQURZKGFyZykgPT0gLTEpCisgICAgICAgICAgICAgICAgUkVUVVJOX0VSUl9PQ0NVUlJFRDsKICAgICAgICAgICAgICpwID0gYXJnOworICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZXJyKCJzdHIiLCBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTIxMyw3ICsxMjAwLDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gY29udmVydGVycigiKHVuc3BlY2lmaWVkKSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnLCBtc2didWYsIGJ1ZnNpemUpOwogICAgICAgICAgICAgaWYgKHJlcyA9PSBQeV9DTEVBTlVQX1NVUFBPUlRFRCAmJgotICAgICAgICAgICAgICAgIGFkZGNsZWFudXBfY29udmVydChhZGRyLCBmcmVlbGlzdCwgY29udmVydCkgPT0gLTEpCisgICAgICAgICAgICAgICAgYWRkY2xlYW51cChhZGRyLCBmcmVlbGlzdCwgY29udmVydCkgPT0gLTEpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlcnIoIihjbGVhbnVwIHByb2JsZW0pIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnLCBtc2didWYsIGJ1ZnNpemUpOwogICAgICAgICB9CkBAIC0xMjQ0LDcgKzEyMzEsNyBAQAogICAgICAgICAgICAgUHlCdWZmZXJfUmVsZWFzZSgoUHlfYnVmZmVyKilwKTsKICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0ZXJyKCJjb250aWd1b3VzIGJ1ZmZlciIsIGFyZywgbXNnYnVmLCBidWZzaXplKTsKICAgICAgICAgfQotICAgICAgICBpZiAoYWRkY2xlYW51cChwLCBmcmVlbGlzdCwgMSkpIHsKKyAgICAgICAgaWYgKGFkZGNsZWFudXAocCwgZnJlZWxpc3QsIGNsZWFudXBfYnVmZmVyKSkgewogICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlcnIoCiAgICAgICAgICAgICAgICAgIihjbGVhbnVwIHByb2JsZW0pIiwKICAgICAgICAgICAgICAgICBhcmcsIG1zZ2J1ZiwgYnVmc2l6ZSk7CkBAIC0xNDMxLDggKzE0MTgsMTAgQEAKICAgICBpbnQgbGV2ZWxzWzMyXTsKICAgICBjb25zdCBjaGFyICpmbmFtZSwgKm1zZywgKmN1c3RvbV9tc2csICprZXl3b3JkOwogICAgIGludCBtaW4gPSBJTlRfTUFYOworICAgIGludCBtYXggPSBJTlRfTUFYOwogICAgIGludCBpLCBsZW4sIG5hcmdzLCBua2V5d29yZHM7Ci0gICAgUHlPYmplY3QgKmZyZWVsaXN0ID0gTlVMTCwgKmN1cnJlbnRfYXJnOworICAgIFB5T2JqZWN0ICpjdXJyZW50X2FyZzsKKyAgICBmcmVlbGlzdF90IGZyZWVsaXN0ID0gezAsIE5VTEx9OwogCiAgICAgYXNzZXJ0KGFyZ3MgIT0gTlVMTCAmJiBQeVR1cGxlX0NoZWNrKGFyZ3MpKTsKICAgICBhc3NlcnQoa2V5d29yZHMgPT0gTlVMTCB8fCBQeURpY3RfQ2hlY2soa2V5d29yZHMpKTsKQEAgLTE0NTYsMzEgKzE0NDUsNjggQEAKICAgICBmb3IgKGxlbj0wOyBrd2xpc3RbbGVuXTsgbGVuKyspCiAgICAgICAgIGNvbnRpbnVlOwogCisgICAgZnJlZWxpc3QuZW50cmllcyA9IFB5TWVtX05FVyhmcmVlbGlzdGVudHJ5X3QsIGxlbik7CisgICAgaWYgKGZyZWVsaXN0LmVudHJpZXMgPT0gTlVMTCkgeworICAgICAgICBQeUVycl9Ob01lbW9yeSgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKICAgICBuYXJncyA9IFB5VHVwbGVfR0VUX1NJWkUoYXJncyk7CiAgICAgbmtleXdvcmRzID0gKGtleXdvcmRzID09IE5VTEwpID8gMCA6IFB5RGljdF9TaXplKGtleXdvcmRzKTsKICAgICBpZiAobmFyZ3MgKyBua2V5d29yZHMgPiBsZW4pIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwgIiVzJXMgdGFrZXMgYXQgbW9zdCAlZCAiCi0gICAgICAgICAgICAgICAgICAgICAiYXJndW1lbnQlcyAoJWQgZ2l2ZW4pIiwKKyAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICIlcyVzIHRha2VzIGF0IG1vc3QgJWQgYXJndW1lbnQlcyAoJWQgZ2l2ZW4pIiwKICAgICAgICAgICAgICAgICAgICAgIChmbmFtZSA9PSBOVUxMKSA/ICJmdW5jdGlvbiIgOiBmbmFtZSwKICAgICAgICAgICAgICAgICAgICAgIChmbmFtZSA9PSBOVUxMKSA/ICIiIDogIigpIiwKICAgICAgICAgICAgICAgICAgICAgIGxlbiwKICAgICAgICAgICAgICAgICAgICAgIChsZW4gPT0gMSkgPyAiIiA6ICJzIiwKICAgICAgICAgICAgICAgICAgICAgIG5hcmdzICsgbmtleXdvcmRzKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgIH0KIAogICAgIC8qIGNvbnZlcnQgdHVwbGUgYXJncyBhbmQga2V5d29yZCBhcmdzIGluIHNhbWUgbG9vcCwgdXNpbmcga3dsaXN0IHRvIGRyaXZlIHByb2Nlc3MgKi8KICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAga2V5d29yZCA9IGt3bGlzdFtpXTsKICAgICAgICAgaWYgKCpmb3JtYXQgPT0gJ3wnKSB7CisgICAgICAgICAgICBpZiAobWluICE9IElOVF9NQVgpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW52YWxpZCBmb3JtYXQgc3RyaW5nICh8IHNwZWNpZmllZCB0d2ljZSkiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgJmZyZWVsaXN0KTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgbWluID0gaTsKICAgICAgICAgICAgIGZvcm1hdCsrOworCisgICAgICAgICAgICBpZiAobWF4ICE9IElOVF9NQVgpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSW52YWxpZCBmb3JtYXQgc3RyaW5nICgkIGJlZm9yZSB8KSIpOworICAgICAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGlmICgqZm9ybWF0ID09ICckJykgeworICAgICAgICAgICAgaWYgKG1heCAhPSBJTlRfTUFYKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkludmFsaWQgZm9ybWF0IHN0cmluZyAoJCBzcGVjaWZpZWQgdHdpY2UpIik7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDAsICZmcmVlbGlzdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIG1heCA9IGk7CisgICAgICAgICAgICBmb3JtYXQrKzsKKworICAgICAgICAgICAgaWYgKG1heCA8IG5hcmdzKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bmN0aW9uIHRha2VzICVzICVkIHBvc2l0aW9uYWwgYXJndW1lbnRzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICglZCBnaXZlbikiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWluICE9IElOVF9NQVgpID8gImF0IG1vc3QiIDogImV4YWN0bHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgsIG5hcmdzKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgJmZyZWVsaXN0KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAoSVNfRU5EX09GX0ZPUk1BVCgqZm9ybWF0KSkgewogICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1J1bnRpbWVFcnJvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9yZSBrZXl3b3JkIGxpc3QgZW50cmllcyAoJWQpIHRoYW4gIgogICAgICAgICAgICAgICAgICAgICAgICAgICJmb3JtYXQgc3BlY2lmaWVycyAoJWQpIiwgbGVuLCBpKTsKLSAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCBmcmVlbGlzdCk7CisgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgJmZyZWVsaXN0KTsKICAgICAgICAgfQogICAgICAgICBjdXJyZW50X2FyZyA9IE5VTEw7CiAgICAgICAgIGlmIChua2V5d29yZHMpIHsKQEAgLTE0OTQsMTEgKzE1MjAsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFyZ3VtZW50IGdpdmVuIGJ5IG5hbWUgKCclcycpICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFuZCBwb3NpdGlvbiAoJWQpIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZCwgaSsxKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgZnJlZWxpc3QpOworICAgICAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKG5rZXl3b3JkcyAmJiBQeUVycl9PY2N1cnJlZCgpKQotICAgICAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDAsIGZyZWVsaXN0KTsKKyAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgICAgICBlbHNlIGlmIChpIDwgbmFyZ3MpCiAgICAgICAgICAgICBjdXJyZW50X2FyZyA9IFB5VHVwbGVfR0VUX0lURU0oYXJncywgaSk7CiAKQEAgLTE1MDcsNyArMTUzMyw3IEBACiAgICAgICAgICAgICAgICAgbGV2ZWxzLCBtc2didWYsIHNpemVvZihtc2didWYpLCAmZnJlZWxpc3QpOwogICAgICAgICAgICAgaWYgKG1zZykgewogICAgICAgICAgICAgICAgIHNldGVycm9yKGkrMSwgbXNnLCBsZXZlbHMsIGZuYW1lLCBjdXN0b21fbXNnKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgZnJlZWxpc3QpOworICAgICAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KQEAgLTE1MTYsMTQgKzE1NDIsMTQgQEAKICAgICAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19UeXBlRXJyb3IsICJSZXF1aXJlZCBhcmd1bWVudCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiclcycgKHBvcyAlZCkgbm90IGZvdW5kIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkLCBpKzEpOwotICAgICAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDAsIGZyZWVsaXN0KTsKKyAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgICAgICB9CiAgICAgICAgIC8qIGN1cnJlbnQgY29kZSByZXBvcnRzIHN1Y2Nlc3Mgd2hlbiBhbGwgcmVxdWlyZWQgYXJncwogICAgICAgICAgKiBmdWxmaWxsZWQgYW5kIG5vIGtleXdvcmQgYXJncyBsZWZ0LCB3aXRoIG5vIGZ1cnRoZXIKICAgICAgICAgICogdmFsaWRhdGlvbi4gWFhYIE1heWJlIHNraXAgdGhpcyBpbiBkZWJ1ZyBidWlsZCA/CiAgICAgICAgICAqLwogICAgICAgICBpZiAoIW5rZXl3b3JkcykKLSAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigxLCBmcmVlbGlzdCk7CisgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMSwgJmZyZWVsaXN0KTsKIAogICAgICAgICAvKiBXZSBhcmUgaW50byBvcHRpb25hbCBhcmdzLCBza2lwIHRocnUgdG8gYW55IHJlbWFpbmluZwogICAgICAgICAgKiBrZXl3b3JkIGFyZ3MgKi8KQEAgLTE1MzEsMTUgKzE1NTcsMTUgQEAKICAgICAgICAgaWYgKG1zZykgewogICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1J1bnRpbWVFcnJvciwgIiVzOiAnJXMnIiwgbXNnLAogICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCk7Ci0gICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgZnJlZWxpc3QpOworICAgICAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDAsICZmcmVlbGlzdCk7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIUlTX0VORF9PRl9GT1JNQVQoKmZvcm1hdCkgJiYgKmZvcm1hdCAhPSAnfCcpIHsKKyAgICBpZiAoIUlTX0VORF9PRl9GT1JNQVQoKmZvcm1hdCkgJiYgKCpmb3JtYXQgIT0gJ3wnKSAmJiAoKmZvcm1hdCAhPSAnJCcpKSB7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19SdW50aW1lRXJyb3IsCiAgICAgICAgICAgICAibW9yZSBhcmd1bWVudCBzcGVjaWZpZXJzIHRoYW4ga2V5d29yZCBsaXN0IGVudHJpZXMgIgogICAgICAgICAgICAgIihyZW1haW5pbmcgZm9ybWF0OiclcycpIiwgZm9ybWF0KTsKLSAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDAsIGZyZWVsaXN0KTsKKyAgICAgICAgcmV0dXJuIGNsZWFucmV0dXJuKDAsICZmcmVlbGlzdCk7CiAgICAgfQogCiAgICAgLyogbWFrZSBzdXJlIHRoZXJlIGFyZSBubyBleHRyYW5lb3VzIGtleXdvcmQgYXJndW1lbnRzICovCkBAIC0xNTUyLDcgKzE1NzgsNyBAQAogICAgICAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2soa2V5KSkgewogICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXl3b3JkcyBtdXN0IGJlIHN0cmluZ3MiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgZnJlZWxpc3QpOworICAgICAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgLyogY2hlY2sgdGhhdCBfUHlVbmljb2RlX0FzU3RyaW5nKCkgcmVzdWx0IGlzIG5vdCBOVUxMICovCiAgICAgICAgICAgICBrcyA9IF9QeVVuaWNvZGVfQXNTdHJpbmcoa2V5KTsKQEAgLTE1NjksMTIgKzE1OTUsMTIgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiclVScgaXMgYW4gaW52YWxpZCBrZXl3b3JkICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFyZ3VtZW50IGZvciB0aGlzIGZ1bmN0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY2xlYW5yZXR1cm4oMCwgZnJlZWxpc3QpOworICAgICAgICAgICAgICAgIHJldHVybiBjbGVhbnJldHVybigwLCAmZnJlZWxpc3QpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIGNsZWFucmV0dXJuKDEsIGZyZWVsaXN0KTsKKyAgICByZXR1cm4gY2xlYW5yZXR1cm4oMSwgJmZyZWVsaXN0KTsKIH0KIAogCkBAIC0xNTg2LDggKzE2MTIsMTAgQEAKIAogICAgIHN3aXRjaCAoYykgewogCi0gICAgLyogc2ltcGxlIGNvZGVzCi0gICAgICogVGhlIGluZGl2aWR1YWwgdHlwZXMgKHNlY29uZCBhcmcgb2YgdmFfYXJnKSBhcmUgaXJyZWxldmFudCAqLworICAgIC8qCisgICAgICogY29kZXMgdGhhdCB0YWtlIGEgc2luZ2xlIGRhdGEgcG9pbnRlciBhcyBhbiBhcmd1bWVudAorICAgICAqICh0aGUgdHlwZSBvZiB0aGUgcG9pbnRlciBpcyBpcnJlbGV2YW50KQorICAgICAqLwogCiAgICAgY2FzZSAnYic6IC8qIGJ5dGUgLS0gdmVyeSBzaG9ydCBpbnQgKi8KICAgICBjYXNlICdCJzogLyogYnl0ZSBhcyBiaXRmaWVsZCAqLwpAQCAtMTYwMSwyMiArMTYyOSwyMSBAQAogICAgIGNhc2UgJ0wnOiAvKiBQWV9MT05HX0xPTkcgKi8KICAgICBjYXNlICdLJzogLyogUFlfTE9OR19MT05HIHNpemVkIGJpdGZpZWxkICovCiAjZW5kaWYKKyAgICBjYXNlICduJzogLyogUHlfc3NpemVfdCAqLwogICAgIGNhc2UgJ2YnOiAvKiBmbG9hdCAqLwogICAgIGNhc2UgJ2QnOiAvKiBkb3VibGUgKi8KICAgICBjYXNlICdEJzogLyogY29tcGxleCBkb3VibGUgKi8KICAgICBjYXNlICdjJzogLyogY2hhciAqLwogICAgIGNhc2UgJ0MnOiAvKiB1bmljb2RlIGNoYXIgKi8KKyAgICBjYXNlICdwJzogLyogYm9vbGVhbiBwcmVkaWNhdGUgKi8KKyAgICBjYXNlICdTJzogLyogc3RyaW5nIG9iamVjdCAqLworICAgIGNhc2UgJ1knOiAvKiBzdHJpbmcgb2JqZWN0ICovCisgICAgY2FzZSAnVSc6IC8qIHVuaWNvZGUgc3RyaW5nIG9iamVjdCAqLwogICAgICAgICB7CiAgICAgICAgICAgICAodm9pZCkgdmFfYXJnKCpwX3ZhLCB2b2lkICopOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgIGNhc2UgJ24nOiAvKiBQeV9zc2l6ZV90ICovCi0gICAgICAgIHsKLSAgICAgICAgICAgICh2b2lkKSB2YV9hcmcoKnBfdmEsIFB5X3NzaXplX3QgKik7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCiAgICAgLyogc3RyaW5nIGNvZGVzICovCiAKICAgICBjYXNlICdlJzogLyogc3RyaW5nIHdpdGggZW5jb2RpbmcgKi8KQEAgLTE2NDksMTYgKzE2NzYsNiBAQAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgIC8qIG9iamVjdCBjb2RlcyAqLwotCi0gICAgY2FzZSAnUyc6IC8qIHN0cmluZyBvYmplY3QgKi8KLSAgICBjYXNlICdZJzogLyogc3RyaW5nIG9iamVjdCAqLwotICAgIGNhc2UgJ1UnOiAvKiB1bmljb2RlIHN0cmluZyBvYmplY3QgKi8KLSAgICAgICAgewotICAgICAgICAgICAgKHZvaWQpIHZhX2FyZygqcF92YSwgUHlPYmplY3QgKiopOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQogICAgIGNhc2UgJ08nOiAvKiBvYmplY3QgKi8KICAgICAgICAgewogICAgICAgICAgICAgaWYgKCpmb3JtYXQgPT0gJyEnKSB7CmRpZmYgLS1naXQgYS9QeXRob24vZ2V0Y29weXJpZ2h0LmMgYi9QeXRob24vZ2V0Y29weXJpZ2h0LmMKaW5kZXggZDFlMjU3OC4uZDgzYzZkYSAxMDA2NDQKLS0tIGEvUHl0aG9uL2dldGNvcHlyaWdodC5jCisrKyBiL1B5dGhvbi9nZXRjb3B5cmlnaHQuYwpAQCAtMTksNSArMTksNSBAQAogY29uc3QgY2hhciAqCiBQeV9HZXRDb3B5cmlnaHQodm9pZCkKIHsKLQlyZXR1cm4gY3BydDsKKyAgICByZXR1cm4gY3BydDsKIH0KZGlmZiAtLWdpdCBhL1B5dGhvbi9ncmFtaW5pdC5jIGIvUHl0aG9uL2dyYW1pbml0LmMKaW5kZXggY2FiYzRkNi4uZTA0OTk5YiAxMDA2NDQKLS0tIGEvUHl0aG9uL2dyYW1pbml0LmMKKysrIGIvUHl0aG9uL2dyYW1pbml0LmMKQEAgLTE3OTEsNyArMTc5MSw3IEBACiAgICAgezE2NywgMX0sCiB9Owogc3RhdGljIGFyYyBhcmNzXzgwXzFbMl0gPSB7Ci0gICAgezksIDJ9LAorICAgIHsxNjgsIDJ9LAogICAgIHswLCAxfSwKIH07CiBzdGF0aWMgYXJjIGFyY3NfODBfMlsxXSA9IHsKQEAgLTE4MDIsMTcxICsxODAyLDE4OCBAQAogICAgIHsyLCBhcmNzXzgwXzF9LAogICAgIHsxLCBhcmNzXzgwXzJ9LAogfTsKLXN0YXRpYyBkZmEgZGZhc1s4MV0gPSB7Ci0gICAgezI1NiwgInNpbmdsZV9pbnB1dCIsIDAsIDMsIHN0YXRlc18wLAotICAgICAiXDAwNFwwNTBcMDYwXDIwMFwwMDBcMDAwXDAwMFwyNDBcMzQwXDIyM1wxNjBcMjIwXDA0NVwyMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMjA0In0sCi0gICAgezI1NywgImZpbGVfaW5wdXQiLCAwLCAyLCBzdGF0ZXNfMSwKLSAgICAgIlwyMDRcMDUwXDA2MFwyMDBcMDAwXDAwMFwwMDBcMjQwXDM0MFwyMjNcMTYwXDIyMFwwNDVcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDIwNCJ9LAotICAgIHsyNTgsICJldmFsX2lucHV0IiwgMCwgMywgc3RhdGVzXzIsCi0gICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDAifSwKLSAgICB7MjU5LCAiZGVjb3JhdG9yIiwgMCwgNywgc3RhdGVzXzMsCi0gICAgICJcMDAwXDAxMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7MjYwLCAiZGVjb3JhdG9ycyIsIDAsIDIsIHN0YXRlc180LAotICAgICAiXDAwMFwwMTBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezI2MSwgImRlY29yYXRlZCIsIDAsIDMsIHN0YXRlc181LAotICAgICAiXDAwMFwwMTBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezI2MiwgImZ1bmNkZWYiLCAwLCA4LCBzdGF0ZXNfNiwKLSAgICAgIlwwMDBcMDAwXDAyMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyNjMsICJwYXJhbWV0ZXJzIiwgMCwgNCwgc3RhdGVzXzcsCi0gICAgICJcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7MjY0LCAidHlwZWRhcmdzbGlzdCIsIDAsIDE4LCBzdGF0ZXNfOCwKLSAgICAgIlwwMDBcMDAwXDA0MFwyMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyNjUsICJ0ZnBkZWYiLCAwLCA0LCBzdGF0ZXNfOSwKLSAgICAgIlwwMDBcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyNjYsICJ2YXJhcmdzbGlzdCIsIDAsIDE4LCBzdGF0ZXNfMTAsCi0gICAgICJcMDAwXDAwMFwwNDBcMjAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7MjY3LCAidmZwZGVmIiwgMCwgMiwgc3RhdGVzXzExLAotICAgICAiXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezI2OCwgInN0bXQiLCAwLCAyLCBzdGF0ZXNfMTIsCi0gICAgICJcMDAwXDA1MFwwNjBcMjAwXDAwMFwwMDBcMDAwXDI0MFwzNDBcMjIzXDE2MFwyMjBcMDQ1XDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwyMDQifSwKLSAgICB7MjY5LCAic2ltcGxlX3N0bXQiLCAwLCA0LCBzdGF0ZXNfMTMsCi0gICAgICJcMDAwXDA0MFwwNDBcMjAwXDAwMFwwMDBcMDAwXDI0MFwzNDBcMjIzXDE2MFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwyMDAifSwKLSAgICB7MjcwLCAic21hbGxfc3RtdCIsIDAsIDIsIHN0YXRlc18xNCwKLSAgICAgIlwwMDBcMDQwXDA0MFwyMDBcMDAwXDAwMFwwMDBcMjQwXDM0MFwyMjNcMTYwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDIwMCJ9LAotICAgIHsyNzEsICJleHByX3N0bXQiLCAwLCA2LCBzdGF0ZXNfMTUsCi0gICAgICJcMDAwXDA0MFwwNDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDAifSwKLSAgICB7MjcyLCAidGVzdGxpc3Rfc3Rhcl9leHByIiwgMCwgMywgc3RhdGVzXzE2LAotICAgICAiXDAwMFwwNDBcMDQwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwyMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwIn0sCi0gICAgezI3MywgImF1Z2Fzc2lnbiIsIDAsIDIsIHN0YXRlc18xNywKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwzNzZcMDM3XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyNzQsICJkZWxfc3RtdCIsIDAsIDMsIHN0YXRlc18xOCwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyNzUsICJwYXNzX3N0bXQiLCAwLCAyLCBzdGF0ZXNfMTksCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7Mjc2LCAiZmxvd19zdG10IiwgMCwgMiwgc3RhdGVzXzIwLAotICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMzQwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwIn0sCi0gICAgezI3NywgImJyZWFrX3N0bXQiLCAwLCAyLCBzdGF0ZXNfMjEsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7Mjc4LCAiY29udGludWVfc3RtdCIsIDAsIDIsIHN0YXRlc18yMiwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDEwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyNzksICJyZXR1cm5fc3RtdCIsIDAsIDMsIHN0YXRlc18yMywKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyODAsICJ5aWVsZF9zdG10IiwgMCwgMiwgc3RhdGVzXzI0LAotICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwIn0sCi0gICAgezI4MSwgInJhaXNlX3N0bXQiLCAwLCA1LCBzdGF0ZXNfMjUsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7MjgyLCAiaW1wb3J0X3N0bXQiLCAwLCAyLCBzdGF0ZXNfMjYsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIyXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7MjgzLCAiaW1wb3J0X25hbWUiLCAwLCAzLCBzdGF0ZXNfMjcsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7Mjg0LCAiaW1wb3J0X2Zyb20iLCAwLCA4LCBzdGF0ZXNfMjgsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAyXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7Mjg1LCAiaW1wb3J0X2FzX25hbWUiLCAwLCA0LCBzdGF0ZXNfMjksCi0gICAgICJcMDAwXDAwMFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7Mjg2LCAiZG90dGVkX2FzX25hbWUiLCAwLCA0LCBzdGF0ZXNfMzAsCi0gICAgICJcMDAwXDAwMFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7Mjg3LCAiaW1wb3J0X2FzX25hbWVzIiwgMCwgMywgc3RhdGVzXzMxLAotICAgICAiXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezI4OCwgImRvdHRlZF9hc19uYW1lcyIsIDAsIDIsIHN0YXRlc18zMiwKLSAgICAgIlwwMDBcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyODksICJkb3R0ZWRfbmFtZSIsIDAsIDIsIHN0YXRlc18zMywKLSAgICAgIlwwMDBcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyOTAsICJnbG9iYWxfc3RtdCIsIDAsIDMsIHN0YXRlc18zNCwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyOTEsICJub25sb2NhbF9zdG10IiwgMCwgMywgc3RhdGVzXzM1LAotICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezI5MiwgImFzc2VydF9zdG10IiwgMCwgNSwgc3RhdGVzXzM2LAotICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwxMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezI5MywgImNvbXBvdW5kX3N0bXQiLCAwLCAyLCBzdGF0ZXNfMzcsCi0gICAgICJcMDAwXDAxMFwwMjBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMjBcMDQ1XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDQifSwKLSAgICB7Mjk0LCAiaWZfc3RtdCIsIDAsIDgsIHN0YXRlc18zOCwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAyMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyOTUsICJ3aGlsZV9zdG10IiwgMCwgOCwgc3RhdGVzXzM5LAotICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezI5NiwgImZvcl9zdG10IiwgMCwgMTAsIHN0YXRlc180MCwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDFcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHsyOTcsICJ0cnlfc3RtdCIsIDAsIDEzLCBzdGF0ZXNfNDEsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDA0XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7Mjk4LCAid2l0aF9zdG10IiwgMCwgNSwgc3RhdGVzXzQyLAotICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezI5OSwgIndpdGhfaXRlbSIsIDAsIDQsIHN0YXRlc180MywKLSAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMDAsICJleGNlcHRfY2xhdXNlIiwgMCwgNSwgc3RhdGVzXzQ0LAotICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDFcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezMwMSwgInN1aXRlIiwgMCwgNSwgc3RhdGVzXzQ1LAotICAgICAiXDAwNFwwNDBcMDQwXDIwMFwwMDBcMDAwXDAwMFwyNDBcMzQwXDIyM1wxNjBcMDAwXDAwMFwyMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMjAwIn0sCi0gICAgezMwMiwgInRlc3QiLCAwLCA2LCBzdGF0ZXNfNDYsCi0gICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDAifSwKLSAgICB7MzAzLCAidGVzdF9ub2NvbmQiLCAwLCAyLCBzdGF0ZXNfNDcsCi0gICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDAifSwKLSAgICB7MzA0LCAibGFtYmRlZiIsIDAsIDUsIHN0YXRlc180OCwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHszMDUsICJsYW1iZGVmX25vY29uZCIsIDAsIDUsIHN0YXRlc180OSwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHszMDYsICJvcl90ZXN0IiwgMCwgMiwgc3RhdGVzXzUwLAotICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwIn0sCi0gICAgezMwNywgImFuZF90ZXN0IiwgMCwgMiwgc3RhdGVzXzUxLAotICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwIn0sCi0gICAgezMwOCwgIm5vdF90ZXN0IiwgMCwgMywgc3RhdGVzXzUyLAotICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwIn0sCi0gICAgezMwOSwgImNvbXBhcmlzb24iLCAwLCAyLCBzdGF0ZXNfNTMsCi0gICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDAifSwKLSAgICB7MzEwLCAiY29tcF9vcCIsIDAsIDQsIHN0YXRlc181NCwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDJcMDAwXDIyMFwxNzdcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHszMTEsICJzdGFyX2V4cHIiLCAwLCAzLCBzdGF0ZXNfNTUsCi0gICAgICJcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7MzEyLCAiZXhwciIsIDAsIDIsIHN0YXRlc181NiwKLSAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMTMsICJ4b3JfZXhwciIsIDAsIDIsIHN0YXRlc181NywKLSAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMTQsICJhbmRfZXhwciIsIDAsIDIsIHN0YXRlc181OCwKLSAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMTUsICJzaGlmdF9leHByIiwgMCwgMiwgc3RhdGVzXzU5LAotICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwIn0sCi0gICAgezMxNiwgImFyaXRoX2V4cHIiLCAwLCAyLCBzdGF0ZXNfNjAsCi0gICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDAifSwKLSAgICB7MzE3LCAidGVybSIsIDAsIDIsIHN0YXRlc182MSwKLSAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMTgsICJmYWN0b3IiLCAwLCAzLCBzdGF0ZXNfNjIsCi0gICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDAifSwKLSAgICB7MzE5LCAicG93ZXIiLCAwLCA0LCBzdGF0ZXNfNjMsCi0gICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMTIwXDA3NlwwMDAifSwKLSAgICB7MzIwLCAiYXRvbSIsIDAsIDksIHN0YXRlc182NCwKLSAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwxMjBcMDc2XDAwMCJ9LAotICAgIHszMjEsICJ0ZXN0bGlzdF9jb21wIiwgMCwgNSwgc3RhdGVzXzY1LAotICAgICAiXDAwMFwwNDBcMDQwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwyMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwIn0sCi0gICAgezMyMiwgInRyYWlsZXIiLCAwLCA3LCBzdGF0ZXNfNjYsCi0gICAgICJcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMTAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDAifSwKLSAgICB7MzIzLCAic3Vic2NyaXB0bGlzdCIsIDAsIDMsIHN0YXRlc182NywKLSAgICAgIlwwMDBcMDQwXDA0MFwwMDJcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMjQsICJzdWJzY3JpcHQiLCAwLCA1LCBzdGF0ZXNfNjgsCi0gICAgICJcMDAwXDA0MFwwNDBcMDAyXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDAifSwKLSAgICB7MzI1LCAic2xpY2VvcCIsIDAsIDMsIHN0YXRlc182OSwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHszMjYsICJleHBybGlzdCIsIDAsIDMsIHN0YXRlc183MCwKLSAgICAgIlwwMDBcMDQwXDA0MFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMjcsICJ0ZXN0bGlzdCIsIDAsIDMsIHN0YXRlc183MSwKLSAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMjgsICJkaWN0b3JzZXRtYWtlciIsIDAsIDExLCBzdGF0ZXNfNzIsCi0gICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDAifSwKLSAgICB7MzI5LCAiY2xhc3NkZWYiLCAwLCA4LCBzdGF0ZXNfNzMsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDQifSwKLSAgICB7MzMwLCAiYXJnbGlzdCIsIDAsIDgsIHN0YXRlc183NCwKLSAgICAgIlwwMDBcMDQwXDA0MFwyMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMzEsICJhcmd1bWVudCIsIDAsIDQsIHN0YXRlc183NSwKLSAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMCJ9LAotICAgIHszMzIsICJjb21wX2l0ZXIiLCAwLCAyLCBzdGF0ZXNfNzYsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMjBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7MzMzLCAiY29tcF9mb3IiLCAwLCA2LCBzdGF0ZXNfNzcsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKLSAgICB7MzM0LCAiY29tcF9pZiIsIDAsIDQsIHN0YXRlc183OCwKLSAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAyMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAotICAgIHszMzUsICJlbmNvZGluZ19kZWNsIiwgMCwgMiwgc3RhdGVzXzc5LAotICAgICAiXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCi0gICAgezMzNiwgInlpZWxkX2V4cHIiLCAwLCAzLCBzdGF0ZXNfODAsCi0gICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDAifSwKK3N0YXRpYyBhcmMgYXJjc184MV8wWzJdID0geworICAgIHs3MywgMX0sCisgICAgezksIDJ9LAogfTsKLXN0YXRpYyBsYWJlbCBsYWJlbHNbMTY4XSA9IHsKK3N0YXRpYyBhcmMgYXJjc184MV8xWzFdID0geworICAgIHsyNCwgMn0sCit9Oworc3RhdGljIGFyYyBhcmNzXzgxXzJbMV0gPSB7CisgICAgezAsIDJ9LAorfTsKK3N0YXRpYyBzdGF0ZSBzdGF0ZXNfODFbM10gPSB7CisgICAgezIsIGFyY3NfODFfMH0sCisgICAgezEsIGFyY3NfODFfMX0sCisgICAgezEsIGFyY3NfODFfMn0sCit9Oworc3RhdGljIGRmYSBkZmFzWzgyXSA9IHsKKyAgICB7MjU2LCAic2luZ2xlX2lucHV0IiwgMCwgMywgc3RhdGVzXzAsCisgICAgICJcMDA0XDA1MFwwNjBcMjAwXDAwMFwwMDBcMDAwXDI0MFwzNDBcMjIzXDE2MFwyMjBcMDQ1XDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwyMDRcMDAwIn0sCisgICAgezI1NywgImZpbGVfaW5wdXQiLCAwLCAyLCBzdGF0ZXNfMSwKKyAgICAgIlwyMDRcMDUwXDA2MFwyMDBcMDAwXDAwMFwwMDBcMjQwXDM0MFwyMjNcMTYwXDIyMFwwNDVcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDIwNFwwMDAifSwKKyAgICB7MjU4LCAiZXZhbF9pbnB1dCIsIDAsIDMsIHN0YXRlc18yLAorICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwyMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwXDAwMCJ9LAorICAgIHsyNTksICJkZWNvcmF0b3IiLCAwLCA3LCBzdGF0ZXNfMywKKyAgICAgIlwwMDBcMDEwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7MjYwLCAiZGVjb3JhdG9ycyIsIDAsIDIsIHN0YXRlc180LAorICAgICAiXDAwMFwwMTBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHsyNjEsICJkZWNvcmF0ZWQiLCAwLCAzLCBzdGF0ZXNfNSwKKyAgICAgIlwwMDBcMDEwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7MjYyLCAiZnVuY2RlZiIsIDAsIDgsIHN0YXRlc182LAorICAgICAiXDAwMFwwMDBcMDIwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHsyNjMsICJwYXJhbWV0ZXJzIiwgMCwgNCwgc3RhdGVzXzcsCisgICAgICJcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI2NCwgInR5cGVkYXJnc2xpc3QiLCAwLCAxOCwgc3RhdGVzXzgsCisgICAgICJcMDAwXDAwMFwwNDBcMjAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI2NSwgInRmcGRlZiIsIDAsIDQsIHN0YXRlc185LAorICAgICAiXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHsyNjYsICJ2YXJhcmdzbGlzdCIsIDAsIDE4LCBzdGF0ZXNfMTAsCisgICAgICJcMDAwXDAwMFwwNDBcMjAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI2NywgInZmcGRlZiIsIDAsIDIsIHN0YXRlc18xMSwKKyAgICAgIlwwMDBcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7MjY4LCAic3RtdCIsIDAsIDIsIHN0YXRlc18xMiwKKyAgICAgIlwwMDBcMDUwXDA2MFwyMDBcMDAwXDAwMFwwMDBcMjQwXDM0MFwyMjNcMTYwXDIyMFwwNDVcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDIwNFwwMDAifSwKKyAgICB7MjY5LCAic2ltcGxlX3N0bXQiLCAwLCA0LCBzdGF0ZXNfMTMsCisgICAgICJcMDAwXDA0MFwwNDBcMjAwXDAwMFwwMDBcMDAwXDI0MFwzNDBcMjIzXDE2MFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwyMDBcMDAwIn0sCisgICAgezI3MCwgInNtYWxsX3N0bXQiLCAwLCAyLCBzdGF0ZXNfMTQsCisgICAgICJcMDAwXDA0MFwwNDBcMjAwXDAwMFwwMDBcMDAwXDI0MFwzNDBcMjIzXDE2MFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwyMDBcMDAwIn0sCisgICAgezI3MSwgImV4cHJfc3RtdCIsIDAsIDYsIHN0YXRlc18xNSwKKyAgICAgIlwwMDBcMDQwXDA0MFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MjcyLCAidGVzdGxpc3Rfc3Rhcl9leHByIiwgMCwgMywgc3RhdGVzXzE2LAorICAgICAiXDAwMFwwNDBcMDQwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwyMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwXDAwMCJ9LAorICAgIHsyNzMsICJhdWdhc3NpZ24iLCAwLCAyLCBzdGF0ZXNfMTcsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMzc2XDAzN1wwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI3NCwgImRlbF9zdG10IiwgMCwgMywgc3RhdGVzXzE4LAorICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHsyNzUsICJwYXNzX3N0bXQiLCAwLCAyLCBzdGF0ZXNfMTksCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI3NiwgImZsb3dfc3RtdCIsIDAsIDIsIHN0YXRlc18yMCwKKyAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDM0MFwwMDFcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDAifSwKKyAgICB7Mjc3LCAiYnJlYWtfc3RtdCIsIDAsIDIsIHN0YXRlc18yMSwKKyAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7Mjc4LCAiY29udGludWVfc3RtdCIsIDAsIDIsIHN0YXRlc18yMiwKKyAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDEwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7Mjc5LCAicmV0dXJuX3N0bXQiLCAwLCAzLCBzdGF0ZXNfMjMsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI4MCwgInlpZWxkX3N0bXQiLCAwLCAyLCBzdGF0ZXNfMjQsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwIn0sCisgICAgezI4MSwgInJhaXNlX3N0bXQiLCAwLCA1LCBzdGF0ZXNfMjUsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI4MiwgImltcG9ydF9zdG10IiwgMCwgMiwgc3RhdGVzXzI2LAorICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAyMlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHsyODMsICJpbXBvcnRfbmFtZSIsIDAsIDMsIHN0YXRlc18yNywKKyAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMjBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7Mjg0LCAiaW1wb3J0X2Zyb20iLCAwLCA4LCBzdGF0ZXNfMjgsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAyXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI4NSwgImltcG9ydF9hc19uYW1lIiwgMCwgNCwgc3RhdGVzXzI5LAorICAgICAiXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHsyODYsICJkb3R0ZWRfYXNfbmFtZSIsIDAsIDQsIHN0YXRlc18zMCwKKyAgICAgIlwwMDBcMDAwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7Mjg3LCAiaW1wb3J0X2FzX25hbWVzIiwgMCwgMywgc3RhdGVzXzMxLAorICAgICAiXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHsyODgsICJkb3R0ZWRfYXNfbmFtZXMiLCAwLCAyLCBzdGF0ZXNfMzIsCisgICAgICJcMDAwXDAwMFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI4OSwgImRvdHRlZF9uYW1lIiwgMCwgMiwgc3RhdGVzXzMzLAorICAgICAiXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHsyOTAsICJnbG9iYWxfc3RtdCIsIDAsIDMsIHN0YXRlc18zNCwKKyAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7MjkxLCAibm9ubG9jYWxfc3RtdCIsIDAsIDMsIHN0YXRlc18zNSwKKyAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7MjkyLCAiYXNzZXJ0X3N0bXQiLCAwLCA1LCBzdGF0ZXNfMzYsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDEwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI5MywgImNvbXBvdW5kX3N0bXQiLCAwLCAyLCBzdGF0ZXNfMzcsCisgICAgICJcMDAwXDAxMFwwMjBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMjBcMDQ1XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDRcMDAwIn0sCisgICAgezI5NCwgImlmX3N0bXQiLCAwLCA4LCBzdGF0ZXNfMzgsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMjBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI5NSwgIndoaWxlX3N0bXQiLCAwLCA4LCBzdGF0ZXNfMzksCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI5NiwgImZvcl9zdG10IiwgMCwgMTAsIHN0YXRlc180MCwKKyAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDFcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7Mjk3LCAidHJ5X3N0bXQiLCAwLCAxMywgc3RhdGVzXzQxLAorICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwNFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHsyOTgsICJ3aXRoX3N0bXQiLCAwLCA1LCBzdGF0ZXNfNDIsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezI5OSwgIndpdGhfaXRlbSIsIDAsIDQsIHN0YXRlc180MywKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzAwLCAiZXhjZXB0X2NsYXVzZSIsIDAsIDUsIHN0YXRlc180NCwKKyAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7MzAxLCAic3VpdGUiLCAwLCA1LCBzdGF0ZXNfNDUsCisgICAgICJcMDA0XDA0MFwwNDBcMjAwXDAwMFwwMDBcMDAwXDI0MFwzNDBcMjIzXDE2MFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwyMDBcMDAwIn0sCisgICAgezMwMiwgInRlc3QiLCAwLCA2LCBzdGF0ZXNfNDYsCisgICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDBcMDAwIn0sCisgICAgezMwMywgInRlc3Rfbm9jb25kIiwgMCwgMiwgc3RhdGVzXzQ3LAorICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwyMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwXDAwMCJ9LAorICAgIHszMDQsICJsYW1iZGVmIiwgMCwgNSwgc3RhdGVzXzQ4LAorICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHszMDUsICJsYW1iZGVmX25vY29uZCIsIDAsIDUsIHN0YXRlc180OSwKKyAgICAgIlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDAifSwKKyAgICB7MzA2LCAib3JfdGVzdCIsIDAsIDIsIHN0YXRlc181MCwKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzA3LCAiYW5kX3Rlc3QiLCAwLCAyLCBzdGF0ZXNfNTEsCisgICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDBcMDAwIn0sCisgICAgezMwOCwgIm5vdF90ZXN0IiwgMCwgMywgc3RhdGVzXzUyLAorICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwXDAwMCJ9LAorICAgIHszMDksICJjb21wYXJpc29uIiwgMCwgMiwgc3RhdGVzXzUzLAorICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwXDAwMCJ9LAorICAgIHszMTAsICJjb21wX29wIiwgMCwgNCwgc3RhdGVzXzU0LAorICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMlwwMDBcMjIwXDE3N1wwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHszMTEsICJzdGFyX2V4cHIiLCAwLCAzLCBzdGF0ZXNfNTUsCisgICAgICJcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezMxMiwgImV4cHIiLCAwLCAyLCBzdGF0ZXNfNTYsCisgICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDBcMDAwIn0sCisgICAgezMxMywgInhvcl9leHByIiwgMCwgMiwgc3RhdGVzXzU3LAorICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwXDAwMCJ9LAorICAgIHszMTQsICJhbmRfZXhwciIsIDAsIDIsIHN0YXRlc181OCwKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzE1LCAic2hpZnRfZXhwciIsIDAsIDIsIHN0YXRlc181OSwKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzE2LCAiYXJpdGhfZXhwciIsIDAsIDIsIHN0YXRlc182MCwKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzE3LCAidGVybSIsIDAsIDIsIHN0YXRlc182MSwKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzE4LCAiZmFjdG9yIiwgMCwgMywgc3RhdGVzXzYyLAorICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwXDAwMCJ9LAorICAgIHszMTksICJwb3dlciIsIDAsIDQsIHN0YXRlc182MywKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzIwLCAiYXRvbSIsIDAsIDksIHN0YXRlc182NCwKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzIxLCAidGVzdGxpc3RfY29tcCIsIDAsIDUsIHN0YXRlc182NSwKKyAgICAgIlwwMDBcMDQwXDA0MFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzIyLCAidHJhaWxlciIsIDAsIDcsIHN0YXRlc182NiwKKyAgICAgIlwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwxMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMjBcMDAwXDAwMFwwMDAifSwKKyAgICB7MzIzLCAic3Vic2NyaXB0bGlzdCIsIDAsIDMsIHN0YXRlc182NywKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDJcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzI0LCAic3Vic2NyaXB0IiwgMCwgNSwgc3RhdGVzXzY4LAorICAgICAiXDAwMFwwNDBcMDQwXDAwMlwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwyMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwXDAwMCJ9LAorICAgIHszMjUsICJzbGljZW9wIiwgMCwgMywgc3RhdGVzXzY5LAorICAgICAiXDAwMFwwMDBcMDAwXDAwMlwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHszMjYsICJleHBybGlzdCIsIDAsIDMsIHN0YXRlc183MCwKKyAgICAgIlwwMDBcMDQwXDA0MFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzI3LCAidGVzdGxpc3QiLCAwLCAzLCBzdGF0ZXNfNzEsCisgICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDBcMDAwIn0sCisgICAgezMyOCwgImRpY3RvcnNldG1ha2VyIiwgMCwgMTEsIHN0YXRlc183MiwKKyAgICAgIlwwMDBcMDQwXDA0MFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwyMDBcMDAwXDAwMFwwMDBcMjAwXDAyMFwwMDBcMDAwXDIwNlwxMjBcMDc2XDAwMFwwMDAifSwKKyAgICB7MzI5LCAiY2xhc3NkZWYiLCAwLCA4LCBzdGF0ZXNfNzMsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDRcMDAwIn0sCisgICAgezMzMCwgImFyZ2xpc3QiLCAwLCA4LCBzdGF0ZXNfNzQsCisgICAgICJcMDAwXDA0MFwwNDBcMjAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDBcMDAwIn0sCisgICAgezMzMSwgImFyZ3VtZW50IiwgMCwgNCwgc3RhdGVzXzc1LAorICAgICAiXDAwMFwwNDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDIwMFwwMDBcMDAwXDAwMFwyMDBcMDIwXDAwMFwwMDBcMjA2XDEyMFwwNzZcMDAwXDAwMCJ9LAorICAgIHszMzIsICJjb21wX2l0ZXIiLCAwLCAyLCBzdGF0ZXNfNzYsCisgICAgICJcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMjBcMDAxXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwIn0sCisgICAgezMzMywgImNvbXBfZm9yIiwgMCwgNiwgc3RhdGVzXzc3LAorICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMVwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHszMzQsICJjb21wX2lmIiwgMCwgNCwgc3RhdGVzXzc4LAorICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDIwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHszMzUsICJlbmNvZGluZ19kZWNsIiwgMCwgMiwgc3RhdGVzXzc5LAorICAgICAiXDAwMFwwMDBcMDQwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMCJ9LAorICAgIHszMzYsICJ5aWVsZF9leHByIiwgMCwgMywgc3RhdGVzXzgwLAorICAgICAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAwXDAwMCJ9LAorICAgIHszMzcsICJ5aWVsZF9hcmciLCAwLCAzLCBzdGF0ZXNfODEsCisgICAgICJcMDAwXDA0MFwwNDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMjAyXDAwMFwwMDBcMDAwXDIwMFwwMjBcMDAwXDAwMFwyMDZcMTIwXDA3NlwwMDBcMDAwIn0sCit9Oworc3RhdGljIGxhYmVsIGxhYmVsc1sxNjldID0gewogICAgIHswLCAiRU1QVFkifSwKICAgICB7MjU2LCAwfSwKICAgICB7NCwgMH0sCkBAIC0yMTM1LDEwICsyMTUyLDExIEBACiAgICAgezMzNCwgMH0sCiAgICAgezMzNSwgMH0sCiAgICAgezEsICJ5aWVsZCJ9LAorICAgIHszMzcsIDB9LAogfTsKIGdyYW1tYXIgX1B5UGFyc2VyX0dyYW1tYXIgPSB7Ci0gICAgODEsCisgICAgODIsCiAgICAgZGZhcywKLSAgICB7MTY4LCBsYWJlbHN9LAorICAgIHsxNjksIGxhYmVsc30sCiAgICAgMjU2CiB9OwpkaWZmIC0tZ2l0IGEvUHl0aG9uL2ltcG9ydC5jIGIvUHl0aG9uL2ltcG9ydC5jCmluZGV4IDU5OGI3ZTAuLmMzMTgxOWQgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9pbXBvcnQuYworKysgYi9QeXRob24vaW1wb3J0LmMKQEAgLTgsNiArOCw3IEBACiAjaW5jbHVkZSAiZXJyY29kZS5oIgogI2luY2x1ZGUgIm1hcnNoYWwuaCIKICNpbmNsdWRlICJjb2RlLmgiCisjaW5jbHVkZSAiZnJhbWVvYmplY3QuaCIKICNpbmNsdWRlICJvc2RlZnMuaCIKICNpbmNsdWRlICJpbXBvcnRkbC5oIgogCkBAIC0xMDIsMTAwICsxMDMsNTIgQEAKICAgICAgICBQeXRob24gMy4yYTE6IDMxNzAgKGFkZCBEVVBfVE9QX1RXTywgcmVtb3ZlIERVUF9UT1BYIGFuZCBST1RfRk9VUikKICAgICAgICAgICAgICAgICAgICAgIHRhZzogY3B5dGhvbi0zMgogICAgICAgIFB5dGhvbiAzLjJhMiAgMzE4MCAoYWRkIERFTEVURV9ERVJFRikKKyAgICAgICBQeXRob24gMy4zYTAgIDMxOTAgX19jbGFzc19fIHN1cGVyIGNsb3N1cmUgY2hhbmdlZAorICAgICAgIFB5dGhvbiAzLjNhMCAgMzIwMCAoX19xdWFsbmFtZV9fIGFkZGVkKQorICAgICAgICAgICAgICAgICAgICAgMzIxMCAoYWRkZWQgc2l6ZSBtb2R1bG8gMioqMzIgdG8gdGhlIHB5YyBoZWFkZXIpCisgICAgICAgUHl0aG9uIDMuM2ExICAzMjIwIChjaGFuZ2VkIFBFUCAzODAgaW1wbGVtZW50YXRpb24pCisgICAgICAgUHl0aG9uIDMuM2E0ICAzMjMwIChyZXZlcnQgY2hhbmdlcyB0byBpbXBsaWNpdCBfX2NsYXNzX18gY2xvc3VyZSkKICovCiAKIC8qIE1BR0lDIG11c3QgY2hhbmdlIHdoZW5ldmVyIHRoZSBieXRlY29kZSBlbWl0dGVkIGJ5IHRoZSBjb21waWxlciBtYXkgbm8KICAgIGxvbmdlciBiZSB1bmRlcnN0b29kIGJ5IG9sZGVyIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgZXZhbCBsb29wICh1c3VhbGx5CiAgICBkdWUgdG8gdGhlIGFkZGl0aW9uIG9mIG5ldyBvcGNvZGVzKQotICAgVEFHIG11c3QgY2hhbmdlIGZvciBlYWNoIG1ham9yIFB5dGhvbiByZWxlYXNlLiBUaGUgbWFnaWMgbnVtYmVyIHdpbGwgdGFrZQotICAgY2FyZSBvZiBhbnkgYnl0ZWNvZGUgY2hhbmdlcyB0aGF0IG9jY3VyIGR1cmluZyBkZXZlbG9wbWVudC4KICovCi0jZGVmaW5lIE1BR0lDICgzMTgwIHwgKChsb25nKSdccic8PDE2KSB8ICgobG9uZyknXG4nPDwyNCkpCi0jZGVmaW5lIFRBRyAiY3B5dGhvbi0zMiIKKyNkZWZpbmUgTUFHSUMgKDMyMzAgfCAoKGxvbmcpJ1xyJzw8MTYpIHwgKChsb25nKSdcbic8PDI0KSkKICNkZWZpbmUgQ0FDSEVESVIgIl9fcHljYWNoZV9fIgogLyogQ3VycmVudCBtYWdpYyB3b3JkIGFuZCBzdHJpbmcgdGFnIGFzIGdsb2JhbHMuICovCiBzdGF0aWMgbG9uZyBweWNfbWFnaWMgPSBNQUdJQzsKLXN0YXRpYyBjb25zdCBjaGFyICpweWNfdGFnID0gVEFHOwogCi0vKiBTZWUgX1B5SW1wb3J0X0ZpeHVwRXh0ZW5zaW9uVW5pY29kZSgpIGJlbG93ICovCisvKiBTZWUgX1B5SW1wb3J0X0ZpeHVwRXh0ZW5zaW9uT2JqZWN0KCkgYmVsb3cgKi8KIHN0YXRpYyBQeU9iamVjdCAqZXh0ZW5zaW9ucyA9IE5VTEw7CiAKKy8qIEZ1bmN0aW9uIGZyb20gUGFyc2VyL3Rva2VuaXplci5jICovCitleHRlcm4gY2hhciAqIFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZ0ZpbGVuYW1lKGludCwgUHlPYmplY3QgKik7CisKIC8qIFRoaXMgdGFibGUgaXMgZGVmaW5lZCBpbiBjb25maWcuYzogKi8KIGV4dGVybiBzdHJ1Y3QgX2luaXR0YWIgX1B5SW1wb3J0X0luaXR0YWJbXTsKIAotLyogTWV0aG9kIGZyb20gUGFyc2VyL3Rva2VuaXplci5jICovCi1leHRlcm4gY2hhciAqIFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZyhpbnQpOwotCiBzdHJ1Y3QgX2luaXR0YWIgKlB5SW1wb3J0X0luaXR0YWIgPSBfUHlJbXBvcnRfSW5pdHRhYjsKIAotLyogdGhlc2UgdGFibGVzIGRlZmluZSB0aGUgbW9kdWxlIHN1ZmZpeGVzIHRoYXQgUHl0aG9uIHJlY29nbml6ZXMgKi8KLXN0cnVjdCBmaWxlZGVzY3IgKiBfUHlJbXBvcnRfRmlsZXRhYiA9IE5VTEw7Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZWRlc2NyIF9QeUltcG9ydF9TdGFuZGFyZEZpbGV0YWJbXSA9IHsKLSAgICB7Ii5weSIsICJVIiwgUFlfU09VUkNFfSwKLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgeyIucHl3IiwgIlUiLCBQWV9TT1VSQ0V9LAotI2VuZGlmCi0gICAgeyIucHljIiwgInJiIiwgUFlfQ09NUElMRUR9LAotICAgIHswLCAwfQotfTsKLQorc3RhdGljIFB5T2JqZWN0ICppbml0c3RyID0gTlVMTDsKIAogLyogSW5pdGlhbGl6ZSB0aGluZ3MgKi8KIAogdm9pZAogX1B5SW1wb3J0X0luaXQodm9pZCkKIHsKLSAgICBjb25zdCBzdHJ1Y3QgZmlsZWRlc2NyICpzY2FuOwotICAgIHN0cnVjdCBmaWxlZGVzY3IgKmZpbGV0YWI7Ci0gICAgaW50IGNvdW50RCA9IDA7Ci0gICAgaW50IGNvdW50UyA9IDA7Ci0KLSAgICAvKiBwcmVwYXJlIF9QeUltcG9ydF9GaWxldGFiOiBjb3B5IGVudHJpZXMgZnJvbQotICAgICAgIF9QeUltcG9ydF9EeW5Mb2FkRmlsZXRhYiBhbmQgX1B5SW1wb3J0X1N0YW5kYXJkRmlsZXRhYi4KLSAgICAgKi8KLSNpZmRlZiBIQVZFX0RZTkFNSUNfTE9BRElORwotICAgIGZvciAoc2NhbiA9IF9QeUltcG9ydF9EeW5Mb2FkRmlsZXRhYjsgc2Nhbi0+c3VmZml4ICE9IE5VTEw7ICsrc2NhbikKLSAgICAgICAgKytjb3VudEQ7Ci0jZW5kaWYKLSAgICBmb3IgKHNjYW4gPSBfUHlJbXBvcnRfU3RhbmRhcmRGaWxldGFiOyBzY2FuLT5zdWZmaXggIT0gTlVMTDsgKytzY2FuKQotICAgICAgICArK2NvdW50UzsKLSAgICBmaWxldGFiID0gUHlNZW1fTkVXKHN0cnVjdCBmaWxlZGVzY3IsIGNvdW50RCArIGNvdW50UyArIDEpOwotICAgIGlmIChmaWxldGFiID09IE5VTEwpCi0gICAgICAgIFB5X0ZhdGFsRXJyb3IoIkNhbid0IGluaXRpYWxpemUgaW1wb3J0IGZpbGUgdGFibGUuIik7Ci0jaWZkZWYgSEFWRV9EWU5BTUlDX0xPQURJTkcKLSAgICBtZW1jcHkoZmlsZXRhYiwgX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiLAotICAgICAgICAgICBjb3VudEQgKiBzaXplb2Yoc3RydWN0IGZpbGVkZXNjcikpOwotI2VuZGlmCi0gICAgbWVtY3B5KGZpbGV0YWIgKyBjb3VudEQsIF9QeUltcG9ydF9TdGFuZGFyZEZpbGV0YWIsCi0gICAgICAgICAgIGNvdW50UyAqIHNpemVvZihzdHJ1Y3QgZmlsZWRlc2NyKSk7Ci0gICAgZmlsZXRhYltjb3VudEQgKyBjb3VudFNdLnN1ZmZpeCA9IE5VTEw7Ci0KLSAgICBfUHlJbXBvcnRfRmlsZXRhYiA9IGZpbGV0YWI7Ci0KLSAgICBpZiAoUHlfT3B0aW1pemVGbGFnKSB7Ci0gICAgICAgIC8qIFJlcGxhY2UgIi5weWMiIHdpdGggIi5weW8iIGluIF9QeUltcG9ydF9GaWxldGFiICovCi0gICAgICAgIGZvciAoOyBmaWxldGFiLT5zdWZmaXggIT0gTlVMTDsgZmlsZXRhYisrKSB7Ci0gICAgICAgICAgICBpZiAoc3RyY21wKGZpbGV0YWItPnN1ZmZpeCwgIi5weWMiKSA9PSAwKQotICAgICAgICAgICAgICAgIGZpbGV0YWItPnN1ZmZpeCA9ICIucHlvIjsKLSAgICAgICAgfQotICAgIH0KKyAgICBpbml0c3RyID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcoIl9faW5pdF9fIik7CisgICAgaWYgKGluaXRzdHIgPT0gTlVMTCkKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiQ2FuJ3QgaW5pdGlhbGl6ZSBpbXBvcnQgdmFyaWFibGVzIik7CiB9CiAKIHZvaWQKIF9QeUltcG9ydEhvb2tzX0luaXQodm9pZCkKIHsKLSAgICBQeU9iamVjdCAqdiwgKnBhdGhfaG9va3MgPSBOVUxMLCAqemltcGltcG9ydDsKKyAgICBQeU9iamVjdCAqdiwgKnBhdGhfaG9va3MgPSBOVUxMOwogICAgIGludCBlcnIgPSAwOwogCi0gICAgLyogYWRkaW5nIHN5cy5wYXRoX2hvb2tzIGFuZCBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZSwgc2V0dGluZyB1cAotICAgICAgIHppcGltcG9ydCAqLwotICAgIGlmIChQeVR5cGVfUmVhZHkoJlB5TnVsbEltcG9ydGVyX1R5cGUpIDwgMCkKLSAgICAgICAgZ290byBlcnJvcjsKLQotICAgIGlmIChQeV9WZXJib3NlRmxhZykKLSAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoIiMgaW5zdGFsbGluZyB6aXBpbXBvcnQgaG9va1xuIik7Ci0KKyAgICAvKiBhZGRpbmcgc3lzLnBhdGhfaG9va3MgYW5kIHN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlICovCiAgICAgdiA9IFB5TGlzdF9OZXcoMCk7CiAgICAgaWYgKHYgPT0gTlVMTCkKICAgICAgICAgZ290byBlcnJvcjsKQEAgLTIxNiwxMSArMTY5LDI1IEBACiAgICAgZXJyID0gUHlTeXNfU2V0T2JqZWN0KCJwYXRoX2hvb2tzIiwgcGF0aF9ob29rcyk7CiAgICAgaWYgKGVycikgewogICBlcnJvcjoKLSAgICAgICAgUHlFcnJfUHJpbnQoKTsKLSAgICAgICAgUHlfRmF0YWxFcnJvcigiaW5pdGlhbGl6aW5nIHN5cy5tZXRhX3BhdGgsIHN5cy5wYXRoX2hvb2tzLCAiCi0gICAgICAgICAgICAgICAgICAgICAgInBhdGhfaW1wb3J0ZXJfY2FjaGUsIG9yIE51bGxJbXBvcnRlciBmYWlsZWQiCi0gICAgICAgICAgICAgICAgICAgICAgKTsKKyAgICBQeUVycl9QcmludCgpOworICAgIFB5X0ZhdGFsRXJyb3IoImluaXRpYWxpemluZyBzeXMubWV0YV9wYXRoLCBzeXMucGF0aF9ob29rcywgIgorICAgICAgICAgICAgICAgICAgIm9yIHBhdGhfaW1wb3J0ZXJfY2FjaGUgZmFpbGVkIik7CiAgICAgfQorICAgIFB5X0RFQ1JFRihwYXRoX2hvb2tzKTsKK30KKwordm9pZAorX1B5SW1wb3J0WmlwX0luaXQodm9pZCkKK3sKKyAgICBQeU9iamVjdCAqcGF0aF9ob29rcywgKnppbXBpbXBvcnQ7CisgICAgaW50IGVyciA9IDA7CisKKyAgICBwYXRoX2hvb2tzID0gUHlTeXNfR2V0T2JqZWN0KCJwYXRoX2hvb2tzIik7CisgICAgaWYgKHBhdGhfaG9va3MgPT0gTlVMTCkKKyAgICAgICAgZ290byBlcnJvcjsKKworICAgIGlmIChQeV9WZXJib3NlRmxhZykKKyAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoIiMgaW5zdGFsbGluZyB6aXBpbXBvcnQgaG9va1xuIik7CiAKICAgICB6aW1waW1wb3J0ID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlKCJ6aXBpbXBvcnQiKTsKICAgICBpZiAoemltcGltcG9ydCA9PSBOVUxMKSB7CkBAIC0yMjksOCArMTk2LDkgQEAKICAgICAgICAgICAgIFB5U3lzX1dyaXRlU3RkZXJyKCIjIGNhbid0IGltcG9ydCB6aXBpbXBvcnRcbiIpOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAgUHlPYmplY3QgKnppcGltcG9ydGVyID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh6aW1waW1wb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ6aXBpbXBvcnRlciIpOworICAgICAgICBfUHlfSURFTlRJRklFUih6aXBpbXBvcnRlcik7CisgICAgICAgIFB5T2JqZWN0ICp6aXBpbXBvcnRlciA9IF9QeU9iamVjdF9HZXRBdHRySWQoemltcGltcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlJZF96aXBpbXBvcnRlcik7CiAgICAgICAgIFB5X0RFQ1JFRih6aW1waW1wb3J0KTsKICAgICAgICAgaWYgKHppcGltcG9ydGVyID09IE5VTEwpIHsKICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7IC8qIE5vIHppcGltcG9ydGVyIG9iamVjdCAtLSBva2F5ICovCkBAIC0yMzksMTcgKzIwNywyMyBAQAogICAgICAgICAgICAgICAgICAgICAiIyBjYW4ndCBpbXBvcnQgemlwaW1wb3J0LnppcGltcG9ydGVyXG4iKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIC8qIHN5cy5wYXRoX2hvb2tzLmFwcGVuZCh6aXBpbXBvcnRlcikgKi8KLSAgICAgICAgICAgIGVyciA9IFB5TGlzdF9BcHBlbmQocGF0aF9ob29rcywgemlwaW1wb3J0ZXIpOworICAgICAgICAgICAgLyogc3lzLnBhdGhfaG9va3MuaW5zZXJ0KDAsIHppcGltcG9ydGVyKSAqLworICAgICAgICAgICAgZXJyID0gUHlMaXN0X0luc2VydChwYXRoX2hvb2tzLCAwLCB6aXBpbXBvcnRlcik7CiAgICAgICAgICAgICBQeV9ERUNSRUYoemlwaW1wb3J0ZXIpOwotICAgICAgICAgICAgaWYgKGVycikKKyAgICAgICAgICAgIGlmIChlcnIgPCAwKSB7CiAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChQeV9WZXJib3NlRmxhZykKICAgICAgICAgICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigKICAgICAgICAgICAgICAgICAgICAgIiMgaW5zdGFsbGVkIHppcGltcG9ydCBob29rXG4iKTsKICAgICAgICAgfQogICAgIH0KLSAgICBQeV9ERUNSRUYocGF0aF9ob29rcyk7CisKKyAgICByZXR1cm47CisKKyAgZXJyb3I6CisgICAgUHlFcnJfUHJpbnQoKTsKKyAgICBQeV9GYXRhbEVycm9yKCJpbml0aWFsaXppbmcgemlwaW1wb3J0IGZhaWxlZCIpOwogfQogCiAvKiBMb2NraW5nIHByaW1pdGl2ZXMgdG8gcHJldmVudCBwYXJhbGxlbCBpbXBvcnRzIG9mIHRoZSBzYW1lIG1vZHVsZQpAQCAtMzE5LDcgKzI5Myw3IEBACiAgICAgICAgIC8qIEZvcmtlZCBhcyBhIHNpZGUgZWZmZWN0IG9mIGltcG9ydCAqLwogICAgICAgICBsb25nIG1lID0gUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCgpOwogICAgICAgICBQeVRocmVhZF9hY3F1aXJlX2xvY2soaW1wb3J0X2xvY2ssIDApOwotCS8qIFhYWDogY2FuIHRoZSBwcmV2aW91cyBsaW5lIGZhaWw/ICovCisgICAgICAgIC8qIFhYWDogY2FuIHRoZSBwcmV2aW91cyBsaW5lIGZhaWw/ICovCiAgICAgICAgIGltcG9ydF9sb2NrX3RocmVhZCA9IG1lOwogICAgICAgICBpbXBvcnRfbG9ja19sZXZlbC0tOwogICAgIH0gZWxzZSB7CkBAIC0zNjksOCArMzQzLDYgQEAKIHsKICAgICBQeV9YREVDUkVGKGV4dGVuc2lvbnMpOwogICAgIGV4dGVuc2lvbnMgPSBOVUxMOwotICAgIFB5TWVtX0RFTChfUHlJbXBvcnRfRmlsZXRhYik7Ci0gICAgX1B5SW1wb3J0X0ZpbGV0YWIgPSBOVUxMOwogI2lmZGVmIFdJVEhfVEhSRUFECiAgICAgaWYgKGltcG9ydF9sb2NrICE9IE5VTEwpIHsKICAgICAgICAgUHlUaHJlYWRfZnJlZV9sb2NrKGltcG9ydF9sb2NrKTsKQEAgLTM3OSwxNCArMzUxLDYgQEAKICNlbmRpZgogfQogCi1zdGF0aWMgdm9pZAotaW1wX21vZHVsZXNfcmVsb2FkaW5nX2NsZWFyKHZvaWQpCi17Ci0gICAgUHlJbnRlcnByZXRlclN0YXRlICppbnRlcnAgPSBQeVRocmVhZFN0YXRlX0dldCgpLT5pbnRlcnA7Ci0gICAgaWYgKGludGVycC0+bW9kdWxlc19yZWxvYWRpbmcgIT0gTlVMTCkKLSAgICAgICAgUHlEaWN0X0NsZWFyKGludGVycC0+bW9kdWxlc19yZWxvYWRpbmcpOwotfQotCiAvKiBIZWxwZXIgZm9yIHN5cyAqLwogCiBQeU9iamVjdCAqCkBAIC00MjMsNyArMzg3LDYgQEAKIFB5SW1wb3J0X0NsZWFudXAodm9pZCkKIHsKICAgICBQeV9zc2l6ZV90IHBvcywgbmRvbmU7Ci0gICAgY2hhciAqbmFtZTsKICAgICBQeU9iamVjdCAqa2V5LCAqdmFsdWUsICpkaWN0OwogICAgIFB5SW50ZXJwcmV0ZXJTdGF0ZSAqaW50ZXJwID0gUHlUaHJlYWRTdGF0ZV9HRVQoKS0+aW50ZXJwOwogICAgIFB5T2JqZWN0ICptb2R1bGVzID0gaW50ZXJwLT5tb2R1bGVzOwpAQCAtNDk2LDE0ICs0NTksMTMgQEAKICAgICAgICAgICAgIGlmICh2YWx1ZS0+b2JfcmVmY250ICE9IDEpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NoZWNrKGtleSkgJiYgUHlNb2R1bGVfQ2hlY2sodmFsdWUpKSB7Ci0gICAgICAgICAgICAgICAgbmFtZSA9IF9QeVVuaWNvZGVfQXNTdHJpbmcoa2V5KTsKLSAgICAgICAgICAgICAgICBpZiAoc3RyY21wKG5hbWUsICJidWlsdGlucyIpID09IDApCisgICAgICAgICAgICAgICAgaWYgKFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKGtleSwgImJ1aWx0aW5zIikgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgaWYgKHN0cmNtcChuYW1lLCAic3lzIikgPT0gMCkKKyAgICAgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcoa2V5LCAic3lzIikgPT0gMCkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQotICAgICAgICAgICAgICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigKLSAgICAgICAgICAgICAgICAgICAgICAgICIjIGNsZWFudXBbMV0gJXNcbiIsIG5hbWUpOworICAgICAgICAgICAgICAgICAgICBQeVN5c19Gb3JtYXRTdGRlcnIoCisgICAgICAgICAgICAgICAgICAgICAgICAiIyBjbGVhbnVwWzFdICVVXG4iLCBrZXkpOwogICAgICAgICAgICAgICAgIF9QeU1vZHVsZV9DbGVhcih2YWx1ZSk7CiAgICAgICAgICAgICAgICAgUHlEaWN0X1NldEl0ZW0obW9kdWxlcywga2V5LCBQeV9Ob25lKTsKICAgICAgICAgICAgICAgICBuZG9uZSsrOwpAQCAtNTE1LDEzICs0NzcsMTIgQEAKICAgICBwb3MgPSAwOwogICAgIHdoaWxlIChQeURpY3RfTmV4dChtb2R1bGVzLCAmcG9zLCAma2V5LCAmdmFsdWUpKSB7CiAgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2soa2V5KSAmJiBQeU1vZHVsZV9DaGVjayh2YWx1ZSkpIHsKLSAgICAgICAgICAgIG5hbWUgPSBfUHlVbmljb2RlX0FzU3RyaW5nKGtleSk7Ci0gICAgICAgICAgICBpZiAoc3RyY21wKG5hbWUsICJidWlsdGlucyIpID09IDApCisgICAgICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcoa2V5LCAiYnVpbHRpbnMiKSA9PSAwKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgaWYgKHN0cmNtcChuYW1lLCAic3lzIikgPT0gMCkKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZyhrZXksICJzeXMiKSA9PSAwKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQotICAgICAgICAgICAgICAgIFB5U3lzX1dyaXRlU3RkZXJyKCIjIGNsZWFudXBbMl0gJXNcbiIsIG5hbWUpOworICAgICAgICAgICAgICAgIFB5U3lzX0Zvcm1hdFN0ZGVycigiIyBjbGVhbnVwWzJdICVVXG4iLCBrZXkpOwogICAgICAgICAgICAgX1B5TW9kdWxlX0NsZWFyKHZhbHVlKTsKICAgICAgICAgICAgIFB5RGljdF9TZXRJdGVtKG1vZHVsZXMsIGtleSwgUHlfTm9uZSk7CiAgICAgICAgIH0KQEAgLTU0Nyw3ICs1MDgsNiBAQAogICAgIFB5RGljdF9DbGVhcihtb2R1bGVzKTsKICAgICBpbnRlcnAtPm1vZHVsZXMgPSBOVUxMOwogICAgIFB5X0RFQ1JFRihtb2R1bGVzKTsKLSAgICBQeV9DTEVBUihpbnRlcnAtPm1vZHVsZXNfcmVsb2FkaW5nKTsKIH0KIAogCkBAIC01NjMsMTggKzUyMywzMSBAQAogY29uc3QgY2hhciAqCiBQeUltcG9ydF9HZXRNYWdpY1RhZyh2b2lkKQogewotICAgIHJldHVybiBweWNfdGFnOworICAgIFB5T2JqZWN0ICppbXBsLCAqdGFnOworICAgIGNvbnN0IGNoYXIgKnJhd190YWc7CisKKyAgICAvKiBXZSBjb3VsZCBhbHNvIHB1bGwgaXQgZnJvbSBpbXAgb3IgaW1wb3J0bGliLiAqLworICAgIGltcGwgPSBQeVN5c19HZXRPYmplY3QoImltcGxlbWVudGF0aW9uIik7CisgICAgaWYgKGltcGwgPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgdGFnID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhpbXBsLCAiY2FjaGVfdGFnIik7CisgICAgaWYgKHRhZyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICByYXdfdGFnID0gUHlVbmljb2RlX0RBVEEodGFnKTsKKyAgICBQeV9ERUNSRUYodGFnKTsKKyAgICByZXR1cm4gcmF3X3RhZzsKIH0KIAorCiAvKiBNYWdpYyBmb3IgZXh0ZW5zaW9uIG1vZHVsZXMgKGJ1aWx0LWluIGFzIHdlbGwgYXMgZHluYW1pY2FsbHkKICAgIGxvYWRlZCkuICBUbyBwcmV2ZW50IGluaXRpYWxpemluZyBhbiBleHRlbnNpb24gbW9kdWxlIG1vcmUgdGhhbgogICAgb25jZSwgd2Uga2VlcCBhIHN0YXRpYyBkaWN0aW9uYXJ5ICdleHRlbnNpb25zJyBrZXllZCBieSBtb2R1bGUgbmFtZQogICAgKGZvciBidWlsdC1pbiBtb2R1bGVzKSBvciBieSBmaWxlbmFtZSAoZm9yIGR5bmFtaWNhbGx5IGxvYWRlZAogICAgbW9kdWxlcyksIGNvbnRhaW5pbmcgdGhlc2UgbW9kdWxlcy4gIEEgY29weSBvZiB0aGUgbW9kdWxlJ3MKLSAgIGRpY3Rpb25hcnkgaXMgc3RvcmVkIGJ5IGNhbGxpbmcgX1B5SW1wb3J0X0ZpeHVwRXh0ZW5zaW9uVW5pY29kZSgpCisgICBkaWN0aW9uYXJ5IGlzIHN0b3JlZCBieSBjYWxsaW5nIF9QeUltcG9ydF9GaXh1cEV4dGVuc2lvbk9iamVjdCgpCiAgICBpbW1lZGlhdGVseSBhZnRlciB0aGUgbW9kdWxlIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uIHN1Y2NlZWRzLiAgQQogICAgY29weSBjYW4gYmUgcmV0cmlldmVkIGZyb20gdGhlcmUgYnkgY2FsbGluZwotICAgX1B5SW1wb3J0X0ZpbmRFeHRlbnNpb25Vbmljb2RlKCkuCisgICBfUHlJbXBvcnRfRmluZEV4dGVuc2lvbk9iamVjdCgpLgogCiAgICBNb2R1bGVzIHdoaWNoIGRvIHN1cHBvcnQgbXVsdGlwbGUgaW5pdGlhbGl6YXRpb24gc2V0IHRoZWlyIG1fc2l6ZQogICAgZmllbGQgdG8gYSBub24tbmVnYXRpdmUgbnVtYmVyIChpbmRpY2F0aW5nIHRoZSBzaXplIG9mIHRoZQpAQCAtNTgzLDcgKzU1Niw4IEBACiAqLwogCiBpbnQKLV9QeUltcG9ydF9GaXh1cEV4dGVuc2lvblVuaWNvZGUoUHlPYmplY3QgKm1vZCwgY2hhciAqbmFtZSwgUHlPYmplY3QgKmZpbGVuYW1lKQorX1B5SW1wb3J0X0ZpeHVwRXh0ZW5zaW9uT2JqZWN0KFB5T2JqZWN0ICptb2QsIFB5T2JqZWN0ICpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpmaWxlbmFtZSkKIHsKICAgICBQeU9iamVjdCAqbW9kdWxlcywgKmRpY3Q7CiAgICAgc3RydWN0IFB5TW9kdWxlRGVmICpkZWY7CkBAIC02MDIsMTAgKzU3NiwxMCBAQAogICAgICAgICByZXR1cm4gLTE7CiAgICAgfQogICAgIG1vZHVsZXMgPSBQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCk7Ci0gICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKG1vZHVsZXMsIG5hbWUsIG1vZCkgPCAwKQorICAgIGlmIChQeURpY3RfU2V0SXRlbShtb2R1bGVzLCBuYW1lLCBtb2QpIDwgMCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIGlmIChfUHlTdGF0ZV9BZGRNb2R1bGUobW9kLCBkZWYpIDwgMCkgewotICAgICAgICBQeURpY3RfRGVsSXRlbVN0cmluZyhtb2R1bGVzLCBuYW1lKTsKKyAgICAgICAgUHlEaWN0X0RlbEl0ZW0obW9kdWxlcywgbmFtZSk7CiAgICAgICAgIHJldHVybiAtMTsKICAgICB9CiAgICAgaWYgKGRlZi0+bV9zaXplID09IC0xKSB7CkBAIC02MzEsMTcgKzYwNSwxNyBAQAogX1B5SW1wb3J0X0ZpeHVwQnVpbHRpbihQeU9iamVjdCAqbW9kLCBjaGFyICpuYW1lKQogewogICAgIGludCByZXM7Ci0gICAgUHlPYmplY3QgKmZpbGVuYW1lOwotICAgIGZpbGVuYW1lID0gUHlVbmljb2RlX0Zyb21TdHJpbmcobmFtZSk7Ci0gICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCisgICAgUHlPYmplY3QgKm5hbWVvYmo7CisgICAgbmFtZW9iaiA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKG5hbWUpOworICAgIGlmIChuYW1lb2JqID09IE5VTEwpCiAgICAgICAgIHJldHVybiAtMTsKLSAgICByZXMgPSBfUHlJbXBvcnRfRml4dXBFeHRlbnNpb25Vbmljb2RlKG1vZCwgbmFtZSwgZmlsZW5hbWUpOwotICAgIFB5X0RFQ1JFRihmaWxlbmFtZSk7CisgICAgcmVzID0gX1B5SW1wb3J0X0ZpeHVwRXh0ZW5zaW9uT2JqZWN0KG1vZCwgbmFtZW9iaiwgbmFtZW9iaik7CisgICAgUHlfREVDUkVGKG5hbWVvYmopOwogICAgIHJldHVybiByZXM7CiB9CiAKIFB5T2JqZWN0ICoKLV9QeUltcG9ydF9GaW5kRXh0ZW5zaW9uVW5pY29kZShjaGFyICpuYW1lLCBQeU9iamVjdCAqZmlsZW5hbWUpCitfUHlJbXBvcnRfRmluZEV4dGVuc2lvbk9iamVjdChQeU9iamVjdCAqbmFtZSwgUHlPYmplY3QgKmZpbGVuYW1lKQogewogICAgIFB5T2JqZWN0ICptb2QsICptZGljdDsKICAgICBQeU1vZHVsZURlZiogZGVmOwpAQCAtNjU0LDcgKzYyOCw3IEBACiAgICAgICAgIC8qIE1vZHVsZSBkb2VzIG5vdCBzdXBwb3J0IHJlcGVhdGVkIGluaXRpYWxpemF0aW9uICovCiAgICAgICAgIGlmIChkZWYtPm1fYmFzZS5tX2NvcHkgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBtb2QgPSBQeUltcG9ydF9BZGRNb2R1bGUobmFtZSk7CisgICAgICAgIG1vZCA9IFB5SW1wb3J0X0FkZE1vZHVsZU9iamVjdChuYW1lKTsKICAgICAgICAgaWYgKG1vZCA9PSBOVUxMKQogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIG1kaWN0ID0gUHlNb2R1bGVfR2V0RGljdChtb2QpOwpAQCAtNjY5LDMwICs2NDMsMzAgQEAKICAgICAgICAgbW9kID0gZGVmLT5tX2Jhc2UubV9pbml0KCk7CiAgICAgICAgIGlmIChtb2QgPT0gTlVMTCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBQeURpY3RfU2V0SXRlbVN0cmluZyhQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCksIG5hbWUsIG1vZCk7CisgICAgICAgIFB5RGljdF9TZXRJdGVtKFB5SW1wb3J0X0dldE1vZHVsZURpY3QoKSwgbmFtZSwgbW9kKTsKICAgICAgICAgUHlfREVDUkVGKG1vZCk7CiAgICAgfQogICAgIGlmIChfUHlTdGF0ZV9BZGRNb2R1bGUobW9kLCBkZWYpIDwgMCkgewotICAgICAgICBQeURpY3RfRGVsSXRlbVN0cmluZyhQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCksIG5hbWUpOworICAgICAgICBQeURpY3RfRGVsSXRlbShQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCksIG5hbWUpOwogICAgICAgICBQeV9ERUNSRUYobW9kKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAgIGlmIChQeV9WZXJib3NlRmxhZykKLSAgICAgICAgUHlTeXNfRm9ybWF0U3RkZXJyKCJpbXBvcnQgJXMgIyBwcmV2aW91c2x5IGxvYWRlZCAoJVUpXG4iLAorICAgICAgICBQeVN5c19Gb3JtYXRTdGRlcnIoImltcG9ydCAlVSAjIHByZXZpb3VzbHkgbG9hZGVkICglUilcbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIGZpbGVuYW1lKTsKICAgICByZXR1cm4gbW9kOwogCiB9CiAKIFB5T2JqZWN0ICoKLV9QeUltcG9ydF9GaW5kQnVpbHRpbihjaGFyICpuYW1lKQorX1B5SW1wb3J0X0ZpbmRCdWlsdGluKGNvbnN0IGNoYXIgKm5hbWUpCiB7Ci0gICAgUHlPYmplY3QgKnJlcywgKmZpbGVuYW1lOwotICAgIGZpbGVuYW1lID0gUHlVbmljb2RlX0Zyb21TdHJpbmcobmFtZSk7Ci0gICAgaWYgKGZpbGVuYW1lID09IE5VTEwpCisgICAgUHlPYmplY3QgKnJlcywgKm5hbWVvYmo7CisgICAgbmFtZW9iaiA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKG5hbWUpOworICAgIGlmIChuYW1lb2JqID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHJlcyA9IF9QeUltcG9ydF9GaW5kRXh0ZW5zaW9uVW5pY29kZShuYW1lLCBmaWxlbmFtZSk7Ci0gICAgUHlfREVDUkVGKGZpbGVuYW1lKTsKKyAgICByZXMgPSBfUHlJbXBvcnRfRmluZEV4dGVuc2lvbk9iamVjdChuYW1lb2JqLCBuYW1lb2JqKTsKKyAgICBQeV9ERUNSRUYobmFtZW9iaik7CiAgICAgcmV0dXJuIHJlczsKIH0KIApAQCAtNzAzLDE4ICs2NzcsMTggQEAKICAgICdORVcnIFJFRkVSRU5DRSEgKi8KIAogUHlPYmplY3QgKgotUHlJbXBvcnRfQWRkTW9kdWxlKGNvbnN0IGNoYXIgKm5hbWUpCitQeUltcG9ydF9BZGRNb2R1bGVPYmplY3QoUHlPYmplY3QgKm5hbWUpCiB7CiAgICAgUHlPYmplY3QgKm1vZHVsZXMgPSBQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCk7CiAgICAgUHlPYmplY3QgKm07CiAKLSAgICBpZiAoKG0gPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzLCBuYW1lKSkgIT0gTlVMTCAmJgorICAgIGlmICgobSA9IFB5RGljdF9HZXRJdGVtKG1vZHVsZXMsIG5hbWUpKSAhPSBOVUxMICYmCiAgICAgICAgIFB5TW9kdWxlX0NoZWNrKG0pKQogICAgICAgICByZXR1cm4gbTsKLSAgICBtID0gUHlNb2R1bGVfTmV3KG5hbWUpOworICAgIG0gPSBQeU1vZHVsZV9OZXdPYmplY3QobmFtZSk7CiAgICAgaWYgKG0gPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKG1vZHVsZXMsIG5hbWUsIG0pICE9IDApIHsKKyAgICBpZiAoUHlEaWN0X1NldEl0ZW0obW9kdWxlcywgbmFtZSwgbSkgIT0gMCkgewogICAgICAgICBQeV9ERUNSRUYobSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTcyMywyMiArNjk3LDMzIEBACiAgICAgcmV0dXJuIG07CiB9CiAKK1B5T2JqZWN0ICoKK1B5SW1wb3J0X0FkZE1vZHVsZShjb25zdCBjaGFyICpuYW1lKQoreworICAgIFB5T2JqZWN0ICpuYW1lb2JqLCAqbW9kdWxlOworICAgIG5hbWVvYmogPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhuYW1lKTsKKyAgICBpZiAobmFtZW9iaiA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBtb2R1bGUgPSBQeUltcG9ydF9BZGRNb2R1bGVPYmplY3QobmFtZW9iaik7CisgICAgUHlfREVDUkVGKG5hbWVvYmopOworICAgIHJldHVybiBtb2R1bGU7Cit9CisKKwogLyogUmVtb3ZlIG5hbWUgZnJvbSBzeXMubW9kdWxlcywgaWYgaXQncyB0aGVyZS4gKi8KIHN0YXRpYyB2b2lkCi1yZW1vdmVfbW9kdWxlKGNvbnN0IGNoYXIgKm5hbWUpCityZW1vdmVfbW9kdWxlKFB5T2JqZWN0ICpuYW1lKQogewogICAgIFB5T2JqZWN0ICptb2R1bGVzID0gUHlJbXBvcnRfR2V0TW9kdWxlRGljdCgpOwotICAgIGlmIChQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzLCBuYW1lKSA9PSBOVUxMKQorICAgIGlmIChQeURpY3RfR2V0SXRlbShtb2R1bGVzLCBuYW1lKSA9PSBOVUxMKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFB5RGljdF9EZWxJdGVtU3RyaW5nKG1vZHVsZXMsIG5hbWUpIDwgMCkKKyAgICBpZiAoUHlEaWN0X0RlbEl0ZW0obW9kdWxlcywgbmFtZSkgPCAwKQogICAgICAgICBQeV9GYXRhbEVycm9yKCJpbXBvcnQ6ICBkZWxldGluZyBleGlzdGluZyBrZXkgaW4iCiAgICAgICAgICAgICAgICAgICAgICAgInN5cy5tb2R1bGVzIGZhaWxlZCIpOwogfQogCi1zdGF0aWMgUHlPYmplY3QgKiBnZXRfc291cmNlZmlsZShjaGFyICpmaWxlKTsKLXN0YXRpYyBjaGFyICptYWtlX3NvdXJjZV9wYXRobmFtZShjaGFyICpwYXRobmFtZSwgY2hhciAqYnVmKTsKLXN0YXRpYyBjaGFyICptYWtlX2NvbXBpbGVkX3BhdGhuYW1lKGNoYXIgKnBhdGhuYW1lLCBjaGFyICpidWYsIHNpemVfdCBidWZsZW4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZGVidWcpOworc3RhdGljIFB5T2JqZWN0ICogZ2V0X3NvdXJjZWZpbGUoUHlPYmplY3QgKmZpbGVuYW1lKTsKK3N0YXRpYyBQeU9iamVjdCAqbWFrZV9zb3VyY2VfcGF0aG5hbWUoUHlPYmplY3QgKnBhdGhuYW1lKTsKIAogLyogRXhlY3V0ZSBhIGNvZGUgb2JqZWN0IGluIGEgbW9kdWxlIGFuZCByZXR1cm4gdGhlIG1vZHVsZSBvYmplY3QKICAqIFdJVEggSU5DUkVNRU5URUQgUkVGRVJFTkNFIENPVU5ULiAgSWYgYW4gZXJyb3Igb2NjdXJzLCBuYW1lIGlzCkBAIC03NjgsMTAgKzc1Myw0MSBAQAogUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVXaXRoUGF0aG5hbWVzKGNoYXIgKm5hbWUsIFB5T2JqZWN0ICpjbywgY2hhciAqcGF0aG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqY3BhdGhuYW1lKQogeworICAgIFB5T2JqZWN0ICptID0gTlVMTDsKKyAgICBQeU9iamVjdCAqbmFtZW9iaiwgKnBhdGhvYmogPSBOVUxMLCAqY3BhdGhvYmogPSBOVUxMOworCisgICAgbmFtZW9iaiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKG5hbWUpOworICAgIGlmIChuYW1lb2JqID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKHBhdGhuYW1lICE9IE5VTEwpIHsKKyAgICAgICAgcGF0aG9iaiA9IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQocGF0aG5hbWUpOworICAgICAgICBpZiAocGF0aG9iaiA9PSBOVUxMKQorICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICB9IGVsc2UKKyAgICAgICAgcGF0aG9iaiA9IE5VTEw7CisgICAgaWYgKGNwYXRobmFtZSAhPSBOVUxMKSB7CisgICAgICAgIGNwYXRob2JqID0gUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdChjcGF0aG5hbWUpOworICAgICAgICBpZiAoY3BhdGhvYmogPT0gTlVMTCkKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfSBlbHNlCisgICAgICAgIGNwYXRob2JqID0gTlVMTDsKKyAgICBtID0gUHlJbXBvcnRfRXhlY0NvZGVNb2R1bGVPYmplY3QobmFtZW9iaiwgY28sIHBhdGhvYmosIGNwYXRob2JqKTsKK2Vycm9yOgorICAgIFB5X0RFQ1JFRihuYW1lb2JqKTsKKyAgICBQeV9YREVDUkVGKHBhdGhvYmopOworICAgIFB5X1hERUNSRUYoY3BhdGhvYmopOworICAgIHJldHVybiBtOworfQorCitQeU9iamVjdCoKK1B5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlT2JqZWN0KFB5T2JqZWN0ICpuYW1lLCBQeU9iamVjdCAqY28sIFB5T2JqZWN0ICpwYXRobmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpjcGF0aG5hbWUpCit7CiAgICAgUHlPYmplY3QgKm1vZHVsZXMgPSBQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCk7CiAgICAgUHlPYmplY3QgKm0sICpkLCAqdjsKIAotICAgIG0gPSBQeUltcG9ydF9BZGRNb2R1bGUobmFtZSk7CisgICAgbSA9IFB5SW1wb3J0X0FkZE1vZHVsZU9iamVjdChuYW1lKTsKICAgICBpZiAobSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICAvKiBJZiB0aGUgbW9kdWxlIGlzIGJlaW5nIHJlbG9hZGVkLCB3ZSBnZXQgdGhlIG9sZCBtb2R1bGUgYmFjawpAQCAtNzgzLDEyICs3OTksMTMgQEAKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQogICAgIC8qIFJlbWVtYmVyIHRoZSBmaWxlbmFtZSBhcyB0aGUgX19maWxlX18gYXR0cmlidXRlICovCi0gICAgdiA9IE5VTEw7CiAgICAgaWYgKHBhdGhuYW1lICE9IE5VTEwpIHsKICAgICAgICAgdiA9IGdldF9zb3VyY2VmaWxlKHBhdGhuYW1lKTsKICAgICAgICAgaWYgKHYgPT0gTlVMTCkKICAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgfQorICAgIGVsc2UKKyAgICAgICAgdiA9IE5VTEw7CiAgICAgaWYgKHYgPT0gTlVMTCkgewogICAgICAgICB2ID0gKChQeUNvZGVPYmplY3QgKiljbyktPmNvX2ZpbGVuYW1lOwogICAgICAgICBQeV9JTkNSRUYodik7CkBAIC03OTgsMjcgKzgxNSwyMSBAQAogICAgIFB5X0RFQ1JFRih2KTsKIAogICAgIC8qIFJlbWVtYmVyIHRoZSBweWMgcGF0aCBuYW1lIGFzIHRoZSBfX2NhY2hlZF9fIGF0dHJpYnV0ZS4gKi8KLSAgICBpZiAoY3BhdGhuYW1lID09IE5VTEwpIHsKKyAgICBpZiAoY3BhdGhuYW1lICE9IE5VTEwpCisgICAgICAgIHYgPSBjcGF0aG5hbWU7CisgICAgZWxzZQogICAgICAgICB2ID0gUHlfTm9uZTsKLSAgICAgICAgUHlfSU5DUkVGKHYpOwotICAgIH0KLSAgICBlbHNlIGlmICgodiA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKGNwYXRobmFtZSkpID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfQ2xlYXIoKTsgLyogTm90IGltcG9ydGFudCBlbm91Z2ggdG8gcmVwb3J0ICovCi0gICAgICAgIHYgPSBQeV9Ob25lOwotICAgICAgICBQeV9JTkNSRUYodik7Ci0gICAgfQogICAgIGlmIChQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiX19jYWNoZWRfXyIsIHYpICE9IDApCiAgICAgICAgIFB5RXJyX0NsZWFyKCk7IC8qIE5vdCBpbXBvcnRhbnQgZW5vdWdoIHRvIHJlcG9ydCAqLwotICAgIFB5X0RFQ1JFRih2KTsKIAogICAgIHYgPSBQeUV2YWxfRXZhbENvZGUoY28sIGQsIGQpOwogICAgIGlmICh2ID09IE5VTEwpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgUHlfREVDUkVGKHYpOwogCi0gICAgaWYgKChtID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcobW9kdWxlcywgbmFtZSkpID09IE5VTEwpIHsKKyAgICBpZiAoKG0gPSBQeURpY3RfR2V0SXRlbShtb2R1bGVzLCBuYW1lKSkgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSW1wb3J0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAiTG9hZGVkIG1vZHVsZSAlLjIwMHMgbm90IGZvdW5kIGluIHN5cy5tb2R1bGVzIiwKKyAgICAgICAgICAgICAgICAgICAgICJMb2FkZWQgbW9kdWxlICVSIG5vdCBmb3VuZCBpbiBzeXMubW9kdWxlcyIsCiAgICAgICAgICAgICAgICAgICAgICBuYW1lKTsKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQpAQCAtODMzLDE3NiArODQ0LDc3IEBACiB9CiAKIAotLyogTGlrZSBzdHJyY2hyKHN0cmluZywgJy8nKSBidXQgc2VhcmNoZXMgZm9yIHRoZSByaWdodG1vc3Qgb2YgZWl0aGVyIFNFUAotICAgb3IgQUxUU0VQLCBpZiB0aGUgbGF0dGVyIGlzIGRlZmluZWQuCi0qLwotc3RhdGljIGNoYXIgKgotcmlnaHRtb3N0X3NlcChjaGFyICpzKQorLyogTGlrZSByaWdodG1vc3Rfc2VwLCBidXQgb3BlcmF0ZSBvbiB1bmljb2RlIG9iamVjdHMuICovCitzdGF0aWMgUHlfc3NpemVfdAorcmlnaHRtb3N0X3NlcF9vYmooUHlPYmplY3QqIG8sIFB5X3NzaXplX3Qgc3RhcnQsIFB5X3NzaXplX3QgZW5kKQogewotICAgIGNoYXIgKmZvdW5kLCBjOwotICAgIGZvciAoZm91bmQgPSBOVUxMOyAoYyA9ICpzKTsgcysrKSB7CisgICAgUHlfc3NpemVfdCBmb3VuZCwgaTsKKyAgICBQeV9VQ1M0IGM7CisgICAgZm9yIChmb3VuZCA9IC0xLCBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykgeworICAgICAgICBjID0gUHlVbmljb2RlX1JFQURfQ0hBUihvLCBpKTsKICAgICAgICAgaWYgKGMgPT0gU0VQCiAjaWZkZWYgQUxUU0VQCiAgICAgICAgICAgICB8fCBjID09IEFMVFNFUAogI2VuZGlmCiAgICAgICAgICAgICApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZvdW5kID0gczsKKyAgICAgICAgICAgIGZvdW5kID0gaTsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gZm91bmQ7CiB9CiAKIAotLyogR2l2ZW4gYSBwYXRobmFtZSBmb3IgYSBQeXRob24gc291cmNlIGZpbGUsIGZpbGwgYSBidWZmZXIgd2l0aCB0aGUKLSAgIHBhdGhuYW1lIGZvciB0aGUgY29ycmVzcG9uZGluZyBjb21waWxlZCBmaWxlLiAgUmV0dXJuIHRoZSBwYXRobmFtZQotICAgZm9yIHRoZSBjb21waWxlZCBmaWxlLCBvciBOVUxMIGlmIHRoZXJlJ3Mgbm8gc3BhY2UgaW4gdGhlIGJ1ZmZlci4KLSAgIERvZXNuJ3Qgc2V0IGFuIGV4Y2VwdGlvbi4gKi8KLQotc3RhdGljIGNoYXIgKgotbWFrZV9jb21waWxlZF9wYXRobmFtZShjaGFyICpwYXRobmFtZSwgY2hhciAqYnVmLCBzaXplX3QgYnVmbGVuLCBpbnQgZGVidWcpCi17Ci0gICAgLyogZm9vLnB5IC0+IF9fcHljYWNoZV9fL2Zvby48dGFnPi5weWMgKi8KLSAgICBzaXplX3QgbGVuID0gc3RybGVuKHBhdGhuYW1lKTsKLSAgICBzaXplX3QgaSwgc2F2ZTsKLSAgICBjaGFyICpwb3M7Ci0gICAgaW50IHNlcCA9IFNFUDsKLQotICAgIC8qIFNhbml0eSBjaGVjayB0aGF0IHRoZSBidWZmZXIgaGFzIHJvdWdobHkgZW5vdWdoIHNwYWNlIHRvIGhvbGQgd2hhdAotICAgICAgIHdpbGwgZXZlbnR1YWxseSBiZSB0aGUgZnVsbCBwYXRoIHRvIHRoZSBjb21waWxlZCBmaWxlLiAgVGhlIDUgZXh0cmEKLSAgICAgICBieXRlcyBpbmNsdWRlIHRoZSBzbGFzaCBhZmVyIF9fcHljYWNoZV9fLCB0aGUgdHdvIGV4dHJhIGRvdHMsIHRoZQotICAgICAgIGV4dHJhIHRyYWlsaW5nIGNoYXJhY3RlciAoJ2MnIG9yICdvJykgYW5kIG51bGwuICBUaGlzIGlzbid0IGV4YWN0Ci0gICAgICAgYmVjYXVzZSB0aGUgY29udGVudHMgb2YgdGhlIGJ1ZmZlciBjYW4gYWZmZWN0IGhvdyBtYW55IGFjdHVhbAotICAgICAgIGNoYXJhY3RlcnMgb2YgdGhlIHN0cmluZyBnZXQgaW50byB0aGUgYnVmZmVyLiAgV2UnbGwgZG8gYSBmaW5hbAotICAgICAgIHNhbml0eSBjaGVjayBiZWZvcmUgd3JpdGluZyB0aGUgZXh0ZW5zaW9uIHRvIGVuc3VyZSB3ZSBkbyBub3QKLSAgICAgICBvdmVyZmxvdyB0aGUgYnVmZmVyLgotICAgICovCi0gICAgaWYgKGxlbiArIHN0cmxlbihDQUNIRURJUikgKyBzdHJsZW4ocHljX3RhZykgKyA1ID4gYnVmbGVuKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIC8qIEZpbmQgdGhlIGxhc3QgcGF0aCBzZXBhcmF0b3IgYW5kIGNvcHkgZXZlcnl0aGluZyBmcm9tIHRoZSBzdGFydCBvZgotICAgICAgIHRoZSBzb3VyY2Ugc3RyaW5nIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhlIHNlcGFyYXRvci4KLSAgICAqLwotICAgIGlmICgocG9zID0gcmlnaHRtb3N0X3NlcChwYXRobmFtZSkpID09IE5VTEwpIHsKLSAgICAgICAgaSA9IDA7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICBzZXAgPSAqcG9zOwotICAgICAgICBpID0gcG9zIC0gcGF0aG5hbWUgKyAxOwotICAgICAgICBzdHJuY3B5KGJ1ZiwgcGF0aG5hbWUsIGkpOwotICAgIH0KLQotICAgIHNhdmUgPSBpOwotICAgIGJ1ZltpKytdID0gJ1wwJzsKLSAgICAvKiBBZGQgX19weWNhY2hlX18vICovCi0gICAgc3RyY2F0KGJ1ZiwgQ0FDSEVESVIpOwotICAgIGkgKz0gc3RybGVuKENBQ0hFRElSKSAtIDE7Ci0gICAgYnVmW2krK10gPSBzZXA7Ci0gICAgYnVmW2krK10gPSAnXDAnOwotICAgIC8qIEFkZCB0aGUgYmFzZSBmaWxlbmFtZSwgYnV0IHJlbW92ZSB0aGUgLnB5IG9yIC5weXcgZXh0ZW5zaW9uLCBzaW5jZQotICAgICAgIHRoZSB0YWcgbmFtZSBtdXN0IGdvIGJlZm9yZSB0aGUgZXh0ZW5zaW9uLgotICAgICovCi0gICAgc3RyY2F0KGJ1ZiwgcGF0aG5hbWUgKyBzYXZlKTsKLSAgICBpZiAoKHBvcyA9IHN0cnJjaHIoYnVmLCAnLicpKSAhPSBOVUxMKQotICAgICAgICAqKytwb3MgPSAnXDAnOwotICAgIHN0cmNhdChidWYsIHB5Y190YWcpOwotICAgIC8qIFRoZSBsZW5ndGggdGVzdCBhYm92ZSBhc3N1bWVzIHRoYXQgd2UncmUgb25seSBhZGRpbmcgb25lIGNoYXJhY3RlcgotICAgICAgIHRvIHRoZSBlbmQgb2Ygd2hhdCB3b3VsZCBub3JtYWxseSBiZSB0aGUgZXh0ZW5zaW9uLiAgV2hhdCBpZiB0aGVyZQotICAgICAgIGlzIG5vIGV4dGVuc2lvbiwgb3IgdGhlIHN0cmluZyBlbmRzIGluICcuJyBvciAnLnAnLCBhbmQgb3RoZXJ3aXNlCi0gICAgICAgZmlsbHMgdGhlIGJ1ZmZlcj8gIEJ5IGFwcGVuZGluZyA0IG1vcmUgY2hhcmFjdGVycyBvbnRvIHRoZSBzdHJpbmcKLSAgICAgICBoZXJlLCB3ZSBjb3VsZCBvdmVycnVuIHRoZSBidWZmZXIuCi0KLSAgICAgICBBcyBhIHNpbXBsZSBleGFtcGxlLCBsZXQncyBzYXkgYnVmbGVuPTMyIGFuZCB0aGUgaW5wdXQgc3RyaW5nIGlzCi0gICAgICAgJ3h4eC5weScuICBzdHJsZW4oKSB3b3VsZCBiZSA2IGFuZCB0aGUgdGVzdCBhYm92ZSB3b3VsZCB5aWVsZDoKLQotICAgICAgICg2ICsgMTEgKyAxMCArIDUgPT0gMzIpID4gMzIKLQotICAgICAgIHdoaWNoIGlzIGZhbHNlIGFuZCBzbyB0aGUgbmFtZSBtYW5nbGluZyB3b3VsZCBjb250aW51ZS4gIFRoaXMgd291bGQKLSAgICAgICBiZSBmaW5lIGJlY2F1c2Ugd2UnZCBlbmQgdXAgd2l0aCB0aGlzIHN0cmluZyBpbiBidWY6Ci0KLSAgICAgICBfX3B5Y2FjaGVfXy94eHguY3B5dGhvbi0zMi5weWNcMAotCi0gICAgICAgc3RybGVuKG9mIHRoYXQpID09IDMwICsgdGhlIG51bCBmaXRzIGluc2lkZSBhIDMyIGNoYXJhY3RlciBidWZmZXIuCi0gICAgICAgV2UgY2FuIGV2ZW4gaGFuZGxlIGFuIGlucHV0IHN0cmluZyBvZiBzYXkgJ3h4eHh4JyBhYm92ZSBiZWNhdXNlCi0gICAgICAgdGhhdCdzICg1ICsgMTEgKyAxMCArIDUgPT0gMzEpID4gMzIgd2hpY2ggaXMgYWxzbyBmYWxzZS4gIE5hbWUKLSAgICAgICBtYW5nbGluZyB0aGF0IHlpZWxkczoKLQotICAgICAgIF9fcHljYWNoZV9fL3h4eHh4Y3B5dGhvbi0zMi5weWNcMAotCi0gICAgICAgd2hpY2ggaXMgMzIgY2hhcmFjdGVycyBpbmNsdWRpbmcgdGhlIG51bCwgYW5kIHRodXMgZml0cyBpbiB0aGUKLSAgICAgICBidWZmZXIuIEhvd2V2ZXIsIGFuIGlucHV0IHN0cmluZyBvZiAneHh4eHh4JyB3b3VsZCB5aWVsZCBhIHJlc3VsdAotICAgICAgIHN0cmluZyBvZjoKLQotICAgICAgIF9fcHljYWNoZV9fL3h4eHh4eGNweXRob24tMzIucHljXDAKLQotICAgICAgIHdoaWNoIGlzIDMzIGNoYXJhY3RlcnMgbG9uZyAoaW5jbHVkaW5nIHRoZSBudWwpLCB0aHVzIG92ZXJmbG93aW5nCi0gICAgICAgdGhlIGJ1ZmZlciwgZXZlbiB0aG91Z2ggdGhlIGZpcnN0IHRlc3Qgd291bGQgZmFpbCwgaS5lLjogdGhlIGlucHV0Ci0gICAgICAgc3RyaW5nIGlzIGFsc28gNiBjaGFyYWN0ZXJzIGxvbmcsIHNvIDMyID4gMzIgaXMgZmFsc2UuCi0KLSAgICAgICBUaGUgcmVhc29uIHRoZSBmaXJzdCB0ZXN0IGZhaWxzIGJ1dCB3ZSBzdGlsbCBvdmVyZmxvdyB0aGUgYnVmZmVyIGlzCi0gICAgICAgdGhhdCB0aGUgdGVzdCBhYm92ZSBvbmx5IGV4cGVjdHMgdG8gYWRkIG9uZSBleHRyYSBjaGFyYWN0ZXIgdG8gYmUKLSAgICAgICBhZGRlZCB0byB0aGUgZXh0ZW5zaW9uLCBhbmQgaGVyZSB3ZSdyZSBhZGRpbmcgdGhyZWUgKHB5YykuICBXZQotICAgICAgIGRvbid0IGFkZCB0aGUgZmlyc3QgZG90LCBzbyB0aGF0IHJlY2xhaW1zIG9uZSBvZiBleHBlY3RlZAotICAgICAgIHBvc2l0aW9ucywgbGVhdmluZyB1cyBvdmVyZmxvd2luZyBieSAxIGJ5dGUgKDMgZXh0cmEgLSAxIHJlY2xhaW1lZAotICAgICAgIGRvdCAtIDEgZXhwZWN0ZWQgZXh0cmEgPT0gMSBvdmVyZmxvd2VkKS4KLQotICAgICAgIFRoZSBiZXN0IHdlIGNhbiBkbyBpcyBlbnN1cmUgdGhhdCB3ZSBzdGlsbCBoYXZlIGVub3VnaCByb29tIGluIHRoZQotICAgICAgIHRhcmdldCBidWZmZXIgYmVmb3JlIHdlIHdyaXRlIHRoZSBleHRlbnNpb24uICBCZWNhdXNlIGl0J3MgYWx3YXlzCi0gICAgICAgb25seSB0aGUgZXh0ZW5zaW9uIHRoYXQgY2FuIGNhdXNlIHRoZSBvdmVyZmxvdywgYW5kIG5ldmVyIHRoZSBvdGhlcgotICAgICAgIHBhdGggYnl0ZXMgd2UndmUgd3JpdHRlbiwgaXQncyBzdWZmaWNpZW50IHRvIGp1c3QgZG8gb25lIG1vcmUgdGVzdAotICAgICAgIGhlcmUuICBTdGlsbCwgdGhlIGFzc2VydGlvbiB0aGF0IGZvbGxvd3MgY2FuJ3QgaHVydC4KLSAgICAqLwotI2lmIDAKLSAgICBwcmludGYoInN0cmxlbihidWYpOiAlZDsgYnVmbGVuOiAlZFxuIiwgKGludClzdHJsZW4oYnVmKSwgKGludClidWZsZW4pOwotI2VuZGlmCi0gICAgaWYgKHN0cmxlbihidWYpICsgNSA+IGJ1ZmxlbikKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgc3RyY2F0KGJ1ZiwgZGVidWcgPyAiLnB5YyIgOiAiLnB5byIpOwotICAgIGFzc2VydChzdHJsZW4oYnVmKSA8IGJ1Zmxlbik7Ci0gICAgcmV0dXJuIGJ1ZjsKLX0KLQotCiAvKiBHaXZlbiBhIHBhdGhuYW1lIHRvIGEgUHl0aG9uIGJ5dGUgY29tcGlsZWQgZmlsZSwgcmV0dXJuIHRoZSBwYXRoIHRvIHRoZQogICAgc291cmNlIGZpbGUsIGlmIHRoZSBwYXRoIG1hdGNoZXMgdGhlIFBFUCAzMTQ3IGZvcm1hdC4gIFRoaXMgZG9lcyBub3QgY2hlY2sKICAgIGZvciBhbnkgZmlsZSBleGlzdGVuY2UsIGhvd2V2ZXIsIGlmIHRoZSBweWMgZmlsZSBuYW1lIGRvZXMgbm90IG1hdGNoIFBFUAogICAgMzE0NyBzdHlsZSwgTlVMTCBpcyByZXR1cm5lZC4gIGJ1ZiBtdXN0IGJlIGF0IGxlYXN0IGFzIGJpZyBhcyBwYXRobmFtZTsKLSAgIHRoZSByZXN1bHRpbmcgcGF0aCB3aWxsIGFsd2F5cyBiZSBzaG9ydGVyLiAqLworICAgdGhlIHJlc3VsdGluZyBwYXRoIHdpbGwgYWx3YXlzIGJlIHNob3J0ZXIuCiAKLXN0YXRpYyBjaGFyICoKLW1ha2Vfc291cmNlX3BhdGhuYW1lKGNoYXIgKnBhdGhuYW1lLCBjaGFyICpidWYpCisgICAoLi4uKS9fX3B5Y2FjaGVfXy9mb28uPHRhZz4ucHljIC0+ICguLi4pL2Zvby5weSAqLworCitzdGF0aWMgUHlPYmplY3QqCittYWtlX3NvdXJjZV9wYXRobmFtZShQeU9iamVjdCAqcGF0aCkKIHsKLSAgICAvKiBfX3B5Y2FjaGVfXy9mb28uPHRhZz4ucHljIC0+IGZvby5weSAqLwotICAgIHNpemVfdCBpLCBqOwotICAgIGNoYXIgKmxlZnQsICpyaWdodCwgKmRvdDAsICpkb3QxLCBzZXA7CisgICAgUHlfc3NpemVfdCBsZWZ0LCByaWdodCwgZG90MCwgZG90MSwgbGVuOworICAgIFB5X3NzaXplX3QgaSwgajsKKyAgICBQeU9iamVjdCAqcmVzdWx0OworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CisKKyAgICBsZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChwYXRoKTsKKyAgICBpZiAobGVuID4gTUFYUEFUSExFTikKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBMb29rIGJhY2sgdHdvIHNsYXNoZXMgZnJvbSB0aGUgZW5kLiAgSW4gYmV0d2VlbiB0aGVzZSB0d28gc2xhc2hlcwogICAgICAgIG11c3QgYmUgdGhlIHN0cmluZyBfX3B5Y2FjaGVfXyBvciB0aGlzIGlzIG5vdCBhIFBFUCAzMTQ3IHN0eWxlCiAgICAgICAgcGF0aC4gIEl0J3MgcG9zc2libGUgZm9yIHRoZXJlIHRvIGJlIG9ubHkgb25lIHNsYXNoLgogICAgICovCi0gICAgaWYgKChyaWdodCA9IHJpZ2h0bW9zdF9zZXAocGF0aG5hbWUpKSA9PSBOVUxMKQorICAgIHJpZ2h0ID0gcmlnaHRtb3N0X3NlcF9vYmoocGF0aCwgMCwgbGVuKTsKKyAgICBpZiAocmlnaHQgPT0gLTEpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHNlcCA9ICpyaWdodDsKLSAgICAqcmlnaHQgPSAnXDAnOwotICAgIGxlZnQgPSByaWdodG1vc3Rfc2VwKHBhdGhuYW1lKTsKLSAgICAqcmlnaHQgPSBzZXA7Ci0gICAgaWYgKGxlZnQgPT0gTlVMTCkKLSAgICAgICAgbGVmdCA9IHBhdGhuYW1lOworICAgIGxlZnQgPSByaWdodG1vc3Rfc2VwX29iaihwYXRoLCAwLCByaWdodCk7CisgICAgaWYgKGxlZnQgPT0gLTEpCisgICAgICAgIGxlZnQgPSAwOwogICAgIGVsc2UKICAgICAgICAgbGVmdCsrOwotICAgIGlmIChyaWdodC1sZWZ0ICE9IHN0cmxlbihDQUNIRURJUikgfHwKLSAgICAgICAgc3RybmNtcChsZWZ0LCBDQUNIRURJUiwgcmlnaHQtbGVmdCkgIT0gMCkKKyAgICBpZiAocmlnaHQtbGVmdCAhPSAgc2l6ZW9mKENBQ0hFRElSKS0xKQogICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBmb3IgKGkgPSAwOyBpIDwgc2l6ZW9mKENBQ0hFRElSKS0xOyBpKyspCisgICAgICAgIGlmIChQeVVuaWNvZGVfUkVBRF9DSEFSKHBhdGgsIGxlZnQraSkgIT0gQ0FDSEVESVJbaV0pCisgICAgICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIC8qIE5vdyB2ZXJpZnkgdGhhdCB0aGUgcGF0aCBjb21wb25lbnQgdG8gdGhlIHJpZ2h0IG9mIHRoZSBsYXN0IHNsYXNoCiAgICAgICAgaGFzIHR3byBkb3RzIGluIGl0LgogICAgICovCi0gICAgaWYgKChkb3QwID0gc3RyY2hyKHJpZ2h0ICsgMSwgJy4nKSkgPT0gTlVMTCkKKyAgICBkb3QwID0gUHlVbmljb2RlX0ZpbmRDaGFyKHBhdGgsICcuJywgcmlnaHQrMSwgbGVuLCAxKTsKKyAgICBpZiAoZG90MCA8IDApCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmICgoZG90MSA9IHN0cmNocihkb3QwICsgMSwgJy4nKSkgPT0gTlVMTCkKKyAgICBkb3QxID0gUHlVbmljb2RlX0ZpbmRDaGFyKHBhdGgsICcuJywgZG90MCsxLCBsZW4sIDEpOworICAgIGlmIChkb3QxIDwgMCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgLyogVG9vIG1hbnkgZG90cz8gKi8KLSAgICBpZiAoc3RyY2hyKGRvdDEgKyAxLCAnLicpICE9IE5VTEwpCisgICAgaWYgKFB5VW5pY29kZV9GaW5kQ2hhcihwYXRoLCAnLicsIGRvdDErMSwgbGVuLCAxKSAhPSAtMSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKICAgICAvKiBUaGlzIGlzIGEgUEVQIDMxNDcgcGF0aC4gIFN0YXJ0IGJ5IGNvcHlpbmcgZXZlcnl0aGluZyBmcm9tIHRoZQpAQCAtMTAxMCwyMzEgKzkyMiwyMSBAQAogICAgICAgIGNvcHkgdGhlIGZpbGUncyBiYXNlbmFtZSwgcmVtb3ZpbmcgdGhlIG1hZ2ljIHRhZyBhbmQgYWRkaW5nIGEgLnB5CiAgICAgICAgc3VmZml4LgogICAgICovCi0gICAgc3RybmNweShidWYsIHBhdGhuYW1lLCAoaT1sZWZ0LXBhdGhuYW1lKSk7Ci0gICAgc3RybmNweShidWYraSwgcmlnaHQrMSwgKGo9ZG90MC1yaWdodCkpOwotICAgIHN0cmNweShidWYraStqLCAicHkiKTsKLSAgICByZXR1cm4gYnVmOworICAgIHJlc3VsdCA9IFB5VW5pY29kZV9OZXcobGVmdCArIChkb3QwLXJpZ2h0KSArIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfTUFYX0NIQVJfVkFMVUUocGF0aCkpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQocmVzdWx0KTsKKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEocmVzdWx0KTsKKyAgICBQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnMocmVzdWx0LCAwLCBwYXRoLCAwLCAoaSA9IGxlZnQpKTsKKyAgICBQeVVuaWNvZGVfQ29weUNoYXJhY3RlcnMocmVzdWx0LCBsZWZ0LCBwYXRoLCByaWdodCsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaiA9IGRvdDAtcmlnaHQpKTsKKyAgICBQeVVuaWNvZGVfV1JJVEUoa2luZCwgZGF0YSwgaStqLCAgICdwJyk7CisgICAgUHlVbmljb2RlX1dSSVRFKGtpbmQsIGRhdGEsIGkraisxLCAneScpOworICAgIGFzc2VydChfUHlVbmljb2RlX0NoZWNrQ29uc2lzdGVuY3kocmVzdWx0LCAxKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotLyogR2l2ZW4gYSBwYXRobmFtZSBmb3IgYSBQeXRob24gc291cmNlIGZpbGUsIGl0cyB0aW1lIG9mIGxhc3QKLSAgIG1vZGlmaWNhdGlvbiwgYW5kIGEgcGF0aG5hbWUgZm9yIGEgY29tcGlsZWQgZmlsZSwgY2hlY2sgd2hldGhlciB0aGUKLSAgIGNvbXBpbGVkIGZpbGUgcmVwcmVzZW50cyB0aGUgc2FtZSB2ZXJzaW9uIG9mIHRoZSBzb3VyY2UuICBJZiBzbywKLSAgIHJldHVybiBhIEZJTEUgcG9pbnRlciBmb3IgdGhlIGNvbXBpbGVkIGZpbGUsIHBvc2l0aW9uZWQganVzdCBhZnRlcgotICAgdGhlIGhlYWRlcjsgaWYgbm90LCByZXR1cm4gTlVMTC4KLSAgIERvZXNuJ3Qgc2V0IGFuIGV4Y2VwdGlvbi4gKi8KLQotc3RhdGljIEZJTEUgKgotY2hlY2tfY29tcGlsZWRfbW9kdWxlKGNoYXIgKnBhdGhuYW1lLCB0aW1lX3QgbXRpbWUsIGNoYXIgKmNwYXRobmFtZSkKLXsKLSAgICBGSUxFICpmcDsKLSAgICBsb25nIG1hZ2ljOwotICAgIGxvbmcgcHljX210aW1lOwotCi0gICAgZnAgPSBmb3BlbihjcGF0aG5hbWUsICJyYiIpOwotICAgIGlmIChmcCA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBtYWdpYyA9IFB5TWFyc2hhbF9SZWFkTG9uZ0Zyb21GaWxlKGZwKTsKLSAgICBpZiAobWFnaWMgIT0gcHljX21hZ2ljKSB7Ci0gICAgICAgIGlmIChQeV9WZXJib3NlRmxhZykKLSAgICAgICAgICAgIFB5U3lzX1dyaXRlU3RkZXJyKCIjICVzIGhhcyBiYWQgbWFnaWNcbiIsIGNwYXRobmFtZSk7Ci0gICAgICAgIGZjbG9zZShmcCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBweWNfbXRpbWUgPSBQeU1hcnNoYWxfUmVhZExvbmdGcm9tRmlsZShmcCk7Ci0gICAgaWYgKHB5Y19tdGltZSAhPSBtdGltZSkgewotICAgICAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigiIyAlcyBoYXMgYmFkIG10aW1lXG4iLCBjcGF0aG5hbWUpOwotICAgICAgICBmY2xvc2UoZnApOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQotICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigiIyAlcyBtYXRjaGVzICVzXG4iLCBjcGF0aG5hbWUsIHBhdGhuYW1lKTsKLSAgICByZXR1cm4gZnA7Ci19Ci0KLQotLyogUmVhZCBhIGNvZGUgb2JqZWN0IGZyb20gYSBmaWxlIGFuZCBjaGVjayBpdCBmb3IgdmFsaWRpdHkgKi8KLQotc3RhdGljIFB5Q29kZU9iamVjdCAqCi1yZWFkX2NvbXBpbGVkX21vZHVsZShjaGFyICpjcGF0aG5hbWUsIEZJTEUgKmZwKQotewotICAgIFB5T2JqZWN0ICpjbzsKLQotICAgIGNvID0gUHlNYXJzaGFsX1JlYWRMYXN0T2JqZWN0RnJvbUZpbGUoZnApOwotICAgIGlmIChjbyA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoIVB5Q29kZV9DaGVjayhjbykpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0ltcG9ydEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgIk5vbi1jb2RlIG9iamVjdCBpbiAlLjIwMHMiLCBjcGF0aG5hbWUpOwotICAgICAgICBQeV9ERUNSRUYoY28pOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIChQeUNvZGVPYmplY3QgKiljbzsKLX0KLQotCi0vKiBMb2FkIGEgbW9kdWxlIGZyb20gYSBjb21waWxlZCBmaWxlLCBleGVjdXRlIGl0LCBhbmQgcmV0dXJuIGl0cwotICAgbW9kdWxlIG9iamVjdCBXSVRIIElOQ1JFTUVOVEVEIFJFRkVSRU5DRSBDT1VOVCAqLwotCi1zdGF0aWMgUHlPYmplY3QgKgotbG9hZF9jb21waWxlZF9tb2R1bGUoY2hhciAqbmFtZSwgY2hhciAqY3BhdGhuYW1lLCBGSUxFICpmcCkKLXsKLSAgICBsb25nIG1hZ2ljOwotICAgIFB5Q29kZU9iamVjdCAqY287Ci0gICAgUHlPYmplY3QgKm07Ci0KLSAgICBtYWdpYyA9IFB5TWFyc2hhbF9SZWFkTG9uZ0Zyb21GaWxlKGZwKTsKLSAgICBpZiAobWFnaWMgIT0gcHljX21hZ2ljKSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19JbXBvcnRFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICJCYWQgbWFnaWMgbnVtYmVyIGluICUuMjAwcyIsIGNwYXRobmFtZSk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICAodm9pZCkgUHlNYXJzaGFsX1JlYWRMb25nRnJvbUZpbGUoZnApOwotICAgIGNvID0gcmVhZF9jb21waWxlZF9tb2R1bGUoY3BhdGhuYW1lLCBmcCk7Ci0gICAgaWYgKGNvID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmIChQeV9WZXJib3NlRmxhZykKLSAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoImltcG9ydCAlcyAjIHByZWNvbXBpbGVkIGZyb20gJXNcbiIsCi0gICAgICAgICAgICBuYW1lLCBjcGF0aG5hbWUpOwotICAgIG0gPSBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZVdpdGhQYXRobmFtZXMoCi0gICAgICAgIG5hbWUsIChQeU9iamVjdCAqKWNvLCBjcGF0aG5hbWUsIGNwYXRobmFtZSk7Ci0gICAgUHlfREVDUkVGKGNvKTsKLQotICAgIHJldHVybiBtOwotfQotCi0vKiBQYXJzZSBhIHNvdXJjZSBmaWxlIGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgY29kZSBvYmplY3QgKi8KLQotc3RhdGljIFB5Q29kZU9iamVjdCAqCi1wYXJzZV9zb3VyY2VfbW9kdWxlKGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBGSUxFICpmcCkKLXsKLSAgICBQeUNvZGVPYmplY3QgKmNvID0gTlVMTDsKLSAgICBtb2RfdHkgbW9kOwotICAgIFB5Q29tcGlsZXJGbGFncyBmbGFnczsKLSAgICBQeUFyZW5hICphcmVuYSA9IFB5QXJlbmFfTmV3KCk7Ci0gICAgaWYgKGFyZW5hID09IE5VTEwpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgZmxhZ3MuY2ZfZmxhZ3MgPSAwOwotICAgIG1vZCA9IFB5UGFyc2VyX0FTVEZyb21GaWxlKGZwLCBwYXRobmFtZSwgTlVMTCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeV9maWxlX2lucHV0LCAwLCAwLCAmZmxhZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgYXJlbmEpOwotICAgIGlmIChtb2QpIHsKLSAgICAgICAgY28gPSBQeUFTVF9Db21waWxlKG1vZCwgcGF0aG5hbWUsIE5VTEwsIGFyZW5hKTsKLSAgICB9Ci0gICAgUHlBcmVuYV9GcmVlKGFyZW5hKTsKLSAgICByZXR1cm4gY287Ci19Ci0KLQotLyogSGVscGVyIHRvIG9wZW4gYSBieXRlY29kZSBmaWxlIGZvciB3cml0aW5nIGluIGV4Y2x1c2l2ZSBtb2RlICovCi0KLXN0YXRpYyBGSUxFICoKLW9wZW5fZXhjbHVzaXZlKGNoYXIgKmZpbGVuYW1lLCBtb2RlX3QgbW9kZSkKLXsKLSNpZiBkZWZpbmVkKE9fRVhDTCkmJmRlZmluZWQoT19DUkVBVCkmJmRlZmluZWQoT19XUk9OTFkpJiZkZWZpbmVkKE9fVFJVTkMpCi0gICAgLyogVXNlIE9fRVhDTCB0byBhdm9pZCBhIHJhY2UgY29uZGl0aW9uIHdoZW4gYW5vdGhlciBwcm9jZXNzIHRyaWVzIHRvCi0gICAgICAgd3JpdGUgdGhlIHNhbWUgZmlsZS4gIFdoZW4gdGhhdCBoYXBwZW5zLCBvdXIgb3BlbigpIGNhbGwgZmFpbHMsCi0gICAgICAgd2hpY2ggaXMganVzdCBmaW5lIChzaW5jZSBpdCdzIG9ubHkgYSBjYWNoZSkuCi0gICAgICAgWFhYIElmIHRoZSBmaWxlIGV4aXN0cyBhbmQgaXMgd3JpdGFibGUgYnV0IHRoZSBkaXJlY3RvcnkgaXMgbm90Ci0gICAgICAgd3JpdGFibGUsIHRoZSBmaWxlIHdpbGwgbmV2ZXIgYmUgd3JpdHRlbi4gIE9oIHdlbGwuCi0gICAgKi8KLSAgICBpbnQgZmQ7Ci0gICAgKHZvaWQpIHVubGluayhmaWxlbmFtZSk7Ci0gICAgZmQgPSBvcGVuKGZpbGVuYW1lLCBPX0VYQ0x8T19DUkVBVHxPX1dST05MWXxPX1RSVU5DCi0jaWZkZWYgT19CSU5BUlkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8T19CSU5BUlkgICAvKiBuZWNlc3NhcnkgZm9yIFdpbmRvd3MgKi8KLSNlbmRpZgotI2lmZGVmIF9fVk1TCi0gICAgICAgICAgICAsIG1vZGUsICJjdHh0PWJpbiIsICJzaHI9bmlsIgotI2Vsc2UKLSAgICAgICAgICAgICwgbW9kZQotI2VuZGlmCi0gICAgICAgICAgKTsKLSAgICBpZiAoZmQgPCAwKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICByZXR1cm4gZmRvcGVuKGZkLCAid2IiKTsKLSNlbHNlCi0gICAgLyogQmVzdCB3ZSBjYW4gZG8gLS0gb24gV2luZG93cyB0aGlzIGNhbid0IGhhcHBlbiBhbnl3YXkgKi8KLSAgICByZXR1cm4gZm9wZW4oZmlsZW5hbWUsICJ3YiIpOwotI2VuZGlmCi19Ci0KLQotLyogV3JpdGUgYSBjb21waWxlZCBtb2R1bGUgdG8gYSBmaWxlLCBwbGFjaW5nIHRoZSB0aW1lIG9mIGxhc3QKLSAgIG1vZGlmaWNhdGlvbiBvZiBpdHMgc291cmNlIGludG8gdGhlIGhlYWRlci4KLSAgIEVycm9ycyBhcmUgaWdub3JlZCwgaWYgYSB3cml0ZSBlcnJvciBvY2N1cnMgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvCi0gICByZW1vdmUgdGhlIGZpbGUuICovCi0KLXN0YXRpYyB2b2lkCi13cml0ZV9jb21waWxlZF9tb2R1bGUoUHlDb2RlT2JqZWN0ICpjbywgY2hhciAqY3BhdGhuYW1lLCBzdHJ1Y3Qgc3RhdCAqc3Jjc3RhdCkKLXsKLSAgICBGSUxFICpmcDsKLSAgICBjaGFyICpkaXJwYXRoOwotICAgIHRpbWVfdCBtdGltZSA9IHNyY3N0YXQtPnN0X210aW1lOwotI2lmZGVmIE1TX1dJTkRPV1MgICAvKiBzaW5jZSBXaW5kb3dzIHVzZXMgZGlmZmVyZW50IHBlcm1pc3Npb25zICAqLwotICAgIG1vZGVfdCBtb2RlID0gc3Jjc3RhdC0+c3RfbW9kZSAmIH5TX0lFWEVDOwotI2Vsc2UKLSAgICBtb2RlX3QgbW9kZSA9IHNyY3N0YXQtPnN0X21vZGUgJiB+U19JWFVTUiAmIH5TX0lYR1JQICYgflNfSVhPVEg7Ci0gICAgbW9kZV90IGRpcm1vZGUgPSAoc3Jjc3RhdC0+c3RfbW9kZSB8Ci0gICAgICAgICAgICAgICAgICAgICAgU19JWFVTUiB8IFNfSVhHUlAgfCBTX0lYT1RIIHwKLSAgICAgICAgICAgICAgICAgICAgICBTX0lXVVNSIHwgU19JV0dSUCB8IFNfSVdPVEgpOwotI2VuZGlmCi0gICAgaW50IHNhdmVkOwotCi0gICAgLyogRW5zdXJlIHRoYXQgdGhlIF9fcHljYWNoZV9fIGRpcmVjdG9yeSBleGlzdHMuICovCi0gICAgZGlycGF0aCA9IHJpZ2h0bW9zdF9zZXAoY3BhdGhuYW1lKTsKLSAgICBpZiAoZGlycGF0aCA9PSBOVUxMKSB7Ci0gICAgICAgIGlmIChQeV9WZXJib3NlRmxhZykKLSAgICAgICAgICAgIFB5U3lzX1dyaXRlU3RkZXJyKAotICAgICAgICAgICAgICAgICIjIG5vICVzIHBhdGggZm91bmQgJXNcbiIsCi0gICAgICAgICAgICAgICAgQ0FDSEVESVIsIGNwYXRobmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgc2F2ZWQgPSAqZGlycGF0aDsKLSAgICAqZGlycGF0aCA9ICdcMCc7Ci0KLSNpZmRlZiBNU19XSU5ET1dTCi0gICAgaWYgKF9ta2RpcihjcGF0aG5hbWUpIDwgMCAmJiBlcnJubyAhPSBFRVhJU1QpIHsKLSNlbHNlCi0gICAgaWYgKG1rZGlyKGNwYXRobmFtZSwgZGlybW9kZSkgPCAwICYmIGVycm5vICE9IEVFWElTVCkgewotI2VuZGlmCi0gICAgICAgICpkaXJwYXRoID0gc2F2ZWQ7Ci0gICAgICAgIGlmIChQeV9WZXJib3NlRmxhZykKLSAgICAgICAgICAgIFB5U3lzX1dyaXRlU3RkZXJyKAotICAgICAgICAgICAgICAgICIjIGNhbm5vdCBjcmVhdGUgY2FjaGUgZGlyICVzXG4iLCBjcGF0aG5hbWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgICpkaXJwYXRoID0gc2F2ZWQ7Ci0KLSAgICBmcCA9IG9wZW5fZXhjbHVzaXZlKGNwYXRobmFtZSwgbW9kZSk7Ci0gICAgaWYgKGZwID09IE5VTEwpIHsKLSAgICAgICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQotICAgICAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoCi0gICAgICAgICAgICAgICAgIiMgY2FuJ3QgY3JlYXRlICVzXG4iLCBjcGF0aG5hbWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIFB5TWFyc2hhbF9Xcml0ZUxvbmdUb0ZpbGUocHljX21hZ2ljLCBmcCwgUHlfTUFSU0hBTF9WRVJTSU9OKTsKLSAgICAvKiBGaXJzdCB3cml0ZSBhIDAgZm9yIG10aW1lICovCi0gICAgUHlNYXJzaGFsX1dyaXRlTG9uZ1RvRmlsZSgwTCwgZnAsIFB5X01BUlNIQUxfVkVSU0lPTik7Ci0gICAgUHlNYXJzaGFsX1dyaXRlT2JqZWN0VG9GaWxlKChQeU9iamVjdCAqKWNvLCBmcCwgUHlfTUFSU0hBTF9WRVJTSU9OKTsKLSAgICBpZiAoZmZsdXNoKGZwKSAhPSAwIHx8IGZlcnJvcihmcCkpIHsKLSAgICAgICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQotICAgICAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoIiMgY2FuJ3Qgd3JpdGUgJXNcbiIsIGNwYXRobmFtZSk7Ci0gICAgICAgIC8qIERvbid0IGtlZXAgcGFydGlhbCBmaWxlICovCi0gICAgICAgIGZjbG9zZShmcCk7Ci0gICAgICAgICh2b2lkKSB1bmxpbmsoY3BhdGhuYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAvKiBOb3cgd3JpdGUgdGhlIHRydWUgbXRpbWUgKGFzIGEgMzItYml0IGZpZWxkKSAqLwotICAgIGZzZWVrKGZwLCA0TCwgMCk7Ci0gICAgYXNzZXJ0KG10aW1lIDw9IDB4RkZGRkZGRkYpOwotICAgIFB5TWFyc2hhbF9Xcml0ZUxvbmdUb0ZpbGUoKGxvbmcpbXRpbWUsIGZwLCBQeV9NQVJTSEFMX1ZFUlNJT04pOwotICAgIGZmbHVzaChmcCk7Ci0gICAgZmNsb3NlKGZwKTsKLSAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgIFB5U3lzX1dyaXRlU3RkZXJyKCIjIHdyb3RlICVzXG4iLCBjcGF0aG5hbWUpOwotfQogCiBzdGF0aWMgdm9pZAogdXBkYXRlX2NvZGVfZmlsZW5hbWVzKFB5Q29kZU9iamVjdCAqY28sIFB5T2JqZWN0ICpvbGRuYW1lLCBQeU9iamVjdCAqbmV3bmFtZSkKQEAgLTEyNjAsMjI0ICs5NjIsMTE1IEBACiAgICAgfQogfQogCi1zdGF0aWMgaW50Ci11cGRhdGVfY29tcGlsZWRfbW9kdWxlKFB5Q29kZU9iamVjdCAqY28sIGNoYXIgKnBhdGhuYW1lKQorc3RhdGljIHZvaWQKK3VwZGF0ZV9jb21waWxlZF9tb2R1bGUoUHlDb2RlT2JqZWN0ICpjbywgUHlPYmplY3QgKm5ld25hbWUpCiB7Ci0gICAgUHlPYmplY3QgKm9sZG5hbWUsICpuZXduYW1lOworICAgIFB5T2JqZWN0ICpvbGRuYW1lOwogCi0gICAgbmV3bmFtZSA9IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQocGF0aG5hbWUpOwotICAgIGlmIChuZXduYW1lID09IE5VTEwpCi0gICAgICAgIHJldHVybiAtMTsKLQotICAgIGlmICghUHlVbmljb2RlX0NvbXBhcmUoY28tPmNvX2ZpbGVuYW1lLCBuZXduYW1lKSkgewotICAgICAgICBQeV9ERUNSRUYobmV3bmFtZSk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KKyAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmUoY28tPmNvX2ZpbGVuYW1lLCBuZXduYW1lKSA9PSAwKQorICAgICAgICByZXR1cm47CiAKICAgICBvbGRuYW1lID0gY28tPmNvX2ZpbGVuYW1lOwogICAgIFB5X0lOQ1JFRihvbGRuYW1lKTsKICAgICB1cGRhdGVfY29kZV9maWxlbmFtZXMoY28sIG9sZG5hbWUsIG5ld25hbWUpOwogICAgIFB5X0RFQ1JFRihvbGRuYW1lKTsKLSAgICBQeV9ERUNSRUYobmV3bmFtZSk7Ci0gICAgcmV0dXJuIDE7CiB9CiAKLS8qIExvYWQgYSBzb3VyY2UgbW9kdWxlIGZyb20gYSBnaXZlbiBmaWxlIGFuZCByZXR1cm4gaXRzIG1vZHVsZQotICAgb2JqZWN0IFdJVEggSU5DUkVNRU5URUQgUkVGRVJFTkNFIENPVU5ULiAgSWYgdGhlcmUncyBhIG1hdGNoaW5nCi0gICBieXRlLWNvbXBpbGVkIGZpbGUsIHVzZSB0aGF0IGluc3RlYWQuICovCi0KIHN0YXRpYyBQeU9iamVjdCAqCi1sb2FkX3NvdXJjZV9tb2R1bGUoY2hhciAqbmFtZSwgY2hhciAqcGF0aG5hbWUsIEZJTEUgKmZwKQoraW1wX2ZpeF9jb19maWxlbmFtZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgc3RydWN0IHN0YXQgc3Q7Ci0gICAgRklMRSAqZnBjOwotICAgIGNoYXIgKmJ1ZjsKLSAgICBjaGFyICpjcGF0aG5hbWU7Ci0gICAgUHlDb2RlT2JqZWN0ICpjbyA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKm07CisgICAgUHlPYmplY3QgKmNvOworICAgIFB5T2JqZWN0ICpmaWxlX3BhdGg7CiAKLSAgICBpZiAoZnN0YXQoZmlsZW5vKGZwKSwgJnN0KSAhPSAwKSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19SdW50aW1lRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAidW5hYmxlIHRvIGdldCBmaWxlIHN0YXR1cyBmcm9tICclcyciLAotICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUpOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiT086X2ZpeF9jb19maWxlbmFtZSIsICZjbywgJmZpbGVfcGF0aCkpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgaWYgKCFQeUNvZGVfQ2hlY2soY28pKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAiZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhIGNvZGUgb2JqZWN0Iik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KLSAgICBpZiAoc2l6ZW9mIHN0LnN0X210aW1lID4gNCkgewotICAgICAgICAvKiBQeXRob24ncyAucHljIHRpbWVzdGFtcCBoYW5kbGluZyBwcmVzdW1lcyB0aGF0IHRoZSB0aW1lc3RhbXAgZml0cwotICAgICAgICAgICBpbiA0IGJ5dGVzLiBTaW5jZSB0aGUgY29kZSBvbmx5IGRvZXMgYW4gZXF1YWxpdHkgY29tcGFyaXNvbiwKLSAgICAgICAgICAgb3JkZXJpbmcgaXMgbm90IGltcG9ydGFudCBhbmQgd2UgY2FuIHNhZmVseSBpZ25vcmUgdGhlIGhpZ2hlciBiaXRzCi0gICAgICAgICAgIChjb2xsaXNpb25zIGFyZSBleHRyZW1lbHkgdW5saWtlbHkpLgotICAgICAgICAgKi8KLSAgICAgICAgc3Quc3RfbXRpbWUgJj0gMHhGRkZGRkZGRjsKLSAgICB9Ci0gICAgYnVmID0gUHlNZW1fTUFMTE9DKE1BWFBBVEhMRU4rMSk7Ci0gICAgaWYgKGJ1ZiA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwotICAgIH0KLSAgICBjcGF0aG5hbWUgPSBtYWtlX2NvbXBpbGVkX3BhdGhuYW1lKAotICAgICAgICBwYXRobmFtZSwgYnVmLCAoc2l6ZV90KU1BWFBBVEhMRU4gKyAxLCAhUHlfT3B0aW1pemVGbGFnKTsKLSAgICBpZiAoY3BhdGhuYW1lICE9IE5VTEwgJiYKLSAgICAgICAgKGZwYyA9IGNoZWNrX2NvbXBpbGVkX21vZHVsZShwYXRobmFtZSwgc3Quc3RfbXRpbWUsIGNwYXRobmFtZSkpKSB7Ci0gICAgICAgIGNvID0gcmVhZF9jb21waWxlZF9tb2R1bGUoY3BhdGhuYW1lLCBmcGMpOwotICAgICAgICBmY2xvc2UoZnBjKTsKLSAgICAgICAgaWYgKGNvID09IE5VTEwpCi0gICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgICAgIGlmICh1cGRhdGVfY29tcGlsZWRfbW9kdWxlKGNvLCBwYXRobmFtZSkgPCAwKQotICAgICAgICAgICAgZ290byBlcnJvcl9leGl0OwotICAgICAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigiaW1wb3J0ICVzICMgcHJlY29tcGlsZWQgZnJvbSAlc1xuIiwKLSAgICAgICAgICAgICAgICBuYW1lLCBjcGF0aG5hbWUpOwotICAgICAgICBwYXRobmFtZSA9IGNwYXRobmFtZTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGNvID0gcGFyc2Vfc291cmNlX21vZHVsZShwYXRobmFtZSwgZnApOwotICAgICAgICBpZiAoY28gPT0gTlVMTCkKLSAgICAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKLSAgICAgICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQotICAgICAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoImltcG9ydCAlcyAjIGZyb20gJXNcbiIsCi0gICAgICAgICAgICAgICAgbmFtZSwgcGF0aG5hbWUpOwotICAgICAgICBpZiAoY3BhdGhuYW1lKSB7Ci0gICAgICAgICAgICBQeU9iamVjdCAqcm8gPSBQeVN5c19HZXRPYmplY3QoImRvbnRfd3JpdGVfYnl0ZWNvZGUiKTsKLSAgICAgICAgICAgIGlmIChybyA9PSBOVUxMIHx8ICFQeU9iamVjdF9Jc1RydWUocm8pKQotICAgICAgICAgICAgICAgIHdyaXRlX2NvbXBpbGVkX21vZHVsZShjbywgY3BhdGhuYW1lLCAmc3QpOwotICAgICAgICB9Ci0gICAgfQotICAgIG0gPSBQeUltcG9ydF9FeGVjQ29kZU1vZHVsZVdpdGhQYXRobmFtZXMoCi0gICAgICAgIG5hbWUsIChQeU9iamVjdCAqKWNvLCBwYXRobmFtZSwgY3BhdGhuYW1lKTsKLSAgICBQeV9ERUNSRUYoY28pOwogCi0gICAgUHlNZW1fRlJFRShidWYpOwotICAgIHJldHVybiBtOworICAgIGlmICghUHlVbmljb2RlX0NoZWNrKGZpbGVfcGF0aCkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJzZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZyIpOworICAgICAgICByZXR1cm4gTlVMTDsKKyAgICB9CiAKLWVycm9yX2V4aXQ6Ci0gICAgUHlfWERFQ1JFRihjbyk7Ci0gICAgUHlNZW1fRlJFRShidWYpOwotICAgIHJldHVybiBOVUxMOworICAgIHVwZGF0ZV9jb21waWxlZF9tb2R1bGUoKFB5Q29kZU9iamVjdCopY28sIGZpbGVfcGF0aCk7CisKKyAgICBQeV9SRVRVUk5fTk9ORTsKIH0KIAorCiAvKiBHZXQgc291cmNlIGZpbGUgLT4gdW5pY29kZSBvciBOb25lCiAgKiBSZXR1cm5zIHRoZSBwYXRoIHRvIHRoZSBweSBmaWxlIGlmIGF2YWlsYWJsZSwgZWxzZSB0aGUgZ2l2ZW4gcGF0aAogICovCiBzdGF0aWMgUHlPYmplY3QgKgotZ2V0X3NvdXJjZWZpbGUoY2hhciAqZmlsZSkKK2dldF9zb3VyY2VmaWxlKFB5T2JqZWN0ICpmaWxlbmFtZSkKIHsKLSAgICBjaGFyICpweSA9IE5VTEw7CiAgICAgUHlfc3NpemVfdCBsZW47Ci0gICAgUHlPYmplY3QgKnU7CisgICAgUHlPYmplY3QgKnB5OwogICAgIHN0cnVjdCBzdGF0IHN0YXRidWY7CisgICAgaW50IGVycjsKKyAgICB2b2lkICpkYXRhOworICAgIHVuc2lnbmVkIGludCBraW5kOwogCi0gICAgaWYgKCFmaWxlIHx8ICEqZmlsZSkgeworICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKGZpbGVuYW1lKTsKKyAgICBpZiAobGVuID09IDApCiAgICAgICAgIFB5X1JFVFVSTl9OT05FOwotICAgIH0KIAotICAgIGxlbiA9IHN0cmxlbihmaWxlKTsKLSAgICAvKiBtYXRjaCAnKi5weT8nICovCi0gICAgaWYgKGxlbiA+IE1BWFBBVEhMRU4gfHwgUHlPU19zdHJuaWNtcCgmZmlsZVtsZW4tNF0sICIucHkiLCAzKSAhPSAwKSB7Ci0gICAgICAgIHJldHVybiBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KGZpbGUpOwotICAgIH0KKyAgICAvKiBkb24ndCBtYXRjaCAqLnB5YyBvciAqLnB5bz8gKi8KKyAgICBkYXRhID0gUHlVbmljb2RlX0RBVEEoZmlsZW5hbWUpOworICAgIGtpbmQgPSBQeVVuaWNvZGVfS0lORChmaWxlbmFtZSk7CisgICAgaWYgKGxlbiA8IDUKKyAgICAgICAgfHwgUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgbGVuLTQpICE9ICcuJworICAgICAgICB8fCAoUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgbGVuLTMpICE9ICdwJworICAgICAgICAgICAgJiYgUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgbGVuLTMpICE9ICdQJykKKyAgICAgICAgfHwgKFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGxlbi0yKSAhPSAneScKKyAgICAgICAgICAgICYmIFB5VW5pY29kZV9SRUFEKGtpbmQsIGRhdGEsIGxlbi0yKSAhPSAnWScpKQorICAgICAgICBnb3RvIHVuY2hhbmdlZDsKIAotICAgIHB5ID0gUHlNZW1fTUFMTE9DKE1BWFBBVEhMRU4rMSk7Ci0gICAgaWYgKHB5ID09IE5VTEwpIHsKLSAgICAgICAgcmV0dXJuIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgfQogICAgIC8qIFN0YXJ0IGJ5IHRyeWluZyB0byB0dXJuIFBFUCAzMTQ3IHBhdGggaW50byBzb3VyY2UgcGF0aC4gIElmIHRoYXQKICAgICAgKiBmYWlscywganVzdCBjaG9wIG9mZiB0aGUgdHJhaWxpbmcgY2hhcmFjdGVyLCBpLmUuIGxlZ2FjeSBweWMgcGF0aAogICAgICAqIHRvIHB5LgogICAgICAqLwotICAgIGlmIChtYWtlX3NvdXJjZV9wYXRobmFtZShmaWxlLCBweSkgPT0gTlVMTCkgewotICAgICAgICBzdHJuY3B5KHB5LCBmaWxlLCBsZW4tMSk7Ci0gICAgICAgIHB5W2xlbi0xXSA9ICdcMCc7CisgICAgcHkgPSBtYWtlX3NvdXJjZV9wYXRobmFtZShmaWxlbmFtZSk7CisgICAgaWYgKHB5ID09IE5VTEwpIHsKKyAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgcHkgPSBQeVVuaWNvZGVfU3Vic3RyaW5nKGZpbGVuYW1lLCAwLCBsZW4gLSAxKTsKICAgICB9CisgICAgaWYgKHB5ID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CiAKLSAgICBpZiAoc3RhdChweSwgJnN0YXRidWYpID09IDAgJiYKLSAgICAgICAgU19JU1JFRyhzdGF0YnVmLnN0X21vZGUpKSB7Ci0gICAgICAgIHUgPSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KHB5KTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIHUgPSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KGZpbGUpOwotICAgIH0KLSAgICBQeU1lbV9GUkVFKHB5KTsKLSAgICByZXR1cm4gdTsKKyAgICBlcnIgPSBfUHlfc3RhdChweSwgJnN0YXRidWYpOworICAgIGlmIChlcnIgPT0gLTIpCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgaWYgKGVyciA9PSAwICYmIFNfSVNSRUcoc3RhdGJ1Zi5zdF9tb2RlKSkKKyAgICAgICAgcmV0dXJuIHB5OworICAgIFB5X0RFQ1JFRihweSk7CisgICAgZ290byB1bmNoYW5nZWQ7CisKK2Vycm9yOgorICAgIFB5RXJyX0NsZWFyKCk7Cit1bmNoYW5nZWQ6CisgICAgUHlfSU5DUkVGKGZpbGVuYW1lKTsKKyAgICByZXR1cm4gZmlsZW5hbWU7CiB9CiAKIC8qIEZvcndhcmQgKi8KLXN0YXRpYyBQeU9iamVjdCAqbG9hZF9tb2R1bGUoY2hhciAqLCBGSUxFICosIGNoYXIgKiwgaW50LCBQeU9iamVjdCAqKTsKLXN0YXRpYyBzdHJ1Y3QgZmlsZWRlc2NyICpmaW5kX21vZHVsZShjaGFyICosIGNoYXIgKiwgUHlPYmplY3QgKiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICosIHNpemVfdCwgRklMRSAqKiwgUHlPYmplY3QgKiopOwotc3RhdGljIHN0cnVjdCBfZnJvemVuICogZmluZF9mcm96ZW4oY2hhciAqKTsKLQotLyogTG9hZCBhIHBhY2thZ2UgYW5kIHJldHVybiBpdHMgbW9kdWxlIG9iamVjdCBXSVRIIElOQ1JFTUVOVEVECi0gICBSRUZFUkVOQ0UgQ09VTlQgKi8KLQotc3RhdGljIFB5T2JqZWN0ICoKLWxvYWRfcGFja2FnZShjaGFyICpuYW1lLCBjaGFyICpwYXRobmFtZSkKLXsKLSAgICBQeU9iamVjdCAqbSwgKmQ7Ci0gICAgUHlPYmplY3QgKmZpbGUgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpwYXRoID0gTlVMTDsKLSAgICBpbnQgZXJyOwotICAgIGNoYXIgKmJ1ZiA9IE5VTEw7Ci0gICAgRklMRSAqZnAgPSBOVUxMOwotICAgIHN0cnVjdCBmaWxlZGVzY3IgKmZkcDsKLQotICAgIG0gPSBQeUltcG9ydF9BZGRNb2R1bGUobmFtZSk7Ci0gICAgaWYgKG0gPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQotICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigiaW1wb3J0ICVzICMgZGlyZWN0b3J5ICVzXG4iLAotICAgICAgICAgICAgbmFtZSwgcGF0aG5hbWUpOwotICAgIGQgPSBQeU1vZHVsZV9HZXREaWN0KG0pOwotICAgIGZpbGUgPSBnZXRfc291cmNlZmlsZShwYXRobmFtZSk7Ci0gICAgaWYgKGZpbGUgPT0gTlVMTCkKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICBwYXRoID0gUHlfQnVpbGRWYWx1ZSgiW09dIiwgZmlsZSk7Ci0gICAgaWYgKHBhdGggPT0gTlVMTCkKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICBlcnIgPSBQeURpY3RfU2V0SXRlbVN0cmluZyhkLCAiX19maWxlX18iLCBmaWxlKTsKLSAgICBpZiAoZXJyID09IDApCi0gICAgICAgIGVyciA9IFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJfX3BhdGhfXyIsIHBhdGgpOwotICAgIGlmIChlcnIgIT0gMCkKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICBidWYgPSBQeU1lbV9NQUxMT0MoTUFYUEFUSExFTisxKTsKLSAgICBpZiAoYnVmID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgZ290byBlcnJvcjsKLSAgICB9Ci0gICAgYnVmWzBdID0gJ1wwJzsKLSAgICBmZHAgPSBmaW5kX21vZHVsZShuYW1lLCAiX19pbml0X18iLCBwYXRoLCBidWYsIE1BWFBBVEhMRU4rMSwgJmZwLCBOVUxMKTsKLSAgICBpZiAoZmRwID09IE5VTEwpIHsKLSAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfSW1wb3J0RXJyb3IpKSB7Ci0gICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgUHlfSU5DUkVGKG0pOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG0gPSBOVUxMOwotICAgICAgICBnb3RvIGNsZWFudXA7Ci0gICAgfQotICAgIG0gPSBsb2FkX21vZHVsZShuYW1lLCBmcCwgYnVmLCBmZHAtPnR5cGUsIE5VTEwpOwotICAgIGlmIChmcCAhPSBOVUxMKQotICAgICAgICBmY2xvc2UoZnApOwotICAgIGdvdG8gY2xlYW51cDsKLQotICBlcnJvcjoKLSAgICBtID0gTlVMTDsKLSAgY2xlYW51cDoKLSAgICBpZiAoYnVmKQotICAgICAgICBQeU1lbV9GUkVFKGJ1Zik7Ci0gICAgUHlfWERFQ1JFRihwYXRoKTsKLSAgICBQeV9YREVDUkVGKGZpbGUpOwotICAgIHJldHVybiBtOwotfQorc3RhdGljIHN0cnVjdCBfZnJvemVuICogZmluZF9mcm96ZW4oUHlPYmplY3QgKik7CiAKIAogLyogSGVscGVyIHRvIHRlc3QgZm9yIGJ1aWx0LWluIG1vZHVsZSAqLwogCiBzdGF0aWMgaW50Ci1pc19idWlsdGluKGNoYXIgKm5hbWUpCitpc19idWlsdGluKFB5T2JqZWN0ICpuYW1lKQogewotICAgIGludCBpOworICAgIGludCBpLCBjbXA7CiAgICAgZm9yIChpID0gMDsgUHlJbXBvcnRfSW5pdHRhYltpXS5uYW1lICE9IE5VTEw7IGkrKykgewotICAgICAgICBpZiAoc3RyY21wKG5hbWUsIFB5SW1wb3J0X0luaXR0YWJbaV0ubmFtZSkgPT0gMCkgeworICAgICAgICBjbXAgPSBQeVVuaWNvZGVfQ29tcGFyZVdpdGhBU0NJSVN0cmluZyhuYW1lLCBQeUltcG9ydF9Jbml0dGFiW2ldLm5hbWUpOworICAgICAgICBpZiAoY21wID09IDApIHsKICAgICAgICAgICAgIGlmIChQeUltcG9ydF9Jbml0dGFiW2ldLmluaXRmdW5jID09IE5VTEwpCiAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgICAgICAgZWxzZQpAQCAtMTUzMywxNSArMTEyNiw3IEBACiAgICAgICAgIFB5RXJyX0NsZWFyKCk7CiAgICAgfQogICAgIGlmIChpbXBvcnRlciA9PSBOVUxMKSB7Ci0gICAgICAgIGltcG9ydGVyID0gUHlPYmplY3RfQ2FsbEZ1bmN0aW9uT2JqQXJncygKLSAgICAgICAgICAgIChQeU9iamVjdCAqKSZQeU51bGxJbXBvcnRlcl9UeXBlLCBwLCBOVUxMCi0gICAgICAgICk7Ci0gICAgICAgIGlmIChpbXBvcnRlciA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBpZiAoUHlFcnJfRXhjZXB0aW9uTWF0Y2hlcyhQeUV4Y19JbXBvcnRFcnJvcikpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgICAgIHJldHVybiBQeV9Ob25lOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIHJldHVybiBQeV9Ob25lOwogICAgIH0KICAgICBpZiAoaW1wb3J0ZXIgIT0gTlVMTCkgewogICAgICAgICBpbnQgZXJyID0gUHlEaWN0X1NldEl0ZW0ocGF0aF9pbXBvcnRlcl9jYWNoZSwgcCwgaW1wb3J0ZXIpOwpAQCAtMTU2Niw2NjEgKzExNTEsMzggQEAKICAgICByZXR1cm4gaW1wb3J0ZXI7CiB9CiAKLS8qIFNlYXJjaCB0aGUgcGF0aCAoZGVmYXVsdCBzeXMucGF0aCkgZm9yIGEgbW9kdWxlLiAgUmV0dXJuIHRoZQotICAgY29ycmVzcG9uZGluZyBmaWxlZGVzY3Igc3RydWN0LCBhbmQgKHZpYSByZXR1cm4gYXJndW1lbnRzKSB0aGUKLSAgIHBhdGhuYW1lIGFuZCBhbiBvcGVuIGZpbGUuICBSZXR1cm4gTlVMTCBpZiB0aGUgbW9kdWxlIGlzIG5vdCBmb3VuZC4gKi8KIAotI2lmZGVmIE1TX0NPUkVETEwKLWV4dGVybiBGSUxFICpQeVdpbl9GaW5kUmVnaXN0ZXJlZE1vZHVsZShjb25zdCBjaGFyICosIHN0cnVjdCBmaWxlZGVzY3IgKiosCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqLCBQeV9zc2l6ZV90KTsKLSNlbmRpZgotCi1zdGF0aWMgaW50IGNhc2Vfb2soY2hhciAqLCBQeV9zc2l6ZV90LCBQeV9zc2l6ZV90LCBjaGFyICopOwotc3RhdGljIGludCBmaW5kX2luaXRfbW9kdWxlKGNoYXIgKik7IC8qIEZvcndhcmQgKi8KLXN0YXRpYyBzdHJ1Y3QgZmlsZWRlc2NyIGltcG9ydGhvb2tkZXNjciA9IHsiIiwgIiIsIElNUF9IT09LfTsKLQotc3RhdGljIHN0cnVjdCBmaWxlZGVzY3IgKgotZmluZF9tb2R1bGUoY2hhciAqZnVsbG5hbWUsIGNoYXIgKnN1Ym5hbWUsIFB5T2JqZWN0ICpwYXRoLCBjaGFyICpidWYsCi0gICAgICAgICAgICBzaXplX3QgYnVmbGVuLCBGSUxFICoqcF9mcCwgUHlPYmplY3QgKipwX2xvYWRlcikKLXsKLSAgICBQeV9zc2l6ZV90IGksIG5wYXRoOwotICAgIHNpemVfdCBsZW4sIG5hbWVsZW47Ci0gICAgc3RydWN0IGZpbGVkZXNjciAqZmRwID0gTlVMTDsKLSAgICBjaGFyICpmaWxlbW9kZTsKLSAgICBGSUxFICpmcCA9IE5VTEw7Ci0gICAgUHlPYmplY3QgKnBhdGhfaG9va3MsICpwYXRoX2ltcG9ydGVyX2NhY2hlOwotICAgIHN0cnVjdCBzdGF0IHN0YXRidWY7Ci0gICAgc3RhdGljIHN0cnVjdCBmaWxlZGVzY3IgZmRfZnJvemVuID0geyIiLCAiIiwgUFlfRlJPWkVOfTsKLSAgICBzdGF0aWMgc3RydWN0IGZpbGVkZXNjciBmZF9idWlsdGluID0geyIiLCAiIiwgQ19CVUlMVElOfTsKLSAgICBzdGF0aWMgc3RydWN0IGZpbGVkZXNjciBmZF9wYWNrYWdlID0geyIiLCAiIiwgUEtHX0RJUkVDVE9SWX07Ci0gICAgY2hhciAqbmFtZTsKLSNpZiBkZWZpbmVkKFBZT1NfT1MyKQotICAgIHNpemVfdCBzYXZlZF9sZW47Ci0gICAgc2l6ZV90IHNhdmVkX25hbWVsZW47Ci0gICAgY2hhciAqc2F2ZWRfYnVmID0gTlVMTDsKLSNlbmRpZgotICAgIGlmIChwX2xvYWRlciAhPSBOVUxMKQotICAgICAgICAqcF9sb2FkZXIgPSBOVUxMOwotCi0gICAgaWYgKHN0cmxlbihzdWJuYW1lKSA+IE1BWFBBVEhMRU4pIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAibW9kdWxlIG5hbWUgaXMgdG9vIGxvbmciKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIG5hbWUgPSBQeU1lbV9NQUxMT0MoTUFYUEFUSExFTisxKTsKLSAgICBpZiAobmFtZSA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX05vTWVtb3J5KCk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBzdHJjcHkobmFtZSwgc3VibmFtZSk7Ci0KLSAgICAvKiBzeXMubWV0YV9wYXRoIGltcG9ydCBob29rICovCi0gICAgaWYgKHBfbG9hZGVyICE9IE5VTEwpIHsKLSAgICAgICAgUHlPYmplY3QgKm1ldGFfcGF0aDsKLQotICAgICAgICBtZXRhX3BhdGggPSBQeVN5c19HZXRPYmplY3QoIm1ldGFfcGF0aCIpOwotICAgICAgICBpZiAobWV0YV9wYXRoID09IE5VTEwgfHwgIVB5TGlzdF9DaGVjayhtZXRhX3BhdGgpKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeXMubWV0YV9wYXRoIG11c3QgYmUgYSBsaXN0IG9mICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IGhvb2tzIik7Ci0gICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgICAgIH0KLSAgICAgICAgUHlfSU5DUkVGKG1ldGFfcGF0aCk7ICAvKiB6YXAgZ3VhcmQgKi8KLSAgICAgICAgbnBhdGggPSBQeUxpc3RfU2l6ZShtZXRhX3BhdGgpOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnBhdGg7IGkrKykgewotICAgICAgICAgICAgUHlPYmplY3QgKmxvYWRlcjsKLSAgICAgICAgICAgIFB5T2JqZWN0ICpob29rID0gUHlMaXN0X0dldEl0ZW0obWV0YV9wYXRoLCBpKTsKLSAgICAgICAgICAgIGxvYWRlciA9IFB5T2JqZWN0X0NhbGxNZXRob2QoaG9vaywgImZpbmRfbW9kdWxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNPIiwgZnVsbG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggIT0gTlVMTCA/Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggOiBQeV9Ob25lKTsKLSAgICAgICAgICAgIGlmIChsb2FkZXIgPT0gTlVMTCkgewotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihtZXRhX3BhdGgpOwotICAgICAgICAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsgIC8qIHRydWUgZXJyb3IgKi8KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChsb2FkZXIgIT0gUHlfTm9uZSkgewotICAgICAgICAgICAgICAgIC8qIGEgbG9hZGVyIHdhcyBmb3VuZCAqLwotICAgICAgICAgICAgICAgICpwX2xvYWRlciA9IGxvYWRlcjsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYobWV0YV9wYXRoKTsKLSAgICAgICAgICAgICAgICBQeU1lbV9GUkVFKG5hbWUpOwotICAgICAgICAgICAgICAgIHJldHVybiAmaW1wb3J0aG9va2Rlc2NyOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgUHlfREVDUkVGKGxvYWRlcik7Ci0gICAgICAgIH0KLSAgICAgICAgUHlfREVDUkVGKG1ldGFfcGF0aCk7Ci0gICAgfQotCi0gICAgaWYgKGZpbmRfZnJvemVuKGZ1bGxuYW1lKSAhPSBOVUxMKSB7Ci0gICAgICAgIHN0cmNweShidWYsIGZ1bGxuYW1lKTsKLSAgICAgICAgUHlNZW1fRlJFRShuYW1lKTsKLSAgICAgICAgcmV0dXJuICZmZF9mcm96ZW47Ci0gICAgfQotCi0gICAgaWYgKHBhdGggPT0gTlVMTCkgewotICAgICAgICBpZiAoaXNfYnVpbHRpbihuYW1lKSkgewotICAgICAgICAgICAgc3RyY3B5KGJ1ZiwgbmFtZSk7Ci0gICAgICAgICAgICBQeU1lbV9GUkVFKG5hbWUpOwotICAgICAgICAgICAgcmV0dXJuICZmZF9idWlsdGluOwotICAgICAgICB9Ci0jaWZkZWYgTVNfQ09SRURMTAotICAgICAgICBmcCA9IFB5V2luX0ZpbmRSZWdpc3RlcmVkTW9kdWxlKG5hbWUsICZmZHAsIGJ1ZiwgYnVmbGVuKTsKLSAgICAgICAgaWYgKGZwICE9IE5VTEwpIHsKLSAgICAgICAgICAgICpwX2ZwID0gZnA7Ci0gICAgICAgICAgICBQeU1lbV9GUkVFKG5hbWUpOwotICAgICAgICAgICAgcmV0dXJuIGZkcDsKLSAgICAgICAgfQotI2VuZGlmCi0gICAgICAgIHBhdGggPSBQeVN5c19HZXRPYmplY3QoInBhdGgiKTsKLSAgICB9Ci0KLSAgICBpZiAocGF0aCA9PSBOVUxMIHx8ICFQeUxpc3RfQ2hlY2socGF0aCkpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzeXMucGF0aCBtdXN0IGJlIGEgbGlzdCBvZiBkaXJlY3RvcnkgbmFtZXMiKTsKLSAgICAgICAgZ290byBlcnJvcl9leGl0OwotICAgIH0KLQotICAgIHBhdGhfaG9va3MgPSBQeVN5c19HZXRPYmplY3QoInBhdGhfaG9va3MiKTsKLSAgICBpZiAocGF0aF9ob29rcyA9PSBOVUxMIHx8ICFQeUxpc3RfQ2hlY2socGF0aF9ob29rcykpIHsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzeXMucGF0aF9ob29rcyBtdXN0IGJlIGEgbGlzdCBvZiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IGhvb2tzIik7Ci0gICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKLSAgICB9Ci0gICAgcGF0aF9pbXBvcnRlcl9jYWNoZSA9IFB5U3lzX0dldE9iamVjdCgicGF0aF9pbXBvcnRlcl9jYWNoZSIpOwotICAgIGlmIChwYXRoX2ltcG9ydGVyX2NhY2hlID09IE5VTEwgfHwKLSAgICAgICAgIVB5RGljdF9DaGVjayhwYXRoX2ltcG9ydGVyX2NhY2hlKSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgInN5cy5wYXRoX2ltcG9ydGVyX2NhY2hlIG11c3QgYmUgYSBkaWN0Iik7Ci0gICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKLSAgICB9Ci0KLSAgICBucGF0aCA9IFB5TGlzdF9TaXplKHBhdGgpOwotICAgIG5hbWVsZW4gPSBzdHJsZW4obmFtZSk7Ci0gICAgZm9yIChpID0gMDsgaSA8IG5wYXRoOyBpKyspIHsKLSAgICAgICAgUHlPYmplY3QgKnYgPSBQeUxpc3RfR2V0SXRlbShwYXRoLCBpKTsKLSAgICAgICAgUHlPYmplY3QgKm9yaWd2ID0gdjsKLSAgICAgICAgY29uc3QgY2hhciAqYmFzZTsKLSAgICAgICAgUHlfc3NpemVfdCBzaXplOwotICAgICAgICBpZiAoIXYpCi0gICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2sodikpIHsKLSAgICAgICAgICAgIHYgPSBQeVVuaWNvZGVfRW5jb2RlRlNEZWZhdWx0KHYpOwotICAgICAgICAgICAgaWYgKHYgPT0gTlVMTCkKLSAgICAgICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoIVB5Qnl0ZXNfQ2hlY2sodikpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgUHlfSU5DUkVGKHYpOwotCi0gICAgICAgIGJhc2UgPSBQeUJ5dGVzX0FTX1NUUklORyh2KTsKLSAgICAgICAgc2l6ZSA9IFB5Qnl0ZXNfR0VUX1NJWkUodik7Ci0gICAgICAgIGxlbiA9IHNpemU7Ci0gICAgICAgIGlmIChsZW4gKyAyICsgbmFtZWxlbiArIE1BWFNVRkZJWFNJWkUgPj0gYnVmbGVuKSB7Ci0gICAgICAgICAgICBQeV9ERUNSRUYodik7Ci0gICAgICAgICAgICBjb250aW51ZTsgLyogVG9vIGxvbmcgKi8KLSAgICAgICAgfQotICAgICAgICBzdHJjcHkoYnVmLCBiYXNlKTsKLSAgICAgICAgUHlfREVDUkVGKHYpOwotCi0gICAgICAgIGlmIChzdHJsZW4oYnVmKSAhPSBsZW4pIHsKLSAgICAgICAgICAgIGNvbnRpbnVlOyAvKiB2IGNvbnRhaW5zICdcMCcgKi8KLSAgICAgICAgfQotCi0gICAgICAgIC8qIHN5cy5wYXRoX2hvb2tzIGltcG9ydCBob29rICovCi0gICAgICAgIGlmIChwX2xvYWRlciAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBQeU9iamVjdCAqaW1wb3J0ZXI7Ci0KLSAgICAgICAgICAgIGltcG9ydGVyID0gZ2V0X3BhdGhfaW1wb3J0ZXIocGF0aF9pbXBvcnRlcl9jYWNoZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aF9ob29rcywgb3JpZ3YpOwotICAgICAgICAgICAgaWYgKGltcG9ydGVyID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAvKiBOb3RlOiBpbXBvcnRlciBpcyBhIGJvcnJvd2VkIHJlZmVyZW5jZSAqLwotICAgICAgICAgICAgaWYgKGltcG9ydGVyICE9IFB5X05vbmUpIHsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqbG9hZGVyOwotICAgICAgICAgICAgICAgIGxvYWRlciA9IFB5T2JqZWN0X0NhbGxNZXRob2QoaW1wb3J0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmluZF9tb2R1bGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiLCBmdWxsbmFtZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGxvYWRlciA9PSBOVUxMKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7ICAvKiBlcnJvciAqLwotICAgICAgICAgICAgICAgIGlmIChsb2FkZXIgIT0gUHlfTm9uZSkgewotICAgICAgICAgICAgICAgICAgICAvKiBhIGxvYWRlciB3YXMgZm91bmQgKi8KLSAgICAgICAgICAgICAgICAgICAgKnBfbG9hZGVyID0gbG9hZGVyOwotICAgICAgICAgICAgICAgICAgICBQeU1lbV9GUkVFKG5hbWUpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gJmltcG9ydGhvb2tkZXNjcjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKGxvYWRlcik7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgLyogbm8gaG9vayB3YXMgZm91bmQsIHVzZSBidWlsdGluIGltcG9ydCAqLwotCi0gICAgICAgIGlmIChsZW4gPiAwICYmIGJ1ZltsZW4tMV0gIT0gU0VQCi0jaWZkZWYgQUxUU0VQCi0gICAgICAgICAgICAmJiBidWZbbGVuLTFdICE9IEFMVFNFUAotI2VuZGlmCi0gICAgICAgICAgICApCi0gICAgICAgICAgICBidWZbbGVuKytdID0gU0VQOwotICAgICAgICBzdHJjcHkoYnVmK2xlbiwgbmFtZSk7Ci0gICAgICAgIGxlbiArPSBuYW1lbGVuOwotCi0gICAgICAgIC8qIENoZWNrIGZvciBwYWNrYWdlIGltcG9ydCAoYnVmIGhvbGRzIGEgZGlyZWN0b3J5IG5hbWUsCi0gICAgICAgICAgIGFuZCB0aGVyZSdzIGFuIF9faW5pdF9fIG1vZHVsZSBpbiB0aGF0IGRpcmVjdG9yeSAqLwotI2lmZGVmIEhBVkVfU1RBVAotICAgICAgICBpZiAoc3RhdChidWYsICZzdGF0YnVmKSA9PSAwICYmICAgICAgICAgLyogaXQgZXhpc3RzICovCi0gICAgICAgICAgICBTX0lTRElSKHN0YXRidWYuc3RfbW9kZSkgJiYgICAgICAgICAvKiBpdCdzIGEgZGlyZWN0b3J5ICovCi0gICAgICAgICAgICBjYXNlX29rKGJ1ZiwgbGVuLCBuYW1lbGVuLCBuYW1lKSkgeyAvKiBjYXNlIG1hdGNoZXMgKi8KLSAgICAgICAgICAgIGlmIChmaW5kX2luaXRfbW9kdWxlKGJ1ZikpIHsgLyogYW5kIGhhcyBfX2luaXRfXy5weSAqLwotICAgICAgICAgICAgICAgIFB5TWVtX0ZSRUUobmFtZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICZmZF9wYWNrYWdlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaW50IGVycjsKLSAgICAgICAgICAgICAgICBQeU9iamVjdCAqdW5pY29kZSA9IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHQoYnVmKTsKLSAgICAgICAgICAgICAgICBpZiAodW5pY29kZSA9PSBOVUxMKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgICAgICAgICAgICAgZXJyID0gUHlFcnJfV2FybkZvcm1hdChQeUV4Y19JbXBvcnRXYXJuaW5nLCAxLAotICAgICAgICAgICAgICAgICAgICAiTm90IGltcG9ydGluZyBkaXJlY3RvcnkgJyVVJzogbWlzc2luZyBfX2luaXRfXy5weSIsCi0gICAgICAgICAgICAgICAgICAgIHVuaWNvZGUpOwotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRih1bmljb2RlKTsKLSAgICAgICAgICAgICAgICBpZiAoZXJyKQotICAgICAgICAgICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSNlbmRpZgotI2lmIGRlZmluZWQoUFlPU19PUzIpCi0gICAgICAgIC8qIHRha2UgYSBzbmFwc2hvdCBvZiB0aGUgbW9kdWxlIHNwZWMgZm9yIHJlc3RvcmF0aW9uCi0gICAgICAgICAqIGFmdGVyIHRoZSA4IGNoYXJhY3RlciBETEwgaGFja2VyeQotICAgICAgICAgKi8KLSAgICAgICAgc2F2ZWRfYnVmID0gc3RyZHVwKGJ1Zik7Ci0gICAgICAgIHNhdmVkX2xlbiA9IGxlbjsKLSAgICAgICAgc2F2ZWRfbmFtZWxlbiA9IG5hbWVsZW47Ci0jZW5kaWYgLyogUFlPU19PUzIgKi8KLSAgICAgICAgZm9yIChmZHAgPSBfUHlJbXBvcnRfRmlsZXRhYjsgZmRwLT5zdWZmaXggIT0gTlVMTDsgZmRwKyspIHsKLSAgICAgICAgICAgIHN0cnVjdCBzdGF0IHN0YXRidWY7Ci0jaWYgZGVmaW5lZChQWU9TX09TMikgJiYgZGVmaW5lZChIQVZFX0RZTkFNSUNfTE9BRElORykKLSAgICAgICAgICAgIC8qIE9TLzIgbGltaXRzIERMTHMgdG8gOCBjaGFyYWN0ZXIgbmFtZXMgKHcvbwotICAgICAgICAgICAgICAgZXh0ZW5zaW9uKQotICAgICAgICAgICAgICogc28gaWYgdGhlIG5hbWUgaXMgbG9uZ2VyIHRoYW4gdGhhdCBhbmQgaXRzIGEKLSAgICAgICAgICAgICAqIGR5bmFtaWNhbGx5IGxvYWRlZCBtb2R1bGUgd2UncmUgZ29pbmcgdG8gdHJ5LAotICAgICAgICAgICAgICogdHJ1bmNhdGUgdGhlIG5hbWUgYmVmb3JlIHRyeWluZwotICAgICAgICAgICAgICovCi0gICAgICAgICAgICBpZiAoc3RybGVuKHN1Ym5hbWUpID4gOCkgewotICAgICAgICAgICAgICAgIC8qIGlzIHRoaXMgYW4gYXR0ZW1wdCB0byBsb2FkIGEgQyBleHRlbnNpb24/ICovCi0gICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGZpbGVkZXNjciAqc2NhbjsKLSAgICAgICAgICAgICAgICBzY2FuID0gX1B5SW1wb3J0X0R5bkxvYWRGaWxldGFiOwotICAgICAgICAgICAgICAgIHdoaWxlIChzY2FuLT5zdWZmaXggIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoIXN0cmNtcChzY2FuLT5zdWZmaXgsIGZkcC0+c3VmZml4KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBzY2FuKys7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGlmIChzY2FuLT5zdWZmaXggIT0gTlVMTCkgewotICAgICAgICAgICAgICAgICAgICAvKiB5ZXMsIHNvIHRydW5jYXRlIHRoZSBuYW1lICovCi0gICAgICAgICAgICAgICAgICAgIG5hbWVsZW4gPSA4OwotICAgICAgICAgICAgICAgICAgICBsZW4gLT0gc3RybGVuKHN1Ym5hbWUpIC0gbmFtZWxlbjsKLSAgICAgICAgICAgICAgICAgICAgYnVmW2xlbl0gPSAnXDAnOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNlbmRpZiAvKiBQWU9TX09TMiAqLwotICAgICAgICAgICAgc3RyY3B5KGJ1ZitsZW4sIGZkcC0+c3VmZml4KTsKLSAgICAgICAgICAgIGlmIChQeV9WZXJib3NlRmxhZyA+IDEpCi0gICAgICAgICAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoIiMgdHJ5aW5nICVzXG4iLCBidWYpOwotCi0gICAgICAgICAgICBmaWxlbW9kZSA9IGZkcC0+bW9kZTsKLSAgICAgICAgICAgIGlmIChmaWxlbW9kZVswXSA9PSAnVScpCi0gICAgICAgICAgICAgICAgZmlsZW1vZGUgPSAiciIgUFlfU1RESU9URVhUTU9ERTsKLQotICAgICAgICAgICAgaWYgKHN0YXQoYnVmLCAmc3RhdGJ1ZikgPT0gMCAmJiBTX0lTRElSKHN0YXRidWYuc3RfbW9kZSkpCi0gICAgICAgICAgICAgICAgLyogaXQncyBhIGRpcmVjdG9yeSAqLwotICAgICAgICAgICAgICAgIGZwID0gTlVMTDsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBmcCA9IGZvcGVuKGJ1ZiwgZmlsZW1vZGUpOwotICAgICAgICAgICAgaWYgKGZwICE9IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2FzZV9vayhidWYsIGxlbiwgbmFtZWxlbiwgbmFtZSkpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIGVsc2UgeyAgICAgICAgICAgICAgICAgICAvKiBjb250aW51ZSBzZWFyY2ggKi8KLSAgICAgICAgICAgICAgICAgICAgZmNsb3NlKGZwKTsKLSAgICAgICAgICAgICAgICAgICAgZnAgPSBOVUxMOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSNpZiBkZWZpbmVkKFBZT1NfT1MyKQotICAgICAgICAgICAgLyogcmVzdG9yZSB0aGUgc2F2ZWQgc25hcHNob3QgKi8KLSAgICAgICAgICAgIHN0cmNweShidWYsIHNhdmVkX2J1Zik7Ci0gICAgICAgICAgICBsZW4gPSBzYXZlZF9sZW47Ci0gICAgICAgICAgICBuYW1lbGVuID0gc2F2ZWRfbmFtZWxlbjsKLSNlbmRpZgotICAgICAgICB9Ci0jaWYgZGVmaW5lZChQWU9TX09TMikKLSAgICAgICAgLyogZG9uJ3QgbmVlZC93YW50IHRoZSBtb2R1bGUgbmFtZSBzbmFwc2hvdCBhbnltb3JlICovCi0gICAgICAgIGlmIChzYXZlZF9idWYpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZyZWUoc2F2ZWRfYnVmKTsKLSAgICAgICAgICAgIHNhdmVkX2J1ZiA9IE5VTEw7Ci0gICAgICAgIH0KLSNlbmRpZgotICAgICAgICBpZiAoZnAgIT0gTlVMTCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBpZiAoZnAgPT0gTlVMTCkgewotICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSW1wb3J0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAiTm8gbW9kdWxlIG5hbWVkICUuMjAwcyIsIG5hbWUpOwotICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgfQotICAgICpwX2ZwID0gZnA7Ci0gICAgUHlNZW1fRlJFRShuYW1lKTsKLSAgICByZXR1cm4gZmRwOwotCi1lcnJvcl9leGl0OgotICAgIFB5TWVtX0ZSRUUobmFtZSk7Ci0gICAgcmV0dXJuIE5VTEw7Ci19Ci0KLS8qIGNhc2Vfb2soY2hhciogYnVmLCBQeV9zc2l6ZV90IGxlbiwgUHlfc3NpemVfdCBuYW1lbGVuLCBjaGFyKiBuYW1lKQotICogVGhlIGFyZ3VtZW50cyBoZXJlIGFyZSB0cmlja3ksIGJlc3Qgc2hvd24gYnkgZXhhbXBsZToKLSAqICAgIC9hL2IvYy9kL2UvZi9nL2gvaS9qL2svc29tZV9sb25nX21vZHVsZV9uYW1lLnB5XDAKLSAqICAgIF4gICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICBeICAgIF4KLSAqICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0gYnVmIC0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKLSAqICAgIHwtLS0tLS0tLS0tLS0tLS0tLS0tIGxlbiAtLS0tLS0tLS0tLS0tLS0tLS18Ci0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0gbmFtZSAtLS0tLS0tfAotICogICAgICAgICAgICAgICAgICAgICAgICAgICB8LS0tLS0gbmFtZWxlbiAtLS0tLXwKLSAqIGJ1ZiBpcyB0aGUgZnVsbCBwYXRoLCBidXQgbGVuIG9ubHkgY291bnRzIHVwIHRvICgmIGV4Y2x1c2l2ZSBvZikgdGhlCi0gKiBleHRlbnNpb24uICBuYW1lIGlzIHRoZSBtb2R1bGUgbmFtZSwgYWxzbyBleGNsdXNpdmUgb2YgZXh0ZW5zaW9uLgotICoKLSAqIFdlJ3ZlIGFscmVhZHkgZG9uZSBhIHN1Y2Nlc3NmdWwgc3RhdCgpIG9yIGZvcGVuKCkgb24gYnVmLCBzbyBrbm93IHRoYXQKLSAqIHRoZXJlJ3Mgc29tZSBtYXRjaCwgcG9zc2libHkgY2FzZS1pbnNlbnNpdGl2ZS4KLSAqCi0gKiBjYXNlX29rKCkgaXMgdG8gcmV0dXJuIDEgaWYgdGhlcmUncyBhIGNhc2Utc2Vuc2l0aXZlIG1hdGNoIGZvcgotICogbmFtZSwgZWxzZSAwLiAgY2FzZV9vaygpIGlzIGFsc28gdG8gcmV0dXJuIDEgaWYgZW52YXIgUFlUSE9OQ0FTRU9LCi0gKiBleGlzdHMuCi0gKgotICogY2FzZV9vaygpIGlzIHVzZWQgdG8gaW1wbGVtZW50IGNhc2Utc2Vuc2l0aXZlIGltcG9ydCBzZW1hbnRpY3MgZXZlbgotICogb24gcGxhdGZvcm1zIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBmaWxlc3lzdGVtcy4gIEl0J3MgdHJpdmlhbCB0byBpbXBsZW1lbnQKLSAqIGZvciBjYXNlLXNlbnNpdGl2ZSBmaWxlc3lzdGVtcy4gIEl0J3MgcHJldHR5IG11Y2ggYSBjcm9zcy1wbGF0Zm9ybQotICogbmlnaHRtYXJlIGZvciBzeXN0ZW1zIHdpdGggY2FzZS1pbnNlbnNpdGl2ZSBmaWxlc3lzdGVtcy4KLSAqLwotCi0vKiBGaXJzdCB3ZSBtYXkgbmVlZCBhIHBpbGUgb2YgcGxhdGZvcm0tc3BlY2lmaWMgaGVhZGVyIGZpbGVzOyB0aGUgc2VxdWVuY2UKLSAqIG9mICNpZidzIGhlcmUgc2hvdWxkIG1hdGNoIHRoZSBzZXF1ZW5jZSBpbiB0aGUgYm9keSBvZiBjYXNlX29rKCkuCi0gKi8KLSNpZiBkZWZpbmVkKE1TX1dJTkRPV1MpCi0jaW5jbHVkZSA8d2luZG93cy5oPgotCi0jZWxpZiBkZWZpbmVkKERKR1BQKQotI2luY2x1ZGUgPGRpci5oPgotCi0jZWxpZiAoZGVmaW5lZChfX01BQ0hfXykgJiYgZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmluZWQoX19DWUdXSU5fXykpICYmIGRlZmluZWQoSEFWRV9ESVJFTlRfSCkKLSNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KLSNpbmNsdWRlIDxkaXJlbnQuaD4KLQotI2VsaWYgZGVmaW5lZChQWU9TX09TMikKLSNkZWZpbmUgSU5DTF9ET1MKLSNkZWZpbmUgSU5DTF9ET1NFUlJPUlMKLSNkZWZpbmUgSU5DTF9OT1BNQVBJCi0jaW5jbHVkZSA8b3MyLmg+Ci0jZW5kaWYKLQotc3RhdGljIGludAotY2FzZV9vayhjaGFyICpidWYsIFB5X3NzaXplX3QgbGVuLCBQeV9zc2l6ZV90IG5hbWVsZW4sIGNoYXIgKm5hbWUpCi17Ci0vKiBQaWNrIGEgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb247IHRoZSBzZXF1ZW5jZSBvZiAjaWYncyBoZXJlIHNob3VsZAotICogbWF0Y2ggdGhlIHNlcXVlbmNlIGp1c3QgYWJvdmUuCi0gKi8KLQotLyogTVNfV0lORE9XUyAqLwotI2lmIGRlZmluZWQoTVNfV0lORE9XUykKLSAgICBXSU4zMl9GSU5EX0RBVEEgZGF0YTsKLSAgICBIQU5ETEUgaDsKLQotICAgIGlmIChQeV9HRVRFTlYoIlBZVEhPTkNBU0VPSyIpICE9IE5VTEwpCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgaCA9IEZpbmRGaXJzdEZpbGUoYnVmLCAmZGF0YSk7Ci0gICAgaWYgKGggPT0gSU5WQUxJRF9IQU5ETEVfVkFMVUUpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX05hbWVFcnJvciwKLSAgICAgICAgICAiQ2FuJ3QgZmluZCBmaWxlIGZvciBtb2R1bGUgJS4xMDBzXG4oZmlsZW5hbWUgJS4zMDBzKSIsCi0gICAgICAgICAgbmFtZSwgYnVmKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIEZpbmRDbG9zZShoKTsKLSAgICByZXR1cm4gc3RybmNtcChkYXRhLmNGaWxlTmFtZSwgbmFtZSwgbmFtZWxlbikgPT0gMDsKLQotLyogREpHUFAgKi8KLSNlbGlmIGRlZmluZWQoREpHUFApCi0gICAgc3RydWN0IGZmYmxrIGZmYmxrOwotICAgIGludCBkb25lOwotCi0gICAgaWYgKFB5X0dFVEVOVigiUFlUSE9OQ0FTRU9LIikgIT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICBkb25lID0gZmluZGZpcnN0KGJ1ZiwgJmZmYmxrLCBGQV9BUkNIfEZBX1JET05MWXxGQV9ISURERU58RkFfRElSRUMpOwotICAgIGlmIChkb25lKSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19OYW1lRXJyb3IsCi0gICAgICAgICAgIkNhbid0IGZpbmQgZmlsZSBmb3IgbW9kdWxlICUuMTAwc1xuKGZpbGVuYW1lICUuMzAwcykiLAotICAgICAgICAgIG5hbWUsIGJ1Zik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICByZXR1cm4gc3RybmNtcChmZmJsay5mZl9uYW1lLCBuYW1lLCBuYW1lbGVuKSA9PSAwOwotCi0vKiBuZXctZmFuZ2xlZCBtYWNpbnRvc2ggKG1hY29zeCkgb3IgQ3lnd2luICovCi0jZWxpZiAoZGVmaW5lZChfX01BQ0hfXykgJiYgZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmluZWQoX19DWUdXSU5fXykpICYmIGRlZmluZWQoSEFWRV9ESVJFTlRfSCkKLSAgICBESVIgKmRpcnA7Ci0gICAgc3RydWN0IGRpcmVudCAqZHA7Ci0gICAgY2hhciBkaXJuYW1lW01BWFBBVEhMRU4gKyAxXTsKLSAgICBjb25zdCBpbnQgZGlybGVuID0gbGVuIC0gbmFtZWxlbiAtIDE7IC8qIGRvbid0IHdhbnQgdHJhaWxpbmcgU0VQICovCi0KLSAgICBpZiAoUHlfR0VURU5WKCJQWVRIT05DQVNFT0siKSAhPSBOVUxMKQotICAgICAgICByZXR1cm4gMTsKLQotICAgIC8qIENvcHkgdGhlIGRpciBjb21wb25lbnQgaW50byBkaXJuYW1lOyBzdWJzdGl0dXRlICIuIiBpZiBlbXB0eSAqLwotICAgIGlmIChkaXJsZW4gPD0gMCkgewotICAgICAgICBkaXJuYW1lWzBdID0gJy4nOwotICAgICAgICBkaXJuYW1lWzFdID0gJ1wwJzsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIGFzc2VydChkaXJsZW4gPD0gTUFYUEFUSExFTik7Ci0gICAgICAgIG1lbWNweShkaXJuYW1lLCBidWYsIGRpcmxlbik7Ci0gICAgICAgIGRpcm5hbWVbZGlybGVuXSA9ICdcMCc7Ci0gICAgfQotICAgIC8qIE9wZW4gdGhlIGRpcmVjdG9yeSBhbmQgc2VhcmNoIHRoZSBlbnRyaWVzIGZvciBhbiBleGFjdCBtYXRjaC4gKi8KLSAgICBkaXJwID0gb3BlbmRpcihkaXJuYW1lKTsKLSAgICBpZiAoZGlycCkgewotICAgICAgICBjaGFyICpuYW1lV2l0aEV4dCA9IGJ1ZiArIGxlbiAtIG5hbWVsZW47Ci0gICAgICAgIHdoaWxlICgoZHAgPSByZWFkZGlyKGRpcnApKSAhPSBOVUxMKSB7Ci0gICAgICAgICAgICBjb25zdCBpbnQgdGhpc2xlbiA9Ci0jaWZkZWYgX0RJUkVOVF9IQVZFX0RfTkFNRUxFTgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHAtPmRfbmFtbGVuOwotI2Vsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmxlbihkcC0+ZF9uYW1lKTsKLSNlbmRpZgotICAgICAgICAgICAgaWYgKHRoaXNsZW4gPj0gbmFtZWxlbiAmJgotICAgICAgICAgICAgICAgIHN0cmNtcChkcC0+ZF9uYW1lLCBuYW1lV2l0aEV4dCkgPT0gMCkgewotICAgICAgICAgICAgICAgICh2b2lkKWNsb3NlZGlyKGRpcnApOwotICAgICAgICAgICAgICAgIHJldHVybiAxOyAvKiBGb3VuZCAqLwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgICh2b2lkKWNsb3NlZGlyKGRpcnApOwotICAgIH0KLSAgICByZXR1cm4gMCA7IC8qIE5vdCBmb3VuZCAqLwotCi0vKiBPUy8yICovCi0jZWxpZiBkZWZpbmVkKFBZT1NfT1MyKQotICAgIEhESVIgaGRpciA9IDE7Ci0gICAgVUxPTkcgc3JjaGNudCA9IDE7Ci0gICAgRklMRUZJTkRCVUYzIGZmYnVmOwotICAgIEFQSVJFVCByYzsKLQotICAgIGlmIChQeV9HRVRFTlYoIlBZVEhPTkNBU0VPSyIpICE9IE5VTEwpCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgcmMgPSBEb3NGaW5kRmlyc3QoYnVmLAotICAgICAgICAgICAgICAgICAgICAgICZoZGlyLAotICAgICAgICAgICAgICAgICAgICAgIEZJTEVfUkVBRE9OTFkgfCBGSUxFX0hJRERFTiB8IEZJTEVfU1lTVEVNIHwgRklMRV9ESVJFQ1RPUlksCi0gICAgICAgICAgICAgICAgICAgICAgJmZmYnVmLCBzaXplb2YoZmZidWYpLAotICAgICAgICAgICAgICAgICAgICAgICZzcmNoY250LAotICAgICAgICAgICAgICAgICAgICAgIEZJTF9TVEFOREFSRCk7Ci0gICAgaWYgKHJjICE9IE5PX0VSUk9SKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc3RybmNtcChmZmJ1Zi5hY2hOYW1lLCBuYW1lLCBuYW1lbGVuKSA9PSAwOwotCi0vKiBhc3N1bWluZyBpdCdzIGEgY2FzZS1zZW5zaXRpdmUgZmlsZXN5c3RlbSwgc28gdGhlcmUncyBub3RoaW5nIHRvIGRvISAqLwotI2Vsc2UKLSAgICByZXR1cm4gMTsKLQotI2VuZGlmCi19Ci0KLSNpZmRlZiBIQVZFX1NUQVQKLQotLyogSGVscGVyIHRvIGxvb2sgZm9yIF9faW5pdF9fLnB5IG9yIF9faW5pdF9fLnB5W2NvXSBpbiBwb3RlbnRpYWwgcGFja2FnZSAqLwotc3RhdGljIGludAotZmluZF9pbml0X21vZHVsZShjaGFyICpidWYpCi17Ci0gICAgY29uc3Qgc2l6ZV90IHNhdmVfbGVuID0gc3RybGVuKGJ1Zik7Ci0gICAgc2l6ZV90IGkgPSBzYXZlX2xlbjsKLSAgICBjaGFyICpwbmFtZTsgIC8qIHBvaW50ZXIgdG8gc3RhcnQgb2YgX19pbml0X18gKi8KLSAgICBzdHJ1Y3Qgc3RhdCBzdGF0YnVmOwotCi0vKiAgICAgIEZvciBjYWxsaW5nIGNhc2Vfb2soYnVmLCBsZW4sIG5hbWVsZW4sIG5hbWUpOgotICogICAgICAvYS9iL2MvZC9lL2YvZy9oL2kvai9rL3NvbWVfbG9uZ19tb2R1bGVfbmFtZS5weVwwCi0gKiAgICAgIF4gICAgICAgICAgICAgICAgICAgICAgXiAgICAgICAgICAgICAgICAgICBeICAgIF4KLSAqICAgICAgfC0tLS0tLS0tLS0tLS0tLS0tLS0tLSBidWYgLS0tLS0tLS0tLS0tLS0tLS0tLS0tfAotICogICAgICB8LS0tLS0tLS0tLS0tLS0tLS0tLSBsZW4gLS0tLS0tLS0tLS0tLS0tLS0tfAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwtLS0tLS0gbmFtZSAtLS0tLS0tfAotICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwtLS0tLSBuYW1lbGVuIC0tLS0tfAotICovCi0gICAgaWYgKHNhdmVfbGVuICsgMTMgPj0gTUFYUEFUSExFTikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgYnVmW2krK10gPSBTRVA7Ci0gICAgcG5hbWUgPSBidWYgKyBpOwotICAgIHN0cmNweShwbmFtZSwgIl9faW5pdF9fLnB5Iik7Ci0gICAgaWYgKHN0YXQoYnVmLCAmc3RhdGJ1ZikgPT0gMCkgewotICAgICAgICBpZiAoY2FzZV9vayhidWYsCi0gICAgICAgICAgICAgICAgICAgIHNhdmVfbGVuICsgOSwgICAgICAgICAgICAgICAvKiBsZW4oIi9fX2luaXRfXyIpICovCi0gICAgICAgICAgICAgICAgOCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBsZW4oIl9faW5pdF9fIikgKi8KLSAgICAgICAgICAgICAgICBwbmFtZSkpIHsKLSAgICAgICAgICAgIGJ1ZltzYXZlX2xlbl0gPSAnXDAnOwotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaSArPSBzdHJsZW4ocG5hbWUpOwotICAgIHN0cmNweShidWYraSwgUHlfT3B0aW1pemVGbGFnID8gIm8iIDogImMiKTsKLSAgICBpZiAoc3RhdChidWYsICZzdGF0YnVmKSA9PSAwKSB7Ci0gICAgICAgIGlmIChjYXNlX29rKGJ1ZiwKLSAgICAgICAgICAgICAgICAgICAgc2F2ZV9sZW4gKyA5LCAgICAgICAgICAgICAgIC8qIGxlbigiL19faW5pdF9fIikgKi8KLSAgICAgICAgICAgICAgICA4LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxlbigiX19pbml0X18iKSAqLwotICAgICAgICAgICAgICAgIHBuYW1lKSkgewotICAgICAgICAgICAgYnVmW3NhdmVfbGVuXSA9ICdcMCc7Ci0gICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgfQotICAgIH0KLSAgICBidWZbc2F2ZV9sZW5dID0gJ1wwJzsKLSAgICByZXR1cm4gMDsKLX0KLQotI2VuZGlmIC8qIEhBVkVfU1RBVCAqLwotCi0KLXN0YXRpYyBpbnQgaW5pdF9idWlsdGluKGNoYXIgKik7IC8qIEZvcndhcmQgKi8KLQotc3RhdGljIFB5T2JqZWN0KgotbG9hZF9idWlsdGluKGNoYXIgKm5hbWUsIGNoYXIgKnBhdGhuYW1lLCBpbnQgdHlwZSkKLXsKLSAgICBQeU9iamVjdCAqbSwgKm1vZHVsZXM7Ci0gICAgaW50IGVycjsKLQotICAgIGlmIChwYXRobmFtZSAhPSBOVUxMICYmIHBhdGhuYW1lWzBdICE9ICdcMCcpCi0gICAgICAgIG5hbWUgPSBwYXRobmFtZTsKLQotICAgIGlmICh0eXBlID09IENfQlVJTFRJTikKLSAgICAgICAgZXJyID0gaW5pdF9idWlsdGluKG5hbWUpOwotICAgIGVsc2UKLSAgICAgICAgZXJyID0gUHlJbXBvcnRfSW1wb3J0RnJvemVuTW9kdWxlKG5hbWUpOwotICAgIGlmIChlcnIgPCAwKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICBpZiAoZXJyID09IDApIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0ltcG9ydEVycm9yLAotICAgICAgICAgICAgICAgICJQdXJwb3J0ZWQgJXMgbW9kdWxlICUuMjAwcyBub3QgZm91bmQiLAotICAgICAgICAgICAgICAgIHR5cGUgPT0gQ19CVUlMVElOID8KLSAgICAgICAgICAgICAgICAiYnVpbHRpbiIgOiAiZnJvemVuIiwKLSAgICAgICAgICAgICAgICBuYW1lKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgbW9kdWxlcyA9IFB5SW1wb3J0X0dldE1vZHVsZURpY3QoKTsKLSAgICBtID0gUHlEaWN0X0dldEl0ZW1TdHJpbmcobW9kdWxlcywgbmFtZSk7Ci0gICAgaWYgKG0gPT0gTlVMTCkgewotICAgICAgICBQeUVycl9Gb3JtYXQoCi0gICAgICAgICAgICAgICAgUHlFeGNfSW1wb3J0RXJyb3IsCi0gICAgICAgICAgICAgICAgIiVzIG1vZHVsZSAlLjIwMHMgbm90IHByb3Blcmx5IGluaXRpYWxpemVkIiwKLSAgICAgICAgICAgICAgICB0eXBlID09IENfQlVJTFRJTiA/Ci0gICAgICAgICAgICAgICAgImJ1aWx0aW4iIDogImZyb3plbiIsCi0gICAgICAgICAgICAgICAgbmFtZSk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBQeV9JTkNSRUYobSk7Ci0gICAgcmV0dXJuIG07Ci19Ci0KLS8qIExvYWQgYW4gZXh0ZXJuYWwgbW9kdWxlIHVzaW5nIHRoZSBkZWZhdWx0IHNlYXJjaCBwYXRoIGFuZCByZXR1cm4KLSAgIGl0cyBtb2R1bGUgb2JqZWN0IFdJVEggSU5DUkVNRU5URUQgUkVGRVJFTkNFIENPVU5UICovCi0KLXN0YXRpYyBQeU9iamVjdCAqCi1sb2FkX21vZHVsZShjaGFyICpuYW1lLCBGSUxFICpmcCwgY2hhciAqcGF0aG5hbWUsIGludCB0eXBlLCBQeU9iamVjdCAqbG9hZGVyKQotewotICAgIFB5T2JqZWN0ICptOwotCi0gICAgLyogRmlyc3QgY2hlY2sgdGhhdCB0aGVyZSdzIGFuIG9wZW4gZmlsZSAoaWYgd2UgbmVlZCBvbmUpICAqLwotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgUFlfU09VUkNFOgotICAgIGNhc2UgUFlfQ09NUElMRUQ6Ci0gICAgICAgIGlmIChmcCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICJmaWxlIG9iamVjdCByZXF1aXJlZCBmb3IgaW1wb3J0ICh0eXBlIGNvZGUgJWQpIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgc3dpdGNoICh0eXBlKSB7Ci0KLSAgICBjYXNlIFBZX1NPVVJDRToKLSAgICAgICAgbSA9IGxvYWRfc291cmNlX21vZHVsZShuYW1lLCBwYXRobmFtZSwgZnApOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgUFlfQ09NUElMRUQ6Ci0gICAgICAgIG0gPSBsb2FkX2NvbXBpbGVkX21vZHVsZShuYW1lLCBwYXRobmFtZSwgZnApOwotICAgICAgICBicmVhazsKLQotI2lmZGVmIEhBVkVfRFlOQU1JQ19MT0FESU5HCi0gICAgY2FzZSBDX0VYVEVOU0lPTjoKLSAgICAgICAgbSA9IF9QeUltcG9ydF9Mb2FkRHluYW1pY01vZHVsZShuYW1lLCBwYXRobmFtZSwgZnApOwotICAgICAgICBicmVhazsKLSNlbmRpZgotCi0gICAgY2FzZSBQS0dfRElSRUNUT1JZOgotICAgICAgICBtID0gbG9hZF9wYWNrYWdlKG5hbWUsIHBhdGhuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIENfQlVJTFRJTjoKLSAgICBjYXNlIFBZX0ZST1pFTjoKLSAgICAgICAgbSA9IGxvYWRfYnVpbHRpbihuYW1lLCBwYXRobmFtZSwgdHlwZSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBJTVBfSE9PSzogewotICAgICAgICBpZiAobG9hZGVyID09IE5VTEwpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbXBvcnRFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IGhvb2sgd2l0aG91dCBsb2FkZXIiKTsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9Ci0gICAgICAgIG0gPSBQeU9iamVjdF9DYWxsTWV0aG9kKGxvYWRlciwgImxvYWRfbW9kdWxlIiwgInMiLCBuYW1lKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgZGVmYXVsdDoKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0ltcG9ydEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgIkRvbid0IGtub3cgaG93IHRvIGltcG9ydCAlLjIwMHMgKHR5cGUgY29kZSAlZCkiLAotICAgICAgICAgICAgICAgICAgICAgIG5hbWUsIHR5cGUpOwotICAgICAgICBtID0gTlVMTDsKLQotICAgIH0KLQotICAgIHJldHVybiBtOwotfQotCitzdGF0aWMgaW50IGluaXRfYnVpbHRpbihQeU9iamVjdCAqKTsgLyogRm9yd2FyZCAqLwogCiAvKiBJbml0aWFsaXplIGEgYnVpbHQtaW4gbW9kdWxlLgogICAgUmV0dXJuIDEgZm9yIHN1Y2Nlc3MsIDAgaWYgdGhlIG1vZHVsZSBpcyBub3QgZm91bmQsIGFuZCAtMSB3aXRoCiAgICBhbiBleGNlcHRpb24gc2V0IGlmIHRoZSBpbml0aWFsaXphdGlvbiBmYWlsZWQuICovCiAKIHN0YXRpYyBpbnQKLWluaXRfYnVpbHRpbihjaGFyICpuYW1lKQoraW5pdF9idWlsdGluKFB5T2JqZWN0ICpuYW1lKQogewogICAgIHN0cnVjdCBfaW5pdHRhYiAqcDsKIAotICAgIGlmIChfUHlJbXBvcnRfRmluZEJ1aWx0aW4obmFtZSkgIT0gTlVMTCkKKyAgICBpZiAoX1B5SW1wb3J0X0ZpbmRFeHRlbnNpb25PYmplY3QobmFtZSwgbmFtZSkgIT0gTlVMTCkKICAgICAgICAgcmV0dXJuIDE7CiAKICAgICBmb3IgKHAgPSBQeUltcG9ydF9Jbml0dGFiOyBwLT5uYW1lICE9IE5VTEw7IHArKykgewogICAgICAgICBQeU9iamVjdCAqbW9kOwogICAgICAgICBQeU1vZHVsZURlZiAqZGVmOwotICAgICAgICBpZiAoc3RyY21wKG5hbWUsIHAtPm5hbWUpID09IDApIHsKKyAgICAgICAgaWYgKFB5VW5pY29kZV9Db21wYXJlV2l0aEFTQ0lJU3RyaW5nKG5hbWUsIHAtPm5hbWUpID09IDApIHsKICAgICAgICAgICAgIGlmIChwLT5pbml0ZnVuYyA9PSBOVUxMKSB7CiAgICAgICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0ltcG9ydEVycm9yLAotICAgICAgICAgICAgICAgICAgICAiQ2Fubm90IHJlLWluaXQgaW50ZXJuYWwgbW9kdWxlICUuMjAwcyIsCisgICAgICAgICAgICAgICAgICAgICJDYW5ub3QgcmUtaW5pdCBpbnRlcm5hbCBtb2R1bGUgJVIiLAogICAgICAgICAgICAgICAgICAgICBuYW1lKTsKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgICAgICAgICAgUHlTeXNfV3JpdGVTdGRlcnIoImltcG9ydCAlcyAjIGJ1aWx0aW5cbiIsIG5hbWUpOwogICAgICAgICAgICAgbW9kID0gKCpwLT5pbml0ZnVuYykoKTsKICAgICAgICAgICAgIGlmIChtb2QgPT0gMCkKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICAvKiBSZW1lbWJlciBwb2ludGVyIHRvIG1vZHVsZSBpbml0IGZ1bmN0aW9uLiAqLwogICAgICAgICAgICAgZGVmID0gUHlNb2R1bGVfR2V0RGVmKG1vZCk7CiAgICAgICAgICAgICBkZWYtPm1fYmFzZS5tX2luaXQgPSBwLT5pbml0ZnVuYzsKLSAgICAgICAgICAgIGlmIChfUHlJbXBvcnRfRml4dXBCdWlsdGluKG1vZCwgbmFtZSkgPCAwKQorICAgICAgICAgICAgaWYgKF9QeUltcG9ydF9GaXh1cEV4dGVuc2lvbk9iamVjdChtb2QsIG5hbWUsIG5hbWUpIDwgMCkKICAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgICAvKiBGaXh1cEV4dGVuc2lvbiBoYXMgcHV0IHRoZSBtb2R1bGUgaW50byBzeXMubW9kdWxlcywKICAgICAgICAgICAgICAgIHNvIHdlIGNhbiByZWxlYXNlIG91ciBvd24gcmVmZXJlbmNlLiAqLwpAQCAtMjIzNSwzNyArMTE5NywzNyBAQAogLyogRnJvemVuIG1vZHVsZXMgKi8KIAogc3RhdGljIHN0cnVjdCBfZnJvemVuICoKLWZpbmRfZnJvemVuKGNoYXIgKm5hbWUpCitmaW5kX2Zyb3plbihQeU9iamVjdCAqbmFtZSkKIHsKICAgICBzdHJ1Y3QgX2Zyb3plbiAqcDsKIAotICAgIGlmICghbmFtZSkKKyAgICBpZiAobmFtZSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIAogICAgIGZvciAocCA9IFB5SW1wb3J0X0Zyb3plbk1vZHVsZXM7IDsgcCsrKSB7CiAgICAgICAgIGlmIChwLT5uYW1lID09IE5VTEwpCiAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgaWYgKHN0cmNtcChwLT5uYW1lLCBuYW1lKSA9PSAwKQorICAgICAgICBpZiAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcobmFtZSwgcC0+bmFtZSkgPT0gMCkKICAgICAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICByZXR1cm4gcDsKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLWdldF9mcm96ZW5fb2JqZWN0KGNoYXIgKm5hbWUpCitnZXRfZnJvemVuX29iamVjdChQeU9iamVjdCAqbmFtZSkKIHsKICAgICBzdHJ1Y3QgX2Zyb3plbiAqcCA9IGZpbmRfZnJvemVuKG5hbWUpOwogICAgIGludCBzaXplOwogCiAgICAgaWYgKHAgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSW1wb3J0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAiTm8gc3VjaCBmcm96ZW4gb2JqZWN0IG5hbWVkICUuMjAwcyIsCisgICAgICAgICAgICAgICAgICAgICAiTm8gc3VjaCBmcm96ZW4gb2JqZWN0IG5hbWVkICVSIiwKICAgICAgICAgICAgICAgICAgICAgIG5hbWUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgaWYgKHAtPmNvZGUgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSW1wb3J0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAiRXhjbHVkZWQgZnJvemVuIG9iamVjdCBuYW1lZCAlLjIwMHMiLAorICAgICAgICAgICAgICAgICAgICAgIkV4Y2x1ZGVkIGZyb3plbiBvYmplY3QgbmFtZWQgJVIiLAogICAgICAgICAgICAgICAgICAgICAgbmFtZSk7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KQEAgLTIyNzYsMTQgKzEyMzgsMTQgQEAKIH0KIAogc3RhdGljIFB5T2JqZWN0ICoKLWlzX2Zyb3plbl9wYWNrYWdlKGNoYXIgKm5hbWUpCitpc19mcm96ZW5fcGFja2FnZShQeU9iamVjdCAqbmFtZSkKIHsKICAgICBzdHJ1Y3QgX2Zyb3plbiAqcCA9IGZpbmRfZnJvemVuKG5hbWUpOwogICAgIGludCBzaXplOwogCiAgICAgaWYgKHAgPT0gTlVMTCkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfSW1wb3J0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAiTm8gc3VjaCBmcm96ZW4gb2JqZWN0IG5hbWVkICUuMjAwcyIsCisgICAgICAgICAgICAgICAgICAgICAiTm8gc3VjaCBmcm96ZW4gb2JqZWN0IG5hbWVkICVSIiwKICAgICAgICAgICAgICAgICAgICAgIG5hbWUpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CkBAIC0yMzAzLDE5ICsxMjY1LDIwIEBACiAgICBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCBmcm9tIGZyb3plbm1haW4uYyAqLwogCiBpbnQKLVB5SW1wb3J0X0ltcG9ydEZyb3plbk1vZHVsZShjaGFyICpuYW1lKQorUHlJbXBvcnRfSW1wb3J0RnJvemVuTW9kdWxlT2JqZWN0KFB5T2JqZWN0ICpuYW1lKQogewotICAgIHN0cnVjdCBfZnJvemVuICpwID0gZmluZF9mcm96ZW4obmFtZSk7Ci0gICAgUHlPYmplY3QgKmNvOwotICAgIFB5T2JqZWN0ICptOworICAgIHN0cnVjdCBfZnJvemVuICpwOworICAgIFB5T2JqZWN0ICpjbywgKm0sICpwYXRoOwogICAgIGludCBpc3BhY2thZ2U7CiAgICAgaW50IHNpemU7CiAKKyAgICBwID0gZmluZF9mcm96ZW4obmFtZSk7CisKICAgICBpZiAocCA9PSBOVUxMKQogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAocC0+Y29kZSA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19JbXBvcnRFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICJFeGNsdWRlZCBmcm96ZW4gb2JqZWN0IG5hbWVkICUuMjAwcyIsCisgICAgICAgICAgICAgICAgICAgICAiRXhjbHVkZWQgZnJvemVuIG9iamVjdCBuYW1lZCAlUiIsCiAgICAgICAgICAgICAgICAgICAgICBuYW1lKTsKICAgICAgICAgcmV0dXJuIC0xOwogICAgIH0KQEAgLTIzMjMsNDEgKzEyODYsMzkgQEAKICAgICBpc3BhY2thZ2UgPSAoc2l6ZSA8IDApOwogICAgIGlmIChpc3BhY2thZ2UpCiAgICAgICAgIHNpemUgPSAtc2l6ZTsKLSAgICBpZiAoUHlfVmVyYm9zZUZsYWcpCi0gICAgICAgIFB5U3lzX1dyaXRlU3RkZXJyKCJpbXBvcnQgJXMgIyBmcm96ZW4lc1xuIiwKLSAgICAgICAgICAgIG5hbWUsIGlzcGFja2FnZSA/ICIgcGFja2FnZSIgOiAiIik7CiAgICAgY28gPSBQeU1hcnNoYWxfUmVhZE9iamVjdEZyb21TdHJpbmcoKGNoYXIgKilwLT5jb2RlLCBzaXplKTsKICAgICBpZiAoY28gPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIC0xOwogICAgIGlmICghUHlDb2RlX0NoZWNrKGNvKSkgewogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgImZyb3plbiBvYmplY3QgJS4yMDBzIGlzIG5vdCBhIGNvZGUgb2JqZWN0IiwKKyAgICAgICAgICAgICAgICAgICAgICJmcm96ZW4gb2JqZWN0ICVSIGlzIG5vdCBhIGNvZGUgb2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICAgIG5hbWUpOwogICAgICAgICBnb3RvIGVycl9yZXR1cm47CiAgICAgfQogICAgIGlmIChpc3BhY2thZ2UpIHsKICAgICAgICAgLyogU2V0IF9fcGF0aF9fIHRvIHRoZSBwYWNrYWdlIG5hbWUgKi8KLSAgICAgICAgUHlPYmplY3QgKmQsICpzLCAqbDsKKyAgICAgICAgUHlPYmplY3QgKmQsICpsOwogICAgICAgICBpbnQgZXJyOwotICAgICAgICBtID0gUHlJbXBvcnRfQWRkTW9kdWxlKG5hbWUpOworICAgICAgICBtID0gUHlJbXBvcnRfQWRkTW9kdWxlT2JqZWN0KG5hbWUpOwogICAgICAgICBpZiAobSA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBlcnJfcmV0dXJuOwogICAgICAgICBkID0gUHlNb2R1bGVfR2V0RGljdChtKTsKLSAgICAgICAgcyA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKG5hbWUpOwotICAgICAgICBpZiAocyA9PSBOVUxMKQotICAgICAgICAgICAgZ290byBlcnJfcmV0dXJuOwogICAgICAgICBsID0gUHlMaXN0X05ldygxKTsKICAgICAgICAgaWYgKGwgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlfREVDUkVGKHMpOwogICAgICAgICAgICAgZ290byBlcnJfcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIFB5TGlzdF9TRVRfSVRFTShsLCAwLCBzKTsKKyAgICAgICAgUHlfSU5DUkVGKG5hbWUpOworICAgICAgICBQeUxpc3RfU0VUX0lURU0obCwgMCwgbmFtZSk7CiAgICAgICAgIGVyciA9IFB5RGljdF9TZXRJdGVtU3RyaW5nKGQsICJfX3BhdGhfXyIsIGwpOwogICAgICAgICBQeV9ERUNSRUYobCk7CiAgICAgICAgIGlmIChlcnIgIT0gMCkKICAgICAgICAgICAgIGdvdG8gZXJyX3JldHVybjsKICAgICB9Ci0gICAgbSA9IFB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlRXgobmFtZSwgY28sICI8ZnJvemVuPiIpOworICAgIHBhdGggPSBQeVVuaWNvZGVfRnJvbVN0cmluZygiPGZyb3plbj4iKTsKKyAgICBpZiAocGF0aCA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycl9yZXR1cm47CisgICAgbSA9IFB5SW1wb3J0X0V4ZWNDb2RlTW9kdWxlT2JqZWN0KG5hbWUsIGNvLCBwYXRoLCBOVUxMKTsKKyAgICBQeV9ERUNSRUYocGF0aCk7CiAgICAgaWYgKG0gPT0gTlVMTCkKICAgICAgICAgZ290byBlcnJfcmV0dXJuOwogICAgIFB5X0RFQ1JFRihjbyk7CkBAIC0yMzY4LDYgKzEzMjksMTkgQEAKICAgICByZXR1cm4gLTE7CiB9CiAKK2ludAorUHlJbXBvcnRfSW1wb3J0RnJvemVuTW9kdWxlKGNoYXIgKm5hbWUpCit7CisgICAgUHlPYmplY3QgKm5hbWVvYmo7CisgICAgaW50IHJldDsKKyAgICBuYW1lb2JqID0gUHlVbmljb2RlX0ludGVybkZyb21TdHJpbmcobmFtZSk7CisgICAgaWYgKG5hbWVvYmogPT0gTlVMTCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHJldCA9IFB5SW1wb3J0X0ltcG9ydEZyb3plbk1vZHVsZU9iamVjdChuYW1lb2JqKTsKKyAgICBQeV9ERUNSRUYobmFtZW9iaik7CisgICAgcmV0dXJuIHJldDsKK30KKwogCiAvKiBJbXBvcnQgYSBtb2R1bGUsIGVpdGhlciBidWlsdC1pbiwgZnJvemVuLCBvciBleHRlcm5hbCwgYW5kIHJldHVybgogICAgaXRzIG1vZHVsZSBvYmplY3QgV0lUSCBJTkNSRU1FTlRFRCBSRUZFUkVOQ0UgQ09VTlQgKi8KQEAgLTIzOTgsNTc5ICsxMzcyLDQwOCBAQAogUHlPYmplY3QgKgogUHlJbXBvcnRfSW1wb3J0TW9kdWxlTm9CbG9jayhjb25zdCBjaGFyICpuYW1lKQogewotICAgIFB5T2JqZWN0ICpyZXN1bHQ7Ci0gICAgUHlPYmplY3QgKm1vZHVsZXM7Ci0jaWZkZWYgV0lUSF9USFJFQUQKLSAgICBsb25nIG1lOwotI2VuZGlmCi0KLSAgICAvKiBUcnkgdG8gZ2V0IHRoZSBtb2R1bGUgZnJvbSBzeXMubW9kdWxlc1tuYW1lXSAqLwotICAgIG1vZHVsZXMgPSBQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCk7Ci0gICAgaWYgKG1vZHVsZXMgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICByZXN1bHQgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzLCBuYW1lKTsKLSAgICBpZiAocmVzdWx0ICE9IE5VTEwpIHsKLSAgICAgICAgUHlfSU5DUkVGKHJlc3VsdCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICBQeUVycl9DbGVhcigpOwotICAgIH0KLSNpZmRlZiBXSVRIX1RIUkVBRAotICAgIC8qIGNoZWNrIHRoZSBpbXBvcnQgbG9jawotICAgICAqIG1lIG1pZ2h0IGJlIC0xIGJ1dCBJIGlnbm9yZSB0aGUgZXJyb3IgaGVyZSwgdGhlIGxvY2sgZnVuY3Rpb24KLSAgICAgKiB0YWtlcyBjYXJlIG9mIHRoZSBwcm9ibGVtICovCi0gICAgbWUgPSBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KCk7Ci0gICAgaWYgKGltcG9ydF9sb2NrX3RocmVhZCA9PSAtMSB8fCBpbXBvcnRfbG9ja190aHJlYWQgPT0gbWUpIHsKLSAgICAgICAgLyogbm8gdGhyZWFkIG9yIG1lIGlzIGhvbGRpbmcgdGhlIGxvY2sgKi8KLSAgICAgICAgcmV0dXJuIFB5SW1wb3J0X0ltcG9ydE1vZHVsZShuYW1lKTsKLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19JbXBvcnRFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICJGYWlsZWQgdG8gaW1wb3J0ICUuMjAwcyBiZWNhdXNlIHRoZSBpbXBvcnQgbG9jayIKLSAgICAgICAgICAgICAgICAgICAgICJpcyBoZWxkIGJ5IGFub3RoZXIgdGhyZWFkLiIsCi0gICAgICAgICAgICAgICAgICAgICBuYW1lKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotI2Vsc2UKICAgICByZXR1cm4gUHlJbXBvcnRfSW1wb3J0TW9kdWxlKG5hbWUpOwotI2VuZGlmCiB9CiAKLS8qIEZvcndhcmQgZGVjbGFyYXRpb25zIGZvciBoZWxwZXIgcm91dGluZXMgKi8KLXN0YXRpYyBQeU9iamVjdCAqZ2V0X3BhcmVudChQeU9iamVjdCAqZ2xvYmFscywgY2hhciAqYnVmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgKnBfYnVmbGVuLCBpbnQgbGV2ZWwpOwotc3RhdGljIFB5T2JqZWN0ICpsb2FkX25leHQoUHlPYmplY3QgKm1vZCwgUHlPYmplY3QgKmFsdG1vZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipwX25hbWUsIGNoYXIgKmJ1ZiwgUHlfc3NpemVfdCAqcF9idWZsZW4pOwotc3RhdGljIGludCBtYXJrX21pc3MoY2hhciAqbmFtZSk7Ci1zdGF0aWMgaW50IGVuc3VyZV9mcm9tbGlzdChQeU9iamVjdCAqbW9kLCBQeU9iamVjdCAqZnJvbWxpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICpidWYsIFB5X3NzaXplX3QgYnVmbGVuLCBpbnQgcmVjdXJzaXZlKTsKLXN0YXRpYyBQeU9iamVjdCAqIGltcG9ydF9zdWJtb2R1bGUoUHlPYmplY3QgKm1vZCwgY2hhciAqbmFtZSwgY2hhciAqZnVsbG5hbWUpOwogCi0vKiBUaGUgTWFnbnVtIE9wdXMgb2YgZG90dGVkLW5hbWUgaW1wb3J0IDotKSAqLwotCi1zdGF0aWMgUHlPYmplY3QgKgotaW1wb3J0X21vZHVsZV9sZXZlbChjaGFyICpuYW1lLCBQeU9iamVjdCAqZ2xvYmFscywgUHlPYmplY3QgKmxvY2FscywKLSAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmZyb21saXN0LCBpbnQgbGV2ZWwpCisvKiBSZW1vdmUgaW1wb3J0bGliIGZyYW1lcyBmcm9tIHRoZSB0cmFjZWJhY2ssCisgKiBleGNlcHQgaW4gVmVyYm9zZSBtb2RlLiAqLworc3RhdGljIHZvaWQKK3JlbW92ZV9pbXBvcnRsaWJfZnJhbWVzKHZvaWQpCiB7Ci0gICAgY2hhciAqYnVmOwotICAgIFB5X3NzaXplX3QgYnVmbGVuID0gMDsKLSAgICBQeU9iamVjdCAqcGFyZW50LCAqaGVhZCwgKm5leHQsICp0YWlsOworICAgIGNvbnN0IGNoYXIgKmltcG9ydGxpYl9maWxlbmFtZSA9ICI8ZnJvemVuIGltcG9ydGxpYi5fYm9vdHN0cmFwPiI7CisgICAgY29uc3QgY2hhciAqZXhlY19mdW5jbmFtZSA9ICJfZXhlY19tb2R1bGUiOworICAgIGludCBhbHdheXNfdHJpbSA9IDA7CisgICAgaW50IGluX2ltcG9ydGxpYjsKKyAgICBQeU9iamVjdCAqZXhjZXB0aW9uLCAqdmFsdWUsICpiYXNlX3RiLCAqdGI7CisgICAgUHlPYmplY3QgKipwcmV2X2xpbmssICoqb3V0ZXJfbGluazsKIAotICAgIGlmIChzdHJjaHIobmFtZSwgJy8nKSAhPSBOVUxMCi0jaWZkZWYgTVNfV0lORE9XUwotICAgICAgICB8fCBzdHJjaHIobmFtZSwgJ1xcJykgIT0gTlVMTAotI2VuZGlmCi0gICAgICAgICkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSW1wb3J0RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAiSW1wb3J0IGJ5IGZpbGVuYW1lIGlzIG5vdCBzdXBwb3J0ZWQuIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KKyAgICAvKiBTeW5vcHNpczogaWYgaXQncyBhbiBJbXBvcnRFcnJvciwgd2UgdHJpbSBhbGwgaW1wb3J0bGliIGNodW5rcworICAgICAgIGZyb20gdGhlIHRyYWNlYmFjay4gIE90aGVyd2lzZSwgd2UgdHJpbSBvbmx5IHRob3NlIGNodW5rcyB3aGljaAorICAgICAgIGVuZCB3aXRoIGEgY2FsbCB0byAiX2V4ZWNfbW9kdWxlIi4gKi8KIAotICAgIGJ1ZiA9IFB5TWVtX01BTExPQyhNQVhQQVRITEVOKzEpOwotICAgIGlmIChidWYgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKLSAgICB9Ci0gICAgcGFyZW50ID0gZ2V0X3BhcmVudChnbG9iYWxzLCBidWYsICZidWZsZW4sIGxldmVsKTsKLSAgICBpZiAocGFyZW50ID09IE5VTEwpCi0gICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICBQeUVycl9GZXRjaCgmZXhjZXB0aW9uLCAmdmFsdWUsICZiYXNlX3RiKTsKKyAgICBpZiAoIWV4Y2VwdGlvbiB8fCBQeV9WZXJib3NlRmxhZykKKyAgICAgICAgZ290byBkb25lOworICAgIGlmIChQeVR5cGVfSXNTdWJ0eXBlKChQeVR5cGVPYmplY3QgKikgZXhjZXB0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgIChQeVR5cGVPYmplY3QgKikgUHlFeGNfSW1wb3J0RXJyb3IpKQorICAgICAgICBhbHdheXNfdHJpbSA9IDE7CiAKLSAgICBoZWFkID0gbG9hZF9uZXh0KHBhcmVudCwgbGV2ZWwgPCAwID8gUHlfTm9uZSA6IHBhcmVudCwgJm5hbWUsIGJ1ZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICZidWZsZW4pOwotICAgIGlmIChoZWFkID09IE5VTEwpCi0gICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICBwcmV2X2xpbmsgPSAmYmFzZV90YjsKKyAgICB0YiA9IGJhc2VfdGI7CisgICAgaW5faW1wb3J0bGliID0gMDsKKyAgICB3aGlsZSAodGIgIT0gTlVMTCkgeworICAgICAgICBQeVRyYWNlYmFja09iamVjdCAqdHJhY2ViYWNrID0gKFB5VHJhY2ViYWNrT2JqZWN0ICopdGI7CisgICAgICAgIFB5T2JqZWN0ICpuZXh0ID0gKFB5T2JqZWN0ICopIHRyYWNlYmFjay0+dGJfbmV4dDsKKyAgICAgICAgUHlGcmFtZU9iamVjdCAqZnJhbWUgPSB0cmFjZWJhY2stPnRiX2ZyYW1lOworICAgICAgICBQeUNvZGVPYmplY3QgKmNvZGUgPSBmcmFtZS0+Zl9jb2RlOworICAgICAgICBpbnQgbm93X2luX2ltcG9ydGxpYjsKIAotICAgIHRhaWwgPSBoZWFkOwotICAgIFB5X0lOQ1JFRih0YWlsKTsKLSAgICB3aGlsZSAobmFtZSkgewotICAgICAgICBuZXh0ID0gbG9hZF9uZXh0KHRhaWwsIHRhaWwsICZuYW1lLCBidWYsICZidWZsZW4pOwotICAgICAgICBQeV9ERUNSRUYodGFpbCk7Ci0gICAgICAgIGlmIChuZXh0ID09IE5VTEwpIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihoZWFkKTsKLSAgICAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgICAgYXNzZXJ0KFB5VHJhY2VCYWNrX0NoZWNrKHRiKSk7CisgICAgICAgIG5vd19pbl9pbXBvcnRsaWIgPSAoUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUtPmNvX2ZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbXBvcnRsaWJfZmlsZW5hbWUpID09IDApOworICAgICAgICBpZiAobm93X2luX2ltcG9ydGxpYiAmJiAhaW5faW1wb3J0bGliKSB7CisgICAgICAgICAgICAvKiBUaGlzIGlzIHRoZSBsaW5rIHRvIHRoaXMgY2h1bmsgb2YgaW1wb3J0bGliIHRyYWNlYmFja3MgKi8KKyAgICAgICAgICAgIG91dGVyX2xpbmsgPSBwcmV2X2xpbms7CiAgICAgICAgIH0KLSAgICAgICAgdGFpbCA9IG5leHQ7CisgICAgICAgIGluX2ltcG9ydGxpYiA9IG5vd19pbl9pbXBvcnRsaWI7CisKKyAgICAgICAgaWYgKGluX2ltcG9ydGxpYiAmJgorICAgICAgICAgICAgKGFsd2F5c190cmltIHx8CisgICAgICAgICAgICAgUHlVbmljb2RlX0NvbXBhcmVXaXRoQVNDSUlTdHJpbmcoY29kZS0+Y29fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjX2Z1bmNuYW1lKSA9PSAwKSkgeworICAgICAgICAgICAgUHlPYmplY3QgKnRtcCA9ICpvdXRlcl9saW5rOworICAgICAgICAgICAgKm91dGVyX2xpbmsgPSBuZXh0OworICAgICAgICAgICAgUHlfWElOQ1JFRihuZXh0KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRih0bXApOworICAgICAgICAgICAgcHJldl9saW5rID0gb3V0ZXJfbGluazsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHByZXZfbGluayA9IChQeU9iamVjdCAqKikgJnRyYWNlYmFjay0+dGJfbmV4dDsKKyAgICAgICAgfQorICAgICAgICB0YiA9IG5leHQ7CiAgICAgfQotICAgIGlmICh0YWlsID09IFB5X05vbmUpIHsKLSAgICAgICAgLyogSWYgdGFpbCBpcyBQeV9Ob25lLCBib3RoIGdldF9wYXJlbnQgYW5kIGxvYWRfbmV4dCBmb3VuZAotICAgICAgICAgICBhbiBlbXB0eSBtb2R1bGUgbmFtZTogc29tZW9uZSBjYWxsZWQgX19pbXBvcnRfXygiIikgb3IKLSAgICAgICAgICAgZG9jdG9yZWQgZmF1bHR5IGJ5dGVjb2RlICovCi0gICAgICAgIFB5X0RFQ1JFRih0YWlsKTsKLSAgICAgICAgUHlfREVDUkVGKGhlYWQpOwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJFbXB0eSBtb2R1bGUgbmFtZSIpOwotICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Citkb25lOgorICAgIFB5RXJyX1Jlc3RvcmUoZXhjZXB0aW9uLCB2YWx1ZSwgYmFzZV90Yik7Cit9CisKKworUHlPYmplY3QgKgorUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWxPYmplY3QoUHlPYmplY3QgKm5hbWUsIFB5T2JqZWN0ICpnaXZlbl9nbG9iYWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmxvY2FscywgUHlPYmplY3QgKmdpdmVuX2Zyb21saXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxldmVsKQoreworICAgIF9QeV9JREVOVElGSUVSKF9faW1wb3J0X18pOworICAgIF9QeV9JREVOVElGSUVSKF9faW5pdGlhbGl6aW5nX18pOworICAgIF9QeV9JREVOVElGSUVSKF9fcGFja2FnZV9fKTsKKyAgICBfUHlfSURFTlRJRklFUihfX3BhdGhfXyk7CisgICAgX1B5X0lERU5USUZJRVIoX19uYW1lX18pOworICAgIF9QeV9JREVOVElGSUVSKF9maW5kX2FuZF9sb2FkKTsKKyAgICBfUHlfSURFTlRJRklFUihfaGFuZGxlX2Zyb21saXN0KTsKKyAgICBfUHlfSURFTlRJRklFUihfbG9ja191bmxvY2tfbW9kdWxlKTsKKyAgICBfUHlfc3RhdGljX3N0cmluZyhzaW5nbGVfZG90LCAiLiIpOworICAgIFB5T2JqZWN0ICphYnNfbmFtZSA9IE5VTEw7CisgICAgUHlPYmplY3QgKmJ1aWx0aW5zX2ltcG9ydCA9IE5VTEw7CisgICAgUHlPYmplY3QgKmZpbmFsX21vZCA9IE5VTEw7CisgICAgUHlPYmplY3QgKm1vZCA9IE5VTEw7CisgICAgUHlPYmplY3QgKnBhY2thZ2UgPSBOVUxMOworICAgIFB5T2JqZWN0ICpnbG9iYWxzID0gTlVMTDsKKyAgICBQeU9iamVjdCAqZnJvbWxpc3QgPSBOVUxMOworICAgIFB5SW50ZXJwcmV0ZXJTdGF0ZSAqaW50ZXJwID0gUHlUaHJlYWRTdGF0ZV9HRVQoKS0+aW50ZXJwOworCisgICAgLyogTWFrZSBzdXJlIHRvIHVzZSBkZWZhdWx0IHZhbHVlcyBzbyBhcyB0byBub3QgaGF2ZQorICAgICAgIFB5T2JqZWN0X0NhbGxNZXRob2RPYmpBcmdzKCkgdHJ1bmNhdGUgdGhlIHBhcmFtZXRlciBsaXN0IGJlY2F1c2Ugb2YgYQorICAgICAgIE5VTEwgYXJndW1lbnQuICovCisgICAgaWYgKGdpdmVuX2dsb2JhbHMgPT0gTlVMTCkgeworICAgICAgICBnbG9iYWxzID0gUHlEaWN0X05ldygpOworICAgICAgICBpZiAoZ2xvYmFscyA9PSBOVUxMKSB7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAvKiBPbmx5IGhhdmUgdG8gY2FyZSB3aGF0IGdpdmVuX2dsb2JhbHMgaXMgaWYgaXQgd2lsbCBiZSB1c2VkCisgICAgICAgICAgIGZvcnRzb21ldGhpbmcuICovCisgICAgICAgIGlmIChsZXZlbCA+IDAgJiYgIVB5RGljdF9DaGVjayhnaXZlbl9nbG9iYWxzKSkgeworICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgImdsb2JhbHMgbXVzdCBiZSBhIGRpY3QiKTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICAgICAgZ2xvYmFscyA9IGdpdmVuX2dsb2JhbHM7CisgICAgICAgIFB5X0lOQ1JFRihnbG9iYWxzKTsKICAgICB9CiAKLSAgICBpZiAoZnJvbWxpc3QgIT0gTlVMTCkgewotICAgICAgICBpZiAoZnJvbWxpc3QgPT0gUHlfTm9uZSB8fCAhUHlPYmplY3RfSXNUcnVlKGZyb21saXN0KSkKLSAgICAgICAgICAgIGZyb21saXN0ID0gTlVMTDsKKyAgICBpZiAoZ2l2ZW5fZnJvbWxpc3QgPT0gTlVMTCkgeworICAgICAgICBmcm9tbGlzdCA9IFB5TGlzdF9OZXcoMCk7CisgICAgICAgIGlmIChmcm9tbGlzdCA9PSBOVUxMKSB7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgeworICAgICAgICBmcm9tbGlzdCA9IGdpdmVuX2Zyb21saXN0OworICAgICAgICBQeV9JTkNSRUYoZnJvbWxpc3QpOworICAgIH0KKyAgICBpZiAobmFtZSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiRW1wdHkgbW9kdWxlIG5hbWUiKTsKKyAgICAgICAgZ290byBlcnJvcjsKICAgICB9CiAKLSAgICBpZiAoZnJvbWxpc3QgPT0gTlVMTCkgewotICAgICAgICBQeV9ERUNSRUYodGFpbCk7Ci0gICAgICAgIFB5TWVtX0ZSRUUoYnVmKTsKLSAgICAgICAgcmV0dXJuIGhlYWQ7CisgICAgLyogVGhlIGJlbG93IGNvZGUgaXMgaW1wb3J0bGliLl9faW1wb3J0X18oKSAmIF9nY2RfaW1wb3J0KCksIHBvcnRlZCB0byBDCisgICAgICAgZm9yIGFkZGVkIHBlcmZvcm1hbmNlLiAqLworCisgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2sobmFtZSkpIHsKKyAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIm1vZHVsZSBuYW1lIG11c3QgYmUgYSBzdHJpbmciKTsKKyAgICAgICAgZ290byBlcnJvcjsKKyAgICB9CisgICAgZWxzZSBpZiAoUHlVbmljb2RlX1JFQURZKG5hbWUpIDwgMCkgeworICAgICAgICBnb3RvIGVycm9yOworICAgIH0KKyAgICBpZiAobGV2ZWwgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAibGV2ZWwgbXVzdCBiZSA+PSAwIik7CisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgfQorICAgIGVsc2UgaWYgKGxldmVsID4gMCkgeworICAgICAgICBwYWNrYWdlID0gX1B5RGljdF9HZXRJdGVtSWQoZ2xvYmFscywgJlB5SWRfX19wYWNrYWdlX18pOworICAgICAgICBpZiAocGFja2FnZSAhPSBOVUxMICYmIHBhY2thZ2UgIT0gUHlfTm9uZSkgeworICAgICAgICAgICAgUHlfSU5DUkVGKHBhY2thZ2UpOworICAgICAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2socGFja2FnZSkpIHsKKyAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLCAicGFja2FnZSBtdXN0IGJlIGEgc3RyaW5nIik7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHBhY2thZ2UgPSBfUHlEaWN0X0dldEl0ZW1JZChnbG9iYWxzLCAmUHlJZF9fX25hbWVfXyk7CisgICAgICAgICAgICBpZiAocGFja2FnZSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0tleUVycm9yLCAiJ19fbmFtZV9fJyBub3QgaW4gZ2xvYmFscyIpOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICghUHlVbmljb2RlX0NoZWNrKHBhY2thZ2UpKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1R5cGVFcnJvciwgIl9fbmFtZV9fIG11c3QgYmUgYSBzdHJpbmciKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFB5X0lOQ1JFRihwYWNrYWdlKTsKKworICAgICAgICAgICAgaWYgKF9QeURpY3RfR2V0SXRlbUlkKGdsb2JhbHMsICZQeUlkX19fcGF0aF9fKSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgUHlPYmplY3QgKnBhcnRpdGlvbiA9IE5VTEw7CisgICAgICAgICAgICAgICAgUHlPYmplY3QgKmJvcnJvd2VkX2RvdCA9IF9QeVVuaWNvZGVfRnJvbUlkKCZzaW5nbGVfZG90KTsKKyAgICAgICAgICAgICAgICBpZiAoYm9ycm93ZWRfZG90ID09IE5VTEwpIHsKKyAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcGFydGl0aW9uID0gUHlVbmljb2RlX1JQYXJ0aXRpb24ocGFja2FnZSwgYm9ycm93ZWRfZG90KTsKKyAgICAgICAgICAgICAgICBQeV9ERUNSRUYocGFja2FnZSk7CisgICAgICAgICAgICAgICAgaWYgKHBhcnRpdGlvbiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHBhY2thZ2UgPSBQeVR1cGxlX0dFVF9JVEVNKHBhcnRpdGlvbiwgMCk7CisgICAgICAgICAgICAgICAgUHlfSU5DUkVGKHBhY2thZ2UpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihwYXJ0aXRpb24pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgaWYgKFB5RGljdF9HZXRJdGVtKGludGVycC0+bW9kdWxlcywgcGFja2FnZSkgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1N5c3RlbUVycm9yLAorICAgICAgICAgICAgICAgICAgICAiUGFyZW50IG1vZHVsZSAlUiBub3QgbG9hZGVkLCBjYW5ub3QgcGVyZm9ybSByZWxhdGl2ZSAiCisgICAgICAgICAgICAgICAgICAgICJpbXBvcnQiLCBwYWNrYWdlKTsKKyAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7ICAvKiBsZXZlbCA9PSAwICovCisgICAgICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChuYW1lKSA9PSAwKSB7CisgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIkVtcHR5IG1vZHVsZSBuYW1lIik7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgICAgIHBhY2thZ2UgPSBQeV9Ob25lOworICAgICAgICBQeV9JTkNSRUYocGFja2FnZSk7CiAgICAgfQogCi0gICAgUHlfREVDUkVGKGhlYWQpOwotICAgIGlmICghZW5zdXJlX2Zyb21saXN0KHRhaWwsIGZyb21saXN0LCBidWYsIGJ1ZmxlbiwgMCkpIHsKLSAgICAgICAgUHlfREVDUkVGKHRhaWwpOwotICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAgaWYgKGxldmVsID4gMCkgeworICAgICAgICBQeV9zc2l6ZV90IGxhc3RfZG90ID0gUHlVbmljb2RlX0dFVF9MRU5HVEgocGFja2FnZSk7CisgICAgICAgIFB5T2JqZWN0ICpiYXNlID0gTlVMTDsKKyAgICAgICAgaW50IGxldmVsX3VwID0gMTsKKworICAgICAgICBmb3IgKGxldmVsX3VwID0gMTsgbGV2ZWxfdXAgPCBsZXZlbDsgbGV2ZWxfdXAgKz0gMSkgeworICAgICAgICAgICAgbGFzdF9kb3QgPSBQeVVuaWNvZGVfRmluZENoYXIocGFja2FnZSwgJy4nLCAwLCBsYXN0X2RvdCwgLTEpOworICAgICAgICAgICAgaWYgKGxhc3RfZG90ID09IC0yKSB7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKGxhc3RfZG90ID09IC0xKSB7CisgICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdHRlbXB0ZWQgcmVsYXRpdmUgaW1wb3J0IGJleW9uZCB0b3AtbGV2ZWwgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFja2FnZSIpOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgYmFzZSA9IFB5VW5pY29kZV9TdWJzdHJpbmcocGFja2FnZSwgMCwgbGFzdF9kb3QpOworICAgICAgICBpZiAoUHlVbmljb2RlX0dFVF9MRU5HVEgobmFtZSkgPiAwKSB7CisgICAgICAgICAgICBQeU9iamVjdCAqYm9ycm93ZWRfZG90LCAqc2VxID0gTlVMTDsKKworICAgICAgICAgICAgYm9ycm93ZWRfZG90ID0gX1B5VW5pY29kZV9Gcm9tSWQoJnNpbmdsZV9kb3QpOworICAgICAgICAgICAgc2VxID0gUHlUdXBsZV9QYWNrKDIsIGJhc2UsIG5hbWUpOworICAgICAgICAgICAgUHlfREVDUkVGKGJhc2UpOworICAgICAgICAgICAgaWYgKGJvcnJvd2VkX2RvdCA9PSBOVUxMIHx8IHNlcSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYWJzX25hbWUgPSBQeVVuaWNvZGVfSm9pbihib3Jyb3dlZF9kb3QsIHNlcSk7CisgICAgICAgICAgICBQeV9ERUNSRUYoc2VxKTsKKyAgICAgICAgICAgIGlmIChhYnNfbmFtZSA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFic19uYW1lID0gYmFzZTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgYWJzX25hbWUgPSBuYW1lOworICAgICAgICBQeV9JTkNSRUYoYWJzX25hbWUpOwogICAgIH0KIAotICAgIFB5TWVtX0ZSRUUoYnVmKTsKLSAgICByZXR1cm4gdGFpbDsKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgIF9QeUltcG9ydF9BY3F1aXJlTG9jaygpOworI2VuZGlmCisgICAvKiBGcm9tIHRoaXMgcG9pbnQgZm9yd2FyZCwgZ290byBlcnJvcl93aXRoX3VubG9jayEgKi8KKyAgICBpZiAoUHlEaWN0X0NoZWNrKGdsb2JhbHMpKSB7CisgICAgICAgIGJ1aWx0aW5zX2ltcG9ydCA9IF9QeURpY3RfR2V0SXRlbUlkKGdsb2JhbHMsICZQeUlkX19faW1wb3J0X18pOworICAgIH0KKyAgICBpZiAoYnVpbHRpbnNfaW1wb3J0ID09IE5VTEwpIHsKKyAgICAgICAgYnVpbHRpbnNfaW1wb3J0ID0gX1B5RGljdF9HZXRJdGVtSWQoaW50ZXJwLT5idWlsdGlucywgJlB5SWRfX19pbXBvcnRfXyk7CisgICAgICAgIGlmIChidWlsdGluc19pbXBvcnQgPT0gTlVMTCkgeworICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigiX19pbXBvcnRfXyBtaXNzaW5nIik7CisgICAgICAgIH0KKyAgICB9CisgICAgUHlfSU5DUkVGKGJ1aWx0aW5zX2ltcG9ydCk7CiAKLWVycm9yX2V4aXQ6Ci0gICAgUHlNZW1fRlJFRShidWYpOwotICAgIHJldHVybiBOVUxMOworICAgIG1vZCA9IFB5RGljdF9HZXRJdGVtKGludGVycC0+bW9kdWxlcywgYWJzX25hbWUpOworICAgIGlmIChtb2QgPT0gUHlfTm9uZSkgeworICAgICAgICBQeU9iamVjdCAqbXNnID0gUHlVbmljb2RlX0Zyb21Gb3JtYXQoImltcG9ydCBvZiAlUiBoYWx0ZWQ7ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJOb25lIGluIHN5cy5tb2R1bGVzIiwgYWJzX25hbWUpOworICAgICAgICBpZiAobXNnICE9IE5VTEwpIHsKKyAgICAgICAgICAgIFB5RXJyX1NldEltcG9ydEVycm9yKG1zZywgYWJzX25hbWUsIE5VTEwpOworICAgICAgICAgICAgUHlfREVDUkVGKG1zZyk7CisgICAgICAgIH0KKyAgICAgICAgbW9kID0gTlVMTDsKKyAgICAgICAgZ290byBlcnJvcl93aXRoX3VubG9jazsKKyAgICB9CisgICAgZWxzZSBpZiAobW9kICE9IE5VTEwpIHsKKyAgICAgICAgUHlPYmplY3QgKnZhbHVlOworICAgICAgICBpbnQgaW5pdGlhbGl6aW5nID0gMDsKKworICAgICAgICBQeV9JTkNSRUYobW9kKTsKKyAgICAgICAgLyogT25seSBjYWxsIF9ib290c3RyYXAuX2xvY2tfdW5sb2NrX21vZHVsZSgpIGlmIF9faW5pdGlhbGl6aW5nX18gaXMgdHJ1ZS4gKi8KKyAgICAgICAgdmFsdWUgPSBfUHlPYmplY3RfR2V0QXR0cklkKG1vZCwgJlB5SWRfX19pbml0aWFsaXppbmdfXyk7CisgICAgICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBpbml0aWFsaXppbmcgPSBQeU9iamVjdF9Jc1RydWUodmFsdWUpOworICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKKyAgICAgICAgICAgIGlmIChpbml0aWFsaXppbmcgPT0gLTEpCisgICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5pdGlhbGl6aW5nID4gMCkgeworICAgICAgICAgICAgLyogX2Jvb3RzdHJhcC5fbG9ja191bmxvY2tfbW9kdWxlKCkgcmVsZWFzZXMgdGhlIGltcG9ydCBsb2NrICovCisgICAgICAgICAgICB2YWx1ZSA9IF9QeU9iamVjdF9DYWxsTWV0aG9kT2JqSWRBcmdzKGludGVycC0+aW1wb3J0bGliLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmUHlJZF9fbG9ja191bmxvY2tfbW9kdWxlLCBhYnNfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgUHlfREVDUkVGKHZhbHVlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyNpZmRlZiBXSVRIX1RIUkVBRAorICAgICAgICAgICAgaWYgKF9QeUltcG9ydF9SZWxlYXNlTG9jaygpIDwgMCkgeworICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsICJub3QgaG9sZGluZyB0aGUgaW1wb3J0IGxvY2siKTsKKyAgICAgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICAgICAgfQorI2VuZGlmCisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgIC8qIF9ib290c3RyYXAuX2ZpbmRfYW5kX2xvYWQoKSByZWxlYXNlcyB0aGUgaW1wb3J0IGxvY2sgKi8KKyAgICAgICAgbW9kID0gX1B5T2JqZWN0X0NhbGxNZXRob2RPYmpJZEFyZ3MoaW50ZXJwLT5pbXBvcnRsaWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeUlkX19maW5kX2FuZF9sb2FkLCBhYnNfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbHRpbnNfaW1wb3J0LCBOVUxMKTsKKyAgICAgICAgaWYgKG1vZCA9PSBOVUxMKSB7CisgICAgICAgICAgICBnb3RvIGVycm9yOworICAgICAgICB9CisgICAgfQorICAgIC8qIEZyb20gbm93IG9uIHdlIGRvbid0IGhvbGQgdGhlIGltcG9ydCBsb2NrIGFueW1vcmUuICovCisKKyAgICBpZiAoUHlPYmplY3RfTm90KGZyb21saXN0KSkgeworICAgICAgICBpZiAobGV2ZWwgPT0gMCB8fCBQeVVuaWNvZGVfR0VUX0xFTkdUSChuYW1lKSA+IDApIHsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpmcm9udCA9IE5VTEw7CisgICAgICAgICAgICBQeU9iamVjdCAqcGFydGl0aW9uID0gTlVMTDsKKyAgICAgICAgICAgIFB5T2JqZWN0ICpib3Jyb3dlZF9kb3QgPSBfUHlVbmljb2RlX0Zyb21JZCgmc2luZ2xlX2RvdCk7CisKKyAgICAgICAgICAgIGlmIChib3Jyb3dlZF9kb3QgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHBhcnRpdGlvbiA9IFB5VW5pY29kZV9QYXJ0aXRpb24obmFtZSwgYm9ycm93ZWRfZG90KTsKKyAgICAgICAgICAgIGlmIChwYXJ0aXRpb24gPT0gTlVMTCkgeworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfR0VUX0xFTkdUSChQeVR1cGxlX0dFVF9JVEVNKHBhcnRpdGlvbiwgMSkpID09IDApIHsKKyAgICAgICAgICAgICAgICAvKiBObyBkb3QgaW4gbW9kdWxlIG5hbWUsIHNpbXBsZSBleGl0ICovCisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHBhcnRpdGlvbik7CisgICAgICAgICAgICAgICAgZmluYWxfbW9kID0gbW9kOworICAgICAgICAgICAgICAgIFB5X0lOQ1JFRihtb2QpOworICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZyb250ID0gUHlUdXBsZV9HRVRfSVRFTShwYXJ0aXRpb24sIDApOworICAgICAgICAgICAgUHlfSU5DUkVGKGZyb250KTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihwYXJ0aXRpb24pOworCisgICAgICAgICAgICBpZiAobGV2ZWwgPT0gMCkgeworICAgICAgICAgICAgICAgIGZpbmFsX21vZCA9IFB5T2JqZWN0X0NhbGxGdW5jdGlvbk9iakFyZ3MoYnVpbHRpbnNfaW1wb3J0LCBmcm9udCwgTlVMTCk7CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKGZyb250KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIFB5X3NzaXplX3QgY3V0X29mZiA9IFB5VW5pY29kZV9HRVRfTEVOR1RIKG5hbWUpIC0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfR0VUX0xFTkdUSChmcm9udCk7CisgICAgICAgICAgICAgICAgUHlfc3NpemVfdCBhYnNfbmFtZV9sZW4gPSBQeVVuaWNvZGVfR0VUX0xFTkdUSChhYnNfbmFtZSk7CisgICAgICAgICAgICAgICAgUHlPYmplY3QgKnRvX3JldHVybiA9IFB5VW5pY29kZV9TdWJzdHJpbmcoYWJzX25hbWUsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic19uYW1lX2xlbiAtIGN1dF9vZmYpOworICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihmcm9udCk7CisgICAgICAgICAgICAgICAgaWYgKHRvX3JldHVybiA9PSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZmluYWxfbW9kID0gUHlEaWN0X0dldEl0ZW0oaW50ZXJwLT5tb2R1bGVzLCB0b19yZXR1cm4pOworICAgICAgICAgICAgICAgIGlmIChmaW5hbF9tb2QgPT0gTlVMTCkgeworICAgICAgICAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfS2V5RXJyb3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJVIgbm90IGluIHN5cy5tb2R1bGVzIGFzIGV4cGVjdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvX3JldHVybik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBQeV9JTkNSRUYoZmluYWxfbW9kKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgUHlfREVDUkVGKHRvX3JldHVybik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmaW5hbF9tb2QgPSBtb2Q7CisgICAgICAgICAgICBQeV9JTkNSRUYobW9kKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgZmluYWxfbW9kID0gX1B5T2JqZWN0X0NhbGxNZXRob2RPYmpJZEFyZ3MoaW50ZXJwLT5pbXBvcnRsaWIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZQeUlkX19oYW5kbGVfZnJvbWxpc3QsIG1vZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbWxpc3QsIGJ1aWx0aW5zX2ltcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgfQorICAgIGdvdG8gZXJyb3I7CisKKyAgZXJyb3Jfd2l0aF91bmxvY2s6CisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBpZiAoX1B5SW1wb3J0X1JlbGVhc2VMb2NrKCkgPCAwKSB7CisgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19SdW50aW1lRXJyb3IsICJub3QgaG9sZGluZyB0aGUgaW1wb3J0IGxvY2siKTsKKyAgICB9CisjZW5kaWYKKyAgZXJyb3I6CisgICAgUHlfWERFQ1JFRihhYnNfbmFtZSk7CisgICAgUHlfWERFQ1JFRihidWlsdGluc19pbXBvcnQpOworICAgIFB5X1hERUNSRUYobW9kKTsKKyAgICBQeV9YREVDUkVGKHBhY2thZ2UpOworICAgIFB5X1hERUNSRUYoZ2xvYmFscyk7CisgICAgUHlfWERFQ1JFRihmcm9tbGlzdCk7CisgICAgaWYgKGZpbmFsX21vZCA9PSBOVUxMKQorICAgICAgICByZW1vdmVfaW1wb3J0bGliX2ZyYW1lcygpOworICAgIHJldHVybiBmaW5hbF9tb2Q7CiB9CiAKIFB5T2JqZWN0ICoKLVB5SW1wb3J0X0ltcG9ydE1vZHVsZUxldmVsKGNoYXIgKm5hbWUsIFB5T2JqZWN0ICpnbG9iYWxzLCBQeU9iamVjdCAqbG9jYWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgIFB5T2JqZWN0ICpmcm9tbGlzdCwgaW50IGxldmVsKQorUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWwoY29uc3QgY2hhciAqbmFtZSwgUHlPYmplY3QgKmdsb2JhbHMsIFB5T2JqZWN0ICpsb2NhbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqZnJvbWxpc3QsIGludCBsZXZlbCkKIHsKLSAgICBQeU9iamVjdCAqcmVzdWx0OwotICAgIF9QeUltcG9ydF9BY3F1aXJlTG9jaygpOwotICAgIHJlc3VsdCA9IGltcG9ydF9tb2R1bGVfbGV2ZWwobmFtZSwgZ2xvYmFscywgbG9jYWxzLCBmcm9tbGlzdCwgbGV2ZWwpOwotICAgIGlmIChfUHlJbXBvcnRfUmVsZWFzZUxvY2soKSA8IDApIHsKLSAgICAgICAgUHlfWERFQ1JFRihyZXN1bHQpOwotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfUnVudGltZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgIm5vdCBob2xkaW5nIHRoZSBpbXBvcnQgbG9jayIpOworICAgIFB5T2JqZWN0ICpuYW1lb2JqLCAqbW9kOworICAgIG5hbWVvYmogPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhuYW1lKTsKKyAgICBpZiAobmFtZW9iaiA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotLyogUmV0dXJuIHRoZSBwYWNrYWdlIHRoYXQgYW4gaW1wb3J0IGlzIGJlaW5nIHBlcmZvcm1lZCBpbi4gIElmIGdsb2JhbHMgY29tZXMKLSAgIGZyb20gdGhlIG1vZHVsZSBmb28uYmFyLmJhdCAobm90IGl0c2VsZiBhIHBhY2thZ2UpLCB0aGlzIHJldHVybnMgdGhlCi0gICBzeXMubW9kdWxlcyBlbnRyeSBmb3IgZm9vLmJhci4gIElmIGdsb2JhbHMgaXMgZnJvbSBhIHBhY2thZ2UncyBfX2luaXRfXy5weSwKLSAgIHRoZSBwYWNrYWdlJ3MgZW50cnkgaW4gc3lzLm1vZHVsZXMgaXMgcmV0dXJuZWQsIGFzIGEgYm9ycm93ZWQgcmVmZXJlbmNlLgotCi0gICBUaGUgKm5hbWUqIG9mIHRoZSByZXR1cm5lZCBwYWNrYWdlIGlzIHJldHVybmVkIGluIGJ1Ziwgd2l0aCB0aGUgbGVuZ3RoIG9mCi0gICB0aGUgbmFtZSBpbiAqcF9idWZsZW4uCi0KLSAgIElmIGdsb2JhbHMgZG9lc24ndCBjb21lIGZyb20gYSBwYWNrYWdlIG9yIGEgbW9kdWxlIGluIGEgcGFja2FnZSwgb3IgYQotICAgY29ycmVzcG9uZGluZyBlbnRyeSBpcyBub3QgZm91bmQgaW4gc3lzLm1vZHVsZXMsIFB5X05vbmUgaXMgcmV0dXJuZWQuCi0qLwotc3RhdGljIFB5T2JqZWN0ICoKLWdldF9wYXJlbnQoUHlPYmplY3QgKmdsb2JhbHMsIGNoYXIgKmJ1ZiwgUHlfc3NpemVfdCAqcF9idWZsZW4sIGludCBsZXZlbCkKLXsKLSAgICBzdGF0aWMgUHlPYmplY3QgKm5hbWVzdHIgPSBOVUxMOwotICAgIHN0YXRpYyBQeU9iamVjdCAqcGF0aHN0ciA9IE5VTEw7Ci0gICAgc3RhdGljIFB5T2JqZWN0ICpwa2dzdHIgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpwa2duYW1lLCAqbW9kbmFtZSwgKm1vZHBhdGgsICptb2R1bGVzLCAqcGFyZW50OwotICAgIGludCBvcmlnX2xldmVsID0gbGV2ZWw7Ci0KLSAgICBpZiAoZ2xvYmFscyA9PSBOVUxMIHx8ICFQeURpY3RfQ2hlY2soZ2xvYmFscykgfHwgIWxldmVsKQotICAgICAgICByZXR1cm4gUHlfTm9uZTsKLQotICAgIGlmIChuYW1lc3RyID09IE5VTEwpIHsKLSAgICAgICAgbmFtZXN0ciA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCJfX25hbWVfXyIpOwotICAgICAgICBpZiAobmFtZXN0ciA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGlmIChwYXRoc3RyID09IE5VTEwpIHsKLSAgICAgICAgcGF0aHN0ciA9IFB5VW5pY29kZV9JbnRlcm5Gcm9tU3RyaW5nKCJfX3BhdGhfXyIpOwotICAgICAgICBpZiAocGF0aHN0ciA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGlmIChwa2dzdHIgPT0gTlVMTCkgewotICAgICAgICBwa2dzdHIgPSBQeVVuaWNvZGVfSW50ZXJuRnJvbVN0cmluZygiX19wYWNrYWdlX18iKTsKLSAgICAgICAgaWYgKHBrZ3N0ciA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgKmJ1ZiA9ICdcMCc7Ci0gICAgKnBfYnVmbGVuID0gMDsKLSAgICBwa2duYW1lID0gUHlEaWN0X0dldEl0ZW0oZ2xvYmFscywgcGtnc3RyKTsKLQotICAgIGlmICgocGtnbmFtZSAhPSBOVUxMKSAmJiAocGtnbmFtZSAhPSBQeV9Ob25lKSkgewotICAgICAgICAvKiBfX3BhY2thZ2VfXyBpcyBzZXQsIHNvIHVzZSBpdCAqLwotICAgICAgICBjaGFyICpwa2duYW1lX3N0cjsKLSAgICAgICAgUHlfc3NpemVfdCBsZW47Ci0KLSAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2socGtnbmFtZSkpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJfX3BhY2thZ2VfXyBzZXQgdG8gbm9uLXN0cmluZyIpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgcGtnbmFtZV9zdHIgPSBfUHlVbmljb2RlX0FzU3RyaW5nQW5kU2l6ZShwa2duYW1lLCAmbGVuKTsKLSAgICAgICAgaWYgKGxlbiA9PSAwKSB7Ci0gICAgICAgICAgICBpZiAobGV2ZWwgPiAwKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICJBdHRlbXB0ZWQgcmVsYXRpdmUgaW1wb3J0IGluIG5vbi1wYWNrYWdlIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gUHlfTm9uZTsKLSAgICAgICAgfQotICAgICAgICBpZiAobGVuID4gTUFYUEFUSExFTikgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBhY2thZ2UgbmFtZSB0b28gbG9uZyIpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgc3RyY3B5KGJ1ZiwgcGtnbmFtZV9zdHIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8qIF9fcGFja2FnZV9fIG5vdCBzZXQsIHNvIGZpZ3VyZSBpdCBvdXQgYW5kIHNldCBpdCAqLwotICAgICAgICBtb2RuYW1lID0gUHlEaWN0X0dldEl0ZW0oZ2xvYmFscywgbmFtZXN0cik7Ci0gICAgICAgIGlmIChtb2RuYW1lID09IE5VTEwgfHwgIVB5VW5pY29kZV9DaGVjayhtb2RuYW1lKSkKLSAgICAgICAgICAgIHJldHVybiBQeV9Ob25lOwotCi0gICAgICAgIG1vZHBhdGggPSBQeURpY3RfR2V0SXRlbShnbG9iYWxzLCBwYXRoc3RyKTsKLSAgICAgICAgaWYgKG1vZHBhdGggIT0gTlVMTCkgewotICAgICAgICAgICAgLyogX19wYXRoX18gaXMgc2V0LCBzbyBtb2RuYW1lIGlzIGFscmVhZHkgdGhlIHBhY2thZ2UgbmFtZSAqLwotICAgICAgICAgICAgY2hhciAqbW9kbmFtZV9zdHI7Ci0gICAgICAgICAgICBQeV9zc2l6ZV90IGxlbjsKLSAgICAgICAgICAgIGludCBlcnJvcjsKLQotICAgICAgICAgICAgbW9kbmFtZV9zdHIgPSBfUHlVbmljb2RlX0FzU3RyaW5nQW5kU2l6ZShtb2RuYW1lLCAmbGVuKTsKLSAgICAgICAgICAgIGlmIChsZW4gPiBNQVhQQVRITEVOKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb2R1bGUgbmFtZSB0b28gbG9uZyIpOwotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RyY3B5KGJ1ZiwgbW9kbmFtZV9zdHIpOwotICAgICAgICAgICAgZXJyb3IgPSBQeURpY3RfU2V0SXRlbShnbG9iYWxzLCBwa2dzdHIsIG1vZG5hbWUpOwotICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3Qgc2V0IF9fcGFja2FnZV9fIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAvKiBOb3JtYWwgbW9kdWxlLCBzbyB3b3JrIG91dCB0aGUgcGFja2FnZSBuYW1lIGlmIGFueSAqLwotICAgICAgICAgICAgY2hhciAqc3RhcnQgPSBfUHlVbmljb2RlX0FzU3RyaW5nKG1vZG5hbWUpOwotICAgICAgICAgICAgY2hhciAqbGFzdGRvdCA9IHN0cnJjaHIoc3RhcnQsICcuJyk7Ci0gICAgICAgICAgICBzaXplX3QgbGVuOwotICAgICAgICAgICAgaW50IGVycm9yOwotICAgICAgICAgICAgaWYgKGxhc3Rkb3QgPT0gTlVMTCAmJiBsZXZlbCA+IDApIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgIkF0dGVtcHRlZCByZWxhdGl2ZSBpbXBvcnQgaW4gbm9uLXBhY2thZ2UiKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmIChsYXN0ZG90ID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBlcnJvciA9IFB5RGljdF9TZXRJdGVtKGdsb2JhbHMsIHBrZ3N0ciwgUHlfTm9uZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBzZXQgX19wYWNrYWdlX18iKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHJldHVybiBQeV9Ob25lOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbGVuID0gbGFzdGRvdCAtIHN0YXJ0OwotICAgICAgICAgICAgaWYgKGxlbiA+PSBNQVhQQVRITEVOKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb2R1bGUgbmFtZSB0b28gbG9uZyIpOwotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RybmNweShidWYsIHN0YXJ0LCBsZW4pOwotICAgICAgICAgICAgYnVmW2xlbl0gPSAnXDAnOwotICAgICAgICAgICAgcGtnbmFtZSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKGJ1Zik7Ci0gICAgICAgICAgICBpZiAocGtnbmFtZSA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBlcnJvciA9IFB5RGljdF9TZXRJdGVtKGdsb2JhbHMsIHBrZ3N0ciwgcGtnbmFtZSk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYocGtnbmFtZSk7Ci0gICAgICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBzZXQgX19wYWNrYWdlX18iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIH0KLSAgICB3aGlsZSAoLS1sZXZlbCA+IDApIHsKLSAgICAgICAgY2hhciAqZG90ID0gc3RycmNocihidWYsICcuJyk7Ci0gICAgICAgIGlmIChkb3QgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgIkF0dGVtcHRlZCByZWxhdGl2ZSBpbXBvcnQgYmV5b25kICIKLSAgICAgICAgICAgICAgICAidG9wbGV2ZWwgcGFja2FnZSIpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgKmRvdCA9ICdcMCc7Ci0gICAgfQotICAgICpwX2J1ZmxlbiA9IHN0cmxlbihidWYpOwotCi0gICAgbW9kdWxlcyA9IFB5SW1wb3J0X0dldE1vZHVsZURpY3QoKTsKLSAgICBwYXJlbnQgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzLCBidWYpOwotICAgIGlmIChwYXJlbnQgPT0gTlVMTCkgewotICAgICAgICBpZiAob3JpZ19sZXZlbCA8IDEpIHsKLSAgICAgICAgICAgIFB5T2JqZWN0ICplcnJfbXNnID0gUHlCeXRlc19Gcm9tRm9ybWF0KAotICAgICAgICAgICAgICAgICJQYXJlbnQgbW9kdWxlICclLjIwMHMnIG5vdCBmb3VuZCAiCi0gICAgICAgICAgICAgICAgIndoaWxlIGhhbmRsaW5nIGFic29sdXRlIGltcG9ydCIsIGJ1Zik7Ci0gICAgICAgICAgICBpZiAoZXJyX21zZyA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIVB5RXJyX1dhcm5FeChQeUV4Y19SdW50aW1lV2FybmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5Qnl0ZXNfQXNTdHJpbmcoZXJyX21zZyksIDEpKSB7Ci0gICAgICAgICAgICAgICAgKmJ1ZiA9ICdcMCc7Ci0gICAgICAgICAgICAgICAgKnBfYnVmbGVuID0gMDsKLSAgICAgICAgICAgICAgICBwYXJlbnQgPSBQeV9Ob25lOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgUHlfREVDUkVGKGVycl9tc2cpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1N5c3RlbUVycm9yLAotICAgICAgICAgICAgICAgICJQYXJlbnQgbW9kdWxlICclLjIwMHMnIG5vdCBsb2FkZWQsICIKLSAgICAgICAgICAgICAgICAiY2Fubm90IHBlcmZvcm0gcmVsYXRpdmUgaW1wb3J0IiwgYnVmKTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gcGFyZW50OwotICAgIC8qIFdlIGV4cGVjdCwgYnV0IGNhbid0IGd1YXJhbnRlZSwgaWYgcGFyZW50ICE9IE5vbmUsIHRoYXQ6Ci0gICAgICAgLSBwYXJlbnQuX19uYW1lX18gPT0gYnVmCi0gICAgICAgLSBwYXJlbnQuX19kaWN0X18gaXMgZ2xvYmFscwotICAgICAgIElmIHRoaXMgaXMgdmlvbGF0ZWQuLi4gIFdobyBjYXJlcz8gKi8KLX0KLQotLyogYWx0bW9kIGlzIGVpdGhlciBOb25lIG9yIHNhbWUgYXMgbW9kICovCi1zdGF0aWMgUHlPYmplY3QgKgotbG9hZF9uZXh0KFB5T2JqZWN0ICptb2QsIFB5T2JqZWN0ICphbHRtb2QsIGNoYXIgKipwX25hbWUsIGNoYXIgKmJ1ZiwKLSAgICAgICAgICBQeV9zc2l6ZV90ICpwX2J1ZmxlbikKLXsKLSAgICBjaGFyICpuYW1lID0gKnBfbmFtZTsKLSAgICBjaGFyICpkb3QgPSBzdHJjaHIobmFtZSwgJy4nKTsKLSAgICBzaXplX3QgbGVuOwotICAgIGNoYXIgKnA7Ci0gICAgUHlPYmplY3QgKnJlc3VsdDsKLQotICAgIGlmIChzdHJsZW4obmFtZSkgPT0gMCkgewotICAgICAgICAvKiBjb21wbGV0ZWx5IGVtcHR5IG1vZHVsZSBuYW1lIHNob3VsZCBvbmx5IGhhcHBlbiBpbgotICAgICAgICAgICAnZnJvbSAuIGltcG9ydCcgKG9yICdfX2ltcG9ydF9fKCIiKScpKi8KLSAgICAgICAgUHlfSU5DUkVGKG1vZCk7Ci0gICAgICAgICpwX25hbWUgPSBOVUxMOwotICAgICAgICByZXR1cm4gbW9kOwotICAgIH0KLQotICAgIGlmIChkb3QgPT0gTlVMTCkgewotICAgICAgICAqcF9uYW1lID0gTlVMTDsKLSAgICAgICAgbGVuID0gc3RybGVuKG5hbWUpOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgKnBfbmFtZSA9IGRvdCsxOwotICAgICAgICBsZW4gPSBkb3QtbmFtZTsKLSAgICB9Ci0gICAgaWYgKGxlbiA9PSAwKSB7Ci0gICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgIkVtcHR5IG1vZHVsZSBuYW1lIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLQotICAgIHAgPSBidWYgKyAqcF9idWZsZW47Ci0gICAgaWYgKHAgIT0gYnVmKQotICAgICAgICAqcCsrID0gJy4nOwotICAgIGlmIChwK2xlbi1idWYgPj0gTUFYUEFUSExFTikgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJNb2R1bGUgbmFtZSB0b28gbG9uZyIpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgc3RybmNweShwLCBuYW1lLCBsZW4pOwotICAgIHBbbGVuXSA9ICdcMCc7Ci0gICAgKnBfYnVmbGVuID0gcCtsZW4tYnVmOwotCi0gICAgcmVzdWx0ID0gaW1wb3J0X3N1Ym1vZHVsZShtb2QsIHAsIGJ1Zik7Ci0gICAgaWYgKHJlc3VsdCA9PSBQeV9Ob25lICYmIGFsdG1vZCAhPSBtb2QpIHsKLSAgICAgICAgUHlfREVDUkVGKHJlc3VsdCk7Ci0gICAgICAgIC8qIEhlcmUsIGFsdG1vZCBtdXN0IGJlIE5vbmUgYW5kIG1vZCBtdXN0IG5vdCBiZSBOb25lICovCi0gICAgICAgIHJlc3VsdCA9IGltcG9ydF9zdWJtb2R1bGUoYWx0bW9kLCBwLCBwKTsKLSAgICAgICAgaWYgKHJlc3VsdCAhPSBOVUxMICYmIHJlc3VsdCAhPSBQeV9Ob25lKSB7Ci0gICAgICAgICAgICBpZiAobWFya19taXNzKGJ1ZikgIT0gMCkgewotICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihyZXN1bHQpOwotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgc3RybmNweShidWYsIG5hbWUsIGxlbik7Ci0gICAgICAgICAgICBidWZbbGVuXSA9ICdcMCc7Ci0gICAgICAgICAgICAqcF9idWZsZW4gPSBsZW47Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHJlc3VsdCA9PSBOVUxMKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmIChyZXN1bHQgPT0gUHlfTm9uZSkgewotICAgICAgICBQeV9ERUNSRUYocmVzdWx0KTsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0ltcG9ydEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgIk5vIG1vZHVsZSBuYW1lZCAlLjIwMHMiLCBuYW1lKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIGludAotbWFya19taXNzKGNoYXIgKm5hbWUpCi17Ci0gICAgUHlPYmplY3QgKm1vZHVsZXMgPSBQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCk7Ci0gICAgcmV0dXJuIFB5RGljdF9TZXRJdGVtU3RyaW5nKG1vZHVsZXMsIG5hbWUsIFB5X05vbmUpOwotfQotCi1zdGF0aWMgaW50Ci1lbnN1cmVfZnJvbWxpc3QoUHlPYmplY3QgKm1vZCwgUHlPYmplY3QgKmZyb21saXN0LCBjaGFyICpidWYsIFB5X3NzaXplX3QgYnVmbGVuLAotICAgICAgICAgICAgICAgIGludCByZWN1cnNpdmUpCi17Ci0gICAgaW50IGk7Ci0KLSAgICBpZiAoIVB5T2JqZWN0X0hhc0F0dHJTdHJpbmcobW9kLCAiX19wYXRoX18iKSkKLSAgICAgICAgcmV0dXJuIDE7Ci0KLSAgICBmb3IgKGkgPSAwOyA7IGkrKykgewotICAgICAgICBQeU9iamVjdCAqaXRlbSA9IFB5U2VxdWVuY2VfR2V0SXRlbShmcm9tbGlzdCwgaSk7Ci0gICAgICAgIGludCBoYXNpdDsKLSAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkgewotICAgICAgICAgICAgaWYgKFB5RXJyX0V4Y2VwdGlvbk1hdGNoZXMoUHlFeGNfSW5kZXhFcnJvcikpIHsKLSAgICAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwotICAgICAgICAgICAgICAgIHJldHVybiAxOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFQeVVuaWNvZGVfQ2hlY2soaXRlbSkpIHsKLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkl0ZW0gaW4gYGBmcm9tIGxpc3QnJyBub3QgYSBzdHJpbmciKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihpdGVtKTsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgICAgIGlmIChQeVVuaWNvZGVfQVNfVU5JQ09ERShpdGVtKVswXSA9PSAnKicpIHsKLSAgICAgICAgICAgIFB5T2JqZWN0ICphbGw7Ci0gICAgICAgICAgICBQeV9ERUNSRUYoaXRlbSk7Ci0gICAgICAgICAgICAvKiBTZWUgaWYgdGhlIHBhY2thZ2UgZGVmaW5lcyBfX2FsbF9fICovCi0gICAgICAgICAgICBpZiAocmVjdXJzaXZlKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAvKiBBdm9pZCBlbmRsZXNzIHJlY3Vyc2lvbiAqLwotICAgICAgICAgICAgYWxsID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhtb2QsICJfX2FsbF9fIik7Ci0gICAgICAgICAgICBpZiAoYWxsID09IE5VTEwpCi0gICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIGludCByZXQgPSBlbnN1cmVfZnJvbWxpc3QobW9kLCBhbGwsIGJ1ZiwgYnVmbGVuLCAxKTsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYoYWxsKTsKLSAgICAgICAgICAgICAgICBpZiAoIXJldCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBoYXNpdCA9IFB5T2JqZWN0X0hhc0F0dHIobW9kLCBpdGVtKTsKLSAgICAgICAgaWYgKCFoYXNpdCkgewotICAgICAgICAgICAgUHlPYmplY3QgKml0ZW04OwotICAgICAgICAgICAgY2hhciAqc3VibmFtZTsKLSAgICAgICAgICAgIFB5T2JqZWN0ICpzdWJtb2Q7Ci0gICAgICAgICAgICBjaGFyICpwOwotICAgICAgICAgICAgaXRlbTggPSBQeVVuaWNvZGVfRW5jb2RlRlNEZWZhdWx0KGl0ZW0pOwotICAgICAgICAgICAgaWYgKCFpdGVtOCkgewotICAgICAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19WYWx1ZUVycm9yLCAiQ2Fubm90IGVuY29kZSBwYXRoIGl0ZW0iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHN1Ym5hbWUgPSBQeUJ5dGVzX0FTX1NUUklORyhpdGVtOCk7Ci0gICAgICAgICAgICBpZiAoYnVmbGVuICsgc3RybGVuKHN1Ym5hbWUpID49IE1BWFBBVEhMRU4pIHsKLSAgICAgICAgICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vZHVsZSBuYW1lIHRvbyBsb25nIik7Ci0gICAgICAgICAgICAgICAgUHlfREVDUkVGKGl0ZW0pOwotICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcCA9IGJ1ZiArIGJ1ZmxlbjsKLSAgICAgICAgICAgICpwKysgPSAnLic7Ci0gICAgICAgICAgICBzdHJjcHkocCwgc3VibmFtZSk7Ci0gICAgICAgICAgICBzdWJtb2QgPSBpbXBvcnRfc3VibW9kdWxlKG1vZCwgc3VibmFtZSwgYnVmKTsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihpdGVtOCk7Ci0gICAgICAgICAgICBQeV9YREVDUkVGKHN1Ym1vZCk7Ci0gICAgICAgICAgICBpZiAoc3VibW9kID09IE5VTEwpIHsKLSAgICAgICAgICAgICAgICBQeV9ERUNSRUYoaXRlbSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgUHlfREVDUkVGKGl0ZW0pOwotICAgIH0KLQotICAgIC8qIE5PVFJFQUNIRUQgKi8KLX0KLQotc3RhdGljIGludAotYWRkX3N1Ym1vZHVsZShQeU9iamVjdCAqbW9kLCBQeU9iamVjdCAqc3VibW9kLCBjaGFyICpmdWxsbmFtZSwgY2hhciAqc3VibmFtZSwKLSAgICAgICAgICAgICAgUHlPYmplY3QgKm1vZHVsZXMpCi17Ci0gICAgaWYgKG1vZCA9PSBQeV9Ob25lKQotICAgICAgICByZXR1cm4gMTsKLSAgICAvKiBJcnJlc3BlY3RpdmUgb2YgdGhlIHN1Y2Nlc3Mgb2YgdGhpcyBsb2FkLCBtYWtlIGEKLSAgICAgICByZWZlcmVuY2UgdG8gaXQgaW4gdGhlIHBhcmVudCBwYWNrYWdlIG1vZHVsZS4gIEEgY29weSBnZXRzCi0gICAgICAgc2F2ZWQgaW4gdGhlIG1vZHVsZXMgZGljdGlvbmFyeSB1bmRlciB0aGUgZnVsbCBuYW1lLCBzbyBnZXQgYQotICAgICAgIHJlZmVyZW5jZSBmcm9tIHRoZXJlLCBpZiBuZWVkIGJlLiAgKFRoZSBleGNlcHRpb24gaXMgd2hlbiB0aGUKLSAgICAgICBsb2FkIGZhaWxlZCB3aXRoIGEgU3ludGF4RXJyb3IgLS0gdGhlbiB0aGVyZSdzIG5vIHRyYWNlIGluCi0gICAgICAgc3lzLm1vZHVsZXMuICBJbiB0aGF0IGNhc2UsIG9mIGNvdXJzZSwgZG8gbm90aGluZyBleHRyYS4pICovCi0gICAgaWYgKHN1Ym1vZCA9PSBOVUxMKSB7Ci0gICAgICAgIHN1Ym1vZCA9IFB5RGljdF9HZXRJdGVtU3RyaW5nKG1vZHVsZXMsIGZ1bGxuYW1lKTsKLSAgICAgICAgaWYgKHN1Ym1vZCA9PSBOVUxMKQotICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotICAgIGlmIChQeU1vZHVsZV9DaGVjayhtb2QpKSB7Ci0gICAgICAgIC8qIFdlIGNhbid0IHVzZSBzZXRhdHRyIGhlcmUgc2luY2UgaXQgY2FuIGdpdmUgYQotICAgICAgICAgKiBzcHVyaW91cyB3YXJuaW5nIGlmIHRoZSBzdWJtb2R1bGUgbmFtZSBzaGFkb3dzIGEKLSAgICAgICAgICogYnVpbHRpbiBuYW1lICovCi0gICAgICAgIFB5T2JqZWN0ICpkaWN0ID0gUHlNb2R1bGVfR2V0RGljdChtb2QpOwotICAgICAgICBpZiAoIWRpY3QpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgaWYgKFB5RGljdF9TZXRJdGVtU3RyaW5nKGRpY3QsIHN1Ym5hbWUsIHN1Ym1vZCkgPCAwKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICBpZiAoUHlPYmplY3RfU2V0QXR0clN0cmluZyhtb2QsIHN1Ym5hbWUsIHN1Ym1vZCkgPCAwKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIHJldHVybiAxOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotaW1wb3J0X3N1Ym1vZHVsZShQeU9iamVjdCAqbW9kLCBjaGFyICpzdWJuYW1lLCBjaGFyICpmdWxsbmFtZSkKLXsKLSAgICBQeU9iamVjdCAqbW9kdWxlcyA9IFB5SW1wb3J0X0dldE1vZHVsZURpY3QoKTsKLSAgICBQeU9iamVjdCAqbSA9IE5VTEw7Ci0KLSAgICAvKiBSZXF1aXJlOgotICAgICAgIGlmIG1vZCA9PSBOb25lOiBzdWJuYW1lID09IGZ1bGxuYW1lCi0gICAgICAgZWxzZTogbW9kLl9fbmFtZV9fICsgIi4iICsgc3VibmFtZSA9PSBmdWxsbmFtZQotICAgICovCi0KLSAgICBpZiAoKG0gPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzLCBmdWxsbmFtZSkpICE9IE5VTEwpIHsKLSAgICAgICAgUHlfSU5DUkVGKG0pOwotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgUHlPYmplY3QgKnBhdGgsICpsb2FkZXIgPSBOVUxMOwotICAgICAgICBjaGFyICpidWY7Ci0gICAgICAgIHN0cnVjdCBmaWxlZGVzY3IgKmZkcDsKLSAgICAgICAgRklMRSAqZnAgPSBOVUxMOwotCi0gICAgICAgIGlmIChtb2QgPT0gUHlfTm9uZSkKLSAgICAgICAgICAgIHBhdGggPSBOVUxMOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHBhdGggPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG1vZCwgIl9fcGF0aF9fIik7Ci0gICAgICAgICAgICBpZiAocGF0aCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKLSAgICAgICAgICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFB5X05vbmU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBidWYgPSBQeU1lbV9NQUxMT0MoTUFYUEFUSExFTisxKTsKLSAgICAgICAgaWYgKGJ1ZiA9PSBOVUxMKSB7Ci0gICAgICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKLSAgICAgICAgfQotICAgICAgICBidWZbMF0gPSAnXDAnOwotICAgICAgICBmZHAgPSBmaW5kX21vZHVsZShmdWxsbmFtZSwgc3VibmFtZSwgcGF0aCwgYnVmLCBNQVhQQVRITEVOKzEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZmcCwgJmxvYWRlcik7Ci0gICAgICAgIFB5X1hERUNSRUYocGF0aCk7Ci0gICAgICAgIGlmIChmZHAgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlNZW1fRlJFRShidWYpOwotICAgICAgICAgICAgaWYgKCFQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX0ltcG9ydEVycm9yKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7Ci0gICAgICAgICAgICByZXR1cm4gUHlfTm9uZTsKLSAgICAgICAgfQotICAgICAgICBtID0gbG9hZF9tb2R1bGUoZnVsbG5hbWUsIGZwLCBidWYsIGZkcC0+dHlwZSwgbG9hZGVyKTsKLSAgICAgICAgUHlfWERFQ1JFRihsb2FkZXIpOwotICAgICAgICBpZiAoZnApCi0gICAgICAgICAgICBmY2xvc2UoZnApOwotICAgICAgICBpZiAoIWFkZF9zdWJtb2R1bGUobW9kLCBtLCBmdWxsbmFtZSwgc3VibmFtZSwgbW9kdWxlcykpIHsKLSAgICAgICAgICAgIFB5X1hERUNSRUYobSk7Ci0gICAgICAgICAgICBtID0gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBQeU1lbV9GUkVFKGJ1Zik7Ci0gICAgfQotCi0gICAgcmV0dXJuIG07CisgICAgbW9kID0gUHlJbXBvcnRfSW1wb3J0TW9kdWxlTGV2ZWxPYmplY3QobmFtZW9iaiwgZ2xvYmFscywgbG9jYWxzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21saXN0LCBsZXZlbCk7CisgICAgUHlfREVDUkVGKG5hbWVvYmopOworICAgIHJldHVybiBtb2Q7CiB9CiAKIApAQCAtMjk4MCwxMDMgKzE3ODMsMjMgQEAKIFB5T2JqZWN0ICoKIFB5SW1wb3J0X1JlbG9hZE1vZHVsZShQeU9iamVjdCAqbSkKIHsKLSAgICBQeUludGVycHJldGVyU3RhdGUgKmludGVycCA9IFB5VGhyZWFkU3RhdGVfR2V0KCktPmludGVycDsKLSAgICBQeU9iamVjdCAqbW9kdWxlc19yZWxvYWRpbmcgPSBpbnRlcnAtPm1vZHVsZXNfcmVsb2FkaW5nOworICAgIF9QeV9JREVOVElGSUVSKHJlbG9hZCk7CisgICAgUHlPYmplY3QgKnJlbG9hZGVkX21vZHVsZSA9IE5VTEw7CiAgICAgUHlPYmplY3QgKm1vZHVsZXMgPSBQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCk7Ci0gICAgUHlPYmplY3QgKnBhdGggPSBOVUxMLCAqbG9hZGVyID0gTlVMTCwgKmV4aXN0aW5nX20gPSBOVUxMOwotICAgIGNoYXIgKm5hbWUsICpzdWJuYW1lOwotICAgIGNoYXIgKmJ1ZjsKLSAgICBzdHJ1Y3QgZmlsZWRlc2NyICpmZHA7Ci0gICAgRklMRSAqZnAgPSBOVUxMOwotICAgIFB5T2JqZWN0ICpuZXdtOwotCi0gICAgaWYgKG1vZHVsZXNfcmVsb2FkaW5nID09IE5VTEwpIHsKLSAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlJbXBvcnRfUmVsb2FkTW9kdWxlOiAiCi0gICAgICAgICAgICAgICAgICAgICAgIm5vIG1vZHVsZXNfcmVsb2FkaW5nIGRpY3Rpb25hcnkhIik7Ci0gICAgICAgIHJldHVybiBOVUxMOworICAgIFB5T2JqZWN0ICppbXAgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzLCAiaW1wIik7CisgICAgaWYgKGltcCA9PSBOVUxMKSB7CisgICAgICAgIGltcCA9IFB5SW1wb3J0X0ltcG9ydE1vZHVsZSgiaW1wIik7CisgICAgICAgIGlmIChpbXAgPT0gTlVMTCkgeworICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIH0KICAgICB9Ci0KLSAgICBpZiAobSA9PSBOVUxMIHx8ICFQeU1vZHVsZV9DaGVjayhtKSkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9yLAotICAgICAgICAgICAgICAgICAgICAgICAgInJlbG9hZCgpIGFyZ3VtZW50IG11c3QgYmUgbW9kdWxlIik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBuYW1lID0gKGNoYXIqKVB5TW9kdWxlX0dldE5hbWUobSk7Ci0gICAgaWYgKG5hbWUgPT0gTlVMTCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgaWYgKG0gIT0gUHlEaWN0X0dldEl0ZW1TdHJpbmcobW9kdWxlcywgbmFtZSkpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0ltcG9ydEVycm9yLAotICAgICAgICAgICAgICAgICAgICAgInJlbG9hZCgpOiBtb2R1bGUgJS4yMDBzIG5vdCBpbiBzeXMubW9kdWxlcyIsCi0gICAgICAgICAgICAgICAgICAgICBuYW1lKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotICAgIGV4aXN0aW5nX20gPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzX3JlbG9hZGluZywgbmFtZSk7Ci0gICAgaWYgKGV4aXN0aW5nX20gIT0gTlVMTCkgewotICAgICAgICAvKiBEdWUgdG8gYSByZWN1cnNpdmUgcmVsb2FkLCB0aGlzIG1vZHVsZSBpcyBhbHJlYWR5Ci0gICAgICAgICAgIGJlaW5nIHJlbG9hZGVkLiAqLwotICAgICAgICBQeV9JTkNSRUYoZXhpc3RpbmdfbSk7Ci0gICAgICAgIHJldHVybiBleGlzdGluZ19tOwotICAgIH0KLSAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcobW9kdWxlc19yZWxvYWRpbmcsIG5hbWUsIG0pIDwgMCkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBzdWJuYW1lID0gc3RycmNocihuYW1lLCAnLicpOwotICAgIGlmIChzdWJuYW1lID09IE5VTEwpCi0gICAgICAgIHN1Ym5hbWUgPSBuYW1lOwogICAgIGVsc2UgewotICAgICAgICBQeU9iamVjdCAqcGFyZW50bmFtZSwgKnBhcmVudDsKLSAgICAgICAgcGFyZW50bmFtZSA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nQW5kU2l6ZShuYW1lLCAoc3VibmFtZS1uYW1lKSk7Ci0gICAgICAgIGlmIChwYXJlbnRuYW1lID09IE5VTEwpIHsKLSAgICAgICAgICAgIGltcF9tb2R1bGVzX3JlbG9hZGluZ19jbGVhcigpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICAgICAgcGFyZW50ID0gUHlEaWN0X0dldEl0ZW0obW9kdWxlcywgcGFyZW50bmFtZSk7Ci0gICAgICAgIGlmIChwYXJlbnQgPT0gTlVMTCkgewotICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0ltcG9ydEVycm9yLAotICAgICAgICAgICAgICAgICJyZWxvYWQoKTogcGFyZW50ICVVIG5vdCBpbiBzeXMubW9kdWxlcyIsCi0gICAgICAgICAgICAgICAgIHBhcmVudG5hbWUpOwotICAgICAgICAgICAgUHlfREVDUkVGKHBhcmVudG5hbWUpOwotICAgICAgICAgICAgaW1wX21vZHVsZXNfcmVsb2FkaW5nX2NsZWFyKCk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgICAgICBQeV9ERUNSRUYocGFyZW50bmFtZSk7Ci0gICAgICAgIHN1Ym5hbWUrKzsKLSAgICAgICAgcGF0aCA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcocGFyZW50LCAiX19wYXRoX18iKTsKLSAgICAgICAgaWYgKHBhdGggPT0gTlVMTCkKLSAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7Ci0gICAgfQotICAgIGJ1ZiA9IFB5TWVtX01BTExPQyhNQVhQQVRITEVOKzEpOwotICAgIGlmIChidWYgPT0gTlVMTCkgewotICAgICAgICBQeV9YREVDUkVGKHBhdGgpOwotICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKLSAgICB9Ci0gICAgYnVmWzBdID0gJ1wwJzsKLSAgICBmZHAgPSBmaW5kX21vZHVsZShuYW1lLCBzdWJuYW1lLCBwYXRoLCBidWYsIE1BWFBBVEhMRU4rMSwgJmZwLCAmbG9hZGVyKTsKLSAgICBQeV9YREVDUkVGKHBhdGgpOwotCi0gICAgaWYgKGZkcCA9PSBOVUxMKSB7Ci0gICAgICAgIFB5X1hERUNSRUYobG9hZGVyKTsKLSAgICAgICAgaW1wX21vZHVsZXNfcmVsb2FkaW5nX2NsZWFyKCk7Ci0gICAgICAgIFB5TWVtX0ZSRUUoYnVmKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIFB5X0lOQ1JFRihpbXApOwogICAgIH0KIAotICAgIG5ld20gPSBsb2FkX21vZHVsZShuYW1lLCBmcCwgYnVmLCBmZHAtPnR5cGUsIGxvYWRlcik7Ci0gICAgUHlfWERFQ1JFRihsb2FkZXIpOwotCi0gICAgaWYgKGZwKQotICAgICAgICBmY2xvc2UoZnApOwotICAgIGlmIChuZXdtID09IE5VTEwpIHsKLSAgICAgICAgLyogbG9hZF9tb2R1bGUgcHJvYmFibHkgcmVtb3ZlZCBuYW1lIGZyb20gbW9kdWxlcyBiZWNhdXNlIG9mCi0gICAgICAgICAqIHRoZSBlcnJvci4gIFB1dCBiYWNrIHRoZSBvcmlnaW5hbCBtb2R1bGUgb2JqZWN0LiAgV2UncmUKLSAgICAgICAgICogZ29pbmcgdG8gcmV0dXJuIE5VTEwgaW4gdGhpcyBjYXNlIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlcgotICAgICAgICAgKiByZXBsYWNpbmcgbmFtZSBzdWNjZWVkcywgc28gdGhlIHJldHVybiB2YWx1ZSBpcyBpZ25vcmVkLgotICAgICAgICAgKi8KLSAgICAgICAgUHlEaWN0X1NldEl0ZW1TdHJpbmcobW9kdWxlcywgbmFtZSwgbSk7Ci0gICAgfQotICAgIGltcF9tb2R1bGVzX3JlbG9hZGluZ19jbGVhcigpOwotICAgIFB5TWVtX0ZSRUUoYnVmKTsKLSAgICByZXR1cm4gbmV3bTsKKyAgICByZWxvYWRlZF9tb2R1bGUgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKGltcCwgJlB5SWRfcmVsb2FkLCAiTyIsIG0pOworICAgIFB5X0RFQ1JFRihpbXApOworICAgIHJldHVybiByZWxvYWRlZF9tb2R1bGU7CiB9CiAKIApAQCAtMzE5MSwyMyArMTkxNCwxOCBAQAogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotaW1wX2dldF90YWcoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpub2FyZ3MpCi17Ci0gICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tU3RyaW5nKHB5Y190YWcpOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotaW1wX2dldF9zdWZmaXhlcyhQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKm5vYXJncykKK2ltcF9leHRlbnNpb25fc3VmZml4ZXMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICpub2FyZ3MpCiB7CiAgICAgUHlPYmplY3QgKmxpc3Q7Ci0gICAgc3RydWN0IGZpbGVkZXNjciAqZmRwOworICAgIGNvbnN0IGNoYXIgKnN1ZmZpeDsKKyAgICB1bnNpZ25lZCBpbnQgaW5kZXggPSAwOwogCiAgICAgbGlzdCA9IFB5TGlzdF9OZXcoMCk7CiAgICAgaWYgKGxpc3QgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgZm9yIChmZHAgPSBfUHlJbXBvcnRfRmlsZXRhYjsgZmRwLT5zdWZmaXggIT0gTlVMTDsgZmRwKyspIHsKLSAgICAgICAgUHlPYmplY3QgKml0ZW0gPSBQeV9CdWlsZFZhbHVlKCJzc2kiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkcC0+c3VmZml4LCBmZHAtPm1vZGUsIGZkcC0+dHlwZSk7CisjaWZkZWYgSEFWRV9EWU5BTUlDX0xPQURJTkcKKyAgICB3aGlsZSAoKHN1ZmZpeCA9IF9QeUltcG9ydF9EeW5Mb2FkRmlsZXRhYltpbmRleF0pKSB7CisgICAgICAgIFB5T2JqZWN0ICppdGVtID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoc3VmZml4KTsKICAgICAgICAgaWYgKGl0ZW0gPT0gTlVMTCkgewogICAgICAgICAgICAgUHlfREVDUkVGKGxpc3QpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0zMjE4LDEwMiArMTkzNiwxOSBAQAogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICAgICAgUHlfREVDUkVGKGl0ZW0pOworICAgICAgICBpbmRleCArPSAxOwogICAgIH0KKyNlbmRpZgogICAgIHJldHVybiBsaXN0OwogfQogCiBzdGF0aWMgUHlPYmplY3QgKgotY2FsbF9maW5kX21vZHVsZShjaGFyICpuYW1lLCBQeU9iamVjdCAqcGF0aCkKLXsKLSAgICBleHRlcm4gaW50IGZjbG9zZShGSUxFICopOwotICAgIFB5T2JqZWN0ICpmb2IsICpyZXQ7Ci0gICAgUHlPYmplY3QgKnBhdGhvYmo7Ci0gICAgc3RydWN0IGZpbGVkZXNjciAqZmRwOwotICAgIGNoYXIgKnBhdGhuYW1lOwotICAgIEZJTEUgKmZwID0gTlVMTDsKLSAgICBpbnQgZmQgPSAtMTsKLSAgICBjaGFyICpmb3VuZF9lbmNvZGluZyA9IE5VTEw7Ci0gICAgY2hhciAqZW5jb2RpbmcgPSBOVUxMOwotCi0gICAgcGF0aG5hbWUgPSBQeU1lbV9NQUxMT0MoTUFYUEFUSExFTisxKTsKLSAgICBpZiAocGF0aG5hbWUgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKLSAgICB9Ci0gICAgcGF0aG5hbWVbMF0gPSAnXDAnOwotICAgIGlmIChwYXRoID09IFB5X05vbmUpCi0gICAgICAgIHBhdGggPSBOVUxMOwotICAgIGZkcCA9IGZpbmRfbW9kdWxlKE5VTEwsIG5hbWUsIHBhdGgsIHBhdGhuYW1lLCBNQVhQQVRITEVOKzEsICZmcCwgTlVMTCk7Ci0gICAgaWYgKGZkcCA9PSBOVUxMKQotICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgaWYgKGZwICE9IE5VTEwpIHsKLSAgICAgICAgZmQgPSBmaWxlbm8oZnApOwotICAgICAgICBpZiAoZmQgIT0gLTEpCi0gICAgICAgICAgICBmZCA9IGR1cChmZCk7Ci0gICAgICAgIGZjbG9zZShmcCk7Ci0gICAgICAgIGZwID0gTlVMTDsKLSAgICAgICAgaWYgKGZkID09IC0xKSB7Ci0gICAgICAgICAgICBQeUVycl9TZXRGcm9tRXJybm8oUHlFeGNfT1NFcnJvcik7Ci0gICAgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGZkICE9IC0xKSB7Ci0gICAgICAgIGlmIChzdHJjaHIoZmRwLT5tb2RlLCAnYicpID09IE5VTEwpIHsKLSAgICAgICAgICAgIC8qIFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZygpIHJldHVybnMgUHlNZW1fTUFMTE9DJ2VkCi0gICAgICAgICAgICAgICBtZW1vcnkuICovCi0gICAgICAgICAgICBmb3VuZF9lbmNvZGluZyA9IFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZyhmZCk7Ci0gICAgICAgICAgICBsc2VlayhmZCwgMCwgMCk7IC8qIFJlc2V0IHBvc2l0aW9uICovCi0gICAgICAgICAgICBpZiAoZm91bmRfZW5jb2RpbmcgPT0gTlVMTCAmJiBQeUVycl9PY2N1cnJlZCgpKSB7Ci0gICAgICAgICAgICAgICAgY2xvc2UoZmQpOwotICAgICAgICAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVuY29kaW5nID0gKGZvdW5kX2VuY29kaW5nICE9IE5VTEwpID8gZm91bmRfZW5jb2RpbmcgOgotICAgICAgICAgICAgICAgICAgIChjaGFyKilQeVVuaWNvZGVfR2V0RGVmYXVsdEVuY29kaW5nKCk7Ci0gICAgICAgIH0KLSAgICAgICAgZm9iID0gUHlGaWxlX0Zyb21GZChmZCwgcGF0aG5hbWUsIGZkcC0+bW9kZSwgLTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYXIqKWVuY29kaW5nLCBOVUxMLCBOVUxMLCAxKTsKLSAgICAgICAgaWYgKGZvYiA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBjbG9zZShmZCk7Ci0gICAgICAgICAgICBQeU1lbV9GUkVFKGZvdW5kX2VuY29kaW5nKTsKLSAgICAgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKLSAgICAgICAgfQotICAgIH0KLSAgICBlbHNlIHsKLSAgICAgICAgZm9iID0gUHlfTm9uZTsKLSAgICAgICAgUHlfSU5DUkVGKGZvYik7Ci0gICAgfQotICAgIHBhdGhvYmogPSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KHBhdGhuYW1lKTsKLSAgICByZXQgPSBQeV9CdWlsZFZhbHVlKCJOTihzc2kpIiwKLSAgICAgICAgICAgICAgICAgIGZvYiwgcGF0aG9iaiwgZmRwLT5zdWZmaXgsIGZkcC0+bW9kZSwgZmRwLT50eXBlKTsKLSAgICBQeU1lbV9GUkVFKGZvdW5kX2VuY29kaW5nKTsKLSAgICBQeU1lbV9GUkVFKHBhdGhuYW1lKTsKLSAgICByZXR1cm4gcmV0OwotCi1lcnJvcl9leGl0OgotICAgIFB5TWVtX0ZSRUUocGF0aG5hbWUpOwotICAgIHJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotaW1wX2ZpbmRfbW9kdWxlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBQeU9iamVjdCAqbmFtZTsKLSAgICBQeU9iamVjdCAqcmV0LCAqcGF0aCA9IE5VTEw7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJPJnxPOmZpbmRfbW9kdWxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhdGgpKQotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICByZXQgPSBjYWxsX2ZpbmRfbW9kdWxlKFB5Qnl0ZXNfQVNfU1RSSU5HKG5hbWUpLCBwYXRoKTsKLSAgICBQeV9ERUNSRUYobmFtZSk7Ci0gICAgcmV0dXJuIHJldDsKLX0KLQotc3RhdGljIFB5T2JqZWN0ICoKIGltcF9pbml0X2J1aWx0aW4oUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIGNoYXIgKm5hbWU7CisgICAgUHlPYmplY3QgKm5hbWU7CiAgICAgaW50IHJldDsKICAgICBQeU9iamVjdCAqbTsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInM6aW5pdF9idWlsdGluIiwgJm5hbWUpKQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVTppbml0X2J1aWx0aW4iLCAmbmFtZSkpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIHJldCA9IGluaXRfYnVpbHRpbihuYW1lKTsKICAgICBpZiAocmV0IDwgMCkKQEAgLTMzMjIsNyArMTk1Nyw3IEBACiAgICAgICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKICAgICAgICAgcmV0dXJuIFB5X05vbmU7CiAgICAgfQotICAgIG0gPSBQeUltcG9ydF9BZGRNb2R1bGUobmFtZSk7CisgICAgbSA9IFB5SW1wb3J0X0FkZE1vZHVsZU9iamVjdChuYW1lKTsKICAgICBQeV9YSU5DUkVGKG0pOwogICAgIHJldHVybiBtOwogfQpAQCAtMzMzMCwxOSArMTk2NSwxOSBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGltcF9pbml0X2Zyb3plbihQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCiB7Ci0gICAgY2hhciAqbmFtZTsKKyAgICBQeU9iamVjdCAqbmFtZTsKICAgICBpbnQgcmV0OwogICAgIFB5T2JqZWN0ICptOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiczppbml0X2Zyb3plbiIsICZuYW1lKSkKKyAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIlU6aW5pdF9mcm96ZW4iLCAmbmFtZSkpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldCA9IFB5SW1wb3J0X0ltcG9ydEZyb3plbk1vZHVsZShuYW1lKTsKKyAgICByZXQgPSBQeUltcG9ydF9JbXBvcnRGcm96ZW5Nb2R1bGVPYmplY3QobmFtZSk7CiAgICAgaWYgKHJldCA8IDApCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmIChyZXQgPT0gMCkgewogICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CiAgICAgICAgIHJldHVybiBQeV9Ob25lOwogICAgIH0KLSAgICBtID0gUHlJbXBvcnRfQWRkTW9kdWxlKG5hbWUpOworICAgIG0gPSBQeUltcG9ydF9BZGRNb2R1bGVPYmplY3QobmFtZSk7CiAgICAgUHlfWElOQ1JFRihtKTsKICAgICByZXR1cm4gbTsKIH0KQEAgLTMzNTAsOSArMTk4NSw5IEBACiBzdGF0aWMgUHlPYmplY3QgKgogaW1wX2dldF9mcm96ZW5fb2JqZWN0KFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBjaGFyICpuYW1lOworICAgIFB5T2JqZWN0ICpuYW1lOwogCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzOmdldF9mcm96ZW5fb2JqZWN0IiwgJm5hbWUpKQorICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVTpnZXRfZnJvemVuX29iamVjdCIsICZuYW1lKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgcmV0dXJuIGdldF9mcm96ZW5fb2JqZWN0KG5hbWUpOwogfQpAQCAtMzM2MCw5ICsxOTk1LDkgQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBpbXBfaXNfZnJvemVuX3BhY2thZ2UoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIGNoYXIgKm5hbWU7CisgICAgUHlPYmplY3QgKm5hbWU7CiAKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInM6aXNfZnJvemVuX3BhY2thZ2UiLCAmbmFtZSkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVOmlzX2Zyb3plbl9wYWNrYWdlIiwgJm5hbWUpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICByZXR1cm4gaXNfZnJvemVuX3BhY2thZ2UobmFtZSk7CiB9CkBAIC0zMzcwLDggKzIwMDUsOCBAQAogc3RhdGljIFB5T2JqZWN0ICoKIGltcF9pc19idWlsdGluKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBjaGFyICpuYW1lOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiczppc19idWlsdGluIiwgJm5hbWUpKQorICAgIFB5T2JqZWN0ICpuYW1lOworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVTppc19idWlsdGluIiwgJm5hbWUpKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICByZXR1cm4gUHlMb25nX0Zyb21Mb25nKGlzX2J1aWx0aW4obmFtZSkpOwogfQpAQCAtMzM3OSwzMzMgKzIwMTQsNTggQEAKIHN0YXRpYyBQeU9iamVjdCAqCiBpbXBfaXNfZnJvemVuKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKIHsKLSAgICBjaGFyICpuYW1lOworICAgIFB5T2JqZWN0ICpuYW1lOwogICAgIHN0cnVjdCBfZnJvemVuICpwOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiczppc19mcm96ZW4iLCAmbmFtZSkpCisgICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJVOmlzX2Zyb3plbiIsICZuYW1lKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgcCA9IGZpbmRfZnJvemVuKG5hbWUpOwogICAgIHJldHVybiBQeUJvb2xfRnJvbUxvbmcoKGxvbmcpIChwID09IE5VTEwgPyAwIDogcC0+c2l6ZSkpOwogfQogCi1zdGF0aWMgRklMRSAqCi1nZXRfZmlsZShjaGFyICpwYXRobmFtZSwgUHlPYmplY3QgKmZvYiwgY2hhciAqbW9kZSkKLXsKLSAgICBGSUxFICpmcDsKLSAgICBpZiAobW9kZVswXSA9PSAnVScpCi0gICAgICAgIG1vZGUgPSAiciIgUFlfU1RESU9URVhUTU9ERTsKLSAgICBpZiAoZm9iID09IE5VTEwpIHsKLSAgICAgICAgZnAgPSBmb3BlbihwYXRobmFtZSwgbW9kZSk7Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICBpbnQgZmQgPSBQeU9iamVjdF9Bc0ZpbGVEZXNjcmlwdG9yKGZvYik7Ci0gICAgICAgIGlmIChmZCA9PSAtMSkKLSAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICBpZiAoIV9QeVZlcmlmeV9mZChmZCkpCi0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICAvKiB0aGUgRklMRSBzdHJ1Y3QgZ2V0cyBhIG5ldyBmZCwgc28gdGhhdCBpdCBjYW4gYmUgY2xvc2VkCi0gICAgICAgICAqIGluZGVwZW5kZW50bHkgb2YgdGhlIGZpbGUgZGVzY3JpcHRvciBnaXZlbgotICAgICAgICAgKi8KLSAgICAgICAgZmQgPSBkdXAoZmQpOwotICAgICAgICBpZiAoZmQgPT0gLTEpCi0gICAgICAgICAgICBnb3RvIGVycm9yOwotICAgICAgICBmcCA9IGZkb3BlbihmZCwgbW9kZSk7Ci0gICAgfQotICAgIGlmIChmcCkKLSAgICAgICAgcmV0dXJuIGZwOwotZXJyb3I6Ci0gICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOwotICAgIHJldHVybiBOVUxMOwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotaW1wX2xvYWRfY29tcGlsZWQoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIGNoYXIgKm5hbWU7Ci0gICAgUHlPYmplY3QgKnBhdGhuYW1lOwotICAgIFB5T2JqZWN0ICpmb2IgPSBOVUxMOwotICAgIFB5T2JqZWN0ICptOwotICAgIEZJTEUgKmZwOwotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAic08mfE86bG9hZF9jb21waWxlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRlNDb252ZXJ0ZXIsICZwYXRobmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJmZvYikpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGZwID0gZ2V0X2ZpbGUoUHlCeXRlc19BU19TVFJJTkcocGF0aG5hbWUpLCBmb2IsICJyYiIpOwotICAgIGlmIChmcCA9PSBOVUxMKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihwYXRobmFtZSk7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICBtID0gbG9hZF9jb21waWxlZF9tb2R1bGUobmFtZSwgUHlCeXRlc19BU19TVFJJTkcocGF0aG5hbWUpLCBmcCk7Ci0gICAgZmNsb3NlKGZwKTsKLSAgICBQeV9ERUNSRUYocGF0aG5hbWUpOwotICAgIHJldHVybiBtOwotfQotCiAjaWZkZWYgSEFWRV9EWU5BTUlDX0xPQURJTkcKIAogc3RhdGljIFB5T2JqZWN0ICoKIGltcF9sb2FkX2R5bmFtaWMoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQogewotICAgIGNoYXIgKm5hbWU7Ci0gICAgUHlPYmplY3QgKnBhdGhieXRlczsKLSAgICBjaGFyICpwYXRobmFtZTsKLSAgICBQeU9iamVjdCAqZm9iID0gTlVMTDsKLSAgICBQeU9iamVjdCAqbTsKLSAgICBGSUxFICpmcCA9IE5VTEw7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzTyZ8Tzpsb2FkX2R5bmFtaWMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmbmFtZSwgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmcGF0aGJ5dGVzLCAmZm9iKSkKKyAgICBQeU9iamVjdCAqbmFtZSwgKnBhdGhuYW1lLCAqZm9iID0gTlVMTCwgKm1vZDsKKyAgICBGSUxFICpmcDsKKworICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVU8mfE86bG9hZF9keW5hbWljIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJm5hbWUsIFB5VW5pY29kZV9GU0RlY29kZXIsICZwYXRobmFtZSwgJmZvYikpCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIHBhdGhuYW1lID0gUHlCeXRlc19BU19TVFJJTkcocGF0aGJ5dGVzKTsKLSAgICBpZiAoZm9iKSB7Ci0gICAgICAgIGZwID0gZ2V0X2ZpbGUocGF0aG5hbWUsIGZvYiwgInIiKTsKKyAgICBpZiAoZm9iICE9IE5VTEwpIHsKKyAgICAgICAgZnAgPSBfUHlfZm9wZW4ocGF0aG5hbWUsICJyIik7CiAgICAgICAgIGlmIChmcCA9PSBOVUxMKSB7Ci0gICAgICAgICAgICBQeV9ERUNSRUYocGF0aGJ5dGVzKTsKKyAgICAgICAgICAgIFB5X0RFQ1JFRihwYXRobmFtZSk7CisgICAgICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCisgICAgICAgICAgICAgICAgUHlFcnJfU2V0RnJvbUVycm5vKFB5RXhjX0lPRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KICAgICB9Ci0gICAgbSA9IF9QeUltcG9ydF9Mb2FkRHluYW1pY01vZHVsZShuYW1lLCBwYXRobmFtZSwgZnApOwotICAgIFB5X0RFQ1JFRihwYXRoYnl0ZXMpOworICAgIGVsc2UKKyAgICAgICAgZnAgPSBOVUxMOworICAgIG1vZCA9IF9QeUltcG9ydF9Mb2FkRHluYW1pY01vZHVsZShuYW1lLCBwYXRobmFtZSwgZnApOworICAgIFB5X0RFQ1JFRihwYXRobmFtZSk7CiAgICAgaWYgKGZwKQogICAgICAgICBmY2xvc2UoZnApOwotICAgIHJldHVybiBtOworICAgIHJldHVybiBtb2Q7CiB9CiAKICNlbmRpZiAvKiBIQVZFX0RZTkFNSUNfTE9BRElORyAqLwogCi1zdGF0aWMgUHlPYmplY3QgKgotaW1wX2xvYWRfc291cmNlKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBjaGFyICpuYW1lOwotICAgIFB5T2JqZWN0ICpwYXRobmFtZTsKLSAgICBQeU9iamVjdCAqZm9iID0gTlVMTDsKLSAgICBQeU9iamVjdCAqbTsKLSAgICBGSUxFICpmcDsKLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgInNPJnxPOmxvYWRfc291cmNlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJm5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJnBhdGhuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmZm9iKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgZnAgPSBnZXRfZmlsZShQeUJ5dGVzX0FTX1NUUklORyhwYXRobmFtZSksIGZvYiwgInIiKTsKLSAgICBpZiAoZnAgPT0gTlVMTCkgewotICAgICAgICBQeV9ERUNSRUYocGF0aG5hbWUpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgbSA9IGxvYWRfc291cmNlX21vZHVsZShuYW1lLCBQeUJ5dGVzX0FTX1NUUklORyhwYXRobmFtZSksIGZwKTsKLSAgICBQeV9ERUNSRUYocGF0aG5hbWUpOwotICAgIGZjbG9zZShmcCk7Ci0gICAgcmV0dXJuIG07Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1pbXBfbG9hZF9tb2R1bGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIGNoYXIgKm5hbWU7Ci0gICAgUHlPYmplY3QgKmZvYjsKLSAgICBQeU9iamVjdCAqcGF0aG5hbWU7Ci0gICAgUHlPYmplY3QgKiByZXQ7Ci0gICAgY2hhciAqc3VmZml4OyAvKiBVbnVzZWQgKi8KLSAgICBjaGFyICptb2RlOwotICAgIGludCB0eXBlOwotICAgIEZJTEUgKmZwOwotCi0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzT08mKHNzaSk6bG9hZF9tb2R1bGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmbmFtZSwgJmZvYiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmcGF0aG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICZzdWZmaXgsICZtb2RlLCAmdHlwZSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmICgqbW9kZSkgewotICAgICAgICAvKiBNb2RlIG11c3Qgc3RhcnQgd2l0aCAncicgb3IgJ1UnIGFuZCBtdXN0IG5vdCBjb250YWluICcrJy4KLSAgICAgICAgICAgSW1wbGljaXQgaW4gdGhpcyB0ZXN0IGlzIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhlIG1vZGUKLSAgICAgICAgICAgbWF5IGNvbnRhaW4gb3RoZXIgbW9kaWZpZXJzIGxpa2UgJ2InIG9yICd0Jy4gKi8KLQotICAgICAgICBpZiAoISgqbW9kZSA9PSAncicgfHwgKm1vZGUgPT0gJ1UnKSB8fCBzdHJjaHIobW9kZSwgJysnKSkgewotICAgICAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgImludmFsaWQgZmlsZSBvcGVuIG1vZGUgJS4yMDBzIiwgbW9kZSk7Ci0gICAgICAgICAgICBQeV9ERUNSRUYocGF0aG5hbWUpOwotICAgICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGZvYiA9PSBQeV9Ob25lKQotICAgICAgICBmcCA9IE5VTEw7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGZwID0gZ2V0X2ZpbGUoTlVMTCwgZm9iLCBtb2RlKTsKLSAgICAgICAgaWYgKGZwID09IE5VTEwpIHsKLSAgICAgICAgICAgIFB5X0RFQ1JFRihwYXRobmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXQgPSBsb2FkX21vZHVsZShuYW1lLCBmcCwgUHlCeXRlc19BU19TVFJJTkcocGF0aG5hbWUpLCB0eXBlLCBOVUxMKTsKLSAgICBQeV9ERUNSRUYocGF0aG5hbWUpOwotICAgIGlmIChmcCkKLSAgICAgICAgZmNsb3NlKGZwKTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotaW1wX2xvYWRfcGFja2FnZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MpCi17Ci0gICAgY2hhciAqbmFtZTsKLSAgICBQeU9iamVjdCAqcGF0aG5hbWU7Ci0gICAgUHlPYmplY3QgKiByZXQ7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzTyY6bG9hZF9wYWNrYWdlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJm5hbWUsIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJnBhdGhuYW1lKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcmV0ID0gbG9hZF9wYWNrYWdlKG5hbWUsIFB5Qnl0ZXNfQVNfU1RSSU5HKHBhdGhuYW1lKSk7Ci0gICAgUHlfREVDUkVGKHBhdGhuYW1lKTsKLSAgICByZXR1cm4gcmV0OwotfQotCi1zdGF0aWMgUHlPYmplY3QgKgotaW1wX25ld19tb2R1bGUoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQotewotICAgIGNoYXIgKm5hbWU7Ci0gICAgaWYgKCFQeUFyZ19QYXJzZVR1cGxlKGFyZ3MsICJzOm5ld19tb2R1bGUiLCAmbmFtZSkpCi0gICAgICAgIHJldHVybiBOVUxMOwotICAgIHJldHVybiBQeU1vZHVsZV9OZXcobmFtZSk7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1pbXBfcmVsb2FkKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqdikKLXsKLSAgICByZXR1cm4gUHlJbXBvcnRfUmVsb2FkTW9kdWxlKHYpOwotfQotCi1QeURvY19TVFJWQVIoZG9jX3JlbG9hZCwKLSJyZWxvYWQobW9kdWxlKSAtPiBtb2R1bGVcblwKLVxuXAotUmVsb2FkIHRoZSBtb2R1bGUuICBUaGUgbW9kdWxlIG11c3QgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBiZWZvcmUuIik7Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1pbXBfY2FjaGVfZnJvbV9zb3VyY2UoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dzKQotewotICAgIHN0YXRpYyBjaGFyICprd2xpc3RbXSA9IHsicGF0aCIsICJkZWJ1Z19vdmVycmlkZSIsIE5VTEx9OwotCi0gICAgY2hhciAqYnVmOwotICAgIFB5T2JqZWN0ICpwYXRoYnl0ZXM7Ci0gICAgY2hhciAqY3BhdGhuYW1lOwotICAgIFB5T2JqZWN0ICpkZWJ1Z19vdmVycmlkZSA9IE5VTEw7Ci0gICAgaW50IGRlYnVnID0gIVB5X09wdGltaXplRmxhZzsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKAotICAgICAgICAgICAgICAgIGFyZ3MsIGt3cywgIk8mfE8iLCBrd2xpc3QsCi0gICAgICAgICAgICAgICAgUHlVbmljb2RlX0ZTQ29udmVydGVyLCAmcGF0aGJ5dGVzLCAmZGVidWdfb3ZlcnJpZGUpKQotICAgICAgICByZXR1cm4gTlVMTDsKLQotICAgIGlmIChkZWJ1Z19vdmVycmlkZSAhPSBOVUxMICYmCi0gICAgICAgIChkZWJ1ZyA9IFB5T2JqZWN0X0lzVHJ1ZShkZWJ1Z19vdmVycmlkZSkpIDwgMCkgewotICAgICAgICBQeV9ERUNSRUYocGF0aGJ5dGVzKTsKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgfQotCi0gICAgYnVmID0gUHlNZW1fTUFMTE9DKE1BWFBBVEhMRU4rMSk7Ci0gICAgaWYgKGJ1ZiA9PSBOVUxMKSB7Ci0gICAgICAgIHJldHVybiBQeUVycl9Ob01lbW9yeSgpOwotICAgIH0KLSAgICBjcGF0aG5hbWUgPSBtYWtlX2NvbXBpbGVkX3BhdGhuYW1lKAotICAgICAgICBQeUJ5dGVzX0FTX1NUUklORyhwYXRoYnl0ZXMpLAotICAgICAgICBidWYsIE1BWFBBVEhMRU4rMSwgZGVidWcpOwotICAgIFB5X0RFQ1JFRihwYXRoYnl0ZXMpOwotCi0gICAgaWYgKGNwYXRobmFtZSA9PSBOVUxMKSB7Ci0gICAgICAgIFB5RXJyX0Zvcm1hdChQeUV4Y19TeXN0ZW1FcnJvciwgInBhdGggYnVmZmVyIHRvbyBzaG9ydCIpOwotICAgICAgICBQeU1lbV9GUkVFKGJ1Zik7Ci0gICAgICAgIHJldHVybiBOVUxMOwotICAgIH0KLSAgICB7Ci0gICAgICAgIFB5T2JqZWN0ICpyZXQgPSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KGJ1Zik7Ci0gICAgICAgIFB5TWVtX0ZSRUUoYnVmKTsKLSAgICAgICAgcmV0dXJuIHJldDsKLSAgICB9Ci19Ci0KLVB5RG9jX1NUUlZBUihkb2NfY2FjaGVfZnJvbV9zb3VyY2UsCi0iY2FjaGVfZnJvbV9zb3VyY2UocGF0aCwgW2RlYnVnX292ZXJyaWRlXSkgLT4gcGF0aFxuXAotR2l2ZW4gdGhlIHBhdGggdG8gYSAucHkgZmlsZSwgcmV0dXJuIHRoZSBwYXRoIHRvIGl0cyAucHljLy5weW8gZmlsZS5cblwKLVxuXAotVGhlIC5weSBmaWxlIGRvZXMgbm90IG5lZWQgdG8gZXhpc3Q7IHRoaXMgc2ltcGx5IHJldHVybnMgdGhlIHBhdGggdG8gdGhlXG5cCi0ucHljLy5weW8gZmlsZSBjYWxjdWxhdGVkIGFzIGlmIHRoZSAucHkgZmlsZSB3ZXJlIGltcG9ydGVkLiAgVGhlIGV4dGVuc2lvblxuXAotd2lsbCBiZSAucHljIHVubGVzcyBfX2RlYnVnX18gaXMgbm90IGRlZmluZWQsIHRoZW4gaXQgd2lsbCBiZSAucHlvLlxuXAotXG5cCi1JZiBkZWJ1Z19vdmVycmlkZSBpcyBub3QgTm9uZSwgdGhlbiBpdCBtdXN0IGJlIGEgYm9vbGVhbiBhbmQgaXMgdGFrZW4gYXNcblwKLXRoZSB2YWx1ZSBvZiBfX2RlYnVnX18gaW5zdGVhZC4iKTsKLQotc3RhdGljIFB5T2JqZWN0ICoKLWltcF9zb3VyY2VfZnJvbV9jYWNoZShQeU9iamVjdCAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd3MpCi17Ci0gICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJwYXRoIiwgTlVMTH07Ci0KLSAgICBQeU9iamVjdCAqcGF0aG5hbWVfb2JqOwotICAgIGNoYXIgKnBhdGhuYW1lOwotICAgIGNoYXIgKmJ1ZjsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKAotICAgICAgICAgICAgICAgIGFyZ3MsIGt3cywgIk8mIiwga3dsaXN0LAotICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJnBhdGhuYW1lX29iaikpCi0gICAgICAgIHJldHVybiBOVUxMOwotCi0gICAgcGF0aG5hbWUgPSBQeUJ5dGVzX0FTX1NUUklORyhwYXRobmFtZV9vYmopOwotICAgIGJ1ZiA9IFB5TWVtX01BTExPQyhNQVhQQVRITEVOKzEpOwotICAgIGlmIChidWYgPT0gTlVMTCkgewotICAgICAgICByZXR1cm4gUHlFcnJfTm9NZW1vcnkoKTsKLSAgICB9Ci0gICAgaWYgKG1ha2Vfc291cmNlX3BhdGhuYW1lKHBhdGhuYW1lLCBidWYpID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX1ZhbHVlRXJyb3IsICJOb3QgYSBQRVAgMzE0NyBweWMgcGF0aDogJXMiLAotICAgICAgICAgICAgICAgICAgICAgcGF0aG5hbWUpOwotICAgICAgICBQeV9ERUNSRUYocGF0aG5hbWVfb2JqKTsKLSAgICAgICAgUHlNZW1fRlJFRShidWYpOwotICAgICAgICByZXR1cm4gTlVMTDsKLSAgICB9Ci0gICAgUHlfREVDUkVGKHBhdGhuYW1lX29iaik7Ci0gICAgewotICAgICAgICBQeU9iamVjdCAqcmV0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoYnVmKTsKLSAgICAgICAgUHlNZW1fRlJFRShidWYpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLX0KLQotUHlEb2NfU1RSVkFSKGRvY19zb3VyY2VfZnJvbV9jYWNoZSwKLSJzb3VyY2VfZnJvbV9jYWNoZShwYXRoKSAtPiBwYXRoXG5cCi1HaXZlbiB0aGUgcGF0aCB0byBhIC5weWMuLy5weW8gZmlsZSwgcmV0dXJuIHRoZSBwYXRoIHRvIGl0cyAucHkgZmlsZS5cblwKLVxuXAotVGhlIC5weWMvLnB5byBmaWxlIGRvZXMgbm90IG5lZWQgdG8gZXhpc3Q7IHRoaXMgc2ltcGx5IHJldHVybnMgdGhlIHBhdGggdG9cblwKLXRoZSAucHkgZmlsZSBjYWxjdWxhdGVkIHRvIGNvcnJlc3BvbmQgdG8gdGhlIC5weWMvLnB5byBmaWxlLiAgSWYgcGF0aFxuXAotZG9lcyBub3QgY29uZm9ybSB0byBQRVAgMzE0NyBmb3JtYXQsIFZhbHVlRXJyb3Igd2lsbCBiZSByYWlzZWQuIik7CiAKIC8qIERvYyBzdHJpbmdzICovCiAKIFB5RG9jX1NUUlZBUihkb2NfaW1wLAotIlRoaXMgbW9kdWxlIHByb3ZpZGVzIHRoZSBjb21wb25lbnRzIG5lZWRlZCB0byBidWlsZCB5b3VyIG93blxuXAotX19pbXBvcnRfXyBmdW5jdGlvbi4gIFVuZG9jdW1lbnRlZCBmdW5jdGlvbnMgYXJlIG9ic29sZXRlLiIpOwotCi1QeURvY19TVFJWQVIoZG9jX2ZpbmRfbW9kdWxlLAotImZpbmRfbW9kdWxlKG5hbWUsIFtwYXRoXSkgLT4gKGZpbGUsIGZpbGVuYW1lLCAoc3VmZml4LCBtb2RlLCB0eXBlKSlcblwKLVNlYXJjaCBmb3IgYSBtb2R1bGUuICBJZiBwYXRoIGlzIG9taXR0ZWQgb3IgTm9uZSwgc2VhcmNoIGZvciBhXG5cCi1idWlsdC1pbiwgZnJvemVuIG9yIHNwZWNpYWwgbW9kdWxlIGFuZCBjb250aW51ZSBzZWFyY2ggaW4gc3lzLnBhdGguXG5cCi1UaGUgbW9kdWxlIG5hbWUgY2Fubm90IGNvbnRhaW4gJy4nOyB0byBzZWFyY2ggZm9yIGEgc3VibW9kdWxlIG9mIGFcblwKLXBhY2thZ2UsIHBhc3MgdGhlIHN1Ym1vZHVsZSBuYW1lIGFuZCB0aGUgcGFja2FnZSdzIF9fcGF0aF9fLiIpOwotCi1QeURvY19TVFJWQVIoZG9jX2xvYWRfbW9kdWxlLAotImxvYWRfbW9kdWxlKG5hbWUsIGZpbGUsIGZpbGVuYW1lLCAoc3VmZml4LCBtb2RlLCB0eXBlKSkgLT4gbW9kdWxlXG5cCi1Mb2FkIGEgbW9kdWxlLCBnaXZlbiBpbmZvcm1hdGlvbiByZXR1cm5lZCBieSBmaW5kX21vZHVsZSgpLlxuXAotVGhlIG1vZHVsZSBuYW1lIG11c3QgaW5jbHVkZSB0aGUgZnVsbCBwYWNrYWdlIG5hbWUsIGlmIGFueS4iKTsKKyIoRXh0cmVtZWx5KSBsb3ctbGV2ZWwgaW1wb3J0IG1hY2hpbmVyeSBiaXRzIGFzIHVzZWQgYnkgaW1wb3J0bGliIGFuZCBpbXAuIik7CiAKIFB5RG9jX1NUUlZBUihkb2NfZ2V0X21hZ2ljLAogImdldF9tYWdpYygpIC0+IHN0cmluZ1xuXAogUmV0dXJuIHRoZSBtYWdpYyBudW1iZXIgZm9yIC5weWMgb3IgLnB5byBmaWxlcy4iKTsKIAotUHlEb2NfU1RSVkFSKGRvY19nZXRfdGFnLAotImdldF90YWcoKSAtPiBzdHJpbmdcblwKLVJldHVybiB0aGUgbWFnaWMgdGFnIGZvciAucHljIG9yIC5weW8gZmlsZXMuIik7Ci0KLVB5RG9jX1NUUlZBUihkb2NfZ2V0X3N1ZmZpeGVzLAotImdldF9zdWZmaXhlcygpIC0+IFsoc3VmZml4LCBtb2RlLCB0eXBlKSwgLi4uXVxuXAotUmV0dXJuIGEgbGlzdCBvZiAoc3VmZml4LCBtb2RlLCB0eXBlKSB0dXBsZXMgZGVzY3JpYmluZyB0aGUgZmlsZXNcblwKLXRoYXQgZmluZF9tb2R1bGUoKSBsb29rcyBmb3IuIik7Ci0KLVB5RG9jX1NUUlZBUihkb2NfbmV3X21vZHVsZSwKLSJuZXdfbW9kdWxlKG5hbWUpIC0+IG1vZHVsZVxuXAotQ3JlYXRlIGEgbmV3IG1vZHVsZS4gIERvIG5vdCBlbnRlciBpdCBpbiBzeXMubW9kdWxlcy5cblwKLVRoZSBtb2R1bGUgbmFtZSBtdXN0IGluY2x1ZGUgdGhlIGZ1bGwgcGFja2FnZSBuYW1lLCBpZiBhbnkuIik7CitQeURvY19TVFJWQVIoZG9jX2V4dGVuc2lvbl9zdWZmaXhlcywKKyJleHRlbnNpb25fc3VmZml4ZXMoKSAtPiBsaXN0IG9mIHN0cmluZ3NcblwKK1JldHVybnMgdGhlIGxpc3Qgb2YgZmlsZSBzdWZmaXhlcyB1c2VkIHRvIGlkZW50aWZ5IGV4dGVuc2lvbiBtb2R1bGVzLiIpOwogCiBQeURvY19TVFJWQVIoZG9jX2xvY2tfaGVsZCwKICJsb2NrX2hlbGQoKSAtPiBib29sZWFuXG5cCkBAIC0zNzI1LDE3OSArMjA4NSwyOSBAQAogT24gcGxhdGZvcm1zIHdpdGhvdXQgdGhyZWFkcywgdGhpcyBmdW5jdGlvbiBkb2VzIG5vdGhpbmcuIik7CiAKIHN0YXRpYyBQeU1ldGhvZERlZiBpbXBfbWV0aG9kc1tdID0gewotICAgIHsiZmluZF9tb2R1bGUiLCAgICAgIGltcF9maW5kX21vZHVsZSwgIE1FVEhfVkFSQVJHUywgZG9jX2ZpbmRfbW9kdWxlfSwKICAgICB7ImdldF9tYWdpYyIsICAgICAgICBpbXBfZ2V0X21hZ2ljLCAgICBNRVRIX05PQVJHUywgIGRvY19nZXRfbWFnaWN9LAotICAgIHsiZ2V0X3RhZyIsICAgICAgICAgIGltcF9nZXRfdGFnLCAgICAgIE1FVEhfTk9BUkdTLCAgZG9jX2dldF90YWd9LAotICAgIHsiZ2V0X3N1ZmZpeGVzIiwgaW1wX2dldF9zdWZmaXhlcywgTUVUSF9OT0FSR1MsICBkb2NfZ2V0X3N1ZmZpeGVzfSwKLSAgICB7ImxvYWRfbW9kdWxlIiwgICAgICBpbXBfbG9hZF9tb2R1bGUsICBNRVRIX1ZBUkFSR1MsIGRvY19sb2FkX21vZHVsZX0sCi0gICAgeyJuZXdfbW9kdWxlIiwgICAgICAgaW1wX25ld19tb2R1bGUsICAgTUVUSF9WQVJBUkdTLCBkb2NfbmV3X21vZHVsZX0sCisgICAgeyJleHRlbnNpb25fc3VmZml4ZXMiLCBpbXBfZXh0ZW5zaW9uX3N1ZmZpeGVzLCBNRVRIX05PQVJHUywKKyAgICAgICAgZG9jX2V4dGVuc2lvbl9zdWZmaXhlc30sCiAgICAgeyJsb2NrX2hlbGQiLCAgICAgICAgaW1wX2xvY2tfaGVsZCwgICAgTUVUSF9OT0FSR1MsICBkb2NfbG9ja19oZWxkfSwKICAgICB7ImFjcXVpcmVfbG9jayIsIGltcF9hY3F1aXJlX2xvY2ssIE1FVEhfTk9BUkdTLCAgZG9jX2FjcXVpcmVfbG9ja30sCiAgICAgeyJyZWxlYXNlX2xvY2siLCBpbXBfcmVsZWFzZV9sb2NrLCBNRVRIX05PQVJHUywgIGRvY19yZWxlYXNlX2xvY2t9LAotICAgIHsicmVsb2FkIiwgICAgICAgaW1wX3JlbG9hZCwgICAgICAgTUVUSF9PLCAgICAgICBkb2NfcmVsb2FkfSwKLSAgICB7ImNhY2hlX2Zyb21fc291cmNlIiwgKFB5Q0Z1bmN0aW9uKWltcF9jYWNoZV9mcm9tX3NvdXJjZSwKLSAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgZG9jX2NhY2hlX2Zyb21fc291cmNlfSwKLSAgICB7InNvdXJjZV9mcm9tX2NhY2hlIiwgKFB5Q0Z1bmN0aW9uKWltcF9zb3VyY2VfZnJvbV9jYWNoZSwKLSAgICAgTUVUSF9WQVJBUkdTIHwgTUVUSF9LRVlXT1JEUywgZG9jX3NvdXJjZV9mcm9tX2NhY2hlfSwKLSAgICAvKiBUaGUgcmVzdCBhcmUgb2Jzb2xldGUgKi8KICAgICB7ImdldF9mcm96ZW5fb2JqZWN0IiwgICAgICAgaW1wX2dldF9mcm96ZW5fb2JqZWN0LCAgTUVUSF9WQVJBUkdTfSwKICAgICB7ImlzX2Zyb3plbl9wYWNrYWdlIiwgICBpbXBfaXNfZnJvemVuX3BhY2thZ2UsICBNRVRIX1ZBUkFSR1N9LAogICAgIHsiaW5pdF9idWlsdGluIiwgICAgICAgICAgICBpbXBfaW5pdF9idWlsdGluLCAgICAgICBNRVRIX1ZBUkFSR1N9LAogICAgIHsiaW5pdF9mcm96ZW4iLCAgICAgICAgICAgICBpbXBfaW5pdF9mcm96ZW4sICAgICAgICBNRVRIX1ZBUkFSR1N9LAogICAgIHsiaXNfYnVpbHRpbiIsICAgICAgICAgICAgICBpbXBfaXNfYnVpbHRpbiwgICAgICAgICBNRVRIX1ZBUkFSR1N9LAogICAgIHsiaXNfZnJvemVuIiwgICAgICAgICAgICAgICBpbXBfaXNfZnJvemVuLCAgICAgICAgICBNRVRIX1ZBUkFSR1N9LAotICAgIHsibG9hZF9jb21waWxlZCIsICAgICAgICAgICBpbXBfbG9hZF9jb21waWxlZCwgICAgICBNRVRIX1ZBUkFSR1N9LAogI2lmZGVmIEhBVkVfRFlOQU1JQ19MT0FESU5HCiAgICAgeyJsb2FkX2R5bmFtaWMiLCAgICAgICAgICAgIGltcF9sb2FkX2R5bmFtaWMsICAgICAgIE1FVEhfVkFSQVJHU30sCiAjZW5kaWYKLSAgICB7ImxvYWRfcGFja2FnZSIsICAgICAgICAgICAgaW1wX2xvYWRfcGFja2FnZSwgICAgICAgTUVUSF9WQVJBUkdTfSwKLSAgICB7ImxvYWRfc291cmNlIiwgICAgICAgICAgICAgaW1wX2xvYWRfc291cmNlLCAgICAgICAgTUVUSF9WQVJBUkdTfSwKKyAgICB7Il9maXhfY29fZmlsZW5hbWUiLCAgICAgICAgaW1wX2ZpeF9jb19maWxlbmFtZSwgICAgTUVUSF9WQVJBUkdTfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgICAgICAgICAgTlVMTH0gICAgICAgICAgIC8qIHNlbnRpbmVsICovCiB9OwogCi1zdGF0aWMgaW50Ci1zZXRpbnQoUHlPYmplY3QgKmQsIGNoYXIgKm5hbWUsIGludCB2YWx1ZSkKLXsKLSAgICBQeU9iamVjdCAqdjsKLSAgICBpbnQgZXJyOwotCi0gICAgdiA9IFB5TG9uZ19Gcm9tTG9uZygobG9uZyl2YWx1ZSk7Ci0gICAgZXJyID0gUHlEaWN0X1NldEl0ZW1TdHJpbmcoZCwgbmFtZSwgdik7Ci0gICAgUHlfWERFQ1JFRih2KTsKLSAgICByZXR1cm4gZXJyOwotfQotCi10eXBlZGVmIHN0cnVjdCB7Ci0gICAgUHlPYmplY3RfSEVBRAotfSBOdWxsSW1wb3J0ZXI7Ci0KLXN0YXRpYyBpbnQKLU51bGxJbXBvcnRlcl9pbml0KE51bGxJbXBvcnRlciAqc2VsZiwgUHlPYmplY3QgKmFyZ3MsIFB5T2JqZWN0ICprd2RzKQotewotI2lmbmRlZiBNU19XSU5ET1dTCi0gICAgUHlPYmplY3QgKnBhdGg7Ci0gICAgc3RydWN0IHN0YXQgc3RhdGJ1ZjsKLSAgICBpbnQgcnY7Ci0KLSAgICBpZiAoIV9QeUFyZ19Ob0tleXdvcmRzKCJOdWxsSW1wb3J0ZXIoKSIsIGt3ZHMpKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk8mOk51bGxJbXBvcnRlciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9GU0NvbnZlcnRlciwgJnBhdGgpKQotICAgICAgICByZXR1cm4gLTE7Ci0KLSAgICBpZiAoUHlCeXRlc19HRVRfU0laRShwYXRoKSA9PSAwKSB7Ci0gICAgICAgIFB5X0RFQ1JFRihwYXRoKTsKLSAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0ltcG9ydEVycm9yLCAiZW1wdHkgcGF0aG5hbWUiKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLQotICAgIHJ2ID0gc3RhdChQeUJ5dGVzX0FTX1NUUklORyhwYXRoKSwgJnN0YXRidWYpOwotICAgIFB5X0RFQ1JFRihwYXRoKTsKLSAgICBpZiAocnYgPT0gMCkgewotICAgICAgICAvKiBpdCBleGlzdHMgKi8KLSAgICAgICAgaWYgKFNfSVNESVIoc3RhdGJ1Zi5zdF9tb2RlKSkgewotICAgICAgICAgICAgLyogaXQncyBhIGRpcmVjdG9yeSAqLwotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX0ltcG9ydEVycm9yLCAiZXhpc3RpbmcgZGlyZWN0b3J5Iik7Ci0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIH0KLSAgICB9Ci0jZWxzZSAvKiBNU19XSU5ET1dTICovCi0gICAgUHlPYmplY3QgKnBhdGhvYmo7Ci0gICAgRFdPUkQgcnY7Ci0gICAgd2NoYXJfdCAqcGF0aDsKLQotICAgIGlmICghX1B5QXJnX05vS2V5d29yZHMoIk51bGxJbXBvcnRlcigpIiwga3dkcykpCi0gICAgICAgIHJldHVybiAtMTsKLQotICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZShhcmdzLCAiVTpOdWxsSW1wb3J0ZXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmcGF0aG9iaikpCi0gICAgICAgIHJldHVybiAtMTsKLQotICAgIGlmIChQeVVuaWNvZGVfR0VUX1NJWkUocGF0aG9iaikgPT0gMCkgewotICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfSW1wb3J0RXJyb3IsICJlbXB0eSBwYXRobmFtZSIpOwotICAgICAgICByZXR1cm4gLTE7Ci0gICAgfQotCi0gICAgcGF0aCA9IFB5VW5pY29kZV9Bc1dpZGVDaGFyU3RyaW5nKHBhdGhvYmosIE5VTEwpOwotICAgIGlmIChwYXRoID09IE5VTEwpCi0gICAgICAgIHJldHVybiAtMTsKLSAgICAvKiBzZWUgaXNzdWUxMjkzIGFuZCBpc3N1ZTM2Nzc6Ci0gICAgICogc3RhdCgpIG9uIFdpbmRvd3MgZG9lc24ndCByZWNvZ25pc2UgcGF0aHMgbGlrZQotICAgICAqICJlOlxcc2hhcmVkXFwiIGFuZCAiXFxcXHdoaXRlcmFiLWMyem5saFxcc2hhcmVkIiBhcyBkaXJzLgotICAgICAqLwotICAgIHJ2ID0gR2V0RmlsZUF0dHJpYnV0ZXNXKHBhdGgpOwotICAgIFB5TWVtX0ZyZWUocGF0aCk7Ci0gICAgaWYgKHJ2ICE9IElOVkFMSURfRklMRV9BVFRSSUJVVEVTKSB7Ci0gICAgICAgIC8qIGl0IGV4aXN0cyAqLwotICAgICAgICBpZiAocnYgJiBGSUxFX0FUVFJJQlVURV9ESVJFQ1RPUlkpIHsKLSAgICAgICAgICAgIC8qIGl0J3MgYSBkaXJlY3RvcnkgKi8KLSAgICAgICAgICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19JbXBvcnRFcnJvciwgImV4aXN0aW5nIGRpcmVjdG9yeSIpOwotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICB9Ci0gICAgfQotI2VuZGlmCi0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0YXRpYyBQeU9iamVjdCAqCi1OdWxsSW1wb3J0ZXJfZmluZF9tb2R1bGUoTnVsbEltcG9ydGVyICpzZWxmLCBQeU9iamVjdCAqYXJncykKLXsKLSAgICBQeV9SRVRVUk5fTk9ORTsKLX0KLQotc3RhdGljIFB5TWV0aG9kRGVmIE51bGxJbXBvcnRlcl9tZXRob2RzW10gPSB7Ci0gICAgeyJmaW5kX21vZHVsZSIsIChQeUNGdW5jdGlvbilOdWxsSW1wb3J0ZXJfZmluZF9tb2R1bGUsIE1FVEhfVkFSQVJHUywKLSAgICAgIkFsd2F5cyByZXR1cm4gTm9uZSIKLSAgICB9LAotICAgIHtOVUxMfSAgLyogU2VudGluZWwgKi8KLX07Ci0KLQotUHlUeXBlT2JqZWN0IFB5TnVsbEltcG9ydGVyX1R5cGUgPSB7Ci0gICAgUHlWYXJPYmplY3RfSEVBRF9JTklUKE5VTEwsIDApCi0gICAgImltcC5OdWxsSW1wb3J0ZXIiLCAgICAgICAgLyp0cF9uYW1lKi8KLSAgICBzaXplb2YoTnVsbEltcG9ydGVyKSwgICAgICAvKnRwX2Jhc2ljc2l6ZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9pdGVtc2l6ZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9kZWFsbG9jKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3ByaW50Ki8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2dldGF0dHIqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfc2V0YXR0ciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yZXNlcnZlZCovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9yZXByKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX251bWJlciovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19zZXF1ZW5jZSovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyp0cF9hc19tYXBwaW5nKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2hhc2ggKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2NhbGwqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qdHBfc3RyKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2dldGF0dHJvKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX3NldGF0dHJvKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKnRwX2FzX2J1ZmZlciovCi0gICAgUHlfVFBGTEFHU19ERUZBVUxULCAgICAgICAgLyp0cF9mbGFncyovCi0gICAgIk51bGwgaW1wb3J0ZXIgb2JqZWN0IiwgICAgLyogdHBfZG9jICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3RyYXZlcnNlICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2NsZWFyICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3JpY2hjb21wYXJlICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX3dlYWtsaXN0b2Zmc2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2l0ZXIgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfaXRlcm5leHQgKi8KLSAgICBOdWxsSW1wb3J0ZXJfbWV0aG9kcywgICAgICAvKiB0cF9tZXRob2RzICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfbWVtYmVycyAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2dldHNldCAqLwotICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRwX2Jhc2UgKi8KLSAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAvKiB0cF9kaWN0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3JfZ2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGVzY3Jfc2V0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfZGljdG9mZnNldCAqLwotICAgIChpbml0cHJvYylOdWxsSW1wb3J0ZXJfaW5pdCwgICAgICAvKiB0cF9pbml0ICovCi0gICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgLyogdHBfYWxsb2MgKi8KLSAgICBQeVR5cGVfR2VuZXJpY05ldyAgICAgICAgICAvKiB0cF9uZXcgKi8KLX07CiAKIHN0YXRpYyBzdHJ1Y3QgUHlNb2R1bGVEZWYgaW1wbW9kdWxlID0gewogICAgIFB5TW9kdWxlRGVmX0hFQURfSU5JVCwKLSAgICAiaW1wIiwKKyAgICAiX2ltcCIsCiAgICAgZG9jX2ltcCwKICAgICAwLAogICAgIGltcF9tZXRob2RzLApAQCAtMzkxMiw5ICsyMTIyLDYgQEAKIHsKICAgICBQeU9iamVjdCAqbSwgKmQ7CiAKLSAgICBpZiAoUHlUeXBlX1JlYWR5KCZQeU51bGxJbXBvcnRlcl9UeXBlKSA8IDApCi0gICAgICAgIHJldHVybiBOVUxMOwotCiAgICAgbSA9IFB5TW9kdWxlX0NyZWF0ZSgmaW1wbW9kdWxlKTsKICAgICBpZiAobSA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWx1cmU7CkBAIC0zOTIyLDE5ICsyMTI5LDYgQEAKICAgICBpZiAoZCA9PSBOVUxMKQogICAgICAgICBnb3RvIGZhaWx1cmU7CiAKLSAgICBpZiAoc2V0aW50KGQsICJTRUFSQ0hfRVJST1IiLCBTRUFSQ0hfRVJST1IpIDwgMCkgZ290byBmYWlsdXJlOwotICAgIGlmIChzZXRpbnQoZCwgIlBZX1NPVVJDRSIsIFBZX1NPVVJDRSkgPCAwKSBnb3RvIGZhaWx1cmU7Ci0gICAgaWYgKHNldGludChkLCAiUFlfQ09NUElMRUQiLCBQWV9DT01QSUxFRCkgPCAwKSBnb3RvIGZhaWx1cmU7Ci0gICAgaWYgKHNldGludChkLCAiQ19FWFRFTlNJT04iLCBDX0VYVEVOU0lPTikgPCAwKSBnb3RvIGZhaWx1cmU7Ci0gICAgaWYgKHNldGludChkLCAiUFlfUkVTT1VSQ0UiLCBQWV9SRVNPVVJDRSkgPCAwKSBnb3RvIGZhaWx1cmU7Ci0gICAgaWYgKHNldGludChkLCAiUEtHX0RJUkVDVE9SWSIsIFBLR19ESVJFQ1RPUlkpIDwgMCkgZ290byBmYWlsdXJlOwotICAgIGlmIChzZXRpbnQoZCwgIkNfQlVJTFRJTiIsIENfQlVJTFRJTikgPCAwKSBnb3RvIGZhaWx1cmU7Ci0gICAgaWYgKHNldGludChkLCAiUFlfRlJPWkVOIiwgUFlfRlJPWkVOKSA8IDApIGdvdG8gZmFpbHVyZTsKLSAgICBpZiAoc2V0aW50KGQsICJQWV9DT0RFUkVTT1VSQ0UiLCBQWV9DT0RFUkVTT1VSQ0UpIDwgMCkgZ290byBmYWlsdXJlOwotICAgIGlmIChzZXRpbnQoZCwgIklNUF9IT09LIiwgSU1QX0hPT0spIDwgMCkgZ290byBmYWlsdXJlOwotCi0gICAgUHlfSU5DUkVGKCZQeU51bGxJbXBvcnRlcl9UeXBlKTsKLSAgICBQeU1vZHVsZV9BZGRPYmplY3QobSwgIk51bGxJbXBvcnRlciIsIChQeU9iamVjdCAqKSZQeU51bGxJbXBvcnRlcl9UeXBlKTsKICAgICByZXR1cm4gbTsKICAgZmFpbHVyZToKICAgICBQeV9YREVDUkVGKG0pOwpkaWZmIC0tZ2l0IGEvUHl0aG9uL2ltcG9ydGRsLmMgYi9QeXRob24vaW1wb3J0ZGwuYwppbmRleCA5Y2FlZDQ1Li45NDJlNGI4IDEwMDY0NAotLS0gYS9QeXRob24vaW1wb3J0ZGwuYworKysgYi9QeXRob24vaW1wb3J0ZGwuYwpAQCAtMTIsNTAgKzEyLDczIEBACiAKICNpbmNsdWRlICJpbXBvcnRkbC5oIgogCi1leHRlcm4gZGxfZnVuY3B0ciBfUHlJbXBvcnRfR2V0RHluTG9hZEZ1bmMoY29uc3QgY2hhciAqbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpzaG9ydG5hbWUsCisjaWZkZWYgTVNfV0lORE9XUworZXh0ZXJuIGRsX2Z1bmNwdHIgX1B5SW1wb3J0X0dldER5bkxvYWRXaW5kb3dzKGNvbnN0IGNoYXIgKnNob3J0bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeU9iamVjdCAqcGF0aG5hbWUsIEZJTEUgKmZwKTsKKyNlbHNlCitleHRlcm4gZGxfZnVuY3B0ciBfUHlJbXBvcnRfR2V0RHluTG9hZEZ1bmMoY29uc3QgY2hhciAqc2hvcnRuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnBhdGhuYW1lLCBGSUxFICpmcCk7Ci0KLQorI2VuZGlmCiAKIFB5T2JqZWN0ICoKLV9QeUltcG9ydF9Mb2FkRHluYW1pY01vZHVsZShjaGFyICpuYW1lLCBjaGFyICpwYXRobmFtZSwgRklMRSAqZnApCitfUHlJbXBvcnRfTG9hZER5bmFtaWNNb2R1bGUoUHlPYmplY3QgKm5hbWUsIFB5T2JqZWN0ICpwYXRoLCBGSUxFICpmcCkKIHsKLSAgICBQeU9iamVjdCAqbTsKLSAgICBQeU9iamVjdCAqcGF0aDsKLSAgICBjaGFyICpsYXN0ZG90LCAqc2hvcnRuYW1lLCAqcGFja2FnZWNvbnRleHQsICpvbGRjb250ZXh0OworICAgIFB5T2JqZWN0ICptID0gTlVMTDsKKyNpZm5kZWYgTVNfV0lORE9XUworICAgIFB5T2JqZWN0ICpwYXRoYnl0ZXM7CisjZW5kaWYKKyAgICBQeU9iamVjdCAqbmFtZWFzY2lpOworICAgIGNoYXIgKm5hbWVzdHIsICpsYXN0ZG90LCAqc2hvcnRuYW1lLCAqcGFja2FnZWNvbnRleHQsICpvbGRjb250ZXh0OwogICAgIGRsX2Z1bmNwdHIgcDA7CiAgICAgUHlPYmplY3QqICgqcCkodm9pZCk7CiAgICAgc3RydWN0IFB5TW9kdWxlRGVmICpkZWY7Ci0gICAgUHlPYmplY3QgKnJlc3VsdDsKIAotICAgIHBhdGggPSBQeVVuaWNvZGVfRGVjb2RlRlNEZWZhdWx0KHBhdGhuYW1lKTsKLSAgICBpZiAocGF0aCA9PSBOVUxMKQorICAgIG0gPSBfUHlJbXBvcnRfRmluZEV4dGVuc2lvbk9iamVjdChuYW1lLCBwYXRoKTsKKyAgICBpZiAobSAhPSBOVUxMKSB7CisgICAgICAgIFB5X0lOQ1JFRihtKTsKKyAgICAgICAgcmV0dXJuIG07CisgICAgfQorCisgICAgLyogbmFtZSBtdXN0IGJlIGVuY29kYWJsZSB0byBBU0NJSSBiZWNhdXNlIGR5bmFtaWMgbW9kdWxlIG11c3QgaGF2ZSBhCisgICAgICAgZnVuY3Rpb24gY2FsbGVkICJQeUluaXRfTkFNRSIsIHRoZXkgYXJlIHdyaXR0ZW4gaW4gQywgYW5kIHRoZSBDIGxhbmd1YWdlCisgICAgICAgZG9lc24ndCBhY2NlcHQgbm9uLUFTQ0lJIGlkZW50aWZpZXJzLiAqLworICAgIG5hbWVhc2NpaSA9IFB5VW5pY29kZV9Bc0VuY29kZWRTdHJpbmcobmFtZSwgImFzY2lpIiwgTlVMTCk7CisgICAgaWYgKG5hbWVhc2NpaSA9PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKIAotICAgIGlmICgobSA9IF9QeUltcG9ydF9GaW5kRXh0ZW5zaW9uVW5pY29kZShuYW1lLCBwYXRoKSkgIT0gTlVMTCkgewotICAgICAgICBQeV9JTkNSRUYobSk7Ci0gICAgICAgIHJlc3VsdCA9IG07Ci0gICAgICAgIGdvdG8gZmluYWxseTsKLSAgICB9Ci0gICAgbGFzdGRvdCA9IHN0cnJjaHIobmFtZSwgJy4nKTsKKyAgICBuYW1lc3RyID0gUHlCeXRlc19BU19TVFJJTkcobmFtZWFzY2lpKTsKKyAgICBpZiAobmFtZXN0ciA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgbGFzdGRvdCA9IHN0cnJjaHIobmFtZXN0ciwgJy4nKTsKICAgICBpZiAobGFzdGRvdCA9PSBOVUxMKSB7CiAgICAgICAgIHBhY2thZ2Vjb250ZXh0ID0gTlVMTDsKLSAgICAgICAgc2hvcnRuYW1lID0gbmFtZTsKKyAgICAgICAgc2hvcnRuYW1lID0gbmFtZXN0cjsKICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIHBhY2thZ2Vjb250ZXh0ID0gbmFtZTsKKyAgICAgICAgcGFja2FnZWNvbnRleHQgPSBuYW1lc3RyOwogICAgICAgICBzaG9ydG5hbWUgPSBsYXN0ZG90KzE7CiAgICAgfQogCi0gICAgcDAgPSBfUHlJbXBvcnRfR2V0RHluTG9hZEZ1bmMobmFtZSwgc2hvcnRuYW1lLCBwYXRobmFtZSwgZnApOworI2lmZGVmIE1TX1dJTkRPV1MKKyAgICBwMCA9IF9QeUltcG9ydF9HZXREeW5Mb2FkV2luZG93cyhzaG9ydG5hbWUsIHBhdGgsIGZwKTsKKyNlbHNlCisgICAgcGF0aGJ5dGVzID0gUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdChwYXRoKTsKKyAgICBpZiAocGF0aGJ5dGVzID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgcDAgPSBfUHlJbXBvcnRfR2V0RHluTG9hZEZ1bmMoc2hvcnRuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5Qnl0ZXNfQVNfU1RSSU5HKHBhdGhieXRlcyksIGZwKTsKKyAgICBQeV9ERUNSRUYocGF0aGJ5dGVzKTsKKyNlbmRpZgogICAgIHAgPSAoUHlPYmplY3QqKCopKHZvaWQpKXAwOwogICAgIGlmIChQeUVycl9PY2N1cnJlZCgpKQogICAgICAgICBnb3RvIGVycm9yOwogICAgIGlmIChwID09IE5VTEwpIHsKLSAgICAgICAgUHlFcnJfRm9ybWF0KFB5RXhjX0ltcG9ydEVycm9yLAotICAgICAgICAgICAiZHluYW1pYyBtb2R1bGUgZG9lcyBub3QgZGVmaW5lIGluaXQgZnVuY3Rpb24gKFB5SW5pdF8lLjIwMHMpIiwKLSAgICAgICAgICAgICAgICAgICAgIHNob3J0bmFtZSk7CisgICAgICAgIFB5T2JqZWN0ICptc2cgPSBQeVVuaWNvZGVfRnJvbUZvcm1hdCgiZHluYW1pYyBtb2R1bGUgZG9lcyBub3QgZGVmaW5lICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbml0IGZ1bmN0aW9uIChQeUluaXRfJXMpIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0bmFtZSk7CisgICAgICAgIFB5RXJyX1NldEltcG9ydEVycm9yKG1zZywgbmFtZSwgcGF0aCk7CisgICAgICAgIFB5X0RFQ1JFRihtc2cpOwogICAgICAgICBnb3RvIGVycm9yOwogICAgIH0KICAgICBvbGRjb250ZXh0ID0gX1B5X1BhY2thZ2VDb250ZXh0OwpAQCAtNjYsNyArODksNiBAQAogICAgICAgICBnb3RvIGVycm9yOwogCiAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpIHsKLSAgICAgICAgUHlfREVDUkVGKG0pOwogICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfU3lzdGVtRXJyb3IsCiAgICAgICAgICAgICAgICAgICAgICAiaW5pdGlhbGl6YXRpb24gb2YgJXMgcmFpc2VkIHVucmVwb3J0ZWQgZXhjZXB0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgIHNob3J0bmFtZSk7CkBAIC04MywyMCArMTA1LDE1IEBACiAgICAgZWxzZQogICAgICAgICBQeV9JTkNSRUYocGF0aCk7CiAKLSAgICBpZiAoX1B5SW1wb3J0X0ZpeHVwRXh0ZW5zaW9uVW5pY29kZShtLCBuYW1lLCBwYXRoKSA8IDApCisgICAgaWYgKF9QeUltcG9ydF9GaXh1cEV4dGVuc2lvbk9iamVjdChtLCBuYW1lLCBwYXRoKSA8IDApCiAgICAgICAgIGdvdG8gZXJyb3I7Ci0gICAgaWYgKFB5X1ZlcmJvc2VGbGFnKQotICAgICAgICBQeVN5c19Xcml0ZVN0ZGVycigKLSAgICAgICAgICAgICJpbXBvcnQgJXMgIyBkeW5hbWljYWxseSBsb2FkZWQgZnJvbSAlc1xuIiwKLSAgICAgICAgICAgIG5hbWUsIHBhdGhuYW1lKTsKLSAgICByZXN1bHQgPSBtOwotICAgIGdvdG8gZmluYWxseTsKKyAgICBQeV9ERUNSRUYobmFtZWFzY2lpKTsKKyAgICByZXR1cm4gbTsKIAogZXJyb3I6Ci0gICAgcmVzdWx0ID0gTlVMTDsKLWZpbmFsbHk6Ci0gICAgUHlfREVDUkVGKHBhdGgpOwotICAgIHJldHVybiByZXN1bHQ7CisgICAgUHlfREVDUkVGKG5hbWVhc2NpaSk7CisgICAgUHlfWERFQ1JFRihtKTsKKyAgICByZXR1cm4gTlVMTDsKIH0KIAogI2VuZGlmIC8qIEhBVkVfRFlOQU1JQ19MT0FESU5HICovCmRpZmYgLS1naXQgYS9QeXRob24vaW1wb3J0ZGwuaCBiL1B5dGhvbi9pbXBvcnRkbC5oCmluZGV4IGI0ZDIxYmUuLjZiOWNmNzUgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9pbXBvcnRkbC5oCisrKyBiL1B5dGhvbi9pbXBvcnRkbC5oCkBAIC02LDI5ICs2LDkgQEAKICNlbmRpZgogCiAKLS8qIERlZmluaXRpb25zIGZvciBkeW5hbWljIGxvYWRpbmcgb2YgZXh0ZW5zaW9uIG1vZHVsZXMgKi8KLWVudW0gZmlsZXR5cGUgewotICAgIFNFQVJDSF9FUlJPUiwKLSAgICBQWV9TT1VSQ0UsCi0gICAgUFlfQ09NUElMRUQsCi0gICAgQ19FWFRFTlNJT04sCi0gICAgUFlfUkVTT1VSQ0UsIC8qIE1hYyBvbmx5ICovCi0gICAgUEtHX0RJUkVDVE9SWSwKLSAgICBDX0JVSUxUSU4sCi0gICAgUFlfRlJPWkVOLAotICAgIFBZX0NPREVSRVNPVVJDRSwgLyogTWFjIG9ubHkgKi8KLSAgICBJTVBfSE9PSwotfTsKK2V4dGVybiBjb25zdCBjaGFyICpfUHlJbXBvcnRfRHluTG9hZEZpbGV0YWJbXTsKIAotc3RydWN0IGZpbGVkZXNjciB7Ci0gICAgY2hhciAqc3VmZml4OwotICAgIGNoYXIgKm1vZGU7Ci0gICAgZW51bSBmaWxldHlwZSB0eXBlOwotfTsKLWV4dGVybiBzdHJ1Y3QgZmlsZWRlc2NyICogX1B5SW1wb3J0X0ZpbGV0YWI7Ci1leHRlcm4gY29uc3Qgc3RydWN0IGZpbGVkZXNjciBfUHlJbXBvcnRfRHluTG9hZEZpbGV0YWJbXTsKLQotZXh0ZXJuIFB5T2JqZWN0ICpfUHlJbXBvcnRfTG9hZER5bmFtaWNNb2R1bGUoY2hhciAqbmFtZSwgY2hhciAqcGF0aG5hbWUsCitleHRlcm4gUHlPYmplY3QgKl9QeUltcG9ydF9Mb2FkRHluYW1pY01vZHVsZShQeU9iamVjdCAqbmFtZSwgUHlPYmplY3QgKnBhdGhuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMRSAqKTsKIAogLyogTWF4IGxlbmd0aCBvZiBtb2R1bGUgc3VmZml4IHNlYXJjaGVkIGZvciAtLSBhY2NvbW1vZGF0ZXMgIm1vZHVsZS5zbGIiICovCmRpZmYgLS1naXQgYS9QeXRob24vaW1wb3J0bGliLmggYi9QeXRob24vaW1wb3J0bGliLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg3NGE5NwotLS0gL2Rldi9udWxsCisrKyBiL1B5dGhvbi9pbXBvcnRsaWIuaApAQCAtMCwwICsxLDM5NDMgQEAKKy8qIEF1dG8tZ2VuZXJhdGVkIGJ5IE1vZHVsZXMvX2ZyZWV6ZV9pbXBvcnRsaWIuYyAqLwordW5zaWduZWQgY2hhciBfUHlfTV9faW1wb3J0bGliW10gPSB7CisgICAgOTksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsNiwwLDAsCisgICAgMCw2NCwwLDAsMCwxMTUsNTksMywwLDAsMTAwLDAsMCw5MCwwLDAsCisgICAgMTAwLDEwNywwLDkwLDEsMCwxMDAsNCwwLDEwMCw1LDAsMTMyLDAsMCw5MCwKKyAgICAyLDAsMTAwLDYsMCwxMDAsNywwLDEzMiwwLDAsOTAsMywwLDEwMCw4LAorICAgIDAsMTAwLDksMCwxMzIsMCwwLDkwLDQsMCwxMDAsMTAsMCwxMDAsMTEsMCwKKyAgICAxMzIsMCwwLDkwLDUsMCwxMDAsMTIsMCwxMDAsMTMsMCwxMzIsMCwwLDkwLAorICAgIDYsMCwxMDAsMTQsMCwxMDAsMTUsMCwxMzIsMCwwLDkwLDcsMCwxMDAsMTYsCisgICAgMCwxMDAsMTcsMCwxMzIsMCwwLDkwLDgsMCwxMDAsMTgsMCwxMDAsMTksMCwKKyAgICAxMzIsMCwwLDkwLDksMCwxMDAsMjAsMCwxMDAsMjEsMCwxMzIsMCwwLDkwLAorICAgIDEwLDAsMTAwLDIyLDAsMTAwLDIzLDAsMTMyLDAsMCw5MCwxMSwwLDEwMSwxMiwKKyAgICAwLDEwMSwxMSwwLDEwNiwxMywwLDEzMSwxLDAsOTAsMTQsMCwxMDAsMjQsMCwKKyAgICAxMDAsMjUsMCwxMzIsMCwwLDkwLDE1LDAsMTA1LDAsMCw5MCwxNiwwLDEwNSwKKyAgICAwLDAsOTAsMTcsMCw3MSwxMDAsMjYsMCwxMDAsMjcsMCwxMzIsMCwwLDEwMCwKKyAgICAyNywwLDEwMSwxOCwwLDEzMSwzLDAsOTAsMTksMCw3MSwxMDAsMjgsMCwxMDAsCisgICAgMjksMCwxMzIsMCwwLDEwMCwyOSwwLDEzMSwyLDAsOTAsMjAsMCw3MSwxMDAsCisgICAgMzAsMCwxMDAsMzEsMCwxMzIsMCwwLDEwMCwzMSwwLDEzMSwyLDAsOTAsMjEsCisgICAgMCwxMDAsMzIsMCwxMDAsMzMsMCwxMzIsMCwwLDkwLDIyLDAsMTAwLDM0LDAsCisgICAgMTAwLDM1LDAsMTMyLDAsMCw5MCwyMywwLDEwMCwzNiwwLDkwLDI0LDAsMTAwLAorICAgIDM3LDAsMTAzLDEsMCw5MCwyNSwwLDEwMCwzOCwwLDEwMywxLDAsOTAsMjYsCisgICAgMCwxMDAsMzksMCwxMDMsMSwwLDkwLDI3LDAsMTAxLDI2LDAsOTAsMjgsMCwKKyAgICAxMDAsMTA2LDAsMTAwLDQwLDAsMTAwLDQxLDAsMTMyLDEsMCw5MCwzMCwwLDEwMCwKKyAgICA0MiwwLDEwMCw0MywwLDEzMiwwLDAsOTAsMzEsMCwxMDAsNDQsMCwxMDAsNDUsCisgICAgMCwxMzIsMCwwLDkwLDMyLDAsMTAwLDQ2LDAsMTAwLDQ3LDAsMTMyLDAsMCwKKyAgICA5MCwzMywwLDEwMCw0OCwwLDEwMCw0OSwwLDEzMiwwLDAsOTAsMzQsMCwxMDAsCisgICAgNTAsMCwxMDAsNTEsMCwxMzIsMCwwLDkwLDM1LDAsMTAwLDUyLDAsMTAwLDUzLAorICAgIDAsMTMyLDAsMCw5MCwzNiwwLDEwMCw1NCwwLDEwMCw1NSwwLDEzMiwwLDAsCisgICAgOTAsMzcsMCw3MSwxMDAsNTYsMCwxMDAsNTcsMCwxMzIsMCwwLDEwMCw1NywwLAorICAgIDEzMSwyLDAsOTAsMzgsMCw3MSwxMDAsNTgsMCwxMDAsNTksMCwxMzIsMCwwLAorICAgIDEwMCw1OSwwLDEzMSwyLDAsOTAsMzksMCw3MSwxMDAsNjAsMCwxMDAsNjEsMCwKKyAgICAxMzIsMCwwLDEwMCw2MSwwLDEzMSwyLDAsOTAsNDAsMCw3MSwxMDAsNjIsMCwKKyAgICAxMDAsNjMsMCwxMzIsMCwwLDEwMCw2MywwLDEwMSw0MCwwLDEzMSwzLDAsOTAsCisgICAgNDEsMCw3MSwxMDAsNjQsMCwxMDAsNjUsMCwxMzIsMCwwLDEwMCw2NSwwLDEzMSwKKyAgICAyLDAsOTAsNDIsMCw3MSwxMDAsNjYsMCwxMDAsNjcsMCwxMzIsMCwwLDEwMCwKKyAgICA2NywwLDEwMSw0MiwwLDEwMSw0MSwwLDEzMSw0LDAsOTAsNDMsMCw3MSwxMDAsCisgICAgNjgsMCwxMDAsNjksMCwxMzIsMCwwLDEwMCw2OSwwLDEwMSw0MiwwLDEwMSw0MCwKKyAgICAwLDEzMSw0LDAsOTAsNDQsMCw3MSwxMDAsNzAsMCwxMDAsNzEsMCwxMzIsMCwKKyAgICAwLDEwMCw3MSwwLDEzMSwyLDAsOTAsNDUsMCw3MSwxMDAsNzIsMCwxMDAsNzMsCisgICAgMCwxMzIsMCwwLDEwMCw3MywwLDEzMSwyLDAsOTAsNDYsMCw3MSwxMDAsNzQsCisgICAgMCwxMDAsNzUsMCwxMzIsMCwwLDEwMCw3NSwwLDEzMSwyLDAsOTAsNDcsMCwKKyAgICA3MSwxMDAsNzYsMCwxMDAsNzcsMCwxMzIsMCwwLDEwMCw3NywwLDEzMSwyLDAsCisgICAgOTAsNDgsMCw3MSwxMDAsNzgsMCwxMDAsNzksMCwxMzIsMCwwLDEwMCw3OSwwLAorICAgIDEzMSwyLDAsOTAsNDksMCw3MSwxMDAsODAsMCwxMDAsODEsMCwxMzIsMCwwLAorICAgIDEwMCw4MSwwLDEzMSwyLDAsOTAsNTAsMCwxMDAsODIsMCwxMDAsODMsMCwxMzIsCisgICAgMCwwLDkwLDUxLDAsMTAwLDg0LDAsMTAwLDg1LDAsMTMyLDAsMCw5MCw1MiwKKyAgICAwLDEwMCw4NiwwLDEwMCw4NywwLDEzMiwwLDAsOTAsNTMsMCwxMDAsODgsMCwKKyAgICA5MCw1NCwwLDEwMCw4OSwwLDEwMCw5MCwwLDEzMiwwLDAsOTAsNTUsMCwxMDAsCisgICAgOTEsMCwxMDAsOTIsMCwxMzIsMCwwLDkwLDU2LDAsMTAwLDEwNiwwLDEwMCw5MywKKyAgICAwLDEwMCw5NCwwLDEwMCw5NSwwLDEzMiwyLDAsOTAsNTcsMCwxMDAsOTYsMCwKKyAgICAxMDAsOTcsMCwxMzIsMCwwLDkwLDU4LDAsMTAwLDk4LDAsMTAwLDk5LDAsMTMyLAorICAgIDAsMCw5MCw1OSwwLDEwNSwwLDAsMTA1LDAsMCwxMDMsMCwwLDEwMCw5MywKKyAgICAwLDEwMCwxMDAsMCwxMDAsMTAxLDAsMTMyLDQsMCw5MCw2MCwwLDEwMCwxMDYsMCwKKyAgICA5MCw2MSwwLDEwMCwxMDYsMCw5MCw2MiwwLDEwMCwxMDIsMCwxMDAsMTAzLDAsMTMyLAorICAgIDAsMCw5MCw2MywwLDEwMCwxMDQsMCwxMDAsMTA1LDAsMTMyLDAsMCw5MCw2NCwKKyAgICAwLDEwMCwxMDYsMCw4Myw0MCwxMDgsMCwwLDAsMTE3LDgzLDEsMCwwLDY3LAorICAgIDExMSwxMTQsMTAxLDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsCisgICAgMTExLDExMCwzMiwxMTEsMTAyLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDQ2LDEwLDEwLDg0LAorICAgIDEwNCwxMDUsMTE1LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwNSwxMTUsMzIsNzgsNzksCisgICAgODQsMzIsMTA5LDEwMSw5NywxMTAsMTE2LDMyLDExNiwxMTEsMzIsOTgsMTAxLDMyLDEwMCwxMDUsCisgICAgMTE0LDEwMSw5OSwxMTYsMTA4LDEyMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTAwLDMzLAorICAgIDMyLDczLDExNiwzMiwxMDQsOTcsMTE1LDMyLDk4LDEwMSwxMDEsMTEwLDMyLDEwMCwxMDEsMTE1LAorICAgIDEwNSwxMDMsMTEwLDEwMSwxMDAsMzIsMTE1LDExNyw5OSwxMDQsMTAsMTE2LDEwNCw5NywxMTYsMzIsCisgICAgMTA1LDExNiwzMiw5OSw5NywxMTAsMzIsOTgsMTAxLDMyLDk4LDExMSwxMTEsMTE2LDExNSwxMTYsCisgICAgMTE0LDk3LDExMiwxMTIsMTAxLDEwMCwzMiwxMDUsMTEwLDExNiwxMTEsMzIsODAsMTIxLDExNiwxMDQsCisgICAgMTExLDExMCwzMiw5NywxMTUsMzIsMTE2LDEwNCwxMDEsMzIsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksCisgICAgMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDExMSwxMDIsMzIsMTA1LDEwOSwxMTIsMTExLAorICAgIDExNCwxMTYsNDYsMzIsNjUsMTE1LDEwLDExNSwxMTcsOTksMTA0LDMyLDEwNSwxMTYsMzIsMTE0LAorICAgIDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDUsMTEwLDEwNiwxMDEsCisgICAgOTksMTE2LDEwNSwxMTEsMTEwLDMyLDExMSwxMDIsMzIsMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsCisgICAgOTksMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLDk3LDExMCwxMDAsMzIsOTcsMTE2LAorICAgIDExNiwxMTQsMTA1LDk4LDExNywxMTYsMTAxLDExNSwzMiwxMDUsMTEwLDMyLDExMSwxMTQsMTAwLDEwMSwKKyAgICAxMTQsMzIsMTE2LDExMSwxMCwxMTksMTExLDExNCwxMDcsNDYsMzIsNzksMTEwLDEwMSwzMiwxMTUsCisgICAgMTA0LDExMSwxMTcsMTA4LDEwMCwzMiwxMTcsMTE1LDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwKKyAgICAxMDgsMTA1LDk4LDMyLDk3LDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsMTE3LDk4LDEwOCwxMDUsCisgICAgOTksNDUsMTAyLDk3LDk5LDEwNSwxMTAsMTAzLDMyLDExOCwxMDEsMTE0LDExNSwxMDUsMTExLDExMCwKKyAgICAzMiwxMTEsMTAyLDMyLDExNiwxMDQsMTA1LDExNSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0NiwKKyAgICAxMCwxMCwxMTcsMywwLDAsMCwxMTksMTA1LDExMCwxMTcsNiwwLDAsMCw5OSwKKyAgICAxMjEsMTAzLDExOSwxMDUsMTEwLDExNyw2LDAsMCwwLDEwMCw5NywxMTQsMTE5LDEwNSwxMTAsCisgICAgOTksMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMiwwLDAsCisgICAgMCw2NywwLDAsMCwxMTUsNDksMCwwLDAsMTE2LDAsMCwxMDYsMSwwLAorICAgIDEwNiwyLDAsMTE2LDMsMCwxMzEsMSwwLDExNCwzMywwLDEwMCwxLDAsMTAwLAorICAgIDIsMCwxMzIsMCwwLDEyNSwwLDAsMTEwLDEyLDAsMTAwLDMsMCwxMDAsMiwKKyAgICAwLDEzMiwwLDAsMTI1LDAsMCwxMjQsMCwwLDgzLDQwLDQsMCwwLDAsCisgICAgNzgsOTksMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMiwwLAorICAgIDAsMCw4MywwLDAsMCwxMTUsMTMsMCwwLDAsMTAwLDEsMCwxMTYsMCwKKyAgICAwLDEwNiwxLDAsMTA3LDYsMCw4Myw0MCwyLDAsMCwwLDExNyw1MywwLAorICAgIDAsMCw4NCwxMTQsMTE3LDEwMSwzMiwxMDUsMTAyLDMyLDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsCisgICAgMTA5LDEwMSwxMTUsMzIsMTA5LDExNywxMTUsMTE2LDMyLDk4LDEwMSwzMiw5OSwxMDQsMTAxLDk5LAorICAgIDEwNywxMDEsMTAwLDMyLDk5LDk3LDExNSwxMDEsNDUsMTA1LDExMCwxMTUsMTAxLDExMCwxMTUsMTA1LAorICAgIDExNiwxMDUsMTE4LDEwMSwxMDgsMTIxLDQ2LDExNSwxMiwwLDAsMCw4MCw4OSw4NCw3MiwKKyAgICA3OSw3OCw2Nyw2NSw4Myw2OSw3OSw3NSw0MCwyLDAsMCwwLDExNywzLDAsCisgICAgMCwwLDk1LDExMSwxMTUsMTE3LDcsMCwwLDAsMTAxLDExMCwxMTgsMTA1LDExNCwxMTEsCisgICAgMTEwLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLAorICAgIDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwKKyAgICAxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LAorICAgIDExMiw2MiwxMTcsMTEsMCwwLDAsOTUsMTE0LDEwMSwxMDgsOTcsMTIwLDk1LDk5LDk3LAorICAgIDExNSwxMDEsMzQsMCwwLDAsMTE1LDIsMCwwLDAsMCwyLDExNywzNywwLAorICAgIDAsMCw5NSwxMDksOTcsMTA3LDEwMSw5NSwxMTQsMTAxLDEwOCw5NywxMjAsOTUsOTksOTcsCisgICAgMTE1LDEwMSw0Niw2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsOTUsMTE0LDEwMSwxMDgsCisgICAgOTcsMTIwLDk1LDk5LDk3LDExNSwxMDEsOTksMCwwLDAsMCwwLDAsMCwwLAorICAgIDAsMCwwLDAsMSwwLDAsMCw4MywwLDAsMCwxMTUsNCwwLDAsCisgICAgMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDUzLDAsMCwwLDg0LAorICAgIDExNCwxMTcsMTAxLDMyLDEwNSwxMDIsMzIsMTAyLDEwNSwxMDgsMTAxLDExMCw5NywxMDksMTAxLDExNSwKKyAgICAzMiwxMDksMTE3LDExNSwxMTYsMzIsOTgsMTAxLDMyLDk5LDEwNCwxMDEsOTksMTA3LDEwMSwxMDAsCisgICAgMzIsOTksOTcsMTE1LDEwMSw0NSwxMDUsMTEwLDExNSwxMDEsMTEwLDExNSwxMDUsMTE2LDEwNSwxMTgsCisgICAgMTAxLDEwOCwxMjEsNDYsNzAsNDAsMSwwLDAsMCwxMTcsNSwwLDAsMCw3MCwKKyAgICA5NywxMDgsMTE1LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsNDAsMCwKKyAgICAwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsCisgICAgMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsCisgICAgMTE2LDExNCw5NywxMTIsNjIsMTE3LDExLDAsMCwwLDk1LDExNCwxMDEsMTA4LDk3LDEyMCwKKyAgICA5NSw5OSw5NywxMTUsMTAxLDM4LDAsMCwwLDExNSwyLDAsMCwwLDAsMiwKKyAgICA0MCw0LDAsMCwwLDExNywzLDAsMCwwLDExNSwxMjEsMTE1LDExNyw4LDAsCisgICAgMCwwLDExMiwxMDgsOTcsMTE2LDEwMiwxMTEsMTE0LDEwOSwxMTcsMTAsMCwwLDAsMTE1LAorICAgIDExNiw5NywxMTQsMTE2LDExNSwxMTksMTA1LDExNiwxMDQsMTE3LDI3LDAsMCwwLDk1LDY3LAorICAgIDY1LDgzLDY5LDk1LDczLDc4LDgzLDY5LDc4LDgzLDczLDg0LDczLDg2LDY5LDk1LAorICAgIDgwLDc2LDY1LDg0LDcwLDc5LDgyLDc3LDgzLDQwLDEsMCwwLDAsMTE3LDExLAorICAgIDAsMCwwLDk1LDExNCwxMDEsMTA4LDk3LDEyMCw5NSw5OSw5NywxMTUsMTAxLDQwLDAsCisgICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKKyAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKKyAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE2LDAsMCwwLDk1LAorICAgIDEwOSw5NywxMDcsMTAxLDk1LDExNCwxMDEsMTA4LDk3LDEyMCw5NSw5OSw5NywxMTUsMTAxLDMyLAorICAgIDAsMCwwLDExNSw4LDAsMCwwLDAsMSwxOCwxLDE1LDQsMTIsMywKKyAgICAxMTcsMTYsMCwwLDAsOTUsMTA5LDk3LDEwNywxMDEsOTUsMTE0LDEwMSwxMDgsOTcsMTIwLAorICAgIDk1LDk5LDk3LDExNSwxMDEsOTksMSwwLDAsMCwwLDAsMCwwLDIsMCwKKyAgICAwLDAsMywwLDAsMCw2NywwLDAsMCwxMTUsMTA4LDAsMCwwLDExNiwKKyAgICAwLDAsMTI0LDAsMCwxMzEsMSwwLDEyNSwwLDAsMTAzLDAsMCwxMjUsMSwKKyAgICAwLDEyNCwxLDAsMTA2LDEsMCwxMjQsMCwwLDEwMCwxLDAsNjQsMTMxLDEsCisgICAgMCwxLDEyNCwxLDAsMTA2LDEsMCwxMjQsMCwwLDEwMCwyLDAsNjMsMTAwLAorICAgIDEsMCw2NCwxMzEsMSwwLDEsMTI0LDEsMCwxMDYsMSwwLDEyNCwwLDAsCisgICAgMTAwLDMsMCw2MywxMDAsMSwwLDY0LDEzMSwxLDAsMSwxMjQsMSwwLDEwNiwKKyAgICAxLDAsMTI0LDAsMCwxMDAsNCwwLDYzLDEwMCwxLDAsNjQsMTMxLDEsMCwKKyAgICAxLDExNiwyLDAsMTI0LDEsMCwxMzEsMSwwLDgzLDQwLDUsMCwwLDAsCisgICAgMTE3LDExMSwwLDAsMCw2NywxMTEsMTEwLDExOCwxMDEsMTE0LDExNiwzMiw5NywzMiw1MSwKKyAgICA1MCw0NSw5OCwxMDUsMTE2LDMyLDEwNSwxMTAsMTE2LDEwMSwxMDMsMTAxLDExNCwzMiwxMTYsMTExLAorICAgIDMyLDEwOCwxMDUsMTE2LDExNiwxMDgsMTAxLDQ1LDEwMSwxMTAsMTAwLDEwNSw5NywxMTAsNDYsMTAsCisgICAgMTAsMzIsMzIsMzIsMzIsODgsODgsODgsMzIsODQsMTAxLDEwOSwxMTIsMTExLDExNCw5NywKKyAgICAxMTQsMTIxLDMyLDExNywxMTAsMTE2LDEwNSwxMDgsMzIsMTA5LDk3LDExNCwxMTUsMTA0LDk3LDEwOCwKKyAgICAzOSwxMTUsMzIsMTA4LDExMSwxMTAsMTAzLDMyLDEwMiwxMTcsMTEwLDk5LDExNiwxMDUsMTExLDExMCwKKyAgICAxMTUsMzIsOTcsMTE0LDEwMSwzMiwxMDEsMTIwLDExMiwxMTEsMTE1LDEwMSwxMDAsNDYsMTAsMTAsCisgICAgMzIsMzIsMzIsMzIsMTA1LDI1NSwwLDAsMCwxMDUsOCwwLDAsMCwxMDUsMTYsCisgICAgMCwwLDAsMTA1LDI0LDAsMCwwLDQwLDMsMCwwLDAsMTE3LDMsMCwKKyAgICAwLDAsMTA1LDExMCwxMTYsMTE3LDYsMCwwLDAsOTcsMTEyLDExMiwxMDEsMTEwLDEwMCwKKyAgICAxMTcsOSwwLDAsMCw5OCwxMjEsMTE2LDEwMSw5NywxMTQsMTE0LDk3LDEyMSw0MCwyLAorICAgIDAsMCwwLDExNywxLDAsMCwwLDEyMCwxMTcsOSwwLDAsMCwxMDUsMTEwLAorICAgIDExNiw5NSw5OCwxMjEsMTE2LDEwMSwxMTUsNDAsMCwwLDAsMCw0MCwwLDAsMCwKKyAgICAwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LAorICAgIDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LAorICAgIDk3LDExMiw2MiwxMTcsNywwLDAsMCw5NSwxMTksOTUsMTA4LDExMSwxMTAsMTAzLDQ1LAorICAgIDAsMCwwLDExNSwxNCwwLDAsMCwwLDYsMTIsMSw2LDEsMTcsMSwKKyAgICAyMSwxLDIxLDEsMjEsMSwxMTcsNywwLDAsMCw5NSwxMTksOTUsMTA4LDExMSwKKyAgICAxMTAsMTAzLDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDMsCisgICAgMCwwLDAsNjcsMCwwLDAsMTE1LDY4LDAsMCwwLDEyNCwwLDAsMTAwLAorICAgIDEsMCwyNSwxMjUsMSwwLDEyNCwxLDAsMTI0LDAsMCwxMDAsMiwwLDI1LAorICAgIDEwMCwzLDAsNjIsNzksMTI1LDEsMCwxMjQsMSwwLDEyNCwwLDAsMTAwLDQsCisgICAgMCwyNSwxMDAsNSwwLDYyLDc5LDEyNSwxLDAsMTI0LDEsMCwxMjQsMCwwLAorICAgIDEwMCw2LDAsMjUsMTAwLDcsMCw2Miw3OSwxMjUsMSwwLDEyNCwxLDAsODMsCisgICAgNDAsOCwwLDAsMCwxMTcsMTE1LDAsMCwwLDY3LDExMSwxMTAsMTE4LDEwMSwxMTQsCisgICAgMTE2LDMyLDUyLDMyLDk4LDEyMSwxMTYsMTAxLDExNSwzMiwxMDUsMTEwLDMyLDEwOCwxMDUsMTE2LAorICAgIDExNiwxMDgsMTAxLDQ1LDEwMSwxMTAsMTAwLDEwNSw5NywxMTAsMzIsMTE2LDExMSwzMiw5NywxMTAsCisgICAgMzIsMTA1LDExMCwxMTYsMTAxLDEwMywxMDEsMTE0LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDg4LAorICAgIDg4LDg4LDMyLDg0LDEwMSwxMDksMTEyLDExMSwxMTQsOTcsMTE0LDEyMSwzMiwxMTcsMTEwLDExNiwKKyAgICAxMDUsMTA4LDMyLDEwOSw5NywxMTQsMTE1LDEwNCw5NywxMDgsMzksMTE1LDMyLDEwOCwxMTEsMTEwLAorICAgIDEwMywzMiwxMDIsMTE3LDExMCw5OSwxMTYsMTA1LDExMSwxMTAsMzIsOTcsMTE0LDEwMSwzMiwxMDEsCisgICAgMTIwLDExMiwxMTEsMTE1LDEwMSwxMDAsNDYsMTAsMTAsMzIsMzIsMzIsMzIsMTA1LDAsMCwKKyAgICAwLDAsMTA1LDEsMCwwLDAsMTA1LDgsMCwwLDAsMTA1LDIsMCwwLAorICAgIDAsMTA1LDE2LDAsMCwwLDEwNSwzLDAsMCwwLDEwNSwyNCwwLDAsMCwKKyAgICA0MCwwLDAsMCwwLDQwLDIsMCwwLDAsMTE3LDksMCwwLDAsMTA1LAorICAgIDExMCwxMTYsOTUsOTgsMTIxLDExNiwxMDEsMTE1LDExNywxLDAsMCwwLDEyMCw0MCwwLAorICAgIDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsCisgICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsCisgICAgOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw3LDAsMCwwLDk1LAorICAgIDExNCw5NSwxMDgsMTExLDExMCwxMDMsNjEsMCwwLDAsMTE1LDEwLDAsMCwwLDAsCisgICAgNiwxMCwxLDE4LDEsMTgsMSwxOCwxLDExNyw3LDAsMCwwLDk1LDExNCwKKyAgICA5NSwxMDgsMTExLDExMCwxMDMsOTksMCwwLDAsMCwwLDAsMCwwLDMsMCwKKyAgICAwLDAsNCwwLDAsMCw3MSwwLDAsMCwxMTUsMTAzLDAsMCwwLDEwMywKKyAgICAwLDAsMTI1LDEsMCwxMjAsNzEsMCwxMjQsMCwwLDY4LDkzLDYzLDAsMTI1LAorICAgIDIsMCwxMjQsMiwwLDExNSwzMSwwLDExMywxMywwLDExMCwwLDAsMTI0LDEsCisgICAgMCwxMDYsMCwwLDEyNCwyLDAsMTMxLDEsMCwxLDEyNCwyLDAsMTAwLDQsCisgICAgMCwyNSwxMTYsMSwwLDEwNyw3LDAsMTE0LDEzLDAsMTI0LDEsMCwxMDYsMCwKKyAgICAwLDExNiwyLDAsMTMxLDEsMCwxLDExMywxMywwLDExMywxMywwLDg3LDEwMCwKKyAgICAyLDAsMTA2LDMsMCwxMjQsMSwwLDEwMCwzLDAsMTAwLDUsMCwxMzMsMiwKKyAgICAwLDI1LDEzMSwxLDAsODMsNDAsNiwwLDAsMCwxMTcsMzEsMCwwLDAsCisgICAgODIsMTAxLDExMiwxMDgsOTcsOTksMTAxLDEwOSwxMDEsMTEwLDExNiwzMiwxMDIsMTExLDExNCwzMiwKKyAgICAxMTEsMTE1LDQ2LDExMiw5NywxMTYsMTA0LDQ2LDEwNiwxMTEsMTA1LDExMCw0MCw0MSw0NiwxMDUsCisgICAgMSwwLDAsMCwxMTcsMCwwLDAsMCw3OCwxMDUsMjU1LDI1NSwyNTUsMjU1LDEwNSwKKyAgICAyNTUsMjU1LDI1NSwyNTUsNDAsNCwwLDAsMCwxMTcsNiwwLDAsMCw5NywxMTIsCisgICAgMTEyLDEwMSwxMTAsMTAwLDExNywxNSwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsMTAxLAorICAgIDExMiw5NywxMTQsOTcsMTE2LDExMSwxMTQsMTE1LDExNyw4LDAsMCwwLDExMiw5NywxMTYsCisgICAgMTA0LDk1LDExNSwxMDEsMTEyLDExNyw0LDAsMCwwLDEwNiwxMTEsMTA1LDExMCw0MCwzLAorICAgIDAsMCwwLDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMTIsOTcsMTE0LAorICAgIDExNiwxMTUsMTE3LDksMCwwLDAsMTEwLDEwMSwxMTksOTUsMTEyLDk3LDExNCwxMTYsMTE1LAorICAgIDExNyw0LDAsMCwwLDExMiw5NywxMTQsMTE2LDQwLDAsMCwwLDAsNDAsMCwKKyAgICAwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsCisgICAgMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsCisgICAgMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LAorICAgIDEwNiwxMTEsMTA1LDExMCw3NCwwLDAsMCwxMTUsMTYsMCwwLDAsMCwyLDYsCisgICAgMSwxMywxLDYsMSw2LDEsMTMsMSwxNiwxLDIwLDEsMTE3LDEwLDAsCisgICAgMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNiwxMTEsMTA1LDExMCw5OSwxLDAsMCwKKyAgICAwLDAsMCwwLDAsNiwwLDAsMCwzLDAsMCwwLDY3LDAsMCwKKyAgICAwLDExNSw4NSwwLDAsMCwxMjAsNDgsMCwxMTYsMCwwLDEyNCwwLDAsMTMxLAorICAgIDEsMCw2OCw5MywyOCwwLDEyNSwxLDAsMTI0LDEsMCwxMTYsMSwwLDEwNywKKyAgICA2LDAsMTE0LDEzLDAsMTI0LDEsMCwxMjUsMiwwLDgwLDExMywxMywwLDExMywKKyAgICAxMywwLDg3LDExNiwyLDAsMTI1LDIsMCwxMjQsMCwwLDEwNiwzLDAsMTI0LAorICAgIDIsMCwxMzEsMSwwLDkyLDMsMCwxMjUsMywwLDEyNSw0LDAsMTI1LDUsCisgICAgMCwxMjQsMywwLDEyNCw1LDAsMTAyLDIsMCw4Myw0MCwxLDAsMCwwLAorICAgIDExNywzMiwwLDAsMCw4MiwxMDEsMTEyLDEwOCw5Nyw5OSwxMDEsMTA5LDEwMSwxMTAsMTE2LAorICAgIDMyLDEwMiwxMTEsMTE0LDMyLDExMSwxMTUsNDYsMTEyLDk3LDExNiwxMDQsNDYsMTE1LDExMiwxMDgsCisgICAgMTA1LDExNiw0MCw0MSw0Niw0MCw0LDAsMCwwLDExNyw4LDAsMCwwLDExNCwKKyAgICAxMDEsMTE4LDEwMSwxMTQsMTE1LDEwMSwxMDAsMTE3LDE1LDAsMCwwLDExMiw5NywxMTYsMTA0LAorICAgIDk1LDExNSwxMDEsMTEyLDk3LDExNCw5NywxMTYsMTExLDExNCwxMTUsMTE3LDgsMCwwLDAsCisgICAgMTEyLDk3LDExNiwxMDQsOTUsMTE1LDEwMSwxMTIsMTE3LDEwLDAsMCwwLDExNCwxMTIsOTcsCisgICAgMTE0LDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDQwLDYsMCwwLDAsMTE3LDQsMCwwLAorICAgIDAsMTEyLDk3LDExNiwxMDQsMTE3LDEsMCwwLDAsMTIwLDExNywzLDAsMCwwLAorICAgIDExNSwxMDEsMTEyLDExNyw1LDAsMCwwLDEwMiwxMTQsMTExLDExMCwxMTYsMTE3LDEsMCwKKyAgICAwLDAsOTUsMTE3LDQsMCwwLDAsMTE2LDk3LDEwNSwxMDgsNDAsMCwwLDAsCisgICAgMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsCisgICAgMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwKKyAgICAxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LAorICAgIDExNiwxMDQsOTUsMTE1LDExMiwxMDgsMTA1LDExNiw4NiwwLDAsMCwxMTUsMTQsMCwwLAorICAgIDAsMCwyLDE5LDEsMTIsMSw2LDEsOCwyLDYsMSwyNCwxLDExNywKKyAgICAxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsMTEyLDEwOCwxMDUsMTE2LDk5LAorICAgIDIsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDExLDAsMCwwLAorICAgIDY3LDAsMCwwLDExNSw2MSwwLDAsMCwxMjEsMTksMCwxMTYsMCwwLDEwNiwKKyAgICAxLDAsMTI0LDAsMCwxMzEsMSwwLDEyNSwyLDAsODcsMTEwLDIyLDAsNCwKKyAgICAxMTYsMiwwLDEwNywxMCwwLDExNCw0MywwLDEsMSwxLDEwMCwyLDAsODMsCisgICAgODksMTEwLDEsMCw4OCwxMjQsMiwwLDEwNiw0LDAsMTAwLDEsMCw2NCwxMjQsCisgICAgMSwwLDEwNywyLDAsODMsNDAsMywwLDAsMCwxMTcsNDksMCwwLDAsCisgICAgODQsMTAxLDExNSwxMTYsMzIsMTE5LDEwNCwxMDEsMTE2LDEwNCwxMDEsMTE0LDMyLDExNiwxMDQsMTAxLAorICAgIDMyLDExMiw5NywxMTYsMTA0LDMyLDEwNSwxMTUsMzIsMTE2LDEwNCwxMDEsMzIsMTE1LDExMiwxMDEsCisgICAgOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMDksMTExLDEwMCwxMDEsMzIsMTE2LDEyMSwxMTIsMTAxLAorICAgIDQ2LDEwNSwwLDI0MCwwLDAsNzAsNDAsNSwwLDAsMCwxMTcsMywwLDAsCisgICAgMCw5NSwxMTEsMTE1LDExNyw0LDAsMCwwLDExNSwxMTYsOTcsMTE2LDExNyw3LDAsCisgICAgMCwwLDc5LDgzLDY5LDExNCwxMTQsMTExLDExNCwxMTcsNSwwLDAsMCw3MCw5NywKKyAgICAxMDgsMTE1LDEwMSwxMTcsNywwLDAsMCwxMTUsMTE2LDk1LDEwOSwxMTEsMTAwLDEwMSw0MCwKKyAgICAzLDAsMCwwLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNyw0LDAsCisgICAgMCwwLDEwOSwxMTEsMTAwLDEwMSwxMTcsOSwwLDAsMCwxMTUsMTE2LDk3LDExNiw5NSwKKyAgICAxMDUsMTEwLDEwMiwxMTEsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwKKyAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKKyAgICAxMTcsMTgsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDExNSw5NSwxMDksMTExLAorICAgIDEwMCwxMDEsOTUsMTE2LDEyMSwxMTIsMTAxLDk4LDAsMCwwLDExNSwxMCwwLDAsMCwKKyAgICAwLDIsMywxLDE5LDEsMTMsMSw5LDEsMTE3LDE4LDAsMCwwLDk1LAorICAgIDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsOTUsMTA5LDExMSwxMDAsMTAxLDk1LDExNiwxMjEsMTEyLAorICAgIDEwMSw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwzLDAsCisgICAgMCwwLDY3LDAsMCwwLDExNSwxMywwLDAsMCwxMTYsMCwwLDEyNCwwLAorICAgIDAsMTAwLDEsMCwxMzEsMiwwLDgzLDQwLDIsMCwwLDAsMTE3LDMxLDAsCisgICAgMCwwLDgyLDEwMSwxMTIsMTA4LDk3LDk5LDEwMSwxMDksMTAxLDExMCwxMTYsMzIsMTAyLDExMSwKKyAgICAxMTQsMzIsMTExLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw0NiwxMDUsMTE1LDEwMiwxMDUsMTA4LDEwMSwKKyAgICA0NiwxMDUsMCwxMjgsMCwwLDQwLDEsMCwwLDAsMTE3LDE4LDAsMCwwLAorICAgIDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsOTUsMTA5LDExMSwxMDAsMTAxLDk1LDExNiwxMjEsCisgICAgMTEyLDEwMSw0MCwxLDAsMCwwLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LAorICAgIDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsCisgICAgMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCwKKyAgICA0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEyLDAsMCwKKyAgICAwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsMTAyLDEwNSwxMDgsMTAxLDEwOCwwLDAsCisgICAgMCwxMTUsMiwwLDAsMCwwLDIsMTE3LDEyLDAsMCwwLDk1LDExMiw5NywKKyAgICAxMTYsMTA0LDk1LDEwNSwxMTUsMTAyLDEwNSwxMDgsMTAxLDk5LDEsMCwwLDAsMCwwLAorICAgIDAsMCwxLDAsMCwwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDM0LAorICAgIDAsMCwwLDEyNCwwLDAsMTE1LDIxLDAsMTE2LDAsMCwxMDYsMSwwLDEzMSwKKyAgICAwLDAsMTI1LDAsMCwxMTAsMCwwLDExNiwyLDAsMTI0LDAsMCwxMDAsMSwKKyAgICAwLDEzMSwyLDAsODMsNDAsMiwwLDAsMCwxMTcsMzAsMCwwLDAsODIsCisgICAgMTAxLDExMiwxMDgsOTcsOTksMTAxLDEwOSwxMDEsMTEwLDExNiwzMiwxMDIsMTExLDExNCwzMiwxMTEsCisgICAgMTE1LDQ2LDExMiw5NywxMTYsMTA0LDQ2LDEwNSwxMTUsMTAwLDEwNSwxMTQsNDYsMTA1LDAsNjQsCisgICAgMCwwLDQwLDMsMCwwLDAsMTE3LDMsMCwwLDAsOTUsMTExLDExNSwxMTcsCisgICAgNiwwLDAsMCwxMDMsMTAxLDExNiw5OSwxMTksMTAwLDExNywxOCwwLDAsMCw5NSwKKyAgICAxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTE1LDk1LDEwOSwxMTEsMTAwLDEwMSw5NSwxMTYsMTIxLDExMiwKKyAgICAxMDEsNDAsMSwwLDAsMCwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw0MCwKKyAgICAwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwKKyAgICAxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsCisgICAgOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsMCwKKyAgICA5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDUsMTE1LDEwMCwxMDUsMTE0LDExNCwwLDAsMCwxMTUsCisgICAgNiwwLDAsMCwwLDIsNiwxLDE1LDEsMTE3LDExLDAsMCwwLDk1LAorICAgIDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsMTAwLDEwNSwxMTQsOTksMiwwLDAsMCwwLAorICAgIDAsMCwwLDUsMCwwLDAsMTcsMCwwLDAsNjcsMCwwLDAsMTE1LAorICAgIDE4OCwwLDAsMCwxMDAsMSwwLDEwNiwwLDAsMTI0LDAsMCwxMTYsMSwwLAorICAgIDEyNCwwLDAsMTMxLDEsMCwxMzEsMiwwLDEyNSwyLDAsMTE2LDIsMCwxMDYsCisgICAgMywwLDEyNCwyLDAsMTE2LDIsMCwxMDYsNCwwLDExNiwyLDAsMTA2LDUsCisgICAgMCw2NiwxMTYsMiwwLDEwNiw2LDAsNjYsMTAwLDIsMCwxMzEsMywwLDEyNSwKKyAgICAzLDAsMTIxLDYwLDAsMTE2LDcsMCwxMDYsOCwwLDEyNCwzLDAsMTAwLDMsCisgICAgMCwxMzEsMiwwLDE0MywyMCwwLDEyNSw0LDAsMTI0LDQsMCwxMDYsOSwwLAorICAgIDEyNCwxLDAsMTMxLDEsMCwxLDg3LDEwMCw0LDAsODEsODgsMTE2LDIsMCwKKyAgICAxMDYsMTAsMCwxMjQsMiwwLDEyNCwwLDAsMTMxLDIsMCwxLDg3LDExMCw1OSwKKyAgICAwLDQsMTE2LDExLDAsMTA3LDEwLDAsMTE0LDE4MywwLDEsMSwxLDEyMSwxNywKKyAgICAwLDExNiwyLDAsMTA2LDEyLDAsMTI0LDIsMCwxMzEsMSwwLDEsODcsMTEwLAorICAgIDE4LDAsNCwxMTYsMTEsMCwxMDcsMTAsMCwxMTQsMTc1LDAsMSwxLDEsODksCisgICAgMTEwLDEsMCw4OCwxMzAsMCwwLDg5LDExMCwxLDAsODgsMTAwLDQsMCw4MywKKyAgICA0MCw1LDAsMCwwLDExNywxNjIsMCwwLDAsNjYsMTAxLDExNSwxMTYsNDUsMTAxLAorICAgIDEwMiwxMDIsMTExLDExNCwxMTYsMzIsMTAyLDExNywxMTAsOTksMTE2LDEwNSwxMTEsMTEwLDMyLDExNiwKKyAgICAxMTEsMzIsMTE5LDExNCwxMDUsMTE2LDEwMSwzMiwxMDAsOTcsMTE2LDk3LDMyLDExNiwxMTEsMzIsCisgICAgOTcsMzIsMTEyLDk3LDExNiwxMDQsMzIsOTcsMTE2LDExMSwxMDksMTA1LDk5LDk3LDEwOCwxMDgsCisgICAgMTIxLDQ2LDEwLDMyLDMyLDMyLDMyLDY2LDEwMSwzMiwxMTIsMTE0LDEwMSwxMTIsOTcsMTE0LAorICAgIDEwMSwxMDAsMzIsMTE2LDExMSwzMiwxMDQsOTcsMTEwLDEwMCwxMDgsMTAxLDMyLDk3LDMyLDcwLAorICAgIDEwNSwxMDgsMTAxLDY5LDEyMCwxMDUsMTE1LDExNiwxMTUsNjksMTE0LDExNCwxMTEsMTE0LDMyLDEwNSwKKyAgICAxMDIsMzIsOTksMTExLDExMCw5OSwxMTcsMTE0LDExNCwxMDEsMTEwLDExNiwzMiwxMTksMTE0LDEwNSwKKyAgICAxMTYsMTA1LDExMCwxMDMsMzIsMTExLDEwMiwzMiwxMTYsMTA0LDEwMSwxMCwzMiwzMiwzMiwzMiwKKyAgICAxMTYsMTAxLDEwOSwxMTIsMTExLDExNCw5NywxMTQsMTIxLDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMDUsCisgICAgMTE1LDMyLDk3LDExNiwxMTYsMTAxLDEwOSwxMTIsMTE2LDEwMSwxMDAsNDYsMTE3LDUsMCwwLAorICAgIDAsMTIzLDEyNSw0NiwxMjMsMTI1LDEwNSwxODIsMSwwLDAsMTE3LDIsMCwwLDAsCisgICAgMTE5LDk4LDc4LDQwLDEzLDAsMCwwLDExNyw2LDAsMCwwLDEwMiwxMTEsMTE0LAorICAgIDEwOSw5NywxMTYsMTE3LDIsMCwwLDAsMTA1LDEwMCwxMTcsMywwLDAsMCw5NSwKKyAgICAxMTEsMTE1LDExNyw0LDAsMCwwLDExMSwxMTIsMTAxLDExMCwxMTcsNiwwLDAsMCwKKyAgICA3OSw5NSw2OSw4OCw2Nyw3NiwxMTcsNywwLDAsMCw3OSw5NSw2Nyw4Miw2OSwKKyAgICA2NSw4NCwxMTcsOCwwLDAsMCw3OSw5NSw4Nyw4Miw3OSw3OCw3Niw4OSwxMTcsCisgICAgMywwLDAsMCw5NSwxMDUsMTExLDExNyw2LDAsMCwwLDcwLDEwNSwxMDgsMTAxLAorICAgIDczLDc5LDExNyw1LDAsMCwwLDExOSwxMTQsMTA1LDExNiwxMDEsMTE3LDcsMCwwLAorICAgIDAsMTE0LDEwMSwxMTIsMTA4LDk3LDk5LDEwMSwxMTcsNywwLDAsMCw3OSw4Myw2OSwKKyAgICAxMTQsMTE0LDExMSwxMTQsMTE3LDYsMCwwLDAsMTE3LDExMCwxMDgsMTA1LDExMCwxMDcsNDAsCisgICAgNSwwLDAsMCwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsNCwwLAorICAgIDAsMCwxMDAsOTcsMTE2LDk3LDExNyw4LDAsMCwwLDExMiw5NywxMTYsMTA0LDk1LAorICAgIDExNiwxMDksMTEyLDExNywyLDAsMCwwLDEwMiwxMDAsMTE3LDQsMCwwLDAsMTAyLAorICAgIDEwNSwxMDgsMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwKKyAgICAwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCisgICAgMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LAorICAgIDEzLDAsMCwwLDk1LDExOSwxMTQsMTA1LDExNiwxMDEsOTUsOTcsMTE2LDExMSwxMDksMTA1LAorICAgIDk5LDEyMSwwLDAsMCwxMTUsMjQsMCwwLDAsMCw1LDI0LDEsMzgsMSwKKyAgICAzLDMsMjEsMSwxOSwxLDIwLDEsMTMsMSwzLDEsMTcsMSwxMywxLAorICAgIDUsMSwxMTcsMTMsMCwwLDAsOTUsMTE5LDExNCwxMDUsMTE2LDEwMSw5NSw5NywxMTYsCisgICAgMTExLDEwOSwxMDUsOTksOTksMiwwLDAsMCwwLDAsMCwwLDMsMCwwLAorICAgIDAsNywwLDAsMCw2NywwLDAsMCwxMTUsOTUsMCwwLDAsMTIwLDY5LAorICAgIDAsMTAwLDEsMCwxMDAsMiwwLDEwMCwzLDAsMTAwLDQsMCwxMDMsNCwwLAorICAgIDY4LDkzLDQ5LDAsMTI1LDIsMCwxMTYsMCwwLDEyNCwxLDAsMTI0LDIsMCwKKyAgICAxMzEsMiwwLDExNCwxOSwwLDExNiwxLDAsMTI0LDAsMCwxMjQsMiwwLDExNiwKKyAgICAyLDAsMTI0LDEsMCwxMjQsMiwwLDEzMSwyLDAsMTMxLDMsMCwxLDExMywKKyAgICAxOSwwLDExMywxOSwwLDg3LDEyNCwwLDAsMTA2LDMsMCwxMDYsNCwwLDEyNCwKKyAgICAxLDAsMTA2LDMsMCwxMzEsMSwwLDEsMTAwLDUsMCw4Myw0MCw2LDAsCisgICAgMCwwLDExNyw0NywwLDAsMCw4MywxMDUsMTA5LDExMiwxMDgsMTAxLDMyLDExNSwxMTcsCisgICAgOTgsMTE1LDExNiwxMDUsMTE2LDExNywxMTYsMTAxLDMyLDEwMiwxMTEsMTE0LDMyLDEwMiwxMTcsMTEwLAorICAgIDk5LDExNiwxMTEsMTExLDEwOCwxMTUsNDYsMTE3LDExMiwxMDAsOTcsMTE2LDEwMSw5NSwxMTksMTE0LAorICAgIDk3LDExMiwxMTIsMTAxLDExNCw0NiwxMTcsMTAsMCwwLDAsOTUsOTUsMTA5LDExMSwxMDAsCisgICAgMTE3LDEwOCwxMDEsOTUsOTUsMTE3LDgsMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsCisgICAgOTUsOTUsMTE3LDEyLDAsMCwwLDk1LDk1LDExMywxMTcsOTcsMTA4LDExMCw5NywxMDksCisgICAgMTAxLDk1LDk1LDExNyw3LDAsMCwwLDk1LDk1LDEwMCwxMTEsOTksOTUsOTUsNzgsCisgICAgNDAsNSwwLDAsMCwxMTcsNywwLDAsMCwxMDQsOTcsMTE1LDk3LDExNiwxMTYsCisgICAgMTE0LDExNyw3LDAsMCwwLDExNSwxMDEsMTE2LDk3LDExNiwxMTYsMTE0LDExNyw3LDAsCisgICAgMCwwLDEwMywxMDEsMTE2LDk3LDExNiwxMTYsMTE0LDExNyw4LDAsMCwwLDk1LDk1LAorICAgIDEwMCwxMDUsOTksMTE2LDk1LDk1LDExNyw2LDAsMCwwLDExNywxMTIsMTAwLDk3LDExNiwKKyAgICAxMDEsNDAsMywwLDAsMCwxMTcsMywwLDAsMCwxMTAsMTAxLDExOSwxMTcsMywKKyAgICAwLDAsMCwxMTEsMTA4LDEwMCwxMTcsNywwLDAsMCwxMTQsMTAxLDExMiwxMDgsOTcsCisgICAgOTksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLAorICAgIDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LAorICAgIDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDUsCisgICAgMCwwLDAsOTUsMTE5LDExNCw5NywxMTIsMTQyLDAsMCwwLDExNSw4LDAsMCwKKyAgICAwLDAsMiwyNSwxLDE1LDEsMzIsMSwxMTcsNSwwLDAsMCw5NSwxMTksCisgICAgMTE0LDk3LDExMiw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwKKyAgICAyLDAsMCwwLDY3LDAsMCwwLDExNSwxNiwwLDAsMCwxMTYsMCwwLAorICAgIDExNiwxLDAsMTMxLDEsMCwxMjQsMCwwLDEzMSwxLDAsODMsNDAsMSwwLAorICAgIDAsMCwxMTcsNzUsMCwwLDAsNjcsMTE0LDEwMSw5NywxMTYsMTAxLDMyLDk3LDMyLAorICAgIDExMCwxMDEsMTE5LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ2LDEwLDEwLDMyLDMyLDMyLAorICAgIDMyLDg0LDEwNCwxMDEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA1LDExNSwzMiwxMTAsCisgICAgMTExLDExNiwzMiwxMDEsMTEwLDExNiwxMDEsMTE0LDEwMSwxMDAsMzIsMTA1LDExMCwxMTYsMTExLDMyLAorICAgIDExNSwxMjEsMTE1LDQ2LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSw0NiwxMCwxMCwzMiwzMiwKKyAgICAzMiwzMiw0MCwyLDAsMCwwLDExNyw0LDAsMCwwLDExNiwxMjEsMTEyLDEwMSwKKyAgICAxMTcsMywwLDAsMCw5NSwxMDUsMTExLDQwLDEsMCwwLDAsMTE3LDQsMCwKKyAgICAwLDAsMTEwLDk3LDEwOSwxMDEsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLAorICAgIDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwKKyAgICAxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LAorICAgIDExMiw2MiwxMTcsMTAsMCwwLDAsMTEwLDEwMSwxMTksOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsMTUzLDAsMCwwLDExNSwyLDAsMCwwLDAsNiwxMTcsMTAsMCwwLAorICAgIDAsMTEwLDEwMSwxMTksOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTksMSwwLDAsMCwKKyAgICAwLDAsMCwwLDEsMCwwLDAsMSwwLDAsMCw2NiwwLDAsMCwKKyAgICAxMTUsMjAsMCwwLDAsMTI0LDAsMCw2OSwxMDEsMCwwLDkwLDEsMCwxMDAsCisgICAgMCwwLDkwLDIsMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDE0LAorICAgIDAsMCwwLDk1LDY4LDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsNjksMTE0LDExNCwxMTEsCisgICAgMTE0LDc4LDQwLDMsMCwwLDAsMTE3LDgsMCwwLDAsOTUsOTUsMTEwLDk3LAorICAgIDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsCisgICAgMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwxMTMsMTE3LDk3LDEwOCwxMTAsOTcsCisgICAgMTA5LDEwMSw5NSw5NSw0MCwxLDAsMCwwLDExNywxMCwwLDAsMCw5NSw5NSwKKyAgICAxMDgsMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwwLDAsMCw0MCwwLDAsCisgICAgMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsCisgICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsCisgICAgMTE0LDk3LDExMiw2MiwxMTcsMTQsMCwwLDAsOTUsNjgsMTAxLDk3LDEwMCwxMDgsMTExLAorICAgIDk5LDEwNyw2OSwxMTQsMTE0LDExMSwxMTQsMTcwLDAsMCwwLDExNSwyLDAsMCwwLAorICAgIDE2LDEsMTE3LDE0LDAsMCwwLDk1LDY4LDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsCisgICAgNjksMTE0LDExNCwxMTEsMTE0LDk5LDEsMCwwLDAsMCwwLDAsMCwxLDAsCisgICAgMCwwLDIsMCwwLDAsNjYsMCwwLDAsMTE1LDg2LDAsMCwwLDEyNCwKKyAgICAwLDAsNjksMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLAorICAgIDEsMCw5MCwzLDAsMTAwLDIsMCwxMDAsMywwLDEzMiwwLDAsOTAsNCwKKyAgICAwLDEwMCw0LDAsMTAwLDUsMCwxMzIsMCwwLDkwLDUsMCwxMDAsNiwwLAorICAgIDEwMCw3LDAsMTMyLDAsMCw5MCw2LDAsMTAwLDgsMCwxMDAsOSwwLDEzMiwKKyAgICAwLDAsOTAsNywwLDEwMCwxMCwwLDEwMCwxMSwwLDEzMiwwLDAsOTAsOCwKKyAgICAwLDEwMCwxMiwwLDgzLDQwLDEzLDAsMCwwLDExNywxMSwwLDAsMCw5NSwKKyAgICA3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsMTE3LDE2OSwwLDAsMCw2NSwKKyAgICAzMiwxMTQsMTAxLDk5LDExNywxMTQsMTE1LDEwNSwxMTgsMTAxLDMyLDEwOCwxMTEsOTksMTA3LDMyLAorICAgIDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCwzMiwxMTksCisgICAgMTA0LDEwNSw5OSwxMDQsMzIsMTA1LDExNSwzMiw5Nyw5OCwxMDgsMTAxLDMyLDExNiwxMTEsMzIsCisgICAgMTAwLDEwMSwxMTYsMTAxLDk5LDExNiwzMiwxMDAsMTAxLDk3LDEwMCwxMDgsMTExLDk5LDEwNywxMTUsCisgICAgMTAsMzIsMzIsMzIsMzIsNDAsMTAxLDQ2LDEwMyw0NiwzMiwxMTYsMTA0LDExNCwxMDEsOTcsCisgICAgMTAwLDMyLDQ5LDMyLDExNiwxMTQsMTIxLDEwNSwxMTAsMTAzLDMyLDExNiwxMTEsMzIsMTE2LDk3LAorICAgIDEwNywxMDEsMzIsMTA4LDExMSw5OSwxMDcsMTE1LDMyLDY1LDMyLDExNiwxMDQsMTAxLDExMCwzMiwKKyAgICA2Niw0NCwzMiw5NywxMTAsMTAwLDMyLDExNiwxMDQsMTE0LDEwMSw5NywxMDAsMzIsNTAsMzIsCisgICAgMTE2LDExNCwxMjEsMTA1LDExMCwxMDMsMzIsMTE2LDExMSwxMCwzMiwzMiwzMiwzMiwxMTYsOTcsCisgICAgMTA3LDEwMSwzMiwxMDgsMTExLDk5LDEwNywxMTUsMzIsNjYsMzIsMTE2LDEwNCwxMDEsMTEwLDMyLAorICAgIDY1LDQxLDQ2LDEwLDMyLDMyLDMyLDMyLDk5LDIsMCwwLDAsMCwwLDAsCisgICAgMCwyLDAsMCwwLDIsMCwwLDAsNjcsMCwwLDAsMTE1LDcwLDAsCisgICAgMCwwLDExNiwwLDAsMTA2LDEsMCwxMzEsMCwwLDEyNCwwLDAsOTUsMiwKKyAgICAwLDExNiwwLDAsMTA2LDEsMCwxMzEsMCwwLDEyNCwwLDAsOTUsMywwLAorICAgIDEyNCwxLDAsMTI0LDAsMCw5NSw0LDAsMTAwLDAsMCwxMjQsMCwwLDk1LAorICAgIDYsMCwxMDAsMSwwLDEyNCwwLDAsOTUsNywwLDEwMCwxLDAsMTI0LDAsCisgICAgMCw5NSw4LDAsMTAwLDAsMCw4Myw0MCwyLDAsMCwwLDc4LDEwNSwwLAorICAgIDAsMCwwLDQwLDksMCwwLDAsMTE3LDcsMCwwLDAsOTUsMTE2LDEwNCwKKyAgICAxMTQsMTAxLDk3LDEwMCwxMTcsMTMsMCwwLDAsOTcsMTA4LDEwOCwxMTEsOTksOTcsMTE2LAorICAgIDEwMSw5NSwxMDgsMTExLDk5LDEwNywxMTcsNCwwLDAsMCwxMDgsMTExLDk5LDEwNywxMTcsCisgICAgNiwwLDAsMCwxMTksOTcsMTA3LDEwMSwxMTcsMTEyLDExNyw0LDAsMCwwLDExMCwKKyAgICA5NywxMDksMTAxLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNyw1LDAsMCwKKyAgICAwLDExMSwxMTksMTEwLDEwMSwxMTQsMTE3LDUsMCwwLDAsOTksMTExLDExNywxMTAsMTE2LAorICAgIDExNyw3LDAsMCwwLDExOSw5NywxMDUsMTE2LDEwMSwxMTQsMTE1LDQwLDIsMCwwLAorICAgIDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDExMCwKKyAgICA5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwKKyAgICAwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCisgICAgMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LAorICAgIDgsMCwwLDAsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LDE4MCwwLDAsMCwKKyAgICAxMTUsMTIsMCwwLDAsMCwxLDE1LDEsMTUsMSw5LDEsOSwxLDksCisgICAgMSwxMTcsMjAsMCwwLDAsOTUsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsOTksCisgICAgMTA3LDQ2LDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSw5OSwxLDAsMCwwLDAsCisgICAgMCwwLDAsNCwwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSwKKyAgICA4NywwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTMxLDAsMCwxMjUsMSwwLAorICAgIDEyNCwwLDAsMTA2LDIsMCwxMjUsMiwwLDEyMCw1OSwwLDExNiwzLDAsMTA2LAorICAgIDQsMCwxMjQsMiwwLDEzMSwxLDAsMTI1LDMsMCwxMjQsMywwLDEwMCwwLAorICAgIDAsMTA3LDgsMCwxMTQsNTUsMCwxMDAsMSwwLDgzLDEyNCwzLDAsMTA2LDIsCisgICAgMCwxMjUsMiwwLDEyNCwyLDAsMTI0LDEsMCwxMDcsMiwwLDExNCwyNCwwLAorICAgIDEwMCwyLDAsODMsMTEzLDI0LDAsMTAwLDAsMCw4Myw0MCwzLDAsMCwwLAorICAgIDc4LDcwLDg0LDQwLDgsMCwwLDAsMTE3LDcsMCwwLDAsOTUsMTE2LDEwNCwKKyAgICAxMTQsMTAxLDk3LDEwMCwxMTcsOSwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMDUsMTAwLDEwMSwKKyAgICAxMTAsMTE2LDExNyw1LDAsMCwwLDExMSwxMTksMTEwLDEwMSwxMTQsMTE3LDEyLDAsMCwKKyAgICAwLDk1LDk4LDEwOCwxMTEsOTksMTA3LDEwNSwxMTAsMTAzLDk1LDExMSwxMTAsMTE3LDMsMCwKKyAgICAwLDAsMTAzLDEwMSwxMTYsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDUsCisgICAgMCwwLDAsNzAsOTcsMTA4LDExNSwxMDEsMTE3LDQsMCwwLDAsODQsMTE0LDExNywKKyAgICAxMDEsNDAsNCwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LAorICAgIDIsMCwwLDAsMTA5LDEwMSwxMTcsMywwLDAsMCwxMTYsMTA1LDEwMCwxMTcsNCwKKyAgICAwLDAsMCwxMDgsMTExLDk5LDEwNyw0MCwwLDAsMCwwLDQwLDAsMCwwLAorICAgIDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsCisgICAgOTcsMTEyLDYyLDExNywxMiwwLDAsMCwxMDQsOTcsMTE1LDk1LDEwMCwxMDEsOTcsMTAwLAorICAgIDEwOCwxMTEsOTksMTA3LDE4OCwwLDAsMCwxMTUsMTgsMCwwLDAsMCwyLDEyLAorICAgIDEsOSwxLDMsMSwxNSwxLDEyLDEsNCwxLDksMSwxMiwxLDExNywKKyAgICAyNCwwLDAsMCw5NSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsNDYsCisgICAgMTA0LDk3LDExNSw5NSwxMDAsMTAxLDk3LDEwMCwxMDgsMTExLDk5LDEwNyw5OSwxLDAsMCwKKyAgICAwLDAsMCwwLDAsMiwwLDAsMCwxNywwLDAsMCw2NywwLDAsCisgICAgMCwxMTUsMjE0LDAsMCwwLDExNiwwLDAsMTA2LDEsMCwxMzEsMCwwLDEyNSwKKyAgICAxLDAsMTI0LDAsMCwxMTYsMiwwLDEyNCwxLDAsNjAsMTIyLDE3NywwLDEyMCwKKyAgICAxNzAsMCwxMjQsMCwwLDEwNiwzLDAsMTQzLDEzMCwwLDEsMTI0LDAsMCwxMDYsCisgICAgNCwwLDEwMCwxLDAsMTA3LDIsMCwxMTUsNjgsMCwxMjQsMCwwLDEwNiw1LAorICAgIDAsMTI0LDEsMCwxMDcsMiwwLDExNCw5NiwwLDEyNCwxLDAsMTI0LDAsMCwKKyAgICA5NSw1LDAsMTI0LDAsMCw0LDEwNiw0LDAsMTAwLDIsMCw1NSwyLDk1LAorICAgIDQsMCwxMDAsNSwwLDgzLDEyNCwwLDAsMTA2LDcsMCwxMzEsMCwwLDExNCwKKyAgICAxMjcsMCwxMTYsOCwwLDEwMCwzLDAsMTI0LDAsMCwyMiwxMzEsMSwwLDEzMCwKKyAgICAxLDAsMTEwLDAsMCwxMjQsMCwwLDEwNiw5LDAsMTA2LDEwLDAsMTAwLDYsCisgICAgMCwxMzEsMSwwLDExNCwxNjMsMCwxMjQsMCwwLDQsMTA2LDEyLDAsMTAwLDIsCisgICAgMCw1NSwyLDk1LDEyLDAsMTEwLDAsMCw4NywxMDAsNCwwLDgxLDg4LDEyNCwKKyAgICAwLDAsMTA2LDksMCwxMDYsMTAsMCwxMzEsMCwwLDEsMTI0LDAsMCwxMDYsCisgICAgOSwwLDEwNiwxMywwLDEzMSwwLDAsMSwxMTMsMjgsMCw4NywxMDAsNCwwLAorICAgIDExNiwyLDAsMTI0LDEsMCw2MSw4OCwxMDAsNCwwLDgzLDQwLDcsMCwwLAorICAgIDAsMTE3LDE4NSwwLDAsMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw2NSwKKyAgICA5OSwxMTMsMTE3LDEwNSwxMTQsMTAxLDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsCisgICAgMTAxLDMyLDEwOCwxMTEsOTksMTA3LDQ2LDMyLDMyLDczLDEwMiwzMiw5NywzMiwxMTIsMTExLAorICAgIDExNiwxMDEsMTEwLDExNiwxMDUsOTcsMTA4LDMyLDEwMCwxMDEsOTcsMTAwLDEwOCwxMTEsOTksMTA3LAorICAgIDMyLDEwNSwxMTUsMzIsMTAwLDEwMSwxMTYsMTAxLDk5LDExNiwxMDEsMTAwLDQ0LDEwLDMyLDMyLAorICAgIDMyLDMyLDMyLDMyLDMyLDMyLDk3LDMyLDk1LDY4LDEwMSw5NywxMDAsMTA4LDExMSw5OSwKKyAgICAxMDcsNjksMTE0LDExNCwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTE0LDk3LDEwNSwxMTUsMTAxLDEwMCwKKyAgICA0NiwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3OSwxMTYsMTA0LDEwMSwxMTQsMTE5LAorICAgIDEwNSwxMTUsMTAxLDQ0LDMyLDExNiwxMDQsMTAxLDMyLDEwOCwxMTEsOTksMTA3LDMyLDEwNSwxMTUsCisgICAgMzIsOTcsMTA4LDExOSw5NywxMjEsMTE1LDMyLDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsMTAwLAorICAgIDMyLDk3LDExMCwxMDAsMzIsODQsMTE0LDExNywxMDEsMzIsMTA1LDExNSwzMiwxMTQsMTAxLDExNiwKKyAgICAxMTcsMTE0LDExMCwxMDEsMTAwLDQ2LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDEwNSwKKyAgICAwLDAsMCwwLDEwNSwxLDAsMCwwLDExNywyMywwLDAsMCwxMDAsMTAxLAorICAgIDk3LDEwMCwxMDgsMTExLDk5LDEwNywzMiwxMDAsMTAxLDExNiwxMDEsOTksMTE2LDEwMSwxMDAsMzIsCisgICAgOTgsMTIxLDMyLDM3LDExNCw3OCw4NCw3MCw0MCwxNCwwLDAsMCwxMTcsNywwLAorICAgIDAsMCw5NSwxMTYsMTA0LDExNCwxMDEsOTcsMTAwLDExNyw5LDAsMCwwLDEwMywxMDEsCisgICAgMTE2LDk1LDEwNSwxMDAsMTAxLDExMCwxMTYsMTE3LDEyLDAsMCwwLDk1LDk4LDEwOCwxMTEsCisgICAgOTksMTA3LDEwNSwxMTAsMTAzLDk1LDExMSwxMTAsMTE3LDQsMCwwLDAsMTA4LDExMSw5OSwKKyAgICAxMDcsMTE3LDUsMCwwLDAsOTksMTExLDExNywxMTAsMTE2LDExNyw1LDAsMCwwLAorICAgIDExMSwxMTksMTEwLDEwMSwxMTQsMTE3LDQsMCwwLDAsODQsMTE0LDExNywxMDEsMTE3LDEyLAorICAgIDAsMCwwLDEwNCw5NywxMTUsOTUsMTAwLDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsMTE3LAorICAgIDE0LDAsMCwwLDk1LDY4LDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsNjksMTE0LDExNCwKKyAgICAxMTEsMTE0LDExNyw2LDAsMCwwLDExOSw5NywxMDcsMTAxLDExNywxMTIsMTE3LDcsMCwKKyAgICAwLDAsOTcsOTksMTEzLDExNywxMDUsMTE0LDEwMSwxMTcsNSwwLDAsMCw3MCw5NywKKyAgICAxMDgsMTE1LDEwMSwxMTcsNywwLDAsMCwxMTksOTcsMTA1LDExNiwxMDEsMTE0LDExNSwxMTcsCisgICAgNywwLDAsMCwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSw0MCwyLDAsMCwwLAorICAgIDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsMywwLDAsMCwxMTYsMTA1LAorICAgIDEwMCw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLAorICAgIDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsCisgICAgOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw3LDAsCisgICAgMCwwLDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsMjAwLDAsMCwwLDExNSwzMiwwLAorICAgIDAsMCwwLDYsMTIsMSwxMCwxLDMsMSwzLDEsMTAsMSwzMCwxLAorICAgIDksMSwxNSwxLDQsMSwxMiwxLDE5LDEsMTgsMSwyNCwyLDEzLDEsCisgICAgMjAsMiwxMTcsMTksMCwwLDAsOTUsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsCisgICAgOTksMTA3LDQ2LDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsOTksMSwwLDAsMCwwLAorICAgIDAsMCwwLDIsMCwwLDAsMTAsMCwwLDAsNjcsMCwwLDAsMTE1LAorICAgIDE2NSwwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTMxLDAsMCwxMjUsMSwwLAorICAgIDEyNCwwLDAsMTA2LDIsMCwxNDMsMTM4LDAsMSwxMjQsMCwwLDEwNiwzLDAsCisgICAgMTI0LDEsMCwxMDcsMywwLDExNCw1MiwwLDExNiw0LDAsMTAwLDEsMCwxMzEsCisgICAgMSwwLDEzMCwxLDAsMTEwLDAsMCwxMjQsMCwwLDEwNiw1LDAsMTAwLDIsCisgICAgMCwxMDcsNCwwLDExNSw3MywwLDExNiw2LDAsMTMwLDEsMCwxMjQsMCwwLAorICAgIDQsMTA2LDUsMCwxMDAsMywwLDU2LDIsOTUsNSwwLDEyNCwwLDAsMTA2LAorICAgIDUsMCwxMDAsMiwwLDEwNywyLDAsMTE0LDE1NSwwLDEwMCwwLDAsMTI0LDAsCisgICAgMCw5NSwzLDAsMTI0LDAsMCwxMDYsOCwwLDExNCwxNTUsMCwxMjQsMCwwLAorICAgIDQsMTA2LDgsMCwxMDAsMywwLDU2LDIsOTUsOCwwLDEyNCwwLDAsMTA2LAorICAgIDksMCwxMDYsMTAsMCwxMzEsMCwwLDEsMTEzLDE1NSwwLDExMCwwLDAsODcsCisgICAgMTAwLDAsMCw4MSw4OCwxMDAsMCwwLDgzLDQwLDQsMCwwLDAsNzgsMTE3LAorICAgIDMxLDAsMCwwLDk5LDk3LDExMCwxMTAsMTExLDExNiwzMiwxMTQsMTAxLDEwOCwxMDEsOTcsCisgICAgMTE1LDEwMSwzMiwxMTcsMTEwLDQ1LDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsMTAwLDMyLDEwOCwKKyAgICAxMTEsOTksMTA3LDEwNSwwLDAsMCwwLDEwNSwxLDAsMCwwLDQwLDExLDAsCisgICAgMCwwLDExNyw3LDAsMCwwLDk1LDExNiwxMDQsMTE0LDEwMSw5NywxMDAsMTE3LDksCisgICAgMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTA1LDEwMCwxMDEsMTEwLDExNiwxMTcsNCwwLDAsCisgICAgMCwxMDgsMTExLDk5LDEwNywxMTcsNSwwLDAsMCwxMTEsMTE5LDExMCwxMDEsMTE0LDExNywKKyAgICAxMiwwLDAsMCw4MiwxMTcsMTEwLDExNiwxMDUsMTA5LDEwMSw2OSwxMTQsMTE0LDExMSwxMTQsCisgICAgMTE3LDUsMCwwLDAsOTksMTExLDExNywxMTAsMTE2LDExNywxNCwwLDAsMCw2NSwKKyAgICAxMTUsMTE1LDEwMSwxMTQsMTE2LDEwNSwxMTEsMTEwLDY5LDExNCwxMTQsMTExLDExNCwxMTcsNCwwLAorICAgIDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsNywwLDAsMCwxMTksOTcsMTA1LDExNiwxMDEsCisgICAgMTE0LDExNSwxMTcsNiwwLDAsMCwxMTksOTcsMTA3LDEwMSwxMTcsMTEyLDExNyw3LDAsCisgICAgMCwwLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLDQwLDIsMCwwLDAsMTE3LDQsCisgICAgMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNywzLDAsMCwwLDExNiwxMDUsMTAwLDQwLAorICAgIDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLAorICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0NiwKKyAgICA5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDcsMCwwLDAsCisgICAgMTE0LDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsMjI1LDAsMCwwLDExNSwyMiwwLDAsMCwKKyAgICAwLDEsMTIsMSwxMCwxLDE1LDEsMTUsMSwyMSwxLDE1LDEsMTUsMSwKKyAgICA5LDEsOSwxLDE1LDEsMTE3LDE5LDAsMCwwLDk1LDc3LDExMSwxMDAsMTE3LAorICAgIDEwOCwxMDEsNzYsMTExLDk5LDEwNyw0NiwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSw5OSwxLAorICAgIDAsMCwwLDAsMCwwLDAsMSwwLDAsMCw0LDAsMCwwLDY3LAorICAgIDAsMCwwLDExNSwyMywwLDAsMCwxMDAsMSwwLDEyNCwwLDAsMTA2LDAsCisgICAgMCwxMTYsMSwwLDEyNCwwLDAsMTMxLDEsMCwxMDIsMiwwLDIyLDgzLDQwLAorICAgIDIsMCwwLDAsNzgsMTE3LDIxLDAsMCwwLDk1LDc3LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsNzYsMTExLDk5LDEwNyw0MCwzNywxMTQsNDEsMzIsOTcsMTE2LDMyLDM3LDEwMCw0MCwKKyAgICAyLDAsMCwwLDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNywyLDAsCisgICAgMCwwLDEwNSwxMDAsNDAsMSwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLAorICAgIDEwOCwxMDIsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsCisgICAgMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsCisgICAgMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwKKyAgICAwLDAsMCw5NSw5NSwxMTQsMTAxLDExMiwxMTQsOTUsOTUsMjM4LDAsMCwwLDExNSwKKyAgICAyLDAsMCwwLDAsMSwxMTcsMjAsMCwwLDAsOTUsNzcsMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSw3NiwxMTEsOTksMTA3LDQ2LDk1LDk1LDExNCwxMDEsMTEyLDExNCw5NSw5NSw3OCwKKyAgICA0MCw5LDAsMCwwLDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLAorICAgIDk1LDk1LDExNywxMCwwLDAsMCw5NSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwKKyAgICA5NSwxMTcsMTIsMCwwLDAsOTUsOTUsMTEzLDExNyw5NywxMDgsMTEwLDk3LDEwOSwxMDEsCisgICAgOTUsOTUsMTE3LDcsMCwwLDAsOTUsOTUsMTAwLDExMSw5OSw5NSw5NSwxMTcsOCwKKyAgICAwLDAsMCw5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsMTE3LDEyLDAsMCwwLAorICAgIDEwNCw5NywxMTUsOTUsMTAwLDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsMTE3LDcsMCwwLAorICAgIDAsOTcsOTksMTEzLDExNywxMDUsMTE0LDEwMSwxMTcsNywwLDAsMCwxMTQsMTAxLDEwOCwKKyAgICAxMDEsOTcsMTE1LDEwMSwxMTcsOCwwLDAsMCw5NSw5NSwxMTQsMTAxLDExMiwxMTQsOTUsCisgICAgOTUsNDAsMSwwLDAsMCwxMTcsMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5OSwKKyAgICA5NywxMDgsMTE1LDk1LDk1LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsCisgICAgMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLAorICAgIDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsCisgICAgNjIsMTE3LDExLDAsMCwwLDk1LDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsNzYsMTExLDk5LAorICAgIDEwNywxNzQsMCwwLDAsMTE1LDEyLDAsMCwwLDE2LDQsNiwyLDEyLDgsCisgICAgMTIsMTIsMTIsMjUsMTIsMTMsMTE3LDExLDAsMCwwLDk1LDc3LDExMSwxMDAsMTE3LAorICAgIDEwOCwxMDEsNzYsMTExLDk5LDEwNyw5OSwxLDAsMCwwLDAsMCwwLDAsMSwKKyAgICAwLDAsMCwyLDAsMCwwLDY2LDAsMCwwLDExNSw3NCwwLDAsMCwKKyAgICAxMjQsMCwwLDY5LDEwMSwwLDAsOTAsMSwwLDEwMCwwLDAsOTAsMiwwLAorICAgIDEwMCwxLDAsOTAsMywwLDEwMCwyLDAsMTAwLDMsMCwxMzIsMCwwLDkwLAorICAgIDQsMCwxMDAsNCwwLDEwMCw1LDAsMTMyLDAsMCw5MCw1LDAsMTAwLDYsCisgICAgMCwxMDAsNywwLDEzMiwwLDAsOTAsNiwwLDEwMCw4LDAsMTAwLDksMCwKKyAgICAxMzIsMCwwLDkwLDcsMCwxMDAsMTAsMCw4Myw0MCwxMSwwLDAsMCwxMTcsCisgICAgMTYsMCwwLDAsOTUsNjgsMTE3LDEwOSwxMDksMTIxLDc3LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgNzYsMTExLDk5LDEwNywxMTcsODYsMCwwLDAsNjUsMzIsMTE1LDEwNSwxMDksMTEyLDEwOCwKKyAgICAxMDEsMzIsOTUsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsOTksMTA3LDMyLDEwMSwxMTMsCisgICAgMTE3LDEwNSwxMTgsOTcsMTA4LDEwMSwxMTAsMTE2LDMyLDEwMiwxMTEsMTE0LDMyLDgwLDEyMSwxMTYsCisgICAgMTA0LDExMSwxMTAsMzIsOTgsMTE3LDEwNSwxMDgsMTAwLDExNSwzMiwxMTksMTA1LDExNiwxMDQsMTExLAorICAgIDExNywxMTYsMTAsMzIsMzIsMzIsMzIsMTA5LDExNywxMDgsMTE2LDEwNSw0NSwxMTYsMTA0LDExNCwKKyAgICAxMDEsOTcsMTAwLDEwNSwxMTAsMTAzLDMyLDExNSwxMTcsMTEyLDExMiwxMTEsMTE0LDExNiw0Niw5OSwKKyAgICAyLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwyLDAsMCwwLAorICAgIDY3LDAsMCwwLDExNSwyMiwwLDAsMCwxMjQsMSwwLDEyNCwwLDAsOTUsCisgICAgMCwwLDEwMCwxLDAsMTI0LDAsMCw5NSwxLDAsMTAwLDAsMCw4Myw0MCwKKyAgICAyLDAsMCwwLDc4LDEwNSwwLDAsMCwwLDQwLDIsMCwwLDAsMTE3LAorICAgIDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDUsMCwwLDAsOTksMTExLDExNywKKyAgICAxMTAsMTE2LDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLAorICAgIDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwKKyAgICAwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsCisgICAgMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsCisgICAgMTE2LDExNCw5NywxMTIsNjIsMTE3LDgsMCwwLDAsOTUsOTUsMTA1LDExMCwxMDUsMTE2LAorICAgIDk1LDk1LDI0NiwwLDAsMCwxMTUsNCwwLDAsMCwwLDEsOSwxLDExNywKKyAgICAyNSwwLDAsMCw5NSw2OCwxMTcsMTA5LDEwOSwxMjEsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSwKKyAgICA3NiwxMTEsOTksMTA3LDQ2LDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSw5OSwxLDAsCisgICAgMCwwLDAsMCwwLDAsMSwwLDAsMCwzLDAsMCwwLDY3LDAsCisgICAgMCwwLDExNSwxOSwwLDAsMCwxMjQsMCwwLDQsMTA2LDAsMCwxMDAsMSwKKyAgICAwLDU1LDIsOTUsMCwwLDEwMCwyLDAsODMsNDAsMywwLDAsMCw3OCwKKyAgICAxMDUsMSwwLDAsMCw4NCw0MCwyLDAsMCwwLDExNyw1LDAsMCwwLAorICAgIDk5LDExMSwxMTcsMTEwLDExNiwxMTcsNCwwLDAsMCw4NCwxMTQsMTE3LDEwMSw0MCwxLAorICAgIDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiw0MCwwLDAsMCwKKyAgICAwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwKKyAgICAxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLAorICAgIDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw3LDAsMCwwLDk3LDk5LDExMywKKyAgICAxMTcsMTA1LDExNCwxMDEsMjUwLDAsMCwwLDExNSw0LDAsMCwwLDAsMSwxNSwKKyAgICAxLDExNywyNCwwLDAsMCw5NSw2OCwxMTcsMTA5LDEwOSwxMjEsNzcsMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSw3NiwxMTEsOTksMTA3LDQ2LDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsOTksMSwKKyAgICAwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMywwLDAsMCw2NywKKyAgICAwLDAsMCwxMTUsNDksMCwwLDAsMTI0LDAsMCwxMDYsMCwwLDEwMCwxLAorICAgIDAsMTA3LDIsMCwxMTQsMzAsMCwxMTYsMSwwLDEwMCwyLDAsMTMxLDEsMCwKKyAgICAxMzAsMSwwLDExMCwwLDAsMTI0LDAsMCw0LDEwNiwwLDAsMTAwLDMsMCwKKyAgICA1NiwyLDk1LDAsMCwxMDAsMCwwLDgzLDQwLDQsMCwwLDAsNzgsMTA1LAorICAgIDAsMCwwLDAsMTE3LDMxLDAsMCwwLDk5LDk3LDExMCwxMTAsMTExLDExNiwzMiwKKyAgICAxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSwzMiwxMTcsMTEwLDQ1LDk3LDk5LDExMywxMTcsMTA1LAorICAgIDExNCwxMDEsMTAwLDMyLDEwOCwxMTEsOTksMTA3LDEwNSwxLDAsMCwwLDQwLDIsMCwKKyAgICAwLDAsMTE3LDUsMCwwLDAsOTksMTExLDExNywxMTAsMTE2LDExNywxMiwwLDAsCisgICAgMCw4MiwxMTcsMTEwLDExNiwxMDUsMTA5LDEwMSw2OSwxMTQsMTE0LDExMSwxMTQsNDAsMSwwLAorICAgIDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsNDAsMCwwLDAsMCwKKyAgICA0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLAorICAgIDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsCisgICAgMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsNywwLDAsMCwxMTQsMTAxLDEwOCwxMDEsCisgICAgOTcsMTE1LDEwMSwyNTQsMCwwLDAsMTE1LDYsMCwwLDAsMCwxLDE1LDEsCisgICAgMTUsMSwxMTcsMjQsMCwwLDAsOTUsNjgsMTE3LDEwOSwxMDksMTIxLDc3LDExMSwxMDAsCisgICAgMTE3LDEwOCwxMDEsNzYsMTExLDk5LDEwNyw0NiwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSw5OSwKKyAgICAxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCw0LDAsMCwwLAorICAgIDY3LDAsMCwwLDExNSwyMywwLDAsMCwxMDAsMSwwLDEyNCwwLDAsMTA2LAorICAgIDAsMCwxMTYsMSwwLDEyNCwwLDAsMTMxLDEsMCwxMDIsMiwwLDIyLDgzLAorICAgIDQwLDIsMCwwLDAsNzgsMTE3LDI2LDAsMCwwLDk1LDY4LDExNywxMDksMTA5LAorICAgIDEyMSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsNDAsMzcsMTE0LDQxLDMyLAorICAgIDk3LDExNiwzMiwzNywxMDAsNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCwxMTAsCisgICAgOTcsMTA5LDEwMSwxMTcsMiwwLDAsMCwxMDUsMTAwLDQwLDEsMCwwLDAsMTE3LAorICAgIDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDQwLDAsMCwwLDAsNDAsMCwwLAorICAgIDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LAorICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LAorICAgIDExNCw5NywxMTIsNjIsMTE3LDgsMCwwLDAsOTUsOTUsMTE0LDEwMSwxMTIsMTE0LDk1LAorICAgIDk1LDMsMSwwLDAsMTE1LDIsMCwwLDAsMCwxLDExNywyNSwwLDAsCisgICAgMCw5NSw2OCwxMTcsMTA5LDEwOSwxMjEsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSw3NiwxMTEsOTksCisgICAgMTA3LDQ2LDk1LDk1LDExNCwxMDEsMTEyLDExNCw5NSw5NSw3OCw0MCw4LDAsMCwwLAorICAgIDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDExNywxMCwwLAorICAgIDAsMCw5NSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSw5NSwxMTcsMTIsMCwwLAorICAgIDAsOTUsOTUsMTEzLDExNyw5NywxMDgsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDcsMCwKKyAgICAwLDAsOTUsOTUsMTAwLDExMSw5OSw5NSw5NSwxMTcsOCwwLDAsMCw5NSw5NSwKKyAgICAxMDUsMTEwLDEwNSwxMTYsOTUsOTUsMTE3LDcsMCwwLDAsOTcsOTksMTEzLDExNywxMDUsCisgICAgMTE0LDEwMSwxMTcsNywwLDAsMCwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LDEwMSwxMTcsOCwKKyAgICAwLDAsMCw5NSw5NSwxMTQsMTAxLDExMiwxMTQsOTUsOTUsNDAsMSwwLDAsMCwKKyAgICAxMTcsMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5OSw5NywxMDgsMTE1LDk1LDk1LDQwLAorICAgIDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLAorICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0NiwKKyAgICA5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE2LDAsMCwwLAorICAgIDk1LDY4LDExNywxMDksMTA5LDEyMSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwxMDcsCisgICAgMjQyLDAsMCwwLDExNSwxMCwwLDAsMCwxNiwyLDYsMiwxMiw0LDEyLAorICAgIDQsMTIsNSwxMTcsMTYsMCwwLDAsOTUsNjgsMTE3LDEwOSwxMDksMTIxLDc3LDExMSwKKyAgICAxMDAsMTE3LDEwOCwxMDEsNzYsMTExLDk5LDEwNyw5OSwxLDAsMCwwLDAsMCwwLAorICAgIDAsMywwLDAsMCwzLDAsMCwwLDMsMCwwLDAsMTE1LDEzMiwwLAorICAgIDAsMCwxMDAsMywwLDEyNSwxLDAsMTM2LDAsMCwxMTYsMSwwLDEwNyw2LAorICAgIDAsMTE0LDM0LDAsMTE2LDEsMCwxMzYsMCwwLDI1LDEzMSwwLDAsMTI1LDEsCisgICAgMCwxMTAsMCwwLDEyNCwxLDAsMTAwLDMsMCwxMDcsOCwwLDExNCwxMjgsMCwKKyAgICAxMTYsMiwwLDEwMCwzLDAsMTA3LDgsMCwxMTQsNzMsMCwxMTYsMywwLDEzNiwKKyAgICAwLDAsMTMxLDEsMCwxMjUsMSwwLDExMCwxMiwwLDExNiw0LDAsMTM2LDAsCisgICAgMCwxMzEsMSwwLDEyNSwxLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwxLDAsCisgICAgMTAwLDIsMCwxMzQsMCwwLDEyNSwyLDAsMTE2LDUsMCwxMDYsNiwwLDEyNCwKKyAgICAxLDAsMTI0LDIsMCwxMzEsMiwwLDExNiwxLDAsMTM2LDAsMCw2MCwxMTAsCisgICAgMCwwLDEyNCwxLDAsODMsNDAsNCwwLDAsMCwxMTcsMTA5LDAsMCwwLAorICAgIDcxLDEwMSwxMTYsMzIsMTExLDExNCwzMiw5OSwxMTQsMTAxLDk3LDExNiwxMDEsMzIsMTE2LDEwNCwKKyAgICAxMDEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA4LDExMSw5OSwxMDcsMzIsMTAyLDExMSwKKyAgICAxMTQsMzIsOTcsMzIsMTAzLDEwNSwxMTgsMTAxLDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwKKyAgICAzMiwxMTAsOTcsMTA5LDEwMSw0NiwxMCwxMCwzMiwzMiwzMiwzMiw4MywxMDQsMTExLDExNywKKyAgICAxMDgsMTAwLDMyLDExMSwxMTAsMTA4LDEyMSwzMiw5OCwxMDEsMzIsOTksOTcsMTA4LDEwOCwxMDEsCisgICAgMTAwLDMyLDExOSwxMDUsMTE2LDEwNCwzMiwxMTYsMTA0LDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwzMiwxMDgsMTExLDk5LDEwNywzMiwxMTYsOTcsMTA3LDEwMSwxMTAsNDYsOTksMSwwLAorICAgIDAsMCwwLDAsMCwwLDEsMCwwLDAsMiwwLDAsMCwxOSwwLAorICAgIDAsMCwxMTUsMTEsMCwwLDAsMTE2LDAsMCwxMzYsMCwwLDYxLDEwMCwwLAorICAgIDAsODMsNDAsMSwwLDAsMCw3OCw0MCwxLDAsMCwwLDExNywxMywwLAorICAgIDAsMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMDgsMTExLDk5LDEwNywxMTUsNDAsCisgICAgMSwwLDAsMCwxMTcsMSwwLDAsMCw5NSw0MCwxLDAsMCwwLDExNywKKyAgICA0LDAsMCwwLDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsMTE3LDI5LDAsCisgICAgMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAorICAgIDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywKKyAgICAyLDAsMCwwLDk5LDk4LDIxLDEsMCwwLDExNSwyLDAsMCwwLDAsCisgICAgMSwxMTcsMjgsMCwwLDAsOTUsMTAzLDEwMSwxMTYsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsOTUsMTA4LDExMSw5OSwxMDcsNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLDQ2LAorICAgIDk5LDk4LDc4LDQwLDcsMCwwLDAsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwKKyAgICAxMDEsMTE3LDEzLDAsMCwwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwOCwxMTEsCisgICAgOTksMTA3LDExNSwxMTcsNywwLDAsMCw5NSwxMTYsMTA0LDExNCwxMDEsOTcsMTAwLDExNywKKyAgICAxNiwwLDAsMCw5NSw2OCwxMTcsMTA5LDEwOSwxMjEsNzcsMTExLDEwMCwxMTcsMTA4LDEwMSwKKyAgICA3NiwxMTEsOTksMTA3LDExNywxMSwwLDAsMCw5NSw3NywxMTEsMTAwLDExNywxMDgsMTAxLAorICAgIDc2LDExMSw5OSwxMDcsMTE3LDgsMCwwLDAsOTUsMTE5LDEwMSw5NywxMDcsMTE0LDEwMSwKKyAgICAxMDIsMTE3LDMsMCwwLDAsMTE0LDEwMSwxMDIsNDAsMywwLDAsMCwxMTcsNCwKKyAgICAwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTcsNCwwLDAsMCwxMDgsMTExLDk5LDEwNywKKyAgICAxMTcsMiwwLDAsMCw5OSw5OCw0MCwwLDAsMCwwLDQwLDEsMCwwLAorICAgIDAsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDI5LDAsMCwwLDYwLAorICAgIDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsCisgICAgNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNiwwLDAsCisgICAgMCw5NSwxMDMsMTAxLDExNiw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMDgsMTExLDk5LAorICAgIDEwNyw5LDEsMCwwLDExNSwyMCwwLDAsMCwwLDQsNiwxLDEyLDEsCisgICAgMTYsMSwxMiwxLDEyLDEsMTUsMiwxMiwxLDE4LDIsMjUsMSwxMTcsMTYsCisgICAgMCwwLDAsOTUsMTAzLDEwMSwxMTYsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTA4LAorICAgIDExMSw5OSwxMDcsOTksMSwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsCisgICAgMTEsMCwwLDAsNjcsMCwwLDAsMTE1LDcxLDAsMCwwLDExNiwwLDAsCisgICAgMTI0LDAsMCwxMzEsMSwwLDEyNSwxLDAsMTE2LDEsMCwxMDYsMiwwLDEzMSwKKyAgICAwLDAsMSwxMjEsMTQsMCwxMjQsMSwwLDEwNiwzLDAsMTMxLDAsMCwxLAorICAgIDg3LDExMCwxOCwwLDQsMTE2LDQsMCwxMDcsMTAsMCwxMTQsNTYsMCwxLDEsCisgICAgMSw4OSwxMTAsMTEsMCw4OCwxMjQsMSwwLDEwNiw1LDAsMTMxLDAsMCwxLAorICAgIDEwMCwxLDAsODMsNDAsMiwwLDAsMCwxMTcsMjEsMSwwLDAsODIsMTAxLAorICAgIDEwOCwxMDEsOTcsMTE1LDEwMSwzMiwxMTYsMTA0LDEwMSwzMiwxMDMsMTA4LDExMSw5OCw5NywxMDgsCisgICAgMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTA4LDExMSw5OSwxMDcsNDQsMzIsOTcsMTEwLAorICAgIDEwMCwzMiw5Nyw5OSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsCisgICAgMTE0LDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsMzIsMTE2LDEwNCwxMDEsMTAsMzIsMzIsMzIsMzIsCisgICAgMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA4LDExMSw5OSwxMDcsMzIsMTAyLDExMSwxMTQsMzIsCisgICAgOTcsMzIsMTAzLDEwNSwxMTgsMTAxLDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMTAsCisgICAgOTcsMTA5LDEwMSw0NiwxMCwzMiwzMiwzMiwzMiw4NCwxMDQsMTA1LDExNSwzMiwxMDUsMTE1LAorICAgIDMyLDExNywxMTUsMTAxLDEwMCwzMiwxMTYsMTExLDMyLDEwMSwxMTAsMTE1LDExNywxMTQsMTAxLDMyLAorICAgIDk3LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwNSwxMTUsMzIsOTksMTExLDEwOSwxMTIsCisgICAgMTA4LDEwMSwxMTYsMTAxLDEwOCwxMjEsMzIsMTA1LDExMCwxMDUsMTE2LDEwNSw5NywxMDgsMTA1LDEyMiwKKyAgICAxMDEsMTAwLDQ0LDMyLDEwNSwxMTAsMzIsMTE2LDEwNCwxMDEsMTAsMzIsMzIsMzIsMzIsMTAxLAorICAgIDExOCwxMDEsMTEwLDExNiwzMiwxMDUsMTE2LDMyLDEwNSwxMTUsMzIsOTgsMTAxLDEwNSwxMTAsMTAzLAorICAgIDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsMzIsOTgsMTIxLDMyLDk3LDExMCwxMTEsCisgICAgMTE2LDEwNCwxMDEsMTE0LDMyLDExNiwxMDQsMTE0LDEwMSw5NywxMDAsNDYsMTAsMTAsMzIsMzIsCisgICAgMzIsMzIsODMsMTA0LDExMSwxMTcsMTA4LDEwMCwzMiwxMTEsMTEwLDEwOCwxMjEsMzIsOTgsMTAxLAorICAgIDMyLDk5LDk3LDEwOCwxMDgsMTAxLDEwMCwzMiwxMTksMTA1LDExNiwxMDQsMzIsMTE2LDEwNCwxMDEsCisgICAgMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTA4LDExMSw5OSwxMDcsMzIsMTE2LDk3LDEwNywKKyAgICAxMDEsMTEwLDQ2LDc4LDQwLDYsMCwwLDAsMTE3LDE2LDAsMCwwLDk1LDEwMywKKyAgICAxMDEsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwOCwxMTEsOTksMTA3LDExNyw0LAorICAgIDAsMCwwLDk1LDEwNSwxMDksMTEyLDExNywxMiwwLDAsMCwxMTQsMTAxLDEwOCwxMDEsCisgICAgOTcsMTE1LDEwMSw5NSwxMDgsMTExLDk5LDEwNywxMTcsNywwLDAsMCw5Nyw5OSwxMTMsCisgICAgMTE3LDEwNSwxMTQsMTAxLDExNywxNCwwLDAsMCw5NSw2OCwxMDEsOTcsMTAwLDEwOCwxMTEsCisgICAgOTksMTA3LDY5LDExNCwxMTQsMTExLDExNCwxMTcsNywwLDAsMCwxMTQsMTAxLDEwOCwxMDEsCisgICAgOTcsMTE1LDEwMSw0MCwyLDAsMCwwLDExNyw0LDAsMCwwLDExMCw5NywxMDksCisgICAgMTAxLDExNyw0LDAsMCwwLDEwOCwxMTEsOTksMTA3LDQwLDAsMCwwLDAsNDAsCisgICAgMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsCisgICAgMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwKKyAgICAxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE5LDAsMCwwLDk1LDEwOCwxMTEsOTksMTA3LAorICAgIDk1LDExNywxMTAsMTA4LDExMSw5OSwxMDcsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMjYsMSwKKyAgICAwLDAsMTE1LDE0LDAsMCwwLDAsNywxMiwxLDEwLDEsMywxLDE0LAorICAgIDEsMTMsMyw1LDIsMTE3LDE5LDAsMCwwLDk1LDEwOCwxMTEsOTksMTA3LDk1LAorICAgIDExNywxMTAsMTA4LDExMSw5OSwxMDcsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDExLDAsCisgICAgMCwwLDk1LDk1LDExMiwxMjEsOTksOTcsOTksMTA0LDEwMSw5NSw5NSwxMTcsMywwLAorICAgIDAsMCw0NiwxMTIsMTIxLDExNyw0LDAsMCwwLDQ2LDExMiwxMjEsOTksMTE3LDQsCisgICAgMCwwLDAsNDYsMTEyLDEyMSwxMTEsOTksMiwwLDAsMCwwLDAsMCwwLAorICAgIDEwLDAsMCwwLDYsMCwwLDAsNjcsMCwwLDAsMTE1LDEzNCwwLDAsCisgICAgMCwxMjQsMSwwLDEwMCw0LDAsMTA3LDgsMCwxMTQsMTgsMCwxMTYsMSwwLAorICAgIDExMCwzLDAsMTI0LDEsMCwxMjUsMiwwLDEyNCwyLDAsMTE0LDM5LDAsMTE2LAorICAgIDIsMCwxMjUsMywwLDExMCw2LDAsMTE2LDMsMCwxMjUsMywwLDExNiw0LAorICAgIDAsMTI0LDAsMCwxMzEsMSwwLDkyLDIsMCwxMjUsNCwwLDEyNSw1LDAsCisgICAgMTI0LDUsMCwxMDYsNSwwLDEwMCwxLDAsMTMxLDEsMCw5MiwzLDAsMTI1LAorICAgIDYsMCwxMjUsNywwLDEyNSw4LDAsMTAwLDIsMCwxMDYsNiwwLDEyNCw2LAorICAgIDAsMTI0LDcsMCwxMTYsNywwLDEyNCwzLDAsMTAwLDMsMCwyNSwxMDMsNCwKKyAgICAwLDEzMSwxLDAsMTI1LDksMCwxMTYsOCwwLDEyNCw0LDAsMTE2LDksMCwKKyAgICAxMjQsOSwwLDEzMSwzLDAsODMsNDAsNSwwLDAsMCwxMTcsMTYxLDEsMCwKKyAgICAwLDcxLDEwNSwxMTgsMTAxLDExMCwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwzMiwKKyAgICAxMTYsMTExLDMyLDk3LDMyLDQ2LDExMiwxMjEsMzIsMTAyLDEwNSwxMDgsMTAxLDQ0LDMyLDExNCwKKyAgICAxMDEsMTE2LDExNywxMTQsMTEwLDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDExNiwKKyAgICAxMTEsMzIsMTA1LDExNiwxMTUsMzIsNDYsMTEyLDEyMSw5OSw0Nyw0NiwxMTIsMTIxLDExMSwzMiwKKyAgICAxMDIsMTA1LDEwOCwxMDEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsODQsMTA0LDEwMSwzMiw0NiwKKyAgICAxMTIsMTIxLDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMDAsMTExLDEwMSwxMTUsMzIsMTEwLDExMSwxMTYsCisgICAgMzIsMTEwLDEwMSwxMDEsMTAwLDMyLDExNiwxMTEsMzIsMTAxLDEyMCwxMDUsMTE1LDExNiw1OSwzMiwKKyAgICAxMTYsMTA0LDEwNSwxMTUsMzIsMTE1LDEwNSwxMDksMTEyLDEwOCwxMjEsMzIsMTE0LDEwMSwxMTYsMTE3LAorICAgIDExNCwxMTAsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDExNiwxMTEsMzIsCisgICAgMTE2LDEwNCwxMDEsMTAsMzIsMzIsMzIsMzIsNDYsMTEyLDEyMSw5OSw0Nyw0NiwxMTIsMTIxLAorICAgIDExMSwzMiwxMDIsMTA1LDEwOCwxMDEsMzIsOTksOTcsMTA4LDk5LDExNywxMDgsOTcsMTE2LDEwMSwKKyAgICAxMDAsMzIsOTcsMTE1LDMyLDEwNSwxMDIsMzIsMTE2LDEwNCwxMDEsMzIsNDYsMTEyLDEyMSwzMiwKKyAgICAxMDIsMTA1LDEwOCwxMDEsMzIsMTE5LDEwMSwxMTQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAorICAgIDEwMSwxMDAsNDYsMzIsMzIsODQsMTA0LDEwMSwzMiwxMDEsMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsCisgICAgMTExLDExMCwxMCwzMiwzMiwzMiwzMiwxMTksMTA1LDEwOCwxMDgsMzIsOTgsMTAxLDMyLDQ2LAorICAgIDExMiwxMjEsOTksMzIsMTE3LDExMCwxMDgsMTAxLDExNSwxMTUsMzIsOTUsOTUsMTAwLDEwMSw5OCwKKyAgICAxMTcsMTAzLDk1LDk1LDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTYsMzIsMTAwLDEwMSwxMDIsMTA1LAorICAgIDExMCwxMDEsMTAwLDQ0LDMyLDExNiwxMDQsMTAxLDExMCwzMiwxMDUsMTE2LDMyLDExOSwxMDUsMTA4LAorICAgIDEwOCwzMiw5OCwxMDEsMzIsNDYsMTEyLDEyMSwxMTEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsCisgICAgNzMsMTAyLDMyLDEwMCwxMDEsOTgsMTE3LDEwMyw5NSwxMTEsMTE4LDEwMSwxMTQsMTE0LDEwNSwxMDAsCisgICAgMTAxLDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTYsMzIsNzgsMTExLDExMCwxMDEsNDQsMzIsMTE2LAorICAgIDEwNCwxMDEsMTEwLDMyLDEwNSwxMTYsMzIsMTA5LDExNywxMTUsMTE2LDMyLDk4LDEwMSwzMiw5NywKKyAgICAzMiw5OCwxMTEsMTExLDEwOCwxMDEsOTcsMTEwLDMyLDk3LDExMCwxMDAsMzIsMTA1LDExNSwzMiwKKyAgICAxMTYsOTcsMTA3LDEwMSwxMTAsMzIsOTcsMTE1LDEwLDMyLDMyLDMyLDMyLDExNiwxMDQsMTAxLAorICAgIDMyLDExOCw5NywxMDgsMTE3LDEwMSwzMiwxMTEsMTAyLDMyLDk1LDk1LDEwMCwxMDEsOTgsMTE3LAorICAgIDEwMyw5NSw5NSwzMiwxMDUsMTEwLDExNSwxMTYsMTAxLDk3LDEwMCw0NiwxMCwxMCwzMiwzMiwKKyAgICAzMiwzMiwxMTcsMSwwLDAsMCw0NiwxMTcsMCwwLDAsMCwxMDUsMCwwLAorICAgIDAsMCw3OCw0MCwxMCwwLDAsMCwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLAorICAgIDEwMSwxMTcsOSwwLDAsMCw5NSw5NSwxMDAsMTAxLDk4LDExNywxMDMsOTUsOTUsMTE3LAorICAgIDIzLDAsMCwwLDY4LDY5LDY2LDg1LDcxLDk1LDY2LDg5LDg0LDY5LDY3LDc5LAorICAgIDY4LDY5LDk1LDgzLDg1LDcwLDcwLDczLDg4LDY5LDgzLDExNywyNywwLDAsMCwKKyAgICA3OSw4MCw4NCw3Myw3Nyw3Myw5MCw2OSw2OCw5NSw2Niw4OSw4NCw2OSw2Nyw3OSwKKyAgICA2OCw2OSw5NSw4Myw4NSw3MCw3MCw3Myw4OCw2OSw4MywxMTcsMTEsMCwwLDAsCisgICAgOTUsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExMiwxMDgsMTA1LDExNiwxMTcsOSwwLDAsMCwKKyAgICAxMTIsOTcsMTE0LDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDExNyw0LDAsMCwwLDEwNiwxMTEsCisgICAgMTA1LDExMCwxMTcsNCwwLDAsMCw5NSw4NCw2NSw3MSwxMTcsMTAsMCwwLDAsCisgICAgOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA2LDExMSwxMDUsMTEwLDExNyw4LDAsMCwwLDk1LAorICAgIDgwLDg5LDY3LDY1LDY3LDcyLDY5LDQwLDEwLDAsMCwwLDExNyw0LDAsMCwKKyAgICAwLDExMiw5NywxMTYsMTA0LDExNywxNCwwLDAsMCwxMDAsMTAxLDk4LDExNywxMDMsOTUsCisgICAgMTExLDExOCwxMDEsMTE0LDExNCwxMDUsMTAwLDEwMSwxMTcsNSwwLDAsMCwxMDAsMTAxLDk4LAorICAgIDExNywxMDMsMTE3LDgsMCwwLDAsMTE1LDExNywxMDIsMTAyLDEwNSwxMjAsMTAxLDExNSwxMTcsCisgICAgNCwwLDAsMCwxMDQsMTAxLDk3LDEwMCwxMTcsNCwwLDAsMCwxMTYsOTcsMTA1LAorICAgIDEwOCwxMTcsMTMsMCwwLDAsOTgsOTcsMTE1LDEwMSw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLAorICAgIDk3LDEwOSwxMDEsMTE3LDMsMCwwLDAsMTE1LDEwMSwxMTIsMTE3LDEsMCwwLDAsCisgICAgOTUsMTE3LDgsMCwwLDAsMTAyLDEwNSwxMDgsMTAxLDExMCw5NywxMDksMTAxLDQwLDAsCisgICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKKyAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKKyAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE3LDAsMCwwLDk5LAorICAgIDk3LDk5LDEwNCwxMDEsOTUsMTAyLDExNCwxMTEsMTA5LDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsCisgICAgNTgsMSwwLDAsMTE1LDE2LDAsMCwwLDAsMTEsMjQsMSw2LDEsOSwKKyAgICAyLDYsMSwxOCwxLDI0LDEsMzEsMSwxMTcsMTcsMCwwLDAsOTksOTcsCisgICAgOTksMTA0LDEwMSw5NSwxMDIsMTE0LDExMSwxMDksOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSw5OSwKKyAgICAxLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLAorICAgIDcxLDAsMCwwLDExNSw3NSwwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTA2LAorICAgIDIsMCwxMTQsNzEsMCwxMjQsMCwwLDEwNiwzLDAsMTAwLDYsMCwxMzEsMSwKKyAgICAwLDExNSw0MCwwLDEwMCwzLDAsMTI0LDAsMCwyMywxMjUsMCwwLDExMCwwLAorICAgIDAsMTE2LDQsMCwxMjQsMCwwLDEwNiw1LDAsMTI0LDEsMCwxNDAsMCwwLAorICAgIDEwMCw0LDAsMTE2LDAsMCwxMDYsNiwwLDEzMSwxLDEsMSwxMTAsMCwwLAorICAgIDEwMCw1LDAsODMsNDAsNywwLDAsMCwxMTcsNjEsMCwwLDAsODAsMTE0LAorICAgIDEwNSwxMTAsMTE2LDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDMyLAorICAgIDExNiwxMTEsMzIsMTE1LDExNiwxMDAsMTAxLDExNCwxMTQsMzIsMTA1LDEwMiwzMiw0NSwxMTgsNDcsCisgICAgODAsODksODQsNzIsNzksNzgsODYsNjksODIsNjYsNzksODMsNjksMzIsMTA1LDExNSwKKyAgICAzMiwxMTYsMTE3LDExNCwxMTAsMTAxLDEwMCwzMiwxMTEsMTEwLDQ2LDExNywxLDAsMCwwLAorICAgIDM1LDExNyw3LDAsMCwwLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLDExNywyLDAsCisgICAgMCwwLDM1LDMyLDExNyw0LDAsMCwwLDEwMiwxMDUsMTA4LDEwMSw3OCw0MCwyLAorICAgIDAsMCwwLDExNywxLDAsMCwwLDM1LDExNyw3LDAsMCwwLDEwNSwxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDMyLDQwLDcsMCwwLDAsMTE3LDMsMCwwLDAsMTE1LAorICAgIDEyMSwxMTUsMTE3LDUsMCwwLDAsMTAyLDEwOCw5NywxMDMsMTE1LDExNyw3LDAsMCwKKyAgICAwLDExOCwxMDEsMTE0LDk4LDExMSwxMTUsMTAxLDExNywxMCwwLDAsMCwxMTUsMTE2LDk3LAorICAgIDExNCwxMTYsMTE1LDExOSwxMDUsMTE2LDEwNCwxMTcsNSwwLDAsMCwxMTIsMTE0LDEwNSwxMTAsCisgICAgMTE2LDExNyw2LDAsMCwwLDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsMTE3LDYsMCwwLAorICAgIDAsMTE1LDExNiwxMDAsMTAxLDExNCwxMTQsNDAsMiwwLDAsMCwxMTcsNywwLDAsCisgICAgMCwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwxMTcsNCwwLDAsMCw5NywxMTQsMTAzLAorICAgIDExNSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLAorICAgIDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsCisgICAgOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNiwwLAorICAgIDAsMCw5NSwxMTgsMTAxLDExNCw5OCwxMTEsMTE1LDEwMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsCisgICAgMTAzLDEwMSw4MCwxLDAsMCwxMTUsOCwwLDAsMCwwLDIsMTIsMSwxNSwKKyAgICAxLDEzLDEsMTE3LDE2LDAsMCwwLDk1LDExOCwxMDEsMTE0LDk4LDExMSwxMTUsMTAxLAorICAgIDk1LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDk5LDEsMCwwLDAsMCwwLDAsCisgICAgMCwyLDAsMCwwLDMsMCwwLDAsMywwLDAsMCwxMTUsMzUsMCwKKyAgICAwLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwxLDAsMTAwLDIsMCwxMzQsMCwKKyAgICAwLDEyNSwxLDAsMTE2LDAsMCwxMjQsMSwwLDEzNiwwLDAsMTMxLDIsMCwKKyAgICAxLDEyNCwxLDAsODMsNDAsMywwLDAsMCwxMTcsMzksMCwwLDAsODMsCisgICAgMTAxLDExNiwzMiw5NSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsOTUsOTUsMzIsMTExLAorICAgIDExMCwzMiwxMTYsMTA0LDEwMSwzMiwxMTQsMTAxLDExNiwxMTcsMTE0LDExMCwxMDEsMTAwLDMyLDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDQ2LDk5LDAsMCwwLDAsMCwwLDAsMCwzLAorICAgIDAsMCwwLDQsMCwwLDAsMzEsMCwwLDAsMTE1LDEwMSwwLDAsMCwKKyAgICAxMzYsMCwwLDEyNCwwLDAsMTI0LDEsMCwxNDIsMCwwLDEyNSwyLDAsMTE2LAorICAgIDAsMCwxMjQsMiwwLDEwMCwxLDAsMTAwLDAsMCwxMzEsMywwLDEwMCwwLAorICAgIDAsMTA3LDgsMCwxMTQsOTcsMCwxMjQsMiwwLDEwNiwyLDAsMTI0LDIsMCwKKyAgICA5NSwzLDAsMTE2LDQsMCwxMjQsMiwwLDEwMCwyLDAsMTMxLDIsMCwxMTUsCisgICAgOTcsMCwxMjQsMiwwLDEwNiwzLDAsMTA2LDUsMCwxMDAsMywwLDEzMSwxLAorICAgIDAsMTAwLDQsMCwyNSwxMjQsMiwwLDk1LDMsMCwxMTMsOTcsMCwxMTAsMCwKKyAgICAwLDEyNCwyLDAsODMsNDAsNSwwLDAsMCw3OCwxMTcsMTEsMCwwLDAsCisgICAgOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LDExNyw4LDAsMCwwLAorICAgIDk1LDk1LDExMiw5NywxMTYsMTA0LDk1LDk1LDExNywxLDAsMCwwLDQ2LDEwNSwwLAorICAgIDAsMCwwLDQwLDYsMCwwLDAsMTE3LDcsMCwwLDAsMTAzLDEwMSwxMTYsCisgICAgOTcsMTE2LDExNiwxMTQsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDgsMCwKKyAgICAwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDExLDAsMCwwLDk1LAorICAgIDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwxMTcsNywwLDAsMCwxMDQsCisgICAgOTcsMTE1LDk3LDExNiwxMTYsMTE0LDExNywxMCwwLDAsMCwxMTQsMTEyLDk3LDExNCwxMTYsCisgICAgMTA1LDExNiwxMDUsMTExLDExMCw0MCwzLDAsMCwwLDExNyw0LDAsMCwwLDk3LAorICAgIDExNCwxMDMsMTE1LDExNyw2LDAsMCwwLDEwNywxMTksOTcsMTE0LDEwMywxMTUsMTE3LDYsCisgICAgMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDAsMSwwLDAsMCwxMTcsMywKKyAgICAwLDAsMCwxMDIsMTIwLDExMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCwKKyAgICA2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LAorICAgIDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTksMCwKKyAgICAwLDAsMTE1LDEwMSwxMTYsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDExOSwxMTQsCisgICAgOTcsMTEyLDExMiwxMDEsMTE0LDkwLDEsMCwwLDExNSwxMiwwLDAsMCwwLDEsCisgICAgMTUsMSwyNCwxLDEyLDEsMTUsMSwzMSwxLDExNyw0MCwwLDAsMCwxMTUsCisgICAgMTAxLDExNiw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsNDYsNjAsMTA4LDExMSw5OSw5NywKKyAgICAxMDgsMTE1LDYyLDQ2LDExNSwxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSwKKyAgICAxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw0MCwxLDAsMCwwLDExNyw1LDAsMCwKKyAgICAwLDk1LDExOSwxMTQsOTcsMTEyLDQwLDIsMCwwLDAsMTE3LDMsMCwwLDAsCisgICAgMTAyLDEyMCwxMTAsMTE3LDE5LDAsMCwwLDExNSwxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsCisgICAgOTcsMTAzLDEwMSw5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw0MCwwLDAsMCwwLAorICAgIDQwLDEsMCwwLDAsMTE3LDMsMCwwLDAsMTAyLDEyMCwxMTAsMTE3LDI5LDAsCisgICAgMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAorICAgIDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywKKyAgICAxMSwwLDAsMCwxMTUsMTAxLDExNiw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsODgsCisgICAgMSwwLDAsMTE1LDYsMCwwLDAsMCwyLDE4LDcsMTMsMSwxMTcsMTEsCisgICAgMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk5LDEsCisgICAgMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDMsMCwwLDAsMywKKyAgICAwLDAsMCwxMTUsMzUsMCwwLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwxLAorICAgIDAsMTAwLDIsMCwxMzQsMCwwLDEyNSwxLDAsMTE2LDAsMCwxMjQsMSwwLAorICAgIDEzNiwwLDAsMTMxLDIsMCwxLDEyNCwxLDAsODMsNDAsMywwLDAsMCwKKyAgICAxMTcsMzgsMCwwLDAsODMsMTAxLDExNiwzMiw5NSw5NSwxMDgsMTExLDk3LDEwMCwxMDEsCisgICAgMTE0LDk1LDk1LDMyLDExMSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsMTE0LDEwMSwxMTYsMTE3LDExNCwKKyAgICAxMTAsMTAxLDEwMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0Niw5OSwxLDAsMCwwLAorICAgIDAsMCwwLDAsNCwwLDAsMCw0LDAsMCwwLDMxLDAsMCwwLAorICAgIDExNSw0OSwwLDAsMCwxMzYsMCwwLDEyNCwwLDAsMTI0LDEsMCwxMjQsMiwKKyAgICAwLDE0MiwxLDAsMTI1LDMsMCwxMTYsMCwwLDEyNCwzLDAsMTAwLDEsMCwKKyAgICAxMzEsMiwwLDExNSw0NSwwLDEyNCwwLDAsMTI0LDMsMCw5NSwxLDAsMTEwLAorICAgIDAsMCwxMjQsMywwLDgzLDQwLDIsMCwwLDAsNzgsMTE3LDEwLDAsMCwKKyAgICAwLDk1LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsOTUsOTUsNDAsMiwwLDAsMCwKKyAgICAxMTcsNywwLDAsMCwxMDQsOTcsMTE1LDk3LDExNiwxMTYsMTE0LDExNywxMCwwLDAsCisgICAgMCw5NSw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk1LDk1LDQwLDQsMCwwLDAsCisgICAgMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDk3LDExNCwKKyAgICAxMDMsMTE1LDExNyw2LDAsMCwwLDEwNywxMTksOTcsMTE0LDEwMywxMTUsMTE3LDYsMCwKKyAgICAwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDAsMSwwLDAsMCwxMTcsMywwLAorICAgIDAsMCwxMDIsMTIwLDExMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwKKyAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LAorICAgIDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTgsMCwwLAorICAgIDAsMTE1LDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSwxMTksMTE0LDk3LDExMiwKKyAgICAxMTIsMTAxLDExNCwxMDMsMSwwLDAsMTE1LDgsMCwwLDAsMCwxLDE4LDEsCisgICAgMTUsMSwxMiwxLDExNywzOCwwLDAsMCwxMTUsMTAxLDExNiw5NSwxMDgsMTExLDk3LAorICAgIDEwMCwxMDEsMTE0LDQ2LDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2Miw0NiwxMTUsMTAxLDExNiwKKyAgICA5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk1LDExOSwxMTQsOTcsMTEyLDExMiwxMDEsMTE0LDQwLAorICAgIDEsMCwwLDAsMTE3LDUsMCwwLDAsOTUsMTE5LDExNCw5NywxMTIsNDAsMiwKKyAgICAwLDAsMCwxMTcsMywwLDAsMCwxMDIsMTIwLDExMCwxMTcsMTgsMCwwLDAsCisgICAgMTE1LDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSwxMTksMTE0LDk3LDExMiwxMTIsCisgICAgMTAxLDExNCw0MCwwLDAsMCwwLDQwLDEsMCwwLDAsMTE3LDMsMCwwLAorICAgIDAsMTAyLDEyMCwxMTAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLAorICAgIDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsCisgICAgMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMCwwLDAsMCwxMTUsMTAxLDExNiw5NSwxMDgsCisgICAgMTExLDk3LDEwMCwxMDEsMTE0LDEwMSwxLDAsMCwxMTUsNiwwLDAsMCwwLDIsCisgICAgMTgsNSwxMywxLDExNywxMCwwLDAsMCwxMTUsMTAxLDExNiw5NSwxMDgsMTExLDk3LAorICAgIDEwMCwxMDEsMTE0LDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLAorICAgIDMsMCwwLDAsMywwLDAsMCwxMTUsMzUsMCwwLDAsMTM1LDAsMCwKKyAgICAxMDIsMSwwLDEwMCwxLDAsMTAwLDIsMCwxMzQsMCwwLDEyNSwxLDAsMTE2LAorICAgIDAsMCwxMjQsMSwwLDEzNiwwLDAsMTMxLDIsMCwxLDEyNCwxLDAsODMsCisgICAgNDAsMywwLDAsMCwxMTcsNDIsMywwLDAsNjgsMTAxLDk5LDExMSwxMTQsOTcsCisgICAgMTE2LDExMSwxMTQsMzIsMTE2LDExMSwzMiwxMDQsOTcsMTEwLDEwMCwxMDgsMTAxLDMyLDExNSwxMDEsCisgICAgMTA4LDEwMSw5OSwxMTYsMTA1LDExMCwxMDMsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLDExNCwxMTEsMTEyLAorICAgIDEwMSwxMTQsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTAyLDExMSwxMTQsMzIsMTA4LDExMSwKKyAgICA5NywxMDAsMTAxLDExNCwxMTUsNDYsMTAsMTAsMzIsMzIsMzIsMzIsODQsMTA0LDEwMSwzMiwKKyAgICAxMDAsMTAxLDk5LDExMSwxMTQsOTcsMTE2LDEwMSwxMDAsMzIsMTAyLDExNywxMTAsOTksMTE2LDEwNSwKKyAgICAxMTEsMTEwLDMyLDEwNSwxMTUsMzIsMTEyLDk3LDExNSwxMTUsMTAxLDEwMCwzMiwxMTYsMTA0LDEwMSwKKyAgICAzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMTYsMTExLDMyLDExNywxMTUsMTAxLDMyLDEwNSwKKyAgICAxMTAsMTE1LDExNiwxMDEsOTcsMTAwLDMyLDExMSwxMDIsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDExMSwKKyAgICAxMDAsMTE3LDEwOCwxMDEsMTAsMzIsMzIsMzIsMzIsMTEwLDk3LDEwOSwxMDEsNDYsMzIsODQsCisgICAgMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMTIsOTcsMTE1LDExNSwxMDEsMTAwLAorICAgIDMyLDEwNSwxMTAsMzIsMTE2LDExMSwzMiwxMTYsMTA0LDEwMSwzMiwxMDIsMTE3LDExMCw5OSwxMTYsCisgICAgMTA1LDExMSwxMTAsMzIsMTA1LDExNSwzMiwxMDEsMTA1LDExNiwxMDQsMTAxLDExNCwzMiwxMDIsMTE0LAorICAgIDExMSwxMDksMzIsMTE1LDEyMSwxMTUsNDYsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLDEwNSwKKyAgICAxMDIsMTAsMzIsMzIsMzIsMzIsMTA1LDExNiwzMiw5NywxMDgsMTE0LDEwMSw5NywxMDAsMTIxLAorICAgIDMyLDEwMSwxMjAsMTA1LDExNSwxMTYsMTE1LDMyLDExMSwxMTQsMzIsMTA1LDExNSwzMiw5NywzMiwKKyAgICAxMTAsMTAxLDExOSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0NiwzMiw3MywxMDIsMzIsMTE2LAorICAgIDEwNCwxMDEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA1LDExNSwzMiwxMTAsMTAxLDExOSwKKyAgICA0NCwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTAsCisgICAgMzIsMzIsMzIsMzIsMTA1LDExNSwzMiwxMTUsMTAxLDExNiwzMiwxMTYsMTA0LDEwMSwzMiwxMDIsCisgICAgMTA1LDExNCwxMTUsMTE2LDMyLDk3LDExNCwxMDMsMTE3LDEwOSwxMDEsMTEwLDExNiwzMiwxMTYsMTExLAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDQ0LDMyLDk1LDk1LDEwOCwKKyAgICAxMTEsOTcsMTAwLDEwMSwxMTQsOTUsOTUsMzIsMTA1LDExNSwzMiwxMTUsMTAxLDExNiwzMiwxMTYsCisgICAgMTExLDMyLDExNSwxMDEsMTA4LDEwMiw0NCwzMiw5NywxMTAsMTAwLDEwLDMyLDMyLDMyLDMyLAorICAgIDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwzMiwxMDUsMTE1LDMyLDExNSwKKyAgICAxMDEsMTE2LDMyLDk3LDk5LDk5LDExMSwxMTQsMTAwLDEwNSwxMTAsMTAzLDEwOCwxMjEsMzIsNDAsCisgICAgMTA1LDEwMiwzMiwxMTUsMTAxLDEwOCwxMDIsNDYsMTA1LDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LAorICAgIDEwMywxMDEsNDAsNDEsMzIsMTA1LDExNSwzMiwxMDAsMTAxLDEwMiwxMDUsMTEwLDEwMSwxMDAsNDEsCisgICAgMzIsMTE5LDEwNSwxMDgsMTA4LDMyLDk4LDEwMSwzMiwxMTUsMTAxLDExNiwxMCwzMiwzMiwzMiwKKyAgICAzMiw5OCwxMDEsMTAyLDExMSwxMTQsMTAxLDMyLDEwNSwxMTYsMzIsMTA1LDExNSwzMiwxMTIsOTcsCisgICAgMTE1LDExNSwxMDEsMTAwLDMyLDExNiwxMTEsMzIsMTE2LDEwNCwxMDEsMzIsMTAwLDEwMSw5OSwxMTEsCisgICAgMTE0LDk3LDExNiwxMDEsMTAwLDMyLDEwMiwxMTcsMTEwLDk5LDExNiwxMDUsMTExLDExMCwzMiw0MCwKKyAgICAxMDUsMTAyLDMyLDExNSwxMDEsMTA4LDEwMiw0NiwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsCisgICAgMTAzLDEwMSw0MCw0MSwzMiwxMDAsMTExLDEwMSwxMTUsMTAsMzIsMzIsMzIsMzIsMTEwLDExMSwKKyAgICAxMTYsMzIsMTE5LDExMSwxMTQsMTA3LDMyLDEwMiwxMTEsMTE0LDMyLDExNiwxMDQsMTAxLDMyLDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwNSwxMTYsMzIsMTE5LDEwNSwxMDgsMTA4LDMyLDk4LDEwMSwKKyAgICAzMiwxMTUsMTAxLDExNiwzMiwxMTIsMTExLDExNSwxMTYsNDUsMTA4LDExMSw5NywxMDAsNDEsNDYsCisgICAgMTAsMTAsMzIsMzIsMzIsMzIsNzMsMTAyLDMyLDk3LDExMCwzMiwxMDEsMTIwLDk5LDEwMSwKKyAgICAxMTIsMTE2LDEwNSwxMTEsMTEwLDMyLDEwNSwxMTUsMzIsMTE0LDk3LDEwNSwxMTUsMTAxLDEwMCwzMiwKKyAgICA5NywxMTAsMTAwLDMyLDExNiwxMDQsMTAxLDMyLDEwMCwxMDEsOTksMTExLDExNCw5NywxMTYsMTExLAorICAgIDExNCwzMiw5OSwxMTQsMTAxLDk3LDExNiwxMDEsMTAwLDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMTEsCisgICAgMTAwLDExNywxMDgsMTAxLDMyLDEwNSwxMTYsMzIsMTA1LDExNSwxMCwzMiwzMiwzMiwzMiwxMTUsCisgICAgMTE3LDk4LDExNSwxMDEsMTEzLDExNywxMDEsMTEwLDExNiwxMDgsMTIxLDMyLDExNCwxMDEsMTA5LDExMSwKKyAgICAxMTgsMTAxLDEwMCwzMiwxMDIsMTE0LDExMSwxMDksMzIsMTE1LDEyMSwxMTUsNDYsMTA5LDExMSwxMDAsCisgICAgMTE3LDEwOCwxMDEsMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDg0LDEwNCwxMDEsMzIsMTAwLAorICAgIDEwMSw5OSwxMTEsMTE0LDk3LDExNiwxMTEsMTE0LDMyLDk3LDExNSwxMTUsMTE3LDEwOSwxMDEsMTE1LAorICAgIDMyLDExNiwxMDQsOTcsMTE2LDMyLDExNiwxMDQsMTAxLDMyLDEwMCwxMDEsOTksMTExLDExNCw5NywKKyAgICAxMTYsMTAxLDEwMCwzMiwxMDIsMTE3LDExMCw5OSwxMTYsMTA1LDExMSwxMTAsMzIsMTE2LDk3LDEwNywKKyAgICAxMDEsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMCw5NywKKyAgICAxMDksMTAxLDMyLDk3LDExNSwxMCwzMiwzMiwzMiwzMiwxMTYsMTA0LDEwMSwzMiwxMTUsMTAxLAorICAgIDk5LDExMSwxMTAsMTAwLDMyLDk3LDExNCwxMDMsMTE3LDEwOSwxMDEsMTEwLDExNiw0NiwxMCwxMCwKKyAgICAzMiwzMiwzMiwzMiw5OSwyLDAsMCwwLDAsMCwwLDAsNywwLDAsCisgICAgMCwyNSwwLDAsMCwzMSwwLDAsMCwxMTUsMjQ1LDAsMCwwLDExNiwwLAorICAgIDAsMTA2LDEsMCwxMDYsMiwwLDEyNCwxLDAsMTMxLDEsMCwxMjUsNCwwLAorICAgIDEyNCw0LDAsMTAwLDAsMCwxMDcsOSwwLDEyNSw1LDAsMTI0LDUsMCwxMTUsCisgICAgMTU5LDAsMTE2LDQsMCwxMjQsMSwwLDEzMSwxLDAsMTI1LDQsMCwxMjQsNCwKKyAgICAwLDExNiwwLDAsMTA2LDEsMCwxMjQsMSwwLDYwLDEyNCwwLDAsMTI0LDQsCisgICAgMCw5NSw1LDAsMTIxLDE5LDAsMTI0LDAsMCwxMDYsNiwwLDEyNCwxLDAsCisgICAgMTMxLDEsMCwxMjUsNiwwLDg3LDExMCwyNCwwLDQsMTE2LDcsMCwxMTYsOCwKKyAgICAwLDEwMiwyLDAsMTA3LDEwLDAsMTE0LDExNSwwLDEsMSwxLDg5LDExMywxNTksCisgICAgMCw4OCwxMjQsNiwwLDExNCwxMzQsMCwxMjQsMSwwLDEyNCw0LDAsOTUsOSwKKyAgICAwLDExMywxNTksMCwxMjQsMSwwLDEwNiwxMCwwLDEwMCwxLDAsMTMxLDEsMCwKKyAgICAxMDAsMiwwLDI1LDEyNCw0LDAsOTUsOSwwLDExMCwwLDAsMTIyLDY5LDAsCisgICAgMTIxLDMyLDAsMTAwLDMsMCwxMjQsNCwwLDk1LDEyLDAsMTM2LDAsMCwxMjQsCisgICAgMCwwLDEyNCw0LDAsMTI0LDIsMCwxMjQsMywwLDE0MiwyLDAsODMsODcsCisgICAgMTEwLDMwLDAsMSwxLDEsMTI0LDUsMCwxMTUsMjE5LDAsMTE2LDAsMCwxMDYsCisgICAgMSwwLDEyNCwxLDAsNjEsMTEwLDAsMCwxMzAsMCwwLDg5LDExMCwxLDAsCisgICAgODgsODcsMTAwLDAsMCwxMDAsNCwwLDEyNCw0LDAsOTUsMTIsMCw4OCwxMDAsCisgICAgMCwwLDgzLDQwLDUsMCwwLDAsNzgsMTE3LDEsMCwwLDAsNDYsMTA1LAorICAgIDAsMCwwLDAsODQsNzAsNDAsMTQsMCwwLDAsMTE3LDMsMCwwLDAsCisgICAgMTE1LDEyMSwxMTUsMTE3LDcsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDExNywKKyAgICAzLDAsMCwwLDEwMywxMDEsMTE2LDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLAorICAgIDExNywxMCwwLDAsMCwxMTAsMTAxLDExOSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsCisgICAgMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSw5NSwxMTcsMTAsCisgICAgMCwwLDAsMTA1LDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTE3LDExLDAsCisgICAgMCwwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsNjksMTE0LDExNCwxMTEsMTE0LDExNywxNCwwLAorICAgIDAsMCw2NSwxMTYsMTE2LDExNCwxMDUsOTgsMTE3LDExNiwxMDEsNjksMTE0LDExNCwxMTEsMTE0LAorICAgIDExNywxMSwwLDAsMCw5NSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsOTUsOTUsCisgICAgMTE3LDEwLDAsMCwwLDExNCwxMTIsOTcsMTE0LDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDExNywKKyAgICA0LDAsMCwwLDg0LDExNCwxMTcsMTAxLDExNywxNiwwLDAsMCw5NSw5NSwxMDUsCisgICAgMTEwLDEwNSwxMTYsMTA1LDk3LDEwOCwxMDUsMTIyLDEwNSwxMTAsMTAzLDk1LDk1LDExNyw1LDAsCisgICAgMCwwLDcwLDk3LDEwOCwxMTUsMTAxLDQwLDcsMCwwLDAsMTE3LDQsMCwwLAorICAgIDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsCisgICAgMTA5LDEwMSwxMTcsNCwwLDAsMCw5NywxMTQsMTAzLDExNSwxMTcsNiwwLDAsMCwKKyAgICAxMDcsMTE5LDk3LDExNCwxMDMsMTE1LDExNyw2LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsCisgICAgMTAxLDExNyw5LDAsMCwwLDEwNSwxMTUsOTUsMTE0LDEwMSwxMDgsMTExLDk3LDEwMCwxMTcsCisgICAgMTAsMCwwLDAsMTA1LDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsNDAsMSwKKyAgICAwLDAsMCwxMTcsMywwLDAsMCwxMDIsMTIwLDExMCw0MCwwLDAsMCwwLAorICAgIDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwKKyAgICAxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LAorICAgIDExMiw2MiwxMTcsMjUsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTAyLDExMSwKKyAgICAxMTQsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCwKKyAgICAxMzAsMSwwLDAsMTE1LDQyLDAsMCwwLDAsMSwxOCwxLDEyLDEsNiwKKyAgICA0LDEyLDEsMTMsMSw5LDEsMywxLDE5LDEsMTksMSw1LDIsNiwKKyAgICAxLDEyLDIsMjUsMSw2LDEsOSwyLDIzLDEsMywxLDYsMSwxMywKKyAgICAxLDEyLDIsMTE3LDUyLDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwMiwKKyAgICAxMTEsMTE0LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsCisgICAgMTE1LDYyLDQ2LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwMiwxMTEsMTE0LDk1LDEwOCwxMTEsCisgICAgOTcsMTAwLDEwMSwxMTQsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsNDAsMSwwLDAsCisgICAgMCwxMTcsNSwwLDAsMCw5NSwxMTksMTE0LDk3LDExMiw0MCwyLDAsMCwwLAorICAgIDExNywzLDAsMCwwLDEwMiwxMjAsMTEwLDExNywyNSwwLDAsMCwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSw5NSwxMDIsMTExLDExNCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk1LDExOSwKKyAgICAxMTQsOTcsMTEyLDExMiwxMDEsMTE0LDQwLDAsMCwwLDAsNDAsMSwwLDAsMCwKKyAgICAxMTcsMywwLDAsMCwxMDIsMTIwLDExMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKKyAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKKyAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE3LDAsMCwwLDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwMiwxMTEsMTE0LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgMTEyLDEsMCwwLDExNSw2LDAsMCwwLDAsMTgsMTgsMjksMTMsMSwxMTcsCisgICAgMTcsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTAyLDExMSwxMTQsOTUsMTA4LAorICAgIDExMSw5NywxMDAsMTAxLDExNCw5OSwxLDAsMCwwLDAsMCwwLDAsMiwwLAorICAgIDAsMCw0LDAsMCwwLDMsMCwwLDAsMTE1LDM4LDAsMCwwLDEwMCwKKyAgICAzLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwxLDAsMTAwLDIsMCwxMzQsMSwKKyAgICAwLDEyNSwxLDAsMTE2LDEsMCwxMjQsMSwwLDEzNiwwLDAsMTMxLDIsMCwKKyAgICAxLDEyNCwxLDAsODMsNDAsNCwwLDAsMCwxMTcsMjUyLDAsMCwwLDY4LAorICAgIDEwMSw5OSwxMTEsMTE0LDk3LDExNiwxMTEsMTE0LDMyLDExNiwxMTEsMzIsMTE4LDEwMSwxMTQsMTA1LAorICAgIDEwMiwxMjEsMzIsMTE2LDEwNCw5NywxMTYsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDExMSwxMDAsMTE3LAorICAgIDEwOCwxMDEsMzIsOTgsMTAxLDEwNSwxMTAsMTAzLDMyLDExNCwxMDEsMTEzLDExNywxMDEsMTE1LDExNiwKKyAgICAxMDEsMTAwLDMyLDEwOSw5NywxMTYsOTksMTA0LDEwMSwxMTUsMzIsMTE2LDEwNCwxMDEsMzIsMTExLAorICAgIDExMCwxMDEsMzIsMTE2LDEwNCwxMDEsMTAsMzIsMzIsMzIsMzIsMTA4LDExMSw5NywxMDAsMTAxLAorICAgIDExNCwzMiw5OSw5NywxMTAsMzIsMTA0LDk3LDExMCwxMDAsMTA4LDEwMSw0NiwxMCwxMCwzMiwKKyAgICAzMiwzMiwzMiw4NCwxMDQsMTAxLDMyLDEwMiwxMDUsMTE0LDExNSwxMTYsMzIsOTcsMTE0LDEwMywKKyAgICAxMTcsMTA5LDEwMSwxMTAsMTE2LDMyLDQwLDExNSwxMDEsMTA4LDEwMiw0MSwzMiwxMDksMTE3LDExNSwKKyAgICAxMTYsMzIsMTAwLDEwMSwxMDIsMTA1LDExMCwxMDEsMzIsOTUsMTEwLDk3LDEwOSwxMDEsMzIsMTE5LAorICAgIDEwNCwxMDUsOTksMTA0LDMyLDExNiwxMDQsMTAxLDMyLDExNSwxMDEsOTksMTExLDExMCwxMDAsMzIsCisgICAgOTcsMTE0LDEwMywxMTcsMTA5LDEwMSwxMTAsMTE2LDMyLDEwNSwxMTUsMTAsMzIsMzIsMzIsMzIsCisgICAgOTksMTExLDEwOSwxMTIsOTcsMTE0LDEwMSwxMDAsMzIsOTcsMTAzLDk3LDEwNSwxMTAsMTE1LDExNiwKKyAgICA0NiwzMiw3MywxMDIsMzIsMTE2LDEwNCwxMDEsMzIsOTksMTExLDEwOSwxMTIsOTcsMTE0LDEwNSwKKyAgICAxMTUsMTExLDExMCwzMiwxMDIsOTcsMTA1LDEwOCwxMTUsMzIsMTE2LDEwNCwxMDEsMTEwLDMyLDczLAorICAgIDEwOSwxMTIsMTExLDExNCwxMTYsNjksMTE0LDExNCwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTE0LDk3LAorICAgIDEwNSwxMTUsMTAxLDEwMCw0NiwxMCwxMCwzMiwzMiwzMiwzMiw5OSwyLDAsMCwwLAorICAgIDAsMCwwLDAsNCwwLDAsMCw1LDAsMCwwLDMxLDAsMCwwLAorICAgIDExNSw4MywwLDAsMCwxMjQsMSwwLDEwMCwwLDAsMTA3LDgsMCwxMTQsMjQsCisgICAgMCwxMjQsMCwwLDEwNiwxLDAsMTI1LDEsMCwxMTAsNDAsMCwxMjQsMCwwLAorICAgIDEwNiwxLDAsMTI0LDEsMCwxMDcsMywwLDExNCw2NCwwLDExNiwyLDAsMTAwLAorICAgIDEsMCwxMjQsMSwwLDIyLDEwMCwyLDAsMTI0LDEsMCwxMzEsMSwxLDEzMCwKKyAgICAxLDAsMTEwLDAsMCwxMzYsMCwwLDEyNCwwLDAsMTI0LDEsMCwxMjQsMiwKKyAgICAwLDEyNCwzLDAsMTQyLDIsMCw4Myw0MCwzLDAsMCwwLDc4LDExNywyMywKKyAgICAwLDAsMCwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDMyLDk5LDk3LDExMCwxMTAsMTExLDExNiwKKyAgICAzMiwxMDQsOTcsMTEwLDEwMCwxMDgsMTAxLDMyLDM3LDExNSwxMTcsNCwwLDAsMCwxMTAsCisgICAgOTcsMTA5LDEwMSw0MCwzLDAsMCwwLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsCisgICAgMTAxLDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNywxMSwwLDAsMCw3MywKKyAgICAxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCw0MCw0LDAsMCwwLDExNywKKyAgICA0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsNCwwLDAsMCwxMTAsOTcsMTA5LAorICAgIDEwMSwxMTcsNCwwLDAsMCw5NywxMTQsMTAzLDExNSwxMTcsNiwwLDAsMCwxMDcsCisgICAgMTE5LDk3LDExNCwxMDMsMTE1LDQwLDEsMCwwLDAsMTE3LDYsMCwwLDAsMTA5LAorICAgIDEwMSwxMTYsMTA0LDExMSwxMDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsCisgICAgMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCwKKyAgICA0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE5LDAsMCwKKyAgICAwLDk1LDk5LDEwNCwxMDEsOTksMTA3LDk1LDExMCw5NywxMDksMTAxLDk1LDExOSwxMTQsOTcsCisgICAgMTEyLDExMiwxMDEsMTE0LDE3MSwxLDAsMCwxMTUsMTAsMCwwLDAsMCwxLDEyLAorICAgIDEsMTIsMSwxNSwxLDI1LDEsMTE3LDQwLDAsMCwwLDk1LDk5LDEwNCwxMDEsCisgICAgOTksMTA3LDk1LDExMCw5NywxMDksMTAxLDQ2LDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2MiwKKyAgICA0Niw5NSw5OSwxMDQsMTAxLDk5LDEwNyw5NSwxMTAsOTcsMTA5LDEwMSw5NSwxMTksMTE0LDk3LAorICAgIDExMiwxMTIsMTAxLDExNCw3OCw0MCwyLDAsMCwwLDExNyw0LDAsMCwwLDc4LAorICAgIDExMSwxMTAsMTAxLDExNyw1LDAsMCwwLDk1LDExOSwxMTQsOTcsMTEyLDQwLDIsMCwKKyAgICAwLDAsMTE3LDYsMCwwLDAsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMTE3LDE5LDAsCisgICAgMCwwLDk1LDk5LDEwNCwxMDEsOTksMTA3LDk1LDExMCw5NywxMDksMTAxLDk1LDExOSwxMTQsCisgICAgOTcsMTEyLDExMiwxMDEsMTE0LDQwLDAsMCwwLDAsNDAsMSwwLDAsMCwxMTcsCisgICAgNiwwLDAsMCwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTcsMjksMCwwLDAsNjAsCisgICAgMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCwKKyAgICA0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDExLDAsMCwKKyAgICAwLDk1LDk5LDEwNCwxMDEsOTksMTA3LDk1LDExMCw5NywxMDksMTAxLDE2MywxLDAsMCwKKyAgICAxMTUsNiwwLDAsMCwwLDgsMjEsNiwxMywxLDExNywxMSwwLDAsMCwKKyAgICA5NSw5OSwxMDQsMTAxLDk5LDEwNyw5NSwxMTAsOTcsMTA5LDEwMSw5OSwxLDAsMCwwLAorICAgIDAsMCwwLDAsMiwwLDAsMCwzLDAsMCwwLDMsMCwwLDAsCisgICAgMTE1LDM1LDAsMCwwLDEzNSwwLDAsMTAyLDEsMCwxMDAsMSwwLDEwMCwyLAorICAgIDAsMTM0LDAsMCwxMjUsMSwwLDExNiwwLDAsMTI0LDEsMCwxMzYsMCwwLAorICAgIDEzMSwyLDAsMSwxMjQsMSwwLDgzLDQwLDMsMCwwLDAsMTE3LDQ5LDAsCisgICAgMCwwLDY4LDEwMSw5OSwxMTEsMTE0LDk3LDExNiwxMTEsMTE0LDMyLDExNiwxMTEsMzIsMTE4LAorICAgIDEwMSwxMTQsMTA1LDEwMiwxMjEsMzIsMTE2LDEwNCwxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMTAwLDMyLAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwNSwxMTUsMzIsOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LAorICAgIDEwNSwxMTAsNDYsOTksMiwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsCisgICAgNCwwLDAsMCwxOSwwLDAsMCwxMTUsNTgsMCwwLDAsMTI0LDEsMCwKKyAgICAxMTYsMCwwLDEwNiwxLDAsMTA3LDcsMCwxMTQsNDUsMCwxMTYsMiwwLDEwMCwKKyAgICAxLDAsMTA2LDMsMCwxMjQsMSwwLDEzMSwxLDAsMTAwLDIsMCwxMjQsMSwKKyAgICAwLDEzMSwxLDEsMTMwLDEsMCwxMTAsMCwwLDEzNiwwLDAsMTI0LDAsMCwKKyAgICAxMjQsMSwwLDEzMSwyLDAsODMsNDAsMywwLDAsMCw3OCwxMTcsMjcsMCwKKyAgICAwLDAsMTIzLDEyNSwzMiwxMDUsMTE1LDMyLDExMCwxMTEsMTE2LDMyLDk3LDMyLDk4LDExNywKKyAgICAxMDUsMTA4LDExNiw0NSwxMDUsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNyw0LDAsCisgICAgMCwwLDExMCw5NywxMDksMTAxLDQwLDQsMCwwLDAsMTE3LDMsMCwwLDAsCisgICAgMTE1LDEyMSwxMTUsMTE3LDIwLDAsMCwwLDk4LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDk1LAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExMCw5NywxMDksMTAxLDExNSwxMTcsMTEsMCwwLAorICAgIDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDYsMCwwLAorICAgIDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiw0MCwyLDAsMCwwLDExNyw0LDAsMCwKKyAgICAwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LAorICAgIDEwOSwxMDEsNDAsMSwwLDAsMCwxMTcsMywwLDAsMCwxMDIsMTIwLDExMCw0MCwKKyAgICAwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwKKyAgICAzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LAorICAgIDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMjUsMCwwLDAsOTUsMTE0LDEwMSwxMTMsMTE3LAorICAgIDEwNSwxMTQsMTAxLDExNSw5NSw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw5NSwxMTksMTE0LDk3LAorICAgIDExMiwxMTIsMTAxLDExNCwxODMsMSwwLDAsMTE1LDgsMCwwLDAsMCwxLDE1LAorICAgIDEsMTgsMSwxMiwxLDExNyw1MiwwLDAsMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LAorICAgIDExNCwxMDEsMTE1LDk1LDk4LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDQ2LDYwLDEwOCwxMTEsOTksCisgICAgOTcsMTA4LDExNSw2Miw0Niw5NSwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDk1LDk4LAorICAgIDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDk1LDExOSwxMTQsOTcsMTEyLDExMiwxMDEsMTE0LDQwLDEsCisgICAgMCwwLDAsMTE3LDUsMCwwLDAsOTUsMTE5LDExNCw5NywxMTIsNDAsMiwwLAorICAgIDAsMCwxMTcsMywwLDAsMCwxMDIsMTIwLDExMCwxMTcsMjUsMCwwLDAsOTUsCisgICAgMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSw5NSw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCwKKyAgICA5NSwxMTksMTE0LDk3LDExMiwxMTIsMTAxLDExNCw0MCwwLDAsMCwwLDQwLDEsMCwKKyAgICAwLDAsMTE3LDMsMCwwLDAsMTAyLDEyMCwxMTAsMTE3LDI5LDAsMCwwLDYwLAorICAgIDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsCisgICAgNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNywwLDAsCisgICAgMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDk1LDk4LDExNywxMDUsMTA4LDExNiwKKyAgICAxMDUsMTEwLDE4MSwxLDAsMCwxMTUsNiwwLDAsMCwwLDIsMTgsNSwxMywKKyAgICAxLDExNywxNywwLDAsMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDk1LAorICAgIDk4LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDk5LDEsMCwwLDAsMCwwLDAsMCwKKyAgICAyLDAsMCwwLDMsMCwwLDAsMywwLDAsMCwxMTUsMzUsMCwwLAorICAgIDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwxLDAsMTAwLDIsMCwxMzQsMCwwLAorICAgIDEyNSwxLDAsMTE2LDAsMCwxMjQsMSwwLDEzNiwwLDAsMTMxLDIsMCwxLAorICAgIDEyNCwxLDAsODMsNDAsMywwLDAsMCwxMTcsNDcsMCwwLDAsNjgsMTAxLAorICAgIDk5LDExMSwxMTQsOTcsMTE2LDExMSwxMTQsMzIsMTE2LDExMSwzMiwxMTgsMTAxLDExNCwxMDUsMTAyLAorICAgIDEyMSwzMiwxMTYsMTA0LDEwMSwzMiwxMTAsOTcsMTA5LDEwMSwxMDAsMzIsMTA5LDExMSwxMDAsMTE3LAorICAgIDEwOCwxMDEsMzIsMTA1LDExNSwzMiwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCw0Niw5OSwyLDAsCisgICAgMCwwLDAsMCwwLDAsMiwwLDAsMCw0LDAsMCwwLDE5LDAsCisgICAgMCwwLDExNSw1OCwwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsMCwKKyAgICAxMzEsMSwwLDExNSw0NSwwLDExNiwyLDAsMTAwLDEsMCwxMDYsMywwLDEyNCwKKyAgICAxLDAsMTMxLDEsMCwxMDAsMiwwLDEyNCwxLDAsMTMxLDEsMSwxMzAsMSwKKyAgICAwLDExMCwwLDAsMTM2LDAsMCwxMjQsMCwwLDEyNCwxLDAsMTMxLDIsMCwKKyAgICA4Myw0MCwzLDAsMCwwLDc4LDExNywyNSwwLDAsMCwxMjMsMTI1LDMyLDEwNSwKKyAgICAxMTUsMzIsMTEwLDExMSwxMTYsMzIsOTcsMzIsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsNDAsNCwKKyAgICAwLDAsMCwxMTcsNCwwLDAsMCw5NSwxMDUsMTA5LDExMiwxMTcsOSwwLDAsCisgICAgMCwxMDUsMTE1LDk1LDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDExNywxMSwwLDAsMCw3MywKKyAgICAxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCwxMTcsNiwwLDAsMCwxMDIsCisgICAgMTExLDExNCwxMDksOTcsMTE2LDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LAorICAgIDEwMSwxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwKKyAgICA0MCwxLDAsMCwwLDExNywzLDAsMCwwLDEwMiwxMjAsMTEwLDQwLDAsMCwKKyAgICAwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwKKyAgICAxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwKKyAgICAxMTQsOTcsMTEyLDYyLDExNywyNCwwLDAsMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LDExNCwKKyAgICAxMDEsMTE1LDk1LDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDk1LDExOSwxMTQsOTcsMTEyLDExMiwxMDEsCisgICAgMTE0LDE5NCwxLDAsMCwxMTUsOCwwLDAsMCwwLDEsMTUsMSwxOCwxLAorICAgIDEyLDEsMTE3LDUwLDAsMCwwLDk1LDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsCisgICAgOTUsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLAorICAgIDQ2LDk1LDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsOTUsMTAyLDExNCwxMTEsMTIyLDEwMSwKKyAgICAxMTAsOTUsMTE5LDExNCw5NywxMTIsMTEyLDEwMSwxMTQsNDAsMSwwLDAsMCwxMTcsNSwKKyAgICAwLDAsMCw5NSwxMTksMTE0LDk3LDExMiw0MCwyLDAsMCwwLDExNywzLDAsCisgICAgMCwwLDEwMiwxMjAsMTEwLDExNywyNCwwLDAsMCw5NSwxMTQsMTAxLDExMywxMTcsMTA1LAorICAgIDExNCwxMDEsMTE1LDk1LDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDk1LDExOSwxMTQsOTcsMTEyLDExMiwKKyAgICAxMDEsMTE0LDQwLDAsMCwwLDAsNDAsMSwwLDAsMCwxMTcsMywwLDAsCisgICAgMCwxMDIsMTIwLDExMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsCisgICAgMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwKKyAgICAxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE2LDAsMCwwLDk1LDExNCwxMDEsMTEzLDExNywKKyAgICAxMDUsMTE0LDEwMSwxMTUsOTUsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMTkyLDEsMCwwLDExNSwKKyAgICA2LDAsMCwwLDAsMiwxOCw1LDEzLDEsMTE3LDE2LDAsMCwwLDk1LAorICAgIDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsOTUsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsOTksCisgICAgMSwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsNiwwLDAsMCwKKyAgICA2NiwwLDAsMCwxMTUsMTkxLDAsMCwwLDEyNCwwLDAsNjksMTAxLDAsMCwKKyAgICA5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCw5MCwzLDAsMTAxLAorICAgIDQsMCwxMDAsMiwwLDEwMCwzLDAsMTMyLDAsMCwxMzEsMSwwLDkwLDUsCisgICAgMCwxMDEsNCwwLDEwMCwxNiwwLDEwMCw0LDAsMTAwLDUsMCwxMzIsMSwwLAorICAgIDEzMSwxLDAsOTAsNywwLDEwMSw0LDAsMTAxLDgsMCwxMDEsOSwwLDEwMSwKKyAgICAxMCwwLDEwMCw2LDAsMTAwLDcsMCwxMzIsMCwwLDEzMSwxLDAsMTMxLDEsCisgICAgMCwxMzEsMSwwLDEzMSwxLDAsOTAsMTEsMCwxMDEsNCwwLDEwMCw4LDAsCisgICAgMTAwLDksMCwxMzIsMCwwLDEzMSwxLDAsOTAsMTIsMCwxMDEsNCwwLDEwMSwKKyAgICAxMCwwLDEwMCwxMCwwLDEwMCwxMSwwLDEzMiwwLDAsMTMxLDEsMCwxMzEsMSwKKyAgICAwLDkwLDEzLDAsMTAxLDQsMCwxMDEsMTAsMCwxMDAsMTIsMCwxMDAsMTMsMCwKKyAgICAxMzIsMCwwLDEzMSwxLDAsMTMxLDEsMCw5MCwxNCwwLDEwMSw0LDAsMTAxLAorICAgIDEwLDAsMTAwLDE0LDAsMTAwLDE1LDAsMTMyLDAsMCwxMzEsMSwwLDEzMSwxLAorICAgIDAsOTAsMTUsMCwxMDAsMTYsMCw4Myw0MCwxNywwLDAsMCwxMTcsMTUsMCwKKyAgICAwLDAsNjYsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsCisgICAgMTE0LDExNywxNDQsMCwwLDAsNzcsMTAxLDExNiw5NywzMiwxMTIsOTcsMTE2LDEwNCwzMiwKKyAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwxMDIsMTExLDExNCwzMiw5OCwxMTcsMTA1LDEwOCwxMTYsCisgICAgNDUsMTA1LDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsNDYsMTAsMTAsMzIsMzIsCisgICAgMzIsMzIsNjUsMTA4LDEwOCwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTUsMzIsOTcsMTE0LAorICAgIDEwMSwzMiwxMDEsMTA1LDExNiwxMDQsMTAxLDExNCwzMiw5OSwxMDgsOTcsMTE1LDExNSwzMiwxMTEsCisgICAgMTE0LDMyLDExNSwxMTYsOTcsMTE2LDEwNSw5OSwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTUsCisgICAgMzIsMTE2LDExMSwzMiw5NywxMTgsMTExLDEwNSwxMDAsMzIsMTE2LDEwNCwxMDEsMzIsMTEwLDEwMSwKKyAgICAxMDEsMTAwLDMyLDExNiwxMTEsMTAsMzIsMzIsMzIsMzIsMTA1LDExMCwxMTUsMTE2LDk3LDExMCwKKyAgICAxMTYsMTA1LDk3LDExNiwxMDEsMzIsMTE2LDEwNCwxMDEsMzIsOTksMTA4LDk3LDExNSwxMTUsNDYsCisgICAgMTAsMTAsMzIsMzIsMzIsMzIsOTksMiwwLDAsMCwwLDAsMCwwLDIsCisgICAgMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsMTYsMCwwLDAsCisgICAgMTAwLDEsMCwxMDYsMCwwLDEyNCwxLDAsMTA2LDEsMCwxMzEsMSwwLDgzLAorICAgIDQwLDIsMCwwLDAsNzgsMTE3LDI0LDAsMCwwLDYwLDEwOSwxMTEsMTAwLDExNywKKyAgICAxMDgsMTAxLDMyLDM5LDEyMywxMjUsMzksMzIsNDAsOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LDEwNSwKKyAgICAxMTAsNDEsNjIsNDAsMiwwLDAsMCwxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwKKyAgICAxMDksOTcsMTE2LDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LAorICAgIDQwLDIsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsNiwwLAorICAgIDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwKKyAgICAwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwKKyAgICAxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwKKyAgICAxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwKKyAgICAxMTQsMTAxLDExMiwxMTQsMjE0LDEsMCwwLDExNSwyLDAsMCwwLDAsMiwxMTcsCisgICAgMjcsMCwwLDAsNjYsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwxMDEsMTE0LDQ2LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNCwxMDEsMTEyLDExNCw5OSwKKyAgICAzLDAsMCwwLDAsMCwwLDAsMywwLDAsMCwyLDAsMCwwLAorICAgIDY3LDAsMCwwLDExNSwzOSwwLDAsMCwxMjQsMiwwLDEwMCwxLDAsMTA3LAorICAgIDksMCwxMTQsMTYsMCwxMDAsMSwwLDgzLDExNiwxLDAsMTA2LDIsMCwxMjQsCisgICAgMSwwLDEzMSwxLDAsMTE0LDM1LDAsMTI0LDAsMCw4MywxMDAsMSwwLDgzLAorICAgIDQwLDIsMCwwLDAsMTE3LDExMywwLDAsMCw3MCwxMDUsMTEwLDEwMCwzMiwxMTYsCisgICAgMTA0LDEwMSwzMiw5OCwxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LDExMCwzMiwxMDksMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSw0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3MywxMDIsMzIsCisgICAgMzksMTEyLDk3LDExNiwxMDQsMzksMzIsMTA1LDExNSwzMiwxMDEsMTE4LDEwMSwxMTQsMzIsMTE1LAorICAgIDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMTYsMTA0LDEwMSwxMTAsMzIsMTE2LDEwNCwKKyAgICAxMDEsMzIsMTE1LDEwMSw5NywxMTQsOTksMTA0LDMyLDEwNSwxMTUsMzIsOTksMTExLDExMCwxMTUsCisgICAgMTA1LDEwMCwxMDEsMTE0LDEwMSwxMDAsMzIsOTcsMzIsMTAyLDk3LDEwNSwxMDgsMTE3LDExNCwxMDEsCisgICAgNDYsMTAsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNzgsNDAsMywwLDAsCisgICAgMCwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsNCwwLDAsMCw5NSwKKyAgICAxMDUsMTA5LDExMiwxMTcsMTAsMCwwLDAsMTA1LDExNSw5NSw5OCwxMTcsMTA1LDEwOCwxMTYsCisgICAgMTA1LDExMCw0MCwzLDAsMCwwLDExNywzLDAsMCwwLDk5LDEwOCwxMTUsMTE3LAorICAgIDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDExNyw0LDAsMCwKKyAgICAwLDExMiw5NywxMTYsMTA0LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsCisgICAgMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLAorICAgIDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsCisgICAgNjIsMTE3LDExLDAsMCwwLDEwMiwxMDUsMTEwLDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LAorICAgIDEwMSwyMTgsMSwwLDAsMTE1LDYsMCwwLDAsMCw3LDEyLDEsNCwxLAorICAgIDExNywyNywwLDAsMCw2NiwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw3MywxMDksMTEyLDExMSwKKyAgICAxMTQsMTE2LDEwMSwxMTQsNDYsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAorICAgIDk5LDIsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDksMCwwLAorICAgIDAsNjcsMCwwLDAsMTE1LDg1LDAsMCwwLDEyNCwxLDAsMTE2LDAsMCwKKyAgICAxMDYsMSwwLDEwNyw2LDAsMTI1LDIsMCwxMjEsMTcsMCwxMjQsMCwwLDEwNiwKKyAgICAyLDAsMTI0LDEsMCwxMzEsMSwwLDgzLDg3LDExMCw0NiwwLDEsMSwxLAorICAgIDEyNCwyLDAsMTIsMTE0LDczLDAsMTI0LDEsMCwxMTYsMCwwLDEwNiwxLDAsCisgICAgMTA3LDYsMCwxMTQsNzMsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsMCw2MSwKKyAgICAxMTAsMCwwLDEzMCwwLDAsODksMTEwLDEsMCw4OCwxMDAsMSwwLDgzLDQwLAorICAgIDIsMCwwLDAsMTE3LDIzLDAsMCwwLDc2LDExMSw5NywxMDAsMzIsOTcsMzIsCisgICAgOTgsMTE3LDEwNSwxMDgsMTE2LDQ1LDEwNSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsCisgICAgNzgsNDAsMywwLDAsMCwxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsNywKKyAgICAwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMTE3LDEyLDAsMCwwLDk1LAorICAgIDEwMSwxMjAsMTAxLDk5LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQwLDMsMCwwLDAsCisgICAgMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwKKyAgICAxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDksMCwwLDAsMTA1LDExNSw5NSwxMTQsMTAxLDEwOCwKKyAgICAxMTEsOTcsMTAwLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwKKyAgICAwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCisgICAgMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LAorICAgIDExLDAsMCwwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDIyOSwKKyAgICAxLDAsMCwxMTUsMTQsMCwwLDAsMCw2LDE1LDEsMywxLDE3LDEsCisgICAgMywxLDIyLDEsMTMsMSwxMTcsMjcsMCwwLDAsNjYsMTE3LDEwNSwxMDgsMTE2LAorICAgIDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwOCwxMTEsOTcsMTAwLDk1LAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk5LDIsMCwwLDAsMCwwLDAsMCwyLAorICAgIDAsMCwwLDIsMCwwLDAsNjcsMCwwLDAsMTE1LDEzLDAsMCwwLAorICAgIDExNiwwLDAsMTA2LDEsMCwxMjQsMSwwLDEzMSwxLDAsODMsNDAsMSwwLAorICAgIDAsMCw3OCw0MCwyLDAsMCwwLDExNyw0LDAsMCwwLDk1LDEwNSwxMDksCisgICAgMTEyLDExNywxMiwwLDAsMCwxMDUsMTEwLDEwNSwxMTYsOTUsOTgsMTE3LDEwNSwxMDgsMTE2LAorICAgIDEwNSwxMTAsNDAsMiwwLDAsMCwxMTcsMywwLDAsMCw5OSwxMDgsMTE1LDExNywKKyAgICA4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwKKyAgICAwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwKKyAgICAxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLAorICAgIDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMiwwLDAsMCw5NSwxMDEsMTIwLAorICAgIDEwMSw5OSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwyNDMsMSwwLDAsMTE1LDIsMCwKKyAgICAwLDAsMCwyLDExNywyOCwwLDAsMCw2NiwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCwKKyAgICA3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsNDYsOTUsMTAxLDEyMCwxMDEsOTksOTUsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLDIsMCwKKyAgICAwLDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsNCwwLDAsMCwxMDAsCisgICAgMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDU3LDAsMCwwLDgyLDEwMSwxMTYsCisgICAgMTE3LDExNCwxMTAsMzIsNzgsMTExLDExMCwxMDEsMzIsOTcsMTE1LDMyLDk4LDExNywxMDUsMTA4LAorICAgIDExNiw0NSwxMDUsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiwxMDAsMTExLDMyLAorICAgIDExMCwxMTEsMTE2LDMyLDEwNCw5NywxMTgsMTAxLDMyLDk5LDExMSwxMDAsMTAxLDMyLDExMSw5OCwKKyAgICAxMDYsMTAxLDk5LDExNiwxMTUsNDYsNzgsNDAsMSwwLDAsMCwxMTcsNCwwLDAsCisgICAgMCw3OCwxMTEsMTEwLDEwMSw0MCwyLDAsMCwwLDExNywzLDAsMCwwLDk5LAorICAgIDEwOCwxMTUsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDQwLAorICAgIDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLAorICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0NiwKKyAgICA5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDgsMCwwLDAsCisgICAgMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsMjQ3LDEsMCwwLDExNSwyLDAsMCwKKyAgICAwLDAsNCwxMTcsMjQsMCwwLDAsNjYsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsCisgICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLAorICAgIDk5LDIsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDEsMCwwLAorICAgIDAsNjcsMCwwLDAsMTE1LDQsMCwwLDAsMTAwLDEsMCw4Myw0MCwyLAorICAgIDAsMCwwLDExNyw1NiwwLDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLDMyLDc4LAorICAgIDExMSwxMTAsMTAxLDMyLDk3LDExNSwzMiw5OCwxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LDExMCwzMiwKKyAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMzIsMTAwLDExMSwzMiwxMTAsMTExLDExNiwzMiwxMDQsCisgICAgOTcsMTE4LDEwMSwzMiwxMTUsMTExLDExNywxMTQsOTksMTAxLDMyLDk5LDExMSwxMDAsMTAxLDQ2LAorICAgIDc4LDQwLDEsMCwwLDAsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsNDAsCisgICAgMiwwLDAsMCwxMTcsMywwLDAsMCw5OSwxMDgsMTE1LDExNyw4LDAsMCwKKyAgICAwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDQwLDAsCisgICAgMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLAorICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LAorICAgIDExNiwxMTQsOTcsMTEyLDYyLDExNywxMCwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMTUsMTExLAorICAgIDExNywxMTQsOTksMTAxLDI1MywxLDAsMCwxMTUsMiwwLDAsMCwwLDQsMTE3LAorICAgIDI2LDAsMCwwLDY2LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDczLDEwOSwxMTIsMTExLDExNCwKKyAgICAxMTYsMTAxLDExNCw0NiwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDk5LDIsCisgICAgMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDEsMCwwLDAsNjcsCisgICAgMCwwLDAsMTE1LDQsMCwwLDAsMTAwLDEsMCw4Myw0MCwyLDAsMCwKKyAgICAwLDExNyw1MiwwLDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLDMyLDcwLDk3LDEwOCwKKyAgICAxMTUsMTAxLDMyLDk3LDExNSwzMiw5OCwxMTcsMTA1LDEwOCwxMTYsNDUsMTA1LDExMCwzMiwxMDksCisgICAgMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMzIsOTcsMTE0LDEwMSwzMiwxMTAsMTAxLDExOCwxMDEsMTE0LAorICAgIDMyLDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwxMTUsNDYsNzAsNDAsMSwwLDAsMCwKKyAgICAxMTcsNSwwLDAsMCw3MCw5NywxMDgsMTE1LDEwMSw0MCwyLDAsMCwwLDExNywKKyAgICAzLDAsMCwwLDk5LDEwOCwxMTUsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LAorICAgIDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksCisgICAgMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwKKyAgICAxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsCisgICAgMTE3LDEwLDAsMCwwLDEwNSwxMTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDMsCisgICAgMiwwLDAsMTE1LDIsMCwwLDAsMCw0LDExNywyNiwwLDAsMCw2NiwKKyAgICAxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsNDYsMTA1LAorICAgIDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsNzgsNDAsMTYsMCwwLDAsMTE3LAorICAgIDgsMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwKKyAgICAwLDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCwKKyAgICA5NSw5NSwxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsCisgICAgMCw5NSw5NSwxMDAsMTExLDk5LDk1LDk1LDExNywxMSwwLDAsMCw5OSwxMDgsOTcsCisgICAgMTE1LDExNSwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTcsMTEsMCwwLDAsMTA5LDExMSwxMDAsCisgICAgMTE3LDEwOCwxMDEsOTUsMTE0LDEwMSwxMTIsMTE0LDExNyw0LDAsMCwwLDc4LDExMSwxMTAsCisgICAgMTAxLDExNywxMSwwLDAsMCwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsMTE3LDExLDAsMCwwLDExNSwxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLAorICAgIDEwMSwxMTcsMTAsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwKKyAgICAxMTcsMTcsMCwwLDAsOTUsMTE0LDEwMSwxMTMsMTE3LDEwNSwxMTQsMTAxLDExNSw5NSw5OCwKKyAgICAxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCwxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsCisgICAgMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDEyLDAsMCwwLDk1LDEwMSwxMjAsMTAxLDk5LAorICAgIDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNyw4LDAsMCwwLDEwMywxMDEsMTE2LDk1LAorICAgIDk5LDExMSwxMDAsMTAxLDExNywxMCwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywKKyAgICAxMTQsOTksMTAxLDExNywxMCwwLDAsMCwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsCisgICAgMTAzLDEwMSw0MCwxLDAsMCwwLDExNywxMCwwLDAsMCw5NSw5NSwxMDgsMTExLAorICAgIDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLAorICAgIDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwKKyAgICAxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LAorICAgIDExMiw2MiwxMTcsMTUsMCwwLDAsNjYsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LAorICAgIDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDIwNSwxLDAsMCwxMTUsMzAsMCwwLDAsMTYsCisgICAgNyw2LDIsMTgsNCwzLDEsMTgsMTAsMywxLDMsMSwzLDEsMjcsCisgICAgMTEsMTgsNCwzLDEsMjEsNSwzLDEsMjEsNSwzLDEsMTE3LDE1LDAsCisgICAgMCwwLDY2LDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLAorICAgIDExNCw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCw2LDAsCisgICAgMCwwLDY2LDAsMCwwLDExNSwxOTEsMCwwLDAsMTI0LDAsMCw2OSwxMDEsCisgICAgMCwwLDkwLDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLDkwLDMsCisgICAgMCwxMDEsNCwwLDEwMCwyLDAsMTAwLDMsMCwxMzIsMCwwLDEzMSwxLDAsCisgICAgOTAsNSwwLDEwMSw0LDAsMTAwLDE2LDAsMTAwLDQsMCwxMDAsNSwwLDEzMiwKKyAgICAxLDAsMTMxLDEsMCw5MCw3LDAsMTAxLDQsMCwxMDEsOCwwLDEwMSw5LAorICAgIDAsMTAxLDEwLDAsMTAwLDYsMCwxMDAsNywwLDEzMiwwLDAsMTMxLDEsMCwKKyAgICAxMzEsMSwwLDEzMSwxLDAsMTMxLDEsMCw5MCwxMSwwLDEwMSw0LDAsMTAxLAorICAgIDEwLDAsMTAwLDgsMCwxMDAsOSwwLDEzMiwwLDAsMTMxLDEsMCwxMzEsMSwKKyAgICAwLDkwLDEyLDAsMTAxLDQsMCwxMDEsMTAsMCwxMDAsMTAsMCwxMDAsMTEsMCwKKyAgICAxMzIsMCwwLDEzMSwxLDAsMTMxLDEsMCw5MCwxMywwLDEwMSw0LDAsMTAxLAorICAgIDEwLDAsMTAwLDEyLDAsMTAwLDEzLDAsMTMyLDAsMCwxMzEsMSwwLDEzMSwxLAorICAgIDAsOTAsMTQsMCwxMDEsNCwwLDEwMCwxNCwwLDEwMCwxNSwwLDEzMiwwLDAsCisgICAgMTMxLDEsMCw5MCwxNSwwLDEwMCwxNiwwLDgzLDQwLDE3LDAsMCwwLDExNywKKyAgICAxNCwwLDAsMCw3MCwxMTQsMTExLDEyMiwxMDEsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsCisgICAgMTAxLDExNCwxMTcsMTQyLDAsMCwwLDc3LDEwMSwxMTYsOTcsMzIsMTEyLDk3LDExNiwxMDQsCisgICAgMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTAyLDExMSwxMTQsMzIsMTAyLDExNCwxMTEsMTIyLAorICAgIDEwMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLAorICAgIDMyLDY1LDEwOCwxMDgsMzIsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMTE1LDMyLDk3LDExNCwxMDEsCisgICAgMzIsMTAxLDEwNSwxMTYsMTA0LDEwMSwxMTQsMzIsOTksMTA4LDk3LDExNSwxMTUsMzIsMTExLDExNCwKKyAgICAzMiwxMTUsMTE2LDk3LDExNiwxMDUsOTksMzIsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMTE1LDMyLAorICAgIDExNiwxMTEsMzIsOTcsMTE4LDExMSwxMDUsMTAwLDMyLDExNiwxMDQsMTAxLDMyLDExMCwxMDEsMTAxLAorICAgIDEwMCwzMiwxMTYsMTExLDEwLDMyLDMyLDMyLDMyLDEwNSwxMTAsMTE1LDExNiw5NywxMTAsMTE2LAorICAgIDEwNSw5NywxMTYsMTAxLDMyLDExNiwxMDQsMTAxLDMyLDk5LDEwOCw5NywxMTUsMTE1LDQ2LDEwLAorICAgIDEwLDMyLDMyLDMyLDMyLDk5LDIsMCwwLDAsMCwwLDAsMCwyLDAsCisgICAgMCwwLDIsMCwwLDAsNjcsMCwwLDAsMTE1LDE2LDAsMCwwLDEwMCwKKyAgICAxLDAsMTA2LDAsMCwxMjQsMSwwLDEwNiwxLDAsMTMxLDEsMCw4Myw0MCwKKyAgICAyLDAsMCwwLDc4LDExNywyMiwwLDAsMCw2MCwxMDksMTExLDEwMCwxMTcsMTA4LAorICAgIDEwMSwzMiwzOSwxMjMsMTI1LDM5LDMyLDQwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDQxLDYyLAorICAgIDQwLDIsMCwwLDAsMTE3LDYsMCwwLDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiwKKyAgICAxMTcsOCwwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSw0MCwyLDAsCisgICAgMCwwLDExNywzLDAsMCwwLDk5LDEwOCwxMTUsMTE3LDEsMCwwLDAsMTA5LAorICAgIDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsCisgICAgMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCwKKyAgICA0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDExLDAsMCwKKyAgICAwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExNCwxMDEsMTEyLDExNCwxOSwyLDAsMCwKKyAgICAxMTUsMiwwLDAsMCwwLDIsMTE3LDI2LDAsMCwwLDcwLDExNCwxMTEsMTIyLAorICAgIDEwMSwxMTAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiwxMDEsMTE0LDQ2LDEwOSwxMTEsMTAwLDExNywxMDgsCisgICAgMTAxLDk1LDExNCwxMDEsMTEyLDExNCw5OSwzLDAsMCwwLDAsMCwwLDAsMywKKyAgICAwLDAsMCwyLDAsMCwwLDY3LDAsMCwwLDExNSwyMywwLDAsMCwKKyAgICAxMTYsMCwwLDEwNiwxLDAsMTI0LDEsMCwxMzEsMSwwLDExNCwxOSwwLDEyNCwKKyAgICAwLDAsODMsMTAwLDEsMCw4Myw0MCwyLDAsMCwwLDExNywyMSwwLDAsCisgICAgMCw3MCwxMDUsMTEwLDEwMCwzMiw5NywzMiwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDksCisgICAgMTExLDEwMCwxMTcsMTA4LDEwMSw0Niw3OCw0MCwzLDAsMCwwLDExNyw0LDAsMCwKKyAgICAwLDk1LDEwNSwxMDksMTEyLDExNyw5LDAsMCwwLDEwNSwxMTUsOTUsMTAyLDExNCwxMTEsCisgICAgMTIyLDEwMSwxMTAsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsNDAsMywwLDAsCisgICAgMCwxMTcsMywwLDAsMCw5OSwxMDgsMTE1LDExNyw4LDAsMCwwLDEwMiwxMTcsCisgICAgMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw0MCwKKyAgICAwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwKKyAgICAxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsCisgICAgOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsMCwKKyAgICAxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMjMsMiwwLDAsMTE1LAorICAgIDIsMCwwLDAsMCwzLDExNywyNiwwLDAsMCw3MCwxMTQsMTExLDEyMiwxMDEsCisgICAgMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw0NiwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLDQsMCwKKyAgICAwLDAsOSwwLDAsMCw2NywwLDAsMCwxMTUsOTcsMCwwLDAsMTI0LAorICAgIDEsMCwxMTYsMCwwLDEwNiwxLDAsMTA3LDYsMCwxMjUsMiwwLDEyMSwyOSwKKyAgICAwLDEyNCwwLDAsMTA2LDIsMCwxMjQsMSwwLDEzMSwxLDAsMTI1LDMsMCwKKyAgICAxMjQsMywwLDk2LDMsMCwxMjQsMywwLDgzLDg3LDExMCw0NiwwLDEsMSwKKyAgICAxLDEyNCwyLDAsMTIsMTE0LDg1LDAsMTI0LDEsMCwxMTYsMCwwLDEwNiwxLAorICAgIDAsMTA3LDYsMCwxMTQsODUsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsMCwKKyAgICA2MSwxMTAsMCwwLDEzMCwwLDAsODksMTEwLDEsMCw4OCwxMDAsMSwwLDgzLAorICAgIDQwLDIsMCwwLDAsMTE3LDIxLDAsMCwwLDc2LDExMSw5NywxMDAsMzIsOTcsCisgICAgMzIsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsNzgsCisgICAgNDAsNCwwLDAsMCwxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsNywwLAorICAgIDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMTE3LDEyLDAsMCwwLDk1LDEwMSwKKyAgICAxMjAsMTAxLDk5LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNyw4LDAsMCwwLDk1LAorICAgIDk1LDEwMiwxMDUsMTA4LDEwMSw5NSw5NSw0MCw0LDAsMCwwLDExNywzLDAsMCwKKyAgICAwLDk5LDEwOCwxMTUsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksCisgICAgMTAxLDExNyw5LDAsMCwwLDEwNSwxMTUsOTUsMTE0LDEwMSwxMDgsMTExLDk3LDEwMCwxMTcsCisgICAgMSwwLDAsMCwxMDksNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywKKyAgICAyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsCisgICAgMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiwKKyAgICA2MiwxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsMjgsMiwwLDAsMTE1LDE4LDAsMCwwLDAsNiwxNSwxLDMsMSwKKyAgICAxNSwyLDYsMSw4LDEsMywxLDIyLDEsMTMsMSwxMTcsMjYsMCwwLAorICAgIDAsNzAsMTE0LDExMSwxMjIsMTAxLDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsNDYsCisgICAgMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTksMiwwLDAsMCwKKyAgICAwLDAsMCwwLDIsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwKKyAgICAxMTUsMTMsMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDEyNCwxLDAsMTMxLDEsCisgICAgMCw4Myw0MCwxLDAsMCwwLDExNyw0NSwwLDAsMCw4MiwxMDEsMTE2LDExNywKKyAgICAxMTQsMTEwLDMyLDExNiwxMDQsMTAxLDMyLDk5LDExMSwxMDAsMTAxLDMyLDExMSw5OCwxMDYsMTAxLAorICAgIDk5LDExNiwzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LDEwMSwzMiwxMDIsMTE0LDExMSwxMjIsMTAxLAorICAgIDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0Niw0MCwyLDAsMCwwLDExNyw0LAorICAgIDAsMCwwLDk1LDEwNSwxMDksMTEyLDExNywxNywwLDAsMCwxMDMsMTAxLDExNiw5NSwKKyAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCw5NSwxMTEsOTgsMTA2LDEwMSw5OSwxMTYsNDAsMiwwLAorICAgIDAsMCwxMTcsMywwLDAsMCw5OSwxMDgsMTE1LDExNyw4LDAsMCwwLDEwMiwKKyAgICAxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLAorICAgIDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsCisgICAgOTcsMTEyLDYyLDExNyw4LDAsMCwwLDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLAorICAgIDQ1LDIsMCwwLDExNSwyLDAsMCwwLDAsNCwxMTcsMjMsMCwwLDAsCisgICAgNzAsMTE0LDExMSwxMjIsMTAxLDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsNDYsMTAzLAorICAgIDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLAorICAgIDIsMCwwLDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsNCwwLDAsCisgICAgMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDU0LDAsMCwwLDgyLAorICAgIDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsNzgsMTExLDExMCwxMDEsMzIsOTcsMTE1LDMyLDEwMiwxMTQsCisgICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiwxMDAsMTExLDMyLAorICAgIDExMCwxMTEsMTE2LDMyLDEwNCw5NywxMTgsMTAxLDMyLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMzIsCisgICAgOTksMTExLDEwMCwxMDEsNDYsNzgsNDAsMSwwLDAsMCwxMTcsNCwwLDAsMCwKKyAgICA3OCwxMTEsMTEwLDEwMSw0MCwyLDAsMCwwLDExNywzLDAsMCwwLDk5LDEwOCwKKyAgICAxMTUsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDQwLDAsCisgICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKKyAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKKyAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDEwMywKKyAgICAxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsNTEsMiwwLDAsMTE1LDIsMCwKKyAgICAwLDAsMCw0LDExNywyNSwwLDAsMCw3MCwxMTQsMTExLDEyMiwxMDEsMTEwLDczLAorICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw0NiwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsCisgICAgOTksMTAxLDk5LDIsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDIsCisgICAgMCwwLDAsNjcsMCwwLDAsMTE1LDEzLDAsMCwwLDExNiwwLDAsMTA2LAorICAgIDEsMCwxMjQsMSwwLDEzMSwxLDAsODMsNDAsMSwwLDAsMCwxMTcsNDEsCisgICAgMCwwLDAsODIsMTAxLDExNiwxMTcsMTE0LDExMCwzMiwxMDUsMTAyLDMyLDExNiwxMDQsMTAxLAorICAgIDMyLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwNSwKKyAgICAxMTUsMzIsOTcsMzIsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDQ2LDQwLDIsMCwwLAorICAgIDAsMTE3LDQsMCwwLDAsOTUsMTA1LDEwOSwxMTIsMTE3LDE3LDAsMCwwLDEwNSwKKyAgICAxMTUsOTUsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLAorICAgIDQwLDIsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsOCwwLAorICAgIDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsNDAsMCwwLDAsMCw0MCwKKyAgICAwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwKKyAgICAzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LAorICAgIDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTAsMCwwLDAsMTA1LDExNSw5NSwxMTIsOTcsCisgICAgOTksMTA3LDk3LDEwMywxMDEsNTcsMiwwLDAsMTE1LDIsMCwwLDAsMCw0LAorICAgIDExNywyNSwwLDAsMCw3MCwxMTQsMTExLDEyMiwxMDEsMTEwLDczLDEwOSwxMTIsMTExLDExNCwKKyAgICAxMTYsMTAxLDExNCw0NiwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5OSwyLAorICAgIDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwyLDAsMCwwLDY3LAorICAgIDAsMCwwLDExNSwxMywwLDAsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LDEsCisgICAgMCwxMzEsMSwwLDgzLDQwLDEsMCwwLDAsMTE3LDE2MSwwLDAsMCw3MiwKKyAgICAxMDEsMTA4LDExMiwxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDQ0LDMyLDk3LDEwOCwxMDgsMTExLDExOSwxMDUsMTEwLDEwMywzMiwKKyAgICAxMTYsMTExLDMyLDEwNSwxMTUsMTExLDEwOCw5NywxMTYsMTAxLDMyLDEwMSw5NywxMTUsMTA1LDEwOCwKKyAgICAxMjEsMzIsNDAsMTE5LDEwNCwxMDEsMTEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAorICAgIDEwOCwxMTEsMTExLDEwNywxMDUsMTEwLDEwMywzMiw5NywxMTYsMzIsOTcsMzIsMTE2LDExNCw5NywKKyAgICA5OSwxMDEsOTgsOTcsOTksMTA3LDQxLDMyLDExOSwxMDQsMTAxLDExNiwxMDQsMTAxLDExNCwzMiwKKyAgICA5NywxMTAsMzIsMTAxLDExNCwxMTQsMTExLDExNCwzMiw5OSwxMTEsMTA5LDEwMSwxMTUsMzIsMTAyLAorICAgIDExNCwxMTEsMTA5LDMyLDEwMSwxMjAsMTAxLDk5LDExNywxMTYsMTA1LDExMCwxMDMsMTAsMzIsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsMzIsOTcsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwKKyAgICAxMDAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzksMTE1LDMyLDk5LDExMSwxMDAsMTAxLDQ2LAorICAgIDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsOTUsMTA1LDEwOSwxMTIsMTE3LDExLAorICAgIDAsMCwwLDEwNSwxMTAsMTA1LDExNiw5NSwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCw0MCwyLAorICAgIDAsMCwwLDExNywzLDAsMCwwLDk5LDEwOCwxMTUsMTE3LDgsMCwwLDAsCisgICAgMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLAorICAgIDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LAorICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LAorICAgIDExNCw5NywxMTIsNjIsMTE3LDEyLDAsMCwwLDk1LDEwMSwxMjAsMTAxLDk5LDk1LDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDYzLDIsMCwwLDExNSwyLDAsMCwwLDAsNSwKKyAgICAxMTcsMjcsMCwwLDAsNzAsMTE0LDExMSwxMjIsMTAxLDExMCw3MywxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDEwMSwxMTQsNDYsOTUsMTAxLDEyMCwxMDEsOTksOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgNzgsNDAsMTYsMCwwLDAsMTE3LDgsMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwKKyAgICAxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAorICAgIDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LAorICAgIDEwMSw5NSw5NSwxMTcsNywwLDAsMCw5NSw5NSwxMDAsMTExLDk5LDk1LDk1LDExNywKKyAgICAxMSwwLDAsMCw5OSwxMDgsOTcsMTE1LDExNSwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTcsCisgICAgMTEsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTE0LDEwMSwxMTIsMTE0LDExNywKKyAgICA0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNywxMSwwLDAsMCwxMDIsMTA1LDExMCwKKyAgICAxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDExLDAsMCwwLDExNSwxMDEsMTE2LAorICAgIDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwxMTcsMTAsMCwwLDAsMTE1LDEwMSwxMTYsCisgICAgOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTYsMCwwLDAsOTUsMTE0LDEwMSwxMTMsCisgICAgMTE3LDEwNSwxMTQsMTAxLDExNSw5NSwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwxMTcsMTEsMCwwLAorICAgIDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDgsMCwwLAorICAgIDAsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsMTE3LDEwLDAsMCwwLDEwMywxMDEsCisgICAgMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMTE3LDEwLDAsMCwwLDEwNSwxMTUsOTUsCisgICAgMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDExNywxMiwwLDAsMCw5NSwxMDEsMTIwLDEwMSwKKyAgICA5OSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0MCwxLDAsMCwwLDExNywxMCwwLAorICAgIDAsMCw5NSw5NSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwwLDAsCisgICAgMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsCisgICAgMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwKKyAgICAxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTQsMCwwLDAsNzAsMTE0LDExMSwKKyAgICAxMjIsMTAxLDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsMTAsMiwwLDAsMTE1LAorICAgIDMwLDAsMCwwLDE2LDcsNiwyLDE4LDQsMywxLDE4LDQsMywxLAorICAgIDMsMSwzLDEsMjcsMTQsMywxLDIxLDUsMywxLDIxLDUsMywxLAorICAgIDIxLDUsMTE3LDE0LDAsMCwwLDcwLDExNCwxMTEsMTIyLDEwMSwxMTAsNzMsMTA5LDExMiwKKyAgICAxMTEsMTE0LDExNiwxMDEsMTE0LDk5LDEsMCwwLDAsMCwwLDAsMCwxLDAsCisgICAgMCwwLDUsMCwwLDAsNjYsMCwwLDAsMTE1LDg2LDAsMCwwLDEyNCwKKyAgICAwLDAsNjksMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCw5MCwyLDAsMTAwLAorICAgIDEsMCw5MCwzLDAsMTAwLDIsMCwxMDAsMywwLDEzMiwwLDAsOTAsNCwKKyAgICAwLDEwMCw0LDAsMTAwLDUsMCwxMzIsMCwwLDkwLDUsMCwxMDEsNiwwLAorICAgIDEwMCw2LDAsMTAwLDEyLDAsMTAwLDcsMCwxMDAsOCwwLDEzMiwwLDEsMTMxLAorICAgIDEsMCw5MCw4LDAsMTAwLDksMCwxMDAsMTAsMCwxMzIsMCwwLDkwLDksCisgICAgMCwxMDAsMTEsMCw4Myw0MCwxMywwLDAsMCwxMTcsMTMsMCwwLDAsOTUsCisgICAgNzYsMTExLDk3LDEwMCwxMDEsMTE0LDY2LDk3LDExNSwxMDUsOTksMTE1LDExNyw4MywwLDAsCisgICAgMCw2Niw5NywxMTUsMTAxLDMyLDk5LDEwOCw5NywxMTUsMTE1LDMyLDExMSwxMDIsMzIsOTksCisgICAgMTExLDEwOSwxMDksMTExLDExMCwzMiw5OSwxMTEsMTAwLDEwMSwzMiwxMTAsMTAxLDEwMSwxMDAsMTAxLAorICAgIDEwMCwzMiw5OCwxMjEsMzIsOTgsMTExLDExNiwxMDQsMzIsODMsMTExLDExNywxMTQsOTksMTAxLAorICAgIDc2LDExMSw5NywxMDAsMTAxLDExNCwzMiw5NywxMTAsMTAwLDEwLDMyLDMyLDMyLDMyLDgzLAorICAgIDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LAorICAgIDEwMCwxMDEsMTE0LDQ2LDk5LDIsMCwwLDAsMCwwLDAsMCw1LDAsMCwKKyAgICAwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LDg4LDAsMCwwLDExNiwwLAorICAgIDAsMTI0LDAsMCwxMDYsMSwwLDEyNCwxLDAsMTMxLDEsMCwxMzEsMSwwLAorICAgIDEwMCwxLDAsMjUsMTI1LDIsMCwxMjQsMiwwLDEwNiwyLDAsMTAwLDIsMCwKKyAgICAxMDAsMSwwLDEzMSwyLDAsMTAwLDMsMCwyNSwxMjUsMywwLDEyNCwxLDAsCisgICAgMTA2LDMsMCwxMDAsMiwwLDEzMSwxLDAsMTAwLDQsMCwyNSwxMjUsNCwwLAorICAgIDEyNCwzLDAsMTAwLDUsMCwxMDcsMiwwLDExMSw4NywwLDEyNCw0LDAsMTAwLAorICAgIDUsMCwxMDcsMywwLDgzLDQwLDYsMCwwLDAsMTE3LDE0MSwwLDAsMCwKKyAgICA2NywxMTEsMTEwLDk5LDExNCwxMDEsMTE2LDEwMSwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsCisgICAgMTEwLDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTExLDEwMiwzMiw3MywxMTAsMTE1LDExMiwxMDEsCisgICAgOTksMTE2LDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsCisgICAgOTcsMTAzLDEwMSwzMiw5OCwxMjEsMzIsOTksMTA0LDEwMSw5OSwxMDcsMTA1LDExMCwxMDMsMzIsCisgICAgMTA1LDEwMiwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsCisgICAgOTcsMTE2LDEwNCwzMiwxMTQsMTAxLDExNiwxMTcsMTE0LDExMCwxMDEsMTAwLDMyLDk4LDEyMSwzMiwKKyAgICAxMDMsMTAxLDExNiw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMzIsMTA0LDk3LDExNSwKKyAgICAzMiw5NywzMiwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMzIsMTExLDEwMiwzMiwzOSwKKyAgICA5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsNDYsMTEyLDEyMSwzOSw0NiwxMDUsMSwwLAorICAgIDAsMCwxMTcsMSwwLDAsMCw0NiwxMDUsMCwwLDAsMCwxMDUsMiwwLAorICAgIDAsMCwxMTcsOCwwLDAsMCw5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsNDAsCisgICAgNCwwLDAsMCwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTE1LAorICAgIDExMiwxMDgsMTA1LDExNiwxMTcsMTIsMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTAyLDEwNSwxMDgsCisgICAgMTAxLDExMCw5NywxMDksMTAxLDExNyw2LDAsMCwwLDExNCwxMTUsMTEyLDEwOCwxMDUsMTE2LAorICAgIDExNywxMCwwLDAsMCwxMTQsMTEyLDk3LDExNCwxMTYsMTA1LDExNiwxMDUsMTExLDExMCw0MCwKKyAgICA1LDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLAorICAgIDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDgsMCwwLDAsMTAyLAorICAgIDEwNSwxMDgsMTAxLDExMCw5NywxMDksMTAxLDExNywxMywwLDAsMCwxMDIsMTA1LDEwOCwxMDEsCisgICAgMTEwLDk3LDEwOSwxMDEsOTUsOTgsOTcsMTE1LDEwMSwxMTcsOSwwLDAsMCwxMTYsOTcsCisgICAgMTA1LDEwOCw5NSwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLAorICAgIDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsCisgICAgOTcsMTEyLDYyLDExNywxMCwwLDAsMCwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsCisgICAgMTAzLDEwMSw3NiwyLDAsMCwxMTUsOCwwLDAsMCwwLDMsMjUsMSwyMiwKKyAgICAxLDE5LDEsMTE3LDI0LDAsMCwwLDk1LDc2LDExMSw5NywxMDAsMTAxLDExNCw2NiwKKyAgICA5NywxMTUsMTA1LDk5LDExNSw0NiwxMDUsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwKKyAgICA5OSw1LDAsMCwwLDAsMCwwLDAsMTIsMCwwLDAsMjIsMCwwLAorICAgIDAsNjcsMCwwLDAsMTE1LDE5OCwxLDAsMCwxMjQsMiwwLDEwMCwxLDAsCisgICAgMTAwLDIsMCwxMzMsMiwwLDI1LDEyNSw1LDAsMTI0LDIsMCwxMDAsMiwwLAorICAgIDEwMCwzLDAsMTMzLDIsMCwyNSwxMjUsNiwwLDEyNCwyLDAsMTAwLDMsMCwKKyAgICAxMDAsNCwwLDEzMywyLDAsMjUsMTI1LDcsMCwxMjQsNSwwLDExNiwwLDAsCisgICAgMTA3LDMsMCwxMTQsMTA1LDAsMTAwLDUsMCwxMDYsMSwwLDEyNCwxLDAsMTI0LAorICAgIDUsMCwxMzEsMiwwLDEyNSw4LDAsMTE2LDIsMCwxMjQsOCwwLDEwMCw2LAorICAgIDAsMTI0LDEsMCwxMDAsNywwLDEyNCwzLDAsMTMxLDEsMiwxMzAsMSwwLAorICAgIDExMCwxMTYsMCwxMTYsMywwLDEyNCw2LDAsMTMxLDEsMCwxMDAsMiwwLDEwNywKKyAgICAzLDAsMTE0LDE2MywwLDEwMCw4LDAsMTA2LDEsMCwxMjQsMSwwLDEzMSwxLAorICAgIDAsMTI1LDksMCwxMTYsNCwwLDEyNCw5LDAsMTMxLDEsMCwxLDExNiw1LAorICAgIDAsMTI0LDksMCwxMzEsMSwwLDEzMCwxLDAsMTEwLDU4LDAsMTE2LDMsMCwKKyAgICAxMjQsNywwLDEzMSwxLDAsMTAwLDIsMCwxMDcsMywwLDExNCwyMjEsMCwxMDAsCisgICAgOSwwLDEwNiwxLDAsMTI0LDEsMCwxMzEsMSwwLDEyNSw5LDAsMTE2LDQsCisgICAgMCwxMjQsOSwwLDEzMSwxLDAsMSwxMTYsNSwwLDEyNCw5LDAsMTMxLDEsCisgICAgMCwxMzAsMSwwLDExMCwwLDAsMTI0LDQsMCwxMDAsMSwwLDEwNyw5LDAsCisgICAgMTE0LDE4NCwxLDEyMSwyMCwwLDExNiw3LDAsMTI0LDQsMCwxMDAsMTAsMCwyNSwKKyAgICAxMzEsMSwwLDEyNSwxMCwwLDg3LDExMCwxOCwwLDQsMTE2LDgsMCwxMDcsMTAsCisgICAgMCwxMTQsMTcsMSwxLDEsMSw4OSwxMTAsNzEsMCw4OCwxMTYsOSwwLDEyNCwKKyAgICA2LDAsMTMxLDEsMCwxMjQsMTAsMCwxMDcsMywwLDExNCw4OCwxLDEwMCwxMSwKKyAgICAwLDEwNiwxLDAsMTI0LDEsMCwxMzEsMSwwLDEyNSw5LDAsMTE2LDQsMCwKKyAgICAxMjQsOSwwLDEzMSwxLDAsMSwxMTYsMiwwLDEyNCw5LDAsMTAwLDYsMCwKKyAgICAxMjQsMSwwLDEwMCw3LDAsMTI0LDMsMCwxMzEsMSwyLDEzMCwxLDAsMTEwLAorICAgIDAsMCwxMjEsMTgsMCwxMjQsNCwwLDEwMCwxMiwwLDI1LDEwMCwxMywwLDY0LAorICAgIDEyNSwxMSwwLDg3LDExMCwxOCwwLDQsMTE2LDgsMCwxMDcsMTAsMCwxMTQsMTI2LAorICAgIDEsMSwxLDEsODksMTEzLDE4NCwxLDg4LDExNiw5LDAsMTI0LDcsMCwxMzEsCisgICAgMSwwLDEyNCwxMSwwLDEwNywzLDAsMTE0LDE4NCwxLDExNiwyLDAsMTAwLDExLAorICAgIDAsMTA2LDEsMCwxMjQsMSwwLDEzMSwxLDAsMTAwLDYsMCwxMjQsMSwwLAorICAgIDEwMCw3LDAsMTI0LDMsMCwxMzEsMSwyLDEzMCwxLDAsMTEzLDE4NCwxLDExMCwKKyAgICAwLDAsMTI0LDIsMCwxMDAsNCwwLDEwMCwxLDAsMTMzLDIsMCwyNSw4MywKKyAgICA0MCwxNCwwLDAsMCwxMTcsMTkzLDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsCisgICAgMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDk3LDExNCwxMTUsMTA0LDk3LDEwOCwxMDgsMTAxLDEwMCwzMiwKKyAgICA5OCwxMjEsMTE2LDEwMSwxMTUsMzIsMTAyLDExNCwxMTEsMTA5LDMyLDk4LDEyMSwxMTYsMTAxLDk5LAorICAgIDExMSwxMDAsMTAxLDQ0LDMyLDExOCwxMDEsMTE0LDEwNSwxMDIsMTIxLDEwNSwxMTAsMTAzLDMyLDExNiwKKyAgICAxMDQsMTAxLDMyLDEwOSw5NywxMDMsMTA1LDk5LDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAorICAgIDMyLDExMCwxMTcsMTA5LDk4LDEwMSwxMTQsNDQsMzIsMTE2LDEwNSwxMDksMTAxLDExNSwxMTYsOTcsCisgICAgMTA5LDExMiwzMiw5NywxMTAsMTAwLDMyLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMzIsMTE1LDEwNSwKKyAgICAxMjIsMTAxLDMyLDk3LDEwOCwxMTEsMTEwLDEwMywzMiwxMTYsMTA0LDEwMSwzMiwxMTksOTcsMTIxLAorICAgIDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDczLDEwMiwzMiwxMTUsMTExLAorICAgIDExNywxMTQsOTksMTAxLDk1LDExNSwxMTYsOTcsMTE2LDExNSwzMiwxMDUsMTE1LDMyLDc4LDExMSwKKyAgICAxMTAsMTAxLDMyLDExNiwxMDQsMTAxLDExMCwzMiwxMTUsMTA3LDEwNSwxMTIsMzIsMTE2LDEwNCwxMDEsCisgICAgMzIsMTE2LDEwNSwxMDksMTAxLDExNSwxMTYsOTcsMTA5LDExMiwzMiw5OSwxMDQsMTAxLDk5LDEwNywKKyAgICA0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3OCwxMDUsNCwwLDAsCisgICAgMCwxMDUsOCwwLDAsMCwxMDUsMTIsMCwwLDAsMTE3LDMwLDAsMCwwLAorICAgIDk4LDk3LDEwMCwzMiwxMDksOTcsMTAzLDEwNSw5OSwzMiwxMTAsMTE3LDEwOSw5OCwxMDEsMTE0LAorICAgIDMyLDEwNSwxMTAsMzIsMTIzLDMzLDExNCwxMjUsNTgsMzIsMTIzLDMzLDExNCwxMjUsMTE3LDQsCisgICAgMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsCisgICAgMTE3LDE5LDAsMCwwLDk4LDk3LDEwMCwzMiwxMTYsMTA1LDEwOSwxMDEsMTE1LDExNiw5NywKKyAgICAxMDksMTEyLDMyLDEwNSwxMTAsMzIsMTIzLDEyNSwxMTcsMTQsMCwwLDAsOTgsOTcsMTAwLAorICAgIDMyLDExNSwxMDUsMTIyLDEwMSwzMiwxMDUsMTEwLDMyLDEyMywxMjUsMTE3LDUsMCwwLDAsCisgICAgMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsMjQsMCwwLDAsOTgsMTIxLDExNiwxMDEsOTksMTExLAorICAgIDEwMCwxMDEsMzIsMTA1LDExNSwzMiwxMTUsMTE2LDk3LDEwOCwxMDEsMzIsMTAyLDExMSwxMTQsMzIsCisgICAgMTIzLDEyNSwxMTcsNCwwLDAsMCwxMTUsMTA1LDEyMiwxMDEsNzMsMjU1LDI1NSwyNTUsMjU1LAorICAgIDAsMCwwLDAsNDAsMTAsMCwwLDAsMTE3LDEzLDAsMCwwLDk1LDc3LAorICAgIDY1LDcxLDczLDY3LDk1LDc4LDg1LDc3LDY2LDY5LDgyLDExNyw2LDAsMCwwLAorICAgIDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsMTE3LDExLDAsMCwwLDczLDEwOSwxMTIsMTExLDExNCwKKyAgICAxMTYsNjksMTE0LDExNCwxMTEsMTE0LDExNywzLDAsMCwwLDEwOCwxMDEsMTEwLDExNywxNiwKKyAgICAwLDAsMCw5NSwxMTgsMTAxLDExNCw5OCwxMTEsMTE1LDEwMSw5NSwxMDksMTAxLDExNSwxMTUsCisgICAgOTcsMTAzLDEwMSwxMTcsOCwwLDAsMCw2OSw3OSw3MCw2OSwxMTQsMTE0LDExMSwxMTQsCisgICAgMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDMsMCwwLDAsMTA1LDExMCwKKyAgICAxMTYsMTE3LDgsMCwwLDAsNzUsMTAxLDEyMSw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDcsCisgICAgMCwwLDAsOTUsMTE0LDk1LDEwOCwxMTEsMTEwLDEwMyw0MCwxMiwwLDAsMCwxMTcsCisgICAgNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsCisgICAgMTA4LDExMCw5NywxMDksMTAxLDExNyw0LDAsMCwwLDEwMCw5NywxMTYsOTcsMTE3LDEzLAorICAgIDAsMCwwLDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDk1LDExMiw5NywxMTYsMTA0LAorICAgIDExNywxMiwwLDAsMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDk1LDExNSwxMTYsOTcsMTE2LAorICAgIDExNSwxMTcsNSwwLDAsMCwxMDksOTcsMTAzLDEwNSw5OSwxMTcsMTMsMCwwLDAsCisgICAgMTE0LDk3LDExOSw5NSwxMTYsMTA1LDEwOSwxMDEsMTE1LDExNiw5NywxMDksMTEyLDExNyw4LDAsCisgICAgMCwwLDExNCw5NywxMTksOTUsMTE1LDEwNSwxMjIsMTAxLDExNywzLDAsMCwwLDEwOSwKKyAgICAxMTUsMTAzLDExNyw3LDAsMCwwLDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNywxMiwKKyAgICAwLDAsMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDk1LDEwOSwxMTYsMTA1LDEwOSwxMDEsMTE3LAorICAgIDExLDAsMCwwLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTUsMTE1LDEwNSwxMjIsMTAxLDQwLAorICAgIDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLAorICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0NiwKKyAgICA5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDIwLDAsMCwwLAorICAgIDk1LDk4LDEyMSwxMTYsMTAxLDExNSw5NSwxMDIsMTE0LDExMSwxMDksOTUsOTgsMTIxLDExNiwxMDEsCisgICAgOTksMTExLDEwMCwxMDEsODQsMiwwLDAsMTE1LDY2LDAsMCwwLDAsNywxNiwKKyAgICAxLDE2LDEsMTYsMSwxMiwxLDE4LDEsMjcsMSwxOCwxLDE1LDEsMTAsCisgICAgMSwxNSwxLDE4LDEsMTUsMSwxMCwxLDE1LDEsMTIsMSwzLDEsMjAsCisgICAgMSwxMywxLDUsMiwxOCwxLDE1LDEsMTAsMSwxNSwxLDEyLDEsMywKKyAgICAxLDE4LDEsMTMsMSw1LDIsMTgsMSwzLDEsMTUsMSwyMSwzLDExNywKKyAgICAzNCwwLDAsMCw5NSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNjYsOTcsMTE1LDEwNSw5OSwKKyAgICAxMTUsNDYsOTUsOTgsMTIxLDExNiwxMDEsMTE1LDk1LDEwMiwxMTQsMTExLDEwOSw5NSw5OCwxMjEsCisgICAgMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwxMTcsMTAsMCwwLDAsMTE1LDExMSwxMTcsMTE0LDk5LAorICAgIDEwMSwxMDgsMTAxLDExNSwxMTUsOTksMiwwLDAsMCwxLDAsMCwwLDUsMCwKKyAgICAwLDAsMywwLDAsMCw2NywwLDAsMCwxMTUsMTkwLDAsMCwwLDEyNCwKKyAgICAxLDAsMTA2LDAsMCwxMjUsMywwLDEyNCwwLDAsMTA2LDEsMCwxMjQsMywKKyAgICAwLDEzMSwxLDAsMTI1LDQsMCwxMjQsMCwwLDEwNiwyLDAsMTI0LDMsMCwKKyAgICAxMzEsMSwwLDEyNCwxLDAsOTUsMywwLDEyNCwyLDAsMTE1LDY5LDAsMTE2LAorICAgIDQsMCwxMjQsMSwwLDEwNiwzLDAsMTMxLDEsMCwxMjQsMSwwLDk1LDUsCisgICAgMCwxMTAsMTIsMCwxMjQsMSwwLDEwNiwzLDAsMTI0LDEsMCw5NSw1LDAsCisgICAgMTI0LDMsMCwxMjQsMSwwLDk1LDYsMCwxMjQsMCwwLDEwNiw3LDAsMTI0LAorICAgIDMsMCwxMzEsMSwwLDExNCwxMzMsMCwxMTYsOCwwLDEyNCwxLDAsMTA2LDMsCisgICAgMCwxMzEsMSwwLDEwMCwxLDAsMjUsMTAzLDEsMCwxMjQsMSwwLDk1LDksCisgICAgMCwxMTAsMjUsMCwxMjQsMSwwLDEwNiw2LDAsMTA2LDEwLDAsMTAwLDIsMCwKKyAgICAxMzEsMSwwLDEwMCwxLDAsMjUsMTI0LDEsMCw5NSw2LDAsMTI0LDAsMCwKKyAgICAxMjQsMSwwLDk1LDExLDAsMTI0LDAsMCwxMDYsMTIsMCwxMjQsNCwwLDEyNCwKKyAgICAxLDAsMTA2LDEzLDAsMTMxLDIsMCwxLDEyNCwxLDAsODMsNDAsMywwLAorICAgIDAsMCwxMTcsODIsMCwwLDAsNzIsMTAxLDEwOCwxMTIsMTAxLDExNCwzMiwxMDIsMTExLAorICAgIDExNCwzMiwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiw5Nyw5OCwKKyAgICAxMDgsMTAxLDMyLDExNiwxMTEsMzIsMTA0LDk3LDExMCwxMDAsMTA4LDEwMSwzMiwxMDEsMTA1LDExNiwKKyAgICAxMDQsMTAxLDExNCwzMiwxMTUsMTExLDExNywxMTQsOTksMTAxLDMyLDExMSwxMTQsMzIsMTE1LDExMSwKKyAgICAxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsCisgICAgMzIsMTA4LDExMSw5NywxMDAsMTA1LDExMCwxMDMsNDYsMTA1LDAsMCwwLDAsMTE3LDEsCisgICAgMCwwLDAsNDYsNDAsMTQsMCwwLDAsMTE3LDgsMCwwLDAsOTUsOTUsCisgICAgMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDgsMCwwLDAsMTAzLDEwMSwxMTYsOTUsOTksCisgICAgMTExLDEwMCwxMDEsMTE3LDEyLDAsMCwwLDEwMywxMDEsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwKKyAgICAxMTAsOTcsMTA5LDEwMSwxMTcsOCwwLDAsMCw5NSw5NSwxMDIsMTA1LDEwOCwxMDEsOTUsCisgICAgOTUsMTE3LDE3LDAsMCwwLDk5LDk3LDk5LDEwNCwxMDEsOTUsMTAyLDExNCwxMTEsMTA5LAorICAgIDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMTE3LDEwLDAsMCwwLDk1LDk1LDk5LDk3LAorICAgIDk5LDEwNCwxMDEsMTAwLDk1LDk1LDExNywxMSwwLDAsMCw5NSw5NSwxMTIsOTcsOTksCisgICAgMTA3LDk3LDEwMywxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDEwNSwxMTUsOTUsMTEyLDk3LAorICAgIDk5LDEwNyw5NywxMDMsMTAxLDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwKKyAgICAxMTUsMTEyLDEwOCwxMDUsMTE2LDExNyw4LDAsMCwwLDk1LDk1LDExMiw5NywxMTYsMTA0LAorICAgIDk1LDk1LDExNywxMCwwLDAsMCwxMTQsMTEyLDk3LDExNCwxMTYsMTA1LDExNiwxMDUsMTExLAorICAgIDExMCwxMTcsMTAsMCwwLDAsOTUsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSw5NSwKKyAgICAxMTcsMTIsMCwwLDAsOTUsMTAxLDEyMCwxMDEsOTksOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsMTE3LDgsMCwwLDAsOTUsOTUsMTAwLDEwNSw5OSwxMTYsOTUsOTUsNDAsNSwKKyAgICAwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDYsMCwwLAorICAgIDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDEwLDAsMCwwLDExNSwxMTEsMTE3LDExNCwKKyAgICA5OSwxMDEsMTA4LDEwMSwxMTUsMTE1LDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNywKKyAgICAxMSwwLDAsMCw5OSwxMTEsMTAwLDEwMSw5NSwxMTEsOTgsMTA2LDEwMSw5OSwxMTYsNDAsCisgICAgMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsCisgICAgMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LAorICAgIDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTIsMCwwLDAsCisgICAgOTUsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTI5LDIsMCwwLAorICAgIDExNSwyNiwwLDAsMCwwLDQsOSwxLDE1LDEsMTgsMSw2LDEsMjEsCisgICAgMiwxMiwxLDksMSwxNSwxLDI4LDIsMjUsMSw5LDEsMTksMSwxMTcsCisgICAgMjYsMCwwLDAsOTUsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDY2LDk3LDExNSwxMDUsOTksCisgICAgMTE1LDQ2LDk1LDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk5LDMsCisgICAgMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDMsMCwwLDAsNjcsCisgICAgMCwwLDAsMTE1LDE3LDAsMCwwLDExNiwwLDAsMTI0LDEsMCwxMjQsMiwKKyAgICAwLDEzMSwyLDAsMSwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDE2MiwKKyAgICAwLDAsMCw3MiwxMDEsMTA4LDExMiwxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDk1LDEwOCwKKyAgICAxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ0LDMyLDk3LDEwOCwxMDgsMTExLAorICAgIDExOSwxMDUsMTEwLDEwMywzMiwxMTYsMTExLDMyLDEwNSwxMTUsMTExLDEwOCw5NywxMTYsMTAxLDMyLAorICAgIDEwMSw5NywxMTUsMTA1LDEwOCwxMjEsMzIsNDAsMTE5LDEwNCwxMDEsMTEwLDEwLDMyLDMyLDMyLAorICAgIDMyLDMyLDMyLDMyLDMyLDEwOCwxMTEsMTExLDEwNywxMDUsMTEwLDEwMywzMiw5NywxMTYsMzIsCisgICAgOTcsMzIsMTE2LDExNCw5Nyw5OSwxMDEsOTgsOTcsOTksMTA3LDQxLDMyLDExOSwxMDQsMTAxLAorICAgIDExNiwxMDQsMTAxLDExNCwzMiw5NywxMTAsMzIsMTAxLDExNCwxMTQsMTExLDExNCwzMiw5OSwxMTEsCisgICAgMTA5LDEwMSwxMTUsMzIsMTAyLDExNCwxMTEsMTA5LDMyLDEwMSwxMjAsMTAxLDk5LDExNywxMTYsMTA1LAorICAgIDExMCwxMDMsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsOTcsMTEwLDMyLDEwNSwxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzksMTE1LDMyLAorICAgIDk5LDExMSwxMDAsMTAxLDQ2LDc4LDQwLDEsMCwwLDAsMTE3LDQsMCwwLDAsCisgICAgMTAxLDEyMCwxMDEsOTksNDAsMywwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLAorICAgIDEwOCwxMDIsMTE3LDExLDAsMCwwLDk5LDExMSwxMDAsMTAxLDk1LDExMSw5OCwxMDYsMTAxLAorICAgIDk5LDExNiwxMTcsMTEsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTAwLDEwNSwKKyAgICA5OSwxMTYsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsCisgICAgMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsCisgICAgMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTIsCisgICAgMCwwLDAsOTUsMTAxLDEyMCwxMDEsOTksOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTQ5LAorICAgIDIsMCwwLDExNSwyLDAsMCwwLDAsNCwxMTcsMjYsMCwwLDAsOTUsCisgICAgNzYsMTExLDk3LDEwMCwxMDEsMTE0LDY2LDk3LDExNSwxMDUsOTksMTE1LDQ2LDk1LDEwMSwxMjAsCisgICAgMTAxLDk5LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDc4LDcwLDQwLDEwLDAsMCwwLAorICAgIDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDExNywxMCwwLAorICAgIDAsMCw5NSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSw5NSwxMTcsMTIsMCwwLAorICAgIDAsOTUsOTUsMTEzLDExNyw5NywxMDgsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDcsMCwKKyAgICAwLDAsOTUsOTUsMTAwLDExMSw5OSw5NSw5NSwxMTcsMTAsMCwwLDAsMTA1LDExNSwKKyAgICA5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTE3LDIwLDAsMCwwLDk1LDk4LDEyMSwKKyAgICAxMTYsMTAxLDExNSw5NSwxMDIsMTE0LDExMSwxMDksOTUsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwKKyAgICAxMDEsMTE3LDE3LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwMiwxMTEsMTE0LAorICAgIDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDUsMCwwLDAsNzAsOTcsMTA4LDExNSwKKyAgICAxMDEsMTE3LDEyLDAsMCwwLDk1LDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywKKyAgICAxMDgsMTAxLDExNywxMiwwLDAsMCw5NSwxMDEsMTIwLDEwMSw5OSw5NSwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSw0MCwxLDAsMCwwLDExNywxMCwwLDAsMCw5NSw5NSwxMDgsCisgICAgMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwwLDAsMCw0MCwwLDAsMCwKKyAgICAwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LAorICAgIDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LAorICAgIDk3LDExMiw2MiwxMTcsMTMsMCwwLDAsOTUsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDY2LAorICAgIDk3LDExNSwxMDUsOTksMTE1LDcxLDIsMCwwLDExNSwxMiwwLDAsMCwxNiwzLAorICAgIDYsMiwxMiw4LDEyLDQ1LDYsMSwxOCwxOSwxMTcsMTMsMCwwLDAsOTUsCisgICAgNzYsMTExLDk3LDEwMCwxMDEsMTE0LDY2LDk3LDExNSwxMDUsOTksMTE1LDk5LDEsMCwwLAorICAgIDAsMCwwLDAsMCwxLDAsMCwwLDIsMCwwLDAsNjYsMCwwLAorICAgIDAsMTE1LDkyLDAsMCwwLDEyNCwwLDAsNjksMTAxLDAsMCw5MCwxLDAsCisgICAgMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCwxMDAsMiwwLDEzMiwwLDAsOTAsCisgICAgMywwLDEwMCwzLDAsMTAwLDQsMCwxMzIsMCwwLDkwLDQsMCwxMDAsNSwKKyAgICAwLDEwMCw2LDAsMTMyLDAsMCw5MCw1LDAsMTAwLDcsMCwxMDAsOCwwLAorICAgIDEzMiwwLDAsOTAsNiwwLDEwMCw5LDAsMTAwLDEwLDAsMTMyLDAsMCw5MCwKKyAgICA3LDAsMTAwLDExLDAsMTAwLDEyLDAsMTMyLDAsMCw5MCw4LDAsMTAwLDEzLAorICAgIDAsODMsNDAsMTQsMCwwLDAsMTE3LDEyLDAsMCwwLDgzLDExMSwxMTcsMTE0LAorICAgIDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsOTksMiwwLDAsMCwwLDAsMCwKKyAgICAwLDIsMCwwLDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsMTAsMCwKKyAgICAwLDAsMTE2LDAsMCwxMzAsMSwwLDEwMCwxLDAsODMsNDAsMiwwLDAsCisgICAgMCwxMTcsMTIxLDAsMCwwLDc5LDExMiwxMTYsMTA1LDExMSwxMTAsOTcsMTA4LDMyLDEwOSwKKyAgICAxMDEsMTE2LDEwNCwxMTEsMTAwLDMyLDExNiwxMDQsOTcsMTE2LDMyLDExNCwxMDEsMTE2LDExNywxMTQsCisgICAgMTEwLDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMDUsMTAyLDEwNSw5OSw5NywxMTYsCisgICAgMTA1LDExMSwxMTAsMzIsMTE2LDEwNSwxMDksMTAxLDMyLDQwLDk3LDExMCwzMiwxMDUsMTEwLDExNiwKKyAgICA0MSwzMiwxMDIsMTExLDExNCwzMiwxMTYsMTA0LDEwMSwxMCwzMiwzMiwzMiwzMiwzMiwzMiwKKyAgICAzMiwzMiwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSwxMDEsMTAwLDMyLDExMiw5NywxMTYsMTA0LAorICAgIDQ0LDMyLDExOSwxMDQsMTAxLDExNCwxMDEsMzIsMTEyLDk3LDExNiwxMDQsMzIsMTA1LDExNSwzMiwKKyAgICA5NywzMiwxMTUsMTE2LDExNCw0NiwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3OCwKKyAgICA0MCwxLDAsMCwwLDExNywxOSwwLDAsMCw3OCwxMTEsMTE2LDczLDEwOSwxMTIsCisgICAgMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsMTAxLDEwMCw2OSwxMTQsMTE0LDExMSwxMTQsNDAsMiwwLAorICAgIDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDQsMCwwLDAsCisgICAgMTEyLDk3LDExNiwxMDQsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwKKyAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKKyAgICAxMTcsMTAsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTA5LDExNiwxMDUsMTA5LDEwMSwxNTgsCisgICAgMiwwLDAsMTE1LDIsMCwwLDAsMCw0LDExNywyMywwLDAsMCw4MywKKyAgICAxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDExMiw5NywxMTYsMTA0LAorICAgIDk1LDEwOSwxMTYsMTA1LDEwOSwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLDIsCisgICAgMCwwLDAsMywwLDAsMCw2NywwLDAsMCwxMTUsMjAsMCwwLDAsCisgICAgMTA1LDEsMCwxMjQsMCwwLDEwNiwwLDAsMTI0LDEsMCwxMzEsMSwwLDEwMCwKKyAgICAxLDAsNTQsODMsNDAsMiwwLDAsMCwxMTcsMTE0LDEsMCwwLDc5LDExMiwKKyAgICAxMTYsMTA1LDExMSwxMTAsOTcsMTA4LDMyLDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDMyLDExNCwxMDEsCisgICAgMTE2LDExNywxMTQsMTEwLDEwNSwxMTAsMTAzLDMyLDk3LDMyLDEwOSwxMDEsMTE2LDk3LDEwMCw5NywKKyAgICAxMTYsOTcsMzIsMTAwLDEwNSw5OSwxMTYsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsCisgICAgMTE1LDExMiwxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDEwMCwzMiwxMTIsOTcsMTE2LDEwNCwxMCwzMiwKKyAgICAzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMTYsMTExLDMyLDk4LDEyMSwzMiwxMTYsMTA0LDEwMSwKKyAgICAzMiwxMTIsOTcsMTE2LDEwNCwzMiw0MCwxMTUsMTE2LDExNCw0MSw0NiwxMCwzMiwzMiwzMiwKKyAgICAzMiwzMiwzMiwzMiwzMiw4MCwxMTEsMTE1LDExNSwxMDUsOTgsMTA4LDEwMSwzMiwxMDcsMTAxLAorICAgIDEyMSwxMTUsNTgsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNDUsMzIsMzksMTA5LAorICAgIDExNiwxMDUsMTA5LDEwMSwzOSwzMiw0MCwxMDksOTcsMTEwLDEwMCw5NywxMTYsMTExLDExNCwxMjEsCisgICAgNDEsMzIsMTA1LDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMTAsMTE3LDEwOSwxMDEsMTE0LDEwNSw5OSwKKyAgICAzMiwxMTYsMTA1LDEwOSwxMDEsMTE1LDExNiw5NywxMDksMTEyLDMyLDExMSwxMDIsMzIsMTA4LDk3LAorICAgIDExNSwxMTYsMzIsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwxMCwzMiwzMiwzMiwzMiwzMiwzMiwKKyAgICAzMiwzMiwzMiwzMiw5OSwxMTEsMTAwLDEwMSwzMiwxMDksMTExLDEwMCwxMDUsMTAyLDEwNSw5OSwKKyAgICA5NywxMTYsMTA1LDExMSwxMTAsNTksMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNDUsCisgICAgMzIsMzksMTE1LDEwNSwxMjIsMTAxLDM5LDMyLDQwLDExMSwxMTIsMTE2LDEwNSwxMTEsMTEwLDk3LAorICAgIDEwOCw0MSwzMiwxMDUsMTE1LDMyLDExNiwxMDQsMTAxLDMyLDExNSwxMDUsMTIyLDEwMSwzMiwxMDUsCisgICAgMTEwLDMyLDk4LDEyMSwxMTYsMTAxLDExNSwzMiwxMTEsMTAyLDMyLDExNiwxMDQsMTAxLDMyLDExNSwKKyAgICAxMTEsMTE3LDExNCw5OSwxMDEsMzIsOTksMTExLDEwMCwxMDEsNDYsMTAsMTAsMzIsMzIsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsNzMsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiwxMDUsMTEwLAorICAgIDEwMywzMiwxMTYsMTA0LDEwNSwxMTUsMzIsMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMzIsOTcsMTA4LAorICAgIDEwOCwxMTEsMTE5LDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDMyLAorICAgIDExNiwxMTEsMzIsMTE0LDEwMSw5NywxMDAsMzIsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsCisgICAgMzIsMTAyLDEwNSwxMDgsMTAxLDExNSw0NiwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwKKyAgICAxMTcsNSwwLDAsMCwxMDksMTE2LDEwNSwxMDksMTAxLDQwLDEsMCwwLDAsMTE3LAorICAgIDEwLDAsMCwwLDExMiw5NywxMTYsMTA0LDk1LDEwOSwxMTYsMTA1LDEwOSwxMDEsNDAsMiwKKyAgICAwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDQsMCwwLAorICAgIDAsMTEyLDk3LDExNiwxMDQsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywKKyAgICAyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsCisgICAgMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiwKKyAgICA2MiwxMTcsMTAsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExNiw5NywxMTYsMTE1LAorICAgIDE2NCwyLDAsMCwxMTUsMiwwLDAsMCwwLDEwLDExNywyMywwLDAsMCwKKyAgICA4MywxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDExMiw5NywxMTYsCisgICAgMTA0LDk1LDExNSwxMTYsOTcsMTE2LDExNSw5OSwzLDAsMCwwLDAsMCwwLDAsCisgICAgMywwLDAsMCwxLDAsMCwwLDY3LDAsMCwwLDExNSwxMCwwLDAsCisgICAgMCwxMTYsMCwwLDEzMCwxLDAsMTAwLDEsMCw4Myw0MCwyLDAsMCwwLAorICAgIDExNywxNTEsMCwwLDAsNzksMTEyLDExNiwxMDUsMTExLDExMCw5NywxMDgsMzIsMTA5LDEwMSwKKyAgICAxMTYsMTA0LDExMSwxMDAsMzIsMTE5LDEwNCwxMDUsOTksMTA0LDMyLDExOSwxMTQsMTA1LDExNiwxMDEsCisgICAgMTE1LDMyLDEwMCw5NywxMTYsOTcsMzIsNDAsOTgsMTIxLDExNiwxMDEsMTE1LDQxLDMyLDExNiwKKyAgICAxMTEsMzIsOTcsMzIsMTAyLDEwNSwxMDgsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLDQwLDk3LAorICAgIDMyLDExNSwxMTYsMTE0LDQxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLAorICAgIDczLDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsMTA1LDExMCwxMDMsMzIsMTE2LDEwNCwxMDUsCisgICAgMTE1LDMyLDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDMyLDk3LDEwOCwxMDgsMTExLDExOSwxMTUsMzIsCisgICAgMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTE5LDExNCwxMDUsMTE2LDEwNSwxMTAsMTAzLDMyLAorICAgIDExMSwxMDIsMzIsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsMzIsMTAyLDEwNSwxMDgsMTAxLAorICAgIDExNSw0NiwxMCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3OCw0MCwxLDAsCisgICAgMCwwLDExNywxOSwwLDAsMCw3OCwxMTEsMTE2LDczLDEwOSwxMTIsMTA4LDEwMSwxMDksCisgICAgMTAxLDExMCwxMTYsMTAxLDEwMCw2OSwxMTQsMTE0LDExMSwxMTQsNDAsMywwLDAsMCwxMTcsCisgICAgNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwKKyAgICAxMDQsMTE3LDQsMCwwLDAsMTAwLDk3LDExNiw5Nyw0MCwwLDAsMCwwLDQwLAorICAgIDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLAorICAgIDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsCisgICAgMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDExNSwxMDEsMTE2LDk1LDEwMCwKKyAgICA5NywxMTYsOTcsMTc2LDIsMCwwLDExNSwyLDAsMCwwLDAsNiwxMTcsMjEsCisgICAgMCwwLDAsODMsMTExLDExNywxMTQsOTksMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwKKyAgICAxMTUsMTAxLDExNiw5NSwxMDAsOTcsMTE2LDk3LDk5LDIsMCwwLDAsMCwwLDAsCisgICAgMCw3LDAsMCwwLDEyLDAsMCwwLDY3LDAsMCwwLDExNSwxNTYsMCwKKyAgICAwLDAsMTAwLDEsMCwxMDAsMiwwLDEwOCwwLDAsMTI1LDIsMCwxMjQsMCwKKyAgICAwLDEwNiwxLDAsMTI0LDEsMCwxMzEsMSwwLDEyNSwzLDAsMTIxLDE5LDAsCisgICAgMTI0LDAsMCwxMDYsMiwwLDEyNCwzLDAsMTMxLDEsMCwxMjUsNCwwLDg3LAorICAgIDExMCwzNiwwLDQsMTE2LDMsMCwxMDcsMTAsMCwxMTQsODQsMCwxLDEsMSwKKyAgICAxMTYsNCwwLDEwMCwzLDAsMTAwLDQsMCwxMjQsMSwwLDEzMSwxLDEsMTMwLAorICAgIDEsMCw4OSwxMTAsMSwwLDg4LDEyNCwyLDAsMTA2LDUsMCwxMTYsNiwwLAorICAgIDEwNiw3LDAsMTI0LDQsMCwxMzEsMSwwLDEwNiw4LDAsMTMxLDEsMCwxMjUsCisgICAgNSwwLDExNiw2LDAsMTA2LDksMCwxMDAsMiwwLDEwMCw1LDAsMTMxLDIsCisgICAgMCwxMjUsNiwwLDEyNCw2LDAsMTA2LDEyLDAsMTI0LDQsMCwxMDYsMTIsMCwKKyAgICAxMjQsNSwwLDEwMCwxLDAsMjUsMTMxLDEsMCwxMzEsMSwwLDgzLDQwLDYsCisgICAgMCwwLDAsMTE3LDUyLDAsMCwwLDY3LDExMSwxMTAsOTksMTE0LDEwMSwxMTYsMTAxLAorICAgIDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDk3LDExNiwxMDUsMTExLDExMCwzMiwKKyAgICAxMTEsMTAyLDMyLDczLDExMCwxMTUsMTEyLDEwMSw5OSwxMTYsNzYsMTExLDk3LDEwMCwxMDEsMTE0LAorICAgIDQ2LDEwMywxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsNDYsMTA1LDAsMCwwLAorICAgIDAsNzgsMTE3LDM5LDAsMCwwLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsMzIsMTEwLDExMSwKKyAgICAxMTYsMzIsOTcsMTE4LDk3LDEwNSwxMDgsOTcsOTgsMTA4LDEwMSwzMiwxMTYsMTA0LDExNCwxMTEsCisgICAgMTE3LDEwMywxMDQsMzIsMTAzLDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5Nyw0MCw0MSwxMTcsNCwKKyAgICAwLDAsMCwxMTAsOTcsMTA5LDEwMSw4NCw0MCwxMywwLDAsMCwxMTcsOCwwLAorICAgIDAsMCwxMTYsMTExLDEwNywxMDEsMTEwLDEwNSwxMjIsMTAxLDExNywxMiwwLDAsMCwxMDMsCisgICAgMTAxLDExNiw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMTE3LDgsMCwwLDAsCisgICAgMTAzLDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5NywxMTcsNywwLDAsMCw3Myw3OSw2OSwKKyAgICAxMTQsMTE0LDExMSwxMTQsMTE3LDExLDAsMCwwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsNjksCisgICAgMTE0LDExNCwxMTEsMTE0LDExNywxNSwwLDAsMCwxMDAsMTAxLDExNiwxMDEsOTksMTE2LDk1LAorICAgIDEwMSwxMTAsOTksMTExLDEwMCwxMDUsMTEwLDEwMywxMTcsMywwLDAsMCw5NSwxMDUsMTExLAorICAgIDExNyw3LDAsMCwwLDY2LDEyMSwxMTYsMTAxLDExNSw3Myw3OSwxMTcsOCwwLDAsCisgICAgMCwxMTQsMTAxLDk3LDEwMCwxMDgsMTA1LDExMCwxMDEsMTE3LDI1LDAsMCwwLDczLDExMCwKKyAgICA5OSwxMTQsMTAxLDEwOSwxMDEsMTEwLDExNiw5NywxMDgsNzgsMTAxLDExOSwxMDgsMTA1LDExMCwxMDEsCisgICAgNjgsMTAxLDk5LDExMSwxMDAsMTAxLDExNCwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwKKyAgICAxMTcsNCwwLDAsMCw4NCwxMTQsMTE3LDEwMSwxMTcsNiwwLDAsMCwxMDAsMTAxLAorICAgIDk5LDExMSwxMDAsMTAxLDQwLDcsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwKKyAgICAxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsCisgICAgOCwwLDAsMCwxMTYsMTExLDEwNywxMDEsMTEwLDEwNSwxMjIsMTAxLDExNyw0LDAsMCwKKyAgICAwLDExMiw5NywxMTYsMTA0LDExNywxMiwwLDAsMCwxMTUsMTExLDExNywxMTQsOTksMTAxLAorICAgIDk1LDk4LDEyMSwxMTYsMTAxLDExNSwxMTcsOCwwLDAsMCwxMDEsMTEwLDk5LDExMSwxMDAsCisgICAgMTA1LDExMCwxMDMsMTE3LDE1LDAsMCwwLDExMCwxMDEsMTE5LDEwOCwxMDUsMTEwLDEwMSw5NSwKKyAgICAxMDAsMTAxLDk5LDExMSwxMDAsMTAxLDExNCw0MCwwLDAsMCwwLDQwLDAsMCwwLAorICAgIDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsCisgICAgOTcsMTEyLDYyLDExNywxMCwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsCisgICAgOTksMTAxLDE4NSwyLDAsMCwxMTUsMjAsMCwwLDAsMCwyLDEyLDEsMTUsCisgICAgMSwzLDEsMTksMSwxMywxLDksMSwxNCwxLDI3LDEsMTgsMSwxMTcsCisgICAgMjMsMCwwLDAsODMsMTExLDExNywxMTQsOTksMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCwKKyAgICA0NiwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDk5LDIsMCwwLDAsCisgICAgMCwwLDAsMCwxMiwwLDAsMCwzNywwLDAsMCw2NywwLDAsMCwKKyAgICAxMTUsMzAsMiwwLDAsMTI0LDAsMCwxMDYsMCwwLDEyNCwxLDAsMTMxLDEsCisgICAgMCwxMjUsMiwwLDExNiwxLDAsMTI0LDIsMCwxMzEsMSwwLDEyNSwzLDAsCisgICAgMTAwLDEwLDAsMTI1LDQsMCwxMjQsMywwLDEwMCwxMCwwLDEwNyw5LDAsMTE0LAorICAgIDYxLDEsMTIxLDE5LDAsMTI0LDAsMCwxMDYsMywwLDEyNCwyLDAsMTMxLDEsCisgICAgMCwxMjUsNSwwLDg3LDExMCwxOCwwLDQsMTE2LDQsMCwxMDcsMTAsMCwxMTQsCisgICAgODQsMCwxLDEsMSw4OSwxMTMsNjEsMSw4OCwxMTYsNSwwLDEyNCw1LDAsCisgICAgMTAwLDEsMCwyNSwxMzEsMSwwLDEyNSw0LDAsMTIxLDE5LDAsMTI0LDAsMCwKKyAgICAxMDYsNiwwLDEyNCwzLDAsMTMxLDEsMCwxMjUsNiwwLDg3LDExMCwxOCwwLAorICAgIDQsMTE2LDcsMCwxMDcsMTAsMCwxMTQsMTQwLDAsMSwxLDEsODksMTEzLDYxLAorICAgIDEsODgsMTIxLDI4LDAsMTI0LDAsMCwxMDYsOCwwLDEyNCwxLDAsMTI0LDYsCisgICAgMCwxMjQsMywwLDEyNCw1LDAsMTMxLDQsMCwxMjUsNywwLDg3LDExMCwyNCwKKyAgICAwLDQsMTE2LDksMCwxMTYsMTAsMCwxMDIsMiwwLDEwNywxMCwwLDExNCwxOTUsCisgICAgMCwxLDEsMSw4OSwxMTMsNjEsMSw4OCwxMTYsMTEsMCwxMDAsMiwwLDEyNCwKKyAgICAzLDAsMTI0LDIsMCwxMzEsMywwLDEsMTE2LDEyLDAsMTA2LDEzLDAsMTI0LAorICAgIDcsMCwxMzEsMSwwLDEyNSw4LDAsMTE2LDE0LDAsMTI0LDgsMCwxMTYsMTUsCisgICAgMCwxMzEsMiwwLDExNCwxOSwxLDExNiwxNiwwLDEwNiwxNywwLDEyNCw4LDAsCisgICAgMTI0LDIsMCwxMzEsMiwwLDEsMTE2LDExLDAsMTAwLDMsMCwxMjQsMywwLAorICAgIDEzMSwyLDAsMSwxMjQsOCwwLDgzLDEwMCw0LDAsMTI1LDksMCwxMTYsOSwKKyAgICAwLDEyNCw5LDAsMTA2LDE4LDAsMTI0LDMsMCwxMzEsMSwwLDEwMCw1LDAsCisgICAgMTI0LDEsMCwxMDAsNiwwLDEyNCwzLDAsMTMxLDEsMiwxMzAsMSwwLDExMCwKKyAgICAwLDAsMTI0LDAsMCwxMDYsNiwwLDEyNCwyLDAsMTMxLDEsMCwxMjUsMTAsCisgICAgMCwxMTYsMTksMCwxMjQsMTAsMCwxMjQsMiwwLDEwMCw3LDAsMTAwLDgsMCwKKyAgICAxMDAsMTEsMCwxMzEsMywxLDEyNSwxMSwwLDExNiwxMSwwLDEwMCwzLDAsMTI0LAorICAgIDIsMCwxMzEsMiwwLDEsMTE2LDIxLDAsMTA2LDIyLDAsMTIsMTE0LDI2LDIsCisgICAgMTI0LDMsMCwxMDAsMTAsMCwxMDcsOSwwLDExNCwyNiwyLDEyNCw0LDAsMTAwLAorICAgIDEwLDAsMTA3LDksMCwxMTQsMjYsMiwxMTYsMjMsMCwxMTYsMjQsMCwxMzEsMSwKKyAgICAwLDEyNSw2LDAsMTI0LDYsMCwxMDYsMjUsMCwxMTYsMjYsMCwxMjQsNCwwLAorICAgIDEzMSwxLDAsMTMxLDEsMCwxLDEyNCw2LDAsMTA2LDI1LDAsMTE2LDI2LDAsCisgICAgMTE2LDI3LDAsMTI0LDEwLDAsMTMxLDEsMCwxMzEsMSwwLDEzMSwxLDAsMSwKKyAgICAxMjQsNiwwLDEwNiwyNSwwLDExNiwxMiwwLDEwNiwyOCwwLDEyNCwxMSwwLDEzMSwKKyAgICAxLDAsMTMxLDEsMCwxLDEyMSwzMywwLDEyNCwwLDAsMTA2LDI5LDAsMTI0LAorICAgIDMsMCwxMjQsNiwwLDEzMSwyLDAsMSwxMTYsMTEsMCwxMDAsOSwwLDEyNCwKKyAgICAzLDAsMTMxLDIsMCwxLDg3LDExMywyNiwyLDQsMTE2LDQsMCwxMDcsMTAsCisgICAgMCwxMTQsMjIsMiwxLDEsMSw4OSwxMTMsMjYsMiw4OCwxMTAsMCwwLDEyNCwKKyAgICAxMSwwLDgzLDQwLDEyLDAsMCwwLDExNywxOTAsMCwwLDAsNjcsMTExLDExMCwKKyAgICA5OSwxMTQsMTAxLDExNiwxMDEsMzIsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsOTcsCisgICAgMTE2LDEwNSwxMTEsMTEwLDMyLDExMSwxMDIsMzIsNzMsMTEwLDExNSwxMTIsMTAxLDk5LDExNiw3NiwKKyAgICAxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsNDYsMTAsCisgICAgMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsODIsMTAxLDk3LDEwMCwxMDUsMTEwLDEwMywKKyAgICAzMiwxMTEsMTAyLDMyLDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDMyLDExNCwxMDEsMTEzLAorICAgIDExNywxMDUsMTE0LDEwMSwxMTUsMzIsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDExNiw5NywxMTYsMTE1LAorICAgIDMyLDExNiwxMTEsMzIsOTgsMTAxLDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LAorICAgIDEwMSwxMDAsNDYsMzIsODQsMTExLDMyLDExOSwxMTQsMTA1LDExNiwxMDEsMTAsMzIsMzIsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsNDQsMzIsMTE1LAorICAgIDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5NywzMiwxMDksMTE3LDExNSwxMTYsMzIsOTcsMTA4LDExNSwKKyAgICAxMTEsMzIsOTgsMTAxLDMyLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDEwMSwxMDAsCisgICAgNDYsMTAsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTE3LDUsMCwwLDAsCisgICAgMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsMTMsMCwwLDAsMTIzLDEyNSwzMiwxMDksOTcsMTE2LAorICAgIDk5LDEwNCwxMDEsMTE1LDMyLDEyMywxMjUsMTE3LDE5LDAsMCwwLDk5LDExMSwxMDAsMTAxLAorICAgIDMyLDExMSw5OCwxMDYsMTAxLDk5LDExNiwzMiwxMDIsMTE0LDExMSwxMDksMzIsMTIzLDEyNSwxMTcsCisgICAgMjEsMCwwLDAsNzgsMTExLDExMCw0NSw5OSwxMTEsMTAwLDEwMSwzMiwxMTEsOTgsMTA2LAorICAgIDEwMSw5OSwxMTYsMzIsMTA1LDExMCwzMiwxMjMsMTI1LDExNyw0LDAsMCwwLDExMCw5NywKKyAgICAxMDksMTAxLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNyw0LDAsMCwwLAorICAgIDEwMSwxMjAsMTAxLDk5LDExNywxMiwwLDAsMCwxMDAsMTExLDExMCwxMTYsOTUsMTA1LDExMCwKKyAgICAxMDQsMTAxLDExNCwxMDUsMTE2LDExNywxMCwwLDAsMCwxMTksMTE0LDExMSwxMTYsMTAxLDMyLAorICAgIDEyMywzMywxMTQsMTI1LDc4LDg0LDQwLDMwLDAsMCwwLDExNywxMiwwLDAsMCwKKyAgICAxMDMsMTAxLDExNiw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMTE3LDE3LDAsMCwKKyAgICAwLDk5LDk3LDk5LDEwNCwxMDEsOTUsMTAyLDExNCwxMTEsMTA5LDk1LDExNSwxMTEsMTE3LDExNCwKKyAgICA5OSwxMDEsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDEwLDAsMCwwLAorICAgIDExMiw5NywxMTYsMTA0LDk1LDExNSwxMTYsOTcsMTE2LDExNSwxMTcsMTksMCwwLDAsNzgsCisgICAgMTExLDExNiw3MywxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsMTE2LDEwMSwxMDAsNjksMTE0LDExNCwKKyAgICAxMTEsMTE0LDExNywzLDAsMCwwLDEwNSwxMTAsMTE2LDExNyw4LDAsMCwwLDEwMywKKyAgICAxMDEsMTE2LDk1LDEwMCw5NywxMTYsOTcsMTE3LDcsMCwwLDAsNzMsNzksNjksMTE0LAorICAgIDExNCwxMTEsMTE0LDExNywyMCwwLDAsMCw5NSw5OCwxMjEsMTE2LDEwMSwxMTUsOTUsMTAyLAorICAgIDExNCwxMTEsMTA5LDk1LDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDExNywxMSwwLDAsCisgICAgMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCwxMTcsOCwwLDAsCisgICAgMCw2OSw3OSw3MCw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDE2LDAsMCwwLDk1LDExOCwKKyAgICAxMDEsMTE0LDk4LDExMSwxMTUsMTAxLDk1LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNyw3LAorICAgIDAsMCwwLDEwOSw5NywxMTQsMTE1LDEwNCw5NywxMDgsMTE3LDUsMCwwLDAsMTA4LAorICAgIDExMSw5NywxMDAsMTE1LDExNywxMCwwLDAsMCwxMDUsMTE1LDEwNSwxMTAsMTE1LDExNiw5NywKKyAgICAxMTAsOTksMTAxLDExNywxMCwwLDAsMCw5NSw5OSwxMTEsMTAwLDEwMSw5NSwxMTYsMTIxLAorICAgIDExMiwxMDEsMTE3LDQsMCwwLDAsOTUsMTA1LDEwOSwxMTIsMTE3LDE2LDAsMCwwLAorICAgIDk1LDEwMiwxMDUsMTIwLDk1LDk5LDExMSw5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsCisgICAgMTE3LDYsMCwwLDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiwxMTcsNywwLDAsMCwKKyAgICA5OSwxMTEsMTA5LDExMiwxMDUsMTA4LDEwMSwxMTcsNCwwLDAsMCw4NCwxMTQsMTE3LDEwMSwKKyAgICAxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsMTksMCwwLDAsMTAwLDExMSwxMTAsCisgICAgMTE2LDk1LDExOSwxMTQsMTA1LDExNiwxMDEsOTUsOTgsMTIxLDExNiwxMDEsOTksMTExLDEwMCwxMDEsCisgICAgMTE3LDksMCwwLDAsOTgsMTIxLDExNiwxMDEsOTcsMTE0LDExNCw5NywxMjEsMTE3LDEzLAorICAgIDAsMCwwLDk1LDc3LDY1LDcxLDczLDY3LDk1LDc4LDg1LDc3LDY2LDY5LDgyLAorICAgIDExNyw2LDAsMCwwLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTAwLDExNyw3LDAsMCwwLAorICAgIDk1LDExOSw5NSwxMDgsMTExLDExMCwxMDMsMTE3LDMsMCwwLDAsMTA4LDEwMSwxMTAsMTE3LAorICAgIDUsMCwwLDAsMTAwLDExNywxMDksMTEyLDExNSwxMTcsOCwwLDAsMCwxMTUsMTAxLAorICAgIDExNiw5NSwxMDAsOTcsMTE2LDk3LDQwLDEyLDAsMCwwLDExNyw0LDAsMCwwLAorICAgIDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwKKyAgICAxMDEsMTE3LDExLDAsMCwwLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTUsMTEyLDk3LDExNiwKKyAgICAxMDQsMTE3LDEzLDAsMCwwLDk4LDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDk1LDExMiwKKyAgICA5NywxMTYsMTA0LDExNywxMiwwLDAsMCwxMTUsMTExLDExNywxMTQsOTksMTAxLDk1LDEwOSwKKyAgICAxMTYsMTA1LDEwOSwxMDEsMTE3LDIsMCwwLDAsMTE1LDExNiwxMTcsNCwwLDAsMCwKKyAgICAxMDAsOTcsMTE2LDk3LDExNywxMCwwLDAsMCw5OCwxMjEsMTE2LDEwMSwxMTUsOTUsMTAwLAorICAgIDk3LDExNiw5NywxMTcsNSwwLDAsMCwxMDIsMTExLDExNywxMTAsMTAwLDExNywzLDAsCisgICAgMCwwLDEwOSwxMTUsMTAzLDExNywxMiwwLDAsMCwxMTUsMTExLDExNywxMTQsOTksMTAxLAorICAgIDk1LDk4LDEyMSwxMTYsMTAxLDExNSwxMTcsMTEsMCwwLDAsOTksMTExLDEwMCwxMDEsOTUsCisgICAgMTExLDk4LDEwNiwxMDEsOTksMTE2LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwKKyAgICAxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsCisgICAgMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywKKyAgICAxMTIsNjIsMTE3LDgsMCwwLDAsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsMTk4LAorICAgIDIsMCwwLDExNSw5MiwwLDAsMCwwLDcsMTUsMSwxMiwxLDYsMSwKKyAgICAxMiwxLDMsMSwxOSwxLDEzLDEsNSwyLDE2LDEsMywxLDE5LDEsCisgICAgMTMsMSw1LDIsMywxLDEyLDEsMywxLDEzLDEsMTksMSw1LDIsCisgICAgOSwxLDcsMSwxNSwxLDE1LDEsMTYsMSw2LDEsNywxLDQsMiwKKyAgICA2LDEsMTgsMSwxOCwxLDE1LDEsMTUsMSw5LDEsMTMsMSwyMiwxLAorICAgIDEyLDEsMTIsMSwxOSwxLDI1LDEsMjIsMSwzLDEsMTYsMSwxNywxLAorICAgIDEzLDEsOCwxLDExNywyMSwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzYsCisgICAgMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLDk5LDIsCisgICAgMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDIsMCwwLDAsNjcsCisgICAgMCwwLDAsMTE1LDEzLDAsMCwwLDEyNCwwLDAsMTA2LDAsMCwxMjQsMSwKKyAgICAwLDEzMSwxLDAsODMsNDAsMSwwLDAsMCwxMTcsMCwxLDAsMCw2NywKKyAgICAxMTEsMTEwLDk5LDExNCwxMDEsMTE2LDEwMSwzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLAorICAgIDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTExLDEwMiwzMiw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgNDYsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsMTAsMTAsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsMzIsMzIsODIsMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDMyLAorICAgIDY5LDEyMCwxMDEsOTksMTE3LDExNiwxMDUsMTExLDExMCw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsCisgICAgMTAzLDEwMSwxMTYsOTUsMTAyLDEwNSwxMDgsMTAxLDExMCw5NywxMDksMTAxLDMyLDk3LDExMCwxMDAsCisgICAgMzIsODIsMTAxLDExNSwxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LAorICAgIDEwMywxMDEsMTE2LDk1LDEwMCw5NywxMTYsOTcsMzIsMTE2LDExMSwzMiw5OCwxMDEsMTAsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsCisgICAgMTAxLDEwMCwzMiwxMTYsMTExLDMyLDEwOCwxMTEsOTcsMTAwLDMyLDExNSwxMTEsMTE3LDExNCw5OSwKKyAgICAxMDEsMzIsOTksMTExLDEwMCwxMDEsNDYsMzIsODUsMTE1LDEwMSwzMiwxMTEsMTAyLDMyLDk4LAorICAgIDEyMSwxMTYsMTAxLDk5LDExMSwxMDAsMTAxLDMyLDEwNSwxMTUsMzIsMTAwLDEwNSw5OSwxMTYsOTcsCisgICAgMTE2LDEwMSwxMDAsMzIsOTgsMTIxLDMyLDExOSwxMDQsMTAxLDExNiwxMDQsMTAxLDExNCwxMCwzMiwKKyAgICAzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMDMsMTAxLDExNiw5NSw5OSwxMTEsMTAwLDEwMSwzMiwKKyAgICAxMTcsMTE1LDEwMSwxMTUsNDcsMTE5LDExNCwxMDUsMTE2LDEwMSwxMTUsMzIsOTgsMTIxLDExNiwxMDEsCisgICAgOTksMTExLDEwMCwxMDEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNDAsCisgICAgMSwwLDAsMCwxMTcsMTIsMCwwLDAsOTUsMTA4LDExMSw5NywxMDAsOTUsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsCisgICAgMTAxLDEwOCwxMDIsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLAorICAgIDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsCisgICAgMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCwKKyAgICA0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDExLDAsMCwKKyAgICAwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDAsMywwLDAsCisgICAgMTE1LDIsMCwwLDAsMCw4LDExNywyNCwwLDAsMCw4MywxMTEsMTE3LDExNCwKKyAgICA5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsCisgICAgMTAwLDExNywxMDgsMTAxLDc4LDQwLDksMCwwLDAsMTE3LDgsMCwwLDAsOTUsCisgICAgOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOSwxMTEsCisgICAgMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwxMTMsMTE3LDk3LAorICAgIDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTAsMCwwLDAsMTEyLDk3LDExNiwxMDQsCisgICAgOTUsMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsMTAsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsCisgICAgMTE1LDExNiw5NywxMTYsMTE1LDExNyw4LDAsMCwwLDExNSwxMDEsMTE2LDk1LDEwMCw5NywKKyAgICAxMTYsOTcsMTE3LDEwLDAsMCwwLDEwMywxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwKKyAgICAxMDEsMTE3LDgsMCwwLDAsMTAzLDEwMSwxMTYsOTUsOTksMTExLDEwMCwxMDEsMTE3LDExLAorICAgIDAsMCwwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQwLDEsCisgICAgMCwwLDAsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTksOTcsMTA4LDExNSwKKyAgICA5NSw5NSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwKKyAgICAwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwKKyAgICAxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMiwKKyAgICAwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDE1NiwKKyAgICAyLDAsMCwxMTUsMTIsMCwwLDAsMTYsMiwxMiw2LDEyLDEyLDEyLDksCisgICAgMTIsMTMsMTIsNTgsMTE3LDEyLDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3NiwKKyAgICAxMTEsOTcsMTAwLDEwMSwxMTQsOTksMSwwLDAsMCwwLDAsMCwwLDEsMCwKKyAgICAwLDAsNCwwLDAsMCwyLDAsMCwwLDExNSw5MiwwLDAsMCwxMjQsCisgICAgMCwwLDY5LDEwMSwwLDAsOTAsMSwwLDEwMCwwLDAsOTAsMiwwLDEwMCwKKyAgICAxLDAsOTAsMywwLDEwMCwyLDAsMTAwLDMsMCwxMzIsMCwwLDkwLDQsCisgICAgMCwxMDEsNSwwLDEzNSwwLDAsMTAyLDEsMCwxMDAsNCwwLDEwMCw1LDAsCisgICAgMTM0LDAsMCwxMzEsMSwwLDkwLDYsMCwxMDEsNSwwLDEwMCw2LDAsMTAwLAorICAgIDcsMCwxMzIsMCwwLDEzMSwxLDAsOTAsNywwLDEwMCw4LDAsMTAwLDksCisgICAgMCwxMzIsMCwwLDkwLDgsMCwxMzUsMCwwLDgzLDQwLDEwLDAsMCwwLAorICAgIDExNywxMCwwLDAsMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LAorICAgIDEwMywwLDAsMCw2Niw5NywxMTUsMTAxLDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMDgsMTExLAorICAgIDk3LDEwMCwxMDEsMTE0LDMyLDk5LDEwOCw5NywxMTUsMTE1LDMyLDExOSwxMDQsMTA1LDk5LDEwNCwKKyAgICAzMiwxMDUsMTA5LDExMiwxMDgsMTAxLDEwOSwxMDEsMTEwLDExNiwxMTUsMzIsMTE2LDEwNCwxMDEsMzIsCisgICAgMTA4LDExMSw5NywxMDAsMTAxLDExNCwzMiwxMTIsMTE0LDExMSwxMTYsMTExLDk5LDExMSwxMDgsMzIsCisgICAgMTA5LDEwMSwxMTYsMTA0LDExMSwxMDAsMTE1LDMyLDExNiwxMDQsOTcsMTE2LDEwLDMyLDMyLDMyLAorICAgIDMyLDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwzMiwxMDIsMTA1LDEwOCwxMDEsMzIsMTE1LDEyMSwKKyAgICAxMTUsMTE2LDEwMSwxMDksMzIsMTE3LDExNSw5NywxMDMsMTAxLDQ2LDk5LDMsMCwwLDAsCisgICAgMCwwLDAsMCwzLDAsMCwwLDIsMCwwLDAsNjcsMCwwLDAsCisgICAgMTE1LDIyLDAsMCwwLDEyNCwxLDAsMTI0LDAsMCw5NSwwLDAsMTI0LDIsCisgICAgMCwxMjQsMCwwLDk1LDEsMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsCisgICAgMTE3LDc1LDAsMCwwLDY3LDk3LDk5LDEwNCwxMDEsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMzIsOTcsMTEwLDEwMCwzMiwxMTYsCisgICAgMTA0LDEwMSwzMiwxMTIsOTcsMTE2LDEwNCwzMiwxMTYsMTExLDMyLDExNiwxMDQsMTAxLDMyLDEwMiwKKyAgICAxMDUsMTA4LDEwMSwzMiwxMDIsMTExLDExNywxMTAsMTAwLDMyLDk4LDEyMSwzMiwxMTYsMTA0LDEwMSwKKyAgICAxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMDIsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwKKyAgICA3OCw0MCwyLDAsMCwwLDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNywKKyAgICA0LDAsMCwwLDExMiw5NywxMTYsMTA0LDQwLDMsMCwwLDAsMTE3LDQsMCwKKyAgICAwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsCisgICAgOTcsMTA5LDEwMSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw0MCwwLDAsMCwKKyAgICAwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwKKyAgICAxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLAorICAgIDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDk1LDk1LDEwNSwKKyAgICAxMTAsMTA1LDExNiw5NSw5NSwxNiwzLDAsMCwxMTUsNCwwLDAsMCwwLDMsCisgICAgOSwxLDExNywxOSwwLDAsMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwKKyAgICAxMTQsNDYsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LDk5LDIsMCwwLDAsMCwKKyAgICAwLDAsMCwyLDAsMCwwLDMsMCwwLDAsMywwLDAsMCwxMTUsCisgICAgMjIsMCwwLDAsMTE2LDAsMCwxMTYsMSwwLDEyNCwwLDAsMTMxLDIsMCwKKyAgICAxMDYsMiwwLDEyNCwxLDAsMTMxLDEsMCw4Myw0MCwxLDAsMCwwLDExNywKKyAgICAyNiwwLDAsMCw3NiwxMTEsOTcsMTAwLDMyLDk3LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsCisgICAgMTAxLDMyLDEwMiwxMTQsMTExLDEwOSwzMiw5NywzMiwxMDIsMTA1LDEwOCwxMDEsNDYsNDAsMywKKyAgICAwLDAsMCwxMTcsNSwwLDAsMCwxMTUsMTE3LDExMiwxMDEsMTE0LDExNywxMCwwLAorICAgIDAsMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDExLDAsMCwKKyAgICAwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQwLDIsMCwwLAorICAgIDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwKKyAgICAxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwxLDAsMCwwLDExNyw5LDAsMCwKKyAgICAwLDk1LDk1LDk5LDEwOCw5NywxMTUsMTE1LDk1LDk1LDQwLDAsMCwwLDAsMTE3LAorICAgIDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwKKyAgICAxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLAorICAgIDYyLDExNywxMSwwLDAsMCwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LAorICAgIDEwMSwyMiwzLDAsMCwxMTUsMiwwLDAsMCwwLDUsMTE3LDIyLDAsMCwKKyAgICAwLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCwKKyAgICA5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsCisgICAgMiwwLDAsMCwxLDAsMCwwLDY3LDAsMCwwLDExNSw3LDAsMCwKKyAgICAwLDEyNCwwLDAsMTA2LDAsMCw4Myw0MCwxLDAsMCwwLDExNyw1OCwwLAorICAgIDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsCisgICAgMTA0LDMyLDExNiwxMTEsMzIsMTE2LDEwNCwxMDEsMzIsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwzMiwKKyAgICAxMDIsMTA1LDEwOCwxMDEsMzIsOTcsMTE1LDMyLDEwMiwxMTEsMTE3LDExMCwxMDAsMzIsOTgsMTIxLAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDQwLDEsMCwwLAorICAgIDAsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsNDAsMiwwLDAsMCwxMTcsCisgICAgNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsCisgICAgMTA4LDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsCisgICAgMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLAorICAgIDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsCisgICAgNjIsMTE3LDEyLDAsMCwwLDEwMywxMDEsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsCisgICAgMTA5LDEwMSwyOSwzLDAsMCwxMTUsMiwwLDAsMCwwLDMsMTE3LDIzLDAsCisgICAgMCwwLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDMsMTAxLDExNiwKKyAgICA5NSwxMDIsMTA1LDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsOTksMiwwLDAsMCwwLDAsCisgICAgMCwwLDMsMCwwLDAsOCwwLDAsMCw2NywwLDAsMCwxMTUsNDEsCisgICAgMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDEyNCwxLDAsMTAwLDEsMCwxMzEsCisgICAgMiwwLDE0MywxNywwLDEyNSwyLDAsMTI0LDIsMCwxMDYsMiwwLDEzMSwwLAorICAgIDAsODMsODcsMTAwLDIsMCw4MSw4OCwxMDAsMiwwLDgzLDQwLDMsMCwwLAorICAgIDAsMTE3LDM5LDAsMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsMTE2LDEwNCwxMDEsCisgICAgMzIsMTAwLDk3LDExNiw5NywzMiwxMDIsMTE0LDExMSwxMDksMzIsMTEyLDk3LDExNiwxMDQsMzIsCisgICAgOTcsMTE1LDMyLDExNCw5NywxMTksMzIsOTgsMTIxLDExNiwxMDEsMTE1LDQ2LDExNywxLDAsCisgICAgMCwwLDExNCw3OCw0MCwzLDAsMCwwLDExNywzLDAsMCwwLDk1LDEwNSwKKyAgICAxMTEsMTE3LDYsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzMsNzksMTE3LDQsMCwwLAorICAgIDAsMTE0LDEwMSw5NywxMDAsNDAsMywwLDAsMCwxMTcsNCwwLDAsMCwxMTUsCisgICAgMTAxLDEwOCwxMDIsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDQsMCwwLAorICAgIDAsMTAyLDEwNSwxMDgsMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsCisgICAgMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLAorICAgIDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsCisgICAgNjIsMTE3LDgsMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5NywzNCwzLAorICAgIDAsMCwxMTUsNCwwLDAsMCwwLDIsMjEsMSwxMTcsMTksMCwwLDAsCisgICAgNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LDk1LDEwMCwKKyAgICA5NywxMTYsOTcsNDAsOSwwLDAsMCwxMTcsOCwwLDAsMCw5NSw5NSwxMTAsCisgICAgOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTAsMCwwLDAsOTUsOTUsMTA5LDExMSwxMDAsMTE3LAorICAgIDEwOCwxMDEsOTUsOTUsMTE3LDEyLDAsMCwwLDk1LDk1LDExMywxMTcsOTcsMTA4LDExMCwKKyAgICA5NywxMDksMTAxLDk1LDk1LDExNyw3LDAsMCwwLDk1LDk1LDEwMCwxMTEsOTksOTUsCisgICAgOTUsMTE3LDgsMCwwLDAsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LDExNywxMSwKKyAgICAwLDAsMCw5NSw5OSwxMDQsMTAxLDk5LDEwNyw5NSwxMTAsOTcsMTA5LDEwMSwxMTcsMTEsCisgICAgMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDEyLAorICAgIDAsMCwwLDEwMywxMDEsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwxMTcsCisgICAgOCwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMDAsOTcsMTE2LDk3LDQwLDEsMCwwLAorICAgIDAsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTksOTcsMTA4LDExNSw5NSw5NSwKKyAgICA0MCwwLDAsMCwwLDQwLDEsMCwwLDAsMTE3LDksMCwwLDAsOTUsCisgICAgOTUsOTksMTA4LDk3LDExNSwxMTUsOTUsOTUsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsCisgICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsCisgICAgOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMCwwLDAsMCw3MCwKKyAgICAxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsMTEsMywwLDAsMTE1LDEwLDAsCisgICAgMCwwLDE2LDMsNiwyLDEyLDYsMjQsNywxOCw1LDExNywxMCwwLDAsCisgICAgMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsOTksMSwwLDAsMCwKKyAgICAwLDAsMCwwLDEsMCwwLDAsMiwwLDAsMCw2NiwwLDAsMCwKKyAgICAxMTUsNTAsMCwwLDAsMTI0LDAsMCw2OSwxMDEsMCwwLDkwLDEsMCwxMDAsCisgICAgMCwwLDkwLDIsMCwxMDAsMSwwLDkwLDMsMCwxMDAsMiwwLDEwMCwzLAorICAgIDAsMTMyLDAsMCw5MCw0LDAsMTAwLDQsMCwxMDAsNSwwLDEzMiwwLDAsCisgICAgOTAsNSwwLDEwMCw2LDAsODMsNDAsNywwLDAsMCwxMTcsMTYsMCwwLAorICAgIDAsODMsMTExLDExNywxMTQsOTksMTAxLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLAorICAgIDExNCwxMTcsNjIsMCwwLDAsNjcsMTExLDExMCw5OSwxMTQsMTAxLDExNiwxMDEsMzIsMTA1LAorICAgIDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDExMSwxMDIsCisgICAgMzIsODMsMTExLDExNywxMTQsOTksMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCwzMiwxMTcsMTE1LAorICAgIDEwNSwxMTAsMTAzLDMyLDExNiwxMDQsMTAxLDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMTUsMTIxLDExNSwKKyAgICAxMTYsMTAxLDEwOSw0Niw5OSwyLDAsMCwwLDAsMCwwLDAsMywwLDAsCisgICAgMCwzLDAsMCwwLDY3LDAsMCwwLDExNSwzOSwwLDAsMCwxMTYsMCwKKyAgICAwLDEwNiwxLDAsMTI0LDEsMCwxMzEsMSwwLDEyNSwyLDAsMTA1LDIsMCwKKyAgICAxMjQsMiwwLDEwNiwyLDAsMTAwLDEsMCw1NCwxMjQsMiwwLDEwNiwzLDAsCisgICAgMTAwLDIsMCw1NCw4Myw0MCwzLDAsMCwwLDExNywzMiwwLDAsMCw4MiwKKyAgICAxMDEsMTE2LDExNywxMTQsMTEwLDMyLDExNiwxMDQsMTAxLDMyLDEwOSwxMDEsMTE2LDk3LDEwMCw5NywKKyAgICAxMTYsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLDk3LDExNiwxMDQsNDYsMTE3LAorICAgIDUsMCwwLDAsMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsNCwwLDAsMCwxMTUsMTA1LAorICAgIDEyMiwxMDEsNDAsNCwwLDAsMCwxMTcsMywwLDAsMCw5NSwxMTEsMTE1LDExNywKKyAgICA0LDAsMCwwLDExNSwxMTYsOTcsMTE2LDExNyw4LDAsMCwwLDExNSwxMTYsOTUsCisgICAgMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsNywwLDAsMCwxMTUsMTE2LDk1LDExNSwxMDUsMTIyLAorICAgIDEwMSw0MCwzLDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsCisgICAgNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsMiwwLDAsMCwxMTUsMTE2LDQwLAorICAgIDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLAorICAgIDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0NiwKKyAgICA5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLAorICAgIDExMiw5NywxMTYsMTA0LDk1LDExNSwxMTYsOTcsMTE2LDExNSw0NCwzLDAsMCwxMTUsNCwKKyAgICAwLDAsMCwwLDIsMTUsMSwxMTcsMjcsMCwwLDAsODMsMTExLDExNywxMTQsCisgICAgOTksMTAxLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMTIsOTcsMTE2LAorICAgIDEwNCw5NSwxMTUsMTE2LDk3LDExNiwxMTUsOTksMywwLDAsMCwwLDAsMCwwLAorICAgIDcsMCwwLDAsMTMsMCwwLDAsNjcsMCwwLDAsMTE1LDI0MiwwLDAsCisgICAgMCwxMTYsMCwwLDEyNCwxLDAsMTMxLDEsMCw5MiwyLDAsMTI1LDMsMCwKKyAgICAxMjUsNCwwLDEwMywwLDAsMTI1LDUsMCwxMjAsNTQsMCwxMjQsMywwLDExNCwKKyAgICA4MCwwLDExNiwxLDAsMTI0LDMsMCwxMzEsMSwwLDEyLDExNCw4MCwwLDExNiwKKyAgICAwLDAsMTI0LDMsMCwxMzEsMSwwLDkyLDIsMCwxMjUsMywwLDEyNSw2LAorICAgIDAsMTI0LDUsMCwxMDYsMiwwLDEyNCw2LDAsMTMxLDEsMCwxLDExMywyNywKKyAgICAwLDg3LDEyMCw5NywwLDExNiwzLDAsMTI0LDUsMCwxMzEsMSwwLDY4LDkzLAorICAgIDgzLDAsMTI1LDYsMCwxMTYsNCwwLDEyNCwzLDAsMTI0LDYsMCwxMzEsMiwKKyAgICAwLDEyNSwzLDAsMTIxLDE3LDAsMTE2LDUsMCwxMDYsNiwwLDEyNCwzLDAsCisgICAgMTMxLDEsMCwxLDg3LDExMyw5NCwwLDQsMTE2LDcsMCwxMDcsMTAsMCwxMTQsCisgICAgMTU1LDAsMSwxLDEsMTE5LDk0LDAsODksMTEzLDk0LDAsNCwxMTYsOCwwLAorICAgIDEwNywxMCwwLDExNCwxNzYsMCwxLDEsMSwxMDAsMSwwLDgzLDg5LDExMyw5NCwKKyAgICAwLDg4LDExMyw5NCwwLDg3LDEyMSwzMCwwLDExNiw5LDAsMTI0LDEsMCwxMjQsCisgICAgMiwwLDEzMSwyLDAsMSwxMTYsMTAsMCwxMDAsMiwwLDEyNCwxLDAsMTMxLAorICAgIDIsMCwxLDg3LDExMCwyNCwwLDQsMTE2LDgsMCwxMTYsNywwLDEwMiwyLAorICAgIDAsMTA3LDEwLDAsMTE0LDIzNywwLDEsMSwxLDg5LDExMCwxLDAsODgsMTAwLAorICAgIDEsMCw4Myw0MCwzLDAsMCwwLDExNywyNywwLDAsMCw4NywxMTQsMTA1LAorICAgIDExNiwxMDEsMzIsOTgsMTIxLDExNiwxMDEsMTE1LDMyLDEwMCw5NywxMTYsOTcsMzIsMTE2LDExMSwKKyAgICAzMiw5NywzMiwxMDIsMTA1LDEwOCwxMDEsNDYsNzgsMTE3LDEyLDAsMCwwLDk5LDExNCwKKyAgICAxMDEsOTcsMTE2LDEwMSwxMDAsMzIsMTIzLDMzLDExNCwxMjUsNDAsMTEsMCwwLDAsMTE3LAorICAgIDExLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDExNSwxMTIsMTA4LDEwNSwxMTYsMTE3LAorICAgIDExLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsMTAwLDEwNSwxMTQsMTE3LAorICAgIDYsMCwwLDAsOTcsMTEyLDExMiwxMDEsMTEwLDEwMCwxMTcsOCwwLDAsMCwxMTQsCisgICAgMTAxLDExOCwxMDEsMTE0LDExNSwxMDEsMTAwLDExNywxMCwwLDAsMCw5NSwxMTIsOTcsMTE2LAorICAgIDEwNCw5NSwxMDYsMTExLDEwNSwxMTAsMTE3LDMsMCwwLDAsOTUsMTExLDExNSwxMTcsNSwKKyAgICAwLDAsMCwxMDksMTA3LDEwMCwxMDUsMTE0LDExNywxNSwwLDAsMCw3MCwxMDUsMTA4LAorICAgIDEwMSw2OSwxMjAsMTA1LDExNSwxMTYsMTE1LDY5LDExNCwxMTQsMTExLDExNCwxMTcsMTUsMCwwLAorICAgIDAsODAsMTAxLDExNCwxMDksMTA1LDExNSwxMTUsMTA1LDExMSwxMTAsNjksMTE0LDExNCwxMTEsMTE0LAorICAgIDExNywxMywwLDAsMCw5NSwxMTksMTE0LDEwNSwxMTYsMTAxLDk1LDk3LDExNiwxMTEsMTA5LAorICAgIDEwNSw5OSwxMTcsMTYsMCwwLDAsOTUsMTE4LDEwMSwxMTQsOTgsMTExLDExNSwxMDEsOTUsCisgICAgMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsNDAsNywwLDAsMCwxMTcsNCwwLDAsCisgICAgMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDQsCisgICAgMCwwLDAsMTAwLDk3LDExNiw5NywxMTcsNiwwLDAsMCwxMTIsOTcsMTE0LDEwMSwKKyAgICAxMTAsMTE2LDExNyw4LDAsMCwwLDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwxMTcsCisgICAgMTAsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTEyLDk3LDExNCwxMTYsMTE1LDExNyw0LAorICAgIDAsMCwwLDExMiw5NywxMTQsMTE2LDQwLDAsMCwwLDAsNDAsMCwwLDAsCisgICAgMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwKKyAgICAxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCwKKyAgICA5NywxMTIsNjIsMTE3LDgsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTAwLDk3LDExNiw5NywKKyAgICA0OSwzLDAsMCwxMTUsMzYsMCwwLDAsMCwyLDE4LDEsNiwyLDIyLAorICAgIDEsMTgsMSwxNywyLDE5LDEsMTUsMSwzLDEsMTcsMSwxMywyLDcsCisgICAgMSwxMywzLDEzLDEsMywxLDEzLDEsMTcsMSwxOSwzLDExNywyNSwwLAorICAgIDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwKKyAgICAxMDEsMTE0LDQ2LDExNSwxMDEsMTE2LDk1LDEwMCw5NywxMTYsOTcsNzgsNDAsNiwwLDAsCisgICAgMCwxMTcsOCwwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTAsCisgICAgMCwwLDAsOTUsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsOTUsMTE3LDEyLDAsCisgICAgMCwwLDk1LDk1LDExMywxMTcsOTcsMTA4LDExMCw5NywxMDksMTAxLDk1LDk1LDExNyw3LAorICAgIDAsMCwwLDk1LDk1LDEwMCwxMTEsOTksOTUsOTUsMTE3LDEwLDAsMCwwLDExMiwKKyAgICA5NywxMTYsMTA0LDk1LDExNSwxMTYsOTcsMTE2LDExNSwxMTcsOCwwLDAsMCwxMTUsMTAxLAorICAgIDExNiw5NSwxMDAsOTcsMTE2LDk3LDQwLDEsMCwwLDAsMTE3LDEwLDAsMCwwLAorICAgIDk1LDk1LDEwOCwxMTEsOTksOTcsMTA4LDExNSw5NSw5NSw0MCwwLDAsMCwwLDQwLAorICAgIDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLAorICAgIDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsCisgICAgMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNiwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwKKyAgICAxMDEsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQwLDMsMCwwLDExNSwKKyAgICA2LDAsMCwwLDE2LDIsNiwyLDEyLDUsMTE3LDE2LDAsMCwwLDgzLAorICAgIDExMSwxMTcsMTE0LDk5LDEwMSw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsOTksCisgICAgMSwwLDAsMCwwLDAsMCwwLDEsMCwwLDAsMiwwLDAsMCwKKyAgICA2NiwwLDAsMCwxMTUsNjIsMCwwLDAsMTI0LDAsMCw2OSwxMDEsMCwwLAorICAgIDkwLDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLDkwLDMsMCwxMDAsCisgICAgMiwwLDEwMCwzLDAsMTMyLDAsMCw5MCw0LDAsMTAwLDQsMCwxMDAsNSwKKyAgICAwLDEzMiwwLDAsOTAsNSwwLDEwMCw2LDAsMTAwLDcsMCwxMzIsMCwwLAorICAgIDkwLDYsMCwxMDAsOCwwLDgzLDQwLDksMCwwLDAsMTE3LDIwLDAsMCwKKyAgICAwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsNzAsMTA1LDEwOCwxMDEsNzYsCisgICAgMTExLDk3LDEwMCwxMDEsMTE0LDExNyw0NSwwLDAsMCw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgMzIsMTE5LDEwNCwxMDUsOTksMTA0LDMyLDEwNCw5NywxMTAsMTAwLDEwOCwxMDEsMTE1LDMyLDExNSwKKyAgICAxMTEsMTE3LDExNCw5OSwxMDEsMTA4LDEwMSwxMTUsMTE1LDMyLDEwMiwxMDUsMTA4LDEwMSwzMiwxMDUsCisgICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMTUsNDYsOTksMiwwLDAsMCwwLDAsMCwwLAorICAgIDIsMCwwLDAsNCwwLDAsMCw2NywwLDAsMCwxMTUsMTksMCwwLAorICAgIDAsMTI0LDAsMCwxMDYsMCwwLDEyNCwxLDAsMTAwLDEsMCwxMDAsMiwwLAorICAgIDEzMSwxLDEsODMsNDAsMywwLDAsMCw3OCwxMTcsMTAsMCwwLDAsMTE1LAorICAgIDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLDExNSwxMTUsODQsNDAsMiwwLDAsMCwxMTcsCisgICAgMTIsMCwwLDAsOTUsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgMTE3LDQsMCwwLDAsODQsMTE0LDExNywxMDEsNDAsMiwwLDAsMCwxMTcsNCwKKyAgICAwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LAorICAgIDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksCisgICAgMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwKKyAgICAxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsCisgICAgMTE3LDExLDAsMCwwLDEwOCwxMTEsOTcsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAorICAgIDgyLDMsMCwwLDExNSwyLDAsMCwwLDAsMSwxMTcsMzIsMCwwLDAsCisgICAgODMsMTExLDExNywxMTQsOTksMTAxLDEwOCwxMDEsMTE1LDExNSw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsCisgICAgOTcsMTAwLDEwMSwxMTQsNDYsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgOTksMiwwLDAsMCwwLDAsMCwwLDYsMCwwLDAsNiwwLDAsCisgICAgMCw2NywwLDAsMCwxMTUsMTM4LDAsMCwwLDEyNCwwLDAsMTA2LDAsMCwKKyAgICAxMjQsMSwwLDEzMSwxLDAsMTI1LDIsMCwxMjQsMCwwLDEwNiwxLDAsMTI0LAorICAgIDIsMCwxMzEsMSwwLDEyNSwzLDAsMTI0LDAsMCwxMDYsMiwwLDEyNCwxLAorICAgIDAsMTI0LDMsMCwxMjQsMiwwLDEwMCwwLDAsMTMxLDQsMCwxMjUsNCwwLAorICAgIDExNiw0LDAsMTA2LDUsMCwxMjQsNCwwLDEzMSwxLDAsMTI1LDUsMCwxMTYsCisgICAgNiwwLDEyNCw1LDAsMTE2LDcsMCwxMzEsMiwwLDExNCwxMDEsMCwxMTYsOCwKKyAgICAwLDEwMCwxLDAsMTI0LDIsMCwxMzEsMiwwLDEsMTI0LDUsMCw4MywxMTYsCisgICAgOSwwLDEwMCwyLDAsMTA2LDEwLDAsMTI0LDIsMCwxMzEsMSwwLDEwMCwzLAorICAgIDAsMTI0LDEsMCwxMDAsNCwwLDEyNCwyLDAsMTMxLDEsMiwxMzAsMSwwLAorICAgIDEwMCwwLDAsODMsNDAsNSwwLDAsMCw3OCwxMTcsMjEsMCwwLDAsOTksCisgICAgMTExLDEwMCwxMDEsMzIsMTExLDk4LDEwNiwxMDEsOTksMTE2LDMyLDEwMiwxMTQsMTExLDEwOSwzMiwKKyAgICAxMjMsMzMsMTE0LDEyNSwxMTcsMjEsMCwwLDAsNzgsMTExLDExMCw0NSw5OSwxMTEsMTAwLAorICAgIDEwMSwzMiwxMTEsOTgsMTA2LDEwMSw5OSwxMTYsMzIsMTA1LDExMCwzMiwxMjMsMTI1LDExNyw0LAorICAgIDAsMCwwLDExMCw5NywxMDksMTAxLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LAorICAgIDQwLDExLDAsMCwwLDExNywxMiwwLDAsMCwxMDMsMTAxLDExNiw5NSwxMDIsMTA1LAorICAgIDEwOCwxMDEsMTEwLDk3LDEwOSwxMDEsMTE3LDgsMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTAwLAorICAgIDk3LDExNiw5NywxMTcsMjAsMCwwLDAsOTUsOTgsMTIxLDExNiwxMDEsMTE1LDk1LDEwMiwKKyAgICAxMTQsMTExLDEwOSw5NSw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwxMTcsNCwwLDAsCisgICAgMCw3OCwxMTEsMTEwLDEwMSwxMTcsNywwLDAsMCwxMDksOTcsMTE0LDExNSwxMDQsOTcsCisgICAgMTA4LDExNyw1LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDExNSwxMTcsMTAsMCwwLDAsCisgICAgMTA1LDExNSwxMDUsMTEwLDExNSwxMTYsOTcsMTEwLDk5LDEwMSwxMTcsMTAsMCwwLDAsOTUsCisgICAgOTksMTExLDEwMCwxMDEsOTUsMTE2LDEyMSwxMTIsMTAxLDExNywxNiwwLDAsMCw5NSwxMTgsCisgICAgMTAxLDExNCw5OCwxMTEsMTE1LDEwMSw5NSwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSwxMTcsMTEsCisgICAgMCwwLDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDYsCisgICAgMCwwLDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiw0MCw2LDAsMCwwLDExNyw0LAorICAgIDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsCisgICAgMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDQsMCwKKyAgICAwLDAsMTAwLDk3LDExNiw5NywxMTcsMTAsMCwwLDAsOTgsMTIxLDExNiwxMDEsMTE1LAorICAgIDk1LDEwMCw5NywxMTYsOTcsMTE3LDUsMCwwLDAsMTAyLDExMSwxMTcsMTEwLDEwMCw0MCwKKyAgICAwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwKKyAgICAxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsCisgICAgOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLAorICAgIDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLDg1LDMsMCwwLDExNSwxOCwwLDAsCisgICAgMCwwLDEsMTUsMSwxNSwxLDI0LDEsMTUsMSwxNSwxLDEzLDEsNCwKKyAgICAyLDE4LDEsMTE3LDI5LDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSwxMDgsMTAxLAorICAgIDExNSwxMTUsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LAorICAgIDk1LDk5LDExMSwxMDAsMTAxLDk5LDIsMCwwLDAsMCwwLDAsMCwyLDAsCisgICAgMCwwLDEsMCwwLDAsNjcsMCwwLDAsMTE1LDQsMCwwLDAsMTAwLAorICAgIDEsMCw4Myw0MCwyLDAsMCwwLDExNywzOSwwLDAsMCw4MiwxMDEsMTE2LAorICAgIDExNywxMTQsMTEwLDMyLDc4LDExMSwxMTAsMTAxLDMyLDk3LDExNSwzMiwxMTYsMTA0LDEwMSwxMTQsCisgICAgMTAxLDMyLDEwNSwxMTUsMzIsMTEwLDExMSwzMiwxMTUsMTExLDExNywxMTQsOTksMTAxLDMyLDk5LAorICAgIDExMSwxMDAsMTAxLDQ2LDc4LDQwLDEsMCwwLDAsMTE3LDQsMCwwLDAsNzgsCisgICAgMTExLDExMCwxMDEsNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwKKyAgICAxMDIsMTE3LDgsMCwwLDAsMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDQwLDAsCisgICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKKyAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKKyAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDEwMywKKyAgICAxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCw5OSwxMDEsOTcsMywwLDAsMTE1LDIsMCwKKyAgICAwLDAsMCwyLDExNywzMSwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsMTA4LAorICAgIDEwMSwxMTUsMTE1LDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDMsMTAxLAorICAgIDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDc4LDQwLDcsMCwwLDAsMTE3LDgsCisgICAgMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLAorICAgIDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSwKKyAgICA5NSwxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCwKKyAgICA5NSw5NSwxMDAsMTExLDk5LDk1LDk1LDExNywxMSwwLDAsMCwxMDgsMTExLDk3LDEwMCwKKyAgICA5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsOCwwLDAsMCwxMDMsMTAxLDExNiw5NSwKKyAgICA5OSwxMTEsMTAwLDEwMSwxMTcsMTAsMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsCisgICAgMTE0LDk5LDEwMSw0MCwxLDAsMCwwLDExNywxMCwwLDAsMCw5NSw5NSwxMDgsCisgICAgMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsNDAsMCwwLDAsMCw0MCwwLDAsMCwKKyAgICAwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LAorICAgIDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LAorICAgIDk3LDExMiw2MiwxMTcsMjAsMCwwLDAsODMsMTExLDExNywxMTQsOTksMTAxLDEwOCwxMDEsCisgICAgMTE1LDExNSw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNzgsMywwLDAsCisgICAgMTE1LDgsMCwwLDAsMTYsMiw2LDIsMTIsMywxMiwxMiwxMTcsMjAsMCwKKyAgICAwLDAsODMsMTExLDExNywxMTQsOTksMTAxLDEwOCwxMDEsMTE1LDExNSw3MCwxMDUsMTA4LDEwMSwKKyAgICA3NiwxMTEsOTcsMTAwLDEwMSwxMTQsOTksMSwwLDAsMCwwLDAsMCwwLDEsCisgICAgMCwwLDAsNSwwLDAsMCw2NiwwLDAsMCwxMTUsMTE2LDAsMCwwLAorICAgIDEyNCwwLDAsNjksMTAxLDAsMCw5MCwxLDAsMTAwLDAsMCw5MCwyLDAsCisgICAgMTAwLDEsMCw5MCwzLDAsMTAwLDIsMCwxMDAsMywwLDEzMiwwLDAsOTAsCisgICAgNCwwLDEwMSw1LDAsMTAxLDYsMCwxMDEsNywwLDEwMCw0LDAsMTAwLDUsCisgICAgMCwxMzIsMCwwLDEzMSwxLDAsMTMxLDEsMCwxMzEsMSwwLDkwLDgsMCwKKyAgICAxMDAsNiwwLDEwMCw3LDAsMTMyLDAsMCw5MCw5LDAsMTAwLDgsMCwxMDAsCisgICAgOSwwLDEzMiwwLDAsOTAsMTAsMCwxMDAsMTAsMCwxMDAsMTEsMCwxMzIsMCwKKyAgICAwLDkwLDExLDAsMTAwLDEyLDAsMTAwLDEzLDAsMTMyLDAsMCw5MCwxMiwwLAorICAgIDEwMCwxNCwwLDgzLDQwLDE1LDAsMCwwLDExNywxOSwwLDAsMCw2OSwxMjAsCisgICAgMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLAorICAgIDExNCwxMTcsOTMsMCwwLDAsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LAorICAgIDMyLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsCisgICAgMTAxLDExNSw0NiwxMCwxMCwzMiwzMiwzMiwzMiw4NCwxMDQsMTAxLDMyLDk5LDExMSwxMTAsCisgICAgMTE1LDExNiwxMTQsMTE3LDk5LDExNiwxMTEsMTE0LDMyLDEwNSwxMTUsMzIsMTAwLDEwMSwxMTUsMTA1LAorICAgIDEwMywxMTAsMTAxLDEwMCwzMiwxMTYsMTExLDMyLDExOSwxMTEsMTE0LDEwNywzMiwxMTksMTA1LDExNiwKKyAgICAxMDQsMzIsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwxMCwxMCwzMiwKKyAgICAzMiwzMiwzMiw5OSwzLDAsMCwwLDAsMCwwLDAsMywwLDAsMCwKKyAgICAyLDAsMCwwLDY3LDAsMCwwLDExNSwyMiwwLDAsMCwxMjQsMSwwLAorICAgIDEyNCwwLDAsOTUsMCwwLDEyNCwyLDAsMTI0LDAsMCw5NSwxLDAsMTAwLAorICAgIDAsMCw4Myw0MCwxLDAsMCwwLDc4LDQwLDIsMCwwLDAsMTE3LDQsCisgICAgMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsCisgICAgNDAsMywwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDQsCisgICAgMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsCisgICAgNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwKKyAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LAorICAgIDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwwLDAsCisgICAgMCw5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsMTEwLDMsMCwwLDExNSw0LDAsCisgICAgMCwwLDAsMSw5LDEsMTE3LDI4LDAsMCwwLDY5LDEyMCwxMTYsMTAxLDExMCwKKyAgICAxMTUsMTA1LDExMSwxMTAsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDk1LAorICAgIDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSw5OSwyLDAsMCwwLDAsMCwwLDAsCisgICAgNCwwLDAsMCw5LDAsMCwwLDY3LDAsMCwwLDExNSwxMTMsMCwwLAorICAgIDAsMTI0LDEsMCwxMTYsMCwwLDEwNiwxLDAsMTA3LDYsMCwxMjUsMiwwLAorICAgIDEyMSw0NSwwLDEyNCwwLDAsMTA2LDIsMCwxMjQsMSwwLDEyNCwwLDAsMTA2LAorICAgIDMsMCwxMzEsMiwwLDEyNSwzLDAsMTE2LDQsMCwxMDAsMSwwLDEyNCwwLAorICAgIDAsMTA2LDMsMCwxMzEsMiwwLDEsMTI0LDMsMCw4Myw4NywxMTAsNDYsMCwKKyAgICAxLDEsMSwxMjQsMiwwLDEyLDExNCwxMDEsMCwxMjQsMSwwLDExNiwwLDAsCisgICAgMTA2LDEsMCwxMDcsNiwwLDExNCwxMDEsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LAorICAgIDEsMCw2MSwxMTAsMCwwLDEzMCwwLDAsODksMTEwLDEsMCw4OCwxMDAsMiwKKyAgICAwLDgzLDQwLDMsMCwwLDAsMTE3LDI1LDAsMCwwLDc2LDExMSw5NywxMDAsCisgICAgMzIsOTcsMTEwLDMyLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDMyLDEwOSwxMTEsCisgICAgMTAwLDExNywxMDgsMTAxLDQ2LDExNywzMywwLDAsMCwxMDEsMTIwLDExNiwxMDEsMTEwLDExNSwKKyAgICAxMDUsMTExLDExMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsCisgICAgMTAwLDMyLDEwMiwxMTQsMTExLDEwOSwzMiwxMjMsMzMsMTE0LDEyNSw3OCw0MCw1LDAsMCwKKyAgICAwLDExNywzLDAsMCwwLDExNSwxMjEsMTE1LDExNyw3LDAsMCwwLDEwOSwxMTEsCisgICAgMTAwLDExNywxMDgsMTAxLDExNSwxMTcsMTIsMCwwLDAsOTUsMTAxLDEyMCwxMDEsOTksOTUsCisgICAgMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LAorICAgIDE2LDAsMCwwLDk1LDExOCwxMDEsMTE0LDk4LDExMSwxMTUsMTAxLDk1LDEwOSwxMDEsMTE1LAorICAgIDExNSw5NywxMDMsMTAxLDQwLDQsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwKKyAgICAxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsCisgICAgOSwwLDAsMCwxMDUsMTE1LDk1LDExNCwxMDEsMTA4LDExMSw5NywxMDAsMTE3LDYsMCwKKyAgICAwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDAsMCwwLDAsMCw0MCwwLDAsCisgICAgMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsCisgICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsCisgICAgMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwKKyAgICAxMDAsMTE3LDEwOCwxMDEsMTE0LDMsMCwwLDExNSwxOCwwLDAsMCwwLDUsMTUsCisgICAgMSwzLDEsMjEsMSwxNiwxLDgsMSwzLDEsMjIsMSwxMywxLDExNywKKyAgICAzMSwwLDAsMCw2OSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDcwLDEwNSwxMDgsCisgICAgMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSw5OSwyLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwKKyAgICAxLDAsMCwwLDY3LDAsMCwwLDExNSw0LDAsMCwwLDEwMCwxLDAsCisgICAgODMsNDAsMiwwLDAsMCwxMTcsNTksMCwwLDAsODIsMTAxLDExNiwxMTcsMTE0LAorICAgIDExMCwzMiw3MCw5NywxMDgsMTE1LDEwMSwzMiw5NywxMTUsMzIsOTcsMTEwLDMyLDEwMSwxMjAsCisgICAgMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDk5LAorICAgIDk3LDExMCwzMiwxMTAsMTAxLDExOCwxMDEsMTE0LDMyLDk4LDEwMSwzMiw5NywzMiwxMTIsOTcsCisgICAgOTksMTA3LDk3LDEwMywxMDEsNDYsNzAsNDAsMSwwLDAsMCwxMTcsNSwwLDAsCisgICAgMCw3MCw5NywxMDgsMTE1LDEwMSw0MCwyLDAsMCwwLDExNyw0LDAsMCwwLAorICAgIDExNSwxMDEsMTA4LDEwMiwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwKKyAgICAxMDEsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCwKKyAgICA2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LAorICAgIDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTAsMCwKKyAgICAwLDAsMTA1LDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTI5LDMsMCwwLAorICAgIDExNSwyLDAsMCwwLDAsMiwxMTcsMzAsMCwwLDAsNjksMTIwLDExNiwxMDEsCisgICAgMTEwLDExNSwxMDUsMTExLDExMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsCisgICAgMTA1LDExNSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsOTksMiwwLDAsMCwwLAorICAgIDAsMCwwLDIsMCwwLDAsMSwwLDAsMCw2NywwLDAsMCwxMTUsCisgICAgNCwwLDAsMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDYzLDAsCisgICAgMCwwLDgyLDEwMSwxMTYsMTE3LDExNCwxMTAsMzIsNzgsMTExLDExMCwxMDEsMzIsOTcsMTE1LAorICAgIDMyLDk3LDExMCwzMiwxMDEsMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCwzMiwxMDksMTExLAorICAgIDEwMCwxMTcsMTA4LDEwMSwzMiw5OSw5NywxMTAsMTEwLDExMSwxMTYsMzIsOTksMTE0LDEwMSw5NywKKyAgICAxMTYsMTAxLDMyLDk3LDMyLDk5LDExMSwxMDAsMTAxLDMyLDExMSw5OCwxMDYsMTAxLDk5LDExNiwKKyAgICA0Niw3OCw0MCwxLDAsMCwwLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLAorICAgIDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LAorICAgIDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLAorICAgIDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsCisgICAgMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwKKyAgICAxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDEwMywxMDEsMTE2LDk1LAorICAgIDk5LDExMSwxMDAsMTAxLDEzMywzLDAsMCwxMTUsMiwwLDAsMCwwLDIsMTE3LAorICAgIDI4LDAsMCwwLDY5LDEyMCwxMTYsMTAxLDExMCwxMTUsMTA1LDExMSwxMTAsNzAsMTA1LDEwOCwKKyAgICAxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQ2LDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLAorICAgIDk5LDIsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDEsMCwwLAorICAgIDAsNjcsMCwwLDAsMTE1LDQsMCwwLDAsMTAwLDEsMCw4Myw0MCwyLAorICAgIDAsMCwwLDExNyw1MywwLDAsMCw4MiwxMDEsMTE2LDExNywxMTQsMTEwLDMyLDc4LAorICAgIDExMSwxMTAsMTAxLDMyLDk3LDExNSwzMiwxMDEsMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCwKKyAgICAzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMzIsMTA0LDk3LDExOCwxMDEsMzIsMTEwLDExMSwKKyAgICAzMiwxMTUsMTExLDExNywxMTQsOTksMTAxLDMyLDk5LDExMSwxMDAsMTAxLDQ2LDc4LDQwLDEsCisgICAgMCwwLDAsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwxMDEsNDAsMiwwLDAsCisgICAgMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDgsMCwwLDAsMTAyLAorICAgIDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDQwLDAsMCwwLDAsNDAsMCwwLDAsCisgICAgMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwKKyAgICAxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCwKKyAgICA5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDEwMywxMDEsMTE2LDk1LDExNSwxMTEsMTE3LDExNCwKKyAgICA5OSwxMDEsMTM3LDMsMCwwLDExNSwyLDAsMCwwLDAsMiwxMTcsMzAsMCwKKyAgICAwLDAsNjksMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCw3MCwxMDUsMTA4LDEwMSw3NiwKKyAgICAxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTAzLDEwMSwxMTYsOTUsMTE1LDExMSwxMTcsMTE0LDk5LDEwMSwKKyAgICA5OSwzLDAsMCwwLDAsMCwwLDAsMywwLDAsMCwzLDAsMCwKKyAgICAwLDY3LDAsMCwwLDExNSwxNiwwLDAsMCwxMTYsMCwwLDEwNiwxLDAsCisgICAgMTI0LDEsMCwxMjQsMiwwLDEzMSwyLDAsODMsNDAsMSwwLDAsMCwxMTcsCisgICAgMTYxLDAsMCwwLDcyLDEwMSwxMDgsMTEyLDEwMSwxMTQsMzIsMTAyLDExMSwxMTQsMzIsMTA4LAorICAgIDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDQsMzIsOTcsMTA4LDEwOCwxMTEsCisgICAgMTE5LDEwNSwxMTAsMTAzLDMyLDExNiwxMTEsMzIsMTA1LDExNSwxMTEsMTA4LDk3LDExNiwxMDEsMzIsCisgICAgMTAxLDk3LDExNSwxMDUsMTA4LDEyMSwzMiw0MCwxMTksMTA0LDEwMSwxMTAsMTAsMzIsMzIsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsMTA4LDExMSwxMTEsMTA3LDEwNSwxMTAsMTAzLDMyLDk3LDExNiwzMiwKKyAgICA5NywzMiwxMTYsMTE0LDk3LDk5LDEwMSw5OCw5Nyw5OSwxMDcsNDEsMzIsMTE5LDEwNCwxMDEsCisgICAgMTE2LDEwNCwxMDEsMTE0LDMyLDk3LDExMCwzMiwxMDEsMTE0LDExNCwxMTEsMTE0LDMyLDk5LDExMSwKKyAgICAxMDksMTAxLDExNSwzMiwxMDIsMTE0LDExMSwxMDksMzIsMTAxLDEyMCwxMDEsOTksMTE3LDExNiwxMDUsCisgICAgMTEwLDEwMywxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw5NywxMTAsMzIsMTA1LDEwOSwKKyAgICAxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzOSwxMTUsMzIsCisgICAgOTksMTExLDEwMCwxMDEsNDYsNDAsMiwwLDAsMCwxMTcsNCwwLDAsMCw5NSwKKyAgICAxMDUsMTA5LDExMiwxMTcsMTIsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTAwLDEyMSwxMTAsCisgICAgOTcsMTA5LDEwNSw5OSw0MCwzLDAsMCwwLDExNyw0LDAsMCwwLDExNSwxMDEsCisgICAgMTA4LDEwMiwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LAorICAgIDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsNDAsMCwwLDAsMCw0MCwwLDAsCisgICAgMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsCisgICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsCisgICAgMTE0LDk3LDExMiw2MiwxMTcsMTIsMCwwLDAsOTUsMTAxLDEyMCwxMDEsOTksOTUsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMTQxLDMsMCwwLDExNSwyLDAsMCwwLDAsNCwKKyAgICAxMTcsMzIsMCwwLDAsNjksMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCw3MCwxMDUsCisgICAgMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsOTUsMTAxLDEyMCwxMDEsOTksOTUsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsNzgsNDAsMTMsMCwwLDAsMTE3LDgsMCwwLDAsCisgICAgOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwxMTMsMTE3LAorICAgIDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCw5NSw5NSwxMDAsCisgICAgMTExLDk5LDk1LDk1LDExNyw4LDAsMCwwLDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSwKKyAgICA5NSwxMTcsMTEsMCwwLDAsOTUsOTksMTA0LDEwMSw5OSwxMDcsOTUsMTEwLDk3LDEwOSwKKyAgICAxMDEsMTE3LDExLDAsMCwwLDExNSwxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLAorICAgIDEwMSwxMTcsMTAsMCwwLDAsMTE1LDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwKKyAgICAxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgMTE3LDEwLDAsMCwwLDEwNSwxMTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDExNywKKyAgICA4LDAsMCwwLDEwMywxMDEsMTE2LDk1LDk5LDExMSwxMDAsMTAxLDExNywxMCwwLDAsCisgICAgMCwxMDMsMTAxLDExNiw5NSwxMTUsMTExLDExNywxMTQsOTksMTAxLDExNywxMiwwLDAsMCwKKyAgICA5NSwxMDEsMTIwLDEwMSw5OSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0MCwxLDAsMCwKKyAgICAwLDExNywxMCwwLDAsMCw5NSw5NSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsCisgICAgNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwKKyAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LAorICAgIDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTksMCwwLAorICAgIDAsNjksMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsCisgICAgOTcsMTAwLDEwMSwxMTQsMTAyLDMsMCwwLDExNSwxOCwwLDAsMCwxNiw2LDYsCisgICAgMiwxMiw0LDMsMSwzLDEsMjQsMTMsMTIsNCwxMiw0LDEyLDQsMTE3LAorICAgIDE5LDAsMCwwLDY5LDEyMCwxMTYsMTAxLDExMCwxMTUsMTA1LDExMSwxMTAsNzAsMTA1LDEwOCwKKyAgICAxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDk5LDEsMCwwLDAsMCwwLDAsMCwKKyAgICAxLDAsMCwwLDIsMCwwLDAsNjYsMCwwLDAsMTE1LDEzNCwwLDAsCisgICAgMCwxMjQsMCwwLDY5LDEwMSwwLDAsOTAsMSwwLDEwMCwwLDAsOTAsMiwKKyAgICAwLDEwMCwxLDAsOTAsMywwLDEwMCwyLDAsMTAwLDMsMCwxMzIsMCwwLAorICAgIDkwLDQsMCwxMDAsNCwwLDEwMCw1LDAsMTMyLDAsMCw5MCw1LDAsMTAwLAorICAgIDYsMCwxMDAsNywwLDEzMiwwLDAsOTAsNiwwLDEwMCw4LDAsMTAwLDksCisgICAgMCwxMzIsMCwwLDkwLDcsMCwxMDAsMTAsMCwxMDAsMTEsMCwxMzIsMCwwLAorICAgIDkwLDgsMCwxMDAsMTIsMCwxMDAsMTMsMCwxMzIsMCwwLDkwLDksMCwxMDAsCisgICAgMTQsMCwxMDAsMTUsMCwxMzIsMCwwLDkwLDEwLDAsMTAwLDE2LDAsMTAwLDE3LAorICAgIDAsMTMyLDAsMCw5MCwxMSwwLDEwMCwxOCwwLDEwMCwxOSwwLDEzMiwwLDAsCisgICAgOTAsMTIsMCwxMDAsMjAsMCw4Myw0MCwyMSwwLDAsMCwxMTcsMTQsMCwwLAorICAgIDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywxMTYsMTA0LDExNywKKyAgICAzNywxLDAsMCw4MiwxMDEsMTEyLDExNCwxMDEsMTE1LDEwMSwxMTAsMTE2LDExNSwzMiw5NywKKyAgICAzMiwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSwzMiwxMTIsOTcsOTksMTA3LDk3LAorICAgIDEwMywxMDEsMzksMTE1LDMyLDExMiw5NywxMTYsMTA0LDQ2LDMyLDMyLDczLDExNiwzMiwxMTcsCisgICAgMTE1LDEwMSwxMTUsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTEwLAorICAgIDk3LDEwOSwxMDEsMTAsMzIsMzIsMzIsMzIsMTE2LDExMSwzMiwxMDIsMTA1LDExMCwxMDAsMzIsCisgICAgMTA1LDExNiwxMTUsMzIsMTEyLDk3LDExNCwxMDEsMTEwLDExNiwzMiwxMDksMTExLDEwMCwxMTcsMTA4LAorICAgIDEwMSw0NCwzMiw5NywxMTAsMTAwLDMyLDEwMiwxMTQsMTExLDEwOSwzMiwxMTYsMTA0LDEwMSwxMTQsCisgICAgMTAxLDMyLDEwNSwxMTYsMzIsMTA4LDExMSwxMTEsMTA3LDExNSwzMiwxMTcsMTEyLDMyLDExNiwxMDQsCisgICAgMTAxLDMyLDExMiw5NywxMTQsMTAxLDExMCwxMTYsMzksMTE1LDEwLDMyLDMyLDMyLDMyLDk1LAorICAgIDk1LDExMiw5NywxMTYsMTA0LDk1LDk1LDQ2LDMyLDMyLDg3LDEwNCwxMDEsMTEwLDMyLDExNiwKKyAgICAxMDQsMTA1LDExNSwzMiw5OSwxMDQsOTcsMTEwLDEwMywxMDEsMTE1LDQ0LDMyLDExNiwxMDQsMTAxLAorICAgIDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDM5LDExNSwzMiwxMTEsMTE5LDExMCwzMiwxMTIsOTcsCisgICAgMTE2LDEwNCwzMiwxMDUsMTE1LDMyLDExNCwxMDEsOTksMTExLDEwOSwxMTIsMTE3LDExNiwxMDEsMTAwLAorICAgIDQ0LDEwLDMyLDMyLDMyLDMyLDExNywxMTUsMTA1LDExMCwxMDMsMzIsMTEyLDk3LDExNiwxMDQsCisgICAgOTUsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsMzIsMzIsNzAsMTExLDExNCwzMiwxMTYsMTExLAorICAgIDExMiw0NSwxMDgsMTAxLDExOCwxMDEsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDQ0LDMyLAorICAgIDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTQsMTAxLDExMCwxMTYsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsMzksMTE1LDMyLDExMiw5NywxMTYsMTA0LDEwLDMyLDMyLDMyLDMyLDEwNSwxMTUsMzIsCisgICAgMTE1LDEyMSwxMTUsNDYsMTEyLDk3LDExNiwxMDQsNDYsOTksNCwwLDAsMCwwLDAsCisgICAgMCwwLDQsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsNTIsCisgICAgMCwwLDAsMTI0LDEsMCwxMjQsMCwwLDk1LDAsMCwxMjQsMiwwLDEyNCwKKyAgICAwLDAsOTUsMSwwLDExNiwyLDAsMTI0LDAsMCwxMDYsMywwLDEzMSwwLAorICAgIDAsMTMxLDEsMCwxMjQsMCwwLDk1LDQsMCwxMjQsMywwLDEyNCwwLDAsCisgICAgOTUsNSwwLDEwMCwwLDAsODMsNDAsMSwwLDAsMCw3OCw0MCw2LDAsCisgICAgMCwwLDExNyw1LDAsMCwwLDk1LDExMCw5NywxMDksMTAxLDExNyw1LDAsMCwKKyAgICAwLDk1LDExMiw5NywxMTYsMTA0LDExNyw1LDAsMCwwLDExNiwxMTcsMTEyLDEwOCwxMDEsCisgICAgMTE3LDE2LDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LDExMiw5NywxMTQsMTAxLDExMCwxMTYsCisgICAgOTUsMTEyLDk3LDExNiwxMDQsMTE3LDE3LDAsMCwwLDk1LDEwOCw5NywxMTUsMTE2LDk1LAorICAgIDExMiw5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsMTE3LDEyLDAsMCwwLAorICAgIDk1LDExMiw5NywxMTYsMTA0LDk1LDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDQwLDQsMCwwLAorICAgIDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsMCwwLDExMCwKKyAgICA5NywxMDksMTAxLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNywxMSwwLDAsCisgICAgMCwxMTIsOTcsMTE2LDEwNCw5NSwxMDIsMTA1LDExMCwxMDAsMTAxLDExNCw0MCwwLDAsMCwKKyAgICAwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwKKyAgICAxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLAorICAgIDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDk1LDk1LDEwNSwKKyAgICAxMTAsMTA1LDExNiw5NSw5NSwxNTUsMywwLDAsMTE1LDgsMCwwLDAsMCwxLAorICAgIDksMSw5LDEsMjEsMSwxMTcsMjMsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwKKyAgICAxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywxMTYsMTA0LDQ2LDk1LDk1LDEwNSwxMTAsMTA1LDExNiwKKyAgICA5NSw5NSw5OSwxLDAsMCwwLDAsMCwwLDAsNCwwLDAsMCwzLAorICAgIDAsMCwwLDY3LDAsMCwwLDExNSw1MywwLDAsMCwxMjQsMCwwLDEwNiwKKyAgICAwLDAsMTA2LDEsMCwxMDAsMSwwLDEzMSwxLDAsOTIsMywwLDEyNSwxLAorICAgIDAsMTI1LDIsMCwxMjUsMywwLDEyNCwyLDAsMTAwLDIsMCwxMDcsMiwwLAorICAgIDExNCw0MywwLDEwMCw2LDAsODMsMTI0LDEsMCwxMDAsNSwwLDEwMiwyLDAsCisgICAgODMsNDAsNywwLDAsMCwxMTcsNjIsMCwwLDAsODIsMTAxLDExNiwxMTcsMTE0LAorICAgIDExMCwxMTUsMzIsOTcsMzIsMTE2LDExNywxMTIsMTA4LDEwMSwzMiwxMTEsMTAyLDMyLDQwLDExMiwKKyAgICA5NywxMTQsMTAxLDExMCwxMTYsNDUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDUsMTEwLDk3LDEwOSwKKyAgICAxMDEsNDQsMzIsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw0NSwxMTIsOTcsMTE2LDEwNCw0NSw5NywKKyAgICAxMTYsMTE2LDExNCw0NSwxMTAsOTcsMTA5LDEwMSw0MSwxMTcsMSwwLDAsMCw0NiwxMTcsCisgICAgMCwwLDAsMCwxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsNCwwLDAsCisgICAgMCwxMTIsOTcsMTE2LDEwNCwxMTcsOCwwLDAsMCw5NSw5NSwxMTIsOTcsMTE2LDEwNCwKKyAgICA5NSw5NSw0MCwyLDAsMCwwLDExNywzLDAsMCwwLDExNSwxMjEsMTE1LDExNywKKyAgICA0LDAsMCwwLDExMiw5NywxMTYsMTA0LDQwLDIsMCwwLDAsMTE3LDUsMCwKKyAgICAwLDAsOTUsMTEwLDk3LDEwOSwxMDEsMTE3LDEwLDAsMCwwLDExNCwxMTIsOTcsMTE0LAorICAgIDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDQwLDQsMCwwLDAsMTE3LDQsMCwwLDAsCisgICAgMTE1LDEwMSwxMDgsMTAyLDExNyw2LDAsMCwwLDExMiw5NywxMTQsMTAxLDExMCwxMTYsMTE3LAorICAgIDMsMCwwLDAsMTAwLDExMSwxMTYsMTE3LDIsMCwwLDAsMTA5LDEwMSw0MCwwLAorICAgIDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsCisgICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsCisgICAgOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywyMywwLDAsMCw5NSwKKyAgICAxMDIsMTA1LDExMCwxMDAsOTUsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw5NSwxMTIsOTcsMTE2LDEwNCwKKyAgICA5NSwxMTAsOTcsMTA5LDEwMSwxMTUsMTYxLDMsMCwwLDExNSw4LDAsMCwwLDAsCisgICAgMiwyNywxLDEyLDIsNCwzLDExNywzOCwwLDAsMCw5NSw3OCw5NywxMDksCisgICAgMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsNDYsOTUsMTAyLDEwNSwxMTAsMTAwLAorICAgIDk1LDExMiw5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTEwLDk3LDEwOSwKKyAgICAxMDEsMTE1LDk5LDEsMCwwLDAsMCwwLDAsMCwzLDAsMCwwLDMsCisgICAgMCwwLDAsNjcsMCwwLDAsMTE1LDM4LDAsMCwwLDEyNCwwLDAsMTA2LAorICAgIDAsMCwxMzEsMCwwLDkyLDIsMCwxMjUsMSwwLDEyNSwyLDAsMTE2LDEsCisgICAgMCwxMTYsMiwwLDEwNiwzLDAsMTI0LDEsMCwyNSwxMjQsMiwwLDEzMSwyLAorICAgIDAsODMsNDAsMSwwLDAsMCw3OCw0MCw0LDAsMCwwLDExNywyMywwLAorICAgIDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw5NSwxMTIsCisgICAgOTcsMTE2LDEwNCw5NSwxMTAsOTcsMTA5LDEwMSwxMTUsMTE3LDcsMCwwLDAsMTAzLDEwMSwKKyAgICAxMTYsOTcsMTE2LDExNiwxMTQsMTE3LDMsMCwwLDAsMTE1LDEyMSwxMTUsMTE3LDcsMCwKKyAgICAwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDQwLDMsMCwwLDAsMTE3LDQsCisgICAgMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNywxOCwwLDAsMCwxMTIsOTcsMTE0LDEwMSwKKyAgICAxMTAsMTE2LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDExMCw5NywxMDksMTAxLDExNywxNCwKKyAgICAwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSw5NywxMTYsMTE2LDExNCw5NSwxMTAsOTcsMTA5LAorICAgIDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLAorICAgIDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsCisgICAgOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNiwwLAorICAgIDAsMCw5NSwxMDMsMTAxLDExNiw5NSwxMTIsOTcsMTE0LDEwMSwxMTAsMTE2LDk1LDExMiw5NywKKyAgICAxMTYsMTA0LDE3MSwzLDAsMCwxMTUsNCwwLDAsMCwwLDEsMTgsMSwxMTcsCisgICAgMzEsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywKKyAgICAxMTYsMTA0LDQ2LDk1LDEwMywxMDEsMTE2LDk1LDExMiw5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLAorICAgIDk3LDExNiwxMDQsOTksMSwwLDAsMCwwLDAsMCwwLDQsMCwwLDAsCisgICAgMywwLDAsMCw2NywwLDAsMCwxMTUsMTAzLDAsMCwwLDExNiwwLDAsCisgICAgMTI0LDAsMCwxMDYsMSwwLDEzMSwwLDAsMTMxLDEsMCwxMjUsMSwwLDEyNCwKKyAgICAxLDAsMTI0LDAsMCwxMDYsMiwwLDEwNywzLDAsMTE0LDk2LDAsMTI0LDAsCisgICAgMCwxMDYsMywwLDEyNCwwLDAsMTA2LDQsMCwxMjQsMSwwLDEzMSwyLDAsCisgICAgOTIsMiwwLDEyNSwyLDAsMTI1LDMsMCwxMjQsMiwwLDEwMCwwLDAsMTA3LAorICAgIDgsMCwxMTQsODQsMCwxMjQsMywwLDEyNCwwLDAsOTUsNiwwLDExMCwwLAorICAgIDAsMTI0LDEsMCwxMjQsMCwwLDk1LDIsMCwxMTAsMCwwLDEyNCwwLDAsCisgICAgMTA2LDYsMCw4Myw0MCwxLDAsMCwwLDc4LDQwLDcsMCwwLDAsMTE3LAorICAgIDUsMCwwLDAsMTE2LDExNywxMTIsMTA4LDEwMSwxMTcsMTYsMCwwLDAsOTUsMTAzLAorICAgIDEwMSwxMTYsOTUsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw5NSwxMTIsOTcsMTE2LDEwNCwxMTcsMTcsCisgICAgMCwwLDAsOTUsMTA4LDk3LDExNSwxMTYsOTUsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw5NSwKKyAgICAxMTIsOTcsMTE2LDEwNCwxMTcsMTIsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTAyLAorICAgIDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE3LDUsMCwwLDAsOTUsMTEwLDk3LDEwOSwxMDEsMTE3LAorICAgIDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDUsMCwwLDAsOTUsMTEyLDk3LAorICAgIDExNiwxMDQsNDAsNCwwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsCisgICAgMTE3LDExLDAsMCwwLDExMiw5NywxMTQsMTAxLDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsCisgICAgMTE3LDYsMCwwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsOCwwLDAsMCwKKyAgICAxMTAsMTAxLDExOSw5NSwxMTIsOTcsMTE2LDEwNCw0MCwwLDAsMCwwLDQwLDAsMCwKKyAgICAwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwKKyAgICAxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwKKyAgICAxMTQsOTcsMTEyLDYyLDExNywxMiwwLDAsMCw5NSwxMTQsMTAxLDk5LDk3LDEwOCw5OSwKKyAgICAxMTcsMTA4LDk3LDExNiwxMDEsMTc1LDMsMCwwLDExNSwxNCwwLDAsMCwwLDIsCisgICAgMTgsMSwxNSwxLDI3LDMsMTIsMSwxMiwxLDEyLDEsMTE3LDI3LDAsMCwKKyAgICAwLDk1LDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsODAsOTcsMTE2LDEwNCw0NiwKKyAgICA5NSwxMTQsMTAxLDk5LDk3LDEwOCw5OSwxMTcsMTA4LDk3LDExNiwxMDEsOTksMSwwLDAsCisgICAgMCwwLDAsMCwwLDEsMCwwLDAsMiwwLDAsMCw2NywwLDAsCisgICAgMCwxMTUsMTYsMCwwLDAsMTE2LDAsMCwxMjQsMCwwLDEwNiwxLDAsMTMxLAorICAgIDAsMCwxMzEsMSwwLDgzLDQwLDEsMCwwLDAsNzgsNDAsMiwwLDAsCisgICAgMCwxMTcsNCwwLDAsMCwxMDUsMTE2LDEwMSwxMTQsMTE3LDEyLDAsMCwwLDk1LAorICAgIDExNCwxMDEsOTksOTcsMTA4LDk5LDExNywxMDgsOTcsMTE2LDEwMSw0MCwxLDAsMCwwLAorICAgIDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiw0MCwwLDAsMCwwLDQwLDAsCisgICAgMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLAorICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LAorICAgIDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLDk1LDk1LDEwNSwxMTYsMTAxLDExNCwKKyAgICA5NSw5NSwxODcsMywwLDAsMTE1LDIsMCwwLDAsMCwxLDExNywyMywwLAorICAgIDAsMCw5NSw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsCisgICAgNDYsOTUsOTUsMTA1LDExNiwxMDEsMTE0LDk1LDk1LDk5LDEsMCwwLDAsMCwwLAorICAgIDAsMCwxLDAsMCwwLDIsMCwwLDAsNjcsMCwwLDAsMTE1LDE2LAorICAgIDAsMCwwLDExNiwwLDAsMTI0LDAsMCwxMDYsMSwwLDEzMSwwLDAsMTMxLAorICAgIDEsMCw4Myw0MCwxLDAsMCwwLDc4LDQwLDIsMCwwLDAsMTE3LDMsCisgICAgMCwwLDAsMTA4LDEwMSwxMTAsMTE3LDEyLDAsMCwwLDk1LDExNCwxMDEsOTksOTcsCisgICAgMTA4LDk5LDExNywxMDgsOTcsMTE2LDEwMSw0MCwxLDAsMCwwLDExNyw0LDAsMCwKKyAgICAwLDExNSwxMDEsMTA4LDEwMiw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LAorICAgIDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwKKyAgICAxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLAorICAgIDYyLDExNyw3LDAsMCwwLDk1LDk1LDEwOCwxMDEsMTEwLDk1LDk1LDE5MCwzLDAsCisgICAgMCwxMTUsMiwwLDAsMCwwLDEsMTE3LDIyLDAsMCwwLDk1LDc4LDk3LAorICAgIDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsODAsOTcsMTE2LDEwNCw0Niw5NSw5NSwxMDgsMTAxLAorICAgIDExMCw5NSw5NSw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwKKyAgICAyLDAsMCwwLDY3LDAsMCwwLDExNSwxNiwwLDAsMCwxMDAsMSwwLAorICAgIDEwNiwwLDAsMTI0LDAsMCwxMDYsMSwwLDEzMSwxLDAsODMsNDAsMiwwLAorICAgIDAsMCw3OCwxMTcsMjAsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LAorICAgIDk5LDEwMSw4MCw5NywxMTYsMTA0LDQwLDEyMywzMywxMTQsMTI1LDQxLDQwLDIsMCwwLAorICAgIDAsMTE3LDYsMCwwLDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiwxMTcsNSwwLDAsCisgICAgMCw5NSwxMTIsOTcsMTE2LDEwNCw0MCwxLDAsMCwwLDExNyw0LDAsMCwwLAorICAgIDExNSwxMDEsMTA4LDEwMiw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LAorICAgIDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLAorICAgIDExNyw4LDAsMCwwLDk1LDk1LDExNCwxMDEsMTEyLDExNCw5NSw5NSwxOTMsMywwLAorICAgIDAsMTE1LDIsMCwwLDAsMCwxLDExNywyMywwLDAsMCw5NSw3OCw5NywKKyAgICAxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsNDYsOTUsOTUsMTE0LDEwMSwKKyAgICAxMTIsMTE0LDk1LDk1LDk5LDIsMCwwLDAsMCwwLDAsMCwyLDAsMCwKKyAgICAwLDIsMCwwLDAsNjcsMCwwLDAsMTE1LDE2LDAsMCwwLDEyNCwxLAorICAgIDAsMTI0LDAsMCwxMDYsMCwwLDEzMSwwLDAsMTA3LDYsMCw4Myw0MCwxLAorICAgIDAsMCwwLDc4LDQwLDEsMCwwLDAsMTE3LDEyLDAsMCwwLDk1LDExNCwKKyAgICAxMDEsOTksOTcsMTA4LDk5LDExNywxMDgsOTcsMTE2LDEwMSw0MCwyLDAsMCwwLDExNywKKyAgICA0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsNCwwLDAsMCwxMDUsMTE2LDEwMSwKKyAgICAxMDksNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCwKKyAgICA2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LAorICAgIDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTIsMCwKKyAgICAwLDAsOTUsOTUsOTksMTExLDExMCwxMTYsOTcsMTA1LDExMCwxMTUsOTUsOTUsMTk2LDMsCisgICAgMCwwLDExNSwyLDAsMCwwLDAsMSwxMTcsMjcsMCwwLDAsOTUsNzgsCisgICAgOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywxMTYsMTA0LDQ2LDk1LDk1LDk5LAorICAgIDExMSwxMTAsMTE2LDk3LDEwNSwxMTAsMTE1LDk1LDk1LDk5LDIsMCwwLDAsMCwwLAorICAgIDAsMCwyLDAsMCwwLDIsMCwwLDAsNjcsMCwwLDAsMTE1LDIwLAorICAgIDAsMCwwLDEyNCwwLDAsMTA2LDAsMCwxMDYsMSwwLDEyNCwxLDAsMTMxLAorICAgIDEsMCwxLDEwMCwwLDAsODMsNDAsMSwwLDAsMCw3OCw0MCwyLDAsCisgICAgMCwwLDExNyw1LDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDExNyw2LDAsMCwKKyAgICAwLDk3LDExMiwxMTIsMTAxLDExMCwxMDAsNDAsMiwwLDAsMCwxMTcsNCwwLDAsCisgICAgMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDQsMCwwLDAsMTA1LDExNiwxMDEsMTA5LDQwLDAsCisgICAgMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwKKyAgICAxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSwKKyAgICA5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDYsMCwwLDAsOTcsCisgICAgMTEyLDExMiwxMDEsMTEwLDEwMCwxOTksMywwLDAsMTE1LDIsMCwwLDAsMCwxLAorICAgIDExNywyMSwwLDAsMCw5NSw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLAorICAgIDk3LDExNiwxMDQsNDYsOTcsMTEyLDExMiwxMDEsMTEwLDEwMCw3OCw0MCwxMywwLDAsMCwKKyAgICAxMTcsOCwwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTAsMCwKKyAgICAwLDAsOTUsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsOTUsMTE3LDEyLDAsMCwKKyAgICAwLDk1LDk1LDExMywxMTcsOTcsMTA4LDExMCw5NywxMDksMTAxLDk1LDk1LDExNyw3LDAsCisgICAgMCwwLDk1LDk1LDEwMCwxMTEsOTksOTUsOTUsMTE3LDgsMCwwLDAsOTUsOTUsCisgICAgMTA1LDExMCwxMDUsMTE2LDk1LDk1LDExNywyMywwLDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsCisgICAgOTUsMTEyLDk3LDExNCwxMDEsMTEwLDExNiw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMTAsOTcsMTA5LAorICAgIDEwMSwxMTUsMTE3LDE2LDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LDExMiw5NywxMTQsMTAxLAorICAgIDExMCwxMTYsOTUsMTEyLDk3LDExNiwxMDQsMTE3LDEyLDAsMCwwLDk1LDExNCwxMDEsOTksCisgICAgOTcsMTA4LDk5LDExNywxMDgsOTcsMTE2LDEwMSwxMTcsOCwwLDAsMCw5NSw5NSwxMDUsCisgICAgMTE2LDEwMSwxMTQsOTUsOTUsMTE3LDcsMCwwLDAsOTUsOTUsMTA4LDEwMSwxMTAsOTUsCisgICAgOTUsMTE3LDgsMCwwLDAsOTUsOTUsMTE0LDEwMSwxMTIsMTE0LDk1LDk1LDExNywxMiwKKyAgICAwLDAsMCw5NSw5NSw5OSwxMTEsMTEwLDExNiw5NywxMDUsMTEwLDExNSw5NSw5NSwxMTcsCisgICAgNiwwLDAsMCw5NywxMTIsMTEyLDEwMSwxMTAsMTAwLDQwLDEsMCwwLDAsMTE3LAorICAgIDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsOTksOTcsMTA4LDExNSw5NSw5NSw0MCwwLAorICAgIDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsCisgICAgMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsCisgICAgOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNCwwLDAsMCw5NSwKKyAgICA3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDgwLDk3LDExNiwxMDQsMTQ4LDMsMCwKKyAgICAwLDExNSwyMCwwLDAsMCwxNiw1LDYsMiwxMiw2LDEyLDEwLDEyLDQsCisgICAgMTIsMTIsMTIsMywxMiwzLDEyLDMsMTIsMywxMTcsMTQsMCwwLDAsOTUsCisgICAgNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw4MCw5NywxMTYsMTA0LDk5LDEsMCwKKyAgICAwLDAsMCwwLDAsMCwxLDAsMCwwLDMsMCwwLDAsNjYsMCwKKyAgICAwLDAsMTE1LDY4LDAsMCwwLDEyNCwwLDAsNjksMTAxLDAsMCw5MCwxLAorICAgIDAsMTAwLDAsMCw5MCwyLDAsMTAwLDEsMCwxMDAsMiwwLDEzMiwwLDAsCisgICAgOTAsMywwLDEwMSw0LDAsMTAwLDMsMCwxMDAsNCwwLDEzMiwwLDAsMTMxLAorICAgIDEsMCw5MCw1LDAsMTAxLDYsMCwxMDAsNSwwLDEwMCw2LDAsMTMyLDAsCisgICAgMCwxMzEsMSwwLDkwLDcsMCwxMDAsNywwLDgzLDQwLDgsMCwwLDAsCisgICAgMTE3LDE1LDAsMCwwLDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsNzYsMTExLAorICAgIDk3LDEwMCwxMDEsMTE0LDk5LDQsMCwwLDAsMCwwLDAsMCw0LDAsMCwKKyAgICAwLDQsMCwwLDAsNjcsMCwwLDAsMTE1LDI1LDAsMCwwLDExNiwwLAorICAgIDAsMTI0LDEsMCwxMjQsMiwwLDEyNCwzLDAsMTMxLDMsMCwxMjQsMCwwLAorICAgIDk1LDEsMCwxMDAsMCwwLDgzLDQwLDEsMCwwLDAsNzgsNDAsMiwwLAorICAgIDAsMCwxMTcsMTQsMCwwLDAsOTUsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LAorICAgIDEwMSw4MCw5NywxMTYsMTA0LDExNyw1LDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDQwLAorICAgIDQsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw0LDAsCisgICAgMCwwLDExMCw5NywxMDksMTAxLDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNywKKyAgICAxMSwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMDIsMTA1LDExMCwxMDAsMTAxLDExNCw0MCwKKyAgICAwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwKKyAgICAxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsCisgICAgOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw4LDAsMCwwLAorICAgIDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSwyMDQsMywwLDAsMTE1LDIsMCwwLAorICAgIDAsMCwxLDExNywyNCwwLDAsMCw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksCisgICAgMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0Niw5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsCisgICAgOTksMiwwLDAsMCwwLDAsMCwwLDIsMCwwLDAsMiwwLDAsCisgICAgMCw2NywwLDAsMCwxMTUsMTYsMCwwLDAsMTAwLDEsMCwxMDYsMCwwLAorICAgIDEyNCwxLDAsMTA2LDEsMCwxMzEsMSwwLDgzLDQwLDIsMCwwLDAsNzgsCisgICAgMTE3LDI1LDAsMCwwLDYwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDM5LDEyMywxMjUsCisgICAgMzksMzIsNDAsMTEwLDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsNDEsNjIsNDAsMiwKKyAgICAwLDAsMCwxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LDExNyw4LAorICAgIDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDQwLDIsMCwwLDAsCisgICAgMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsNiwwLDAsMCwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsCisgICAgMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAorICAgIDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywKKyAgICAxMSwwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSwxMTQsMTAxLDExMiwxMTQsMjA3LAorICAgIDMsMCwwLDExNSwyLDAsMCwwLDAsMiwxMTcsMjcsMCwwLDAsNzgsCisgICAgOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsNDYsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTE0LDEwMSwxMTIsMTE0LDk5LDIsMCwwLDAsMCwKKyAgICAwLDAsMCwyLDAsMCwwLDMsMCwwLDAsNjcsMCwwLDAsMTE1LAorICAgIDMyLDAsMCwwLDExNiwwLDAsMTAwLDEsMCwxMjQsMCwwLDEwNiwxLDAsCisgICAgMTMxLDIsMCwxLDEyNCwwLDAsMTA2LDEsMCwxMjQsMSwwLDk1LDIsMCwKKyAgICAxMjQsMSwwLDgzLDQwLDIsMCwwLDAsMTE3LDI0LDAsMCwwLDc2LDExMSwKKyAgICA5NywxMDAsMzIsOTcsMzIsMTEwLDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsMzIsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsNDYsMTE3LDM4LDAsMCwwLDExMCw5NywxMDksMTAxLDExNSwKKyAgICAxMTIsOTcsOTksMTAxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDEwOCwxMTEsOTcsMTAwLAorICAgIDEwMSwxMDAsMzIsMTE5LDEwNSwxMTYsMTA0LDMyLDExMiw5NywxMTYsMTA0LDMyLDEyMywzMywxMTQsCisgICAgMTI1LDQwLDMsMCwwLDAsMTE3LDE2LDAsMCwwLDk1LDExOCwxMDEsMTE0LDk4LAorICAgIDExMSwxMTUsMTAxLDk1LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNyw1LDAsMCwwLAorICAgIDk1LDExMiw5NywxMTYsMTA0LDExNyw4LDAsMCwwLDk1LDk1LDExMiw5NywxMTYsMTA0LAorICAgIDk1LDk1LDQwLDIsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLAorICAgIDExNyw2LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQwLDAsMCwwLDAsCisgICAgNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwKKyAgICAxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLAorICAgIDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDExLDAsMCwwLDEwOCwxMTEsOTcsMTAwLAorICAgIDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDIxMSwzLDAsMCwxMTUsNiwwLDAsMCwKKyAgICAwLDMsMTYsMSwxMiwxLDExNywyNywwLDAsMCw3OCw5NywxMDksMTAxLDExNSwKKyAgICAxMTIsOTcsOTksMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCw0NiwxMDgsMTExLDk3LDEwMCw5NSwKKyAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw3OCw0MCw4LDAsMCwwLDExNyw4LDAsMCwKKyAgICAwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDExNywxMCwwLDAsMCw5NSw5NSwKKyAgICAxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw5NSw5NSwxMTcsMTIsMCwwLDAsOTUsOTUsMTEzLAorICAgIDExNyw5NywxMDgsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDgsMCwwLDAsOTUsOTUsCisgICAgMTA1LDExMCwxMDUsMTE2LDk1LDk1LDExNywxMSwwLDAsMCw5OSwxMDgsOTcsMTE1LDExNSwKKyAgICAxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTcsMTEsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsOTUsMTE0LDEwMSwxMTIsMTE0LDExNywxNywwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LAorICAgIDEwMSw5NSwxMDIsMTExLDExNCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNywxMSwwLDAsCisgICAgMCwxMDgsMTExLDk3LDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0MCwxLDAsMCwKKyAgICAwLDExNywxMCwwLDAsMCw5NSw5NSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsOTUsOTUsCisgICAgNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwKKyAgICAxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LAorICAgIDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTUsMCwwLAorICAgIDAsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgMjAzLDMsMCwwLDExNSw2LDAsMCwwLDE2LDEsMTIsMywxOCw0LDExNywKKyAgICAxNSwwLDAsMCw3OCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDc2LDExMSw5NywKKyAgICAxMDAsMTAxLDExNCw5OSwxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwKKyAgICA0LDAsMCwwLDY2LDAsMCwwLDExNSwxMDEsMCwwLDAsMTI0LDAsMCwKKyAgICA2OSwxMDEsMCwwLDkwLDEsMCwxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLAorICAgIDkwLDMsMCwxMDEsNCwwLDEwMCwyLDAsMTAwLDMsMCwxMzIsMCwwLDEzMSwKKyAgICAxLDAsOTAsNSwwLDEwMSw0LDAsMTAwLDQsMCwxMDAsNSwwLDEzMiwwLAorICAgIDAsMTMxLDEsMCw5MCw2LDAsMTAxLDQsMCwxMDAsNiwwLDEwMCw3LDAsCisgICAgMTMyLDAsMCwxMzEsMSwwLDkwLDcsMCwxMDEsNCwwLDEwMCwxMCwwLDEwMCwKKyAgICA4LDAsMTAwLDksMCwxMzIsMSwwLDEzMSwxLDAsOTAsOSwwLDEwMCwxMCwKKyAgICAwLDgzLDQwLDExLDAsMCwwLDExNywxMCwwLDAsMCw4MCw5NywxMTYsMTA0LAorICAgIDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE3LDYzLDAsMCwwLDc3LDEwMSwxMTYsOTcsMzIsCisgICAgMTEyLDk3LDExNiwxMDQsMzIsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsMzIsMTAyLDExMSwxMTQsMzIsCisgICAgMTE1LDEyMSwxMTUsNDYsNDAsMTEyLDk3LDExNiwxMDQsMTI0LDExMiw5NywxMTYsMTA0LDk1LDEwNCwKKyAgICAxMTEsMTExLDEwNywxMTUsMTI0LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LAorICAgIDEwMSwxMTQsOTUsOTksOTcsOTksMTA0LDEwMSw0MSw0Niw5OSwyLDAsMCwwLDAsCisgICAgMCwwLDAsMywwLDAsMCwxMiwwLDAsMCw2NywwLDAsMCwxMTUsCisgICAgOTQsMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDExNSwyOCwwLDExNiwyLDAsCisgICAgMTA2LDMsMCwxMDAsMSwwLDExNiw0LDAsMTMxLDIsMCwxLDExMCwwLDAsCisgICAgMTIwLDU5LDAsMTE2LDAsMCwxMDYsMSwwLDY4LDkzLDQ0LDAsMTI1LDIsMCwKKyAgICAxMjEsMTQsMCwxMjQsMiwwLDEyNCwxLDAsMTMxLDEsMCw4Myw4NywxMTMsMzgsCisgICAgMCw0LDExNiw1LDAsMTA3LDEwLDAsMTE0LDgxLDAsMSwxLDEsMTE5LDM4LAorICAgIDAsODksMTEzLDM4LDAsODgsMTEzLDM4LDAsODcsMTAwLDIsMCw4MywxMDAsMiwKKyAgICAwLDgzLDQwLDMsMCwwLDAsMTE3LDExMywwLDAsMCw4MywxMDEsOTcsMTE0LAorICAgIDk5LDEwNCwzMiwxMTUsMTAxLDExMywxMTcsMTAxLDExMCw5OSwxMDEsMzIsMTExLDEwMiwzMiwxMDQsCisgICAgMTExLDExMSwxMDcsMTE1LDMyLDEwMiwxMTEsMTE0LDMyLDk3LDMyLDEwMiwxMDUsMTEwLDEwMCwxMDEsCisgICAgMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDM5LDExMiw5NywxMTYsMTA0LDM5LDQ2LDEwLDEwLDMyLAorICAgIDMyLDMyLDMyLDMyLDMyLDMyLDMyLDczLDEwMiwzMiwzOSwxMDQsMTExLDExMSwxMDcsMTE1LAorICAgIDM5LDMyLDEwNSwxMTUsMzIsMTAyLDk3LDEwOCwxMTUsMTAxLDMyLDExNiwxMDQsMTAxLDExMCwzMiwKKyAgICAxMTcsMTE1LDEwMSwzMiwxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwKKyAgICAxMDcsMTE1LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExNywyMywwLAorICAgIDAsMCwxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTE1LAorICAgIDMyLDEwNSwxMTUsMzIsMTAxLDEwOSwxMTIsMTE2LDEyMSw3OCw0MCw3LDAsMCwwLDExNywKKyAgICAzLDAsMCwwLDExNSwxMjEsMTE1LDExNywxMCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwKKyAgICA5NSwxMDQsMTExLDExMSwxMDcsMTE1LDExNyw5LDAsMCwwLDk1LDExOSw5NywxMTQsMTEwLAorICAgIDEwNSwxMTAsMTAzLDExNSwxMTcsNCwwLDAsMCwxMTksOTcsMTE0LDExMCwxMTcsMTMsMCwKKyAgICAwLDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw4Nyw5NywxMTQsMTEwLDEwNSwxMTAsMTAzLDExNywKKyAgICAxMSwwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCwxMTcsCisgICAgNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSw0MCwzLDAsMCwwLDExNywzLDAsCisgICAgMCwwLDk5LDEwOCwxMTUsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDQsCisgICAgMCwwLDAsMTA0LDExMSwxMTEsMTA3LDQwLDAsMCwwLDAsNDAsMCwwLDAsCisgICAgMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwKKyAgICAxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCwKKyAgICA5NywxMTIsNjIsMTE3LDExLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNCwxMTEsCisgICAgMTExLDEwNywxMTUsMjI1LDMsMCwwLDExNSwxNiwwLDAsMCwwLDcsOSwxLAorICAgIDE5LDEsMTYsMSwzLDEsMTQsMSwxMywxLDEyLDIsMTE3LDIyLDAsMCwKKyAgICAwLDgwLDk3LDExNiwxMDQsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0Niw5NSwxMTIsOTcsMTE2LAorICAgIDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTE1LDk5LDIsMCwwLDAsMCwwLDAsMCwKKyAgICAzLDAsMCwwLDExLDAsMCwwLDY3LDAsMCwwLDExNSw5MSwwLDAsCisgICAgMCwxMjQsMSwwLDEwMCwxLDAsMTA3LDIsMCwxMTQsMjEsMCwxMDAsMiwwLAorICAgIDEyNSwxLDAsMTEwLDAsMCwxMjEsMTcsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LAorICAgIDEsMCwyNSwxMjUsMiwwLDg3LDExMCw0NiwwLDQsMTE2LDIsMCwxMDcsMTAsCisgICAgMCwxMTQsODYsMCwxLDEsMSwxMjQsMCwwLDEwNiwzLDAsMTI0LDEsMCwKKyAgICAxMzEsMSwwLDEyNSwyLDAsMTI0LDIsMCwxMTYsMCwwLDEwNiwxLDAsMTI0LAorICAgIDEsMCw2MCw4OSwxMTAsMSwwLDg4LDEyNCwyLDAsODMsNDAsMywwLDAsCisgICAgMCwxMTcsMTk4LDAsMCwwLDcxLDEwMSwxMTYsMzIsMTE2LDEwNCwxMDEsMzIsMTAyLDEwNSwKKyAgICAxMTAsMTAwLDEwMSwxMTQsMzIsMTAyLDExMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLDk3LDExNiwKKyAgICAxMDQsMzIsMTAyLDExNCwxMTEsMTA5LDMyLDExNSwxMjEsMTE1LDQ2LDExMiw5NywxMTYsMTA0LDk1LAorICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsOTUsOTksOTcsOTksMTA0LDEwMSw0NiwxMCwKKyAgICAxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw3MywxMDIsMzIsMTE2LDEwNCwxMDEsMzIsCisgICAgMTEyLDk3LDExNiwxMDQsMzIsMTA1LDExNSwzMiwxMTAsMTExLDExNiwzMiwxMDUsMTEwLDMyLDExNiwKKyAgICAxMDQsMTAxLDMyLDk5LDk3LDk5LDEwNCwxMDEsNDQsMzIsMTAyLDEwNSwxMTAsMTAwLDMyLDExNiwKKyAgICAxMDQsMTAxLDMyLDk3LDExMiwxMTIsMTE0LDExMSwxMTIsMTE0LDEwNSw5NywxMTYsMTAxLDMyLDEwMiwKKyAgICAxMDUsMTEwLDEwMCwxMDEsMTE0LDMyLDk3LDExMCwxMDAsMzIsOTksOTcsOTksMTA0LDEwMSwxMCwKKyAgICAzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMDUsMTE2LDQ2LDMyLDczLDEwMiwzMiwxMTAsCisgICAgMTExLDMyLDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDMyLDEwNSwxMTUsMzIsOTcsMTE4LDk3LDEwNSwKKyAgICAxMDgsOTcsOTgsMTA4LDEwMSw0NCwzMiwxMTUsMTE2LDExMSwxMTQsMTAxLDMyLDc4LDExMSwxMTAsCisgICAgMTAxLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyLDExNywwLDAsMCwKKyAgICAwLDExNywxLDAsMCwwLDQ2LDQwLDQsMCwwLDAsMTE3LDMsMCwwLAorICAgIDAsMTE1LDEyMSwxMTUsMTE3LDE5LDAsMCwwLDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsOTUsOTksOTcsOTksMTA0LDEwMSwxMTcsOCwwLDAsCisgICAgMCw3NSwxMDEsMTIxLDY5LDExNCwxMTQsMTExLDExNCwxMTcsMTEsMCwwLDAsOTUsMTEyLAorICAgIDk3LDExNiwxMDQsOTUsMTA0LDExMSwxMTEsMTA3LDExNSw0MCwzLDAsMCwwLDExNywzLAorICAgIDAsMCwwLDk5LDEwOCwxMTUsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LAorICAgIDYsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDAsMCwwLDAsMCw0MCwKKyAgICAwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwKKyAgICAzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LAorICAgIDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMjAsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsCisgICAgOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw5NSw5OSw5Nyw5OSwxMDQsMTAxLDI0MiwKKyAgICAzLDAsMCwxMTUsMTYsMCwwLDAsMCw4LDEyLDEsOSwxLDMsMSwKKyAgICAxNywxLDEzLDEsMTUsMSwxOCwxLDExNywzMSwwLDAsMCw4MCw5NywxMTYsCisgICAgMTA0LDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA1LDEwOSwKKyAgICAxMTIsMTExLDExNCwxMTYsMTAxLDExNCw5NSw5OSw5Nyw5OSwxMDQsMTAxLDk5LDMsMCwwLAorICAgIDAsMCwwLDAsMCw4LDAsMCwwLDQsMCwwLDAsNjcsMCwwLAorICAgIDAsMTE1LDE2MiwwLDAsMCwxMDMsMCwwLDEyNSwzLDAsMTIwLDE0OSwwLDEyNCwKKyAgICAyLDAsNjgsOTMsMTMxLDAsMTI1LDQsMCwxMjQsMCwwLDEwNiwwLDAsMTI0LAorICAgIDQsMCwxMzEsMSwwLDEyNSw1LDAsMTI0LDUsMCwxMDAsMiwwLDEwNyw5LAorICAgIDAsMTE0LDEzLDAsMTE2LDIsMCwxMjQsNSwwLDEwMCwxLDAsMTMxLDIsMCwKKyAgICAxMTQsODUsMCwxMjQsNSwwLDEwNiwzLDAsMTI0LDEsMCwxMzEsMSwwLDkyLAorICAgIDIsMCwxMjUsNiwwLDEyNSw3LDAsMTEwLDIxLDAsMTI0LDUsMCwxMDYsNCwKKyAgICAwLDEyNCwxLDAsMTMxLDEsMCwxMjUsNiwwLDEwMywwLDAsMTI1LDcsMCwKKyAgICAxMjQsNiwwLDEwMCwyLDAsMTA3LDksMCwxMTQsMTI4LDAsMTI0LDYsMCwxMjQsCisgICAgMywwLDEwMiwyLDAsODMsMTI0LDMsMCwxMDYsNSwwLDEyNCw3LDAsMTMxLAorICAgIDEsMCwxLDExMywxMywwLDExMywxMywwLDg3LDEwMCwyLDAsMTI0LDMsMCwKKyAgICAxMDIsMiwwLDgzLDEwMCwyLDAsODMsNDAsMywwLDAsMCwxMTcsNjMsMCwKKyAgICAwLDAsNzAsMTA1LDExMCwxMDAsMzIsMTE2LDEwNCwxMDEsMzIsMTA4LDExMSw5NywxMDAsMTAxLAorICAgIDExNCwzMiwxMTEsMTE0LDMyLDExMCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksMTAxLDk1LDExMiwKKyAgICA5NywxMTYsMTA0LDMyLDEwMiwxMTEsMTE0LDMyLDExNiwxMDQsMTA1LDExNSwzMiwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSw0NywxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMzIsMTEwLDk3LDEwOSwxMDEsCisgICAgNDYsMTE3LDExLDAsMCwwLDEwMiwxMDUsMTEwLDEwMCw5NSwxMDgsMTExLDk3LDEwMCwxMDEsCisgICAgMTE0LDc4LDQwLDYsMCwwLDAsMTE3LDIwLDAsMCwwLDk1LDExMiw5NywxMTYsCisgICAgMTA0LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMTQsOTUsOTksOTcsOTksMTA0LDEwMSwKKyAgICAxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsNywwLDAsMCwxMDQsOTcsCisgICAgMTE1LDk3LDExNiwxMTYsMTE0LDExNywxMSwwLDAsMCwxMDIsMTA1LDExMCwxMDAsOTUsMTA4LAorICAgIDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDExNyw2LDAsMCwwLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTAwLAorICAgIDQwLDgsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LDExNSwxMTcsOCwwLAorICAgIDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsMTE3LDQsMCwwLDAsMTEyLAorICAgIDk3LDExNiwxMDQsMTE3LDE0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNSwxMTIsOTcsOTksCisgICAgMTAxLDk1LDExMiw5NywxMTYsMTA0LDExNyw1LDAsMCwwLDEwMSwxMTAsMTE2LDExNCwxMjEsCisgICAgMTE3LDYsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTE3LDYsMCwwLDAsCisgICAgMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsOCwwLDAsMCwxMTIsMTExLDExNCwxMTYsMTA1LAorICAgIDExMSwxMTAsMTE1LDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwKKyAgICAwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsCisgICAgMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LAorICAgIDExLDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMywKKyAgICA0LDAsMCwxMTUsMjQsMCwwLDAsMCw1LDYsMSwxMywxLDE1LDEsCisgICAgMTIsMSwxNSwxLDI0LDIsMTUsMSw2LDEsMTIsMiwxMCw1LDIwLDIsCisgICAgMTE3LDIyLDAsMCwwLDgwLDk3LDExNiwxMDQsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwKKyAgICA5NSwxMDMsMTAxLDExNiw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk5LDMsMCwwLDAsCisgICAgMCwwLDAsMCw1LDAsMCwwLDQsMCwwLDAsNjcsMCwwLDAsCisgICAgMTE1LDk3LDAsMCwwLDEyNCwyLDAsMTAwLDEsMCwxMDcsOCwwLDExNCwyNCwKKyAgICAwLDExNiwxLDAsMTA2LDIsMCwxMjUsMiwwLDExMCwwLDAsMTI0LDAsMCwKKyAgICAxMDYsMywwLDEyNCwxLDAsMTI0LDIsMCwxMzEsMiwwLDkyLDIsMCwxMjUsCisgICAgMywwLDEyNSw0LDAsMTI0LDMsMCwxMDAsMSwwLDEwNyw5LDAsMTE0LDY0LAorICAgIDAsMTI0LDMsMCw4MywxMjQsNCwwLDExNCw4OSwwLDExNiw0LDAsMTI0LDEsCisgICAgMCwxMjQsNCwwLDEyNCwwLDAsMTA2LDMsMCwxMzEsMywwLDgzLDEwMCwxLAorICAgIDAsODMsMTAwLDEsMCw4Myw0MCwyLDAsMCwwLDExNyw5OCwwLDAsMCwKKyAgICA3MCwxMDUsMTEwLDEwMCwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwzMiwKKyAgICAxMTEsMTEwLDMyLDExNSwxMjEsMTE1LDQ2LDExMiw5NywxMTYsMTA0LDMyLDExMSwxMTQsMzIsMzksCisgICAgMTEyLDk3LDExNiwxMDQsMzksMzIsOTgsOTcsMTE1LDEwMSwxMDAsMzIsMTExLDExMCwzMiwxMTUsCisgICAgMTIxLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsMTE1LDMyLDk3LDExMCwKKyAgICAxMDAsMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTE1LDEyMSwxMTUsNDYsMTEyLDk3LAorICAgIDExNiwxMDQsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw5NSw5OSw5Nyw5OSwxMDQsCisgICAgMTAxLDQ2LDc4LDQwLDUsMCwwLDAsMTE3LDQsMCwwLDAsNzgsMTExLDExMCwKKyAgICAxMDEsMTE3LDMsMCwwLDAsMTE1LDEyMSwxMTUsMTE3LDQsMCwwLDAsMTEyLDk3LAorICAgIDExNiwxMDQsMTE3LDExLDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LDEwOCwxMTEsOTcsMTAwLAorICAgIDEwMSwxMTQsMTE3LDE1LDAsMCwwLDc4LDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsCisgICAgNzYsMTExLDk3LDEwMCwxMDEsMTE0LDQwLDUsMCwwLDAsMTE3LDMsMCwwLDAsCisgICAgOTksMTA4LDExNSwxMTcsOCwwLDAsMCwxMDIsMTE3LDEwOCwxMDgsMTEwLDk3LDEwOSwxMDEsCisgICAgMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDYsMCwwLDAsMTA4LDExMSwKKyAgICA5NywxMDAsMTAxLDExNCwxMTcsMTQsMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE1LDExMiw5NywKKyAgICA5OSwxMDEsOTUsMTEyLDk3LDExNiwxMDQsNDAsMCwwLDAsMCw0MCwwLDAsMCwKKyAgICAwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LAorICAgIDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LAorICAgIDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLAorICAgIDExNywxMDgsMTAxLDI4LDQsMCwwLDExNSwxNiwwLDAsMCwwLDQsMTIsMSwKKyAgICAxMiwxLDI0LDEsMTIsMSw0LDIsNiwzLDE5LDIsMTE3LDIyLDAsMCwKKyAgICAwLDgwLDk3LDExNiwxMDQsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwxMDIsMTA1LDExMCwxMDAsCisgICAgOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNzgsNDAsMTAsMCwwLDAsMTE3LDgsMCwKKyAgICAwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLDk1LAorICAgIDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSw5NSwKKyAgICAxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCw5NSwKKyAgICA5NSwxMDAsMTExLDk5LDk1LDk1LDExNywxMSwwLDAsMCw5OSwxMDgsOTcsMTE1LDExNSwKKyAgICAxMDksMTAxLDExNiwxMDQsMTExLDEwMCwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsCisgICAgOTUsMTA0LDExMSwxMTEsMTA3LDExNSwxMTcsMjAsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsCisgICAgOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCw5NSw5OSw5Nyw5OSwxMDQsMTAxLDExNywKKyAgICAxMSwwLDAsMCw5NSwxMDMsMTAxLDExNiw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDExNywKKyAgICA0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNywxMSwwLDAsMCwxMDIsMTA1LDExMCwKKyAgICAxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDAsMSwwLDAsMCwxMTcsMTAsMCwKKyAgICAwLDAsOTUsOTUsMTA4LDExMSw5OSw5NywxMDgsMTE1LDk1LDk1LDQwLDAsMCwwLAorICAgIDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLAorICAgIDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsCisgICAgMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDgwLDk3LDExNiwKKyAgICAxMDQsNzAsMTA1LDExMCwxMDAsMTAxLDExNCwyMjEsMywwLDAsMTE1LDEyLDAsMCwwLAorICAgIDE2LDIsNiwyLDE4LDE3LDE4LDE3LDE4LDI1LDMsMSwxMTcsMTAsMCwwLAorICAgIDAsODAsOTcsMTE2LDEwNCw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDk5LDEsMCwwLDAsCisgICAgMCwwLDAsMCwxLDAsMCwwLDMsMCwwLDAsNjYsMCwwLDAsCisgICAgMTE1LDExNiwwLDAsMCwxMjQsMCwwLDY5LDEwMSwwLDAsOTAsMSwwLDEwMCwKKyAgICAwLDAsOTAsMiwwLDEwMCwxLDAsOTAsMywwLDEwMCwyLDAsMTAwLDMsCisgICAgMCwxMzIsMCwwLDkwLDQsMCwxMDAsNCwwLDEwMCw1LDAsMTMyLDAsMCwKKyAgICA5MCw1LDAsMTAwLDYsMCwxMDAsNywwLDEzMiwwLDAsOTAsNiwwLDEwMCwKKyAgICA4LDAsMTAwLDksMCwxMzIsMCwwLDkwLDcsMCwxMDAsMTAsMCwxMDAsMTEsCisgICAgMCwxMzIsMCwwLDkwLDgsMCwxMDEsOSwwLDEwMCwxMiwwLDEwMCwxMywwLAorICAgIDEzMiwwLDAsMTMxLDEsMCw5MCwxMCwwLDEwMCwxNCwwLDEwMCwxNSwwLDEzMiwKKyAgICAwLDAsOTAsMTEsMCwxMDAsMTYsMCw4Myw0MCwxNywwLDAsMCwxMTcsMTAsCisgICAgMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCwxMTcsMTcyLDAsCisgICAgMCwwLDcwLDEwNSwxMDgsMTAxLDQ1LDk4LDk3LDExNSwxMDEsMTAwLDMyLDEwMiwxMDUsMTEwLAorICAgIDEwMCwxMDEsMTE0LDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDczLDExMCwxMTYsMTAxLDExNCw5NywKKyAgICA5OSwxMTYsMTA1LDExMSwxMTAsMTE1LDMyLDExOSwxMDUsMTE2LDEwNCwzMiwxMTYsMTA0LDEwMSwzMiwKKyAgICAxMDIsMTA1LDEwOCwxMDEsMzIsMTE1LDEyMSwxMTUsMTE2LDEwMSwxMDksMzIsOTcsMTE0LDEwMSwzMiwKKyAgICA5OSw5Nyw5OSwxMDQsMTAxLDEwMCwzMiwxMDIsMTExLDExNCwzMiwxMTIsMTAxLDExNCwxMDIsMTExLAorICAgIDExNCwxMDksOTcsMTEwLDk5LDEwMSw0NCwzMiw5OCwxMDEsMTA1LDExMCwxMDMsMTAsMzIsMzIsCisgICAgMzIsMzIsMTE0LDEwMSwxMDIsMTE0LDEwMSwxMTUsMTA0LDEwMSwxMDAsMzIsMTE5LDEwNCwxMDEsMTEwLAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDEwMCwxMDUsMTE0LDEwMSw5OSwxMTYsMTExLDExNCwxMjEsMzIsMTE2LAorICAgIDEwNCwxMDEsMzIsMTAyLDEwNSwxMTAsMTAwLDEwMSwxMTQsMzIsMTA1LDExNSwzMiwxMDQsOTcsMTEwLAorICAgIDEwMCwxMDgsMTA1LDExMCwxMDMsMzIsMTA0LDk3LDExNSwzMiw5OCwxMDEsMTAxLDExMCwzMiwxMDksCisgICAgMTExLDEwMCwxMDUsMTAyLDEwNSwxMDEsMTAwLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLDk5LDIsCisgICAgMCwwLDAsMCwwLDAsMCw3LDAsMCwwLDUsMCwwLDAsNywKKyAgICAwLDAsMCwxMTUsMTgxLDAsMCwwLDEwMywwLDAsMTI1LDMsMCwxMDMsMCwKKyAgICAwLDEyNSw0LDAsMTIwLDk2LDAsMTI0LDIsMCw2OCw5Myw4OCwwLDkyLDMsCisgICAgMCwxMzcsMCwwLDEyNSw1LDAsMTI1LDYsMCwxMjQsNCwwLDEwNiwwLDAsCisgICAgMTM1LDAsMCwxMDIsMSwwLDEwMCwxLDAsMTAwLDIsMCwxMzQsMCwwLDEyNCwKKyAgICA1LDAsNjgsMTMxLDEsMCwxMzEsMSwwLDEsMTI0LDYsMCwxMTQsMTksMCwKKyAgICAxMjQsMywwLDEwNiwwLDAsMTM1LDAsMCwxMDIsMSwwLDEwMCwzLDAsMTAwLAorICAgIDIsMCwxMzQsMCwwLDEyNCw1LDAsNjgsMTMxLDEsMCwxMzEsMSwwLDEsCisgICAgMTEzLDE5LDAsMTEzLDE5LDAsODcsMTI0LDMsMCwxMjQsMCwwLDk1LDEsMCwKKyAgICAxMjQsNCwwLDEyNCwwLDAsOTUsMiwwLDEyNCwxLDAsMTEyLDEzOCwwLDEwMCwKKyAgICA0LDAsMTI0LDAsMCw5NSwzLDAsMTAwLDcsMCwxMjQsMCwwLDk1LDQsCisgICAgMCwxMTYsNSwwLDEzMSwwLDAsMTI0LDAsMCw5NSw2LDAsMTE2LDUsMCwKKyAgICAxMzEsMCwwLDEyNCwwLDAsOTUsNywwLDEwMCw2LDAsODMsNDAsOCwwLAorICAgIDAsMCwxMTcsMjAxLDAsMCwwLDczLDExMCwxMDUsMTE2LDEwNSw5NywxMDgsMTA1LDEyMiwKKyAgICAxMDEsMzIsMTE5LDEwNSwxMTYsMTA0LDMyLDExNiwxMDQsMTAxLDMyLDExMiw5NywxMTYsMTA0LDMyLAorICAgIDExNiwxMTEsMzIsMTE1LDEwMSw5NywxMTQsOTksMTA0LDMyLDExMSwxMTAsMzIsOTcsMTEwLDEwMCwKKyAgICAzMiw5NywzMiwxMTgsOTcsMTE0LDEwNSw5Nyw5OCwxMDgsMTAxLDMyLDExMCwxMTcsMTA5LDk4LAorICAgIDEwMSwxMTQsMzIsMTExLDEwMiwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw1MSw0NSwKKyAgICAxMTYsMTE3LDExMiwxMDgsMTAxLDExNSwzMiw5OSwxMTEsMTEwLDExNiw5NywxMDUsMTEwLDEwNSwxMTAsCisgICAgMTAzLDMyLDExNiwxMDQsMTAxLDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsNDQsMzIsMTAyLDEwNSwKKyAgICAxMDgsMTAxLDMyLDExNSwxMTcsMTAyLDEwMiwxMDUsMTIwLDEwMSwxMTUsMzIsMTE2LDEwNCwxMDEsMzIsCisgICAgMTA4LDExMSw5NywxMDAsMTAxLDExNCwzMiwxMTQsMTAxLDk5LDExMSwxMDMsMTEwLDEwNSwxMjIsMTAxLAorICAgIDExNSw0NCwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiw5NywxMTAsMTAwLDMyLDk3LAorICAgIDMyLDk4LDExMSwxMTEsMTA4LDEwMSw5NywxMTAsMzIsMTExLDEwMiwzMiwxMTksMTA0LDEwMSwxMTYsCisgICAgMTA0LDEwMSwxMTQsMzIsMTE2LDEwNCwxMDEsMzIsMTA4LDExMSw5NywxMDAsMTAxLDExNCwzMiwxMDQsCisgICAgOTcsMTEwLDEwMCwxMDgsMTAxLDExNSwzMiwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTE1LDQ2LAorICAgIDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDMsMCwwLAorICAgIDAsNTEsMCwwLDAsMTE1LDI3LDAsMCwwLDEyNCwwLDAsOTMsMTcsMCwKKyAgICAxMjUsMSwwLDEyNCwxLDAsMTM2LDAsMCwxMDIsMiwwLDg2LDEsMTEzLDMsCisgICAgMCwxMDAsMCwwLDgzLDQwLDEsMCwwLDAsNzgsNDAsMCwwLDAsMCwKKyAgICA0MCwyLDAsMCwwLDExNywyLDAsMCwwLDQ2LDQ4LDExNyw2LDAsMCwKKyAgICAwLDExNSwxMTcsMTAyLDEwMiwxMDUsMTIwLDQwLDEsMCwwLDAsMTE3LDYsMCwwLAorICAgIDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCw0MCwwLDAsMCwwLDExNywyOSwwLDAsCisgICAgMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsCisgICAgMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOSwKKyAgICAwLDAsMCw2MCwxMDMsMTAxLDExMCwxMDEsMTIwLDExMiwxMTQsNjIsNjIsNCwwLDAsCisgICAgMTE1LDIsMCwwLDAsNiwwLDExNywzOCwwLDAsMCw3MCwxMDUsMTA4LDEwMSwKKyAgICA3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSw0NiwKKyAgICA2MCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsNjIsNDYsNjAsMTAzLDEwMSwxMTAsMTAxLDEyMCwxMTIsCisgICAgMTE0LDYyLDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLDMsCisgICAgMCwwLDAsNTEsMCwwLDAsMTE1LDI3LDAsMCwwLDEyNCwwLDAsOTMsCisgICAgMTcsMCwxMjUsMSwwLDEyNCwxLDAsMTM2LDAsMCwxMDIsMiwwLDg2LDEsCisgICAgMTEzLDMsMCwxMDAsMCwwLDgzLDQwLDEsMCwwLDAsNzgsNDAsMCwwLAorICAgIDAsMCw0MCwyLDAsMCwwLDExNywyLDAsMCwwLDQ2LDQ4LDExNyw2LAorICAgIDAsMCwwLDExNSwxMTcsMTAyLDEwMiwxMDUsMTIwLDQwLDEsMCwwLDAsMTE3LDYsCisgICAgMCwwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCw0MCwwLDAsMCwwLDExNywyOSwKKyAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKKyAgICAxMTcsOSwwLDAsMCw2MCwxMDMsMTAxLDExMCwxMDEsMTIwLDExMiwxMTQsNjIsNjQsNCwKKyAgICAwLDAsMTE1LDIsMCwwLDAsNiwwLDExNywxLDAsMCwwLDQ2LDEwNSwKKyAgICAxLDAsMCwwLDc4LDEwNSwyNTUsMjU1LDI1NSwyNTUsNDAsOCwwLDAsMCwxMTcsCisgICAgNiwwLDAsMCwxMDEsMTIwLDExNiwxMDEsMTEwLDEwMCwxMTcsOCwwLDAsMCwxMTIsCisgICAgOTcsOTksMTA3LDk3LDEwMywxMDEsMTE1LDExNyw3LDAsMCwwLDEwOSwxMTEsMTAwLDExNywKKyAgICAxMDgsMTAxLDExNSwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwxMTcsMTEsMCwwLAorICAgIDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsMywwLDAsCisgICAgMCwxMTUsMTAxLDExNiwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsOTksCisgICAgOTcsOTksMTA0LDEwMSwxMTcsMTksMCwwLDAsOTUsMTE0LDEwMSwxMDgsOTcsMTIwLDEwMSwKKyAgICAxMDAsOTUsMTEyLDk3LDExNiwxMDQsOTUsOTksOTcsOTksMTA0LDEwMSw0MCw3LDAsMCwKKyAgICAwLDExNyw0LDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsNCwwLDAsMCwxMTIsCisgICAgOTcsMTE2LDEwNCwxMTcsNywwLDAsMCwxMDAsMTAxLDExNiw5NywxMDUsMTA4LDExNSwxMTcsCisgICAgOCwwLDAsMCwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTE1LDExNyw3LDAsMCwKKyAgICAwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwxMTcsOCwwLDAsMCwxMTUsMTE3LDEwMiwKKyAgICAxMDIsMTA1LDEyMCwxMDEsMTE1LDExNywxNywwLDAsMCwxMTUsMTE3LDExMiwxMTIsMTExLDExNCwKKyAgICAxMTYsMTE1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwxMTUsNDAsMCwwLDAsMCwKKyAgICA0MCwxLDAsMCwwLDExNyw2LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLAorICAgIDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsCisgICAgMTEyLDYyLDExNyw4LDAsMCwwLDk1LDk1LDEwNSwxMTAsMTA1LDExNiw5NSw5NSw1NSwKKyAgICA0LDAsMCwxMTUsMjQsMCwwLDAsMCw0LDYsMSw2LDEsMjIsMSwKKyAgICAzMiwxLDYsMSwzOSwxLDksMSw5LDIsMTUsMSw5LDEsMTIsMSwKKyAgICAxMTcsMTksMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwKKyAgICA5NSw5NSwxMDUsMTEwLDEwNSwxMTYsOTUsOTUsOTksMSwwLDAsMCwwLDAsMCwKKyAgICAwLDEsMCwwLDAsMiwwLDAsMCw2NywwLDAsMCwxMTUsMTMsMCwKKyAgICAwLDAsMTAwLDMsMCwxMjQsMCwwLDk1LDAsMCwxMDAsMiwwLDgzLDQwLAorICAgIDQsMCwwLDAsMTE3LDMxLDAsMCwwLDczLDExMCwxMTgsOTcsMTA4LDEwNSwxMDAsCisgICAgOTcsMTE2LDEwMSwzMiwxMTYsMTA0LDEwMSwzMiwxMDAsMTA1LDExNCwxMDEsOTksMTE2LDExMSwxMTQsCisgICAgMTIxLDMyLDEwOSwxMTYsMTA1LDEwOSwxMDEsNDYsMTA1LDEsMCwwLDAsNzgsMTA1LDI1NSwKKyAgICAyNTUsMjU1LDI1NSw0MCwxLDAsMCwwLDExNywxMSwwLDAsMCw5NSwxMTIsOTcsCisgICAgMTE2LDEwNCw5NSwxMDksMTE2LDEwNSwxMDksMTAxLDQwLDEsMCwwLDAsMTE3LDQsMCwKKyAgICAwLDAsMTE1LDEwMSwxMDgsMTAyLDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwKKyAgICAxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsCisgICAgMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywKKyAgICAxMTIsNjIsMTE3LDE3LDAsMCwwLDEwNSwxMTAsMTE4LDk3LDEwOCwxMDUsMTAwLDk3LDExNiwKKyAgICAxMDEsOTUsOTksOTcsOTksMTA0LDEwMSwxMTUsNzMsNCwwLDAsMTE1LDIsMCwwLAorICAgIDAsMCwyLDExNywyOCwwLDAsMCw3MCwxMDUsMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwKKyAgICAxMDEsMTE0LDQ2LDEwNSwxMTAsMTE4LDk3LDEwOCwxMDUsMTAwLDk3LDExNiwxMDEsOTUsOTksOTcsCisgICAgOTksMTA0LDEwMSwxMTUsOTksMiwwLDAsMCwwLDAsMCwwLDUsMCwwLAorICAgIDAsNSwwLDAsMCw2NywwLDAsMCwxMTUsMTExLDAsMCwwLDEyNCwwLAorICAgIDAsMTA2LDAsMCwxMjQsMSwwLDEzMSwxLDAsOTIsMiwwLDEyNSwyLDAsCisgICAgMTI1LDMsMCwxMTYsMSwwLDEyNCwzLDAsMTMxLDEsMCwxMDAsNCwwLDEwNywKKyAgICA2LDAsMTE1LDQ1LDAsMTE2LDIsMCwxMzAsMSwwLDEyNCwyLDAsMTAwLDUsCisgICAgMCwxMDcsOCwwLDExNCwxMDcsMCwxMTYsMSwwLDEyNCwzLDAsMTMxLDEsMCwKKyAgICAxMTQsMTA3LDAsMTAwLDMsMCwxMjUsNCwwLDExNiw0LDAsMTA2LDUsMCwxMjQsCisgICAgNCwwLDEwNiw2LDAsMTI0LDMsMCwxMDAsMSwwLDI1LDEzMSwxLDAsMTE2LAorICAgIDcsMCwxMzEsMiwwLDEsMTEwLDAsMCwxMjQsMiwwLDgzLDQwLDYsMCwKKyAgICAwLDAsMTE3LDQ2LDAsMCwwLDg0LDExNCwxMjEsMzIsMTE2LDExMSwzMiwxMDIsMTA1LAorICAgIDExMCwxMDAsMzIsOTcsMzIsMTA4LDExMSw5NywxMDAsMTAxLDExNCwzMiwxMDIsMTExLDExNCwzMiwKKyAgICAxMTYsMTA0LDEwMSwzMiwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSwxMDEsMTAwLDMyLDEwOSwxMTEsCisgICAgMTAwLDExNywxMDgsMTAxLDQ2LDEwNSwwLDAsMCwwLDEwNSwxLDAsMCwwLDExNywKKyAgICA0NCwwLDAsMCw3OCwxMTEsMTE2LDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwNSwxMTAsCisgICAgMTAzLDMyLDEwMCwxMDUsMTE0LDEwMSw5OSwxMTYsMTExLDExNCwxMjEsMzIsMTIzLDEyNSw1OCwzMiwKKyAgICAxMDksMTA1LDExNSwxMTUsMTA1LDExMCwxMDMsMzIsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LAorICAgIDQwLDIsMCwwLDAsMTA1LDAsMCwwLDAsMTA1LDEsMCwwLDAsNzgsCisgICAgNDAsOCwwLDAsMCwxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOCwKKyAgICAxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDMsMCwwLDAsMTA4LDEwMSwxMTAsMTE3LDE0LDAsCisgICAgMCwwLDY1LDExNSwxMTUsMTAxLDExNCwxMTYsMTA1LDExMSwxMTAsNjksMTE0LDExNCwxMTEsMTE0LAorICAgIDExNyw0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNyw5LDAsMCwwLDk1LDExOSwKKyAgICA5NywxMTQsMTEwLDEwNSwxMTAsMTAzLDExNSwxMTcsNCwwLDAsMCwxMTksOTcsMTE0LDExMCwKKyAgICAxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LDExNywxMywwLDAsMCwKKyAgICA3MywxMDksMTEyLDExMSwxMTQsMTE2LDg3LDk3LDExNCwxMTAsMTA1LDExMCwxMDMsNDAsNSwwLAorICAgIDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsMTE3LDgsMCwwLDAsCisgICAgMTAyLDExNywxMDgsMTA4LDExMCw5NywxMDksMTAxLDExNyw2LDAsMCwwLDEwOCwxMTEsOTcsCisgICAgMTAwLDEwMSwxMTQsMTE3LDgsMCwwLDAsMTEyLDExMSwxMTQsMTE2LDEwNSwxMTEsMTEwLDExNSwKKyAgICAxMTcsMywwLDAsMCwxMDksMTE1LDEwMyw0MCwwLDAsMCwwLDQwLDAsMCwKKyAgICAwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwKKyAgICAxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwKKyAgICAxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsMCwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwKKyAgICAxMDAsMTE3LDEwOCwxMDEsNzcsNCwwLDAsMTE1LDEyLDAsMCwwLDAsNSwyMSwKKyAgICAxLDI0LDEsMjQsMSw2LDEsMzIsMSwxMTcsMjIsMCwwLDAsNzAsMTA1LAorICAgIDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwxMDIsMTA1LDExMCwxMDAsOTUsMTA5LDExMSwKKyAgICAxMDAsMTE3LDEwOCwxMDEsOTksMiwwLDAsMCwwLDAsMCwwLDEyLDAsMCwKKyAgICAwLDEzLDAsMCwwLDY3LDAsMCwwLDExNSwxNzIsMSwwLDAsMTAwLDUsCisgICAgMCwxMjUsMiwwLDEyNCwxLDAsMTA2LDEsMCwxMDAsMSwwLDEzMSwxLDAsCisgICAgMTAwLDIsMCwyNSwxMjUsMywwLDEyMSwyNSwwLDExNiwyLDAsMTA2LDMsMCwKKyAgICAxMjQsMCwwLDEwNiw0LDAsMTMxLDEsMCwxMDYsNSwwLDEyNSw0LDAsODcsCisgICAgMTEwLDI0LDAsNCwxMTYsNiwwLDEwNywxMCwwLDExNCw3NiwwLDEsMSwxLAorICAgIDEwMCw2LDAsMTI1LDQsMCw4OSwxMTAsMSwwLDg4LDEyNCw0LDAsMTI0LDAsCisgICAgMCwxMDYsNywwLDEwNywzLDAsMTE0LDExNCwwLDEyNCwwLDAsMTA2LDgsMCwKKyAgICAxMzEsMCwwLDEsMTI0LDQsMCwxMjQsMCwwLDk1LDcsMCwxMTAsMCwwLAorICAgIDExNiw5LDAsMTMxLDAsMCwxMTQsMTQ3LDAsMTI0LDAsMCwxMDYsMTAsMCwxMjUsCisgICAgNSwwLDEyNCwzLDAsMTA2LDExLDAsMTMxLDAsMCwxMjUsNiwwLDExMCwxNSwKKyAgICAwLDEyNCwwLDAsMTA2LDEyLDAsMTI1LDUsMCwxMjQsMywwLDEyNSw2LDAsCisgICAgMTI0LDYsMCwxMjQsNSwwLDEwNyw2LDAsMTE0LDQ1LDEsMTE2LDEzLDAsMTI0LAorICAgIDAsMCwxMDYsNCwwLDEyNCwzLDAsMTMxLDIsMCwxMjUsNywwLDExNiwxNCwKKyAgICAwLDEyNCw3LDAsMTMxLDEsMCwxMTQsNDUsMSwxMjAsOTEsMCwxMjQsMCwwLAorICAgIDEwNiwxNSwwLDY4LDkzLDcxLDAsOTIsMiwwLDEyNSw4LDAsMTI1LDksMCwKKyAgICAxMDAsNCwwLDEyNCw4LDAsMjMsMTI1LDEwLDAsMTE2LDEzLDAsMTI0LDcsMCwKKyAgICAxMjQsMTAsMCwxMzEsMiwwLDEyNSwxMSwwLDExNiwxNiwwLDEyNCwxMSwwLDEzMSwKKyAgICAxLDAsMTE0LDIxNCwwLDEyNCw5LDAsMTI0LDEsMCwxMjQsMTEsMCwxMzEsMiwKKyAgICAwLDEyNCw3LDAsMTAzLDEsMCwxMDIsMiwwLDgzLDExMywyMTQsMCw4NywxMDAsCisgICAgNywwLDEyNSwyLDAsMTEzLDQ1LDEsMTEwLDAsMCwxMjAsOTUsMCwxMjQsMCwKKyAgICAwLDEwNiwxOCwwLDY4LDkzLDg0LDAsOTIsMiwwLDEyNSw4LDAsMTI1LDksCisgICAgMCwxMjQsNiwwLDEyNCw4LDAsMjMsMTI0LDUsMCwxMDcsNiwwLDExNCw1NSwKKyAgICAxLDExNiwxMywwLDEyNCwwLDAsMTA2LDQsMCwxMjQsMywwLDEyNCw4LDAsCisgICAgMjMsMTMxLDIsMCwxMjUsMTEsMCwxMTYsMTYsMCwxMjQsMTEsMCwxMzEsMSwwLAorICAgIDExNCwxMzksMSwxMjQsOSwwLDEyNCwxLDAsMTI0LDExLDAsMTMxLDIsMCwxMDMsCisgICAgMCwwLDEwMiwyLDAsODMsMTEzLDU1LDEsMTEzLDU1LDEsODcsMTI0LDIsMCwKKyAgICAxMTQsMTYyLDEsMTAwLDgsMCwxMjQsNywwLDEwMywxLDAsMTAyLDIsMCw4MywKKyAgICAxMDAsOCwwLDEwMywwLDAsMTAyLDIsMCw4Myw0MCw5LDAsMCwwLDExNywKKyAgICAxMjUsMCwwLDAsODQsMTE0LDEyMSwzMiwxMTYsMTExLDMyLDEwMiwxMDUsMTEwLDEwMCwzMiwKKyAgICA5NywzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDExNiwxMDQsMTAxLAorICAgIDMyLDExNSwxMTIsMTAxLDk5LDEwNSwxMDIsMTA1LDEwMSwxMDAsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsNDQsMzIsMTExLDExNCwzMiwxMTYsMTA0LDEwMSwzMiwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLAorICAgIDk3LDk5LDEwMSwxMCwzMiwzMiwzMiwzMiwzMiwzMiwzMiwzMiwxMTIsOTcsOTksMTA3LAorICAgIDk3LDEwMywxMDEsMzIsMTEyLDExMSwxMTQsMTE2LDEwNSwxMTEsMTEwLDExNSw0NiwzMiw4MiwxMDEsCisgICAgMTE2LDExNywxMTQsMTEwLDExNSwzMiw0MCwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDQ0LDMyLDEwOCwKKyAgICAxMDUsMTE1LDExNiw0NSwxMTEsMTAyLDQ1LDExMiwxMTEsMTE0LDExNiwxMDUsMTExLDExMCwxMTUsNDEsCisgICAgNDYsMTE3LDEsMCwwLDAsNDYsMTA1LDIsMCwwLDAsMTA1LDEsMCwwLAorICAgIDAsMTE3LDgsMCwwLDAsOTUsOTUsMTA1LDExMCwxMDUsMTE2LDk1LDk1LDcwLDEwNSwKKyAgICAyNTUsMjU1LDI1NSwyNTUsODQsNzgsNDAsMjAsMCwwLDAsMTE3LDUsMCwwLDAsCisgICAgNzAsOTcsMTA4LDExNSwxMDEsMTE3LDEwLDAsMCwwLDExNCwxMTIsOTcsMTE0LDExNiwxMDUsCisgICAgMTE2LDEwNSwxMTEsMTEwLDExNywzLDAsMCwwLDk1LDExMSwxMTUsMTE3LDQsMCwwLAorICAgIDAsMTE1LDExNiw5NywxMTYsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDgsCisgICAgMCwwLDAsMTE1LDExNiw5NSwxMDksMTE2LDEwNSwxMDksMTAxLDExNyw3LDAsMCwwLAorICAgIDc5LDgzLDY5LDExNCwxMTQsMTExLDExNCwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LDExNiwKKyAgICAxMDQsOTUsMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsMTEsMCwwLDAsOTUsMTAyLDEwNSwxMDgsCisgICAgMTA4LDk1LDk5LDk3LDk5LDEwNCwxMDEsMTE3LDExLDAsMCwwLDk1LDExNCwxMDEsMTA4LAorICAgIDk3LDEyMCw5NSw5OSw5NywxMTUsMTAxLDExNywxOSwwLDAsMCw5NSwxMTQsMTAxLDEwOCwKKyAgICA5NywxMjAsMTAxLDEwMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSw5OSw5Nyw5OSwxMDQsMTAxLDExNywKKyAgICA1LDAsMCwwLDEwOCwxMTEsMTE5LDEwMSwxMTQsMTE3LDExLDAsMCwwLDk1LDExMiwKKyAgICA5NywxMTYsMTA0LDk1LDk5LDk3LDk5LDEwNCwxMDEsMTE3LDEwLDAsMCwwLDk1LDExMiwKKyAgICA5NywxMTYsMTA0LDk1LDEwNiwxMTEsMTA1LDExMCwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LAorICAgIDExNiwxMDQsOTUsMTA1LDExNSwxMDAsMTA1LDExNCwxMTcsOCwwLDAsMCwxMTIsOTcsOTksCisgICAgMTA3LDk3LDEwMywxMDEsMTE1LDExNywxMiwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwKKyAgICAxMDUsMTE1LDEwMiwxMDUsMTA4LDEwMSwxMTcsNCwwLDAsMCw4NCwxMTQsMTE3LDEwMSwxMTcsCisgICAgNywwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMTE3LDQsMCwwLDAsCisgICAgNzgsMTExLDExMCwxMDEsNDAsMTIsMCwwLDAsMTE3LDQsMCwwLDAsMTE1LDEwMSwKKyAgICAxMDgsMTAyLDExNyw4LDAsMCwwLDEwMiwxMTcsMTA4LDEwOCwxMTAsOTcsMTA5LDEwMSwxMTcsCisgICAgMTIsMCwwLDAsMTA1LDExNSw5NSwxMTAsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSwKKyAgICAxMTcsMTEsMCwwLDAsMTE2LDk3LDEwNSwxMDgsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgMTE3LDUsMCwwLDAsMTA5LDExNiwxMDUsMTA5LDEwMSwxMTcsNSwwLDAsMCw5OSwKKyAgICA5Nyw5OSwxMDQsMTAxLDExNywxMiwwLDAsMCw5OSw5Nyw5OSwxMDQsMTAxLDk1LDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDExNyw5LDAsMCwwLDk4LDk3LDExNSwxMDEsOTUsMTEyLAorICAgIDk3LDExNiwxMDQsMTE3LDYsMCwwLDAsMTE1LDExNywxMDIsMTAyLDEwNSwxMjAsMTE3LDYsCisgICAgMCwwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTMsMCwwLDAsMTA1LDExMCwKKyAgICAxMDUsMTE2LDk1LDEwMiwxMDUsMTA4LDEwMSwxMTAsOTcsMTA5LDEwMSwxMTcsOSwwLDAsMCwKKyAgICAxMDIsMTE3LDEwOCwxMDgsOTUsMTEyLDk3LDExNiwxMDQsNDAsMCwwLDAsMCw0MCwwLAorICAgIDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwKKyAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwKKyAgICAxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOCwKKyAgICAxMTEsOTcsMTAwLDEwMSwxMTQsODksNCwwLDAsMTE1LDYyLDAsMCwwLDAsMywKKyAgICA2LDEsMTksMSwzLDEsMjUsMSwxMywxLDExLDEsMTUsMSwxMCwxLAorICAgIDEyLDIsOSwxLDksMSwxNSwyLDksMSw2LDIsMTIsMSwxOCwxLAorICAgIDEyLDEsMjIsMSwxMCwxLDE1LDEsMTIsMSwyNiw0LDEyLDIsMjIsMSwKKyAgICAxNiwxLDIyLDEsMTIsMSwyNiwxLDYsMSwxMywxLDExNywyMiwwLDAsCisgICAgMCw3MCwxMDUsMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDEwMiwxMDUsMTEwLDEwMCwKKyAgICA5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk5LDEsMCwwLDAsMCwwLDAsMCwKKyAgICA5LDAsMCwwLDQsMCwwLDAsNjcsMCwwLDAsMTE1LDIyNCwwLDAsCisgICAgMCwxMjQsMCwwLDEwNiwwLDAsMTI1LDEsMCwxMTYsMSwwLDEwNiwyLDAsCisgICAgMTI0LDEsMCwxMzEsMSwwLDEyNSwyLDAsMTE2LDMsMCwxMDYsNCwwLDEwNiwKKyAgICA1LDAsMTAwLDEsMCwxMzEsMSwwLDExNSw2MCwwLDExNiw2LDAsMTI0LDIsCisgICAgMCwxMzEsMSwwLDEyNCwwLDAsOTUsNywwLDExMCwxMTEsMCwxMTYsNiwwLAorICAgIDEzMSwwLDAsMTI1LDMsMCwxMjAsOTAsMCwxMjQsMiwwLDY4LDkzLDgyLDAsCisgICAgMTI1LDQsMCwxMjQsNCwwLDEwNiw4LDAsMTAwLDIsMCwxMzEsMSwwLDkyLAorICAgIDMsMCwxMjUsNSwwLDEyNSw2LDAsMTI1LDcsMCwxMjQsNiwwLDExNCwxMzksCisgICAgMCwxMDAsMywwLDEwNiw5LDAsMTI0LDUsMCwxMjQsNywwLDEwNiwxMCwwLAorICAgIDEzMSwwLDAsMTMxLDIsMCwxMjUsOCwwLDExMCw2LDAsMTI0LDUsMCwxMjUsCisgICAgOCwwLDEyNCwzLDAsMTA2LDExLDAsMTI0LDgsMCwxMzEsMSwwLDEsMTEzLAorICAgIDc2LDAsODcsMTI0LDMsMCwxMjQsMCwwLDk1LDcsMCwxMTYsMywwLDEwNiwKKyAgICA0LDAsMTA2LDUsMCwxMTYsMTIsMCwxMzEsMSwwLDExNCwyMjAsMCwxMTYsNiwKKyAgICAwLDEwMCw0LDAsMTAwLDUsMCwxMzIsMCwwLDEyNCwyLDAsNjgsMTMxLDEsCisgICAgMCwxMzEsMSwwLDEyNCwwLDAsOTUsMTMsMCwxMTAsMCwwLDEwMCw2LDAsCisgICAgODMsNDAsNywwLDAsMCwxMTcsNjgsMCwwLDAsNzAsMTA1LDEwOCwxMDgsMzIsCisgICAgMTE2LDEwNCwxMDEsMzIsOTksOTcsOTksMTA0LDEwMSwzMiwxMTEsMTAyLDMyLDExMiwxMTEsMTE2LAorICAgIDEwMSwxMTAsMTE2LDEwNSw5NywxMDgsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLDk3LAorICAgIDExMCwxMDAsMzIsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDExNSwzMiwxMDIsMTExLDExNCwzMiwKKyAgICAxMTYsMTA0LDEwNSwxMTUsMzIsMTAwLDEwNSwxMTQsMTAxLDk5LDExNiwxMTEsMTE0LDEyMSw0NiwxMTcsCisgICAgMywwLDAsMCwxMTksMTA1LDExMCwxMTcsMSwwLDAsMCw0NiwxMTcsNSwwLAorICAgIDAsMCwxMjMsMTI1LDQ2LDEyMywxMjUsOTksMSwwLDAsMCwwLDAsMCwwLAorICAgIDIsMCwwLDAsMiwwLDAsMCwxMTUsMCwwLDAsMTE1LDI3LDAsMCwKKyAgICAwLDEyNCwwLDAsOTMsMTcsMCwxMjUsMSwwLDEyNCwxLDAsMTA2LDAsMCwKKyAgICAxMzEsMCwwLDg2LDEsMTEzLDMsMCwxMDAsMCwwLDgzLDQwLDEsMCwwLAorICAgIDAsNzgsNDAsMSwwLDAsMCwxMTcsNSwwLDAsMCwxMDgsMTExLDExOSwxMDEsCisgICAgMTE0LDQwLDIsMCwwLDAsMTE3LDIsMCwwLDAsNDYsNDgsMTE3LDIsMCwKKyAgICAwLDAsMTAyLDExMCw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LAorICAgIDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLAorICAgIDExNyw5LDAsMCwwLDYwLDEwMywxMDEsMTEwLDEwMSwxMjAsMTEyLDExNCw2MiwxNTUsNCwKKyAgICAwLDAsMTE1LDIsMCwwLDAsNiwwLDExNyw0MSwwLDAsMCw3MCwxMDUsCisgICAgMTA4LDEwMSw3MCwxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDk1LDEwMiwxMDUsMTA4LDEwOCw5NSw5OSwKKyAgICA5Nyw5OSwxMDQsMTAxLDQ2LDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2Miw0Niw2MCwxMDMsCisgICAgMTAxLDExMCwxMDEsMTIwLDExMiwxMTQsNjIsNzgsNDAsMTQsMCwwLDAsMTE3LDQsMCwKKyAgICAwLDAsMTEyLDk3LDExNiwxMDQsMTE3LDMsMCwwLDAsOTUsMTExLDExNSwxMTcsNywKKyAgICAwLDAsMCwxMDgsMTA1LDExNSwxMTYsMTAwLDEwNSwxMTQsMTE3LDMsMCwwLDAsMTE1LAorICAgIDEyMSwxMTUsMTE3LDgsMCwwLDAsMTEyLDEwOCw5NywxMTYsMTAyLDExMSwxMTQsMTA5LDExNywKKyAgICAxMCwwLDAsMCwxMTUsMTE2LDk3LDExNCwxMTYsMTE1LDExOSwxMDUsMTE2LDEwNCwxMTcsMywKKyAgICAwLDAsMCwxMTUsMTAxLDExNiwxMTcsMTEsMCwwLDAsOTUsMTEyLDk3LDExNiwxMDQsCisgICAgOTUsOTksOTcsOTksMTA0LDEwMSwxMTcsOSwwLDAsMCwxMTIsOTcsMTE0LDExNiwxMDUsCisgICAgMTE2LDEwNSwxMTEsMTEwLDExNyw2LDAsMCwwLDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsMTE3LAorICAgIDUsMCwwLDAsMTA4LDExMSwxMTksMTAxLDExNCwxMTcsMywwLDAsMCw5NywxMDAsCisgICAgMTAwLDExNywyNywwLDAsMCw5NSw2Nyw2NSw4Myw2OSw5NSw3Myw3OCw4Myw2OSwKKyAgICA3OCw4Myw3Myw4NCw3Myw4Niw2OSw5NSw4MCw3Niw2NSw4NCw3MCw3OSw4Miw3NywKKyAgICA4MywxMTcsMTksMCwwLDAsOTUsMTE0LDEwMSwxMDgsOTcsMTIwLDEwMSwxMDAsOTUsMTEyLAorICAgIDk3LDExNiwxMDQsOTUsOTksOTcsOTksMTA0LDEwMSw0MCw5LDAsMCwwLDExNyw0LAorICAgIDAsMCwwLDExNSwxMDEsMTA4LDEwMiwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LDEwNCwKKyAgICAxMTcsOCwwLDAsMCw5OSwxMTEsMTEwLDExNiwxMDEsMTEwLDExNiwxMTUsMTE3LDIxLDAsCisgICAgMCwwLDEwOCwxMTEsMTE5LDEwMSwxMTQsOTUsMTE1LDExNywxMDIsMTAyLDEwNSwxMjAsOTUsOTksCisgICAgMTExLDExMCwxMTYsMTAxLDExMCwxMTYsMTE1LDExNyw0LDAsMCwwLDEwNSwxMTYsMTAxLDEwOSwKKyAgICAxMTcsNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTcsMywwLDAsMCwxMDAsMTExLAorICAgIDExNiwxMTcsNiwwLDAsMCwxMTUsMTE3LDEwMiwxMDIsMTA1LDEyMCwxMTcsOCwwLDAsCisgICAgMCwxMTAsMTAxLDExOSw5NSwxMTAsOTcsMTA5LDEwMSw0MCwwLDAsMCwwLDQwLDAsCisgICAgMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLAorICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LAorICAgIDExNiwxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsMCw5NSwxMDIsMTA1LDEwOCwxMDgsOTUsCisgICAgOTksOTcsOTksMTA0LDEwMSwxMzEsNCwwLDAsMTE1LDI4LDAsMCwwLDAsMiwKKyAgICA5LDEsMTUsMywxOCwxLDE4LDcsOSwxLDEzLDEsMjQsMSw2LDEsCisgICAgMjcsMiw2LDEsMTcsMSw5LDEsMTgsMSwxMTcsMjIsMCwwLDAsNzAsCisgICAgMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0Niw5NSwxMDIsMTA1LDEwOCwxMDgsOTUsCisgICAgOTksOTcsOTksMTA0LDEwMSw5OSwxLDAsMCwwLDAsMCwwLDAsMywwLAorICAgIDAsMCwzLDAsMCwwLDcsMCwwLDAsMTE1LDI1LDAsMCwwLDEzNSwKKyAgICAwLDAsMTM1LDEsMCwxMDIsMiwwLDEwMCwxLDAsMTAwLDIsMCwxMzQsMCwKKyAgICAwLDEyNSwyLDAsMTI0LDIsMCw4Myw0MCwzLDAsMCwwLDExNywyMCwxLAorICAgIDAsMCw2NSwzMiw5OSwxMDgsOTcsMTE1LDExNSwzMiwxMDksMTAxLDExNiwxMDQsMTExLDEwMCwKKyAgICAzMiwxMTksMTA0LDEwNSw5OSwxMDQsMzIsMTE0LDEwMSwxMTYsMTE3LDExNCwxMTAsMTE1LDMyLDk3LAorICAgIDMyLDk5LDEwOCwxMTEsMTE1LDExNywxMTQsMTAxLDMyLDExNiwxMTEsMzIsMTE3LDExNSwxMDEsMzIsCisgICAgMTExLDExMCwzMiwxMTUsMTIxLDExNSw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsMTExLDExMSwxMDcsCisgICAgMTAsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMTE5LDEwNCwxMDUsOTksMTA0LDMyLDExOSwKKyAgICAxMDUsMTA4LDEwOCwzMiwxMTQsMTAxLDExNiwxMTcsMTE0LDExMCwzMiw5NywxMTAsMzIsMTA1LDExMCwKKyAgICAxMTUsMTE2LDk3LDExMCw5OSwxMDEsMzIsMTE3LDExNSwxMDUsMTEwLDEwMywzMiwxMTYsMTA0LDEwMSwKKyAgICAzMiwxMTUsMTEyLDEwMSw5OSwxMDUsMTAyLDEwNSwxMDEsMTAwLDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwKKyAgICAxMTQsMTE1LDMyLDk3LDExMCwxMDAsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLDk3LDExNiwxMDQsMTAsCisgICAgMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsOTksOTcsMTA4LDEwOCwxMDEsMTAwLDMyLDExMSwKKyAgICAxMTAsMzIsMTE2LDEwNCwxMDEsMzIsOTksMTA4LDExMSwxMTUsMTE3LDExNCwxMDEsNDYsMTAsMTAsCisgICAgMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsNzMsMTAyLDMyLDExNiwxMDQsMTAxLDMyLDExMiwKKyAgICA5NywxMTYsMTA0LDMyLDk5LDk3LDEwOCwxMDgsMTAxLDEwMCwzMiwxMTEsMTEwLDMyLDExNiwxMDQsCisgICAgMTAxLDMyLDk5LDEwOCwxMTEsMTE1LDExNywxMTQsMTAxLDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTYsCisgICAgMzIsOTcsMzIsMTAwLDEwNSwxMTQsMTAxLDk5LDExNiwxMTEsMTE0LDEyMSw0NCwzMiw3MywxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCwzMiwxMDUsMTE1LDEwLDMyLDMyLDMyLAorICAgIDMyLDMyLDMyLDMyLDMyLDExNCw5NywxMDUsMTE1LDEwMSwxMDAsNDYsMTAsMTAsMzIsMzIsCisgICAgMzIsMzIsMzIsMzIsMzIsMzIsOTksMSwwLDAsMCwwLDAsMCwwLDEsCisgICAgMCwwLDAsNCwwLDAsMCwxOSwwLDAsMCwxMTUsNDYsMCwwLDAsCisgICAgMTE2LDAsMCwxMjQsMCwwLDEzMSwxLDAsMTE1LDMzLDAsMTE2LDEsMCwxMDAsCisgICAgMSwwLDEwMCwyLDAsMTI0LDAsMCwxMzEsMSwxLDEzMCwxLDAsMTEwLDAsCisgICAgMCwxMzYsMCwwLDEyNCwwLDAsMTM2LDEsMCwxNDAsMSwwLDgzLDQwLDMsCisgICAgMCwwLDAsMTE3LDQ1LDAsMCwwLDgwLDk3LDExNiwxMDQsMzIsMTA0LDExMSwxMTEsCisgICAgMTA3LDMyLDEwMiwxMTEsMTE0LDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsCisgICAgMTA5LDk3LDk5LDEwNCwxMDUsMTEwLDEwMSwxMTQsMTIxLDQ2LDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwKKyAgICAxMTAsMTAwLDEwMSwxMTQsNDYsMTE3LDMwLDAsMCwwLDExMSwxMTAsMTA4LDEyMSwzMiwxMDAsCisgICAgMTA1LDExNCwxMDEsOTksMTE2LDExMSwxMTQsMTA1LDEwMSwxMTUsMzIsOTcsMTE0LDEwMSwzMiwxMTUsCisgICAgMTE3LDExMiwxMTIsMTExLDExNCwxMTYsMTAxLDEwMCwxMTcsNCwwLDAsMCwxMTIsOTcsMTE2LAorICAgIDEwNCw0MCwyLDAsMCwwLDExNywxMSwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCwKKyAgICA5NSwxMDUsMTE1LDEwMCwxMDUsMTE0LDExNywxMSwwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDY5LDExNCwxMTQsMTExLDExNCw0MCwxLDAsMCwwLDExNyw0LDAsMCwwLAorICAgIDExMiw5NywxMTYsMTA0LDQwLDIsMCwwLDAsMTE3LDMsMCwwLDAsOTksMTA4LAorICAgIDExNSwxMTcsMTQsMCwwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSwxMDAsMTAxLDExNiwKKyAgICA5NywxMDUsMTA4LDExNSw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsCisgICAgMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LAorICAgIDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsMjQsMCwwLDAsCisgICAgMTEyLDk3LDExNiwxMDQsOTUsMTA0LDExMSwxMTEsMTA3LDk1LDEwMiwxMTEsMTE0LDk1LDcwLDEwNSwKKyAgICAxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsMTY3LDQsMCwwLDExNSw2LDAsMCwKKyAgICAwLDAsMiwxMiwxLDIxLDEsMTE3LDU0LDAsMCwwLDcwLDEwNSwxMDgsMTAxLAorICAgIDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDYsMTEyLDk3LDExNiwxMDQsOTUsMTA0LDExMSwxMTEsMTA3LAorICAgIDQ2LDYwLDEwOCwxMTEsOTksOTcsMTA4LDExNSw2Miw0NiwxMTIsOTcsMTE2LDEwNCw5NSwxMDQsCisgICAgMTExLDExMSwxMDcsOTUsMTAyLDExMSwxMTQsOTUsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsCisgICAgMTAxLDExNCw0MCwwLDAsMCwwLDQwLDMsMCwwLDAsMTE3LDMsMCwwLAorICAgIDAsOTksMTA4LDExNSwxMTcsMTQsMCwwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSwKKyAgICAxMDAsMTAxLDExNiw5NywxMDUsMTA4LDExNSwxMTcsMjQsMCwwLDAsMTEyLDk3LDExNiwxMDQsCisgICAgOTUsMTA0LDExMSwxMTEsMTA3LDk1LDEwMiwxMTEsMTE0LDk1LDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwKKyAgICAxMTAsMTAwLDEwMSwxMTQsNDAsMCwwLDAsMCw0MCwyLDAsMCwwLDExNywzLAorICAgIDAsMCwwLDk5LDEwOCwxMTUsMTE3LDE0LDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwKKyAgICAxMTQsOTUsMTAwLDEwMSwxMTYsOTcsMTA1LDEwOCwxMTUsMTE3LDI5LDAsMCwwLDYwLDEwMiwKKyAgICAxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsCisgICAgOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNyw5LDAsMCwwLAorICAgIDExMiw5NywxMTYsMTA0LDk1LDEwNCwxMTEsMTExLDEwNywxNTcsNCwwLDAsMTE1LDQsMCwKKyAgICAwLDAsMCwxMCwyMSw2LDExNywyMCwwLDAsMCw3MCwxMDUsMTA4LDEwMSw3MCwKKyAgICAxMDUsMTEwLDEwMCwxMDEsMTE0LDQ2LDExMiw5NywxMTYsMTA0LDk1LDEwNCwxMTEsMTExLDEwNyw5OSwKKyAgICAxLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwyLDAsMCwwLAorICAgIDY3LDAsMCwwLDExNSwxNCwwLDAsMCwxMDAsMSwwLDEyNCwwLDAsMTA2LAorICAgIDAsMCwxMDIsMSwwLDIyLDgzLDQwLDIsMCwwLDAsNzgsMTE3LDE0LDAsCisgICAgMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsNDAsMzcsMTE0LDQxLAorICAgIDQwLDEsMCwwLDAsMTE3LDQsMCwwLDAsMTEyLDk3LDExNiwxMDQsNDAsMSwKKyAgICAwLDAsMCwxMTcsNCwwLDAsMCwxMTUsMTAxLDEwOCwxMDIsNDAsMCwwLDAsCisgICAgMCw0MCwwLDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsCisgICAgMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwKKyAgICAxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwxMTcsOCwwLDAsMCw5NSw5NSwxMTQsCisgICAgMTAxLDExMiwxMTQsOTUsOTUsMTc1LDQsMCwwLDExNSwyLDAsMCwwLDAsMSwKKyAgICAxMTcsMTksMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCw0NiwKKyAgICA5NSw5NSwxMTQsMTAxLDExMiwxMTQsOTUsOTUsNzgsNDAsMTIsMCwwLDAsMTE3LDgsCisgICAgMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLAorICAgIDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSwKKyAgICA5NSwxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCwKKyAgICA5NSw5NSwxMDAsMTExLDk5LDk1LDk1LDExNyw4LDAsMCwwLDk1LDk1LDEwNSwxMTAsCisgICAgMTA1LDExNiw5NSw5NSwxMTcsMTcsMCwwLDAsMTA1LDExMCwxMTgsOTcsMTA4LDEwNSwxMDAsCisgICAgOTcsMTE2LDEwMSw5NSw5OSw5Nyw5OSwxMDQsMTAxLDExNSwxMTcsMTEsMCwwLDAsMTAyLAorICAgIDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywxMSwwLDAsMCwxMDIsCisgICAgMTA1LDExMCwxMDAsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTEsMCwwLDAsOTUsCisgICAgMTAyLDEwNSwxMDgsMTA4LDk1LDk5LDk3LDk5LDEwNCwxMDEsMTE3LDExLDAsMCwwLDk5LAorICAgIDEwOCw5NywxMTUsMTE1LDEwOSwxMDEsMTE2LDEwNCwxMTEsMTAwLDExNyw5LDAsMCwwLDExMiwKKyAgICA5NywxMTYsMTA0LDk1LDEwNCwxMTEsMTExLDEwNywxMTcsOCwwLDAsMCw5NSw5NSwxMTQsCisgICAgMTAxLDExMiwxMTQsOTUsOTUsNDAsMSwwLDAsMCwxMTcsMTAsMCwwLDAsOTUsCisgICAgOTUsMTA4LDExMSw5OSw5NywxMDgsMTE1LDk1LDk1LDQwLDAsMCwwLDAsNDAsMCwKKyAgICAwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsCisgICAgMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsCisgICAgMTE2LDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwKKyAgICAxMTAsMTAwLDEwMSwxMTQsNDYsNCwwLDAsMTE1LDE2LDAsMCwwLDE2LDcsNiwKKyAgICAyLDEyLDE4LDEyLDQsMTIsMTIsMTIsNDIsMTIsMjYsMTgsMTgsMTE3LDEwLDAsCisgICAgMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwxMTQsOTksMSwwLDAsCisgICAgMCwwLDAsMCwwLDEsMCwwLDAsMiwwLDAsMCw2NiwwLDAsCisgICAgMCwxMTUsNTAsMCwwLDAsMTI0LDAsMCw2OSwxMDEsMCwwLDkwLDEsMCwKKyAgICAxMDAsMCwwLDkwLDIsMCwxMDAsMSwwLDkwLDMsMCwxMDAsMiwwLDEwMCwKKyAgICAzLDAsMTMyLDAsMCw5MCw0LDAsMTAwLDQsMCwxMDAsNSwwLDEzMiwwLAorICAgIDAsOTAsNSwwLDEwMCw2LDAsODMsNDAsNywwLDAsMCwxMTcsMTgsMCwKKyAgICAwLDAsOTUsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw3NiwxMTEsOTksMTA3LDY3LDExMSwxMTAsCisgICAgMTE2LDEwMSwxMjAsMTE2LDExNywzNiwwLDAsMCw2NywxMTEsMTEwLDExNiwxMDEsMTIwLDExNiwKKyAgICAzMiwxMDksOTcsMTEwLDk3LDEwMywxMDEsMTE0LDMyLDEwMiwxMTEsMTE0LDMyLDExNiwxMDQsMTAxLAorICAgIDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLDEwOCwxMTEsOTksMTA3LDQ2LDk5LDEsMCwKKyAgICAwLDAsMCwwLDAsMCwxLDAsMCwwLDEsMCwwLDAsNjcsMCwKKyAgICAwLDAsMTE1LDE0LDAsMCwwLDExNiwwLDAsMTA2LDEsMCwxMzEsMCwwLAorICAgIDEsMTAwLDEsMCw4Myw0MCwyLDAsMCwwLDExNywyNCwwLDAsMCw2NSwKKyAgICA5OSwxMTMsMTE3LDEwNSwxMTQsMTAxLDMyLDExNiwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDMyLDEwOCwxMTEsOTksMTA3LDQ2LDc4LDQwLDIsMCwwLDAsMTE3LDQsMCwKKyAgICAwLDAsOTUsMTA1LDEwOSwxMTIsMTE3LDEyLDAsMCwwLDk3LDk5LDExMywxMTcsMTA1LAorICAgIDExNCwxMDEsOTUsMTA4LDExMSw5OSwxMDcsNDAsMSwwLDAsMCwxMTcsNCwwLDAsCisgICAgMCwxMTUsMTAxLDEwOCwxMDIsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywKKyAgICAyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsCisgICAgMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiwKKyAgICA2MiwxMTcsOSwwLDAsMCw5NSw5NSwxMDEsMTEwLDExNiwxMDEsMTE0LDk1LDk1LDE4NSwKKyAgICA0LDAsMCwxMTUsMiwwLDAsMCwwLDIsMTE3LDI4LDAsMCwwLDk1LAorICAgIDczLDEwOSwxMTIsMTExLDExNCwxMTYsNzYsMTExLDk5LDEwNyw2NywxMTEsMTEwLDExNiwxMDEsMTIwLAorICAgIDExNiw0Niw5NSw5NSwxMDEsMTEwLDExNiwxMDEsMTE0LDk1LDk1LDk5LDQsMCwwLDAsCisgICAgMCwwLDAsMCw0LDAsMCwwLDEsMCwwLDAsNjcsMCwwLDAsCisgICAgMTE1LDE0LDAsMCwwLDExNiwwLDAsMTA2LDEsMCwxMzEsMCwwLDEsMTAwLAorICAgIDEsMCw4Myw0MCwyLDAsMCwwLDExNyw2MCwwLDAsMCw4MiwxMDEsMTA4LAorICAgIDEwMSw5NywxMTUsMTAxLDMyLDExNiwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLAorICAgIDEwOCwxMTEsOTksMTA3LDMyLDExNCwxMDEsMTAzLDk3LDExNCwxMDAsMTA4LDEwMSwxMTUsMTE1LDMyLAorICAgIDExMSwxMDIsMzIsOTcsMTEwLDEyMSwzMiwxMTQsOTcsMTA1LDExNSwxMDEsMTAwLDMyLDEwMSwxMjAsCisgICAgOTksMTAxLDExMiwxMTYsMTA1LDExMSwxMTAsMTE1LDQ2LDc4LDQwLDIsMCwwLDAsMTE3LAorICAgIDQsMCwwLDAsOTUsMTA1LDEwOSwxMTIsMTE3LDEyLDAsMCwwLDExNCwxMDEsMTA4LAorICAgIDEwMSw5NywxMTUsMTAxLDk1LDEwOCwxMTEsOTksMTA3LDQwLDQsMCwwLDAsMTE3LDQsCisgICAgMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDExNyw4LDAsMCwwLDEwMSwxMjAsOTksOTUsCisgICAgMTE2LDEyMSwxMTIsMTAxLDExNyw5LDAsMCwwLDEwMSwxMjAsOTksOTUsMTE4LDk3LDEwOCwKKyAgICAxMTcsMTAxLDExNywxMywwLDAsMCwxMDEsMTIwLDk5LDk1LDExNiwxMTQsOTcsOTksMTAxLAorICAgIDk4LDk3LDk5LDEwNyw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsMTE3LDI5LAorICAgIDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLAorICAgIDExNyw4LDAsMCwwLDk1LDk1LDEwMSwxMjAsMTA1LDExNiw5NSw5NSwxODksNCwwLAorICAgIDAsMTE1LDIsMCwwLDAsMCwyLDExNywyNywwLDAsMCw5NSw3MywxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDc2LDExMSw5OSwxMDcsNjcsMTExLDExMCwxMTYsMTAxLDEyMCwxMTYsNDYsCisgICAgOTUsOTUsMTAxLDEyMCwxMDUsMTE2LDk1LDk1LDc4LDQwLDYsMCwwLDAsMTE3LDgsCisgICAgMCwwLDAsOTUsOTUsMTEwLDk3LDEwOSwxMDEsOTUsOTUsMTE3LDEwLDAsMCwwLAorICAgIDk1LDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDk1LDExNywxMiwwLDAsMCw5NSwKKyAgICA5NSwxMTMsMTE3LDk3LDEwOCwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsNywwLDAsMCwKKyAgICA5NSw5NSwxMDAsMTExLDk5LDk1LDk1LDExNyw5LDAsMCwwLDk1LDk1LDEwMSwxMTAsCisgICAgMTE2LDEwMSwxMTQsOTUsOTUsMTE3LDgsMCwwLDAsOTUsOTUsMTAxLDEyMCwxMDUsMTE2LAorICAgIDk1LDk1LDQwLDEsMCwwLDAsMTE3LDEwLDAsMCwwLDk1LDk1LDEwOCwxMTEsCisgICAgOTksOTcsMTA4LDExNSw5NSw5NSw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsCisgICAgMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLAorICAgIDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsCisgICAgMTEyLDYyLDExNywxOCwwLDAsMCw5NSw3MywxMDksMTEyLDExMSwxMTQsMTE2LDc2LDExMSwKKyAgICA5OSwxMDcsNjcsMTExLDExMCwxMTYsMTAxLDEyMCwxMTYsMTgxLDQsMCwwLDExNSw2LDAsCisgICAgMCwwLDE2LDIsNiwyLDEyLDQsMTE3LDE4LDAsMCwwLDk1LDczLDEwOSwKKyAgICAxMTIsMTExLDExNCwxMTYsNzYsMTExLDk5LDEwNyw2NywxMTEsMTEwLDExNiwxMDEsMTIwLDExNiw5OSwKKyAgICAzLDAsMCwwLDAsMCwwLDAsNSwwLDAsMCw0LDAsMCwwLAorICAgIDY3LDAsMCwwLDExNSw5MSwwLDAsMCwxMjQsMSwwLDEwNiwwLDAsMTAwLAorICAgIDEsMCwxMjQsMiwwLDEwMCwyLDAsMjQsMTMxLDIsMCwxMjUsMywwLDExNiwKKyAgICAxLDAsMTI0LDMsMCwxMzEsMSwwLDEyNCwyLDAsMTA3LDAsMCwxMTQsNTUsCisgICAgMCwxMTYsMiwwLDEwMCwzLDAsMTMxLDEsMCwxMzAsMSwwLDExMCwwLDAsCisgICAgMTI0LDMsMCwxMDAsNCwwLDI1LDEyNSw0LDAsMTI0LDAsMCwxMTQsODcsMCwKKyAgICAxMDAsNSwwLDEwNiwzLDAsMTI0LDQsMCwxMjQsMCwwLDEzMSwyLDAsODMsCisgICAgMTI0LDQsMCw4Myw0MCw2LDAsMCwwLDExNyw1MCwwLDAsMCw4MiwxMDEsCisgICAgMTE1LDExMSwxMDgsMTE4LDEwMSwzMiw5NywzMiwxMTQsMTAxLDEwOCw5NywxMTYsMTA1LDExOCwxMDEsCisgICAgMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMzIsMTE2LDExMSwzMiwKKyAgICA5NywxMTAsMzIsOTcsOTgsMTE1LDExMSwxMDgsMTE3LDExNiwxMDEsMzIsMTExLDExMCwxMDEsNDYsCisgICAgMTE3LDEsMCwwLDAsNDYsMTA1LDEsMCwwLDAsMTE3LDUwLDAsMCwwLAorICAgIDk3LDExNiwxMTYsMTAxLDEwOSwxMTIsMTE2LDEwMSwxMDAsMzIsMTE0LDEwMSwxMDgsOTcsMTE2LDEwNSwKKyAgICAxMTgsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLDk4LDEwMSwxMjEsMTExLDExMCwxMDAsCisgICAgMzIsMTE2LDExMSwxMTIsNDUsMTA4LDEwMSwxMTgsMTAxLDEwOCwzMiwxMTIsOTcsOTksMTA3LDk3LAorICAgIDEwMywxMDEsMTA1LDAsMCwwLDAsMTE3LDUsMCwwLDAsMTIzLDEyNSw0NiwxMjMsCisgICAgMTI1LDQwLDQsMCwwLDAsMTE3LDYsMCwwLDAsMTE0LDExNSwxMTIsMTA4LDEwNSwKKyAgICAxMTYsMTE3LDMsMCwwLDAsMTA4LDEwMSwxMTAsMTE3LDEwLDAsMCwwLDg2LDk3LAorICAgIDEwOCwxMTcsMTAxLDY5LDExNCwxMTQsMTExLDExNCwxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwKKyAgICAxMDksOTcsMTE2LDQwLDUsMCwwLDAsMTE3LDQsMCwwLDAsMTEwLDk3LDEwOSwKKyAgICAxMDEsMTE3LDcsMCwwLDAsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDExNyw1LDAsCisgICAgMCwwLDEwOCwxMDEsMTE4LDEwMSwxMDgsMTE3LDQsMCwwLDAsOTgsMTA1LDExNiwxMTUsCisgICAgMTE3LDQsMCwwLDAsOTgsOTcsMTE1LDEwMSw0MCwwLDAsMCwwLDQwLDAsCisgICAgMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLAorICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LAorICAgIDExNiwxMTQsOTcsMTEyLDYyLDExNywxMywwLDAsMCw5NSwxMTQsMTAxLDExNSwxMTEsMTA4LAorICAgIDExOCwxMDEsOTUsMTEwLDk3LDEwOSwxMDEsMTk0LDQsMCwwLDExNSwxMCwwLDAsMCwKKyAgICAwLDIsMjIsMSwxOCwxLDE1LDEsMTAsMSwxMTcsMTMsMCwwLDAsOTUsCisgICAgMTE0LDEwMSwxMTUsMTExLDEwOCwxMTgsMTAxLDk1LDExMCw5NywxMDksMTAxLDk5LDIsMCwwLAorICAgIDAsMCwwLDAsMCw0LDAsMCwwLDExLDAsMCwwLDY3LDAsMCwKKyAgICAwLDExNSwxMzgsMCwwLDAsMTE2LDAsMCwxMDYsMSwwLDExNSwyOCwwLDExNiwKKyAgICAyLDAsMTA2LDMsMCwxMDAsMSwwLDExNiw0LDAsMTMxLDIsMCwxLDExMCwKKyAgICAwLDAsMTIwLDEwMywwLDExNiwwLDAsMTA2LDEsMCw2OCw5Myw4OCwwLDEyNSwKKyAgICAyLDAsMTE2LDUsMCwxMzEsMCwwLDE0MywyMywwLDEsMTI0LDIsMCwxMDYsCisgICAgNiwwLDEyNCwwLDAsMTI0LDEsMCwxMzEsMiwwLDEyNSwzLDAsODcsMTAwLAorICAgIDIsMCw4MSw4OCwxMjQsMywwLDEwMCwyLDAsMTA3LDksMCwxMTQsMzgsMCwKKyAgICAxMjQsMCwwLDExNiwwLDAsMTA2LDgsMCwxMDcsNywwLDExNCwxMDksMCwxMjQsCisgICAgMywwLDgzLDExNiwwLDAsMTA2LDgsMCwxMjQsMCwwLDI1LDEwNiw5LDAsCisgICAgODMsMTEzLDM4LDAsMTEzLDM4LDAsODcsMTAwLDIsMCw4MywxMDAsMiwwLDgzLAorICAgIDQwLDMsMCwwLDAsMTE3LDIzLDAsMCwwLDcwLDEwNSwxMTAsMTAwLDMyLDk3LAorICAgIDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDM5LDExNSwzMiwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LAorICAgIDQ2LDExNywyMiwwLDAsMCwxMTUsMTIxLDExNSw0NiwxMDksMTAxLDExNiw5Nyw5NSwxMTIsCisgICAgOTcsMTE2LDEwNCwzMiwxMDUsMTE1LDMyLDEwMSwxMDksMTEyLDExNiwxMjEsNzgsNDAsMTAsMCwKKyAgICAwLDAsMTE3LDMsMCwwLDAsMTE1LDEyMSwxMTUsMTE3LDksMCwwLDAsMTA5LAorICAgIDEwMSwxMTYsOTcsOTUsMTEyLDk3LDExNiwxMDQsMTE3LDksMCwwLDAsOTUsMTE5LDk3LAorICAgIDExNCwxMTAsMTA1LDExMCwxMDMsMTE1LDExNyw0LDAsMCwwLDExOSw5NywxMTQsMTEwLDExNywKKyAgICAxMywwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDg3LDk3LDExNCwxMTAsMTA1LDExMCwKKyAgICAxMDMsMTE3LDE4LDAsMCwwLDk1LDczLDEwOSwxMTIsMTExLDExNCwxMTYsNzYsMTExLDk5LAorICAgIDEwNyw2NywxMTEsMTEwLDExNiwxMDEsMTIwLDExNiwxMTcsMTEsMCwwLDAsMTAyLDEwNSwxMTAsCisgICAgMTAwLDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNyw0LDAsMCwwLDc4LDExMSwxMTAsCisgICAgMTAxLDExNyw3LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwxMTcsMTAsMCwKKyAgICAwLDAsOTUsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSw5NSw0MCw0LDAsMCwKKyAgICAwLDExNyw0LDAsMCwwLDExMCw5NywxMDksMTAxLDExNyw0LDAsMCwwLDExMiwKKyAgICA5NywxMTYsMTA0LDExNyw2LDAsMCwwLDEwMiwxMDUsMTEwLDEwMCwxMDEsMTE0LDExNyw2LAorICAgIDAsMCwwLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsNDAsMCwwLDAsMCw0MCwwLAorICAgIDAsMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwKKyAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwKKyAgICAxMTYsMTE0LDk3LDExMiw2MiwxMTcsMTIsMCwwLDAsOTUsMTAyLDEwNSwxMTAsMTAwLDk1LAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDIwMyw0LDAsMCwxMTUsMjAsMCwwLDAsMCwKKyAgICAyLDksMSwxOSwxLDE2LDEsMTAsMSwyNCwxLDEyLDIsMTUsMSw0LAorICAgIDIsMjEsMiwxMTcsMTIsMCwwLDAsOTUsMTAyLDEwNSwxMTAsMTAwLDk1LDEwOSwxMTEsCisgICAgMTAwLDExNywxMDgsMTAxLDk5LDMsMCwwLDAsMCwwLDAsMCw0LDAsMCwKKyAgICAwLDQsMCwwLDAsNjcsMCwwLDAsMTE1LDE5NCwwLDAsMCwxMTYsMCwKKyAgICAwLDEyNCwwLDAsMTE2LDEsMCwxMzEsMiwwLDExNSw0NSwwLDExNiwyLDAsCisgICAgMTAwLDEsMCwxMDYsMywwLDExNiw0LDAsMTI0LDAsMCwxMzEsMSwwLDEzMSwKKyAgICAxLDAsMTMxLDEsMCwxMzAsMSwwLDExMCwwLDAsMTI0LDIsMCwxMDAsMiwKKyAgICAwLDEwNywwLDAsMTE0LDcyLDAsMTE2LDUsMCwxMDAsMywwLDEzMSwxLDAsCisgICAgMTMwLDEsMCwxMTAsMCwwLDEyNCwxLDAsMTE0LDE1NiwwLDExNiwwLDAsMTI0LAorICAgIDEsMCwxMTYsMSwwLDEzMSwyLDAsMTE1LDEwOCwwLDExNiwyLDAsMTAwLDQsCisgICAgMCwxMzEsMSwwLDEzMCwxLDAsMTEzLDE1NiwwLDEyNCwxLDAsMTE2LDYsMCwKKyAgICAxMDYsNywwLDEwNyw3LDAsMTE0LDE1NiwwLDEwMCw1LDAsMTI1LDMsMCwxMTYsCisgICAgOCwwLDEyNCwzLDAsMTA2LDMsMCwxMjQsMSwwLDEzMSwxLDAsMTMxLDEsCisgICAgMCwxMzAsMSwwLDExMywxNTYsMCwxMTAsMCwwLDEyNCwwLDAsMTIsMTE0LDE5MCwKKyAgICAwLDEyNCwyLDAsMTAwLDIsMCwxMDcsMiwwLDExNCwxOTAsMCwxMTYsNSwwLAorICAgIDEwMCw2LDAsMTMxLDEsMCwxMzAsMSwwLDExMCwwLDAsMTAwLDcsMCw4MywKKyAgICA0MCw4LDAsMCwwLDExNywyOCwwLDAsMCw4NiwxMDEsMTE0LDEwNSwxMDIsMTIxLAorICAgIDMyLDk3LDExNCwxMDMsMTE3LDEwOSwxMDEsMTEwLDExNiwxMTUsMzIsOTcsMTE0LDEwMSwzMiwzNCwKKyAgICAxMTUsOTcsMTEwLDEwMSwzNCw0NiwxMTcsMzEsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwKKyAgICAxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMzIsMTA5LDExNywxMTUsMTE2LDMyLDk4LDEwMSwzMiwxMTUsCisgICAgMTE2LDExNCw0NCwzMiwxMTAsMTExLDExNiwzMiwxMjMsMTI1LDEwNSwwLDAsMCwwLDExNywKKyAgICAxOCwwLDAsMCwxMDgsMTAxLDExOCwxMDEsMTA4LDMyLDEwOSwxMTcsMTE1LDExNiwzMiw5OCwKKyAgICAxMDEsMzIsNjIsNjEsMzIsNDgsMTE3LDMxLDAsMCwwLDk1LDk1LDExMiw5Nyw5OSwKKyAgICAxMDcsOTcsMTAzLDEwMSw5NSw5NSwzMiwxMTAsMTExLDExNiwzMiwxMTUsMTAxLDExNiwzMiwxMTYsCisgICAgMTExLDMyLDk3LDMyLDExNSwxMTYsMTE0LDEwNSwxMTAsMTAzLDExNyw2MSwwLDAsMCw4MCwKKyAgICA5NywxMTQsMTAxLDExMCwxMTYsMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTIzLDMzLDExNCwKKyAgICAxMjUsMzIsMTEwLDExMSwxMTYsMzIsMTA4LDExMSw5NywxMDAsMTAxLDEwMCw0NCwzMiw5OSw5NywKKyAgICAxMTAsMTEwLDExMSwxMTYsMzIsMTEyLDEwMSwxMTQsMTAyLDExMSwxMTQsMTA5LDMyLDExNCwxMDEsMTA4LAorICAgIDk3LDExNiwxMDUsMTE4LDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMTcsMTcsMCwwLAorICAgIDAsNjksMTA5LDExMiwxMTYsMTIxLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDExMCw5NywKKyAgICAxMDksMTAxLDc4LDQwLDksMCwwLDAsMTE3LDEwLDAsMCwwLDEwNSwxMTUsMTA1LAorICAgIDExMCwxMTUsMTE2LDk3LDExMCw5OSwxMDEsMTE3LDMsMCwwLDAsMTE1LDExNiwxMTQsMTE3LAorICAgIDksMCwwLDAsODQsMTIxLDExMiwxMDEsNjksMTE0LDExNCwxMTEsMTE0LDExNyw2LDAsCisgICAgMCwwLDEwMiwxMTEsMTE0LDEwOSw5NywxMTYsMTE3LDQsMCwwLDAsMTE2LDEyMSwxMTIsCisgICAgMTAxLDExNywxMCwwLDAsMCw4Niw5NywxMDgsMTE3LDEwMSw2OSwxMTQsMTE0LDExMSwxMTQsCisgICAgMTE3LDMsMCwwLDAsMTE1LDEyMSwxMTUsMTE3LDcsMCwwLDAsMTA5LDExMSwxMDAsCisgICAgMTE3LDEwOCwxMDEsMTE1LDExNywxMSwwLDAsMCw4MywxMjEsMTE1LDExNiwxMDEsMTA5LDY5LAorICAgIDExNCwxMTQsMTExLDExNCw0MCw0LDAsMCwwLDExNyw0LDAsMCwwLDExMCw5NywKKyAgICAxMDksMTAxLDExNyw3LDAsMCwwLDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwxMTcsNSwKKyAgICAwLDAsMCwxMDgsMTAxLDExOCwxMDEsMTA4LDExNywzLDAsMCwwLDEwOSwxMTUsMTAzLAorICAgIDQwLDAsMCwwLDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsCisgICAgMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCwKKyAgICA0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDEzLDAsMCwKKyAgICAwLDk1LDExNSw5NywxMTAsMTA1LDExNiwxMjEsOTUsOTksMTA0LDEwMSw5OSwxMDcsMjIwLDQsCisgICAgMCwwLDExNSwyNCwwLDAsMCwwLDIsMTUsMSwzMCwxLDEyLDEsMTUsCisgICAgMSw2LDEsMTUsMSwxNSwxLDE1LDEsNiwyLDI3LDEsMTksMSwxMTcsCisgICAgMTMsMCwwLDAsOTUsMTE1LDk3LDExMCwxMDUsMTE2LDEyMSw5NSw5OSwxMDQsMTAxLDk5LAorICAgIDEwNywxMTcsMjAsMCwwLDAsNzgsMTExLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLAorICAgIDExMCw5NywxMDksMTAxLDEwMCwzMiwxMjMsMzMsMTE0LDEyNSw5OSwyLDAsMCwwLDAsCisgICAgMCwwLDAsOCwwLDAsMCwyNywwLDAsMCw2NywwLDAsMCwxMTUsCisgICAgMjUwLDEsMCwwLDEwMCwwLDAsMTI1LDIsMCwxMjQsMCwwLDEwNiwxLDAsCisgICAgMTAwLDEsMCwxMzEsMSwwLDEwMCwyLDAsMjUsMTI1LDMsMCwxMjQsMywwLAorICAgIDExNCwxNzUsMCwxMjQsMywwLDExNiwyLDAsMTA2LDMsMCwxMDcsNywwLDExNCwKKyAgICA1OSwwLDEyNCwxLDAsMTI0LDMsMCwxMzEsMSwwLDEsMTEwLDAsMCwxMjQsCisgICAgMCwwLDExNiwyLDAsMTA2LDMsMCwxMDcsNiwwLDExNCw4NSwwLDExNiwyLAorICAgIDAsMTA2LDMsMCwxMjQsMCwwLDI1LDgzLDExNiwyLDAsMTA2LDMsMCwxMjQsCisgICAgMywwLDI1LDEyNSw0LDAsMTIxLDEzLDAsMTI0LDQsMCwxMDYsNCwwLDEyNSwKKyAgICAyLDAsODcsMTEzLDE3NSwwLDQsMTE2LDUsMCwxMDcsMTAsMCwxMTQsMTcxLDAsCisgICAgMSwxLDEsMTE2LDYsMCwxMDAsMywwLDIzLDEwNiw3LDAsMTI0LDAsMCwKKyAgICAxMjQsMywwLDEzMSwyLDAsMTI1LDUsMCwxMTYsOCwwLDEyNCw1LDAsMTAwLAorICAgIDQsMCwxMjQsMCwwLDEzMSwxLDEsMTMwLDEsMCw4OSwxMTMsMTc1LDAsODgsCisgICAgMTEwLDAsMCwxMTYsOSwwLDEyNCwwLDAsMTI0LDIsMCwxMzEsMiwwLDEyNSwKKyAgICA2LDAsMTI0LDYsMCwxMDAsMCwwLDEwNyw4LDAsMTE0LDIzMiwwLDExNiw4LAorICAgIDAsMTE2LDYsMCwxMDYsNywwLDEyNCwwLDAsMTMxLDEsMCwxMDAsNCwwLAorICAgIDEyNCwwLDAsMTMxLDEsMSwxMzAsMSwwLDExMCw0NywwLDEyNCwwLDAsMTE2LAorICAgIDIsMCwxMDYsMywwLDEwNyw3LDAsMTE0LDIzLDEsMTI0LDYsMCwxMDYsMTAsCisgICAgMCwxMjQsMCwwLDEzMSwxLDAsMSwxMTYsMTEsMCwxMDAsNSwwLDEyNCwwLAorICAgIDAsMTI0LDYsMCwxMzEsMywwLDEsMTEwLDAsMCwxMTYsMiwwLDEwNiwzLAorICAgIDAsMTI0LDAsMCwyNSwxMjUsNywwLDEyNCwzLDAsMTE0LDg3LDEsMTE2LDIsCisgICAgMCwxMDYsMywwLDEyNCwzLDAsMjUsMTI1LDQsMCwxMTYsMTIsMCwxMjQsNCwKKyAgICAwLDEyNCwwLDAsMTA2LDEsMCwxMDAsMSwwLDEzMSwxLDAsMTAwLDYsMCwKKyAgICAyNSwxMjQsNywwLDEzMSwzLDAsMSwxMTAsMCwwLDExNiwxMywwLDEyNCw3LAorICAgIDAsMTAwLDcsMCwxMDAsMCwwLDEzMSwzLDAsMTAwLDAsMCwxMDcsOCwwLAorICAgIDExNCwxOTQsMSwxMjEsNTksMCwxMjQsNywwLDEwNiwxNCwwLDEyNCw3LDAsOTUsCisgICAgMTUsMCwxMTYsMTYsMCwxMjQsNywwLDEwMCw4LDAsMTMxLDIsMCwxMTUsMTY5LAorICAgIDEsMTI0LDcsMCwxMDYsMTUsMCwxMDYsMSwwLDEwMCwxLDAsMTMxLDEsMCwKKyAgICAxMDAsMiwwLDI1LDEyNCw3LDAsOTUsMTUsMCwxMTAsMCwwLDg3LDExMywxOTQsCisgICAgMSw0LDExNiw1LDAsMTA3LDEwLDAsMTE0LDE5MCwxLDEsMSwxLDg5LDExMywKKyAgICAxOTQsMSw4OCwxMTAsMCwwLDExNiwxNiwwLDEyNCw3LDAsMTAwLDksMCwxMzEsCisgICAgMiwwLDExNSwyNDYsMSwxMjEsMTMsMCwxMjQsNiwwLDEyNCw3LDAsOTUsMTcsCisgICAgMCw4NywxMTMsMjQ2LDEsNCwxMTYsNSwwLDEwNywxMCwwLDExNCwyNDIsMSwxLAorICAgIDEsMSw4OSwxMTMsMjQ2LDEsODgsMTEwLDAsMCwxMjQsNywwLDgzLDQwLDEwLAorICAgIDAsMCwwLDc4LDExNywxLDAsMCwwLDQ2LDEwNSwwLDAsMCwwLDExNywKKyAgICAyMSwwLDAsMCw1OSwzMiwxMjMsMTI1LDMyLDEwNSwxMTUsMzIsMTEwLDExMSwxMTYsMzIsCisgICAgOTcsMzIsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDExNyw0LDAsMCwwLDExMCw5NywKKyAgICAxMDksMTAxLDExNywxOCwwLDAsMCwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwxMjMsMzMsCisgICAgMTE0LDEyNSwzMiwzNSwzMiwxMjMsMzMsMTE0LDEyNSwxMDUsMiwwLDAsMCwxMTcsMTEsCisgICAgMCwwLDAsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LDExNyw4LAorICAgIDAsMCwwLDk1LDk1LDExMiw5NywxMTYsMTA0LDk1LDk1LDExNywxMCwwLDAsMCwKKyAgICA5NSw5NSwxMDgsMTExLDk3LDEwMCwxMDEsMTE0LDk1LDk1LDQwLDE4LDAsMCwwLDExNywKKyAgICA0LDAsMCwwLDc4LDExMSwxMTAsMTAxLDExNywxMCwwLDAsMCwxMTQsMTEyLDk3LAorICAgIDExNCwxMTYsMTA1LDExNiwxMDUsMTExLDExMCwxMTcsMywwLDAsMCwxMTUsMTIxLDExNSwxMTcsCisgICAgNywwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTUsMTE3LDgsMCwwLDAsCisgICAgOTUsOTUsMTEyLDk3LDExNiwxMDQsOTUsOTUsMTE3LDE0LDAsMCwwLDY1LDExNiwxMTYsCisgICAgMTE0LDEwNSw5OCwxMTcsMTE2LDEwMSw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDgsMCwwLDAsCisgICAgOTUsNjksODIsODIsOTUsNzcsODMsNzEsMTE3LDYsMCwwLDAsMTAyLDExMSwxMTQsCisgICAgMTA5LDk3LDExNiwxMTcsMTEsMCwwLDAsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw2OSwxMTQsCisgICAgMTE0LDExMSwxMTQsMTE3LDEyLDAsMCwwLDk1LDEwMiwxMDUsMTEwLDEwMCw5NSwxMDksMTExLAorICAgIDEwMCwxMTcsMTA4LDEwMSwxMTcsMTEsMCwwLDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwKKyAgICAxMDAsMTE3LDEwOCwxMDEsMTE3LDE2LDAsMCwwLDk1LDExOCwxMDEsMTE0LDk4LDExMSwxMTUsCisgICAgMTAxLDk1LDEwOSwxMDEsMTE1LDExNSw5NywxMDMsMTAxLDExNyw3LDAsMCwwLDExNSwxMDEsCisgICAgMTE2LDk3LDExNiwxMTYsMTE0LDExNyw3LDAsMCwwLDEwMywxMDEsMTE2LDk3LDExNiwxMTYsCisgICAgMTE0LDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDExNywxMSwKKyAgICAwLDAsMCw5NSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsOTUsOTUsMTE3LDcsCisgICAgMCwwLDAsMTA0LDk3LDExNSw5NywxMTYsMTE2LDExNCwxMTcsMTAsMCwwLDAsOTUsCisgICAgOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSw5NSw0MCw4LDAsMCwwLDExNyw0LAorICAgIDAsMCwwLDExMCw5NywxMDksMTAxLDExNyw3LDAsMCwwLDEwNSwxMDksMTEyLDExMSwKKyAgICAxMTQsMTE2LDk1LDExNyw0LDAsMCwwLDExMiw5NywxMTYsMTA0LDExNyw2LDAsMCwKKyAgICAwLDExMiw5NywxMTQsMTAxLDExMCwxMTYsMTE3LDEzLDAsMCwwLDExMiw5NywxMTQsMTAxLAorICAgIDExMCwxMTYsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDMsMCwwLDAsMTA5LDExNSwKKyAgICAxMDMsMTE3LDYsMCwwLDAsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsNiwwLDAsCisgICAgMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSw0MCwwLDAsMCwwLDQwLDAsMCwwLAorICAgIDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksCisgICAgMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwxMTYsMTE1LDExNiwxMTQsCisgICAgOTcsMTEyLDYyLDExNywyMywwLDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsOTcsMTEwLAorICAgIDEwMCw5NSwxMDgsMTExLDk3LDEwMCw5NSwxMTcsMTEwLDEwOCwxMTEsOTksMTA3LDEwMSwxMDAsMjM5LAorICAgIDQsMCwwLDExNSw3MiwwLDAsMCwwLDEsNiwxLDE5LDEsNiwxLAorICAgIDE1LDEsMTMsMiwxNSwxLDExLDIsMTMsMSwzLDEsMTMsMSwxMywxLAorICAgIDIyLDEsMjYsMSwxNSwxLDEyLDEsMzAsMSwxNSwyLDEzLDEsMTksMiwKKyAgICAxMywxLDYsMiwxMywxLDMyLDIsMjQsMSwzLDEsMTIsMSwxNSwxLAorICAgIDMyLDEsMTMsMSw4LDIsMTUsMSwzLDEsMTMsMSwxMywxLDgsMSwKKyAgICAxMTcsMjMsMCwwLDAsOTUsMTAyLDEwNSwxMTAsMTAwLDk1LDk3LDExMCwxMDAsOTUsMTA4LAorICAgIDExMSw5NywxMDAsOTUsMTE3LDExMCwxMDgsMTExLDk5LDEwNywxMDEsMTAwLDk5LDIsMCwwLAorICAgIDAsMCwwLDAsMCwzLDAsMCwwLDE4LDAsMCwwLDY3LDAsMCwKKyAgICAwLDExNSw3NSwwLDAsMCwxMjIsMTYsMCwxMTYsMCwwLDEyNCwwLDAsMTMxLAorICAgIDEsMCwxMjUsMiwwLDg3LDEwMCwxLDAsMTE2LDEsMCwxMDYsMiwwLDEzMSwKKyAgICAwLDAsMSw4OCwxMjQsMiwwLDEwNiwzLDAsMTMxLDAsMCwxLDEyMiwxNywKKyAgICAwLDExNiw0LDAsMTI0LDAsMCwxMjQsMSwwLDEzMSwyLDAsODMsODcsMTAwLAorICAgIDEsMCwxMjQsMiwwLDEwNiw1LDAsMTMxLDAsMCwxLDg4LDEwMCwxLDAsCisgICAgODMsNDAsMiwwLDAsMCwxMTcsNTQsMCwwLDAsNzAsMTA1LDExMCwxMDAsMzIsCisgICAgOTcsMTEwLDEwMCwzMiwxMDgsMTExLDk3LDEwMCwzMiwxMTYsMTA0LDEwMSwzMiwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSw0NCwzMiw5NywxMTAsMTAwLDMyLDExNCwxMDEsMTA4LDEwMSw5NywxMTUsMTAxLAorICAgIDMyLDExNiwxMDQsMTAxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLDEwOCwxMTEsOTksMTA3LAorICAgIDQ2LDc4LDQwLDYsMCwwLDAsMTE3LDE2LDAsMCwwLDk1LDEwMywxMDEsMTE2LAorICAgIDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwOCwxMTEsOTksMTA3LDExNyw0LDAsMCwKKyAgICAwLDk1LDEwNSwxMDksMTEyLDExNywxMiwwLDAsMCwxMTQsMTAxLDEwOCwxMDEsOTcsMTE1LAorICAgIDEwMSw5NSwxMDgsMTExLDk5LDEwNywxMTcsNywwLDAsMCw5Nyw5OSwxMTMsMTE3LDEwNSwKKyAgICAxMTQsMTAxLDExNywyMywwLDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsOTcsMTEwLDEwMCwKKyAgICA5NSwxMDgsMTExLDk3LDEwMCw5NSwxMTcsMTEwLDEwOCwxMTEsOTksMTA3LDEwMSwxMDAsMTE3LDcsCisgICAgMCwwLDAsMTE0LDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsNDAsMywwLDAsMCwxMTcsCisgICAgNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTcsNywwLDAsMCwxMDUsMTA5LDExMiwKKyAgICAxMTEsMTE0LDExNiw5NSwxMTcsNCwwLDAsMCwxMDgsMTExLDk5LDEwNyw0MCwwLDAsCisgICAgMCwwLDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLAorICAgIDEyMiwxMDEsMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsCisgICAgMTExLDExMSwxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxNCwwLDAsMCw5NSwxMDIsCisgICAgMTA1LDExMCwxMDAsOTUsOTcsMTEwLDEwMCw5NSwxMDgsMTExLDk3LDEwMCwyOSw1LDAsMCwKKyAgICAxMTUsMTQsMCwwLDAsMCwyLDMsMSwxNiwyLDExLDEsMTAsMSwzLAorICAgIDEsMTcsMiwxMTcsMTQsMCwwLDAsOTUsMTAyLDEwNSwxMTAsMTAwLDk1LDk3LDExMCwKKyAgICAxMDAsOTUsMTA4LDExMSw5NywxMDAsMTA1LDAsMCwwLDAsOTksMywwLDAsMCwKKyAgICAwLDAsMCwwLDUsMCwwLDAsNCwwLDAsMCw2NywwLDAsMCwKKyAgICAxMTUsMTcyLDAsMCwwLDExNiwwLDAsMTI0LDAsMCwxMjQsMSwwLDEyNCwyLAorICAgIDAsMTMxLDMsMCwxLDEyNCwyLDAsMTAwLDEsMCwxMDcsNCwwLDExNCw0OSwKKyAgICAwLDExNiwxLDAsMTI0LDAsMCwxMjQsMSwwLDEyNCwyLDAsMTMxLDMsMCwKKyAgICAxMjUsMCwwLDExMCwwLDAsMTE2LDIsMCwxMDYsMywwLDEzMSwwLDAsMSwKKyAgICAxMjQsMCwwLDExNiw0LDAsMTA2LDUsMCwxMDcsNywwLDExNCw4NywwLDExNiwKKyAgICA2LDAsMTI0LDAsMCwxMTYsNywwLDEzMSwyLDAsODMsMTE2LDQsMCwxMDYsCisgICAgNSwwLDEyNCwwLDAsMjUsMTI1LDMsMCwxMjQsMywwLDEwMCw0LDAsMTA3LAorICAgIDgsMCwxMTQsMTU4LDAsMTE2LDIsMCwxMDYsOSwwLDEzMSwwLDAsMSwxMDAsCisgICAgMiwwLDEwNiwxMCwwLDEyNCwwLDAsMTMxLDEsMCwxMjUsNCwwLDExNiwxMSwKKyAgICAwLDEyNCw0LDAsMTAwLDMsMCwxMjQsMCwwLDEzMSwxLDEsMTMwLDEsMCwKKyAgICAxMTAsMCwwLDExNiwxMiwwLDEyNCwwLDAsMTMxLDEsMCwxLDEyNCwzLDAsCisgICAgODMsNDAsNSwwLDAsMCwxMTcsNTAsMSwwLDAsNzMsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwzMiw5NywxMTAsMTAwLDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDMyLDExNiwxMDQsMTAxLAorICAgIDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDMyLDk4LDk3LDExNSwxMDEsMTAwLDMyLDExMSwxMTAsCisgICAgMzIsMTA1LDExNiwxMTUsMzIsMTEwLDk3LDEwOSwxMDEsNDQsMzIsMTE2LDEwNCwxMDEsMzIsMTEyLAorICAgIDk3LDk5LDEwNyw5NywxMDMsMTAxLDMyLDExNiwxMDQsMTAxLDMyLDk5LDk3LDEwOCwxMDgsMzIsCisgICAgMTA1LDExNSwxMCwzMiwzMiwzMiwzMiw5OCwxMDEsMTA1LDExMCwxMDMsMzIsMTA5LDk3LDEwMCwKKyAgICAxMDEsMzIsMTAyLDExNCwxMTEsMTA5LDQ0LDMyLDk3LDExMCwxMDAsMzIsMTE2LDEwNCwxMDEsMzIsCisgICAgMTA4LDEwMSwxMTgsMTAxLDEwOCwzMiw5NywxMDAsMTA2LDExNywxMTUsMTE2LDEwOSwxMDEsMTEwLDExNiwKKyAgICA0NiwxMCwxMCwzMiwzMiwzMiwzMiw4NCwxMDQsMTA1LDExNSwzMiwxMDIsMTE3LDExMCw5OSwKKyAgICAxMTYsMTA1LDExMSwxMTAsMzIsMTE0LDEwMSwxMTIsMTE0LDEwMSwxMTUsMTAxLDExMCwxMTYsMTE1LDMyLAorICAgIDExNiwxMDQsMTAxLDMyLDEwMywxMTQsMTAxLDk3LDExNiwxMDEsMTE1LDExNiwzMiw5OSwxMTEsMTA5LAorICAgIDEwOSwxMTEsMTEwLDMyLDEwMCwxMDEsMTEwLDExMSwxMDksMTA1LDExMCw5NywxMTYsMTExLDExNCwzMiwKKyAgICAxMTEsMTAyLDMyLDEwMiwxMTcsMTEwLDk5LDExNiwxMDUsMTExLDExMCw5NywxMDgsMTA1LDExNiwxMjEsCisgICAgMTAsMzIsMzIsMzIsMzIsOTgsMTAxLDExNiwxMTksMTAxLDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsCisgICAgMTExLDExNCwxMTYsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsOTcsMTEwLDEwMCwzMiw5NSwKKyAgICA5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiw5NSw5NSw0NiwzMiw4NCwxMDQsMTA1LDExNSwzMiwKKyAgICAxMDUsMTEwLDk5LDEwOCwxMTcsMTAwLDEwMSwxMTUsMzIsMTE1LDEwMSwxMTYsMTE2LDEwNSwxMTAsMTAzLAorICAgIDMyLDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwzMiwxMDUsMTAyLDEwLAorICAgIDMyLDMyLDMyLDMyLDExNiwxMDQsMTAxLDMyLDEwOCwxMTEsOTcsMTAwLDEwMSwxMTQsMzIsMTAwLAorICAgIDEwNSwxMDAsMzIsMTEwLDExMSwxMTYsNDYsMTAsMTAsMzIsMzIsMzIsMzIsMTA1LDAsMCwKKyAgICAwLDAsMTE3LDQwLDAsMCwwLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDMyLDExMSwxMDIsCisgICAgMzIsMTIzLDEyNSwzMiwxMDQsOTcsMTA4LDExNiwxMDEsMTAwLDU5LDMyLDc4LDExMSwxMTAsMTAxLAorICAgIDMyLDEwNSwxMTAsMzIsMTE1LDEyMSwxMTUsNDYsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDExNywKKyAgICA0LDAsMCwwLDExMCw5NywxMDksMTAxLDc4LDQwLDEzLDAsMCwwLDExNywxMywKKyAgICAwLDAsMCw5NSwxMTUsOTcsMTEwLDEwNSwxMTYsMTIxLDk1LDk5LDEwNCwxMDEsOTksMTA3LAorICAgIDExNywxMywwLDAsMCw5NSwxMTQsMTAxLDExNSwxMTEsMTA4LDExOCwxMDEsOTUsMTEwLDk3LAorICAgIDEwOSwxMDEsMTE3LDQsMCwwLDAsOTUsMTA1LDEwOSwxMTIsMTE3LDEyLDAsMCwwLAorICAgIDk3LDk5LDExMywxMTcsMTA1LDExNCwxMDEsOTUsMTA4LDExMSw5OSwxMDcsMTE3LDMsMCwwLAorICAgIDAsMTE1LDEyMSwxMTUsMTE3LDcsMCwwLDAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LAorICAgIDExNywxNCwwLDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsOTcsMTEwLDEwMCw5NSwxMDgsCisgICAgMTExLDk3LDEwMCwxMTcsMTEsMCwwLDAsOTUsMTAzLDk5LDEwMCw5NSwxMDUsMTA5LDExMiwKKyAgICAxMTEsMTE0LDExNiwxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsMTIsMCwwLAorICAgIDAsMTE0LDEwMSwxMDgsMTAxLDk3LDExNSwxMDEsOTUsMTA4LDExMSw5OSwxMDcsMTE3LDYsMCwKKyAgICAwLDAsMTAyLDExMSwxMTQsMTA5LDk3LDExNiwxMTcsMTEsMCwwLDAsNzMsMTA5LDExMiwKKyAgICAxMTEsMTE0LDExNiw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDE5LDAsMCwwLDk1LDEwOCwxMTEsCisgICAgOTksMTA3LDk1LDExNywxMTAsMTA4LDExMSw5OSwxMDcsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgNDAsNSwwLDAsMCwxMTcsNCwwLDAsMCwxMTAsOTcsMTA5LDEwMSwxMTcsNywKKyAgICAwLDAsMCwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsMTE3LDUsMCwwLDAsMTA4LAorICAgIDEwMSwxMTgsMTAxLDEwOCwxMTcsNiwwLDAsMCwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsCisgICAgNywwLDAsMCwxMDksMTAxLDExNSwxMTUsOTcsMTAzLDEwMSw0MCwwLDAsMCwwLAorICAgIDQwLDAsMCwwLDAsMTE3LDI5LDAsMCwwLDYwLDEwMiwxMTQsMTExLDEyMiwxMDEsCisgICAgMTEwLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwxMDUsOTgsNDYsOTUsOTgsMTExLDExMSwKKyAgICAxMTYsMTE1LDExNiwxMTQsOTcsMTEyLDYyLDExNywxMSwwLDAsMCw5NSwxMDMsOTksMTAwLAorICAgIDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDQyLDUsMCwwLDExNSwyOCwwLDAsMCwKKyAgICAwLDksMTYsMSwxMiwxLDIxLDEsMTAsMSwxNSwxLDEzLDEsMTMsMSwKKyAgICAxMiwxLDEwLDEsNiwxLDksMSwyMSwxLDEwLDEsMTE3LDExLDAsMCwKKyAgICAwLDk1LDEwMyw5OSwxMDAsOTUsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsOTksMywwLDAsCisgICAgMCwwLDAsMCwwLDQsMCwwLDAsMTMsMCwwLDAsNjcsMCwwLAorICAgIDAsMTE1LDE3OCwwLDAsMCwxMTYsMCwwLDEyNCwwLDAsMTAwLDEsMCwxMzEsCisgICAgMiwwLDExNCwxNzQsMCwxMDAsMiwwLDEyNCwxLDAsMTA3LDYsMCwxMTQsODYsCisgICAgMCwxMTYsMCwwLDEyNCwwLDAsMTAwLDMsMCwxMzEsMiwwLDExNCw4NiwwLAorICAgIDExNiwxLDAsMTI0LDEsMCwxMzEsMSwwLDEyNSwxLDAsMTI0LDEsMCwxMDYsCisgICAgMiwwLDEwMCwyLDAsMTMxLDEsMCwxLDEyNCwxLDAsMTA2LDMsMCwxMjQsCisgICAgMCwwLDEwNiw0LDAsMTMxLDEsMCwxLDExMCwwLDAsMTIwLDg1LDAsMTI0LAorICAgIDEsMCw2OCw5Myw3NCwwLDEyNSwzLDAsMTE2LDAsMCwxMjQsMCwwLDEyNCwKKyAgICAzLDAsMTMxLDIsMCwxMTUsOTMsMCwxMjEsMjksMCwxMjQsMiwwLDEwMCw0LAorICAgIDAsMTA2LDUsMCwxMjQsMCwwLDEwNiw2LDAsMTI0LDMsMCwxMzEsMiwwLAorICAgIDEzMSwxLDAsMSw4NywxMTMsMTY3LDAsNCwxMTYsNywwLDEwNywxMCwwLDExNCwKKyAgICAxNjMsMCwxLDEsMSw4OSwxMTMsMTY3LDAsODgsMTEzLDkzLDAsMTEzLDkzLDAsCisgICAgODcsMTEwLDAsMCwxMjQsMCwwLDgzLDQwLDUsMCwwLDAsMTE3LDIzOCwwLAorICAgIDAsMCw3MCwxMDUsMTAzLDExNywxMTQsMTAxLDMyLDExMSwxMTcsMTE2LDMyLDExOSwxMDQsOTcsCisgICAgMTE2LDMyLDk1LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDk1LDk1LDMyLDExNSwxMDQsMTExLAorICAgIDExNywxMDgsMTAwLDMyLDExNCwxMDEsMTE2LDExNywxMTQsMTEwLDQ2LDEwLDEwLDMyLDMyLDMyLAorICAgIDMyLDg0LDEwNCwxMDEsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsOTUsMzIsMTEyLDk3LDExNCwKKyAgICA5NywxMDksMTAxLDExNiwxMDEsMTE0LDMyLDEwNSwxMTUsMzIsOTcsMzIsOTksOTcsMTA4LDEwOCwKKyAgICA5Nyw5OCwxMDgsMTAxLDMyLDExOSwxMDQsMTA1LDk5LDEwNCwzMiwxMTYsOTcsMTA3LDEwMSwxMTUsCisgICAgMzIsMTE2LDEwNCwxMDEsMzIsMTEwLDk3LDEwOSwxMDEsMzIsMTExLDEwMiwzMiwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSwzMiwxMTYsMTExLDEwLDMyLDMyLDMyLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDQ2LDMyLDczLDExNiwzMiwxMDUsMTE1LDMyLDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwKKyAgICAxMDAsMzIsMTE2LDExMSwzMiwxMDAsMTAxLDk5LDExMSwxMTcsMTEyLDEwOCwxMDEsMzIsMTE2LDEwNCwKKyAgICAxMDEsMzIsMTAyLDExNywxMTAsOTksMTE2LDEwNSwxMTEsMTEwLDMyLDEwMiwxMTQsMTExLDEwOSwzMiwKKyAgICA5NywxMTUsMTE1LDExNywxMDksMTA1LDExMCwxMDMsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LAorICAgIDEwNSw5OCwzOSwxMTUsMTAsMzIsMzIsMzIsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsCisgICAgMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDEwNSwKKyAgICAxMTUsMzIsMTAwLDEwMSwxMTUsMTA1LDExNCwxMDEsMTAwLDQ2LDEwLDEwLDMyLDMyLDMyLDMyLAorICAgIDExNyw4LDAsMCwwLDk1LDk1LDExMiw5NywxMTYsMTA0LDk1LDk1LDExNywxLDAsCisgICAgMCwwLDQyLDExNyw3LDAsMCwwLDk1LDk1LDk3LDEwOCwxMDgsOTUsOTUsMTE3LAorICAgIDUsMCwwLDAsMTIzLDEyNSw0NiwxMjMsMTI1LDQwLDgsMCwwLDAsMTE3LDcsCisgICAgMCwwLDAsMTA0LDk3LDExNSw5NywxMTYsMTE2LDExNCwxMTcsNCwwLDAsMCwxMDgsCisgICAgMTA1LDExNSwxMTYsMTE3LDYsMCwwLDAsMTE0LDEwMSwxMDksMTExLDExOCwxMDEsMTE3LDYsCisgICAgMCwwLDAsMTAxLDEyMCwxMTYsMTAxLDExMCwxMDAsMTE3LDcsMCwwLDAsOTUsOTUsCisgICAgOTcsMTA4LDEwOCw5NSw5NSwxMTcsNiwwLDAsMCwxMDIsMTExLDExNCwxMDksOTcsMTE2LAorICAgIDExNyw4LDAsMCwwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDExNywxMSwwLAorICAgIDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCw0MCw0LDAsCisgICAgMCwwLDExNyw2LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNyw4LDAsCisgICAgMCwwLDEwMiwxMTQsMTExLDEwOSwxMDgsMTA1LDExNSwxMTYsMTE3LDcsMCwwLDAsMTA1LAorICAgIDEwOSwxMTIsMTExLDExNCwxMTYsOTUsMTE3LDEsMCwwLDAsMTIwLDQwLDAsMCwwLAorICAgIDAsNDAsMCwwLDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLAorICAgIDEwMSwxMTAsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsCisgICAgMTExLDExNiwxMTUsMTE2LDExNCw5NywxMTIsNjIsMTE3LDE2LDAsMCwwLDk1LDEwNCw5NywKKyAgICAxMTAsMTAwLDEwOCwxMDEsOTUsMTAyLDExNCwxMTEsMTA5LDEwOCwxMDUsMTE1LDExNiw2Nyw1LDAsCisgICAgMCwxMTUsMjQsMCwwLDAsMCwxMCwxNSwxLDI3LDEsMTIsMSwxMywxLAorICAgIDE5LDEsMTMsMSwxNSwxLDMsMSwyOSwxLDEzLDEsMTUsMSwxMTcsMTYsCisgICAgMCwwLDAsOTUsMTA0LDk3LDExMCwxMDAsMTA4LDEwMSw5NSwxMDIsMTE0LDExMSwxMDksMTA4LAorICAgIDEwNSwxMTUsMTE2LDk5LDEsMCwwLDAsMCwwLDAsMCwyLDAsMCwwLAorICAgIDIsMCwwLDAsNjcsMCwwLDAsMTE1LDc4LDAsMCwwLDEyNCwwLDAsCisgICAgMTA2LDAsMCwxMDAsMSwwLDEzMSwxLDAsMTI1LDEsMCwxMjQsMSwwLDEwMCwKKyAgICA2LDAsMTA3LDgsMCwxMTQsNzQsMCwxMjQsMCwwLDEwMCwyLDAsMjUsMTI1LAorICAgIDEsMCwxMDAsMywwLDEyNCwwLDAsMTA3LDcsMCwxMTQsNzQsMCwxMjQsMSwKKyAgICAwLDEwNiwyLDAsMTAwLDQsMCwxMzEsMSwwLDEwMCw1LDAsMjUsMTI1LDEsCisgICAgMCwxMTMsNzQsMCwxMTAsMCwwLDEyNCwxLDAsODMsNDAsNywwLDAsMCwKKyAgICAxMTcsMTY3LDAsMCwwLDY3LDk3LDEwOCw5OSwxMTcsMTA4LDk3LDExNiwxMDEsMzIsMTE5LAorICAgIDEwNCw5NywxMTYsMzIsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LDMyLAorICAgIDExNSwxMDQsMTExLDExNywxMDgsMTAwLDMyLDk4LDEwMSw0NiwxMCwxMCwzMiwzMiwzMiwzMiwKKyAgICA5NSw5NSwxMTIsOTcsOTksMTA3LDk3LDEwMywxMDEsOTUsOTUsMzIsMTA1LDExNSwzMiwxMTAsCisgICAgMTExLDExNiwzMiwxMDMsMTE3LDk3LDExNCw5NywxMTAsMTE2LDEwMSwxMDEsMTAwLDMyLDExNiwxMTEsCisgICAgMzIsOTgsMTAxLDMyLDEwMCwxMDEsMTAyLDEwNSwxMTAsMTAxLDEwMCwzMiwxMTEsMTE0LDMyLDk5LAorICAgIDExMSwxMTcsMTA4LDEwMCwzMiw5OCwxMDEsMzIsMTE1LDEwMSwxMTYsMzIsMTE2LDExMSwzMiw3OCwKKyAgICAxMTEsMTEwLDEwMSwxMCwzMiwzMiwzMiwzMiwxMTYsMTExLDMyLDExNCwxMDEsMTEyLDExNCwxMDEsCisgICAgMTE1LDEwMSwxMTAsMTE2LDMyLDExNiwxMDQsOTcsMTE2LDMyLDEwNSwxMTYsMTE1LDMyLDExMiwxMTQsCisgICAgMTExLDExMiwxMDEsMTE0LDMyLDExOCw5NywxMDgsMTE3LDEwMSwzMiwxMDUsMTE1LDMyLDExNywxMTAsCisgICAgMTA3LDExMCwxMTEsMTE5LDExMCw0NiwxMCwxMCwzMiwzMiwzMiwzMiwxMTcsMTEsMCwwLAorICAgIDAsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LDk1LDExNyw4LDAsMCwKKyAgICAwLDk1LDk1LDExMCw5NywxMDksMTAxLDk1LDk1LDExNyw4LDAsMCwwLDk1LDk1LAorICAgIDExMiw5NywxMTYsMTA0LDk1LDk1LDExNywxLDAsMCwwLDQ2LDEwNSwwLDAsMCwKKyAgICAwLDc4LDQwLDMsMCwwLDAsMTE3LDMsMCwwLDAsMTAzLDEwMSwxMTYsMTE3LAorICAgIDQsMCwwLDAsNzgsMTExLDExMCwxMDEsMTE3LDEwLDAsMCwwLDExNCwxMTIsOTcsCisgICAgMTE0LDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDQwLDIsMCwwLDAsMTE3LDcsMCwwLAorICAgIDAsMTAzLDEwOCwxMTEsOTgsOTcsMTA4LDExNSwxMTcsNywwLDAsMCwxMTIsOTcsOTksCisgICAgMTA3LDk3LDEwMywxMDEsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwKKyAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKKyAgICAxMTcsMTcsMCwwLDAsOTUsOTksOTcsMTA4LDk5LDk1LDk1LDk1LDExMiw5Nyw5OSwKKyAgICAxMDcsOTcsMTAzLDEwMSw5NSw5NSw5MSw1LDAsMCwxMTUsMTIsMCwwLDAsMCwKKyAgICA3LDE1LDEsMTIsMSwxMCwxLDEyLDEsMjUsMSwxMTcsMTcsMCwwLDAsCisgICAgOTUsOTksOTcsMTA4LDk5LDk1LDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSwKKyAgICA5NSw5OSw1LDAsMCwwLDAsMCwwLDAsOCwwLDAsMCw1LDAsCisgICAgMCwwLDY3LDAsMCwwLDExNSwyMDMsMCwwLDAsMTI0LDQsMCwxMDAsMSwKKyAgICAwLDEwNywyLDAsMTE0LDI3LDAsMTE2LDAsMCwxMjQsMCwwLDEzMSwxLDAsCisgICAgMTI1LDUsMCwxMTAsMzAsMCwxMTYsMSwwLDEyNCwxLDAsMTMxLDEsMCwxMjUsCisgICAgNiwwLDExNiwwLDAsMTI0LDAsMCwxMjQsNiwwLDEyNCw0LDAsMTMxLDMsCisgICAgMCwxMjUsNSwwLDEyNCwzLDAsMTE1LDE4MywwLDEyNCw0LDAsMTAwLDEsMCwKKyAgICAxMDcsMiwwLDExNCw5OCwwLDExNiwwLDAsMTI0LDAsMCwxMDYsMiwwLDEwMCwKKyAgICAyLDAsMTMxLDEsMCwxMDAsMSwwLDI1LDEzMSwxLDAsODMsMTI0LDAsMCwKKyAgICAxMTUsMTA4LDAsMTI0LDUsMCw4MywxMTYsMywwLDEyNCwwLDAsMTMxLDEsMCwKKyAgICAxMTYsMywwLDEyNCwwLDAsMTA2LDIsMCwxMDAsMiwwLDEzMSwxLDAsMTAwLAorICAgIDEsMCwyNSwxMzEsMSwwLDI0LDEyNSw3LDAsMTE2LDQsMCwxMDYsNSwwLAorICAgIDEyNCw1LDAsMTA2LDYsMCwxMDAsMywwLDExNiwzLDAsMTI0LDUsMCwxMDYsCisgICAgNiwwLDEzMSwxLDAsMTI0LDcsMCwyNCwxMzMsMiwwLDI1LDI1LDgzLDExMCwKKyAgICAxNiwwLDExNiw3LDAsMTI0LDUsMCwxMjQsMywwLDExNiwwLDAsMTMxLDMsCisgICAgMCw4MywxMDAsMywwLDgzLDQwLDQsMCwwLDAsMTE3LDIxNCwxLDAsMCwKKyAgICA3MywxMDksMTEyLDExMSwxMTQsMTE2LDMyLDk3LDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDQ2LAorICAgIDEwLDEwLDMyLDMyLDMyLDMyLDg0LDEwNCwxMDEsMzIsMzksMTAzLDEwOCwxMTEsOTgsOTcsCisgICAgMTA4LDExNSwzOSwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsMzIsMTA1LDExNSwzMiwKKyAgICAxMTcsMTE1LDEwMSwxMDAsMzIsMTE2LDExMSwzMiwxMDUsMTEwLDEwMiwxMDEsMTE0LDMyLDExOSwxMDQsCisgICAgMTAxLDExNCwxMDEsMzIsMTE2LDEwNCwxMDEsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTA1LAorICAgIDExNSwzMiwxMTEsOTksOTksMTE3LDExNCwxMDUsMTEwLDEwMywzMiwxMDIsMTE0LDExMSwxMDksMTAsCisgICAgMzIsMzIsMzIsMzIsMTE2LDExMSwzMiwxMDQsOTcsMTEwLDEwMCwxMDgsMTAxLDMyLDExNCwxMDEsCisgICAgMTA4LDk3LDExNiwxMDUsMTE4LDEwMSwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMTUsNDYsMzIsCisgICAgODQsMTA0LDEwMSwzMiwzOSwxMDgsMTExLDk5LDk3LDEwOCwxMTUsMzksMzIsOTcsMTE0LDEwMywKKyAgICAxMTcsMTA5LDEwMSwxMTAsMTE2LDMyLDEwNSwxMTUsMzIsMTA1LDEwMywxMTAsMTExLDExNCwxMDEsMTAwLAorICAgIDQ2LDMyLDg0LDEwNCwxMDEsMTAsMzIsMzIsMzIsMzIsMzksMTAyLDExNCwxMTEsMTA5LDEwOCwKKyAgICAxMDUsMTE1LDExNiwzOSwzMiw5NywxMTQsMTAzLDExNywxMDksMTAxLDExMCwxMTYsMzIsMTE1LDExMiwKKyAgICAxMDEsOTksMTA1LDEwMiwxMDUsMTAxLDExNSwzMiwxMTksMTA0LDk3LDExNiwzMiwxMTUsMTA0LDExMSwKKyAgICAxMTcsMTA4LDEwMCwzMiwxMDEsMTIwLDEwNSwxMTUsMTE2LDMyLDk3LDExNSwzMiw5NywxMTYsMTE2LAorICAgIDExNCwxMDUsOTgsMTE3LDExNiwxMDEsMTE1LDMyLDExMSwxMTAsMzIsMTE2LDEwNCwxMDEsMzIsMTA5LAorICAgIDExMSwxMDAsMTE3LDEwOCwxMDEsMTAsMzIsMzIsMzIsMzIsOTgsMTAxLDEwNSwxMTAsMTAzLDMyLAorICAgIDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsMzIsNDAsMTAxLDQ2LDEwMyw0NiwzMiw5NiwKKyAgICA5NiwxMDIsMTE0LDExMSwxMDksMzIsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMzIsMTA1LDEwOSwxMTIsCisgICAgMTExLDExNCwxMTYsMzIsNjAsMTAyLDExNCwxMTEsMTA5LDEwOCwxMDUsMTE1LDExNiw2Miw5Niw5NiwKKyAgICA0MSw0NiwzMiwzMiw4NCwxMDQsMTAxLDMyLDM5LDEwOCwxMDEsMTE4LDEwMSwxMDgsMzksMTAsCisgICAgMzIsMzIsMzIsMzIsOTcsMTE0LDEwMywxMTcsMTA5LDEwMSwxMTAsMTE2LDMyLDExNCwxMDEsMTEyLAorICAgIDExNCwxMDEsMTE1LDEwMSwxMTAsMTE2LDExNSwzMiwxMTYsMTA0LDEwMSwzMiwxMTIsOTcsOTksMTA3LAorICAgIDk3LDEwMywxMDEsMzIsMTA4LDExMSw5OSw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE2LDExMSwzMiwKKyAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwzMiwxMDIsMTE0LDExMSwxMDksMzIsMTA1LDExMCwzMiw5NywKKyAgICAzMiwxMTQsMTAxLDEwOCw5NywxMTYsMTA1LDExOCwxMDEsMTAsMzIsMzIsMzIsMzIsMTA1LDEwOSwKKyAgICAxMTIsMTExLDExNCwxMTYsMzIsNDAsMTAxLDQ2LDEwMyw0NiwzMiw5Niw5NiwxMDIsMTE0LDExMSwKKyAgICAxMDksMzIsNDYsNDYsMTEyLDEwNywxMDMsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMzIsMTA5LAorICAgIDExMSwxMDAsOTYsOTYsMzIsMTE5LDExMSwxMTcsMTA4LDEwMCwzMiwxMDQsOTcsMTE4LDEwMSwzMiwKKyAgICA5NywzMiwzOSwxMDgsMTAxLDExOCwxMDEsMTA4LDM5LDMyLDExMSwxMDIsMzIsNTAsNDEsNDYsCisgICAgMTAsMTAsMzIsMzIsMzIsMzIsMTA1LDAsMCwwLDAsMTE3LDEsMCwwLDAsCisgICAgNDYsNzgsNDAsOCwwLDAsMCwxMTcsMTEsMCwwLDAsOTUsMTAzLDk5LDEwMCwKKyAgICA5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMTcsMTcsMCwwLDAsOTUsOTksOTcsMTA4LAorICAgIDk5LDk1LDk1LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSw5NSw5NSwxMTcsOSwwLAorICAgIDAsMCwxMTIsOTcsMTE0LDExNiwxMDUsMTE2LDEwNSwxMTEsMTEwLDExNywzLDAsMCwwLAorICAgIDEwOCwxMDEsMTEwLDExNywzLDAsMCwwLDExNSwxMjEsMTE1LDExNyw3LDAsMCwwLAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwxMTcsOCwwLDAsMCw5NSw5NSwxMTAsOTcsCisgICAgMTA5LDEwMSw5NSw5NSwxMTcsMTYsMCwwLDAsOTUsMTA0LDk3LDExMCwxMDAsMTA4LDEwMSwKKyAgICA5NSwxMDIsMTE0LDExMSwxMDksMTA4LDEwNSwxMTUsMTE2LDQwLDgsMCwwLDAsMTE3LDQsCisgICAgMCwwLDAsMTEwLDk3LDEwOSwxMDEsMTE3LDcsMCwwLDAsMTAzLDEwOCwxMTEsOTgsCisgICAgOTcsMTA4LDExNSwxMTcsNiwwLDAsMCwxMDgsMTExLDk5LDk3LDEwOCwxMTUsMTE3LDgsCisgICAgMCwwLDAsMTAyLDExNCwxMTEsMTA5LDEwOCwxMDUsMTE1LDExNiwxMTcsNSwwLDAsMCwKKyAgICAxMDgsMTAxLDExOCwxMDEsMTA4LDExNyw2LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLAorICAgIDExNyw3LDAsMCwwLDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwxMTcsNywwLDAsCisgICAgMCw5OSwxMTcsMTE2LDk1LDExMSwxMDIsMTAyLDQwLDAsMCwwLDAsNDAsMCwwLAorICAgIDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LAorICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LAorICAgIDExNCw5NywxMTIsNjIsMTE3LDEwLDAsMCwwLDk1LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDk1LDk1LDEwNiw1LDAsMCwxMTUsMjQsMCwwLDAsMCwxMSwxMiwxLAorICAgIDE1LDIsMTIsMSwxOCwxLDYsMywxMiwxLDIzLDEsNiwxLDQsMiwKKyAgICAzNSwxLDQwLDIsMTE3LDEwLDAsMCwwLDk1LDk1LDEwNSwxMDksMTEyLDExMSwxMTQsCisgICAgMTE2LDk1LDk1LDk5LDIsMCwwLDAsMCwwLDAsMCwxMywwLDAsMCwKKyAgICAxMywwLDAsMCw2NywwLDAsMCwxMTUsMTI0LDIsMCwwLDEyNCwxLDAsCisgICAgOTcsMCwwLDEyNCwwLDAsOTcsMSwwLDEyMCw0NywwLDExNiwwLDAsMTE2LAorICAgIDEsMCwxMDIsMiwwLDY4LDkzLDMzLDAsMTI1LDIsMCwxMTYsMiwwLDEyNCwKKyAgICAyLDAsMTAwLDEsMCwxMzEsMiwwLDExNSwyNSwwLDExNiwzLDAsMTI0LDIsCisgICAgMCw5NSw0LDAsMTEzLDI1LDAsMTEzLDI1LDAsODcsMTE2LDEsMCwxMDYsNSwKKyAgICAwLDExNiw2LDAsMjUsMTI1LDMsMCwxMjAsNzYsMCwxMDAsMjcsMCw2OCw5MywKKyAgICA2OCwwLDEyNSw0LDAsMTI0LDQsMCwxMTYsMSwwLDEwNiw1LDAsMTA3LDcsCisgICAgMCwxMTQsMTIxLDAsMTE2LDMsMCwxMDYsNywwLDEyNCw0LDAsMTMxLDEsMCwKKyAgICAxMjUsNSwwLDExMCwxMywwLDExNiwxLDAsMTA2LDUsMCwxMjQsNCwwLDI1LAorICAgIDEyNSw1LDAsMTE2LDgsMCwxMjQsMywwLDEyNCw0LDAsMTI0LDUsMCwxMzEsCisgICAgMywwLDEsMTEzLDgyLDAsODcsMTAwLDYsMCwxMDAsNywwLDEwMywxLDAsCisgICAgMTAyLDIsMCwxMDAsOCwwLDEwMCw5LDAsMTAwLDcsMCwxMDMsMiwwLDEwMiwKKyAgICAyLDAsMTAwLDEwLDAsMTAwLDksMCwxMDAsNywwLDEwMywyLDAsMTAyLDIsCisgICAgMCwxMDIsMywwLDEyNSw2LDAsMTIwLDE4OSwwLDEyNCw2LDAsNjgsOTMsMTY5LAorICAgIDAsOTIsMiwwLDEyNSw3LDAsMTI1LDgsMCwxMTYsOSwwLDEwMCwxMSwwLAorICAgIDEwMCwxMiwwLDEzMiwwLDAsMTI0LDgsMCw2OCwxMzEsMSwwLDEzMSwxLDAsCisgICAgMTE1LDI1MiwwLDExNiwxMCwwLDEzMCwxLDAsMTI0LDgsMCwxMDAsMTMsMCwyNSwKKyAgICAxMjUsOSwwLDEyNCw3LDAsMTE2LDEsMCwxMDYsNSwwLDEwNyw2LDAsMTE0LAorICAgIDM4LDEsMTE2LDEsMCwxMDYsNSwwLDEyNCw3LDAsMjUsMTI1LDEwLDAsODAsCisgICAgMTEzLDIwOSwwLDEyMSw2MCwwLDExNiwzLDAsMTA2LDcsMCwxMjQsNywwLDEzMSwKKyAgICAxLDAsMTI1LDEwLDAsMTI0LDcsMCwxMDAsMTAsMCwxMDcsMiwwLDExNCw5NiwKKyAgICAxLDEwMCwxNCwwLDExNiwxLDAsMTA2LDExLDAsMTA3LDYsMCwxMTQsOTYsMSwKKyAgICAxMjQsOCwwLDEwMCwxNSwwLDI1LDEyNSw5LDAsMTEwLDAsMCw4MCw4NywxMTMsCisgICAgMjA5LDAsNCwxMTYsMTIsMCwxMDcsMTAsMCwxMTQsMTIxLDEsMSwxLDEsMTE5LAorICAgIDIwOSwwLDg5LDExMywyMDksMCw4OCwxMTMsMjA5LDAsODcsMTE2LDEyLDAsMTAwLDE2LAorICAgIDAsMTMxLDEsMCwxMzAsMSwwLDEyMSwxOSwwLDExNiwzLDAsMTA2LDcsMCwKKyAgICAxMDAsMTcsMCwxMzEsMSwwLDEyNSwxMSwwLDg3LDExMCwyNCwwLDQsMTE2LDEyLAorICAgIDAsMTA3LDEwLDAsMTE0LDE4MywxLDEsMSwxLDEwMCwyNiwwLDEyNSwxMSwwLAorICAgIDg5LDExMCwxLDAsODgsMTE2LDMsMCwxMDYsNywwLDEwMCwxOCwwLDEzMSwxLAorICAgIDAsMTI1LDEyLDAsMTE2LDgsMCwxMjQsMywwLDEwMCwxOSwwLDEyNCwxMCwwLAorICAgIDEzMSwzLDAsMSwxMTYsOCwwLDEyNCwzLDAsMTAwLDE3LDAsMTI0LDExLDAsCisgICAgMTMxLDMsMCwxLDExNiw4LDAsMTI0LDMsMCwxMDAsMTgsMCwxMjQsMTIsMCwKKyAgICAxMzEsMywwLDEsMTE2LDgsMCwxMjQsMywwLDEwMCwyMCwwLDEyNCw5LDAsCisgICAgMTMxLDMsMCwxLDExNiw4LDAsMTI0LDMsMCwxMDAsMjEsMCwxMTYsMTQsMCwKKyAgICAxMjQsOCwwLDEzMSwxLDAsMTMxLDMsMCwxLDExNiw4LDAsMTI0LDMsMCwKKyAgICAxMDAsMjIsMCwxMTYsMTUsMCwxMzEsMCwwLDEzMSwzLDAsMSwxMTYsOCwwLAorICAgIDEyNCwzLDAsMTAwLDIzLDAsMTI0LDEsMCwxMDYsMTYsMCwxMzEsMCwwLDEzMSwKKyAgICAzLDAsMSwxMTYsOCwwLDEyNCwzLDAsMTAwLDI0LDAsMTE2LDEsMCwxMDYsCisgICAgMTcsMCwxMDYsMTgsMCwxMzEsMywwLDEsMTI0LDcsMCwxMDAsOCwwLDEwNywKKyAgICAyLDAsMTE0LDEyMCwyLDExNiwxOSwwLDEwNiwyMCwwLDEwMCwyNSwwLDEzMSwxLAorICAgIDAsMSwxMTAsMCwwLDEwMCwyNiwwLDgzLDQwLDI4LDAsMCwwLDExNywyNTAsCisgICAgMCwwLDAsODMsMTAxLDExNiwxMTcsMTEyLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwOCwKKyAgICAxMDUsOTgsMzIsOTgsMTIxLDMyLDEwNSwxMDksMTEyLDExMSwxMTQsMTE2LDEwNSwxMTAsMTAzLDMyLAorICAgIDExMCwxMDEsMTAxLDEwMCwxMDEsMTAwLDMyLDk4LDExNywxMDUsMTA4LDExNiw0NSwxMDUsMTEwLDMyLAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiw5NywxMTAsMTAwLDMyLDEwNSwxMTAsMTA2LDEwMSwKKyAgICA5OSwxMTYsMTA1LDExMCwxMDMsMzIsMTE2LDEwNCwxMDEsMTA5LDEwLDMyLDMyLDMyLDMyLDEwNSwKKyAgICAxMTAsMTE2LDExMSwzMiwxMTYsMTA0LDEwMSwzMiwxMDMsMTA4LDExMSw5OCw5NywxMDgsMzIsMTEwLAorICAgIDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsNDYsMTAsMTAsMzIsMzIsMzIsMzIsNjUsCisgICAgMTE1LDMyLDExNSwxMjEsMTE1LDMyLDEwNSwxMTUsMzIsMTEwLDEwMSwxMDEsMTAwLDEwMSwxMDAsMzIsCisgICAgMTAyLDExMSwxMTQsMzIsMTE1LDEyMSwxMTUsNDYsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE1LDMyLAorICAgIDk3LDk5LDk5LDEwMSwxMTUsMTE1LDMyLDk3LDExMCwxMDAsMzIsOTUsMTA1LDEwOSwxMTIsMzIsCisgICAgMTA1LDExNSwzMiwxMTAsMTAxLDEwMSwxMDAsMTAxLDEwMCwzMiwxMTYsMTExLDMyLDEwOCwxMTEsOTcsCisgICAgMTAwLDMyLDk4LDExNywxMDUsMTA4LDExNiw0NSwxMDUsMTEwLDEwLDMyLDMyLDMyLDMyLDEwOSwKKyAgICAxMTEsMTAwLDExNywxMDgsMTAxLDExNSw0NCwzMiwxMTYsMTA0LDExMSwxMTUsMTAxLDMyLDExNiwxMTksCisgICAgMTExLDMyLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwzMiwxMDksMTE3LDExNSwxMTYsMzIsOTgsCisgICAgMTAxLDMyLDEwMSwxMjAsMTEyLDEwOCwxMDUsOTksMTA1LDExNiwxMDgsMTIxLDMyLDExMiw5NywxMTUsCisgICAgMTE1LDEwMSwxMDAsMzIsMTA1LDExMCw0NiwxMCwxMCwzMiwzMiwzMiwzMiwxMTcsMTAsMCwKKyAgICAwLDAsOTUsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCw5NSw5NSwxMTcsMywwLDAsCisgICAgMCw5NSwxMDUsMTExLDExNyw5LDAsMCwwLDk1LDExOSw5NywxMTQsMTEwLDEwNSwxMTAsCisgICAgMTAzLDExNSwxMTcsOCwwLDAsMCw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCwxMTUsMTE3LAorICAgIDcsMCwwLDAsMTA5LDk3LDExNCwxMTUsMTA0LDk3LDEwOCwxMTcsNSwwLDAsMCwKKyAgICAxMTIsMTExLDExNSwxMDUsMTIwLDExNywxLDAsMCwwLDQ3LDExNywyLDAsMCwwLAorICAgIDExMCwxMTYsMTE3LDEsMCwwLDAsOTIsMTE3LDMsMCwwLDAsMTExLDExNSw1MCwKKyAgICA5OSwxLDAsMCwwLDAsMCwwLDAsMiwwLDAsMCwzLDAsMCwKKyAgICAwLDExNSwwLDAsMCwxMTUsMzMsMCwwLDAsMTI0LDAsMCw5MywyMywwLAorICAgIDEyNSwxLDAsMTE2LDAsMCwxMjQsMSwwLDEzMSwxLDAsMTAwLDAsMCwxMDcsCisgICAgMiwwLDg2LDEsMTEzLDMsMCwxMDAsMSwwLDgzLDQwLDIsMCwwLDAsCisgICAgMTA1LDEsMCwwLDAsNzgsNDAsMSwwLDAsMCwxMTcsMywwLDAsMCwKKyAgICAxMDgsMTAxLDExMCw0MCwyLDAsMCwwLDExNywyLDAsMCwwLDQ2LDQ4LDExNywKKyAgICAzLDAsMCwwLDExNSwxMDEsMTEyLDQwLDAsMCwwLDAsNDAsMCwwLDAsCisgICAgMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LDEwOSwKKyAgICAxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LDExNCwKKyAgICA5NywxMTIsNjIsMTE3LDksMCwwLDAsNjAsMTAzLDEwMSwxMTAsMTAxLDEyMCwxMTIsMTE0LAorICAgIDYyLDE2Nyw1LDAsMCwxMTUsMiwwLDAsMCw2LDAsMTE3LDI1LDAsMCwKKyAgICAwLDk1LDExNSwxMDEsMTE2LDExNywxMTIsNDYsNjAsMTA4LDExMSw5OSw5NywxMDgsMTE1LDYyLAorICAgIDQ2LDYwLDEwMywxMDEsMTEwLDEwMSwxMjAsMTEyLDExNCw2MiwxMDUsMCwwLDAsMCwxMTcsCisgICAgNywwLDAsMCw2OSw3Nyw4OCwzMiw3MSw2Nyw2NywxMDUsMSwwLDAsMCwKKyAgICAxMTcsMzAsMCwwLDAsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCwzMiwxMTQsCisgICAgMTAxLDExMywxMTcsMTA1LDExNCwxMDEsMTE1LDMyLDExMiwxMTEsMTE1LDEwNSwxMjAsMzIsMTExLDExNCwKKyAgICAzMiwxMTAsMTE2LDExNyw3LDAsMCwwLDk1LDExNiwxMDQsMTE0LDEwMSw5NywxMDAsMTE3LAorICAgIDgsMCwwLDAsOTUsMTE5LDEwMSw5NywxMDcsMTE0LDEwMSwxMDIsMTE3LDMsMCwwLAorICAgIDAsOTUsMTExLDExNSwxMTcsOCwwLDAsMCwxMTIsOTcsMTE2LDEwNCw5NSwxMTUsMTAxLAorICAgIDExMiwxMTcsMTUsMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTE1LDEwMSwxMTIsOTcsMTE0LAorICAgIDk3LDExNiwxMTEsMTE0LDExNSwxMTcsMTEsMCwwLDAsOTUsMTE0LDEwMSwxMDgsOTcsMTIwLAorICAgIDk1LDk5LDk3LDExNSwxMDEsMTE3LDEzLDAsMCwwLDk1LDc3LDY1LDcxLDczLDY3LAorICAgIDk1LDc4LDg1LDc3LDY2LDY5LDgyLDExNyw0LDAsMCwwLDk1LDg0LDY1LDcxLAorICAgIDExNyw0LDAsMCwwLDQ2LDExMiwxMjEsMTE5LDc4LDQwLDQsMCwwLDAsMTE3LAorICAgIDMsMCwwLDAsOTUsMTA1LDExMSwxMTcsOSwwLDAsMCw5NSwxMTksOTcsMTE0LAorICAgIDExMCwxMDUsMTEwLDEwMywxMTUsMTE3LDgsMCwwLDAsOTgsMTE3LDEwNSwxMDgsMTE2LDEwNSwKKyAgICAxMTAsMTE1LDExNyw3LDAsMCwwLDEwOSw5NywxMTQsMTE1LDEwNCw5NywxMDgsNDAsMjEsCisgICAgMCwwLDAsMTE3LDQsMCwwLDAsOTUsMTA1LDEwOSwxMTIsMTE3LDMsMCwwLAorICAgIDAsMTE1LDEyMSwxMTUsMTE3LDcsMCwwLDAsMTA0LDk3LDExNSw5NywxMTYsMTE2LDExNCwKKyAgICAxMTcsMTUsMCwwLDAsNjYsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsNzMsMTA5LDExMiwxMTEsCisgICAgMTE0LDExNiwxMDEsMTE0LDExNywxMCwwLDAsMCw5NSw5NSwxMDgsMTExLDk3LDEwMCwxMDEsCisgICAgMTE0LDk1LDk1LDExNyw3LDAsMCwwLDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNSwxMTcsCisgICAgOCwwLDAsMCw5NSw5NSwxMTAsOTcsMTA5LDEwMSw5NSw5NSwxMTcsMTEsMCwwLAorICAgIDAsMTA4LDExMSw5NywxMDAsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDcsMCwwLAorICAgIDAsMTE1LDEwMSwxMTYsOTcsMTE2LDExNiwxMTQsMTE3LDMsMCwwLDAsOTcsMTA4LDEwOCwKKyAgICAxMTcsMTQsMCwwLDAsNjUsMTE1LDExNSwxMDEsMTE0LDExNiwxMDUsMTExLDExMCw2OSwxMTQsCisgICAgMTE0LDExMSwxMTQsMTE3LDcsMCwwLDAsMTE4LDEwMSwxMTQsMTE1LDEwNSwxMTEsMTEwLDExNywKKyAgICAxMSwwLDAsMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDY5LDExNCwxMTQsMTExLDExNCwxMTcsCisgICAgNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsMywwLDAsMCwxMTUsMTAxLDExNiwKKyAgICAxMTcsMTYsMCwwLDAsOTUsMTA5LDk3LDEwNywxMDEsOTUsMTE0LDEwMSwxMDgsOTcsMTIwLAorICAgIDk1LDk5LDk3LDExNSwxMDEsMTE3LDksMCwwLDAsMTAzLDEwMSwxMTYsOTUsMTA5LDk3LAorICAgIDEwMywxMDUsOTksMTE3LDE0LDAsMCwwLDEwNSwxMDksMTEyLDEwOCwxMDEsMTA5LDEwMSwxMTAsCisgICAgMTE2LDk3LDExNiwxMDUsMTExLDExMCwxMTcsOSwwLDAsMCw5OSw5Nyw5OSwxMDQsMTAxLAorICAgIDk1LDExNiw5NywxMDMsMTE3LDE1LDAsMCwwLDgzLDc5LDg1LDgyLDY3LDY5LDk1LAorICAgIDgzLDg1LDcwLDcwLDczLDg4LDY5LDgzLDExNyw2LDAsMCwwLDk3LDExMiwxMTIsCisgICAgMTAxLDExMCwxMDAsNDAsMTMsMCwwLDAsMTE3LDEwLDAsMCwwLDExNSwxMjEsMTE1LAorICAgIDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywxMSwwLDAsMCw5NSwxMDUsMTA5LDExMiwKKyAgICA5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsNiwwLDAsMCwxMDksMTExLDEwMCwxMTcsCisgICAgMTA4LDEwMSwxMTcsMTEsMCwwLDAsMTE1LDEwMSwxMDgsMTAyLDk1LDEwOSwxMTEsMTAwLDExNywKKyAgICAxMDgsMTAxLDExNywxMiwwLDAsMCw5OCwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw5NSwxMTAsCisgICAgOTcsMTA5LDEwMSwxMTcsMTQsMCwwLDAsOTgsMTE3LDEwNSwxMDgsMTE2LDEwNSwxMTAsOTUsCisgICAgMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDEwLDAsMCwwLDExMSwxMTUsOTUsMTAwLDEwMSwKKyAgICAxMTYsOTcsMTA1LDEwOCwxMTUsMTE3LDEwLDAsMCwwLDk4LDExNywxMDUsMTA4LDExNiwxMDUsCisgICAgMTEwLDk1LDExMSwxMTUsMTE3LDE1LDAsMCwwLDExMiw5NywxMTYsMTA0LDk1LDExNSwxMDEsCisgICAgMTEyLDk3LDExNCw5NywxMTYsMTExLDExNCwxMTUsMTE3LDgsMCwwLDAsMTEyLDk3LDExNiwKKyAgICAxMDQsOTUsMTE1LDEwMSwxMTIsMTE3LDksMCwwLDAsMTExLDExNSw5NSwxMDksMTExLDEwMCwKKyAgICAxMTcsMTA4LDEwMSwxMTcsMTMsMCwwLDAsMTE2LDEwNCwxMTQsMTAxLDk3LDEwMCw5NSwxMDksCisgICAgMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsMTQsMCwwLDAsMTE5LDEwMSw5NywxMDcsMTE0LDEwMSwKKyAgICAxMDIsOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsNDAsMCwwLDAsMCw0MCwwLDAsCisgICAgMCwwLDExNywyOSwwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsCisgICAgMTA5LDExMiwxMTEsMTE0LDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsCisgICAgMTE0LDk3LDExMiw2MiwxMTcsNiwwLDAsMCw5NSwxMTUsMTAxLDExNiwxMTcsMTEyLDE0MCwKKyAgICA1LDAsMCwxMTUsODIsMCwwLDAsMCw5LDYsMSw2LDIsMTksMSwKKyAgICAxNSwxLDE2LDIsMTMsMSwxMywxLDE1LDEsMTgsMiwxMywxLDIwLDIsCisgICAgNDgsMSwxOSwyLDMxLDEsMTAsMSwxNSwxLDEzLDEsNCwyLDMsMSwKKyAgICAxNSwyLDI3LDEsMTMsMSw1LDEsMTMsMSwxMiwyLDEyLDIsMywxLAorICAgIDE5LDEsMTMsMiwxMSwxLDE1LDIsMTYsMSwxNiwxLDE2LDEsMTYsMSwKKyAgICAyMiwyLDE5LDEsMjIsMSwyMiwxLDEyLDEsMTE3LDYsMCwwLDAsOTUsCisgICAgMTE1LDEwMSwxMTYsMTE3LDExMiw5OSwyLDAsMCwwLDAsMCwwLDAsNiwwLAorICAgIDAsMCw0LDAsMCwwLDY3LDAsMCwwLDExNSwxMzYsMCwwLDAsMTE2LAorICAgIDAsMCwxMjQsMCwwLDEyNCwxLDAsMTMxLDIsMCwxLDExNiwxLDAsMTI0LAorICAgIDEsMCwxMDYsMiwwLDEzMSwwLDAsMTAwLDIsMCwxMDIsMywwLDEyNSwyLAorICAgIDAsMTE2LDQsMCwxMTYsNSwwLDEwMCwzLDAsMTAyLDMsMCwxMjUsMywwLAorICAgIDExNiw3LDAsMTE2LDgsMCwxMDAsMywwLDEwMiwzLDAsMTI1LDQsMCwxMjQsCisgICAgMiwwLDEyNCwzLDAsMTI0LDQsMCwxMDMsMywwLDEyNSw1LDAsMTE2LDksCisgICAgMCwxMDYsMTAsMCwxMDYsMTEsMCwxMTYsMTIsMCwxMDYsMTMsMCwxMjQsNSwwLAorICAgIDE0MCwwLDAsMTAzLDEsMCwxMzEsMSwwLDEsMTE2LDksMCwxMDYsMTQsMCwKKyAgICAxMDYsMTEsMCwxMTYsMTUsMCwxMTYsMTYsMCwxMTYsMTcsMCwxMDMsMywwLDEzMSwKKyAgICAxLDAsMSwxMDAsMSwwLDgzLDQwLDQsMCwwLDAsMTE3LDUwLDAsMCwKKyAgICAwLDczLDExMCwxMTUsMTE2LDk3LDEwOCwxMDgsMzIsMTA1LDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LAorICAgIDEwNSw5OCwzMiw5NywxMTUsMzIsMTE2LDEwNCwxMDEsMzIsMTA1LDEwOSwxMTIsMTA4LDEwMSwxMDksCisgICAgMTAxLDExMCwxMTYsOTcsMTE2LDEwNSwxMTEsMTEwLDMyLDExMSwxMDIsMzIsMTA1LDEwOSwxMTIsMTExLAorICAgIDExNCwxMTYsNDYsNzgsNzAsODQsNDAsMTgsMCwwLDAsMTE3LDYsMCwwLDAsCisgICAgOTUsMTE1LDEwMSwxMTYsMTE3LDExMiwxMTcsMTksMCwwLDAsNjksMTIwLDExNiwxMDEsMTEwLAorICAgIDExNSwxMDUsMTExLDExMCw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDE4LAorICAgIDAsMCwwLDEwMSwxMjAsMTE2LDEwMSwxMTAsMTE1LDEwNSwxMTEsMTEwLDk1LDExNSwxMTcsMTAyLAorICAgIDEwMiwxMDUsMTIwLDEwMSwxMTUsMTE3LDUsMCwwLDAsNzAsOTcsMTA4LDExNSwxMDEsMTE3LAorICAgIDE2LDAsMCwwLDgzLDExMSwxMTcsMTE0LDk5LDEwMSw3MCwxMDUsMTA4LDEwMSw3NiwxMTEsCisgICAgOTcsMTAwLDEwMSwxMTQsMTE3LDE1LDAsMCwwLDgzLDc5LDg1LDgyLDY3LDY5LDk1LAorICAgIDgzLDg1LDcwLDcwLDczLDg4LDY5LDgzLDExNyw0LDAsMCwwLDg0LDExNCwxMTcsCisgICAgMTAxLDExNywyMCwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsMTA4LDEwMSwxMTUsMTE1LAorICAgIDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTcsMCwwLDAsNjYsCisgICAgODksODQsNjksNjcsNzksNjgsNjksOTUsODMsODUsNzAsNzAsNzMsODgsNjksODMsCisgICAgMTE3LDMsMCwwLDAsMTE1LDEyMSwxMTUsMTE3LDEwLDAsMCwwLDExMiw5NywxMTYsCisgICAgMTA0LDk1LDEwNCwxMTEsMTExLDEwNywxMTUsMTE3LDYsMCwwLDAsMTAxLDEyMCwxMTYsMTAxLAorICAgIDExMCwxMDAsMTE3LDEwLDAsMCwwLDcwLDEwNSwxMDgsMTAxLDcwLDEwNSwxMTAsMTAwLDEwMSwKKyAgICAxMTQsMTE3LDksMCwwLDAsMTEyLDk3LDExNiwxMDQsOTUsMTA0LDExMSwxMTEsMTA3LDExNywKKyAgICA5LDAsMCwwLDEwOSwxMDEsMTE2LDk3LDk1LDExMiw5NywxMTYsMTA0LDExNywxNSwwLAorICAgIDAsMCw2NiwxMTcsMTA1LDEwOCwxMTYsMTA1LDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwKKyAgICAxMTQsMTE3LDE0LDAsMCwwLDcwLDExNCwxMTEsMTIyLDEwMSwxMTAsNzMsMTA5LDExMiwxMTEsCisgICAgMTE0LDExNiwxMDEsMTE0LDExNywxMCwwLDAsMCw4MCw5NywxMTYsMTA0LDcwLDEwNSwxMTAsCisgICAgMTAwLDEwMSwxMTQsNDAsNiwwLDAsMCwxMTcsMTAsMCwwLDAsMTE1LDEyMSwxMTUsCisgICAgOTUsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsMTE3LDExLDAsMCwwLDk1LDEwNSwxMDksMTEyLAorICAgIDk1LDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDExNywxMCwwLDAsMCwxMDEsMTIwLDExNiwxMDEsCisgICAgMTEwLDExNSwxMDUsMTExLDExMCwxMTUsMTE3LDYsMCwwLDAsMTE1LDExMSwxMTcsMTE0LDk5LAorICAgIDEwMSwxMTcsOCwwLDAsMCw5OCwxMjEsMTE2LDEwMSw5OSwxMTEsMTAwLDEwMSwxMTcsMTcsCisgICAgMCwwLDAsMTE1LDExNywxMTIsMTEyLDExMSwxMTQsMTE2LDEwMSwxMDAsOTUsMTA4LDExMSw5NywKKyAgICAxMDAsMTAxLDExNCwxMTUsNDAsMCwwLDAsMCw0MCwwLDAsMCwwLDExNywyOSwKKyAgICAwLDAsMCw2MCwxMDIsMTE0LDExMSwxMjIsMTAxLDExMCwzMiwxMDUsMTA5LDExMiwxMTEsMTE0LAorICAgIDExNiwxMDgsMTA1LDk4LDQ2LDk1LDk4LDExMSwxMTEsMTE2LDExNSwxMTYsMTE0LDk3LDExMiw2MiwKKyAgICAxMTcsOCwwLDAsMCw5NSwxMDUsMTEwLDExNSwxMTYsOTcsMTA4LDEwOCwyMDQsNSwwLAorICAgIDAsMTE1LDE0LDAsMCwwLDAsMiwxMywxLDIxLDEsMTUsMSwxNSwxLAorICAgIDE1LDEsMjgsMSwxMTcsOCwwLDAsMCw5NSwxMDUsMTEwLDExNSwxMTYsOTcsMTA4LAorICAgIDEwOCw3OCw0MCwzLDAsMCwwLDExNywzLDAsMCwwLDExOSwxMDUsMTEwLDExNywKKyAgICA2LDAsMCwwLDk5LDEyMSwxMDMsMTE5LDEwNSwxMTAsMTE3LDYsMCwwLDAsMTAwLAorICAgIDk3LDExNCwxMTksMTA1LDExMCw0MCw2NSwwLDAsMCwxMTcsNywwLDAsMCw5NSwKKyAgICA5NSwxMDAsMTExLDk5LDk1LDk1LDExNywyNywwLDAsMCw5NSw2Nyw2NSw4Myw2OSwKKyAgICA5NSw3Myw3OCw4Myw2OSw3OCw4Myw3Myw4NCw3Myw4Niw2OSw5NSw4MCw3Niw2NSwKKyAgICA4NCw3MCw3OSw4Miw3Nyw4MywxMTcsMTYsMCwwLDAsOTUsMTA5LDk3LDEwNywxMDEsCisgICAgOTUsMTE0LDEwMSwxMDgsOTcsMTIwLDk1LDk5LDk3LDExNSwxMDEsMTE3LDcsMCwwLDAsCisgICAgOTUsMTE5LDk1LDEwOCwxMTEsMTEwLDEwMywxMTcsNywwLDAsMCw5NSwxMTQsOTUsMTA4LAorICAgIDExMSwxMTAsMTAzLDExNywxMCwwLDAsMCw5NSwxMTIsOTcsMTE2LDEwNCw5NSwxMDYsMTExLAorICAgIDEwNSwxMTAsMTE3LDExLDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDExNSwxMTIsMTA4LAorICAgIDEwNSwxMTYsMTE3LDE4LDAsMCwwLDk1LDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsOTUsCisgICAgMTA5LDExMSwxMDAsMTAxLDk1LDExNiwxMjEsMTEyLDEwMSwxMTcsMTIsMCwwLDAsOTUsMTEyLAorICAgIDk3LDExNiwxMDQsOTUsMTA1LDExNSwxMDIsMTA1LDEwOCwxMDEsMTE3LDExLDAsMCwwLDk1LAorICAgIDExMiw5NywxMTYsMTA0LDk1LDEwNSwxMTUsMTAwLDEwNSwxMTQsMTE3LDEzLDAsMCwwLDk1LAorICAgIDExOSwxMTQsMTA1LDExNiwxMDEsOTUsOTcsMTE2LDExMSwxMDksMTA1LDk5LDExNyw1LDAsMCwKKyAgICAwLDk1LDExOSwxMTQsOTcsMTEyLDExNyw0LDAsMCwwLDExNiwxMjEsMTEyLDEwMSwxMTcsCisgICAgOCwwLDAsMCw5NSw5NSw5OSwxMTEsMTAwLDEwMSw5NSw5NSwxMTcsMTAsMCwwLAorICAgIDAsOTUsOTksMTExLDEwMCwxMDEsOTUsMTE2LDEyMSwxMTIsMTAxLDExNywxMCwwLDAsMCwKKyAgICAxMTAsMTAxLDExOSw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsMTMsMCwwLDAsOTUsCisgICAgMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsOTUsMTA4LDExMSw5OSwxMDcsMTE1LDExNywxMiwwLDAsCisgICAgMCw5NSw5OCwxMDgsMTExLDk5LDEwNywxMDUsMTEwLDEwMyw5NSwxMTEsMTEwLDExNywxMiwwLAorICAgIDAsMCw4MiwxMTcsMTEwLDExNiwxMDUsMTA5LDEwMSw2OSwxMTQsMTE0LDExMSwxMTQsMTE3LDE0LAorICAgIDAsMCwwLDk1LDY4LDEwMSw5NywxMDAsMTA4LDExMSw5OSwxMDcsNjksMTE0LDExNCwxMTEsCisgICAgMTE0LDExNywxMSwwLDAsMCw5NSw3NywxMTEsMTAwLDExNywxMDgsMTAxLDc2LDExMSw5OSwKKyAgICAxMDcsMTE3LDE2LDAsMCwwLDk1LDY4LDExNywxMDksMTA5LDEyMSw3NywxMTEsMTAwLDExNywKKyAgICAxMDgsMTAxLDc2LDExMSw5OSwxMDcsMTE3LDE2LDAsMCwwLDk1LDEwMywxMDEsMTE2LDk1LAorICAgIDEwOSwxMTEsMTAwLDExNywxMDgsMTAxLDk1LDEwOCwxMTEsOTksMTA3LDExNywxOSwwLDAsMCwKKyAgICA5NSwxMDgsMTExLDk5LDEwNyw5NSwxMTcsMTEwLDEwOCwxMTEsOTksMTA3LDk1LDEwOSwxMTEsMTAwLAorICAgIDExNywxMDgsMTAxLDExNyw4LDAsMCwwLDk1LDgwLDg5LDY3LDY1LDY3LDcyLDY5LAorICAgIDExNywxNSwwLDAsMCw4Myw3OSw4NSw4Miw2Nyw2OSw5NSw4Myw4NSw3MCw3MCwKKyAgICA3Myw4OCw2OSw4MywxMTcsMjMsMCwwLDAsNjgsNjksNjYsODUsNzEsOTUsNjYsCisgICAgODksODQsNjksNjcsNzksNjgsNjksOTUsODMsODUsNzAsNzAsNzMsODgsNjksODMsCisgICAgMTE3LDI3LDAsMCwwLDc5LDgwLDg0LDczLDc3LDczLDkwLDY5LDY4LDk1LDY2LAorICAgIDg5LDg0LDY5LDY3LDc5LDY4LDY5LDk1LDgzLDg1LDcwLDcwLDczLDg4LDY5LDgzLAorICAgIDExNywxNywwLDAsMCw2Niw4OSw4NCw2OSw2Nyw3OSw2OCw2OSw5NSw4Myw4NSwKKyAgICA3MCw3MCw3Myw4OCw2OSw4MywxMTcsNCwwLDAsMCw3OCwxMTEsMTEwLDEwMSwxMTcsCisgICAgMTcsMCwwLDAsOTksOTcsOTksMTA0LDEwMSw5NSwxMDIsMTE0LDExMSwxMDksOTUsMTE1LAorICAgIDExMSwxMTcsMTE0LDk5LDEwMSwxMTcsMTYsMCwwLDAsOTUsMTE4LDEwMSwxMTQsOTgsMTExLAorICAgIDExNSwxMDEsOTUsMTA5LDEwMSwxMTUsMTE1LDk3LDEwMywxMDEsMTE3LDExLDAsMCwwLDExNSwKKyAgICAxMDEsMTE2LDk1LDExMiw5Nyw5OSwxMDcsOTcsMTAzLDEwMSwxMTcsMTAsMCwwLDAsMTE1LAorICAgIDEwMSwxMTYsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsMTcsMCwwLDAsMTA5LDExMSwKKyAgICAxMDAsMTE3LDEwOCwxMDEsOTUsMTAyLDExMSwxMTQsOTUsMTA4LDExMSw5NywxMDAsMTAxLDExNCwxMTcsCisgICAgMTEsMCwwLDAsOTUsOTksMTA0LDEwMSw5OSwxMDcsOTUsMTEwLDk3LDEwOSwxMDEsMTE3LAorICAgIDE3LDAsMCwwLDk1LDExNCwxMDEsMTEzLDExNywxMDUsMTE0LDEwMSwxMTUsOTUsOTgsMTE3LAorICAgIDEwNSwxMDgsMTE2LDEwNSwxMTAsMTE3LDE2LDAsMCwwLDk1LDExNCwxMDEsMTEzLDExNywxMDUsCisgICAgMTE0LDEwMSwxMTUsOTUsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMTE3LDE1LDAsMCwwLDY2LAorICAgIDExNywxMDUsMTA4LDExNiwxMDUsMTEwLDczLDEwOSwxMTIsMTExLDExNCwxMTYsMTAxLDExNCwxMTcsMTQsCisgICAgMCwwLDAsNzAsMTE0LDExMSwxMjIsMTAxLDExMCw3MywxMDksMTEyLDExMSwxMTQsMTE2LDEwMSwKKyAgICAxMTQsMTE3LDEzLDAsMCwwLDk1LDc2LDExMSw5NywxMDAsMTAxLDExNCw2Niw5NywxMTUsCisgICAgMTA1LDk5LDExNSwxMTcsMTIsMCwwLDAsODMsMTExLDExNywxMTQsOTksMTAxLDc2LDExMSwKKyAgICA5NywxMDAsMTAxLDExNCwxMTcsMTAsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzYsMTExLDk3LAorICAgIDEwMCwxMDEsMTE0LDExNywxNiwwLDAsMCw4MywxMTEsMTE3LDExNCw5OSwxMDEsNzAsMTA1LAorICAgIDEwOCwxMDEsNzYsMTExLDk3LDEwMCwxMDEsMTE0LDExNywyMCwwLDAsMCw4MywxMTEsMTE3LAorICAgIDExNCw5OSwxMDEsMTA4LDEwMSwxMTUsMTE1LDcwLDEwNSwxMDgsMTAxLDc2LDExMSw5NywxMDAsMTAxLAorICAgIDExNCwxMTcsMTksMCwwLDAsNjksMTIwLDExNiwxMDEsMTEwLDExNSwxMDUsMTExLDExMCw3MCwKKyAgICAxMDUsMTA4LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsMTE3LDE0LDAsMCwwLDk1LDc4LAorICAgIDk3LDEwOSwxMDEsMTE1LDExMiw5Nyw5OSwxMDEsODAsOTcsMTE2LDEwNCwxMTcsMTUsMCwwLAorICAgIDAsNzgsOTcsMTA5LDEwMSwxMTUsMTEyLDk3LDk5LDEwMSw3NiwxMTEsOTcsMTAwLDEwMSwxMTQsCisgICAgMTE3LDEwLDAsMCwwLDgwLDk3LDExNiwxMDQsNzAsMTA1LDExMCwxMDAsMTAxLDExNCwxMTcsCisgICAgMTAsMCwwLDAsNzAsMTA1LDEwOCwxMDEsNzAsMTA1LDExMCwxMDAsMTAxLDExNCwxMTcsMTgsCisgICAgMCwwLDAsOTUsNzMsMTA5LDExMiwxMTEsMTE0LDExNiw3NiwxMTEsOTksMTA3LDY3LDExMSwKKyAgICAxMTAsMTE2LDEwMSwxMjAsMTE2LDExNywxMywwLDAsMCw5NSwxMTQsMTAxLDExNSwxMTEsMTA4LAorICAgIDExOCwxMDEsOTUsMTEwLDk3LDEwOSwxMDEsMTE3LDEyLDAsMCwwLDk1LDEwMiwxMDUsMTEwLAorICAgIDEwMCw5NSwxMDksMTExLDEwMCwxMTcsMTA4LDEwMSwxMTcsMTMsMCwwLDAsOTUsMTE1LDk3LAorICAgIDExMCwxMDUsMTE2LDEyMSw5NSw5OSwxMDQsMTAxLDk5LDEwNywxMTcsOCwwLDAsMCw5NSwKKyAgICA2OSw4Miw4Miw5NSw3Nyw4Myw3MSwxMTcsMjMsMCwwLDAsOTUsMTAyLDEwNSwxMTAsCisgICAgMTAwLDk1LDk3LDExMCwxMDAsOTUsMTA4LDExMSw5NywxMDAsOTUsMTE3LDExMCwxMDgsMTExLDk5LAorICAgIDEwNywxMDEsMTAwLDExNywxNCwwLDAsMCw5NSwxMDIsMTA1LDExMCwxMDAsOTUsOTcsMTEwLAorICAgIDEwMCw5NSwxMDgsMTExLDk3LDEwMCwxMTcsMTEsMCwwLDAsOTUsMTAzLDk5LDEwMCw5NSwKKyAgICAxMDUsMTA5LDExMiwxMTEsMTE0LDExNiwxMTcsMTYsMCwwLDAsOTUsMTA0LDk3LDExMCwxMDAsCisgICAgMTA4LDEwMSw5NSwxMDIsMTE0LDExMSwxMDksMTA4LDEwNSwxMTUsMTE2LDExNywxNywwLDAsMCwKKyAgICA5NSw5OSw5NywxMDgsOTksOTUsOTUsOTUsMTEyLDk3LDk5LDEwNyw5NywxMDMsMTAxLDk1LAorICAgIDk1LDExNywxMCwwLDAsMCw5NSw5NSwxMDUsMTA5LDExMiwxMTEsMTE0LDExNiw5NSw5NSwKKyAgICAxMTcsMTMsMCwwLDAsOTUsNzcsNjUsNzEsNzMsNjcsOTUsNzgsODUsNzcsNjYsCisgICAgNjksODIsMTE3LDQsMCwwLDAsOTUsODQsNjUsNzEsMTE3LDYsMCwwLDAsCisgICAgOTUsMTE1LDEwMSwxMTYsMTE3LDExMiwxMTcsOCwwLDAsMCw5NSwxMDUsMTEwLDExNSwxMTYsCisgICAgOTcsMTA4LDEwOCw0MCwwLDAsMCwwLDQwLDAsMCwwLDAsNDAsMCwwLAorICAgIDAsMCwxMTcsMjksMCwwLDAsNjAsMTAyLDExNCwxMTEsMTIyLDEwMSwxMTAsMzIsMTA1LAorICAgIDEwOSwxMTIsMTExLDExNCwxMTYsMTA4LDEwNSw5OCw0Niw5NSw5OCwxMTEsMTExLDExNiwxMTUsMTE2LAorICAgIDExNCw5NywxMTIsNjIsMTE3LDgsMCwwLDAsNjAsMTA5LDExMSwxMDAsMTE3LDEwOCwxMDEsCisgICAgNjIsOCwwLDAsMCwxMTUsMTIwLDAsMCwwLDYsMjEsNiwzLDEyLDEzLAorICAgIDEyLDE2LDEyLDEzLDEyLDEyLDEyLDEyLDEyLDEwLDEyLDYsMTIsNywxMiwyMSwKKyAgICAxMiw4LDE1LDMsMTIsMTIsNiwyLDYsMywyMiw0LDE5LDY4LDE5LDIzLAorICAgIDEyLDE3LDEyLDIxLDYsMiw5LDIsOSwxLDksMiw2LDQsMTUsMjIsCisgICAgMTIsOCwxMiwxMywxMiwxMSwxMiw1MSwxMiwxOCwxMiwxMSwxMiwxMywxOSw2MSwKKyAgICAxOSw2MSwxOSw4NSwyMiwxMTEsMTksMjksMjUsMzgsMjUsMjQsMTksNDYsMTksNTUsCisgICAgMTksMTgsMTksODEsMTksMTM1LDE5LDEzLDEyLDksMTIsMTcsMTIsMTcsNiwyLAorICAgIDEyLDQ2LDEyLDEzLDE4LDI1LDEyLDI0LDEyLDE1LDI0LDMwLDYsMSw2LDMsCisgICAgMTIsNjQsCit9OwpkaWZmIC0tZ2l0IGEvUHl0aG9uL21ha2VvcGNvZGV0YXJnZXRzLnB5IGIvUHl0aG9uL21ha2VvcGNvZGV0YXJnZXRzLnB5CmluZGV4IDVkOGU1YTkuLmQ5YTA4NTUgMTAwNzU1Ci0tLSBhL1B5dGhvbi9tYWtlb3Bjb2RldGFyZ2V0cy5weQorKysgYi9QeXRob24vbWFrZW9wY29kZXRhcmdldHMucHkKQEAgLTIzLDkgKzIzLDYgQEAKICAgICBvcGNvZGUgPSBmaW5kX21vZHVsZSgib3Bjb2RlIikKICAgICB0YXJnZXRzID0gWydfdW5rbm93bl9vcGNvZGUnXSAqIDI1NgogICAgIGZvciBvcG5hbWUsIG9wIGluIG9wY29kZS5vcG1hcC5pdGVtcygpOgotICAgICAgICBpZiBvcG5hbWUgPT0gIlNUT1BfQ09ERSI6Ci0gICAgICAgICAgICAjIFhYWCBvcGNvZGUgbm90IGltcGxlbWVudGVkCi0gICAgICAgICAgICBjb250aW51ZQogICAgICAgICB0YXJnZXRzW29wXSA9ICJUQVJHRVRfJXMiICUgb3BuYW1lCiAgICAgZi53cml0ZSgic3RhdGljIHZvaWQgKm9wY29kZV90YXJnZXRzWzI1Nl0gPSB7XG4iKQogICAgIGYud3JpdGUoIixcbiIuam9pbihbIiAgICAmJiVzIiAlIHMgZm9yIHMgaW4gdGFyZ2V0c10pKQpkaWZmIC0tZ2l0IGEvUHl0aG9uL21hcnNoYWwuYyBiL1B5dGhvbi9tYXJzaGFsLmMKaW5kZXggM2UyZmJlYi4uYjk0ZThkOCAxMDA2NDQKLS0tIGEvUHl0aG9uL21hcnNoYWwuYworKysgYi9QeXRob24vbWFyc2hhbC5jCkBAIC01OSw5ICs1OSw5IEBACiAgICAgLyogSWYgZnAgPT0gTlVMTCwgdGhlIGZvbGxvd2luZyBhcmUgdmFsaWQ6ICovCiAgICAgUHlPYmplY3QgKnJlYWRhYmxlOyAgICAvKiBTdHJlYW0tbGlrZSBvYmplY3QgYmVpbmcgcmVhZCBmcm9tICovCiAgICAgUHlPYmplY3QgKnN0cjsKKyAgICBQeU9iamVjdCAqY3VycmVudF9maWxlbmFtZTsKICAgICBjaGFyICpwdHI7CiAgICAgY2hhciAqZW5kOwotICAgIFB5T2JqZWN0ICpzdHJpbmdzOyAvKiBkaWN0IG9uIG1hcnNoYWwsIGxpc3Qgb24gdW5tYXJzaGFsICovCiAgICAgaW50IHZlcnNpb247CiB9IFdGSUxFOwogCkBAIC0zMTEsOSArMzExLDcgQEAKICAgICB9CiAgICAgZWxzZSBpZiAoUHlVbmljb2RlX0NoZWNrRXhhY3QodikpIHsKICAgICAgICAgUHlPYmplY3QgKnV0Zjg7Ci0gICAgICAgIHV0ZjggPSBQeVVuaWNvZGVfRW5jb2RlVVRGOChQeVVuaWNvZGVfQVNfVU5JQ09ERSh2KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9HRVRfU0laRSh2KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdXJyb2dhdGVwYXNzIik7CisgICAgICAgIHV0ZjggPSBQeVVuaWNvZGVfQXNFbmNvZGVkU3RyaW5nKHYsICJ1dGY4IiwgInN1cnJvZ2F0ZXBhc3MiKTsKICAgICAgICAgaWYgKHV0ZjggPT0gTlVMTCkgewogICAgICAgICAgICAgcC0+ZGVwdGgtLTsKICAgICAgICAgICAgIHAtPmVycm9yID0gV0ZFUlJfVU5NQVJTSEFMTEFCTEU7CkBAIC00NDUsNyArNDQzLDYgQEAKICAgICB3Zi5mcCA9IGZwOwogICAgIHdmLmVycm9yID0gV0ZFUlJfT0s7CiAgICAgd2YuZGVwdGggPSAwOwotICAgIHdmLnN0cmluZ3MgPSBOVUxMOwogICAgIHdmLnZlcnNpb24gPSB2ZXJzaW9uOwogICAgIHdfbG9uZyh4LCAmd2YpOwogfQpAQCAtNDU3LDEwICs0NTQsOCBAQAogICAgIHdmLmZwID0gZnA7CiAgICAgd2YuZXJyb3IgPSBXRkVSUl9PSzsKICAgICB3Zi5kZXB0aCA9IDA7Ci0gICAgd2Yuc3RyaW5ncyA9ICh2ZXJzaW9uID4gMCkgPyBQeURpY3RfTmV3KCkgOiBOVUxMOwogICAgIHdmLnZlcnNpb24gPSB2ZXJzaW9uOwogICAgIHdfb2JqZWN0KHgsICZ3Zik7Ci0gICAgUHlfWERFQ1JFRih3Zi5zdHJpbmdzKTsKIH0KIAogdHlwZWRlZiBXRklMRSBSRklMRTsgLyogU2FtZSBzdHJ1Y3Qgd2l0aCBkaWZmZXJlbnQgaW52YXJpYW50cyAqLwpAQCAtNDg1LDcgKzQ4MCw5IEBACiAgICAgICAgIH0KICAgICB9CiAgICAgZWxzZSB7Ci0gICAgICAgIFB5T2JqZWN0ICpkYXRhID0gUHlPYmplY3RfQ2FsbE1ldGhvZChwLT5yZWFkYWJsZSwgInJlYWQiLCAiaSIsIG4pOworICAgICAgICBfUHlfSURFTlRJRklFUihyZWFkKTsKKworICAgICAgICBQeU9iamVjdCAqZGF0YSA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQocC0+cmVhZGFibGUsICZQeUlkX3JlYWQsICJpIiwgbik7CiAgICAgICAgIHJlYWQgPSAwOwogICAgICAgICBpZiAoZGF0YSAhPSBOVUxMKSB7CiAgICAgICAgICAgICBpZiAoIVB5Qnl0ZXNfQ2hlY2soZGF0YSkpIHsKQEAgLTEwNjksNiArMTA2NiwxOCBAQAogICAgICAgICAgICAgZmlsZW5hbWUgPSByX29iamVjdChwKTsKICAgICAgICAgICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKQogICAgICAgICAgICAgICAgIGdvdG8gY29kZV9lcnJvcjsKKyAgICAgICAgICAgIGlmIChQeVVuaWNvZGVfQ2hlY2tFeGFjdChmaWxlbmFtZSkpIHsKKyAgICAgICAgICAgICAgICBpZiAocC0+Y3VycmVudF9maWxlbmFtZSAhPSBOVUxMKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghUHlVbmljb2RlX0NvbXBhcmUoZmlsZW5hbWUsIHAtPmN1cnJlbnRfZmlsZW5hbWUpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBQeV9ERUNSRUYoZmlsZW5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgUHlfSU5DUkVGKHAtPmN1cnJlbnRfZmlsZW5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBwLT5jdXJyZW50X2ZpbGVuYW1lOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBwLT5jdXJyZW50X2ZpbGVuYW1lID0gZmlsZW5hbWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQogICAgICAgICAgICAgbmFtZSA9IHJfb2JqZWN0KHApOwogICAgICAgICAgICAgaWYgKG5hbWUgPT0gTlVMTCkKICAgICAgICAgICAgICAgICBnb3RvIGNvZGVfZXJyb3I7CkBAIC0xMTMxLDcgKzExNDAsNyBAQAogICAgIGFzc2VydChmcCk7CiAgICAgcmYucmVhZGFibGUgPSBOVUxMOwogICAgIHJmLmZwID0gZnA7Ci0gICAgcmYuc3RyaW5ncyA9IE5VTEw7CisgICAgcmYuY3VycmVudF9maWxlbmFtZSA9IE5VTEw7CiAgICAgcmYuZW5kID0gcmYucHRyID0gTlVMTDsKICAgICByZXR1cm4gcl9zaG9ydCgmcmYpOwogfQpAQCAtMTE0Miw3ICsxMTUxLDcgQEAKICAgICBSRklMRSByZjsKICAgICByZi5mcCA9IGZwOwogICAgIHJmLnJlYWRhYmxlID0gTlVMTDsKLSAgICByZi5zdHJpbmdzID0gTlVMTDsKKyAgICByZi5jdXJyZW50X2ZpbGVuYW1lID0gTlVMTDsKICAgICByZi5wdHIgPSByZi5lbmQgPSBOVUxMOwogICAgIHJldHVybiByX2xvbmcoJnJmKTsKIH0KQEAgLTEyMDQsMTEgKzEyMTMsMTAgQEAKICAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIHJmLmZwID0gZnA7CiAgICAgcmYucmVhZGFibGUgPSBOVUxMOwotICAgIHJmLnN0cmluZ3MgPSBQeUxpc3RfTmV3KDApOworICAgIHJmLmN1cnJlbnRfZmlsZW5hbWUgPSBOVUxMOwogICAgIHJmLmRlcHRoID0gMDsKICAgICByZi5wdHIgPSByZi5lbmQgPSBOVUxMOwogICAgIHJlc3VsdCA9IHJfb2JqZWN0KCZyZik7Ci0gICAgUHlfREVDUkVGKHJmLnN0cmluZ3MpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTEyMTksMTIgKzEyMjcsMTEgQEAKICAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIHJmLmZwID0gTlVMTDsKICAgICByZi5yZWFkYWJsZSA9IE5VTEw7CisgICAgcmYuY3VycmVudF9maWxlbmFtZSA9IE5VTEw7CiAgICAgcmYucHRyID0gc3RyOwogICAgIHJmLmVuZCA9IHN0ciArIGxlbjsKLSAgICByZi5zdHJpbmdzID0gUHlMaXN0X05ldygwKTsKICAgICByZi5kZXB0aCA9IDA7CiAgICAgcmVzdWx0ID0gcl9vYmplY3QoJnJmKTsKLSAgICBQeV9ERUNSRUYocmYuc3RyaW5ncyk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTIzMiw3ICsxMjM5LDYgQEAKIFB5TWFyc2hhbF9Xcml0ZU9iamVjdFRvU3RyaW5nKFB5T2JqZWN0ICp4LCBpbnQgdmVyc2lvbikKIHsKICAgICBXRklMRSB3ZjsKLSAgICBQeU9iamVjdCAqcmVzID0gTlVMTDsKIAogICAgIHdmLmZwID0gTlVMTDsKICAgICB3Zi5yZWFkYWJsZSA9IE5VTEw7CkBAIC0xMjQ0LDkgKzEyNTAsNyBAQAogICAgIHdmLmVycm9yID0gV0ZFUlJfT0s7CiAgICAgd2YuZGVwdGggPSAwOwogICAgIHdmLnZlcnNpb24gPSB2ZXJzaW9uOwotICAgIHdmLnN0cmluZ3MgPSAodmVyc2lvbiA+IDApID8gUHlEaWN0X05ldygpIDogTlVMTDsKICAgICB3X29iamVjdCh4LCAmd2YpOwotICAgIFB5X1hERUNSRUYod2Yuc3RyaW5ncyk7CiAgICAgaWYgKHdmLnN0ciAhPSBOVUxMKSB7CiAgICAgICAgIGNoYXIgKmJhc2UgPSBQeUJ5dGVzX0FTX1NUUklORygoUHlCeXRlc09iamVjdCAqKXdmLnN0cik7CiAgICAgICAgIGlmICh3Zi5wdHIgLSBiYXNlID4gUFlfU1NJWkVfVF9NQVgpIHsKQEAgLTEyNjgsMTIgKzEyNzIsNyBAQAogICAgICAgICAgICAgICAgOiJvYmplY3QgdG9vIGRlZXBseSBuZXN0ZWQgdG8gbWFyc2hhbCIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gICAgaWYgKHdmLnN0ciAhPSBOVUxMKSB7Ci0gICAgICAgIC8qIFhYWCBRdWljayBoYWNrIC0tIG5lZWQgdG8gZG8gdGhpcyBkaWZmZXJlbnRseSAqLwotICAgICAgICByZXMgPSBQeUJ5dGVzX0Zyb21PYmplY3Qod2Yuc3RyKTsKLSAgICAgICAgUHlfREVDUkVGKHdmLnN0cik7Ci0gICAgfQotICAgIHJldHVybiByZXM7CisgICAgcmV0dXJuIHdmLnN0cjsKIH0KIAogLyogQW5kIGFuIGludGVyZmFjZSBmb3IgUHl0aG9uIHByb2dyYW1zLi4uICovCkBAIC0xMjg3LDEyICsxMjg2LDE0IEBACiAgICAgaW50IHZlcnNpb24gPSBQeV9NQVJTSEFMX1ZFUlNJT047CiAgICAgUHlPYmplY3QgKnM7CiAgICAgUHlPYmplY3QgKnJlczsKKyAgICBfUHlfSURFTlRJRklFUih3cml0ZSk7CisKICAgICBpZiAoIVB5QXJnX1BhcnNlVHVwbGUoYXJncywgIk9PfGk6ZHVtcCIsICZ4LCAmZiwgJnZlcnNpb24pKQogICAgICAgICByZXR1cm4gTlVMTDsKICAgICBzID0gUHlNYXJzaGFsX1dyaXRlT2JqZWN0VG9TdHJpbmcoeCwgdmVyc2lvbik7CiAgICAgaWYgKHMgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIE5VTEw7Ci0gICAgcmVzID0gUHlPYmplY3RfQ2FsbE1ldGhvZChmLCAid3JpdGUiLCAiTyIsIHMpOworICAgIHJlcyA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoZiwgJlB5SWRfd3JpdGUsICJPIiwgcyk7CiAgICAgUHlfREVDUkVGKHMpOwogICAgIHJldHVybiByZXM7CiB9CkBAIC0xMzE0LDYgKzEzMTUsNyBAQAogbWFyc2hhbF9sb2FkKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqZikKIHsKICAgICBQeU9iamVjdCAqZGF0YSwgKnJlc3VsdDsKKyAgICBfUHlfSURFTlRJRklFUihyZWFkKTsKICAgICBSRklMRSByZjsKIAogICAgIC8qCkBAIC0xMzIxLDcgKzEzMjMsNyBAQAogICAgICAqIFRoaXMgaXMgdG8gZW5zdXJlIHRoYXQgdGhlIG9iamVjdCBwYXNzZWQgaW4gYXQgbGVhc3QKICAgICAgKiBoYXMgYSByZWFkIG1ldGhvZCB3aGljaCByZXR1cm5zIGJ5dGVzLgogICAgICAqLwotICAgIGRhdGEgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGYsICJyZWFkIiwgImkiLCAwKTsKKyAgICBkYXRhID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmLCAmUHlJZF9yZWFkLCAiaSIsIDApOwogICAgIGlmIChkYXRhID09IE5VTEwpCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIGlmICghUHlCeXRlc19DaGVjayhkYXRhKSkgewpAQCAtMTMzMSwxMiArMTMzMywxMSBAQAogICAgICAgICByZXN1bHQgPSBOVUxMOwogICAgIH0KICAgICBlbHNlIHsKLSAgICAgICAgcmYuc3RyaW5ncyA9IFB5TGlzdF9OZXcoMCk7CiAgICAgICAgIHJmLmRlcHRoID0gMDsKICAgICAgICAgcmYuZnAgPSBOVUxMOwogICAgICAgICByZi5yZWFkYWJsZSA9IGY7CisgICAgICAgIHJmLmN1cnJlbnRfZmlsZW5hbWUgPSBOVUxMOwogICAgICAgICByZXN1bHQgPSByZWFkX29iamVjdCgmcmYpOwotICAgICAgICBQeV9ERUNSRUYocmYuc3RyaW5ncyk7CiAgICAgfQogICAgIFB5X0RFQ1JFRihkYXRhKTsKICAgICByZXR1cm4gcmVzdWx0OwpAQCAtMTM4OSwxMiArMTM5MCwxMSBAQAogICAgIG4gPSBwLmxlbjsKICAgICByZi5mcCA9IE5VTEw7CiAgICAgcmYucmVhZGFibGUgPSBOVUxMOworICAgIHJmLmN1cnJlbnRfZmlsZW5hbWUgPSBOVUxMOwogICAgIHJmLnB0ciA9IHM7CiAgICAgcmYuZW5kID0gcyArIG47Ci0gICAgcmYuc3RyaW5ncyA9IFB5TGlzdF9OZXcoMCk7CiAgICAgcmYuZGVwdGggPSAwOwogICAgIHJlc3VsdCA9IHJlYWRfb2JqZWN0KCZyZik7Ci0gICAgUHlfREVDUkVGKHJmLnN0cmluZ3MpOwogICAgIFB5QnVmZmVyX1JlbGVhc2UoJnApOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9QeXRob24vbW9kc3VwcG9ydC5jIGIvUHl0aG9uL21vZHN1cHBvcnQuYwppbmRleCA4NWIwZDY2Li40Mjg5MTRmIDEwMDY0NAotLS0gYS9QeXRob24vbW9kc3VwcG9ydC5jCisrKyBiL1B5dGhvbi9tb2RzdXBwb3J0LmMKQEAgLTE0OCwxNSArMTQ4LDYgQEAKICAgICByZXR1cm4gdjsKIH0KIAotc3RhdGljIGludAotX3VzdHJsZW4oUHlfVU5JQ09ERSAqdSkKLXsKLSAgICBpbnQgaSA9IDA7Ci0gICAgUHlfVU5JQ09ERSAqdiA9IHU7Ci0gICAgd2hpbGUgKCp2ICE9IDApIHsgaSsrOyB2Kys7IH0KLSAgICByZXR1cm4gaTsKLX0KLQogc3RhdGljIFB5T2JqZWN0ICoKIGRvX21rdHVwbGUoY29uc3QgY2hhciAqKnBfZm9ybWF0LCB2YV9saXN0ICpwX3ZhLCBpbnQgZW5kY2hhciwgaW50IG4sIGludCBmbGFncykKIHsKQEAgLTI2OSw3ICsyNjAsNyBAQAogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgaWYgKG4gPCAwKQotICAgICAgICAgICAgICAgICAgICBuID0gX3VzdHJsZW4odSk7CisgICAgICAgICAgICAgICAgICAgIG4gPSBQeV9VTklDT0RFX3N0cmxlbih1KTsKICAgICAgICAgICAgICAgICB2ID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHUsIG4pOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHY7CkBAIC0yOTIsMTEgKzI4Myw2IEBACiAgICAgICAgIGNhc2UgJ0MnOgogICAgICAgICB7CiAgICAgICAgICAgICBpbnQgaSA9IHZhX2FyZygqcF92YSwgaW50KTsKLSAgICAgICAgICAgIGlmIChpIDwgMCB8fCBpID4gUHlVbmljb2RlX0dldE1heCgpKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX092ZXJmbG93RXJyb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlYyBhcmcgbm90IGluIHJhbmdlKDB4MTEwMDAwKSIpOwotICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIFB5VW5pY29kZV9Gcm9tT3JkaW5hbChpKTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9QeXRob24vb3Bjb2RlX3RhcmdldHMuaCBiL1B5dGhvbi9vcGNvZGVfdGFyZ2V0cy5oCmluZGV4IGE5MWRhNzkuLjJkNmJjZGEgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9vcGNvZGVfdGFyZ2V0cy5oCisrKyBiL1B5dGhvbi9vcGNvZGVfdGFyZ2V0cy5oCkBAIC03MSw3ICs3MSw3IEBACiAgICAgJiZUQVJHRVRfU1RPUkVfTE9DQUxTLAogICAgICYmVEFSR0VUX1BSSU5UX0VYUFIsCiAgICAgJiZUQVJHRVRfTE9BRF9CVUlMRF9DTEFTUywKLSAgICAmJl91bmtub3duX29wY29kZSwKKyAgICAmJlRBUkdFVF9ZSUVMRF9GUk9NLAogICAgICYmX3Vua25vd25fb3Bjb2RlLAogICAgICYmX3Vua25vd25fb3Bjb2RlLAogICAgICYmVEFSR0VUX0lOUExBQ0VfTFNISUZULApkaWZmIC0tZ2l0IGEvUHl0aG9uL3BlZXBob2xlLmMgYi9QeXRob24vcGVlcGhvbGUuYwppbmRleCAzNTllZGE4Li41ZDUzNjc3IDEwMDY0NAotLS0gYS9QeXRob24vcGVlcGhvbGUuYworKysgYi9QeXRob24vcGVlcGhvbGUuYwpAQCAtMjMsNiArMjMsNjQgQEAKICNkZWZpbmUgSVNCQVNJQ0JMT0NLKGJsb2Nrcywgc3RhcnQsIGJ5dGVzKSBcCiAgICAgKGJsb2Nrc1tzdGFydF09PWJsb2Nrc1tzdGFydCtieXRlcy0xXSkKIAorCisjZGVmaW5lIENPTlNUX1NUQUNLX0NSRUFURSgpIHsgXAorICAgIGNvbnN0X3N0YWNrX3NpemUgPSAyNTY7IFwKKyAgICBjb25zdF9zdGFjayA9IFB5TWVtX05ldyhQeU9iamVjdCAqLCBjb25zdF9zdGFja19zaXplKTsgXAorICAgIGxvYWRfY29uc3Rfc3RhY2sgPSBQeU1lbV9OZXcoUHlfc3NpemVfdCwgY29uc3Rfc3RhY2tfc2l6ZSk7IFwKKyAgICBpZiAoIWNvbnN0X3N0YWNrIHx8ICFsb2FkX2NvbnN0X3N0YWNrKSB7IFwKKyAgICAgICAgUHlFcnJfTm9NZW1vcnkoKTsgXAorICAgICAgICBnb3RvIGV4aXRFcnJvcjsgXAorICAgIH0gXAorICAgIH0KKworI2RlZmluZSBDT05TVF9TVEFDS19ERUxFVEUoKSBkbyB7IFwKKyAgICBpZiAoY29uc3Rfc3RhY2spIFwKKyAgICAgICAgUHlNZW1fRnJlZShjb25zdF9zdGFjayk7IFwKKyAgICBpZiAobG9hZF9jb25zdF9zdGFjaykgXAorICAgICAgICBQeU1lbV9GcmVlKGxvYWRfY29uc3Rfc3RhY2spOyBcCisgICAgfSB3aGlsZSgwKQorCisjZGVmaW5lIENPTlNUX1NUQUNLX0xFTigpIChjb25zdF9zdGFja190b3AgKyAxKQorCisjZGVmaW5lIENPTlNUX1NUQUNLX1BVU0hfT1AoaSkgZG8geyBcCisgICAgUHlPYmplY3QgKl94OyBcCisgICAgYXNzZXJ0KGNvZGVzdHJbaV0gPT0gTE9BRF9DT05TVCk7IFwKKyAgICBhc3NlcnQoUHlMaXN0X0dFVF9TSVpFKGNvbnN0cykgPiBHRVRBUkcoY29kZXN0ciwgaSkpOyBcCisgICAgX3ggPSBQeUxpc3RfR0VUX0lURU0oY29uc3RzLCBHRVRBUkcoY29kZXN0ciwgaSkpOyBcCisgICAgaWYgKCsrY29uc3Rfc3RhY2tfdG9wID49IGNvbnN0X3N0YWNrX3NpemUpIHsgXAorICAgICAgICBjb25zdF9zdGFja19zaXplICo9IDI7IFwKKyAgICAgICAgUHlNZW1fUmVzaXplKGNvbnN0X3N0YWNrLCBQeU9iamVjdCAqLCBjb25zdF9zdGFja19zaXplKTsgXAorICAgICAgICBQeU1lbV9SZXNpemUobG9hZF9jb25zdF9zdGFjaywgUHlfc3NpemVfdCwgY29uc3Rfc3RhY2tfc2l6ZSk7IFwKKyAgICAgICAgaWYgKCFjb25zdF9zdGFjayB8fCAhbG9hZF9jb25zdF9zdGFjaykgeyBcCisgICAgICAgICAgICBQeUVycl9Ob01lbW9yeSgpOyBcCisgICAgICAgICAgICBnb3RvIGV4aXRFcnJvcjsgXAorICAgICAgICB9IFwKKyAgICB9IFwKKyAgICBsb2FkX2NvbnN0X3N0YWNrW2NvbnN0X3N0YWNrX3RvcF0gPSBpOyBcCisgICAgY29uc3Rfc3RhY2tbY29uc3Rfc3RhY2tfdG9wXSA9IF94OyBcCisgICAgaW5fY29uc3RzID0gMTsgXAorICAgIH0gd2hpbGUoMCkKKworI2RlZmluZSBDT05TVF9TVEFDS19SRVNFVCgpIGRvIHsgXAorICAgIGNvbnN0X3N0YWNrX3RvcCA9IC0xOyBcCisgICAgfSB3aGlsZSgwKQorCisjZGVmaW5lIENPTlNUX1NUQUNLX1RPUCgpIFwKKyAgICBjb25zdF9zdGFja1tjb25zdF9zdGFja190b3BdCisKKyNkZWZpbmUgQ09OU1RfU1RBQ0tfTEFTVE4oaSkgXAorICAgICZjb25zdF9zdGFja1tjb25zdF9zdGFja190b3AgLSBpICsgMV0KKworI2RlZmluZSBDT05TVF9TVEFDS19QT1AoaSkgZG8geyBcCisgICAgYXNzZXJ0KGNvbnN0X3N0YWNrX3RvcCArIDEgPj0gaSk7IFwKKyAgICBjb25zdF9zdGFja190b3AgLT0gaTsgXAorICAgIH0gd2hpbGUoMCkKKworI2RlZmluZSBDT05TVF9TVEFDS19PUF9MQVNUTihpKSBcCisgICAgKChjb25zdF9zdGFja190b3AgPj0gaSAtIDEpID8gbG9hZF9jb25zdF9zdGFja1tjb25zdF9zdGFja190b3AgLSBpICsgMV0gOiAtMSkKKworCiAvKiBSZXBsYWNlIExPQURfQ09OU1QgYzEuIExPQURfQ09OU1QgYzIgLi4uIExPQURfQ09OU1QgY24gQlVJTERfVFVQTEUgbgogICAgd2l0aCAgICBMT0FEX0NPTlNUIChjMSwgYzIsIC4uLiBjbikuCiAgICBUaGUgY29uc3RzIHRhYmxlIG11c3Qgc3RpbGwgYmUgaW4gbGlzdCBmb3JtIHNvIHRoYXQgdGhlCkBAIC0zMywxNyArOTEsMTQgQEAKICAgIHRlc3Q7IGZvciBCVUlMRF9TRVQgaXQgYXNzZW1ibGVzIGEgZnJvemVuc2V0IHJhdGhlciB0aGFuIGEgdHVwbGUuCiAqLwogc3RhdGljIGludAotdHVwbGVfb2ZfY29uc3RhbnRzKHVuc2lnbmVkIGNoYXIgKmNvZGVzdHIsIFB5X3NzaXplX3QgbiwgUHlPYmplY3QgKmNvbnN0cykKK3R1cGxlX29mX2NvbnN0YW50cyh1bnNpZ25lZCBjaGFyICpjb2Rlc3RyLCBQeV9zc2l6ZV90IG4sCisgICAgICAgICAgICAgICAgICAgUHlPYmplY3QgKmNvbnN0cywgUHlPYmplY3QgKipvYmpzKQogewogICAgIFB5T2JqZWN0ICpuZXdjb25zdCwgKmNvbnN0YW50OwotICAgIFB5X3NzaXplX3QgaSwgYXJnLCBsZW5fY29uc3RzOworICAgIFB5X3NzaXplX3QgaSwgbGVuX2NvbnN0czsKIAogICAgIC8qIFByZS1jb25kaXRpb25zICovCiAgICAgYXNzZXJ0KFB5TGlzdF9DaGVja0V4YWN0KGNvbnN0cykpOwotICAgIGFzc2VydChjb2Rlc3RyW24qM10gPT0gQlVJTERfVFVQTEUgfHwgY29kZXN0cltuKjNdID09IEJVSUxEX0xJU1QgfHwgY29kZXN0cltuKjNdID09IEJVSUxEX1NFVCk7Ci0gICAgYXNzZXJ0KEdFVEFSRyhjb2Rlc3RyLCAobiozKSkgPT0gbik7Ci0gICAgZm9yIChpPTAgOyBpPG4gOyBpKyspCi0gICAgICAgIGFzc2VydChjb2Rlc3RyW2kqM10gPT0gTE9BRF9DT05TVCk7CiAKICAgICAvKiBCdWlsZHVwIG5ldyB0dXBsZSBvZiBjb25zdGFudHMgKi8KICAgICBuZXdjb25zdCA9IFB5VHVwbGVfTmV3KG4pOwpAQCAtNTEsMTYgKzEwNiwxNCBAQAogICAgICAgICByZXR1cm4gMDsKICAgICBsZW5fY29uc3RzID0gUHlMaXN0X0dFVF9TSVpFKGNvbnN0cyk7CiAgICAgZm9yIChpPTAgOyBpPG4gOyBpKyspIHsKLSAgICAgICAgYXJnID0gR0VUQVJHKGNvZGVzdHIsIChpKjMpKTsKLSAgICAgICAgYXNzZXJ0KGFyZyA8IGxlbl9jb25zdHMpOwotICAgICAgICBjb25zdGFudCA9IFB5TGlzdF9HRVRfSVRFTShjb25zdHMsIGFyZyk7CisgICAgICAgIGNvbnN0YW50ID0gb2Jqc1tpXTsKICAgICAgICAgUHlfSU5DUkVGKGNvbnN0YW50KTsKICAgICAgICAgUHlUdXBsZV9TRVRfSVRFTShuZXdjb25zdCwgaSwgY29uc3RhbnQpOwogICAgIH0KIAogICAgIC8qIElmIGl0J3MgYSBCVUlMRF9TRVQsIHVzZSB0aGUgUHlUdXBsZSB3ZSBqdXN0IGJ1aWx0IHRvIGNyZWF0ZSBhCiAgICAgICBQeUZyb3plblNldCwgYW5kIHVzZSB0aGF0IGFzIHRoZSBjb25zdGFudCBpbnN0ZWFkOiAqLwotICAgIGlmIChjb2Rlc3RyW24qM10gPT0gQlVJTERfU0VUKSB7CisgICAgaWYgKGNvZGVzdHJbMF0gPT0gQlVJTERfU0VUKSB7CiAgICAgICAgIFB5T2JqZWN0ICp0dXBsZSA9IG5ld2NvbnN0OwogICAgICAgICBuZXdjb25zdCA9IFB5RnJvemVuU2V0X05ldyh0dXBsZSk7CiAgICAgICAgIFB5X0RFQ1JFRih0dXBsZSk7CkBAIC03Nyw5ICsxMzAsOCBAQAogCiAgICAgLyogV3JpdGUgTk9QcyBvdmVyIG9sZCBMT0FEX0NPTlNUUyBhbmQKICAgICAgICBhZGQgYSBuZXcgTE9BRF9DT05TVCBuZXdjb25zdCBvbiB0b3Agb2YgdGhlIEJVSUxEX1RVUExFIG4gKi8KLSAgICBtZW1zZXQoY29kZXN0ciwgTk9QLCBuKjMpOwotICAgIGNvZGVzdHJbbiozXSA9IExPQURfQ09OU1Q7Ci0gICAgU0VUQVJHKGNvZGVzdHIsIChuKjMpLCBsZW5fY29uc3RzKTsKKyAgICBjb2Rlc3RyWzBdID0gTE9BRF9DT05TVDsKKyAgICBTRVRBUkcoY29kZXN0ciwgMCwgbGVuX2NvbnN0cyk7CiAgICAgcmV0dXJuIDE7CiB9CiAKQEAgLTg3LDE0ICsxMzksMTQgQEAKICAgIHdpdGggICAgTE9BRF9DT05TVCBiaW5vcChjMSxjMikKICAgIFRoZSBjb25zdHMgdGFibGUgbXVzdCBzdGlsbCBiZSBpbiBsaXN0IGZvcm0gc28gdGhhdCB0aGUKICAgIG5ldyBjb25zdGFudCBjYW4gYmUgYXBwZW5kZWQuCi0gICBDYWxsZWQgd2l0aCBjb2Rlc3RyIHBvaW50aW5nIHRvIHRoZSBmaXJzdCBMT0FEX0NPTlNULgorICAgQ2FsbGVkIHdpdGggY29kZXN0ciBwb2ludGluZyB0byB0aGUgQklOT1AuCiAgICBBYmFuZG9ucyB0aGUgdHJhbnNmb3JtYXRpb24gaWYgdGhlIGZvbGRpbmcgZmFpbHMgKGkuZS4gIDErJ2EnKS4KICAgIElmIHRoZSBuZXcgY29uc3RhbnQgaXMgYSBzZXF1ZW5jZSwgb25seSBmb2xkcyB3aGVuIHRoZSBzaXplCiAgICBpcyBiZWxvdyBhIHRocmVzaG9sZCB2YWx1ZS4gIFRoYXQga2VlcHMgcHljIGZpbGVzIGZyb20KICAgIGJlY29taW5nIGxhcmdlIGluIHRoZSBwcmVzZW5jZSBvZiBjb2RlIGxpa2U6ICAoTm9uZSwpKjEwMDAuCiAqLwogc3RhdGljIGludAotZm9sZF9iaW5vcHNfb25fY29uc3RhbnRzKHVuc2lnbmVkIGNoYXIgKmNvZGVzdHIsIFB5T2JqZWN0ICpjb25zdHMpCitmb2xkX2Jpbm9wc19vbl9jb25zdGFudHModW5zaWduZWQgY2hhciAqY29kZXN0ciwgUHlPYmplY3QgKmNvbnN0cywgUHlPYmplY3QgKipvYmpzKQogewogICAgIFB5T2JqZWN0ICpuZXdjb25zdCwgKnYsICp3OwogICAgIFB5X3NzaXplX3QgbGVuX2NvbnN0cywgc2l6ZTsKQEAgLTEwMiwxMyArMTU0LDExIEBACiAKICAgICAvKiBQcmUtY29uZGl0aW9ucyAqLwogICAgIGFzc2VydChQeUxpc3RfQ2hlY2tFeGFjdChjb25zdHMpKTsKLSAgICBhc3NlcnQoY29kZXN0clswXSA9PSBMT0FEX0NPTlNUKTsKLSAgICBhc3NlcnQoY29kZXN0clszXSA9PSBMT0FEX0NPTlNUKTsKIAogICAgIC8qIENyZWF0ZSBuZXcgY29uc3RhbnQgKi8KLSAgICB2ID0gUHlMaXN0X0dFVF9JVEVNKGNvbnN0cywgR0VUQVJHKGNvZGVzdHIsIDApKTsKLSAgICB3ID0gUHlMaXN0X0dFVF9JVEVNKGNvbnN0cywgR0VUQVJHKGNvZGVzdHIsIDMpKTsKLSAgICBvcGNvZGUgPSBjb2Rlc3RyWzZdOworICAgIHYgPSBvYmpzWzBdOworICAgIHcgPSBvYmpzWzFdOworICAgIG9wY29kZSA9IGNvZGVzdHJbMF07CiAgICAgc3dpdGNoIChvcGNvZGUpIHsKICAgICAgICAgY2FzZSBCSU5BUllfUE9XRVI6CiAgICAgICAgICAgICBuZXdjb25zdCA9IFB5TnVtYmVyX1Bvd2VyKHYsIHcsIFB5X05vbmUpOwpAQCAtMTMzLDI0ICsxODMsNiBAQAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQklOQVJZX1NVQlNDUjoKICAgICAgICAgICAgIG5ld2NvbnN0ID0gUHlPYmplY3RfR2V0SXRlbSh2LCB3KTsKLSAgICAgICAgICAgIC8qICM1MDU3OiBpZiB2IGlzIHVuaWNvZGUsIHRoZXJlIG1pZ2h0IGJlIGRpZmZlcmVuY2VzIGJldHdlZW4KLSAgICAgICAgICAgICAgIHdpZGUgYW5kIG5hcnJvdyBidWlsZHMgaW4gY2FzZXMgbGlrZSAnXFUwMDAxMjM0NSdbMF0uCi0gICAgICAgICAgICAgICBXaWRlIGJ1aWxkcyB3aWxsIHJldHVybiBhIG5vbi1CTVAgY2hhciwgd2hlcmVhcyBuYXJyb3cgYnVpbGRzCi0gICAgICAgICAgICAgICB3aWxsIHJldHVybiBhIHN1cnJvZ2F0ZS4gIEluIGJvdGggdGhlIGNhc2VzIHNraXAgdGhlCi0gICAgICAgICAgICAgICBvcHRpbWl6YXRpb24gaW4gb3JkZXIgdG8gcHJvZHVjZSBjb21wYXRpYmxlIHB5Y3MuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIGlmIChuZXdjb25zdCAhPSBOVUxMICYmCi0gICAgICAgICAgICAgICAgUHlVbmljb2RlX0NoZWNrKHYpICYmIFB5VW5pY29kZV9DaGVjayhuZXdjb25zdCkpIHsKLSAgICAgICAgICAgICAgICBQeV9VTklDT0RFIGNoID0gUHlVbmljb2RlX0FTX1VOSUNPREUobmV3Y29uc3QpWzBdOwotI2lmZGVmIFB5X1VOSUNPREVfV0lERQotICAgICAgICAgICAgICAgIGlmIChjaCA+IDB4RkZGRikgewotI2Vsc2UKLSAgICAgICAgICAgICAgICBpZiAoY2ggPj0gMHhEODAwICYmIGNoIDw9IDB4REZGRikgewotI2VuZGlmCi0gICAgICAgICAgICAgICAgICAgIFB5X0RFQ1JFRihuZXdjb25zdCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEJJTkFSWV9MU0hJRlQ6CiAgICAgICAgICAgICBuZXdjb25zdCA9IFB5TnVtYmVyX0xzaGlmdCh2LCB3KTsKQEAgLTE5OCwxNiArMjMwLDE1IEBACiAgICAgUHlfREVDUkVGKG5ld2NvbnN0KTsKIAogICAgIC8qIFdyaXRlIE5PUCBOT1AgTk9QIE5PUCBMT0FEX0NPTlNUIG5ld2NvbnN0ICovCi0gICAgbWVtc2V0KGNvZGVzdHIsIE5PUCwgNCk7Ci0gICAgY29kZXN0cls0XSA9IExPQURfQ09OU1Q7Ci0gICAgU0VUQVJHKGNvZGVzdHIsIDQsIGxlbl9jb25zdHMpOworICAgIGNvZGVzdHJbLTJdID0gTE9BRF9DT05TVDsKKyAgICBTRVRBUkcoY29kZXN0ciwgLTIsIGxlbl9jb25zdHMpOwogICAgIHJldHVybiAxOwogfQogCiBzdGF0aWMgaW50Ci1mb2xkX3VuYXJ5b3BzX29uX2NvbnN0YW50cyh1bnNpZ25lZCBjaGFyICpjb2Rlc3RyLCBQeU9iamVjdCAqY29uc3RzKQorZm9sZF91bmFyeW9wc19vbl9jb25zdGFudHModW5zaWduZWQgY2hhciAqY29kZXN0ciwgUHlPYmplY3QgKmNvbnN0cywgUHlPYmplY3QgKnYpCiB7Ci0gICAgUHlPYmplY3QgKm5ld2NvbnN0PU5VTEwsICp2OworICAgIFB5T2JqZWN0ICpuZXdjb25zdDsKICAgICBQeV9zc2l6ZV90IGxlbl9jb25zdHM7CiAgICAgaW50IG9wY29kZTsKIApAQCAtMjE2LDEzICsyNDcsMTAgQEAKICAgICBhc3NlcnQoY29kZXN0clswXSA9PSBMT0FEX0NPTlNUKTsKIAogICAgIC8qIENyZWF0ZSBuZXcgY29uc3RhbnQgKi8KLSAgICB2ID0gUHlMaXN0X0dFVF9JVEVNKGNvbnN0cywgR0VUQVJHKGNvZGVzdHIsIDApKTsKICAgICBvcGNvZGUgPSBjb2Rlc3RyWzNdOwogICAgIHN3aXRjaCAob3Bjb2RlKSB7CiAgICAgICAgIGNhc2UgVU5BUllfTkVHQVRJVkU6Ci0gICAgICAgICAgICAvKiBQcmVzZXJ2ZSB0aGUgc2lnbiBvZiAtMC4wICovCi0gICAgICAgICAgICBpZiAoUHlPYmplY3RfSXNUcnVlKHYpID09IDEpCi0gICAgICAgICAgICAgICAgbmV3Y29uc3QgPSBQeU51bWJlcl9OZWdhdGl2ZSh2KTsKKyAgICAgICAgICAgIG5ld2NvbnN0ID0gUHlOdW1iZXJfTmVnYXRpdmUodik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBVTkFSWV9JTlZFUlQ6CiAgICAgICAgICAgICBuZXdjb25zdCA9IFB5TnVtYmVyX0ludmVydCh2KTsKQEAgLTM1OCw3ICszODYsMTEgQEAKICAgICB1bnNpZ25lZCBjaGFyICpsaW5lbm87CiAgICAgaW50ICphZGRybWFwID0gTlVMTDsKICAgICBpbnQgbmV3X2xpbmUsIGN1bV9vcmlnX2xpbmUsIGxhc3RfbGluZSwgdGFic2l6OwotICAgIGludCBjdW1sYz0wLCBsYXN0bGM9MDsgICAgICAvKiBDb3VudCBydW5zIG9mIGNvbnNlY3V0aXZlIExPQURfQ09OU1RzICovCisgICAgUHlPYmplY3QgKipjb25zdF9zdGFjayA9IE5VTEw7CisgICAgUHlfc3NpemVfdCAqbG9hZF9jb25zdF9zdGFjayA9IE5VTEw7CisgICAgUHlfc3NpemVfdCBjb25zdF9zdGFja190b3AgPSAtMTsKKyAgICBQeV9zc2l6ZV90IGNvbnN0X3N0YWNrX3NpemUgPSAwOworICAgIGludCBpbl9jb25zdHMgPSAwOyAgLyogd2hldGhlciB3ZSBhcmUgaW4gYSBMT0FEX0NPTlNUIHNlcXVlbmNlICovCiAgICAgdW5zaWduZWQgaW50ICpibG9ja3MgPSBOVUxMOwogICAgIGNoYXIgKm5hbWU7CiAKQEAgLTQwNCwxMiArNDM2LDE2IEBACiAgICAgICAgIGdvdG8gZXhpdEVycm9yOwogICAgIGFzc2VydChQeUxpc3RfQ2hlY2soY29uc3RzKSk7CiAKKyAgICBDT05TVF9TVEFDS19DUkVBVEUoKTsKKwogICAgIGZvciAoaT0wIDsgaTxjb2RlbGVuIDsgaSArPSBDT0RFU0laRShjb2Rlc3RyW2ldKSkgewogICAgICAgcmVvcHRpbWl6ZV9jdXJyZW50OgogICAgICAgICBvcGNvZGUgPSBjb2Rlc3RyW2ldOwogCi0gICAgICAgIGxhc3RsYyA9IGN1bWxjOwotICAgICAgICBjdW1sYyA9IDA7CisgICAgICAgIGlmICghaW5fY29uc3RzKSB7CisgICAgICAgICAgICBDT05TVF9TVEFDS19SRVNFVCgpOworICAgICAgICB9CisgICAgICAgIGluX2NvbnN0cyA9IDA7CiAKICAgICAgICAgc3dpdGNoIChvcGNvZGUpIHsKICAgICAgICAgICAgIC8qIFJlcGxhY2UgVU5BUllfTk9UIFBPUF9KVU1QX0lGX0ZBTFNFCkBAIC00NTAsMjEgKzQ4NiwyMSBAQAogICAgICAgICAgICAgICAgICAgICBnb3RvIGV4aXRFcnJvcjsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChoID09IDApCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIGN1bWxjID0gbGFzdGxjICsgMTsKKyAgICAgICAgICAgICAgICBDT05TVF9TVEFDS19QVVNIX09QKGkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgLyogU2tpcCBvdmVyIExPQURfQ09OU1QgdHJ1ZWNvbnN0CiAgICAgICAgICAgICAgICAgICAgUE9QX0pVTVBfSUZfRkFMU0UgeHguIFRoaXMgaW1wcm92ZXMKICAgICAgICAgICAgICAgICAgICAid2hpbGUgMSIgcGVyZm9ybWFuY2UuICovCiAgICAgICAgICAgICBjYXNlIExPQURfQ09OU1Q6Ci0gICAgICAgICAgICAgICAgY3VtbGMgPSBsYXN0bGMgKyAxOworICAgICAgICAgICAgICAgIENPTlNUX1NUQUNLX1BVU0hfT1AoaSk7CiAgICAgICAgICAgICAgICAgaiA9IEdFVEFSRyhjb2Rlc3RyLCBpKTsKICAgICAgICAgICAgICAgICBpZiAoY29kZXN0cltpKzNdICE9IFBPUF9KVU1QX0lGX0ZBTFNFICB8fAogICAgICAgICAgICAgICAgICAgICAhSVNCQVNJQ0JMT0NLKGJsb2NrcyxpLDYpICB8fAogICAgICAgICAgICAgICAgICAgICAhUHlPYmplY3RfSXNUcnVlKFB5TGlzdF9HRVRfSVRFTShjb25zdHMsIGopKSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgbWVtc2V0KGNvZGVzdHIraSwgTk9QLCA2KTsKLSAgICAgICAgICAgICAgICBjdW1sYyA9IDA7CisgICAgICAgICAgICAgICAgQ09OU1RfU1RBQ0tfUkVTRVQoKTsKICAgICAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICAgICAgICAgIC8qIFRyeSB0byBmb2xkIHR1cGxlcyBvZiBjb25zdGFudHMgKGluY2x1ZGVzIGEgY2FzZSBmb3IgbGlzdHMgYW5kIHNldHMKQEAgLTQ3NiwxOSArNTEyLDIzIEBACiAgICAgICAgICAgICBjYXNlIEJVSUxEX0xJU1Q6CiAgICAgICAgICAgICBjYXNlIEJVSUxEX1NFVDoKICAgICAgICAgICAgICAgICBqID0gR0VUQVJHKGNvZGVzdHIsIGkpOwotICAgICAgICAgICAgICAgIGggPSBpIC0gMyAqIGo7Ci0gICAgICAgICAgICAgICAgaWYgKGggPj0gMCAgJiYKLSAgICAgICAgICAgICAgICAgICAgaiA8PSBsYXN0bGMgICAgICAgICAgICAgICAgICAmJgorICAgICAgICAgICAgICAgIGlmIChqID09IDApCisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGggPSBDT05TVF9TVEFDS19PUF9MQVNUTihqKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoKGggPj0gMCB8fCBDT05TVF9TVEFDS19MRU4oKSA8IGopKTsKKyAgICAgICAgICAgICAgICBpZiAoaCA+PSAwICYmIGogPiAwICYmIGogPD0gQ09OU1RfU1RBQ0tfTEVOKCkgJiYKICAgICAgICAgICAgICAgICAgICAgKChvcGNvZGUgPT0gQlVJTERfVFVQTEUgJiYKLSAgICAgICAgICAgICAgICAgICAgICBJU0JBU0lDQkxPQ0soYmxvY2tzLCBoLCAzKihqKzEpKSkgfHwKKyAgICAgICAgICAgICAgICAgICAgICBJU0JBU0lDQkxPQ0soYmxvY2tzLCBoLCBpLWgrMykpIHx8CiAgICAgICAgICAgICAgICAgICAgICAoKG9wY29kZSA9PSBCVUlMRF9MSVNUIHx8IG9wY29kZSA9PSBCVUlMRF9TRVQpICYmCiAgICAgICAgICAgICAgICAgICAgICAgY29kZXN0cltpKzNdPT1DT01QQVJFX09QICYmCi0gICAgICAgICAgICAgICAgICAgICAgSVNCQVNJQ0JMT0NLKGJsb2NrcywgaCwgMyooaisyKSkgJiYKKyAgICAgICAgICAgICAgICAgICAgICBJU0JBU0lDQkxPQ0soYmxvY2tzLCBoLCBpLWgrNikgJiYKICAgICAgICAgICAgICAgICAgICAgICAoR0VUQVJHKGNvZGVzdHIsaSszKT09NiB8fAogICAgICAgICAgICAgICAgICAgICAgICBHRVRBUkcoY29kZXN0cixpKzMpPT03KSkpICYmCi0gICAgICAgICAgICAgICAgICAgIHR1cGxlX29mX2NvbnN0YW50cygmY29kZXN0cltoXSwgaiwgY29uc3RzKSkgeworICAgICAgICAgICAgICAgICAgICB0dXBsZV9vZl9jb25zdGFudHMoJmNvZGVzdHJbaV0sIGosIGNvbnN0cywgQ09OU1RfU1RBQ0tfTEFTVE4oaikpKSB7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChjb2Rlc3RyW2ldID09IExPQURfQ09OU1QpOwotICAgICAgICAgICAgICAgICAgICBjdW1sYyA9IDE7CisgICAgICAgICAgICAgICAgICAgIG1lbXNldCgmY29kZXN0cltoXSwgTk9QLCBpIC0gaCk7CisgICAgICAgICAgICAgICAgICAgIENPTlNUX1NUQUNLX1BPUChqKTsKKyAgICAgICAgICAgICAgICAgICAgQ09OU1RfU1RBQ0tfUFVTSF9PUChpKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChjb2Rlc3RyW2krM10gIT0gVU5QQUNLX1NFUVVFTkNFICB8fApAQCAtNTAxLDEwICs1NDEsMTIgQEAKICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGogPT0gMikgewogICAgICAgICAgICAgICAgICAgICBjb2Rlc3RyW2ldID0gUk9UX1RXTzsKICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KGNvZGVzdHIraSsxLCBOT1AsIDUpOworICAgICAgICAgICAgICAgICAgICBDT05TVF9TVEFDS19SRVNFVCgpOwogICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaiA9PSAzKSB7CiAgICAgICAgICAgICAgICAgICAgIGNvZGVzdHJbaV0gPSBST1RfVEhSRUU7CiAgICAgICAgICAgICAgICAgICAgIGNvZGVzdHJbaSsxXSA9IFJPVF9UV087CiAgICAgICAgICAgICAgICAgICAgIG1lbXNldChjb2Rlc3RyK2krMiwgTk9QLCA0KTsKKyAgICAgICAgICAgICAgICAgICAgQ09OU1RfU1RBQ0tfUkVTRVQoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTUyMywxMiArNTY1LDE4IEBACiAgICAgICAgICAgICBjYXNlIEJJTkFSWV9BTkQ6CiAgICAgICAgICAgICBjYXNlIEJJTkFSWV9YT1I6CiAgICAgICAgICAgICBjYXNlIEJJTkFSWV9PUjoKLSAgICAgICAgICAgICAgICBpZiAobGFzdGxjID49IDIgICAgICAgICAgICAgICAgICAmJgotICAgICAgICAgICAgICAgICAgICBJU0JBU0lDQkxPQ0soYmxvY2tzLCBpLTYsIDcpICAmJgotICAgICAgICAgICAgICAgICAgICBmb2xkX2Jpbm9wc19vbl9jb25zdGFudHMoJmNvZGVzdHJbaS02XSwgY29uc3RzKSkgeworICAgICAgICAgICAgICAgIC8qIE5PVEU6IExPQURfQ09OU1QgaXMgc2F2ZWQgYXQgYGktMmAgc2luY2UgaXQgaGFzIGFuIGFyZworICAgICAgICAgICAgICAgICAgIHdoaWxlIEJJTk9QIGhhc24ndCAqLworICAgICAgICAgICAgICAgIGggPSBDT05TVF9TVEFDS19PUF9MQVNUTigyKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoKGggPj0gMCB8fCBDT05TVF9TVEFDS19MRU4oKSA8IDIpKTsKKyAgICAgICAgICAgICAgICBpZiAoaCA+PSAwICYmCisgICAgICAgICAgICAgICAgICAgIElTQkFTSUNCTE9DSyhibG9ja3MsIGgsIGktaCsxKSAgJiYKKyAgICAgICAgICAgICAgICAgICAgZm9sZF9iaW5vcHNfb25fY29uc3RhbnRzKCZjb2Rlc3RyW2ldLCBjb25zdHMsIENPTlNUX1NUQUNLX0xBU1ROKDIpKSkgewogICAgICAgICAgICAgICAgICAgICBpIC09IDI7CisgICAgICAgICAgICAgICAgICAgIG1lbXNldCgmY29kZXN0cltoXSwgTk9QLCBpIC0gaCk7CiAgICAgICAgICAgICAgICAgICAgIGFzc2VydChjb2Rlc3RyW2ldID09IExPQURfQ09OU1QpOwotICAgICAgICAgICAgICAgICAgICBjdW1sYyA9IDE7CisgICAgICAgICAgICAgICAgICAgIENPTlNUX1NUQUNLX1BPUCgyKTsKKyAgICAgICAgICAgICAgICAgICAgQ09OU1RfU1RBQ0tfUFVTSF9PUChpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTUzNywxMiArNTg1LDE1IEBACiAgICAgICAgICAgICBjYXNlIFVOQVJZX05FR0FUSVZFOgogICAgICAgICAgICAgY2FzZSBVTkFSWV9JTlZFUlQ6CiAgICAgICAgICAgICBjYXNlIFVOQVJZX1BPU0lUSVZFOgotICAgICAgICAgICAgICAgIGlmIChsYXN0bGMgPj0gMSAgICAgICAgICAgICAgICAgICYmCi0gICAgICAgICAgICAgICAgICAgIElTQkFTSUNCTE9DSyhibG9ja3MsIGktMywgNCkgICYmCi0gICAgICAgICAgICAgICAgICAgIGZvbGRfdW5hcnlvcHNfb25fY29uc3RhbnRzKCZjb2Rlc3RyW2ktM10sIGNvbnN0cykpICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGggPSBDT05TVF9TVEFDS19PUF9MQVNUTigxKTsKKyAgICAgICAgICAgICAgICBhc3NlcnQoKGggPj0gMCB8fCBDT05TVF9TVEFDS19MRU4oKSA8IDEpKTsKKyAgICAgICAgICAgICAgICBpZiAoaCA+PSAwICYmCisgICAgICAgICAgICAgICAgICAgIElTQkFTSUNCTE9DSyhibG9ja3MsIGgsIGktaCsxKSAgJiYKKyAgICAgICAgICAgICAgICAgICAgZm9sZF91bmFyeW9wc19vbl9jb25zdGFudHMoJmNvZGVzdHJbaS0zXSwgY29uc3RzLCBDT05TVF9TVEFDS19UT1AoKSkpIHsKICAgICAgICAgICAgICAgICAgICAgaSAtPSAyOwogICAgICAgICAgICAgICAgICAgICBhc3NlcnQoY29kZXN0cltpXSA9PSBMT0FEX0NPTlNUKTsKLSAgICAgICAgICAgICAgICAgICAgY3VtbGMgPSAxOworICAgICAgICAgICAgICAgICAgICBDT05TVF9TVEFDS19QT1AoMSk7CisgICAgICAgICAgICAgICAgICAgIENPTlNUX1NUQUNLX1BVU0hfT1AoaSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwogCkBAIC02OTksNiArNzUwLDcgQEAKICAgICBhc3NlcnQoaCArIG5vcHMgPT0gY29kZWxlbik7CiAKICAgICBjb2RlID0gUHlCeXRlc19Gcm9tU3RyaW5nQW5kU2l6ZSgoY2hhciAqKWNvZGVzdHIsIGgpOworICAgIENPTlNUX1NUQUNLX0RFTEVURSgpOwogICAgIFB5TWVtX0ZyZWUoYWRkcm1hcCk7CiAgICAgUHlNZW1fRnJlZShjb2Rlc3RyKTsKICAgICBQeU1lbV9GcmVlKGJsb2Nrcyk7CkBAIC03MDgsNiArNzYwLDcgQEAKICAgICBjb2RlID0gTlVMTDsKIAogIGV4aXRVbmNoYW5nZWQ6CisgICAgQ09OU1RfU1RBQ0tfREVMRVRFKCk7CiAgICAgaWYgKGJsb2NrcyAhPSBOVUxMKQogICAgICAgICBQeU1lbV9GcmVlKGJsb2Nrcyk7CiAgICAgaWYgKGFkZHJtYXAgIT0gTlVMTCkKZGlmZiAtLWdpdCBhL1B5dGhvbi9weXN0YXRlLmMgYi9QeXRob24vcHlzdGF0ZS5jCmluZGV4IDMxYjU0MjMuLmNmMDhhMmIgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9weXN0YXRlLmMKKysrIGIvUHl0aG9uL3B5c3RhdGUuYwpAQCAtNjksNyArNjksNiBAQAogICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigiQ2FuJ3QgaW5pdGlhbGl6ZSB0aHJlYWRzIGZvciBpbnRlcnByZXRlciIpOwogI2VuZGlmCiAgICAgICAgIGludGVycC0+bW9kdWxlcyA9IE5VTEw7Ci0gICAgICAgIGludGVycC0+bW9kdWxlc19yZWxvYWRpbmcgPSBOVUxMOwogICAgICAgICBpbnRlcnAtPm1vZHVsZXNfYnlfaW5kZXggPSBOVUxMOwogICAgICAgICBpbnRlcnAtPnN5c2RpY3QgPSBOVUxMOwogICAgICAgICBpbnRlcnAtPmJ1aWx0aW5zID0gTlVMTDsKQEAgLTc5LDYgKzc4LDcgQEAKICAgICAgICAgaW50ZXJwLT5jb2RlY19lcnJvcl9yZWdpc3RyeSA9IE5VTEw7CiAgICAgICAgIGludGVycC0+Y29kZWNzX2luaXRpYWxpemVkID0gMDsKICAgICAgICAgaW50ZXJwLT5mc2NvZGVjX2luaXRpYWxpemVkID0gMDsKKyAgICAgICAgaW50ZXJwLT5pbXBvcnRsaWIgPSBOVUxMOwogI2lmZGVmIEhBVkVfRExPUEVOCiAjaWZkZWYgUlRMRF9OT1cKICAgICAgICAgaW50ZXJwLT5kbG9wZW5mbGFncyA9IFJUTERfTk9XOwpAQCAtMTEzLDkgKzExMyw5IEBACiAgICAgUHlfQ0xFQVIoaW50ZXJwLT5jb2RlY19lcnJvcl9yZWdpc3RyeSk7CiAgICAgUHlfQ0xFQVIoaW50ZXJwLT5tb2R1bGVzKTsKICAgICBQeV9DTEVBUihpbnRlcnAtPm1vZHVsZXNfYnlfaW5kZXgpOwotICAgIFB5X0NMRUFSKGludGVycC0+bW9kdWxlc19yZWxvYWRpbmcpOwogICAgIFB5X0NMRUFSKGludGVycC0+c3lzZGljdCk7CiAgICAgUHlfQ0xFQVIoaW50ZXJwLT5idWlsdGlucyk7CisgICAgUHlfQ0xFQVIoaW50ZXJwLT5pbXBvcnRsaWIpOwogfQogCiAKQEAgLTIzOSw5ICsyMzksOSBAQAogfQogCiBQeU9iamVjdCoKLVB5U3RhdGVfRmluZE1vZHVsZShzdHJ1Y3QgUHlNb2R1bGVEZWYqIG0pCitQeVN0YXRlX0ZpbmRNb2R1bGUoc3RydWN0IFB5TW9kdWxlRGVmKiBtb2R1bGUpCiB7Ci0gICAgUHlfc3NpemVfdCBpbmRleCA9IG0tPm1fYmFzZS5tX2luZGV4OworICAgIFB5X3NzaXplX3QgaW5kZXggPSBtb2R1bGUtPm1fYmFzZS5tX2luZGV4OwogICAgIFB5SW50ZXJwcmV0ZXJTdGF0ZSAqc3RhdGUgPSBQeVRocmVhZFN0YXRlX0dFVCgpLT5pbnRlcnA7CiAgICAgUHlPYmplY3QgKnJlczsKICAgICBpZiAoaW5kZXggPT0gMCkKQEAgLTI3Myw2ICsyNzMsNDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmLT5tX2Jhc2UubV9pbmRleCwgbW9kdWxlKTsKIH0KIAoraW50CitQeVN0YXRlX0FkZE1vZHVsZShQeU9iamVjdCogbW9kdWxlLCBzdHJ1Y3QgUHlNb2R1bGVEZWYqIGRlZikKK3sKKyAgICBQeV9zc2l6ZV90IGluZGV4OworICAgIFB5SW50ZXJwcmV0ZXJTdGF0ZSAqc3RhdGUgPSBQeVRocmVhZFN0YXRlX0dFVCgpLT5pbnRlcnA7CisgICAgaWYgKCFkZWYpIHsKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlTdGF0ZV9BZGRNb2R1bGU6IE1vZHVsZSBEZWZpbml0aW9uIGlzIE5VTEwiKTsKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKyAgICBpbmRleCA9IGRlZi0+bV9iYXNlLm1faW5kZXg7CisgICAgaWYgKHN0YXRlLT5tb2R1bGVzX2J5X2luZGV4KSB7CisgICAgICAgIGlmKFB5TGlzdF9HRVRfU0laRShzdGF0ZS0+bW9kdWxlc19ieV9pbmRleCkgPj0gaW5kZXgpIHsKKyAgICAgICAgICAgIGlmKG1vZHVsZSA9PSBQeUxpc3RfR0VUX0lURU0oc3RhdGUtPm1vZHVsZXNfYnlfaW5kZXgsIGluZGV4KSkgeworICAgICAgICAgICAgICAgIFB5X0ZhdGFsRXJyb3IoIlB5U3RhdGVfQWRkTW9kdWxlOiBNb2R1bGUgYWxyZWFkeSBhZGRlZCEiKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIF9QeVN0YXRlX0FkZE1vZHVsZShtb2R1bGUsIGRlZik7Cit9CisKK2ludAorUHlTdGF0ZV9SZW1vdmVNb2R1bGUoc3RydWN0IFB5TW9kdWxlRGVmKiBkZWYpCit7CisgICAgUHlfc3NpemVfdCBpbmRleCA9IGRlZi0+bV9iYXNlLm1faW5kZXg7CisgICAgUHlJbnRlcnByZXRlclN0YXRlICpzdGF0ZSA9IFB5VGhyZWFkU3RhdGVfR0VUKCktPmludGVycDsKKyAgICBpZiAoaW5kZXggPT0gMCkgeworICAgICAgICBQeV9GYXRhbEVycm9yKCJQeVN0YXRlX1JlbW92ZU1vZHVsZTogTW9kdWxlIGluZGV4IGludmFsaWQuIik7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgaWYgKHN0YXRlLT5tb2R1bGVzX2J5X2luZGV4ID09IE5VTEwpIHsKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlTdGF0ZV9SZW1vdmVNb2R1bGU6IEludGVycHJldGVycyBtb2R1bGUtbGlzdCBub3QgYWNlc3NpYmxlLiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGlmIChpbmRleCA+IFB5TGlzdF9HRVRfU0laRShzdGF0ZS0+bW9kdWxlc19ieV9pbmRleCkpIHsKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlTdGF0ZV9SZW1vdmVNb2R1bGU6IE1vZHVsZSBpbmRleCBvdXQgb2YgYm91bmRzLiIpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIHJldHVybiBQeUxpc3RfU2V0SXRlbShzdGF0ZS0+bW9kdWxlc19ieV9pbmRleCwgaW5kZXgsIFB5X05vbmUpOworfQorCiB2b2lkCiBQeVRocmVhZFN0YXRlX0NsZWFyKFB5VGhyZWFkU3RhdGUgKnRzdGF0ZSkKIHsKZGlmZiAtLWdpdCBhL1B5dGhvbi9weXN0cnRvZC5jIGIvUHl0aG9uL3B5c3RydG9kLmMKaW5kZXggNzVlMzAzMi4uNGFiOGYwOCAxMDA2NDQKLS0tIGEvUHl0aG9uL3B5c3RydG9kLmMKKysrIGIvUHl0aG9uL3B5c3RydG9kLmMKQEAgLTIyLDYgKzIyLDQzIEBACiAgICB0aGUgc3VjY2Vzc2Z1bGx5IHBhcnNlZCBwb3J0aW9uIG9mIHRoZSBzdHJpbmcuICBPbiBmYWlsdXJlLCByZXR1cm4gLTEuMCBhbmQKICAgIHNldCAqZW5kcHRyIHRvIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgc3RyaW5nLiAqLwogCisjaWZuZGVmIFBZX05PX1NIT1JUX0ZMT0FUX1JFUFIKKworZG91YmxlCitfUHlfcGFyc2VfaW5mX29yX25hbihjb25zdCBjaGFyICpwLCBjaGFyICoqZW5kcHRyKQoreworICAgIGRvdWJsZSByZXR2YWw7CisgICAgY29uc3QgY2hhciAqczsKKyAgICBpbnQgbmVnYXRlID0gMDsKKworICAgIHMgPSBwOworICAgIGlmICgqcyA9PSAnLScpIHsKKyAgICAgICAgbmVnYXRlID0gMTsKKyAgICAgICAgcysrOworICAgIH0KKyAgICBlbHNlIGlmICgqcyA9PSAnKycpIHsKKyAgICAgICAgcysrOworICAgIH0KKyAgICBpZiAoY2FzZV9pbnNlbnNpdGl2ZV9tYXRjaChzLCAiaW5mIikpIHsKKyAgICAgICAgcyArPSAzOworICAgICAgICBpZiAoY2FzZV9pbnNlbnNpdGl2ZV9tYXRjaChzLCAiaW5pdHkiKSkKKyAgICAgICAgICAgIHMgKz0gNTsKKyAgICAgICAgcmV0dmFsID0gX1B5X2RnX2luZmluaXR5KG5lZ2F0ZSk7CisgICAgfQorICAgIGVsc2UgaWYgKGNhc2VfaW5zZW5zaXRpdmVfbWF0Y2gocywgIm5hbiIpKSB7CisgICAgICAgIHMgKz0gMzsKKyAgICAgICAgcmV0dmFsID0gX1B5X2RnX3N0ZG5hbihuZWdhdGUpOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgcyA9IHA7CisgICAgICAgIHJldHZhbCA9IC0xLjA7CisgICAgfQorICAgICplbmRwdHIgPSAoY2hhciAqKXM7CisgICAgcmV0dXJuIHJldHZhbDsKK30KKworI2Vsc2UKKwogZG91YmxlCiBfUHlfcGFyc2VfaW5mX29yX25hbihjb25zdCBjaGFyICpwLCBjaGFyICoqZW5kcHRyKQogewpAQCAtNTcsNiArOTQsOCBAQAogICAgIHJldHVybiByZXR2YWw7CiB9CiAKKyNlbmRpZgorCiAvKioKICAqIF9QeU9TX2FzY2lpX3N0cnRvZDoKICAqIEBucHRyOiAgICB0aGUgc3RyaW5nIHRvIGNvbnZlcnQgdG8gYSBudW1lcmljIHZhbHVlLgpAQCAtOTU0LDcgKzk5Myw3IEBACiAgICAgICAgICAgICAvKiBzaG91bGRuJ3QgZ2V0IGhlcmU6IEdheSdzIGNvZGUgc2hvdWxkIGFsd2F5cyByZXR1cm4KICAgICAgICAgICAgICAgIHNvbWV0aGluZyBzdGFydGluZyB3aXRoIGEgZGlnaXQsIGFuICdJJywgIG9yICdOJyAqLwogICAgICAgICAgICAgc3RybmNweShwLCAiRVJSIiwgMyk7Ci0gICAgICAgICAgICBwICs9IDM7CisgICAgICAgICAgICAvKiBwICs9IDM7ICovCiAgICAgICAgICAgICBhc3NlcnQoMCk7CiAgICAgICAgIH0KICAgICAgICAgZ290byBleGl0OwpkaWZmIC0tZ2l0IGEvUHl0aG9uL3B5dGhvbnJ1bi5jIGIvUHl0aG9uL3B5dGhvbnJ1bi5jCmluZGV4IDQ2MDk0NjguLmE5ZWQ1ODggMTAwNjQ0Ci0tLSBhL1B5dGhvbi9weXRob25ydW4uYworKysgYi9QeXRob24vcHl0aG9ucnVuLmMKQEAgLTYyLDE0ICs2MiwxNyBAQAogc3RhdGljIFB5T2JqZWN0ICpydW5fcHljX2ZpbGUoRklMRSAqLCBjb25zdCBjaGFyICosIFB5T2JqZWN0ICosIFB5T2JqZWN0ICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQeUNvbXBpbGVyRmxhZ3MgKik7CiBzdGF0aWMgdm9pZCBlcnJfaW5wdXQocGVycmRldGFpbCAqKTsKK3N0YXRpYyB2b2lkIGVycl9mcmVlKHBlcnJkZXRhaWwgKik7CiBzdGF0aWMgdm9pZCBpbml0c2lncyh2b2lkKTsKIHN0YXRpYyB2b2lkIGNhbGxfcHlfZXhpdGZ1bmNzKHZvaWQpOwogc3RhdGljIHZvaWQgd2FpdF9mb3JfdGhyZWFkX3NodXRkb3duKHZvaWQpOwogc3RhdGljIHZvaWQgY2FsbF9sbF9leGl0ZnVuY3Modm9pZCk7Ci1leHRlcm4gdm9pZCBfUHlVbmljb2RlX0luaXQodm9pZCk7CitleHRlcm4gaW50IF9QeVVuaWNvZGVfSW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIF9QeVVuaWNvZGVfRmluaSh2b2lkKTsKIGV4dGVybiBpbnQgX1B5TG9uZ19Jbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgUHlMb25nX0Zpbmkodm9pZCk7CitleHRlcm4gaW50IF9QeUZhdWx0aGFuZGxlcl9Jbml0KHZvaWQpOworZXh0ZXJuIHZvaWQgX1B5RmF1bHRoYW5kbGVyX0Zpbmkodm9pZCk7CiAKICNpZmRlZiBXSVRIX1RIUkVBRAogZXh0ZXJuIHZvaWQgX1B5R0lMU3RhdGVfSW5pdChQeUludGVycHJldGVyU3RhdGUgKiwgUHlUaHJlYWRTdGF0ZSAqKTsKQEAgLTEzOSwxMiArMTQyLDEzIEBACiB7CiAgICAgY2hhciAqbmFtZV91dGY4LCAqbmFtZV9zdHI7CiAgICAgUHlPYmplY3QgKmNvZGVjLCAqbmFtZSA9IE5VTEw7CisgICAgX1B5X0lERU5USUZJRVIobmFtZSk7CiAKICAgICBjb2RlYyA9IF9QeUNvZGVjX0xvb2t1cChlbmNvZGluZyk7CiAgICAgaWYgKCFjb2RlYykKICAgICAgICAgZ290byBlcnJvcjsKIAotICAgIG5hbWUgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGNvZGVjLCAibmFtZSIpOworICAgIG5hbWUgPSBfUHlPYmplY3RfR2V0QXR0cklkKGNvZGVjLCAmUHlJZF9uYW1lKTsKICAgICBQeV9DTEVBUihjb2RlYyk7CiAgICAgaWYgKCFuYW1lKQogICAgICAgICBnb3RvIGVycm9yOwpAQCAtMTY2LDIxICsxNzAsNzkgQEAKICAgICByZXR1cm4gTlVMTDsKIH0KIAotI2lmIGRlZmluZWQoSEFWRV9MQU5HSU5GT19IKSAmJiBkZWZpbmVkKENPREVTRVQpCiBzdGF0aWMgY2hhcioKLWdldF9jb2Rlc2V0KHZvaWQpCitnZXRfbG9jYWxlX2VuY29kaW5nKHZvaWQpCiB7CisjaWZkZWYgTVNfV0lORE9XUworICAgIGNoYXIgY29kZXBhZ2VbMTAwXTsKKyAgICBQeU9TX3NucHJpbnRmKGNvZGVwYWdlLCBzaXplb2YoY29kZXBhZ2UpLCAiY3AlZCIsIEdldEFDUCgpKTsKKyAgICByZXR1cm4gZ2V0X2NvZGVjX25hbWUoY29kZXBhZ2UpOworI2VsaWYgZGVmaW5lZChIQVZFX0xBTkdJTkZPX0gpICYmIGRlZmluZWQoQ09ERVNFVCkKICAgICBjaGFyKiBjb2Rlc2V0ID0gbmxfbGFuZ2luZm8oQ09ERVNFVCk7CiAgICAgaWYgKCFjb2Rlc2V0IHx8IGNvZGVzZXRbMF0gPT0gJ1wwJykgewogICAgICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVmFsdWVFcnJvciwgIkNPREVTRVQgaXMgbm90IHNldCBvciBlbXB0eSIpOwogICAgICAgICByZXR1cm4gTlVMTDsKICAgICB9CiAgICAgcmV0dXJuIGdldF9jb2RlY19uYW1lKGNvZGVzZXQpOwotfQorI2Vsc2UKKyAgICBQeUVycl9TZXROb25lKFB5RXhjX05vdEltcGxlbWVudGVkRXJyb3IpOworICAgIHJldHVybiBOVUxMOwogI2VuZGlmCit9CisKK3N0YXRpYyB2b2lkCitpbXBvcnRfaW5pdChQeUludGVycHJldGVyU3RhdGUgKmludGVycCwgUHlPYmplY3QgKnN5c21vZCkKK3sKKyAgICBQeU9iamVjdCAqaW1wb3J0bGliOworICAgIFB5T2JqZWN0ICppbXBtb2Q7CisgICAgUHlPYmplY3QgKnN5c19tb2R1bGVzOworICAgIFB5T2JqZWN0ICp2YWx1ZTsKKworICAgIC8qIEltcG9ydCBfaW1wb3J0bGliIHRocm91Z2ggaXRzIGZyb3plbiB2ZXJzaW9uLCBfZnJvemVuX2ltcG9ydGxpYi4gKi8KKyAgICBpZiAoUHlJbXBvcnRfSW1wb3J0RnJvemVuTW9kdWxlKCJfZnJvemVuX2ltcG9ydGxpYiIpIDw9IDApIHsKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlfSW5pdGlhbGl6ZTogY2FuJ3QgaW1wb3J0IF9mcm96ZW5faW1wb3J0bGliIik7CisgICAgfQorICAgIGVsc2UgaWYgKFB5X1ZlcmJvc2VGbGFnKSB7CisgICAgICAgIFB5U3lzX0Zvcm1hdFN0ZGVycigiaW1wb3J0IF9mcm96ZW5faW1wb3J0bGliICMgZnJvemVuXG4iKTsKKyAgICB9CisgICAgaW1wb3J0bGliID0gUHlJbXBvcnRfQWRkTW9kdWxlKCJfZnJvemVuX2ltcG9ydGxpYiIpOworICAgIGlmIChpbXBvcnRsaWIgPT0gTlVMTCkgeworICAgICAgICBQeV9GYXRhbEVycm9yKCJQeV9Jbml0aWFsaXplOiBjb3VsZG4ndCBnZXQgX2Zyb3plbl9pbXBvcnRsaWIgZnJvbSAiCisgICAgICAgICAgICAgICAgICAgICAgInN5cy5tb2R1bGVzIik7CisgICAgfQorICAgIGludGVycC0+aW1wb3J0bGliID0gaW1wb3J0bGliOworICAgIFB5X0lOQ1JFRihpbnRlcnAtPmltcG9ydGxpYik7CisKKyAgICAvKiBJbnN0YWxsIF9pbXBvcnRsaWIgYXMgX19pbXBvcnRfXyAqLworICAgIGltcG1vZCA9IFB5SW5pdF9pbXAoKTsKKyAgICBpZiAoaW1wbW9kID09IE5VTEwpIHsKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlfSW5pdGlhbGl6ZTogY2FuJ3QgaW1wb3J0IGltcCIpOworICAgIH0KKyAgICBlbHNlIGlmIChQeV9WZXJib3NlRmxhZykgeworICAgICAgICBQeVN5c19Gb3JtYXRTdGRlcnIoImltcG9ydCBpbXAgIyBidWlsdGluXG4iKTsKKyAgICB9CisgICAgc3lzX21vZHVsZXMgPSBQeUltcG9ydF9HZXRNb2R1bGVEaWN0KCk7CisgICAgaWYgKFB5X1ZlcmJvc2VGbGFnKSB7CisgICAgICAgIFB5U3lzX0Zvcm1hdFN0ZGVycigiaW1wb3J0IHN5cyAjIGJ1aWx0aW5cbiIpOworICAgIH0KKyAgICBpZiAoUHlEaWN0X1NldEl0ZW1TdHJpbmcoc3lzX21vZHVsZXMsICJfaW1wIiwgaW1wbW9kKSA8IDApIHsKKyAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlfSW5pdGlhbGl6ZTogY2FuJ3Qgc2F2ZSBfaW1wIHRvIHN5cy5tb2R1bGVzIik7CisgICAgfQorCisgICAgdmFsdWUgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGltcG9ydGxpYiwgIl9pbnN0YWxsIiwgIk9PIiwgc3lzbW9kLCBpbXBtb2QpOworICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisgICAgICAgIFB5RXJyX1ByaW50KCk7CisgICAgICAgIFB5X0ZhdGFsRXJyb3IoIlB5X0luaXRpYWxpemU6IGltcG9ydGxpYiBpbnN0YWxsIGZhaWxlZCIpOworICAgIH0KKyAgICBQeV9ERUNSRUYodmFsdWUpOworICAgIFB5X0RFQ1JFRihpbXBtb2QpOworCisgICAgX1B5SW1wb3J0WmlwX0luaXQoKTsKK30KKwogCiB2b2lkCi1QeV9Jbml0aWFsaXplRXgoaW50IGluc3RhbGxfc2lncykKK19QeV9Jbml0aWFsaXplRXhfUHJpdmF0ZShpbnQgaW5zdGFsbF9zaWdzLCBpbnQgaW5zdGFsbF9pbXBvcnRsaWIpCiB7CiAgICAgUHlJbnRlcnByZXRlclN0YXRlICppbnRlcnA7CiAgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlOwpAQCAtMjUyLDEyICszMTQsMTAgQEAKICAgICBpbnRlcnAtPm1vZHVsZXMgPSBQeURpY3RfTmV3KCk7CiAgICAgaWYgKGludGVycC0+bW9kdWxlcyA9PSBOVUxMKQogICAgICAgICBQeV9GYXRhbEVycm9yKCJQeV9Jbml0aWFsaXplOiBjYW4ndCBtYWtlIG1vZHVsZXMgZGljdGlvbmFyeSIpOwotICAgIGludGVycC0+bW9kdWxlc19yZWxvYWRpbmcgPSBQeURpY3RfTmV3KCk7Ci0gICAgaWYgKGludGVycC0+bW9kdWxlc19yZWxvYWRpbmcgPT0gTlVMTCkKLSAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlfSW5pdGlhbGl6ZTogY2FuJ3QgbWFrZSBtb2R1bGVzX3JlbG9hZGluZyBkaWN0aW9uYXJ5Iik7CiAKICAgICAvKiBJbml0IFVuaWNvZGUgaW1wbGVtZW50YXRpb247IHJlbGllcyBvbiB0aGUgY29kZWMgcmVnaXN0cnkgKi8KLSAgICBfUHlVbmljb2RlX0luaXQoKTsKKyAgICBpZiAoX1B5VW5pY29kZV9Jbml0KCkgPCAwKQorICAgICAgICBQeV9GYXRhbEVycm9yKCJQeV9Jbml0aWFsaXplOiBjYW4ndCBpbml0aWFsaXplIHVuaWNvZGUiKTsKIAogICAgIGJpbW9kID0gX1B5QnVpbHRpbl9Jbml0KCk7CiAgICAgaWYgKGJpbW9kID09IE5VTEwpCkBAIC0yNjksNyArMzI5LDcgQEAKICAgICBQeV9JTkNSRUYoaW50ZXJwLT5idWlsdGlucyk7CiAKICAgICAvKiBpbml0aWFsaXplIGJ1aWx0aW4gZXhjZXB0aW9ucyAqLwotICAgIF9QeUV4Y19Jbml0KCk7CisgICAgX1B5RXhjX0luaXQoYmltb2QpOwogCiAgICAgc3lzbW9kID0gX1B5U3lzX0luaXQoKTsKICAgICBpZiAoc3lzbW9kID09IE5VTEwpCkBAIC0yOTYsOSArMzU2LDE4IEBACiAKICAgICBfUHlJbXBvcnRIb29rc19Jbml0KCk7CiAKKyAgICAvKiBpbml0aWFsaXplIHRoZSBmYXVsdGhhbmRsZXIgbW9kdWxlICovCisgICAgaWYgKF9QeUZhdWx0aGFuZGxlcl9Jbml0KCkpCisgICAgICAgIFB5X0ZhdGFsRXJyb3IoIlB5X0luaXRpYWxpemU6IGNhbid0IGluaXRpYWxpemUgZmF1bHRoYW5kbGVyIik7CisKICAgICAvKiBJbml0aWFsaXplIF93YXJuaW5ncy4gKi8KICAgICBfUHlXYXJuaW5nc19Jbml0KCk7CiAKKyAgICBpZiAoIWluc3RhbGxfaW1wb3J0bGliKQorICAgICAgICByZXR1cm47CisKKyAgICBpbXBvcnRfaW5pdChpbnRlcnAsIHN5c21vZCk7CisKICAgICBfUHlUaW1lX0luaXQoKTsKIAogICAgIGlmIChpbml0ZnNlbmNvZGluZyhpbnRlcnApIDwgMCkKQEAgLTMyNyw2ICszOTYsMTIgQEAKIH0KIAogdm9pZAorUHlfSW5pdGlhbGl6ZUV4KGludCBpbnN0YWxsX3NpZ3MpCit7CisgICAgX1B5X0luaXRpYWxpemVFeF9Qcml2YXRlKGluc3RhbGxfc2lncywgMSk7Cit9CisKK3ZvaWQKIFB5X0luaXRpYWxpemUodm9pZCkKIHsKICAgICBQeV9Jbml0aWFsaXplRXgoMSk7CkBAIC0zNjEsOSArNDM2LDEwIEBACiAgICAgUHlPYmplY3QgKmZvdXQgPSBQeVN5c19HZXRPYmplY3QoInN0ZG91dCIpOwogICAgIFB5T2JqZWN0ICpmZXJyID0gUHlTeXNfR2V0T2JqZWN0KCJzdGRlcnIiKTsKICAgICBQeU9iamVjdCAqdG1wOworICAgIF9QeV9JREVOVElGSUVSKGZsdXNoKTsKIAogICAgIGlmIChmb3V0ICE9IE5VTEwgJiYgZm91dCAhPSBQeV9Ob25lICYmICFmaWxlX2lzX2Nsb3NlZChmb3V0KSkgewotICAgICAgICB0bXAgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGZvdXQsICJmbHVzaCIsICIiKTsKKyAgICAgICAgdG1wID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmb3V0LCAmUHlJZF9mbHVzaCwgIiIpOwogICAgICAgICBpZiAodG1wID09IE5VTEwpCiAgICAgICAgICAgICBQeUVycl9Xcml0ZVVucmFpc2FibGUoZm91dCk7CiAgICAgICAgIGVsc2UKQEAgLTM3MSw3ICs0NDcsNyBAQAogICAgIH0KIAogICAgIGlmIChmZXJyICE9IE5VTEwgJiYgZmVyciAhPSBQeV9Ob25lICYmICFmaWxlX2lzX2Nsb3NlZChmZXJyKSkgewotICAgICAgICB0bXAgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGZlcnIsICJmbHVzaCIsICIiKTsKKyAgICAgICAgdG1wID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmZXJyLCAmUHlJZF9mbHVzaCwgIiIpOwogICAgICAgICBpZiAodG1wID09IE5VTEwpCiAgICAgICAgICAgICBQeUVycl9DbGVhcigpOwogICAgICAgICBlbHNlCkBAIC00NjQsNyArNTQwLDcgQEAKICAgICBmbHVzaF9zdGRfZmlsZXMoKTsKIAogICAgIC8qIENvbGxlY3QgZmluYWwgZ2FyYmFnZS4gIFRoaXMgZGlzcG9zZXMgb2YgY3ljbGVzIGNyZWF0ZWQgYnkKLSAgICAgKiBuZXctc3R5bGUgY2xhc3MgZGVmaW5pdGlvbnMsIGZvciBleGFtcGxlLgorICAgICAqIGNsYXNzIGRlZmluaXRpb25zLCBmb3IgZXhhbXBsZS4KICAgICAgKiBYWFggVGhpcyBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IGNhdXNlZCB0b28gbWFueSBwcm9ibGVtcy4gIElmCiAgICAgICogWFhYIGEgX19kZWxfXyBvciB3ZWFrcmVmIGNhbGxiYWNrIHRyaWdnZXJzIGhlcmUsIFB5dGhvbiBjb2RlIGhhcwogICAgICAqIFhYWCBhIGhhcmQgdGltZSBydW5uaW5nLCBiZWNhdXNlIGV2ZW4gdGhlIHN5cyBtb2R1bGUgaGFzIGJlZW4KQEAgLTQ4NSw2ICs1NjEsOSBAQAogICAgIC8qIERlc3Ryb3kgdGhlIGRhdGFiYXNlIHVzZWQgYnkgX1B5SW1wb3J0X3tGaXh1cCxGaW5kfUV4dGVuc2lvbiAqLwogICAgIF9QeUltcG9ydF9GaW5pKCk7CiAKKyAgICAvKiB1bmxvYWQgZmF1bHRoYW5kbGVyIG1vZHVsZSAqLworICAgIF9QeUZhdWx0aGFuZGxlcl9GaW5pKCk7CisKICAgICAvKiBEZWJ1Z2dpbmcgc3R1ZmYgKi8KICNpZmRlZiBDT1VOVF9BTExPQ1MKICAgICBkdW1wX2NvdW50cyhzdGRvdXQpOwpAQCAtNTM0LDYgKzYxMyw3IEBACiAgICAgUHlMb25nX0ZpbmkoKTsKICAgICBQeUZsb2F0X0ZpbmkoKTsKICAgICBQeURpY3RfRmluaSgpOworICAgIFB5U2xpY2VfRmluaSgpOwogCiAgICAgLyogQ2xlYW51cCBVbmljb2RlIGltcGxlbWVudGF0aW9uICovCiAgICAgX1B5VW5pY29kZV9GaW5pKCk7CkBAIC01NjIsNyArNjQyLDcgQEAKICNlbmRpZiAvKiBQeV9UUkFDRV9SRUZTICovCiAjaWZkZWYgUFlNQUxMT0NfREVCVUcKICAgICBpZiAoUHlfR0VURU5WKCJQWVRIT05NQUxMT0NTVEFUUyIpKQotICAgICAgICBfUHlPYmplY3RfRGVidWdNYWxsb2NTdGF0cygpOworICAgICAgICBfUHlPYmplY3RfRGVidWdNYWxsb2NTdGF0cyhzdGRlcnIpOwogI2VuZGlmCiAKICAgICBjYWxsX2xsX2V4aXRmdW5jcygpOwpAQCAtNjA2LDcgKzY4Niw2IEBACiAgICAgLyogWFhYIFRoZSBmb2xsb3dpbmcgaXMgbGF4IGluIGVycm9yIGNoZWNraW5nICovCiAKICAgICBpbnRlcnAtPm1vZHVsZXMgPSBQeURpY3RfTmV3KCk7Ci0gICAgaW50ZXJwLT5tb2R1bGVzX3JlbG9hZGluZyA9IFB5RGljdF9OZXcoKTsKIAogICAgIGJpbW9kID0gX1B5SW1wb3J0X0ZpbmRCdWlsdGluKCJidWlsdGlucyIpOwogICAgIGlmIChiaW1vZCAhPSBOVUxMKSB7CkBAIC02MTcsMTEgKzY5NiwxMiBAQAogICAgIH0KIAogICAgIC8qIGluaXRpYWxpemUgYnVpbHRpbiBleGNlcHRpb25zICovCi0gICAgX1B5RXhjX0luaXQoKTsKKyAgICBfUHlFeGNfSW5pdChiaW1vZCk7CiAKICAgICBzeXNtb2QgPSBfUHlJbXBvcnRfRmluZEJ1aWx0aW4oInN5cyIpOwogICAgIGlmIChiaW1vZCAhPSBOVUxMICYmIHN5c21vZCAhPSBOVUxMKSB7CiAgICAgICAgIFB5T2JqZWN0ICpwc3RkZXJyOworCiAgICAgICAgIGludGVycC0+c3lzZGljdCA9IFB5TW9kdWxlX0dldERpY3Qoc3lzbW9kKTsKICAgICAgICAgaWYgKGludGVycC0+c3lzZGljdCA9PSBOVUxMKQogICAgICAgICAgICAgZ290byBoYW5kbGVfZXJyb3I7CkBAIC02NDAsNiArNzIwLDggQEAKIAogICAgICAgICBfUHlJbXBvcnRIb29rc19Jbml0KCk7CiAKKyAgICAgICAgaW1wb3J0X2luaXQoaW50ZXJwLCBzeXNtb2QpOworCiAgICAgICAgIGlmIChpbml0ZnNlbmNvZGluZyhpbnRlcnApIDwgMCkKICAgICAgICAgICAgIGdvdG8gaGFuZGxlX2Vycm9yOwogCkBAIC03NjMsMjQgKzg0NSwxNyBAQAogaW5pdGZzZW5jb2RpbmcoUHlJbnRlcnByZXRlclN0YXRlICppbnRlcnApCiB7CiAgICAgUHlPYmplY3QgKmNvZGVjOwotI2lmIGRlZmluZWQoSEFWRV9MQU5HSU5GT19IKSAmJiBkZWZpbmVkKENPREVTRVQpCi0gICAgY2hhciAqY29kZXNldCA9IE5VTEw7CiAKLSAgICBpZiAoUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZyA9PSBOVUxMKSB7Ci0gICAgICAgIC8qIE9uIFVuaXgsIHNldCB0aGUgZmlsZSBzeXN0ZW0gZW5jb2RpbmcgYWNjb3JkaW5nIHRvIHRoZQotICAgICAgICAgICB1c2VyJ3MgcHJlZmVyZW5jZSwgaWYgdGhlIENPREVTRVQgbmFtZXMgYSB3ZWxsLWtub3duCi0gICAgICAgICAgIFB5dGhvbiBjb2RlYywgYW5kIFB5X0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcgaXNuJ3QKLSAgICAgICAgICAgaW5pdGlhbGl6ZWQgYnkgb3RoZXIgbWVhbnMuICovCi0gICAgICAgIGNvZGVzZXQgPSBnZXRfY29kZXNldCgpOwotICAgICAgICBpZiAoY29kZXNldCA9PSBOVUxMKQorICAgIGlmIChQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nID09IE5VTEwpCisgICAgeworICAgICAgICBQeV9GaWxlU3lzdGVtRGVmYXVsdEVuY29kaW5nID0gZ2V0X2xvY2FsZV9lbmNvZGluZygpOworICAgICAgICBpZiAoUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZyA9PSBOVUxMKQogICAgICAgICAgICAgUHlfRmF0YWxFcnJvcigiUHlfSW5pdGlhbGl6ZTogVW5hYmxlIHRvIGdldCB0aGUgbG9jYWxlIGVuY29kaW5nIik7CiAKLSAgICAgICAgUHlfRmlsZVN5c3RlbURlZmF1bHRFbmNvZGluZyA9IGNvZGVzZXQ7CiAgICAgICAgIFB5X0hhc0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcgPSAwOwogICAgICAgICBpbnRlcnAtPmZzY29kZWNfaW5pdGlhbGl6ZWQgPSAxOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0jZW5kaWYKIAogICAgIC8qIHRoZSBlbmNvZGluZyBpcyBtYmNzLCB1dGYtOCBvciBhc2NpaSAqLwogICAgIGNvZGVjID0gX1B5Q29kZWNfTG9va3VwKFB5X0ZpbGVTeXN0ZW1EZWZhdWx0RW5jb2RpbmcpOwpAQCAtODIyLDYgKzg5NywxMSBAQAogICAgIGNvbnN0IGNoYXIqIG5ld2xpbmU7CiAgICAgUHlPYmplY3QgKmxpbmVfYnVmZmVyaW5nOwogICAgIGludCBidWZmZXJpbmcsIGlzYXR0eTsKKyAgICBfUHlfSURFTlRJRklFUihvcGVuKTsKKyAgICBfUHlfSURFTlRJRklFUihpc2F0dHkpOworICAgIF9QeV9JREVOVElGSUVSKFRleHRJT1dyYXBwZXIpOworICAgIF9QeV9JREVOVElGSUVSKG5hbWUpOworICAgIF9QeV9JREVOVElGSUVSKG1vZGUpOwogCiAgICAgLyogc3RkaW4gaXMgYWx3YXlzIG9wZW5lZCBpbiBidWZmZXJlZCBtb2RlLCBmaXJzdCBiZWNhdXNlIGl0IHNob3VsZG4ndAogICAgICAgIG1ha2UgYSBkaWZmZXJlbmNlIGluIGNvbW1vbiB1c2UgY2FzZXMsIHNlY29uZCBiZWNhdXNlIFRleHRJT1dyYXBwZXIKQEAgLTgzNiwxNCArOTE2LDE1IEBACiAgICAgICAgIG1vZGUgPSAid2IiOwogICAgIGVsc2UKICAgICAgICAgbW9kZSA9ICJyYiI7Ci0gICAgYnVmID0gUHlPYmplY3RfQ2FsbE1ldGhvZChpbywgIm9wZW4iLCAiaXNpT09PaSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZCwgbW9kZSwgYnVmZmVyaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfTm9uZSwgUHlfTm9uZSwgUHlfTm9uZSwgMCk7CisgICAgYnVmID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChpbywgJlB5SWRfb3BlbiwgImlzaU9PT2kiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQsIG1vZGUsIGJ1ZmZlcmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB5X05vbmUsIFB5X05vbmUsIFB5X05vbmUsIDApOwogICAgIGlmIChidWYgPT0gTlVMTCkKICAgICAgICAgZ290byBlcnJvcjsKIAogICAgIGlmIChidWZmZXJpbmcpIHsKLSAgICAgICAgcmF3ID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyhidWYsICJyYXciKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIocmF3KTsKKyAgICAgICAgcmF3ID0gX1B5T2JqZWN0X0dldEF0dHJJZChidWYsICZQeUlkX3Jhdyk7CiAgICAgICAgIGlmIChyYXcgPT0gTlVMTCkKICAgICAgICAgICAgIGdvdG8gZXJyb3I7CiAgICAgfQpAQCAtODUzLDkgKzkzNCw5IEBACiAgICAgfQogCiAgICAgdGV4dCA9IFB5VW5pY29kZV9Gcm9tU3RyaW5nKG5hbWUpOwotICAgIGlmICh0ZXh0ID09IE5VTEwgfHwgUHlPYmplY3RfU2V0QXR0clN0cmluZyhyYXcsICJuYW1lIiwgdGV4dCkgPCAwKQorICAgIGlmICh0ZXh0ID09IE5VTEwgfHwgX1B5T2JqZWN0X1NldEF0dHJJZChyYXcsICZQeUlkX25hbWUsIHRleHQpIDwgMCkKICAgICAgICAgZ290byBlcnJvcjsKLSAgICByZXMgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHJhdywgImlzYXR0eSIsICIiKTsKKyAgICByZXMgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHJhdywgJlB5SWRfaXNhdHR5LCAiIik7CiAgICAgaWYgKHJlcyA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogICAgIGlzYXR0eSA9IFB5T2JqZWN0X0lzVHJ1ZShyZXMpOwpAQCAtODc4LDkgKzk1OSw5IEBACiAgICAgfQogI2VuZGlmCiAKLSAgICBzdHJlYW0gPSBQeU9iamVjdF9DYWxsTWV0aG9kKGlvLCAiVGV4dElPV3JhcHBlciIsICJPc3NzTyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIGVuY29kaW5nLCBlcnJvcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdsaW5lLCBsaW5lX2J1ZmZlcmluZyk7CisgICAgc3RyZWFtID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChpbywgJlB5SWRfVGV4dElPV3JhcHBlciwgIk9zc3NPIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZiwgZW5jb2RpbmcsIGVycm9ycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld2xpbmUsIGxpbmVfYnVmZmVyaW5nKTsKICAgICBQeV9DTEVBUihidWYpOwogICAgIGlmIChzdHJlYW0gPT0gTlVMTCkKICAgICAgICAgZ290byBlcnJvcjsKQEAgLTg5MCw3ICs5NzEsNyBAQAogICAgIGVsc2UKICAgICAgICAgbW9kZSA9ICJyIjsKICAgICB0ZXh0ID0gUHlVbmljb2RlX0Zyb21TdHJpbmcobW9kZSk7Ci0gICAgaWYgKCF0ZXh0IHx8IFB5T2JqZWN0X1NldEF0dHJTdHJpbmcoc3RyZWFtLCAibW9kZSIsIHRleHQpIDwgMCkKKyAgICBpZiAoIXRleHQgfHwgX1B5T2JqZWN0X1NldEF0dHJJZChzdHJlYW0sICZQeUlkX21vZGUsIHRleHQpIDwgMCkKICAgICAgICAgZ290byBlcnJvcjsKICAgICBQeV9DTEVBUih0ZXh0KTsKICAgICByZXR1cm4gc3RyZWFtOwpAQCAtMTEzMCwxMyArMTIxMSwxNCBAQAogICAgIFB5QXJlbmEgKmFyZW5hOwogICAgIGNoYXIgKnBzMSA9ICIiLCAqcHMyID0gIiIsICplbmMgPSBOVUxMOwogICAgIGludCBlcnJjb2RlID0gMDsKKyAgICBfUHlfSURFTlRJRklFUihlbmNvZGluZyk7CiAKICAgICBpZiAoZnAgPT0gc3RkaW4pIHsKICAgICAgICAgLyogRmV0Y2ggZW5jb2RpbmcgZnJvbSBzeXMuc3RkaW4gKi8KICAgICAgICAgdiA9IFB5U3lzX0dldE9iamVjdCgic3RkaW4iKTsKICAgICAgICAgaWYgKHYgPT0gTlVMTCB8fCB2ID09IFB5X05vbmUpCiAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIG9lbmMgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKHYsICJlbmNvZGluZyIpOworICAgICAgICBvZW5jID0gX1B5T2JqZWN0X0dldEF0dHJJZCh2LCAmUHlJZF9lbmNvZGluZyk7CiAgICAgICAgIGlmICghb2VuYykKICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgZW5jID0gX1B5VW5pY29kZV9Bc1N0cmluZyhvZW5jKTsKQEAgLTEzMzMsMjAgKzE0MTUsMjAgQEAKIHsKICAgICBsb25nIGhvbGQ7CiAgICAgUHlPYmplY3QgKnY7Ci0KLSAgICAvKiBvbGQgc3R5bGUgZXJyb3JzICovCi0gICAgaWYgKFB5VHVwbGVfQ2hlY2soZXJyKSkKLSAgICAgICAgcmV0dXJuIFB5QXJnX1BhcnNlVHVwbGUoZXJyLCAiTyh6aWl6KSIsIG1lc3NhZ2UsIGZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lbm8sIG9mZnNldCwgdGV4dCk7CisgICAgX1B5X0lERU5USUZJRVIobXNnKTsKKyAgICBfUHlfSURFTlRJRklFUihmaWxlbmFtZSk7CisgICAgX1B5X0lERU5USUZJRVIobGluZW5vKTsKKyAgICBfUHlfSURFTlRJRklFUihvZmZzZXQpOworICAgIF9QeV9JREVOVElGSUVSKHRleHQpOwogCiAgICAgKm1lc3NhZ2UgPSBOVUxMOwogCiAgICAgLyogbmV3IHN0eWxlIGVycm9ycy4gIGBlcnInIGlzIGFuIGluc3RhbmNlICovCi0gICAgKm1lc3NhZ2UgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGVyciwgIm1zZyIpOworICAgICptZXNzYWdlID0gX1B5T2JqZWN0X0dldEF0dHJJZChlcnIsICZQeUlkX21zZyk7CiAgICAgaWYgKCEqbWVzc2FnZSkKICAgICAgICAgZ290byBmaW5hbGx5OwogCi0gICAgdiA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoZXJyLCAiZmlsZW5hbWUiKTsKKyAgICB2ID0gX1B5T2JqZWN0X0dldEF0dHJJZChlcnIsICZQeUlkX2ZpbGVuYW1lKTsKICAgICBpZiAoIXYpCiAgICAgICAgIGdvdG8gZmluYWxseTsKICAgICBpZiAodiA9PSBQeV9Ob25lKSB7CkBAIC0xMzYwLDcgKzE0NDIsNyBAQAogICAgICAgICAgICAgZ290byBmaW5hbGx5OwogICAgIH0KIAotICAgIHYgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKGVyciwgImxpbmVubyIpOworICAgIHYgPSBfUHlPYmplY3RfR2V0QXR0cklkKGVyciwgJlB5SWRfbGluZW5vKTsKICAgICBpZiAoIXYpCiAgICAgICAgIGdvdG8gZmluYWxseTsKICAgICBob2xkID0gUHlMb25nX0FzTG9uZyh2KTsKQEAgLTEzNjksNyArMTQ1MSw3IEBACiAgICAgICAgIGdvdG8gZmluYWxseTsKICAgICAqbGluZW5vID0gKGludClob2xkOwogCi0gICAgdiA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoZXJyLCAib2Zmc2V0Iik7CisgICAgdiA9IF9QeU9iamVjdF9HZXRBdHRySWQoZXJyLCAmUHlJZF9vZmZzZXQpOwogICAgIGlmICghdikKICAgICAgICAgZ290byBmaW5hbGx5OwogICAgIGlmICh2ID09IFB5X05vbmUpIHsKQEAgLTEzODMsNyArMTQ2NSw3IEBACiAgICAgICAgICpvZmZzZXQgPSAoaW50KWhvbGQ7CiAgICAgfQogCi0gICAgdiA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoZXJyLCAidGV4dCIpOworICAgIHYgPSBfUHlPYmplY3RfR2V0QXR0cklkKGVyciwgJlB5SWRfdGV4dCk7CiAgICAgaWYgKCF2KQogICAgICAgICBnb3RvIGZpbmFsbHk7CiAgICAgaWYgKHYgPT0gUHlfTm9uZSkgewpAQCAtMTQ1Nyw3ICsxNTM5LDggQEAKICAgICAgICAgZ290byBkb25lOwogICAgIGlmIChQeUV4Y2VwdGlvbkluc3RhbmNlX0NoZWNrKHZhbHVlKSkgewogICAgICAgICAvKiBUaGUgZXJyb3IgY29kZSBzaG91bGQgYmUgaW4gdGhlIGBjb2RlJyBhdHRyaWJ1dGUuICovCi0gICAgICAgIFB5T2JqZWN0ICpjb2RlID0gUHlPYmplY3RfR2V0QXR0clN0cmluZyh2YWx1ZSwgImNvZGUiKTsKKyAgICAgICAgX1B5X0lERU5USUZJRVIoY29kZSk7CisgICAgICAgIFB5T2JqZWN0ICpjb2RlID0gX1B5T2JqZWN0X0dldEF0dHJJZCh2YWx1ZSwgJlB5SWRfY29kZSk7CiAgICAgICAgIGlmIChjb2RlKSB7CiAgICAgICAgICAgICBQeV9ERUNSRUYodmFsdWUpOwogICAgICAgICAgICAgdmFsdWUgPSBjb2RlOwpAQCAtMTU2NCw2ICsxNjQ3LDcgQEAKIHsKICAgICBpbnQgZXJyID0gMDsKICAgICBQeU9iamVjdCAqdHlwZSwgKnRiOworICAgIF9QeV9JREVOVElGSUVSKHByaW50X2ZpbGVfYW5kX2xpbmUpOwogCiAgICAgaWYgKCFQeUV4Y2VwdGlvbkluc3RhbmNlX0NoZWNrKHZhbHVlKSkgewogICAgICAgICBQeUZpbGVfV3JpdGVTdHJpbmcoIlR5cGVFcnJvcjogcHJpbnRfZXhjZXB0aW9uKCk6IEV4Y2VwdGlvbiBleHBlY3RlZCBmb3IgdmFsdWUsICIsIGYpOwpAQCAtMTU3OSw3ICsxNjYzLDcgQEAKICAgICBpZiAodGIgJiYgdGIgIT0gUHlfTm9uZSkKICAgICAgICAgZXJyID0gUHlUcmFjZUJhY2tfUHJpbnQodGIsIGYpOwogICAgIGlmIChlcnIgPT0gMCAmJgotICAgICAgICBQeU9iamVjdF9IYXNBdHRyU3RyaW5nKHZhbHVlLCAicHJpbnRfZmlsZV9hbmRfbGluZSIpKQorICAgICAgICBfUHlPYmplY3RfSGFzQXR0cklkKHZhbHVlLCAmUHlJZF9wcmludF9maWxlX2FuZF9saW5lKSkKICAgICB7CiAgICAgICAgIFB5T2JqZWN0ICptZXNzYWdlOwogICAgICAgICBjb25zdCBjaGFyICpmaWxlbmFtZSwgKnRleHQ7CkBAIC0xNjE0LDYgKzE2OTgsNyBAQAogICAgIGVsc2UgewogICAgICAgICBQeU9iamVjdCogbW9kdWxlTmFtZTsKICAgICAgICAgY2hhciogY2xhc3NOYW1lOworICAgICAgICBfUHlfSURFTlRJRklFUihfX21vZHVsZV9fKTsKICAgICAgICAgYXNzZXJ0KFB5RXhjZXB0aW9uQ2xhc3NfQ2hlY2sodHlwZSkpOwogICAgICAgICBjbGFzc05hbWUgPSBQeUV4Y2VwdGlvbkNsYXNzX05hbWUodHlwZSk7CiAgICAgICAgIGlmIChjbGFzc05hbWUgIT0gTlVMTCkgewpAQCAtMTYyMiwxMCArMTcwNywxMCBAQAogICAgICAgICAgICAgICAgIGNsYXNzTmFtZSA9IGRvdCsxOwogICAgICAgICB9CiAKLSAgICAgICAgbW9kdWxlTmFtZSA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcodHlwZSwgIl9fbW9kdWxlX18iKTsKKyAgICAgICAgbW9kdWxlTmFtZSA9IF9QeU9iamVjdF9HZXRBdHRySWQodHlwZSwgJlB5SWRfX19tb2R1bGVfXyk7CiAgICAgICAgIGlmIChtb2R1bGVOYW1lID09IE5VTEwgfHwgIVB5VW5pY29kZV9DaGVjayhtb2R1bGVOYW1lKSkKICAgICAgICAgewotICAgICAgICAgICAgUHlfREVDUkVGKG1vZHVsZU5hbWUpOworICAgICAgICAgICAgUHlfWERFQ1JFRihtb2R1bGVOYW1lKTsKICAgICAgICAgICAgIGVyciA9IFB5RmlsZV9Xcml0ZVN0cmluZygiPHVua25vd24+IiwgZik7CiAgICAgICAgIH0KICAgICAgICAgZWxzZSB7CkBAIC0xNjUyLDcgKzE3MzcsNyBAQAogICAgICAgICBpZiAocyA9PSBOVUxMKQogICAgICAgICAgICAgZXJyID0gLTE7CiAgICAgICAgIGVsc2UgaWYgKCFQeVVuaWNvZGVfQ2hlY2socykgfHwKLSAgICAgICAgICAgIFB5VW5pY29kZV9HZXRTaXplKHMpICE9IDApCisgICAgICAgICAgICBQeVVuaWNvZGVfR2V0TGVuZ3RoKHMpICE9IDApCiAgICAgICAgICAgICBlcnIgPSBQeUZpbGVfV3JpdGVTdHJpbmcoIjogIiwgZik7CiAgICAgICAgIGlmIChlcnIgPT0gMCkKICAgICAgICAgICBlcnIgPSBQeUZpbGVfV3JpdGVPYmplY3QocywgZiwgUHlfUFJJTlRfUkFXKTsKQEAgLTE3MDAsNyArMTc4NSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBjYXVzZV9tZXNzYWdlLCBmKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChjb250ZXh0KSB7CisgICAgICAgICAgICBlbHNlIGlmIChjb250ZXh0ICYmCisgICAgICAgICAgICAgICAgISgoUHlCYXNlRXhjZXB0aW9uT2JqZWN0ICopdmFsdWUpLT5zdXBwcmVzc19jb250ZXh0KSB7CiAgICAgICAgICAgICAgICAgcmVzID0gUHlTZXRfQ29udGFpbnMoc2VlbiwgY29udGV4dCk7CiAgICAgICAgICAgICAgICAgaWYgKHJlcyA9PSAtMSkKICAgICAgICAgICAgICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKQEAgLTE3ODksMTMgKzE4NzUsMTQgQEAKIHsKICAgICBQeU9iamVjdCAqZiwgKnI7CiAgICAgUHlPYmplY3QgKnR5cGUsICp2YWx1ZSwgKnRyYWNlYmFjazsKKyAgICBfUHlfSURFTlRJRklFUihmbHVzaCk7CiAKICAgICAvKiBTYXZlIHRoZSBjdXJyZW50IGV4Y2VwdGlvbiAqLwogICAgIFB5RXJyX0ZldGNoKCZ0eXBlLCAmdmFsdWUsICZ0cmFjZWJhY2spOwogCiAgICAgZiA9IFB5U3lzX0dldE9iamVjdCgic3RkZXJyIik7CiAgICAgaWYgKGYgIT0gTlVMTCkgewotICAgICAgICByID0gUHlPYmplY3RfQ2FsbE1ldGhvZChmLCAiZmx1c2giLCAiIik7CisgICAgICAgIHIgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKGYsICZQeUlkX2ZsdXNoLCAiIik7CiAgICAgICAgIGlmIChyKQogICAgICAgICAgICAgUHlfREVDUkVGKHIpOwogICAgICAgICBlbHNlCkBAIC0xODAzLDcgKzE4OTAsNyBAQAogICAgIH0KICAgICBmID0gUHlTeXNfR2V0T2JqZWN0KCJzdGRvdXQiKTsKICAgICBpZiAoZiAhPSBOVUxMKSB7Ci0gICAgICAgIHIgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGYsICJmbHVzaCIsICIiKTsKKyAgICAgICAgciA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoZiwgJlB5SWRfZmx1c2gsICIiKTsKICAgICAgICAgaWYgKHIpCiAgICAgICAgICAgICBQeV9ERUNSRUYocik7CiAgICAgICAgIGVsc2UKQEAgLTE4NDIsNiArMTkyOSw4IEBACiAgICAgICAgICAgICAgICAgICAgIkJhZCBtYWdpYyBudW1iZXIgaW4gLnB5YyBmaWxlIik7CiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIH0KKyAgICAvKiBTa2lwIG10aW1lIGFuZCBzaXplICovCisgICAgKHZvaWQpIFB5TWFyc2hhbF9SZWFkTG9uZ0Zyb21GaWxlKGZwKTsKICAgICAodm9pZCkgUHlNYXJzaGFsX1JlYWRMb25nRnJvbUZpbGUoZnApOwogICAgIHYgPSBQeU1hcnNoYWxfUmVhZExhc3RPYmplY3RGcm9tRmlsZShmcCk7CiAgICAgZmNsb3NlKGZwKTsKQEAgLTE5MzQsMTIgKzIwMjMsMTMgQEAKICAgICAgICAgZmxhZ3MtPmNmX2ZsYWdzIHw9IGlmbGFncyAmIFB5Q0ZfTUFTSzsKICAgICAgICAgbW9kID0gUHlBU1RfRnJvbU5vZGUobiwgZmxhZ3MsIGZpbGVuYW1lLCBhcmVuYSk7CiAgICAgICAgIFB5Tm9kZV9GcmVlKG4pOwotICAgICAgICByZXR1cm4gbW9kOwogICAgIH0KICAgICBlbHNlIHsKICAgICAgICAgZXJyX2lucHV0KCZlcnIpOwotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgbW9kID0gTlVMTDsKICAgICB9CisgICAgZXJyX2ZyZWUoJmVycik7CisgICAgcmV0dXJuIG1vZDsKIH0KIAogbW9kX3R5CkBAIC0xOTY0LDE0ICsyMDU0LDE1IEBACiAgICAgICAgIGZsYWdzLT5jZl9mbGFncyB8PSBpZmxhZ3MgJiBQeUNGX01BU0s7CiAgICAgICAgIG1vZCA9IFB5QVNUX0Zyb21Ob2RlKG4sIGZsYWdzLCBmaWxlbmFtZSwgYXJlbmEpOwogICAgICAgICBQeU5vZGVfRnJlZShuKTsKLSAgICAgICAgcmV0dXJuIG1vZDsKICAgICB9CiAgICAgZWxzZSB7CiAgICAgICAgIGVycl9pbnB1dCgmZXJyKTsKICAgICAgICAgaWYgKGVycmNvZGUpCiAgICAgICAgICAgICAqZXJyY29kZSA9IGVyci5lcnJvcjsKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIG1vZCA9IE5VTEw7CiAgICAgfQorICAgIGVycl9mcmVlKCZlcnIpOworICAgIHJldHVybiBtb2Q7CiB9CiAKIC8qIFNpbXBsaWZpZWQgaW50ZXJmYWNlIHRvIHBhcnNlZmlsZSAtLSByZXR1cm4gbm9kZSBvciBzZXQgZXhjZXB0aW9uICovCkBAIC0xOTg1LDYgKzIwNzYsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgTlVMTCwgTlVMTCwgJmVyciwgZmxhZ3MpOwogICAgIGlmIChuID09IE5VTEwpCiAgICAgICAgIGVycl9pbnB1dCgmZXJyKTsKKyAgICBlcnJfZnJlZSgmZXJyKTsKIAogICAgIHJldHVybiBuOwogfQpAQCAtMTk5OSw2ICsyMDkxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCwgJmVyciwgZmxhZ3MpOwogICAgIGlmIChuID09IE5VTEwpCiAgICAgICAgIGVycl9pbnB1dCgmZXJyKTsKKyAgICBlcnJfZnJlZSgmZXJyKTsKICAgICByZXR1cm4gbjsKIH0KIApAQCAtMjAxMSw2ICsyMTA0LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmX1B5UGFyc2VyX0dyYW1tYXIsIHN0YXJ0LCAmZXJyLCBmbGFncyk7CiAgICAgaWYgKG4gPT0gTlVMTCkKICAgICAgICAgZXJyX2lucHV0KCZlcnIpOworICAgIGVycl9mcmVlKCZlcnIpOwogICAgIHJldHVybiBuOwogfQogCkBAIC0yMDI0LDExICsyMTE4LDIzIEBACiAgICBldmVuIHBhcnNlciBtb2R1bGVzLiAqLwogCiB2b2lkCitQeVBhcnNlcl9DbGVhckVycm9yKHBlcnJkZXRhaWwgKmVycikKK3sKKyAgICBlcnJfZnJlZShlcnIpOworfQorCit2b2lkCiBQeVBhcnNlcl9TZXRFcnJvcihwZXJyZGV0YWlsICplcnIpCiB7CiAgICAgZXJyX2lucHV0KGVycik7CiB9CiAKK3N0YXRpYyB2b2lkCitlcnJfZnJlZShwZXJyZGV0YWlsICplcnIpCit7CisgICAgUHlfQ0xFQVIoZXJyLT5maWxlbmFtZSk7Cit9CisKIC8qIFNldCB0aGUgZXJyb3IgYXBwcm9wcmlhdGUgdG8gdGhlIGdpdmVuIGlucHV0IGVycm9yIGNvZGUgKHNlZSBlcnJjb2RlLmgpICovCiAKIHN0YXRpYyB2b2lkCkBAIC0yMDM2LDcgKzIxNDIsNiBAQAogewogICAgIFB5T2JqZWN0ICp2LCAqdywgKmVycnR5cGUsICplcnJ0ZXh0OwogICAgIFB5T2JqZWN0ICptc2dfb2JqID0gTlVMTDsKLSAgICBQeU9iamVjdCAqZmlsZW5hbWU7CiAgICAgY2hhciAqbXNnID0gTlVMTDsKIAogICAgIGVycnR5cGUgPSBQeUV4Y19TeW50YXhFcnJvcjsKQEAgLTIxMDgsNiArMjIxMyw5IEBACiAgICAgY2FzZSBFX0lERU5USUZJRVI6CiAgICAgICAgIG1zZyA9ICJpbnZhbGlkIGNoYXJhY3RlciBpbiBpZGVudGlmaWVyIjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFX0JBRFNJTkdMRToKKyAgICAgICAgbXNnID0gIm11bHRpcGxlIHN0YXRlbWVudHMgZm91bmQgd2hpbGUgY29tcGlsaW5nIGEgc2luZ2xlIHN0YXRlbWVudCI7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiZXJyb3I9JWRcbiIsIGVyci0+ZXJyb3IpOwogICAgICAgICBtc2cgPSAidW5rbm93biBwYXJzaW5nIGVycm9yIjsKQEAgLTIxMjIsMTcgKzIyMzAsOCBAQAogICAgICAgICBlcnJ0ZXh0ID0gUHlVbmljb2RlX0RlY29kZVVURjgoZXJyLT50ZXh0LCBzdHJsZW4oZXJyLT50ZXh0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXBsYWNlIik7CiAgICAgfQotICAgIGlmIChlcnItPmZpbGVuYW1lICE9IE5VTEwpCi0gICAgICAgIGZpbGVuYW1lID0gUHlVbmljb2RlX0RlY29kZUZTRGVmYXVsdChlcnItPmZpbGVuYW1lKTsKLSAgICBlbHNlIHsKLSAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwotICAgICAgICBmaWxlbmFtZSA9IFB5X05vbmU7Ci0gICAgfQotICAgIGlmIChmaWxlbmFtZSAhPSBOVUxMKQotICAgICAgICB2ID0gUHlfQnVpbGRWYWx1ZSgiKE5paU4pIiwgZmlsZW5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGVyci0+bGluZW5vLCBlcnItPm9mZnNldCwgZXJydGV4dCk7Ci0gICAgZWxzZQotICAgICAgICB2ID0gTlVMTDsKKyAgICB2ID0gUHlfQnVpbGRWYWx1ZSgiKE9paU4pIiwgZXJyLT5maWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICBlcnItPmxpbmVubywgZXJyLT5vZmZzZXQsIGVycnRleHQpOwogICAgIGlmICh2ICE9IE5VTEwpIHsKICAgICAgICAgaWYgKG1zZ19vYmopCiAgICAgICAgICAgICB3ID0gUHlfQnVpbGRWYWx1ZSgiKE9PKSIsIG1zZ19vYmosIHYpOwpAQCAtMjE1NiwxMSArMjI1NSwyNCBAQAogdm9pZAogUHlfRmF0YWxFcnJvcihjb25zdCBjaGFyICptc2cpCiB7CisgICAgY29uc3QgaW50IGZkID0gZmlsZW5vKHN0ZGVycik7CisgICAgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlOworCiAgICAgZnByaW50ZihzdGRlcnIsICJGYXRhbCBQeXRob24gZXJyb3I6ICVzXG4iLCBtc2cpOwogICAgIGZmbHVzaChzdGRlcnIpOyAvKiBpdCBoZWxwcyBpbiBXaW5kb3dzIGRlYnVnIGJ1aWxkICovCiAgICAgaWYgKFB5RXJyX09jY3VycmVkKCkpIHsKICAgICAgICAgUHlFcnJfUHJpbnRFeCgwKTsKICAgICB9CisgICAgZWxzZSB7CisgICAgICAgIHRzdGF0ZSA9IF9QeV9hdG9taWNfbG9hZF9yZWxheGVkKCZfUHlUaHJlYWRTdGF0ZV9DdXJyZW50KTsKKyAgICAgICAgaWYgKHRzdGF0ZSAhPSBOVUxMKSB7CisgICAgICAgICAgICBmcHV0YygnXG4nLCBzdGRlcnIpOworICAgICAgICAgICAgZmZsdXNoKHN0ZGVycik7CisgICAgICAgICAgICBfUHlfRHVtcFRyYWNlYmFja1RocmVhZHMoZmQsIHRzdGF0ZS0+aW50ZXJwLCB0c3RhdGUpOworICAgICAgICB9CisgICAgICAgIF9QeUZhdWx0aGFuZGxlcl9GaW5pKCk7CisgICAgfQorCiAjaWZkZWYgTVNfV0lORE9XUwogICAgIHsKICAgICAgICAgc2l6ZV90IGxlbiA9IHN0cmxlbihtc2cpOwpAQCAtMjIxNSw2ICsyMzI3LDcgQEAKIHdhaXRfZm9yX3RocmVhZF9zaHV0ZG93bih2b2lkKQogewogI2lmZGVmIFdJVEhfVEhSRUFECisgICAgX1B5X0lERU5USUZJRVIoX3NodXRkb3duKTsKICAgICBQeU9iamVjdCAqcmVzdWx0OwogICAgIFB5VGhyZWFkU3RhdGUgKnRzdGF0ZSA9IFB5VGhyZWFkU3RhdGVfR0VUKCk7CiAgICAgUHlPYmplY3QgKnRocmVhZGluZyA9IFB5TWFwcGluZ19HZXRJdGVtU3RyaW5nKHRzdGF0ZS0+aW50ZXJwLT5tb2R1bGVzLApAQCAtMjIyNCw3ICsyMzM3LDcgQEAKICAgICAgICAgUHlFcnJfQ2xlYXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKHRocmVhZGluZywgIl9zaHV0ZG93biIsICIiKTsKKyAgICByZXN1bHQgPSBfUHlPYmplY3RfQ2FsbE1ldGhvZElkKHRocmVhZGluZywgJlB5SWRfX3NodXRkb3duLCAiIik7CiAgICAgaWYgKHJlc3VsdCA9PSBOVUxMKSB7CiAgICAgICAgIFB5RXJyX1dyaXRlVW5yYWlzYWJsZSh0aHJlYWRpbmcpOwogICAgIH0KZGlmZiAtLWdpdCBhL1B5dGhvbi9weXRpbWUuYyBiL1B5dGhvbi9weXRpbWUuYwppbmRleCA2ZmI3Njk1Li5iZWVhYjg3IDEwMDY0NAotLS0gYS9QeXRob24vcHl0aW1lLmMKKysrIGIvUHl0aG9uL3B5dGltZS5jCkBAIC0xLDcgKzEsOSBAQAogI2luY2x1ZGUgIlB5dGhvbi5oIgorI2lmZGVmIE1TX1dJTkRPV1MKKyNpbmNsdWRlIDx3aW5kb3dzLmg+CisjZW5kaWYKIAotI2lmZGVmIF9fQVBQTEVfXwotI2lmIGRlZmluZWQoSEFWRV9HRVRUSU1FT0ZEQVkpICYmIGRlZmluZWQoSEFWRV9GVElNRSkKKyNpZiBkZWZpbmVkKF9fQVBQTEVfXykgJiYgZGVmaW5lZChIQVZFX0dFVFRJTUVPRkRBWSkgJiYgZGVmaW5lZChIQVZFX0ZUSU1FKQogICAvKgogICAgKiBfUHlUaW1lX2dldHRpbWVvZmRheSBmYWxscyBiYWNrIHRvIGZ0aW1lIHdoZW4gZ2V0dHRpbWVvZmRheSBmYWlscyBiZWNhdXNlIHRoZSBsYXR0ZXIKICAgICogbWlnaHQgZmFpbCBvbiBzb21lIHBsYXRmb3Jtcy4gVGhpcyBmYWxsYmFjayBpcyB1bndhbnRlZCBvbiBNYWNPU1ggYmVjYXVzZQpAQCAtMTAsMTggKzEyLDQxIEBACiAgICAqLwogIyB1bmRlZiBIQVZFX0ZUSU1FCiAjZW5kaWYKKworI2lmIGRlZmluZWQoSEFWRV9GVElNRSkgJiYgIWRlZmluZWQoTVNfV0lORE9XUykKKyNpbmNsdWRlIDxzeXMvdGltZWIuaD4KK2V4dGVybiBpbnQgZnRpbWUoc3RydWN0IHRpbWViICopOwogI2VuZGlmCiAKLSNpZmRlZiBIQVZFX0ZUSU1FCi0jaW5jbHVkZSA8c3lzL3RpbWViLmg+Ci0jaWYgIWRlZmluZWQoTVNfV0lORE9XUykgJiYgIWRlZmluZWQoUFlPU19PUzIpCi1leHRlcm4gaW50IGZ0aW1lKHN0cnVjdCB0aW1lYiAqKTsKLSNlbmRpZiAvKiBNU19XSU5ET1dTICovCi0jZW5kaWYgLyogSEFWRV9GVElNRSAqLwotCi12b2lkCi1fUHlUaW1lX2dldHRpbWVvZmRheShfUHlUaW1lX3RpbWV2YWwgKnRwKQorc3RhdGljIHZvaWQKK3B5Z2V0dGltZW9mZGF5KF9QeVRpbWVfdGltZXZhbCAqdHAsIF9QeV9jbG9ja19pbmZvX3QgKmluZm8pCiB7CisjaWZkZWYgTVNfV0lORE9XUworICAgIEZJTEVUSU1FIHN5c3RlbV90aW1lOworICAgIFVMQVJHRV9JTlRFR0VSIGxhcmdlOworICAgIFVMT05HTE9ORyBtaWNyb3NlY29uZHM7CisKKyAgICBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgmc3lzdGVtX3RpbWUpOworICAgIGxhcmdlLnUuTG93UGFydCA9IHN5c3RlbV90aW1lLmR3TG93RGF0ZVRpbWU7CisgICAgbGFyZ2UudS5IaWdoUGFydCA9IHN5c3RlbV90aW1lLmR3SGlnaERhdGVUaW1lOworICAgIC8qIDExLDY0NCw0NzMsNjAwLDAwMCwwMDA6IG51bWJlciBvZiBtaWNyb3NlY29uZHMgYmV0d2VlbgorICAgICAgIHRoZSAxc3QgamFudWFyeSAxNjAxIGFuZCB0aGUgMXN0IGphbnVhcnkgMTk3MCAoMzY5IHllYXJzICsgODkgbGVhcAorICAgICAgIGRheXMpLiAqLworICAgIG1pY3Jvc2Vjb25kcyA9IGxhcmdlLlF1YWRQYXJ0IC8gMTAgLSAxMTY0NDQ3MzYwMDAwMDAwMDsKKyAgICB0cC0+dHZfc2VjID0gbWljcm9zZWNvbmRzIC8gMTAwMDAwMDsKKyAgICB0cC0+dHZfdXNlYyA9IG1pY3Jvc2Vjb25kcyAlIDEwMDAwMDA7CisgICAgaWYgKGluZm8pIHsKKyAgICAgICAgRFdPUkQgdGltZUFkanVzdG1lbnQsIHRpbWVJbmNyZW1lbnQ7CisgICAgICAgIEJPT0wgaXNUaW1lQWRqdXN0bWVudERpc2FibGVkOworCisgICAgICAgIGluZm8tPmltcGxlbWVudGF0aW9uID0gIkdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCkiOworICAgICAgICBpbmZvLT5tb25vdG9uaWMgPSAwOworICAgICAgICAodm9pZCkgR2V0U3lzdGVtVGltZUFkanVzdG1lbnQoJnRpbWVBZGp1c3RtZW50LCAmdGltZUluY3JlbWVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpc1RpbWVBZGp1c3RtZW50RGlzYWJsZWQpOworICAgICAgICBpbmZvLT5yZXNvbHV0aW9uID0gdGltZUluY3JlbWVudCAqIDFlLTc7CisgICAgICAgIGluZm8tPmFkanVzdGFibGUgPSAxOworICAgIH0KKyNlbHNlCiAgICAgLyogVGhlcmUgYXJlIHRocmVlIHdheXMgdG8gZ2V0IHRoZSB0aW1lOgogICAgICAgKDEpIGdldHRpbWVvZmRheSgpIC0tIHJlc29sdXRpb24gaW4gbWljcm9zZWNvbmRzCiAgICAgICAoMikgZnRpbWUoKSAtLSByZXNvbHV0aW9uIGluIG1pbGxpc2Vjb25kcwpAQCAtMzAsMjcgKzU1LDE3MyBAQAogICAgICAgU2luY2Ugb24gc29tZSBzeXN0ZW1zIChlLmcuIFNDTyBPRFQgMy4wKSBnZXR0aW1lb2ZkYXkoKSBtYXkKICAgICAgIGZhaWwsIHNvIHdlIGZhbGwgYmFjayBvbiBmdGltZSgpIG9yIHRpbWUoKS4KICAgICAgIE5vdGU6IGNsb2NrIHJlc29sdXRpb24gZG9lcyBub3QgaW1wbHkgY2xvY2sgYWNjdXJhY3khICovCisKICNpZmRlZiBIQVZFX0dFVFRJTUVPRkRBWQorICAgIGludCBlcnI7CiAjaWZkZWYgR0VUVElNRU9GREFZX05PX1RaCi0gICAgaWYgKGdldHRpbWVvZmRheSh0cCkgPT0gMCkKKyAgICBlcnIgPSBnZXR0aW1lb2ZkYXkodHApOworI2Vsc2UKKyAgICBlcnIgPSBnZXR0aW1lb2ZkYXkodHAsIChzdHJ1Y3QgdGltZXpvbmUgKilOVUxMKTsKKyNlbmRpZgorICAgIGlmIChlcnIgPT0gMCkgeworICAgICAgICBpZiAoaW5mbykgeworICAgICAgICAgICAgaW5mby0+aW1wbGVtZW50YXRpb24gPSAiZ2V0dGltZW9mZGF5KCkiOworICAgICAgICAgICAgaW5mby0+cmVzb2x1dGlvbiA9IDFlLTY7CisgICAgICAgICAgICBpbmZvLT5tb25vdG9uaWMgPSAwOworICAgICAgICAgICAgaW5mby0+YWRqdXN0YWJsZSA9IDE7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwotI2Vsc2UgLyogIUdFVFRJTUVPRkRBWV9OT19UWiAqLwotICAgIGlmIChnZXR0aW1lb2ZkYXkodHAsIChzdHJ1Y3QgdGltZXpvbmUgKilOVUxMKSA9PSAwKQotICAgICAgICByZXR1cm47Ci0jZW5kaWYgLyogIUdFVFRJTUVPRkRBWV9OT19UWiAqLwotI2VuZGlmIC8qICFIQVZFX0dFVFRJTUVPRkRBWSAqLworICAgIH0KKyNlbmRpZiAgIC8qIEhBVkVfR0VUVElNRU9GREFZICovCisKICNpZiBkZWZpbmVkKEhBVkVfRlRJTUUpCiAgICAgewogICAgICAgICBzdHJ1Y3QgdGltZWIgdDsKICAgICAgICAgZnRpbWUoJnQpOwogICAgICAgICB0cC0+dHZfc2VjID0gdC50aW1lOwogICAgICAgICB0cC0+dHZfdXNlYyA9IHQubWlsbGl0bSAqIDEwMDA7CisgICAgICAgIGlmIChpbmZvKSB7CisgICAgICAgICAgICBpbmZvLT5pbXBsZW1lbnRhdGlvbiA9ICJmdGltZSgpIjsKKyAgICAgICAgICAgIGluZm8tPnJlc29sdXRpb24gPSAxZS0zOworICAgICAgICAgICAgaW5mby0+bW9ub3RvbmljID0gMDsKKyAgICAgICAgICAgIGluZm8tPmFkanVzdGFibGUgPSAxOworICAgICAgICB9CiAgICAgfQogI2Vsc2UgLyogIUhBVkVfRlRJTUUgKi8KICAgICB0cC0+dHZfc2VjID0gdGltZShOVUxMKTsKICAgICB0cC0+dHZfdXNlYyA9IDA7CisgICAgaWYgKGluZm8pIHsKKyAgICAgICAgaW5mby0+aW1wbGVtZW50YXRpb24gPSAidGltZSgpIjsKKyAgICAgICAgaW5mby0+cmVzb2x1dGlvbiA9IDEuMDsKKyAgICAgICAgaW5mby0+bW9ub3RvbmljID0gMDsKKyAgICAgICAgaW5mby0+YWRqdXN0YWJsZSA9IDE7CisgICAgfQogI2VuZGlmIC8qICFIQVZFX0ZUSU1FICovCi0gICAgcmV0dXJuOworCisjZW5kaWYgLyogTVNfV0lORE9XUyAqLworfQorCit2b2lkCitfUHlUaW1lX2dldHRpbWVvZmRheShfUHlUaW1lX3RpbWV2YWwgKnRwKQoreworICAgIHB5Z2V0dGltZW9mZGF5KHRwLCBOVUxMKTsKK30KKwordm9pZAorX1B5VGltZV9nZXR0aW1lb2ZkYXlfaW5mbyhfUHlUaW1lX3RpbWV2YWwgKnRwLCBfUHlfY2xvY2tfaW5mb190ICppbmZvKQoreworICAgIHB5Z2V0dGltZW9mZGF5KHRwLCBpbmZvKTsKK30KKworc3RhdGljIHZvaWQKK2Vycm9yX3RpbWVfdF9vdmVyZmxvdyh2b2lkKQoreworICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19PdmVyZmxvd0Vycm9yLAorICAgICAgICAgICAgICAgICAgICAidGltZXN0YW1wIG91dCBvZiByYW5nZSBmb3IgcGxhdGZvcm0gdGltZV90Iik7Cit9CisKK3RpbWVfdAorX1B5TG9uZ19Bc1RpbWVfdChQeU9iamVjdCAqb2JqKQoreworI2lmIGRlZmluZWQoSEFWRV9MT05HX0xPTkcpICYmIFNJWkVPRl9USU1FX1QgPT0gU0laRU9GX0xPTkdfTE9ORworICAgIFBZX0xPTkdfTE9ORyB2YWw7CisgICAgdmFsID0gUHlMb25nX0FzTG9uZ0xvbmcob2JqKTsKKyNlbHNlCisgICAgbG9uZyB2YWw7CisgICAgYXNzZXJ0KHNpemVvZih0aW1lX3QpIDw9IHNpemVvZihsb25nKSk7CisgICAgdmFsID0gUHlMb25nX0FzTG9uZyhvYmopOworI2VuZGlmCisgICAgaWYgKHZhbCA9PSAtMSAmJiBQeUVycl9PY2N1cnJlZCgpKSB7CisgICAgICAgIGlmIChQeUVycl9FeGNlcHRpb25NYXRjaGVzKFB5RXhjX092ZXJmbG93RXJyb3IpKQorICAgICAgICAgICAgZXJyb3JfdGltZV90X292ZXJmbG93KCk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgcmV0dXJuICh0aW1lX3QpdmFsOworfQorCitQeU9iamVjdCAqCitfUHlMb25nX0Zyb21UaW1lX3QodGltZV90IHQpCit7CisjaWYgZGVmaW5lZChIQVZFX0xPTkdfTE9ORykgJiYgU0laRU9GX1RJTUVfVCA9PSBTSVpFT0ZfTE9OR19MT05HCisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZ0xvbmcoKFBZX0xPTkdfTE9ORyl0KTsKKyNlbHNlCisgICAgYXNzZXJ0KHNpemVvZih0aW1lX3QpIDw9IHNpemVvZihsb25nKSk7CisgICAgcmV0dXJuIFB5TG9uZ19Gcm9tTG9uZygobG9uZyl0KTsKKyNlbmRpZgorfQorCitzdGF0aWMgaW50CitfUHlUaW1lX09iamVjdFRvRGVub21pbmF0b3IoUHlPYmplY3QgKm9iaiwgdGltZV90ICpzZWMsIGxvbmcgKm51bWVyYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZGVub21pbmF0b3IpCit7CisgICAgYXNzZXJ0KGRlbm9taW5hdG9yIDw9IExPTkdfTUFYKTsKKyAgICBpZiAoUHlGbG9hdF9DaGVjayhvYmopKSB7CisgICAgICAgIGRvdWJsZSBkLCBpbnRwYXJ0LCBlcnI7CisgICAgICAgIC8qIHZvbGF0aWxlIGF2b2lkcyB1bnNhZmUgb3B0aW1pemF0aW9uIG9uIGZsb2F0IGVuYWJsZWQgYnkgZ2NjIC1PMyAqLworICAgICAgICB2b2xhdGlsZSBkb3VibGUgZmxvYXRwYXJ0OworCisgICAgICAgIGQgPSBQeUZsb2F0X0FzRG91YmxlKG9iaik7CisgICAgICAgIGZsb2F0cGFydCA9IG1vZGYoZCwgJmludHBhcnQpOworICAgICAgICBpZiAoZmxvYXRwYXJ0IDwgMCkgeworICAgICAgICAgICAgZmxvYXRwYXJ0ID0gMS4wICsgZmxvYXRwYXJ0OworICAgICAgICAgICAgaW50cGFydCAtPSAxLjA7CisgICAgICAgIH0KKworICAgICAgICAqc2VjID0gKHRpbWVfdClpbnRwYXJ0OworICAgICAgICBlcnIgPSBpbnRwYXJ0IC0gKGRvdWJsZSkqc2VjOworICAgICAgICBpZiAoZXJyIDw9IC0xLjAgfHwgZXJyID49IDEuMCkgeworICAgICAgICAgICAgZXJyb3JfdGltZV90X292ZXJmbG93KCk7CisgICAgICAgICAgICByZXR1cm4gLTE7CisgICAgICAgIH0KKworICAgICAgICBmbG9hdHBhcnQgKj0gZGVub21pbmF0b3I7CisgICAgICAgICpudW1lcmF0b3IgPSAobG9uZylmbG9hdHBhcnQ7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgKnNlYyA9IF9QeUxvbmdfQXNUaW1lX3Qob2JqKTsKKyAgICAgICAgaWYgKCpzZWMgPT0gKHRpbWVfdCktMSAmJiBQeUVycl9PY2N1cnJlZCgpKQorICAgICAgICAgICAgcmV0dXJuIC0xOworICAgICAgICAqbnVtZXJhdG9yID0gMDsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCitpbnQKK19QeVRpbWVfT2JqZWN0VG9UaW1lX3QoUHlPYmplY3QgKm9iaiwgdGltZV90ICpzZWMpCit7CisgICAgaWYgKFB5RmxvYXRfQ2hlY2sob2JqKSkgeworICAgICAgICBkb3VibGUgZCwgaW50cGFydCwgZXJyOworCisgICAgICAgIGQgPSBQeUZsb2F0X0FzRG91YmxlKG9iaik7CisgICAgICAgICh2b2lkKW1vZGYoZCwgJmludHBhcnQpOworCisgICAgICAgICpzZWMgPSAodGltZV90KWludHBhcnQ7CisgICAgICAgIGVyciA9IGludHBhcnQgLSAoZG91YmxlKSpzZWM7CisgICAgICAgIGlmIChlcnIgPD0gLTEuMCB8fCBlcnIgPj0gMS4wKSB7CisgICAgICAgICAgICBlcnJvcl90aW1lX3Rfb3ZlcmZsb3coKTsKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxzZSB7CisgICAgICAgICpzZWMgPSBfUHlMb25nX0FzVGltZV90KG9iaik7CisgICAgICAgIGlmICgqc2VjID09ICh0aW1lX3QpLTEgJiYgUHlFcnJfT2NjdXJyZWQoKSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorfQorCitpbnQKK19QeVRpbWVfT2JqZWN0VG9UaW1lc3BlYyhQeU9iamVjdCAqb2JqLCB0aW1lX3QgKnNlYywgbG9uZyAqbnNlYykKK3sKKyAgICByZXR1cm4gX1B5VGltZV9PYmplY3RUb0Rlbm9taW5hdG9yKG9iaiwgc2VjLCBuc2VjLCAxZTkpOworfQorCitpbnQKK19QeVRpbWVfT2JqZWN0VG9UaW1ldmFsKFB5T2JqZWN0ICpvYmosIHRpbWVfdCAqc2VjLCBsb25nICp1c2VjKQoreworICAgIHJldHVybiBfUHlUaW1lX09iamVjdFRvRGVub21pbmF0b3Iob2JqLCBzZWMsIHVzZWMsIDFlNik7CiB9CiAKIHZvaWQKZGlmZiAtLWdpdCBhL1B5dGhvbi9yYW5kb20uYyBiL1B5dGhvbi9yYW5kb20uYwppbmRleCBhMmFlMDAyLi43MDE5YTM1IDEwMDY0NAotLS0gYS9QeXRob24vcmFuZG9tLmMKKysrIGIvUHl0aG9uL3JhbmRvbS5jCkBAIC0yNTcsMTcgKzI1Nyw2IEBACiAgICAgX1B5X0hhc2hTZWNyZXRfSW5pdGlhbGl6ZWQgPSAxOwogCiAgICAgLyoKLSAgICAgIEJ5IGRlZmF1bHQsIGhhc2ggcmFuZG9taXphdGlvbiBpcyBkaXNhYmxlZCwgYW5kIG9ubHkKLSAgICAgIGVuYWJsZWQgaWYgUFlUSE9OSEFTSFNFRUQgaXMgc2V0IHRvIG5vbi1lbXB0eSBvciBpZgotICAgICAgIi1SIiBpcyBwcm92aWRlZCBhdCB0aGUgY29tbWFuZCBsaW5lOgotICAgICovCi0gICAgaWYgKCFQeV9IYXNoUmFuZG9taXphdGlvbkZsYWcpIHsKLSAgICAgICAgLyogRGlzYWJsZSB0aGUgcmFuZG9taXplZCBoYXNoOiAqLwotICAgICAgICBtZW1zZXQoc2VjcmV0LCAwLCBzZWNyZXRfc2l6ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICAvKgogICAgICAgSGFzaCByYW5kb21pemF0aW9uIGlzIGVuYWJsZWQuICBHZW5lcmF0ZSBhIHBlci1wcm9jZXNzIHNlY3JldCwKICAgICAgIHVzaW5nIFBZVEhPTkhBU0hTRUVEIGlmIHByb3ZpZGVkLgogICAgICovCmRpZmYgLS1naXQgYS9QeXRob24vc3ltdGFibGUuYyBiL1B5dGhvbi9zeW10YWJsZS5jCmluZGV4IDFlYzUxZjcuLmEwYjc4NmIgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9zeW10YWJsZS5jCisrKyBiL1B5dGhvbi9zeW10YWJsZS5jCkBAIC0xOSwxMCArMTksNiBAQAogCiAjZGVmaW5lIElNUE9SVF9TVEFSX1dBUk5JTkcgImltcG9ydCAqIG9ubHkgYWxsb3dlZCBhdCBtb2R1bGUgbGV2ZWwiCiAKLSNkZWZpbmUgUkVUVVJOX1ZBTF9JTl9HRU5FUkFUT1IgXAotICAgICIncmV0dXJuJyB3aXRoIGFyZ3VtZW50IGluc2lkZSBnZW5lcmF0b3IiCi0KLQogc3RhdGljIFB5U1RFbnRyeU9iamVjdCAqCiBzdGVfbmV3KHN0cnVjdCBzeW10YWJsZSAqc3QsIGlkZW50aWZpZXIgbmFtZSwgX1B5X2Jsb2NrX3R5IGJsb2NrLAogICAgICAgICB2b2lkICprZXksIGludCBsaW5lbm8sIGludCBjb2xfb2Zmc2V0KQpAQCAtMTg1LDYgKzE4MSw3IEBACiBzdGF0aWMgaW50IHN5bXRhYmxlX3Zpc2l0X2FyZ2Fubm90YXRpb25zKHN0cnVjdCBzeW10YWJsZSAqc3QsIGFzZGxfc2VxICphcmdzKTsKIHN0YXRpYyBpbnQgc3ltdGFibGVfaW1wbGljaXRfYXJnKHN0cnVjdCBzeW10YWJsZSAqc3QsIGludCBwb3MpOwogc3RhdGljIGludCBzeW10YWJsZV92aXNpdF9hbm5vdGF0aW9ucyhzdHJ1Y3Qgc3ltdGFibGUgKnN0LCBzdG10X3R5IHMpOworc3RhdGljIGludCBzeW10YWJsZV92aXNpdF93aXRoaXRlbShzdHJ1Y3Qgc3ltdGFibGUgKnN0LCB3aXRoaXRlbV90eSBpdGVtKTsKIAogCiBzdGF0aWMgaWRlbnRpZmllciB0b3AgPSBOVUxMLCBsYW1iZGEgPSBOVUxMLCBnZW5leHByID0gTlVMTCwKQEAgLTc1MCw3ICs3NDcsNyBAQAogICAgICAgICAgICAgZ290byBlcnJvcjsKICAgICB9CiAKLSAgICAvKiBSZWN1cnNpdmVseSBjYWxsIGFuYWx5emVfYmxvY2soKSBvbiBlYWNoIGNoaWxkIGJsb2NrLgorICAgIC8qIFJlY3Vyc2l2ZWx5IGNhbGwgYW5hbHl6ZV9jaGlsZF9ibG9jaygpIG9uIGVhY2ggY2hpbGQgYmxvY2suCiAKICAgICAgICBuZXdib3VuZCwgbmV3Z2xvYmFsIG5vdyBjb250YWluIHRoZSBuYW1lcyB2aXNpYmxlIGluCiAgICAgICAgbmVzdGVkIGJsb2Nrcy4gIFRoZSBmcmVlIHZhcmlhYmxlcyBpbiB0aGUgY2hpbGRyZW4gd2lsbApAQCAtODkzLDE4ICs4OTAsMTUgQEAKIHN0YXRpYyBpbnQKIHN5bXRhYmxlX2V4aXRfYmxvY2soc3RydWN0IHN5bXRhYmxlICpzdCwgdm9pZCAqYXN0KQogewotICAgIFB5X3NzaXplX3QgZW5kOworICAgIFB5X3NzaXplX3Qgc2l6ZTsKIAotICAgIFB5X0NMRUFSKHN0LT5zdF9jdXIpOwotICAgIGVuZCA9IFB5TGlzdF9HRVRfU0laRShzdC0+c3Rfc3RhY2spIC0gMTsKLSAgICBpZiAoZW5kID49IDApIHsKLSAgICAgICAgc3QtPnN0X2N1ciA9IChQeVNURW50cnlPYmplY3QgKilQeUxpc3RfR0VUX0lURU0oc3QtPnN0X3N0YWNrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQpOwotICAgICAgICBpZiAoc3QtPnN0X2N1ciA9PSBOVUxMKQorICAgIHN0LT5zdF9jdXIgPSBOVUxMOworICAgIHNpemUgPSBQeUxpc3RfR0VUX1NJWkUoc3QtPnN0X3N0YWNrKTsKKyAgICBpZiAoc2l6ZSkgeworICAgICAgICBpZiAoUHlMaXN0X1NldFNsaWNlKHN0LT5zdF9zdGFjaywgc2l6ZSAtIDEsIHNpemUsIE5VTEwpIDwgMCkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBQeV9JTkNSRUYoc3QtPnN0X2N1cik7Ci0gICAgICAgIGlmIChQeVNlcXVlbmNlX0RlbEl0ZW0oc3QtPnN0X3N0YWNrLCBlbmQpIDwgMCkKLSAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBpZiAoLS1zaXplKQorICAgICAgICAgICAgc3QtPnN0X2N1ciA9IChQeVNURW50cnlPYmplY3QgKilQeUxpc3RfR0VUX0lURU0oc3QtPnN0X3N0YWNrLCBzaXplIC0gMSk7CiAgICAgfQogICAgIHJldHVybiAxOwogfQpAQCAtOTEzLDIzICs5MDcsMjMgQEAKIHN5bXRhYmxlX2VudGVyX2Jsb2NrKHN0cnVjdCBzeW10YWJsZSAqc3QsIGlkZW50aWZpZXIgbmFtZSwgX1B5X2Jsb2NrX3R5IGJsb2NrLAogICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYXN0LCBpbnQgbGluZW5vLCBpbnQgY29sX29mZnNldCkKIHsKLSAgICBQeVNURW50cnlPYmplY3QgKnByZXYgPSBOVUxMOworICAgIFB5U1RFbnRyeU9iamVjdCAqcHJldiA9IE5VTEwsICpzdGU7CiAKLSAgICBpZiAoc3QtPnN0X2N1cikgewotICAgICAgICBwcmV2ID0gc3QtPnN0X2N1cjsKLSAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQoc3QtPnN0X3N0YWNrLCAoUHlPYmplY3QgKilzdC0+c3RfY3VyKSA8IDApIHsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0gICAgICAgIFB5X0RFQ1JFRihzdC0+c3RfY3VyKTsKLSAgICB9Ci0gICAgc3QtPnN0X2N1ciA9IHN0ZV9uZXcoc3QsIG5hbWUsIGJsb2NrLCBhc3QsIGxpbmVubywgY29sX29mZnNldCk7Ci0gICAgaWYgKHN0LT5zdF9jdXIgPT0gTlVMTCkKKyAgICBzdGUgPSBzdGVfbmV3KHN0LCBuYW1lLCBibG9jaywgYXN0LCBsaW5lbm8sIGNvbF9vZmZzZXQpOworICAgIGlmIChzdGUgPT0gTlVMTCkKICAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKFB5TGlzdF9BcHBlbmQoc3QtPnN0X3N0YWNrLCAoUHlPYmplY3QgKilzdGUpIDwgMCkgeworICAgICAgICBQeV9ERUNSRUYoc3RlKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIHByZXYgPSBzdC0+c3RfY3VyOworICAgIC8qIFRoZSBlbnRyeSBpcyBvd25lZCBieSB0aGUgc3RhY2suIEJvcnJvdyBpdCBmb3Igc3RfY3VyLiAqLworICAgIFB5X0RFQ1JFRihzdGUpOworICAgIHN0LT5zdF9jdXIgPSBzdGU7CiAgICAgaWYgKGJsb2NrID09IE1vZHVsZUJsb2NrKQogICAgICAgICBzdC0+c3RfZ2xvYmFsID0gc3QtPnN0X2N1ci0+c3RlX3N5bWJvbHM7CiAgICAgaWYgKHByZXYpIHsKLSAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQocHJldi0+c3RlX2NoaWxkcmVuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAoUHlPYmplY3QgKilzdC0+c3RfY3VyKSA8IDApIHsKKyAgICAgICAgaWYgKFB5TGlzdF9BcHBlbmQocHJldi0+c3RlX2NoaWxkcmVuLCAoUHlPYmplY3QgKilzdGUpIDwgMCkgewogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMDIzLDEyICsxMDE3LDYgQEAKICAgICBpZiAoIXN5bXRhYmxlX3Zpc2l0XyAjIyBUWVBFKChTVCksIChWKSkpIFwKICAgICAgICAgcmV0dXJuIDA7CiAKLSNkZWZpbmUgVklTSVRfSU5fQkxPQ0soU1QsIFRZUEUsIFYsIFMpIFwKLSAgICBpZiAoIXN5bXRhYmxlX3Zpc2l0XyAjIyBUWVBFKChTVCksIChWKSkpIHsgXAotICAgICAgICBzeW10YWJsZV9leGl0X2Jsb2NrKChTVCksIChTKSk7IFwKLSAgICAgICAgcmV0dXJuIDA7IFwKLSAgICB9Ci0KICNkZWZpbmUgVklTSVRfU0VRKFNULCBUWVBFLCBTRVEpIHsgXAogICAgIGludCBpOyBcCiAgICAgYXNkbF9zZXEgKnNlcSA9IChTRVEpOyAvKiBhdm9pZCB2YXJpYWJsZSBjYXB0dXJlICovIFwKQEAgLTEwMzksMTggKzEwMjcsNiBAQAogICAgIH0gXAogfQogCi0jZGVmaW5lIFZJU0lUX1NFUV9JTl9CTE9DSyhTVCwgVFlQRSwgU0VRLCBTKSB7IFwKLSAgICBpbnQgaTsgXAotICAgIGFzZGxfc2VxICpzZXEgPSAoU0VRKTsgLyogYXZvaWQgdmFyaWFibGUgY2FwdHVyZSAqLyBcCi0gICAgZm9yIChpID0gMDsgaSA8IGFzZGxfc2VxX0xFTihzZXEpOyBpKyspIHsgXAotICAgICAgICBUWVBFICMjIF90eSBlbHQgPSAoVFlQRSAjIyBfdHkpYXNkbF9zZXFfR0VUKHNlcSwgaSk7IFwKLSAgICAgICAgaWYgKCFzeW10YWJsZV92aXNpdF8gIyMgVFlQRSgoU1QpLCBlbHQpKSB7IFwKLSAgICAgICAgICAgIHN5bXRhYmxlX2V4aXRfYmxvY2soKFNUKSwgKFMpKTsgXAotICAgICAgICAgICAgcmV0dXJuIDA7IFwKLSAgICAgICAgfSBcCi0gICAgfSBcCi19Ci0KICNkZWZpbmUgVklTSVRfU0VRX1RBSUwoU1QsIFRZUEUsIFNFUSwgU1RBUlQpIHsgXAogICAgIGludCBpOyBcCiAgICAgYXNkbF9zZXEgKnNlcSA9IChTRVEpOyAvKiBhdm9pZCB2YXJpYWJsZSBjYXB0dXJlICovIFwKQEAgLTEwNjEsMTggKzEwMzcsNiBAQAogICAgIH0gXAogfQogCi0jZGVmaW5lIFZJU0lUX1NFUV9UQUlMX0lOX0JMT0NLKFNULCBUWVBFLCBTRVEsIFNUQVJULCBTKSB7IFwKLSAgICBpbnQgaTsgXAotICAgIGFzZGxfc2VxICpzZXEgPSAoU0VRKTsgLyogYXZvaWQgdmFyaWFibGUgY2FwdHVyZSAqLyBcCi0gICAgZm9yIChpID0gKFNUQVJUKTsgaSA8IGFzZGxfc2VxX0xFTihzZXEpOyBpKyspIHsgXAotICAgICAgICBUWVBFICMjIF90eSBlbHQgPSAoVFlQRSAjIyBfdHkpYXNkbF9zZXFfR0VUKHNlcSwgaSk7IFwKLSAgICAgICAgaWYgKCFzeW10YWJsZV92aXNpdF8gIyMgVFlQRSgoU1QpLCBlbHQpKSB7IFwKLSAgICAgICAgICAgIHN5bXRhYmxlX2V4aXRfYmxvY2soKFNUKSwgKFMpKTsgXAotICAgICAgICAgICAgcmV0dXJuIDA7IFwKLSAgICAgICAgfSBcCi0gICAgfSBcCi19Ci0KICNkZWZpbmUgVklTSVRfS1dPTkxZREVGQVVMVFMoU1QsIEtXX0RFRkFVTFRTKSB7IFwKICAgICBpbnQgaSA9IDA7IFwKICAgICBhc2RsX3NlcSAqc2VxID0gKEtXX0RFRkFVTFRTKTsgLyogYXZvaWQgdmFyaWFibGUgY2FwdHVyZSAqLyBcCkBAIC0xMTIyLDggKzEwODYsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQmxvY2ssICh2b2lkICopcywgcy0+bGluZW5vLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMtPmNvbF9vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIFZJU0lUX0lOX0JMT0NLKHN0LCBhcmd1bWVudHMsIHMtPnYuRnVuY3Rpb25EZWYuYXJncywgcyk7Ci0gICAgICAgIFZJU0lUX1NFUV9JTl9CTE9DSyhzdCwgc3RtdCwgcy0+di5GdW5jdGlvbkRlZi5ib2R5LCBzKTsKKyAgICAgICAgVklTSVQoc3QsIGFyZ3VtZW50cywgcy0+di5GdW5jdGlvbkRlZi5hcmdzKTsKKyAgICAgICAgVklTSVRfU0VRKHN0LCBzdG10LCBzLT52LkZ1bmN0aW9uRGVmLmJvZHkpOwogICAgICAgICBpZiAoIXN5bXRhYmxlX2V4aXRfYmxvY2soc3QsIHMpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGJyZWFrOwpAQCAtMTE1MSw3ICsxMTE1LDcgQEAKICAgICAgICAgfQogICAgICAgICB0bXAgPSBzdC0+c3RfcHJpdmF0ZTsKICAgICAgICAgc3QtPnN0X3ByaXZhdGUgPSBzLT52LkNsYXNzRGVmLm5hbWU7Ci0gICAgICAgIFZJU0lUX1NFUV9JTl9CTE9DSyhzdCwgc3RtdCwgcy0+di5DbGFzc0RlZi5ib2R5LCBzKTsKKyAgICAgICAgVklTSVRfU0VRKHN0LCBzdG10LCBzLT52LkNsYXNzRGVmLmJvZHkpOwogICAgICAgICBzdC0+c3RfcHJpdmF0ZSA9IHRtcDsKICAgICAgICAgaWYgKCFzeW10YWJsZV9leGl0X2Jsb2NrKHN0LCBzKSkKICAgICAgICAgICAgIHJldHVybiAwOwpAQCAtMTE2MSwxNCArMTEyNSw2IEBACiAgICAgICAgIGlmIChzLT52LlJldHVybi52YWx1ZSkgewogICAgICAgICAgICAgVklTSVQoc3QsIGV4cHIsIHMtPnYuUmV0dXJuLnZhbHVlKTsKICAgICAgICAgICAgIHN0LT5zdF9jdXItPnN0ZV9yZXR1cm5zX3ZhbHVlID0gMTsKLSAgICAgICAgICAgIGlmIChzdC0+c3RfY3VyLT5zdGVfZ2VuZXJhdG9yKSB7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5bnRheEVycm9yLAotICAgICAgICAgICAgICAgICAgICBSRVRVUk5fVkFMX0lOX0dFTkVSQVRPUik7Ci0gICAgICAgICAgICAgICAgUHlFcnJfU3ludGF4TG9jYXRpb25FeChzdC0+c3RfZmlsZW5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5saW5lbm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLT5jb2xfb2Zmc2V0KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIERlbGV0ZV9raW5kOgpAQCAtMTIwNSwxOSArMTE2MSwxNiBAQAogICAgIGNhc2UgUmFpc2Vfa2luZDoKICAgICAgICAgaWYgKHMtPnYuUmFpc2UuZXhjKSB7CiAgICAgICAgICAgICBWSVNJVChzdCwgZXhwciwgcy0+di5SYWlzZS5leGMpOwotICAgICAgICBpZiAocy0+di5SYWlzZS5jYXVzZSkgewotICAgICAgICBWSVNJVChzdCwgZXhwciwgcy0+di5SYWlzZS5jYXVzZSk7Ci0gICAgICAgIH0KKyAgICAgICAgICAgIGlmIChzLT52LlJhaXNlLmNhdXNlKSB7CisgICAgICAgICAgICAgICAgVklTSVQoc3QsIGV4cHIsIHMtPnYuUmFpc2UuY2F1c2UpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHJ5RXhjZXB0X2tpbmQ6Ci0gICAgICAgIFZJU0lUX1NFUShzdCwgc3RtdCwgcy0+di5UcnlFeGNlcHQuYm9keSk7Ci0gICAgICAgIFZJU0lUX1NFUShzdCwgc3RtdCwgcy0+di5UcnlFeGNlcHQub3JlbHNlKTsKLSAgICAgICAgVklTSVRfU0VRKHN0LCBleGNlcHRoYW5kbGVyLCBzLT52LlRyeUV4Y2VwdC5oYW5kbGVycyk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHJ5RmluYWxseV9raW5kOgotICAgICAgICBWSVNJVF9TRVEoc3QsIHN0bXQsIHMtPnYuVHJ5RmluYWxseS5ib2R5KTsKLSAgICAgICAgVklTSVRfU0VRKHN0LCBzdG10LCBzLT52LlRyeUZpbmFsbHkuZmluYWxib2R5KTsKKyAgICBjYXNlIFRyeV9raW5kOgorICAgICAgICBWSVNJVF9TRVEoc3QsIHN0bXQsIHMtPnYuVHJ5LmJvZHkpOworICAgICAgICBWSVNJVF9TRVEoc3QsIHN0bXQsIHMtPnYuVHJ5Lm9yZWxzZSk7CisgICAgICAgIFZJU0lUX1NFUShzdCwgZXhjZXB0aGFuZGxlciwgcy0+di5UcnkuaGFuZGxlcnMpOworICAgICAgICBWSVNJVF9TRVEoc3QsIHN0bXQsIHMtPnYuVHJ5LmZpbmFsYm9keSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXNzZXJ0X2tpbmQ6CiAgICAgICAgIFZJU0lUKHN0LCBleHByLCBzLT52LkFzc2VydC50ZXN0KTsKQEAgLTEzMDUsMTAgKzEyNTgsNyBAQAogICAgICAgICAvKiBub3RoaW5nIHRvIGRvIGhlcmUgKi8KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXaXRoX2tpbmQ6Ci0gICAgICAgIFZJU0lUKHN0LCBleHByLCBzLT52LldpdGguY29udGV4dF9leHByKTsKLSAgICAgICAgaWYgKHMtPnYuV2l0aC5vcHRpb25hbF92YXJzKSB7Ci0gICAgICAgICAgICBWSVNJVChzdCwgZXhwciwgcy0+di5XaXRoLm9wdGlvbmFsX3ZhcnMpOwotICAgICAgICB9CisgICAgICAgIFZJU0lUX1NFUShzdCwgd2l0aGl0ZW0sIHMtPnYuV2l0aC5pdGVtcyk7CiAgICAgICAgIFZJU0lUX1NFUShzdCwgc3RtdCwgcy0+di5XaXRoLmJvZHkpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC0xMzQxLDggKzEyOTEsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQmxvY2ssICh2b2lkICopZSwgZS0+bGluZW5vLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUtPmNvbF9vZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIFZJU0lUX0lOX0JMT0NLKHN0LCBhcmd1bWVudHMsIGUtPnYuTGFtYmRhLmFyZ3MsICh2b2lkKillKTsKLSAgICAgICAgVklTSVRfSU5fQkxPQ0soc3QsIGV4cHIsIGUtPnYuTGFtYmRhLmJvZHksICh2b2lkKillKTsKKyAgICAgICAgVklTSVQoc3QsIGFyZ3VtZW50cywgZS0+di5MYW1iZGEuYXJncyk7CisgICAgICAgIFZJU0lUKHN0LCBleHByLCBlLT52LkxhbWJkYS5ib2R5KTsKICAgICAgICAgaWYgKCFzeW10YWJsZV9leGl0X2Jsb2NrKHN0LCAodm9pZCAqKWUpKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGJyZWFrOwpAQCAtMTM3NiwxNyArMTMyNiwxNCBAQAogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgWWllbGRfa2luZDoKLSAgICAgICAgaWYgKGUtPnYuWWllbGQudmFsdWUpCi0gICAgICAgICAgICBWSVNJVChzdCwgZXhwciwgZS0+di5ZaWVsZC52YWx1ZSk7CisgICAgY2FzZSBZaWVsZEZyb21fa2luZDogeworICAgICAgICBleHByX3R5IHZhbHVlOworICAgICAgICB2YWx1ZSA9IChlLT5raW5kID09IFlpZWxkRnJvbV9raW5kKSA/IGUtPnYuWWllbGRGcm9tLnZhbHVlIDogZS0+di5ZaWVsZC52YWx1ZTsKKyAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgVklTSVQoc3QsIGV4cHIsIHZhbHVlKTsKICAgICAgICAgc3QtPnN0X2N1ci0+c3RlX2dlbmVyYXRvciA9IDE7Ci0gICAgICAgIGlmIChzdC0+c3RfY3VyLT5zdGVfcmV0dXJuc192YWx1ZSkgewotICAgICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1N5bnRheEVycm9yLAotICAgICAgICAgICAgICAgIFJFVFVSTl9WQUxfSU5fR0VORVJBVE9SKTsKLSAgICAgICAgICAgIFB5RXJyX1N5bnRheExvY2F0aW9uRXgoc3QtPnN0X2ZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLT5saW5lbm8sIGUtPmNvbF9vZmZzZXQpOwotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KICAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgQ29tcGFyZV9raW5kOgogICAgICAgICBWSVNJVChzdCwgZXhwciwgZS0+di5Db21wYXJlLmxlZnQpOwogICAgICAgICBWSVNJVF9TRVEoc3QsIGV4cHIsIGUtPnYuQ29tcGFyZS5jb21wYXJhdG9ycyk7CkBAIC0xNTQzLDYgKzE0OTAsMTYgQEAKICAgICByZXR1cm4gMTsKIH0KIAorc3RhdGljIGludAorc3ltdGFibGVfdmlzaXRfd2l0aGl0ZW0oc3RydWN0IHN5bXRhYmxlICpzdCwgd2l0aGl0ZW1fdHkgaXRlbSkKK3sKKyAgICBWSVNJVChzdCwgZXhwciwgaXRlbS0+Y29udGV4dF9leHByKTsKKyAgICBpZiAoaXRlbS0+b3B0aW9uYWxfdmFycykgeworICAgICAgICBWSVNJVChzdCwgZXhwciwgaXRlbS0+b3B0aW9uYWxfdmFycyk7CisgICAgfQorICAgIHJldHVybiAxOworfQorCiAKIHN0YXRpYyBpbnQKIHN5bXRhYmxlX3Zpc2l0X2FsaWFzKHN0cnVjdCBzeW10YWJsZSAqc3QsIGFsaWFzX3R5IGEpCkBAIC0xNTUzLDEwICsxNTEwLDEwIEBACiAgICAgKi8KICAgICBQeU9iamVjdCAqc3RvcmVfbmFtZTsKICAgICBQeU9iamVjdCAqbmFtZSA9IChhLT5hc25hbWUgPT0gTlVMTCkgPyBhLT5uYW1lIDogYS0+YXNuYW1lOwotICAgIGNvbnN0IFB5X1VOSUNPREUgKmJhc2UgPSBQeVVuaWNvZGVfQVNfVU5JQ09ERShuYW1lKTsKLSAgICBQeV9VTklDT0RFICpkb3QgPSBQeV9VTklDT0RFX3N0cmNocihiYXNlLCAnLicpOwotICAgIGlmIChkb3QpIHsKLSAgICAgICAgc3RvcmVfbmFtZSA9IFB5VW5pY29kZV9Gcm9tVW5pY29kZShiYXNlLCBkb3QgLSBiYXNlKTsKKyAgICBQeV9zc2l6ZV90IGRvdCA9IFB5VW5pY29kZV9GaW5kQ2hhcihuYW1lLCAnLicsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0dFVF9MRU5HVEgobmFtZSksIDEpOworICAgIGlmIChkb3QgIT0gLTEpIHsKKyAgICAgICAgc3RvcmVfbmFtZSA9IFB5VW5pY29kZV9TdWJzdHJpbmcobmFtZSwgMCwgZG90KTsKICAgICAgICAgaWYgKCFzdG9yZV9uYW1lKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpAQCAtMTY1MywxMyArMTYxMCwxMiBAQAogICAgICAgICBzeW10YWJsZV9leGl0X2Jsb2NrKHN0LCAodm9pZCAqKWUpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9Ci0gICAgVklTSVRfSU5fQkxPQ0soc3QsIGV4cHIsIG91dGVybW9zdC0+dGFyZ2V0LCAodm9pZCopZSk7Ci0gICAgVklTSVRfU0VRX0lOX0JMT0NLKHN0LCBleHByLCBvdXRlcm1vc3QtPmlmcywgKHZvaWQqKWUpOwotICAgIFZJU0lUX1NFUV9UQUlMX0lOX0JMT0NLKHN0LCBjb21wcmVoZW5zaW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRvcnMsIDEsICh2b2lkKillKTsKKyAgICBWSVNJVChzdCwgZXhwciwgb3V0ZXJtb3N0LT50YXJnZXQpOworICAgIFZJU0lUX1NFUShzdCwgZXhwciwgb3V0ZXJtb3N0LT5pZnMpOworICAgIFZJU0lUX1NFUV9UQUlMKHN0LCBjb21wcmVoZW5zaW9uLCBnZW5lcmF0b3JzLCAxKTsKICAgICBpZiAodmFsdWUpCi0gICAgICAgIFZJU0lUX0lOX0JMT0NLKHN0LCBleHByLCB2YWx1ZSwgKHZvaWQqKWUpOwotICAgIFZJU0lUX0lOX0JMT0NLKHN0LCBleHByLCBlbHQsICh2b2lkKillKTsKKyAgICAgICAgVklTSVQoc3QsIGV4cHIsIHZhbHVlKTsKKyAgICBWSVNJVChzdCwgZXhwciwgZWx0KTsKICAgICByZXR1cm4gc3ltdGFibGVfZXhpdF9ibG9jayhzdCwgKHZvaWQgKillKTsKIH0KIApkaWZmIC0tZ2l0IGEvUHl0aG9uL3N5c21vZHVsZS5jIGIvUHl0aG9uL3N5c21vZHVsZS5jCmluZGV4IGM0ZjI3ZDAuLmNlNWU4MjUgMTAwNjQ0Ci0tLSBhL1B5dGhvbi9zeXNtb2R1bGUuYworKysgYi9QeXRob24vc3lzbW9kdWxlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlICJQeXRob24uaCIKICNpbmNsdWRlICJjb2RlLmgiCiAjaW5jbHVkZSAiZnJhbWVvYmplY3QuaCIKKyNpbmNsdWRlICJweXRocmVhZC5oIgogCiAjaW5jbHVkZSAib3NkZWZzLmgiCiAKQEAgLTc4LDggKzc5LDEwIEBACiAgICAgUHlPYmplY3QgKmVuY29kZWQsICplc2NhcGVkX3N0ciwgKnJlcHJfc3RyLCAqYnVmZmVyLCAqcmVzdWx0OwogICAgIGNoYXIgKnN0ZG91dF9lbmNvZGluZ19zdHI7CiAgICAgaW50IHJldDsKKyAgICBfUHlfSURFTlRJRklFUihlbmNvZGluZyk7CisgICAgX1B5X0lERU5USUZJRVIoYnVmZmVyKTsKIAotICAgIHN0ZG91dF9lbmNvZGluZyA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcob3V0ZiwgImVuY29kaW5nIik7CisgICAgc3Rkb3V0X2VuY29kaW5nID0gX1B5T2JqZWN0X0dldEF0dHJJZChvdXRmLCAmUHlJZF9lbmNvZGluZyk7CiAgICAgaWYgKHN0ZG91dF9lbmNvZGluZyA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogICAgIHN0ZG91dF9lbmNvZGluZ19zdHIgPSBfUHlVbmljb2RlX0FzU3RyaW5nKHN0ZG91dF9lbmNvZGluZyk7CkBAIC05Niw5ICs5OSwxMCBAQAogICAgIGlmIChlbmNvZGVkID09IE5VTEwpCiAgICAgICAgIGdvdG8gZXJyb3I7CiAKLSAgICBidWZmZXIgPSBQeU9iamVjdF9HZXRBdHRyU3RyaW5nKG91dGYsICJidWZmZXIiKTsKKyAgICBidWZmZXIgPSBfUHlPYmplY3RfR2V0QXR0cklkKG91dGYsICZQeUlkX2J1ZmZlcik7CiAgICAgaWYgKGJ1ZmZlcikgewotICAgICAgICByZXN1bHQgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGJ1ZmZlciwgIndyaXRlIiwgIihPKSIsIGVuY29kZWQpOworICAgICAgICBfUHlfSURFTlRJRklFUih3cml0ZSk7CisgICAgICAgIHJlc3VsdCA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoYnVmZmVyLCAmUHlJZF93cml0ZSwgIihPKSIsIGVuY29kZWQpOwogICAgICAgICBQeV9ERUNSRUYoYnVmZmVyKTsKICAgICAgICAgUHlfREVDUkVGKGVuY29kZWQpOwogICAgICAgICBpZiAocmVzdWx0ID09IE5VTEwpCkBAIC0xMzUsNiArMTM5LDcgQEAKICAgICBQeU9iamVjdCAqbW9kdWxlcyA9IGludGVycC0+bW9kdWxlczsKICAgICBQeU9iamVjdCAqYnVpbHRpbnMgPSBQeURpY3RfR2V0SXRlbVN0cmluZyhtb2R1bGVzLCAiYnVpbHRpbnMiKTsKICAgICBpbnQgZXJyOworICAgIF9QeV9JREVOVElGSUVSKF8pOwogCiAgICAgaWYgKGJ1aWx0aW5zID09IE5VTEwpIHsKICAgICAgICAgUHlFcnJfU2V0U3RyaW5nKFB5RXhjX1J1bnRpbWVFcnJvciwgImxvc3QgYnVpbHRpbnMgbW9kdWxlIik7CkBAIC0xNDgsNyArMTUzLDcgQEAKICAgICAgICAgUHlfSU5DUkVGKFB5X05vbmUpOwogICAgICAgICByZXR1cm4gUHlfTm9uZTsKICAgICB9Ci0gICAgaWYgKFB5T2JqZWN0X1NldEF0dHJTdHJpbmcoYnVpbHRpbnMsICJfIiwgUHlfTm9uZSkgIT0gMCkKKyAgICBpZiAoX1B5T2JqZWN0X1NldEF0dHJJZChidWlsdGlucywgJlB5SWRfXywgUHlfTm9uZSkgIT0gMCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgb3V0ZiA9IFB5U3lzX0dldE9iamVjdCgic3Rkb3V0Iik7CiAgICAgaWYgKG91dGYgPT0gTlVMTCB8fCBvdXRmID09IFB5X05vbmUpIHsKQEAgLTE3MCw3ICsxNzUsNyBAQAogICAgIH0KICAgICBpZiAoUHlGaWxlX1dyaXRlU3RyaW5nKCJcbiIsIG91dGYpICE9IDApCiAgICAgICAgIHJldHVybiBOVUxMOwotICAgIGlmIChQeU9iamVjdF9TZXRBdHRyU3RyaW5nKGJ1aWx0aW5zLCAiXyIsIG8pICE9IDApCisgICAgaWYgKF9QeU9iamVjdF9TZXRBdHRySWQoYnVpbHRpbnMsICZQeUlkX18sIG8pICE9IDApCiAgICAgICAgIHJldHVybiBOVUxMOwogICAgIFB5X0lOQ1JFRihQeV9Ob25lKTsKICAgICByZXR1cm4gUHlfTm9uZTsKQEAgLTc3MCw5ICs3NzUsNyBAQAogYSBsYXp5IHJlc29sdmluZyBvZiBzeW1ib2xzIHdoZW4gaW1wb3J0aW5nIGEgbW9kdWxlLCBpZiBjYWxsZWQgYXNcblwKIHN5cy5zZXRkbG9wZW5mbGFncygwKS4gIFRvIHNoYXJlIHN5bWJvbHMgYWNyb3NzIGV4dGVuc2lvbiBtb2R1bGVzLCBjYWxsIGFzXG5cCiBzeXMuc2V0ZGxvcGVuZmxhZ3MoY3R5cGVzLlJUTERfR0xPQkFMKS4gIFN5bWJvbGljIG5hbWVzIGZvciB0aGUgZmxhZyBtb2R1bGVzXG5cCi1jYW4gYmUgZWl0aGVyIGZvdW5kIGluIHRoZSBjdHlwZXMgbW9kdWxlLCBvciBpbiB0aGUgRExGQ04gbW9kdWxlLiBJZiBETEZDTlxuXAotaXMgbm90IGF2YWlsYWJsZSwgaXQgY2FuIGJlIGdlbmVyYXRlZCBmcm9tIC91c3IvaW5jbHVkZS9kbGZjbi5oIHVzaW5nIHRoZVxuXAotaDJweSBzY3JpcHQuIik7CitjYW4gYmUgZm91bmQgaW4gdGhlIG9zIG1vZHVsZSAoUlRMRF94eHggY29uc3RhbnRzLCBlLmcuIG9zLlJUTERfTEFaWSkuIik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCiBzeXNfZ2V0ZGxvcGVuZmxhZ3MoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzKQpAQCAtODExLDEwICs4MTQsMTEgQEAKIHN5c19nZXRzaXplb2YoUHlPYmplY3QgKnNlbGYsIFB5T2JqZWN0ICphcmdzLCBQeU9iamVjdCAqa3dkcykKIHsKICAgICBQeU9iamVjdCAqcmVzID0gTlVMTDsKLSAgICBzdGF0aWMgUHlPYmplY3QgKnN0cl9fc2l6ZW9mX18gPSBOVUxMLCAqZ2NfaGVhZF9zaXplID0gTlVMTDsKKyAgICBzdGF0aWMgUHlPYmplY3QgKmdjX2hlYWRfc2l6ZSA9IE5VTEw7CiAgICAgc3RhdGljIGNoYXIgKmt3bGlzdFtdID0geyJvYmplY3QiLCAiZGVmYXVsdCIsIDB9OwogICAgIFB5T2JqZWN0ICpvLCAqZGZsdCA9IE5VTEw7CiAgICAgUHlPYmplY3QgKm1ldGhvZDsKKyAgICBfUHlfSURFTlRJRklFUihfX3NpemVvZl9fKTsKIAogICAgIGlmICghUHlBcmdfUGFyc2VUdXBsZUFuZEtleXdvcmRzKGFyZ3MsIGt3ZHMsICJPfE86Z2V0c2l6ZW9mIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2xpc3QsICZvLCAmZGZsdCkpCkBAIC04MzEsOCArODM1LDcgQEAKICAgICBpZiAoUHlUeXBlX1JlYWR5KFB5X1RZUEUobykpIDwgMCkKICAgICAgICAgcmV0dXJuIE5VTEw7CiAKLSAgICBtZXRob2QgPSBfUHlPYmplY3RfTG9va3VwU3BlY2lhbChvLCAiX19zaXplb2ZfXyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN0cl9fc2l6ZW9mX18pOworICAgIG1ldGhvZCA9IF9QeU9iamVjdF9Mb29rdXBTcGVjaWFsKG8sICZQeUlkX19fc2l6ZW9mX18pOwogICAgIGlmIChtZXRob2QgPT0gTlVMTCkgewogICAgICAgICBpZiAoIVB5RXJyX09jY3VycmVkKCkpCiAgICAgICAgICAgICBQeUVycl9Gb3JtYXQoUHlFeGNfVHlwZUVycm9yLApAQCAtOTk0LDYgKzk5NywyNyBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAorc3RhdGljIFB5T2JqZWN0ICoKK3N5c19kZWJ1Z21hbGxvY3N0YXRzKFB5T2JqZWN0ICpzZWxmLCBQeU9iamVjdCAqYXJncykKK3sKKyNpZmRlZiBXSVRIX1BZTUFMTE9DCisgICAgX1B5T2JqZWN0X0RlYnVnTWFsbG9jU3RhdHMoc3RkZXJyKTsKKyAgICBmcHV0YygnXG4nLCBzdGRlcnIpOworI2VuZGlmCisgICAgX1B5T2JqZWN0X0RlYnVnVHlwZVN0YXRzKHN0ZGVycik7CisKKyAgICBQeV9SRVRVUk5fTk9ORTsKK30KK1B5RG9jX1NUUlZBUihkZWJ1Z21hbGxvY3N0YXRzX2RvYywKKyJfZGVidWdtYWxsb2NzdGF0cygpXG5cCitcblwKK1ByaW50IHN1bW1hcnkgaW5mbyB0byBzdGRlcnIgYWJvdXQgdGhlIHN0YXRlIG9mXG5cCitweW1hbGxvYydzIHN0cnVjdHVyZXMuXG5cCitcblwKK0luIFB5X0RFQlVHIG1vZGUsIGFsc28gcGVyZm9ybSBzb21lIGV4cGVuc2l2ZSBpbnRlcm5hbCBjb25zaXN0ZW5jeVxuXAorY2hlY2tzLlxuXAorIik7CisKICNpZmRlZiBQeV9UUkFDRV9SRUZTCiAvKiBEZWZpbmVkIGluIG9iamVjdHMuYyBiZWNhdXNlIGl0IHVzZXMgc3RhdGljIGdsb2JhbHMgaWYgdGhhdCBmaWxlICovCiBleHRlcm4gUHlPYmplY3QgKl9QeV9HZXRPYmplY3RzKFB5T2JqZWN0ICosIFB5T2JqZWN0ICopOwpAQCAtMTA5MCw2ICsxMTE0LDggQEAKICAgICB7InNldHRyYWNlIiwgICAgICAgIHN5c19zZXR0cmFjZSwgTUVUSF9PLCBzZXR0cmFjZV9kb2N9LAogICAgIHsiZ2V0dHJhY2UiLCAgICAgICAgc3lzX2dldHRyYWNlLCBNRVRIX05PQVJHUywgZ2V0dHJhY2VfZG9jfSwKICAgICB7ImNhbGxfdHJhY2luZyIsIHN5c19jYWxsX3RyYWNpbmcsIE1FVEhfVkFSQVJHUywgY2FsbF90cmFjaW5nX2RvY30sCisgICAgeyJfZGVidWdtYWxsb2NzdGF0cyIsIHN5c19kZWJ1Z21hbGxvY3N0YXRzLCBNRVRIX1ZBUkFSR1MsCisgICAgIGRlYnVnbWFsbG9jc3RhdHNfZG9jfSwKICAgICB7TlVMTCwgICAgICAgICAgICAgIE5VTEx9ICAgICAgICAgICAvKiBzZW50aW5lbCAqLwogfTsKIApAQCAtMTE3Nyw3ICsxMjAzLDYgQEAKICAgICBQeU9iamVjdCAqb3B0czsKICAgICBQeU9iamVjdCAqbmFtZSA9IE5VTEwsICp2YWx1ZSA9IE5VTEw7CiAgICAgY29uc3Qgd2NoYXJfdCAqbmFtZV9lbmQ7Ci0gICAgaW50IHI7CiAKICAgICBvcHRzID0gZ2V0X3hvcHRpb25zKCk7CiAgICAgaWYgKG9wdHMgPT0gTlVMTCkKQEAgLTExOTUsNyArMTIyMCw3IEBACiAgICAgfQogICAgIGlmIChuYW1lID09IE5VTEwgfHwgdmFsdWUgPT0gTlVMTCkKICAgICAgICAgZ290byBlcnJvcjsKLSAgICByID0gUHlEaWN0X1NldEl0ZW0ob3B0cywgbmFtZSwgdmFsdWUpOworICAgIFB5RGljdF9TZXRJdGVtKG9wdHMsIG5hbWUsIHZhbHVlKTsKICAgICBQeV9ERUNSRUYobmFtZSk7CiAgICAgUHlfREVDUkVGKHZhbHVlKTsKICAgICByZXR1cm47CkBAIC0xMjUyLDIxICsxMjc3LDIyIEBACiAiXG5cCiBTdGF0aWMgb2JqZWN0czpcblwKIFxuXAotZmxvYXRfaW5mbyAtLSBhIGRpY3Qgd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmxvYXQgaW1wbGVtZW50YXRpb24uXG5cCitidWlsdGluX21vZHVsZV9uYW1lcyAtLSB0dXBsZSBvZiBtb2R1bGUgbmFtZXMgYnVpbHQgaW50byB0aGlzIGludGVycHJldGVyXG5cCitjb3B5cmlnaHQgLS0gY29weXJpZ2h0IG5vdGljZSBwZXJ0YWluaW5nIHRvIHRoaXMgaW50ZXJwcmV0ZXJcblwKK2V4ZWNfcHJlZml4IC0tIHByZWZpeCB1c2VkIHRvIGZpbmQgdGhlIG1hY2hpbmUtc3BlY2lmaWMgUHl0aG9uIGxpYnJhcnlcblwKK2V4ZWN1dGFibGUgLS0gYWJzb2x1dGUgcGF0aCBvZiB0aGUgZXhlY3V0YWJsZSBiaW5hcnkgb2YgdGhlIFB5dGhvbiBpbnRlcnByZXRlclxuXAorZmxvYXRfaW5mbyAtLSBhIHN0cnVjdCBzZXF1ZW5jZSB3aXRoIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmbG9hdCBpbXBsZW1lbnRhdGlvbi5cblwKK2Zsb2F0X3JlcHJfc3R5bGUgLS0gc3RyaW5nIGluZGljYXRpbmcgdGhlIHN0eWxlIG9mIHJlcHIoKSBvdXRwdXQgZm9yIGZsb2F0c1xuXAoraGV4dmVyc2lvbiAtLSB2ZXJzaW9uIGluZm9ybWF0aW9uIGVuY29kZWQgYXMgYSBzaW5nbGUgaW50ZWdlclxuXAoraW1wbGVtZW50YXRpb24gLS0gUHl0aG9uIGltcGxlbWVudGF0aW9uIGluZm9ybWF0aW9uLlxuXAogaW50X2luZm8gLS0gYSBzdHJ1Y3Qgc2VxdWVuY2Ugd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgaW50IGltcGxlbWVudGF0aW9uLlxuXAogbWF4c2l6ZSAtLSB0aGUgbGFyZ2VzdCBzdXBwb3J0ZWQgbGVuZ3RoIG9mIGNvbnRhaW5lcnMuXG5cCi1tYXh1bmljb2RlIC0tIHRoZSBsYXJnZXN0IHN1cHBvcnRlZCBjaGFyYWN0ZXJcblwKLWJ1aWx0aW5fbW9kdWxlX25hbWVzIC0tIHR1cGxlIG9mIG1vZHVsZSBuYW1lcyBidWlsdCBpbnRvIHRoaXMgaW50ZXJwcmV0ZXJcblwKLXN1YnZlcnNpb24gLS0gc3VidmVyc2lvbiBpbmZvcm1hdGlvbiBvZiB0aGUgYnVpbGQgYXMgdHVwbGVcblwKK21heHVuaWNvZGUgLS0gdGhlIHZhbHVlIG9mIHRoZSBsYXJnZXN0IFVuaWNvZGUgY29kZXBvaW50XG5cCitwbGF0Zm9ybSAtLSBwbGF0Zm9ybSBpZGVudGlmaWVyXG5cCitwcmVmaXggLS0gcHJlZml4IHVzZWQgdG8gZmluZCB0aGUgUHl0aG9uIGxpYnJhcnlcblwKK3RocmVhZF9pbmZvIC0tIGEgc3RydWN0IHNlcXVlbmNlIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRocmVhZCBpbXBsZW1lbnRhdGlvbi5cblwKIHZlcnNpb24gLS0gdGhlIHZlcnNpb24gb2YgdGhpcyBpbnRlcnByZXRlciBhcyBhIHN0cmluZ1xuXAogdmVyc2lvbl9pbmZvIC0tIHZlcnNpb24gaW5mb3JtYXRpb24gYXMgYSBuYW1lZCB0dXBsZVxuXAotaGV4dmVyc2lvbiAtLSB2ZXJzaW9uIGluZm9ybWF0aW9uIGVuY29kZWQgYXMgYSBzaW5nbGUgaW50ZWdlclxuXAotY29weXJpZ2h0IC0tIGNvcHlyaWdodCBub3RpY2UgcGVydGFpbmluZyB0byB0aGlzIGludGVycHJldGVyXG5cCi1wbGF0Zm9ybSAtLSBwbGF0Zm9ybSBpZGVudGlmaWVyXG5cCi1leGVjdXRhYmxlIC0tIGFic29sdXRlIHBhdGggb2YgdGhlIGV4ZWN1dGFibGUgYmluYXJ5IG9mIHRoZSBQeXRob24gaW50ZXJwcmV0ZXJcblwKLXByZWZpeCAtLSBwcmVmaXggdXNlZCB0byBmaW5kIHRoZSBQeXRob24gbGlicmFyeVxuXAotZXhlY19wcmVmaXggLS0gcHJlZml4IHVzZWQgdG8gZmluZCB0aGUgbWFjaGluZS1zcGVjaWZpYyBQeXRob24gbGlicmFyeVxuXAotZmxvYXRfcmVwcl9zdHlsZSAtLSBzdHJpbmcgaW5kaWNhdGluZyB0aGUgc3R5bGUgb2YgcmVwcigpIG91dHB1dCBmb3IgZmxvYXRzXG5cCiAiCiApCiAjaWZkZWYgTVNfV0lORE9XUwpAQCAtMTMwNSw0MyArMTMzMSw2IEBACiApCiAvKiBlbmQgb2Ygc3lzX2RvYyAqLyA7CiAKLS8qIFN1YnZlcnNpb24gYnJhbmNoIGFuZCByZXZpc2lvbiBtYW5hZ2VtZW50ICovCi1zdGF0aWMgaW50IHN2bl9pbml0aWFsaXplZDsKLXN0YXRpYyBjaGFyIHBhdGNobGV2ZWxfcmV2aXNpb25bNTBdOyAvKiBKdXN0IHRoZSBudW1iZXIgKi8KLXN0YXRpYyBjaGFyIGJyYW5jaFs1MF07Ci1zdGF0aWMgY2hhciBzaG9ydGJyYW5jaFs1MF07Ci1zdGF0aWMgY29uc3QgY2hhciAqc3ZuX3JldmlzaW9uOwotCi1zdGF0aWMgdm9pZAotc3ZudmVyc2lvbl9pbml0KHZvaWQpCi17Ci0gICAgaWYgKHN2bl9pbml0aWFsaXplZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc3ZuX2luaXRpYWxpemVkID0gMTsKLSAgICAqcGF0Y2hsZXZlbF9yZXZpc2lvbiA9ICdcMCc7Ci0gICAgc3RyY3B5KGJyYW5jaCwgIiIpOwotICAgIHN0cmNweShzaG9ydGJyYW5jaCwgInVua25vd24iKTsKLSAgICBzdm5fcmV2aXNpb24gPSAiIjsKLX0KLQotLyogUmV0dXJuIHN2bnZlcnNpb24gb3V0cHV0IGlmIGF2YWlsYWJsZS4KLSAgIEVsc2UgcmV0dXJuIFJldmlzaW9uIG9mIHBhdGNobGV2ZWwuaCBpZiBvbiBicmFuY2guCi0gICBFbHNlIHJldHVybiBlbXB0eSBzdHJpbmcgKi8KLWNvbnN0IGNoYXIqCi1QeV9TdWJ2ZXJzaW9uUmV2aXNpb24oKQotewotICAgIHN2bnZlcnNpb25faW5pdCgpOwotICAgIHJldHVybiBzdm5fcmV2aXNpb247Ci19Ci0KLWNvbnN0IGNoYXIqCi1QeV9TdWJ2ZXJzaW9uU2hvcnRCcmFuY2goKQotewotICAgIHN2bnZlcnNpb25faW5pdCgpOwotICAgIHJldHVybiBzaG9ydGJyYW5jaDsKLX0KLQogCiBQeURvY19TVFJWQVIoZmxhZ3NfX2RvY19fLAogInN5cy5mbGFnc1xuXApAQCAtMTM1Miw3ICsxMzQxLDYgQEAKIAogc3RhdGljIFB5U3RydWN0U2VxdWVuY2VfRmllbGQgZmxhZ3NfZmllbGRzW10gPSB7CiAgICAgeyJkZWJ1ZyIsICAgICAgICAgICAgICAgICAgICItZCJ9LAotICAgIHsiZGl2aXNpb25fd2FybmluZyIsICAgICAgICAiLVEifSwKICAgICB7Imluc3BlY3QiLCAgICAgICAgICAgICAgICAgIi1pIn0sCiAgICAgeyJpbnRlcmFjdGl2ZSIsICAgICAgICAgICAgICItaSJ9LAogICAgIHsib3B0aW1pemUiLCAgICAgICAgICAgICAgICAiLU8gb3IgLU9PIn0sCkBAIC0xMzc3LDkgKzEzNjUsOSBAQAogICAgIGZsYWdzX19kb2NfXywgICAgICAgLyogZG9jICovCiAgICAgZmxhZ3NfZmllbGRzLCAgICAgICAvKiBmaWVsZHMgKi8KICNpZmRlZiBSSVNDT1MKLSAgICAxNAotI2Vsc2UKICAgICAxMworI2Vsc2UKKyAgICAxMgogI2VuZGlmCiB9OwogCkBAIC0xMzk3LDcgKzEzODUsNiBAQAogICAgIFB5U3RydWN0U2VxdWVuY2VfU0VUX0lURU0oc2VxLCBwb3MrKywgUHlMb25nX0Zyb21Mb25nKGZsYWcpKQogCiAgICAgU2V0RmxhZyhQeV9EZWJ1Z0ZsYWcpOwotICAgIFNldEZsYWcoUHlfRGl2aXNpb25XYXJuaW5nRmxhZyk7CiAgICAgU2V0RmxhZyhQeV9JbnNwZWN0RmxhZyk7CiAgICAgU2V0RmxhZyhQeV9JbnRlcmFjdGl2ZUZsYWcpOwogICAgIFNldEZsYWcoUHlfT3B0aW1pemVGbGFnKTsKQEAgLTE0OTEsNiArMTQ3OCw2OSBAQAogICAgIHJldHVybiB2ZXJzaW9uX2luZm87CiB9CiAKK3N0YXRpYyBQeU9iamVjdCAqCittYWtlX2ltcGxfaW5mbyhQeU9iamVjdCAqdmVyc2lvbl9pbmZvKQoreworICAgIGludCByZXM7CisgICAgUHlPYmplY3QgKmltcGxfaW5mbywgKnZhbHVlLCAqbnM7CisKKyAgICBpbXBsX2luZm8gPSBQeURpY3RfTmV3KCk7CisgICAgaWYgKGltcGxfaW5mbyA9PSBOVUxMKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAgIC8qIHBvcHVsYXRlIHRoZSBkaWN0ICovCisKKyNkZWZpbmUgTkFNRSAiY3B5dGhvbiIKKyNkZWZpbmUgUVVPVEUoYXJnKSAjYXJnCisjZGVmaW5lIFNUUklGWShuYW1lKSBRVU9URShuYW1lKQorI2RlZmluZSBNQUpPUiBTVFJJRlkoUFlfTUFKT1JfVkVSU0lPTikKKyNkZWZpbmUgTUlOT1IgU1RSSUZZKFBZX01JTk9SX1ZFUlNJT04pCisjZGVmaW5lIFRBRyBOQU1FICItIiBNQUpPUiBNSU5PUgorICAgIHZhbHVlID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoTkFNRSk7CisgICAgaWYgKHZhbHVlID09IE5VTEwpCisgICAgICAgIGdvdG8gZXJyb3I7CisgICAgcmVzID0gUHlEaWN0X1NldEl0ZW1TdHJpbmcoaW1wbF9pbmZvLCAibmFtZSIsIHZhbHVlKTsKKyAgICBQeV9ERUNSRUYodmFsdWUpOworICAgIGlmIChyZXMgPCAwKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgdmFsdWUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhUQUcpOworICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworICAgIHJlcyA9IFB5RGljdF9TZXRJdGVtU3RyaW5nKGltcGxfaW5mbywgImNhY2hlX3RhZyIsIHZhbHVlKTsKKyAgICBQeV9ERUNSRUYodmFsdWUpOworICAgIGlmIChyZXMgPCAwKQorICAgICAgICBnb3RvIGVycm9yOworI3VuZGVmIE5BTUUKKyN1bmRlZiBRVU9URQorI3VuZGVmIFNUUklGWQorI3VuZGVmIE1BSk9SCisjdW5kZWYgTUlOT1IKKyN1bmRlZiBUQUcKKworICAgIHJlcyA9IFB5RGljdF9TZXRJdGVtU3RyaW5nKGltcGxfaW5mbywgInZlcnNpb24iLCB2ZXJzaW9uX2luZm8pOworICAgIGlmIChyZXMgPCAwKQorICAgICAgICBnb3RvIGVycm9yOworCisgICAgdmFsdWUgPSBQeUxvbmdfRnJvbUxvbmcoUFlfVkVSU0lPTl9IRVgpOworICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorICAgICAgICBnb3RvIGVycm9yOworICAgIHJlcyA9IFB5RGljdF9TZXRJdGVtU3RyaW5nKGltcGxfaW5mbywgImhleHZlcnNpb24iLCB2YWx1ZSk7CisgICAgUHlfREVDUkVGKHZhbHVlKTsKKyAgICBpZiAocmVzIDwgMCkKKyAgICAgICAgZ290byBlcnJvcjsKKworICAgIC8qIGRpY3QgcmVhZHkgKi8KKworICAgIG5zID0gX1B5TmFtZXNwYWNlX05ldyhpbXBsX2luZm8pOworICAgIFB5X0RFQ1JFRihpbXBsX2luZm8pOworICAgIHJldHVybiBuczsKKworZXJyb3I6CisgICAgUHlfQ0xFQVIoaW1wbF9pbmZvKTsKKyAgICByZXR1cm4gTlVMTDsKK30KKwogc3RhdGljIHN0cnVjdCBQeU1vZHVsZURlZiBzeXNtb2R1bGUgPSB7CiAgICAgUHlNb2R1bGVEZWZfSEVBRF9JTklULAogICAgICJzeXMiLApAQCAtMTUwNiw3ICsxNTU2LDcgQEAKIFB5T2JqZWN0ICoKIF9QeVN5c19Jbml0KHZvaWQpCiB7Ci0gICAgUHlPYmplY3QgKm0sICp2LCAqc3lzZGljdDsKKyAgICBQeU9iamVjdCAqbSwgKnYsICpzeXNkaWN0LCAqdmVyc2lvbl9pbmZvOwogICAgIGNoYXIgKnM7CiAKICAgICBtID0gUHlNb2R1bGVfQ3JlYXRlKCZzeXNtb2R1bGUpOwpAQCAtMTU0NywxMCArMTU5Nyw2IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0Zyb21TdHJpbmcoUHlfR2V0VmVyc2lvbigpKSk7CiAgICAgU0VUX1NZU19GUk9NX1NUUklORygiaGV4dmVyc2lvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgUHlMb25nX0Zyb21Mb25nKFBZX1ZFUlNJT05fSEVYKSk7Ci0gICAgc3ZudmVyc2lvbl9pbml0KCk7Ci0gICAgU0VUX1NZU19GUk9NX1NUUklORygic3VidmVyc2lvbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICBQeV9CdWlsZFZhbHVlKCIoc3NzKSIsICJDUHl0aG9uIiwgYnJhbmNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdm5fcmV2aXNpb24pKTsKICAgICBTRVRfU1lTX0ZST01fU1RSSU5HKCJfbWVyY3VyaWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgIFB5X0J1aWxkVmFsdWUoIihzenopIiwgIkNQeXRob24iLCBfUHlfaGdpZGVudGlmaWVyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9QeV9oZ3ZlcnNpb24oKSkpOwpAQCAtMTU2OSw2ICsxNjE1LDEwIEBACiAgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKFB5X0dldFByZWZpeCgpLCAtMSkpOwogICAgIFNFVF9TWVNfRlJPTV9TVFJJTkcoImV4ZWNfcHJlZml4IiwKICAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIoUHlfR2V0RXhlY1ByZWZpeCgpLCAtMSkpOworICAgIFNFVF9TWVNfRlJPTV9TVFJJTkcoImJhc2VfcHJlZml4IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5VW5pY29kZV9Gcm9tV2lkZUNoYXIoUHlfR2V0UHJlZml4KCksIC0xKSk7CisgICAgU0VUX1NZU19GUk9NX1NUUklORygiYmFzZV9leGVjX3ByZWZpeCIsCisgICAgICAgICAgICAgICAgICAgICAgICBQeVVuaWNvZGVfRnJvbVdpZGVDaGFyKFB5X0dldEV4ZWNQcmVmaXgoKSwgLTEpKTsKICAgICBTRVRfU1lTX0ZST01fU1RSSU5HKCJtYXhzaXplIiwKICAgICAgICAgICAgICAgICAgICAgICAgIFB5TG9uZ19Gcm9tU3NpemVfdChQWV9TU0laRV9UX01BWCkpOwogICAgIFNFVF9TWVNfRlJPTV9TVFJJTkcoImZsb2F0X2luZm8iLApAQCAtMTU4MSw3ICsxNjMxLDcgQEAKICAgICBTRVRfU1lTX0ZST01fU1RSSU5HKCJoYXNoX2luZm8iLAogICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2hhc2hfaW5mbygpKTsKICAgICBTRVRfU1lTX0ZST01fU1RSSU5HKCJtYXh1bmljb2RlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIFB5TG9uZ19Gcm9tTG9uZyhQeVVuaWNvZGVfR2V0TWF4KCkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIFB5TG9uZ19Gcm9tTG9uZygweDEwRkZGRikpOwogICAgIFNFVF9TWVNfRlJPTV9TVFJJTkcoImJ1aWx0aW5fbW9kdWxlX25hbWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RfYnVpbHRpbl9tb2R1bGVfbmFtZXMoKSk7CiAgICAgewpAQCAtMTYyNiwxMSArMTY3NiwxNSBAQAogICAgIC8qIHZlcnNpb25faW5mbyAqLwogICAgIGlmIChWZXJzaW9uSW5mb1R5cGUudHBfbmFtZSA9PSAwKQogICAgICAgICBQeVN0cnVjdFNlcXVlbmNlX0luaXRUeXBlKCZWZXJzaW9uSW5mb1R5cGUsICZ2ZXJzaW9uX2luZm9fZGVzYyk7Ci0gICAgU0VUX1NZU19GUk9NX1NUUklORygidmVyc2lvbl9pbmZvIiwgbWFrZV92ZXJzaW9uX2luZm8oKSk7CisgICAgdmVyc2lvbl9pbmZvID0gbWFrZV92ZXJzaW9uX2luZm8oKTsKKyAgICBTRVRfU1lTX0ZST01fU1RSSU5HKCJ2ZXJzaW9uX2luZm8iLCB2ZXJzaW9uX2luZm8pOwogICAgIC8qIHByZXZlbnQgdXNlciBmcm9tIGNyZWF0aW5nIG5ldyBpbnN0YW5jZXMgKi8KICAgICBWZXJzaW9uSW5mb1R5cGUudHBfaW5pdCA9IE5VTEw7CiAgICAgVmVyc2lvbkluZm9UeXBlLnRwX25ldyA9IE5VTEw7CiAKKyAgICAvKiBpbXBsZW1lbnRhdGlvbiAqLworICAgIFNFVF9TWVNfRlJPTV9TVFJJTkcoImltcGxlbWVudGF0aW9uIiwgbWFrZV9pbXBsX2luZm8odmVyc2lvbl9pbmZvKSk7CisKICAgICAvKiBmbGFncyAqLwogICAgIGlmIChGbGFnc1R5cGUudHBfbmFtZSA9PSAwKQogICAgICAgICBQeVN0cnVjdFNlcXVlbmNlX0luaXRUeXBlKCZGbGFnc1R5cGUsICZmbGFnc19kZXNjKTsKQEAgLTE2NTgsNiArMTcxMiwxMCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgUHlVbmljb2RlX0Zyb21TdHJpbmcoImxlZ2FjeSIpKTsKICNlbmRpZgogCisjaWZkZWYgV0lUSF9USFJFQUQKKyAgICBTRVRfU1lTX0ZST01fU1RSSU5HKCJ0aHJlYWRfaW5mbyIsIFB5VGhyZWFkX0dldEluZm8oKSk7CisjZW5kaWYKKwogI3VuZGVmIFNFVF9TWVNfRlJPTV9TVFJJTkcKICAgICBpZiAoUHlFcnJfT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJuIE5VTEw7CkBAIC0xODEyLDcgKzE4NzAsNyBAQAogICAgICAgICB0aGUgYXJndW1lbnQgbXVzdCBiZSB0aGUgZnVsbCBwYXRoIGFueXdheS4gKi8KICAgICAgICAgd2NoYXJfdCAqcHRlbXA7CiAgICAgICAgIGlmIChHZXRGdWxsUGF0aE5hbWVXKGFyZ3YwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGZ1bGxwYXRoKS9zaXplb2YoZnVsbHBhdGhbMF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgUHlfQVJSQVlfTEVOR1RIKGZ1bGxwYXRoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxwYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJnB0ZW1wKSkgewogICAgICAgICAgICAgYXJndjAgPSBmdWxscGF0aDsKQEAgLTE4ODEsMTEgKzE5MzksMTIgQEAKIHsKICAgICBQeU9iamVjdCAqd3JpdGVyID0gTlVMTCwgKmFyZ3MgPSBOVUxMLCAqcmVzdWx0ID0gTlVMTDsKICAgICBpbnQgZXJyOworICAgIF9QeV9JREVOVElGSUVSKHdyaXRlKTsKIAogICAgIGlmIChmaWxlID09IE5VTEwpCiAgICAgICAgIHJldHVybiAtMTsKIAotICAgIHdyaXRlciA9IFB5T2JqZWN0X0dldEF0dHJTdHJpbmcoZmlsZSwgIndyaXRlIik7CisgICAgd3JpdGVyID0gX1B5T2JqZWN0X0dldEF0dHJJZChmaWxlLCAmUHlJZF93cml0ZSk7CiAgICAgaWYgKHdyaXRlciA9PSBOVUxMKQogICAgICAgICBnb3RvIGVycm9yOwogCmRpZmYgLS1naXQgYS9QeXRob24vdGhyZWFkLmMgYi9QeXRob24vdGhyZWFkLmMKaW5kZXggZDIyNDA0Ni4uZTU1ZDM0MiAxMDA2NDQKLS0tIGEvUHl0aG9uL3RocmVhZC5jCisrKyBiL1B5dGhvbi90aHJlYWQuYwpAQCAtNyw3ICs3LDYgQEAKIAogI2luY2x1ZGUgIlB5dGhvbi5oIgogCi0KICNpZm5kZWYgX1BPU0lYX1RIUkVBRFMKIC8qIFRoaXMgbWVhbnMgcHRocmVhZHMgYXJlIG5vdCBpbXBsZW1lbnRlZCBpbiBsaWJjIGhlYWRlcnMsIGhlbmNlIHRoZSBtYWNybwogICAgbm90IHByZXNlbnQgaW4gdW5pc3RkLmguIEJ1dCB0aGV5IHN0aWxsIGNhbiBiZSBpbXBsZW1lbnRlZCBhcyBhbiBleHRlcm5hbApAQCAtMjcsMTggKzI2LDYgQEAKIAogI2lmbmRlZiBfUE9TSVhfVEhSRUFEUwogCi0jaWZkZWYgX19zZ2kKLSNkZWZpbmUgU0dJX1RIUkVBRFMKLSNlbmRpZgotCi0jaWZkZWYgSEFWRV9USFJFQURfSAotI2RlZmluZSBTT0xBUklTX1RIUkVBRFMKLSNlbmRpZgotCi0jaWYgZGVmaW5lZChzdW4pICYmICFkZWZpbmVkKFNPTEFSSVNfVEhSRUFEUykKLSNkZWZpbmUgU1VOX0xXUAotI2VuZGlmCi0KIC8qIENoZWNrIGlmIHdlJ3JlIHJ1bm5pbmcgb24gSFAtVVggYW5kIF9TQ19USFJFQURTIGlzIGRlZmluZWQuIElmIHNvLCB0aGVuCiAgICBlbm91Z2ggb2YgdGhlIFBvc2l4IHRocmVhZHMgcGFja2FnZSBpcyBpbXBsZW1lbnRlZCB0byBzdXBwb3J0IHB5dGhvbgogICAgdGhyZWFkcy4KQEAgLTk0LDQ3ICs4MSwyMSBAQAogICAgb3IgdGhlIHNpemUgc3BlY2lmaWVkIGJ5IHRoZSBUSFJFQURfU1RBQ0tfU0laRSBtYWNyby4gKi8KIHN0YXRpYyBzaXplX3QgX3B5dGhyZWFkX3N0YWNrc2l6ZSA9IDA7CiAKLSNpZmRlZiBTR0lfVEhSRUFEUwotI2Vycm9yIFNHSSBJcml4IHRocmVhZHMgYXJlIG5vdyB1bnN1cHBvcnRlZCwgYW5kIGNvZGUgd2lsbCBiZSByZW1vdmVkIGluIDMuMy4KLSNpbmNsdWRlICJ0aHJlYWRfc2dpLmgiCi0jZW5kaWYKLQotI2lmZGVmIFNPTEFSSVNfVEhSRUFEUwotI2luY2x1ZGUgInRocmVhZF9zb2xhcmlzLmgiCi0jZW5kaWYKLQotI2lmZGVmIFNVTl9MV1AKLSNlcnJvciBTdW5PUyBsaWdodHdlaWdodCBwcm9jZXNzZXMgYXJlIG5vdyB1bnN1cHBvcnRlZCwgYW5kIGNvZGUgd2lsbCBiZSByZW1vdmVkIGluIDMuMy4KLSNpbmNsdWRlICJ0aHJlYWRfbHdwLmgiCi0jZW5kaWYKLQotI2lmZGVmIEhBVkVfUFRICi0jZXJyb3IgR05VIHB0aCB0aHJlYWRzIGFyZSBub3cgdW5zdXBwb3J0ZWQsIGFuZCBjb2RlIHdpbGwgYmUgcmVtb3ZlZCBpbiAzLjMuCi0jaW5jbHVkZSAidGhyZWFkX3B0aC5oIgotI3VuZGVmIF9QT1NJWF9USFJFQURTCi0jZW5kaWYKLQogI2lmZGVmIF9QT1NJWF9USFJFQURTCisjZGVmaW5lIFBZVEhSRUFEX05BTUUgInB0aHJlYWQiCiAjaW5jbHVkZSAidGhyZWFkX3B0aHJlYWQuaCIKICNlbmRpZgogCi0jaWZkZWYgQ19USFJFQURTCi0jZXJyb3IgTWFjaCBDIFRocmVhZHMgYXJlIG5vdyB1bnN1cHBvcnRlZCwgYW5kIGNvZGUgd2lsbCBiZSByZW1vdmVkIGluIDMuMy4KLSNpbmNsdWRlICJ0aHJlYWRfY3RocmVhZC5oIgotI2VuZGlmCi0KICNpZmRlZiBOVF9USFJFQURTCisjZGVmaW5lIFBZVEhSRUFEX05BTUUgIm50IgogI2luY2x1ZGUgInRocmVhZF9udC5oIgogI2VuZGlmCiAKICNpZmRlZiBPUzJfVEhSRUFEUworI2RlZmluZSBQWVRIUkVBRF9OQU1FICJvczIiCiAjaW5jbHVkZSAidGhyZWFkX29zMi5oIgogI2VuZGlmCiAKLSNpZmRlZiBQTEFOOV9USFJFQURTCi0jaW5jbHVkZSAidGhyZWFkX3BsYW45LmgiCi0jZW5kaWYKLQogLyoKICNpZmRlZiBGT09CQVJfVEhSRUFEUwogI2luY2x1ZGUgInRocmVhZF9mb29iYXIuaCIKQEAgLTQwOSwzICszNzAsODQgQEAKIH0KIAogI2VuZGlmIC8qIFB5X0hBVkVfTkFUSVZFX1RMUyAqLworCitQeURvY19TVFJWQVIodGhyZWFkaW5mb19fZG9jX18sCisic3lzLnRocmVhZF9pbmZvXG5cCitcblwKK0Egc3RydWN0IHNlcXVlbmNlIGhvbGRpbmcgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRocmVhZCBpbXBsZW1lbnRhdGlvbi4iKTsKKworc3RhdGljIFB5U3RydWN0U2VxdWVuY2VfRmllbGQgdGhyZWFkaW5mb19maWVsZHNbXSA9IHsKKyAgICB7Im5hbWUiLCAgICAibmFtZSBvZiB0aGUgdGhyZWFkIGltcGxlbWVudGF0aW9uIn0sCisgICAgeyJsb2NrIiwgICAgIm5hbWUgb2YgdGhlIGxvY2sgaW1wbGVtZW50YXRpb24ifSwKKyAgICB7InZlcnNpb24iLCAibmFtZSBhbmQgdmVyc2lvbiBvZiB0aGUgdGhyZWFkIGxpYnJhcnkifSwKKyAgICB7MH0KK307CisKK3N0YXRpYyBQeVN0cnVjdFNlcXVlbmNlX0Rlc2MgdGhyZWFkaW5mb19kZXNjID0geworICAgICJzeXMudGhyZWFkX2luZm8iLCAgICAgICAgICAgLyogbmFtZSAqLworICAgIHRocmVhZGluZm9fX2RvY19fLCAgICAgICAgICAgLyogZG9jICovCisgICAgdGhyZWFkaW5mb19maWVsZHMsICAgICAgICAgICAvKiBmaWVsZHMgKi8KKyAgICAzCit9OworCitzdGF0aWMgUHlUeXBlT2JqZWN0IFRocmVhZEluZm9UeXBlOworCitQeU9iamVjdCoKK1B5VGhyZWFkX0dldEluZm8odm9pZCkKK3sKKyAgICBQeU9iamVjdCAqdGhyZWFkaW5mbywgKnZhbHVlOworICAgIGludCBwb3MgPSAwOworI2lmIChkZWZpbmVkKF9QT1NJWF9USFJFQURTKSAmJiBkZWZpbmVkKEhBVkVfQ09ORlNUUikgXAorICAgICAmJiBkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OKSkKKyAgICBjaGFyIGJ1ZmZlclsyNTVdOworICAgIGludCBsZW47CisjZW5kaWYKKworICAgIGlmIChUaHJlYWRJbmZvVHlwZS50cF9uYW1lID09IDApCisgICAgICAgIFB5U3RydWN0U2VxdWVuY2VfSW5pdFR5cGUoJlRocmVhZEluZm9UeXBlLCAmdGhyZWFkaW5mb19kZXNjKTsKKworICAgIHRocmVhZGluZm8gPSBQeVN0cnVjdFNlcXVlbmNlX05ldygmVGhyZWFkSW5mb1R5cGUpOworICAgIGlmICh0aHJlYWRpbmZvID09IE5VTEwpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgdmFsdWUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZyhQWVRIUkVBRF9OQU1FKTsKKyAgICBpZiAodmFsdWUgPT0gTlVMTCkgeworICAgICAgICBQeV9ERUNSRUYodGhyZWFkaW5mbyk7CisgICAgICAgIHJldHVybiBOVUxMOworICAgIH0KKyAgICBQeVN0cnVjdFNlcXVlbmNlX1NFVF9JVEVNKHRocmVhZGluZm8sIHBvcysrLCB2YWx1ZSk7CisKKyNpZmRlZiBfUE9TSVhfVEhSRUFEUworI2lmZGVmIFVTRV9TRU1BUEhPUkVTCisgICAgdmFsdWUgPSBQeVVuaWNvZGVfRnJvbVN0cmluZygic2VtYXBob3JlIik7CisjZWxzZQorICAgIHZhbHVlID0gUHlVbmljb2RlX0Zyb21TdHJpbmcoIm11dGV4K2NvbmQiKTsKKyNlbmRpZgorICAgIGlmICh2YWx1ZSA9PSBOVUxMKSB7CisgICAgICAgIFB5X0RFQ1JFRih0aHJlYWRpbmZvKTsKKyAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgfQorI2Vsc2UKKyAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgdmFsdWUgPSBQeV9Ob25lOworI2VuZGlmCisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTSh0aHJlYWRpbmZvLCBwb3MrKywgdmFsdWUpOworCisjaWYgKGRlZmluZWQoX1BPU0lYX1RIUkVBRFMpICYmIGRlZmluZWQoSEFWRV9DT05GU1RSKSBcCisgICAgICYmIGRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04pKQorICAgIHZhbHVlID0gTlVMTDsKKyAgICBsZW4gPSBjb25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBidWZmZXIsIHNpemVvZihidWZmZXIpKTsKKyAgICBpZiAoMSA8IGxlbiAmJiBsZW4gPCBzaXplb2YoYnVmZmVyKSkgeworICAgICAgICB2YWx1ZSA9IFB5VW5pY29kZV9EZWNvZGVGU0RlZmF1bHRBbmRTaXplKGJ1ZmZlciwgbGVuLTEpOworICAgICAgICBpZiAodmFsdWUgPT0gTlVMTCkKKyAgICAgICAgICAgIFB5RXJyX0NsZWFyKCk7CisgICAgfQorICAgIGlmICh2YWx1ZSA9PSBOVUxMKQorI2VuZGlmCisgICAgeworICAgICAgICBQeV9JTkNSRUYoUHlfTm9uZSk7CisgICAgICAgIHZhbHVlID0gUHlfTm9uZTsKKyAgICB9CisgICAgUHlTdHJ1Y3RTZXF1ZW5jZV9TRVRfSVRFTSh0aHJlYWRpbmZvLCBwb3MrKywgdmFsdWUpOworICAgIHJldHVybiB0aHJlYWRpbmZvOworfQpkaWZmIC0tZ2l0IGEvUHl0aG9uL3RocmVhZF9jdGhyZWFkLmggYi9QeXRob24vdGhyZWFkX2N0aHJlYWQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWIzZTM5MC4uMDAwMDAwMAotLS0gYS9QeXRob24vdGhyZWFkX2N0aHJlYWQuaAorKysgL2Rldi9udWxsCkBAIC0xLDExMiArMCwwIEBACi0KLSNpZmRlZiBNQUNIX0NfVEhSRUFEUwotI2luY2x1ZGUgPG1hY2gvY3RocmVhZHMuaD4KLSNlbmRpZgotCi0jaWZkZWYgSFVSRF9DX1RIUkVBRFMKLSNpbmNsdWRlIDxjdGhyZWFkcy5oPgotI2VuZGlmCi0KLS8qCi0gKiBJbml0aWFsaXphdGlvbi4KLSAqLwotc3RhdGljIHZvaWQKLVB5VGhyZWFkX19pbml0X3RocmVhZCh2b2lkKQotewotI2lmbmRlZiBIVVJEX0NfVEhSRUFEUwotICAgIC8qIFJvbGFuZCBNY0dyYXRoIHNhaWQgdGhpcyBzaG91bGQgbm90IGJlIHVzZWQgc2luY2UgdGhpcyBpcwotICAgIGRvbmUgd2hpbGUgbGlua2luZyB0byB0aHJlYWRzICovCi0gICAgY3RocmVhZF9pbml0KCk7Ci0jZWxzZQotLyogZG8gbm90aGluZyAqLwotICAgIDsKLSNlbmRpZgotfQotCi0vKgotICogVGhyZWFkIHN1cHBvcnQuCi0gKi8KLWxvbmcKLVB5VGhyZWFkX3N0YXJ0X25ld190aHJlYWQodm9pZCAoKmZ1bmMpKHZvaWQgKiksIHZvaWQgKmFyZykKLXsKLSAgICBpbnQgc3VjY2VzcyA9IDA7ICAgICAgICAgICAgLyogaW5pdCBub3QgbmVlZGVkIHdoZW4gU09MQVJJU19USFJFQURTIGFuZCAqLwotICAgICAgICAgICAgICAgIC8qIENfVEhSRUFEUyBpbXBsZW1lbnRlZCBwcm9wZXJseSAqLwotCi0gICAgZHByaW50ZigoIlB5VGhyZWFkX3N0YXJ0X25ld190aHJlYWQgY2FsbGVkXG4iKSk7Ci0gICAgaWYgKCFpbml0aWFsaXplZCkKLSAgICAgICAgUHlUaHJlYWRfaW5pdF90aHJlYWQoKTsKLSAgICAvKiBsb29rcyBsaWtlIHNvbGFyaXMgZGV0YWNoZXMgdGhlIHRocmVhZCB0byBuZXZlciByZWpvaW4KLSAgICAgKiBzbyB3ZWxsIGRvIGl0IGhlcmUKLSAgICAgKi8KLSAgICBjdGhyZWFkX2RldGFjaChjdGhyZWFkX2ZvcmsoKGN0aHJlYWRfZm5fdCkgZnVuYywgYXJnKSk7Ci0gICAgcmV0dXJuIHN1Y2Nlc3MgPCAwID8gLTEgOiAwOwotfQotCi1sb25nCi1QeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KHZvaWQpCi17Ci0gICAgaWYgKCFpbml0aWFsaXplZCkKLSAgICAgICAgUHlUaHJlYWRfaW5pdF90aHJlYWQoKTsKLSAgICByZXR1cm4gKGxvbmcpIGN0aHJlYWRfc2VsZigpOwotfQotCi12b2lkCi1QeVRocmVhZF9leGl0X3RocmVhZCh2b2lkKQotewotICAgIGRwcmludGYoKCJQeVRocmVhZF9leGl0X3RocmVhZCBjYWxsZWRcbiIpKTsKLSAgICBpZiAoIWluaXRpYWxpemVkKQotICAgICAgICBleGl0KDApOwotICAgIGN0aHJlYWRfZXhpdCgwKTsKLX0KLQotLyoKLSAqIExvY2sgc3VwcG9ydC4KLSAqLwotUHlUaHJlYWRfdHlwZV9sb2NrCi1QeVRocmVhZF9hbGxvY2F0ZV9sb2NrKHZvaWQpCi17Ci0gICAgbXV0ZXhfdCBsb2NrOwotCi0gICAgZHByaW50ZigoIlB5VGhyZWFkX2FsbG9jYXRlX2xvY2sgY2FsbGVkXG4iKSk7Ci0gICAgaWYgKCFpbml0aWFsaXplZCkKLSAgICAgICAgUHlUaHJlYWRfaW5pdF90aHJlYWQoKTsKLQotICAgIGxvY2sgPSBtdXRleF9hbGxvYygpOwotICAgIGlmIChtdXRleF9pbml0KGxvY2spKSB7Ci0gICAgICAgIHBlcnJvcigibXV0ZXhfaW5pdCIpOwotICAgICAgICBmcmVlKCh2b2lkICopIGxvY2spOwotICAgICAgICBsb2NrID0gMDsKLSAgICB9Ci0gICAgZHByaW50ZigoIlB5VGhyZWFkX2FsbG9jYXRlX2xvY2soKSAtPiAlcFxuIiwgbG9jaykpOwotICAgIHJldHVybiAoUHlUaHJlYWRfdHlwZV9sb2NrKSBsb2NrOwotfQotCi12b2lkCi1QeVRocmVhZF9mcmVlX2xvY2soUHlUaHJlYWRfdHlwZV9sb2NrIGxvY2spCi17Ci0gICAgZHByaW50ZigoIlB5VGhyZWFkX2ZyZWVfbG9jayglcCkgY2FsbGVkXG4iLCBsb2NrKSk7Ci0gICAgbXV0ZXhfZnJlZShsb2NrKTsKLX0KLQotaW50Ci1QeVRocmVhZF9hY3F1aXJlX2xvY2soUHlUaHJlYWRfdHlwZV9sb2NrIGxvY2ssIGludCB3YWl0ZmxhZykKLXsKLSAgICBpbnQgc3VjY2VzcyA9IEZBTFNFOwotCi0gICAgZHByaW50ZigoIlB5VGhyZWFkX2FjcXVpcmVfbG9jayglcCwgJWQpIGNhbGxlZFxuIiwgbG9jaywgd2FpdGZsYWcpKTsKLSAgICBpZiAod2FpdGZsYWcpIHsgICAgICAgICAgICAgLyogYmxvY2tpbmcgKi8KLSAgICAgICAgbXV0ZXhfbG9jaygobXV0ZXhfdClsb2NrKTsKLSAgICAgICAgc3VjY2VzcyA9IFRSVUU7Ci0gICAgfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgIC8qIG5vbiBibG9ja2luZyAqLwotICAgICAgICBzdWNjZXNzID0gbXV0ZXhfdHJ5X2xvY2soKG11dGV4X3QpbG9jayk7Ci0gICAgfQotICAgIGRwcmludGYoKCJQeVRocmVhZF9hY3F1aXJlX2xvY2soJXAsICVkKSAtPiAlZFxuIiwgbG9jaywgd2FpdGZsYWcsIHN1Y2Nlc3MpKTsKLSAgICByZXR1cm4gc3VjY2VzczsKLX0KLQotdm9pZAotUHlUaHJlYWRfcmVsZWFzZV9sb2NrKFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrKQotewotICAgIGRwcmludGYoKCJQeVRocmVhZF9yZWxlYXNlX2xvY2soJXApIGNhbGxlZFxuIiwgbG9jaykpOwotICAgIG11dGV4X3VubG9jaygobXV0ZXhfdCApbG9jayk7Ci19CmRpZmYgLS1naXQgYS9QeXRob24vdGhyZWFkX2x3cC5oIGIvUHl0aG9uL3RocmVhZF9sd3AuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmE3YjM3YS4uMDAwMDAwMAotLS0gYS9QeXRob24vdGhyZWFkX2x3cC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTEzICswLDAgQEAKLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPGx3cC9sd3AuaD4KLSNpbmNsdWRlIDxsd3Avc3RhY2tkZXAuaD4KLQotI2RlZmluZSBTVEFDS1NJWkUgICAgICAgMTAwMCAgICAvKiBzdGFja3NpemUgZm9yIGEgdGhyZWFkICovCi0jZGVmaW5lIE5TVEFDS1MgICAgICAgICAyICAgICAgIC8qICMgc3RhY2tzIHRvIGJlIHB1dCBpbiBjYWNoZSBpbml0aWFsbHkgKi8KLQotc3RydWN0IGxvY2sgewotICAgIGludCBsb2NrX2xvY2tlZDsKLSAgICBjdl90IGxvY2tfY29uZHZhcjsKLSAgICBtb25fdCBsb2NrX21vbml0b3I7Ci19OwotCi0KLS8qCi0gKiBJbml0aWFsaXphdGlvbi4KLSAqLwotc3RhdGljIHZvaWQgUHlUaHJlYWRfX2luaXRfdGhyZWFkKHZvaWQpCi17Ci0gICAgbHdwX3NldHN0a2NhY2hlKFNUQUNLU0laRSwgTlNUQUNLUyk7Ci19Ci0KLS8qCi0gKiBUaHJlYWQgc3VwcG9ydC4KLSAqLwotCi0KLWxvbmcgUHlUaHJlYWRfc3RhcnRfbmV3X3RocmVhZCh2b2lkICgqZnVuYykodm9pZCAqKSwgdm9pZCAqYXJnKQotewotICAgIHRocmVhZF90IHRpZDsKLSAgICBpbnQgc3VjY2VzczsKLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfc3RhcnRfbmV3X3RocmVhZCBjYWxsZWRcbiIpKTsKLSAgICBpZiAoIWluaXRpYWxpemVkKQotICAgICAgICBQeVRocmVhZF9pbml0X3RocmVhZCgpOwotICAgIHN1Y2Nlc3MgPSBsd3BfY3JlYXRlKCZ0aWQsIGZ1bmMsIE1JTlBSSU8sIDAsIGx3cF9uZXdzdGsoKSwgMSwgYXJnKTsKLSAgICByZXR1cm4gc3VjY2VzcyA8IDAgPyAtMSA6IDA7Ci19Ci0KLWxvbmcgUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCh2b2lkKQotewotICAgIHRocmVhZF90IHRpZDsKLSAgICBpZiAoIWluaXRpYWxpemVkKQotICAgICAgICBQeVRocmVhZF9pbml0X3RocmVhZCgpOwotICAgIGlmIChsd3Bfc2VsZigmdGlkKSA8IDApCi0gICAgICAgIHJldHVybiAtMTsKLSAgICByZXR1cm4gdGlkLnRocmVhZF9pZDsKLX0KLQotdm9pZCBQeVRocmVhZF9leGl0X3RocmVhZCh2b2lkKQotewotICAgIGRwcmludGYoKCJQeVRocmVhZF9leGl0X3RocmVhZCBjYWxsZWRcbiIpKTsKLSAgICBpZiAoIWluaXRpYWxpemVkKQotICAgICAgICBleGl0KDApOwotICAgIGx3cF9kZXN0cm95KFNFTEYpOwotfQotCi0vKgotICogTG9jayBzdXBwb3J0LgotICovCi1QeVRocmVhZF90eXBlX2xvY2sgUHlUaHJlYWRfYWxsb2NhdGVfbG9jayh2b2lkKQotewotICAgIHN0cnVjdCBsb2NrICpsb2NrOwotICAgIGV4dGVybiBjaGFyICptYWxsb2Moc2l6ZV90KTsKLQotICAgIGRwcmludGYoKCJQeVRocmVhZF9hbGxvY2F0ZV9sb2NrIGNhbGxlZFxuIikpOwotICAgIGlmICghaW5pdGlhbGl6ZWQpCi0gICAgICAgIFB5VGhyZWFkX2luaXRfdGhyZWFkKCk7Ci0KLSAgICBsb2NrID0gKHN0cnVjdCBsb2NrICopIG1hbGxvYyhzaXplb2Yoc3RydWN0IGxvY2spKTsKLSAgICBsb2NrLT5sb2NrX2xvY2tlZCA9IDA7Ci0gICAgKHZvaWQpIG1vbl9jcmVhdGUoJmxvY2stPmxvY2tfbW9uaXRvcik7Ci0gICAgKHZvaWQpIGN2X2NyZWF0ZSgmbG9jay0+bG9ja19jb25kdmFyLCBsb2NrLT5sb2NrX21vbml0b3IpOwotICAgIGRwcmludGYoKCJQeVRocmVhZF9hbGxvY2F0ZV9sb2NrKCkgLT4gJXBcbiIsIGxvY2spKTsKLSAgICByZXR1cm4gKFB5VGhyZWFkX3R5cGVfbG9jaykgbG9jazsKLX0KLQotdm9pZCBQeVRocmVhZF9mcmVlX2xvY2soUHlUaHJlYWRfdHlwZV9sb2NrIGxvY2spCi17Ci0gICAgZHByaW50ZigoIlB5VGhyZWFkX2ZyZWVfbG9jayglcCkgY2FsbGVkXG4iLCBsb2NrKSk7Ci0gICAgbW9uX2Rlc3Ryb3koKChzdHJ1Y3QgbG9jayAqKSBsb2NrKS0+bG9ja19tb25pdG9yKTsKLSAgICBmcmVlKChjaGFyICopIGxvY2spOwotfQotCi1pbnQgUHlUaHJlYWRfYWNxdWlyZV9sb2NrKFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrLCBpbnQgd2FpdGZsYWcpCi17Ci0gICAgaW50IHN1Y2Nlc3M7Ci0KLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfYWNxdWlyZV9sb2NrKCVwLCAlZCkgY2FsbGVkXG4iLCBsb2NrLCB3YWl0ZmxhZykpOwotICAgIHN1Y2Nlc3MgPSAwOwotCi0gICAgKHZvaWQpIG1vbl9lbnRlcigoKHN0cnVjdCBsb2NrICopIGxvY2spLT5sb2NrX21vbml0b3IpOwotICAgIGlmICh3YWl0ZmxhZykKLSAgICAgICAgd2hpbGUgKCgoc3RydWN0IGxvY2sgKikgbG9jayktPmxvY2tfbG9ja2VkKQotICAgICAgICAgICAgY3Zfd2FpdCgoKHN0cnVjdCBsb2NrICopIGxvY2spLT5sb2NrX2NvbmR2YXIpOwotICAgIGlmICghKChzdHJ1Y3QgbG9jayAqKSBsb2NrKS0+bG9ja19sb2NrZWQpIHsKLSAgICAgICAgc3VjY2VzcyA9IDE7Ci0gICAgICAgICgoc3RydWN0IGxvY2sgKikgbG9jayktPmxvY2tfbG9ja2VkID0gMTsKLSAgICB9Ci0gICAgY3ZfYnJvYWRjYXN0KCgoc3RydWN0IGxvY2sgKikgbG9jayktPmxvY2tfY29uZHZhcik7Ci0gICAgbW9uX2V4aXQoKChzdHJ1Y3QgbG9jayAqKSBsb2NrKS0+bG9ja19tb25pdG9yKTsKLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfYWNxdWlyZV9sb2NrKCVwLCAlZCkgLT4gJWRcbiIsIGxvY2ssIHdhaXRmbGFnLCBzdWNjZXNzKSk7Ci0gICAgcmV0dXJuIHN1Y2Nlc3M7Ci19Ci0KLXZvaWQgUHlUaHJlYWRfcmVsZWFzZV9sb2NrKFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrKQotewotICAgIGRwcmludGYoKCJQeVRocmVhZF9yZWxlYXNlX2xvY2soJXApIGNhbGxlZFxuIiwgbG9jaykpOwotICAgICh2b2lkKSBtb25fZW50ZXIoKChzdHJ1Y3QgbG9jayAqKSBsb2NrKS0+bG9ja19tb25pdG9yKTsKLSAgICAoKHN0cnVjdCBsb2NrICopIGxvY2spLT5sb2NrX2xvY2tlZCA9IDA7Ci0gICAgY3ZfYnJvYWRjYXN0KCgoc3RydWN0IGxvY2sgKikgbG9jayktPmxvY2tfY29uZHZhcik7Ci0gICAgbW9uX2V4aXQoKChzdHJ1Y3QgbG9jayAqKSBsb2NrKS0+bG9ja19tb25pdG9yKTsKLX0KZGlmZiAtLWdpdCBhL1B5dGhvbi90aHJlYWRfbnQuaCBiL1B5dGhvbi90aHJlYWRfbnQuaAppbmRleCBkMWJiMGU1Li45MzhiZjFlIDEwMDY0NAotLS0gYS9QeXRob24vdGhyZWFkX250LmgKKysrIGIvUHl0aG9uL3RocmVhZF9udC5oCkBAIC05LDYgKzksMTA5IEBACiAjaW5jbHVkZSA8cHJvY2Vzcy5oPgogI2VuZGlmCiAKKy8qIG9wdGlvbnMgKi8KKyNpZm5kZWYgX1BZX1VTRV9DVl9MT0NLUworI2RlZmluZSBfUFlfVVNFX0NWX0xPQ0tTIDEgICAgIC8qIHVzZSBsb2NrcyBiYXNlZCBvbiBjb25kIHZhcnMgKi8KKyNlbmRpZgorCisvKiBOb3csIGRlZmluZSBhIG5vbi1yZWN1cnNpdmUgbXV0ZXggdXNpbmcgZWl0aGVyIGNvbmRpdGlvbiB2YXJpYWJsZXMKKyAqIGFuZCBjcml0aWNhbCBzZWN0aW9ucyAoZmFzdCkgb3IgdXNpbmcgb3BlcmF0aW5nIHN5c3RlbSBtdXRleGVzCisgKiAoc2xvdykKKyAqLworCisjaWYgX1BZX1VTRV9DVl9MT0NLUworCisjaW5jbHVkZSAiY29uZHZhci5oIgorCit0eXBlZGVmIHN0cnVjdCBfTlJNVVRFWAoreworICAgIFB5TVVURVhfVCBjczsKKyAgICBQeUNPTkRfVCBjdjsKKyAgICBpbnQgbG9ja2VkOworfSBOUk1VVEVYOwordHlwZWRlZiBOUk1VVEVYICpQTlJNVVRFWDsKKworUE5STVVURVgKK0FsbG9jTm9uUmVjdXJzaXZlTXV0ZXgoKQoreworICAgIFBOUk1VVEVYIG0gPSAoUE5STVVURVgpbWFsbG9jKHNpemVvZihOUk1VVEVYKSk7CisgICAgaWYgKCFtKQorICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoUHlDT05EX0lOSVQoJm0tPmN2KSkKKyAgICAgICAgZ290byBmYWlsOworICAgIGlmIChQeU1VVEVYX0lOSVQoJm0tPmNzKSkgeworICAgICAgICBQeUNPTkRfRklOSSgmbS0+Y3YpOworICAgICAgICBnb3RvIGZhaWw7CisgICAgfQorICAgIG0tPmxvY2tlZCA9IDA7CisgICAgcmV0dXJuIG07CitmYWlsOgorICAgIGZyZWUobSk7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1ZPSUQKK0ZyZWVOb25SZWN1cnNpdmVNdXRleChQTlJNVVRFWCBtdXRleCkKK3sKKyAgICBpZiAobXV0ZXgpIHsKKyAgICAgICAgUHlDT05EX0ZJTkkoJm11dGV4LT5jdik7CisgICAgICAgIFB5TVVURVhfRklOSSgmbXV0ZXgtPmNzKTsKKyAgICAgICAgZnJlZShtdXRleCk7CisgICAgfQorfQorCitEV09SRAorRW50ZXJOb25SZWN1cnNpdmVNdXRleChQTlJNVVRFWCBtdXRleCwgRFdPUkQgbWlsbGlzZWNvbmRzKQoreworICAgIERXT1JEIHJlc3VsdCA9IFdBSVRfT0JKRUNUXzA7CisgICAgaWYgKFB5TVVURVhfTE9DSygmbXV0ZXgtPmNzKSkKKyAgICAgICAgcmV0dXJuIFdBSVRfRkFJTEVEOworICAgIGlmIChtaWxsaXNlY29uZHMgPT0gSU5GSU5JVEUpIHsKKyAgICAgICAgd2hpbGUgKG11dGV4LT5sb2NrZWQpIHsKKyAgICAgICAgICAgIGlmIChQeUNPTkRfV0FJVCgmbXV0ZXgtPmN2LCAmbXV0ZXgtPmNzKSkgeworICAgICAgICAgICAgICAgIHJlc3VsdCA9IFdBSVRfRkFJTEVEOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSBlbHNlIGlmIChtaWxsaXNlY29uZHMgIT0gMCkgeworICAgICAgICAvKiB3YWl0IGF0IGxlYXN0IHVudGlsIHRoZSB0YXJnZXQgKi8KKyAgICAgICAgRFdPUkQgbm93LCB0YXJnZXQgPSBHZXRUaWNrQ291bnQoKSArIG1pbGxpc2Vjb25kczsKKyAgICAgICAgd2hpbGUgKG11dGV4LT5sb2NrZWQpIHsKKyAgICAgICAgICAgIGlmIChQeUNPTkRfVElNRURXQUlUKCZtdXRleC0+Y3YsICZtdXRleC0+Y3MsIG1pbGxpc2Vjb25kcyoxMDAwKSA8IDApIHsKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBXQUlUX0ZBSUxFRDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG5vdyA9IEdldFRpY2tDb3VudCgpOworICAgICAgICAgICAgaWYgKHRhcmdldCA8PSBub3cpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBtaWxsaXNlY29uZHMgPSB0YXJnZXQtbm93OworICAgICAgICB9CisgICAgfQorICAgIGlmICghbXV0ZXgtPmxvY2tlZCkgeworICAgICAgICBtdXRleC0+bG9ja2VkID0gMTsKKyAgICAgICAgcmVzdWx0ID0gV0FJVF9PQkpFQ1RfMDsKKyAgICB9IGVsc2UgaWYgKHJlc3VsdCA9PSBXQUlUX09CSkVDVF8wKQorICAgICAgICByZXN1bHQgPSBXQUlUX1RJTUVPVVQ7CisgICAgLyogZWxzZSwgaXQgaXMgV0FJVF9GQUlMRUQgKi8KKyAgICBQeU1VVEVYX1VOTE9DSygmbXV0ZXgtPmNzKTsgLyogbXVzdCBpZ25vcmUgcmVzdWx0IGhlcmUgKi8KKyAgICByZXR1cm4gcmVzdWx0OworfQorCitCT09MCitMZWF2ZU5vblJlY3Vyc2l2ZU11dGV4KFBOUk1VVEVYIG11dGV4KQoreworICAgIEJPT0wgcmVzdWx0OworICAgIGlmIChQeU1VVEVYX0xPQ0soJm11dGV4LT5jcykpCisgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICBtdXRleC0+bG9ja2VkID0gMDsKKyAgICByZXN1bHQgPSBQeUNPTkRfU0lHTkFMKCZtdXRleC0+Y3YpOworICAgIHJlc3VsdCAmPSBQeU1VVEVYX1VOTE9DSygmbXV0ZXgtPmNzKTsKKyAgICByZXR1cm4gcmVzdWx0OworfSAgICAKKworI2Vsc2UgLyogaWYgISBfUFlfVVNFX0NWX0xPQ0tTICovCisKKy8qIE5SLWxvY2tzIGJhc2VkIG9uIGEga2VybmVsIG11dGV4ICovCiAjZGVmaW5lIFBOUk1VVEVYIEhBTkRMRQogCiBQTlJNVVRFWApAQCAtMzUsNiArMTM4LDcgQEAKIHsKICAgICByZXR1cm4gUmVsZWFzZVNlbWFwaG9yZShtdXRleCwgMSwgTlVMTCk7CiB9CisjZW5kaWYgLyogX1BZX1VTRV9DVl9MT0NLUyAqLwogCiBsb25nIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQodm9pZCk7CiAKZGlmZiAtLWdpdCBhL1B5dGhvbi90aHJlYWRfcHRoLmggYi9QeXRob24vdGhyZWFkX3B0aC5oCmluZGV4IDgyYTAwZTcuLjU3MDQyNjYgMTAwNjQ0Ci0tLSBhL1B5dGhvbi90aHJlYWRfcHRoLmgKKysrIGIvUHl0aG9uL3RocmVhZF9wdGguaApAQCAtNjksOSArNjksOCBAQAogICAgIHZvbGF0aWxlIHB0aF90IHRocmVhZGlkOwogICAgIGlmICghaW5pdGlhbGl6ZWQpCiAgICAgICAgIFB5VGhyZWFkX2luaXRfdGhyZWFkKCk7Ci0gICAgLyogSnVtcCB0aHJvdWdoIHNvbWUgaG9vcHMgZm9yIEFscGhhIE9TRi8xICovCiAgICAgdGhyZWFkaWQgPSBwdGhfc2VsZigpOwotICAgIHJldHVybiAobG9uZykgKihsb25nICopICZ0aHJlYWRpZDsKKyAgICByZXR1cm4gKGxvbmcpIHRocmVhZGlkOwogfQogCiB2b2lkIFB5VGhyZWFkX2V4aXRfdGhyZWFkKHZvaWQpCmRpZmYgLS1naXQgYS9QeXRob24vdGhyZWFkX3B0aHJlYWQuaCBiL1B5dGhvbi90aHJlYWRfcHRocmVhZC5oCmluZGV4IDNjZGUwMzUuLjUwMDdhYWYgMTAwNjQ0Ci0tLSBhL1B5dGhvbi90aHJlYWRfcHRocmVhZC5oCisrKyBiL1B5dGhvbi90aHJlYWRfcHRocmVhZC5oCkBAIC0xNDgsNyArMTQ4LDcgQEAKICAqIEluaXRpYWxpemF0aW9uLgogICovCiAKLSNpZmRlZiBfSEFWRV9CU0RJCisjaWYgZGVmaW5lZChfSEFWRV9CU0RJKQogc3RhdGljCiB2b2lkIF9ub29wKHZvaWQpCiB7CkBAIC0yNDQsOCArMjQ0LDcgQEAKICAgIGhvc2VkIiBiZWNhdXNlOgogICAgICAtIEl0IGRvZXMgbm90IGd1YXJhbnRlZSB0aGUgcHJvbWlzZSB0aGF0IGEgbm9uLXplcm8gaW50ZWdlciBpcyByZXR1cm5lZC4KICAgICAgLSBUaGUgY2FzdCB0byBsb25nIGlzIGluaGVyZW50bHkgdW5zYWZlLgotICAgICAtIEl0IGlzIG5vdCBjbGVhciB0aGF0IHRoZSAndm9sYXRpbGUnIChmb3IgQUlYPykgYW5kIHVnbHkgY2FzdGluZyBpbiB0aGUKLSAgICAgICBsYXR0ZXIgcmV0dXJuIHN0YXRlbWVudCAoZm9yIEFscGhhIE9TRi8xKSBhcmUgYW55IGxvbmdlciBuZWNlc3NhcnkuCisgICAgIC0gSXQgaXMgbm90IGNsZWFyIHRoYXQgdGhlICd2b2xhdGlsZScgKGZvciBBSVg/KSBhcmUgYW55IGxvbmdlciBuZWNlc3NhcnkuCiAqLwogbG9uZwogUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCh2b2lkKQpAQCAtMjUzLDEzICsyNTIsOCBAQAogICAgIHZvbGF0aWxlIHB0aHJlYWRfdCB0aHJlYWRpZDsKICAgICBpZiAoIWluaXRpYWxpemVkKQogICAgICAgICBQeVRocmVhZF9pbml0X3RocmVhZCgpOwotICAgIC8qIEp1bXAgdGhyb3VnaCBzb21lIGhvb3BzIGZvciBBbHBoYSBPU0YvMSAqLwogICAgIHRocmVhZGlkID0gcHRocmVhZF9zZWxmKCk7Ci0jaWYgU0laRU9GX1BUSFJFQURfVCA8PSBTSVpFT0ZfTE9ORwogICAgIHJldHVybiAobG9uZykgdGhyZWFkaWQ7Ci0jZWxzZQotICAgIHJldHVybiAobG9uZykgKihsb25nICopICZ0aHJlYWRpZDsKLSNlbmRpZgogfQogCiB2b2lkCkBAIC00NDksMTIgKzQ0MywxNSBAQAogCiAgICAgZHByaW50ZigoIlB5VGhyZWFkX2ZyZWVfbG9jayglcCkgY2FsbGVkXG4iLCBsb2NrKSk7CiAKLSAgICBzdGF0dXMgPSBwdGhyZWFkX211dGV4X2Rlc3Ryb3koICZ0aGVsb2NrLT5tdXQgKTsKLSAgICBDSEVDS19TVEFUVVMoInB0aHJlYWRfbXV0ZXhfZGVzdHJveSIpOwotCisgICAgLyogc29tZSBwdGhyZWFkLWxpa2UgaW1wbGVtZW50YXRpb25zIHRpZSB0aGUgbXV0ZXggdG8gdGhlIGNvbmQKKyAgICAgKiBhbmQgbXVzdCBoYXZlIHRoZSBjb25kIGRlc3Ryb3llZCBmaXJzdC4KKyAgICAgKi8KICAgICBzdGF0dXMgPSBwdGhyZWFkX2NvbmRfZGVzdHJveSggJnRoZWxvY2stPmxvY2tfcmVsZWFzZWQgKTsKICAgICBDSEVDS19TVEFUVVMoInB0aHJlYWRfY29uZF9kZXN0cm95Iik7CiAKKyAgICBzdGF0dXMgPSBwdGhyZWFkX211dGV4X2Rlc3Ryb3koICZ0aGVsb2NrLT5tdXQgKTsKKyAgICBDSEVDS19TVEFUVVMoInB0aHJlYWRfbXV0ZXhfZGVzdHJveSIpOworCiAgICAgZnJlZSgodm9pZCAqKXRoZWxvY2spOwogfQogCkBAIC01MzcsMTIgKzUzNCwxMiBAQAogCiAgICAgdGhlbG9jay0+bG9ja2VkID0gMDsKIAotICAgIHN0YXR1cyA9IHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCAmdGhlbG9jay0+bXV0ICk7Ci0gICAgQ0hFQ0tfU1RBVFVTKCJwdGhyZWFkX211dGV4X3VubG9ja1szXSIpOwotCiAgICAgLyogd2FrZSB1cCBzb21lb25lIChhbnlvbmUsIGlmIGFueSkgd2FpdGluZyBvbiB0aGUgbG9jayAqLwogICAgIHN0YXR1cyA9IHB0aHJlYWRfY29uZF9zaWduYWwoICZ0aGVsb2NrLT5sb2NrX3JlbGVhc2VkICk7CiAgICAgQ0hFQ0tfU1RBVFVTKCJwdGhyZWFkX2NvbmRfc2lnbmFsIik7CisKKyAgICBzdGF0dXMgPSBwdGhyZWFkX211dGV4X3VubG9jayggJnRoZWxvY2stPm11dCApOworICAgIENIRUNLX1NUQVRVUygicHRocmVhZF9tdXRleF91bmxvY2tbM10iKTsKIH0KIAogI2VuZGlmIC8qIFVTRV9TRU1BUEhPUkVTICovCmRpZmYgLS1naXQgYS9QeXRob24vdGhyZWFkX3NnaS5oIGIvUHl0aG9uL3RocmVhZF9zZ2kuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzcxYWIyYy4uMDAwMDAwMAotLS0gYS9QeXRob24vdGhyZWFkX3NnaS5oCisrKyAvZGV2L251bGwKQEAgLTEsMjU5ICswLDAgQEAKLQotI2luY2x1ZGUgPHN0ZGxpYi5oPgotI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8c2lnbmFsLmg+Ci0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0jaW5jbHVkZSA8c3lzL3dhaXQuaD4KLSNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KLSNpbmNsdWRlIDx1bG9ja3MuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotCi0jZGVmaW5lIEhEUl9TSVpFICAgICAgICAyNjgwICAgIC8qIHNpemVvZih1c2hkcl90KSAqLwotI2RlZmluZSBNQVhQUk9DICAgICAgICAgMTAwICAgICAvKiBtYXggIyBvZiB0aHJlYWRzIHRoYXQgY2FuIGJlIHN0YXJ0ZWQgKi8KLQotc3RhdGljIHVzcHRyX3QgKnNoYXJlZF9hcmVuYTsKLXN0YXRpYyB1bG9ja190IGNvdW50X2xvY2s7ICAgICAgLyogcHJvdGVjdGlvbiBmb3Igc29tZSB2YXJpYWJsZXMgKi8KLXN0YXRpYyB1bG9ja190IHdhaXRfbG9jazsgICAgICAgLyogbG9jayB1c2VkIHRvIHdhaXQgZm9yIG90aGVyIHRocmVhZHMgKi8KLXN0YXRpYyBpbnQgd2FpdGluZ19mb3JfdGhyZWFkczsgLyogcHJvdGVjdGVkIGJ5IGNvdW50X2xvY2sgKi8KLXN0YXRpYyBpbnQgbnRocmVhZHM7ICAgICAgICAgICAgLyogcHJvdGVjdGVkIGJ5IGNvdW50X2xvY2sgKi8KLXN0YXRpYyBpbnQgZXhpdF9zdGF0dXM7Ci1zdGF0aWMgaW50IGV4aXRpbmc7ICAgICAgICAgICAgIC8qIHdlJ3JlIGFscmVhZHkgZXhpdGluZyAoZm9yIG1heWJlX2V4aXQpICovCi1zdGF0aWMgcGlkX3QgbXlfcGlkOyAgICAgICAgICAgIC8qIFBJRCBvZiBtYWluIHRocmVhZCAqLwotc3RhdGljIHN0cnVjdCBwaWRsaXN0IHsKLSAgICBwaWRfdCBwYXJlbnQ7Ci0gICAgcGlkX3QgY2hpbGQ7Ci19IHBpZGxpc3RbTUFYUFJPQ107ICAgICAvKiBQSURzIG9mIG90aGVyIHRocmVhZHM7IHByb3RlY3RlZCBieSBjb3VudF9sb2NrICovCi1zdGF0aWMgaW50IG1heHBpZGluZGV4OyAgICAgICAgIC8qICMgb2YgUElEcyBpbiBwaWRsaXN0ICovCi0vKgotICogSW5pdGlhbGl6YXRpb24uCi0gKi8KLXN0YXRpYyB2b2lkIFB5VGhyZWFkX19pbml0X3RocmVhZCh2b2lkKQotewotI2lmZGVmIFVTRV9ETAotICAgIGxvbmcgYWRkciwgc2l6ZTsKLSNlbmRpZiAvKiBVU0VfREwgKi8KLQotCi0jaWZkZWYgVVNFX0RMCi0gICAgaWYgKChzaXplID0gdXNjb25maWcoQ09ORl9JTklUU0laRSwgNjQqMTAyNCkpIDwgMCkKLSAgICAgICAgcGVycm9yKCJ1c2NvbmZpZyAtIENPTkZfSU5JVFNJWkUgKGNoZWNrKSIpOwotICAgIGlmICh1c2NvbmZpZyhDT05GX0lOSVRTSVpFLCBzaXplKSA8IDApCi0gICAgICAgIHBlcnJvcigidXNjb25maWcgLSBDT05GX0lOSVRTSVpFIChyZXNldCkiKTsKLSAgICBhZGRyID0gKGxvbmcpIGRsX2dldHJhbmdlKHNpemUgKyBIRFJfU0laRSk7Ci0gICAgZHByaW50ZigoInRyeWluZyB0byB1c2UgYWRkciAlcC0lcCBmb3Igc2hhcmVkIGFyZW5hXG4iLCBhZGRyLCBhZGRyK3NpemUpKTsKLSAgICBlcnJubyA9IDA7Ci0gICAgaWYgKChhZGRyID0gdXNjb25maWcoQ09ORl9BVFRBQ0hBRERSLCBhZGRyKSkgPCAwICYmIGVycm5vICE9IDApCi0gICAgICAgIHBlcnJvcigidXNjb25maWcgLSBDT05GX0FUVEFDSEFERFIgKHNldCkiKTsKLSNlbmRpZiAvKiBVU0VfREwgKi8KLSAgICBpZiAodXNjb25maWcoQ09ORl9JTklUVVNFUlMsIDE2KSA8IDApCi0gICAgICAgIHBlcnJvcigidXNjb25maWcgLSBDT05GX0lOSVRVU0VSUyIpOwotICAgIG15X3BpZCA9IGdldHBpZCgpOyAgICAgICAgICAvKiBzbyB0aGF0IHdlIGtub3cgd2hpY2ggaXMgdGhlIG1haW4gdGhyZWFkICovCi0gICAgaWYgKHVzY29uZmlnKENPTkZfQVJFTkFUWVBFLCBVU19TSEFSRURPTkxZKSA8IDApCi0gICAgICAgIHBlcnJvcigidXNjb25maWcgLSBDT05GX0FSRU5BVFlQRSIpOwotICAgIHVzY29uZmlnKENPTkZfTE9DS1RZUEUsIFVTX0RFQlVHKTsgLyogWFhYICovCi0jaWZkZWYgUHlfREVCVUcKLSAgICBpZiAodGhyZWFkX2RlYnVnICYgNCkKLSAgICAgICAgdXNjb25maWcoQ09ORl9MT0NLVFlQRSwgVVNfREVCVUdQTFVTKTsKLSAgICBlbHNlIGlmICh0aHJlYWRfZGVidWcgJiAyKQotICAgICAgICB1c2NvbmZpZyhDT05GX0xPQ0tUWVBFLCBVU19ERUJVRyk7Ci0jZW5kaWYgLyogUHlfREVCVUcgKi8KLSAgICBpZiAoKHNoYXJlZF9hcmVuYSA9IHVzaW5pdCh0bXBuYW0oMCkpKSA9PSAwKQotICAgICAgICBwZXJyb3IoInVzaW5pdCIpOwotI2lmZGVmIFVTRV9ETAotICAgIGlmICh1c2NvbmZpZyhDT05GX0FUVEFDSEFERFIsIGFkZHIpIDwgMCkgLyogcmVzZXQgYWRkcmVzcyAqLwotICAgICAgICBwZXJyb3IoInVzY29uZmlnIC0gQ09ORl9BVFRBQ0hBRERSIChyZXNldCkiKTsKLSNlbmRpZiAvKiBVU0VfREwgKi8KLSAgICBpZiAoKGNvdW50X2xvY2sgPSB1c25ld2xvY2soc2hhcmVkX2FyZW5hKSkgPT0gTlVMTCkKLSAgICAgICAgcGVycm9yKCJ1c25ld2xvY2sgKGNvdW50X2xvY2spIik7Ci0gICAgKHZvaWQpIHVzaW5pdGxvY2soY291bnRfbG9jayk7Ci0gICAgaWYgKCh3YWl0X2xvY2sgPSB1c25ld2xvY2soc2hhcmVkX2FyZW5hKSkgPT0gTlVMTCkKLSAgICAgICAgcGVycm9yKCJ1c25ld2xvY2sgKHdhaXRfbG9jaykiKTsKLSAgICBkcHJpbnRmKCgiYXJlbmEgc3RhcnQ6ICVwLCBhcmVuYSBzaXplOiAlbGRcbiIsICBzaGFyZWRfYXJlbmEsIChsb25nKSB1c2NvbmZpZyhDT05GX0dFVFNJWkUsIHNoYXJlZF9hcmVuYSkpKTsKLX0KLQotLyoKLSAqIFRocmVhZCBzdXBwb3J0LgotICovCi0KLXN0YXRpYyB2b2lkIGNsZWFuX3RocmVhZHModm9pZCkKLXsKLSAgICBpbnQgaSwgajsKLSAgICBwaWRfdCBteXBpZCwgcGlkOwotCi0gICAgLyogY2xlYW4gdXAgYW55IGV4aXRlZCB0aHJlYWRzICovCi0gICAgbXlwaWQgPSBnZXRwaWQoKTsKLSAgICBpID0gMDsKLSAgICB3aGlsZSAoaSA8IG1heHBpZGluZGV4KSB7Ci0gICAgICAgIGlmIChwaWRsaXN0W2ldLnBhcmVudCA9PSBteXBpZCAmJiAocGlkID0gcGlkbGlzdFtpXS5jaGlsZCkgPiAwKSB7Ci0gICAgICAgICAgICBwaWQgPSB3YWl0cGlkKHBpZCwgMCwgV05PSEFORyk7Ci0gICAgICAgICAgICBpZiAocGlkID4gMCkgewotICAgICAgICAgICAgICAgIC8qIGEgdGhyZWFkIGhhcyBleGl0ZWQgKi8KLSAgICAgICAgICAgICAgICBwaWRsaXN0W2ldID0gcGlkbGlzdFstLW1heHBpZGluZGV4XTsKLSAgICAgICAgICAgICAgICAvKiByZW1vdmUgcmVmZXJlbmNlcyB0byBjaGlsZHJlbiBvZiBkZWFkIHByb2MgKi8KLSAgICAgICAgICAgICAgICBmb3IgKGogPSAwOyBqIDwgbWF4cGlkaW5kZXg7IGorKykKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBpZGxpc3Rbal0ucGFyZW50ID09IHBpZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHBpZGxpc3Rbal0uY2hpbGQgPSAtMTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsgLyogZG9uJ3QgaW5jcmVtZW50IGkgKi8KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpKys7Ci0gICAgfQotICAgIC8qIGNsZWFuIHVwIHRoZSBsaXN0ICovCi0gICAgaSA9IDA7Ci0gICAgd2hpbGUgKGkgPCBtYXhwaWRpbmRleCkgewotICAgICAgICBpZiAocGlkbGlzdFtpXS5jaGlsZCA9PSAtMSkgewotICAgICAgICAgICAgcGlkbGlzdFtpXSA9IHBpZGxpc3RbLS1tYXhwaWRpbmRleF07Ci0gICAgICAgICAgICBjb250aW51ZTsgLyogZG9uJ3QgaW5jcmVtZW50IGkgKi8KLSAgICAgICAgfQotICAgICAgICBpKys7Ci0gICAgfQotfQotCi1sb25nIFB5VGhyZWFkX3N0YXJ0X25ld190aHJlYWQodm9pZCAoKmZ1bmMpKHZvaWQgKiksIHZvaWQgKmFyZykKLXsKLSNpZmRlZiBVU0VfREwKLSAgICBsb25nIGFkZHIsIHNpemU7Ci0gICAgc3RhdGljIGludCBsb2NhbF9pbml0aWFsaXplZCA9IDA7Ci0jZW5kaWYgLyogVVNFX0RMICovCi0gICAgaW50IHN1Y2Nlc3MgPSAwOyAgICAgICAgICAgIC8qIGluaXQgbm90IG5lZWRlZCB3aGVuIFNPTEFSSVNfVEhSRUFEUyBhbmQgKi8KLSAgICAgICAgICAgICAgICAvKiBDX1RIUkVBRFMgaW1wbGVtZW50ZWQgcHJvcGVybHkgKi8KLQotICAgIGRwcmludGYoKCJQeVRocmVhZF9zdGFydF9uZXdfdGhyZWFkIGNhbGxlZFxuIikpOwotICAgIGlmICghaW5pdGlhbGl6ZWQpCi0gICAgICAgIFB5VGhyZWFkX2luaXRfdGhyZWFkKCk7Ci0gICAgc3dpdGNoICh1c3NldGxvY2soY291bnRfbG9jaykpIHsKLSAgICBjYXNlIDA6IHJldHVybiAwOwotICAgIGNhc2UgLTE6IHBlcnJvcigidXNzZXRsb2NrIChjb3VudF9sb2NrKSIpOwotICAgIH0KLSAgICBpZiAobWF4cGlkaW5kZXggPj0gTUFYUFJPQykKLSAgICAgICAgc3VjY2VzcyA9IC0xOwotICAgIGVsc2UgewotI2lmZGVmIFVTRV9ETAotICAgICAgICBpZiAoIWxvY2FsX2luaXRpYWxpemVkKSB7Ci0gICAgICAgICAgICBpZiAoKHNpemUgPSB1c2NvbmZpZyhDT05GX0lOSVRTSVpFLCA2NCoxMDI0KSkgPCAwKQotICAgICAgICAgICAgICAgIHBlcnJvcigidXNjb25maWcgLSBDT05GX0lOSVRTSVpFIChjaGVjaykiKTsKLSAgICAgICAgICAgIGlmICh1c2NvbmZpZyhDT05GX0lOSVRTSVpFLCBzaXplKSA8IDApCi0gICAgICAgICAgICAgICAgcGVycm9yKCJ1c2NvbmZpZyAtIENPTkZfSU5JVFNJWkUgKHJlc2V0KSIpOwotICAgICAgICAgICAgYWRkciA9IChsb25nKSBkbF9nZXRyYW5nZShzaXplICsgSERSX1NJWkUpOwotICAgICAgICAgICAgZHByaW50ZigoInRyeWluZyB0byB1c2UgYWRkciAlcC0lcCBmb3Igc3Byb2NcbiIsCi0gICAgICAgICAgICAgICAgICAgICBhZGRyLCBhZGRyK3NpemUpKTsKLSAgICAgICAgICAgIGVycm5vID0gMDsKLSAgICAgICAgICAgIGlmICgoYWRkciA9IHVzY29uZmlnKENPTkZfQVRUQUNIQUREUiwgYWRkcikpIDwgMCAmJgotICAgICAgICAgICAgICAgIGVycm5vICE9IDApCi0gICAgICAgICAgICAgICAgcGVycm9yKCJ1c2NvbmZpZyAtIENPTkZfQVRUQUNIQUREUiAoc2V0KSIpOwotICAgICAgICB9Ci0jZW5kaWYgLyogVVNFX0RMICovCi0gICAgICAgIGNsZWFuX3RocmVhZHMoKTsKLSAgICAgICAgaWYgKChzdWNjZXNzID0gc3Byb2MoZnVuYywgUFJfU0FMTCwgYXJnKSkgPCAwKQotICAgICAgICAgICAgcGVycm9yKCJzcHJvYyIpOwotI2lmZGVmIFVTRV9ETAotICAgICAgICBpZiAoIWxvY2FsX2luaXRpYWxpemVkKSB7Ci0gICAgICAgICAgICBpZiAodXNjb25maWcoQ09ORl9BVFRBQ0hBRERSLCBhZGRyKSA8IDApCi0gICAgICAgICAgICAgICAgLyogcmVzZXQgYWRkcmVzcyAqLwotICAgICAgICAgICAgICAgIHBlcnJvcigidXNjb25maWcgLSBDT05GX0FUVEFDSEFERFIgKHJlc2V0KSIpOwotICAgICAgICAgICAgbG9jYWxfaW5pdGlhbGl6ZWQgPSAxOwotICAgICAgICB9Ci0jZW5kaWYgLyogVVNFX0RMICovCi0gICAgICAgIGlmIChzdWNjZXNzID49IDApIHsKLSAgICAgICAgICAgIG50aHJlYWRzKys7Ci0gICAgICAgICAgICBwaWRsaXN0W21heHBpZGluZGV4XS5wYXJlbnQgPSBnZXRwaWQoKTsKLSAgICAgICAgICAgIHBpZGxpc3RbbWF4cGlkaW5kZXgrK10uY2hpbGQgPSBzdWNjZXNzOwotICAgICAgICAgICAgZHByaW50ZigoInBpZGxpc3RbJWRdID0gJWRcbiIsCi0gICAgICAgICAgICAgICAgICAgICBtYXhwaWRpbmRleC0xLCBzdWNjZXNzKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKHVzdW5zZXRsb2NrKGNvdW50X2xvY2spIDwgMCkKLSAgICAgICAgcGVycm9yKCJ1c3Vuc2V0bG9jayAoY291bnRfbG9jaykiKTsKLSAgICByZXR1cm4gc3VjY2VzczsKLX0KLQotbG9uZyBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KHZvaWQpCi17Ci0gICAgcmV0dXJuIGdldHBpZCgpOwotfQotCi12b2lkIFB5VGhyZWFkX2V4aXRfdGhyZWFkKHZvaWQpCi17Ci0gICAgZHByaW50ZigoIlB5VGhyZWFkX2V4aXRfdGhyZWFkIGNhbGxlZFxuIikpOwotICAgIGlmICghaW5pdGlhbGl6ZWQpCi0gICAgICAgIGV4aXQoMCk7Ci0gICAgaWYgKHVzc2V0bG9jayhjb3VudF9sb2NrKSA8IDApCi0gICAgICAgIHBlcnJvcigidXNzZXRsb2NrIChjb3VudF9sb2NrKSIpOwotICAgIG50aHJlYWRzLS07Ci0gICAgaWYgKGdldHBpZCgpID09IG15X3BpZCkgewotICAgICAgICAvKiBtYWluIHRocmVhZDsgd2FpdCBmb3Igb3RoZXIgdGhyZWFkcyB0byBleGl0ICovCi0gICAgICAgIGV4aXRpbmcgPSAxOwotICAgICAgICB3YWl0aW5nX2Zvcl90aHJlYWRzID0gMTsKLSAgICAgICAgaWYgKHVzc2V0bG9jayh3YWl0X2xvY2spIDwgMCkKLSAgICAgICAgICAgIHBlcnJvcigidXNzZXRsb2NrICh3YWl0X2xvY2spIik7Ci0gICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgIGlmIChudGhyZWFkcyA8IDApIHsKLSAgICAgICAgICAgICAgICBkcHJpbnRmKCgicmVhbGx5IGV4aXQgKCVkKVxuIiwgZXhpdF9zdGF0dXMpKTsKLSAgICAgICAgICAgICAgICBleGl0KGV4aXRfc3RhdHVzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICh1c3Vuc2V0bG9jayhjb3VudF9sb2NrKSA8IDApCi0gICAgICAgICAgICAgICAgcGVycm9yKCJ1c3Vuc2V0bG9jayAoY291bnRfbG9jaykiKTsKLSAgICAgICAgICAgIGRwcmludGYoKCJ3YWl0aW5nIGZvciBvdGhlciB0aHJlYWRzICglZClcbiIsIG50aHJlYWRzKSk7Ci0gICAgICAgICAgICBpZiAodXNzZXRsb2NrKHdhaXRfbG9jaykgPCAwKQotICAgICAgICAgICAgICAgIHBlcnJvcigidXNzZXRsb2NrICh3YWl0X2xvY2spIik7Ci0gICAgICAgICAgICBpZiAodXNzZXRsb2NrKGNvdW50X2xvY2spIDwgMCkKLSAgICAgICAgICAgICAgICBwZXJyb3IoInVzc2V0bG9jayAoY291bnRfbG9jaykiKTsKLSAgICAgICAgfQotICAgIH0KLSAgICAvKiBub3QgdGhlIG1haW4gdGhyZWFkICovCi0gICAgaWYgKHdhaXRpbmdfZm9yX3RocmVhZHMpIHsKLSAgICAgICAgZHByaW50ZigoIm1haW4gdGhyZWFkIGlzIHdhaXRpbmdcbiIpKTsKLSAgICAgICAgaWYgKHVzdW5zZXRsb2NrKHdhaXRfbG9jaykgPCAwKQotICAgICAgICAgICAgcGVycm9yKCJ1c3Vuc2V0bG9jayAod2FpdF9sb2NrKSIpOwotICAgIH0KLSAgICBpZiAodXN1bnNldGxvY2soY291bnRfbG9jaykgPCAwKQotICAgICAgICBwZXJyb3IoInVzdW5zZXRsb2NrIChjb3VudF9sb2NrKSIpOwotICAgIF9leGl0KDApOwotfQotCi0vKgotICogTG9jayBzdXBwb3J0LgotICovCi1QeVRocmVhZF90eXBlX2xvY2sgUHlUaHJlYWRfYWxsb2NhdGVfbG9jayh2b2lkKQotewotICAgIHVsb2NrX3QgbG9jazsKLQotICAgIGRwcmludGYoKCJQeVRocmVhZF9hbGxvY2F0ZV9sb2NrIGNhbGxlZFxuIikpOwotICAgIGlmICghaW5pdGlhbGl6ZWQpCi0gICAgICAgIFB5VGhyZWFkX2luaXRfdGhyZWFkKCk7Ci0KLSAgICBpZiAoKGxvY2sgPSB1c25ld2xvY2soc2hhcmVkX2FyZW5hKSkgPT0gTlVMTCkKLSAgICAgICAgcGVycm9yKCJ1c25ld2xvY2siKTsKLSAgICAodm9pZCkgdXNpbml0bG9jayhsb2NrKTsKLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfYWxsb2NhdGVfbG9jaygpIC0+ICVwXG4iLCBsb2NrKSk7Ci0gICAgcmV0dXJuIChQeVRocmVhZF90eXBlX2xvY2spIGxvY2s7Ci19Ci0KLXZvaWQgUHlUaHJlYWRfZnJlZV9sb2NrKFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrKQotewotICAgIGRwcmludGYoKCJQeVRocmVhZF9mcmVlX2xvY2soJXApIGNhbGxlZFxuIiwgbG9jaykpOwotICAgIHVzZnJlZWxvY2soKHVsb2NrX3QpIGxvY2ssIHNoYXJlZF9hcmVuYSk7Ci19Ci0KLWludCBQeVRocmVhZF9hY3F1aXJlX2xvY2soUHlUaHJlYWRfdHlwZV9sb2NrIGxvY2ssIGludCB3YWl0ZmxhZykKLXsKLSAgICBpbnQgc3VjY2VzczsKLQotICAgIGRwcmludGYoKCJQeVRocmVhZF9hY3F1aXJlX2xvY2soJXAsICVkKSBjYWxsZWRcbiIsIGxvY2ssIHdhaXRmbGFnKSk7Ci0gICAgZXJybm8gPSAwOyAgICAgICAgICAgICAgICAgIC8qIGNsZWFyIGl0IGp1c3QgaW4gY2FzZSAqLwotICAgIGlmICh3YWl0ZmxhZykKLSAgICAgICAgc3VjY2VzcyA9IHVzc2V0bG9jaygodWxvY2tfdCkgbG9jayk7Ci0gICAgZWxzZQotICAgICAgICBzdWNjZXNzID0gdXNjc2V0bG9jaygodWxvY2tfdCkgbG9jaywgMSk7IC8qIFRyeSBpdCBvbmNlICovCi0gICAgaWYgKHN1Y2Nlc3MgPCAwKQotICAgICAgICBwZXJyb3Iod2FpdGZsYWcgPyAidXNzZXRsb2NrIiA6ICJ1c2NzZXRsb2NrIik7Ci0gICAgZHByaW50ZigoIlB5VGhyZWFkX2FjcXVpcmVfbG9jayglcCwgJWQpIC0+ICVkXG4iLCBsb2NrLCB3YWl0ZmxhZywgc3VjY2VzcykpOwotICAgIHJldHVybiBzdWNjZXNzOwotfQotCi12b2lkIFB5VGhyZWFkX3JlbGVhc2VfbG9jayhQeVRocmVhZF90eXBlX2xvY2sgbG9jaykKLXsKLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfcmVsZWFzZV9sb2NrKCVwKSBjYWxsZWRcbiIsIGxvY2spKTsKLSAgICBpZiAodXN1bnNldGxvY2soKHVsb2NrX3QpIGxvY2spIDwgMCkKLSAgICAgICAgcGVycm9yKCJ1c3Vuc2V0bG9jayIpOwotfQpkaWZmIC0tZ2l0IGEvUHl0aG9uL3RocmVhZF9zb2xhcmlzLmggYi9QeXRob24vdGhyZWFkX3NvbGFyaXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWNlMWNmYy4uMDAwMDAwMAotLS0gYS9QeXRob24vdGhyZWFkX3NvbGFyaXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDEzMCArMCwwIEBACi0KLSNpbmNsdWRlIDxzdGRsaWIuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2luY2x1ZGUgPGVycm5vLmg+Ci0jaW5jbHVkZSA8L3Vzci9pbmNsdWRlL3RocmVhZC5oPgotI3VuZGVmIF9QT1NJWF9USFJFQURTCi0KLQotLyoKLSAqIEluaXRpYWxpemF0aW9uLgotICovCi1zdGF0aWMgdm9pZCBQeVRocmVhZF9faW5pdF90aHJlYWQodm9pZCkKLXsKLX0KLQotLyoKLSAqIFRocmVhZCBzdXBwb3J0LgotICovCi1zdHJ1Y3QgZnVuY19hcmcgewotICAgIHZvaWQgKCpmdW5jKSh2b2lkICopOwotICAgIHZvaWQgKmFyZzsKLX07Ci0KLXN0YXRpYyB2b2lkICoKLW5ld19mdW5jKHZvaWQgKmZ1bmNhcmcpCi17Ci0gICAgdm9pZCAoKmZ1bmMpKHZvaWQgKik7Ci0gICAgdm9pZCAqYXJnOwotCi0gICAgZnVuYyA9ICgoc3RydWN0IGZ1bmNfYXJnICopIGZ1bmNhcmcpLT5mdW5jOwotICAgIGFyZyA9ICgoc3RydWN0IGZ1bmNfYXJnICopIGZ1bmNhcmcpLT5hcmc7Ci0gICAgZnJlZShmdW5jYXJnKTsKLSAgICAoKmZ1bmMpKGFyZyk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLQotbG9uZwotUHlUaHJlYWRfc3RhcnRfbmV3X3RocmVhZCh2b2lkICgqZnVuYykodm9pZCAqKSwgdm9pZCAqYXJnKQotewotICAgIHRocmVhZF90IHRpZDsKLSAgICBzdHJ1Y3QgZnVuY19hcmcgKmZ1bmNhcmc7Ci0KLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfc3RhcnRfbmV3X3RocmVhZCBjYWxsZWRcbiIpKTsKLSAgICBpZiAoIWluaXRpYWxpemVkKQotICAgICAgICBQeVRocmVhZF9pbml0X3RocmVhZCgpOwotICAgIGZ1bmNhcmcgPSAoc3RydWN0IGZ1bmNfYXJnICopIG1hbGxvYyhzaXplb2Yoc3RydWN0IGZ1bmNfYXJnKSk7Ci0gICAgZnVuY2FyZy0+ZnVuYyA9IGZ1bmM7Ci0gICAgZnVuY2FyZy0+YXJnID0gYXJnOwotICAgIGlmICh0aHJfY3JlYXRlKDAsIDAsIG5ld19mdW5jLCBmdW5jYXJnLAotICAgICAgICAgICAgICAgICAgIFRIUl9ERVRBQ0hFRCB8IFRIUl9ORVdfTFdQLCAmdGlkKSkgewotICAgICAgICBwZXJyb3IoInRocl9jcmVhdGUiKTsKLSAgICAgICAgZnJlZSgodm9pZCAqKSBmdW5jYXJnKTsKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIH0KLSAgICByZXR1cm4gdGlkOwotfQotCi1sb25nCi1QeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KHZvaWQpCi17Ci0gICAgaWYgKCFpbml0aWFsaXplZCkKLSAgICAgICAgUHlUaHJlYWRfaW5pdF90aHJlYWQoKTsKLSAgICByZXR1cm4gdGhyX3NlbGYoKTsKLX0KLQotdm9pZAotUHlUaHJlYWRfZXhpdF90aHJlYWQodm9pZCkKLXsKLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfZXhpdF90aHJlYWQgY2FsbGVkXG4iKSk7Ci0gICAgaWYgKCFpbml0aWFsaXplZCkKLSAgICAgICAgZXhpdCgwKTsKLSAgICB0aHJfZXhpdCgwKTsKLX0KLQotLyoKLSAqIExvY2sgc3VwcG9ydC4KLSAqLwotUHlUaHJlYWRfdHlwZV9sb2NrCi1QeVRocmVhZF9hbGxvY2F0ZV9sb2NrKHZvaWQpCi17Ci0gICAgbXV0ZXhfdCAqbG9jazsKLQotICAgIGRwcmludGYoKCJQeVRocmVhZF9hbGxvY2F0ZV9sb2NrIGNhbGxlZFxuIikpOwotICAgIGlmICghaW5pdGlhbGl6ZWQpCi0gICAgICAgIFB5VGhyZWFkX2luaXRfdGhyZWFkKCk7Ci0KLSAgICBsb2NrID0gKG11dGV4X3QgKikgbWFsbG9jKHNpemVvZihtdXRleF90KSk7Ci0gICAgaWYgKG11dGV4X2luaXQobG9jaywgVVNZTkNfVEhSRUFELCAwKSkgewotICAgICAgICBwZXJyb3IoIm11dGV4X2luaXQiKTsKLSAgICAgICAgZnJlZSgodm9pZCAqKSBsb2NrKTsKLSAgICAgICAgbG9jayA9IDA7Ci0gICAgfQotICAgIGRwcmludGYoKCJQeVRocmVhZF9hbGxvY2F0ZV9sb2NrKCkgLT4gJXBcbiIsIGxvY2spKTsKLSAgICByZXR1cm4gKFB5VGhyZWFkX3R5cGVfbG9jaykgbG9jazsKLX0KLQotdm9pZAotUHlUaHJlYWRfZnJlZV9sb2NrKFB5VGhyZWFkX3R5cGVfbG9jayBsb2NrKQotewotICAgIGRwcmludGYoKCJQeVRocmVhZF9mcmVlX2xvY2soJXApIGNhbGxlZFxuIiwgbG9jaykpOwotICAgIG11dGV4X2Rlc3Ryb3koKG11dGV4X3QgKikgbG9jayk7Ci0gICAgZnJlZSgodm9pZCAqKSBsb2NrKTsKLX0KLQotaW50Ci1QeVRocmVhZF9hY3F1aXJlX2xvY2soUHlUaHJlYWRfdHlwZV9sb2NrIGxvY2ssIGludCB3YWl0ZmxhZykKLXsKLSAgICBpbnQgc3VjY2VzczsKLQotICAgIGRwcmludGYoKCJQeVRocmVhZF9hY3F1aXJlX2xvY2soJXAsICVkKSBjYWxsZWRcbiIsIGxvY2ssIHdhaXRmbGFnKSk7Ci0gICAgaWYgKHdhaXRmbGFnKQotICAgICAgICBzdWNjZXNzID0gbXV0ZXhfbG9jaygobXV0ZXhfdCAqKSBsb2NrKTsKLSAgICBlbHNlCi0gICAgICAgIHN1Y2Nlc3MgPSBtdXRleF90cnlsb2NrKChtdXRleF90ICopIGxvY2spOwotICAgIGlmIChzdWNjZXNzIDwgMCkKLSAgICAgICAgcGVycm9yKHdhaXRmbGFnID8gIm11dGV4X2xvY2siIDogIm11dGV4X3RyeWxvY2siKTsKLSAgICBlbHNlCi0gICAgICAgIHN1Y2Nlc3MgPSAhc3VjY2VzczsgLyogc29sYXJpcyBkb2VzIGl0IHRoZSBvdGhlciB3YXkgcm91bmQgKi8KLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfYWNxdWlyZV9sb2NrKCVwLCAlZCkgLT4gJWRcbiIsIGxvY2ssIHdhaXRmbGFnLCBzdWNjZXNzKSk7Ci0gICAgcmV0dXJuIHN1Y2Nlc3M7Ci19Ci0KLXZvaWQKLVB5VGhyZWFkX3JlbGVhc2VfbG9jayhQeVRocmVhZF90eXBlX2xvY2sgbG9jaykKLXsKLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfcmVsZWFzZV9sb2NrKCVwKSBjYWxsZWRcbiIsIGxvY2spKTsKLSAgICBpZiAobXV0ZXhfdW5sb2NrKChtdXRleF90ICopIGxvY2spKQotICAgICAgICBwZXJyb3IoIm11dGV4X3VubG9jayIpOwotfQpkaWZmIC0tZ2l0IGEvUHl0aG9uL3RocmVhZF93aW5jZS5oIGIvUHl0aG9uL3RocmVhZF93aW5jZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MWRkYzAyLi4wMDAwMDAwCi0tLSBhL1B5dGhvbi90aHJlYWRfd2luY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0KLS8qIFRoaXMgY29kZSBpbXBsZW1lbnRlZCBieSBNYXJrIEhhbW1vbmQgKE1IYW1tb25kQHNraXBwaW5ldC5jb20uYXUpICovCi0KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0jaW5jbHVkZSA8bGltaXRzLmg+Ci0jaW5jbHVkZSA8cHlkZWJ1Zy5oPgotCi1sb25nIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQodm9pZCk7Ci0KLS8qCi0gKiBDaGFuZ2UgYWxsIGhlYWRlcnMgdG8gcHVyZSBBTlNJIGFzIG5vIG9uZSB3aWxsIHVzZSBLJlIgc3R5bGUgb24gYW4KLSAqIE5UCi0gKi8KLQotLyoKLSAqIEluaXRpYWxpemF0aW9uIG9mIHRoZSBDIHBhY2thZ2UsIHNob3VsZCBub3QgYmUgbmVlZGVkLgotICovCi1zdGF0aWMgdm9pZCBQeVRocmVhZF9faW5pdF90aHJlYWQodm9pZCkKLXsKLX0KLQotLyoKLSAqIFRocmVhZCBzdXBwb3J0LgotICovCi1sb25nIFB5VGhyZWFkX3N0YXJ0X25ld190aHJlYWQodm9pZCAoKmZ1bmMpKHZvaWQgKiksIHZvaWQgKmFyZykKLXsKLSAgICBsb25nIHJ2OwotICAgIGludCBzdWNjZXNzID0gLTE7Ci0KLSAgICBkcHJpbnRmKCgiJWxkOiBQeVRocmVhZF9zdGFydF9uZXdfdGhyZWFkIGNhbGxlZFxuIiwgUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCgpKSk7Ci0gICAgaWYgKCFpbml0aWFsaXplZCkKLSAgICAgICAgUHlUaHJlYWRfaW5pdF90aHJlYWQoKTsKLQotICAgIHJ2ID0gX2JlZ2ludGhyZWFkKGZ1bmMsIDAsIGFyZyk7IC8qIHVzZSBkZWZhdWx0IHN0YWNrIHNpemUgKi8KLQotICAgIGlmIChydiAhPSAtMSkgewotICAgICAgICBzdWNjZXNzID0gMDsKLSAgICAgICAgZHByaW50ZigoIiVsZDogUHlUaHJlYWRfc3RhcnRfbmV3X3RocmVhZCBzdWNjZWVkZWQ6XG4iLCBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KCkpKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3VjY2VzczsKLX0KLQotLyoKLSAqIFJldHVybiB0aGUgdGhyZWFkIElkIGluc3RlYWQgb2YgYW4gaGFuZGxlLiBUaGUgSWQgaXMgc2FpZCB0byB1bmlxdWVseSBpZGVudGlmeSB0aGUKLSAqIHRocmVhZCBpbiB0aGUgc3lzdGVtCi0gKi8KLWxvbmcgUHlUaHJlYWRfZ2V0X3RocmVhZF9pZGVudCh2b2lkKQotewotICAgIGlmICghaW5pdGlhbGl6ZWQpCi0gICAgICAgIFB5VGhyZWFkX2luaXRfdGhyZWFkKCk7Ci0KLSAgICByZXR1cm4gR2V0Q3VycmVudFRocmVhZElkKCk7Ci19Ci0KLXZvaWQgUHlUaHJlYWRfZXhpdF90aHJlYWQodm9pZCkKLXsKLSAgICBkcHJpbnRmKCgiJWxkOiBQeVRocmVhZF9leGl0X3RocmVhZCBjYWxsZWRcbiIsIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKSkpOwotICAgIGlmICghaW5pdGlhbGl6ZWQpCi0gICAgICAgIGV4aXQoMCk7Ci0gICAgX2VuZHRocmVhZCgpOwotfQotCi0vKgotICogTG9jayBzdXBwb3J0LiBJdCBoYXMgdG8gYmUgaW1wbGVtZW50ZWQgdXNpbmcgTXV0ZXhlcywgYXMKLSAqIENFIGRvZXNudCBzdXBwb3J0IHNlbWFwaG9yZXMuICBUaGVyZWZvcmUgd2UgdXNlIHNvbWUgaGFja3MgdG8KLSAqIHNpbXVsYXRlIHRoZSBub24gcmVlbnRyYW50IHJlcXVpcmVtZW50cyBvZiBQeXRob24gbG9ja3MKLSAqLwotUHlUaHJlYWRfdHlwZV9sb2NrIFB5VGhyZWFkX2FsbG9jYXRlX2xvY2sodm9pZCkKLXsKLSAgICBIQU5ETEUgYUxvY2s7Ci0KLSAgICBkcHJpbnRmKCgiUHlUaHJlYWRfYWxsb2NhdGVfbG9jayBjYWxsZWRcbiIpKTsKLSAgICBpZiAoIWluaXRpYWxpemVkKQotICAgIFB5VGhyZWFkX2luaXRfdGhyZWFkKCk7Ci0KLSAgICBhTG9jayA9IENyZWF0ZUV2ZW50KE5VTEwsICAgICAgICAgICAvKiBTZWN1cml0eSBhdHRyaWJ1dGVzICAgICAgKi8KLSAgICAgICAgICAgIDAsICAgICAgICAgICAgICAvKiBNYW51YWwtUmVzZXQgICAgICAgICAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICAgICAgMSwgICAgICAgICAgICAgIC8qIElzIGluaXRpYWxseSBzaWduYWxsZWQgICovCi0gICAgICAgICAgICBOVUxMKTsgICAgICAgICAgLyogTmFtZSBvZiBldmVudCAgICAgICAgICAgICovCi0KLSAgICBkcHJpbnRmKCgiJWxkOiBQeVRocmVhZF9hbGxvY2F0ZV9sb2NrKCkgLT4gJXBcbiIsIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKSwgYUxvY2spKTsKLQotICAgIHJldHVybiAoUHlUaHJlYWRfdHlwZV9sb2NrKSBhTG9jazsKLX0KLQotdm9pZCBQeVRocmVhZF9mcmVlX2xvY2soUHlUaHJlYWRfdHlwZV9sb2NrIGFMb2NrKQotewotICAgIGRwcmludGYoKCIlbGQ6IFB5VGhyZWFkX2ZyZWVfbG9jayglcCkgY2FsbGVkXG4iLCBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KCksYUxvY2spKTsKLQotICAgIENsb3NlSGFuZGxlKGFMb2NrKTsKLX0KLQotLyoKLSAqIFJldHVybiAxIG9uIHN1Y2Nlc3MgaWYgdGhlIGxvY2sgd2FzIGFjcXVpcmVkCi0gKgotICogYW5kIDAgaWYgdGhlIGxvY2sgd2FzIG5vdCBhY3F1aXJlZC4gVGhpcyBtZWFucyBhIDAgaXMgcmV0dXJuZWQKLSAqIGlmIHRoZSBsb2NrIGhhcyBhbHJlYWR5IGJlZW4gYWNxdWlyZWQgYnkgdGhpcyB0aHJlYWQhCi0gKi8KLWludCBQeVRocmVhZF9hY3F1aXJlX2xvY2soUHlUaHJlYWRfdHlwZV9sb2NrIGFMb2NrLCBpbnQgd2FpdGZsYWcpCi17Ci0gICAgaW50IHN1Y2Nlc3MgPSAxOwotICAgIERXT1JEIHdhaXRSZXN1bHQ7Ci0KLSAgICBkcHJpbnRmKCgiJWxkOiBQeVRocmVhZF9hY3F1aXJlX2xvY2soJXAsICVkKSBjYWxsZWRcbiIsIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKSxhTG9jaywgd2FpdGZsYWcpKTsKLQotI2lmbmRlZiBERUJVRwotICAgIHdhaXRSZXN1bHQgPSBXYWl0Rm9yU2luZ2xlT2JqZWN0KGFMb2NrLCAod2FpdGZsYWcgPyBJTkZJTklURSA6IDApKTsKLSNlbHNlCi0gICAgLyogVG8gYWlkIGluIGRlYnVnZ2luZywgd2UgcmVndWxhcmx5IHdha2UgdXAuICBUaGlzIGFsbG93cyB1cyB0bwotICAgIGJyZWFrIGludG8gdGhlIGRlYnVnZ2VyICovCi0gICAgd2hpbGUgKFRSVUUpIHsKLSAgICAgICAgd2FpdFJlc3VsdCA9IFdhaXRGb3JTaW5nbGVPYmplY3QoYUxvY2ssIHdhaXRmbGFnID8gMzAwMCA6IDApOwotICAgICAgICBpZiAod2FpdGZsYWc9PTAgfHwgKHdhaXRmbGFnICYmIHdhaXRSZXN1bHQgPT0gV0FJVF9PQkpFQ1RfMCkpCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGlmICh3YWl0UmVzdWx0ICE9IFdBSVRfT0JKRUNUXzApIHsKLSAgICAgICAgICAgICAgICBzdWNjZXNzID0gMDsgICAgLyogV2UgZmFpbGVkICovCi0gICAgfQotCi0gICAgZHByaW50ZigoIiVsZDogUHlUaHJlYWRfYWNxdWlyZV9sb2NrKCVwLCAlZCkgLT4gJWRcbiIsIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKSxhTG9jaywgd2FpdGZsYWcsIHN1Y2Nlc3MpKTsKLQotICAgIHJldHVybiBzdWNjZXNzOwotfQotCi12b2lkIFB5VGhyZWFkX3JlbGVhc2VfbG9jayhQeVRocmVhZF90eXBlX2xvY2sgYUxvY2spCi17Ci0gICAgZHByaW50ZigoIiVsZDogUHlUaHJlYWRfcmVsZWFzZV9sb2NrKCVwKSBjYWxsZWRcbiIsIFB5VGhyZWFkX2dldF90aHJlYWRfaWRlbnQoKSxhTG9jaykpOwotCi0gICAgaWYgKCFTZXRFdmVudChhTG9jaykpCi0gICAgZHByaW50ZigoIiVsZDogQ291bGQgbm90IFB5VGhyZWFkX3JlbGVhc2VfbG9jayglcCkgZXJyb3I6ICVsXG4iLCBQeVRocmVhZF9nZXRfdGhyZWFkX2lkZW50KCksIGFMb2NrLCBHZXRMYXN0RXJyb3IoKSkpOwotfQotCi0KZGlmZiAtLWdpdCBhL1B5dGhvbi90cmFjZWJhY2suYyBiL1B5dGhvbi90cmFjZWJhY2suYwppbmRleCA1OWJiM2YwLi5jOGIzZWUxIDEwMDY0NAotLS0gYS9QeXRob24vdHJhY2ViYWNrLmMKKysrIGIvUHl0aG9uL3RyYWNlYmFjay5jCkBAIC0xMyw4ICsxMywxMyBAQAogCiAjZGVmaW5lIE9GRih4KSBvZmZzZXRvZihQeVRyYWNlYmFja09iamVjdCwgeCkKIAotLyogTWV0aG9kIGZyb20gUGFyc2VyL3Rva2VuaXplci5jICovCi1leHRlcm4gY2hhciAqIFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZyhpbnQpOworI2RlZmluZSBQVVRTKGZkLCBzdHIpIHdyaXRlKGZkLCBzdHIsIHN0cmxlbihzdHIpKQorI2RlZmluZSBNQVhfU1RSSU5HX0xFTkdUSCAxMDAKKyNkZWZpbmUgTUFYX0ZSQU1FX0RFUFRIIDEwMAorI2RlZmluZSBNQVhfTlRIUkVBRFMgMTAwCisKKy8qIEZ1bmN0aW9uIGZyb20gUGFyc2VyL3Rva2VuaXplci5jICovCitleHRlcm4gY2hhciAqIFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZ0ZpbGVuYW1lKGludCwgUHlPYmplY3QgKik7CiAKIHN0YXRpYyBQeU9iamVjdCAqCiB0Yl9kaXIoUHlUcmFjZWJhY2tPYmplY3QgKnNlbGYpCkBAIC0xNDcsNiArMTUyLDcgQEAKICAgICBjb25zdCBjaGFyKiBmaWxlcGF0aDsKICAgICBQeV9zc2l6ZV90IGxlbjsKICAgICBQeU9iamVjdCogcmVzdWx0OworICAgIF9QeV9JREVOVElGSUVSKG9wZW4pOwogCiAgICAgZmlsZWJ5dGVzID0gUHlVbmljb2RlX0VuY29kZUZTRGVmYXVsdChmaWxlbmFtZSk7CiAgICAgaWYgKGZpbGVieXRlcyA9PSBOVUxMKSB7CkBAIC0xOTQsNyArMjAwLDcgQEAKICAgICAgICAgICAgIG5hbWVidWZbbGVuKytdID0gU0VQOwogICAgICAgICBzdHJjcHkobmFtZWJ1ZitsZW4sIHRhaWwpOwogCi0gICAgICAgIGJpbmFyeSA9IFB5T2JqZWN0X0NhbGxNZXRob2QoaW8sICJvcGVuIiwgInNzIiwgbmFtZWJ1ZiwgInJiIik7CisgICAgICAgIGJpbmFyeSA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoaW8sICZQeUlkX29wZW4sICJzcyIsIG5hbWVidWYsICJyYiIpOwogICAgICAgICBpZiAoYmluYXJ5ICE9IE5VTEwpIHsKICAgICAgICAgICAgIHJlc3VsdCA9IGJpbmFyeTsKICAgICAgICAgICAgIGdvdG8gZmluYWxseTsKQEAgLTIyNCw4ICsyMzAsMTEgQEAKICAgICBQeU9iamVjdCAqbGluZW9iaiA9IE5VTEw7CiAgICAgUHlPYmplY3QgKnJlczsKICAgICBjaGFyIGJ1ZltNQVhQQVRITEVOKzFdOwotICAgIFB5X1VOSUNPREUgKnUsICpwOwotICAgIFB5X3NzaXplX3QgbGVuOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGE7CisgICAgX1B5X0lERU5USUZJRVIoY2xvc2UpOworICAgIF9QeV9JREVOVElGSUVSKG9wZW4pOworICAgIF9QeV9JREVOVElGSUVSKFRleHRJT1dyYXBwZXIpOwogCiAgICAgLyogb3BlbiB0aGUgZmlsZSAqLwogICAgIGlmIChmaWxlbmFtZSA9PSBOVUxMKQpAQCAtMjM0LDcgKzI0Myw3IEBACiAgICAgaW8gPSBQeUltcG9ydF9JbXBvcnRNb2R1bGVOb0Jsb2NrKCJpbyIpOwogICAgIGlmIChpbyA9PSBOVUxMKQogICAgICAgICByZXR1cm4gLTE7Ci0gICAgYmluYXJ5ID0gUHlPYmplY3RfQ2FsbE1ldGhvZChpbywgIm9wZW4iLCAiT3MiLCBmaWxlbmFtZSwgInJiIik7CisgICAgYmluYXJ5ID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChpbywgJlB5SWRfb3BlbiwgIk9zIiwgZmlsZW5hbWUsICJyYiIpOwogCiAgICAgaWYgKGJpbmFyeSA9PSBOVUxMKSB7CiAgICAgICAgIGJpbmFyeSA9IF9QeV9GaW5kU291cmNlRmlsZShmaWxlbmFtZSwgYnVmLCBzaXplb2YoYnVmKSwgaW8pOwpAQCAtMjQ2LDEwICsyNTUsMTAgQEAKIAogICAgIC8qIHVzZSB0aGUgcmlnaHQgZW5jb2RpbmcgdG8gZGVjb2RlIHRoZSBmaWxlIGFzIHVuaWNvZGUgKi8KICAgICBmZCA9IFB5T2JqZWN0X0FzRmlsZURlc2NyaXB0b3IoYmluYXJ5KTsKLSAgICBmb3VuZF9lbmNvZGluZyA9IFB5VG9rZW5pemVyX0ZpbmRFbmNvZGluZyhmZCk7CisgICAgZm91bmRfZW5jb2RpbmcgPSBQeVRva2VuaXplcl9GaW5kRW5jb2RpbmdGaWxlbmFtZShmZCwgZmlsZW5hbWUpOwogICAgIGVuY29kaW5nID0gKGZvdW5kX2VuY29kaW5nICE9IE5VTEwpID8gZm91bmRfZW5jb2RpbmcgOiAidXRmLTgiOwogICAgIGxzZWVrKGZkLCAwLCAwKTsgLyogUmVzZXQgcG9zaXRpb24gKi8KLSAgICBmb2IgPSBQeU9iamVjdF9DYWxsTWV0aG9kKGlvLCAiVGV4dElPV3JhcHBlciIsICJPcyIsIGJpbmFyeSwgZW5jb2RpbmcpOworICAgIGZvYiA9IF9QeU9iamVjdF9DYWxsTWV0aG9kSWQoaW8sICZQeUlkX1RleHRJT1dyYXBwZXIsICJPcyIsIGJpbmFyeSwgZW5jb2RpbmcpOwogICAgIFB5X0RFQ1JFRihpbyk7CiAgICAgUHlfREVDUkVGKGJpbmFyeSk7CiAgICAgUHlNZW1fRlJFRShmb3VuZF9lbmNvZGluZyk7CkBAIC0yNjgsNyArMjc3LDcgQEAKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQotICAgIHJlcyA9IFB5T2JqZWN0X0NhbGxNZXRob2QoZm9iLCAiY2xvc2UiLCAiIik7CisgICAgcmVzID0gX1B5T2JqZWN0X0NhbGxNZXRob2RJZChmb2IsICZQeUlkX2Nsb3NlLCAiIik7CiAgICAgaWYgKHJlcykKICAgICAgICAgUHlfREVDUkVGKHJlcyk7CiAgICAgZWxzZQpAQCAtMjgwLDEzICsyODksMTYgQEAKICAgICB9CiAKICAgICAvKiByZW1vdmUgdGhlIGluZGVudGF0aW9uIG9mIHRoZSBsaW5lICovCi0gICAgdSA9IFB5VW5pY29kZV9BU19VTklDT0RFKGxpbmVvYmopOwotICAgIGxlbiA9IFB5VW5pY29kZV9HRVRfU0laRShsaW5lb2JqKTsKLSAgICBmb3IgKHA9dTsgKnAgPT0gJyAnIHx8ICpwID09ICdcdCcgfHwgKnAgPT0gJ1wwMTQnOyBwKyspCi0gICAgICAgIGxlbi0tOwotICAgIGlmICh1ICE9IHApIHsKKyAgICBraW5kID0gUHlVbmljb2RlX0tJTkQobGluZW9iaik7CisgICAgZGF0YSA9IFB5VW5pY29kZV9EQVRBKGxpbmVvYmopOworICAgIGZvciAoaT0wOyBpIDwgUHlVbmljb2RlX0dFVF9MRU5HVEgobGluZW9iaik7IGkrKykgeworICAgICAgICBQeV9VQ1M0IGNoID0gUHlVbmljb2RlX1JFQUQoa2luZCwgZGF0YSwgaSk7CisgICAgICAgIGlmIChjaCAhPSAnICcgJiYgY2ggIT0gJ1x0JyAmJiBjaCAhPSAnXDAxNCcpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgaWYgKGkpIHsKICAgICAgICAgUHlPYmplY3QgKnRydW5jYXRlZDsKLSAgICAgICAgdHJ1bmNhdGVkID0gUHlVbmljb2RlX0Zyb21Vbmljb2RlKHAsIGxlbik7CisgICAgICAgIHRydW5jYXRlZCA9IFB5VW5pY29kZV9TdWJzdHJpbmcobGluZW9iaiwgaSwgUHlVbmljb2RlX0dFVF9MRU5HVEgobGluZW9iaikpOwogICAgICAgICBpZiAodHJ1bmNhdGVkKSB7CiAgICAgICAgICAgICBQeV9ERUNSRUYobGluZW9iaik7CiAgICAgICAgICAgICBsaW5lb2JqID0gdHJ1bmNhdGVkOwpAQCAtNDAyLDMgKzQxNCwyNTAgQEAKICAgICAgICAgZXJyID0gdGJfcHJpbnRpbnRlcm5hbCgoUHlUcmFjZWJhY2tPYmplY3QgKil2LCBmLCBsaW1pdCk7CiAgICAgcmV0dXJuIGVycjsKIH0KKworLyogUmV2ZXJzZSBhIHN0cmluZy4gRm9yIGV4YW1wbGUsICJhYmNkIiBiZWNvbWVzICJkY2JhIi4KKworICAgVGhpcyBmdW5jdGlvbiBpcyBzaWduYWwgc2FmZS4gKi8KKworc3RhdGljIHZvaWQKK3JldmVyc2Vfc3RyaW5nKGNoYXIgKnRleHQsIGNvbnN0IHNpemVfdCBsZW4pCit7CisgICAgY2hhciB0bXA7CisgICAgc2l6ZV90IGksIGo7CisgICAgaWYgKGxlbiA9PSAwKQorICAgICAgICByZXR1cm47CisgICAgZm9yIChpPTAsIGo9bGVuLTE7IGkgPCBqOyBpKyssIGotLSkgeworICAgICAgICB0bXAgPSB0ZXh0W2ldOworICAgICAgICB0ZXh0W2ldID0gdGV4dFtqXTsKKyAgICAgICAgdGV4dFtqXSA9IHRtcDsKKyAgICB9Cit9CisKKy8qIEZvcm1hdCBhbiBpbnRlZ2VyIGluIHJhbmdlIFswOyA5OTk5OTldIHRvIGRlY2ltYWwsCisgICBhbmQgd3JpdGUgaXQgaW50byB0aGUgZmlsZSBmZC4KKworICAgVGhpcyBmdW5jdGlvbiBpcyBzaWduYWwgc2FmZS4gKi8KKworc3RhdGljIHZvaWQKK2R1bXBfZGVjaW1hbChpbnQgZmQsIGludCB2YWx1ZSkKK3sKKyAgICBjaGFyIGJ1ZmZlcls3XTsKKyAgICBpbnQgbGVuOworICAgIGlmICh2YWx1ZSA8IDAgfHwgOTk5OTk5IDwgdmFsdWUpCisgICAgICAgIHJldHVybjsKKyAgICBsZW4gPSAwOworICAgIGRvIHsKKyAgICAgICAgYnVmZmVyW2xlbl0gPSAnMCcgKyAodmFsdWUgJSAxMCk7CisgICAgICAgIHZhbHVlIC89IDEwOworICAgICAgICBsZW4rKzsKKyAgICB9IHdoaWxlICh2YWx1ZSk7CisgICAgcmV2ZXJzZV9zdHJpbmcoYnVmZmVyLCBsZW4pOworICAgIHdyaXRlKGZkLCBidWZmZXIsIGxlbik7Cit9CisKKy8qIEZvcm1hdCBhbiBpbnRlZ2VyIGluIHJhbmdlIFswOyAweGZmZmZmZmZmXSB0byBoZXhkZWNpbWFsIG9mICd3aWR0aCcgZGlnaXRzLAorICAgYW5kIHdyaXRlIGl0IGludG8gdGhlIGZpbGUgZmQuCisKKyAgIFRoaXMgZnVuY3Rpb24gaXMgc2lnbmFsIHNhZmUuICovCisKK3N0YXRpYyB2b2lkCitkdW1wX2hleGFkZWNpbWFsKGludCB3aWR0aCwgdW5zaWduZWQgbG9uZyB2YWx1ZSwgaW50IGZkKQoreworICAgIGludCBsZW47CisgICAgY2hhciBidWZmZXJbc2l6ZW9mKHVuc2lnbmVkIGxvbmcpICogMiArIDFdOworICAgIGxlbiA9IDA7CisgICAgZG8geworICAgICAgICBidWZmZXJbbGVuXSA9IFB5X2hleGRpZ2l0c1t2YWx1ZSAmIDE1XTsKKyAgICAgICAgdmFsdWUgPj49IDQ7CisgICAgICAgIGxlbisrOworICAgIH0gd2hpbGUgKGxlbiA8IHdpZHRoIHx8IHZhbHVlKTsKKyAgICByZXZlcnNlX3N0cmluZyhidWZmZXIsIGxlbik7CisgICAgd3JpdGUoZmQsIGJ1ZmZlciwgbGVuKTsKK30KKworLyogV3JpdGUgYW4gdW5pY29kZSBvYmplY3QgaW50byB0aGUgZmlsZSBmZCB1c2luZyBhc2NpaStiYWNrc2xhc2hyZXBsYWNlLgorCisgICBUaGlzIGZ1bmN0aW9uIGlzIHNpZ25hbCBzYWZlLiAqLworCitzdGF0aWMgdm9pZAorZHVtcF9hc2NpaShpbnQgZmQsIFB5T2JqZWN0ICp0ZXh0KQoreworICAgIFB5QVNDSUlPYmplY3QgKmFzY2lpID0gKFB5QVNDSUlPYmplY3QgKil0ZXh0OworICAgIFB5X3NzaXplX3QgaSwgc2l6ZTsKKyAgICBpbnQgdHJ1bmNhdGVkOworICAgIGludCBraW5kOworICAgIHZvaWQgKmRhdGEgPSBOVUxMOworICAgIHdjaGFyX3QgKndzdHIgPSBOVUxMOworICAgIFB5X1VDUzQgY2g7CisKKyAgICBzaXplID0gYXNjaWktPmxlbmd0aDsKKyAgICBraW5kID0gYXNjaWktPnN0YXRlLmtpbmQ7CisgICAgaWYgKGFzY2lpLT5zdGF0ZS5jb21wYWN0KSB7CisgICAgICAgIGlmIChhc2NpaS0+c3RhdGUuYXNjaWkpCisgICAgICAgICAgICBkYXRhID0gKChQeUFTQ0lJT2JqZWN0Kil0ZXh0KSArIDE7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRhdGEgPSAoKFB5Q29tcGFjdFVuaWNvZGVPYmplY3QqKXRleHQpICsgMTsKKyAgICB9CisgICAgZWxzZSBpZiAoa2luZCAhPSBQeVVuaWNvZGVfV0NIQVJfS0lORCkgeworICAgICAgICBkYXRhID0gKChQeVVuaWNvZGVPYmplY3QgKil0ZXh0KS0+ZGF0YS5hbnk7CisgICAgICAgIGlmIChkYXRhID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorICAgIGVsc2UgeworICAgICAgICB3c3RyID0gKChQeUFTQ0lJT2JqZWN0ICopdGV4dCktPndzdHI7CisgICAgICAgIGlmICh3c3RyID09IE5VTEwpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHNpemUgPSAoKFB5Q29tcGFjdFVuaWNvZGVPYmplY3QgKil0ZXh0KS0+d3N0cl9sZW5ndGg7CisgICAgfQorCisgICAgaWYgKE1BWF9TVFJJTkdfTEVOR1RIIDwgc2l6ZSkgeworICAgICAgICBzaXplID0gTUFYX1NUUklOR19MRU5HVEg7CisgICAgICAgIHRydW5jYXRlZCA9IDE7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgdHJ1bmNhdGVkID0gMDsKKworICAgIGZvciAoaT0wOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIGlmIChraW5kICE9IFB5VW5pY29kZV9XQ0hBUl9LSU5EKQorICAgICAgICAgICAgY2ggPSBQeVVuaWNvZGVfUkVBRChraW5kLCBkYXRhLCBpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2ggPSB3c3RyW2ldOworICAgICAgICBpZiAoY2ggPCAxMjgpIHsKKyAgICAgICAgICAgIGNoYXIgYyA9IChjaGFyKWNoOworICAgICAgICAgICAgd3JpdGUoZmQsICZjLCAxKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChjaCA8IDB4ZmYpIHsKKyAgICAgICAgICAgIFBVVFMoZmQsICJcXHgiKTsKKyAgICAgICAgICAgIGR1bXBfaGV4YWRlY2ltYWwoMiwgY2gsIGZkKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChjaCA8IDB4ZmZmZikgeworICAgICAgICAgICAgUFVUUyhmZCwgIlxcdSIpOworICAgICAgICAgICAgZHVtcF9oZXhhZGVjaW1hbCg0LCBjaCwgZmQpOworICAgICAgICB9CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgUFVUUyhmZCwgIlxcVSIpOworICAgICAgICAgICAgZHVtcF9oZXhhZGVjaW1hbCg4LCBjaCwgZmQpOworICAgICAgICB9CisgICAgfQorICAgIGlmICh0cnVuY2F0ZWQpCisgICAgICAgIFBVVFMoZmQsICIuLi4iKTsKK30KKworLyogV3JpdGUgYSBmcmFtZSBpbnRvIHRoZSBmaWxlIGZkOiAiRmlsZSAieHh4IiwgbGluZSB4eHggaW4geHh4Ii4KKworICAgVGhpcyBmdW5jdGlvbiBpcyBzaWduYWwgc2FmZS4gKi8KKworc3RhdGljIHZvaWQKK2R1bXBfZnJhbWUoaW50IGZkLCBQeUZyYW1lT2JqZWN0ICpmcmFtZSkKK3sKKyAgICBQeUNvZGVPYmplY3QgKmNvZGU7CisgICAgaW50IGxpbmVubzsKKworICAgIGNvZGUgPSBmcmFtZS0+Zl9jb2RlOworICAgIFBVVFMoZmQsICIgIEZpbGUgIik7CisgICAgaWYgKGNvZGUgIT0gTlVMTCAmJiBjb2RlLT5jb19maWxlbmFtZSAhPSBOVUxMCisgICAgICAgICYmIFB5VW5pY29kZV9DaGVjayhjb2RlLT5jb19maWxlbmFtZSkpCisgICAgeworICAgICAgICB3cml0ZShmZCwgIlwiIiwgMSk7CisgICAgICAgIGR1bXBfYXNjaWkoZmQsIGNvZGUtPmNvX2ZpbGVuYW1lKTsKKyAgICAgICAgd3JpdGUoZmQsICJcIiIsIDEpOworICAgIH0gZWxzZSB7CisgICAgICAgIFBVVFMoZmQsICI/Pz8iKTsKKyAgICB9CisKKyAgICAvKiBQeUZyYW1lX0dldExpbmVOdW1iZXIoKSB3YXMgaW50cm9kdWNlZCBpbiBQeXRob24gMi43LjAgYW5kIDMuMi4wICovCisgICAgbGluZW5vID0gUHlDb2RlX0FkZHIyTGluZShjb2RlLCBmcmFtZS0+Zl9sYXN0aSk7CisgICAgUFVUUyhmZCwgIiwgbGluZSAiKTsKKyAgICBkdW1wX2RlY2ltYWwoZmQsIGxpbmVubyk7CisgICAgUFVUUyhmZCwgIiBpbiAiKTsKKworICAgIGlmIChjb2RlICE9IE5VTEwgJiYgY29kZS0+Y29fbmFtZSAhPSBOVUxMCisgICAgICAgICYmIFB5VW5pY29kZV9DaGVjayhjb2RlLT5jb19uYW1lKSkKKyAgICAgICAgZHVtcF9hc2NpaShmZCwgY29kZS0+Y29fbmFtZSk7CisgICAgZWxzZQorICAgICAgICBQVVRTKGZkLCAiPz8/Iik7CisKKyAgICB3cml0ZShmZCwgIlxuIiwgMSk7Cit9CisKK3N0YXRpYyB2b2lkCitkdW1wX3RyYWNlYmFjayhpbnQgZmQsIFB5VGhyZWFkU3RhdGUgKnRzdGF0ZSwgaW50IHdyaXRlX2hlYWRlcikKK3sKKyAgICBQeUZyYW1lT2JqZWN0ICpmcmFtZTsKKyAgICB1bnNpZ25lZCBpbnQgZGVwdGg7CisKKyAgICBpZiAod3JpdGVfaGVhZGVyKQorICAgICAgICBQVVRTKGZkLCAiVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGZpcnN0KTpcbiIpOworCisgICAgZnJhbWUgPSBfUHlUaHJlYWRTdGF0ZV9HZXRGcmFtZSh0c3RhdGUpOworICAgIGlmIChmcmFtZSA9PSBOVUxMKQorICAgICAgICByZXR1cm47CisKKyAgICBkZXB0aCA9IDA7CisgICAgd2hpbGUgKGZyYW1lICE9IE5VTEwpIHsKKyAgICAgICAgaWYgKE1BWF9GUkFNRV9ERVBUSCA8PSBkZXB0aCkgeworICAgICAgICAgICAgUFVUUyhmZCwgIiAgLi4uXG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIGlmICghUHlGcmFtZV9DaGVjayhmcmFtZSkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZHVtcF9mcmFtZShmZCwgZnJhbWUpOworICAgICAgICBmcmFtZSA9IGZyYW1lLT5mX2JhY2s7CisgICAgICAgIGRlcHRoKys7CisgICAgfQorfQorCit2b2lkCitfUHlfRHVtcFRyYWNlYmFjayhpbnQgZmQsIFB5VGhyZWFkU3RhdGUgKnRzdGF0ZSkKK3sKKyAgICBkdW1wX3RyYWNlYmFjayhmZCwgdHN0YXRlLCAxKTsKK30KKworLyogV3JpdGUgdGhlIHRocmVhZCBpZGVudGlmaWVyIGludG8gdGhlIGZpbGUgJ2ZkJzogIkN1cnJlbnQgdGhyZWFkIDB4SEhISDpcIiBpZgorICAgaXNfY3VycmVudCBpcyB0cnVlLCAiVGhyZWFkIDB4SEhISDpcbiIgb3RoZXJ3aXNlLgorCisgICBUaGlzIGZ1bmN0aW9uIGlzIHNpZ25hbCBzYWZlLiAqLworCitzdGF0aWMgdm9pZAord3JpdGVfdGhyZWFkX2lkKGludCBmZCwgUHlUaHJlYWRTdGF0ZSAqdHN0YXRlLCBpbnQgaXNfY3VycmVudCkKK3sKKyAgICBpZiAoaXNfY3VycmVudCkKKyAgICAgICAgUFVUUyhmZCwgIkN1cnJlbnQgdGhyZWFkIDB4Iik7CisgICAgZWxzZQorICAgICAgICBQVVRTKGZkLCAiVGhyZWFkIDB4Iik7CisgICAgZHVtcF9oZXhhZGVjaW1hbChzaXplb2YobG9uZykqMiwgKHVuc2lnbmVkIGxvbmcpdHN0YXRlLT50aHJlYWRfaWQsIGZkKTsKKyAgICBQVVRTKGZkLCAiOlxuIik7Cit9CisKK2NvbnN0IGNoYXIqCitfUHlfRHVtcFRyYWNlYmFja1RocmVhZHMoaW50IGZkLCBQeUludGVycHJldGVyU3RhdGUgKmludGVycCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBQeVRocmVhZFN0YXRlICpjdXJyZW50X3RocmVhZCkKK3sKKyAgICBQeVRocmVhZFN0YXRlICp0c3RhdGU7CisgICAgdW5zaWduZWQgaW50IG50aHJlYWRzOworCisgICAgLyogR2V0IHRoZSBjdXJyZW50IGludGVycHJldGVyIGZyb20gdGhlIGN1cnJlbnQgdGhyZWFkICovCisgICAgdHN0YXRlID0gUHlJbnRlcnByZXRlclN0YXRlX1RocmVhZEhlYWQoaW50ZXJwKTsKKyAgICBpZiAodHN0YXRlID09IE5VTEwpCisgICAgICAgIHJldHVybiAidW5hYmxlIHRvIGdldCB0aGUgdGhyZWFkIGhlYWQgc3RhdGUiOworCisgICAgLyogRHVtcCB0aGUgdHJhY2ViYWNrIG9mIGVhY2ggdGhyZWFkICovCisgICAgdHN0YXRlID0gUHlJbnRlcnByZXRlclN0YXRlX1RocmVhZEhlYWQoaW50ZXJwKTsKKyAgICBudGhyZWFkcyA9IDA7CisgICAgZG8KKyAgICB7CisgICAgICAgIGlmIChudGhyZWFkcyAhPSAwKQorICAgICAgICAgICAgd3JpdGUoZmQsICJcbiIsIDEpOworICAgICAgICBpZiAobnRocmVhZHMgPj0gTUFYX05USFJFQURTKSB7CisgICAgICAgICAgICBQVVRTKGZkLCAiLi4uXG4iKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHdyaXRlX3RocmVhZF9pZChmZCwgdHN0YXRlLCB0c3RhdGUgPT0gY3VycmVudF90aHJlYWQpOworICAgICAgICBkdW1wX3RyYWNlYmFjayhmZCwgdHN0YXRlLCAwKTsKKyAgICAgICAgdHN0YXRlID0gUHlUaHJlYWRTdGF0ZV9OZXh0KHRzdGF0ZSk7CisgICAgICAgIG50aHJlYWRzKys7CisgICAgfSB3aGlsZSAodHN0YXRlICE9IE5VTEwpOworCisgICAgcmV0dXJuIE5VTEw7Cit9CisKZGlmZiAtLWdpdCBhL1JFQURNRSBiL1JFQURNRQppbmRleCBiMTM4MDZiLi4xM2YzZGY0IDEwMDY0NAotLS0gYS9SRUFETUUKKysrIGIvUkVBRE1FCkBAIC0xLDUgKzEsNSBAQAotVGhpcyBpcyBQeXRob24gdmVyc2lvbiAzLjIuMwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PQorVGhpcyBpcyBQeXRob24gdmVyc2lvbiAzLjMuMCBiZXRhIDEKKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKIENvcHlyaWdodCAoYykgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSwKIDIwMTIgUHl0aG9uIFNvZnR3YXJlIEZvdW5kYXRpb24uICBBbGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtMTUsNiArMTUsOCBAQAogCiBPbiBVbml4LCBMaW51eCwgQlNELCBPU1gsIGFuZCBDeWd3aW46CiAKK05ldyB0ZXh0CisKICAgICAuL2NvbmZpZ3VyZQogICAgIG1ha2UKICAgICBtYWtlIHRlc3QKQEAgLTUwLDkgKzUyLDkgQEAKIC0tLS0tLS0tLS0KIAogV2UgdHJ5IHRvIGhhdmUgYSBjb21wcmVoZW5zaXZlIG92ZXJ2aWV3IG9mIHRoZSBjaGFuZ2VzIGluIHRoZSAiV2hhdCdzIE5ldyBpbgotUHl0aG9uIDMuMiIgZG9jdW1lbnQsIGZvdW5kIGF0CitQeXRob24gMy4zIiBkb2N1bWVudCwgZm91bmQgYXQKIAotICAgIGh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMy4yL3doYXRzbmV3LzMuMi5odG1sCisgICAgaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zLjMvd2hhdHNuZXcvMy4zLmh0bWwKIAogRm9yIGEgbW9yZSBkZXRhaWxlZCBjaGFuZ2UgbG9nLCByZWFkIE1pc2MvTkVXUyAodGhvdWdoIHRoaXMgZmlsZSwgdG9vLCBpcwogaW5jb21wbGV0ZSwgYW5kIGFsc28gZG9lc24ndCBsaXN0IGFueXRoaW5nIG1lcmdlZCBpbiBmcm9tIHRoZSAyLjcgcmVsZWFzZSB1bmRlcgpAQCAtNjUsOSArNjcsOSBAQAogRG9jdW1lbnRhdGlvbgogLS0tLS0tLS0tLS0tLQogCi1Eb2N1bWVudGF0aW9uIGZvciBQeXRob24gMy4yIGlzIG9ubGluZSwgdXBkYXRlZCBkYWlseToKK0RvY3VtZW50YXRpb24gZm9yIFB5dGhvbiAzLjMgaXMgb25saW5lLCB1cGRhdGVkIGRhaWx5OgogCi0gICAgaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zLjIvCisgICAgaHR0cDovL2RvY3MucHl0aG9uLm9yZy8zLjMvCiAKIEl0IGNhbiBhbHNvIGJlIGRvd25sb2FkZWQgaW4gbWFueSBmb3JtYXRzIGZvciBmYXN0ZXIgYWNjZXNzLiAgVGhlIGRvY3VtZW50YXRpb24KIGlzIGRvd25sb2FkYWJsZSBpbiBIVE1MLCBQREYsIGFuZCByZVN0cnVjdHVyZWRUZXh0IGZvcm1hdHM7IHRoZSBsYXR0ZXIgdmVyc2lvbgpAQCAtODUsMTggKzg3LDE2IEBACiBBIHNvdXJjZS10by1zb3VyY2UgdHJhbnNsYXRpb24gdG9vbCwgIjJ0bzMiLCBjYW4gdGFrZSBjYXJlIG9mIHRoZSBtdW5kYW5lIHRhc2sKIG9mIGNvbnZlcnRpbmcgbGFyZ2UgYW1vdW50cyBvZiBzb3VyY2UgY29kZS4gIEl0IGlzIG5vdCBhIGNvbXBsZXRlIHNvbHV0aW9uIGJ1dAogaXMgY29tcGxlbWVudGVkIGJ5IHRoZSBkZXByZWNhdGlvbiB3YXJuaW5ncyBpbiAyLjYuICBTZWUKLWh0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMy4yL2xpYnJhcnkvMnRvMy5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uLgoraHR0cDovL2RvY3MucHl0aG9uLm9yZy8zLjMvbGlicmFyeS8ydG8zLmh0bWwgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAKIAogVGVzdGluZwogLS0tLS0tLQogCi1UbyB0ZXN0IHRoZSBpbnRlcnByZXRlciwgdHlwZSAibWFrZSB0ZXN0IiBpbiB0aGUgdG9wLWxldmVsIGRpcmVjdG9yeS4gIFRoaXMgcnVucwotdGhlIHRlc3Qgc2V0IHR3aWNlIChvbmNlIHdpdGggbm8gY29tcGlsZWQgZmlsZXMsIG9uY2Ugd2l0aCB0aGUgY29tcGlsZWQgZmlsZXMKLWxlZnQgYnkgdGhlIHByZXZpb3VzIHRlc3QgcnVuKS4gIFRoZSB0ZXN0IHNldCBwcm9kdWNlcyBzb21lIG91dHB1dC4gIFlvdSBjYW4KLWdlbmVyYWxseSBpZ25vcmUgdGhlIG1lc3NhZ2VzIGFib3V0IHNraXBwZWQgdGVzdHMgZHVlIHRvIG9wdGlvbmFsIGZlYXR1cmVzIHdoaWNoCi1jYW4ndCBiZSBpbXBvcnRlZC4gIElmIGEgbWVzc2FnZSBpcyBwcmludGVkIGFib3V0IGEgZmFpbGVkIHRlc3Qgb3IgYSB0cmFjZWJhY2sKLW9yIGNvcmUgZHVtcCBpcyBwcm9kdWNlZCwgc29tZXRoaW5nIGlzIHdyb25nLgorVG8gdGVzdCB0aGUgaW50ZXJwcmV0ZXIsIHR5cGUgIm1ha2UgdGVzdCIgaW4gdGhlIHRvcC1sZXZlbCBkaXJlY3RvcnkuICBUaGUgdGVzdAorc2V0IHByb2R1Y2VzIHNvbWUgb3V0cHV0LiAgWW91IGNhbiBnZW5lcmFsbHkgaWdub3JlIHRoZSBtZXNzYWdlcyBhYm91dCBza2lwcGVkCit0ZXN0cyBkdWUgdG8gb3B0aW9uYWwgZmVhdHVyZXMgd2hpY2ggY2FuJ3QgYmUgaW1wb3J0ZWQuICBJZiBhIG1lc3NhZ2UgaXMgcHJpbnRlZAorYWJvdXQgYSBmYWlsZWQgdGVzdCBvciBhIHRyYWNlYmFjayBvciBjb3JlIGR1bXAgaXMgcHJvZHVjZWQsIHNvbWV0aGluZyBpcyB3cm9uZy4KIAogQnkgZGVmYXVsdCwgdGVzdHMgYXJlIHByZXZlbnRlZCBmcm9tIG92ZXJ1c2luZyByZXNvdXJjZXMgbGlrZSBkaXNrIHNwYWNlIGFuZAogbWVtb3J5LiAgVG8gZW5hYmxlIHRoZXNlIHRlc3RzLCBydW4gIm1ha2UgdGVzdGFsbCIuCkBAIC0xMjUsOCArMTI1LDggQEAKIEluc3RhbGwgdGhhdCB2ZXJzaW9uIHVzaW5nICJtYWtlIGluc3RhbGwiLiAgSW5zdGFsbCBhbGwgb3RoZXIgdmVyc2lvbnMgdXNpbmcKICJtYWtlIGFsdGluc3RhbGwiLgogCi1Gb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gaW5zdGFsbCBQeXRob24gMi41LCAyLjYgYW5kIDMuMiB3aXRoIDIuNiBiZWluZyB0aGUKLXByaW1hcnkgdmVyc2lvbiwgeW91IHdvdWxkIGV4ZWN1dGUgIm1ha2UgaW5zdGFsbCIgaW4geW91ciAyLjYgYnVpbGQgZGlyZWN0b3J5CitGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnQgdG8gaW5zdGFsbCBQeXRob24gMi42LCAyLjcgYW5kIDMuMyB3aXRoIDIuNyBiZWluZyB0aGUKK3ByaW1hcnkgdmVyc2lvbiwgeW91IHdvdWxkIGV4ZWN1dGUgIm1ha2UgaW5zdGFsbCIgaW4geW91ciAyLjcgYnVpbGQgZGlyZWN0b3J5CiBhbmQgIm1ha2UgYWx0aW5zdGFsbCIgaW4gdGhlIG90aGVycy4KIAogCkBAIC0xNjEsNyArMTYxLDcgQEAKIFJlbGVhc2UgU2NoZWR1bGUKIC0tLS0tLS0tLS0tLS0tLS0KIAotU2VlIFBFUCAzOTIgZm9yIHJlbGVhc2UgZGV0YWlsczogaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMzkyLworU2VlIFBFUCAzOTggZm9yIHJlbGVhc2UgZGV0YWlsczogaHR0cDovL3d3dy5weXRob24ub3JnL2Rldi9wZXBzL3BlcC0wMzk4LwogCiAKIENvcHlyaWdodCBhbmQgTGljZW5zZSBJbmZvcm1hdGlvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvUkVBRE1FIGIvVG9vbHMvUkVBRE1FCmluZGV4IGMxZjg5YmEuLjBkOTYxZGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1JFQURNRQorKysgYi9Ub29scy9SRUFETUUKQEAgLTMsNyArMyw3IEBACiAKIGJ1aWxkYm90ICAgICAgICBCYXRjaGZpbGVzIGZvciBydW5uaW5nIG9uIFdpbmRvd3MgYnVpbGRzbGF2ZXMuCiAKLWNjYmVuY2ggICAgICAgICBBIFB5dGhvbiBjb25jdXJyZW5jeSBiZW5jaG1hcmsuCitjY2JlbmNoICAgICAgICAgQSBQeXRob24gdGhyZWFkcy1iYXNlZCBjb25jdXJyZW5jeSBiZW5jaG1hcmsuICgqKQogCiBkZW1vICAgICAgICAgICAgU2V2ZXJhbCBQeXRob24gcHJvZ3JhbW1pbmcgZGVtb3MuCiAKQEAgLTE3LDEzICsxNywxMyBAQAogICAgICAgICAgICAgICAgIGFuZCBtc2dmbXQucHkgZ2VuZXJhdGVzIGEgYmluYXJ5IG1lc3NhZ2UgY2F0YWxvZwogICAgICAgICAgICAgICAgIGZyb20gYSBjYXRhbG9nIGluIHRleHQgZm9ybWF0LgogCi1pb2JlbmNoICAgICAgICAgQmVuY2htYXJrIGZvciB0aGUgbmV3IFB5dGhvbiBJL08gc3lzdGVtLgoraW9iZW5jaCAgICAgICAgIEJlbmNobWFyayBmb3IgdGhlIG5ldyBQeXRob24gSS9PIHN5c3RlbS4gKCopCiAKIG1zaSAgICAgICAgICAgICBTdXBwb3J0IGZvciBwYWNrYWdpbmcgUHl0aG9uIGFzIGFuIE1TSSBwYWNrYWdlIG9uIFdpbmRvd3MuCiAKIHBhcnNlciAgICAgICAgICBVbi1wYXJzaW5nIHRvb2wgdG8gZ2VuZXJhdGUgY29kZSBmcm9tIGFuIEFTVC4KIAotcHliZW5jaCAgICAgICAgIENvbXByZWhlbnNpdmUgUHl0aG9uIGJlbmNobWFya2luZyBzdWl0ZS4KK3B5YmVuY2ggICAgICAgICBMb3ctbGV2ZWwgYmVuY2htYXJraW5nIGZvciB0aGUgUHl0aG9uIGV2YWx1YXRpb24gbG9vcC4gKCopCiAKIHB5bmNoZSAgICAgICAgICBBIFRraW50ZXItYmFzZWQgY29sb3IgZWRpdG9yLgogCkBAIC0zMiw2ICszMiw5IEBACiAgICAgICAgICAgICAgICAgdGFicyBhbmQgc3BhY2VzLCBhbmQgMnRvMywgd2hpY2ggY29udmVydHMgUHl0aG9uIDIgY29kZQogICAgICAgICAgICAgICAgIHRvIFB5dGhvbiAzIGNvZGUuCiAKK3N0cmluZ2JlbmNoICAgICBBIHN1aXRlIG9mIG1pY3JvLWJlbmNobWFya3MgZm9yIHZhcmlvdXMgb3BlcmF0aW9ucyBvbgorICAgICAgICAgICAgICAgIHN0cmluZ3MgKGJvdGggOC1iaXQgYW5kIHVuaWNvZGUpLiAoKikKKwogdGVzdDJ0bzMgICAgICAgIEEgZGVtb25zdHJhdGlvbiBvZiBob3cgdG8gdXNlIDJ0bzMgdHJhbnNwYXJlbnRseSBpbiBzZXR1cC5weS4KIAogdW5pY29kZSAgICAgICAgIFRvb2xzIGZvciBnZW5lcmF0aW5nIHVuaWNvZGVkYXRhIGFuZCBjb2RlY3MgZnJvbSB1bmljb2RlLm9yZwpAQCAtNDAsMyArNDMsNiBAQAogCiB1bml0dGVzdGd1aSAgICAgQSBUa2ludGVyIGJhc2VkIEdVSSB0ZXN0IHJ1bm5lciBmb3IgdW5pdHRlc3QsIHdpdGggdGVzdAogICAgICAgICAgICAgICAgIGRpc2NvdmVyeS4KKworCisoKikgQSBnZW5lcmljIGJlbmNobWFyayBzdWl0ZSBpcyBtYWludGFpbmVkIHNlcGFyYXRlbHkgYXQgaHR0cDovL2hnLnB5dGhvbi5vcmcvYmVuY2htYXJrcy8KZGlmZiAtLWdpdCBhL1Rvb2xzL2J1aWxkYm90L2J1aWxkLWFtZDY0LmJhdCBiL1Rvb2xzL2J1aWxkYm90L2J1aWxkLWFtZDY0LmJhdAppbmRleCA4NzEzYjM4Li43ZWU3YjJkIDEwMDY0NAotLS0gYS9Ub29scy9idWlsZGJvdC9idWlsZC1hbWQ2NC5iYXQKKysrIGIvVG9vbHMvYnVpbGRib3QvYnVpbGQtYW1kNjQuYmF0CkBAIC0xLDcgKzEsNyBAQAogQHJlbSBVc2VkIGJ5IHRoZSBidWlsZGJvdCAiY29tcGlsZSIgc3RlcC4KLXNldCBIT1NUX1BZVEhPTj0iJUNEJVxQQ2J1aWxkXGFtZDY0XHB5dGhvbl9kLmV4ZSIKIGNtZCAvYyBUb29sc1xidWlsZGJvdFxleHRlcm5hbC1hbWQ2NC5iYXQKLWNhbGwgIiVWUzkwQ09NTlRPT0xTJVwuLlwuLlxWQ1x2Y3ZhcnNhbGwuYmF0IiB4ODZfYW1kNjQKK2NhbGwgIiVWUzEwMENPTU5UT09MUyVcLi5cLi5cVkNcdmN2YXJzYWxsLmJhdCIgeDg2X2FtZDY0CiBjbWQgL2MgVG9vbHNcYnVpbGRib3RcY2xlYW4tYW1kNjQuYmF0Ci12Y2J1aWxkIC91c2VlbnYgUENidWlsZFxraWxsX3B5dGhvbi52Y3Byb2ogIkRlYnVnfHg2NCIgJiYgUENidWlsZFxhbWQ2NFxraWxsX3B5dGhvbl9kLmV4ZQotdmNidWlsZCBQQ2J1aWxkXHBjYnVpbGQuc2xuICJEZWJ1Z3x4NjQiCittc2J1aWxkIFBDYnVpbGRca2lsbF9weXRob24udmN4cHJvaiAvcDpDb25maWd1cmF0aW9uPURlYnVnIC9wOlBsYXRmb3JtVGFyZ2V0PXg2NAorUENidWlsZFxhbWQ2NFxraWxsX3B5dGhvbl9kLmV4ZQorbXNidWlsZCBQQ2J1aWxkXHBjYnVpbGQuc2xuIC9wOkNvbmZpZ3VyYXRpb249RGVidWcgL3A6UGxhdGZvcm09eDY0CmRpZmYgLS1naXQgYS9Ub29scy9idWlsZGJvdC9idWlsZC5iYXQgYi9Ub29scy9idWlsZGJvdC9idWlsZC5iYXQKaW5kZXggYWIzZWE3ZC4uYzkzY2ZkNSAxMDA2NDQKLS0tIGEvVG9vbHMvYnVpbGRib3QvYnVpbGQuYmF0CisrKyBiL1Rvb2xzL2J1aWxkYm90L2J1aWxkLmJhdApAQCAtMSw3ICsxLDggQEAKIEByZW0gVXNlZCBieSB0aGUgYnVpbGRib3QgImNvbXBpbGUiIHN0ZXAuCiBjbWQgL2MgVG9vbHNcYnVpbGRib3RcZXh0ZXJuYWwuYmF0Ci1jYWxsICIlVlM5MENPTU5UT09MUyV2c3ZhcnMzMi5iYXQiCitjYWxsICIlVlMxMDBDT01OVE9PTFMldnN2YXJzMzIuYmF0IgogY21kIC9jIFRvb2xzXGJ1aWxkYm90XGNsZWFuLmJhdAotdmNidWlsZCAvdXNlZW52IFBDYnVpbGRca2lsbF9weXRob24udmNwcm9qICJEZWJ1Z3xXaW4zMiIgJiYgUENidWlsZFxraWxsX3B5dGhvbl9kLmV4ZQotdmNidWlsZCAvdXNlZW52IFBDYnVpbGRccGNidWlsZC5zbG4gIkRlYnVnfFdpbjMyIgorbXNidWlsZCBQQ2J1aWxkXGtpbGxfcHl0aG9uLnZjeHByb2ogL3A6Q29uZmlndXJhdGlvbj1EZWJ1ZyAvcDpQbGF0Zm9ybVRhcmdldD14ODYKK1BDYnVpbGRca2lsbF9weXRob25fZC5leGUKK21zYnVpbGQgUENidWlsZFxwY2J1aWxkLnNsbiAvcDpDb25maWd1cmF0aW9uPURlYnVnIC9wOlBsYXRmb3JtPVdpbjMyCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL2J1aWxkYm90L2J1aWxkbXNpLmJhdCBiL1Rvb2xzL2J1aWxkYm90L2J1aWxkbXNpLmJhdAppbmRleCA0NDMwY2I4Li5hZTkzZTY3IDEwMDY0NAotLS0gYS9Ub29scy9idWlsZGJvdC9idWlsZG1zaS5iYXQKKysrIGIvVG9vbHMvYnVpbGRib3QvYnVpbGRtc2kuYmF0CkBAIC0yLDEwICsyLDEwIEBACiAKIGNtZCAvYyBUb29sc1xidWlsZGJvdFxleHRlcm5hbC5iYXQKIEByZW0gYnVpbGQgcmVsZWFzZSB2ZXJzaW9ucyBvZiB0aGluZ3MKLWNhbGwgIiVWUzkwQ09NTlRPT0xTJXZzdmFyczMyLmJhdCIKK2NhbGwgIiVWUzEwMENPTU5UT09MUyV2c3ZhcnMzMi5iYXQiCiAKIEByZW0gYnVpbGQgUHl0aG9uCi12Y2J1aWxkIC91c2VlbnYgUENidWlsZFxwY2J1aWxkLnNsbiAiUmVsZWFzZXxXaW4zMiIKK21zYnVpbGQgL3A6dXNlZW52PXRydWUgUENidWlsZFxwY2J1aWxkLnNsbiAvcDpDb25maWd1cmF0aW9uPVJlbGVhc2UgL3A6UGxhdGZvcm09V2luMzIKIAogQHJlbSBidWlsZCB0aGUgZG9jdW1lbnRhdGlvbgogYmFzaC5leGUgLWMgJ2NkIERvYzttYWtlIFBZVEhPTj1weXRob24yLjUgdXBkYXRlIGh0bWxoZWxwJwpkaWZmIC0tZ2l0IGEvVG9vbHMvYnVpbGRib3QvY2xlYW4tYW1kNjQuYmF0IGIvVG9vbHMvYnVpbGRib3QvY2xlYW4tYW1kNjQuYmF0CmluZGV4IDcxNTgwNWEuLjI0NjYwYWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2J1aWxkYm90L2NsZWFuLWFtZDY0LmJhdAorKysgYi9Ub29scy9idWlsZGJvdC9jbGVhbi1hbWQ2NC5iYXQKQEAgLTEsMTAgKzEsMTAgQEAKIEByZW0gVXNlZCBieSB0aGUgYnVpbGRib3QgImNsZWFuIiBzdGVwLgotY2FsbCAiJVZTOTBDT01OVE9PTFMlXC4uXC4uXFZDXHZjdmFyc2FsbC5iYXQiIHg4Nl9hbWQ2NAorY2FsbCAiJVZTMTAwQ09NTlRPT0xTJVwuLlwuLlxWQ1x2Y3ZhcnNhbGwuYmF0IiB4ODZfYW1kNjQKIEBlY2hvIERlbGV0aW5nIC5weWMvLnB5byBmaWxlcyAuLi4KIGRlbCAvcyBMaWJcKi5weWMgTGliXCoucHlvCiBAZWNobyBEZWxldGluZyB0ZXN0IGxlZnRvdmVycyAuLi4KIHJtZGlyIC9zIC9xIGJ1aWxkCiBjZCBQQ2J1aWxkCi12Y2J1aWxkIC9jbGVhbiBwY2J1aWxkLnNsbiAiUmVsZWFzZXx4NjQiCi12Y2J1aWxkIC9jbGVhbiBwY2J1aWxkLnNsbiAiRGVidWd8eDY0IgorbXNidWlsZCAvdGFyZ2V0OmNsZWFuIHBjYnVpbGQuc2xuIC9wOkNvbmZpZ3VyYXRpb249UmVsZWFzZSAvcDpQbGF0Zm9ybVRhcmdldD14NjQKK21zYnVpbGQgL3RhcmdldDpjbGVhbiBwY2J1aWxkLnNsbiAvcDpDb25maWd1cmF0aW9uPURlYnVnIC9wOlBsYXRmb3JtVGFyZ2V0PXg2NAogY2QgLi4KZGlmZiAtLWdpdCBhL1Rvb2xzL2J1aWxkYm90L2NsZWFuLmJhdCBiL1Rvb2xzL2J1aWxkYm90L2NsZWFuLmJhdAppbmRleCAwYzA0YjhlLi4yMThmYWNjIDEwMDY0NAotLS0gYS9Ub29scy9idWlsZGJvdC9jbGVhbi5iYXQKKysrIGIvVG9vbHMvYnVpbGRib3QvY2xlYW4uYmF0CkBAIC0xLDggKzEsOCBAQAogQHJlbSBVc2VkIGJ5IHRoZSBidWlsZGJvdCAiY2xlYW4iIHN0ZXAuCi1jYWxsICIlVlM5MENPTU5UT09MUyV2c3ZhcnMzMi5iYXQiCitjYWxsICIlVlMxMDBDT01OVE9PTFMldnN2YXJzMzIuYmF0IgogQGVjaG8gRGVsZXRpbmcgdGVzdCBsZWZ0b3ZlcnMgLi4uCiBybWRpciAvcyAvcSBidWlsZAogY2QgUENidWlsZAotdmNidWlsZCAvY2xlYW4gcGNidWlsZC5zbG4gIlJlbGVhc2V8V2luMzIiCi12Y2J1aWxkIC9jbGVhbiBwY2J1aWxkLnNsbiAiRGVidWd8V2luMzIiCittc2J1aWxkIC90YXJnZXQ6Y2xlYW4gcGNidWlsZC5zbG4gL3A6Q29uZmlndXJhdGlvbj1SZWxlYXNlIC9wOlBsYXRmb3JtVGFyZ2V0PXg4NgorbXNidWlsZCAvdGFyZ2V0OmNsZWFuIHBjYnVpbGQuc2xuIC9wOkNvbmZpZ3VyYXRpb249RGVidWcgL3A6UGxhdGZvcm1UYXJnZXQ9eDg2CiBjZCAuLgpkaWZmIC0tZ2l0IGEvVG9vbHMvYnVpbGRib3QvZXh0ZXJuYWwtYW1kNjQuYmF0IGIvVG9vbHMvYnVpbGRib3QvZXh0ZXJuYWwtYW1kNjQuYmF0CmluZGV4IDk1NDIzOGUuLmQyZmYyNTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2J1aWxkYm90L2V4dGVybmFsLWFtZDY0LmJhdAorKysgYi9Ub29scy9idWlsZGJvdC9leHRlcm5hbC1hbWQ2NC5iYXQKQEAgLTIsMjAgKzIsMjAgQEAKIAogQHJlbSBBc3N1bWUgd2Ugc3RhcnQgaW5zaWRlIHRoZSBQeXRob24gc291cmNlIGRpcmVjdG9yeQogY2FsbCAiVG9vbHNcYnVpbGRib3RcZXh0ZXJuYWwtY29tbW9uLmJhdCIKLWNhbGwgIiVWUzkwQ09NTlRPT0xTJVwuLlwuLlxWQ1x2Y3ZhcnNhbGwuYmF0IiB4ODZfYW1kNjQKK2NhbGwgIiVWUzEwMENPTU5UT09MUyVcLi5cLi5cVkNcdmN2YXJzYWxsLmJhdCIgeDg2X2FtZDY0CiAKIGlmIG5vdCBleGlzdCB0Y2x0azY0XGJpblx0Y2w4NWcuZGxsICgKLSAgICBjZCB0Y2wtOC41LjkuMFx3aW4KKyAgICBjZCB0Y2wtOC41LjExLjBcd2luCiAgICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgREVCVUc9MSBNQUNISU5FPUFNRDY0IElOU1RBTExESVI9Li5cLi5cdGNsdGs2NCBjbGVhbiBhbGwKICAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCBERUJVRz0xIE1BQ0hJTkU9QU1ENjQgSU5TVEFMTERJUj0uLlwuLlx0Y2x0azY0IGluc3RhbGwKICAgICBjZCAuLlwuLgogKQogCiBpZiBub3QgZXhpc3QgdGNsdGs2NFxiaW5cdGs4NWcuZGxsICgKLSAgICBjZCB0ay04LjUuOS4wXHdpbiAgICAKLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCBPUFRTPW5veHAgREVCVUc9MSBNQUNISU5FPUFNRDY0IElOU1RBTExESVI9Li5cLi5cdGNsdGs2NCBUQ0xESVI9Li5cLi5cdGNsLTguNS45LjAgY2xlYW4KLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCBPUFRTPW5veHAgREVCVUc9MSBNQUNISU5FPUFNRDY0IElOU1RBTExESVI9Li5cLi5cdGNsdGs2NCBUQ0xESVI9Li5cLi5cdGNsLTguNS45LjAgYWxsCi0gICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgT1BUUz1ub3hwIERFQlVHPTEgTUFDSElORT1BTUQ2NCBJTlNUQUxMRElSPS4uXC4uXHRjbHRrNjQgVENMRElSPS4uXC4uXHRjbC04LjUuOS4wIGluc3RhbGwKKyAgICBjZCB0ay04LjUuMTEuMFx3aW4gICAgCisgICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgT1BUUz1ub3hwIERFQlVHPTEgTUFDSElORT1BTUQ2NCBJTlNUQUxMRElSPS4uXC4uXHRjbHRrNjQgVENMRElSPS4uXC4uXHRjbC04LjUuMTEuMCBjbGVhbgorICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIENPTVBJTEVSRkxBR1M9LURXSU5WRVI9MHgwNTAwIE9QVFM9bm94cCBERUJVRz0xIE1BQ0hJTkU9QU1ENjQgSU5TVEFMTERJUj0uLlwuLlx0Y2x0azY0IFRDTERJUj0uLlwuLlx0Y2wtOC41LjExLjAgYWxsCisgICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgT1BUUz1ub3hwIERFQlVHPTEgTUFDSElORT1BTUQ2NCBJTlNUQUxMRElSPS4uXC4uXHRjbHRrNjQgVENMRElSPS4uXC4uXHRjbC04LjUuMTEuMCBpbnN0YWxsCiAgICAgY2QgLi5cLi4KICkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvYnVpbGRib3QvZXh0ZXJuYWwtY29tbW9uLmJhdCBiL1Rvb2xzL2J1aWxkYm90L2V4dGVybmFsLWNvbW1vbi5iYXQKaW5kZXggMjE2NWI4YS4uNGU5ZmU0MSAxMDA2NDQKLS0tIGEvVG9vbHMvYnVpbGRib3QvZXh0ZXJuYWwtY29tbW9uLmJhdAorKysgYi9Ub29scy9idWlsZGJvdC9leHRlcm5hbC1jb21tb24uYmF0CkBAIC0xNCw4ICsxNCw4IEBACiBAcmVtIGlmIGV4aXN0IHRrOC40LjE2IHJkIC9zL3EgdGs4LjQuMTYKIEByZW0gaWYgZXhpc3QgdGstOC40LjE4LjEgcmQgL3MvcSB0ay04LjQuMTguMQogQHJlbSBpZiBleGlzdCBkYi00LjQuMjAgcmQgL3MvcSBkYi00LjQuMjAKLUByZW0gaWYgZXhpc3Qgb3BlbnNzbC0xLjAuMGogcmQgL3MvcSBvcGVuc3NsLTEuMC4wagotQHJlbSBpZiBleGlzdCBzcWxpdGUtMy43LjQgcmQgL3MvcSBzcWxpdGUtMy43LjQgICAgCitAcmVtIGlmIGV4aXN0IG9wZW5zc2wtMS4wLjFjIHJkIC9zL3Egb3BlbnNzbC0xLjAuMWMKK0ByZW0gaWYgZXhpc3Qgc3FsaXRlLTMuNy4xMiByZCAvcy9xIHNxbGl0ZS0zLjcuMTIgICAgCiAKIEByZW0gYnppcAogaWYgbm90IGV4aXN0IGJ6aXAyLTEuMC42ICgKQEAgLTI0LDE3ICsyNCwyNSBAQAogKQogCiBAcmVtIE9wZW5TU0wKLWlmIG5vdCBleGlzdCBvcGVuc3NsLTEuMC4waiBzdm4gZXhwb3J0IGh0dHA6Ly9zdm4ucHl0aG9uLm9yZy9wcm9qZWN0cy9leHRlcm5hbC9vcGVuc3NsLTEuMC4wagoraWYgbm90IGV4aXN0IG9wZW5zc2wtMS4wLjFjICgKKyAgICByZCAvcy9xIG9wZW5zc2wtMS4wLjBqCisgICAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvb3BlbnNzbC0xLjAuMWMKKykKIAogQHJlbSB0Y2wvdGsKLWlmIG5vdCBleGlzdCB0Y2wtOC41LjkuMCAoCitpZiBub3QgZXhpc3QgdGNsLTguNS4xMS4wICgKICAgIHJkIC9zL3EgdGNsdGsgdGNsdGs2NAotICAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvdGNsLTguNS45LjAKKyAgIHN2biBleHBvcnQgaHR0cDovL3N2bi5weXRob24ub3JnL3Byb2plY3RzL2V4dGVybmFsL3RjbC04LjUuMTEuMAogKQotaWYgbm90IGV4aXN0IHRrLTguNS45LjAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvdGstOC41LjkuMAoraWYgbm90IGV4aXN0IHRrLTguNS4xMS4wIHN2biBleHBvcnQgaHR0cDovL3N2bi5weXRob24ub3JnL3Byb2plY3RzL2V4dGVybmFsL3RrLTguNS4xMS4wCiAKIEByZW0gc3FsaXRlMwotaWYgbm90IGV4aXN0IHNxbGl0ZS0zLjcuNCAoCi0gIHJkIC9zL3Egc3FsaXRlLXNvdXJjZS0zLjYuMjEKLSAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwvc3FsaXRlLTMuNy40CitpZiBub3QgZXhpc3Qgc3FsaXRlLTMuNy4xMiAoCisgIHJkIC9zL3Egc3FsaXRlLXNvdXJjZS0zLjcuNAorICBzdm4gZXhwb3J0IGh0dHA6Ly9zdm4ucHl0aG9uLm9yZy9wcm9qZWN0cy9leHRlcm5hbC9zcWxpdGUtMy43LjEyCispCisKK0ByZW0gbHptYQoraWYgbm90IGV4aXN0IHh6LTUuMC4zICgKKyAgc3ZuIGV4cG9ydCBodHRwOi8vc3ZuLnB5dGhvbi5vcmcvcHJvamVjdHMvZXh0ZXJuYWwveHotNS4wLjMKICkKZGlmZiAtLWdpdCBhL1Rvb2xzL2J1aWxkYm90L2V4dGVybmFsLmJhdCBiL1Rvb2xzL2J1aWxkYm90L2V4dGVybmFsLmJhdAppbmRleCBlOTU4ZmQ2Li5lZDVjMTBlIDEwMDY0NAotLS0gYS9Ub29scy9idWlsZGJvdC9leHRlcm5hbC5iYXQKKysrIGIvVG9vbHMvYnVpbGRib3QvZXh0ZXJuYWwuYmF0CkBAIC0yLDIwICsyLDIwIEBACiAKIEByZW0gQXNzdW1lIHdlIHN0YXJ0IGluc2lkZSB0aGUgUHl0aG9uIHNvdXJjZSBkaXJlY3RvcnkKIGNhbGwgIlRvb2xzXGJ1aWxkYm90XGV4dGVybmFsLWNvbW1vbi5iYXQiCi1jYWxsICIlVlM5MENPTU5UT09MUyVcdnN2YXJzMzIuYmF0IgorY2FsbCAiJVZTMTAwQ09NTlRPT0xTJVx2c3ZhcnMzMi5iYXQiCiAKIGlmIG5vdCBleGlzdCB0Y2x0a1xiaW5cdGNsODVnLmRsbCAoCiAgICAgQHJlbSBhbGwgYW5kIGluc3RhbGwgbmVlZCB0byBiZSBzZXBhcmF0ZSBpbnZvY2F0aW9ucywgb3RoZXJ3aXNlIG5tYWtlaGxwIGlzIG5vdCBmb3VuZCBvbiBpbnN0YWxsCi0gICAgY2QgdGNsLTguNS45LjBcd2luCisgICAgY2QgdGNsLTguNS4xMS4wXHdpbgogICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIENPTVBJTEVSRkxBR1M9LURXSU5WRVI9MHgwNTAwIERFQlVHPTEgSU5TVEFMTERJUj0uLlwuLlx0Y2x0ayBjbGVhbiBhbGwgCiAgICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgREVCVUc9MSBJTlNUQUxMRElSPS4uXC4uXHRjbHRrIGluc3RhbGwKICAgICBjZCAuLlwuLgogKQogCiBpZiBub3QgZXhpc3QgdGNsdGtcYmluXHRrODVnLmRsbCAoCi0gICAgY2QgdGstOC41LjkuMFx3aW4gICAgCi0gICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgT1BUUz1ub3hwIERFQlVHPTEgSU5TVEFMTERJUj0uLlwuLlx0Y2x0ayBUQ0xESVI9Li5cLi5cdGNsLTguNS45LjAgY2xlYW4KLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCBPUFRTPW5veHAgREVCVUc9MSBJTlNUQUxMRElSPS4uXC4uXHRjbHRrIFRDTERJUj0uLlwuLlx0Y2wtOC41LjkuMCBhbGwKLSAgICBubWFrZSAtZiBtYWtlZmlsZS52YyBDT01QSUxFUkZMQUdTPS1EV0lOVkVSPTB4MDUwMCBPUFRTPW5veHAgREVCVUc9MSBJTlNUQUxMRElSPS4uXC4uXHRjbHRrIFRDTERJUj0uLlwuLlx0Y2wtOC41LjkuMCBpbnN0YWxsCisgICAgY2QgdGstOC41LjExLjBcd2luCisgICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgT1BUUz1ub3hwIERFQlVHPTEgSU5TVEFMTERJUj0uLlwuLlx0Y2x0ayBUQ0xESVI9Li5cLi5cdGNsLTguNS4xMS4wIGNsZWFuCisgICAgbm1ha2UgLWYgbWFrZWZpbGUudmMgQ09NUElMRVJGTEFHUz0tRFdJTlZFUj0weDA1MDAgT1BUUz1ub3hwIERFQlVHPTEgSU5TVEFMTERJUj0uLlwuLlx0Y2x0ayBUQ0xESVI9Li5cLi5cdGNsLTguNS4xMS4wIGFsbAorICAgIG5tYWtlIC1mIG1ha2VmaWxlLnZjIENPTVBJTEVSRkxBR1M9LURXSU5WRVI9MHgwNTAwIE9QVFM9bm94cCBERUJVRz0xIElOU1RBTExESVI9Li5cLi5cdGNsdGsgVENMRElSPS4uXC4uXHRjbC04LjUuMTEuMCBpbnN0YWxsCiAgICAgY2QgLi5cLi4KICkKZGlmZiAtLWdpdCBhL1Rvb2xzL2NjYmVuY2gvY2NiZW5jaC5weSBiL1Rvb2xzL2NjYmVuY2gvY2NiZW5jaC5weQppbmRleCA5ZjcxMThmLi42MGNlYzNlIDEwMDY0NAotLS0gYS9Ub29scy9jY2JlbmNoL2NjYmVuY2gucHkKKysrIGIvVG9vbHMvY2NiZW5jaC9jY2JlbmNoLnB5CkBAIC0xMCw3ICsxMCw2IEBACiBpbXBvcnQgdGltZQogaW1wb3J0IG9zCiBpbXBvcnQgc3lzCi1pbXBvcnQgZnVuY3Rvb2xzCiBpbXBvcnQgaXRlcnRvb2xzCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgc3VicHJvY2VzcwpAQCAtNDM1LDcwICs0MzQsNzAgQEAKIGRlZiBydW5fYmFuZHdpZHRoX3Rlc3QoZnVuYywgYXJncywgbnRocmVhZHMpOgogICAgICMgQ3JlYXRlIGEgbGlzdGVuaW5nIHNvY2tldCB0byByZWNlaXZlIHRoZSBwYWNrZXRzLiBXZSB1c2UgVURQIHdoaWNoIHNob3VsZAogICAgICMgYmUgcGFpbmxlc3NseSBjcm9zcy1wbGF0Zm9ybS4KLSAgICBzb2NrID0gc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfREdSQU0pCi0gICAgc29jay5iaW5kKCgiMTI3LjAuMC4xIiwgMCkpCi0gICAgYWRkciA9IHNvY2suZ2V0c29ja25hbWUoKQorICAgIHdpdGggc29ja2V0LnNvY2tldChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfREdSQU0pIGFzIHNvY2s6CisgICAgICAgIHNvY2suYmluZCgoIjEyNy4wLjAuMSIsIDApKQorICAgICAgICBhZGRyID0gc29jay5nZXRzb2NrbmFtZSgpCiAKLSAgICBkdXJhdGlvbiA9IEJBTkRXSURUSF9EVVJBVElPTgotICAgIHBhY2tldF9zaXplID0gQkFORFdJRFRIX1BBQ0tFVF9TSVpFCi0KLSAgICByZXN1bHRzID0gW10KLSAgICB0aHJlYWRzID0gW10KLSAgICBlbmRfZXZlbnQgPSBbXQotICAgIHN0YXJ0X2NvbmQgPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLSAgICBzdGFydGVkID0gRmFsc2UKLSAgICBpZiBudGhyZWFkcyA+IDA6Ci0gICAgICAgICMgV2FybSB1cAotICAgICAgICBmdW5jKCphcmdzKQorICAgICAgICBkdXJhdGlvbiA9IEJBTkRXSURUSF9EVVJBVElPTgorICAgICAgICBwYWNrZXRfc2l6ZSA9IEJBTkRXSURUSF9QQUNLRVRfU0laRQogCiAgICAgICAgIHJlc3VsdHMgPSBbXQotICAgICAgICBsb29wID0gVGltZWRMb29wKGZ1bmMsIGFyZ3MpCi0gICAgICAgIHJlYWR5ID0gW10KLSAgICAgICAgcmVhZHlfY29uZCA9IHRocmVhZGluZy5Db25kaXRpb24oKQorICAgICAgICB0aHJlYWRzID0gW10KKyAgICAgICAgZW5kX2V2ZW50ID0gW10KKyAgICAgICAgc3RhcnRfY29uZCA9IHRocmVhZGluZy5Db25kaXRpb24oKQorICAgICAgICBzdGFydGVkID0gRmFsc2UKKyAgICAgICAgaWYgbnRocmVhZHMgPiAwOgorICAgICAgICAgICAgIyBXYXJtIHVwCisgICAgICAgICAgICBmdW5jKCphcmdzKQogCi0gICAgICAgIGRlZiBydW4oKToKKyAgICAgICAgICAgIHJlc3VsdHMgPSBbXQorICAgICAgICAgICAgbG9vcCA9IFRpbWVkTG9vcChmdW5jLCBhcmdzKQorICAgICAgICAgICAgcmVhZHkgPSBbXQorICAgICAgICAgICAgcmVhZHlfY29uZCA9IHRocmVhZGluZy5Db25kaXRpb24oKQorCisgICAgICAgICAgICBkZWYgcnVuKCk6CisgICAgICAgICAgICAgICAgd2l0aCByZWFkeV9jb25kOgorICAgICAgICAgICAgICAgICAgICByZWFkeS5hcHBlbmQoTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgcmVhZHlfY29uZC5ub3RpZnkoKQorICAgICAgICAgICAgICAgIHdpdGggc3RhcnRfY29uZDoKKyAgICAgICAgICAgICAgICAgICAgd2hpbGUgbm90IHN0YXJ0ZWQ6CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF9jb25kLndhaXQoKQorICAgICAgICAgICAgICAgIGxvb3Aoc3RhcnRfdGltZSwgZHVyYXRpb24gKiAxLjUsIGVuZF9ldmVudCwgZG9feWllbGQ9RmFsc2UpCisKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKG50aHJlYWRzKToKKyAgICAgICAgICAgICAgICB0aHJlYWRzLmFwcGVuZCh0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1ydW4pKQorICAgICAgICAgICAgZm9yIHQgaW4gdGhyZWFkczoKKyAgICAgICAgICAgICAgICB0LnNldERhZW1vbihUcnVlKQorICAgICAgICAgICAgICAgIHQuc3RhcnQoKQorICAgICAgICAgICAgIyBXYWl0IGZvciB0aHJlYWRzIHRvIGJlIHJlYWR5CiAgICAgICAgICAgICB3aXRoIHJlYWR5X2NvbmQ6Ci0gICAgICAgICAgICAgICAgcmVhZHkuYXBwZW5kKE5vbmUpCi0gICAgICAgICAgICAgICAgcmVhZHlfY29uZC5ub3RpZnkoKQotICAgICAgICAgICAgd2l0aCBzdGFydF9jb25kOgotICAgICAgICAgICAgICAgIHdoaWxlIG5vdCBzdGFydGVkOgotICAgICAgICAgICAgICAgICAgICBzdGFydF9jb25kLndhaXQoKQotICAgICAgICAgICAgbG9vcChzdGFydF90aW1lLCBkdXJhdGlvbiAqIDEuNSwgZW5kX2V2ZW50LCBkb195aWVsZD1GYWxzZSkKKyAgICAgICAgICAgICAgICB3aGlsZSBsZW4ocmVhZHkpIDwgbnRocmVhZHM6CisgICAgICAgICAgICAgICAgICAgIHJlYWR5X2NvbmQud2FpdCgpCiAKLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UobnRocmVhZHMpOgotICAgICAgICAgICAgdGhyZWFkcy5hcHBlbmQodGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9cnVuKSkKLSAgICAgICAgZm9yIHQgaW4gdGhyZWFkczoKLSAgICAgICAgICAgIHQuc2V0RGFlbW9uKFRydWUpCi0gICAgICAgICAgICB0LnN0YXJ0KCkKLSAgICAgICAgIyBXYWl0IGZvciB0aHJlYWRzIHRvIGJlIHJlYWR5Ci0gICAgICAgIHdpdGggcmVhZHlfY29uZDoKLSAgICAgICAgICAgIHdoaWxlIGxlbihyZWFkeSkgPCBudGhyZWFkczoKLSAgICAgICAgICAgICAgICByZWFkeV9jb25kLndhaXQoKQotCi0gICAgIyBSdW4gdGhlIGNsaWVudCBhbmQgd2FpdCBmb3IgdGhlIGZpcnN0IHBhY2tldCB0byBhcnJpdmUgYmVmb3JlCi0gICAgIyB1bmJsb2NraW5nIHRoZSBiYWNrZ3JvdW5kIHRocmVhZHMuCi0gICAgcHJvY2VzcyA9IHJ1bl9iYW5kd2lkdGhfY2xpZW50KGFkZHI9YWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFja2V0X3NpemU9cGFja2V0X3NpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uPWR1cmF0aW9uKQotICAgIF90aW1lID0gdGltZS50aW1lCi0gICAgIyBUaGlzIHdpbGwgYWxzbyB3YWl0IGZvciB0aGUgcGFyZW50IHRvIGJlIHJlYWR5Ci0gICAgcyA9IF9yZWN2KHNvY2ssIHBhY2tldF9zaXplKQotICAgIHJlbW90ZV9hZGRyID0gZXZhbChzLnBhcnRpdGlvbignIycpWzBdKQotCi0gICAgd2l0aCBzdGFydF9jb25kOgotICAgICAgICBzdGFydF90aW1lID0gX3RpbWUoKQotICAgICAgICBzdGFydGVkID0gVHJ1ZQotICAgICAgICBzdGFydF9jb25kLm5vdGlmeShudGhyZWFkcykKLQotICAgIG4gPSAwCi0gICAgZmlyc3RfdGltZSA9IE5vbmUKLSAgICB3aGlsZSBub3QgZW5kX2V2ZW50IGFuZCBCV19FTkQgbm90IGluIHM6Ci0gICAgICAgIF9zZW5kdG8oc29jaywgcywgcmVtb3RlX2FkZHIpCisgICAgICAgICMgUnVuIHRoZSBjbGllbnQgYW5kIHdhaXQgZm9yIHRoZSBmaXJzdCBwYWNrZXQgdG8gYXJyaXZlIGJlZm9yZQorICAgICAgICAjIHVuYmxvY2tpbmcgdGhlIGJhY2tncm91bmQgdGhyZWFkcy4KKyAgICAgICAgcHJvY2VzcyA9IHJ1bl9iYW5kd2lkdGhfY2xpZW50KGFkZHI9YWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2tldF9zaXplPXBhY2tldF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb249ZHVyYXRpb24pCisgICAgICAgIF90aW1lID0gdGltZS50aW1lCisgICAgICAgICMgVGhpcyB3aWxsIGFsc28gd2FpdCBmb3IgdGhlIHBhcmVudCB0byBiZSByZWFkeQogICAgICAgICBzID0gX3JlY3Yoc29jaywgcGFja2V0X3NpemUpCi0gICAgICAgIGlmIGZpcnN0X3RpbWUgaXMgTm9uZToKLSAgICAgICAgICAgIGZpcnN0X3RpbWUgPSBfdGltZSgpCi0gICAgICAgIG4gKz0gMQotICAgIGVuZF90aW1lID0gX3RpbWUoKQorICAgICAgICByZW1vdGVfYWRkciA9IGV2YWwocy5wYXJ0aXRpb24oJyMnKVswXSkKKworICAgICAgICB3aXRoIHN0YXJ0X2NvbmQ6CisgICAgICAgICAgICBzdGFydF90aW1lID0gX3RpbWUoKQorICAgICAgICAgICAgc3RhcnRlZCA9IFRydWUKKyAgICAgICAgICAgIHN0YXJ0X2NvbmQubm90aWZ5KG50aHJlYWRzKQorCisgICAgICAgIG4gPSAwCisgICAgICAgIGZpcnN0X3RpbWUgPSBOb25lCisgICAgICAgIHdoaWxlIG5vdCBlbmRfZXZlbnQgYW5kIEJXX0VORCBub3QgaW4gczoKKyAgICAgICAgICAgIF9zZW5kdG8oc29jaywgcywgcmVtb3RlX2FkZHIpCisgICAgICAgICAgICBzID0gX3JlY3Yoc29jaywgcGFja2V0X3NpemUpCisgICAgICAgICAgICBpZiBmaXJzdF90aW1lIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgZmlyc3RfdGltZSA9IF90aW1lKCkKKyAgICAgICAgICAgIG4gKz0gMQorICAgICAgICBlbmRfdGltZSA9IF90aW1lKCkKIAogICAgIGVuZF9ldmVudC5hcHBlbmQoTm9uZSkKICAgICBmb3IgdCBpbiB0aHJlYWRzOgpkaWZmIC0tZ2l0IGEvVG9vbHMvZGVtby9saWZlLnB5IGIvVG9vbHMvZGVtby9saWZlLnB5CmluZGV4IGRmYjlhYjguLmZjNGNiNDkgMTAwNzU1Ci0tLSBhL1Rvb2xzL2RlbW8vbGlmZS5weQorKysgYi9Ub29scy9kZW1vL2xpZmUucHkKQEAgLTQ2LDM4ICs0NiwzOCBAQAogICAgICAgICBzZWxmLnN0YXRlID0ge30KICAgICAgICAgc2VsZi5zY3IgPSBzY3IKICAgICAgICAgWSwgWCA9IHNlbGYuc2NyLmdldG1heHl4KCkKLSAgICAgICAgc2VsZi5YLCBzZWxmLlkgPSBYLTIsIFktMi0xCisgICAgICAgIHNlbGYuWCwgc2VsZi5ZID0gWCAtIDIsIFkgLSAyIC0gMQogICAgICAgICBzZWxmLmNoYXIgPSBjaGFyCiAgICAgICAgIHNlbGYuc2NyLmNsZWFyKCkKIAogICAgICAgICAjIERyYXcgYSBib3JkZXIgYXJvdW5kIHRoZSBib2FyZAotICAgICAgICBib3JkZXJfbGluZSA9ICcrJysoc2VsZi5YKictJykrJysnCisgICAgICAgIGJvcmRlcl9saW5lID0gJysnICsgKHNlbGYuWCAqICctJykgKyAnKycKICAgICAgICAgc2VsZi5zY3IuYWRkc3RyKDAsIDAsIGJvcmRlcl9saW5lKQotICAgICAgICBzZWxmLnNjci5hZGRzdHIoc2VsZi5ZKzEsIDAsIGJvcmRlcl9saW5lKQorICAgICAgICBzZWxmLnNjci5hZGRzdHIoc2VsZi5ZICsgMSwgMCwgYm9yZGVyX2xpbmUpCiAgICAgICAgIGZvciB5IGluIHJhbmdlKDAsIHNlbGYuWSk6Ci0gICAgICAgICAgICBzZWxmLnNjci5hZGRzdHIoMSt5LCAwLCAnfCcpCi0gICAgICAgICAgICBzZWxmLnNjci5hZGRzdHIoMSt5LCBzZWxmLlgrMSwgJ3wnKQorICAgICAgICAgICAgc2VsZi5zY3IuYWRkc3RyKDEgKyB5LCAwLCAnfCcpCisgICAgICAgICAgICBzZWxmLnNjci5hZGRzdHIoMSArIHksIHNlbGYuWCArIDEsICd8JykKICAgICAgICAgc2VsZi5zY3IucmVmcmVzaCgpCiAKICAgICBkZWYgc2V0KHNlbGYsIHksIHgpOgogICAgICAgICAiIiJTZXQgYSBjZWxsIHRvIHRoZSBsaXZlIHN0YXRlIiIiCi0gICAgICAgIGlmIHg8MCBvciBzZWxmLlg8PXggb3IgeTwwIG9yIHNlbGYuWTw9eToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkNvb3JkaW5hdGVzIG91dCBvZiByYW5nZSAlaSwlaSIlICh5LCB4KSkKLSAgICAgICAgc2VsZi5zdGF0ZVt4LHldID0gMQorICAgICAgICBpZiB4IDwgMCBvciBzZWxmLlggPD0geCBvciB5IDwgMCBvciBzZWxmLlkgPD0geToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkNvb3JkaW5hdGVzIG91dCBvZiByYW5nZSAlaSwlaSIgJSAoeSwgeCkpCisgICAgICAgIHNlbGYuc3RhdGVbeCwgeV0gPSAxCiAKICAgICBkZWYgdG9nZ2xlKHNlbGYsIHksIHgpOgogICAgICAgICAiIiJUb2dnbGUgYSBjZWxsJ3Mgc3RhdGUgYmV0d2VlbiBsaXZlIGFuZCBkZWFkIiIiCiAgICAgICAgIGlmIHggPCAwIG9yIHNlbGYuWCA8PSB4IG9yIHkgPCAwIG9yIHNlbGYuWSA8PSB5OgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQ29vcmRpbmF0ZXMgb3V0IG9mIHJhbmdlICVpLCVpIiUgKHksIHgpKQorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiQ29vcmRpbmF0ZXMgb3V0IG9mIHJhbmdlICVpLCVpIiAlICh5LCB4KSkKICAgICAgICAgaWYgKHgsIHkpIGluIHNlbGYuc3RhdGU6CiAgICAgICAgICAgICBkZWwgc2VsZi5zdGF0ZVt4LCB5XQotICAgICAgICAgICAgc2VsZi5zY3IuYWRkY2goeSsxLCB4KzEsICcgJykKKyAgICAgICAgICAgIHNlbGYuc2NyLmFkZGNoKHkgKyAxLCB4ICsgMSwgJyAnKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5zdGF0ZVt4LCB5XSA9IDEKICAgICAgICAgICAgIGlmIGN1cnNlcy5oYXNfY29sb3JzKCk6CiAgICAgICAgICAgICAgICAgIyBMZXQncyBwaWNrIGEgcmFuZG9tIGNvbG9yIQogICAgICAgICAgICAgICAgIHNlbGYuc2NyLmF0dHJzZXQoY3Vyc2VzLmNvbG9yX3BhaXIocmFuZG9tLnJhbmRyYW5nZSgxLCA3KSkpCi0gICAgICAgICAgICBzZWxmLnNjci5hZGRjaCh5KzEsIHgrMSwgc2VsZi5jaGFyKQorICAgICAgICAgICAgc2VsZi5zY3IuYWRkY2goeSArIDEsIHggKyAxLCBzZWxmLmNoYXIpCiAgICAgICAgICAgICBzZWxmLnNjci5hdHRyc2V0KDApCiAgICAgICAgIHNlbGYuc2NyLnJlZnJlc2goKQogCkBAIC04OCw0MyArODgsNDYgQEAKIAogICAgIGRlZiBkaXNwbGF5KHNlbGYsIHVwZGF0ZV9ib2FyZD1UcnVlKToKICAgICAgICAgIiIiRGlzcGxheSB0aGUgd2hvbGUgYm9hcmQsIG9wdGlvbmFsbHkgY29tcHV0aW5nIG9uZSBnZW5lcmF0aW9uIiIiCi0gICAgICAgIE0sTiA9IHNlbGYuWCwgc2VsZi5ZCisgICAgICAgIE0sIE4gPSBzZWxmLlgsIHNlbGYuWQogICAgICAgICBpZiBub3QgdXBkYXRlX2JvYXJkOgogICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgTSk6CiAgICAgICAgICAgICAgICAgZm9yIGogaW4gcmFuZ2UoMCwgTik6Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpLGopIGluIHNlbGYuc3RhdGU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjci5hZGRjaChqKzEsIGkrMSwgc2VsZi5jaGFyKQorICAgICAgICAgICAgICAgICAgICBpZiAoaSwgaikgaW4gc2VsZi5zdGF0ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NyLmFkZGNoKGogKyAxLCBpICsgMSwgc2VsZi5jaGFyKQogICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY3IuYWRkY2goaisxLCBpKzEsICcgJykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NyLmFkZGNoKGogKyAxLCBpICsgMSwgJyAnKQogICAgICAgICAgICAgc2VsZi5zY3IucmVmcmVzaCgpCiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICBkID0ge30KICAgICAgICAgc2VsZi5ib3JpbmcgPSAxCiAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIE0pOgotICAgICAgICAgICAgTCA9IHJhbmdlKCBtYXgoMCwgaS0xKSwgbWluKE0sIGkrMikgKQorICAgICAgICAgICAgTCA9IHJhbmdlKG1heCgwLCBpIC0gMSksIG1pbihNLCBpICsgMikpCiAgICAgICAgICAgICBmb3IgaiBpbiByYW5nZSgwLCBOKToKICAgICAgICAgICAgICAgICBzID0gMAotICAgICAgICAgICAgICAgIGxpdmUgPSAoaSxqKSBpbiBzZWxmLnN0YXRlCi0gICAgICAgICAgICAgICAgZm9yIGsgaW4gcmFuZ2UoIG1heCgwLCBqLTEpLCBtaW4oTiwgaisyKSApOgorICAgICAgICAgICAgICAgIGxpdmUgPSAoaSwgaikgaW4gc2VsZi5zdGF0ZQorICAgICAgICAgICAgICAgIGZvciBrIGluIHJhbmdlKG1heCgwLCBqIC0gMSksIG1pbihOLCBqICsgMikpOgogICAgICAgICAgICAgICAgICAgICBmb3IgbCBpbiBMOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGwsaykgaW4gc2VsZi5zdGF0ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChsLCBrKSBpbiBzZWxmLnN0YXRlOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHMgKz0gMQogICAgICAgICAgICAgICAgIHMgLT0gbGl2ZQogICAgICAgICAgICAgICAgIGlmIHMgPT0gMzoKICAgICAgICAgICAgICAgICAgICAgIyBCaXJ0aAotICAgICAgICAgICAgICAgICAgICBkW2ksal0gPSAxCisgICAgICAgICAgICAgICAgICAgIGRbaSwgal0gPSAxCiAgICAgICAgICAgICAgICAgICAgIGlmIGN1cnNlcy5oYXNfY29sb3JzKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAjIExldCdzIHBpY2sgYSByYW5kb20gY29sb3IhCiAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjci5hdHRyc2V0KGN1cnNlcy5jb2xvcl9wYWlyKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmRvbS5yYW5kcmFuZ2UoMSwgNykpKQotICAgICAgICAgICAgICAgICAgICBzZWxmLnNjci5hZGRjaChqKzEsIGkrMSwgc2VsZi5jaGFyKQorICAgICAgICAgICAgICAgICAgICBzZWxmLnNjci5hZGRjaChqICsgMSwgaSArIDEsIHNlbGYuY2hhcikKICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY3IuYXR0cnNldCgwKQotICAgICAgICAgICAgICAgICAgICBpZiBub3QgbGl2ZTogc2VsZi5ib3JpbmcgPSAwCi0gICAgICAgICAgICAgICAgZWxpZiBzID09IDIgYW5kIGxpdmU6IGRbaSxqXSA9IDEgICAgICAgIyBTdXJ2aXZhbAorICAgICAgICAgICAgICAgICAgICBpZiBub3QgbGl2ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYm9yaW5nID0gMAorICAgICAgICAgICAgICAgIGVsaWYgcyA9PSAyIGFuZCBsaXZlOgorICAgICAgICAgICAgICAgICAgICAjIFN1cnZpdmFsCisgICAgICAgICAgICAgICAgICAgIGRbaSwgal0gPSAxCiAgICAgICAgICAgICAgICAgZWxpZiBsaXZlOgogICAgICAgICAgICAgICAgICAgICAjIERlYXRoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2NyLmFkZGNoKGorMSwgaSsxLCAnICcpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NyLmFkZGNoKGogKyAxLCBpICsgMSwgJyAnKQogICAgICAgICAgICAgICAgICAgICBzZWxmLmJvcmluZyA9IDAKICAgICAgICAgc2VsZi5zdGF0ZSA9IGQKICAgICAgICAgc2VsZi5zY3IucmVmcmVzaCgpCkBAIC0xMzUsMTYgKzEzOCwxNyBAQAogICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBzZWxmLlgpOgogICAgICAgICAgICAgZm9yIGogaW4gcmFuZ2UoMCwgc2VsZi5ZKToKICAgICAgICAgICAgICAgICBpZiByYW5kb20ucmFuZG9tKCkgPiAwLjU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2V0KGosaSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXQoaiwgaSkKIAogCiBkZWYgZXJhc2VfbWVudShzdGRzY3IsIG1lbnVfeSk6CiAgICAgIkNsZWFyIHRoZSBzcGFjZSB3aGVyZSB0aGUgbWVudSByZXNpZGVzIgogICAgIHN0ZHNjci5tb3ZlKG1lbnVfeSwgMCkKICAgICBzdGRzY3IuY2xydG9lb2woKQotICAgIHN0ZHNjci5tb3ZlKG1lbnVfeSsxLCAwKQorICAgIHN0ZHNjci5tb3ZlKG1lbnVfeSArIDEsIDApCiAgICAgc3Rkc2NyLmNscnRvZW9sKCkKIAorCiBkZWYgZGlzcGxheV9tZW51KHN0ZHNjciwgbWVudV95KToKICAgICAiRGlzcGxheSB0aGUgbWVudSBvZiBwb3NzaWJsZSBrZXlzdHJva2UgY29tbWFuZHMiCiAgICAgZXJhc2VfbWVudShzdGRzY3IsIG1lbnVfeSkKQEAgLTE1NCwxNSArMTU4LDE2IEBACiAgICAgICAgIHN0ZHNjci5hdHRyc2V0KGN1cnNlcy5jb2xvcl9wYWlyKDEpKQogICAgIHN0ZHNjci5hZGRzdHIobWVudV95LCA0LAogICAgICAgICAnVXNlIHRoZSBjdXJzb3Iga2V5cyB0byBtb3ZlLCBhbmQgc3BhY2Ugb3IgRW50ZXIgdG8gdG9nZ2xlIGEgY2VsbC4nKQotICAgIHN0ZHNjci5hZGRzdHIobWVudV95KzEsIDQsCisgICAgc3Rkc2NyLmFkZHN0cihtZW51X3kgKyAxLCA0LAogICAgICAgICAnRSlyYXNlIHRoZSBib2FyZCwgUilhbmRvbSBmaWxsLCBTKXRlcCBvbmNlIG9yIEMpb250aW51b3VzbHksIFEpdWl0JykKICAgICBzdGRzY3IuYXR0cnNldCgwKQogCisKIGRlZiBrZXlsb29wKHN0ZHNjcik6CiAgICAgIyBDbGVhciB0aGUgc2NyZWVuIGFuZCBkaXNwbGF5IHRoZSBtZW51IG9mIGtleXMKICAgICBzdGRzY3IuY2xlYXIoKQogICAgIHN0ZHNjcl95LCBzdGRzY3JfeCA9IHN0ZHNjci5nZXRtYXh5eCgpCi0gICAgbWVudV95ID0gKHN0ZHNjcl95LTMpLTEKKyAgICBtZW51X3kgPSAoc3Rkc2NyX3kgLSAzKSAtIDEKICAgICBkaXNwbGF5X21lbnUoc3Rkc2NyLCBtZW51X3kpCiAKICAgICAjIElmIGNvbG9yLCB0aGVuIGluaXRpYWxpemUgdGhlIGNvbG9yIHBhaXJzCkBAIC0xNzksMTYgKzE4NCwxNiBAQAogICAgIGN1cnNlcy5tb3VzZW1hc2soY3Vyc2VzLkJVVFRPTjFfQ0xJQ0tFRCkKIAogICAgICMgQWxsb2NhdGUgYSBzdWJ3aW5kb3cgZm9yIHRoZSBMaWZlIGJvYXJkIGFuZCBjcmVhdGUgdGhlIGJvYXJkIG9iamVjdAotICAgIHN1YndpbiA9IHN0ZHNjci5zdWJ3aW4oc3Rkc2NyX3ktMywgc3Rkc2NyX3gsIDAsIDApCisgICAgc3Vid2luID0gc3Rkc2NyLnN1YndpbihzdGRzY3JfeSAtIDMsIHN0ZHNjcl94LCAwLCAwKQogICAgIGJvYXJkID0gTGlmZUJvYXJkKHN1YndpbiwgY2hhcj1vcmQoJyonKSkKICAgICBib2FyZC5kaXNwbGF5KHVwZGF0ZV9ib2FyZD1GYWxzZSkKIAogICAgICMgeHBvcywgeXBvcyBhcmUgdGhlIGN1cnNvcidzIHBvc2l0aW9uCi0gICAgeHBvcywgeXBvcyA9IGJvYXJkLlgvLzIsIGJvYXJkLlkvLzIKKyAgICB4cG9zLCB5cG9zID0gYm9hcmQuWCAvLyAyLCBib2FyZC5ZIC8vIDIKIAogICAgICMgTWFpbiBsb29wOgogICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIHN0ZHNjci5tb3ZlKDEreXBvcywgMSt4cG9zKSAgICAgIyBNb3ZlIHRoZSBjdXJzb3IKKyAgICAgICAgc3Rkc2NyLm1vdmUoMSArIHlwb3MsIDEgKyB4cG9zKSAgICMgTW92ZSB0aGUgY3Vyc29yCiAgICAgICAgIGMgPSBzdGRzY3IuZ2V0Y2goKSAgICAgICAgICAgICAgICAjIEdldCBhIGtleXN0cm9rZQogICAgICAgICBpZiAwIDwgYyA8IDI1NjoKICAgICAgICAgICAgIGMgPSBjaHIoYykKQEAgLTIyNCwxNSArMjI5LDIxIEBACiAgICAgICAgICAgICAgICAgYm9hcmQuZGlzcGxheSh1cGRhdGVfYm9hcmQ9RmFsc2UpCiAgICAgICAgICAgICBlbGlmIGMgaW4gJ1NzJzoKICAgICAgICAgICAgICAgICBib2FyZC5kaXNwbGF5KCkKLSAgICAgICAgICAgIGVsc2U6IHBhc3MgICAgICAgICAgICAgICAgICAjIElnbm9yZSBpbmNvcnJlY3Qga2V5cwotICAgICAgICBlbGlmIGMgPT0gY3Vyc2VzLktFWV9VUCBhbmQgeXBvcyA+IDA6ICAgICAgICAgICAgeXBvcyAtPSAxCi0gICAgICAgIGVsaWYgYyA9PSBjdXJzZXMuS0VZX0RPV04gYW5kIHlwb3MgPCBib2FyZC5ZLTE6ICB5cG9zICs9IDEKLSAgICAgICAgZWxpZiBjID09IGN1cnNlcy5LRVlfTEVGVCBhbmQgeHBvcyA+IDA6ICAgICAgICAgIHhwb3MgLT0gMQotICAgICAgICBlbGlmIGMgPT0gY3Vyc2VzLktFWV9SSUdIVCBhbmQgeHBvcyA8IGJvYXJkLlgtMTogeHBvcyArPSAxCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgSWdub3JlIGluY29ycmVjdCBrZXlzCisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIGMgPT0gY3Vyc2VzLktFWV9VUCBhbmQgeXBvcyA+IDA6CisgICAgICAgICAgICB5cG9zIC09IDEKKyAgICAgICAgZWxpZiBjID09IGN1cnNlcy5LRVlfRE9XTiBhbmQgeXBvcyArIDEgPCBib2FyZC5ZOgorICAgICAgICAgICAgeXBvcyArPSAxCisgICAgICAgIGVsaWYgYyA9PSBjdXJzZXMuS0VZX0xFRlQgYW5kIHhwb3MgPiAwOgorICAgICAgICAgICAgeHBvcyAtPSAxCisgICAgICAgIGVsaWYgYyA9PSBjdXJzZXMuS0VZX1JJR0hUIGFuZCB4cG9zICsgMSA8IGJvYXJkLlg6CisgICAgICAgICAgICB4cG9zICs9IDEKICAgICAgICAgZWxpZiBjID09IGN1cnNlcy5LRVlfTU9VU0U6CiAgICAgICAgICAgICBtb3VzZV9pZCwgbW91c2VfeCwgbW91c2VfeSwgbW91c2VfeiwgYnV0dG9uX3N0YXRlID0gY3Vyc2VzLmdldG1vdXNlKCkKLSAgICAgICAgICAgIGlmIChtb3VzZV94ID4gMCBhbmQgbW91c2VfeCA8IGJvYXJkLlgrMSBhbmQKLSAgICAgICAgICAgICAgICBtb3VzZV95ID4gMCBhbmQgbW91c2VfeSA8IGJvYXJkLlkrMSk6CisgICAgICAgICAgICBpZiAobW91c2VfeCA+IDAgYW5kIG1vdXNlX3ggPCBib2FyZC5YICsgMSBhbmQKKyAgICAgICAgICAgICAgICBtb3VzZV95ID4gMCBhbmQgbW91c2VfeSA8IGJvYXJkLlkgKyAxKToKICAgICAgICAgICAgICAgICB4cG9zID0gbW91c2VfeCAtIDEKICAgICAgICAgICAgICAgICB5cG9zID0gbW91c2VfeSAtIDEKICAgICAgICAgICAgICAgICBib2FyZC50b2dnbGUoeXBvcywgeHBvcykKQEAgLTI0NSw3ICsyNTYsNyBAQAogCiAKIGRlZiBtYWluKHN0ZHNjcik6Ci0gICAga2V5bG9vcChzdGRzY3IpICAgICAgICAgICAgICAgICAgICAjIEVudGVyIHRoZSBtYWluIGxvb3AKKyAgICBrZXlsb29wKHN0ZHNjcikgICAgICAgICAgICAgICAgICMgRW50ZXIgdGhlIG1haW4gbG9vcAogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIGN1cnNlcy53cmFwcGVyKG1haW4pCmRpZmYgLS1naXQgYS9Ub29scy9kZW1vL3NzMS5weSBiL1Rvb2xzL2RlbW8vc3MxLnB5CmluZGV4IDRjZWE2NjcuLjcxYzliZTggMTAwNzU1Ci0tLSBhL1Rvb2xzL2RlbW8vc3MxLnB5CisrKyBiL1Rvb2xzL2RlbW8vc3MxLnB5CkBAIC04MTIsNyArODEyLDYgQEAKIAogZGVmIHRlc3RfYmFzaWMoKToKICAgICAiQmFzaWMgbm9uLWd1aSBzZWxmLXRlc3QuIgotICAgIGltcG9ydCBvcwogICAgIGEgPSBTaGVldCgpCiAgICAgZm9yIHggaW4gcmFuZ2UoMSwgMTEpOgogICAgICAgICBmb3IgeSBpbiByYW5nZSgxLCAxMSk6CmRpZmYgLS1naXQgYS9Ub29scy9nZGIvbGlicHl0aG9uLnB5IGIvVG9vbHMvZ2RiL2xpYnB5dGhvbi5weQppbmRleCA4YmJiYjEwLi4yY2RjM2RhIDEwMDY0NAotLS0gYS9Ub29scy9nZGIvbGlicHl0aG9uLnB5CisrKyBiL1Rvb2xzL2dkYi9saWJweXRob24ucHkKQEAgLTQ5LDYgKzQ5LDExIEBACiBfdHlwZV9jaGFyX3B0ciA9IGdkYi5sb29rdXBfdHlwZSgnY2hhcicpLnBvaW50ZXIoKSAjIGNoYXIqCiBfdHlwZV91bnNpZ25lZF9jaGFyX3B0ciA9IGdkYi5sb29rdXBfdHlwZSgndW5zaWduZWQgY2hhcicpLnBvaW50ZXIoKSAjIHVuc2lnbmVkIGNoYXIqCiBfdHlwZV92b2lkX3B0ciA9IGdkYi5sb29rdXBfdHlwZSgndm9pZCcpLnBvaW50ZXIoKSAjIHZvaWQqCitfdHlwZV91bnNpZ25lZF9zaG9ydF9wdHIgPSBnZGIubG9va3VwX3R5cGUoJ3Vuc2lnbmVkIHNob3J0JykucG9pbnRlcigpCitfdHlwZV91bnNpZ25lZF9pbnRfcHRyID0gZ2RiLmxvb2t1cF90eXBlKCd1bnNpZ25lZCBpbnQnKS5wb2ludGVyKCkKKworIyB2YWx1ZSBjb21wdXRlZCBsYXRlciwgc2VlIFB5VW5pY29kZU9iamVjdFB0ci5wcm94eSgpCitfaXNfcGVwMzkzID0gTm9uZQogCiBTSVpFT0ZfVk9JRF9QID0gX3R5cGVfdm9pZF9wdHIuc2l6ZW9mCiAKQEAgLTMyMiw3ICszMjcsNiBAQAogCiAgICAgICAgIG5hbWVfbWFwID0geydib29sJzogUHlCb29sT2JqZWN0UHRyLAogICAgICAgICAgICAgICAgICAgICAnY2xhc3NvYmonOiBQeUNsYXNzT2JqZWN0UHRyLAotICAgICAgICAgICAgICAgICAgICAnaW5zdGFuY2UnOiBQeUluc3RhbmNlT2JqZWN0UHRyLAogICAgICAgICAgICAgICAgICAgICAnTm9uZVR5cGUnOiBQeU5vbmVTdHJ1Y3RQdHIsCiAgICAgICAgICAgICAgICAgICAgICdmcmFtZSc6IFB5RnJhbWVPYmplY3RQdHIsCiAgICAgICAgICAgICAgICAgICAgICdzZXQnIDogUHlTZXRPYmplY3RQdHIsCkBAIC0zOTYsNyArNDAwLDcgQEAKIAogCiBkZWYgX3dyaXRlX2luc3RhbmNlX3JlcHIob3V0LCB2aXNpdGVkLCBuYW1lLCBweW9wX2F0dHJkaWN0LCBhZGRyZXNzKToKLSAgICAnJydTaGFyZWQgY29kZSBmb3IgdXNlIGJ5IG9sZC1zdHlsZSBhbmQgbmV3LXN0eWxlIGNsYXNzZXM6CisgICAgJycnU2hhcmVkIGNvZGUgZm9yIHVzZSBieSBhbGwgY2xhc3NlczoKICAgICB3cml0ZSBhIHJlcHJlc2VudGF0aW9uIHRvIGZpbGUtbGlrZSBvYmplY3QgIm91dCInJycKICAgICBvdXQud3JpdGUoJzwnKQogICAgIG91dC53cml0ZShuYW1lKQpAQCAtNDc5LDcgKzQ4Myw3IEBACiAKICAgICBkZWYgcHJveHl2YWwoc2VsZiwgdmlzaXRlZCk6CiAgICAgICAgICcnJwotICAgICAgICBTdXBwb3J0IGZvciBuZXctc3R5bGUgY2xhc3Nlcy4KKyAgICAgICAgU3VwcG9ydCBmb3IgY2xhc3Nlcy4KIAogICAgICAgICBDdXJyZW50bHkgd2UganVzdCBsb2NhdGUgdGhlIGRpY3Rpb25hcnkgdXNpbmcgYSB0cmFuc2xpdGVyYXRpb24gdG8KICAgICAgICAgcHl0aG9uIG9mIF9QeU9iamVjdF9HZXREaWN0UHRyLCBpZ25vcmluZyBkZXNjcmlwdG9ycwpAQCAtNDk2LDcgKzUwMCw3IEBACiAgICAgICAgICAgICBhdHRyX2RpY3QgPSB7fQogICAgICAgICB0cF9uYW1lID0gc2VsZi5zYWZlX3RwX25hbWUoKQogCi0gICAgICAgICMgTmV3LXN0eWxlIGNsYXNzOgorICAgICAgICAjIENsYXNzOgogICAgICAgICByZXR1cm4gSW5zdGFuY2VQcm94eSh0cF9uYW1lLCBhdHRyX2RpY3QsIGxvbmcoc2VsZi5fZ2RidmFsKSkKIAogICAgIGRlZiB3cml0ZV9yZXByKHNlbGYsIG91dCwgdmlzaXRlZCk6CkBAIC02MzAsOSArNjM0LDE0IEBACiAgICAgICAgIFlpZWxkcyBhIHNlcXVlbmNlIG9mIChQeU9iamVjdFB0ciBrZXksIFB5T2JqZWN0UHRyIHZhbHVlKSBwYWlycywKICAgICAgICAgYW5hbGFnb3VzIHRvIGRpY3QuaXRlcml0ZW1zKCkKICAgICAgICAgJycnCi0gICAgICAgIGZvciBpIGluIHNhZmVfcmFuZ2Uoc2VsZi5maWVsZCgnbWFfbWFzaycpICsgMSk6Ci0gICAgICAgICAgICBlcCA9IHNlbGYuZmllbGQoJ21hX3RhYmxlJykgKyBpCi0gICAgICAgICAgICBweW9wX3ZhbHVlID0gUHlPYmplY3RQdHIuZnJvbV9weW9iamVjdF9wdHIoZXBbJ21lX3ZhbHVlJ10pCisgICAgICAgIGtleXMgPSBzZWxmLmZpZWxkKCdtYV9rZXlzJykKKyAgICAgICAgdmFsdWVzID0gc2VsZi5maWVsZCgnbWFfdmFsdWVzJykKKyAgICAgICAgZm9yIGkgaW4gc2FmZV9yYW5nZShrZXlzWydka19zaXplJ10pOgorICAgICAgICAgICAgZXAgPSBrZXlzWydka19lbnRyaWVzJ10uYWRkcmVzcyArIGkKKyAgICAgICAgICAgIGlmIGxvbmcodmFsdWVzKToKKyAgICAgICAgICAgICAgICBweW9wX3ZhbHVlID0gUHlPYmplY3RQdHIuZnJvbV9weW9iamVjdF9wdHIodmFsdWVzW2ldKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBweW9wX3ZhbHVlID0gUHlPYmplY3RQdHIuZnJvbV9weW9iamVjdF9wdHIoZXBbJ21lX3ZhbHVlJ10pCiAgICAgICAgICAgICBpZiBub3QgcHlvcF92YWx1ZS5pc19udWxsKCk6CiAgICAgICAgICAgICAgICAgcHlvcF9rZXkgPSBQeU9iamVjdFB0ci5mcm9tX3B5b2JqZWN0X3B0cihlcFsnbWVfa2V5J10pCiAgICAgICAgICAgICAgICAgeWllbGQgKHB5b3Bfa2V5LCBweW9wX3ZhbHVlKQpAQCAtNjY4LDQ0ICs2NzcsNiBAQAogICAgICAgICAgICAgcHlvcF92YWx1ZS53cml0ZV9yZXByKG91dCwgdmlzaXRlZCkKICAgICAgICAgb3V0LndyaXRlKCd9JykKIAotY2xhc3MgUHlJbnN0YW5jZU9iamVjdFB0cihQeU9iamVjdFB0cik6Ci0gICAgX3R5cGVuYW1lID0gJ1B5SW5zdGFuY2VPYmplY3QnCi0KLSAgICBkZWYgcHJveHl2YWwoc2VsZiwgdmlzaXRlZCk6Ci0gICAgICAgICMgR3VhcmQgYWdhaW5zdCBpbmZpbml0ZSBsb29wczoKLSAgICAgICAgaWYgc2VsZi5hc19hZGRyZXNzKCkgaW4gdmlzaXRlZDoKLSAgICAgICAgICAgIHJldHVybiBQcm94eUFscmVhZHlWaXNpdGVkKCc8Li4uPicpCi0gICAgICAgIHZpc2l0ZWQuYWRkKHNlbGYuYXNfYWRkcmVzcygpKQotCi0gICAgICAgICMgR2V0IG5hbWUgb2YgY2xhc3M6Ci0gICAgICAgIGluX2NsYXNzID0gc2VsZi5weW9wX2ZpZWxkKCdpbl9jbGFzcycpCi0gICAgICAgIGNsX25hbWUgPSBpbl9jbGFzcy5weW9wX2ZpZWxkKCdjbF9uYW1lJykucHJveHl2YWwodmlzaXRlZCkKLQotICAgICAgICAjIEdldCBkaWN0aW9uYXJ5IG9mIGluc3RhbmNlIGF0dHJpYnV0ZXM6Ci0gICAgICAgIGluX2RpY3QgPSBzZWxmLnB5b3BfZmllbGQoJ2luX2RpY3QnKS5wcm94eXZhbCh2aXNpdGVkKQotCi0gICAgICAgICMgT2xkLXN0eWxlIGNsYXNzOgotICAgICAgICByZXR1cm4gSW5zdGFuY2VQcm94eShjbF9uYW1lLCBpbl9kaWN0LCBsb25nKHNlbGYuX2dkYnZhbCkpCi0KLSAgICBkZWYgd3JpdGVfcmVwcihzZWxmLCBvdXQsIHZpc2l0ZWQpOgotICAgICAgICAjIEd1YXJkIGFnYWluc3QgaW5maW5pdGUgbG9vcHM6Ci0gICAgICAgIGlmIHNlbGYuYXNfYWRkcmVzcygpIGluIHZpc2l0ZWQ6Ci0gICAgICAgICAgICBvdXQud3JpdGUoJzwuLi4+JykKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICB2aXNpdGVkLmFkZChzZWxmLmFzX2FkZHJlc3MoKSkKLQotICAgICAgICAjIE9sZC1zdHlsZSBjbGFzczoKLQotICAgICAgICAjIEdldCBuYW1lIG9mIGNsYXNzOgotICAgICAgICBpbl9jbGFzcyA9IHNlbGYucHlvcF9maWVsZCgnaW5fY2xhc3MnKQotICAgICAgICBjbF9uYW1lID0gaW5fY2xhc3MucHlvcF9maWVsZCgnY2xfbmFtZScpLnByb3h5dmFsKHZpc2l0ZWQpCi0KLSAgICAgICAgIyBHZXQgZGljdGlvbmFyeSBvZiBpbnN0YW5jZSBhdHRyaWJ1dGVzOgotICAgICAgICBweW9wX2luX2RpY3QgPSBzZWxmLnB5b3BfZmllbGQoJ2luX2RpY3QnKQotCi0gICAgICAgIF93cml0ZV9pbnN0YW5jZV9yZXByKG91dCwgdmlzaXRlZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xfbmFtZSwgcHlvcF9pbl9kaWN0LCBzZWxmLmFzX2FkZHJlc3MoKSkKLQogY2xhc3MgUHlMaXN0T2JqZWN0UHRyKFB5T2JqZWN0UHRyKToKICAgICBfdHlwZW5hbWUgPSAnUHlMaXN0T2JqZWN0JwogCkBAIC0xMTIzLDE1ICsxMDk0LDQ2IEBACiAgICAgICAgIHJldHVybiBfdHlwZV9QeV9VTklDT0RFLnNpemVvZgogCiAgICAgZGVmIHByb3h5dmFsKHNlbGYsIHZpc2l0ZWQpOgotICAgICAgICAjIEZyb20gdW5pY29kZW9iamVjdC5oOgotICAgICAgICAjICAgICBQeV9zc2l6ZV90IGxlbmd0aDsgIC8qIExlbmd0aCBvZiByYXcgVW5pY29kZSBkYXRhIGluIGJ1ZmZlciAqLwotICAgICAgICAjICAgICBQeV9VTklDT0RFICpzdHI7ICAgIC8qIFJhdyBVbmljb2RlIGJ1ZmZlciAqLwotICAgICAgICBmaWVsZF9sZW5ndGggPSBsb25nKHNlbGYuZmllbGQoJ2xlbmd0aCcpKQotICAgICAgICBmaWVsZF9zdHIgPSBzZWxmLmZpZWxkKCdzdHInKQorICAgICAgICBnbG9iYWwgX2lzX3BlcDM5MworICAgICAgICBpZiBfaXNfcGVwMzkzIGlzIE5vbmU6CisgICAgICAgICAgICBmaWVsZHMgPSBnZGIubG9va3VwX3R5cGUoJ1B5VW5pY29kZU9iamVjdCcpLnRhcmdldCgpLmZpZWxkcygpCisgICAgICAgICAgICBfaXNfcGVwMzkzID0gJ2RhdGEnIGluIFtmLm5hbWUgZm9yIGYgaW4gZmllbGRzXQorICAgICAgICBpZiBfaXNfcGVwMzkzOgorICAgICAgICAgICAgIyBQeXRob24gMy4zIGFuZCBuZXdlcgorICAgICAgICAgICAgbWF5X2hhdmVfc3Vycm9nYXRlcyA9IEZhbHNlCisgICAgICAgICAgICBjb21wYWN0ID0gc2VsZi5maWVsZCgnX2Jhc2UnKQorICAgICAgICAgICAgYXNjaWkgPSBjb21wYWN0WydfYmFzZSddCisgICAgICAgICAgICBzdGF0ZSA9IGFzY2lpWydzdGF0ZSddCisgICAgICAgICAgICBpc19jb21wYWN0X2FzY2lpID0gKGludChzdGF0ZVsnYXNjaWknXSkgYW5kIGludChzdGF0ZVsnY29tcGFjdCddKSkKKyAgICAgICAgICAgIGlmIG5vdCBpbnQoc3RhdGVbJ3JlYWR5J10pOgorICAgICAgICAgICAgICAgICMgc3RyaW5nIGlzIG5vdCByZWFkeQorICAgICAgICAgICAgICAgIGZpZWxkX2xlbmd0aCA9IGxvbmcoY29tcGFjdFsnd3N0cl9sZW5ndGgnXSkKKyAgICAgICAgICAgICAgICBtYXlfaGF2ZV9zdXJyb2dhdGVzID0gVHJ1ZQorICAgICAgICAgICAgICAgIGZpZWxkX3N0ciA9IGFzY2lpWyd3c3RyJ10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZmllbGRfbGVuZ3RoID0gbG9uZyhhc2NpaVsnbGVuZ3RoJ10pCisgICAgICAgICAgICAgICAgaWYgaXNfY29tcGFjdF9hc2NpaToKKyAgICAgICAgICAgICAgICAgICAgZmllbGRfc3RyID0gYXNjaWkuYWRkcmVzcyArIDEKKyAgICAgICAgICAgICAgICBlbGlmIGludChzdGF0ZVsnY29tcGFjdCddKToKKyAgICAgICAgICAgICAgICAgICAgZmllbGRfc3RyID0gY29tcGFjdC5hZGRyZXNzICsgMQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGZpZWxkX3N0ciA9IHNlbGYuZmllbGQoJ2RhdGEnKVsnYW55J10KKyAgICAgICAgICAgICAgICByZXByX2tpbmQgPSBpbnQoc3RhdGVbJ2tpbmQnXSkKKyAgICAgICAgICAgICAgICBpZiByZXByX2tpbmQgPT0gMToKKyAgICAgICAgICAgICAgICAgICAgZmllbGRfc3RyID0gZmllbGRfc3RyLmNhc3QoX3R5cGVfdW5zaWduZWRfY2hhcl9wdHIpCisgICAgICAgICAgICAgICAgZWxpZiByZXByX2tpbmQgPT0gMjoKKyAgICAgICAgICAgICAgICAgICAgZmllbGRfc3RyID0gZmllbGRfc3RyLmNhc3QoX3R5cGVfdW5zaWduZWRfc2hvcnRfcHRyKQorICAgICAgICAgICAgICAgIGVsaWYgcmVwcl9raW5kID09IDQ6CisgICAgICAgICAgICAgICAgICAgIGZpZWxkX3N0ciA9IGZpZWxkX3N0ci5jYXN0KF90eXBlX3Vuc2lnbmVkX2ludF9wdHIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIFB5dGhvbiAzLjIgYW5kIGVhcmxpZXIKKyAgICAgICAgICAgIGZpZWxkX2xlbmd0aCA9IGxvbmcoc2VsZi5maWVsZCgnbGVuZ3RoJykpCisgICAgICAgICAgICBmaWVsZF9zdHIgPSBzZWxmLmZpZWxkKCdzdHInKQorICAgICAgICAgICAgbWF5X2hhdmVfc3Vycm9nYXRlcyA9IHNlbGYuY2hhcl93aWR0aCgpID09IDIKIAogICAgICAgICAjIEdhdGhlciBhIGxpc3Qgb2YgaW50cyBmcm9tIHRoZSBQeV9VTklDT0RFIGFycmF5OyB0aGVzZSBhcmUgZWl0aGVyCi0gICAgICAgICMgVUNTLTIgb3IgVUNTLTQgY29kZSBwb2ludHM6Ci0gICAgICAgIGlmIHNlbGYuY2hhcl93aWR0aCgpID4gMjoKKyAgICAgICAgIyBVQ1MtMSwgVUNTLTIgb3IgVUNTLTQgY29kZSBwb2ludHM6CisgICAgICAgIGlmIG5vdCBtYXlfaGF2ZV9zdXJyb2dhdGVzOgogICAgICAgICAgICAgUHlfVU5JQ09ERXMgPSBbaW50KGZpZWxkX3N0cltpXSkgZm9yIGkgaW4gc2FmZV9yYW5nZShmaWVsZF9sZW5ndGgpXQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyBBIG1vcmUgZWxhYm9yYXRlIHJvdXRpbmUgaWYgc2l6ZW9mKFB5X1VOSUNPREUpIGlzIDIgaW4gdGhlCkBAIC0xMzg4LDYgKzEzOTAsMjMgQEAKICAgICAgICAgICAgIGl0ZXJfZnJhbWUgPSBpdGVyX2ZyYW1lLm5ld2VyKCkKICAgICAgICAgcmV0dXJuIGluZGV4CiAKKyAgICAjIFdlIGRpdmlkZSBmcmFtZXMgaW50bzoKKyAgICAjICAgLSAicHl0aG9uIGZyYW1lcyI6CisgICAgIyAgICAgICAtICJieXRlY29kZSBmcmFtZXMiIGkuZS4gUHlFdmFsX0V2YWxGcmFtZUV4CisgICAgIyAgICAgICAtICJvdGhlciBweXRob24gZnJhbWVzIjogdGhpbmdzIHRoYXQgYXJlIG9mIGludGVyZXN0IGZyb20gYSBweXRob24KKyAgICAjICAgICAgICAgUE9WLCBidXQgYXJlbid0IGJ5dGVjb2RlIChlLmcuIEdDLCBHSUwpCisgICAgIyAgIC0gZXZlcnl0aGluZyBlbHNlCisKKyAgICBkZWYgaXNfcHl0aG9uX2ZyYW1lKHNlbGYpOgorICAgICAgICAnJydJcyB0aGlzIGEgUHlFdmFsX0V2YWxGcmFtZUV4IGZyYW1lLCBvciBzb21lIG90aGVyIGltcG9ydGFudAorICAgICAgICBmcmFtZT8gKHNlZSBpc19vdGhlcl9weXRob25fZnJhbWUgZm9yIHdoYXQgImltcG9ydGFudCIgbWVhbnMgaW4gdGhpcworICAgICAgICBjb250ZXh0KScnJworICAgICAgICBpZiBzZWxmLmlzX2V2YWxmcmFtZWV4KCk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBpZiBzZWxmLmlzX290aGVyX3B5dGhvbl9mcmFtZSgpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKICAgICBkZWYgaXNfZXZhbGZyYW1lZXgoc2VsZik6CiAgICAgICAgICcnJ0lzIHRoaXMgYSBQeUV2YWxfRXZhbEZyYW1lRXggZnJhbWU/JycnCiAgICAgICAgIGlmIHNlbGYuX2dkYmZyYW1lLm5hbWUoKSA9PSAnUHlFdmFsX0V2YWxGcmFtZUV4JzoKQEAgLTE0MDQsNiArMTQyMyw0OSBAQAogCiAgICAgICAgIHJldHVybiBGYWxzZQogCisgICAgZGVmIGlzX290aGVyX3B5dGhvbl9mcmFtZShzZWxmKToKKyAgICAgICAgJycnSXMgdGhpcyBmcmFtZSB3b3J0aCBkaXNwbGF5aW5nIGluIHB5dGhvbiBiYWNrdHJhY2VzPworICAgICAgICBFeGFtcGxlczoKKyAgICAgICAgICAtIHdhaXRpbmcgb24gdGhlIEdJTAorICAgICAgICAgIC0gZ2FyYmFnZS1jb2xsZWN0aW5nCisgICAgICAgICAgLSB3aXRoaW4gYSBDRnVuY3Rpb24KKyAgICAgICAgIElmIGl0IGlzLCByZXR1cm4gYSBkZXNjcmlwdGl2ZSBzdHJpbmcKKyAgICAgICAgIEZvciBvdGhlciBmcmFtZXMsIHJldHVybiBGYWxzZQorICAgICAgICAgJycnCisgICAgICAgIGlmIHNlbGYuaXNfd2FpdGluZ19mb3JfZ2lsKCk6CisgICAgICAgICAgICByZXR1cm4gJ1dhaXRpbmcgZm9yIHRoZSBHSUwnCisgICAgICAgIGVsaWYgc2VsZi5pc19nY19jb2xsZWN0KCk6CisgICAgICAgICAgICByZXR1cm4gJ0dhcmJhZ2UtY29sbGVjdGluZycKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgRGV0ZWN0IGludm9jYXRpb25zIG9mIFB5Q0Z1bmN0aW9uIGluc3RhbmNlczoKKyAgICAgICAgICAgIG9sZGVyID0gc2VsZi5vbGRlcigpCisgICAgICAgICAgICBpZiBvbGRlciBhbmQgb2xkZXIuX2dkYmZyYW1lLm5hbWUoKSA9PSAnUHlDRnVuY3Rpb25fQ2FsbCc6CisgICAgICAgICAgICAgICAgIyBXaXRoaW4gdGhhdCBmcmFtZToKKyAgICAgICAgICAgICAgICAjICAgImZ1bmMiIGlzIHRoZSBsb2NhbCBjb250YWluaW5nIHRoZSBQeU9iamVjdCogb2YgdGhlCisgICAgICAgICAgICAgICAgIyBQeUNGdW5jdGlvbk9iamVjdCBpbnN0YW5jZQorICAgICAgICAgICAgICAgICMgICAiZiIgaXMgdGhlIHNhbWUgdmFsdWUsIGJ1dCBjYXN0IHRvIChQeUNGdW5jdGlvbk9iamVjdCopCisgICAgICAgICAgICAgICAgIyAgICJzZWxmIiBpcyB0aGUgKFB5T2JqZWN0Kikgb2YgdGhlICdzZWxmJworICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgIyBVc2UgdGhlIHByZXR0eXByaW50ZXIgZm9yIHRoZSBmdW5jOgorICAgICAgICAgICAgICAgICAgICBmdW5jID0gb2xkZXIuX2dkYmZyYW1lLnJlYWRfdmFyKCdmdW5jJykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0cihmdW5jKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBSdW50aW1lRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAnUHlDRnVuY3Rpb24gaW52b2NhdGlvbiAodW5hYmxlIHRvIHJlYWQgImZ1bmMiKScKKworICAgICAgICAjIFRoaXMgZnJhbWUgaXNuJ3Qgd29ydGggcmVwb3J0aW5nOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBpc193YWl0aW5nX2Zvcl9naWwoc2VsZik6CisgICAgICAgICcnJ0lzIHRoaXMgZnJhbWUgd2FpdGluZyBvbiB0aGUgR0lMPycnJworICAgICAgICAjIFRoaXMgYXNzdW1lcyB0aGUgX1BPU0lYX1RIUkVBRFMgdmVyc2lvbiBvZiBQeXRob24vY2V2YWxfZ2lsLmg6CisgICAgICAgIG5hbWUgPSBzZWxmLl9nZGJmcmFtZS5uYW1lKCkKKyAgICAgICAgaWYgbmFtZToKKyAgICAgICAgICAgIHJldHVybiBuYW1lLnN0YXJ0c3dpdGgoJ3B0aHJlYWRfY29uZF90aW1lZHdhaXQnKQorCisgICAgZGVmIGlzX2djX2NvbGxlY3Qoc2VsZik6CisgICAgICAgICcnJ0lzIHRoaXMgZnJhbWUgImNvbGxlY3QiIHdpdGhpbiB0aGUgdGhlIGdhcmJhZ2UtY29sbGVjdG9yPycnJworICAgICAgICByZXR1cm4gc2VsZi5fZ2RiZnJhbWUubmFtZSgpID09ICdjb2xsZWN0JworCiAgICAgZGVmIGdldF9weW9wKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBmID0gc2VsZi5fZ2RiZnJhbWUucmVhZF92YXIoJ2YnKQpAQCAtMTQzMyw4ICsxNDk1LDIyIEBACiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZ2V0X3NlbGVjdGVkX3B5dGhvbl9mcmFtZShjbHMpOgotICAgICAgICAnJydUcnkgdG8gb2J0YWluIHRoZSBGcmFtZSBmb3IgdGhlIHB5dGhvbiBjb2RlIGluIHRoZSBzZWxlY3RlZCBmcmFtZSwKLSAgICAgICAgb3IgTm9uZScnJworICAgICAgICAnJydUcnkgdG8gb2J0YWluIHRoZSBGcmFtZSBmb3IgdGhlIHB5dGhvbi1yZWxhdGVkIGNvZGUgaW4gdGhlIHNlbGVjdGVkCisgICAgICAgIGZyYW1lLCBvciBOb25lJycnCisgICAgICAgIGZyYW1lID0gY2xzLmdldF9zZWxlY3RlZF9mcmFtZSgpCisKKyAgICAgICAgd2hpbGUgZnJhbWU6CisgICAgICAgICAgICBpZiBmcmFtZS5pc19weXRob25fZnJhbWUoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gZnJhbWUKKyAgICAgICAgICAgIGZyYW1lID0gZnJhbWUub2xkZXIoKQorCisgICAgICAgICMgTm90IGZvdW5kOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGdldF9zZWxlY3RlZF9ieXRlY29kZV9mcmFtZShjbHMpOgorICAgICAgICAnJydUcnkgdG8gb2J0YWluIHRoZSBGcmFtZSBmb3IgdGhlIHB5dGhvbiBieXRlY29kZSBpbnRlcnByZXRlciBpbiB0aGUKKyAgICAgICAgc2VsZWN0ZWQgR0RCIGZyYW1lLCBvciBOb25lJycnCiAgICAgICAgIGZyYW1lID0gY2xzLmdldF9zZWxlY3RlZF9mcmFtZSgpCiAKICAgICAgICAgd2hpbGUgZnJhbWU6CkBAIC0xNDU4LDcgKzE1MzQsMTEgQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgnIyVpICh1bmFibGUgdG8gcmVhZCBweXRob24gZnJhbWUgaW5mb3JtYXRpb24pXG4nICUgc2VsZi5nZXRfaW5kZXgoKSkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJyMlaVxuJyAlIHNlbGYuZ2V0X2luZGV4KCkpCisgICAgICAgICAgICBpbmZvID0gc2VsZi5pc19vdGhlcl9weXRob25fZnJhbWUoKQorICAgICAgICAgICAgaWYgaW5mbzoKKyAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCcjJWkgJXNcbicgJSAoc2VsZi5nZXRfaW5kZXgoKSwgaW5mbykpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJyMlaVxuJyAlIHNlbGYuZ2V0X2luZGV4KCkpCiAKICAgICBkZWYgcHJpbnRfdHJhY2ViYWNrKHNlbGYpOgogICAgICAgICBpZiBzZWxmLmlzX2V2YWxmcmFtZWV4KCk6CkBAIC0xNDcyLDcgKzE1NTIsMTEgQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgnICAodW5hYmxlIHRvIHJlYWQgcHl0aG9uIGZyYW1lIGluZm9ybWF0aW9uKVxuJykKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJyAgKG5vdCBhIHB5dGhvbiBmcmFtZSlcbicpCisgICAgICAgICAgICBpbmZvID0gc2VsZi5pc19vdGhlcl9weXRob25fZnJhbWUoKQorICAgICAgICAgICAgaWYgaW5mbzoKKyAgICAgICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCcgICVzXG4nICUgaW5mbykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZSgnICAobm90IGEgcHl0aG9uIGZyYW1lKVxuJykKIAogY2xhc3MgUHlMaXN0KGdkYi5Db21tYW5kKToKICAgICAnJydMaXN0IHRoZSBjdXJyZW50IFB5dGhvbiBzb3VyY2UgY29kZSwgaWYgYW55CkBAIC0xNTA4LDkgKzE1OTIsMTAgQEAKICAgICAgICAgaWYgbToKICAgICAgICAgICAgIHN0YXJ0LCBlbmQgPSBtYXAoaW50LCBtLmdyb3VwcygpKQogCi0gICAgICAgIGZyYW1lID0gRnJhbWUuZ2V0X3NlbGVjdGVkX3B5dGhvbl9mcmFtZSgpCisgICAgICAgICMgcHktbGlzdCByZXF1aXJlcyBhbiBhY3R1YWwgUHlFdmFsX0V2YWxGcmFtZUV4IGZyYW1lOgorICAgICAgICBmcmFtZSA9IEZyYW1lLmdldF9zZWxlY3RlZF9ieXRlY29kZV9mcmFtZSgpCiAgICAgICAgIGlmIG5vdCBmcmFtZToKLSAgICAgICAgICAgIHByaW50ICdVbmFibGUgdG8gbG9jYXRlIHB5dGhvbiBmcmFtZScKKyAgICAgICAgICAgIHByaW50ICdVbmFibGUgdG8gbG9jYXRlIGdkYiBmcmFtZSBmb3IgcHl0aG9uIGJ5dGVjb2RlIGludGVycHJldGVyJwogICAgICAgICAgICAgcmV0dXJuCiAKICAgICAgICAgcHlvcCA9IGZyYW1lLmdldF9weW9wKCkKQEAgLTE1NjIsNyArMTY0Nyw3IEBACiAgICAgICAgIGlmIG5vdCBpdGVyX2ZyYW1lOgogICAgICAgICAgICAgYnJlYWsKIAotICAgICAgICBpZiBpdGVyX2ZyYW1lLmlzX2V2YWxmcmFtZWV4KCk6CisgICAgICAgIGlmIGl0ZXJfZnJhbWUuaXNfcHl0aG9uX2ZyYW1lKCk6CiAgICAgICAgICAgICAjIFJlc3VsdDoKICAgICAgICAgICAgIGlmIGl0ZXJfZnJhbWUuc2VsZWN0KCk6CiAgICAgICAgICAgICAgICAgaXRlcl9mcmFtZS5wcmludF9zdW1tYXJ5KCkKQEAgLTE2MTYsNyArMTcwMSw3IEBACiAgICAgZGVmIGludm9rZShzZWxmLCBhcmdzLCBmcm9tX3R0eSk6CiAgICAgICAgIGZyYW1lID0gRnJhbWUuZ2V0X3NlbGVjdGVkX3B5dGhvbl9mcmFtZSgpCiAgICAgICAgIHdoaWxlIGZyYW1lOgotICAgICAgICAgICAgaWYgZnJhbWUuaXNfZXZhbGZyYW1lZXgoKToKKyAgICAgICAgICAgIGlmIGZyYW1lLmlzX3B5dGhvbl9mcmFtZSgpOgogICAgICAgICAgICAgICAgIGZyYW1lLnByaW50X3N1bW1hcnkoKQogICAgICAgICAgICAgZnJhbWUgPSBmcmFtZS5vbGRlcigpCiAKQEAgLTE2MzUsNyArMTcyMCw3IEBACiAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoJ1RyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBmaXJzdCk6XG4nKQogICAgICAgICBmcmFtZSA9IEZyYW1lLmdldF9zZWxlY3RlZF9weXRob25fZnJhbWUoKQogICAgICAgICB3aGlsZSBmcmFtZToKLSAgICAgICAgICAgIGlmIGZyYW1lLmlzX2V2YWxmcmFtZWV4KCk6CisgICAgICAgICAgICBpZiBmcmFtZS5pc19weXRob25fZnJhbWUoKToKICAgICAgICAgICAgICAgICBmcmFtZS5wcmludF90cmFjZWJhY2soKQogICAgICAgICAgICAgZnJhbWUgPSBmcmFtZS5vbGRlcigpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL2hnL2hndG91Y2gucHkgYi9Ub29scy9oZy9oZ3RvdWNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU5NjFhMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9oZy9oZ3RvdWNoLnB5CkBAIC0wLDAgKzEsMTAzIEBACisiIiJCcmluZyB0aW1lIHN0YW1wcyBvZiBnZW5lcmF0ZWQgY2hlY2tlZC1pbiBmaWxlcyBpbnRvIHRoZSByaWdodCBvcmRlcgorCitBIHZlcnNpb25lZCBjb25maWd1cmF0aW9uIGZpbGUgLmhndG91Y2ggc3BlY2lmaWVzIGdlbmVyYXRlZCBmaWxlcywgaW4gdGhlCitzeW50YXggb2YgbWFrZSBydWxlcy4KKworICBvdXRwdXQ6ICAgIGlucHV0MSBpbnB1dDIKKworSW4gYWRkaXRpb24gdG8gdGhlIGRlcGVuZGVuY3kgc3ludGF4LCAjLWNvbW1lbnRzIGFyZSBzdXBwb3J0ZWQuCisiIiIKK2ltcG9ydCBlcnJubworaW1wb3J0IG9zCisKK2RlZiBwYXJzZV9jb25maWcocmVwbyk6CisgICAgdHJ5OgorICAgICAgICBmcCA9IHJlcG8ud2ZpbGUoIi5oZ3RvdWNoIikKKyAgICBleGNlcHQgSU9FcnJvciwgZToKKyAgICAgICAgaWYgZS5lcnJubyAhPSBlcnJuby5FTk9FTlQ6CisgICAgICAgICAgICByYWlzZQorICAgICAgICByZXR1cm4ge30KKyAgICByZXN1bHQgPSB7fQorICAgIHdpdGggZnA6CisgICAgICAgIGZvciBsaW5lIGluIGZwOgorICAgICAgICAgICAgIyBzdHJpcCBjb21tZW50cworICAgICAgICAgICAgbGluZSA9IGxpbmUuc3BsaXQoJyMnKVswXS5zdHJpcCgpCisgICAgICAgICAgICBpZiAnOicgbm90IGluIGxpbmU6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIG91dHB1dHMsIGlucHV0cyA9IGxpbmUuc3BsaXQoJzonLCAxKQorICAgICAgICAgICAgb3V0cHV0cyA9IG91dHB1dHMuc3BsaXQoKQorICAgICAgICAgICAgaW5wdXRzID0gaW5wdXRzLnNwbGl0KCkKKyAgICAgICAgICAgIGZvciBvIGluIG91dHB1dHM6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICByZXN1bHRbb10uZXh0ZW5kKGlucHV0cykKKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdFtvXSA9IGlucHV0cworICAgIHJldHVybiByZXN1bHQKKworZGVmIGNoZWNrX3J1bGUodWksIHJlcG8sIG1vZGlmaWVkLCBvdXRwdXQsIGlucHV0cyk6CisgICAgZl9vdXRwdXQgPSByZXBvLndqb2luKG91dHB1dCkKKyAgICB0cnk6CisgICAgICAgIG9fdGltZSA9IG9zLnN0YXQoZl9vdXRwdXQpLnN0X210aW1lCisgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgIHVpLndhcm4oIkdlbmVyYXRlZCBmaWxlICVzIGRvZXMgbm90IGV4aXN0XG4iICUgb3V0cHV0KQorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBuZWVkX3RvdWNoID0gRmFsc2UKKyAgICBiYWNrZGF0ZSA9IE5vbmUKKyAgICBiYWNrZGF0ZV9zb3VyY2UgPSBOb25lCisgICAgZm9yIGkgaW4gaW5wdXRzOgorICAgICAgICBmX2kgPSByZXBvLndqb2luKGkpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlfdGltZSA9IG9zLnN0YXQoZl9pKS5zdF9tdGltZQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIHVpLndhcm4oIi5oZ3RvdWNoIGlucHV0IGZpbGUgJXMgZG9lcyBub3QgZXhpc3RcbiIgJSBpKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIGkgaW4gbW9kaWZpZWQ6CisgICAgICAgICAgICAjIGlucHV0IGlzIG1vZGlmaWVkLiBOZWVkIHRvIGJhY2tkYXRlIGF0IGxlYXN0IHRvIGlfdGltZQorICAgICAgICAgICAgaWYgYmFja2RhdGUgaXMgTm9uZSBvciBiYWNrZGF0ZSA+IGlfdGltZToKKyAgICAgICAgICAgICAgICBiYWNrZGF0ZSA9IGlfdGltZQorICAgICAgICAgICAgICAgIGJhY2tkYXRlX3NvdXJjZSA9IGkKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIG9fdGltZSA8PSBpX3RpbWU6CisgICAgICAgICAgICAjIGdlbmVyYXRlZCBmaWxlIGlzIG9sZGVyLCB0b3VjaAorICAgICAgICAgICAgbmVlZF90b3VjaCA9IFRydWUKKyAgICBpZiBiYWNrZGF0ZSBpcyBub3QgTm9uZToKKyAgICAgICAgdWkud2FybigiSW5wdXQgJXMgZm9yIGZpbGUgJXMgbG9jYWxseSBtb2RpZmllZFxuIiAlIChiYWNrZGF0ZV9zb3VyY2UsIG91dHB1dCkpCisgICAgICAgICMgc2V0IHRvIDFzIGJlZm9yZSBvbGRlc3QgbW9kaWZpZWQgaW5wdXQKKyAgICAgICAgYmFja2RhdGUgLT0gMQorICAgICAgICBvcy51dGltZShmX291dHB1dCwgKGJhY2tkYXRlLCBiYWNrZGF0ZSkpCisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGlmIG5lZWRfdG91Y2g6CisgICAgICAgIHVpLm5vdGUoIlRvdWNoaW5nICVzXG4iICUgb3V0cHV0KQorICAgICAgICBvcy51dGltZShmX291dHB1dCwgTm9uZSkKKyAgICByZXR1cm4gVHJ1ZQorCitkZWYgZG9fdG91Y2godWksIHJlcG8pOgorICAgIG1vZGlmaWVkID0gcmVwby5zdGF0dXMoKVswXQorICAgIGRlcGVuZGVuY2llcyA9IHBhcnNlX2NvbmZpZyhyZXBvKQorICAgIHN1Y2Nlc3MgPSBUcnVlCisgICAgIyB0cnkgcHJvY2Vzc2luZyBhbGwgcnVsZXMgaW4gdG9wb2xvZ2ljYWwgb3JkZXIKKyAgICBob2xkX2JhY2sgPSB7fQorICAgIHdoaWxlIGRlcGVuZGVuY2llczoKKyAgICAgICAgb3V0cHV0LCBpbnB1dHMgPSBkZXBlbmRlbmNpZXMucG9waXRlbSgpCisgICAgICAgICMgY2hlY2sgd2hldGhlciBhbnkgb2YgdGhlIGlucHV0cyBpcyBnZW5lcmF0ZWQKKyAgICAgICAgZm9yIGkgaW4gaW5wdXRzOgorICAgICAgICAgICAgaWYgaSBpbiBkZXBlbmRlbmNpZXM6CisgICAgICAgICAgICAgICAgaG9sZF9iYWNrW291dHB1dF0gPSBpbnB1dHMKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBzdWNjZXNzID0gY2hlY2tfcnVsZSh1aSwgcmVwbywgbW9kaWZpZWQsIG91dHB1dCwgaW5wdXRzKQorICAgICAgICAjIHB1dCBiYWNrIGhlbGQgYmFjayBydWxlcworICAgICAgICBkZXBlbmRlbmNpZXMudXBkYXRlKGhvbGRfYmFjaykKKyAgICAgICAgaG9sZF9iYWNrID0ge30KKyAgICBpZiBob2xkX2JhY2s6CisgICAgICAgIHVpLndhcm4oIkN5Y2xpYyBkZXBlbmRlbmN5IGludm9sdmluZyAlc1xuIiAlICgnICcuam9pbihob2xkX2JhY2sua2V5cygpKSkpCisgICAgICAgIHJldHVybiBGYWxzZQorICAgIHJldHVybiBzdWNjZXNzCisKK2RlZiB0b3VjaCh1aSwgcmVwbyk6CisgICAgInRvdWNoIGdlbmVyYXRlZCBmaWxlcyB0aGF0IGFyZSBvbGRlciB0aGFuIHRoZWlyIHNvdXJjZXMgYWZ0ZXIgYW4gdXBkYXRlLiIKKyAgICBkb190b3VjaCh1aSwgcmVwbykKKworY21kdGFibGUgPSB7CisgICAgInRvdWNoIjogKHRvdWNoLCBbXSwKKyAgICAgICAgICAgICAgInRvdWNoIGdlbmVyYXRlZCBmaWxlcyBhY2NvcmRpbmcgdG8gdGhlIC5oZ3RvdWNoIGNvbmZpZ3VyYXRpb24iKQorfQpkaWZmIC0tZ2l0IGEvVG9vbHMvaTE4bi9weWdldHRleHQucHkgYi9Ub29scy9pMThuL3B5Z2V0dGV4dC5weQppbmRleCA2N2E5NjBmLi45M2IyYjc5IDEwMDc1NQotLS0gYS9Ub29scy9pMThuL3B5Z2V0dGV4dC5weQorKysgYi9Ub29scy9pMThuL3B5Z2V0dGV4dC5weQpAQCAtMTYzLDcgKzE2Myw2IEBACiBpbXBvcnQgZ2V0b3B0CiBpbXBvcnQgdG9rZW4KIGltcG9ydCB0b2tlbml6ZQotaW1wb3J0IG9wZXJhdG9yCiAKIF9fdmVyc2lvbl9fID0gJzEuNScKIApkaWZmIC0tZ2l0IGEvVG9vbHMvaW9iZW5jaC9pb2JlbmNoLnB5IGIvVG9vbHMvaW9iZW5jaC9pb2JlbmNoLnB5CmluZGV4IDVlYzZmMTcuLjUzMGJjNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2lvYmVuY2gvaW9iZW5jaC5weQorKysgYi9Ub29scy9pb2JlbmNoL2lvYmVuY2gucHkKQEAgLTEsMTMgKzEsMTIgQEAKICMgLSotIGNvZGluZzogdXRmLTggLSotCiAjIFRoaXMgZmlsZSBzaG91bGQgYmUga2VwdCBjb21wYXRpYmxlIHdpdGggYm90aCBQeXRob24gMi42IGFuZCBQeXRob24gPj0gMy4wLgogCi1pbXBvcnQgdGltZQoraW1wb3J0IGl0ZXJ0b29scwogaW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCByZQogaW1wb3J0IHN5cwotaW1wb3J0IGhhc2hsaWIKLWltcG9ydCBmdW5jdG9vbHMKLWltcG9ydCBpdGVydG9vbHMKK2ltcG9ydCB0aW1lCiBmcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIKIAogb3V0ID0gc3lzLnN0ZG91dApAQCAtMzA3LDYgKzMwNiwxNiBAQAogICAgICAgICAibGFyZ2UiOiAyLAogICAgIH0KIAorICAgIHByaW50KCJQeXRob24gJXMiICUgc3lzLnZlcnNpb24pCisgICAgaWYgc3lzLnZlcnNpb25faW5mbyA8ICgzLCAzKToKKyAgICAgICAgaWYgc3lzLm1heHVuaWNvZGUgPiAweGZmZmY6CisgICAgICAgICAgICB0ZXh0ID0gIlVDUy00ICh3aWRlIGJ1aWxkKSIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRleHQgPSAiVVRGLTE2IChuYXJyb3cgYnVpbGQpIgorICAgIGVsc2U6CisgICAgICAgIHRleHQgPSAiUEVQIDM5MyIKKyAgICBwcmludCgiVW5pY29kZTogJXMiICUgdGV4dCkKKyAgICBwcmludChwbGF0Zm9ybS5wbGF0Zm9ybSgpKQogICAgIGJpbmFyeV9maWxlcyA9IGxpc3QoZ2V0X2JpbmFyeV9maWxlcygpKQogICAgIHRleHRfZmlsZXMgPSBsaXN0KGdldF90ZXh0X2ZpbGVzKCkpCiAgICAgaWYgImIiIGluIG9wdGlvbnM6CmRpZmYgLS1naXQgYS9Ub29scy9tc2kvbXNpLnB5IGIvVG9vbHMvbXNpL21zaS5weQppbmRleCA1MDg4MTZkLi44ODk2NDlhIDEwMDY0NAotLS0gYS9Ub29scy9tc2kvbXNpLnB5CisrKyBiL1Rvb2xzL21zaS9tc2kucHkKQEAgLTIsMTIgKzIsMTEgQEAKICMgKEMpIDIwMDMgTWFydGluIHYuIExvZXdpcwogIyBTZWUgIkZPTyIgaW4gY29tbWVudHMgcmVmZXJzIHRvIE1TRE4gc2VjdGlvbnMgd2l0aCB0aGUgdGl0bGUgRk9PLgogaW1wb3J0IG1zaWxpYiwgc2NoZW1hLCBzZXF1ZW5jZSwgb3MsIGdsb2IsIHRpbWUsIHJlLCBzaHV0aWwsIHppcGZpbGUKK2ltcG9ydCBzdWJwcm9jZXNzLCB0ZW1wZmlsZQogZnJvbSBtc2lsaWIgaW1wb3J0IEZlYXR1cmUsIENBQiwgRGlyZWN0b3J5LCBEaWFsb2csIEJpbmFyeSwgYWRkX2RhdGEKIGltcG9ydCB1aXNhbXBsZQogZnJvbSB3aW4zMmNvbS5jbGllbnQgaW1wb3J0IGNvbnN0YW50cwogZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0YWJsZQotZnJvbSB1dWlkcyBpbXBvcnQgcHJvZHVjdF9jb2RlcwotaW1wb3J0IHRlbXBmaWxlCiAKICMgU2V0dGluZ3MgY2FuIGJlIG92ZXJyaWRkZW4gaW4gY29uZmlnLnB5IGJlbG93CiAjIDAgZm9yIG9mZmljaWFsIHB5dGhvbi5vcmcgcmVsZWFzZXMKQEAgLTI4LDcgKzI3LDcgQEAKICMgcGF0aCB0byBQQ2J1aWxkIGRpcmVjdG9yeQogUENCVUlMRD0iUENidWlsZCIKICMgbXN2Y3J0IHZlcnNpb24KLU1TVkNSID0gIjkwIgorTVNWQ1IgPSAiMTAwIgogIyBOYW1lIG9mIGNlcnRpZmljYXRlIGluIGRlZmF1bHQgc3RvcmUgdG8gc2lnbiBNU0kgd2l0aAogY2VydG5hbWUgPSBOb25lCiAjIE1ha2UgYSB6aXAgZmlsZSBjb250YWluaW5nIHRoZSBQREIgZmlsZXMgZm9yIHRoaXMgYnVpbGQ/CkBAIC03NywxOSArNzYsMTYgQEAKIAogaWYgc25hcHNob3Q6CiAgICAgY3VycmVudF92ZXJzaW9uID0gIiVzLiVzLiVzIiAlIChtYWpvciwgbWlub3IsIGludCh0aW1lLnRpbWUoKS8zNjAwLzI0KSkKLSAgICBwcm9kdWN0X2NvZGUgPSBtc2lsaWIuZ2VuX3V1aWQoKQotZWxzZToKLSAgICBwcm9kdWN0X2NvZGUgPSBwcm9kdWN0X2NvZGVzW2N1cnJlbnRfdmVyc2lvbl0KIAogaWYgZnVsbF9jdXJyZW50X3ZlcnNpb24gaXMgTm9uZToKICAgICBmdWxsX2N1cnJlbnRfdmVyc2lvbiA9IGN1cnJlbnRfdmVyc2lvbgogCiBleHRlbnNpb25zID0gWwotICAgICdiejIucHlkJywKICAgICAncHlleHBhdC5weWQnLAogICAgICdzZWxlY3QucHlkJywKICAgICAndW5pY29kZWRhdGEucHlkJywKICAgICAnd2luc291bmQucHlkJywKKyAgICAnX2J6Mi5weWQnLAogICAgICdfZWxlbWVudHRyZWUucHlkJywKICAgICAnX3NvY2tldC5weWQnLAogICAgICdfc3NsLnB5ZCcsCkBAIC0xMDAsNyArOTYsMTAgQEAKICAgICAnX2N0eXBlc190ZXN0LnB5ZCcsCiAgICAgJ19zcWxpdGUzLnB5ZCcsCiAgICAgJ19oYXNobGliLnB5ZCcsCi0gICAgJ19tdWx0aXByb2Nlc3NpbmcucHlkJworICAgICdfbXVsdGlwcm9jZXNzaW5nLnB5ZCcsCisgICAgJ19sem1hLnB5ZCcsCisgICAgJ19kZWNpbWFsLnB5ZCcsCisgICAgJ190ZXN0YnVmZmVyLnB5ZCcKIF0KIAogIyBXZWxsLWtub3duIGNvbXBvbmVudCBVVUlEcwpAQCAtMTE5LDEyICsxMTgsMTEgQEAKICAgICAiMzAiOiJ7Njk1M2JjM2ItNjc2OC00MjkxLTg0MTAtNzkxNGNlNmUyY2E4fSIsCiAgICAgIjMxIjoiezRhZmNiYTBiLTEzZTQtNDdjMy1iZWJlLTQ3NzQyOGI0NjkxM30iLAogICAgICIzMiI6InszZmY5NTMxNS0xMDk2LTRkMzEtYmQ4Ni02MDFkNTQzOGFkNWV9IiwKKyAgICAiMzMiOiJ7Zjc1ODFjYTQtZDM2OC00ZWVhLThmODItZDQ4YzY0YzRmMDQ3fSIsCiAgICAgfSBbbWFqb3IrbWlub3JdCiAKICMgQ29tcHV0ZSB0aGUgbmFtZSB0aGF0IFNwaGlueCBnaXZlcyB0byB0aGUgZG9jZmlsZQotZG9jZmlsZSA9ICIiCi1pZiBpbnQobWljcm8pOgotICAgIGRvY2ZpbGUgPSBtaWNybworZG9jZmlsZSA9IG1pY3JvCiBpZiBsZXZlbCA8IDB4ZjoKICAgICBpZiBsZXZlbCA9PSAweEM6CiAgICAgICAgIGRvY2ZpbGUgKz0gInJjJXMiICUgKHNlcmlhbCwpCkBAIC0xODUsMTIgKzE4MywxOSBAQAogbXNpbGliLnNldF9hcmNoX2Zyb21fZmlsZShkbGxfcGF0aCkKIGlmIG1zaWxpYi5wZV90eXBlKGRsbF9wYXRoKSAhPSBtc2lsaWIucGVfdHlwZSgibXNpc3VwcG9ydC5kbGwiKToKICAgICByYWlzZSBTeXN0ZW1FcnJvcigibXNpc3VwcG9ydC5kbGwgZm9yIGluY29ycmVjdCBhcmNoaXRlY3R1cmUiKQorCiBpZiBtc2lsaWIuV2luNjQ6CiAgICAgdXBncmFkZV9jb2RlID0gdXBncmFkZV9jb2RlXzY0Ci0gICAgIyBCdW1wIHRoZSBsYXN0IGRpZ2l0IG9mIHRoZSBjb2RlIGJ5IG9uZSwgc28gdGhhdCAzMi1iaXQgYW5kIDY0LWJpdAotICAgICMgcmVsZWFzZXMgZ2V0IHNlcGFyYXRlIHByb2R1Y3QgY29kZXMKLSAgICBkaWdpdCA9IGhleCgoaW50KHByb2R1Y3RfY29kZVstMl0sMTYpKzEpJTE2KVstMV0KLSAgICBwcm9kdWN0X2NvZGUgPSBwcm9kdWN0X2NvZGVbOi0yXSArIGRpZ2l0ICsgJ30nCisKK2lmIHNuYXBzaG90OgorICAgIHByb2R1Y3RfY29kZSA9IG1zaWxpYi5nZW5fdXVpZCgpCitlbHNlOgorICAgICMgb2ZmaWNpYWwgcmVsZWFzZTogZ2VuZXJhdGUgVVVJRCBmcm9tIHRoZSBkb3dubG9hZCBsaW5rIHRoYXQgdGhlIGZpbGUgd2lsbCBoYXZlCisgICAgaW1wb3J0IHV1aWQKKyAgICBwcm9kdWN0X2NvZGUgPSB1dWlkLnV1aWQzKHV1aWQuTkFNRVNQQUNFX1VSTCwKKyAgICAgICAgICAgICAgICAgICAgJ2h0dHA6Ly93d3cucHl0aG9uLm9yZy9mdHAvcHl0aG9uLyVzLiVzLiVzL3B5dGhvbi0lcyVzLm1zaScgJQorICAgICAgICAgICAgICAgICAgICAobWFqb3IsIG1pbm9yLCBtaWNybywgZnVsbF9jdXJyZW50X3ZlcnNpb24sIG1zaWxpYi5hcmNoX2V4dCkpCisgICAgcHJvZHVjdF9jb2RlID0gJ3slc30nICUgcHJvZHVjdF9jb2RlCiAKIGlmIHRlc3RwYWNrYWdlOgogICAgIGV4dCA9ICdweCcKQEAgLTI4MSw3ICsyODYsNyBAQAogICAgICAgICAgICAgICBOb25lLCBtaWdyYXRlX2ZlYXR1cmVzLCBOb25lLCAiUkVNT1ZFT0xEU05BUFNIT1QiKV0pCiAgICAgICAgIHByb3BzID0gIlJFTU9WRU9MRFNOQVBTSE9UO1JFTU9WRU9MRFZFUlNJT04iCiAKLSAgICBwcm9wcyArPSAiO1RBUkdFVERJUjtETExESVIiCisgICAgcHJvcHMgKz0gIjtUQVJHRVRESVI7RExMRElSO0xBVU5DSEVSRElSIgogICAgICMgSW5zdGFsbGVyIGNvbGxlY3RzIHRoZSBwcm9kdWN0IGNvZGVzIG9mIHRoZSBlYXJsaWVyIHJlbGVhc2VzIGluCiAgICAgIyB0aGVzZSBwcm9wZXJ0aWVzLiBJbiBvcmRlciB0byBhbGxvdyBtb2RpZmljYXRpb24gb2YgdGhlIHByb3BlcnRpZXMsCiAgICAgIyB0aGV5IG11c3QgYmUgZGVjbGFyZWQgYXMgc2VjdXJlLiBTZWUgIlNlY3VyZUN1c3RvbVByb3BlcnRpZXMgUHJvcGVydHkiCkBAIC00MjEsNiArNDI2LDggQEAKICAgICAgICAgICJbV2luZG93c1ZvbHVtZV1QeXRob24lcyVzIiAlIChtYWpvciwgbWlub3IpKSwKICAgICAgICAgKCJTZXRETExEaXJUb1RhcmdldCIsIDMwNywgIkRMTERJUiIsICJbVEFSR0VURElSXSIpLAogICAgICAgICAoIlNldERMTERpclRvU3lzdGVtMzIiLCAzMDcsICJETExESVIiLCBTeXN0ZW1Gb2xkZXJOYW1lKSwKKyAgICAgICAgKCJTZXRMYXVuY2hlckRpclRvVGFyZ2V0IiwgMzA3LCAiTEFVTkNIRVJESVIiLCAiW1RBUkdFVERJUl0iKSwKKyAgICAgICAgKCJTZXRMYXVuY2hlckRpclRvV2luZG93cyIsIDMwNywgIkxBVU5DSEVSRElSIiwgIltXaW5kb3dzRm9sZGVyXSIpLAogICAgICAgICAjIG1zaWRiQ3VzdG9tQWN0aW9uVHlwZUV4ZSArIG1zaWRiQ3VzdG9tQWN0aW9uVHlwZVNvdXJjZUZpbGUKICAgICAgICAgIyBTZWUgIkN1c3RvbSBBY3Rpb24gVHlwZSAxOCIKICAgICAgICAgKCJDb21waWxlUHljIiwgMTgsICJweXRob24uZXhlIiwgY29tcGlsZWFyZ3MpLApAQCAtNDM3LDYgKzQ0NCw4IEBACiAgICAgICAgICAgICAgICMgSW4gdGhlIHVzZXIgaW50ZXJmYWNlLCBhc3N1bWUgYWxsLXVzZXJzIGluc3RhbGxhdGlvbiBpZiBwcml2aWxlZ2VkLgogICAgICAgICAgICAgICAoIlNldERMTERpclRvU3lzdGVtMzIiLCAnRExMRElSPSIiIGFuZCAnICsgc3lzMzJjb25kLCA3NTEpLAogICAgICAgICAgICAgICAoIlNldERMTERpclRvVGFyZ2V0IiwgJ0RMTERJUj0iIiBhbmQgbm90ICcgKyBzeXMzMmNvbmQsIDc1MiksCisgICAgICAgICAgICAgICgiU2V0TGF1bmNoZXJEaXJUb1dpbmRvd3MiLCAnTEFVTkNIRVJESVI9IiIgYW5kICcgKyBzeXMzMmNvbmQsIDc1MyksCisgICAgICAgICAgICAgICgiU2V0TGF1bmNoZXJEaXJUb1RhcmdldCIsICdMQVVOQ0hFUkRJUj0iIiBhbmQgbm90ICcgKyBzeXMzMmNvbmQsIDc1NCksCiAgICAgICAgICAgICAgICgiU2VsZWN0RGlyZWN0b3J5RGxnIiwgIk5vdCBJbnN0YWxsZWQiLCAxMjMwKSwKICAgICAgICAgICAgICAgIyBYWFggbm8gc3VwcG9ydCBmb3IgcmVzdW1lIGluc3RhbGxhdGlvbnMgeWV0CiAgICAgICAgICAgICAgICMoIlJlc3VtZURsZyIsICJJbnN0YWxsZWQgQU5EIChSRVNVTUUgT1IgUHJlc2VsZWN0ZWQpIiwgMTI0MCksCkBAIC00NDUsMTMgKzQ1NCwyMCBAQAogICAgIGFkZF9kYXRhKGRiLCAiQWRtaW5VSVNlcXVlbmNlIiwKICAgICAgICAgICAgICBbKCJJbml0aWFsVGFyZ2V0RGlyIiwgJ1RBUkdFVERJUj0iIicsIDc1MCksCiAgICAgICAgICAgICAgICgiU2V0RExMRGlyVG9UYXJnZXQiLCAnRExMRElSPSIiJywgNzUxKSwKKyAgICAgICAgICAgICAgKCJTZXRMYXVuY2hlckRpclRvVGFyZ2V0IiwgJ0xBVU5DSEVSRElSPSIiJywgNzUyKSwKICAgICAgICAgICAgICBdKQogCisgICAgIyBQcmVwZW5kIFRBUkdFVERJUiB0byB0aGUgc3lzdGVtIHBhdGgsIGFuZCByZW1vdmUgaXQgb24gdW5pbnN0YWxsLgorICAgIGFkZF9kYXRhKGRiLCAiRW52aXJvbm1lbnQiLAorICAgICAgICAgICAgIFsoIlBhdGhBZGRpdGlvbiIsICI9LSpQYXRoIiwgIltUQVJHRVRESVJdO1t+XSIsICJSRUdJU1RSWS5wYXRoIildKQorCiAgICAgIyBFeGVjdXRlIFNlcXVlbmNlcwogICAgIGFkZF9kYXRhKGRiLCAiSW5zdGFsbEV4ZWN1dGVTZXF1ZW5jZSIsCiAgICAgICAgICAgICBbKCJJbml0aWFsVGFyZ2V0RGlyIiwgJ1RBUkdFVERJUj0iIicsIDc1MCksCiAgICAgICAgICAgICAgKCJTZXRETExEaXJUb1N5c3RlbTMyIiwgJ0RMTERJUj0iIiBhbmQgJyArIHN5czMyY29uZCwgNzUxKSwKICAgICAgICAgICAgICAoIlNldERMTERpclRvVGFyZ2V0IiwgJ0RMTERJUj0iIiBhbmQgbm90ICcgKyBzeXMzMmNvbmQsIDc1MiksCisgICAgICAgICAgICAgKCJTZXRMYXVuY2hlckRpclRvV2luZG93cyIsICdMQVVOQ0hFUkRJUj0iIiBhbmQgJyArIHN5czMyY29uZCwgNzUzKSwKKyAgICAgICAgICAgICAoIlNldExhdW5jaGVyRGlyVG9UYXJnZXQiLCAnTEFVTkNIRVJESVI9IiIgYW5kIG5vdCAnICsgc3lzMzJjb25kLCA3NTQpLAogICAgICAgICAgICAgICgiVXBkYXRlRWRpdElETEUiLCBOb25lLCAxMDUwKSwKICAgICAgICAgICAgICAoIkNvbXBpbGVQeWMiLCAiQ09NUElMRUFMTCIsIDY4MDApLAogICAgICAgICAgICAgICgiQ29tcGlsZVB5byIsICJDT01QSUxFQUxMIiwgNjgwMSksCkBAIC00NjAsNiArNDc2LDcgQEAKICAgICBhZGRfZGF0YShkYiwgIkFkbWluRXhlY3V0ZVNlcXVlbmNlIiwKICAgICAgICAgICAgIFsoIkluaXRpYWxUYXJnZXREaXIiLCAnVEFSR0VURElSPSIiJywgNzUwKSwKICAgICAgICAgICAgICAoIlNldERMTERpclRvVGFyZ2V0IiwgJ0RMTERJUj0iIicsIDc1MSksCisgICAgICAgICAgICAgKCJTZXRMYXVuY2hlckRpclRvVGFyZ2V0IiwgJ0xBVU5DSEVSRElSPSIiJywgNzUyKSwKICAgICAgICAgICAgICAoIkNvbXBpbGVQeWMiLCAiQ09NUElMRUFMTCIsIDY4MDApLAogICAgICAgICAgICAgICgiQ29tcGlsZVB5byIsICJDT01QSUxFQUxMIiwgNjgwMSksCiAgICAgICAgICAgICAgKCJDb21waWxlR3JhbW1hciIsICJDT01QSUxFQUxMIiwgNjgwMiksCkBAIC02NzAsMTEgKzY4NywxMSBAQAogICAgIGM9ZmVhdHVyZXMueGJ1dHRvbigiQWR2YW5jZWQiLCAiQWR2YW5jZWQiLCBOb25lLCAwLjMwKQogICAgIGMuZXZlbnQoIlNwYXduRGlhbG9nIiwgIkFkdmFuY2VkRGxnIikKIAotICAgIGM9ZmVhdHVyZXMudGV4dCgiSXRlbURlc2NyaXB0aW9uIiwgMTQwLCAxODAsIDIxMCwgMzAsIDMsCisgICAgYz1mZWF0dXJlcy50ZXh0KCJJdGVtRGVzY3JpcHRpb24iLCAxNDAsIDE4MCwgMjEwLCA0MCwgMywKICAgICAgICAgICAgICAgICAgICJNdWx0aWxpbmUgZGVzY3JpcHRpb24gb2YgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBpdGVtLiIpCiAgICAgYy5tYXBwaW5nKCJTZWxlY3Rpb25EZXNjcmlwdGlvbiIsIlRleHQiKQogCi0gICAgYz1mZWF0dXJlcy50ZXh0KCJJdGVtU2l6ZSIsIDE0MCwgMjEwLCAyMTAsIDQ1LCAzLAorICAgIGM9ZmVhdHVyZXMudGV4dCgiSXRlbVNpemUiLCAxNDAsIDIyNSwgMjEwLCAzMywgMywKICAgICAgICAgICAgICAgICAgICAgIlRoZSBzaXplIG9mIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgaXRlbS4iKQogICAgIGMubWFwcGluZygiU2VsZWN0aW9uU2l6ZSIsICJUZXh0IikKIApAQCAtODI4LDcgKzg0NSw3IEBACiAgICAgIyAoaS5lLiBhZGRpdGlvbmFsIFB5dGhvbiBsaWJyYXJpZXMpIG5lZWQgdG8gZm9sbG93IHRoZSBwYXJlbnQgZmVhdHVyZS4KICAgICAjIEZlYXR1cmVzIHRoYXQgaGF2ZSBubyBhZHZlcnRpc2VtZW50IHRyaWdnZXIgKGUuZy4gdGhlIHRlc3Qgc3VpdGUpCiAgICAgIyBtdXN0IG5vdCBzdXBwb3J0IGFkdmVydGlzZW1lbnQKLSAgICBnbG9iYWwgZGVmYXVsdF9mZWF0dXJlLCB0Y2x0aywgaHRtbGZpbGVzLCB0b29scywgdGVzdHN1aXRlLCBleHRfZmVhdHVyZSwgcHJpdmF0ZV9jcnQKKyAgICBnbG9iYWwgZGVmYXVsdF9mZWF0dXJlLCB0Y2x0aywgaHRtbGZpbGVzLCB0b29scywgdGVzdHN1aXRlLCBleHRfZmVhdHVyZSwgcHJpdmF0ZV9jcnQsIHByZXBlbmRfcGF0aAogICAgIGRlZmF1bHRfZmVhdHVyZSA9IEZlYXR1cmUoZGIsICJEZWZhdWx0RmVhdHVyZSIsICJQeXRob24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlB5dGhvbiBJbnRlcnByZXRlciBhbmQgTGlicmFyaWVzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsIGRpcmVjdG9yeSA9ICJUQVJHRVRESVIiKQpAQCAtODQ4LDMyICs4NjUsMzggQEAKICAgICBodG1sZmlsZXMgPSBGZWF0dXJlKGRiLCAiRG9jdW1lbnRhdGlvbiIsICJEb2N1bWVudGF0aW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICJQeXRob24gSFRNTEhlbHAgRmlsZSIsIDcsIHBhcmVudCA9IGRlZmF1bHRfZmVhdHVyZSkKICAgICB0b29scyA9IEZlYXR1cmUoZGIsICJUb29scyIsICJVdGlsaXR5IFNjcmlwdHMiLAotICAgICAgICAgICAgICAgICAgICAiUHl0aG9uIHV0aWxpdHkgc2NyaXB0cyAoVG9vbHMvIiwgOSwKKyAgICAgICAgICAgICAgICAgICAgIlB5dGhvbiB1dGlsaXR5IHNjcmlwdHMgKFRvb2xzLykiLCA5LAogICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBkZWZhdWx0X2ZlYXR1cmUsIGF0dHJpYnV0ZXM9MikKICAgICB0ZXN0c3VpdGUgPSBGZWF0dXJlKGRiLCAiVGVzdHN1aXRlIiwgIlRlc3Qgc3VpdGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgIlB5dGhvbiB0ZXN0IHN1aXRlIChMaWIvdGVzdC8pIiwgMTEsCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBkZWZhdWx0X2ZlYXR1cmUsIGF0dHJpYnV0ZXM9Mnw4KQorICAgICMgcHJlcGVuZF9wYXRoIGlzIGFuIGFkZGl0aW9uYWwgZmVhdHVyZSB3aGljaCBpcyB0byBiZSBvZmYgYnkgZGVmYXVsdC4KKyAgICAjIFNpbmNlIHRoZSBkZWZhdWx0IGxldmVsIGZvciB0aGUgYWJvdmUgZmVhdHVyZXMgaXMgMSwgdGhpcyBuZWVkcyB0byBiZQorICAgICMgYXQgbGVhc3QgbGV2ZWwgaGlnaGVyLgorICAgIHByZXBlbmRfcGF0aCA9IEZlYXR1cmUoZGIsICJQcmVwZW5kUGF0aCIsICJBZGQgcHl0aG9uLmV4ZSB0byBQYXRoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJQcmVwZW5kIFtUQVJHRVRESVJdIHRvIHRoZSBzeXN0ZW0gUGF0aCB2YXJpYWJsZS4gIgorICAgICAgICAgICAgICAgICAgICAgICAgIlRoaXMgYWxsb3dzIHlvdSB0byB0eXBlICdweXRob24nIGludG8gYSBjb21tYW5kICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJwcm9tcHQgd2l0aG91dCBuZWVkaW5nIHRoZSBmdWxsIHBhdGguIiwgMTMsCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgPSBkZWZhdWx0X2ZlYXR1cmUsIGF0dHJpYnV0ZXM9Mnw4LAorICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWw9MikKIAotZGVmIGV4dHJhY3RfbXN2Y3I5MCgpOgorZGVmIGV4dHJhY3RfbXN2Y3IxMDAoKToKICAgICAjIEZpbmQgdGhlIHJlZGlzdHJpYnV0YWJsZSBmaWxlcwogICAgIGlmIG1zaWxpYi5XaW42NDoKLSAgICAgICAgYXJjaCA9ICJhbWQ2NCIKKyAgICAgICAgYXJjaCA9ICJ4NjQiCiAgICAgZWxzZToKICAgICAgICAgYXJjaCA9ICJ4ODYiCi0gICAgZGlyID0gb3MucGF0aC5qb2luKG9zLmVudmlyb25bJ1ZTOTBDT01OVE9PTFMnXSwgciIuLlwuLlxWQ1xyZWRpc3RcJXNcTWljcm9zb2Z0LlZDOTAuQ1JUIiAlIGFyY2gpCisgICAgZGlyID0gb3MucGF0aC5qb2luKG9zLmVudmlyb25bJ1ZTMTAwQ09NTlRPT0xTJ10sIHIiLi5cLi5cVkNccmVkaXN0XCVzXE1pY3Jvc29mdC5WQzEwMC5DUlQiICUgYXJjaCkKIAogICAgIHJlc3VsdCA9IFtdCiAgICAgaW5zdGFsbGVyID0gbXNpbGliLk1ha2VJbnN0YWxsZXIoKQotICAgICMgb21pdCBtc3ZjbTkwIGFuZCBtc3ZjcDkwLCBhcyB0aGV5IGFyZW4ndCByZWFsbHkgbmVlZGVkCi0gICAgZmlsZXMgPSBbIk1pY3Jvc29mdC5WQzkwLkNSVC5tYW5pZmVzdCIsICJtc3ZjcjkwLmRsbCJdCi0gICAgZm9yIGYgaW4gZmlsZXM6Ci0gICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oZGlyLCBmKQotICAgICAgICBrdyA9IHsnc3JjJzpwYXRofQotICAgICAgICBpZiBmLmVuZHN3aXRoKCcuZGxsJyk6Ci0gICAgICAgICAgICBrd1sndmVyc2lvbiddID0gaW5zdGFsbGVyLkZpbGVWZXJzaW9uKHBhdGgsIDApCi0gICAgICAgICAgICBrd1snbGFuZ3VhZ2UnXSA9IGluc3RhbGxlci5GaWxlVmVyc2lvbihwYXRoLCAxKQotICAgICAgICByZXN1bHQuYXBwZW5kKChmLCBrdykpCi0gICAgcmV0dXJuIHJlc3VsdAorICAgICMgQXQgbGVhc3QgZm9yIFZTMjAxMCwgbWFuaWZlc3RzIGFyZSBubyBsb25nZXIgcHJvdmlkZWQKKyAgICBuYW1lID0gIm1zdmNyMTAwLmRsbCIKKyAgICBwYXRoID0gb3MucGF0aC5qb2luKGRpciwgbmFtZSkKKyAgICBrdyA9IHsnc3JjJzpwYXRofQorICAgIGt3Wyd2ZXJzaW9uJ10gPSBpbnN0YWxsZXIuRmlsZVZlcnNpb24ocGF0aCwgMCkKKyAgICBrd1snbGFuZ3VhZ2UnXSA9IGluc3RhbGxlci5GaWxlVmVyc2lvbihwYXRoLCAxKQorICAgIHJldHVybiBuYW1lLCBrdwogCiBkZWYgZ2VuZXJhdGVfbGljZW5zZSgpOgogICAgIGltcG9ydCBzaHV0aWwsIGdsb2IKQEAgLTg4OSw3ICs5MTIsNyBAQAogICAgICAgICBkaXJzID0gZ2xvYi5nbG9iKHNyY2RpcisiLy4uLyIrcGF0KQogICAgICAgICBpZiBub3QgZGlyczoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IsICJDb3VsZCBub3QgZmluZCAiK3NyY2RpcisiLy4uLyIrcGF0Ci0gICAgICAgIGlmIGxlbihkaXJzKSA+IDI6CisgICAgICAgIGlmIGxlbihkaXJzKSA+IDIgYW5kIG5vdCBzbmFwc2hvdDoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IsICJNdWx0aXBsZSBjb3BpZXMgb2YgIitwYXQKICAgICAgICAgZGlyID0gZGlyc1swXQogICAgICAgICBzaHV0aWwuY29weWZpbGVvYmoob3Blbihvcy5wYXRoLmpvaW4oZGlyLCBmaWxlKSksIG91dCkKQEAgLTkwNCwxNiArOTI3LDI4IEBACiAgICAgICAgICAgICBrd1snY29tcG9uZW50ZmxhZ3MnXSA9IDIgI21zaWRiQ29tcG9uZW50QXR0cmlidXRlc09wdGlvbmFsCiAgICAgICAgIERpcmVjdG9yeS5fX2luaXRfXyhzZWxmLCAqYXJncywgKiprdykKIAotICAgIGRlZiBjaGVja191bnBhY2thZ2VkKHNlbGYpOgotICAgICAgICBzZWxmLnVucGFja2FnZWRfZmlsZXMuZGlzY2FyZCgnX19weWNhY2hlX18nKQotICAgICAgICBzZWxmLnVucGFja2FnZWRfZmlsZXMuZGlzY2FyZCgnLnN2bicpCi0gICAgICAgIGlmIHNlbGYudW5wYWNrYWdlZF9maWxlczoKLSAgICAgICAgICAgIHByaW50ICJXYXJuaW5nOiBVbnBhY2thZ2VkIGZpbGVzIGluICVzIiAlIHNlbGYuYWJzb2x1dGUKLSAgICAgICAgICAgIHByaW50IHNlbGYudW5wYWNrYWdlZF9maWxlcworZGVmIGhnbWFuaWZlc3QoKToKKyAgICAjIEZldGNoIGZpbGUgbGlzdCBmcm9tIE1lcmN1cmlhbAorICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKFsnaGcnLCAnbWFuaWZlc3QnXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKKyAgICBzdGRvdXQsIHN0ZGVyciA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQorICAgICMgQ3JlYXRlIG5lc3RlZCBkaXJlY3RvcmllcyBmb3IgZmlsZSB0cmVlCisgICAgcmVzdWx0ID0ge30KKyAgICBmb3IgbGluZSBpbiBzdGRvdXQuc3BsaXRsaW5lcygpOgorICAgICAgICBjb21wb25lbnRzID0gbGluZS5zcGxpdCgnLycpCisgICAgICAgIGQgPSByZXN1bHQKKyAgICAgICAgd2hpbGUgbGVuKGNvbXBvbmVudHMpID4gMToKKyAgICAgICAgICAgIGQxID0gZC5zZXRkZWZhdWx0KGNvbXBvbmVudHNbMF0sIHt9KQorICAgICAgICAgICAgZCA9IGQxCisgICAgICAgICAgICBkZWwgY29tcG9uZW50c1swXQorICAgICAgICBkW2NvbXBvbmVudHNbMF1dID0gTm9uZQorICAgIHJldHVybiByZXN1bHQKKwogCiAjIFNlZSAiRmlsZSBUYWJsZSIsICJDb21wb25lbnQgVGFibGUiLCAiRGlyZWN0b3J5IFRhYmxlIiwKICMgIkZlYXR1cmVDb21wb25lbnRzIFRhYmxlIgogZGVmIGFkZF9maWxlcyhkYik6CisgICAgaW5zdGFsbGVyID0gbXNpbGliLk1ha2VJbnN0YWxsZXIoKQorICAgIGhnZmlsZXMgPSBoZ21hbmlmZXN0KCkKICAgICBjYWIgPSBDQUIoInB5dGhvbiIpCiAgICAgdG1wZmlsZXMgPSBbXQogICAgICMgQWRkIGFsbCBleGVjdXRhYmxlcywgaWNvbnMsIHRleHQgZmlsZXMgaW50byB0aGUgVEFSR0VURElSIGNvbXBvbmVudApAQCAtOTMyLDExICs5NjcsMjcgQEAKIAogICAgICMgbXNpZGJDb21wb25lbnRBdHRyaWJ1dGVzU2hhcmVkRGxsUmVmQ291bnQgPSA4LCBzZWUgIkNvbXBvbmVudCBUYWJsZSIKICAgICBkbGxkaXIgPSBQeURpcmVjdG9yeShkYiwgY2FiLCByb290LCBzcmNkaXIsICJETExESVIiLCAiLiIpCisgICAgbGF1bmNoZXJkaXIgPSBQeURpcmVjdG9yeShkYiwgY2FiLCByb290LCBzcmNkaXIsICJMQVVOQ0hFUkRJUiIsICIuIikKKworICAgICMgbXNpZGJDb21wb25lbnRBdHRyaWJ1dGVzNjRiaXQgPSAyNTY7IHRoaXMgZGlzYWJsZXMgcmVnaXN0cnkgcmVkaXJlY3Rpb24KKyAgICAjIHRvIGFsbG93IHNldHRpbmcgdGhlIFNoYXJlZERMTHMga2V5IGluIHRoZSA2NC1iaXQgcG9ydGlvbiBldmVuIGZvciBhCisgICAgIyAzMi1iaXQgaW5zdGFsbGVyLgorICAgICMgWFhYIGRvZXMgdGhpcyBzdGlsbCBhbGxvdyB0byBpbnN0YWxsIHRoZSBjb21wb25lbnQgb24gYSAzMi1iaXQgc3lzdGVtPworICAgICMgUGljayB1cCAzMi1iaXQgYmluYXJ5IGFsd2F5cworICAgIGxhdW5jaGVyID0gb3MucGF0aC5qb2luKHNyY2RpciwgIlBDQnVpbGQiLCAicHkuZXhlIikKKyAgICBsYXVuY2hlcmRpci5zdGFydF9jb21wb25lbnQoImxhdW5jaGVyIiwgZmxhZ3MgPSA4KzI1Niwga2V5ZmlsZT0icHkuZXhlIikKKyAgICBsYXVuY2hlcmRpci5hZGRfZmlsZSgiJXMvcHkuZXhlIiAlIFBDQlVJTEQsCisgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1pbnN0YWxsZXIuRmlsZVZlcnNpb24obGF1bmNoZXIsIDApLAorICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlPWluc3RhbGxlci5GaWxlVmVyc2lvbihsYXVuY2hlciwgMSkpCisgICAgbGF1bmNoZXJ3ID0gb3MucGF0aC5qb2luKHNyY2RpciwgIlBDQnVpbGQiLCAicHl3LmV4ZSIpCisgICAgbGF1bmNoZXJkaXIuc3RhcnRfY29tcG9uZW50KCJsYXVuY2hlcnciLCBmbGFncyA9IDgrMjU2LCBrZXlmaWxlPSJweXcuZXhlIikKKyAgICBsYXVuY2hlcmRpci5hZGRfZmlsZSgiJXMvcHl3LmV4ZSIgJSBQQ0JVSUxELAorICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb249aW5zdGFsbGVyLkZpbGVWZXJzaW9uKGxhdW5jaGVydywgMCksCisgICAgICAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2U9aW5zdGFsbGVyLkZpbGVWZXJzaW9uKGxhdW5jaGVydywgMSkpCiAKICAgICBweWRsbCA9ICJweXRob24lcyVzLmRsbCIgJSAobWFqb3IsIG1pbm9yKQogICAgIHB5ZGxsc3JjID0gb3MucGF0aC5qb2luKHNyY2RpciwgUENCVUlMRCwgcHlkbGwpCiAgICAgZGxsZGlyLnN0YXJ0X2NvbXBvbmVudCgiRExMRElSIiwgZmxhZ3MgPSA4LCBrZXlmaWxlID0gcHlkbGwsIHV1aWQgPSBweXRob25kbGxfdXVpZCkKLSAgICBpbnN0YWxsZXIgPSBtc2lsaWIuTWFrZUluc3RhbGxlcigpCiAgICAgcHl2ZXJzaW9uID0gaW5zdGFsbGVyLkZpbGVWZXJzaW9uKHB5ZGxsc3JjLCAwKQogICAgIGlmIG5vdCBzbmFwc2hvdDoKICAgICAgICAgIyBGb3IgcmVsZWFzZXMsIHRoZSBQeXRob24gRExMIGhhcyB0aGUgc2FtZSB2ZXJzaW9uIGFzIHRoZQpAQCAtOTUyLDkgKzEwMDMsOCBAQAogICAgICMgcG9pbnRpbmcgdG8gdGhlIHJvb3QgZGlyZWN0b3J5CiAgICAgcm9vdC5zdGFydF9jb21wb25lbnQoIm1zdmNyOTAiLCBmZWF0dXJlPXByaXZhdGVfY3J0KQogICAgICMgUmVzdWx0cyBhcmUgSUQsa2V5d29yZCBwYWlycwotICAgIG1hbmlmZXN0LCBjcnRkbGwgPSBleHRyYWN0X21zdmNyOTAoKQotICAgIHJvb3QuYWRkX2ZpbGUobWFuaWZlc3RbMF0sICoqbWFuaWZlc3RbMV0pCi0gICAgcm9vdC5hZGRfZmlsZShjcnRkbGxbMF0sICoqY3J0ZGxsWzFdKQorICAgIGNydGRsbCwga3dkcyA9IGV4dHJhY3RfbXN2Y3IxMDAoKQorICAgIHJvb3QuYWRkX2ZpbGUoY3J0ZGxsLCAqKmt3ZHMpCiAgICAgIyBDb3B5IHRoZSBtYW5pZmVzdAogICAgICMgQWN0dWFsbHksIGRvbid0IGRvIHRoYXQgYW55bW9yZSAtIG5vIERMTCBpbiBETExzIHNob3VsZCBoYXZlIGEgbWFuaWZlc3QKICAgICAjIGRlcGVuZGVuY3kgb24gbXN2Y3I5MC5kbGwgYW55bW9yZSwgc28gdGhpcyBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeQpAQCAtOTc1LDEwNCArMTAyNSw0MCBAQAogCiAgICAgIyBBZGQgYWxsIC5weSBmaWxlcyBpbiBMaWIsIGV4Y2VwdCB0a2ludGVyLCB0ZXN0CiAgICAgZGlycyA9IFtdCi0gICAgcHlkaXJzID0gWyhyb290LCJMaWIiKV0KKyAgICBweWRpcnMgPSBbKHJvb3QsICJMaWIiLCBoZ2ZpbGVzWyJMaWIiXSwgZGVmYXVsdF9mZWF0dXJlKV0KICAgICB3aGlsZSBweWRpcnM6CiAgICAgICAgICMgQ29tbWl0IGV2ZXJ5IG5vdyBhbmQgdGhlbiwgb3IgZWxzZSBpbnN0YWxsZXIgd2lsbCBjb21wbGFpbgogICAgICAgICBkYi5Db21taXQoKQotICAgICAgICBwYXJlbnQsIGRpciA9IHB5ZGlycy5wb3AoKQotICAgICAgICBpZiBkaXIgPT0gIi5zdm4iIG9yIGRpciA9PSAnX19weWNhY2hlX18nIG9yIGRpci5zdGFydHN3aXRoKCJwbGF0LSIpOgorICAgICAgICBwYXJlbnQsIGRpciwgZmlsZXMsIGZlYXR1cmUgPSBweWRpcnMucG9wKCkKKyAgICAgICAgaWYgZGlyLnN0YXJ0c3dpdGgoInBsYXQtIik6CiAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICBlbGlmIGRpciBpbiBbInRraW50ZXIiLCAiaWRsZWxpYiIsICJJY29ucyJdOgorICAgICAgICBpZiBkaXIgaW4gWyJ0a2ludGVyIiwgImlkbGVsaWIiLCAidHVydGxlZGVtbyJdOgogICAgICAgICAgICAgaWYgbm90IGhhdmVfdGNsOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBmZWF0dXJlID0gdGNsdGsKICAgICAgICAgICAgIHRjbHRrLnNldF9jdXJyZW50KCkKLSAgICAgICAgZWxpZiBkaXIgaW4gWyd0ZXN0JywgJ3Rlc3RzJywgJ2RhdGEnLCAnb3V0cHV0J106Ci0gICAgICAgICAgICAjIHRlc3Q6IExpYiwgTGliL2VtYWlsLCBMaWIvY3R5cGVzLCBMaWIvc3FsaXRlMwotICAgICAgICAgICAgIyB0ZXN0czogTGliL2Rpc3R1dGlscwotICAgICAgICAgICAgIyBkYXRhOiBMaWIvZW1haWwvdGVzdAotICAgICAgICAgICAgIyBvdXRwdXQ6IExpYi90ZXN0Ci0gICAgICAgICAgICB0ZXN0c3VpdGUuc2V0X2N1cnJlbnQoKQorICAgICAgICBlbGlmIGRpciBpbiAoJ3Rlc3QnLCAndGVzdHMnKToKKyAgICAgICAgICAgIGZlYXR1cmUgPSB0ZXN0c3VpdGUKICAgICAgICAgZWxpZiBub3QgaGF2ZV9jdHlwZXMgYW5kIGRpciA9PSAiY3R5cGVzIjoKICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBkZWZhdWx0X2ZlYXR1cmUuc2V0X2N1cnJlbnQoKQorICAgICAgICBmZWF0dXJlLnNldF9jdXJyZW50KCkKICAgICAgICAgbGliID0gUHlEaXJlY3RvcnkoZGIsIGNhYiwgcGFyZW50LCBkaXIsIGRpciwgIiVzfCVzIiAlIChwYXJlbnQubWFrZV9zaG9ydChkaXIpLCBkaXIpKQotICAgICAgICAjIEFkZCBhZGRpdGlvbmFsIGZpbGVzCiAgICAgICAgIGRpcnMuYXBwZW5kKGxpYikKLSAgICAgICAgbGliLmdsb2IoIioudHh0IikKLSAgICAgICAgaWYgZGlyPT0nc2l0ZS1wYWNrYWdlcyc6Ci0gICAgICAgICAgICBsaWIuYWRkX2ZpbGUoIlJFQURNRS50eHQiLCBzcmM9IlJFQURNRSIpCi0gICAgICAgICAgICBjb250aW51ZQotICAgICAgICBmaWxlcyA9IGxpYi5nbG9iKCIqLnB5IikKLSAgICAgICAgZmlsZXMgKz0gbGliLmdsb2IoIioucHl3IikKLSAgICAgICAgaWYgZmlsZXM6Ci0gICAgICAgICAgICAjIEFkZCBhbiBlbnRyeSB0byB0aGUgUmVtb3ZlRmlsZSB0YWJsZSB0byByZW1vdmUgYnl0ZWNvZGUgZmlsZXMuCi0gICAgICAgICAgICBsaWIucmVtb3ZlX3B5YygpCi0gICAgICAgICMgcGFja2FnZSBSRUFETUVzIGlmIHByZXNlbnQKLSAgICAgICAgbGliLmdsb2IoIlJFQURNRSIpCi0gICAgICAgIGlmIGRpcj09J0xpYic6Ci0gICAgICAgICAgICBsaWIuYWRkX2ZpbGUoJ3dzZ2lyZWYuZWdnLWluZm8nKQotICAgICAgICBpZiBkaXI9PSd0ZXN0JyBhbmQgcGFyZW50LnBoeXNpY2FsPT0nTGliJzoKLSAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgiMTg1dGVzdC5kYiIpCi0gICAgICAgICAgICBsaWIuYWRkX2ZpbGUoImF1ZGlvdGVzdC5hdSIpCi0gICAgICAgICAgICBsaWIuYWRkX2ZpbGUoInNnbWxfaW5wdXQuaHRtbCIpCi0gICAgICAgICAgICBsaWIuYWRkX2ZpbGUoInRlc3R0YXIudGFyIikKLSAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgidGVzdF9kaWZmbGliX2V4cGVjdC5odG1sIikKLSAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgiY2hlY2tfc291bmRjYXJkLnZicyIpCi0gICAgICAgICAgICBsaWIuYWRkX2ZpbGUoImVtcHR5LnZicyIpCi0gICAgICAgICAgICBsaWIuYWRkX2ZpbGUoIlNpbmUtMTAwMEh6LTMwMG1zLmFpZiIpCi0gICAgICAgICAgICBsaWIuYWRkX2ZpbGUoIm1pbWUudHlwZXMiKQotICAgICAgICAgICAgbGliLmdsb2IoIioudXVlIikKLSAgICAgICAgICAgIGxpYi5nbG9iKCIqLnBlbSIpCi0gICAgICAgICAgICBsaWIuZ2xvYigiKi5wY2siKQotICAgICAgICAgICAgbGliLmdsb2IoImNmZ3BhcnNlci4qIikKLSAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgiemlwX2NwNDM3X2hlYWRlci56aXAiKQotICAgICAgICAgICAgbGliLmFkZF9maWxlKCJ6aXBkaXIuemlwIikKLSAgICAgICAgaWYgZGlyPT0nY2FwYXRoJzoKLSAgICAgICAgICAgIGxpYi5nbG9iKCIqLjAiKQotICAgICAgICBpZiBkaXI9PSd0ZXN0cycgYW5kIHBhcmVudC5waHlzaWNhbD09J2Rpc3R1dGlscyc6Ci0gICAgICAgICAgICBsaWIuYWRkX2ZpbGUoIlNldHVwLnNhbXBsZSIpCi0gICAgICAgIGlmIGRpcj09J2RlY2ltYWx0ZXN0ZGF0YSc6Ci0gICAgICAgICAgICBsaWIuZ2xvYigiKi5kZWNUZXN0IikKLSAgICAgICAgaWYgZGlyPT0neG1sdGVzdGRhdGEnOgotICAgICAgICAgICAgbGliLmdsb2IoIioueG1sIikKLSAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgidGVzdC54bWwub3V0IikKLSAgICAgICAgaWYgZGlyPT0nb3V0cHV0JzoKLSAgICAgICAgICAgIGxpYi5nbG9iKCJ0ZXN0XyoiKQotICAgICAgICBpZiBkaXI9PSdzbmRoZHJkYXRhJzoKLSAgICAgICAgICAgIGxpYi5nbG9iKCJzbmRoZHIuKiIpCi0gICAgICAgIGlmIGRpcj09J2lkbGVsaWInOgotICAgICAgICAgICAgbGliLmdsb2IoIiouZGVmIikKLSAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgiaWRsZS5iYXQiKQotICAgICAgICAgICAgbGliLmFkZF9maWxlKCJDaGFuZ2VMb2ciKQotICAgICAgICBpZiBkaXI9PSJJY29ucyI6Ci0gICAgICAgICAgICBsaWIuZ2xvYigiKi5naWYiKQotICAgICAgICAgICAgbGliLmFkZF9maWxlKCJpZGxlLmljbnMiKQotICAgICAgICBpZiBkaXI9PSJjb21tYW5kIiBhbmQgcGFyZW50LnBoeXNpY2FsPT0iZGlzdHV0aWxzIjoKLSAgICAgICAgICAgIGxpYi5nbG9iKCJ3aW5pbnN0Ki5leGUiKQotICAgICAgICAgICAgbGliLmFkZF9maWxlKCJjb21tYW5kX3RlbXBsYXRlIikKLSAgICAgICAgaWYgZGlyPT0ibGliMnRvMyI6Ci0gICAgICAgICAgICBsaWIucmVtb3ZlZmlsZSgicGlja2xlIiwgIioucGlja2xlIikKLSAgICAgICAgaWYgZGlyPT0ibWFjaG9saWIiOgotICAgICAgICAgICAgbGliLmFkZF9maWxlKCJSRUFETUUuY3R5cGVzIikKLSAgICAgICAgICAgIGxpYi5nbG9iKCJmZXRjaF9tYWNob2xpYioiKQotICAgICAgICBpZiBkaXI9PSd0dXJ0bGVkZW1vJzoKLSAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgidHVydGxlLmNmZyIpCi0gICAgICAgIGlmIGRpcj09InB5ZG9jX2RhdGEiOgotICAgICAgICAgICAgbGliLmFkZF9maWxlKCJfcHlkb2MuY3NzIikKLSAgICAgICAgaWYgZGlyPT0iZGF0YSIgYW5kIHBhcmVudC5waHlzaWNhbD09InRlc3QiIGFuZCBwYXJlbnQuYmFzZWRpci5waHlzaWNhbD09ImVtYWlsIjoKLSAgICAgICAgICAgICMgVGhpcyBzaG91bGQgY29udGFpbiBhbGwgbm9uLS5zdm4gZmlsZXMgbGlzdGVkIGluIHN1YnZlcnNpb24KLSAgICAgICAgICAgIGZvciBmIGluIG9zLmxpc3RkaXIobGliLmFic29sdXRlKToKLSAgICAgICAgICAgICAgICBpZiBmLmVuZHN3aXRoKCIudHh0Iikgb3IgZj09Ii5zdm4iOmNvbnRpbnVlCi0gICAgICAgICAgICAgICAgaWYgZi5lbmRzd2l0aCgiLmF1Iikgb3IgZi5lbmRzd2l0aCgiLmdpZiIpOgotICAgICAgICAgICAgICAgICAgICBsaWIuYWRkX2ZpbGUoZikKKyAgICAgICAgaGFzX3B5ID0gRmFsc2UKKyAgICAgICAgZm9yIG5hbWUsIHN1YmRpciBpbiBmaWxlcy5pdGVtcygpOgorICAgICAgICAgICAgaWYgc3ViZGlyIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG9zLnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihsaWIuYWJzb2x1dGUsIG5hbWUpKQorICAgICAgICAgICAgICAgIGlmIG5hbWUgPT0gJ1JFQURNRSc6CisgICAgICAgICAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgiUkVBRE1FLnR4dCIsIHNyYz0iUkVBRE1FIikKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBwcmludCgiV0FSTklORzogTmV3IGZpbGUgJXMgaW4gZW1haWwvdGVzdC9kYXRhIiAlIGYpCi0gICAgICAgIGZvciBmIGluIG9zLmxpc3RkaXIobGliLmFic29sdXRlKToKLSAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKGxpYi5hYnNvbHV0ZSwgZikpOgotICAgICAgICAgICAgICAgIHB5ZGlycy5hcHBlbmQoKGxpYiwgZikpCi0gICAgZm9yIGQgaW4gZGlyczoKLSAgICAgICAgZC5jaGVja191bnBhY2thZ2VkKCkKKyAgICAgICAgICAgICAgICAgICAgbGliLmFkZF9maWxlKG5hbWUpCisgICAgICAgICAgICAgICAgICAgIGhhc19weSA9IGhhc19weSBvciBuYW1lLmVuZHN3aXRoKCIucHkiKSBvciBuYW1lLmVuZHN3aXRoKCIucHl3IikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYXNzZXJ0IG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKGxpYi5hYnNvbHV0ZSwgbmFtZSkpCisgICAgICAgICAgICAgICAgcHlkaXJzLmFwcGVuZCgobGliLCBuYW1lLCBzdWJkaXIsIGZlYXR1cmUpKQorCisgICAgICAgIGlmIGhhc19weToKKyAgICAgICAgICAgIGxpYi5yZW1vdmVfcHljKCkKICAgICAjIEFkZCBETExzCiAgICAgZGVmYXVsdF9mZWF0dXJlLnNldF9jdXJyZW50KCkKICAgICBsaWIgPSBETExzCkBAIC0xMTU5LDYgKzExNDUsOSBAQAogICAgICAgICAgICAgbGliLmFkZF9maWxlKCJSRUFETUUudHh0Iiwgc3JjPSJSRUFETUUiKQogICAgICAgICBpZiBmID09ICdTY3JpcHRzJzoKICAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgiMnRvMy5weSIsIHNyYz0iMnRvMyIpCisgICAgICAgICAgICBsaWIuYWRkX2ZpbGUoInB5ZG9jMy5weSIsIHNyYz0icHlkb2MzIikKKyAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgicHlzZXR1cDMucHkiLCBzcmM9InB5c2V0dXAzIikKKyAgICAgICAgICAgIGxpYi5hZGRfZmlsZSgicHl2ZW52LnB5Iiwgc3JjPSJweXZlbnYiKQogICAgICAgICAgICAgaWYgaGF2ZV90Y2w6CiAgICAgICAgICAgICAgICAgbGliLnN0YXJ0X2NvbXBvbmVudCgicHlkb2NndWkucHl3IiwgdGNsdGssIGtleWZpbGU9InB5ZG9jZ3VpLnB5dyIpCiAgICAgICAgICAgICAgICAgbGliLmFkZF9maWxlKCJweWRvY2d1aS5weXciKQpAQCAtMTE5MCw2ICsxMTc5LDggQEAKICAgICAgICAgICAgICAgICJJbnN0YWxsUGF0aCIpLAogICAgICAgICAgICAgICAoIlJFR0lTVFJZLmRvYyIsIG1zaWxpYi5nZW5fdXVpZCgpLCAiVEFSR0VURElSIiwgcmVnaXN0cnlfY29tcG9uZW50LCBOb25lLAogICAgICAgICAgICAgICAgIkRvY3VtZW50YXRpb24iKSwKKyAgICAgICAgICAgICAgKCJSRUdJU1RSWS5wYXRoIiwgbXNpbGliLmdlbl91dWlkKCksICJUQVJHRVRESVIiLCByZWdpc3RyeV9jb21wb25lbnQsIE5vbmUsCisgICAgICAgICAgICAgIE5vbmUpLAogICAgICAgICAgICAgICAoIlJFR0lTVFJZLmRlZiIsIG1zaWxpYi5nZW5fdXVpZCgpLCAiVEFSR0VURElSIiwgcmVnaXN0cnlfY29tcG9uZW50LAogICAgICAgICAgICAgICAgTm9uZSwgTm9uZSldICsgdGNsZGF0YSkKICAgICAjIFNlZSAiRmVhdHVyZUNvbXBvbmVudHMgVGFibGUiLgpAQCAtMTIwNiw2ICsxMTk3LDcgQEAKICAgICBhZGRfZGF0YShkYiwgIkZlYXR1cmVDb21wb25lbnRzIiwKICAgICAgICAgICAgICBbKGRlZmF1bHRfZmVhdHVyZS5pZCwgIlJFR0lTVFJZIiksCiAgICAgICAgICAgICAgIChodG1sZmlsZXMuaWQsICJSRUdJU1RSWS5kb2MiKSwKKyAgICAgICAgICAgICAgKHByZXBlbmRfcGF0aC5pZCwgIlJFR0lTVFJZLnBhdGgiKSwKICAgICAgICAgICAgICAgKGV4dF9mZWF0dXJlLmlkLCAiUkVHSVNUUlkuZGVmIildICsKICAgICAgICAgICAgICAgdGNsZGF0YQogICAgICAgICAgICAgICApCkBAIC0xMjQ0LDExICsxMjM2LDExIEBACiAgICAgICAgICAgICAgICJ0ZXh0L3BsYWluIiwgIlJFR0lTVFJZLmRlZiIpLAogICAgICAgICAgICAgICNWZXJicwogICAgICAgICAgICAgICgicHkub3BlbiIsIC0xLCBwYXQgJSAodGVzdHByZWZpeCwgIiIsICJvcGVuIiksICIiLAotICAgICAgICAgICAgICByJyJbVEFSR0VURElSXXB5dGhvbi5leGUiICIlMSIgJSonLCAiUkVHSVNUUlkuZGVmIiksCisgICAgICAgICAgICAgIHInIltMQVVOQ0hFUkRJUl1weS5leGUiICIlMSIgJSonLCAiUkVHSVNUUlkuZGVmIiksCiAgICAgICAgICAgICAgKCJweXcub3BlbiIsIC0xLCBwYXQgJSAodGVzdHByZWZpeCwgIk5vQ29uIiwgIm9wZW4iKSwgIiIsCi0gICAgICAgICAgICAgIHInIltUQVJHRVRESVJdcHl0aG9udy5leGUiICIlMSIgJSonLCAiUkVHSVNUUlkuZGVmIiksCisgICAgICAgICAgICAgIHInIltMQVVOQ0hFUkRJUl1weXcuZXhlIiAiJTEiICUqJywgIlJFR0lTVFJZLmRlZiIpLAogICAgICAgICAgICAgICgicHljLm9wZW4iLCAtMSwgcGF0ICUgKHRlc3RwcmVmaXgsICJDb21waWxlZCIsICJvcGVuIiksICIiLAotICAgICAgICAgICAgICByJyJbVEFSR0VURElSXXB5dGhvbi5leGUiICIlMSIgJSonLCAiUkVHSVNUUlkuZGVmIiksCisgICAgICAgICAgICAgIHInIltMQVVOQ0hFUkRJUl1weS5leGUiICIlMSIgJSonLCAiUkVHSVNUUlkuZGVmIiksCiAgICAgICAgICAgICAgXSArIHRjbF92ZXJicyArIFsKICAgICAgICAgICAgICAjSWNvbnMKICAgICAgICAgICAgICAoInB5Lmljb24iLCAtMSwgcGF0MiAlICh0ZXN0cHJlZml4LCAiIiksICIiLApAQCAtMTM0Nyw5ICsxMzM5LDkgQEAKICMgTWVyZ2UgQ1JUIGludG8gTVNJIGZpbGUuIFRoaXMgcmVxdWlyZXMgdGhlIGRhdGFiYXNlIHRvIGJlIGNsb3NlZC4KIG1vZF9kaXIgPSBvcy5wYXRoLmpvaW4ob3MuZW52aXJvblsiUHJvZ3JhbUZpbGVzIl0sICJDb21tb24gRmlsZXMiLCAiTWVyZ2UgTW9kdWxlcyIpCiBpZiBtc2lsaWIuV2luNjQ6Ci0gICAgbW9kdWxlcyA9IFsiTWljcm9zb2Z0X1ZDOTBfQ1JUX3g4Nl94NjQubXNtIiwgInBvbGljeV85XzBfTWljcm9zb2Z0X1ZDOTBfQ1JUX3g4Nl94NjQubXNtIl0KKyAgICBtb2R1bGVzID0gWyJNaWNyb3NvZnRfVkMxMDBfQ1JUX3g2NC5tc20iXQogZWxzZToKLSAgICBtb2R1bGVzID0gWyJNaWNyb3NvZnRfVkM5MF9DUlRfeDg2Lm1zbSIsInBvbGljeV85XzBfTWljcm9zb2Z0X1ZDOTBfQ1JUX3g4Ni5tc20iXQorICAgIG1vZHVsZXMgPSBbIk1pY3Jvc29mdF9WQzEwMF9DUlRfeDg2Lm1zbSJdCiAKIGZvciBpLCBuIGluIGVudW1lcmF0ZShtb2R1bGVzKToKICAgICBtb2R1bGVzW2ldID0gb3MucGF0aC5qb2luKG1vZF9kaXIsIG4pCmRpZmYgLS1naXQgYS9Ub29scy9tc2kvbXNpbGliLnB5IGIvVG9vbHMvbXNpL21zaWxpYi5weQppbmRleCA1Nzk1ZDBlLi40NzJkOWQ0IDEwMDY0NAotLS0gYS9Ub29scy9tc2kvbXNpbGliLnB5CisrKyBiL1Rvb2xzL21zaS9tc2lsaWIucHkKQEAgLTQwOCw3ICs0MDgsNyBAQAogICAgICAgICBzZWxmLnBoeXNpY2FsID0gcGh5c2ljYWwKICAgICAgICAgc2VsZi5sb2dpY2FsID0gbG9naWNhbAogICAgICAgICBzZWxmLmNvbXBvbmVudCA9IE5vbmUKLSAgICAgICAgc2VsZi5zaG9ydF9uYW1lcyA9IHNldHMuU2V0KCkKKyAgICAgICAgc2VsZi5zaG9ydF9uYW1lcyA9IHt9CiAgICAgICAgIHNlbGYuaWRzID0gc2V0cy5TZXQoKQogICAgICAgICBzZWxmLmtleWZpbGVzID0ge30KICAgICAgICAgc2VsZi5jb21wb25lbnRmbGFncyA9IGNvbXBvbmVudGZsYWdzCkBAIC00NTYsMjMgKzQ1NiwyNSBAQAogICAgICAgICAgICAgICAgICAgICAgICAgWyhmZWF0dXJlLmlkLCBjb21wb25lbnQpXSkKIAogICAgIGRlZiBtYWtlX3Nob3J0KHNlbGYsIGZpbGUpOgorICAgICAgICBsb25nID0gZmlsZQogICAgICAgICBmaWxlID0gcmUuc3ViKHInW1w/fD48Oi8qIissOz1cW1xdXScsICdfJywgZmlsZSkgIyByZXN0cmljdGlvbnMgb24gc2hvcnQgbmFtZXMKLSAgICAgICAgcGFydHMgPSBmaWxlLnNwbGl0KCIuIikKKyAgICAgICAgcGFydHMgPSBmaWxlLnNwbGl0KCIuIiwgMSkKICAgICAgICAgaWYgbGVuKHBhcnRzKT4xOgotICAgICAgICAgICAgc3VmZml4ID0gcGFydHNbLTFdLnVwcGVyKCkKKyAgICAgICAgICAgIHN1ZmZpeCA9IHBhcnRzWzFdLnVwcGVyKCkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN1ZmZpeCA9IE5vbmUKKyAgICAgICAgICAgIHN1ZmZpeCA9ICcnCiAgICAgICAgIHByZWZpeCA9IHBhcnRzWzBdLnVwcGVyKCkKLSAgICAgICAgaWYgbGVuKHByZWZpeCkgPD0gOCBhbmQgKG5vdCBzdWZmaXggb3IgbGVuKHN1ZmZpeCk8PTMpOgorICAgICAgICBpZiBsZW4ocHJlZml4KSA8PSA4IGFuZCAnLicgbm90IGluIHN1ZmZpeCBhbmQgbGVuKHN1ZmZpeCkgPD0gMzoKICAgICAgICAgICAgIGlmIHN1ZmZpeDoKICAgICAgICAgICAgICAgICBmaWxlID0gcHJlZml4KyIuIitzdWZmaXgKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZmlsZSA9IHByZWZpeAotICAgICAgICAgICAgYXNzZXJ0IGZpbGUgbm90IGluIHNlbGYuc2hvcnRfbmFtZXMKKyAgICAgICAgICAgIGFzc2VydCBmaWxlIG5vdCBpbiBzZWxmLnNob3J0X25hbWVzLCAoZmlsZSwgc2VsZi5zaG9ydF9uYW1lc1tmaWxlXSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHByZWZpeCA9IHByZWZpeFs6Nl0KICAgICAgICAgICAgIGlmIHN1ZmZpeDoKLSAgICAgICAgICAgICAgICBzdWZmaXggPSBzdWZmaXhbOjNdCisgICAgICAgICAgICAgICAgIyBsYXN0IHRocmVlIGNoYXJhY3RlcnMgb2YgbGFzdCBzdWZmaXgKKyAgICAgICAgICAgICAgICBzdWZmaXggPSBzdWZmaXgucnNwbGl0KCcuJylbLTFdWzozXQogICAgICAgICAgICAgcG9zID0gMQogICAgICAgICAgICAgd2hpbGUgMToKICAgICAgICAgICAgICAgICBpZiBzdWZmaXg6CkBAIC00ODQsNyArNDg2LDcgQEAKICAgICAgICAgICAgICAgICBhc3NlcnQgcG9zIDwgMTAwMDAKICAgICAgICAgICAgICAgICBpZiBwb3MgaW4gKDEwLCAxMDAsIDEwMDApOgogICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSBwcmVmaXhbOi0xXQotICAgICAgICBzZWxmLnNob3J0X25hbWVzLmFkZChmaWxlKQorICAgICAgICBzZWxmLnNob3J0X25hbWVzW2ZpbGVdID0gbG9uZwogICAgICAgICByZXR1cm4gZmlsZQogCiAgICAgZGVmIGFkZF9maWxlKHNlbGYsIGZpbGUsIHNyYz1Ob25lLCB2ZXJzaW9uPU5vbmUsIGxhbmd1YWdlPU5vbmUpOgpkaWZmIC0tZ2l0IGEvVG9vbHMvbXNpL3V1aWRzLnB5IGIvVG9vbHMvbXNpL3V1aWRzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MGQxN2FkLi4wMDAwMDAwCi0tLSBhL1Rvb2xzL21zaS91dWlkcy5weQorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAgQEAKLSMgVGhpcyBzaG91bGQgYmUgZXh0ZW5kZWQgZm9yIGVhY2ggUHl0aG9uIHJlbGVhc2UuCi0jIFRoZSBwcm9kdWN0IGNvZGUgbXVzdCBjaGFuZ2Ugd2hlbmV2ZXIgdGhlIG5hbWUgb2YgdGhlIE1TSSBmaWxlCi0jIGNoYW5nZXMsIGFuZCB3aGVuIG5ldyBjb21wb25lbnQgY29kZXMgYXJlIGlzc3VlZCBmb3IgZXhpc3RpbmcKLSMgY29tcG9uZW50cy4gU2VlICJDaGFuZ2luZyB0aGUgUHJvZHVjdCBDb2RlIi4gQXMgd2UgY2hhbmdlIHRoZQotIyBjb21wb25lbnQgY29kZXMgd2l0aCBldmVyeSBidWlsZCwgd2UgbmVlZCBhIG5ldyBwcm9kdWN0IGNvZGUKLSMgZWFjaCB0aW1lLiBGb3IgaW50ZXJtZWRpYXRlIChzbmFwc2hvdCkgcmVsZWFzZXMsIHRoZXkgYXJlIGF1dG9tYXRpY2FsbHkKLSMgZ2VuZXJhdGVkLiBGb3Igb2ZmaWNpYWwgcmVsZWFzZXMsIHdlIHJlY29yZCB0aGUgcHJvZHVjdCBjb2RlcywKLSMgc28gcGVvcGxlIGNhbiByZWZlciB0byB0aGVtLgotcHJvZHVjdF9jb2RlcyA9IHsKLSAgICAnMi41LjEwMSc6ICd7YmMxNGNlM2UtNWU3Mi00YTY0LWFjMWYtYmY1OWE1NzE4OThjfScsICMgMi41YTEKLSAgICAnMi41LjEwMic6ICd7NWVlZDUxYzEtOGU5ZC00MDcxLTk0YzUtYjQwZGU1ZDQ5YmE1fScsICMgMi41YTIKLSAgICAnMi41LjEwMyc6ICd7NzNkY2Q5NjYtZmZlYy00MTVmLWJiMzktODM0MmMxZjQ3MDE3fScsICMgMi41YTMKLSAgICAnMi41LjExMSc6ICd7Yzc5N2VjZjgtYThlNi00ZmVjLWJiOTktNTI2YjY1ZjI4NjI2fScsICMgMi41YjEKLSAgICAnMi41LjExMic6ICd7MzJiZWI3NzQtZjYyNS00MzlkLWI1ODctNzE4NzQ4N2JhZjE1fScsICMgMi41YjIKLSAgICAnMi41LjExMyc6ICd7ODlmMjM5MTgtMTFjZi00ZjA4LWJlMTMtYjliMmU2NDYzZmQ5fScsICMgMi41YjMKLSAgICAnMi41LjEyMSc6ICd7OGU5MzIxYmMtNmIyNC00OGEzLThmZDQtYzk1ZjhlNTMxZTVmfScsICMgMi41YzEKLSAgICAnMi41LjEyMic6ICd7YTZjZDUwOGQtOTU5OS00NWRhLWE0NDEtY2JmZmE5ZjdlMDcwfScsICMgMi41YzIKLSAgICAnMi41LjE1MCc6ICd7MGEyYzU4NTQtNTU3ZS00OGM4LTgzNWEtM2I5ZjA3NGJkY2FhfScsICMgMi41LjAKLSAgICAnMi41LjExMjEnOid7MDM3OGI0M2UtNjE4NC00YzJmLWJlMWEtNGEzNjc3ODFjZDU0fScsICMgMi41LjFjMQotICAgICcyLjUuMTE1MCc6J3szMTgwMDAwNC02Mzg2LTQ5OTktYTUxOS01MThmMmQ3OGQ4ZjB9JywgIyAyLjUuMQotICAgICcyLjUuMjE1MCc6J3s2MzA0YTdkYS0xMTMyLTRlOTEtYTM0My1hMjk2MjY5ZWFiOGF9JywgIyAyLjUuMmMxCi0gICAgJzIuNS4yMTUwJzonezZiOTc2YWRmLThhZTgtNDM0ZS1iMjgyLWEwNmM3ZjYyNGQyZn0nLCAjIDIuNS4yCi0gICAgJzIuNi4xMDEnOiAnezBiYTgyZTFiLTUyZmQtNGUwMy04NjEwLWE2Yzc2MjM4ZThhOH0nLCAjIDIuNmExCi0gICAgJzIuNi4xMDInOiAnezNiMjdlMTZjLTU2ZGItNDU3MC1hMmQzLWU5YTI2MTgwYzYwYn0nLCAjIDIuNmEyCi0gICAgJzIuNi4xMDMnOiAne2NkMDZhOWM1LWJkZTUtNGJkNy05ODc0LTQ4OTMzOTk3MTIyYX0nLCAjIDIuNmEzCi0gICAgJzIuNi4xMDQnOiAne2RjNmVkNjM0LTQ3NGEtNGE1MC1hNTQ3LThkZTRiNzQ5MWU1M30nLCAjIDIuNmE0Ci0gICAgJzIuNi4xMTEnOiAnezNmODIwNzlhLTViZWUtNGM0YS04YTQxLTgyOTIzODllMjRhZX0nLCAjIDIuNmIxCi0gICAgJzIuNi4xMTInOiAnezhhMGU1OTcwLWYzZTYtNDczNy05YTJiLWJjNWZmMGYxNWZiNX0nLCAjIDIuNmIyCi0gICAgJzIuNi4xMTMnOiAne2RmNGY1YzIxLTZmY2MtNDU0MC05NWRlLTg1ZmViYTYzNGU3Nn0nLCAjIDIuNmIzCi0gICAgJzIuNi4xMjEnOiAne2JiZDM0NDY0LWRkZWItNDAyOC05OWU1LWYxNmM0YThmYmRiM30nLCAjIDIuNmMxCi0gICAgJzIuNi4xMjInOiAnezhmNjQ3ODdlLWEwMjMtNGM2MC1iZmVlLTI1ZDNhM2Y1OTJjNn0nLCAjIDIuNmMyCi0gICAgJzIuNi4xNTAnOiAnezExMGViNWM0LWU5OTUtNGNmYi1hYjgwLWE1ZjMxNWJlYTllOH0nLCAjIDIuNi4wCi0gICAgJzIuNi4xMTUwJzonezljYzg5MTcwLTAwMGItNDU3ZC05MWYxLTUzNjkxZjg1YjIyM30nLCAjIDIuNi4xCi0gICAgJzIuNi4yMTIxJzone2FkYWM0MTJiLWIyMDktNGMxNS1iNmFiLWRjYTFiNmU0NzE0NH0nLCAjIDIuNi4yYzEKLSAgICAnMi42LjIxNTAnOid7MjRhYWI0MjAtNGUzMC00NDk2LTk3MzktM2UyMTZmM2RlNmFlfScsICMgMi42LjIKLSAgICAnMi42LjMxMjEnOid7YTczZTAyNTQtZGNkYS00ZmU0LWJmMzctYzdlMWM0ZjRlYmI2fScsICMgMi42LjNjMQotICAgICcyLjYuMzE1MCc6J3szZDlhYzA5NS1lMTE1LTRlOTQtYmRlZi03ZjdlZGYxNzY5N2R9JywgIyAyLjYuMwotICAgICcyLjYuNDEyMSc6J3s3MjdkZTYwNS0wMzU5LTQ2MDYtYTk0Yi1jMjAzMzY1MjM3OWJ9JywgIyAyLjYuNGMxCi0gICAgJzIuNi40MTIyJzonezRmNzYwM2M2LTYzNTItNDI5OS1hMzk4LTE1MGEzMWIxOWFjY30nLCAjIDIuNi40YzIKLSAgICAnMi42LjQxNTAnOid7ZTczOTRhMGYtM2Y4MC00NWIxLTg3ZmMtYWJjZDUxODkzMjQ2fScsICMgMi42LjQKLSAgICAnMi42LjUxMjEnOid7ZTBlMjczZDctNzU5OC00NzAxLTgzMjUtYzkwYzA2OWZkNWZmfScsICMgMi42LjVjMQotICAgICcyLjYuNTEyMic6J3tmYTIyN2I3Ni0wNjcxLTRkYzYtYjgyNi1jMmZmMmE3MGRmZDV9JywgIyAyLjYuNWMyCi0gICAgJzIuNi41MTUwJzonezQ3MjNmMTk5LWZhNjQtNDIzMy04ZTZlLTlmY2NjOTVhMThlZX0nLCAjIDIuNi41Ci0gICAgJzIuNy4xMDEnOiAne2VjYTFiYmVmLTQzMmMtNDlhZS1hNjY3LWMyMTNjYzdiYmYyMn0nLCAjIDIuN2ExCi0gICAgJzIuNy4xMDInOiAnezIxY2UxNmVkLTczYzQtNDYwZC05YjExLTUyMmY0MTdiMjA5MH0nLCAjIDIuN2EyCi0gICAgJzIuNy4xMDMnOiAnezZlN2RiZDU1LWJhNGEtNDhhYy1hNjg4LTZjNzVkYjRkNzUwMH0nLCAjIDIuN2EzCi0gICAgJzIuNy4xMDQnOiAne2VlNzc0YmEzLTc0YTUtNDhkOS1iNDI1LWIzNWEyODcyNjBjOH0nLCAjIDIuN2E0Ci0gICAgJzIuNy4xMTEnOiAnezljZmQ5ZWM3LWE5YzctNDk4MC1hMWM2LTA1NGZjNjQ5M2ViM30nLCAjIDIuN2IxCi0gICAgJzIuNy4xMTInOiAnezlhNzJmYWY2LWMzMDQtNDE2NS04NTk1LTkyOTFmZjMwY2FjNn0nLCAjIDIuN2IyCi0gICAgJzIuNy4xMjEnOiAne2Y1MzBjOTRhLWRkNTMtNGRlOS05NDhlLWI2MzJiOWNiNDhkMn0nLCAjIDIuN2MxCi0gICAgJzIuNy4xMjInOiAne2Y4MDkwNWQyLWRkOGQtNGI4ZS04YTQwLWMyM2M5M2RjYTA3ZH0nLCAjIDIuN2MyCi0gICAgJzIuNy4xNTAnOiAnezIwYzMxNDM1LTJhMGEtNDU4MC1iZThiLWFjMDZmYzI0M2NhNH0nLCAjIDIuNy4wCi0gICAgJzMuMC4xMDEnOiAnezg1NTQyNjNhLTMyNDItNDg1Ny05MzU5LWFhODdiYzJjNThjMn0nLCAjIDMuMGExCi0gICAgJzMuMC4xMDInOiAnezY5MmQ2ZTJjLWYwYWMtNDBiOC1hMTMzLTcxOTFhZWViNjdmOX0nLCAjIDMuMGEyCi0gICAgJzMuMC4xMDMnOiAnezQ5Y2IyOTk1LTc1MWEtNDc1My1iZTdhLWQwYjFiYjU4NWUwNn0nLCAjIDMuMGEzCi0gICAgJzMuMC4xMDQnOiAnezg3Y2IwMTllLTE5ZmQtNDIzOC1iMWM3LTg1NzUxNDM3ZDY0Nn0nLCAjIDMuMGE0Ci0gICAgJzMuMC4xMDUnOiAne2NmMjY1OWFmLTE5ZWMtNDNkMi04YzM1LTBmNmEwOTQzOWQ0Mn0nLCAjIDMuMGE1Ci0gICAgJzMuMC4xMTEnOiAnezM2YzI2ZjU1LTgzN2QtNDVjZi04NDhjLTVmNWMwZmI0N2EyOH0nLCAjIDMuMGIxCi0gICAgJzMuMC4xMTInOiAnezA1NmEwZmJjLWM4ZmUtNGM2MS1hYWRlLWM0NDExYjcwYzk5OH0nLCAjIDMuMGIyCi0gICAgJzMuMC4xMTMnOiAnezJiMmU4OWE5LTgzYWYtNDNmOS1iN2Q1LTk2ZTgwYzVhM2YyNn0nLCAjIDMuMGIzCi0gICAgJzMuMC4xMTQnOiAne2U5NWMzMWFmLTY5YmUtNGRkNy05NmU2LWU1ZmM4NWU2NjBlNn0nLCAjIDMuMGI0Ci0gICAgJzMuMC4xMjEnOiAne2QwOTc5YzVlLWNkM2MtNDJlYy1iZTRjLWUyOTRkYTc5MzU3M30nLCAjIDMuMGMxCi0gICAgJzMuMC4xMjInOiAne2Y3MDdiOGU5LWEyNTctNDA0NS04MThlLTQ5MjNmYzIwZmJiNn0nLCAjIDMuMGMyCi0gICAgJzMuMC4xMjMnOiAnezVlNzIwOGYxLTg2NDMtNGVhMi1hYjVlLTQ2NDQ4ODcxMTJlM30nLCAjIDMuMGMzCi0gICAgJzMuMC4xNTAnOiAne2UwZTU2ZTIxLTU1ZGUtNGY3Ny1hMTA5LTFiYWE3MjM0ODc0M30nLCAjIDMuMC4wCi0gICAgJzMuMC4xMTIxJzone2QzNWIxZWE1LTNkNzAtNDg3Mi1iZjdlLWNkMDY2YTc3YTljOX0nLCAjIDMuMC4xYzEKLSAgICAnMy4wLjExNTAnOid7ZGUyZjJkOWMtNTNlMi00MGVlLTgyMDktNzRkYTYzY2IwNjBlfScsICMgMy4wLjEKLSAgICAnMy4wLjIxMjEnOid7Y2VmNzllN2YtOTgwOS00OWUyLWFmZDItZTI0MTQ4ZDdjODU1fScsICMgMy4wLjJjMQotICAgICczLjAuMjE1MCc6J3swY2YzYjk1YS04MzgyLTQ2MDctOTc3OS1jMzY0MDdmZjM2MmN9JywgIyAzLjAuMgotICAgICczLjEuMTAxJzogJ3tjNDIzZWFkYS1jNDk4LTRkNTEtOWViNC1iZmVhZTY0N2UwYTB9JywgIyAzLjFhMQotICAgICczLjEuMTAyJzogJ3tmNmUxOTliZi1kYzY0LTQyZjMtODdkNC0xNTI1OTkxYTAxM2V9JywgIyAzLjFhMgotICAgICczLjEuMTExJzogJ3tjM2M4Mjg5My02OWIyLTQ2NzYtODU1NC0xYjZlZTZjMTkxZTl9JywgIyAzLjFiMQotICAgICczLjEuMTIxJzogJ3tkYTJiNTE3MC0xMmYzLTRkOTktOGExZi01NDkyNmNjYTdhY2R9JywgIyAzLjFjMQotICAgICczLjEuMTIyJzogJ3tiY2ViNTEzMy1lMmVlLTQxMDktOTUxZi1hYzdlOTQxYTE2OTJ9JywgIyAzLjFjMgotICAgICczLjEuMTUwJzogJ3szYWQ2MWVlNS04MWQyLTRkN2UtYWRlZi1kYTFkZDM3Mjc3ZDF9JywgIyAzLjEuMAotICAgICczLjEuMTEyMSc6J3s1NzgyZjk1Ny02ZDQ5LTQxZDQtYmFkMC02Njg3MTVkZmQ2Mzh9JywgIyAzLjEuMWMxCi0gICAgJzMuMS4xMTUwJzonezdmZjkwNDYwLTg5YjctNDM1Yi1iNTgzLWIzN2IyODE1Y2NjN30nLCAjIDMuMS4xCi0gICAgJzMuMS4yMTIxJzone2VjNDU2MjRhLTM3OGMtNDNiZS05MWYzLTNmN2E1OWIwZDkwY30nLCAjIDMuMS4yYzEKLSAgICAnMy4xLjIxNTAnOid7ZDQwYWYwMTYtNTA2Yy00M2ZiLWE3MzgtYmQ1NGZhOGMxZTg1fScsICMgMy4xLjIKLSAgICAnMy4yLjEwMScgOid7YjQxMWYxNjgtN2EzNi00ZmZmLTkwMmMtYTU1NGQxYzc4YTRmfScsICMgMy4yYTEKLSAgICAnMy4yLjEwMicgOid7NzlmZjczYjctODM1OS00MTBmLWI5YzUtMTUyZDIwMjZmOGM4fScsICMgMy4yYTIKLSAgICAnMy4yLjEwMycgOid7ZTc2MzVjNjUtYzIyMS00YjliLWI3MGEtNTYxMWI4MzY5ZDc3fScsICMgMy4yYTMKLSAgICAnMy4yLjEwNCcgOid7NzQ4Y2QxMzktNzViOC00Y2E4LTk4YTctNTgyNjIyOTgxODFlfScsICMgMy4yYTQKLSAgICAnMy4yLjExMScgOid7MjBiZmMxNmYtYzdjZC00ZmMwLThmOTYtOTkxNDYxNGEzYzUwfScsICMgMy4yYjEKLSAgICAnMy4yLjExMicgOid7MGUzNTBjOTgtOGQ3My00OTkzLWI2ODYtY2ZlODcxNjAwNDZlfScsICMgMy4yYjIKLSAgICAnMy4yLjEyMScgOid7MjA5NDk2OGQtNzU4My00N2Y2LWE3ZmQtMjIzMDQ1MzJlMDlmfScsICMgMy4ycmMxCi0gICAgJzMuMi4xMjInIDonezRmM2VkZmE2LWNmNzAtNDY5YS04MjVmLWUxMjA2YWE3ZjQxMn0nLCAjIDMuMnJjMgotICAgICczLjIuMTIzJyA6J3s5MGM2NzNkNy04Y2ZkLTQ5NjktOTgxNi1mN2Q3MGJhZDg3ZjN9JywgIyAzLjJyYzMKLSAgICAnMy4yLjE1MCcgOid7YjIwNDJkNWUtOTg2ZC00NGVjLWFlZTMtYWZlNDEwOGNjYzkzfScsICMgMy4yLjAKLSAgICAnMy4yLjExMjEnOid7NGY5MGRlNGEtODNkZC00NDQzLWI2MjUtY2ExMzBmZjM2MWRkfScsICMgMy4yLjFyYzEKLSAgICAnMy4yLjExMjInOid7ZGM1ZWIwNGQtZmY4YS00YmVkLThmOTYtMjM5NDJmZDU5ZTVmfScsICMgMy4yLjFyYzIKLSAgICAnMy4yLjExNTAnOid7MzRiMjUzMGMtNjM0OS00MjkyLTlkYzMtNjBiZGE0YWVkOTNjfScsICMgMy4yLjEKLSAgICAnMy4yLjIxMjEnOid7REZCMjlBNTMtQUNDNC00NGU2LTg1QTYtRDBEQTI2RkU4RTRFfScsICMgMy4yLjJyYzEKLSAgICAnMy4yLjIxNTAnOid7NENERTMxNjgtRDA2MC00YjdjLUJDNzQtNEQ4RjlCQjAxQUZEfScsICMgMy4yLjIKLSAgICAnMy4yLjMxMjEnOid7QjhFOENGRjctRTRDNi00YTdjLTlGMDYtQkIzQThCNzVEREE4fScsICMgMy4yLjNyYzEKLSAgICAnMy4yLjMxMjInOid7RThEQ0QzRTAtMTJCNi00ZmI3LTlEQjUtNTQzQzJFNjczNzJFfScsICMgMy4yLjNyYzIKLSAgICAnMy4yLjMxNTAnOid7Nzg5Qzk2NDQtOUY4Mi00NGQzLUI0Q0EtQUMzMUY0NkY1ODgyfScsICMgMy4yLjMKLQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvcGFyc2VyL3Rlc3RfdW5wYXJzZS5weSBiL1Rvb2xzL3BhcnNlci90ZXN0X3VucGFyc2UucHkKaW5kZXggMmFjMWVhNi4uYmU4NDQwMCAxMDA2NDQKLS0tIGEvVG9vbHMvcGFyc2VyL3Rlc3RfdW5wYXJzZS5weQorKysgYi9Ub29scy9wYXJzZXIvdGVzdF91bnBhcnNlLnB5CkBAIC0yLDkgKzIsMTAgQEAKIGltcG9ydCB0ZXN0LnN1cHBvcnQKIGltcG9ydCBpbwogaW1wb3J0IG9zCitpbXBvcnQgcmFuZG9tCiBpbXBvcnQgdG9rZW5pemUKLWltcG9ydCBhc3QKIGltcG9ydCB1bnBhcnNlCitpbXBvcnQgYXN0CiAKIGRlZiByZWFkX3B5ZmlsZShmaWxlbmFtZSk6CiAgICAgIiIiUmVhZCBhbmQgcmV0dXJuIHRoZSBjb250ZW50cyBvZiBhIFB5dGhvbiBzb3VyY2UgZmlsZSAoYXMgYQpAQCAtOTMsNiArOTQsMjEgQEAKICAgICBzdWl0ZTUKICIiIgogCit3aXRoX3NpbXBsZSA9ICIiIlwKK3dpdGggZigpOgorICAgIHN1aXRlMQorIiIiCisKK3dpdGhfYXMgPSAiIiJcCit3aXRoIGYoKSBhcyB4OgorICAgIHN1aXRlMQorIiIiCisKK3dpdGhfdHdvX2l0ZW1zID0gIiIiXAord2l0aCBmKCkgYXMgeCwgZygpIGFzIHk6CisgICAgc3VpdGUxCisiIiIKKwogY2xhc3MgQVNUVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBhc3NlcnRBU1RFcXVhbChzZWxmLCBhc3QxLCBhc3QyKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhc3QuZHVtcChhc3QxKSwgYXN0LmR1bXAoYXN0MikpCkBAIC0yMTUsNiArMjMxLDE1IEBACiAgICAgICAgIHNlbGYuY2hlY2tfcm91bmR0cmlwKCJhLCAqYlswXSwgYyA9IHNlcSIpCiAgICAgICAgIHNlbGYuY2hlY2tfcm91bmR0cmlwKCJhLCAqKGIsIGMpID0gc2VxIikKIAorICAgIGRlZiB0ZXN0X3dpdGhfc2ltcGxlKHNlbGYpOgorICAgICAgICBzZWxmLmNoZWNrX3JvdW5kdHJpcCh3aXRoX3NpbXBsZSkKKworICAgIGRlZiB0ZXN0X3dpdGhfYXMoc2VsZik6CisgICAgICAgIHNlbGYuY2hlY2tfcm91bmR0cmlwKHdpdGhfYXMpCisKKyAgICBkZWYgdGVzdF93aXRoX3R3b19pdGVtcyhzZWxmKToKKyAgICAgICAgc2VsZi5jaGVja19yb3VuZHRyaXAod2l0aF90d29faXRlbXMpCisKIAogY2xhc3MgRGlyZWN0b3J5VGVzdENhc2UoQVNUVGVzdENhc2UpOgogICAgICIiIlRlc3Qgcm91bmR0cmlwIGJlaGF2aW91ciBvbiBhbGwgZmlsZXMgaW4gTGliIGFuZCBMaWIvdGVzdC4iIiIKQEAgLTIzMyw2ICsyNTgsMTAgQEAKICAgICAgICAgICAgICAgICBpZiBuLmVuZHN3aXRoKCcucHknKSBhbmQgbm90IG4uc3RhcnRzd2l0aCgnYmFkJyk6CiAgICAgICAgICAgICAgICAgICAgIG5hbWVzLmFwcGVuZChvcy5wYXRoLmpvaW4odGVzdF9kaXIsIG4pKQogCisgICAgICAgICMgVGVzdCBsaW1pdGVkIHN1YnNldCBvZiBmaWxlcyB1bmxlc3MgdGhlICdjcHUnIHJlc291cmNlIGlzIHNwZWNpZmllZC4KKyAgICAgICAgaWYgbm90IHRlc3Quc3VwcG9ydC5pc19yZXNvdXJjZV9lbmFibGVkKCJjcHUiKToKKyAgICAgICAgICAgIG5hbWVzID0gcmFuZG9tLnNhbXBsZShuYW1lcywgMTApCisKICAgICAgICAgZm9yIGZpbGVuYW1lIGluIG5hbWVzOgogICAgICAgICAgICAgaWYgdGVzdC5zdXBwb3J0LnZlcmJvc2U6CiAgICAgICAgICAgICAgICAgcHJpbnQoJ1Rlc3RpbmcgJXMnICUgZmlsZW5hbWUpCmRpZmYgLS1naXQgYS9Ub29scy9wYXJzZXIvdW5wYXJzZS5weSBiL1Rvb2xzL3BhcnNlci91bnBhcnNlLnB5CmluZGV4IGQ5ZmNhOTcuLmI1NWUyYzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL3BhcnNlci91bnBhcnNlLnB5CisrKyBiL1Rvb2xzL3BhcnNlci91bnBhcnNlLnB5CkBAIC0xLDYgKzEsNSBAQAogIlVzYWdlOiB1bnBhcnNlLnB5IDxwYXRoIHRvIHNvdXJjZSBmaWxlPiIKIGltcG9ydCBzeXMKLWltcG9ydCBtYXRoCiBpbXBvcnQgYXN0CiBpbXBvcnQgdG9rZW5pemUKIGltcG9ydCBpbwpAQCAtMTQ3LDYgKzE0NiwxNCBAQAogICAgICAgICAgICAgc2VsZi5kaXNwYXRjaCh0LnZhbHVlKQogICAgICAgICBzZWxmLndyaXRlKCIpIikKIAorICAgIGRlZiBfWWllbGRGcm9tKHNlbGYsIHQpOgorICAgICAgICBzZWxmLndyaXRlKCIoIikKKyAgICAgICAgc2VsZi53cml0ZSgieWllbGQgZnJvbSIpCisgICAgICAgIGlmIHQudmFsdWU6CisgICAgICAgICAgICBzZWxmLndyaXRlKCIgIikKKyAgICAgICAgICAgIHNlbGYuZGlzcGF0Y2godC52YWx1ZSkKKyAgICAgICAgc2VsZi53cml0ZSgiKSIpCisKICAgICBkZWYgX1JhaXNlKHNlbGYsIHQpOgogICAgICAgICBzZWxmLmZpbGwoInJhaXNlIikKICAgICAgICAgaWYgbm90IHQuZXhjOgpAQCAtMTU4LDEyICsxNjUsMTEgQEAKICAgICAgICAgICAgIHNlbGYud3JpdGUoIiBmcm9tICIpCiAgICAgICAgICAgICBzZWxmLmRpc3BhdGNoKHQuY2F1c2UpCiAKLSAgICBkZWYgX1RyeUV4Y2VwdChzZWxmLCB0KToKKyAgICBkZWYgX1RyeShzZWxmLCB0KToKICAgICAgICAgc2VsZi5maWxsKCJ0cnkiKQogICAgICAgICBzZWxmLmVudGVyKCkKICAgICAgICAgc2VsZi5kaXNwYXRjaCh0LmJvZHkpCiAgICAgICAgIHNlbGYubGVhdmUoKQotCiAgICAgICAgIGZvciBleCBpbiB0LmhhbmRsZXJzOgogICAgICAgICAgICAgc2VsZi5kaXNwYXRjaChleCkKICAgICAgICAgaWYgdC5vcmVsc2U6CkBAIC0xNzEsMjIgKzE3NywxMiBAQAogICAgICAgICAgICAgc2VsZi5lbnRlcigpCiAgICAgICAgICAgICBzZWxmLmRpc3BhdGNoKHQub3JlbHNlKQogICAgICAgICAgICAgc2VsZi5sZWF2ZSgpCi0KLSAgICBkZWYgX1RyeUZpbmFsbHkoc2VsZiwgdCk6Ci0gICAgICAgIGlmIGxlbih0LmJvZHkpID09IDEgYW5kIGlzaW5zdGFuY2UodC5ib2R5WzBdLCBhc3QuVHJ5RXhjZXB0KToKLSAgICAgICAgICAgICMgdHJ5LWV4Y2VwdC1maW5hbGx5Ci0gICAgICAgICAgICBzZWxmLmRpc3BhdGNoKHQuYm9keSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuZmlsbCgidHJ5IikKKyAgICAgICAgaWYgdC5maW5hbGJvZHk6CisgICAgICAgICAgICBzZWxmLmZpbGwoImZpbmFsbHkiKQogICAgICAgICAgICAgc2VsZi5lbnRlcigpCi0gICAgICAgICAgICBzZWxmLmRpc3BhdGNoKHQuYm9keSkKKyAgICAgICAgICAgIHNlbGYuZGlzcGF0Y2godC5maW5hbGJvZHkpCiAgICAgICAgICAgICBzZWxmLmxlYXZlKCkKIAotICAgICAgICBzZWxmLmZpbGwoImZpbmFsbHkiKQotICAgICAgICBzZWxmLmVudGVyKCkKLSAgICAgICAgc2VsZi5kaXNwYXRjaCh0LmZpbmFsYm9keSkKLSAgICAgICAgc2VsZi5sZWF2ZSgpCi0KICAgICBkZWYgX0V4Y2VwdEhhbmRsZXIoc2VsZiwgdCk6CiAgICAgICAgIHNlbGYuZmlsbCgiZXhjZXB0IikKICAgICAgICAgaWYgdC50eXBlOgpAQCAtMjk2LDEwICsyOTIsNyBAQAogCiAgICAgZGVmIF9XaXRoKHNlbGYsIHQpOgogICAgICAgICBzZWxmLmZpbGwoIndpdGggIikKLSAgICAgICAgc2VsZi5kaXNwYXRjaCh0LmNvbnRleHRfZXhwcikKLSAgICAgICAgaWYgdC5vcHRpb25hbF92YXJzOgotICAgICAgICAgICAgc2VsZi53cml0ZSgiIGFzICIpCi0gICAgICAgICAgICBzZWxmLmRpc3BhdGNoKHQub3B0aW9uYWxfdmFycykKKyAgICAgICAgaW50ZXJsZWF2ZShsYW1iZGE6IHNlbGYud3JpdGUoIiwgIiksIHNlbGYuZGlzcGF0Y2gsIHQuaXRlbXMpCiAgICAgICAgIHNlbGYuZW50ZXIoKQogICAgICAgICBzZWxmLmRpc3BhdGNoKHQuYm9keSkKICAgICAgICAgc2VsZi5sZWF2ZSgpCkBAIC01NjQsNiArNTU3LDEyIEBACiAgICAgICAgIGlmIHQuYXNuYW1lOgogICAgICAgICAgICAgc2VsZi53cml0ZSgiIGFzICIrdC5hc25hbWUpCiAKKyAgICBkZWYgX3dpdGhpdGVtKHNlbGYsIHQpOgorICAgICAgICBzZWxmLmRpc3BhdGNoKHQuY29udGV4dF9leHByKQorICAgICAgICBpZiB0Lm9wdGlvbmFsX3ZhcnM6CisgICAgICAgICAgICBzZWxmLndyaXRlKCIgYXMgIikKKyAgICAgICAgICAgIHNlbGYuZGlzcGF0Y2godC5vcHRpb25hbF92YXJzKQorCiBkZWYgcm91bmR0cmlwKGZpbGVuYW1lLCBvdXRwdXQ9c3lzLnN0ZG91dCk6CiAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAicmIiKSBhcyBweWZpbGU6CiAgICAgICAgIGVuY29kaW5nID0gdG9rZW5pemUuZGV0ZWN0X2VuY29kaW5nKHB5ZmlsZS5yZWFkbGluZSlbMF0KZGlmZiAtLWdpdCBhL1Rvb2xzL3B5YmVuY2gvcHliZW5jaC5weSBiL1Rvb2xzL3B5YmVuY2gvcHliZW5jaC5weQppbmRleCA4ZWFhZDYzLi45NDJmNTZkIDEwMDc1NQotLS0gYS9Ub29scy9weWJlbmNoL3B5YmVuY2gucHkKKysrIGIvVG9vbHMvcHliZW5jaC9weWJlbmNoLnB5CkBAIC0zNSw3ICszNSw5IEBACiBXSVRIIFRIRSBVU0UgT1IgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRSAhCiAiIiIKIAotaW1wb3J0IHN5cywgdGltZSwgb3BlcmF0b3IsIHBsYXRmb3JtCitpbXBvcnQgc3lzCitpbXBvcnQgdGltZQoraW1wb3J0IHBsYXRmb3JtCiBmcm9tIENvbW1hbmRMaW5lIGltcG9ydCAqCiAKIHRyeToKQEAgLTczLDExICs3NSwxNSBAQAogCiAjIFRpbWVyIHR5cGVzCiBUSU1FUl9USU1FX1RJTUUgPSAndGltZS50aW1lJworVElNRVJfVElNRV9QUk9DRVNTX1RJTUUgPSAndGltZS5wcm9jZXNzX3RpbWUnCitUSU1FUl9USU1FX1BFUkZfQ09VTlRFUiA9ICd0aW1lLnBlcmZfY291bnRlcicKIFRJTUVSX1RJTUVfQ0xPQ0sgPSAndGltZS5jbG9jaycKIFRJTUVSX1NZU1RJTUVTX1BST0NFU1NUSU1FID0gJ3N5c3RpbWVzLnByb2Nlc3N0aW1lJwogCiAjIENob29zZSBwbGF0Zm9ybSBkZWZhdWx0IHRpbWVyCi1pZiBzeXMucGxhdGZvcm1bOjNdID09ICd3aW4nOgoraWYgaGFzYXR0cih0aW1lLCAncGVyZl9jb3VudGVyJyk6CisgICAgVElNRVJfUExBVEZPUk1fREVGQVVMVCA9IFRJTUVSX1RJTUVfUEVSRl9DT1VOVEVSCitlbGlmIHN5cy5wbGF0Zm9ybVs6M10gPT0gJ3dpbic6CiAgICAgIyBPbiBXaW5YUCB0aGlzIGhhcyAyLjVtcyByZXNvbHV0aW9uCiAgICAgVElNRVJfUExBVEZPUk1fREVGQVVMVCA9IFRJTUVSX1RJTUVfQ0xPQ0sKIGVsc2U6CkBAIC05Myw2ICs5OSwxMCBAQAogCiAgICAgaWYgdGltZXJ0eXBlID09IFRJTUVSX1RJTUVfVElNRToKICAgICAgICAgcmV0dXJuIHRpbWUudGltZQorICAgIGVsaWYgdGltZXJ0eXBlID09IFRJTUVSX1RJTUVfUFJPQ0VTU19USU1FOgorICAgICAgICByZXR1cm4gdGltZS5wcm9jZXNzX3RpbWUKKyAgICBlbGlmIHRpbWVydHlwZSA9PSBUSU1FUl9USU1FX1BFUkZfQ09VTlRFUjoKKyAgICAgICAgcmV0dXJuIHRpbWUucGVyZl9jb3VudGVyCiAgICAgZWxpZiB0aW1lcnR5cGUgPT0gVElNRVJfVElNRV9DTE9DSzoKICAgICAgICAgcmV0dXJuIHRpbWUuY2xvY2sKICAgICBlbGlmIHRpbWVydHlwZSA9PSBUSU1FUl9TWVNUSU1FU19QUk9DRVNTVElNRToKQEAgLTEwNyw2ICsxMTcsNyBAQAogICAgICAgICBwcmludCgnR2V0dGluZyBtYWNoaW5lIGRldGFpbHMuLi4nKQogICAgIGJ1aWxkbm8sIGJ1aWxkZGF0ZSA9IHBsYXRmb3JtLnB5dGhvbl9idWlsZCgpCiAgICAgcHl0aG9uID0gcGxhdGZvcm0ucHl0aG9uX3ZlcnNpb24oKQorICAgICMgWFhYIHRoaXMgaXMgbm93IGFsd2F5cyBVQ1M0LCBtYXliZSByZXBsYWNlIGl0IHdpdGggJ1BFUDM5MycgaW4gMy4zKz8KICAgICBpZiBzeXMubWF4dW5pY29kZSA9PSA2NTUzNToKICAgICAgICAgIyBVQ1MyIGJ1aWxkIChzdGFuZGFyZCkKICAgICAgICAgdW5pdHlwZSA9ICdVQ1MyJwpAQCAtODY1LDcgKzg3NiwxOCBAQAogICAgICAgICAgICAgcHJpbnQoJyogdXNpbmcgdGltZXI6IHN5c3RpbWVzLnByb2Nlc3N0aW1lICglcyknICUgXAogICAgICAgICAgICAgICAgICAgc3lzdGltZXMuU1lTVElNRVNfSU1QTEVNRU5UQVRJT04pCiAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIENoZWNrIHRoYXQgdGhlIGNsb2NrIGZ1bmN0aW9uIGRvZXMgZXhpc3QKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBnZXRfdGltZXIodGltZXIpCisgICAgICAgICAgICBleGNlcHQgVHlwZUVycm9yOgorICAgICAgICAgICAgICAgIHByaW50KCIqIEVycm9yOiBVbmtub3duIHRpbWVyOiAlcyIgJSB0aW1lcikKKyAgICAgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICAgICAgcHJpbnQoJyogdXNpbmcgdGltZXI6ICVzJyAlIHRpbWVyKQorICAgICAgICAgICAgaWYgaGFzYXR0cih0aW1lLCAnZ2V0X2Nsb2NrX2luZm8nKToKKyAgICAgICAgICAgICAgICBpbmZvID0gdGltZS5nZXRfY2xvY2tfaW5mbyh0aW1lcls1Ol0pCisgICAgICAgICAgICAgICAgcHJpbnQoJyogdGltZXI6IHJlc29sdXRpb249JXMsIGltcGxlbWVudGF0aW9uPSVzJworICAgICAgICAgICAgICAgICAgICAgICUgKGluZm8ucmVzb2x1dGlvbiwgaW5mby5pbXBsZW1lbnRhdGlvbikpCiAKICAgICAgICAgcHJpbnQoKQogCkBAIC05NDMsOCArOTY1LDYgQEAKICAgICAgICAgICAgICAgICBwaWNrbGUuZHVtcChiZW5jaCxmKQogICAgICAgICAgICAgICAgIGYuY2xvc2UoKQogICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgcmVhc29uOgotICAgICAgICAgICAgICAgIHByaW50KCcqIEVycm9yIG9wZW5pbmcvd3JpdGluZyByZXBvcnRmaWxlJykKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yIGFzIHJlYXNvbjoKICAgICAgICAgICAgICAgICBwcmludCgnKiBFcnJvciBvcGVuaW5nL3dyaXRpbmcgcmVwb3J0ZmlsZSAlczogJXMnICUgKAogICAgICAgICAgICAgICAgICAgICByZXBvcnRmaWxlLAogICAgICAgICAgICAgICAgICAgICByZWFzb24pKQpkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy9SRUFETUUgYi9Ub29scy9zY3JpcHRzL1JFQURNRQppbmRleCA4YzAyNTI5Li5kNjVkMWZkIDEwMDY0NAotLS0gYS9Ub29scy9zY3JpcHRzL1JFQURNRQorKysgYi9Ub29scy9zY3JpcHRzL1JFQURNRQpAQCAtMTUsNyArMTUsNyBAQAogZGlmZi5weSAgICAgICAgICAgICAgICAgUHJpbnQgZmlsZSBkaWZmcyBpbiBjb250ZXh0LCB1bmlmaWVkLCBvciBuZGlmZiBmb3JtYXRzCiBkdXRyZWUucHkgICAgICAgICAgICAgICBGb3JtYXQgZHUoMSkgb3V0cHV0IGFzIGEgdHJlZSBzb3J0ZWQgYnkgc2l6ZQogZXB0YWdzLnB5ICAgICAgICAgICAgICAgQ3JlYXRlIEVtYWNzIFRBR1MgZmlsZSBmb3IgUHl0aG9uIG1vZHVsZXMKLWZpbmRfcmVjdXJzaW9ubGltaXQucHkgIEZpbmQgdGhlIG1heGltdW0gcmVjdXJzaW9uIGxpbWl0IG9uIHRoaXMgbWFjaGluZSAKK2ZpbmRfcmVjdXJzaW9ubGltaXQucHkgIEZpbmQgdGhlIG1heGltdW0gcmVjdXJzaW9uIGxpbWl0IG9uIHRoaXMgbWFjaGluZQogZmluZGRpdi5weSAgICAgICAgICAgICAgQSBncmVwLWxpa2UgdG9vbCB0aGF0IGxvb2tzIGZvciBkaXZpc2lvbiBvcGVyYXRvcnMKIGZpbmRsaW5rc3RvLnB5ICAgICAgICAgIFJlY3Vyc2l2ZWx5IGZpbmQgc3ltYm9saWMgbGlua3MgdG8gYSBnaXZlbiBwYXRoIHByZWZpeAogZmluZG5vY29kaW5nLnB5ICAgICAgICAgRmluZCBzb3VyY2UgZmlsZXMgd2hpY2ggbmVlZCBhbiBlbmNvZGluZyBkZWNsYXJhdGlvbgpAQCAtMjgsNiArMjgsNyBAQAogZ29vZ2xlLnB5ICAgICAgICAgICAgICAgT3BlbiBhIHdlYmJyb3dzZXIgd2l0aCBHb29nbGUKIGdwcm9mMmh0bWwucHkgICAgICAgICAgIFRyYW5zZm9ybSBncHJvZigxKSBvdXRwdXQgaW50byB1c2VmdWwgSFRNTAogaDJweS5weSAgICAgICAgICAgICAgICAgVHJhbnNsYXRlICNkZWZpbmUncyBpbnRvIFB5dGhvbiBhc3NpZ25tZW50cworaGlnaGxpZ2h0LnB5ICAgICAgICAgICAgUHl0aG9uIHN5bnRheCBoaWdobGlnaHRpbmcgd2l0aCBIVE1MIG91dHB1dAogaWRsZTMgICAgICAgICAgICAgICAgICAgTWFpbiBwcm9ncmFtIHRvIHN0YXJ0IElETEUKIGlmZGVmLnB5ICAgICAgICAgICAgICAgIFJlbW92ZSAjaWYobilkZWYgZ3JvdXBzIGZyb20gQyBzb3VyY2VzCiBsZmNyLnB5ICAgICAgICAgICAgICAgICBDaGFuZ2UgTEYgbGluZSBlbmRpbmdzIHRvIENSTEYgKFVuaXggdG8gV2luZG93cykKQEAgLTUzLDYgKzU0LDcgQEAKIHJlaW5kZW50LnB5ICAgICAgICAgICAgIENoYW5nZSAucHkgZmlsZXMgdG8gdXNlIDQtc3BhY2UgaW5kZW50cwogcmVpbmRlbnQtcnN0LnB5ICAgICAgICAgRml4LXVwIHJlU3RydWN0dXJlZFRleHQgZmlsZSB3aGl0ZXNwYWNlCiByZ3JlcC5weSAgICAgICAgICAgICAgICBSZXZlcnNlIGdyZXAgdGhyb3VnaCBhIGZpbGUgKHVzZWZ1bCBmb3IgYmlnIGxvZ2ZpbGVzKQorcnVuX3Rlc3RzLnB5ICAgICAgICAgICAgUnVuIHRoZSB0ZXN0IHN1aXRlIHdpdGggbW9yZSBzZW5zaWJsZSBkZWZhdWx0IG9wdGlvbnMKIHNlcnZlLnB5ICAgICAgICAgICAgICAgIFNtYWxsIHdzZ2lyZWYtYmFzZWQgd2ViIHNlcnZlciwgdXNlZCBpbiBtYWtlIHNlcnZlIGluIERvYwogc3VmZi5weSAgICAgICAgICAgICAgICAgU29ydCBhIGxpc3Qgb2YgZmlsZXMgYnkgc3VmZml4CiBzdm5lb2wucHkgICAgICAgICAgICAgICBTZXQgc3ZuOmVvbC1zdHlsZSBvbiBhbGwgZmlsZXMgaW4gZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL2RpZmYucHkgYi9Ub29scy9zY3JpcHRzL2RpZmYucHkKaW5kZXggOWVmYjA3OC4uZjliMTRiZiAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy9kaWZmLnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvZGlmZi5weQpAQCAtOSw2ICs5LDEyIEBACiAiIiIKIAogaW1wb3J0IHN5cywgb3MsIHRpbWUsIGRpZmZsaWIsIG9wdHBhcnNlCitmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZXpvbmUKKworZGVmIGZpbGVfbXRpbWUocGF0aCk6CisgICAgdCA9IGRhdGV0aW1lLmZyb210aW1lc3RhbXAob3Muc3RhdChwYXRoKS5zdF9tdGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lem9uZS51dGMpCisgICAgcmV0dXJuIHQuYXN0aW1lem9uZSgpLmlzb2Zvcm1hdCgpCiAKIGRlZiBtYWluKCk6CiAKQEAgLTMwLDEwICszNiwxMiBAQAogICAgIG4gPSBvcHRpb25zLmxpbmVzCiAgICAgZnJvbWZpbGUsIHRvZmlsZSA9IGFyZ3MKIAotICAgIGZyb21kYXRlID0gdGltZS5jdGltZShvcy5zdGF0KGZyb21maWxlKS5zdF9tdGltZSkKLSAgICB0b2RhdGUgPSB0aW1lLmN0aW1lKG9zLnN0YXQodG9maWxlKS5zdF9tdGltZSkKLSAgICBmcm9tbGluZXMgPSBvcGVuKGZyb21maWxlLCAnVScpLnJlYWRsaW5lcygpCi0gICAgdG9saW5lcyA9IG9wZW4odG9maWxlLCAnVScpLnJlYWRsaW5lcygpCisgICAgZnJvbWRhdGUgPSBmaWxlX210aW1lKGZyb21maWxlKQorICAgIHRvZGF0ZSA9IGZpbGVfbXRpbWUodG9maWxlKQorICAgIHdpdGggb3Blbihmcm9tZmlsZSwgJ1UnKSBhcyBmZjoKKyAgICAgICAgZnJvbWxpbmVzID0gZmYucmVhZGxpbmVzKCkKKyAgICB3aXRoIG9wZW4odG9maWxlLCAnVScpIGFzIHRmOgorICAgICAgICB0b2xpbmVzID0gdGYucmVhZGxpbmVzKCkKIAogICAgIGlmIG9wdGlvbnMudToKICAgICAgICAgZGlmZiA9IGRpZmZsaWIudW5pZmllZF9kaWZmKGZyb21saW5lcywgdG9saW5lcywgZnJvbWZpbGUsIHRvZmlsZSwgZnJvbWRhdGUsIHRvZGF0ZSwgbj1uKQpkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy9maW5kbm9jb2RpbmcucHkgYi9Ub29scy9zY3JpcHRzL2ZpbmRub2NvZGluZy5weQppbmRleCBhNDk0YTQ4Li41YWExZmViIDEwMDc1NQotLS0gYS9Ub29scy9zY3JpcHRzL2ZpbmRub2NvZGluZy5weQorKysgYi9Ub29scy9zY3JpcHRzL2ZpbmRub2NvZGluZy5weQpAQCAtMiw3ICsyLDcgQEAKIAogIiIiTGlzdCBhbGwgdGhvc2UgUHl0aG9uIGZpbGVzIHRoYXQgcmVxdWlyZSBhIGNvZGluZyBkaXJlY3RpdmUKIAotVXNhZ2U6IG5vY29kaW5nLnB5IGRpcjEgW2RpcjIuLi5dCitVc2FnZTogZmluZG5vY29kaW5nLnB5IGRpcjEgW2RpcjIuLi5dCiAiIiIKIAogX19hdXRob3JfXyA9ICJPbGVnIEJyb3l0bWFubiwgR2VvcmcgQnJhbmRsIgpAQCAtNTAsNyArNTAsNyBAQAogCiBkZWYgbmVlZHNfZGVjbGFyYXRpb24oZnVsbHBhdGgpOgogICAgIHRyeToKLSAgICAgICAgaW5maWxlID0gb3BlbihmdWxscGF0aCwgJ3JVJykKKyAgICAgICAgaW5maWxlID0gb3BlbihmdWxscGF0aCkKICAgICBleGNlcHQgSU9FcnJvcjogIyBPb3BzLCB0aGUgZmlsZSB3YXMgcmVtb3ZlZCAtIGlnbm9yZSBpdAogICAgICAgICByZXR1cm4gTm9uZQogCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL2hpZ2hsaWdodC5weSBiL1Rvb2xzL3NjcmlwdHMvaGlnaGxpZ2h0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVmMDEwZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9zY3JpcHRzL2hpZ2hsaWdodC5weQpAQCAtMCwwICsxLDE4OCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworJycnQWRkIHN5bnRheCBoaWdobGlnaHRpbmcgdG8gUHl0aG9uIHNvdXJjZSBjb2RlJycnCisKK19fYWxsX18gPSBbJ2FuYWx5emVfcHl0aG9uJywgJ2Fuc2lfaGlnaGxpZ2h0JywgJ2RlZmF1bHRfYW5zaScsCisgICAgICAgICAgICdodG1sX2hpZ2hsaWdodCcsICdidWlsZF9odG1sX3BhZ2UnLCAnZGVmYXVsdF9jc3MnLCAnZGVmYXVsdF9odG1sJ10KKworX19hdXRob3JfXyA9ICdSYXltb25kIEhldHRpbmdlcicKKworaW1wb3J0IGtleXdvcmQsIHRva2VuaXplLCBjZ2ksIGZ1bmN0b29scworCitkZWYgaXNfYnVpbHRpbihzKToKKyAgICAnUmV0dXJuIFRydWUgaWYgcyBpcyB0aGUgbmFtZSBvZiBhIGJ1aWx0aW4nCisgICAgcmV0dXJuIHMgaW4gdmFycyhfX2J1aWx0aW5zX18pCisKK2RlZiBjb21iaW5lX3JhbmdlKGxpbmVzLCBzdGFydCwgZW5kKToKKyAgICAnSm9pbiBjb250ZW50IGZyb20gYSByYW5nZSBvZiBsaW5lcyBiZXR3ZWVuIHN0YXJ0IGFuZCBlbmQnCisgICAgKHNyb3csIHNjb2wpLCAoZXJvdywgZWNvbCkgPSBzdGFydCwgZW5kCisgICAgaWYgc3JvdyA9PSBlcm93OgorICAgICAgICByZXR1cm4gbGluZXNbc3Jvdy0xXVtzY29sOmVjb2xdLCBlbmQKKyAgICByb3dzID0gW2xpbmVzW3Nyb3ctMV1bc2NvbDpdXSArIGxpbmVzW3Nyb3c6IGVyb3ctMV0gKyBbbGluZXNbZXJvdy0xXVs6ZWNvbF1dCisgICAgcmV0dXJuICcnLmpvaW4ocm93cyksIGVuZAorCitkZWYgYW5hbHl6ZV9weXRob24oc291cmNlKToKKyAgICAnJydHZW5lcmF0ZSBhbmQgY2xhc3NpZnkgY2h1bmtzIG9mIFB5dGhvbiBmb3Igc3ludGF4IGhpZ2hsaWdodGluZy4KKyAgICAgICBZaWVsZHMgdHVwbGVzIGluIHRoZSBmb3JtOiAobGVhZGluX3RleHQsIGNhdGVnb3J5LCBjYXRlZ29yaXplZF90ZXh0KS4KKyAgICAgICBUaGUgZmluYWwgdHVwbGUgaGFzIGVtcHR5IHN0cmluZ3MgZm9yIHRoZSBjYXRlZ29yeSBhbmQgY2F0ZWdvcml6ZWQgdGV4dC4KKworICAgICcnJworICAgIGxpbmVzID0gc291cmNlLnNwbGl0bGluZXMoVHJ1ZSkKKyAgICBsaW5lcy5hcHBlbmQoJycpCisgICAgcmVhZGxpbmUgPSBmdW5jdG9vbHMucGFydGlhbChuZXh0LCBpdGVyKGxpbmVzKSwgJycpCisgICAga2luZCA9IHRva19zdHIgPSAnJworICAgIHRva190eXBlID0gdG9rZW5pemUuQ09NTUVOVAorICAgIHdyaXR0ZW4gPSAoMSwgMCkKKyAgICBmb3IgdG9rIGluIHRva2VuaXplLmdlbmVyYXRlX3Rva2VucyhyZWFkbGluZSk6CisgICAgICAgIHByZXZfdG9rX3R5cGUsIHByZXZfdG9rX3N0ciA9IHRva190eXBlLCB0b2tfc3RyCisgICAgICAgIHRva190eXBlLCB0b2tfc3RyLCAoc3Jvdywgc2NvbCksIChlcm93LCBlY29sKSwgbG9naWNhbF9saW5lbm8gPSB0b2sKKyAgICAgICAga2luZCA9ICcnCisgICAgICAgIGlmIHRva190eXBlID09IHRva2VuaXplLkNPTU1FTlQ6CisgICAgICAgICAgICBraW5kID0gJ2NvbW1lbnQnCisgICAgICAgIGVsaWYgdG9rX3R5cGUgPT0gdG9rZW5pemUuT1AgYW5kIHRva19zdHJbOjFdIG5vdCBpbiAne31bXSgpLC46Oyc6CisgICAgICAgICAgICBraW5kID0gJ29wZXJhdG9yJworICAgICAgICBlbGlmIHRva190eXBlID09IHRva2VuaXplLlNUUklORzoKKyAgICAgICAgICAgIGtpbmQgPSAnc3RyaW5nJworICAgICAgICAgICAgaWYgcHJldl90b2tfdHlwZSA9PSB0b2tlbml6ZS5JTkRFTlQgb3Igc2NvbD09MDoKKyAgICAgICAgICAgICAgICBraW5kID0gJ2RvY3N0cmluZycKKyAgICAgICAgZWxpZiB0b2tfdHlwZSA9PSB0b2tlbml6ZS5OQU1FOgorICAgICAgICAgICAgaWYgdG9rX3N0ciBpbiAoJ2RlZicsICdjbGFzcycsICdpbXBvcnQnLCAnZnJvbScpOgorICAgICAgICAgICAgICAgIGtpbmQgPSAnZGVmaW5pdGlvbicKKyAgICAgICAgICAgIGVsaWYgcHJldl90b2tfc3RyIGluICgnZGVmJywgJ2NsYXNzJyk6CisgICAgICAgICAgICAgICAga2luZCA9ICdkZWZuYW1lJworICAgICAgICAgICAgZWxpZiBrZXl3b3JkLmlza2V5d29yZCh0b2tfc3RyKToKKyAgICAgICAgICAgICAgICBraW5kID0gJ2tleXdvcmQnCisgICAgICAgICAgICBlbGlmIGlzX2J1aWx0aW4odG9rX3N0cikgYW5kIHByZXZfdG9rX3N0ciAhPSAnLic6CisgICAgICAgICAgICAgICAga2luZCA9ICdidWlsdGluJworICAgICAgICBpZiBraW5kOgorICAgICAgICAgICAgbGluZV91cHRvX3Rva2VuLCB3cml0dGVuID0gY29tYmluZV9yYW5nZShsaW5lcywgd3JpdHRlbiwgKHNyb3csIHNjb2wpKQorICAgICAgICAgICAgbGluZV90aHJ1X3Rva2VuLCB3cml0dGVuID0gY29tYmluZV9yYW5nZShsaW5lcywgd3JpdHRlbiwgKGVyb3csIGVjb2wpKQorICAgICAgICAgICAgeWllbGQgbGluZV91cHRvX3Rva2VuLCBraW5kLCBsaW5lX3RocnVfdG9rZW4KKyAgICBsaW5lX3VwdG9fdG9rZW4sIHdyaXR0ZW4gPSBjb21iaW5lX3JhbmdlKGxpbmVzLCB3cml0dGVuLCAoZXJvdywgZWNvbCkpCisgICAgeWllbGQgbGluZV91cHRvX3Rva2VuLCAnJywgJycKKworZGVmYXVsdF9hbnNpID0geworICAgICdjb21tZW50JzogKCdcMDMzWzA7MzFtJywgJ1wwMzNbMG0nKSwKKyAgICAnc3RyaW5nJzogKCdcMDMzWzA7MzJtJywgJ1wwMzNbMG0nKSwKKyAgICAnZG9jc3RyaW5nJzogKCdcMDMzWzA7MzJtJywgJ1wwMzNbMG0nKSwKKyAgICAna2V5d29yZCc6ICgnXDAzM1swOzMzbScsICdcMDMzWzBtJyksCisgICAgJ2J1aWx0aW4nOiAoJ1wwMzNbMDszNW0nLCAnXDAzM1swbScpLAorICAgICdkZWZpbml0aW9uJzogKCdcMDMzWzA7MzNtJywgJ1wwMzNbMG0nKSwKKyAgICAnZGVmbmFtZSc6ICgnXDAzM1swOzM0bScsICdcMDMzWzBtJyksCisgICAgJ29wZXJhdG9yJzogKCdcMDMzWzA7MzNtJywgJ1wwMzNbMG0nKSwKK30KKworZGVmIGFuc2lfaGlnaGxpZ2h0KGNsYXNzaWZpZWRfdGV4dCwgY29sb3JzPWRlZmF1bHRfYW5zaSk6CisgICAgJ0FkZCBzeW50YXggaGlnaGxpZ2h0aW5nIHRvIHNvdXJjZSBjb2RlIHVzaW5nIEFOU0kgZXNjYXBlIHNlcXVlbmNlcycKKyAgICAjIGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvQU5TSV9lc2NhcGVfY29kZQorICAgIHJlc3VsdCA9IFtdCisgICAgZm9yIGxpbmVfdXB0b190b2tlbiwga2luZCwgbGluZV90aHJ1X3Rva2VuIGluIGNsYXNzaWZpZWRfdGV4dDoKKyAgICAgICAgb3BlbmVyLCBjbG9zZXIgPSBjb2xvcnMuZ2V0KGtpbmQsICgnJywgJycpKQorICAgICAgICByZXN1bHQgKz0gW2xpbmVfdXB0b190b2tlbiwgb3BlbmVyLCBsaW5lX3RocnVfdG9rZW4sIGNsb3Nlcl0KKyAgICByZXR1cm4gJycuam9pbihyZXN1bHQpCisKK2RlZiBodG1sX2hpZ2hsaWdodChjbGFzc2lmaWVkX3RleHQsb3BlbmVyPSc8cHJlIGNsYXNzPSJweXRob24iPlxuJywgY2xvc2VyPSc8L3ByZT5cbicpOgorICAgICdDb252ZXJ0IGNsYXNzaWZpZWQgdGV4dCB0byBhbiBIVE1MIGZyYWdtZW50JworICAgIHJlc3VsdCA9IFtvcGVuZXJdCisgICAgZm9yIGxpbmVfdXB0b190b2tlbiwga2luZCwgbGluZV90aHJ1X3Rva2VuIGluIGNsYXNzaWZpZWRfdGV4dDoKKyAgICAgICAgaWYga2luZDoKKyAgICAgICAgICAgIHJlc3VsdCArPSBbY2dpLmVzY2FwZShsaW5lX3VwdG9fdG9rZW4pLAorICAgICAgICAgICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9IiVzIj4nICUga2luZCwKKyAgICAgICAgICAgICAgICAgICAgICAgY2dpLmVzY2FwZShsaW5lX3RocnVfdG9rZW4pLAorICAgICAgICAgICAgICAgICAgICAgICAnPC9zcGFuPiddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQgKz0gW2NnaS5lc2NhcGUobGluZV91cHRvX3Rva2VuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgY2dpLmVzY2FwZShsaW5lX3RocnVfdG9rZW4pXQorICAgIHJlc3VsdCArPSBbY2xvc2VyXQorICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKKworZGVmYXVsdF9jc3MgPSB7CisgICAgJy5jb21tZW50JzogJ3tjb2xvcjogY3JpbXNvbjt9JywKKyAgICAnLnN0cmluZyc6ICAne2NvbG9yOiBmb3Jlc3RncmVlbjt9JywKKyAgICAnLmRvY3N0cmluZyc6ICd7Y29sb3I6IGZvcmVzdGdyZWVuOyBmb250LXN0eWxlOml0YWxpYzt9JywKKyAgICAnLmtleXdvcmQnOiAne2NvbG9yOiBkYXJrb3JhbmdlO30nLAorICAgICcuYnVpbHRpbic6ICd7Y29sb3I6IHB1cnBsZTt9JywKKyAgICAnLmRlZmluaXRpb24nOiAne2NvbG9yOiBkYXJrb3JhbmdlOyBmb250LXdlaWdodDpib2xkO30nLAorICAgICcuZGVmbmFtZSc6ICd7Y29sb3I6IGJsdWU7fScsCisgICAgJy5vcGVyYXRvcic6ICd7Y29sb3I6IGJyb3duO30nLAorfQorCitkZWZhdWx0X2h0bWwgPSAnJydcCis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMS8vRU4iCisgICAgICAgICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9VVRGLTgiPgorPHRpdGxlPiB7dGl0bGV9IDwvdGl0bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgore2Nzc30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KK3tib2R5fQorPC9ib2R5PgorPC9odG1sPgorJycnCisKK2RlZiBidWlsZF9odG1sX3BhZ2UoY2xhc3NpZmllZF90ZXh0LCB0aXRsZT0ncHl0aG9uJywKKyAgICAgICAgICAgICAgICAgICAgY3NzPWRlZmF1bHRfY3NzLCBodG1sPWRlZmF1bHRfaHRtbCk6CisgICAgJ0NyZWF0ZSBhIGNvbXBsZXRlIEhUTUwgcGFnZSB3aXRoIGNvbG9yaXplZCBzb3VyY2UgY29kZScKKyAgICBjc3Nfc3RyID0gJ1xuJy5qb2luKFsnJXMgJXMnICUgaXRlbSBmb3IgaXRlbSBpbiBjc3MuaXRlbXMoKV0pCisgICAgcmVzdWx0ID0gaHRtbF9oaWdobGlnaHQoY2xhc3NpZmllZF90ZXh0KQorICAgIHRpdGxlID0gY2dpLmVzY2FwZSh0aXRsZSkKKyAgICByZXR1cm4gaHRtbC5mb3JtYXQodGl0bGU9dGl0bGUsIGNzcz1jc3Nfc3RyLCBib2R5PXJlc3VsdCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGltcG9ydCBzeXMsIGFyZ3BhcnNlLCB3ZWJicm93c2VyLCBvcywgdGV4dHdyYXAKKworICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKAorICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAnQWRkIHN5bnRheCBoaWdobGlnaHRpbmcgdG8gUHl0aG9uIHNvdXJjZSBjb2RlJywKKyAgICAgICAgICAgIGZvcm1hdHRlcl9jbGFzcz1hcmdwYXJzZS5SYXdEZXNjcmlwdGlvbkhlbHBGb3JtYXR0ZXIsCisgICAgICAgICAgICBlcGlsb2cgPSB0ZXh0d3JhcC5kZWRlbnQoJycnCisgICAgICAgICAgICAgICAgZXhhbXBsZXM6CisKKyAgICAgICAgICAgICAgICAgICMgU2hvdyBzeW50YXggaGlnaGxpZ2h0ZWQgY29kZSBpbiB0aGUgdGVybWluYWwgd2luZG93CisgICAgICAgICAgICAgICAgICAkIC4vaGlnaGxpZ2h0LnB5IG15ZmlsZS5weQorCisgICAgICAgICAgICAgICAgICAjIENvbG9yaXplIG15ZmlsZS5weSBhbmQgZGlzcGxheSBpbiBhIGJyb3dzZXIKKyAgICAgICAgICAgICAgICAgICQgLi9oaWdobGlnaHQucHkgLWIgbXlmaWxlLnB5CisKKyAgICAgICAgICAgICAgICAgICMgQ3JlYXRlIGFuIEhUTUwgc2VjdGlvbiB0byBlbWJlZCBpbiBhbiBleGlzdGluZyB3ZWJwYWdlCisgICAgICAgICAgICAgICAgICAuL2hpZ2hsaWdodC5weSAtcyBteWZpbGUucHkKKworICAgICAgICAgICAgICAgICAgIyBDcmVhdGUgYSBjb21wbGV0ZSBIVE1MIGZpbGUKKyAgICAgICAgICAgICAgICAgICQgLi9oaWdobGlnaHQucHkgLWMgbXlmaWxlLnB5ID4gbXlmaWxlLmh0bWwKKyAgICAgICAgICAgICcnJykpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnc291cmNlZmlsZScsIG1ldGF2YXIgPSAnU09VUkNFRklMRScsCisgICAgICAgICAgICBoZWxwID0gJ2ZpbGUgY29udGFpbmluZyBQeXRob24gc291cmNlY29kZScpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLWInLCAnLS1icm93c2VyJywgYWN0aW9uID0gJ3N0b3JlX3RydWUnLAorICAgICAgICAgICAgaGVscCA9ICdsYXVuY2ggYSBicm93c2VyIHRvIHNob3cgcmVzdWx0cycpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLWMnLCAnLS1jb21wbGV0ZScsIGFjdGlvbiA9ICdzdG9yZV90cnVlJywKKyAgICAgICAgICAgIGhlbHAgPSAnYnVpbGQgYSBjb21wbGV0ZSBodG1sIHdlYnBhZ2UnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1zJywgJy0tc2VjdGlvbicsIGFjdGlvbiA9ICdzdG9yZV90cnVlJywKKyAgICAgICAgICAgIGhlbHAgPSAnc2hvdyBhbiBIVE1MIHNlY3Rpb24gcmF0aGVyIHRoYW4gYSBjb21wbGV0ZSB3ZWJwYWdlJykKKyAgICBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQorCisgICAgaWYgYXJncy5zZWN0aW9uIGFuZCAoYXJncy5icm93c2VyIG9yIGFyZ3MuY29tcGxldGUpOgorICAgICAgICBwYXJzZXIuZXJyb3IoJ1RoZSAtcy8tLXNlY3Rpb24gb3B0aW9uIGlzIGluY29tcGF0aWJsZSB3aXRoICcKKyAgICAgICAgICAgICAgICAgICAgICd0aGUgLWIvLS1icm93c2VyIG9yIC1jLy0tY29tcGxldGUgb3B0aW9ucycpCisKKyAgICBzb3VyY2VmaWxlID0gYXJncy5zb3VyY2VmaWxlCisgICAgd2l0aCBvcGVuKHNvdXJjZWZpbGUpIGFzIGY6CisgICAgICAgIHNvdXJjZSA9IGYucmVhZCgpCisgICAgY2xhc3NpZmllZF90ZXh0ID0gYW5hbHl6ZV9weXRob24oc291cmNlKQorCisgICAgaWYgYXJncy5jb21wbGV0ZSBvciBhcmdzLmJyb3dzZXI6CisgICAgICAgIGVuY29kZWQgPSBidWlsZF9odG1sX3BhZ2UoY2xhc3NpZmllZF90ZXh0LCB0aXRsZT1zb3VyY2VmaWxlKQorICAgIGVsaWYgYXJncy5zZWN0aW9uOgorICAgICAgICBlbmNvZGVkID0gaHRtbF9oaWdobGlnaHQoY2xhc3NpZmllZF90ZXh0KQorICAgIGVsc2U6CisgICAgICAgIGVuY29kZWQgPSBhbnNpX2hpZ2hsaWdodChjbGFzc2lmaWVkX3RleHQpCisKKyAgICBpZiBhcmdzLmJyb3dzZXI6CisgICAgICAgIGh0bWxmaWxlID0gb3MucGF0aC5zcGxpdGV4dChvcy5wYXRoLmJhc2VuYW1lKHNvdXJjZWZpbGUpKVswXSArICcuaHRtbCcKKyAgICAgICAgd2l0aCBvcGVuKGh0bWxmaWxlLCAndycpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKGVuY29kZWQpCisgICAgICAgIHdlYmJyb3dzZXIub3BlbignZmlsZTovLycgKyBvcy5wYXRoLmFic3BhdGgoaHRtbGZpbGUpKQorICAgIGVsc2U6CisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoZW5jb2RlZCkKZGlmZiAtLWdpdCBhL1Rvb2xzL3NjcmlwdHMvaW1wb3J0X2RpYWdub3N0aWNzLnB5IGIvVG9vbHMvc2NyaXB0cy9pbXBvcnRfZGlhZ25vc3RpY3MucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzkwNzIyMQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3NjcmlwdHMvaW1wb3J0X2RpYWdub3N0aWNzLnB5CkBAIC0wLDAgKzEsMzcgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKyIiIk1pc2NlbGxhbmVvdXMgZGlhZ25vc3RpY3MgZm9yIHRoZSBpbXBvcnQgc3lzdGVtIiIiCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBhcmdwYXJzZQorZnJvbSBwcHJpbnQgaW1wb3J0IHBwcmludAorCitkZWYgX2R1bXBfc3RhdGUoYXJncyk6CisgICAgcHJpbnQoc3lzLnZlcnNpb24pCisgICAgZm9yIG5hbWUgaW4gYXJncy5hdHRyaWJ1dGVzOgorICAgICAgICBwcmludCgic3lzLnt9OiIuZm9ybWF0KG5hbWUpKQorICAgICAgICBwcHJpbnQoZ2V0YXR0cihzeXMsIG5hbWUpKQorCitkZWYgX2FkZF9kdW1wX2FyZ3MoY21kKToKKyAgICBjbWQuYWRkX2FyZ3VtZW50KCJhdHRyaWJ1dGVzIiwgbWV0YXZhcj0iQVRUUiIsIG5hcmdzPSIrIiwKKyAgICAgICAgICAgICAgICAgICAgIGhlbHA9InN5cyBtb2R1bGUgYXR0cmlidXRlIHRvIGRpc3BsYXkiKQorCitDT01NQU5EUyA9ICgKKyAgKCJkdW1wIiwgIkR1bXAgaW1wb3J0IHN0YXRlIiwgX2R1bXBfc3RhdGUsIF9hZGRfZHVtcF9hcmdzKSwKKykKKworZGVmIF9tYWtlX3BhcnNlcigpOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBzdWIgPSBwYXJzZXIuYWRkX3N1YnBhcnNlcnModGl0bGU9IkNvbW1hbmRzIikKKyAgICBmb3IgbmFtZSwgZGVzY3JpcHRpb24sIGltcGxlbWVudGF0aW9uLCBhZGRfYXJncyBpbiBDT01NQU5EUzoKKyAgICAgICAgY21kID0gc3ViLmFkZF9wYXJzZXIobmFtZSwgaGVscD1kZXNjcmlwdGlvbikKKyAgICAgICAgY21kLnNldF9kZWZhdWx0cyhjb21tYW5kPWltcGxlbWVudGF0aW9uKQorICAgICAgICBhZGRfYXJncyhjbWQpCisgICAgcmV0dXJuIHBhcnNlcgorCitkZWYgbWFpbihhcmdzKToKKyAgICBwYXJzZXIgPSBfbWFrZV9wYXJzZXIoKQorICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhhcmdzKQorICAgIHJldHVybiBhcmdzLmNvbW1hbmQoYXJncykKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2WzE6XSkpCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL3BhdGNoY2hlY2sucHkgYi9Ub29scy9zY3JpcHRzL3BhdGNoY2hlY2sucHkKaW5kZXggMGUxOGRkOS4uNTAzYzY3YSAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy9wYXRjaGNoZWNrLnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvcGF0Y2hjaGVjay5weQpAQCAtNDksMjkgKzQ5LDE1IEBACiBAc3RhdHVzKCJHZXR0aW5nIHRoZSBsaXN0IG9mIGZpbGVzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkL2NoYW5nZWQiLAogICAgICAgICBpbmZvPWxhbWJkYSB4OiBuX2ZpbGVzX3N0cihsZW4oeCkpKQogZGVmIGNoYW5nZWRfZmlsZXMoKToKLSAgICAiIiJHZXQgdGhlIGxpc3Qgb2YgY2hhbmdlZCBvciBhZGRlZCBmaWxlcyBmcm9tIHRoZSBWQ1MuIiIiCi0gICAgaWYgb3MucGF0aC5pc2Rpcihvcy5wYXRoLmpvaW4oU1JDRElSLCAnLmhnJykpOgotICAgICAgICB2Y3MgPSAnaGcnCi0gICAgICAgIGNtZCA9ICdoZyBzdGF0dXMgLS1hZGRlZCAtLW1vZGlmaWVkIC0tbm8tc3RhdHVzJwotICAgICAgICBpZiBtcV9wYXRjaGVzX2FwcGxpZWQoKToKLSAgICAgICAgICAgIGNtZCArPSAnIC0tcmV2IHFwYXJlbnQnCi0gICAgZWxpZiBvcy5wYXRoLmlzZGlyKCcuc3ZuJyk6Ci0gICAgICAgIHZjcyA9ICdzdm4nCi0gICAgICAgIGNtZCA9ICdzdm4gc3RhdHVzIC0tcXVpZXQgLS1ub24taW50ZXJhY3RpdmUgLS1pZ25vcmUtZXh0ZXJuYWxzJwotICAgIGVsc2U6CisgICAgIiIiR2V0IHRoZSBsaXN0IG9mIGNoYW5nZWQgb3IgYWRkZWQgZmlsZXMgZnJvbSBNZXJjdXJpYWwuIiIiCisgICAgaWYgbm90IG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKFNSQ0RJUiwgJy5oZycpKToKICAgICAgICAgc3lzLmV4aXQoJ25lZWQgYSBjaGVja291dCB0byBnZXQgbW9kaWZpZWQgZmlsZXMnKQogCi0gICAgc3QgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZC5zcGxpdCgpLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotICAgIHRyeToKLSAgICAgICAgc3Qud2FpdCgpCi0gICAgICAgIGlmIHZjcyA9PSAnaGcnOgotICAgICAgICAgICAgcmV0dXJuIFt4LmRlY29kZSgpLnJzdHJpcCgpIGZvciB4IGluIHN0LnN0ZG91dF0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG91dHB1dCA9ICh4LmRlY29kZSgpLnJzdHJpcCgpLnJzcGxpdChOb25lLCAxKVstMV0KLSAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBzdC5zdGRvdXQgaWYgeFswXSBpbiBiJ0FNJykKLSAgICAgICAgcmV0dXJuIHNldChwYXRoIGZvciBwYXRoIGluIG91dHB1dCBpZiBvcy5wYXRoLmlzZmlsZShwYXRoKSkKLSAgICBmaW5hbGx5OgotICAgICAgICBzdC5zdGRvdXQuY2xvc2UoKQorICAgIGNtZCA9ICdoZyBzdGF0dXMgLS1hZGRlZCAtLW1vZGlmaWVkIC0tbm8tc3RhdHVzJworICAgIGlmIG1xX3BhdGNoZXNfYXBwbGllZCgpOgorICAgICAgICBjbWQgKz0gJyAtLXJldiBxcGFyZW50JworICAgIHdpdGggc3VicHJvY2Vzcy5Qb3BlbihjbWQuc3BsaXQoKSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkgYXMgc3Q6CisgICAgICAgIHJldHVybiBbeC5kZWNvZGUoKS5yc3RyaXAoKSBmb3IgeCBpbiBzdC5zdGRvdXRdCiAKIAogZGVmIHJlcG9ydF9tb2RpZmllZF9maWxlcyhmaWxlX3BhdGhzKToKQEAgLTg5LDEwICs3NSw4IEBACiBkZWYgbm9ybWFsaXplX3doaXRlc3BhY2UoZmlsZV9wYXRocyk6CiAgICAgIiIiTWFrZSBzdXJlIHRoYXQgdGhlIHdoaXRlc3BhY2UgZm9yIC5weSBmaWxlcyBoYXZlIGJlZW4gbm9ybWFsaXplZC4iIiIKICAgICByZWluZGVudC5tYWtlYmFja3VwID0gRmFsc2UgICMgTm8gbmVlZCB0byBjcmVhdGUgYmFja3Vwcy4KLSAgICBmaXhlZCA9IFtdCi0gICAgZm9yIHBhdGggaW4gKHggZm9yIHggaW4gZmlsZV9wYXRocyBpZiB4LmVuZHN3aXRoKCcucHknKSk6Ci0gICAgICAgIGlmIHJlaW5kZW50LmNoZWNrKG9zLnBhdGguam9pbihTUkNESVIsIHBhdGgpKToKLSAgICAgICAgICAgIGZpeGVkLmFwcGVuZChwYXRoKQorICAgIGZpeGVkID0gW3BhdGggZm9yIHBhdGggaW4gZmlsZV9wYXRocyBpZiBwYXRoLmVuZHN3aXRoKCcucHknKSBhbmQKKyAgICAgICAgICAgICByZWluZGVudC5jaGVjayhvcy5wYXRoLmpvaW4oU1JDRElSLCBwYXRoKSldCiAgICAgcmV0dXJuIGZpeGVkCiAKIApAQCAtMTQ4LDYgKzEzMiwyMSBAQAogICAgICIiIkNoZWNrIGlmIE1pc2MvTkVXUyBoYXMgYmVlbiBjaGFuZ2VkLiIiIgogICAgIHJldHVybiAnTWlzYy9ORVdTJyBpbiBmaWxlX3BhdGhzCiAKK0BzdGF0dXMoImNvbmZpZ3VyZSByZWdlbmVyYXRlZCIsIG1vZGFsPVRydWUsIGluZm89c3RyKQorZGVmIHJlZ2VuZXJhdGVkX2NvbmZpZ3VyZShmaWxlX3BhdGhzKToKKyAgICAiIiJDaGVjayBpZiBjb25maWd1cmUgaGFzIGJlZW4gcmVnZW5lcmF0ZWQuIiIiCisgICAgaWYgJ2NvbmZpZ3VyZS5hYycgaW4gZmlsZV9wYXRoczoKKyAgICAgICAgcmV0dXJuICJ5ZXMiIGlmICdjb25maWd1cmUnIGluIGZpbGVfcGF0aHMgZWxzZSAibm8iCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuICJub3QgbmVlZGVkIgorCitAc3RhdHVzKCJweWNvbmZpZy5oLmluIHJlZ2VuZXJhdGVkIiwgbW9kYWw9VHJ1ZSwgaW5mbz1zdHIpCitkZWYgcmVnZW5lcmF0ZWRfcHljb25maWdfaF9pbihmaWxlX3BhdGhzKToKKyAgICAiIiJDaGVjayBpZiBweWNvbmZpZy5oLmluIGhhcyBiZWVuIHJlZ2VuZXJhdGVkLiIiIgorICAgIGlmICdjb25maWd1cmUuYWMnIGluIGZpbGVfcGF0aHM6CisgICAgICAgIHJldHVybiAieWVzIiBpZiAncHljb25maWcuaC5pbicgaW4gZmlsZV9wYXRocyBlbHNlICJubyIKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gIm5vdCBuZWVkZWQiCiAKIGRlZiBtYWluKCk6CiAgICAgZmlsZV9wYXRocyA9IGNoYW5nZWRfZmlsZXMoKQpAQCAtMTY3LDYgKzE2NiwxMCBAQAogICAgIGNyZWRpdF9naXZlbihzcGVjaWFsX2ZpbGVzKQogICAgICMgTWlzYy9ORVdTIGNoYW5nZWQuCiAgICAgcmVwb3J0ZWRfbmV3cyhzcGVjaWFsX2ZpbGVzKQorICAgICMgUmVnZW5lcmF0ZWQgY29uZmlndXJlLCBpZiBuZWNlc3NhcnkuCisgICAgcmVnZW5lcmF0ZWRfY29uZmlndXJlKGZpbGVfcGF0aHMpCisgICAgIyBSZWdlbmVyYXRlZCBweWNvbmZpZy5oLmluLCBpZiBuZWNlc3NhcnkuCisgICAgcmVnZW5lcmF0ZWRfcHljb25maWdfaF9pbihmaWxlX3BhdGhzKQogCiAgICAgIyBUZXN0IHN1aXRlIHJ1biBhbmQgcGFzc2VkLgogICAgIGlmIHB5dGhvbl9maWxlcyBvciBjX2ZpbGVzOgpkaWZmIC0tZ2l0IGEvVG9vbHMvc2NyaXB0cy9weXNvdXJjZS5weSBiL1Rvb2xzL3NjcmlwdHMvcHlzb3VyY2UucHkKaW5kZXggMDQ4MTMxZS4uYzdkYmU2MCAxMDA3NTUKLS0tIGEvVG9vbHMvc2NyaXB0cy9weXNvdXJjZS5weQorKysgYi9Ub29scy9zY3JpcHRzL3B5c291cmNlLnB5CkBAIC00Miw3ICs0Miw3IEBACiAgICAgICAgIHJldHVybiBOb25lCiAKICAgICB0cnk6Ci0gICAgICAgIHJldHVybiBvcGVuKGZ1bGxwYXRoLCAnclUnKQorICAgICAgICByZXR1cm4gb3BlbihmdWxscGF0aCkKICAgICBleGNlcHQgSU9FcnJvciBhcyBlcnI6ICMgQWNjZXNzIGRlbmllZCwgb3IgYSBzcGVjaWFsIGZpbGUgLSBpZ25vcmUgaXQKICAgICAgICAgcHJpbnRfZGVidWcoIiVzOiBhY2Nlc3MgZGVuaWVkOiAlcyIgJSAoZnVsbHBhdGgsIGVycikpCiAgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL3B5dmVudiBiL1Rvb2xzL3NjcmlwdHMvcHl2ZW52Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk3OGQ2OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9zY3JpcHRzL3B5dmVudgpAQCAtMCwwICsxLDExIEBACisjIS91c3IvYmluL2VudiBweXRob24zCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGltcG9ydCBzeXMKKyAgICByYyA9IDEKKyAgICB0cnk6CisgICAgICAgIGltcG9ydCB2ZW52CisgICAgICAgIHZlbnYubWFpbigpCisgICAgICAgIHJjID0gMAorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgcHJpbnQoJ0Vycm9yOiAlcycgJSBlLCBmaWxlPXN5cy5zdGRlcnIpCisgICAgc3lzLmV4aXQocmMpCmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL3JlaW5kZW50LnB5IGIvVG9vbHMvc2NyaXB0cy9yZWluZGVudC5weQppbmRleCBiMTg5OTNiLi40YTkxNmVhIDEwMDc1NQotLS0gYS9Ub29scy9zY3JpcHRzL3JlaW5kZW50LnB5CisrKyBiL1Rvb2xzL3NjcmlwdHMvcmVpbmRlbnQucHkKQEAgLTgsNiArOCw4IEBACiAtciAoLS1yZWN1cnNlKSAgUmVjdXJzZS4gICBTZWFyY2ggZm9yIGFsbCAucHkgZmlsZXMgaW4gc3ViZGlyZWN0b3JpZXMgdG9vLgogLW4gKC0tbm9iYWNrdXApIE5vIGJhY2t1cC4gRG9lcyBub3QgbWFrZSBhICIuYmFrIiBmaWxlIGJlZm9yZSByZWluZGVudGluZy4KIC12ICgtLXZlcmJvc2UpICBWZXJib3NlLiAgIFByaW50IGluZm9ybWF0aXZlIG1zZ3M7IGVsc2Ugbm8gb3V0cHV0LgorICAgKC0tbmV3bGluZSkgIE5ld2xpbmUuICAgU3BlY2lmeSB0aGUgbmV3bGluZSBjaGFyYWN0ZXIgdG8gdXNlIChDUkxGLCBMRikuCisgICAgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0IGlzIHRoZSBzYW1lIGFzIHRoZSBvcmlnaW5hbCBmaWxlLgogLWggKC0taGVscCkgICAgIEhlbHAuICAgICAgUHJpbnQgdGhpcyB1c2FnZSBpbmZvcm1hdGlvbiBhbmQgZXhpdC4KIAogQ2hhbmdlIFB5dGhvbiAoLnB5KSBmaWxlcyB0byB1c2UgNC1zcGFjZSBpbmRlbnRzIGFuZCBubyBoYXJkIHRhYiBjaGFyYWN0ZXJzLgpAQCAtNTAsNiArNTIsOCBAQAogcmVjdXJzZSA9IEZhbHNlCiBkcnlydW4gPSBGYWxzZQogbWFrZWJhY2t1cCA9IFRydWUKK3NwZWNfbmV3bGluZSA9IE5vbmUKKyIiIkEgc3BlY2lmaWVkIG5ld2xpbmUgdG8gYmUgdXNlZCBpbiB0aGUgb3V0cHV0IChzZXQgYnkgLS1uZXdsaW5lIG9wdGlvbikiIiIKIAogCiBkZWYgdXNhZ2UobXNnPU5vbmUpOgpAQCAtNjIsMTMgKzY2LDEyIEBACiAgICAgc3lzLnN0ZGVyci53cml0ZSgiICIuam9pbihzdHIoYXJnKSBmb3IgYXJnIGluIGFyZ3MpKQogICAgIHN5cy5zdGRlcnIud3JpdGUoIlxuIikKIAotCiBkZWYgbWFpbigpOgogICAgIGltcG9ydCBnZXRvcHQKLSAgICBnbG9iYWwgdmVyYm9zZSwgcmVjdXJzZSwgZHJ5cnVuLCBtYWtlYmFja3VwCisgICAgZ2xvYmFsIHZlcmJvc2UsIHJlY3Vyc2UsIGRyeXJ1biwgbWFrZWJhY2t1cCwgc3BlY19uZXdsaW5lCiAgICAgdHJ5OgogICAgICAgICBvcHRzLCBhcmdzID0gZ2V0b3B0LmdldG9wdChzeXMuYXJndlsxOl0sICJkcm52aCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBbImRyeXJ1biIsICJyZWN1cnNlIiwgIm5vYmFja3VwIiwgInZlcmJvc2UiLCAiaGVscCJdKQorICAgICAgICAgICAgWyJkcnlydW4iLCAicmVjdXJzZSIsICJub2JhY2t1cCIsICJ2ZXJib3NlIiwgIm5ld2xpbmU9IiwgImhlbHAiXSkKICAgICBleGNlcHQgZ2V0b3B0LmVycm9yIGFzIG1zZzoKICAgICAgICAgdXNhZ2UobXNnKQogICAgICAgICByZXR1cm4KQEAgLTgxLDYgKzg0LDExIEBACiAgICAgICAgICAgICBtYWtlYmFja3VwID0gRmFsc2UKICAgICAgICAgZWxpZiBvIGluICgnLXYnLCAnLS12ZXJib3NlJyk6CiAgICAgICAgICAgICB2ZXJib3NlID0gVHJ1ZQorICAgICAgICBlbGlmIG8gaW4gKCctLW5ld2xpbmUnLCk6CisgICAgICAgICAgICBpZiBub3QgYS51cHBlcigpIGluICgnQ1JMRicsICdMRicpOgorICAgICAgICAgICAgICAgIHVzYWdlKCkKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHNwZWNfbmV3bGluZSA9IGRpY3QoQ1JMRj0nXHJcbicsIExGPSdcbicpW2EudXBwZXIoKV0KICAgICAgICAgZWxpZiBvIGluICgnLWgnLCAnLS1oZWxwJyk6CiAgICAgICAgICAgICB1c2FnZSgpCiAgICAgICAgICAgICByZXR1cm4KQEAgLTExOCw5ICsxMjYsOSBAQAogICAgICAgICBlcnJwcmludCgiJXM6IEkvTyBFcnJvcjogJXMiICUgKGZpbGUsIHN0cihtc2cpKSkKICAgICAgICAgcmV0dXJuCiAKLSAgICBuZXdsaW5lID0gci5uZXdsaW5lcworICAgIG5ld2xpbmUgPSBzcGVjX25ld2xpbmUgaWYgc3BlY19uZXdsaW5lIGVsc2Ugci5uZXdsaW5lcwogICAgIGlmIGlzaW5zdGFuY2UobmV3bGluZSwgdHVwbGUpOgotICAgICAgICBlcnJwcmludCgiJXM6IG1peGVkIG5ld2xpbmVzIGRldGVjdGVkOyBjYW5ub3QgcHJvY2VzcyBmaWxlIiAlIGZpbGUpCisgICAgICAgIGVycnByaW50KCIlczogbWl4ZWQgbmV3bGluZXMgZGV0ZWN0ZWQ7IGNhbm5vdCBjb250aW51ZSB3aXRob3V0IC0tbmV3bGluZSIgJSBmaWxlKQogICAgICAgICByZXR1cm4KIAogICAgIGlmIHIucnVuKCk6CmRpZmYgLS1naXQgYS9Ub29scy9zY3JpcHRzL3J1bl90ZXN0cy5weSBiL1Rvb2xzL3NjcmlwdHMvcnVuX3Rlc3RzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUyYTIwNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9zY3JpcHRzL3J1bl90ZXN0cy5weQpAQCAtMCwwICsxLDUxIEBACisiIiJSdW4gUHl0aG9uJ3MgdGVzdCBzdWl0ZSBpbiBhIGZhc3QsIHJpZ29yb3VzIHdheS4KKworVGhlIGRlZmF1bHRzIGFyZSBtZWFudCB0byBiZSByZWFzb25hYmx5IHRob3JvdWdoLCB3aGlsZSBza2lwcGluZyBjZXJ0YWluCit0ZXN0cyB0aGF0IGNhbiBiZSB0aW1lLWNvbnN1bWluZyBvciByZXNvdXJjZS1pbnRlbnNpdmUgKGUuZy4gbGFyZ2VmaWxlKSwKK29yIGRpc3RyYWN0aW5nIChlLmcuIGF1ZGlvIGFuZCBndWkpLiBUaGVzZSBkZWZhdWx0cyBjYW4gYmUgb3ZlcnJpZGRlbiBieQorc2ltcGx5IHBhc3NpbmcgYSAtdSBvcHRpb24gdG8gdGhpcyBzY3JpcHQuCisKKyIiIgorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZXN0LnN1cHBvcnQKK3RyeToKKyAgICBpbXBvcnQgdGhyZWFkaW5nCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgdGhyZWFkaW5nID0gTm9uZQorCisKK2RlZiBpc19tdWx0aXByb2Nlc3NfZmxhZyhhcmcpOgorICAgIHJldHVybiBhcmcuc3RhcnRzd2l0aCgnLWonKSBvciBhcmcuc3RhcnRzd2l0aCgnLS1tdWx0aXByb2Nlc3MnKQorCisKK2RlZiBpc19yZXNvdXJjZV91c2VfZmxhZyhhcmcpOgorICAgIHJldHVybiBhcmcuc3RhcnRzd2l0aCgnLXUnKSBvciBhcmcuc3RhcnRzd2l0aCgnLS11c2UnKQorCisKK2RlZiBtYWluKHJlZ3J0ZXN0X2FyZ3MpOgorICAgIGFyZ3MgPSBbc3lzLmV4ZWN1dGFibGUsCisgICAgICAgICAgICAnLVcnLCAnZGVmYXVsdCcsICAgICAgIyBXYXJuaW5ncyBzZXQgdG8gJ2RlZmF1bHQnCisgICAgICAgICAgICAnLWJiJywgICAgICAgICAgICAgICAgIyBXYXJuaW5ncyBhYm91dCBieXRlcy9ieXRlYXJyYXkKKyAgICAgICAgICAgICctRScsICAgICAgICAgICAgICAgICAjIElnbm9yZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKKyAgICAgICAgICAgIF0KKyAgICAjIEFsbG93IHVzZXItc3BlY2lmaWVkIGludGVycHJldGVyIG9wdGlvbnMgdG8gb3ZlcnJpZGUgb3VyIGRlZmF1bHRzLgorICAgIGFyZ3MuZXh0ZW5kKHRlc3Quc3VwcG9ydC5hcmdzX2Zyb21faW50ZXJwcmV0ZXJfZmxhZ3MoKSkKKyAgICBhcmdzLmV4dGVuZChbJy1tJywgJ3Rlc3QnLCAgICAjIFJ1biB0aGUgdGVzdCBzdWl0ZQorICAgICAgICAgICAgICAgICAnLXInLCAgICAgICAgICAgICMgUmFuZG9taXplIHRlc3Qgb3JkZXIKKyAgICAgICAgICAgICAgICAgJy13JywgICAgICAgICAgICAjIFJlLXJ1biBmYWlsZWQgdGVzdHMgaW4gdmVyYm9zZSBtb2RlCisgICAgICAgICAgICAgICAgIF0pCisgICAgaWYgc3lzLnBsYXRmb3JtID09ICd3aW4zMic6CisgICAgICAgIGFyZ3MuYXBwZW5kKCctbicpICAgICAgICAgIyBTaWxlbmNlIGFsZXJ0cyB1bmRlciBXaW5kb3dzCisgICAgaWYgdGhyZWFkaW5nIGFuZCBub3QgYW55KGlzX211bHRpcHJvY2Vzc19mbGFnKGFyZykgZm9yIGFyZyBpbiByZWdydGVzdF9hcmdzKToKKyAgICAgICAgYXJncy5leHRlbmQoWyctaicsICcwJ10pICAjIFVzZSBhbGwgQ1BVIGNvcmVzCisgICAgaWYgbm90IGFueShpc19yZXNvdXJjZV91c2VfZmxhZyhhcmcpIGZvciBhcmcgaW4gcmVncnRlc3RfYXJncyk6CisgICAgICAgIGFyZ3MuZXh0ZW5kKFsnLXUnLCAnYWxsLC1sYXJnZWZpbGUsLWF1ZGlvLC1ndWknXSkKKyAgICBhcmdzLmV4dGVuZChyZWdydGVzdF9hcmdzKQorICAgIHByaW50KCcgJy5qb2luKGFyZ3MpKQorICAgIG9zLmV4ZWN2KHN5cy5leGVjdXRhYmxlLCBhcmdzKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgbWFpbihzeXMuYXJndlsxOl0pCmRpZmYgLS1naXQgYS9Ub29scy9zc2wvbWFrZV9zc2xfZGF0YS5weSBiL1Rvb2xzL3NzbC9tYWtlX3NzbF9kYXRhLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwMjQ0ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9zc2wvbWFrZV9zc2xfZGF0YS5weQpAQCAtMCwwICsxLDY4IEBACisjISAvdXNyL2Jpbi9lbnYgcHl0aG9uMworCisiIiIKK1RoaXMgc2NyaXB0IHNob3VsZCBiZSBjYWxsZWQgKm1hbnVhbGx5KiB3aGVuIHdlIHdhbnQgdG8gdXBncmFkZSBTU0xFcnJvcgorYGxpYnJhcnlgIGFuZCBgcmVhc29uYCBtbmVtbm9uaWNzIHRvIGEgbW9yZSByZWNlbnQgT3BlblNTTCB2ZXJzaW9uLgorCitJdCB0YWtlcyB0d28gYXJndW1lbnRzOgorLSB0aGUgcGF0aCB0byB0aGUgT3BlblNTTCBpbmNsdWRlIGZpbGVzJyBkaXJlY3RvcnkKKyAgKGUuZy4gb3BlbnNzbC0xLjAuMS1iZXRhMy9pbmNsdWRlL29wZW5zc2wvKQorLSB0aGUgcGF0aCB0byB0aGUgQyBmaWxlIHRvIGJlIGdlbmVyYXRlZAorICAocHJvYmFibHkgTW9kdWxlcy9fc3NsX2RhdGEuaCkKKyIiIgorCitpbXBvcnQgZGF0ZXRpbWUKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc3lzCisKKworZGVmIHBhcnNlX2Vycm9yX2NvZGVzKGhfZmlsZSwgcHJlZml4KToKKyAgICBwYXQgPSByZS5jb21waWxlKHIiI2RlZmluZVxXKyglcyhbXHddKykpXFcrKFxkKylcYiIgJSByZS5lc2NhcGUocHJlZml4KSkKKyAgICBjb2RlcyA9IFtdCisgICAgd2l0aCBvcGVuKGhfZmlsZSwgInIiLCBlbmNvZGluZz0ibGF0aW4xIikgYXMgZjoKKyAgICAgICAgZm9yIGxpbmUgaW4gZjoKKyAgICAgICAgICAgIG1hdGNoID0gcGF0LnNlYXJjaChsaW5lKQorICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgY29kZSwgbmFtZSwgbnVtID0gbWF0Y2guZ3JvdXBzKCkKKyAgICAgICAgICAgICAgICBudW0gPSBpbnQobnVtKQorICAgICAgICAgICAgICAgIGNvZGVzLmFwcGVuZCgoY29kZSwgbmFtZSwgbnVtKSkKKyAgICByZXR1cm4gY29kZXMKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBvcGVuc3NsX2luYyA9IHN5cy5hcmd2WzFdCisgICAgb3V0ZmlsZSA9IHN5cy5hcmd2WzJdCisgICAgdXNlX3N0ZG91dCA9IG91dGZpbGUgPT0gJy0nCisgICAgZiA9IHN5cy5zdGRvdXQgaWYgdXNlX3N0ZG91dCBlbHNlIG9wZW4ob3V0ZmlsZSwgInciKQorICAgIGVycm9yX2xpYnJhcmllcyA9ICgKKyAgICAgICAgIyAobGlicmFyeSBjb2RlLCBtbmVtb25pYywgZXJyb3IgcHJlZml4LCBoZWFkZXIgZmlsZSkKKyAgICAgICAgKCdFUlJfTElCX1BFTScsICdQRU0nLCAnUEVNX1JfJywgJ3BlbS5oJyksCisgICAgICAgICgnRVJSX0xJQl9TU0wnLCAnU1NMJywgJ1NTTF9SXycsICdzc2wuaCcpLAorICAgICAgICAoJ0VSUl9MSUJfWDUwOScsICdYNTA5JywgJ1g1MDlfUl8nLCAneDUwOS5oJyksCisgICAgICAgICkKKyAgICBkZWYgdyhsKToKKyAgICAgICAgZi53cml0ZShsICsgIlxuIikKKyAgICB3KCIvKiBGaWxlIGdlbmVyYXRlZCBieSBUb29scy9zc2wvbWFrZV9zc2xfZGF0YS5weSAqLyIpCisgICAgdygiLyogR2VuZXJhdGVkIG9uICVzICovIiAlIGRhdGV0aW1lLmRhdGV0aW1lLm5vdygpLmlzb2Zvcm1hdCgpKQorICAgIHcoIiIpCisKKyAgICB3KCJzdGF0aWMgc3RydWN0IHB5X3NzbF9saWJyYXJ5X2NvZGUgbGlicmFyeV9jb2Rlc1tdID0geyIpCisgICAgZm9yIGxpYmNvZGUsIG1uZW1vLCBfLCBfIGluIGVycm9yX2xpYnJhcmllczoKKyAgICAgICAgdygnICAgIHsiJXMiLCAlc30sJyAlIChtbmVtbywgbGliY29kZSkpCisgICAgdygnICAgIHsgTlVMTCB9JykKKyAgICB3KCd9OycpCisgICAgdygiIikKKworICAgIHcoInN0YXRpYyBzdHJ1Y3QgcHlfc3NsX2Vycm9yX2NvZGUgZXJyb3JfY29kZXNbXSA9IHsiKQorICAgIGZvciBsaWJjb2RlLCBfLCBwcmVmaXgsIGhfZmlsZSBpbiBlcnJvcl9saWJyYXJpZXM6CisgICAgICAgIGNvZGVzID0gcGFyc2VfZXJyb3JfY29kZXMob3MucGF0aC5qb2luKG9wZW5zc2xfaW5jLCBoX2ZpbGUpLCBwcmVmaXgpCisgICAgICAgIGZvciBjb2RlLCBuYW1lLCBudW0gaW4gc29ydGVkKGNvZGVzKToKKyAgICAgICAgICAgIHcoJyAgI2lmZGVmICVzJyAlIChjb2RlKSkKKyAgICAgICAgICAgIHcoJyAgICB7IiVzIiwgJXMsICVzfSwnICUgKG5hbWUsIGxpYmNvZGUsIGNvZGUpKQorICAgICAgICAgICAgdygnICAjZWxzZScpCisgICAgICAgICAgICB3KCcgICAgeyIlcyIsICVzLCAlZH0sJyAlIChuYW1lLCBsaWJjb2RlLCBudW0pKQorICAgICAgICAgICAgdygnICAjZW5kaWYnKQorICAgIHcoJyAgICB7IE5VTEwgfScpCisgICAgdygnfTsnKQorICAgIGlmIG5vdCB1c2Vfc3Rkb3V0OgorICAgICAgICBmLmNsb3NlKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL3N0cmluZ2JlbmNoL1JFQURNRSBiL1Rvb2xzL3N0cmluZ2JlbmNoL1JFQURNRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjcxZjEyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvc3RyaW5nYmVuY2gvUkVBRE1FCkBAIC0wLDAgKzEsNjggQEAKK3N0cmluZ2JlbmNoIGlzIGEgc2V0IG9mIHBlcmZvcm1hbmNlIHRlc3RzIGNvbXBhcmluZyBieXRlIHN0cmluZworb3BlcmF0aW9ucyB3aXRoIHVuaWNvZGUgb3BlcmF0aW9ucy4gIFRoZSB0d28gc3RyaW5nIGltcGxlbWVudGF0aW9ucworYXJlIGxvb3NlbHkgYmFzZWQgb24gZWFjaCBvdGhlciBhbmQgc29tZXRpbWVzIHRoZSBhbGdvcml0aG0gZm9yIG9uZSBpcworZmFzdGVyIHRoYW4gdGhlIG90aGVyLgorCitUaGVzZSB0ZXN0IHNldCB3YXMgc3RhcnRlZCBhdCB0aGUgTmVlZCBGb3IgU3BlZWQgc3ByaW50IGluIFJleWtqYXZpawordG8gaWRlbnRpZnkgd2hpY2ggc3RyaW5nIG1ldGhvZHMgY291bGQgYmUgc3BlZCB1cCBxdWlja2x5IGFuZCB0bworaWRlbnRpZnkgb2J2aW91cyBwbGFjZXMgZm9yIGltcHJvdmVtZW50LgorCitIZXJlIGlzIGFuIGV4YW1wbGUgb2YgYSBiZW5jaG1hcmsKKworCitAYmVuY2goJyJBbmRyZXciLnN0YXJ0c3dpdGgoIkEiKScsICdzdGFydHN3aXRoIHNpbmdsZSBjaGFyYWN0ZXInLCAxMDAwKQorZGVmIHN0YXJ0c3dpdGhfc2luZ2xlKFNUUik6CisgICAgczEgPSBTVFIoIkFuZHJldyIpCisgICAgczIgPSBTVFIoIkEiKQorICAgIHMxX3N0YXJ0c3dpdGggPSBzMS5zdGFydHN3aXRoCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3N0YXJ0c3dpdGgoczIpCisKK1RoZSBiZW5jaCBkZWNvcmF0b3IgdGFrZXMgdGhyZWUgcGFyYW1ldGVycy4gIFRoZSBmaXJzdCBpcyBhIHNob3J0CitkZXNjcmlwdGlvbiBvZiBob3cgdGhlIGNvZGUgd29ya3MuICBJbiBtb3N0IGNhc2VzIHRoaXMgaXMgUHl0aG9uIGNvZGUKK3NuaXBwZXQuICBJdCBpcyBub3QgdGhlIGNvZGUgd2hpY2ggaXMgYWN0dWFsbHkgcnVuIGJlY2F1c2UgdGhlIHJlYWwKK2NvZGUgaXMgaGFuZC1vcHRpbWl6ZWQgdG8gZm9jdXMgb24gdGhlIG1ldGhvZCBiZWluZyB0ZXN0ZWQuCisKK1RoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIGEgZ3JvdXAgdGl0bGUuICBBbGwgYmVuY2htYXJrcyB3aXRoIHRoZSBzYW1lCitncm91cCB0aXRsZSBhcmUgbGlzdGVkIHRvZ2V0aGVyLiAgVGhpcyBsZXRzIHlvdSBjb21wYXJlIGRpZmZlcmVudAoraW1wbGVtZW50YXRpb25zIG9mIHRoZSBzYW1lIGFsZ29yaXRobSwgc3VjaCBhcyAidCBpbiBzIgordnMuICJzLmZpbmQodCkiLgorCitUaGUgbGFzdCBpcyBhIGNvdW50LiAgRWFjaCBiZW5jaG1hcmsgbG9vcHMgb3ZlciB0aGUgYWxnb3JpdGhtIGVpdGhlcgorMTAwIG9yIDEwMDAgdGltZXMsIGRlcGVuZGluZyBvbiB0aGUgYWxnb3JpdGhtIHBlcmZvcm1hbmNlLiAgVGhlIG91dHB1dAordGltZSBpcyB0aGUgdGltZSBwZXIgYmVuY2htYXJrIGNhbGwgc28gdGhlIHJlYWRlciBuZWVkcyBhIHdheSB0byBrbm93Citob3cgdG8gc2NhbGUgdGhlIHBlcmZvcm1hbmNlLgorCitUaGVzZSBwYXJhbWV0ZXJzIGJlY29tZSBmdW5jdGlvbiBhdHRyaWJ1dGVzLgorCisKK0hlcmUgaXMgYW4gZXhhbXBsZSBvZiB0aGUgb3V0cHV0CisKKworPT09PT09PT09PSBjb3VudCBuZXdsaW5lcworMzguNTQgICA0MS42MCAgIDkyLjcgICAgLi4udGV4dC53aXRoLjIwMDAubmV3bGluZXMuY291bnQoIlxuIikgKCoxMDApCis9PT09PT09PT09IGVhcmx5IG1hdGNoLCBzaW5nbGUgY2hhcmFjdGVyCisxLjE0ICAgIDEuMTggICAgOTYuOCAgICAoIkEiKjEwMDApLmZpbmQoIkEiKSAoKjEwMDApCiswLjQ0ICAgIDAuNDEgICAgMTA1LjYgICAiQSIgaW4gIkEiKjEwMDAgKCoxMDAwKQorMS4xNSAgICAxLjE3ICAgIDk4LjEgICAgKCJBIioxMDAwKS5pbmRleCgiQSIpICgqMTAwMCkKKworVGhlIGZpcnN0IGNvbHVtbiBpcyB0aGUgcnVuIHRpbWUgaW4gbWlsbGlzZWNvbmRzIGZvciBieXRlIHN0cmluZ3MuCitUaGUgc2Vjb25kIGlzIHRoZSBydW4gdGltZSBmb3IgdW5pY29kZSBzdHJpbmdzLiAgVGhlIHRoaXJkIGlzIGEKK3BlcmNlbnRhZ2U7IGJ5dGUgdGltZSAvIHVuaWNvZGUgdGltZS4gIEl0J3MgdGhlIHBlcmNlbnRhZ2UgYnkgd2hpY2gKK3VuaWNvZGUgaXMgZmFzdGVyIHRoYW4gYnl0ZSBzdHJpbmdzLgorCitUaGUgbGFzdCBjb2x1bW4gY29udGFpbnMgdGhlIGNvZGUgc25pcHBldCBhbmQgdGhlIHJlcGVhdCBjb3VudCBmb3IgdGhlCitpbnRlcm5hbCBiZW5jaG1hcmsgbG9vcC4KKworVGhlIHRpbWVzIGFyZSBjb21wdXRlZCB3aXRoICd0aW1laXQucHknIHdoaWNoIHJlcGVhdHMgdGhlIHRlc3QgbW9yZQorYW5kIG1vcmUgdGltZXMgdW50aWwgdGhlIHRvdGFsIHRpbWUgdGFrZXMgb3ZlciAwLjIgc2Vjb25kcywgcmV0dXJuaW5nCit0aGUgYmVzdCB0aW1lIGZvciBhIHNpbmdsZSBpdGVyYXRpb24uCisKK1RoZSBmaW5hbCBsaW5lIG9mIHRoZSBvdXRwdXQgaXMgdGhlIGN1bXVsYXRpdmUgdGltZSBmb3IgYnl0ZSBhbmQKK3VuaWNvZGUgc3RyaW5ncywgYW5kIHRoZSBvdmVyYWxsIHBlcmZvcm1hbmNlIG9mIHVuaWNvZGUgcmVsYXRpdmUgdG8KK2J5dGVzLiAgRm9yIGV4YW1wbGUKKworNDA3OS44MyA1NDMyLjI1IDc1LjEgICAgVE9UQUwKKworSG93ZXZlciwgdGhpcyBoYXMgbm8gbWVhbmluZyBhcyBpdCBldmVubHkgd2VpZ2h0cyBldmVyeSB0ZXN0LgorCmRpZmYgLS1naXQgYS9Ub29scy9zdHJpbmdiZW5jaC9zdHJpbmdiZW5jaC5weSBiL1Rvb2xzL3N0cmluZ2JlbmNoL3N0cmluZ2JlbmNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmEwYTIxZmEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9zdHJpbmdiZW5jaC9zdHJpbmdiZW5jaC5weQpAQCAtMCwwICsxLDE0ODIgQEAKKworIyBWYXJpb3VzIG1pY3JvYmVuY2htYXJrcyBjb21wYXJpbmcgdW5pY29kZSBhbmQgYnl0ZSBzdHJpbmcgcGVyZm9ybWFuY2UKKyMgUGxlYXNlIGtlZXAgdGhpcyBmaWxlIGJvdGggMi54IGFuZCAzLnggY29tcGF0aWJsZSEKKworaW1wb3J0IHRpbWVpdAoraW1wb3J0IGl0ZXJ0b29scworaW1wb3J0IG9wZXJhdG9yCitpbXBvcnQgcmUKK2ltcG9ydCBzeXMKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IG9wdHBhcnNlCisKK1ZFUlNJT04gPSAnMi4wJworCitkZWYgcCgqYXJncyk6CisgICAgc3lzLnN0ZG91dC53cml0ZSgnICcuam9pbihzdHIocykgZm9yIHMgaW4gYXJncykgKyAnXG4nKQorCitpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCk6CisgICAgQllURVMgPSBieXRlc19mcm9tX3N0ciA9IGxhbWJkYSB4OiB4LmVuY29kZSgnYXNjaWknKQorICAgIFVOSUNPREUgPSB1bmljb2RlX2Zyb21fc3RyID0gbGFtYmRhIHg6IHgKK2Vsc2U6CisgICAgQllURVMgPSBieXRlc19mcm9tX3N0ciA9IGxhbWJkYSB4OiB4CisgICAgVU5JQ09ERSA9IHVuaWNvZGVfZnJvbV9zdHIgPSBsYW1iZGEgeDogeC5kZWNvZGUoJ2FzY2lpJykKKworY2xhc3MgVW5zdXBwb3J0ZWRUeXBlKFR5cGVFcnJvcik6CisgICAgcGFzcworCisKK3AoJ3N0cmluZ2JlbmNoIHYlcycgJSBWRVJTSU9OKQorcChzeXMudmVyc2lvbikKK3AoZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkpCisKK1JFUEVBVCA9IDEKK1JFUEVBVCA9IDMKKyNSRVBFQVQgPSA3CisKK2lmIF9fbmFtZV9fICE9ICJfX21haW5fXyI6CisgICAgcmFpc2UgU3lzdGVtRXhpdCgiTXVzdCBydW4gYXMgbWFpbiBwcm9ncmFtIikKKworcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKK3BhcnNlci5hZGRfb3B0aW9uKCItUiIsICItLXNraXAtcmUiLCBkZXN0PSJza2lwX3JlIiwKKyAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICBoZWxwPSJza2lwIHJlZ3VsYXIgZXhwcmVzc2lvbiB0ZXN0cyIpCitwYXJzZXIuYWRkX29wdGlvbigiLTgiLCAiLS04LWJpdCIsIGRlc3Q9ImJ5dGVzX29ubHkiLAorICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgIGhlbHA9Im9ubHkgZG8gOC1iaXQgc3RyaW5nIGJlbmNobWFya3MiKQorcGFyc2VyLmFkZF9vcHRpb24oIi11IiwgIi0tdW5pY29kZSIsIGRlc3Q9InVuaWNvZGVfb25seSIsCisgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgaGVscD0ib25seSBkbyBVbmljb2RlIHN0cmluZyBiZW5jaG1hcmtzIikKKworCitfUkFOR0VfMTAwMCA9IGxpc3QocmFuZ2UoMTAwMCkpCitfUkFOR0VfMTAwID0gbGlzdChyYW5nZSgxMDApKQorX1JBTkdFXzEwID0gbGlzdChyYW5nZSgxMCkpCisKK2R1cHMgPSB7fQorZGVmIGJlbmNoKHMsIGdyb3VwLCByZXBlYXRfY291bnQpOgorICAgIGRlZiBibGFoKGYpOgorICAgICAgICBpZiBmLl9fbmFtZV9fIGluIGR1cHM6CisgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcigiTXVsdGlwbGUgZnVuY3Rpb25zIHdpdGggc2FtZSBuYW1lOiAlciIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGYuX19uYW1lX18sKSkKKyAgICAgICAgZHVwc1tmLl9fbmFtZV9fXSA9IDEKKyAgICAgICAgZi5jb21tZW50ID0gcworICAgICAgICBmLmlzX2JlbmNoID0gVHJ1ZQorICAgICAgICBmLmdyb3VwID0gZ3JvdXAKKyAgICAgICAgZi5yZXBlYXRfY291bnQgPSByZXBlYXRfY291bnQKKyAgICAgICAgcmV0dXJuIGYKKyAgICByZXR1cm4gYmxhaAorCitkZWYgdXNlc19yZShmKToKKyAgICBmLnVzZXNfcmUgPSBUcnVlCisKKyMjIyMjIyMgJ2luJyBjb21wYXJpc29ucworCitAYmVuY2goJyJBIiBpbiAiQSIqMTAwMCcsICJlYXJseSBtYXRjaCwgc2luZ2xlIGNoYXJhY3RlciIsIDEwMDApCitkZWYgaW5fdGVzdF9xdWlja19tYXRjaF9zaW5nbGVfY2hhcmFjdGVyKFNUUik6CisgICAgczEgPSBTVFIoIkEiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQSIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMyIGluIHMxCisKK0BiZW5jaCgnIkIiIGluICJBIioxMDAwJywgIm5vIG1hdGNoLCBzaW5nbGUgY2hhcmFjdGVyIiwgMTAwMCkKK2RlZiBpbl90ZXN0X25vX21hdGNoX3NpbmdsZV9jaGFyYWN0ZXIoU1RSKToKKyAgICBzMSA9IFNUUigiQSIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJCIikKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczIgaW4gczEKKworCitAYmVuY2goJyJBQiIgaW4gIkFCIioxMDAwJywgImVhcmx5IG1hdGNoLCB0d28gY2hhcmFjdGVycyIsIDEwMDApCitkZWYgaW5fdGVzdF9xdWlja19tYXRjaF90d29fY2hhcmFjdGVycyhTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJBQiIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMyIGluIHMxCisKK0BiZW5jaCgnIkJDIiBpbiAiQUIiKjEwMDAnLCAibm8gbWF0Y2gsIHR3byBjaGFyYWN0ZXJzIiwgMTAwMCkKK2RlZiBpbl90ZXN0X25vX21hdGNoX3R3b19jaGFyYWN0ZXIoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQkMiKQorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMiBpbiBzMQorCitAYmVuY2goJyJCQyIgaW4gKCJBQiIqMzAwKyJDIiknLCAibGF0ZSBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIGluX3Rlc3Rfc2xvd19tYXRjaF90d29fY2hhcmFjdGVycyhTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAzMDArIkMiKQorICAgIHMyID0gU1RSKCJCQyIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMyIGluIHMxCisKK0BiZW5jaCgncz0iQUJDIiozMzsgKHMrIkUiKSBpbiAoKHMrIkQiKSozMDArcysiRSIpJywKKyAgICAgICAibGF0ZSBtYXRjaCwgMTAwIGNoYXJhY3RlcnMiLCAxMDApCitkZWYgaW5fdGVzdF9zbG93X21hdGNoXzEwMF9jaGFyYWN0ZXJzKFNUUik6CisgICAgbSA9IFNUUigiQUJDIiozMykKKyAgICBkID0gU1RSKCJEIikKKyAgICBlID0gU1RSKCJFIikKKyAgICBzMSA9IChtK2QpKjMwMCArIG0rZQorICAgIHMyID0gbStlCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDoKKyAgICAgICAgczIgaW4gczEKKworIyBUcnkgd2l0aCByZWdleAorQHVzZXNfcmUKK0BiZW5jaCgncz0iQUJDIiozMzsgcmUuY29tcGlsZShzKyJEIikuc2VhcmNoKChzKyJEIikqMzAwK3MrIkUiKScsCisgICAgICAgImxhdGUgbWF0Y2gsIDEwMCBjaGFyYWN0ZXJzIiwgMTAwKQorZGVmIHJlX3Rlc3Rfc2xvd19tYXRjaF8xMDBfY2hhcmFjdGVycyhTVFIpOgorICAgIG0gPSBTVFIoIkFCQyIqMzMpCisgICAgZCA9IFNUUigiRCIpCisgICAgZSA9IFNUUigiRSIpCisgICAgczEgPSAobStkKSozMDAgKyBtK2UKKyAgICBzMiA9IG0rZQorICAgIHBhdCA9IHJlLmNvbXBpbGUoczIpCisgICAgc2VhcmNoID0gcGF0LnNlYXJjaAorICAgIGZvciB4IGluIF9SQU5HRV8xMDA6CisgICAgICAgIHNlYXJjaChzMSkKKworCisjIyMjIHNhbWUgdGVzdHMgYXMgJ2luJyBidXQgdXNlICdmaW5kJworCitAYmVuY2goJygiQSIqMTAwMCkuZmluZCgiQSIpJywgImVhcmx5IG1hdGNoLCBzaW5nbGUgY2hhcmFjdGVyIiwgMTAwMCkKK2RlZiBmaW5kX3Rlc3RfcXVpY2tfbWF0Y2hfc2luZ2xlX2NoYXJhY3RlcihTVFIpOgorICAgIHMxID0gU1RSKCJBIiAqIDEwMDApCisgICAgczIgPSBTVFIoIkEiKQorICAgIHMxX2ZpbmQgPSBzMS5maW5kCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX2ZpbmQoczIpCisKK0BiZW5jaCgnKCJBIioxMDAwKS5maW5kKCJCIiknLCAibm8gbWF0Y2gsIHNpbmdsZSBjaGFyYWN0ZXIiLCAxMDAwKQorZGVmIGZpbmRfdGVzdF9ub19tYXRjaF9zaW5nbGVfY2hhcmFjdGVyKFNUUik6CisgICAgczEgPSBTVFIoIkEiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQiIpCisgICAgczFfZmluZCA9IHMxLmZpbmQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfZmluZChzMikKKworCitAYmVuY2goJygiQUIiKjEwMDApLmZpbmQoIkFCIiknLCAiZWFybHkgbWF0Y2gsIHR3byBjaGFyYWN0ZXJzIiwgMTAwMCkKK2RlZiBmaW5kX3Rlc3RfcXVpY2tfbWF0Y2hfdHdvX2NoYXJhY3RlcnMoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQUIiKQorICAgIHMxX2ZpbmQgPSBzMS5maW5kCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX2ZpbmQoczIpCisKK0BiZW5jaCgnKCJBQiIqMTAwMCkuZmluZCgiQkMiKScsICJubyBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIGZpbmRfdGVzdF9ub19tYXRjaF90d29fY2hhcmFjdGVyKFNUUik6CisgICAgczEgPSBTVFIoIkFCIiAqIDEwMDApCisgICAgczIgPSBTVFIoIkJDIikKKyAgICBzMV9maW5kID0gczEuZmluZAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9maW5kKHMyKQorCitAYmVuY2goJygiQUIiKjEwMDApLmZpbmQoIkNBIiknLCAibm8gbWF0Y2gsIHR3byBjaGFyYWN0ZXJzIiwgMTAwMCkKK2RlZiBmaW5kX3Rlc3Rfbm9fbWF0Y2hfdHdvX2NoYXJhY3Rlcl9iaXMoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQ0EiKQorICAgIHMxX2ZpbmQgPSBzMS5maW5kCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX2ZpbmQoczIpCisKK0BiZW5jaCgnKCJBQiIqMzAwKyJDIikuZmluZCgiQkMiKScsICJsYXRlIG1hdGNoLCB0d28gY2hhcmFjdGVycyIsIDEwMDApCitkZWYgZmluZF90ZXN0X3Nsb3dfbWF0Y2hfdHdvX2NoYXJhY3RlcnMoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMzAwKyJDIikKKyAgICBzMiA9IFNUUigiQkMiKQorICAgIHMxX2ZpbmQgPSBzMS5maW5kCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX2ZpbmQoczIpCisKK0BiZW5jaCgnKCJBQiIqMzAwKyJDQSIpLmZpbmQoIkNBIiknLCAibGF0ZSBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIGZpbmRfdGVzdF9zbG93X21hdGNoX3R3b19jaGFyYWN0ZXJzX2JpcyhTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAzMDArIkNBIikKKyAgICBzMiA9IFNUUigiQ0EiKQorICAgIHMxX2ZpbmQgPSBzMS5maW5kCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX2ZpbmQoczIpCisKK0BiZW5jaCgncz0iQUJDIiozMzsgKChzKyJEIikqNTAwK3MrIkUiKS5maW5kKHMrIkUiKScsCisgICAgICAgImxhdGUgbWF0Y2gsIDEwMCBjaGFyYWN0ZXJzIiwgMTAwKQorZGVmIGZpbmRfdGVzdF9zbG93X21hdGNoXzEwMF9jaGFyYWN0ZXJzKFNUUik6CisgICAgbSA9IFNUUigiQUJDIiozMykKKyAgICBkID0gU1RSKCJEIikKKyAgICBlID0gU1RSKCJFIikKKyAgICBzMSA9IChtK2QpKjUwMCArIG0rZQorICAgIHMyID0gbStlCisgICAgczFfZmluZCA9IHMxLmZpbmQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwOgorICAgICAgICBzMV9maW5kKHMyKQorCitAYmVuY2goJ3M9IkFCQyIqMzM7ICgocysiRCIpKjUwMCsiRSIrcykuZmluZCgiRSIrcyknLAorICAgICAgICJsYXRlIG1hdGNoLCAxMDAgY2hhcmFjdGVycyIsIDEwMCkKK2RlZiBmaW5kX3Rlc3Rfc2xvd19tYXRjaF8xMDBfY2hhcmFjdGVyc19iaXMoU1RSKToKKyAgICBtID0gU1RSKCJBQkMiKjMzKQorICAgIGQgPSBTVFIoIkQiKQorICAgIGUgPSBTVFIoIkUiKQorICAgIHMxID0gKG0rZCkqNTAwICsgZSttCisgICAgczIgPSBlK20KKyAgICBzMV9maW5kID0gczEuZmluZAorICAgIGZvciB4IGluIF9SQU5HRV8xMDA6CisgICAgICAgIHMxX2ZpbmQoczIpCisKKworIyMjIyBTYW1lIHRlc3RzIGZvciAncmZpbmQnCisKK0BiZW5jaCgnKCJBIioxMDAwKS5yZmluZCgiQSIpJywgImVhcmx5IG1hdGNoLCBzaW5nbGUgY2hhcmFjdGVyIiwgMTAwMCkKK2RlZiByZmluZF90ZXN0X3F1aWNrX21hdGNoX3NpbmdsZV9jaGFyYWN0ZXIoU1RSKToKKyAgICBzMSA9IFNUUigiQSIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJBIikKKyAgICBzMV9yZmluZCA9IHMxLnJmaW5kCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3JmaW5kKHMyKQorCitAYmVuY2goJygiQSIqMTAwMCkucmZpbmQoIkIiKScsICJubyBtYXRjaCwgc2luZ2xlIGNoYXJhY3RlciIsIDEwMDApCitkZWYgcmZpbmRfdGVzdF9ub19tYXRjaF9zaW5nbGVfY2hhcmFjdGVyKFNUUik6CisgICAgczEgPSBTVFIoIkEiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQiIpCisgICAgczFfcmZpbmQgPSBzMS5yZmluZAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9yZmluZChzMikKKworCitAYmVuY2goJygiQUIiKjEwMDApLnJmaW5kKCJBQiIpJywgImVhcmx5IG1hdGNoLCB0d28gY2hhcmFjdGVycyIsIDEwMDApCitkZWYgcmZpbmRfdGVzdF9xdWlja19tYXRjaF90d29fY2hhcmFjdGVycyhTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJBQiIpCisgICAgczFfcmZpbmQgPSBzMS5yZmluZAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9yZmluZChzMikKKworQGJlbmNoKCcoIkFCIioxMDAwKS5yZmluZCgiQkMiKScsICJubyBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIHJmaW5kX3Rlc3Rfbm9fbWF0Y2hfdHdvX2NoYXJhY3RlcihTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJCQyIpCisgICAgczFfcmZpbmQgPSBzMS5yZmluZAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9yZmluZChzMikKKworQGJlbmNoKCcoIkFCIioxMDAwKS5yZmluZCgiQ0EiKScsICJubyBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIHJmaW5kX3Rlc3Rfbm9fbWF0Y2hfdHdvX2NoYXJhY3Rlcl9iaXMoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQ0EiKQorICAgIHMxX3JmaW5kID0gczEucmZpbmQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfcmZpbmQoczIpCisKK0BiZW5jaCgnKCJDIisiQUIiKjMwMCkucmZpbmQoIkNBIiknLCAibGF0ZSBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIHJmaW5kX3Rlc3Rfc2xvd19tYXRjaF90d29fY2hhcmFjdGVycyhTVFIpOgorICAgIHMxID0gU1RSKCJDIiArICJBQiIgKiAzMDApCisgICAgczIgPSBTVFIoIkNBIikKKyAgICBzMV9yZmluZCA9IHMxLnJmaW5kCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3JmaW5kKHMyKQorCitAYmVuY2goJygiQkMiKyJBQiIqMzAwKS5yZmluZCgiQkMiKScsICJsYXRlIG1hdGNoLCB0d28gY2hhcmFjdGVycyIsIDEwMDApCitkZWYgcmZpbmRfdGVzdF9zbG93X21hdGNoX3R3b19jaGFyYWN0ZXJzX2JpcyhTVFIpOgorICAgIHMxID0gU1RSKCJCQyIgKyAiQUIiICogMzAwKQorICAgIHMyID0gU1RSKCJCQyIpCisgICAgczFfcmZpbmQgPSBzMS5yZmluZAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9yZmluZChzMikKKworQGJlbmNoKCdzPSJBQkMiKjMzOyAoIkUiK3MrKCJEIitzKSo1MDApLnJmaW5kKCJFIitzKScsCisgICAgICAgImxhdGUgbWF0Y2gsIDEwMCBjaGFyYWN0ZXJzIiwgMTAwKQorZGVmIHJmaW5kX3Rlc3Rfc2xvd19tYXRjaF8xMDBfY2hhcmFjdGVycyhTVFIpOgorICAgIG0gPSBTVFIoIkFCQyIqMzMpCisgICAgZCA9IFNUUigiRCIpCisgICAgZSA9IFNUUigiRSIpCisgICAgczEgPSBlK20gKyAoZCttKSo1MDAKKyAgICBzMiA9IGUrbQorICAgIHMxX3JmaW5kID0gczEucmZpbmQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwOgorICAgICAgICBzMV9yZmluZChzMikKKworQGJlbmNoKCdzPSJBQkMiKjMzOyAocysiRSIrKCJEIitzKSo1MDApLnJmaW5kKHMrIkUiKScsCisgICAgICAgImxhdGUgbWF0Y2gsIDEwMCBjaGFyYWN0ZXJzIiwgMTAwKQorZGVmIHJmaW5kX3Rlc3Rfc2xvd19tYXRjaF8xMDBfY2hhcmFjdGVyc19iaXMoU1RSKToKKyAgICBtID0gU1RSKCJBQkMiKjMzKQorICAgIGQgPSBTVFIoIkQiKQorICAgIGUgPSBTVFIoIkUiKQorICAgIHMxID0gbStlICsgKGQrbSkqNTAwCisgICAgczIgPSBtK2UKKyAgICBzMV9yZmluZCA9IHMxLnJmaW5kCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDoKKyAgICAgICAgczFfcmZpbmQoczIpCisKKworIyMjIyBOb3cgd2l0aCBpbmRleC4KKyMgU2tpcCB0aGUgb25lcyB3aGljaCBmYWlsIGJlY2F1c2UgdGhhdCB3b3VsZCBpbmNsdWRlIGV4Y2VwdGlvbiBvdmVyaGVhZC4KKworQGJlbmNoKCcoIkEiKjEwMDApLmluZGV4KCJBIiknLCAiZWFybHkgbWF0Y2gsIHNpbmdsZSBjaGFyYWN0ZXIiLCAxMDAwKQorZGVmIGluZGV4X3Rlc3RfcXVpY2tfbWF0Y2hfc2luZ2xlX2NoYXJhY3RlcihTVFIpOgorICAgIHMxID0gU1RSKCJBIiAqIDEwMDApCisgICAgczIgPSBTVFIoIkEiKQorICAgIHMxX2luZGV4ID0gczEuaW5kZXgKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfaW5kZXgoczIpCisKK0BiZW5jaCgnKCJBQiIqMTAwMCkuaW5kZXgoIkFCIiknLCAiZWFybHkgbWF0Y2gsIHR3byBjaGFyYWN0ZXJzIiwgMTAwMCkKK2RlZiBpbmRleF90ZXN0X3F1aWNrX21hdGNoX3R3b19jaGFyYWN0ZXJzKFNUUik6CisgICAgczEgPSBTVFIoIkFCIiAqIDEwMDApCisgICAgczIgPSBTVFIoIkFCIikKKyAgICBzMV9pbmRleCA9IHMxLmluZGV4CisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX2luZGV4KHMyKQorCitAYmVuY2goJygiQUIiKjMwMCsiQyIpLmluZGV4KCJCQyIpJywgImxhdGUgbWF0Y2gsIHR3byBjaGFyYWN0ZXJzIiwgMTAwMCkKK2RlZiBpbmRleF90ZXN0X3Nsb3dfbWF0Y2hfdHdvX2NoYXJhY3RlcnMoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMzAwKyJDIikKKyAgICBzMiA9IFNUUigiQkMiKQorICAgIHMxX2luZGV4ID0gczEuaW5kZXgKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfaW5kZXgoczIpCisKK0BiZW5jaCgncz0iQUJDIiozMzsgKChzKyJEIikqNTAwK3MrIkUiKS5pbmRleChzKyJFIiknLAorICAgICAgICJsYXRlIG1hdGNoLCAxMDAgY2hhcmFjdGVycyIsIDEwMCkKK2RlZiBpbmRleF90ZXN0X3Nsb3dfbWF0Y2hfMTAwX2NoYXJhY3RlcnMoU1RSKToKKyAgICBtID0gU1RSKCJBQkMiKjMzKQorICAgIGQgPSBTVFIoIkQiKQorICAgIGUgPSBTVFIoIkUiKQorICAgIHMxID0gKG0rZCkqNTAwICsgbStlCisgICAgczIgPSBtK2UKKyAgICBzMV9pbmRleCA9IHMxLmluZGV4CisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDoKKyAgICAgICAgczFfaW5kZXgoczIpCisKKworIyMjIyBTYW1lIGZvciByaW5kZXgKKworQGJlbmNoKCcoIkEiKjEwMDApLnJpbmRleCgiQSIpJywgImVhcmx5IG1hdGNoLCBzaW5nbGUgY2hhcmFjdGVyIiwgMTAwMCkKK2RlZiByaW5kZXhfdGVzdF9xdWlja19tYXRjaF9zaW5nbGVfY2hhcmFjdGVyKFNUUik6CisgICAgczEgPSBTVFIoIkEiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQSIpCisgICAgczFfcmluZGV4ID0gczEucmluZGV4CisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3JpbmRleChzMikKKworQGJlbmNoKCcoIkFCIioxMDAwKS5yaW5kZXgoIkFCIiknLCAiZWFybHkgbWF0Y2gsIHR3byBjaGFyYWN0ZXJzIiwgMTAwMCkKK2RlZiByaW5kZXhfdGVzdF9xdWlja19tYXRjaF90d29fY2hhcmFjdGVycyhTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJBQiIpCisgICAgczFfcmluZGV4ID0gczEucmluZGV4CisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3JpbmRleChzMikKKworQGJlbmNoKCcoIkMiKyJBQiIqMzAwKS5yaW5kZXgoIkNBIiknLCAibGF0ZSBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIHJpbmRleF90ZXN0X3Nsb3dfbWF0Y2hfdHdvX2NoYXJhY3RlcnMoU1RSKToKKyAgICBzMSA9IFNUUigiQyIgKyAiQUIiICogMzAwKQorICAgIHMyID0gU1RSKCJDQSIpCisgICAgczFfcmluZGV4ID0gczEucmluZGV4CisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3JpbmRleChzMikKKworQGJlbmNoKCdzPSJBQkMiKjMzOyAoIkUiK3MrKCJEIitzKSo1MDApLnJpbmRleCgiRSIrcyknLAorICAgICAgICJsYXRlIG1hdGNoLCAxMDAgY2hhcmFjdGVycyIsIDEwMCkKK2RlZiByaW5kZXhfdGVzdF9zbG93X21hdGNoXzEwMF9jaGFyYWN0ZXJzKFNUUik6CisgICAgbSA9IFNUUigiQUJDIiozMykKKyAgICBkID0gU1RSKCJEIikKKyAgICBlID0gU1RSKCJFIikKKyAgICBzMSA9IGUgKyBtICsgKGQrbSkqNTAwCisgICAgczIgPSBlICsgbQorICAgIHMxX3JpbmRleCA9IHMxLnJpbmRleAorICAgIGZvciB4IGluIF9SQU5HRV8xMDA6CisgICAgICAgIHMxX3JpbmRleChzMikKKworCisjIyMjIFNhbWUgZm9yIHBhcnRpdGlvbgorCitAYmVuY2goJygiQSIqMTAwMCkucGFydGl0aW9uKCJBIiknLCAiZWFybHkgbWF0Y2gsIHNpbmdsZSBjaGFyYWN0ZXIiLCAxMDAwKQorZGVmIHBhcnRpdGlvbl90ZXN0X3F1aWNrX21hdGNoX3NpbmdsZV9jaGFyYWN0ZXIoU1RSKToKKyAgICBzMSA9IFNUUigiQSIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJBIikKKyAgICBzMV9wYXJ0aXRpb24gPSBzMS5wYXJ0aXRpb24KKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfcGFydGl0aW9uKHMyKQorCitAYmVuY2goJygiQSIqMTAwMCkucGFydGl0aW9uKCJCIiknLCAibm8gbWF0Y2gsIHNpbmdsZSBjaGFyYWN0ZXIiLCAxMDAwKQorZGVmIHBhcnRpdGlvbl90ZXN0X25vX21hdGNoX3NpbmdsZV9jaGFyYWN0ZXIoU1RSKToKKyAgICBzMSA9IFNUUigiQSIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJCIikKKyAgICBzMV9wYXJ0aXRpb24gPSBzMS5wYXJ0aXRpb24KKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfcGFydGl0aW9uKHMyKQorCisKK0BiZW5jaCgnKCJBQiIqMTAwMCkucGFydGl0aW9uKCJBQiIpJywgImVhcmx5IG1hdGNoLCB0d28gY2hhcmFjdGVycyIsIDEwMDApCitkZWYgcGFydGl0aW9uX3Rlc3RfcXVpY2tfbWF0Y2hfdHdvX2NoYXJhY3RlcnMoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQUIiKQorICAgIHMxX3BhcnRpdGlvbiA9IHMxLnBhcnRpdGlvbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9wYXJ0aXRpb24oczIpCisKK0BiZW5jaCgnKCJBQiIqMTAwMCkucGFydGl0aW9uKCJCQyIpJywgIm5vIG1hdGNoLCB0d28gY2hhcmFjdGVycyIsIDEwMDApCitkZWYgcGFydGl0aW9uX3Rlc3Rfbm9fbWF0Y2hfdHdvX2NoYXJhY3RlcihTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJCQyIpCisgICAgczFfcGFydGl0aW9uID0gczEucGFydGl0aW9uCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3BhcnRpdGlvbihzMikKKworQGJlbmNoKCcoIkFCIiozMDArIkMiKS5wYXJ0aXRpb24oIkJDIiknLCAibGF0ZSBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIHBhcnRpdGlvbl90ZXN0X3Nsb3dfbWF0Y2hfdHdvX2NoYXJhY3RlcnMoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMzAwKyJDIikKKyAgICBzMiA9IFNUUigiQkMiKQorICAgIHMxX3BhcnRpdGlvbiA9IHMxLnBhcnRpdGlvbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9wYXJ0aXRpb24oczIpCisKK0BiZW5jaCgncz0iQUJDIiozMzsgKChzKyJEIikqNTAwK3MrIkUiKS5wYXJ0aXRpb24ocysiRSIpJywKKyAgICAgICAibGF0ZSBtYXRjaCwgMTAwIGNoYXJhY3RlcnMiLCAxMDApCitkZWYgcGFydGl0aW9uX3Rlc3Rfc2xvd19tYXRjaF8xMDBfY2hhcmFjdGVycyhTVFIpOgorICAgIG0gPSBTVFIoIkFCQyIqMzMpCisgICAgZCA9IFNUUigiRCIpCisgICAgZSA9IFNUUigiRSIpCisgICAgczEgPSAobStkKSo1MDAgKyBtK2UKKyAgICBzMiA9IG0rZQorICAgIHMxX3BhcnRpdGlvbiA9IHMxLnBhcnRpdGlvbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDA6CisgICAgICAgIHMxX3BhcnRpdGlvbihzMikKKworCisjIyMjIFNhbWUgZm9yIHJwYXJ0aXRpb24KKworQGJlbmNoKCcoIkEiKjEwMDApLnJwYXJ0aXRpb24oIkEiKScsICJlYXJseSBtYXRjaCwgc2luZ2xlIGNoYXJhY3RlciIsIDEwMDApCitkZWYgcnBhcnRpdGlvbl90ZXN0X3F1aWNrX21hdGNoX3NpbmdsZV9jaGFyYWN0ZXIoU1RSKToKKyAgICBzMSA9IFNUUigiQSIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJBIikKKyAgICBzMV9ycGFydGl0aW9uID0gczEucnBhcnRpdGlvbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9ycGFydGl0aW9uKHMyKQorCitAYmVuY2goJygiQSIqMTAwMCkucnBhcnRpdGlvbigiQiIpJywgIm5vIG1hdGNoLCBzaW5nbGUgY2hhcmFjdGVyIiwgMTAwMCkKK2RlZiBycGFydGl0aW9uX3Rlc3Rfbm9fbWF0Y2hfc2luZ2xlX2NoYXJhY3RlcihTVFIpOgorICAgIHMxID0gU1RSKCJBIiAqIDEwMDApCisgICAgczIgPSBTVFIoIkIiKQorICAgIHMxX3JwYXJ0aXRpb24gPSBzMS5ycGFydGl0aW9uCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3JwYXJ0aXRpb24oczIpCisKKworQGJlbmNoKCcoIkFCIioxMDAwKS5ycGFydGl0aW9uKCJBQiIpJywgImVhcmx5IG1hdGNoLCB0d28gY2hhcmFjdGVycyIsIDEwMDApCitkZWYgcnBhcnRpdGlvbl90ZXN0X3F1aWNrX21hdGNoX3R3b19jaGFyYWN0ZXJzKFNUUik6CisgICAgczEgPSBTVFIoIkFCIiAqIDEwMDApCisgICAgczIgPSBTVFIoIkFCIikKKyAgICBzMV9ycGFydGl0aW9uID0gczEucnBhcnRpdGlvbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9ycGFydGl0aW9uKHMyKQorCitAYmVuY2goJygiQUIiKjEwMDApLnJwYXJ0aXRpb24oIkJDIiknLCAibm8gbWF0Y2gsIHR3byBjaGFyYWN0ZXJzIiwgMTAwMCkKK2RlZiBycGFydGl0aW9uX3Rlc3Rfbm9fbWF0Y2hfdHdvX2NoYXJhY3RlcihTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJCQyIpCisgICAgczFfcnBhcnRpdGlvbiA9IHMxLnJwYXJ0aXRpb24KKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfcnBhcnRpdGlvbihzMikKKworQGJlbmNoKCcoIkMiKyJBQiIqMzAwKS5ycGFydGl0aW9uKCJDQSIpJywgImxhdGUgbWF0Y2gsIHR3byBjaGFyYWN0ZXJzIiwgMTAwMCkKK2RlZiBycGFydGl0aW9uX3Rlc3Rfc2xvd19tYXRjaF90d29fY2hhcmFjdGVycyhTVFIpOgorICAgIHMxID0gU1RSKCJDIiArICJBQiIgKiAzMDApCisgICAgczIgPSBTVFIoIkNBIikKKyAgICBzMV9ycGFydGl0aW9uID0gczEucnBhcnRpdGlvbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9ycGFydGl0aW9uKHMyKQorCitAYmVuY2goJ3M9IkFCQyIqMzM7ICgiRSIrcysoIkQiK3MpKjUwMCkucnBhcnRpdGlvbigiRSIrcyknLAorICAgICAgICJsYXRlIG1hdGNoLCAxMDAgY2hhcmFjdGVycyIsIDEwMCkKK2RlZiBycGFydGl0aW9uX3Rlc3Rfc2xvd19tYXRjaF8xMDBfY2hhcmFjdGVycyhTVFIpOgorICAgIG0gPSBTVFIoIkFCQyIqMzMpCisgICAgZCA9IFNUUigiRCIpCisgICAgZSA9IFNUUigiRSIpCisgICAgczEgPSBlICsgbSArIChkK20pKjUwMAorICAgIHMyID0gZSArIG0KKyAgICBzMV9ycGFydGl0aW9uID0gczEucnBhcnRpdGlvbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDA6CisgICAgICAgIHMxX3JwYXJ0aXRpb24oczIpCisKKworIyMjIyBTYW1lIGZvciBzcGxpdChzLCAxKQorCitAYmVuY2goJygiQSIqMTAwMCkuc3BsaXQoIkEiLCAxKScsICJlYXJseSBtYXRjaCwgc2luZ2xlIGNoYXJhY3RlciIsIDEwMDApCitkZWYgc3BsaXRfdGVzdF9xdWlja19tYXRjaF9zaW5nbGVfY2hhcmFjdGVyKFNUUik6CisgICAgczEgPSBTVFIoIkEiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQSIpCisgICAgczFfc3BsaXQgPSBzMS5zcGxpdAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9zcGxpdChzMiwgMSkKKworQGJlbmNoKCcoIkEiKjEwMDApLnNwbGl0KCJCIiwgMSknLCAibm8gbWF0Y2gsIHNpbmdsZSBjaGFyYWN0ZXIiLCAxMDAwKQorZGVmIHNwbGl0X3Rlc3Rfbm9fbWF0Y2hfc2luZ2xlX2NoYXJhY3RlcihTVFIpOgorICAgIHMxID0gU1RSKCJBIiAqIDEwMDApCisgICAgczIgPSBTVFIoIkIiKQorICAgIHMxX3NwbGl0ID0gczEuc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfc3BsaXQoczIsIDEpCisKKworQGJlbmNoKCcoIkFCIioxMDAwKS5zcGxpdCgiQUIiLCAxKScsICJlYXJseSBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIHNwbGl0X3Rlc3RfcXVpY2tfbWF0Y2hfdHdvX2NoYXJhY3RlcnMoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQUIiKQorICAgIHMxX3NwbGl0ID0gczEuc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfc3BsaXQoczIsIDEpCisKK0BiZW5jaCgnKCJBQiIqMTAwMCkuc3BsaXQoIkJDIiwgMSknLCAibm8gbWF0Y2gsIHR3byBjaGFyYWN0ZXJzIiwgMTAwMCkKK2RlZiBzcGxpdF90ZXN0X25vX21hdGNoX3R3b19jaGFyYWN0ZXIoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQkMiKQorICAgIHMxX3NwbGl0ID0gczEuc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfc3BsaXQoczIsIDEpCisKK0BiZW5jaCgnKCJBQiIqMzAwKyJDIikuc3BsaXQoIkJDIiwgMSknLCAibGF0ZSBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIHNwbGl0X3Rlc3Rfc2xvd19tYXRjaF90d29fY2hhcmFjdGVycyhTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAzMDArIkMiKQorICAgIHMyID0gU1RSKCJCQyIpCisgICAgczFfc3BsaXQgPSBzMS5zcGxpdAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9zcGxpdChzMiwgMSkKKworQGJlbmNoKCdzPSJBQkMiKjMzOyAoKHMrIkQiKSo1MDArcysiRSIpLnNwbGl0KHMrIkUiLCAxKScsCisgICAgICAgImxhdGUgbWF0Y2gsIDEwMCBjaGFyYWN0ZXJzIiwgMTAwKQorZGVmIHNwbGl0X3Rlc3Rfc2xvd19tYXRjaF8xMDBfY2hhcmFjdGVycyhTVFIpOgorICAgIG0gPSBTVFIoIkFCQyIqMzMpCisgICAgZCA9IFNUUigiRCIpCisgICAgZSA9IFNUUigiRSIpCisgICAgczEgPSAobStkKSo1MDAgKyBtK2UKKyAgICBzMiA9IG0rZQorICAgIHMxX3NwbGl0ID0gczEuc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwOgorICAgICAgICBzMV9zcGxpdChzMiwgMSkKKworCisjIyMjIFNhbWUgZm9yIHJzcGxpdChzLCAxKQorCitAYmVuY2goJygiQSIqMTAwMCkucnNwbGl0KCJBIiwgMSknLCAiZWFybHkgbWF0Y2gsIHNpbmdsZSBjaGFyYWN0ZXIiLCAxMDAwKQorZGVmIHJzcGxpdF90ZXN0X3F1aWNrX21hdGNoX3NpbmdsZV9jaGFyYWN0ZXIoU1RSKToKKyAgICBzMSA9IFNUUigiQSIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJBIikKKyAgICBzMV9yc3BsaXQgPSBzMS5yc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfcnNwbGl0KHMyLCAxKQorCitAYmVuY2goJygiQSIqMTAwMCkucnNwbGl0KCJCIiwgMSknLCAibm8gbWF0Y2gsIHNpbmdsZSBjaGFyYWN0ZXIiLCAxMDAwKQorZGVmIHJzcGxpdF90ZXN0X25vX21hdGNoX3NpbmdsZV9jaGFyYWN0ZXIoU1RSKToKKyAgICBzMSA9IFNUUigiQSIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJCIikKKyAgICBzMV9yc3BsaXQgPSBzMS5yc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfcnNwbGl0KHMyLCAxKQorCisKK0BiZW5jaCgnKCJBQiIqMTAwMCkucnNwbGl0KCJBQiIsIDEpJywgImVhcmx5IG1hdGNoLCB0d28gY2hhcmFjdGVycyIsIDEwMDApCitkZWYgcnNwbGl0X3Rlc3RfcXVpY2tfbWF0Y2hfdHdvX2NoYXJhY3RlcnMoU1RSKToKKyAgICBzMSA9IFNUUigiQUIiICogMTAwMCkKKyAgICBzMiA9IFNUUigiQUIiKQorICAgIHMxX3JzcGxpdCA9IHMxLnJzcGxpdAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9yc3BsaXQoczIsIDEpCisKK0BiZW5jaCgnKCJBQiIqMTAwMCkucnNwbGl0KCJCQyIsIDEpJywgIm5vIG1hdGNoLCB0d28gY2hhcmFjdGVycyIsIDEwMDApCitkZWYgcnNwbGl0X3Rlc3Rfbm9fbWF0Y2hfdHdvX2NoYXJhY3RlcihTVFIpOgorICAgIHMxID0gU1RSKCJBQiIgKiAxMDAwKQorICAgIHMyID0gU1RSKCJCQyIpCisgICAgczFfcnNwbGl0ID0gczEucnNwbGl0CisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3JzcGxpdChzMiwgMSkKKworQGJlbmNoKCcoIkMiKyJBQiIqMzAwKS5yc3BsaXQoIkNBIiwgMSknLCAibGF0ZSBtYXRjaCwgdHdvIGNoYXJhY3RlcnMiLCAxMDAwKQorZGVmIHJzcGxpdF90ZXN0X3Nsb3dfbWF0Y2hfdHdvX2NoYXJhY3RlcnMoU1RSKToKKyAgICBzMSA9IFNUUigiQyIgKyAiQUIiICogMzAwKQorICAgIHMyID0gU1RSKCJDQSIpCisgICAgczFfcnNwbGl0ID0gczEucnNwbGl0CisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3JzcGxpdChzMiwgMSkKKworQGJlbmNoKCdzPSJBQkMiKjMzOyAoIkUiK3MrKCJEIitzKSo1MDApLnJzcGxpdCgiRSIrcywgMSknLAorICAgICAgICJsYXRlIG1hdGNoLCAxMDAgY2hhcmFjdGVycyIsIDEwMCkKK2RlZiByc3BsaXRfdGVzdF9zbG93X21hdGNoXzEwMF9jaGFyYWN0ZXJzKFNUUik6CisgICAgbSA9IFNUUigiQUJDIiozMykKKyAgICBkID0gU1RSKCJEIikKKyAgICBlID0gU1RSKCJFIikKKyAgICBzMSA9IGUgKyBtICsgKGQrbSkqNTAwCisgICAgczIgPSBlICsgbQorICAgIHMxX3JzcGxpdCA9IHMxLnJzcGxpdAorICAgIGZvciB4IGluIF9SQU5HRV8xMDA6CisgICAgICAgIHMxX3JzcGxpdChzMiwgMSkKKworCisjIyMjIEJlbmNobWFyayB0aGUgb3BlcmF0b3ItYmFzZWQgbWV0aG9kcworCitAYmVuY2goJyJBIioxMCcsICJyZXBlYXQgMSBjaGFyYWN0ZXIgMTAgdGltZXMiLCAxMDAwKQorZGVmIHJlcGVhdF9zaW5nbGVfMTBfdGltZXMoU1RSKToKKyAgICBzID0gU1RSKCJBIikKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgcyAqIDEwCisKK0BiZW5jaCgnIkEiKjEwMDAnLCAicmVwZWF0IDEgY2hhcmFjdGVyIDEwMDAgdGltZXMiLCAxMDAwKQorZGVmIHJlcGVhdF9zaW5nbGVfMTAwMF90aW1lcyhTVFIpOgorICAgIHMgPSBTVFIoIkEiKQorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzICogMTAwMAorCitAYmVuY2goJyJBQkNERSIqMTAnLCAicmVwZWF0IDUgY2hhcmFjdGVycyAxMCB0aW1lcyIsIDEwMDApCitkZWYgcmVwZWF0XzVfMTBfdGltZXMoU1RSKToKKyAgICBzID0gU1RSKCJBQkNERSIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMgKiAxMAorCitAYmVuY2goJyJBQkNERSIqMTAwMCcsICJyZXBlYXQgNSBjaGFyYWN0ZXJzIDEwMDAgdGltZXMiLCAxMDAwKQorZGVmIHJlcGVhdF81XzEwMDBfdGltZXMoU1RSKToKKyAgICBzID0gU1RSKCJBQkNERSIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMgKiAxMDAwCisKKyMgKyBmb3IgY29uY2F0CisKK0BiZW5jaCgnIkFuZHJldyIrIkRhbGtlIicsICJjb25jYXQgdHdvIHN0cmluZ3MiLCAxMDAwKQorZGVmIGNvbmNhdF90d29fc3RyaW5ncyhTVFIpOgorICAgIHMxID0gU1RSKCJBbmRyZXciKQorICAgIHMyID0gU1RSKCJEYWxrZSIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxK3MyCisKK0BiZW5jaCgnczErczIrczMrczQrLi4uK3MyMCcsICJjb25jYXQgMjAgc3RyaW5ncyBvZiB3b3JkcyBsZW5ndGggNCB0byAxNSIsCisgICAgICAgMTAwMCkKK2RlZiBjb25jYXRfbWFueV9zdHJpbmdzKFNUUik6CisgICAgczE9U1RSKCdUSVhTR1lOUkVEQ1ZCSEonKQorICAgIHMyPVNUUignUFVNVExYQlpWRE8nKQorICAgIHMzPVNUUignRlZaTkonKQorICAgIHM0PVNUUignT0dEWFVXJykKKyAgICBzNT1TVFIoJ1dFSU1STkNPWVZHSEtCJykKKyAgICBzNj1TVFIoJ0ZDUVROTVhQVVpIJykKKyAgICBzNz1TVFIoJ1RJQ1pKWVJMQk5WVUVBSycpCisgICAgczg9U1RSKCdSRVlCJykKKyAgICBzOT1TVFIoJ1BXVU9RJykKKyAgICBzMTA9U1RSKCdFUUhDTUtCUycpCisgICAgczExPVNUUignQUVWREZPSCcpCisgICAgczEyPVNUUignSUZIVkQnKQorICAgIHMxMz1TVFIoJ0pHVENOTFhXT0hRJykKKyAgICBzMTQ9U1RSKCdJVFNLRVBZTFJPWkFXWEYnKQorICAgIHMxNT1TVFIoJ1RIRUsnKQorICAgIHMxNj1TVFIoJ0dIUFpGQlVZQ0tNTkpJVCcpCisgICAgczE3PVNUUignSk1VWicpCisgICAgczE4PVNUUignV0xaUU1UQicpCisgICAgczE5PVNUUignS1BBRENCVycpCisgICAgczIwPVNUUignVE5KSFpRQUdCVScpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIChzMSArIHMyKyBzMysgczQrIHM1KyBzNisgczcrIHM4KyBzOStzMTArCisgICAgICAgICBzMTErczEyK3MxMytzMTQrczE1K3MxNitzMTcrczE4K3MxOStzMjApCisKKworIyMjIyBCZW5jaG1hcmsgam9pbgorCitkZWYgZ2V0X2J5dGVzX3lpZWxkaW5nX3NlcShTVFIsIGFyZyk6CisgICAgaWYgU1RSIGlzIEJZVEVTIGFuZCBzeXMudmVyc2lvbl9pbmZvID49ICgzLCk6CisgICAgICAgIHJhaXNlIFVuc3VwcG9ydGVkVHlwZQorICAgIHJldHVybiBTVFIoYXJnKQorCitAYmVuY2goJyJBIi5qb2luKCIiKScsCisgICAgICAgImpvaW4gZW1wdHkgc3RyaW5nLCB3aXRoIDEgY2hhcmFjdGVyIHNlcCIsIDEwMCkKK2RlZiBqb2luX2VtcHR5X3NpbmdsZShTVFIpOgorICAgIHNlcCA9IFNUUigiQSIpCisgICAgczIgPSBnZXRfYnl0ZXNfeWllbGRpbmdfc2VxKFNUUiwgIiIpCisgICAgc2VwX2pvaW4gPSBzZXAuam9pbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDA6CisgICAgICAgIHNlcF9qb2luKHMyKQorCitAYmVuY2goJyJBQkNERSIuam9pbigiIiknLAorICAgICAgICJqb2luIGVtcHR5IHN0cmluZywgd2l0aCA1IGNoYXJhY3RlciBzZXAiLCAxMDApCitkZWYgam9pbl9lbXB0eV81KFNUUik6CisgICAgc2VwID0gU1RSKCJBQkNERSIpCisgICAgczIgPSBnZXRfYnl0ZXNfeWllbGRpbmdfc2VxKFNUUiwgIiIpCisgICAgc2VwX2pvaW4gPSBzZXAuam9pbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDA6CisgICAgICAgIHNlcF9qb2luKHMyKQorCitAYmVuY2goJyJBIi5qb2luKCJBQkMuLloiKScsCisgICAgICAgImpvaW4gc3RyaW5nIHdpdGggMjYgY2hhcmFjdGVycywgd2l0aCAxIGNoYXJhY3RlciBzZXAiLCAxMDAwKQorZGVmIGpvaW5fYWxwaGFiZXRfc2luZ2xlKFNUUik6CisgICAgc2VwID0gU1RSKCJBIikKKyAgICBzMiA9IGdldF9ieXRlc195aWVsZGluZ19zZXEoU1RSLCAiQUJDREVGR0hJSktMTW5PUFFSU1RVVldYWVoiKQorICAgIHNlcF9qb2luID0gc2VwLmpvaW4KKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc2VwX2pvaW4oczIpCisKK0BiZW5jaCgnIkFCQ0RFIi5qb2luKCJBQkMuLloiKScsCisgICAgICAgImpvaW4gc3RyaW5nIHdpdGggMjYgY2hhcmFjdGVycywgd2l0aCA1IGNoYXJhY3RlciBzZXAiLCAxMDAwKQorZGVmIGpvaW5fYWxwaGFiZXRfNShTVFIpOgorICAgIHNlcCA9IFNUUigiQUJDREUiKQorICAgIHMyID0gZ2V0X2J5dGVzX3lpZWxkaW5nX3NlcShTVFIsICJBQkNERUZHSElKS0xNbk9QUVJTVFVWV1hZWiIpCisgICAgc2VwX2pvaW4gPSBzZXAuam9pbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzZXBfam9pbihzMikKKworQGJlbmNoKCciQSIuam9pbihsaXN0KCJBQkMuLloiKSknLAorICAgICAgICJqb2luIGxpc3Qgb2YgMjYgY2hhcmFjdGVycywgd2l0aCAxIGNoYXJhY3RlciBzZXAiLCAxMDAwKQorZGVmIGpvaW5fYWxwaGFiZXRfbGlzdF9zaW5nbGUoU1RSKToKKyAgICBzZXAgPSBTVFIoIkEiKQorICAgIHMyID0gW1NUUih4KSBmb3IgeCBpbiAiQUJDREVGR0hJSktMTW5PUFFSU1RVVldYWVoiXQorICAgIHNlcF9qb2luID0gc2VwLmpvaW4KKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc2VwX2pvaW4oczIpCisKK0BiZW5jaCgnIkFCQ0RFIi5qb2luKGxpc3QoIkFCQy4uWiIpKScsCisgICAgICAgImpvaW4gbGlzdCBvZiAyNiBjaGFyYWN0ZXJzLCB3aXRoIDUgY2hhcmFjdGVyIHNlcCIsIDEwMDApCitkZWYgam9pbl9hbHBoYWJldF9saXN0X2ZpdmUoU1RSKToKKyAgICBzZXAgPSBTVFIoIkFCQ0RFIikKKyAgICBzMiA9IFtTVFIoeCkgZm9yIHggaW4gIkFCQ0RFRkdISUpLTE1uT1BRUlNUVVZXWFlaIl0KKyAgICBzZXBfam9pbiA9IHNlcC5qb2luCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNlcF9qb2luKHMyKQorCitAYmVuY2goJyJBIi5qb2luKFsiQm9iIl0qMTAwKSknLAorICAgICAgICJqb2luIGxpc3Qgb2YgMTAwIHdvcmRzLCB3aXRoIDEgY2hhcmFjdGVyIHNlcCIsIDEwMDApCitkZWYgam9pbl8xMDBfd29yZHNfc2luZ2xlKFNUUik6CisgICAgc2VwID0gU1RSKCJBIikKKyAgICBzMiA9IFtTVFIoIkJvYiIpXSoxMDAKKyAgICBzZXBfam9pbiA9IHNlcC5qb2luCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNlcF9qb2luKHMyKQorCitAYmVuY2goJyJBQkNERSIuam9pbihbIkJvYiJdKjEwMCkpJywKKyAgICAgICAiam9pbiBsaXN0IG9mIDEwMCB3b3Jkcywgd2l0aCA1IGNoYXJhY3RlciBzZXAiLCAxMDAwKQorZGVmIGpvaW5fMTAwX3dvcmRzXzUoU1RSKToKKyAgICBzZXAgPSBTVFIoIkFCQ0RFIikKKyAgICBzMiA9IFtTVFIoIkJvYiIpXSoxMDAKKyAgICBzZXBfam9pbiA9IHNlcC5qb2luCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNlcF9qb2luKHMyKQorCisjIyMjIHNwbGl0IHRlc3RzCisKK0BiZW5jaCgnKCJIZXJlIGFyZSBzb21lIHdvcmRzLiAiKjIpLnNwbGl0KCknLCAic3BsaXQgd2hpdGVzcGFjZSAoc21hbGwpIiwgMTAwMCkKK2RlZiB3aGl0ZXNwYWNlX3NwbGl0KFNUUik6CisgICAgcyA9IFNUUigiSGVyZSBhcmUgc29tZSB3b3Jkcy4gIioyKQorICAgIHNfc3BsaXQgPSBzLnNwbGl0CisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNfc3BsaXQoKQorCitAYmVuY2goJygiSGVyZSBhcmUgc29tZSB3b3Jkcy4gIioyKS5yc3BsaXQoKScsICJzcGxpdCB3aGl0ZXNwYWNlIChzbWFsbCkiLCAxMDAwKQorZGVmIHdoaXRlc3BhY2VfcnNwbGl0KFNUUik6CisgICAgcyA9IFNUUigiSGVyZSBhcmUgc29tZSB3b3Jkcy4gIioyKQorICAgIHNfcnNwbGl0ID0gcy5yc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19yc3BsaXQoKQorCitAYmVuY2goJygiSGVyZSBhcmUgc29tZSB3b3Jkcy4gIioyKS5zcGxpdChOb25lLCAxKScsCisgICAgICAgInNwbGl0IDEgd2hpdGVzcGFjZSIsIDEwMDApCitkZWYgd2hpdGVzcGFjZV9zcGxpdF8xKFNUUik6CisgICAgcyA9IFNUUigiSGVyZSBhcmUgc29tZSB3b3Jkcy4gIioyKQorICAgIHNfc3BsaXQgPSBzLnNwbGl0CisgICAgTiA9IE5vbmUKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19zcGxpdChOLCAxKQorCitAYmVuY2goJygiSGVyZSBhcmUgc29tZSB3b3Jkcy4gIioyKS5yc3BsaXQoTm9uZSwgMSknLAorICAgICAgICJzcGxpdCAxIHdoaXRlc3BhY2UiLCAxMDAwKQorZGVmIHdoaXRlc3BhY2VfcnNwbGl0XzEoU1RSKToKKyAgICBzID0gU1RSKCJIZXJlIGFyZSBzb21lIHdvcmRzLiAiKjIpCisgICAgc19yc3BsaXQgPSBzLnJzcGxpdAorICAgIE4gPSBOb25lCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNfcnNwbGl0KE4sIDEpCisKK0BiZW5jaCgnKCJIZXJlIGFyZSBzb21lIHdvcmRzLiAiKjIpLnBhcnRpdGlvbigiICIpJywKKyAgICAgICAic3BsaXQgMSB3aGl0ZXNwYWNlIiwgMTAwMCkKK2RlZiB3aGl0ZXNwYWNlX3BhcnRpdGlvbihTVFIpOgorICAgIHNlcCA9IFNUUigiICIpCisgICAgcyA9IFNUUigiSGVyZSBhcmUgc29tZSB3b3Jkcy4gIioyKQorICAgIHNfcGFydGl0aW9uID0gcy5wYXJ0aXRpb24KKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19wYXJ0aXRpb24oc2VwKQorCitAYmVuY2goJygiSGVyZSBhcmUgc29tZSB3b3Jkcy4gIioyKS5ycGFydGl0aW9uKCIgIiknLAorICAgICAgICJzcGxpdCAxIHdoaXRlc3BhY2UiLCAxMDAwKQorZGVmIHdoaXRlc3BhY2VfcnBhcnRpdGlvbihTVFIpOgorICAgIHNlcCA9IFNUUigiICIpCisgICAgcyA9IFNUUigiSGVyZSBhcmUgc29tZSB3b3Jkcy4gIioyKQorICAgIHNfcnBhcnRpdGlvbiA9IHMucnBhcnRpdGlvbgorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzX3JwYXJ0aXRpb24oc2VwKQorCitodW1hbl90ZXh0ID0gIiIiXAorUHl0aG9uIGlzIGEgZHluYW1pYyBvYmplY3Qtb3JpZW50ZWQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgdGhhdCBjYW4gYmUKK3VzZWQgZm9yIG1hbnkga2luZHMgb2Ygc29mdHdhcmUgZGV2ZWxvcG1lbnQuIEl0IG9mZmVycyBzdHJvbmcgc3VwcG9ydAorZm9yIGludGVncmF0aW9uIHdpdGggb3RoZXIgbGFuZ3VhZ2VzIGFuZCB0b29scywgY29tZXMgd2l0aCBleHRlbnNpdmUKK3N0YW5kYXJkIGxpYnJhcmllcywgYW5kIGNhbiBiZSBsZWFybmVkIGluIGEgZmV3IGRheXMuIE1hbnkgUHl0aG9uCitwcm9ncmFtbWVycyByZXBvcnQgc3Vic3RhbnRpYWwgcHJvZHVjdGl2aXR5IGdhaW5zIGFuZCBmZWVsIHRoZSBsYW5ndWFnZQorZW5jb3VyYWdlcyB0aGUgZGV2ZWxvcG1lbnQgb2YgaGlnaGVyIHF1YWxpdHksIG1vcmUgbWFpbnRhaW5hYmxlIGNvZGUuCisKK1B5dGhvbiBydW5zIG9uIFdpbmRvd3MsIExpbnV4L1VuaXgsIE1hYyBPUyBYLCBPUy8yLCBBbWlnYSwgUGFsbQorSGFuZGhlbGRzLCBhbmQgTm9raWEgbW9iaWxlIHBob25lcy4gUHl0aG9uIGhhcyBhbHNvIGJlZW4gcG9ydGVkIHRvIHRoZQorSmF2YSBhbmQgLk5FVCB2aXJ0dWFsIG1hY2hpbmVzLgorCitQeXRob24gaXMgZGlzdHJpYnV0ZWQgdW5kZXIgYW4gT1NJLWFwcHJvdmVkIG9wZW4gc291cmNlIGxpY2Vuc2UgdGhhdAorbWFrZXMgaXQgZnJlZSB0byB1c2UsIGV2ZW4gZm9yIGNvbW1lcmNpYWwgcHJvZHVjdHMuCisiIiIqMjUKK2h1bWFuX3RleHRfYnl0ZXMgPSBieXRlc19mcm9tX3N0cihodW1hbl90ZXh0KQoraHVtYW5fdGV4dF91bmljb2RlID0gdW5pY29kZV9mcm9tX3N0cihodW1hbl90ZXh0KQorZGVmIF9nZXRfaHVtYW5fdGV4dChTVFIpOgorICAgIGlmIFNUUiBpcyBVTklDT0RFOgorICAgICAgICByZXR1cm4gaHVtYW5fdGV4dF91bmljb2RlCisgICAgaWYgU1RSIGlzIEJZVEVTOgorICAgICAgICByZXR1cm4gaHVtYW5fdGV4dF9ieXRlcworICAgIHJhaXNlIEFzc2VydGlvbkVycm9yCisKK0BiZW5jaCgnaHVtYW5fdGV4dC5zcGxpdCgpJywgInNwbGl0IHdoaXRlc3BhY2UgKGh1Z2UpIiwgMTApCitkZWYgd2hpdGVzcGFjZV9zcGxpdF9odWdlKFNUUik6CisgICAgcyA9IF9nZXRfaHVtYW5fdGV4dChTVFIpCisgICAgc19zcGxpdCA9IHMuc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTA6CisgICAgICAgIHNfc3BsaXQoKQorCitAYmVuY2goJ2h1bWFuX3RleHQucnNwbGl0KCknLCAic3BsaXQgd2hpdGVzcGFjZSAoaHVnZSkiLCAxMCkKK2RlZiB3aGl0ZXNwYWNlX3JzcGxpdF9odWdlKFNUUik6CisgICAgcyA9IF9nZXRfaHVtYW5fdGV4dChTVFIpCisgICAgc19yc3BsaXQgPSBzLnJzcGxpdAorICAgIGZvciB4IGluIF9SQU5HRV8xMDoKKyAgICAgICAgc19yc3BsaXQoKQorCisKKworQGJlbmNoKCcidGhpc1xcbmlzXFxuYVxcbnRlc3RcXG4iLnNwbGl0KCJcXG4iKScsICJzcGxpdCBuZXdsaW5lcyIsIDEwMDApCitkZWYgbmV3bGluZXNfc3BsaXQoU1RSKToKKyAgICBzID0gU1RSKCJ0aGlzXG5pc1xuYVxudGVzdFxuIikKKyAgICBzX3NwbGl0ID0gcy5zcGxpdAorICAgIG5sID0gU1RSKCJcbiIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNfc3BsaXQobmwpCisKKworQGJlbmNoKCcidGhpc1xcbmlzXFxuYVxcbnRlc3RcXG4iLnJzcGxpdCgiXFxuIiknLCAic3BsaXQgbmV3bGluZXMiLCAxMDAwKQorZGVmIG5ld2xpbmVzX3JzcGxpdChTVFIpOgorICAgIHMgPSBTVFIoInRoaXNcbmlzXG5hXG50ZXN0XG4iKQorICAgIHNfcnNwbGl0ID0gcy5yc3BsaXQKKyAgICBubCA9IFNUUigiXG4iKQorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzX3JzcGxpdChubCkKKworQGJlbmNoKCcidGhpc1xcbmlzXFxuYVxcbnRlc3RcXG4iLnNwbGl0bGluZXMoKScsICJzcGxpdCBuZXdsaW5lcyIsIDEwMDApCitkZWYgbmV3bGluZXNfc3BsaXRsaW5lcyhTVFIpOgorICAgIHMgPSBTVFIoInRoaXNcbmlzXG5hXG50ZXN0XG4iKQorICAgIHNfc3BsaXRsaW5lcyA9IHMuc3BsaXRsaW5lcworICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzX3NwbGl0bGluZXMoKQorCisjIyBzcGxpdCB0ZXh0IHdpdGggMjAwMCBuZXdsaW5lcworCitkZWYgX21ha2VfMjAwMF9saW5lcygpOgorICAgIGltcG9ydCByYW5kb20KKyAgICByID0gcmFuZG9tLlJhbmRvbSgxMDApCisgICAgY2hhcnMgPSBsaXN0KG1hcChjaHIsIHJhbmdlKDMyLCAxMjgpKSkKKyAgICBpID0gMAorICAgIHdoaWxlIGkgPCBsZW4oY2hhcnMpOgorICAgICAgICBjaGFyc1tpXSA9ICIgIgorICAgICAgICBpICs9IHIucmFuZHJhbmdlKDkpCisgICAgcyA9ICIiLmpvaW4oY2hhcnMpCisgICAgcyA9IHMqNAorICAgIHdvcmRzID0gW10KKyAgICBmb3IgaSBpbiByYW5nZSgyMDAwKToKKyAgICAgICAgc3RhcnQgPSByLnJhbmRyYW5nZSg5NikKKyAgICAgICAgbiA9IHIucmFuZGludCg1LCA2NSkKKyAgICAgICAgd29yZHMuYXBwZW5kKHNbc3RhcnQ6c3RhcnQrbl0pCisgICAgcmV0dXJuICJcbiIuam9pbih3b3JkcykrIlxuIgorCitfdGV4dF93aXRoXzIwMDBfbGluZXMgPSBfbWFrZV8yMDAwX2xpbmVzKCkKK190ZXh0X3dpdGhfMjAwMF9saW5lc19ieXRlcyA9IGJ5dGVzX2Zyb21fc3RyKF90ZXh0X3dpdGhfMjAwMF9saW5lcykKK190ZXh0X3dpdGhfMjAwMF9saW5lc191bmljb2RlID0gdW5pY29kZV9mcm9tX3N0cihfdGV4dF93aXRoXzIwMDBfbGluZXMpCitkZWYgX2dldF8yMDAwX2xpbmVzKFNUUik6CisgICAgaWYgU1RSIGlzIFVOSUNPREU6CisgICAgICAgIHJldHVybiBfdGV4dF93aXRoXzIwMDBfbGluZXNfdW5pY29kZQorICAgIGlmIFNUUiBpcyBCWVRFUzoKKyAgICAgICAgcmV0dXJuIF90ZXh0X3dpdGhfMjAwMF9saW5lc19ieXRlcworICAgIHJhaXNlIEFzc2VydGlvbkVycm9yCisKKworQGJlbmNoKCciLi4udGV4dC4uLiIuc3BsaXQoIlxcbiIpJywgInNwbGl0IDIwMDAgbmV3bGluZXMiLCAxMCkKK2RlZiBuZXdsaW5lc19zcGxpdF8yMDAwKFNUUik6CisgICAgcyA9IF9nZXRfMjAwMF9saW5lcyhTVFIpCisgICAgc19zcGxpdCA9IHMuc3BsaXQKKyAgICBubCA9IFNUUigiXG4iKQorICAgIGZvciB4IGluIF9SQU5HRV8xMDoKKyAgICAgICAgc19zcGxpdChubCkKKworQGJlbmNoKCciLi4udGV4dC4uLiIucnNwbGl0KCJcXG4iKScsICJzcGxpdCAyMDAwIG5ld2xpbmVzIiwgMTApCitkZWYgbmV3bGluZXNfcnNwbGl0XzIwMDAoU1RSKToKKyAgICBzID0gX2dldF8yMDAwX2xpbmVzKFNUUikKKyAgICBzX3JzcGxpdCA9IHMucnNwbGl0CisgICAgbmwgPSBTVFIoIlxuIikKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTA6CisgICAgICAgIHNfcnNwbGl0KG5sKQorCitAYmVuY2goJyIuLi50ZXh0Li4uIi5zcGxpdGxpbmVzKCknLCAic3BsaXQgMjAwMCBuZXdsaW5lcyIsIDEwKQorZGVmIG5ld2xpbmVzX3NwbGl0bGluZXNfMjAwMChTVFIpOgorICAgIHMgPSBfZ2V0XzIwMDBfbGluZXMoU1RSKQorICAgIHNfc3BsaXRsaW5lcyA9IHMuc3BsaXRsaW5lcworICAgIGZvciB4IGluIF9SQU5HRV8xMDoKKyAgICAgICAgc19zcGxpdGxpbmVzKCkKKworCisjIyBzcGxpdCB0ZXh0IG9uICItLSIgY2hhcmFjdGVycworQGJlbmNoKAorICAgICcidGhpcy0taXMtLWEtLXRlc3QtLW9mLS10aGUtLWVtZXJnZW5jeS0tYnJvYWRjYXN0LS1zeXN0ZW0iLnNwbGl0KCItLSIpJywKKyAgICAic3BsaXQgb24gbXVsdGljaGFyYWN0ZXIgc2VwYXJhdG9yIChzbWFsbCkiLCAxMDAwKQorZGVmIHNwbGl0X211bHRpY2hhcl9zZXBfc21hbGwoU1RSKToKKyAgICBzID0gU1RSKCJ0aGlzLS1pcy0tYS0tdGVzdC0tb2YtLXRoZS0tZW1lcmdlbmN5LS1icm9hZGNhc3QtLXN5c3RlbSIpCisgICAgc19zcGxpdCA9IHMuc3BsaXQKKyAgICBwYXQgPSBTVFIoIi0tIikKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19zcGxpdChwYXQpCitAYmVuY2goCisgICAgJyJ0aGlzLS1pcy0tYS0tdGVzdC0tb2YtLXRoZS0tZW1lcmdlbmN5LS1icm9hZGNhc3QtLXN5c3RlbSIucnNwbGl0KCItLSIpJywKKyAgICAic3BsaXQgb24gbXVsdGljaGFyYWN0ZXIgc2VwYXJhdG9yIChzbWFsbCkiLCAxMDAwKQorZGVmIHJzcGxpdF9tdWx0aWNoYXJfc2VwX3NtYWxsKFNUUik6CisgICAgcyA9IFNUUigidGhpcy0taXMtLWEtLXRlc3QtLW9mLS10aGUtLWVtZXJnZW5jeS0tYnJvYWRjYXN0LS1zeXN0ZW0iKQorICAgIHNfcnNwbGl0ID0gcy5yc3BsaXQKKyAgICBwYXQgPSBTVFIoIi0tIikKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19yc3BsaXQocGF0KQorCisjIyBzcGxpdCBkbmEgdGV4dCBvbiAiQUNUQVQiIGNoYXJhY3RlcnMKK0BiZW5jaCgnZG5hLnNwbGl0KCJBQ1RBVCIpJywKKyAgICAgICAic3BsaXQgb24gbXVsdGljaGFyYWN0ZXIgc2VwYXJhdG9yIChkbmEpIiwgMTApCitkZWYgc3BsaXRfbXVsdGljaGFyX3NlcF9kbmEoU1RSKToKKyAgICBzID0gX2dldF9kbmEoU1RSKQorICAgIHNfc3BsaXQgPSBzLnNwbGl0CisgICAgcGF0ID0gU1RSKCJBQ1RBVCIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwOgorICAgICAgICBzX3NwbGl0KHBhdCkKKworQGJlbmNoKCdkbmEucnNwbGl0KCJBQ1RBVCIpJywKKyAgICAgICAic3BsaXQgb24gbXVsdGljaGFyYWN0ZXIgc2VwYXJhdG9yIChkbmEpIiwgMTApCitkZWYgcnNwbGl0X211bHRpY2hhcl9zZXBfZG5hKFNUUik6CisgICAgcyA9IF9nZXRfZG5hKFNUUikKKyAgICBzX3JzcGxpdCA9IHMucnNwbGl0CisgICAgcGF0ID0gU1RSKCJBQ1RBVCIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwOgorICAgICAgICBzX3JzcGxpdChwYXQpCisKKworCisjIyBzcGxpdCB3aXRoIGxpbWl0cworCitHRkYzX2V4YW1wbGUgPSAiXHQiLmpvaW4oWworICAgICJJIiwgIkdlbm9taWNfY2Fub25pY2FsIiwgInJlZ2lvbiIsICIzNTcyMDgiLCAiMzk2MTgzIiwgIi4iLCAiKyIsICIuIiwKKyAgICAiSUQ9U2VxdWVuY2U6UjExOTtub3RlPUNsb25lIFIxMTklM0IgR2VuYmFuayBBRjA2MzAwNztOYW1lPVIxMTkiXSkKKworQGJlbmNoKCdHRkYzX2V4YW1wbGUuc3BsaXQoIlxcdCIpJywgInRhYiBzcGxpdCIsIDEwMDApCitkZWYgdGFiX3NwbGl0X25vX2xpbWl0KFNUUik6CisgICAgc2VwID0gU1RSKCJcdCIpCisgICAgcyA9IFNUUihHRkYzX2V4YW1wbGUpCisgICAgc19zcGxpdCA9IHMuc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19zcGxpdChzZXApCisKK0BiZW5jaCgnR0ZGM19leGFtcGxlLnNwbGl0KCJcXHQiLCA4KScsICJ0YWIgc3BsaXQiLCAxMDAwKQorZGVmIHRhYl9zcGxpdF9saW1pdChTVFIpOgorICAgIHNlcCA9IFNUUigiXHQiKQorICAgIHMgPSBTVFIoR0ZGM19leGFtcGxlKQorICAgIHNfc3BsaXQgPSBzLnNwbGl0CisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNfc3BsaXQoc2VwLCA4KQorCitAYmVuY2goJ0dGRjNfZXhhbXBsZS5yc3BsaXQoIlxcdCIpJywgInRhYiBzcGxpdCIsIDEwMDApCitkZWYgdGFiX3JzcGxpdF9ub19saW1pdChTVFIpOgorICAgIHNlcCA9IFNUUigiXHQiKQorICAgIHMgPSBTVFIoR0ZGM19leGFtcGxlKQorICAgIHNfcnNwbGl0ID0gcy5yc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19yc3BsaXQoc2VwKQorCitAYmVuY2goJ0dGRjNfZXhhbXBsZS5yc3BsaXQoIlxcdCIsIDgpJywgInRhYiBzcGxpdCIsIDEwMDApCitkZWYgdGFiX3JzcGxpdF9saW1pdChTVFIpOgorICAgIHNlcCA9IFNUUigiXHQiKQorICAgIHMgPSBTVFIoR0ZGM19leGFtcGxlKQorICAgIHNfcnNwbGl0ID0gcy5yc3BsaXQKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19yc3BsaXQoc2VwLCA4KQorCisjIyMjIENvdW50IGNoYXJhY3RlcnMKKworQGJlbmNoKCcuLi50ZXh0LndpdGguMjAwMC5uZXdsaW5lcy5jb3VudCgiXFxuIiknLAorICAgICAgICJjb3VudCBuZXdsaW5lcyIsIDEwKQorZGVmIGNvdW50X25ld2xpbmVzKFNUUik6CisgICAgcyA9IF9nZXRfMjAwMF9saW5lcyhTVFIpCisgICAgc19jb3VudCA9IHMuY291bnQKKyAgICBubCA9IFNUUigiXG4iKQorICAgIGZvciB4IGluIF9SQU5HRV8xMDoKKyAgICAgICAgc19jb3VudChubCkKKworIyBPcmNoaWQgc2VxdWVuY2VzIGNvbmNhdGVuYXRlZCwgZnJvbSBCaW9weXRob24KK19kbmEgPSAiIiIKK0NHVEFBQ0FBR0dUVFRDQ0dUQUdHVEdBQUNDVEdDR0dBQUdHQVRDQVRUR1RUR0FHQVRDQUNBVEFBVEFBVFRHQVRDR0dHVFQKK0FBVENUR0dBR0dBVENUR1RUVEFDVFRUR0dUQ0FDQ0NBVEdBR0NBVFRUR0NUR1RUR0FBR1RHQUNDVEFHQUFUVEdDQ0FUQ0cKK0FHQ0NUQ0NUVEdHR0FHQ1RUVENUVEdUVEdHQ0dBR0FUQ1RBQUFDQ0NUVEdDQ0NHR0NHQ0FHVFRUVEdDVENDQUFHVENHVFQKK1RHQUNBQ0FUQUFUVEdHVEdBQUdHR0dHVEdHQ0FUQ0NUVENDQ1RHQUNDQ1RDQ0NDQ0FBQ1RBVFRUVFRUVEFBQ0FBQ1RDVEMKK0FHQ0FBQ0dHQUdBQ1RDQUdUQ1RUQ0dHQ0FBQVRHQ0dBVEFBQVRHR1RHVEdBQVRUR0NBR0FBVENDQ0dUR0NBQ0NBVENHQUcKK1RDVFRUR0FBQ0dDQUFHVFRHQ0dDQ0NHQUdHQ0NBVENBR0dDQ0FBR0dHQ0FDR0NDVEdDQ1RHR0dDQVRUR0NHQUdUQ0FUQVQKK0NUQ1RDQ0NUVEFBQ0dBR0dDVEdUQ0NBVEFDQVRBQ1RHVFRDQUdDQ0dHVEdDR0dBVEdUR0FHVFRUR0dDQ0NDVFRHVFRDVFQKK1RHR1RBQ0dHR0dHR1RDVEFBR0FHQ1RHQ0FUR0dHQ1RUVFRHQVRHR1RDQ1RBQUFUQUNHR0NBQUdBR0dUR0dBQ0dBQUNUQVQKK0dDVEFDQUFDQUFBQVRUR1RUR1RHQ0FHQUdHQ0NDQ0dHR1RUR1RDR1RBVFRBR0FUR0dHQ0NBQ0NHVEFBVENUR0FBR0FDQ0MKK1RUVFRHQUFDQ0NDQVRUR0dBR0dDQ0NBVENBQUNDQ0FUR0FUQ0FHVFRHQVRHR0NDQVRUVEdHVFRHQ0dBQ0NDQ0FHR1RDQUcKK0dUR0FHQ0FBQ0FHQ1RHVENHVEFBQ0FBR0dUVFRDQ0dUQUdHR1RHQUFDVEdDR0dBQUdHQVRDQVRUR1RUR0FHQVRDQUNBVEEKK0FUQUFUVEdBVENHQUdUVEFBVENUR0dBR0dBVENUR1RUVEFDVFRHR0dUQ0FDQ0NBVEdHR0NBVFRUR0NUR1RUR0FBR1RHQUMKK0NUQUdBVFRUR0NDQVRDR0FHQ0NUQ0NUVEdHR0FHQ0FUQ0NUVEdUVEdHQ0dBVEFUQ1RBQUFDQ0NUQ0FBVFRUVFRDQ0NDQ0EKK0FUQ0FBQVRUQUNBQ0FBQUFUVEdHVEdHQUdHR0dHVEdHQ0FUVENUVENDQ1RUQUNDQ1RDQ0NDQ0FBQVRBVFRUVFRUVEFBQ0EKK0FDVENUQ0FHQ0FBQ0dHQVRBVENUQ0FHQ1RDVFRHQ0FUQ0dBVEdBQUdBQUNDQ0FDQ0dBQUFUR0NHQVRBQUFUR0dUR1RHQUEKK1RUR0NBR0FBVENDQ0dUR0FBQ0NBVENHQUdUQ1RUVEdBQUNHQ0FBR1RUR0NHQ0NDR0FHR0NDQVRDQUdHQ0NBQUdHR0NBQ0cKK0NDVEdDQ1RHR0dDQVRUR0NHQUdUQ0FUQVRDVENUQ0NDVFRBQUNHQUdHQ1RHVENDQVRBQ0FUQUNUR1RUQ0FHQ0NHR1RHQ0cKK0dBVEdUR0FHVFRUR0dDQ0NDVFRHVFRDVFRUR0dUQUNHR0dHR0dUQ1RBQUdBR0FUR0NBVEdHR0NUVFRUR0FUR0dUQ0NUQUEKK0FUQUNHR0NBQUdBR0dUR0dBQ0dBQUNUQVRHQ1RBQ0FBQ0FBQUFUVEdUVEdUR0NBQUFHR0NDQ0NHR0dUVEdUQ0dUQVRBQUcKK0FUR0dHQ0NBQ0NHQVRBVENUR0FBR0FDQ0NUVFRUR0dBQ0NDQ0FUVEdHQUdDQ0NBVENBQUNDQ0FUR1RDQUdUVEdBVEdHQ0MKK0FUVENHVEFBQ0FBR0dUVFRDQ0dUQUdHVEdBQUNDVEdDR0dBQUdHQVRDQVRUR1RUR0FHQVRDQUNBVEFBVEFBVFRHQVRDR0EKK0dUVEFBVENUR0dBR0dBVENUR1RUVEFDVFRHR0dUQ0FDQ0NBVEdHR0NBVFRUR0NUR1RUR0FBR1RHQUNDVEFHQVRUVEdDQ0EKK1RDR0FHQ0NUQ0NUVEdHR0FHQ1RUVENUVEdUVEdHQ0dBVEFUQ1RBQUFDQ0NUVEdDQ0NHR0NBR0FHVFRUVEdHR0FBVENDQ0cKK1RHQUFDQ0FUQ0dBR1RDVFRUR0FBQ0dDQUFHVFRHQ0dDQ0NHQUdHQ0NBVENBR0dDQ0FBR0dHQ0FDR0NDVEdDQ1RHR0dDQVQKK1RHQ0dBR1RDQVRBVENUQ1RDQ0NUVEFBQ0dBR0dDVEdUQ0NBVEFDQUNBQ0NUR1RUQ0FHQ0NHR1RHQ0dHQVRHVEdBR1RUVEcKK0dDQ0NDVFRHVFRDVFRUR0dUQUNHR0dHR0dUQ1RBQUdBR0NUR0NBVEdHR0NUVFRUR0FUR0dUQ0NUQUFBVEFDR0dDQUFHQUcKK0dUR0dBQ0dBQUNUQVRHQ1RBQ0FBQ0FBQUFUVEdUVEdUR0NBQUFHR0NDQ0NHR0dUVEdUQ0dUQVRUQUdBVEdHR0NDQUNDQVQKK0FBVENUR0FBR0FDQ0NUVFRUR0FBQ0NDQ0FUVEdHQUdHQ0NDQVRDQUFDQ0NBVEdBVENBR1RUR0FUR0dDQ0FUVFRHR1RUR0MKK0dBQ0NDQUdUQ0FHR1RHQUdHR1RBR0dUR0FBQ0NUR0NHR0FBR0dBVENBVFRHVFRHQUdBVENBQ0FUQUFUQUFUVEdBVENHQUcKK1RUQUFUQ1RHR0FHR0FUQ1RHVFRUQUNUVFRHR1RDQUNDQ0FUR0dHQ0FUVFRHQ1RHVFRHQUFHVEdBQ0NUQUdBVFRUR0NDQVQKK0NHQUdDQ1RDQ1RUR0dHQUdDVFRUQ1RUR1RUR0dDR0FHQVRDVEFBQUNDQ1RUR0NDQ0dHQ0dHQUdUVFRHR0NHQ0NBQUdUQ0EKK1RBVEdBQ0FDQVRBQVRUR0dUR0FBR0dHR0dUR0dDQVRDQ1RHQ0NDVEdBQ0NDVENDQ0NBQUFUVEFUVFRUVFRUQUFDQUFDVEMKK1RDQUdDQUFDR0dBVEFUQ1RDR0dDVENUVEdDQVRDR0FUR0FBR0FBQ0dDQUdDR0FBQVRHQ0dBVEFBQVRHR1RHVEdBQVRUR0MKK0FHQUFUQ0NDR1RHQUFDQ0FUQ0dBR1RDVFRUR0dBQUNHQ0FBR1RUR0NHQ0NDR0FHR0NDQVRDQUdHQ0NBQUdHR0NBQ0dDQ1QKK0dDQ1RHR0dDQVRUR0dHQUFUQ0FUQVRDVENUQ0NDQ1RBQUNHQUdHQ1RBVENDQUFBQ0FUQUNUR1RUQ0FUQ0NHR1RHQ0dHQVQKK0dUR0FHVFRUR0dDQ0NDVFRHVFRDVFRUR0dUQUNDR0dHR0dUQ1RBQUdBR0NUR0NBVEdHR0NBVFRUR0FUR0dUQ0NUQ0FBQUEKK0NHR0NBQUdBR0dUR0dBQ0dBQUNUQVRHQ0NBQ0FBQ0FBQUFUVEdUVEdUQ0NDQUFHR0NDQ0NHR0dUVEdUQ0dUQVRUQUdBVEcKK0dHQ0NBQ0NHVEFBQ0NUR0FBR0FDQ0NUVFRUR0FBQ0NDQ0FUVEdHQUdHQ0NDQVRDQUFDQ0NBVEdBVENBR1RUR0FUR0FDQ0EKK1RUVEdUVEdDR0FDQ0NDQUdUQ0FHQ1RHQUdDQUFDQ0NHQ1RHQUdUR0dBQUdHVENBVFRHQ0NHQVRBVENBQ0FUQUFUQUFUVEcKK0FUQ0dBR1RUQUFUQ1RHR0FHR0FUQ1RHVFRUQUNUVEdHVENBQ0NDQVRHQUdDQVRUVEdDVEdUVEdBQUdUR0FDQ1RBR0FUVFQKK0dDQ0FUQ0dBR0NDVENDVFRHR0dBR1RUVFRDVFRHVFRHR0NHQUdBVENUQUFBQ0NDVFRHQ0NDR0dDR0dBR1RUR1RHQ0dDQ0EKK0FHVENBVEFUR0FDQUNBVEFBVFRHR1RHQUFHR0dHR1RHR0NBVENDVEdDQ0NUR0FDQ0NUQ0NDQ0FBQVRUQVRUVFRUVFRBQUMKK0FBQ1RDVENBR0NBQUNHR0FUQVRDVENHR0NUQ1RUR0NBVENHQVRHQUFHQUFDR0NBR0NHQUFBVEdDR0FUQUFBVEdHVEdUR0EKK0FUVEdDQUdBQVRDQ0NHVEdBQUNDQVRDR0FHVENUVFRHQUFDR0NBQUdUVEdDR0NDQ0dBR0dDQ0FUQ0FHR0NDQUFHR0dDQUMKK0dDQ1RHQ0NUR0dHQ0FUVEdDR0FHVENBVEFUQ1RDVENDQ1RUQUFDR0FHR0NUR1RDQ0FUQUNBVEFDVEdUVENBVENDR0dUR0MKK0dHQVRHVEdBR1RUVEdHQ0NDQ1RUR1RUQ1RUVEdHVEFDR0dHR0dHVENUQUFHQUdDVEdDQVRHR0dDQVRUVEdBVEdHVENDVEMKK0FBQUFDR0dDQUFHQUdHVEdHQUNHQUFDVEFUR0NUQUNBQUNDQUFBVFRHVFRHVENDQ0FBR0dDQ0NDR0dHVFRHVENHVEFUVEEKK0dBVEdHR0NDQUNDR1RBQUNDVEdBQUdBQ0NDVFRUVEdBQUNDQ0NBVFRHR0FHR0NDQ0FUQ0FBQ0NDQVRHQVRDQUdUVEdBVEcKK0FDQ0FUR1RHVFRHQ0dBQ0NDQ0FHVENBR0NUR0FHQ0FBQ0dDR0NUR0FHQ0dUQUFDQUFHR1RUVENDR1RBR0dUR0dBQ0NUQ0MKK0dHR0FHR0FUQ0FUVEdUVEdBR0FUQ0FDQVRBQVRBQVRUR0FUQ0dBR0dUQUFUQ1RHR0FHR0FUQ1RHQ0FUQVRUVFRHR1RDQUMKKyIiIgorX2RuYSA9ICIiLmpvaW4oX2RuYS5zcGxpdGxpbmVzKCkpCitfZG5hID0gX2RuYSAqIDI1CitfZG5hX2J5dGVzID0gYnl0ZXNfZnJvbV9zdHIoX2RuYSkKK19kbmFfdW5pY29kZSA9IHVuaWNvZGVfZnJvbV9zdHIoX2RuYSkKKworZGVmIF9nZXRfZG5hKFNUUik6CisgICAgaWYgU1RSIGlzIFVOSUNPREU6CisgICAgICAgIHJldHVybiBfZG5hX3VuaWNvZGUKKyAgICBpZiBTVFIgaXMgQllURVM6CisgICAgICAgIHJldHVybiBfZG5hX2J5dGVzCisgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IKKworQGJlbmNoKCdkbmEuY291bnQoIkFBQ1QiKScsICJjb3VudCBBQUNUIHN1YnN0cmluZ3MgaW4gRE5BIGV4YW1wbGUiLCAxMCkKK2RlZiBjb3VudF9hYWN0KFNUUik6CisgICAgc2VxID0gX2dldF9kbmEoU1RSKQorICAgIHNlcV9jb3VudCA9IHNlcS5jb3VudAorICAgIG5lZWRsZSA9IFNUUigiQUFDVCIpCisgICAgZm9yIHggaW4gX1JBTkdFXzEwOgorICAgICAgICBzZXFfY291bnQobmVlZGxlKQorCisjIyMjIyBzdGFydHN3aXRoIGFuZCBlbmRzd2l0aAorCitAYmVuY2goJyJBbmRyZXciLnN0YXJ0c3dpdGgoIkEiKScsICdzdGFydHN3aXRoIHNpbmdsZSBjaGFyYWN0ZXInLCAxMDAwKQorZGVmIHN0YXJ0c3dpdGhfc2luZ2xlKFNUUik6CisgICAgczEgPSBTVFIoIkFuZHJldyIpCisgICAgczIgPSBTVFIoIkEiKQorICAgIHMxX3N0YXJ0c3dpdGggPSBzMS5zdGFydHN3aXRoCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX3N0YXJ0c3dpdGgoczIpCisKK0BiZW5jaCgnIkFuZHJldyIuc3RhcnRzd2l0aCgiQW5kcmV3IiknLCAnc3RhcnRzd2l0aCBtdWx0aXBsZSBjaGFyYWN0ZXJzJywKKyAgICAgICAxMDAwKQorZGVmIHN0YXJ0c3dpdGhfbXVsdGlwbGUoU1RSKToKKyAgICBzMSA9IFNUUigiQW5kcmV3IikKKyAgICBzMiA9IFNUUigiQW5kcmV3IikKKyAgICBzMV9zdGFydHN3aXRoID0gczEuc3RhcnRzd2l0aAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9zdGFydHN3aXRoKHMyKQorCitAYmVuY2goJyJBbmRyZXciLnN0YXJ0c3dpdGgoIkFuZGVycyIpJywKKyAgICAgICAnc3RhcnRzd2l0aCBtdWx0aXBsZSBjaGFyYWN0ZXJzIC0gbm90IScsIDEwMDApCitkZWYgc3RhcnRzd2l0aF9tdWx0aXBsZV9ub3QoU1RSKToKKyAgICBzMSA9IFNUUigiQW5kcmV3IikKKyAgICBzMiA9IFNUUigiQW5kZXJzIikKKyAgICBzMV9zdGFydHN3aXRoID0gczEuc3RhcnRzd2l0aAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzMV9zdGFydHN3aXRoKHMyKQorCisKKyMgZW5kc3dpdGgKKworQGJlbmNoKCciQW5kcmV3Ii5lbmRzd2l0aCgidyIpJywgJ2VuZHN3aXRoIHNpbmdsZSBjaGFyYWN0ZXInLCAxMDAwKQorZGVmIGVuZHN3aXRoX3NpbmdsZShTVFIpOgorICAgIHMxID0gU1RSKCJBbmRyZXciKQorICAgIHMyID0gU1RSKCJ3IikKKyAgICBzMV9lbmRzd2l0aCA9IHMxLmVuZHN3aXRoCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHMxX2VuZHN3aXRoKHMyKQorCitAYmVuY2goJyJBbmRyZXciLmVuZHN3aXRoKCJBbmRyZXciKScsICdlbmRzd2l0aCBtdWx0aXBsZSBjaGFyYWN0ZXJzJywgMTAwMCkKK2RlZiBlbmRzd2l0aF9tdWx0aXBsZShTVFIpOgorICAgIHMxID0gU1RSKCJBbmRyZXciKQorICAgIHMyID0gU1RSKCJBbmRyZXciKQorICAgIHMxX2VuZHN3aXRoID0gczEuZW5kc3dpdGgKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfZW5kc3dpdGgoczIpCisKK0BiZW5jaCgnIkFuZHJldyIuZW5kc3dpdGgoIkFuZGVycyIpJywKKyAgICAgICAnZW5kc3dpdGggbXVsdGlwbGUgY2hhcmFjdGVycyAtIG5vdCEnLCAxMDAwKQorZGVmIGVuZHN3aXRoX211bHRpcGxlX25vdChTVFIpOgorICAgIHMxID0gU1RSKCJBbmRyZXciKQorICAgIHMyID0gU1RSKCJBbmRlcnMiKQorICAgIHMxX2VuZHN3aXRoID0gczEuZW5kc3dpdGgKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgczFfZW5kc3dpdGgoczIpCisKKyMjIyMgU3RyaXAKKworQGJlbmNoKCciSGVsbG8hXFxuIi5zdHJpcCgpJywgJ3N0cmlwIHRlcm1pbmFsIG5ld2xpbmUnLCAxMDAwKQorZGVmIHRlcm1pbmFsX25ld2xpbmVfc3RyaXBfcmlnaHQoU1RSKToKKyAgICBzID0gU1RSKCJIZWxsbyFcbiIpCisgICAgc19zdHJpcCA9IHMuc3RyaXAKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19zdHJpcCgpCisKK0BiZW5jaCgnIkhlbGxvIVxcbiIucnN0cmlwKCknLCAnc3RyaXAgdGVybWluYWwgbmV3bGluZScsIDEwMDApCitkZWYgdGVybWluYWxfbmV3bGluZV9yc3RyaXAoU1RSKToKKyAgICBzID0gU1RSKCJIZWxsbyFcbiIpCisgICAgc19yc3RyaXAgPSBzLnJzdHJpcAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzX3JzdHJpcCgpCisKK0BiZW5jaCgnIlxcbkhlbGxvISIuc3RyaXAoKScsICdzdHJpcCB0ZXJtaW5hbCBuZXdsaW5lJywgMTAwMCkKK2RlZiB0ZXJtaW5hbF9uZXdsaW5lX3N0cmlwX2xlZnQoU1RSKToKKyAgICBzID0gU1RSKCJcbkhlbGxvISIpCisgICAgc19zdHJpcCA9IHMuc3RyaXAKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19zdHJpcCgpCisKK0BiZW5jaCgnIlxcbkhlbGxvIVxcbiIuc3RyaXAoKScsICdzdHJpcCB0ZXJtaW5hbCBuZXdsaW5lJywgMTAwMCkKK2RlZiB0ZXJtaW5hbF9uZXdsaW5lX3N0cmlwX2JvdGgoU1RSKToKKyAgICBzID0gU1RSKCJcbkhlbGxvIVxuIikKKyAgICBzX3N0cmlwID0gcy5zdHJpcAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzX3N0cmlwKCkKKworQGJlbmNoKCciXFxuSGVsbG8hIi5yc3RyaXAoKScsICdzdHJpcCB0ZXJtaW5hbCBuZXdsaW5lJywgMTAwMCkKK2RlZiB0ZXJtaW5hbF9uZXdsaW5lX2xzdHJpcChTVFIpOgorICAgIHMgPSBTVFIoIlxuSGVsbG8hIikKKyAgICBzX2xzdHJpcCA9IHMubHN0cmlwCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNfbHN0cmlwKCkKKworQGJlbmNoKCdzPSJIZWxsbyFcXG4iOyBzWzotMV0gaWYgc1stMV09PSJcXG4iIGVsc2UgcycsCisgICAgICAgJ3N0cmlwIHRlcm1pbmFsIG5ld2xpbmUnLCAxMDAwKQorZGVmIHRlcm1pbmFsX25ld2xpbmVfaWZfZWxzZShTVFIpOgorICAgIHMgPSBTVFIoIkhlbGxvIVxuIikKKyAgICBOTCA9IFNUUigiXG4iKQorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzWzotMV0gaWYgKHNbLTFdID09IE5MKSBlbHNlIHMKKworCisjIFN0cmlwIG11bHRpcGxlIHNwYWNlcyBvciB0YWJzCisKK0BiZW5jaCgnIkhlbGxvXFx0ICAgXFx0Ii5zdHJpcCgpJywgJ3N0cmlwIHRlcm1pbmFsIHNwYWNlcyBhbmQgdGFicycsIDEwMDApCitkZWYgdGVybWluYWxfc3BhY2Vfc3RyaXAoU1RSKToKKyAgICBzID0gU1RSKCJIZWxsb1x0ICAgXHQhIikKKyAgICBzX3N0cmlwID0gcy5zdHJpcAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzX3N0cmlwKCkKKworQGJlbmNoKCciSGVsbG9cXHQgICBcXHQiLnJzdHJpcCgpJywgJ3N0cmlwIHRlcm1pbmFsIHNwYWNlcyBhbmQgdGFicycsIDEwMDApCitkZWYgdGVybWluYWxfc3BhY2VfcnN0cmlwKFNUUik6CisgICAgcyA9IFNUUigiSGVsbG8hXHQgICBcdCIpCisgICAgc19yc3RyaXAgPSBzLnJzdHJpcAorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzX3JzdHJpcCgpCisKK0BiZW5jaCgnIlxcdCAgIFxcdEhlbGxvIi5yc3RyaXAoKScsICdzdHJpcCB0ZXJtaW5hbCBzcGFjZXMgYW5kIHRhYnMnLCAxMDAwKQorZGVmIHRlcm1pbmFsX3NwYWNlX2xzdHJpcChTVFIpOgorICAgIHMgPSBTVFIoIlx0ICAgXHRIZWxsbyEiKQorICAgIHNfbHN0cmlwID0gcy5sc3RyaXAKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19sc3RyaXAoKQorCisKKyMjIyMgcmVwbGFjZQorQGJlbmNoKCciVGhpcyBpcyBhIHRlc3QiLnJlcGxhY2UoIiAiLCAiXFx0IiknLCAncmVwbGFjZSBzaW5nbGUgY2hhcmFjdGVyJywKKyAgICAgICAxMDAwKQorZGVmIHJlcGxhY2Vfc2luZ2xlX2NoYXJhY3RlcihTVFIpOgorICAgIHMgPSBTVFIoIlRoaXMgaXMgYSB0ZXN0ISIpCisgICAgZnJvbV9zdHIgPSBTVFIoIiAiKQorICAgIHRvX3N0ciA9IFNUUigiXHQiKQorICAgIHNfcmVwbGFjZSA9IHMucmVwbGFjZQorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzX3JlcGxhY2UoZnJvbV9zdHIsIHRvX3N0cikKKworQHVzZXNfcmUKK0BiZW5jaCgncmUuc3ViKCIgIiwgIlxcdCIsICJUaGlzIGlzIGEgdGVzdCInLCAncmVwbGFjZSBzaW5nbGUgY2hhcmFjdGVyJywKKyAgICAgICAxMDAwKQorZGVmIHJlcGxhY2Vfc2luZ2xlX2NoYXJhY3Rlcl9yZShTVFIpOgorICAgIHMgPSBTVFIoIlRoaXMgaXMgYSB0ZXN0ISIpCisgICAgcGF0ID0gcmUuY29tcGlsZShTVFIoIiAiKSkKKyAgICB0b19zdHIgPSBTVFIoIlx0IikKKyAgICBwYXRfc3ViID0gcGF0LnN1YgorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBwYXRfc3ViKHRvX3N0ciwgcykKKworQGJlbmNoKCciLi4udGV4dC53aXRoLjIwMDAubGluZXMuLi5yZXBsYWNlKCJcXG4iLCAiICIpJywKKyAgICAgICAncmVwbGFjZSBzaW5nbGUgY2hhcmFjdGVyLCBiaWcgc3RyaW5nJywgMTApCitkZWYgcmVwbGFjZV9zaW5nbGVfY2hhcmFjdGVyX2JpZyhTVFIpOgorICAgIHMgPSBfZ2V0XzIwMDBfbGluZXMoU1RSKQorICAgIGZyb21fc3RyID0gU1RSKCJcbiIpCisgICAgdG9fc3RyID0gU1RSKCIgIikKKyAgICBzX3JlcGxhY2UgPSBzLnJlcGxhY2UKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTA6CisgICAgICAgIHNfcmVwbGFjZShmcm9tX3N0ciwgdG9fc3RyKQorCitAdXNlc19yZQorQGJlbmNoKCdyZS5zdWIoIlxcbiIsICIgIiwgIi4uLnRleHQud2l0aC4yMDAwLmxpbmVzLi4uIiknLAorICAgICAgICdyZXBsYWNlIHNpbmdsZSBjaGFyYWN0ZXIsIGJpZyBzdHJpbmcnLCAxMCkKK2RlZiByZXBsYWNlX3NpbmdsZV9jaGFyYWN0ZXJfYmlnX3JlKFNUUik6CisgICAgcyA9IF9nZXRfMjAwMF9saW5lcyhTVFIpCisgICAgcGF0ID0gcmUuY29tcGlsZShTVFIoIlxuIikpCisgICAgdG9fc3RyID0gU1RSKCIgIikKKyAgICBwYXRfc3ViID0gcGF0LnN1YgorICAgIGZvciB4IGluIF9SQU5HRV8xMDoKKyAgICAgICAgcGF0X3N1Yih0b19zdHIsIHMpCisKKworQGJlbmNoKCdkbmEucmVwbGFjZSgiQVRDIiwgIkFUVCIpJywKKyAgICAgICAncmVwbGFjZSBtdWx0aXBsZSBjaGFyYWN0ZXJzLCBkbmEnLCAxMCkKK2RlZiByZXBsYWNlX211bHRpcGxlX2NoYXJhY3RlcnNfZG5hKFNUUik6CisgICAgc2VxID0gX2dldF9kbmEoU1RSKQorICAgIGZyb21fc3RyID0gU1RSKCJBVEMiKQorICAgIHRvX3N0ciA9IFNUUigiQVRUIikKKyAgICBzZXFfcmVwbGFjZSA9IHNlcS5yZXBsYWNlCisgICAgZm9yIHggaW4gX1JBTkdFXzEwOgorICAgICAgICBzZXFfcmVwbGFjZShmcm9tX3N0ciwgdG9fc3RyKQorCisjIFRoaXMgaW5jcmVhc2VzIHRoZSBjaGFyYWN0ZXIgY291bnQKK0BiZW5jaCgnIi4uLnRleHQud2l0aC4yMDAwLm5ld2xpbmVzLi4ucmVwbGFjZSgiXFxuIiwgIlxcclxcbiIpJywKKyAgICAgICAncmVwbGFjZSBhbmQgZXhwYW5kIG11bHRpcGxlIGNoYXJhY3RlcnMsIGJpZyBzdHJpbmcnLCAxMCkKK2RlZiByZXBsYWNlX211bHRpcGxlX2NoYXJhY3Rlcl9iaWcoU1RSKToKKyAgICBzID0gX2dldF8yMDAwX2xpbmVzKFNUUikKKyAgICBmcm9tX3N0ciA9IFNUUigiXG4iKQorICAgIHRvX3N0ciA9IFNUUigiXHJcbiIpCisgICAgc19yZXBsYWNlID0gcy5yZXBsYWNlCisgICAgZm9yIHggaW4gX1JBTkdFXzEwOgorICAgICAgICBzX3JlcGxhY2UoZnJvbV9zdHIsIHRvX3N0cikKKworCisjIFRoaXMgZGVjcmVhc2VzIHRoZSBjaGFyYWN0ZXIgY291bnQKK0BiZW5jaCgnIldoZW4gc2hhbGwgd2UgdGhyZWUgbWVldCBhZ2Fpbj8iLnJlcGxhY2UoImVlIiwgIiIpJywKKyAgICAgICAncmVwbGFjZS9yZW1vdmUgbXVsdGlwbGUgY2hhcmFjdGVycycsIDEwMDApCitkZWYgcmVwbGFjZV9tdWx0aXBsZV9jaGFyYWN0ZXJfcmVtb3ZlKFNUUik6CisgICAgcyA9IFNUUigiV2hlbiBzaGFsbCB3ZSB0aHJlZSBtZWV0IGFnYWluPyIpCisgICAgZnJvbV9zdHIgPSBTVFIoImVlIikKKyAgICB0b19zdHIgPSBTVFIoIiIpCisgICAgc19yZXBsYWNlID0gcy5yZXBsYWNlCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNfcmVwbGFjZShmcm9tX3N0ciwgdG9fc3RyKQorCisKK2JpZ19zID0gIkEiICsgKCJaIioxMjgqMTAyNCkKK2JpZ19zX2J5dGVzID0gYnl0ZXNfZnJvbV9zdHIoYmlnX3MpCitiaWdfc191bmljb2RlID0gdW5pY29kZV9mcm9tX3N0cihiaWdfcykKK2RlZiBfZ2V0X2JpZ19zKFNUUik6CisgICAgaWYgU1RSIGlzIFVOSUNPREU6IHJldHVybiBiaWdfc191bmljb2RlCisgICAgaWYgU1RSIGlzIEJZVEVTOiByZXR1cm4gYmlnX3NfYnl0ZXMKKyAgICByYWlzZSBBc3NlcnRpb25FcnJvcgorCisjIFRoZSBvbGRlciByZXBsYWNlIGltcGxlbWVudGF0aW9uIGNvdW50ZWQgYWxsIG1hdGNoZXMgaW4KKyMgdGhlIHN0cmluZyBldmVuIHdoZW4gaXQgb25seSBuZWVlZCB0byBtYWtlIG9uZSByZXBsYWNlbWVudC4KK0BiZW5jaCgnKCJBIiArICgiWiIqMTI4KjEwMjQpKS5yZXBsYWNlKCJBIiwgIkJCIiwgMSknLAorICAgICAgICdxdWljayByZXBsYWNlIHNpbmdsZSBjaGFyYWN0ZXIgbWF0Y2gnLCAxMCkKK2RlZiBxdWlja19yZXBsYWNlX3NpbmdsZV9tYXRjaChTVFIpOgorICAgIHMgPSBfZ2V0X2JpZ19zKFNUUikKKyAgICBmcm9tX3N0ciA9IFNUUigiQSIpCisgICAgdG9fc3RyID0gU1RSKCJCQiIpCisgICAgc19yZXBsYWNlID0gcy5yZXBsYWNlCisgICAgZm9yIHggaW4gX1JBTkdFXzEwOgorICAgICAgICBzX3JlcGxhY2UoZnJvbV9zdHIsIHRvX3N0ciwgMSkKKworQGJlbmNoKCcoIkEiICsgKCJaIioxMjgqMTAyNCkpLnJlcGxhY2UoIkFaWiIsICJCQlpaIiwgMSknLAorICAgICAgICdxdWljayByZXBsYWNlIG11bHRpcGxlIGNoYXJhY3RlciBtYXRjaCcsIDEwKQorZGVmIHF1aWNrX3JlcGxhY2VfbXVsdGlwbGVfbWF0Y2goU1RSKToKKyAgICBzID0gX2dldF9iaWdfcyhTVFIpCisgICAgZnJvbV9zdHIgPSBTVFIoIkFaWiIpCisgICAgdG9fc3RyID0gU1RSKCJCQlpaIikKKyAgICBzX3JlcGxhY2UgPSBzLnJlcGxhY2UKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTA6CisgICAgICAgIHNfcmVwbGFjZShmcm9tX3N0ciwgdG9fc3RyLCAxKQorCisKKyMjIyMKKworIyBDQ1AgZG9lcyBhIGxvdCBvZiB0aGlzLCBmb3IgaW50ZXJuYXRpb25hbGlzYXRpb24gb2YgaW5nYW1lIG1lc3NhZ2VzLgorX2Zvcm1hdCA9ICJUaGUgJSh0aGluZylzIGlzICUocGxhY2UpcyB0aGUgJShsb2NhdGlvbilzLiIKK19mb3JtYXRfZGljdCA9IHsgInRoaW5nIjoiVEhJTkciLCAicGxhY2UiOiJQTEFDRSIsICJsb2NhdGlvbiI6IkxPQ0FUSU9OIiwgfQorX2Zvcm1hdF9ieXRlcyA9IGJ5dGVzX2Zyb21fc3RyKF9mb3JtYXQpCitfZm9ybWF0X3VuaWNvZGUgPSB1bmljb2RlX2Zyb21fc3RyKF9mb3JtYXQpCitfZm9ybWF0X2RpY3RfYnl0ZXMgPSBkaWN0KChieXRlc19mcm9tX3N0cihrKSwgYnl0ZXNfZnJvbV9zdHIodikpIGZvciAoayx2KSBpbiBfZm9ybWF0X2RpY3QuaXRlbXMoKSkKK19mb3JtYXRfZGljdF91bmljb2RlID0gZGljdCgodW5pY29kZV9mcm9tX3N0cihrKSwgdW5pY29kZV9mcm9tX3N0cih2KSkgZm9yIChrLHYpIGluIF9mb3JtYXRfZGljdC5pdGVtcygpKQorCitkZWYgX2dldF9mb3JtYXQoU1RSKToKKyAgICBpZiBTVFIgaXMgVU5JQ09ERToKKyAgICAgICAgcmV0dXJuIF9mb3JtYXRfdW5pY29kZQorICAgIGlmIFNUUiBpcyBCWVRFUzoKKyAgICAgICAgaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywpOgorICAgICAgICAgICAgcmFpc2UgVW5zdXBwb3J0ZWRUeXBlCisgICAgICAgIHJldHVybiBfZm9ybWF0X2J5dGVzCisgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IKKworZGVmIF9nZXRfZm9ybWF0X2RpY3QoU1RSKToKKyAgICBpZiBTVFIgaXMgVU5JQ09ERToKKyAgICAgICAgcmV0dXJuIF9mb3JtYXRfZGljdF91bmljb2RlCisgICAgaWYgU1RSIGlzIEJZVEVTOgorICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvID49ICgzLCk6CisgICAgICAgICAgICByYWlzZSBVbnN1cHBvcnRlZFR5cGUKKyAgICAgICAgcmV0dXJuIF9mb3JtYXRfZGljdF9ieXRlcworICAgIHJhaXNlIEFzc2VydGlvbkVycm9yCisKKyMgRm9ybWF0dGluZy4KK0BiZW5jaCgnIlRoZSAlKGsxKXMgaXMgJShrMilzIHRoZSAlKGszKXMuIiV7ImsxIjoieCIsImsyIjoieSIsImszIjoieiIsfScsCisgICAgICAgJ2Zvcm1hdHRpbmcgYSBzdHJpbmcgdHlwZSB3aXRoIGEgZGljdCcsIDEwMDApCitkZWYgZm9ybWF0X3dpdGhfZGljdChTVFIpOgorICAgIHMgPSBfZ2V0X2Zvcm1hdChTVFIpCisgICAgZCA9IF9nZXRfZm9ybWF0X2RpY3QoU1RSKQorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzICUgZAorCisKKyMjIyMgVXBwZXItIGFuZCBsb3dlci0gY2FzZSBjb252ZXJzaW9uCisKK0BiZW5jaCgnKCJXaGVyZSBpbiB0aGUgd29ybGQgaXMgQ2FybWVuIFNhbiBEZWlnbz8iKjEwKS5sb3dlcigpJywKKyAgICAgICAiY2FzZSBjb252ZXJzaW9uIC0tIHJhcmUiLCAxMDAwKQorZGVmIGxvd2VyX2NvbnZlcnNpb25fcmFyZShTVFIpOgorICAgIHMgPSBTVFIoIldoZXJlIGluIHRoZSB3b3JsZCBpcyBDYXJtZW4gU2FuIERlaWdvPyIqMTApCisgICAgc19sb3dlciA9IHMubG93ZXIKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc19sb3dlcigpCisKK0BiZW5jaCgnKCJXSEVSRSBJTiBUSEUgV09STEQgSVMgQ0FSTUVOIFNBTiBERUlHTz8iKjEwKS5sb3dlcigpJywKKyAgICAgICAiY2FzZSBjb252ZXJzaW9uIC0tIGRlbnNlIiwgMTAwMCkKK2RlZiBsb3dlcl9jb252ZXJzaW9uX2RlbnNlKFNUUik6CisgICAgcyA9IFNUUigiV0hFUkUgSU4gVEhFIFdPUkxEIElTIENBUk1FTiBTQU4gREVJR08/IioxMCkKKyAgICBzX2xvd2VyID0gcy5sb3dlcgorICAgIGZvciB4IGluIF9SQU5HRV8xMDAwOgorICAgICAgICBzX2xvd2VyKCkKKworCitAYmVuY2goJygid0hFUkUgSU4gVEhFIFdPUkxEIElTIGNBUk1FTiBzQU4gZEVJR08/IioxMCkudXBwZXIoKScsCisgICAgICAgImNhc2UgY29udmVyc2lvbiAtLSByYXJlIiwgMTAwMCkKK2RlZiB1cHBlcl9jb252ZXJzaW9uX3JhcmUoU1RSKToKKyAgICBzID0gU1RSKCJXaGVyZSBpbiB0aGUgd29ybGQgaXMgQ2FybWVuIFNhbiBEZWlnbz8iKjEwKQorICAgIHNfdXBwZXIgPSBzLnVwcGVyCisgICAgZm9yIHggaW4gX1JBTkdFXzEwMDA6CisgICAgICAgIHNfdXBwZXIoKQorCitAYmVuY2goJygid2hlcmUgaW4gdGhlIHdvcmxkIGlzIGNhcm1lbiBzYW4gZGVpZ28/IioxMCkudXBwZXIoKScsCisgICAgICAgImNhc2UgY29udmVyc2lvbiAtLSBkZW5zZSIsIDEwMDApCitkZWYgdXBwZXJfY29udmVyc2lvbl9kZW5zZShTVFIpOgorICAgIHMgPSBTVFIoIndoZXJlIGluIHRoZSB3b3JsZCBpcyBjYXJtZW4gc2FuIGRlaWdvPyIqMTApCisgICAgc191cHBlciA9IHMudXBwZXIKKyAgICBmb3IgeCBpbiBfUkFOR0VfMTAwMDoKKyAgICAgICAgc191cHBlcigpCisKKworIyBlbmQgb2YgYmVuY2htYXJrcworCisjIyMjIyMjIyMjIyMjIyMjIworCitjbGFzcyBCZW5jaFRpbWVyKHRpbWVpdC5UaW1lcik6CisgICAgZGVmIGJlc3Qoc2VsZiwgcmVwZWF0PTEpOgorICAgICAgICBmb3IgaSBpbiByYW5nZSgxLCAxMCk6CisgICAgICAgICAgICBudW1iZXIgPSAxMCoqaQorICAgICAgICAgICAgeCA9IHNlbGYudGltZWl0KG51bWJlcikKKyAgICAgICAgICAgIGlmIHggPiAwLjAyOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHRpbWVzID0gW3hdCisgICAgICAgIGZvciBpIGluIHJhbmdlKDEsIHJlcGVhdCk6CisgICAgICAgICAgICB0aW1lcy5hcHBlbmQoc2VsZi50aW1laXQobnVtYmVyKSkKKyAgICAgICAgcmV0dXJuIG1pbih0aW1lcykgLyBudW1iZXIKKworZGVmIG1haW4oKToKKyAgICAob3B0aW9ucywgdGVzdF9uYW1lcykgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgaWYgb3B0aW9ucy5ieXRlc19vbmx5IGFuZCBvcHRpb25zLnVuaWNvZGVfb25seToKKyAgICAgICAgcmFpc2UgU3lzdGVtRXhpdCgiT25seSBvbmUgb2YgLS04LWJpdCBhbmQgLS11bmljb2RlIGFyZSBhbGxvd2VkIikKKworICAgIGJlbmNoX2Z1bmN0aW9ucyA9IFtdCisgICAgZm9yIChrLHYpIGluIGdsb2JhbHMoKS5pdGVtcygpOgorICAgICAgICBpZiBoYXNhdHRyKHYsICJpc19iZW5jaCIpOgorICAgICAgICAgICAgaWYgdGVzdF9uYW1lczoKKyAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiB0ZXN0X25hbWVzOgorICAgICAgICAgICAgICAgICAgICBpZiBuYW1lIGluIHYuZ3JvdXA6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgTm90IHNlbGVjdGVkLCBpZ25vcmUKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIG9wdGlvbnMuc2tpcF9yZSBhbmQgaGFzYXR0cih2LCAidXNlc19yZSIpOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGJlbmNoX2Z1bmN0aW9ucy5hcHBlbmQoICh2Lmdyb3VwLCBrLCB2KSApCisgICAgYmVuY2hfZnVuY3Rpb25zLnNvcnQoKQorCisgICAgcCgiYnl0ZXNcdHVuaWNvZGUiKQorICAgIHAoIihpbiBtcylcdChpbiBtcylcdCVcdGNvbW1lbnQiKQorCisgICAgYnl0ZXNfdG90YWwgPSB1bmlfdG90YWwgPSAwLjAKKworICAgIGZvciB0aXRsZSwgZ3JvdXAgaW4gaXRlcnRvb2xzLmdyb3VwYnkoYmVuY2hfZnVuY3Rpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRvci5pdGVtZ2V0dGVyKDApKToKKyAgICAgICAgIyBGbHVzaCBidWZmZXIgYmVmb3JlIGVhY2ggZ3JvdXAKKyAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCisgICAgICAgIHAoIj0iKjEwLCB0aXRsZSkKKyAgICAgICAgZm9yIChfLCBrLCB2KSBpbiBncm91cDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIodiwgImlzX2JlbmNoIik6CisgICAgICAgICAgICAgICAgYnl0ZXNfdGltZSA9IDAuMAorICAgICAgICAgICAgICAgIGJ5dGVzX3RpbWVfcyA9ICIgLSAiCisgICAgICAgICAgICAgICAgaWYgbm90IG9wdGlvbnMudW5pY29kZV9vbmx5OgorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlc190aW1lID0gQmVuY2hUaW1lcigiX19tYWluX18uJXMoX19tYWluX18uQllURVMpIiAlIChrLCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IF9fbWFpbl9fIikuYmVzdChSRVBFQVQpCisgICAgICAgICAgICAgICAgICAgICAgICBieXRlc190aW1lX3MgPSAiJS4yZiIgJSAoMTAwMCAqIGJ5dGVzX3RpbWUpCisgICAgICAgICAgICAgICAgICAgICAgICBieXRlc190b3RhbCArPSBieXRlc190aW1lCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBVbnN1cHBvcnRlZFR5cGU6CisgICAgICAgICAgICAgICAgICAgICAgICBieXRlc190aW1lX3MgPSAiTi9BIgorICAgICAgICAgICAgICAgIHVuaV90aW1lID0gMC4wCisgICAgICAgICAgICAgICAgdW5pX3RpbWVfcyA9ICIgLSAiCisgICAgICAgICAgICAgICAgaWYgbm90IG9wdGlvbnMuYnl0ZXNfb25seToKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgdW5pX3RpbWUgPSBCZW5jaFRpbWVyKCJfX21haW5fXy4lcyhfX21haW5fXy5VTklDT0RFKSIgJSAoaywpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbXBvcnQgX19tYWluX18iKS5iZXN0KFJFUEVBVCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuaV90aW1lX3MgPSAiJS4yZiIgJSAoMTAwMCAqIHVuaV90aW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgdW5pX3RvdGFsICs9IHVuaV90aW1lCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBVbnN1cHBvcnRlZFR5cGU6CisgICAgICAgICAgICAgICAgICAgICAgICB1bmlfdGltZV9zID0gIk4vQSIKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGF2ZXJhZ2UgPSBieXRlc190aW1lL3VuaV90aW1lCisgICAgICAgICAgICAgICAgZXhjZXB0IChUeXBlRXJyb3IsIFplcm9EaXZpc2lvbkVycm9yKToKKyAgICAgICAgICAgICAgICAgICAgYXZlcmFnZSA9IDAuMAorICAgICAgICAgICAgICAgIHAoIiVzXHQlc1x0JS4xZlx0JXMgKColZCkiICUgKAorICAgICAgICAgICAgICAgICAgICBieXRlc190aW1lX3MsIHVuaV90aW1lX3MsIDEwMC4qYXZlcmFnZSwKKyAgICAgICAgICAgICAgICAgICAgdi5jb21tZW50LCB2LnJlcGVhdF9jb3VudCkpCisKKyAgICBpZiBieXRlc190b3RhbCA9PSB1bmlfdG90YWwgPT0gMC4wOgorICAgICAgICBwKCJUaGF0IHdhcyB6aXBweSEiKQorICAgIGVsc2U6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJhdGlvID0gYnl0ZXNfdG90YWwvdW5pX3RvdGFsCisgICAgICAgIGV4Y2VwdCBaZXJvRGl2aXNpb25FcnJvcjoKKyAgICAgICAgICAgIHJhdGlvID0gMC4wCisgICAgICAgIHAoIiUuMmZcdCUuMmZcdCUuMWZcdCVzIiAlICgKKyAgICAgICAgICAgIDEwMDAqYnl0ZXNfdG90YWwsIDEwMDAqdW5pX3RvdGFsLCAxMDAuKnJhdGlvLAorICAgICAgICAgICAgIlRPVEFMIikpCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy91bmljb2RlL2NvbXBhcmVjb2RlY3MucHkgYi9Ub29scy91bmljb2RlL2NvbXBhcmVjb2RlY3MucHkKaW5kZXggMGY1YzFlMi4uN2RlMTRmZCAxMDA2NDQKLS0tIGEvVG9vbHMvdW5pY29kZS9jb21wYXJlY29kZWNzLnB5CisrKyBiL1Rvb2xzL3VuaWNvZGUvY29tcGFyZWNvZGVjcy5weQpAQCAtMTQsNyArMTQsNyBAQAogICAgIHByaW50KCdDb21wYXJpbmcgZW5jb2RpbmcvZGVjb2Rpbmcgb2YgICAlciBhbmQgICAlcicgJSAoZW5jb2RpbmcxLCBlbmNvZGluZzIpKQogICAgIG1pc21hdGNoID0gMAogICAgICMgQ2hlY2sgZW5jb2RpbmcKLSAgICBmb3IgaSBpbiByYW5nZShzeXMubWF4dW5pY29kZSk6CisgICAgZm9yIGkgaW4gcmFuZ2Uoc3lzLm1heHVuaWNvZGUrMSk6CiAgICAgICAgIHUgPSBjaHIoaSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgYzEgPSB1LmVuY29kZShlbmNvZGluZzEpCmRpZmYgLS1naXQgYS9Ub29scy91bmljb2RlL2dlbmNvZGVjLnB5IGIvVG9vbHMvdW5pY29kZS9nZW5jb2RlYy5weQppbmRleCA3ZTdkNmQwLi5mNWExYWYzIDEwMDY0NAotLS0gYS9Ub29scy91bmljb2RlL2dlbmNvZGVjLnB5CisrKyBiL1Rvb2xzL3VuaWNvZGUvZ2VuY29kZWMucHkKQEAgLTEwMiw3ICsxMDIsNyBAQAogICAgICAgICAgICAgY29tbWVudCA9ICcnCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBjb21tZW50ID0gY29tbWVudFsxOl0uc3RyaXAoKQotICAgICAgICBpZiBlbmMgPCAyNTY6CisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGVuYywgdHVwbGUpIGFuZCBlbmMgPCAyNTY6CiAgICAgICAgICAgICBpZiBlbmMgaW4gdW5tYXBwZWQ6CiAgICAgICAgICAgICAgICAgdW5tYXBwZWQucmVtb3ZlKGVuYykKICAgICAgICAgICAgIGlmIGVuYyA9PSB1bmk6CkBAIC0yMDIsMTEgKzIwMiwxMCBAQAogICAgICMgQW5hbHl6ZSBtYXAgYW5kIGNyZWF0ZSB0YWJsZSBkaWN0CiAgICAgbWFwcGluZ3MgPSBzb3J0ZWQobWFwLml0ZW1zKCkpCiAgICAgdGFibGUgPSB7fQotICAgIG1heGtleSA9IDAKKyAgICBtYXhrZXkgPSAyNTUKICAgICBpZiAnSURFTlRJVFknIGluIG1hcDoKICAgICAgICAgZm9yIGtleSBpbiByYW5nZSgyNTYpOgogICAgICAgICAgICAgdGFibGVba2V5XSA9IChrZXksICcnKQotICAgICAgICBtYXhrZXkgPSAyNTUKICAgICAgICAgZGVsIG1hcFsnSURFTlRJVFknXQogICAgIGZvciBtYXBrZXksIG1hcHZhbHVlIGluIG1hcHBpbmdzOgogICAgICAgICBtYXBjb21tZW50ID0gJycKQEAgLTIyNCw2ICsyMjMsNyBAQAogICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgIyBDcmVhdGUgdGFibGUgY29kZQorICAgIG1heGNoYXIgPSAwCiAgICAgZm9yIGtleSBpbiByYW5nZShtYXhrZXkgKyAxKToKICAgICAgICAgaWYga2V5IG5vdCBpbiB0YWJsZToKICAgICAgICAgICAgIG1hcHZhbHVlID0gTUlTU0lOR19DT0RFCkBAIC0yMzgsNiArMjM4LDcgQEAKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBtYXBjaGFyID0gY2hyKG1hcHZhbHVlKQorICAgICAgICBtYXhjaGFyID0gbWF4KG1heGNoYXIsIG9yZChtYXBjaGFyKSkKICAgICAgICAgaWYgbWFwY29tbWVudCBhbmQgY29tbWVudHM6CiAgICAgICAgICAgICBhcHBlbmQoJyAgICAlYSBcdCMgICVzIC0+ICVzJyAlIChtYXBjaGFyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZXhyZXByKGtleSwga2V5X3ByZWNpc2lvbiksCkBAIC0yNDUsNiArMjQ2LDggQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGFwcGVuZCgnICAgICVhJyAlIG1hcGNoYXIpCiAKKyAgICBpZiBtYXhjaGFyIDwgMjU2OgorICAgICAgICBhcHBlbmQoJyAgICAlYSBcdCMjIFdpZGVuIHRvIFVDUzIgZm9yIG9wdGltaXphdGlvbicgJSBVTklfVU5ERUZJTkVEKQogICAgIGFwcGVuZCgnKScpCiAgICAgcmV0dXJuIGwKIApkaWZmIC0tZ2l0IGEvVG9vbHMvdW5pY29kZS9tYWtldW5pY29kZWRhdGEucHkgYi9Ub29scy91bmljb2RlL21ha2V1bmljb2RlZGF0YS5weQppbmRleCBkNTAzMTkwLi5kODNjZjYzIDEwMDY0NAotLS0gYS9Ub29scy91bmljb2RlL21ha2V1bmljb2RlZGF0YS5weQorKysgYi9Ub29scy91bmljb2RlL21ha2V1bmljb2RlZGF0YS5weQpAQCAtMjEsMTcgKzIxLDIzIEBACiAjIDIwMDQtMDUtMjkgcGVya3kgYWRkIGVhc3QgYXNpYW4gd2lkdGggaW5mb3JtYXRpb24KICMgMjAwNi0wMy0xMCBtdmwgIHVwZGF0ZSB0byBVbmljb2RlIDQuMTsgYWRkIFVDRCAzLjIgZGVsdGEKICMgMjAwOC0wNi0xMSBnYiAgIGFkZCBQUklOVEFCTEVfTUFTSyBmb3IgQXRzdW8gSXNoaW1vdG8ncyBhc2NpaSgpIHBhdGNoCisjIDIwMTEtMTAtMjEgZXppbyBhZGQgc3VwcG9ydCBmb3IgbmFtZSBhbGlhc2VzIGFuZCBuYW1lZCBzZXF1ZW5jZXMKKyMgMjAxMi0wMSAgICBiZW5qYW1pbiBhZGQgZnVsbCBjYXNlIG1hcHBpbmdzCiAjCiAjIHdyaXR0ZW4gYnkgRnJlZHJpayBMdW5kaCAoZnJlZHJpa0BweXRob253YXJlLmNvbSkKICMKIAotaW1wb3J0IHN5cywgb3MsIHppcGZpbGUKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1wb3J0IHppcGZpbGUKKworZnJvbSB0ZXh0d3JhcCBpbXBvcnQgZGVkZW50CiAKIFNDUklQVCA9IHN5cy5hcmd2WzBdCiBWRVJTSU9OID0gIjMuMiIKIAogIyBUaGUgVW5pY29kZSBEYXRhYmFzZQotVU5JREFUQV9WRVJTSU9OID0gIjYuMC4wIgorVU5JREFUQV9WRVJTSU9OID0gIjYuMS4wIgogVU5JQ09ERV9EQVRBID0gIlVuaWNvZGVEYXRhJXMudHh0IgogQ09NUE9TSVRJT05fRVhDTFVTSU9OUyA9ICJDb21wb3NpdGlvbkV4Y2x1c2lvbnMlcy50eHQiCiBFQVNUQVNJQU5fV0lEVEggPSAiRWFzdEFzaWFuV2lkdGglcy50eHQiCkBAIC0zOSw2ICs0NSwxOSBAQAogREVSSVZFRF9DT1JFX1BST1BFUlRJRVMgPSAiRGVyaXZlZENvcmVQcm9wZXJ0aWVzJXMudHh0IgogREVSSVZFRE5PUk1BTElaQVRJT05fUFJPUFMgPSAiRGVyaXZlZE5vcm1hbGl6YXRpb25Qcm9wcyVzLnR4dCIKIExJTkVfQlJFQUsgPSAiTGluZUJyZWFrJXMudHh0IgorTkFNRV9BTElBU0VTID0gIk5hbWVBbGlhc2VzJXMudHh0IgorTkFNRURfU0VRVUVOQ0VTID0gIk5hbWVkU2VxdWVuY2VzJXMudHh0IgorU1BFQ0lBTF9DQVNJTkcgPSAiU3BlY2lhbENhc2luZyVzLnR4dCIKK0NBU0VfRk9MRElORyA9ICJDYXNlRm9sZGluZyVzLnR4dCIKKworIyBQcml2YXRlIFVzZSBBcmVhcyAtLSBpbiBwbGFuZXMgMSwgMTUsIDE2CitQVUFfMSA9IHJhbmdlKDB4RTAwMCwgMHhGOTAwKQorUFVBXzE1ID0gcmFuZ2UoMHhGMDAwMCwgMHhGRkZGRSkKK1BVQV8xNiA9IHJhbmdlKDB4MTAwMDAwLCAweDEwRkZGRSkKKworIyB3ZSB1c2UgdGhpcyByYW5nZXMgb2YgUFVBXzE1IHRvIHN0b3JlIG5hbWUgYWxpYXNlcyBhbmQgbmFtZWQgc2VxdWVuY2VzCitOQU1FX0FMSUFTRVNfU1RBUlQgPSAweEYwMDAwCitOQU1FRF9TRVFVRU5DRVNfU1RBUlQgPSAweEYwMjAwCiAKIG9sZF92ZXJzaW9ucyA9IFsiMy4yLjAiXQogCkBAIC02NywxMyArODYsMTUgQEAKIFhJRF9TVEFSVF9NQVNLID0gMHgxMDAKIFhJRF9DT05USU5VRV9NQVNLID0gMHgyMDAKIFBSSU5UQUJMRV9NQVNLID0gMHg0MDAKLU5PREVMVEFfTUFTSyA9IDB4ODAwCi1OVU1FUklDX01BU0sgPSAweDEwMDAKK05VTUVSSUNfTUFTSyA9IDB4ODAwCitDQVNFX0lHTk9SQUJMRV9NQVNLID0gMHgxMDAwCitDQVNFRF9NQVNLID0gMHgyMDAwCitFWFRFTkRFRF9DQVNFX01BU0sgPSAweDQwMDAKIAogIyB0aGVzZSByYW5nZXMgbmVlZCB0byBtYXRjaCB1bmljb2RlZGF0YS5jOmlzX3VuaWZpZWRfaWRlb2dyYXBoCiBjamtfcmFuZ2VzID0gWwogICAgICgnMzQwMCcsICc0REI1JyksCi0gICAgKCc0RTAwJywgJzlGQ0InKSwKKyAgICAoJzRFMDAnLCAnOUZDQycpLAogICAgICgnMjAwMDAnLCAnMkE2RDYnKSwKICAgICAoJzJBNzAwJywgJzJCNzM0JyksCiAgICAgKCcyQjc0MCcsICcyQjgxRCcpCkBAIC0zNjcsNiArMzg4LDcgQEAKICAgICBudW1lcmljID0ge30KICAgICBzcGFjZXMgPSBbXQogICAgIGxpbmVicmVha3MgPSBbXQorICAgIGV4dHJhX2Nhc2luZyA9IFtdCiAKICAgICBmb3IgY2hhciBpbiB1bmljb2RlLmNoYXJzOgogICAgICAgICByZWNvcmQgPSB1bmljb2RlLnRhYmxlW2NoYXJdCkBAIC0zNzksNyArNDAxLDcgQEAKICAgICAgICAgICAgIGRlbHRhID0gVHJ1ZQogICAgICAgICAgICAgaWYgY2F0ZWdvcnkgaW4gWyJMbSIsICJMdCIsICJMdSIsICJMbCIsICJMbyJdOgogICAgICAgICAgICAgICAgIGZsYWdzIHw9IEFMUEhBX01BU0sKLSAgICAgICAgICAgIGlmIGNhdGVnb3J5ID09ICJMbCI6CisgICAgICAgICAgICBpZiAiTG93ZXJjYXNlIiBpbiBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgIGZsYWdzIHw9IExPV0VSX01BU0sKICAgICAgICAgICAgIGlmICdMaW5lX0JyZWFrJyBpbiBwcm9wZXJ0aWVzIG9yIGJpZGlyZWN0aW9uYWwgPT0gIkIiOgogICAgICAgICAgICAgICAgIGZsYWdzIHw9IExJTkVCUkVBS19NQVNLCkBAIC0zODksNyArNDExLDcgQEAKICAgICAgICAgICAgICAgICBzcGFjZXMuYXBwZW5kKGNoYXIpCiAgICAgICAgICAgICBpZiBjYXRlZ29yeSA9PSAiTHQiOgogICAgICAgICAgICAgICAgIGZsYWdzIHw9IFRJVExFX01BU0sKLSAgICAgICAgICAgIGlmIGNhdGVnb3J5ID09ICJMdSI6CisgICAgICAgICAgICBpZiAiVXBwZXJjYXNlIiBpbiBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgIGZsYWdzIHw9IFVQUEVSX01BU0sKICAgICAgICAgICAgIGlmIGNoYXIgPT0gb3JkKCIgIikgb3IgY2F0ZWdvcnlbMF0gbm90IGluICgiQyIsICJaIik6CiAgICAgICAgICAgICAgICAgZmxhZ3MgfD0gUFJJTlRBQkxFX01BU0sKQEAgLTM5Nyw3ICs0MTksMTIgQEAKICAgICAgICAgICAgICAgICBmbGFncyB8PSBYSURfU1RBUlRfTUFTSwogICAgICAgICAgICAgaWYgIlhJRF9Db250aW51ZSIgaW4gcHJvcGVydGllczoKICAgICAgICAgICAgICAgICBmbGFncyB8PSBYSURfQ09OVElOVUVfTUFTSwotICAgICAgICAgICAgIyB1c2UgZGVsdGEgcHJlZGljdG9yIGZvciB1cHBlci9sb3dlci90aXRsZSBpZiBpdCBmaXRzCisgICAgICAgICAgICBpZiAiQ2FzZWQiIGluIHByb3BlcnRpZXM6CisgICAgICAgICAgICAgICAgZmxhZ3MgfD0gQ0FTRURfTUFTSworICAgICAgICAgICAgaWYgIkNhc2VfSWdub3JhYmxlIiBpbiBwcm9wZXJ0aWVzOgorICAgICAgICAgICAgICAgIGZsYWdzIHw9IENBU0VfSUdOT1JBQkxFX01BU0sKKyAgICAgICAgICAgIHNjID0gdW5pY29kZS5zcGVjaWFsX2Nhc2luZy5nZXQoY2hhcikKKyAgICAgICAgICAgIGNmID0gdW5pY29kZS5jYXNlX2ZvbGRpbmcuZ2V0KGNoYXIsIFtjaGFyXSkKICAgICAgICAgICAgIGlmIHJlY29yZFsxMl06CiAgICAgICAgICAgICAgICAgdXBwZXIgPSBpbnQocmVjb3JkWzEyXSwgMTYpCiAgICAgICAgICAgICBlbHNlOgpAQCAtNDA5LDIzICs0MzYsMzkgQEAKICAgICAgICAgICAgIGlmIHJlY29yZFsxNF06CiAgICAgICAgICAgICAgICAgdGl0bGUgPSBpbnQocmVjb3JkWzE0XSwgMTYpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgVUNELmh0bWwgc2F5cyB0aGF0IGEgbWlzc2luZyB0aXRsZSBjaGFyIG1lYW5zIHRoYXQKLSAgICAgICAgICAgICAgICAjIGl0IGRlZmF1bHRzIHRvIHRoZSB1cHBlcmNhc2UgY2hhcmFjdGVyLCBub3QgdG8gdGhlCi0gICAgICAgICAgICAgICAgIyBjaGFyYWN0ZXIgaXRzZWxmLiBBcHBhcmVudGx5LCBpbiB0aGUgY3VycmVudCBVQ0QgKDUueCkKLSAgICAgICAgICAgICAgICAjIHRoaXMgZmVhdHVyZSBpcyBuZXZlciB1c2VkCiAgICAgICAgICAgICAgICAgdGl0bGUgPSB1cHBlcgotICAgICAgICAgICAgdXBwZXJfZCA9IHVwcGVyIC0gY2hhcgotICAgICAgICAgICAgbG93ZXJfZCA9IGxvd2VyIC0gY2hhcgotICAgICAgICAgICAgdGl0bGVfZCA9IHRpdGxlIC0gY2hhcgotICAgICAgICAgICAgaWYgLTMyNzY4IDw9IHVwcGVyX2QgPD0gMzI3NjcgYW5kIFwKLSAgICAgICAgICAgICAgIC0zMjc2OCA8PSBsb3dlcl9kIDw9IDMyNzY3IGFuZCBcCi0gICAgICAgICAgICAgICAtMzI3NjggPD0gdGl0bGVfZCA8PSAzMjc2NzoKLSAgICAgICAgICAgICAgICAjIHVzZSBkZWx0YXMKLSAgICAgICAgICAgICAgICB1cHBlciA9IHVwcGVyX2QgJiAweGZmZmYKLSAgICAgICAgICAgICAgICBsb3dlciA9IGxvd2VyX2QgJiAweGZmZmYKLSAgICAgICAgICAgICAgICB0aXRsZSA9IHRpdGxlX2QgJiAweGZmZmYKKyAgICAgICAgICAgIGlmIHNjIGlzIE5vbmUgYW5kIGNmICE9IFtsb3dlcl06CisgICAgICAgICAgICAgICAgc2MgPSAoW2xvd2VyXSwgW3RpdGxlXSwgW3VwcGVyXSkKKyAgICAgICAgICAgIGlmIHNjIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgaWYgdXBwZXIgPT0gbG93ZXIgPT0gdGl0bGU6CisgICAgICAgICAgICAgICAgICAgIHVwcGVyID0gbG93ZXIgPSB0aXRsZSA9IDAKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB1cHBlciA9IHVwcGVyIC0gY2hhcgorICAgICAgICAgICAgICAgICAgICBsb3dlciA9IGxvd2VyIC0gY2hhcgorICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHRpdGxlIC0gY2hhcgorICAgICAgICAgICAgICAgICAgICBhc3NlcnQgKGFicyh1cHBlcikgPD0gMjE0NzQ4MzY0NyBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYnMobG93ZXIpIDw9IDIxNDc0ODM2NDcgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzKHRpdGxlKSA8PSAyMTQ3NDgzNjQ3KQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBmbGFncyB8PSBOT0RFTFRBX01BU0sKKyAgICAgICAgICAgICAgICAjIFRoaXMgaGFwcGVucyBlaXRoZXIgd2hlbiBzb21lIGNoYXJhY3RlciBtYXBzIHRvIG1vcmUgdGhhbiBvbmUKKyAgICAgICAgICAgICAgICAjIGNoYXJhY3RlciBpbiB1cHBlcmNhc2UsIGxvd2VyY2FzZSwgb3IgdGl0bGVjYXNlIG9yIHRoZQorICAgICAgICAgICAgICAgICMgY2FzZWZvbGRlZCB2ZXJzaW9uIG9mIHRoZSBjaGFyYWN0ZXIgaXMgZGlmZmVyZW50IGZyb20gdGhlCisgICAgICAgICAgICAgICAgIyBsb3dlcmNhc2UuIFRoZSBleHRyYSBjaGFyYWN0ZXJzIGFyZSBzdG9yZWQgaW4gYSBkaWZmZXJlbnQKKyAgICAgICAgICAgICAgICAjIGFycmF5LgorICAgICAgICAgICAgICAgIGZsYWdzIHw9IEVYVEVOREVEX0NBU0VfTUFTSworICAgICAgICAgICAgICAgIGxvd2VyID0gbGVuKGV4dHJhX2Nhc2luZykgfCAobGVuKHNjWzBdKSA8PCAyNCkKKyAgICAgICAgICAgICAgICBleHRyYV9jYXNpbmcuZXh0ZW5kKHNjWzBdKQorICAgICAgICAgICAgICAgIGlmIGNmICE9IHNjWzBdOgorICAgICAgICAgICAgICAgICAgICBsb3dlciB8PSBsZW4oY2YpIDw8IDIwCisgICAgICAgICAgICAgICAgICAgIGV4dHJhX2Nhc2luZy5leHRlbmQoY2YpCisgICAgICAgICAgICAgICAgdXBwZXIgPSBsZW4oZXh0cmFfY2FzaW5nKSB8IChsZW4oc2NbMl0pIDw8IDI0KQorICAgICAgICAgICAgICAgIGV4dHJhX2Nhc2luZy5leHRlbmQoc2NbMl0pCisgICAgICAgICAgICAgICAgIyBUaXRsZSBpcyBwcm9iYWJseSBlcXVhbCB0byB1cHBlci4KKyAgICAgICAgICAgICAgICBpZiBzY1sxXSA9PSBzY1syXToKKyAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB1cHBlcgorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gbGVuKGV4dHJhX2Nhc2luZykgfCAobGVuKHNjWzFdKSA8PCAyNCkKKyAgICAgICAgICAgICAgICAgICAgZXh0cmFfY2FzaW5nLmV4dGVuZChzY1sxXSkKICAgICAgICAgICAgICMgZGVjaW1hbCBkaWdpdCwgaW50ZWdlciBkaWdpdAogICAgICAgICAgICAgZGVjaW1hbCA9IDAKICAgICAgICAgICAgIGlmIHJlY29yZFs2XToKQEAgLTQ1Miw2ICs0OTUsNyBAQAogICAgIHByaW50KHN1bShtYXAobGVuLCBudW1lcmljLnZhbHVlcygpKSksICJudW1lcmljIGNvZGUgcG9pbnRzIikKICAgICBwcmludChsZW4oc3BhY2VzKSwgIndoaXRlc3BhY2UgY29kZSBwb2ludHMiKQogICAgIHByaW50KGxlbihsaW5lYnJlYWtzKSwgImxpbmVicmVhayBjb2RlIHBvaW50cyIpCisgICAgcHJpbnQobGVuKGV4dHJhX2Nhc2luZyksICJleHRlbmRlZCBjYXNlIGFycmF5IikKIAogICAgIHByaW50KCItLS0gV3JpdGluZyIsIEZJTEUsICIuLi4iKQogCkBAIC00NjUsNiArNTA5LDE0IEBACiAgICAgcHJpbnQoIn07IiwgZmlsZT1mcCkKICAgICBwcmludChmaWxlPWZwKQogCisgICAgcHJpbnQoIi8qIGV4dGVuZGVkIGNhc2UgbWFwcGluZ3MgKi8iLCBmaWxlPWZwKQorICAgIHByaW50KGZpbGU9ZnApCisgICAgcHJpbnQoImNvbnN0IFB5X1VDUzQgX1B5VW5pY29kZV9FeHRlbmRlZENhc2VbXSA9IHsiLCBmaWxlPWZwKQorICAgIGZvciBjIGluIGV4dHJhX2Nhc2luZzoKKyAgICAgICAgcHJpbnQoIiAgICAlZCwiICUgYywgZmlsZT1mcCkKKyAgICBwcmludCgifTsiLCBmaWxlPWZwKQorICAgIHByaW50KGZpbGU9ZnApCisKICAgICAjIHNwbGl0IGRlY29tcG9zaXRpb24gaW5kZXggdGFibGUKICAgICBpbmRleDEsIGluZGV4Miwgc2hpZnQgPSBzcGxpdGJpbnMoaW5kZXgsIHRyYWNlKQogCkBAIC02OTIsNiArNzQ0LDM5IEBACiAgICAgcHJpbnQoIi8qIG5hbWUtPmNvZGUgZGljdGlvbmFyeSAqLyIsIGZpbGU9ZnApCiAgICAgY29kZWhhc2guZHVtcChmcCwgdHJhY2UpCiAKKyAgICBwcmludChmaWxlPWZwKQorICAgIHByaW50KCdzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGFsaWFzZXNfc3RhcnQgPSAlI3g7JyAlCisgICAgICAgICAgTkFNRV9BTElBU0VTX1NUQVJULCBmaWxlPWZwKQorICAgIHByaW50KCdzdGF0aWMgY29uc3QgdW5zaWduZWQgaW50IGFsaWFzZXNfZW5kID0gJSN4OycgJQorICAgICAgICAgIChOQU1FX0FMSUFTRVNfU1RBUlQgKyBsZW4odW5pY29kZS5hbGlhc2VzKSksIGZpbGU9ZnApCisKKyAgICBwcmludCgnc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBuYW1lX2FsaWFzZXNbXSA9IHsnLCBmaWxlPWZwKQorICAgIGZvciBuYW1lLCBjb2RlcG9pbnQgaW4gdW5pY29kZS5hbGlhc2VzOgorICAgICAgICBwcmludCgnICAgIDB4JTA0WCwnICUgY29kZXBvaW50LCBmaWxlPWZwKQorICAgIHByaW50KCd9OycsIGZpbGU9ZnApCisKKyAgICAjIEluIFVuaWNvZGUgNi4wLjAsIHRoZSBzZXF1ZW5jZXMgY29udGFpbiBhdCBtb3N0IDQgQk1QIGNoYXJzLAorICAgICMgc28gd2UgYXJlIHVzaW5nIFB5X1VDUzIgc2VxWzRdLiAgVGhpcyBuZWVkcyB0byBiZSB1cGRhdGVkIGlmIGxvbmdlcgorICAgICMgc2VxdWVuY2VzIG9yIHNlcXVlbmNlcyB3aXRoIG5vbi1CTVAgY2hhcnMgYXJlIGFkZGVkLgorICAgICMgdW5pY29kZWRhdGFfbG9va3VwIHNob3VsZCBiZSBhZGFwdGVkIHRvby4KKyAgICBwcmludChkZWRlbnQoIiIiCisgICAgICAgIHR5cGVkZWYgc3RydWN0IE5hbWVkU2VxdWVuY2UgeworICAgICAgICAgICAgaW50IHNlcWxlbjsKKyAgICAgICAgICAgIFB5X1VDUzIgc2VxWzRdOworICAgICAgICB9IG5hbWVkX3NlcXVlbmNlOworICAgICAgICAiIiIpLCBmaWxlPWZwKQorCisgICAgcHJpbnQoJ3N0YXRpYyBjb25zdCB1bnNpZ25lZCBpbnQgbmFtZWRfc2VxdWVuY2VzX3N0YXJ0ID0gJSN4OycgJQorICAgICAgICAgIE5BTUVEX1NFUVVFTkNFU19TVEFSVCwgZmlsZT1mcCkKKyAgICBwcmludCgnc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBuYW1lZF9zZXF1ZW5jZXNfZW5kID0gJSN4OycgJQorICAgICAgICAgIChOQU1FRF9TRVFVRU5DRVNfU1RBUlQgKyBsZW4odW5pY29kZS5uYW1lZF9zZXF1ZW5jZXMpKSwgZmlsZT1mcCkKKworICAgIHByaW50KCdzdGF0aWMgY29uc3QgbmFtZWRfc2VxdWVuY2UgbmFtZWRfc2VxdWVuY2VzW10gPSB7JywgZmlsZT1mcCkKKyAgICBmb3IgbmFtZSwgc2VxdWVuY2UgaW4gdW5pY29kZS5uYW1lZF9zZXF1ZW5jZXM6CisgICAgICAgIHNlcV9zdHIgPSAnLCAnLmpvaW4oJzB4JTA0WCcgJSBjcCBmb3IgY3AgaW4gc2VxdWVuY2UpCisgICAgICAgIHByaW50KCcgICAgeyVkLCB7JXN9fSwnICUgKGxlbihzZXF1ZW5jZSksIHNlcV9zdHIpLCBmaWxlPWZwKQorICAgIHByaW50KCd9OycsIGZpbGU9ZnApCisKICAgICBmcC5jbG9zZSgpCiAKIApAQCAtNzI2LDcgKzgxMSwxMSBAQAogICAgICAgICAgICAgZm9yIGsgaW4gcmFuZ2UobGVuKG9sZC50YWJsZVtpXSkpOgogICAgICAgICAgICAgICAgIGlmIG9sZC50YWJsZVtpXVtrXSAhPSBuZXcudGFibGVbaV1ba106CiAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gb2xkLnRhYmxlW2ldW2tdCi0gICAgICAgICAgICAgICAgICAgIGlmIGsgPT0gMjoKKyAgICAgICAgICAgICAgICAgICAgaWYgayA9PSAxIGFuZCBpIGluIFBVQV8xNToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgdGhlIG5hbWUgaXMgbm90IHNldCBpbiB0aGUgb2xkLnRhYmxlLCBidXQgaW4gdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAjIG5ldy50YWJsZSB3ZSBhcmUgdXNpbmcgaXQgZm9yIGFsaWFzZXMgYW5kIG5hbWVkIHNlcQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IHZhbHVlID09ICcnCisgICAgICAgICAgICAgICAgICAgIGVsaWYgayA9PSAyOgogICAgICAgICAgICAgICAgICAgICAgICAgI3ByaW50ICJDQVRFR09SWSIsaGV4KGkpLCBvbGQudGFibGVbaV1ba10sIG5ldy50YWJsZVtpXVtrXQogICAgICAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnlfY2hhbmdlc1tpXSA9IENBVEVHT1JZX05BTUVTLmluZGV4KHZhbHVlKQogICAgICAgICAgICAgICAgICAgICBlbGlmIGsgPT0gNDoKQEAgLTgxNiwxNSArOTA1LDE1IEBACiAgICAgICAgICAgICAgICAgIGV4cGFuZD0xLAogICAgICAgICAgICAgICAgICBjamtfY2hlY2s9VHJ1ZSk6CiAgICAgICAgIHNlbGYuY2hhbmdlZCA9IFtdCi0gICAgICAgIGZpbGUgPSBvcGVuX2RhdGEoVU5JQ09ERV9EQVRBLCB2ZXJzaW9uKQogICAgICAgICB0YWJsZSA9IFtOb25lXSAqIDB4MTEwMDAwCi0gICAgICAgIHdoaWxlIDE6Ci0gICAgICAgICAgICBzID0gZmlsZS5yZWFkbGluZSgpCi0gICAgICAgICAgICBpZiBub3QgczoKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgcyA9IHMuc3RyaXAoKS5zcGxpdCgiOyIpCi0gICAgICAgICAgICBjaGFyID0gaW50KHNbMF0sIDE2KQotICAgICAgICAgICAgdGFibGVbY2hhcl0gPSBzCisgICAgICAgIHdpdGggb3Blbl9kYXRhKFVOSUNPREVfREFUQSwgdmVyc2lvbikgYXMgZmlsZToKKyAgICAgICAgICAgIHdoaWxlIDE6CisgICAgICAgICAgICAgICAgcyA9IGZpbGUucmVhZGxpbmUoKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIHMgPSBzLnN0cmlwKCkuc3BsaXQoIjsiKQorICAgICAgICAgICAgICAgIGNoYXIgPSBpbnQoc1swXSwgMTYpCisgICAgICAgICAgICAgICAgdGFibGVbY2hhcl0gPSBzCiAKICAgICAgICAgY2prX3Jhbmdlc19mb3VuZCA9IFtdCiAKQEAgLTg1NSwzMiArOTQ0LDc5IEBACiAgICAgICAgIHNlbGYudGFibGUgPSB0YWJsZQogICAgICAgICBzZWxmLmNoYXJzID0gbGlzdChyYW5nZSgweDExMDAwMCkpICMgdW5pY29kZSAzLjIKIAotICAgICAgICBmaWxlID0gb3Blbl9kYXRhKENPTVBPU0lUSU9OX0VYQ0xVU0lPTlMsIHZlcnNpb24pCisgICAgICAgICMgY2hlY2sgZm9yIG5hbWUgYWxpYXNlcyBhbmQgbmFtZWQgc2VxdWVuY2VzLCBzZWUgIzEyNzUzCisgICAgICAgICMgYWxpYXNlcyBhbmQgbmFtZWQgc2VxdWVuY2VzIGFyZSBub3QgaW4gMy4yLjAKKyAgICAgICAgaWYgdmVyc2lvbiAhPSAnMy4yLjAnOgorICAgICAgICAgICAgc2VsZi5hbGlhc2VzID0gW10KKyAgICAgICAgICAgICMgc3RvcmUgYWxpYXNlcyBpbiB0aGUgUHJpdmF0ZSBVc2UgQXJlYSAxNSwgaW4gcmFuZ2UgVStGMDAwMC4uVStGMDBGRiwKKyAgICAgICAgICAgICMgaW4gb3JkZXIgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGNvbXByZXNzaW9uIGFuZCBsb29rdXAKKyAgICAgICAgICAgICMgYWxnb3JpdGhtcyB1c2VkIGZvciB0aGUgb3RoZXIgY2hhcmFjdGVycworICAgICAgICAgICAgcHVhX2luZGV4ID0gTkFNRV9BTElBU0VTX1NUQVJUCisgICAgICAgICAgICB3aXRoIG9wZW5fZGF0YShOQU1FX0FMSUFTRVMsIHZlcnNpb24pIGFzIGZpbGU6CisgICAgICAgICAgICAgICAgZm9yIHMgaW4gZmlsZToKKyAgICAgICAgICAgICAgICAgICAgcyA9IHMuc3RyaXAoKQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgcyBvciBzLnN0YXJ0c3dpdGgoJyMnKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGNoYXIsIG5hbWUsIGFiYnJldiA9IHMuc3BsaXQoJzsnKQorICAgICAgICAgICAgICAgICAgICBjaGFyID0gaW50KGNoYXIsIDE2KQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFsaWFzZXMuYXBwZW5kKChuYW1lLCBjaGFyKSkKKyAgICAgICAgICAgICAgICAgICAgIyBhbHNvIHN0b3JlIHRoZSBuYW1lIGluIHRoZSBQVUEgMQorICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlW3B1YV9pbmRleF1bMV0gPSBuYW1lCisgICAgICAgICAgICAgICAgICAgIHB1YV9pbmRleCArPSAxCisgICAgICAgICAgICBhc3NlcnQgcHVhX2luZGV4IC0gTkFNRV9BTElBU0VTX1NUQVJUID09IGxlbihzZWxmLmFsaWFzZXMpCisKKyAgICAgICAgICAgIHNlbGYubmFtZWRfc2VxdWVuY2VzID0gW10KKyAgICAgICAgICAgICMgc3RvcmUgbmFtZWQgc2VxZW5jZXMgaW4gdGhlIFBVQSAxLCBpbiByYW5nZSBVK0YwMTAwLi4sCisgICAgICAgICAgICAjIGluIG9yZGVyIHRvIHRha2UgYWR2YW50YWdlIG9mIHRoZSBjb21wcmVzc2lvbiBhbmQgbG9va3VwCisgICAgICAgICAgICAjIGFsZ29yaXRobXMgdXNlZCBmb3IgdGhlIG90aGVyIGNoYXJhY3RlcnMuCisKKyAgICAgICAgICAgIGFzc2VydCBwdWFfaW5kZXggPCBOQU1FRF9TRVFVRU5DRVNfU1RBUlQKKyAgICAgICAgICAgIHB1YV9pbmRleCA9IE5BTUVEX1NFUVVFTkNFU19TVEFSVAorICAgICAgICAgICAgd2l0aCBvcGVuX2RhdGEoTkFNRURfU0VRVUVOQ0VTLCB2ZXJzaW9uKSBhcyBmaWxlOgorICAgICAgICAgICAgICAgIGZvciBzIGluIGZpbGU6CisgICAgICAgICAgICAgICAgICAgIHMgPSBzLnN0cmlwKCkKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHMgb3Igcy5zdGFydHN3aXRoKCcjJyk6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBuYW1lLCBjaGFycyA9IHMuc3BsaXQoJzsnKQorICAgICAgICAgICAgICAgICAgICBjaGFycyA9IHR1cGxlKGludChjaGFyLCAxNikgZm9yIGNoYXIgaW4gY2hhcnMuc3BsaXQoKSkKKyAgICAgICAgICAgICAgICAgICAgIyBjaGVjayB0aGF0IHRoZSBzdHJ1Y3R1cmUgZGVmaW5lZCBpbiBtYWtldW5pY29kZW5hbWUgaXMgT0sKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IDIgPD0gbGVuKGNoYXJzKSA8PSA0LCAiY2hhbmdlIHRoZSBQeV9VQ1MyIGFycmF5IHNpemUiCisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBhbGwoYyA8PSAweEZGRkYgZm9yIGMgaW4gY2hhcnMpLCAoInVzZSBQeV9VQ1M0IGluICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgTmFtZWRTZXF1ZW5jZSBzdHJ1Y3QgYW5kIGluIHVuaWNvZGVkYXRhX2xvb2t1cCIpCisgICAgICAgICAgICAgICAgICAgIHNlbGYubmFtZWRfc2VxdWVuY2VzLmFwcGVuZCgobmFtZSwgY2hhcnMpKQorICAgICAgICAgICAgICAgICAgICAjIGFsc28gc3RvcmUgdGhlc2UgaW4gdGhlIFBVQSAxCisgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVbcHVhX2luZGV4XVsxXSA9IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgcHVhX2luZGV4ICs9IDEKKyAgICAgICAgICAgIGFzc2VydCBwdWFfaW5kZXggLSBOQU1FRF9TRVFVRU5DRVNfU1RBUlQgPT0gbGVuKHNlbGYubmFtZWRfc2VxdWVuY2VzKQorCiAgICAgICAgIHNlbGYuZXhjbHVzaW9ucyA9IHt9Ci0gICAgICAgIGZvciBzIGluIGZpbGU6Ci0gICAgICAgICAgICBzID0gcy5zdHJpcCgpCi0gICAgICAgICAgICBpZiBub3QgczoKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgc1swXSA9PSAnIyc6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGNoYXIgPSBpbnQocy5zcGxpdCgpWzBdLDE2KQotICAgICAgICAgICAgc2VsZi5leGNsdXNpb25zW2NoYXJdID0gMQorICAgICAgICB3aXRoIG9wZW5fZGF0YShDT01QT1NJVElPTl9FWENMVVNJT05TLCB2ZXJzaW9uKSBhcyBmaWxlOgorICAgICAgICAgICAgZm9yIHMgaW4gZmlsZToKKyAgICAgICAgICAgICAgICBzID0gcy5zdHJpcCgpCisgICAgICAgICAgICAgICAgaWYgbm90IHM6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgc1swXSA9PSAnIyc6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgY2hhciA9IGludChzLnNwbGl0KClbMF0sMTYpCisgICAgICAgICAgICAgICAgc2VsZi5leGNsdXNpb25zW2NoYXJdID0gMQogCiAgICAgICAgIHdpZHRocyA9IFtOb25lXSAqIDB4MTEwMDAwCi0gICAgICAgIGZvciBzIGluIG9wZW5fZGF0YShFQVNUQVNJQU5fV0lEVEgsIHZlcnNpb24pOgotICAgICAgICAgICAgcyA9IHMuc3RyaXAoKQotICAgICAgICAgICAgaWYgbm90IHM6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIHNbMF0gPT0gJyMnOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBzID0gcy5zcGxpdCgpWzBdLnNwbGl0KCc7JykKLSAgICAgICAgICAgIGlmICcuLicgaW4gc1swXToKLSAgICAgICAgICAgICAgICBmaXJzdCwgbGFzdCA9IFtpbnQoYywgMTYpIGZvciBjIGluIHNbMF0uc3BsaXQoJy4uJyldCi0gICAgICAgICAgICAgICAgY2hhcnMgPSBsaXN0KHJhbmdlKGZpcnN0LCBsYXN0KzEpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBjaGFycyA9IFtpbnQoc1swXSwgMTYpXQotICAgICAgICAgICAgZm9yIGNoYXIgaW4gY2hhcnM6Ci0gICAgICAgICAgICAgICAgd2lkdGhzW2NoYXJdID0gc1sxXQorICAgICAgICB3aXRoIG9wZW5fZGF0YShFQVNUQVNJQU5fV0lEVEgsIHZlcnNpb24pIGFzIGZpbGU6CisgICAgICAgICAgICBmb3IgcyBpbiBmaWxlOgorICAgICAgICAgICAgICAgIHMgPSBzLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBpZiBub3QgczoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBzWzBdID09ICcjJzoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBzID0gcy5zcGxpdCgpWzBdLnNwbGl0KCc7JykKKyAgICAgICAgICAgICAgICBpZiAnLi4nIGluIHNbMF06CisgICAgICAgICAgICAgICAgICAgIGZpcnN0LCBsYXN0ID0gW2ludChjLCAxNikgZm9yIGMgaW4gc1swXS5zcGxpdCgnLi4nKV0KKyAgICAgICAgICAgICAgICAgICAgY2hhcnMgPSBsaXN0KHJhbmdlKGZpcnN0LCBsYXN0KzEpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNoYXJzID0gW2ludChzWzBdLCAxNildCisgICAgICAgICAgICAgICAgZm9yIGNoYXIgaW4gY2hhcnM6CisgICAgICAgICAgICAgICAgICAgIHdpZHRoc1tjaGFyXSA9IHNbMV0KKwogICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCAweDExMDAwMCk6CiAgICAgICAgICAgICBpZiB0YWJsZVtpXSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICB0YWJsZVtpXS5hcHBlbmQod2lkdGhzW2ldKQpAQCAtODg4LDM2ICsxMDI0LDM5IEBACiAgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIDB4MTEwMDAwKToKICAgICAgICAgICAgIGlmIHRhYmxlW2ldIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIHRhYmxlW2ldLmFwcGVuZChzZXQoKSkKLSAgICAgICAgZm9yIHMgaW4gb3Blbl9kYXRhKERFUklWRURfQ09SRV9QUk9QRVJUSUVTLCB2ZXJzaW9uKToKLSAgICAgICAgICAgIHMgPSBzLnNwbGl0KCcjJywgMSlbMF0uc3RyaXAoKQotICAgICAgICAgICAgaWYgbm90IHM6Ci0gICAgICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICAgICAgciwgcCA9IHMuc3BsaXQoIjsiKQotICAgICAgICAgICAgciA9IHIuc3RyaXAoKQotICAgICAgICAgICAgcCA9IHAuc3RyaXAoKQotICAgICAgICAgICAgaWYgIi4uIiBpbiByOgotICAgICAgICAgICAgICAgIGZpcnN0LCBsYXN0ID0gW2ludChjLCAxNikgZm9yIGMgaW4gci5zcGxpdCgnLi4nKV0KLSAgICAgICAgICAgICAgICBjaGFycyA9IGxpc3QocmFuZ2UoZmlyc3QsIGxhc3QrMSkpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGNoYXJzID0gW2ludChyLCAxNildCi0gICAgICAgICAgICBmb3IgY2hhciBpbiBjaGFyczoKLSAgICAgICAgICAgICAgICBpZiB0YWJsZVtjaGFyXToKLSAgICAgICAgICAgICAgICAgICAgIyBTb21lIHByb3BlcnRpZXMgKGUuZy4gRGVmYXVsdF9JZ25vcmFibGVfQ29kZV9Qb2ludCkKLSAgICAgICAgICAgICAgICAgICAgIyBhcHBseSB0byB1bmFzc2lnbmVkIGNvZGUgcG9pbnRzOyBpZ25vcmUgdGhlbQotICAgICAgICAgICAgICAgICAgICB0YWJsZVtjaGFyXVstMV0uYWRkKHApCisgICAgICAgIHdpdGggb3Blbl9kYXRhKERFUklWRURfQ09SRV9QUk9QRVJUSUVTLCB2ZXJzaW9uKSBhcyBmaWxlOgorICAgICAgICAgICAgZm9yIHMgaW4gZmlsZToKKyAgICAgICAgICAgICAgICBzID0gcy5zcGxpdCgnIycsIDEpWzBdLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBpZiBub3QgczoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICBmb3IgcyBpbiBvcGVuX2RhdGEoTElORV9CUkVBSywgdmVyc2lvbik6Ci0gICAgICAgICAgICBzID0gcy5wYXJ0aXRpb24oJyMnKVswXQotICAgICAgICAgICAgcyA9IFtpLnN0cmlwKCkgZm9yIGkgaW4gcy5zcGxpdCgnOycpXQotICAgICAgICAgICAgaWYgbGVuKHMpIDwgMiBvciBzWzFdIG5vdCBpbiBNQU5EQVRPUllfTElORV9CUkVBS1M6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmICcuLicgbm90IGluIHNbMF06Ci0gICAgICAgICAgICAgICAgZmlyc3QgPSBsYXN0ID0gaW50KHNbMF0sIDE2KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBmaXJzdCwgbGFzdCA9IFtpbnQoYywgMTYpIGZvciBjIGluIHNbMF0uc3BsaXQoJy4uJyldCi0gICAgICAgICAgICBmb3IgY2hhciBpbiByYW5nZShmaXJzdCwgbGFzdCsxKToKLSAgICAgICAgICAgICAgICB0YWJsZVtjaGFyXVstMV0uYWRkKCdMaW5lX0JyZWFrJykKKyAgICAgICAgICAgICAgICByLCBwID0gcy5zcGxpdCgiOyIpCisgICAgICAgICAgICAgICAgciA9IHIuc3RyaXAoKQorICAgICAgICAgICAgICAgIHAgPSBwLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBpZiAiLi4iIGluIHI6CisgICAgICAgICAgICAgICAgICAgIGZpcnN0LCBsYXN0ID0gW2ludChjLCAxNikgZm9yIGMgaW4gci5zcGxpdCgnLi4nKV0KKyAgICAgICAgICAgICAgICAgICAgY2hhcnMgPSBsaXN0KHJhbmdlKGZpcnN0LCBsYXN0KzEpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNoYXJzID0gW2ludChyLCAxNildCisgICAgICAgICAgICAgICAgZm9yIGNoYXIgaW4gY2hhcnM6CisgICAgICAgICAgICAgICAgICAgIGlmIHRhYmxlW2NoYXJdOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBTb21lIHByb3BlcnRpZXMgKGUuZy4gRGVmYXVsdF9JZ25vcmFibGVfQ29kZV9Qb2ludCkKKyAgICAgICAgICAgICAgICAgICAgICAgICMgYXBwbHkgdG8gdW5hc3NpZ25lZCBjb2RlIHBvaW50czsgaWdub3JlIHRoZW0KKyAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlW2NoYXJdWy0xXS5hZGQocCkKKworICAgICAgICB3aXRoIG9wZW5fZGF0YShMSU5FX0JSRUFLLCB2ZXJzaW9uKSBhcyBmaWxlOgorICAgICAgICAgICAgZm9yIHMgaW4gZmlsZToKKyAgICAgICAgICAgICAgICBzID0gcy5wYXJ0aXRpb24oJyMnKVswXQorICAgICAgICAgICAgICAgIHMgPSBbaS5zdHJpcCgpIGZvciBpIGluIHMuc3BsaXQoJzsnKV0KKyAgICAgICAgICAgICAgICBpZiBsZW4ocykgPCAyIG9yIHNbMV0gbm90IGluIE1BTkRBVE9SWV9MSU5FX0JSRUFLUzoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiAnLi4nIG5vdCBpbiBzWzBdOgorICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IGxhc3QgPSBpbnQoc1swXSwgMTYpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZmlyc3QsIGxhc3QgPSBbaW50KGMsIDE2KSBmb3IgYyBpbiBzWzBdLnNwbGl0KCcuLicpXQorICAgICAgICAgICAgICAgIGZvciBjaGFyIGluIHJhbmdlKGZpcnN0LCBsYXN0KzEpOgorICAgICAgICAgICAgICAgICAgICB0YWJsZVtjaGFyXVstMV0uYWRkKCdMaW5lX0JyZWFrJykKIAogICAgICAgICAjIFdlIG9ubHkgd2FudCB0aGUgcXVpY2tjaGVjayBwcm9wZXJ0aWVzCiAgICAgICAgICMgRm9ybWF0OiBORj9fUUM7IFkoZXMpL04obykvTShheWJlKQpAQCAtOTI4LDMxICsxMDY3LDMzIEBACiAgICAgICAgICMgZm9yIG9sZGVyIHZlcnNpb25zLCBhbmQgbm8gZGVsdGEgcmVjb3JkcyB3aWxsIGJlIGNyZWF0ZWQuCiAgICAgICAgIHF1aWNrY2hlY2tzID0gWzBdICogMHgxMTAwMDAKICAgICAgICAgcWNfb3JkZXIgPSAnTkZEX1FDIE5GS0RfUUMgTkZDX1FDIE5GS0NfUUMnLnNwbGl0KCkKLSAgICAgICAgZm9yIHMgaW4gb3Blbl9kYXRhKERFUklWRUROT1JNQUxJWkFUSU9OX1BST1BTLCB2ZXJzaW9uKToKLSAgICAgICAgICAgIGlmICcjJyBpbiBzOgotICAgICAgICAgICAgICAgIHMgPSBzWzpzLmluZGV4KCcjJyldCi0gICAgICAgICAgICBzID0gW2kuc3RyaXAoKSBmb3IgaSBpbiBzLnNwbGl0KCc7JyldCi0gICAgICAgICAgICBpZiBsZW4ocykgPCAyIG9yIHNbMV0gbm90IGluIHFjX29yZGVyOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBxdWlja2NoZWNrID0gJ01OJy5pbmRleChzWzJdKSArIDEgIyBNYXliZSBvciBObwotICAgICAgICAgICAgcXVpY2tjaGVja19zaGlmdCA9IHFjX29yZGVyLmluZGV4KHNbMV0pKjIKLSAgICAgICAgICAgIHF1aWNrY2hlY2sgPDw9IHF1aWNrY2hlY2tfc2hpZnQKLSAgICAgICAgICAgIGlmICcuLicgbm90IGluIHNbMF06Ci0gICAgICAgICAgICAgICAgZmlyc3QgPSBsYXN0ID0gaW50KHNbMF0sIDE2KQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBmaXJzdCwgbGFzdCA9IFtpbnQoYywgMTYpIGZvciBjIGluIHNbMF0uc3BsaXQoJy4uJyldCi0gICAgICAgICAgICBmb3IgY2hhciBpbiByYW5nZShmaXJzdCwgbGFzdCsxKToKLSAgICAgICAgICAgICAgICBhc3NlcnQgbm90IChxdWlja2NoZWNrc1tjaGFyXT4+cXVpY2tjaGVja19zaGlmdCkmMwotICAgICAgICAgICAgICAgIHF1aWNrY2hlY2tzW2NoYXJdIHw9IHF1aWNrY2hlY2sKKyAgICAgICAgd2l0aCBvcGVuX2RhdGEoREVSSVZFRE5PUk1BTElaQVRJT05fUFJPUFMsIHZlcnNpb24pIGFzIGZpbGU6CisgICAgICAgICAgICBmb3IgcyBpbiBmaWxlOgorICAgICAgICAgICAgICAgIGlmICcjJyBpbiBzOgorICAgICAgICAgICAgICAgICAgICBzID0gc1s6cy5pbmRleCgnIycpXQorICAgICAgICAgICAgICAgIHMgPSBbaS5zdHJpcCgpIGZvciBpIGluIHMuc3BsaXQoJzsnKV0KKyAgICAgICAgICAgICAgICBpZiBsZW4ocykgPCAyIG9yIHNbMV0gbm90IGluIHFjX29yZGVyOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHF1aWNrY2hlY2sgPSAnTU4nLmluZGV4KHNbMl0pICsgMSAjIE1heWJlIG9yIE5vCisgICAgICAgICAgICAgICAgcXVpY2tjaGVja19zaGlmdCA9IHFjX29yZGVyLmluZGV4KHNbMV0pKjIKKyAgICAgICAgICAgICAgICBxdWlja2NoZWNrIDw8PSBxdWlja2NoZWNrX3NoaWZ0CisgICAgICAgICAgICAgICAgaWYgJy4uJyBub3QgaW4gc1swXToKKyAgICAgICAgICAgICAgICAgICAgZmlyc3QgPSBsYXN0ID0gaW50KHNbMF0sIDE2KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGZpcnN0LCBsYXN0ID0gW2ludChjLCAxNikgZm9yIGMgaW4gc1swXS5zcGxpdCgnLi4nKV0KKyAgICAgICAgICAgICAgICBmb3IgY2hhciBpbiByYW5nZShmaXJzdCwgbGFzdCsxKToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCAocXVpY2tjaGVja3NbY2hhcl0+PnF1aWNrY2hlY2tfc2hpZnQpJjMKKyAgICAgICAgICAgICAgICAgICAgcXVpY2tjaGVja3NbY2hhcl0gfD0gcXVpY2tjaGVjawogICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCAweDExMDAwMCk6CiAgICAgICAgICAgICBpZiB0YWJsZVtpXSBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICB0YWJsZVtpXS5hcHBlbmQocXVpY2tjaGVja3NbaV0pCiAKLSAgICAgICAgemlwID0gemlwZmlsZS5aaXBGaWxlKG9wZW5fZGF0YShVTklIQU4sIHZlcnNpb24pKQotICAgICAgICBpZiB2ZXJzaW9uID09ICczLjIuMCc6Ci0gICAgICAgICAgICBkYXRhID0gemlwLm9wZW4oJ1VuaWhhbi0zLjIuMC50eHQnKS5yZWFkKCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGRhdGEgPSB6aXAub3BlbignVW5paGFuX051bWVyaWNWYWx1ZXMudHh0JykucmVhZCgpCisgICAgICAgIHdpdGggb3Blbl9kYXRhKFVOSUhBTiwgdmVyc2lvbikgYXMgZmlsZToKKyAgICAgICAgICAgIHppcCA9IHppcGZpbGUuWmlwRmlsZShmaWxlKQorICAgICAgICAgICAgaWYgdmVyc2lvbiA9PSAnMy4yLjAnOgorICAgICAgICAgICAgICAgIGRhdGEgPSB6aXAub3BlbignVW5paGFuLTMuMi4wLnR4dCcpLnJlYWQoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBkYXRhID0gemlwLm9wZW4oJ1VuaWhhbl9OdW1lcmljVmFsdWVzLnR4dCcpLnJlYWQoKQogICAgICAgICBmb3IgbGluZSBpbiBkYXRhLmRlY29kZSgidXRmLTgiKS5zcGxpdGxpbmVzKCk6CiAgICAgICAgICAgICBpZiBub3QgbGluZS5zdGFydHN3aXRoKCdVKycpOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCkBAIC05NjUsNiArMTEwNiwzNCBAQAogICAgICAgICAgICAgIyBQYXRjaCB0aGUgbnVtZXJpYyBmaWVsZAogICAgICAgICAgICAgaWYgdGFibGVbaV0gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgdGFibGVbaV1bOF0gPSB2YWx1ZQorICAgICAgICBzYyA9IHNlbGYuc3BlY2lhbF9jYXNpbmcgPSB7fQorICAgICAgICB3aXRoIG9wZW5fZGF0YShTUEVDSUFMX0NBU0lORywgdmVyc2lvbikgYXMgZmlsZToKKyAgICAgICAgICAgIGZvciBzIGluIGZpbGU6CisgICAgICAgICAgICAgICAgcyA9IHNbOi0xXS5zcGxpdCgnIycsIDEpWzBdCisgICAgICAgICAgICAgICAgaWYgbm90IHM6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZGF0YSA9IHMuc3BsaXQoIjsgIikKKyAgICAgICAgICAgICAgICBpZiBkYXRhWzRdOgorICAgICAgICAgICAgICAgICAgICAjIFdlIGlnbm9yZSBhbGwgY29uZGl0aW9uYWxzIChzaW5jZSB0aGV5IGRlcGVuZCBvbgorICAgICAgICAgICAgICAgICAgICAjIGxhbmd1YWdlcykgZXhjZXB0IGZvciBvbmUsIHdoaWNoIGlzIGhhcmRjb2RlZC4gU2VlCisgICAgICAgICAgICAgICAgICAgICMgaGFuZGxlX2NhcGl0YWxfc2lnbWEgaW4gdW5pY29kZW9iamVjdC5jLgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGMgPSBpbnQoZGF0YVswXSwgMTYpCisgICAgICAgICAgICAgICAgbG93ZXIgPSBbaW50KGNoYXIsIDE2KSBmb3IgY2hhciBpbiBkYXRhWzFdLnNwbGl0KCldCisgICAgICAgICAgICAgICAgdGl0bGUgPSBbaW50KGNoYXIsIDE2KSBmb3IgY2hhciBpbiBkYXRhWzJdLnNwbGl0KCldCisgICAgICAgICAgICAgICAgdXBwZXIgPSBbaW50KGNoYXIsIDE2KSBmb3IgY2hhciBpbiBkYXRhWzNdLnNwbGl0KCldCisgICAgICAgICAgICAgICAgc2NbY10gPSAobG93ZXIsIHRpdGxlLCB1cHBlcikKKyAgICAgICAgY2YgPSBzZWxmLmNhc2VfZm9sZGluZyA9IHt9CisgICAgICAgIGlmIHZlcnNpb24gIT0gJzMuMi4wJzoKKyAgICAgICAgICAgIHdpdGggb3Blbl9kYXRhKENBU0VfRk9MRElORywgdmVyc2lvbikgYXMgZmlsZToKKyAgICAgICAgICAgICAgICBmb3IgcyBpbiBmaWxlOgorICAgICAgICAgICAgICAgICAgICBzID0gc1s6LTFdLnNwbGl0KCcjJywgMSlbMF0KKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHM6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBkYXRhID0gcy5zcGxpdCgiOyAiKQorICAgICAgICAgICAgICAgICAgICBpZiBkYXRhWzFdIGluICJDRiI6CisgICAgICAgICAgICAgICAgICAgICAgICBjID0gaW50KGRhdGFbMF0sIDE2KQorICAgICAgICAgICAgICAgICAgICAgICAgY2ZbY10gPSBbaW50KGNoYXIsIDE2KSBmb3IgY2hhciBpbiBkYXRhWzJdLnNwbGl0KCldCiAKICAgICBkZWYgdXNlbGF0aW4xKHNlbGYpOgogICAgICAgICAjIHJlc3RyaWN0IGNoYXJhY3RlciByYW5nZSB0byBJU08gTGF0aW4gMQpkaWZmIC0tZ2l0IGEvVG9vbHMvdW5pdHRlc3RndWkvdW5pdHRlc3RndWkucHkgYi9Ub29scy91bml0dGVzdGd1aS91bml0dGVzdGd1aS5weQppbmRleCBiNTI2NjQ2Li4wOWEyMGUyIDEwMDY0NAotLS0gYS9Ub29scy91bml0dGVzdGd1aS91bml0dGVzdGd1aS5weQorKysgYi9Ub29scy91bml0dGVzdGd1aS91bml0dGVzdGd1aS5weQpAQCAtMjgsNyArMjgsNiBAQAogIiIiCiAKIF9fYXV0aG9yX18gPSAiU3RldmUgUHVyY2VsbCAoc3RlcGhlbl9wdXJjZWxsQHlhaG9vLmNvbSkiCi1fX3ZlcnNpb25fXyA9ICIkUmV2aXNpb246IDEuNyAkIlsxMTotMl0KIAogaW1wb3J0IHN5cwogaW1wb3J0IHRyYWNlYmFjawpkaWZmIC0tZ2l0IGEvY29uZmlnLmd1ZXNzIGIvY29uZmlnLmd1ZXNzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ2MjJhNDQKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWcuZ3Vlc3MKQEAgLTAsMCArMSwxNTMwIEBACisjISAvYmluL3NoCisjIEF0dGVtcHQgdG8gZ3Vlc3MgYSBjYW5vbmljYWwgc3lzdGVtIG5hbWUuCisjICAgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LAorIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsCisjICAgMjAxMSwgMjAxMiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKwordGltZXN0YW1wPScyMDEyLTAyLTEwJworCisjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0CisjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisjIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKyMgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisjCisjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKKyMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMgcGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCisjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCisjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KKworCisjIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4gIFBsZWFzZSBzZW5kIHBhdGNoZXMgKGNvbnRleHQKKyMgZGlmZiBmb3JtYXQpIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPiBhbmQgaW5jbHVkZSBhIENoYW5nZUxvZworIyBlbnRyeS4KKyMKKyMgVGhpcyBzY3JpcHQgYXR0ZW1wdHMgdG8gZ3Vlc3MgYSBjYW5vbmljYWwgc3lzdGVtIG5hbWUgc2ltaWxhciB0bworIyBjb25maWcuc3ViLiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50cyB0aGUgc3lzdGVtIG5hbWUgb24gc3Rkb3V0LCBhbmQKKyMgZXhpdHMgd2l0aCAwLiAgT3RoZXJ3aXNlLCBpdCBleGl0cyB3aXRoIDEuCisjCisjIFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgorIyBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLmd1ZXNzO2hiPUhFQUQKKworbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAncywuKi8sLCdgCisKK3VzYWdlPSJcCitVc2FnZTogJDAgW09QVElPTl0KKworT3V0cHV0IHRoZSBjb25maWd1cmF0aW9uIG5hbWUgb2YgdGhlIHN5c3RlbSBcYCRtZScgaXMgcnVuIG9uLgorCitPcGVyYXRpb24gbW9kZXM6CisgIC1oLCAtLWhlbHAgICAgICAgICBwcmludCB0aGlzIGhlbHAsIHRoZW4gZXhpdAorICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1vZGlmaWNhdGlvbiwgdGhlbiBleGl0CisgIC12LCAtLXZlcnNpb24gICAgICBwcmludCB2ZXJzaW9uIG51bWJlciwgdGhlbiBleGl0CisKK1JlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPi4iCisKK3ZlcnNpb249IlwKK0dOVSBjb25maWcuZ3Vlc3MgKCR0aW1lc3RhbXApCisKK09yaWdpbmFsbHkgd3JpdHRlbiBieSBQZXIgQm90aG5lci4KK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwKKzIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIKK0ZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTword2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorCitoZWxwPSIKK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKworIyBQYXJzZSBjb21tYW5kIGxpbmUKK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworICBjYXNlICQxIGluCisgICAgLS10aW1lLXN0YW1wIHwgLS10aW1lKiB8IC10ICkKKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQgOzsKKyAgICAtLXZlcnNpb24gfCAtdiApCisgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCA7OworICAgIC0taGVscCB8IC0taCogfCAtaCApCisgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OworICAgIC0tICkgICAgICMgU3RvcCBvcHRpb24gcHJvY2Vzc2luZworICAgICAgIHNoaWZ0OyBicmVhayA7OworICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KKyAgICAgICBicmVhayA7OworICAgIC0qICkKKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiID4mMgorICAgICAgIGV4aXQgMSA7OworICAgICogKQorICAgICAgIGJyZWFrIDs7CisgIGVzYWMKK2RvbmUKKworaWYgdGVzdCAkIyAhPSAwOyB0aGVuCisgIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorICBleGl0IDEKK2ZpCisKK3RyYXAgJ2V4aXQgMScgMSAyIDE1CisKKyMgQ0NfRk9SX0JVSUxEIC0tIGNvbXBpbGVyIHVzZWQgYnkgdGhpcyBzY3JpcHQuIE5vdGUgdGhhdCB0aGUgdXNlIG9mIGEKKyMgY29tcGlsZXIgdG8gYWlkIGluIHN5c3RlbSBkZXRlY3Rpb24gaXMgZGlzY291cmFnZWQgYXMgaXQgcmVxdWlyZXMKKyMgdGVtcG9yYXJ5IGZpbGVzIHRvIGJlIGNyZWF0ZWQgYW5kLCBhcyB5b3UgY2FuIHNlZSBiZWxvdywgaXQgaXMgYQorIyBoZWFkYWNoZSB0byBkZWFsIHdpdGggaW4gYSBwb3J0YWJsZSBmYXNoaW9uLgorCisjIEhpc3RvcmljYWxseSwgYENDX0ZPUl9CVUlMRCcgdXNlZCB0byBiZSBuYW1lZCBgSE9TVF9DQycuIFdlIHN0aWxsCisjIHVzZSBgSE9TVF9DQycgaWYgZGVmaW5lZCwgYnV0IGl0IGlzIGRlcHJlY2F0ZWQuCisKKyMgUG9ydGFibGUgdG1wIGRpcmVjdG9yeSBjcmVhdGlvbiBpbnNwaXJlZCBieSB0aGUgQXV0b2NvbmYgdGVhbS4KKworc2V0X2NjX2Zvcl9idWlsZD0nCit0cmFwICJleGl0Y29kZT1cJD87IChybSAtZiBcJHRtcGZpbGVzIDI+L2Rldi9udWxsOyBybWRpciBcJHRtcCAyPi9kZXYvbnVsbCkgJiYgZXhpdCBcJGV4aXRjb2RlIiAwIDsKK3RyYXAgInJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsOyBleGl0IDEiIDEgMiAxMyAxNSA7Cis6ICR7VE1QRElSPS90bXB9IDsKKyB7IHRtcD1gKHVtYXNrIDA3NyAmJiBta3RlbXAgLWQgIiRUTVBESVIvY2dYWFhYWFgiKSAyPi9kZXYvbnVsbGAgJiYgdGVzdCAtbiAiJHRtcCIgJiYgdGVzdCAtZCAiJHRtcCIgOyB9IHx8CisgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9jZyQkLSRSQU5ET00gJiYgKHVtYXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKKyB7IHRtcD0kVE1QRElSL2NnLSQkICYmICh1bWFzayAwNzcgJiYgbWtkaXIgJHRtcCkgJiYgZWNobyAiV2FybmluZzogY3JlYXRpbmcgaW5zZWN1cmUgdGVtcCBkaXJlY3RvcnkiID4mMiA7IH0gfHwKKyB7IGVjaG8gIiRtZTogY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gJFRNUERJUiIgPiYyIDsgZXhpdCAxIDsgfSA7CitkdW1teT0kdG1wL2R1bW15IDsKK3RtcGZpbGVzPSIkZHVtbXkuYyAkZHVtbXkubyAkZHVtbXkucmVsICRkdW1teSIgOworY2FzZSAkQ0NfRk9SX0JVSUxELCRIT1NUX0NDLCRDQyBpbgorICwsKSAgICBlY2hvICJpbnQgeDsiID4gJGR1bW15LmMgOworCWZvciBjIGluIGNjIGdjYyBjODkgYzk5IDsgZG8KKwkgIGlmICgkYyAtYyAtbyAkZHVtbXkubyAkZHVtbXkuYykgPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorCSAgICAgQ0NfRk9SX0JVSUxEPSIkYyI7IGJyZWFrIDsKKwkgIGZpIDsKKwlkb25lIDsKKwlpZiB0ZXN0IHgiJENDX0ZPUl9CVUlMRCIgPSB4IDsgdGhlbgorCSAgQ0NfRk9SX0JVSUxEPW5vX2NvbXBpbGVyX2ZvdW5kIDsKKwlmaQorCTs7CisgLCwqKSAgIENDX0ZPUl9CVUlMRD0kQ0MgOzsKKyAsKiwqKSAgQ0NfRk9SX0JVSUxEPSRIT1NUX0NDIDs7Citlc2FjIDsgc2V0X2NjX2Zvcl9idWlsZD0gOycKKworIyBUaGlzIGlzIG5lZWRlZCB0byBmaW5kIHVuYW1lIG9uIGEgUHlyYW1pZCBPU3ggd2hlbiBydW4gaW4gdGhlIEJTRCB1bml2ZXJzZS4KKyMgKGdoYXppQG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQoraWYgKHRlc3QgLWYgLy5hdHRiaW4vdW5hbWUpID4vZGV2L251bGwgMj4mMSA7IHRoZW4KKwlQQVRIPSRQQVRIOi8uYXR0YmluIDsgZXhwb3J0IFBBVEgKK2ZpCisKK1VOQU1FX01BQ0hJTkU9YCh1bmFtZSAtbSkgMj4vZGV2L251bGxgIHx8IFVOQU1FX01BQ0hJTkU9dW5rbm93bgorVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCitVTkFNRV9TWVNURU09YCh1bmFtZSAtcykgMj4vZGV2L251bGxgICB8fCBVTkFNRV9TWVNURU09dW5rbm93bgorVU5BTUVfVkVSU0lPTj1gKHVuYW1lIC12KSAyPi9kZXYvbnVsbGAgfHwgVU5BTUVfVkVSU0lPTj11bmtub3duCisKKyMgTm90ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1c2l2ZS4KKworY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgorICAgICo6TmV0QlNEOio6KikKKwkjIE5ldEJTRCAobmJzZCkgdGFyZ2V0cyBzaG91bGQgKHdoZXJlIGFwcGxpY2FibGUpIG1hdGNoIG9uZSBvcgorCSMgbW9yZSBvZiB0aGUgdHVwbGVzOiAqLSotbmV0YnNkZWxmKiwgKi0qLW5ldGJzZGFvdXQqLAorCSMgKi0qLW5ldGJzZGVjb2ZmKiBhbmQgKi0qLW5ldGJzZCouICBGb3IgdGFyZ2V0cyB0aGF0IHJlY2VudGx5CisJIyBzd2l0Y2hlZCB0byBFTEYsICotKi1uZXRic2QqIHdvdWxkIHNlbGVjdCB0aGUgb2xkCisJIyBvYmplY3QgZmlsZSBmb3JtYXQuICBUaGlzIHByb3ZpZGVzIGJvdGggZm9yd2FyZAorCSMgY29tcGF0aWJpbGl0eSBhbmQgYSBjb25zaXN0ZW50IG1lY2hhbmlzbSBmb3Igc2VsZWN0aW5nIHRoZQorCSMgb2JqZWN0IGZpbGUgZm9ybWF0LgorCSMKKwkjIE5vdGU6IE5ldEJTRCBkb2Vzbid0IHBhcnRpY3VsYXJseSBjYXJlIGFib3V0IHRoZSB2ZW5kb3IKKwkjIHBvcnRpb24gb2YgdGhlIG5hbWUuICBXZSBhbHdheXMgc2V0IGl0IHRvICJ1bmtub3duIi4KKwlzeXNjdGw9InN5c2N0bCAtbiBody5tYWNoaW5lX2FyY2giCisJVU5BTUVfTUFDSElORV9BUkNIPWAoL3NiaW4vJHN5c2N0bCAyPi9kZXYvbnVsbCB8fCBcCisJICAgIC91c3Ivc2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bilgCisJY2FzZSAiJHtVTkFNRV9NQUNISU5FX0FSQ0h9IiBpbgorCSAgICBhcm1lYikgbWFjaGluZT1hcm1lYi11bmtub3duIDs7CisJICAgIGFybSopIG1hY2hpbmU9YXJtLXVua25vd24gOzsKKwkgICAgc2gzZWwpIG1hY2hpbmU9c2hsLXVua25vd24gOzsKKwkgICAgc2gzZWIpIG1hY2hpbmU9c2gtdW5rbm93biA7OworCSAgICBzaDVlbCkgbWFjaGluZT1zaDVsZS11bmtub3duIDs7CisJICAgICopIG1hY2hpbmU9JHtVTkFNRV9NQUNISU5FX0FSQ0h9LXVua25vd24gOzsKKwllc2FjCisJIyBUaGUgT3BlcmF0aW5nIFN5c3RlbSBpbmNsdWRpbmcgb2JqZWN0IGZvcm1hdCwgaWYgaXQgaGFzIHN3aXRjaGVkCisJIyB0byBFTEYgcmVjZW50bHksIG9yIHdpbGwgaW4gdGhlIGZ1dHVyZS4KKwljYXNlICIke1VOQU1FX01BQ0hJTkVfQVJDSH0iIGluCisJICAgIGFybSp8aTM4NnxtNjhrfG5zMzJrfHNoMyp8c3BhcmN8dmF4KQorCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJCWlmIGVjaG8gX19FTEZfXyB8ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCBcCisJCQl8IGdyZXAgLXEgX19FTEZfXworCQl0aGVuCisJCSAgICAjIE9uY2UgYWxsIHV0aWxpdGllcyBjYW4gYmUgRUNPRkYgKG5ldGJzZGVjb2ZmKSBvciBhLm91dCAobmV0YnNkYW91dCkuCisJCSAgICAjIFJldHVybiBuZXRic2QgZm9yIGVpdGhlci4gIEZJWD8KKwkJICAgIG9zPW5ldGJzZAorCQllbHNlCisJCSAgICBvcz1uZXRic2RlbGYKKwkJZmkKKwkJOzsKKwkgICAgKikKKwkJb3M9bmV0YnNkCisJCTs7CisJZXNhYworCSMgVGhlIE9TIHJlbGVhc2UKKwkjIERlYmlhbiBHTlUvTmV0QlNEIG1hY2hpbmVzIGhhdmUgYSBkaWZmZXJlbnQgdXNlcmxhbmQsIGFuZAorCSMgdGh1cywgbmVlZCBhIGRpc3RpbmN0IHRyaXBsZXQuIEhvd2V2ZXIsIHRoZXkgZG8gbm90IG5lZWQKKwkjIGtlcm5lbCB2ZXJzaW9uIGluZm9ybWF0aW9uLCBzbyBpdCBjYW4gYmUgcmVwbGFjZWQgd2l0aCBhCisJIyBzdWl0YWJsZSB0YWcsIGluIHRoZSBzdHlsZSBvZiBsaW51eC1nbnUuCisJY2FzZSAiJHtVTkFNRV9WRVJTSU9OfSIgaW4KKwkgICAgRGViaWFuKikKKwkJcmVsZWFzZT0nLWdudScKKwkJOzsKKwkgICAgKikKKwkJcmVsZWFzZT1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLV9dLiovXC4vJ2AKKwkJOzsKKwllc2FjCisJIyBTaW5jZSBDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVMLU9QRVJBVElOR19TWVNURU06CisJIyBjb250YWlucyByZWR1bmRhbnQgaW5mb3JtYXRpb24sIHRoZSBzaG9ydGVyIGZvcm06CisJIyBDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTSBpcyB1c2VkLgorCWVjaG8gIiR7bWFjaGluZX0tJHtvc30ke3JlbGVhc2V9IgorCWV4aXQgOzsKKyAgICAqOk9wZW5CU0Q6KjoqKQorCVVOQU1FX01BQ0hJTkVfQVJDSD1gYXJjaCB8IHNlZCAncy9PcGVuQlNELi8vJ2AKKwllY2hvICR7VU5BTUVfTUFDSElORV9BUkNIfS11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6ZWtrb0JTRDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tZWtrb2JzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpTb2xpZEJTRDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc29saWRic2Qke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIG1hY3BwYzpNaXJCU0Q6KjoqKQorCWVjaG8gcG93ZXJwYy11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpNaXJCU0Q6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW1pcmJzZCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgYWxwaGE6T1NGMToqOiopCisJY2FzZSAkVU5BTUVfUkVMRUFTRSBpbgorCSo0LjApCisJCVVOQU1FX1JFTEVBU0U9YC91c3Ivc2Jpbi9zaXplciAtdiB8IGF3ayAne3ByaW50ICQzfSdgCisJCTs7CisJKjUuKikKKwkJVU5BTUVfUkVMRUFTRT1gL3Vzci9zYmluL3NpemVyIC12IHwgYXdrICd7cHJpbnQgJDR9J2AKKwkJOzsKKwllc2FjCisJIyBBY2NvcmRpbmcgdG8gQ29tcGFxLCAvdXNyL3NiaW4vcHNyaW5mbyBoYXMgYmVlbiBhdmFpbGFibGUgb24KKwkjIE9TRi8xIGFuZCBUcnU2NCBzeXN0ZW1zIHByb2R1Y2VkIHNpbmNlIDE5OTUuICBJIGhvcGUgdGhhdAorCSMgY292ZXJzIG1vc3Qgc3lzdGVtcyBydW5uaW5nIHRvZGF5LiAgVGhpcyBjb2RlIHBpcGVzIHRoZSBDUFUKKwkjIHR5cGVzIHRocm91Z2ggaGVhZCAtbiAxLCBzbyB3ZSBvbmx5IGRldGVjdCB0aGUgdHlwZSBvZiBDUFUgMC4KKwlBTFBIQV9DUFVfVFlQRT1gL3Vzci9zYmluL3BzcmluZm8gLXYgfCBzZWQgLW4gLWUgJ3MvXiAgVGhlIGFscGhhIFwoLipcKSBwcm9jZXNzb3IuKiQvXDEvcCcgfCBoZWFkIC1uIDFgCisJY2FzZSAiJEFMUEhBX0NQVV9UWVBFIiBpbgorCSAgICAiRVY0ICgyMTA2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKwkgICAgIkVWNC41ICgyMTA2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYSIgOzsKKwkgICAgIkxDQTQgKDIxMDY2LzIxMDY4KSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OworCSAgICAiRVY1ICgyMTE2NCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NSIgOzsKKwkgICAgIkVWNS42ICgyMTE2NEEpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjU2IiA7OworCSAgICAiRVY1LjYgKDIxMTY0UEMpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NiIgOzsKKwkgICAgIkVWNS43ICgyMTE2NFBDKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhcGNhNTciIDs7CisJICAgICJFVjYgKDIxMjY0KSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2IiA7OworCSAgICAiRVY2LjcgKDIxMjY0QSkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjciIDs7CisJICAgICJFVjYuOENCICgyMTI2NEMpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjY4IiA7OworCSAgICAiRVY2LjhBTCAoMjEyNjRCKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OCIgOzsKKwkgICAgIkVWNi44Q1ggKDIxMjY0RCkiKQorCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7CisJICAgICJFVjYuOUEgKDIxMjY0L0VWNjlBKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY2OSIgOzsKKwkgICAgIkVWNyAoMjEzNjQpIikKKwkJVU5BTUVfTUFDSElORT0iYWxwaGFldjciIDs7CisJICAgICJFVjcuOSAoMjEzNjRBKSIpCisJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY3OSIgOzsKKwllc2FjCisJIyBBIFBuLm4gdmVyc2lvbiBpcyBhIHBhdGNoZWQgdmVyc2lvbi4KKwkjIEEgVm4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgdmVyc2lvbi4KKwkjIEEgVG4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgZmllbGQgdGVzdCB2ZXJzaW9uLgorCSMgQSBYbi5uIHZlcnNpb24gaXMgYW4gdW5yZWxlYXNlZCBleHBlcmltZW50YWwgYmFzZWxldmVsLgorCSMgMS4yIHVzZXMgIjEuMiIgZm9yIHVuYW1lIC1yLgorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1kZWMtb3NmYGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9eW1BWVFhdLy8nIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonYAorCSMgUmVzZXQgRVhJVCB0cmFwIGJlZm9yZSBleGl0aW5nIHRvIGF2b2lkIHNwdXJpb3VzIG5vbi16ZXJvIGV4aXQgY29kZS4KKwlleGl0Y29kZT0kPworCXRyYXAgJycgMAorCWV4aXQgJGV4aXRjb2RlIDs7CisgICAgQWxwaGFcICo6V2luZG93c19OVCo6KikKKwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/CisJIyBTaG91bGQgd2UgY2hhbmdlIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkCisJIyBvZiB0aGUgc3BlY2lmaWMgQWxwaGEgbW9kZWw/CisJZWNobyBhbHBoYS1wYy1pbnRlcml4CisJZXhpdCA7OworICAgIDIxMDY0OldpbmRvd3NfTlQ6NTA6MykKKwllY2hvIGFscGhhLWRlYy13aW5udDMuNQorCWV4aXQgOzsKKyAgICBBbWlnYSo6VU5JWF9TeXN0ZW1fVjo0LjA6KikKKwllY2hvIG02OGstdW5rbm93bi1zeXN2NAorCWV4aXQgOzsKKyAgICAqOltBYV1taWdhW09vXVtTc106KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWFtaWdhb3MKKwlleGl0IDs7CisgICAgKjpbTW1db3JwaFtPb11bU3NdOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1tb3JwaG9zCisJZXhpdCA7OworICAgICo6T1MvMzkwOio6KikKKwllY2hvIGkzNzAtaWJtLW9wZW5lZGl0aW9uCisJZXhpdCA7OworICAgICo6ei9WTToqOiopCisJZWNobyBzMzkwLWlibS16dm1vZQorCWV4aXQgOzsKKyAgICAqOk9TNDAwOio6KikKKwllY2hvIHBvd2VycGMtaWJtLW9zNDAwCisJZXhpdCA7OworICAgIGFybTpSSVNDKjoxLlswMTJdKjoqfGFybTpyaXNjaXg6MS5bMDEyXSo6KikKKwllY2hvIGFybS1hY29ybi1yaXNjaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIGFybTpyaXNjb3M6KjoqfGFybTpSSVNDT1M6KjoqKQorCWVjaG8gYXJtLXVua25vd24tcmlzY29zCisJZXhpdCA7OworICAgIFNSMj8wMTpISS1VWC9NUFA6KjoqIHwgU1I4MDAwOkhJLVVYL01QUDoqOiopCisJZWNobyBocHBhMS4xLWhpdGFjaGktaGl1eG1wcAorCWV4aXQgOzsKKyAgICBQeXJhbWlkKjpPU3gqOio6KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6KikKKwkjIGFrZWVAd3BkaXMwMy53cGFmYi5hZi5taWwgKEVhcmxlIEYuIEFrZSkgY29udHJpYnV0ZWQgTUlTIGFuZCBOSUxFLgorCWlmIHRlc3QgImAoL2Jpbi91bml2ZXJzZSkgMj4vZGV2L251bGxgIiA9IGF0dCA7IHRoZW4KKwkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKKwllbHNlCisJCWVjaG8gcHlyYW1pZC1weXJhbWlkLWJzZAorCWZpCisJZXhpdCA7OworICAgIE5JTEUqOio6KjpkY29zeCkKKwllY2hvIHB5cmFtaWQtcHlyYW1pZC1zdnI0CisJZXhpdCA7OworICAgIERSUz82MDAwOnVuaXg6NC4wOjYqKQorCWVjaG8gc3BhcmMtaWNsLW54NgorCWV4aXQgOzsKKyAgICBEUlM/NjAwMDpVTklYX1NWOjQuMio6NyogfCBEUlM/NjAwMDppc2lzOjQuMio6NyopCisJY2FzZSBgL3Vzci9iaW4vdW5hbWUgLXBgIGluCisJICAgIHNwYXJjKSBlY2hvIHNwYXJjLWljbC1ueDc7IGV4aXQgOzsKKwllc2FjIDs7CisgICAgczM5MHg6U3VuT1M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDs7CisgICAgc3VuNEg6U3VuT1M6NS4qOiopCisJZWNobyBzcGFyYy1oYWwtc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDs7CisgICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1Lio6KikKKwllY2hvIHNwYXJjLXN1bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorCWV4aXQgOzsKKyAgICBpODZwYzpBdXJvcmFVWDo1Lio6KiB8IGk4NnhlbjpBdXJvcmFVWDo1Lio6KikKKwllY2hvIGkzODYtcGMtYXVyb3JhdXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIGk4NnBjOlN1bk9TOjUuKjoqIHwgaTg2eGVuOlN1bk9TOjUuKjoqKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlTVU5fQVJDSD0iaTM4NiIKKwkjIElmIHRoZXJlIGlzIGEgY29tcGlsZXIsIHNlZSBpZiBpdCBpcyBjb25maWd1cmVkIGZvciA2NC1iaXQgb2JqZWN0cy4KKwkjIE5vdGUgdGhhdCB0aGUgU3VuIGNjIGRvZXMgbm90IHR1cm4gX19MUDY0X18gaW50byAxIGxpa2UgZ2NjIGRvZXMuCisJIyBUaGlzIHRlc3Qgd29ya3MgZm9yIGJvdGggY29tcGlsZXJzLgorCWlmIFsgIiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgorCSAgICBpZiAoZWNobyAnI2lmZGVmIF9fYW1kNjQnOyBlY2hvIElTXzY0QklUX0FSQ0g7IGVjaG8gJyNlbmRpZicpIHwgXAorCQkoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwgXAorCQlncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAorCSAgICB0aGVuCisJCVNVTl9BUkNIPSJ4ODZfNjQiCisJICAgIGZpCisJZmkKKwllY2hvICR7U1VOX0FSQ0h9LXBjLXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCisJZXhpdCA7OworICAgIHN1bjQqOlN1bk9TOjYqOiopCisJIyBBY2NvcmRpbmcgdG8gY29uZmlnLnN1YiwgdGhpcyBpcyB0aGUgcHJvcGVyIHdheSB0byBjYW5vbmljYWxpemUKKwkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vlc3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1dAorCSMgaXQncyBsaWtlbHkgdG8gYmUgbW9yZSBsaWtlIFNvbGFyaXMgdGhhbiBTdW5PUzQuCisJZWNobyBzcGFyYy1zdW4tc29sYXJpczNgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKKwlleGl0IDs7CisgICAgc3VuNCo6U3VuT1M6KjoqKQorCWNhc2UgImAvdXNyL2Jpbi9hcmNoIC1rYCIgaW4KKwkgICAgU2VyaWVzKnxTNCopCisJCVVOQU1FX1JFTEVBU0U9YHVuYW1lIC12YAorCQk7OworCWVzYWMKKwkjIEphcGFuZXNlIExhbmd1YWdlIHZlcnNpb25zIGhhdmUgYSB2ZXJzaW9uIG51bWJlciBsaWtlIGA0LjEuMy1KTCcuCisJZWNobyBzcGFyYy1zdW4tc3Vub3NgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy8tL18vJ2AKKwlleGl0IDs7CisgICAgc3VuMyo6U3VuT1M6KjoqKQorCWVjaG8gbTY4ay1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIHN1bio6Kjo0LjJCU0Q6KikKKwlVTkFNRV9SRUxFQVNFPWAoc2VkIDFxIC9ldGMvbW90ZCB8IGF3ayAne3ByaW50IHN1YnN0cigkNSwxLDMpfScpIDI+L2Rldi9udWxsYAorCXRlc3QgIngke1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKKwljYXNlICJgL2Jpbi9hcmNoYCIgaW4KKwkgICAgc3VuMykKKwkJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KKwkJOzsKKwkgICAgc3VuNCkKKwkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJCTs7CisJZXNhYworCWV4aXQgOzsKKyAgICBhdXNocDpTdW5PUzoqOiopCisJZWNobyBzcGFyYy1hdXNwZXgtc3Vub3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICMgVGhlIHNpdHVhdGlvbiBmb3IgTWlOVCBpcyBhIGxpdHRsZSBjb25mdXNpbmcuICBUaGUgbWFjaGluZSBuYW1lCisgICAgIyBjYW4gYmUgdmlydHVhbGx5IGV2ZXJ5dGhpbmcgKGV2ZXJ5dGhpbmcgd2hpY2ggaXMgbm90CisgICAgIyAiYXRhcmlzdCIgb3IgImF0YXJpc3RlIiBhdCBsZWFzdCBzaG91bGQgaGF2ZSBhIHByb2Nlc3NvcgorICAgICMgPiBtNjgwMDApLiAgVGhlIHN5c3RlbSBuYW1lIHJhbmdlcyBmcm9tICJNaU5UIiBvdmVyICJGcmVlTWlOVCIKKyAgICAjIHRvIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiAibWludCIgKG9yICJmcmVlbWludCIpLiAgRmluYWxseQorICAgICMgdGhlIHN5c3RlbSBuYW1lICJUT1MiIGRlbm90ZXMgYSBzeXN0ZW0gd2hpY2ggaXMgYWN0dWFsbHkgbm90CisgICAgIyBNaU5ULiAgQnV0IE1pTlQgaXMgZG93bndhcmQgY29tcGF0aWJsZSB0byBUT1MsIHNvIHRoaXMgc2hvdWxkCisgICAgIyBiZSBubyBwcm9ibGVtLgorICAgIGF0YXJpc3RbZV06Kk1pTlQ6KjoqIHwgYXRhcmlzdFtlXToqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQorCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBhdGFyaSo6Kk1pTlQ6KjoqIHwgYXRhcmkqOiptaW50Oio6KiB8IGF0YXJpc3RbZV06KlRPUzoqOiopCisJZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICpmYWxjb24qOipNaU5UOio6KiB8ICpmYWxjb24qOiptaW50Oio6KiB8ICpmYWxjb24qOipUT1M6KjoqKQorCWVjaG8gbTY4ay1hdGFyaS1taW50JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBtaWxhbio6Kk1pTlQ6KjoqIHwgbWlsYW4qOiptaW50Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCisJZWNobyBtNjhrLW1pbGFuLW1pbnQke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIGhhZGVzKjoqTWlOVDoqOiogfCBoYWRlcyo6Km1pbnQ6KjoqIHwgKmhhZGVzKjoqVE9TOio6KikKKwllY2hvIG02OGstaGFkZXMtbWludCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjoqTWlOVDoqOiogfCAqOiptaW50Oio6KiB8ICo6KlRPUzoqOiopCisJZWNobyBtNjhrLXVua25vd24tbWludCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgbTY4azptYWNodGVuOio6KikKKwllY2hvIG02OGstYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgcG93ZXJwYzptYWNodGVuOio6KikKKwllY2hvIHBvd2VycGMtYXBwbGUtbWFjaHRlbiR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgUklTQyo6TWFjaDoqOiopCisJZWNobyBtaXBzLWRlYy1tYWNoX2JzZDQuMworCWV4aXQgOzsKKyAgICBSSVNDKjpVTFRSSVg6KjoqKQorCWVjaG8gbWlwcy1kZWMtdWx0cml4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBWQVgqOlVMVFJJWCo6KjoqKQorCWVjaG8gdmF4LWRlYy11bHRyaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIDIwMjA6Q0xJWDoqOiogfCAyNDMwOkNMSVg6KjoqKQorCWVjaG8gY2xpcHBlci1pbnRlcmdyYXBoLWNsaXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIG1pcHM6KjoqOlVNSVBTIHwgbWlwczoqOio6UklTQ29zKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworI2lmZGVmIF9fY3BsdXNwbHVzCisjaW5jbHVkZSA8c3RkaW8uaD4gIC8qIGZvciBwcmludGYoKSBwcm90b3R5cGUgKi8KKwlpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkgeworI2Vsc2UKKwlpbnQgbWFpbiAoYXJnYywgYXJndikgaW50IGFyZ2M7IGNoYXIgKmFyZ3ZbXTsgeworI2VuZGlmCisJI2lmIGRlZmluZWQgKGhvc3RfbWlwcykgJiYgZGVmaW5lZCAoTUlQU0VCKQorCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NZU1YpCisJICBwcmludGYgKCJtaXBzLW1pcHMtcmlzY29zJXNzeXN2XG4iLCBhcmd2WzFdKTsgZXhpdCAoMCk7CisJI2VuZGlmCisJI2lmIGRlZmluZWQgKFNZU1RZUEVfU1ZSNCkKKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc3N2cjRcbiIsIGFyZ3ZbMV0pOyBleGl0ICgwKTsKKwkjZW5kaWYKKwkjaWYgZGVmaW5lZCAoU1lTVFlQRV9CU0Q0MykgfHwgZGVmaW5lZChTWVNUWVBFX0JTRCkKKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc2JzZFxuIiwgYXJndlsxXSk7IGV4aXQgKDApOworCSNlbmRpZgorCSNlbmRpZgorCSAgZXhpdCAoLTEpOworCX0KK0VPRgorCSRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jICYmCisJICBkdW1teWFyZz1gZWNobyAiJHtVTkFNRV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3MvXChbMC05XSpcKS4qL1wxL3AnYCAmJgorCSAgU1lTVEVNX05BTUU9YCRkdW1teSAkZHVtbXlhcmdgICYmCisJICAgIHsgZWNobyAiJFNZU1RFTV9OQU1FIjsgZXhpdDsgfQorCWVjaG8gbWlwcy1taXBzLXJpc2NvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgTW90b3JvbGE6UG93ZXJNQVhfT1M6KjoqKQorCWVjaG8gcG93ZXJwYy1tb3Rvcm9sYS1wb3dlcm1heAorCWV4aXQgOzsKKyAgICBNb3Rvcm9sYToqOjQuMzpQTDgtKikKKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4CisJZXhpdCA7OworICAgIE5pZ2h0X0hhd2s6KjoqOlBvd2VyTUFYX09TIHwgU3luZXJneTpQb3dlck1BWF9PUzoqOiopCisJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAorCWV4aXQgOzsKKyAgICBOaWdodF9IYXdrOlBvd2VyX1VOSVg6KjoqKQorCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJ1bml4CisJZXhpdCA7OworICAgIG04OGs6Q1gvVVg6Nyo6KikKKwllY2hvIG04OGstaGFycmlzLWN4dXg3CisJZXhpdCA7OworICAgIG04OGs6Kjo0KjpSNCopCisJZWNobyBtODhrLW1vdG9yb2xhLXN5c3Y0CisJZXhpdCA7OworICAgIG04OGs6KjozKjpSMyopCisJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisJZXhpdCA7OworICAgIEFWaWlPTjpkZ3V4Oio6KikKKwkjIERHL1VYIHJldHVybnMgQVZpaU9OIGZvciBhbGwgYXJjaGl0ZWN0dXJlcworCVVOQU1FX1BST0NFU1NPUj1gL3Vzci9iaW4vdW5hbWUgLXBgCisJaWYgWyAkVU5BTUVfUFJPQ0VTU09SID0gbWM4ODEwMCBdIHx8IFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgxMTAgXQorCXRoZW4KKwkgICAgaWYgWyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSBtODhrZGd1eGVsZnggXSB8fCBcCisJICAgICAgIFsgJHtUQVJHRVRfQklOQVJZX0lOVEVSRkFDRX14ID0geCBdCisJICAgIHRoZW4KKwkJZWNobyBtODhrLWRnLWRndXgke1VOQU1FX1JFTEVBU0V9CisJICAgIGVsc2UKKwkJZWNobyBtODhrLWRnLWRndXhiY3Mke1VOQU1FX1JFTEVBU0V9CisJICAgIGZpCisJZWxzZQorCSAgICBlY2hvIGk1ODYtZGctZGd1eCR7VU5BTUVfUkVMRUFTRX0KKwlmaQorCWV4aXQgOzsKKyAgICBNODgqOkRvbHBoaW5PUzoqOiopCSMgRG9scGhpbk9TIChTVlIzKQorCWVjaG8gbTg4ay1kb2xwaGluLXN5c3YzCisJZXhpdCA7OworICAgIE04OCo6KjpSMyo6KikKKwkjIERlbHRhIDg4ayBzeXN0ZW0gcnVubmluZyBTVlIzCisJZWNobyBtODhrLW1vdG9yb2xhLXN5c3YzCisJZXhpdCA7OworICAgIFhEODgqOio6KjoqKSAjIFRla3Ryb25peCBYRDg4IHN5c3RlbSBydW5uaW5nIFVUZWtWIChTVlIzKQorCWVjaG8gbTg4ay10ZWt0cm9uaXgtc3lzdjMKKwlleGl0IDs7CisgICAgVGVrNDNbMC05XVswLTldOlVUZWs6KjoqKSAjIFRla3Ryb25peCA0MzAwIHN5c3RlbSBydW5uaW5nIFVUZWsgKEJTRCkKKwllY2hvIG02OGstdGVrdHJvbml4LWJzZAorCWV4aXQgOzsKKyAgICAqOklSSVgqOio6KikKKwllY2hvIG1pcHMtc2dpLWlyaXhgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy8tL18vZydgCisJZXhpdCA7OworICAgID8/Pz8/Pz8/OkFJWD86WzEyXS4xOjIpICAgIyBBSVggMi4yLjEgb3IgQUlYIDIuMS4xIGlzIFJUL1BDIEFJWC4KKwllY2hvIHJvbXAtaWJtLWFpeCAgICAgIyB1bmFtZSAtbSBnaXZlcyBhbiA4IGhleC1jb2RlIENQVSBpZAorCWV4aXQgOzsgICAgICAgICAgICAgICAjIE5vdGUgdGhhdDogZWNobyAiJ2B1bmFtZSAtc2AnIiBnaXZlcyAnQUlYICcKKyAgICBpKjg2OkFJWDoqOiopCisJZWNobyBpMzg2LWlibS1haXgKKwlleGl0IDs7CisgICAgaWE2NDpBSVg6KjoqKQorCWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgorCQlJQk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAorCWVsc2UKKwkJSUJNX1JFVj0ke1VOQU1FX1ZFUlNJT059LiR7VU5BTUVfUkVMRUFTRX0KKwlmaQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tYWl4JHtJQk1fUkVWfQorCWV4aXQgOzsKKyAgICAqOkFJWDoyOjMpCisJaWYgZ3JlcCBib3MzMjUgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVsbCAyPiYxOyB0aGVuCisJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwkJc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCisJCSNpbmNsdWRlIDxzeXMvc3lzdGVtY2ZnLmg+CisKKwkJbWFpbigpCisJCQl7CisJCQlpZiAoIV9fcG93ZXJfcGMoKSkKKwkJCQlleGl0KDEpOworCQkJcHV0cygicG93ZXJwYy1pYm0tYWl4My4yLjUiKTsKKwkJCWV4aXQoMCk7CisJCQl9CitFT0YKKwkJaWYgJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAKKwkJdGhlbgorCQkJZWNobyAiJFNZU1RFTV9OQU1FIgorCQllbHNlCisJCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjUKKwkJZmkKKwllbGlmIGdyZXAgYm9zMzI0IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgorCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjQKKwllbHNlCisJCWVjaG8gcnM2MDAwLWlibS1haXgzLjIKKwlmaQorCWV4aXQgOzsKKyAgICAqOkFJWDoqOls0NTY3XSkKKwlJQk1fQ1BVX0lEPWAvdXNyL3NiaW4vbHNkZXYgLUMgLWMgcHJvY2Vzc29yIC1TIGF2YWlsYWJsZSB8IHNlZCAxcSB8IGF3ayAneyBwcmludCAkMSB9J2AKKwlpZiAvdXNyL3NiaW4vbHNhdHRyIC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KKwkJSUJNX0FSQ0g9cnM2MDAwCisJZWxzZQorCQlJQk1fQVJDSD1wb3dlcnBjCisJZmkKKwlpZiBbIC14IC91c3IvYmluL29zbGV2ZWwgXSA7IHRoZW4KKwkJSUJNX1JFVj1gL3Vzci9iaW4vb3NsZXZlbGAKKwllbHNlCisJCUlCTV9SRVY9JHtVTkFNRV9WRVJTSU9OfS4ke1VOQU1FX1JFTEVBU0V9CisJZmkKKwllY2hvICR7SUJNX0FSQ0h9LWlibS1haXgke0lCTV9SRVZ9CisJZXhpdCA7OworICAgICo6QUlYOio6KikKKwllY2hvIHJzNjAwMC1pYm0tYWl4CisJZXhpdCA7OworICAgIGlibXJ0OjQuNEJTRDoqfHJvbXAtaWJtOkJTRDoqKQorCWVjaG8gcm9tcC1pYm0tYnNkNC40CisJZXhpdCA7OworICAgIGlibXJ0OipCU0Q6Knxyb21wLWlibTpCU0Q6KikgICAgICAgICAgICAjIGNvdmVycyBSVC9QQyBCU0QgYW5kCisJZWNobyByb21wLWlibS1ic2Qke1VOQU1FX1JFTEVBU0V9ICAgIyA0LjMgd2l0aCB1bmFtZSBhZGRlZCB0bworCWV4aXQgOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVwb3J0OiByb21wLWlibSBCU0QgNC4zCisgICAgKjpCT1NYOio6KikKKwllY2hvIHJzNjAwMC1idWxsLWJvc3gKKwlleGl0IDs7CisgICAgRFBYLzI/MDA6Qi5PLlMuOio6KikKKwllY2hvIG02OGstYnVsbC1zeXN2MworCWV4aXQgOzsKKyAgICA5MDAwL1szNF0/Pzo0LjNic2Q6MS4qOiopCisJZWNobyBtNjhrLWhwLWJzZAorCWV4aXQgOzsKKyAgICBocDMwMDo0LjRCU0Q6KjoqIHwgOTAwMC9bMzRdPz86NC4zYnNkOjIuKjoqKQorCWVjaG8gbTY4ay1ocC1ic2Q0LjQKKwlleGl0IDs7CisgICAgOTAwMC9bMzQ2NzhdPz86SFAtVVg6KjoqKQorCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAorCWNhc2UgIiR7VU5BTUVfTUFDSElORX0iIGluCisJICAgIDkwMDAvMzE/ICkgICAgICAgICAgICBIUF9BUkNIPW02ODAwMCA7OworCSAgICA5MDAwL1szNF0/PyApICAgICAgICAgSFBfQVJDSD1tNjhrIDs7CisJICAgIDkwMDAvWzY3OF1bMC05XVswLTldKQorCQlpZiBbIC14IC91c3IvYmluL2dldGNvbmYgXTsgdGhlbgorCQkgICAgc2NfY3B1X3ZlcnNpb249YC91c3IvYmluL2dldGNvbmYgU0NfQ1BVX1ZFUlNJT04gMj4vZGV2L251bGxgCisJCSAgICBzY19rZXJuZWxfYml0cz1gL3Vzci9iaW4vZ2V0Y29uZiBTQ19LRVJORUxfQklUUyAyPi9kZXYvbnVsbGAKKwkJICAgIGNhc2UgIiR7c2NfY3B1X3ZlcnNpb259IiBpbgorCQkgICAgICA1MjMpIEhQX0FSQ0g9ImhwcGExLjAiIDs7ICMgQ1BVX1BBX1JJU0MxXzAKKwkJICAgICAgNTI4KSBIUF9BUkNIPSJocHBhMS4xIiA7OyAjIENQVV9QQV9SSVNDMV8xCisJCSAgICAgIDUzMikgICAgICAgICAgICAgICAgICAgICAgIyBDUFVfUEFfUklTQzJfMAorCQkJY2FzZSAiJHtzY19rZXJuZWxfYml0c30iIGluCisJCQkgIDMyKSBIUF9BUkNIPSJocHBhMi4wbiIgOzsKKwkJCSAgNjQpIEhQX0FSQ0g9ImhwcGEyLjB3IiA7OworCQkJICAnJykgSFBfQVJDSD0iaHBwYTIuMCIgOzsgICAjIEhQLVVYIDEwLjIwCisJCQllc2FjIDs7CisJCSAgICBlc2FjCisJCWZpCisJCWlmIFsgIiR7SFBfQVJDSH0iID0gIiIgXTsgdGhlbgorCQkgICAgZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCQkgICAgc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCisKKwkJI2RlZmluZSBfSFBVWF9TT1VSQ0UKKwkJI2luY2x1ZGUgPHN0ZGxpYi5oPgorCQkjaW5jbHVkZSA8dW5pc3RkLmg+CisKKwkJaW50IG1haW4gKCkKKwkJeworCQkjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCisJCSAgICBsb25nIGJpdHMgPSBzeXNjb25mKF9TQ19LRVJORUxfQklUUyk7CisJCSNlbmRpZgorCQkgICAgbG9uZyBjcHUgID0gc3lzY29uZiAoX1NDX0NQVV9WRVJTSU9OKTsKKworCQkgICAgc3dpdGNoIChjcHUpCisJCQl7CisJCQljYXNlIENQVV9QQV9SSVNDMV8wOiBwdXRzICgiaHBwYTEuMCIpOyBicmVhazsKKwkJCWNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xIik7IGJyZWFrOworCQkJY2FzZSBDUFVfUEFfUklTQzJfMDoKKwkJI2lmIGRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKQorCQkJICAgIHN3aXRjaCAoYml0cykKKwkJCQl7CisJCQkJY2FzZSA2NDogcHV0cyAoImhwcGEyLjB3Iik7IGJyZWFrOworCQkJCWNhc2UgMzI6IHB1dHMgKCJocHBhMi4wbiIpOyBicmVhazsKKwkJCQlkZWZhdWx0OiBwdXRzICgiaHBwYTIuMCIpOyBicmVhazsKKwkJCQl9IGJyZWFrOworCQkjZWxzZSAgLyogIWRlZmluZWQoX1NDX0tFUk5FTF9CSVRTKSAqLworCQkJICAgIHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOworCQkjZW5kaWYKKwkJCWRlZmF1bHQ6IHB1dHMgKCJocHBhMS4wIik7IGJyZWFrOworCQkJfQorCQkgICAgZXhpdCAoMCk7CisJCX0KK0VPRgorCQkgICAgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgMj4vZGV2L251bGwpICYmIEhQX0FSQ0g9YCRkdW1teWAKKwkJICAgIHRlc3QgLXogIiRIUF9BUkNIIiAmJiBIUF9BUkNIPWhwcGEKKwkJZmkgOzsKKwllc2FjCisJaWYgWyAke0hQX0FSQ0h9ID0gImhwcGEyLjB3IiBdCisJdGhlbgorCSAgICBldmFsICRzZXRfY2NfZm9yX2J1aWxkCisKKwkgICAgIyBocHBhMi4wdy1ocC1ocHV4KiBoYXMgYSA2NC1iaXQga2VybmVsIGFuZCBhIGNvbXBpbGVyIGdlbmVyYXRpbmcKKwkgICAgIyAzMi1iaXQgY29kZS4gIGhwcGE2NC1ocC1ocHV4KiBoYXMgdGhlIHNhbWUga2VybmVsIGFuZCBhIGNvbXBpbGVyCisJICAgICMgZ2VuZXJhdGluZyA2NC1iaXQgY29kZS4gIEdOVSBhbmQgSFAgdXNlIGRpZmZlcmVudCBub21lbmNsYXR1cmU6CisJICAgICMKKwkgICAgIyAkIENDX0ZPUl9CVUlMRD1jYyAuL2NvbmZpZy5ndWVzcworCSAgICAjID0+IGhwcGEyLjB3LWhwLWhwdXgxMS4yMworCSAgICAjICQgQ0NfRk9SX0JVSUxEPSJjYyArREEyLjB3IiAuL2NvbmZpZy5ndWVzcworCSAgICAjID0+IGhwcGE2NC1ocC1ocHV4MTEuMjMKKworCSAgICBpZiBlY2hvIF9fTFA2NF9fIHwgKENDT1BUUz0gJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8CisJCWdyZXAgLXEgX19MUDY0X18KKwkgICAgdGhlbgorCQlIUF9BUkNIPSJocHBhMi4wdyIKKwkgICAgZWxzZQorCQlIUF9BUkNIPSJocHBhNjQiCisJICAgIGZpCisJZmkKKwllY2hvICR7SFBfQVJDSH0taHAtaHB1eCR7SFBVWF9SRVZ9CisJZXhpdCA7OworICAgIGlhNjQ6SFAtVVg6KjoqKQorCUhQVVhfUkVWPWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLlswQl0qLy8nYAorCWVjaG8gaWE2NC1ocC1ocHV4JHtIUFVYX1JFVn0KKwlleGl0IDs7CisgICAgMzA1MCo6SEktVVg6KjoqKQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworCSNpbmNsdWRlIDx1bmlzdGQuaD4KKwlpbnQKKwltYWluICgpCisJeworCSAgbG9uZyBjcHUgPSBzeXNjb25mIChfU0NfQ1BVX1ZFUlNJT04pOworCSAgLyogVGhlIG9yZGVyIG1hdHRlcnMsIGJlY2F1c2UgQ1BVX0lTX0hQX01DNjhLIGVycm9uZW91c2x5IHJldHVybnMKKwkgICAgIHRydWUgZm9yIENQVV9QQV9SSVNDMV8wLiAgQ1BVX0lTX1BBX1JJU0MgcmV0dXJucyBjb3JyZWN0CisJICAgICByZXN1bHRzLCBob3dldmVyLiAgKi8KKwkgIGlmIChDUFVfSVNfUEFfUklTQyAoY3B1KSkKKwkgICAgeworCSAgICAgIHN3aXRjaCAoY3B1KQorCQl7CisJCSAgY2FzZSBDUFVfUEFfUklTQzFfMDogcHV0cyAoImhwcGExLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworCQkgIGNhc2UgQ1BVX1BBX1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKKwkJICBjYXNlIENQVV9QQV9SSVNDMl8wOiBwdXRzICgiaHBwYTIuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7CisJCSAgZGVmYXVsdDogcHV0cyAoImhwcGEtaGl0YWNoaS1oaXV4d2UyIik7IGJyZWFrOworCQl9CisJICAgIH0KKwkgIGVsc2UgaWYgKENQVV9JU19IUF9NQzY4SyAoY3B1KSkKKwkgICAgcHV0cyAoIm02OGstaGl0YWNoaS1oaXV4d2UyIik7CisJICBlbHNlIHB1dHMgKCJ1bmtub3duLWhpdGFjaGktaGl1eHdlMiIpOworCSAgZXhpdCAoMCk7CisJfQorRU9GCisJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYgU1lTVEVNX05BTUU9YCRkdW1teWAgJiYKKwkJeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisJZWNobyB1bmtub3duLWhpdGFjaGktaGl1eHdlMgorCWV4aXQgOzsKKyAgICA5MDAwLzc/Pzo0LjNic2Q6KjoqIHwgOTAwMC84P1s3OV06NC4zYnNkOio6KiApCisJZWNobyBocHBhMS4xLWhwLWJzZAorCWV4aXQgOzsKKyAgICA5MDAwLzg/Pzo0LjNic2Q6KjoqKQorCWVjaG8gaHBwYTEuMC1ocC1ic2QKKwlleGl0IDs7CisgICAgKjk/Pyo6TVBFL2lYOio6KiB8ICozMDAwKjpNUEUvaVg6KjoqKQorCWVjaG8gaHBwYTEuMC1ocC1tcGVpeAorCWV4aXQgOzsKKyAgICBocDc/PzpPU0YxOio6KiB8IGhwOD9bNzldOk9TRjE6KjoqICkKKwllY2hvIGhwcGExLjEtaHAtb3NmCisJZXhpdCA7OworICAgIGhwOD8/Ok9TRjE6KjoqKQorCWVjaG8gaHBwYTEuMC1ocC1vc2YKKwlleGl0IDs7CisgICAgaSo4NjpPU0YxOio6KikKKwlpZiBbIC14IC91c3Ivc2Jpbi9zeXN2ZXJzaW9uIF0gOyB0aGVuCisJICAgIGVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLW9zZjFtaworCWVsc2UKKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tb3NmMQorCWZpCisJZXhpdCA7OworICAgIHBhcmlzYyo6TGl0ZXMqOio6KikKKwllY2hvIGhwcGExLjEtaHAtbGl0ZXMKKwlleGl0IDs7CisgICAgQzEqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMSo6KikKKwllY2hvIGMxLWNvbnZleC1ic2QKKwlleGl0IDs7CisgICAgQzIqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpDMio6KikKKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKKwl0aGVuIGVjaG8gYzMyLWNvbnZleC1ic2QKKwllbHNlIGVjaG8gYzItY29udmV4LWJzZAorCWZpCisJZXhpdCA7OworICAgIEMzNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMzNCo6KikKKwllY2hvIGMzNC1jb252ZXgtYnNkCisJZXhpdCA7OworICAgIEMzOCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMzOCo6KikKKwllY2hvIGMzOC1jb252ZXgtYnNkCisJZXhpdCA7OworICAgIEM0KjpDb252ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzQqOiopCisJZWNobyBjNC1jb252ZXgtYnNkCisJZXhpdCA7OworICAgIENSQVkqWS1NUDoqOio6KikKKwllY2hvIHltcC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworCWV4aXQgOzsKKyAgICBDUkFZKltBLVpdOTA6KjoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LWNyYXktdW5pY29zJHtVTkFNRV9SRUxFQVNFfSBcCisJfCBzZWQgLWUgJ3MvQ1JBWS4qXChbQS1aXTkwXCkvXDEvJyBcCisJICAgICAgLWUgeS9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei8gXAorCSAgICAgIC1lICdzL1wuW14uXSokLy5YLycKKwlleGl0IDs7CisgICAgQ1JBWSpUUzoqOio6KikKKwllY2hvIHQ5MC1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXC5bXi5dKiQvLlgvJworCWV4aXQgOzsKKyAgICBDUkFZKlQzRToqOio6KikKKwllY2hvIGFscGhhZXY1LWNyYXktdW5pY29zbWske1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKwlleGl0IDs7CisgICAgQ1JBWSpTVjE6KjoqOiopCisJZWNobyBzdjEtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKwlleGl0IDs7CisgICAgKjpVTklDT1MvbXA6KjoqKQorCWVjaG8gY3JheW52LWNyYXktdW5pY29zbXAke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14uXSokLy5YLycKKwlleGl0IDs7CisgICAgRjMwWzAxXTpVTklYX1N5c3RlbV9WOio6KiB8IEY3MDA6VU5JWF9TeXN0ZW1fVjoqOiopCisJRlVKSVRTVV9QUk9DPWB1bmFtZSAtbSB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6J2AKKwlGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvXC8vLydgCisJRlVKSVRTVV9SRUw9YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy8gL18vJ2AKKwllY2hvICIke0ZVSklUU1VfUFJPQ30tZnVqaXRzdS0ke0ZVSklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9IgorCWV4aXQgOzsKKyAgICA1MDAwOlVOSVhfU3lzdGVtX1Y6NC4qOiopCisJRlVKSVRTVV9TWVM9YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAorCUZVSklUU1VfUkVMPWBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicgfCBzZWQgLWUgJ3MvIC9fLydgCisJZWNobyAic3BhcmMtZnVqaXRzdS0ke0ZVSklUU1VfU1lTfSR7RlVKSVRTVV9SRUx9IgorCWV4aXQgOzsKKyAgICBpKjg2OkJTRC8zODY6KjoqIHwgaSo4NjpCU0QvT1M6KjoqIHwgKjpBc2NlbmRcIEVtYmVkZGVkL09TOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtYnNkaSR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgc3BhcmMqOkJTRC9PUzoqOiopCisJZWNobyBzcGFyYy11bmtub3duLWJzZGkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6QlNEL09TOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1ic2RpJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICAqOkZyZWVCU0Q6KjoqKQorCVVOQU1FX1BST0NFU1NPUj1gL3Vzci9iaW4vdW5hbWUgLXBgCisJY2FzZSAke1VOQU1FX1BST0NFU1NPUn0gaW4KKwkgICAgYW1kNjQpCisJCWVjaG8geDg2XzY0LXVua25vd24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsKKwkgICAgKikKKwkJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7OworCWVzYWMKKwlleGl0IDs7CisgICAgaSo6Q1lHV0lOKjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1jeWd3aW4KKwlleGl0IDs7CisgICAgKjpNSU5HVyo6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluZ3czMgorCWV4aXQgOzsKKyAgICBpKjpNU1lTKjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1tc3lzCisJZXhpdCA7OworICAgIGkqOndpbmRvd3MzMio6KikKKwkjIHVuYW1lIC1tIGluY2x1ZGVzICItcGMiIG9uIHRoaXMgc3lzdGVtLgorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1taW5ndzMyCisJZXhpdCA7OworICAgIGkqOlBXKjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1wdzMyCisJZXhpdCA7OworICAgICo6SW50ZXJpeCo6KikKKwljYXNlICR7VU5BTUVfTUFDSElORX0gaW4KKwkgICAgeDg2KQorCQllY2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KKwkJZXhpdCA7OworCSAgICBhdXRoZW50aWNhbWQgfCBnZW51aW5laW50ZWwgfCBFTTY0VCkKKwkJZWNobyB4ODZfNjQtdW5rbm93bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQorCQlleGl0IDs7CisJICAgIElBNjQpCisJCWVjaG8gaWE2NC11bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9CisJCWV4aXQgOzsKKwllc2FjIDs7CisgICAgWzM0NV04NjpXaW5kb3dzXzk1OiogfCBbMzQ1XTg2OldpbmRvd3NfOTg6KiB8IFszNDVdODY6V2luZG93c19OVDoqKQorCWVjaG8gaSR7VU5BTUVfTUFDSElORX0tcGMtbWtzCisJZXhpdCA7OworICAgIDg2NjQ6V2luZG93c19OVDoqKQorCWVjaG8geDg2XzY0LXBjLW1rcworCWV4aXQgOzsKKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6KikKKwkjIEhvdyBkbyB3ZSBrbm93IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/CisJIyBJdCBhbHNvIGNvbmZsaWN0cyB3aXRoIHByZS0yLjAgdmVyc2lvbnMgb2YgQVQmVCBVV0lOLiBTaG91bGQgd2UKKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQgb24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/CisJZWNobyBpNTg2LXBjLWludGVyaXgKKwlleGl0IDs7CisgICAgaSo6VVdJTio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtdXdpbgorCWV4aXQgOzsKKyAgICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpDWUdXSU4qOio6KikKKwllY2hvIHg4Nl82NC11bmtub3duLWN5Z3dpbgorCWV4aXQgOzsKKyAgICBwKjpDWUdXSU4qOiopCisJZWNobyBwb3dlcnBjbGUtdW5rbm93bi1jeWd3aW4KKwlleGl0IDs7CisgICAgcHJlcCo6U3VuT1M6NS4qOiopCisJZWNobyBwb3dlcnBjbGUtdW5rbm93bi1zb2xhcmlzMmBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAorCWV4aXQgOzsKKyAgICAqOkdOVToqOiopCisJIyB0aGUgR05VIHN5c3RlbQorCWVjaG8gYGVjaG8gJHtVTkFNRV9NQUNISU5FfXxzZWQgLWUgJ3MsWy0vXS4qJCwsJ2AtdW5rbm93bi1nbnVgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncywvLiokLCwnYAorCWV4aXQgOzsKKyAgICAqOkdOVS8qOio6KikKKwkjIG90aGVyIHN5c3RlbXMgd2l0aCBHTlUgbGliYyBhbmQgdXNlcmxhbmQKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZU1RFTX0gfCBzZWQgJ3MsXlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgLWdudQorCWV4aXQgOzsKKyAgICBpKjg2Ok1pbml4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKKwlleGl0IDs7CisgICAgYWFyY2g2NDpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIGFhcmNoNjRfYmU6TGludXg6KjoqKQorCVVOQU1FX01BQ0hJTkU9YWFyY2g2NF9iZQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBhbHBoYTpMaW51eDoqOiopCisJY2FzZSBgc2VkIC1uICcvXmNwdSBtb2RlbC9zL14uKjogXCguKlwpL1wxL3AnIDwgL3Byb2MvY3B1aW5mb2AgaW4KKwkgIEVWNSkgICBVTkFNRV9NQUNISU5FPWFscGhhZXY1IDs7CisJICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NTYgOzsKKwkgIFBDQTU2KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKKwkgIFBDQTU3KSBVTkFNRV9NQUNISU5FPWFscGhhcGNhNTYgOzsKKwkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFscGhhZXY2IDs7CisJICBFVjY3KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NjcgOzsKKwkgIEVWNjgqKSBVTkFNRV9NQUNISU5FPWFscGhhZXY2OCA7OworCWVzYWMKKwlvYmpkdW1wIC0tcHJpdmF0ZS1oZWFkZXJzIC9iaW4vc2ggfCBncmVwIC1xIGxkLnNvLjEKKwlpZiB0ZXN0ICIkPyIgPSAwIDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudSR7TElCQ30KKwlleGl0IDs7CisgICAgYXJtKjpMaW51eDoqOiopCisJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAorCWlmIGVjaG8gX19BUk1fRUFCSV9fIHwgJENDX0ZPUl9CVUlMRCAtRSAtIDI+L2Rldi9udWxsIFwKKwkgICAgfCBncmVwIC1xIF9fQVJNX0VBQklfXworCXRoZW4KKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZWxzZQorCSAgICBpZiBlY2hvIF9fQVJNX1BDU19WRlAgfCAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwgXAorCQl8IGdyZXAgLXEgX19BUk1fUENTX1ZGUAorCSAgICB0aGVuCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudWVhYmkKKwkgICAgZWxzZQorCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnVlYWJpaGYKKwkgICAgZmkKKwlmaQorCWV4aXQgOzsKKyAgICBhdnIzMio6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBjcmlzOkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tYXhpcy1saW51eC1nbnUKKwlleGl0IDs7CisgICAgY3Jpc3YzMjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LWF4aXMtbGludXgtZ251CisJZXhpdCA7OworICAgIGZydjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIGhleGFnb246TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBpKjg2OkxpbnV4Oio6KikKKwlMSUJDPWdudQorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwlzZWQgJ3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYworCSNpZmRlZiBfX2RpZXRsaWJjX18KKwlMSUJDPWRpZXRsaWJjCisJI2VuZGlmCitFT0YKKwlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCAnXkxJQkMnYAorCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgtJHtMSUJDfSIKKwlleGl0IDs7CisgICAgaWE2NDpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIG0zMnIqOkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgbTY4KjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIG1pcHM6TGludXg6KjoqIHwgbWlwczY0OkxpbnV4Oio6KikKKwlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKKwkjdW5kZWYgQ1BVCisJI3VuZGVmICR7VU5BTUVfTUFDSElORX0KKwkjdW5kZWYgJHtVTkFNRV9NQUNISU5FfWVsCisJI2lmIGRlZmluZWQoX19NSVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZpbmVkKE1JUFNFTCkKKwlDUFU9JHtVTkFNRV9NQUNISU5FfWVsCisJI2Vsc2UKKwkjaWYgZGVmaW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIpIHx8IGRlZmluZWQoTUlQU0VCKQorCUNQVT0ke1VOQU1FX01BQ0hJTkV9CisJI2Vsc2UKKwlDUFU9CisJI2VuZGlmCisJI2VuZGlmCitFT0YKKwlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCAnXkNQVSdgCisJdGVzdCB4IiR7Q1BVfSIgIT0geCAmJiB7IGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSI7IGV4aXQ7IH0KKwk7OworICAgIG9yMzI6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBwYWRyZTpMaW51eDoqOiopCisJZWNobyBzcGFyYy11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICBwYXJpc2M2NDpMaW51eDoqOiogfCBocHBhNjQ6TGludXg6KjoqKQorCWVjaG8gaHBwYTY0LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHBhcmlzYzpMaW51eDoqOiogfCBocHBhOkxpbnV4Oio6KikKKwkjIExvb2sgZm9yIENQVSBsZXZlbAorCWNhc2UgYGdyZXAgJ15jcHVbXmEtel0qOicgL3Byb2MvY3B1aW5mbyAyPi9kZXYvbnVsbCB8IGN1dCAtZCcgJyAtZjJgIGluCisJICBQQTcqKSBlY2hvIGhwcGExLjEtdW5rbm93bi1saW51eC1nbnUgOzsKKwkgIFBBOCopIGVjaG8gaHBwYTIuMC11bmtub3duLWxpbnV4LWdudSA7OworCSAgKikgICAgZWNobyBocHBhLXVua25vd24tbGludXgtZ251IDs7CisJZXNhYworCWV4aXQgOzsKKyAgICBwcGM2NDpMaW51eDoqOiopCisJZWNobyBwb3dlcnBjNjQtdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgcHBjOkxpbnV4Oio6KikKKwllY2hvIHBvd2VycGMtdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LWlibS1saW51eAorCWV4aXQgOzsKKyAgICBzaDY0KjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHNoKjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHNwYXJjOkxpbnV4Oio6KiB8IHNwYXJjNjQ6TGludXg6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQorCWV4aXQgOzsKKyAgICB0aWxlKjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIHZheDpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LWRlYy1saW51eC1nbnUKKwlleGl0IDs7CisgICAgeDg2XzY0OkxpbnV4Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwlleGl0IDs7CisgICAgeHRlbnNhKjpMaW51eDoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZXhpdCA7OworICAgIGkqODY6RFlOSVgvcHR4OjQqOiopCisJIyBwdHggNC4wIGRvZXMgdW5hbWUgLXMgY29ycmVjdGx5LCB3aXRoIERZTklYL3B0eCBpbiB0aGVyZS4KKwkjIGVhcmxpZXIgdmVyc2lvbnMgYXJlIG1lc3NlZCB1cCBhbmQgcHV0IHRoZSBub2RlbmFtZSBpbiBib3RoCisJIyBzeXNuYW1lIGFuZCBub2RlbmFtZS4KKwllY2hvIGkzODYtc2VxdWVudC1zeXN2NAorCWV4aXQgOzsKKyAgICBpKjg2OlVOSVhfU1Y6NC4yTVA6Mi4qKQorCSMgVW5peHdhcmUgaXMgYW4gb2Zmc2hvb3Qgb2YgU1ZSNCwgYnV0IGl0IGhhcyBpdHMgb3duIHZlcnNpb24KKwkjIG51bWJlciBzZXJpZXMgc3RhcnRpbmcgd2l0aCAyLi4uCisJIyBJIGFtIG5vdCBwb3NpdGl2ZSB0aGF0IG90aGVyIFNWUjQgc3lzdGVtcyB3b24ndCBtYXRjaCB0aGlzLAorCSMgSSBqdXN0IGhhdmUgdG8gaG9wZS4gIC0tIHJtcy4KKwkjIFVzZSBzeXN2NC4ydXcuLi4gc28gdGhhdCBzeXN2NCogbWF0Y2hlcyBpdC4KKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lzdjQuMnV3JHtVTkFNRV9WRVJTSU9OfQorCWV4aXQgOzsKKyAgICBpKjg2Ok9TLzI6KjoqKQorCSMgSWYgd2Ugd2VyZSBhYmxlIHRvIGZpbmQgYHVuYW1lJywgdGhlbiBFTVggVW5peCBjb21wYXRpYmlsaXR5CisJIyBpcyBwcm9iYWJseSBpbnN0YWxsZWQuCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLW9zMi1lbXgKKwlleGl0IDs7CisgICAgaSo4NjpYVFMtMzAwOio6U1RPUCkKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zdG9wCisJZXhpdCA7OworICAgIGkqODY6YXRoZW9zOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1hdGhlb3MKKwlleGl0IDs7CisgICAgaSo4NjpzeWxsYWJsZToqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5bGxhYmxlCisJZXhpdCA7OworICAgIGkqODY6THlueE9TOjIuKjoqIHwgaSo4NjpMeW54T1M6My5bMDFdKjoqIHwgaSo4NjpMeW54T1M6NC5bMDJdKjoqKQorCWVjaG8gaTM4Ni11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgaSo4NjoqRE9TOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbXNkb3NkamdwcAorCWV4aXQgOzsKKyAgICBpKjg2Oio6NC4qOiogfCBpKjg2OlNZU1RFTV9WOjQuKjoqKQorCVVOQU1FX1JFTD1gZWNobyAke1VOQU1FX1JFTEVBU0V9IHwgc2VkICdzL1wvTVAkLy8nYAorCWlmIGdyZXAgTm92ZWxsIC91c3IvaW5jbHVkZS9saW5rLmggPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgorCQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5pdmVsLXN5c3Yke1VOQU1FX1JFTH0KKwllbHNlCisJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1zeXN2JHtVTkFNRV9SRUx9CisJZmkKKwlleGl0IDs7CisgICAgaSo4NjoqOjU6WzY3OF0qKQorCSMgVW5peFdhcmUgNy54LCBPcGVuVU5JWCBhbmQgT3BlblNlcnZlciA2LgorCWNhc2UgYC9iaW4vdW5hbWUgLVggfCBncmVwICJeTWFjaGluZSJgIGluCisJICAgICo0ODYqKQkgICAgIFVOQU1FX01BQ0hJTkU9aTQ4NiA7OworCSAgICAqUGVudGl1bSkJICAgICBVTkFNRV9NQUNISU5FPWk1ODYgOzsKKwkgICAgKlBlbnQqfCpDZWxlcm9uKSBVTkFNRV9NQUNISU5FPWk2ODYgOzsKKwllc2FjCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0ke1VOQU1FX1NZU1RFTX0ke1VOQU1FX1ZFUlNJT059CisJZXhpdCA7OworICAgIGkqODY6KjozLjI6KikKKwlpZiB0ZXN0IC1mIC91c3Ivb3B0aW9ucy9jYi5uYW1lOyB0aGVuCisJCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAvL3AnIDwvdXNyL29wdGlvbnMvY2IubmFtZWAKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWlzYyRVTkFNRV9SRUwKKwllbGlmIC9iaW4vdW5hbWUgLVggMj4vZGV2L251bGwgPi9kZXYvbnVsbCA7IHRoZW4KKwkJVU5BTUVfUkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1lICdzLy4qPSAvLycpYAorCQkoL2Jpbi91bmFtZSAtWHxncmVwIGk4MDQ4NiA+L2Rldi9udWxsKSAmJiBVTkFNRV9NQUNISU5FPWk0ODYKKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAnXk1hY2hpbmUuKlBlbnRpdW0nID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudCAqSUknID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bSBQcm8nID4vZGV2L251bGwpIFwKKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTY4NgorCQllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc2NvJFVOQU1FX1JFTAorCWVsc2UKKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXN5c3YzMgorCWZpCisJZXhpdCA7OworICAgIHBjOio6KjoqKQorCSMgTGVmdCBoZXJlIGZvciBjb21wYXRpYmlsaXR5OgorCSMgdW5hbWUgLW0gcHJpbnRzIGZvciBESkdQUCBhbHdheXMgJ3BjJywgYnV0IGl0IHByaW50cyBub3RoaW5nIGFib3V0CisJIyB0aGUgcHJvY2Vzc29yLCBzbyB3ZSBwbGF5IHNhZmUgYnkgYXNzdW1pbmcgaTU4Ni4KKwkjIE5vdGU6IHdoYXRldmVyIHRoaXMgaXMsIGl0IE1VU1QgYmUgdGhlIHNhbWUgYXMgd2hhdCBjb25maWcuc3ViCisJIyBwcmludHMgZm9yIHRoZSAiZGpncHAiIGhvc3QsIG9yIGVsc2UgR0RCIGNvbmZpZ3VyeSB3aWxsIGRlY2lkZSB0aGF0CisJIyB0aGlzIGlzIGEgY3Jvc3MtYnVpbGQuCisJZWNobyBpNTg2LXBjLW1zZG9zZGpncHAKKwlleGl0IDs7CisgICAgSW50ZWw6TWFjaDozKjoqKQorCWVjaG8gaTM4Ni1wYy1tYWNoMworCWV4aXQgOzsKKyAgICBwYXJhZ29uOio6KjoqKQorCWVjaG8gaTg2MC1pbnRlbC1vc2YxCisJZXhpdCA7OworICAgIGk4NjA6Kjo0Lio6KikgIyBpODYwLVNWUjQKKwlpZiBncmVwIFN0YXJkZW50IC91c3IvaW5jbHVkZS9zeXMvdWFkbWluLmggPi9kZXYvbnVsbCAyPiYxIDsgdGhlbgorCSAgZWNobyBpODYwLXN0YXJkZW50LXN5c3Yke1VOQU1FX1JFTEVBU0V9ICMgU3RhcmRlbnQgVmlzdHJhIGk4NjAtU1ZSNAorCWVsc2UgIyBBZGQgb3RoZXIgaTg2MC1TVlI0IHZlbmRvcnMgYmVsb3cgYXMgdGhleSBhcmUgZGlzY292ZXJlZC4KKwkgIGVjaG8gaTg2MC11bmtub3duLXN5c3Yke1VOQU1FX1JFTEVBU0V9ICAjIFVua25vd24gaTg2MC1TVlI0CisJZmkKKwlleGl0IDs7CisgICAgbWluaSo6Q1RJWDpTWVMqNToqKQorCSMgIm1pbmlmcmFtZSIKKwllY2hvIG02ODAxMC1jb252ZXJnZW50LXN5c3YKKwlleGl0IDs7CisgICAgbWM2OGs6VU5JWDpTWVNURU01OjMuNTFtKQorCWVjaG8gbTY4ay1jb252ZXJnZW50LXN5c3YKKwlleGl0IDs7CisgICAgTTY4MD8wOkQtTklYOjUuMzoqKQorCWVjaG8gbTY4ay1kaWFiLWRuaXgKKwlleGl0IDs7CisgICAgTTY4KjoqOlIzVls1Njc4XSo6KikKKwl0ZXN0IC1yIC9zeXNWNjggJiYgeyBlY2hvICdtNjhrLW1vdG9yb2xhLXN5c3YnOyBleGl0OyB9IDs7CisgICAgM1szNDVdPz86Kjo0LjA6My4wIHwgM1szNF0/P0E6Kjo0LjA6My4wIHwgM1szNF0/PywqOio6NC4wOjMuMCB8IDNbMzRdPz8vKjoqOjQuMDozLjAgfCA0NDAwOio6NC4wOjMuMCB8IDQ4NTA6Kjo0LjA6My4wIHwgU0tBNDA6Kjo0LjA6My4wIHwgU0RTMjoqOjQuMDozLjAgfCBTSEcyOio6NC4wOjMuMCB8IFM3NTAxKjoqOjQuMDozLjApCisJT1NfUkVMPScnCisJdGVzdCAtciAvZXRjLy5yZWxpZCBcCisJJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKwkgICYmIHsgZWNobyBpNDg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9CisJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IC9iaW4vZ3JlcCBlbnRpdW0gPi9kZXYvbnVsbCBcCisJICAmJiB7IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OworICAgIDNbMzRdPz86Kjo0LjA6KiB8IDNbMzRdPz8sKjoqOjQuMDoqKQorCS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAorCSAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0OyBleGl0OyB9IDs7CisgICAgTkNSKjoqOjQuMjoqIHwgTVBSQVMqOio6NC4yOiopCisJT1NfUkVMPScuMycKKwl0ZXN0IC1yIC9ldGMvLnJlbGlkIFwKKwkgICAgJiYgT1NfUkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRjLy5yZWxpZGAKKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKKwkgICAgJiYgeyBlY2hvIGk0ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0KKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIGVudGl1bSA+L2Rldi9udWxsIFwKKwkgICAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0KKwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIHB0ZXJvbiA+L2Rldi9udWxsIFwKKwkgICAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0gOzsKKyAgICBtNjgqOkx5bnhPUzoyLio6KiB8IG02OCo6THlueE9TOjMuMCo6KikKKwllY2hvIG02OGstdW5rbm93bi1seW54b3Mke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIG1jNjgwMzA6VU5JWF9TeXN0ZW1fVjo0Lio6KikKKwllY2hvIG02OGstYXRhcmktc3lzdjQKKwlleGl0IDs7CisgICAgVFNVTkFNSTpMeW54T1M6Mi4qOiopCisJZWNobyBzcGFyYy11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgcnM2MDAwOkx5bnhPUzoyLio6KikKKwllY2hvIHJzNjAwMC11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgUG93ZXJQQzpMeW54T1M6Mi4qOiogfCBQb3dlclBDOkx5bnhPUzozLlswMV0qOiogfCBQb3dlclBDOkx5bnhPUzo0LlswMl0qOiopCisJZWNobyBwb3dlcnBjLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBTTVtCRV1TOlVOSVhfU1Y6KjoqKQorCWVjaG8gbWlwcy1kZGUtc3lzdiR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgUk0qOlJlbGlhbnRVTklYLSo6KjoqKQorCWVjaG8gbWlwcy1zbmktc3lzdjQKKwlleGl0IDs7CisgICAgUk0qOlNJTklYLSo6KjoqKQorCWVjaG8gbWlwcy1zbmktc3lzdjQKKwlleGl0IDs7CisgICAgKjpTSU5JWC0qOio6KikKKwlpZiB1bmFtZSAtcCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgorCQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAorCQllY2hvICR7VU5BTUVfTUFDSElORX0tc25pLXN5c3Y0CisJZWxzZQorCQllY2hvIG5zMzJrLXNuaS1zeXN2CisJZmkKKwlleGl0IDs7CisgICAgUEVOVElVTToqOjQuMCo6KikJIyBVbmlzeXMgYENsZWFyUGF0aCBITVAgSVggNDAwMCcgU1ZSNC9NUCBlZmZvcnQKKwkJCSMgc2F5cyA8UmljaGFyZC5NLkJhcnRlbEBjY01haWwuQ2Vuc3VzLkdPVj4KKwllY2hvIGk1ODYtdW5pc3lzLXN5c3Y0CisJZXhpdCA7OworICAgICo6VU5JWF9TeXN0ZW1fVjo0KjpGVFgqKQorCSMgRnJvbSBHZXJhbGQgSGV3ZXMgPGhld2VzQG9wZW5tYXJrZXQuY29tPi4KKwkjIEhvdyBhYm91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBzdHJhdHVzIGFyY2hpdGVjdHVyZXM/IC1kam0KKwllY2hvIGhwcGExLjEtc3RyYXR1cy1zeXN2NAorCWV4aXQgOzsKKyAgICAqOio6KjpGVFgqKQorCSMgRnJvbSBzZWFuZkBzd2RjLnN0cmF0dXMuY29tLgorCWVjaG8gaTg2MC1zdHJhdHVzLXN5c3Y0CisJZXhpdCA7OworICAgIGkqODY6Vk9TOio6KikKKwkjIEZyb20gUGF1bC5HcmVlbkBzdHJhdHVzLmNvbS4KKwllY2hvICR7VU5BTUVfTUFDSElORX0tc3RyYXR1cy12b3MKKwlleGl0IDs7CisgICAgKjpWT1M6KjoqKQorCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0dXMuY29tLgorCWVjaG8gaHBwYTEuMS1zdHJhdHVzLXZvcworCWV4aXQgOzsKKyAgICBtYzY4KjpBL1VYOio6KikKKwllY2hvIG02OGstYXBwbGUtYXV4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBuZXdzKjpORVdTLU9TOjYqOiopCisJZWNobyBtaXBzLXNvbnktbmV3c29zNgorCWV4aXQgOzsKKyAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6KiB8IFI0MDAwOlVOSVhfU1lTVjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKKwlpZiBbIC1kIC91c3IvbmVjIF07IHRoZW4KKwkJZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxFQVNFfQorCWVsc2UKKwkJZWNobyBtaXBzLXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0KKwlmaQorCWV4aXQgOzsKKyAgICBCZUJveDpCZU9TOio6KikJIyBCZU9TIHJ1bm5pbmcgb24gaGFyZHdhcmUgbWFkZSBieSBCZSwgUFBDIG9ubHkuCisJZWNobyBwb3dlcnBjLWJlLWJlb3MKKwlleGl0IDs7CisgICAgQmVNYWM6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIE1hYyBvciBNYWMgY2xvbmUsIFBQQyBvbmx5LgorCWVjaG8gcG93ZXJwYy1hcHBsZS1iZW9zCisJZXhpdCA7OworICAgIEJlUEM6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIEludGVsIFBDIGNvbXBhdGlibGUuCisJZWNobyBpNTg2LXBjLWJlb3MKKwlleGl0IDs7CisgICAgQmVQQzpIYWlrdToqOiopCSMgSGFpa3UgcnVubmluZyBvbiBJbnRlbCBQQyBjb21wYXRpYmxlLgorCWVjaG8gaTU4Ni1wYy1oYWlrdQorCWV4aXQgOzsKKyAgICBTWC00OlNVUEVSLVVYOio6KikKKwllY2hvIHN4NC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgU1gtNTpTVVBFUi1VWDoqOiopCisJZWNobyBzeDUtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIFNYLTY6U1VQRVItVVg6KjoqKQorCWVjaG8gc3g2LW5lYy1zdXBlcnV4JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBTWC03OlNVUEVSLVVYOio6KikKKwllY2hvIHN4Ny1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgU1gtODpTVVBFUi1VWDoqOiopCisJZWNobyBzeDgtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIFNYLThSOlNVUEVSLVVYOio6KikKKwllY2hvIHN4OHItbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIFBvd2VyKjpSaGFwc29keToqOiopCisJZWNobyBwb3dlcnBjLWFwcGxlLXJoYXBzb2R5JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICAqOlJoYXBzb2R5Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tYXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6RGFyd2luOio6KikKKwlVTkFNRV9QUk9DRVNTT1I9YHVuYW1lIC1wYCB8fCBVTkFNRV9QUk9DRVNTT1I9dW5rbm93bgorCWNhc2UgJFVOQU1FX1BST0NFU1NPUiBpbgorCSAgICBpMzg2KQorCQlldmFsICRzZXRfY2NfZm9yX2J1aWxkCisJCWlmIFsgIiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgorCQkgIGlmIChlY2hvICcjaWZkZWYgX19MUDY0X18nOyBlY2hvIElTXzY0QklUX0FSQ0g7IGVjaG8gJyNlbmRpZicpIHwgXAorCQkgICAgICAoQ0NPUFRTPSAkQ0NfRk9SX0JVSUxEIC1FIC0gMj4vZGV2L251bGwpIHwgXAorCQkgICAgICBncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAorCQkgIHRoZW4KKwkJICAgICAgVU5BTUVfUFJPQ0VTU09SPSJ4ODZfNjQiCisJCSAgZmkKKwkJZmkgOzsKKwkgICAgdW5rbm93bikgVU5BTUVfUFJPQ0VTU09SPXBvd2VycGMgOzsKKwllc2FjCisJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tYXBwbGUtZGFyd2luJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICAqOnByb2NudG8qOio6KiB8ICo6UU5YOlswMTIzNDU2Nzg5XSo6KikKKwlVTkFNRV9QUk9DRVNTT1I9YHVuYW1lIC1wYAorCWlmIHRlc3QgIiRVTkFNRV9QUk9DRVNTT1IiID0gIng4NiI7IHRoZW4KKwkJVU5BTUVfUFJPQ0VTU09SPWkzODYKKwkJVU5BTUVfTUFDSElORT1wYworCWZpCisJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tJHtVTkFNRV9NQUNISU5FfS1udG8tcW54JHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICAqOlFOWDoqOjQqKQorCWVjaG8gaTM4Ni1wYy1xbngKKwlleGl0IDs7CisgICAgTkVPLT86Tk9OU1RPUF9LRVJORUw6KjoqKQorCWVjaG8gbmVvLXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgIE5TRS0/Ok5PTlNUT1BfS0VSTkVMOio6KikKKwllY2hvIG5zZS10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgOzsKKyAgICBOU1ItPzpOT05TVE9QX0tFUk5FTDoqOiopCisJZWNobyBuc3ItdGFuZGVtLW5zayR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpOb25TdG9wLVVYOio6KikKKwllY2hvIG1pcHMtY29tcGFxLW5vbnN0b3B1eAorCWV4aXQgOzsKKyAgICBCUzIwMDA6UE9TSVgqOio6KikKKwllY2hvIGJzMjAwMC1zaWVtZW5zLXN5c3YKKwlleGl0IDs7CisgICAgRFMvKjpVTklYX1N5c3RlbV9WOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tJHtVTkFNRV9TWVNURU19LSR7VU5BTUVfUkVMRUFTRX0KKwlleGl0IDs7CisgICAgKjpQbGFuOToqOiopCisJIyAidW5hbWUgLW0iIGlzIG5vdCBjb25zaXN0ZW50LCBzbyB1c2UgJGNwdXR5cGUgaW5zdGVhZC4gMzg2CisJIyBpcyBjb252ZXJ0ZWQgdG8gaTM4NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKKwkjIG9wZXJhdGluZyBzeXN0ZW1zLgorCWlmIHRlc3QgIiRjcHV0eXBlIiA9ICIzODYiOyB0aGVuCisJICAgIFVOQU1FX01BQ0hJTkU9aTM4NgorCWVsc2UKKwkgICAgVU5BTUVfTUFDSElORT0iJGNwdXR5cGUiCisJZmkKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1wbGFuOQorCWV4aXQgOzsKKyAgICAqOlRPUFMtMTA6KjoqKQorCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMTAKKwlleGl0IDs7CisgICAgKjpURU5FWDoqOiopCisJZWNobyBwZHAxMC11bmtub3duLXRlbmV4CisJZXhpdCA7OworICAgIEtTMTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQRTQ6VE9QUy0yMDoqOiopCisJZWNobyBwZHAxMC1kZWMtdG9wczIwCisJZXhpdCA7OworICAgIFhLTC0xOlRPUFMtMjA6KjoqIHwgVFlQRTU6VE9QUy0yMDoqOiopCisJZWNobyBwZHAxMC14a2wtdG9wczIwCisJZXhpdCA7OworICAgICo6VE9QUy0yMDoqOiopCisJZWNobyBwZHAxMC11bmtub3duLXRvcHMyMAorCWV4aXQgOzsKKyAgICAqOklUUzoqOiopCisJZWNobyBwZHAxMC11bmtub3duLWl0cworCWV4aXQgOzsKKyAgICBTRUk6KjoqOlNFSVVYKQorCWVjaG8gbWlwcy1zZWktc2VpdXgke1VOQU1FX1JFTEVBU0V9CisJZXhpdCA7OworICAgICo6RHJhZ29uRmx5Oio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1kcmFnb25mbHlgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLShdLiovLydgCisJZXhpdCA7OworICAgICo6KlZNUzoqOiopCisJVU5BTUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKKwljYXNlICIke1VOQU1FX01BQ0hJTkV9IiBpbgorCSAgICBBKikgZWNobyBhbHBoYS1kZWMtdm1zIDsgZXhpdCA7OworCSAgICBJKikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7CisJICAgIFYqKSBlY2hvIHZheC1kZWMtdm1zIDsgZXhpdCA7OworCWVzYWMgOzsKKyAgICAqOlhFTklYOio6U3lzVikKKwllY2hvIGkzODYtcGMteGVuaXgKKwlleGl0IDs7CisgICAgaSo4Njpza3lvczoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLXNreW9zYGVjaG8gJHtVTkFNRV9SRUxFQVNFfWAgfCBzZWQgLWUgJ3MvIC4qJC8vJworCWV4aXQgOzsKKyAgICBpKjg2OnJkb3M6KjoqKQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1yZG9zCisJZXhpdCA7OworICAgIGkqODY6QVJPUzoqOiopCisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWFyb3MKKwlleGl0IDs7CisgICAgeDg2XzY0OlZNa2VybmVsOio6KikKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1lc3gKKwlleGl0IDs7Citlc2FjCisKKyNlY2hvICcoTm8gdW5hbWUgY29tbWFuZCBvciB1bmFtZSBvdXRwdXQgbm90IHJlY29nbml6ZWQuKScgMT4mMgorI2VjaG8gIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7VU5BTUVfUkVMRUFTRX06JHtVTkFNRV9WRVJTSU9OfSIgMT4mMgorCitldmFsICRzZXRfY2NfZm9yX2J1aWxkCitjYXQgPiRkdW1teS5jIDw8RU9GCisjaWZkZWYgX1NFUVVFTlRfCisjIGluY2x1ZGUgPHN5cy90eXBlcy5oPgorIyBpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgorI2VuZGlmCittYWluICgpCit7CisjaWYgZGVmaW5lZCAoc29ueSkKKyNpZiBkZWZpbmVkIChNSVBTRUIpCisgIC8qIEJGRCB3YW50cyAiYnNkIiBpbnN0ZWFkIG9mICJuZXdzb3MiLiAgUGVyaGFwcyBCRkQgc2hvdWxkIGJlIGNoYW5nZWQsCisgICAgIEkgZG9uJ3Qga25vdy4uLi4gICovCisgIHByaW50ZiAoIm1pcHMtc29ueS1ic2RcbiIpOyBleGl0ICgwKTsKKyNlbHNlCisjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisgIHByaW50ZiAoIm02OGstc29ueS1uZXdzb3Mlc1xuIiwKKyNpZmRlZiBORVdTT1M0CisJIjQiCisjZWxzZQorCSIiCisjZW5kaWYKKwkpOyBleGl0ICgwKTsKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkIChfX2FybSkgJiYgZGVmaW5lZCAoX19hY29ybikgJiYgZGVmaW5lZCAoX191bml4KQorICBwcmludGYgKCJhcm0tYWNvcm4tcmlzY2l4XG4iKTsgZXhpdCAoMCk7CisjZW5kaWYKKworI2lmIGRlZmluZWQgKGhwMzAwKSAmJiAhZGVmaW5lZCAoaHB1eCkKKyAgcHJpbnRmICgibTY4ay1ocC1ic2RcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAoTmVYVCkKKyNpZiAhZGVmaW5lZCAoX19BUkNISVRFQ1RVUkVfXykKKyNkZWZpbmUgX19BUkNISVRFQ1RVUkVfXyAibTY4ayIKKyNlbmRpZgorICBpbnQgdmVyc2lvbjsKKyAgdmVyc2lvbj1gKGhvc3RpbmZvIHwgc2VkIC1uICdzLy4qTmVYVCBNYWNoIFwoWzAtOV0qXCkuKi9cMS9wJykgMj4vZGV2L251bGxgOworICBpZiAodmVyc2lvbiA8IDQpCisgICAgcHJpbnRmICgiJXMtbmV4dC1uZXh0c3RlcCVkXG4iLCBfX0FSQ0hJVEVDVFVSRV9fLCB2ZXJzaW9uKTsKKyAgZWxzZQorICAgIHByaW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7CisgIGV4aXQgKDApOworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChNVUxUSU1BWCkgfHwgZGVmaW5lZCAobjE2KQorI2lmIGRlZmluZWQgKFVNQVhWKQorICBwcmludGYgKCJuczMyay1lbmNvcmUtc3lzdlxuIik7IGV4aXQgKDApOworI2Vsc2UKKyNpZiBkZWZpbmVkIChDTVUpCisgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1tYWNoXG4iKTsgZXhpdCAoMCk7CisjZWxzZQorICBwcmludGYgKCJuczMyay1lbmNvcmUtYnNkXG4iKTsgZXhpdCAoMCk7CisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKKyNpZiBkZWZpbmVkIChfXzM4NkJTRF9fKQorICBwcmludGYgKCJpMzg2LXBjLWJzZFxuIik7IGV4aXQgKDApOworI2VuZGlmCisKKyNpZiBkZWZpbmVkIChzZXF1ZW50KQorI2lmIGRlZmluZWQgKGkzODYpCisgIHByaW50ZiAoImkzODYtc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOworI2VuZGlmCisjaWYgZGVmaW5lZCAobnMzMjAwMCkKKyAgcHJpbnRmICgibnMzMmstc2VxdWVudC1keW5peFxuIik7IGV4aXQgKDApOworI2VuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQgKF9TRVFVRU5UXykKKyAgICBzdHJ1Y3QgdXRzbmFtZSB1bjsKKworICAgIHVuYW1lKCZ1bik7CisKKyAgICBpZiAoc3RybmNtcCh1bi52ZXJzaW9uLCAiVjIiLCAyKSA9PSAwKSB7CisJcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0eDJcbiIpOyBleGl0ICgwKTsKKyAgICB9CisgICAgaWYgKHN0cm5jbXAodW4udmVyc2lvbiwgIlYxIiwgMikgPT0gMCkgeyAvKiBYWFggaXMgVjEgY29ycmVjdD8gKi8KKwlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MVxuIik7IGV4aXQgKDApOworICAgIH0KKyAgICBwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4XG4iKTsgZXhpdCAoMCk7CisKKyNlbmRpZgorCisjaWYgZGVmaW5lZCAodmF4KQorIyBpZiAhZGVmaW5lZCAodWx0cml4KQorIyAgaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjICBpZiBkZWZpbmVkIChCU0QpCisjICAgaWYgQlNEID09IDQzCisgICAgICBwcmludGYgKCJ2YXgtZGVjLWJzZDQuM1xuIik7IGV4aXQgKDApOworIyAgIGVsc2UKKyMgICAgaWYgQlNEID09IDE5OTAwNgorICAgICAgcHJpbnRmICgidmF4LWRlYy1ic2Q0LjNyZW5vXG4iKTsgZXhpdCAoMCk7CisjICAgIGVsc2UKKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7CisjICAgIGVuZGlmCisjICAgZW5kaWYKKyMgIGVsc2UKKyAgICBwcmludGYgKCJ2YXgtZGVjLWJzZFxuIik7IGV4aXQgKDApOworIyAgZW5kaWYKKyMgZWxzZQorICAgIHByaW50ZiAoInZheC1kZWMtdWx0cml4XG4iKTsgZXhpdCAoMCk7CisjIGVuZGlmCisjZW5kaWYKKworI2lmIGRlZmluZWQgKGFsbGlhbnQpICYmIGRlZmluZWQgKGk4NjApCisgIHByaW50ZiAoImk4NjAtYWxsaWFudC1ic2RcbiIpOyBleGl0ICgwKTsKKyNlbmRpZgorCisgIGV4aXQgKDEpOworfQorRU9GCisKKyRDQ19GT1JfQlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsICYmIFNZU1RFTV9OQU1FPWAkZHVtbXlgICYmCisJeyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9CisKKyMgQXBvbGxvcyBwdXQgdGhlIHN5c3RlbSB0eXBlIGluIHRoZSBlbnZpcm9ubWVudC4KKwordGVzdCAtZCAvdXNyL2Fwb2xsbyAmJiB7IGVjaG8gJHtJU1B9LWFwb2xsby0ke1NZU1RZUEV9OyBleGl0OyB9CisKKyMgQ29udmV4IHZlcnNpb25zIHRoYXQgcHJlZGF0ZSB1bmFtZSBjYW4gdXNlIGdldHN5c2luZm8oMSkKKworaWYgWyAteCAvdXNyL2NvbnZleC9nZXRzeXNpbmZvIF0KK3RoZW4KKyAgICBjYXNlIGBnZXRzeXNpbmZvIC1mIGNwdV90eXBlYCBpbgorICAgIGMxKikKKwllY2hvIGMxLWNvbnZleC1ic2QKKwlleGl0IDs7CisgICAgYzIqKQorCWlmIGdldHN5c2luZm8gLWYgc2NhbGFyX2FjYworCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAorCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCisJZmkKKwlleGl0IDs7CisgICAgYzM0KikKKwllY2hvIGMzNC1jb252ZXgtYnNkCisJZXhpdCA7OworICAgIGMzOCopCisJZWNobyBjMzgtY29udmV4LWJzZAorCWV4aXQgOzsKKyAgICBjNCopCisJZWNobyBjNC1jb252ZXgtYnNkCisJZXhpdCA7OworICAgIGVzYWMKK2ZpCisKK2NhdCA+JjIgPDxFT0YKKyQwOiB1bmFibGUgdG8gZ3Vlc3Mgc3lzdGVtIHR5cGUKKworVGhpcyBzY3JpcHQsIGxhc3QgbW9kaWZpZWQgJHRpbWVzdGFtcCwgaGFzIGZhaWxlZCB0byByZWNvZ25pemUKK3RoZSBvcGVyYXRpbmcgc3lzdGVtIHlvdSBhcmUgdXNpbmcuIEl0IGlzIGFkdmlzZWQgdGhhdCB5b3UKK2Rvd25sb2FkIHRoZSBtb3N0IHVwIHRvIGRhdGUgdmVyc2lvbiBvZiB0aGUgY29uZmlnIHNjcmlwdHMgZnJvbQorCisgIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuZ3Vlc3M7aGI9SEVBRAorYW5kCisgIGh0dHA6Ly9naXQuc2F2YW5uYWguZ251Lm9yZy9naXR3ZWIvP3A9Y29uZmlnLmdpdDthPWJsb2JfcGxhaW47Zj1jb25maWcuc3ViO2hiPUhFQUQKKworSWYgdGhlIHZlcnNpb24geW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCitzZW5kIHRoZSBmb2xsb3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQorcGVydGluZW50IHRvIDxjb25maWctcGF0Y2hlc0BnbnUub3JnPiBpbiBvcmRlciB0byBwcm92aWRlIHRoZSBuZWVkZWQKK2luZm9ybWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5c3RlbS4KKworY29uZmlnLmd1ZXNzIHRpbWVzdGFtcCA9ICR0aW1lc3RhbXAKKwordW5hbWUgLW0gPSBgKHVuYW1lIC1tKSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCit1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAKK3VuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAordW5hbWUgLXYgPSBgKHVuYW1lIC12KSAyPi9kZXYvbnVsbCB8fCBlY2hvIHVua25vd25gCisKKy91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91bmFtZSAtcCkgMj4vZGV2L251bGxgCisvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAtWCkgMj4vZGV2L251bGxgCisKK2hvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZvKSAyPi9kZXYvbnVsbGAKKy9iaW4vdW5pdmVyc2UgICAgICAgICAgPSBgKC9iaW4vdW5pdmVyc2UpIDI+L2Rldi9udWxsYAorL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4vZGV2L251bGxgCisvYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsYAorL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IGAoL3Vzci9iaW4vb3NsZXZlbCkgMj4vZGV2L251bGxgCisvdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gYCgvdXNyL2NvbnZleC9nZXRzeXNpbmZvKSAyPi9kZXYvbnVsbGAKKworVU5BTUVfTUFDSElORSA9ICR7VU5BTUVfTUFDSElORX0KK1VOQU1FX1JFTEVBU0UgPSAke1VOQU1FX1JFTEVBU0V9CitVTkFNRV9TWVNURU0gID0gJHtVTkFNRV9TWVNURU19CitVTkFNRV9WRVJTSU9OID0gJHtVTkFNRV9WRVJTSU9OfQorRU9GCisKK2V4aXQgMQorCisjIExvY2FsIHZhcmlhYmxlczoKKyMgZXZhbDogKGFkZC1ob29rICd3cml0ZS1maWxlLWhvb2tzICd0aW1lLXN0YW1wKQorIyB0aW1lLXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCisjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKKyMgdGltZS1zdGFtcC1lbmQ6ICInIgorIyBFbmQ6CmRpZmYgLS1naXQgYS9jb25maWcuc3ViIGIvY29uZmlnLnN1YgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jODk0ZGE0Ci0tLSAvZGV2L251bGwKKysrIGIvY29uZmlnLnN1YgpAQCAtMCwwICsxLDE3NzMgQEAKKyMhIC9iaW4vc2gKKyMgQ29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIHN1YnJvdXRpbmUgc2NyaXB0LgorIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwKKyMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLAorIyAgIDIwMTEsIDIwMTIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKK3RpbWVzdGFtcD0nMjAxMi0wMi0xMCcKKworIyBUaGlzIGZpbGUgaXMgKGluIHByaW5jaXBsZSkgY29tbW9uIHRvIEFMTCBHTlUgc29mdHdhcmUuCisjIFRoZSBwcmVzZW5jZSBvZiBhIG1hY2hpbmUgaW4gdGhpcyBmaWxlIHN1Z2dlc3RzIHRoYXQgU09NRSBHTlUgc29mdHdhcmUKKyMgY2FuIGhhbmRsZSB0aGF0IG1hY2hpbmUuICBJdCBkb2VzIG5vdCBpbXBseSBBTEwgR05VIHNvZnR3YXJlIGNhbi4KKyMKKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyMKKyMgQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIGlmIHlvdQorIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKKyMgdGhlIHNhbWUgZGlzdHJpYnV0aW9uIHRlcm1zIHRoYXQgeW91IHVzZSBmb3IgdGhlIHJlc3Qgb2YgdGhhdCBwcm9ncmFtLgorCisKKyMgUGxlYXNlIHNlbmQgcGF0Y2hlcyB0byA8Y29uZmlnLXBhdGNoZXNAZ251Lm9yZz4uICBTdWJtaXQgYSBjb250ZXh0CisjIGRpZmYgYW5kIGEgcHJvcGVybHkgZm9ybWF0dGVkIEdOVSBDaGFuZ2VMb2cgZW50cnkuCisjCisjIENvbmZpZ3VyYXRpb24gc3Vicm91dGluZSB0byB2YWxpZGF0ZSBhbmQgY2Fub25pY2FsaXplIGEgY29uZmlndXJhdGlvbiB0eXBlLgorIyBTdXBwbHkgdGhlIHNwZWNpZmllZCBjb25maWd1cmF0aW9uIHR5cGUgYXMgYW4gYXJndW1lbnQuCisjIElmIGl0IGlzIGludmFsaWQsIHdlIHByaW50IGFuIGVycm9yIG1lc3NhZ2Ugb24gc3RkZXJyIGFuZCBleGl0IHdpdGggY29kZSAxLgorIyBPdGhlcndpc2UsIHdlIHByaW50IHRoZSBjYW5vbmljYWwgY29uZmlnIHR5cGUgb24gc3Rkb3V0IGFuZCBzdWNjZWVkLgorCisjIFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgorIyBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5naXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECisKKyMgVGhpcyBmaWxlIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBzYW1lIGZvciBhbGwgR05VIHBhY2thZ2VzCisjIGFuZCByZWNvZ25pemUgYWxsIHRoZSBDUFUgdHlwZXMsIHN5c3RlbSB0eXBlcyBhbmQgYWxpYXNlcworIyB0aGF0IGFyZSBtZWFuaW5nZnVsIHdpdGggKmFueSogR05VIHNvZnR3YXJlLgorIyBFYWNoIHBhY2thZ2UgaXMgcmVzcG9uc2libGUgZm9yIHJlcG9ydGluZyB3aGljaCB2YWxpZCBjb25maWd1cmF0aW9ucworIyBpdCBkb2VzIG5vdCBzdXBwb3J0LiAgVGhlIHVzZXIgc2hvdWxkIGJlIGFibGUgdG8gZGlzdGluZ3Vpc2gKKyMgYSBmYWlsdXJlIHRvIHN1cHBvcnQgYSB2YWxpZCBjb25maWd1cmF0aW9uIGZyb20gYSBtZWFuaW5nbGVzcworIyBjb25maWd1cmF0aW9uLgorCisjIFRoZSBnb2FsIG9mIHRoaXMgZmlsZSBpcyB0byBtYXAgYWxsIHRoZSB2YXJpb3VzIHZhcmlhdGlvbnMgb2YgYSBnaXZlbgorIyBtYWNoaW5lIHNwZWNpZmljYXRpb24gaW50byBhIHNpbmdsZSBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3JtOgorIwlDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFUSU5HX1NZU1RFTQorIyBvciBpbiBzb21lIGNhc2VzLCB0aGUgbmV3ZXIgZm91ci1wYXJ0IGZvcm06CisjCUNQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFUSU5HX1NZU1RFTQorIyBJdCBpcyB3cm9uZyB0byBlY2hvIGFueSBvdGhlciB0eXBlIG9mIHNwZWNpZmljYXRpb24uCisKK21lPWBlY2hvICIkMCIgfCBzZWQgLWUgJ3MsLiovLCwnYAorCit1c2FnZT0iXAorVXNhZ2U6ICQwIFtPUFRJT05dIENQVS1NRlItT1BTWVMKKyAgICAgICAkMCBbT1BUSU9OXSBBTElBUworCitDYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIG5hbWUuCisKK09wZXJhdGlvbiBtb2RlczoKKyAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0CisgIC10LCAtLXRpbWUtc3RhbXAgICBwcmludCBkYXRlIG9mIGxhc3QgbW9kaWZpY2F0aW9uLCB0aGVuIGV4aXQKKyAgLXYsIC0tdmVyc2lvbiAgICAgIHByaW50IHZlcnNpb24gbnVtYmVyLCB0aGVuIGV4aXQKKworUmVwb3J0IGJ1Z3MgYW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+LiIKKwordmVyc2lvbj0iXAorR05VIGNvbmZpZy5zdWIgKCR0aW1lc3RhbXApCisKK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwKKzIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEsIDIwMTIKK0ZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCitUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTword2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgorCitoZWxwPSIKK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKKworIyBQYXJzZSBjb21tYW5kIGxpbmUKK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbworICBjYXNlICQxIGluCisgICAgLS10aW1lLXN0YW1wIHwgLS10aW1lKiB8IC10ICkKKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQgOzsKKyAgICAtLXZlcnNpb24gfCAtdiApCisgICAgICAgZWNobyAiJHZlcnNpb24iIDsgZXhpdCA7OworICAgIC0taGVscCB8IC0taCogfCAtaCApCisgICAgICAgZWNobyAiJHVzYWdlIjsgZXhpdCA7OworICAgIC0tICkgICAgICMgU3RvcCBvcHRpb24gcHJvY2Vzc2luZworICAgICAgIHNoaWZ0OyBicmVhayA7OworICAgIC0gKQkjIFVzZSBzdGRpbiBhcyBpbnB1dC4KKyAgICAgICBicmVhayA7OworICAgIC0qICkKKyAgICAgICBlY2hvICIkbWU6IGludmFsaWQgb3B0aW9uICQxJGhlbHAiCisgICAgICAgZXhpdCAxIDs7CisKKyAgICAqbG9jYWwqKQorICAgICAgICMgRmlyc3QgcGFzcyB0aHJvdWdoIGFueSBsb2NhbCBtYWNoaW5lIHR5cGVzLgorICAgICAgIGVjaG8gJDEKKyAgICAgICBleGl0IDs7CisKKyAgICAqICkKKyAgICAgICBicmVhayA7OworICBlc2FjCitkb25lCisKK2Nhc2UgJCMgaW4KKyAwKSBlY2hvICIkbWU6IG1pc3NpbmcgYXJndW1lbnQkaGVscCIgPiYyCisgICAgZXhpdCAxOzsKKyAxKSA7OworICopIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1lbnRzJGhlbHAiID4mMgorICAgIGV4aXQgMTs7Citlc2FjCisKKyMgU2VwYXJhdGUgd2hhdCB0aGUgdXNlciBnYXZlIGludG8gQ1BVLUNPTVBBTlkgYW5kIE9TIG9yIEtFUk5FTC1PUyAoaWYgYW55KS4KKyMgSGVyZSB3ZSBtdXN0IHJlY29nbml6ZSBhbGwgdGhlIHZhbGlkIEtFUk5FTC1PUyBjb21iaW5hdGlvbnMuCittYXliZV9vcz1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwpLVwoW14tXSotW14tXSpcKSQvXDIvJ2AKK2Nhc2UgJG1heWJlX29zIGluCisgIG50by1xbngqIHwgbGludXgtZ251KiB8IGxpbnV4LWFuZHJvaWQqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1uZXdsaWIqIHwgXAorICBsaW51eC11Y2xpYmMqIHwgdWNsaW51eC11Y2xpYmMqIHwgdWNsaW51eC1nbnUqIHwga2ZyZWVic2QqLWdudSogfCBcCisgIGtuZXRic2QqLWdudSogfCBuZXRic2QqLWdudSogfCBcCisgIGtvcGVuc29sYXJpcyotZ251KiB8IFwKKyAgc3Rvcm0tY2hhb3MqIHwgb3MyLWVteCogfCBydG1rLW5vdmEqKQorICAgIG9zPS0kbWF5YmVfb3MKKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAorICAgIDs7CisgIGFuZHJvaWQtbGludXgpCisgICAgb3M9LWxpbnV4LWFuZHJvaWQKKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4qXCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYC11bmtub3duCisgICAgOzsKKyAgKikKKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzLy1bXi1dKiQvLydgCisgICAgaWYgWyAkYmFzaWNfbWFjaGluZSAhPSAkMSBdCisgICAgdGhlbiBvcz1gZWNobyAkMSB8IHNlZCAncy8uKi0vLS8nYAorICAgIGVsc2Ugb3M9OyBmaQorICAgIDs7Citlc2FjCisKKyMjIyBMZXQncyByZWNvZ25pemUgY29tbW9uIG1hY2hpbmVzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcyBzbworIyMjIHRoYXQgdGhpbmdzIGxpa2UgY29uZmlnLnN1YiBkZWNzdGF0aW9uLTMxMDAgd29yay4gIFdlIGFsc28KKyMjIyByZWNvZ25pemUgc29tZSBtYW51ZmFjdHVyZXJzIGFzIG5vdCBiZWluZyBvcGVyYXRpbmcgc3lzdGVtcywgc28gd2UKKyMjIyBjYW4gcHJvdmlkZSBkZWZhdWx0IG9wZXJhdGluZyBzeXN0ZW1zIGJlbG93LgorY2FzZSAkb3MgaW4KKwktc3VuKm9zKikKKwkJIyBQcmV2ZW50IGZvbGxvd2luZyBjbGF1c2UgZnJvbSBoYW5kbGluZyB0aGlzIGludmFsaWQgaW5wdXQuCisJCTs7CisJLWRlYyogfCAtbWlwcyogfCAtc2VxdWVudCogfCAtZW5jb3JlKiB8IC1wYzUzMiogfCAtc2dpKiB8IC1zb255KiB8IFwKKwktYXR0KiB8IC03MzAwKiB8IC0zMzAwKiB8IC1kZWx0YSogfCAtbW90b3JvbGEqIHwgLXN1blsyMzRdKiB8IFwKKwktdW5pY29tKiB8IC1pYm0qIHwgLW5leHQgfCAtaHAgfCAtaXNpKiB8IC1hcG9sbG8gfCAtYWx0b3MqIHwgXAorCS1jb252ZXJnZW50KiB8IC1uY3IqIHwgLW5ld3MgfCAtMzIqIHwgLTM2MDAqIHwgLTMxMDAqIHwgLWhpdGFjaGkqIHxcCisJLWNbMTIzXSogfCAtY29udmV4KiB8IC1zdW4gfCAtY3JkcyB8IC1vbXJvbiogfCAtZGcgfCAtdWx0cmEgfCAtdHRpKiB8IFwKKwktaGFycmlzIHwgLWRvbHBoaW4gfCAtaGlnaGxldmVsIHwgLWdvdWxkIHwgLWNibSB8IC1ucyB8IC1tYXNzY29tcCB8IFwKKwktYXBwbGUgfCAtYXhpcyB8IC1rbnV0aCB8IC1jcmF5IHwgLW1pY3JvYmxhemUpCisJCW9zPQorCQliYXNpY19tYWNoaW5lPSQxCisJCTs7CisJLWJsdWVnZW5lKikKKwkJb3M9LWNuaworCQk7OworCS1zaW0gfCAtY2lzY28gfCAtb2tpIHwgLXdlYyB8IC13aW5ib25kKQorCQlvcz0KKwkJYmFzaWNfbWFjaGluZT0kMQorCQk7OworCS1zY291dCkKKwkJOzsKKwktd3JzKQorCQlvcz0tdnh3b3JrcworCQliYXNpY19tYWNoaW5lPSQxCisJCTs7CisJLWNob3J1c29zKikKKwkJb3M9LWNob3J1c29zCisJCWJhc2ljX21hY2hpbmU9JDEKKwkJOzsKKwktY2hvcnVzcmRiKQorCQlvcz0tY2hvcnVzcmRiCisJCWJhc2ljX21hY2hpbmU9JDEKKwkJOzsKKwktaGl1eCopCisJCW9zPS1oaXV4d2UyCisJCTs7CisJLXNjbzYpCisJCW9zPS1zY281djYKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY281KQorCQlvcz0tc2NvMy4ydjUKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY280KQorCQlvcz0tc2NvMy4ydjQKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY28zLjIuWzQtOV0qKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvc2NvMy4yLi9zY28zLjJ2LydgCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktc2NvMy4ydls0LTldKikKKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAorCQk7OworCS1zY281djYqKQorCQkjIERvbid0IGZvcmdldCB2ZXJzaW9uIGlmIGl0IGlzIDMuMnY0IG9yIG5ld2VyLgorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXNjbyopCisJCW9zPS1zY28zLjJ2MgorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCisJCTs7CisJLXVkayopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktaXNjKQorCQlvcz0taXNjMi4yCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktY2xpeCopCisJCWJhc2ljX21hY2hpbmU9Y2xpcHBlci1pbnRlcmdyYXBoCisJCTs7CisJLWlzYyopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKKwkJOzsKKwktbHlueCopCisJCW9zPS1seW54b3MKKwkJOzsKKwktcHR4KikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni0uKi84Ni1zZXF1ZW50LydgCisJCTs7CisJLXdpbmRvd3NudCopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy93aW5kb3dzbnQvd2lubnQvJ2AKKwkJOzsKKwktcHNvcyopCisJCW9zPS1wc29zCisJCTs7CisJLW1pbnQgfCAtbWludFswLTldKikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0YXJpCisJCW9zPS1taW50CisJCTs7Citlc2FjCisKKyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29tYmluYXRpb25zLgorY2FzZSAkYmFzaWNfbWFjaGluZSBpbgorCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUuCisJIyBTb21lIGFyZSBvbWl0dGVkIGhlcmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxvdy4KKwkxNzUwYSB8IDU4MCBcCisJfCBhMjlrIFwKKwl8IGFhcmNoNjQgfCBhYXJjaDY0X2JlIFwKKwl8IGFscGhhIHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2IHwgYWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3XSBcCisJfCBhbHBoYTY0IHwgYWxwaGE2NGV2WzQtOF0gfCBhbHBoYTY0ZXY1NiB8IGFscGhhNjRldjZbNzhdIHwgYWxwaGE2NHBjYTVbNjddIFwKKwl8IGFtMzNfMi4wIFwKKwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBhcm12WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwKKyAgICAgICAgfCBiZTMyIHwgYmU2NCBcCisJfCBiZmluIFwKKwl8IGM0eCB8IGNsaXBwZXIgXAorCXwgZDEwdiB8IGQzMHYgfCBkbHggfCBkc3AxNnh4IFwKKwl8IGVwaXBoYW55IFwKKwl8IGZpZG8gfCBmcjMwIHwgZnJ2IFwKKwl8IGg4MzAwIHwgaDg1MDAgfCBocHBhIHwgaHBwYTEuWzAxXSB8IGhwcGEyLjAgfCBocHBhMi4wW253XSB8IGhwcGE2NCBcCisJfCBoZXhhZ29uIFwKKwl8IGkzNzAgfCBpODYwIHwgaTk2MCB8IGlhNjQgXAorCXwgaXAyayB8IGlxMjAwMCBcCisJfCBsZTMyIHwgbGU2NCBcCisJfCBsbTMyIFwKKwl8IG0zMmMgfCBtMzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAorCXwgbWF4cSB8IG1iIHwgbWljcm9ibGF6ZSB8IG1jb3JlIHwgbWVwIHwgbWV0YWcgXAorCXwgbWlwcyB8IG1pcHNiZSB8IG1pcHNlYiB8IG1pcHNlbCB8IG1pcHNsZSBcCisJfCBtaXBzMTYgXAorCXwgbWlwczY0IHwgbWlwczY0ZWwgXAorCXwgbWlwczY0b2N0ZW9uIHwgbWlwczY0b2N0ZW9uZWwgXAorCXwgbWlwczY0b3Jpb24gfCBtaXBzNjRvcmlvbmVsIFwKKwl8IG1pcHM2NHI1OTAwIHwgbWlwczY0cjU5MDBlbCBcCisJfCBtaXBzNjR2ciB8IG1pcHM2NHZyZWwgXAorCXwgbWlwczY0dnI0MTAwIHwgbWlwczY0dnI0MTAwZWwgXAorCXwgbWlwczY0dnI0MzAwIHwgbWlwczY0dnI0MzAwZWwgXAorCXwgbWlwczY0dnI1MDAwIHwgbWlwczY0dnI1MDAwZWwgXAorCXwgbWlwczY0dnI1OTAwIHwgbWlwczY0dnI1OTAwZWwgXAorCXwgbWlwc2lzYTMyIHwgbWlwc2lzYTMyZWwgXAorCXwgbWlwc2lzYTMycjIgfCBtaXBzaXNhMzJyMmVsIFwKKwl8IG1pcHNpc2E2NCB8IG1pcHNpc2E2NGVsIFwKKwl8IG1pcHNpc2E2NHIyIHwgbWlwc2lzYTY0cjJlbCBcCisJfCBtaXBzaXNhNjRzYjEgfCBtaXBzaXNhNjRzYjFlbCBcCisJfCBtaXBzaXNhNjRzcjcxayB8IG1pcHNpc2E2NHNyNzFrZWwgXAorCXwgbWlwc3R4MzkgfCBtaXBzdHgzOWVsIFwKKwl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKKwl8IG1veGllIFwKKwl8IG10IFwKKwl8IG1zcDQzMCBcCisJfCBuZHMzMiB8IG5kczMybGUgfCBuZHMzMmJlIFwKKwl8IG5pb3MgfCBuaW9zMiBcCisJfCBuczE2ayB8IG5zMzJrIFwKKwl8IG9wZW44IFwKKwl8IG9yMzIgXAorCXwgcGRwMTAgfCBwZHAxMSB8IHBqIHwgcGpsIFwKKwl8IHBvd2VycGMgfCBwb3dlcnBjNjQgfCBwb3dlcnBjNjRsZSB8IHBvd2VycGNsZSBcCisJfCBweXJhbWlkIFwKKwl8IHJsNzggfCByeCBcCisJfCBzY29yZSBcCisJfCBzaCB8IHNoWzEyMzRdIHwgc2hbMjRdYSB8IHNoWzI0XWFlYiB8IHNoWzIzXWUgfCBzaFszNF1lYiB8IHNoZWIgfCBzaGJlIHwgc2hsZSB8IHNoWzEyMzRdbGUgfCBzaDNlbGUgXAorCXwgc2g2NCB8IHNoNjRsZSBcCisJfCBzcGFyYyB8IHNwYXJjNjQgfCBzcGFyYzY0YiB8IHNwYXJjNjR2IHwgc3BhcmM4NnggfCBzcGFyY2xldCB8IHNwYXJjbGl0ZSBcCisJfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIHwgc3BhcmN2OXYgXAorCXwgc3B1IFwKKwl8IHRhaG9lIHwgdGljNHggfCB0aWM1NHggfCB0aWM1NXggfCB0aWM2eCB8IHRpYzgwIHwgdHJvbiBcCisJfCB1Ymljb20zMiBcCisJfCB2ODUwIHwgdjg1MGUgfCB2ODUwZTEgfCB2ODUwZTIgfCB2ODUwZXMgfCB2ODUwZTJ2MyBcCisJfCB3ZTMyayBcCisJfCB4ODYgfCB4YzE2eCB8IHhzdG9ybXkxNiB8IHh0ZW5zYSBcCisJfCB6OGsgfCB6ODApCisJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgorCQk7OworCWM1NHgpCisJCWJhc2ljX21hY2hpbmU9dGljNTR4LXVua25vd24KKwkJOzsKKwljNTV4KQorCQliYXNpY19tYWNoaW5lPXRpYzU1eC11bmtub3duCisJCTs7CisJYzZ4KQorCQliYXNpY19tYWNoaW5lPXRpYzZ4LXVua25vd24KKwkJOzsKKwltNjgxMSB8IG02OGhjMTEgfCBtNjgxMiB8IG02OGhjMTIgfCBtNjhoY3MxMnggfCBwaWNvY2hpcCkKKwkJYmFzaWNfbWFjaGluZT0kYmFzaWNfbWFjaGluZS11bmtub3duCisJCW9zPS1ub25lCisJCTs7CisJbTg4MTEwIHwgbTY4MFsxMjM0Nl0wIHwgbTY4Mz8yIHwgbTY4MzYwIHwgbTUyMDAgfCB2NzAgfCB3NjUgfCB6OGspCisJCTs7CisJbXMxKQorCQliYXNpY19tYWNoaW5lPW10LXVua25vd24KKwkJOzsKKworCXN0cm9uZ2FybSB8IHRodW1iIHwgeHNjYWxlKQorCQliYXNpY19tYWNoaW5lPWFybS11bmtub3duCisJCTs7CisJeGdhdGUpCisJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgorCQlvcz0tbm9uZQorCQk7OworCXhzY2FsZWViKQorCQliYXNpY19tYWNoaW5lPWFybWViLXVua25vd24KKwkJOzsKKworCXhzY2FsZWVsKQorCQliYXNpY19tYWNoaW5lPWFybWVsLXVua25vd24KKwkJOzsKKworCSMgV2UgdXNlIGBwYycgcmF0aGVyIHRoYW4gYHVua25vd24nCisJIyBiZWNhdXNlICgxKSB0aGF0J3Mgd2hhdCB0aGV5IG5vcm1hbGx5IGFyZSwgYW5kCisJIyAoMikgdGhlIHdvcmQgInVua25vd24iIHRlbmRzIHRvIGNvbmZ1c2UgYmVnaW5uaW5nIHVzZXJzLgorCWkqODYgfCB4ODZfNjQpCisJICBiYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXBjCisJICA7OworCSMgT2JqZWN0IGlmIG1vcmUgdGhhbiBvbmUgY29tcGFueSBuYW1lIHdvcmQuCisJKi0qLSopCisJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgorCQlleGl0IDEKKwkJOzsKKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BVIHR5cGVzIHdpdGggY29tcGFueSBuYW1lLgorCTU4MC0qIFwKKwl8IGEyOWstKiBcCisJfCBhYXJjaDY0LSogfCBhYXJjaDY0X2JlLSogXAorCXwgYWxwaGEtKiB8IGFscGhhZXZbNC04XS0qIHwgYWxwaGFldjU2LSogfCBhbHBoYWV2Nls3OF0tKiBcCisJfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxwaGE2NGV2NTYtKiB8IGFscGhhNjRldjZbNzhdLSogXAorCXwgYWxwaGFwY2E1WzY3XS0qIHwgYWxwaGE2NHBjYTVbNjddLSogfCBhcmMtKiBcCisJfCBhcm0tKiAgfCBhcm1iZS0qIHwgYXJtbGUtKiB8IGFybWViLSogfCBhcm12Ki0qIFwKKwl8IGF2ci0qIHwgYXZyMzItKiBcCisJfCBiZTMyLSogfCBiZTY0LSogXAorCXwgYmZpbi0qIHwgYnMyMDAwLSogXAorCXwgY1sxMjNdKiB8IGMzMC0qIHwgW2NqdF05MC0qIHwgYzR4LSogXAorCXwgY2xpcHBlci0qIHwgY3JheW52LSogfCBjeWRyYS0qIFwKKwl8IGQxMHYtKiB8IGQzMHYtKiB8IGRseC0qIFwKKwl8IGVseHNpLSogXAorCXwgZjMwWzAxXS0qIHwgZjcwMC0qIHwgZmlkby0qIHwgZnIzMC0qIHwgZnJ2LSogfCBmeDgwLSogXAorCXwgaDgzMDAtKiB8IGg4NTAwLSogXAorCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBwYTIuMC0qIHwgaHBwYTIuMFtud10tKiB8IGhwcGE2NC0qIFwKKwl8IGhleGFnb24tKiBcCisJfCBpKjg2LSogfCBpODYwLSogfCBpOTYwLSogfCBpYTY0LSogXAorCXwgaXAyay0qIHwgaXEyMDAwLSogXAorCXwgbGUzMi0qIHwgbGU2NC0qIFwKKwl8IGxtMzItKiBcCisJfCBtMzJjLSogfCBtMzJyLSogfCBtMzJybGUtKiBcCisJfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAorCXwgbTg4MTEwLSogfCBtODhrLSogfCBtYXhxLSogfCBtY29yZS0qIHwgbWV0YWctKiB8IG1pY3JvYmxhemUtKiBcCisJfCBtaXBzLSogfCBtaXBzYmUtKiB8IG1pcHNlYi0qIHwgbWlwc2VsLSogfCBtaXBzbGUtKiBcCisJfCBtaXBzMTYtKiBcCisJfCBtaXBzNjQtKiB8IG1pcHM2NGVsLSogXAorCXwgbWlwczY0b2N0ZW9uLSogfCBtaXBzNjRvY3Rlb25lbC0qIFwKKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAorCXwgbWlwczY0cjU5MDAtKiB8IG1pcHM2NHI1OTAwZWwtKiBcCisJfCBtaXBzNjR2ci0qIHwgbWlwczY0dnJlbC0qIFwKKwl8IG1pcHM2NHZyNDEwMC0qIHwgbWlwczY0dnI0MTAwZWwtKiBcCisJfCBtaXBzNjR2cjQzMDAtKiB8IG1pcHM2NHZyNDMwMGVsLSogXAorCXwgbWlwczY0dnI1MDAwLSogfCBtaXBzNjR2cjUwMDBlbC0qIFwKKwl8IG1pcHM2NHZyNTkwMC0qIHwgbWlwczY0dnI1OTAwZWwtKiBcCisJfCBtaXBzaXNhMzItKiB8IG1pcHNpc2EzMmVsLSogXAorCXwgbWlwc2lzYTMycjItKiB8IG1pcHNpc2EzMnIyZWwtKiBcCisJfCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAorCXwgbWlwc2lzYTY0cjItKiB8IG1pcHNpc2E2NHIyZWwtKiBcCisJfCBtaXBzaXNhNjRzYjEtKiB8IG1pcHNpc2E2NHNiMWVsLSogXAorCXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFrZWwtKiBcCisJfCBtaXBzdHgzOS0qIHwgbWlwc3R4MzllbC0qIFwKKwl8IG1taXgtKiBcCisJfCBtdC0qIFwKKwl8IG1zcDQzMC0qIFwKKwl8IG5kczMyLSogfCBuZHMzMmxlLSogfCBuZHMzMmJlLSogXAorCXwgbmlvcy0qIHwgbmlvczItKiBcCisJfCBub25lLSogfCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0qIFwKKwl8IG9wZW44LSogXAorCXwgb3Jpb24tKiBcCisJfCBwZHAxMC0qIHwgcGRwMTEtKiB8IHBqLSogfCBwamwtKiB8IHBuLSogfCBwb3dlci0qIFwKKwl8IHBvd2VycGMtKiB8IHBvd2VycGM2NC0qIHwgcG93ZXJwYzY0bGUtKiB8IHBvd2VycGNsZS0qIFwKKwl8IHB5cmFtaWQtKiBcCisJfCBybDc4LSogfCByb21wLSogfCByczYwMDAtKiB8IHJ4LSogXAorCXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsyNF1hZWItKiB8IHNoWzIzXWUtKiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAorCXwgc2hsZS0qIHwgc2hbMTIzNF1sZS0qIHwgc2gzZWxlLSogfCBzaDY0LSogfCBzaDY0bGUtKiBcCisJfCBzcGFyYy0qIHwgc3BhcmM2NC0qIHwgc3BhcmM2NGItKiB8IHNwYXJjNjR2LSogfCBzcGFyYzg2eC0qIHwgc3BhcmNsZXQtKiBcCisJfCBzcGFyY2xpdGUtKiBcCisJfCBzcGFyY3Y4LSogfCBzcGFyY3Y5LSogfCBzcGFyY3Y5Yi0qIHwgc3BhcmN2OXYtKiB8IHN2MS0qIHwgc3g/LSogXAorCXwgdGFob2UtKiBcCisJfCB0aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGljNTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiBcCisJfCB0aWxlKi0qIFwKKwl8IHRyb24tKiBcCisJfCB1Ymljb20zMi0qIFwKKwl8IHY4NTAtKiB8IHY4NTBlLSogfCB2ODUwZTEtKiB8IHY4NTBlcy0qIHwgdjg1MGUyLSogfCB2ODUwZTJ2My0qIFwKKwl8IHZheC0qIFwKKwl8IHdlMzJrLSogXAorCXwgeDg2LSogfCB4ODZfNjQtKiB8IHhjMTZ4LSogfCB4cHMxMDAtKiBcCisJfCB4c3Rvcm15MTYtKiB8IHh0ZW5zYSotKiBcCisJfCB5bXAtKiBcCisJfCB6OGstKiB8IHo4MC0qKQorCQk7OworCSMgUmVjb2duaXplIHRoZSBiYXNpYyBDUFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUsIHdpdGggZ2xvYiBtYXRjaC4KKwl4dGVuc2EqKQorCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKwkJOzsKKwkjIFJlY29nbml6ZSB0aGUgdmFyaW91cyBtYWNoaW5lIG5hbWVzIGFuZCBhbGlhc2VzIHdoaWNoIHN0YW5kCisJIyBmb3IgYSBDUFUgdHlwZSBhbmQgYSBjb21wYW55IGFuZCBzb21ldGltZXMgZXZlbiBhbiBPUy4KKwkzODZic2QpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCisJCW9zPS1ic2QKKwkJOzsKKwkzYjEgfCA3MzAwIHwgNzMwMC1hdHQgfCBhdHQtNzMwMCB8IHBjNzMwMCB8IHNhZmFyaSB8IHVuaXhwYykKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtYXR0CisJCTs7CisJM2IqKQorCQliYXNpY19tYWNoaW5lPXdlMzJrLWF0dAorCQk7OworCWEyOWtoaWYpCisJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKwkJb3M9LXVkaQorCQk7OworCWFiYWN1cykKKwkJYmFzaWNfbWFjaGluZT1hYmFjdXMtdW5rbm93bgorCQk7OworCWFkb2JlNjhrKQorCQliYXNpY19tYWNoaW5lPW02ODAxMC1hZG9iZQorCQlvcz0tc2NvdXQKKwkJOzsKKwlhbGxpYW50IHwgZng4MCkKKwkJYmFzaWNfbWFjaGluZT1meDgwLWFsbGlhbnQKKwkJOzsKKwlhbHRvcyB8IGFsdG9zMzA2OCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFsdG9zCisJCTs7CisJYW0yOWspCisJCWJhc2ljX21hY2hpbmU9YTI5ay1ub25lCisJCW9zPS1ic2QKKwkJOzsKKwlhbWQ2NCkKKwkJYmFzaWNfbWFjaGluZT14ODZfNjQtcGMKKwkJOzsKKwlhbWQ2NC0qKQorCQliYXNpY19tYWNoaW5lPXg4Nl82NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCWFtZGFobCkKKwkJYmFzaWNfbWFjaGluZT01ODAtYW1kYWhsCisJCW9zPS1zeXN2CisJCTs7CisJYW1pZ2EgfCBhbWlnYS0qKQorCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorCQk7OworCWFtaWdhb3MgfCBhbWlnYWRvcykKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25vd24KKwkJb3M9LWFtaWdhb3MKKwkJOzsKKwlhbWlnYXVuaXggfCBhbWl4KQorCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorCQlvcz0tc3lzdjQKKwkJOzsKKwlhcG9sbG82OCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbworCQlvcz0tc3lzdgorCQk7OworCWFwb2xsbzY4YnNkKQorCQliYXNpY19tYWNoaW5lPW02OGstYXBvbGxvCisJCW9zPS1ic2QKKwkJOzsKKwlhcm9zKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LWFyb3MKKwkJOzsKKwlhdXgpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQorCQlvcz0tYXV4CisJCTs7CisJYmFsYW5jZSkKKwkJYmFzaWNfbWFjaGluZT1uczMyay1zZXF1ZW50CisJCW9zPS1keW5peAorCQk7OworCWJsYWNrZmluKQorCQliYXNpY19tYWNoaW5lPWJmaW4tdW5rbm93bgorCQlvcz0tbGludXgKKwkJOzsKKwlibGFja2Zpbi0qKQorCQliYXNpY19tYWNoaW5lPWJmaW4tYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJb3M9LWxpbnV4CisJCTs7CisJYmx1ZWdlbmUqKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGMtaWJtCisJCW9zPS1jbmsKKwkJOzsKKwljNTR4LSopCisJCWJhc2ljX21hY2hpbmU9dGljNTR4LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJYzU1eC0qKQorCQliYXNpY19tYWNoaW5lPXRpYzU1eC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCWM2eC0qKQorCQliYXNpY19tYWNoaW5lPXRpYzZ4LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJYzkwKQorCQliYXNpY19tYWNoaW5lPWM5MC1jcmF5CisJCW9zPS11bmljb3MKKwkJOzsKKwljZWdjYykKKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgorCQlvcz0tY2VnY2MKKwkJOzsKKwljb252ZXgtYzEpCisJCWJhc2ljX21hY2hpbmU9YzEtY29udmV4CisJCW9zPS1ic2QKKwkJOzsKKwljb252ZXgtYzIpCisJCWJhc2ljX21hY2hpbmU9YzItY29udmV4CisJCW9zPS1ic2QKKwkJOzsKKwljb252ZXgtYzMyKQorCQliYXNpY19tYWNoaW5lPWMzMi1jb252ZXgKKwkJb3M9LWJzZAorCQk7OworCWNvbnZleC1jMzQpCisJCWJhc2ljX21hY2hpbmU9YzM0LWNvbnZleAorCQlvcz0tYnNkCisJCTs7CisJY29udmV4LWMzOCkKKwkJYmFzaWNfbWFjaGluZT1jMzgtY29udmV4CisJCW9zPS1ic2QKKwkJOzsKKwljcmF5IHwgajkwKQorCQliYXNpY19tYWNoaW5lPWo5MC1jcmF5CisJCW9zPS11bmljb3MKKwkJOzsKKwljcmF5bnYpCisJCWJhc2ljX21hY2hpbmU9Y3JheW52LWNyYXkKKwkJb3M9LXVuaWNvc21wCisJCTs7CisJY3IxNiB8IGNyMTYtKikKKwkJYmFzaWNfbWFjaGluZT1jcjE2LXVua25vd24KKwkJb3M9LWVsZgorCQk7OworCWNyZHMgfCB1bm9zKQorCQliYXNpY19tYWNoaW5lPW02OGstY3JkcworCQk7OworCWNyaXN2MzIgfCBjcmlzdjMyLSogfCBldHJheGZzKikKKwkJYmFzaWNfbWFjaGluZT1jcmlzdjMyLWF4aXMKKwkJOzsKKwljcmlzIHwgY3Jpcy0qIHwgZXRyYXgqKQorCQliYXNpY19tYWNoaW5lPWNyaXMtYXhpcworCQk7OworCWNyeCkKKwkJYmFzaWNfbWFjaGluZT1jcngtdW5rbm93bgorCQlvcz0tZWxmCisJCTs7CisJZGEzMCB8IGRhMzAtKikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWRhMzAKKwkJOzsKKwlkZWNzdGF0aW9uIHwgZGVjc3RhdGlvbi0zMTAwIHwgcG1heCB8IHBtYXgtKiB8IHBtaW4gfCBkZWMzMTAwIHwgZGVjc3RhdG4pCisJCWJhc2ljX21hY2hpbmU9bWlwcy1kZWMKKwkJOzsKKwlkZWNzeXN0ZW0xMCogfCBkZWMxMCopCisJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCisJCW9zPS10b3BzMTAKKwkJOzsKKwlkZWNzeXN0ZW0yMCogfCBkZWMyMCopCisJCWJhc2ljX21hY2hpbmU9cGRwMTAtZGVjCisJCW9zPS10b3BzMjAKKwkJOzsKKwlkZWx0YSB8IDMzMDAgfCBtb3Rvcm9sYS0zMzAwIHwgbW90b3JvbGEtZGVsdGEgXAorCSAgICAgIHwgMzMwMC1tb3Rvcm9sYSB8IGRlbHRhLW1vdG9yb2xhKQorCQliYXNpY19tYWNoaW5lPW02OGstbW90b3JvbGEKKwkJOzsKKwlkZWx0YTg4KQorCQliYXNpY19tYWNoaW5lPW04OGstbW90b3JvbGEKKwkJb3M9LXN5c3YzCisJCTs7CisJZGljb3MpCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworCQlvcz0tZGljb3MKKwkJOzsKKwlkamdwcCkKKwkJYmFzaWNfbWFjaGluZT1pNTg2LXBjCisJCW9zPS1tc2Rvc2RqZ3BwCisJCTs7CisJZHB4MjAgfCBkcHgyMC0qKQorCQliYXNpY19tYWNoaW5lPXJzNjAwMC1idWxsCisJCW9zPS1ib3N4CisJCTs7CisJZHB4MiogfCBkcHgyKi1idWxsKQorCQliYXNpY19tYWNoaW5lPW02OGstYnVsbAorCQlvcz0tc3lzdjMKKwkJOzsKKwllYm1vbjI5aykKKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAorCQlvcz0tZWJtb24KKwkJOzsKKwllbHhzaSkKKwkJYmFzaWNfbWFjaGluZT1lbHhzaS1lbHhzaQorCQlvcz0tYnNkCisJCTs7CisJZW5jb3JlIHwgdW1heCB8IG1tYXgpCisJCWJhc2ljX21hY2hpbmU9bnMzMmstZW5jb3JlCisJCTs7CisJZXMxODAwIHwgT1NFNjhrIHwgb3NlNjhrIHwgb3NlIHwgT1NFKQorCQliYXNpY19tYWNoaW5lPW02OGstZXJpY3Nzb24KKwkJb3M9LW9zZQorCQk7OworCWZ4MjgwMCkKKwkJYmFzaWNfbWFjaGluZT1pODYwLWFsbGlhbnQKKwkJOzsKKwlnZW5peCkKKwkJYmFzaWNfbWFjaGluZT1uczMyay1ucworCQk7OworCWdtaWNybykKKwkJYmFzaWNfbWFjaGluZT10cm9uLWdtaWNybworCQlvcz0tc3lzdgorCQk7OworCWdvMzIpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworCQlvcz0tZ28zMgorCQk7OworCWgzMDUwciogfCBoaXV4KikKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhpdGFjaGkKKwkJb3M9LWhpdXh3ZTIKKwkJOzsKKwloODMwMGhtcykKKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCisJCW9zPS1obXMKKwkJOzsKKwloODMwMHhyYXkpCisJCWJhc2ljX21hY2hpbmU9aDgzMDAtaGl0YWNoaQorCQlvcz0teHJheQorCQk7OworCWg4NTAwaG1zKQorCQliYXNpY19tYWNoaW5lPWg4NTAwLWhpdGFjaGkKKwkJb3M9LWhtcworCQk7OworCWhhcnJpcykKKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcworCQlvcz0tc3lzdjMKKwkJOzsKKwlocDMwMC0qKQorCQliYXNpY19tYWNoaW5lPW02OGstaHAKKwkJOzsKKwlocDMwMGJzZCkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisJCW9zPS1ic2QKKwkJOzsKKwlocDMwMGhwdXgpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAorCQlvcz0taHB1eAorCQk7OworCWhwM2s5WzAtOV1bMC05XSB8IGhwOVswLTldWzAtOV0pCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMC1ocAorCQk7OworCWhwOWsyWzAtOV1bMC05XSB8IGhwOWszMVswLTldKQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1ocAorCQk7OworCWhwOWszWzItOV1bMC05XSkKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCisJCTs7CisJaHA5azZbMC05XVswLTldIHwgaHA2WzAtOV1bMC05XSkKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisJCTs7CisJaHA5azdbMC03OV1bMC05XSB8IGhwN1swLTc5XVswLTldKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKwkJOzsKKwlocDlrNzhbMC05XSB8IGhwNzhbMC05XSkKKwkJIyBGSVhNRTogcmVhbGx5IGhwcGEyLjAtaHAKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCTs7CisJaHA5azhbNjddMSB8IGhwOFs2N10xIHwgaHA5azgwWzI0XSB8IGhwODBbMjRdIHwgaHA5azhbNzhdOSB8IGhwOFs3OF05IHwgaHA5azg5MyB8IGhwODkzKQorCQkjIEZJWE1FOiByZWFsbHkgaHBwYTIuMC1ocAorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKKwkJOzsKKwlocDlrOFswLTldWzEzNjc5XSB8IGhwOFswLTldWzEzNjc5XSkKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCTs7CisJaHA5azhbMC05XVswLTldIHwgaHA4WzAtOV1bMC05XSkKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCisJCTs7CisJaHBwYS1uZXh0KQorCQlvcz0tbmV4dHN0ZXAzCisJCTs7CisJaHBwYW9zZikKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCW9zPS1vc2YKKwkJOzsKKwlocHBybykKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCisJCW9zPS1wcm9lbGYKKwkJOzsKKwlpMzcwLWlibSogfCBpYm0qKQorCQliYXNpY19tYWNoaW5lPWkzNzAtaWJtCisJCTs7CisJaSo4NnYzMikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCisJCW9zPS1zeXN2MzIKKwkJOzsKKwlpKjg2djQqKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKwkJb3M9LXN5c3Y0CisJCTs7CisJaSo4NnYpCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAorCQlvcz0tc3lzdgorCQk7OworCWkqODZzb2wyKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LiovODYtcGMvJ2AKKwkJb3M9LXNvbGFyaXMyCisJCTs7CisJaTM4Nm1hY2gpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1tYWNoCisJCW9zPS1tYWNoCisJCTs7CisJaTM4Ni12c3RhIHwgdnN0YSkKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVua25vd24KKwkJb3M9LXZzdGEKKwkJOzsKKwlpcmlzIHwgaXJpczRkKQorCQliYXNpY19tYWNoaW5lPW1pcHMtc2dpCisJCWNhc2UgJG9zIGluCisJCSAgICAtaXJpeCopCisJCQk7OworCQkgICAgKikKKwkJCW9zPS1pcml4NAorCQkJOzsKKwkJZXNhYworCQk7OworCWlzaTY4IHwgaXNpKQorCQliYXNpY19tYWNoaW5lPW02OGstaXNpCisJCW9zPS1zeXN2CisJCTs7CisJbTY4a25vbW11KQorCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgorCQlvcz0tbGludXgKKwkJOzsKKwltNjhrbm9tbXUtKikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCW9zPS1saW51eAorCQk7OworCW04OGstb21yb24qKQorCQliYXNpY19tYWNoaW5lPW04OGstb21yb24KKwkJOzsKKwltYWdudW0gfCBtMzIzMCkKKwkJYmFzaWNfbWFjaGluZT1taXBzLW1pcHMKKwkJb3M9LXN5c3YKKwkJOzsKKwltZXJsaW4pCisJCWJhc2ljX21hY2hpbmU9bnMzMmstdXRlaworCQlvcz0tc3lzdgorCQk7OworCW1pY3JvYmxhemUpCisJCWJhc2ljX21hY2hpbmU9bWljcm9ibGF6ZS14aWxpbngKKwkJOzsKKwltaW5ndzMyKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LW1pbmd3MzIKKwkJOzsKKwltaW5ndzMyY2UpCisJCWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24KKwkJb3M9LW1pbmd3MzJjZQorCQk7OworCW1pbmlmcmFtZSkKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtY29udmVyZ2VudAorCQk7OworCSptaW50IHwgLW1pbnRbMC05XSogfCAqTWlOVCB8ICpNaU5UWzAtOV0qKQorCQliYXNpY19tYWNoaW5lPW02OGstYXRhcmkKKwkJb3M9LW1pbnQKKwkJOzsKKwltaXBzMyotKikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2AKKwkJOzsKKwltaXBzMyopCisJCWJhc2ljX21hY2hpbmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbWlwczMvbWlwczY0LydgLXVua25vd24KKwkJOzsKKwltb25pdG9yKQorCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhrCisJCW9zPS1jb2ZmCisJCTs7CisJbW9ycGhvcykKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLXVua25vd24KKwkJb3M9LW1vcnBob3MKKwkJOzsKKwltc2RvcykKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisJCW9zPS1tc2RvcworCQk7OworCW1zMS0qKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkIC1lICdzL21zMS0vbXQtLydgCisJCTs7CisJbXN5cykKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXBjCisJCW9zPS1tc3lzCisJCTs7CisJbXZzKQorCQliYXNpY19tYWNoaW5lPWkzNzAtaWJtCisJCW9zPS1tdnMKKwkJOzsKKwluYWNsKQorCQliYXNpY19tYWNoaW5lPWxlMzItdW5rbm93bgorCQlvcz0tbmFjbAorCQk7OworCW5jcjMwMDApCisJCWJhc2ljX21hY2hpbmU9aTQ4Ni1uY3IKKwkJb3M9LXN5c3Y0CisJCTs7CisJbmV0YnNkMzg2KQorCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgorCQlvcz0tbmV0YnNkCisJCTs7CisJbmV0d2luZGVyKQorCQliYXNpY19tYWNoaW5lPWFybXY0bC1yZWJlbAorCQlvcz0tbGludXgKKwkJOzsKKwluZXdzIHwgbmV3czcwMCB8IG5ld3M4MDAgfCBuZXdzOTAwKQorCQliYXNpY19tYWNoaW5lPW02OGstc29ueQorCQlvcz0tbmV3c29zCisJCTs7CisJbmV3czEwMDApCisJCWJhc2ljX21hY2hpbmU9bTY4MDMwLXNvbnkKKwkJb3M9LW5ld3NvcworCQk7OworCW5ld3MtMzYwMCB8IHJpc2MtbmV3cykKKwkJYmFzaWNfbWFjaGluZT1taXBzLXNvbnkKKwkJb3M9LW5ld3NvcworCQk7OworCW5lY3Y3MCkKKwkJYmFzaWNfbWFjaGluZT12NzAtbmVjCisJCW9zPS1zeXN2CisJCTs7CisJbmV4dCB8IG0qLW5leHQgKQorCQliYXNpY19tYWNoaW5lPW02OGstbmV4dAorCQljYXNlICRvcyBpbgorCQkgICAgLW5leHRzdGVwKiApCisJCQk7OworCQkgICAgLW5zMiopCisJCSAgICAgIG9zPS1uZXh0c3RlcDIKKwkJCTs7CisJCSAgICAqKQorCQkgICAgICBvcz0tbmV4dHN0ZXAzCisJCQk7OworCQllc2FjCisJCTs7CisJbmgzMDAwKQorCQliYXNpY19tYWNoaW5lPW02OGstaGFycmlzCisJCW9zPS1jeHV4CisJCTs7CisJbmhbNDVdMDAwKQorCQliYXNpY19tYWNoaW5lPW04OGstaGFycmlzCisJCW9zPS1jeHV4CisJCTs7CisJbmluZHk5NjApCisJCWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAorCQlvcz0tbmluZHkKKwkJOzsKKwltb245NjApCisJCWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAorCQlvcz0tbW9uOTYwCisJCTs7CisJbm9uc3RvcHV4KQorCQliYXNpY19tYWNoaW5lPW1pcHMtY29tcGFxCisJCW9zPS1ub25zdG9wdXgKKwkJOzsKKwlucDEpCisJCWJhc2ljX21hY2hpbmU9bnAxLWdvdWxkCisJCTs7CisJbmVvLXRhbmRlbSkKKwkJYmFzaWNfbWFjaGluZT1uZW8tdGFuZGVtCisJCTs7CisJbnNlLXRhbmRlbSkKKwkJYmFzaWNfbWFjaGluZT1uc2UtdGFuZGVtCisJCTs7CisJbnNyLXRhbmRlbSkKKwkJYmFzaWNfbWFjaGluZT1uc3ItdGFuZGVtCisJCTs7CisJb3A1MG4tKiB8IG9wNjBjLSopCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1va2kKKwkJb3M9LXByb2VsZgorCQk7OworCW9wZW5yaXNjIHwgb3BlbnJpc2MtKikKKwkJYmFzaWNfbWFjaGluZT1vcjMyLXVua25vd24KKwkJOzsKKwlvczQwMCkKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQorCQlvcz0tb3M0MDAKKwkJOzsKKwlPU0U2ODAwMCB8IG9zZTY4MDAwKQorCQliYXNpY19tYWNoaW5lPW02ODAwMC1lcmljc3NvbgorCQlvcz0tb3NlCisJCTs7CisJb3M2OGspCisJCWJhc2ljX21hY2hpbmU9bTY4ay1ub25lCisJCW9zPS1vczY4aworCQk7OworCXBhLWhpdGFjaGkpCisJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCisJCW9zPS1oaXV4d2UyCisJCTs7CisJcGFyYWdvbikKKwkJYmFzaWNfbWFjaGluZT1pODYwLWludGVsCisJCW9zPS1vc2YKKwkJOzsKKwlwYXJpc2MpCisJCWJhc2ljX21hY2hpbmU9aHBwYS11bmtub3duCisJCW9zPS1saW51eAorCQk7OworCXBhcmlzYy0qKQorCQliYXNpY19tYWNoaW5lPWhwcGEtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJb3M9LWxpbnV4CisJCTs7CisJcGJkKQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXR0aQorCQk7OworCXBiYikKKwkJYmFzaWNfbWFjaGluZT1tNjhrLXR0aQorCQk7OworCXBjNTMyIHwgcGM1MzItKikKKwkJYmFzaWNfbWFjaGluZT1uczMyay1wYzUzMgorCQk7OworCXBjOTgpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYworCQk7OworCXBjOTgtKikKKwkJYmFzaWNfbWFjaGluZT1pMzg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcGVudGl1bSB8IHA1IHwgazUgfCBrNiB8IG5leGdlbiB8IHZpYWMzKQorCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKKwkJOzsKKwlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRobG9uIHwgYXRobG9uXyopCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworCQk7OworCXBlbnRpdW1paSB8IHBlbnRpdW0yIHwgcGVudGl1bWlpaSB8IHBlbnRpdW0zKQorCQliYXNpY19tYWNoaW5lPWk2ODYtcGMKKwkJOzsKKwlwZW50aXVtNCkKKwkJYmFzaWNfbWFjaGluZT1pNzg2LXBjCisJCTs7CisJcGVudGl1bS0qIHwgcDUtKiB8IGs1LSogfCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFjMy0qKQorCQliYXNpY19tYWNoaW5lPWk1ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwZW50aXVtcHJvLSogfCBwNi0qIHwgNng4Ni0qIHwgYXRobG9uLSopCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBlbnRpdW1paS0qIHwgcGVudGl1bTItKiB8IHBlbnRpdW1paWktKiB8IHBlbnRpdW0zLSopCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBlbnRpdW00LSopCisJCWJhc2ljX21hY2hpbmU9aTc4Ni1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBuKQorCQliYXNpY19tYWNoaW5lPXBuLWdvdWxkCisJCTs7CisJcG93ZXIpCWJhc2ljX21hY2hpbmU9cG93ZXItaWJtCisJCTs7CisJcHBjIHwgcHBjYmUpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCisJCTs7CisJcHBjLSogfCBwcGNiZS0qKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGMtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKKwkJOzsKKwlwcGNsZSB8IHBvd2VycGNsaXR0bGUgfCBwcGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjbGUtdW5rbm93bgorCQk7OworCXBwY2xlLSogfCBwb3dlcnBjbGl0dGxlLSopCisJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcHBjNjQpCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LXVua25vd24KKwkJOzsKKwlwcGM2NC0qKSBiYXNpY19tYWNoaW5lPXBvd2VycGM2NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXBwYzY0bGUgfCBwb3dlcnBjNjRsaXR0bGUgfCBwcGM2NC1sZSB8IHBvd2VycGM2NC1saXR0bGUpCisJCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0bGUtdW5rbm93bgorCQk7OworCXBwYzY0bGUtKiB8IHBvd2VycGM2NGxpdHRsZS0qKQorCQliYXNpY19tYWNoaW5lPXBvd2VycGM2NGxlLWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCisJCTs7CisJcHMyKQorCQliYXNpY19tYWNoaW5lPWkzODYtaWJtCisJCTs7CisJcHczMikKKwkJYmFzaWNfbWFjaGluZT1pNTg2LXVua25vd24KKwkJb3M9LXB3MzIKKwkJOzsKKwlyZG9zKQorCQliYXNpY19tYWNoaW5lPWkzODYtcGMKKwkJb3M9LXJkb3MKKwkJOzsKKwlyb202OGspCisJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsKKwkJb3M9LWNvZmYKKwkJOzsKKwlybVs0Nl0wMCkKKwkJYmFzaWNfbWFjaGluZT1taXBzLXNpZW1lbnMKKwkJOzsKKwlydHBjIHwgcnRwYy0qKQorCQliYXNpY19tYWNoaW5lPXJvbXAtaWJtCisJCTs7CisJczM5MCB8IHMzOTAtKikKKwkJYmFzaWNfbWFjaGluZT1zMzkwLWlibQorCQk7OworCXMzOTB4IHwgczM5MHgtKikKKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KKwkJOzsKKwlzYTI5MjAwKQorCQliYXNpY19tYWNoaW5lPWEyOWstYW1kCisJCW9zPS11ZGkKKwkJOzsKKwlzYjEpCisJCWJhc2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxLXVua25vd24KKwkJOzsKKwlzYjFlbCkKKwkJYmFzaWNfbWFjaGluZT1taXBzaXNhNjRzYjFlbC11bmtub3duCisJCTs7CisJc2RlKQorCQliYXNpY19tYWNoaW5lPW1pcHNpc2EzMi1zZGUKKwkJb3M9LWVsZgorCQk7OworCXNlaSkKKwkJYmFzaWNfbWFjaGluZT1taXBzLXNlaQorCQlvcz0tc2VpdXgKKwkJOzsKKwlzZXF1ZW50KQorCQliYXNpY19tYWNoaW5lPWkzODYtc2VxdWVudAorCQk7OworCXNoKQorCQliYXNpY19tYWNoaW5lPXNoLWhpdGFjaGkKKwkJb3M9LWhtcworCQk7OworCXNoNWVsKQorCQliYXNpY19tYWNoaW5lPXNoNWxlLXVua25vd24KKwkJOzsKKwlzaDY0KQorCQliYXNpY19tYWNoaW5lPXNoNjQtdW5rbm93bgorCQk7OworCXNwYXJjbGl0ZS13cnMgfCBzaW1zby13cnMpCisJCWJhc2ljX21hY2hpbmU9c3BhcmNsaXRlLXdycworCQlvcz0tdnh3b3JrcworCQk7OworCXNwczcpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCisJCW9zPS1zeXN2MgorCQk7OworCXNwdXIpCisJCWJhc2ljX21hY2hpbmU9c3B1ci11bmtub3duCisJCTs7CisJc3QyMDAwKQorCQliYXNpY19tYWNoaW5lPW02OGstdGFuZGVtCisJCTs7CisJc3RyYXR1cykKKwkJYmFzaWNfbWFjaGluZT1pODYwLXN0cmF0dXMKKwkJb3M9LXN5c3Y0CisJCTs7CisJc3Ryb25nYXJtLSogfCB0aHVtYi0qKQorCQliYXNpY19tYWNoaW5lPWFybS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAorCQk7OworCXN1bjIpCisJCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgorCQk7OworCXN1bjJvczMpCisJCWJhc2ljX21hY2hpbmU9bTY4MDAwLXN1bgorCQlvcz0tc3Vub3MzCisJCTs7CisJc3VuMm9zNCkKKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtc3VuCisJCW9zPS1zdW5vczQKKwkJOzsKKwlzdW4zb3MzKQorCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisJCW9zPS1zdW5vczMKKwkJOzsKKwlzdW4zb3M0KQorCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisJCW9zPS1zdW5vczQKKwkJOzsKKwlzdW40b3MzKQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorCQlvcz0tc3Vub3MzCisJCTs7CisJc3VuNG9zNCkKKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKwkJb3M9LXN1bm9zNAorCQk7OworCXN1bjRzb2wyKQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorCQlvcz0tc29sYXJpczIKKwkJOzsKKwlzdW4zIHwgc3VuMy0qKQorCQliYXNpY19tYWNoaW5lPW02OGstc3VuCisJCTs7CisJc3VuNCkKKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KKwkJOzsKKwlzdW4zODYgfCBzdW4zODZpIHwgcm9hZHJ1bm5lcikKKwkJYmFzaWNfbWFjaGluZT1pMzg2LXN1bgorCQk7OworCXN2MSkKKwkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQorCQlvcz0tdW5pY29zCisJCTs7CisJc3ltbWV0cnkpCisJCWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50CisJCW9zPS1keW5peAorCQk7OworCXQzZSkKKwkJYmFzaWNfbWFjaGluZT1hbHBoYWV2NS1jcmF5CisJCW9zPS11bmljb3MKKwkJOzsKKwl0OTApCisJCWJhc2ljX21hY2hpbmU9dDkwLWNyYXkKKwkJb3M9LXVuaWNvcworCQk7OworCXRpbGUqKQorCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KKwkJb3M9LWxpbnV4LWdudQorCQk7OworCXR4MzkpCisJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzktdW5rbm93bgorCQk7OworCXR4MzllbCkKKwkJYmFzaWNfbWFjaGluZT1taXBzdHgzOWVsLXVua25vd24KKwkJOzsKKwl0b2FkMSkKKwkJYmFzaWNfbWFjaGluZT1wZHAxMC14a2wKKwkJb3M9LXRvcHMyMAorCQk7OworCXRvd2VyIHwgdG93ZXItMzIpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1uY3IKKwkJOzsKKwl0cGYpCisJCWJhc2ljX21hY2hpbmU9czM5MHgtaWJtCisJCW9zPS10cGYKKwkJOzsKKwl1ZGkyOWspCisJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKKwkJb3M9LXVkaQorCQk7OworCXVsdHJhMykKKwkJYmFzaWNfbWFjaGluZT1hMjlrLW55dQorCQlvcz0tc3ltMQorCQk7OworCXY4MTAgfCBuZWN2ODEwKQorCQliYXNpY19tYWNoaW5lPXY4MTAtbmVjCisJCW9zPS1ub25lCisJCTs7CisJdmF4dikKKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCisJCW9zPS1zeXN2CisJCTs7CisJdm1zKQorCQliYXNpY19tYWNoaW5lPXZheC1kZWMKKwkJb3M9LXZtcworCQk7OworCXZwcCp8dnh8dngtKikKKwkJYmFzaWNfbWFjaGluZT1mMzAxLWZ1aml0c3UKKwkJOzsKKwl2eHdvcmtzOTYwKQorCQliYXNpY19tYWNoaW5lPWk5NjAtd3JzCisJCW9zPS12eHdvcmtzCisJCTs7CisJdnh3b3JrczY4KQorCQliYXNpY19tYWNoaW5lPW02OGstd3JzCisJCW9zPS12eHdvcmtzCisJCTs7CisJdnh3b3JrczI5aykKKwkJYmFzaWNfbWFjaGluZT1hMjlrLXdycworCQlvcz0tdnh3b3JrcworCQk7OworCXc2NSopCisJCWJhc2ljX21hY2hpbmU9dzY1LXdkYworCQlvcz0tbm9uZQorCQk7OworCXc4OWstKikKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKKwkJb3M9LXByb2VsZgorCQk7OworCXhib3gpCisJCWJhc2ljX21hY2hpbmU9aTY4Ni1wYworCQlvcz0tbWluZ3czMgorCQk7OworCXhwcyB8IHhwczEwMCkKKwkJYmFzaWNfbWFjaGluZT14cHMxMDAtaG9uZXl3ZWxsCisJCTs7CisJeHNjYWxlLSogfCB4c2NhbGVlW2JsXS0qKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL154c2NhbGUvYXJtLydgCisJCTs7CisJeW1wKQorCQliYXNpY19tYWNoaW5lPXltcC1jcmF5CisJCW9zPS11bmljb3MKKwkJOzsKKwl6OGstKi1jb2ZmKQorCQliYXNpY19tYWNoaW5lPXo4ay11bmtub3duCisJCW9zPS1zaW0KKwkJOzsKKwl6ODAtKi1jb2ZmKQorCQliYXNpY19tYWNoaW5lPXo4MC11bmtub3duCisJCW9zPS1zaW0KKwkJOzsKKwlub25lKQorCQliYXNpY19tYWNoaW5lPW5vbmUtbm9uZQorCQlvcz0tbm9uZQorCQk7OworCisjIEhlcmUgd2UgaGFuZGxlIHRoZSBkZWZhdWx0IG1hbnVmYWN0dXJlciBvZiBjZXJ0YWluIENQVSB0eXBlcy4gIEl0IGlzIGluCisjIHNvbWUgY2FzZXMgdGhlIG9ubHkgbWFudWZhY3R1cmVyLCBpbiBvdGhlcnMsIGl0IGlzIHRoZSBtb3N0IHBvcHVsYXIuCisJdzg5aykKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJvbmQKKwkJOzsKKwlvcDUwbikKKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQorCQk7OworCW9wNjBjKQorCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCisJCTs7CisJcm9tcCkKKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQorCQk7OworCW1taXgpCisJCWJhc2ljX21hY2hpbmU9bW1peC1rbnV0aAorCQk7OworCXJzNjAwMCkKKwkJYmFzaWNfbWFjaGluZT1yczYwMDAtaWJtCisJCTs7CisJdmF4KQorCQliYXNpY19tYWNoaW5lPXZheC1kZWMKKwkJOzsKKwlwZHAxMCkKKwkJIyB0aGVyZSBhcmUgbWFueSBjbG9uZXMsIHNvIERFQyBpcyBub3QgYSBzYWZlIGJldAorCQliYXNpY19tYWNoaW5lPXBkcDEwLXVua25vd24KKwkJOzsKKwlwZHAxMSkKKwkJYmFzaWNfbWFjaGluZT1wZHAxMS1kZWMKKwkJOzsKKwl3ZTMyaykKKwkJYmFzaWNfbWFjaGluZT13ZTMyay1hdHQKKwkJOzsKKwlzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFsyNF1hZWIgfCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCisJCWJhc2ljX21hY2hpbmU9c2gtdW5rbm93bgorCQk7OworCXNwYXJjIHwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2KQorCQliYXNpY19tYWNoaW5lPXNwYXJjLXN1bgorCQk7OworCWN5ZHJhKQorCQliYXNpY19tYWNoaW5lPWN5ZHJhLWN5ZHJvbWUKKwkJOzsKKwlvcmlvbikKKwkJYmFzaWNfbWFjaGluZT1vcmlvbi1oaWdobGV2ZWwKKwkJOzsKKwlvcmlvbjEwNSkKKwkJYmFzaWNfbWFjaGluZT1jbGlwcGVyLWhpZ2hsZXZlbAorCQk7OworCW1hYyB8IG1wdyB8IG1hYy1tcHcpCisJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQorCQk7OworCXBtYWMgfCBwbWFjLW1wdykKKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWFwcGxlCisJCTs7CisJKi11bmtub3duKQorCQkjIE1ha2Ugc3VyZSB0byBtYXRjaCBhbiBhbHJlYWR5LWNhbm9uaWNhbGl6ZWQgbWFjaGluZSBuYW1lLgorCQk7OworCSopCisJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29nbml6ZWQgMT4mMgorCQlleGl0IDEKKwkJOzsKK2VzYWMKKworIyBIZXJlIHdlIGNhbm9uaWNhbGl6ZSBjZXJ0YWluIGFsaWFzZXMgZm9yIG1hbnVmYWN0dXJlcnMuCitjYXNlICRiYXNpY19tYWNoaW5lIGluCisJKi1kaWdpdGFsKikKKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9kaWdpdGFsLiovZGVjLydgCisJCTs7CisJKi1jb21tb2RvcmUqKQorCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL2NvbW1vZG9yZS4qL2NibS8nYAorCQk7OworCSopCisJCTs7Citlc2FjCisKKyMgRGVjb2RlIG1hbnVmYWN0dXJlci1zcGVjaWZpYyBhbGlhc2VzIGZvciBjZXJ0YWluIG9wZXJhdGluZyBzeXN0ZW1zLgorCitpZiBbIHgiJG9zIiAhPSB4IiIgXQordGhlbgorY2FzZSAkb3MgaW4KKwkjIEZpcnN0IG1hdGNoIHNvbWUgc3lzdGVtIHR5cGUgYWxpYXNlcworCSMgdGhhdCBtaWdodCBnZXQgY29uZnVzZWQgd2l0aCB2YWxpZCBzeXN0ZW0gdHlwZXMuCisJIyAtc29sYXJpcyogaXMgYSBiYXNpYyBzeXN0ZW0gdHlwZSwgd2l0aCB0aGlzIG9uZSBleGNlcHRpb24uCisJLWF1cm9yYXV4KQorCQlvcz0tYXVyb3JhdXgKKwkJOzsKKwktc29sYXJpczEgfCAtc29sYXJpczEuKikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHNvbGFyaXMxfHN1bm9zNHwnYAorCQk7OworCS1zb2xhcmlzKQorCQlvcz0tc29sYXJpczIKKwkJOzsKKwktc3ZyNCopCisJCW9zPS1zeXN2NAorCQk7OworCS11bml4d2FyZSopCisJCW9zPS1zeXN2NC4ydXcKKwkJOzsKKwktZ251L2xpbnV4KikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfGdudS9saW51eHxsaW51eC1nbnV8J2AKKwkJOzsKKwkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVzLgorCSMgVGhlIHBvcnRhYmxlIHN5c3RlbXMgY29tZXMgZmlyc3QuCisJIyBFYWNoIGFsdGVybmF0aXZlIE1VU1QgRU5EIElOIEEgKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KKwkjIC1zeXN2KiBpcyBub3QgaGVyZSBiZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCisJLWdudSogfCAtYnNkKiB8IC1tYWNoKiB8IC1taW5peCogfCAtZ2VuaXgqIHwgLXVsdHJpeCogfCAtaXJpeCogXAorCSAgICAgIHwgLSp2bXMqIHwgLXNjbyogfCAtZXNpeCogfCAtaXNjKiB8IC1haXgqIHwgLWNuayogfCAtc3Vub3MgfCAtc3Vub3NbMzRdKlwKKwkgICAgICB8IC1ocHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1bmEqIHwgLWRndXgqIHwgLWF1cm9yYXV4KiB8IC1zb2xhcmlzKiBcCisJICAgICAgfCAtc3ltKiB8IC1rb3BlbnNvbGFyaXMqIFwKKwkgICAgICB8IC1hbWlnYW9zKiB8IC1hbWlnYWRvcyogfCAtbXNkb3MqIHwgLW5ld3NvcyogfCAtdW5pY29zKiB8IC1hb2YqIFwKKwkgICAgICB8IC1hb3MqIHwgLWFyb3MqIFwKKwkgICAgICB8IC1uaW5keSogfCAtdnhzaW0qIHwgLXZ4d29ya3MqIHwgLWVibW9uKiB8IC1obXMqIHwgLW12cyogXAorCSAgICAgIHwgLWNsaXgqIHwgLXJpc2NvcyogfCAtdW5pcGx1cyogfCAtaXJpcyogfCAtcnR1KiB8IC14ZW5peCogXAorCSAgICAgIHwgLWhpdXgqIHwgLTM4NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIFwKKwkgICAgICB8IC1vcGVuYnNkKiB8IC1zb2xpZGJzZCogXAorCSAgICAgIHwgLWVra29ic2QqIHwgLWtmcmVlYnNkKiB8IC1mcmVlYnNkKiB8IC1yaXNjaXgqIHwgLWx5bnhvcyogXAorCSAgICAgIHwgLWJvc3gqIHwgLW5leHRzdGVwKiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9hYmkqIFwKKwkgICAgICB8IC1wdHgqIHwgLWNvZmYqIHwgLWVjb2ZmKiB8IC13aW5udCogfCAtZG9tYWluKiB8IC12c3RhKiBcCisJICAgICAgfCAtdWRpKiB8IC1lYWJpKiB8IC1saXRlcyogfCAtaWVlZSogfCAtZ28zMiogfCAtYXV4KiBcCisJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3JkYiogfCAtY2VnY2MqIFwKKwkgICAgICB8IC1jeWd3aW4qIHwgLW1zeXMqIHwgLXBlKiB8IC1wc29zKiB8IC1tb3NzKiB8IC1wcm9lbGYqIHwgLXJ0ZW1zKiBcCisJICAgICAgfCAtbWluZ3czMiogfCAtbGludXgtZ251KiB8IC1saW51eC1hbmRyb2lkKiBcCisJICAgICAgfCAtbGludXgtbmV3bGliKiB8IC1saW51eC11Y2xpYmMqIFwKKwkgICAgICB8IC11eHB2KiB8IC1iZW9zKiB8IC1tcGVpeCogfCAtdWRrKiBcCisJICAgICAgfCAtaW50ZXJpeCogfCAtdXdpbiogfCAtbWtzKiB8IC1yaGFwc29keSogfCAtZGFyd2luKiB8IC1vcGVuZWQqIFwKKwkgICAgICB8IC1vcGVuc3RlcCogfCAtb3NraXQqIHwgLWNvbml4KiB8IC1wdzMyKiB8IC1ub25zdG9wdXgqIFwKKwkgICAgICB8IC1zdG9ybS1jaGFvcyogfCAtdG9wczEwKiB8IC10ZW5leCogfCAtdG9wczIwKiB8IC1pdHMqIFwKKwkgICAgICB8IC1vczIqIHwgLXZvcyogfCAtcGFsbW9zKiB8IC11Y2xpbnV4KiB8IC1udWNsZXVzKiBcCisJICAgICAgfCAtbW9ycGhvcyogfCAtc3VwZXJ1eCogfCAtcnRtayogfCAtcnRtay1ub3ZhKiB8IC13aW5kaXNzKiBcCisJICAgICAgfCAtcG93ZXJtYXgqIHwgLWRuaXgqIHwgLW54NiB8IC1ueDcgfCAtc2VpKiB8IC1kcmFnb25mbHkqIFwKKwkgICAgICB8IC1za3lvcyogfCAtaGFpa3UqIHwgLXJkb3MqIHwgLXRvcHBlcnMqIHwgLWRyb3BzKiB8IC1lcyopCisJIyBSZW1lbWJlciwgZWFjaCBhbHRlcm5hdGl2ZSBNVVNUIEVORCBJTiAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgorCQk7OworCS1xbngqKQorCQljYXNlICRiYXNpY19tYWNoaW5lIGluCisJCSAgICB4ODYtKiB8IGkqODYtKikKKwkJCTs7CisJCSAgICAqKQorCQkJb3M9LW50byRvcworCQkJOzsKKwkJZXNhYworCQk7OworCS1udG8tcW54KikKKwkJOzsKKwktbnRvKikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfG50b3xudG8tcW54fCdgCisJCTs7CisJLXNpbSB8IC1lczE4MDAqIHwgLWhtcyogfCAteHJheSB8IC1vczY4ayogfCAtbm9uZSogfCAtdjg4ciogXAorCSAgICAgIHwgLXdpbmRvd3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogfCAtaGFpa3UqIFwKKwkgICAgICB8IC1tYWNvcyogfCAtbXB3KiB8IC1tYWdpYyogfCAtbW1peHdhcmUqIHwgLW1vbjk2MCogfCAtbG5ld3MqKQorCQk7OworCS1tYWMqKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bWFjfG1hY29zfCdgCisJCTs7CisJLWxpbnV4LWRpZXRsaWJjKQorCQlvcz0tbGludXgtZGlldGxpYmMKKwkJOzsKKwktbGludXgqKQorCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3N8bGludXh8bGludXgtZ251fCdgCisJCTs7CisJLXN1bm9zNSopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczV8c29sYXJpczJ8J2AKKwkJOzsKKwktc3Vub3M2KikKKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1lICdzfHN1bm9zNnxzb2xhcmlzM3wnYAorCQk7OworCS1vcGVuZWQqKQorCQlvcz0tb3BlbmVkaXRpb24KKwkJOzsKKwktb3M0MDAqKQorCQlvcz0tb3M0MDAKKwkJOzsKKwktd2luY2UqKQorCQlvcz0td2luY2UKKwkJOzsKKwktb3Nmcm9zZSopCisJCW9zPS1vc2Zyb3NlCisJCTs7CisJLW9zZiopCisJCW9zPS1vc2YKKwkJOzsKKwktdXRlayopCisJCW9zPS1ic2QKKwkJOzsKKwktZHluaXgqKQorCQlvcz0tYnNkCisJCTs7CisJLWFjaXMqKQorCQlvcz0tYW9zCisJCTs7CisJLWF0aGVvcyopCisJCW9zPS1hdGhlb3MKKwkJOzsKKwktc3lsbGFibGUqKQorCQlvcz0tc3lsbGFibGUKKwkJOzsKKwktMzg2YnNkKQorCQlvcz0tYnNkCisJCTs7CisJLWN0aXgqIHwgLXV0cyopCisJCW9zPS1zeXN2CisJCTs7CisJLW5vdmEqKQorCQlvcz0tcnRtay1ub3ZhCisJCTs7CisJLW5zMiApCisJCW9zPS1uZXh0c3RlcDIKKwkJOzsKKwktbnNrKikKKwkJb3M9LW5zaworCQk7OworCSMgUHJlc2VydmUgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHNpbml4NS4KKwktc2luaXg1LiopCisJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdgCisJCTs7CisJLXNpbml4KikKKwkJb3M9LXN5c3Y0CisJCTs7CisJLXRwZiopCisJCW9zPS10cGYKKwkJOzsKKwktdHJpdG9uKikKKwkJb3M9LXN5c3YzCisJCTs7CisJLW9zcyopCisJCW9zPS1zeXN2MworCQk7OworCS1zdnI0KQorCQlvcz0tc3lzdjQKKwkJOzsKKwktc3ZyMykKKwkJb3M9LXN5c3YzCisJCTs7CisJLXN5c3ZyNCkKKwkJb3M9LXN5c3Y0CisJCTs7CisJIyBUaGlzIG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgorCS1zeXN2KikKKwkJOzsKKwktb3NlKikKKwkJb3M9LW9zZQorCQk7OworCS1lczE4MDAqKQorCQlvcz0tb3NlCisJCTs7CisJLXhlbml4KQorCQlvcz0teGVuaXgKKwkJOzsKKwktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8IC1NaU5UWzAtOV0qKQorCQlvcz0tbWludAorCQk7OworCS1hcm9zKikKKwkJb3M9LWFyb3MKKwkJOzsKKwkta2FvcyopCisJCW9zPS1rYW9zCisJCTs7CisJLXp2bW9lKQorCQlvcz0tenZtb2UKKwkJOzsKKwktZGljb3MqKQorCQlvcz0tZGljb3MKKwkJOzsKKwktbmFjbCopCisJCTs7CisJLW5vbmUpCisJCTs7CisJKikKKwkJIyBHZXQgcmlkIG9mIHRoZSBgLScgYXQgdGhlIGJlZ2lubmluZyBvZiAkb3MuCisJCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCisJCWVjaG8gSW52YWxpZCBjb25maWd1cmF0aW9uIFxgJDFcJzogc3lzdGVtIFxgJG9zXCcgbm90IHJlY29nbml6ZWQgMT4mMgorCQlleGl0IDEKKwkJOzsKK2VzYWMKK2Vsc2UKKworIyBIZXJlIHdlIGhhbmRsZSB0aGUgZGVmYXVsdCBvcGVyYXRpbmcgc3lzdGVtcyB0aGF0IGNvbWUgd2l0aCB2YXJpb3VzIG1hY2hpbmVzLgorIyBUaGUgdmFsdWUgc2hvdWxkIGJlIHdoYXQgdGhlIHZlbmRvciBjdXJyZW50bHkgc2hpcHMgb3V0IHRoZSBkb29yIHdpdGggdGhlaXIKKyMgbWFjaGluZSBvciBwdXQgYW5vdGhlciB3YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGluZS4KKworIyBOb3RlIHRoYXQgaWYgeW91J3JlIGdvaW5nIHRvIHRyeSB0byBtYXRjaCAiLU1BTlVGQUNUVVJFUiIgaGVyZSAoc2F5LAorIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ugc3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAorIyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcgc3lzdGVtLiAgT3RoZXJ3aXNlLCBjb2RlIGFib3ZlCisjIHdpbGwgc2lnbmFsIGFuIGVycm9yIHNheWluZyB0aGF0IE1BTlVGQUNUVVJFUiBpc24ndCBhbiBvcGVyYXRpbmcKKyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCisKK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KKwlzY29yZS0qKQorCQlvcz0tZWxmCisJCTs7CisJc3B1LSopCisJCW9zPS1lbGYKKwkJOzsKKwkqLWFjb3JuKQorCQlvcz0tcmlzY2l4MS4yCisJCTs7CisJYXJtKi1yZWJlbCkKKwkJb3M9LWxpbnV4CisJCTs7CisJYXJtKi1zZW1pKQorCQlvcz0tYW91dAorCQk7OworCWM0eC0qIHwgdGljNHgtKikKKwkJb3M9LWNvZmYKKwkJOzsKKwl0aWM1NHgtKikKKwkJb3M9LWNvZmYKKwkJOzsKKwl0aWM1NXgtKikKKwkJb3M9LWNvZmYKKwkJOzsKKwl0aWM2eC0qKQorCQlvcz0tY29mZgorCQk7OworCSMgVGhpcyBtdXN0IGNvbWUgYmVmb3JlIHRoZSAqLWRlYyBlbnRyeS4KKwlwZHAxMC0qKQorCQlvcz0tdG9wczIwCisJCTs7CisJcGRwMTEtKikKKwkJb3M9LW5vbmUKKwkJOzsKKwkqLWRlYyB8IHZheC0qKQorCQlvcz0tdWx0cml4NC4yCisJCTs7CisJbTY4Ki1hcG9sbG8pCisJCW9zPS1kb21haW4KKwkJOzsKKwlpMzg2LXN1bikKKwkJb3M9LXN1bm9zNC4wLjIKKwkJOzsKKwltNjgwMDAtc3VuKQorCQlvcz0tc3Vub3MzCisJCTs7CisJbTY4Ki1jaXNjbykKKwkJb3M9LWFvdXQKKwkJOzsKKwltZXAtKikKKwkJb3M9LWVsZgorCQk7OworCW1pcHMqLWNpc2NvKQorCQlvcz0tZWxmCisJCTs7CisJbWlwcyotKikKKwkJb3M9LWVsZgorCQk7OworCW9yMzItKikKKwkJb3M9LWNvZmYKKwkJOzsKKwkqLXR0aSkJIyBtdXN0IGJlIGJlZm9yZSBzcGFyYyBlbnRyeSBvciB3ZSBnZXQgdGhlIHdyb25nIG9zLgorCQlvcz0tc3lzdjMKKwkJOzsKKwlzcGFyYy0qIHwgKi1zdW4pCisJCW9zPS1zdW5vczQuMS4xCisJCTs7CisJKi1iZSkKKwkJb3M9LWJlb3MKKwkJOzsKKwkqLWhhaWt1KQorCQlvcz0taGFpa3UKKwkJOzsKKwkqLWlibSkKKwkJb3M9LWFpeAorCQk7OworCSota251dGgpCisJCW9zPS1tbWl4d2FyZQorCQk7OworCSotd2VjKQorCQlvcz0tcHJvZWxmCisJCTs7CisJKi13aW5ib25kKQorCQlvcz0tcHJvZWxmCisJCTs7CisJKi1va2kpCisJCW9zPS1wcm9lbGYKKwkJOzsKKwkqLWhwKQorCQlvcz0taHB1eAorCQk7OworCSotaGl0YWNoaSkKKwkJb3M9LWhpdXgKKwkJOzsKKwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwgKi1hbHRvcyB8ICotbW90b3JvbGEgfCAqLWNvbnZlcmdlbnQpCisJCW9zPS1zeXN2CisJCTs7CisJKi1jYm0pCisJCW9zPS1hbWlnYW9zCisJCTs7CisJKi1kZykKKwkJb3M9LWRndXgKKwkJOzsKKwkqLWRvbHBoaW4pCisJCW9zPS1zeXN2MworCQk7OworCW02OGstY2N1cikKKwkJb3M9LXJ0dQorCQk7OworCW04OGstb21yb24qKQorCQlvcz0tbHVuYQorCQk7OworCSotbmV4dCApCisJCW9zPS1uZXh0c3RlcAorCQk7OworCSotc2VxdWVudCkKKwkJb3M9LXB0eAorCQk7OworCSotY3JkcykKKwkJb3M9LXVub3MKKwkJOzsKKwkqLW5zKQorCQlvcz0tZ2VuaXgKKwkJOzsKKwlpMzcwLSopCisJCW9zPS1tdnMKKwkJOzsKKwkqLW5leHQpCisJCW9zPS1uZXh0c3RlcDMKKwkJOzsKKwkqLWdvdWxkKQorCQlvcz0tc3lzdgorCQk7OworCSotaGlnaGxldmVsKQorCQlvcz0tYnNkCisJCTs7CisJKi1lbmNvcmUpCisJCW9zPS1ic2QKKwkJOzsKKwkqLXNnaSkKKwkJb3M9LWlyaXgKKwkJOzsKKwkqLXNpZW1lbnMpCisJCW9zPS1zeXN2NAorCQk7OworCSotbWFzc2NvbXApCisJCW9zPS1ydHUKKwkJOzsKKwlmMzBbMDFdLWZ1aml0c3UgfCBmNzAwLWZ1aml0c3UpCisJCW9zPS11eHB2CisJCTs7CisJKi1yb202OGspCisJCW9zPS1jb2ZmCisJCTs7CisJKi0qYnVnKQorCQlvcz0tY29mZgorCQk7OworCSotYXBwbGUpCisJCW9zPS1tYWNvcworCQk7OworCSotYXRhcmkqKQorCQlvcz0tbWludAorCQk7OworCSopCisJCW9zPS1ub25lCisJCTs7Citlc2FjCitmaQorCisjIEhlcmUgd2UgaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBidXQgbm90IHRoZQorIyBtYW51ZmFjdHVyZXIuICBXZSBwaWNrIHRoZSBsb2dpY2FsIG1hbnVmYWN0dXJlci4KK3ZlbmRvcj11bmtub3duCitjYXNlICRiYXNpY19tYWNoaW5lIGluCisJKi11bmtub3duKQorCQljYXNlICRvcyBpbgorCQkJLXJpc2NpeCopCisJCQkJdmVuZG9yPWFjb3JuCisJCQkJOzsKKwkJCS1zdW5vcyopCisJCQkJdmVuZG9yPXN1bgorCQkJCTs7CisJCQktY25rKnwtYWl4KikKKwkJCQl2ZW5kb3I9aWJtCisJCQkJOzsKKwkJCS1iZW9zKikKKwkJCQl2ZW5kb3I9YmUKKwkJCQk7OworCQkJLWhwdXgqKQorCQkJCXZlbmRvcj1ocAorCQkJCTs7CisJCQktbXBlaXgqKQorCQkJCXZlbmRvcj1ocAorCQkJCTs7CisJCQktaGl1eCopCisJCQkJdmVuZG9yPWhpdGFjaGkKKwkJCQk7OworCQkJLXVub3MqKQorCQkJCXZlbmRvcj1jcmRzCisJCQkJOzsKKwkJCS1kZ3V4KikKKwkJCQl2ZW5kb3I9ZGcKKwkJCQk7OworCQkJLWx1bmEqKQorCQkJCXZlbmRvcj1vbXJvbgorCQkJCTs7CisJCQktZ2VuaXgqKQorCQkJCXZlbmRvcj1ucworCQkJCTs7CisJCQktbXZzKiB8IC1vcGVuZWQqKQorCQkJCXZlbmRvcj1pYm0KKwkJCQk7OworCQkJLW9zNDAwKikKKwkJCQl2ZW5kb3I9aWJtCisJCQkJOzsKKwkJCS1wdHgqKQorCQkJCXZlbmRvcj1zZXF1ZW50CisJCQkJOzsKKwkJCS10cGYqKQorCQkJCXZlbmRvcj1pYm0KKwkJCQk7OworCQkJLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKKwkJCQl2ZW5kb3I9d3JzCisJCQkJOzsKKwkJCS1hdXgqKQorCQkJCXZlbmRvcj1hcHBsZQorCQkJCTs7CisJCQktaG1zKikKKwkJCQl2ZW5kb3I9aGl0YWNoaQorCQkJCTs7CisJCQktbXB3KiB8IC1tYWNvcyopCisJCQkJdmVuZG9yPWFwcGxlCisJCQkJOzsKKwkJCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRbMC05XSopCisJCQkJdmVuZG9yPWF0YXJpCisJCQkJOzsKKwkJCS12b3MqKQorCQkJCXZlbmRvcj1zdHJhdHVzCisJCQkJOzsKKwkJZXNhYworCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICJzL3Vua25vd24vJHZlbmRvci8iYAorCQk7OworZXNhYworCitlY2hvICRiYXNpY19tYWNoaW5lJG9zCitleGl0CisKKyMgTG9jYWwgdmFyaWFibGVzOgorIyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCisjIHRpbWUtc3RhbXAtc3RhcnQ6ICJ0aW1lc3RhbXA9JyIKKyMgdGltZS1zdGFtcC1mb3JtYXQ6ICIlOnktJTAybS0lMDJkIgorIyB0aW1lLXN0YW1wLWVuZDogIiciCisjIEVuZDoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCA5ZTdjZmMwLi4zMWZjM2Q2IDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJlCkBAIC0xLDcgKzEsNiBAQAogIyEgL2Jpbi9zaAotIyBGcm9tIGNvbmZpZ3VyZS5hYyBSZXZpc2lvbi4KICMgR3Vlc3MgdmFsdWVzIGZvciBzeXN0ZW0tZGVwZW5kZW50IHZhcmlhYmxlcyBhbmQgY3JlYXRlIE1ha2VmaWxlcy4KLSMgR2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4IGZvciBweXRob24gMy4yLgorIyBHZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjggZm9yIHB5dGhvbiAzLjMuCiAjCiAjIFJlcG9ydCBidWdzIHRvIDxodHRwOi8vYnVncy5weXRob24ub3JnLz4uCiAjCkBAIC01NjEsOCArNTYwLDggQEAKICMgSWRlbnRpdHkgb2YgdGhpcyBwYWNrYWdlLgogUEFDS0FHRV9OQU1FPSdweXRob24nCiBQQUNLQUdFX1RBUk5BTUU9J3B5dGhvbicKLVBBQ0tBR0VfVkVSU0lPTj0nMy4yJwotUEFDS0FHRV9TVFJJTkc9J3B5dGhvbiAzLjInCitQQUNLQUdFX1ZFUlNJT049JzMuMycKK1BBQ0tBR0VfU1RSSU5HPSdweXRob24gMy4zJwogUEFDS0FHRV9CVUdSRVBPUlQ9J2h0dHA6Ly9idWdzLnB5dGhvbi5vcmcvJwogUEFDS0FHRV9VUkw9JycKIApAQCAtNjQxLDE3ICs2NDAsMTYgQEAKIE9QVAogQUJJRkxBR1MKIExOCitNS0RJUl9QCiBJTlNUQUxMX0RBVEEKIElOU1RBTExfU0NSSVBUCiBJTlNUQUxMX1BST0dSQU0KIEhBU19QWVRIT04KIERJU0FCTEVfQVNETEdFTgotSEFTX0hHCi1IR0JSQU5DSAotSEdUQUcKLUhHVkVSU0lPTgotU1ZOVkVSU0lPTgorYWNfY3RfUkVBREVMRgorUkVBREVMRgogQVJGTEFHUworYWNfY3RfQVIKIEFSCiBSQU5MSUIKIFVTRV9JTkxJTkUKQEAgLTY3MSw2ICs2NjksNyBAQAogR1JFUAogQ1BQCiBOT19BU19ORUVERUQKK2FjX2N0X0NYWAogTUFJTkNDCiBDWFgKIE9CSkVYVApAQCAtNjgzLDYgKzY4Miw3IEBACiBFWFBPUlRfTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUCiBDT05GSUdVUkVfTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUCiBTR0lfQUJJCitfUFlUSE9OX0hPU1RfUExBVEZPUk0KIE1BQ0hERVAKIEZSQU1FV09SS0lOU1RBTExBUFBTUFJFRklYCiBGUkFNRVdPUktVTklYVE9PTFNQUkVGSVgKQEAgLTcwMSw2ICs3MDEsMTkgQEAKIENPTkZJR19BUkdTCiBTT1ZFUlNJT04KIFZFUlNJT04KK1BZVEhPTl9GT1JfQlVJTEQKK2hvc3Rfb3MKK2hvc3RfdmVuZG9yCitob3N0X2NwdQoraG9zdAorYnVpbGRfb3MKK2J1aWxkX3ZlbmRvcgorYnVpbGRfY3B1CitidWlsZAorSEFTX0hHCitIR0JSQU5DSAorSEdUQUcKK0hHVkVSU0lPTgogdGFyZ2V0X2FsaWFzCiBob3N0X2FsaWFzCiBidWlsZF9hbGlhcwpAQCAtNzU1LDEwICs3NjgsMTAgQEAKIHdpdGhfbGlicwogd2l0aF9zeXN0ZW1fZXhwYXQKIHdpdGhfc3lzdGVtX2ZmaQord2l0aF9zeXN0ZW1fbGlibXBkZWMKIGVuYWJsZV9sb2FkYWJsZV9zcWxpdGVfZXh0ZW5zaW9ucwogd2l0aF9kYm1saWJvcmRlcgogd2l0aF9zaWduYWxfbW9kdWxlCi13aXRoX2RlY190aHJlYWRzCiB3aXRoX3RocmVhZHMKIHdpdGhfdGhyZWFkCiBlbmFibGVfaXB2NgpAQCAtNzcwLDcgKzc4Myw2IEBACiB3aXRoX2xpYm0KIHdpdGhfbGliYwogZW5hYmxlX2JpZ19kaWdpdHMKLXdpdGhfd2lkZV91bmljb2RlCiB3aXRoX2NvbXB1dGVkX2dvdG9zCiAnCiAgICAgICBhY19wcmVjaW91c192YXJzPSdidWlsZF9hbGlhcwpAQCAtMTMyNCw3ICsxMzM2LDcgQEAKICAgIyBPbWl0IHNvbWUgaW50ZXJuYWwgb3Igb2Jzb2xldGUgb3B0aW9ucyB0byBtYWtlIHRoZSBsaXN0IGxlc3MgaW1wb3NpbmcuCiAgICMgVGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBzaC4KICAgY2F0IDw8X0FDRU9GCi1cYGNvbmZpZ3VyZScgY29uZmlndXJlcyBweXRob24gMy4yIHRvIGFkYXB0IHRvIG1hbnkga2luZHMgb2Ygc3lzdGVtcy4KK1xgY29uZmlndXJlJyBjb25maWd1cmVzIHB5dGhvbiAzLjMgdG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgogCiBVc2FnZTogJDAgW09QVElPTl0uLi4gW1ZBUj1WQUxVRV0uLi4KIApAQCAtMTM4MCwxMiArMTM5MiwxNiBAQAogX0FDRU9GCiAKICAgY2F0IDw8XF9BQ0VPRgorCitTeXN0ZW0gdHlwZXM6CisgIC0tYnVpbGQ9QlVJTEQgICAgIGNvbmZpZ3VyZSBmb3IgYnVpbGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCisgIC0taG9zdD1IT1NUICAgICAgIGNyb3NzLWNvbXBpbGUgdG8gYnVpbGQgcHJvZ3JhbXMgdG8gcnVuIG9uIEhPU1QgW0JVSUxEXQogX0FDRU9GCiBmaQogCiBpZiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIjsgdGhlbgogICBjYXNlICRhY19pbml0X2hlbHAgaW4KLSAgICAgc2hvcnQgfCByZWN1cnNpdmUgKSBlY2hvICJDb25maWd1cmF0aW9uIG9mIHB5dGhvbiAzLjI6Ijs7CisgICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJhdGlvbiBvZiBweXRob24gMy4zOiI7OwogICAgZXNhYwogICBjYXQgPDxcX0FDRU9GCiAKQEAgLTEzOTQsNyArMTQxMCw3IEBACiAgIC0tZGlzYWJsZS1GRUFUVVJFICAgICAgIGRvIG5vdCBpbmNsdWRlIEZFQVRVUkUgKHNhbWUgYXMgLS1lbmFibGUtRkVBVFVSRT1ubykKICAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQogICAtLWVuYWJsZS11bml2ZXJzYWxzZGtbPVNES0RJUl0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgYWdhaW5zdCBNYWMgT1MgWCAxMC40dSBTREsgKHBwYy9pMzg2KQorICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCBmYXQgYmluYXJ5IGFnYWluc3QgTWFjIE9TIFggU0RLCiAgIC0tZW5hYmxlLWZyYW1ld29ya1s9SU5TVEFMTERJUl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgKE1hY09TWHxEYXJ3aW4pIGZyYW1ld29yawogICAtLWVuYWJsZS1zaGFyZWQgICAgICAgICBkaXNhYmxlL2VuYWJsZSBidWlsZGluZyBzaGFyZWQgcHl0aG9uIGxpYnJhcnkKQEAgLTE0MjUsMTIgKzE0NDEsMTMgQEAKICAgLS13aXRoLXN5c3RlbS1leHBhdCAgICAgYnVpbGQgcHlleHBhdCBtb2R1bGUgdXNpbmcgYW4gaW5zdGFsbGVkIGV4cGF0CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcnkKICAgLS13aXRoLXN5c3RlbS1mZmkgICAgICAgYnVpbGQgX2N0eXBlcyBtb2R1bGUgdXNpbmcgYW4gaW5zdGFsbGVkIGZmaSBsaWJyYXJ5CisgIC0td2l0aC1zeXN0ZW0tbGlibXBkZWMgIGJ1aWxkIF9kZWNpbWFsIG1vZHVsZSB1c2luZyBhbiBpbnN0YWxsZWQgbGlibXBkZWMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicmFyeQogICAtLXdpdGgtZGJtbGlib3JkZXI9ZGIxOmRiMjouLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgdG8gY2hlY2sgZGIgYmFja2VuZHMgZm9yIGRibS4gVmFsaWQgdmFsdWUgaXMgYQogICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvbiBzZXBhcmF0ZWQgc3RyaW5nIHdpdGggdGhlIGJhY2tlbmQgbmFtZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgYG5kYm0nLCBgZ2RibScgYW5kIGBiZGInLgogICAtLXdpdGgtc2lnbmFsLW1vZHVsZSAgICBkaXNhYmxlL2VuYWJsZSBzaWduYWwgbW9kdWxlCi0gIC0td2l0aC1kZWMtdGhyZWFkcyAgICAgIHVzZSBERUMgQWxwaGEvT1NGMSB0aHJlYWQtc2FmZSBsaWJyYXJpZXMKICAgLS13aXRoKG91dCktdGhyZWFkc1s9RElSRUNUT1JZXQogICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlL2VuYWJsZSB0aHJlYWQgc3VwcG9ydAogICAtLXdpdGgob3V0KS10aHJlYWRbPURJUkVDVE9SWV0KQEAgLTE0NDIsNyArMTQ1OSw2IEBACiAgIC0td2l0aC1mcGVjdGwgICAgICAgICAgIGVuYWJsZSBTSUdGUEUgY2F0Y2hpbmcKICAgLS13aXRoLWxpYm09U1RSSU5HICAgICAgbWF0aCBsaWJyYXJ5CiAgIC0td2l0aC1saWJjPVNUUklORyAgICAgIEMgbGlicmFyeQotICAtLXdpdGgtd2lkZS11bmljb2RlICAgICBVc2UgNC1ieXRlIFVuaWNvZGUgY2hhcmFjdGVycyAoZGVmYXVsdCBpcyAyIGJ5dGVzKQogICAtLXdpdGgob3V0KS1jb21wdXRlZC1nb3RvcwogICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgY29tcHV0ZWQgZ290b3MgaW4gZXZhbHVhdGlvbiBsb29wIChlbmFibGVkIGJ5CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgb24gc3VwcG9ydGVkIGNvbXBpbGVycykKQEAgLTE1MjMsNyArMTUzOSw3IEBACiB0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0ICRhY19zdGF0dXMKIGlmICRhY19pbml0X3ZlcnNpb247IHRoZW4KICAgY2F0IDw8XF9BQ0VPRgotcHl0aG9uIGNvbmZpZ3VyZSAzLjIKK3B5dGhvbiBjb25maWd1cmUgMy4zCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjgKIAogQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgpAQCAtMjM1NCw3ICsyMzcwLDcgQEAKIFRoaXMgZmlsZSBjb250YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCiBydW5uaW5nIGNvbmZpZ3VyZSwgdG8gYWlkIGRlYnVnZ2luZyBpZiBjb25maWd1cmUgbWFrZXMgYSBtaXN0YWtlLgogCi1JdCB3YXMgY3JlYXRlZCBieSBweXRob24gJGFzX21lIDMuMiwgd2hpY2ggd2FzCitJdCB3YXMgY3JlYXRlZCBieSBweXRob24gJGFzX21lIDMuMywgd2hpY2ggd2FzCiBnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjguICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3YXMKIAogICAkICQwICRACkBAIC0yNzAzLDkgKzI3MTksMTkyIEBACiAKIAogCisKKworCisKK2lmIHRlc3QgLWUgJHNyY2Rpci8uaGcvZGlyc3RhdGUKK3RoZW4KKyMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiaGciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15IGhnOyBhY193b3JkPSQyCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfcHJvZ19IQVNfSEcrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBpZiB0ZXN0IC1uICIkSEFTX0hHIjsgdGhlbgorICBhY19jdl9wcm9nX0hBU19IRz0iJEhBU19IRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCitlbHNlCithc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluICRQQVRICitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKyAgICBhY19jdl9wcm9nX0hBU19IRz0iZm91bmQiCisgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorICBkb25lCitJRlM9JGFzX3NhdmVfSUZTCisKKyAgdGVzdCAteiAiJGFjX2N2X3Byb2dfSEFTX0hHIiAmJiBhY19jdl9wcm9nX0hBU19IRz0ibm90LWZvdW5kIgorZmkKK2ZpCitIQVNfSEc9JGFjX2N2X3Byb2dfSEFTX0hHCitpZiB0ZXN0IC1uICIkSEFTX0hHIjsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJEhBU19IRyIgPiY1CiskYXNfZWNobyAiJEhBU19IRyIgPiY2OyB9CitlbHNlCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiskYXNfZWNobyAibm8iID4mNjsgfQorZmkKKworCitlbHNlCitIQVNfSEc9bm8tcmVwb3NpdG9yeQorZmkKK2lmIHRlc3QgJEhBU19IRyA9IGZvdW5kCit0aGVuCisgICAgSEdWRVJTSU9OPSJoZyBpZCAtaSBcJChzcmNkaXIpIgorICAgIEhHVEFHPSJoZyBpZCAtdCBcJChzcmNkaXIpIgorICAgIEhHQlJBTkNIPSJoZyBpZCAtYiBcJChzcmNkaXIpIgorZWxzZQorICAgIEhHVkVSU0lPTj0iIgorICAgIEhHVEFHPSIiCisgICAgSEdCUkFOQ0g9IiIKK2ZpCisKKwogYWNfY29uZmlnX2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyBweWNvbmZpZy5oIgogCiAKK2FjX2F1eF9kaXI9Citmb3IgYWNfZGlyIGluICIkc3JjZGlyIiAiJHNyY2Rpci8uLiIgIiRzcmNkaXIvLi4vLi4iOyBkbworICBpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwtc2giOyB0aGVuCisgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCisgICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvaW5zdGFsbC1zaCAtYyIKKyAgICBicmVhaworICBlbGlmIHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC5zaCI7IHRoZW4KKyAgICBhY19hdXhfZGlyPSRhY19kaXIKKyAgICBhY19pbnN0YWxsX3NoPSIkYWNfYXV4X2Rpci9pbnN0YWxsLnNoIC1jIgorICAgIGJyZWFrCisgIGVsaWYgdGVzdCAtZiAiJGFjX2Rpci9zaHRvb2wiOyB0aGVuCisgICAgYWNfYXV4X2Rpcj0kYWNfZGlyCisgICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvc2h0b29sIGluc3RhbGwgLWMiCisgICAgYnJlYWsKKyAgZmkKK2RvbmUKK2lmIHRlc3QgLXogIiRhY19hdXhfZGlyIjsgdGhlbgorICBhc19mbl9lcnJvciAkPyAiY2Fubm90IGZpbmQgaW5zdGFsbC1zaCwgaW5zdGFsbC5zaCwgb3Igc2h0b29sIGluIFwiJHNyY2RpclwiIFwiJHNyY2Rpci8uLlwiIFwiJHNyY2Rpci8uLi8uLlwiIiAiJExJTkVOTyIgNQorZmkKKworIyBUaGVzZSB0aHJlZSB2YXJpYWJsZXMgYXJlIHVuZG9jdW1lbnRlZCBhbmQgdW5zdXBwb3J0ZWQsCisjIGFuZCBhcmUgaW50ZW5kZWQgdG8gYmUgd2l0aGRyYXduIGluIGEgZnV0dXJlIEF1dG9jb25mIHJlbGVhc2UuCisjIFRoZXkgY2FuIGNhdXNlIHNlcmlvdXMgcHJvYmxlbXMgaWYgYSBidWlsZGVyJ3Mgc291cmNlIHRyZWUgaXMgaW4gYSBkaXJlY3RvcnkKKyMgd2hvc2UgZnVsbCBuYW1lIGNvbnRhaW5zIHVudXN1YWwgY2hhcmFjdGVycy4KK2FjX2NvbmZpZ19ndWVzcz0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5ndWVzcyIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KK2FjX2NvbmZpZ19zdWI9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgorYWNfY29uZmlndXJlPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlndXJlIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgorCisKKyMgTWFrZSBzdXJlIHdlIGNhbiBydW4gY29uZmlnLnN1Yi4KKyRTSEVMTCAiJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgc3VuNCA+L2Rldi9udWxsIDI+JjEgfHwKKyAgYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBydW4gJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICIkTElORU5PIiA1CisKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfYnVpbGQrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBhY19idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKK3Rlc3QgIngkYWNfYnVpbGRfYWxpYXMiID0geCAmJgorICBhY19idWlsZF9hbGlhcz1gJFNIRUxMICIkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiYAordGVzdCAieCRhY19idWlsZF9hbGlhcyIgPSB4ICYmCisgIGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgZ3Vlc3MgYnVpbGQgdHlwZTsgeW91IG11c3Qgc3BlY2lmeSBvbmUiICIkTElORU5PIiA1CithY19jdl9idWlsZD1gJFNIRUxMICIkYWNfYXV4X2Rpci9jb25maWcuc3ViIiAkYWNfYnVpbGRfYWxpYXNgIHx8CisgIGFzX2ZuX2Vycm9yICQ/ICIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFpbGVkIiAiJExJTkVOTyIgNQorCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9idWlsZCIgPiY1CiskYXNfZWNobyAiJGFjX2N2X2J1aWxkIiA+JjY7IH0KK2Nhc2UgJGFjX2N2X2J1aWxkIGluCisqLSotKikgOzsKKyopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBidWlsZCIgIiRMSU5FTk8iIDU7OworZXNhYworYnVpbGQ9JGFjX2N2X2J1aWxkCithY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCitzZXQgeCAkYWNfY3ZfYnVpbGQKK3NoaWZ0CitidWlsZF9jcHU9JDEKK2J1aWxkX3ZlbmRvcj0kMgorc2hpZnQ7IHNoaWZ0CisjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxsczoKK2J1aWxkX29zPSQqCitJRlM9JGFjX3NhdmVfSUZTCitjYXNlICRidWlsZF9vcyBpbiAqXCAqKSBidWlsZF9vcz1gZWNobyAiJGJ1aWxkX29zIiB8IHNlZCAncy8gLy0vZydgOzsgZXNhYworCisKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZSIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4uICIgPiY2OyB9CitpZiAke2FjX2N2X2hvc3QrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBpZiB0ZXN0ICJ4JGhvc3RfYWxpYXMiID0geDsgdGhlbgorICBhY19jdl9ob3N0PSRhY19jdl9idWlsZAorZWxzZQorICBhY19jdl9ob3N0PWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiICRob3N0X2FsaWFzYCB8fAorICAgIGFzX2ZuX2Vycm9yICQ/ICIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiAkaG9zdF9hbGlhcyBmYWlsZWQiICIkTElORU5PIiA1CitmaQorCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9ob3N0IiA+JjUKKyRhc19lY2hvICIkYWNfY3ZfaG9zdCIgPiY2OyB9CitjYXNlICRhY19jdl9ob3N0IGluCisqLSotKikgOzsKKyopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHZhbHVlIG9mIGNhbm9uaWNhbCBob3N0IiAiJExJTkVOTyIgNTs7Citlc2FjCitob3N0PSRhY19jdl9ob3N0CithY19zYXZlX0lGUz0kSUZTOyBJRlM9Jy0nCitzZXQgeCAkYWNfY3ZfaG9zdAorc2hpZnQKK2hvc3RfY3B1PSQxCitob3N0X3ZlbmRvcj0kMgorc2hpZnQ7IHNoaWZ0CisjIFJlbWVtYmVyLCB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIElGUyBpcyB1c2VkIHRvIGNyZWF0ZSAkKiwKKyMgZXhjZXB0IHdpdGggb2xkIHNoZWxsczoKK2hvc3Rfb3M9JCoKK0lGUz0kYWNfc2F2ZV9JRlMKK2Nhc2UgJGhvc3Rfb3MgaW4gKlwgKikgaG9zdF9vcz1gZWNobyAiJGhvc3Rfb3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2FjCisKKworCitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHB5dGhvbiBpbnRlcnByZXRlciBmb3IgY3Jvc3MgYnVpbGQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHB5dGhvbiBpbnRlcnByZXRlciBmb3IgY3Jvc3MgYnVpbGQuLi4gIiA+JjY7IH0KKyAgICBpZiB0ZXN0IC16ICIkUFlUSE9OX0ZPUl9CVUlMRCI7IHRoZW4KKyAgICAgICAgZm9yIGludGVycCBpbiBweXRob24kUEFDS0FHRV9WRVJTSU9OIHB5dGhvbjMgcHl0aG9uOyBkbworCSAgICB3aGljaCAkaW50ZXJwID4vZGV2L251bGwgMj4mMSB8fCBjb250aW51ZQorCSAgICBpZiAkaW50ZXJwIC1jICdpbXBvcnQgc3lzO3N5cy5leGl0KG5vdCBzeXMudmVyc2lvbl9pbmZvWzoyXSA+PSAoMywzKSknOyB0aGVuCisJICAgICAgICBicmVhaworCSAgICBmaQorICAgICAgICAgICAgaW50ZXJwPQorCWRvbmUKKyAgICAgICAgaWYgdGVzdCB4JGludGVycCA9IHg7IHRoZW4KKwkgICAgYXNfZm5fZXJyb3IgJD8gInB5dGhvbiRQQUNLQUdFX1ZFUlNJT04gaW50ZXJwcmV0ZXIgbm90IGZvdW5kIiAiJExJTkVOTyIgNQorCWZpCisgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkaW50ZXJwIiA+JjUKKyRhc19lY2hvICIkaW50ZXJwIiA+JjY7IH0KKwlQWVRIT05fRk9SX0JVSUxEPSJfUFlUSE9OX1BST0pFQ1RfQkFTRT0kc3JjZGlyIicgX1BZVEhPTl9IT1NUX1BMQVRGT1JNPSQoX1BZVEhPTl9IT1NUX1BMQVRGT1JNKSBQWVRIT05QQVRIPSQoc3JjZGlyKS9MaWI6JChzcmNkaXIpL0xpYi9wbGF0LSQoTUFDSERFUCkgJyRpbnRlcnAKKyAgICBmaQorZWxzZQorICAgIFBZVEhPTl9GT1JfQlVJTEQ9Jy4vJChCVUlMRFBZVEhPTikgLUUnCitmaQorCisKIAogaWYgdGVzdCAiJHByZWZpeCIgIT0gIi8iOyB0aGVuCiAgICAgcHJlZml4PWBlY2hvICIkcHJlZml4IiB8IHNlZCAtZSAncy9cLyQvL2cnYApAQCAtMjcyMSw3ICsyOTIwLDcgQEAKIG12IGNvbmZkZWZzLmgubmV3IGNvbmZkZWZzLmgKIAogCi1WRVJTSU9OPTMuMgorVkVSU0lPTj0zLjMKIAogIyBWZXJzaW9uIG51bWJlciBvZiBQeXRob24ncyBvd24gc2hhcmVkIGxpYnJhcnkgZmlsZS4KIApAQCAtMjc3NCwxMCArMjk3MywxNiBAQAogICBlbmFibGV2YWw9JGVuYWJsZV91bml2ZXJzYWxzZGs7CiAJY2FzZSAkZW5hYmxldmFsIGluCiAJeWVzKQotCQllbmFibGV2YWw9L0RldmVsb3Blci9TREtzL01hY09TWDEwLjR1LnNkawotCQlpZiB0ZXN0ICEgLWQgIiR7ZW5hYmxldmFsfSIKKwkJIyBMb2NhdGUgdGhlIGJlc3QgdXNhYmxlIFNESywgc2VlIE1hYy9SRUFETUUudHh0IGZvciBtb3JlCisJCSMgaW5mb3JtYXRpb24KKwkJZW5hYmxldmFsPSJgL3Vzci9iaW4veGNvZGVidWlsZCAtdmVyc2lvbiAtc2RrIG1hY29zeCBQYXRoIDI+L2Rldi9udWxsYCIKKwkJaWYgdGVzdCAteiAiJHtlbmFibGV2YWx9IgogCQl0aGVuCi0JCQllbmFibGV2YWw9LworCQkJZW5hYmxldmFsPS9EZXZlbG9wZXIvU0RLcy9NYWNPU1gxMC40dS5zZGsKKwkJCWlmIHRlc3QgISAtZCAiJHtlbmFibGV2YWx9IgorCQkJdGhlbgorCQkJCWVuYWJsZXZhbD0vCisJCQlmaQogCQlmaQogCQk7OwogCWVzYWMKQEAgLTI4MTUsNyArMzAyMCwyMCBAQAogCiAKIAorIyBGb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSByZWFzb25zIHdlIHByZWZlciB0byBzZWxlY3QgJzMyLWJpdCcgaWYgYXZhaWxhYmxlLAorIyBvdGhlcndpc2UgdXNlICdpbnRlbCcKIFVOSVZFUlNBTF9BUkNIUz0iMzItYml0IgoraWYgdGVzdCAiYHVuYW1lIC1zYCIgPSAiRGFyd2luIgordGhlbgorCWlmIHRlc3QgLW4gIiR7VU5JVkVSU0FMU0RLfSIKKwl0aGVuCisJCWlmIHRlc3QgLXogImAvdXNyL2Jpbi9maWxlICIke1VOSVZFUlNBTFNES30vdXNyL2xpYi9saWJTeXN0ZW0uZHlsaWIiIHwgZ3JlcCBwcGNgIgorCQl0aGVuCisJCQlVTklWRVJTQUxfQVJDSFM9ImludGVsIgorCQlmaQorCWZpCitmaQorCiAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIC0td2l0aC11bml2ZXJzYWwtYXJjaHMiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC0td2l0aC11bml2ZXJzYWwtYXJjaHMuLi4gIiA+JjY7IH0KQEAgLTI4MjksOCArMzA0Nyw4IEBACiAKIGVsc2UKIAotIAl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogMzItYml0IiA+JjUKLSRhc19lY2hvICIzMi1iaXQiID4mNjsgfQorIAl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHtVTklWRVJTQUxfQVJDSFN9IiA+JjUKKyRhc19lY2hvICIke1VOSVZFUlNBTF9BUkNIU30iID4mNjsgfQogCiBmaQogCkBAIC0yOTgzLDYgKzMyMDEsMjUgQEAKICRhc19lY2hvX24gImNoZWNraW5nIE1BQ0hERVAuLi4gIiA+JjY7IH0KIGlmIHRlc3QgLXogIiRNQUNIREVQIgogdGhlbgorICAgICMgYXZvaWQgdXNpbmcgdW5hbWUgZm9yIGNyb3NzIGJ1aWxkcworICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgICAgICAgIyBhY19zeXNfc3lzdGVtIGFuZCBhY19zeXNfcmVsZWFzZSBhcmUgb25seSB1c2VkIGZvciBzZXR0aW5nCisgICAgICAgIyBgZGVmaW5lX3hvcGVuX3NvdXJjZScgaW4gdGhlIGNhc2Ugc3RhdGVtZW50IGJlbG93LiBGb3IgdGhlCisgICAgICAgIyBjdXJyZW50IHN1cHBvcnRlZCBjcm9zcyBidWlsZHMsIHRoaXMgbWFjcm8gaXMgbm90IGFkanVzdGVkLgorCWNhc2UgIiRob3N0IiBpbgorCSotKi1saW51eCopCisJCWFjX3N5c19zeXN0ZW09TGludXgKKwkJOzsKKwkqLSotY3lnd2luKikKKwkJYWNfc3lzX3N5c3RlbT1DeWd3aW4KKwkJOzsKKwkqKQorCQkjIGZvciBub3csIGxpbWl0IGNyb3NzIGJ1aWxkcyB0byBrbm93biBjb25maWd1cmF0aW9ucworCQlNQUNIREVQPSJ1bmtub3duIgorCQlhc19mbl9lcnJvciAkPyAiY3Jvc3MgYnVpbGQgbm90IHN1cHBvcnRlZCBmb3IgJGhvc3QiICIkTElORU5PIiA1CisJZXNhYworCWFjX3N5c19yZWxlYXNlPQorICAgIGVsc2UKIAlhY19zeXNfc3lzdGVtPWB1bmFtZSAtc2AKIAlpZiB0ZXN0ICIkYWNfc3lzX3N5c3RlbSIgPSAiQUlYIiBcCiAJLW8gIiRhY19zeXNfc3lzdGVtIiA9ICJVbml4V2FyZSIgLW8gIiRhY19zeXNfc3lzdGVtIiA9ICJPcGVuVU5JWCI7IHRoZW4KQEAgLTI5OTAsMTkgKzMyMjcsNDMgQEAKIAllbHNlCiAJCWFjX3N5c19yZWxlYXNlPWB1bmFtZSAtcmAKIAlmaQotCWFjX21kX3N5c3RlbT1gZWNobyAkYWNfc3lzX3N5c3RlbSB8Ci0JCQkgICB0ciAtZCAnLyAnIHwgdHIgJ1tBLVpdJyAnW2Etel0nYAotCWFjX21kX3JlbGVhc2U9YGVjaG8gJGFjX3N5c19yZWxlYXNlIHwKLQkJCSAgIHRyIC1kICcvICcgfCBzZWQgJ3MvXltBLVpdXC4vLycgfCBzZWQgJ3MvXC4uKi8vJ2AKLQlNQUNIREVQPSIkYWNfbWRfc3lzdGVtJGFjX21kX3JlbGVhc2UiCisgICAgZmkKKyAgICBhY19tZF9zeXN0ZW09YGVjaG8gJGFjX3N5c19zeXN0ZW0gfAorCQkJdHIgLWQgJy8gJyB8IHRyICdbQS1aXScgJ1thLXpdJ2AKKyAgICBhY19tZF9yZWxlYXNlPWBlY2hvICRhY19zeXNfcmVsZWFzZSB8CisJCQl0ciAtZCAnLyAnIHwgc2VkICdzL15bQS1aXVwuLy8nIHwgc2VkICdzL1wuLiovLydgCisgICAgTUFDSERFUD0iJGFjX21kX3N5c3RlbSRhY19tZF9yZWxlYXNlIgogCi0JY2FzZSAkTUFDSERFUCBpbgotCWxpbnV4KikgTUFDSERFUD0ibGludXgyIjs7CisgICAgY2FzZSAkTUFDSERFUCBpbgorCWxpbnV4KikgTUFDSERFUD0ibGludXgiOzsKIAljeWd3aW4qKSBNQUNIREVQPSJjeWd3aW4iOzsKIAlkYXJ3aW4qKSBNQUNIREVQPSJkYXJ3aW4iOzsKLSAgICAgICAgaXJpeDY0NikgTUFDSERFUD0iaXJpeDYiOzsKKwlpcml4NjQ2KSBNQUNIREVQPSJpcml4NiI7OwogCScnKQlNQUNIREVQPSJ1bmtub3duIjs7CisgICAgZXNhYworZmkKKworCitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorCWNhc2UgIiRob3N0IiBpbgorCSotKi1saW51eCopCisJCWNhc2UgIiRob3N0X2NwdSIgaW4KKwkJYXJtKikKKwkJCV9ob3N0X2NwdT1hcm0KKwkJCTs7CisJCSopCisJCQlfaG9zdF9jcHU9JGhvc3RfY3B1CisJCWVzYWMKKwkJOzsKKwkqLSotY3lnd2luKikKKwkJX2hvc3RfY3B1PQorCQk7OworCSopCisJCSMgZm9yIG5vdywgbGltaXQgY3Jvc3MgYnVpbGRzIHRvIGtub3duIGNvbmZpZ3VyYXRpb25zCisJCU1BQ0hERVA9InVua25vd24iCisJCWFzX2ZuX2Vycm9yICQ/ICJjcm9zcyBidWlsZCBub3Qgc3VwcG9ydGVkIGZvciAkaG9zdCIgIiRMSU5FTk8iIDUKIAllc2FjCisJX1BZVEhPTl9IT1NUX1BMQVRGT1JNPSIkTUFDSERFUCR7X2hvc3RfY3B1OistJF9ob3N0X2NwdX0iCiBmaQogCiAjIFNvbWUgc3lzdGVtcyBjYW5ub3Qgc3RhbmQgX1hPUEVOX1NPVVJDRSBiZWluZyBkZWZpbmVkIGF0IGFsbDsgdGhleQpAQCAtMzA5Myw4ICszMzU0LDkgQEAKIAogaWYgdGVzdCAkZGVmaW5lX3hvcGVuX3NvdXJjZSA9IHllcwogdGhlbgorICAjIFgvT3BlbiA3LCBpbmNvcnBvcmF0aW5nIFBPU0lYLjEtMjAwOAogCi0kYXNfZWNobyAiI2RlZmluZSBfWE9QRU5fU09VUkNFIDYwMCIgPj5jb25mZGVmcy5oCiskYXNfZWNobyAiI2RlZmluZSBfWE9QRU5fU09VUkNFIDcwMCIgPj5jb25mZGVmcy5oCiAKIAogICAjIE9uIFRydTY0IFVuaXggNC4wRiwgZGVmaW5pbmcgX1hPUEVOX1NPVVJDRSBhbHNvIHJlcXVpcmVzCkBAIC0zMTA2LDggKzMzNjgsNyBAQAogCiAKIAotJGFzX2VjaG8gIiNkZWZpbmUgX1BPU0lYX0NfU09VUkNFIDIwMDExMkwiID4+Y29uZmRlZnMuaAotCiskYXNfZWNobyAiI2RlZmluZSBfUE9TSVhfQ19TT1VSQ0UgMjAwODA5TCIgPj5jb25mZGVmcy5oCiAKIGZpCiAKQEAgLTMxMzgsMTIgKzMzOTksNiBAQAogQ09ORklHVVJFX01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVD0KIEVYUE9SVF9NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ9JyMnCiAKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgbWFjaGluZSB0eXBlIGFzIHJlcG9ydGVkIGJ5IHVuYW1lIC1tIiA+JjUKLSRhc19lY2hvX24gImNoZWNraW5nIG1hY2hpbmUgdHlwZSBhcyByZXBvcnRlZCBieSB1bmFtZSAtbS4uLiAiID4mNjsgfQotYWNfc3lzX21hY2hpbmU9YHVuYW1lIC1tYAoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19zeXNfbWFjaGluZSIgPiY1Ci0kYXNfZWNobyAiJGFjX3N5c19tYWNoaW5lIiA+JjY7IH0KLQogIyBjaGVja3MgZm9yIGFsdGVybmF0aXZlIHByb2dyYW1zCiAKICMgY29tcGlsZXIgZmxhZ3MgYXJlIGdlbmVyYXRlZCBpbiB0d28gc2V0cywgQkFTRUNGTEFHUyBhbmQgT1BULiAgT1BUIGlzIGp1c3QKQEAgLTMxOTMsNiArMzQ0OCw2NiBAQAogaWYgdGVzdCAteiAiJENGTEFHUyI7IHRoZW4KICAgICAgICAgQ0ZMQUdTPQogZmkKKworaWYgdGVzdCAiJGFjX3N5c19zeXN0ZW0iID0gIkRhcndpbiIKK3RoZW4KKwkjIENvbXBpbGVyIHNlbGVjdGlvbiBvbiBNYWNPU1ggaXMgbW9yZSBjb21wbGljYXRlZCB0aGFuCisJIyBBQ19QUk9HX0NDIGNhbiBoYW5kbGUsIHNlZSBNYWMvUkVBRE1FLnR4dCBmb3IgbW9yZQorCSMgaW5mb3JtYXRpb24KKwlpZiB0ZXN0IC16ICIke0NDfSIKKwl0aGVuCisJCWZvdW5kX2djYz0KKwkJZm91bmRfY2xhbmc9CisJCWFzX3NhdmVfSUZTPSRJRlM7IElGUz06CisJCWZvciBhc19kaXIgaW4gJFBBVEgKKwkJZG8KKwkJCUlGUz0kYXNfc2F2ZV9JRlMKKwkJCWlmIHRlc3QgLXggJGFzX2Rpci9nY2M7IHRoZW4KKwkJCQlpZiB0ZXN0IC16ICIke2ZvdW5kX2djY30iOyB0aGVuCisJCQkJCWZvdW5kX2djYz0kYXNfZGlyL2djYworCQkJCWZpCisJCQlmaQorCQkJaWYgdGVzdCAteCAkYXNfZGlyL2NsYW5nOyB0aGVuCisJCQkJaWYgdGVzdCAteiAiJHtmb3VuZF9jbGFuZ30iOyB0aGVuCisJCQkJCWZvdW5kX2NsYW5nPSRhc19kaXIvY2xhbmcKKwkJCQlmaQorCQkJZmkKKwkJZG9uZQorCQlJRlM9JGFzX3NhdmVfSUZTCisKKwkJaWYgdGVzdCAtbiAiJGZvdW5kX2djYyIgLWEgLW4gIiRmb3VuZF9jbGFuZyIKKwkJdGhlbgorCQkJaWYgdGVzdCAtbiAiYCIkZm91bmRfZ2NjIiAtLXZlcnNpb24gfCBncmVwIGxsdm0tZ2NjYCIKKwkJCXRoZW4KKwkJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IERldGVjdGVkIGxsdm0tZ2NjLCBmYWxsaW5nIGJhY2sgdG8gY2xhbmciID4mNQorJGFzX2VjaG8gIiRhc19tZTogRGV0ZWN0ZWQgbGx2bS1nY2MsIGZhbGxpbmcgYmFjayB0byBjbGFuZyIgPiY2O30KKwkJCQlDQz0iJGZvdW5kX2NsYW5nIgorCQkJCUNYWD0iJGZvdW5kX2NsYW5nKysiCisJCQlmaQorCisKKwkJZWxpZiB0ZXN0IC16ICIkZm91bmRfZ2NjIiAtYSAtbiAiJGZvdW5kX2NsYW5nIgorCQl0aGVuCisJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IE5vIEdDQyBmb3VuZCwgdXNlIENMQU5HIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IE5vIEdDQyBmb3VuZCwgdXNlIENMQU5HIiA+JjY7fQorCQkJQ0M9IiRmb3VuZF9jbGFuZyIKKwkJCUNYWD0iJGZvdW5kX2NsYW5nKysiCisKKwkJZWxpZiB0ZXN0IC16ICIkZm91bmRfZ2NjIiAtYSAteiAiJGZvdW5kX2NsYW5nIgorCQl0aGVuCisJCQlmb3VuZF9jbGFuZz1gL3Vzci9iaW4veGNydW4gLWZpbmQgY2xhbmcgMj4vZGV2L251bGxgCisJCQlpZiB0ZXN0IC1uICIke2ZvdW5kX2NsYW5nfSIKKwkJCXRoZW4KKwkJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFVzaW5nIGNsYW5nIGZyb20gWGNvZGUuYXBwIiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFVzaW5nIGNsYW5nIGZyb20gWGNvZGUuYXBwIiA+JjY7fQorCQkJCUNDPSIke2ZvdW5kX2NsYW5nfSIKKwkJCQlDWFg9ImAvdXNyL2Jpbi94Y3J1biAtZmluZCBjbGFuZysrYCIKKworCQkJIyBlbHNlOiB1c2UgZGVmYXVsdCBiZWhhdmlvdXIKKwkJCWZpCisJCWZpCisJZmkKK2ZpCiBhY19leHQ9YwogYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKIGFjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKQEAgLTQwMTksMTYgKzQzMzQsNjAgQEAKIGlmIHRlc3QgLXogIiRDWFgiCiB0aGVuCiAgICAgICAgIGNhc2UgIiRDQyIgaW4KLSAgICAgICAgZ2NjKSAgICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImcrKyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCisgICAgICAgIGdjYykgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9vbF9wcmVmaXh9ZysrIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fWcrKzsgYWNfd29yZD0kMgoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CitpZiAke2FjX2N2X3BhdGhfQ1hYKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2FzZSAkQ1hYIGluCisgIFtcXC9dKiB8ID86W1xcL10qKQorICBhY19jdl9wYXRoX0NYWD0iJENYWCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgIDs7CisgICopCisgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gbm90Zm91bmQKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorICAgIGFjX2N2X3BhdGhfQ1hYPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgorICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKKyAgZG9uZQorSUZTPSRhc19zYXZlX0lGUworCisgIDs7Citlc2FjCitmaQorQ1hYPSRhY19jdl9wYXRoX0NYWAoraWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDWFgiID4mNQorJGFzX2VjaG8gIiRDWFgiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisKKworZmkKK2lmIHRlc3QgLXogIiRhY19jdl9wYXRoX0NYWCI7IHRoZW4KKyAgYWNfcHRfQ1hYPSRDWFgKKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJnKysiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgogc2V0IGR1bW15IGcrKzsgYWNfd29yZD0kMgogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci1pZiAke2FjX2N2X3BhdGhfQ1hYKzp9IGZhbHNlOyB0aGVuIDoKK2lmICR7YWNfY3ZfcGF0aF9hY19wdF9DWFgrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQotICBjYXNlICRDWFggaW4KKyAgY2FzZSAkYWNfcHRfQ1hYIGluCiAgIFtcXC9dKiB8ID86W1xcL10qKQotICBhY19jdl9wYXRoX0NYWD0iJENYWCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgIGFjX2N2X3BhdGhfYWNfcHRfQ1hYPSIkYWNfcHRfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KICAgOzsKICAgKikKICAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgpAQCAtNDAzOCw3ICs0Mzk3LDcgQEAKICAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KICAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotICAgIGFjX2N2X3BhdGhfQ1hYPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgorICAgIGFjX2N2X3BhdGhfYWNfcHRfQ1hYPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgogICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQogICAgIGJyZWFrIDIKICAgZmkKQEAgLTQwNDYsMjIgKzQ0MDUsMzYgQEAKICAgZG9uZQogSUZTPSRhc19zYXZlX0lGUwogCi0gIHRlc3QgLXogIiRhY19jdl9wYXRoX0NYWCIgJiYgYWNfY3ZfcGF0aF9DWFg9ImcrKyIKICAgOzsKIGVzYWMKIGZpCi1DWFg9JGFjX2N2X3BhdGhfQ1hYCi1pZiB0ZXN0IC1uICIkQ1hYIjsgdGhlbgotICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJENYWCIgPiY1Ci0kYXNfZWNobyAiJENYWCIgPiY2OyB9CithY19wdF9DWFg9JGFjX2N2X3BhdGhfYWNfcHRfQ1hYCitpZiB0ZXN0IC1uICIkYWNfcHRfQ1hYIjsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3B0X0NYWCIgPiY1CiskYXNfZWNobyAiJGFjX3B0X0NYWCIgPiY2OyB9CiBlbHNlCiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiAkYXNfZWNobyAibm8iID4mNjsgfQogZmkKIAorICBpZiB0ZXN0ICJ4JGFjX3B0X0NYWCIgPSB4OyB0aGVuCisgICAgQ1hYPSJnKysiCisgIGVsc2UKKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCit5ZXM6KQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQorJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQorYWNfdG9vbF93YXJuZWQ9eWVzIDs7Citlc2FjCisgICAgQ1hYPSRhY19wdF9DWFgKKyAgZmkKK2Vsc2UKKyAgQ1hYPSIkYWNfY3ZfcGF0aF9DWFgiCitmaQogIDs7Ci0gICAgICAgIGNjKSAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjKysiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotc2V0IGR1bW15IGMrKzsgYWNfd29yZD0kMgorICAgICAgICBjYykgICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWMrKyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1jKys7IGFjX3dvcmQ9JDIKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQogaWYgJHthY19jdl9wYXRoX0NYWCs6fSBmYWxzZTsgdGhlbiA6CkBAIC00MDg3LDcgKzQ0NjAsNiBAQAogICBkb25lCiBJRlM9JGFzX3NhdmVfSUZTCiAKLSAgdGVzdCAteiAiJGFjX2N2X3BhdGhfQ1hYIiAmJiBhY19jdl9wYXRoX0NYWD0iYysrIgogICA7OwogZXNhYwogZmkKQEAgLTQxMDAsNiArNDQ3MiwxNjEgQEAKICRhc19lY2hvICJubyIgPiY2OyB9CiBmaQogCisKK2ZpCitpZiB0ZXN0IC16ICIkYWNfY3ZfcGF0aF9DWFgiOyB0aGVuCisgIGFjX3B0X0NYWD0kQ1hYCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiYysrIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSBjKys7IGFjX3dvcmQ9JDIKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9wYXRoX2FjX3B0X0NYWCs6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGNhc2UgJGFjX3B0X0NYWCBpbgorICBbXFwvXSogfCA/OltcXC9dKikKKyAgYWNfY3ZfcGF0aF9hY19wdF9DWFg9IiRhY19wdF9DWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdpdGggYSBwYXRoLgorICA7OworICAqKQorICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCitmb3IgYXNfZGlyIGluIG5vdGZvdW5kCitkbworICBJRlM9JGFzX3NhdmVfSUZTCisgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCisgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCisgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KKyAgICBhY19jdl9wYXRoX2FjX3B0X0NYWD0iJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIKKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCitkb25lCisgIGRvbmUKK0lGUz0kYXNfc2F2ZV9JRlMKKworICA7OworZXNhYworZmkKK2FjX3B0X0NYWD0kYWNfY3ZfcGF0aF9hY19wdF9DWFgKK2lmIHRlc3QgLW4gIiRhY19wdF9DWFgiOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcHRfQ1hYIiA+JjUKKyRhc19lY2hvICIkYWNfcHRfQ1hYIiA+JjY7IH0KK2Vsc2UKKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKKyRhc19lY2hvICJubyIgPiY2OyB9CitmaQorCisgIGlmIHRlc3QgIngkYWNfcHRfQ1hYIiA9IHg7IHRoZW4KKyAgICBDWFg9ImMrKyIKKyAgZWxzZQorICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KK3llczopCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1CiskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9CithY190b29sX3dhcm5lZD15ZXMgOzsKK2VzYWMKKyAgICBDWFg9JGFjX3B0X0NYWAorICBmaQorZWxzZQorICBDWFg9IiRhY19jdl9wYXRoX0NYWCIKK2ZpCisgOzsKKyAgICAgICAgY2xhbmd8Ki9jbGFuZykgICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fWNsYW5nKysiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2xhbmcrKzsgYWNfd29yZD0kMgoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9CitpZiAke2FjX2N2X3BhdGhfQ1hYKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2FzZSAkQ1hYIGluCisgIFtcXC9dKiB8ID86W1xcL10qKQorICBhY19jdl9wYXRoX0NYWD0iJENYWCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgIDs7CisgICopCisgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gbm90Zm91bmQKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorICAgIGFjX2N2X3BhdGhfQ1hYPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IgorICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkKK2RvbmUKKyAgZG9uZQorSUZTPSRhc19zYXZlX0lGUworCisgIDs7Citlc2FjCitmaQorQ1hYPSRhY19jdl9wYXRoX0NYWAoraWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDWFgiID4mNQorJGFzX2VjaG8gIiRDWFgiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisKKworZmkKK2lmIHRlc3QgLXogIiRhY19jdl9wYXRoX0NYWCI7IHRoZW4KKyAgYWNfcHRfQ1hYPSRDWFgKKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjbGFuZysrIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1teSBjbGFuZysrOyBhY193b3JkPSQyCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfcGF0aF9hY19wdF9DWFgrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBjYXNlICRhY19wdF9DWFggaW4KKyAgW1xcL10qIHwgPzpbXFwvXSopCisgIGFjX2N2X3BhdGhfYWNfcHRfQ1hYPSIkYWNfcHRfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KKyAgOzsKKyAgKikKKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiBub3Rmb3VuZAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisgICAgYWNfY3ZfcGF0aF9hY19wdF9DWFg9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiCisgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQorZG9uZQorICBkb25lCitJRlM9JGFzX3NhdmVfSUZTCisKKyAgOzsKK2VzYWMKK2ZpCithY19wdF9DWFg9JGFjX2N2X3BhdGhfYWNfcHRfQ1hYCitpZiB0ZXN0IC1uICIkYWNfcHRfQ1hYIjsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3B0X0NYWCIgPiY1CiskYXNfZWNobyAiJGFjX3B0X0NYWCIgPiY2OyB9CitlbHNlCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiskYXNfZWNobyAibm8iID4mNjsgfQorZmkKKworICBpZiB0ZXN0ICJ4JGFjX3B0X0NYWCIgPSB4OyB0aGVuCisgICAgQ1hYPSJjbGFuZysrIgorICBlbHNlCisgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgoreWVzOikKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KK2FjX3Rvb2xfd2FybmVkPXllcyA7OworZXNhYworICAgIENYWD0kYWNfcHRfQ1hYCisgIGZpCitlbHNlCisgIENYWD0iJGFjX2N2X3BhdGhfQ1hYIgorZmkKICA7OwogICAgICAgICBlc2FjCiAJaWYgdGVzdCAiJENYWCIgPSAibm90Zm91bmQiCkBAIC00MTA5LDEwICs0NjM2LDExIEBACiBmaQogaWYgdGVzdCAteiAiJENYWCIKIHRoZW4KLQlmb3IgYWNfcHJvZyBpbiAkQ0NDIGMrKyBnKysgZ2NjIENDIGN4eCBjYysrIGNsCi1kbwotICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLXNldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgorCWlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KKyAgZm9yIGFjX3Byb2cgaW4gJENDQyBjKysgZysrIGdjYyBDQyBjeHggY2MrKyBjbAorICBkbworICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KIGlmICR7YWNfY3ZfcHJvZ19DWFgrOn0gZmFsc2U7IHRoZW4gOgpAQCAtNDEyOCw3ICs0NjU2LDcgQEAKICAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KICAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KICAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotICAgIGFjX2N2X3Byb2dfQ1hYPSIkYWNfcHJvZyIKKyAgICBhY19jdl9wcm9nX0NYWD0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCiAgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICAgYnJlYWsgMgogICBmaQpAQCAtNDE0OCw5ICs0Njc2LDY1IEBACiBmaQogCiAKLSAgdGVzdCAtbiAiJENYWCIgJiYgYnJlYWsKKyAgICB0ZXN0IC1uICIkQ1hYIiAmJiBicmVhaworICBkb25lCitmaQoraWYgdGVzdCAteiAiJENYWCI7IHRoZW4KKyAgYWNfY3RfQ1hYPSRDWFgKKyAgZm9yIGFjX3Byb2cgaW4gJENDQyBjKysgZysrIGdjYyBDQyBjeHggY2MrKyBjbAorZG8KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9wcm9nX2FjX2N0X0NYWCs6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGlmIHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVuCisgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KK2Vsc2UKK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgorICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIKKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKKyAgICBicmVhayAyCisgIGZpCiBkb25lCi10ZXN0IC1uICIkQ1hYIiB8fCBDWFg9Im5vdGZvdW5kIgorICBkb25lCitJRlM9JGFzX3NhdmVfSUZTCisKK2ZpCitmaQorYWNfY3RfQ1hYPSRhY19jdl9wcm9nX2FjX2N0X0NYWAoraWYgdGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9DWFgiID4mNQorJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisKKworICB0ZXN0IC1uICIkYWNfY3RfQ1hYIiAmJiBicmVhaworZG9uZQorCisgIGlmIHRlc3QgIngkYWNfY3RfQ1hYIiA9IHg7IHRoZW4KKyAgICBDWFg9Im5vdGZvdW5kIgorICBlbHNlCisgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgoreWVzOikKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KK2FjX3Rvb2xfd2FybmVkPXllcyA7OworZXNhYworICAgIENYWD0kYWNfY3RfQ1hYCisgIGZpCitmaQogCiAJaWYgdGVzdCAiJENYWCIgPSAibm90Zm91bmQiCiAJdGhlbgpAQCAtNDg5MCwzNyArNTQ3NCwzNSBAQAogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC0tZW5hYmxlLXByb2ZpbGluZy4uLiAiID4mNjsgfQogIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXByb2ZpbGluZyB3YXMgZ2l2ZW4uCiBpZiB0ZXN0ICIke2VuYWJsZV9wcm9maWxpbmcrc2V0fSIgPSBzZXQ7IHRoZW4gOgotICBlbmFibGV2YWw9JGVuYWJsZV9wcm9maWxpbmc7IGFjX3NhdmVfY2M9IiRDQyIKLSBDQz0iJENDIC1wZyIKLSBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6Ci0gIGFjX2VuYWJsZV9wcm9maWxpbmc9Im5vIgotZWxzZQorICBlbmFibGV2YWw9JGVuYWJsZV9wcm9maWxpbmc7CitmaQorCitpZiB0ZXN0ICJ4JGVuYWJsZV9wcm9maWxpbmciID0geHllczsgdGhlbgorICBhY19zYXZlX2NjPSIkQ0MiCisgIENDPSIkKENDKSAtcGciCiAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKIC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIGludCBtYWluKCkgeyByZXR1cm4gMDsgfQogX0FDRU9GCi1pZiBhY19mbl9jX3RyeV9ydW4gIiRMSU5FTk8iOyB0aGVuIDoKLSAgYWNfZW5hYmxlX3Byb2ZpbGluZz0ieWVzIgoraWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorCiBlbHNlCi0gIGFjX2VuYWJsZV9wcm9maWxpbmc9Im5vIgorICBlbmFibGVfcHJvZmlsaW5nPW5vCiBmaQotcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgXAotICBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LmJlYW0gY29uZnRlc3QuJGFjX2V4dAorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCisgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKKyAgQ0M9IiRhY19zYXZlX2NjIgorZWxzZQorICBlbmFibGVfcHJvZmlsaW5nPW5vCiBmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRlbmFibGVfcHJvZmlsaW5nIiA+JjUKKyRhc19lY2hvICIkZW5hYmxlX3Byb2ZpbGluZyIgPiY2OyB9CiAKLSBDQz0iJGFjX3NhdmVfY2MiCitpZiB0ZXN0ICJ4JGVuYWJsZV9wcm9maWxpbmciID0geHllczsgdGhlbgorICBCQVNFQ0ZMQUdTPSItcGcgJEJBU0VDRkxBR1MiCisgIExERkxBR1M9Ii1wZyAkTERGTEFHUyIKIGZpCiAKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfZW5hYmxlX3Byb2ZpbGluZyIgPiY1Ci0kYXNfZWNobyAiJGFjX2VuYWJsZV9wcm9maWxpbmciID4mNjsgfQotCi1jYXNlICIkYWNfZW5hYmxlX3Byb2ZpbGluZyIgaW4KLSAgICAieWVzIikKLQlCQVNFQ0ZMQUdTPSItcGcgJEJBU0VDRkxBR1MiCi0JTERGTEFHUz0iLXBnICRMREZMQUdTIgotICAgIDs7Ci1lc2FjCi0KIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgTERMSUJSQVJZIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIExETElCUkFSWS4uLiAiID4mNjsgfQogCkBAIC00OTg2LDExICs1NTY4LDYgQEAKIAkgIEJMRExJQlJBUlk9Jy1XbCwrYiwkKExJQkRJUikgLUwuIC1scHl0aG9uJChMRFZFUlNJT04pJwogCSAgUlVOU0hBUkVEPVNITElCX1BBVEg9YHB3ZGA6JHtTSExJQl9QQVRIfQogCSAgOzsKLSAgICBPU0YqKQotCSAgTERMSUJSQVJZPSdsaWJweXRob24kKExEVkVSU0lPTikuc28nCi0JICBCTERMSUJSQVJZPSctcnBhdGggJChMSUJESVIpIC1MLiAtbHB5dGhvbiQoTERWRVJTSU9OKScKLQkgIFJVTlNIQVJFRD1MRF9MSUJSQVJZX1BBVEg9YHB3ZGA6JHtMRF9MSUJSQVJZX1BBVEh9Ci0JICA7OwogICAgIERhcndpbiopCiAgICAgCUxETElCUkFSWT0nbGlicHl0aG9uJChMRFZFUlNJT04pLmR5bGliJwogCUJMRExJQlJBUlk9Jy1MLiAtbHB5dGhvbiQoTERWRVJTSU9OKScKQEAgLTUwMTEsNiArNTU4OCwxMCBAQAogICBlc2FjCiBmaQogCitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorCVJVTlNIQVJFRD0KK2ZpCisKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkTERMSUJSQVJZIiA+JjUKICRhc19lY2hvICIkTERMSUJSQVJZIiA+JjY7IH0KIApAQCAtNTEwNywxMCArNTY4OCwxMSBAQAogZmkKIAogCi1mb3IgYWNfcHJvZyBpbiBhciBhYWwKLWRvCi0gICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCitpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCisgIGZvciBhY19wcm9nIGluIGFyIGFhbAorICBkbworICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KIGlmICR7YWNfY3ZfcHJvZ19BUis6fSBmYWxzZTsgdGhlbiA6CkBAIC01MTI2LDcgKzU3MDgsNyBAQAogICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgogICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwogICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0gICAgYWNfY3ZfcHJvZ19BUj0iJGFjX3Byb2ciCisgICAgYWNfY3ZfcHJvZ19BUj0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCiAgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICAgYnJlYWsgMgogICBmaQpAQCAtNTE0Niw5ICs1NzI4LDY1IEBACiBmaQogCiAKLSAgdGVzdCAtbiAiJEFSIiAmJiBicmVhaworICAgIHRlc3QgLW4gIiRBUiIgJiYgYnJlYWsKKyAgZG9uZQorZmkKK2lmIHRlc3QgLXogIiRBUiI7IHRoZW4KKyAgYWNfY3RfQVI9JEFSCisgIGZvciBhY19wcm9nIGluIGFyIGFhbAorZG8KKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9wcm9nX2FjX2N0X0FSKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0FSIjsgdGhlbgorICBhY19jdl9wcm9nX2FjX2N0X0FSPSIkYWNfY3RfQVIiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgorZWxzZQorYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgorZm9yIGFzX2RpciBpbiAkUEFUSAorZG8KKyAgSUZTPSRhc19zYXZlX0lGUworICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgorICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCisgICAgYWNfY3ZfcHJvZ19hY19jdF9BUj0iJGFjX3Byb2ciCisgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CisgICAgYnJlYWsgMgorICBmaQogZG9uZQotdGVzdCAtbiAiJEFSIiB8fCBBUj0iYXIiCisgIGRvbmUKK0lGUz0kYXNfc2F2ZV9JRlMKKworZmkKK2ZpCithY19jdF9BUj0kYWNfY3ZfcHJvZ19hY19jdF9BUgoraWYgdGVzdCAtbiAiJGFjX2N0X0FSIjsgdGhlbgorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0FSIiA+JjUKKyRhc19lY2hvICIkYWNfY3RfQVIiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KK2ZpCisKKworICB0ZXN0IC1uICIkYWNfY3RfQVIiICYmIGJyZWFrCitkb25lCisKKyAgaWYgdGVzdCAieCRhY19jdF9BUiIgPSB4OyB0aGVuCisgICAgQVI9ImFyIgorICBlbHNlCisgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgoreWVzOikKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KK2FjX3Rvb2xfd2FybmVkPXllcyA7OworZXNhYworICAgIEFSPSRhY19jdF9BUgorICBmaQorZmkKIAogCiAjIHR3ZWFrIEFSRkxBR1Mgb25seSBpZiB0aGUgdXNlciBkaWRuJ3Qgc2V0IGl0IG9uIHRoZSBjb21tYW5kIGxpbmUKQEAgLTUxNTgsMTYgKzU3OTYsMTggQEAKICAgICAgICAgQVJGTEFHUz0icmMiCiBmaQogCi0KLSMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3ZudmVyc2lvbiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgc3ZudmVyc2lvbjsgYWNfd29yZD0kMgoraWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgorICBmb3IgYWNfcHJvZyBpbiByZWFkZWxmCisgIGRvCisgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCitzZXQgZHVtbXkgJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2c7IGFjX3dvcmQ9JDIKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotaWYgJHthY19jdl9wcm9nX1NWTlZFUlNJT04rOn0gZmFsc2U7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX1JFQURFTEYrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQotICBpZiB0ZXN0IC1uICIkU1ZOVkVSU0lPTiI7IHRoZW4KLSAgYWNfY3ZfcHJvZ19TVk5WRVJTSU9OPSIkU1ZOVkVSU0lPTiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisgIGlmIHRlc3QgLW4gIiRSRUFERUxGIjsgdGhlbgorICBhY19jdl9wcm9nX1JFQURFTEY9IiRSRUFERUxGIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KIGVsc2UKIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKIGZvciBhc19kaXIgaW4gJFBBVEgKQEAgLTUxNzYsNyArNTgxNiw3IEBACiAgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSAgICBhY19jdl9wcm9nX1NWTlZFUlNJT049ImZvdW5kIgorICAgIGFjX2N2X3Byb2dfUkVBREVMRj0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCiAgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1CiAgICAgYnJlYWsgMgogICBmaQpAQCAtNTE4NCw0MSArNTgyNCwzNCBAQAogICBkb25lCiBJRlM9JGFzX3NhdmVfSUZTCiAKLSAgdGVzdCAteiAiJGFjX2N2X3Byb2dfU1ZOVkVSU0lPTiIgJiYgYWNfY3ZfcHJvZ19TVk5WRVJTSU9OPSJub3QtZm91bmQiCiBmaQogZmkKLVNWTlZFUlNJT049JGFjX2N2X3Byb2dfU1ZOVkVSU0lPTgotaWYgdGVzdCAtbiAiJFNWTlZFUlNJT04iOyB0aGVuCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkU1ZOVkVSU0lPTiIgPiY1Ci0kYXNfZWNobyAiJFNWTlZFUlNJT04iID4mNjsgfQorUkVBREVMRj0kYWNfY3ZfcHJvZ19SRUFERUxGCitpZiB0ZXN0IC1uICIkUkVBREVMRiI7IHRoZW4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRSRUFERUxGIiA+JjUKKyRhc19lY2hvICIkUkVBREVMRiIgPiY2OyB9CiBlbHNlCiAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1CiAkYXNfZWNobyAibm8iID4mNjsgfQogZmkKIAogCi1pZiB0ZXN0ICRTVk5WRVJTSU9OID0gZm91bmQKLXRoZW4KLQlTVk5WRVJTSU9OPSJzdm52ZXJzaW9uIFwkKHNyY2RpcikiCi1lbHNlCi0JU1ZOVkVSU0lPTj0iZWNobyBVbnZlcnNpb25lZCBkaXJlY3RvcnkiCisgICAgdGVzdCAtbiAiJFJFQURFTEYiICYmIGJyZWFrCisgIGRvbmUKIGZpCi0KLQotCi0KLQotaWYgdGVzdCAtZSAkc3JjZGlyLy5oZy9kaXJzdGF0ZQotdGhlbgotIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJoZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi1zZXQgZHVtbXkgaGc7IGFjX3dvcmQ9JDIKK2lmIHRlc3QgLXogIiRSRUFERUxGIjsgdGhlbgorICBhY19jdF9SRUFERUxGPSRSRUFERUxGCisgIGZvciBhY19wcm9nIGluIHJlYWRlbGYKK2RvCisgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgorc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3JkPSQyCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLWlmICR7YWNfY3ZfcHJvZ19IQVNfSEcrOn0gZmFsc2U7IHRoZW4gOgoraWYgJHthY19jdl9wcm9nX2FjX2N0X1JFQURFTEYrOn0gZmFsc2U7IHRoZW4gOgogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQotICBpZiB0ZXN0IC1uICIkSEFTX0hHIjsgdGhlbgotICBhY19jdl9wcm9nX0hBU19IRz0iJEhBU19IRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCisgIGlmIHRlc3QgLW4gIiRhY19jdF9SRUFERUxGIjsgdGhlbgorICBhY19jdl9wcm9nX2FjX2N0X1JFQURFTEY9IiRhY19jdF9SRUFERUxGIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KIGVsc2UKIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKIGZvciBhc19kaXIgaW4gJFBBVEgKQEAgLTUyMjcsNyArNTg2MCw3IEBACiAgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCiAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCiAgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSAgICBhY19jdl9wcm9nX0hBU19IRz0iZm91bmQiCisgICAgYWNfY3ZfcHJvZ19hY19jdF9SRUFERUxGPSIkYWNfcHJvZyIKICAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKICAgICBicmVhayAyCiAgIGZpCkBAIC01MjM1LDM0ICs1ODY4LDQ0IEBACiAgIGRvbmUKIElGUz0kYXNfc2F2ZV9JRlMKIAotICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19IQVNfSEciICYmIGFjX2N2X3Byb2dfSEFTX0hHPSJub3QtZm91bmQiCiBmaQogZmkKLUhBU19IRz0kYWNfY3ZfcHJvZ19IQVNfSEcKLWlmIHRlc3QgLW4gIiRIQVNfSEciOyB0aGVuCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkSEFTX0hHIiA+JjUKLSRhc19lY2hvICIkSEFTX0hHIiA+JjY7IH0KK2FjX2N0X1JFQURFTEY9JGFjX2N2X3Byb2dfYWNfY3RfUkVBREVMRgoraWYgdGVzdCAtbiAiJGFjX2N0X1JFQURFTEYiOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3RfUkVBREVMRiIgPiY1CiskYXNfZWNobyAiJGFjX2N0X1JFQURFTEYiID4mNjsgfQogZWxzZQogICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQogJGFzX2VjaG8gIm5vIiA+JjY7IH0KIGZpCiAKIAotZWxzZQotSEFTX0hHPW5vLXJlcG9zaXRvcnkKKyAgdGVzdCAtbiAiJGFjX2N0X1JFQURFTEYiICYmIGJyZWFrCitkb25lCisKKyAgaWYgdGVzdCAieCRhY19jdF9SRUFERUxGIiA9IHg7IHRoZW4KKyAgICBSRUFERUxGPSI6IgorICBlbHNlCisgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgoreWVzOikKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KK2FjX3Rvb2xfd2FybmVkPXllcyA7OworZXNhYworICAgIFJFQURFTEY9JGFjX2N0X1JFQURFTEYKKyAgZmkKIGZpCi1pZiB0ZXN0ICRIQVNfSEcgPSBmb3VuZAotdGhlbgotICAgIEhHVkVSU0lPTj0iaGcgaWQgLWkgXCQoc3JjZGlyKSIKLSAgICBIR1RBRz0iaGcgaWQgLXQgXCQoc3JjZGlyKSIKLSAgICBIR0JSQU5DSD0iaGcgaWQgLWIgXCQoc3JjZGlyKSIKLWVsc2UKLSAgICBIR1ZFUlNJT049IiIKLSAgICBIR1RBRz0iIgotICAgIEhHQlJBTkNIPSIiCisKK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgICAgY2FzZSAiJFJFQURFTEYiIGluCisJcmVhZGVsZnw6KQorCWFzX2ZuX2Vycm9yICQ/ICJyZWFkZWxmIGZvciB0aGUgaG9zdCBpcyByZXF1aXJlZCBmb3IgY3Jvc3MgYnVpbGRzIiAiJExJTkVOTyIgNQorCTs7CisgICAgZXNhYwogZmkKIAogCisKIERJU0FCTEVfQVNETEdFTj0iIgogIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJweXRob24iLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgogc2V0IGR1bW15IHB5dGhvbjsgYWNfd29yZD0kMgpAQCAtNTMxNiwzNSArNTk1OSw2IEBACiAJCUlOU1RBTEw9IiR7c3JjZGlyfS9pbnN0YWxsLXNoIC1jIgogCWZpCiBlc2FjCi1hY19hdXhfZGlyPQotZm9yIGFjX2RpciBpbiAiJHNyY2RpciIgIiRzcmNkaXIvLi4iICIkc3JjZGlyLy4uLy4uIjsgZG8KLSAgaWYgdGVzdCAtZiAiJGFjX2Rpci9pbnN0YWxsLXNoIjsgdGhlbgotICAgIGFjX2F1eF9kaXI9JGFjX2RpcgotICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwtc2ggLWMiCi0gICAgYnJlYWsKLSAgZWxpZiB0ZXN0IC1mICIkYWNfZGlyL2luc3RhbGwuc2giOyB0aGVuCi0gICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0gICAgYWNfaW5zdGFsbF9zaD0iJGFjX2F1eF9kaXIvaW5zdGFsbC5zaCAtYyIKLSAgICBicmVhawotICBlbGlmIHRlc3QgLWYgIiRhY19kaXIvc2h0b29sIjsgdGhlbgotICAgIGFjX2F1eF9kaXI9JGFjX2RpcgotICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL3NodG9vbCBpbnN0YWxsIC1jIgotICAgIGJyZWFrCi0gIGZpCi1kb25lCi1pZiB0ZXN0IC16ICIkYWNfYXV4X2RpciI7IHRoZW4KLSAgYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBmaW5kIGluc3RhbGwtc2gsIGluc3RhbGwuc2gsIG9yIHNodG9vbCBpbiBcIiRzcmNkaXJcIiBcIiRzcmNkaXIvLi5cIiBcIiRzcmNkaXIvLi4vLi5cIiIgIiRMSU5FTk8iIDUKLWZpCi0KLSMgVGhlc2UgdGhyZWUgdmFyaWFibGVzIGFyZSB1bmRvY3VtZW50ZWQgYW5kIHVuc3VwcG9ydGVkLAotIyBhbmQgYXJlIGludGVuZGVkIHRvIGJlIHdpdGhkcmF3biBpbiBhIGZ1dHVyZSBBdXRvY29uZiByZWxlYXNlLgotIyBUaGV5IGNhbiBjYXVzZSBzZXJpb3VzIHByb2JsZW1zIGlmIGEgYnVpbGRlcidzIHNvdXJjZSB0cmVlIGlzIGluIGEgZGlyZWN0b3J5Ci0jIHdob3NlIGZ1bGwgbmFtZSBjb250YWlucyB1bnVzdWFsIGNoYXJhY3RlcnMuCi1hY19jb25maWdfZ3Vlc3M9IiRTSEVMTCAkYWNfYXV4X2Rpci9jb25maWcuZ3Vlc3MiICAjIFBsZWFzZSBkb24ndCB1c2UgdGhpcyB2YXIuCi1hY19jb25maWdfc3ViPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLnN1YiIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KLWFjX2NvbmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIgICMgUGxlYXNlIGRvbid0IHVzZSB0aGlzIHZhci4KLQotCiAjIEZpbmQgYSBnb29kIGluc3RhbGwgcHJvZ3JhbS4gIFdlIHByZWZlciBhIEMgcHJvZ3JhbSAoZmFzdGVyKSwKICMgc28gb25lIHNjcmlwdCBpcyBhcyBnb29kIGFzIGFub3RoZXIuICBCdXQgYXZvaWQgdGhlIGJyb2tlbiBvcgogIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6CkBAIC01NDM4LDYgKzYwNTIsNDggQEAKIAogdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKIAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgYSB0aHJlYWQtc2FmZSBta2RpciAtcC4uLiAiID4mNjsgfQoraWYgdGVzdCAteiAiJE1LRElSX1AiOyB0aGVuCisgIGlmICR7YWNfY3ZfcGF0aF9ta2Rpcis6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIgaW4gJFBBVEgkUEFUSF9TRVBBUkFUT1Ivb3B0L3Nmdy9iaW4KK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KKyAgICBmb3IgYWNfcHJvZyBpbiBta2RpciBnbWtkaXI7IGRvCisJIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbworCSAgIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCI7IH0gfHwgY29udGludWUKKwkgICBjYXNlIGAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLS12ZXJzaW9uIDI+JjFgIGluICMoCisJICAgICAnbWtkaXIgKEdOVSBjb3JldXRpbHMpICcqIHwgXAorCSAgICAgJ21rZGlyIChjb3JldXRpbHMpICcqIHwgXAorCSAgICAgJ21rZGlyIChmaWxldXRpbHMpICc0LjEqKQorCSAgICAgICBhY19jdl9wYXRoX21rZGlyPSRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQKKwkgICAgICAgYnJlYWsgMzs7CisJICAgZXNhYworCSBkb25lCisgICAgICAgZG9uZQorICBkb25lCitJRlM9JGFzX3NhdmVfSUZTCisKK2ZpCisKKyAgdGVzdCAtZCAuLy0tdmVyc2lvbiAmJiBybWRpciAuLy0tdmVyc2lvbgorICBpZiB0ZXN0ICIke2FjX2N2X3BhdGhfbWtkaXIrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgICBNS0RJUl9QPSIkYWNfY3ZfcGF0aF9ta2RpciAtcCIKKyAgZWxzZQorICAgICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hlIGEKKyAgICAjIHZhbHVlIGZvciBNS0RJUl9QIHdpdGhpbiBhIHNvdXJjZSBkaXJlY3RvcnksIGJlY2F1c2UgdGhhdCB3aWxsCisgICAgIyBicmVhayBvdGhlciBwYWNrYWdlcyB1c2luZyB0aGUgY2FjaGUgaWYgdGhhdCBkaXJlY3RvcnkgaXMKKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZlIG5hbWUuCisgICAgTUtESVJfUD0iJGFjX2luc3RhbGxfc2ggLWQiCisgIGZpCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRNS0RJUl9QIiA+JjUKKyRhc19lY2hvICIkTUtESVJfUCIgPiY2OyB9CisKIAogIyBOb3QgZXZlcnkgZmlsZXN5c3RlbSBzdXBwb3J0cyBoYXJkIGxpbmtzCiAKQEAgLTU2MTYsMTAgKzYyNzIsNTMgQEAKICAgICAgIEJBU0VDRkxBR1M9IiRCQVNFQ0ZMQUdTIC1mbm8tc3RyaWN0LWFsaWFzaW5nIgogICAgIGZpCiAKKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIHdlIGNhbiB0dXJuIG9mZiAkQ0MgdW51c2VkIHJlc3VsdCB3YXJuaW5nIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGlmIHdlIGNhbiB0dXJuIG9mZiAkQ0MgdW51c2VkIHJlc3VsdCB3YXJuaW5nLi4uICIgPiY2OyB9CisgICAgIGFjX3NhdmVfY2M9IiRDQyIKKyAgICAgQ0M9IiRDQyAtV3VudXNlZC1yZXN1bHQgLVdlcnJvciIKKyAgICAgc2F2ZV9DRkxBR1M9IiRDRkxBR1MiCisgICAgIGlmICR7YWNfY3ZfZGlzYWJsZV91bnVzZWRfcmVzdWx0X3dhcm5pbmcrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKworaW50CittYWluICgpCit7CisKKyAgOworICByZXR1cm4gMDsKK30KKworX0FDRU9GCitpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisKKyAgICAgICAgICAgYWNfY3ZfZGlzYWJsZV91bnVzZWRfcmVzdWx0X3dhcm5pbmc9eWVzCisKK2Vsc2UKKworICAgICAgICAgICBhY19jdl9kaXNhYmxlX3VudXNlZF9yZXN1bHRfd2FybmluZz1ubworCitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CitmaQorCisgICAgIENGTEFHUz0iJHNhdmVfQ0ZMQUdTIgorICAgICBDQz0iJGFjX3NhdmVfY2MiCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9kaXNhYmxlX3VudXNlZF9yZXN1bHRfd2FybmluZyIgPiY1CiskYXNfZWNobyAiJGFjX2N2X2Rpc2FibGVfdW51c2VkX3Jlc3VsdF93YXJuaW5nIiA+JjY7IH0KKworICAgIGlmIHRlc3QgJGFjX2N2X2Rpc2FibGVfdW51c2VkX3Jlc3VsdF93YXJuaW5nID0geWVzCisgICAgdGhlbgorICAgICAgQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgLVduby11bnVzZWQtcmVzdWx0IgorICAgIGZpCisKICAgICAjIGlmIHVzaW5nIGdjYyBvbiBhbHBoYSwgdXNlIC1taWVlZSB0byBnZXQgKG5lYXIpIGZ1bGwgSUVFRSA3NTQKICAgICAjIHN1cHBvcnQuICBXaXRob3V0IHRoaXMsIHRyZWF0bWVudCBvZiBzdWJub3JtYWxzIGRvZXNuJ3QgZm9sbG93CiAgICAgIyB0aGUgc3RhbmRhcmQuCi0gICAgY2FzZSAkYWNfc3lzX21hY2hpbmUgaW4KKyAgICBjYXNlICRob3N0IGluCiAgICAgICAgICBhbHBoYSopCiAgICAgICAgICAgICAgICAgQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgLW1pZWVlIgogICAgICAgICAgICAgICAgIDs7CkBAIC01Njk1LDcgKzYzOTQsOSBAQAogCSAgICAjIENhbGN1bGF0ZSB0aGUgcmlnaHQgZGVwbG95bWVudCB0YXJnZXQgZm9yIHRoaXMgYnVpbGQuCiAJICAgICMKIAkgICAgY3VyX3RhcmdldD1gc3dfdmVycyAtcHJvZHVjdFZlcnNpb24gfCBzZWQgJ3MvXCgxMFwuWzAtOV0qXCkuKi9cMS8nYAotCSAgICBpZiB0ZXN0ICR7Y3VyX3RhcmdldH0gJz4nIDEwLjI7IHRoZW4KKwkgICAgaWYgdGVzdCAke2N1cl90YXJnZXR9ICc+JyAxMC4yICYmIFwKKwkgICAgICAgdGVzdCAke2N1cl90YXJnZXR9ICc8JyAxMC42CisJICAgIHRoZW4KIAkJICAgIGN1cl90YXJnZXQ9MTAuMwogCQkgICAgaWYgdGVzdCAke2VuYWJsZV91bml2ZXJzYWxzZGt9OyB0aGVuCiAJCQkgICAgaWYgdGVzdCAiJHtVTklWRVJTQUxfQVJDSFN9IiA9ICJhbGwiOyB0aGVuCkBAIC01NzM0LDkgKzY0MzUsNiBAQAogCSAgICBFWFBPUlRfTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUPScnCiAKIAkgICAgOzsKLQlPU0YqKQotCSAgICBCQVNFQ0ZMQUdTPSIkQkFTRUNGTEFHUyAtbWllZWUiCi0JICAgIDs7CiAgICAgZXNhYwogICAgIDs7CiAKQEAgLTU3NDUsOSArNjQ0Myw2IEBACiAgICAgT3BlblVOSVgqfFVuaXhXYXJlKikKIAlCQVNFQ0ZMQUdTPSIkQkFTRUNGTEFHUyAtSyBwZW50aXVtLGhvc3QsaW5saW5lLGxvb3BfdW5yb2xsLGFsbG9jYSAiCiAJOzsKLSAgICBPU0YqKQotCUJBU0VDRkxBR1M9IiRCQVNFQ0ZMQUdTIC1pZWVlIC1zdGQiCi0gICAgCTs7CiAgICAgU0NPX1NWKikKIAlCQVNFQ0ZMQUdTPSIkQkFTRUNGTEFHUyAtYmVsZiAtS2k0ODYgLURTQ081IgogCTs7CkBAIC02MTU3LDE3ICs2ODUyLDIwIEBACiAKIGZpCiAKK2FjX3NhdmVfY3BwZmxhZ3M9IiRDUFBGTEFHUyIKK0NQUEZMQUdTPSIkQ1BQRkxBR1MgLUkvdXNyL2luY2x1ZGUvbmN1cnNlc3ciCiBmb3IgYWNfaGVhZGVyIGluIGFzbS90eXBlcy5oIGNvbmlvLmggY3Vyc2VzLmggZGlyZWN0LmggZGxmY24uaCBlcnJuby5oIFwKIGZjbnRsLmggZ3JwLmggXAotaWVlZWZwLmggaW8uaCBsYW5naW5mby5oIGxpYmludGwuaCBuY3Vyc2VzLmggcG9sbC5oIHByb2Nlc3MuaCBwdGhyZWFkLmggXAotc2hhZG93Lmggc2lnbmFsLmggc3RkaW50Lmggc3Ryb3B0cy5oIHRlcm1pb3MuaCB0aHJlYWQuaCBcCitpZWVlZnAuaCBpby5oIGxhbmdpbmZvLmggbGliaW50bC5oIG5jdXJzZXMuaCBwcm9jZXNzLmggcHRocmVhZC5oIFwKK3NjaGVkLmggc2hhZG93Lmggc2lnbmFsLmggc3RkaW50Lmggc3Ryb3B0cy5oIHRlcm1pb3MuaCBcCiB1bmlzdGQuaCB1dGltZS5oIFwKLXN5cy9hdWRpb2lvLmggc3lzL2JzZHR0eS5oIHN5cy9lcG9sbC5oIHN5cy9ldmVudC5oIHN5cy9maWxlLmggc3lzL2xvYWRhdmcuaCBcCi1zeXMvbG9jay5oIHN5cy9ta2Rldi5oIHN5cy9tb2RlbS5oIFwKLXN5cy9wYXJhbS5oIHN5cy9wb2xsLmggc3lzL3NlbGVjdC5oIHN5cy9zb2NrZXQuaCBzeXMvc3RhdHZmcy5oIHN5cy9zdGF0LmggXAotc3lzL3N5c2NhbGwuaCBzeXMvdGVybWlvLmggc3lzL3RpbWUuaCBcCi1zeXMvdGltZXMuaCBzeXMvdHlwZXMuaCBzeXMvdW4uaCBzeXMvdXRzbmFtZS5oIHN5cy93YWl0LmggcHR5LmggbGlidXRpbC5oIFwKLXN5cy9yZXNvdXJjZS5oIG5ldHBhY2tldC9wYWNrZXQuaCBzeXNleGl0cy5oIGJsdWV0b290aC5oIFwKK3BvbGwuaCBzeXMvZGV2cG9sbC5oIHN5cy9lcG9sbC5oIHN5cy9wb2xsLmggXAorc3lzL2F1ZGlvaW8uaCBzeXMveGF0dHIuaCBzeXMvYnNkdHR5Lmggc3lzL2V2ZW50Lmggc3lzL2ZpbGUuaCBzeXMvaW9jdGwuaCBcCitzeXMva2Vybl9jb250cm9sLmggc3lzL2xvYWRhdmcuaCBzeXMvbG9jay5oIHN5cy9ta2Rldi5oIHN5cy9tb2RlbS5oIFwKK3N5cy9wYXJhbS5oIHN5cy9zZWxlY3QuaCBzeXMvc2VuZGZpbGUuaCBzeXMvc29ja2V0Lmggc3lzL3N0YXR2ZnMuaCBcCitzeXMvc3RhdC5oIHN5cy9zeXNjYWxsLmggc3lzL3N5c19kb21haW4uaCBzeXMvdGVybWlvLmggc3lzL3RpbWUuaCBcCitzeXMvdGltZXMuaCBzeXMvdHlwZXMuaCBzeXMvdWlvLmggc3lzL3VuLmggc3lzL3V0c25hbWUuaCBzeXMvd2FpdC5oIHB0eS5oIFwKK2xpYnV0aWwuaCBzeXMvcmVzb3VyY2UuaCBuZXRwYWNrZXQvcGFja2V0Lmggc3lzZXhpdHMuaCBibHVldG9vdGguaCBcCiBibHVldG9vdGgvYmx1ZXRvb3RoLmggbGludXgvdGlwYy5oIHNwYXduLmggdXRpbC5oCiBkbyA6CiAgIGFzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKQEAgLTYxODEsNiArNjg3OSw3IEBACiAKIGRvbmUKIAorQ1BQRkxBR1M9JGFjX3NhdmVfY3BwZmxhZ3MKIGFjX2hlYWRlcl9kaXJlbnQ9bm8KIGZvciBhY19oZHIgaW4gZGlyZW50Lmggc3lzL25kaXIuaCBzeXMvZGlyLmggbmRpci5oOyBkbwogICBhc19hY19IZWFkZXI9YCRhc19lY2hvICJhY19jdl9oZWFkZXJfZGlyZW50XyRhY19oZHIiIHwgJGFzX3RyX3NoYApAQCAtNjM5MCw2ICs3MDg5LDM0IEBACiBmaQogCiAKKyMgT24gRGFyd2luIChPUyBYKSBuZXQvaWYuaCByZXF1aXJlcyBzeXMvc29ja2V0LmggdG8gYmUgaW1wb3J0ZWQgZmlyc3QuCitmb3IgYWNfaGVhZGVyIGluIG5ldC9pZi5oCitkbyA6CisgIGFjX2ZuX2NfY2hlY2tfaGVhZGVyX2NvbXBpbGUgIiRMSU5FTk8iICJuZXQvaWYuaCIgImFjX2N2X2hlYWRlcl9uZXRfaWZfaCIgIiNpbmNsdWRlIDxzdGRpby5oPgorI2lmZGVmIFNURENfSEVBREVSUworIyBpbmNsdWRlIDxzdGRsaWIuaD4KKyMgaW5jbHVkZSA8c3RkZGVmLmg+CisjZWxzZQorIyBpZmRlZiBIQVZFX1NURExJQl9ICisjICBpbmNsdWRlIDxzdGRsaWIuaD4KKyMgZW5kaWYKKyNlbmRpZgorI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICisjIGluY2x1ZGUgPHN5cy9zb2NrZXQuaD4KKyNlbmRpZgorCisiCitpZiB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9uZXRfaWZfaCIgPSB4eWVzOyB0aGVuIDoKKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBIQVZFX05FVF9JRl9IIDEKK19BQ0VPRgorCitmaQorCitkb25lCisKKworCiAjIE9uIFNvbGFyaXMsIHRlcm0uaCByZXF1aXJlcyBjdXJzZXMuaAogZm9yIGFjX2hlYWRlciBpbiB0ZXJtLmgKIGRvIDoKQEAgLTY0MzEsNiArNzE1OCwyNiBAQAogZG9uZQogCiAKKyMgT24gTGludXgsIGNhbi5oIGFuZCBjYW4vcmF3LmggcmVxdWlyZSBzeXMvc29ja2V0LmgKK2ZvciBhY19oZWFkZXIgaW4gbGludXgvY2FuLmggbGludXgvY2FuL3Jhdy5oCitkbyA6CisgIGFzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRlcl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKK2FjX2ZuX2NfY2hlY2tfaGVhZGVyX2NvbXBpbGUgIiRMSU5FTk8iICIkYWNfaGVhZGVyIiAiJGFzX2FjX0hlYWRlciIgIgorI2lmZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICisjaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2VuZGlmCisKKyIKK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNfSGVhZGVyIlwiID0geCJ5ZXMiOyB0aGVuIDoKKyAgY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgorI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCitfQUNFT0YKKworZmkKKworZG9uZQorCisKICMgY2hlY2tzIGZvciB0eXBlZGVmcwogd2FzX2l0X2RlZmluZWQ9bm8KIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGNsb2NrX3QgaW4gdGltZS5oIiA+JjUKQEAgLTY0NTUsNyArNzIwMiw2IEBACiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdhc19pdF9kZWZpbmVkIiA+JjUKICRhc19lY2hvICIkd2FzX2l0X2RlZmluZWQiID4mNjsgfQogCi0jIENoZWNrIHdoZXRoZXIgdXNpbmcgbWFrZWRldiByZXF1aXJlcyBkZWZpbmluZyBfT1NGX1NPVVJDRQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFrZWRldiIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFrZWRldi4uLiAiID4mNjsgfQogY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dApAQCAtNjQ4NiwzNSArNzIzMiw2IEBACiBmaQogcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCiAgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLWlmIHRlc3QgIiRhY19jdl9oYXNfbWFrZWRldiIgPSAibm8iOyB0aGVuCi0gICAgIyB3ZSBkaWRuJ3QgbGluaywgdHJ5IGlmIF9PU0ZfU09VUkNFIHdpbGwgYWxsb3cgdXMgdG8gbGluawotICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLS8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLQotI2RlZmluZSBfT1NGX1NPVVJDRSAxCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0KLWludAotbWFpbiAoKQotewotIG1ha2VkZXYoMCwgMCkKLSAgOwotICByZXR1cm4gMDsKLX0KLV9BQ0VPRgotaWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotICBhY19jdl9oYXNfbWFrZWRldj15ZXMKLWVsc2UKLSAgYWNfY3ZfaGFzX21ha2VkZXY9bm8KLWZpCi1ybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotICAgIGlmIHRlc3QgIiRhY19jdl9oYXNfbWFrZWRldiIgPSAieWVzIjsgdGhlbgotCi0kYXNfZWNobyAiI2RlZmluZSBfT1NGX1NPVVJDRSAxIiA+PmNvbmZkZWZzLmgKLQotICAgIGZpCi1maQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9oYXNfbWFrZWRldiIgPiY1CiAkYXNfZWNobyAiJGFjX2N2X2hhc19tYWtlZGV2IiA+JjY7IH0KIGlmIHRlc3QgIiRhY19jdl9oYXNfbWFrZWRldiIgPSAieWVzIjsgdGhlbgpAQCAtNjcyMiw2ICs3NDM5LDEzIEBACiAKIGZpCiAKK2FjX2ZuX2NfY2hlY2tfdHlwZSAiJExJTkVOTyIgIl9fdWludDEyOF90IiAiYWNfY3ZfdHlwZV9fX3VpbnQxMjhfdCIgIiRhY19pbmNsdWRlc19kZWZhdWx0IgoraWYgdGVzdCAieCRhY19jdl90eXBlX19fdWludDEyOF90IiA9IHh5ZXM7IHRoZW4gOgorCiskYXNfZWNobyAiI2RlZmluZSBIQVZFX0dDQ19VSU5UMTI4X1QgMSIgPj5jb25mZGVmcy5oCisKK2ZpCisKIAogIyBTaXplcyBvZiB2YXJpb3VzIGNvbW1vbiBiYXNpYyB0eXBlcwogIyBBTlNJIEMgcmVxdWlyZXMgc2l6ZW9mKGNoYXIpID09IDEsIHNvIG5vIG5lZWQgdG8gY2hlY2sgaXQKQEAgLTc2MDIsNyArODMyNiw2IEBACiAJCWVsc2UKIAkJCUxEU0hBUkVEPSdsZCAtYicKIAkJZmkgOzsKLQlPU0YqKSBMRFNIQVJFRD0ibGQgLXNoYXJlZCAtZXhwZWN0X3VucmVzb2x2ZWQgXCIqXCIiOzsKIAlEYXJ3aW4vMS4zKikKIAkJTERTSEFSRUQ9JyQoQ0MpIC1idW5kbGUnCiAJCUxEQ1hYU0hBUkVEPSckKENYWCkgLWJ1bmRsZScKQEAgLTc4NDEsNiArODU2NCw1MSBAQAogCiAKICMgY2hlY2tzIGZvciBsaWJyYXJpZXMKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHNlbmRmaWxlIGluIC1sc2VuZGZpbGUiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHNlbmRmaWxlIGluIC1sc2VuZGZpbGUuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfbGliX3NlbmRmaWxlX3NlbmRmaWxlKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworTElCUz0iLWxzZW5kZmlsZSAgJExJQlMiCitjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCisjZW5kaWYKK2NoYXIgc2VuZGZpbGUgKCk7CitpbnQKK21haW4gKCkKK3sKK3JldHVybiBzZW5kZmlsZSAoKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorICBhY19jdl9saWJfc2VuZGZpbGVfc2VuZGZpbGU9eWVzCitlbHNlCisgIGFjX2N2X2xpYl9zZW5kZmlsZV9zZW5kZmlsZT1ubworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAorICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0CitMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCitmaQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9saWJfc2VuZGZpbGVfc2VuZGZpbGUiID4mNQorJGFzX2VjaG8gIiRhY19jdl9saWJfc2VuZGZpbGVfc2VuZGZpbGUiID4mNjsgfQoraWYgdGVzdCAieCRhY19jdl9saWJfc2VuZGZpbGVfc2VuZGZpbGUiID0geHllczsgdGhlbiA6CisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9MSUJTRU5ERklMRSAxCitfQUNFT0YKKworICBMSUJTPSItbHNlbmRmaWxlICRMSUJTIgorCitmaQorCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sZGwuLi4gIiA+JjY7IH0KIGlmICR7YWNfY3ZfbGliX2RsX2Rsb3Blbis6fSBmYWxzZTsgdGhlbiA6CkBAIC04MzA5LDYgKzkwNzcsMjEgQEAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkd2l0aF9zeXN0ZW1fZmZpIiA+JjUKICRhc19lY2hvICIkd2l0aF9zeXN0ZW1fZmZpIiA+JjY7IH0KIAorIyBDaGVjayBmb3IgdXNlIG9mIHRoZSBzeXN0ZW0gbGlibXBkZWMgbGlicmFyeQoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgLS13aXRoLXN5c3RlbS1saWJtcGRlYyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgLS13aXRoLXN5c3RlbS1saWJtcGRlYy4uLiAiID4mNjsgfQorCisjIENoZWNrIHdoZXRoZXIgLS13aXRoLXN5c3RlbV9saWJtcGRlYyB3YXMgZ2l2ZW4uCitpZiB0ZXN0ICIke3dpdGhfc3lzdGVtX2xpYm1wZGVjK3NldH0iID0gc2V0OyB0aGVuIDoKKyAgd2l0aHZhbD0kd2l0aF9zeXN0ZW1fbGlibXBkZWM7CitlbHNlCisgIHdpdGhfc3lzdGVtX2xpYm1wZGVjPSJubyIKK2ZpCisKKworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR3aXRoX3N5c3RlbV9saWJtcGRlYyIgPiY1CiskYXNfZWNobyAiJHdpdGhfc3lzdGVtX2xpYm1wZGVjIiA+JjY7IH0KKwogIyBDaGVjayBmb3Igc3VwcG9ydCBmb3IgbG9hZGFibGUgc3FsaXRlIGV4dGVuc2lvbnMKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIC0tZW5hYmxlLWxvYWRhYmxlLXNxbGl0ZS1leHRlbnNpb25zIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAtLWVuYWJsZS1sb2FkYWJsZS1zcWxpdGUtZXh0ZW5zaW9ucy4uLiAiID4mNjsgfQpAQCAtODM3NiwyMyArOTE1OSw2IEBACiAKIFVTRV9USFJFQURfTU9EVUxFPSIiCiAKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIC0td2l0aC1kZWMtdGhyZWFkcyIgPiY1Ci0kYXNfZWNob19uICJjaGVja2luZyBmb3IgLS13aXRoLWRlYy10aHJlYWRzLi4uICIgPiY2OyB9Ci0KLQotIyBDaGVjayB3aGV0aGVyIC0td2l0aC1kZWMtdGhyZWFkcyB3YXMgZ2l2ZW4uCi1pZiB0ZXN0ICIke3dpdGhfZGVjX3RocmVhZHMrc2V0fSIgPSBzZXQ7IHRoZW4gOgotICB3aXRodmFsPSR3aXRoX2RlY190aHJlYWRzOwoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR3aXRodmFsIiA+JjUKLSRhc19lY2hvICIkd2l0aHZhbCIgPiY2OyB9Ci1MRExBU1Q9LXRocmVhZHMKLWlmIHRlc3QgIiR7d2l0aF90aHJlYWQrc2V0fSIgIT0gc2V0OyB0aGVuCi0gICB3aXRoX3RocmVhZD0iJHdpdGh2YWwiOwotZmkKLWVsc2UKLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSRhc19lY2hvICJubyIgPiY2OyB9Ci1maQogCiAKICMgVGVtcGxhdGVzIGZvciB0aGluZ3MgQUNfREVGSU5FZCBtb3JlIHRoYW4gb25jZS4KQEAgLTg0MDAsNyArOTE2Niw2IEBACiAKIAogCi0KIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIC0td2l0aC10aHJlYWRzIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciAtLXdpdGgtdGhyZWFkcy4uLiAiID4mNjsgfQogCkBAIC04NTAyLDMxICs5MjY3LDYgQEAKIAogICAgICRhc19lY2hvICIjZGVmaW5lIF9SRUVOVFJBTlQgMSIgPj5jb25mZGVmcy5oCiAKLSAgICBhY19mbl9jX2NoZWNrX2hlYWRlcl9tb25ncmVsICIkTElORU5PIiAiY3RocmVhZHMuaCIgImFjX2N2X2hlYWRlcl9jdGhyZWFkc19oIiAiJGFjX2luY2x1ZGVzX2RlZmF1bHQiCi1pZiB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9jdGhyZWFkc19oIiA9IHh5ZXM7IHRoZW4gOgotICAkYXNfZWNobyAiI2RlZmluZSBXSVRIX1RIUkVBRCAxIiA+PmNvbmZkZWZzLmgKLQotICAgICRhc19lY2hvICIjZGVmaW5lIENfVEhSRUFEUyAxIiA+PmNvbmZkZWZzLmgKLQotCi0kYXNfZWNobyAiI2RlZmluZSBIVVJEX0NfVEhSRUFEUyAxIiA+PmNvbmZkZWZzLmgKLQotICAgIExJQlM9IiRMSUJTIC1sdGhyZWFkcyIKLSAgICBUSFJFQURPQko9IlB5dGhvbi90aHJlYWQubyIKLWVsc2UKLQotICAgIGFjX2ZuX2NfY2hlY2tfaGVhZGVyX21vbmdyZWwgIiRMSU5FTk8iICJtYWNoL2N0aHJlYWRzLmgiICJhY19jdl9oZWFkZXJfbWFjaF9jdGhyZWFkc19oIiAiJGFjX2luY2x1ZGVzX2RlZmF1bHQiCi1pZiB0ZXN0ICJ4JGFjX2N2X2hlYWRlcl9tYWNoX2N0aHJlYWRzX2giID0geHllczsgdGhlbiA6Ci0gICRhc19lY2hvICIjZGVmaW5lIFdJVEhfVEhSRUFEIDEiID4+Y29uZmRlZnMuaAotCi0gICAgJGFzX2VjaG8gIiNkZWZpbmUgQ19USFJFQURTIDEiID4+Y29uZmRlZnMuaAotCi0KLSRhc19lY2hvICIjZGVmaW5lIE1BQ0hfQ19USFJFQURTIDEiID4+Y29uZmRlZnMuaAotCi0gICAgVEhSRUFET0JKPSJQeXRob24vdGhyZWFkLm8iCi1lbHNlCi0KICAgICAjIEp1c3QgbG9va2luZyBmb3IgcHRocmVhZF9jcmVhdGUgaW4gbGlicHRocmVhZCBpcyBub3QgZW5vdWdoOgogICAgICMgb24gSFAvVVgsIHB0aHJlYWQuaCByZW5hbWVzIHB0aHJlYWRfY3JlYXRlIHRvIGEgZGlmZmVyZW50IHN5bWJvbCBuYW1lLgogICAgICMgU28gd2UgcmVhbGx5IGhhdmUgdG8gaW5jbHVkZSBwdGhyZWFkLmgsIGFuZCB0aGVuIGxpbmsuCkBAIC04NzU4LDEyICs5NDk4LDYgQEAKIGZpCiBybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKICAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotZmkKLQotCi1maQotCi0KIAogICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHVzY29uZmlnIGluIC1sbXBjIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciB1c2NvbmZpZyBpbiAtbG1wYy4uLiAiID4mNjsgfQpAQCAtODg1NiwxNSArOTU5MCw2IEBACiBmaQogCiAgICAgZmkKLQotICAgIGlmIHRlc3QgIiRVU0VfVEhSRUFEX01PRFVMRSIgIT0gIiMiCi0gICAgdGhlbgotICAgICAgICAjIElmIHRoZSBhYm92ZSBjaGVja3MgZGlkbid0IGRpc2FibGUgdGhyZWFkcywgKGF0IGxlYXN0KSBPU0YxCi0gICAgICAgICMgbmVlZHMgdGhpcyAnLXRocmVhZHMnIGFyZ3VtZW50IGR1cmluZyBsaW5raW5nLgotICAgICAgICBjYXNlICRhY19zeXNfc3lzdGVtIGluCi0gICAgICAgIE9TRjEpIExETEFTVD0tdGhyZWFkczs7Ci0gICAgICAgIGVzYWMKLSAgICBmaQogZmkKIAogaWYgdGVzdCAiJHBvc2l4X3RocmVhZHMiID0gInllcyI7IHRoZW4KQEAgLTkzMDEsMTMgKzEwMDI2LDEzIEBACiBpZiB0ZXN0IC16ICIkd2l0aF9weW1hbGxvYyIKIHRoZW4KICAgICB3aXRoX3B5bWFsbG9jPSJ5ZXMiCi0gICAgQUJJRkxBR1M9IiR7QUJJRkxBR1N9bSIKIGZpCiBpZiB0ZXN0ICIkd2l0aF9weW1hbGxvYyIgIT0gIm5vIgogdGhlbgogCiAkYXNfZWNobyAiI2RlZmluZSBXSVRIX1BZTUFMTE9DIDEiID4+Y29uZmRlZnMuaAogCisgICAgQUJJRkxBR1M9IiR7QUJJRkxBR1N9bSIKIGZpCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHdpdGhfcHltYWxsb2MiID4mNQogJGFzX2VjaG8gIiR3aXRoX3B5bWFsbG9jIiA+JjY7IH0KQEAgLTk0MDUsMjQgKzEwMTMwLDM3IEBACiBlbHNlCiAJTUFDSERFUF9PQkpTPSIkTUFDSERFUF9PQkpTICRleHRyYV9tYWNoZGVwX29ianMiCiBmaQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IE1BQ0hERVBfT0JKUyIgPiY1Ci0kYXNfZWNobyAiTUFDSERFUF9PQkpTIiA+JjY7IH0KK2lmIHRlc3QgLXogIiRNQUNIREVQX09CSlMiOyB0aGVuCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBub25lIiA+JjUKKyRhc19lY2hvICJub25lIiA+JjY7IH0KK2Vsc2UKKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRNQUNIREVQX09CSlMiID4mNQorJGFzX2VjaG8gIiRNQUNIREVQX09CSlMiID4mNjsgfQorZmkKIAogIyBjaGVja3MgZm9yIGxpYnJhcnkgZnVuY3Rpb25zCiBmb3IgYWNfZnVuYyBpbiBhbGFybSBhY2NlcHQ0IHNldGl0aW1lciBnZXRpdGltZXIgYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQgY2hvd24gXAotIGNsb2NrIGNvbmZzdHIgY3Rlcm1pZCBleGVjdiBmY2htb2QgZmNob3duIGZvcmsgZnBhdGhjb25mIGZ0aW1lIGZ0cnVuY2F0ZSBcCi0gZ2FpX3N0cmVycm9yIGdldGdyb3VwcyBnZXRsb2dpbiBnZXRsb2FkYXZnIGdldHBlZXJuYW1lIGdldHBnaWQgZ2V0cGlkIFwKKyBjbG9jayBjb25mc3RyIGN0ZXJtaWQgZXhlY3YgZmFjY2Vzc2F0IGZjaG1vZCBmY2htb2RhdCBmY2hvd24gZmNob3duYXQgXAorIGZleGVjdmUgZmRvcGVuZGlyIGZvcmsgZnBhdGhjb25mIGZzdGF0YXQgZnRpbWUgZnRydW5jYXRlIGZ1dGltZXNhdCBcCisgZnV0aW1lbnMgZnV0aW1lcyBnYWlfc3RyZXJyb3IgXAorIGdldGdyb3VwbGlzdCBnZXRncm91cHMgZ2V0bG9naW4gZ2V0bG9hZGF2ZyBnZXRwZWVybmFtZSBnZXRwZ2lkIGdldHBpZCBcCiAgZ2V0cHJpb3JpdHkgZ2V0cmVzdWlkIGdldHJlc2dpZCBnZXRwd2VudCBnZXRzcG5hbSBnZXRzcGVudCBnZXRzaWQgZ2V0d2QgXAotIGluaXRncm91cHMga2lsbCBraWxscGcgbGNobW9kIGxjaG93biBsc3RhdCBtYnJ0b3djIG1rZmlmbyBta25vZCBta3RpbWUgXAotIG1yZW1hcCBuaWNlIHBhdGhjb25mIHBhdXNlIHBsb2NrIHBvbGwgcHRocmVhZF9pbml0IFwKLSBwdXRlbnYgcmVhZGxpbmsgcmVhbHBhdGggXAotIHNlbGVjdCBzZW1fb3BlbiBzZW1fdGltZWR3YWl0IHNlbV9nZXR2YWx1ZSBzZW1fdW5saW5rIHNldGVnaWQgc2V0ZXVpZCBcCi0gc2V0Z2lkIFwKLSBzZXRsb2NhbGUgc2V0cmVnaWQgc2V0cmV1aWQgc2V0cmVzdWlkIHNldHJlc2dpZCBzZXRzaWQgc2V0cGdpZCBzZXRwZ3JwIHNldHVpZCBzZXR2YnVmIFwKLSBzaWdhY3Rpb24gc2lnaW50ZXJydXB0IHNpZ3JlbHNlIHNucHJpbnRmIHN0cmZ0aW1lIHN0cmxjcHkgXAorIGlmX25hbWVpbmRleCBcCisgaW5pdGdyb3VwcyBraWxsIGtpbGxwZyBsY2htb2QgbGNob3duIGxvY2tmIGxpbmthdCBsc3RhdCBsdXRpbWVzIG1tYXAgXAorIG1lbXJjaHIgbWJydG93YyBta2RpcmF0IG1rZmlmbyBcCisgbWtmaWZvYXQgbWtub2QgbWtub2RhdCBta3RpbWUgbXJlbWFwIG5pY2Ugb3BlbmF0IHBhdGhjb25mIHBhdXNlIHBpcGUyIHBsb2NrIHBvbGwgXAorIHBvc2l4X2ZhbGxvY2F0ZSBwb3NpeF9mYWR2aXNlIHByZWFkIFwKKyBwdGhyZWFkX2luaXQgcHRocmVhZF9raWxsIHB1dGVudiBwd3JpdGUgcmVhZGxpbmsgcmVhZGxpbmthdCByZWFkdiByZWFscGF0aCByZW5hbWVhdCBcCisgc2VsZWN0IHNlbV9vcGVuIHNlbV90aW1lZHdhaXQgc2VtX2dldHZhbHVlIHNlbV91bmxpbmsgc2VuZGZpbGUgc2V0ZWdpZCBzZXRldWlkIFwKKyBzZXRnaWQgc2V0aG9zdG5hbWUgXAorIHNldGxvY2FsZSBzZXRyZWdpZCBzZXRyZXVpZCBzZXRyZXN1aWQgc2V0cmVzZ2lkIHNldHNpZCBzZXRwZ2lkIHNldHBncnAgc2V0cHJpb3JpdHkgc2V0dWlkIHNldHZidWYgXAorIHNjaGVkX2dldF9wcmlvcml0eV9tYXggc2NoZWRfc2V0YWZmaW5pdHkgc2NoZWRfc2V0c2NoZWR1bGVyIHNjaGVkX3NldHBhcmFtIFwKKyBzY2hlZF9ycl9nZXRfaW50ZXJ2YWwgXAorIHNpZ2FjdGlvbiBzaWdhbHRzdGFjayBzaWdpbnRlcnJ1cHQgc2lncGVuZGluZyBzaWdyZWxzZSBcCisgc2lndGltZWR3YWl0IHNpZ3dhaXQgc2lnd2FpdGluZm8gc25wcmludGYgc3RyZnRpbWUgc3RybGNweSBzeW1saW5rYXQgc3luYyBcCiAgc3lzY29uZiB0Y2dldHBncnAgdGNzZXRwZ3JwIHRlbXBuYW0gdGltZWdtIHRpbWVzIHRtcGZpbGUgdG1wbmFtIHRtcG5hbV9yIFwKLSB0cnVuY2F0ZSB1bmFtZSB1bnNldGVudiB1dGltZXMgd2FpdHBpZCB3YWl0MyB3YWl0NCBcCi0gd2NzY29sbCB3Y3NmdGltZSB3Y3N4ZnJtIF9nZXRwdHkKKyB0cnVuY2F0ZSB1bmFtZSB1bmxpbmthdCB1bnNldGVudiB1dGltZW5zYXQgdXRpbWVzIHdhaXRpZCB3YWl0cGlkIHdhaXQzIHdhaXQ0IFwKKyB3Y3Njb2xsIHdjc2Z0aW1lIHdjc3hmcm0gd3JpdGV2IF9nZXRwdHkKIGRvIDoKICAgYXNfYWNfdmFyPWAkYXNfZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCiBhY19mbl9jX2NoZWNrX2Z1bmMgIiRMSU5FTk8iICIkYWNfZnVuYyIgIiRhc19hY192YXIiCkBAIC05NjIyLDYgKzEwMzYwLDMxIEBACiAKIGZpCiBybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGVwb2xsX2NyZWF0ZTEiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGVwb2xsX2NyZWF0ZTEuLi4gIiA+JjY7IH0KK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKyNpbmNsdWRlIDxzeXMvZXBvbGwuaD4KK2ludAorbWFpbiAoKQorewordm9pZCAqeD1lcG9sbF9jcmVhdGUxCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKworJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9FUE9MTF9DUkVBVEUxIDEiID4+Y29uZmRlZnMuaAorCisgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKKyRhc19lY2hvICJ5ZXMiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0KKworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Iga3F1ZXVlIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGZvciBrcXVldWUuLi4gIiA+JjY7IH0KIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKQEAgLTEwNTk2LDYgKzExMzU5LDEyNSBAQAogZG9uZQogCiAKK2ZvciBhY19mdW5jIGluIGNsb2NrX2dldHRpbWUKK2RvIDoKKyAgYWNfZm5fY19jaGVja19mdW5jICIkTElORU5PIiAiY2xvY2tfZ2V0dGltZSIgImFjX2N2X2Z1bmNfY2xvY2tfZ2V0dGltZSIKK2lmIHRlc3QgIngkYWNfY3ZfZnVuY19jbG9ja19nZXR0aW1lIiA9IHh5ZXM7IHRoZW4gOgorICBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9GCisjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxCitfQUNFT0YKKworZWxzZQorCisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgY2xvY2tfZ2V0dGltZSBpbiAtbHJ0IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBjbG9ja19nZXR0aW1lIGluIC1scnQuLi4gIiA+JjY7IH0KK2lmICR7YWNfY3ZfbGliX3J0X2Nsb2NrX2dldHRpbWUrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCitMSUJTPSItbHJ0ICAkTElCUyIKK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCisgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIKKyNlbmRpZgorY2hhciBjbG9ja19nZXR0aW1lICgpOworaW50CittYWluICgpCit7CityZXR1cm4gY2xvY2tfZ2V0dGltZSAoKTsKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgorICBhY19jdl9saWJfcnRfY2xvY2tfZ2V0dGltZT15ZXMKK2Vsc2UKKyAgYWNfY3ZfbGliX3J0X2Nsb2NrX2dldHRpbWU9bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX3J0X2Nsb2NrX2dldHRpbWUiID4mNQorJGFzX2VjaG8gIiRhY19jdl9saWJfcnRfY2xvY2tfZ2V0dGltZSIgPiY2OyB9CitpZiB0ZXN0ICJ4JGFjX2N2X2xpYl9ydF9jbG9ja19nZXR0aW1lIiA9IHh5ZXM7IHRoZW4gOgorCisgICAgICAgICRhc19lY2hvICIjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUVElNRSAxIiA+PmNvbmZkZWZzLmgKKworCiskYXNfZWNobyAiI2RlZmluZSBUSU1FTU9EVUxFX0xJQiBydCIgPj5jb25mZGVmcy5oCisKKworZmkKKworCitmaQorZG9uZQorCisKK2ZvciBhY19mdW5jIGluIGNsb2NrX2dldHJlcworZG8gOgorICBhY19mbl9jX2NoZWNrX2Z1bmMgIiRMSU5FTk8iICJjbG9ja19nZXRyZXMiICJhY19jdl9mdW5jX2Nsb2NrX2dldHJlcyIKK2lmIHRlc3QgIngkYWNfY3ZfZnVuY19jbG9ja19nZXRyZXMiID0geHllczsgdGhlbiA6CisgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUgSEFWRV9DTE9DS19HRVRSRVMgMQorX0FDRU9GCisKK2Vsc2UKKworICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGNsb2NrX2dldHJlcyBpbiAtbHJ0IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBjbG9ja19nZXRyZXMgaW4gLWxydC4uLiAiID4mNjsgfQoraWYgJHthY19jdl9saWJfcnRfY2xvY2tfZ2V0cmVzKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUworTElCUz0iLWxydCAgJExJQlMiCitjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKKy8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgorICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCisgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiCisjZW5kaWYKK2NoYXIgY2xvY2tfZ2V0cmVzICgpOworaW50CittYWluICgpCit7CityZXR1cm4gY2xvY2tfZ2V0cmVzICgpOworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6CisgIGFjX2N2X2xpYl9ydF9jbG9ja19nZXRyZXM9eWVzCitlbHNlCisgIGFjX2N2X2xpYl9ydF9jbG9ja19nZXRyZXM9bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAorTElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUworZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX3J0X2Nsb2NrX2dldHJlcyIgPiY1CiskYXNfZWNobyAiJGFjX2N2X2xpYl9ydF9jbG9ja19nZXRyZXMiID4mNjsgfQoraWYgdGVzdCAieCRhY19jdl9saWJfcnRfY2xvY2tfZ2V0cmVzIiA9IHh5ZXM7IHRoZW4gOgorCisgICAgICAgICRhc19lY2hvICIjZGVmaW5lIEhBVkVfQ0xPQ0tfR0VUUkVTIDEiID4+Y29uZmRlZnMuaAorCisKK2ZpCisKKworZmkKK2RvbmUKKworCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWpvciIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFqb3IuLi4gIiA+JjY7IH0KIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKQEAgLTEwNjczLDcgKzExNTU1LDEyIEBACiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CiBlbHNlCiAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKworaWYgdGVzdCAiJHtlbmFibGVfaXB2NitzZXR9IiA9IHNldDsgdGhlbgorICBhY19jdl9idWdneV9nZXRhZGRyaW5mbz0ibm8gLS0gY29uZmlndXJlZCB3aXRoIC0tKGVufGRpcylhYmxlLWlwdjYiCitlbHNlCiAgIGFjX2N2X2J1Z2d5X2dldGFkZHJpbmZvPXllcworZmkKIGVsc2UKICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogLyogZW5kIGNvbmZkZWZzLmguICAqLwpAQCAtMTA3ODEsNyArMTE2NjgsNyBAQAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9idWdneV9nZXRhZGRyaW5mbyIgPiY1CiAkYXNfZWNobyAiJGFjX2N2X2J1Z2d5X2dldGFkZHJpbmZvIiA+JjY7IH0KIAotaWYgdGVzdCAkaGF2ZV9nZXRhZGRyaW5mbyA9IG5vIC1vICIkYWNfY3ZfYnVnZ3lfZ2V0YWRkcmluZm8iID0geWVzCitpZiB0ZXN0ICRoYXZlX2dldGFkZHJpbmZvID0gbm8gfHwgdGVzdCAiJGFjX2N2X2J1Z2d5X2dldGFkZHJpbmZvIiA9IHllcwogdGhlbgogCWlmIHRlc3QgJGlwdjYgPSB5ZXMKIAl0aGVuCkBAIC0xMTc1MCw2ICsxMjYzNyw0MCBAQAogZmkKIAogCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisjICogQ2hlY2sgZm9yIGdjYyB4NjQgaW5saW5lIGFzc2VtYmxlciAqCisjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIHg2NCBnY2MgaW5saW5lIGFzc2VtYmxlciIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgeDY0IGdjYyBpbmxpbmUgYXNzZW1ibGVyLi4uICIgPiY2OyB9CitjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgIF9fYXNtX18gX192b2xhdGlsZV9fICgibW92cSAlcmN4LCAlcmF4Iik7CisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorICBoYXZlX2djY19hc21fZm9yX3g2ND15ZXMKK2Vsc2UKKyAgaGF2ZV9nY2NfYXNtX2Zvcl94NjQ9bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkaGF2ZV9nY2NfYXNtX2Zvcl94NjQiID4mNQorJGFzX2VjaG8gIiRoYXZlX2djY19hc21fZm9yX3g2NCIgPiY2OyB9CitpZiB0ZXN0ICIkaGF2ZV9nY2NfYXNtX2Zvcl94NjQiID0geWVzCit0aGVuCisKKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfR0NDX0FTTV9GT1JfWDY0IDEiID4+Y29uZmRlZnMuaAorCitmaQorCiAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAjICogQ2hlY2sgZm9yIHZhcmlvdXMgcHJvcGVydGllcyBvZiBmbG9hdGluZyBwb2ludCAqCiAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMjAwMCw3ICsxMjkyMSw3IEBACiBmaQogZG9uZQogCi1mb3IgYWNfZnVuYyBpbiBoeXBvdCBsZ2FtbWEgbG9nMXAgcm91bmQgdGdhbW1hCitmb3IgYWNfZnVuYyBpbiBoeXBvdCBsZ2FtbWEgbG9nMXAgbG9nMiByb3VuZCB0Z2FtbWEKIGRvIDoKICAgYXNfYWNfdmFyPWAkYXNfZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCiBhY19mbl9jX2NoZWNrX2Z1bmMgIiRMSU5FTk8iICIkYWNfZnVuYyIgIiRhc19hY192YXIiCkBAIC0xMjQwNyw2NSArMTMzMjgsMTkgQEAKICRhc19lY2hvICIkYWNfY3Zfd2NoYXJfdF9zaWduZWQiID4mNjsgfQogZmkKIAoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGF0IHR5cGUgdG8gdXNlIGZvciBzdHIiID4mNQotJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hhdCB0eXBlIHRvIHVzZSBmb3Igc3RyLi4uICIgPiY2OyB9Ci0KLSMgQ2hlY2sgd2hldGhlciAtLXdpdGgtd2lkZS11bmljb2RlIHdhcyBnaXZlbi4KLWlmIHRlc3QgIiR7d2l0aF93aWRlX3VuaWNvZGUrc2V0fSIgPSBzZXQ7IHRoZW4gOgotICB3aXRodmFsPSR3aXRoX3dpZGVfdW5pY29kZTsKLWlmIHRlc3QgIiR3aXRodmFsIiAhPSBubwotdGhlbiB1bmljb2RlX3NpemU9IjQiCi1lbHNlIHVuaWNvZGVfc2l6ZT0iMiIKLWZpCi0KLWVsc2UKLQotY2FzZSAiJGhhdmVfdWNzNF90Y2wiIGluCi0gIHllcykgdW5pY29kZV9zaXplPSI0Ijs7Ci0gICopICAgdW5pY29kZV9zaXplPSIyIiA7OwotZXNhYwotCi1maQotCi0KLQotY2FzZSAiJHVuaWNvZGVfc2l6ZSIgaW4KLSAgNCkKLSAgICAgJGFzX2VjaG8gIiNkZWZpbmUgUHlfVU5JQ09ERV9TSVpFIDQiID4+Y29uZmRlZnMuaAotCi0gICAgIEFCSUZMQUdTPSIke0FCSUZMQUdTfXUiCi0gICAgIDs7Ci0gICopICRhc19lY2hvICIjZGVmaW5lIFB5X1VOSUNPREVfU0laRSAyIiA+PmNvbmZkZWZzLmgKLSA7OwotZXNhYwotCi0KLQogIyB3Y2hhcl90IGlzIG9ubHkgdXNhYmxlIGlmIGl0IG1hcHMgdG8gYW4gdW5zaWduZWQgdHlwZQotaWYgdGVzdCAiJHVuaWNvZGVfc2l6ZSIgPSAiJGFjX2N2X3NpemVvZl93Y2hhcl90IiBcCitpZiB0ZXN0ICIkYWNfY3Zfc2l6ZW9mX3djaGFyX3QiIC1nZSAyIFwKICAgICAgICAgICAtYSAiJGFjX2N2X3djaGFyX3Rfc2lnbmVkIiA9ICJubyIKIHRoZW4KLSAgUFlfVU5JQ09ERV9UWVBFPSJ3Y2hhcl90IgorICBIQVZFX1VTQUJMRV9XQ0hBUl9UPSJ5ZXMiCiAKICRhc19lY2hvICIjZGVmaW5lIEhBVkVfVVNBQkxFX1dDSEFSX1QgMSIgPj5jb25mZGVmcy5oCiAKLSAgJGFzX2VjaG8gIiNkZWZpbmUgUFlfVU5JQ09ERV9UWVBFIHdjaGFyX3QiID4+Y29uZmRlZnMuaAotCi1lbGlmIHRlc3QgIiRhY19jdl9zaXplb2Zfc2hvcnQiID0gIiR1bmljb2RlX3NpemUiCi10aGVuCi0gICAgIFBZX1VOSUNPREVfVFlQRT0idW5zaWduZWQgc2hvcnQiCi0gICAgICRhc19lY2hvICIjZGVmaW5lIFBZX1VOSUNPREVfVFlQRSB1bnNpZ25lZCBzaG9ydCIgPj5jb25mZGVmcy5oCi0KLWVsaWYgdGVzdCAiJGFjX2N2X3NpemVvZl9sb25nIiA9ICIkdW5pY29kZV9zaXplIgotdGhlbgotICAgICBQWV9VTklDT0RFX1RZUEU9InVuc2lnbmVkIGxvbmciCi0gICAgICRhc19lY2hvICIjZGVmaW5lIFBZX1VOSUNPREVfVFlQRSB1bnNpZ25lZCBsb25nIiA+PmNvbmZkZWZzLmgKLQogZWxzZQotICAgICBQWV9VTklDT0RFX1RZUEU9Im5vIHR5cGUgZm91bmQiCisgIEhBVkVfVVNBQkxFX1dDSEFSX1Q9Im5vIHVzYWJsZSB3Y2hhcl90IGZvdW5kIgogZmkKLXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkUFlfVU5JQ09ERV9UWVBFIiA+JjUKLSRhc19lY2hvICIkUFlfVU5JQ09ERV9UWVBFIiA+JjY7IH0KK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkSEFWRV9VU0FCTEVfV0NIQVJfVCIgPiY1CiskYXNfZWNobyAiJEhBVkVfVVNBQkxFX1dDSEFSX1QiID4mNjsgfQogCiAjIGNoZWNrIGZvciBlbmRpYW5uZXNzCiAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFuIiA+JjUKQEAgLTEyODQ4LDcgKzEzNzIzLDcgQEAKIHB5X2N2X2xpYl9yZWFkbGluZT1ubwogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gbGluayByZWFkbGluZSBsaWJzIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBsaW5rIHJlYWRsaW5lIGxpYnMuLi4gIiA+JjY7IH0KLWZvciBweV9saWJ0ZXJtY2FwIGluICIiIG5jdXJzZXN3IG5jdXJzZXMgY3Vyc2VzIHRlcm1jYXA7IGRvCitmb3IgcHlfbGlidGVybWNhcCBpbiAiIiB0aW5mbyBuY3Vyc2VzdyBuY3Vyc2VzIGN1cnNlcyB0ZXJtY2FwOyBkbwogICBpZiB0ZXN0IC16ICIkcHlfbGlidGVybWNhcCI7IHRoZW4KICAgICBSRUFETElORV9MSUJTPSItbHJlYWRsaW5lIgogICBlbHNlCkBAIC0xMzQ3OCw2ICsxNDM1Myw4IEBACiAKIGZpCiAKK2FjX3NhdmVfY3BwZmxhZ3M9IiRDUFBGTEFHUyIKK0NQUEZMQUdTPSIkQ1BQRkxBR1MgLUkvdXNyL2luY2x1ZGUvbmN1cnNlc3ciCiAjIE9uIEhQL1VYIDExLjAsIG12d2RlbGNoIGlzIGEgYmxvY2sgd2l0aCBhIHJldHVybiBzdGF0ZW1lbnQKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciBtdndkZWxjaCBpcyBhbiBleHByZXNzaW9uIiA+JjUKICRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgbXZ3ZGVsY2ggaXMgYW4gZXhwcmVzc2lvbi4uLiAiID4mNjsgfQpAQCAtMTM2MzEsMzUgKzE0NTA4LDc2IEBACiAKIGZpCiBybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKKyMgbGFzdCBjdXJzZXMgY29uZmlndXJlIGNoZWNrCitDUFBGTEFHUz0kYWNfc2F2ZV9jcHBmbGFncworCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBkZXZpY2UgZmlsZXMiID4mNQorJGFzX2VjaG8gIiRhc19tZTogY2hlY2tpbmcgZm9yIGRldmljZSBmaWxlcyIgPiY2O30KKworaWYgdGVzdCAieCRjcm9zc19jb21waWxpbmciID0geHllczsgdGhlbgorICBpZiB0ZXN0ICIke2FjX2N2X2ZpbGVfX2Rldl9wdG14K3NldH0iICE9IHNldDsgdGhlbgorICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIC9kZXYvcHRteCIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgL2Rldi9wdG14Li4uICIgPiY2OyB9CisgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vdCBzZXQiID4mNQorJGFzX2VjaG8gIm5vdCBzZXQiID4mNjsgfQorICAgIGFzX2ZuX2Vycm9yICQ/ICJzZXQgYWNfY3ZfZmlsZV9fZGV2X3B0bXggdG8geWVzL25vIGluIHlvdXIgQ09ORklHX1NJVEUgZmlsZSB3aGVuIGNyb3NzIGNvbXBpbGluZyIgIiRMSU5FTk8iIDUKKyAgZmkKKyAgaWYgdGVzdCAiJHthY19jdl9maWxlX19kZXZfcHRjK3NldH0iICE9IHNldDsgdGhlbgorICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIC9kZXYvcHRjIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAvZGV2L3B0Yy4uLiAiID4mNjsgfQorICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBub3Qgc2V0IiA+JjUKKyRhc19lY2hvICJub3Qgc2V0IiA+JjY7IH0KKyAgICBhc19mbl9lcnJvciAkPyAic2V0IGFjX2N2X2ZpbGVfX2Rldl9wdGMgdG8geWVzL25vIGluIHlvdXIgQ09ORklHX1NJVEUgZmlsZSB3aGVuIGNyb3NzIGNvbXBpbGluZyIgIiRMSU5FTk8iIDUKKyAgZmkKK2ZpCiAKIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIC9kZXYvcHRteCIgPiY1CiAkYXNfZWNob19uICJjaGVja2luZyBmb3IgL2Rldi9wdG14Li4uICIgPiY2OyB9CitpZiAke2FjX2N2X2ZpbGVfX2Rldl9wdG14Kzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgJiYKKyAgYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBjaGVjayBmb3IgZmlsZSBleGlzdGVuY2Ugd2hlbiBjcm9zcyBjb21waWxpbmciICIkTElORU5PIiA1CitpZiB0ZXN0IC1yICIvZGV2L3B0bXgiOyB0aGVuCisgIGFjX2N2X2ZpbGVfX2Rldl9wdG14PXllcworZWxzZQorICBhY19jdl9maWxlX19kZXZfcHRteD1ubworZmkKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2ZpbGVfX2Rldl9wdG14IiA+JjUKKyRhc19lY2hvICIkYWNfY3ZfZmlsZV9fZGV2X3B0bXgiID4mNjsgfQoraWYgdGVzdCAieCRhY19jdl9maWxlX19kZXZfcHRteCIgPSB4eWVzOyB0aGVuIDoKIAotaWYgdGVzdCAtciAvZGV2L3B0bXgKLXRoZW4KLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0kYXNfZWNobyAieWVzIiA+JjY7IH0KK2ZpCisKK2lmIHRlc3QgIngkYWNfY3ZfZmlsZV9fZGV2X3B0bXgiID0geHllczsgdGhlbgogCiAkYXNfZWNobyAiI2RlZmluZSBIQVZFX0RFVl9QVE1YIDEiID4+Y29uZmRlZnMuaAogCi1lbHNlCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0kYXNfZWNobyAibm8iID4mNjsgfQogZmkKLQogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgL2Rldi9wdGMiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC9kZXYvcHRjLi4uICIgPiY2OyB9CitpZiAke2FjX2N2X2ZpbGVfX2Rldl9wdGMrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgorZWxzZQorICB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllcyAmJgorICBhc19mbl9lcnJvciAkPyAiY2Fubm90IGNoZWNrIGZvciBmaWxlIGV4aXN0ZW5jZSB3aGVuIGNyb3NzIGNvbXBpbGluZyIgIiRMSU5FTk8iIDUKK2lmIHRlc3QgLXIgIi9kZXYvcHRjIjsgdGhlbgorICBhY19jdl9maWxlX19kZXZfcHRjPXllcworZWxzZQorICBhY19jdl9maWxlX19kZXZfcHRjPW5vCitmaQorZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfZmlsZV9fZGV2X3B0YyIgPiY1CiskYXNfZWNobyAiJGFjX2N2X2ZpbGVfX2Rldl9wdGMiID4mNjsgfQoraWYgdGVzdCAieCRhY19jdl9maWxlX19kZXZfcHRjIiA9IHh5ZXM7IHRoZW4gOgogCi1pZiB0ZXN0IC1yIC9kZXYvcHRjCi10aGVuCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotJGFzX2VjaG8gInllcyIgPiY2OyB9CitmaQorCitpZiB0ZXN0ICJ4JGFjX2N2X2ZpbGVfX2Rldl9wdGMiID0geHllczsgdGhlbgogCiAkYXNfZWNobyAiI2RlZmluZSBIQVZFX0RFVl9QVEMgMSIgPj5jb25mZGVmcy5oCiAKLWVsc2UKLSAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSRhc19lY2hvICJubyIgPiY2OyB9CiBmaQogCiBpZiB0ZXN0ICIkaGF2ZV9sb25nX2xvbmciID0geWVzCkBAIC0xMzY3MCw3ICsxNDU4OCwzNiBAQAogICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgogZWxzZQogICBpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6Ci0gIGFjX2N2X2hhdmVfbG9uZ19sb25nX2Zvcm1hdD1ubworICBhY19jdl9oYXZlX2xvbmdfbG9uZ19mb3JtYXQ9ImNyb3NzIC0tIGFzc3VtaW5nIG5vIgorICAgaWYgdGVzdCB4JEdDQyA9IHh5ZXM7IHRoZW4KKyAgICBzYXZlX0NGTEFHUz0kQ0ZMQUdTCisgICAgQ0ZMQUdTPSIkQ0ZMQUdTIC1XZXJyb3IgLVdmb3JtYXQiCisgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisgICAgICAgICNpbmNsdWRlIDxzdGRpby5oPgorICAgICAgICAjaW5jbHVkZSA8c3RkZGVmLmg+CisKK2ludAorbWFpbiAoKQoreworCisgICAgICBjaGFyICpidWZmZXI7CisgICAgICBzcHJpbnRmKGJ1ZmZlciwgIiVsbGQiLCAobG9uZyBsb25nKTEyMyk7CisgICAgICBzcHJpbnRmKGJ1ZmZlciwgIiVsbGQiLCAobG9uZyBsb25nKS0xMjMpOworICAgICAgc3ByaW50ZihidWZmZXIsICIlbGx1IiwgKHVuc2lnbmVkIGxvbmcgbG9uZykxMjMpOworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgYWNfY3ZfaGF2ZV9sb25nX2xvbmdfZm9ybWF0PXllcworCitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CisgICAgQ0ZMQUdTPSRzYXZlX0NGTEFHUworICAgZmkKIGVsc2UKICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAogLyogZW5kIGNvbmZkZWZzLmguICAqLwpAQCAtMTM4NTgsNDkgKzE0ODA1LDYgQEAKIAogZmkKIAoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyICRDQyBzdXBwb3J0cyBjb21wdXRlZCBnb3RvcyIgPiY1Ci0kYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDQyBzdXBwb3J0cyBjb21wdXRlZCBnb3Rvcy4uLiAiID4mNjsgfQotaWYgJHthY19jdl9jb21wdXRlZF9nb3Rvcys6fSBmYWxzZTsgdGhlbiA6Ci0gICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci1lbHNlCi0gIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKLSAgYWNfY3ZfY29tcHV0ZWRfZ290b3M9bm8KLWVsc2UKLSAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotLyogZW5kIGNvbmZkZWZzLmguICAqLwotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCi17Ci0gICAgc3RhdGljIHZvaWQgKnRhcmdldHNbMV0gPSB7ICYmTEFCRUwxIH07Ci0gICAgZ290byBMQUJFTDI7Ci1MQUJFTDE6Ci0gICAgcmV0dXJuIDA7Ci1MQUJFTDI6Ci0gICAgZ290byAqdGFyZ2V0c1swXTsKLSAgICByZXR1cm4gMTsKLX0KLQotX0FDRU9GCi1pZiBhY19mbl9jX3RyeV9ydW4gIiRMSU5FTk8iOyB0aGVuIDoKLSAgYWNfY3ZfY29tcHV0ZWRfZ290b3M9eWVzCi1lbHNlCi0gIGFjX2N2X2NvbXB1dGVkX2dvdG9zPW5vCi1maQotcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgXAotICBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LmJlYW0gY29uZnRlc3QuJGFjX2V4dAotZmkKLQotZmkKLQoteyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9jb21wdXRlZF9nb3RvcyIgPiY1Ci0kYXNfZWNobyAiJGFjX2N2X2NvbXB1dGVkX2dvdG9zIiA+JjY7IH0KLWlmIHRlc3QgIiRhY19jdl9jb21wdXRlZF9nb3RvcyIgPSB5ZXMKLXRoZW4KLQotJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9DT01QVVRFRF9HT1RPUyAxIiA+PmNvbmZkZWZzLmgKLQotZmkKLQogIyBDaGVjayBmb3IgLS13aXRoLWNvbXB1dGVkLWdvdG9zCiB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAtLXdpdGgtY29tcHV0ZWQtZ290b3MiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC0td2l0aC1jb21wdXRlZC1nb3Rvcy4uLiAiID4mNjsgfQpAQCAtMTM5MzEsNiArMTQ4MzUsNTIgQEAKIGZpCiAKIAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyICRDQyBzdXBwb3J0cyBjb21wdXRlZCBnb3RvcyIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICRDQyBzdXBwb3J0cyBjb21wdXRlZCBnb3Rvcy4uLiAiID4mNjsgfQoraWYgJHthY19jdl9jb21wdXRlZF9nb3Rvcys6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKyAgaWYgdGVzdCAiJHt3aXRoX2NvbXB1dGVkX2dvdG9zK3NldH0iID0gc2V0OyB0aGVuCisgICBhY19jdl9jb21wdXRlZF9nb3Rvcz0iJHdpdGhfY29tcHV0ZWRfZ290b3MgLS0gY29uZmlndXJlZCAtLXdpdGgob3V0KS1jb21wdXRlZC1nb3RvcyIKKyBlbHNlCisgICBhY19jdl9jb21wdXRlZF9nb3Rvcz1ubworIGZpCitlbHNlCisgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQoreworICAgIHN0YXRpYyB2b2lkICp0YXJnZXRzWzFdID0geyAmJkxBQkVMMSB9OworICAgIGdvdG8gTEFCRUwyOworTEFCRUwxOgorICAgIHJldHVybiAwOworTEFCRUwyOgorICAgIGdvdG8gKnRhcmdldHNbMF07CisgICAgcmV0dXJuIDE7Cit9CisKK19BQ0VPRgoraWYgYWNfZm5fY190cnlfcnVuICIkTElORU5PIjsgdGhlbiA6CisgIGFjX2N2X2NvbXB1dGVkX2dvdG9zPXllcworZWxzZQorICBhY19jdl9jb21wdXRlZF9nb3Rvcz1ubworZmkKK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKKyAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0ZXN0LiRhY19leHQKK2ZpCisKK2ZpCisKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfY29tcHV0ZWRfZ290b3MiID4mNQorJGFzX2VjaG8gIiRhY19jdl9jb21wdXRlZF9nb3RvcyIgPiY2OyB9CitjYXNlICIkYWNfY3ZfY29tcHV0ZWRfZ290b3MiIGluIHllcyopCisKKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQ09NUFVURURfR09UT1MgMSIgPj5jb25mZGVmcy5oCisKK2VzYWMKKwogY2FzZSAkYWNfc3lzX3N5c3RlbSBpbgogQUlYKikKIApAQCAtMTM5MzksMTggKzE0ODg5LDYgQEAKIGVzYWMKIAogCi1jYXNlICRhY19zeXNfc3lzdGVtIGluCi0gIE9TRiopIGFzX2ZuX2Vycm9yICQ/ICJPU0YqIHN5c3RlbXMgYXJlIGRlcHJlY2F0ZWQgdW5sZXNzIHNvbWVib2R5IHZvbHVudGVlcnMuIENoZWNrIGh0dHA6Ly9idWdzLnB5dGhvbi5vcmcvaXNzdWU4NjA2IiAiJExJTkVOTyIgNSA7OwotZXNhYwotCi1hY19mbl9jX2NoZWNrX2Z1bmMgIiRMSU5FTk8iICJwaXBlMiIgImFjX2N2X2Z1bmNfcGlwZTIiCi1pZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNfcGlwZTIiID0geHllczsgdGhlbiA6Ci0KLSRhc19lY2hvICIjZGVmaW5lIEhBVkVfUElQRTIgMSIgPj5jb25mZGVmcy5oCi0KLWZpCi0KLQogCiAKIGZvciBoIGluIGAoY2QgJHNyY2RpcjtlY2hvIFB5dGhvbi90aHJlYWRfKi5oKWAKQEAgLTEzOTcwLDYgKzE0OTA4LDEzNiBAQAogeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IGRvbmUiID4mNQogJGFzX2VjaG8gImRvbmUiID4mNjsgfQogCisjIEF2YWlsYWJpbGl0eSBvZiAtTzI6Cit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAtTzIiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIC1PMi4uLiAiID4mNjsgfQorc2F2ZWRfY2ZsYWdzPSIkQ0ZMQUdTIgorQ0ZMQUdTPSItTzIiCitjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMuaC4gICovCisKK2ludAorbWFpbiAoKQoreworCisKKyAgOworICByZXR1cm4gMDsKK30KK19BQ0VPRgoraWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgorICBoYXZlX08yPXllcworZWxzZQorICBoYXZlX08yPW5vCitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Cit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGhhdmVfTzIiID4mNQorJGFzX2VjaG8gIiRoYXZlX08yIiA+JjY7IH0KK0NGTEFHUz0iJHNhdmVkX2NmbGFncyIKKworIyBfRk9SVElGWV9TT1VSQ0Ugd3JhcHBlcnMgZm9yIG1lbW1vdmUgYW5kIGJjb3B5IGFyZSBpbmNvcnJlY3Q6CisjIGh0dHA6Ly9zb3VyY2V3YXJlLm9yZy9tbC9saWJjLWFscGhhLzIwMTAtMTIvbXNnMDAwMDkuaHRtbAoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZ2xpYmMgX0ZPUlRJRllfU09VUkNFL21lbW1vdmUgYnVnIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBnbGliYyBfRk9SVElGWV9TT1VSQ0UvbWVtbW92ZSBidWcuLi4gIiA+JjY7IH0KK3NhdmVkX2NmbGFncz0iJENGTEFHUyIKK0NGTEFHUz0iLU8yIC1EX0ZPUlRJRllfU09VUkNFPTIiCitpZiB0ZXN0ICIkaGF2ZV9PMiIgPSBubzsgdGhlbgorICAgIENGTEFHUz0iIgorZmkKK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuIDoKKyAgaGF2ZV9nbGliY19tZW1tb3ZlX2J1Zz11bmRlZmluZWQKK2Vsc2UKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KK3ZvaWQgZm9vKHZvaWQgKnAsIHZvaWQgKnEpIHsgbWVtbW92ZShwLCBxLCAxOSk7IH0KK2ludCBtYWluKCkgeworICBjaGFyIGFbMzJdID0gIjEyMzQ1Njc4OTAwMDAwMDAwMCI7CisgIGZvbygmYVs5XSwgYSk7CisgIGlmIChzdHJjbXAoYSwgIjEyMzQ1Njc4OTEyMzQ1Njc4OTAwMDAwMDAwMCIpICE9IDApCisgICAgcmV0dXJuIDE7CisgIGZvbyhhLCAmYVs5XSk7CisgIGlmIChzdHJjbXAoYSwgIjEyMzQ1Njc4OTAwMDAwMDAwMCIpICE9IDApCisgICAgcmV0dXJuIDE7CisgIHJldHVybiAwOworfQorCitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5X3J1biAiJExJTkVOTyI7IHRoZW4gOgorICBoYXZlX2dsaWJjX21lbW1vdmVfYnVnPW5vCitlbHNlCisgIGhhdmVfZ2xpYmNfbWVtbW92ZV9idWc9eWVzCitmaQorcm0gLWYgY29yZSAqLmNvcmUgY29yZS5jb25mdGVzdC4qIGdtb24ub3V0IGJiLm91dCBjb25mdGVzdCRhY19leGVleHQgXAorICBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LmJlYW0gY29uZnRlc3QuJGFjX2V4dAorZmkKKworQ0ZMQUdTPSIkc2F2ZWRfY2ZsYWdzIgoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRoYXZlX2dsaWJjX21lbW1vdmVfYnVnIiA+JjUKKyRhc19lY2hvICIkaGF2ZV9nbGliY19tZW1tb3ZlX2J1ZyIgPiY2OyB9CitpZiB0ZXN0ICIkaGF2ZV9nbGliY19tZW1tb3ZlX2J1ZyIgPSB5ZXM7IHRoZW4KKworJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9HTElCQ19NRU1NT1ZFX0JVRyAxIiA+PmNvbmZkZWZzLmgKKworZmkKKworaWYgdGVzdCAiJGhhdmVfZ2NjX2FzbV9mb3JfeDg3IiA9IHllczsgdGhlbgorICAgICMgU29tZSB2ZXJzaW9ucyBvZiBnY2MgbWlzY29tcGlsZSBpbmxpbmUgYXNtOgorICAgICMgaHR0cDovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD00NjQ5MQorICAgICMgaHR0cDovL2djYy5nbnUub3JnL21sL2djYy8yMDEwLTExL21zZzAwMzY2Lmh0bWwKKyAgICBjYXNlICRDQyBpbgorICAgICAgICAqZ2NjKikKKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGdjYyBpcGEtcHVyZS1jb25zdCBidWciID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGdjYyBpcGEtcHVyZS1jb25zdCBidWcuLi4gIiA+JjY7IH0KKyAgICAgICAgICAgIHNhdmVkX2NmbGFncz0iJENGTEFHUyIKKyAgICAgICAgICAgIENGTEFHUz0iLU8yIgorICAgICAgICAgICAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4gOgorICBoYXZlX2lwYV9wdXJlX2NvbnN0X2J1Zz11bmRlZmluZWQKK2Vsc2UKKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCisgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpIGludAorICAgICAgICAgICAgZm9vKGludCAqcCkgeworICAgICAgICAgICAgICBpbnQgcjsKKyAgICAgICAgICAgICAgYXNtICggIm1vdmwgXCQ2LCAoJTEpXG5cdCIKKyAgICAgICAgICAgICAgICAgICAgInhvcmwgJTAsICUwXG5cdCIKKyAgICAgICAgICAgICAgICAgICAgOiAiPXIiIChyKSA6ICJyIiAocCkgOiAibWVtb3J5IgorICAgICAgICAgICAgICApOworICAgICAgICAgICAgICByZXR1cm4gcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBtYWluKCkgeworICAgICAgICAgICAgICBpbnQgcCA9IDg7CisgICAgICAgICAgICAgIGlmICgoZm9vKCZwKSA/IDogcCkgIT0gNikKKyAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAgICB9CisKK19BQ0VPRgoraWYgYWNfZm5fY190cnlfcnVuICIkTElORU5PIjsgdGhlbiA6CisgIGhhdmVfaXBhX3B1cmVfY29uc3RfYnVnPW5vCitlbHNlCisgIGhhdmVfaXBhX3B1cmVfY29uc3RfYnVnPXllcworZmkKK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKKyAgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC5iZWFtIGNvbmZ0ZXN0LiRhY19leHQKK2ZpCisKKyAgICAgICAgICAgIENGTEFHUz0iJHNhdmVkX2NmbGFncyIKKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkaGF2ZV9pcGFfcHVyZV9jb25zdF9idWciID4mNQorJGFzX2VjaG8gIiRoYXZlX2lwYV9wdXJlX2NvbnN0X2J1ZyIgPiY2OyB9CisgICAgICAgICAgICBpZiB0ZXN0ICIkaGF2ZV9pcGFfcHVyZV9jb25zdF9idWciID0geWVzOyB0aGVuCisKKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfSVBBX1BVUkVfQ09OU1RfQlVHIDEiID4+Y29uZmRlZnMuaAorCisgICAgICAgICAgICBmaQorICAgICAgICA7OworICAgIGVzYWMKK2ZpCisKICMgZ2VuZXJhdGUgb3V0cHV0IGZpbGVzCiBhY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMgTWFrZWZpbGUucHJlIE1vZHVsZXMvU2V0dXAuY29uZmlnIE1pc2MvcHl0aG9uLnBjIgogCkBAIC0xNDQ5NCw3ICsxNTU2Miw3IEBACiAjIHJlcG9ydCBhY3R1YWwgaW5wdXQgdmFsdWVzIG9mIENPTkZJR19GSUxFUyBldGMuIGluc3RlYWQgb2YgdGhlaXIKICMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxpbmcuCiBhY19sb2c9IgotVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBweXRob24gJGFzX21lIDMuMiwgd2hpY2ggd2FzCitUaGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IHB5dGhvbiAkYXNfbWUgMy4zLCB3aGljaCB3YXMKIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42OC4gIEludm9jYXRpb24gY29tbWFuZCBsaW5lIHdhcwogCiAgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklMRVMKQEAgLTE0NTU2LDcgKzE1NjI0LDcgQEAKIGNhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQogYWNfY3NfY29uZmlnPSJgJGFzX2VjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvXiAvLzsgcy9bXFwiIlxgXCRdL1xcXFwmL2cnYCIKIGFjX2NzX3ZlcnNpb249IlxcCi1weXRob24gY29uZmlnLnN0YXR1cyAzLjIKK3B5dGhvbiBjb25maWcuc3RhdHVzIDMuMwogY29uZmlndXJlZCBieSAkMCwgZ2VuZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4LAogICB3aXRoIG9wdGlvbnMgXFwiXCRhY19jc19jb25maWdcXCIKIApAQCAtMTQ1NjcsNiArMTU2MzUsNyBAQAogYWNfcHdkPSckYWNfcHdkJwogc3JjZGlyPSckc3JjZGlyJwogSU5TVEFMTD0nJElOU1RBTEwnCitNS0RJUl9QPSckTUtESVJfUCcKIHRlc3QgLW4gIlwkQVdLIiB8fCBBV0s9YXdrCiBfQUNFT0YKIApAQCAtMTUxMzQsNiArMTYyMDMsMTEgQEAKICAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFMTCA7OwogICAqKSBhY19JTlNUQUxMPSRhY190b3BfYnVpbGRfcHJlZml4JElOU1RBTEwgOzsKICAgZXNhYworICBhY19NS0RJUl9QPSRNS0RJUl9QCisgIGNhc2UgJE1LRElSX1AgaW4KKyAgW1xcLyRdKiB8ID86W1xcL10qICkgOzsKKyAgKi8qKSBhY19NS0RJUl9QPSRhY190b3BfYnVpbGRfcHJlZml4JE1LRElSX1AgOzsKKyAgZXNhYwogX0FDRU9GCiAKIGNhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKQEAgLTE1MTg4LDYgKzE2MjYyLDcgQEAKIHMmQGFic19idWlsZGRpckAmJGFjX2Fic19idWlsZGRpciY7dCB0CiBzJkBhYnNfdG9wX2J1aWxkZGlyQCYkYWNfYWJzX3RvcF9idWlsZGRpciY7dCB0CiBzJkBJTlNUQUxMQCYkYWNfSU5TVEFMTCY7dCB0CitzJkBNS0RJUl9QQCYkYWNfTUtESVJfUCY7dCB0CiAkYWNfZGF0YXJvb3RkaXJfaGFjawogIgogZXZhbCBzZWQgXCJcJGFjX3NlZF9leHRyYVwiICIkYWNfZmlsZV9pbnB1dHMiIHwgJEFXSyAtZiAiJGFjX3RtcC9zdWJzLmF3ayIgXApkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IDEzOGQ1NjIuLmUzZjViOTYgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTMsMjIgKzMsNTkgQEAKIGRubCAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCiAjIFNldCBWRVJTSU9OIHNvIHdlIG9ubHkgbmVlZCB0byBlZGl0IGluIG9uZSBwbGFjZSAoaS5lLiwgaGVyZSkKLW00X2RlZmluZShQWVRIT05fVkVSU0lPTiwgMy4yKQorbTRfZGVmaW5lKFBZVEhPTl9WRVJTSU9OLCAzLjMpCiAKLWRubCBTb21lIG00IG1hZ2ljIHRvIGVuc3VyZSB0aGF0IHRoZSBjb25maWd1cmUgc2NyaXB0IGlzIGdlbmVyYXRlZAotZG5sIGJ5IHRoZSBjb3JyZWN0IGF1dG9jb25mIHZlcnNpb24uCi1tNF9kZWZpbmUoW3ZlcnNpb25fcmVxdWlyZWRdLAotW200X2lmKG00X3ZlcnNpb25fY29tcGFyZShtNF9kZWZuKFttNF9QQUNLQUdFX1ZFUlNJT05dKSwgWyQxXSksIDAsCi0gICAgICAgW10sCi0gICAgICAgW200X2ZhdGFsKFtBdXRvY29uZiB2ZXJzaW9uICQxIGlzIHJlcXVpcmVkIGZvciBQeXRob25dLCA2MyldKQotXSkKIEFDX1BSRVJFUSgyLjY1KQogCi1BQ19SRVZJU0lPTigkUmV2aXNpb24kKQogQUNfSU5JVChweXRob24sIFBZVEhPTl9WRVJTSU9OLCBodHRwOi8vYnVncy5weXRob24ub3JnLykKKworQUNfU1VCU1QoSEdWRVJTSU9OKQorQUNfU1VCU1QoSEdUQUcpCitBQ19TVUJTVChIR0JSQU5DSCkKKworaWYgdGVzdCAtZSAkc3JjZGlyLy5oZy9kaXJzdGF0ZQordGhlbgorQUNfQ0hFQ0tfUFJPRyhIQVNfSEcsIGhnLCBmb3VuZCwgbm90LWZvdW5kKQorZWxzZQorSEFTX0hHPW5vLXJlcG9zaXRvcnkKK2ZpCitpZiB0ZXN0ICRIQVNfSEcgPSBmb3VuZAordGhlbgorICAgIEhHVkVSU0lPTj0iaGcgaWQgLWkgXCQoc3JjZGlyKSIKKyAgICBIR1RBRz0iaGcgaWQgLXQgXCQoc3JjZGlyKSIKKyAgICBIR0JSQU5DSD0iaGcgaWQgLWIgXCQoc3JjZGlyKSIKK2Vsc2UKKyAgICBIR1ZFUlNJT049IiIKKyAgICBIR1RBRz0iIgorICAgIEhHQlJBTkNIPSIiCitmaQorCiBBQ19DT05GSUdfU1JDRElSKFtJbmNsdWRlL29iamVjdC5oXSkKIEFDX0NPTkZJR19IRUFERVIocHljb25maWcuaCkKIAorQUNfQ0FOT05JQ0FMX0hPU1QKKworaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBweXRob24gaW50ZXJwcmV0ZXIgZm9yIGNyb3NzIGJ1aWxkXSkKKyAgICBpZiB0ZXN0IC16ICIkUFlUSE9OX0ZPUl9CVUlMRCI7IHRoZW4KKyAgICAgICAgZm9yIGludGVycCBpbiBweXRob24kUEFDS0FHRV9WRVJTSU9OIHB5dGhvbjMgcHl0aG9uOyBkbworCSAgICB3aGljaCAkaW50ZXJwID4vZGV2L251bGwgMj4mMSB8fCBjb250aW51ZQorCSAgICBpZiAkaW50ZXJwIC1jICdpbXBvcnQgc3lzO3N5cy5leGl0KG5vdCBzeXMudmVyc2lvbl9pbmZvQDw6QDoyQDo+QCA+PSAoMywzKSknOyB0aGVuCisJICAgICAgICBicmVhaworCSAgICBmaQorICAgICAgICAgICAgaW50ZXJwPQorCWRvbmUKKyAgICAgICAgaWYgdGVzdCB4JGludGVycCA9IHg7IHRoZW4KKwkgICAgQUNfTVNHX0VSUk9SKFtweXRob24kUEFDS0FHRV9WRVJTSU9OIGludGVycHJldGVyIG5vdCBmb3VuZF0pCisJZmkKKyAgICAgICAgQUNfTVNHX1JFU1VMVCgkaW50ZXJwKQorCVBZVEhPTl9GT1JfQlVJTEQ9Il9QWVRIT05fUFJPSkVDVF9CQVNFPSRzcmNkaXIiJyBfUFlUSE9OX0hPU1RfUExBVEZPUk09JChfUFlUSE9OX0hPU1RfUExBVEZPUk0pIFBZVEhPTlBBVEg9JChzcmNkaXIpL0xpYjokKHNyY2RpcikvTGliL3BsYXQtJChNQUNIREVQKSAnJGludGVycAorICAgIGZpCitlbHNlCisgICAgUFlUSE9OX0ZPUl9CVUlMRD0nLi8kKEJVSUxEUFlUSE9OKSAtRScKK2ZpCitBQ19TVUJTVChQWVRIT05fRk9SX0JVSUxEKQorCiBkbmwgRW5zdXJlIHRoYXQgaWYgcHJlZml4IGlzIHNwZWNpZmllZCwgaXQgZG9lcyBub3QgZW5kIGluIGEgc2xhc2guIElmCiBkbmwgaXQgZG9lcywgd2UgZ2V0IHBhdGggbmFtZXMgY29udGFpbmluZyAnLy8nIHdoaWNoIGlzIGJvdGggdWdseSBhbmQKIGRubCBjYW4gY2F1c2UgdHJvdWJsZS4KQEAgLTg4LDE0ICsxMjUsMjAgQEAKIAogQUNfTVNHX0NIRUNLSU5HKFtmb3IgLS1lbmFibGUtdW5pdmVyc2Fsc2RrXSkKIEFDX0FSR19FTkFCTEUodW5pdmVyc2Fsc2RrLAotCUFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS11bml2ZXJzYWxzZGtAPDpAPVNES0RJUkA6PkBdLCBbQnVpbGQgYWdhaW5zdCBNYWMgT1MgWCAxMC40dSBTREsgKHBwYy9pMzg2KV0pLAorCUFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS11bml2ZXJzYWxzZGtAPDpAPVNES0RJUkA6PkBdLCBbQnVpbGQgZmF0IGJpbmFyeSBhZ2FpbnN0IE1hYyBPUyBYIFNES10pLAogWwogCWNhc2UgJGVuYWJsZXZhbCBpbgogCXllcykKLQkJZW5hYmxldmFsPS9EZXZlbG9wZXIvU0RLcy9NYWNPU1gxMC40dS5zZGsKLQkJaWYgdGVzdCAhIC1kICIke2VuYWJsZXZhbH0iCisJCSMgTG9jYXRlIHRoZSBiZXN0IHVzYWJsZSBTREssIHNlZSBNYWMvUkVBRE1FLnR4dCBmb3IgbW9yZQorCQkjIGluZm9ybWF0aW9uCisJCWVuYWJsZXZhbD0iYC91c3IvYmluL3hjb2RlYnVpbGQgLXZlcnNpb24gLXNkayBtYWNvc3ggUGF0aCAyPi9kZXYvbnVsbGAiCisJCWlmIHRlc3QgLXogIiR7ZW5hYmxldmFsfSIKIAkJdGhlbgotCQkJZW5hYmxldmFsPS8KKwkJCWVuYWJsZXZhbD0vRGV2ZWxvcGVyL1NES3MvTWFjT1NYMTAuNHUuc2RrCisJCQlpZiB0ZXN0ICEgLWQgIiR7ZW5hYmxldmFsfSIKKwkJCXRoZW4KKwkJCQllbmFibGV2YWw9LworCQkJZmkKIAkJZmkKIAkJOzsKIAllc2FjCkBAIC0xMjcsNyArMTcwLDIwIEBACiAKIEFDX1NVQlNUKEFSQ0hfUlVOXzMyQklUKQogCisjIEZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHJlYXNvbnMgd2UgcHJlZmVyIHRvIHNlbGVjdCAnMzItYml0JyBpZiBhdmFpbGFibGUsCisjIG90aGVyd2lzZSB1c2UgJ2ludGVsJwogVU5JVkVSU0FMX0FSQ0hTPSIzMi1iaXQiCitpZiB0ZXN0ICJgdW5hbWUgLXNgIiA9ICJEYXJ3aW4iCit0aGVuCisJaWYgdGVzdCAtbiAiJHtVTklWRVJTQUxTREt9IgorCXRoZW4KKwkJaWYgdGVzdCAteiAiYC91c3IvYmluL2ZpbGUgIiR7VU5JVkVSU0FMU0RLfS91c3IvbGliL2xpYlN5c3RlbS5keWxpYiIgfCBncmVwIHBwY2AiCisJCXRoZW4KKwkJCVVOSVZFUlNBTF9BUkNIUz0iaW50ZWwiCisJCWZpCisJZmkKK2ZpCisKIEFDX1NVQlNUKExJUE9fMzJCSVRfRkxBR1MpCiBBQ19NU0dfQ0hFQ0tJTkcoZm9yIC0td2l0aC11bml2ZXJzYWwtYXJjaHMpCiBBQ19BUkdfV0lUSCh1bml2ZXJzYWwtYXJjaHMsCkBAIC0xMzcsNyArMTkzLDcgQEAKIAlVTklWRVJTQUxfQVJDSFM9IiR3aXRodmFsIgogXSwKIFsKLSAJQUNfTVNHX1JFU1VMVCgzMi1iaXQpCisgCUFDX01TR19SRVNVTFQoJHtVTklWRVJTQUxfQVJDSFN9KQogXSkKIAogCkBAIC0yNzYsNiArMzMyLDI1IEBACiBBQ19NU0dfQ0hFQ0tJTkcoTUFDSERFUCkKIGlmIHRlc3QgLXogIiRNQUNIREVQIgogdGhlbgorICAgICMgYXZvaWQgdXNpbmcgdW5hbWUgZm9yIGNyb3NzIGJ1aWxkcworICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisgICAgICAgIyBhY19zeXNfc3lzdGVtIGFuZCBhY19zeXNfcmVsZWFzZSBhcmUgb25seSB1c2VkIGZvciBzZXR0aW5nCisgICAgICAgIyBgZGVmaW5lX3hvcGVuX3NvdXJjZScgaW4gdGhlIGNhc2Ugc3RhdGVtZW50IGJlbG93LiBGb3IgdGhlCisgICAgICAgIyBjdXJyZW50IHN1cHBvcnRlZCBjcm9zcyBidWlsZHMsIHRoaXMgbWFjcm8gaXMgbm90IGFkanVzdGVkLgorCWNhc2UgIiRob3N0IiBpbgorCSotKi1saW51eCopCisJCWFjX3N5c19zeXN0ZW09TGludXgKKwkJOzsKKwkqLSotY3lnd2luKikKKwkJYWNfc3lzX3N5c3RlbT1DeWd3aW4KKwkJOzsKKwkqKQorCQkjIGZvciBub3csIGxpbWl0IGNyb3NzIGJ1aWxkcyB0byBrbm93biBjb25maWd1cmF0aW9ucworCQlNQUNIREVQPSJ1bmtub3duIgorCQlBQ19NU0dfRVJST1IoW2Nyb3NzIGJ1aWxkIG5vdCBzdXBwb3J0ZWQgZm9yICRob3N0XSkKKwllc2FjCisJYWNfc3lzX3JlbGVhc2U9CisgICAgZWxzZQogCWFjX3N5c19zeXN0ZW09YHVuYW1lIC1zYAogCWlmIHRlc3QgIiRhY19zeXNfc3lzdGVtIiA9ICJBSVgiIFwKIAktbyAiJGFjX3N5c19zeXN0ZW0iID0gIlVuaXhXYXJlIiAtbyAiJGFjX3N5c19zeXN0ZW0iID0gIk9wZW5VTklYIjsgdGhlbgpAQCAtMjgzLDE5ICszNTgsNDMgQEAKIAllbHNlCiAJCWFjX3N5c19yZWxlYXNlPWB1bmFtZSAtcmAKIAlmaQotCWFjX21kX3N5c3RlbT1gZWNobyAkYWNfc3lzX3N5c3RlbSB8Ci0JCQkgICB0ciAtZCAnWy8gXScgfCB0ciAnW1tBLVpdXScgJ1tbYS16XV0nYAotCWFjX21kX3JlbGVhc2U9YGVjaG8gJGFjX3N5c19yZWxlYXNlIHwKLQkJCSAgIHRyIC1kICdbLyBdJyB8IHNlZCAncy9eW1tBLVpdXVwuLy8nIHwgc2VkICdzL1wuLiovLydgCi0JTUFDSERFUD0iJGFjX21kX3N5c3RlbSRhY19tZF9yZWxlYXNlIgorICAgIGZpCisgICAgYWNfbWRfc3lzdGVtPWBlY2hvICRhY19zeXNfc3lzdGVtIHwKKwkJCXRyIC1kICdbLyBdJyB8IHRyICdbW0EtWl1dJyAnW1thLXpdXSdgCisgICAgYWNfbWRfcmVsZWFzZT1gZWNobyAkYWNfc3lzX3JlbGVhc2UgfAorCQkJdHIgLWQgJ1svIF0nIHwgc2VkICdzL15bW0EtWl1dXC4vLycgfCBzZWQgJ3MvXC4uKi8vJ2AKKyAgICBNQUNIREVQPSIkYWNfbWRfc3lzdGVtJGFjX21kX3JlbGVhc2UiCiAKLQljYXNlICRNQUNIREVQIGluCi0JbGludXgqKSBNQUNIREVQPSJsaW51eDIiOzsKKyAgICBjYXNlICRNQUNIREVQIGluCisJbGludXgqKSBNQUNIREVQPSJsaW51eCI7OwogCWN5Z3dpbiopIE1BQ0hERVA9ImN5Z3dpbiI7OwogCWRhcndpbiopIE1BQ0hERVA9ImRhcndpbiI7OwotICAgICAgICBpcml4NjQ2KSBNQUNIREVQPSJpcml4NiI7OworCWlyaXg2NDYpIE1BQ0hERVA9ImlyaXg2Ijs7CiAJJycpCU1BQ0hERVA9InVua25vd24iOzsKKyAgICBlc2FjCitmaQorCitBQ19TVUJTVChfUFlUSE9OX0hPU1RfUExBVEZPUk0pCitpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbgorCWNhc2UgIiRob3N0IiBpbgorCSotKi1saW51eCopCisJCWNhc2UgIiRob3N0X2NwdSIgaW4KKwkJYXJtKikKKwkJCV9ob3N0X2NwdT1hcm0KKwkJCTs7CisJCSopCisJCQlfaG9zdF9jcHU9JGhvc3RfY3B1CisJCWVzYWMKKwkJOzsKKwkqLSotY3lnd2luKikKKwkJX2hvc3RfY3B1PQorCQk7OworCSopCisJCSMgZm9yIG5vdywgbGltaXQgY3Jvc3MgYnVpbGRzIHRvIGtub3duIGNvbmZpZ3VyYXRpb25zCisJCU1BQ0hERVA9InVua25vd24iCisJCUFDX01TR19FUlJPUihbY3Jvc3MgYnVpbGQgbm90IHN1cHBvcnRlZCBmb3IgJGhvc3RdKQogCWVzYWMKKwlfUFlUSE9OX0hPU1RfUExBVEZPUk09IiRNQUNIREVQJHtfaG9zdF9jcHU6Ky0kX2hvc3RfY3B1fSIKIGZpCiAJCiAjIFNvbWUgc3lzdGVtcyBjYW5ub3Qgc3RhbmQgX1hPUEVOX1NPVVJDRSBiZWluZyBkZWZpbmVkIGF0IGFsbDsgdGhleQpAQCAtMzgzLDcgKzQ4Miw4IEBACiAKIGlmIHRlc3QgJGRlZmluZV94b3Blbl9zb3VyY2UgPSB5ZXMKIHRoZW4KLSAgQUNfREVGSU5FKF9YT1BFTl9TT1VSQ0UsIDYwMCwgCisgICMgWC9PcGVuIDcsIGluY29ycG9yYXRpbmcgUE9TSVguMS0yMDA4CisgIEFDX0RFRklORShfWE9QRU5fU09VUkNFLCA3MDAsCiAgICAgICAgICAgICBEZWZpbmUgdG8gdGhlIGxldmVsIG9mIFgvT3BlbiB0aGF0IHlvdXIgc3lzdGVtIHN1cHBvcnRzKQogCiAgICMgT24gVHJ1NjQgVW5peCA0LjBGLCBkZWZpbmluZyBfWE9QRU5fU09VUkNFIGFsc28gcmVxdWlyZXMKQEAgLTM5Myw4ICs0OTMsNyBAQAogICBBQ19ERUZJTkUoX1hPUEVOX1NPVVJDRV9FWFRFTkRFRCwgMSwKICAgIAkgICAgRGVmaW5lIHRvIGFjdGl2YXRlIFVuaXg5NS1hbmQtZWFybGllciBmZWF0dXJlcykKIAotICBBQ19ERUZJTkUoX1BPU0lYX0NfU09VUkNFLCAyMDAxMTJMLCBEZWZpbmUgdG8gYWN0aXZhdGUgZmVhdHVyZXMgZnJvbSBJRUVFIFN0ZHMgMTAwMy4xLTIwMDEpCi0gIAorICBBQ19ERUZJTkUoX1BPU0lYX0NfU09VUkNFLCAyMDA4MDlMLCBEZWZpbmUgdG8gYWN0aXZhdGUgZmVhdHVyZXMgZnJvbSBJRUVFIFN0ZHMgMTAwMy4xLTIwMDgpCiBmaQogCiAjCkBAIC00MjMsMTAgKzUyMiw2IEBACiBDT05GSUdVUkVfTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUPQogRVhQT1JUX01BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVD0nIycKIAotQUNfTVNHX0NIRUNLSU5HKG1hY2hpbmUgdHlwZSBhcyByZXBvcnRlZCBieSB1bmFtZSAtbSkKLWFjX3N5c19tYWNoaW5lPWB1bmFtZSAtbWAKLUFDX01TR19SRVNVTFQoJGFjX3N5c19tYWNoaW5lKQotCiAjIGNoZWNrcyBmb3IgYWx0ZXJuYXRpdmUgcHJvZ3JhbXMKIAogIyBjb21waWxlciBmbGFncyBhcmUgZ2VuZXJhdGVkIGluIHR3byBzZXRzLCBCQVNFQ0ZMQUdTIGFuZCBPUFQuICBPUFQgaXMganVzdApAQCAtNDY5LDYgKzU2NCw2MyBAQAogaWYgdGVzdCAteiAiJENGTEFHUyI7IHRoZW4KICAgICAgICAgQ0ZMQUdTPQogZmkKKworaWYgdGVzdCAiJGFjX3N5c19zeXN0ZW0iID0gIkRhcndpbiIKK3RoZW4KKwkjIENvbXBpbGVyIHNlbGVjdGlvbiBvbiBNYWNPU1ggaXMgbW9yZSBjb21wbGljYXRlZCB0aGFuCisJIyBBQ19QUk9HX0NDIGNhbiBoYW5kbGUsIHNlZSBNYWMvUkVBRE1FLnR4dCBmb3IgbW9yZQorCSMgaW5mb3JtYXRpb24KKwlpZiB0ZXN0IC16ICIke0NDfSIKKwl0aGVuCisJCWZvdW5kX2djYz0KKwkJZm91bmRfY2xhbmc9CisJCWFzX3NhdmVfSUZTPSRJRlM7IElGUz06CisJCWZvciBhc19kaXIgaW4gJFBBVEgKKwkJZG8KKwkJCUlGUz0kYXNfc2F2ZV9JRlMKKwkJCWlmIHRlc3QgLXggJGFzX2Rpci9nY2M7IHRoZW4KKwkJCQlpZiB0ZXN0IC16ICIke2ZvdW5kX2djY30iOyB0aGVuCisJCQkJCWZvdW5kX2djYz0kYXNfZGlyL2djYworCQkJCWZpCisJCQlmaQorCQkJaWYgdGVzdCAteCAkYXNfZGlyL2NsYW5nOyB0aGVuCisJCQkJaWYgdGVzdCAteiAiJHtmb3VuZF9jbGFuZ30iOyB0aGVuCisJCQkJCWZvdW5kX2NsYW5nPSRhc19kaXIvY2xhbmcKKwkJCQlmaQorCQkJZmkKKwkJZG9uZQorCQlJRlM9JGFzX3NhdmVfSUZTCisKKwkJaWYgdGVzdCAtbiAiJGZvdW5kX2djYyIgLWEgLW4gIiRmb3VuZF9jbGFuZyIKKwkJdGhlbgorCQkJaWYgdGVzdCAtbiAiYCIkZm91bmRfZ2NjIiAtLXZlcnNpb24gfCBncmVwIGxsdm0tZ2NjYCIKKwkJCXRoZW4KKwkJCQlBQ19NU0dfTk9USUNFKFtEZXRlY3RlZCBsbHZtLWdjYywgZmFsbGluZyBiYWNrIHRvIGNsYW5nXSkKKwkJCQlDQz0iJGZvdW5kX2NsYW5nIgorCQkJCUNYWD0iJGZvdW5kX2NsYW5nKysiCisJCQlmaQorCisKKwkJZWxpZiB0ZXN0IC16ICIkZm91bmRfZ2NjIiAtYSAtbiAiJGZvdW5kX2NsYW5nIgorCQl0aGVuCisJCQlBQ19NU0dfTk9USUNFKFtObyBHQ0MgZm91bmQsIHVzZSBDTEFOR10pCisJCQlDQz0iJGZvdW5kX2NsYW5nIgorCQkJQ1hYPSIkZm91bmRfY2xhbmcrKyIKKworCQllbGlmIHRlc3QgLXogIiRmb3VuZF9nY2MiIC1hIC16ICIkZm91bmRfY2xhbmciCisJCXRoZW4KKwkJCWZvdW5kX2NsYW5nPWAvdXNyL2Jpbi94Y3J1biAtZmluZCBjbGFuZyAyPi9kZXYvbnVsbGAKKwkJCWlmIHRlc3QgLW4gIiR7Zm91bmRfY2xhbmd9IgorCQkJdGhlbgorCQkJCUFDX01TR19OT1RJQ0UoW1VzaW5nIGNsYW5nIGZyb20gWGNvZGUuYXBwXSkKKwkJCQlDQz0iJHtmb3VuZF9jbGFuZ30iCisJCQkJQ1hYPSJgL3Vzci9iaW4veGNydW4gLWZpbmQgY2xhbmcrK2AiCisKKwkJCSMgZWxzZTogdXNlIGRlZmF1bHQgYmVoYXZpb3VyCisJCQlmaQorCQlmaQorCWZpCitmaQogQUNfUFJPR19DQwogCiBBQ19TVUJTVChDWFgpCkBAIC01MDAsOCArNjUyLDkgQEAKIGlmIHRlc3QgLXogIiRDWFgiCiB0aGVuCiAgICAgICAgIGNhc2UgIiRDQyIgaW4KLSAgICAgICAgZ2NjKSAgICBBQ19QQVRIX1BST0coQ1hYLCBbZysrXSwgW2crK10sIFtub3Rmb3VuZF0pIDs7Ci0gICAgICAgIGNjKSAgICAgQUNfUEFUSF9QUk9HKENYWCwgW2MrK10sIFtjKytdLCBbbm90Zm91bmRdKSA7OworICAgICAgICBnY2MpICAgIEFDX1BBVEhfVE9PTChDWFgsIFtnKytdLCBbZysrXSwgW25vdGZvdW5kXSkgOzsKKyAgICAgICAgY2MpICAgICBBQ19QQVRIX1RPT0woQ1hYLCBbYysrXSwgW2MrK10sIFtub3Rmb3VuZF0pIDs7CisgICAgICAgIGNsYW5nfCovY2xhbmcpICAgICBBQ19QQVRIX1RPT0woQ1hYLCBbY2xhbmcrK10sIFtjbGFuZysrXSwgW25vdGZvdW5kXSkgOzsKICAgICAgICAgZXNhYwogCWlmIHRlc3QgIiRDWFgiID0gIm5vdGZvdW5kIgogCXRoZW4KQEAgLTUxMCw3ICs2NjMsNyBAQAogZmkKIGlmIHRlc3QgLXogIiRDWFgiCiB0aGVuCi0JQUNfQ0hFQ0tfUFJPR1MoQ1hYLCAkQ0NDIGMrKyBnKysgZ2NjIENDIGN4eCBjYysrIGNsLCBub3Rmb3VuZCkKKwlBQ19DSEVDS19UT09MUyhDWFgsICRDQ0MgYysrIGcrKyBnY2MgQ0MgY3h4IGNjKysgY2wsIG5vdGZvdW5kKQogCWlmIHRlc3QgIiRDWFgiID0gIm5vdGZvdW5kIgogCXRoZW4KIAkJQ1hYPSIiCkBAIC03MDQsMjIgKzg1NywyMyBAQAogCiBBQ19NU0dfQ0hFQ0tJTkcoZm9yIC0tZW5hYmxlLXByb2ZpbGluZykKIEFDX0FSR19FTkFCTEUocHJvZmlsaW5nLAotICAgICAgICAgICAgICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtcHJvZmlsaW5nXSwgW2VuYWJsZSBDLWxldmVsIGNvZGUgcHJvZmlsaW5nXSksCi1bYWNfc2F2ZV9jYz0iJENDIgotIENDPSIkQ0MgLXBnIgotIEFDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbaW50IG1haW4oKSB7IHJldHVybiAwOyB9XV0pXSwKLSAgIFthY19lbmFibGVfcHJvZmlsaW5nPSJ5ZXMiXSwKLSAgIFthY19lbmFibGVfcHJvZmlsaW5nPSJubyJdLAotICAgW2FjX2VuYWJsZV9wcm9maWxpbmc9Im5vIl0pCi0gQ0M9IiRhY19zYXZlX2NjIl0pCi1BQ19NU0dfUkVTVUxUKCRhY19lbmFibGVfcHJvZmlsaW5nKQorICAgICAgICAgICAgICBBU19IRUxQX1NUUklORyhbLS1lbmFibGUtcHJvZmlsaW5nXSwgW2VuYWJsZSBDLWxldmVsIGNvZGUgcHJvZmlsaW5nXSkpCitpZiB0ZXN0ICJ4JGVuYWJsZV9wcm9maWxpbmciID0geHllczsgdGhlbgorICBhY19zYXZlX2NjPSIkQ0MiCisgIENDPSIkKENDKSAtcGciCisgIEFDX0xJTktfSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbW2ludCBtYWluKCkgeyByZXR1cm4gMDsgfV1dKV0sCisgICAgW10sCisgICAgW2VuYWJsZV9wcm9maWxpbmc9bm9dKQorICBDQz0iJGFjX3NhdmVfY2MiCitlbHNlCisgIGVuYWJsZV9wcm9maWxpbmc9bm8KK2ZpCitBQ19NU0dfUkVTVUxUKCRlbmFibGVfcHJvZmlsaW5nKQogCi1jYXNlICIkYWNfZW5hYmxlX3Byb2ZpbGluZyIgaW4KLSAgICAieWVzIikKLQlCQVNFQ0ZMQUdTPSItcGcgJEJBU0VDRkxBR1MiCi0JTERGTEFHUz0iLXBnICRMREZMQUdTIgotICAgIDs7Ci1lc2FjCitpZiB0ZXN0ICJ4JGVuYWJsZV9wcm9maWxpbmciID0geHllczsgdGhlbgorICBCQVNFQ0ZMQUdTPSItcGcgJEJBU0VDRkxBR1MiCisgIExERkxBR1M9Ii1wZyAkTERGTEFHUyIKK2ZpCiAKIEFDX01TR19DSEVDS0lORyhMRExJQlJBUlkpCiAKQEAgLTc4MywxMSArOTM3LDYgQEAKIAkgIEJMRExJQlJBUlk9Jy1XbCwrYiwkKExJQkRJUikgLUwuIC1scHl0aG9uJChMRFZFUlNJT04pJwogCSAgUlVOU0hBUkVEPVNITElCX1BBVEg9YHB3ZGA6JHtTSExJQl9QQVRIfQogCSAgOzsKLSAgICBPU0YqKQotCSAgTERMSUJSQVJZPSdsaWJweXRob24kKExEVkVSU0lPTikuc28nCi0JICBCTERMSUJSQVJZPSctcnBhdGggJChMSUJESVIpIC1MLiAtbHB5dGhvbiQoTERWRVJTSU9OKScKLQkgIFJVTlNIQVJFRD1MRF9MSUJSQVJZX1BBVEg9YHB3ZGA6JHtMRF9MSUJSQVJZX1BBVEh9Ci0JICA7OwogICAgIERhcndpbiopCiAgICAgCUxETElCUkFSWT0nbGlicHl0aG9uJChMRFZFUlNJT04pLmR5bGliJwogCUJMRExJQlJBUlk9Jy1MLiAtbHB5dGhvbiQoTERWRVJTSU9OKScKQEAgLTgwOCwxMSArOTU3LDE1IEBACiAgIGVzYWMKIGZpCiAKK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0aGVuCisJUlVOU0hBUkVEPQorZmkKKwogQUNfTVNHX1JFU1VMVCgkTERMSUJSQVJZKQogCiBBQ19QUk9HX1JBTkxJQgogQUNfU1VCU1QoQVIpCi1BQ19DSEVDS19QUk9HUyhBUiwgYXIgYWFsLCBhcikKK0FDX0NIRUNLX1RPT0xTKEFSLCBhciBhYWwsIGFyKQogCiAjIHR3ZWFrIEFSRkxBR1Mgb25seSBpZiB0aGUgdXNlciBkaWRuJ3Qgc2V0IGl0IG9uIHRoZSBjb21tYW5kIGxpbmUKIEFDX1NVQlNUKEFSRkxBR1MpCkBAIC04MjEsMzUgKzk3NCwxNSBAQAogICAgICAgICBBUkZMQUdTPSJyYyIKIGZpCiAKLUFDX1NVQlNUKFNWTlZFUlNJT04pCi1BQ19DSEVDS19QUk9HKFNWTlZFUlNJT04sIHN2bnZlcnNpb24sIGZvdW5kLCBub3QtZm91bmQpCi1pZiB0ZXN0ICRTVk5WRVJTSU9OID0gZm91bmQKLXRoZW4KLQlTVk5WRVJTSU9OPSJzdm52ZXJzaW9uIFwkKHNyY2RpcikiCi1lbHNlCi0JU1ZOVkVSU0lPTj0iZWNobyBVbnZlcnNpb25lZCBkaXJlY3RvcnkiCitBQ19DSEVDS19UT09MUyhbUkVBREVMRl0sIFtyZWFkZWxmXSwgWzpdKQoraWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRoZW4KKyAgICBjYXNlICIkUkVBREVMRiIgaW4KKwlyZWFkZWxmfDopCisJQUNfTVNHX0VSUk9SKFtyZWFkZWxmIGZvciB0aGUgaG9zdCBpcyByZXF1aXJlZCBmb3IgY3Jvc3MgYnVpbGRzXSkKKwk7OworICAgIGVzYWMKIGZpCi0KLUFDX1NVQlNUKEhHVkVSU0lPTikKLUFDX1NVQlNUKEhHVEFHKQotQUNfU1VCU1QoSEdCUkFOQ0gpCi0KLWlmIHRlc3QgLWUgJHNyY2Rpci8uaGcvZGlyc3RhdGUKLXRoZW4KLUFDX0NIRUNLX1BST0coSEFTX0hHLCBoZywgZm91bmQsIG5vdC1mb3VuZCkKLWVsc2UKLUhBU19IRz1uby1yZXBvc2l0b3J5Ci1maQotaWYgdGVzdCAkSEFTX0hHID0gZm91bmQKLXRoZW4KLSAgICBIR1ZFUlNJT049ImhnIGlkIC1pIFwkKHNyY2RpcikiCi0gICAgSEdUQUc9ImhnIGlkIC10IFwkKHNyY2RpcikiCi0gICAgSEdCUkFOQ0g9ImhnIGlkIC1iIFwkKHNyY2RpcikiCi1lbHNlCi0gICAgSEdWRVJTSU9OPSIiCi0gICAgSEdUQUc9IiIKLSAgICBIR0JSQU5DSD0iIgotZmkKK0FDX1NVQlNUKFJFQURFTEYpCiAKIEFDX1NVQlNUKERJU0FCTEVfQVNETEdFTikKIERJU0FCTEVfQVNETEdFTj0iIgpAQCAtODY5LDYgKzEwMDIsNyBAQAogCWZpCiBlc2FjCiBBQ19QUk9HX0lOU1RBTEwKK0FDX1BST0dfTUtESVJfUAogCiAjIE5vdCBldmVyeSBmaWxlc3lzdGVtIHN1cHBvcnRzIGhhcmQgbGlua3MKIEFDX1NVQlNUKExOKQpAQCAtMTAwMywxMCArMTEzNywzMiBAQAogICAgICAgQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgLWZuby1zdHJpY3QtYWxpYXNpbmciCiAgICAgZmkKIAorICAgIEFDX01TR19DSEVDS0lORyhpZiB3ZSBjYW4gdHVybiBvZmYgJENDIHVudXNlZCByZXN1bHQgd2FybmluZykKKyAgICAgYWNfc2F2ZV9jYz0iJENDIgorICAgICBDQz0iJENDIC1XdW51c2VkLXJlc3VsdCAtV2Vycm9yIgorICAgICBzYXZlX0NGTEFHUz0iJENGTEFHUyIKKyAgICAgQUNfQ0FDSEVfVkFMKGFjX2N2X2Rpc2FibGVfdW51c2VkX3Jlc3VsdF93YXJuaW5nLAorICAgICAgIEFDX0NPTVBJTEVfSUZFTFNFKAorICAgICAgICAgWworCSAgIEFDX0xBTkdfUFJPR1JBTShbW11dLCBbW11dKQorCSBdLFsKKyAgICAgICAgICAgYWNfY3ZfZGlzYWJsZV91bnVzZWRfcmVzdWx0X3dhcm5pbmc9eWVzCisJIF0sWworICAgICAgICAgICBhY19jdl9kaXNhYmxlX3VudXNlZF9yZXN1bHRfd2FybmluZz1ubworCSBdKSkKKyAgICAgQ0ZMQUdTPSIkc2F2ZV9DRkxBR1MiCisgICAgIENDPSIkYWNfc2F2ZV9jYyIKKyAgICBBQ19NU0dfUkVTVUxUKCRhY19jdl9kaXNhYmxlX3VudXNlZF9yZXN1bHRfd2FybmluZykKKworICAgIGlmIHRlc3QgJGFjX2N2X2Rpc2FibGVfdW51c2VkX3Jlc3VsdF93YXJuaW5nID0geWVzCisgICAgdGhlbgorICAgICAgQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgLVduby11bnVzZWQtcmVzdWx0IgorICAgIGZpCisKICAgICAjIGlmIHVzaW5nIGdjYyBvbiBhbHBoYSwgdXNlIC1taWVlZSB0byBnZXQgKG5lYXIpIGZ1bGwgSUVFRSA3NTQKICAgICAjIHN1cHBvcnQuICBXaXRob3V0IHRoaXMsIHRyZWF0bWVudCBvZiBzdWJub3JtYWxzIGRvZXNuJ3QgZm9sbG93CiAgICAgIyB0aGUgc3RhbmRhcmQuCi0gICAgY2FzZSAkYWNfc3lzX21hY2hpbmUgaW4KKyAgICBjYXNlICRob3N0IGluCiAgICAgICAgICBhbHBoYSopCiAgICAgICAgICAgICAgICAgQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgLW1pZWVlIgogICAgICAgICAgICAgICAgIDs7CkBAIC0xMDgwLDcgKzEyMzYsOSBAQAogCSAgICAjIENhbGN1bGF0ZSB0aGUgcmlnaHQgZGVwbG95bWVudCB0YXJnZXQgZm9yIHRoaXMgYnVpbGQuCiAJICAgICMKIAkgICAgY3VyX3RhcmdldD1gc3dfdmVycyAtcHJvZHVjdFZlcnNpb24gfCBzZWQgJ3MvXCgxMFwuW1swLTldXSpcKS4qL1wxLydgCi0JICAgIGlmIHRlc3QgJHtjdXJfdGFyZ2V0fSAnPicgMTAuMjsgdGhlbgorCSAgICBpZiB0ZXN0ICR7Y3VyX3RhcmdldH0gJz4nIDEwLjIgJiYgXAorCSAgICAgICB0ZXN0ICR7Y3VyX3RhcmdldH0gJzwnIDEwLjYKKwkgICAgdGhlbgogCQkgICAgY3VyX3RhcmdldD0xMC4zCiAJCSAgICBpZiB0ZXN0ICR7ZW5hYmxlX3VuaXZlcnNhbHNka307IHRoZW4KIAkJCSAgICBpZiB0ZXN0ICIke1VOSVZFUlNBTF9BUkNIU30iID0gImFsbCI7IHRoZW4KQEAgLTExMTksOSArMTI3Nyw2IEBACiAJICAgIEVYUE9SVF9NQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQ9JycKIAogCSAgICA7OwotCU9TRiopCi0JICAgIEJBU0VDRkxBR1M9IiRCQVNFQ0ZMQUdTIC1taWVlZSIKLQkgICAgOzsKICAgICBlc2FjCiAgICAgOzsKIApAQCAtMTEzMCw5ICsxMjg1LDYgQEAKICAgICBPcGVuVU5JWCp8VW5peFdhcmUqKQogCUJBU0VDRkxBR1M9IiRCQVNFQ0ZMQUdTIC1LIHBlbnRpdW0saG9zdCxpbmxpbmUsbG9vcF91bnJvbGwsYWxsb2NhICIKIAk7OwotICAgIE9TRiopCi0JQkFTRUNGTEFHUz0iJEJBU0VDRkxBR1MgLWllZWUgLXN0ZCIKLSAgICAJOzsKICAgICBTQ09fU1YqKQogCUJBU0VDRkxBR1M9IiRCQVNFQ0ZMQUdTIC1iZWxmIC1LaTQ4NiAtRFNDTzUiCiAJOzsKQEAgLTEzMzMsMjEgKzE0ODUsNDIgQEAKIAogIyBjaGVja3MgZm9yIGhlYWRlciBmaWxlcwogQUNfSEVBREVSX1NUREMKK2FjX3NhdmVfY3BwZmxhZ3M9IiRDUFBGTEFHUyIKK0NQUEZMQUdTPSIkQ1BQRkxBR1MgLUkvdXNyL2luY2x1ZGUvbmN1cnNlc3ciCiBBQ19DSEVDS19IRUFERVJTKGFzbS90eXBlcy5oIGNvbmlvLmggY3Vyc2VzLmggZGlyZWN0LmggZGxmY24uaCBlcnJuby5oIFwKIGZjbnRsLmggZ3JwLmggXAotaWVlZWZwLmggaW8uaCBsYW5naW5mby5oIGxpYmludGwuaCBuY3Vyc2VzLmggcG9sbC5oIHByb2Nlc3MuaCBwdGhyZWFkLmggXAotc2hhZG93Lmggc2lnbmFsLmggc3RkaW50Lmggc3Ryb3B0cy5oIHRlcm1pb3MuaCB0aHJlYWQuaCBcCitpZWVlZnAuaCBpby5oIGxhbmdpbmZvLmggbGliaW50bC5oIG5jdXJzZXMuaCBwcm9jZXNzLmggcHRocmVhZC5oIFwKK3NjaGVkLmggc2hhZG93Lmggc2lnbmFsLmggc3RkaW50Lmggc3Ryb3B0cy5oIHRlcm1pb3MuaCBcCiB1bmlzdGQuaCB1dGltZS5oIFwKLXN5cy9hdWRpb2lvLmggc3lzL2JzZHR0eS5oIHN5cy9lcG9sbC5oIHN5cy9ldmVudC5oIHN5cy9maWxlLmggc3lzL2xvYWRhdmcuaCBcCi1zeXMvbG9jay5oIHN5cy9ta2Rldi5oIHN5cy9tb2RlbS5oIFwKLXN5cy9wYXJhbS5oIHN5cy9wb2xsLmggc3lzL3NlbGVjdC5oIHN5cy9zb2NrZXQuaCBzeXMvc3RhdHZmcy5oIHN5cy9zdGF0LmggXAotc3lzL3N5c2NhbGwuaCBzeXMvdGVybWlvLmggc3lzL3RpbWUuaCBcCi1zeXMvdGltZXMuaCBzeXMvdHlwZXMuaCBzeXMvdW4uaCBzeXMvdXRzbmFtZS5oIHN5cy93YWl0LmggcHR5LmggbGlidXRpbC5oIFwKLXN5cy9yZXNvdXJjZS5oIG5ldHBhY2tldC9wYWNrZXQuaCBzeXNleGl0cy5oIGJsdWV0b290aC5oIFwKK3BvbGwuaCBzeXMvZGV2cG9sbC5oIHN5cy9lcG9sbC5oIHN5cy9wb2xsLmggXAorc3lzL2F1ZGlvaW8uaCBzeXMveGF0dHIuaCBzeXMvYnNkdHR5Lmggc3lzL2V2ZW50Lmggc3lzL2ZpbGUuaCBzeXMvaW9jdGwuaCBcCitzeXMva2Vybl9jb250cm9sLmggc3lzL2xvYWRhdmcuaCBzeXMvbG9jay5oIHN5cy9ta2Rldi5oIHN5cy9tb2RlbS5oIFwKK3N5cy9wYXJhbS5oIHN5cy9zZWxlY3QuaCBzeXMvc2VuZGZpbGUuaCBzeXMvc29ja2V0Lmggc3lzL3N0YXR2ZnMuaCBcCitzeXMvc3RhdC5oIHN5cy9zeXNjYWxsLmggc3lzL3N5c19kb21haW4uaCBzeXMvdGVybWlvLmggc3lzL3RpbWUuaCBcCitzeXMvdGltZXMuaCBzeXMvdHlwZXMuaCBzeXMvdWlvLmggc3lzL3VuLmggc3lzL3V0c25hbWUuaCBzeXMvd2FpdC5oIHB0eS5oIFwKK2xpYnV0aWwuaCBzeXMvcmVzb3VyY2UuaCBuZXRwYWNrZXQvcGFja2V0Lmggc3lzZXhpdHMuaCBibHVldG9vdGguaCBcCiBibHVldG9vdGgvYmx1ZXRvb3RoLmggbGludXgvdGlwYy5oIHNwYXduLmggdXRpbC5oKQorQ1BQRkxBR1M9JGFjX3NhdmVfY3BwZmxhZ3MKIEFDX0hFQURFUl9ESVJFTlQKIEFDX0hFQURFUl9NQUpPUgogCisjIE9uIERhcndpbiAoT1MgWCkgbmV0L2lmLmggcmVxdWlyZXMgc3lzL3NvY2tldC5oIHRvIGJlIGltcG9ydGVkIGZpcnN0LgorQUNfQ0hFQ0tfSEVBREVSUyhbbmV0L2lmLmhdLCBbXSwgW10sCitbI2luY2x1ZGUgPHN0ZGlvLmg+CisjaWZkZWYgU1REQ19IRUFERVJTCisjIGluY2x1ZGUgPHN0ZGxpYi5oPgorIyBpbmNsdWRlIDxzdGRkZWYuaD4KKyNlbHNlCisjIGlmZGVmIEhBVkVfU1RETElCX0gKKyMgIGluY2x1ZGUgPHN0ZGxpYi5oPgorIyBlbmRpZgorI2VuZGlmCisjaWZkZWYgSEFWRV9TWVNfU09DS0VUX0gKKyMgaW5jbHVkZSA8c3lzL3NvY2tldC5oPgorI2VuZGlmCitdKQorCisKICMgT24gU29sYXJpcywgdGVybS5oIHJlcXVpcmVzIGN1cnNlcy5oCiBBQ19DSEVDS19IRUFERVJTKHRlcm0uaCwsLFsKICNpZmRlZiBIQVZFX0NVUlNFU19ICkBAIC0xMzY1LDYgKzE1MzgsMTMgQEAKICNlbmRpZgogXSkKIAorIyBPbiBMaW51eCwgY2FuLmggYW5kIGNhbi9yYXcuaCByZXF1aXJlIHN5cy9zb2NrZXQuaAorQUNfQ0hFQ0tfSEVBREVSUyhsaW51eC9jYW4uaCBsaW51eC9jYW4vcmF3LmgsLCxbCisjaWZkZWYgSEFWRV9TWVNfU09DS0VUX0gKKyNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CisjZW5kaWYKK10pCisKICMgY2hlY2tzIGZvciB0eXBlZGVmcwogd2FzX2l0X2RlZmluZWQ9bm8KIEFDX01TR19DSEVDS0lORyhmb3IgY2xvY2tfdCBpbiB0aW1lLmgpCkBAIC0xMzczLDcgKzE1NTMsNiBAQAogXSkKIEFDX01TR19SRVNVTFQoJHdhc19pdF9kZWZpbmVkKQogCi0jIENoZWNrIHdoZXRoZXIgdXNpbmcgbWFrZWRldiByZXF1aXJlcyBkZWZpbmluZyBfT1NGX1NPVVJDRQogQUNfTVNHX0NIRUNLSU5HKGZvciBtYWtlZGV2KQogQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWwogI2lmIGRlZmluZWQoTUFKT1JfSU5fTUtERVYpCkBAIC0xMzg2LDE5ICsxNTY1LDYgQEAKIF1dLCBbWwogICBtYWtlZGV2KDAsIDApIF1dKQogXSxbYWNfY3ZfaGFzX21ha2VkZXY9eWVzXSxbYWNfY3ZfaGFzX21ha2VkZXY9bm9dKQotaWYgdGVzdCAiJGFjX2N2X2hhc19tYWtlZGV2IiA9ICJubyI7IHRoZW4KLSAgICAjIHdlIGRpZG4ndCBsaW5rLCB0cnkgaWYgX09TRl9TT1VSQ0Ugd2lsbCBhbGxvdyB1cyB0byBsaW5rCi0gICAgQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWwotI2RlZmluZSBfT1NGX1NPVVJDRSAxCi0jaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0gICAgXV0sCi0gICAgW1sgbWFrZWRldigwLCAwKSBdXSldLAotICAgIFthY19jdl9oYXNfbWFrZWRldj15ZXNdLAotICAgIFthY19jdl9oYXNfbWFrZWRldj1ub10pCi0gICAgaWYgdGVzdCAiJGFjX2N2X2hhc19tYWtlZGV2IiA9ICJ5ZXMiOyB0aGVuCi0gICAgICAgIEFDX0RFRklORShfT1NGX1NPVVJDRSwgMSwgW0RlZmluZSBfT1NGX1NPVVJDRSB0byBnZXQgdGhlIG1ha2VkZXYgbWFjcm8uXSkKLSAgICBmaQotZmkKIEFDX01TR19SRVNVTFQoJGFjX2N2X2hhc19tYWtlZGV2KQogaWYgdGVzdCAiJGFjX2N2X2hhc19tYWtlZGV2IiA9ICJ5ZXMiOyB0aGVuCiAgICAgQUNfREVGSU5FKEhBVkVfTUFLRURFViwgMSwgW0RlZmluZSB0aGlzIGlmIHlvdSBoYXZlIHRoZSBtYWtlZGV2IG1hY3JvLl0pCkBAIC0xNDU4LDYgKzE2MjQsOCBAQAogQUNfVFlQRV9JTlQ2NF9UCiBBQ19DSEVDS19UWVBFKHNzaXplX3QsCiAgIEFDX0RFRklORShIQVZFX1NTSVpFX1QsIDEsIFtEZWZpbmUgaWYgeW91ciBjb21waWxlciBwcm92aWRlcyBzc2l6ZV90XSksLCkKK0FDX0NIRUNLX1RZUEUoX191aW50MTI4X3QsCisgIEFDX0RFRklORShIQVZFX0dDQ19VSU5UMTI4X1QsIDEsIFtEZWZpbmUgaWYgeW91ciBjb21waWxlciBwcm92aWRlcyBfX3VpbnQxMjhfdF0pLCwpCiAKICMgU2l6ZXMgb2YgdmFyaW91cyBjb21tb24gYmFzaWMgdHlwZXMKICMgQU5TSSBDIHJlcXVpcmVzIHNpemVvZihjaGFyKSA9PSAxLCBzbyBubyBuZWVkIHRvIGNoZWNrIGl0CkBAIC0xNzE4LDcgKzE4ODYsNiBAQAogCQllbHNlCiAJCQlMRFNIQVJFRD0nbGQgLWInCiAJCWZpIDs7Ci0JT1NGKikgTERTSEFSRUQ9ImxkIC1zaGFyZWQgLWV4cGVjdF91bnJlc29sdmVkIFwiKlwiIjs7CiAJRGFyd2luLzEuMyopCiAJCUxEU0hBUkVEPSckKENDKSAtYnVuZGxlJwogCQlMRENYWFNIQVJFRD0nJChDWFgpIC1idW5kbGUnCkBAIC0xOTQ4LDYgKzIxMTUsNyBAQAogCiAKICMgY2hlY2tzIGZvciBsaWJyYXJpZXMKK0FDX0NIRUNLX0xJQihzZW5kZmlsZSwgc2VuZGZpbGUpCiBBQ19DSEVDS19MSUIoZGwsIGRsb3BlbikJIyBEeW5hbWljIGxpbmtpbmcgZm9yIFN1bk9TL1NvbGFyaXMgYW5kIFNZU1YKIEFDX0NIRUNLX0xJQihkbGQsIHNobF9sb2FkKQkjIER5bmFtaWMgbGlua2luZyBmb3IgSFAtVVgKIApAQCAtMjAyMSw2ICsyMTg5LDE1IEBACiAKIEFDX01TR19SRVNVTFQoJHdpdGhfc3lzdGVtX2ZmaSkKIAorIyBDaGVjayBmb3IgdXNlIG9mIHRoZSBzeXN0ZW0gbGlibXBkZWMgbGlicmFyeQorQUNfTVNHX0NIRUNLSU5HKGZvciAtLXdpdGgtc3lzdGVtLWxpYm1wZGVjKQorQUNfQVJHX1dJVEgoc3lzdGVtX2xpYm1wZGVjLAorICAgICAgICAgICAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC1zeXN0ZW0tbGlibXBkZWNdLCBbYnVpbGQgX2RlY2ltYWwgbW9kdWxlIHVzaW5nIGFuIGluc3RhbGxlZCBsaWJtcGRlYyBsaWJyYXJ5XSksCisgICAgICAgICAgICBbXSwKKyAgICAgICAgICAgIFt3aXRoX3N5c3RlbV9saWJtcGRlYz0ibm8iXSkKKworQUNfTVNHX1JFU1VMVCgkd2l0aF9zeXN0ZW1fbGlibXBkZWMpCisKICMgQ2hlY2sgZm9yIHN1cHBvcnQgZm9yIGxvYWRhYmxlIHNxbGl0ZSBleHRlbnNpb25zCiBBQ19NU0dfQ0hFQ0tJTkcoZm9yIC0tZW5hYmxlLWxvYWRhYmxlLXNxbGl0ZS1leHRlbnNpb25zKQogQUNfQVJHX0VOQUJMRShsb2FkYWJsZS1zcWxpdGUtZXh0ZW5zaW9ucywKQEAgLTIwNzIsMjEgKzIyNDksMTAgQEAKIEFDX1NVQlNUKFVTRV9USFJFQURfTU9EVUxFKQogVVNFX1RIUkVBRF9NT0RVTEU9IiIKIAotQUNfTVNHX0NIRUNLSU5HKGZvciAtLXdpdGgtZGVjLXRocmVhZHMpCiBBQ19TVUJTVChMRExBU1QpCi1BQ19BUkdfV0lUSChkZWMtdGhyZWFkcywKLSAgICAgICAgICAgIEFTX0hFTFBfU1RSSU5HKFstLXdpdGgtZGVjLXRocmVhZHNdLCBbdXNlIERFQyBBbHBoYS9PU0YxIHRocmVhZC1zYWZlIGxpYnJhcmllc10pLAotWwotQUNfTVNHX1JFU1VMVCgkd2l0aHZhbCkKLUxETEFTVD0tdGhyZWFkcwotaWYgdGVzdCAiJHt3aXRoX3RocmVhZCtzZXR9IiAhPSBzZXQ7IHRoZW4KLSAgIHdpdGhfdGhyZWFkPSIkd2l0aHZhbCI7Ci1maV0sCi1bQUNfTVNHX1JFU1VMVChubyldKQogCiAjIFRlbXBsYXRlcyBmb3IgdGhpbmdzIEFDX0RFRklORWQgbW9yZSB0aGFuIG9uY2UuCiAjIEZvciBhIHNpbmdsZSBBQ19ERUZJTkUsIG5vIHRlbXBsYXRlIGlzIG5lZWRlZC4KLUFIX1RFTVBMQVRFKENfVEhSRUFEUyxbRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBNYWNoIGN0aHJlYWRzIHBhY2thZ2VdKQogQUhfVEVNUExBVEUoX1JFRU5UUkFOVCwKICAgW0RlZmluZSB0byBmb3JjZSB1c2Ugb2YgdGhyZWFkLXNhZmUgZXJybm8sIGhfZXJybm8sIGFuZCBvdGhlciBmdW5jdGlvbnNdKQogQUhfVEVNUExBVEUoV0lUSF9USFJFQUQsCkBAIC0yMTY4LDE3ICsyMzM0LDYgQEAKICAgICBBQ19NU0dfUkVTVUxUKCR1bmlzdGRfZGVmaW5lc19wdGhyZWFkcykKIAogICAgIEFDX0RFRklORShfUkVFTlRSQU5UKQotICAgIEFDX0NIRUNLX0hFQURFUihjdGhyZWFkcy5oLCBbQUNfREVGSU5FKFdJVEhfVEhSRUFEKQotICAgIEFDX0RFRklORShDX1RIUkVBRFMpCi0gICAgQUNfREVGSU5FKEhVUkRfQ19USFJFQURTLCAxLAotICAgIFtEZWZpbmUgaWYgeW91IGFyZSB1c2luZyBNYWNoIGN0aHJlYWRzIGRpcmVjdGx5IHVuZGVyIC9pbmNsdWRlXSkKLSAgICBMSUJTPSIkTElCUyAtbHRocmVhZHMiCi0gICAgVEhSRUFET0JKPSJQeXRob24vdGhyZWFkLm8iXSxbCi0gICAgQUNfQ0hFQ0tfSEVBREVSKG1hY2gvY3RocmVhZHMuaCwgW0FDX0RFRklORShXSVRIX1RIUkVBRCkKLSAgICBBQ19ERUZJTkUoQ19USFJFQURTKQotICAgIEFDX0RFRklORShNQUNIX0NfVEhSRUFEUywgMSwKLSAgICBbRGVmaW5lIGlmIHlvdSBhcmUgdXNpbmcgTWFjaCBjdGhyZWFkcyB1bmRlciBtYWNoIC9dKQotICAgIFRIUkVBRE9CSj0iUHl0aG9uL3RocmVhZC5vIl0sWwogICAgICMgSnVzdCBsb29raW5nIGZvciBwdGhyZWFkX2NyZWF0ZSBpbiBsaWJwdGhyZWFkIGlzIG5vdCBlbm91Z2g6CiAgICAgIyBvbiBIUC9VWCwgcHRocmVhZC5oIHJlbmFtZXMgcHRocmVhZF9jcmVhdGUgdG8gYSBkaWZmZXJlbnQgc3ltYm9sIG5hbWUuCiAgICAgIyBTbyB3ZSByZWFsbHkgaGF2ZSB0byBpbmNsdWRlIHB0aHJlYWQuaCwgYW5kIHRoZW4gbGluay4KQEAgLTIyMTQsNyArMjM2OSw3IEBACiAgICAgTElCUz0iJExJQlMgLWxjbWEiCiAgICAgVEhSRUFET0JKPSJQeXRob24vdGhyZWFkLm8iXSxbCiAgICAgVVNFX1RIUkVBRF9NT0RVTEU9IiMiXSkKLSAgICBdKV0pXSldKV0pXSldKQorICAgIF0pXSldKV0pXSkKIAogICAgIEFDX0NIRUNLX0xJQihtcGMsIHVzY29uZmlnLCBbQUNfREVGSU5FKFdJVEhfVEhSRUFEKQogICAgIExJQlM9IiRMSUJTIC1sbXBjIgpAQCAtMjIyNywxNSArMjM4Miw2IEBACiAgICAgICBUSFJFQURPQko9IlB5dGhvbi90aHJlYWQubyIKICAgICAgIFVTRV9USFJFQURfTU9EVUxFPSIiXSkKICAgICBmaQotCi0gICAgaWYgdGVzdCAiJFVTRV9USFJFQURfTU9EVUxFIiAhPSAiIyIKLSAgICB0aGVuCi0gICAgICAgICMgSWYgdGhlIGFib3ZlIGNoZWNrcyBkaWRuJ3QgZGlzYWJsZSB0aHJlYWRzLCAoYXQgbGVhc3QpIE9TRjEKLSAgICAgICAgIyBuZWVkcyB0aGlzICctdGhyZWFkcycgYXJndW1lbnQgZHVyaW5nIGxpbmtpbmcuCi0gICAgICAgIGNhc2UgJGFjX3N5c19zeXN0ZW0gaW4KLSAgICAgICAgT1NGMSkgTERMQVNUPS10aHJlYWRzOzsKLSAgICAgICAgZXNhYwotICAgIGZpCiBmaQogCiBpZiB0ZXN0ICIkcG9zaXhfdGhyZWFkcyIgPSAieWVzIjsgdGhlbgpAQCAtMjUwOSwxMiArMjY1NSwxMiBAQAogaWYgdGVzdCAteiAiJHdpdGhfcHltYWxsb2MiCiB0aGVuCiAgICAgd2l0aF9weW1hbGxvYz0ieWVzIgotICAgIEFCSUZMQUdTPSIke0FCSUZMQUdTfW0iCiBmaQogaWYgdGVzdCAiJHdpdGhfcHltYWxsb2MiICE9ICJubyIKIHRoZW4KICAgICBBQ19ERUZJTkUoV0lUSF9QWU1BTExPQywgMSwgCiAgICAgIFtEZWZpbmUgaWYgeW91IHdhbnQgdG8gY29tcGlsZSBpbiBQeXRob24tc3BlY2lmaWMgbWFsbG9jc10pCisgICAgQUJJRkxBR1M9IiR7QUJJRkxBR1N9bSIKIGZpCiBBQ19NU0dfUkVTVUxUKCR3aXRoX3B5bWFsbG9jKQogCkBAIC0yNTgzLDIzICsyNzI5LDM1IEBACiBlbHNlCiAJTUFDSERFUF9PQkpTPSIkTUFDSERFUF9PQkpTICRleHRyYV9tYWNoZGVwX29ianMiCiBmaQotQUNfTVNHX1JFU1VMVChNQUNIREVQX09CSlMpCitpZiB0ZXN0IC16ICIkTUFDSERFUF9PQkpTIjsgdGhlbgorICBBQ19NU0dfUkVTVUxUKFtub25lXSkKK2Vsc2UKKyAgQUNfTVNHX1JFU1VMVChbJE1BQ0hERVBfT0JKU10pCitmaQogCiAjIGNoZWNrcyBmb3IgbGlicmFyeSBmdW5jdGlvbnMKIEFDX0NIRUNLX0ZVTkNTKGFsYXJtIGFjY2VwdDQgc2V0aXRpbWVyIGdldGl0aW1lciBiaW5kX3RleHRkb21haW5fY29kZXNldCBjaG93biBcCi0gY2xvY2sgY29uZnN0ciBjdGVybWlkIGV4ZWN2IGZjaG1vZCBmY2hvd24gZm9yayBmcGF0aGNvbmYgZnRpbWUgZnRydW5jYXRlIFwKLSBnYWlfc3RyZXJyb3IgZ2V0Z3JvdXBzIGdldGxvZ2luIGdldGxvYWRhdmcgZ2V0cGVlcm5hbWUgZ2V0cGdpZCBnZXRwaWQgXAorIGNsb2NrIGNvbmZzdHIgY3Rlcm1pZCBleGVjdiBmYWNjZXNzYXQgZmNobW9kIGZjaG1vZGF0IGZjaG93biBmY2hvd25hdCBcCisgZmV4ZWN2ZSBmZG9wZW5kaXIgZm9yayBmcGF0aGNvbmYgZnN0YXRhdCBmdGltZSBmdHJ1bmNhdGUgZnV0aW1lc2F0IFwKKyBmdXRpbWVucyBmdXRpbWVzIGdhaV9zdHJlcnJvciBcCisgZ2V0Z3JvdXBsaXN0IGdldGdyb3VwcyBnZXRsb2dpbiBnZXRsb2FkYXZnIGdldHBlZXJuYW1lIGdldHBnaWQgZ2V0cGlkIFwKICBnZXRwcmlvcml0eSBnZXRyZXN1aWQgZ2V0cmVzZ2lkIGdldHB3ZW50IGdldHNwbmFtIGdldHNwZW50IGdldHNpZCBnZXR3ZCBcCi0gaW5pdGdyb3VwcyBraWxsIGtpbGxwZyBsY2htb2QgbGNob3duIGxzdGF0IG1icnRvd2MgbWtmaWZvIG1rbm9kIG1rdGltZSBcCi0gbXJlbWFwIG5pY2UgcGF0aGNvbmYgcGF1c2UgcGxvY2sgcG9sbCBwdGhyZWFkX2luaXQgXAotIHB1dGVudiByZWFkbGluayByZWFscGF0aCBcCi0gc2VsZWN0IHNlbV9vcGVuIHNlbV90aW1lZHdhaXQgc2VtX2dldHZhbHVlIHNlbV91bmxpbmsgc2V0ZWdpZCBzZXRldWlkIFwKLSBzZXRnaWQgXAotIHNldGxvY2FsZSBzZXRyZWdpZCBzZXRyZXVpZCBzZXRyZXN1aWQgc2V0cmVzZ2lkIHNldHNpZCBzZXRwZ2lkIHNldHBncnAgc2V0dWlkIHNldHZidWYgXAotIHNpZ2FjdGlvbiBzaWdpbnRlcnJ1cHQgc2lncmVsc2Ugc25wcmludGYgc3RyZnRpbWUgc3RybGNweSBcCisgaWZfbmFtZWluZGV4IFwKKyBpbml0Z3JvdXBzIGtpbGwga2lsbHBnIGxjaG1vZCBsY2hvd24gbG9ja2YgbGlua2F0IGxzdGF0IGx1dGltZXMgbW1hcCBcCisgbWVtcmNociBtYnJ0b3djIG1rZGlyYXQgbWtmaWZvIFwKKyBta2ZpZm9hdCBta25vZCBta25vZGF0IG1rdGltZSBtcmVtYXAgbmljZSBvcGVuYXQgcGF0aGNvbmYgcGF1c2UgcGlwZTIgcGxvY2sgcG9sbCBcCisgcG9zaXhfZmFsbG9jYXRlIHBvc2l4X2ZhZHZpc2UgcHJlYWQgXAorIHB0aHJlYWRfaW5pdCBwdGhyZWFkX2tpbGwgcHV0ZW52IHB3cml0ZSByZWFkbGluayByZWFkbGlua2F0IHJlYWR2IHJlYWxwYXRoIHJlbmFtZWF0IFwKKyBzZWxlY3Qgc2VtX29wZW4gc2VtX3RpbWVkd2FpdCBzZW1fZ2V0dmFsdWUgc2VtX3VubGluayBzZW5kZmlsZSBzZXRlZ2lkIHNldGV1aWQgXAorIHNldGdpZCBzZXRob3N0bmFtZSBcCisgc2V0bG9jYWxlIHNldHJlZ2lkIHNldHJldWlkIHNldHJlc3VpZCBzZXRyZXNnaWQgc2V0c2lkIHNldHBnaWQgc2V0cGdycCBzZXRwcmlvcml0eSBzZXR1aWQgc2V0dmJ1ZiBcCisgc2NoZWRfZ2V0X3ByaW9yaXR5X21heCBzY2hlZF9zZXRhZmZpbml0eSBzY2hlZF9zZXRzY2hlZHVsZXIgc2NoZWRfc2V0cGFyYW0gXAorIHNjaGVkX3JyX2dldF9pbnRlcnZhbCBcCisgc2lnYWN0aW9uIHNpZ2FsdHN0YWNrIHNpZ2ludGVycnVwdCBzaWdwZW5kaW5nIHNpZ3JlbHNlIFwKKyBzaWd0aW1lZHdhaXQgc2lnd2FpdCBzaWd3YWl0aW5mbyBzbnByaW50ZiBzdHJmdGltZSBzdHJsY3B5IHN5bWxpbmthdCBzeW5jIFwKICBzeXNjb25mIHRjZ2V0cGdycCB0Y3NldHBncnAgdGVtcG5hbSB0aW1lZ20gdGltZXMgdG1wZmlsZSB0bXBuYW0gdG1wbmFtX3IgXAotIHRydW5jYXRlIHVuYW1lIHVuc2V0ZW52IHV0aW1lcyB3YWl0cGlkIHdhaXQzIHdhaXQ0IFwKLSB3Y3Njb2xsIHdjc2Z0aW1lIHdjc3hmcm0gX2dldHB0eSkKKyB0cnVuY2F0ZSB1bmFtZSB1bmxpbmthdCB1bnNldGVudiB1dGltZW5zYXQgdXRpbWVzIHdhaXRpZCB3YWl0cGlkIHdhaXQzIHdhaXQ0IFwKKyB3Y3Njb2xsIHdjc2Z0aW1lIHdjc3hmcm0gd3JpdGV2IF9nZXRwdHkpCiAKIEFDX0NIRUNLX0RFQ0woZGlyZmQsCiAgICAgQUNfREVGSU5FKEhBVkVfRElSRkQsIDEsCkBAIC0yNjUxLDYgKzI4MDksMTIgQEAKICAgIEFDX01TR19SRVNVTFQoeWVzKV0sCiAgIFtBQ19NU0dfUkVTVUxUKG5vKQogXSkKK0FDX01TR19DSEVDS0lORyhmb3IgZXBvbGxfY3JlYXRlMSkKK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sjaW5jbHVkZSA8c3lzL2Vwb2xsLmg+XV0sIFtbdm9pZCAqeD1lcG9sbF9jcmVhdGUxXV0pXSwKKyAgW0FDX0RFRklORShIQVZFX0VQT0xMX0NSRUFURTEsIDEsIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgJ2Vwb2xsX2NyZWF0ZTEnIGZ1bmN0aW9uLikKKyAgIEFDX01TR19SRVNVTFQoeWVzKV0sCisgIFtBQ19NU0dfUkVTVUxUKG5vKQorXSkKIEFDX01TR19DSEVDS0lORyhmb3Iga3F1ZXVlKQogQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWwogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgpAQCAtMjg4MSw2ICszMDQ1LDIwIEBACiAgICAgXSkKICkKIAorQUNfQ0hFQ0tfRlVOQ1MoY2xvY2tfZ2V0dGltZSwgW10sIFsKKyAgICBBQ19DSEVDS19MSUIocnQsIGNsb2NrX2dldHRpbWUsIFsKKyAgICAgICAgQUNfREVGSU5FKEhBVkVfQ0xPQ0tfR0VUVElNRSwgMSkKKyAgICAgICAgQUNfREVGSU5FKFRJTUVNT0RVTEVfTElCLCBbcnRdLAorICAgICAgICAgICAgICAgICAgW0xpYnJhcnkgbmVlZGVkIGJ5IHRpbWVtb2R1bGUuYzogbGlicnQgbWF5IGJlIG5lZWRlZCBmb3IgY2xvY2tfZ2V0dGltZSgpXSkKKyAgICBdKQorXSkKKworQUNfQ0hFQ0tfRlVOQ1MoY2xvY2tfZ2V0cmVzLCBbXSwgWworICAgIEFDX0NIRUNLX0xJQihydCwgY2xvY2tfZ2V0cmVzLCBbCisgICAgICAgIEFDX0RFRklORShIQVZFX0NMT0NLX0dFVFJFUywgMSkKKyAgICBdKQorXSkKKwogQUNfTVNHX0NIRUNLSU5HKGZvciBtYWpvciwgbWlub3IsIGFuZCBtYWtlZGV2KQogQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbWwogI2lmIGRlZmluZWQoTUFKT1JfSU5fTUtERVYpCkBAIC0zMDA1LDEyICszMTgzLDE3IEBACiBdXV0pXSwKIFthY19jdl9idWdneV9nZXRhZGRyaW5mbz1ub10sCiBbYWNfY3ZfYnVnZ3lfZ2V0YWRkcmluZm89eWVzXSwKLVthY19jdl9idWdneV9nZXRhZGRyaW5mbz15ZXNdKSkKK1sKK2lmIHRlc3QgIiR7ZW5hYmxlX2lwdjYrc2V0fSIgPSBzZXQ7IHRoZW4KKyAgYWNfY3ZfYnVnZ3lfZ2V0YWRkcmluZm89Im5vIC0tIGNvbmZpZ3VyZWQgd2l0aCAtLShlbnxkaXMpYWJsZS1pcHY2IgorZWxzZQorICBhY19jdl9idWdneV9nZXRhZGRyaW5mbz15ZXMKK2ZpXSkpCiBmaQogCiBBQ19NU0dfUkVTVUxUKCRhY19jdl9idWdneV9nZXRhZGRyaW5mbykKIAotaWYgdGVzdCAkaGF2ZV9nZXRhZGRyaW5mbyA9IG5vIC1vICIkYWNfY3ZfYnVnZ3lfZ2V0YWRkcmluZm8iID0geWVzCitpZiB0ZXN0ICRoYXZlX2dldGFkZHJpbmZvID0gbm8gfHwgdGVzdCAiJGFjX2N2X2J1Z2d5X2dldGFkZHJpbmZvIiA9IHllcwogdGhlbgogCWlmIHRlc3QgJGlwdjYgPSB5ZXMKIAl0aGVuCkBAIC0zMzAyLDYgKzM0ODUsMjEgQEAKIGZpXSwKIFtBQ19NU0dfUkVTVUxUKGRlZmF1bHQgTElCQz0iJExJQkMiKV0pCiAKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyMgKiBDaGVjayBmb3IgZ2NjIHg2NCBpbmxpbmUgYXNzZW1ibGVyICoKKyMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKworQUNfTVNHX0NIRUNLSU5HKGZvciB4NjQgZ2NjIGlubGluZSBhc3NlbWJsZXIpCitBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbXV0sIFtbCisgIF9fYXNtX18gX192b2xhdGlsZV9fICgibW92cSAlcmN4LCAlcmF4Iik7CitdXSldLFtoYXZlX2djY19hc21fZm9yX3g2ND15ZXNdLFtoYXZlX2djY19hc21fZm9yX3g2ND1ub10pCitBQ19NU0dfUkVTVUxUKCRoYXZlX2djY19hc21fZm9yX3g2NCkKK2lmIHRlc3QgIiRoYXZlX2djY19hc21fZm9yX3g2NCIgPSB5ZXMKK3RoZW4KKyAgICBBQ19ERUZJTkUoSEFWRV9HQ0NfQVNNX0ZPUl9YNjQsIDEsCisgICAgW0RlZmluZSBpZiB3ZSBjYW4gdXNlIHg2NCBnY2MgaW5saW5lIGFzc2VtYmxlcl0pCitmaQorCiAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAjICogQ2hlY2sgZm9yIHZhcmlvdXMgcHJvcGVydGllcyBvZiBmbG9hdGluZyBwb2ludCAqCiAjICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0zNDUwLDcgKzM2NDgsNyBAQAogTElCUz0iJExJQlMgJExJQk0iCiAKIEFDX0NIRUNLX0ZVTkNTKFthY29zaCBhc2luaCBhdGFuaCBjb3B5c2lnbiBlcmYgZXJmYyBleHBtMSBmaW5pdGUgZ2FtbWFdKQotQUNfQ0hFQ0tfRlVOQ1MoW2h5cG90IGxnYW1tYSBsb2cxcCByb3VuZCB0Z2FtbWFdKQorQUNfQ0hFQ0tfRlVOQ1MoW2h5cG90IGxnYW1tYSBsb2cxcCBsb2cyIHJvdW5kIHRnYW1tYV0pCiBBQ19DSEVDS19ERUNMUyhbaXNpbmYsIGlzbmFuLCBpc2Zpbml0ZV0sIFtdLCBbXSwgW1sjaW5jbHVkZSA8bWF0aC5oPl1dKQogCiAjIE9uIEZyZWVCU0QgNi4yLCBpdCBhcHBlYXJzIHRoYXQgdGFuaCgtMC4pIHJldHVybnMgMC4gaW5zdGVhZCBvZgpAQCAtMzY0OCw1NyArMzg0NiwxOSBAQAogICBBQ19NU0dfUkVTVUxUKCRhY19jdl93Y2hhcl90X3NpZ25lZCkKIGZpCiAKLUFDX01TR19DSEVDS0lORyh3aGF0IHR5cGUgdG8gdXNlIGZvciBzdHIpCi1BQ19BUkdfV0lUSCh3aWRlLXVuaWNvZGUsIAotICAgICAgICAgICAgQVNfSEVMUF9TVFJJTkcoWy0td2l0aC13aWRlLXVuaWNvZGVdLCBbVXNlIDQtYnl0ZSBVbmljb2RlIGNoYXJhY3RlcnMgKGRlZmF1bHQgaXMgMiBieXRlcyldKSwKLVsKLWlmIHRlc3QgIiR3aXRodmFsIiAhPSBubwotdGhlbiB1bmljb2RlX3NpemU9IjQiCi1lbHNlIHVuaWNvZGVfc2l6ZT0iMiIKLWZpCi1dLAotWwotY2FzZSAiJGhhdmVfdWNzNF90Y2wiIGluCi0gIHllcykgdW5pY29kZV9zaXplPSI0Ijs7Ci0gICopICAgdW5pY29kZV9zaXplPSIyIiA7OwotZXNhYwotXSkKLQotQUhfVEVNUExBVEUoUHlfVU5JQ09ERV9TSVpFLAotICBbRGVmaW5lIGFzIHRoZSBzaXplIG9mIHRoZSB1bmljb2RlIHR5cGUuXSkKLWNhc2UgIiR1bmljb2RlX3NpemUiIGluCi0gIDQpCi0gICAgIEFDX0RFRklORShQeV9VTklDT0RFX1NJWkUsIDQpCi0gICAgIEFCSUZMQUdTPSIke0FCSUZMQUdTfXUiCi0gICAgIDs7Ci0gICopIEFDX0RFRklORShQeV9VTklDT0RFX1NJWkUsIDIpIDs7Ci1lc2FjCi0KLUFIX1RFTVBMQVRFKFBZX1VOSUNPREVfVFlQRSwKLSAgW0RlZmluZSBhcyB0aGUgaW50ZWdyYWwgdHlwZSB1c2VkIGZvciBVbmljb2RlIHJlcHJlc2VudGF0aW9uLl0pCi0KICMgd2NoYXJfdCBpcyBvbmx5IHVzYWJsZSBpZiBpdCBtYXBzIHRvIGFuIHVuc2lnbmVkIHR5cGUKLWlmIHRlc3QgIiR1bmljb2RlX3NpemUiID0gIiRhY19jdl9zaXplb2Zfd2NoYXJfdCIgXAoraWYgdGVzdCAiJGFjX2N2X3NpemVvZl93Y2hhcl90IiAtZ2UgMiBcCiAgICAgICAgICAgLWEgIiRhY19jdl93Y2hhcl90X3NpZ25lZCIgPSAibm8iCiB0aGVuCi0gIFBZX1VOSUNPREVfVFlQRT0id2NoYXJfdCIKKyAgSEFWRV9VU0FCTEVfV0NIQVJfVD0ieWVzIgogICBBQ19ERUZJTkUoSEFWRV9VU0FCTEVfV0NIQVJfVCwgMSwKICAgW0RlZmluZSBpZiB5b3UgaGF2ZSBhIHVzZWFibGUgd2NoYXJfdCB0eXBlIGRlZmluZWQgaW4gd2NoYXIuaDsgdXNlYWJsZQogICAgbWVhbnMgd2NoYXJfdCBtdXN0IGJlIGFuIHVuc2lnbmVkIHR5cGUgd2l0aCBhdCBsZWFzdCAxNiBiaXRzLiAoc2VlCiAgICBJbmNsdWRlL3VuaWNvZGVvYmplY3QuaCkuXSkKLSAgQUNfREVGSU5FKFBZX1VOSUNPREVfVFlQRSx3Y2hhcl90KQotZWxpZiB0ZXN0ICIkYWNfY3Zfc2l6ZW9mX3Nob3J0IiA9ICIkdW5pY29kZV9zaXplIgotdGhlbgotICAgICBQWV9VTklDT0RFX1RZUEU9InVuc2lnbmVkIHNob3J0IgotICAgICBBQ19ERUZJTkUoUFlfVU5JQ09ERV9UWVBFLHVuc2lnbmVkIHNob3J0KQotZWxpZiB0ZXN0ICIkYWNfY3Zfc2l6ZW9mX2xvbmciID0gIiR1bmljb2RlX3NpemUiCi10aGVuCi0gICAgIFBZX1VOSUNPREVfVFlQRT0idW5zaWduZWQgbG9uZyIKLSAgICAgQUNfREVGSU5FKFBZX1VOSUNPREVfVFlQRSx1bnNpZ25lZCBsb25nKQogZWxzZQotICAgICBQWV9VTklDT0RFX1RZUEU9Im5vIHR5cGUgZm91bmQiCisgIEhBVkVfVVNBQkxFX1dDSEFSX1Q9Im5vIHVzYWJsZSB3Y2hhcl90IGZvdW5kIgogZmkKLUFDX01TR19SRVNVTFQoJFBZX1VOSUNPREVfVFlQRSkKK0FDX01TR19SRVNVTFQoJEhBVkVfVVNBQkxFX1dDSEFSX1QpCiAKICMgY2hlY2sgZm9yIGVuZGlhbm5lc3MKIEFDX0NfQklHRU5ESUFOCkBAIC0zODA1LDcgKzM5NjUsNyBAQAogIyB3aXRoIHNldHVwLnB5LgogcHlfY3ZfbGliX3JlYWRsaW5lPW5vCiBBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBsaW5rIHJlYWRsaW5lIGxpYnNdKQotZm9yIHB5X2xpYnRlcm1jYXAgaW4gIiIgbmN1cnNlc3cgbmN1cnNlcyBjdXJzZXMgdGVybWNhcDsgZG8KK2ZvciBweV9saWJ0ZXJtY2FwIGluICIiIHRpbmZvIG5jdXJzZXN3IG5jdXJzZXMgY3Vyc2VzIHRlcm1jYXA7IGRvCiAgIGlmIHRlc3QgLXogIiRweV9saWJ0ZXJtY2FwIjsgdGhlbgogICAgIFJFQURMSU5FX0xJQlM9Ii1scmVhZGxpbmUiCiAgIGVsc2UKQEAgLTQwNDgsNiArNDIwOCw4IEBACiAgIFtEZWZpbmUgaWYgeW91IGhhdmUgc3RydWN0IHN0YXQuc3RfbXRpbWVuc2VjXSkKIGZpCiAKK2FjX3NhdmVfY3BwZmxhZ3M9IiRDUFBGTEFHUyIKK0NQUEZMQUdTPSIkQ1BQRkxBR1MgLUkvdXNyL2luY2x1ZGUvbmN1cnNlc3ciCiAjIE9uIEhQL1VYIDExLjAsIG12d2RlbGNoIGlzIGEgYmxvY2sgd2l0aCBhIHJldHVybiBzdGF0ZW1lbnQKIEFDX01TR19DSEVDS0lORyh3aGV0aGVyIG12d2RlbGNoIGlzIGFuIGV4cHJlc3Npb24pCiBBQ19DQUNIRV9WQUwoYWNfY3ZfbXZ3ZGVsY2hfaXNfZXhwcmVzc2lvbiwKQEAgLTQxMDIsMjcgKzQyNjQsMzQgQEAKICAgIEFDX01TR19SRVNVTFQoeWVzKV0sCiAgIFtBQ19NU0dfUkVTVUxUKG5vKV0KICkKKyMgbGFzdCBjdXJzZXMgY29uZmlndXJlIGNoZWNrCitDUFBGTEFHUz0kYWNfc2F2ZV9jcHBmbGFncwogCi1BQ19NU0dfQ0hFQ0tJTkcoZm9yIC9kZXYvcHRteCkKK0FDX01TR19OT1RJQ0UoW2NoZWNraW5nIGZvciBkZXZpY2UgZmlsZXNdKQogCi1pZiB0ZXN0IC1yIC9kZXYvcHRteAotdGhlbgotICBBQ19NU0dfUkVTVUxUKHllcykKLSAgQUNfREVGSU5FKEhBVkVfREVWX1BUTVgsIDEsCi0gIFtEZWZpbmUgaWYgd2UgaGF2ZSAvZGV2L3B0bXguXSkKLWVsc2UKLSAgQUNfTVNHX1JFU1VMVChubykKK2RubCBOT1RFOiBJbmZvcm0gdXNlciBob3cgdG8gcHJvY2VlZCB3aXRoIGZpbGVzIHdoZW4gY3Jvc3MgY29tcGlsaW5nLgoraWYgdGVzdCAieCRjcm9zc19jb21waWxpbmciID0geHllczsgdGhlbgorICBpZiB0ZXN0ICIke2FjX2N2X2ZpbGVfX2Rldl9wdG14K3NldH0iICE9IHNldDsgdGhlbgorICAgIEFDX01TR19DSEVDS0lORyhbZm9yIC9kZXYvcHRteF0pCisgICAgQUNfTVNHX1JFU1VMVChbbm90IHNldF0pCisgICAgQUNfTVNHX0VSUk9SKFtzZXQgYWNfY3ZfZmlsZV9fZGV2X3B0bXggdG8geWVzL25vIGluIHlvdXIgQ09ORklHX1NJVEUgZmlsZSB3aGVuIGNyb3NzIGNvbXBpbGluZ10pCisgIGZpCisgIGlmIHRlc3QgIiR7YWNfY3ZfZmlsZV9fZGV2X3B0YytzZXR9IiAhPSBzZXQ7IHRoZW4KKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAvZGV2L3B0Y10pCisgICAgQUNfTVNHX1JFU1VMVChbbm90IHNldF0pCisgICAgQUNfTVNHX0VSUk9SKFtzZXQgYWNfY3ZfZmlsZV9fZGV2X3B0YyB0byB5ZXMvbm8gaW4geW91ciBDT05GSUdfU0lURSBmaWxlIHdoZW4gY3Jvc3MgY29tcGlsaW5nXSkKKyAgZmkKIGZpCiAKLUFDX01TR19DSEVDS0lORyhmb3IgL2Rldi9wdGMpCi0KLWlmIHRlc3QgLXIgL2Rldi9wdGMKLXRoZW4KLSAgQUNfTVNHX1JFU1VMVCh5ZXMpCitBQ19DSEVDS19GSUxFKC9kZXYvcHRteCwgW10sIFtdKQoraWYgdGVzdCAieCRhY19jdl9maWxlX19kZXZfcHRteCIgPSB4eWVzOyB0aGVuCisgIEFDX0RFRklORShIQVZFX0RFVl9QVE1YLCAxLAorICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIC9kZXYvcHRteCBkZXZpY2UgZmlsZS5dKQorZmkKK0FDX0NIRUNLX0ZJTEUoL2Rldi9wdGMsIFtdLCBbXSkKK2lmIHRlc3QgIngkYWNfY3ZfZmlsZV9fZGV2X3B0YyIgPSB4eWVzOyB0aGVuCiAgIEFDX0RFRklORShIQVZFX0RFVl9QVEMsIDEsCi0gIFtEZWZpbmUgaWYgd2UgaGF2ZSAvZGV2L3B0Yy5dKQotZWxzZQotICBBQ19NU0dfUkVTVUxUKG5vKQorICBbRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIC9kZXYvcHRjIGRldmljZSBmaWxlLl0pCiBmaQogCiBpZiB0ZXN0ICIkaGF2ZV9sb25nX2xvbmciID0geWVzCkBAIC00MTYyLDcgKzQzMzEsMjMgQEAKICAgXV1dKV0sCiAgIFthY19jdl9oYXZlX2xvbmdfbG9uZ19mb3JtYXQ9eWVzXSwKICAgW2FjX2N2X2hhdmVfbG9uZ19sb25nX2Zvcm1hdD1ub10sCi0gIFthY19jdl9oYXZlX2xvbmdfbG9uZ19mb3JtYXQ9bm9dKQorICBbYWNfY3ZfaGF2ZV9sb25nX2xvbmdfZm9ybWF0PSJjcm9zcyAtLSBhc3N1bWluZyBubyIKKyAgIGlmIHRlc3QgeCRHQ0MgPSB4eWVzOyB0aGVuCisgICAgc2F2ZV9DRkxBR1M9JENGTEFHUworICAgIENGTEFHUz0iJENGTEFHUyAtV2Vycm9yIC1XZm9ybWF0IgorICAgIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1sKKyAgICAgICAgI2luY2x1ZGUgPHN0ZGlvLmg+CisgICAgICAgICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAgICAgIF1dLCBbWworICAgICAgY2hhciAqYnVmZmVyOworICAgICAgc3ByaW50ZihidWZmZXIsICIlbGxkIiwgKGxvbmcgbG9uZykxMjMpOworICAgICAgc3ByaW50ZihidWZmZXIsICIlbGxkIiwgKGxvbmcgbG9uZyktMTIzKTsKKyAgICAgIHNwcmludGYoYnVmZmVyLCAiJWxsdSIsICh1bnNpZ25lZCBsb25nIGxvbmcpMTIzKTsKKyAgICAgIF1dKV0sCisgICAgICBhY19jdl9oYXZlX2xvbmdfbG9uZ19mb3JtYXQ9eWVzCisgICAgKQorICAgIENGTEFHUz0kc2F2ZV9DRkxBR1MKKyAgIGZpXSkKICAgKQogICBBQ19NU0dfUkVTVUxUKCRhY19jdl9oYXZlX2xvbmdfbG9uZ19mb3JtYXQpCiBmaQpAQCAtNDI1NywzMCArNDQ0Miw2IEBACiAgICB3aWRlIGNoYXJzIHRoYXQgd291bGQgYmUgY29udmVydGVkLl0pCiBmaQogCi1BQ19NU0dfQ0hFQ0tJTkcod2hldGhlciAkQ0Mgc3VwcG9ydHMgY29tcHV0ZWQgZ290b3MpCi1BQ19DQUNIRV9WQUwoYWNfY3ZfY29tcHV0ZWRfZ290b3MsCi1BQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbW1sKLWludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKLXsKLSAgICBzdGF0aWMgdm9pZCAqdGFyZ2V0c1sxXSA9IHsgJiZMQUJFTDEgfTsKLSAgICBnb3RvIExBQkVMMjsKLUxBQkVMMToKLSAgICByZXR1cm4gMDsKLUxBQkVMMjoKLSAgICBnb3RvICp0YXJnZXRzWzBdOwotICAgIHJldHVybiAxOwotfQotXV1dKV0sCi1bYWNfY3ZfY29tcHV0ZWRfZ290b3M9eWVzXSwKLVthY19jdl9jb21wdXRlZF9nb3Rvcz1ub10sCi1bYWNfY3ZfY29tcHV0ZWRfZ290b3M9bm9dKSkKLUFDX01TR19SRVNVTFQoJGFjX2N2X2NvbXB1dGVkX2dvdG9zKQotaWYgdGVzdCAiJGFjX2N2X2NvbXB1dGVkX2dvdG9zIiA9IHllcwotdGhlbgotICBBQ19ERUZJTkUoSEFWRV9DT01QVVRFRF9HT1RPUywgMSwKLSAgW0RlZmluZSBpZiB0aGUgQyBjb21waWxlciBzdXBwb3J0cyBjb21wdXRlZCBnb3Rvcy5dKQotZmkKLQogIyBDaGVjayBmb3IgLS13aXRoLWNvbXB1dGVkLWdvdG9zCiBBQ19NU0dfQ0hFQ0tJTkcoZm9yIC0td2l0aC1jb21wdXRlZC1nb3RvcykKIEFDX0FSR19XSVRIKGNvbXB1dGVkLWdvdG9zLApAQCAtNDMwMiwxOCArNDQ2MywzOSBAQAogXSwKIFtBQ19NU0dfUkVTVUxUKG5vIHZhbHVlIHNwZWNpZmllZCldKQogCitBQ19NU0dfQ0hFQ0tJTkcod2hldGhlciAkQ0Mgc3VwcG9ydHMgY29tcHV0ZWQgZ290b3MpCitBQ19DQUNIRV9WQUwoYWNfY3ZfY29tcHV0ZWRfZ290b3MsCitBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbW1sKK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKyAgICBzdGF0aWMgdm9pZCAqdGFyZ2V0c1sxXSA9IHsgJiZMQUJFTDEgfTsKKyAgICBnb3RvIExBQkVMMjsKK0xBQkVMMToKKyAgICByZXR1cm4gMDsKK0xBQkVMMjoKKyAgICBnb3RvICp0YXJnZXRzWzBdOworICAgIHJldHVybiAxOworfQorXV1dKV0sCitbYWNfY3ZfY29tcHV0ZWRfZ290b3M9eWVzXSwKK1thY19jdl9jb21wdXRlZF9nb3Rvcz1ub10sCitbaWYgdGVzdCAiJHt3aXRoX2NvbXB1dGVkX2dvdG9zK3NldH0iID0gc2V0OyB0aGVuCisgICBhY19jdl9jb21wdXRlZF9nb3Rvcz0iJHdpdGhfY29tcHV0ZWRfZ290b3MgLS0gY29uZmlndXJlZCAtLXdpdGgob3V0KS1jb21wdXRlZC1nb3RvcyIKKyBlbHNlCisgICBhY19jdl9jb21wdXRlZF9nb3Rvcz1ubworIGZpXSkpCitBQ19NU0dfUkVTVUxUKCRhY19jdl9jb21wdXRlZF9nb3RvcykKK2Nhc2UgIiRhY19jdl9jb21wdXRlZF9nb3RvcyIgaW4geWVzKikKKyAgQUNfREVGSU5FKEhBVkVfQ09NUFVURURfR09UT1MsIDEsCisgIFtEZWZpbmUgaWYgdGhlIEMgY29tcGlsZXIgc3VwcG9ydHMgY29tcHV0ZWQgZ290b3MuXSkKK2VzYWMKKwogY2FzZSAkYWNfc3lzX3N5c3RlbSBpbgogQUlYKikgICAKICAgQUNfREVGSU5FKEhBVkVfQlJPS0VOX1BJUEVfQlVGLCAxLCBbRGVmaW5lIGlmIHRoZSBzeXN0ZW0gcmVwb3J0cyBhbiBpbnZhbGlkIFBJUEVfQlVGIHZhbHVlLl0pIDs7CiBlc2FjCiAKIAotY2FzZSAkYWNfc3lzX3N5c3RlbSBpbgotICBPU0YqKSBBQ19NU0dfRVJST1IoT1NGKiBzeXN0ZW1zIGFyZSBkZXByZWNhdGVkIHVubGVzcyBzb21lYm9keSB2b2x1bnRlZXJzLiBDaGVjayBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlODYwNikgOzsKLWVzYWMKLQotQUNfQ0hFQ0tfRlVOQyhwaXBlMiwgQUNfREVGSU5FKEhBVkVfUElQRTIsIDEsIFtEZWZpbmUgaWYgdGhlIE9TIHN1cHBvcnRzIHBpcGUyKCldKSwgKQotCiBBQ19TVUJTVChUSFJFQURIRUFERVJTKQogCiBmb3IgaCBpbiBgKGNkICRzcmNkaXI7ZWNobyBQeXRob24vdGhyZWFkXyouaClgCkBAIC00MzMxLDYgKzQ1MTMsODkgQEAKIGRvbmUKIEFDX01TR19SRVNVTFQoZG9uZSkKIAorIyBBdmFpbGFiaWxpdHkgb2YgLU8yOgorQUNfTVNHX0NIRUNLSU5HKGZvciAtTzIpCitzYXZlZF9jZmxhZ3M9IiRDRkxBR1MiCitDRkxBR1M9Ii1PMiIKK0FDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tdXSwgW1sKK11dKV0sW2hhdmVfTzI9eWVzXSxbaGF2ZV9PMj1ub10pCitBQ19NU0dfUkVTVUxUKCRoYXZlX08yKQorQ0ZMQUdTPSIkc2F2ZWRfY2ZsYWdzIgorCisjIF9GT1JUSUZZX1NPVVJDRSB3cmFwcGVycyBmb3IgbWVtbW92ZSBhbmQgYmNvcHkgYXJlIGluY29ycmVjdDoKKyMgaHR0cDovL3NvdXJjZXdhcmUub3JnL21sL2xpYmMtYWxwaGEvMjAxMC0xMi9tc2cwMDAwOS5odG1sCitBQ19NU0dfQ0hFQ0tJTkcoZm9yIGdsaWJjIF9GT1JUSUZZX1NPVVJDRS9tZW1tb3ZlIGJ1ZykKK3NhdmVkX2NmbGFncz0iJENGTEFHUyIKK0NGTEFHUz0iLU8yIC1EX0ZPUlRJRllfU09VUkNFPTIiCitpZiB0ZXN0ICIkaGF2ZV9PMiIgPSBubzsgdGhlbgorICAgIENGTEFHUz0iIgorZmkKK0FDX1JVTl9JRkVMU0UoW0FDX0xBTkdfU09VUkNFKFtbCisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KK3ZvaWQgZm9vKHZvaWQgKnAsIHZvaWQgKnEpIHsgbWVtbW92ZShwLCBxLCAxOSk7IH0KK2ludCBtYWluKCkgeworICBjaGFyIGFbMzJdID0gIjEyMzQ1Njc4OTAwMDAwMDAwMCI7CisgIGZvbygmYVs5XSwgYSk7CisgIGlmIChzdHJjbXAoYSwgIjEyMzQ1Njc4OTEyMzQ1Njc4OTAwMDAwMDAwMCIpICE9IDApCisgICAgcmV0dXJuIDE7CisgIGZvbyhhLCAmYVs5XSk7CisgIGlmIChzdHJjbXAoYSwgIjEyMzQ1Njc4OTAwMDAwMDAwMCIpICE9IDApCisgICAgcmV0dXJuIDE7CisgIHJldHVybiAwOworfQorXV0pXSwKK1toYXZlX2dsaWJjX21lbW1vdmVfYnVnPW5vXSwKK1toYXZlX2dsaWJjX21lbW1vdmVfYnVnPXllc10sCitbaGF2ZV9nbGliY19tZW1tb3ZlX2J1Zz11bmRlZmluZWRdKQorQ0ZMQUdTPSIkc2F2ZWRfY2ZsYWdzIgorQUNfTVNHX1JFU1VMVCgkaGF2ZV9nbGliY19tZW1tb3ZlX2J1ZykKK2lmIHRlc3QgIiRoYXZlX2dsaWJjX21lbW1vdmVfYnVnIiA9IHllczsgdGhlbgorICAgIEFDX0RFRklORShIQVZFX0dMSUJDX01FTU1PVkVfQlVHLCAxLAorICAgIFtEZWZpbmUgaWYgZ2xpYmMgaGFzIGluY29ycmVjdCBfRk9SVElGWV9TT1VSQ0Ugd3JhcHBlcnMKKyAgICAgZm9yIG1lbW1vdmUgYW5kIGJjb3B5Ll0pCitmaQorCitpZiB0ZXN0ICIkaGF2ZV9nY2NfYXNtX2Zvcl94ODciID0geWVzOyB0aGVuCisgICAgIyBTb21lIHZlcnNpb25zIG9mIGdjYyBtaXNjb21waWxlIGlubGluZSBhc206CisgICAgIyBodHRwOi8vZ2NjLmdudS5vcmcvYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTQ2NDkxCisgICAgIyBodHRwOi8vZ2NjLmdudS5vcmcvbWwvZ2NjLzIwMTAtMTEvbXNnMDAzNjYuaHRtbAorICAgIGNhc2UgJENDIGluCisgICAgICAgICpnY2MqKQorICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKGZvciBnY2MgaXBhLXB1cmUtY29uc3QgYnVnKQorICAgICAgICAgICAgc2F2ZWRfY2ZsYWdzPSIkQ0ZMQUdTIgorICAgICAgICAgICAgQ0ZMQUdTPSItTzIiCisgICAgICAgICAgICBBQ19SVU5fSUZFTFNFKFtBQ19MQU5HX1NPVVJDRShbWworICAgICAgICAgICAgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKSBpbnQKKyAgICAgICAgICAgIGZvbyhpbnQgKnApIHsKKyAgICAgICAgICAgICAgaW50IHI7CisgICAgICAgICAgICAgIGFzbSAoICJtb3ZsIFwkNiwgKCUxKVxuXHQiCisgICAgICAgICAgICAgICAgICAgICJ4b3JsICUwLCAlMFxuXHQiCisgICAgICAgICAgICAgICAgICAgIDogIj1yIiAocikgOiAiciIgKHApIDogIm1lbW9yeSIKKyAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbnQgbWFpbigpIHsKKyAgICAgICAgICAgICAgaW50IHAgPSA4OworICAgICAgICAgICAgICBpZiAoKGZvbygmcCkgPyA6IHApICE9IDYpCisgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgXV0pXSwKKyAgICAgICAgICAgIFtoYXZlX2lwYV9wdXJlX2NvbnN0X2J1Zz1ub10sCisgICAgICAgICAgICBbaGF2ZV9pcGFfcHVyZV9jb25zdF9idWc9eWVzXSwKKyAgICAgICAgICAgIFtoYXZlX2lwYV9wdXJlX2NvbnN0X2J1Zz11bmRlZmluZWRdKQorICAgICAgICAgICAgQ0ZMQUdTPSIkc2F2ZWRfY2ZsYWdzIgorICAgICAgICAgICAgQUNfTVNHX1JFU1VMVCgkaGF2ZV9pcGFfcHVyZV9jb25zdF9idWcpCisgICAgICAgICAgICBpZiB0ZXN0ICIkaGF2ZV9pcGFfcHVyZV9jb25zdF9idWciID0geWVzOyB0aGVuCisgICAgICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfSVBBX1BVUkVfQ09OU1RfQlVHLCAxLAorICAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmaW5lIGlmIGdjYyBoYXMgdGhlIGlwYS1wdXJlLWNvbnN0IGJ1Zy5dKQorICAgICAgICAgICAgZmkKKyAgICAgICAgOzsKKyAgICBlc2FjCitmaQorCiAjIGdlbmVyYXRlIG91dHB1dCBmaWxlcwogQUNfQ09ORklHX0ZJTEVTKE1ha2VmaWxlLnByZSBNb2R1bGVzL1NldHVwLmNvbmZpZyBNaXNjL3B5dGhvbi5wYykKIEFDX0NPTkZJR19GSUxFUyhbTW9kdWxlcy9sZF9zb19haXhdLCBbY2htb2QgK3ggTW9kdWxlcy9sZF9zb19haXhdKQpkaWZmIC0tZ2l0IGEvcHljb25maWcuaC5pbiBiL3B5Y29uZmlnLmguaW4KaW5kZXggY2E4Y2NiNi4uM2NhM2E0ZiAxMDA2NDQKLS0tIGEvcHljb25maWcuaC5pbgorKysgYi9weWNvbmZpZy5oLmluCkBAIC0xMiw5ICsxMiw2IEBACiAgICBzdXBwb3J0IGZvciBBSVggQysrIHNoYXJlZCBleHRlbnNpb24gbW9kdWxlcy4gKi8KICN1bmRlZiBBSVhfR0VOVUlORV9DUExVU1BMVVMKIAotLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSBNYWNoIGN0aHJlYWRzIHBhY2thZ2UgKi8KLSN1bmRlZiBDX1RIUkVBRFMKLQogLyogRGVmaW5lIGlmIEMgZG91YmxlcyBhcmUgNjQtYml0IElFRUUgNzU0IGJpbmFyeSBmb3JtYXQsIHN0b3JlZCBpbiBBUk0KICAgIG1peGVkLWVuZGlhbiBvcmRlciAoYnl0ZSBvcmRlciA0NTY3MDEyMykgKi8KICN1bmRlZiBET1VCTEVfSVNfQVJNX01JWEVEX0VORElBTl9JRUVFNzU0CkBAIC0xMTYsNiArMTEzLDEyIEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNsb2NrJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0NMT0NLCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgY2xvY2tfZ2V0cmVzJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0NMT0NLX0dFVFJFUworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGNsb2NrX2dldHRpbWUnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfQ0xPQ0tfR0VUVElNRQorCiAvKiBEZWZpbmUgaWYgdGhlIEMgY29tcGlsZXIgc3VwcG9ydHMgY29tcHV0ZWQgZ290b3MuICovCiAjdW5kZWYgSEFWRV9DT01QVVRFRF9HT1RPUwogCkBAIC0xNjUsMTAgKzE2OCwxMCBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGRldmljZSBtYWNyb3MuICovCiAjdW5kZWYgSEFWRV9ERVZJQ0VfTUFDUk9TCiAKLS8qIERlZmluZSBpZiB3ZSBoYXZlIC9kZXYvcHRjLiAqLworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIC9kZXYvcHRjIGRldmljZSBmaWxlLiAqLwogI3VuZGVmIEhBVkVfREVWX1BUQwogCi0vKiBEZWZpbmUgaWYgd2UgaGF2ZSAvZGV2L3B0bXguICovCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgL2Rldi9wdG14IGRldmljZSBmaWxlLiAqLwogI3VuZGVmIEhBVkVfREVWX1BUTVgKIAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkaXJlY3QuaD4gaGVhZGVyIGZpbGUuICovCkBAIC0xOTYsNiArMTk5LDkgQEAKIC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgJ2Vwb2xsJyBmdW5jdGlvbnMuICovCiAjdW5kZWYgSEFWRV9FUE9MTAogCisvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlICdlcG9sbF9jcmVhdGUxJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0VQT0xMX0NSRUFURTEKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBlcmYnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfRVJGCiAKQEAgLTIxMSwyMSArMjE3LDM2IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGV4cG0xJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0VYUE0xCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmFjY2Vzc2F0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZBQ0NFU1NBVAorCiAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlICdmY2hkaXInIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfRkNIRElSCiAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmNobW9kJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0ZDSE1PRAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZjaG1vZGF0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZDSE1PREFUCisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmNob3duJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0ZDSE9XTgogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZjaG93bmF0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0ZDSE9XTkFUCisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8ZmNudGwuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9GQ05UTF9ICiAKIC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgJ2ZkYXRhc3luYycgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9GREFUQVNZTkMKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBmZG9wZW5kaXInIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRkRPUEVORElSCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmV4ZWN2ZScgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9GRVhFQ1ZFCisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZmluaXRlJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0ZJTklURQogCkBAIC0yNDcsNiArMjY4LDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZnNlZWtvJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0ZTRUVLTwogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZzdGF0YXQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRlNUQVRBVAorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZzdGF0dmZzJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0ZTVEFUVkZTCiAKQEAgLTI2NSwxNiArMjg5LDMxIEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZ0cnVuY2F0ZScgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9GVFJVTkNBVEUKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBmdXRpbWVucycgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9GVVRJTUVOUworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZ1dGltZXMnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfRlVUSU1FUworCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGZ1dGltZXNhdCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9GVVRJTUVTQVQKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnYWlfc3RyZXJyb3InIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfR0FJX1NUUkVSUk9SCiAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2FtbWEnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfR0FNTUEKIAorLyogRGVmaW5lIGlmIHdlIGNhbiB1c2UgeDY0IGdjYyBpbmxpbmUgYXNzZW1ibGVyICovCisjdW5kZWYgSEFWRV9HQ0NfQVNNX0ZPUl9YNjQKKwogLyogRGVmaW5lIGlmIHdlIGNhbiB1c2UgZ2NjIGlubGluZSBhc3NlbWJsZXIgdG8gZ2V0IGFuZCBzZXQgeDg3IGNvbnRyb2wgd29yZAogICAgKi8KICN1bmRlZiBIQVZFX0dDQ19BU01fRk9SX1g4NwogCisvKiBEZWZpbmUgaWYgeW91ciBjb21waWxlciBwcm92aWRlcyBfX3VpbnQxMjhfdCAqLworI3VuZGVmIEhBVkVfR0NDX1VJTlQxMjhfVAorCiAvKiBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIGdldGFkZHJpbmZvIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfR0VUQUREUklORk8KIApAQCAtMjg0LDYgKzMyMyw5IEBACiAvKiBEZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSBmbG9ja2ZpbGUoKSwgZ2V0Y191bmxvY2tlZCgpLCBhbmQgZnVubG9ja2ZpbGUoKSAqLwogI3VuZGVmIEhBVkVfR0VUQ19VTkxPQ0tFRAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGdldGdyb3VwbGlzdCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9HRVRHUk9VUExJU1QKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBnZXRncm91cHMnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfR0VUR1JPVVBTCiAKQEAgLTM1Niw2ICszOTgsMTAgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgZ2V0d2QnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfR0VUV0QKIAorLyogRGVmaW5lIGlmIGdsaWJjIGhhcyBpbmNvcnJlY3QgX0ZPUlRJRllfU09VUkNFIHdyYXBwZXJzIGZvciBtZW1tb3ZlIGFuZAorICAgYmNvcHkuICovCisjdW5kZWYgSEFWRV9HTElCQ19NRU1NT1ZFX0JVRworCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGdycC5oPiBoZWFkZXIgZmlsZS4gKi8KICN1bmRlZiBIQVZFX0dSUF9ICiAKQEAgLTM2OCw2ICs0MTQsOSBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxpZWVlZnAuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9JRUVFRlBfSAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGlmX25hbWVpbmRleCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9JRl9OQU1FSU5ERVgKKwogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSAnaW5ldF9hdG9uJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0lORVRfQVRPTgogCkBAIC0zODMsNiArNDMyLDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8aW8uaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9JT19ICiAKKy8qIERlZmluZSBpZiBnY2MgaGFzIHRoZSBpcGEtcHVyZS1jb25zdCBidWcuICovCisjdW5kZWYgSEFWRV9JUEFfUFVSRV9DT05TVF9CVUcKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBraWxsJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX0tJTEwKIApAQCAtNDMxLDIxICs0ODMsMzkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVzb2x2JyBsaWJyYXJ5ICgtbHJlc29sdikuICovCiAjdW5kZWYgSEFWRV9MSUJSRVNPTFYKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZW5kZmlsZScgbGlicmFyeSAoLWxzZW5kZmlsZSkuICovCisjdW5kZWYgSEFWRV9MSUJTRU5ERklMRQorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpYnV0aWwuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9MSUJVVElMX0gKIAogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSAnbGluaycgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9MSU5LCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbGlua2F0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX0xJTktBVAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L2Nhbi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX0NBTl9ICisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGludXgvY2FuL3Jhdy5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX0xJTlVYX0NBTl9SQVdfSAorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGxpbnV4L25ldGxpbmsuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9MSU5VWF9ORVRMSU5LX0gKIAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxsaW51eC90aXBjLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfTElOVVhfVElQQ19ICiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbG9ja2YnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfTE9DS0YKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBsb2cxcCcgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9MT0cxUAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGxvZzInIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfTE9HMgorCiAvKiBEZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSB0aGUgdHlwZSBsb25nIGRvdWJsZS4gKi8KICN1bmRlZiBIQVZFX0xPTkdfRE9VQkxFCiAKQEAgLTQ1NSw2ICs1MjUsOSBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBsc3RhdCcgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9MU1RBVAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYGx1dGltZXMnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfTFVUSU1FUworCiAvKiBEZWZpbmUgdGhpcyBpZiB5b3UgaGF2ZSB0aGUgbWFrZWRldiBtYWNyby4gKi8KICN1bmRlZiBIQVZFX01BS0VERVYKIApAQCAtNDY3LDE1ICs1NDAsMzAgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bWVtb3J5Lmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfTUVNT1JZX0gKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtZW1yY2hyJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX01FTVJDSFIKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBta2RpcmF0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX01LRElSQVQKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBta2ZpZm8nIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfTUtGSUZPCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbWtmaWZvYXQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfTUtGSUZPQVQKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBta25vZCcgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9NS05PRAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1rbm9kYXQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfTUtOT0RBVAorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG1rdGltZScgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9NS1RJTUUKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtbWFwJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX01NQVAKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtcmVtYXAnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfTVJFTUFQCiAKQEAgLTQ4OCw5ICs1NzYsMTUgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bmV0cGFja2V0L3BhY2tldC5oPiBoZWFkZXIgZmlsZS4gKi8KICN1bmRlZiBIQVZFX05FVFBBQ0tFVF9QQUNLRVRfSAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG5ldC9pZi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX05FVF9JRl9ICisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgbmljZScgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9OSUNFCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgb3BlbmF0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX09QRU5BVAorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYG9wZW5wdHknIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfT1BFTlBUWQogCkBAIC01MDMsNyArNTk3LDcgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcGF1c2UnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfUEFVU0UKIAotLyogRGVmaW5lIGlmIHRoZSBPUyBzdXBwb3J0cyBwaXBlMigpICovCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHBpcGUyJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1BJUEUyCiAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcGxvY2snIGZ1bmN0aW9uLiAqLwpAQCAtNTE1LDYgKzYwOSwxNSBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxwb2xsLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfUE9MTF9ICiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcG9zaXhfZmFkdmlzZScgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9QT1NJWF9GQURWSVNFCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcG9zaXhfZmFsbG9jYXRlJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1BPU0lYX0ZBTExPQ0FURQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHByZWFkJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1BSRUFECisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8cHJvY2Vzcy5oPiBoZWFkZXIgZmlsZS4gKi8KICN1bmRlZiBIQVZFX1BST0NFU1NfSAogCkBAIC01MzAsNiArNjMzLDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcHRocmVhZF9pbml0JyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1BUSFJFQURfSU5JVAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHB0aHJlYWRfa2lsbCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9QVEhSRUFEX0tJTEwKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwdGhyZWFkX3NpZ21hc2snIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfUFRIUkVBRF9TSUdNQVNLCiAKQEAgLTUzOSwxMiArNjQ1LDI0IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHB1dGVudicgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9QVVRFTlYKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBwd3JpdGUnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfUFdSSVRFCisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVhZGxpbmsnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfUkVBRExJTksKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByZWFkbGlua2F0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1JFQURMSU5LQVQKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByZWFkdicgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9SRUFEVgorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHJlYWxwYXRoJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1JFQUxQQVRICiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgcmVuYW1lYXQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfUkVOQU1FQVQKKwogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHJlYWRsaW5lIDIuMSAqLwogI3VuZGVmIEhBVkVfUkxfQ0FMTEJBQ0sKIApAQCAtNTY5LDYgKzY4NywyNCBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGByb3VuZCcgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9ST1VORAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNjaGVkX2dldF9wcmlvcml0eV9tYXgnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfU0NIRURfR0VUX1BSSU9SSVRZX01BWAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNjaGVkLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU0NIRURfSAorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNjaGVkX3JyX2dldF9pbnRlcnZhbCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TQ0hFRF9SUl9HRVRfSU5URVJWQUwKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzY2hlZF9zZXRhZmZpbml0eScgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TQ0hFRF9TRVRBRkZJTklUWQorCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNjaGVkX3NldHBhcmFtJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NDSEVEX1NFVFBBUkFNCisKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2NoZWRfc2V0c2NoZWR1bGVyJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NDSEVEX1NFVFNDSEVEVUxFUgorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbGVjdCcgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9TRUxFQ1QKIApAQCAtNTg0LDYgKzcyMCw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbV91bmxpbmsnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfU0VNX1VOTElOSwogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNlbmRmaWxlJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NFTkRGSUxFCisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0ZWdpZCcgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9TRVRFR0lECiAKQEAgLTU5Niw2ICs3MzUsOSBAQAogLyogRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSAnc2V0Z3JvdXBzJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1NFVEdST1VQUwogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNldGhvc3RuYW1lJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NFVEhPU1ROQU1FCisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0aXRpbWVyJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1NFVElUSU1FUgogCkBAIC02MDgsNiArNzUwLDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0cGdycCcgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9TRVRQR1JQCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2V0cHJpb3JpdHknIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfU0VUUFJJT1JJVFkKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRyZWdpZCcgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9TRVRSRUdJRAogCkBAIC02MzUsMTUgKzc4MCwzMCBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdhY3Rpb24nIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfU0lHQUNUSU9OCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc2lnYWx0c3RhY2snIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfU0lHQUxUU1RBQ0sKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdpbnRlcnJ1cHQnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfU0lHSU5URVJSVVBUCiAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c2lnbmFsLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfU0lHTkFMX0gKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdwZW5kaW5nJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NJR1BFTkRJTkcKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWdyZWxzZScgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9TSUdSRUxTRQogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNpZ3RpbWVkd2FpdCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TSUdUSU1FRFdBSVQKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWd3YWl0JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NJR1dBSVQKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzaWd3YWl0aW5mbycgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TSUdXQUlUSU5GTworCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHNucHJpbnRmJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1NOUFJJTlRGCiAKQEAgLTcyNyw2ICs4ODcsMTIgQEAKIC8qIERlZmluZSBpZiB5b3UgaGF2ZSB0aGUgJ3N5bWxpbmsnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfU1lNTElOSwogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHN5bWxpbmthdCcgZnVuY3Rpb24uICovCisjdW5kZWYgSEFWRV9TWU1MSU5LQVQKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeW5jJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1NZTkMKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzeXNjb25mJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1NZU0NPTkYKIApAQCAtNzM5LDYgKzkwNSw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy9ic2R0dHkuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9TWVNfQlNEVFRZX0gKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGV2cG9sbC5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19ERVZQT0xMX0gKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvZGlyLmg+IGhlYWRlciBmaWxlLCBhbmQgaXQgZGVmaW5lcyBgRElSJy4KICAgICovCiAjdW5kZWYgSEFWRV9TWVNfRElSX0gKQEAgLTc1Miw2ICs5MjEsMTIgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2ZpbGUuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9TWVNfRklMRV9ICiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2lvY3RsLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX0lPQ1RMX0gKKworLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMva2Vybl9jb250cm9sLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX0tFUk5fQ09OVFJPTF9ICisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL2xvYWRhdmcuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9TWVNfTE9BREFWR19ICiAKQEAgLTc4MCw2ICs5NTUsOSBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc2VsZWN0Lmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfU1lTX1NFTEVDVF9ICiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3NlbmRmaWxlLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1NFTkRGSUxFX0gKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc29ja2V0Lmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfU1lTX1NPQ0tFVF9ICiAKQEAgLTc5Miw2ICs5NzAsOSBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzY2FsbC5oPiBoZWFkZXIgZmlsZS4gKi8KICN1bmRlZiBIQVZFX1NZU19TWVNDQUxMX0gKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3lzX2RvbWFpbi5oPiBoZWFkZXIgZmlsZS4gKi8KKyN1bmRlZiBIQVZFX1NZU19TWVNfRE9NQUlOX0gKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdGVybWlvLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfU1lTX1RFUk1JT19ICiAKQEAgLTgwNCw2ICs5ODUsOSBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9TWVNfVFlQRVNfSAogCisvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN5cy91aW8uaD4gaGVhZGVyIGZpbGUuICovCisjdW5kZWYgSEFWRV9TWVNfVUlPX0gKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvdW4uaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9TWVNfVU5fSAogCkBAIC04MTMsNiArOTk3LDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3dhaXQuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9TWVNfV0FJVF9ICiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8c3lzL3hhdHRyLmg+IGhlYWRlciBmaWxlLiAqLworI3VuZGVmIEhBVkVfU1lTX1hBVFRSX0gKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB0Y2dldHBncnAnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfVENHRVRQR1JQCiAKQEAgLTgzMSw5ICsxMDE4LDYgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdGdhbW1hJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1RHQU1NQQogCi0vKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHRocmVhZC5oPiBoZWFkZXIgZmlsZS4gKi8KLSN1bmRlZiBIQVZFX1RIUkVBRF9ICi0KIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdGltZWdtJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1RJTUVHTQogCkBAIC04NzIsNiArMTA1Niw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFkZXIgZmlsZS4gKi8KICN1bmRlZiBIQVZFX1VOSVNURF9ICiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdW5saW5rYXQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfVU5MSU5LQVQKKwogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB1bnNldGVudicgZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9VTlNFVEVOVgogCkBAIC04ODMsNiArMTA3MCw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHV0aWwuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5kZWYgSEFWRV9VVElMX0gKIAorLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGB1dGltZW5zYXQnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhBVkVfVVRJTUVOU0FUCisKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgdXRpbWVzJyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1VUSU1FUwogCkBAIC04OTUsNiArMTA4NSw5IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHdhaXQ0JyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1dBSVQ0CiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgd2FpdGlkJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1dBSVRJRAorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYHdhaXRwaWQnIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfV0FJVFBJRAogCkBAIC05MTQsMjEgKzExMDcsMTggQEAKICAgICovCiAjdW5kZWYgSEFWRV9XT1JLSU5HX1RaU0VUCiAKKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgd3JpdGV2JyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZFX1dSSVRFVgorCiAvKiBEZWZpbmUgaWYgdGhlIHpsaWIgbGlicmFyeSBoYXMgaW5mbGF0ZUNvcHkgKi8KICN1bmRlZiBIQVZFX1pMSUJfQ09QWQogCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYF9nZXRwdHknIGZ1bmN0aW9uLiAqLwogI3VuZGVmIEhBVkVfX0dFVFBUWQogCi0vKiBEZWZpbmUgaWYgeW91IGFyZSB1c2luZyBNYWNoIGN0aHJlYWRzIGRpcmVjdGx5IHVuZGVyIC9pbmNsdWRlICovCi0jdW5kZWYgSFVSRF9DX1RIUkVBRFMKLQogLyogRGVmaW5lIGlmIGxvZzFwKC0wLikgaXMgMC4gcmF0aGVyIHRoYW4gLTAuICovCiAjdW5kZWYgTE9HMVBfRFJPUFNfWkVST19TSUdOCiAKLS8qIERlZmluZSBpZiB5b3UgYXJlIHVzaW5nIE1hY2ggY3RocmVhZHMgdW5kZXIgbWFjaCAvICovCi0jdW5kZWYgTUFDSF9DX1RIUkVBRFMKLQogLyogRGVmaW5lIHRvIDEgaWYgYG1ham9yJywgYG1pbm9yJywgYW5kIGBtYWtlZGV2JyBhcmUgZGVjbGFyZWQgaW4gPG1rZGV2Lmg+LgogICAgKi8KICN1bmRlZiBNQUpPUl9JTl9NS0RFVgpAQCAtOTczLDE4ICsxMTYzLDEyIEBACiAvKiBEZWZpbmUgdG8gcHJpbnRmIGZvcm1hdCBtb2RpZmllciBmb3IgUHlfc3NpemVfdCAqLwogI3VuZGVmIFBZX0ZPUk1BVF9TSVpFX1QKIAotLyogRGVmaW5lIGFzIHRoZSBpbnRlZ3JhbCB0eXBlIHVzZWQgZm9yIFVuaWNvZGUgcmVwcmVzZW50YXRpb24uICovCi0jdW5kZWYgUFlfVU5JQ09ERV9UWVBFCi0KIC8qIERlZmluZSBpZiB5b3Ugd2FudCB0byBidWlsZCBhbiBpbnRlcnByZXRlciB3aXRoIG1hbnkgcnVuLXRpbWUgY2hlY2tzLiAqLwogI3VuZGVmIFB5X0RFQlVHCiAKIC8qIERlZmluZWQgaWYgUHl0aG9uIGlzIGJ1aWx0IGFzIGEgc2hhcmVkIGxpYnJhcnkuICovCiAjdW5kZWYgUHlfRU5BQkxFX1NIQVJFRAogCi0vKiBEZWZpbmUgYXMgdGhlIHNpemUgb2YgdGhlIHVuaWNvZGUgdHlwZS4gKi8KLSN1bmRlZiBQeV9VTklDT0RFX1NJWkUKLQogLyogYXNzdW1lIEM4OSBzZW1hbnRpY3MgdGhhdCBSRVRTSUdUWVBFIGlzIGFsd2F5cyB2b2lkICovCiAjdW5kZWYgUkVUU0lHVFlQRQogCkBAIC0xMDU4LDYgKzEyNDIsOSBAQAogLyogRGVmaW5lIGlmIHRhbmgoLTAuKSBpcyAtMC4sIG9yIGlmIHBsYXRmb3JtIGRvZXNuJ3QgaGF2ZSBzaWduZWQgemVyb3MgKi8KICN1bmRlZiBUQU5IX1BSRVNFUlZFU19aRVJPX1NJR04KIAorLyogTGlicmFyeSBuZWVkZWQgYnkgdGltZW1vZHVsZS5jOiBsaWJydCBtYXkgYmUgbmVlZGVkIGZvciBjbG9ja19nZXR0aW1lKCkgKi8KKyN1bmRlZiBUSU1FTU9EVUxFX0xJQgorCiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2FuIHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KICN1bmRlZiBUSU1FX1dJVEhfU1lTX1RJTUUKIApAQCAtMTE3MCwxNCArMTM1NywxMSBAQAogLyogRGVmaW5lIG9uIE5ldEJTRCB0byBhY3RpdmF0ZSBhbGwgbGlicmFyeSBmZWF0dXJlcyAqLwogI3VuZGVmIF9ORVRCU0RfU09VUkNFCiAKLS8qIERlZmluZSBfT1NGX1NPVVJDRSB0byBnZXQgdGhlIG1ha2VkZXYgbWFjcm8uICovCi0jdW5kZWYgX09TRl9TT1VSQ0UKLQogLyogRGVmaW5lIHRvIDIgaWYgdGhlIHN5c3RlbSBkb2VzIG5vdCBwcm92aWRlIFBPU0lYLjEgZmVhdHVyZXMgZXhjZXB0IHdpdGgKICAgIHRoaXMgZGVmaW5lZC4gKi8KICN1bmRlZiBfUE9TSVhfMV9TT1VSQ0UKIAotLyogRGVmaW5lIHRvIGFjdGl2YXRlIGZlYXR1cmVzIGZyb20gSUVFRSBTdGRzIDEwMDMuMS0yMDAxICovCisvKiBEZWZpbmUgdG8gYWN0aXZhdGUgZmVhdHVyZXMgZnJvbSBJRUVFIFN0ZHMgMTAwMy4xLTIwMDggKi8KICN1bmRlZiBfUE9TSVhfQ19TT1VSQ0UKIAogLyogRGVmaW5lIHRvIDEgaWYgeW91IG5lZWQgdG8gaW4gb3JkZXIgZm9yIGBzdGF0JyBhbmQgb3RoZXIgdGhpbmdzIHRvIHdvcmsuICovCmRpZmYgLS1naXQgYS9zZXR1cC5weSBiL3NldHVwLnB5CmluZGV4IDI1MzlmNTAuLmM3YzU5MjkgMTAwNjQ0Ci0tLSBhL3NldHVwLnB5CisrKyBiL3NldHVwLnB5CkBAIC0xLDggKzEsNiBAQAogIyBBdXRvZGV0ZWN0aW5nIHNldHVwLnB5IHNjcmlwdCBmb3IgYnVpbGRpbmcgdGhlIFB5dGhvbiBleHRlbnNpb25zCiAjCiAKLV9fdmVyc2lvbl9fID0gIiRSZXZpc2lvbiQiCi0KIGltcG9ydCBzeXMsIG9zLCBpbXAsIHJlLCBvcHRwYXJzZQogZnJvbSBnbG9iIGltcG9ydCBnbG9iCiBpbXBvcnQgc3lzY29uZmlnCkBAIC0xNyw4ICsxNSwyMCBAQAogZnJvbSBkaXN0dXRpbHMuY29tbWFuZC5idWlsZF9zY3JpcHRzIGltcG9ydCBidWlsZF9zY3JpcHRzCiBmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCiAKK2Nyb3NzX2NvbXBpbGluZyA9ICJfUFlUSE9OX0hPU1RfUExBVEZPUk0iIGluIG9zLmVudmlyb24KKworZGVmIGdldF9wbGF0Zm9ybSgpOgorICAgICMgY3Jvc3MgYnVpbGQKKyAgICBpZiAiX1BZVEhPTl9IT1NUX1BMQVRGT1JNIiBpbiBvcy5lbnZpcm9uOgorICAgICAgICByZXR1cm4gb3MuZW52aXJvblsiX1BZVEhPTl9IT1NUX1BMQVRGT1JNIl0KKyAgICAjIEdldCB2YWx1ZSBvZiBzeXMucGxhdGZvcm0KKyAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnb3NmMScpOgorICAgICAgICByZXR1cm4gJ29zZjEnCisgICAgcmV0dXJuIHN5cy5wbGF0Zm9ybQoraG9zdF9wbGF0Zm9ybSA9IGdldF9wbGF0Zm9ybSgpCisKICMgV2VyZSB3ZSBjb21waWxlZCAtLXdpdGgtcHlkZWJ1ZyBvciB3aXRoICNkZWZpbmUgUHlfREVCVUc/Ci1DT01QSUxFRF9XSVRIX1BZREVCVUcgPSBoYXNhdHRyKHN5cywgJ2dldHRvdGFscmVmY291bnQnKQorQ09NUElMRURfV0lUSF9QWURFQlVHID0gKCctLXdpdGgtcHlkZWJ1ZycgaW4gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCJDT05GSUdfQVJHUyIpKQogCiAjIFRoaXMgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgdG8gaG9sZCB0aGUgbGlzdCBvZiBtb2R1bGVzIHRvIGJlIGRpc2FibGVkLgogZGlzYWJsZWRfbW9kdWxlX2xpc3QgPSBbXQpAQCAtNzIsNyArODIsNyBAQAogICAgICdwYXRocycgaXMgYSBsaXN0IG9mIGFkZGl0aW9uYWwgbG9jYXRpb25zIHRvIGNoZWNrOyBpZiB0aGUgZmlsZSBpcwogICAgICAgICBmb3VuZCBpbiBvbmUgb2YgdGhlbSwgdGhlIHJlc3VsdGluZyBsaXN0IHdpbGwgY29udGFpbiB0aGUgZGlyZWN0b3J5LgogICAgICIiIgotICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICBpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICAjIEhvbm9yIHRoZSBNYWNPU1ggU0RLIHNldHRpbmcgd2hlbiBvbmUgd2FzIHNwZWNpZmllZC4KICAgICAgICAgIyBBbiBTREsgaXMgYSBkaXJlY3Rvcnkgd2l0aCB0aGUgc2FtZSBzdHJ1Y3R1cmUgYXMgYSByZWFsCiAgICAgICAgICMgc3lzdGVtLCBidXQgd2l0aCBvbmx5IGhlYWRlciBmaWxlcyBhbmQgbGlicmFyaWVzLgpAQCAtODIsNyArOTIsNyBAQAogICAgIGZvciBkaXIgaW4gc3RkX2RpcnM6CiAgICAgICAgIGYgPSBvcy5wYXRoLmpvaW4oZGlyLCBmaWxlbmFtZSkKIAotICAgICAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicgYW5kIGlzX21hY29zeF9zZGtfcGF0aChkaXIpOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nIGFuZCBpc19tYWNvc3hfc2RrX3BhdGgoZGlyKToKICAgICAgICAgICAgIGYgPSBvcy5wYXRoLmpvaW4oc3lzcm9vdCwgZGlyWzE6XSwgZmlsZW5hbWUpCiAKICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoZik6IHJldHVybiBbXQpAQCAtOTEsNyArMTAxLDcgQEAKICAgICBmb3IgZGlyIGluIHBhdGhzOgogICAgICAgICBmID0gb3MucGF0aC5qb2luKGRpciwgZmlsZW5hbWUpCiAKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nIGFuZCBpc19tYWNvc3hfc2RrX3BhdGgoZGlyKToKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgaXNfbWFjb3N4X3Nka19wYXRoKGRpcik6CiAgICAgICAgICAgICBmID0gb3MucGF0aC5qb2luKHN5c3Jvb3QsIGRpclsxOl0sIGZpbGVuYW1lKQogCiAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGYpOgpAQCAtMTA1LDcgKzExNSw3IEBACiAgICAgaWYgcmVzdWx0IGlzIE5vbmU6CiAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ2Rhcndpbic6CisgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJzoKICAgICAgICAgc3lzcm9vdCA9IG1hY29zeF9zZGtfcm9vdCgpCiAKICAgICAjIENoZWNrIHdoZXRoZXIgdGhlIGZvdW5kIGZpbGUgaXMgaW4gb25lIG9mIHRoZSBzdGFuZGFyZCBkaXJlY3RvcmllcwpAQCAtMTE0LDcgKzEyNCw3IEBACiAgICAgICAgICMgRW5zdXJlIHBhdGggZG9lc24ndCBlbmQgd2l0aCBwYXRoIHNlcGFyYXRvcgogICAgICAgICBwID0gcC5yc3RyaXAob3Muc2VwKQogCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgaXNfbWFjb3N4X3Nka19wYXRoKHApOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nIGFuZCBpc19tYWNvc3hfc2RrX3BhdGgocCk6CiAgICAgICAgICAgICBpZiBvcy5wYXRoLmpvaW4oc3lzcm9vdCwgcFsxOl0pID09IGRpcm5hbWU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIFsgXQogCkBAIC0xMjcsNyArMTM3LDcgQEAKICAgICAgICAgIyBFbnN1cmUgcGF0aCBkb2Vzbid0IGVuZCB3aXRoIHBhdGggc2VwYXJhdG9yCiAgICAgICAgIHAgPSBwLnJzdHJpcChvcy5zZXApCiAKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nIGFuZCBpc19tYWNvc3hfc2RrX3BhdGgocCk6CisgICAgICAgIGlmIGhvc3RfcGxhdGZvcm0gPT0gJ2RhcndpbicgYW5kIGlzX21hY29zeF9zZGtfcGF0aChwKToKICAgICAgICAgICAgIGlmIG9zLnBhdGguam9pbihzeXNyb290LCBwWzE6XSkgPT0gZGlybmFtZToKICAgICAgICAgICAgICAgICByZXR1cm4gWyBwIF0KIApAQCAtMTg4LDkgKzE5OCw2IEBACiAgICAgICAgIHNyY2RpciA9IG9zLnBhdGguYWJzcGF0aChzcmNkaXIpCiAgICAgICAgIG1vZGRpcmxpc3QgPSBbb3MucGF0aC5qb2luKHNyY2RpciwgJ01vZHVsZXMnKV0KIAotICAgICAgICAjIFBsYXRmb3JtLWRlcGVuZGVudCBtb2R1bGUgc291cmNlIGFuZCBpbmNsdWRlIGRpcmVjdG9yaWVzCi0gICAgICAgIHBsYXRmb3JtID0gc2VsZi5nZXRfcGxhdGZvcm0oKQotCiAgICAgICAgICMgRml4IHVwIHRoZSBwYXRocyBmb3Igc2NyaXB0cywgdG9vCiAgICAgICAgIHNlbGYuZGlzdHJpYnV0aW9uLnNjcmlwdHMgPSBbb3MucGF0aC5qb2luKHNyY2RpciwgZmlsZW5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGZpbGVuYW1lIGluIHNlbGYuZGlzdHJpYnV0aW9uLnNjcmlwdHNdCkBAIC0zMDUsNyArMzEyLDcgQEAKICAgICAgICAgICAgICAgICBleHQubmFtZSkKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGlmIHNlbGYuZ2V0X3BsYXRmb3JtKCkgPT0gJ2RhcndpbicgYW5kICgKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgKAogICAgICAgICAgICAgICAgIHN5cy5tYXhzaXplID4gMioqMzIgYW5kICctYXJjaCcgaW4gZXh0LmV4dHJhX2xpbmtfYXJncyk6CiAgICAgICAgICAgICAjIERvbid0IGJvdGhlciBkb2luZyBhbiBpbXBvcnQgY2hlY2sgd2hlbiBhbiBleHRlbnNpb24gd2FzCiAgICAgICAgICAgICAjIGJ1aWxkIHdpdGggYW4gZXhwbGljaXQgJy1hcmNoJyBmbGFnIG9uIE9TWC4gVGhhdCdzIGN1cnJlbnRseQpAQCAtMzE5LDcgKzMyNiw3IEBACiAKICAgICAgICAgIyBXb3JrYXJvdW5kIGZvciBDeWd3aW46IEN5Z3dpbiBjdXJyZW50bHkgaGFzIGZvcmsgaXNzdWVzIHdoZW4gbWFueQogICAgICAgICAjIG1vZHVsZXMgaGF2ZSBiZWVuIGltcG9ydGVkCi0gICAgICAgIGlmIHNlbGYuZ2V0X3BsYXRmb3JtKCkgPT0gJ2N5Z3dpbic6CisgICAgICAgIGlmIGhvc3RfcGxhdGZvcm0gPT0gJ2N5Z3dpbic6CiAgICAgICAgICAgICBzZWxmLmFubm91bmNlKCdXQVJOSU5HOiBza2lwcGluZyBpbXBvcnQgY2hlY2sgZm9yIEN5Z3dpbi1iYXNlZCAiJXMiJwogICAgICAgICAgICAgICAgICUgZXh0Lm5hbWUpCiAgICAgICAgICAgICByZXR1cm4KQEAgLTMzMiw2ICszMzksMTAgQEAKICAgICAgICAgIyBjYWNoZWQuICBDbGVhciB0aGF0IGNhY2hlIGJlZm9yZSB0cnlpbmcgdG8gaW1wb3J0LgogICAgICAgICBzeXMucGF0aF9pbXBvcnRlcl9jYWNoZS5jbGVhcigpCiAKKyAgICAgICAgIyBEb24ndCB0cnkgdG8gbG9hZCBleHRlbnNpb25zIGZvciBjcm9zcyBidWlsZHMKKyAgICAgICAgaWYgY3Jvc3NfY29tcGlsaW5nOgorICAgICAgICAgICAgcmV0dXJuCisKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgaW1wLmxvYWRfZHluYW1pYyhleHQubmFtZSwgZXh0X2ZpbGVuYW1lKQogICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgd2h5OgpAQCAtMzYzLDI0ICszNzQsMjAgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWw9MykKICAgICAgICAgICAgIHNlbGYuZmFpbGVkLmFwcGVuZChleHQubmFtZSkKIAotICAgIGRlZiBnZXRfcGxhdGZvcm0oc2VsZik6Ci0gICAgICAgICMgR2V0IHZhbHVlIG9mIHN5cy5wbGF0Zm9ybQotICAgICAgICBmb3IgcGxhdGZvcm0gaW4gWydjeWd3aW4nLCAnZGFyd2luJywgJ29zZjEnXToKLSAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKHBsYXRmb3JtKToKLSAgICAgICAgICAgICAgICByZXR1cm4gcGxhdGZvcm0KLSAgICAgICAgcmV0dXJuIHN5cy5wbGF0Zm9ybQotCiAgICAgZGVmIGFkZF9tdWx0aWFyY2hfcGF0aHMoc2VsZik6CiAgICAgICAgICMgRGViaWFuL1VidW50dSBtdWx0aWFyY2ggc3VwcG9ydC4KICAgICAgICAgIyBodHRwczovL3dpa2kudWJ1bnR1LmNvbS9NdWx0aWFyY2hTcGVjCiAgICAgICAgIGlmIG5vdCBmaW5kX2V4ZWN1dGFibGUoJ2Rwa2ctYXJjaGl0ZWN0dXJlJyk6CiAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgb3B0ID0gJycKKyAgICAgICAgaWYgY3Jvc3NfY29tcGlsaW5nOgorICAgICAgICAgICAgb3B0ID0gJy10JyArIHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignSE9TVF9HTlVfVFlQRScpCiAgICAgICAgIHRtcGZpbGUgPSBvcy5wYXRoLmpvaW4oc2VsZi5idWlsZF90ZW1wLCAnbXVsdGlhcmNoJykKICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNlbGYuYnVpbGRfdGVtcCk6CiAgICAgICAgICAgICBvcy5tYWtlZGlycyhzZWxmLmJ1aWxkX3RlbXApCiAgICAgICAgIHJldCA9IG9zLnN5c3RlbSgKLSAgICAgICAgICAgICdkcGtnLWFyY2hpdGVjdHVyZSAtcURFQl9IT1NUX01VTFRJQVJDSCA+ICVzIDI+IC9kZXYvbnVsbCcgJQotICAgICAgICAgICAgdG1wZmlsZSkKKyAgICAgICAgICAgICdkcGtnLWFyY2hpdGVjdHVyZSAlcyAtcURFQl9IT1NUX01VTFRJQVJDSCA+ICVzIDI+IC9kZXYvbnVsbCcgJQorICAgICAgICAgICAgKG9wdCwgdG1wZmlsZSkpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlmIHJldCA+PiA4ID09IDA6CiAgICAgICAgICAgICAgICAgd2l0aCBvcGVuKHRtcGZpbGUpIGFzIGZwOgpAQCAtMzkyLDEyICszOTksNDggQEAKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIG9zLnVubGluayh0bXBmaWxlKQogCisgICAgZGVmIGFkZF9nY2NfcGF0aHMoc2VsZik6CisgICAgICAgIGdjYyA9IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignQ0MnKQorICAgICAgICB0bXBmaWxlID0gb3MucGF0aC5qb2luKHNlbGYuYnVpbGRfdGVtcCwgJ2djY3BhdGhzJykKKyAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNlbGYuYnVpbGRfdGVtcCk6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhzZWxmLmJ1aWxkX3RlbXApCisgICAgICAgIHJldCA9IG9zLnN5c3RlbSgnJXMgLUUgLXYgLSA8L2Rldi9udWxsIDI+JXMgMT4vZGV2L251bGwnICUgKGdjYywgdG1wZmlsZSkpCisgICAgICAgIGlzX2djYyA9IEZhbHNlCisgICAgICAgIGluX2luY2RpcnMgPSBGYWxzZQorICAgICAgICBpbmNfZGlycyA9IFtdCisgICAgICAgIGxpYl9kaXJzID0gW10KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgcmV0ID4+IDggPT0gMDoKKyAgICAgICAgICAgICAgICB3aXRoIG9wZW4odG1wZmlsZSkgYXMgZnA6CisgICAgICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGZwLnJlYWRsaW5lcygpOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCJnY2MgdmVyc2lvbiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzX2djYyA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCIjaW5jbHVkZSA8Li4uPiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX2luY2RpcnMgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGxpbmUuc3RhcnRzd2l0aCgiRW5kIG9mIHNlYXJjaCBsaXN0Iik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5faW5jZGlycyA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGlzX2djYyBhbmQgbGluZS5zdGFydHN3aXRoKCJMSUJSQVJZX1BBVEgiKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZCBpbiBsaW5lLnN0cmlwKCkuc3BsaXQoIj0iKVsxXS5zcGxpdCgiOiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkID0gb3MucGF0aC5ub3JtcGF0aChkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAnL2djYy8nIG5vdCBpbiBkOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkX2Rpcl90b19saXN0KHNlbGYuY29tcGlsZXIubGlicmFyeV9kaXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQpCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGlzX2djYyBhbmQgaW5faW5jZGlycyBhbmQgJy9nY2MvJyBub3QgaW4gbGluZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRfZGlyX3RvX2xpc3Qoc2VsZi5jb21waWxlci5pbmNsdWRlX2RpcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUuc3RyaXAoKSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG9zLnVubGluayh0bXBmaWxlKQorCiAgICAgZGVmIGRldGVjdF9tb2R1bGVzKHNlbGYpOgogICAgICAgICAjIEVuc3VyZSB0aGF0IC91c3IvbG9jYWwgaXMgYWx3YXlzIHVzZWQsIGJ1dCB0aGUgbG9jYWwgYnVpbGQKICAgICAgICAgIyBkaXJlY3RvcmllcyAoaS5lLiAnLicgYW5kICdJbmNsdWRlJykgbXVzdCBiZSBmaXJzdC4gIFNlZSBpc3N1ZQogICAgICAgICAjIDEwNTIwLgotICAgICAgICBhZGRfZGlyX3RvX2xpc3Qoc2VsZi5jb21waWxlci5saWJyYXJ5X2RpcnMsICcvdXNyL2xvY2FsL2xpYicpCi0gICAgICAgIGFkZF9kaXJfdG9fbGlzdChzZWxmLmNvbXBpbGVyLmluY2x1ZGVfZGlycywgJy91c3IvbG9jYWwvaW5jbHVkZScpCisgICAgICAgIGlmIG5vdCBjcm9zc19jb21waWxpbmc6CisgICAgICAgICAgICBhZGRfZGlyX3RvX2xpc3Qoc2VsZi5jb21waWxlci5saWJyYXJ5X2RpcnMsICcvdXNyL2xvY2FsL2xpYicpCisgICAgICAgICAgICBhZGRfZGlyX3RvX2xpc3Qoc2VsZi5jb21waWxlci5pbmNsdWRlX2RpcnMsICcvdXNyL2xvY2FsL2luY2x1ZGUnKQorICAgICAgICAjIG9ubHkgY2hhbmdlIHRoaXMgZm9yIGNyb3NzIGJ1aWxkcyBmb3IgMy4zLCBpc3N1ZXMgb24gTWFnZWlhCisgICAgICAgIGlmIGNyb3NzX2NvbXBpbGluZzoKKyAgICAgICAgICAgIHNlbGYuYWRkX2djY19wYXRocygpCiAgICAgICAgIHNlbGYuYWRkX211bHRpYXJjaF9wYXRocygpCiAKICAgICAgICAgIyBBZGQgcGF0aHMgc3BlY2lmaWVkIGluIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgTERGTEFHUyBhbmQKQEAgLTQzNCw3ICs0NzcsNyBAQAogICAgICAgICAgICAgICAgICAgICBmb3IgZGlyZWN0b3J5IGluIHJldmVyc2VkKG9wdGlvbnMuZGlycyk6CiAgICAgICAgICAgICAgICAgICAgICAgICBhZGRfZGlyX3RvX2xpc3QoZGlyX2xpc3QsIGRpcmVjdG9yeSkKIAotICAgICAgICBpZiBvcy5wYXRoLm5vcm1wYXRoKHN5cy5wcmVmaXgpICE9ICcvdXNyJyBcCisgICAgICAgIGlmIG9zLnBhdGgubm9ybXBhdGgoc3lzLmJhc2VfcHJlZml4KSAhPSAnL3VzcicgXAogICAgICAgICAgICAgICAgIGFuZCBub3Qgc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdQWVRIT05GUkFNRVdPUksnKToKICAgICAgICAgICAgICMgT1NYIG5vdGU6IERvbid0IGFkZCBMSUJESVIgYW5kIElOQ0xVREVESVIgdG8gYnVpbGRpbmcgYSBmcmFtZXdvcmsKICAgICAgICAgICAgICMgKFBZVEhPTkZSQU1FV09SSyBpcyBzZXQpIHRvIGF2b2lkICMgbGlua2luZyBwcm9ibGVtcyB3aGVuCkBAIC00NDgsMTEgKzQ5MSwxMiBAQAogICAgICAgICAjIGxpYl9kaXJzIGFuZCBpbmNfZGlycyBhcmUgdXNlZCB0byBzZWFyY2ggZm9yIGZpbGVzOwogICAgICAgICAjIGlmIGEgZmlsZSBpcyBmb3VuZCBpbiBvbmUgb2YgdGhvc2UgZGlyZWN0b3JpZXMsIGl0IGNhbgogICAgICAgICAjIGJlIGFzc3VtZWQgdGhhdCBubyBhZGRpdGlvbmFsIC1JLC1MIGRpcmVjdGl2ZXMgYXJlIG5lZWRlZC4KLSAgICAgICAgbGliX2RpcnMgPSBzZWxmLmNvbXBpbGVyLmxpYnJhcnlfZGlycyArIFsKLSAgICAgICAgICAgICcvbGliNjQnLCAnL3Vzci9saWI2NCcsCi0gICAgICAgICAgICAnL2xpYicsICcvdXNyL2xpYicsCi0gICAgICAgICAgICBdCi0gICAgICAgIGluY19kaXJzID0gc2VsZi5jb21waWxlci5pbmNsdWRlX2RpcnMgKyBbJy91c3IvaW5jbHVkZSddCisgICAgICAgIGlmIG5vdCBjcm9zc19jb21waWxpbmc6CisgICAgICAgICAgICBsaWJfZGlycyA9IHNlbGYuY29tcGlsZXIubGlicmFyeV9kaXJzICsgWworICAgICAgICAgICAgICAgICcvbGliNjQnLCAnL3Vzci9saWI2NCcsCisgICAgICAgICAgICAgICAgJy9saWInLCAnL3Vzci9saWInLAorICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIGluY19kaXJzID0gc2VsZi5jb21waWxlci5pbmNsdWRlX2RpcnMgKyBbJy91c3IvaW5jbHVkZSddCiAgICAgICAgIGV4dHMgPSBbXQogICAgICAgICBtaXNzaW5nID0gW10KIApAQCAtNDYwLDE4ICs1MDQsMTcgQEAKICAgICAgICAgd2l0aCBvcGVuKGNvbmZpZ19oKSBhcyBmaWxlOgogICAgICAgICAgICAgY29uZmlnX2hfdmFycyA9IHN5c2NvbmZpZy5wYXJzZV9jb25maWdfaChmaWxlKQogCi0gICAgICAgIHBsYXRmb3JtID0gc2VsZi5nZXRfcGxhdGZvcm0oKQogICAgICAgICBzcmNkaXIgPSBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ3NyY2RpcicpCiAKICAgICAgICAgIyBPU0YvMSBhbmQgVW5peHdhcmUgaGF2ZSBzb21lIHN0dWZmIGluIC91c3IvY2NzL2xpYiAobGlrZSAtbGRiKQotICAgICAgICBpZiBwbGF0Zm9ybSBpbiBbJ29zZjEnLCAndW5peHdhcmU3JywgJ29wZW51bml4OCddOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtIGluIFsnb3NmMScsICd1bml4d2FyZTcnLCAnb3BlbnVuaXg4J106CiAgICAgICAgICAgICBsaWJfZGlycyArPSBbJy91c3IvY2NzL2xpYiddCiAKICAgICAgICAgIyBIUC1VWDExaXYzIGtlZXBzIGZpbGVzIGluIGxpYi9ocHV4IGZvbGRlcnMuCi0gICAgICAgIGlmIHBsYXRmb3JtID09ICdocC11eDExJzoKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnaHAtdXgxMSc6CiAgICAgICAgICAgICBsaWJfZGlycyArPSBbJy91c3IvbGliL2hwdXg2NCcsICcvdXNyL2xpYi9ocHV4MzInXQogCi0gICAgICAgIGlmIHBsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICAgICAgIyBUaGlzIHNob3VsZCB3b3JrIG9uIGFueSB1bml4eSBwbGF0Zm9ybSA7LSkKICAgICAgICAgICAgICMgSWYgdGhlIHVzZXIgaGFzIGJvdGhlcmVkIHNwZWNpZnlpbmcgYWRkaXRpb25hbCAtSSBhbmQgLUwgZmxhZ3MKICAgICAgICAgICAgICMgaW4gT1BUIGFuZCBMREZMQUdTIHdlIG1pZ2h0IGFzIHdlbGwgdXNlIHRoZW0gaGVyZS4KQEAgLTQ5MSw3ICs1MzQsNyBAQAogCiAgICAgICAgICMgQ2hlY2sgZm9yIE1hY09TIFgsIHdoaWNoIGRvZXNuJ3QgbmVlZCBsaWJtLmEgYXQgYWxsCiAgICAgICAgIG1hdGhfbGlicyA9IFsnbSddCi0gICAgICAgIGlmIHBsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICAgICAgbWF0aF9saWJzID0gW10KIAogICAgICAgICAjIFhYWCBPbWl0dGVkIG1vZHVsZXM6IGdsLCBwdXJlLCBkbCwgU0dJLXNwZWNpZmljIG1vZHVsZXMKQEAgLTUxMSwxMSArNTU0LDE3IEBACiAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ21hdGgnLCAgWydtYXRobW9kdWxlLmMnLCAnX21hdGguYyddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9WydfbWF0aC5oJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicmFyaWVzPW1hdGhfbGlicykgKQorCisgICAgICAgICMgdGltZSBsaWJyYXJpZXM6IGxpYnJ0IG1heSBiZSBuZWVkZWQgZm9yIGNsb2NrX2dldHRpbWUoKQorICAgICAgICB0aW1lX2xpYnMgPSBbXQorICAgICAgICBsaWIgPSBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ1RJTUVNT0RVTEVfTElCJykKKyAgICAgICAgaWYgbGliOgorICAgICAgICAgICAgdGltZV9saWJzLmFwcGVuZChsaWIpCisKICAgICAgICAgIyB0aW1lIG9wZXJhdGlvbnMgYW5kIHZhcmlhYmxlcwotICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCd0aW1lJywgWyd0aW1lbW9kdWxlLmMnLCAnX3RpbWUuYyddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcmllcz1tYXRoX2xpYnMpICkKLSAgICAgICAgZXh0cy5hcHBlbmQoIEV4dGVuc2lvbignX2RhdGV0aW1lJywgWydfZGF0ZXRpbWVtb2R1bGUuYycsICdfdGltZS5jJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicmFyaWVzPW1hdGhfbGlicykgKQorICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCd0aW1lJywgWyd0aW1lbW9kdWxlLmMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJpZXM9dGltZV9saWJzKSApCisgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ19kYXRldGltZScsIFsnX2RhdGV0aW1lbW9kdWxlLmMnXSkgKQogICAgICAgICAjIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIGltcGxlbWVudGVkIGluIEMKICAgICAgICAgZXh0cy5hcHBlbmQoIEV4dGVuc2lvbigiX3JhbmRvbSIsIFsiX3JhbmRvbW1vZHVsZS5jIl0pICkKICAgICAgICAgIyBiaXNlY3QKQEAgLTUzMSw2ICs1ODAsOCBAQAogICAgICAgICAjIFB5dGhvbiBDIEFQSSB0ZXN0IG1vZHVsZQogICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfdGVzdGNhcGknLCBbJ190ZXN0Y2FwaW1vZHVsZS5jJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kcz1bJ3Rlc3RjYXBpX2xvbmcuaCddKSApCisgICAgICAgICMgUHl0aG9uIFBFUC0zMTE4IChidWZmZXIgcHJvdG9jb2wpIHRlc3QgbW9kdWxlCisgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ190ZXN0YnVmZmVyJywgWydfdGVzdGJ1ZmZlci5jJ10pICkKICAgICAgICAgIyBwcm9maWxlciAoX2xzcHJvZiBpcyBmb3IgY1Byb2ZpbGUucHkpCiAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ19sc3Byb2YnLCBbJ19sc3Byb2YuYycsICdyb3RhdGluZ3RyZWUuYyddKSApCiAgICAgICAgICMgc3RhdGljIFVuaWNvZGUgY2hhcmFjdGVyIGRhdGFiYXNlCkBAIC01ODgsMTMgKzYzOSwyMCBAQAogICAgICAgICBkb19yZWFkbGluZSA9IHNlbGYuY29tcGlsZXIuZmluZF9saWJyYXJ5X2ZpbGUobGliX2RpcnMsICdyZWFkbGluZScpCiAgICAgICAgIHJlYWRsaW5lX3Rlcm1jYXBfbGlicmFyeSA9ICIiCiAgICAgICAgIGN1cnNlc19saWJyYXJ5ID0gIiIKKyAgICAgICAgIyBDYW5ub3QgdXNlIG9zLnBvcGVuIGhlcmUgaW4gcHkzay4KKyAgICAgICAgdG1wZmlsZSA9IG9zLnBhdGguam9pbihzZWxmLmJ1aWxkX3RlbXAsICdyZWFkbGluZV90ZXJtY2FwX2xpYicpCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZWxmLmJ1aWxkX3RlbXApOgorICAgICAgICAgICAgb3MubWFrZWRpcnMoc2VsZi5idWlsZF90ZW1wKQogICAgICAgICAjIERldGVybWluZSBpZiByZWFkbGluZSBpcyBhbHJlYWR5IGxpbmtlZCBhZ2FpbnN0IGN1cnNlcyBvciB0aW5mby4KLSAgICAgICAgaWYgZG9fcmVhZGxpbmUgYW5kIGZpbmRfZXhlY3V0YWJsZSgnbGRkJyk6Ci0gICAgICAgICAgICAjIENhbm5vdCB1c2Ugb3MucG9wZW4gaGVyZSBpbiBweTNrLgotICAgICAgICAgICAgdG1wZmlsZSA9IG9zLnBhdGguam9pbihzZWxmLmJ1aWxkX3RlbXAsICdyZWFkbGluZV90ZXJtY2FwX2xpYicpCi0gICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5idWlsZF90ZW1wKToKLSAgICAgICAgICAgICAgICBvcy5tYWtlZGlycyhzZWxmLmJ1aWxkX3RlbXApCi0gICAgICAgICAgICByZXQgPSBvcy5zeXN0ZW0oImxkZCAlcyA+ICVzIiAlIChkb19yZWFkbGluZSwgdG1wZmlsZSkpCisgICAgICAgIGlmIGRvX3JlYWRsaW5lOgorICAgICAgICAgICAgaWYgY3Jvc3NfY29tcGlsaW5nOgorICAgICAgICAgICAgICAgIHJldCA9IG9zLnN5c3RlbSgiJXMgLWQgJXMgfCBncmVwICcoTkVFREVEKScgPiAlcyIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ1JFQURFTEYnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9fcmVhZGxpbmUsIHRtcGZpbGUpKQorICAgICAgICAgICAgZWxpZiBmaW5kX2V4ZWN1dGFibGUoJ2xkZCcpOgorICAgICAgICAgICAgICAgIHJldCA9IG9zLnN5c3RlbSgibGRkICVzID4gJXMiICUgKGRvX3JlYWRsaW5lLCB0bXBmaWxlKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0ID0gMjU2CiAgICAgICAgICAgICBpZiByZXQgPj4gOCA9PSAwOgogICAgICAgICAgICAgICAgIHdpdGggb3Blbih0bXBmaWxlKSBhcyBmcDoKICAgICAgICAgICAgICAgICAgICAgZm9yIGxuIGluIGZwOgpAQCAtNjA3LDcgKzY2NSw4IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAndGluZm8nIGluIGxuOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRsaW5lX3Rlcm1jYXBfbGlicmFyeSA9ICd0aW5mbycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgb3MudW5saW5rKHRtcGZpbGUpCisgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyh0bXBmaWxlKToKKyAgICAgICAgICAgICAgICBvcy51bmxpbmsodG1wZmlsZSkKICAgICAgICAgIyBJc3N1ZSA3Mzg0OiBJZiByZWFkbGluZSBpcyBhbHJlYWR5IGxpbmtlZCBhZ2FpbnN0IGN1cnNlcywKICAgICAgICAgIyB1c2UgdGhlIHNhbWUgbGlicmFyeSBmb3IgdGhlIHJlYWRsaW5lIGFuZCBjdXJzZXMgbW9kdWxlcy4KICAgICAgICAgaWYgJ2N1cnNlcycgaW4gcmVhZGxpbmVfdGVybWNhcF9saWJyYXJ5OgpAQCAtNjE5LDcgKzY3OCw3IEBACiAgICAgICAgIGVsaWYgc2VsZi5jb21waWxlci5maW5kX2xpYnJhcnlfZmlsZShsaWJfZGlycywgJ2N1cnNlcycpOgogICAgICAgICAgICAgY3Vyc2VzX2xpYnJhcnkgPSAnY3Vyc2VzJwogCi0gICAgICAgIGlmIHBsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICAgICAgb3NfcmVsZWFzZSA9IGludChvcy51bmFtZSgpWzJdLnNwbGl0KCcuJylbMF0pCiAgICAgICAgICAgICBkZXBfdGFyZ2V0ID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQnKQogICAgICAgICAgICAgaWYgZGVwX3RhcmdldCBhbmQgZGVwX3RhcmdldC5zcGxpdCgnLicpIDwgWycxMCcsICc1J106CkBAIC02MzEsNyArNjkwLDcgQEAKICAgICAgICAgICAgICAgICBpZiBmaW5kX2ZpbGUoJ3JlYWRsaW5lL3JsY29uZi5oJywgaW5jX2RpcnMsIFtdKSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICBkb19yZWFkbGluZSA9IEZhbHNlCiAgICAgICAgIGlmIGRvX3JlYWRsaW5lOgotICAgICAgICAgICAgaWYgcGxhdGZvcm0gPT0gJ2RhcndpbicgYW5kIG9zX3JlbGVhc2UgPCA5OgorICAgICAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgb3NfcmVsZWFzZSA8IDk6CiAgICAgICAgICAgICAgICAgIyBJbiBldmVyeSBkaXJlY3Rvcnkgb24gdGhlIHNlYXJjaCBwYXRoIHNlYXJjaCBmb3IgYSBkeW5hbWljCiAgICAgICAgICAgICAgICAgIyBsaWJyYXJ5IGFuZCB0aGVuIGEgc3RhdGljIGxpYnJhcnksIGluc3RlYWQgb2YgZmlyc3QgbG9va2luZwogICAgICAgICAgICAgICAgICMgZm9yIGR5bmFtaWMgbGlicmFyaWVzIG9uIHRoZSBlbnRpcmUgcGF0aC4KQEAgLTY2Myw3ICs3MjIsNyBAQAogICAgICAgICAgICAgbGlicyA9IFsnY3J5cHQnXQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbGlicyA9IFtdCi0gICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ2NyeXB0JywgWydjcnlwdG1vZHVsZS5jJ10sIGxpYnJhcmllcz1saWJzKSApCisgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ19jcnlwdCcsIFsnX2NyeXB0bW9kdWxlLmMnXSwgbGlicmFyaWVzPWxpYnMpICkKIAogICAgICAgICAjIENTViBmaWxlcwogICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfY3N2JywgWydfY3N2LmMnXSkgKQpAQCAtNzEyLDcgKzc3MSw3IEBACiAgICAgICAgICAgICAgICAgaW5jX2RpcnMgKyBzZWFyY2hfZm9yX3NzbF9pbmNzX2luKQogICAgICAgICBpZiBvcGVuc3Nsdl9oOgogICAgICAgICAgICAgbmFtZSA9IG9zLnBhdGguam9pbihvcGVuc3Nsdl9oWzBdLCAnb3BlbnNzbC9vcGVuc3Nsdi5oJykKLSAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgaXNfbWFjb3N4X3Nka19wYXRoKG5hbWUpOgorICAgICAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgaXNfbWFjb3N4X3Nka19wYXRoKG5hbWUpOgogICAgICAgICAgICAgICAgIG5hbWUgPSBvcy5wYXRoLmpvaW4obWFjb3N4X3Nka19yb290KCksIG5hbWVbMTpdKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIHdpdGggb3BlbihuYW1lLCAncicpIGFzIGluY2ZpbGU6CkBAIC03NDQsMjAgKzgwMywxNyBAQAogICAgICAgICAgICAgICAgICAgICAgIG9wZW5zc2xfdmVyKQogICAgICAgICAgICAgICAgIG1pc3NpbmcuYXBwZW5kKCdfaGFzaGxpYicpCiAKLSAgICAgICAgbWluX3NoYTJfb3BlbnNzbF92ZXIgPSAweDAwOTA4MDAwCi0gICAgICAgIGlmIENPTVBJTEVEX1dJVEhfUFlERUJVRyBvciBvcGVuc3NsX3ZlciA8IG1pbl9zaGEyX29wZW5zc2xfdmVyOgotICAgICAgICAgICAgIyBPcGVuU1NMIGRvZXNuJ3QgZG8gdGhlc2UgdW50aWwgMC45Ljggc28gd2UnbGwgYnJpbmcgb3VyIG93biBoYXNoCi0gICAgICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfc2hhMjU2JywgWydzaGEyNTZtb2R1bGUuYyddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRzPVsnaGFzaGxpYi5oJ10pICkKLSAgICAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ19zaGE1MTInLCBbJ3NoYTUxMm1vZHVsZS5jJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9WydoYXNobGliLmgnXSkgKQotCi0gICAgICAgIGlmIENPTVBJTEVEX1dJVEhfUFlERUJVRyBvciBub3QgaGF2ZV91c2FibGVfb3BlbnNzbDoKLSAgICAgICAgICAgICMgbm8gb3BlbnNzbCBhdCBhbGwsIHVzZSBvdXIgb3duIG1kNSBhbmQgc2hhMQotICAgICAgICAgICAgZXh0cy5hcHBlbmQoIEV4dGVuc2lvbignX21kNScsIFsnbWQ1bW9kdWxlLmMnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kcz1bJ2hhc2hsaWIuaCddKSApCi0gICAgICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfc2hhMScsIFsnc2hhMW1vZHVsZS5jJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9WydoYXNobGliLmgnXSkgKQorICAgICAgICAjIFdlIGFsd2F5cyBjb21waWxlIHRoZXNlIGV2ZW4gd2hlbiBPcGVuU1NMIGlzIGF2YWlsYWJsZSAoaXNzdWUgIzE0NjkzKS4KKyAgICAgICAgIyBJdCdzIGhhcm1sZXNzIGFuZCB0aGUgb2JqZWN0IGNvZGUgaXMgdGlueSAoNDAtNTAgS0IgcGVyIG1vZHVsZSwKKyAgICAgICAgIyBvbmx5IGxvYWRlZCB3aGVuIGFjdHVhbGx5IHVzZWQpLgorICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfc2hhMjU2JywgWydzaGEyNTZtb2R1bGUuYyddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9WydoYXNobGliLmgnXSkgKQorICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfc2hhNTEyJywgWydzaGE1MTJtb2R1bGUuYyddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9WydoYXNobGliLmgnXSkgKQorICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfbWQ1JywgWydtZDVtb2R1bGUuYyddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcGVuZHM9WydoYXNobGliLmgnXSkgKQorICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfc2hhMScsIFsnc2hhMW1vZHVsZS5jJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwZW5kcz1bJ2hhc2hsaWIuaCddKSApCiAKICAgICAgICAgIyBNb2R1bGVzIHRoYXQgcHJvdmlkZSBwZXJzaXN0ZW50IGRpY3Rpb25hcnktbGlrZSBzZW1hbnRpY3MuICBZb3Ugd2lsbAogICAgICAgICAjIHByb2JhYmx5IHdhbnQgdG8gYXJyYW5nZSBmb3IgYXQgbGVhc3Qgb25lIG9mIHRoZW0gdG8gYmUgYXZhaWxhYmxlIG9uCkBAIC03NzQsNyArODMwLDcgQEAKICAgICAgICAgIyBhIHJlbGVhc2UuICBNb3N0IG9wZW4gc291cmNlIE9TZXMgY29tZSB3aXRoIG9uZSBvciBtb3JlCiAgICAgICAgICMgdmVyc2lvbnMgb2YgQmVya2VsZXlEQiBhbHJlYWR5IGluc3RhbGxlZC4KIAotICAgICAgICBtYXhfZGJfdmVyID0gKDUsIDEpCisgICAgICAgIG1heF9kYl92ZXIgPSAoNSwgMykKICAgICAgICAgbWluX2RiX3ZlciA9ICgzLCAzKQogICAgICAgICBkYl9zZXR1cF9kZWJ1ZyA9IEZhbHNlICAgIyB2ZXJib3NlIGRlYnVnIHByaW50cyBmcm9tIHRoaXMgc2NyaXB0PwogCkBAIC04MzEsNiArODg3LDkgQEAKICAgICAgICAgICAgIGRiX2luY19wYXRocy5hcHBlbmQoJy9wa2cvZGItMy4lZC9pbmNsdWRlJyAlIHgpCiAgICAgICAgICAgICBkYl9pbmNfcGF0aHMuYXBwZW5kKCcvb3B0L2RiLTMuJWQvaW5jbHVkZScgJSB4KQogCisgICAgICAgIGlmIGNyb3NzX2NvbXBpbGluZzoKKyAgICAgICAgICAgIGRiX2luY19wYXRocyA9IFtdCisKICAgICAgICAgIyBBZGQgc29tZSBjb21tb24gc3ViZGlyZWN0b3JpZXMgZm9yIFNsZWVweWNhdCBEQiB0byB0aGUgbGlzdCwKICAgICAgICAgIyBiYXNlZCBvbiB0aGUgc3RhbmRhcmQgaW5jbHVkZSBkaXJlY3Rvcmllcy4gVGhpcyB3YXkgREIzLzQgZ2V0cwogICAgICAgICAjIHBpY2tlZCB1cCB3aGVuIGl0IGlzIGluc3RhbGxlZCBpbiBhIG5vbi1zdGFuZGFyZCBwcmVmaXggYW5kCkBAIC04NTEsNyArOTEwLDcgQEAKIAogICAgICAgICBkYl92ZXJfaW5jX21hcCA9IHt9CiAKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICAgICAgc3lzcm9vdCA9IG1hY29zeF9zZGtfcm9vdCgpCiAKICAgICAgICAgY2xhc3MgZGJfZm91bmQoRXhjZXB0aW9uKTogcGFzcwpAQCAtODYwLDcgKzkxOSw3IEBACiAgICAgICAgICAgICAjIHNlYXJjaCBwYXRoLgogICAgICAgICAgICAgZm9yIGQgaW4gaW5jX2RpcnMgKyBkYl9pbmNfcGF0aHM6CiAgICAgICAgICAgICAgICAgZiA9IG9zLnBhdGguam9pbihkLCAiZGIuaCIpCi0gICAgICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nIGFuZCBpc19tYWNvc3hfc2RrX3BhdGgoZCk6CisgICAgICAgICAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgaXNfbWFjb3N4X3Nka19wYXRoKGQpOgogICAgICAgICAgICAgICAgICAgICBmID0gb3MucGF0aC5qb2luKHN5c3Jvb3QsIGRbMTpdLCAiZGIuaCIpCiAKICAgICAgICAgICAgICAgICBpZiBkYl9zZXR1cF9kZWJ1ZzogcHJpbnQoImRiOiBsb29raW5nIGZvciBkYi5oIGluIiwgZikKQEAgLTkxMSw3ICs5NzAsNyBAQAogICAgICAgICAgICAgICAgICAgICBkYl9pbmNkaXIucmVwbGFjZSgiaW5jbHVkZSIsICdsaWInKSwKICAgICAgICAgICAgICAgICBdCiAKLSAgICAgICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gIT0gJ2Rhcndpbic6CisgICAgICAgICAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSAhPSAnZGFyd2luJzoKICAgICAgICAgICAgICAgICAgICAgZGJfZGlyc190b19jaGVjayA9IGxpc3QoZmlsdGVyKG9zLnBhdGguaXNkaXIsIGRiX2RpcnNfdG9fY2hlY2spKQogCiAgICAgICAgICAgICAgICAgZWxzZToKQEAgLTk2Nyw3ICsxMDI2LDkgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy91c3IvbG9jYWwvaW5jbHVkZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvdXNyL2xvY2FsL2luY2x1ZGUvc3FsaXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy91c3IvbG9jYWwvaW5jbHVkZS9zcWxpdGUzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICBpZiBjcm9zc19jb21waWxpbmc6CisgICAgICAgICAgICBzcWxpdGVfaW5jX3BhdGhzID0gW10KICAgICAgICAgTUlOX1NRTElURV9WRVJTSU9OX05VTUJFUiA9ICgzLCAwLCA4KQogICAgICAgICBNSU5fU1FMSVRFX1ZFUlNJT04gPSAiLiIuam9pbihbc3RyKHgpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBNSU5fU1FMSVRFX1ZFUlNJT05fTlVNQkVSXSkKQEAgLTk3NSwxMyArMTAzNiwxMyBAQAogICAgICAgICAjIFNjYW4gdGhlIGRlZmF1bHQgaW5jbHVkZSBkaXJlY3RvcmllcyBiZWZvcmUgdGhlIFNRTGl0ZSBzcGVjaWZpYwogICAgICAgICAjIG9uZXMuIFRoaXMgYWxsb3dzIG9uZSB0byBvdmVycmlkZSB0aGUgY29weSBvZiBzcWxpdGUgb24gT1NYLAogICAgICAgICAjIHdoZXJlIC91c3IvaW5jbHVkZSBjb250YWlucyBhbiBvbGQgdmVyc2lvbiBvZiBzcWxpdGUuCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJzoKICAgICAgICAgICAgIHN5c3Jvb3QgPSBtYWNvc3hfc2RrX3Jvb3QoKQogCiAgICAgICAgIGZvciBkIGluIGluY19kaXJzICsgc3FsaXRlX2luY19wYXRoczoKICAgICAgICAgICAgIGYgPSBvcy5wYXRoLmpvaW4oZCwgInNxbGl0ZTMuaCIpCiAKLSAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgaXNfbWFjb3N4X3Nka19wYXRoKGQpOgorICAgICAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgaXNfbWFjb3N4X3Nka19wYXRoKGQpOgogICAgICAgICAgICAgICAgIGYgPSBvcy5wYXRoLmpvaW4oc3lzcm9vdCwgZFsxOl0sICJzcWxpdGUzLmgiKQogCiAgICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhmKToKQEAgLTEwMzEsNyArMTA5Miw3IEBACiAgICAgICAgICAgICAgICAgJ19zcWxpdGUvdXRpbC5jJywgXQogCiAgICAgICAgICAgICBzcWxpdGVfZGVmaW5lcyA9IFtdCi0gICAgICAgICAgICBpZiBzeXMucGxhdGZvcm0gIT0gIndpbjMyIjoKKyAgICAgICAgICAgIGlmIGhvc3RfcGxhdGZvcm0gIT0gIndpbjMyIjoKICAgICAgICAgICAgICAgICBzcWxpdGVfZGVmaW5lcy5hcHBlbmQoKCdNT0RVTEVfTkFNRScsICcic3FsaXRlMyInKSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc3FsaXRlX2RlZmluZXMuYXBwZW5kKCgnTU9EVUxFX05BTUUnLCAnXFwic3FsaXRlM1xcIicpKQpAQCAtMTA0MSw3ICsxMTAyLDcgQEAKICAgICAgICAgICAgIGlmICctLWVuYWJsZS1sb2FkYWJsZS1zcWxpdGUtZXh0ZW5zaW9ucycgbm90IGluIHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcigiQ09ORklHX0FSR1MiKToKICAgICAgICAgICAgICAgICBzcWxpdGVfZGVmaW5lcy5hcHBlbmQoKCJTUUxJVEVfT01JVF9MT0FEX0VYVEVOU0lPTiIsICIxIikpCiAKLSAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICAgICAgICAgIGlmIGhvc3RfcGxhdGZvcm0gPT0gJ2Rhcndpbic6CiAgICAgICAgICAgICAgICAgIyBJbiBldmVyeSBkaXJlY3Rvcnkgb24gdGhlIHNlYXJjaCBwYXRoIHNlYXJjaCBmb3IgYSBkeW5hbWljCiAgICAgICAgICAgICAgICAgIyBsaWJyYXJ5IGFuZCB0aGVuIGEgc3RhdGljIGxpYnJhcnksIGluc3RlYWQgb2YgZmlyc3QgbG9va2luZwogICAgICAgICAgICAgICAgICMgZm9yIGR5bmFtaWMgbGlicmFyaWVzIG9uIHRoZSBlbnRpcmUgcGF0aC4KQEAgLTEwNTEsMTAgKzExMTIsMTUgQEAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgc3FsaXRlX2V4dHJhX2xpbmtfYXJncyA9ICgpCiAKKyAgICAgICAgICAgIGluY2x1ZGVfZGlycyA9IFsiTW9kdWxlcy9fc3FsaXRlIl0KKyAgICAgICAgICAgICMgT25seSBpbmNsdWRlIHRoZSBkaXJlY3Rvcnkgd2hlcmUgc3FsaXRlIHdhcyBmb3VuZCBpZiBpdCBkb2VzCisgICAgICAgICAgICAjIG5vdCBhbHJlYWR5IGV4aXN0IGluIHNldCBpbmNsdWRlIGRpcmVjdG9yaWVzLCBvdGhlcndpc2UgeW91CisgICAgICAgICAgICAjIGNhbiBlbmQgdXAgd2l0aCBhIGJhZCBzZWFyY2ggcGF0aCBvcmRlci4KKyAgICAgICAgICAgIGlmIHNxbGl0ZV9pbmNkaXIgbm90IGluIHNlbGYuY29tcGlsZXIuaW5jbHVkZV9kaXJzOgorICAgICAgICAgICAgICAgIGluY2x1ZGVfZGlycy5hcHBlbmQoc3FsaXRlX2luY2RpcikKICAgICAgICAgICAgIGV4dHMuYXBwZW5kKEV4dGVuc2lvbignX3NxbGl0ZTMnLCBzcWxpdGVfc3JjcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVfbWFjcm9zPXNxbGl0ZV9kZWZpbmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfZGlycz1bIk1vZHVsZXMvX3NxbGl0ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcWxpdGVfaW5jZGlyXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX2RpcnM9aW5jbHVkZV9kaXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcnlfZGlycz1zcWxpdGVfbGliZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWVfbGlicmFyeV9kaXJzPXNxbGl0ZV9saWJkaXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFfbGlua19hcmdzPXNxbGl0ZV9leHRyYV9saW5rX2FyZ3MsCkBAIC0xMDYyLDkgKzExMjgsMTAgQEAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG1pc3NpbmcuYXBwZW5kKCdfc3FsaXRlMycpCiAKKyAgICAgICAgZGJtX3NldHVwX2RlYnVnID0gRmFsc2UgICAjIHZlcmJvc2UgZGVidWcgcHJpbnRzIGZyb20gdGhpcyBzY3JpcHQ/CiAgICAgICAgIGRibV9vcmRlciA9IFsnZ2RibSddCiAgICAgICAgICMgVGhlIHN0YW5kYXJkIFVuaXggZGJtIG1vZHVsZToKLSAgICAgICAgaWYgcGxhdGZvcm0gbm90IGluIFsnY3lnd2luJ106CisgICAgICAgIGlmIGhvc3RfcGxhdGZvcm0gbm90IGluIFsnY3lnd2luJ106CiAgICAgICAgICAgICBjb25maWdfYXJncyA9IFthcmcuc3RyaXAoIiciKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGFyZyBpbiBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoIkNPTkZJR19BUkdTIikuc3BsaXQoKV0KICAgICAgICAgICAgIGRibV9hcmdzID0gW2FyZyBmb3IgYXJnIGluIGNvbmZpZ19hcmdzCkBAIC0xMDg3LDcgKzExNTQsNyBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5kYm1fbGlicyA9IFsnZ2RibV9jb21wYXQnXQogICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZGJtX2xpYnMgPSBbXQotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoImJ1aWxkaW5nIGRibSB1c2luZyBuZGJtIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRibV9zZXR1cF9kZWJ1ZzogcHJpbnQoImJ1aWxkaW5nIGRibSB1c2luZyBuZGJtIikKICAgICAgICAgICAgICAgICAgICAgICAgIGRibWV4dCA9IEV4dGVuc2lvbignX2RibScsIFsnX2RibW1vZHVsZS5jJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lX21hY3Jvcz1bCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnSEFWRV9OREJNX0gnLE5vbmUpLApAQCAtMTEwMiw3ICsxMTY5LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZGJtX2NvbXBhdCcpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdkYm1fbGlicy5hcHBlbmQoJ2dkYm1fY29tcGF0JykKICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGZpbmRfZmlsZSgiZ2RibS9uZGJtLmgiLCBpbmNfZGlycywgW10pIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJidWlsZGluZyBkYm0gdXNpbmcgZ2RibSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZGJtX3NldHVwX2RlYnVnOiBwcmludCgiYnVpbGRpbmcgZGJtIHVzaW5nIGdkYm0iKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRibWV4dCA9IEV4dGVuc2lvbigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19kYm0nLCBbJ19kYm1tb2R1bGUuYyddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVfbWFjcm9zPVsKQEAgLTExMTEsNyArMTE3OCw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcmllcyA9IGdkYm1fbGlicykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgICAgICAgICAgaWYgZmluZF9maWxlKCJnZGJtLW5kYm0uaCIsIGluY19kaXJzLCBbXSkgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoImJ1aWxkaW5nIGRibSB1c2luZyBnZGJtIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBkYm1fc2V0dXBfZGVidWc6IHByaW50KCJidWlsZGluZyBkYm0gdXNpbmcgZ2RibSIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJtZXh0ID0gRXh0ZW5zaW9uKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RibScsIFsnX2RibW1vZHVsZS5jJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmluZV9tYWNyb3M9WwpAQCAtMTEyMSw3ICsxMTg4LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgIGVsaWYgY2FuZCA9PSAiYmRiIjoKICAgICAgICAgICAgICAgICAgICAgaWYgZGJfaW5jcyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJidWlsZGluZyBkYm0gdXNpbmcgYmRiIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRibV9zZXR1cF9kZWJ1ZzogcHJpbnQoImJ1aWxkaW5nIGRibSB1c2luZyBiZGIiKQogICAgICAgICAgICAgICAgICAgICAgICAgZGJtZXh0ID0gRXh0ZW5zaW9uKCdfZGJtJywgWydfZGJtbW9kdWxlLmMnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5X2RpcnM9ZGJsaWJfZGlyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWVfbGlicmFyeV9kaXJzPWRibGliX2RpciwKQEAgLTExNDYsMTQgKzEyMTMsMTQgQEAKICAgICAgICAgICAgIG1pc3NpbmcuYXBwZW5kKCdfZ2RibScpCiAKICAgICAgICAgIyBVbml4LW9ubHkgbW9kdWxlcwotICAgICAgICBpZiBwbGF0Zm9ybSAhPSAnd2luMzInOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtICE9ICd3aW4zMic6CiAgICAgICAgICAgICAjIFN0ZWVuIEx1bWhvbHQncyB0ZXJtaW9zIG1vZHVsZQogICAgICAgICAgICAgZXh0cy5hcHBlbmQoIEV4dGVuc2lvbigndGVybWlvcycsIFsndGVybWlvcy5jJ10pICkKICAgICAgICAgICAgICMgSmVyZW15IEh5bHRvbidzIHJsaW1pdCBpbnRlcmZhY2UKICAgICAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ3Jlc291cmNlJywgWydyZXNvdXJjZS5jJ10pICkKIAogICAgICAgICAgICAgIyBTdW4geWVsbG93IHBhZ2VzLiBTb21lIHN5c3RlbXMgaGF2ZSB0aGUgZnVuY3Rpb25zIGluIGxpYmMuCi0gICAgICAgICAgICBpZiAocGxhdGZvcm0gbm90IGluIFsnY3lnd2luJywgJ3FueDYnXSBhbmQKKyAgICAgICAgICAgIGlmIChob3N0X3BsYXRmb3JtIG5vdCBpbiBbJ2N5Z3dpbicsICdxbng2J10gYW5kCiAgICAgICAgICAgICAgICAgZmluZF9maWxlKCdycGNzdmMveXBfcHJvdC5oJywgaW5jX2RpcnMsIFtdKSBpcyBub3QgTm9uZSk6CiAgICAgICAgICAgICAgICAgaWYgKHNlbGYuY29tcGlsZXIuZmluZF9saWJyYXJ5X2ZpbGUobGliX2RpcnMsICduc2wnKSk6CiAgICAgICAgICAgICAgICAgICAgIGxpYnMgPSBbJ25zbCddCkBAIC0xMTY4LDE2ICsxMjM1LDM1IEBACiAKICAgICAgICAgIyBDdXJzZXMgc3VwcG9ydCwgcmVxdWlyaW5nIHRoZSBTeXN0ZW0gViB2ZXJzaW9uIG9mIGN1cnNlcywgb2Z0ZW4KICAgICAgICAgIyBwcm92aWRlZCBieSB0aGUgbmN1cnNlcyBsaWJyYXJ5LgorICAgICAgICBjdXJzZXNfZGVmaW5lcyA9IFtdCisgICAgICAgIGN1cnNlc19pbmNsdWRlcyA9IFtdCiAgICAgICAgIHBhbmVsX2xpYnJhcnkgPSAncGFuZWwnCisgICAgICAgIGlmIGN1cnNlc19saWJyYXJ5ID09ICduY3Vyc2Vzdyc6CisgICAgICAgICAgICBjdXJzZXNfZGVmaW5lcy5hcHBlbmQoKCdIQVZFX05DVVJTRVNXJywgJzEnKSkKKyAgICAgICAgICAgIGN1cnNlc19pbmNsdWRlcy5hcHBlbmQoJy91c3IvaW5jbHVkZS9uY3Vyc2VzdycpCisgICAgICAgICAgICAjIEJ1ZyAxNDY0MDU2OiBJZiBfY3Vyc2VzLnNvIGxpbmtzIHdpdGggbmN1cnNlc3csCisgICAgICAgICAgICAjIF9jdXJzZXNfcGFuZWwuc28gbXVzdCBsaW5rIHdpdGggcGFuZWx3LgorICAgICAgICAgICAgcGFuZWxfbGlicmFyeSA9ICdwYW5lbHcnCisgICAgICAgICAgICBpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICAgICAgICAgICMgT24gT1MgWCwgdGhlcmUgaXMgbm8gc2VwYXJhdGUgL3Vzci9saWIvbGlibmN1cnNlc3cgbm9yCisgICAgICAgICAgICAgICAgIyBsaWJwYW5lbHcuICBJZiB3ZSBhcmUgaGVyZSwgd2UgZm91bmQgYSBsb2NhbGx5LXN1cHBsaWVkCisgICAgICAgICAgICAgICAgIyB2ZXJzaW9uIG9mIGxpYm5jdXJzZXN3LiAgVGhlcmUgc2hvdWxkIGJlIGFsc28gYmUgYQorICAgICAgICAgICAgICAgICMgbGlicGFuZWx3LiAgX1hPUEVOX1NPVVJDRSBkZWZpbmVzIGFyZSB1c3VhbGx5IGV4Y2x1ZGVkCisgICAgICAgICAgICAgICAgIyBmb3IgT1MgWCBidXQgd2UgbmVlZCBfWE9QRU5fU09VUkNFX0VYVEVOREVEIGhlcmUgZm9yCisgICAgICAgICAgICAgICAgIyBuY3Vyc2VzIHdpZGUgY2hhciBzdXBwb3J0CisgICAgICAgICAgICAgICAgY3Vyc2VzX2RlZmluZXMuYXBwZW5kKCgnX1hPUEVOX1NPVVJDRV9FWFRFTkRFRCcsICcxJykpCisgICAgICAgIGVsaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJyBhbmQgY3Vyc2VzX2xpYnJhcnkgPT0gJ25jdXJzZXMnOgorICAgICAgICAgICAgIyBCdWlsZGluZyB3aXRoIHRoZSBzeXN0ZW0tc3VwcGllZCBjb21iaW5lZCBsaWJuY3Vyc2VzL2xpYnBhbmVsCisgICAgICAgICAgICBjdXJzZXNfZGVmaW5lcy5hcHBlbmQoKCdIQVZFX05DVVJTRVNXJywgJzEnKSkKKyAgICAgICAgICAgIGN1cnNlc19kZWZpbmVzLmFwcGVuZCgoJ19YT1BFTl9TT1VSQ0VfRVhURU5ERUQnLCAnMScpKQorCiAgICAgICAgIGlmIGN1cnNlc19saWJyYXJ5LnN0YXJ0c3dpdGgoJ25jdXJzZXMnKToKLSAgICAgICAgICAgIGlmIGN1cnNlc19saWJyYXJ5ID09ICduY3Vyc2Vzdyc6Ci0gICAgICAgICAgICAgICAgIyBCdWcgMTQ2NDA1NjogSWYgX2N1cnNlcy5zbyBsaW5rcyB3aXRoIG5jdXJzZXN3LAotICAgICAgICAgICAgICAgICMgX2N1cnNlc19wYW5lbC5zbyBtdXN0IGxpbmsgd2l0aCBwYW5lbHcuCi0gICAgICAgICAgICAgICAgcGFuZWxfbGlicmFyeSA9ICdwYW5lbHcnCiAgICAgICAgICAgICBjdXJzZXNfbGlicyA9IFtjdXJzZXNfbGlicmFyeV0KICAgICAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ19jdXJzZXMnLCBbJ19jdXJzZXNtb2R1bGUuYyddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX2RpcnM9Y3Vyc2VzX2luY2x1ZGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVfbWFjcm9zPWN1cnNlc19kZWZpbmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJpZXMgPSBjdXJzZXNfbGlicykgKQotICAgICAgICBlbGlmIGN1cnNlc19saWJyYXJ5ID09ICdjdXJzZXMnIGFuZCBwbGF0Zm9ybSAhPSAnZGFyd2luJzoKKyAgICAgICAgZWxpZiBjdXJzZXNfbGlicmFyeSA9PSAnY3Vyc2VzJyBhbmQgaG9zdF9wbGF0Zm9ybSAhPSAnZGFyd2luJzoKICAgICAgICAgICAgICAgICAjIE9TWCBoYXMgYW4gb2xkIEJlcmtlbGV5IGN1cnNlcywgbm90IGdvb2QgZW5vdWdoIGZvcgogICAgICAgICAgICAgICAgICMgdGhlIF9jdXJzZXMgbW9kdWxlLgogICAgICAgICAgICAgaWYgKHNlbGYuY29tcGlsZXIuZmluZF9saWJyYXJ5X2ZpbGUobGliX2RpcnMsICd0ZXJtaW5mbycpKToKQEAgLTExODgsNiArMTI3NCw3IEBACiAgICAgICAgICAgICAgICAgY3Vyc2VzX2xpYnMgPSBbJ2N1cnNlcyddCiAKICAgICAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ19jdXJzZXMnLCBbJ19jdXJzZXNtb2R1bGUuYyddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZpbmVfbWFjcm9zPWN1cnNlc19kZWZpbmVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJpZXMgPSBjdXJzZXNfbGlicykgKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgbWlzc2luZy5hcHBlbmQoJ19jdXJzZXMnKQpAQCAtMTE5Niw2ICsxMjgzLDggQEAKICAgICAgICAgaWYgKG1vZHVsZV9lbmFibGVkKGV4dHMsICdfY3Vyc2VzJykgYW5kCiAgICAgICAgICAgICBzZWxmLmNvbXBpbGVyLmZpbmRfbGlicmFyeV9maWxlKGxpYl9kaXJzLCBwYW5lbF9saWJyYXJ5KSk6CiAgICAgICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdfY3Vyc2VzX3BhbmVsJywgWydfY3Vyc2VzX3BhbmVsLmMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZV9kaXJzPWN1cnNlc19pbmNsdWRlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmaW5lX21hY3Jvcz1jdXJzZXNfZGVmaW5lcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlicmFyaWVzID0gW3BhbmVsX2xpYnJhcnldICsgY3Vyc2VzX2xpYnMpICkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG1pc3NpbmcuYXBwZW5kKCdfY3Vyc2VzX3BhbmVsJykKQEAgLTEyMjgsNyArMTMxNyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgaWYgdmVyc2lvbiA+PSB2ZXJzaW9uX3JlcToKICAgICAgICAgICAgICAgICBpZiAoc2VsZi5jb21waWxlci5maW5kX2xpYnJhcnlfZmlsZShsaWJfZGlycywgJ3onKSk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIjoKKyAgICAgICAgICAgICAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAiZGFyd2luIjoKICAgICAgICAgICAgICAgICAgICAgICAgIHpsaWJfZXh0cmFfbGlua19hcmdzID0gKCctV2wsLXNlYXJjaF9wYXRoc19maXJzdCcsKQogICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAgemxpYl9leHRyYV9saW5rX2FyZ3MgPSAoKQpAQCAtMTI2MCwxNSArMTM0OSwyMiBAQAogCiAgICAgICAgICMgR3VzdGF2byBOaWVtZXllcidzIGJ6MiBtb2R1bGUuCiAgICAgICAgIGlmIChzZWxmLmNvbXBpbGVyLmZpbmRfbGlicmFyeV9maWxlKGxpYl9kaXJzLCAnYnoyJykpOgotICAgICAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iOgorICAgICAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAiZGFyd2luIjoKICAgICAgICAgICAgICAgICBiejJfZXh0cmFfbGlua19hcmdzID0gKCctV2wsLXNlYXJjaF9wYXRoc19maXJzdCcsKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBiejJfZXh0cmFfbGlua19hcmdzID0gKCkKLSAgICAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ2J6MicsIFsnYnoybW9kdWxlLmMnXSwKKyAgICAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ19iejInLCBbJ19iejJtb2R1bGUuYyddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJyYXJpZXMgPSBbJ2J6MiddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYV9saW5rX2FyZ3MgPSBiejJfZXh0cmFfbGlua19hcmdzKSApCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBtaXNzaW5nLmFwcGVuZCgnYnoyJykKKyAgICAgICAgICAgIG1pc3NpbmcuYXBwZW5kKCdfYnoyJykKKworICAgICAgICAjIExaTUEgY29tcHJlc3Npb24gc3VwcG9ydC4KKyAgICAgICAgaWYgc2VsZi5jb21waWxlci5maW5kX2xpYnJhcnlfZmlsZShsaWJfZGlycywgJ2x6bWEnKToKKyAgICAgICAgICAgIGV4dHMuYXBwZW5kKCBFeHRlbnNpb24oJ19sem1hJywgWydfbHptYW1vZHVsZS5jJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpYnJhcmllcyA9IFsnbHptYSddKSApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBtaXNzaW5nLmFwcGVuZCgnX2x6bWEnKQogCiAgICAgICAgICMgSW50ZXJmYWNlIHRvIHRoZSBFeHBhdCBYTUwgcGFyc2VyCiAgICAgICAgICMKQEAgLTEzMjQsMzMgKzE0MjAsMzYgQEAKICAgICAgICAgICAgIGV4dHMuYXBwZW5kKEV4dGVuc2lvbignX2NvZGVjc18lcycgJSBsb2MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydjamtjb2RlY3MvX2NvZGVjc18lcy5jJyAlIGxvY10pKQogCisgICAgICAgICMgU3RlZmFuIEtyYWgncyBfZGVjaW1hbCBtb2R1bGUKKyAgICAgICAgZXh0cy5hcHBlbmQoc2VsZi5fZGVjaW1hbF9leHQoKSkKKwogICAgICAgICAjIFRob21hcyBIZWxsZXIncyBfY3R5cGVzIG1vZHVsZQogICAgICAgICBzZWxmLmRldGVjdF9jdHlwZXMoaW5jX2RpcnMsIGxpYl9kaXJzKQogCiAgICAgICAgICMgUmljaGFyZCBPdWRrZXJrJ3MgbXVsdGlwcm9jZXNzaW5nIG1vZHVsZQotICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnd2luMzInOiAgICAgICAgICAgICAjIFdpbmRvd3MKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnd2luMzInOiAgICAgICAgIyBXaW5kb3dzCiAgICAgICAgICAgICBtYWNyb3MgPSBkaWN0KCkKICAgICAgICAgICAgIGxpYnJhcmllcyA9IFsnd3MyXzMyJ10KIAotICAgICAgICBlbGlmIHBsYXRmb3JtID09ICdkYXJ3aW4nOiAgICAgICAgICAjIE1hYyBPU1gKKyAgICAgICAgZWxpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nOiAgICAgIyBNYWMgT1NYCiAgICAgICAgICAgICBtYWNyb3MgPSBkaWN0KCkKICAgICAgICAgICAgIGxpYnJhcmllcyA9IFtdCiAKLSAgICAgICAgZWxpZiBwbGF0Zm9ybSA9PSAnY3lnd2luJzogICAgICAgICAgIyBDeWd3aW4KKyAgICAgICAgZWxpZiBob3N0X3BsYXRmb3JtID09ICdjeWd3aW4nOiAgICAgIyBDeWd3aW4KICAgICAgICAgICAgIG1hY3JvcyA9IGRpY3QoKQogICAgICAgICAgICAgbGlicmFyaWVzID0gW10KIAotICAgICAgICBlbGlmIHBsYXRmb3JtIGluICgnZnJlZWJzZDQnLCAnZnJlZWJzZDUnLCAnZnJlZWJzZDYnLCAnZnJlZWJzZDcnLCAnZnJlZWJzZDgnKToKKyAgICAgICAgZWxpZiBob3N0X3BsYXRmb3JtIGluICgnZnJlZWJzZDQnLCAnZnJlZWJzZDUnLCAnZnJlZWJzZDYnLCAnZnJlZWJzZDcnLCAnZnJlZWJzZDgnKToKICAgICAgICAgICAgICMgRnJlZUJTRCdzIFAxMDAzLjFiIHNlbWFwaG9yZSBzdXBwb3J0IGlzIHZlcnkgZXhwZXJpbWVudGFsCiAgICAgICAgICAgICAjIGFuZCBoYXMgbWFueSBrbm93biBwcm9ibGVtcy4gKGFzIG9mIEp1bmUgMjAwOCkKICAgICAgICAgICAgIG1hY3JvcyA9IGRpY3QoKQogICAgICAgICAgICAgbGlicmFyaWVzID0gW10KIAotICAgICAgICBlbGlmIHBsYXRmb3JtLnN0YXJ0c3dpdGgoJ29wZW5ic2QnKToKKyAgICAgICAgZWxpZiBob3N0X3BsYXRmb3JtLnN0YXJ0c3dpdGgoJ29wZW5ic2QnKToKICAgICAgICAgICAgIG1hY3JvcyA9IGRpY3QoKQogICAgICAgICAgICAgbGlicmFyaWVzID0gW10KIAotICAgICAgICBlbGlmIHBsYXRmb3JtLnN0YXJ0c3dpdGgoJ25ldGJzZCcpOgorICAgICAgICBlbGlmIGhvc3RfcGxhdGZvcm0uc3RhcnRzd2l0aCgnbmV0YnNkJyk6CiAgICAgICAgICAgICBtYWNyb3MgPSBkaWN0KCkKICAgICAgICAgICAgIGxpYnJhcmllcyA9IFtdCiAKQEAgLTEzNTgsMTcgKzE0NTcsMTMgQEAKICAgICAgICAgICAgIG1hY3JvcyA9IGRpY3QoKQogICAgICAgICAgICAgbGlicmFyaWVzID0gWydydCddCiAKLSAgICAgICAgaWYgcGxhdGZvcm0gPT0gJ3dpbjMyJzoKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnd2luMzInOgogICAgICAgICAgICAgbXVsdGlwcm9jZXNzaW5nX3NyY3MgPSBbICdfbXVsdGlwcm9jZXNzaW5nL211bHRpcHJvY2Vzc2luZy5jJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX211bHRpcHJvY2Vzc2luZy9zZW1hcGhvcmUuYycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19tdWx0aXByb2Nlc3NpbmcvcGlwZV9jb25uZWN0aW9uLmMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfbXVsdGlwcm9jZXNzaW5nL3NvY2tldF9jb25uZWN0aW9uLmMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdfbXVsdGlwcm9jZXNzaW5nL3dpbjMyX2Z1bmN0aW9ucy5jJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCiAKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIG11bHRpcHJvY2Vzc2luZ19zcmNzID0gWyAnX211bHRpcHJvY2Vzc2luZy9tdWx0aXByb2Nlc3NpbmcuYycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ19tdWx0aXByb2Nlc3Npbmcvc29ja2V0X2Nvbm5lY3Rpb24uYycKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgaWYgKHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignSEFWRV9TRU1fT1BFTicpIGFuZCBub3QKICAgICAgICAgICAgICAgICBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ1BPU0lYX1NFTUFQSE9SRVNfTk9UX0VOQUJMRUQnKSk6CkBAIC0xMzgzLDE0ICsxNDc4LDEyIEBACiAgICAgICAgICMgRW5kIG11bHRpcHJvY2Vzc2luZwogCiAgICAgICAgICMgUGxhdGZvcm0tc3BlY2lmaWMgbGlicmFyaWVzCi0gICAgICAgIGlmIChwbGF0Zm9ybSBpbiAoJ2xpbnV4MicsICdmcmVlYnNkNCcsICdmcmVlYnNkNScsICdmcmVlYnNkNicsCi0gICAgICAgICAgICAgICAgICAgICAgICAnZnJlZWJzZDcnLCAnZnJlZWJzZDgnKQotICAgICAgICAgICAgb3IgcGxhdGZvcm0uc3RhcnRzd2l0aCgiZ251a2ZyZWVic2QiKSk6CisgICAgICAgIGlmIGhvc3RfcGxhdGZvcm0uc3RhcnRzd2l0aCgoJ2xpbnV4JywgJ2ZyZWVic2QnLCAnZ251a2ZyZWVic2QnKSk6CiAgICAgICAgICAgICBleHRzLmFwcGVuZCggRXh0ZW5zaW9uKCdvc3NhdWRpb2RldicsIFsnb3NzYXVkaW9kZXYuYyddKSApCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBtaXNzaW5nLmFwcGVuZCgnb3NzYXVkaW9kZXYnKQogCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJzoKICAgICAgICAgICAgIGV4dHMuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICAgICBFeHRlbnNpb24oJ19nZXN0YWx0JywgWydfZ2VzdGFsdC5jJ10sCiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhX2xpbmtfYXJncz1bJy1mcmFtZXdvcmsnLCAnQ2FyYm9uJ10pCkBAIC0xNTA4LDggKzE2MDEsNyBAQAogICAgICAgICAjIFJhdGhlciB0aGFuIGNvbXBsaWNhdGUgdGhlIGNvZGUgYmVsb3csIGRldGVjdGluZyBhbmQgYnVpbGRpbmcKICAgICAgICAgIyBBcXVhVGsgaXMgYSBzZXBhcmF0ZSBtZXRob2QuIE9ubHkgb25lIFRraW50ZXIgd2lsbCBiZSBidWlsdCBvbgogICAgICAgICAjIERhcndpbiAtIGVpdGhlciBBcXVhVGssIGlmIGl0IGlzIGZvdW5kLCBvciBYMTEgYmFzZWQgVGsuCi0gICAgICAgIHBsYXRmb3JtID0gc2VsZi5nZXRfcGxhdGZvcm0oKQotICAgICAgICBpZiAocGxhdGZvcm0gPT0gJ2RhcndpbicgYW5kCisgICAgICAgIGlmIChob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nIGFuZAogICAgICAgICAgICAgc2VsZi5kZXRlY3RfdGtpbnRlcl9kYXJ3aW4oaW5jX2RpcnMsIGxpYl9kaXJzKSk6CiAgICAgICAgICAgICByZXR1cm4KIApAQCAtMTUzMiw3ICsxNjI0LDcgQEAKICAgICAgICAgICAgICMgQ2hlY2sgZm9yIHRoZSBpbmNsdWRlIGZpbGVzIG9uIERlYmlhbiBhbmQge0ZyZWUsT3Blbn1CU0QsIHdoZXJlCiAgICAgICAgICAgICAjIHRoZXkncmUgcHV0IGluIC91c3IvaW5jbHVkZS97dGNsLHRrfVguWQogICAgICAgICAgICAgZG90dmVyc2lvbiA9IHZlcnNpb24KLSAgICAgICAgICAgIGlmICcuJyBub3QgaW4gZG90dmVyc2lvbiBhbmQgImJzZCIgaW4gc3lzLnBsYXRmb3JtLmxvd2VyKCk6CisgICAgICAgICAgICBpZiAnLicgbm90IGluIGRvdHZlcnNpb24gYW5kICJic2QiIGluIGhvc3RfcGxhdGZvcm0ubG93ZXIoKToKICAgICAgICAgICAgICAgICAjIE9wZW5CU0QgYW5kIEZyZWVCU0QgdXNlIFRjbC9UayBsaWJyYXJ5IG5hbWVzIGxpa2UgbGlidGNsODMuYSwKICAgICAgICAgICAgICAgICAjIGJ1dCB0aGUgaW5jbHVkZSBzdWJkaXJzIGFyZSBuYW1lZCBsaWtlIC4uLi9pbmNsdWRlL3RjbDguMy4KICAgICAgICAgICAgICAgICBkb3R2ZXJzaW9uID0gZG90dmVyc2lvbls6LTFdICsgJy4nICsgZG90dmVyc2lvblstMV0KQEAgLTE1NTgsNyArMTY1MCw3IEBACiAgICAgICAgICAgICAgICAgaW5jbHVkZV9kaXJzLmFwcGVuZChkaXIpCiAKICAgICAgICAgIyBDaGVjayBmb3IgdmFyaW91cyBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3RvcmllcwotICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnc3Vub3M1JzoKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnc3Vub3M1JzoKICAgICAgICAgICAgIGluY2x1ZGVfZGlycy5hcHBlbmQoJy91c3Ivb3Blbndpbi9pbmNsdWRlJykKICAgICAgICAgICAgIGFkZGVkX2xpYl9kaXJzLmFwcGVuZCgnL3Vzci9vcGVud2luL2xpYicpCiAgICAgICAgIGVsaWYgb3MucGF0aC5leGlzdHMoJy91c3IvWDExUjYvaW5jbHVkZScpOgpAQCAtMTU3NCw3ICsxNjY2LDcgQEAKICAgICAgICAgICAgIGFkZGVkX2xpYl9kaXJzLmFwcGVuZCgnL3Vzci9YMTEvbGliJykKIAogICAgICAgICAjIElmIEN5Z3dpbiwgdGhlbiB2ZXJpZnkgdGhhdCBYIGlzIGluc3RhbGxlZCBiZWZvcmUgcHJvY2VlZGluZwotICAgICAgICBpZiBwbGF0Zm9ybSA9PSAnY3lnd2luJzoKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnY3lnd2luJzoKICAgICAgICAgICAgIHgxMV9pbmMgPSBmaW5kX2ZpbGUoJ1gxMS9YbGliLmgnLCBbXSwgaW5jbHVkZV9kaXJzKQogICAgICAgICAgICAgaWYgeDExX2luYyBpcyBOb25lOgogICAgICAgICAgICAgICAgIHJldHVybgpAQCAtMTU5MywxMSArMTY4NSwxMSBAQAogICAgICAgICBsaWJzLmFwcGVuZCgndGsnKyB2ZXJzaW9uKQogICAgICAgICBsaWJzLmFwcGVuZCgndGNsJysgdmVyc2lvbikKIAotICAgICAgICBpZiBwbGF0Zm9ybSBpbiBbJ2FpeDMnLCAnYWl4NCddOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtIGluIFsnYWl4MycsICdhaXg0J106CiAgICAgICAgICAgICBsaWJzLmFwcGVuZCgnbGQnKQogCiAgICAgICAgICMgRmluYWxseSwgbGluayB3aXRoIHRoZSBYMTEgbGlicmFyaWVzIChub3QgYXBwcm9wcmlhdGUgb24gY3lnd2luKQotICAgICAgICBpZiBwbGF0Zm9ybSAhPSAiY3lnd2luIjoKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSAhPSAiY3lnd2luIjoKICAgICAgICAgICAgIGxpYnMuYXBwZW5kKCdYMTEnKQogCiAgICAgICAgIGV4dCA9IEV4dGVuc2lvbignX3RraW50ZXInLCBbJ190a2ludGVyLmMnLCAndGthcHBpbml0LmMnXSwKQEAgLTE2NTMsNyArMTc0NSw3IEBACiAKICAgICBkZWYgY29uZmlndXJlX2N0eXBlcyhzZWxmLCBleHQpOgogICAgICAgICBpZiBub3Qgc2VsZi51c2Vfc3lzdGVtX2xpYmZmaToKLSAgICAgICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICAgICAgICAgIGlmIGhvc3RfcGxhdGZvcm0gPT0gJ2Rhcndpbic6CiAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29uZmlndXJlX2N0eXBlc19kYXJ3aW4oZXh0KQogCiAgICAgICAgICAgICBzcmNkaXIgPSBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ3NyY2RpcicpCkBAIC0xNjcxLDcgKzE3NjMsOCBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZmlfY29uZmlnZmlsZSk6CiAgICAgICAgICAgICAgICAgZnJvbSBkaXN0dXRpbHMuZGlyX3V0aWwgaW1wb3J0IG1rcGF0aAogICAgICAgICAgICAgICAgIG1rcGF0aChmZmlfYnVpbGRkaXIpCi0gICAgICAgICAgICAgICAgY29uZmlnX2FyZ3MgPSBbXQorICAgICAgICAgICAgICAgIGNvbmZpZ19hcmdzID0gW2FyZyBmb3IgYXJnIGluIHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcigiQ09ORklHX0FSR1MiKS5zcGxpdCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCgnLS1ob3N0PScgaW4gYXJnKSBvciAoJy0tYnVpbGQ9JyBpbiBhcmcpKV0KIAogICAgICAgICAgICAgICAgICMgUGFzcyBlbXB0eSBDRkxBR1MgYmVjYXVzZSB3ZSdsbCBqdXN0IGFwcGVuZCB0aGUgcmVzdWx0aW5nCiAgICAgICAgICAgICAgICAgIyBDRkxBR1MgdG8gUHl0aG9uJ3M7IC1nIG9yIC1PMiBpcyB0byBiZSBhdm9pZGVkLgpAQCAtMTcxMyw3ICsxODA2LDcgQEAKICAgICAgICAgICAgICAgICAgICAnX2N0eXBlcy9jZmllbGQuYyddCiAgICAgICAgIGRlcGVuZHMgPSBbJ19jdHlwZXMvY3R5cGVzLmgnXQogCi0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoKKyAgICAgICAgaWYgaG9zdF9wbGF0Zm9ybSA9PSAnZGFyd2luJzoKICAgICAgICAgICAgIHNvdXJjZXMuYXBwZW5kKCdfY3R5cGVzL21hbGxvY19jbG9zdXJlLmMnKQogICAgICAgICAgICAgc291cmNlcy5hcHBlbmQoJ19jdHlwZXMvZGFyd2luL2RsZmNuX3NpbXBsZS5jJykKICAgICAgICAgICAgIGV4dHJhX2NvbXBpbGVfYXJncy5hcHBlbmQoJy1ETUFDT1NYJykKQEAgLTE3MjEsNyArMTgxNCw3IEBACiAjIFhYWCBJcyB0aGlzIHN0aWxsIG5lZWRlZD8KICMjICAgICAgICAgICAgZXh0cmFfbGlua19hcmdzLmV4dGVuZChbJy1yZWFkX29ubHlfcmVsb2NzJywgJ3dhcm5pbmcnXSkKIAotICAgICAgICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAnc3Vub3M1JzoKKyAgICAgICAgZWxpZiBob3N0X3BsYXRmb3JtID09ICdzdW5vczUnOgogICAgICAgICAgICAgIyBYWFggVGhpcyBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5OyBpdCBhcHBlYXJzIHRoYXQgc29tZQogICAgICAgICAgICAgIyBvZiB0aGUgYXNzZW1ibGVyIGNvZGUgaXMgbm9uLVBJQyAoaS5lLiBpdCBoYXMgcmVsb2NhdGlvbnMKICAgICAgICAgICAgICMgd2hlbiBpdCBzaG91bGRuJ3QuIFRoZSBwcm9wZXIgZml4IHdvdWxkIGJlIHRvIHJld3JpdGUKQEAgLTE3MzIsNyArMTgyNSw3IEBACiAgICAgICAgICAgICAjIGZpbmRpbmcgc29tZSAteiBvcHRpb24gZm9yIHRoZSBTdW4gY29tcGlsZXIuCiAgICAgICAgICAgICBleHRyYV9saW5rX2FyZ3MuYXBwZW5kKCctbWltcHVyZS10ZXh0JykKIAotICAgICAgICBlbGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCdocC11eCcpOgorICAgICAgICBlbGlmIGhvc3RfcGxhdGZvcm0uc3RhcnRzd2l0aCgnaHAtdXgnKToKICAgICAgICAgICAgIGV4dHJhX2xpbmtfYXJncy5hcHBlbmQoJy1mUElDJykKIAogICAgICAgICBleHQgPSBFeHRlbnNpb24oJ19jdHlwZXMnLApAQCAtMTc0OSw3ICsxODQyLDcgQEAKICAgICAgICAgaWYgbm90ICctLXdpdGgtc3lzdGVtLWZmaScgaW4gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCJDT05GSUdfQVJHUyIpOgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICBpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgICAgICAgICAgIyBPUyBYIDEwLjUgY29tZXMgd2l0aCBsaWJmZmkuZHlsaWI7IHRoZSBpbmNsdWRlIGZpbGVzIGFyZQogICAgICAgICAgICAgIyBpbiAvdXNyL2luY2x1ZGUvZmZpCiAgICAgICAgICAgICBpbmNfZGlycy5hcHBlbmQoJy91c3IvaW5jbHVkZS9mZmknKQpAQCAtMTc3OSw2ICsxODcyLDEyNyBAQAogICAgICAgICAgICAgZXh0LmxpYnJhcmllcy5hcHBlbmQoZmZpX2xpYikKICAgICAgICAgICAgIHNlbGYudXNlX3N5c3RlbV9saWJmZmkgPSBUcnVlCiAKKyAgICBkZWYgX2RlY2ltYWxfZXh0KHNlbGYpOgorICAgICAgICBleHRyYV9jb21waWxlX2FyZ3MgPSBbXQorICAgICAgICB1bmRlZl9tYWNyb3MgPSBbJ05ERUJVRyddCisgICAgICAgIGlmICctLXdpdGgtc3lzdGVtLWxpYm1wZGVjJyBpbiBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoIkNPTkZJR19BUkdTIik6CisgICAgICAgICAgICBpbmNsdWRlX2RpcnMgPSBbXQorICAgICAgICAgICAgbGlicmFyaWVzID0gWydtcGRlYyddCisgICAgICAgICAgICBzb3VyY2VzID0gWydfZGVjaW1hbC9fZGVjaW1hbC5jJ10KKyAgICAgICAgICAgIGRlcGVuZHMgPSBbJ19kZWNpbWFsL2RvY3N0cmluZ3MuaCddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzcmNkaXIgPSBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ3NyY2RpcicpCisgICAgICAgICAgICBpbmNsdWRlX2RpcnMgPSBbb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihzcmNkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnTW9kdWxlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnX2RlY2ltYWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xpYm1wZGVjJykpXQorICAgICAgICAgICAgbGlicmFyaWVzID0gW10KKyAgICAgICAgICAgIHNvdXJjZXMgPSBbCisgICAgICAgICAgICAgICdfZGVjaW1hbC9fZGVjaW1hbC5jJywKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2xpYm1wZGVjL2Jhc2Vhcml0aC5jJywKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2xpYm1wZGVjL2NvbnN0YW50cy5jJywKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2xpYm1wZGVjL2NvbnRleHQuYycsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy9jb252b2x1dGUuYycsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy9jcnQuYycsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy9kaWZyYWRpeDIuYycsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy9mbnQuYycsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy9mb3Vyc3RlcC5jJywKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2xpYm1wZGVjL2lvLmMnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvbWVtb3J5LmMnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvbXBkZWNpbWFsLmMnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvbnVtYmVydGhlb3J5LmMnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvc2l4c3RlcC5jJywKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2xpYm1wZGVjL3RyYW5zcG9zZS5jJywKKyAgICAgICAgICAgICAgXQorICAgICAgICAgICAgZGVwZW5kcyA9IFsKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2RvY3N0cmluZ3MuaCcsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy9iYXNlYXJpdGguaCcsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy9iaXRzLmgnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvY29uc3RhbnRzLmgnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvY29udm9sdXRlLmgnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvY3J0LmgnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvZGlmcmFkaXgyLmgnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvZm50LmgnLAorICAgICAgICAgICAgICAnX2RlY2ltYWwvbGlibXBkZWMvZm91cnN0ZXAuaCcsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy9pby5oJywKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2xpYm1wZGVjL21lbW9yeS5oJywKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2xpYm1wZGVjL21wZGVjaW1hbC5oJywKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2xpYm1wZGVjL251bWJlcnRoZW9yeS5oJywKKyAgICAgICAgICAgICAgJ19kZWNpbWFsL2xpYm1wZGVjL3NpeHN0ZXAuaCcsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy90cmFuc3Bvc2UuaCcsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy90eXBlYXJpdGguaCcsCisgICAgICAgICAgICAgICdfZGVjaW1hbC9saWJtcGRlYy91bW9kYXJpdGguaCcsCisgICAgICAgICAgICAgIF0KKworICAgICAgICBjb25maWcgPSB7CisgICAgICAgICAgJ3g2NCc6ICAgICBbKCdDT05GSUdfNjQnLCcxJyksICgnQVNNJywnMScpXSwKKyAgICAgICAgICAndWludDEyOCc6IFsoJ0NPTkZJR182NCcsJzEnKSwgKCdBTlNJJywnMScpLCAoJ0hBVkVfVUlOVDEyOF9UJywnMScpXSwKKyAgICAgICAgICAnYW5zaTY0JzogIFsoJ0NPTkZJR182NCcsJzEnKSwgKCdBTlNJJywnMScpXSwKKyAgICAgICAgICAncHBybyc6ICAgIFsoJ0NPTkZJR18zMicsJzEnKSwgKCdQUFJPJywnMScpLCAoJ0FTTScsJzEnKV0sCisgICAgICAgICAgJ2Fuc2kzMic6ICBbKCdDT05GSUdfMzInLCcxJyksICgnQU5TSScsJzEnKV0sCisgICAgICAgICAgJ2Fuc2ktbGVnYWN5JzogWygnQ09ORklHXzMyJywnMScpLCAoJ0FOU0knLCcxJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgnTEVHQUNZX0NPTVBJTEVSJywnMScpXSwKKyAgICAgICAgICAndW5pdmVyc2FsJzogICBbKCdVTklWRVJTQUwnLCcxJyldCisgICAgICAgIH0KKworICAgICAgICBjYyA9IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignQ0MnKQorICAgICAgICBzaXplb2Zfc2l6ZV90ID0gc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdTSVpFT0ZfU0laRV9UJykKKyAgICAgICAgbWFjaGluZSA9IG9zLmVudmlyb24uZ2V0KCdQWVRIT05fREVDSU1BTF9XSVRIX01BQ0hJTkUnKQorCisgICAgICAgIGlmIG1hY2hpbmU6CisgICAgICAgICAgICAjIE92ZXJyaWRlIGF1dG9tYXRpYyBjb25maWd1cmF0aW9uIHRvIGZhY2lsaXRhdGUgdGVzdGluZy4KKyAgICAgICAgICAgIGRlZmluZV9tYWNyb3MgPSBjb25maWdbbWFjaGluZV0KKyAgICAgICAgZWxpZiBob3N0X3BsYXRmb3JtID09ICdkYXJ3aW4nOgorICAgICAgICAgICAgIyBVbml2ZXJzYWwgaGVyZSBtZWFuczogYnVpbGQgd2l0aCB0aGUgc2FtZSBvcHRpb25zIFB5dGhvbgorICAgICAgICAgICAgIyB3YXMgYnVpbHQgd2l0aC4KKyAgICAgICAgICAgIGRlZmluZV9tYWNyb3MgPSBjb25maWdbJ3VuaXZlcnNhbCddCisgICAgICAgIGVsaWYgc2l6ZW9mX3NpemVfdCA9PSA4OgorICAgICAgICAgICAgaWYgc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdIQVZFX0dDQ19BU01fRk9SX1g2NCcpOgorICAgICAgICAgICAgICAgIGRlZmluZV9tYWNyb3MgPSBjb25maWdbJ3g2NCddCisgICAgICAgICAgICBlbGlmIHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignSEFWRV9HQ0NfVUlOVDEyOF9UJyk6CisgICAgICAgICAgICAgICAgZGVmaW5lX21hY3JvcyA9IGNvbmZpZ1sndWludDEyOCddCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRlZmluZV9tYWNyb3MgPSBjb25maWdbJ2Fuc2k2NCddCisgICAgICAgIGVsaWYgc2l6ZW9mX3NpemVfdCA9PSA0OgorICAgICAgICAgICAgcHBybyA9IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignSEFWRV9HQ0NfQVNNX0ZPUl9YODcnKQorICAgICAgICAgICAgaWYgcHBybyBhbmQgKCdnY2MnIGluIGNjIG9yICdjbGFuZycgaW4gY2MpIGFuZCBcCisgICAgICAgICAgICAgICBub3QgJ3N1bm9zJyBpbiBob3N0X3BsYXRmb3JtOgorICAgICAgICAgICAgICAgICMgc29sYXJpczogcHJvYmxlbXMgd2l0aCByZWdpc3RlciBhbGxvY2F0aW9uLgorICAgICAgICAgICAgICAgICMgaWNjID49IDExLjAgd29ya3MgYXMgd2VsbC4KKyAgICAgICAgICAgICAgICBkZWZpbmVfbWFjcm9zID0gY29uZmlnWydwcHJvJ10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZGVmaW5lX21hY3JvcyA9IGNvbmZpZ1snYW5zaTMyJ10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIERpc3R1dGlsc0Vycm9yKCJfZGVjaW1hbDogdW5zdXBwb3J0ZWQgYXJjaGl0ZWN0dXJlIikKKworICAgICAgICAjIFdvcmthcm91bmRzIGZvciB0b29sY2hhaW4gYnVnczoKKyAgICAgICAgaWYgc3lzY29uZmlnLmdldF9jb25maWdfdmFyKCdIQVZFX0lQQV9QVVJFX0NPTlNUX0JVRycpOgorICAgICAgICAgICAgIyBTb21lIHZlcnNpb25zIG9mIGdjYyBtaXNjb21waWxlIGlubGluZSBhc206CisgICAgICAgICAgICAjIGh0dHA6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9NDY0OTEKKyAgICAgICAgICAgICMgaHR0cDovL2djYy5nbnUub3JnL21sL2djYy8yMDEwLTExL21zZzAwMzY2Lmh0bWwKKyAgICAgICAgICAgIGV4dHJhX2NvbXBpbGVfYXJncy5hcHBlbmQoJy1mbm8taXBhLXB1cmUtY29uc3QnKQorICAgICAgICBpZiBzeXNjb25maWcuZ2V0X2NvbmZpZ192YXIoJ0hBVkVfR0xJQkNfTUVNTU9WRV9CVUcnKToKKyAgICAgICAgICAgICMgX0ZPUlRJRllfU09VUkNFIHdyYXBwZXJzIGZvciBtZW1tb3ZlIGFuZCBiY29weSBhcmUgaW5jb3JyZWN0OgorICAgICAgICAgICAgIyBodHRwOi8vc291cmNld2FyZS5vcmcvbWwvbGliYy1hbHBoYS8yMDEwLTEyL21zZzAwMDA5Lmh0bWwKKyAgICAgICAgICAgIHVuZGVmX21hY3Jvcy5hcHBlbmQoJ19GT1JUSUZZX1NPVVJDRScpCisKKyAgICAgICAgIyBGYXN0ZXIgdmVyc2lvbiB3aXRob3V0IHRocmVhZCBsb2NhbCBjb250ZXh0czoKKyAgICAgICAgaWYgbm90IHN5c2NvbmZpZy5nZXRfY29uZmlnX3ZhcignV0lUSF9USFJFQUQnKToKKyAgICAgICAgICAgIGRlZmluZV9tYWNyb3MuYXBwZW5kKCgnV0lUSE9VVF9USFJFQURTJywgMSkpCisKKyAgICAgICAgIyBVbmNvbW1lbnQgZm9yIGV4dHJhIGZ1bmN0aW9uYWxpdHk6CisgICAgICAgICNkZWZpbmVfbWFjcm9zLmFwcGVuZCgoJ0VYVFJBX0ZVTkNUSU9OQUxJVFknLCAxKSkKKyAgICAgICAgZXh0ID0gRXh0ZW5zaW9uICgKKyAgICAgICAgICAgICdfZGVjaW1hbCcsCisgICAgICAgICAgICBpbmNsdWRlX2RpcnM9aW5jbHVkZV9kaXJzLAorICAgICAgICAgICAgbGlicmFyaWVzPWxpYnJhcmllcywKKyAgICAgICAgICAgIGRlZmluZV9tYWNyb3M9ZGVmaW5lX21hY3JvcywKKyAgICAgICAgICAgIHVuZGVmX21hY3Jvcz11bmRlZl9tYWNyb3MsCisgICAgICAgICAgICBleHRyYV9jb21waWxlX2FyZ3M9ZXh0cmFfY29tcGlsZV9hcmdzLAorICAgICAgICAgICAgc291cmNlcz1zb3VyY2VzLAorICAgICAgICAgICAgZGVwZW5kcz1kZXBlbmRzCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuIGV4dAogCiBjbGFzcyBQeUJ1aWxkSW5zdGFsbChpbnN0YWxsKToKICAgICAjIFN1cHByZXNzIHRoZSB3YXJuaW5nIGFib3V0IGluc3RhbGxhdGlvbiBpbnRvIHRoZSBsaWJfZHlubG9hZApAQCAtMTc4OCw2ICsyMDAyLDEzIEBACiAgICAgICAgIGluc3RhbGwuaW5pdGlhbGl6ZV9vcHRpb25zKHNlbGYpCiAgICAgICAgIHNlbGYud2Fybl9kaXI9MAogCisgICAgIyBDdXN0b21pemUgc3ViY29tbWFuZHMgdG8gbm90IGluc3RhbGwgYW4gZWdnLWluZm8gZmlsZSBmb3IgUHl0aG9uCisgICAgc3ViX2NvbW1hbmRzID0gWygnaW5zdGFsbF9saWInLCBpbnN0YWxsLmhhc19saWIpLAorICAgICAgICAgICAgICAgICAgICAoJ2luc3RhbGxfaGVhZGVycycsIGluc3RhbGwuaGFzX2hlYWRlcnMpLAorICAgICAgICAgICAgICAgICAgICAoJ2luc3RhbGxfc2NyaXB0cycsIGluc3RhbGwuaGFzX3NjcmlwdHMpLAorICAgICAgICAgICAgICAgICAgICAoJ2luc3RhbGxfZGF0YScsIGluc3RhbGwuaGFzX2RhdGEpXQorCisKIGNsYXNzIFB5QnVpbGRJbnN0YWxsTGliKGluc3RhbGxfbGliKToKICAgICAjIERvIGV4YWN0bHkgd2hhdCBpbnN0YWxsX2xpYiBkb2VzIGJ1dCBtYWtlIHN1cmUgY29ycmVjdCBhY2Nlc3MgbW9kZXMgZ2V0CiAgICAgIyBzZXQgb24gaW5zdGFsbGVkIGRpcmVjdG9yaWVzIGFuZCBmaWxlcy4gQWxsIGluc3RhbGxlZCBmaWxlcyB3aXRoIGdldApAQCAtMTgzMiw3ICsyMDUzLDcgQEAKICAgICAgICAgbmV3b3V0ZmlsZXMgPSBbXQogICAgICAgICBuZXd1cGRhdGVkX2ZpbGVzID0gW10KICAgICAgICAgZm9yIGZpbGVuYW1lIGluIG91dGZpbGVzOgotICAgICAgICAgICAgaWYgZmlsZW5hbWUuZW5kc3dpdGgoJzJ0bzMnKToKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCgnMnRvMycsICdweXZlbnYnKSk6CiAgICAgICAgICAgICAgICAgbmV3ZmlsZW5hbWUgPSBmaWxlbmFtZSArIGZ1bGx2ZXJzaW9uCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIG5ld2ZpbGVuYW1lID0gZmlsZW5hbWUgKyBtaW5vcm9ubHkKQEAgLTE5MDAsNyArMjEyMSw3IEBACiAgICAgICAgICAgIyBjaGVjayB0aGUgUHlCdWlsZFNjcmlwdHMgY29tbWFuZCBhYm92ZSwgYW5kIGNoYW5nZSB0aGUgbGlua3MKICAgICAgICAgICAjIGNyZWF0ZWQgYnkgdGhlIGJpbmluc3RhbGwgdGFyZ2V0IGluIE1ha2VmaWxlLnByZS5pbgogICAgICAgICAgIHNjcmlwdHMgPSBbIlRvb2xzL3NjcmlwdHMvcHlkb2MzIiwgIlRvb2xzL3NjcmlwdHMvaWRsZTMiLAotICAgICAgICAgICAgICAgICAgICAgIlRvb2xzL3NjcmlwdHMvMnRvMyJdCisgICAgICAgICAgICAgICAgICAgICAiVG9vbHMvc2NyaXB0cy8ydG8zIiwgIlRvb2xzL3NjcmlwdHMvcHl2ZW52Il0KICAgICAgICAgKQogCiAjIC0taW5zdGFsbC1wbGF0bGliCg==